diff --git a/src/akiko.cpp b/src/akiko.cpp index 2bb65d3b..448ae09c 100644 --- a/src/akiko.cpp +++ b/src/akiko.cpp @@ -15,7 +15,7 @@ #include "sysdeps.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "events.h" #include "savestate.h" @@ -38,11 +38,12 @@ static void irq (void) { #if AKIKO_DEBUG_IO > 1 - write_log (_T("Akiko Interrupt\n")); + write_log (_T("Akiko Interrupt\n")); #endif - if (!(intreq & 8)) { - INTREQ_0 (0x8000 | 0x0008); - } + if (!(intreq & 8)) + { + INTREQ_0 (0x8000 | 0x0008); + } } /* @@ -78,208 +79,233 @@ static int state = I2C_WAIT; static void nvram_write (int offset, int len) { - struct zfile *f; + struct zfile *f; - if (!currprefs.cs_cd32nvram) - return; - f = zfile_fopen (currprefs.flashfile, _T("rb+"), ZFD_NORMAL); - if (!f) { - f = zfile_fopen (currprefs.flashfile, _T("wb"), 0); - if (!f) return; - zfile_fwrite (cd32_nvram, NVRAM_SIZE, 1, f); - } - zfile_fseek (f, offset, SEEK_SET); - zfile_fwrite (cd32_nvram + offset, len, 1, f); - zfile_fclose (f); + if (!currprefs.cs_cd32nvram) + return; + f = zfile_fopen (currprefs.flashfile, _T("rb+"), ZFD_NORMAL); + if (!f) + { + f = zfile_fopen (currprefs.flashfile, _T("wb"), 0); + if (!f) return; + zfile_fwrite (cd32_nvram, NVRAM_SIZE, 1, f); + } + zfile_fseek (f, offset, SEEK_SET); + zfile_fwrite (cd32_nvram + offset, len, 1, f); + zfile_fclose (f); } static void nvram_read (void) { - struct zfile *f; + struct zfile *f; - if (!currprefs.cs_cd32nvram) - return; - f = zfile_fopen (currprefs.flashfile, _T("rb"), ZFD_NORMAL); - memset (cd32_nvram, 0, NVRAM_SIZE); - if (!f) return; - zfile_fread (cd32_nvram, NVRAM_SIZE, 1, f); - zfile_fclose (f); + if (!currprefs.cs_cd32nvram) + return; + f = zfile_fopen (currprefs.flashfile, _T("rb"), ZFD_NORMAL); + memset (cd32_nvram, 0, NVRAM_SIZE); + if (!f) return; + zfile_fread (cd32_nvram, NVRAM_SIZE, 1, f); + zfile_fclose (f); } static void i2c_do (void) { #if AKIKO_DEBUG_NVRAM - int i; + int i; #endif - sda_in = 1; - if (!sda_dir_nvram && scl_out && oscl) { - if (!sda_out && osda) { /* START-condition? */ - state = I2C_DEVICEADDR; - bitcounter = 0; - direction = -1; + sda_in = 1; + if (!sda_dir_nvram && scl_out && oscl) + { + if (!sda_out && osda) /* START-condition? */ + { + state = I2C_DEVICEADDR; + bitcounter = 0; + direction = -1; #if AKIKO_DEBUG_NVRAM - write_log (_T("START\n")); + write_log (_T("START\n")); #endif - return; - } else if(sda_out && !osda) { /* STOP-condition? */ - state = I2C_WAIT; - bitcounter = -1; + return; + } + else if(sda_out && !osda) /* STOP-condition? */ + { + state = I2C_WAIT; + bitcounter = -1; #if AKIKO_DEBUG_NVRAM - write_log (_T("STOP\n")); + write_log (_T("STOP\n")); #endif - if (direction > 0) { - memcpy (cd32_nvram + (nvram_address & ~(NVRAM_PAGE_SIZE - 1)), nvram_writetmp, NVRAM_PAGE_SIZE); - nvram_write (nvram_address & ~(NVRAM_PAGE_SIZE - 1), NVRAM_PAGE_SIZE); - direction = -1; - gui_flicker_led (LED_MD, 0, 2); + if (direction > 0) + { + memcpy (cd32_nvram + (nvram_address & ~(NVRAM_PAGE_SIZE - 1)), nvram_writetmp, NVRAM_PAGE_SIZE); + nvram_write (nvram_address & ~(NVRAM_PAGE_SIZE - 1), NVRAM_PAGE_SIZE); + direction = -1; + gui_flicker_led (LED_MD, 0, 2); #if AKIKO_DEBUG_NVRAM - write_log (_T("NVRAM write address %04X:"), nvram_address & ~(NVRAM_PAGE_SIZE - 1)); - for (i = 0; i < NVRAM_PAGE_SIZE; i++) - write_log (_T("%02X"), nvram_writetmp[i]); - write_log (_T("\n")); + write_log (_T("NVRAM write address %04X:"), nvram_address & ~(NVRAM_PAGE_SIZE - 1)); + for (i = 0; i < NVRAM_PAGE_SIZE; i++) + write_log (_T("%02X"), nvram_writetmp[i]); + write_log (_T("\n")); #endif - } - return; - } - } - if (bitcounter >= 0) { - if (direction) { - /* Amiga -> NVRAM */ - if (scl_out && !oscl) { - if (bitcounter == 8) { + } + return; + } + } + if (bitcounter >= 0) + { + if (direction) + { + /* Amiga -> NVRAM */ + if (scl_out && !oscl) + { + if (bitcounter == 8) + { #if AKIKO_DEBUG_NVRAM - write_log (_T("RB %02X "), nvram_byte, M68K_GETPC); + write_log (_T("RB %02X "), nvram_byte, M68K_GETPC); #endif - sda_in = 0; /* ACK */ - if (direction > 0) { - nvram_writetmp[nvram_writeaddr++] = nvram_byte; - nvram_writeaddr &= 15; - bitcounter = 0; - } else { - bitcounter = -1; - } - } else { - //write_log (_T("NVRAM received bit %d, offset %d\n"), sda_out, bitcounter); - nvram_byte <<= 1; - nvram_byte |= sda_out; - bitcounter++; - } - } - } else { - /* NVRAM -> Amiga */ - if (scl_out && !oscl && bitcounter < 8) { - if (bitcounter == 0) - nvram_byte = cd32_nvram[nvram_address]; - sda_dir_nvram = 1; - sda_in = (nvram_byte & 0x80) ? 1 : 0; - //write_log (_T("NVRAM sent bit %d, offset %d\n"), sda_in, bitcounter); - nvram_byte <<= 1; - bitcounter++; - if (bitcounter == 8) { + sda_in = 0; /* ACK */ + if (direction > 0) + { + nvram_writetmp[nvram_writeaddr++] = nvram_byte; + nvram_writeaddr &= 15; + bitcounter = 0; + } + else + { + bitcounter = -1; + } + } + else + { + //write_log (_T("NVRAM received bit %d, offset %d\n"), sda_out, bitcounter); + nvram_byte <<= 1; + nvram_byte |= sda_out; + bitcounter++; + } + } + } + else + { + /* NVRAM -> Amiga */ + if (scl_out && !oscl && bitcounter < 8) + { + if (bitcounter == 0) + nvram_byte = cd32_nvram[nvram_address]; + sda_dir_nvram = 1; + sda_in = (nvram_byte & 0x80) ? 1 : 0; + //write_log (_T("NVRAM sent bit %d, offset %d\n"), sda_in, bitcounter); + nvram_byte <<= 1; + bitcounter++; + if (bitcounter == 8) + { #if AKIKO_DEBUG_NVRAM - write_log (_T("NVRAM sent byte %02X address %04X PC=%08X\n"), cd32_nvram[nvram_address], nvram_address, M68K_GETPC); + write_log (_T("NVRAM sent byte %02X address %04X PC=%08X\n"), cd32_nvram[nvram_address], nvram_address, M68K_GETPC); #endif - nvram_address++; - nvram_address &= NVRAM_SIZE - 1; - sda_dir_nvram = 0; - } - } - if(!sda_out && sda_dir && !scl_out) /* ACK from Amiga */ - bitcounter = 0; - } - if (bitcounter >= 0) return; - } - switch (state) - { - case I2C_DEVICEADDR: - if ((nvram_byte & 0xf0) != 0xa0) { - write_log (_T("WARNING: I2C_DEVICEADDR: device address != 0xA0\n")); - state = I2C_WAIT; - return; - } - nvram_rw = (nvram_byte & 1) ? 0 : 1; - if (nvram_rw) { - /* 2 high address bits, only fetched if WRITE = 1 */ - nvram_address &= 0xff; - nvram_address |= ((nvram_byte >> 1) & 3) << 8; - state = I2C_WORDADDR; - direction = -1; - } else { - state = I2C_DATA; - direction = 0; - sda_dir_nvram = 1; - } - bitcounter = 0; + nvram_address++; + nvram_address &= NVRAM_SIZE - 1; + sda_dir_nvram = 0; + } + } + if(!sda_out && sda_dir && !scl_out) /* ACK from Amiga */ + bitcounter = 0; + } + if (bitcounter >= 0) return; + } + switch (state) + { + case I2C_DEVICEADDR: + if ((nvram_byte & 0xf0) != 0xa0) + { + write_log (_T("WARNING: I2C_DEVICEADDR: device address != 0xA0\n")); + state = I2C_WAIT; + return; + } + nvram_rw = (nvram_byte & 1) ? 0 : 1; + if (nvram_rw) + { + /* 2 high address bits, only fetched if WRITE = 1 */ + nvram_address &= 0xff; + nvram_address |= ((nvram_byte >> 1) & 3) << 8; + state = I2C_WORDADDR; + direction = -1; + } + else + { + state = I2C_DATA; + direction = 0; + sda_dir_nvram = 1; + } + bitcounter = 0; #if AKIKO_DEBUG_NVRAM - write_log (_T("I2C_DEVICEADDR: rw %d, address %02Xxx PC=%08X\n"), nvram_rw, nvram_address >> 8, M68K_GETPC); + write_log (_T("I2C_DEVICEADDR: rw %d, address %02Xxx PC=%08X\n"), nvram_rw, nvram_address >> 8, M68K_GETPC); #endif - break; - case I2C_WORDADDR: - nvram_address &= 0x300; - nvram_address |= nvram_byte; + break; + case I2C_WORDADDR: + nvram_address &= 0x300; + nvram_address |= nvram_byte; #if AKIKO_DEBUG_NVRAM - write_log (_T("I2C_WORDADDR: address %04X PC=%08X\n"), nvram_address, M68K_GETPC); + write_log (_T("I2C_WORDADDR: address %04X PC=%08X\n"), nvram_address, M68K_GETPC); #endif - if (direction < 0) { - memcpy (nvram_writetmp, cd32_nvram + (nvram_address & ~(NVRAM_PAGE_SIZE - 1)), NVRAM_PAGE_SIZE); - nvram_writeaddr = nvram_address & (NVRAM_PAGE_SIZE - 1); - gui_flicker_led (LED_MD, 0, 1); - } - state = I2C_DATA; - bitcounter = 0; - direction = 1; - break; - } + if (direction < 0) + { + memcpy (nvram_writetmp, cd32_nvram + (nvram_address & ~(NVRAM_PAGE_SIZE - 1)), NVRAM_PAGE_SIZE); + nvram_writeaddr = nvram_address & (NVRAM_PAGE_SIZE - 1); + gui_flicker_led (LED_MD, 0, 1); + } + state = I2C_DATA; + bitcounter = 0; + direction = 1; + break; + } } static void akiko_nvram_write (int offset, uae_u32 v) { - int sda; - switch (offset) - { - case 0: - oscl = scl_out; - scl_out = (v & 0x80) ? 1 : 0; - osda = sda_out; - sda_out = (v & 0x40) ? 1 : 0; - break; - case 2: - scl_dir = (v & 0x80) ? 1 : 0; - sda_dir = (v & 0x40) ? 1 : 0; - break; - default: - return; - } - sda = sda_out; - if (oscl != scl_out || osda != sda) { - i2c_do (); - oscl = scl_out; - osda = sda; - } + int sda; + switch (offset) + { + case 0: + oscl = scl_out; + scl_out = (v & 0x80) ? 1 : 0; + osda = sda_out; + sda_out = (v & 0x40) ? 1 : 0; + break; + case 2: + scl_dir = (v & 0x80) ? 1 : 0; + sda_dir = (v & 0x40) ? 1 : 0; + break; + default: + return; + } + sda = sda_out; + if (oscl != scl_out || osda != sda) + { + i2c_do (); + oscl = scl_out; + osda = sda; + } } static uae_u32 akiko_nvram_read (int offset) { - uae_u32 v = 0; - switch (offset) - { - case 0: - if (!scl_dir) - v |= scl_in ? 0x80 : 0x00; - else - v |= scl_out ? 0x80 : 0x00; - if (!sda_dir) - v |= sda_in ? 0x40 : 0x00; - else - v |= sda_out ? 0x40 : 0x00; - break; - case 2: - v |= scl_dir ? 0x80 : 0x00; - v |= sda_dir ? 0x40 : 0x00; - break; - } - return v; + uae_u32 v = 0; + switch (offset) + { + case 0: + if (!scl_dir) + v |= scl_in ? 0x80 : 0x00; + else + v |= scl_out ? 0x80 : 0x00; + if (!sda_dir) + v |= sda_in ? 0x40 : 0x00; + else + v |= sda_out ? 0x40 : 0x00; + break; + case 2: + v |= scl_dir ? 0x80 : 0x00; + v |= sda_dir ? 0x40 : 0x00; + break; + } + return v; } /* CD32 Chunky to Planar hardware emulation @@ -294,15 +320,16 @@ static uae_u32 akiko_result[8]; #if 0 static void akiko_c2p_do (void) { - int i; + int i; - for (i = 0; i < 8; i++) - akiko_result[i] = 0; - /* FIXME: better c2p algoritm than this piece of crap.... */ - for (i = 0; i < 8 * 32; i++) { - if (akiko_buffer[7 - (i >> 5)] & (1 << (i & 31))) - akiko_result[i & 7] |= 1 << (i >> 3); - } + for (i = 0; i < 8; i++) + akiko_result[i] = 0; + /* FIXME: better c2p algoritm than this piece of crap.... */ + for (i = 0; i < 8 * 32; i++) + { + if (akiko_buffer[7 - (i >> 5)] & (1 << (i & 31))) + akiko_result[i & 7] |= 1 << (i >> 3); + } } #else /* Optimised Chunky-to-Planar algorithm by Mequa */ @@ -310,81 +337,86 @@ static uae_u32 akiko_precalc_shift[32]; static uae_u32 akiko_precalc_bytenum[32][8]; static void akiko_precalculate (void) { - uae_u32 i, j; - for (i = 0; i < 32; i++) { - akiko_precalc_shift [(int)i] = 1 << i; - for (j = 0; j < 8; j++) { - akiko_precalc_bytenum[(int)i][(int)j] = (i >> 3) + ((7 - j) << 2); - } - } + uae_u32 i, j; + for (i = 0; i < 32; i++) + { + akiko_precalc_shift [(int)i] = 1 << i; + for (j = 0; j < 8; j++) + { + akiko_precalc_bytenum[(int)i][(int)j] = (i >> 3) + ((7 - j) << 2); + } + } } static void akiko_c2p_do (void) { - int i; + int i; - for (i = 0; i < 8; i++) { - akiko_result[i] = (((akiko_buffer[0] & akiko_precalc_shift[i]) != 0) << (akiko_precalc_bytenum[i][0]) ) - | (((akiko_buffer[1] & akiko_precalc_shift[i]) != 0) << (akiko_precalc_bytenum[i][1]) ) - | (((akiko_buffer[2] & akiko_precalc_shift[i]) != 0) << (akiko_precalc_bytenum[i][2]) ) - | (((akiko_buffer[3] & akiko_precalc_shift[i]) != 0) << (akiko_precalc_bytenum[i][3]) ) - | (((akiko_buffer[4] & akiko_precalc_shift[i]) != 0) << (akiko_precalc_bytenum[i][4]) ) - | (((akiko_buffer[5] & akiko_precalc_shift[i]) != 0) << (akiko_precalc_bytenum[i][5]) ) - | (((akiko_buffer[6] & akiko_precalc_shift[i]) != 0) << (akiko_precalc_bytenum[i][6]) ) - | (((akiko_buffer[7] & akiko_precalc_shift[i]) != 0) << (akiko_precalc_bytenum[i][7]) ) - | (((akiko_buffer[0] & akiko_precalc_shift[i+8]) != 0) << (akiko_precalc_bytenum[i+8][0]) ) - | (((akiko_buffer[1] & akiko_precalc_shift[i+8]) != 0) << (akiko_precalc_bytenum[i+8][1]) ) - | (((akiko_buffer[2] & akiko_precalc_shift[i+8]) != 0) << (akiko_precalc_bytenum[i+8][2]) ) - | (((akiko_buffer[3] & akiko_precalc_shift[i+8]) != 0) << (akiko_precalc_bytenum[i+8][3]) ) - | (((akiko_buffer[4] & akiko_precalc_shift[i+8]) != 0) << (akiko_precalc_bytenum[i+8][4]) ) - | (((akiko_buffer[5] & akiko_precalc_shift[i+8]) != 0) << (akiko_precalc_bytenum[i+8][5]) ) - | (((akiko_buffer[6] & akiko_precalc_shift[i+8]) != 0) << (akiko_precalc_bytenum[i+8][6]) ) - | (((akiko_buffer[7] & akiko_precalc_shift[i+8]) != 0) << (akiko_precalc_bytenum[i+8][7]) ) - | (((akiko_buffer[0] & akiko_precalc_shift[i+16]) != 0) << (akiko_precalc_bytenum[i+16][0])) - | (((akiko_buffer[1] & akiko_precalc_shift[i+16]) != 0) << (akiko_precalc_bytenum[i+16][1])) - | (((akiko_buffer[2] & akiko_precalc_shift[i+16]) != 0) << (akiko_precalc_bytenum[i+16][2])) - | (((akiko_buffer[3] & akiko_precalc_shift[i+16]) != 0) << (akiko_precalc_bytenum[i+16][3])) - | (((akiko_buffer[4] & akiko_precalc_shift[i+16]) != 0) << (akiko_precalc_bytenum[i+16][4])) - | (((akiko_buffer[5] & akiko_precalc_shift[i+16]) != 0) << (akiko_precalc_bytenum[i+16][5])) - | (((akiko_buffer[6] & akiko_precalc_shift[i+16]) != 0) << (akiko_precalc_bytenum[i+16][6])) - | (((akiko_buffer[7] & akiko_precalc_shift[i+16]) != 0) << (akiko_precalc_bytenum[i+16][7])) - | (((akiko_buffer[0] & akiko_precalc_shift[i+24]) != 0) << (akiko_precalc_bytenum[i+24][0])) - | (((akiko_buffer[1] & akiko_precalc_shift[i+24]) != 0) << (akiko_precalc_bytenum[i+24][1])) - | (((akiko_buffer[2] & akiko_precalc_shift[i+24]) != 0) << (akiko_precalc_bytenum[i+24][2])) - | (((akiko_buffer[3] & akiko_precalc_shift[i+24]) != 0) << (akiko_precalc_bytenum[i+24][3])) - | (((akiko_buffer[4] & akiko_precalc_shift[i+24]) != 0) << (akiko_precalc_bytenum[i+24][4])) - | (((akiko_buffer[5] & akiko_precalc_shift[i+24]) != 0) << (akiko_precalc_bytenum[i+24][5])) - | (((akiko_buffer[6] & akiko_precalc_shift[i+24]) != 0) << (akiko_precalc_bytenum[i+24][6])) - | (((akiko_buffer[7] & akiko_precalc_shift[i+24]) != 0) << (akiko_precalc_bytenum[i+24][7])); - } + for (i = 0; i < 8; i++) + { + akiko_result[i] = (((akiko_buffer[0] & akiko_precalc_shift[i]) != 0) << (akiko_precalc_bytenum[i][0]) ) + | (((akiko_buffer[1] & akiko_precalc_shift[i]) != 0) << (akiko_precalc_bytenum[i][1]) ) + | (((akiko_buffer[2] & akiko_precalc_shift[i]) != 0) << (akiko_precalc_bytenum[i][2]) ) + | (((akiko_buffer[3] & akiko_precalc_shift[i]) != 0) << (akiko_precalc_bytenum[i][3]) ) + | (((akiko_buffer[4] & akiko_precalc_shift[i]) != 0) << (akiko_precalc_bytenum[i][4]) ) + | (((akiko_buffer[5] & akiko_precalc_shift[i]) != 0) << (akiko_precalc_bytenum[i][5]) ) + | (((akiko_buffer[6] & akiko_precalc_shift[i]) != 0) << (akiko_precalc_bytenum[i][6]) ) + | (((akiko_buffer[7] & akiko_precalc_shift[i]) != 0) << (akiko_precalc_bytenum[i][7]) ) + | (((akiko_buffer[0] & akiko_precalc_shift[i+8]) != 0) << (akiko_precalc_bytenum[i+8][0]) ) + | (((akiko_buffer[1] & akiko_precalc_shift[i+8]) != 0) << (akiko_precalc_bytenum[i+8][1]) ) + | (((akiko_buffer[2] & akiko_precalc_shift[i+8]) != 0) << (akiko_precalc_bytenum[i+8][2]) ) + | (((akiko_buffer[3] & akiko_precalc_shift[i+8]) != 0) << (akiko_precalc_bytenum[i+8][3]) ) + | (((akiko_buffer[4] & akiko_precalc_shift[i+8]) != 0) << (akiko_precalc_bytenum[i+8][4]) ) + | (((akiko_buffer[5] & akiko_precalc_shift[i+8]) != 0) << (akiko_precalc_bytenum[i+8][5]) ) + | (((akiko_buffer[6] & akiko_precalc_shift[i+8]) != 0) << (akiko_precalc_bytenum[i+8][6]) ) + | (((akiko_buffer[7] & akiko_precalc_shift[i+8]) != 0) << (akiko_precalc_bytenum[i+8][7]) ) + | (((akiko_buffer[0] & akiko_precalc_shift[i+16]) != 0) << (akiko_precalc_bytenum[i+16][0])) + | (((akiko_buffer[1] & akiko_precalc_shift[i+16]) != 0) << (akiko_precalc_bytenum[i+16][1])) + | (((akiko_buffer[2] & akiko_precalc_shift[i+16]) != 0) << (akiko_precalc_bytenum[i+16][2])) + | (((akiko_buffer[3] & akiko_precalc_shift[i+16]) != 0) << (akiko_precalc_bytenum[i+16][3])) + | (((akiko_buffer[4] & akiko_precalc_shift[i+16]) != 0) << (akiko_precalc_bytenum[i+16][4])) + | (((akiko_buffer[5] & akiko_precalc_shift[i+16]) != 0) << (akiko_precalc_bytenum[i+16][5])) + | (((akiko_buffer[6] & akiko_precalc_shift[i+16]) != 0) << (akiko_precalc_bytenum[i+16][6])) + | (((akiko_buffer[7] & akiko_precalc_shift[i+16]) != 0) << (akiko_precalc_bytenum[i+16][7])) + | (((akiko_buffer[0] & akiko_precalc_shift[i+24]) != 0) << (akiko_precalc_bytenum[i+24][0])) + | (((akiko_buffer[1] & akiko_precalc_shift[i+24]) != 0) << (akiko_precalc_bytenum[i+24][1])) + | (((akiko_buffer[2] & akiko_precalc_shift[i+24]) != 0) << (akiko_precalc_bytenum[i+24][2])) + | (((akiko_buffer[3] & akiko_precalc_shift[i+24]) != 0) << (akiko_precalc_bytenum[i+24][3])) + | (((akiko_buffer[4] & akiko_precalc_shift[i+24]) != 0) << (akiko_precalc_bytenum[i+24][4])) + | (((akiko_buffer[5] & akiko_precalc_shift[i+24]) != 0) << (akiko_precalc_bytenum[i+24][5])) + | (((akiko_buffer[6] & akiko_precalc_shift[i+24]) != 0) << (akiko_precalc_bytenum[i+24][6])) + | (((akiko_buffer[7] & akiko_precalc_shift[i+24]) != 0) << (akiko_precalc_bytenum[i+24][7])); + } } #endif static void akiko_c2p_write (int offset, uae_u32 v) { - if (offset == 3) - akiko_buffer[akiko_write_offset] = 0; - akiko_buffer[akiko_write_offset] |= v << ( 8 * (3 - offset)); - if (offset == 0) { - akiko_write_offset++; - akiko_write_offset &= 7; - } - akiko_read_offset = 0; + if (offset == 3) + akiko_buffer[akiko_write_offset] = 0; + akiko_buffer[akiko_write_offset] |= v << ( 8 * (3 - offset)); + if (offset == 0) + { + akiko_write_offset++; + akiko_write_offset &= 7; + } + akiko_read_offset = 0; } static uae_u32 akiko_c2p_read (int offset) { - uae_u32 v; + uae_u32 v; - if (akiko_read_offset == 0 && offset == 3) - akiko_c2p_do (); - akiko_write_offset = 0; - v = akiko_result[akiko_read_offset]; - if (offset == 0) { - akiko_read_offset++; - akiko_read_offset &= 7; - } - return v >> (8 * (3 - offset)); + if (akiko_read_offset == 0 && offset == 3) + akiko_c2p_do (); + akiko_write_offset = 0; + v = akiko_result[akiko_read_offset]; + if (offset == 0) + { + akiko_read_offset++; + akiko_read_offset &= 7; + } + return v >> (8 * (3 - offset)); } /* CD32 CDROM hardware emulation @@ -486,176 +518,188 @@ static uae_sem_t akiko_sem, sub_sem; static void checkint (void) { - if (cdrom_intreq & cdrom_intena) - irq (); + if (cdrom_intreq & cdrom_intena) + irq (); } static void set_status (uae_u32 status) { #if AKIKO_DEBUG_IO - if (!(cdrom_intreq & status)) - write_log (_T("Akiko INTREQ %08x (%08x)\n"), status, cdrom_intreq | status); + if (!(cdrom_intreq & status)) + write_log (_T("Akiko INTREQ %08x (%08x)\n"), status, cdrom_intreq | status); #endif - cdrom_intreq |= status; - checkint (); - cdrom_led ^= LED_CD_ACTIVE2; + cdrom_intreq |= status; + checkint (); + cdrom_led ^= LED_CD_ACTIVE2; } void rethink_akiko (void) { - checkint (); + checkint (); } static void cdaudiostop_do (void) { - qcode_valid = 0; - if (unitnum < 0) - return; - sys_command_cd_pause (unitnum, 0); - sys_command_cd_stop (unitnum); + qcode_valid = 0; + if (unitnum < 0) + return; + sys_command_cd_pause (unitnum, 0); + sys_command_cd_stop (unitnum); } static void cdaudiostop (void) { - cdrom_audiostatus = 0; - cdrom_audiotimeout = 0; - cdrom_paused = 0; - cdrom_playing = 0; - write_comm_pipe_u32 (&requests, 0x0104, 1); + cdrom_audiostatus = 0; + cdrom_audiotimeout = 0; + cdrom_paused = 0; + cdrom_playing = 0; + write_comm_pipe_u32 (&requests, 0x0104, 1); } static void subfunc (uae_u8 *data, int cnt) { - if (!(cdrom_flags & CDFLAG_SUBCODE)) - return; - uae_sem_wait (&sub_sem); + if (!(cdrom_flags & CDFLAG_SUBCODE)) + return; + uae_sem_wait (&sub_sem); #if 0 - int total = 0; - for (int i = 0; i < MAX_SUBCODEBUFFER; i++) { - if (subcodebufferinuse[i]) - total++; - } - write_log (_T("%d "), total); + int total = 0; + for (int i = 0; i < MAX_SUBCODEBUFFER; i++) + { + if (subcodebufferinuse[i]) + total++; + } + write_log (_T("%d "), total); #endif - if (subcodebufferinuse[subcodebufferoffsetw]) { - memset (subcodebufferinuse, 0,sizeof (subcodebufferinuse)); - subcodebufferoffsetw = subcodebufferoffset = 0; - uae_sem_post (&sub_sem); - //write_log (_T("CD32: subcode buffer overflow 1\n")); - return; - } - int offset = subcodebufferoffsetw; - while (cnt > 0) { - if (subcodebufferinuse[offset]) { - write_log (_T("CD32: subcode buffer overflow 2\n")); - break; - } - subcodebufferinuse[offset] = 1; - memcpy (&subcodebuffer[offset * SUB_CHANNEL_SIZE], data, SUB_CHANNEL_SIZE); - data += SUB_CHANNEL_SIZE; - offset++; - if (offset >= MAX_SUBCODEBUFFER) - offset = 0; - cnt--; - } - subcodebufferoffsetw = offset; - uae_sem_post (&sub_sem); + if (subcodebufferinuse[subcodebufferoffsetw]) + { + memset (subcodebufferinuse, 0,sizeof (subcodebufferinuse)); + subcodebufferoffsetw = subcodebufferoffset = 0; + uae_sem_post (&sub_sem); + //write_log (_T("CD32: subcode buffer overflow 1\n")); + return; + } + int offset = subcodebufferoffsetw; + while (cnt > 0) + { + if (subcodebufferinuse[offset]) + { + write_log (_T("CD32: subcode buffer overflow 2\n")); + break; + } + subcodebufferinuse[offset] = 1; + memcpy (&subcodebuffer[offset * SUB_CHANNEL_SIZE], data, SUB_CHANNEL_SIZE); + data += SUB_CHANNEL_SIZE; + offset++; + if (offset >= MAX_SUBCODEBUFFER) + offset = 0; + cnt--; + } + subcodebufferoffsetw = offset; + uae_sem_post (&sub_sem); } static int statusfunc (int status) { - if (status == -1) - return 0; - if (status == -2) - return 10; + if (status == -1) + return 0; + if (status == -2) + return 10; #if 1 - if (cdrom_audiostatus != status) { - if (status == AUDIO_STATUS_IN_PROGRESS) { - cdrom_playing = 1; - cdrom_audiotimeout = 1; - } - if (cdrom_playing && status != AUDIO_STATUS_IN_PROGRESS && status != AUDIO_STATUS_PAUSED && status != AUDIO_STATUS_NOT_SUPPORTED) { - cdrom_audiotimeout = -1; - } - } - cdrom_audiostatus = status; + if (cdrom_audiostatus != status) + { + if (status == AUDIO_STATUS_IN_PROGRESS) + { + cdrom_playing = 1; + cdrom_audiotimeout = 1; + } + if (cdrom_playing && status != AUDIO_STATUS_IN_PROGRESS && status != AUDIO_STATUS_PAUSED && status != AUDIO_STATUS_NOT_SUPPORTED) + { + cdrom_audiotimeout = -1; + } + } + cdrom_audiostatus = status; #endif - return 0; + return 0; } static void cdaudioplay_do (void) { - uae_u32 startlsn = read_comm_pipe_u32_blocking (&requests); - uae_u32 endlsn = read_comm_pipe_u32_blocking (&requests); - uae_u32 scan = read_comm_pipe_u32_blocking (&requests); - qcode_valid = 0; - if (unitnum < 0) - return; - sys_command_cd_pause (unitnum, 0); - sys_command_cd_play (unitnum, startlsn, endlsn, scan, statusfunc, subfunc); + uae_u32 startlsn = read_comm_pipe_u32_blocking (&requests); + uae_u32 endlsn = read_comm_pipe_u32_blocking (&requests); + uae_u32 scan = read_comm_pipe_u32_blocking (&requests); + qcode_valid = 0; + if (unitnum < 0) + return; + sys_command_cd_pause (unitnum, 0); + sys_command_cd_play (unitnum, startlsn, endlsn, scan, statusfunc, subfunc); } static bool isaudiotrack (int startlsn) { - struct cd_toc *s = NULL; - uae_u32 addr; - int i; + struct cd_toc *s = NULL; + uae_u32 addr; + int i; - if (!cdrom_toc_cd_buffer.points) - return false; - for (i = 0; i < cdrom_toc_cd_buffer.points; i++) { - s = &cdrom_toc_cd_buffer.toc[i]; - addr = s->paddress; - if (s->track > 0 && s->track < 100 && addr >= startlsn) - break; - s++; - } - if (s && (s->control & 0x0c) == 0x04) { - write_log (_T("tried to play data track %d!\n"), s->track); - return false; - } - return true; + if (!cdrom_toc_cd_buffer.points) + return false; + for (i = 0; i < cdrom_toc_cd_buffer.points; i++) + { + s = &cdrom_toc_cd_buffer.toc[i]; + addr = s->paddress; + if (s->track > 0 && s->track < 100 && addr >= startlsn) + break; + s++; + } + if (s && (s->control & 0x0c) == 0x04) + { + write_log (_T("tried to play data track %d!\n"), s->track); + return false; + } + return true; } static struct cd_toc *get_track (int startlsn) { - for (int i = cdrom_toc_cd_buffer.first_track_offset + 1; i <= cdrom_toc_cd_buffer.last_track_offset; i++) { - struct cd_toc *s = &cdrom_toc_cd_buffer.toc[i]; - uae_u32 addr = s->paddress; - if (startlsn < addr) - return s - 1; - } - return NULL; + for (int i = cdrom_toc_cd_buffer.first_track_offset + 1; i <= cdrom_toc_cd_buffer.last_track_offset; i++) + { + struct cd_toc *s = &cdrom_toc_cd_buffer.toc[i]; + uae_u32 addr = s->paddress; + if (startlsn < addr) + return s - 1; + } + return NULL; } static int last_play_end; static int cd_play_audio (int startlsn, int endlsn, int scan) { - struct cd_toc *s = NULL; + struct cd_toc *s = NULL; - if (!cdrom_toc_cd_buffer.points) - return 0; - s = get_track (startlsn); - if (s && (s->control & 0x0c) == 0x04) { - s = get_track (startlsn + 150); - if (s && (s->control & 0x0c) == 0x04) { - write_log (_T("tried to play data track %d!\n"), s->track); - s++; - startlsn = s->paddress; - s++; - endlsn = s->paddress; - } - startlsn = s->paddress; - } - qcode_valid = 0; - last_play_end = endlsn; - cdrom_audiotimeout = 10; - cdrom_paused = 0; - write_comm_pipe_u32 (&requests, 0x0110, 0); - write_comm_pipe_u32 (&requests, startlsn, 0); - write_comm_pipe_u32 (&requests, endlsn, 0); - write_comm_pipe_u32 (&requests, scan, 1); - return 1; + if (!cdrom_toc_cd_buffer.points) + return 0; + s = get_track (startlsn); + if (s && (s->control & 0x0c) == 0x04) + { + s = get_track (startlsn + 150); + if (s && (s->control & 0x0c) == 0x04) + { + write_log (_T("tried to play data track %d!\n"), s->track); + s++; + startlsn = s->paddress; + s++; + endlsn = s->paddress; + } + startlsn = s->paddress; + } + qcode_valid = 0; + last_play_end = endlsn; + cdrom_audiotimeout = 10; + cdrom_paused = 0; + write_comm_pipe_u32 (&requests, 0x0110, 0); + write_comm_pipe_u32 (&requests, startlsn, 0); + write_comm_pipe_u32 (&requests, endlsn, 0); + write_comm_pipe_u32 (&requests, scan, 1); + return 1; } @@ -663,394 +707,418 @@ static int cd_play_audio (int startlsn, int endlsn, int scan) static int last_play_pos; static int cd_qcode (uae_u8 *d) { - uae_u8 *buf, *s, as; + uae_u8 *buf, *s, as; - if (d) - memset (d, 0, 11); - last_play_pos = 0; - buf = qcode_buf; - as = buf[1]; - buf[2] = 0x80; - if (!qcode_valid) - return 0; - if (cdrom_audiostatus != AUDIO_STATUS_IN_PROGRESS && cdrom_audiostatus != AUDIO_STATUS_PAUSED) - return 0; - s = buf + 4; - last_play_pos = msf2lsn (fromlongbcd (s + 7)); - if (!d) - return 0; - buf[2] = 0; - /* ??? */ - d[0] = 0; - /* CtlAdr */ - d[1] = s[0]; - /* Track */ - d[2] = s[1]; - /* Index */ - d[3] = s[2]; - /* TrackPos */ - d[4] = s[3]; - d[5] = s[4]; - d[6] = s[5]; - /* DiskPos */ - d[7] = 0; - d[8] = s[7]; - d[9] = s[8]; - d[10] = s[9]; - if (as == AUDIO_STATUS_IN_PROGRESS) { - /* Make sure end of disc position is not missed. - */ - if (last_play_pos >= cdrom_toc_cd_buffer.lastaddress || cdrom_toc_cd_buffer.lastaddress - last_play_pos < 10) { - int msf = lsn2msf (cdrom_toc_cd_buffer.lastaddress); - d[8] = tobcd ((uae_u8)(msf >> 16)); - d[9] = tobcd ((uae_u8)(msf >> 8)); - d[10] = tobcd ((uae_u8)(msf >> 0)); - } - } + if (d) + memset (d, 0, 11); + last_play_pos = 0; + buf = qcode_buf; + as = buf[1]; + buf[2] = 0x80; + if (!qcode_valid) + return 0; + if (cdrom_audiostatus != AUDIO_STATUS_IN_PROGRESS && cdrom_audiostatus != AUDIO_STATUS_PAUSED) + return 0; + s = buf + 4; + last_play_pos = msf2lsn (fromlongbcd (s + 7)); + if (!d) + return 0; + buf[2] = 0; + /* ??? */ + d[0] = 0; + /* CtlAdr */ + d[1] = s[0]; + /* Track */ + d[2] = s[1]; + /* Index */ + d[3] = s[2]; + /* TrackPos */ + d[4] = s[3]; + d[5] = s[4]; + d[6] = s[5]; + /* DiskPos */ + d[7] = 0; + d[8] = s[7]; + d[9] = s[8]; + d[10] = s[9]; + if (as == AUDIO_STATUS_IN_PROGRESS) + { + /* Make sure end of disc position is not missed. + */ + if (last_play_pos >= cdrom_toc_cd_buffer.lastaddress || cdrom_toc_cd_buffer.lastaddress - last_play_pos < 10) + { + int msf = lsn2msf (cdrom_toc_cd_buffer.lastaddress); + d[8] = tobcd ((uae_u8)(msf >> 16)); + d[9] = tobcd ((uae_u8)(msf >> 8)); + d[10] = tobcd ((uae_u8)(msf >> 0)); + } + } // write_log (_T("%02X.%02X.%02X.%02X.%02X.%02X.%02X.%02X.%02X.%02X.%02X.%02X\n"), // d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10], d[11]); - return 0; + return 0; } /* read toc */ static int get_cdrom_toc (void) { - int j; - int datatrack = 0, secondtrack = 0; + int j; + int datatrack = 0, secondtrack = 0; - cdrom_toc_counter = -1; - if (!sys_command_cd_toc (unitnum, &cdrom_toc_cd_buffer)) - return 1; - memset (cdrom_toc_buffer, 0, MAX_TOC_ENTRIES * 13); - cdrom_data_end = -1; - for (j = 0; j < cdrom_toc_cd_buffer.points; j++) { - struct cd_toc *s = &cdrom_toc_cd_buffer.toc[j]; - uae_u8 *d = &cdrom_toc_buffer[j * 13]; - int addr = s->paddress; - int msf = lsn2msf (addr); - if (s->point == 0xa0 || s->point == 0xa1) - msf = s->track << 16; - d[1] = (s->adr << 0) | (s->control << 4); - d[3] = s->point < 100 ? tobcd (s->point) : s->point; - d[8] = tobcd ((msf >> 16) & 0xff); - d[9] = tobcd ((msf >> 8) & 0xff); - d[10] = tobcd ((msf >> 0) & 0xff); - if (s->point == 1 && (s->control & 0x0c) == 0x04) - datatrack = 1; - if (s->point == 2) - secondtrack = addr; - } - cdrom_toc_crc = get_crc32 (cdrom_toc_buffer, cdrom_toc_cd_buffer.points * 13); - if (datatrack) { - if (secondtrack) - cdrom_data_end = secondtrack; - else - cdrom_data_end = cdrom_toc_cd_buffer.lastaddress; - } - return 0; + cdrom_toc_counter = -1; + if (!sys_command_cd_toc (unitnum, &cdrom_toc_cd_buffer)) + return 1; + memset (cdrom_toc_buffer, 0, MAX_TOC_ENTRIES * 13); + cdrom_data_end = -1; + for (j = 0; j < cdrom_toc_cd_buffer.points; j++) + { + struct cd_toc *s = &cdrom_toc_cd_buffer.toc[j]; + uae_u8 *d = &cdrom_toc_buffer[j * 13]; + int addr = s->paddress; + int msf = lsn2msf (addr); + if (s->point == 0xa0 || s->point == 0xa1) + msf = s->track << 16; + d[1] = (s->adr << 0) | (s->control << 4); + d[3] = s->point < 100 ? tobcd (s->point) : s->point; + d[8] = tobcd ((msf >> 16) & 0xff); + d[9] = tobcd ((msf >> 8) & 0xff); + d[10] = tobcd ((msf >> 0) & 0xff); + if (s->point == 1 && (s->control & 0x0c) == 0x04) + datatrack = 1; + if (s->point == 2) + secondtrack = addr; + } + cdrom_toc_crc = get_crc32 (cdrom_toc_buffer, cdrom_toc_cd_buffer.points * 13); + if (datatrack) + { + if (secondtrack) + cdrom_data_end = secondtrack; + else + cdrom_data_end = cdrom_toc_cd_buffer.lastaddress; + } + return 0; } /* open device */ static int sys_cddev_open (void) { - struct device_info di; - unitnum = get_standard_cd_unit (CD_STANDARD_UNIT_CD32); - sys_command_info (unitnum, &di, 0); - write_log (_T("using drive %s (unit %d, media %d)\n"), di.label, unitnum, di.media_inserted); - /* make sure CD audio is not playing */ - cdaudiostop_do (); - return 0; + struct device_info di; + unitnum = get_standard_cd_unit (CD_STANDARD_UNIT_CD32); + sys_command_info (unitnum, &di, 0); + write_log (_T("using drive %s (unit %d, media %d)\n"), di.label, unitnum, di.media_inserted); + /* make sure CD audio is not playing */ + cdaudiostop_do (); + return 0; } /* close device */ static void sys_cddev_close (void) { - if (unitnum >= 0) { - cdaudiostop_do (); - sys_command_close (unitnum); - } - unitnum = -1; - + if (unitnum >= 0) + { + cdaudiostop_do (); + sys_command_close (unitnum); + } + unitnum = -1; + } static int command_lengths[] = { 1,2,1,1,12,2,1,1,4,1,2,-1,-1,-1,-1,-1 }; static int cdrom_start_return_data (int len) { - if (cdrom_receive_length > 0) - return 0; - if (len <= 0) - return -1; - cdrom_receive_length = len; - cdrom_receive_offset = -1; - return 1; + if (cdrom_receive_length > 0) + return 0; + if (len <= 0) + return -1; + cdrom_receive_length = len; + cdrom_receive_offset = -1; + return 1; } /* RX DMA channel writes bytes to memory if DMA enabled, cdcomrxinx != cdcomrxcmp and there is data available from CDROM firmware code. - + Triggers CDINTERRUPT_RXDMADONE and stops transfer (even if there is more data available) when cdcomrxinx matches cdcomrxcmp */ static void cdrom_return_data (void) { - uae_u32 cmd_buf = cdrx_address; - int i; - uae_u8 checksum; + uae_u32 cmd_buf = cdrx_address; + int i; + uae_u8 checksum; - if (!cdrom_receive_length) - return; - if (!(cdrom_flags & CDFLAG_RXD)) - return; - if (cdcomrxinx == cdcomrxcmp) - return; + if (!cdrom_receive_length) + return; + if (!(cdrom_flags & CDFLAG_RXD)) + return; + if (cdcomrxinx == cdcomrxcmp) + return; #if AKIKO_DEBUG_IO_CMD - write_log (_T("OUT IDX=0x%02X-0x%02X LEN=%d,%08x:"), cdcomrxinx, cdcomrxcmp, cdrom_receive_length, cmd_buf); + write_log (_T("OUT IDX=0x%02X-0x%02X LEN=%d,%08x:"), cdcomrxinx, cdcomrxcmp, cdrom_receive_length, cmd_buf); #endif - if (cdrom_receive_offset < 0) { - checksum = 0xff; - for (i = 0; i < cdrom_receive_length; i++) { - checksum -= cdrom_result_buffer[i]; + if (cdrom_receive_offset < 0) + { + checksum = 0xff; + for (i = 0; i < cdrom_receive_length; i++) + { + checksum -= cdrom_result_buffer[i]; #if AKIKO_DEBUG_IO_CMD - write_log (_T("%02X "), cdrom_result_buffer[i]); + write_log (_T("%02X "), cdrom_result_buffer[i]); #endif - } + } #if AKIKO_DEBUG_IO_CMD - write_log (_T("(%02X)\n"), checksum); + write_log (_T("(%02X)\n"), checksum); #endif - cdrom_result_buffer[cdrom_receive_length++] = checksum; - cdrom_receive_offset = 0; - } else { + cdrom_result_buffer[cdrom_receive_length++] = checksum; + cdrom_receive_offset = 0; + } + else + { #if AKIKO_DEBUG_IO_CMD - write_log (_T("\n")); + write_log (_T("\n")); #endif - } - while (cdrom_receive_offset < cdrom_receive_length && cdcomrxinx != cdcomrxcmp) { - put_byte (cmd_buf + cdcomrxinx, cdrom_result_buffer[cdrom_receive_offset]); - cdcomrxinx++; - cdrom_receive_offset++; - } - if (cdcomrxinx == cdcomrxcmp) { - set_status (CDINTERRUPT_RXDMADONE); + } + while (cdrom_receive_offset < cdrom_receive_length && cdcomrxinx != cdcomrxcmp) + { + put_byte (cmd_buf + cdcomrxinx, cdrom_result_buffer[cdrom_receive_offset]); + cdcomrxinx++; + cdrom_receive_offset++; + } + if (cdcomrxinx == cdcomrxcmp) + { + set_status (CDINTERRUPT_RXDMADONE); #if AKIKO_DEBUG_IO_CMD - write_log (_T("RXDMADONE %d/%d\n"), cdrom_receive_offset, cdrom_receive_length); + write_log (_T("RXDMADONE %d/%d\n"), cdrom_receive_offset, cdrom_receive_length); #endif - } + } - if (cdrom_receive_offset == cdrom_receive_length) - cdrom_receive_length = 0; + if (cdrom_receive_offset == cdrom_receive_length) + cdrom_receive_length = 0; } static int cdrom_command_led (void) { - int v = cdrom_command_buffer[1]; - int old = cdrom_led; - cdrom_led &= ~LED_CD_ACTIVE; - cdrom_led |= (v & 1) ? LED_CD_ACTIVE : 0; - if (cdrom_led != old) - gui_flicker_led (LED_CD, 0, cdrom_led); - if (v & 0x80) { // result wanted? - cdrom_result_buffer[0] = cdrom_command; - cdrom_result_buffer[1] = (cdrom_led & LED_CD_ACTIVE) ? 1 : 0; - return 2; - } - return 0; + int v = cdrom_command_buffer[1]; + int old = cdrom_led; + cdrom_led &= ~LED_CD_ACTIVE; + cdrom_led |= (v & 1) ? LED_CD_ACTIVE : 0; + if (cdrom_led != old) + gui_flicker_led (LED_CD, 0, cdrom_led); + if (v & 0x80) // result wanted? + { + cdrom_result_buffer[0] = cdrom_command; + cdrom_result_buffer[1] = (cdrom_led & LED_CD_ACTIVE) ? 1 : 0; + return 2; + } + return 0; } static int cdrom_command_idle_status (void) { - cdrom_result_buffer[0] = 0x0a; - cdrom_result_buffer[1] = 0x70; - return 2; + cdrom_result_buffer[0] = 0x0a; + cdrom_result_buffer[1] = 0x70; + return 2; } static int cdrom_command_media_status (void) { - cdrom_result_buffer[0] = 0x0a; - cdrom_result_buffer[1] = sys_command_ismedia (unitnum, 0) > 0 ? 0x83: 0x80; - return 2; + cdrom_result_buffer[0] = 0x0a; + cdrom_result_buffer[1] = sys_command_ismedia (unitnum, 0) > 0 ? 0x83: 0x80; + return 2; } /* check if cd drive door is open or closed, return firmware info */ static int cdrom_command_status (void) { - cdrom_result_buffer[1] = 0x01; - //cdrom_result_buffer[1] = 0x80; door open - if (unitnum >= 0) - get_cdrom_toc (); - /* firmware info */ - memcpy (cdrom_result_buffer + 2, FIRMWAREVERSION, sizeof FIRMWAREVERSION); - cdrom_result_buffer[0] = cdrom_command; - cd_initialized = 1; - return 20; + cdrom_result_buffer[1] = 0x01; + //cdrom_result_buffer[1] = 0x80; door open + if (unitnum >= 0) + get_cdrom_toc (); + /* firmware info */ + memcpy (cdrom_result_buffer + 2, FIRMWAREVERSION, sizeof FIRMWAREVERSION); + cdrom_result_buffer[0] = cdrom_command; + cd_initialized = 1; + return 20; } /* return one TOC entry, each TOC entry repeats 3 times */ #define TOC_REPEAT 3 static int cdrom_return_toc_entry (void) { - cdrom_result_buffer[0] = 6; + cdrom_result_buffer[0] = 6; #if AKIKO_DEBUG_IO_CMD - write_log (_T("CD32: TOC entry %d/%d\n"), cdrom_toc_counter / TOC_REPEAT, cdrom_toc_cd_buffer.points); + write_log (_T("CD32: TOC entry %d/%d\n"), cdrom_toc_counter / TOC_REPEAT, cdrom_toc_cd_buffer.points); #endif - if (cdrom_toc_cd_buffer.points == 0) { - cdrom_result_buffer[1] = CDS_ERROR; - return 15; - } - cdrom_result_buffer[1] = 0; - memcpy (cdrom_result_buffer + 2, cdrom_toc_buffer + (cdrom_toc_counter / TOC_REPEAT) * 13, 13); - cdrom_toc_counter++; - if (cdrom_toc_counter / TOC_REPEAT >= cdrom_toc_cd_buffer.points) - cdrom_toc_counter = -1; - return 15; + if (cdrom_toc_cd_buffer.points == 0) + { + cdrom_result_buffer[1] = CDS_ERROR; + return 15; + } + cdrom_result_buffer[1] = 0; + memcpy (cdrom_result_buffer + 2, cdrom_toc_buffer + (cdrom_toc_counter / TOC_REPEAT) * 13, 13); + cdrom_toc_counter++; + if (cdrom_toc_counter / TOC_REPEAT >= cdrom_toc_cd_buffer.points) + cdrom_toc_counter = -1; + return 15; } static int checkerr (void) { - if (!cdrom_disk) { - cdrom_result_buffer[1] = CH_ERR_NODISK; - return 1; - } - return 0; + if (!cdrom_disk) + { + cdrom_result_buffer[1] = CH_ERR_NODISK; + return 1; + } + return 0; } static int cdrom_command_stop (void) { - cdrom_audiotimeout = 0; - cdrom_result_buffer[0] = cdrom_command; - if (checkerr ()) - return 2; - cdrom_result_buffer[1] = 0; - cdaudiostop (); - return 2; + cdrom_audiotimeout = 0; + cdrom_result_buffer[0] = cdrom_command; + if (checkerr ()) + return 2; + cdrom_result_buffer[1] = 0; + cdaudiostop (); + return 2; } /* pause CD audio */ static int cdrom_command_pause (void) { #if AKIKO_DEBUG_IO_CMD - write_log (_T("CD32: pause: %d, %d\n"), cdrom_paused, cdrom_playing); + write_log (_T("CD32: pause: %d, %d\n"), cdrom_paused, cdrom_playing); #endif - cdrom_audiotimeout = 0; - cdrom_toc_counter = -1; - cdrom_result_buffer[0] = cdrom_command; - if (checkerr ()) - return 2; - cdrom_result_buffer[1] = cdrom_playing ? CDS_PLAYING : 0; - if (cdrom_paused) - return 2; - cdrom_paused = 1; - if (!cdrom_playing) - return 2; - write_comm_pipe_u32 (&requests, 0x0102, 1); - return 2; + cdrom_audiotimeout = 0; + cdrom_toc_counter = -1; + cdrom_result_buffer[0] = cdrom_command; + if (checkerr ()) + return 2; + cdrom_result_buffer[1] = cdrom_playing ? CDS_PLAYING : 0; + if (cdrom_paused) + return 2; + cdrom_paused = 1; + if (!cdrom_playing) + return 2; + write_comm_pipe_u32 (&requests, 0x0102, 1); + return 2; } /* unpause CD audio */ static int cdrom_command_unpause (void) { #if AKIKO_DEBUG_IO_CMD - write_log (_T("CD32: unpause: %d, %d\n"), cdrom_paused, cdrom_playing); + write_log (_T("CD32: unpause: %d, %d\n"), cdrom_paused, cdrom_playing); #endif - cdrom_result_buffer[0] = cdrom_command; - if (checkerr ()) - return 2; - cdrom_result_buffer[1] = cdrom_playing ? CDS_PLAYING : 0; - if (!cdrom_paused) - return 2; - cdrom_paused = 0; - if (!cdrom_playing) - return 2; - write_comm_pipe_u32 (&requests, 0x0103, 1); - return 2; + cdrom_result_buffer[0] = cdrom_command; + if (checkerr ()) + return 2; + cdrom_result_buffer[1] = cdrom_playing ? CDS_PLAYING : 0; + if (!cdrom_paused) + return 2; + cdrom_paused = 0; + if (!cdrom_playing) + return 2; + write_comm_pipe_u32 (&requests, 0x0103, 1); + return 2; } /* seek head/play CD audio/read data sectors */ static int cdrom_command_multi (void) { - int seekpos = msf2lsn (fromlongbcd (cdrom_command_buffer + 1)); - int endpos = msf2lsn (fromlongbcd (cdrom_command_buffer + 4)); + int seekpos = msf2lsn (fromlongbcd (cdrom_command_buffer + 1)); + int endpos = msf2lsn (fromlongbcd (cdrom_command_buffer + 4)); - if (cdrom_playing) - cdaudiostop (); - cdrom_speed = (cdrom_command_buffer[8] & 0x40) ? 2 : 1; - cdrom_result_buffer[0] = cdrom_command; - cdrom_result_buffer[1] = 0; - if (!cdrom_disk) { - cdrom_result_buffer[1] = 1; // no disk - return 2; - } + if (cdrom_playing) + cdaudiostop (); + cdrom_speed = (cdrom_command_buffer[8] & 0x40) ? 2 : 1; + cdrom_result_buffer[0] = cdrom_command; + cdrom_result_buffer[1] = 0; + if (!cdrom_disk) + { + cdrom_result_buffer[1] = 1; // no disk + return 2; + } - if (cdrom_command_buffer[7] == 0x80) { /* data read */ + if (cdrom_command_buffer[7] == 0x80) /* data read */ + { #if AKIKO_DEBUG_IO_CMD - int cdrom_data_offset_end = endpos; + int cdrom_data_offset_end = endpos; #endif - cdrom_data_offset = seekpos; - cdrom_seek_delay = abs (cdrom_current_sector - cdrom_data_offset); - if (cdrom_seek_delay < 100) { - cdrom_seek_delay = 1; - } else { - cdrom_seek_delay /= 1000; - cdrom_seek_delay += 10; - if (cdrom_seek_delay > 100) - cdrom_seek_delay = 100; - } + cdrom_data_offset = seekpos; + cdrom_seek_delay = abs (cdrom_current_sector - cdrom_data_offset); + if (cdrom_seek_delay < 100) + { + cdrom_seek_delay = 1; + } + else + { + cdrom_seek_delay /= 1000; + cdrom_seek_delay += 10; + if (cdrom_seek_delay > 100) + cdrom_seek_delay = 100; + } #if AKIKO_DEBUG_IO_CMD - write_log (_T("READ DATA %06X (%d) - %06X (%d) SPD=%dx PC=%08X\n"), - seekpos, cdrom_data_offset, endpos, cdrom_data_offset_end, cdrom_speed, M68K_GETPC); + write_log (_T("READ DATA %06X (%d) - %06X (%d) SPD=%dx PC=%08X\n"), + seekpos, cdrom_data_offset, endpos, cdrom_data_offset_end, cdrom_speed, M68K_GETPC); #endif - cdrom_result_buffer[1] |= 0x02; - } else if (cdrom_command_buffer[10] & 4) { /* play audio */ + cdrom_result_buffer[1] |= 0x02; + } + else if (cdrom_command_buffer[10] & 4) /* play audio */ + { #if AKIKO_DEBUG_IO_CMD - int scan = 0; - if (cdrom_command_buffer[7] & 0x04) - scan = 1; - else if (cdrom_command_buffer[7] & 0x08) - scan = -1; - write_log (_T("PLAY FROM %06X (%d) to %06X (%d) SCAN=%d\n"), - seekpos, msf2lsn (seekpos), endpos, msf2lsn (endpos), scan); + int scan = 0; + if (cdrom_command_buffer[7] & 0x04) + scan = 1; + else if (cdrom_command_buffer[7] & 0x08) + scan = -1; + write_log (_T("PLAY FROM %06X (%d) to %06X (%d) SCAN=%d\n"), + seekpos, msf2lsn (seekpos), endpos, msf2lsn (endpos), scan); #endif - //cdrom_result_buffer[1] |= CDS_PLAYING; - cdrom_playing = 1; - if (!cd_play_audio (seekpos, endpos, 0)) { - // play didn't start, report it in next status packet - cdrom_audiotimeout = -3; - } - } else { + //cdrom_result_buffer[1] |= CDS_PLAYING; + cdrom_playing = 1; + if (!cd_play_audio (seekpos, endpos, 0)) + { + // play didn't start, report it in next status packet + cdrom_audiotimeout = -3; + } + } + else + { #if AKIKO_DEBUG_IO_CMD - write_log (_T("SEEKTO %06X\n"),seekpos); + write_log (_T("SEEKTO %06X\n"),seekpos); #endif - if (seekpos < 150) - cdrom_toc_counter = 0; - else - cdrom_toc_counter = -1; - } - return 2; + if (seekpos < 150) + cdrom_toc_counter = 0; + else + cdrom_toc_counter = -1; + } + return 2; } static int cdrom_playend_notify (int status) { - cdrom_result_buffer[0] = 4; - if (status < 0) - cdrom_result_buffer[1] = 0x80; // error - else if (status == 0) - cdrom_result_buffer[1] = 0x08; // play started - else - cdrom_result_buffer[1] = 0x00; // play ended - return 2; + cdrom_result_buffer[0] = 4; + if (status < 0) + cdrom_result_buffer[1] = 0x80; // error + else if (status == 0) + cdrom_result_buffer[1] = 0x08; // play started + else + cdrom_result_buffer[1] = 0x00; // play ended + return 2; } /* return subq entry */ static int cdrom_command_subq (void) { - cdrom_result_buffer[0] = cdrom_command; - cdrom_result_buffer[1] = 0; - cd_qcode (cdrom_result_buffer + 2); - return 15; + cdrom_result_buffer[0] = cdrom_command; + cdrom_result_buffer[1] = 0; + cd_qcode (cdrom_result_buffer + 2); + return 15; } /* @@ -1063,423 +1131,469 @@ static int cdrom_command_subq (void) static void cdrom_run_command (void) { - int i, cmd_len; - uae_u8 checksum; + int i, cmd_len; + uae_u8 checksum; #if 0 - uae_u8 *pp = get_real_address (cdtx_address); + uae_u8 *pp = get_real_address (cdtx_address); #endif - if (!(cdrom_flags & CDFLAG_TXD)) - return; - if ((cdrom_flags & CDFLAG_ENABLE)) - return; - if (cdrom_command_active) - return; - if (cdrom_receive_length) - return; - if (cdcomtxinx == cdcomtxcmp) - return; - if (cdrom_tx_dma_delay > 0) - return; + if (!(cdrom_flags & CDFLAG_TXD)) + return; + if ((cdrom_flags & CDFLAG_ENABLE)) + return; + if (cdrom_command_active) + return; + if (cdrom_receive_length) + return; + if (cdcomtxinx == cdcomtxcmp) + return; + if (cdrom_tx_dma_delay > 0) + return; - cdrom_command = get_byte (cdtx_address + cdcomtxinx); + cdrom_command = get_byte (cdtx_address + cdcomtxinx); - if (cdrom_command == 0) { - cdcomtxinx++; - return; - } + if (cdrom_command == 0) + { + cdcomtxinx++; + return; + } - cdrom_checksum_error = 0; - cdrom_unknown_command = 0; + cdrom_checksum_error = 0; + cdrom_unknown_command = 0; - cmd_len = command_lengths[cdrom_command & 0x0f]; - if (cmd_len < 0) { + cmd_len = command_lengths[cdrom_command & 0x0f]; + if (cmd_len < 0) + { #if AKIKO_DEBUG_IO_CMD - write_log (_T("unknown command %x\n"), cdrom_command & 0x0f); + write_log (_T("unknown command %x\n"), cdrom_command & 0x0f); #endif - cdrom_unknown_command = 1; - cdrom_command_active = 1; - cdrom_command_length = 1; - set_status (CDINTERRUPT_TXDMADONE); - return; - } + cdrom_unknown_command = 1; + cdrom_command_active = 1; + cdrom_command_length = 1; + set_status (CDINTERRUPT_TXDMADONE); + return; + } #if AKIKO_DEBUG_IO_CMD - write_log (_T("IN CMD=%02X IDX=0x%02X-0x%02X LEN=%d:"), cdrom_command & 0x0f, cdcomtxinx, cdcomtxcmp, cmd_len); + write_log (_T("IN CMD=%02X IDX=0x%02X-0x%02X LEN=%d:"), cdrom_command & 0x0f, cdcomtxinx, cdcomtxcmp, cmd_len); #endif - checksum = 0; - for (i = 0; i < cmd_len + 1; i++) { - cdrom_command_buffer[i] = get_byte (cdtx_address + ((cdcomtxinx + i) & 0xff)); - checksum += cdrom_command_buffer[i]; + checksum = 0; + for (i = 0; i < cmd_len + 1; i++) + { + cdrom_command_buffer[i] = get_byte (cdtx_address + ((cdcomtxinx + i) & 0xff)); + checksum += cdrom_command_buffer[i]; #if AKIKO_DEBUG_IO_CMD - if (i == cmd_len) - write_log (_T("(%02X) "), cdrom_command_buffer[i]); // checksum - else - write_log (_T("%02X "), cdrom_command_buffer[i]); + if (i == cmd_len) + write_log (_T("(%02X) "), cdrom_command_buffer[i]); // checksum + else + write_log (_T("%02X "), cdrom_command_buffer[i]); #endif - } - if (checksum != 0xff) { + } + if (checksum != 0xff) + { #if AKIKO_DEBUG_IO_CMD - write_log (_T(" checksum error")); + write_log (_T(" checksum error")); #endif - cdrom_checksum_error = 1; - //activate_debugger (); - } + cdrom_checksum_error = 1; + //activate_debugger (); + } #if AKIKO_DEBUG_IO_CMD - write_log (_T("\n")); + write_log (_T("\n")); #endif - cdrom_command_active = 1; - cdrom_command_length = cmd_len; - set_status (CDINTERRUPT_TXDMADONE); + cdrom_command_active = 1; + cdrom_command_length = cmd_len; + set_status (CDINTERRUPT_TXDMADONE); } static void cdrom_run_command_run (void) { - int len; + int len; - cdcomtxinx = cdcomtxinx + cdrom_command_length + 1; - memset (cdrom_result_buffer, 0, sizeof (cdrom_result_buffer)); + cdcomtxinx = cdcomtxinx + cdrom_command_length + 1; + memset (cdrom_result_buffer, 0, sizeof (cdrom_result_buffer)); - if (cdrom_checksum_error || cdrom_unknown_command) { - cdrom_result_buffer[0] = (cdrom_command & 0xf0) | 5; - if (cdrom_checksum_error) - cdrom_result_buffer[1] |= CH_ERR_CHECKSUM; - else if (cdrom_unknown_command) - cdrom_result_buffer[1] |= CH_ERR_BADCOMMAND; - len = 2; - cdrom_start_return_data (len); - return; - } + if (cdrom_checksum_error || cdrom_unknown_command) + { + cdrom_result_buffer[0] = (cdrom_command & 0xf0) | 5; + if (cdrom_checksum_error) + cdrom_result_buffer[1] |= CH_ERR_CHECKSUM; + else if (cdrom_unknown_command) + cdrom_result_buffer[1] |= CH_ERR_BADCOMMAND; + len = 2; + cdrom_start_return_data (len); + return; + } - switch (cdrom_command & 0x0f) - { - case 0: - len = 1; - cdrom_result_buffer[0] = cdrom_command; - break; - case 1: - len = cdrom_command_stop (); - break; - case 2: - len = cdrom_command_pause (); - break; - case 3: - len = cdrom_command_unpause (); - break; - case 4: - len = cdrom_command_multi (); - break; - case 5: - len = cdrom_command_led (); - break; - case 6: - len = cdrom_command_subq (); - break; - case 7: - len = cdrom_command_status (); - break; - default: - len = 0; - break; - } - if (len == 0) - return; - cdrom_start_return_data (len); + switch (cdrom_command & 0x0f) + { + case 0: + len = 1; + cdrom_result_buffer[0] = cdrom_command; + break; + case 1: + len = cdrom_command_stop (); + break; + case 2: + len = cdrom_command_pause (); + break; + case 3: + len = cdrom_command_unpause (); + break; + case 4: + len = cdrom_command_multi (); + break; + case 5: + len = cdrom_command_led (); + break; + case 6: + len = cdrom_command_subq (); + break; + case 7: + len = cdrom_command_status (); + break; + default: + len = 0; + break; + } + if (len == 0) + return; + cdrom_start_return_data (len); } /* DMA transfer one CD sector */ static void cdrom_run_read (void) { - int i, sector, inc; - int sec; - int seccnt; + int i, sector, inc; + int sec; + int seccnt; - if (!(cdrom_flags & CDFLAG_ENABLE)) - return; - if (!cdrom_pbx) { - set_status (CDINTERRUPT_OVERFLOW); - return; - } - if (!(cdrom_flags & CDFLAG_PBX)) - return; - if (cdrom_data_offset < 0) - return; - if (unitnum < 0) - return; + if (!(cdrom_flags & CDFLAG_ENABLE)) + return; + if (!cdrom_pbx) + { + set_status (CDINTERRUPT_OVERFLOW); + return; + } + if (!(cdrom_flags & CDFLAG_PBX)) + return; + if (cdrom_data_offset < 0) + return; + if (unitnum < 0) + return; - inc = 1; - // always use highest available slot or Lotus 3 (Lotus Trilogy) fails to load - for (seccnt = 15; seccnt >= 0; seccnt--) { - if (cdrom_pbx & (1 << seccnt)) - break; - } - sector = cdrom_current_sector = cdrom_data_offset + cdrom_sector_counter; - sec = sector - sector_buffer_sector_1; - if (sector_buffer_sector_1 >= 0 && sec >= 0 && sec < SECTOR_BUFFER_SIZE) { - if (sector_buffer_info_1[sec] != 0xff && sector_buffer_info_1[sec] != 0) { - uae_u8 buf[2352]; + inc = 1; + // always use highest available slot or Lotus 3 (Lotus Trilogy) fails to load + for (seccnt = 15; seccnt >= 0; seccnt--) + { + if (cdrom_pbx & (1 << seccnt)) + break; + } + sector = cdrom_current_sector = cdrom_data_offset + cdrom_sector_counter; + sec = sector - sector_buffer_sector_1; + if (sector_buffer_sector_1 >= 0 && sec >= 0 && sec < SECTOR_BUFFER_SIZE) + { + if (sector_buffer_info_1[sec] != 0xff && sector_buffer_info_1[sec] != 0) + { + uae_u8 buf[2352]; - memcpy (buf, sector_buffer_1 + sec * 2352, 2352); - buf[0] = 0; - buf[1] = 0; - buf[2] = 0; - buf[3] = cdrom_sector_counter & 31; - for (i = 0; i < 2352; i++) - put_byte (cdrom_addressdata + seccnt * 4096 + i, buf[i]); - for (i = 0; i < 73 * 2; i++) - put_byte (cdrom_addressdata + seccnt * 4096 + 0xc00 + i, 0); - cdrom_pbx &= ~(1 << seccnt); - set_status (CDINTERRUPT_PBX); - } else { - inc = 0; - } - if (sector_buffer_info_1[sec] != 0xff) - sector_buffer_info_1[sec]--; + memcpy (buf, sector_buffer_1 + sec * 2352, 2352); + buf[0] = 0; + buf[1] = 0; + buf[2] = 0; + buf[3] = cdrom_sector_counter & 31; + for (i = 0; i < 2352; i++) + put_byte (cdrom_addressdata + seccnt * 4096 + i, buf[i]); + for (i = 0; i < 73 * 2; i++) + put_byte (cdrom_addressdata + seccnt * 4096 + 0xc00 + i, 0); + cdrom_pbx &= ~(1 << seccnt); + set_status (CDINTERRUPT_PBX); + } + else + { + inc = 0; + } + if (sector_buffer_info_1[sec] != 0xff) + sector_buffer_info_1[sec]--; #if AKIKO_DEBUG_IO_CMD - write_log (_T("pbx=%04x sec=%d, scnt=%d -> %d. %d (%04x) %08X\n"), - cdrom_pbx, cdrom_data_offset, cdrom_sector_counter, sector, seccnt, 1 << seccnt, cdrom_addressdata + seccnt * 4096); + write_log (_T("pbx=%04x sec=%d, scnt=%d -> %d. %d (%04x) %08X\n"), + cdrom_pbx, cdrom_data_offset, cdrom_sector_counter, sector, seccnt, 1 << seccnt, cdrom_addressdata + seccnt * 4096); #endif - } else { - inc = 0; - } - if (inc) - cdrom_sector_counter++; + } + else + { + inc = 0; + } + if (inc) + cdrom_sector_counter++; } static int lastmediastate = 0; static void akiko_handler (bool framesync) { - if (unitnum < 0) - return; - if (!cd_initialized || cdrom_receive_length) - return; + if (unitnum < 0) + return; + if (!cd_initialized || cdrom_receive_length) + return; - if (mediachanged) { - if (cdrom_start_return_data (0) < 0) { - cdrom_start_return_data (cdrom_command_media_status ()); - mediachanged = 0; - get_cdrom_toc (); - /* do not remove! first try may fail */ - get_cdrom_toc (); - } - return; - } - if (cdrom_audiotimeout > 1) - cdrom_audiotimeout--; - if (cdrom_audiotimeout == 1) { // play start - cdrom_playing = 1; - //cdrom_start_return_data (cdrom_playend_notify (0)); - cdrom_audiotimeout = 0; - } - if (cdrom_audiotimeout == -1) { // play finished (or disk end) - if (cdrom_playing) { - cdaudiostop (); - cdrom_audiotimeout = -2; - } else { - cdrom_audiotimeout = 0; - } - } - if (cdrom_audiotimeout == -2) { // play end notification - cdrom_start_return_data (cdrom_playend_notify (1)); - cdrom_audiotimeout = 0; - } - // play didn't start notification (illegal address) - if (cdrom_audiotimeout == -3) { // return error status - cdrom_start_return_data (cdrom_playend_notify (-1)); - cdrom_audiotimeout = 0; - } + if (mediachanged) + { + if (cdrom_start_return_data (0) < 0) + { + cdrom_start_return_data (cdrom_command_media_status ()); + mediachanged = 0; + get_cdrom_toc (); + /* do not remove! first try may fail */ + get_cdrom_toc (); + } + return; + } + if (cdrom_audiotimeout > 1) + cdrom_audiotimeout--; + if (cdrom_audiotimeout == 1) // play start + { + cdrom_playing = 1; + //cdrom_start_return_data (cdrom_playend_notify (0)); + cdrom_audiotimeout = 0; + } + if (cdrom_audiotimeout == -1) // play finished (or disk end) + { + if (cdrom_playing) + { + cdaudiostop (); + cdrom_audiotimeout = -2; + } + else + { + cdrom_audiotimeout = 0; + } + } + if (cdrom_audiotimeout == -2) // play end notification + { + cdrom_start_return_data (cdrom_playend_notify (1)); + cdrom_audiotimeout = 0; + } + // play didn't start notification (illegal address) + if (cdrom_audiotimeout == -3) // return error status + { + cdrom_start_return_data (cdrom_playend_notify (-1)); + cdrom_audiotimeout = 0; + } - /* one toc entry / frame */ - if (cdrom_toc_counter >= 0 && !cdrom_command_active) { - if (cdrom_start_return_data (-1)) { - cdrom_start_return_data (cdrom_return_toc_entry ()); - } - } + /* one toc entry / frame */ + if (cdrom_toc_counter >= 0 && !cdrom_command_active) + { + if (cdrom_start_return_data (-1)) + { + cdrom_start_return_data (cdrom_return_toc_entry ()); + } + } } static void akiko_internal (void) { - if (!currprefs.cs_cd32cd) - return; - cdrom_return_data (); - cdrom_run_command (); - if (cdrom_command_active > 0) { - cdrom_command_active--; - if (!cdrom_command_active) - cdrom_run_command_run (); - } + if (!currprefs.cs_cd32cd) + return; + cdrom_return_data (); + cdrom_run_command (); + if (cdrom_command_active > 0) + { + cdrom_command_active--; + if (!cdrom_command_active) + cdrom_run_command_run (); + } } void AKIKO_hsync_handler (void) { - bool framesync = false; - if (!currprefs.cs_cd32cd || !akiko_inited) - return; + bool framesync = false; + if (!currprefs.cs_cd32cd || !akiko_inited) + return; - static float framecounter; - framecounter--; - if (framecounter <= 0) { - if (cdrom_seek_delay <= 0) { - cdrom_run_read (); - } else { - cdrom_seek_delay--; - } - framecounter += (float)maxvpos * vblank_hz / (75.0 * cdrom_speed); - framesync = true; - } + static float framecounter; + framecounter--; + if (framecounter <= 0) + { + if (cdrom_seek_delay <= 0) + { + cdrom_run_read (); + } + else + { + cdrom_seek_delay--; + } + framecounter += (float)maxvpos * vblank_hz / (75.0 * cdrom_speed); + framesync = true; + } - if (cdrom_tx_dma_delay > 0) - cdrom_tx_dma_delay--; + if (cdrom_tx_dma_delay > 0) + cdrom_tx_dma_delay--; - subcodecounter--; - if (subcodecounter <= 0) { - if ((cdrom_flags & CDFLAG_SUBCODE) && cdrom_playing && subcodebufferoffset != subcodebufferoffsetw) { - uae_sem_wait (&sub_sem); - if (subcodebufferinuse[subcodebufferoffset]) { - if (cdrom_subcodeoffset >= 128) - cdrom_subcodeoffset = 0; - else - cdrom_subcodeoffset = 128; - // 96 byte subchannel data - for (int i = 0; i < SUB_CHANNEL_SIZE; i++) - put_byte (subcode_address + cdrom_subcodeoffset + i, subcodebuffer[subcodebufferoffset * SUB_CHANNEL_SIZE + i]); - put_long (subcode_address + cdrom_subcodeoffset + SUB_CHANNEL_SIZE, 0xffffffff); - subcodebufferinuse[subcodebufferoffset] = 0; - cdrom_subcodeoffset += 100; - subcodebufferoffset++; - if (subcodebufferoffset >= MAX_SUBCODEBUFFER) - subcodebufferoffset -= MAX_SUBCODEBUFFER; - set_status (CDINTERRUPT_SUBCODE); - //write_log (_T("*")); - } - uae_sem_post (&sub_sem); - } - subcodecounter = maxvpos * vblank_hz / (75 * cdrom_speed) - 5; - } + subcodecounter--; + if (subcodecounter <= 0) + { + if ((cdrom_flags & CDFLAG_SUBCODE) && cdrom_playing && subcodebufferoffset != subcodebufferoffsetw) + { + uae_sem_wait (&sub_sem); + if (subcodebufferinuse[subcodebufferoffset]) + { + if (cdrom_subcodeoffset >= 128) + cdrom_subcodeoffset = 0; + else + cdrom_subcodeoffset = 128; + // 96 byte subchannel data + for (int i = 0; i < SUB_CHANNEL_SIZE; i++) + put_byte (subcode_address + cdrom_subcodeoffset + i, subcodebuffer[subcodebufferoffset * SUB_CHANNEL_SIZE + i]); + put_long (subcode_address + cdrom_subcodeoffset + SUB_CHANNEL_SIZE, 0xffffffff); + subcodebufferinuse[subcodebufferoffset] = 0; + cdrom_subcodeoffset += 100; + subcodebufferoffset++; + if (subcodebufferoffset >= MAX_SUBCODEBUFFER) + subcodebufferoffset -= MAX_SUBCODEBUFFER; + set_status (CDINTERRUPT_SUBCODE); + //write_log (_T("*")); + } + uae_sem_post (&sub_sem); + } + subcodecounter = maxvpos * vblank_hz / (75 * cdrom_speed) - 5; + } - if (frame2counter > 0) - frame2counter--; - if (mediacheckcounter > 0) - mediacheckcounter--; + if (frame2counter > 0) + frame2counter--; + if (mediacheckcounter > 0) + mediacheckcounter--; - akiko_internal (); - akiko_handler (framesync); + akiko_internal (); + akiko_handler (framesync); } /* cdrom data buffering thread */ static void *akiko_thread (void *null) { - int i; - uae_u8 *tmp1; - uae_u8 *tmp2; - int tmp3; - int offset; - int sector; + int i; + uae_u8 *tmp1; + uae_u8 *tmp2; + int tmp3; + int offset; + int sector; - while (akiko_thread_running || comm_pipe_has_data (&requests)) { + while (akiko_thread_running || comm_pipe_has_data (&requests)) + { - if (comm_pipe_has_data (&requests)) { - uae_u32 b = read_comm_pipe_u32_blocking (&requests); - switch (b) - { - case 0x0102: // pause - sys_command_cd_pause (unitnum, 1); - break; - case 0x0103: // unpause - sys_command_cd_pause (unitnum, 0); - break; - case 0x0104: // stop - cdaudiostop_do (); - break; - case 0x0105: // mute change - sys_command_cd_volume (unitnum, cdrom_muted ? 0 : 0x7fff, cdrom_muted ? 0 : 0x7fff); - break; - case 0x0110: // do_play! - sys_command_cd_volume (unitnum, cdrom_muted ? 0 : 0x7fff, cdrom_muted ? 0 : 0x7fff); - cdaudioplay_do (); - break; - } - } + if (comm_pipe_has_data (&requests)) + { + uae_u32 b = read_comm_pipe_u32_blocking (&requests); + switch (b) + { + case 0x0102: // pause + sys_command_cd_pause (unitnum, 1); + break; + case 0x0103: // unpause + sys_command_cd_pause (unitnum, 0); + break; + case 0x0104: // stop + cdaudiostop_do (); + break; + case 0x0105: // mute change + sys_command_cd_volume (unitnum, cdrom_muted ? 0 : 0x7fff, cdrom_muted ? 0 : 0x7fff); + break; + case 0x0110: // do_play! + sys_command_cd_volume (unitnum, cdrom_muted ? 0 : 0x7fff, cdrom_muted ? 0 : 0x7fff); + cdaudioplay_do (); + break; + } + } - if (frame2counter <= 0) { - frame2counter = 312 * 50 / 2; - if (unitnum >= 0 && sys_command_cd_qcode (unitnum, qcode_buf)) { - qcode_valid = 1; - } - } + if (frame2counter <= 0) + { + frame2counter = 312 * 50 / 2; + if (unitnum >= 0 && sys_command_cd_qcode (unitnum, qcode_buf)) + { + qcode_valid = 1; + } + } - if (mediacheckcounter <= 0) { - mediacheckcounter = 312 * 50 * 2; - int media = sys_command_ismedia (unitnum, 1); - if (media < 0) { - write_log (_T("CD32: device unit %d lost\n"), unitnum); - media = lastmediastate = cdrom_disk = 0; - mediachanged = 1; - cdaudiostop_do (); - } else if (media != lastmediastate) { - if (!media && lastmediastate > 1) { - // ignore missing media if statefile restored with cd present - if (lastmediastate == 2) - write_log (_T("CD32: CD missing but statefile was stored with CD inserted: faking media present\n")); - lastmediastate = 3; - } else { - write_log (_T("CD32: media changed = %d\n"), media); - lastmediastate = cdrom_disk = media; - mediachanged = 1; - cdaudiostop_do (); - } - } - } + if (mediacheckcounter <= 0) + { + mediacheckcounter = 312 * 50 * 2; + int media = sys_command_ismedia (unitnum, 1); + if (media < 0) + { + write_log (_T("CD32: device unit %d lost\n"), unitnum); + media = lastmediastate = cdrom_disk = 0; + mediachanged = 1; + cdaudiostop_do (); + } + else if (media != lastmediastate) + { + if (!media && lastmediastate > 1) + { + // ignore missing media if statefile restored with cd present + if (lastmediastate == 2) + write_log (_T("CD32: CD missing but statefile was stored with CD inserted: faking media present\n")); + lastmediastate = 3; + } + else + { + write_log (_T("CD32: media changed = %d\n"), media); + lastmediastate = cdrom_disk = media; + mediachanged = 1; + cdaudiostop_do (); + } + } + } - uae_sem_wait (&akiko_sem); - sector = cdrom_current_sector; - for (i = 0; i < SECTOR_BUFFER_SIZE; i++) { - if (sector_buffer_info_1[i] == 0xff) - break; - } - if (cdrom_data_end > 0 && sector >= 0 && - (sector_buffer_sector_1 < 0 || sector < sector_buffer_sector_1 || sector >= sector_buffer_sector_1 + SECTOR_BUFFER_SIZE * 2 / 3 || i != SECTOR_BUFFER_SIZE)) { - memset (sector_buffer_info_2, 0, SECTOR_BUFFER_SIZE); + uae_sem_wait (&akiko_sem); + sector = cdrom_current_sector; + for (i = 0; i < SECTOR_BUFFER_SIZE; i++) + { + if (sector_buffer_info_1[i] == 0xff) + break; + } + if (cdrom_data_end > 0 && sector >= 0 && + (sector_buffer_sector_1 < 0 || sector < sector_buffer_sector_1 || sector >= sector_buffer_sector_1 + SECTOR_BUFFER_SIZE * 2 / 3 || i != SECTOR_BUFFER_SIZE)) + { + memset (sector_buffer_info_2, 0, SECTOR_BUFFER_SIZE); #if AKIKO_DEBUG_IO_CMD - write_log (_T("filling buffer sector=%d (max=%d)\n"), sector, cdrom_data_end); + write_log (_T("filling buffer sector=%d (max=%d)\n"), sector, cdrom_data_end); #endif - sector_buffer_sector_2 = sector; - offset = 0; - while (offset < SECTOR_BUFFER_SIZE) { - int ok = 0; - if (sector < cdrom_data_end) - ok = sys_command_cd_rawread (unitnum, sector_buffer_2 + offset * 2352, sector, 1, 2352); - sector_buffer_info_2[offset] = ok ? 3 : 0; - offset++; - sector++; - } - tmp1 = sector_buffer_info_1; - sector_buffer_info_1 = sector_buffer_info_2; - sector_buffer_info_2 = tmp1; - tmp2 = sector_buffer_1; - sector_buffer_1 = sector_buffer_2; - sector_buffer_2 = tmp2; - tmp3 = sector_buffer_sector_1; - sector_buffer_sector_1 = sector_buffer_sector_2; - sector_buffer_sector_2 = tmp3; - } - uae_sem_post (&akiko_sem); - sleep_millis (10); - } - akiko_thread_running = -1; - return 0; + sector_buffer_sector_2 = sector; + offset = 0; + while (offset < SECTOR_BUFFER_SIZE) + { + int ok = 0; + if (sector < cdrom_data_end) + ok = sys_command_cd_rawread (unitnum, sector_buffer_2 + offset * 2352, sector, 1, 2352); + sector_buffer_info_2[offset] = ok ? 3 : 0; + offset++; + sector++; + } + tmp1 = sector_buffer_info_1; + sector_buffer_info_1 = sector_buffer_info_2; + sector_buffer_info_2 = tmp1; + tmp2 = sector_buffer_1; + sector_buffer_1 = sector_buffer_2; + sector_buffer_2 = tmp2; + tmp3 = sector_buffer_sector_1; + sector_buffer_sector_1 = sector_buffer_sector_2; + sector_buffer_sector_2 = tmp3; + } + uae_sem_post (&akiko_sem); + sleep_millis (10); + } + akiko_thread_running = -1; + return 0; } STATIC_INLINE uae_u8 akiko_get_long (uae_u32 v, int offset) { - return v >> ((3 - offset) * 8); + return v >> ((3 - offset) * 8); } STATIC_INLINE void akiko_put_long (uae_u32 *p, int offset, int v) { - *p &= ~(0xff << ((3 - offset) * 8)); - *p |= v << ((3 - offset) * 8); + *p &= ~(0xff << ((3 - offset) * 8)); + *p |= v << ((3 - offset) * 8); } static uae_u32 REGPARAM3 akiko_lget (uaecptr) REGPARAM; @@ -1493,538 +1607,552 @@ static void REGPARAM3 akiko_bput (uaecptr, uae_u32) REGPARAM; static uae_u32 akiko_bget2 (uaecptr addr, int msg) { - uae_u8 v = 0; + uae_u8 v = 0; - addr &= 0xffff; + addr &= 0xffff; - switch (addr) - { - /* "CAFE" = Akiko identification. - * Kickstart ignores Akiko C2P if this ID isn't correct */ - case 0x02: - return 0xCA; - case 0x03: - return 0xFE; - /* NVRAM */ - case 0x30: - case 0x31: - case 0x32: - case 0x33: - if (currprefs.cs_cd32nvram) - v = akiko_nvram_read (addr - 0x30); - return v; + switch (addr) + { + /* "CAFE" = Akiko identification. + * Kickstart ignores Akiko C2P if this ID isn't correct */ + case 0x02: + return 0xCA; + case 0x03: + return 0xFE; + /* NVRAM */ + case 0x30: + case 0x31: + case 0x32: + case 0x33: + if (currprefs.cs_cd32nvram) + v = akiko_nvram_read (addr - 0x30); + return v; - /* C2P */ - case 0x38: - case 0x39: - case 0x3a: - case 0x3b: - if (currprefs.cs_cd32c2p) - v = akiko_c2p_read (addr - 0x38); - return v; - } + /* C2P */ + case 0x38: + case 0x39: + case 0x3a: + case 0x3b: + if (currprefs.cs_cd32c2p) + v = akiko_c2p_read (addr - 0x38); + return v; + } - uae_sem_wait (&akiko_sem); - switch (addr) - { - if (currprefs.cs_cd32cd) { - /* CDROM control */ - case 0x04: - case 0x05: - case 0x06: - case 0x07: - v = akiko_get_long (cdrom_intreq, addr - 0x04); - break; - case 0x08: - case 0x09: - case 0x0a: - case 0x0b: - v = akiko_get_long (cdrom_intena, addr - 0x08); - break; - case 0x10: - case 0x11: - case 0x12: - case 0x13: - v = akiko_get_long (cdrom_addressdata, addr - 0x10); - break; - case 0x14: - case 0x15: - case 0x16: - case 0x17: - v = akiko_get_long (cdrom_addressmisc, addr - 0x14); - break; - case 0x18: - v = cdrom_subcodeoffset; - break; - case 0x19: - v = cdcomtxinx; - break; - case 0x1a: - v = cdcomrxinx; - break; - case 0x1f: - v = cdcomrxcmp; - break; - case 0x20: - case 0x21: - v = akiko_get_long (cdrom_pbx, addr - 0x20 + 2); - break; - case 0x24: - case 0x25: - case 0x26: - case 0x27: - v = akiko_get_long (cdrom_flags, addr - 0x24); - break; - } else if (addr < 0x30) { - break; - } + uae_sem_wait (&akiko_sem); + switch (addr) + { + if (currprefs.cs_cd32cd) + { + /* CDROM control */ + case 0x04: + case 0x05: + case 0x06: + case 0x07: + v = akiko_get_long (cdrom_intreq, addr - 0x04); + break; + case 0x08: + case 0x09: + case 0x0a: + case 0x0b: + v = akiko_get_long (cdrom_intena, addr - 0x08); + break; + case 0x10: + case 0x11: + case 0x12: + case 0x13: + v = akiko_get_long (cdrom_addressdata, addr - 0x10); + break; + case 0x14: + case 0x15: + case 0x16: + case 0x17: + v = akiko_get_long (cdrom_addressmisc, addr - 0x14); + break; + case 0x18: + v = cdrom_subcodeoffset; + break; + case 0x19: + v = cdcomtxinx; + break; + case 0x1a: + v = cdcomrxinx; + break; + case 0x1f: + v = cdcomrxcmp; + break; + case 0x20: + case 0x21: + v = akiko_get_long (cdrom_pbx, addr - 0x20 + 2); + break; + case 0x24: + case 0x25: + case 0x26: + case 0x27: + v = akiko_get_long (cdrom_flags, addr - 0x24); + break; + } + else if (addr < 0x30) + { + break; + } - default: - write_log (_T("akiko_bget: unknown address %08X PC=%08X\n"), addr, M68K_GETPC); - v = 0; - break; - } - akiko_internal (); - uae_sem_post (&akiko_sem); - if (msg && addr < 0x30 && AKIKO_DEBUG_IO) - write_log (_T("akiko_bget %08X: %08X %02X\n"), M68K_GETPC, addr, v & 0xff); - return v; + default: + write_log (_T("akiko_bget: unknown address %08X PC=%08X\n"), addr, M68K_GETPC); + v = 0; + break; + } + akiko_internal (); + uae_sem_post (&akiko_sem); + if (msg && addr < 0x30 && AKIKO_DEBUG_IO) + write_log (_T("akiko_bget %08X: %08X %02X\n"), M68K_GETPC, addr, v & 0xff); + return v; } static uae_u32 REGPARAM2 akiko_bget (uaecptr addr) { #ifdef JIT - special_mem |= S_READ; + special_mem |= S_READ; #endif - return akiko_bget2 (addr, 1); + return akiko_bget2 (addr, 1); } static uae_u32 REGPARAM2 akiko_wget (uaecptr addr) { - uae_u16 v; + uae_u16 v; #ifdef JIT - special_mem |= S_READ; + special_mem |= S_READ; #endif - addr &= 0xffff; - v = akiko_bget2 (addr + 1, 0); - v |= akiko_bget2 (addr + 0, 0) << 8; - if (addr < 0x30 && AKIKO_DEBUG_IO) - write_log (_T("akiko_wget %08X: %08X %04X\n"), M68K_GETPC, addr, v & 0xffff); - return v; + addr &= 0xffff; + v = akiko_bget2 (addr + 1, 0); + v |= akiko_bget2 (addr + 0, 0) << 8; + if (addr < 0x30 && AKIKO_DEBUG_IO) + write_log (_T("akiko_wget %08X: %08X %04X\n"), M68K_GETPC, addr, v & 0xffff); + return v; } static uae_u32 REGPARAM2 akiko_lget (uaecptr addr) { - uae_u32 v; + uae_u32 v; #ifdef JIT - special_mem |= S_READ; + special_mem |= S_READ; #endif - addr &= 0xffff; - v = akiko_bget2 (addr + 3, 0); - v |= akiko_bget2 (addr + 2, 0) << 8; - v |= akiko_bget2 (addr + 1, 0) << 16; - v |= akiko_bget2 (addr + 0, 0) << 24; - if (addr < 0x30 && (addr != 4 && addr != 8) && AKIKO_DEBUG_IO) - write_log (_T("akiko_lget %08X: %08X %08X\n"), M68K_GETPC, addr, v); - return v; + addr &= 0xffff; + v = akiko_bget2 (addr + 3, 0); + v |= akiko_bget2 (addr + 2, 0) << 8; + v |= akiko_bget2 (addr + 1, 0) << 16; + v |= akiko_bget2 (addr + 0, 0) << 24; + if (addr < 0x30 && (addr != 4 && addr != 8) && AKIKO_DEBUG_IO) + write_log (_T("akiko_lget %08X: %08X %08X\n"), M68K_GETPC, addr, v); + return v; } static void akiko_bput2 (uaecptr addr, uae_u32 v, int msg) { - uae_u32 tmp; + uae_u32 tmp; - addr &= 0xffff; - v &= 0xff; + addr &= 0xffff; + v &= 0xff; - if(msg && addr < 0x30 && AKIKO_DEBUG_IO) - write_log (_T("akiko_bput %08X: %08X=%02X\n"), M68K_GETPC, addr, v & 0xff); + if(msg && addr < 0x30 && AKIKO_DEBUG_IO) + write_log (_T("akiko_bput %08X: %08X=%02X\n"), M68K_GETPC, addr, v & 0xff); - switch (addr) - { - case 0x30: - case 0x31: - case 0x32: - case 0x33: - if (currprefs.cs_cd32nvram) - akiko_nvram_write (addr - 0x30, v); - return; + switch (addr) + { + case 0x30: + case 0x31: + case 0x32: + case 0x33: + if (currprefs.cs_cd32nvram) + akiko_nvram_write (addr - 0x30, v); + return; - case 0x38: - case 0x39: - case 0x3a: - case 0x3b: - if (currprefs.cs_cd32c2p) - akiko_c2p_write (addr - 0x38, v); - return; - } + case 0x38: + case 0x39: + case 0x3a: + case 0x3b: + if (currprefs.cs_cd32c2p) + akiko_c2p_write (addr - 0x38, v); + return; + } - uae_sem_wait (&akiko_sem); - switch (addr) - { - if (currprefs.cs_cd32cd) { - case 0x04: - case 0x05: - case 0x06: - case 0x07: - akiko_put_long (&cdrom_intreq, addr - 0x04, v); - break; - case 0x08: - case 0x09: - case 0x0a: - case 0x0b: - akiko_put_long (&cdrom_intena, addr - 0x08, v); - if (addr == 8) - cdrom_intreq &= cdrom_intena; - break; - case 0x10: - case 0x11: - case 0x12: - case 0x13: - akiko_put_long (&cdrom_addressdata, addr - 0x10, v); - cdrom_addressdata &= 0x00fff000; - break; - case 0x14: - case 0x15: - case 0x16: - case 0x17: - akiko_put_long (&cdrom_addressmisc, addr - 0x14, v); - cdrom_addressmisc &= 0x00fffc00; - subcode_address = cdrom_addressmisc | 0x100; - cdrx_address = cdrom_addressmisc; - cdtx_address = cdrom_addressmisc | 0x200; - break; - case 0x18: - cdrom_intreq &= ~CDINTERRUPT_SUBCODE; - break; - case 0x1d: - cdrom_intreq &= ~CDINTERRUPT_TXDMADONE; - cdcomtxcmp = v; - cdrom_tx_dma_delay = 5; - break; - case 0x1f: - cdrom_intreq &= ~CDINTERRUPT_RXDMADONE; - cdcomrxcmp = v; - break; - case 0x20: - case 0x21: - tmp = cdrom_pbx; - akiko_put_long (&cdrom_pbx, addr - 0x20 + 2, v); - cdrom_pbx |= tmp; - cdrom_pbx &= 0xffff; - cdrom_intreq &= ~CDINTERRUPT_PBX; - break; - case 0x24: - case 0x25: - case 0x26: - case 0x27: - tmp = cdrom_flags; - akiko_put_long (&cdrom_flags, addr - 0x24, v); - if ((cdrom_flags & CDFLAG_ENABLE) && !(tmp & CDFLAG_ENABLE)) - cdrom_sector_counter = 0; - if (!(cdrom_flags & CDFLAG_PBX) && (tmp & CDFLAG_PBX)) - cdrom_pbx = 0; - if ((cdrom_flags & CDFLAG_SUBCODE) && !(tmp & CDFLAG_SUBCODE)) { - uae_sem_wait (&sub_sem); - memset (subcodebufferinuse, 0, sizeof subcodebufferinuse); - subcodebufferoffset = subcodebufferoffsetw = 0; - uae_sem_post (&sub_sem); - } - break; - } else if (addr < 0x30) { - break; - } + uae_sem_wait (&akiko_sem); + switch (addr) + { + if (currprefs.cs_cd32cd) + { + case 0x04: + case 0x05: + case 0x06: + case 0x07: + akiko_put_long (&cdrom_intreq, addr - 0x04, v); + break; + case 0x08: + case 0x09: + case 0x0a: + case 0x0b: + akiko_put_long (&cdrom_intena, addr - 0x08, v); + if (addr == 8) + cdrom_intreq &= cdrom_intena; + break; + case 0x10: + case 0x11: + case 0x12: + case 0x13: + akiko_put_long (&cdrom_addressdata, addr - 0x10, v); + cdrom_addressdata &= 0x00fff000; + break; + case 0x14: + case 0x15: + case 0x16: + case 0x17: + akiko_put_long (&cdrom_addressmisc, addr - 0x14, v); + cdrom_addressmisc &= 0x00fffc00; + subcode_address = cdrom_addressmisc | 0x100; + cdrx_address = cdrom_addressmisc; + cdtx_address = cdrom_addressmisc | 0x200; + break; + case 0x18: + cdrom_intreq &= ~CDINTERRUPT_SUBCODE; + break; + case 0x1d: + cdrom_intreq &= ~CDINTERRUPT_TXDMADONE; + cdcomtxcmp = v; + cdrom_tx_dma_delay = 5; + break; + case 0x1f: + cdrom_intreq &= ~CDINTERRUPT_RXDMADONE; + cdcomrxcmp = v; + break; + case 0x20: + case 0x21: + tmp = cdrom_pbx; + akiko_put_long (&cdrom_pbx, addr - 0x20 + 2, v); + cdrom_pbx |= tmp; + cdrom_pbx &= 0xffff; + cdrom_intreq &= ~CDINTERRUPT_PBX; + break; + case 0x24: + case 0x25: + case 0x26: + case 0x27: + tmp = cdrom_flags; + akiko_put_long (&cdrom_flags, addr - 0x24, v); + if ((cdrom_flags & CDFLAG_ENABLE) && !(tmp & CDFLAG_ENABLE)) + cdrom_sector_counter = 0; + if (!(cdrom_flags & CDFLAG_PBX) && (tmp & CDFLAG_PBX)) + cdrom_pbx = 0; + if ((cdrom_flags & CDFLAG_SUBCODE) && !(tmp & CDFLAG_SUBCODE)) + { + uae_sem_wait (&sub_sem); + memset (subcodebufferinuse, 0, sizeof subcodebufferinuse); + subcodebufferoffset = subcodebufferoffsetw = 0; + uae_sem_post (&sub_sem); + } + break; + } + else if (addr < 0x30) + { + break; + } - default: - write_log (_T("akiko_bput: unknown address %08X=%02X PC=%08X\n"), addr, v & 0xff, M68K_GETPC); - break; - } - akiko_internal (); - uae_sem_post (&akiko_sem); + default: + write_log (_T("akiko_bput: unknown address %08X=%02X PC=%08X\n"), addr, v & 0xff, M68K_GETPC); + break; + } + akiko_internal (); + uae_sem_post (&akiko_sem); } static void REGPARAM2 akiko_bput (uaecptr addr, uae_u32 v) { #ifdef JIT - special_mem |= S_WRITE; + special_mem |= S_WRITE; #endif - akiko_bput2 (addr, v, 1); + akiko_bput2 (addr, v, 1); } static void REGPARAM2 akiko_wput (uaecptr addr, uae_u32 v) { #ifdef JIT - special_mem |= S_WRITE; + special_mem |= S_WRITE; #endif - addr &= 0xfff; - if((addr < 0x30 && AKIKO_DEBUG_IO)) - write_log (_T("akiko_wput %08X: %08X=%04X\n"), M68K_GETPC, addr, v & 0xffff); - akiko_bput2 (addr + 1, v & 0xff, 0); - akiko_bput2 (addr + 0, v >> 8, 0); + addr &= 0xfff; + if((addr < 0x30 && AKIKO_DEBUG_IO)) + write_log (_T("akiko_wput %08X: %08X=%04X\n"), M68K_GETPC, addr, v & 0xffff); + akiko_bput2 (addr + 1, v & 0xff, 0); + akiko_bput2 (addr + 0, v >> 8, 0); } static void REGPARAM2 akiko_lput (uaecptr addr, uae_u32 v) { #ifdef JIT - special_mem |= S_WRITE; + special_mem |= S_WRITE; #endif - addr &= 0xffff; - if(addr < 0x30 && AKIKO_DEBUG_IO) - write_log (_T("akiko_lput %08X: %08X=%08X\n"), M68K_GETPC, addr, v); - akiko_bput2 (addr + 3, (v >> 0) & 0xff, 0); - akiko_bput2 (addr + 2, (v >> 8) & 0xff, 0); - akiko_bput2 (addr + 1, (v >> 16) & 0xff, 0); - akiko_bput2 (addr + 0, (v >> 24) & 0xff, 0); + addr &= 0xffff; + if(addr < 0x30 && AKIKO_DEBUG_IO) + write_log (_T("akiko_lput %08X: %08X=%08X\n"), M68K_GETPC, addr, v); + akiko_bput2 (addr + 3, (v >> 0) & 0xff, 0); + akiko_bput2 (addr + 2, (v >> 8) & 0xff, 0); + akiko_bput2 (addr + 1, (v >> 16) & 0xff, 0); + akiko_bput2 (addr + 0, (v >> 24) & 0xff, 0); } -addrbank akiko_bank = { - akiko_lget, akiko_wget, akiko_bget, - akiko_lput, akiko_wput, akiko_bput, - default_xlate, default_check, NULL, _T("Akiko"), - dummy_lgeti, dummy_wgeti, ABFLAG_IO +addrbank akiko_bank = +{ + akiko_lget, akiko_wget, akiko_bget, + akiko_lput, akiko_wput, akiko_bput, + default_xlate, default_check, NULL, _T("Akiko"), + dummy_lgeti, dummy_wgeti, ABFLAG_IO }; static void akiko_cdrom_free (void) { - sys_cddev_close (); - xfree (sector_buffer_1); - xfree (sector_buffer_2); - xfree (sector_buffer_info_1); - xfree (sector_buffer_info_2); - sector_buffer_1 = 0; - sector_buffer_2 = 0; - sector_buffer_info_1 = 0; - sector_buffer_info_2 = 0; + sys_cddev_close (); + xfree (sector_buffer_1); + xfree (sector_buffer_2); + xfree (sector_buffer_info_1); + xfree (sector_buffer_info_2); + sector_buffer_1 = 0; + sector_buffer_2 = 0; + sector_buffer_info_1 = 0; + sector_buffer_info_2 = 0; } void akiko_reset (void) { - cdaudiostop_do (); - nvram_read (); - state = I2C_WAIT; - bitcounter = -1; - direction = -1; + cdaudiostop_do (); + nvram_read (); + state = I2C_WAIT; + bitcounter = -1; + direction = -1; - cdrom_speed = 1; - cdrom_current_sector = -1; - if (!savestate_state) { - cdcomtxinx = 0; - cdcomrxinx = 0; - cdcomtxcmp = 0; - lastmediastate = -1; - } - cdrom_led = 0; - cdrom_receive_length = 0; - cdrom_receive_offset = 0; - cd_initialized = 0; + cdrom_speed = 1; + cdrom_current_sector = -1; + if (!savestate_state) + { + cdcomtxinx = 0; + cdcomrxinx = 0; + cdcomtxcmp = 0; + lastmediastate = -1; + } + cdrom_led = 0; + cdrom_receive_length = 0; + cdrom_receive_offset = 0; + cd_initialized = 0; - if (akiko_thread_running > 0) { - cdaudiostop (); - akiko_thread_running = 0; - while(akiko_thread_running == 0) - Sleep (10); - akiko_thread_running = 0; - } - akiko_cdrom_free (); - mediacheckcounter = 0; - akiko_inited = false; + if (akiko_thread_running > 0) + { + cdaudiostop (); + akiko_thread_running = 0; + while(akiko_thread_running == 0) + Sleep (10); + akiko_thread_running = 0; + } + akiko_cdrom_free (); + mediacheckcounter = 0; + akiko_inited = false; } void akiko_free (void) { - akiko_reset (); - akiko_cdrom_free (); + akiko_reset (); + akiko_cdrom_free (); } int akiko_init (void) { - if (!currprefs.cs_cd32cd) - return 0; - akiko_free (); - akiko_precalculate (); - unitnum = -1; - sys_cddev_open (); - sector_buffer_1 = xmalloc (uae_u8, SECTOR_BUFFER_SIZE * 2352); - sector_buffer_2 = xmalloc (uae_u8, SECTOR_BUFFER_SIZE * 2352); - sector_buffer_info_1 = xmalloc (uae_u8, SECTOR_BUFFER_SIZE); - sector_buffer_info_2 = xmalloc (uae_u8, SECTOR_BUFFER_SIZE); - sector_buffer_sector_1 = -1; - sector_buffer_sector_2 = -1; - uae_sem_init (&akiko_sem, 0, 1); - uae_sem_init (&sub_sem, 0, 1); - if (!savestate_state) { - cdrom_playing = cdrom_paused = 0; - cdrom_data_offset = -1; - } - if (!akiko_thread_running) { - akiko_thread_running = 1; - init_comm_pipe (&requests, 100, 1); - uae_start_thread (_T("akiko"), akiko_thread, 0, NULL); - } - gui_flicker_led (LED_HD, 0, -1); - akiko_inited = true; - return 1; + if (!currprefs.cs_cd32cd) + return 0; + akiko_free (); + akiko_precalculate (); + unitnum = -1; + sys_cddev_open (); + sector_buffer_1 = xmalloc (uae_u8, SECTOR_BUFFER_SIZE * 2352); + sector_buffer_2 = xmalloc (uae_u8, SECTOR_BUFFER_SIZE * 2352); + sector_buffer_info_1 = xmalloc (uae_u8, SECTOR_BUFFER_SIZE); + sector_buffer_info_2 = xmalloc (uae_u8, SECTOR_BUFFER_SIZE); + sector_buffer_sector_1 = -1; + sector_buffer_sector_2 = -1; + uae_sem_init (&akiko_sem, 0, 1); + uae_sem_init (&sub_sem, 0, 1); + if (!savestate_state) + { + cdrom_playing = cdrom_paused = 0; + cdrom_data_offset = -1; + } + if (!akiko_thread_running) + { + akiko_thread_running = 1; + init_comm_pipe (&requests, 100, 1); + uae_start_thread (_T("akiko"), akiko_thread, 0, NULL); + } + gui_flicker_led (LED_HD, 0, -1); + akiko_inited = true; + return 1; } #ifdef SAVESTATE uae_u8 *save_akiko (int *len, uae_u8 *dstptr) { - uae_u8 *dstbak, *dst; - int i; + uae_u8 *dstbak, *dst; + int i; - if (!currprefs.cs_cd32cd) - return NULL; + if (!currprefs.cs_cd32cd) + return NULL; - if (dstptr) - dstbak = dst = dstptr; - else - dstbak = dst = xmalloc (uae_u8, 1000); - save_u16 (0); - save_u16 (0xCAFE); - save_u32 (cdrom_intreq); - save_u32 (cdrom_intena); - save_u32 (0); - save_u32 (cdrom_addressdata); - save_u32 (cdrom_addressmisc); - save_u8 (cdrom_subcodeoffset); - save_u8 (cdcomtxinx); - save_u8 (cdcomrxinx); - save_u8 (0); - save_u8 (0); - save_u8 (cdcomtxcmp); - save_u8 (0); - save_u8 (cdcomrxcmp); - save_u16 ((uae_u16)cdrom_pbx); - save_u16 (0); - save_u32 (cdrom_flags); - save_u32 (0); - save_u32 (0); - save_u32 ((scl_dir ? 0x8000 : 0) | (sda_dir ? 0x4000 : 0)); - save_u32 (0); - save_u32 (0); + if (dstptr) + dstbak = dst = dstptr; + else + dstbak = dst = xmalloc (uae_u8, 1000); + save_u16 (0); + save_u16 (0xCAFE); + save_u32 (cdrom_intreq); + save_u32 (cdrom_intena); + save_u32 (0); + save_u32 (cdrom_addressdata); + save_u32 (cdrom_addressmisc); + save_u8 (cdrom_subcodeoffset); + save_u8 (cdcomtxinx); + save_u8 (cdcomrxinx); + save_u8 (0); + save_u8 (0); + save_u8 (cdcomtxcmp); + save_u8 (0); + save_u8 (cdcomrxcmp); + save_u16 ((uae_u16)cdrom_pbx); + save_u16 (0); + save_u32 (cdrom_flags); + save_u32 (0); + save_u32 (0); + save_u32 ((scl_dir ? 0x8000 : 0) | (sda_dir ? 0x4000 : 0)); + save_u32 (0); + save_u32 (0); - for (i = 0; i < 8; i++) - save_u32 (akiko_buffer[i]); - save_u8 ((uae_u8)akiko_read_offset); - save_u8 ((uae_u8)akiko_write_offset); + for (i = 0; i < 8; i++) + save_u32 (akiko_buffer[i]); + save_u8 ((uae_u8)akiko_read_offset); + save_u8 ((uae_u8)akiko_write_offset); - save_u32 ((cdrom_playing ? 1 : 0) | (cdrom_paused ? 2 : 0) | (cdrom_disk ? 4 : 0)); - if (cdrom_playing) - cd_qcode (0); - save_u32 (lsn2msf (last_play_pos)); - save_u32 (lsn2msf (last_play_end)); - save_u8 ((uae_u8)cdrom_toc_counter); + save_u32 ((cdrom_playing ? 1 : 0) | (cdrom_paused ? 2 : 0) | (cdrom_disk ? 4 : 0)); + if (cdrom_playing) + cd_qcode (0); + save_u32 (lsn2msf (last_play_pos)); + save_u32 (lsn2msf (last_play_end)); + save_u8 ((uae_u8)cdrom_toc_counter); - save_u8 (cdrom_speed); - save_u8 (cdrom_current_sector); + save_u8 (cdrom_speed); + save_u8 (cdrom_current_sector); - save_u32 (cdrom_toc_crc); - save_u8 (cdrom_toc_cd_buffer.points); - save_u32 (cdrom_toc_cd_buffer.lastaddress); + save_u32 (cdrom_toc_crc); + save_u8 (cdrom_toc_cd_buffer.points); + save_u32 (cdrom_toc_cd_buffer.lastaddress); - *len = dst - dstbak; - return dstbak; + *len = dst - dstbak; + return dstbak; } uae_u8 *restore_akiko (uae_u8 *src) { - uae_u32 v; - int i; + uae_u32 v; + int i; - akiko_free (); - if (!currprefs.cs_cd32cd) { - changed_prefs.cs_cd32c2p = changed_prefs.cs_cd32cd = changed_prefs.cs_cd32nvram = true; - currprefs.cs_cd32c2p = currprefs.cs_cd32cd = currprefs.cs_cd32nvram = true; - akiko_init (); - } + akiko_free (); + if (!currprefs.cs_cd32cd) + { + changed_prefs.cs_cd32c2p = changed_prefs.cs_cd32cd = changed_prefs.cs_cd32nvram = true; + currprefs.cs_cd32c2p = currprefs.cs_cd32cd = currprefs.cs_cd32nvram = true; + akiko_init (); + } - restore_u16 (); - restore_u16 (); - cdrom_intreq = restore_u32 (); - cdrom_intena = restore_u32 (); - restore_u32 (); - cdrom_addressdata = restore_u32 (); - cdrom_addressmisc = restore_u32 (); - subcode_address = cdrom_addressmisc | 0x100; - cdrx_address = cdrom_addressmisc; - cdtx_address = cdrom_addressmisc | 0x200; - cdrom_subcodeoffset = restore_u8 (); - cdcomtxinx = restore_u8 (); - cdcomrxinx = restore_u8 (); - restore_u8 (); - restore_u8 (); - cdcomtxcmp = restore_u8 (); - restore_u8 (); - cdcomrxcmp = restore_u8 (); - cdrom_pbx = restore_u16 (); - restore_u16 (); - cdrom_flags = restore_u32 (); - restore_u32 (); - restore_u32 (); - v = restore_u32 (); - scl_dir = (v & 0x8000) ? 1 : 0; - sda_dir = (v & 0x4000) ? 1 : 0; - restore_u32 (); - restore_u32 (); + restore_u16 (); + restore_u16 (); + cdrom_intreq = restore_u32 (); + cdrom_intena = restore_u32 (); + restore_u32 (); + cdrom_addressdata = restore_u32 (); + cdrom_addressmisc = restore_u32 (); + subcode_address = cdrom_addressmisc | 0x100; + cdrx_address = cdrom_addressmisc; + cdtx_address = cdrom_addressmisc | 0x200; + cdrom_subcodeoffset = restore_u8 (); + cdcomtxinx = restore_u8 (); + cdcomrxinx = restore_u8 (); + restore_u8 (); + restore_u8 (); + cdcomtxcmp = restore_u8 (); + restore_u8 (); + cdcomrxcmp = restore_u8 (); + cdrom_pbx = restore_u16 (); + restore_u16 (); + cdrom_flags = restore_u32 (); + restore_u32 (); + restore_u32 (); + v = restore_u32 (); + scl_dir = (v & 0x8000) ? 1 : 0; + sda_dir = (v & 0x4000) ? 1 : 0; + restore_u32 (); + restore_u32 (); - for (i = 0; i < 8; i++) - akiko_buffer[i] = restore_u32 (); - akiko_read_offset = restore_u8 (); - akiko_write_offset = restore_u8 (); + for (i = 0; i < 8; i++) + akiko_buffer[i] = restore_u32 (); + akiko_read_offset = restore_u8 (); + akiko_write_offset = restore_u8 (); - cdrom_playing = cdrom_paused = cdrom_disk = 0; - v = restore_u32 (); - if (v & 1) - cdrom_playing = 1; - if (v & 2) - cdrom_paused = 1; - if (v & 4) - cdrom_disk = 1; - lastmediastate = cdrom_disk ? 2 : 0; + cdrom_playing = cdrom_paused = cdrom_disk = 0; + v = restore_u32 (); + if (v & 1) + cdrom_playing = 1; + if (v & 2) + cdrom_paused = 1; + if (v & 4) + cdrom_disk = 1; + lastmediastate = cdrom_disk ? 2 : 0; - last_play_pos = msf2lsn (restore_u32 ()); - last_play_end = msf2lsn (restore_u32 ()); - cdrom_toc_counter = (uae_s8)restore_u8 (); - cdrom_speed = restore_u8 (); - cdrom_current_sector = (uae_s8)restore_u8 (); + last_play_pos = msf2lsn (restore_u32 ()); + last_play_end = msf2lsn (restore_u32 ()); + cdrom_toc_counter = (uae_s8)restore_u8 (); + cdrom_speed = restore_u8 (); + cdrom_current_sector = (uae_s8)restore_u8 (); - restore_u32 (); - restore_u8 (); - restore_u32 (); + restore_u32 (); + restore_u8 (); + restore_u32 (); - return src; + return src; } void restore_akiko_finish (void) { - if (!currprefs.cs_cd32cd) - return; - sys_cddev_close (); - akiko_init (); - akiko_c2p_do (); - get_cdrom_toc (); - write_comm_pipe_u32 (&requests, 0x0102, 1); // pause - write_comm_pipe_u32 (&requests, 0x0104, 1); // stop - write_comm_pipe_u32 (&requests, 0x0103, 1); // unpause - if (cdrom_playing && isaudiotrack (last_play_pos)) { - write_comm_pipe_u32 (&requests, 0x0103, 1); // unpause - write_comm_pipe_u32 (&requests, 0x0110, 0); // play - write_comm_pipe_u32 (&requests, last_play_pos, 0); - write_comm_pipe_u32 (&requests, last_play_end, 0); - write_comm_pipe_u32 (&requests, 0, 1); - } - cd_initialized = 1; + if (!currprefs.cs_cd32cd) + return; + sys_cddev_close (); + akiko_init (); + akiko_c2p_do (); + get_cdrom_toc (); + write_comm_pipe_u32 (&requests, 0x0102, 1); // pause + write_comm_pipe_u32 (&requests, 0x0104, 1); // stop + write_comm_pipe_u32 (&requests, 0x0103, 1); // unpause + if (cdrom_playing && isaudiotrack (last_play_pos)) + { + write_comm_pipe_u32 (&requests, 0x0103, 1); // unpause + write_comm_pipe_u32 (&requests, 0x0110, 0); // play + write_comm_pipe_u32 (&requests, last_play_pos, 0); + write_comm_pipe_u32 (&requests, last_play_end, 0); + write_comm_pipe_u32 (&requests, 0, 1); + } + cd_initialized = 1; } #endif void akiko_mute (int muted) { - cdrom_muted = muted; - if (unitnum >= 0) - write_comm_pipe_u32 (&requests, 0x0105, 1); + cdrom_muted = muted; + if (unitnum >= 0) + write_comm_pipe_u32 (&requests, 0x0105, 1); } diff --git a/src/archivers/7z/7zBuf.cpp b/src/archivers/7z/7zBuf.cpp index a35fa2f9..6573dae7 100644 --- a/src/archivers/7z/7zBuf.cpp +++ b/src/archivers/7z/7zBuf.cpp @@ -7,30 +7,30 @@ Public domain */ void Buf_Init(CBuf *p) { - p->data = 0; - p->size = 0; + p->data = 0; + p->size = 0; } int Buf_Create(CBuf *p, size_t size, ISzAlloc *alloc) { - p->size = 0; - if (size == 0) - { - p->data = 0; - return 1; - } - p->data = (Byte *)alloc->Alloc(alloc, size); - if (p->data != 0) - { - p->size = size; - return 1; - } - return 0; + p->size = 0; + if (size == 0) + { + p->data = 0; + return 1; + } + p->data = (Byte *)alloc->Alloc(alloc, size); + if (p->data != 0) + { + p->size = size; + return 1; + } + return 0; } void Buf_Free(CBuf *p, ISzAlloc *alloc) { - alloc->Free(alloc, p->data); - p->data = 0; - p->size = 0; + alloc->Free(alloc, p->data); + p->data = 0; + p->size = 0; } diff --git a/src/archivers/7z/7zBuf.h b/src/archivers/7z/7zBuf.h index 49b2354b..f7330872 100644 --- a/src/archivers/7z/7zBuf.h +++ b/src/archivers/7z/7zBuf.h @@ -8,8 +8,8 @@ typedef struct { - Byte *data; - size_t size; + Byte *data; + size_t size; } CBuf; void Buf_Init(CBuf *p); @@ -18,9 +18,9 @@ void Buf_Free(CBuf *p, ISzAlloc *alloc); typedef struct { - Byte *data; - size_t size; - size_t pos; + Byte *data; + size_t size; + size_t pos; } CDynBuf; void DynBuf_Construct(CDynBuf *p); diff --git a/src/archivers/7z/7zCrc.cpp b/src/archivers/7z/7zCrc.cpp index 92c47de0..6975cecc 100644 --- a/src/archivers/7z/7zCrc.cpp +++ b/src/archivers/7z/7zCrc.cpp @@ -10,26 +10,26 @@ UInt32 g_CrcTable[256]; void MY_FAST_CALL CrcGenerateTable(void) { - UInt32 i; - for (i = 0; i < 256; i++) - { - UInt32 r = i; - int j; - for (j = 0; j < 8; j++) - r = (r >> 1) ^ (kCrcPoly & ~((r & 1) - 1)); - g_CrcTable[i] = r; - } + UInt32 i; + for (i = 0; i < 256; i++) + { + UInt32 r = i; + int j; + for (j = 0; j < 8; j++) + r = (r >> 1) ^ (kCrcPoly & ~((r & 1) - 1)); + g_CrcTable[i] = r; + } } UInt32 MY_FAST_CALL CrcUpdate(UInt32 v, const void *data, size_t size) { - const Byte *p = (const Byte *)data; - for (; size > 0 ; size--, p++) - v = CRC_UPDATE_BYTE(v, *p); - return v; + const Byte *p = (const Byte *)data; + for (; size > 0 ; size--, p++) + v = CRC_UPDATE_BYTE(v, *p); + return v; } UInt32 MY_FAST_CALL CrcCalc(const void *data, size_t size) { - return CrcUpdate(CRC_INIT_VAL, data, size) ^ 0xFFFFFFFF; + return CrcUpdate(CRC_INIT_VAL, data, size) ^ 0xFFFFFFFF; } diff --git a/src/archivers/7z/7zStream.cpp b/src/archivers/7z/7zStream.cpp index a0a2405d..77aa6c39 100644 --- a/src/archivers/7z/7zStream.cpp +++ b/src/archivers/7z/7zStream.cpp @@ -7,163 +7,163 @@ SRes SeqInStream_Read2(ISeqInStream *stream, void *buf, size_t size, SRes errorType) { - while (size != 0) - { - size_t processed = size; - RINOK(stream->Read(stream, buf, &processed)); - if (processed == 0) - return errorType; - buf = (void *)((Byte *)buf + processed); - size -= processed; - } - return SZ_OK; + while (size != 0) + { + size_t processed = size; + RINOK(stream->Read(stream, buf, &processed)); + if (processed == 0) + return errorType; + buf = (void *)((Byte *)buf + processed); + size -= processed; + } + return SZ_OK; } SRes SeqInStream_Read(ISeqInStream *stream, void *buf, size_t size) { - return SeqInStream_Read2(stream, buf, size, SZ_ERROR_INPUT_EOF); + return SeqInStream_Read2(stream, buf, size, SZ_ERROR_INPUT_EOF); } SRes SeqInStream_ReadByte(ISeqInStream *stream, Byte *buf) { - size_t processed = 1; - RINOK(stream->Read(stream, buf, &processed)); - return (processed == 1) ? SZ_OK : SZ_ERROR_INPUT_EOF; + size_t processed = 1; + RINOK(stream->Read(stream, buf, &processed)); + return (processed == 1) ? SZ_OK : SZ_ERROR_INPUT_EOF; } SRes LookInStream_SeekTo(ILookInStream *stream, UInt64 offset) { - Int64 t = offset; - return stream->Seek(stream, &t, SZ_SEEK_SET); + Int64 t = offset; + return stream->Seek(stream, &t, SZ_SEEK_SET); } SRes LookInStream_LookRead(ILookInStream *stream, void *buf, size_t *size) { - void *lookBuf; - if (*size == 0) - return SZ_OK; - RINOK(stream->Look(stream, &lookBuf, size)); - memcpy(buf, lookBuf, *size); - return stream->Skip(stream, *size); + void *lookBuf; + if (*size == 0) + return SZ_OK; + RINOK(stream->Look(stream, &lookBuf, size)); + memcpy(buf, lookBuf, *size); + return stream->Skip(stream, *size); } SRes LookInStream_Read2(ILookInStream *stream, void *buf, size_t size, SRes errorType) { - while (size != 0) - { - size_t processed = size; - RINOK(stream->Read(stream, buf, &processed)); - if (processed == 0) - return errorType; - buf = (void *)((Byte *)buf + processed); - size -= processed; - } - return SZ_OK; + while (size != 0) + { + size_t processed = size; + RINOK(stream->Read(stream, buf, &processed)); + if (processed == 0) + return errorType; + buf = (void *)((Byte *)buf + processed); + size -= processed; + } + return SZ_OK; } SRes LookInStream_Read(ILookInStream *stream, void *buf, size_t size) { - return LookInStream_Read2(stream, buf, size, SZ_ERROR_INPUT_EOF); + return LookInStream_Read2(stream, buf, size, SZ_ERROR_INPUT_EOF); } static SRes LookToRead_Look_Lookahead(void *pp, void **buf, size_t *size) { - SRes res = SZ_OK; - CLookToRead *p = (CLookToRead *)pp; - size_t size2 = p->size - p->pos; - if (size2 == 0 && *size > 0) - { - p->pos = 0; - size2 = LookToRead_BUF_SIZE; - res = p->realStream->Read(p->realStream, p->buf, &size2); - p->size = size2; - } - if (size2 < *size) - *size = size2; - *buf = p->buf + p->pos; - return res; + SRes res = SZ_OK; + CLookToRead *p = (CLookToRead *)pp; + size_t size2 = p->size - p->pos; + if (size2 == 0 && *size > 0) + { + p->pos = 0; + size2 = LookToRead_BUF_SIZE; + res = p->realStream->Read(p->realStream, p->buf, &size2); + p->size = size2; + } + if (size2 < *size) + *size = size2; + *buf = p->buf + p->pos; + return res; } static SRes LookToRead_Look_Exact(void *pp, void **buf, size_t *size) { - SRes res = SZ_OK; - CLookToRead *p = (CLookToRead *)pp; - size_t size2 = p->size - p->pos; - if (size2 == 0 && *size > 0) - { - p->pos = 0; - if (*size > LookToRead_BUF_SIZE) - *size = LookToRead_BUF_SIZE; - res = p->realStream->Read(p->realStream, p->buf, size); - size2 = p->size = *size; - } - if (size2 < *size) - *size = size2; - *buf = p->buf + p->pos; - return res; + SRes res = SZ_OK; + CLookToRead *p = (CLookToRead *)pp; + size_t size2 = p->size - p->pos; + if (size2 == 0 && *size > 0) + { + p->pos = 0; + if (*size > LookToRead_BUF_SIZE) + *size = LookToRead_BUF_SIZE; + res = p->realStream->Read(p->realStream, p->buf, size); + size2 = p->size = *size; + } + if (size2 < *size) + *size = size2; + *buf = p->buf + p->pos; + return res; } static SRes LookToRead_Skip(void *pp, size_t offset) { - CLookToRead *p = (CLookToRead *)pp; - p->pos += offset; - return SZ_OK; + CLookToRead *p = (CLookToRead *)pp; + p->pos += offset; + return SZ_OK; } static SRes LookToRead_Read(void *pp, void *buf, size_t *size) { - CLookToRead *p = (CLookToRead *)pp; - size_t rem = p->size - p->pos; - if (rem == 0) - return p->realStream->Read(p->realStream, buf, size); - if (rem > *size) - rem = *size; - memcpy(buf, p->buf + p->pos, rem); - p->pos += rem; - *size = rem; - return SZ_OK; + CLookToRead *p = (CLookToRead *)pp; + size_t rem = p->size - p->pos; + if (rem == 0) + return p->realStream->Read(p->realStream, buf, size); + if (rem > *size) + rem = *size; + memcpy(buf, p->buf + p->pos, rem); + p->pos += rem; + *size = rem; + return SZ_OK; } static SRes LookToRead_Seek(void *pp, Int64 *pos, ESzSeek origin) { - CLookToRead *p = (CLookToRead *)pp; - p->pos = p->size = 0; - return p->realStream->Seek(p->realStream, pos, origin); + CLookToRead *p = (CLookToRead *)pp; + p->pos = p->size = 0; + return p->realStream->Seek(p->realStream, pos, origin); } void LookToRead_CreateVTable(CLookToRead *p, int lookahead) { - p->s.Look = lookahead ? - LookToRead_Look_Lookahead : - LookToRead_Look_Exact; - p->s.Skip = LookToRead_Skip; - p->s.Read = LookToRead_Read; - p->s.Seek = LookToRead_Seek; + p->s.Look = lookahead ? + LookToRead_Look_Lookahead : + LookToRead_Look_Exact; + p->s.Skip = LookToRead_Skip; + p->s.Read = LookToRead_Read; + p->s.Seek = LookToRead_Seek; } void LookToRead_Init(CLookToRead *p) { - p->pos = p->size = 0; + p->pos = p->size = 0; } static SRes SecToLook_Read(void *pp, void *buf, size_t *size) { - CSecToLook *p = (CSecToLook *)pp; - return LookInStream_LookRead(p->realStream, buf, size); + CSecToLook *p = (CSecToLook *)pp; + return LookInStream_LookRead(p->realStream, buf, size); } void SecToLook_CreateVTable(CSecToLook *p) { - p->s.Read = SecToLook_Read; + p->s.Read = SecToLook_Read; } static SRes SecToRead_Read(void *pp, void *buf, size_t *size) { - CSecToRead *p = (CSecToRead *)pp; - return p->realStream->Read(p->realStream, buf, size); + CSecToRead *p = (CSecToRead *)pp; + return p->realStream->Read(p->realStream, buf, size); } void SecToRead_CreateVTable(CSecToRead *p) { - p->s.Read = SecToRead_Read; + p->s.Read = SecToRead_Read; } diff --git a/src/archivers/7z/Archive/7z/7zAlloc.cpp b/src/archivers/7z/Archive/7z/7zAlloc.cpp index b5918d00..0c9448fd 100644 --- a/src/archivers/7z/Archive/7z/7zAlloc.cpp +++ b/src/archivers/7z/Archive/7z/7zAlloc.cpp @@ -21,57 +21,57 @@ int g_allocCountTemp = 0; void *SzAlloc(void *p, size_t size) { - p = p; - if (size == 0) - return 0; - #ifdef _SZ_ALLOC_DEBUG - fprintf(stderr, "\nAlloc %10d bytes; count = %10d", size, g_allocCount); - g_allocCount++; - #endif - return malloc(size); + p = p; + if (size == 0) + return 0; +#ifdef _SZ_ALLOC_DEBUG + fprintf(stderr, "\nAlloc %10d bytes; count = %10d", size, g_allocCount); + g_allocCount++; +#endif + return malloc(size); } void SzFree(void *p, void *address) { - p = p; - #ifdef _SZ_ALLOC_DEBUG - if (address != 0) - { - g_allocCount--; - fprintf(stderr, "\nFree; count = %10d", g_allocCount); - } - #endif - free(address); + p = p; +#ifdef _SZ_ALLOC_DEBUG + if (address != 0) + { + g_allocCount--; + fprintf(stderr, "\nFree; count = %10d", g_allocCount); + } +#endif + free(address); } void *SzAllocTemp(void *p, size_t size) { - p = p; - if (size == 0) - return 0; - #ifdef _SZ_ALLOC_DEBUG - fprintf(stderr, "\nAlloc_temp %10d bytes; count = %10d", size, g_allocCountTemp); - g_allocCountTemp++; - #ifdef _WIN32 - return HeapAlloc(GetProcessHeap(), 0, size); - #endif - #endif - return malloc(size); + p = p; + if (size == 0) + return 0; +#ifdef _SZ_ALLOC_DEBUG + fprintf(stderr, "\nAlloc_temp %10d bytes; count = %10d", size, g_allocCountTemp); + g_allocCountTemp++; +#ifdef _WIN32 + return HeapAlloc(GetProcessHeap(), 0, size); +#endif +#endif + return malloc(size); } void SzFreeTemp(void *p, void *address) { - p = p; - #ifdef _SZ_ALLOC_DEBUG - if (address != 0) - { - g_allocCountTemp--; - fprintf(stderr, "\nFree_temp; count = %10d", g_allocCountTemp); - } - #ifdef _WIN32 - HeapFree(GetProcessHeap(), 0, address); - return; - #endif - #endif - free(address); + p = p; +#ifdef _SZ_ALLOC_DEBUG + if (address != 0) + { + g_allocCountTemp--; + fprintf(stderr, "\nFree_temp; count = %10d", g_allocCountTemp); + } +#ifdef _WIN32 + HeapFree(GetProcessHeap(), 0, address); + return; +#endif +#endif + free(address); } diff --git a/src/archivers/7z/Archive/7z/7zDecode.cpp b/src/archivers/7z/Archive/7z/7zDecode.cpp index 097d2ea3..93673377 100644 --- a/src/archivers/7z/Archive/7z/7zDecode.cpp +++ b/src/archivers/7z/Archive/7z/7zDecode.cpp @@ -14,70 +14,70 @@ #define k_BCJ2 0x0303011B static SRes SzDecodeLzma(CSzCoderInfo *coder, UInt64 inSize, ILookInStream *inStream, - Byte *outBuffer, SizeT outSize, ISzAlloc *allocMain) + Byte *outBuffer, SizeT outSize, ISzAlloc *allocMain) { - CLzmaDec state; - SRes res = SZ_OK; + CLzmaDec state; + SRes res = SZ_OK; - LzmaDec_Construct(&state); - RINOK(LzmaDec_AllocateProbs(&state, coder->Props.data, (unsigned)coder->Props.size, allocMain)); - state.dic = outBuffer; - state.dicBufSize = outSize; - LzmaDec_Init(&state); - - for (;;) - { - Byte *inBuf = NULL; - size_t lookahead = (1 << 18); - if (lookahead > inSize) - lookahead = (size_t)inSize; - res = inStream->Look((void *)inStream, (void **)&inBuf, &lookahead); - if (res != SZ_OK) - break; + LzmaDec_Construct(&state); + RINOK(LzmaDec_AllocateProbs(&state, coder->Props.data, (unsigned)coder->Props.size, allocMain)); + state.dic = outBuffer; + state.dicBufSize = outSize; + LzmaDec_Init(&state); + for (;;) { - SizeT inProcessed = (SizeT)lookahead, dicPos = state.dicPos; - ELzmaStatus status; - res = LzmaDec_DecodeToDic(&state, outSize, inBuf, &inProcessed, LZMA_FINISH_END, &status); - lookahead -= inProcessed; - inSize -= inProcessed; - if (res != SZ_OK) - break; - if (state.dicPos == state.dicBufSize || (inProcessed == 0 && dicPos == state.dicPos)) - { - if (state.dicBufSize != outSize || lookahead != 0 || - (status != LZMA_STATUS_FINISHED_WITH_MARK && - status != LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK)) - res = SZ_ERROR_DATA; - break; - } - res = inStream->Skip((void *)inStream, inProcessed); - if (res != SZ_OK) - break; - } - } + Byte *inBuf = NULL; + size_t lookahead = (1 << 18); + if (lookahead > inSize) + lookahead = (size_t)inSize; + res = inStream->Look((void *)inStream, (void **)&inBuf, &lookahead); + if (res != SZ_OK) + break; - LzmaDec_FreeProbs(&state, allocMain); - return res; + { + SizeT inProcessed = (SizeT)lookahead, dicPos = state.dicPos; + ELzmaStatus status; + res = LzmaDec_DecodeToDic(&state, outSize, inBuf, &inProcessed, LZMA_FINISH_END, &status); + lookahead -= inProcessed; + inSize -= inProcessed; + if (res != SZ_OK) + break; + if (state.dicPos == state.dicBufSize || (inProcessed == 0 && dicPos == state.dicPos)) + { + if (state.dicBufSize != outSize || lookahead != 0 || + (status != LZMA_STATUS_FINISHED_WITH_MARK && + status != LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK)) + res = SZ_ERROR_DATA; + break; + } + res = inStream->Skip((void *)inStream, inProcessed); + if (res != SZ_OK) + break; + } + } + + LzmaDec_FreeProbs(&state, allocMain); + return res; } static SRes SzDecodeCopy(UInt64 inSize, ILookInStream *inStream, Byte *outBuffer) { - while (inSize > 0) - { - void *inBuf; - size_t curSize = (1 << 18); - if (curSize > inSize) - curSize = (size_t)inSize; - RINOK(inStream->Look((void *)inStream, (void **)&inBuf, &curSize)); - if (curSize == 0) - return SZ_ERROR_INPUT_EOF; - memcpy(outBuffer, inBuf, curSize); - outBuffer += curSize; - inSize -= curSize; - RINOK(inStream->Skip((void *)inStream, curSize)); - } - return SZ_OK; + while (inSize > 0) + { + void *inBuf; + size_t curSize = (1 << 18); + if (curSize > inSize) + curSize = (size_t)inSize; + RINOK(inStream->Look((void *)inStream, (void **)&inBuf, &curSize)); + if (curSize == 0) + return SZ_ERROR_INPUT_EOF; + memcpy(outBuffer, inBuf, curSize); + outBuffer += curSize; + inSize -= curSize; + RINOK(inStream->Skip((void *)inStream, curSize)); + } + return SZ_OK; } #define IS_UNSUPPORTED_METHOD(m) ((m) != k_Copy && (m) != k_LZMA) @@ -87,168 +87,168 @@ static SRes SzDecodeCopy(UInt64 inSize, ILookInStream *inStream, Byte *outBuffer SRes CheckSupportedFolder(const CSzFolder *f) { - if (f->NumCoders < 1 || f->NumCoders > 4) + if (f->NumCoders < 1 || f->NumCoders > 4) + return SZ_ERROR_UNSUPPORTED; + if (IS_UNSUPPORTED_CODER(f->Coders[0])) + return SZ_ERROR_UNSUPPORTED; + if (f->NumCoders == 1) + { + if (f->NumPackStreams != 1 || f->PackStreams[0] != 0 || f->NumBindPairs != 0) + return SZ_ERROR_UNSUPPORTED; + return SZ_OK; + } + if (f->NumCoders == 2) + { + if (IS_NO_BCJ(f->Coders[1]) || + f->NumPackStreams != 1 || f->PackStreams[0] != 0 || + f->NumBindPairs != 1 || + f->BindPairs[0].InIndex != 1 || f->BindPairs[0].OutIndex != 0) + return SZ_ERROR_UNSUPPORTED; + return SZ_OK; + } + if (f->NumCoders == 4) + { + if (IS_UNSUPPORTED_CODER(f->Coders[1]) || + IS_UNSUPPORTED_CODER(f->Coders[2]) || + IS_NO_BCJ2(f->Coders[3])) + return SZ_ERROR_UNSUPPORTED; + if (f->NumPackStreams != 4 || + f->PackStreams[0] != 2 || + f->PackStreams[1] != 6 || + f->PackStreams[2] != 1 || + f->PackStreams[3] != 0 || + f->NumBindPairs != 3 || + f->BindPairs[0].InIndex != 5 || f->BindPairs[0].OutIndex != 0 || + f->BindPairs[1].InIndex != 4 || f->BindPairs[1].OutIndex != 1 || + f->BindPairs[2].InIndex != 3 || f->BindPairs[2].OutIndex != 2) + return SZ_ERROR_UNSUPPORTED; + return SZ_OK; + } return SZ_ERROR_UNSUPPORTED; - if (IS_UNSUPPORTED_CODER(f->Coders[0])) - return SZ_ERROR_UNSUPPORTED; - if (f->NumCoders == 1) - { - if (f->NumPackStreams != 1 || f->PackStreams[0] != 0 || f->NumBindPairs != 0) - return SZ_ERROR_UNSUPPORTED; - return SZ_OK; - } - if (f->NumCoders == 2) - { - if (IS_NO_BCJ(f->Coders[1]) || - f->NumPackStreams != 1 || f->PackStreams[0] != 0 || - f->NumBindPairs != 1 || - f->BindPairs[0].InIndex != 1 || f->BindPairs[0].OutIndex != 0) - return SZ_ERROR_UNSUPPORTED; - return SZ_OK; - } - if (f->NumCoders == 4) - { - if (IS_UNSUPPORTED_CODER(f->Coders[1]) || - IS_UNSUPPORTED_CODER(f->Coders[2]) || - IS_NO_BCJ2(f->Coders[3])) - return SZ_ERROR_UNSUPPORTED; - if (f->NumPackStreams != 4 || - f->PackStreams[0] != 2 || - f->PackStreams[1] != 6 || - f->PackStreams[2] != 1 || - f->PackStreams[3] != 0 || - f->NumBindPairs != 3 || - f->BindPairs[0].InIndex != 5 || f->BindPairs[0].OutIndex != 0 || - f->BindPairs[1].InIndex != 4 || f->BindPairs[1].OutIndex != 1 || - f->BindPairs[2].InIndex != 3 || f->BindPairs[2].OutIndex != 2) - return SZ_ERROR_UNSUPPORTED; - return SZ_OK; - } - return SZ_ERROR_UNSUPPORTED; } UInt64 GetSum(const UInt64 *values, UInt32 index) { - UInt64 sum = 0; - UInt32 i; - for (i = 0; i < index; i++) - sum += values[i]; - return sum; + UInt64 sum = 0; + UInt32 i; + for (i = 0; i < index; i++) + sum += values[i]; + return sum; } SRes SzDecode2(const UInt64 *packSizes, const CSzFolder *folder, - ILookInStream *inStream, UInt64 startPos, - Byte *outBuffer, SizeT outSize, ISzAlloc *allocMain, - Byte *tempBuf[]) + ILookInStream *inStream, UInt64 startPos, + Byte *outBuffer, SizeT outSize, ISzAlloc *allocMain, + Byte *tempBuf[]) { - UInt32 ci; - SizeT tempSizes[3] = { 0, 0, 0}; - SizeT tempSize3 = 0; - Byte *tempBuf3 = 0; + UInt32 ci; + SizeT tempSizes[3] = { 0, 0, 0}; + SizeT tempSize3 = 0; + Byte *tempBuf3 = 0; - RINOK(CheckSupportedFolder(folder)); + RINOK(CheckSupportedFolder(folder)); - for (ci = 0; ci < folder->NumCoders; ci++) - { - CSzCoderInfo *coder = &folder->Coders[ci]; - - if (coder->MethodID == k_Copy || coder->MethodID == k_LZMA) + for (ci = 0; ci < folder->NumCoders; ci++) { - UInt32 si = 0; - UInt64 offset; - UInt64 inSize; - Byte *outBufCur = outBuffer; - SizeT outSizeCur = outSize; - if (folder->NumCoders == 4) - { - UInt32 indices[] = { 3, 2, 0 }; - UInt64 unpackSize = folder->UnpackSizes[ci]; - si = indices[ci]; - if (ci < 2) + CSzCoderInfo *coder = &folder->Coders[ci]; + + if (coder->MethodID == k_Copy || coder->MethodID == k_LZMA) { - Byte *temp; - outSizeCur = (SizeT)unpackSize; - if (outSizeCur != unpackSize) - return SZ_ERROR_MEM; - temp = (Byte *)IAlloc_Alloc(allocMain, outSizeCur); - if (temp == 0 && outSizeCur != 0) - return SZ_ERROR_MEM; - outBufCur = tempBuf[1 - ci] = temp; - tempSizes[1 - ci] = outSizeCur; + UInt32 si = 0; + UInt64 offset; + UInt64 inSize; + Byte *outBufCur = outBuffer; + SizeT outSizeCur = outSize; + if (folder->NumCoders == 4) + { + UInt32 indices[] = { 3, 2, 0 }; + UInt64 unpackSize = folder->UnpackSizes[ci]; + si = indices[ci]; + if (ci < 2) + { + Byte *temp; + outSizeCur = (SizeT)unpackSize; + if (outSizeCur != unpackSize) + return SZ_ERROR_MEM; + temp = (Byte *)IAlloc_Alloc(allocMain, outSizeCur); + if (temp == 0 && outSizeCur != 0) + return SZ_ERROR_MEM; + outBufCur = tempBuf[1 - ci] = temp; + tempSizes[1 - ci] = outSizeCur; + } + else if (ci == 2) + { + if (unpackSize > outSize) /* check it */ + return SZ_ERROR_PARAM; + tempBuf3 = outBufCur = outBuffer + (outSize - (size_t)unpackSize); + tempSize3 = outSizeCur = (SizeT)unpackSize; + } + else + return SZ_ERROR_UNSUPPORTED; + } + offset = GetSum(packSizes, si); + inSize = packSizes[si]; + RINOK(LookInStream_SeekTo(inStream, startPos + offset)); + + if (coder->MethodID == k_Copy) + { + if (inSize != outSizeCur) /* check it */ + return SZ_ERROR_DATA; + RINOK(SzDecodeCopy(inSize, inStream, outBufCur)); + } + else + { + RINOK(SzDecodeLzma(coder, inSize, inStream, outBufCur, outSizeCur, allocMain)); + } } - else if (ci == 2) + else if (coder->MethodID == k_BCJ) { - if (unpackSize > outSize) /* check it */ - return SZ_ERROR_PARAM; - tempBuf3 = outBufCur = outBuffer + (outSize - (size_t)unpackSize); - tempSize3 = outSizeCur = (SizeT)unpackSize; + UInt32 state; + if (ci != 1) + return SZ_ERROR_UNSUPPORTED; + x86_Convert_Init(state); + x86_Convert(outBuffer, outSize, 0, &state, 0); + } + else if (coder->MethodID == k_BCJ2) + { + UInt64 offset = GetSum(packSizes, 1); + UInt64 s3Size = packSizes[1]; + SRes res; + if (ci != 3) + return SZ_ERROR_UNSUPPORTED; + RINOK(LookInStream_SeekTo(inStream, startPos + offset)); + tempSizes[2] = (SizeT)s3Size; + if (tempSizes[2] != s3Size) + return SZ_ERROR_MEM; + tempBuf[2] = (Byte *)IAlloc_Alloc(allocMain, tempSizes[2]); + if (tempBuf[2] == 0 && tempSizes[2] != 0) + return SZ_ERROR_MEM; + res = SzDecodeCopy(s3Size, inStream, tempBuf[2]); + RINOK(res) + + res = Bcj2_Decode( + tempBuf3, tempSize3, + tempBuf[0], tempSizes[0], + tempBuf[1], tempSizes[1], + tempBuf[2], tempSizes[2], + outBuffer, outSize); + RINOK(res) } else - return SZ_ERROR_UNSUPPORTED; - } - offset = GetSum(packSizes, si); - inSize = packSizes[si]; - RINOK(LookInStream_SeekTo(inStream, startPos + offset)); - - if (coder->MethodID == k_Copy) - { - if (inSize != outSizeCur) /* check it */ - return SZ_ERROR_DATA; - RINOK(SzDecodeCopy(inSize, inStream, outBufCur)); - } - else - { - RINOK(SzDecodeLzma(coder, inSize, inStream, outBufCur, outSizeCur, allocMain)); - } + return SZ_ERROR_UNSUPPORTED; } - else if (coder->MethodID == k_BCJ) - { - UInt32 state; - if (ci != 1) - return SZ_ERROR_UNSUPPORTED; - x86_Convert_Init(state); - x86_Convert(outBuffer, outSize, 0, &state, 0); - } - else if (coder->MethodID == k_BCJ2) - { - UInt64 offset = GetSum(packSizes, 1); - UInt64 s3Size = packSizes[1]; - SRes res; - if (ci != 3) - return SZ_ERROR_UNSUPPORTED; - RINOK(LookInStream_SeekTo(inStream, startPos + offset)); - tempSizes[2] = (SizeT)s3Size; - if (tempSizes[2] != s3Size) - return SZ_ERROR_MEM; - tempBuf[2] = (Byte *)IAlloc_Alloc(allocMain, tempSizes[2]); - if (tempBuf[2] == 0 && tempSizes[2] != 0) - return SZ_ERROR_MEM; - res = SzDecodeCopy(s3Size, inStream, tempBuf[2]); - RINOK(res) - - res = Bcj2_Decode( - tempBuf3, tempSize3, - tempBuf[0], tempSizes[0], - tempBuf[1], tempSizes[1], - tempBuf[2], tempSizes[2], - outBuffer, outSize); - RINOK(res) - } - else - return SZ_ERROR_UNSUPPORTED; - } - return SZ_OK; + return SZ_OK; } SRes SzDecode(const UInt64 *packSizes, const CSzFolder *folder, - ILookInStream *inStream, UInt64 startPos, - Byte *outBuffer, size_t outSize, ISzAlloc *allocMain) + ILookInStream *inStream, UInt64 startPos, + Byte *outBuffer, size_t outSize, ISzAlloc *allocMain) { - Byte *tempBuf[3] = { 0, 0, 0}; - int i; - SRes res = SzDecode2(packSizes, folder, inStream, startPos, - outBuffer, (SizeT)outSize, allocMain, tempBuf); - for (i = 0; i < 3; i++) - IAlloc_Free(allocMain, tempBuf[i]); - return res; + Byte *tempBuf[3] = { 0, 0, 0}; + int i; + SRes res = SzDecode2(packSizes, folder, inStream, startPos, + outBuffer, (SizeT)outSize, allocMain, tempBuf); + for (i = 0; i < 3; i++) + IAlloc_Free(allocMain, tempBuf[i]); + return res; } diff --git a/src/archivers/7z/Archive/7z/7zDecode.h b/src/archivers/7z/Archive/7z/7zDecode.h index 9607915b..ce81f40f 100644 --- a/src/archivers/7z/Archive/7z/7zDecode.h +++ b/src/archivers/7z/Archive/7z/7zDecode.h @@ -7,7 +7,7 @@ #include "7zItem.h" SRes SzDecode(const UInt64 *packSizes, const CSzFolder *folder, - ILookInStream *stream, UInt64 startPos, - Byte *outBuffer, size_t outSize, ISzAlloc *allocMain); + ILookInStream *stream, UInt64 startPos, + Byte *outBuffer, size_t outSize, ISzAlloc *allocMain); #endif diff --git a/src/archivers/7z/Archive/7z/7zExtract.cpp b/src/archivers/7z/Archive/7z/7zExtract.cpp index 0f957add..10fb57b5 100644 --- a/src/archivers/7z/Archive/7z/7zExtract.cpp +++ b/src/archivers/7z/Archive/7z/7zExtract.cpp @@ -17,77 +17,77 @@ SRes SzAr_Extract( ISzAlloc *allocMain, ISzAlloc *allocTemp) { - UInt32 folderIndex = p->FileIndexToFolderIndexMap[fileIndex]; - SRes res = SZ_OK; - *offset = 0; - *outSizeProcessed = 0; - if (folderIndex == (UInt32)-1) - { - IAlloc_Free(allocMain, *outBuffer); - *blockIndex = folderIndex; - *outBuffer = 0; - *outBufferSize = 0; - return SZ_OK; - } - - if (*outBuffer == 0 || *blockIndex != folderIndex) - { - CSzFolder *folder = p->db.Folders + folderIndex; - UInt64 unpackSizeSpec = SzFolder_GetUnpackSize(folder); - size_t unpackSize = (size_t)unpackSizeSpec; - UInt64 startOffset = SzArEx_GetFolderStreamPos(p, folderIndex, 0); - - if (unpackSize != unpackSizeSpec) - return SZ_ERROR_MEM; - *blockIndex = folderIndex; - IAlloc_Free(allocMain, *outBuffer); - *outBuffer = 0; - - RINOK(LookInStream_SeekTo(inStream, startOffset)); - - if (res == SZ_OK) + UInt32 folderIndex = p->FileIndexToFolderIndexMap[fileIndex]; + SRes res = SZ_OK; + *offset = 0; + *outSizeProcessed = 0; + if (folderIndex == (UInt32)-1) { - *outBufferSize = unpackSize; - if (unpackSize != 0) - { - *outBuffer = (Byte *)IAlloc_Alloc(allocMain, unpackSize); - if (*outBuffer == 0) - res = SZ_ERROR_MEM; - } - if (res == SZ_OK) - { - res = SzDecode(p->db.PackSizes + - p->FolderStartPackStreamIndex[folderIndex], folder, - inStream, startOffset, - *outBuffer, unpackSize, allocTemp); + IAlloc_Free(allocMain, *outBuffer); + *blockIndex = folderIndex; + *outBuffer = 0; + *outBufferSize = 0; + return SZ_OK; + } + + if (*outBuffer == 0 || *blockIndex != folderIndex) + { + CSzFolder *folder = p->db.Folders + folderIndex; + UInt64 unpackSizeSpec = SzFolder_GetUnpackSize(folder); + size_t unpackSize = (size_t)unpackSizeSpec; + UInt64 startOffset = SzArEx_GetFolderStreamPos(p, folderIndex, 0); + + if (unpackSize != unpackSizeSpec) + return SZ_ERROR_MEM; + *blockIndex = folderIndex; + IAlloc_Free(allocMain, *outBuffer); + *outBuffer = 0; + + RINOK(LookInStream_SeekTo(inStream, startOffset)); + if (res == SZ_OK) { - if (folder->UnpackCRCDefined) - { - if (CrcCalc(*outBuffer, unpackSize) != folder->UnpackCRC) - res = SZ_ERROR_CRC; - } + *outBufferSize = unpackSize; + if (unpackSize != 0) + { + *outBuffer = (Byte *)IAlloc_Alloc(allocMain, unpackSize); + if (*outBuffer == 0) + res = SZ_ERROR_MEM; + } + if (res == SZ_OK) + { + res = SzDecode(p->db.PackSizes + + p->FolderStartPackStreamIndex[folderIndex], folder, + inStream, startOffset, + *outBuffer, unpackSize, allocTemp); + if (res == SZ_OK) + { + if (folder->UnpackCRCDefined) + { + if (CrcCalc(*outBuffer, unpackSize) != folder->UnpackCRC) + res = SZ_ERROR_CRC; + } + } + } } - } } - } - if (res == SZ_OK) - { - UInt32 i; - CSzFileItem *fileItem = p->db.Files + fileIndex; - *offset = 0; - for (i = p->FolderStartFileIndex[folderIndex]; i < fileIndex; i++) - *offset += (UInt32)p->db.Files[i].Size; - *outSizeProcessed = (size_t)fileItem->Size; - if (*offset + *outSizeProcessed > *outBufferSize) - return SZ_ERROR_FAIL; + if (res == SZ_OK) { - if (fileItem->FileCRCDefined) - { - if (CrcCalc(*outBuffer + *offset, *outSizeProcessed) != fileItem->FileCRC) - res = SZ_ERROR_CRC; - } + UInt32 i; + CSzFileItem *fileItem = p->db.Files + fileIndex; + *offset = 0; + for (i = p->FolderStartFileIndex[folderIndex]; i < fileIndex; i++) + *offset += (UInt32)p->db.Files[i].Size; + *outSizeProcessed = (size_t)fileItem->Size; + if (*offset + *outSizeProcessed > *outBufferSize) + return SZ_ERROR_FAIL; + { + if (fileItem->FileCRCDefined) + { + if (CrcCalc(*outBuffer + *offset, *outSizeProcessed) != fileItem->FileCRC) + res = SZ_ERROR_CRC; + } + } } - } - return res; + return res; } diff --git a/src/archivers/7z/Archive/7z/7zHeader.h b/src/archivers/7z/Archive/7z/7zHeader.h index 1ef8c019..91b9d0dd 100644 --- a/src/archivers/7z/Archive/7z/7zHeader.h +++ b/src/archivers/7z/Archive/7z/7zHeader.h @@ -15,43 +15,43 @@ extern Byte k7zSignature[k7zSignatureSize]; enum EIdEnum { - k7zIdEnd, - - k7zIdHeader, - - k7zIdArchiveProperties, - - k7zIdAdditionalStreamsInfo, - k7zIdMainStreamsInfo, - k7zIdFilesInfo, - - k7zIdPackInfo, - k7zIdUnpackInfo, - k7zIdSubStreamsInfo, - - k7zIdSize, - k7zIdCRC, - - k7zIdFolder, - - k7zIdCodersUnpackSize, - k7zIdNumUnpackStream, - - k7zIdEmptyStream, - k7zIdEmptyFile, - k7zIdAnti, - - k7zIdName, - k7zIdCTime, - k7zIdATime, - k7zIdMTime, - k7zIdWinAttributes, - k7zIdComment, - - k7zIdEncodedHeader, - - k7zIdStartPos, - k7zIdDummy + k7zIdEnd, + + k7zIdHeader, + + k7zIdArchiveProperties, + + k7zIdAdditionalStreamsInfo, + k7zIdMainStreamsInfo, + k7zIdFilesInfo, + + k7zIdPackInfo, + k7zIdUnpackInfo, + k7zIdSubStreamsInfo, + + k7zIdSize, + k7zIdCRC, + + k7zIdFolder, + + k7zIdCodersUnpackSize, + k7zIdNumUnpackStream, + + k7zIdEmptyStream, + k7zIdEmptyFile, + k7zIdAnti, + + k7zIdName, + k7zIdCTime, + k7zIdATime, + k7zIdMTime, + k7zIdWinAttributes, + k7zIdComment, + + k7zIdEncodedHeader, + + k7zIdStartPos, + k7zIdDummy }; #endif diff --git a/src/archivers/7z/Archive/7z/7zIn.cpp b/src/archivers/7z/Archive/7z/7zIn.cpp index 75b0bcd1..e23e3fe0 100644 --- a/src/archivers/7z/Archive/7z/7zIn.cpp +++ b/src/archivers/7z/Archive/7z/7zIn.cpp @@ -14,21 +14,21 @@ void SzArEx_Init(CSzArEx *p) { - SzAr_Init(&p->db); - p->FolderStartPackStreamIndex = 0; - p->PackStreamStartPositions = 0; - p->FolderStartFileIndex = 0; - p->FileIndexToFolderIndexMap = 0; + SzAr_Init(&p->db); + p->FolderStartPackStreamIndex = 0; + p->PackStreamStartPositions = 0; + p->FolderStartFileIndex = 0; + p->FileIndexToFolderIndexMap = 0; } void SzArEx_Free(CSzArEx *p, ISzAlloc *alloc) { - IAlloc_Free(alloc, p->FolderStartPackStreamIndex); - IAlloc_Free(alloc, p->PackStreamStartPositions); - IAlloc_Free(alloc, p->FolderStartFileIndex); - IAlloc_Free(alloc, p->FileIndexToFolderIndexMap); - SzAr_Free(&p->db, alloc); - SzArEx_Init(p); + IAlloc_Free(alloc, p->FolderStartPackStreamIndex); + IAlloc_Free(alloc, p->PackStreamStartPositions); + IAlloc_Free(alloc, p->FolderStartFileIndex); + IAlloc_Free(alloc, p->FileIndexToFolderIndexMap); + SzAr_Free(&p->db, alloc); + SzArEx_Init(p); } /* @@ -55,89 +55,89 @@ UInt64 GetFilePackSize(int fileIndex) const static SRes SzArEx_Fill(CSzArEx *p, ISzAlloc *alloc) { - UInt32 startPos = 0; - UInt64 startPosSize = 0; - UInt32 i; - UInt32 folderIndex = 0; - UInt32 indexInFolder = 0; - MY_ALLOC(UInt32, p->FolderStartPackStreamIndex, p->db.NumFolders, alloc); - for (i = 0; i < p->db.NumFolders; i++) - { - p->FolderStartPackStreamIndex[i] = startPos; - startPos += p->db.Folders[i].NumPackStreams; - } - - MY_ALLOC(UInt64, p->PackStreamStartPositions, p->db.NumPackStreams, alloc); - - for (i = 0; i < p->db.NumPackStreams; i++) - { - p->PackStreamStartPositions[i] = startPosSize; - startPosSize += p->db.PackSizes[i]; - } - - MY_ALLOC(UInt32, p->FolderStartFileIndex, p->db.NumFolders, alloc); - MY_ALLOC(UInt32, p->FileIndexToFolderIndexMap, p->db.NumFiles, alloc); - - for (i = 0; i < p->db.NumFiles; i++) - { - CSzFileItem *file = p->db.Files + i; - int emptyStream = !file->HasStream; - if (emptyStream && indexInFolder == 0) + UInt32 startPos = 0; + UInt64 startPosSize = 0; + UInt32 i; + UInt32 folderIndex = 0; + UInt32 indexInFolder = 0; + MY_ALLOC(UInt32, p->FolderStartPackStreamIndex, p->db.NumFolders, alloc); + for (i = 0; i < p->db.NumFolders; i++) { - p->FileIndexToFolderIndexMap[i] = (UInt32)-1; - continue; + p->FolderStartPackStreamIndex[i] = startPos; + startPos += p->db.Folders[i].NumPackStreams; } - if (indexInFolder == 0) + + MY_ALLOC(UInt64, p->PackStreamStartPositions, p->db.NumPackStreams, alloc); + + for (i = 0; i < p->db.NumPackStreams; i++) { - /* - v3.13 incorrectly worked with empty folders - v4.07: Loop for skipping empty folders - */ - for (;;) - { - if (folderIndex >= p->db.NumFolders) - return SZ_ERROR_ARCHIVE; - p->FolderStartFileIndex[folderIndex] = i; - if (p->db.Folders[folderIndex].NumUnpackStreams != 0) - break; - folderIndex++; - } + p->PackStreamStartPositions[i] = startPosSize; + startPosSize += p->db.PackSizes[i]; } - p->FileIndexToFolderIndexMap[i] = folderIndex; - if (emptyStream) - continue; - indexInFolder++; - if (indexInFolder >= p->db.Folders[folderIndex].NumUnpackStreams) + + MY_ALLOC(UInt32, p->FolderStartFileIndex, p->db.NumFolders, alloc); + MY_ALLOC(UInt32, p->FileIndexToFolderIndexMap, p->db.NumFiles, alloc); + + for (i = 0; i < p->db.NumFiles; i++) { - folderIndex++; - indexInFolder = 0; + CSzFileItem *file = p->db.Files + i; + int emptyStream = !file->HasStream; + if (emptyStream && indexInFolder == 0) + { + p->FileIndexToFolderIndexMap[i] = (UInt32)-1; + continue; + } + if (indexInFolder == 0) + { + /* + v3.13 incorrectly worked with empty folders + v4.07: Loop for skipping empty folders + */ + for (;;) + { + if (folderIndex >= p->db.NumFolders) + return SZ_ERROR_ARCHIVE; + p->FolderStartFileIndex[folderIndex] = i; + if (p->db.Folders[folderIndex].NumUnpackStreams != 0) + break; + folderIndex++; + } + } + p->FileIndexToFolderIndexMap[i] = folderIndex; + if (emptyStream) + continue; + indexInFolder++; + if (indexInFolder >= p->db.Folders[folderIndex].NumUnpackStreams) + { + folderIndex++; + indexInFolder = 0; + } } - } - return SZ_OK; + return SZ_OK; } UInt64 SzArEx_GetFolderStreamPos(const CSzArEx *p, UInt32 folderIndex, UInt32 indexInFolder) { - return p->dataPos + - p->PackStreamStartPositions[p->FolderStartPackStreamIndex[folderIndex] + indexInFolder]; + return p->dataPos + + p->PackStreamStartPositions[p->FolderStartPackStreamIndex[folderIndex] + indexInFolder]; } int SzArEx_GetFolderFullPackSize(const CSzArEx *p, UInt32 folderIndex, UInt64 *resSize) { - UInt32 packStreamIndex = p->FolderStartPackStreamIndex[folderIndex]; - CSzFolder *folder = p->db.Folders + folderIndex; - UInt64 size = 0; - UInt32 i; - for (i = 0; i < folder->NumPackStreams; i++) - { - UInt64 t = size + p->db.PackSizes[packStreamIndex + i]; - if (t < size) /* check it */ - return SZ_ERROR_FAIL; - size = t; - } - *resSize = size; - return SZ_OK; + UInt32 packStreamIndex = p->FolderStartPackStreamIndex[folderIndex]; + CSzFolder *folder = p->db.Folders + folderIndex; + UInt64 size = 0; + UInt32 i; + for (i = 0; i < folder->NumPackStreams; i++) + { + UInt64 t = size + p->db.PackSizes[packStreamIndex + i]; + if (t < size) /* check it */ + return SZ_ERROR_FAIL; + size = t; + } + *resSize = size; + return SZ_OK; } @@ -177,164 +177,164 @@ SRes SzReadTime(const CObjectVector &dataVector, static int TestSignatureCandidate(Byte *testBytes) { - size_t i; - for (i = 0; i < k7zSignatureSize; i++) - if (testBytes[i] != k7zSignature[i]) - return 0; - return 1; + size_t i; + for (i = 0; i < k7zSignatureSize; i++) + if (testBytes[i] != k7zSignature[i]) + return 0; + return 1; } typedef struct _CSzState { - Byte *Data; - size_t Size; -}CSzData; + Byte *Data; + size_t Size; +} CSzData; static SRes SzReadByte(CSzData *sd, Byte *b) { - if (sd->Size == 0) - return SZ_ERROR_ARCHIVE; - sd->Size--; - *b = *sd->Data++; - return SZ_OK; + if (sd->Size == 0) + return SZ_ERROR_ARCHIVE; + sd->Size--; + *b = *sd->Data++; + return SZ_OK; } static SRes SzReadBytes(CSzData *sd, Byte *data, size_t size) { - size_t i; - for (i = 0; i < size; i++) - { - RINOK(SzReadByte(sd, data + i)); - } - return SZ_OK; + size_t i; + for (i = 0; i < size; i++) + { + RINOK(SzReadByte(sd, data + i)); + } + return SZ_OK; } static SRes SzReadUInt32(CSzData *sd, UInt32 *value) { - int i; - *value = 0; - for (i = 0; i < 4; i++) - { - Byte b; - RINOK(SzReadByte(sd, &b)); - *value |= ((UInt32)(b) << (8 * i)); - } - return SZ_OK; + int i; + *value = 0; + for (i = 0; i < 4; i++) + { + Byte b; + RINOK(SzReadByte(sd, &b)); + *value |= ((UInt32)(b) << (8 * i)); + } + return SZ_OK; } static SRes SzReadNumber(CSzData *sd, UInt64 *value) { - Byte firstByte; - Byte mask = 0x80; - int i; - RINOK(SzReadByte(sd, &firstByte)); - *value = 0; - for (i = 0; i < 8; i++) - { - Byte b; - if ((firstByte & mask) == 0) + Byte firstByte; + Byte mask = 0x80; + int i; + RINOK(SzReadByte(sd, &firstByte)); + *value = 0; + for (i = 0; i < 8; i++) { - UInt64 highPart = firstByte & (mask - 1); - *value += (highPart << (8 * i)); - return SZ_OK; + Byte b; + if ((firstByte & mask) == 0) + { + UInt64 highPart = firstByte & (mask - 1); + *value += (highPart << (8 * i)); + return SZ_OK; + } + RINOK(SzReadByte(sd, &b)); + *value |= ((UInt64)b << (8 * i)); + mask >>= 1; } - RINOK(SzReadByte(sd, &b)); - *value |= ((UInt64)b << (8 * i)); - mask >>= 1; - } - return SZ_OK; + return SZ_OK; } static SRes SzReadNumber32(CSzData *sd, UInt32 *value) { - UInt64 value64; - RINOK(SzReadNumber(sd, &value64)); - if (value64 >= 0x80000000) - return SZ_ERROR_UNSUPPORTED; - if (value64 >= ((UInt64)(1) << ((sizeof(size_t) - 1) * 8 + 2))) - return SZ_ERROR_UNSUPPORTED; - *value = (UInt32)value64; - return SZ_OK; + UInt64 value64; + RINOK(SzReadNumber(sd, &value64)); + if (value64 >= 0x80000000) + return SZ_ERROR_UNSUPPORTED; + if (value64 >= ((UInt64)(1) << ((sizeof(size_t) - 1) * 8 + 2))) + return SZ_ERROR_UNSUPPORTED; + *value = (UInt32)value64; + return SZ_OK; } static SRes SzReadID(CSzData *sd, UInt64 *value) { - return SzReadNumber(sd, value); + return SzReadNumber(sd, value); } static SRes SzSkeepDataSize(CSzData *sd, UInt64 size) { - if (size > sd->Size) - return SZ_ERROR_ARCHIVE; - sd->Size -= (size_t)size; - sd->Data += (size_t)size; - return SZ_OK; + if (size > sd->Size) + return SZ_ERROR_ARCHIVE; + sd->Size -= (size_t)size; + sd->Data += (size_t)size; + return SZ_OK; } static SRes SzSkeepData(CSzData *sd) { - UInt64 size; - RINOK(SzReadNumber(sd, &size)); - return SzSkeepDataSize(sd, size); + UInt64 size; + RINOK(SzReadNumber(sd, &size)); + return SzSkeepDataSize(sd, size); } static SRes SzReadArchiveProperties(CSzData *sd) { - for (;;) - { - UInt64 type; - RINOK(SzReadID(sd, &type)); - if (type == k7zIdEnd) - break; - SzSkeepData(sd); - } - return SZ_OK; + for (;;) + { + UInt64 type; + RINOK(SzReadID(sd, &type)); + if (type == k7zIdEnd) + break; + SzSkeepData(sd); + } + return SZ_OK; } static SRes SzWaitAttribute(CSzData *sd, UInt64 attribute) { - for (;;) - { - UInt64 type; - RINOK(SzReadID(sd, &type)); - if (type == attribute) - return SZ_OK; - if (type == k7zIdEnd) - return SZ_ERROR_ARCHIVE; - RINOK(SzSkeepData(sd)); - } + for (;;) + { + UInt64 type; + RINOK(SzReadID(sd, &type)); + if (type == attribute) + return SZ_OK; + if (type == k7zIdEnd) + return SZ_ERROR_ARCHIVE; + RINOK(SzSkeepData(sd)); + } } static SRes SzReadBoolVector(CSzData *sd, size_t numItems, Byte **v, ISzAlloc *alloc) { - Byte b = 0; - Byte mask = 0; - size_t i; - MY_ALLOC(Byte, *v, numItems, alloc); - for (i = 0; i < numItems; i++) - { - if (mask == 0) + Byte b = 0; + Byte mask = 0; + size_t i; + MY_ALLOC(Byte, *v, numItems, alloc); + for (i = 0; i < numItems; i++) { - RINOK(SzReadByte(sd, &b)); - mask = 0x80; + if (mask == 0) + { + RINOK(SzReadByte(sd, &b)); + mask = 0x80; + } + (*v)[i] = (Byte)(((b & mask) != 0) ? 1 : 0); + mask >>= 1; } - (*v)[i] = (Byte)(((b & mask) != 0) ? 1 : 0); - mask >>= 1; - } - return SZ_OK; + return SZ_OK; } static SRes SzReadBoolVector2(CSzData *sd, size_t numItems, Byte **v, ISzAlloc *alloc) { - Byte allAreDefined; - size_t i; - RINOK(SzReadByte(sd, &allAreDefined)); - if (allAreDefined == 0) - return SzReadBoolVector(sd, numItems, v, alloc); - MY_ALLOC(Byte, *v, numItems, alloc); - for (i = 0; i < numItems; i++) - (*v)[i] = 1; - return SZ_OK; + Byte allAreDefined; + size_t i; + RINOK(SzReadByte(sd, &allAreDefined)); + if (allAreDefined == 0) + return SzReadBoolVector(sd, numItems, v, alloc); + MY_ALLOC(Byte, *v, numItems, alloc); + for (i = 0; i < numItems; i++) + (*v)[i] = 1; + return SZ_OK; } static SRes SzReadHashDigests( @@ -344,15 +344,15 @@ static SRes SzReadHashDigests( UInt32 **digests, ISzAlloc *alloc) { - size_t i; - RINOK(SzReadBoolVector2(sd, numItems, digestsDefined, alloc)); - MY_ALLOC(UInt32, *digests, numItems, alloc); - for (i = 0; i < numItems; i++) - if ((*digestsDefined)[i]) - { - RINOK(SzReadUInt32(sd, (*digests) + i)); - } - return SZ_OK; + size_t i; + RINOK(SzReadBoolVector2(sd, numItems, digestsDefined, alloc)); + MY_ALLOC(UInt32, *digests, numItems, alloc); + for (i = 0; i < numItems; i++) + if ((*digestsDefined)[i]) + { + RINOK(SzReadUInt32(sd, (*digests) + i)); + } + return SZ_OK; } static SRes SzReadPackInfo( @@ -364,160 +364,160 @@ static SRes SzReadPackInfo( UInt32 **packCRCs, ISzAlloc *alloc) { - UInt32 i; - RINOK(SzReadNumber(sd, dataOffset)); - RINOK(SzReadNumber32(sd, numPackStreams)); + UInt32 i; + RINOK(SzReadNumber(sd, dataOffset)); + RINOK(SzReadNumber32(sd, numPackStreams)); - RINOK(SzWaitAttribute(sd, k7zIdSize)); + RINOK(SzWaitAttribute(sd, k7zIdSize)); - MY_ALLOC(UInt64, *packSizes, (size_t)*numPackStreams, alloc); + MY_ALLOC(UInt64, *packSizes, (size_t)*numPackStreams, alloc); - for (i = 0; i < *numPackStreams; i++) - { - RINOK(SzReadNumber(sd, (*packSizes) + i)); - } - - for (;;) - { - UInt64 type; - RINOK(SzReadID(sd, &type)); - if (type == k7zIdEnd) - break; - if (type == k7zIdCRC) - { - RINOK(SzReadHashDigests(sd, (size_t)*numPackStreams, packCRCsDefined, packCRCs, alloc)); - continue; - } - RINOK(SzSkeepData(sd)); - } - if (*packCRCsDefined == 0) - { - MY_ALLOC(Byte, *packCRCsDefined, (size_t)*numPackStreams, alloc); - MY_ALLOC(UInt32, *packCRCs, (size_t)*numPackStreams, alloc); for (i = 0; i < *numPackStreams; i++) { - (*packCRCsDefined)[i] = 0; - (*packCRCs)[i] = 0; + RINOK(SzReadNumber(sd, (*packSizes) + i)); } - } - return SZ_OK; + + for (;;) + { + UInt64 type; + RINOK(SzReadID(sd, &type)); + if (type == k7zIdEnd) + break; + if (type == k7zIdCRC) + { + RINOK(SzReadHashDigests(sd, (size_t)*numPackStreams, packCRCsDefined, packCRCs, alloc)); + continue; + } + RINOK(SzSkeepData(sd)); + } + if (*packCRCsDefined == 0) + { + MY_ALLOC(Byte, *packCRCsDefined, (size_t)*numPackStreams, alloc); + MY_ALLOC(UInt32, *packCRCs, (size_t)*numPackStreams, alloc); + for (i = 0; i < *numPackStreams; i++) + { + (*packCRCsDefined)[i] = 0; + (*packCRCs)[i] = 0; + } + } + return SZ_OK; } static SRes SzReadSwitch(CSzData *sd) { - Byte external; - RINOK(SzReadByte(sd, &external)); - return (external == 0) ? SZ_OK: SZ_ERROR_UNSUPPORTED; + Byte external; + RINOK(SzReadByte(sd, &external)); + return (external == 0) ? SZ_OK: SZ_ERROR_UNSUPPORTED; } static SRes SzGetNextFolderItem(CSzData *sd, CSzFolder *folder, ISzAlloc *alloc) { - UInt32 numCoders, numBindPairs, numPackStreams, i; - UInt32 numInStreams = 0, numOutStreams = 0; - - RINOK(SzReadNumber32(sd, &numCoders)); - if (numCoders > NUM_FOLDER_CODERS_MAX) - return SZ_ERROR_UNSUPPORTED; - folder->NumCoders = numCoders; - - MY_ALLOC(CSzCoderInfo, folder->Coders, (size_t)numCoders, alloc); + UInt32 numCoders, numBindPairs, numPackStreams, i; + UInt32 numInStreams = 0, numOutStreams = 0; - for (i = 0; i < numCoders; i++) - SzCoderInfo_Init(folder->Coders + i); - - for (i = 0; i < numCoders; i++) - { - Byte mainByte; - CSzCoderInfo *coder = folder->Coders + i; - { - unsigned idSize, j; - Byte longID[15]; - RINOK(SzReadByte(sd, &mainByte)); - idSize = (unsigned)(mainByte & 0xF); - RINOK(SzReadBytes(sd, longID, idSize)); - if (idSize > sizeof(coder->MethodID)) + RINOK(SzReadNumber32(sd, &numCoders)); + if (numCoders > NUM_FOLDER_CODERS_MAX) return SZ_ERROR_UNSUPPORTED; - coder->MethodID = 0; - for (j = 0; j < idSize; j++) - coder->MethodID |= (UInt64)longID[idSize - 1 - j] << (8 * j); + folder->NumCoders = numCoders; - if ((mainByte & 0x10) != 0) - { - RINOK(SzReadNumber32(sd, &coder->NumInStreams)); - RINOK(SzReadNumber32(sd, &coder->NumOutStreams)); - if (coder->NumInStreams > NUM_CODER_STREAMS_MAX || - coder->NumOutStreams > NUM_CODER_STREAMS_MAX) - return SZ_ERROR_UNSUPPORTED; - } - else - { - coder->NumInStreams = 1; - coder->NumOutStreams = 1; - } - if ((mainByte & 0x20) != 0) - { - UInt64 propertiesSize = 0; - RINOK(SzReadNumber(sd, &propertiesSize)); - if (!Buf_Create(&coder->Props, (size_t)propertiesSize, alloc)) - return SZ_ERROR_MEM; - RINOK(SzReadBytes(sd, coder->Props.data, (size_t)propertiesSize)); - } - } - while ((mainByte & 0x80) != 0) + MY_ALLOC(CSzCoderInfo, folder->Coders, (size_t)numCoders, alloc); + + for (i = 0; i < numCoders; i++) + SzCoderInfo_Init(folder->Coders + i); + + for (i = 0; i < numCoders; i++) { - RINOK(SzReadByte(sd, &mainByte)); - RINOK(SzSkeepDataSize(sd, (mainByte & 0xF))); - if ((mainByte & 0x10) != 0) - { - UInt32 n; - RINOK(SzReadNumber32(sd, &n)); - RINOK(SzReadNumber32(sd, &n)); - } - if ((mainByte & 0x20) != 0) - { - UInt64 propertiesSize = 0; - RINOK(SzReadNumber(sd, &propertiesSize)); - RINOK(SzSkeepDataSize(sd, propertiesSize)); - } + Byte mainByte; + CSzCoderInfo *coder = folder->Coders + i; + { + unsigned idSize, j; + Byte longID[15]; + RINOK(SzReadByte(sd, &mainByte)); + idSize = (unsigned)(mainByte & 0xF); + RINOK(SzReadBytes(sd, longID, idSize)); + if (idSize > sizeof(coder->MethodID)) + return SZ_ERROR_UNSUPPORTED; + coder->MethodID = 0; + for (j = 0; j < idSize; j++) + coder->MethodID |= (UInt64)longID[idSize - 1 - j] << (8 * j); + + if ((mainByte & 0x10) != 0) + { + RINOK(SzReadNumber32(sd, &coder->NumInStreams)); + RINOK(SzReadNumber32(sd, &coder->NumOutStreams)); + if (coder->NumInStreams > NUM_CODER_STREAMS_MAX || + coder->NumOutStreams > NUM_CODER_STREAMS_MAX) + return SZ_ERROR_UNSUPPORTED; + } + else + { + coder->NumInStreams = 1; + coder->NumOutStreams = 1; + } + if ((mainByte & 0x20) != 0) + { + UInt64 propertiesSize = 0; + RINOK(SzReadNumber(sd, &propertiesSize)); + if (!Buf_Create(&coder->Props, (size_t)propertiesSize, alloc)) + return SZ_ERROR_MEM; + RINOK(SzReadBytes(sd, coder->Props.data, (size_t)propertiesSize)); + } + } + while ((mainByte & 0x80) != 0) + { + RINOK(SzReadByte(sd, &mainByte)); + RINOK(SzSkeepDataSize(sd, (mainByte & 0xF))); + if ((mainByte & 0x10) != 0) + { + UInt32 n; + RINOK(SzReadNumber32(sd, &n)); + RINOK(SzReadNumber32(sd, &n)); + } + if ((mainByte & 0x20) != 0) + { + UInt64 propertiesSize = 0; + RINOK(SzReadNumber(sd, &propertiesSize)); + RINOK(SzSkeepDataSize(sd, propertiesSize)); + } + } + numInStreams += coder->NumInStreams; + numOutStreams += coder->NumOutStreams; } - numInStreams += coder->NumInStreams; - numOutStreams += coder->NumOutStreams; - } - if (numOutStreams == 0) - return SZ_ERROR_UNSUPPORTED; + if (numOutStreams == 0) + return SZ_ERROR_UNSUPPORTED; - folder->NumBindPairs = numBindPairs = numOutStreams - 1; - MY_ALLOC(CBindPair, folder->BindPairs, (size_t)numBindPairs, alloc); + folder->NumBindPairs = numBindPairs = numOutStreams - 1; + MY_ALLOC(CBindPair, folder->BindPairs, (size_t)numBindPairs, alloc); - for (i = 0; i < numBindPairs; i++) - { - CBindPair *bp = folder->BindPairs + i; - RINOK(SzReadNumber32(sd, &bp->InIndex)); - RINOK(SzReadNumber32(sd, &bp->OutIndex)); - } - - if (numInStreams < numBindPairs) - return SZ_ERROR_UNSUPPORTED; - - folder->NumPackStreams = numPackStreams = numInStreams - numBindPairs; - MY_ALLOC(UInt32, folder->PackStreams, (size_t)numPackStreams, alloc); - - if (numPackStreams == 1) - { - for (i = 0; i < numInStreams ; i++) - if (SzFolder_FindBindPairForInStream(folder, i) < 0) - break; - if (i == numInStreams) - return SZ_ERROR_UNSUPPORTED; - folder->PackStreams[0] = i; - } - else - for (i = 0; i < numPackStreams; i++) + for (i = 0; i < numBindPairs; i++) { - RINOK(SzReadNumber32(sd, folder->PackStreams + i)); + CBindPair *bp = folder->BindPairs + i; + RINOK(SzReadNumber32(sd, &bp->InIndex)); + RINOK(SzReadNumber32(sd, &bp->OutIndex)); } - return SZ_OK; + + if (numInStreams < numBindPairs) + return SZ_ERROR_UNSUPPORTED; + + folder->NumPackStreams = numPackStreams = numInStreams - numBindPairs; + MY_ALLOC(UInt32, folder->PackStreams, (size_t)numPackStreams, alloc); + + if (numPackStreams == 1) + { + for (i = 0; i < numInStreams ; i++) + if (SzFolder_FindBindPairForInStream(folder, i) < 0) + break; + if (i == numInStreams) + return SZ_ERROR_UNSUPPORTED; + folder->PackStreams[0] = i; + } + else + for (i = 0; i < numPackStreams; i++) + { + RINOK(SzReadNumber32(sd, folder->PackStreams + i)); + } + return SZ_OK; } static SRes SzReadUnpackInfo( @@ -527,67 +527,67 @@ static SRes SzReadUnpackInfo( ISzAlloc *alloc, ISzAlloc *allocTemp) { - UInt32 i; - RINOK(SzWaitAttribute(sd, k7zIdFolder)); - RINOK(SzReadNumber32(sd, numFolders)); - { - RINOK(SzReadSwitch(sd)); - - MY_ALLOC(CSzFolder, *folders, (size_t)*numFolders, alloc); - - for (i = 0; i < *numFolders; i++) - SzFolder_Init((*folders) + i); - - for (i = 0; i < *numFolders; i++) + UInt32 i; + RINOK(SzWaitAttribute(sd, k7zIdFolder)); + RINOK(SzReadNumber32(sd, numFolders)); { - RINOK(SzGetNextFolderItem(sd, (*folders) + i, alloc)); - } - } + RINOK(SzReadSwitch(sd)); - RINOK(SzWaitAttribute(sd, k7zIdCodersUnpackSize)); + MY_ALLOC(CSzFolder, *folders, (size_t)*numFolders, alloc); - for (i = 0; i < *numFolders; i++) - { - UInt32 j; - CSzFolder *folder = (*folders) + i; - UInt32 numOutStreams = SzFolder_GetNumOutStreams(folder); + for (i = 0; i < *numFolders; i++) + SzFolder_Init((*folders) + i); - MY_ALLOC(UInt64, folder->UnpackSizes, (size_t)numOutStreams, alloc); - - for (j = 0; j < numOutStreams; j++) - { - RINOK(SzReadNumber(sd, folder->UnpackSizes + j)); - } - } - - for (;;) - { - UInt64 type; - RINOK(SzReadID(sd, &type)); - if (type == k7zIdEnd) - return SZ_OK; - if (type == k7zIdCRC) - { - SRes res; - Byte *crcsDefined = 0; - UInt32 *crcs = 0; - res = SzReadHashDigests(sd, *numFolders, &crcsDefined, &crcs, allocTemp); - if (res == SZ_OK) - { for (i = 0; i < *numFolders; i++) { - CSzFolder *folder = (*folders) + i; - folder->UnpackCRCDefined = crcsDefined[i]; - folder->UnpackCRC = crcs[i]; + RINOK(SzGetNextFolderItem(sd, (*folders) + i, alloc)); } - } - IAlloc_Free(allocTemp, crcs); - IAlloc_Free(allocTemp, crcsDefined); - RINOK(res); - continue; } - RINOK(SzSkeepData(sd)); - } + + RINOK(SzWaitAttribute(sd, k7zIdCodersUnpackSize)); + + for (i = 0; i < *numFolders; i++) + { + UInt32 j; + CSzFolder *folder = (*folders) + i; + UInt32 numOutStreams = SzFolder_GetNumOutStreams(folder); + + MY_ALLOC(UInt64, folder->UnpackSizes, (size_t)numOutStreams, alloc); + + for (j = 0; j < numOutStreams; j++) + { + RINOK(SzReadNumber(sd, folder->UnpackSizes + j)); + } + } + + for (;;) + { + UInt64 type; + RINOK(SzReadID(sd, &type)); + if (type == k7zIdEnd) + return SZ_OK; + if (type == k7zIdCRC) + { + SRes res; + Byte *crcsDefined = 0; + UInt32 *crcs = 0; + res = SzReadHashDigests(sd, *numFolders, &crcsDefined, &crcs, allocTemp); + if (res == SZ_OK) + { + for (i = 0; i < *numFolders; i++) + { + CSzFolder *folder = (*folders) + i; + folder->UnpackCRCDefined = crcsDefined[i]; + folder->UnpackCRC = crcs[i]; + } + } + IAlloc_Free(allocTemp, crcs); + IAlloc_Free(allocTemp, crcsDefined); + RINOK(res); + continue; + } + RINOK(SzSkeepData(sd)); + } } static SRes SzReadSubStreamsInfo( @@ -600,139 +600,139 @@ static SRes SzReadSubStreamsInfo( UInt32 **digests, ISzAlloc *allocTemp) { - UInt64 type = 0; - UInt32 i; - UInt32 si = 0; - UInt32 numDigests = 0; + UInt64 type = 0; + UInt32 i; + UInt32 si = 0; + UInt32 numDigests = 0; - for (i = 0; i < numFolders; i++) - folders[i].NumUnpackStreams = 1; - *numUnpackStreams = numFolders; + for (i = 0; i < numFolders; i++) + folders[i].NumUnpackStreams = 1; + *numUnpackStreams = numFolders; - for (;;) - { - RINOK(SzReadID(sd, &type)); - if (type == k7zIdNumUnpackStream) + for (;;) { - *numUnpackStreams = 0; - for (i = 0; i < numFolders; i++) - { - UInt32 numStreams; - RINOK(SzReadNumber32(sd, &numStreams)); - folders[i].NumUnpackStreams = numStreams; - *numUnpackStreams += numStreams; - } - continue; - } - if (type == k7zIdCRC || type == k7zIdSize) - break; - if (type == k7zIdEnd) - break; - RINOK(SzSkeepData(sd)); - } - - if (*numUnpackStreams == 0) - { - *unpackSizes = 0; - *digestsDefined = 0; - *digests = 0; - } - else - { - *unpackSizes = (UInt64 *)IAlloc_Alloc(allocTemp, (size_t)*numUnpackStreams * sizeof(UInt64)); - RINOM(*unpackSizes); - *digestsDefined = (Byte *)IAlloc_Alloc(allocTemp, (size_t)*numUnpackStreams * sizeof(Byte)); - RINOM(*digestsDefined); - *digests = (UInt32 *)IAlloc_Alloc(allocTemp, (size_t)*numUnpackStreams * sizeof(UInt32)); - RINOM(*digests); - } - - for (i = 0; i < numFolders; i++) - { - /* - v3.13 incorrectly worked with empty folders - v4.07: we check that folder is empty - */ - UInt64 sum = 0; - UInt32 j; - UInt32 numSubstreams = folders[i].NumUnpackStreams; - if (numSubstreams == 0) - continue; - if (type == k7zIdSize) - for (j = 1; j < numSubstreams; j++) - { - UInt64 size; - RINOK(SzReadNumber(sd, &size)); - (*unpackSizes)[si++] = size; - sum += size; - } - (*unpackSizes)[si++] = SzFolder_GetUnpackSize(folders + i) - sum; - } - if (type == k7zIdSize) - { - RINOK(SzReadID(sd, &type)); - } - - for (i = 0; i < *numUnpackStreams; i++) - { - (*digestsDefined)[i] = 0; - (*digests)[i] = 0; - } - - - for (i = 0; i < numFolders; i++) - { - UInt32 numSubstreams = folders[i].NumUnpackStreams; - if (numSubstreams != 1 || !folders[i].UnpackCRCDefined) - numDigests += numSubstreams; - } - - - si = 0; - for (;;) - { - if (type == k7zIdCRC) - { - int digestIndex = 0; - Byte *digestsDefined2 = 0; - UInt32 *digests2 = 0; - SRes res = SzReadHashDigests(sd, numDigests, &digestsDefined2, &digests2, allocTemp); - if (res == SZ_OK) - { - for (i = 0; i < numFolders; i++) + RINOK(SzReadID(sd, &type)); + if (type == k7zIdNumUnpackStream) { - CSzFolder *folder = folders + i; - UInt32 numSubstreams = folder->NumUnpackStreams; - if (numSubstreams == 1 && folder->UnpackCRCDefined) - { - (*digestsDefined)[si] = 1; - (*digests)[si] = folder->UnpackCRC; - si++; - } - else - { - UInt32 j; - for (j = 0; j < numSubstreams; j++, digestIndex++) + *numUnpackStreams = 0; + for (i = 0; i < numFolders; i++) { - (*digestsDefined)[si] = digestsDefined2[digestIndex]; - (*digests)[si] = digests2[digestIndex]; - si++; + UInt32 numStreams; + RINOK(SzReadNumber32(sd, &numStreams)); + folders[i].NumUnpackStreams = numStreams; + *numUnpackStreams += numStreams; } - } + continue; } - } - IAlloc_Free(allocTemp, digestsDefined2); - IAlloc_Free(allocTemp, digests2); - RINOK(res); + if (type == k7zIdCRC || type == k7zIdSize) + break; + if (type == k7zIdEnd) + break; + RINOK(SzSkeepData(sd)); + } + + if (*numUnpackStreams == 0) + { + *unpackSizes = 0; + *digestsDefined = 0; + *digests = 0; } - else if (type == k7zIdEnd) - return SZ_OK; else { - RINOK(SzSkeepData(sd)); + *unpackSizes = (UInt64 *)IAlloc_Alloc(allocTemp, (size_t)*numUnpackStreams * sizeof(UInt64)); + RINOM(*unpackSizes); + *digestsDefined = (Byte *)IAlloc_Alloc(allocTemp, (size_t)*numUnpackStreams * sizeof(Byte)); + RINOM(*digestsDefined); + *digests = (UInt32 *)IAlloc_Alloc(allocTemp, (size_t)*numUnpackStreams * sizeof(UInt32)); + RINOM(*digests); + } + + for (i = 0; i < numFolders; i++) + { + /* + v3.13 incorrectly worked with empty folders + v4.07: we check that folder is empty + */ + UInt64 sum = 0; + UInt32 j; + UInt32 numSubstreams = folders[i].NumUnpackStreams; + if (numSubstreams == 0) + continue; + if (type == k7zIdSize) + for (j = 1; j < numSubstreams; j++) + { + UInt64 size; + RINOK(SzReadNumber(sd, &size)); + (*unpackSizes)[si++] = size; + sum += size; + } + (*unpackSizes)[si++] = SzFolder_GetUnpackSize(folders + i) - sum; + } + if (type == k7zIdSize) + { + RINOK(SzReadID(sd, &type)); + } + + for (i = 0; i < *numUnpackStreams; i++) + { + (*digestsDefined)[i] = 0; + (*digests)[i] = 0; + } + + + for (i = 0; i < numFolders; i++) + { + UInt32 numSubstreams = folders[i].NumUnpackStreams; + if (numSubstreams != 1 || !folders[i].UnpackCRCDefined) + numDigests += numSubstreams; + } + + + si = 0; + for (;;) + { + if (type == k7zIdCRC) + { + int digestIndex = 0; + Byte *digestsDefined2 = 0; + UInt32 *digests2 = 0; + SRes res = SzReadHashDigests(sd, numDigests, &digestsDefined2, &digests2, allocTemp); + if (res == SZ_OK) + { + for (i = 0; i < numFolders; i++) + { + CSzFolder *folder = folders + i; + UInt32 numSubstreams = folder->NumUnpackStreams; + if (numSubstreams == 1 && folder->UnpackCRCDefined) + { + (*digestsDefined)[si] = 1; + (*digests)[si] = folder->UnpackCRC; + si++; + } + else + { + UInt32 j; + for (j = 0; j < numSubstreams; j++, digestIndex++) + { + (*digestsDefined)[si] = digestsDefined2[digestIndex]; + (*digests)[si] = digests2[digestIndex]; + si++; + } + } + } + } + IAlloc_Free(allocTemp, digestsDefined2); + IAlloc_Free(allocTemp, digests2); + RINOK(res); + } + else if (type == k7zIdEnd) + return SZ_OK; + else + { + RINOK(SzSkeepData(sd)); + } + RINOK(SzReadID(sd, &type)); } - RINOK(SzReadID(sd, &type)); - } } @@ -747,114 +747,114 @@ static SRes SzReadStreamsInfo( ISzAlloc *alloc, ISzAlloc *allocTemp) { - for (;;) - { - UInt64 type; - RINOK(SzReadID(sd, &type)); - if ((UInt64)(int)type != type) - return SZ_ERROR_UNSUPPORTED; - switch((int)type) + for (;;) { - case k7zIdEnd: - return SZ_OK; - case k7zIdPackInfo: - { - RINOK(SzReadPackInfo(sd, dataOffset, &p->NumPackStreams, - &p->PackSizes, &p->PackCRCsDefined, &p->PackCRCs, alloc)); - break; - } - case k7zIdUnpackInfo: - { - RINOK(SzReadUnpackInfo(sd, &p->NumFolders, &p->Folders, alloc, allocTemp)); - break; - } - case k7zIdSubStreamsInfo: - { - RINOK(SzReadSubStreamsInfo(sd, p->NumFolders, p->Folders, - numUnpackStreams, unpackSizes, digestsDefined, digests, allocTemp)); - break; - } - default: - return SZ_ERROR_UNSUPPORTED; + UInt64 type; + RINOK(SzReadID(sd, &type)); + if ((UInt64)(int)type != type) + return SZ_ERROR_UNSUPPORTED; + switch((int)type) + { + case k7zIdEnd: + return SZ_OK; + case k7zIdPackInfo: + { + RINOK(SzReadPackInfo(sd, dataOffset, &p->NumPackStreams, + &p->PackSizes, &p->PackCRCsDefined, &p->PackCRCs, alloc)); + break; + } + case k7zIdUnpackInfo: + { + RINOK(SzReadUnpackInfo(sd, &p->NumFolders, &p->Folders, alloc, allocTemp)); + break; + } + case k7zIdSubStreamsInfo: + { + RINOK(SzReadSubStreamsInfo(sd, p->NumFolders, p->Folders, + numUnpackStreams, unpackSizes, digestsDefined, digests, allocTemp)); + break; + } + default: + return SZ_ERROR_UNSUPPORTED; + } } - } } Byte kUtf8Limits[5] = { 0xC0, 0xE0, 0xF0, 0xF8, 0xFC }; static SRes SzReadFileNames(CSzData *sd, UInt32 numFiles, CSzFileItem *files, ISzAlloc *alloc) { - UInt32 i; - for (i = 0; i < numFiles; i++) - { - UInt32 len = 0; - UInt32 pos = 0; - CSzFileItem *file = files + i; - while (pos + 2 <= sd->Size) + UInt32 i; + for (i = 0; i < numFiles; i++) { - int numAdds; - UInt32 value = (UInt32)(sd->Data[pos] | (((UInt32)sd->Data[pos + 1]) << 8)); - pos += 2; - len++; - if (value == 0) - break; - if (value < 0x80) - continue; - if (value >= 0xD800 && value < 0xE000) - { - UInt32 c2; - if (value >= 0xDC00) - return SZ_ERROR_ARCHIVE; - if (pos + 2 > sd->Size) - return SZ_ERROR_ARCHIVE; - c2 = (UInt32)(sd->Data[pos] | (((UInt32)sd->Data[pos + 1]) << 8)); - pos += 2; - if (c2 < 0xDC00 || c2 >= 0xE000) - return SZ_ERROR_ARCHIVE; - value = ((value - 0xD800) << 10) | (c2 - 0xDC00); - } - for (numAdds = 1; numAdds < 5; numAdds++) - if (value < (((UInt32)1) << (numAdds * 5 + 6))) - break; - len += numAdds; + UInt32 len = 0; + UInt32 pos = 0; + CSzFileItem *file = files + i; + while (pos + 2 <= sd->Size) + { + int numAdds; + UInt32 value = (UInt32)(sd->Data[pos] | (((UInt32)sd->Data[pos + 1]) << 8)); + pos += 2; + len++; + if (value == 0) + break; + if (value < 0x80) + continue; + if (value >= 0xD800 && value < 0xE000) + { + UInt32 c2; + if (value >= 0xDC00) + return SZ_ERROR_ARCHIVE; + if (pos + 2 > sd->Size) + return SZ_ERROR_ARCHIVE; + c2 = (UInt32)(sd->Data[pos] | (((UInt32)sd->Data[pos + 1]) << 8)); + pos += 2; + if (c2 < 0xDC00 || c2 >= 0xE000) + return SZ_ERROR_ARCHIVE; + value = ((value - 0xD800) << 10) | (c2 - 0xDC00); + } + for (numAdds = 1; numAdds < 5; numAdds++) + if (value < (((UInt32)1) << (numAdds * 5 + 6))) + break; + len += numAdds; + } + + MY_ALLOC(char, file->Name, (size_t)len, alloc); + + len = 0; + while (2 <= sd->Size) + { + int numAdds; + UInt32 value = (UInt32)(sd->Data[0] | (((UInt32)sd->Data[1]) << 8)); + SzSkeepDataSize(sd, 2); + if (value < 0x80) + { + file->Name[len++] = (char)value; + if (value == 0) + break; + continue; + } + if (value >= 0xD800 && value < 0xE000) + { + UInt32 c2 = (UInt32)(sd->Data[0] | (((UInt32)sd->Data[1]) << 8)); + SzSkeepDataSize(sd, 2); + value = ((value - 0xD800) << 10) | (c2 - 0xDC00); + } + for (numAdds = 1; numAdds < 5; numAdds++) + if (value < (((UInt32)1) << (numAdds * 5 + 6))) + break; + file->Name[len++] = (char)(kUtf8Limits[numAdds - 1] + (value >> (6 * numAdds))); + do + { + numAdds--; + file->Name[len++] = (char)(0x80 + ((value >> (6 * numAdds)) & 0x3F)); + } + while (numAdds > 0); + + len += numAdds; + } } - - MY_ALLOC(char, file->Name, (size_t)len, alloc); - - len = 0; - while (2 <= sd->Size) - { - int numAdds; - UInt32 value = (UInt32)(sd->Data[0] | (((UInt32)sd->Data[1]) << 8)); - SzSkeepDataSize(sd, 2); - if (value < 0x80) - { - file->Name[len++] = (char)value; - if (value == 0) - break; - continue; - } - if (value >= 0xD800 && value < 0xE000) - { - UInt32 c2 = (UInt32)(sd->Data[0] | (((UInt32)sd->Data[1]) << 8)); - SzSkeepDataSize(sd, 2); - value = ((value - 0xD800) << 10) | (c2 - 0xDC00); - } - for (numAdds = 1; numAdds < 5; numAdds++) - if (value < (((UInt32)1) << (numAdds * 5 + 6))) - break; - file->Name[len++] = (char)(kUtf8Limits[numAdds - 1] + (value >> (6 * numAdds))); - do - { - numAdds--; - file->Name[len++] = (char)(0x80 + ((value >> (6 * numAdds)) & 0x3F)); - } - while (numAdds > 0); - - len += numAdds; - } - } - return SZ_OK; + return SZ_OK; } static SRes SzReadHeader2( @@ -869,142 +869,142 @@ static SRes SzReadHeader2( ISzAlloc *allocMain, ISzAlloc *allocTemp) { - UInt64 type; - UInt32 numUnpackStreams = 0; - UInt32 numFiles = 0; - CSzFileItem *files = 0; - UInt32 numEmptyStreams = 0; - UInt32 i; - - RINOK(SzReadID(sd, &type)); - - if (type == k7zIdArchiveProperties) - { - RINOK(SzReadArchiveProperties(sd)); - RINOK(SzReadID(sd, &type)); - } - - - if (type == k7zIdMainStreamsInfo) - { - RINOK(SzReadStreamsInfo(sd, - &p->dataPos, - &p->db, - &numUnpackStreams, - unpackSizes, - digestsDefined, - digests, allocMain, allocTemp)); - p->dataPos += p->startPosAfterHeader; - RINOK(SzReadID(sd, &type)); - } - - if (type == k7zIdEnd) - return SZ_OK; - if (type != k7zIdFilesInfo) - return SZ_ERROR_ARCHIVE; - - RINOK(SzReadNumber32(sd, &numFiles)); - p->db.NumFiles = numFiles; - - MY_ALLOC(CSzFileItem, files, (size_t)numFiles, allocMain); - - p->db.Files = files; - for (i = 0; i < numFiles; i++) - SzFile_Init(files + i); - - for (;;) - { UInt64 type; - UInt64 size; - RINOK(SzReadID(sd, &type)); - if (type == k7zIdEnd) - break; - RINOK(SzReadNumber(sd, &size)); + UInt32 numUnpackStreams = 0; + UInt32 numFiles = 0; + CSzFileItem *files = 0; + UInt32 numEmptyStreams = 0; + UInt32 i; - if ((UInt64)(int)type != type) + RINOK(SzReadID(sd, &type)); + + if (type == k7zIdArchiveProperties) { - RINOK(SzSkeepDataSize(sd, size)); + RINOK(SzReadArchiveProperties(sd)); + RINOK(SzReadID(sd, &type)); } - else - switch((int)type) + + + if (type == k7zIdMainStreamsInfo) { - case k7zIdName: - { - RINOK(SzReadSwitch(sd)); - RINOK(SzReadFileNames(sd, numFiles, files, allocMain)) - break; - } - case k7zIdEmptyStream: - { - RINOK(SzReadBoolVector(sd, numFiles, emptyStreamVector, allocTemp)); - numEmptyStreams = 0; - for (i = 0; i < numFiles; i++) - if ((*emptyStreamVector)[i]) - numEmptyStreams++; - break; - } - case k7zIdEmptyFile: - { - RINOK(SzReadBoolVector(sd, numEmptyStreams, emptyFileVector, allocTemp)); - break; - } - case k7zIdMTime: - { - RINOK(SzReadBoolVector2(sd, numFiles, lwtVector, allocTemp)); - RINOK(SzReadSwitch(sd)); + RINOK(SzReadStreamsInfo(sd, + &p->dataPos, + &p->db, + &numUnpackStreams, + unpackSizes, + digestsDefined, + digests, allocMain, allocTemp)); + p->dataPos += p->startPosAfterHeader; + RINOK(SzReadID(sd, &type)); + } + + if (type == k7zIdEnd) + return SZ_OK; + if (type != k7zIdFilesInfo) + return SZ_ERROR_ARCHIVE; + + RINOK(SzReadNumber32(sd, &numFiles)); + p->db.NumFiles = numFiles; + + MY_ALLOC(CSzFileItem, files, (size_t)numFiles, allocMain); + + p->db.Files = files; + for (i = 0; i < numFiles; i++) + SzFile_Init(files + i); + + for (;;) + { + UInt64 type; + UInt64 size; + RINOK(SzReadID(sd, &type)); + if (type == k7zIdEnd) + break; + RINOK(SzReadNumber(sd, &size)); + + if ((UInt64)(int)type != type) + { + RINOK(SzSkeepDataSize(sd, size)); + } + else + switch((int)type) + { + case k7zIdName: + { + RINOK(SzReadSwitch(sd)); + RINOK(SzReadFileNames(sd, numFiles, files, allocMain)) + break; + } + case k7zIdEmptyStream: + { + RINOK(SzReadBoolVector(sd, numFiles, emptyStreamVector, allocTemp)); + numEmptyStreams = 0; + for (i = 0; i < numFiles; i++) + if ((*emptyStreamVector)[i]) + numEmptyStreams++; + break; + } + case k7zIdEmptyFile: + { + RINOK(SzReadBoolVector(sd, numEmptyStreams, emptyFileVector, allocTemp)); + break; + } + case k7zIdMTime: + { + RINOK(SzReadBoolVector2(sd, numFiles, lwtVector, allocTemp)); + RINOK(SzReadSwitch(sd)); + for (i = 0; i < numFiles; i++) + { + CSzFileItem *f = &files[i]; + Byte defined = (*lwtVector)[i]; + f->MTimeDefined = defined; + f->MTime.Low = f->MTime.High = 0; + if (defined) + { + RINOK(SzReadUInt32(sd, &f->MTime.Low)); + RINOK(SzReadUInt32(sd, &f->MTime.High)); + } + } + break; + } + default: + { + RINOK(SzSkeepDataSize(sd, size)); + } + } + } + + { + UInt32 emptyFileIndex = 0; + UInt32 sizeIndex = 0; for (i = 0; i < numFiles; i++) { - CSzFileItem *f = &files[i]; - Byte defined = (*lwtVector)[i]; - f->MTimeDefined = defined; - f->MTime.Low = f->MTime.High = 0; - if (defined) - { - RINOK(SzReadUInt32(sd, &f->MTime.Low)); - RINOK(SzReadUInt32(sd, &f->MTime.High)); - } + CSzFileItem *file = files + i; + file->IsAnti = 0; + if (*emptyStreamVector == 0) + file->HasStream = 1; + else + file->HasStream = (Byte)((*emptyStreamVector)[i] ? 0 : 1); + if (file->HasStream) + { + file->IsDir = 0; + file->Size = (*unpackSizes)[sizeIndex]; + file->FileCRC = (*digests)[sizeIndex]; + file->FileCRCDefined = (Byte)(*digestsDefined)[sizeIndex]; + sizeIndex++; + } + else + { + if (*emptyFileVector == 0) + file->IsDir = 1; + else + file->IsDir = (Byte)((*emptyFileVector)[emptyFileIndex] ? 0 : 1); + emptyFileIndex++; + file->Size = 0; + file->FileCRCDefined = 0; + } } - break; - } - default: - { - RINOK(SzSkeepDataSize(sd, size)); - } } - } - - { - UInt32 emptyFileIndex = 0; - UInt32 sizeIndex = 0; - for (i = 0; i < numFiles; i++) - { - CSzFileItem *file = files + i; - file->IsAnti = 0; - if (*emptyStreamVector == 0) - file->HasStream = 1; - else - file->HasStream = (Byte)((*emptyStreamVector)[i] ? 0 : 1); - if (file->HasStream) - { - file->IsDir = 0; - file->Size = (*unpackSizes)[sizeIndex]; - file->FileCRC = (*digests)[sizeIndex]; - file->FileCRCDefined = (Byte)(*digestsDefined)[sizeIndex]; - sizeIndex++; - } - else - { - if (*emptyFileVector == 0) - file->IsDir = 1; - else - file->IsDir = (Byte)((*emptyFileVector)[emptyFileIndex] ? 0 : 1); - emptyFileIndex++; - file->Size = 0; - file->FileCRCDefined = 0; - } - } - } - return SzArEx_Fill(p, allocMain); + return SzArEx_Fill(p, allocMain); } static SRes SzReadHeader( @@ -1013,23 +1013,23 @@ static SRes SzReadHeader( ISzAlloc *allocMain, ISzAlloc *allocTemp) { - UInt64 *unpackSizes = 0; - Byte *digestsDefined = 0; - UInt32 *digests = 0; - Byte *emptyStreamVector = 0; - Byte *emptyFileVector = 0; - Byte *lwtVector = 0; - SRes res = SzReadHeader2(p, sd, - &unpackSizes, &digestsDefined, &digests, - &emptyStreamVector, &emptyFileVector, &lwtVector, - allocMain, allocTemp); - IAlloc_Free(allocTemp, unpackSizes); - IAlloc_Free(allocTemp, digestsDefined); - IAlloc_Free(allocTemp, digests); - IAlloc_Free(allocTemp, emptyStreamVector); - IAlloc_Free(allocTemp, emptyFileVector); - IAlloc_Free(allocTemp, lwtVector); - return res; + UInt64 *unpackSizes = 0; + Byte *digestsDefined = 0; + UInt32 *digests = 0; + Byte *emptyStreamVector = 0; + Byte *emptyFileVector = 0; + Byte *lwtVector = 0; + SRes res = SzReadHeader2(p, sd, + &unpackSizes, &digestsDefined, &digests, + &emptyStreamVector, &emptyFileVector, &lwtVector, + allocMain, allocTemp); + IAlloc_Free(allocTemp, unpackSizes); + IAlloc_Free(allocTemp, digestsDefined); + IAlloc_Free(allocTemp, digests); + IAlloc_Free(allocTemp, emptyStreamVector); + IAlloc_Free(allocTemp, emptyFileVector); + IAlloc_Free(allocTemp, lwtVector); + return res; } static SRes SzReadAndDecodePackedStreams2( @@ -1044,36 +1044,36 @@ static SRes SzReadAndDecodePackedStreams2( ISzAlloc *allocTemp) { - UInt32 numUnpackStreams = 0; - UInt64 dataStartPos; - CSzFolder *folder; - UInt64 unpackSize; - SRes res; + UInt32 numUnpackStreams = 0; + UInt64 dataStartPos; + CSzFolder *folder; + UInt64 unpackSize; + SRes res; - RINOK(SzReadStreamsInfo(sd, &dataStartPos, p, - &numUnpackStreams, unpackSizes, digestsDefined, digests, - allocTemp, allocTemp)); - - dataStartPos += baseOffset; - if (p->NumFolders != 1) - return SZ_ERROR_ARCHIVE; + RINOK(SzReadStreamsInfo(sd, &dataStartPos, p, + &numUnpackStreams, unpackSizes, digestsDefined, digests, + allocTemp, allocTemp)); - folder = p->Folders; - unpackSize = SzFolder_GetUnpackSize(folder); - - RINOK(LookInStream_SeekTo(inStream, dataStartPos)); + dataStartPos += baseOffset; + if (p->NumFolders != 1) + return SZ_ERROR_ARCHIVE; - if (!Buf_Create(outBuffer, (size_t)unpackSize, allocTemp)) - return SZ_ERROR_MEM; - - res = SzDecode(p->PackSizes, folder, - inStream, dataStartPos, - outBuffer->data, (size_t)unpackSize, allocTemp); - RINOK(res); - if (folder->UnpackCRCDefined) - if (CrcCalc(outBuffer->data, (size_t)unpackSize) != folder->UnpackCRC) - return SZ_ERROR_CRC; - return SZ_OK; + folder = p->Folders; + unpackSize = SzFolder_GetUnpackSize(folder); + + RINOK(LookInStream_SeekTo(inStream, dataStartPos)); + + if (!Buf_Create(outBuffer, (size_t)unpackSize, allocTemp)) + return SZ_ERROR_MEM; + + res = SzDecode(p->PackSizes, folder, + inStream, dataStartPos, + outBuffer->data, (size_t)unpackSize, allocTemp); + RINOK(res); + if (folder->UnpackCRCDefined) + if (CrcCalc(outBuffer->data, (size_t)unpackSize) != folder->UnpackCRC) + return SZ_ERROR_CRC; + return SZ_OK; } static SRes SzReadAndDecodePackedStreams( @@ -1083,20 +1083,20 @@ static SRes SzReadAndDecodePackedStreams( UInt64 baseOffset, ISzAlloc *allocTemp) { - CSzAr p; - UInt64 *unpackSizes = 0; - Byte *digestsDefined = 0; - UInt32 *digests = 0; - SRes res; - SzAr_Init(&p); - res = SzReadAndDecodePackedStreams2(inStream, sd, outBuffer, baseOffset, - &p, &unpackSizes, &digestsDefined, &digests, - allocTemp); - SzAr_Free(&p, allocTemp); - IAlloc_Free(allocTemp, unpackSizes); - IAlloc_Free(allocTemp, digestsDefined); - IAlloc_Free(allocTemp, digests); - return res; + CSzAr p; + UInt64 *unpackSizes = 0; + Byte *digestsDefined = 0; + UInt32 *digests = 0; + SRes res; + SzAr_Init(&p); + res = SzReadAndDecodePackedStreams2(inStream, sd, outBuffer, baseOffset, + &p, &unpackSizes, &digestsDefined, &digests, + allocTemp); + SzAr_Free(&p, allocTemp); + IAlloc_Free(allocTemp, unpackSizes); + IAlloc_Free(allocTemp, digestsDefined); + IAlloc_Free(allocTemp, digests); + return res; } static SRes SzArEx_Open2( @@ -1105,100 +1105,100 @@ static SRes SzArEx_Open2( ISzAlloc *allocMain, ISzAlloc *allocTemp) { - Byte header[k7zStartHeaderSize]; - UInt64 nextHeaderOffset, nextHeaderSize; - size_t nextHeaderSizeT; - UInt32 nextHeaderCRC; - CBuf buffer; - SRes res; + Byte header[k7zStartHeaderSize]; + UInt64 nextHeaderOffset, nextHeaderSize; + size_t nextHeaderSizeT; + UInt32 nextHeaderCRC; + CBuf buffer; + SRes res; - RINOK(LookInStream_Read2(inStream, header, k7zStartHeaderSize, SZ_ERROR_NO_ARCHIVE)); + RINOK(LookInStream_Read2(inStream, header, k7zStartHeaderSize, SZ_ERROR_NO_ARCHIVE)); - if (!TestSignatureCandidate(header)) - return SZ_ERROR_NO_ARCHIVE; - if (header[6] != k7zMajorVersion) - return SZ_ERROR_UNSUPPORTED; + if (!TestSignatureCandidate(header)) + return SZ_ERROR_NO_ARCHIVE; + if (header[6] != k7zMajorVersion) + return SZ_ERROR_UNSUPPORTED; - nextHeaderOffset = GetUi64(header + 12); - nextHeaderSize = GetUi64(header + 20); - nextHeaderCRC = GetUi32(header + 28); + nextHeaderOffset = GetUi64(header + 12); + nextHeaderSize = GetUi64(header + 20); + nextHeaderCRC = GetUi32(header + 28); - p->startPosAfterHeader = k7zStartHeaderSize; - - if (CrcCalc(header + 12, 20) != GetUi32(header + 8)) - return SZ_ERROR_CRC; + p->startPosAfterHeader = k7zStartHeaderSize; - nextHeaderSizeT = (size_t)nextHeaderSize; - if (nextHeaderSizeT != nextHeaderSize) - return SZ_ERROR_MEM; - if (nextHeaderSizeT == 0) - return SZ_OK; - if (nextHeaderOffset > nextHeaderOffset + nextHeaderSize || - nextHeaderOffset > nextHeaderOffset + nextHeaderSize + k7zStartHeaderSize) - return SZ_ERROR_NO_ARCHIVE; + if (CrcCalc(header + 12, 20) != GetUi32(header + 8)) + return SZ_ERROR_CRC; - { - Int64 pos = 0; - RINOK(inStream->Seek(inStream, &pos, SZ_SEEK_END)); - if ((UInt64)pos < nextHeaderOffset || - (UInt64)pos < k7zStartHeaderSize + nextHeaderOffset || - (UInt64)pos < k7zStartHeaderSize + nextHeaderOffset + nextHeaderSize) - return SZ_ERROR_INPUT_EOF; - } + nextHeaderSizeT = (size_t)nextHeaderSize; + if (nextHeaderSizeT != nextHeaderSize) + return SZ_ERROR_MEM; + if (nextHeaderSizeT == 0) + return SZ_OK; + if (nextHeaderOffset > nextHeaderOffset + nextHeaderSize || + nextHeaderOffset > nextHeaderOffset + nextHeaderSize + k7zStartHeaderSize) + return SZ_ERROR_NO_ARCHIVE; - RINOK(LookInStream_SeekTo(inStream, k7zStartHeaderSize + nextHeaderOffset)); - - if (!Buf_Create(&buffer, nextHeaderSizeT, allocTemp)) - return SZ_ERROR_MEM; - - res = LookInStream_Read(inStream, buffer.data, nextHeaderSizeT); - if (res == SZ_OK) - { - res = SZ_ERROR_ARCHIVE; - if (CrcCalc(buffer.data, nextHeaderSizeT) == nextHeaderCRC) { - CSzData sd; - UInt64 type; - sd.Data = buffer.data; - sd.Size = buffer.size; - res = SzReadID(&sd, &type); - if (res == SZ_OK) - { - if (type == k7zIdEncodedHeader) + Int64 pos = 0; + RINOK(inStream->Seek(inStream, &pos, SZ_SEEK_END)); + if ((UInt64)pos < nextHeaderOffset || + (UInt64)pos < k7zStartHeaderSize + nextHeaderOffset || + (UInt64)pos < k7zStartHeaderSize + nextHeaderOffset + nextHeaderSize) + return SZ_ERROR_INPUT_EOF; + } + + RINOK(LookInStream_SeekTo(inStream, k7zStartHeaderSize + nextHeaderOffset)); + + if (!Buf_Create(&buffer, nextHeaderSizeT, allocTemp)) + return SZ_ERROR_MEM; + + res = LookInStream_Read(inStream, buffer.data, nextHeaderSizeT); + if (res == SZ_OK) + { + res = SZ_ERROR_ARCHIVE; + if (CrcCalc(buffer.data, nextHeaderSizeT) == nextHeaderCRC) { - CBuf outBuffer; - Buf_Init(&outBuffer); - res = SzReadAndDecodePackedStreams(inStream, &sd, &outBuffer, p->startPosAfterHeader, allocTemp); - if (res != SZ_OK) - Buf_Free(&outBuffer, allocTemp); - else - { - Buf_Free(&buffer, allocTemp); - buffer.data = outBuffer.data; - buffer.size = outBuffer.size; + CSzData sd; + UInt64 type; sd.Data = buffer.data; sd.Size = buffer.size; res = SzReadID(&sd, &type); - } + if (res == SZ_OK) + { + if (type == k7zIdEncodedHeader) + { + CBuf outBuffer; + Buf_Init(&outBuffer); + res = SzReadAndDecodePackedStreams(inStream, &sd, &outBuffer, p->startPosAfterHeader, allocTemp); + if (res != SZ_OK) + Buf_Free(&outBuffer, allocTemp); + else + { + Buf_Free(&buffer, allocTemp); + buffer.data = outBuffer.data; + buffer.size = outBuffer.size; + sd.Data = buffer.data; + sd.Size = buffer.size; + res = SzReadID(&sd, &type); + } + } + } + if (res == SZ_OK) + { + if (type == k7zIdHeader) + res = SzReadHeader(p, &sd, allocMain, allocTemp); + else + res = SZ_ERROR_UNSUPPORTED; + } } - } - if (res == SZ_OK) - { - if (type == k7zIdHeader) - res = SzReadHeader(p, &sd, allocMain, allocTemp); - else - res = SZ_ERROR_UNSUPPORTED; - } } - } - Buf_Free(&buffer, allocTemp); - return res; + Buf_Free(&buffer, allocTemp); + return res; } SRes SzArEx_Open(CSzArEx *p, ILookInStream *inStream, ISzAlloc *allocMain, ISzAlloc *allocTemp) { - SRes res = SzArEx_Open2(p, inStream, allocMain, allocTemp); - if (res != SZ_OK) - SzArEx_Free(p, allocMain); - return res; + SRes res = SzArEx_Open2(p, inStream, allocMain, allocTemp); + if (res != SZ_OK) + SzArEx_Free(p, allocMain); + return res; } diff --git a/src/archivers/7z/Archive/7z/7zIn.h b/src/archivers/7z/Archive/7z/7zIn.h index 717fe52c..5cbbbf85 100644 --- a/src/archivers/7z/Archive/7z/7zIn.h +++ b/src/archivers/7z/Archive/7z/7zIn.h @@ -9,15 +9,15 @@ typedef struct { - CSzAr db; - - UInt64 startPosAfterHeader; - UInt64 dataPos; + CSzAr db; - UInt32 *FolderStartPackStreamIndex; - UInt64 *PackStreamStartPositions; - UInt32 *FolderStartFileIndex; - UInt32 *FileIndexToFolderIndexMap; + UInt64 startPosAfterHeader; + UInt64 dataPos; + + UInt32 *FolderStartPackStreamIndex; + UInt64 *PackStreamStartPositions; + UInt32 *FolderStartFileIndex; + UInt32 *FileIndexToFolderIndexMap; } CSzArEx; void SzArEx_Init(CSzArEx *p); @@ -37,5 +37,5 @@ SZ_ERROR_FAIL */ SRes SzArEx_Open(CSzArEx *p, ILookInStream *inStream, ISzAlloc *allocMain, ISzAlloc *allocTemp); - + #endif diff --git a/src/archivers/7z/Archive/7z/7zItem.cpp b/src/archivers/7z/Archive/7z/7zItem.cpp index a11d5008..213f35f6 100644 --- a/src/archivers/7z/Archive/7z/7zItem.cpp +++ b/src/archivers/7z/Archive/7z/7zItem.cpp @@ -5,123 +5,123 @@ void SzCoderInfo_Init(CSzCoderInfo *p) { - Buf_Init(&p->Props); + Buf_Init(&p->Props); } void SzCoderInfo_Free(CSzCoderInfo *p, ISzAlloc *alloc) { - Buf_Free(&p->Props, alloc); - SzCoderInfo_Init(p); + Buf_Free(&p->Props, alloc); + SzCoderInfo_Init(p); } void SzFolder_Init(CSzFolder *p) { - p->Coders = 0; - p->BindPairs = 0; - p->PackStreams = 0; - p->UnpackSizes = 0; - p->NumCoders = 0; - p->NumBindPairs = 0; - p->NumPackStreams = 0; - p->UnpackCRCDefined = 0; - p->UnpackCRC = 0; - p->NumUnpackStreams = 0; + p->Coders = 0; + p->BindPairs = 0; + p->PackStreams = 0; + p->UnpackSizes = 0; + p->NumCoders = 0; + p->NumBindPairs = 0; + p->NumPackStreams = 0; + p->UnpackCRCDefined = 0; + p->UnpackCRC = 0; + p->NumUnpackStreams = 0; } void SzFolder_Free(CSzFolder *p, ISzAlloc *alloc) { - UInt32 i; - if (p->Coders) - for (i = 0; i < p->NumCoders; i++) - SzCoderInfo_Free(&p->Coders[i], alloc); - IAlloc_Free(alloc, p->Coders); - IAlloc_Free(alloc, p->BindPairs); - IAlloc_Free(alloc, p->PackStreams); - IAlloc_Free(alloc, p->UnpackSizes); - SzFolder_Init(p); + UInt32 i; + if (p->Coders) + for (i = 0; i < p->NumCoders; i++) + SzCoderInfo_Free(&p->Coders[i], alloc); + IAlloc_Free(alloc, p->Coders); + IAlloc_Free(alloc, p->BindPairs); + IAlloc_Free(alloc, p->PackStreams); + IAlloc_Free(alloc, p->UnpackSizes); + SzFolder_Init(p); } UInt32 SzFolder_GetNumOutStreams(CSzFolder *p) { - UInt32 result = 0; - UInt32 i; - for (i = 0; i < p->NumCoders; i++) - result += p->Coders[i].NumOutStreams; - return result; + UInt32 result = 0; + UInt32 i; + for (i = 0; i < p->NumCoders; i++) + result += p->Coders[i].NumOutStreams; + return result; } int SzFolder_FindBindPairForInStream(CSzFolder *p, UInt32 inStreamIndex) { - UInt32 i; - for (i = 0; i < p->NumBindPairs; i++) - if (p->BindPairs[i].InIndex == inStreamIndex) - return i; - return -1; + UInt32 i; + for (i = 0; i < p->NumBindPairs; i++) + if (p->BindPairs[i].InIndex == inStreamIndex) + return i; + return -1; } int SzFolder_FindBindPairForOutStream(CSzFolder *p, UInt32 outStreamIndex) { - UInt32 i; - for (i = 0; i < p->NumBindPairs; i++) - if (p->BindPairs[i].OutIndex == outStreamIndex) - return i; - return -1; + UInt32 i; + for (i = 0; i < p->NumBindPairs; i++) + if (p->BindPairs[i].OutIndex == outStreamIndex) + return i; + return -1; } UInt64 SzFolder_GetUnpackSize(CSzFolder *p) { - int i = (int)SzFolder_GetNumOutStreams(p); - if (i == 0) + int i = (int)SzFolder_GetNumOutStreams(p); + if (i == 0) + return 0; + for (i--; i >= 0; i--) + if (SzFolder_FindBindPairForOutStream(p, i) < 0) + return p->UnpackSizes[i]; + /* throw 1; */ return 0; - for (i--; i >= 0; i--) - if (SzFolder_FindBindPairForOutStream(p, i) < 0) - return p->UnpackSizes[i]; - /* throw 1; */ - return 0; } void SzFile_Init(CSzFileItem *p) { - p->HasStream = 1; - p->IsDir = 0; - p->IsAnti = 0; - p->FileCRCDefined = 0; - p->MTimeDefined = 0; - p->Name = 0; + p->HasStream = 1; + p->IsDir = 0; + p->IsAnti = 0; + p->FileCRCDefined = 0; + p->MTimeDefined = 0; + p->Name = 0; } static void SzFile_Free(CSzFileItem *p, ISzAlloc *alloc) { - IAlloc_Free(alloc, p->Name); - SzFile_Init(p); + IAlloc_Free(alloc, p->Name); + SzFile_Init(p); } void SzAr_Init(CSzAr *p) { - p->PackSizes = 0; - p->PackCRCsDefined = 0; - p->PackCRCs = 0; - p->Folders = 0; - p->Files = 0; - p->NumPackStreams = 0; - p->NumFolders = 0; - p->NumFiles = 0; + p->PackSizes = 0; + p->PackCRCsDefined = 0; + p->PackCRCs = 0; + p->Folders = 0; + p->Files = 0; + p->NumPackStreams = 0; + p->NumFolders = 0; + p->NumFiles = 0; } void SzAr_Free(CSzAr *p, ISzAlloc *alloc) { - UInt32 i; - if (p->Folders) - for (i = 0; i < p->NumFolders; i++) - SzFolder_Free(&p->Folders[i], alloc); - if (p->Files) - for (i = 0; i < p->NumFiles; i++) - SzFile_Free(&p->Files[i], alloc); - IAlloc_Free(alloc, p->PackSizes); - IAlloc_Free(alloc, p->PackCRCsDefined); - IAlloc_Free(alloc, p->PackCRCs); - IAlloc_Free(alloc, p->Folders); - IAlloc_Free(alloc, p->Files); - SzAr_Init(p); + UInt32 i; + if (p->Folders) + for (i = 0; i < p->NumFolders; i++) + SzFolder_Free(&p->Folders[i], alloc); + if (p->Files) + for (i = 0; i < p->NumFiles; i++) + SzFile_Free(&p->Files[i], alloc); + IAlloc_Free(alloc, p->PackSizes); + IAlloc_Free(alloc, p->PackCRCsDefined); + IAlloc_Free(alloc, p->PackCRCs); + IAlloc_Free(alloc, p->Folders); + IAlloc_Free(alloc, p->Files); + SzAr_Init(p); } diff --git a/src/archivers/7z/Archive/7z/7zItem.h b/src/archivers/7z/Archive/7z/7zItem.h index 11599454..56abff8f 100644 --- a/src/archivers/7z/Archive/7z/7zItem.h +++ b/src/archivers/7z/Archive/7z/7zItem.h @@ -8,10 +8,10 @@ typedef struct { - UInt32 NumInStreams; - UInt32 NumOutStreams; - UInt64 MethodID; - CBuf Props; + UInt32 NumInStreams; + UInt32 NumOutStreams; + UInt64 MethodID; + CBuf Props; } CSzCoderInfo; void SzCoderInfo_Init(CSzCoderInfo *p); @@ -19,23 +19,23 @@ void SzCoderInfo_Free(CSzCoderInfo *p, ISzAlloc *alloc); typedef struct { - UInt32 InIndex; - UInt32 OutIndex; + UInt32 InIndex; + UInt32 OutIndex; } CBindPair; typedef struct { - CSzCoderInfo *Coders; - CBindPair *BindPairs; - UInt32 *PackStreams; - UInt64 *UnpackSizes; - UInt32 NumCoders; - UInt32 NumBindPairs; - UInt32 NumPackStreams; - int UnpackCRCDefined; - UInt32 UnpackCRC; + CSzCoderInfo *Coders; + CBindPair *BindPairs; + UInt32 *PackStreams; + UInt64 *UnpackSizes; + UInt32 NumCoders; + UInt32 NumBindPairs; + UInt32 NumPackStreams; + int UnpackCRCDefined; + UInt32 UnpackCRC; - UInt32 NumUnpackStreams; + UInt32 NumUnpackStreams; } CSzFolder; void SzFolder_Init(CSzFolder *p); @@ -46,36 +46,36 @@ UInt64 SzFolder_GetUnpackSize(CSzFolder *p); typedef struct { - UInt32 Low; - UInt32 High; + UInt32 Low; + UInt32 High; } CNtfsFileTime; typedef struct { - CNtfsFileTime MTime; - UInt64 Size; - char *Name; - UInt32 FileCRC; + CNtfsFileTime MTime; + UInt64 Size; + char *Name; + UInt32 FileCRC; - Byte HasStream; - Byte IsDir; - Byte IsAnti; - Byte FileCRCDefined; - Byte MTimeDefined; + Byte HasStream; + Byte IsDir; + Byte IsAnti; + Byte FileCRCDefined; + Byte MTimeDefined; } CSzFileItem; void SzFile_Init(CSzFileItem *p); typedef struct { - UInt64 *PackSizes; - Byte *PackCRCsDefined; - UInt32 *PackCRCs; - CSzFolder *Folders; - CSzFileItem *Files; - UInt32 NumPackStreams; - UInt32 NumFolders; - UInt32 NumFiles; + UInt64 *PackSizes; + Byte *PackCRCsDefined; + UInt32 *PackCRCs; + CSzFolder *Folders; + CSzFileItem *Files; + UInt32 NumPackStreams; + UInt32 NumFolders; + UInt32 NumFiles; } CSzAr; void SzAr_Init(CSzAr *p); diff --git a/src/archivers/7z/Bcj2.cpp b/src/archivers/7z/Bcj2.cpp index 474bdd45..379f33ac 100644 --- a/src/archivers/7z/Bcj2.cpp +++ b/src/archivers/7z/Bcj2.cpp @@ -37,96 +37,96 @@ int Bcj2_Decode( const Byte *buf3, SizeT size3, Byte *outBuf, SizeT outSize) { - CProb p[256 + 2]; - SizeT inPos = 0, outPos = 0; + CProb p[256 + 2]; + SizeT inPos = 0, outPos = 0; - const Byte *buffer, *bufferLim; - UInt32 range, code; - Byte prevByte = 0; + const Byte *buffer, *bufferLim; + UInt32 range, code; + Byte prevByte = 0; - unsigned int i; - for (i = 0; i < sizeof(p) / sizeof(p[0]); i++) - p[i] = kBitModelTotal >> 1; + unsigned int i; + for (i = 0; i < sizeof(p) / sizeof(p[0]); i++) + p[i] = kBitModelTotal >> 1; - buffer = buf3; - bufferLim = buffer + size3; - RC_INIT2 + buffer = buf3; + bufferLim = buffer + size3; + RC_INIT2 - if (outSize == 0) - return SZ_OK; + if (outSize == 0) + return SZ_OK; - for (;;) - { - Byte b; - CProb *prob; - UInt32 bound; - UInt32 ttt; - - SizeT limit = size0 - inPos; - if (outSize - outPos < limit) - limit = outSize - outPos; - while (limit != 0) + for (;;) { - Byte b = buf0[inPos]; - outBuf[outPos++] = b; - if (IsJ(prevByte, b)) - break; - inPos++; - prevByte = b; - limit--; + Byte b; + CProb *prob; + UInt32 bound; + UInt32 ttt; + + SizeT limit = size0 - inPos; + if (outSize - outPos < limit) + limit = outSize - outPos; + while (limit != 0) + { + Byte b = buf0[inPos]; + outBuf[outPos++] = b; + if (IsJ(prevByte, b)) + break; + inPos++; + prevByte = b; + limit--; + } + + if (limit == 0 || outPos == outSize) + break; + + b = buf0[inPos++]; + + if (b == 0xE8) + prob = p + prevByte; + else if (b == 0xE9) + prob = p + 256; + else + prob = p + 257; + + IF_BIT_0(prob) + { + UPDATE_0(prob) + prevByte = b; + } + else + { + UInt32 dest; + const Byte *v; + UPDATE_1(prob) + if (b == 0xE8) + { + v = buf1; + if (size1 < 4) + return SZ_ERROR_DATA; + buf1 += 4; + size1 -= 4; + } + else + { + v = buf2; + if (size2 < 4) + return SZ_ERROR_DATA; + buf2 += 4; + size2 -= 4; + } + dest = (((UInt32)v[0] << 24) | ((UInt32)v[1] << 16) | + ((UInt32)v[2] << 8) | ((UInt32)v[3])) - ((UInt32)outPos + 4); + outBuf[outPos++] = (Byte)dest; + if (outPos == outSize) + break; + outBuf[outPos++] = (Byte)(dest >> 8); + if (outPos == outSize) + break; + outBuf[outPos++] = (Byte)(dest >> 16); + if (outPos == outSize) + break; + outBuf[outPos++] = prevByte = (Byte)(dest >> 24); + } } - - if (limit == 0 || outPos == outSize) - break; - - b = buf0[inPos++]; - - if (b == 0xE8) - prob = p + prevByte; - else if (b == 0xE9) - prob = p + 256; - else - prob = p + 257; - - IF_BIT_0(prob) - { - UPDATE_0(prob) - prevByte = b; - } - else - { - UInt32 dest; - const Byte *v; - UPDATE_1(prob) - if (b == 0xE8) - { - v = buf1; - if (size1 < 4) - return SZ_ERROR_DATA; - buf1 += 4; - size1 -= 4; - } - else - { - v = buf2; - if (size2 < 4) - return SZ_ERROR_DATA; - buf2 += 4; - size2 -= 4; - } - dest = (((UInt32)v[0] << 24) | ((UInt32)v[1] << 16) | - ((UInt32)v[2] << 8) | ((UInt32)v[3])) - ((UInt32)outPos + 4); - outBuf[outPos++] = (Byte)dest; - if (outPos == outSize) - break; - outBuf[outPos++] = (Byte)(dest >> 8); - if (outPos == outSize) - break; - outBuf[outPos++] = (Byte)(dest >> 16); - if (outPos == outSize) - break; - outBuf[outPos++] = prevByte = (Byte)(dest >> 24); - } - } - return (outPos == outSize) ? SZ_OK : SZ_ERROR_DATA; + return (outPos == outSize) ? SZ_OK : SZ_ERROR_DATA; } diff --git a/src/archivers/7z/Bra.cpp b/src/archivers/7z/Bra.cpp index 3b75f0cc..441196ab 100644 --- a/src/archivers/7z/Bra.cpp +++ b/src/archivers/7z/Bra.cpp @@ -5,129 +5,129 @@ SizeT ARM_Convert(Byte *data, SizeT size, UInt32 ip, int encoding) { - SizeT i; - if (size < 4) - return 0; - size -= 4; - ip += 8; - for (i = 0; i <= size; i += 4) - { - if (data[i + 3] == 0xEB) + SizeT i; + if (size < 4) + return 0; + size -= 4; + ip += 8; + for (i = 0; i <= size; i += 4) { - UInt32 dest; - UInt32 src = ((UInt32)data[i + 2] << 16) | ((UInt32)data[i + 1] << 8) | (data[i + 0]); - src <<= 2; - if (encoding) - dest = ip + (UInt32)i + src; - else - dest = src - (ip + (UInt32)i); - dest >>= 2; - data[i + 2] = (Byte)(dest >> 16); - data[i + 1] = (Byte)(dest >> 8); - data[i + 0] = (Byte)dest; + if (data[i + 3] == 0xEB) + { + UInt32 dest; + UInt32 src = ((UInt32)data[i + 2] << 16) | ((UInt32)data[i + 1] << 8) | (data[i + 0]); + src <<= 2; + if (encoding) + dest = ip + (UInt32)i + src; + else + dest = src - (ip + (UInt32)i); + dest >>= 2; + data[i + 2] = (Byte)(dest >> 16); + data[i + 1] = (Byte)(dest >> 8); + data[i + 0] = (Byte)dest; + } } - } - return i; + return i; } SizeT ARMT_Convert(Byte *data, SizeT size, UInt32 ip, int encoding) { - SizeT i; - if (size < 4) - return 0; - size -= 4; - ip += 4; - for (i = 0; i <= size; i += 2) - { - if ((data[i + 1] & 0xF8) == 0xF0 && - (data[i + 3] & 0xF8) == 0xF8) + SizeT i; + if (size < 4) + return 0; + size -= 4; + ip += 4; + for (i = 0; i <= size; i += 2) { - UInt32 dest; - UInt32 src = - (((UInt32)data[i + 1] & 0x7) << 19) | - ((UInt32)data[i + 0] << 11) | - (((UInt32)data[i + 3] & 0x7) << 8) | - (data[i + 2]); - - src <<= 1; - if (encoding) - dest = ip + (UInt32)i + src; - else - dest = src - (ip + (UInt32)i); - dest >>= 1; - - data[i + 1] = (Byte)(0xF0 | ((dest >> 19) & 0x7)); - data[i + 0] = (Byte)(dest >> 11); - data[i + 3] = (Byte)(0xF8 | ((dest >> 8) & 0x7)); - data[i + 2] = (Byte)dest; - i += 2; + if ((data[i + 1] & 0xF8) == 0xF0 && + (data[i + 3] & 0xF8) == 0xF8) + { + UInt32 dest; + UInt32 src = + (((UInt32)data[i + 1] & 0x7) << 19) | + ((UInt32)data[i + 0] << 11) | + (((UInt32)data[i + 3] & 0x7) << 8) | + (data[i + 2]); + + src <<= 1; + if (encoding) + dest = ip + (UInt32)i + src; + else + dest = src - (ip + (UInt32)i); + dest >>= 1; + + data[i + 1] = (Byte)(0xF0 | ((dest >> 19) & 0x7)); + data[i + 0] = (Byte)(dest >> 11); + data[i + 3] = (Byte)(0xF8 | ((dest >> 8) & 0x7)); + data[i + 2] = (Byte)dest; + i += 2; + } } - } - return i; + return i; } SizeT PPC_Convert(Byte *data, SizeT size, UInt32 ip, int encoding) { - SizeT i; - if (size < 4) - return 0; - size -= 4; - for (i = 0; i <= size; i += 4) - { - if ((data[i] >> 2) == 0x12 && (data[i + 3] & 3) == 1) + SizeT i; + if (size < 4) + return 0; + size -= 4; + for (i = 0; i <= size; i += 4) { - UInt32 src = ((UInt32)(data[i + 0] & 3) << 24) | - ((UInt32)data[i + 1] << 16) | - ((UInt32)data[i + 2] << 8) | - ((UInt32)data[i + 3] & (~3)); - - UInt32 dest; - if (encoding) - dest = ip + (UInt32)i + src; - else - dest = src - (ip + (UInt32)i); - data[i + 0] = (Byte)(0x48 | ((dest >> 24) & 0x3)); - data[i + 1] = (Byte)(dest >> 16); - data[i + 2] = (Byte)(dest >> 8); - data[i + 3] &= 0x3; - data[i + 3] |= dest; + if ((data[i] >> 2) == 0x12 && (data[i + 3] & 3) == 1) + { + UInt32 src = ((UInt32)(data[i + 0] & 3) << 24) | + ((UInt32)data[i + 1] << 16) | + ((UInt32)data[i + 2] << 8) | + ((UInt32)data[i + 3] & (~3)); + + UInt32 dest; + if (encoding) + dest = ip + (UInt32)i + src; + else + dest = src - (ip + (UInt32)i); + data[i + 0] = (Byte)(0x48 | ((dest >> 24) & 0x3)); + data[i + 1] = (Byte)(dest >> 16); + data[i + 2] = (Byte)(dest >> 8); + data[i + 3] &= 0x3; + data[i + 3] |= dest; + } } - } - return i; + return i; } SizeT SPARC_Convert(Byte *data, SizeT size, UInt32 ip, int encoding) { - UInt32 i; - if (size < 4) - return 0; - size -= 4; - for (i = 0; i <= size; i += 4) - { - if (data[i] == 0x40 && (data[i + 1] & 0xC0) == 0x00 || - data[i] == 0x7F && (data[i + 1] & 0xC0) == 0xC0) + UInt32 i; + if (size < 4) + return 0; + size -= 4; + for (i = 0; i <= size; i += 4) { - UInt32 src = - ((UInt32)data[i + 0] << 24) | - ((UInt32)data[i + 1] << 16) | - ((UInt32)data[i + 2] << 8) | - ((UInt32)data[i + 3]); - UInt32 dest; - - src <<= 2; - if (encoding) - dest = ip + i + src; - else - dest = src - (ip + i); - dest >>= 2; - - dest = (((0 - ((dest >> 22) & 1)) << 22) & 0x3FFFFFFF) | (dest & 0x3FFFFF) | 0x40000000; + if (data[i] == 0x40 && (data[i + 1] & 0xC0) == 0x00 || + data[i] == 0x7F && (data[i + 1] & 0xC0) == 0xC0) + { + UInt32 src = + ((UInt32)data[i + 0] << 24) | + ((UInt32)data[i + 1] << 16) | + ((UInt32)data[i + 2] << 8) | + ((UInt32)data[i + 3]); + UInt32 dest; - data[i + 0] = (Byte)(dest >> 24); - data[i + 1] = (Byte)(dest >> 16); - data[i + 2] = (Byte)(dest >> 8); - data[i + 3] = (Byte)dest; + src <<= 2; + if (encoding) + dest = ip + i + src; + else + dest = src - (ip + i); + dest >>= 2; + + dest = (((0 - ((dest >> 22) & 1)) << 22) & 0x3FFFFFFF) | (dest & 0x3FFFFF) | 0x40000000; + + data[i + 0] = (Byte)(dest >> 24); + data[i + 1] = (Byte)(dest >> 16); + data[i + 2] = (Byte)(dest >> 8); + data[i + 3] = (Byte)dest; + } } - } - return i; + return i; } diff --git a/src/archivers/7z/Bra86.cpp b/src/archivers/7z/Bra86.cpp index 93566cb2..8a3bdcc3 100644 --- a/src/archivers/7z/Bra86.cpp +++ b/src/archivers/7z/Bra86.cpp @@ -10,76 +10,76 @@ const Byte kMaskToBitNumber[8] = {0, 1, 2, 2, 3, 3, 3, 3}; SizeT x86_Convert(Byte *data, SizeT size, UInt32 ip, UInt32 *state, int encoding) { - SizeT bufferPos = 0, prevPosT; - UInt32 prevMask = *state & 0x7; - if (size < 5) - return 0; - ip += 5; - prevPosT = (SizeT)0 - 1; + SizeT bufferPos = 0, prevPosT; + UInt32 prevMask = *state & 0x7; + if (size < 5) + return 0; + ip += 5; + prevPosT = (SizeT)0 - 1; - for (;;) - { - Byte *p = data + bufferPos; - Byte *limit = data + size - 4; - for (; p < limit; p++) - if ((*p & 0xFE) == 0xE8) - break; - bufferPos = (SizeT)(p - data); - if (p >= limit) - break; - prevPosT = bufferPos - prevPosT; - if (prevPosT > 3) - prevMask = 0; - else + for (;;) { - prevMask = (prevMask << ((int)prevPosT - 1)) & 0x7; - if (prevMask != 0) - { - Byte b = p[4 - kMaskToBitNumber[prevMask]]; - if (!kMaskToAllowedStatus[prevMask] || Test86MSByte(b)) - { - prevPosT = bufferPos; - prevMask = ((prevMask << 1) & 0x7) | 1; - bufferPos++; - continue; - } - } - } - prevPosT = bufferPos; - - if (Test86MSByte(p[4])) - { - UInt32 src = ((UInt32)p[4] << 24) | ((UInt32)p[3] << 16) | ((UInt32)p[2] << 8) | ((UInt32)p[1]); - UInt32 dest; - for (;;) - { - Byte b; - int index; - if (encoding) - dest = (ip + (UInt32)bufferPos) + src; + Byte *p = data + bufferPos; + Byte *limit = data + size - 4; + for (; p < limit; p++) + if ((*p & 0xFE) == 0xE8) + break; + bufferPos = (SizeT)(p - data); + if (p >= limit) + break; + prevPosT = bufferPos - prevPosT; + if (prevPosT > 3) + prevMask = 0; else - dest = src - (ip + (UInt32)bufferPos); - if (prevMask == 0) - break; - index = kMaskToBitNumber[prevMask] * 8; - b = (Byte)(dest >> (24 - index)); - if (!Test86MSByte(b)) - break; - src = dest ^ ((1 << (32 - index)) - 1); - } - p[4] = (Byte)(~(((dest >> 24) & 1) - 1)); - p[3] = (Byte)(dest >> 16); - p[2] = (Byte)(dest >> 8); - p[1] = (Byte)dest; - bufferPos += 5; + { + prevMask = (prevMask << ((int)prevPosT - 1)) & 0x7; + if (prevMask != 0) + { + Byte b = p[4 - kMaskToBitNumber[prevMask]]; + if (!kMaskToAllowedStatus[prevMask] || Test86MSByte(b)) + { + prevPosT = bufferPos; + prevMask = ((prevMask << 1) & 0x7) | 1; + bufferPos++; + continue; + } + } + } + prevPosT = bufferPos; + + if (Test86MSByte(p[4])) + { + UInt32 src = ((UInt32)p[4] << 24) | ((UInt32)p[3] << 16) | ((UInt32)p[2] << 8) | ((UInt32)p[1]); + UInt32 dest; + for (;;) + { + Byte b; + int index; + if (encoding) + dest = (ip + (UInt32)bufferPos) + src; + else + dest = src - (ip + (UInt32)bufferPos); + if (prevMask == 0) + break; + index = kMaskToBitNumber[prevMask] * 8; + b = (Byte)(dest >> (24 - index)); + if (!Test86MSByte(b)) + break; + src = dest ^ ((1 << (32 - index)) - 1); + } + p[4] = (Byte)(~(((dest >> 24) & 1) - 1)); + p[3] = (Byte)(dest >> 16); + p[2] = (Byte)(dest >> 8); + p[1] = (Byte)dest; + bufferPos += 5; + } + else + { + prevMask = ((prevMask << 1) & 0x7) | 1; + bufferPos++; + } } - else - { - prevMask = ((prevMask << 1) & 0x7) | 1; - bufferPos++; - } - } - prevPosT = bufferPos - prevPosT; - *state = ((prevPosT > 3) ? 0 : ((prevMask << ((int)prevPosT - 1)) & 0x7)); - return bufferPos; + prevPosT = bufferPos - prevPosT; + *state = ((prevPosT > 3) ? 0 : ((prevMask << ((int)prevPosT - 1)) & 0x7)); + return bufferPos; } diff --git a/src/archivers/7z/LzmaDec.cpp b/src/archivers/7z/LzmaDec.cpp index eb525017..4eb2bb28 100644 --- a/src/archivers/7z/LzmaDec.cpp +++ b/src/archivers/7z/LzmaDec.cpp @@ -115,8 +115,8 @@ StopCompilingDueBUG static const Byte kLiteralNextStates[kNumStates * 2] = { - 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 4, 5, - 7, 7, 7, 7, 7, 7, 7, 10, 10, 10, 10, 10 + 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 4, 5, + 7, 7, 7, 7, 7, 7, 7, 10, 10, 10, 10, 10 }; #define LZMA_DIC_MIN (1 << 12) @@ -136,872 +136,880 @@ Out: static int MY_FAST_CALL LzmaDec_DecodeReal(CLzmaDec *p, SizeT limit, const Byte *bufLimit) { - CLzmaProb *probs = p->probs; + CLzmaProb *probs = p->probs; - unsigned state = p->state; - UInt32 rep0 = p->reps[0], rep1 = p->reps[1], rep2 = p->reps[2], rep3 = p->reps[3]; - unsigned pbMask = ((unsigned)1 << (p->prop.pb)) - 1; - unsigned lpMask = ((unsigned)1 << (p->prop.lp)) - 1; - unsigned lc = p->prop.lc; + unsigned state = p->state; + UInt32 rep0 = p->reps[0], rep1 = p->reps[1], rep2 = p->reps[2], rep3 = p->reps[3]; + unsigned pbMask = ((unsigned)1 << (p->prop.pb)) - 1; + unsigned lpMask = ((unsigned)1 << (p->prop.lp)) - 1; + unsigned lc = p->prop.lc; - Byte *dic = p->dic; - SizeT dicBufSize = p->dicBufSize; - SizeT dicPos = p->dicPos; - - UInt32 processedPos = p->processedPos; - UInt32 checkDicSize = p->checkDicSize; - unsigned len = 0; + Byte *dic = p->dic; + SizeT dicBufSize = p->dicBufSize; + SizeT dicPos = p->dicPos; - const Byte *buf = p->buf; - UInt32 range = p->range; - UInt32 code = p->code; + UInt32 processedPos = p->processedPos; + UInt32 checkDicSize = p->checkDicSize; + unsigned len = 0; - do - { - CLzmaProb *prob; - UInt32 bound; - unsigned ttt; - unsigned posState = processedPos & pbMask; + const Byte *buf = p->buf; + UInt32 range = p->range; + UInt32 code = p->code; - prob = probs + IsMatch + (state << kNumPosBitsMax) + posState; - IF_BIT_0(prob) + do { - unsigned symbol; - UPDATE_0(prob); - prob = probs + Literal; - if (checkDicSize != 0 || processedPos != 0) - prob += (LZMA_LIT_SIZE * (((processedPos & lpMask) << lc) + - (dic[(dicPos == 0 ? dicBufSize : dicPos) - 1] >> (8 - lc)))); + CLzmaProb *prob; + UInt32 bound; + unsigned ttt; + unsigned posState = processedPos & pbMask; - if (state < kNumLitStates) - { - symbol = 1; - do { GET_BIT(prob + symbol, symbol) } while (symbol < 0x100); - } - else - { - unsigned matchByte = p->dic[(dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0)]; - unsigned offs = 0x100; - symbol = 1; - do - { - unsigned bit; - CLzmaProb *probLit; - matchByte <<= 1; - bit = (matchByte & offs); - probLit = prob + offs + bit + symbol; - GET_BIT2(probLit, symbol, offs &= ~bit, offs &= bit) - } - while (symbol < 0x100); - } - dic[dicPos++] = (Byte)symbol; - processedPos++; - - state = kLiteralNextStates[state]; - /* if (state < 4) state = 0; else if (state < 10) state -= 3; else state -= 6; */ - continue; - } - else - { - UPDATE_1(prob); - prob = probs + IsRep + state; - IF_BIT_0(prob) - { - UPDATE_0(prob); - state += kNumStates; - prob = probs + LenCoder; - } - else - { - UPDATE_1(prob); - if (checkDicSize == 0 && processedPos == 0) - return SZ_ERROR_DATA; - prob = probs + IsRepG0 + state; + prob = probs + IsMatch + (state << kNumPosBitsMax) + posState; IF_BIT_0(prob) { - UPDATE_0(prob); - prob = probs + IsRep0Long + (state << kNumPosBitsMax) + posState; - IF_BIT_0(prob) - { + unsigned symbol; UPDATE_0(prob); - dic[dicPos] = dic[(dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0)]; - dicPos++; - processedPos++; - state = state < kNumLitStates ? 9 : 11; - continue; - } - UPDATE_1(prob); - } - else - { - UInt32 distance; - UPDATE_1(prob); - prob = probs + IsRepG1 + state; - IF_BIT_0(prob) - { - UPDATE_0(prob); - distance = rep1; - } - else - { - UPDATE_1(prob); - prob = probs + IsRepG2 + state; - IF_BIT_0(prob) + prob = probs + Literal; + if (checkDicSize != 0 || processedPos != 0) + prob += (LZMA_LIT_SIZE * (((processedPos & lpMask) << lc) + + (dic[(dicPos == 0 ? dicBufSize : dicPos) - 1] >> (8 - lc)))); + + if (state < kNumLitStates) { - UPDATE_0(prob); - distance = rep2; + symbol = 1; + do + { + GET_BIT(prob + symbol, symbol) + } + while (symbol < 0x100); } else { - UPDATE_1(prob); - distance = rep3; - rep3 = rep2; + unsigned matchByte = p->dic[(dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0)]; + unsigned offs = 0x100; + symbol = 1; + do + { + unsigned bit; + CLzmaProb *probLit; + matchByte <<= 1; + bit = (matchByte & offs); + probLit = prob + offs + bit + symbol; + GET_BIT2(probLit, symbol, offs &= ~bit, offs &= bit) + } + while (symbol < 0x100); } - rep2 = rep1; - } - rep1 = rep0; - rep0 = distance; - } - state = state < kNumLitStates ? 8 : 11; - prob = probs + RepLenCoder; - } - { - unsigned limit, offset; - CLzmaProb *probLen = prob + LenChoice; - IF_BIT_0(probLen) - { - UPDATE_0(probLen); - probLen = prob + LenLow + (posState << kLenNumLowBits); - offset = 0; - limit = (1 << kLenNumLowBits); + dic[dicPos++] = (Byte)symbol; + processedPos++; + + state = kLiteralNextStates[state]; + /* if (state < 4) state = 0; else if (state < 10) state -= 3; else state -= 6; */ + continue; } else { - UPDATE_1(probLen); - probLen = prob + LenChoice2; - IF_BIT_0(probLen) - { - UPDATE_0(probLen); - probLen = prob + LenMid + (posState << kLenNumMidBits); - offset = kLenNumLowSymbols; - limit = (1 << kLenNumMidBits); - } - else - { - UPDATE_1(probLen); - probLen = prob + LenHigh; - offset = kLenNumLowSymbols + kLenNumMidSymbols; - limit = (1 << kLenNumHighBits); - } - } - TREE_DECODE(probLen, limit, len); - len += offset; - } - - if (state >= kNumStates) - { - UInt32 distance; - prob = probs + PosSlot + - ((len < kNumLenToPosStates ? len : kNumLenToPosStates - 1) << kNumPosSlotBits); - TREE_6_DECODE(prob, distance); - if (distance >= kStartPosModelIndex) - { - unsigned posSlot = (unsigned)distance; - int numDirectBits = (int)(((distance >> 1) - 1)); - distance = (2 | (distance & 1)); - if (posSlot < kEndPosModelIndex) - { - distance <<= numDirectBits; - prob = probs + SpecPos + distance - posSlot - 1; + UPDATE_1(prob); + prob = probs + IsRep + state; + IF_BIT_0(prob) { - UInt32 mask = 1; - unsigned i = 1; - do - { - GET_BIT2(prob + i, i, ; , distance |= mask); - mask <<= 1; - } - while (--numDirectBits != 0); + UPDATE_0(prob); + state += kNumStates; + prob = probs + LenCoder; } - } - else - { - numDirectBits -= kNumAlignBits; - do + else { - NORMALIZE - range >>= 1; - - { - UInt32 t; - code -= range; - t = (0 - ((UInt32)code >> 31)); /* (UInt32)((Int32)code >> 31) */ - distance = (distance << 1) + (t + 1); - code += range & t; - } - /* - distance <<= 1; - if (code >= range) - { - code -= range; - distance |= 1; - } - */ + UPDATE_1(prob); + if (checkDicSize == 0 && processedPos == 0) + return SZ_ERROR_DATA; + prob = probs + IsRepG0 + state; + IF_BIT_0(prob) + { + UPDATE_0(prob); + prob = probs + IsRep0Long + (state << kNumPosBitsMax) + posState; + IF_BIT_0(prob) + { + UPDATE_0(prob); + dic[dicPos] = dic[(dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0)]; + dicPos++; + processedPos++; + state = state < kNumLitStates ? 9 : 11; + continue; + } + UPDATE_1(prob); + } + else + { + UInt32 distance; + UPDATE_1(prob); + prob = probs + IsRepG1 + state; + IF_BIT_0(prob) + { + UPDATE_0(prob); + distance = rep1; + } + else + { + UPDATE_1(prob); + prob = probs + IsRepG2 + state; + IF_BIT_0(prob) + { + UPDATE_0(prob); + distance = rep2; + } + else + { + UPDATE_1(prob); + distance = rep3; + rep3 = rep2; + } + rep2 = rep1; + } + rep1 = rep0; + rep0 = distance; + } + state = state < kNumLitStates ? 8 : 11; + prob = probs + RepLenCoder; } - while (--numDirectBits != 0); - prob = probs + Align; - distance <<= kNumAlignBits; { - unsigned i = 1; - GET_BIT2(prob + i, i, ; , distance |= 1); - GET_BIT2(prob + i, i, ; , distance |= 2); - GET_BIT2(prob + i, i, ; , distance |= 4); - GET_BIT2(prob + i, i, ; , distance |= 8); + unsigned limit, offset; + CLzmaProb *probLen = prob + LenChoice; + IF_BIT_0(probLen) + { + UPDATE_0(probLen); + probLen = prob + LenLow + (posState << kLenNumLowBits); + offset = 0; + limit = (1 << kLenNumLowBits); + } + else + { + UPDATE_1(probLen); + probLen = prob + LenChoice2; + IF_BIT_0(probLen) + { + UPDATE_0(probLen); + probLen = prob + LenMid + (posState << kLenNumMidBits); + offset = kLenNumLowSymbols; + limit = (1 << kLenNumMidBits); + } + else + { + UPDATE_1(probLen); + probLen = prob + LenHigh; + offset = kLenNumLowSymbols + kLenNumMidSymbols; + limit = (1 << kLenNumHighBits); + } + } + TREE_DECODE(probLen, limit, len); + len += offset; } - if (distance == (UInt32)0xFFFFFFFF) + + if (state >= kNumStates) { - len += kMatchSpecLenStart; - state -= kNumStates; - break; + UInt32 distance; + prob = probs + PosSlot + + ((len < kNumLenToPosStates ? len : kNumLenToPosStates - 1) << kNumPosSlotBits); + TREE_6_DECODE(prob, distance); + if (distance >= kStartPosModelIndex) + { + unsigned posSlot = (unsigned)distance; + int numDirectBits = (int)(((distance >> 1) - 1)); + distance = (2 | (distance & 1)); + if (posSlot < kEndPosModelIndex) + { + distance <<= numDirectBits; + prob = probs + SpecPos + distance - posSlot - 1; + { + UInt32 mask = 1; + unsigned i = 1; + do + { + GET_BIT2(prob + i, i, ;, distance |= mask); + mask <<= 1; + } + while (--numDirectBits != 0); + } + } + else + { + numDirectBits -= kNumAlignBits; + do + { + NORMALIZE + range >>= 1; + + { + UInt32 t; + code -= range; + t = (0 - ((UInt32)code >> 31)); /* (UInt32)((Int32)code >> 31) */ + distance = (distance << 1) + (t + 1); + code += range & t; + } + /* + distance <<= 1; + if (code >= range) + { + code -= range; + distance |= 1; + } + */ + } + while (--numDirectBits != 0); + prob = probs + Align; + distance <<= kNumAlignBits; + { + unsigned i = 1; + GET_BIT2(prob + i, i, ;, distance |= 1); + GET_BIT2(prob + i, i, ;, distance |= 2); + GET_BIT2(prob + i, i, ;, distance |= 4); + GET_BIT2(prob + i, i, ;, distance |= 8); + } + if (distance == (UInt32)0xFFFFFFFF) + { + len += kMatchSpecLenStart; + state -= kNumStates; + break; + } + } + } + rep3 = rep2; + rep2 = rep1; + rep1 = rep0; + rep0 = distance + 1; + if (checkDicSize == 0) + { + if (distance >= processedPos) + return SZ_ERROR_DATA; + } + else if (distance >= checkDicSize) + return SZ_ERROR_DATA; + state = (state < kNumStates + kNumLitStates) ? kNumLitStates : kNumLitStates + 3; + /* state = kLiteralNextStates[state]; */ } - } - } - rep3 = rep2; - rep2 = rep1; - rep1 = rep0; - rep0 = distance + 1; - if (checkDicSize == 0) - { - if (distance >= processedPos) - return SZ_ERROR_DATA; - } - else if (distance >= checkDicSize) - return SZ_ERROR_DATA; - state = (state < kNumStates + kNumLitStates) ? kNumLitStates : kNumLitStates + 3; - /* state = kLiteralNextStates[state]; */ - } - len += kMatchMinLen; + len += kMatchMinLen; - if (limit == dicPos) - return SZ_ERROR_DATA; - { - SizeT rem = limit - dicPos; - unsigned curLen = ((rem < len) ? (unsigned)rem : len); - SizeT pos = (dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0); + if (limit == dicPos) + return SZ_ERROR_DATA; + { + SizeT rem = limit - dicPos; + unsigned curLen = ((rem < len) ? (unsigned)rem : len); + SizeT pos = (dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0); - processedPos += curLen; + processedPos += curLen; - len -= curLen; - if (pos + curLen <= dicBufSize) - { - Byte *dest = dic + dicPos; - ptrdiff_t src = (ptrdiff_t)pos - (ptrdiff_t)dicPos; - const Byte *lim = dest + curLen; - dicPos += curLen; - do - *(dest) = (Byte)*(dest + src); - while (++dest != lim); + len -= curLen; + if (pos + curLen <= dicBufSize) + { + Byte *dest = dic + dicPos; + ptrdiff_t src = (ptrdiff_t)pos - (ptrdiff_t)dicPos; + const Byte *lim = dest + curLen; + dicPos += curLen; + do + *(dest) = (Byte)*(dest + src); + while (++dest != lim); + } + else + { + do + { + dic[dicPos++] = dic[pos]; + if (++pos == dicBufSize) + pos = 0; + } + while (--curLen != 0); + } + } } - else - { - do - { - dic[dicPos++] = dic[pos]; - if (++pos == dicBufSize) - pos = 0; - } - while (--curLen != 0); - } - } } - } - while (dicPos < limit && buf < bufLimit); - NORMALIZE; - p->buf = buf; - p->range = range; - p->code = code; - p->remainLen = len; - p->dicPos = dicPos; - p->processedPos = processedPos; - p->reps[0] = rep0; - p->reps[1] = rep1; - p->reps[2] = rep2; - p->reps[3] = rep3; - p->state = state; + while (dicPos < limit && buf < bufLimit); + NORMALIZE; + p->buf = buf; + p->range = range; + p->code = code; + p->remainLen = len; + p->dicPos = dicPos; + p->processedPos = processedPos; + p->reps[0] = rep0; + p->reps[1] = rep1; + p->reps[2] = rep2; + p->reps[3] = rep3; + p->state = state; - return SZ_OK; + return SZ_OK; } static void MY_FAST_CALL LzmaDec_WriteRem(CLzmaDec *p, SizeT limit) { - if (p->remainLen != 0 && p->remainLen < kMatchSpecLenStart) - { - Byte *dic = p->dic; - SizeT dicPos = p->dicPos; - SizeT dicBufSize = p->dicBufSize; - unsigned len = p->remainLen; - UInt32 rep0 = p->reps[0]; - if (limit - dicPos < len) - len = (unsigned)(limit - dicPos); - - if (p->checkDicSize == 0 && p->prop.dicSize - p->processedPos <= len) - p->checkDicSize = p->prop.dicSize; - - p->processedPos += len; - p->remainLen -= len; - while (len-- != 0) + if (p->remainLen != 0 && p->remainLen < kMatchSpecLenStart) { - dic[dicPos] = dic[(dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0)]; - dicPos++; + Byte *dic = p->dic; + SizeT dicPos = p->dicPos; + SizeT dicBufSize = p->dicBufSize; + unsigned len = p->remainLen; + UInt32 rep0 = p->reps[0]; + if (limit - dicPos < len) + len = (unsigned)(limit - dicPos); + + if (p->checkDicSize == 0 && p->prop.dicSize - p->processedPos <= len) + p->checkDicSize = p->prop.dicSize; + + p->processedPos += len; + p->remainLen -= len; + while (len-- != 0) + { + dic[dicPos] = dic[(dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0)]; + dicPos++; + } + p->dicPos = dicPos; } - p->dicPos = dicPos; - } } static int MY_FAST_CALL LzmaDec_DecodeReal2(CLzmaDec *p, SizeT limit, const Byte *bufLimit) { - do - { - SizeT limit2 = limit; - if (p->checkDicSize == 0) + do { - UInt32 rem = p->prop.dicSize - p->processedPos; - if (limit - p->dicPos > rem) - limit2 = p->dicPos + rem; + SizeT limit2 = limit; + if (p->checkDicSize == 0) + { + UInt32 rem = p->prop.dicSize - p->processedPos; + if (limit - p->dicPos > rem) + limit2 = p->dicPos + rem; + } + RINOK(LzmaDec_DecodeReal(p, limit2, bufLimit)); + if (p->processedPos >= p->prop.dicSize) + p->checkDicSize = p->prop.dicSize; + LzmaDec_WriteRem(p, limit); } - RINOK(LzmaDec_DecodeReal(p, limit2, bufLimit)); - if (p->processedPos >= p->prop.dicSize) - p->checkDicSize = p->prop.dicSize; - LzmaDec_WriteRem(p, limit); - } - while (p->dicPos < limit && p->buf < bufLimit && p->remainLen < kMatchSpecLenStart); + while (p->dicPos < limit && p->buf < bufLimit && p->remainLen < kMatchSpecLenStart); - if (p->remainLen > kMatchSpecLenStart) - { - p->remainLen = kMatchSpecLenStart; - } - return 0; + if (p->remainLen > kMatchSpecLenStart) + { + p->remainLen = kMatchSpecLenStart; + } + return 0; } typedef enum { - DUMMY_ERROR, /* unexpected end of input stream */ - DUMMY_LIT, - DUMMY_MATCH, - DUMMY_REP + DUMMY_ERROR, /* unexpected end of input stream */ + DUMMY_LIT, + DUMMY_MATCH, + DUMMY_REP } ELzmaDummy; static ELzmaDummy LzmaDec_TryDummy(const CLzmaDec *p, const Byte *buf, SizeT inSize) { - UInt32 range = p->range; - UInt32 code = p->code; - const Byte *bufLimit = buf + inSize; - CLzmaProb *probs = p->probs; - unsigned state = p->state; - ELzmaDummy res; + UInt32 range = p->range; + UInt32 code = p->code; + const Byte *bufLimit = buf + inSize; + CLzmaProb *probs = p->probs; + unsigned state = p->state; + ELzmaDummy res; - { - CLzmaProb *prob; - UInt32 bound; - unsigned ttt; - unsigned posState = (p->processedPos) & ((1 << p->prop.pb) - 1); - - prob = probs + IsMatch + (state << kNumPosBitsMax) + posState; - IF_BIT_0_CHECK(prob) { - UPDATE_0_CHECK + CLzmaProb *prob; + UInt32 bound; + unsigned ttt; + unsigned posState = (p->processedPos) & ((1 << p->prop.pb) - 1); - /* if (bufLimit - buf >= 7) return DUMMY_LIT; */ - - prob = probs + Literal; - if (p->checkDicSize != 0 || p->processedPos != 0) - prob += (LZMA_LIT_SIZE * - ((((p->processedPos) & ((1 << (p->prop.lp)) - 1)) << p->prop.lc) + - (p->dic[(p->dicPos == 0 ? p->dicBufSize : p->dicPos) - 1] >> (8 - p->prop.lc)))); - - if (state < kNumLitStates) - { - unsigned symbol = 1; - do { GET_BIT_CHECK(prob + symbol, symbol) } while (symbol < 0x100); - } - else - { - unsigned matchByte = p->dic[p->dicPos - p->reps[0] + - ((p->dicPos < p->reps[0]) ? p->dicBufSize : 0)]; - unsigned offs = 0x100; - unsigned symbol = 1; - do - { - unsigned bit; - CLzmaProb *probLit; - matchByte <<= 1; - bit = (matchByte & offs); - probLit = prob + offs + bit + symbol; - GET_BIT2_CHECK(probLit, symbol, offs &= ~bit, offs &= bit) - } - while (symbol < 0x100); - } - res = DUMMY_LIT; - } - else - { - unsigned len; - UPDATE_1_CHECK; - - prob = probs + IsRep + state; - IF_BIT_0_CHECK(prob) - { - UPDATE_0_CHECK; - state = 0; - prob = probs + LenCoder; - res = DUMMY_MATCH; - } - else - { - UPDATE_1_CHECK; - res = DUMMY_REP; - prob = probs + IsRepG0 + state; + prob = probs + IsMatch + (state << kNumPosBitsMax) + posState; IF_BIT_0_CHECK(prob) { - UPDATE_0_CHECK; - prob = probs + IsRep0Long + (state << kNumPosBitsMax) + posState; - IF_BIT_0_CHECK(prob) - { - UPDATE_0_CHECK; - NORMALIZE_CHECK; - return DUMMY_REP; - } - else - { - UPDATE_1_CHECK; - } - } - else - { - UPDATE_1_CHECK; - prob = probs + IsRepG1 + state; - IF_BIT_0_CHECK(prob) - { - UPDATE_0_CHECK; - } - else - { - UPDATE_1_CHECK; - prob = probs + IsRepG2 + state; - IF_BIT_0_CHECK(prob) + UPDATE_0_CHECK + + /* if (bufLimit - buf >= 7) return DUMMY_LIT; */ + + prob = probs + Literal; + if (p->checkDicSize != 0 || p->processedPos != 0) + prob += (LZMA_LIT_SIZE * + ((((p->processedPos) & ((1 << (p->prop.lp)) - 1)) << p->prop.lc) + + (p->dic[(p->dicPos == 0 ? p->dicBufSize : p->dicPos) - 1] >> (8 - p->prop.lc)))); + + if (state < kNumLitStates) { - UPDATE_0_CHECK; + unsigned symbol = 1; + do + { + GET_BIT_CHECK(prob + symbol, symbol) + } + while (symbol < 0x100); } else { - UPDATE_1_CHECK; + unsigned matchByte = p->dic[p->dicPos - p->reps[0] + + ((p->dicPos < p->reps[0]) ? p->dicBufSize : 0)]; + unsigned offs = 0x100; + unsigned symbol = 1; + do + { + unsigned bit; + CLzmaProb *probLit; + matchByte <<= 1; + bit = (matchByte & offs); + probLit = prob + offs + bit + symbol; + GET_BIT2_CHECK(probLit, symbol, offs &= ~bit, offs &= bit) + } + while (symbol < 0x100); } - } - } - state = kNumStates; - prob = probs + RepLenCoder; - } - { - unsigned limit, offset; - CLzmaProb *probLen = prob + LenChoice; - IF_BIT_0_CHECK(probLen) - { - UPDATE_0_CHECK; - probLen = prob + LenLow + (posState << kLenNumLowBits); - offset = 0; - limit = 1 << kLenNumLowBits; + res = DUMMY_LIT; } else { - UPDATE_1_CHECK; - probLen = prob + LenChoice2; - IF_BIT_0_CHECK(probLen) - { - UPDATE_0_CHECK; - probLen = prob + LenMid + (posState << kLenNumMidBits); - offset = kLenNumLowSymbols; - limit = 1 << kLenNumMidBits; - } - else - { + unsigned len; UPDATE_1_CHECK; - probLen = prob + LenHigh; - offset = kLenNumLowSymbols + kLenNumMidSymbols; - limit = 1 << kLenNumHighBits; - } - } - TREE_DECODE_CHECK(probLen, limit, len); - len += offset; - } - if (state < 4) - { - unsigned posSlot; - prob = probs + PosSlot + - ((len < kNumLenToPosStates ? len : kNumLenToPosStates - 1) << - kNumPosSlotBits); - TREE_DECODE_CHECK(prob, 1 << kNumPosSlotBits, posSlot); - if (posSlot >= kStartPosModelIndex) - { - int numDirectBits = ((posSlot >> 1) - 1); - - /* if (bufLimit - buf >= 8) return DUMMY_MATCH; */ - - if (posSlot < kEndPosModelIndex) - { - prob = probs + SpecPos + ((2 | (posSlot & 1)) << numDirectBits) - posSlot - 1; - } - else - { - numDirectBits -= kNumAlignBits; - do + prob = probs + IsRep + state; + IF_BIT_0_CHECK(prob) { - NORMALIZE_CHECK - range >>= 1; - code -= range & (((code - range) >> 31) - 1); - /* if (code >= range) code -= range; */ + UPDATE_0_CHECK; + state = 0; + prob = probs + LenCoder; + res = DUMMY_MATCH; } - while (--numDirectBits != 0); - prob = probs + Align; - numDirectBits = kNumAlignBits; - } - { - unsigned i = 1; - do + else { - GET_BIT_CHECK(prob + i, i); + UPDATE_1_CHECK; + res = DUMMY_REP; + prob = probs + IsRepG0 + state; + IF_BIT_0_CHECK(prob) + { + UPDATE_0_CHECK; + prob = probs + IsRep0Long + (state << kNumPosBitsMax) + posState; + IF_BIT_0_CHECK(prob) + { + UPDATE_0_CHECK; + NORMALIZE_CHECK; + return DUMMY_REP; + } + else + { + UPDATE_1_CHECK; + } + } + else + { + UPDATE_1_CHECK; + prob = probs + IsRepG1 + state; + IF_BIT_0_CHECK(prob) + { + UPDATE_0_CHECK; + } + else + { + UPDATE_1_CHECK; + prob = probs + IsRepG2 + state; + IF_BIT_0_CHECK(prob) + { + UPDATE_0_CHECK; + } + else + { + UPDATE_1_CHECK; + } + } + } + state = kNumStates; + prob = probs + RepLenCoder; + } + { + unsigned limit, offset; + CLzmaProb *probLen = prob + LenChoice; + IF_BIT_0_CHECK(probLen) + { + UPDATE_0_CHECK; + probLen = prob + LenLow + (posState << kLenNumLowBits); + offset = 0; + limit = 1 << kLenNumLowBits; + } + else + { + UPDATE_1_CHECK; + probLen = prob + LenChoice2; + IF_BIT_0_CHECK(probLen) + { + UPDATE_0_CHECK; + probLen = prob + LenMid + (posState << kLenNumMidBits); + offset = kLenNumLowSymbols; + limit = 1 << kLenNumMidBits; + } + else + { + UPDATE_1_CHECK; + probLen = prob + LenHigh; + offset = kLenNumLowSymbols + kLenNumMidSymbols; + limit = 1 << kLenNumHighBits; + } + } + TREE_DECODE_CHECK(probLen, limit, len); + len += offset; + } + + if (state < 4) + { + unsigned posSlot; + prob = probs + PosSlot + + ((len < kNumLenToPosStates ? len : kNumLenToPosStates - 1) << + kNumPosSlotBits); + TREE_DECODE_CHECK(prob, 1 << kNumPosSlotBits, posSlot); + if (posSlot >= kStartPosModelIndex) + { + int numDirectBits = ((posSlot >> 1) - 1); + + /* if (bufLimit - buf >= 8) return DUMMY_MATCH; */ + + if (posSlot < kEndPosModelIndex) + { + prob = probs + SpecPos + ((2 | (posSlot & 1)) << numDirectBits) - posSlot - 1; + } + else + { + numDirectBits -= kNumAlignBits; + do + { + NORMALIZE_CHECK + range >>= 1; + code -= range & (((code - range) >> 31) - 1); + /* if (code >= range) code -= range; */ + } + while (--numDirectBits != 0); + prob = probs + Align; + numDirectBits = kNumAlignBits; + } + { + unsigned i = 1; + do + { + GET_BIT_CHECK(prob + i, i); + } + while (--numDirectBits != 0); + } + } } - while (--numDirectBits != 0); - } } - } } - } - NORMALIZE_CHECK; - return res; + NORMALIZE_CHECK; + return res; } static void LzmaDec_InitRc(CLzmaDec *p, const Byte *data) { - p->code = ((UInt32)data[1] << 24) | ((UInt32)data[2] << 16) | ((UInt32)data[3] << 8) | ((UInt32)data[4]); - p->range = 0xFFFFFFFF; - p->needFlush = 0; + p->code = ((UInt32)data[1] << 24) | ((UInt32)data[2] << 16) | ((UInt32)data[3] << 8) | ((UInt32)data[4]); + p->range = 0xFFFFFFFF; + p->needFlush = 0; } void LzmaDec_InitDicAndState(CLzmaDec *p, Bool initDic, Bool initState) { - p->needFlush = 1; - p->remainLen = 0; - p->tempBufSize = 0; + p->needFlush = 1; + p->remainLen = 0; + p->tempBufSize = 0; - if (initDic) - { - p->processedPos = 0; - p->checkDicSize = 0; - p->needInitState = 1; - } - if (initState) - p->needInitState = 1; + if (initDic) + { + p->processedPos = 0; + p->checkDicSize = 0; + p->needInitState = 1; + } + if (initState) + p->needInitState = 1; } void LzmaDec_Init(CLzmaDec *p) { - p->dicPos = 0; - LzmaDec_InitDicAndState(p, True, True); + p->dicPos = 0; + LzmaDec_InitDicAndState(p, True, True); } static void LzmaDec_InitStateReal(CLzmaDec *p) { - UInt32 numProbs = Literal + ((UInt32)LZMA_LIT_SIZE << (p->prop.lc + p->prop.lp)); - UInt32 i; - CLzmaProb *probs = p->probs; - for (i = 0; i < numProbs; i++) - probs[i] = kBitModelTotal >> 1; - p->reps[0] = p->reps[1] = p->reps[2] = p->reps[3] = 1; - p->state = 0; - p->needInitState = 0; + UInt32 numProbs = Literal + ((UInt32)LZMA_LIT_SIZE << (p->prop.lc + p->prop.lp)); + UInt32 i; + CLzmaProb *probs = p->probs; + for (i = 0; i < numProbs; i++) + probs[i] = kBitModelTotal >> 1; + p->reps[0] = p->reps[1] = p->reps[2] = p->reps[3] = 1; + p->state = 0; + p->needInitState = 0; } SRes LzmaDec_DecodeToDic(CLzmaDec *p, SizeT dicLimit, const Byte *src, SizeT *srcLen, - ELzmaFinishMode finishMode, ELzmaStatus *status) + ELzmaFinishMode finishMode, ELzmaStatus *status) { - SizeT inSize = *srcLen; - (*srcLen) = 0; - LzmaDec_WriteRem(p, dicLimit); - - *status = LZMA_STATUS_NOT_SPECIFIED; + SizeT inSize = *srcLen; + (*srcLen) = 0; + LzmaDec_WriteRem(p, dicLimit); - while (p->remainLen != kMatchSpecLenStart) - { - int checkEndMarkNow; + *status = LZMA_STATUS_NOT_SPECIFIED; - if (p->needFlush != 0) - { - for (; inSize > 0 && p->tempBufSize < RC_INIT_SIZE; (*srcLen)++, inSize--) - p->tempBuf[p->tempBufSize++] = *src++; - if (p->tempBufSize < RC_INIT_SIZE) + while (p->remainLen != kMatchSpecLenStart) + { + int checkEndMarkNow; + + if (p->needFlush != 0) { - *status = LZMA_STATUS_NEEDS_MORE_INPUT; - return SZ_OK; + for (; inSize > 0 && p->tempBufSize < RC_INIT_SIZE; (*srcLen)++, inSize--) + p->tempBuf[p->tempBufSize++] = *src++; + if (p->tempBufSize < RC_INIT_SIZE) + { + *status = LZMA_STATUS_NEEDS_MORE_INPUT; + return SZ_OK; + } + if (p->tempBuf[0] != 0) + return SZ_ERROR_DATA; + + LzmaDec_InitRc(p, p->tempBuf); + p->tempBufSize = 0; } - if (p->tempBuf[0] != 0) - return SZ_ERROR_DATA; - LzmaDec_InitRc(p, p->tempBuf); - p->tempBufSize = 0; - } + checkEndMarkNow = 0; + if (p->dicPos >= dicLimit) + { + if (p->remainLen == 0 && p->code == 0) + { + *status = LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK; + return SZ_OK; + } + if (finishMode == LZMA_FINISH_ANY) + { + *status = LZMA_STATUS_NOT_FINISHED; + return SZ_OK; + } + if (p->remainLen != 0) + { + *status = LZMA_STATUS_NOT_FINISHED; + return SZ_ERROR_DATA; + } + checkEndMarkNow = 1; + } - checkEndMarkNow = 0; - if (p->dicPos >= dicLimit) - { - if (p->remainLen == 0 && p->code == 0) - { - *status = LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK; - return SZ_OK; - } - if (finishMode == LZMA_FINISH_ANY) - { - *status = LZMA_STATUS_NOT_FINISHED; - return SZ_OK; - } - if (p->remainLen != 0) - { - *status = LZMA_STATUS_NOT_FINISHED; - return SZ_ERROR_DATA; - } - checkEndMarkNow = 1; - } + if (p->needInitState) + LzmaDec_InitStateReal(p); - if (p->needInitState) - LzmaDec_InitStateReal(p); - - if (p->tempBufSize == 0) - { - SizeT processed; - const Byte *bufLimit; - if (inSize < LZMA_REQUIRED_INPUT_MAX || checkEndMarkNow) + if (p->tempBufSize == 0) { - int dummyRes = LzmaDec_TryDummy(p, src, inSize); - if (dummyRes == DUMMY_ERROR) - { - memcpy(p->tempBuf, src, inSize); - p->tempBufSize = (unsigned)inSize; - (*srcLen) += inSize; - *status = LZMA_STATUS_NEEDS_MORE_INPUT; - return SZ_OK; - } - if (checkEndMarkNow && dummyRes != DUMMY_MATCH) - { - *status = LZMA_STATUS_NOT_FINISHED; - return SZ_ERROR_DATA; - } - bufLimit = src; + SizeT processed; + const Byte *bufLimit; + if (inSize < LZMA_REQUIRED_INPUT_MAX || checkEndMarkNow) + { + int dummyRes = LzmaDec_TryDummy(p, src, inSize); + if (dummyRes == DUMMY_ERROR) + { + memcpy(p->tempBuf, src, inSize); + p->tempBufSize = (unsigned)inSize; + (*srcLen) += inSize; + *status = LZMA_STATUS_NEEDS_MORE_INPUT; + return SZ_OK; + } + if (checkEndMarkNow && dummyRes != DUMMY_MATCH) + { + *status = LZMA_STATUS_NOT_FINISHED; + return SZ_ERROR_DATA; + } + bufLimit = src; + } + else + bufLimit = src + inSize - LZMA_REQUIRED_INPUT_MAX; + p->buf = src; + if (LzmaDec_DecodeReal2(p, dicLimit, bufLimit) != 0) + return SZ_ERROR_DATA; + processed = (SizeT)(p->buf - src); + (*srcLen) += processed; + src += processed; + inSize -= processed; } else - bufLimit = src + inSize - LZMA_REQUIRED_INPUT_MAX; - p->buf = src; - if (LzmaDec_DecodeReal2(p, dicLimit, bufLimit) != 0) - return SZ_ERROR_DATA; - processed = (SizeT)(p->buf - src); - (*srcLen) += processed; - src += processed; - inSize -= processed; - } - else - { - unsigned rem = p->tempBufSize, lookAhead = 0; - while (rem < LZMA_REQUIRED_INPUT_MAX && lookAhead < inSize) - p->tempBuf[rem++] = src[lookAhead++]; - p->tempBufSize = rem; - if (rem < LZMA_REQUIRED_INPUT_MAX || checkEndMarkNow) { - int dummyRes = LzmaDec_TryDummy(p, p->tempBuf, rem); - if (dummyRes == DUMMY_ERROR) - { + unsigned rem = p->tempBufSize, lookAhead = 0; + while (rem < LZMA_REQUIRED_INPUT_MAX && lookAhead < inSize) + p->tempBuf[rem++] = src[lookAhead++]; + p->tempBufSize = rem; + if (rem < LZMA_REQUIRED_INPUT_MAX || checkEndMarkNow) + { + int dummyRes = LzmaDec_TryDummy(p, p->tempBuf, rem); + if (dummyRes == DUMMY_ERROR) + { + (*srcLen) += lookAhead; + *status = LZMA_STATUS_NEEDS_MORE_INPUT; + return SZ_OK; + } + if (checkEndMarkNow && dummyRes != DUMMY_MATCH) + { + *status = LZMA_STATUS_NOT_FINISHED; + return SZ_ERROR_DATA; + } + } + p->buf = p->tempBuf; + if (LzmaDec_DecodeReal2(p, dicLimit, p->buf) != 0) + return SZ_ERROR_DATA; + lookAhead -= (rem - (unsigned)(p->buf - p->tempBuf)); (*srcLen) += lookAhead; - *status = LZMA_STATUS_NEEDS_MORE_INPUT; - return SZ_OK; - } - if (checkEndMarkNow && dummyRes != DUMMY_MATCH) - { - *status = LZMA_STATUS_NOT_FINISHED; - return SZ_ERROR_DATA; - } + src += lookAhead; + inSize -= lookAhead; + p->tempBufSize = 0; } - p->buf = p->tempBuf; - if (LzmaDec_DecodeReal2(p, dicLimit, p->buf) != 0) - return SZ_ERROR_DATA; - lookAhead -= (rem - (unsigned)(p->buf - p->tempBuf)); - (*srcLen) += lookAhead; - src += lookAhead; - inSize -= lookAhead; - p->tempBufSize = 0; - } - } - if (p->code == 0) - *status = LZMA_STATUS_FINISHED_WITH_MARK; - return (p->code == 0) ? SZ_OK : SZ_ERROR_DATA; + } + if (p->code == 0) + *status = LZMA_STATUS_FINISHED_WITH_MARK; + return (p->code == 0) ? SZ_OK : SZ_ERROR_DATA; } SRes LzmaDec_DecodeToBuf(CLzmaDec *p, Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status) { - SizeT outSize = *destLen; - SizeT inSize = *srcLen; - *srcLen = *destLen = 0; - for (;;) - { - SizeT inSizeCur = inSize, outSizeCur, dicPos; - ELzmaFinishMode curFinishMode; - SRes res; - if (p->dicPos == p->dicBufSize) - p->dicPos = 0; - dicPos = p->dicPos; - if (outSize > p->dicBufSize - dicPos) + SizeT outSize = *destLen; + SizeT inSize = *srcLen; + *srcLen = *destLen = 0; + for (;;) { - outSizeCur = p->dicBufSize; - curFinishMode = LZMA_FINISH_ANY; - } - else - { - outSizeCur = dicPos + outSize; - curFinishMode = finishMode; - } + SizeT inSizeCur = inSize, outSizeCur, dicPos; + ELzmaFinishMode curFinishMode; + SRes res; + if (p->dicPos == p->dicBufSize) + p->dicPos = 0; + dicPos = p->dicPos; + if (outSize > p->dicBufSize - dicPos) + { + outSizeCur = p->dicBufSize; + curFinishMode = LZMA_FINISH_ANY; + } + else + { + outSizeCur = dicPos + outSize; + curFinishMode = finishMode; + } - res = LzmaDec_DecodeToDic(p, outSizeCur, src, &inSizeCur, curFinishMode, status); - src += inSizeCur; - inSize -= inSizeCur; - *srcLen += inSizeCur; - outSizeCur = p->dicPos - dicPos; - memcpy(dest, p->dic + dicPos, outSizeCur); - dest += outSizeCur; - outSize -= outSizeCur; - *destLen += outSizeCur; - if (res != 0) - return res; - if (outSizeCur == 0 || outSize == 0) - return SZ_OK; - } + res = LzmaDec_DecodeToDic(p, outSizeCur, src, &inSizeCur, curFinishMode, status); + src += inSizeCur; + inSize -= inSizeCur; + *srcLen += inSizeCur; + outSizeCur = p->dicPos - dicPos; + memcpy(dest, p->dic + dicPos, outSizeCur); + dest += outSizeCur; + outSize -= outSizeCur; + *destLen += outSizeCur; + if (res != 0) + return res; + if (outSizeCur == 0 || outSize == 0) + return SZ_OK; + } } void LzmaDec_FreeProbs(CLzmaDec *p, ISzAlloc *alloc) { - alloc->Free(alloc, p->probs); - p->probs = 0; + alloc->Free(alloc, p->probs); + p->probs = 0; } static void LzmaDec_FreeDict(CLzmaDec *p, ISzAlloc *alloc) { - alloc->Free(alloc, p->dic); - p->dic = 0; + alloc->Free(alloc, p->dic); + p->dic = 0; } void LzmaDec_Free(CLzmaDec *p, ISzAlloc *alloc) { - LzmaDec_FreeProbs(p, alloc); - LzmaDec_FreeDict(p, alloc); + LzmaDec_FreeProbs(p, alloc); + LzmaDec_FreeDict(p, alloc); } SRes LzmaProps_Decode(CLzmaProps *p, const Byte *data, unsigned size) { - UInt32 dicSize; - Byte d; - - if (size < LZMA_PROPS_SIZE) - return SZ_ERROR_UNSUPPORTED; - else - dicSize = data[1] | ((UInt32)data[2] << 8) | ((UInt32)data[3] << 16) | ((UInt32)data[4] << 24); - - if (dicSize < LZMA_DIC_MIN) - dicSize = LZMA_DIC_MIN; - p->dicSize = dicSize; + UInt32 dicSize; + Byte d; - d = data[0]; - if (d >= (9 * 5 * 5)) - return SZ_ERROR_UNSUPPORTED; + if (size < LZMA_PROPS_SIZE) + return SZ_ERROR_UNSUPPORTED; + else + dicSize = data[1] | ((UInt32)data[2] << 8) | ((UInt32)data[3] << 16) | ((UInt32)data[4] << 24); - p->lc = d % 9; - d /= 9; - p->pb = d / 5; - p->lp = d % 5; + if (dicSize < LZMA_DIC_MIN) + dicSize = LZMA_DIC_MIN; + p->dicSize = dicSize; - return SZ_OK; + d = data[0]; + if (d >= (9 * 5 * 5)) + return SZ_ERROR_UNSUPPORTED; + + p->lc = d % 9; + d /= 9; + p->pb = d / 5; + p->lp = d % 5; + + return SZ_OK; } static SRes LzmaDec_AllocateProbs2(CLzmaDec *p, const CLzmaProps *propNew, ISzAlloc *alloc) { - UInt32 numProbs = LzmaProps_GetNumProbs(propNew); - if (p->probs == 0 || numProbs != p->numProbs) - { - LzmaDec_FreeProbs(p, alloc); - p->probs = (CLzmaProb *)alloc->Alloc(alloc, numProbs * sizeof(CLzmaProb)); - p->numProbs = numProbs; - if (p->probs == 0) - return SZ_ERROR_MEM; - } - return SZ_OK; + UInt32 numProbs = LzmaProps_GetNumProbs(propNew); + if (p->probs == 0 || numProbs != p->numProbs) + { + LzmaDec_FreeProbs(p, alloc); + p->probs = (CLzmaProb *)alloc->Alloc(alloc, numProbs * sizeof(CLzmaProb)); + p->numProbs = numProbs; + if (p->probs == 0) + return SZ_ERROR_MEM; + } + return SZ_OK; } SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc) { - CLzmaProps propNew; - RINOK(LzmaProps_Decode(&propNew, props, propsSize)); - RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc)); - p->prop = propNew; - return SZ_OK; + CLzmaProps propNew; + RINOK(LzmaProps_Decode(&propNew, props, propsSize)); + RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc)); + p->prop = propNew; + return SZ_OK; } SRes LzmaDec_Allocate(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc) { - CLzmaProps propNew; - SizeT dicBufSize; - RINOK(LzmaProps_Decode(&propNew, props, propsSize)); - RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc)); - dicBufSize = propNew.dicSize; - if (p->dic == 0 || dicBufSize != p->dicBufSize) - { - LzmaDec_FreeDict(p, alloc); - p->dic = (Byte *)alloc->Alloc(alloc, dicBufSize); - if (p->dic == 0) + CLzmaProps propNew; + SizeT dicBufSize; + RINOK(LzmaProps_Decode(&propNew, props, propsSize)); + RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc)); + dicBufSize = propNew.dicSize; + if (p->dic == 0 || dicBufSize != p->dicBufSize) { - LzmaDec_FreeProbs(p, alloc); - return SZ_ERROR_MEM; + LzmaDec_FreeDict(p, alloc); + p->dic = (Byte *)alloc->Alloc(alloc, dicBufSize); + if (p->dic == 0) + { + LzmaDec_FreeProbs(p, alloc); + return SZ_ERROR_MEM; + } } - } - p->dicBufSize = dicBufSize; - p->prop = propNew; - return SZ_OK; + p->dicBufSize = dicBufSize; + p->prop = propNew; + return SZ_OK; } SRes LzmaDecode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen, - const Byte *propData, unsigned propSize, ELzmaFinishMode finishMode, - ELzmaStatus *status, ISzAlloc *alloc) + const Byte *propData, unsigned propSize, ELzmaFinishMode finishMode, + ELzmaStatus *status, ISzAlloc *alloc) { - CLzmaDec p; - SRes res; - SizeT inSize = *srcLen; - SizeT outSize = *destLen; - *srcLen = *destLen = 0; - if (inSize < RC_INIT_SIZE) - return SZ_ERROR_INPUT_EOF; + CLzmaDec p; + SRes res; + SizeT inSize = *srcLen; + SizeT outSize = *destLen; + *srcLen = *destLen = 0; + if (inSize < RC_INIT_SIZE) + return SZ_ERROR_INPUT_EOF; - LzmaDec_Construct(&p); - res = LzmaDec_AllocateProbs(&p, propData, propSize, alloc); - if (res != 0) + LzmaDec_Construct(&p); + res = LzmaDec_AllocateProbs(&p, propData, propSize, alloc); + if (res != 0) + return res; + p.dic = dest; + p.dicBufSize = outSize; + + LzmaDec_Init(&p); + + *srcLen = inSize; + res = LzmaDec_DecodeToDic(&p, outSize, src, srcLen, finishMode, status); + + if (res == SZ_OK && *status == LZMA_STATUS_NEEDS_MORE_INPUT) + res = SZ_ERROR_INPUT_EOF; + + (*destLen) = p.dicPos; + LzmaDec_FreeProbs(&p, alloc); return res; - p.dic = dest; - p.dicBufSize = outSize; - - LzmaDec_Init(&p); - - *srcLen = inSize; - res = LzmaDec_DecodeToDic(&p, outSize, src, srcLen, finishMode, status); - - if (res == SZ_OK && *status == LZMA_STATUS_NEEDS_MORE_INPUT) - res = SZ_ERROR_INPUT_EOF; - - (*destLen) = p.dicPos; - LzmaDec_FreeProbs(&p, alloc); - return res; } diff --git a/src/archivers/7z/LzmaDec.h b/src/archivers/7z/LzmaDec.h index ad7d7057..8341c6b5 100644 --- a/src/archivers/7z/LzmaDec.h +++ b/src/archivers/7z/LzmaDec.h @@ -23,8 +23,8 @@ typedef struct _CLzmaProps { - unsigned lc, lp, pb; - UInt32 dicSize; + unsigned lc, lp, pb; + UInt32 dicSize; } CLzmaProps; /* LzmaProps_Decode - decodes properties @@ -45,23 +45,23 @@ SRes LzmaProps_Decode(CLzmaProps *p, const Byte *data, unsigned size); typedef struct { - CLzmaProps prop; - CLzmaProb *probs; - Byte *dic; - const Byte *buf; - UInt32 range, code; - SizeT dicPos; - SizeT dicBufSize; - UInt32 processedPos; - UInt32 checkDicSize; - unsigned state; - UInt32 reps[4]; - unsigned remainLen; - int needFlush; - int needInitState; - UInt32 numProbs; - unsigned tempBufSize; - Byte tempBuf[LZMA_REQUIRED_INPUT_MAX]; + CLzmaProps prop; + CLzmaProb *probs; + Byte *dic; + const Byte *buf; + UInt32 range, code; + SizeT dicPos; + SizeT dicBufSize; + UInt32 processedPos; + UInt32 checkDicSize; + unsigned state; + UInt32 reps[4]; + unsigned remainLen; + int needFlush; + int needInitState; + UInt32 numProbs; + unsigned tempBufSize; + Byte tempBuf[LZMA_REQUIRED_INPUT_MAX]; } CLzmaDec; #define LzmaDec_Construct(p) { (p)->dic = 0; (p)->probs = 0; } @@ -74,8 +74,8 @@ void LzmaDec_Init(CLzmaDec *p); typedef enum { - LZMA_FINISH_ANY, /* finish at any point */ - LZMA_FINISH_END /* block must be finished at the end */ + LZMA_FINISH_ANY, /* finish at any point */ + LZMA_FINISH_END /* block must be finished at the end */ } ELzmaFinishMode; /* ELzmaFinishMode has meaning only if the decoding reaches output limit !!! @@ -95,11 +95,11 @@ typedef enum typedef enum { - LZMA_STATUS_NOT_SPECIFIED, /* use main error code instead */ - LZMA_STATUS_FINISHED_WITH_MARK, /* stream was finished with end mark. */ - LZMA_STATUS_NOT_FINISHED, /* stream was not finished */ - LZMA_STATUS_NEEDS_MORE_INPUT, /* you must provide more input bytes */ - LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK /* there is probability that stream was finished without end mark */ + LZMA_STATUS_NOT_SPECIFIED, /* use main error code instead */ + LZMA_STATUS_FINISHED_WITH_MARK, /* stream was finished with end mark. */ + LZMA_STATUS_NOT_FINISHED, /* stream was not finished */ + LZMA_STATUS_NEEDS_MORE_INPUT, /* you must provide more input bytes */ + LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK /* there is probability that stream was finished without end mark */ } ELzmaStatus; /* ELzmaStatus is used only as output value for function call */ @@ -126,7 +126,7 @@ LzmaDec_Allocate* can return: SZ_ERROR_MEM - Memory allocation error SZ_ERROR_UNSUPPORTED - Unsupported properties */ - + SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc); void LzmaDec_FreeProbs(CLzmaDec *p, ISzAlloc *alloc); @@ -155,7 +155,7 @@ void LzmaDec_Free(CLzmaDec *state, ISzAlloc *alloc); */ /* LzmaDec_DecodeToDic - + The decoding to internal dictionary buffer (CLzmaDec::dic). You must manually update CLzmaDec::dicPos, if it reaches CLzmaDec::dicBufSize !!! @@ -175,7 +175,7 @@ Returns: */ SRes LzmaDec_DecodeToDic(CLzmaDec *p, SizeT dicLimit, - const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status); + const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status); /* ---------- Buffer Interface ---------- */ @@ -192,7 +192,7 @@ finishMode: */ SRes LzmaDec_DecodeToBuf(CLzmaDec *p, Byte *dest, SizeT *destLen, - const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status); + const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status); /* ---------- One Call Interface ---------- */ @@ -217,7 +217,7 @@ Returns: */ SRes LzmaDecode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen, - const Byte *propData, unsigned propSize, ELzmaFinishMode finishMode, - ELzmaStatus *status, ISzAlloc *alloc); + const Byte *propData, unsigned propSize, ELzmaFinishMode finishMode, + ELzmaStatus *status, ISzAlloc *alloc); #endif diff --git a/src/archivers/7z/Types.h b/src/archivers/7z/Types.h index 2638196a..843ab1c4 100644 --- a/src/archivers/7z/Types.h +++ b/src/archivers/7z/Types.h @@ -108,7 +108,7 @@ typedef int Bool; typedef struct { - SRes (*Read)(void *p, void *buf, size_t *size); + SRes (*Read)(void *p, void *buf, size_t *size); /* if (input(*size) != 0 && output(*size) == 0) means end_of_stream. (output(*size) < input(*size)) is allowed */ } ISeqInStream; @@ -120,36 +120,36 @@ SRes SeqInStream_ReadByte(ISeqInStream *stream, Byte *buf); typedef struct { - size_t (*Write)(void *p, const void *buf, size_t size); + size_t (*Write)(void *p, const void *buf, size_t size); /* Returns: result - the number of actually written bytes. (result < size) means error */ } ISeqOutStream; typedef enum { - SZ_SEEK_SET = 0, - SZ_SEEK_CUR = 1, - SZ_SEEK_END = 2 + SZ_SEEK_SET = 0, + SZ_SEEK_CUR = 1, + SZ_SEEK_END = 2 } ESzSeek; typedef struct { - SRes (*Read)(void *p, void *buf, size_t *size); /* same as ISeqInStream::Read */ - SRes (*Seek)(void *p, Int64 *pos, ESzSeek origin); + SRes (*Read)(void *p, void *buf, size_t *size); /* same as ISeqInStream::Read */ + SRes (*Seek)(void *p, Int64 *pos, ESzSeek origin); } ISeekInStream; typedef struct { - SRes (*Look)(void *p, void **buf, size_t *size); + SRes (*Look)(void *p, void **buf, size_t *size); /* if (input(*size) != 0 && output(*size) == 0) means end_of_stream. (output(*size) > input(*size)) is not allowed (output(*size) < input(*size)) is allowed */ - SRes (*Skip)(void *p, size_t offset); + SRes (*Skip)(void *p, size_t offset); /* offset must be <= output(*size) of Look */ - SRes (*Read)(void *p, void *buf, size_t *size); + SRes (*Read)(void *p, void *buf, size_t *size); /* reads directly (without buffer). It's same as ISeqInStream::Read */ - SRes (*Seek)(void *p, Int64 *pos, ESzSeek origin); + SRes (*Seek)(void *p, Int64 *pos, ESzSeek origin); } ILookInStream; SRes LookInStream_LookRead(ILookInStream *stream, void *buf, size_t *size); @@ -163,11 +163,11 @@ SRes LookInStream_Read(ILookInStream *stream, void *buf, size_t size); typedef struct { - ILookInStream s; - ISeekInStream *realStream; - size_t pos; - size_t size; - Byte buf[LookToRead_BUF_SIZE]; + ILookInStream s; + ISeekInStream *realStream; + size_t pos; + size_t size; + Byte buf[LookToRead_BUF_SIZE]; } CLookToRead; void LookToRead_CreateVTable(CLookToRead *p, int lookahead); @@ -175,31 +175,31 @@ void LookToRead_Init(CLookToRead *p); typedef struct { - ISeqInStream s; - ILookInStream *realStream; + ISeqInStream s; + ILookInStream *realStream; } CSecToLook; void SecToLook_CreateVTable(CSecToLook *p); typedef struct { - ISeqInStream s; - ILookInStream *realStream; + ISeqInStream s; + ILookInStream *realStream; } CSecToRead; void SecToRead_CreateVTable(CSecToRead *p); typedef struct { - SRes (*Progress)(void *p, UInt64 inSize, UInt64 outSize); + SRes (*Progress)(void *p, UInt64 inSize, UInt64 outSize); /* Returns: result. (result != SZ_OK) means break. Value (UInt64)(Int64)-1 for size means unknown value. */ } ICompressProgress; typedef struct { - void *(*Alloc)(void *p, size_t size); - void (*Free)(void *p, void *address); /* address can be 0 */ + void *(*Alloc)(void *p, size_t size); + void (*Free)(void *p, void *address); /* address can be 0 */ } ISzAlloc; #define IAlloc_Alloc(p, size) (p)->Alloc((p), size) diff --git a/src/archivers/dms/cdata.h b/src/archivers/dms/cdata.h index 4de9b9f9..ca1801ca 100644 --- a/src/archivers/dms/cdata.h +++ b/src/archivers/dms/cdata.h @@ -27,48 +27,48 @@ #ifndef INLINE - #ifdef __cplusplus - #define INLINE inline - #else - #ifdef __GNUC__ - #define INLINE inline - #else - #ifdef __SASC - #define INLINE __inline - #else - #define INLINE static - #endif - #endif - #endif +#ifdef __cplusplus +#define INLINE inline +#else +#ifdef __GNUC__ +#define INLINE inline +#else +#ifdef __SASC +#define INLINE __inline +#else +#define INLINE static +#endif +#endif +#endif #endif #ifndef UNDER_DOS - #ifdef __MSDOS__ - #define UNDER_DOS - #else - #ifdef __MSDOS - #define UNDER_DOS - #else - #ifdef _OS2 - #define UNDER_DOS - #else - #ifdef _QC - #define UNDER_DOS - #endif - #endif - #endif - #endif +#ifdef __MSDOS__ +#define UNDER_DOS +#else +#ifdef __MSDOS +#define UNDER_DOS +#else +#ifdef _OS2 +#define UNDER_DOS +#else +#ifdef _QC +#define UNDER_DOS +#endif +#endif +#endif +#endif #endif #ifndef DIR_CHAR - #ifdef UNDER_DOS - /* running under MSDOS or DOS-like OS */ - #define DIR_CHAR '\\' - #else - #define DIR_CHAR '/' - #endif +#ifdef UNDER_DOS +/* running under MSDOS or DOS-like OS */ +#define DIR_CHAR '\\' +#else +#define DIR_CHAR '/' +#endif #endif diff --git a/src/archivers/dms/crc_csum.cpp b/src/archivers/dms/crc_csum.cpp index d6baefe0..477e762a 100644 --- a/src/archivers/dms/crc_csum.cpp +++ b/src/archivers/dms/crc_csum.cpp @@ -14,56 +14,59 @@ -USHORT dms_Calc_CheckSum(UCHAR *mem, ULONG size){ - USHORT u=0; +USHORT dms_Calc_CheckSum(UCHAR *mem, ULONG size) +{ + USHORT u=0; - while(size--) u += *mem++; - return (USHORT)(u & 0xffff); + while(size--) u += *mem++; + return (USHORT)(u & 0xffff); } -USHORT dms_CreateCRC(UCHAR* mem, ULONG size ){ - static const USHORT CRCTab[256]={ - 0x0000,0xC0C1,0xC181,0x0140,0xC301,0x03C0,0x0280,0xC241, - 0xC601,0x06C0,0x0780,0xC741,0x0500,0xC5C1,0xC481,0x0440, - 0xCC01,0x0CC0,0x0D80,0xCD41,0x0F00,0xCFC1,0xCE81,0x0E40, - 0x0A00,0xCAC1,0xCB81,0x0B40,0xC901,0x09C0,0x0880,0xC841, - 0xD801,0x18C0,0x1980,0xD941,0x1B00,0xDBC1,0xDA81,0x1A40, - 0x1E00,0xDEC1,0xDF81,0x1F40,0xDD01,0x1DC0,0x1C80,0xDC41, - 0x1400,0xD4C1,0xD581,0x1540,0xD701,0x17C0,0x1680,0xD641, - 0xD201,0x12C0,0x1380,0xD341,0x1100,0xD1C1,0xD081,0x1040, - 0xF001,0x30C0,0x3180,0xF141,0x3300,0xF3C1,0xF281,0x3240, - 0x3600,0xF6C1,0xF781,0x3740,0xF501,0x35C0,0x3480,0xF441, - 0x3C00,0xFCC1,0xFD81,0x3D40,0xFF01,0x3FC0,0x3E80,0xFE41, - 0xFA01,0x3AC0,0x3B80,0xFB41,0x3900,0xF9C1,0xF881,0x3840, - 0x2800,0xE8C1,0xE981,0x2940,0xEB01,0x2BC0,0x2A80,0xEA41, - 0xEE01,0x2EC0,0x2F80,0xEF41,0x2D00,0xEDC1,0xEC81,0x2C40, - 0xE401,0x24C0,0x2580,0xE541,0x2700,0xE7C1,0xE681,0x2640, - 0x2200,0xE2C1,0xE381,0x2340,0xE101,0x21C0,0x2080,0xE041, - 0xA001,0x60C0,0x6180,0xA141,0x6300,0xA3C1,0xA281,0x6240, - 0x6600,0xA6C1,0xA781,0x6740,0xA501,0x65C0,0x6480,0xA441, - 0x6C00,0xACC1,0xAD81,0x6D40,0xAF01,0x6FC0,0x6E80,0xAE41, - 0xAA01,0x6AC0,0x6B80,0xAB41,0x6900,0xA9C1,0xA881,0x6840, - 0x7800,0xB8C1,0xB981,0x7940,0xBB01,0x7BC0,0x7A80,0xBA41, - 0xBE01,0x7EC0,0x7F80,0xBF41,0x7D00,0xBDC1,0xBC81,0x7C40, - 0xB401,0x74C0,0x7580,0xB541,0x7700,0xB7C1,0xB681,0x7640, - 0x7200,0xB2C1,0xB381,0x7340,0xB101,0x71C0,0x7080,0xB041, - 0x5000,0x90C1,0x9181,0x5140,0x9301,0x53C0,0x5280,0x9241, - 0x9601,0x56C0,0x5780,0x9741,0x5500,0x95C1,0x9481,0x5440, - 0x9C01,0x5CC0,0x5D80,0x9D41,0x5F00,0x9FC1,0x9E81,0x5E40, - 0x5A00,0x9AC1,0x9B81,0x5B40,0x9901,0x59C0,0x5880,0x9841, - 0x8801,0x48C0,0x4980,0x8941,0x4B00,0x8BC1,0x8A81,0x4A40, - 0x4E00,0x8EC1,0x8F81,0x4F40,0x8D01,0x4DC0,0x4C80,0x8C41, - 0x4400,0x84C1,0x8581,0x4540,0x8701,0x47C0,0x4680,0x8641, - 0x8201,0x42C0,0x4380,0x8341,0x4100,0x81C1,0x8081,0x4040 - }; - register USHORT CRC = 0; +USHORT dms_CreateCRC(UCHAR* mem, ULONG size ) +{ + static const USHORT CRCTab[256]= + { + 0x0000,0xC0C1,0xC181,0x0140,0xC301,0x03C0,0x0280,0xC241, + 0xC601,0x06C0,0x0780,0xC741,0x0500,0xC5C1,0xC481,0x0440, + 0xCC01,0x0CC0,0x0D80,0xCD41,0x0F00,0xCFC1,0xCE81,0x0E40, + 0x0A00,0xCAC1,0xCB81,0x0B40,0xC901,0x09C0,0x0880,0xC841, + 0xD801,0x18C0,0x1980,0xD941,0x1B00,0xDBC1,0xDA81,0x1A40, + 0x1E00,0xDEC1,0xDF81,0x1F40,0xDD01,0x1DC0,0x1C80,0xDC41, + 0x1400,0xD4C1,0xD581,0x1540,0xD701,0x17C0,0x1680,0xD641, + 0xD201,0x12C0,0x1380,0xD341,0x1100,0xD1C1,0xD081,0x1040, + 0xF001,0x30C0,0x3180,0xF141,0x3300,0xF3C1,0xF281,0x3240, + 0x3600,0xF6C1,0xF781,0x3740,0xF501,0x35C0,0x3480,0xF441, + 0x3C00,0xFCC1,0xFD81,0x3D40,0xFF01,0x3FC0,0x3E80,0xFE41, + 0xFA01,0x3AC0,0x3B80,0xFB41,0x3900,0xF9C1,0xF881,0x3840, + 0x2800,0xE8C1,0xE981,0x2940,0xEB01,0x2BC0,0x2A80,0xEA41, + 0xEE01,0x2EC0,0x2F80,0xEF41,0x2D00,0xEDC1,0xEC81,0x2C40, + 0xE401,0x24C0,0x2580,0xE541,0x2700,0xE7C1,0xE681,0x2640, + 0x2200,0xE2C1,0xE381,0x2340,0xE101,0x21C0,0x2080,0xE041, + 0xA001,0x60C0,0x6180,0xA141,0x6300,0xA3C1,0xA281,0x6240, + 0x6600,0xA6C1,0xA781,0x6740,0xA501,0x65C0,0x6480,0xA441, + 0x6C00,0xACC1,0xAD81,0x6D40,0xAF01,0x6FC0,0x6E80,0xAE41, + 0xAA01,0x6AC0,0x6B80,0xAB41,0x6900,0xA9C1,0xA881,0x6840, + 0x7800,0xB8C1,0xB981,0x7940,0xBB01,0x7BC0,0x7A80,0xBA41, + 0xBE01,0x7EC0,0x7F80,0xBF41,0x7D00,0xBDC1,0xBC81,0x7C40, + 0xB401,0x74C0,0x7580,0xB541,0x7700,0xB7C1,0xB681,0x7640, + 0x7200,0xB2C1,0xB381,0x7340,0xB101,0x71C0,0x7080,0xB041, + 0x5000,0x90C1,0x9181,0x5140,0x9301,0x53C0,0x5280,0x9241, + 0x9601,0x56C0,0x5780,0x9741,0x5500,0x95C1,0x9481,0x5440, + 0x9C01,0x5CC0,0x5D80,0x9D41,0x5F00,0x9FC1,0x9E81,0x5E40, + 0x5A00,0x9AC1,0x9B81,0x5B40,0x9901,0x59C0,0x5880,0x9841, + 0x8801,0x48C0,0x4980,0x8941,0x4B00,0x8BC1,0x8A81,0x4A40, + 0x4E00,0x8EC1,0x8F81,0x4F40,0x8D01,0x4DC0,0x4C80,0x8C41, + 0x4400,0x84C1,0x8581,0x4540,0x8701,0x47C0,0x4680,0x8641, + 0x8201,0x42C0,0x4380,0x8341,0x4100,0x81C1,0x8081,0x4040 + }; + register USHORT CRC = 0; - while(size--) - CRC = (USHORT) (CRCTab[((CRC ^ *mem++) & 255)] ^ ((CRC >> 8) & 255)); + while(size--) + CRC = (USHORT) (CRCTab[((CRC ^ *mem++) & 255)] ^ ((CRC >> 8) & 255)); - return CRC; + return CRC; } diff --git a/src/archivers/dms/getbits.cpp b/src/archivers/dms/getbits.cpp index e972c7b3..c6fef426 100644 --- a/src/archivers/dms/getbits.cpp +++ b/src/archivers/dms/getbits.cpp @@ -10,12 +10,13 @@ #include "getbits.h" -ULONG dms_mask_bits[]={ - 0x000000L,0x000001L,0x000003L,0x000007L,0x00000fL,0x00001fL, - 0x00003fL,0x00007fL,0x0000ffL,0x0001ffL,0x0003ffL,0x0007ffL, - 0x000fffL,0x001fffL,0x003fffL,0x007fffL,0x00ffffL,0x01ffffL, - 0x03ffffL,0x07ffffL,0x0fffffL,0x1fffffL,0x3fffffL,0x7fffffL, - 0xffffffL +ULONG dms_mask_bits[]= +{ + 0x000000L,0x000001L,0x000003L,0x000007L,0x00000fL,0x00001fL, + 0x00003fL,0x00007fL,0x0000ffL,0x0001ffL,0x0003ffL,0x0007ffL, + 0x000fffL,0x001fffL,0x003fffL,0x007fffL,0x00ffffL,0x01ffffL, + 0x03ffffL,0x07ffffL,0x0fffffL,0x1fffffL,0x3fffffL,0x7fffffL, + 0xffffffL }; @@ -24,11 +25,12 @@ ULONG dms_bitbuf; -void initbitbuf(UCHAR *in){ - dms_bitbuf = 0; - dms_bitcount = 0; - dms_indata = in; - DROPBITS(0); +void initbitbuf(UCHAR *in) +{ + dms_bitbuf = 0; + dms_bitcount = 0; + dms_indata = in; + DROPBITS(0); } diff --git a/src/archivers/dms/maketbl.cpp b/src/archivers/dms/maketbl.cpp index 2e85370f..14bde7b0 100644 --- a/src/archivers/dms/maketbl.cpp +++ b/src/archivers/dms/maketbl.cpp @@ -23,70 +23,82 @@ static USHORT mktbl(void); -USHORT dms_make_table(USHORT nchar, UCHAR bitlen[],USHORT tablebits, USHORT table[]){ - n = avail = nchar; - blen = bitlen; - tbl = table; - tblsiz = (USHORT) (1U << tablebits); - bit = (USHORT) (tblsiz / 2); - maxdepth = (USHORT)(tablebits + 1); - depth = len = 1; - c = -1; - codeword = 0; - TabErr = 0; - mktbl(); /* left subtree */ - if (TabErr) return TabErr; - mktbl(); /* right subtree */ - if (TabErr) return TabErr; - if (codeword != tblsiz) return 5; - return 0; +USHORT dms_make_table(USHORT nchar, UCHAR bitlen[],USHORT tablebits, USHORT table[]) +{ + n = avail = nchar; + blen = bitlen; + tbl = table; + tblsiz = (USHORT) (1U << tablebits); + bit = (USHORT) (tblsiz / 2); + maxdepth = (USHORT)(tablebits + 1); + depth = len = 1; + c = -1; + codeword = 0; + TabErr = 0; + mktbl(); /* left subtree */ + if (TabErr) return TabErr; + mktbl(); /* right subtree */ + if (TabErr) return TabErr; + if (codeword != tblsiz) return 5; + return 0; } -static USHORT mktbl(void){ - USHORT i=0; +static USHORT mktbl(void) +{ + USHORT i=0; - if (TabErr) return 0; + if (TabErr) return 0; - if (len == depth) { - while (++c < n) - if (blen[c] == len) { - i = codeword; - codeword += bit; - if (codeword > tblsiz) { - TabErr=1; - return 0; - } - while (i < codeword) tbl[i++] = (USHORT)c; - return (USHORT)c; - } - c = -1; - len++; - bit >>= 1; - } - depth++; - if (depth < maxdepth) { - mktbl(); - mktbl(); - } else if (depth > 32) { - TabErr = 2; - return 0; - } else { - if ((i = avail++) >= 2 * n - 1) { - TabErr = 3; - return 0; - } - dms_left[i] = mktbl(); - dms_right[i] = mktbl(); - if (codeword >= tblsiz) { - TabErr = 4; - return 0; - } - if (depth == maxdepth) tbl[codeword++] = i; - } - depth--; - return i; + if (len == depth) + { + while (++c < n) + if (blen[c] == len) + { + i = codeword; + codeword += bit; + if (codeword > tblsiz) + { + TabErr=1; + return 0; + } + while (i < codeword) tbl[i++] = (USHORT)c; + return (USHORT)c; + } + c = -1; + len++; + bit >>= 1; + } + depth++; + if (depth < maxdepth) + { + mktbl(); + mktbl(); + } + else if (depth > 32) + { + TabErr = 2; + return 0; + } + else + { + if ((i = avail++) >= 2 * n - 1) + { + TabErr = 3; + return 0; + } + dms_left[i] = mktbl(); + dms_right[i] = mktbl(); + if (codeword >= tblsiz) + { + TabErr = 4; + return 0; + } + if (depth == maxdepth) tbl[codeword++] = i; + } + depth--; + return i; } diff --git a/src/archivers/dms/pfile.cpp b/src/archivers/dms/pfile.cpp index 115a52ee..e104d509 100644 --- a/src/archivers/dms/pfile.cpp +++ b/src/archivers/dms/pfile.cpp @@ -44,7 +44,7 @@ static void printbandiz(UCHAR *, USHORT); static int passfound, passretries; -static TCHAR modes[7][7]={_T("NOCOMP"),_T("SIMPLE"),_T("QUICK "),_T("MEDIUM"),_T("DEEP "),_T("HEAVY1"),_T("HEAVY2")}; +static TCHAR modes[7][7]= {_T("NOCOMP"),_T("SIMPLE"),_T("QUICK "),_T("MEDIUM"),_T("DEEP "),_T("HEAVY1"),_T("HEAVY2")}; static USHORT PWDCRC; UCHAR *dms_text; @@ -56,506 +56,555 @@ static void log_error(int track) static void addextra(TCHAR *name, struct zfile **extra, uae_u8 *p, int size) { - int i; - struct zfile *zf = NULL; + int i; + struct zfile *zf = NULL; - if (!extra) - return; - for (i = 0; i < DMS_EXTRA_SIZE; i++) { - if (!extra[i]) - break; - } - if (i == DMS_EXTRA_SIZE) - return; - zf = zfile_fopen_empty (NULL, name, size); - if (!zf) - return; - zfile_fwrite (p, size, 1, zf); - zfile_fseek (zf, 0, SEEK_SET); - extra[i] = zf; + if (!extra) + return; + for (i = 0; i < DMS_EXTRA_SIZE; i++) + { + if (!extra[i]) + break; + } + if (i == DMS_EXTRA_SIZE) + return; + zf = zfile_fopen_empty (NULL, name, size); + if (!zf) + return; + zfile_fwrite (p, size, 1, zf); + zfile_fseek (zf, 0, SEEK_SET); + extra[i] = zf; } USHORT DMS_Process_File(struct zfile *fi, struct zfile *fo, USHORT cmd, USHORT opt, USHORT PCRC, USHORT pwd, int part, struct zfile **extra) { - USHORT from, to, geninfo, c_version, cmode, hcrc, disktype, pv, ret; - ULONG pkfsize, unpkfsize; - UCHAR *b1, *b2; - time_t date; + USHORT from, to, geninfo, c_version, cmode, hcrc, disktype, pv, ret; + ULONG pkfsize, unpkfsize; + UCHAR *b1, *b2; + time_t date; - passfound = 0; - passretries = 2; - b1 = xcalloc(UCHAR,TRACK_BUFFER_LEN); - if (!b1) return ERR_NOMEMORY; - b2 = xcalloc(UCHAR,TRACK_BUFFER_LEN); - if (!b2) { - free(b1); - return ERR_NOMEMORY; - } - dms_text = xcalloc(UCHAR,TEMP_BUFFER_LEN); - if (!dms_text) { - free(b1); - free(b2); - return ERR_NOMEMORY; - } + passfound = 0; + passretries = 2; + b1 = xcalloc(UCHAR,TRACK_BUFFER_LEN); + if (!b1) return ERR_NOMEMORY; + b2 = xcalloc(UCHAR,TRACK_BUFFER_LEN); + if (!b2) + { + free(b1); + return ERR_NOMEMORY; + } + dms_text = xcalloc(UCHAR,TEMP_BUFFER_LEN); + if (!dms_text) + { + free(b1); + free(b2); + return ERR_NOMEMORY; + } - /* if iname is NULL, input is stdin; if oname is NULL, output is stdout */ + /* if iname is NULL, input is stdin; if oname is NULL, output is stdout */ - if (zfile_fread(b1,1,HEADLEN,fi) != HEADLEN) { - free(b1); - free(b2); - free(dms_text); - return ERR_SREAD; - } + if (zfile_fread(b1,1,HEADLEN,fi) != HEADLEN) + { + free(b1); + free(b2); + free(dms_text); + return ERR_SREAD; + } - if ( (b1[0] != 'D') || (b1[1] != 'M') || (b1[2] != 'S') || (b1[3] != '!') ) { - /* Check the first 4 bytes of file to see if it is "DMS!" */ - free(b1); - free(b2); - free(dms_text); - return ERR_NOTDMS; - } + if ( (b1[0] != 'D') || (b1[1] != 'M') || (b1[2] != 'S') || (b1[3] != '!') ) + { + /* Check the first 4 bytes of file to see if it is "DMS!" */ + free(b1); + free(b2); + free(dms_text); + return ERR_NOTDMS; + } - hcrc = (USHORT)((b1[HEADLEN-2]<<8) | b1[HEADLEN-1]); - /* Header CRC */ + hcrc = (USHORT)((b1[HEADLEN-2]<<8) | b1[HEADLEN-1]); + /* Header CRC */ - if (hcrc != dms_CreateCRC(b1+4,(ULONG)(HEADLEN-6))) { - free(b1); - free(b2); - free(dms_text); - return ERR_HCRC; - } + if (hcrc != dms_CreateCRC(b1+4,(ULONG)(HEADLEN-6))) + { + free(b1); + free(b2); + free(dms_text); + return ERR_HCRC; + } + + geninfo = (USHORT) ((b1[10]<<8) | b1[11]); /* General info about archive */ + date = (time_t) ((((ULONG)b1[12])<<24) | (((ULONG)b1[13])<<16) | (((ULONG)b1[14])<<8) | (ULONG)b1[15]); /* date in standard UNIX/ANSI format */ + from = (USHORT) ((b1[16]<<8) | b1[17]); /* Lowest track in archive. May be incorrect if archive is "appended" */ + to = (USHORT) ((b1[18]<<8) | b1[19]); /* Highest track in archive. May be incorrect if archive is "appended" */ + + if (part && from < 30) + { + free(b1); + free(b2); + free(dms_text); + return DMS_FILE_END; + } + + pkfsize = (ULONG) ((((ULONG)b1[21])<<16) | (((ULONG)b1[22])<<8) | (ULONG)b1[23]); /* Length of total packed data as in archive */ + unpkfsize = (ULONG) ((((ULONG)b1[25])<<16) | (((ULONG)b1[26])<<8) | (ULONG)b1[27]); /* Length of unpacked data. Usually 901120 bytes */ + + c_version = (USHORT) ((b1[46]<<8) | b1[47]); /* version of DMS used to generate it */ + disktype = (USHORT) ((b1[50]<<8) | b1[51]); /* Type of compressed disk */ + cmode = (USHORT) ((b1[52]<<8) | b1[53]); /* Compression mode mostly used in this archive */ + + PWDCRC = PCRC; + + if (dolog) + { + + pv = (USHORT)(c_version/100); + write_log (_T(" Created with DMS version %d.%02d "),pv,c_version-pv*100); + if (geninfo & 0x80) + write_log (_T("Registered\n")); + else + write_log (_T("Evaluation\n")); + + write_log (_T(" Creation date : %s"),ctime(&date)); + write_log (_T(" Lowest track in archive : %d\n"),from); + write_log (_T(" Highest track in archive : %d\n"),to); + write_log (_T(" Packed data size : %lu\n"),pkfsize); + write_log (_T(" Unpacked data size : %lu\n"),unpkfsize); + write_log (_T(" Disk type of archive : ")); + + /* The original DMS from SDS software (DMS up to 1.11) used other values */ + /* in disk type to indicate formats as MS-DOS, AMax and Mac, but it was */ + /* not suported for compression. It was for future expansion and was never */ + /* used. The newer versions of DMS made by ParCon Software changed it to */ + /* add support for new Amiga disk types. */ + switch (disktype) + { + case 0: + case 1: + /* Can also be a non-dos disk */ + write_log (_T("AmigaOS 1.0 OFS\n")); + break; + case 2: + write_log (_T("AmigaOS 2.0 FFS\n")); + break; + case 3: + write_log (_T("AmigaOS 3.0 OFS / International\n")); + break; + case 4: + write_log (_T("AmigaOS 3.0 FFS / International\n")); + break; + case 5: + write_log (_T("AmigaOS 3.0 OFS / Dir Cache\n")); + break; + case 6: + write_log (_T("AmigaOS 3.0 FFS / Dir Cache\n")); + break; + case 7: + write_log (_T("FMS Amiga System File\n")); + break; + default: + write_log (_T("Unknown\n")); + } + + write_log (_T(" Compression mode used : ")); + if (cmode>6) + write_log (_T("Unknown !\n")); + else + write_log (_T("%s\n"),modes[cmode]); + + write_log (_T(" General info : ")); + if ((geninfo==0)||(geninfo==0x80)) write_log (_T("None")); + if (geninfo & 1) write_log (_T("NoZero ")); + if (geninfo & 2) write_log (_T("Encrypted ")); + if (geninfo & 4) write_log (_T("Appends ")); + if (geninfo & 8) write_log (_T("Banner ")); + if (geninfo & 16) write_log (_T("HD ")); + if (geninfo & 32) write_log (_T("MS-DOS ")); + if (geninfo & 64) write_log (_T("DMS_DEV_Fixed ")); + if (geninfo & 256) write_log (_T("FILEID.DIZ")); + write_log (_T("\n")); + + write_log (_T(" Info Header CRC : %04X\n\n"),hcrc); + + } + + if (disktype == 7) + { + /* It's not a DMS compressed disk image, but a FMS archive */ + free(b1); + free(b2); + free(dms_text); + return ERR_FMS; + } + + + if (dolog) + { + write_log (_T(" Track Plength Ulength Cmode USUM HCRC DCRC Cflag\n")); + write_log (_T(" ------ ------- ------- ------ ---- ---- ---- -----\n")); + } + + // if (((cmd==CMD_UNPACK) || (cmd==CMD_SHOWBANNER)) && (geninfo & 2) && (!pwd)) + // return ERR_NOPASSWD; + + ret=NO_PROBLEM; + + Init_Decrunchers(); + + if (cmd != CMD_VIEW) + { + if (cmd == CMD_SHOWBANNER) /* Banner is in the first track */ + ret = Process_Track(fi,NULL,b1,b2,cmd,opt,geninfo,extra); + else + { + Init_Decrunchers(); + for (;;) + { + int ok = 0; + ret = Process_Track(fi,fo,b1,b2,cmd,opt,geninfo,extra); + if (ret == DMS_FILE_END) + break; + if (ret == NO_PROBLEM) + continue; + break; +#if 0 + while (!ok) + { + uae_u8 b1[THLEN]; + + if (zfile_fread(b1,1,THLEN,fi) != 1) + { + write_log (_T("DMS: unexpected end of file\n")); + break; + } + write_log (_T("DMS: corrupted track, searching for next track header..\n")); + if (b1[0] == 'T' && b1[1] == 'R') + { + USHORT hcrc = (USHORT)((b1[THLEN-2] << 8) | b1[THLEN-1]); + if (CreateCRC(b1,(ULONG)(THLEN-2)) == hcrc) + { + write_log (_T("DMS: found checksum correct track header, retrying..\n")); + zfile_fseek (fi, SEEK_CUR, -THLEN); + ok = 1; + break; + } + } + if (!ok) + zfile_fseek (fi, SEEK_CUR, -(THLEN - 1)); + } +#endif + } + } + } + + if ((cmd == CMD_VIEWFULL) || (cmd == CMD_SHOWDIZ) || (cmd == CMD_SHOWBANNER)) write_log(_T("\n")); + + if (ret == DMS_FILE_END) ret = NO_PROBLEM; + + + /* Used to give an error message, but I have seen some DMS */ + /* files with texts or zeros at the end of the valid data */ + /* So, when we find something that is not a track header, */ + /* we suppose that the valid data is over. And say it's ok. */ + if (ret == ERR_NOTTRACK) ret = NO_PROBLEM; - geninfo = (USHORT) ((b1[10]<<8) | b1[11]); /* General info about archive */ - date = (time_t) ((((ULONG)b1[12])<<24) | (((ULONG)b1[13])<<16) | (((ULONG)b1[14])<<8) | (ULONG)b1[15]); /* date in standard UNIX/ANSI format */ - from = (USHORT) ((b1[16]<<8) | b1[17]); /* Lowest track in archive. May be incorrect if archive is "appended" */ - to = (USHORT) ((b1[18]<<8) | b1[19]); /* Highest track in archive. May be incorrect if archive is "appended" */ - if (part && from < 30) { free(b1); free(b2); free(dms_text); - return DMS_FILE_END; - } - pkfsize = (ULONG) ((((ULONG)b1[21])<<16) | (((ULONG)b1[22])<<8) | (ULONG)b1[23]); /* Length of total packed data as in archive */ - unpkfsize = (ULONG) ((((ULONG)b1[25])<<16) | (((ULONG)b1[26])<<8) | (ULONG)b1[27]); /* Length of unpacked data. Usually 901120 bytes */ - - c_version = (USHORT) ((b1[46]<<8) | b1[47]); /* version of DMS used to generate it */ - disktype = (USHORT) ((b1[50]<<8) | b1[51]); /* Type of compressed disk */ - cmode = (USHORT) ((b1[52]<<8) | b1[53]); /* Compression mode mostly used in this archive */ - - PWDCRC = PCRC; - - if (dolog) { - - pv = (USHORT)(c_version/100); - write_log (_T(" Created with DMS version %d.%02d "),pv,c_version-pv*100); - if (geninfo & 0x80) - write_log (_T("Registered\n")); - else - write_log (_T("Evaluation\n")); - - write_log (_T(" Creation date : %s"),ctime(&date)); - write_log (_T(" Lowest track in archive : %d\n"),from); - write_log (_T(" Highest track in archive : %d\n"),to); - write_log (_T(" Packed data size : %lu\n"),pkfsize); - write_log (_T(" Unpacked data size : %lu\n"),unpkfsize); - write_log (_T(" Disk type of archive : ")); - - /* The original DMS from SDS software (DMS up to 1.11) used other values */ - /* in disk type to indicate formats as MS-DOS, AMax and Mac, but it was */ - /* not suported for compression. It was for future expansion and was never */ - /* used. The newer versions of DMS made by ParCon Software changed it to */ - /* add support for new Amiga disk types. */ - switch (disktype) { - case 0: - case 1: - /* Can also be a non-dos disk */ - write_log (_T("AmigaOS 1.0 OFS\n")); - break; - case 2: - write_log (_T("AmigaOS 2.0 FFS\n")); - break; - case 3: - write_log (_T("AmigaOS 3.0 OFS / International\n")); - break; - case 4: - write_log (_T("AmigaOS 3.0 FFS / International\n")); - break; - case 5: - write_log (_T("AmigaOS 3.0 OFS / Dir Cache\n")); - break; - case 6: - write_log (_T("AmigaOS 3.0 FFS / Dir Cache\n")); - break; - case 7: - write_log (_T("FMS Amiga System File\n")); - break; - default: - write_log (_T("Unknown\n")); - } - - write_log (_T(" Compression mode used : ")); - if (cmode>6) - write_log (_T("Unknown !\n")); - else - write_log (_T("%s\n"),modes[cmode]); - - write_log (_T(" General info : ")); - if ((geninfo==0)||(geninfo==0x80)) write_log (_T("None")); - if (geninfo & 1) write_log (_T("NoZero ")); - if (geninfo & 2) write_log (_T("Encrypted ")); - if (geninfo & 4) write_log (_T("Appends ")); - if (geninfo & 8) write_log (_T("Banner ")); - if (geninfo & 16) write_log (_T("HD ")); - if (geninfo & 32) write_log (_T("MS-DOS ")); - if (geninfo & 64) write_log (_T("DMS_DEV_Fixed ")); - if (geninfo & 256) write_log (_T("FILEID.DIZ")); - write_log (_T("\n")); - - write_log (_T(" Info Header CRC : %04X\n\n"),hcrc); - - } - - if (disktype == 7) { - /* It's not a DMS compressed disk image, but a FMS archive */ - free(b1); - free(b2); - free(dms_text); - return ERR_FMS; - } - - - if (dolog) { - write_log (_T(" Track Plength Ulength Cmode USUM HCRC DCRC Cflag\n")); - write_log (_T(" ------ ------- ------- ------ ---- ---- ---- -----\n")); - } - - // if (((cmd==CMD_UNPACK) || (cmd==CMD_SHOWBANNER)) && (geninfo & 2) && (!pwd)) - // return ERR_NOPASSWD; - - ret=NO_PROBLEM; - - Init_Decrunchers(); - - if (cmd != CMD_VIEW) { - if (cmd == CMD_SHOWBANNER) /* Banner is in the first track */ - ret = Process_Track(fi,NULL,b1,b2,cmd,opt,geninfo,extra); - else { - Init_Decrunchers(); - for (;;) { - int ok = 0; - ret = Process_Track(fi,fo,b1,b2,cmd,opt,geninfo,extra); - if (ret == DMS_FILE_END) - break; - if (ret == NO_PROBLEM) - continue; - break; -#if 0 - while (!ok) { - uae_u8 b1[THLEN]; - - if (zfile_fread(b1,1,THLEN,fi) != 1) { - write_log (_T("DMS: unexpected end of file\n")); - break; - } - write_log (_T("DMS: corrupted track, searching for next track header..\n")); - if (b1[0] == 'T' && b1[1] == 'R') { - USHORT hcrc = (USHORT)((b1[THLEN-2] << 8) | b1[THLEN-1]); - if (CreateCRC(b1,(ULONG)(THLEN-2)) == hcrc) { - write_log (_T("DMS: found checksum correct track header, retrying..\n")); - zfile_fseek (fi, SEEK_CUR, -THLEN); - ok = 1; - break; - } - } - if (!ok) - zfile_fseek (fi, SEEK_CUR, -(THLEN - 1)); - } -#endif - } - } - } - - if ((cmd == CMD_VIEWFULL) || (cmd == CMD_SHOWDIZ) || (cmd == CMD_SHOWBANNER)) write_log(_T("\n")); - - if (ret == DMS_FILE_END) ret = NO_PROBLEM; - - - /* Used to give an error message, but I have seen some DMS */ - /* files with texts or zeros at the end of the valid data */ - /* So, when we find something that is not a track header, */ - /* we suppose that the valid data is over. And say it's ok. */ - if (ret == ERR_NOTTRACK) ret = NO_PROBLEM; - - - free(b1); - free(b2); - free(dms_text); - - return ret; + return ret; } -static USHORT Process_Track(struct zfile *fi, struct zfile *fo, UCHAR *b1, UCHAR *b2, USHORT cmd, USHORT opt, int dmsflags, struct zfile **extra){ - USHORT hcrc, dcrc, usum, number, pklen1, pklen2, unpklen, l; - UCHAR cmode, flags; - int crcerr = 0; - bool normaltrack; +static USHORT Process_Track(struct zfile *fi, struct zfile *fo, UCHAR *b1, UCHAR *b2, USHORT cmd, USHORT opt, int dmsflags, struct zfile **extra) +{ + USHORT hcrc, dcrc, usum, number, pklen1, pklen2, unpklen, l; + UCHAR cmode, flags; + int crcerr = 0; + bool normaltrack; - l = (USHORT)zfile_fread(b1,1,THLEN,fi); + l = (USHORT)zfile_fread(b1,1,THLEN,fi); - if (l != THLEN) { - if (l==0) - return DMS_FILE_END; - else - return ERR_SREAD; - } + if (l != THLEN) + { + if (l==0) + return DMS_FILE_END; + else + return ERR_SREAD; + } - /* "TR" identifies a Track Header */ - if ((b1[0] != 'T')||(b1[1] != 'R')) return ERR_NOTTRACK; + /* "TR" identifies a Track Header */ + if ((b1[0] != 'T')||(b1[1] != 'R')) return ERR_NOTTRACK; - /* Track Header CRC */ - hcrc = (USHORT)((b1[THLEN-2] << 8) | b1[THLEN-1]); + /* Track Header CRC */ + hcrc = (USHORT)((b1[THLEN-2] << 8) | b1[THLEN-1]); - if (dms_CreateCRC(b1,(ULONG)(THLEN-2)) != hcrc) return ERR_THCRC; + if (dms_CreateCRC(b1,(ULONG)(THLEN-2)) != hcrc) return ERR_THCRC; - number = (USHORT)((b1[2] << 8) | b1[3]); /* Number of track */ - pklen1 = (USHORT)((b1[6] << 8) | b1[7]); /* Length of packed track data as in archive */ - pklen2 = (USHORT)((b1[8] << 8) | b1[9]); /* Length of data after first unpacking */ - unpklen = (USHORT)((b1[10] << 8) | b1[11]); /* Length of data after subsequent rle unpacking */ - flags = b1[12]; /* control flags */ - cmode = b1[13]; /* compression mode used */ - usum = (USHORT)((b1[14] << 8) | b1[15]); /* Track Data CheckSum AFTER unpacking */ - dcrc = (USHORT)((b1[16] << 8) | b1[17]); /* Track Data CRC BEFORE unpacking */ + number = (USHORT)((b1[2] << 8) | b1[3]); /* Number of track */ + pklen1 = (USHORT)((b1[6] << 8) | b1[7]); /* Length of packed track data as in archive */ + pklen2 = (USHORT)((b1[8] << 8) | b1[9]); /* Length of data after first unpacking */ + unpklen = (USHORT)((b1[10] << 8) | b1[11]); /* Length of data after subsequent rle unpacking */ + flags = b1[12]; /* control flags */ + cmode = b1[13]; /* compression mode used */ + usum = (USHORT)((b1[14] << 8) | b1[15]); /* Track Data CheckSum AFTER unpacking */ + dcrc = (USHORT)((b1[16] << 8) | b1[17]); /* Track Data CRC BEFORE unpacking */ - if (dolog) - write_log (_T("DMS: track=%d\n"), number); + if (dolog) + write_log (_T("DMS: track=%d\n"), number); - if (dolog) { - if (number==80) - write_log (_T(" FileID ")); - else if (number==0xffff) - write_log (_T(" Banner ")); - else if ((number==0) && (unpklen==1024)) - write_log (_T(" FakeBB ")); - else - write_log (_T(" %2d "),(short)number); + if (dolog) + { + if (number==80) + write_log (_T(" FileID ")); + else if (number==0xffff) + write_log (_T(" Banner ")); + else if ((number==0) && (unpklen==1024)) + write_log (_T(" FakeBB ")); + else + write_log (_T(" %2d "),(short)number); - write_log (_T("%5d %5d %s %04X %04X %04X %0d\n"), pklen1, unpklen, modes[cmode], usum, hcrc, dcrc, flags); - } + write_log (_T("%5d %5d %s %04X %04X %04X %0d\n"), pklen1, unpklen, modes[cmode], usum, hcrc, dcrc, flags); + } - if ((pklen1 > TRACK_BUFFER_LEN) || (pklen2 >TRACK_BUFFER_LEN) || (unpklen > TRACK_BUFFER_LEN)) return ERR_BIGTRACK; + if ((pklen1 > TRACK_BUFFER_LEN) || (pklen2 >TRACK_BUFFER_LEN) || (unpklen > TRACK_BUFFER_LEN)) return ERR_BIGTRACK; - if (zfile_fread(b1,1,(size_t)pklen1,fi) != pklen1) return ERR_SREAD; + if (zfile_fread(b1,1,(size_t)pklen1,fi) != pklen1) return ERR_SREAD; - if (dms_CreateCRC(b1,(ULONG)pklen1) != dcrc) { - log_error (number); - crcerr = 1; - } - /* track 80 is FILEID.DIZ, track 0xffff (-1) is Banner */ - /* and track 0 with 1024 bytes only is a fake boot block with more advertising */ - /* FILE_ID.DIZ is never encrypted */ + if (dms_CreateCRC(b1,(ULONG)pklen1) != dcrc) + { + log_error (number); + crcerr = 1; + } + /* track 80 is FILEID.DIZ, track 0xffff (-1) is Banner */ + /* and track 0 with 1024 bytes only is a fake boot block with more advertising */ + /* FILE_ID.DIZ is never encrypted */ - //if (pwd && (number!=80)) dms_decrypt(b1,pklen1); + //if (pwd && (number!=80)) dms_decrypt(b1,pklen1); - normaltrack = false; - if ((cmd == CMD_UNPACK) && (number<80) && (unpklen>2048)) { - memset(b2, 0, unpklen); - if (!crcerr) { - Unpack_Track(b1, b2, pklen2, unpklen, cmode, flags, number, pklen1, usum, dmsflags & DMSFLAG_ENCRYPTED); - } - if (number == 0 && zfile_ftell (fo) == 512 * 22) { - // did we have another cylinder 0 already? - uae_u8 *p; - zfile_fseek (fo, 0, SEEK_SET); - p = xcalloc (uae_u8, 512 * 22); - zfile_fread (p, 512 * 22, 1, fo); - addextra(_T("BigFakeBootBlock"), extra, p, 512 * 22); - xfree (p); - } - zfile_fseek (fo, number * 512 * 22 * ((dmsflags & DMSFLAG_HD) ? 2 : 1), SEEK_SET); - if (zfile_fwrite(b2,1,(size_t)unpklen,fo) != unpklen) - return ERR_CANTWRITE; - normaltrack = true; - } else if (number == 0 && unpklen == 1024) { - memset(b2, 0, unpklen); - if (!crcerr) - Unpack_Track(b1, b2, pklen2, unpklen, cmode, flags, number, pklen1, usum, dmsflags & DMSFLAG_ENCRYPTED); - addextra(_T("FakeBootBlock"), extra, b2, unpklen); - } + normaltrack = false; + if ((cmd == CMD_UNPACK) && (number<80) && (unpklen>2048)) + { + memset(b2, 0, unpklen); + if (!crcerr) + { + Unpack_Track(b1, b2, pklen2, unpklen, cmode, flags, number, pklen1, usum, dmsflags & DMSFLAG_ENCRYPTED); + } + if (number == 0 && zfile_ftell (fo) == 512 * 22) + { + // did we have another cylinder 0 already? + uae_u8 *p; + zfile_fseek (fo, 0, SEEK_SET); + p = xcalloc (uae_u8, 512 * 22); + zfile_fread (p, 512 * 22, 1, fo); + addextra(_T("BigFakeBootBlock"), extra, p, 512 * 22); + xfree (p); + } + zfile_fseek (fo, number * 512 * 22 * ((dmsflags & DMSFLAG_HD) ? 2 : 1), SEEK_SET); + if (zfile_fwrite(b2,1,(size_t)unpklen,fo) != unpklen) + return ERR_CANTWRITE; + normaltrack = true; + } + else if (number == 0 && unpklen == 1024) + { + memset(b2, 0, unpklen); + if (!crcerr) + Unpack_Track(b1, b2, pklen2, unpklen, cmode, flags, number, pklen1, usum, dmsflags & DMSFLAG_ENCRYPTED); + addextra(_T("FakeBootBlock"), extra, b2, unpklen); + } + + if (crcerr) + return NO_PROBLEM; + + if (number == 0xffff) + { + if (extra) + { + Unpack_Track(b1, b2, pklen2, unpklen, cmode, flags, number, pklen1, usum, dmsflags & DMSFLAG_ENCRYPTED); + addextra(_T("Banner"), extra, b2, unpklen); + } + //printbandiz(b2,unpklen); + } + + if (number == 80) + { + if (extra) + { + Unpack_Track(b1, b2, pklen2, unpklen, cmode, flags, number, pklen1, usum, dmsflags & DMSFLAG_ENCRYPTED); + addextra(_T("FILEID.DIZ"), extra, b2, unpklen); + } + //printbandiz(b2,unpklen); + } + + if (!normaltrack) + Init_Decrunchers(); - if (crcerr) return NO_PROBLEM; - if (number == 0xffff) { - if (extra){ - Unpack_Track(b1, b2, pklen2, unpklen, cmode, flags, number, pklen1, usum, dmsflags & DMSFLAG_ENCRYPTED); - addextra(_T("Banner"), extra, b2, unpklen); - } - //printbandiz(b2,unpklen); - } - - if (number == 80) { - if (extra) { - Unpack_Track(b1, b2, pklen2, unpklen, cmode, flags, number, pklen1, usum, dmsflags & DMSFLAG_ENCRYPTED); - addextra(_T("FILEID.DIZ"), extra, b2, unpklen); - } - //printbandiz(b2,unpklen); - } - - if (!normaltrack) - Init_Decrunchers(); - - return NO_PROBLEM; - } -static USHORT Unpack_Track_2(UCHAR *b1, UCHAR *b2, USHORT pklen2, USHORT unpklen, UCHAR cmode, UCHAR flags){ - switch (cmode){ - case 0: - /* No Compression */ - memcpy(b2,b1,(size_t)unpklen); - break; - case 1: - /* Simple Compression */ - if (Unpack_RLE(b1,b2,unpklen)) return ERR_BADDECR; - break; - case 2: - /* Quick Compression */ - if (Unpack_QUICK(b1,b2,pklen2)) return ERR_BADDECR; - if (Unpack_RLE(b2,b1,unpklen)) return ERR_BADDECR; - memcpy(b2,b1,(size_t)unpklen); - break; - case 3: - /* Medium Compression */ - if (Unpack_MEDIUM(b1,b2,pklen2)) return ERR_BADDECR; - if (Unpack_RLE(b2,b1,unpklen)) return ERR_BADDECR; - memcpy(b2,b1,(size_t)unpklen); - break; - case 4: - /* Deep Compression */ - if (Unpack_DEEP(b1,b2,pklen2)) return ERR_BADDECR; - if (Unpack_RLE(b2,b1,unpklen)) return ERR_BADDECR; - memcpy(b2,b1,(size_t)unpklen); - break; - case 5: - case 6: - /* Heavy Compression */ - if (cmode==5) { - /* Heavy 1 */ - if (Unpack_HEAVY(b1,b2,flags & 7,pklen2)) return ERR_BADDECR; - } else { - /* Heavy 2 */ - if (Unpack_HEAVY(b1,b2,flags | 8,pklen2)) return ERR_BADDECR; - } - if (flags & 4) { - memset(b1,0,unpklen); - /* Unpack with RLE only if this flag is set */ - if (Unpack_RLE(b2,b1,unpklen)) return ERR_BADDECR; - memcpy(b2,b1,(size_t)unpklen); - } - break; - default: - return ERR_UNKNMODE; - } +static USHORT Unpack_Track_2(UCHAR *b1, UCHAR *b2, USHORT pklen2, USHORT unpklen, UCHAR cmode, UCHAR flags) +{ + switch (cmode) + { + case 0: + /* No Compression */ + memcpy(b2,b1,(size_t)unpklen); + break; + case 1: + /* Simple Compression */ + if (Unpack_RLE(b1,b2,unpklen)) return ERR_BADDECR; + break; + case 2: + /* Quick Compression */ + if (Unpack_QUICK(b1,b2,pklen2)) return ERR_BADDECR; + if (Unpack_RLE(b2,b1,unpklen)) return ERR_BADDECR; + memcpy(b2,b1,(size_t)unpklen); + break; + case 3: + /* Medium Compression */ + if (Unpack_MEDIUM(b1,b2,pklen2)) return ERR_BADDECR; + if (Unpack_RLE(b2,b1,unpklen)) return ERR_BADDECR; + memcpy(b2,b1,(size_t)unpklen); + break; + case 4: + /* Deep Compression */ + if (Unpack_DEEP(b1,b2,pklen2)) return ERR_BADDECR; + if (Unpack_RLE(b2,b1,unpklen)) return ERR_BADDECR; + memcpy(b2,b1,(size_t)unpklen); + break; + case 5: + case 6: + /* Heavy Compression */ + if (cmode==5) + { + /* Heavy 1 */ + if (Unpack_HEAVY(b1,b2,flags & 7,pklen2)) return ERR_BADDECR; + } + else + { + /* Heavy 2 */ + if (Unpack_HEAVY(b1,b2,flags | 8,pklen2)) return ERR_BADDECR; + } + if (flags & 4) + { + memset(b1,0,unpklen); + /* Unpack with RLE only if this flag is set */ + if (Unpack_RLE(b2,b1,unpklen)) return ERR_BADDECR; + memcpy(b2,b1,(size_t)unpklen); + } + break; + default: + return ERR_UNKNMODE; + } - if (!(flags & 1)) Init_Decrunchers(); + if (!(flags & 1)) Init_Decrunchers(); - return NO_PROBLEM; + return NO_PROBLEM; } /* DMS uses a lame encryption */ -static void dms_decrypt(UCHAR *p, USHORT len, UCHAR *src){ - USHORT t; +static void dms_decrypt(UCHAR *p, USHORT len, UCHAR *src) +{ + USHORT t; - while (len--){ - t = (USHORT) *src++; - *p++ = t ^ (UCHAR)PWDCRC; - PWDCRC = (USHORT)((PWDCRC >> 1) + t); - } + while (len--) + { + t = (USHORT) *src++; + *p++ = t ^ (UCHAR)PWDCRC; + PWDCRC = (USHORT)((PWDCRC >> 1) + t); + } } static USHORT Unpack_Track(UCHAR *b1, UCHAR *b2, USHORT pklen2, USHORT unpklen, UCHAR cmode, UCHAR flags, USHORT number, USHORT pklen1, USHORT usum1, int enc) { - USHORT r, err = NO_PROBLEM; - static USHORT pass; - int maybeencrypted; - int pwrounds; - UCHAR *tmp; - USHORT prevpass = 0; + USHORT r, err = NO_PROBLEM; + static USHORT pass; + int maybeencrypted; + int pwrounds; + UCHAR *tmp; + USHORT prevpass = 0; - if (passfound) { - if (number != 80) - dms_decrypt(b1, pklen1, b1); - r = Unpack_Track_2(b1, b2, pklen2, unpklen, cmode, flags); - if (r == NO_PROBLEM) { - if (usum1 == dms_Calc_CheckSum(b2,(ULONG)unpklen)) - return NO_PROBLEM; - } - log_error(number); - if (passretries <= 0) - return ERR_CSUM; - } + if (passfound) + { + if (number != 80) + dms_decrypt(b1, pklen1, b1); + r = Unpack_Track_2(b1, b2, pklen2, unpklen, cmode, flags); + if (r == NO_PROBLEM) + { + if (usum1 == dms_Calc_CheckSum(b2,(ULONG)unpklen)) + return NO_PROBLEM; + } + log_error(number); + if (passretries <= 0) + return ERR_CSUM; + } - passretries--; - pwrounds = 0; - maybeencrypted = 0; - tmp = (unsigned char*)malloc (pklen1); - memcpy (tmp, b1, pklen1); - memset(b2, 0, unpklen); - for (;;) { - r = Unpack_Track_2(b1, b2, pklen2, unpklen, cmode, flags); - if (r == NO_PROBLEM) { - if (usum1 == dms_Calc_CheckSum(b2,(ULONG)unpklen)) { - passfound = maybeencrypted; - if (passfound) - write_log (_T("DMS: decryption key = 0x%04X\n"), prevpass); - err = NO_PROBLEM; - pass = prevpass; - break; - } - } - if (number == 80 || !enc) { - err = ERR_CSUM; - break; - } - maybeencrypted = 1; - prevpass = pass; - PWDCRC = pass; - pass++; - dms_decrypt(b1, pklen1, tmp); - pwrounds++; - if (pwrounds == 65536) { - err = ERR_CSUM; - passfound = 0; - break; - } - } - free (tmp); - return err; + passretries--; + pwrounds = 0; + maybeencrypted = 0; + tmp = (unsigned char*)malloc (pklen1); + memcpy (tmp, b1, pklen1); + memset(b2, 0, unpklen); + for (;;) + { + r = Unpack_Track_2(b1, b2, pklen2, unpklen, cmode, flags); + if (r == NO_PROBLEM) + { + if (usum1 == dms_Calc_CheckSum(b2,(ULONG)unpklen)) + { + passfound = maybeencrypted; + if (passfound) + write_log (_T("DMS: decryption key = 0x%04X\n"), prevpass); + err = NO_PROBLEM; + pass = prevpass; + break; + } + } + if (number == 80 || !enc) + { + err = ERR_CSUM; + break; + } + maybeencrypted = 1; + prevpass = pass; + PWDCRC = pass; + pass++; + dms_decrypt(b1, pklen1, tmp); + pwrounds++; + if (pwrounds == 65536) + { + err = ERR_CSUM; + passfound = 0; + break; + } + } + free (tmp); + return err; } -static void printbandiz(UCHAR *m, USHORT len){ +static void printbandiz(UCHAR *m, USHORT len) +{ UCHAR *i,*j; - i=j=m; - while (i= T) { - freq[j] = (USHORT) ((freq[i] + 1) / 2); - son[j] = son[i]; - j++; - } - } - /* begin constructing tree by connecting sons */ - for (i = 0, j = N_CHAR; j < T; i += 2, j++) { - k = (USHORT) (i + 1); - f = freq[j] = (USHORT) (freq[i] + freq[k]); - for (k = (USHORT)(j - 1); f < freq[k]; k--); - k++; - l = (USHORT)((j - k) * 2); - memmove(&freq[k + 1], &freq[k], (size_t)l); - freq[k] = f; - memmove(&son[k + 1], &son[k], (size_t)l); - son[k] = i; - } - /* connect prnt */ - for (i = 0; i < T; i++) { - if ((k = son[i]) >= T) { - prnt[k] = i; - } else { - prnt[k] = prnt[k + 1] = i; - } - } + /* collect leaf nodes in the first half of the table */ + /* and replace the freq by (freq + 1) / 2. */ + j = 0; + for (i = 0; i < T; i++) + { + if (son[i] >= T) + { + freq[j] = (USHORT) ((freq[i] + 1) / 2); + son[j] = son[i]; + j++; + } + } + /* begin constructing tree by connecting sons */ + for (i = 0, j = N_CHAR; j < T; i += 2, j++) + { + k = (USHORT) (i + 1); + f = freq[j] = (USHORT) (freq[i] + freq[k]); + for (k = (USHORT)(j - 1); f < freq[k]; k--); + k++; + l = (USHORT)((j - k) * 2); + memmove(&freq[k + 1], &freq[k], (size_t)l); + freq[k] = f; + memmove(&son[k + 1], &son[k], (size_t)l); + son[k] = i; + } + /* connect prnt */ + for (i = 0; i < T; i++) + { + if ((k = son[i]) >= T) + { + prnt[k] = i; + } + else + { + prnt[k] = prnt[k + 1] = i; + } + } } /* increment frequency of given code by one, and update tree */ -INLINE void update(USHORT c){ - USHORT i, j, k, l; +INLINE void update(USHORT c) +{ + USHORT i, j, k, l; - if (freq[R] == MAX_FREQ) { - reconst(); - } - c = prnt[c + T]; - do { - k = ++freq[c]; + if (freq[R] == MAX_FREQ) + { + reconst(); + } + c = prnt[c + T]; + do + { + k = ++freq[c]; - /* if the order is disturbed, exchange nodes */ - if (k > freq[l = (USHORT)(c + 1)]) { - while (k > freq[++l]); - l--; - freq[c] = freq[l]; - freq[l] = k; + /* if the order is disturbed, exchange nodes */ + if (k > freq[l = (USHORT)(c + 1)]) + { + while (k > freq[++l]); + l--; + freq[c] = freq[l]; + freq[l] = k; - i = son[c]; - prnt[i] = l; - if (i < T) prnt[i + 1] = l; + i = son[c]; + prnt[i] = l; + if (i < T) prnt[i + 1] = l; - j = son[l]; - son[l] = i; + j = son[l]; + son[l] = i; - prnt[j] = c; - if (j < T) prnt[j + 1] = c; - son[c] = j; + prnt[j] = c; + if (j < T) prnt[j + 1] = c; + son[c] = j; - c = l; - } - } while ((c = prnt[c]) != 0); /* repeat up to root */ + c = l; + } + } + while ((c = prnt[c]) != 0); /* repeat up to root */ } diff --git a/src/archivers/dms/u_heavy.cpp b/src/archivers/dms/u_heavy.cpp index 59812ec3..551f4f5a 100644 --- a/src/archivers/dms/u_heavy.cpp +++ b/src/archivers/dms/u_heavy.cpp @@ -35,141 +35,174 @@ INLINE USHORT decode_p(void); -USHORT Unpack_HEAVY(UCHAR *in, UCHAR *out, UCHAR flags, USHORT origsize){ - USHORT j, i, c, bitmask; - UCHAR *outend; +USHORT Unpack_HEAVY(UCHAR *in, UCHAR *out, UCHAR flags, USHORT origsize) +{ + USHORT j, i, c, bitmask; + UCHAR *outend; - /* Heavy 1 uses a 4Kb dictionary, Heavy 2 uses 8Kb */ + /* Heavy 1 uses a 4Kb dictionary, Heavy 2 uses 8Kb */ - if (flags & 8) { - dms_np = 15; - bitmask = 0x1fff; - } else { - dms_np = 14; - bitmask = 0x0fff; - } + if (flags & 8) + { + dms_np = 15; + bitmask = 0x1fff; + } + else + { + dms_np = 14; + bitmask = 0x0fff; + } - initbitbuf(in); + initbitbuf(in); - if (flags & 2) { - if (read_tree_c()) return 1; - if (read_tree_p()) return 2; - } + if (flags & 2) + { + if (read_tree_c()) return 1; + if (read_tree_p()) return 2; + } - outend = out+origsize; + outend = out+origsize; - while (out>= 1; - } while (j >= N1); - DROPBITS(c_len[j] - 12); - } - return j; + j = c_table[GETBITS(12)]; + if (j < N1) + { + DROPBITS(c_len[j]); + } + else + { + DROPBITS(12); + i = GETBITS(16); + m = 0x8000; + do + { + if (i & m) j = dms_right[j]; + else j = dms_left [j]; + m >>= 1; + } + while (j >= N1); + DROPBITS(c_len[j] - 12); + } + return j; } -INLINE USHORT decode_p(void){ - USHORT i, j, m; +INLINE USHORT decode_p(void) +{ + USHORT i, j, m; - j = pt_table[GETBITS(8)]; - if (j < dms_np) { - DROPBITS(pt_len[j]); - } else { - DROPBITS(8); - i = GETBITS(16); - m = 0x8000; - do { - if (i & m) j = dms_right[j]; - else j = dms_left [j]; - m >>= 1; - } while (j >= dms_np); - DROPBITS(pt_len[j] - 8); - } + j = pt_table[GETBITS(8)]; + if (j < dms_np) + { + DROPBITS(pt_len[j]); + } + else + { + DROPBITS(8); + i = GETBITS(16); + m = 0x8000; + do + { + if (i & m) j = dms_right[j]; + else j = dms_left [j]; + m >>= 1; + } + while (j >= dms_np); + DROPBITS(pt_len[j] - 8); + } - if (j != dms_np-1) { - if (j > 0) { - j = (USHORT)(GETBITS(i=(USHORT)(j-1)) | (1U << (j-1))); - DROPBITS(i); - } - dms_lastlen=j; - } + if (j != dms_np-1) + { + if (j > 0) + { + j = (USHORT)(GETBITS(i=(USHORT)(j-1)) | (1U << (j-1))); + DROPBITS(i); + } + dms_lastlen=j; + } - return dms_lastlen; + return dms_lastlen; } -static USHORT read_tree_c(void){ - USHORT i,n; +static USHORT read_tree_c(void) +{ + USHORT i,n; - n = GETBITS(9); - DROPBITS(9); - if (n>0){ - for (i=0; i0) + { + for (i=0; i0){ - for (i=0; i0) + { + for (i=0; i outend) return 1; - memset(out,a,(size_t) n); - out += n; - } - } - return 0; + outend = out+origsize; + while (out outend) return 1; + memset(out,a,(size_t) n); + out += n; + } + } + return 0; } diff --git a/src/archivers/lha/crcio.cpp b/src/archivers/lha/crcio.cpp index 3d1b2672..d805f0a4 100644 --- a/src/archivers/lha/crcio.cpp +++ b/src/archivers/lha/crcio.cpp @@ -20,32 +20,35 @@ static int getc_euc_cache; void make_crctable( /* void */ ) { - unsigned int i, j, r; + unsigned int i, j, r; - for (i = 0; i <= UCHAR_MAX; i++) { - r = i; - for (j = 0; j < CHAR_BIT; j++) - if (r & 1) - r = (r >> 1) ^ CRCPOLY; - else - r >>= 1; - crctable[i] = r; - } + for (i = 0; i <= UCHAR_MAX; i++) + { + r = i; + for (j = 0; j < CHAR_BIT; j++) + if (r & 1) + r = (r >> 1) ^ CRCPOLY; + else + r >>= 1; + crctable[i] = r; + } } /* ------------------------------------------------------------------------ */ #ifdef NEED_INCREMENTAL_INDICATOR static void put_indicator(count) - long int count; +long int count; { - if (!quiet && indicator_threshold) { - while (count > indicator_count) { - putchar('o'); - fflush(stdout); - indicator_count += indicator_threshold; - } - } + if (!quiet && indicator_threshold) + { + while (count > indicator_count) + { + putchar('o'); + fflush(stdout); + indicator_count += indicator_threshold; + } + } } #endif @@ -53,143 +56,153 @@ put_indicator(count) unsigned short calccrc(unsigned char *p, unsigned int n) { - reading_size += n; + reading_size += n; #ifdef NEED_INCREMENTAL_INDICATOR - put_indicator(reading_size); + put_indicator(reading_size); #endif - while (n-- > 0) - UPDATE_CRC(*p++); - return crc; + while (n-- > 0) + UPDATE_CRC(*p++); + return crc; } /* ------------------------------------------------------------------------ */ void fillbuf(unsigned char n) /* Shift bitbuf n bits left, read n bits */ { - while (n > bitcount) { - n -= bitcount; - lhabitbuf = (lhabitbuf << bitcount) + (subbitbuf >> (CHAR_BIT - bitcount)); - if (compsize != 0) { - compsize--; - subbitbuf = (unsigned char) zfile_getc(infile); - } - else - subbitbuf = 0; - bitcount = CHAR_BIT; - } - bitcount -= n; - lhabitbuf = (lhabitbuf << n) + (subbitbuf >> (CHAR_BIT - n)); - subbitbuf <<= n; + while (n > bitcount) + { + n -= bitcount; + lhabitbuf = (lhabitbuf << bitcount) + (subbitbuf >> (CHAR_BIT - bitcount)); + if (compsize != 0) + { + compsize--; + subbitbuf = (unsigned char) zfile_getc(infile); + } + else + subbitbuf = 0; + bitcount = CHAR_BIT; + } + bitcount -= n; + lhabitbuf = (lhabitbuf << n) + (subbitbuf >> (CHAR_BIT - n)); + subbitbuf <<= n; } /* ------------------------------------------------------------------------ */ unsigned short getbits(unsigned char n) { - unsigned short x; + unsigned short x; - x = lhabitbuf >> (2 * CHAR_BIT - n); - fillbuf(n); - return x; + x = lhabitbuf >> (2 * CHAR_BIT - n); + fillbuf(n); + return x; } #if 0 /* ------------------------------------------------------------------------ */ void putcode(n, x) /* Write rightmost n bits of x */ - unsigned char n; - unsigned short x; +unsigned char n; +unsigned short x; { - while (n >= bitcount) { - n -= bitcount; - subbitbuf += x >> (USHRT_BIT - bitcount); - x <<= bitcount; - if (compsize < origsize) { - if (fwrite(&subbitbuf, 1, 1, outfile) == 0) { - /* fileerror(WTERR, outfile); */ - fatal_error("Write error in crcio.c(putcode)\n"); - /* exit(errno); */ - } - compsize++; - } - else - unpackable = 1; - subbitbuf = 0; - bitcount = CHAR_BIT; - } - subbitbuf += x >> (USHRT_BIT - bitcount); - bitcount -= n; + while (n >= bitcount) + { + n -= bitcount; + subbitbuf += x >> (USHRT_BIT - bitcount); + x <<= bitcount; + if (compsize < origsize) + { + if (fwrite(&subbitbuf, 1, 1, outfile) == 0) + { + /* fileerror(WTERR, outfile); */ + fatal_error("Write error in crcio.c(putcode)\n"); + /* exit(errno); */ + } + compsize++; + } + else + unpackable = 1; + subbitbuf = 0; + bitcount = CHAR_BIT; + } + subbitbuf += x >> (USHRT_BIT - bitcount); + bitcount -= n; } /* ------------------------------------------------------------------------ */ void putbits(n, x) /* Write rightmost n bits of x */ - unsigned char n; - unsigned short x; +unsigned char n; +unsigned short x; { - x <<= USHRT_BIT - n; - while (n >= bitcount) { - n -= bitcount; - subbitbuf += x >> (USHRT_BIT - bitcount); - x <<= bitcount; - if (compsize < origsize) { - if (fwrite(&subbitbuf, 1, 1, outfile) == 0) { - /* fileerror(WTERR, outfile); */ - fatal_error("Write error in crcio.c(putbits)\n"); - /* exit(errno); */ - } - compsize++; - } - else - unpackable = 1; - subbitbuf = 0; - bitcount = CHAR_BIT; - } - subbitbuf += x >> (USHRT_BIT - bitcount); - bitcount -= n; + x <<= USHRT_BIT - n; + while (n >= bitcount) + { + n -= bitcount; + subbitbuf += x >> (USHRT_BIT - bitcount); + x <<= bitcount; + if (compsize < origsize) + { + if (fwrite(&subbitbuf, 1, 1, outfile) == 0) + { + /* fileerror(WTERR, outfile); */ + fatal_error("Write error in crcio.c(putbits)\n"); + /* exit(errno); */ + } + compsize++; + } + else + unpackable = 1; + subbitbuf = 0; + bitcount = CHAR_BIT; + } + subbitbuf += x >> (USHRT_BIT - bitcount); + bitcount -= n; } #endif /* ------------------------------------------------------------------------ */ int fread_crc(unsigned char *p, int n, struct zfile *fp) { - n = zfile_fread(p, 1, n, fp); + n = zfile_fread(p, 1, n, fp); - calccrc(p, n); - return n; + calccrc(p, n); + return n; } /* ------------------------------------------------------------------------ */ void fwrite_crc(unsigned char *p, int n, struct zfile *fp) { - calccrc(p, n); - if (verify_mode) - return; + calccrc(p, n); + if (verify_mode) + return; - if (fp) { - zfile_fwrite(p, 1, n, fp); - } + if (fp) + { + zfile_fwrite(p, 1, n, fp); + } } /* ------------------------------------------------------------------------ */ void init_code_cache(void) -{ /* called from copyfile() in util.c */ +{ + /* called from copyfile() in util.c */ #ifdef EUC - putc_euc_cache = EOF; + putc_euc_cache = EOF; #endif - getc_euc_cache = EOF; + getc_euc_cache = EOF; } void init_getbits(void) { - lhabitbuf = 0; - subbitbuf = 0; - bitcount = 0; - fillbuf(2 * CHAR_BIT); + lhabitbuf = 0; + subbitbuf = 0; + bitcount = 0; + fillbuf(2 * CHAR_BIT); #ifdef EUC - putc_euc_cache = EOF; + putc_euc_cache = EOF; #endif } @@ -197,49 +210,54 @@ init_getbits(void) void init_putbits( /* void */ ) { - bitcount = CHAR_BIT; - subbitbuf = 0; - getc_euc_cache = EOF; + bitcount = CHAR_BIT; + subbitbuf = 0; + getc_euc_cache = EOF; } /* ------------------------------------------------------------------------ */ #ifdef EUC void putc_euc(c, fd) - int c; - FILE *fd; +int c; +FILE *fd; { - int d; + int d; - if (putc_euc_cache == EOF) { - if (!euc_mode || c < 0x81 || c > 0xFC) { - putc(c, fd); - return; - } - if (c >= 0xA0 && c < 0xE0) { - putc(0x8E, fd); /* single shift */ - putc(c, fd); - return; - } - putc_euc_cache = c; /* save first byte */ - return; - } - d = putc_euc_cache; - putc_euc_cache = EOF; - if (d >= 0xA0) - d -= 0xE0 - 0xA0; - if (c > 0x9E) { - c = c - 0x9F + 0x21; - d = (d - 0x81) * 2 + 0x22; - } - else { - if (c > 0x7E) - c--; - c -= 0x1F; - d = (d - 0x81) * 2 + 0x21; - } - putc(0x80 | d, fd); - putc(0x80 | c, fd); + if (putc_euc_cache == EOF) + { + if (!euc_mode || c < 0x81 || c > 0xFC) + { + putc(c, fd); + return; + } + if (c >= 0xA0 && c < 0xE0) + { + putc(0x8E, fd); /* single shift */ + putc(c, fd); + return; + } + putc_euc_cache = c; /* save first byte */ + return; + } + d = putc_euc_cache; + putc_euc_cache = EOF; + if (d >= 0xA0) + d -= 0xE0 - 0xA0; + if (c > 0x9E) + { + c = c - 0x9F + 0x21; + d = (d - 0x81) * 2 + 0x22; + } + else + { + if (c > 0x7E) + c--; + c -= 0x1F; + d = (d - 0x81) * 2 + 0x21; + } + putc(0x80 | d, fd); + putc(0x80 | c, fd); } #endif @@ -247,84 +265,96 @@ putc_euc(c, fd) int fwrite_txt(unsigned char *p, int n, FILE *fp) { - while (--n >= 0) { - if (*p != '\015' && *p != '\032') { + while (--n >= 0) + { + if (*p != '\015' && *p != '\032') + { #ifdef EUC - putc_euc(*p, fp); + putc_euc(*p, fp); #else - putc(*p, fp); + putc(*p, fp); #endif - } + } - prev_char = *p++; - } - return (ferror(fp)); + prev_char = *p++; + } + return (ferror(fp)); } /* ------------------------------------------------------------------------ */ int fread_txt(unsigned char *p, int n, FILE *fp) { - int c; - int cnt = 0; + int c; + int cnt = 0; - while (cnt < n) { - if (getc_euc_cache != EOF) { - c = getc_euc_cache; - getc_euc_cache = EOF; - } - else { - if ((c = fgetc(fp)) == EOF) - break; - if (c == '\n') { - getc_euc_cache = c; - ++origsize; - c = '\r'; - } + while (cnt < n) + { + if (getc_euc_cache != EOF) + { + c = getc_euc_cache; + getc_euc_cache = EOF; + } + else + { + if ((c = fgetc(fp)) == EOF) + break; + if (c == '\n') + { + getc_euc_cache = c; + ++origsize; + c = '\r'; + } #ifdef EUC - else if (euc_mode && (c == 0x8E || 0xA0 < c && c < 0xFF)) { - int d = fgetc(fp); - if (d == EOF) { - *p++ = c; - cnt++; - break; - } - if (c == 0x8E) { /* single shift (KANA) */ - if ((0x20 < d && d < 0x7F) || (0xA0 < d && d < 0xFF)) - c = d | 0x80; - else - getc_euc_cache = d; - } - else { - if (0xA0 < d && d < 0xFF) { /* if GR */ - c &= 0x7F; /* convert to MS-kanji */ - d &= 0x7F; - if (!(c & 1)) { - c--; - d += 0x7F - 0x21; - } - if ((d += 0x40 - 0x21) > 0x7E) - d++; - if ((c = (c >> 1) + 0x71) >= 0xA0) - c += 0xE0 - 0xA0; - } - getc_euc_cache = d; - } - } + else if (euc_mode && (c == 0x8E || 0xA0 < c && c < 0xFF)) + { + int d = fgetc(fp); + if (d == EOF) + { + *p++ = c; + cnt++; + break; + } + if (c == 0x8E) /* single shift (KANA) */ + { + if ((0x20 < d && d < 0x7F) || (0xA0 < d && d < 0xFF)) + c = d | 0x80; + else + getc_euc_cache = d; + } + else + { + if (0xA0 < d && d < 0xFF) /* if GR */ + { + c &= 0x7F; /* convert to MS-kanji */ + d &= 0x7F; + if (!(c & 1)) + { + c--; + d += 0x7F - 0x21; + } + if ((d += 0x40 - 0x21) > 0x7E) + d++; + if ((c = (c >> 1) + 0x71) >= 0xA0) + c += 0xE0 - 0xA0; + } + getc_euc_cache = d; + } + } #endif - } - *p++ = c; - cnt++; - } - return cnt; + } + *p++ = c; + cnt++; + } + return cnt; } /* ------------------------------------------------------------------------ */ unsigned short calc_header_crc(unsigned char *p, unsigned int n) /* Thanks T.Okamoto */ { - crc = 0; - while (n-- > 0) - UPDATE_CRC(*p++); - return crc; + crc = 0; + while (n-- > 0) + UPDATE_CRC(*p++); + return crc; } diff --git a/src/archivers/lha/dhuf.cpp b/src/archivers/lha/dhuf.cpp index d87c0074..98e66cbb 100644 --- a/src/archivers/lha/dhuf.cpp +++ b/src/archivers/lha/dhuf.cpp @@ -10,7 +10,7 @@ /* ------------------------------------------------------------------------ */ static short child[TREESIZE], parent[TREESIZE], block[TREESIZE], edge[TREESIZE], stock[TREESIZE], - s_node[TREESIZE / 2]; /* Changed N.Watazaki */ + s_node[TREESIZE / 2]; /* Changed N.Watazaki */ /* node[..] -> s_node[..] */ static unsigned short freq[TREESIZE]; @@ -23,319 +23,356 @@ static unsigned long nextcount; void start_c_dyn(void) { - int i, j, f; + int i, j, f; - n1 = (n_max >= 256 + maxmatch - THRESHOLD + 1) ? 512 : n_max - 1; - for (i = 0; i < TREESIZE_C; i++) { - stock[i] = i; - block[i] = 0; - } - for (i = 0, j = n_max * 2 - 2; i < n_max; i++, j--) { - freq[j] = 1; - child[j] = ~i; - s_node[i] = j; - block[j] = 1; - } - avail = 2; - edge[1] = n_max - 1; - i = n_max * 2 - 2; - while (j >= 0) { - f = freq[j] = freq[i] + freq[i - 1]; - child[j] = i; - parent[i] = parent[i - 1] = j; - if (f == freq[j + 1]) { - edge[block[j] = block[j + 1]] = j; - } - else { - edge[block[j] = stock[avail++]] = j; - } - i -= 2; - j--; - } + n1 = (n_max >= 256 + maxmatch - THRESHOLD + 1) ? 512 : n_max - 1; + for (i = 0; i < TREESIZE_C; i++) + { + stock[i] = i; + block[i] = 0; + } + for (i = 0, j = n_max * 2 - 2; i < n_max; i++, j--) + { + freq[j] = 1; + child[j] = ~i; + s_node[i] = j; + block[j] = 1; + } + avail = 2; + edge[1] = n_max - 1; + i = n_max * 2 - 2; + while (j >= 0) + { + f = freq[j] = freq[i] + freq[i - 1]; + child[j] = i; + parent[i] = parent[i - 1] = j; + if (f == freq[j + 1]) + { + edge[block[j] = block[j + 1]] = j; + } + else + { + edge[block[j] = stock[avail++]] = j; + } + i -= 2; + j--; + } } /* ------------------------------------------------------------------------ */ static void start_p_dyn(void) { - freq[ROOT_P] = 1; - child[ROOT_P] = ~(N_CHAR); - s_node[N_CHAR] = ROOT_P; - edge[block[ROOT_P] = stock[avail++]] = ROOT_P; - most_p = ROOT_P; - total_p = 0; - nn = 1 << dicbit; - nextcount = 64; + freq[ROOT_P] = 1; + child[ROOT_P] = ~(N_CHAR); + s_node[N_CHAR] = ROOT_P; + edge[block[ROOT_P] = stock[avail++]] = ROOT_P; + most_p = ROOT_P; + total_p = 0; + nn = 1 << dicbit; + nextcount = 64; } /* ------------------------------------------------------------------------ */ void decode_start_dyn(void) { - n_max = 286; - maxmatch = MAXMATCH; - init_getbits(); - start_c_dyn(); - start_p_dyn(); + n_max = 286; + maxmatch = MAXMATCH; + init_getbits(); + start_c_dyn(); + start_p_dyn(); } /* ------------------------------------------------------------------------ */ static void reconst(int start, int end) { - int i, j, k, l, b; - unsigned int f, g; + int i, j, k, l, b; + unsigned int f, g; - for (i = j = start; i < end; i++) { - if ((k = child[i]) < 0) { - freq[j] = (freq[i] + 1) / 2; - child[j] = k; - j++; - } - if (edge[b = block[i]] == i) { - stock[--avail] = b; - } - } - j--; - i = end - 1; - l = end - 2; - while (i >= start) { - while (i >= l) { - freq[i] = freq[j]; - child[i] = child[j]; - i--, j--; - } - f = freq[l] + freq[l + 1]; - for (k = start; f < freq[k]; k++); - while (j >= k) { - freq[i] = freq[j]; - child[i] = child[j]; - i--, j--; - } - freq[i] = f; - child[i] = l + 1; - i--; - l -= 2; - } - f = 0; - for (i = start; i < end; i++) { - if ((j = child[i]) < 0) - s_node[~j] = i; - else - parent[j] = parent[j - 1] = i; - if ((g = freq[i]) == f) { - block[i] = b; - } - else { - edge[b = block[i] = stock[avail++]] = i; - f = g; - } - } + for (i = j = start; i < end; i++) + { + if ((k = child[i]) < 0) + { + freq[j] = (freq[i] + 1) / 2; + child[j] = k; + j++; + } + if (edge[b = block[i]] == i) + { + stock[--avail] = b; + } + } + j--; + i = end - 1; + l = end - 2; + while (i >= start) + { + while (i >= l) + { + freq[i] = freq[j]; + child[i] = child[j]; + i--, j--; + } + f = freq[l] + freq[l + 1]; + for (k = start; f < freq[k]; k++); + while (j >= k) + { + freq[i] = freq[j]; + child[i] = child[j]; + i--, j--; + } + freq[i] = f; + child[i] = l + 1; + i--; + l -= 2; + } + f = 0; + for (i = start; i < end; i++) + { + if ((j = child[i]) < 0) + s_node[~j] = i; + else + parent[j] = parent[j - 1] = i; + if ((g = freq[i]) == f) + { + block[i] = b; + } + else + { + edge[b = block[i] = stock[avail++]] = i; + f = g; + } + } } /* ------------------------------------------------------------------------ */ static int swap_inc(int p) { - int b, q, r, s; + int b, q, r, s; - b = block[p]; - if ((q = edge[b]) != p) { /* swap for leader */ - r = child[p]; - s = child[q]; - child[p] = s; - child[q] = r; - if (r >= 0) - parent[r] = parent[r - 1] = q; - else - s_node[~r] = q; - if (s >= 0) - parent[s] = parent[s - 1] = p; - else - s_node[~s] = p; - p = q; - goto Adjust; - } - else if (b == block[p + 1]) { + b = block[p]; + if ((q = edge[b]) != p) /* swap for leader */ + { + r = child[p]; + s = child[q]; + child[p] = s; + child[q] = r; + if (r >= 0) + parent[r] = parent[r - 1] = q; + else + s_node[~r] = q; + if (s >= 0) + parent[s] = parent[s - 1] = p; + else + s_node[~s] = p; + p = q; + goto Adjust; + } + else if (b == block[p + 1]) + { Adjust: - edge[b]++; - if (++freq[p] == freq[p - 1]) { - block[p] = block[p - 1]; - } - else { - edge[block[p] = stock[avail++]] = p; /* create block */ - } - } - else if (++freq[p] == freq[p - 1]) { - stock[--avail] = b; /* delete block */ - block[p] = block[p - 1]; - } - return parent[p]; + edge[b]++; + if (++freq[p] == freq[p - 1]) + { + block[p] = block[p - 1]; + } + else + { + edge[block[p] = stock[avail++]] = p; /* create block */ + } + } + else if (++freq[p] == freq[p - 1]) + { + stock[--avail] = b; /* delete block */ + block[p] = block[p - 1]; + } + return parent[p]; } /* ------------------------------------------------------------------------ */ static void update_c(int p) { - int q; + int q; - if (freq[ROOT_C] == 0x8000) { - reconst(0, n_max * 2 - 1); - } - freq[ROOT_C]++; - q = s_node[p]; - do { - q = swap_inc(q); - } while (q != ROOT_C); + if (freq[ROOT_C] == 0x8000) + { + reconst(0, n_max * 2 - 1); + } + freq[ROOT_C]++; + q = s_node[p]; + do + { + q = swap_inc(q); + } + while (q != ROOT_C); } /* ------------------------------------------------------------------------ */ static void update_p(int p) { - int q; + int q; - if (total_p == 0x8000) { - reconst(ROOT_P, most_p + 1); - total_p = freq[ROOT_P]; - freq[ROOT_P] = 0xffff; - } - q = s_node[p + N_CHAR]; - while (q != ROOT_P) { - q = swap_inc(q); - } - total_p++; + if (total_p == 0x8000) + { + reconst(ROOT_P, most_p + 1); + total_p = freq[ROOT_P]; + freq[ROOT_P] = 0xffff; + } + q = s_node[p + N_CHAR]; + while (q != ROOT_P) + { + q = swap_inc(q); + } + total_p++; } /* ------------------------------------------------------------------------ */ static void make_new_node(int p) { - int q, r; + int q, r; - r = most_p + 1; - q = r + 1; - s_node[~(child[r] = child[most_p])] = r; - child[q] = ~(p + N_CHAR); - child[most_p] = q; - freq[r] = freq[most_p]; - freq[q] = 0; - block[r] = block[most_p]; - if (most_p == ROOT_P) { - freq[ROOT_P] = 0xffff; - edge[block[ROOT_P]]++; - } - parent[r] = parent[q] = most_p; - edge[block[q] = stock[avail++]] = s_node[p + N_CHAR] = most_p = q; - update_p(p); + r = most_p + 1; + q = r + 1; + s_node[~(child[r] = child[most_p])] = r; + child[q] = ~(p + N_CHAR); + child[most_p] = q; + freq[r] = freq[most_p]; + freq[q] = 0; + block[r] = block[most_p]; + if (most_p == ROOT_P) + { + freq[ROOT_P] = 0xffff; + edge[block[ROOT_P]]++; + } + parent[r] = parent[q] = most_p; + edge[block[q] = stock[avail++]] = s_node[p + N_CHAR] = most_p = q; + update_p(p); } #if 0 /* ------------------------------------------------------------------------ */ static void encode_c_dyn(c) - unsigned int c; +unsigned int c; { - unsigned int bits; - int p, d, cnt; + unsigned int bits; + int p, d, cnt; - d = c - n1; - if (d >= 0) { - c = n1; - } - cnt = bits = 0; - p = s_node[c]; - do { - bits >>= 1; - if (p & 1) { - bits |= 0x8000; - } - if (++cnt == 16) { - putcode(16, bits); - cnt = bits = 0; - } - } while ((p = parent[p]) != ROOT_C); - putcode(cnt, bits); - if (d >= 0) - putbits(8, d); - update_c(c); + d = c - n1; + if (d >= 0) + { + c = n1; + } + cnt = bits = 0; + p = s_node[c]; + do + { + bits >>= 1; + if (p & 1) + { + bits |= 0x8000; + } + if (++cnt == 16) + { + putcode(16, bits); + cnt = bits = 0; + } + } + while ((p = parent[p]) != ROOT_C); + putcode(cnt, bits); + if (d >= 0) + putbits(8, d); + update_c(c); } #endif /* ------------------------------------------------------------------------ */ unsigned short decode_c_dyn(void) { - int c; - short buf, cnt; + int c; + short buf, cnt; - c = child[ROOT_C]; - buf = lhabitbuf; - cnt = 0; - do { - c = child[c - (buf < 0)]; - buf <<= 1; - if (++cnt == 16) { - fillbuf(16); - buf = lhabitbuf; - cnt = 0; - } - } while (c > 0); - fillbuf(cnt); - c = ~c; - update_c(c); - if (c == n1) - c += getbits(8); - return c; + c = child[ROOT_C]; + buf = lhabitbuf; + cnt = 0; + do + { + c = child[c - (buf < 0)]; + buf <<= 1; + if (++cnt == 16) + { + fillbuf(16); + buf = lhabitbuf; + cnt = 0; + } + } + while (c > 0); + fillbuf(cnt); + c = ~c; + update_c(c); + if (c == n1) + c += getbits(8); + return c; } /* ------------------------------------------------------------------------ */ unsigned short decode_p_dyn(void) { - int c; - short buf, cnt; + int c; + short buf, cnt; - while (lhcount > nextcount) { - make_new_node(nextcount / 64); - if ((nextcount += 64) >= nn) - nextcount = 0xffffffff; - } - c = child[ROOT_P]; - buf = lhabitbuf; - cnt = 0; - while (c > 0) { - c = child[c - (buf < 0)]; - buf <<= 1; - if (++cnt == 16) { - fillbuf(16); - buf = lhabitbuf; - cnt = 0; - } - } - fillbuf(cnt); - c = (~c) - N_CHAR; - update_p(c); + while (lhcount > nextcount) + { + make_new_node(nextcount / 64); + if ((nextcount += 64) >= nn) + nextcount = 0xffffffff; + } + c = child[ROOT_P]; + buf = lhabitbuf; + cnt = 0; + while (c > 0) + { + c = child[c - (buf < 0)]; + buf <<= 1; + if (++cnt == 16) + { + fillbuf(16); + buf = lhabitbuf; + cnt = 0; + } + } + fillbuf(cnt); + c = (~c) - N_CHAR; + update_p(c); - return (c << 6) + getbits(6); + return (c << 6) + getbits(6); } #if 0 /* ------------------------------------------------------------------------ */ void output_dyn(code, pos) - unsigned int code; - unsigned int pos; +unsigned int code; +unsigned int pos; { - encode_c_dyn(code); - if (code >= 0x100) { - encode_p_st0(pos); - } + encode_c_dyn(code); + if (code >= 0x100) + { + encode_p_st0(pos); + } } /* ------------------------------------------------------------------------ */ void encode_end_dyn( /* void */ ) { - putcode(7, 0); + putcode(7, 0); } #endif /* Local Variables: */ diff --git a/src/archivers/lha/header.cpp b/src/archivers/lha/header.cpp index 69def200..0be80a25 100644 --- a/src/archivers/lha/header.cpp +++ b/src/archivers/lha/header.cpp @@ -18,114 +18,121 @@ static char *get_ptr; /* ------------------------------------------------------------------------ */ int calc_sum(char *p, int len) { - register int sum; + register int sum; - for (sum = 0; len; len--) - sum += *p++; + for (sum = 0; len; len--) + sum += *p++; - return sum & 0xff; + return sum & 0xff; } /* ------------------------------------------------------------------------ */ static unsigned short get_word (void) { - int b0, b1; + int b0, b1; - b0 = get_byte (); - b1 = get_byte (); - return (b1 << 8) + b0; + b0 = get_byte (); + b1 = get_byte (); + return (b1 << 8) + b0; } /* ------------------------------------------------------------------------ */ static void put_word (unsigned int v) { - put_byte (v); - put_byte (v >> 8); + put_byte (v); + put_byte (v >> 8); } /* ------------------------------------------------------------------------ */ static long get_longword(void) { - long b0, b1, b2, b3; + long b0, b1, b2, b3; - b0 = get_byte (); - b1 = get_byte (); - b2 = get_byte (); - b3 = get_byte (); - return (b3 << 24) + (b2 << 16) + (b1 << 8) + b0; + b0 = get_byte (); + b1 = get_byte (); + b2 = get_byte (); + b3 = get_byte (); + return (b3 << 24) + (b2 << 16) + (b1 << 8) + b0; } /* ------------------------------------------------------------------------ */ static void put_longword(long v) { - put_byte (v); - put_byte (v >> 8); - put_byte (v >> 16); - put_byte (v >> 24); + put_byte (v); + put_byte (v >> 8); + put_byte (v >> 16); + put_byte (v >> 24); } /* ------------------------------------------------------------------------ */ static void msdos_to_unix_filename(char *name, int len) { - register int i; + register int i; #ifdef MULTIBYTE_CHAR - for (i = 0; i < len; i++) { - if (MULTIBYTE_FIRST_P(name[i]) && - MULTIBYTE_SECOND_P(name[i + 1])) - i++; - else if (name[i] == '\\') - name[i] = '/'; - else if (!noconvertcase && isupper(name[i])) - name[i] = tolower(name[i]); - } + for (i = 0; i < len; i++) + { + if (MULTIBYTE_FIRST_P(name[i]) && + MULTIBYTE_SECOND_P(name[i + 1])) + i++; + else if (name[i] == '\\') + name[i] = '/'; + else if (!noconvertcase && isupper(name[i])) + name[i] = tolower(name[i]); + } #else - for (i = 0; i < len; i++) { - if (name[i] == '\\') - name[i] = '/'; - else if (!noconvertcase && isupper(name[i])) - name[i] = tolower(name[i]); - } + for (i = 0; i < len; i++) + { + if (name[i] == '\\') + name[i] = '/'; + else if (!noconvertcase && isupper(name[i])) + name[i] = tolower(name[i]); + } #endif } /* ------------------------------------------------------------------------ */ static void generic_to_unix_filename(char *name, int len) { - register int i; - boolean lower_case_used = FALSE; + register int i; + boolean lower_case_used = FALSE; #ifdef MULTIBYTE_CHAR - for (i = 0; i < len; i++) { - if (MULTIBYTE_FIRST_P(name[i]) && - MULTIBYTE_SECOND_P(name[i + 1])) - i++; - else if (islower(name[i])) { - lower_case_used = TRUE; - break; - } - } - for (i = 0; i < len; i++) { - if (MULTIBYTE_FIRST_P(name[i]) && - MULTIBYTE_SECOND_P(name[i + 1])) - i++; - else if (name[i] == '\\') - name[i] = '/'; - else if (!noconvertcase && !lower_case_used && isupper(name[i])) - name[i] = tolower(name[i]); - } + for (i = 0; i < len; i++) + { + if (MULTIBYTE_FIRST_P(name[i]) && + MULTIBYTE_SECOND_P(name[i + 1])) + i++; + else if (islower(name[i])) + { + lower_case_used = TRUE; + break; + } + } + for (i = 0; i < len; i++) + { + if (MULTIBYTE_FIRST_P(name[i]) && + MULTIBYTE_SECOND_P(name[i + 1])) + i++; + else if (name[i] == '\\') + name[i] = '/'; + else if (!noconvertcase && !lower_case_used && isupper(name[i])) + name[i] = tolower(name[i]); + } #else - for (i = 0; i < len; i++) - if (islower(name[i])) { - lower_case_used = TRUE; - break; - } - for (i = 0; i < len; i++) { - if (name[i] == '\\') - name[i] = '/'; - else if (!noconvertcase && !lower_case_used && isupper(name[i])) - name[i] = tolower(name[i]); - } + for (i = 0; i < len; i++) + if (islower(name[i])) + { + lower_case_used = TRUE; + break; + } + for (i = 0; i < len; i++) + { + if (name[i] == '\\') + name[i] = '/'; + else if (!noconvertcase && !lower_case_used && isupper(name[i])) + name[i] = tolower(name[i]); + } #endif } @@ -133,28 +140,30 @@ static void generic_to_unix_filename(char *name, int len) static void macos_to_unix_filename(char *name, int len) { - register int i; + register int i; - for (i = 0; i < len; i++) { - if (name[i] == ':') - name[i] = '/'; - else if (name[i] == '/') - name[i] = ':'; - } + for (i = 0; i < len; i++) + { + if (name[i] == ':') + name[i] = '/'; + else if (name[i] == '/') + name[i] = ':'; + } } /* ------------------------------------------------------------------------ */ static void unix_to_generic_filename(char *name, int len) { - register int i; + register int i; - for (i = 0; i < len; i++) { - if (name[i] == '/') - name[i] = '\\'; - else if (islower(name[i])) - name[i] = toupper(name[i]); - } + for (i = 0; i < len; i++) + { + if (name[i] == '/') + name[i] = '\\'; + else if (islower(name[i])) + name[i] = toupper(name[i]); + } } /* ------------------------------------------------------------------------ */ @@ -226,18 +235,18 @@ static long gettz() #ifdef TZSET { - tzset(); - return timezone; + tzset(); + return timezone; } #endif /* ------------------------------------------------------------------------ */ #if !defined(TZSET) && defined(FTIME) { - struct timeb buf; + struct timeb buf; - ftime(&buf); - return buf.timezone * 60L; + ftime(&buf); + return buf.timezone * 60L; } #endif @@ -245,19 +254,19 @@ gettz() #if !defined(TZSET) && !defined(FTIME) /* maybe defined(GETTIMEOFDAY) */ { #ifdef HAVE_TM_ZONE - time_t tt; + time_t tt; - time(&tt); - return -localtime(&tt)->tm_gmtoff; + time(&tt); + return -localtime(&tt)->tm_gmtoff; #else /* HAVE_TM_ZONE */ - struct timeval tp; - struct timezone tzp; - gettimeofday(&tp, &tzp);/* specific to 4.3BSD */ - /* - * return (tzp.tz_minuteswest * 60L + (tzp.tz_dsttime != 0 ? 60L * - * 60L : 0)); - */ - return (tzp.tz_minuteswest * 60L); + struct timeval tp; + struct timezone tzp; + gettimeofday(&tp, &tzp);/* specific to 4.3BSD */ + /* + * return (tzp.tz_minuteswest * 60L + (tzp.tz_dsttime != 0 ? 60L * + * 60L : 0)); + */ + return (tzp.tz_minuteswest * 60L); #endif /* HAVE_TM_ZONE */ } #endif @@ -268,17 +277,17 @@ gettz() #ifdef NOT_USED static struct tm * msdos_to_unix_stamp_tm(a) - long a; +long a; { - static struct tm t; + static struct tm t; - t.tm_sec = (a & 0x1f) * 2; - t.tm_min = (a >> 5) & 0x3f; - t.tm_hour = (a >> 11) & 0x1f; - t.tm_mday = (a >> 16) & 0x1f; - t.tm_mon = ((a >> 16 + 5) & 0x0f) - 1; - t.tm_year = ((a >> 16 + 9) & 0x7f) + 80; - return &t; + t.tm_sec = (a & 0x1f) * 2; + t.tm_min = (a >> 5) & 0x3f; + t.tm_hour = (a >> 11) & 0x1f; + t.tm_mday = (a >> 16) & 0x1f; + t.tm_mon = ((a >> 16 + 5) & 0x0f) - 1; + t.tm_year = ((a >> 16 + 9) & 0x7f) + 80; + return &t; } #endif @@ -286,86 +295,87 @@ msdos_to_unix_stamp_tm(a) static time_t generic_to_unix_stamp(long t) #if defined(MKTIME) || defined(TIMELOCAL) { - struct tm dostm; + struct tm dostm; - /* - * special case: if MSDOS format date and time were zero, then we - * set time to be zero here too. - */ - if (t == 0) - return (time_t) 0; + /* + * special case: if MSDOS format date and time were zero, then we + * set time to be zero here too. + */ + if (t == 0) + return (time_t) 0; - dostm.tm_sec = (t & 0x1f) * 2; - dostm.tm_min = t >> 5 & 0x3f; - dostm.tm_hour = t >> 11 & 0x1f; - dostm.tm_mday = t >> 16 & 0x1f; - dostm.tm_mon = ((t >> 16) + 5 & 0x0f) - 1; /* 0..11 */ - dostm.tm_year = ((t >> 16) + 9 & 0x7f) + 80; + dostm.tm_sec = (t & 0x1f) * 2; + dostm.tm_min = t >> 5 & 0x3f; + dostm.tm_hour = t >> 11 & 0x1f; + dostm.tm_mday = t >> 16 & 0x1f; + dostm.tm_mon = ((t >> 16) + 5 & 0x0f) - 1; /* 0..11 */ + dostm.tm_year = ((t >> 16) + 9 & 0x7f) + 80; #if 0 - dostm.tm_isdst = 0; /* correct? */ + dostm.tm_isdst = 0; /* correct? */ #endif - dostm.tm_isdst = -1; /* correct? */ + dostm.tm_isdst = -1; /* correct? */ #ifdef MKTIME - return (time_t) mktime(&dostm); + return (time_t) mktime(&dostm); #else /* maybe defined(TIMELOCAL) */ - return (time_t) timelocal(&dostm); + return (time_t) timelocal(&dostm); #endif } #else /* defined(MKTIME) || defined(TIMELOCAL) */ { - int year, month, day, hour, min, sec; - long longtime; - static unsigned int dsboy[12] = {0, 31, 59, 90, 120, 151, - 181, 212, 243, 273, 304, 334}; - unsigned int days; + int year, month, day, hour, min, sec; + long longtime; + static unsigned int dsboy[12] = {0, 31, 59, 90, 120, 151, + 181, 212, 243, 273, 304, 334 + }; + unsigned int days; - /* - * special case: if MSDOS format date and time were zero, then we - * set time to be zero here too. - */ - if (t == 0) - return (time_t) 0; + /* + * special case: if MSDOS format date and time were zero, then we + * set time to be zero here too. + */ + if (t == 0) + return (time_t) 0; - year = ((int) ((t >> 16) + 9) & 0x7f) + 1980; - month = (int) ((t >> 16) + 5) & 0x0f; /* 1..12 means Jan..Dec */ - day = (int) (t >> 16) & 0x1f; /* 1..31 means 1st,...31st */ + year = ((int) ((t >> 16) + 9) & 0x7f) + 1980; + month = (int) ((t >> 16) + 5) & 0x0f; /* 1..12 means Jan..Dec */ + day = (int) (t >> 16) & 0x1f; /* 1..31 means 1st,...31st */ - hour = ((int) t >> 11) & 0x1f; - min = ((int) t >> 5) & 0x3f; - sec = ((int) t & 0x1f) * 2; + hour = ((int) t >> 11) & 0x1f; + min = ((int) t >> 5) & 0x3f; + sec = ((int) t & 0x1f) * 2; - /* Calculate days since 1970.01.01 */ - days = (365 * (year - 1970) + /* days due to whole years */ - (year - 1970 + 1) / 4 + /* days due to leap years */ - dsboy[month - 1] + /* days since beginning of this year */ - day - 1); /* days since beginning of month */ + /* Calculate days since 1970.01.01 */ + days = (365 * (year - 1970) + /* days due to whole years */ + (year - 1970 + 1) / 4 + /* days due to leap years */ + dsboy[month - 1] + /* days since beginning of this year */ + day - 1); /* days since beginning of month */ - if ((year % 4 == 0) && - (year % 100 != 0 || year % 400 == 0) && /* 1999.5.24 t.oka */ - (month >= 3)) /* if this is a leap year and month */ - days++; /* is March or later, add a day */ + if ((year % 4 == 0) && + (year % 100 != 0 || year % 400 == 0) && /* 1999.5.24 t.oka */ + (month >= 3)) /* if this is a leap year and month */ + days++; /* is March or later, add a day */ - /* Knowing the days, we can find seconds */ - longtime = (((days * 24) + hour) * 60 + min) * 60 + sec; - longtime += gettz(); /* adjust for timezone */ + /* Knowing the days, we can find seconds */ + longtime = (((days * 24) + hour) * 60 + min) * 60 + sec; + longtime += gettz(); /* adjust for timezone */ - /* LONGTIME is now the time in seconds, since 1970/01/01 00:00:00. */ - return (time_t) longtime; + /* LONGTIME is now the time in seconds, since 1970/01/01 00:00:00. */ + return (time_t) longtime; } #endif /* defined(MKTIME) || defined(TIMELOCAL) */ /* ------------------------------------------------------------------------ */ static long unix_to_generic_stamp(time_t t) { - struct tm *tm = localtime(&t); + struct tm *tm = localtime(&t); - return ((((long) (tm->tm_year - 80)) << 25) + - (((long) (tm->tm_mon + 1)) << 21) + - (((long) tm->tm_mday) << 16) + - (long) ((tm->tm_hour << 11) + - (tm->tm_min << 5) + - (tm->tm_sec / 2))); + return ((((long) (tm->tm_year - 80)) << 25) + + (((long) (tm->tm_mon + 1)) << 21) + + (((long) tm->tm_mday) << 16) + + (long) ((tm->tm_hour << 11) + + (tm->tm_min << 5) + + (tm->tm_sec / 2))); } /* ------------------------------------------------------------------------ */ @@ -373,321 +383,356 @@ static long unix_to_generic_stamp(time_t t) /* ------------------------------------------------------------------------ */ boolean get_header(struct zfile *fp, LzHeader *hdr) { - int header_size; - int name_length; - char data[LZHEADER_STRAGE]; - char dirname[FILENAME_LENGTH]; - int dir_length = 0; - int checksum; - int i; - char *ptr; - int extend_size; - int dmy; + int header_size; + int name_length; + char data[LZHEADER_STRAGE]; + char dirname[FILENAME_LENGTH]; + int dir_length = 0; + int checksum; + int i; + char *ptr; + int extend_size; + int dmy; - bzero(hdr, sizeof(LzHeader)); + bzero(hdr, sizeof(LzHeader)); - if (((header_size = zfile_getc(fp)) == EOF) || (header_size == 0)) { - return FALSE; /* finish */ - } + if (((header_size = zfile_getc(fp)) == EOF) || (header_size == 0)) + { + return FALSE; /* finish */ + } - if (zfile_fread(data + I_HEADER_CHECKSUM, - sizeof(char), header_size - 1, fp) < header_size - 1) { - fatal_error(_T("Invalid header (LHarc file ?)")); - return FALSE; /* finish */ - } - setup_get(data + I_HEADER_LEVEL); - hdr->header_level = get_byte (); - if (hdr->header_level != 2 && - zfile_fread(data + header_size, sizeof(char), 2, fp) < 2) { - fatal_error(_T("Invalid header (LHarc file ?)")); - return FALSE; /* finish */ - } + if (zfile_fread(data + I_HEADER_CHECKSUM, + sizeof(char), header_size - 1, fp) < header_size - 1) + { + fatal_error(_T("Invalid header (LHarc file ?)")); + return FALSE; /* finish */ + } + setup_get(data + I_HEADER_LEVEL); + hdr->header_level = get_byte (); + if (hdr->header_level != 2 && + zfile_fread(data + header_size, sizeof(char), 2, fp) < 2) + { + fatal_error(_T("Invalid header (LHarc file ?)")); + return FALSE; /* finish */ + } - if (hdr->header_level >= 3) { - fatal_error(_T("Unknown level header")); - return FALSE; - } + if (hdr->header_level >= 3) + { + fatal_error(_T("Unknown level header")); + return FALSE; + } - setup_get(data + I_HEADER_CHECKSUM); - checksum = get_byte (); + setup_get(data + I_HEADER_CHECKSUM); + checksum = get_byte (); - if (hdr->header_level == 2) { - hdr->header_size = header_size + checksum*256; - } else { - hdr->header_size = header_size; - } - bcopy(data + I_METHOD, hdr->method, METHOD_TYPE_STRAGE); - setup_get(data + I_PACKED_SIZE); - hdr->packed_size = get_longword(); - hdr->original_size = get_longword(); - hdr->last_modified_stamp = get_longword(); - hdr->attribute = get_byte (); + if (hdr->header_level == 2) + { + hdr->header_size = header_size + checksum*256; + } + else + { + hdr->header_size = header_size; + } + bcopy(data + I_METHOD, hdr->method, METHOD_TYPE_STRAGE); + setup_get(data + I_PACKED_SIZE); + hdr->packed_size = get_longword(); + hdr->original_size = get_longword(); + hdr->last_modified_stamp = get_longword(); + hdr->attribute = get_byte (); - if ((hdr->header_level = get_byte ()) != 2) { - if (calc_sum(data + I_METHOD, header_size) != checksum) - warning(_T("Checksum error (LHarc file?)"), _T("")); - name_length = get_byte (); - for (i = 0; i < name_length; i++) - hdr->name[i] = (char) get_byte (); - hdr->name[name_length] = '\0'; - } - else { - hdr->unix_last_modified_stamp = hdr->last_modified_stamp; - name_length = 0; - } + if ((hdr->header_level = get_byte ()) != 2) + { + if (calc_sum(data + I_METHOD, header_size) != checksum) + warning(_T("Checksum error (LHarc file?)"), _T("")); + name_length = get_byte (); + for (i = 0; i < name_length; i++) + hdr->name[i] = (char) get_byte (); + hdr->name[name_length] = '\0'; + } + else + { + hdr->unix_last_modified_stamp = hdr->last_modified_stamp; + name_length = 0; + } - /* defaults for other type */ - hdr->unix_mode = UNIX_FILE_REGULAR | UNIX_RW_RW_RW; - hdr->unix_gid = 0; - hdr->unix_uid = 0; + /* defaults for other type */ + hdr->unix_mode = UNIX_FILE_REGULAR | UNIX_RW_RW_RW; + hdr->unix_gid = 0; + hdr->unix_uid = 0; - if (hdr->header_level == 0) { - extend_size = header_size - name_length -22; - if (extend_size < 0) { - if (extend_size == -2) { - hdr->extend_type = EXTEND_GENERIC; - hdr->has_crc = FALSE; - } else { - fatal_error(_T("Unkonwn header (lha file?)")); - return FALSE; - } - } else { - hdr->has_crc = TRUE; - hdr->crc = get_word (); - } + if (hdr->header_level == 0) + { + extend_size = header_size - name_length -22; + if (extend_size < 0) + { + if (extend_size == -2) + { + hdr->extend_type = EXTEND_GENERIC; + hdr->has_crc = FALSE; + } + else + { + fatal_error(_T("Unkonwn header (lha file?)")); + return FALSE; + } + } + else + { + hdr->has_crc = TRUE; + hdr->crc = get_word (); + } - if (extend_size >= 1) { - hdr->extend_type = get_byte (); - extend_size--; - } - if (hdr->extend_type == EXTEND_UNIX || hdr->extend_type == EXTEND_AMIGAOS) { - if (extend_size >= 11) { - hdr->minor_version = get_byte (); - hdr->unix_last_modified_stamp = (time_t) get_longword(); - hdr->unix_mode = get_word (); - hdr->unix_uid = get_word (); - hdr->unix_gid = get_word (); - extend_size -= 11; - } else { - hdr->extend_type = EXTEND_GENERIC; - } - } - while (extend_size-- > 0) - dmy = get_byte (); - if (hdr->extend_type == EXTEND_UNIX) - return TRUE; - } else if (hdr->header_level == 1) { - hdr->has_crc = TRUE; - extend_size = header_size - name_length-25; - hdr->crc = get_word (); - hdr->extend_type = get_byte (); - while (extend_size-- > 0) - dmy = get_byte (); - } else { /* level 2 */ - hdr->has_crc = TRUE; - hdr->crc = get_word (); - hdr->extend_type = get_byte (); - } + if (extend_size >= 1) + { + hdr->extend_type = get_byte (); + extend_size--; + } + if (hdr->extend_type == EXTEND_UNIX || hdr->extend_type == EXTEND_AMIGAOS) + { + if (extend_size >= 11) + { + hdr->minor_version = get_byte (); + hdr->unix_last_modified_stamp = (time_t) get_longword(); + hdr->unix_mode = get_word (); + hdr->unix_uid = get_word (); + hdr->unix_gid = get_word (); + extend_size -= 11; + } + else + { + hdr->extend_type = EXTEND_GENERIC; + } + } + while (extend_size-- > 0) + dmy = get_byte (); + if (hdr->extend_type == EXTEND_UNIX) + return TRUE; + } + else if (hdr->header_level == 1) + { + hdr->has_crc = TRUE; + extend_size = header_size - name_length-25; + hdr->crc = get_word (); + hdr->extend_type = get_byte (); + while (extend_size-- > 0) + dmy = get_byte (); + } + else /* level 2 */ + { + hdr->has_crc = TRUE; + hdr->crc = get_word (); + hdr->extend_type = get_byte (); + } - if (hdr->header_level > 0) { - /* Extend Header */ - if (hdr->header_level != 2) - setup_get(data + hdr->header_size); - ptr = get_ptr; - while ((header_size = get_word ()) != 0) { - if (hdr->header_level != 2 && - ((data + LZHEADER_STRAGE - get_ptr < header_size) || - zfile_fread(get_ptr, sizeof(char), header_size, fp) < header_size)) { - fatal_error(_T("Invalid header (LHa file ?)")); - return FALSE; - } - switch (get_byte ()) { - case 0: - /* - * header crc - */ - setup_get(get_ptr + header_size - 3); - break; - case 1: - /* - * filename - */ - if (header_size >= 256) - return FALSE; - for (i = 0; i < header_size - 3; i++) - hdr->name[i] = (char) get_byte (); - hdr->name[header_size - 3] = '\0'; - name_length = header_size - 3; - break; - case 2: - /* - * directory - */ - if (header_size >= FILENAME_LENGTH) - return FALSE; - for (i = 0; i < header_size - 3; i++) - dirname[i] = (char) get_byte (); - dirname[header_size - 3] = '\0'; - convdelim((unsigned char*)dirname, DELIM); - dir_length = header_size - 3; - break; - case 0x40: - /* - * MS-DOS attribute - */ - if (hdr->extend_type == EXTEND_MSDOS || - hdr->extend_type == EXTEND_HUMAN || - hdr->extend_type == EXTEND_AMIGAOS || - hdr->extend_type == EXTEND_GENERIC) - hdr->attribute = get_word (); - break; - case 0x50: - /* - * UNIX permission - */ - if (hdr->extend_type == EXTEND_UNIX) - hdr->unix_mode = get_word (); - break; - case 0x51: - /* - * UNIX gid and uid - */ - if (hdr->extend_type == EXTEND_UNIX) { - hdr->unix_gid = get_word (); - hdr->unix_uid = get_word (); - } - break; - case 0x52: - /* - * UNIX group name - */ - setup_get(get_ptr + header_size - 3); - break; - case 0x53: - /* - * UNIX user name - */ - setup_get(get_ptr + header_size - 3); - break; - case 0x54: - /* - * UNIX last modified time - */ - if (hdr->extend_type == EXTEND_UNIX || hdr->extend_type == EXTEND_AMIGAOS) - hdr->unix_last_modified_stamp = (time_t) get_longword(); - break; - default: - /* - * other headers - */ - setup_get(get_ptr + header_size - 3); - break; - } - } - if (hdr->header_level != 2 && get_ptr - ptr != 2) { - hdr->packed_size -= get_ptr - ptr - 2; - hdr->header_size += get_ptr - ptr - 2; - } - } + if (hdr->header_level > 0) + { + /* Extend Header */ + if (hdr->header_level != 2) + setup_get(data + hdr->header_size); + ptr = get_ptr; + while ((header_size = get_word ()) != 0) + { + if (hdr->header_level != 2 && + ((data + LZHEADER_STRAGE - get_ptr < header_size) || + zfile_fread(get_ptr, sizeof(char), header_size, fp) < header_size)) + { + fatal_error(_T("Invalid header (LHa file ?)")); + return FALSE; + } + switch (get_byte ()) + { + case 0: + /* + * header crc + */ + setup_get(get_ptr + header_size - 3); + break; + case 1: + /* + * filename + */ + if (header_size >= 256) + return FALSE; + for (i = 0; i < header_size - 3; i++) + hdr->name[i] = (char) get_byte (); + hdr->name[header_size - 3] = '\0'; + name_length = header_size - 3; + break; + case 2: + /* + * directory + */ + if (header_size >= FILENAME_LENGTH) + return FALSE; + for (i = 0; i < header_size - 3; i++) + dirname[i] = (char) get_byte (); + dirname[header_size - 3] = '\0'; + convdelim((unsigned char*)dirname, DELIM); + dir_length = header_size - 3; + break; + case 0x40: + /* + * MS-DOS attribute + */ + if (hdr->extend_type == EXTEND_MSDOS || + hdr->extend_type == EXTEND_HUMAN || + hdr->extend_type == EXTEND_AMIGAOS || + hdr->extend_type == EXTEND_GENERIC) + hdr->attribute = get_word (); + break; + case 0x50: + /* + * UNIX permission + */ + if (hdr->extend_type == EXTEND_UNIX) + hdr->unix_mode = get_word (); + break; + case 0x51: + /* + * UNIX gid and uid + */ + if (hdr->extend_type == EXTEND_UNIX) + { + hdr->unix_gid = get_word (); + hdr->unix_uid = get_word (); + } + break; + case 0x52: + /* + * UNIX group name + */ + setup_get(get_ptr + header_size - 3); + break; + case 0x53: + /* + * UNIX user name + */ + setup_get(get_ptr + header_size - 3); + break; + case 0x54: + /* + * UNIX last modified time + */ + if (hdr->extend_type == EXTEND_UNIX || hdr->extend_type == EXTEND_AMIGAOS) + hdr->unix_last_modified_stamp = (time_t) get_longword(); + break; + default: + /* + * other headers + */ + setup_get(get_ptr + header_size - 3); + break; + } + } + if (hdr->header_level != 2 && get_ptr - ptr != 2) + { + hdr->packed_size -= get_ptr - ptr - 2; + hdr->header_size += get_ptr - ptr - 2; + } + } - switch (hdr->extend_type) { - case EXTEND_MSDOS: - msdos_to_unix_filename(hdr->name, name_length); - msdos_to_unix_filename(dirname, dir_length); - case EXTEND_HUMAN: - if (hdr->header_level == 2) - hdr->unix_last_modified_stamp = hdr->last_modified_stamp; - else - hdr->unix_last_modified_stamp = - generic_to_unix_stamp(hdr->last_modified_stamp); - break; + switch (hdr->extend_type) + { + case EXTEND_MSDOS: + msdos_to_unix_filename(hdr->name, name_length); + msdos_to_unix_filename(dirname, dir_length); + case EXTEND_HUMAN: + if (hdr->header_level == 2) + hdr->unix_last_modified_stamp = hdr->last_modified_stamp; + else + hdr->unix_last_modified_stamp = + generic_to_unix_stamp(hdr->last_modified_stamp); + break; #ifdef OSK - case EXTEND_OS68K: - case EXTEND_XOSK: + case EXTEND_OS68K: + case EXTEND_XOSK: #endif - case EXTEND_AMIGAOS: - case EXTEND_UNIX: - break; + case EXTEND_AMIGAOS: + case EXTEND_UNIX: + break; - case EXTEND_MACOS: - macos_to_unix_filename(hdr->name, name_length); - /* macos_to_unix_filename(dirname, dir_length); */ - hdr->unix_last_modified_stamp = - generic_to_unix_stamp(hdr->last_modified_stamp); - break; + case EXTEND_MACOS: + macos_to_unix_filename(hdr->name, name_length); + /* macos_to_unix_filename(dirname, dir_length); */ + hdr->unix_last_modified_stamp = + generic_to_unix_stamp(hdr->last_modified_stamp); + break; - default: - generic_to_unix_filename(hdr->name, name_length); - generic_to_unix_filename(dirname, dir_length); - if (hdr->header_level == 2) - hdr->unix_last_modified_stamp = hdr->last_modified_stamp; - else - hdr->unix_last_modified_stamp = - generic_to_unix_stamp(hdr->last_modified_stamp); - } + default: + generic_to_unix_filename(hdr->name, name_length); + generic_to_unix_filename(dirname, dir_length); + if (hdr->header_level == 2) + hdr->unix_last_modified_stamp = hdr->last_modified_stamp; + else + hdr->unix_last_modified_stamp = + generic_to_unix_stamp(hdr->last_modified_stamp); + } - if (dir_length) { - strcat(dirname, hdr->name); - strcpy(hdr->name, dirname); - name_length += dir_length; - } + if (dir_length) + { + strcat(dirname, hdr->name); + strcpy(hdr->name, dirname); + name_length += dir_length; + } - return TRUE; + return TRUE; } /* ------------------------------------------------------------------------ */ void init_header(char *name, struct stat *v_stat, LzHeader *hdr) { - int len; + int len; - if (compress_method == LZHUFF5_METHOD_NUM) /* Changed N.Watazaki */ - bcopy(LZHUFF5_METHOD, hdr->method, METHOD_TYPE_STRAGE); - else if (compress_method) - bcopy(LZHUFF1_METHOD, hdr->method, METHOD_TYPE_STRAGE); - else - bcopy(LZHUFF0_METHOD, hdr->method, METHOD_TYPE_STRAGE); + if (compress_method == LZHUFF5_METHOD_NUM) /* Changed N.Watazaki */ + bcopy(LZHUFF5_METHOD, hdr->method, METHOD_TYPE_STRAGE); + else if (compress_method) + bcopy(LZHUFF1_METHOD, hdr->method, METHOD_TYPE_STRAGE); + else + bcopy(LZHUFF0_METHOD, hdr->method, METHOD_TYPE_STRAGE); - hdr->packed_size = 0; - hdr->original_size = v_stat->st_size; - hdr->last_modified_stamp = unix_to_generic_stamp(v_stat->st_mtime); - hdr->attribute = GENERIC_ATTRIBUTE; - hdr->header_level = header_level; - strcpy(hdr->name, name); - len = strlen(name); - hdr->crc = 0x0000; - hdr->extend_type = EXTEND_UNIX; - hdr->unix_last_modified_stamp = v_stat->st_mtime; - /* since 00:00:00 JAN.1.1970 */ + hdr->packed_size = 0; + hdr->original_size = v_stat->st_size; + hdr->last_modified_stamp = unix_to_generic_stamp(v_stat->st_mtime); + hdr->attribute = GENERIC_ATTRIBUTE; + hdr->header_level = header_level; + strcpy(hdr->name, name); + len = strlen(name); + hdr->crc = 0x0000; + hdr->extend_type = EXTEND_UNIX; + hdr->unix_last_modified_stamp = v_stat->st_mtime; + /* since 00:00:00 JAN.1.1970 */ #ifdef NOT_COMPATIBLE_MODE - /* Please need your modification in this space. */ + /* Please need your modification in this space. */ #else - hdr->unix_mode = v_stat->st_mode; + hdr->unix_mode = v_stat->st_mode; #endif - hdr->unix_uid = v_stat->st_uid; - hdr->unix_gid = v_stat->st_gid; + hdr->unix_uid = v_stat->st_uid; + hdr->unix_gid = v_stat->st_gid; - if (is_directory(v_stat)) { - bcopy(LZHDIRS_METHOD, hdr->method, METHOD_TYPE_STRAGE); - hdr->attribute = GENERIC_DIRECTORY_ATTRIBUTE; - hdr->original_size = 0; - if (len > 0 && hdr->name[len - 1] != '/') - strcpy(&hdr->name[len++], "/"); - } + if (is_directory(v_stat)) + { + bcopy(LZHDIRS_METHOD, hdr->method, METHOD_TYPE_STRAGE); + hdr->attribute = GENERIC_DIRECTORY_ATTRIBUTE; + hdr->original_size = 0; + if (len > 0 && hdr->name[len - 1] != '/') + strcpy(&hdr->name[len++], "/"); + } #ifdef S_IFLNK - if (is_symlink(v_stat)) { - char lkname[257]; - int len; - bcopy(LZHDIRS_METHOD, hdr->method, METHOD_TYPE_STRAGE); - hdr->attribute = GENERIC_DIRECTORY_ATTRIBUTE; - hdr->original_size = 0; - len = readlink(name, lkname, 256); - lkname[len] = (char)'\0'; - sprintf(hdr->name, "%s|%s", hdr->name, lkname); - } + if (is_symlink(v_stat)) + { + char lkname[257]; + int len; + bcopy(LZHDIRS_METHOD, hdr->method, METHOD_TYPE_STRAGE); + hdr->attribute = GENERIC_DIRECTORY_ATTRIBUTE; + hdr->original_size = 0; + len = readlink(name, lkname, 256); + lkname[len] = (char)'\0'; + sprintf(hdr->name, "%s|%s", hdr->name, lkname); + } #endif - if (generic_format) - unix_to_generic_filename(hdr->name, len); + if (generic_format) + unix_to_generic_filename(hdr->name, len); } diff --git a/src/archivers/lha/huf.cpp b/src/archivers/lha/huf.cpp index dec8868c..789e36eb 100644 --- a/src/archivers/lha/huf.cpp +++ b/src/archivers/lha/huf.cpp @@ -21,7 +21,7 @@ unsigned short h_left[2 * NC - 1], h_right[2 * NC - 1]; unsigned char c_len[NC], pt_len[NPT]; unsigned short c_freq[2 * NC - 1], c_table[4096], c_code[NC], p_freq[2 * NP - 1], - pt_table[256], pt_code[NPT], t_freq[2 * NT - 1]; + pt_table[256], pt_code[NPT], t_freq[2 * NT - 1]; static unsigned char *buf; static unsigned int bufsiz; @@ -34,233 +34,264 @@ static int np; /* ------------------------------------------------------------------------ */ static void count_t_freq(void) { - short i, k, n, count; + short i, k, n, count; - for (i = 0; i < NT; i++) - t_freq[i] = 0; - n = NC; - while (n > 0 && c_len[n - 1] == 0) - n--; - i = 0; - while (i < n) { - k = c_len[i++]; - if (k == 0) { - count = 1; - while (i < n && c_len[i] == 0) { - i++; - count++; - } - if (count <= 2) - t_freq[0] += count; - else if (count <= 18) - t_freq[1]++; - else if (count == 19) { - t_freq[0]++; - t_freq[1]++; - } - else - t_freq[2]++; - } else - t_freq[k + 2]++; - } + for (i = 0; i < NT; i++) + t_freq[i] = 0; + n = NC; + while (n > 0 && c_len[n - 1] == 0) + n--; + i = 0; + while (i < n) + { + k = c_len[i++]; + if (k == 0) + { + count = 1; + while (i < n && c_len[i] == 0) + { + i++; + count++; + } + if (count <= 2) + t_freq[0] += count; + else if (count <= 18) + t_freq[1]++; + else if (count == 19) + { + t_freq[0]++; + t_freq[1]++; + } + else + t_freq[2]++; + } + else + t_freq[k + 2]++; + } } /* ------------------------------------------------------------------------ */ #if 0 static void write_pt_len(n, nbit, i_special) - short n; - short nbit; - short i_special; +short n; +short nbit; +short i_special; { - short i, k; + short i, k; - while (n > 0 && pt_len[n - 1] == 0) - n--; - putbits(nbit, n); - i = 0; - while (i < n) { - k = pt_len[i++]; - if (k <= 6) - putbits(3, k); - else - putbits(k - 3, USHRT_MAX << 1); - if (i == i_special) { - while (i < 6 && pt_len[i] == 0) - i++; - putbits(2, i - 3); - } - } + while (n > 0 && pt_len[n - 1] == 0) + n--; + putbits(nbit, n); + i = 0; + while (i < n) + { + k = pt_len[i++]; + if (k <= 6) + putbits(3, k); + else + putbits(k - 3, USHRT_MAX << 1); + if (i == i_special) + { + while (i < 6 && pt_len[i] == 0) + i++; + putbits(2, i - 3); + } + } } /* ------------------------------------------------------------------------ */ static void write_c_len(/*void*/) { - short i, k, n, count; + short i, k, n, count; - n = NC; - while (n > 0 && c_len[n - 1] == 0) - n--; - putbits(CBIT, n); - i = 0; - while (i < n) { - k = c_len[i++]; - if (k == 0) { - count = 1; - while (i < n && c_len[i] == 0) { - i++; - count++; - } - if (count <= 2) { - for (k = 0; k < count; k++) - putcode(pt_len[0], pt_code[0]); - } - else if (count <= 18) { - putcode(pt_len[1], pt_code[1]); - putbits(4, count - 3); - } - else if (count == 19) { - putcode(pt_len[0], pt_code[0]); - putcode(pt_len[1], pt_code[1]); - putbits(4, 15); - } - else { - putcode(pt_len[2], pt_code[2]); - putbits(CBIT, count - 20); - } - } - else - putcode(pt_len[k + 2], pt_code[k + 2]); - } + n = NC; + while (n > 0 && c_len[n - 1] == 0) + n--; + putbits(CBIT, n); + i = 0; + while (i < n) + { + k = c_len[i++]; + if (k == 0) + { + count = 1; + while (i < n && c_len[i] == 0) + { + i++; + count++; + } + if (count <= 2) + { + for (k = 0; k < count; k++) + putcode(pt_len[0], pt_code[0]); + } + else if (count <= 18) + { + putcode(pt_len[1], pt_code[1]); + putbits(4, count - 3); + } + else if (count == 19) + { + putcode(pt_len[0], pt_code[0]); + putcode(pt_len[1], pt_code[1]); + putbits(4, 15); + } + else + { + putcode(pt_len[2], pt_code[2]); + putbits(CBIT, count - 20); + } + } + else + putcode(pt_len[k + 2], pt_code[k + 2]); + } } /* ------------------------------------------------------------------------ */ static void encode_c(c) - short c; +short c; { - putcode(c_len[c], c_code[c]); + putcode(c_len[c], c_code[c]); } /* ------------------------------------------------------------------------ */ static void encode_p(p) - unsigned short p; +unsigned short p; { - unsigned short c, q; + unsigned short c, q; - c = 0; - q = p; - while (q) { - q >>= 1; - c++; - } - putcode(pt_len[c], pt_code[c]); - if (c > 1) - putbits(c - 1, p); + c = 0; + q = p; + while (q) + { + q >>= 1; + c++; + } + putcode(pt_len[c], pt_code[c]); + if (c > 1) + putbits(c - 1, p); } /* ------------------------------------------------------------------------ */ static void send_block( /* void */ ) { - unsigned char flags; - unsigned short i, k, root, pos, size; + unsigned char flags; + unsigned short i, k, root, pos, size; - root = make_tree(NC, c_freq, c_len, c_code); - size = c_freq[root]; - putbits(16, size); - if (root >= NC) { - count_t_freq(); - root = make_tree(NT, t_freq, pt_len, pt_code); - if (root >= NT) { - write_pt_len(NT, TBIT, 3); - } else { - putbits(TBIT, 0); - putbits(TBIT, root); - } - write_c_len(); - } else { - putbits(TBIT, 0); - putbits(TBIT, 0); - putbits(CBIT, 0); - putbits(CBIT, root); - } - root = make_tree(np, p_freq, pt_len, pt_code); - if (root >= np) { - write_pt_len(np, pbit, -1); - } - else { - putbits(pbit, 0); - putbits(pbit, root); - } - pos = 0; - for (i = 0; i < size; i++) { - if (i % CHAR_BIT == 0) - flags = buf[pos++]; - else - flags <<= 1; - if (flags & (1 << (CHAR_BIT - 1))) { - encode_c(buf[pos++] + (1 << CHAR_BIT)); - k = buf[pos++] << CHAR_BIT; - k += buf[pos++]; - encode_p(k); - } else - encode_c(buf[pos++]); - if (unpackable) - return; - } - for (i = 0; i < NC; i++) - c_freq[i] = 0; - for (i = 0; i < np; i++) - p_freq[i] = 0; + root = make_tree(NC, c_freq, c_len, c_code); + size = c_freq[root]; + putbits(16, size); + if (root >= NC) + { + count_t_freq(); + root = make_tree(NT, t_freq, pt_len, pt_code); + if (root >= NT) + { + write_pt_len(NT, TBIT, 3); + } + else + { + putbits(TBIT, 0); + putbits(TBIT, root); + } + write_c_len(); + } + else + { + putbits(TBIT, 0); + putbits(TBIT, 0); + putbits(CBIT, 0); + putbits(CBIT, root); + } + root = make_tree(np, p_freq, pt_len, pt_code); + if (root >= np) + { + write_pt_len(np, pbit, -1); + } + else + { + putbits(pbit, 0); + putbits(pbit, root); + } + pos = 0; + for (i = 0; i < size; i++) + { + if (i % CHAR_BIT == 0) + flags = buf[pos++]; + else + flags <<= 1; + if (flags & (1 << (CHAR_BIT - 1))) + { + encode_c(buf[pos++] + (1 << CHAR_BIT)); + k = buf[pos++] << CHAR_BIT; + k += buf[pos++]; + encode_p(k); + } + else + encode_c(buf[pos++]); + if (unpackable) + return; + } + for (i = 0; i < NC; i++) + c_freq[i] = 0; + for (i = 0; i < np; i++) + p_freq[i] = 0; } /* ------------------------------------------------------------------------ */ void output_st1(c, p) - unsigned short c; - unsigned short p; +unsigned short c; +unsigned short p; { - static unsigned short cpos; + static unsigned short cpos; - output_mask >>= 1; - if (output_mask == 0) { - output_mask = 1 << (CHAR_BIT - 1); - if (output_pos >= bufsiz - 3 * CHAR_BIT) { - send_block(); - if (unpackable) - return; - output_pos = 0; - } - cpos = output_pos++; - buf[cpos] = 0; - } - buf[output_pos++] = (unsigned char) c; - c_freq[c]++; - if (c >= (1 << CHAR_BIT)) { - buf[cpos] |= output_mask; - buf[output_pos++] = (unsigned char) (p >> CHAR_BIT); - buf[output_pos++] = (unsigned char) p; - c = 0; - while (p) { - p >>= 1; - c++; - } - p_freq[c]++; - } + output_mask >>= 1; + if (output_mask == 0) + { + output_mask = 1 << (CHAR_BIT - 1); + if (output_pos >= bufsiz - 3 * CHAR_BIT) + { + send_block(); + if (unpackable) + return; + output_pos = 0; + } + cpos = output_pos++; + buf[cpos] = 0; + } + buf[output_pos++] = (unsigned char) c; + c_freq[c]++; + if (c >= (1 << CHAR_BIT)) + { + buf[cpos] |= output_mask; + buf[output_pos++] = (unsigned char) (p >> CHAR_BIT); + buf[output_pos++] = (unsigned char) p; + c = 0; + while (p) + { + p >>= 1; + c++; + } + p_freq[c]++; + } } #endif /* ------------------------------------------------------------------------ */ unsigned char *alloc_buf(void) { - bufsiz = 16 * 1024 *2; /* 65408U; */ /* t.okamoto */ - while ((buf = (unsigned char *) malloc(bufsiz)) == NULL) { - bufsiz = (bufsiz / 10) * 9; - if (bufsiz < 4 * 1024) - break; - } - return buf; + bufsiz = 16 * 1024 *2; /* 65408U; */ /* t.okamoto */ + while ((buf = (unsigned char *) malloc(bufsiz)) == NULL) + { + bufsiz = (bufsiz / 10) * 9; + if (bufsiz < 4 * 1024) + break; + } + return buf; } /* ------------------------------------------------------------------------ */ @@ -268,46 +299,53 @@ unsigned char *alloc_buf(void) void encode_start_st1( /* void */ ) { - int i; + int i; #if 0 - if (dicbit <= (MAX_DICBIT - 2)) { - pbit = 4; /* lh4,5 etc. */ - np = 14; - } else { - pbit = 5; /* lh6 */ - np = 16; - } + if (dicbit <= (MAX_DICBIT - 2)) + { + pbit = 4; /* lh4,5 etc. */ + np = 14; + } + else + { + pbit = 5; /* lh6 */ + np = 16; + } #endif - if (dicbit <= 13) { - pbit = 4; /* lh4,5 etc. */ - np = 14; - } else { - pbit = 5; /* lh6,7 */ - if (dicbit == 16) - np = 17; - else - np = 16; - } + if (dicbit <= 13) + { + pbit = 4; /* lh4,5 etc. */ + np = 14; + } + else + { + pbit = 5; /* lh6,7 */ + if (dicbit == 16) + np = 17; + else + np = 16; + } - for (i = 0; i < NC; i++) - c_freq[i] = 0; - for (i = 0; i < np; i++) - p_freq[i] = 0; - output_pos = output_mask = 0; - init_putbits(); - buf[0] = 0; + for (i = 0; i < NC; i++) + c_freq[i] = 0; + for (i = 0; i < np; i++) + p_freq[i] = 0; + output_pos = output_mask = 0; + init_putbits(); + buf[0] = 0; } /* ------------------------------------------------------------------------ */ void encode_end_st1( /* void */ ) { - if (!unpackable) { - send_block(); - putbits(CHAR_BIT - 1, 0); /* flush remaining bits */ - } + if (!unpackable) + { + send_block(); + putbits(CHAR_BIT - 1, 0); /* flush remaining bits */ + } } #endif /* ------------------------------------------------------------------------ */ @@ -315,168 +353,198 @@ encode_end_st1( /* void */ ) /* ------------------------------------------------------------------------ */ static void read_pt_len(short nn, short nbit, short i_special) { - int i, c, n; + int i, c, n; - n = getbits(nbit); - if (n == 0) { - c = getbits(nbit); - for (i = 0; i < nn; i++) - pt_len[i] = 0; - for (i = 0; i < 256; i++) - pt_table[i] = c; - } - else { - i = 0; - while (i < n) { - c = lhabitbuf >> (16 - 3); - if (c == 7) { - unsigned short mask = 1 << (16 - 4); - while (mask & lhabitbuf) { - mask >>= 1; - c++; - } - } - fillbuf((c < 7) ? 3 : c - 3); - pt_len[i++] = c; - if (i == i_special) { - c = getbits(2); - while (--c >= 0) - pt_len[i++] = 0; - } - } - while (i < nn) - pt_len[i++] = 0; - lha_make_table(nn, pt_len, 8, pt_table); - } + n = getbits(nbit); + if (n == 0) + { + c = getbits(nbit); + for (i = 0; i < nn; i++) + pt_len[i] = 0; + for (i = 0; i < 256; i++) + pt_table[i] = c; + } + else + { + i = 0; + while (i < n) + { + c = lhabitbuf >> (16 - 3); + if (c == 7) + { + unsigned short mask = 1 << (16 - 4); + while (mask & lhabitbuf) + { + mask >>= 1; + c++; + } + } + fillbuf((c < 7) ? 3 : c - 3); + pt_len[i++] = c; + if (i == i_special) + { + c = getbits(2); + while (--c >= 0) + pt_len[i++] = 0; + } + } + while (i < nn) + pt_len[i++] = 0; + lha_make_table(nn, pt_len, 8, pt_table); + } } /* ------------------------------------------------------------------------ */ static void read_c_len(void) { - short i, c, n; + short i, c, n; - n = getbits(CBIT); - if (n == 0) { - c = getbits(CBIT); - for (i = 0; i < NC; i++) - c_len[i] = 0; - for (i = 0; i < 4096; i++) - c_table[i] = c; - } else { - i = 0; - while (i < n) { - c = pt_table[lhabitbuf >> (16 - 8)]; - if (c >= NT) { - unsigned short mask = 1 << (16 - 9); - do { - if (lhabitbuf & mask) - c = h_right[c]; - else - c = h_left[c]; - mask >>= 1; - } while (c >= NT); - } - fillbuf(pt_len[c]); - if (c <= 2) { - if (c == 0) - c = 1; - else if (c == 1) - c = getbits(4) + 3; - else - c = getbits(CBIT) + 20; - while (--c >= 0) - c_len[i++] = 0; - } - else - c_len[i++] = c - 2; - } - while (i < NC) - c_len[i++] = 0; - lha_make_table(NC, c_len, 12, c_table); - } + n = getbits(CBIT); + if (n == 0) + { + c = getbits(CBIT); + for (i = 0; i < NC; i++) + c_len[i] = 0; + for (i = 0; i < 4096; i++) + c_table[i] = c; + } + else + { + i = 0; + while (i < n) + { + c = pt_table[lhabitbuf >> (16 - 8)]; + if (c >= NT) + { + unsigned short mask = 1 << (16 - 9); + do + { + if (lhabitbuf & mask) + c = h_right[c]; + else + c = h_left[c]; + mask >>= 1; + } + while (c >= NT); + } + fillbuf(pt_len[c]); + if (c <= 2) + { + if (c == 0) + c = 1; + else if (c == 1) + c = getbits(4) + 3; + else + c = getbits(CBIT) + 20; + while (--c >= 0) + c_len[i++] = 0; + } + else + c_len[i++] = c - 2; + } + while (i < NC) + c_len[i++] = 0; + lha_make_table(NC, c_len, 12, c_table); + } } /* ------------------------------------------------------------------------ */ unsigned short decode_c_st1(void) { - unsigned short j, mask; + unsigned short j, mask; - if (blocksize == 0) { - blocksize = getbits(16); - read_pt_len(NT, TBIT, 3); - read_c_len(); - read_pt_len(np, pbit, -1); - } - blocksize--; - j = c_table[lhabitbuf >> 4]; - if (j < NC) - fillbuf(c_len[j]); - else { - fillbuf(12); - mask = 1 << (16 - 1); - do { - if (lhabitbuf & mask) - j = h_right[j]; - else - j = h_left[j]; - mask >>= 1; - } while (j >= NC); - fillbuf(c_len[j] - 12); - } - return j; + if (blocksize == 0) + { + blocksize = getbits(16); + read_pt_len(NT, TBIT, 3); + read_c_len(); + read_pt_len(np, pbit, -1); + } + blocksize--; + j = c_table[lhabitbuf >> 4]; + if (j < NC) + fillbuf(c_len[j]); + else + { + fillbuf(12); + mask = 1 << (16 - 1); + do + { + if (lhabitbuf & mask) + j = h_right[j]; + else + j = h_left[j]; + mask >>= 1; + } + while (j >= NC); + fillbuf(c_len[j] - 12); + } + return j; } /* ------------------------------------------------------------------------ */ unsigned short decode_p_st1(void) { - unsigned short j, mask; + unsigned short j, mask; - j = pt_table[lhabitbuf >> (16 - 8)]; - if (j < np) - fillbuf(pt_len[j]); - else { - fillbuf(8); - mask = 1 << (16 - 1); - do { - if (lhabitbuf & mask) - j = h_right[j]; - else - j = h_left[j]; - mask >>= 1; - } while (j >= np); - fillbuf(pt_len[j] - 8); - } - if (j != 0) - j = (1 << (j - 1)) + getbits(j - 1); - return j; + j = pt_table[lhabitbuf >> (16 - 8)]; + if (j < np) + fillbuf(pt_len[j]); + else + { + fillbuf(8); + mask = 1 << (16 - 1); + do + { + if (lhabitbuf & mask) + j = h_right[j]; + else + j = h_left[j]; + mask >>= 1; + } + while (j >= np); + fillbuf(pt_len[j] - 8); + } + if (j != 0) + j = (1 << (j - 1)) + getbits(j - 1); + return j; } /* ------------------------------------------------------------------------ */ void decode_start_st1(void) { - if (dicbit <= 13) { - np = 14; - pbit = 4; - } else { - if (dicbit == 16) { - np = 17; /* for -lh7- */ - } else { - np = 16; - } - pbit = 5; - } + if (dicbit <= 13) + { + np = 14; + pbit = 4; + } + else + { + if (dicbit == 16) + { + np = 17; /* for -lh7- */ + } + else + { + np = 16; + } + pbit = 5; + } #if 0 - if (dicbit <= 13) { /* 13 ... Changed N.Watazaki */ - np = 14; - pbit = 4; - } else { - np = 16; - pbit = 5; - } + if (dicbit <= 13) /* 13 ... Changed N.Watazaki */ + { + np = 14; + pbit = 4; + } + else + { + np = 16; + pbit = 5; + } #endif - init_getbits(); - blocksize = 0; + init_getbits(); + blocksize = 0; } /* Local Variables: */ diff --git a/src/archivers/lha/larc.cpp b/src/archivers/lha/larc.cpp index a1a9d43e..c5602a63 100644 --- a/src/archivers/lha/larc.cpp +++ b/src/archivers/lha/larc.cpp @@ -13,67 +13,71 @@ static int flag, flagcnt, matchpos; /* ------------------------------------------------------------------------ */ unsigned short decode_c_lzs(void) { - if (getbits(1)) { - return getbits(8); - } - else { - matchpos = getbits(11); - return getbits(4) + 0x100; - } + if (getbits(1)) + { + return getbits(8); + } + else + { + matchpos = getbits(11); + return getbits(4) + 0x100; + } } /* ------------------------------------------------------------------------ */ unsigned short decode_p_lzs(void) { - return (loc - matchpos - MAGIC0) & 0x7ff; + return (loc - matchpos - MAGIC0) & 0x7ff; } /* ------------------------------------------------------------------------ */ void decode_start_lzs(void) { - init_getbits(); + init_getbits(); } /* ------------------------------------------------------------------------ */ unsigned short decode_c_lz5(void) { - int c; + int c; - if (flagcnt == 0) { - flagcnt = 8; - flag = zfile_getc(infile); - } - flagcnt--; - c = zfile_getc(infile); - if ((flag & 1) == 0) { - matchpos = c; - c = zfile_getc(infile); - matchpos += (c & 0xf0) << 4; - c &= 0x0f; - c += 0x100; - } - flag >>= 1; - return c; + if (flagcnt == 0) + { + flagcnt = 8; + flag = zfile_getc(infile); + } + flagcnt--; + c = zfile_getc(infile); + if ((flag & 1) == 0) + { + matchpos = c; + c = zfile_getc(infile); + matchpos += (c & 0xf0) << 4; + c &= 0x0f; + c += 0x100; + } + flag >>= 1; + return c; } /* ------------------------------------------------------------------------ */ unsigned short decode_p_lz5(void) { - return (loc - matchpos - MAGIC5) & 0xfff; + return (loc - matchpos - MAGIC5) & 0xfff; } /* ------------------------------------------------------------------------ */ void decode_start_lz5(void) { - int i; + int i; - flagcnt = 0; - for (i = 0; i < 256; i++) - memset(&text[i * 13 + 18], i, 13); - for (i = 0; i < 256; i++) - text[256 * 13 + 18 + i] = i; - for (i = 0; i < 256; i++) - text[256 * 13 + 256 + 18 + i] = 255 - i; - memset(&text[256 * 13 + 512 + 18], 0, 128); - memset(&text[256 * 13 + 512 + 128 + 18], ' ', 128 - 18); + flagcnt = 0; + for (i = 0; i < 256; i++) + memset(&text[i * 13 + 18], i, 13); + for (i = 0; i < 256; i++) + text[256 * 13 + 18 + i] = i; + for (i = 0; i < 256; i++) + text[256 * 13 + 256 + 18 + i] = 255 - i; + memset(&text[256 * 13 + 512 + 18], 0, 128); + memset(&text[256 * 13 + 512 + 128 + 18], ' ', 128 - 18); } diff --git a/src/archivers/lha/lha.h b/src/archivers/lha/lha.h index c16b1a5b..e67e4fd5 100644 --- a/src/archivers/lha/lha.h +++ b/src/archivers/lha/lha.h @@ -31,66 +31,71 @@ #include "lha_macro.h" -struct encode_option { +struct encode_option +{ #if 1 || defined(__STDC__) || defined(AIX) - void (*output) (); - void (*encode_start) (); - void (*encode_end) (); + void (*output) (); + void (*encode_start) (); + void (*encode_end) (); #else - int (*output) (); - int (*encode_start) (); - int (*encode_end) (); + int (*output) (); + int (*encode_start) (); + int (*encode_end) (); #endif }; -struct decode_option { - unsigned short (*decode_c) (); - unsigned short (*decode_p) (); +struct decode_option +{ + unsigned short (*decode_c) (); + unsigned short (*decode_p) (); #if 1 || defined(__STDC__) || defined(AIX) - void (*decode_start) (); + void (*decode_start) (); #else - int (*decode_start) (); + int (*decode_start) (); #endif }; /* ------------------------------------------------------------------------ */ /* LHa File Type Definition */ /* ------------------------------------------------------------------------ */ -struct string_pool { - int used; - int size; - int n; - char *buffer; +struct string_pool +{ + int used; + int size; + int n; + char *buffer; }; -typedef struct LzHeader { - unsigned char header_size; - char method[METHOD_TYPE_STRAGE]; - long packed_size; - long original_size; - long last_modified_stamp; - unsigned char attribute; - unsigned char header_level; - char name[256]; - unsigned short crc; - boolean has_crc; - unsigned char extend_type; - unsigned char minor_version; +typedef struct LzHeader +{ + unsigned char header_size; + char method[METHOD_TYPE_STRAGE]; + long packed_size; + long original_size; + long last_modified_stamp; + unsigned char attribute; + unsigned char header_level; + char name[256]; + unsigned short crc; + boolean has_crc; + unsigned char extend_type; + unsigned char minor_version; - /* extend_type == EXTEND_UNIX and convert from other type. */ - time_t unix_last_modified_stamp; - unsigned short unix_mode; - unsigned short unix_uid; - unsigned short unix_gid; + /* extend_type == EXTEND_UNIX and convert from other type. */ + time_t unix_last_modified_stamp; + unsigned short unix_mode; + unsigned short unix_uid; + unsigned short unix_gid; } LzHeader; -struct interfacing { - struct zfile *infile; - struct zfile *outfile; - unsigned long original; - unsigned long packed; - int dicbit; - int method; +struct interfacing +{ + struct zfile *infile; + struct zfile *outfile; + unsigned long original; + unsigned long packed; + int dicbit; + int method; }; diff --git a/src/archivers/lha/lhamaketbl.cpp b/src/archivers/lha/lhamaketbl.cpp index ac4d2b70..8424f8b1 100644 --- a/src/archivers/lha/lhamaketbl.cpp +++ b/src/archivers/lha/lhamaketbl.cpp @@ -10,81 +10,89 @@ void lha_make_table(short nchar, unsigned char bitlen[], short tablebits, unsigned short table[]) { - unsigned short count[17]; /* count of bitlen */ - unsigned short weight[17]; /* 0x10000ul >> bitlen */ - unsigned short start[17]; /* first code of bitlen */ - unsigned short total; - unsigned int i, l; - int j, k, m, n, avail; - unsigned short *p; + unsigned short count[17]; /* count of bitlen */ + unsigned short weight[17]; /* 0x10000ul >> bitlen */ + unsigned short start[17]; /* first code of bitlen */ + unsigned short total; + unsigned int i, l; + int j, k, m, n, avail; + unsigned short *p; - avail = nchar; + avail = nchar; - /* initialize */ - for (i = 1; i <= 16; i++) { - count[i] = 0; - weight[i] = 1 << (16 - i); - } + /* initialize */ + for (i = 1; i <= 16; i++) + { + count[i] = 0; + weight[i] = 1 << (16 - i); + } - /* count */ - for (i = 0; i < nchar; i++) - count[bitlen[i]]++; + /* count */ + for (i = 0; i < nchar; i++) + count[bitlen[i]]++; - /* calculate first code */ - total = 0; - for (i = 1; i <= 16; i++) { - start[i] = total; - total += weight[i] * count[i]; - } - if ((total & 0xffff) != 0) - error(_T("make_table()"), _T("Bad table (5)\n")); + /* calculate first code */ + total = 0; + for (i = 1; i <= 16; i++) + { + start[i] = total; + total += weight[i] * count[i]; + } + if ((total & 0xffff) != 0) + error(_T("make_table()"), _T("Bad table (5)\n")); - /* shift data for make table. */ - m = 16 - tablebits; - for (i = 1; i <= tablebits; i++) { - start[i] >>= m; - weight[i] >>= m; - } + /* shift data for make table. */ + m = 16 - tablebits; + for (i = 1; i <= tablebits; i++) + { + start[i] >>= m; + weight[i] >>= m; + } - /* initialize */ - j = start[tablebits + 1] >> m; - k = 1 << tablebits; - if (j != 0) - for (i = j; i < k; i++) - table[i] = 0; + /* initialize */ + j = start[tablebits + 1] >> m; + k = 1 << tablebits; + if (j != 0) + for (i = j; i < k; i++) + table[i] = 0; - /* create table and tree */ - for (j = 0; j < nchar; j++) { - k = bitlen[j]; - if (k == 0) - continue; - l = start[k] + weight[k]; - if (k <= tablebits) { - /* code in table */ - for (i = start[k]; i < l; i++) - table[i] = j; - } - else { - /* code not in table */ - p = &table[(i = start[k]) >> m]; - i <<= tablebits; - n = k - tablebits; - /* make tree (n length) */ - while (--n >= 0) { - if (*p == 0) { - h_right[avail] = h_left[avail] = 0; - *p = avail++; - } - if (i & 0x8000) - p = &h_right[*p]; - else - p = &h_left[*p]; - i <<= 1; - } - *p = j; - } - start[k] = l; - } + /* create table and tree */ + for (j = 0; j < nchar; j++) + { + k = bitlen[j]; + if (k == 0) + continue; + l = start[k] + weight[k]; + if (k <= tablebits) + { + /* code in table */ + for (i = start[k]; i < l; i++) + table[i] = j; + } + else + { + /* code not in table */ + p = &table[(i = start[k]) >> m]; + i <<= tablebits; + n = k - tablebits; + /* make tree (n length) */ + while (--n >= 0) + { + if (*p == 0) + { + h_right[avail] = h_left[avail] = 0; + *p = avail++; + } + if (i & 0x8000) + p = &h_right[*p]; + else + p = &h_left[*p]; + i <<= 1; + } + *p = j; + } + start[k] = l; + } } /* Local Variables: */ diff --git a/src/archivers/lha/lharc.cpp b/src/archivers/lha/lharc.cpp index 05966b0a..7708f9e6 100644 --- a/src/archivers/lha/lharc.cpp +++ b/src/archivers/lha/lharc.cpp @@ -80,50 +80,50 @@ int archive_file_gid; static void init_variable() /* Added N.Watazaki */ { -/* options */ - quiet = FALSE; - text_mode = FALSE; - verbose = FALSE; - noexec = FALSE; /* debugging option */ - force = FALSE; - prof = FALSE; + /* options */ + quiet = FALSE; + text_mode = FALSE; + verbose = FALSE; + noexec = FALSE; /* debugging option */ + force = FALSE; + prof = FALSE; #ifndef SUPPORT_LH7 - compress_method = LZHUFF5_METHOD_NUM; + compress_method = LZHUFF5_METHOD_NUM; #endif #ifdef SUPPORT_LH7 - compress_method = LZHUFF7_METHOD_NUM; + compress_method = LZHUFF7_METHOD_NUM; #endif - header_level = HEADER_LEVEL1; - quiet_mode = 0; + header_level = HEADER_LEVEL1; + quiet_mode = 0; #ifdef EUC - euc_mode = FALSE; + euc_mode = FALSE; #endif -/* view command flags */ - verbose_listing = FALSE; + /* view command flags */ + verbose_listing = FALSE; -/* extract command flags */ - output_to_stdout = FALSE; + /* extract command flags */ + output_to_stdout = FALSE; -/* append command flags */ - new_archive = FALSE; - update_if_newer = FALSE; - delete_after_append = FALSE; - generic_format = FALSE; + /* append command flags */ + new_archive = FALSE; + update_if_newer = FALSE; + delete_after_append = FALSE; + generic_format = FALSE; - remove_temporary_at_error = FALSE; - recover_archive_when_interrupt = FALSE; - remove_extracting_file_when_interrupt = FALSE; - get_filename_from_stdin = FALSE; - ignore_directory = FALSE; - verify_mode = FALSE; + remove_temporary_at_error = FALSE; + recover_archive_when_interrupt = FALSE; + remove_extracting_file_when_interrupt = FALSE; + get_filename_from_stdin = FALSE; + ignore_directory = FALSE; + verify_mode = FALSE; - noconvertcase = FALSE; + noconvertcase = FALSE; - extract_directory = NULL; - xfilec = 257; + extract_directory = NULL; + xfilec = 257; } /* ------------------------------------------------------------------------ */ @@ -131,38 +131,41 @@ init_variable() /* Added N.Watazaki */ /* ------------------------------------------------------------------------ */ static int sort_by_ascii(char **a, char **b) { - register char *p, *q; - register int c1, c2; + register char *p, *q; + register int c1, c2; - p = *a, q = *b; - if (generic_format) { - do { - c1 = *(unsigned char *) p++; - c2 = *(unsigned char *) q++; - if (!c1 || !c2) - break; - if (islower(c1)) - c1 = toupper(c1); - if (islower(c2)) - c2 = toupper(c2); - } - while (c1 == c2); - return c1 - c2; - } - else { - while (*p == *q && *p != '\0') - p++, q++; - return *(unsigned char *) p - *(unsigned char *) q; - } + p = *a, q = *b; + if (generic_format) + { + do + { + c1 = *(unsigned char *) p++; + c2 = *(unsigned char *) q++; + if (!c1 || !c2) + break; + if (islower(c1)) + c1 = toupper(c1); + if (islower(c2)) + c2 = toupper(c2); + } + while (c1 == c2); + return c1 - c2; + } + else + { + while (*p == *q && *p != '\0') + p++, q++; + return *(unsigned char *) p - *(unsigned char *) q; + } } /* ------------------------------------------------------------------------ */ char *xxrealloc(char *old, int size) { - char *p = (char *) xrealloc(char, old, size); - if (!p) - fatal_error(_T("Not enough memory")); - return p; + char *p = (char *) xrealloc(char, old, size); + if (!p) + fatal_error(_T("Not enough memory")); + return p; } /* ------------------------------------------------------------------------ */ @@ -186,49 +189,51 @@ char *xxrealloc(char *old, int size) /* ------------------------------------------------------------------------ */ void init_sp(struct string_pool *sp) { - sp->size = 1024 - 8; /* any ( >=0 ) */ - sp->used = 0; - sp->n = 0; - sp->buffer = (char *) xmalloc(char, sp->size); + sp->size = 1024 - 8; /* any ( >=0 ) */ + sp->used = 0; + sp->n = 0; + sp->buffer = (char *) xmalloc(char, sp->size); } /* ------------------------------------------------------------------------ */ void add_sp(struct string_pool *sp, char *name, int len) { - while (sp->used + len > sp->size) { - sp->size *= 2; - sp->buffer = (char *) xxrealloc(sp->buffer, sp->size * sizeof(char)); - } - bcopy(name, sp->buffer + sp->used, len); - sp->used += len; - sp->n++; + while (sp->used + len > sp->size) + { + sp->size *= 2; + sp->buffer = (char *) xxrealloc(sp->buffer, sp->size * sizeof(char)); + } + bcopy(name, sp->buffer + sp->used, len); + sp->used += len; + sp->n++; } /* ------------------------------------------------------------------------ */ void finish_sp(struct string_pool *sp, int *v_count, char ***v_vector) { - int i; - register char *p; - char **v; + int i; + register char *p; + char **v; - v = (char **) xmalloc(char*, sp->n + 1); - *v++ = sp->buffer; - *v_vector = v; - *v_count = sp->n; - p = sp->buffer; - for (i = sp->n; i; i--) { - *v++ = p; - if (i - 1) - p += strlen(p) + 1; - } + v = (char **) xmalloc(char*, sp->n + 1); + *v++ = sp->buffer; + *v_vector = v; + *v_count = sp->n; + p = sp->buffer; + for (i = sp->n; i; i--) + { + *v++ = p; + if (i - 1) + p += strlen(p) + 1; + } } /* ------------------------------------------------------------------------ */ void free_sp(char **vector) { - vector--; - free(*vector); /* free string pool */ - free(vector); + vector--; + free(*vector); /* free string pool */ + free(vector); } @@ -237,9 +242,9 @@ void free_sp(char **vector) /* ------------------------------------------------------------------------ */ static boolean include_path_p(char *path, char *name) { - char *n = name; - while (*path) - if (*path++ != *n++) - return (path[-1] == '/' && *n == '\0'); - return (*n == '/' || (n != name && path[-1] == '/' && n[-1] == '/')); + char *n = name; + while (*path) + if (*path++ != *n++) + return (path[-1] == '/' && *n == '\0'); + return (*n == '/' || (n != name && path[-1] == '/' && n[-1] == '/')); } diff --git a/src/archivers/lha/shuf.cpp b/src/archivers/lha/shuf.cpp index e9102cfc..33f3a47c 100644 --- a/src/archivers/lha/shuf.cpp +++ b/src/archivers/lha/shuf.cpp @@ -16,21 +16,22 @@ #define NP2 (NP * 2 - 1) /* ------------------------------------------------------------------------ */ static unsigned int np; -static int h_fixed[2][16] = { - {3, 0x01, 0x04, 0x0c, 0x18, 0x30, 0}, /* old compatible */ - {2, 0x01, 0x01, 0x03, 0x06, 0x0D, 0x1F, 0x4E, 0} /* 8K buf */ +static int h_fixed[2][16] = +{ + {3, 0x01, 0x04, 0x0c, 0x18, 0x30, 0}, /* old compatible */ + {2, 0x01, 0x01, 0x03, 0x06, 0x0D, 0x1F, 0x4E, 0} /* 8K buf */ }; /* ------------------------------------------------------------------------ */ void decode_start_st0(void) { - n_max = 286; - maxmatch = MAXMATCH; - init_getbits(); + n_max = 286; + maxmatch = MAXMATCH; + init_getbits(); #ifdef SUPPORT_LH7 - np = 1 << (MAX_DICBIT - 7); + np = 1 << (MAX_DICBIT - 7); #endif #ifndef SUPPORT_LH7 - np = 1 << (MAX_DICBIT - 6); + np = 1 << (MAX_DICBIT - 6); #endif } @@ -38,36 +39,38 @@ void decode_start_st0(void) /* ------------------------------------------------------------------------ */ void encode_p_st0(j) - unsigned short j; +unsigned short j; { - unsigned short i; + unsigned short i; - i = j >> 6; - putcode(pt_len[i], pt_code[i]); - putbits(6, j & 0x3f); + i = j >> 6; + putcode(pt_len[i], pt_code[i]); + putbits(6, j & 0x3f); } #endif /* ------------------------------------------------------------------------ */ static void ready_made(int method) { - int i, j; - unsigned int code, weight; - int *tbl; + int i, j; + unsigned int code, weight; + int *tbl; - tbl = h_fixed[method]; - j = *tbl++; - weight = 1 << (16 - j); - code = 0; - for (i = 0; i < np; i++) { - while (*tbl == i) { - j++; - tbl++; - weight >>= 1; - } - pt_len[i] = j; - pt_code[i] = code; - code += weight; - } + tbl = h_fixed[method]; + j = *tbl++; + weight = 1 << (16 - j); + code = 0; + for (i = 0; i < np; i++) + { + while (*tbl == i) + { + j++; + tbl++; + weight >>= 1; + } + pt_len[i] = j; + pt_code[i] = code; + code += weight; + } } /* ------------------------------------------------------------------------ */ @@ -75,132 +78,148 @@ static void ready_made(int method) void encode_start_fix( /*void*/ ) { - n_max = 314; - maxmatch = 60; - np = 1 << (12 - 6); - init_putbits(); - start_c_dyn(); - ready_made(0); + n_max = 314; + maxmatch = 60; + np = 1 << (12 - 6); + init_putbits(); + start_c_dyn(); + ready_made(0); } #endif /* ------------------------------------------------------------------------ */ static void read_tree_c(void) -{ /* read tree from file */ - int i, c; +{ + /* read tree from file */ + int i, c; - i = 0; - while (i < N1) { - if (getbits(1)) - c_len[i] = getbits(LENFIELD) + 1; - else - c_len[i] = 0; - if (++i == 3 && c_len[0] == 1 && c_len[1] == 1 && c_len[2] == 1) { - c = getbits(CBIT); - for (i = 0; i < N1; i++) - c_len[i] = 0; - for (i = 0; i < 4096; i++) - c_table[i] = c; - return; - } - } - lha_make_table(N1, c_len, 12, c_table); + i = 0; + while (i < N1) + { + if (getbits(1)) + c_len[i] = getbits(LENFIELD) + 1; + else + c_len[i] = 0; + if (++i == 3 && c_len[0] == 1 && c_len[1] == 1 && c_len[2] == 1) + { + c = getbits(CBIT); + for (i = 0; i < N1; i++) + c_len[i] = 0; + for (i = 0; i < 4096; i++) + c_table[i] = c; + return; + } + } + lha_make_table(N1, c_len, 12, c_table); } /* ------------------------------------------------------------------------ */ static void read_tree_p(void) -{ /* read tree from file */ - int i, c; +{ + /* read tree from file */ + int i, c; - i = 0; - while (i < NP) { - pt_len[i] = getbits(LENFIELD); - if (++i == 3 && pt_len[0] == 1 && pt_len[1] == 1 && pt_len[2] == 1) { + i = 0; + while (i < NP) + { + pt_len[i] = getbits(LENFIELD); + if (++i == 3 && pt_len[0] == 1 && pt_len[1] == 1 && pt_len[2] == 1) + { #ifdef SUPPORT_LH7 - c = getbits(MAX_DICBIT - 7); + c = getbits(MAX_DICBIT - 7); #else - c = getbits(MAX_DICBIT - 6); + c = getbits(MAX_DICBIT - 6); #endif - for (i = 0; i < NP; i++) - c_len[i] = 0; - for (i = 0; i < 256; i++) - c_table[i] = c; - return; - } - } + for (i = 0; i < NP; i++) + c_len[i] = 0; + for (i = 0; i < 256; i++) + c_table[i] = c; + return; + } + } } /* ------------------------------------------------------------------------ */ void decode_start_fix(void) { - n_max = 314; - maxmatch = 60; - init_getbits(); - np = 1 << (12 - 6); - start_c_dyn(); - ready_made(0); - lha_make_table(np, pt_len, 8, pt_table); + n_max = 314; + maxmatch = 60; + init_getbits(); + np = 1 << (12 - 6); + start_c_dyn(); + ready_made(0); + lha_make_table(np, pt_len, 8, pt_table); } /* ------------------------------------------------------------------------ */ unsigned short decode_c_st0(void) { - int i, j; - static unsigned short blocksize = 0; + int i, j; + static unsigned short blocksize = 0; - if (blocksize == 0) { /* read block head */ - blocksize = getbits(BUFBITS); /* read block blocksize */ - read_tree_c(); - if (getbits(1)) { - read_tree_p(); - } - else { - ready_made(1); - } - lha_make_table(NP, pt_len, 8, pt_table); - } - blocksize--; - j = c_table[lhabitbuf >> 4]; - if (j < N1) - fillbuf(c_len[j]); - else { - fillbuf(12); - i = lhabitbuf; - do { - if ((short) i < 0) - j = h_right[j]; - else - j = h_left[j]; - i <<= 1; - } while (j >= N1); - fillbuf(c_len[j] - 12); - } - if (j == N1 - 1) - j += getbits(EXTRABITS); - return j; + if (blocksize == 0) /* read block head */ + { + blocksize = getbits(BUFBITS); /* read block blocksize */ + read_tree_c(); + if (getbits(1)) + { + read_tree_p(); + } + else + { + ready_made(1); + } + lha_make_table(NP, pt_len, 8, pt_table); + } + blocksize--; + j = c_table[lhabitbuf >> 4]; + if (j < N1) + fillbuf(c_len[j]); + else + { + fillbuf(12); + i = lhabitbuf; + do + { + if ((short) i < 0) + j = h_right[j]; + else + j = h_left[j]; + i <<= 1; + } + while (j >= N1); + fillbuf(c_len[j] - 12); + } + if (j == N1 - 1) + j += getbits(EXTRABITS); + return j; } /* ------------------------------------------------------------------------ */ unsigned short decode_p_st0(void) { - int i, j; + int i, j; - j = pt_table[lhabitbuf >> 8]; - if (j < np) { - fillbuf(pt_len[j]); - } - else { - fillbuf(8); - i = lhabitbuf; - do { - if ((short) i < 0) - j = h_right[j]; - else - j = h_left[j]; - i <<= 1; - } while (j >= np); - fillbuf(pt_len[j] - 8); - } - return (j << 6) + getbits(6); + j = pt_table[lhabitbuf >> 8]; + if (j < np) + { + fillbuf(pt_len[j]); + } + else + { + fillbuf(8); + i = lhabitbuf; + do + { + if ((short) i < 0) + j = h_right[j]; + else + j = h_left[j]; + i <<= 1; + } + while (j >= np); + fillbuf(pt_len[j] - 8); + } + return (j << 6) + getbits(6); } /* Local Variables: */ diff --git a/src/archivers/lha/slide.cpp b/src/archivers/lha/slide.cpp index df0855ec..9012d5f1 100644 --- a/src/archivers/lha/slide.cpp +++ b/src/archivers/lha/slide.cpp @@ -32,48 +32,58 @@ static unsigned int *prev; unsigned char *too_flag; #if 0 -static struct encode_option encode_define[2] = { +static struct encode_option encode_define[2] = +{ #if 1 || defined(__STDC__) || defined(AIX) - /* lh1 */ - {(void (*) ()) output_dyn, - (void (*) ()) encode_start_fix, - (void (*) ()) encode_end_dyn}, - /* lh4, 5,6 */ - {(void (*) ()) output_st1, - (void (*) ()) encode_start_st1, - (void (*) ()) encode_end_st1} + /* lh1 */ + { + (void (*) ()) output_dyn, + (void (*) ()) encode_start_fix, + (void (*) ()) encode_end_dyn + }, + /* lh4, 5,6 */ + { + (void (*) ()) output_st1, + (void (*) ()) encode_start_st1, + (void (*) ()) encode_end_st1 + } #else - /* lh1 */ - {(int (*) ()) output_dyn, - (int (*) ()) encode_start_fix, - (int (*) ()) encode_end_dyn}, - /* lh4, 5,6 */ - {(int (*) ()) output_st1, - (int (*) ()) encode_start_st1, - (int (*) ()) encode_end_st1} + /* lh1 */ + { + (int (*) ()) output_dyn, + (int (*) ()) encode_start_fix, + (int (*) ()) encode_end_dyn + }, + /* lh4, 5,6 */ + { + (int (*) ()) output_st1, + (int (*) ()) encode_start_st1, + (int (*) ()) encode_end_st1 + } #endif }; #endif -static struct decode_option decode_define[] = { - /* lh1 */ - {decode_c_dyn, decode_p_st0, decode_start_fix}, - /* lh2 */ - {decode_c_dyn, decode_p_dyn, decode_start_dyn}, - /* lh3 */ - {decode_c_st0, decode_p_st0, decode_start_st0}, - /* lh4 */ - {decode_c_st1, decode_p_st1, decode_start_st1}, - /* lh5 */ - {decode_c_st1, decode_p_st1, decode_start_st1}, - /* lh6 */ - {decode_c_st1, decode_p_st1, decode_start_st1}, - /* lh7 */ - {decode_c_st1, decode_p_st1, decode_start_st1}, - /* lzs */ - {decode_c_lzs, decode_p_lzs, decode_start_lzs}, - /* lz5 */ - {decode_c_lz5, decode_p_lz5, decode_start_lz5} +static struct decode_option decode_define[] = +{ + /* lh1 */ + {decode_c_dyn, decode_p_st0, decode_start_fix}, + /* lh2 */ + {decode_c_dyn, decode_p_dyn, decode_start_dyn}, + /* lh3 */ + {decode_c_st0, decode_p_st0, decode_start_st0}, + /* lh4 */ + {decode_c_st1, decode_p_st1, decode_start_st1}, + /* lh5 */ + {decode_c_st1, decode_p_st1, decode_start_st1}, + /* lh6 */ + {decode_c_st1, decode_p_st1, decode_start_st1}, + /* lh7 */ + {decode_c_st1, decode_p_st1, decode_start_st1}, + /* lzs */ + {decode_c_lzs, decode_p_lzs, decode_start_lzs}, + /* lz5 */ + {decode_c_lz5, decode_p_lz5, decode_start_lz5} }; static struct encode_option encode_set; @@ -114,39 +124,42 @@ static unsigned int remainder; /* ------------------------------------------------------------------------ */ int encode_alloc(method) - int method; +int method; { - if (method == LZHUFF1_METHOD_NUM) { /* Changed N.Watazaki */ - encode_set = encode_define[0]; - maxmatch = 60; - dicbit = 12; /* 12 Changed N.Watazaki */ - } else { /* method LH4(12),LH5(13),LH6(15) */ - encode_set = encode_define[1]; - maxmatch = MAXMATCH; - if (method == LZHUFF7_METHOD_NUM) - dicbit = MAX_DICBIT; /* 16 bits */ - else if (method == LZHUFF6_METHOD_NUM) - dicbit = MAX_DICBIT-1; /* 15 bits */ - else /* LH5 LH4 is not used */ - dicbit = MAX_DICBIT - 3; /* 13 bits */ - } + if (method == LZHUFF1_METHOD_NUM) /* Changed N.Watazaki */ + { + encode_set = encode_define[0]; + maxmatch = 60; + dicbit = 12; /* 12 Changed N.Watazaki */ + } + else /* method LH4(12),LH5(13),LH6(15) */ + { + encode_set = encode_define[1]; + maxmatch = MAXMATCH; + if (method == LZHUFF7_METHOD_NUM) + dicbit = MAX_DICBIT; /* 16 bits */ + else if (method == LZHUFF6_METHOD_NUM) + dicbit = MAX_DICBIT-1; /* 15 bits */ + else /* LH5 LH4 is not used */ + dicbit = MAX_DICBIT - 3; /* 13 bits */ + } - dicsiz = (((unsigned long)1) << dicbit); - txtsiz = dicsiz*2+maxmatch; + dicsiz = (((unsigned long)1) << dicbit); + txtsiz = dicsiz*2+maxmatch; - if (hash) return method; + if (hash) return method; - if (alloc_buf() == NULL) exit(207); /* I don't know this 207. */ + if (alloc_buf() == NULL) exit(207); /* I don't know this 207. */ - hash = (unsigned int*)malloc(HSHSIZ * sizeof(unsigned int)); - prev = (unsigned int*)malloc(DICSIZ * sizeof(unsigned int)); - text = (unsigned char*)malloc(TXTSIZ); - too_flag = (unsigned char*)malloc(HSHSIZ); + hash = (unsigned int*)malloc(HSHSIZ * sizeof(unsigned int)); + prev = (unsigned int*)malloc(DICSIZ * sizeof(unsigned int)); + text = (unsigned char*)malloc(TXTSIZ); + too_flag = (unsigned char*)malloc(HSHSIZ); - if (hash == NULL || prev == NULL || text == NULL || too_flag == NULL) - exit(207); + if (hash == NULL || prev == NULL || text == NULL || too_flag == NULL) + exit(207); - return method; + return method; } /* ------------------------------------------------------------------------ */ @@ -154,54 +167,60 @@ encode_alloc(method) static void init_slide() { - unsigned int i; + unsigned int i; - for (i = 0; i < HSHSIZ; i++) { - hash[i] = NIL; - too_flag[i] = 0; - } - /* - for (i = 0; i < DICSIZ; i++) { - prev[i] = NIL; - } - */ + for (i = 0; i < HSHSIZ; i++) + { + hash[i] = NIL; + too_flag[i] = 0; + } + /* + for (i = 0; i < DICSIZ; i++) { + prev[i] = NIL; + } + */ } /* ¼­½ñ¤ò DICSIZ ʬ Á°¤Ë¤º¤é¤¹ */ static void update() { - unsigned int i, j; - unsigned int k; - long n; + unsigned int i, j; + unsigned int k; + long n; #if 0 - memmove(&text[0], &text[dicsiz], (unsigned)(txtsiz - dicsiz)); + memmove(&text[0], &text[dicsiz], (unsigned)(txtsiz - dicsiz)); #else - { - int m; - i = 0; j = dicsiz; m = txtsiz-dicsiz; - while (m-- > 0) { - text[i++] = text[j++]; - } - } + { + int m; + i = 0; + j = dicsiz; + m = txtsiz-dicsiz; + while (m-- > 0) + { + text[i++] = text[j++]; + } + } #endif - n = fread_crc(&text[(unsigned)(txtsiz - dicsiz)], - (unsigned)dicsiz, infile); + n = fread_crc(&text[(unsigned)(txtsiz - dicsiz)], + (unsigned)dicsiz, infile); - remainder += n; - encoded_origsize += n; + remainder += n; + encoded_origsize += n; - pos -= dicsiz; - for (i = 0; i < HSHSIZ; i++) { - j = hash[i]; - hash[i] = (j > dicsiz) ? j - dicsiz : NIL; - too_flag[i] = 0; - } - for (i = 0; i < dicsiz; i++) { - j = prev[i]; - prev[i] = (j > dicsiz) ? j - dicsiz : NIL; - } + pos -= dicsiz; + for (i = 0; i < HSHSIZ; i++) + { + j = hash[i]; + hash[i] = (j > dicsiz) ? j - dicsiz : NIL; + too_flag[i] = 0; + } + for (i = 0; i < dicsiz; i++) + { + j = prev[i]; + prev[i] = (j > dicsiz) ? j - dicsiz : NIL; + } } @@ -209,8 +228,8 @@ static void update() static void insert() { - prev[pos & (dicsiz - 1)] = hash[hval]; - hash[hval] = pos; + prev[pos & (dicsiz - 1)] = hash[hval]; + hash[hval] = pos; } @@ -218,61 +237,70 @@ static void insert() static void match_insert() { - unsigned int scan_pos, scan_end, len; - unsigned char *a, *b; - unsigned int chain, off, h, max; + unsigned int scan_pos, scan_end, len; + unsigned char *a, *b; + unsigned int chain, off, h, max; - max = maxmatch; /* MAXMATCH; */ - if (matchlen < THRESHOLD - 1) matchlen = THRESHOLD - 1; - matchpos = pos; + max = maxmatch; /* MAXMATCH; */ + if (matchlen < THRESHOLD - 1) matchlen = THRESHOLD - 1; + matchpos = pos; - off = 0; - for (h = hval; too_flag[h] && off < maxmatch - THRESHOLD; ) { - h = ((h << 5) ^ text[pos + (++off) + 2]) & (unsigned)(HSHSIZ - 1); - } - if (off == maxmatch - THRESHOLD) off = 0; - for (;;) { - chain = 0; - scan_pos = hash[h]; - scan_end = (pos > dicsiz) ? pos + off - dicsiz : off; - while (scan_pos > scan_end) { - chain++; + off = 0; + for (h = hval; too_flag[h] && off < maxmatch - THRESHOLD; ) + { + h = ((h << 5) ^ text[pos + (++off) + 2]) & (unsigned)(HSHSIZ - 1); + } + if (off == maxmatch - THRESHOLD) off = 0; + for (;;) + { + chain = 0; + scan_pos = hash[h]; + scan_end = (pos > dicsiz) ? pos + off - dicsiz : off; + while (scan_pos > scan_end) + { + chain++; - if (text[scan_pos + matchlen - off] == text[pos + matchlen]) { - { - a = text + scan_pos - off; b = text + pos; - for (len = 0; len < max && *a++ == *b++; len++); - } + if (text[scan_pos + matchlen - off] == text[pos + matchlen]) + { + { + a = text + scan_pos - off; + b = text + pos; + for (len = 0; len < max && *a++ == *b++; len++); + } - if (len > matchlen) { - matchpos = scan_pos - off; - if ((matchlen = len) == max) { - break; - } + if (len > matchlen) + { + matchpos = scan_pos - off; + if ((matchlen = len) == max) + { + break; + } #ifdef DEBUG - if (noslide) { - if (matchpos < dicsiz) { - printf("matchpos=%u scan_pos=%u dicsiz=%u\n" - ,matchpos, scan_pos, dicsiz); - } - } + if (noslide) + { + if (matchpos < dicsiz) + { + printf("matchpos=%u scan_pos=%u dicsiz=%u\n" + ,matchpos, scan_pos, dicsiz); + } + } #endif - } - } - scan_pos = prev[scan_pos & (dicsiz - 1)]; - } + } + } + scan_pos = prev[scan_pos & (dicsiz - 1)]; + } - if (chain >= LIMIT) - too_flag[h] = 1; + if (chain >= LIMIT) + too_flag[h] = 1; - if (matchlen > off + 2 || off == 0) - break; - max = off + 2; - off = 0; - h = hval; - } - prev[pos & (dicsiz - 1)] = hash[hval]; - hash[hval] = pos; + if (matchlen > off + 2 || off == 0) + break; + max = off + 2; + off = 0; + h = hval; + } + prev[pos & (dicsiz - 1)] = hash[hval]; + hash[hval] = pos; } @@ -280,98 +308,108 @@ static void match_insert() static void get_next() { - remainder--; - if (++pos >= txtsiz - maxmatch) { - update(); + remainder--; + if (++pos >= txtsiz - maxmatch) + { + update(); #ifdef DEBUG - noslide = 0; + noslide = 0; #endif - } - hval = ((hval << 5) ^ text[pos + 2]) & (unsigned)(HSHSIZ - 1); + } + hval = ((hval << 5) ^ text[pos + 2]) & (unsigned)(HSHSIZ - 1); } void encode(lhinterface) struct interfacing *lhinterface; { - int lastmatchlen; - unsigned int lastmatchoffset; + int lastmatchlen; + unsigned int lastmatchoffset; #ifdef DEBUG - unsigned int addr; + unsigned int addr; - addr = 0; + addr = 0; - fout = fopen("en", "wt"); - if (fout == NULL) exit(1); + fout = fopen("en", "wt"); + if (fout == NULL) exit(1); #endif - infile = lhinterface->infile; - outfile = lhinterface->outfile; - origsize = lhinterface->original; - compsize = count = 0L; - crc = unpackable = 0; + infile = lhinterface->infile; + outfile = lhinterface->outfile; + origsize = lhinterface->original; + compsize = count = 0L; + crc = unpackable = 0; - /* encode_alloc(); */ /* allocate_memory(); */ - init_slide(); + /* encode_alloc(); */ /* allocate_memory(); */ + init_slide(); - encode_set.encode_start(); - memset(&text[0], ' ', (long)TXTSIZ); + encode_set.encode_start(); + memset(&text[0], ' ', (long)TXTSIZ); - remainder = fread_crc(&text[dicsiz], txtsiz-dicsiz, infile); - encoded_origsize = remainder; - matchlen = THRESHOLD - 1; + remainder = fread_crc(&text[dicsiz], txtsiz-dicsiz, infile); + encoded_origsize = remainder; + matchlen = THRESHOLD - 1; - pos = dicsiz; + pos = dicsiz; - if (matchlen > remainder) matchlen = remainder; - hval = ((((text[dicsiz] << 5) ^ text[dicsiz + 1]) << 5) - ^ text[dicsiz + 2]) & (unsigned)(HSHSIZ - 1); + if (matchlen > remainder) matchlen = remainder; + hval = ((((text[dicsiz] << 5) ^ text[dicsiz + 1]) << 5) + ^ text[dicsiz + 2]) & (unsigned)(HSHSIZ - 1); - insert(); - while (remainder > 0 && ! unpackable) { - lastmatchlen = matchlen; lastmatchoffset = pos - matchpos - 1; - --matchlen; - get_next(); match_insert(); - if (matchlen > remainder) matchlen = remainder; - if (matchlen > lastmatchlen || lastmatchlen < THRESHOLD) { - encode_set.output(text[pos - 1], 0); + insert(); + while (remainder > 0 && ! unpackable) + { + lastmatchlen = matchlen; + lastmatchoffset = pos - matchpos - 1; + --matchlen; + get_next(); + match_insert(); + if (matchlen > remainder) matchlen = remainder; + if (matchlen > lastmatchlen || lastmatchlen < THRESHOLD) + { + encode_set.output(text[pos - 1], 0); #ifdef DEBUG - fprintf(fout, "%u C %02X\n", addr, text[pos-1]); - addr++; + fprintf(fout, "%u C %02X\n", addr, text[pos-1]); + addr++; #endif - count++; - } else { - encode_set.output(lastmatchlen + (UCHAR_MAX + 1 - THRESHOLD), - (lastmatchoffset) & (dicsiz-1) ); - --lastmatchlen; + count++; + } + else + { + encode_set.output(lastmatchlen + (UCHAR_MAX + 1 - THRESHOLD), + (lastmatchoffset) & (dicsiz-1) ); + --lastmatchlen; #ifdef DEBUG - fprintf(fout, "%u M %u %u ", addr, - lastmatchoffset & (dicsiz-1), lastmatchlen+1); - addr += lastmatchlen +1 ; + fprintf(fout, "%u M %u %u ", addr, + lastmatchoffset & (dicsiz-1), lastmatchlen+1); + addr += lastmatchlen +1 ; - { - int t,cc; - for (t=0; t 0) { - get_next(); insert(); - count++; - } - get_next(); - matchlen = THRESHOLD - 1; - match_insert(); - if (matchlen > remainder) matchlen = remainder; - } - } - encode_set.encode_end(); + while (--lastmatchlen > 0) + { + get_next(); + insert(); + count++; + } + get_next(); + matchlen = THRESHOLD - 1; + match_insert(); + if (matchlen > remainder) matchlen = remainder; + } + } + encode_set.encode_end(); - interface->packed = compsize; - interface->original = encoded_origsize; + interface->packed = compsize; + interface->original = encoded_origsize; } /* ------------------------------------------------------------------------ */ @@ -380,77 +418,84 @@ struct interfacing *lhinterface; int decode(struct interfacing *lhinterface) { - unsigned int i, j, k, c; - unsigned int dicsiz1, offset; - unsigned char *dtext; + unsigned int i, j, k, c; + unsigned int dicsiz1, offset; + unsigned char *dtext; #ifdef DEBUG - fout = fopen("de", "wt"); - if (fout == NULL) exit(1); + fout = fopen("de", "wt"); + if (fout == NULL) exit(1); #endif - infile = lhinterface->infile; - outfile = lhinterface->outfile; - dicbit = lhinterface->dicbit; - origsize = lhinterface->original; - compsize = lhinterface->packed; - decode_set = decode_define[lhinterface->method - 1]; + infile = lhinterface->infile; + outfile = lhinterface->outfile; + dicbit = lhinterface->dicbit; + origsize = lhinterface->original; + compsize = lhinterface->packed; + decode_set = decode_define[lhinterface->method - 1]; - crc = 0; - prev_char = -1; - dicsiz = 1L << dicbit; - dtext = (unsigned char *) malloc(dicsiz); - if (dtext == NULL) - return 0; - for (i=0; imethod == LARC_METHOD_NUM) ? 0x100 - 2 : 0x100 - 3; - lhcount = 0; - loc = 0; - while (lhcount < origsize) { - c = decode_set.decode_c(); - if (c <= UCHAR_MAX) { + crc = 0; + prev_char = -1; + dicsiz = 1L << dicbit; + dtext = (unsigned char *) malloc(dicsiz); + if (dtext == NULL) + return 0; + for (i=0; imethod == LARC_METHOD_NUM) ? 0x100 - 2 : 0x100 - 3; + lhcount = 0; + loc = 0; + while (lhcount < origsize) + { + c = decode_set.decode_c(); + if (c <= UCHAR_MAX) + { #ifdef DEBUG - fprintf(fout, "%u C %02X\n", lhcount, c); + fprintf(fout, "%u C %02X\n", lhcount, c); #endif - dtext[loc++] = c; - if (loc == dicsiz) { - fwrite_crc(dtext, dicsiz, outfile); - loc = 0; - } - lhcount++; - } - else { - j = c - offset; - i = (loc - decode_set.decode_p() - 1) & dicsiz1; + dtext[loc++] = c; + if (loc == dicsiz) + { + fwrite_crc(dtext, dicsiz, outfile); + loc = 0; + } + lhcount++; + } + else + { + j = c - offset; + i = (loc - decode_set.decode_p() - 1) & dicsiz1; #ifdef DEBUG - fprintf(fout, "%u M %u %u ", lhcount, (loc-1-i) & dicsiz1, j); + fprintf(fout, "%u M %u %u ", lhcount, (loc-1-i) & dicsiz1, j); #endif - lhcount += j; - for (k = 0; k < j; k++) { - c = dtext[(i + k) & dicsiz1]; + lhcount += j; + for (k = 0; k < j; k++) + { + c = dtext[(i + k) & dicsiz1]; #ifdef DEBUG - fprintf(fout, "%02X ", c & 0xff); + fprintf(fout, "%02X ", c & 0xff); #endif - dtext[loc++] = c; - if (loc == dicsiz) { - fwrite_crc(dtext, dicsiz, outfile); - loc = 0; - } - } + dtext[loc++] = c; + if (loc == dicsiz) + { + fwrite_crc(dtext, dicsiz, outfile); + loc = 0; + } + } #ifdef DEBUG - fprintf(fout, "\n"); + fprintf(fout, "\n"); #endif - } - } - if (loc != 0) { - fwrite_crc(dtext, loc, outfile); - } + } + } + if (loc != 0) + { + fwrite_crc(dtext, loc, outfile); + } - free(dtext); + free(dtext); return 1; } diff --git a/src/archivers/lha/uae_lha.cpp b/src/archivers/lha/uae_lha.cpp index 828676b5..423b1826 100644 --- a/src/archivers/lha/uae_lha.cpp +++ b/src/archivers/lha/uae_lha.cpp @@ -11,11 +11,11 @@ static char *methods[] = { - LZHUFF0_METHOD, LZHUFF1_METHOD, LZHUFF2_METHOD, LZHUFF3_METHOD, - LZHUFF4_METHOD, LZHUFF5_METHOD, LZHUFF6_METHOD, LZHUFF7_METHOD, - LARC_METHOD, LARC5_METHOD, LARC4_METHOD, - LZHDIRS_METHOD, - NULL + LZHUFF0_METHOD, LZHUFF1_METHOD, LZHUFF2_METHOD, LZHUFF3_METHOD, + LZHUFF4_METHOD, LZHUFF5_METHOD, LZHUFF6_METHOD, LZHUFF7_METHOD, + LARC_METHOD, LARC5_METHOD, LARC4_METHOD, + LZHDIRS_METHOD, + NULL }; struct zvolume *archive_directory_lha(struct zfile *zf) @@ -27,46 +27,54 @@ struct zvolume *archive_directory_lha(struct zfile *zf) _tzset(); zv = zvolume_alloc(zf, ArchiveFormatLHA, NULL, NULL); - while (get_header(zf, &hdr)) { - struct znode *zn; - int method; + while (get_header(zf, &hdr)) + { + struct znode *zn; + int method; - for (i = 0; methods[i]; i++) { - if (!strcmp(methods[i], hdr.method)) - method = i; - } - memset(&zai, 0, sizeof zai); - zai.name = au (hdr.name); - zai.size = hdr.original_size; - zai.flags = hdr.attribute; - if (hdr.extend_type != 0) { - zai.tv.tv_sec = hdr.unix_last_modified_stamp -= _timezone; - } else { - struct tm t; - uae_u32 v = hdr.last_modified_stamp; + for (i = 0; methods[i]; i++) + { + if (!strcmp(methods[i], hdr.method)) + method = i; + } + memset(&zai, 0, sizeof zai); + zai.name = au (hdr.name); + zai.size = hdr.original_size; + zai.flags = hdr.attribute; + if (hdr.extend_type != 0) + { + zai.tv.tv_sec = hdr.unix_last_modified_stamp -= _timezone; + } + else + { + struct tm t; + uae_u32 v = hdr.last_modified_stamp; + + t.tm_sec = (v & 0x1f) * 2; + t.tm_min = (v >> 5) & 0x3f; + t.tm_hour = (v >> 11) & 0x1f; + t.tm_mday = (v >> 16) & 0x1f; + t.tm_mon = ((v >> 21) & 0xf) - 1; + t.tm_year = ((v >> 25) & 0x7f) + 80; + zai.tv.tv_sec = mktime (&t) - _timezone; + } + if (hdr.name[strlen(hdr.name) + 1] != 0) + zai.comment = au (&hdr.name[strlen(hdr.name) + 1]); + if (method == LZHDIRS_METHOD_NUM) + { + zvolume_adddir_abs(zv, &zai); + } + else + { + zn = zvolume_addfile_abs(zv, &zai); + zn->offset = zfile_ftell(zf); + zn->packedsize = hdr.packed_size; + zn->method = method; + } + xfree (zai.name); + xfree (zai.comment); + zfile_fseek(zf, hdr.packed_size, SEEK_CUR); - t.tm_sec = (v & 0x1f) * 2; - t.tm_min = (v >> 5) & 0x3f; - t.tm_hour = (v >> 11) & 0x1f; - t.tm_mday = (v >> 16) & 0x1f; - t.tm_mon = ((v >> 21) & 0xf) - 1; - t.tm_year = ((v >> 25) & 0x7f) + 80; - zai.tv.tv_sec = mktime (&t) - _timezone; - } - if (hdr.name[strlen(hdr.name) + 1] != 0) - zai.comment = au (&hdr.name[strlen(hdr.name) + 1]); - if (method == LZHDIRS_METHOD_NUM) { - zvolume_adddir_abs(zv, &zai); - } else { - zn = zvolume_addfile_abs(zv, &zai); - zn->offset = zfile_ftell(zf); - zn->packedsize = hdr.packed_size; - zn->method = method; - } - xfree (zai.name); - xfree (zai.comment); - zfile_fseek(zf, hdr.packed_size, SEEK_CUR); - } return zv; } @@ -86,26 +94,27 @@ struct zfile *archive_access_lha(struct znode *zn) lhinterface.original = zn->size; lhinterface.packed = zn->packedsize; - switch (zn->method) { - case LZHUFF0_METHOD_NUM: - case LARC4_METHOD_NUM: - zfile_fread(out->data, zn->size, 1, zf); - break; - case LARC_METHOD_NUM: /* -lzs- */ - lhinterface.dicbit = 11; - decode(&lhinterface); + switch (zn->method) + { + case LZHUFF0_METHOD_NUM: + case LARC4_METHOD_NUM: + zfile_fread(out->data, zn->size, 1, zf); break; - case LZHUFF1_METHOD_NUM: /* -lh1- */ - case LZHUFF4_METHOD_NUM: /* -lh4- */ - case LARC5_METHOD_NUM: /* -lz5- */ - lhinterface.dicbit = 12; - decode(&lhinterface); - break; - case LZHUFF6_METHOD_NUM: /* -lh6- */ /* Added N.Watazaki (^_^) */ - case LZHUFF7_METHOD_NUM: /* -lh7- */ - lhinterface.dicbit = (zn->method - LZHUFF6_METHOD_NUM) + 15; - default: - decode(&lhinterface); + case LARC_METHOD_NUM: /* -lzs- */ + lhinterface.dicbit = 11; + decode(&lhinterface); + break; + case LZHUFF1_METHOD_NUM: /* -lh1- */ + case LZHUFF4_METHOD_NUM: /* -lh4- */ + case LARC5_METHOD_NUM: /* -lz5- */ + lhinterface.dicbit = 12; + decode(&lhinterface); + break; + case LZHUFF6_METHOD_NUM: /* -lh6- */ /* Added N.Watazaki (^_^) */ + case LZHUFF7_METHOD_NUM: /* -lh7- */ + lhinterface.dicbit = (zn->method - LZHUFF6_METHOD_NUM) + 15; + default: + decode(&lhinterface); } return out; } diff --git a/src/archivers/lha/util.cpp b/src/archivers/lha/util.cpp index 1492da16..94087fb0 100644 --- a/src/archivers/lha/util.cpp +++ b/src/archivers/lha/util.cpp @@ -23,29 +23,33 @@ extern unsigned short crc; /* ------------------------------------------------------------------------ */ unsigned char *convdelim(unsigned char *path, unsigned char delim) { - unsigned char c; - unsigned char *p; + unsigned char c; + unsigned char *p; #ifdef MULTIBYTE_CHAR - int kflg; + int kflg; - kflg = 0; + kflg = 0; #endif - for (p = path; (c = *p) != 0; p++) { + for (p = path; (c = *p) != 0; p++) + { #ifdef MULTIBYTE_CHAR - if (kflg) { - kflg = 0; - } - else if (MULTIBYTE_FIRST_P(c)) { - kflg = 1; - } - else + if (kflg) + { + kflg = 0; + } + else if (MULTIBYTE_FIRST_P(c)) + { + kflg = 1; + } + else #endif - if (c == '\\' || c == DELIM || c == DELIM2) { - *p = delim; - path = p + 1; - } - } - return path; + if (c == '\\' || c == DELIM || c == DELIM2) + { + *p = delim; + path = p + 1; + } + } + return path; } @@ -57,14 +61,14 @@ unsigned char *convdelim(unsigned char *path, unsigned char delim) #ifdef NOSTRDUP char * strdup(buf) - char *buf; +char *buf; { - char *p; + char *p; - if ((p = (char *) malloc(strlen(buf) + 1)) == NULL) - return NULL; - strcpy(p, buf); - return p; + if ((p = (char *) malloc(strlen(buf) + 1)) == NULL) + return NULL; + strcpy(p, buf); + return p; } #endif @@ -76,22 +80,24 @@ strdup(buf) #if 0 && defined(NOBSTRING) && !defined(__STDC__) void * memmove(dst, src, cnt) - register char *dst, *src; - register int cnt; +register char *dst, *src; +register int cnt; { - if (dst == src) - return dst; - if (src > dst) { - while (--cnt >= 0) - *dst++ = *src++; - } - else { - dst += cnt; - src += cnt; - while (--cnt >= 0) - *--dst = *--src; - } - return dst; + if (dst == src) + return dst; + if (src > dst) + { + while (--cnt >= 0) + *dst++ = *src++; + } + else + { + dst += cnt; + src += cnt; + while (--cnt >= 0) + *--dst = *--src; + } + return dst; } #endif @@ -106,32 +112,35 @@ memmove(dst, src, cnt) /* ------------------------------------------------------------------------ */ int rename(from, to) - char *from, *to; +char *from, *to; { - struct stat s1, s2; - extern int errno; + struct stat s1, s2; + extern int errno; - if (stat(from, &s1) < 0) - return (-1); - /* is 'FROM' file a directory? */ - if ((s1.st_mode & S_IFMT) == S_IFDIR) { - errno = ENOTDIR; - return (-1); - } - if (stat(to, &s2) >= 0) { /* 'TO' exists! */ - /* is 'TO' file a directory? */ - if ((s2.st_mode & S_IFMT) == S_IFDIR) { - errno = EISDIR; - return (-1); - } - if (unlink(to) < 0) - return (-1); - } - if (link(from, to) < 0) - return (-1); - if (unlink(from) < 0) - return (-1); - return (0); + if (stat(from, &s1) < 0) + return (-1); + /* is 'FROM' file a directory? */ + if ((s1.st_mode & S_IFMT) == S_IFDIR) + { + errno = ENOTDIR; + return (-1); + } + if (stat(to, &s2) >= 0) /* 'TO' exists! */ + { + /* is 'TO' file a directory? */ + if ((s2.st_mode & S_IFMT) == S_IFDIR) + { + errno = EISDIR; + return (-1); + } + if (unlink(to) < 0) + return (-1); + } + if (link(from, to) < 0) + return (-1); + if (unlink(from) < 0) + return (-1); + return (0); } #endif /* NOFTRUNCATE */ /* ------------------------------------------------------------------------ */ @@ -145,55 +154,59 @@ rename(from, to) #endif int rmdir(path) - char *path; +char *path; { - int stat, rtn = 0; - char *cmdname; - if ((cmdname = (char *) malloc(strlen(RMDIRPATH) + 1 + strlen(path) + 1)) - == 0) - return (-1); - strcpy(cmdname, RMDIRPATH); - *(cmdname + strlen(RMDIRPATH)) = ' '; - strcpy(cmdname + strlen(RMDIRPATH) + 1, path); - if ((stat = system(cmdname)) < 0) - rtn = -1; /* fork or exec error */ - else if (stat) { /* RMDIR command error */ - errno = EIO; - rtn = -1; - } - free(cmdname); - return (rtn); + int stat, rtn = 0; + char *cmdname; + if ((cmdname = (char *) malloc(strlen(RMDIRPATH) + 1 + strlen(path) + 1)) + == 0) + return (-1); + strcpy(cmdname, RMDIRPATH); + *(cmdname + strlen(RMDIRPATH)) = ' '; + strcpy(cmdname + strlen(RMDIRPATH) + 1, path); + if ((stat = system(cmdname)) < 0) + rtn = -1; /* fork or exec error */ + else if (stat) /* RMDIR command error */ + { + errno = EIO; + rtn = -1; + } + free(cmdname); + return (rtn); } /* ------------------------------------------------------------------------ */ int mkdir(path, mode) - char *path; - int mode; +char *path; +int mode; { - int child, stat; - char *cmdname, *cmdpath = MKDIRPATH; - if ((cmdname = (char *) strrchr(cmdpath, '/')) == (char *) 0) - cmdname = cmdpath; - if ((child = fork()) < 0) - return (-1); /* fork error */ - else if (child) { /* parent process */ - while (child != wait(&stat)) /* ignore signals */ - continue; - } - else { /* child process */ - int maskvalue; - maskvalue = umask(0); /* get current umask() value */ - umask(maskvalue | (0777 & ~mode)); /* set it! */ - execl(cmdpath, cmdname, path, (char *) 0); - /* never come here except execl is error */ - return (-1); - } - if (stat != 0) { - errno = EIO; /* cannot get error num. */ - return (-1); - } - return (0); + int child, stat; + char *cmdname, *cmdpath = MKDIRPATH; + if ((cmdname = (char *) strrchr(cmdpath, '/')) == (char *) 0) + cmdname = cmdpath; + if ((child = fork()) < 0) + return (-1); /* fork error */ + else if (child) /* parent process */ + { + while (child != wait(&stat)) /* ignore signals */ + continue; + } + else /* child process */ + { + int maskvalue; + maskvalue = umask(0); /* get current umask() value */ + umask(maskvalue | (0777 & ~mode)); /* set it! */ + execl(cmdpath, cmdname, path, (char *) 0); + /* never come here except execl is error */ + return (-1); + } + if (stat != 0) + { + errno = EIO; /* cannot get error num. */ + return (-1); + } + return (0); } #endif @@ -204,20 +217,20 @@ mkdir(path, mode) #ifndef USESTRCASECMP static int my_toupper(int n) { - if (n >= 'a' && n <= 'z') - return n & (~('a' - 'A')); - return n; + if (n >= 'a' && n <= 'z') + return n & (~('a' - 'A')); + return n; } /* ------------------------------------------------------------------------ */ int strucmp(char *s, char *t) { - while (my_toupper(*s++) == my_toupper(*t++)) - if (!*s || !*t) - break; - if (!*s && !*t) - return 0; - return 1; + while (my_toupper(*s++) == my_toupper(*t++)) + if (!*s || !*t) + break; + if (!*s && !*t) + return 0; + return 1; } #endif @@ -226,13 +239,13 @@ int strucmp(char *s, char *t) /* Public Domain memset(3) */ char * memset(s, c, n) - char *s; - int c, n; +char *s; +int c, n; { - char *p = s; - while (n--) - *p++ = (char) c; - return s; + char *p = s; + while (n--) + *p++ = (char) c; + return s; } #endif diff --git a/src/archivers/lzx/unlzx.cpp b/src/archivers/lzx/unlzx.cpp index 373a6ce2..588078bd 100644 --- a/src/archivers/lzx/unlzx.cpp +++ b/src/archivers/lzx/unlzx.cpp @@ -67,73 +67,73 @@ static unsigned int sum; static const unsigned int crc_table[256]= { - 0x00000000,0x77073096,0xEE0E612C,0x990951BA,0x076DC419,0x706AF48F, - 0xE963A535,0x9E6495A3,0x0EDB8832,0x79DCB8A4,0xE0D5E91E,0x97D2D988, - 0x09B64C2B,0x7EB17CBD,0xE7B82D07,0x90BF1D91,0x1DB71064,0x6AB020F2, - 0xF3B97148,0x84BE41DE,0x1ADAD47D,0x6DDDE4EB,0xF4D4B551,0x83D385C7, - 0x136C9856,0x646BA8C0,0xFD62F97A,0x8A65C9EC,0x14015C4F,0x63066CD9, - 0xFA0F3D63,0x8D080DF5,0x3B6E20C8,0x4C69105E,0xD56041E4,0xA2677172, - 0x3C03E4D1,0x4B04D447,0xD20D85FD,0xA50AB56B,0x35B5A8FA,0x42B2986C, - 0xDBBBC9D6,0xACBCF940,0x32D86CE3,0x45DF5C75,0xDCD60DCF,0xABD13D59, - 0x26D930AC,0x51DE003A,0xC8D75180,0xBFD06116,0x21B4F4B5,0x56B3C423, - 0xCFBA9599,0xB8BDA50F,0x2802B89E,0x5F058808,0xC60CD9B2,0xB10BE924, - 0x2F6F7C87,0x58684C11,0xC1611DAB,0xB6662D3D,0x76DC4190,0x01DB7106, - 0x98D220BC,0xEFD5102A,0x71B18589,0x06B6B51F,0x9FBFE4A5,0xE8B8D433, - 0x7807C9A2,0x0F00F934,0x9609A88E,0xE10E9818,0x7F6A0DBB,0x086D3D2D, - 0x91646C97,0xE6635C01,0x6B6B51F4,0x1C6C6162,0x856530D8,0xF262004E, - 0x6C0695ED,0x1B01A57B,0x8208F4C1,0xF50FC457,0x65B0D9C6,0x12B7E950, - 0x8BBEB8EA,0xFCB9887C,0x62DD1DDF,0x15DA2D49,0x8CD37CF3,0xFBD44C65, - 0x4DB26158,0x3AB551CE,0xA3BC0074,0xD4BB30E2,0x4ADFA541,0x3DD895D7, - 0xA4D1C46D,0xD3D6F4FB,0x4369E96A,0x346ED9FC,0xAD678846,0xDA60B8D0, - 0x44042D73,0x33031DE5,0xAA0A4C5F,0xDD0D7CC9,0x5005713C,0x270241AA, - 0xBE0B1010,0xC90C2086,0x5768B525,0x206F85B3,0xB966D409,0xCE61E49F, - 0x5EDEF90E,0x29D9C998,0xB0D09822,0xC7D7A8B4,0x59B33D17,0x2EB40D81, - 0xB7BD5C3B,0xC0BA6CAD,0xEDB88320,0x9ABFB3B6,0x03B6E20C,0x74B1D29A, - 0xEAD54739,0x9DD277AF,0x04DB2615,0x73DC1683,0xE3630B12,0x94643B84, - 0x0D6D6A3E,0x7A6A5AA8,0xE40ECF0B,0x9309FF9D,0x0A00AE27,0x7D079EB1, - 0xF00F9344,0x8708A3D2,0x1E01F268,0x6906C2FE,0xF762575D,0x806567CB, - 0x196C3671,0x6E6B06E7,0xFED41B76,0x89D32BE0,0x10DA7A5A,0x67DD4ACC, - 0xF9B9DF6F,0x8EBEEFF9,0x17B7BE43,0x60B08ED5,0xD6D6A3E8,0xA1D1937E, - 0x38D8C2C4,0x4FDFF252,0xD1BB67F1,0xA6BC5767,0x3FB506DD,0x48B2364B, - 0xD80D2BDA,0xAF0A1B4C,0x36034AF6,0x41047A60,0xDF60EFC3,0xA867DF55, - 0x316E8EEF,0x4669BE79,0xCB61B38C,0xBC66831A,0x256FD2A0,0x5268E236, - 0xCC0C7795,0xBB0B4703,0x220216B9,0x5505262F,0xC5BA3BBE,0xB2BD0B28, - 0x2BB45A92,0x5CB36A04,0xC2D7FFA7,0xB5D0CF31,0x2CD99E8B,0x5BDEAE1D, - 0x9B64C2B0,0xEC63F226,0x756AA39C,0x026D930A,0x9C0906A9,0xEB0E363F, - 0x72076785,0x05005713,0x95BF4A82,0xE2B87A14,0x7BB12BAE,0x0CB61B38, - 0x92D28E9B,0xE5D5BE0D,0x7CDCEFB7,0x0BDBDF21,0x86D3D2D4,0xF1D4E242, - 0x68DDB3F8,0x1FDA836E,0x81BE16CD,0xF6B9265B,0x6FB077E1,0x18B74777, - 0x88085AE6,0xFF0F6A70,0x66063BCA,0x11010B5C,0x8F659EFF,0xF862AE69, - 0x616BFFD3,0x166CCF45,0xA00AE278,0xD70DD2EE,0x4E048354,0x3903B3C2, - 0xA7672661,0xD06016F7,0x4969474D,0x3E6E77DB,0xAED16A4A,0xD9D65ADC, - 0x40DF0B66,0x37D83BF0,0xA9BCAE53,0xDEBB9EC5,0x47B2CF7F,0x30B5FFE9, - 0xBDBDF21C,0xCABAC28A,0x53B39330,0x24B4A3A6,0xBAD03605,0xCDD70693, - 0x54DE5729,0x23D967BF,0xB3667A2E,0xC4614AB8,0x5D681B02,0x2A6F2B94, - 0xB40BBE37,0xC30C8EA1,0x5A05DF1B,0x2D02EF8D + 0x00000000,0x77073096,0xEE0E612C,0x990951BA,0x076DC419,0x706AF48F, + 0xE963A535,0x9E6495A3,0x0EDB8832,0x79DCB8A4,0xE0D5E91E,0x97D2D988, + 0x09B64C2B,0x7EB17CBD,0xE7B82D07,0x90BF1D91,0x1DB71064,0x6AB020F2, + 0xF3B97148,0x84BE41DE,0x1ADAD47D,0x6DDDE4EB,0xF4D4B551,0x83D385C7, + 0x136C9856,0x646BA8C0,0xFD62F97A,0x8A65C9EC,0x14015C4F,0x63066CD9, + 0xFA0F3D63,0x8D080DF5,0x3B6E20C8,0x4C69105E,0xD56041E4,0xA2677172, + 0x3C03E4D1,0x4B04D447,0xD20D85FD,0xA50AB56B,0x35B5A8FA,0x42B2986C, + 0xDBBBC9D6,0xACBCF940,0x32D86CE3,0x45DF5C75,0xDCD60DCF,0xABD13D59, + 0x26D930AC,0x51DE003A,0xC8D75180,0xBFD06116,0x21B4F4B5,0x56B3C423, + 0xCFBA9599,0xB8BDA50F,0x2802B89E,0x5F058808,0xC60CD9B2,0xB10BE924, + 0x2F6F7C87,0x58684C11,0xC1611DAB,0xB6662D3D,0x76DC4190,0x01DB7106, + 0x98D220BC,0xEFD5102A,0x71B18589,0x06B6B51F,0x9FBFE4A5,0xE8B8D433, + 0x7807C9A2,0x0F00F934,0x9609A88E,0xE10E9818,0x7F6A0DBB,0x086D3D2D, + 0x91646C97,0xE6635C01,0x6B6B51F4,0x1C6C6162,0x856530D8,0xF262004E, + 0x6C0695ED,0x1B01A57B,0x8208F4C1,0xF50FC457,0x65B0D9C6,0x12B7E950, + 0x8BBEB8EA,0xFCB9887C,0x62DD1DDF,0x15DA2D49,0x8CD37CF3,0xFBD44C65, + 0x4DB26158,0x3AB551CE,0xA3BC0074,0xD4BB30E2,0x4ADFA541,0x3DD895D7, + 0xA4D1C46D,0xD3D6F4FB,0x4369E96A,0x346ED9FC,0xAD678846,0xDA60B8D0, + 0x44042D73,0x33031DE5,0xAA0A4C5F,0xDD0D7CC9,0x5005713C,0x270241AA, + 0xBE0B1010,0xC90C2086,0x5768B525,0x206F85B3,0xB966D409,0xCE61E49F, + 0x5EDEF90E,0x29D9C998,0xB0D09822,0xC7D7A8B4,0x59B33D17,0x2EB40D81, + 0xB7BD5C3B,0xC0BA6CAD,0xEDB88320,0x9ABFB3B6,0x03B6E20C,0x74B1D29A, + 0xEAD54739,0x9DD277AF,0x04DB2615,0x73DC1683,0xE3630B12,0x94643B84, + 0x0D6D6A3E,0x7A6A5AA8,0xE40ECF0B,0x9309FF9D,0x0A00AE27,0x7D079EB1, + 0xF00F9344,0x8708A3D2,0x1E01F268,0x6906C2FE,0xF762575D,0x806567CB, + 0x196C3671,0x6E6B06E7,0xFED41B76,0x89D32BE0,0x10DA7A5A,0x67DD4ACC, + 0xF9B9DF6F,0x8EBEEFF9,0x17B7BE43,0x60B08ED5,0xD6D6A3E8,0xA1D1937E, + 0x38D8C2C4,0x4FDFF252,0xD1BB67F1,0xA6BC5767,0x3FB506DD,0x48B2364B, + 0xD80D2BDA,0xAF0A1B4C,0x36034AF6,0x41047A60,0xDF60EFC3,0xA867DF55, + 0x316E8EEF,0x4669BE79,0xCB61B38C,0xBC66831A,0x256FD2A0,0x5268E236, + 0xCC0C7795,0xBB0B4703,0x220216B9,0x5505262F,0xC5BA3BBE,0xB2BD0B28, + 0x2BB45A92,0x5CB36A04,0xC2D7FFA7,0xB5D0CF31,0x2CD99E8B,0x5BDEAE1D, + 0x9B64C2B0,0xEC63F226,0x756AA39C,0x026D930A,0x9C0906A9,0xEB0E363F, + 0x72076785,0x05005713,0x95BF4A82,0xE2B87A14,0x7BB12BAE,0x0CB61B38, + 0x92D28E9B,0xE5D5BE0D,0x7CDCEFB7,0x0BDBDF21,0x86D3D2D4,0xF1D4E242, + 0x68DDB3F8,0x1FDA836E,0x81BE16CD,0xF6B9265B,0x6FB077E1,0x18B74777, + 0x88085AE6,0xFF0F6A70,0x66063BCA,0x11010B5C,0x8F659EFF,0xF862AE69, + 0x616BFFD3,0x166CCF45,0xA00AE278,0xD70DD2EE,0x4E048354,0x3903B3C2, + 0xA7672661,0xD06016F7,0x4969474D,0x3E6E77DB,0xAED16A4A,0xD9D65ADC, + 0x40DF0B66,0x37D83BF0,0xA9BCAE53,0xDEBB9EC5,0x47B2CF7F,0x30B5FFE9, + 0xBDBDF21C,0xCABAC28A,0x53B39330,0x24B4A3A6,0xBAD03605,0xCDD70693, + 0x54DE5729,0x23D967BF,0xB3667A2E,0xC4614AB8,0x5D681B02,0x2A6F2B94, + 0xB40BBE37,0xC30C8EA1,0x5A05DF1B,0x2D02EF8D }; /* ---------------------------------------------------------------------- */ static const unsigned char table_one[32]= { - 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14 + 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14 }; static const unsigned int table_two[32]= { - 0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024, - 1536,2048,3072,4096,6144,8192,12288,16384,24576,32768,49152 + 0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024, + 1536,2048,3072,4096,6144,8192,12288,16384,24576,32768,49152 }; static const unsigned int table_three[16]= { - 0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767 + 0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767 }; static const unsigned char table_four[34]= { - 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, - 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 }; /* ---------------------------------------------------------------------- */ @@ -143,17 +143,18 @@ static const unsigned char table_four[34]= static void crc_calc(unsigned char *memory, unsigned int length) { - register unsigned int temp; + register unsigned int temp; - if(length) - { - temp = ~sum; /* was (sum ^ 4294967295) */ - do - { - temp = crc_table[(*memory++ ^ temp) & 255] ^ (temp >> 8); - } while(--length); - sum = ~temp; /* was (temp ^ 4294967295) */ - } + if(length) + { + temp = ~sum; /* was (sum ^ 4294967295) */ + do + { + temp = crc_table[(*memory++ ^ temp) & 255] ^ (temp >> 8); + } + while(--length); + sum = ~temp; /* was (temp ^ 4294967295) */ + } } /* ---------------------------------------------------------------------- */ @@ -162,112 +163,116 @@ static void crc_calc(unsigned char *memory, unsigned int length) /* There is an alternate algorithm which is faster but also more complex. */ static int make_decode_table(int number_symbols, int table_size, - unsigned char *length, unsigned short *table) + unsigned char *length, unsigned short *table) { - register unsigned char bit_num = 0; - register int symbol; - unsigned int leaf; /* could be a register */ - unsigned int table_mask, bit_mask, pos, fill, next_symbol, reverse; - int abort = 0; + register unsigned char bit_num = 0; + register int symbol; + unsigned int leaf; /* could be a register */ + unsigned int table_mask, bit_mask, pos, fill, next_symbol, reverse; + int abort = 0; - pos = 0; /* consistantly used as the current position in the decode table */ + pos = 0; /* consistantly used as the current position in the decode table */ - bit_mask = table_mask = 1 << table_size; + bit_mask = table_mask = 1 << table_size; - bit_mask >>= 1; /* don't do the first number */ - bit_num++; + bit_mask >>= 1; /* don't do the first number */ + bit_num++; - while((!abort) && (bit_num <= table_size)) - { - for(symbol = 0; symbol < number_symbols; symbol++) - { - if(length[symbol] == bit_num) - { - reverse = pos; /* reverse the order of the position's bits */ - leaf = 0; - fill = table_size; - do /* reverse the position */ + while((!abort) && (bit_num <= table_size)) { - leaf = (leaf << 1) + (reverse & 1); - reverse >>= 1; - } while(--fill); - if((pos += bit_mask) > table_mask) - { - abort = 1; - break; /* we will overrun the table! abort! */ + for(symbol = 0; symbol < number_symbols; symbol++) + { + if(length[symbol] == bit_num) + { + reverse = pos; /* reverse the order of the position's bits */ + leaf = 0; + fill = table_size; + do /* reverse the position */ + { + leaf = (leaf << 1) + (reverse & 1); + reverse >>= 1; + } + while(--fill); + if((pos += bit_mask) > table_mask) + { + abort = 1; + break; /* we will overrun the table! abort! */ + } + fill = bit_mask; + next_symbol = 1 << bit_num; + do + { + table[leaf] = symbol; + leaf += next_symbol; + } + while(--fill); + } + } + bit_mask >>= 1; + bit_num++; } - fill = bit_mask; - next_symbol = 1 << bit_num; - do - { - table[leaf] = symbol; - leaf += next_symbol; - } while(--fill); - } - } - bit_mask >>= 1; - bit_num++; - } - if((!abort) && (pos != table_mask)) - { - for(symbol = pos; symbol < table_mask; symbol++) /* clear the rest of the table */ - { - reverse = symbol; /* reverse the order of the position's bits */ - leaf = 0; - fill = table_size; - do /* reverse the position */ - { - leaf = (leaf << 1) + (reverse & 1); - reverse >>= 1; - } while(--fill); - table[leaf] = 0; - } - next_symbol = table_mask >> 1; - pos <<= 16; - table_mask <<= 16; - bit_mask = 32768; - - while((!abort) && (bit_num <= 16)) - { - for(symbol = 0; symbol < number_symbols; symbol++) - { - if(length[symbol] == bit_num) + if((!abort) && (pos != table_mask)) { - reverse = pos >> 16; /* reverse the order of the position's bits */ - leaf = 0; - fill = table_size; - do /* reverse the position */ - { - leaf = (leaf << 1) + (reverse & 1); - reverse >>= 1; - } while(--fill); - for(fill = 0; fill < bit_num - table_size; fill++) - { - if(table[leaf] == 0) - { - table[(next_symbol << 1)] = 0; - table[(next_symbol << 1) + 1] = 0; - table[leaf] = next_symbol++; - } - leaf = table[leaf] << 1; - leaf += (pos >> (15 - fill)) & 1; - } - table[leaf] = symbol; - if((pos += bit_mask) > table_mask) - { - abort = 1; - break; /* we will overrun the table! abort! */ - } + for(symbol = pos; symbol < table_mask; symbol++) /* clear the rest of the table */ + { + reverse = symbol; /* reverse the order of the position's bits */ + leaf = 0; + fill = table_size; + do /* reverse the position */ + { + leaf = (leaf << 1) + (reverse & 1); + reverse >>= 1; + } + while(--fill); + table[leaf] = 0; + } + next_symbol = table_mask >> 1; + pos <<= 16; + table_mask <<= 16; + bit_mask = 32768; + + while((!abort) && (bit_num <= 16)) + { + for(symbol = 0; symbol < number_symbols; symbol++) + { + if(length[symbol] == bit_num) + { + reverse = pos >> 16; /* reverse the order of the position's bits */ + leaf = 0; + fill = table_size; + do /* reverse the position */ + { + leaf = (leaf << 1) + (reverse & 1); + reverse >>= 1; + } + while(--fill); + for(fill = 0; fill < bit_num - table_size; fill++) + { + if(table[leaf] == 0) + { + table[(next_symbol << 1)] = 0; + table[(next_symbol << 1) + 1] = 0; + table[leaf] = next_symbol++; + } + leaf = table[leaf] << 1; + leaf += (pos >> (15 - fill)) & 1; + } + table[leaf] = symbol; + if((pos += bit_mask) > table_mask) + { + abort = 1; + break; /* we will overrun the table! abort! */ + } + } + } + bit_mask >>= 1; + bit_num++; + } } - } - bit_mask >>= 1; - bit_num++; - } - } - if(pos != table_mask) abort = 1; /* the table is incomplete! */ + if(pos != table_mask) abort = 1; /* the table is incomplete! */ - return(abort); + return(abort); } /* ---------------------------------------------------------------------- */ @@ -277,222 +282,226 @@ static int make_decode_table(int number_symbols, int table_size, static int read_literal_table() { - register unsigned int control; - register int shift; - unsigned int temp; /* could be a register */ - unsigned int symbol, pos, count, fix, max_symbol; - int abort = 0; + register unsigned int control; + register int shift; + unsigned int temp; /* could be a register */ + unsigned int symbol, pos, count, fix, max_symbol; + int abort = 0; - control = global_control; - shift = global_shift; + control = global_control; + shift = global_shift; - if(shift < 0) /* fix the control word if necessary */ - { - shift += 16; - control += *source++ << (8 + shift); - control += *source++ << shift; - } - -/* read the decrunch method */ - - decrunch_method = control & 7; - control >>= 3; - if((shift -= 3) < 0) - { - shift += 16; - control += *source++ << (8 + shift); - control += *source++ << shift; - } - -/* Read and build the offset huffman table */ - - if((!abort) && (decrunch_method == 3)) - { - for(temp = 0; temp < 8; temp++) - { - offset_len[temp] = control & 7; - control >>= 3; - if((shift -= 3) < 0) - { - shift += 16; - control += *source++ << (8 + shift); - control += *source++ << shift; - } - } - abort = make_decode_table(8, 7, offset_len, offset_table); - } - -/* read decrunch length */ - - if(!abort) - { - decrunch_length = (control & 255) << 16; - control >>= 8; - if((shift -= 8) < 0) - { - shift += 16; - control += *source++ << (8 + shift); - control += *source++ << shift; - } - decrunch_length += (control & 255) << 8; - control >>= 8; - if((shift -= 8) < 0) - { - shift += 16; - control += *source++ << (8 + shift); - control += *source++ << shift; - } - decrunch_length += (control & 255); - control >>= 8; - if((shift -= 8) < 0) - { - shift += 16; - control += *source++ << (8 + shift); - control += *source++ << shift; - } - } - -/* read and build the huffman literal table */ - - if((!abort) && (decrunch_method != 1)) - { - pos = 0; - fix = 1; - max_symbol = 256; - - do - { - for(temp = 0; temp < 20; temp++) - { - huffman20_len[temp] = control & 15; - control >>= 4; - if((shift -= 4) < 0) + if(shift < 0) /* fix the control word if necessary */ { - shift += 16; - control += *source++ << (8 + shift); - control += *source++ << shift; + shift += 16; + control += *source++ << (8 + shift); + control += *source++ << shift; } - } - abort = make_decode_table(20, 6, huffman20_len, huffman20_table); - if(abort) break; /* argh! table is corrupt! */ + /* read the decrunch method */ - do - { - if((symbol = huffman20_table[control & 63]) >= 20) + decrunch_method = control & 7; + control >>= 3; + if((shift -= 3) < 0) { - do /* symbol is longer than 6 bits */ - { - symbol = huffman20_table[((control >> 6) & 1) + (symbol << 1)]; - if(!shift--) - { - shift += 16; - control += *source++ << 24; - control += *source++ << 16; - } - control >>= 1; - } while(symbol >= 20); - temp = 6; + shift += 16; + control += *source++ << (8 + shift); + control += *source++ << shift; } - else - { - temp = huffman20_len[symbol]; - } - control >>= temp; - if((shift -= temp) < 0) - { - shift += 16; - control += *source++ << (8 + shift); - control += *source++ << shift; - } - switch(symbol) - { - case 17: - case 18: - { - if(symbol == 17) - { - temp = 4; - count = 3; - } - else /* symbol == 18 */ - { - temp = 6 - fix; - count = 19; - } - count += (control & table_three[temp]) + fix; - control >>= temp; - if((shift -= temp) < 0) - { - shift += 16; - control += *source++ << (8 + shift); - control += *source++ << shift; - } - while((pos < max_symbol) && (count--)) - literal_len[pos++] = 0; - break; - } - case 19: - { - count = (control & 1) + 3 + fix; - if(!shift--) - { - shift += 16; - control += *source++ << 24; - control += *source++ << 16; - } - control >>= 1; - if((symbol = huffman20_table[control & 63]) >= 20) - { - do /* symbol is longer than 6 bits */ - { - symbol = huffman20_table[((control >> 6) & 1) + (symbol << 1)]; - if(!shift--) - { - shift += 16; - control += *source++ << 24; - control += *source++ << 16; - } - control >>= 1; - } while(symbol >= 20); - temp = 6; - } - else - { - temp = huffman20_len[symbol]; - } - control >>= temp; - if((shift -= temp) < 0) - { - shift += 16; - control += *source++ << (8 + shift); - control += *source++ << shift; - } - symbol = table_four[literal_len[pos] + 17 - symbol]; - while((pos < max_symbol) && (count--)) - literal_len[pos++] = symbol; - break; - } - default: - { - symbol = table_four[literal_len[pos] + 17 - symbol]; - literal_len[pos++] = symbol; - break; - } - } - } while(pos < max_symbol); - fix--; - max_symbol += 512; - } while(max_symbol == 768); - if(!abort) - abort = make_decode_table(768, 12, literal_len, literal_table); - } + /* Read and build the offset huffman table */ - global_control = control; - global_shift = shift; + if((!abort) && (decrunch_method == 3)) + { + for(temp = 0; temp < 8; temp++) + { + offset_len[temp] = control & 7; + control >>= 3; + if((shift -= 3) < 0) + { + shift += 16; + control += *source++ << (8 + shift); + control += *source++ << shift; + } + } + abort = make_decode_table(8, 7, offset_len, offset_table); + } - return(abort); + /* read decrunch length */ + + if(!abort) + { + decrunch_length = (control & 255) << 16; + control >>= 8; + if((shift -= 8) < 0) + { + shift += 16; + control += *source++ << (8 + shift); + control += *source++ << shift; + } + decrunch_length += (control & 255) << 8; + control >>= 8; + if((shift -= 8) < 0) + { + shift += 16; + control += *source++ << (8 + shift); + control += *source++ << shift; + } + decrunch_length += (control & 255); + control >>= 8; + if((shift -= 8) < 0) + { + shift += 16; + control += *source++ << (8 + shift); + control += *source++ << shift; + } + } + + /* read and build the huffman literal table */ + + if((!abort) && (decrunch_method != 1)) + { + pos = 0; + fix = 1; + max_symbol = 256; + + do + { + for(temp = 0; temp < 20; temp++) + { + huffman20_len[temp] = control & 15; + control >>= 4; + if((shift -= 4) < 0) + { + shift += 16; + control += *source++ << (8 + shift); + control += *source++ << shift; + } + } + abort = make_decode_table(20, 6, huffman20_len, huffman20_table); + + if(abort) break; /* argh! table is corrupt! */ + + do + { + if((symbol = huffman20_table[control & 63]) >= 20) + { + do /* symbol is longer than 6 bits */ + { + symbol = huffman20_table[((control >> 6) & 1) + (symbol << 1)]; + if(!shift--) + { + shift += 16; + control += *source++ << 24; + control += *source++ << 16; + } + control >>= 1; + } + while(symbol >= 20); + temp = 6; + } + else + { + temp = huffman20_len[symbol]; + } + control >>= temp; + if((shift -= temp) < 0) + { + shift += 16; + control += *source++ << (8 + shift); + control += *source++ << shift; + } + switch(symbol) + { + case 17: + case 18: + { + if(symbol == 17) + { + temp = 4; + count = 3; + } + else /* symbol == 18 */ + { + temp = 6 - fix; + count = 19; + } + count += (control & table_three[temp]) + fix; + control >>= temp; + if((shift -= temp) < 0) + { + shift += 16; + control += *source++ << (8 + shift); + control += *source++ << shift; + } + while((pos < max_symbol) && (count--)) + literal_len[pos++] = 0; + break; + } + case 19: + { + count = (control & 1) + 3 + fix; + if(!shift--) + { + shift += 16; + control += *source++ << 24; + control += *source++ << 16; + } + control >>= 1; + if((symbol = huffman20_table[control & 63]) >= 20) + { + do /* symbol is longer than 6 bits */ + { + symbol = huffman20_table[((control >> 6) & 1) + (symbol << 1)]; + if(!shift--) + { + shift += 16; + control += *source++ << 24; + control += *source++ << 16; + } + control >>= 1; + } + while(symbol >= 20); + temp = 6; + } + else + { + temp = huffman20_len[symbol]; + } + control >>= temp; + if((shift -= temp) < 0) + { + shift += 16; + control += *source++ << (8 + shift); + control += *source++ << shift; + } + symbol = table_four[literal_len[pos] + 17 - symbol]; + while((pos < max_symbol) && (count--)) + literal_len[pos++] = symbol; + break; + } + default: + { + symbol = table_four[literal_len[pos] + 17 - symbol]; + literal_len[pos++] = symbol; + break; + } + } + } + while(pos < max_symbol); + fix--; + max_symbol += 512; + } + while(max_symbol == 768); + + if(!abort) + abort = make_decode_table(768, 12, literal_len, literal_table); + } + + global_control = control; + global_shift = shift; + + return(abort); } /* ---------------------------------------------------------------------- */ @@ -503,106 +512,109 @@ static int read_literal_table() static void decrunch(void) { - register unsigned int control; - register int shift; - unsigned int temp; /* could be a register */ - unsigned int symbol, count; - unsigned char *string; + register unsigned int control; + register int shift; + unsigned int temp; /* could be a register */ + unsigned int symbol, count; + unsigned char *string; - control = global_control; - shift = global_shift; + control = global_control; + shift = global_shift; - do - { - if((symbol = literal_table[control & 4095]) >= 768) - { - control >>= 12; - if((shift -= 12) < 0) - { - shift += 16; - control += *source++ << (8 + shift); - control += *source++ << shift; - } - do /* literal is longer than 12 bits */ - { - symbol = literal_table[(control & 1) + (symbol << 1)]; - if(!shift--) + do { - shift += 16; - control += *source++ << 24; - control += *source++ << 16; - } - control >>= 1; - } while(symbol >= 768); - } - else - { - temp = literal_len[symbol]; - control >>= temp; - if((shift -= temp) < 0) - { - shift += 16; - control += *source++ << (8 + shift); - control += *source++ << shift; - } - } - if(symbol < 256) - { - *destination++ = symbol; - } - else - { - symbol -= 256; - count = table_two[temp = symbol & 31]; - temp = table_one[temp]; - if((temp >= 3) && (decrunch_method == 3)) - { - temp -= 3; - count += ((control & table_three[temp]) << 3); - control >>= temp; - if((shift -= temp) < 0) - { - shift += 16; - control += *source++ << (8 + shift); - control += *source++ << shift; - } - count += (temp = offset_table[control & 127]); - temp = offset_len[temp]; - } - else - { - count += control & table_three[temp]; - if(!count) count = last_offset; - } - control >>= temp; - if((shift -= temp) < 0) - { - shift += 16; - control += *source++ << (8 + shift); - control += *source++ << shift; - } - last_offset = count; + if((symbol = literal_table[control & 4095]) >= 768) + { + control >>= 12; + if((shift -= 12) < 0) + { + shift += 16; + control += *source++ << (8 + shift); + control += *source++ << shift; + } + do /* literal is longer than 12 bits */ + { + symbol = literal_table[(control & 1) + (symbol << 1)]; + if(!shift--) + { + shift += 16; + control += *source++ << 24; + control += *source++ << 16; + } + control >>= 1; + } + while(symbol >= 768); + } + else + { + temp = literal_len[symbol]; + control >>= temp; + if((shift -= temp) < 0) + { + shift += 16; + control += *source++ << (8 + shift); + control += *source++ << shift; + } + } + if(symbol < 256) + { + *destination++ = symbol; + } + else + { + symbol -= 256; + count = table_two[temp = symbol & 31]; + temp = table_one[temp]; + if((temp >= 3) && (decrunch_method == 3)) + { + temp -= 3; + count += ((control & table_three[temp]) << 3); + control >>= temp; + if((shift -= temp) < 0) + { + shift += 16; + control += *source++ << (8 + shift); + control += *source++ << shift; + } + count += (temp = offset_table[control & 127]); + temp = offset_len[temp]; + } + else + { + count += control & table_three[temp]; + if(!count) count = last_offset; + } + control >>= temp; + if((shift -= temp) < 0) + { + shift += 16; + control += *source++ << (8 + shift); + control += *source++ << shift; + } + last_offset = count; - count = table_two[temp = (symbol >> 5) & 15] + 3; - temp = table_one[temp]; - count += (control & table_three[temp]); - control >>= temp; - if((shift -= temp) < 0) - { - shift += 16; - control += *source++ << (8 + shift); - control += *source++ << shift; - } - string = destination - last_offset; - do - { - *destination++ = *string++; - } while(--count); - } - } while((destination < destination_end) && (source < source_end)); + count = table_two[temp = (symbol >> 5) & 15] + 3; + temp = table_one[temp]; + count += (control & table_three[temp]); + control >>= temp; + if((shift -= temp) < 0) + { + shift += 16; + control += *source++ << (8 + shift); + control += *source++ << shift; + } + string = destination - last_offset; + do + { + *destination++ = *string++; + } + while(--count); + } + } + while((destination < destination_end) && (source < source_end)); - global_control = control; - global_shift = shift; + global_control = control; + global_shift = shift; } struct zfile *archive_access_lzx (struct znode *zn) @@ -621,23 +633,25 @@ struct zfile *archive_access_lzx (struct znode *zn) /* find first file in compressed block */ unpsize = 0; znfirst = zn; - while (znfirst->prev) { - struct znode *zt = znfirst->prev; - if (!zt || zt->offset != 0) - break; - znfirst = zt; - unpsize += znfirst->size; + while (znfirst->prev) + { + struct znode *zt = znfirst->prev; + if (!zt || zt->offset != 0) + break; + znfirst = zt; + unpsize += znfirst->size; } /* find last file in compressed block */ znlast = zn; - while (znlast) { - unpsize += znlast->size; - if (znlast->offset != 0) - break; - znlast = znlast->next; + while (znlast) + { + unpsize += znlast->size; + if (znlast->offset != 0) + break; + znlast = znlast->next; } if (!znlast) - return NULL; + return NULL; /* start offset to compressed block */ startpos = znlast->offset; compsize = znlast->packedsize; @@ -656,34 +670,43 @@ struct zfile *archive_access_lzx (struct znode *zn) global_shift = -16; last_offset = 1; destination = dbuf; - if (compsize == unpsize) { - memcpy (dbuf, buf, unpsize); - } else { - while (unpsize > 0) { - uae_u8 *pdest = destination; - if (!read_literal_table()) { - destination_end = destination + decrunch_length; - decrunch(); - unpsize -= decrunch_length; - crc_calc (pdest, decrunch_length); - } else { - write_log (_T("LZX corrupt compressed data %s\n"), zn->name); - goto end; - } - } + if (compsize == unpsize) + { + memcpy (dbuf, buf, unpsize); + } + else + { + while (unpsize > 0) + { + uae_u8 *pdest = destination; + if (!read_literal_table()) + { + destination_end = destination + decrunch_length; + decrunch(); + unpsize -= decrunch_length; + crc_calc (pdest, decrunch_length); + } + else + { + write_log (_T("LZX corrupt compressed data %s\n"), zn->name); + goto end; + } + } } /* pre-cache all files we just decompressed */ - for (;;) { - if (znfirst->size && !znfirst->f) { - dstf = zfile_fopen_empty (zf, znfirst->name, znfirst->size); - zfile_fwrite(dbuf + znfirst->offset2, znfirst->size, 1, dstf); - znfirst->f = dstf; - if (znfirst == zn) - newzf = zfile_dup (dstf); - } - if (znfirst == znlast) - break; - znfirst = znfirst->next; + for (;;) + { + if (znfirst->size && !znfirst->f) + { + dstf = zfile_fopen_empty (zf, znfirst->name, znfirst->size); + zfile_fwrite(dbuf + znfirst->offset2, znfirst->size, 1, dstf); + znfirst->f = dstf; + if (znfirst == zn) + newzf = zfile_dup (dstf); + } + if (znfirst == znlast) + break; + znfirst = znfirst->next; } end: xfree(buf); @@ -693,141 +716,142 @@ end: struct zvolume *archive_directory_lzx (struct zfile *in_file) { - unsigned int temp; - unsigned int total_pack = 0; - unsigned int total_unpack = 0; - unsigned int total_files = 0; - unsigned int merge_size = 0; - int actual; - int abort; - int result = 1; /* assume an error */ - struct zvolume *zv; - struct znode *zn; - struct zarchive_info zai; - struct tm tm; - unsigned int crc; - unsigned int pack_size; - unsigned int unpack_size; - unsigned char archive_header[31]; - char header_filename[256]; - char header_comment[256]; + unsigned int temp; + unsigned int total_pack = 0; + unsigned int total_unpack = 0; + unsigned int total_files = 0; + unsigned int merge_size = 0; + int actual; + int abort; + int result = 1; /* assume an error */ + struct zvolume *zv; + struct znode *zn; + struct zarchive_info zai; + struct tm tm; + unsigned int crc; + unsigned int pack_size; + unsigned int unpack_size; + unsigned char archive_header[31]; + char header_filename[256]; + char header_comment[256]; - if (zfile_fread(archive_header, 1, 10, in_file) != 10) - return 0; - if (memcmp(archive_header, "LZX", 3)) - return 0; - zv = zvolume_alloc (in_file, ArchiveFormatLZX, NULL, NULL); + if (zfile_fread(archive_header, 1, 10, in_file) != 10) + return 0; + if (memcmp(archive_header, "LZX", 3)) + return 0; + zv = zvolume_alloc (in_file, ArchiveFormatLZX, NULL, NULL); - do - { - abort = 1; /* assume an error */ - actual = zfile_fread(archive_header, 1, 31, in_file); - if(!zfile_ferror(in_file)) - { - if(actual) /* 0 is normal and means EOF */ - { - if(actual == 31) + do { - sum = 0; /* reset CRC */ - crc = (archive_header[29] << 24) + (archive_header[28] << 16) + (archive_header[27] << 8) + archive_header[26]; - archive_header[29] = 0; /* Must set the field to 0 before calculating the crc */ - archive_header[28] = 0; - archive_header[27] = 0; - archive_header[26] = 0; - crc_calc(archive_header, 31); - temp = archive_header[30]; /* filename length */ - actual = zfile_fread(header_filename, 1, temp, in_file); - if(!zfile_ferror(in_file)) - { - if(actual == temp) - { - header_filename[temp] = 0; - crc_calc((unsigned char*)header_filename, temp); - temp = archive_header[14]; /* comment length */ - actual = zfile_fread(header_comment, 1, temp, in_file); - if(!zfile_ferror(in_file)) - { - if(actual == temp) - { - header_comment[temp] = 0; - crc_calc((unsigned char*)header_comment, temp); - if(sum == crc) - { - unsigned int year, month, day; - unsigned int hour, minute, second; - unsigned char attributes; - attributes = archive_header[0]; /* file protection modes */ - unpack_size = (archive_header[5] << 24) + (archive_header[4] << 16) + (archive_header[3] << 8) + archive_header[2]; /* unpack size */ - pack_size = (archive_header[9] << 24) + (archive_header[8] << 16) + (archive_header[7] << 8) + archive_header[6]; /* packed size */ - temp = (archive_header[18] << 24) + (archive_header[19] << 16) + (archive_header[20] << 8) + archive_header[21]; /* date */ - year = ((temp >> 17) & 63) + 1970; - month = (temp >> 23) & 15; - day = (temp >> 27) & 31; - hour = (temp >> 12) & 31; - minute = (temp >> 6) & 63; - second = temp & 63; + abort = 1; /* assume an error */ + actual = zfile_fread(archive_header, 1, 31, in_file); + if(!zfile_ferror(in_file)) + { + if(actual) /* 0 is normal and means EOF */ + { + if(actual == 31) + { + sum = 0; /* reset CRC */ + crc = (archive_header[29] << 24) + (archive_header[28] << 16) + (archive_header[27] << 8) + archive_header[26]; + archive_header[29] = 0; /* Must set the field to 0 before calculating the crc */ + archive_header[28] = 0; + archive_header[27] = 0; + archive_header[26] = 0; + crc_calc(archive_header, 31); + temp = archive_header[30]; /* filename length */ + actual = zfile_fread(header_filename, 1, temp, in_file); + if(!zfile_ferror(in_file)) + { + if(actual == temp) + { + header_filename[temp] = 0; + crc_calc((unsigned char*)header_filename, temp); + temp = archive_header[14]; /* comment length */ + actual = zfile_fread(header_comment, 1, temp, in_file); + if(!zfile_ferror(in_file)) + { + if(actual == temp) + { + header_comment[temp] = 0; + crc_calc((unsigned char*)header_comment, temp); + if(sum == crc) + { + unsigned int year, month, day; + unsigned int hour, minute, second; + unsigned char attributes; + attributes = archive_header[0]; /* file protection modes */ + unpack_size = (archive_header[5] << 24) + (archive_header[4] << 16) + (archive_header[3] << 8) + archive_header[2]; /* unpack size */ + pack_size = (archive_header[9] << 24) + (archive_header[8] << 16) + (archive_header[7] << 8) + archive_header[6]; /* packed size */ + temp = (archive_header[18] << 24) + (archive_header[19] << 16) + (archive_header[20] << 8) + archive_header[21]; /* date */ + year = ((temp >> 17) & 63) + 1970; + month = (temp >> 23) & 15; + day = (temp >> 27) & 31; + hour = (temp >> 12) & 31; + minute = (temp >> 6) & 63; + second = temp & 63; - memset(&zai, 0, sizeof zai); - zai.name = au (header_filename); - if (header_comment[0]) - zai.comment = au (header_comment); - zai.flags |= (attributes & 32) ? 0x80 : 0; - zai.flags |= (attributes & 64) ? 0x40 : 0; - zai.flags |= (attributes & 128) ? 0x20 : 0; - zai.flags |= (attributes & 16) ? 0x10 : 0; - zai.flags |= (attributes & 1) ? 0x08 : 0; - zai.flags |= (attributes & 2) ? 0x04 : 0; - zai.flags |= (attributes & 8) ? 0x02 : 0; - zai.flags |= (attributes & 4) ? 0x01 : 0; - zai.flags ^= 15; - memset(&tm, 0, sizeof tm); - tm.tm_hour = hour; - tm.tm_min = minute; - tm.tm_sec = second; - tm.tm_year = year - 1900; - tm.tm_mon = month; - tm.tm_mday = day; - zai.tv.tv_sec = mktime(&tm); - zai.size = unpack_size; - zn = zvolume_addfile_abs(zv, &zai); - zn->offset2 = merge_size; - xfree (zai.name); - xfree (zai.comment); + memset(&zai, 0, sizeof zai); + zai.name = au (header_filename); + if (header_comment[0]) + zai.comment = au (header_comment); + zai.flags |= (attributes & 32) ? 0x80 : 0; + zai.flags |= (attributes & 64) ? 0x40 : 0; + zai.flags |= (attributes & 128) ? 0x20 : 0; + zai.flags |= (attributes & 16) ? 0x10 : 0; + zai.flags |= (attributes & 1) ? 0x08 : 0; + zai.flags |= (attributes & 2) ? 0x04 : 0; + zai.flags |= (attributes & 8) ? 0x02 : 0; + zai.flags |= (attributes & 4) ? 0x01 : 0; + zai.flags ^= 15; + memset(&tm, 0, sizeof tm); + tm.tm_hour = hour; + tm.tm_min = minute; + tm.tm_sec = second; + tm.tm_year = year - 1900; + tm.tm_mon = month; + tm.tm_mday = day; + zai.tv.tv_sec = mktime(&tm); + zai.size = unpack_size; + zn = zvolume_addfile_abs(zv, &zai); + zn->offset2 = merge_size; + xfree (zai.name); + xfree (zai.comment); - total_pack += pack_size; - total_unpack += unpack_size; - total_files++; - merge_size += unpack_size; + total_pack += pack_size; + total_unpack += unpack_size; + total_files++; + merge_size += unpack_size; - if(pack_size) /* seek past the packed data */ - { - merge_size = 0; - zn->offset = zfile_ftell(in_file); - zn->packedsize = pack_size; - if(!zfile_fseek(in_file, pack_size, SEEK_CUR)) - { - abort = 0; /* continue */ - } - } - else - abort = 0; /* continue */ + if(pack_size) /* seek past the packed data */ + { + merge_size = 0; + zn->offset = zfile_ftell(in_file); + zn->packedsize = pack_size; + if(!zfile_fseek(in_file, pack_size, SEEK_CUR)) + { + abort = 0; /* continue */ + } + } + else + abort = 0; /* continue */ - //write_log (_T("unp=%6d mrg=%6d pack=%6d off=%6d %s\n"), unpack_size, merge_size, pack_size, zn->offset, zai.name); + //write_log (_T("unp=%6d mrg=%6d pack=%6d off=%6d %s\n"), unpack_size, merge_size, pack_size, zn->offset, zai.name); - } - } - } - } - } + } + } + } + } + } + } + } + else + { + result = 0; /* normal termination */ + } + } } - } - else - { - result = 0; /* normal termination */ - } - } - } while(!abort); + while(!abort); - return zv; + return zv; } diff --git a/src/archivers/wrp/warp.cpp b/src/archivers/wrp/warp.cpp index e7e316f9..e5e60221 100644 --- a/src/archivers/wrp/warp.cpp +++ b/src/archivers/wrp/warp.cpp @@ -16,64 +16,79 @@ #define XADERR_DECRUNCH 2 #define XADERR_NOMEMORY 3 -struct rledata { - uae_u32 rledatav; +struct rledata +{ + uae_u32 rledatav; }; -struct fout { - struct zfile *zf; - int xio_BitNum; - int xio_BitBuf; - int err; +struct fout +{ + struct zfile *zf; + int xio_BitNum; + int xio_BitBuf; + int err; }; static void putrle (uae_u8 data, struct zfile *out, struct rledata *rled) { - int num; - uae_u32 a; + int num; + uae_u32 a; - if (!rled) { - zfile_putc (data, out); - return; - } - a = rled->rledatav; - if (a & 0x100) /* was RLE mode */ - { - if (!data || (data == 1 && (a & 0x80000000))) { - a = 0x90; num = 1; - } else { - a &= 0xFF; num = data - 1; - } - } else if (data == 0x90) { - num = 0; a |= 0x100; - } else { - num = 1; a = data; - } - rled->rledatav = a; - while (num--) - zfile_putc (a, out); + if (!rled) + { + zfile_putc (data, out); + return; + } + a = rled->rledatav; + if (a & 0x100) /* was RLE mode */ + { + if (!data || (data == 1 && (a & 0x80000000))) + { + a = 0x90; + num = 1; + } + else + { + a &= 0xFF; + num = data - 1; + } + } + else if (data == 0x90) + { + num = 0; + a |= 0x100; + } + else + { + num = 1; + a = data; + } + rled->rledatav = a; + while (num--) + zfile_putc (a, out); } static uae_u32 xadIOGetBitsLow(struct fout *io, uae_u8 bits) { - uae_u32 x; + uae_u32 x; - io->err = 0; - while(io->xio_BitNum < bits) - { - int v = zfile_getc (io->zf); - if (v == -1) { - io->err = 1; - return 0; - } - io->xio_BitBuf |= v << io->xio_BitNum; - io->xio_BitNum += 8; - } - x = io->xio_BitBuf & ((1<xio_BitBuf >>= bits; - io->xio_BitNum -= bits; - return x; + io->err = 0; + while(io->xio_BitNum < bits) + { + int v = zfile_getc (io->zf); + if (v == -1) + { + io->err = 1; + return 0; + } + io->xio_BitBuf |= v << io->xio_BitNum; + io->xio_BitNum += 8; + } + x = io->xio_BitBuf & ((1<xio_BitBuf >>= bits; + io->xio_BitNum -= bits; + return x; } #define ARCSQSPEOF 256 /* special endfile token */ @@ -81,52 +96,55 @@ static uae_u32 xadIOGetBitsLow(struct fout *io, uae_u8 bits) static uae_s32 ARCunsqueeze(struct zfile *in, struct zfile *out, struct rledata *rled) { - uae_s32 err = 0; - uae_s32 i, numnodes; - uae_s16 *node; - struct fout io; + uae_s32 err = 0; + uae_s32 i, numnodes; + uae_s16 *node; + struct fout io; - io.zf = in; - io.xio_BitBuf = 0; - io.xio_BitNum = 0; - io.err = 0; + io.zf = in; + io.xio_BitBuf = 0; + io.xio_BitNum = 0; + io.err = 0; - if((node = (uae_s16 *) xcalloc(uae_s16, 2*ARCSQNUMVALS))) - { - numnodes = xadIOGetBitsLow(&io, 16); + if((node = (uae_s16 *) xcalloc(uae_s16, 2*ARCSQNUMVALS))) + { + numnodes = xadIOGetBitsLow(&io, 16); - if(numnodes < 0 || numnodes >= ARCSQNUMVALS) - err = XADERR_DECRUNCH; - else - { /* initialize for possible empty tree (SPEOF only) */ - node[0] = node[1] = -(ARCSQSPEOF + 1); + if(numnodes < 0 || numnodes >= ARCSQNUMVALS) + err = XADERR_DECRUNCH; + else + { + /* initialize for possible empty tree (SPEOF only) */ + node[0] = node[1] = -(ARCSQSPEOF + 1); - numnodes *= 2; i = 0; - while(i < numnodes && !io.err) /* get decoding tree from file */ - { - node[i++] = xadIOGetBitsLow(&io, 16); - node[i++] = xadIOGetBitsLow(&io, 16); - } + numnodes *= 2; + i = 0; + while(i < numnodes && !io.err) /* get decoding tree from file */ + { + node[i++] = xadIOGetBitsLow(&io, 16); + node[i++] = xadIOGetBitsLow(&io, 16); + } - do - { - /* follow bit stream in tree to a leaf */ - i = 0; - while(i >= 0 && !io.err) - i = node[2*i + xadIOGetBitsLow(&io, 1)]; + do + { + /* follow bit stream in tree to a leaf */ + i = 0; + while(i >= 0 && !io.err) + i = node[2*i + xadIOGetBitsLow(&io, 1)]; - i = -(i + 1); /* decode fake node index to original data value */ + i = -(i + 1); /* decode fake node index to original data value */ - if(i != ARCSQSPEOF) - putrle (i, out, rled); - } while(i != ARCSQSPEOF); - } - xfree(node); - } - else - err = XADERR_NOMEMORY; + if(i != ARCSQSPEOF) + putrle (i, out, rled); + } + while(i != ARCSQSPEOF); + } + xfree(node); + } + else + err = XADERR_NOMEMORY; - return err; + return err; } @@ -141,341 +159,352 @@ static uae_s32 ARCunsqueeze(struct zfile *in, struct zfile *out, struct rledata #define UCOMPBIT_MASK 0x1f #define UCOMPBLOCK_MASK 0x80 -struct UCompData { - uae_s16 clear_flg; - uae_u16 n_bits; /* number of bits/code */ - uae_u16 maxbits; /* user settable max # bits/code */ - uae_u32 maxcode; /* maximum code, given n_bits */ - uae_u32 maxmaxcode; - uae_s32 free_ent; - uae_s32 offset; - uae_s32 size; - uae_u16 *tab_prefixof; - uae_u8 *tab_suffixof; - uae_u8 stack[UCOMPSTACKSIZE]; - uae_u8 buf[UCOMPBITS]; - int insize; - struct rledata *rled; +struct UCompData +{ + uae_s16 clear_flg; + uae_u16 n_bits; /* number of bits/code */ + uae_u16 maxbits; /* user settable max # bits/code */ + uae_u32 maxcode; /* maximum code, given n_bits */ + uae_u32 maxmaxcode; + uae_s32 free_ent; + uae_s32 offset; + uae_s32 size; + uae_u16 *tab_prefixof; + uae_u8 *tab_suffixof; + uae_u8 stack[UCOMPSTACKSIZE]; + uae_u8 buf[UCOMPBITS]; + int insize; + struct rledata *rled; }; /* Read one code from input. If EOF, return -1. */ static uae_s32 UCompgetcode(struct zfile *in, struct UCompData *cd) { - uae_s32 code, r_off, bits; - uae_u8 *bp = cd->buf; + uae_s32 code, r_off, bits; + uae_u8 *bp = cd->buf; - if(cd->clear_flg > 0 || cd->offset >= cd->size || cd->free_ent > cd->maxcode) - { - /* - * If the next entry will be too big for the current code - * size, then we must increase the size. This implies reading - * a new buffer full, too. - */ - if(cd->free_ent > cd->maxcode) - { - if(++cd->n_bits == cd->maxbits) - cd->maxcode = cd->maxmaxcode; /* won't get any bigger now */ - else - cd->maxcode = UCOMPMAXCODE(cd->n_bits); - } - if(cd->clear_flg > 0) - { - cd->maxcode = UCOMPMAXCODE(cd->n_bits = UCOMPINIT_BITS); - cd->clear_flg = 0; - } + if(cd->clear_flg > 0 || cd->offset >= cd->size || cd->free_ent > cd->maxcode) + { + /* + * If the next entry will be too big for the current code + * size, then we must increase the size. This implies reading + * a new buffer full, too. + */ + if(cd->free_ent > cd->maxcode) + { + if(++cd->n_bits == cd->maxbits) + cd->maxcode = cd->maxmaxcode; /* won't get any bigger now */ + else + cd->maxcode = UCOMPMAXCODE(cd->n_bits); + } + if(cd->clear_flg > 0) + { + cd->maxcode = UCOMPMAXCODE(cd->n_bits = UCOMPINIT_BITS); + cd->clear_flg = 0; + } - /* This reads maximum n_bits characters into buf */ - cd->size = 0; - while(cd->size < cd->n_bits) { - int v; - if (cd->insize == 0) - break; - v = zfile_getc (in); - if (v == -1) - break; - cd->insize--; - cd->buf[cd->size++] = v; - } - if(cd->size <= 0) - return -1; + /* This reads maximum n_bits characters into buf */ + cd->size = 0; + while(cd->size < cd->n_bits) + { + int v; + if (cd->insize == 0) + break; + v = zfile_getc (in); + if (v == -1) + break; + cd->insize--; + cd->buf[cd->size++] = v; + } + if(cd->size <= 0) + return -1; - cd->offset = 0; - /* Round size down to integral number of codes */ - cd->size = (cd->size << 3) - (cd->n_bits - 1); - } + cd->offset = 0; + /* Round size down to integral number of codes */ + cd->size = (cd->size << 3) - (cd->n_bits - 1); + } - r_off = cd->offset; - bits = cd->n_bits; + r_off = cd->offset; + bits = cd->n_bits; - /* Get to the first byte. */ - bp += (r_off >> 3); - r_off &= 7; + /* Get to the first byte. */ + bp += (r_off >> 3); + r_off &= 7; - /* Get first part (low order bits) */ - code = (*bp++ >> r_off); - bits -= (8 - r_off); - r_off = 8 - r_off; /* now, offset into code word */ + /* Get first part (low order bits) */ + code = (*bp++ >> r_off); + bits -= (8 - r_off); + r_off = 8 - r_off; /* now, offset into code word */ - /* Get any 8 bit parts in the middle (<=1 for up to 16 bits). */ - if(bits >= 8) - { - code |= *bp++ << r_off; - r_off += 8; - bits -= 8; - } + /* Get any 8 bit parts in the middle (<=1 for up to 16 bits). */ + if(bits >= 8) + { + code |= *bp++ << r_off; + r_off += 8; + bits -= 8; + } - /* high order bits. */ - code |= (*bp & ((1<offset += cd->n_bits; + /* high order bits. */ + code |= (*bp & ((1<offset += cd->n_bits; - return code; + return code; } static uae_u32 xadIO_Compress(struct zfile *in, struct zfile *out, int insize, struct rledata *rled, uae_u8 bitinfo) { - int err = 0; - struct UCompData *cd; + int err = 0; + struct UCompData *cd; - if((bitinfo & UCOMPBIT_MASK) < UCOMPINIT_BITS) - return XADERR_ILLEGALDATA; + if((bitinfo & UCOMPBIT_MASK) < UCOMPINIT_BITS) + return XADERR_ILLEGALDATA; - if((cd = xcalloc(struct UCompData, 1))) - { - int finchar, code, oldcode, incode, blockcomp; - uae_u8 *stackp, *stack, *stackend; + if((cd = xcalloc(struct UCompData, 1))) + { + int finchar, code, oldcode, incode, blockcomp; + uae_u8 *stackp, *stack, *stackend; - stackp = stack = cd->stack; - stackend = stack + UCOMPSTACKSIZE; - cd->maxbits = bitinfo & UCOMPBIT_MASK; - blockcomp = bitinfo & UCOMPBLOCK_MASK; - cd->maxmaxcode = 1 << cd->maxbits; - cd->maxcode = UCOMPMAXCODE(cd->n_bits = UCOMPINIT_BITS); - cd->free_ent = blockcomp ? UCOMPFIRST : 256; - cd->insize = insize; - cd->rled = rled; + stackp = stack = cd->stack; + stackend = stack + UCOMPSTACKSIZE; + cd->maxbits = bitinfo & UCOMPBIT_MASK; + blockcomp = bitinfo & UCOMPBLOCK_MASK; + cd->maxmaxcode = 1 << cd->maxbits; + cd->maxcode = UCOMPMAXCODE(cd->n_bits = UCOMPINIT_BITS); + cd->free_ent = blockcomp ? UCOMPFIRST : 256; + cd->insize = insize; + cd->rled = rled; - if((cd->tab_prefixof = xcalloc(uae_u16, cd->maxmaxcode))) - { - if((cd->tab_suffixof = xcalloc(uae_u8, cd->maxmaxcode))) - { - /* Initialize the first 256 entries in the table. */ - for(code = 255; code >= 0; code--) - cd->tab_suffixof[code] = code; + if((cd->tab_prefixof = xcalloc(uae_u16, cd->maxmaxcode))) + { + if((cd->tab_suffixof = xcalloc(uae_u8, cd->maxmaxcode))) + { + /* Initialize the first 256 entries in the table. */ + for(code = 255; code >= 0; code--) + cd->tab_suffixof[code] = code; - if((finchar = oldcode = UCompgetcode(in, cd)) == -1) - err = XADERR_DECRUNCH; - else - { - putrle (finchar, out, cd->rled); /* first code must be 8 bits = uae_u8 */ + if((finchar = oldcode = UCompgetcode(in, cd)) == -1) + err = XADERR_DECRUNCH; + else + { + putrle (finchar, out, cd->rled); /* first code must be 8 bits = uae_u8 */ - while((code = UCompgetcode(in, cd)) > -1) - { - if((code == UCOMPCLEAR) && blockcomp) - { - for(code = 255; code >= 0; code--) - cd->tab_prefixof[code] = 0; - cd->clear_flg = 1; - cd->free_ent = UCOMPFIRST - 1; - if((code = UCompgetcode(in, cd)) == -1) - break; /* O, untimely death! */ - } - incode = code; + while((code = UCompgetcode(in, cd)) > -1) + { + if((code == UCOMPCLEAR) && blockcomp) + { + for(code = 255; code >= 0; code--) + cd->tab_prefixof[code] = 0; + cd->clear_flg = 1; + cd->free_ent = UCOMPFIRST - 1; + if((code = UCompgetcode(in, cd)) == -1) + break; /* O, untimely death! */ + } + incode = code; - /* Special case for KwKwK string. */ - if(code >= cd->free_ent) - { - if(code > cd->free_ent) - { - err = XADERR_ILLEGALDATA; - break; - } - *stackp++ = finchar; - code = oldcode; - } + /* Special case for KwKwK string. */ + if(code >= cd->free_ent) + { + if(code > cd->free_ent) + { + err = XADERR_ILLEGALDATA; + break; + } + *stackp++ = finchar; + code = oldcode; + } - /* Generate output characters in reverse order */ - while(stackp < stackend && code >= 256) - { - *stackp++ = cd->tab_suffixof[code]; - code = cd->tab_prefixof[code]; - } - if(stackp >= stackend) - { - err = XADERR_ILLEGALDATA; - break; - } - *(stackp++) = finchar = cd->tab_suffixof[code]; + /* Generate output characters in reverse order */ + while(stackp < stackend && code >= 256) + { + *stackp++ = cd->tab_suffixof[code]; + code = cd->tab_prefixof[code]; + } + if(stackp >= stackend) + { + err = XADERR_ILLEGALDATA; + break; + } + *(stackp++) = finchar = cd->tab_suffixof[code]; - /* And put them out in forward order */ - do - { - putrle (*(--stackp), out, cd->rled); - } while(stackp > stack); + /* And put them out in forward order */ + do + { + putrle (*(--stackp), out, cd->rled); + } + while(stackp > stack); - /* Generate the new entry. */ - if((code = cd->free_ent) < cd->maxmaxcode) - { - cd->tab_prefixof[code] = (uae_u16) oldcode; - cd->tab_suffixof[code] = finchar; - cd->free_ent = code+1; - } - /* Remember previous code. */ - oldcode = incode; - } - } - xfree (cd->tab_suffixof); - } - else - err = XADERR_NOMEMORY; - xfree(cd->tab_prefixof); - } - else - err = XADERR_NOMEMORY; - xfree(cd); - } - else - err = XADERR_NOMEMORY; + /* Generate the new entry. */ + if((code = cd->free_ent) < cd->maxmaxcode) + { + cd->tab_prefixof[code] = (uae_u16) oldcode; + cd->tab_suffixof[code] = finchar; + cd->free_ent = code+1; + } + /* Remember previous code. */ + oldcode = incode; + } + } + xfree (cd->tab_suffixof); + } + else + err = XADERR_NOMEMORY; + xfree(cd->tab_prefixof); + } + else + err = XADERR_NOMEMORY; + xfree(cd); + } + else + err = XADERR_NOMEMORY; - return err; + return err; } static void MakeCRC16(uae_u16 *buf, uae_u16 ID) { - uae_u16 i, j, k; + uae_u16 i, j, k; - for(i = 0; i < 256; ++i) - { - k = i; + for(i = 0; i < 256; ++i) + { + k = i; - for(j = 0; j < 8; ++j) - { - if(k & 1) - k = (k >> 1) ^ ID; - else - k >>= 1; - } - buf[i] = k; - } + for(j = 0; j < 8; ++j) + { + if(k & 1) + k = (k >> 1) ^ ID; + else + k >>= 1; + } + buf[i] = k; + } } static uae_u16 wrpcrc16 (uae_u16 *tab, uae_u8 *buf, int len) { - uae_u16 crc = 0; - while (len-- > 0) - crc = tab[(crc ^ *buf++) & 0xFF] ^ (crc >> 8); - return crc; + uae_u16 crc = 0; + while (len-- > 0) + crc = tab[(crc ^ *buf++) & 0xFF] ^ (crc >> 8); + return crc; } static int iswrp (uae_u8 *data) { - if(data[0] == 'W' && data[1] == 'a' && data[2] == 'r' && data[3] == 'p' - && data[4] == ' ' && data[5] == 'v' && data[6] == '1' && data[7] == '.' - && data[8] == '1' && !data[9] && !data[18] && data[19] <= 3) - return 1; - return 0; + if(data[0] == 'W' && data[1] == 'a' && data[2] == 'r' && data[3] == 'p' + && data[4] == ' ' && data[5] == 'v' && data[6] == '1' && data[7] == '.' + && data[8] == '1' && !data[9] && !data[18] && data[19] <= 3) + return 1; + return 0; } #define COMPBUF 30000 struct zfile *unwarp(struct zfile *zf) { - int err = 0; - uae_u8 buf[26] = { 0 }; - int algo, side, track; - int pos, dstpos, olddstpos; - uae_u16 crc; - uae_u32 size; - struct zfile *nf = NULL, *tmpf = NULL; - uae_u8 *zero, *data; - int outsize = 11 * 512; - int outsize2 = 11 * (512 + 16); - struct rledata rled; - uae_u16 wrpcrc16table[256]; + int err = 0; + uae_u8 buf[26] = { 0 }; + int algo, side, track; + int pos, dstpos, olddstpos; + uae_u16 crc; + uae_u32 size; + struct zfile *nf = NULL, *tmpf = NULL; + uae_u8 *zero, *data; + int outsize = 11 * 512; + int outsize2 = 11 * (512 + 16); + struct rledata rled; + uae_u16 wrpcrc16table[256]; - MakeCRC16 (wrpcrc16table, 0xa001); + MakeCRC16 (wrpcrc16table, 0xa001); - zero = xcalloc (uae_u8, outsize2); - olddstpos = 0; - for (;;) { - if (zfile_fread (buf, sizeof buf, 1, zf) == 0) - break; - if (!iswrp (buf)) - break; - if (!nf) { - nf = zfile_fopen_empty (zf, _T("zipped.wrp"), 1760 * 512); - tmpf = zfile_fopen_empty (zf, _T("tmp"), outsize2); - } - track = (buf[10] << 8) | buf[11]; - algo = buf[19]; - side = -1; - if (!memcmp (buf + 12, "BOT\0", 4)) - side = 1; - if (!memcmp (buf + 12, "TOP\0", 4)) - side = 0; - crc = (buf[20] << 8) | buf[21]; - pos = zfile_ftell (zf); - dstpos = -1; - if (side >= 0 && track >= 0 && track <= 79) - dstpos = track * 22 * 512 + (side * 11 * 512); - zfile_fseek (tmpf, 0, SEEK_SET); - zfile_fwrite (zero, outsize2, 1, tmpf); - zfile_fseek (tmpf, 0, SEEK_SET); - size = (buf[22] << 24) | (buf[23] << 16) | (buf[24] << 8) | buf[25]; - err = 0; - memset (&rled, 0, sizeof rled); + zero = xcalloc (uae_u8, outsize2); + olddstpos = 0; + for (;;) + { + if (zfile_fread (buf, sizeof buf, 1, zf) == 0) + break; + if (!iswrp (buf)) + break; + if (!nf) + { + nf = zfile_fopen_empty (zf, _T("zipped.wrp"), 1760 * 512); + tmpf = zfile_fopen_empty (zf, _T("tmp"), outsize2); + } + track = (buf[10] << 8) | buf[11]; + algo = buf[19]; + side = -1; + if (!memcmp (buf + 12, "BOT\0", 4)) + side = 1; + if (!memcmp (buf + 12, "TOP\0", 4)) + side = 0; + crc = (buf[20] << 8) | buf[21]; + pos = zfile_ftell (zf); + dstpos = -1; + if (side >= 0 && track >= 0 && track <= 79) + dstpos = track * 22 * 512 + (side * 11 * 512); + zfile_fseek (tmpf, 0, SEEK_SET); + zfile_fwrite (zero, outsize2, 1, tmpf); + zfile_fseek (tmpf, 0, SEEK_SET); + size = (buf[22] << 24) | (buf[23] << 16) | (buf[24] << 8) | buf[25]; + err = 0; + memset (&rled, 0, sizeof rled); - switch (algo) - { - case 1: - if (zfile_getc (zf) != 12) - err = XADERR_ILLEGALDATA; - else - err = xadIO_Compress (zf, tmpf, size - 1, &rled, 12 | UCOMPBLOCK_MASK); - break; - case 2: - err = ARCunsqueeze (zf, tmpf, &rled); - break; - case 0: - case 3: - { - int i; - for (i = 0; i < size; i++) { - uae_u8 v = zfile_getc (zf); - putrle (v, tmpf, algo == 3 ? &rled : NULL); - } - } - break; - default: - write_log (_T("WRP unknown compression method %d, track=%d,size=%d\n"), algo, track, side); - goto end; - break; - } - if (err) { - write_log (_T("WRP corrupt data, track=%d,side=%d,err=%d\n"), track, side, err); - } else { - uae_u16 crc2; - int os = zfile_ftell (tmpf); - data = zfile_getdata (tmpf, 0, os); - crc2 = wrpcrc16 (wrpcrc16table, data, os); - if (crc != crc2) - write_log (_T("WRP crc error %04x<>%04x, track=%d,side=%d\n"), crc, crc2, track, side); - xfree (data); - } - if (dstpos >= 0) { - zfile_fseek (nf, dstpos, SEEK_SET); - data = zfile_getdata (tmpf, 0, outsize); - zfile_fwrite (data, outsize, 1, nf); - } - zfile_fseek (zf, pos + size, SEEK_SET); - } + switch (algo) + { + case 1: + if (zfile_getc (zf) != 12) + err = XADERR_ILLEGALDATA; + else + err = xadIO_Compress (zf, tmpf, size - 1, &rled, 12 | UCOMPBLOCK_MASK); + break; + case 2: + err = ARCunsqueeze (zf, tmpf, &rled); + break; + case 0: + case 3: + { + int i; + for (i = 0; i < size; i++) + { + uae_u8 v = zfile_getc (zf); + putrle (v, tmpf, algo == 3 ? &rled : NULL); + } + } + break; + default: + write_log (_T("WRP unknown compression method %d, track=%d,size=%d\n"), algo, track, side); + goto end; + break; + } + if (err) + { + write_log (_T("WRP corrupt data, track=%d,side=%d,err=%d\n"), track, side, err); + } + else + { + uae_u16 crc2; + int os = zfile_ftell (tmpf); + data = zfile_getdata (tmpf, 0, os); + crc2 = wrpcrc16 (wrpcrc16table, data, os); + if (crc != crc2) + write_log (_T("WRP crc error %04x<>%04x, track=%d,side=%d\n"), crc, crc2, track, side); + xfree (data); + } + if (dstpos >= 0) + { + zfile_fseek (nf, dstpos, SEEK_SET); + data = zfile_getdata (tmpf, 0, outsize); + zfile_fwrite (data, outsize, 1, nf); + } + zfile_fseek (zf, pos + size, SEEK_SET); + } end: - xfree (zero); - zfile_fclose (tmpf); - if (nf) { - zfile_fclose (zf); - zf = nf; - } - return zf; + xfree (zero); + zfile_fclose (tmpf); + if (nf) + { + zfile_fclose (zf); + zf = nf; + } + return zf; } diff --git a/src/archivers/zip/unzip.cpp b/src/archivers/zip/unzip.cpp index c86c7a02..65e15727 100644 --- a/src/archivers/zip/unzip.cpp +++ b/src/archivers/zip/unzip.cpp @@ -22,7 +22,7 @@ # include #endif #ifdef NO_ERRNO_H - extern int errno; +extern int errno; #else # include #endif @@ -74,7 +74,7 @@ #endif const char unz_copyright[] = - " unzip 0.15 Copyright 1998 Gilles Vollant "; + " unzip 0.15 Copyright 1998 Gilles Vollant "; /* unz_file_info_interntal contain internal info about a file in zipfile*/ typedef struct unz_file_info_internal_s @@ -87,23 +87,23 @@ typedef struct unz_file_info_internal_s when reading and decompress it */ typedef struct { - char *read_buffer; /* internal buffer for compressed data */ - z_stream stream; /* zLib stream structure for inflate */ + char *read_buffer; /* internal buffer for compressed data */ + z_stream stream; /* zLib stream structure for inflate */ - uLong pos_in_zipfile; /* position in byte on the zipfile, for fseek*/ - uLong stream_initialised; /* flag set if stream structure is initialised*/ + uLong pos_in_zipfile; /* position in byte on the zipfile, for fseek*/ + uLong stream_initialised; /* flag set if stream structure is initialised*/ - uLong offset_local_extrafield;/* offset of the local extra field */ - uInt size_local_extrafield;/* size of the local extra field */ - uLong pos_local_extrafield; /* position in the local extra field in read*/ + uLong offset_local_extrafield;/* offset of the local extra field */ + uInt size_local_extrafield;/* size of the local extra field */ + uLong pos_local_extrafield; /* position in the local extra field in read*/ - uLong crc32; /* crc32 of all data uncompressed */ - uLong crc32_wait; /* crc32 we must obtain after decompress all */ - uLong rest_read_compressed; /* number of byte to be decompressed */ - uLong rest_read_uncompressed;/*number of byte to be obtained after decomp*/ - struct zfile *file; /* io structore of the zipfile */ - uLong compression_method; /* compression method (0==store) */ - uLong byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/ + uLong crc32; /* crc32 of all data uncompressed */ + uLong crc32_wait; /* crc32 we must obtain after decompress all */ + uLong rest_read_compressed; /* number of byte to be decompressed */ + uLong rest_read_uncompressed;/*number of byte to be obtained after decomp*/ + struct zfile *file; /* io structore of the zipfile */ + uLong compression_method; /* compression method (0==store) */ + uLong byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/ } file_in_zip_read_info_s; @@ -111,20 +111,20 @@ typedef struct */ typedef struct { - struct zfile* file; /* io structore of the zipfile */ - unz_global_info gi; /* public global information */ - uLong byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/ - uLong num_file; /* number of the current file in the zipfile*/ - uLong pos_in_central_dir; /* pos of the current file in the central dir*/ - uLong current_file_ok; /* flag about the usability of the current file*/ - uLong central_pos; /* position of the beginning of the central dir*/ + struct zfile* file; /* io structore of the zipfile */ + unz_global_info gi; /* public global information */ + uLong byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/ + uLong num_file; /* number of the current file in the zipfile*/ + uLong pos_in_central_dir; /* pos of the current file in the central dir*/ + uLong current_file_ok; /* flag about the usability of the current file*/ + uLong central_pos; /* position of the beginning of the central dir*/ - uLong size_central_dir; /* size of the central directory */ - uLong offset_central_dir; /* offset of start of central directory with + uLong size_central_dir; /* size of the central directory */ + uLong offset_central_dir; /* offset of start of central directory with respect to the starting disk number */ - unz_file_info cur_file_info; /* public info about the current file in zip*/ - unz_file_info_internal cur_file_info_internal; /* private info about it*/ + unz_file_info cur_file_info; /* public info about the current file in zip*/ + unz_file_info_internal cur_file_info_internal; /* private info about it*/ file_in_zip_read_info_s* pfile_in_zip_read; /* structure about the current file if we are decompressing it */ } unz_s; @@ -140,15 +140,15 @@ typedef struct local int unzlocal_getByte(struct zfile *fin,int *pi) { unsigned char c; - int err = zfile_fread(&c, 1, 1, fin); + int err = zfile_fread(&c, 1, 1, fin); if (err==1) { - *pi = (int)c; - return UNZ_OK; + *pi = (int)c; + return UNZ_OK; } else { - return UNZ_EOF; + return UNZ_EOF; } } @@ -166,13 +166,13 @@ local int unzlocal_getShort (struct zfile *fin,uLong *pX) x = (uLong)i; if (err==UNZ_OK) - err = unzlocal_getByte(fin,&i); + err = unzlocal_getByte(fin,&i); x += ((uLong)i)<<8; if (err==UNZ_OK) - *pX = x; + *pX = x; else - *pX = 0; + *pX = 0; return err; } @@ -186,21 +186,21 @@ local int unzlocal_getLong (struct zfile *fin, uLong *pX) x = (uLong)i; if (err==UNZ_OK) - err = unzlocal_getByte(fin,&i); + err = unzlocal_getByte(fin,&i); x += ((uLong)i)<<8; if (err==UNZ_OK) - err = unzlocal_getByte(fin,&i); + err = unzlocal_getByte(fin,&i); x += ((uLong)i)<<16; if (err==UNZ_OK) - err = unzlocal_getByte(fin,&i); + err = unzlocal_getByte(fin,&i); x += ((uLong)i)<<24; if (err==UNZ_OK) - *pX = x; + *pX = x; else - *pX = 0; + *pX = 0; return err; } @@ -208,23 +208,23 @@ local int unzlocal_getLong (struct zfile *fin, uLong *pX) /* My own strcmpi / strcasecmp */ local int strcmpcasenosensitive_internal (const char *fileName1, const char *fileName2) { - for (;;) - { - char c1=*(fileName1++); - char c2=*(fileName2++); - if ((c1>='a') && (c1<='z')) - c1 -= 0x20; - if ((c2>='a') && (c2<='z')) - c2 -= 0x20; - if (c1=='\0') - return ((c2=='\0') ? 0 : -1); - if (c2=='\0') - return 1; - if (c1c2) - return 1; - } + for (;;) + { + char c1=*(fileName1++); + char c2=*(fileName2++); + if ((c1>='a') && (c1<='z')) + c1 -= 0x20; + if ((c2>='a') && (c2<='z')) + c2 -= 0x20; + if (c1=='\0') + return ((c2=='\0') ? 0 : -1); + if (c2=='\0') + return 1; + if (c1c2) + return 1; + } } @@ -249,13 +249,13 @@ local int strcmpcasenosensitive_internal (const char *fileName1, const char *fil */ extern int ZEXPORT unzStringFileNameCompare (const char*fileName1, const char*fileName2, int iCaseSensitivity) { - if (iCaseSensitivity==0) - iCaseSensitivity=CASESENSITIVITYDEFAULTVALUE; + if (iCaseSensitivity==0) + iCaseSensitivity=CASESENSITIVITYDEFAULTVALUE; - if (iCaseSensitivity==1) - return strcmp(fileName1,fileName2); + if (iCaseSensitivity==1) + return strcmp(fileName1,fileName2); - return STRCMPCASENOSENTIVEFUNCTION(fileName1,fileName2); + return STRCMPCASENOSENTIVEFUNCTION(fileName1,fileName2); } #define BUFREADCOMMENT (0x400) @@ -266,57 +266,57 @@ extern int ZEXPORT unzStringFileNameCompare (const char*fileName1, const char*fi */ local uLong unzlocal_SearchCentralDir(struct zfile *fin) { - unsigned char* buf; - uLong uSizeFile; - uLong uBackRead; - uLong uMaxBack=0xffff; /* maximum size of global comment */ - uLong uPosFound=0; + unsigned char* buf; + uLong uSizeFile; + uLong uBackRead; + uLong uMaxBack=0xffff; /* maximum size of global comment */ + uLong uPosFound=0; - if (zfile_fseek(fin,0,SEEK_END) != 0) - return 0; + if (zfile_fseek(fin,0,SEEK_END) != 0) + return 0; - uSizeFile = zfile_ftell( fin ); + uSizeFile = zfile_ftell( fin ); - if (uMaxBack>uSizeFile) - uMaxBack = uSizeFile; + if (uMaxBack>uSizeFile) + uMaxBack = uSizeFile; - buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4); - if (buf==NULL) - return 0; + buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4); + if (buf==NULL) + return 0; - uBackRead = 4; - while (uBackReaduMaxBack) - uBackRead = uMaxBack; - else - uBackRead+=BUFREADCOMMENT; - uReadPos = uSizeFile-uBackRead ; + uBackRead = 4; + while (uBackReaduMaxBack) + uBackRead = uMaxBack; + else + uBackRead+=BUFREADCOMMENT; + uReadPos = uSizeFile-uBackRead ; - uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ? - (BUFREADCOMMENT+4) : (uSizeFile-uReadPos); - if (zfile_fseek(fin,uReadPos,SEEK_SET)!=0) - break; + uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ? + (BUFREADCOMMENT+4) : (uSizeFile-uReadPos); + if (zfile_fseek(fin,uReadPos,SEEK_SET)!=0) + break; - if (zfile_fread(buf,(uInt)uReadSize,1,fin)!=1) - break; + if (zfile_fread(buf,(uInt)uReadSize,1,fin)!=1) + break; - for (i=(int)uReadSize-3; (i--)>0;) - if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) && - ((*(buf+i+2))==0x05) && ((*(buf+i+3))==0x06)) - { - uPosFound = uReadPos+i; - break; - } + for (i=(int)uReadSize-3; (i--)>0;) + if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) && + ((*(buf+i+2))==0x05) && ((*(buf+i+3))==0x06)) + { + uPosFound = uReadPos+i; + break; + } - if (uPosFound!=0) - break; - } - TRYFREE(buf); - return uPosFound; + if (uPosFound!=0) + break; + } + TRYFREE(buf); + return uPosFound; } /* @@ -330,89 +330,89 @@ local uLong unzlocal_SearchCentralDir(struct zfile *fin) */ extern unzFile ZEXPORT unzOpen (struct zfile *fin) { - unz_s us; - unz_s *s; - uLong central_pos,uL; + unz_s us; + unz_s *s; + uLong central_pos,uL; - uLong number_disk; /* number of the current dist, used for + uLong number_disk; /* number of the current dist, used for spaning ZIP, unsupported, always 0*/ - uLong number_disk_with_CD; /* number the the disk with central dir, used + uLong number_disk_with_CD; /* number the the disk with central dir, used for spaning ZIP, unsupported, always 0*/ - uLong number_entry_CD; /* total number of entries in + uLong number_entry_CD; /* total number of entries in the central dir (same than number_entry on nospan) */ - int err=UNZ_OK; + int err=UNZ_OK; if (unz_copyright[0]!=' ') - return NULL; + return NULL; - central_pos = unzlocal_SearchCentralDir(fin); - if (central_pos==0) - err=UNZ_ERRNO; + central_pos = unzlocal_SearchCentralDir(fin); + if (central_pos==0) + err=UNZ_ERRNO; - if (zfile_fseek(fin,central_pos,SEEK_SET)!=0) - err=UNZ_ERRNO; + if (zfile_fseek(fin,central_pos,SEEK_SET)!=0) + err=UNZ_ERRNO; - /* the signature, already checked */ - if (unzlocal_getLong(fin,&uL)!=UNZ_OK) - err=UNZ_ERRNO; + /* the signature, already checked */ + if (unzlocal_getLong(fin,&uL)!=UNZ_OK) + err=UNZ_ERRNO; - /* number of this disk */ - if (unzlocal_getShort(fin,&number_disk)!=UNZ_OK) - err=UNZ_ERRNO; + /* number of this disk */ + if (unzlocal_getShort(fin,&number_disk)!=UNZ_OK) + err=UNZ_ERRNO; - /* number of the disk with the start of the central directory */ - if (unzlocal_getShort(fin,&number_disk_with_CD)!=UNZ_OK) - err=UNZ_ERRNO; + /* number of the disk with the start of the central directory */ + if (unzlocal_getShort(fin,&number_disk_with_CD)!=UNZ_OK) + err=UNZ_ERRNO; - /* total number of entries in the central dir on this disk */ - if (unzlocal_getShort(fin,&us.gi.number_entry)!=UNZ_OK) - err=UNZ_ERRNO; + /* total number of entries in the central dir on this disk */ + if (unzlocal_getShort(fin,&us.gi.number_entry)!=UNZ_OK) + err=UNZ_ERRNO; - /* total number of entries in the central dir */ - if (unzlocal_getShort(fin,&number_entry_CD)!=UNZ_OK) - err=UNZ_ERRNO; + /* total number of entries in the central dir */ + if (unzlocal_getShort(fin,&number_entry_CD)!=UNZ_OK) + err=UNZ_ERRNO; // if ((number_entry_CD!=us.gi.number_entry) || // (number_disk_with_CD!=0) || // (number_disk!=0)) // err=UNZ_BADZIPFILE; - if ((number_disk_with_CD!=0) || - (number_disk!=0)) - err=UNZ_BADZIPFILE; + if ((number_disk_with_CD!=0) || + (number_disk!=0)) + err=UNZ_BADZIPFILE; - /* size of the central directory */ - if (unzlocal_getLong(fin,&us.size_central_dir)!=UNZ_OK) - err=UNZ_ERRNO; + /* size of the central directory */ + if (unzlocal_getLong(fin,&us.size_central_dir)!=UNZ_OK) + err=UNZ_ERRNO; - /* offset of start of central directory with respect to the - starting disk number */ - if (unzlocal_getLong(fin,&us.offset_central_dir)!=UNZ_OK) - err=UNZ_ERRNO; + /* offset of start of central directory with respect to the + starting disk number */ + if (unzlocal_getLong(fin,&us.offset_central_dir)!=UNZ_OK) + err=UNZ_ERRNO; - /* zipfile comment length */ - if (unzlocal_getShort(fin,&us.gi.size_comment)!=UNZ_OK) - err=UNZ_ERRNO; + /* zipfile comment length */ + if (unzlocal_getShort(fin,&us.gi.size_comment)!=UNZ_OK) + err=UNZ_ERRNO; - if ((central_pospfile_in_zip_read!=NULL) - unzCloseCurrentFile(file); + unzCloseCurrentFile(file); - TRYFREE(s); - return UNZ_OK; + TRYFREE(s); + return UNZ_OK; } @@ -442,12 +442,12 @@ extern int ZEXPORT unzClose (unzFile file) return UNZ_OK if there is no problem. */ extern int ZEXPORT unzGetGlobalInfo (unzFile file, unz_global_info *pglobal_info) { - unz_s* s; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - *pglobal_info=s->gi; - return UNZ_OK; + unz_s* s; + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz_s*)file; + *pglobal_info=s->gi; + return UNZ_OK; } @@ -471,163 +471,163 @@ local void unzlocal_DosDateToTmuDate (uLong ulDosDate, tm_unz *ptm) Get Info about the current file in the zipfile, with internal only info */ local int unzlocal_GetCurrentFileInfoInternal OF((unzFile file, - unz_file_info *pfile_info, - unz_file_info_internal - *pfile_info_internal, - char *szFileName, - uLong fileNameBufferSize, - void *extraField, - uLong extraFieldBufferSize, - char *szComment, - uLong commentBufferSize)); + unz_file_info *pfile_info, + unz_file_info_internal + *pfile_info_internal, + char *szFileName, + uLong fileNameBufferSize, + void *extraField, + uLong extraFieldBufferSize, + char *szComment, + uLong commentBufferSize)); local int unzlocal_GetCurrentFileInfoInternal (unzFile file, - unz_file_info *pfile_info, - unz_file_info_internal *pfile_info_internal, - char *szFileName, uLong fileNameBufferSize, - void *extraField, uLong extraFieldBufferSize, - char *szComment, uLong commentBufferSize) + unz_file_info *pfile_info, + unz_file_info_internal *pfile_info_internal, + char *szFileName, uLong fileNameBufferSize, + void *extraField, uLong extraFieldBufferSize, + char *szComment, uLong commentBufferSize) { - unz_s* s; - unz_file_info file_info; - unz_file_info_internal file_info_internal; - int err=UNZ_OK; - uLong uMagic; - long lSeek=0; + unz_s* s; + unz_file_info file_info; + unz_file_info_internal file_info_internal; + int err=UNZ_OK; + uLong uMagic; + long lSeek=0; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - if (zfile_fseek(s->file,s->pos_in_central_dir+s->byte_before_the_zipfile,SEEK_SET)!=0) - err=UNZ_ERRNO; + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz_s*)file; + if (zfile_fseek(s->file,s->pos_in_central_dir+s->byte_before_the_zipfile,SEEK_SET)!=0) + err=UNZ_ERRNO; - /* we check the magic */ - if (err==UNZ_OK) - if (unzlocal_getLong(s->file,&uMagic) != UNZ_OK) - err=UNZ_ERRNO; - else if (uMagic!=0x02014b50) - err=UNZ_BADZIPFILE; + /* we check the magic */ + if (err==UNZ_OK) + if (unzlocal_getLong(s->file,&uMagic) != UNZ_OK) + err=UNZ_ERRNO; + else if (uMagic!=0x02014b50) + err=UNZ_BADZIPFILE; - if (unzlocal_getShort(s->file,&file_info.version) != UNZ_OK) - err=UNZ_ERRNO; + if (unzlocal_getShort(s->file,&file_info.version) != UNZ_OK) + err=UNZ_ERRNO; - if (unzlocal_getShort(s->file,&file_info.version_needed) != UNZ_OK) - err=UNZ_ERRNO; + if (unzlocal_getShort(s->file,&file_info.version_needed) != UNZ_OK) + err=UNZ_ERRNO; - if (unzlocal_getShort(s->file,&file_info.flag) != UNZ_OK) - err=UNZ_ERRNO; + if (unzlocal_getShort(s->file,&file_info.flag) != UNZ_OK) + err=UNZ_ERRNO; - if (unzlocal_getShort(s->file,&file_info.compression_method) != UNZ_OK) - err=UNZ_ERRNO; + if (unzlocal_getShort(s->file,&file_info.compression_method) != UNZ_OK) + err=UNZ_ERRNO; - if (unzlocal_getLong(s->file,&file_info.dosDate) != UNZ_OK) - err=UNZ_ERRNO; + if (unzlocal_getLong(s->file,&file_info.dosDate) != UNZ_OK) + err=UNZ_ERRNO; unzlocal_DosDateToTmuDate(file_info.dosDate,&file_info.tmu_date); - if (unzlocal_getLong(s->file,&file_info.crc) != UNZ_OK) - err=UNZ_ERRNO; + if (unzlocal_getLong(s->file,&file_info.crc) != UNZ_OK) + err=UNZ_ERRNO; - if (unzlocal_getLong(s->file,&file_info.compressed_size) != UNZ_OK) - err=UNZ_ERRNO; + if (unzlocal_getLong(s->file,&file_info.compressed_size) != UNZ_OK) + err=UNZ_ERRNO; - if (unzlocal_getLong(s->file,&file_info.uncompressed_size) != UNZ_OK) - err=UNZ_ERRNO; + if (unzlocal_getLong(s->file,&file_info.uncompressed_size) != UNZ_OK) + err=UNZ_ERRNO; - if (unzlocal_getShort(s->file,&file_info.size_filename) != UNZ_OK) - err=UNZ_ERRNO; + if (unzlocal_getShort(s->file,&file_info.size_filename) != UNZ_OK) + err=UNZ_ERRNO; - if (unzlocal_getShort(s->file,&file_info.size_file_extra) != UNZ_OK) - err=UNZ_ERRNO; + if (unzlocal_getShort(s->file,&file_info.size_file_extra) != UNZ_OK) + err=UNZ_ERRNO; - if (unzlocal_getShort(s->file,&file_info.size_file_comment) != UNZ_OK) - err=UNZ_ERRNO; + if (unzlocal_getShort(s->file,&file_info.size_file_comment) != UNZ_OK) + err=UNZ_ERRNO; - if (unzlocal_getShort(s->file,&file_info.disk_num_start) != UNZ_OK) - err=UNZ_ERRNO; + if (unzlocal_getShort(s->file,&file_info.disk_num_start) != UNZ_OK) + err=UNZ_ERRNO; - if (unzlocal_getShort(s->file,&file_info.internal_fa) != UNZ_OK) - err=UNZ_ERRNO; + if (unzlocal_getShort(s->file,&file_info.internal_fa) != UNZ_OK) + err=UNZ_ERRNO; - if (unzlocal_getLong(s->file,&file_info.external_fa) != UNZ_OK) - err=UNZ_ERRNO; + if (unzlocal_getLong(s->file,&file_info.external_fa) != UNZ_OK) + err=UNZ_ERRNO; - if (unzlocal_getLong(s->file,&file_info_internal.offset_curfile) != UNZ_OK) - err=UNZ_ERRNO; + if (unzlocal_getLong(s->file,&file_info_internal.offset_curfile) != UNZ_OK) + err=UNZ_ERRNO; - lSeek+=file_info.size_filename; - if ((err==UNZ_OK) && (szFileName!=NULL)) - { - uLong uSizeRead ; - if (file_info.size_filename0) && (fileNameBufferSize>0)) - if (zfile_fread(szFileName,(uInt)uSizeRead,1,s->file)!=1) - err=UNZ_ERRNO; - lSeek -= uSizeRead; - } + if ((file_info.size_filename>0) && (fileNameBufferSize>0)) + if (zfile_fread(szFileName,(uInt)uSizeRead,1,s->file)!=1) + err=UNZ_ERRNO; + lSeek -= uSizeRead; + } - if ((err==UNZ_OK) && (extraField!=NULL)) - { - uLong uSizeRead ; - if (file_info.size_file_extrafile,lSeek,SEEK_CUR)==0) - lSeek=0; - else - err=UNZ_ERRNO; - if ((file_info.size_file_extra>0) && (extraFieldBufferSize>0)) - if (zfile_fread(extraField,(uInt)uSizeRead,1,s->file)!=1) - err=UNZ_ERRNO; - lSeek += file_info.size_file_extra - uSizeRead; - } - else - lSeek+=file_info.size_file_extra; + if (lSeek!=0) + if (zfile_fseek(s->file,lSeek,SEEK_CUR)==0) + lSeek=0; + else + err=UNZ_ERRNO; + if ((file_info.size_file_extra>0) && (extraFieldBufferSize>0)) + if (zfile_fread(extraField,(uInt)uSizeRead,1,s->file)!=1) + err=UNZ_ERRNO; + lSeek += file_info.size_file_extra - uSizeRead; + } + else + lSeek+=file_info.size_file_extra; - if ((err==UNZ_OK) && (szComment!=NULL)) - { - uLong uSizeRead ; - if (file_info.size_file_commentfile,lSeek,SEEK_CUR)==0) - lSeek=0; - else - err=UNZ_ERRNO; - if ((file_info.size_file_comment>0) && (commentBufferSize>0)) - if (zfile_fread(szComment,(uInt)uSizeRead,1,s->file)!=1) - err=UNZ_ERRNO; - lSeek+=file_info.size_file_comment - uSizeRead; - } - else - lSeek+=file_info.size_file_comment; + if (lSeek!=0) + if (zfile_fseek(s->file,lSeek,SEEK_CUR)==0) + lSeek=0; + else + err=UNZ_ERRNO; + if ((file_info.size_file_comment>0) && (commentBufferSize>0)) + if (zfile_fread(szComment,(uInt)uSizeRead,1,s->file)!=1) + err=UNZ_ERRNO; + lSeek+=file_info.size_file_comment - uSizeRead; + } + else + lSeek+=file_info.size_file_comment; - if ((err==UNZ_OK) && (pfile_info!=NULL)) - *pfile_info=file_info; + if ((err==UNZ_OK) && (pfile_info!=NULL)) + *pfile_info=file_info; - if ((err==UNZ_OK) && (pfile_info_internal!=NULL)) - *pfile_info_internal=file_info_internal; + if ((err==UNZ_OK) && (pfile_info_internal!=NULL)) + *pfile_info_internal=file_info_internal; - return err; + return err; } @@ -638,15 +638,15 @@ local int unzlocal_GetCurrentFileInfoInternal (unzFile file, return UNZ_OK if there is no problem. */ extern int ZEXPORT unzGetCurrentFileInfo (unzFile file, - unz_file_info *pfile_info, - char *szFileName, uLong fileNameBufferSize, - void *extraField, uLong extraFieldBufferSize, - char *szComment, uLong commentBufferSize) + unz_file_info *pfile_info, + char *szFileName, uLong fileNameBufferSize, + void *extraField, uLong extraFieldBufferSize, + char *szComment, uLong commentBufferSize) { - return unzlocal_GetCurrentFileInfoInternal(file,pfile_info,NULL, - szFileName,fileNameBufferSize, - extraField,extraFieldBufferSize, - szComment,commentBufferSize); + return unzlocal_GetCurrentFileInfoInternal(file,pfile_info,NULL, + szFileName,fileNameBufferSize, + extraField,extraFieldBufferSize, + szComment,commentBufferSize); } /* @@ -655,18 +655,18 @@ extern int ZEXPORT unzGetCurrentFileInfo (unzFile file, */ extern int ZEXPORT unzGoToFirstFile (unzFile file) { - int err=UNZ_OK; - unz_s* s; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - s->pos_in_central_dir=s->offset_central_dir; - s->num_file=0; - err=unzlocal_GetCurrentFileInfoInternal(file,&s->cur_file_info, - &s->cur_file_info_internal, - NULL,0,NULL,0,NULL,0); - s->current_file_ok = (err == UNZ_OK); - return err; + int err=UNZ_OK; + unz_s* s; + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz_s*)file; + s->pos_in_central_dir=s->offset_central_dir; + s->num_file=0; + err=unzlocal_GetCurrentFileInfoInternal(file,&s->cur_file_info, + &s->cur_file_info_internal, + NULL,0,NULL,0,NULL,0); + s->current_file_ok = (err == UNZ_OK); + return err; } @@ -677,25 +677,25 @@ extern int ZEXPORT unzGoToFirstFile (unzFile file) */ extern int ZEXPORT unzGoToNextFile (unzFile file) { - unz_s* s; - int err; + unz_s* s; + int err; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - if (!s->current_file_ok) - return UNZ_END_OF_LIST_OF_FILE; - if (s->num_file+1==s->gi.number_entry) - return UNZ_END_OF_LIST_OF_FILE; + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz_s*)file; + if (!s->current_file_ok) + return UNZ_END_OF_LIST_OF_FILE; + if (s->num_file+1==s->gi.number_entry) + return UNZ_END_OF_LIST_OF_FILE; - s->pos_in_central_dir += SIZECENTRALDIRITEM + s->cur_file_info.size_filename + - s->cur_file_info.size_file_extra + s->cur_file_info.size_file_comment ; - s->num_file++; - err = unzlocal_GetCurrentFileInfoInternal(file,&s->cur_file_info, - &s->cur_file_info_internal, - NULL,0,NULL,0,NULL,0); - s->current_file_ok = (err == UNZ_OK); - return err; + s->pos_in_central_dir += SIZECENTRALDIRITEM + s->cur_file_info.size_filename + + s->cur_file_info.size_file_extra + s->cur_file_info.size_file_comment ; + s->num_file++; + err = unzlocal_GetCurrentFileInfoInternal(file,&s->cur_file_info, + &s->cur_file_info_internal, + NULL,0,NULL,0,NULL,0); + s->current_file_ok = (err == UNZ_OK); + return err; } @@ -709,44 +709,44 @@ extern int ZEXPORT unzGoToNextFile (unzFile file) */ extern int ZEXPORT unzLocateFile (unzFile file, const char *szFileName, int iCaseSensitivity) { - unz_s* s; - int err; + unz_s* s; + int err; - uLong num_fileSaved; - uLong pos_in_central_dirSaved; + uLong num_fileSaved; + uLong pos_in_central_dirSaved; - if (file==NULL) - return UNZ_PARAMERROR; + if (file==NULL) + return UNZ_PARAMERROR; if (strlen(szFileName)>=UNZ_MAXFILENAMEINZIP) - return UNZ_PARAMERROR; + return UNZ_PARAMERROR; - s=(unz_s*)file; - if (!s->current_file_ok) - return UNZ_END_OF_LIST_OF_FILE; + s=(unz_s*)file; + if (!s->current_file_ok) + return UNZ_END_OF_LIST_OF_FILE; - num_fileSaved = s->num_file; - pos_in_central_dirSaved = s->pos_in_central_dir; + num_fileSaved = s->num_file; + pos_in_central_dirSaved = s->pos_in_central_dir; - err = unzGoToFirstFile(file); + err = unzGoToFirstFile(file); - while (err == UNZ_OK) - { - char szCurrentFileName[UNZ_MAXFILENAMEINZIP+1]; - unzGetCurrentFileInfo(file,NULL, - szCurrentFileName,sizeof(szCurrentFileName)-1, - NULL,0,NULL,0); - if (unzStringFileNameCompare(szCurrentFileName, - szFileName,iCaseSensitivity)==0) - return UNZ_OK; - err = unzGoToNextFile(file); - } + while (err == UNZ_OK) + { + char szCurrentFileName[UNZ_MAXFILENAMEINZIP+1]; + unzGetCurrentFileInfo(file,NULL, + szCurrentFileName,sizeof(szCurrentFileName)-1, + NULL,0,NULL,0); + if (unzStringFileNameCompare(szCurrentFileName, + szFileName,iCaseSensitivity)==0) + return UNZ_OK; + err = unzGoToNextFile(file); + } - s->num_file = num_fileSaved ; - s->pos_in_central_dir = pos_in_central_dirSaved ; - return err; + s->num_file = num_fileSaved ; + s->pos_in_central_dir = pos_in_central_dirSaved ; + return err; } @@ -758,85 +758,85 @@ extern int ZEXPORT unzLocateFile (unzFile file, const char *szFileName, int iCas (filename and size of extra field data) */ local int unzlocal_CheckCurrentFileCoherencyHeader (unz_s *s, uInt *piSizeVar, - uLong *poffset_local_extrafield, - uInt *psize_local_extrafield) + uLong *poffset_local_extrafield, + uInt *psize_local_extrafield) { - uLong uMagic,uData,uFlags; - uLong size_filename; - uLong size_extra_field; - int err=UNZ_OK; + uLong uMagic,uData,uFlags; + uLong size_filename; + uLong size_extra_field; + int err=UNZ_OK; - *piSizeVar = 0; - *poffset_local_extrafield = 0; - *psize_local_extrafield = 0; + *piSizeVar = 0; + *poffset_local_extrafield = 0; + *psize_local_extrafield = 0; - if (zfile_fseek(s->file,s->cur_file_info_internal.offset_curfile + - s->byte_before_the_zipfile,SEEK_SET)!=0) - return UNZ_ERRNO; + if (zfile_fseek(s->file,s->cur_file_info_internal.offset_curfile + + s->byte_before_the_zipfile,SEEK_SET)!=0) + return UNZ_ERRNO; - if (err==UNZ_OK) - if (unzlocal_getLong(s->file,&uMagic) != UNZ_OK) - err=UNZ_ERRNO; - else if (uMagic!=0x04034b50) - err=UNZ_BADZIPFILE; + if (err==UNZ_OK) + if (unzlocal_getLong(s->file,&uMagic) != UNZ_OK) + err=UNZ_ERRNO; + else if (uMagic!=0x04034b50) + err=UNZ_BADZIPFILE; - if (unzlocal_getShort(s->file,&uData) != UNZ_OK) - err=UNZ_ERRNO; -/* - else if ((err==UNZ_OK) && (uData!=s->cur_file_info.wVersion)) - err=UNZ_BADZIPFILE; -*/ - if (unzlocal_getShort(s->file,&uFlags) != UNZ_OK) - err=UNZ_ERRNO; + if (unzlocal_getShort(s->file,&uData) != UNZ_OK) + err=UNZ_ERRNO; + /* + else if ((err==UNZ_OK) && (uData!=s->cur_file_info.wVersion)) + err=UNZ_BADZIPFILE; + */ + if (unzlocal_getShort(s->file,&uFlags) != UNZ_OK) + err=UNZ_ERRNO; - if (unzlocal_getShort(s->file,&uData) != UNZ_OK) - err=UNZ_ERRNO; - else if ((err==UNZ_OK) && (uData!=s->cur_file_info.compression_method)) - err=UNZ_BADZIPFILE; -/* - if ((err==UNZ_OK) && (s->cur_file_info.compression_method!=0) && - (s->cur_file_info.compression_method!=Z_DEFLATED && s->cur_file_info.compression_method!=ZIP_BZIP2)) - err=UNZ_BADZIPFILE; -*/ - if (unzlocal_getLong(s->file,&uData) != UNZ_OK) /* date/time */ - err=UNZ_ERRNO; + if (unzlocal_getShort(s->file,&uData) != UNZ_OK) + err=UNZ_ERRNO; + else if ((err==UNZ_OK) && (uData!=s->cur_file_info.compression_method)) + err=UNZ_BADZIPFILE; + /* + if ((err==UNZ_OK) && (s->cur_file_info.compression_method!=0) && + (s->cur_file_info.compression_method!=Z_DEFLATED && s->cur_file_info.compression_method!=ZIP_BZIP2)) + err=UNZ_BADZIPFILE; + */ + if (unzlocal_getLong(s->file,&uData) != UNZ_OK) /* date/time */ + err=UNZ_ERRNO; - if (unzlocal_getLong(s->file,&uData) != UNZ_OK) /* crc */ - err=UNZ_ERRNO; - else if ((err==UNZ_OK) && (uData!=s->cur_file_info.crc) && - ((uFlags & 8)==0)) - err=UNZ_BADZIPFILE; + if (unzlocal_getLong(s->file,&uData) != UNZ_OK) /* crc */ + err=UNZ_ERRNO; + else if ((err==UNZ_OK) && (uData!=s->cur_file_info.crc) && + ((uFlags & 8)==0)) + err=UNZ_BADZIPFILE; - if (unzlocal_getLong(s->file,&uData) != UNZ_OK) /* size compr */ - err=UNZ_ERRNO; -/* else if ((err==UNZ_OK) && (uData!=s->cur_file_info.compressed_size) && - ((uFlags & 8)==0)) - err=UNZ_BADZIPFILE; -*/ - if (unzlocal_getLong(s->file,&uData) != UNZ_OK) /* size uncompr */ - err=UNZ_ERRNO; -/* else if ((err==UNZ_OK) && (uData!=s->cur_file_info.uncompressed_size) && - ((uFlags & 8)==0)) - err=UNZ_BADZIPFILE; -*/ + if (unzlocal_getLong(s->file,&uData) != UNZ_OK) /* size compr */ + err=UNZ_ERRNO; + /* else if ((err==UNZ_OK) && (uData!=s->cur_file_info.compressed_size) && + ((uFlags & 8)==0)) + err=UNZ_BADZIPFILE; + */ + if (unzlocal_getLong(s->file,&uData) != UNZ_OK) /* size uncompr */ + err=UNZ_ERRNO; + /* else if ((err==UNZ_OK) && (uData!=s->cur_file_info.uncompressed_size) && + ((uFlags & 8)==0)) + err=UNZ_BADZIPFILE; + */ - if (unzlocal_getShort(s->file,&size_filename) != UNZ_OK) - err=UNZ_ERRNO; - else if ((err==UNZ_OK) && (size_filename!=s->cur_file_info.size_filename)) - err=UNZ_BADZIPFILE; + if (unzlocal_getShort(s->file,&size_filename) != UNZ_OK) + err=UNZ_ERRNO; + else if ((err==UNZ_OK) && (size_filename!=s->cur_file_info.size_filename)) + err=UNZ_BADZIPFILE; - *piSizeVar += (uInt)size_filename; + *piSizeVar += (uInt)size_filename; - if (unzlocal_getShort(s->file,&size_extra_field) != UNZ_OK) - err=UNZ_ERRNO; - *poffset_local_extrafield= s->cur_file_info_internal.offset_curfile + - SIZEZIPLOCALHEADER + size_filename; - *psize_local_extrafield = (uInt)size_extra_field; + if (unzlocal_getShort(s->file,&size_extra_field) != UNZ_OK) + err=UNZ_ERRNO; + *poffset_local_extrafield= s->cur_file_info_internal.offset_curfile + + SIZEZIPLOCALHEADER + size_filename; + *psize_local_extrafield = (uInt)size_extra_field; - *piSizeVar += (uInt)size_extra_field; + *piSizeVar += (uInt)size_extra_field; - return err; + return err; } /* @@ -845,92 +845,93 @@ local int unzlocal_CheckCurrentFileCoherencyHeader (unz_s *s, uInt *piSizeVar, */ extern int ZEXPORT unzOpenCurrentFile (unzFile file) { - int err=UNZ_OK; - int Store; - uInt iSizeVar; - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - uLong offset_local_extrafield; /* offset of the local extra field */ - uInt size_local_extrafield; /* size of the local extra field */ + int err=UNZ_OK; + int Store; + uInt iSizeVar; + unz_s* s; + file_in_zip_read_info_s* pfile_in_zip_read_info; + uLong offset_local_extrafield; /* offset of the local extra field */ + uInt size_local_extrafield; /* size of the local extra field */ - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - if (!s->current_file_ok) - return UNZ_PARAMERROR; + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz_s*)file; + if (!s->current_file_ok) + return UNZ_PARAMERROR; if (s->pfile_in_zip_read != NULL) - unzCloseCurrentFile(file); + unzCloseCurrentFile(file); - if (unzlocal_CheckCurrentFileCoherencyHeader(s,&iSizeVar, - &offset_local_extrafield,&size_local_extrafield)!=UNZ_OK) - return UNZ_BADZIPFILE; + if (unzlocal_CheckCurrentFileCoherencyHeader(s,&iSizeVar, + &offset_local_extrafield,&size_local_extrafield)!=UNZ_OK) + return UNZ_BADZIPFILE; - pfile_in_zip_read_info = (file_in_zip_read_info_s*) - ALLOC(sizeof(file_in_zip_read_info_s)); - if (pfile_in_zip_read_info==NULL) - return UNZ_INTERNALERROR; + pfile_in_zip_read_info = (file_in_zip_read_info_s*) + ALLOC(sizeof(file_in_zip_read_info_s)); + if (pfile_in_zip_read_info==NULL) + return UNZ_INTERNALERROR; - pfile_in_zip_read_info->read_buffer=(char*)ALLOC(UNZ_BUFSIZE); - pfile_in_zip_read_info->offset_local_extrafield = offset_local_extrafield; - pfile_in_zip_read_info->size_local_extrafield = size_local_extrafield; - pfile_in_zip_read_info->pos_local_extrafield=0; + pfile_in_zip_read_info->read_buffer=(char*)ALLOC(UNZ_BUFSIZE); + pfile_in_zip_read_info->offset_local_extrafield = offset_local_extrafield; + pfile_in_zip_read_info->size_local_extrafield = size_local_extrafield; + pfile_in_zip_read_info->pos_local_extrafield=0; - if (pfile_in_zip_read_info->read_buffer==NULL) - { - TRYFREE(pfile_in_zip_read_info); - return UNZ_INTERNALERROR; - } + if (pfile_in_zip_read_info->read_buffer==NULL) + { + TRYFREE(pfile_in_zip_read_info); + return UNZ_INTERNALERROR; + } - pfile_in_zip_read_info->stream_initialised=0; + pfile_in_zip_read_info->stream_initialised=0; - if ((s->cur_file_info.compression_method!=0) && - (s->cur_file_info.compression_method!=Z_DEFLATED)) { - write_log (_T("ZIP: unknown compression method %d\n"), s->cur_file_info.compression_method); - err=UNZ_BADZIPFILE; - } - Store = s->cur_file_info.compression_method==0; + if ((s->cur_file_info.compression_method!=0) && + (s->cur_file_info.compression_method!=Z_DEFLATED)) + { + write_log (_T("ZIP: unknown compression method %d\n"), s->cur_file_info.compression_method); + err=UNZ_BADZIPFILE; + } + Store = s->cur_file_info.compression_method==0; - pfile_in_zip_read_info->crc32_wait=s->cur_file_info.crc; - pfile_in_zip_read_info->crc32=0; - pfile_in_zip_read_info->compression_method = - s->cur_file_info.compression_method; - pfile_in_zip_read_info->file=s->file; - pfile_in_zip_read_info->byte_before_the_zipfile=s->byte_before_the_zipfile; + pfile_in_zip_read_info->crc32_wait=s->cur_file_info.crc; + pfile_in_zip_read_info->crc32=0; + pfile_in_zip_read_info->compression_method = + s->cur_file_info.compression_method; + pfile_in_zip_read_info->file=s->file; + pfile_in_zip_read_info->byte_before_the_zipfile=s->byte_before_the_zipfile; pfile_in_zip_read_info->stream.total_out = 0; - if (!Store) - { - pfile_in_zip_read_info->stream.zalloc = (alloc_func)0; - pfile_in_zip_read_info->stream.zfree = (free_func)0; - pfile_in_zip_read_info->stream.opaque = (voidpf)0; + if (!Store) + { + pfile_in_zip_read_info->stream.zalloc = (alloc_func)0; + pfile_in_zip_read_info->stream.zfree = (free_func)0; + pfile_in_zip_read_info->stream.opaque = (voidpf)0; - err=inflateInit2_(&pfile_in_zip_read_info->stream, -MAX_WBITS, ZLIB_VERSION, sizeof(z_stream)); - if (err == Z_OK) - pfile_in_zip_read_info->stream_initialised=1; - /* windowBits is passed < 0 to tell that there is no zlib header. - * Note that in this case inflate *requires* an extra "dummy" byte - * after the compressed stream in order to complete decompression and - * return Z_STREAM_END. - * In unzip, i don't wait absolutely Z_STREAM_END because I known the - * size of both compressed and uncompressed data - */ - } - pfile_in_zip_read_info->rest_read_compressed = - s->cur_file_info.compressed_size ; - pfile_in_zip_read_info->rest_read_uncompressed = - s->cur_file_info.uncompressed_size ; + err=inflateInit2_(&pfile_in_zip_read_info->stream, -MAX_WBITS, ZLIB_VERSION, sizeof(z_stream)); + if (err == Z_OK) + pfile_in_zip_read_info->stream_initialised=1; + /* windowBits is passed < 0 to tell that there is no zlib header. + * Note that in this case inflate *requires* an extra "dummy" byte + * after the compressed stream in order to complete decompression and + * return Z_STREAM_END. + * In unzip, i don't wait absolutely Z_STREAM_END because I known the + * size of both compressed and uncompressed data + */ + } + pfile_in_zip_read_info->rest_read_compressed = + s->cur_file_info.compressed_size ; + pfile_in_zip_read_info->rest_read_uncompressed = + s->cur_file_info.uncompressed_size ; - pfile_in_zip_read_info->pos_in_zipfile = - s->cur_file_info_internal.offset_curfile + SIZEZIPLOCALHEADER + - iSizeVar; + pfile_in_zip_read_info->pos_in_zipfile = + s->cur_file_info_internal.offset_curfile + SIZEZIPLOCALHEADER + + iSizeVar; - pfile_in_zip_read_info->stream.avail_in = (uInt)0; + pfile_in_zip_read_info->stream.avail_in = (uInt)0; - s->pfile_in_zip_read = pfile_in_zip_read_info; + s->pfile_in_zip_read = pfile_in_zip_read_info; return UNZ_OK; } @@ -947,122 +948,122 @@ extern int ZEXPORT unzOpenCurrentFile (unzFile file) */ extern int ZEXPORT unzReadCurrentFile (unzFile file, voidp buf, unsigned int len) { - int err=UNZ_OK; - uInt iRead = 0; - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; + int err=UNZ_OK; + uInt iRead = 0; + unz_s* s; + file_in_zip_read_info_s* pfile_in_zip_read_info; + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz_s*)file; pfile_in_zip_read_info=s->pfile_in_zip_read; - if (pfile_in_zip_read_info==NULL) - return UNZ_PARAMERROR; + if (pfile_in_zip_read_info==NULL) + return UNZ_PARAMERROR; - if ((pfile_in_zip_read_info->read_buffer == NULL)) - return UNZ_END_OF_LIST_OF_FILE; - if (len==0) - return 0; + if ((pfile_in_zip_read_info->read_buffer == NULL)) + return UNZ_END_OF_LIST_OF_FILE; + if (len==0) + return 0; - pfile_in_zip_read_info->stream.next_out = (Bytef*)buf; + pfile_in_zip_read_info->stream.next_out = (Bytef*)buf; - pfile_in_zip_read_info->stream.avail_out = (uInt)len; + pfile_in_zip_read_info->stream.avail_out = (uInt)len; - if (len>pfile_in_zip_read_info->rest_read_uncompressed) - pfile_in_zip_read_info->stream.avail_out = - (uInt)pfile_in_zip_read_info->rest_read_uncompressed; + if (len>pfile_in_zip_read_info->rest_read_uncompressed) + pfile_in_zip_read_info->stream.avail_out = + (uInt)pfile_in_zip_read_info->rest_read_uncompressed; - while (pfile_in_zip_read_info->stream.avail_out>0) - { - if ((pfile_in_zip_read_info->stream.avail_in==0) && - (pfile_in_zip_read_info->rest_read_compressed>0)) - { - uInt uReadThis = UNZ_BUFSIZE; - if (pfile_in_zip_read_info->rest_read_compressedrest_read_compressed; - if (uReadThis == 0) - return UNZ_EOF; - if (zfile_fseek(pfile_in_zip_read_info->file, - pfile_in_zip_read_info->pos_in_zipfile + - pfile_in_zip_read_info->byte_before_the_zipfile,SEEK_SET)!=0) - return UNZ_ERRNO; - if (zfile_fread(pfile_in_zip_read_info->read_buffer,uReadThis,1, - pfile_in_zip_read_info->file)!=1) - return UNZ_ERRNO; - pfile_in_zip_read_info->pos_in_zipfile += uReadThis; + while (pfile_in_zip_read_info->stream.avail_out>0) + { + if ((pfile_in_zip_read_info->stream.avail_in==0) && + (pfile_in_zip_read_info->rest_read_compressed>0)) + { + uInt uReadThis = UNZ_BUFSIZE; + if (pfile_in_zip_read_info->rest_read_compressedrest_read_compressed; + if (uReadThis == 0) + return UNZ_EOF; + if (zfile_fseek(pfile_in_zip_read_info->file, + pfile_in_zip_read_info->pos_in_zipfile + + pfile_in_zip_read_info->byte_before_the_zipfile,SEEK_SET)!=0) + return UNZ_ERRNO; + if (zfile_fread(pfile_in_zip_read_info->read_buffer,uReadThis,1, + pfile_in_zip_read_info->file)!=1) + return UNZ_ERRNO; + pfile_in_zip_read_info->pos_in_zipfile += uReadThis; - pfile_in_zip_read_info->rest_read_compressed-=uReadThis; + pfile_in_zip_read_info->rest_read_compressed-=uReadThis; - pfile_in_zip_read_info->stream.next_in = - (Bytef*)pfile_in_zip_read_info->read_buffer; - pfile_in_zip_read_info->stream.avail_in = (uInt)uReadThis; - } + pfile_in_zip_read_info->stream.next_in = + (Bytef*)pfile_in_zip_read_info->read_buffer; + pfile_in_zip_read_info->stream.avail_in = (uInt)uReadThis; + } - if (pfile_in_zip_read_info->compression_method==0) - { - uInt uDoCopy,i ; - if (pfile_in_zip_read_info->stream.avail_out < - pfile_in_zip_read_info->stream.avail_in) - uDoCopy = pfile_in_zip_read_info->stream.avail_out ; - else - uDoCopy = pfile_in_zip_read_info->stream.avail_in ; + if (pfile_in_zip_read_info->compression_method==0) + { + uInt uDoCopy,i ; + if (pfile_in_zip_read_info->stream.avail_out < + pfile_in_zip_read_info->stream.avail_in) + uDoCopy = pfile_in_zip_read_info->stream.avail_out ; + else + uDoCopy = pfile_in_zip_read_info->stream.avail_in ; - for (i=0;istream.next_out+i) = - *(pfile_in_zip_read_info->stream.next_in+i); + for (i=0; istream.next_out+i) = + *(pfile_in_zip_read_info->stream.next_in+i); - pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32, - pfile_in_zip_read_info->stream.next_out, - uDoCopy); - pfile_in_zip_read_info->rest_read_uncompressed-=uDoCopy; - pfile_in_zip_read_info->stream.avail_in -= uDoCopy; - pfile_in_zip_read_info->stream.avail_out -= uDoCopy; - pfile_in_zip_read_info->stream.next_out += uDoCopy; - pfile_in_zip_read_info->stream.next_in += uDoCopy; - pfile_in_zip_read_info->stream.total_out += uDoCopy; - iRead += uDoCopy; - } - else - { - uLong uTotalOutBefore,uTotalOutAfter; - const Bytef *bufBefore; - uLong uOutThis; - int flush=Z_SYNC_FLUSH; + pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32, + pfile_in_zip_read_info->stream.next_out, + uDoCopy); + pfile_in_zip_read_info->rest_read_uncompressed-=uDoCopy; + pfile_in_zip_read_info->stream.avail_in -= uDoCopy; + pfile_in_zip_read_info->stream.avail_out -= uDoCopy; + pfile_in_zip_read_info->stream.next_out += uDoCopy; + pfile_in_zip_read_info->stream.next_in += uDoCopy; + pfile_in_zip_read_info->stream.total_out += uDoCopy; + iRead += uDoCopy; + } + else + { + uLong uTotalOutBefore,uTotalOutAfter; + const Bytef *bufBefore; + uLong uOutThis; + int flush=Z_SYNC_FLUSH; - uTotalOutBefore = pfile_in_zip_read_info->stream.total_out; - bufBefore = pfile_in_zip_read_info->stream.next_out; + uTotalOutBefore = pfile_in_zip_read_info->stream.total_out; + bufBefore = pfile_in_zip_read_info->stream.next_out; - /* - if ((pfile_in_zip_read_info->rest_read_uncompressed == - pfile_in_zip_read_info->stream.avail_out) && - (pfile_in_zip_read_info->rest_read_compressed == 0)) - flush = Z_FINISH; - */ - err=inflate(&pfile_in_zip_read_info->stream,flush); + /* + if ((pfile_in_zip_read_info->rest_read_uncompressed == + pfile_in_zip_read_info->stream.avail_out) && + (pfile_in_zip_read_info->rest_read_compressed == 0)) + flush = Z_FINISH; + */ + err=inflate(&pfile_in_zip_read_info->stream,flush); - uTotalOutAfter = pfile_in_zip_read_info->stream.total_out; - uOutThis = uTotalOutAfter-uTotalOutBefore; + uTotalOutAfter = pfile_in_zip_read_info->stream.total_out; + uOutThis = uTotalOutAfter-uTotalOutBefore; - pfile_in_zip_read_info->crc32 = - crc32(pfile_in_zip_read_info->crc32,bufBefore, - (uInt)(uOutThis)); + pfile_in_zip_read_info->crc32 = + crc32(pfile_in_zip_read_info->crc32,bufBefore, + (uInt)(uOutThis)); - pfile_in_zip_read_info->rest_read_uncompressed -= - uOutThis; + pfile_in_zip_read_info->rest_read_uncompressed -= + uOutThis; - iRead += (uInt)(uTotalOutAfter - uTotalOutBefore); + iRead += (uInt)(uTotalOutAfter - uTotalOutBefore); - if (err==Z_STREAM_END) - return (iRead==0) ? UNZ_EOF : iRead; - if (err!=Z_OK) - break; - } - } + if (err==Z_STREAM_END) + return (iRead==0) ? UNZ_EOF : iRead; + if (err!=Z_OK) + break; + } + } - if (err==Z_OK) - return iRead; - return err; + if (err==Z_OK) + return iRead; + return err; } @@ -1071,17 +1072,17 @@ extern int ZEXPORT unzReadCurrentFile (unzFile file, voidp buf, unsigned int le */ extern z_off_t ZEXPORT unztell (unzFile file) { - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; + unz_s* s; + file_in_zip_read_info_s* pfile_in_zip_read_info; + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz_s*)file; pfile_in_zip_read_info=s->pfile_in_zip_read; - if (pfile_in_zip_read_info==NULL) - return UNZ_PARAMERROR; + if (pfile_in_zip_read_info==NULL) + return UNZ_PARAMERROR; - return (z_off_t)pfile_in_zip_read_info->stream.total_out; + return (z_off_t)pfile_in_zip_read_info->stream.total_out; } @@ -1090,20 +1091,20 @@ extern z_off_t ZEXPORT unztell (unzFile file) */ extern int ZEXPORT unzeof (unzFile file) { - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; + unz_s* s; + file_in_zip_read_info_s* pfile_in_zip_read_info; + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz_s*)file; pfile_in_zip_read_info=s->pfile_in_zip_read; - if (pfile_in_zip_read_info==NULL) - return UNZ_PARAMERROR; + if (pfile_in_zip_read_info==NULL) + return UNZ_PARAMERROR; - if (pfile_in_zip_read_info->rest_read_uncompressed == 0) - return 1; - else - return 0; + if (pfile_in_zip_read_info->rest_read_uncompressed == 0) + return 1; + else + return 0; } @@ -1122,42 +1123,42 @@ extern int ZEXPORT unzeof (unzFile file) */ extern int ZEXPORT unzGetLocalExtrafield (unzFile file, voidp buf, unsigned int len) { - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - uInt read_now; - uLong size_to_read; + unz_s* s; + file_in_zip_read_info_s* pfile_in_zip_read_info; + uInt read_now; + uLong size_to_read; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz_s*)file; pfile_in_zip_read_info=s->pfile_in_zip_read; - if (pfile_in_zip_read_info==NULL) - return UNZ_PARAMERROR; + if (pfile_in_zip_read_info==NULL) + return UNZ_PARAMERROR; - size_to_read = (pfile_in_zip_read_info->size_local_extrafield - - pfile_in_zip_read_info->pos_local_extrafield); + size_to_read = (pfile_in_zip_read_info->size_local_extrafield - + pfile_in_zip_read_info->pos_local_extrafield); - if (buf==NULL) - return (int)size_to_read; + if (buf==NULL) + return (int)size_to_read; - if (len>size_to_read) - read_now = (uInt)size_to_read; - else - read_now = (uInt)len ; + if (len>size_to_read) + read_now = (uInt)size_to_read; + else + read_now = (uInt)len ; - if (read_now==0) - return 0; + if (read_now==0) + return 0; - if (zfile_fseek(pfile_in_zip_read_info->file, - pfile_in_zip_read_info->offset_local_extrafield + - pfile_in_zip_read_info->pos_local_extrafield,SEEK_SET)!=0) - return UNZ_ERRNO; + if (zfile_fseek(pfile_in_zip_read_info->file, + pfile_in_zip_read_info->offset_local_extrafield + + pfile_in_zip_read_info->pos_local_extrafield,SEEK_SET)!=0) + return UNZ_ERRNO; - if (zfile_fread(buf,(uInt)size_to_read,1,pfile_in_zip_read_info->file)!=1) - return UNZ_ERRNO; + if (zfile_fread(buf,(uInt)size_to_read,1,pfile_in_zip_read_info->file)!=1) + return UNZ_ERRNO; - return (int)read_now; + return (int)read_now; } /* @@ -1166,37 +1167,37 @@ extern int ZEXPORT unzGetLocalExtrafield (unzFile file, voidp buf, unsigned int */ extern int ZEXPORT unzCloseCurrentFile (unzFile file) { - int err=UNZ_OK; + int err=UNZ_OK; - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; + unz_s* s; + file_in_zip_read_info_s* pfile_in_zip_read_info; + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz_s*)file; pfile_in_zip_read_info=s->pfile_in_zip_read; - if (pfile_in_zip_read_info==NULL) - return UNZ_PARAMERROR; + if (pfile_in_zip_read_info==NULL) + return UNZ_PARAMERROR; - if (pfile_in_zip_read_info->rest_read_uncompressed == 0) - { - if (pfile_in_zip_read_info->crc32 != pfile_in_zip_read_info->crc32_wait) - err=UNZ_CRCERROR; - } + if (pfile_in_zip_read_info->rest_read_uncompressed == 0) + { + if (pfile_in_zip_read_info->crc32 != pfile_in_zip_read_info->crc32_wait) + err=UNZ_CRCERROR; + } - TRYFREE(pfile_in_zip_read_info->read_buffer); - pfile_in_zip_read_info->read_buffer = NULL; - if (pfile_in_zip_read_info->stream_initialised) - inflateEnd(&pfile_in_zip_read_info->stream); + TRYFREE(pfile_in_zip_read_info->read_buffer); + pfile_in_zip_read_info->read_buffer = NULL; + if (pfile_in_zip_read_info->stream_initialised) + inflateEnd(&pfile_in_zip_read_info->stream); - pfile_in_zip_read_info->stream_initialised = 0; - TRYFREE(pfile_in_zip_read_info); + pfile_in_zip_read_info->stream_initialised = 0; + TRYFREE(pfile_in_zip_read_info); s->pfile_in_zip_read=NULL; - return err; + return err; } @@ -1207,28 +1208,28 @@ extern int ZEXPORT unzCloseCurrentFile (unzFile file) */ extern int ZEXPORT unzGetGlobalComment (unzFile file, char *szComment, uLong uSizeBuf) { - int err=UNZ_OK; - unz_s* s; - uLong uReadThis ; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; + int err=UNZ_OK; + unz_s* s; + uLong uReadThis ; + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz_s*)file; - uReadThis = uSizeBuf; - if (uReadThis>s->gi.size_comment) - uReadThis = s->gi.size_comment; + uReadThis = uSizeBuf; + if (uReadThis>s->gi.size_comment) + uReadThis = s->gi.size_comment; - if (zfile_fseek(s->file,s->central_pos+22,SEEK_SET)!=0) - return UNZ_ERRNO; + if (zfile_fseek(s->file,s->central_pos+22,SEEK_SET)!=0) + return UNZ_ERRNO; - if (uReadThis>0) + if (uReadThis>0) { - *szComment='\0'; - if (zfile_fread(szComment,(uInt)uReadThis,1,s->file)!=1) - return UNZ_ERRNO; + *szComment='\0'; + if (zfile_fread(szComment,(uInt)uReadThis,1,s->file)!=1) + return UNZ_ERRNO; } - if ((szComment != NULL) && (uSizeBuf > s->gi.size_comment)) - *(szComment+s->gi.size_comment)='\0'; - return (int)uReadThis; + if ((szComment != NULL) && (uSizeBuf > s->gi.size_comment)) + *(szComment+s->gi.size_comment)='\0'; + return (int)uReadThis; } diff --git a/src/archivers/zip/unzip.h b/src/archivers/zip/unzip.h index 66fc97df..d40119de 100644 --- a/src/archivers/zip/unzip.h +++ b/src/archivers/zip/unzip.h @@ -1,4 +1,4 @@ -/* unzip.h -- IO for uncompress .zip files using zlib +/* unzip.h -- IO for uncompress .zip files using zlib Version 0.15 beta, Mar 19th, 1998, Copyright (C) 1998 Gilles Vollant @@ -33,7 +33,7 @@ */ -/* for more info about .ZIP format, see +/* for more info about .ZIP format, see ftp://ftp.cdrom.com/pub/infozip/doc/appnote-970311-iz.zip PkWare has also a specification at : ftp://ftp.pkware.com/probdesc.zip */ @@ -61,7 +61,10 @@ typedef uLong (ZEXPORT *CRC32)(uLong crc, const Bytef *buf, uInt len); #if defined(STRICTUNZIP) || defined(STRICTZIPUNZIP) /* like the STRICT of WIN32, we define a pointer that cannot be converted from (void*) without cast */ -typedef struct TagunzFile__ { int unused; } unzFile__; +typedef struct TagunzFile__ +{ + int unused; +} unzFile__; typedef unzFile__ *unzFile; #else typedef voidp unzFile; @@ -80,23 +83,23 @@ typedef voidp unzFile; #define UNZ_CRCERROR (-105) /* tm_unz contain date/time info */ -typedef struct tm_unz_s +typedef struct tm_unz_s { - uInt tm_sec; /* seconds after the minute - [0,59] */ - uInt tm_min; /* minutes after the hour - [0,59] */ - uInt tm_hour; /* hours since midnight - [0,23] */ - uInt tm_mday; /* day of the month - [1,31] */ - uInt tm_mon; /* months since January - [0,11] */ - uInt tm_year; /* years - [1980..2044] */ + uInt tm_sec; /* seconds after the minute - [0,59] */ + uInt tm_min; /* minutes after the hour - [0,59] */ + uInt tm_hour; /* hours since midnight - [0,23] */ + uInt tm_mday; /* day of the month - [1,31] */ + uInt tm_mon; /* months since January - [0,11] */ + uInt tm_year; /* years - [1980..2044] */ } tm_unz; /* unz_global_info structure contain global data about the ZIPfile These data comes from the end of central dir */ typedef struct unz_global_info_s { - uLong number_entry; /* total number of entries in + uLong number_entry; /* total number of entries in the central dir on this disk */ - uLong size_comment; /* size of the global comment of the zipfile */ + uLong size_comment; /* size of the global comment of the zipfile */ } unz_global_info; @@ -109,8 +112,8 @@ typedef struct unz_file_info_s uLong compression_method; /* compression method 2 bytes */ uLong dosDate; /* last mod file date in Dos fmt 4 bytes */ uLong crc; /* crc-32 4 bytes */ - uLong compressed_size; /* compressed size 4 bytes */ - uLong uncompressed_size; /* uncompressed size 4 bytes */ + uLong compressed_size; /* compressed size 4 bytes */ + uLong uncompressed_size; /* uncompressed size 4 bytes */ uLong size_filename; /* filename length 2 bytes */ uLong size_file_extra; /* extra field length 2 bytes */ uLong size_file_comment; /* file comment length 2 bytes */ @@ -123,8 +126,8 @@ typedef struct unz_file_info_s } unz_file_info; extern int ZEXPORT unzStringFileNameCompare OF ((const char* fileName1, - const char* fileName2, - int iCaseSensitivity)); + const char* fileName2, + int iCaseSensitivity)); /* Compare two filename (fileName1,fileName2). If iCaseSenisivity = 1, comparision is case sensitivity (like strcmp) @@ -154,7 +157,7 @@ extern int ZEXPORT unzClose OF((unzFile file)); return UNZ_OK if there is no problem. */ extern int ZEXPORT unzGetGlobalInfo OF((unzFile file, - unz_global_info *pglobal_info)); + unz_global_info *pglobal_info)); /* Write info about the ZipFile in the *pglobal_info structure. No preparation of the structure is needed @@ -162,8 +165,8 @@ extern int ZEXPORT unzGetGlobalInfo OF((unzFile file, extern int ZEXPORT unzGetGlobalComment OF((unzFile file, - char *szComment, - uLong uSizeBuf)); + char *szComment, + uLong uSizeBuf)); /* Get the global comment string of the ZipFile, in the szComment buffer. uSizeBuf is the size of the szComment buffer. @@ -187,9 +190,9 @@ extern int ZEXPORT unzGoToNextFile OF((unzFile file)); return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest. */ -extern int ZEXPORT unzLocateFile OF((unzFile file, - const char *szFileName, - int iCaseSensitivity)); +extern int ZEXPORT unzLocateFile OF((unzFile file, + const char *szFileName, + int iCaseSensitivity)); /* Try locate the file szFileName in the zipfile. For the iCaseSensitivity signification, see unzStringFileNameCompare @@ -201,13 +204,13 @@ extern int ZEXPORT unzLocateFile OF((unzFile file, extern int ZEXPORT unzGetCurrentFileInfo OF((unzFile file, - unz_file_info *pfile_info, - char *szFileName, - uLong fileNameBufferSize, - void *extraField, - uLong extraFieldBufferSize, - char *szComment, - uLong commentBufferSize)); + unz_file_info *pfile_info, + char *szFileName, + uLong fileNameBufferSize, + void *extraField, + uLong extraFieldBufferSize, + char *szComment, + uLong commentBufferSize)); /* Get Info about the current file if pfile_info!=NULL, the *pfile_info structure will contain somes info about @@ -238,10 +241,10 @@ extern int ZEXPORT unzCloseCurrentFile OF((unzFile file)); Return UNZ_CRCERROR if all the file was read but the CRC is not good */ - -extern int ZEXPORT unzReadCurrentFile OF((unzFile file, - voidp buf, - unsigned len)); + +extern int ZEXPORT unzReadCurrentFile OF((unzFile file, + voidp buf, + unsigned len)); /* Read bytes from the current file (opened by unzOpenCurrentFile) buf contain buffer where data must be copied @@ -260,12 +263,12 @@ extern z_off_t ZEXPORT unztell OF((unzFile file)); extern int ZEXPORT unzeof OF((unzFile file)); /* - return 1 if the end of file was reached, 0 elsewhere + return 1 if the end of file was reached, 0 elsewhere */ extern int ZEXPORT unzGetLocalExtrafield OF((unzFile file, - voidp buf, - unsigned len)); + voidp buf, + unsigned len)); /* Read extra field from the current file (opened by unzOpenCurrentFile) This is the local-header version of the extra field (sometimes, there is @@ -275,7 +278,7 @@ extern int ZEXPORT unzGetLocalExtrafield OF((unzFile file, if buf!=NULL, len is the size of the buffer, the extra header is copied in buf. - the return value is the number of bytes copied in buf, or (if <0) + the return value is the number of bytes copied in buf, or (if <0) the error code */ diff --git a/src/aros.rom.cpp b/src/aros.rom.cpp index 76d89d7c..3b6f55d8 100644 --- a/src/aros.rom.cpp +++ b/src/aros.rom.cpp @@ -1,31518 +1,31519 @@ -unsigned char arosrom[] = { -0x1f, 0x8b, 0x08, 0x08, 0xd7, 0x57, 0xa9, 0x4f, 0x02, 0x0b, 0x61, 0x72, 0x6f, 0x73, 0x2e, 0x72, -0x6f, 0x6d, 0x00, 0xdc, 0xfd, 0x0f, 0x7c, 0x53, 0xc7, 0x95, 0x37, 0x0e, 0x1f, 0x5d, 0x5f, 0x0b, -0x61, 0x14, 0x23, 0x1c, 0xc7, 0x51, 0x5d, 0x2f, 0xbd, 0x51, 0x85, 0x22, 0x64, 0x61, 0x09, 0xc5, -0x71, 0x1c, 0xe3, 0x35, 0xb2, 0x2c, 0x1b, 0x59, 0x18, 0xd7, 0x91, 0x5d, 0xca, 0xe6, 0xe1, 0xc9, -0xde, 0x12, 0x90, 0xf8, 0xe3, 0x7f, 0x75, 0x5d, 0x1e, 0xca, 0xe3, 0x87, 0xca, 0xc6, 0x10, 0x93, -0x90, 0x40, 0x08, 0x61, 0xd9, 0x34, 0xdb, 0x5f, 0x9e, 0x3e, 0x79, 0xba, 0x84, 0xfc, 0x73, 0x28, -0x4b, 0x29, 0xa5, 0x59, 0x43, 0x48, 0x96, 0x50, 0x9a, 0xc7, 0x71, 0x68, 0x96, 0x66, 0x69, 0x62, -0x58, 0x4a, 0x08, 0x21, 0x09, 0x9b, 0xa5, 0x59, 0x96, 0x38, 0xdc, 0xf7, 0x7b, 0xe6, 0x5e, 0xc9, -0x36, 0x90, 0xb6, 0xe9, 0xee, 0xf3, 0x7b, 0xdf, 0xcf, 0x6b, 0xb8, 0xba, 0xf7, 0xce, 0xcc, 0x9d, -0x39, 0x73, 0xe6, 0xcc, 0x99, 0x73, 0x66, 0xce, 0x9c, 0x99, 0x92, 0x5b, 0xff, 0xef, 0x74, 0x89, -0x24, 0x22, 0x4d, 0xa3, 0x22, 0xca, 0xe2, 0x4b, 0xc3, 0x5f, 0x65, 0xec, 0x6b, 0x8d, 0x4a, 0xf5, -0x82, 0x26, 0xa5, 0x7a, 0x55, 0xe7, 0x92, 0xd6, 0x6f, 0x2f, 0x6b, 0x6b, 0x55, 0xea, 0x96, 0x2d, -0xea, 0xf8, 0x66, 0xc7, 0xb2, 0x25, 0xdf, 0xa6, 0xaa, 0xb6, 0xf6, 0xef, 0x76, 0x2c, 0x4b, 0x2c, -0xed, 0x54, 0x9e, 0x52, 0x02, 0xfe, 0x99, 0x33, 0x15, 0x6a, 0x5a, 0xba, 0x44, 0x11, 0x9f, 0x84, -0x97, 0xac, 0x5c, 0xd2, 0xdc, 0xd6, 0xde, 0xb2, 0xa4, 0xb5, 0x53, 0x69, 0x5a, 0xf2, 0xcd, 0x16, -0xaf, 0x42, 0x95, 0xcd, 0xcd, 0x4a, 0x8c, 0x53, 0x7f, 0x5b, 0x89, 0x2d, 0xf9, 0xf6, 0x92, 0x8e, -0x95, 0x4b, 0x16, 0x17, 0x91, 0x3f, 0x50, 0xe4, 0xbf, 0xbd, 0x08, 0x1f, 0x07, 0xe8, 0x3f, 0xf7, -0x6f, 0xd8, 0xe2, 0xc6, 0x25, 0xd3, 0xf0, 0x84, 0x11, 0xdc, 0xf1, 0x3e, 0xc5, 0x4f, 0xc3, 0x13, -0x8f, 0xd1, 0xf0, 0xe4, 0x26, 0xdc, 0x87, 0xb9, 0x6e, 0xff, 0xe1, 0x32, 0x9c, 0xf3, 0xab, 0x63, -0x65, 0xca, 0x8a, 0x25, 0xdf, 0x6d, 0xf9, 0x66, 0x7b, 0x51, 0xb3, 0x40, 0xcb, 0x77, 0x95, 0xe2, -0x99, 0x45, 0x01, 0xc5, 0x1d, 0x28, 0xd2, 0x6b, 0x35, 0xfd, 0x86, 0x2c, 0x1a, 0x9f, 0x80, 0x28, -0x0a, 0x88, 0x4c, 0xcd, 0x34, 0x9c, 0x73, 0xbe, 0x7b, 0xfa, 0x44, 0x40, 0x69, 0x5a, 0x88, 0x6b, -0x16, 0xae, 0x8d, 0xe9, 0x9c, 0x43, 0x34, 0x4c, 0x83, 0x46, 0x3d, 0x16, 0x9a, 0x24, 0x49, 0x96, -0x64, 0xd9, 0x72, 0x1d, 0x08, 0x4c, 0x57, 0xbd, 0xdb, 0xae, 0x89, 0xb7, 0xd1, 0x94, 0x31, 0xef, -0x96, 0x6b, 0xe2, 0x2d, 0x34, 0x71, 0xdc, 0xf7, 0x16, 0xb2, 0x5f, 0xf3, 0x3d, 0xa7, 0xb1, 0xd3, -0x97, 0x0c, 0x38, 0xe4, 0xeb, 0x94, 0x6f, 0xbb, 0xaa, 0x3c, 0xcb, 0x55, 0xf9, 0xa7, 0xf2, 0x1d, -0x0f, 0x8f, 0xc9, 0xf8, 0x47, 0x26, 0xfd, 0x32, 0x49, 0x19, 0xe2, 0xe2, 0x28, 0x93, 0x49, 0xc4, -0x49, 0x19, 0xfc, 0x6e, 0x42, 0xd1, 0x19, 0x22, 0x4e, 0xce, 0x34, 0x4f, 0xc8, 0x48, 0xfd, 0x49, -0xc6, 0xbf, 0x0c, 0x49, 0xbf, 0x24, 0x13, 0x89, 0x8b, 0xa3, 0x24, 0x49, 0xc4, 0x71, 0x26, 0xfc, -0xc6, 0x25, 0xf0, 0xdb, 0x15, 0x6e, 0xf7, 0x61, 0xe0, 0x72, 0x58, 0x8e, 0xd0, 0x70, 0x26, 0x5f, -0x0d, 0xb8, 0x16, 0xe0, 0xda, 0x4e, 0xc3, 0x66, 0xbe, 0x9e, 0xc8, 0x90, 0xbe, 0x3f, 0x7b, 0x8d, -0x49, 0x96, 0x32, 0x27, 0x7e, 0xff, 0x6e, 0x49, 0xce, 0x30, 0x7f, 0xbf, 0xea, 0xfb, 0x4a, 0x50, -0x3c, 0x84, 0xbf, 0xaf, 0x54, 0x02, 0x07, 0xe6, 0xef, 0x87, 0xbe, 0xdf, 0x28, 0xee, 0x95, 0xdf, -0x6f, 0x02, 0x42, 0x2c, 0xdf, 0x2f, 0xbe, 0x7d, 0xcd, 0xf7, 0x6f, 0xbf, 0x7d, 0x8d, 0xfe, 0x5c, -0x8c, 0xe7, 0x62, 0xe3, 0xf9, 0x36, 0x3c, 0xdf, 0x66, 0x3c, 0x07, 0xf0, 0x1c, 0x30, 0x9e, 0x67, -0xe2, 0x79, 0xa6, 0xf1, 0xec, 0xc7, 0xb3, 0x5f, 0x7f, 0x0e, 0x20, 0xfc, 0x36, 0x23, 0x3c, 0x80, -0xf0, 0xdb, 0xfc, 0x6b, 0x32, 0x64, 0x79, 0xc2, 0xf7, 0xef, 0x5c, 0xf3, 0xfd, 0x99, 0x77, 0xea, -0x8f, 0xa5, 0x78, 0x2c, 0xd5, 0x1f, 0xef, 0xc0, 0xe3, 0x1d, 0xfa, 0x63, 0x09, 0x1e, 0x4b, 0xf4, -0x47, 0x80, 0x32, 0xf3, 0x76, 0xfd, 0x11, 0x90, 0xcc, 0x2c, 0xd6, 0x1f, 0x01, 0xc8, 0xcc, 0xdb, -0xf4, 0x47, 0xc0, 0x31, 0x33, 0xa0, 0x3f, 0xa2, 0xb8, 0x99, 0x33, 0xf5, 0x47, 0x94, 0x36, 0xd3, -0xbf, 0x66, 0x42, 0x06, 0xa3, 0x57, 0xa0, 0x78, 0x82, 0x69, 0x42, 0x92, 0x26, 0x4c, 0xb8, 0x15, -0xff, 0xf1, 0x37, 0x61, 0x02, 0xde, 0x88, 0x8c, 0xb7, 0x5b, 0x27, 0x98, 0x4c, 0x49, 0x7e, 0xcf, -0x98, 0xc0, 0x7f, 0xfc, 0x6a, 0xe2, 0x57, 0x5a, 0xa3, 0xae, 0x51, 0x6f, 0xf9, 0xe9, 0x2d, 0x33, -0x83, 0xbb, 0x82, 0x81, 0xaf, 0xfe, 0xf8, 0xab, 0xb7, 0x39, 0x7f, 0xe8, 0x2c, 0x9e, 0xb6, 0x7f, -0xda, 0xed, 0xf7, 0xfc, 0xfc, 0x9e, 0x12, 0xd7, 0x8b, 0xae, 0x3b, 0x3c, 0x3f, 0xf1, 0x94, 0xba, -0x9f, 0x76, 0xdf, 0x39, 0xfd, 0x67, 0xd3, 0xfd, 0x7f, 0x39, 0xe3, 0x2f, 0x67, 0x14, 0xfe, 0x79, -0xe1, 0x9f, 0x77, 0x2d, 0xec, 0x5a, 0xc8, 0xdf, 0xfa, 0xf1, 0xf7, 0xf2, 0x6f, 0xef, 0xfa, 0x56, -0x7f, 0xff, 0x37, 0xfe, 0x1b, 0xda, 0x61, 0xc7, 0x73, 0xcf, 0xc5, 0x3a, 0xde, 0xbe, 0xd2, 0xd4, -0x89, 0xe7, 0x57, 0x70, 0x9d, 0x46, 0x5f, 0x96, 0x70, 0x29, 0x7b, 0xf6, 0x34, 0xb4, 0xff, 0xf7, -0xff, 0xf2, 0xdf, 0xff, 0xcb, 0xff, 0xf8, 0xaf, 0xff, 0xe3, 0xbf, 0x1a, 0xdf, 0xcd, 0xc4, 0x15, -0xc0, 0x75, 0x1b, 0xe2, 0x2b, 0xfe, 0xf6, 0x9d, 0xc6, 0x6f, 0x0f, 0x5e, 0x08, 0x2f, 0xc6, 0x33, -0x7a, 0xd6, 0x04, 0xf4, 0xb4, 0x09, 0x5d, 0xb8, 0x36, 0xe2, 0x7a, 0xfc, 0x7f, 0xfd, 0xaf, 0xba, -0xe6, 0xb2, 0x59, 0x65, 0xb3, 0x1c, 0xb7, 0x3a, 0x6e, 0x4d, 0x91, 0x21, 0xbe, 0x2b, 0xc6, 0x75, -0x3b, 0xae, 0x92, 0x9f, 0x3d, 0x5d, 0x51, 0xfe, 0xcc, 0x0b, 0x77, 0xaf, 0xfe, 0xb7, 0x7f, 0x5c, -0xb0, 0xea, 0x1f, 0xde, 0xad, 0xba, 0x77, 0xe7, 0xce, 0xf9, 0x2b, 0xf7, 0xed, 0x0b, 0x2d, 0xc2, -0xb7, 0xcf, 0xfc, 0xfd, 0xde, 0x79, 0x2d, 0xe5, 0xde, 0x72, 0x6f, 0x45, 0x51, 0x45, 0xd1, 0x6c, -0xdf, 0x6c, 0x9f, 0xf1, 0x6d, 0x11, 0xae, 0x3b, 0x70, 0x95, 0xe2, 0xba, 0x13, 0xfc, 0x33, 0x43, -0x33, 0x5d, 0x21, 0xed, 0xef, 0xb5, 0x8f, 0xf0, 0xef, 0xdf, 0x1c, 0x54, 0x49, 0xb2, 0x44, 0x95, -0x95, 0x95, 0x7c, 0x8d, 0xfd, 0x63, 0x8a, 0xa4, 0x60, 0x72, 0xdc, 0x5f, 0xa8, 0x32, 0x1c, 0x1e, -0x1f, 0x82, 0x72, 0x8f, 0x58, 0xf0, 0x47, 0xc3, 0x19, 0x53, 0x6e, 0xc0, 0x1f, 0x51, 0x16, 0xae, -0xef, 0x7f, 0xf9, 0x7b, 0xf8, 0x43, 0xd8, 0x4a, 0x5c, 0xcb, 0x71, 0xdd, 0x33, 0x03, 0x7f, 0xb8, -0x3f, 0x84, 0x2b, 0x80, 0xcb, 0x83, 0xcb, 0x8e, 0xeb, 0x16, 0x5c, 0x9f, 0xe1, 0xfa, 0x18, 0xd7, -0xbb, 0xb8, 0x4e, 0xe0, 0x7a, 0x1d, 0x17, 0xf0, 0x99, 0xf1, 0x33, 0x5c, 0xfd, 0xb8, 0xfe, 0x37, -0xae, 0xc7, 0xfe, 0x8b, 0xfb, 0xbf, 0xb8, 0xff, 0xeb, 0xf4, 0xff, 0x3a, 0xdd, 0x87, 0x3f, 0x0f, -0xfe, 0x0a, 0xf1, 0x87, 0x70, 0xeb, 0x9f, 0xce, 0x7f, 0x33, 0x62, 0xb8, 0x7a, 0x70, 0xd5, 0xe0, -0x2a, 0xfb, 0x8f, 0xb2, 0xda, 0x39, 0xff, 0x4a, 0x5d, 0x82, 0x2f, 0xd8, 0x4c, 0x37, 0xd3, 0x53, -0xf8, 0x97, 0x89, 0x7f, 0xeb, 0x68, 0xdd, 0x92, 0xf7, 0xce, 0x9e, 0x5b, 0xf2, 0xfe, 0x92, 0xea, -0x57, 0x0f, 0x1f, 0xa9, 0xfe, 0x45, 0xb5, 0x88, 0x7d, 0x92, 0xfe, 0x37, 0x7d, 0x09, 0xff, 0xfe, -0x9a, 0xfe, 0xfa, 0xbb, 0x9f, 0x7d, 0xf7, 0xbb, 0xdf, 0xd5, 0xbe, 0xfb, 0x17, 0xbf, 0xf9, 0x0b, -0xfe, 0x13, 0xb1, 0x7f, 0x87, 0x7f, 0x37, 0xe1, 0xdf, 0xa3, 0xf4, 0xe8, 0x77, 0x2e, 0xff, 0xfb, -0xa7, 0xdf, 0x19, 0xf9, 0xce, 0xd7, 0xdf, 0xfa, 0xf5, 0x3f, 0x7d, 0xfd, 0xc4, 0xd7, 0x45, 0xec, -0xff, 0xa4, 0x1f, 0x81, 0x5f, 0x4d, 0xa4, 0x0d, 0xb4, 0x61, 0xd9, 0x07, 0xe7, 0x3f, 0x5c, 0xf6, -0xd1, 0xb2, 0xda, 0x5f, 0x1e, 0x7d, 0xad, 0xf6, 0xff, 0xd4, 0x8a, 0xd8, 0x4b, 0x74, 0x9c, 0x26, -0xe3, 0xdf, 0x26, 0xda, 0xd4, 0xf6, 0xaf, 0x1f, 0x5f, 0xfc, 0xdd, 0x27, 0x6d, 0x5f, 0x7b, 0x63, -0xe8, 0xd8, 0xaf, 0xde, 0xfc, 0x9a, 0x88, 0x3d, 0x43, 0xaf, 0x08, 0x6e, 0xd6, 0x4d, 0xdd, 0xdf, -0x3c, 0x39, 0x7c, 0xea, 0x9f, 0x4f, 0xff, 0xb6, 0xf2, 0xc0, 0xc0, 0xc1, 0x97, 0x0e, 0xbd, 0x4c, -0x71, 0xaa, 0xb1, 0x98, 0x2c, 0x26, 0x32, 0xe3, 0xdf, 0x7a, 0xfc, 0x4b, 0xd0, 0x1c, 0x8b, 0x64, -0x91, 0x68, 0x02, 0xfe, 0xdd, 0x87, 0x7f, 0x4b, 0x29, 0x62, 0xc9, 0xb0, 0x64, 0x80, 0x47, 0x5a, -0xa8, 0x0f, 0xff, 0x96, 0x53, 0xd4, 0x22, 0x63, 0xec, 0xca, 0xc2, 0xbf, 0xfb, 0xf1, 0x6f, 0x05, -0xcd, 0xb5, 0x64, 0x5a, 0x32, 0x69, 0x12, 0xfe, 0x3d, 0x40, 0x0f, 0x88, 0xd2, 0x88, 0x9e, 0xa7, -0x6c, 0xfc, 0x7b, 0x88, 0x1e, 0x6a, 0xc5, 0xdf, 0xbf, 0xb4, 0xb6, 0xd6, 0xe3, 0xef, 0xf5, 0xfa, -0x7a, 0x93, 0x4c, 0x4f, 0x28, 0xbb, 0xd5, 0x7b, 0xd6, 0xec, 0xe8, 0x37, 0x06, 0x9e, 0x8e, 0x25, -0xdf, 0x6e, 0xfb, 0x4e, 0xc7, 0xbd, 0x4b, 0xe8, 0x3b, 0xdf, 0xfe, 0x26, 0x5f, 0x33, 0x53, 0xdc, -0x77, 0x78, 0xe2, 0x52, 0x7e, 0x68, 0xa7, 0xfa, 0xef, 0xf0, 0xe5, 0xcb, 0x6e, 0x6c, 0x25, 0xc5, -0x97, 0x1d, 0xfa, 0xdb, 0xc8, 0x2a, 0x4d, 0x8b, 0x7c, 0x17, 0x63, 0xd0, 0xc5, 0xfa, 0x9f, 0x92, -0x56, 0xbe, 0xf0, 0x6b, 0x1f, 0x91, 0xad, 0x9d, 0xbc, 0x7f, 0xc9, 0x69, 0x7c, 0xd9, 0x91, 0x55, -0x64, 0x12, 0x17, 0xa7, 0x18, 0x19, 0x4d, 0x11, 0x4d, 0x26, 0xac, 0x31, 0xe4, 0x20, 0x15, 0x69, -0xff, 0x46, 0xd9, 0xaa, 0xf4, 0x37, 0xaf, 0x29, 0xd9, 0xfc, 0x4d, 0xe4, 0x5d, 0x0a, 0x38, 0x83, -0xb7, 0x77, 0x41, 0xba, 0xc8, 0x1b, 0xfb, 0xad, 0xc9, 0x3b, 0xe7, 0xdf, 0x49, 0x9b, 0x75, 0xb6, -0xfe, 0x11, 0x7c, 0x6d, 0xc5, 0xd7, 0xa1, 0xd1, 0x92, 0x4d, 0x05, 0xf5, 0x8f, 0xf8, 0xb2, 0xc6, -0xa6, 0x9e, 0x70, 0x81, 0x53, 0x97, 0x2f, 0x14, 0xa9, 0x0b, 0xa2, 0xc9, 0xf8, 0x02, 0x5f, 0xd6, -0x98, 0xf4, 0xb2, 0x08, 0xb7, 0x71, 0x88, 0x91, 0x7b, 0x6e, 0x2a, 0xf7, 0x31, 0xa9, 0x9c, 0xf5, -0x8f, 0xb4, 0x93, 0xdf, 0x43, 0xb6, 0x0e, 0x0a, 0x78, 0x28, 0xc7, 0x11, 0x7d, 0x64, 0x60, 0xb0, -0xdb, 0x8b, 0x31, 0x99, 0xe4, 0xfa, 0xe7, 0xb4, 0x22, 0xe4, 0x60, 0x7f, 0xf4, 0x88, 0x92, 0x55, -0xf7, 0x4e, 0x9d, 0xc0, 0x87, 0x2f, 0xab, 0xbd, 0xc8, 0x51, 0xce, 0xad, 0x9a, 0x4e, 0x53, 0xe6, -0x0c, 0x02, 0x52, 0xff, 0xb4, 0x36, 0xb2, 0x52, 0x56, 0xe5, 0xbf, 0xd3, 0xb0, 0x74, 0xbe, 0xea, -0x1c, 0x65, 0xb7, 0x2b, 0xa9, 0x14, 0x9f, 0x6d, 0xf6, 0x77, 0x51, 0xf1, 0xeb, 0x80, 0xc5, 0x11, -0x4d, 0x7f, 0x95, 0xa5, 0x64, 0x39, 0xff, 0x32, 0x8d, 0x8b, 0x36, 0xb2, 0x4d, 0xeb, 0xe2, 0x2f, -0xc9, 0x71, 0x53, 0x17, 0xda, 0xbc, 0x88, 0xdf, 0x26, 0xfc, 0x8a, 0xfc, 0x95, 0xe7, 0xa8, 0x78, -0x5a, 0x84, 0xca, 0x43, 0x3b, 0xa9, 0x14, 0xcf, 0xa5, 0x78, 0x2e, 0x46, 0xee, 0xae, 0x54, 0x3e, -0x57, 0xf2, 0x81, 0x13, 0xc6, 0xc5, 0x6f, 0xe7, 0x5c, 0xd6, 0x16, 0xd5, 0x3f, 0xd2, 0xb0, 0x09, -0xb0, 0xd8, 0x8c, 0xb0, 0xf7, 0xf8, 0xbd, 0xdd, 0xa4, 0x4a, 0xed, 0x94, 0x82, 0x5f, 0x29, 0x22, -0x07, 0x97, 0x5a, 0xff, 0xad, 0xaf, 0x7d, 0xa4, 0x75, 0x45, 0xde, 0x9d, 0x5d, 0xe1, 0x8b, 0x50, -0x99, 0x2f, 0x48, 0x15, 0xae, 0x5a, 0x5f, 0x25, 0xdd, 0xbd, 0x7b, 0x84, 0x28, 0x2e, 0x3b, 0x5b, -0xc9, 0x51, 0xda, 0x45, 0xee, 0x5f, 0x9f, 0x23, 0x9b, 0x67, 0x39, 0xe5, 0xce, 0xfd, 0x80, 0x9e, -0xa8, 0xfa, 0x88, 0x92, 0x95, 0x1f, 0xd1, 0x13, 0xed, 0xd4, 0xf0, 0xeb, 0x86, 0xe3, 0xb1, 0x64, -0x87, 0x6d, 0x57, 0x32, 0x7e, 0x31, 0xa7, 0x9c, 0x6e, 0x5d, 0x19, 0x7c, 0xe4, 0xd5, 0xd0, 0xf3, -0x14, 0x50, 0xe5, 0xc6, 0x8d, 0x7f, 0xf1, 0x60, 0x3b, 0xd9, 0xbc, 0x9a, 0xa6, 0xb4, 0x68, 0x23, -0x9d, 0x7f, 0x59, 0x23, 0x1d, 0x4a, 0xae, 0x52, 0xf6, 0xf6, 0xc4, 0x89, 0x9e, 0xec, 0x9a, 0x30, -0xb0, 0x7e, 0x1e, 0xb0, 0x63, 0x7a, 0x7c, 0x35, 0xe5, 0x97, 0x58, 0x28, 0x24, 0xbf, 0xd7, 0xb7, -0xb9, 0xcf, 0x1b, 0xfc, 0x0d, 0xcb, 0x3e, 0x4f, 0xfa, 0xa2, 0x54, 0xa2, 0xae, 0xb4, 0x42, 0x2a, -0x88, 0x37, 0x17, 0xb8, 0xc9, 0xd4, 0x3e, 0x79, 0x60, 0xfd, 0xd9, 0xec, 0xdc, 0x92, 0x3e, 0x53, -0x3f, 0x72, 0x6e, 0xcd, 0x9e, 0x2a, 0x55, 0xa3, 0xfc, 0xd7, 0x02, 0x16, 0xda, 0x3d, 0x21, 0x9e, -0x3f, 0xd5, 0xf4, 0x76, 0xc6, 0x57, 0xee, 0xb3, 0xb4, 0x73, 0xd8, 0x4d, 0x3d, 0x16, 0xe2, 0x34, -0x6d, 0x32, 0x6a, 0x11, 0x88, 0x9a, 0x13, 0xde, 0x1f, 0x0f, 0xb4, 0x64, 0x17, 0x70, 0xfa, 0x27, -0x8e, 0x72, 0x7a, 0x73, 0x3c, 0xbf, 0xc0, 0x74, 0x22, 0x03, 0xef, 0x9b, 0x6f, 0x5a, 0x6f, 0x21, -0x0e, 0xe7, 0x6f, 0x7e, 0x3c, 0xd0, 0x2c, 0x39, 0x82, 0xb1, 0xde, 0xa6, 0xbe, 0x7d, 0xbd, 0xad, -0xeb, 0xd1, 0x02, 0x25, 0x8d, 0xdd, 0xcb, 0x49, 0xab, 0x70, 0xc7, 0x50, 0x63, 0xb9, 0x3d, 0xd8, -0xbf, 0x36, 0x6e, 0xab, 0x3d, 0x4f, 0xc1, 0xb9, 0x1f, 0x98, 0xa8, 0x63, 0xf6, 0x4a, 0x52, 0x49, -0x73, 0x39, 0x7c, 0x14, 0x88, 0x75, 0x03, 0x4f, 0x51, 0x9f, 0x29, 0xb2, 0x8c, 0x4c, 0x4c, 0xe9, -0x7f, 0xbe, 0xb8, 0x61, 0x13, 0x4a, 0xbe, 0xc7, 0xd7, 0x46, 0x77, 0x53, 0x48, 0xa5, 0x8c, 0xb7, -0x95, 0x36, 0x2a, 0x9b, 0x6a, 0x0b, 0x00, 0x7f, 0x6f, 0x00, 0x7f, 0x6e, 0xe0, 0x0f, 0xf9, 0x3c, -0xd1, 0x6c, 0xf9, 0x4a, 0x17, 0x24, 0x9e, 0x45, 0xaa, 0xf9, 0x2b, 0xdc, 0xc2, 0x8b, 0x6c, 0x3e, -0x5a, 0xc4, 0x7d, 0xee, 0x2b, 0x41, 0xba, 0xb7, 0x93, 0x56, 0x69, 0xab, 0x69, 0x25, 0x75, 0xdc, -0x0a, 0x4a, 0x09, 0x76, 0x51, 0xc1, 0x04, 0x5f, 0x0d, 0xd5, 0xb7, 0xab, 0x03, 0xeb, 0x91, 0xf3, -0x62, 0xdf, 0x5c, 0x5a, 0x0a, 0xdc, 0x6e, 0xf8, 0x8b, 0x8d, 0x88, 0x99, 0xae, 0x69, 0x88, 0xab, -0x51, 0xbc, 0xda, 0x48, 0xd4, 0xdc, 0x42, 0xd2, 0x2e, 0x8b, 0x99, 0x32, 0x13, 0x44, 0x43, 0x5d, -0xa6, 0xfd, 0x6b, 0xf1, 0xfe, 0xc3, 0x82, 0x72, 0x9a, 0x70, 0xf4, 0x79, 0xaa, 0xf1, 0xd6, 0xcc, -0x15, 0xd8, 0xc6, 0x37, 0xb7, 0x9f, 0x25, 0x57, 0xcd, 0x3f, 0xfe, 0xe2, 0x1f, 0x07, 0x90, 0x53, -0xcc, 0x15, 0xf4, 0x66, 0xbf, 0xf7, 0xd0, 0xe3, 0x49, 0xf3, 0x7a, 0x81, 0xf7, 0x1a, 0x2a, 0x99, -0x77, 0xc1, 0x4e, 0xbe, 0x7a, 0x7c, 0x11, 0x54, 0xd7, 0xd8, 0x6e, 0x4c, 0x58, 0xc0, 0xe2, 0x4d, -0xf1, 0x0e, 0xd5, 0xf9, 0x62, 0x21, 0xee, 0xcb, 0x3d, 0xc0, 0x4c, 0x17, 0x95, 0xdf, 0xbe, 0x97, -0x14, 0xf3, 0x40, 0xef, 0x7e, 0xf4, 0x32, 0x8f, 0x8f, 0x6a, 0xdc, 0xd4, 0x49, 0x2b, 0x4d, 0x6a, -0x1d, 0x5a, 0x1b, 0xa9, 0xe6, 0x7e, 0x62, 0x01, 0x33, 0x06, 0x25, 0x35, 0x03, 0x37, 0x45, 0x2f, -0xfe, 0x59, 0xdc, 0x09, 0x1c, 0x94, 0xa0, 0x5f, 0xf9, 0xf7, 0x52, 0x74, 0x6d, 0xc2, 0xba, 0x7b, -0xfd, 0x92, 0x1c, 0x87, 0x7c, 0x30, 0xd9, 0xdf, 0x1d, 0xcf, 0xe2, 0xaf, 0x9d, 0x66, 0x37, 0xbe, -0x8e, 0xad, 0xdf, 0xff, 0x3c, 0xdd, 0xd3, 0x32, 0x88, 0xb4, 0xcd, 0xc0, 0x6c, 0x51, 0xd3, 0x03, -0x3f, 0xf9, 0x88, 0x62, 0x71, 0xd2, 0xba, 0x54, 0x32, 0xbd, 0x65, 0xf1, 0x81, 0x37, 0xd6, 0xa2, -0x66, 0x7b, 0xbb, 0x7e, 0x5f, 0x7d, 0x4a, 0xae, 0xa9, 0x4f, 0xcc, 0xa8, 0xcf, 0x7c, 0xe0, 0xae, -0x48, 0x6d, 0x05, 0x84, 0x37, 0x7a, 0x18, 0xa7, 0x80, 0xf3, 0xc4, 0xf3, 0x54, 0xf4, 0xb3, 0x8f, -0xa8, 0xa2, 0x75, 0xfe, 0x9e, 0x07, 0x5b, 0x63, 0x5e, 0xb4, 0x13, 0xe3, 0x12, 0x90, 0x47, 0xa9, -0x59, 0x01, 0x04, 0xa0, 0x82, 0x1a, 0x55, 0x8a, 0xad, 0xff, 0xd9, 0x2b, 0x6d, 0xf2, 0xcf, 0xb3, -0x12, 0x9f, 0xe0, 0xbd, 0x99, 0x73, 0xf9, 0xd9, 0x2b, 0x71, 0x27, 0x52, 0xc7, 0x50, 0xa3, 0x92, -0xbd, 0xe4, 0x09, 0xee, 0x59, 0xdf, 0x92, 0x15, 0xed, 0x89, 0x03, 0x1f, 0x3f, 0x1b, 0x10, 0x35, -0x9a, 0xef, 0xbe, 0xc1, 0x65, 0xee, 0x24, 0x51, 0x83, 0x92, 0xf8, 0x46, 0xc0, 0x9f, 0xaf, 0xb7, -0x87, 0x29, 0x27, 0xd5, 0x1e, 0x9e, 0x9a, 0x39, 0xcc, 0x1b, 0x9c, 0x80, 0xe4, 0xb6, 0xe3, 0xc4, -0x78, 0xf7, 0x06, 0xff, 0xea, 0x17, 0x5e, 0x60, 0x03, 0x25, 0xc4, 0xd4, 0x1a, 0x7f, 0x76, 0xff, -0x84, 0x78, 0xa9, 0x68, 0x5b, 0x1f, 0xc5, 0xfe, 0xe9, 0x97, 0xf8, 0xf7, 0x8b, 0x7f, 0xfa, 0xa5, -0xb7, 0x1c, 0xdf, 0x78, 0xcb, 0x6f, 0x5f, 0x4a, 0xd2, 0x7a, 0xd6, 0xc4, 0x5c, 0x35, 0x5c, 0xee, -0xd1, 0xde, 0x9f, 0xbc, 0x12, 0x77, 0x78, 0x2c, 0x6f, 0x75, 0xbb, 0x27, 0x89, 0x76, 0xc8, 0x53, -0xb2, 0x87, 0xd1, 0x97, 0x62, 0xa2, 0xfc, 0x96, 0xdd, 0xa9, 0x5c, 0xba, 0x26, 0x00, 0xc3, 0x35, -0xe8, 0x7d, 0x1b, 0xa3, 0xcf, 0xd3, 0x62, 0xdc, 0x7b, 0xd1, 0x1a, 0x72, 0xb4, 0x27, 0xb1, 0x3a, -0x3a, 0xa1, 0x59, 0xee, 0xb2, 0x9d, 0xdf, 0xeb, 0x0d, 0xb6, 0xcf, 0xae, 0x21, 0x6f, 0xf6, 0xc0, -0xfa, 0xae, 0x20, 0xda, 0xb6, 0x00, 0x5f, 0xd5, 0x7b, 0xb3, 0x7f, 0x9e, 0xec, 0xfa, 0xca, 0xc0, -0xfa, 0x44, 0xb6, 0x9e, 0xeb, 0x57, 0xda, 0xe8, 0x5e, 0xe0, 0xc5, 0x8c, 0xfb, 0x22, 0xaa, 0x01, -0x31, 0xc8, 0x05, 0x0c, 0x75, 0x25, 0x95, 0x28, 0xd9, 0x6a, 0xd6, 0x70, 0x5f, 0xe3, 0x03, 0x7b, -0xc0, 0x35, 0x12, 0x8e, 0x8e, 0xd9, 0x35, 0xa6, 0x83, 0x49, 0x4f, 0x65, 0x47, 0x70, 0xd7, 0x83, -0xf1, 0xb3, 0x2a, 0xd1, 0x27, 0x0c, 0xe1, 0x2a, 0xb2, 0x23, 0xb5, 0x80, 0x52, 0x46, 0x2b, 0x8b, -0x5e, 0xf6, 0x59, 0xb1, 0x23, 0x86, 0x7e, 0x21, 0xa3, 0xcc, 0xbe, 0xb8, 0xad, 0xea, 0x3d, 0x0a, -0xd6, 0x9e, 0xe7, 0x5e, 0xf6, 0xf0, 0x61, 0x95, 0x3e, 0x2b, 0x70, 0xb5, 0xd1, 0x52, 0xc0, 0x49, -0xf4, 0xa3, 0x68, 0xcf, 0x37, 0x0e, 0x44, 0xba, 0x77, 0xa3, 0x77, 0xc7, 0x06, 0x22, 0xc9, 0xc8, -0x40, 0x38, 0x59, 0x56, 0x59, 0xf9, 0x3b, 0x8b, 0xa4, 0x58, 0x1e, 0x7e, 0x9e, 0x42, 0x2b, 0x88, -0xfa, 0x50, 0x97, 0x85, 0x1c, 0x7f, 0x6f, 0x8d, 0xcf, 0x87, 0x5e, 0x29, 0x71, 0x8f, 0xac, 0xc8, -0x6d, 0xd8, 0x04, 0x4e, 0xb5, 0x39, 0xaf, 0xdf, 0x42, 0xe0, 0x5a, 0x4f, 0xdc, 0xfc, 0x2d, 0x28, -0x1f, 0xa6, 0xd1, 0xf8, 0x3f, 0xef, 0x6b, 0xd8, 0x34, 0x0f, 0xf1, 0x37, 0xaf, 0x44, 0xb8, 0xc4, -0x3c, 0xed, 0xe6, 0x76, 0x3c, 0x65, 0x2c, 0x78, 0x40, 0xb5, 0xe5, 0xfd, 0xc4, 0xdd, 0xce, 0x9c, -0xee, 0xe6, 0x6f, 0xb9, 0xf1, 0x4d, 0xd3, 0x03, 0x79, 0xeb, 0x6e, 0x0e, 0xf3, 0xfd, 0xaf, 0x9e, -0xa7, 0x8a, 0x7f, 0x7c, 0x9e, 0xca, 0x80, 0xc7, 0x8a, 0x38, 0x8d, 0x4c, 0x05, 0x9e, 0xee, 0xde, -0x0c, 0x18, 0x54, 0x73, 0x3b, 0x81, 0xbf, 0x6a, 0x75, 0xef, 0x74, 0x8d, 0x60, 0xac, 0xe8, 0xad, -0xff, 0xce, 0x57, 0x80, 0x7b, 0xae, 0x27, 0x5a, 0xb6, 0xde, 0xc0, 0x23, 0x5d, 0xb9, 0x04, 0xee, -0x61, 0xa9, 0xff, 0x56, 0xfd, 0xd7, 0xb5, 0xb3, 0x91, 0x77, 0x95, 0x32, 0x57, 0xa4, 0xb0, 0x56, -0x3b, 0x57, 0x58, 0xa9, 0x7d, 0x18, 0x7a, 0x56, 0xfb, 0x78, 0x94, 0xe7, 0x5a, 0x41, 0xa3, 0x24, -0xc7, 0xc9, 0xf4, 0x43, 0x8c, 0x33, 0xe4, 0x2f, 0x24, 0x74, 0x02, 0xfc, 0x9a, 0x7d, 0x14, 0x69, -0xd1, 0x3e, 0x01, 0xec, 0xc3, 0x53, 0x56, 0x8a, 0x71, 0x35, 0x98, 0x20, 0xd3, 0x1a, 0x50, 0xf6, -0x0c, 0xed, 0x93, 0x8e, 0xaf, 0x30, 0xd6, 0x3b, 0x95, 0xdd, 0xdd, 0xc0, 0xd8, 0xf6, 0xdc, 0x72, -0x0a, 0xe2, 0xa9, 0x21, 0xda, 0x8d, 0x5c, 0x16, 0x76, 0x50, 0xce, 0x0c, 0x6d, 0x04, 0x61, 0x13, -0x06, 0x7a, 0xde, 0xed, 0x53, 0x2a, 0x5f, 0x07, 0xaf, 0x95, 0x9e, 0xb1, 0xf9, 0x2d, 0x18, 0xaa, -0x34, 0x0d, 0x79, 0x94, 0x39, 0x66, 0x68, 0x97, 0xf0, 0x7c, 0x25, 0x6e, 0x96, 0x4c, 0xda, 0xff, -0xa3, 0x66, 0x47, 0x92, 0xe0, 0x40, 0x19, 0x9b, 0x07, 0x14, 0xcb, 0xbb, 0x7d, 0xc3, 0x4f, 0x7d, -0xb9, 0x52, 0xa4, 0xca, 0x55, 0x57, 0xea, 0x39, 0x75, 0x8e, 0xcd, 0xa7, 0x79, 0x34, 0x1f, 0xfa, -0x18, 0xfc, 0xfe, 0xd2, 0x20, 0x45, 0x92, 0x81, 0x20, 0xa0, 0xf2, 0x6f, 0x27, 0x1f, 0xff, 0x9a, -0x22, 0xc0, 0x2b, 0xe8, 0xe0, 0xe0, 0x1f, 0xf8, 0x7a, 0xb7, 0xd7, 0xf8, 0xda, 0x1f, 0xb4, 0x95, -0xf4, 0xd1, 0x97, 0x57, 0xf6, 0x99, 0x34, 0x2d, 0x4a, 0x71, 0x7d, 0xb4, 0x6f, 0xd1, 0x34, 0x75, -0x0d, 0x78, 0x92, 0x05, 0x29, 0xef, 0x17, 0xbc, 0x89, 0xa8, 0x87, 0xf1, 0x03, 0xce, 0x33, 0xc9, -0xc7, 0xbf, 0x59, 0x3e, 0xaa, 0x45, 0xdf, 0xca, 0xe9, 0xac, 0xdf, 0xca, 0x72, 0x83, 0x35, 0x88, -0x5c, 0x4b, 0x02, 0x74, 0xb6, 0x32, 0x11, 0x28, 0x26, 0x29, 0x44, 0x93, 0x5f, 0x3e, 0x60, 0xa4, -0xbf, 0x41, 0xa4, 0xb7, 0xa2, 0x69, 0xd2, 0x29, 0xe3, 0xb2, 0x5f, 0x52, 0xb3, 0xa4, 0x20, 0x4d, -0x1e, 0x0c, 0xa9, 0x52, 0x28, 0x28, 0x60, 0xd5, 0x7e, 0x73, 0x40, 0x99, 0x37, 0xa5, 0x84, 0x88, -0x21, 0xf0, 0x59, 0x00, 0xc3, 0x39, 0x81, 0xfd, 0x72, 0x21, 0x97, 0x04, 0x13, 0x66, 0xff, 0x0c, -0xed, 0xa2, 0x68, 0xf7, 0x0f, 0x16, 0xca, 0xda, 0xb1, 0xfa, 0xff, 0xca, 0x63, 0xeb, 0x8c, 0x48, -0x6a, 0x6c, 0xf5, 0x65, 0xf9, 0x24, 0xf0, 0x0e, 0xab, 0xd3, 0x47, 0xb9, 0x8a, 0x34, 0xb8, 0x93, -0x2c, 0xfd, 0x3b, 0x49, 0x6e, 0xcd, 0xf7, 0x49, 0xa0, 0xc2, 0x5c, 0x5f, 0x0e, 0x53, 0xe1, 0x2c, -0xcb, 0xaf, 0x10, 0xce, 0xf9, 0xf1, 0x08, 0x1d, 0x0a, 0x3a, 0xbf, 0xe2, 0x14, 0xd2, 0x80, 0x5f, -0x01, 0x3f, 0xb4, 0x39, 0xda, 0xa8, 0xc0, 0xef, 0xa3, 0xbc, 0x80, 0x8f, 0xf2, 0x57, 0x52, 0x09, -0x45, 0x33, 0x5a, 0x88, 0xde, 0xb4, 0x06, 0xe9, 0x7b, 0x18, 0x34, 0x5e, 0x0b, 0xb9, 0xc9, 0x2c, -0x75, 0x33, 0x3f, 0xe8, 0xcc, 0x38, 0xd4, 0x9d, 0x30, 0x4f, 0xe9, 0x02, 0xdd, 0x98, 0x3b, 0xfd, -0xfc, 0x4c, 0x6e, 0x48, 0x55, 0xe6, 0xf0, 0x81, 0xe5, 0xfc, 0x24, 0x93, 0x19, 0xdf, 0xcc, 0x5e, -0x54, 0xda, 0x49, 0xc5, 0xe4, 0xbc, 0xcb, 0xb6, 0xcb, 0x4d, 0xc7, 0x7a, 0x9c, 0xcb, 0x48, 0xfe, -0xd5, 0xc1, 0x5b, 0x3a, 0x40, 0xe1, 0xd2, 0x99, 0x88, 0x94, 0x14, 0xf9, 0x4c, 0x38, 0xb4, 0x76, -0xa5, 0xe9, 0xb7, 0x4f, 0x23, 0xce, 0x92, 0x9b, 0x71, 0x08, 0xe3, 0xa6, 0x63, 0x19, 0x59, 0xd5, -0xa0, 0x39, 0xa8, 0x0d, 0x88, 0x6f, 0x97, 0x91, 0x8d, 0xbf, 0x76, 0x49, 0x6f, 0xf2, 0xf7, 0xb9, -0xbf, 0x7a, 0xe9, 0x96, 0x8e, 0xd2, 0x31, 0xdf, 0xaf, 0xc4, 0xf7, 0x79, 0x90, 0x8b, 0x44, 0x0e, -0xf6, 0x74, 0x0e, 0x05, 0xaf, 0xcc, 0xb4, 0x50, 0xf8, 0x40, 0x3c, 0x2b, 0x2a, 0x09, 0xc8, 0x00, -0x25, 0xa4, 0xde, 0x89, 0x89, 0xec, 0x68, 0xc6, 0x7c, 0xf4, 0xe8, 0x70, 0x50, 0x35, 0x87, 0x82, -0xc0, 0xa3, 0xa9, 0xee, 0x1d, 0xd9, 0x0a, 0xcc, 0x7d, 0x5d, 0xbb, 0x04, 0x1c, 0xcd, 0x60, 0xd9, -0xd2, 0x3f, 0x83, 0xb2, 0x7d, 0xfc, 0x9b, 0x25, 0xa8, 0xff, 0x52, 0xfd, 0xbe, 0x2b, 0xa7, 0x0d, -0xda, 0x0f, 0x0b, 0xca, 0xbf, 0x84, 0x3e, 0x9b, 0x99, 0x28, 0x15, 0xed, 0x75, 0xe5, 0x73, 0x68, -0x2b, 0xdf, 0xd1, 0xa2, 0x5d, 0x66, 0xba, 0x7a, 0xfd, 0xb0, 0x75, 0x26, 0x59, 0xfa, 0x28, 0x6e, -0x09, 0x05, 0x6d, 0x33, 0xfb, 0x58, 0x26, 0xd2, 0x9c, 0x68, 0x43, 0x6e, 0xb9, 0xfa, 0x6f, 0xb1, -0xac, 0x4b, 0xc3, 0xb7, 0x1e, 0xc6, 0xf5, 0x24, 0xae, 0xc7, 0x71, 0x3d, 0x41, 0xc3, 0x77, 0x95, -0xd1, 0xb0, 0x8a, 0xeb, 0xde, 0x55, 0x34, 0xbc, 0xb4, 0x81, 0x86, 0x5f, 0x3a, 0x4b, 0xc3, 0x03, -0x47, 0x69, 0xf8, 0xb9, 0x5e, 0x1a, 0x7e, 0xfc, 0x10, 0x0d, 0x37, 0x3f, 0x43, 0xc3, 0x18, 0x08, -0x87, 0x77, 0x43, 0x1f, 0xf5, 0xe2, 0x1b, 0xdf, 0x71, 0x1a, 0x6e, 0x85, 0xdc, 0xd6, 0x59, 0x40, -0xc3, 0x5b, 0x72, 0x71, 0x6d, 0xa7, 0xe1, 0xbf, 0xbd, 0x40, 0xc3, 0x3b, 0xa0, 0x77, 0x3d, 0x87, -0xef, 0x77, 0x23, 0xbd, 0x17, 0xfa, 0x67, 0x85, 0x4c, 0xc3, 0x0f, 0x58, 0x11, 0x0f, 0x7d, 0xf4, -0xdb, 0x2f, 0xd2, 0xf0, 0xec, 0x8b, 0x34, 0xbc, 0x15, 0x7a, 0xdd, 0x23, 0x11, 0x5c, 0xbb, 0x69, -0xf8, 0xaf, 0x90, 0xff, 0xa3, 0x61, 0x84, 0xa1, 0x2e, 0xd3, 0x71, 0x7f, 0x0e, 0xf9, 0x6e, 0x43, -0xd9, 0xdf, 0x5a, 0x4d, 0xc3, 0xd5, 0x4e, 0xa4, 0x47, 0x9a, 0x4a, 0xe4, 0x7f, 0x04, 0x63, 0xc3, -0x0f, 0x51, 0xf6, 0xc3, 0x03, 0x34, 0xfc, 0x02, 0xf2, 0xfe, 0xe1, 0x5e, 0x1a, 0x5e, 0x80, 0xb2, -0xff, 0x37, 0xbe, 0x59, 0xe8, 0xa5, 0xe1, 0xff, 0x05, 0x98, 0x7e, 0x81, 0xf2, 0xff, 0x3b, 0x74, -0xbc, 0x1f, 0x72, 0x3e, 0xd0, 0x19, 0x9f, 0x43, 0xfc, 0x73, 0xa8, 0xcf, 0x23, 0x88, 0x53, 0x91, -0xbe, 0xc5, 0x8f, 0x6b, 0x18, 0xe5, 0x20, 0xfc, 0x61, 0x94, 0xf1, 0x14, 0xee, 0x47, 0x50, 0xc6, -0x26, 0x84, 0x83, 0x75, 0x0f, 0x2f, 0x6a, 0x42, 0xd9, 0x97, 0x68, 0xd8, 0x8d, 0x7c, 0xa6, 0xe3, -0xfb, 0x3d, 0x9c, 0x1e, 0x75, 0xf8, 0x9f, 0xc0, 0x55, 0x0b, 0xc2, 0x1f, 0xd9, 0x0c, 0x98, 0x00, -0xa7, 0x6f, 0x2b, 0xea, 0x0a, 0x7d, 0xba, 0x04, 0xb0, 0x77, 0xa3, 0x1e, 0x77, 0xa2, 0xfc, 0x1f, -0xd8, 0x68, 0x78, 0x3b, 0x60, 0xbd, 0x17, 0xf9, 0x2f, 0x45, 0x9e, 0xad, 0x80, 0xb7, 0x7b, 0x90, -0x86, 0xbf, 0x87, 0x6f, 0x96, 0xfd, 0x88, 0x86, 0x8f, 0xee, 0xc0, 0xf3, 0x31, 0x1a, 0xee, 0x01, -0xfc, 0x6b, 0x8e, 0xd0, 0xf0, 0x46, 0xe0, 0xe8, 0x19, 0xc0, 0x70, 0x08, 0x78, 0x49, 0x86, 0x68, -0x78, 0xbe, 0x4a, 0xc3, 0x4f, 0x14, 0xd3, 0xf0, 0x6b, 0xc0, 0x55, 0xf9, 0x02, 0xd4, 0x11, 0xe5, -0xfc, 0x05, 0xee, 0x5e, 0xc0, 0xf2, 0x1c, 0xd2, 0xb8, 0x81, 0x97, 0x87, 0xd1, 0x3e, 0x9b, 0x83, -0x80, 0x17, 0x65, 0x44, 0x71, 0xed, 0x40, 0xde, 0x07, 0x80, 0x93, 0x83, 0xc8, 0x77, 0x33, 0xca, -0x7a, 0x19, 0x70, 0xfe, 0x0d, 0xde, 0x9b, 0xf1, 0xcd, 0x7f, 0xc3, 0xfb, 0x5f, 0xa3, 0x0e, 0x3e, -0xc0, 0xe9, 0x43, 0xba, 0xe7, 0x10, 0xbe, 0x76, 0x27, 0x0d, 0x77, 0x9d, 0x07, 0xce, 0x50, 0xaf, -0xa3, 0xa8, 0xc3, 0x93, 0x68, 0xff, 0xa3, 0x28, 0x77, 0x13, 0xf4, 0xe0, 0x6d, 0xb8, 0x8e, 0xe0, -0xfa, 0x0e, 0xbe, 0x5b, 0x89, 0x76, 0xfe, 0x3b, 0xc6, 0x19, 0xe8, 0xa2, 0x06, 0xe5, 0xfd, 0xf5, -0x42, 0x5d, 0xa7, 0xed, 0x07, 0xbe, 0x7a, 0x80, 0x8f, 0x1e, 0xe0, 0xf2, 0x7e, 0xc0, 0xf7, 0x00, -0xf2, 0xda, 0xaa, 0x20, 0x6f, 0xe4, 0xf7, 0x2c, 0xea, 0xf2, 0xc0, 0xc5, 0x51, 0xfd, 0xd7, 0x8f, -0xf6, 0xfb, 0x1f, 0x68, 0xa7, 0x07, 0x00, 0x43, 0x0b, 0xda, 0x63, 0x51, 0x33, 0x0d, 0xff, 0x08, -0xdf, 0x3d, 0xb6, 0x14, 0xdf, 0xa3, 0x3e, 0x25, 0x78, 0x4f, 0xa2, 0x5d, 0x9f, 0x03, 0x3e, 0x76, -0x03, 0x37, 0xcf, 0x01, 0x96, 0x17, 0x80, 0xc7, 0x9d, 0x6f, 0x01, 0xf6, 0xa5, 0x7a, 0x1e, 0x25, -0xc0, 0xe7, 0x37, 0xdb, 0x81, 0x47, 0xc4, 0xef, 0x02, 0x1c, 0x1b, 0x51, 0x87, 0x39, 0x5b, 0xd0, -0xce, 0x9d, 0xd7, 0xea, 0xdb, 0xcf, 0x23, 0xcf, 0x38, 0x70, 0x5e, 0x8d, 0x32, 0x1f, 0x41, 0x1d, -0x9e, 0x41, 0x1b, 0xcc, 0x42, 0x7e, 0x7f, 0x8e, 0xf6, 0xf9, 0x7f, 0x00, 0xdf, 0xff, 0x04, 0x0c, -0xbf, 0x44, 0xbd, 0xfe, 0x0f, 0xf0, 0xb1, 0x18, 0xb0, 0x27, 0x0a, 0xc6, 0x7d, 0x7f, 0x72, 0xd6, -0x09, 0x3a, 0x59, 0x6e, 0xc6, 0x55, 0x84, 0x0b, 0x74, 0xf0, 0xf2, 0x0f, 0xfe, 0x13, 0xe7, 0x48, -0x13, 0x1d, 0xdf, 0x6c, 0x5f, 0xba, 0xec, 0xde, 0x6f, 0x8f, 0x9d, 0x25, 0x2d, 0x1e, 0x3f, 0x4b, -0x7a, 0x75, 0x12, 0x7d, 0x9e, 0x34, 0x6f, 0x2b, 0xa0, 0x59, 0xd5, 0x3d, 0x7d, 0x62, 0x25, 0x9e, -0x7b, 0x70, 0xfd, 0x25, 0xae, 0xdd, 0xa9, 0xcc, 0xe5, 0x7b, 0x30, 0x0e, 0x5c, 0xd0, 0xeb, 0x7f, -0x2b, 0xc6, 0x55, 0xe8, 0xf5, 0x24, 0xe6, 0x1b, 0x27, 0xe1, 0xca, 0xc2, 0xc5, 0xf3, 0x17, 0x99, -0xb8, 0x26, 0xe0, 0x32, 0x1b, 0xf3, 0x92, 0x3c, 0xbf, 0xc8, 0x73, 0x98, 0x37, 0xe0, 0xca, 0xc6, -0x35, 0x19, 0x17, 0x98, 0x1b, 0x2d, 0xc0, 0xa5, 0x8a, 0xe7, 0xe1, 0x69, 0xcb, 0x70, 0xb5, 0x18, -0xf7, 0x6f, 0x19, 0xcf, 0xab, 0xae, 0xf3, 0xfe, 0x3d, 0x5c, 0xe8, 0x03, 0xd3, 0x36, 0xe0, 0xaa, -0xc5, 0xf5, 0x10, 0xae, 0x47, 0x70, 0x6d, 0x37, 0x00, 0x74, 0x88, 0xb9, 0x5c, 0x22, 0x9e, 0xff, -0x78, 0xe2, 0xf7, 0x84, 0x7d, 0x31, 0x94, 0x8e, 0x7b, 0x43, 0x15, 0x87, 0x5d, 0x25, 0xa9, 0xf9, -0xdd, 0x64, 0x25, 0xea, 0x68, 0xe6, 0x39, 0x55, 0x45, 0xa3, 0xe1, 0x2f, 0x2f, 0x27, 0x50, 0xd7, -0xcd, 0x67, 0xc6, 0xcd, 0x00, 0xf3, 0x3f, 0x7d, 0x3e, 0xd6, 0x42, 0x0a, 0x2e, 0x37, 0x2e, 0x3f, -0xae, 0x52, 0x5c, 0x41, 0x5c, 0x11, 0x5c, 0x0d, 0xb8, 0x16, 0x10, 0x0f, 0xe7, 0x16, 0x5a, 0x8a, -0xab, 0x1d, 0xd7, 0x2a, 0x5c, 0x49, 0x31, 0x43, 0x61, 0xa1, 0xcd, 0xb8, 0xb6, 0xe3, 0x7a, 0x02, -0xd7, 0x0e, 0x5c, 0xfd, 0xb8, 0xf6, 0xe2, 0x1a, 0xc0, 0x75, 0x18, 0xd7, 0x20, 0xae, 0xe3, 0xb8, -0x86, 0x71, 0x9d, 0xc5, 0x75, 0x01, 0xd7, 0x25, 0xc2, 0x60, 0x80, 0x0b, 0xe5, 0x9b, 0x50, 0xbe, -0x09, 0xe5, 0x9b, 0x50, 0xbe, 0x09, 0xe5, 0x9b, 0x50, 0xbe, 0x09, 0xe5, 0x9b, 0x50, 0xbe, 0x09, -0xe5, 0x9b, 0x50, 0xbe, 0x09, 0xe5, 0x9b, 0x50, 0xbe, 0x09, 0xe5, 0x9b, 0x50, 0xbe, 0x09, 0xe5, -0x9b, 0x50, 0xbe, 0x09, 0xe5, 0x9b, 0x50, 0xbe, 0x09, 0xe5, 0x9b, 0x50, 0xbe, 0x09, 0xe5, 0x9b, -0x50, 0xbe, 0x09, 0xe5, 0x9b, 0x50, 0xbe, 0x09, 0xe5, 0x9b, 0x50, 0xbe, 0x09, 0xe5, 0x9b, 0x50, -0xbe, 0x09, 0xe5, 0x9b, 0x50, 0xbe, 0x09, 0xe5, 0x4b, 0x28, 0x5f, 0x42, 0xf9, 0x12, 0xca, 0x97, -0x50, 0xbe, 0x84, 0xf2, 0x25, 0x94, 0x2f, 0xa1, 0x7c, 0x09, 0xe5, 0x43, 0x2e, 0xb0, 0x48, 0x28, -0x5f, 0x42, 0xf9, 0x12, 0xca, 0x97, 0x50, 0xbe, 0x84, 0xf2, 0xa1, 0x52, 0x5b, 0x24, 0x94, 0x8f, -0xd1, 0xcf, 0x22, 0xa1, 0x7c, 0x09, 0xe5, 0x4b, 0x28, 0x5f, 0x42, 0xf9, 0x12, 0xca, 0x97, 0x50, -0xbe, 0x84, 0xf2, 0x25, 0x94, 0x2f, 0xa1, 0x7c, 0x09, 0xe5, 0x4b, 0x28, 0x5f, 0x42, 0xf9, 0x12, -0xca, 0x97, 0x50, 0xbe, 0x84, 0xf2, 0x41, 0x7a, 0xff, 0x5f, 0xbd, 0xb8, 0xfd, 0x33, 0x50, 0xff, -0x0c, 0xd4, 0x3f, 0x03, 0xf5, 0xcf, 0x40, 0xfd, 0x33, 0x50, 0xff, 0x0c, 0xd4, 0x3f, 0x03, 0xf5, -0xcf, 0x40, 0xfd, 0x33, 0x50, 0xff, 0x0c, 0xd4, 0x3f, 0x03, 0xf5, 0xcf, 0x30, 0xda, 0x3f, 0x83, -0x2f, 0xe0, 0x20, 0x03, 0x38, 0xc8, 0x00, 0x0e, 0x32, 0x80, 0x83, 0x0c, 0xe0, 0x20, 0x03, 0x38, -0xc8, 0x00, 0x0e, 0x32, 0x80, 0x83, 0x0c, 0xe0, 0x20, 0x03, 0x38, 0xc8, 0x00, 0x0e, 0x32, 0x80, -0x83, 0x0c, 0xe0, 0x20, 0x03, 0x38, 0xc8, 0x00, 0x0e, 0x32, 0x80, 0x83, 0x0c, 0xe0, 0x20, 0x03, -0x38, 0x40, 0xd7, 0xb3, 0xc8, 0x80, 0x41, 0x06, 0x0c, 0x32, 0x60, 0x90, 0x01, 0x83, 0x0c, 0x18, -0x64, 0xc0, 0x20, 0x03, 0x06, 0x19, 0x30, 0xc8, 0x80, 0x41, 0x06, 0x0c, 0x32, 0x60, 0x90, 0x01, -0x83, 0x8c, 0xf2, 0x65, 0x94, 0x2f, 0xa3, 0x7c, 0x19, 0xe5, 0xcb, 0x28, 0x5f, 0x46, 0xf9, 0x32, -0xca, 0x97, 0x51, 0xbe, 0x8c, 0xf2, 0x65, 0x94, 0x2f, 0xa3, 0x7c, 0x19, 0xe5, 0xcb, 0x28, 0x5f, -0x46, 0xf9, 0x32, 0xca, 0x97, 0x51, 0xbe, 0x8c, 0xf2, 0x65, 0x94, 0x2f, 0xa3, 0x7c, 0xb0, 0x03, -0x4b, 0x26, 0xca, 0xcf, 0x44, 0xf9, 0x99, 0x28, 0x3f, 0x13, 0xe5, 0x67, 0xa2, 0xfc, 0x4c, 0x94, -0x9f, 0x89, 0xf2, 0x33, 0x51, 0x7e, 0x26, 0xca, 0xcf, 0x44, 0xf9, 0x99, 0x28, 0x3f, 0x13, 0xe5, -0x67, 0xa2, 0xfc, 0x4c, 0x94, 0x9f, 0x89, 0xf2, 0x33, 0x51, 0x7e, 0x26, 0xca, 0xcf, 0x44, 0xf9, -0x99, 0x28, 0x3f, 0x13, 0xe5, 0x67, 0xa2, 0xfc, 0x4c, 0x94, 0x9f, 0x89, 0xf2, 0x33, 0x51, 0x7e, -0x26, 0xca, 0xcf, 0x44, 0xf9, 0x99, 0x28, 0x3f, 0x13, 0xe5, 0x67, 0xa2, 0xfc, 0xcc, 0x0b, 0xe9, -0x36, 0x40, 0xd7, 0x2b, 0x20, 0xab, 0xff, 0x0b, 0x77, 0xfc, 0xa9, 0xe8, 0x83, 0xbf, 0xef, 0x2f, -0xdb, 0xde, 0x0e, 0x6e, 0x86, 0xcc, 0x0b, 0x5e, 0xb2, 0x97, 0xc7, 0xd7, 0x14, 0x50, 0xc5, 0x9a, -0x35, 0xe5, 0xf6, 0x55, 0xab, 0xec, 0x54, 0x41, 0xe4, 0x2f, 0xa5, 0x60, 0x70, 0xc0, 0xee, 0xb7, -0xda, 0xbf, 0x15, 0xb7, 0x7f, 0x65, 0x2a, 0xee, 0x71, 0xbe, 0x56, 0x7d, 0x8b, 0x43, 0x88, 0x66, -0xf3, 0x8b, 0x79, 0x80, 0xf4, 0x78, 0x22, 0x23, 0x9e, 0x54, 0x23, 0x9e, 0x03, 0x20, 0x22, 0x32, -0xf0, 0xf1, 0x78, 0x45, 0xbc, 0xc4, 0x6e, 0xb7, 0x73, 0x32, 0x32, 0x97, 0xdb, 0xcb, 0xd7, 0x58, -0xd7, 0x94, 0xaf, 0x29, 0x2f, 0xb7, 0xdb, 0xcd, 0xa4, 0xe2, 0xd6, 0x55, 0xde, 0x85, 0x72, 0xe3, -0x6b, 0xcc, 0x71, 0xf5, 0xde, 0x9a, 0x72, 0xbc, 0x95, 0xaf, 0x89, 0xc7, 0xef, 0x8d, 0xc7, 0xd7, -0xd8, 0x83, 0x76, 0x3b, 0xc0, 0x53, 0xc1, 0xa0, 0xb2, 0x49, 0xb5, 0x9b, 0xd5, 0x52, 0x03, 0x70, -0x63, 0xc9, 0x09, 0x79, 0x52, 0xf9, 0x1a, 0xb2, 0x96, 0x38, 0xe2, 0x76, 0x35, 0xde, 0xed, 0xbc, -0xcd, 0xdc, 0x4d, 0x71, 0xbb, 0x15, 0x98, 0x5a, 0x4d, 0xd4, 0x1e, 0x3e, 0xfa, 0xca, 0x2b, 0x5f, -0x45, 0x9a, 0xf8, 0x43, 0xe4, 0x2c, 0xf7, 0xe3, 0xce, 0xcf, 0xd4, 0xfc, 0x1a, 0x87, 0xc4, 0x5f, -0x89, 0xdb, 0xed, 0x4e, 0xb2, 0x0c, 0x94, 0xeb, 0xf1, 0x44, 0x46, 0x7c, 0x7c, 0xe4, 0x21, 0x11, -0x6f, 0x97, 0xf8, 0x05, 0xb9, 0x32, 0xfc, 0x9a, 0xda, 0x5c, 0x00, 0x44, 0x94, 0x73, 0xb1, 0xd6, -0x78, 0x69, 0xdc, 0x5a, 0xa0, 0xaa, 0x66, 0xc4, 0xda, 0xed, 0x6b, 0x90, 0xa8, 0x3c, 0x1e, 0x8f, -0xab, 0x2a, 0x5e, 0xcd, 0xcd, 0xea, 0x7f, 0x8b, 0xf3, 0x9f, 0x6a, 0x17, 0xf0, 0x5b, 0xed, 0xaa, -0xbd, 0x9c, 0xec, 0xe5, 0x6a, 0x39, 0x2a, 0x5d, 0x01, 0x54, 0xa8, 0xf6, 0x2e, 0xd4, 0xae, 0xa2, -0xab, 0x02, 0xf5, 0x0b, 0x71, 0xfd, 0xec, 0xf6, 0xc0, 0x85, 0xb8, 0xbd, 0xc2, 0xbf, 0x0a, 0x48, -0xa1, 0xbf, 0x09, 0xc7, 0xe9, 0xa7, 0xa8, 0x8f, 0x1d, 0xa5, 0xae, 0xb6, 0x93, 0x3f, 0x1c, 0xaf, -0xab, 0x8b, 0xdb, 0xcb, 0xf5, 0x3f, 0x75, 0x0d, 0xfe, 0xf8, 0x21, 0x7e, 0x46, 0xbc, 0x37, 0xb7, -0x72, 0x41, 0x2f, 0x8d, 0xc4, 0xf5, 0x68, 0x11, 0x55, 0x3e, 0x06, 0x35, 0xfa, 0xec, 0xb7, 0xf8, -0x65, 0x10, 0xed, 0xa5, 0x36, 0xbf, 0x55, 0x5b, 0x43, 0x6b, 0xc8, 0xde, 0x6a, 0xb7, 0xda, 0xcb, -0xbb, 0xba, 0xac, 0xe5, 0x15, 0x3c, 0x7c, 0x99, 0xad, 0xad, 0xf1, 0x2e, 0x35, 0xde, 0xd5, 0xa5, -0xae, 0xb1, 0x9b, 0x57, 0xa9, 0xdf, 0x5b, 0xc9, 0xd9, 0x96, 0xe3, 0x93, 0x15, 0xdc, 0x3e, 0x7e, -0xfb, 0x1a, 0xb2, 0x98, 0xbb, 0xd4, 0x0a, 0xb4, 0x60, 0x57, 0xa9, 0xb9, 0xd9, 0xbe, 0x3c, 0x5d, -0xbf, 0x50, 0x79, 0xdc, 0xda, 0x6e, 0xcf, 0xae, 0x7b, 0x29, 0x6e, 0x6f, 0x5e, 0xa5, 0xd8, 0x29, -0x4e, 0x2f, 0x94, 0x1f, 0xa5, 0xff, 0x8d, 0xe2, 0xfc, 0x56, 0x8a, 0x97, 0x01, 0xfe, 0xd2, 0xdb, -0x16, 0x2c, 0xf0, 0xfa, 0xc5, 0x07, 0xf1, 0x36, 0x95, 0xff, 0x50, 0x5f, 0xfb, 0x27, 0x9f, 0x88, -0x80, 0xd2, 0x35, 0xe2, 0xf6, 0x4a, 0x97, 0x59, 0xfc, 0x7d, 0x59, 0xe5, 0x37, 0x8e, 0x47, 0xeb, -0x8b, 0x0a, 0xbd, 0xa6, 0x7f, 0xc8, 0xf8, 0xa7, 0xb8, 0xd9, 0xdf, 0x46, 0x06, 0xfe, 0xfd, 0x2b, -0xed, 0x76, 0x6b, 0xb3, 0x39, 0x0e, 0xe2, 0x43, 0x14, 0x90, 0x05, 0x44, 0xa8, 0xc0, 0x7f, 0x6b, -0x9c, 0xe1, 0x5f, 0x81, 0xda, 0xc4, 0xbb, 0xcc, 0x80, 0xef, 0x7b, 0xe5, 0x80, 0xde, 0xce, 0x5f, -0x54, 0x20, 0x9e, 0xdb, 0x09, 0xf1, 0x3a, 0xfc, 0x2a, 0xd7, 0xef, 0x6e, 0xbb, 0x28, 0x8e, 0x26, -0x33, 0xfe, 0xdb, 0x05, 0xfe, 0x89, 0xf1, 0x4f, 0xf6, 0xae, 0x55, 0xd0, 0x2d, 0x51, 0x10, 0xc5, -0x03, 0x15, 0xbf, 0x16, 0x78, 0x5f, 0xb3, 0xa6, 0xcb, 0xbf, 0x0a, 0x7f, 0xfc, 0x41, 0xfc, 0x6d, -0x01, 0x56, 0xb3, 0x8e, 0xa8, 0x91, 0x78, 0x85, 0xf8, 0xfb, 0x9e, 0x48, 0x27, 0xe2, 0x0d, 0xb0, -0xdf, 0x4c, 0xc3, 0x0f, 0x05, 0xa8, 0x2b, 0x2e, 0x88, 0x8b, 0xa9, 0x59, 0x8d, 0xdb, 0xfd, 0x71, -0x54, 0xde, 0x0f, 0xf2, 0x60, 0xfa, 0x27, 0x75, 0x4d, 0x8a, 0x7e, 0xe2, 0xcd, 0x2a, 0xa8, 0x46, -0x6d, 0x6e, 0x06, 0xfc, 0xe5, 0xff, 0x0d, 0xc4, 0x87, 0x96, 0xc2, 0xd7, 0xa2, 0x7e, 0xf6, 0x0a, -0xa6, 0x2f, 0x86, 0xbf, 0xab, 0x42, 0xe5, 0xf8, 0x35, 0xe5, 0x15, 0xa2, 0x7e, 0xe5, 0x20, 0x78, -0xbf, 0x83, 0xb3, 0xea, 0x5e, 0x73, 0x1b, 0xe3, 0x9f, 0xff, 0x18, 0x7e, 0xea, 0x3a, 0x1a, 0x5f, -0x74, 0x9b, 0x01, 0xc5, 0xd1, 0xa9, 0x29, 0xfc, 0x37, 0xeb, 0x88, 0x7d, 0x45, 0xfc, 0xda, 0x07, -0x8c, 0xf8, 0xe3, 0xe9, 0xf6, 0x31, 0x02, 0xec, 0x67, 0x44, 0xfd, 0xba, 0xca, 0x05, 0xfe, 0xed, -0x35, 0xb3, 0x04, 0xff, 0x01, 0xfc, 0xc1, 0x72, 0xd0, 0xa1, 0xb5, 0xbc, 0xdc, 0x5f, 0x5e, 0x2a, -0xb0, 0x0b, 0xc0, 0xb8, 0xff, 0xaa, 0xe8, 0xbf, 0xf8, 0x7f, 0x6f, 0xbc, 0x5c, 0x2d, 0x01, 0xfd, -0x94, 0xdb, 0xef, 0x8d, 0xdb, 0xd7, 0x4c, 0x35, 0xaf, 0x02, 0xc5, 0x55, 0x74, 0x95, 0x57, 0x94, -0xdb, 0xcd, 0xf1, 0x72, 0xfc, 0x5f, 0x8e, 0x78, 0xb3, 0xda, 0x95, 0x5d, 0x81, 0x72, 0xac, 0x6b, -0x98, 0xff, 0x5c, 0x58, 0x63, 0xa7, 0x35, 0x05, 0x68, 0x77, 0xa4, 0x24, 0x82, 0xd6, 0xca, 0xb7, -0xef, 0x65, 0x09, 0x3a, 0xfe, 0x3f, 0x87, 0x12, 0xe5, 0x3a, 0x38, 0xff, 0xc7, 0x9a, 0xa2, 0xff, -0x55, 0xaf, 0xe8, 0xa4, 0x3e, 0xc2, 0xbf, 0xf6, 0x81, 0x2e, 0x1d, 0xff, 0xff, 0x4d, 0x04, 0x5a, -0xf1, 0x57, 0xae, 0xf7, 0x08, 0x12, 0x11, 0x40, 0xe1, 0x38, 0x86, 0x77, 0x15, 0x0b, 0xfd, 0x22, -0x1c, 0x15, 0x3d, 0x49, 0xf4, 0x2f, 0x52, 0xcd, 0x46, 0xc8, 0xf5, 0x78, 0xeb, 0x1a, 0xfd, 0xa6, -0xea, 0x79, 0x4b, 0xd9, 0xe9, 0xf5, 0x76, 0xfb, 0xe7, 0x64, 0xab, 0x7e, 0x5e, 0xbc, 0x58, 0x1d, -0xf5, 0xab, 0xc8, 0xe6, 0xa4, 0xe3, 0x21, 0x5d, 0x62, 0xfd, 0xec, 0x63, 0x7d, 0x15, 0xe6, 0xca, -0x22, 0x21, 0x95, 0x0e, 0x5f, 0x79, 0x86, 0xcb, 0x18, 0x95, 0xe8, 0xaf, 0x18, 0x16, 0x00, 0x5a, -0x48, 0x4f, 0xa7, 0x2d, 0x17, 0xe9, 0x4e, 0x7e, 0xf9, 0xe3, 0xf1, 0xe9, 0xb4, 0x01, 0x5d, 0x82, -0xff, 0x72, 0x8d, 0x48, 0x77, 0x32, 0xff, 0x31, 0x11, 0x7f, 0xf2, 0x4b, 0x6f, 0xeb, 0xe9, 0xbf, -0xe4, 0x10, 0x12, 0xef, 0x49, 0x7b, 0x5c, 0x48, 0xc3, 0x27, 0x6f, 0xde, 0x29, 0xa4, 0xe1, 0x93, -0x79, 0x1f, 0x0a, 0xc9, 0xf8, 0x64, 0x5e, 0x40, 0xc8, 0x85, 0x27, 0x6f, 0x5a, 0x2f, 0xa4, 0xe7, -0x93, 0xb9, 0xcf, 0x08, 0xe9, 0xf9, 0xe4, 0x8d, 0x97, 0x84, 0x24, 0x7d, 0xf2, 0xc6, 0xb0, 0x10, -0x33, 0x4f, 0xe6, 0xac, 0x16, 0x52, 0xf3, 0xc9, 0x29, 0xfd, 0x42, 0x72, 0x3e, 0x39, 0x25, 0x20, -0xa4, 0xe7, 0x93, 0xb6, 0xdd, 0x62, 0x85, 0xff, 0xa4, 0x2d, 0x8a, 0xfb, 0x14, 0x3a, 0x39, 0x79, -0x18, 0xf7, 0x1c, 0xdc, 0xb9, 0x5e, 0x37, 0xd2, 0xc9, 0xec, 0x4f, 0x70, 0xcf, 0xc5, 0xbd, 0x44, -0x48, 0xe8, 0x3a, 0xbc, 0x79, 0xc6, 0xfd, 0x66, 0x3a, 0x79, 0xc3, 0x6a, 0x81, 0xb0, 0x93, 0xd6, -0x17, 0x71, 0xff, 0x12, 0xee, 0x5c, 0xb7, 0x7c, 0x23, 0xfe, 0xcb, 0xc6, 0xbd, 0xc0, 0xb8, 0xff, -0x99, 0x71, 0x9f, 0x6a, 0xdc, 0xbf, 0x62, 0xdc, 0x15, 0xe3, 0x7e, 0x8b, 0x71, 0x77, 0x18, 0xf7, -0xaf, 0x1a, 0x77, 0xa7, 0x71, 0x9f, 0x66, 0xdc, 0x5d, 0xc6, 0xfd, 0x56, 0xe3, 0xee, 0x36, 0xee, -0xd3, 0x8d, 0xbb, 0xc7, 0xb8, 0x17, 0x1a, 0x77, 0xaf, 0x71, 0x9f, 0x61, 0xdc, 0x8b, 0x8c, 0xbb, -0xcf, 0xb8, 0xfb, 0x8d, 0xfb, 0x4c, 0xe3, 0x1e, 0x30, 0xee, 0xb7, 0x19, 0xf7, 0x62, 0xe3, 0x7e, -0xbb, 0x71, 0x2f, 0x31, 0xee, 0x77, 0x18, 0xf7, 0x52, 0xe3, 0x7e, 0x27, 0x9d, 0x9c, 0x54, 0x22, -0xb4, 0x03, 0xfd, 0x7d, 0x96, 0x71, 0x2f, 0x37, 0xee, 0x7f, 0x9e, 0x6a, 0xf6, 0xce, 0xb6, 0xf6, -0x6f, 0xae, 0x2e, 0x8a, 0xb7, 0xb5, 0x76, 0xd2, 0x1c, 0x43, 0x75, 0x52, 0x9a, 0xbe, 0x56, 0xa3, -0x08, 0xcb, 0x9a, 0x0e, 0x6a, 0xfe, 0xe6, 0x77, 0x97, 0x74, 0x8c, 0x2a, 0x53, 0x6d, 0x6d, 0xa3, -0x06, 0x28, 0x4b, 0x97, 0x2d, 0x5e, 0x5c, 0x94, 0x56, 0xb7, 0x16, 0x2d, 0xeb, 0x6c, 0x81, 0x8e, -0x39, 0x3e, 0xf0, 0xde, 0xb6, 0xe6, 0xb6, 0x8e, 0x6b, 0x83, 0x53, 0x0f, 0x57, 0x07, 0xdf, 0x7b, -0xdd, 0x3c, 0x8b, 0xda, 0x9b, 0xbf, 0xd9, 0xfa, 0xcd, 0x8e, 0x45, 0x2d, 0xf4, 0x9d, 0xce, 0x65, -0xcd, 0xcb, 0x3a, 0xbf, 0xfb, 0x39, 0x10, 0xdc, 0xdb, 0xd6, 0xd2, 0xde, 0xf6, 0xed, 0x65, 0x9d, -0xcb, 0x5a, 0x13, 0x46, 0x4c, 0x7c, 0x55, 0xd1, 0x37, 0x5b, 0x96, 0x25, 0xbe, 0xb9, 0x72, 0xd9, -0xe2, 0x25, 0x6d, 0x54, 0xf5, 0xcd, 0xe6, 0x7b, 0x6b, 0xe7, 0xcf, 0x11, 0xc6, 0x45, 0xf1, 0xef, -0xb4, 0xde, 0xdb, 0xc9, 0x56, 0x48, 0xd3, 0xbe, 0xed, 0x9e, 0xae, 0x2c, 0xfb, 0xb6, 0xd2, 0xda, -0xd6, 0xa9, 0x2c, 0x6b, 0x69, 0x6f, 0x5e, 0xc2, 0xa6, 0x46, 0x4b, 0x16, 0x17, 0x65, 0x51, 0xd5, -0xd2, 0x6f, 0xb6, 0x26, 0x96, 0x34, 0xb6, 0x77, 0x2c, 0xeb, 0x5c, 0xf2, 0x47, 0x7f, 0xd3, 0xb6, -0xa4, 0xe3, 0xde, 0x25, 0xf3, 0xda, 0x16, 0xff, 0xd1, 0x5f, 0xd4, 0x7f, 0xad, 0x49, 0x69, 0xac, -0x9c, 0x5f, 0x5b, 0x3f, 0x47, 0x09, 0x55, 0x56, 0xcd, 0x9d, 0x13, 0xfb, 0xda, 0xd7, 0xeb, 0xc3, -0xb7, 0x80, 0x4f, 0x4f, 0xfb, 0xb6, 0x32, 0x2d, 0xb0, 0x18, 0x18, 0xc0, 0xc7, 0xc4, 0xb6, 0x50, -0x65, 0xca, 0xb4, 0xe6, 0xc5, 0xab, 0x8c, 0x8b, 0x62, 0x73, 0x42, 0x14, 0x9a, 0x13, 0xe3, 0xbb, -0xd2, 0x50, 0xc5, 0x8f, 0x7c, 0xab, 0x34, 0x82, 0x2b, 0x39, 0xbc, 0x92, 0xfc, 0xc6, 0xab, 0x9f, -0x5f, 0xfd, 0xb4, 0xaa, 0xb9, 0xf5, 0x2f, 0x6b, 0x5b, 0x91, 0xe3, 0xbd, 0xdf, 0x6c, 0x6e, 0x5e, -0xb2, 0x38, 0x8b, 0x16, 0x2f, 0x89, 0x7f, 0xf3, 0x3b, 0xcd, 0x9d, 0x45, 0x2d, 0x6d, 0x08, 0x6d, -0xeb, 0xa0, 0xc6, 0x25, 0x9d, 0x55, 0x4b, 0x97, 0xb5, 0xc7, 0x96, 0xac, 0xfc, 0x63, 0xc1, 0xbf, -0xf7, 0xbb, 0x8b, 0x96, 0x74, 0x5c, 0xa3, 0x72, 0x7f, 0xe3, 0x9b, 0xcb, 0x3a, 0x43, 0x5f, 0x9b, -0xdf, 0xf0, 0xc7, 0xe6, 0x32, 0x86, 0x06, 0x3f, 0xbf, 0x49, 0xd3, 0x81, 0x9c, 0xe4, 0x8f, 0x21, -0xbe, 0x34, 0x39, 0x81, 0x0c, 0xbe, 0xfd, 0xdd, 0xd6, 0xab, 0x89, 0xab, 0x7d, 0xd9, 0xaa, 0x78, -0x4b, 0xe7, 0x1f, 0xa0, 0xb8, 0xdf, 0x4b, 0xb7, 0xc8, 0x37, 0xfe, 0xcd, 0x15, 0x4b, 0x28, 0xd6, -0xd6, 0xd6, 0xf9, 0x79, 0x29, 0xe7, 0x2d, 0xe9, 0xfc, 0x26, 0x75, 0x20, 0xc1, 0xbd, 0xcd, 0xdf, -0xfc, 0xb6, 0xf1, 0xa1, 0x51, 0x08, 0x7f, 0x1b, 0x5f, 0x44, 0xdf, 0x5e, 0xd6, 0x82, 0x34, 0x63, -0xa2, 0xaf, 0xae, 0xd5, 0x35, 0xb6, 0x56, 0xc3, 0xd3, 0x7f, 0x30, 0xfa, 0xec, 0xf9, 0xe1, 0x55, -0xea, 0x7c, 0xca, 0x1e, 0xc5, 0x6d, 0x3c, 0xa7, 0xc2, 0x6f, 0xfb, 0xfc, 0xf5, 0xf9, 0x3c, 0xfb, -0x1f, 0x5a, 0x9f, 0xbf, 0x55, 0xfd, 0x63, 0xd7, 0xe7, 0xa7, 0xd5, 0x9b, 0x9e, 0xbc, 0xbd, 0x0b, -0xe3, 0x44, 0x1e, 0xbe, 0xd3, 0xca, 0x63, 0xe2, 0xbb, 0xba, 0x05, 0xbc, 0xc2, 0xac, 0x8e, 0xcd, -0x31, 0xaf, 0xe1, 0xf3, 0x57, 0xed, 0xf3, 0x82, 0x57, 0xaf, 0xda, 0xdf, 0xda, 0x7c, 0xd5, 0xaa, -0xfd, 0xe2, 0xb1, 0xab, 0xf6, 0x79, 0xee, 0xab, 0x57, 0xed, 0xf3, 0x4a, 0xaf, 0x5d, 0xb5, 0xcf, -0x8b, 0xd4, 0x3f, 0x32, 0x06, 0xa6, 0x86, 0x3f, 0xb0, 0x82, 0x5f, 0x30, 0xba, 0x82, 0x5f, 0xff, -0xad, 0xc8, 0xbb, 0xc1, 0x83, 0x7a, 0x6c, 0xe5, 0x07, 0x14, 0xa9, 0x7f, 0xee, 0xb3, 0x81, 0xba, -0x77, 0xaa, 0x24, 0xae, 0xf3, 0xc0, 0xf8, 0xf0, 0xa3, 0x08, 0xcf, 0x60, 0xfc, 0x8d, 0x0b, 0x7d, -0x45, 0xe0, 0x54, 0x0a, 0xdc, 0x49, 0xef, 0x5c, 0x30, 0x0f, 0xd7, 0xfa, 0xf9, 0x2e, 0x17, 0xeb, -0x6f, 0xd1, 0xdd, 0x95, 0xf1, 0x33, 0x3c, 0x13, 0x7d, 0xb2, 0x2f, 0x69, 0x72, 0x7e, 0xa5, 0xfe, -0x3b, 0x96, 0x3b, 0x31, 0xea, 0xbe, 0x73, 0x41, 0x8a, 0x7b, 0xf1, 0x64, 0xe6, 0xa7, 0x84, 0x72, -0xdb, 0x48, 0x2f, 0xe1, 0x69, 0x5b, 0xf4, 0x4e, 0xfa, 0xfb, 0x61, 0x53, 0x2a, 0x3c, 0x7e, 0xe1, -0xb6, 0x11, 0x59, 0x84, 0x8b, 0xaf, 0xf4, 0xb4, 0x17, 0xf5, 0x34, 0xea, 0x87, 0xbe, 0x6c, 0xa5, -0x8d, 0x2c, 0xde, 0x36, 0xb2, 0x02, 0x82, 0x21, 0x86, 0xe0, 0xae, 0x4d, 0x6c, 0x8b, 0xe0, 0x6c, -0xa3, 0xdc, 0xe8, 0x4e, 0x7a, 0x2c, 0xee, 0xf7, 0x75, 0xd1, 0xf0, 0x57, 0x77, 0x91, 0x65, 0x36, -0xaf, 0x2d, 0x5b, 0x43, 0x3e, 0xca, 0xc6, 0x35, 0xb9, 0xf2, 0x23, 0x7c, 0x15, 0x05, 0x16, 0xf6, -0xa2, 0x55, 0x3a, 0xa7, 0x05, 0xe9, 0x31, 0x25, 0x38, 0x7b, 0x29, 0x46, 0x5e, 0x6b, 0x74, 0x39, -0x29, 0xf1, 0x70, 0xe5, 0x39, 0x1a, 0x98, 0x16, 0xa1, 0xc3, 0xa1, 0x9d, 0x74, 0x08, 0xcf, 0x87, -0xf0, 0x3c, 0xc0, 0x96, 0x07, 0x9e, 0x26, 0x5a, 0x38, 0x2d, 0x4a, 0x0b, 0xf8, 0xf9, 0xab, 0x3f, -0xa7, 0xa6, 0x9b, 0xba, 0x30, 0xfa, 0x37, 0xde, 0xc4, 0xf6, 0x1a, 0xb1, 0xf6, 0xcc, 0xaa, 0x73, -0x34, 0x6a, 0xc7, 0xb0, 0x20, 0xba, 0xd3, 0x74, 0x38, 0x5e, 0x50, 0xf5, 0xef, 0x48, 0xf9, 0x3a, -0x28, 0x2e, 0x65, 0xf3, 0x70, 0x7c, 0x5a, 0xd0, 0x74, 0x58, 0x95, 0xc5, 0xea, 0x98, 0x89, 0x2d, -0x1d, 0x1a, 0x36, 0xf1, 0xfc, 0x3e, 0x51, 0xe4, 0x5d, 0xc5, 0xe1, 0xcc, 0x8e, 0x3d, 0x65, 0xba, -0x58, 0xf9, 0x1e, 0x0d, 0xbc, 0xf0, 0x1e, 0x1d, 0x4e, 0xd8, 0x9d, 0xcb, 0x68, 0x40, 0xcd, 0x76, -0x2c, 0xa7, 0xac, 0x76, 0x9b, 0x37, 0x54, 0xff, 0xdc, 0x95, 0xfd, 0xce, 0x58, 0x74, 0x4b, 0xfc, -0x43, 0xb6, 0x5b, 0x08, 0xcb, 0xfa, 0xea, 0x0a, 0x63, 0x00, 0xf9, 0x0b, 0x1c, 0x68, 0x6f, 0xea, -0x54, 0xaa, 0x54, 0x00, 0x03, 0x7a, 0xd9, 0xc3, 0xed, 0xd3, 0xc7, 0x96, 0x2d, 0x57, 0x24, 0xc8, -0xb4, 0xc5, 0x47, 0x4c, 0x2d, 0x5f, 0x3d, 0x3f, 0xe7, 0xb2, 0x36, 0x50, 0xff, 0x08, 0x42, 0x6b, -0x7c, 0x1e, 0xb9, 0x82, 0xc3, 0x9c, 0x26, 0xf1, 0x1e, 0x4d, 0xbf, 0xdb, 0xc5, 0x7b, 0x2c, 0xfd, -0xee, 0x13, 0xef, 0xf5, 0x4c, 0x3d, 0x45, 0x3b, 0x8d, 0xb0, 0xa0, 0x08, 0x9b, 0xcf, 0xe5, 0x39, -0xef, 0x19, 0x5f, 0x57, 0x39, 0xd4, 0xb0, 0x29, 0x9e, 0xe3, 0x58, 0x2e, 0x57, 0xa4, 0x2d, 0x33, -0x16, 0xa9, 0x64, 0xb2, 0x01, 0xab, 0xcf, 0x01, 0xab, 0x7b, 0x80, 0xe1, 0x5d, 0x78, 0xde, 0x85, -0xe7, 0xe7, 0x70, 0xdf, 0x88, 0xfb, 0x56, 0x84, 0x6d, 0xc6, 0xf3, 0x66, 0x3c, 0x6f, 0xac, 0x3d, -0x27, 0xbd, 0xe9, 0xbb, 0x93, 0xbf, 0xf4, 0x59, 0xe7, 0x5e, 0xbe, 0x62, 0xab, 0x7f, 0x74, 0xce, -0xb9, 0x0c, 0xd9, 0x08, 0x99, 0x54, 0xff, 0xa8, 0xfe, 0x14, 0x59, 0x9e, 0xd1, 0x31, 0xe6, 0xf9, -0x89, 0xfa, 0x47, 0x2b, 0xcf, 0x99, 0x92, 0xd3, 0x22, 0xa6, 0xbe, 0xd0, 0x4e, 0x53, 0x2f, 0x9e, -0x7b, 0xf1, 0x9c, 0x44, 0x3b, 0xc9, 0xa6, 0x8d, 0x95, 0xe7, 0xa4, 0x1d, 0x78, 0xdb, 0x22, 0x6a, -0xf0, 0x53, 0x91, 0x8f, 0xa5, 0xfe, 0xd1, 0x76, 0xe5, 0x6a, 0xeb, 0x15, 0xb4, 0xd3, 0xdd, 0x0d, -0x9b, 0x12, 0x8b, 0xa7, 0xd5, 0x99, 0x2e, 0x4d, 0x9b, 0x6b, 0x7a, 0x3c, 0x9d, 0xfb, 0x6b, 0xf5, -0xfb, 0x3e, 0xeb, 0x53, 0x44, 0xea, 0x8e, 0xc9, 0x35, 0x26, 0x67, 0xfa, 0x9b, 0xcf, 0x22, 0xd3, -0x82, 0x19, 0x23, 0xf8, 0xc6, 0x5f, 0x79, 0x4e, 0xa6, 0x69, 0x11, 0xd9, 0x12, 0xda, 0x29, 0xcb, -0x78, 0x96, 0xf1, 0x4c, 0xbe, 0x2c, 0x5e, 0x29, 0xfb, 0x57, 0x02, 0x9f, 0x08, 0x26, 0xb2, 0x7d, -0x51, 0x2a, 0xa8, 0x7b, 0xa7, 0x4b, 0xae, 0x07, 0xce, 0x2e, 0x3e, 0xc7, 0xed, 0x89, 0x67, 0x6e, -0xb9, 0x80, 0x33, 0x5b, 0x99, 0x92, 0xb0, 0x2a, 0xc9, 0xd0, 0x0e, 0x92, 0x5d, 0x77, 0xdd, 0x1a, -0x21, 0xd9, 0xd1, 0xe7, 0x5a, 0x4a, 0x4e, 0x35, 0xef, 0x8e, 0x15, 0xe0, 0x39, 0x92, 0xb2, 0x82, -0x1c, 0x8e, 0x28, 0x53, 0x83, 0xf6, 0x84, 0x6b, 0x05, 0x99, 0x79, 0x8d, 0x39, 0x7e, 0x1a, 0xbd, -0x58, 0x7c, 0x4f, 0x65, 0xae, 0x88, 0xb3, 0x56, 0x59, 0x46, 0xb9, 0xfd, 0xbc, 0xf6, 0x5c, 0xe6, -0x58, 0x8a, 0x2f, 0xa6, 0xf4, 0xef, 0x20, 0x73, 0x5c, 0xf0, 0x43, 0xdf, 0x44, 0x5e, 0x11, 0xfc, -0xf0, 0x6c, 0xfd, 0x56, 0x7e, 0x53, 0x96, 0x53, 0xae, 0xcf, 0x4d, 0x66, 0xb1, 0xea, 0x67, 0xcf, -0xdb, 0x4f, 0x26, 0xe4, 0x0e, 0x4e, 0x81, 0xbc, 0x1f, 0xab, 0x7b, 0x67, 0xa1, 0xe0, 0x0b, 0xfa, -0xda, 0xec, 0xec, 0x32, 0x8f, 0xa5, 0xb0, 0x56, 0xbb, 0xe0, 0xaa, 0x2f, 0x8c, 0x6a, 0x23, 0x8a, -0x9b, 0xb2, 0x12, 0x44, 0x5b, 0x44, 0xeb, 0xb7, 0xfa, 0x88, 0xb9, 0xcd, 0x9d, 0x9b, 0xd9, 0xc6, -0x26, 0xde, 0x55, 0xfb, 0xa1, 0x54, 0xa1, 0xd4, 0xa5, 0x71, 0x72, 0xd4, 0x37, 0xc9, 0x97, 0x29, -0x6a, 0xbe, 0xc5, 0x49, 0x63, 0xc2, 0x5f, 0x51, 0x49, 0xca, 0x53, 0x6c, 0xe6, 0xe4, 0xf7, 0x34, -0x4d, 0xeb, 0xc8, 0xdc, 0x95, 0x5c, 0xd2, 0x34, 0x98, 0xf4, 0xcf, 0xb2, 0x98, 0xeb, 0x3f, 0x45, -0x6f, 0x72, 0x42, 0x8a, 0xce, 0x81, 0xe4, 0xea, 0x27, 0xbb, 0xd3, 0x4d, 0xb2, 0x5a, 0xea, 0x5e, -0x8a, 0xdf, 0x80, 0x9b, 0x9f, 0xbd, 0xe5, 0x80, 0x58, 0x75, 0x45, 0x81, 0x9f, 0xf9, 0x2f, 0x45, -0xd6, 0x86, 0xab, 0xd4, 0xfc, 0x42, 0xc4, 0x6a, 0x67, 0xd5, 0x9c, 0xd0, 0xb3, 0xda, 0xd9, 0x50, -0x55, 0xa8, 0x66, 0x95, 0x56, 0x13, 0x2e, 0xed, 0x22, 0x53, 0xa7, 0x56, 0xf9, 0x81, 0x36, 0xe2, -0x5d, 0x21, 0x33, 0xb6, 0x06, 0x95, 0x20, 0xe0, 0xdb, 0x58, 0xf9, 0xbe, 0x54, 0x51, 0x18, 0xd1, -0xce, 0x8f, 0x42, 0xa8, 0xc8, 0xa1, 0x60, 0x87, 0xb6, 0xab, 0x27, 0x9e, 0xed, 0x28, 0x94, 0xbc, -0x4e, 0xf9, 0x50, 0xf7, 0xae, 0x9e, 0x7b, 0xa5, 0xad, 0x49, 0x9f, 0x35, 0x9c, 0xd4, 0xeb, 0xc6, -0xb6, 0x2c, 0x45, 0xd2, 0xdb, 0x49, 0xf7, 0x0a, 0xc9, 0xa9, 0x2a, 0x8a, 0x97, 0xe4, 0xdd, 0xc9, -0x45, 0xf2, 0x8b, 0xc9, 0x45, 0x53, 0xa3, 0x35, 0xf1, 0x6c, 0x8b, 0x97, 0xa5, 0xf9, 0x84, 0x39, -0xfa, 0x0c, 0xe5, 0xc5, 0x73, 0xdc, 0x4d, 0x7b, 0xb9, 0x45, 0xde, 0x02, 0x95, 0x87, 0x3b, 0x25, -0x68, 0x39, 0xfb, 0x3b, 0x33, 0xf0, 0xbb, 0x07, 0x78, 0x10, 0x14, 0xf0, 0xc9, 0x62, 0x77, 0x50, -0x58, 0x23, 0x01, 0x7f, 0xd3, 0x43, 0x24, 0x4f, 0x0f, 0x93, 0xe5, 0xbe, 0x66, 0xb2, 0x29, 0x2b, -0xa4, 0x32, 0xd1, 0x66, 0xb9, 0xbe, 0x42, 0xa9, 0x44, 0xac, 0xaf, 0x52, 0xfd, 0xe6, 0xe9, 0x41, -0xca, 0x11, 0xa3, 0x47, 0x4d, 0xdc, 0x5b, 0xfd, 0xbe, 0xe4, 0x64, 0x4b, 0xa1, 0x7f, 0x77, 0xa8, -0xd9, 0xce, 0xcd, 0xc8, 0xcf, 0x52, 0xbf, 0xad, 0x61, 0x93, 0x12, 0x75, 0x46, 0x94, 0x98, 0xf8, -0x32, 0xcb, 0xe2, 0x16, 0x90, 0x7c, 0xa8, 0x0e, 0x57, 0x21, 0xad, 0x6a, 0x65, 0x48, 0xd1, 0xf6, -0xf2, 0x92, 0x2c, 0x47, 0x44, 0xb9, 0x8b, 0xd3, 0xc4, 0xcf, 0xbb, 0xfb, 0x1c, 0x1b, 0x5f, 0x7c, -0x5a, 0xf2, 0xde, 0x2b, 0xdf, 0x3a, 0x47, 0xf2, 0x46, 0x81, 0xb1, 0x44, 0x9e, 0xd2, 0xa2, 0x9d, -0x55, 0x7a, 0xd4, 0x6c, 0x25, 0x0a, 0x5c, 0x55, 0x00, 0x57, 0x87, 0x3a, 0x4d, 0xaa, 0xd4, 0x49, -0x08, 0x1f, 0xc5, 0xd3, 0x2b, 0xd1, 0x9e, 0xf8, 0xe2, 0xe8, 0xd3, 0xa6, 0x87, 0xe2, 0xf7, 0xe8, -0x35, 0x8e, 0xcf, 0x57, 0xaa, 0x05, 0x25, 0xe4, 0x0a, 0x3a, 0xe8, 0x1b, 0x4b, 0x07, 0x89, 0x32, -0xa5, 0x99, 0xf2, 0xdb, 0x6f, 0x1c, 0x7c, 0x5a, 0x8e, 0x15, 0x06, 0xb5, 0x8b, 0x68, 0x99, 0x4b, -0x8e, 0xa5, 0xda, 0x48, 0xa4, 0x45, 0xbb, 0xe8, 0xb3, 0x80, 0x3e, 0xf3, 0xeb, 0x37, 0x07, 0xba, -0xe8, 0xe6, 0x37, 0xde, 0x97, 0x36, 0x2a, 0xc1, 0xea, 0xf7, 0x4d, 0x0f, 0x19, 0x25, 0x3f, 0x81, -0x1a, 0x49, 0x75, 0x1f, 0x2c, 0x1c, 0x01, 0x67, 0x02, 0x7f, 0x53, 0xaa, 0x1f, 0x79, 0xd5, 0xd9, -0xa2, 0x5d, 0x30, 0x62, 0x4f, 0xb1, 0x4d, 0x59, 0x9c, 0xae, 0xec, 0xee, 0x94, 0x55, 0xd2, 0x16, -0xa5, 0xc6, 0x7b, 0x31, 0x2e, 0xd7, 0xba, 0xea, 0x6f, 0xec, 0x02, 0xdd, 0x58, 0x42, 0xcb, 0x68, -0xaa, 0x34, 0x9d, 0xbe, 0x47, 0x37, 0xa7, 0x7b, 0x73, 0x57, 0xe5, 0xfb, 0xb4, 0x71, 0x8c, 0x95, -0x99, 0x2d, 0xfd, 0xb4, 0x72, 0x74, 0xfc, 0xf3, 0x07, 0x9c, 0x91, 0x80, 0x9b, 0xf2, 0xfc, 0x6e, -0xb2, 0xbb, 0x4c, 0x91, 0xaa, 0x50, 0x55, 0x31, 0x99, 0x43, 0x49, 0x92, 0x7a, 0x78, 0x25, 0xf7, -0xd8, 0x5a, 0x69, 0x29, 0x69, 0x94, 0x3b, 0xb3, 0x92, 0x6c, 0x33, 0xd1, 0x2a, 0xdc, 0xc7, 0x14, -0xf4, 0x2e, 0x55, 0x52, 0xe6, 0xba, 0x1a, 0x84, 0x55, 0x42, 0x5e, 0x24, 0x18, 0x0a, 0x06, 0x0a, -0xc9, 0x6e, 0xae, 0xc4, 0x57, 0x62, 0x1d, 0x7a, 0xb0, 0x7b, 0x77, 0xb2, 0xf5, 0xed, 0x5b, 0xa3, -0x24, 0x3b, 0x99, 0x9f, 0xc9, 0xca, 0xfd, 0x18, 0x9f, 0x26, 0xea, 0x94, 0xf0, 0xe1, 0x59, 0x8c, -0x3c, 0x62, 0xa5, 0x1b, 0x30, 0x58, 0xc5, 0xfa, 0x38, 0xc6, 0x2e, 0xf0, 0x73, 0xab, 0xa3, 0x8d, -0x6c, 0x3c, 0x86, 0x81, 0xab, 0xdb, 0x19, 0x27, 0xba, 0x45, 0x1c, 0x7a, 0x62, 0x1f, 0xf7, 0xc4, -0x22, 0xf2, 0x9a, 0xdc, 0x11, 0x57, 0xfd, 0x2a, 0xd3, 0xe1, 0xb5, 0x85, 0x61, 0x6d, 0xbb, 0x92, -0xc1, 0x6b, 0xcd, 0x93, 0x93, 0xd6, 0x24, 0x2b, 0xa9, 0x50, 0x5d, 0x1f, 0x03, 0x7d, 0x5f, 0x9c, -0x05, 0xfa, 0xd7, 0xb6, 0xac, 0xa6, 0x55, 0xda, 0x5f, 0x1f, 0x55, 0xdb, 0x15, 0x9b, 0x95, 0xad, -0x90, 0x33, 0x12, 0x81, 0x45, 0x39, 0xe2, 0x89, 0x12, 0x05, 0xe2, 0x6e, 0x8a, 0x37, 0xa9, 0x76, -0xf1, 0x64, 0x4e, 0x4c, 0x15, 0xf7, 0x40, 0x3c, 0xa4, 0x3a, 0x45, 0x7f, 0x2b, 0x13, 0x7d, 0xaf, -0x58, 0xf4, 0xae, 0xed, 0xaa, 0x97, 0x7b, 0xdc, 0x37, 0xc4, 0xea, 0xf4, 0xac, 0xa0, 0xb6, 0x45, -0x2d, 0x40, 0xdb, 0xcb, 0xde, 0xb9, 0xa0, 0x0c, 0x0f, 0x53, 0xb3, 0x7c, 0x45, 0x09, 0x7a, 0x10, -0xe2, 0xb6, 0xb5, 0xe7, 0xac, 0x4f, 0xa2, 0xdf, 0x5d, 0x1c, 0xd7, 0xef, 0x48, 0x5b, 0xa3, 0x66, -0x8d, 0xc2, 0xd4, 0x61, 0xd9, 0xd5, 0xb3, 0xc4, 0xde, 0xae, 0xf5, 0xf7, 0xc6, 0x73, 0xb8, 0xbf, -0xa0, 0xf7, 0x80, 0x56, 0x5b, 0xcc, 0xd1, 0x8c, 0x66, 0xca, 0x38, 0xa7, 0x14, 0x4a, 0xbd, 0xa0, -0x9a, 0x27, 0x0a, 0xe7, 0x68, 0x4f, 0xc6, 0x92, 0x78, 0xda, 0x51, 0x58, 0xa3, 0x3d, 0xd3, 0x61, -0x2a, 0xac, 0xd4, 0xf6, 0x82, 0x92, 0xf6, 0x8b, 0x2f, 0xe6, 0xf3, 0x17, 0xcd, 0x0d, 0xa0, 0x33, -0x0b, 0xd7, 0x97, 0xa9, 0xeb, 0xc7, 0xef, 0x4b, 0xab, 0xe2, 0x79, 0xbe, 0x42, 0x8c, 0x4b, 0x4c, -0x67, 0x85, 0xd2, 0x13, 0xe8, 0x23, 0xfb, 0xae, 0xec, 0x64, 0xc9, 0x89, 0xf3, 0xbc, 0x87, 0xf3, -0xda, 0x5b, 0x88, 0x38, 0x6d, 0x3f, 0x7a, 0x7c, 0x6f, 0x5c, 0x76, 0x7b, 0xc9, 0xd9, 0x6e, 0xe9, -0xef, 0x59, 0x22, 0x3b, 0xbd, 0x54, 0xe0, 0xf1, 0x02, 0xf7, 0x48, 0x07, 0xba, 0xed, 0x46, 0xca, -0xfe, 0xc2, 0x90, 0xb6, 0x1b, 0x10, 0x39, 0x94, 0x8c, 0x50, 0x30, 0x12, 0x1c, 0x8e, 0x28, 0xc1, -0xf6, 0x1b, 0xfa, 0xfb, 0x96, 0x34, 0xbc, 0x7e, 0xd8, 0x11, 0x79, 0x83, 0xd7, 0xdc, 0x0e, 0x29, -0x33, 0xfb, 0x28, 0xee, 0x57, 0x2b, 0x44, 0x9f, 0x2f, 0x15, 0xf5, 0x29, 0x5d, 0x65, 0xdf, 0xdb, -0xb3, 0x04, 0xac, 0xba, 0xdd, 0x86, 0x7c, 0x29, 0xe3, 0x0a, 0x70, 0x43, 0xf6, 0x72, 0xb2, 0xec, -0xed, 0x59, 0x4c, 0x19, 0x23, 0xb6, 0x72, 0x9a, 0xb8, 0x6a, 0xe2, 0xf1, 0x6e, 0xb4, 0xdc, 0x00, -0xca, 0x38, 0xb4, 0x4a, 0x53, 0xa7, 0xf2, 0x77, 0x89, 0xec, 0xf6, 0x49, 0xa2, 0xd4, 0x01, 0xc4, -0x1c, 0x52, 0xb3, 0xda, 0x4d, 0xfc, 0x8c, 0xda, 0x1e, 0x6a, 0xea, 0x46, 0xbd, 0x0f, 0x77, 0xe4, -0x1c, 0x5c, 0x8b, 0xfb, 0xe3, 0xed, 0x39, 0xfd, 0xdd, 0xdc, 0x0a, 0xfe, 0x20, 0x6a, 0x7d, 0x34, -0xfc, 0xac, 0x76, 0x14, 0x69, 0x06, 0x71, 0x1d, 0x6b, 0x77, 0x77, 0x98, 0x22, 0x95, 0x63, 0xed, -0x2f, 0x91, 0xc3, 0xd6, 0x04, 0x65, 0x2c, 0x8d, 0xae, 0x8b, 0x5b, 0x3c, 0x93, 0xcc, 0xeb, 0x88, -0x24, 0x67, 0xb4, 0x45, 0xdb, 0x92, 0x28, 0x76, 0x54, 0x83, 0x7e, 0xad, 0x4a, 0xa1, 0x1c, 0x6b, -0x62, 0x9c, 0x9c, 0xad, 0xfa, 0x00, 0xd8, 0xae, 0xd5, 0xce, 0x1b, 0x7d, 0xf4, 0x6c, 0xaa, 0x8f, -0x22, 0xee, 0x7e, 0x8c, 0xe0, 0x16, 0x95, 0x32, 0x6c, 0x28, 0xe3, 0xfe, 0x76, 0x8d, 0x7b, 0xb3, -0xc8, 0x83, 0xe8, 0x2d, 0x03, 0xd3, 0x23, 0xc0, 0x74, 0xaf, 0x6f, 0x86, 0x76, 0xff, 0xbc, 0xcb, -0x9f, 0x55, 0xd4, 0x6f, 0x2b, 0x9a, 0xc1, 0x21, 0x7a, 0x0c, 0x63, 0x33, 0xd6, 0xed, 0x33, 0x71, -0x6c, 0xfd, 0x36, 0x2f, 0x62, 0xc4, 0xb8, 0xfb, 0xb4, 0x1e, 0xcb, 0xfc, 0x01, 0x5f, 0x92, 0x1e, -0xeb, 0x1c, 0xf3, 0x5d, 0x47, 0xce, 0x10, 0xc7, 0x18, 0xdf, 0x39, 0x10, 0xd3, 0xd8, 0x3d, 0xe6, -0xcb, 0x4b, 0xed, 0x59, 0xa3, 0x5f, 0x02, 0x2b, 0x0f, 0xd5, 0x6f, 0x1b, 0xd3, 0xea, 0x9b, 0x11, -0x7a, 0xa9, 0x7e, 0xdb, 0xb4, 0x16, 0xed, 0x7e, 0xb2, 0xe0, 0xf7, 0x22, 0xe5, 0x8e, 0x2d, 0x95, -0x29, 0x61, 0x61, 0x32, 0x55, 0x2a, 0xe2, 0x47, 0xc8, 0x36, 0x2d, 0x44, 0x05, 0x4c, 0x25, 0x28, -0xe9, 0x21, 0xd5, 0xdc, 0x31, 0x19, 0x75, 0xdd, 0x3e, 0xad, 0x9a, 0xac, 0xd3, 0xc2, 0xe4, 0xbc, -0xbd, 0x06, 0x63, 0xa8, 0xa9, 0x26, 0x39, 0x74, 0xdf, 0x40, 0xf7, 0x99, 0xbe, 0xe2, 0x24, 0xd3, -0xee, 0x62, 0xa9, 0xd3, 0x72, 0x53, 0x88, 0x32, 0xa5, 0x0c, 0xfa, 0xef, 0x94, 0xa1, 0x25, 0x6f, -0xaa, 0x22, 0x19, 0xbc, 0xf4, 0x7e, 0x48, 0x57, 0x92, 0xa0, 0x85, 0xac, 0x55, 0x39, 0x7b, 0x9f, -0xd5, 0x1e, 0x47, 0x6f, 0xfc, 0x98, 0x96, 0x4b, 0x44, 0x0e, 0x41, 0xb3, 0xf7, 0x08, 0x9a, 0x5d, -0x00, 0xbe, 0x6c, 0xeb, 0xb8, 0x63, 0xe8, 0x69, 0xb9, 0x06, 0xb0, 0x9f, 0x05, 0x46, 0xcf, 0x3b, -0x00, 0xab, 0xb2, 0xcc, 0xc0, 0xfd, 0x44, 0xf0, 0x15, 0xe0, 0x5e, 0xf0, 0xd1, 0x2c, 0x25, 0x98, -0xe2, 0xc9, 0xd3, 0x30, 0x4a, 0x00, 0xd2, 0x66, 0x9e, 0x8c, 0xc4, 0x6f, 0x2e, 0xe5, 0xe2, 0xb7, -0x80, 0x0a, 0xda, 0x4d, 0xdd, 0x3b, 0x49, 0xc1, 0x18, 0xc3, 0x52, 0x09, 0x68, 0xad, 0x63, 0x54, -0x02, 0x6b, 0x02, 0x87, 0xb1, 0x03, 0xa6, 0x8d, 0x21, 0xe4, 0x8b, 0xeb, 0x1c, 0xae, 0xf3, 0xb8, -0x3e, 0x54, 0x66, 0x68, 0x17, 0x3b, 0xa4, 0x5d, 0xc9, 0x84, 0x8c, 0xbe, 0x09, 0x4e, 0xf2, 0xdb, -0x67, 0x56, 0x52, 0x27, 0xcd, 0xfb, 0x40, 0x3b, 0x5b, 0xfb, 0x81, 0x76, 0xdc, 0x03, 0xcc, 0xa0, -0xdf, 0xaf, 0x90, 0x6b, 0xb4, 0xe3, 0x85, 0xf5, 0xda, 0x09, 0xf4, 0x83, 0x61, 0x41, 0x8f, 0xa7, -0x99, 0x6e, 0xd0, 0x4a, 0x56, 0x5f, 0xa6, 0x0e, 0x23, 0x24, 0x08, 0xfb, 0x2d, 0xcf, 0x6a, 0x17, -0x4a, 0x29, 0xd6, 0xb3, 0x60, 0x6d, 0xc3, 0xa6, 0xbd, 0x3d, 0xf1, 0xc3, 0xc0, 0xc3, 0x76, 0x61, -0xfb, 0x14, 0x6d, 0x07, 0x2c, 0x8e, 0x68, 0x27, 0xad, 0x24, 0xf7, 0x04, 0x8f, 0xb9, 0x8b, 0xd6, -0x50, 0xcd, 0x84, 0x47, 0x8f, 0x30, 0xcf, 0xd0, 0x4e, 0x01, 0xde, 0xc1, 0xcf, 0xa3, 0x58, 0xda, -0xd3, 0x3e, 0x79, 0xf0, 0x3e, 0x07, 0x9d, 0xdd, 0x30, 0x54, 0x59, 0xdc, 0xcd, 0xf8, 0xa7, 0x0c, -0xb2, 0x30, 0x8e, 0x19, 0xe7, 0xa1, 0xe5, 0x64, 0x36, 0x28, 0xf0, 0xa1, 0x33, 0x7d, 0x3e, 0xb3, -0xb0, 0xb4, 0xb9, 0x32, 0x3a, 0x52, 0x7b, 0xc8, 0x1d, 0x45, 0x89, 0xe5, 0xa4, 0x95, 0x16, 0x40, -0x5a, 0x79, 0x5c, 0x75, 0x2b, 0x13, 0x1c, 0x66, 0x2e, 0xf5, 0x4a, 0x2e, 0xc6, 0x53, 0x4b, 0xa2, -0x54, 0x40, 0x98, 0xed, 0xcb, 0x84, 0x3c, 0x44, 0x4a, 0xb8, 0x7e, 0x33, 0xf3, 0xe0, 0xd8, 0xda, -0x05, 0x1b, 0x77, 0xaf, 0x8d, 0x1f, 0x53, 0x4b, 0x99, 0xa3, 0xe8, 0xe3, 0x69, 0xfa, 0xbb, 0x6c, -0x8e, 0x55, 0x2d, 0xc0, 0xda, 0xe3, 0xc8, 0x39, 0x88, 0x74, 0x6f, 0x39, 0xa2, 0xed, 0xee, 0x51, -0x6d, 0x0a, 0xf4, 0xb2, 0x15, 0xb1, 0x5b, 0xc5, 0xc8, 0xa5, 0xf2, 0xc8, 0xd5, 0x7e, 0x83, 0x4a, -0x23, 0xf6, 0x76, 0x8c, 0xfd, 0x23, 0x39, 0xed, 0x99, 0xf8, 0xb5, 0xb6, 0xdf, 0x84, 0x5f, 0xf3, -0x68, 0xcf, 0x9b, 0x2f, 0x7a, 0x1e, 0xb8, 0xd1, 0xfd, 0xd7, 0xf6, 0xbb, 0x86, 0x4d, 0xea, 0x0f, -0x78, 0x3c, 0x68, 0x37, 0x45, 0x82, 0x1d, 0x4d, 0xa3, 0x18, 0x32, 0xec, 0xa8, 0xb2, 0x7d, 0x52, -0xe7, 0xe4, 0xc1, 0x1e, 0xd4, 0xde, 0x74, 0x75, 0xed, 0x3b, 0xa4, 0x31, 0xf8, 0xfc, 0x8a, 0x9e, -0x1e, 0x23, 0xc7, 0x76, 0x1e, 0x39, 0x5c, 0xf5, 0x6c, 0x53, 0x97, 0x20, 0xe9, 0x6e, 0xf4, 0xf5, -0x11, 0xc8, 0x18, 0x7e, 0xe8, 0x8e, 0x2d, 0xda, 0x93, 0xfc, 0x6d, 0x29, 0xd3, 0xbf, 0x15, 0xf5, -0xf8, 0xc1, 0x4a, 0x82, 0xec, 0x64, 0x5b, 0x45, 0xa0, 0x93, 0x1f, 0x86, 0x42, 0x6a, 0x83, 0x90, -0xd2, 0x90, 0x65, 0x47, 0x16, 0xa4, 0xb4, 0xd0, 0x18, 0x29, 0x2d, 0x8f, 0x4a, 0x41, 0x7f, 0xa5, -0xe4, 0xc0, 0xe5, 0xa1, 0x52, 0x29, 0x17, 0xf7, 0x80, 0x18, 0x39, 0x0a, 0x5c, 0x3c, 0x72, 0xe4, -0x89, 0x91, 0xe3, 0x07, 0x6a, 0x36, 0xcb, 0x6d, 0x90, 0x28, 0xcc, 0x82, 0xff, 0xff, 0xf0, 0x1a, -0x99, 0xec, 0x07, 0xe0, 0x78, 0x8f, 0xa1, 0x45, 0x7f, 0x28, 0x6c, 0x1b, 0x7b, 0x13, 0xe6, 0x72, -0xe0, 0x59, 0x95, 0xba, 0x4c, 0xab, 0xa8, 0xd4, 0x8c, 0xd4, 0xc7, 0xda, 0xa5, 0x0e, 0x9b, 0x53, -0x8c, 0x35, 0x57, 0x56, 0xaf, 0xa1, 0x0a, 0xf3, 0xdb, 0xf7, 0xbd, 0x7d, 0x1f, 0xda, 0x86, 0x65, -0xf0, 0x31, 0xb5, 0xf5, 0x10, 0x46, 0x61, 0x73, 0x74, 0x1d, 0xe8, 0x7d, 0xf5, 0x82, 0xfb, 0x07, -0x93, 0x4a, 0xf5, 0xeb, 0x03, 0x1d, 0xb6, 0x2d, 0x1b, 0xdb, 0x4d, 0xff, 0xbc, 0x23, 0x40, 0xe1, -0xca, 0xc2, 0x6a, 0x50, 0x72, 0x44, 0x1b, 0x76, 0x54, 0x87, 0x82, 0x6a, 0x4e, 0x71, 0xce, 0xa1, -0xca, 0xc0, 0xc1, 0x62, 0x0f, 0x49, 0x87, 0x2a, 0xfd, 0x07, 0x17, 0xdc, 0x1f, 0x0b, 0xb2, 0x3d, -0xd7, 0xee, 0x67, 0xb5, 0xc7, 0x96, 0x9c, 0xe6, 0x32, 0x91, 0x72, 0x3f, 0xe0, 0xb5, 0x69, 0x3b, -0x66, 0xd5, 0x68, 0x3b, 0x3b, 0xbf, 0x57, 0x23, 0x01, 0x37, 0x8f, 0x31, 0x66, 0xd4, 0x18, 0xa8, -0x6a, 0xbf, 0x12, 0xed, 0xb0, 0x30, 0x44, 0x23, 0x3c, 0x1a, 0xee, 0xc0, 0x1b, 0xa5, 0xdf, 0x76, -0xea, 0xb6, 0x5f, 0xd1, 0x50, 0xc2, 0xd2, 0xdf, 0xbb, 0xd8, 0x0c, 0x4a, 0x3f, 0xe7, 0xa6, 0xa8, -0x07, 0xe3, 0x5b, 0xf6, 0x1a, 0x5a, 0x4d, 0xa9, 0xbc, 0xd4, 0x2c, 0xe4, 0xf3, 0x98, 0x08, 0xa1, -0xf6, 0xdc, 0xf1, 0xfa, 0xc7, 0x67, 0x4d, 0xce, 0xa0, 0x17, 0x2d, 0x45, 0xdb, 0xa2, 0x6b, 0xdb, -0xcc, 0xed, 0xb6, 0x77, 0x77, 0xa8, 0xe6, 0xf0, 0xda, 0x76, 0xdb, 0x99, 0x27, 0x90, 0xff, 0x5e, -0xd0, 0xef, 0x0f, 0xda, 0xa0, 0x13, 0x82, 0x5b, 0xfd, 0xe0, 0x9f, 0x77, 0xa8, 0x59, 0x7c, 0x0f, -0x77, 0xb7, 0xdb, 0x4e, 0x71, 0xec, 0x3e, 0x01, 0xf5, 0x33, 0xe2, 0xf7, 0xb9, 0x95, 0xa6, 0xf5, -0x3d, 0x8a, 0xd5, 0x21, 0x77, 0x5a, 0x20, 0xcb, 0x3d, 0x26, 0x20, 0x5c, 0xce, 0xe3, 0x4a, 0xa2, -0x08, 0x75, 0x7c, 0x52, 0x8c, 0xde, 0x77, 0xdf, 0x1e, 0x26, 0x99, 0xfb, 0x14, 0x2e, 0x0b, 0xae, -0x2c, 0xc5, 0x7a, 0xb6, 0xef, 0xf6, 0x20, 0x68, 0x61, 0x39, 0x65, 0x83, 0x3b, 0x0e, 0xa0, 0xc6, -0xd9, 0xa3, 0xb2, 0xd3, 0x67, 0xf5, 0x5d, 0x24, 0xda, 0x2a, 0x2f, 0x7a, 0x5f, 0x22, 0x07, 0xd4, -0x3c, 0x61, 0xb4, 0x17, 0xa0, 0xcd, 0x48, 0x31, 0x8b, 0x3e, 0xd0, 0xce, 0x7d, 0xe0, 0x6b, 0x1f, -0x69, 0xe7, 0xd9, 0x96, 0x1e, 0x92, 0x83, 0x05, 0xad, 0x72, 0xc6, 0x69, 0x73, 0x80, 0x12, 0x4a, -0xa7, 0x93, 0xec, 0x9f, 0xd2, 0x1f, 0x6e, 0x8d, 0x97, 0x4c, 0x27, 0x73, 0xd9, 0x74, 0x92, 0xf6, -0x55, 0xb5, 0xde, 0x5d, 0x12, 0xda, 0x13, 0x6a, 0x69, 0x2a, 0x31, 0xed, 0xab, 0x6c, 0xad, 0xf7, -0x48, 0x91, 0xea, 0xc8, 0xcb, 0xa5, 0xd5, 0x7b, 0xab, 0x5b, 0x42, 0x6e, 0x53, 0x28, 0x1c, 0x09, -0x23, 0x75, 0x69, 0x7f, 0x75, 0x9b, 0x54, 0x46, 0xfe, 0x75, 0x7e, 0x7c, 0xd1, 0x3f, 0xb7, 0x59, -0xf2, 0x4f, 0x82, 0x1c, 0x26, 0xe1, 0x4d, 0xde, 0x1b, 0xc4, 0x9b, 0x8c, 0x37, 0x19, 0x6f, 0xe6, -0x3d, 0xfc, 0x96, 0x81, 0x37, 0xf3, 0xee, 0xcd, 0xf1, 0x1c, 0xd5, 0x02, 0x98, 0x2f, 0x40, 0x1a, -0x5f, 0xba, 0x0b, 0xf2, 0x0b, 0xa0, 0x50, 0xdb, 0xbf, 0xe7, 0x0b, 0x52, 0xb9, 0x67, 0x29, 0x59, -0x7c, 0xf3, 0xc8, 0x5b, 0xfd, 0x11, 0x79, 0x0b, 0x21, 0x9f, 0x95, 0x4d, 0x79, 0xac, 0x0e, 0x90, -0x49, 0xdb, 0xe7, 0x02, 0x2a, 0x79, 0x5b, 0x5d, 0x31, 0x72, 0xda, 0x3a, 0x17, 0xfa, 0x93, 0x65, -0xfb, 0xe0, 0xb6, 0xb3, 0xa0, 0x33, 0x8c, 0x81, 0x26, 0xab, 0xf3, 0x2e, 0x94, 0x90, 0xdd, 0x1f, -0x6e, 0x69, 0x0a, 0x4c, 0xa7, 0xac, 0x5d, 0xa1, 0xd6, 0x3a, 0x3f, 0x7a, 0xf3, 0xbe, 0x48, 0x6b, -0xb8, 0x62, 0x3a, 0x59, 0x5e, 0xac, 0x6a, 0x2d, 0x2f, 0xab, 0x7e, 0x91, 0xe1, 0x9c, 0xf3, 0xd6, -0xd1, 0xdb, 0xe6, 0x91, 0xa5, 0x22, 0x63, 0x4f, 0xa4, 0x4d, 0xaa, 0xb0, 0xbc, 0x5d, 0x77, 0xdb, -0x1c, 0xb2, 0xfa, 0xc3, 0xbb, 0xc2, 0x6d, 0x92, 0xbf, 0x72, 0xf0, 0x17, 0xb7, 0x45, 0x28, 0x2b, -0x20, 0xf5, 0x87, 0x9a, 0xa5, 0x00, 0x0d, 0xcd, 0xbd, 0xad, 0x92, 0xb2, 0x41, 0x25, 0xcf, 0xa0, -0xef, 0x43, 0x42, 0x4c, 0x98, 0xa7, 0xe1, 0x4e, 0xb2, 0x07, 0xbf, 0xfb, 0xb8, 0xbf, 0xe6, 0x29, -0x33, 0x30, 0x32, 0xd1, 0x50, 0x72, 0xa8, 0x7b, 0xb0, 0x7b, 0x30, 0x39, 0x98, 0x74, 0xdc, 0xb0, -0x25, 0xa9, 0x4a, 0x1d, 0xa4, 0x4c, 0x87, 0x5c, 0x13, 0x7c, 0x7d, 0xe0, 0xf5, 0xc3, 0x83, 0x7d, -0x1c, 0xae, 0xd4, 0x3e, 0x3c, 0xf0, 0xc2, 0x81, 0xc4, 0x22, 0xd1, 0xcb, 0xed, 0x8a, 0xe7, 0xaa, -0xaf, 0xb2, 0xb6, 0x24, 0x15, 0xb1, 0xeb, 0xe1, 0x85, 0x81, 0x44, 0x85, 0xc8, 0x39, 0xf7, 0xea, -0x9c, 0xbf, 0x3f, 0xa0, 0x4a, 0xdf, 0xff, 0x65, 0x61, 0x74, 0xe2, 0x79, 0x5f, 0x36, 0xe7, 0x3e, -0x36, 0xee, 0x91, 0x01, 0xdf, 0x44, 0x96, 0x5b, 0x87, 0x8a, 0x1a, 0x36, 0x39, 0xa2, 0xbb, 0x78, -0x94, 0xa3, 0x2b, 0x17, 0x94, 0x1a, 0x48, 0xab, 0xde, 0x5b, 0x6a, 0xd1, 0xc2, 0x72, 0xe8, 0x29, -0x92, 0x0d, 0x8b, 0xdf, 0x5c, 0x83, 0xef, 0x5c, 0x88, 0xbc, 0x5b, 0x5e, 0xe6, 0x8c, 0xb8, 0x6a, -0x9d, 0xd9, 0x68, 0x87, 0x11, 0x77, 0xb0, 0xa4, 0x10, 0xb8, 0xbe, 0x11, 0x2d, 0x0e, 0x72, 0x87, -0xac, 0x6c, 0x2e, 0x2d, 0x24, 0x69, 0x6f, 0x65, 0x2b, 0x8f, 0x17, 0x1e, 0x61, 0xcb, 0x7a, 0x4e, -0x8c, 0x94, 0x44, 0xa7, 0xf6, 0xc5, 0x5a, 0xd5, 0xbd, 0xcb, 0x49, 0x6a, 0xbd, 0x7b, 0xcf, 0x72, -0xf4, 0x9d, 0xa6, 0x5d, 0xa0, 0xd1, 0x96, 0x7a, 0x5f, 0x76, 0xa4, 0x99, 0xed, 0x7f, 0x19, 0x92, -0x63, 0xd9, 0x86, 0xdd, 0x29, 0xd1, 0xce, 0x34, 0xd7, 0xb6, 0x43, 0x2e, 0x1d, 0x07, 0xf7, 0xc3, -0x03, 0x8a, 0x3b, 0x8b, 0xe7, 0x5b, 0x88, 0xb9, 0xbf, 0x92, 0xe3, 0x40, 0x4f, 0x74, 0x27, 0xa7, -0x57, 0x82, 0x43, 0x75, 0x29, 0x37, 0x3a, 0x00, 0x0f, 0x7a, 0xc4, 0x25, 0x8c, 0xc4, 0x23, 0xe8, -0x95, 0x17, 0x70, 0x5d, 0xf4, 0x49, 0x3e, 0x2b, 0x97, 0x02, 0xde, 0x78, 0xc1, 0x07, 0xa8, 0x42, -0x7f, 0xeb, 0x07, 0x1c, 0x3e, 0xdc, 0x8b, 0x63, 0xfa, 0x1e, 0x92, 0x7f, 0xf4, 0x72, 0xf9, 0x6f, -0xb1, 0x64, 0xe9, 0x46, 0xf9, 0x9e, 0xe8, 0xd6, 0x84, 0x9f, 0x21, 0x50, 0xed, 0x81, 0x5c, 0xbf, -0x97, 0xa4, 0x47, 0x40, 0x37, 0x0f, 0x2f, 0xa5, 0x2c, 0xdc, 0xad, 0xb8, 0x67, 0x2b, 0x0d, 0x42, -0xfb, 0x3a, 0xa5, 0x66, 0x41, 0x07, 0x06, 0xe7, 0xfb, 0xec, 0xdc, 0x5f, 0x1f, 0x55, 0xac, 0xe8, -0x29, 0xe5, 0xda, 0xa0, 0x6e, 0x6b, 0x09, 0x5c, 0x5d, 0x14, 0x73, 0x57, 0xb5, 0x4a, 0xb6, 0xe8, -0x2f, 0x9e, 0xe8, 0x53, 0xf8, 0x75, 0x42, 0x23, 0x31, 0xef, 0x5a, 0x46, 0x52, 0x4b, 0x3e, 0x9e, -0x24, 0x3c, 0x99, 0x5b, 0x6d, 0x78, 0x92, 0x77, 0xdd, 0xd5, 0x62, 0x09, 0xd8, 0xf0, 0x2e, 0xb7, -0x59, 0xa1, 0xb7, 0x05, 0x75, 0x2a, 0xa7, 0xc7, 0xc1, 0xb5, 0x2f, 0xe2, 0xfa, 0x04, 0xd7, 0x25, -0x5c, 0x97, 0x51, 0x9f, 0x11, 0xe0, 0x0c, 0xa1, 0x42, 0x52, 0x03, 0x95, 0x42, 0xe3, 0xb7, 0x04, -0x90, 0xa3, 0x6f, 0x62, 0x60, 0xa9, 0xf8, 0x8d, 0xf9, 0x26, 0xfa, 0x1b, 0x7c, 0x96, 0xeb, 0xd4, -0x2b, 0xa2, 0x44, 0x39, 0x5f, 0x8c, 0x14, 0x56, 0x21, 0x5b, 0xb1, 0xde, 0xa2, 0xdd, 0x7e, 0x5a, -0x60, 0x1d, 0x78, 0x4a, 0x78, 0x79, 0x3f, 0x4b, 0x00, 0xb2, 0x84, 0x7f, 0x86, 0xf6, 0x89, 0x9a, -0xf3, 0x39, 0xb5, 0x3e, 0xab, 0xca, 0xba, 0x35, 0xab, 0x93, 0xf5, 0x49, 0xe0, 0x94, 0x6b, 0x1c, -0x79, 0xb7, 0x54, 0xcc, 0x55, 0xe8, 0x54, 0x21, 0xf4, 0xe1, 0x27, 0x94, 0x15, 0x46, 0x1b, 0x12, -0x6d, 0x75, 0x80, 0x1b, 0xed, 0xd2, 0x9f, 0xfb, 0x4a, 0xc1, 0xa5, 0xf7, 0xae, 0x40, 0xcd, 0xbb, -0x40, 0x3d, 0x12, 0xa8, 0xc1, 0xdc, 0xda, 0x11, 0xc8, 0xd9, 0xb5, 0x82, 0xe4, 0xd6, 0xe5, 0xfe, -0x1b, 0xfb, 0x41, 0x1d, 0xad, 0x8b, 0x80, 0x3b, 0xd1, 0x66, 0xd0, 0xae, 0x2c, 0xfe, 0x30, 0xae, -0x2a, 0x5c, 0x95, 0xb8, 0x82, 0xd7, 0xad, 0x19, 0xb7, 0x58, 0xd1, 0x1f, 0xd5, 0x62, 0x16, 0xa5, -0x2e, 0xdd, 0x5e, 0xef, 0x2c, 0x2c, 0x30, 0x74, 0xc5, 0x0a, 0xd7, 0x44, 0x67, 0xb6, 0xb3, 0x01, -0x3c, 0x61, 0x5b, 0x6c, 0x27, 0x59, 0x78, 0x9e, 0x95, 0x79, 0x26, 0xe8, 0x24, 0xe7, 0xf6, 0x08, -0x65, 0x07, 0x3c, 0x94, 0x3b, 0x58, 0x89, 0x10, 0x1b, 0x62, 0xf2, 0x06, 0x07, 0x10, 0x96, 0x33, -0x04, 0x59, 0xe9, 0xf6, 0x4a, 0x84, 0x2f, 0xa7, 0x7c, 0xc4, 0xe4, 0x41, 0x76, 0x52, 0x44, 0x6d, -0xa5, 0xfa, 0xcd, 0xae, 0xe5, 0xe4, 0x44, 0x5e, 0x41, 0x68, 0x91, 0x52, 0x63, 0xf0, 0x8e, 0xa0, -0x3e, 0xcf, 0x83, 0xb1, 0x34, 0x07, 0x12, 0xe4, 0xa9, 0x9f, 0x9c, 0x23, 0x67, 0xdc, 0x3c, 0x6d, -0x05, 0x65, 0x93, 0x13, 0xe1, 0xd9, 0xb7, 0xac, 0xe0, 0x1d, 0x72, 0xc6, 0x53, 0x16, 0x38, 0x36, -0x7e, 0x45, 0x4e, 0xe6, 0x5b, 0x38, 0x0d, 0xc7, 0x98, 0xc7, 0xbc, 0x73, 0x7c, 0xf6, 0xcc, 0xa5, -0xc6, 0xec, 0x51, 0x36, 0x24, 0x37, 0x87, 0xa3, 0x4a, 0x9f, 0x41, 0x4a, 0xbd, 0xe3, 0xca, 0x99, -0xd9, 0x8c, 0x11, 0xdd, 0x36, 0x93, 0xe5, 0xcb, 0x1c, 0x4b, 0x21, 0xcf, 0xbd, 0x27, 0x18, 0xfa, -0x82, 0xd7, 0x97, 0x8b, 0x5a, 0x4c, 0xc5, 0x3d, 0xc7, 0x81, 0xf4, 0x65, 0x90, 0x50, 0x02, 0x08, -0x53, 0x6e, 0x18, 0xdc, 0x70, 0x2e, 0xc9, 0x66, 0x3a, 0x09, 0xa9, 0x29, 0x79, 0x2a, 0x09, 0x8e, -0x9b, 0x67, 0xc4, 0x17, 0x20, 0x3e, 0xe7, 0x3a, 0xf1, 0xf6, 0x3b, 0xbb, 0x92, 0x26, 0xca, 0x13, -0xbf, 0x76, 0xae, 0x21, 0x35, 0xc8, 0xa4, 0x96, 0x06, 0x56, 0x50, 0xbe, 0x9f, 0x73, 0x9c, 0x38, -0xd8, 0x37, 0xf6, 0x8b, 0x3b, 0x91, 0x23, 0xe2, 0x0a, 0x18, 0xab, 0xd7, 0x89, 0xe3, 0x1c, 0xf2, -0xd2, 0x18, 0x4c, 0xcd, 0x85, 0x11, 0xcf, 0x92, 0xee, 0xd6, 0x9f, 0xe2, 0xe0, 0x46, 0x56, 0x9e, -0x97, 0x06, 0x67, 0xb5, 0x15, 0x83, 0x2f, 0xec, 0x46, 0x3d, 0x9b, 0xdd, 0xb1, 0xd0, 0xcc, 0x10, -0x78, 0x04, 0x30, 0x12, 0x48, 0xf2, 0x2f, 0xf8, 0xaf, 0x84, 0xbb, 0x35, 0x67, 0x3f, 0x99, 0x16, -0x60, 0x94, 0x88, 0xed, 0x20, 0xab, 0xbe, 0x7f, 0x81, 0x67, 0xab, 0xb9, 0xbd, 0x67, 0xfb, 0xd9, -0xd2, 0x1b, 0x74, 0x68, 0x0b, 0x84, 0x63, 0x1b, 0x18, 0x9e, 0x17, 0x5e, 0x6d, 0x23, 0x7a, 0xad, -0x24, 0x58, 0x61, 0x2a, 0x97, 0xca, 0x32, 0xa2, 0xe1, 0x78, 0x10, 0xed, 0x29, 0xfb, 0x93, 0xfc, -0x3b, 0x13, 0xf9, 0xe1, 0x6e, 0xb5, 0xed, 0xa7, 0x0c, 0xf1, 0x1e, 0x02, 0x5f, 0xe7, 0x7b, 0x15, -0xda, 0x06, 0xe1, 0x53, 0xba, 0x20, 0xcf, 0x9a, 0x1a, 0x76, 0x92, 0xdc, 0xb4, 0x93, 0xac, 0x4d, -0xa8, 0xb9, 0x2a, 0x6c, 0xf7, 0x99, 0x42, 0xcf, 0xae, 0x67, 0x5a, 0xe2, 0x12, 0x02, 0xc1, 0xd8, -0x86, 0x05, 0x9b, 0x50, 0x4e, 0x1c, 0x1c, 0xcb, 0xea, 0xa8, 0x8c, 0x4e, 0xd7, 0xb4, 0xb8, 0xed, -0x2f, 0xf0, 0x55, 0x63, 0xf7, 0xb4, 0x4a, 0xb2, 0x36, 0x06, 0x99, 0xbe, 0xb8, 0x25, 0x62, 0x1b, -0x90, 0x4a, 0x2f, 0xff, 0x01, 0x51, 0xce, 0x9c, 0xab, 0xca, 0xaf, 0x31, 0xca, 0xaf, 0xfe, 0xbc, -0xf2, 0x53, 0xbb, 0x35, 0xac, 0x23, 0xba, 0x7c, 0x09, 0x9e, 0x6e, 0x51, 0x7c, 0x28, 0xd5, 0x47, -0x36, 0x6f, 0x1b, 0xb8, 0xf9, 0x73, 0x5a, 0x96, 0xbe, 0x6a, 0x92, 0x8a, 0x41, 0xa8, 0x0d, 0xf2, -0xd8, 0x4e, 0x0e, 0xc5, 0x38, 0x7f, 0x9a, 0xc7, 0x79, 0x57, 0xad, 0x27, 0xdb, 0x0d, 0x3c, 0x45, -0xa1, 0xa9, 0x40, 0xef, 0x3c, 0x0b, 0x0e, 0x66, 0xc5, 0x7d, 0xd8, 0xd9, 0xe4, 0x41, 0x4f, 0x53, -0xd0, 0xd7, 0x47, 0x7e, 0x34, 0x3b, 0x48, 0x81, 0xd9, 0x2b, 0xc8, 0x49, 0xc5, 0xf8, 0x75, 0x51, -0x89, 0xcf, 0xaa, 0xd7, 0xba, 0x02, 0x3a, 0xd1, 0x82, 0x4d, 0xb3, 0xbb, 0x34, 0x8d, 0xbc, 0xa1, -0x36, 0xf2, 0x43, 0x96, 0xf3, 0x51, 0x80, 0x47, 0x6a, 0xe8, 0x9e, 0xcd, 0xe5, 0x3e, 0xf2, 0xc6, -0x6a, 0x6c, 0x37, 0xf1, 0x3e, 0x07, 0x8c, 0xe1, 0xc9, 0x25, 0x39, 0x78, 0x92, 0x12, 0x25, 0xf8, -0xcd, 0x88, 0x53, 0x86, 0x4b, 0x25, 0xc9, 0xe2, 0x98, 0xeb, 0xcf, 0x89, 0x0c, 0xa0, 0xe7, 0x49, -0x91, 0x03, 0xde, 0x6a, 0x9e, 0xe5, 0x99, 0x1d, 0xa3, 0x20, 0xae, 0xf0, 0x6c, 0x70, 0x6f, 0x0a, -0x89, 0xdf, 0x1a, 0xf4, 0xb2, 0x37, 0xfd, 0x28, 0x59, 0xac, 0x8d, 0x48, 0xfd, 0x7d, 0x2d, 0x39, -0xbe, 0x4c, 0x1f, 0x4b, 0x8e, 0x39, 0xd0, 0x08, 0x27, 0xd5, 0xef, 0xd3, 0x64, 0xd5, 0x09, 0x9a, -0x73, 0xde, 0x11, 0xc3, 0xc5, 0x5f, 0xb8, 0x10, 0xcf, 0x5c, 0x05, 0x71, 0x57, 0xce, 0x8e, 0x86, -0xb2, 0xb6, 0xc8, 0xc6, 0x39, 0xbe, 0x08, 0x79, 0xfd, 0x35, 0xf8, 0x2d, 0x55, 0x30, 0x0e, 0xc6, -0xfa, 0x5e, 0xf8, 0x88, 0x4a, 0x9b, 0x41, 0x19, 0x88, 0x0b, 0x6f, 0xfe, 0x88, 0x82, 0x6e, 0x4b, -0xac, 0xb7, 0x7d, 0xf2, 0x40, 0xef, 0x99, 0x8d, 0x52, 0x2f, 0x4b, 0xea, 0xe0, 0x74, 0x52, 0x53, -0xaf, 0x77, 0x05, 0x78, 0x45, 0x1b, 0xd5, 0x20, 0x45, 0x28, 0xb2, 0x94, 0x4c, 0x3e, 0x39, 0x25, -0xbf, 0xf7, 0x3f, 0x47, 0xf2, 0x22, 0x00, 0x86, 0x52, 0xe5, 0xd9, 0xe6, 0x50, 0x62, 0xb6, 0x8f, -0xca, 0x43, 0x89, 0x48, 0x1b, 0x35, 0x00, 0x02, 0x60, 0xea, 0xb7, 0x62, 0xae, 0x16, 0x1c, 0x6c, -0x39, 0xa8, 0xdf, 0xea, 0x98, 0xab, 0x34, 0x00, 0x4f, 0x41, 0xd4, 0xdb, 0x87, 0x9c, 0x0e, 0x14, -0xfb, 0x28, 0x1c, 0x39, 0x58, 0xe2, 0xa3, 0x9a, 0xc8, 0x4b, 0x8c, 0x83, 0x2b, 0x87, 0xd1, 0x93, -0x33, 0xe8, 0x96, 0x44, 0xb9, 0x32, 0x97, 0xdf, 0x47, 0xb6, 0x72, 0x6d, 0x45, 0x5d, 0x4a, 0xd0, -0x8a, 0xe1, 0xcd, 0xcf, 0x53, 0x29, 0xe0, 0x28, 0x7f, 0xfd, 0xb0, 0x63, 0x6e, 0x2c, 0xf9, 0xfa, -0x31, 0xf1, 0x0d, 0x97, 0xed, 0xa3, 0x3a, 0x91, 0xca, 0xc6, 0xa5, 0x41, 0x3a, 0x7e, 0xd0, 0x6f, -0x8e, 0x05, 0xd1, 0x76, 0x7e, 0xe0, 0xef, 0xf8, 0xef, 0xc3, 0xdf, 0x67, 0x87, 0x3e, 0x1f, 0x7f, -0x9f, 0xed, 0xb8, 0x0a, 0x7f, 0x39, 0x28, 0x3b, 0xd8, 0x41, 0x01, 0xda, 0xd5, 0xd7, 0x2c, 0x23, -0xf7, 0xa0, 0x08, 0x09, 0xeb, 0x21, 0x6d, 0x1c, 0x12, 0xe6, 0x52, 0x10, 0x16, 0x1a, 0x93, 0x2a, -0x64, 0x84, 0xd5, 0x8c, 0x49, 0x57, 0xc3, 0x30, 0x02, 0xb6, 0x72, 0xf4, 0x07, 0x39, 0x90, 0xb3, -0xa5, 0x76, 0x76, 0x25, 0x05, 0x87, 0x86, 0x66, 0xd7, 0x22, 0x07, 0x8c, 0x17, 0xfc, 0xc5, 0xe6, -0x08, 0x7f, 0x3b, 0x78, 0x8e, 0xa4, 0xd9, 0x11, 0xaa, 0x09, 0xd4, 0x6e, 0x39, 0xe0, 0x9e, 0x18, -0xeb, 0xed, 0x98, 0x7c, 0x70, 0xb4, 0x6d, 0xba, 0xd3, 0x6d, 0x13, 0xd9, 0x3c, 0x70, 0xbd, 0x76, -0x31, 0xd9, 0x1d, 0x73, 0xb9, 0xae, 0x62, 0x4d, 0x4d, 0x82, 0xc6, 0x00, 0x59, 0x62, 0x25, 0x95, -0x78, 0xc8, 0x2c, 0x28, 0xae, 0x8e, 0x5b, 0x0d, 0x12, 0x42, 0x9b, 0xc0, 0x1e, 0x5a, 0xeb, 0xd4, -0xd1, 0x31, 0xad, 0xd4, 0x24, 0x5a, 0x69, 0xbe, 0x68, 0xa5, 0x05, 0xa2, 0x95, 0xee, 0x4e, 0xb5, -0x12, 0x4b, 0x4c, 0x46, 0x4b, 0x05, 0xaf, 0x6e, 0xa9, 0x91, 0x8d, 0x7f, 0xb0, 0x4c, 0xa3, 0xb5, -0x46, 0x16, 0x71, 0x6b, 0x35, 0xdc, 0xdf, 0xf4, 0x60, 0xe3, 0x1c, 0xee, 0x31, 0x4d, 0x35, 0xc0, -0x92, 0x77, 0x7e, 0x04, 0xf5, 0xf5, 0xab, 0x8a, 0x2f, 0x13, 0xb4, 0x54, 0x12, 0x4a, 0x88, 0x94, -0xa5, 0x77, 0x00, 0xf3, 0x68, 0x0b, 0x60, 0x56, 0xb4, 0x85, 0x55, 0x2d, 0x6f, 0x9c, 0xc3, 0x5b, -0xde, 0xa2, 0x73, 0xe2, 0x34, 0xb2, 0x65, 0x7a, 0x13, 0xc9, 0xd3, 0x9b, 0xc5, 0x9a, 0x19, 0xfa, -0xf2, 0xd8, 0x2f, 0x3f, 0xbd, 0x72, 0xf5, 0x97, 0xe3, 0x76, 0x7a, 0xa5, 0xc6, 0x47, 0xc5, 0x49, -0x2e, 0x13, 0xf3, 0x4c, 0xe6, 0x66, 0x18, 0xa1, 0x73, 0x9a, 0x97, 0x82, 0x66, 0x4b, 0x99, 0xfb, -0x44, 0xdd, 0xe0, 0x63, 0xf9, 0xb7, 0x87, 0x28, 0x17, 0xa3, 0x61, 0x9e, 0xce, 0x1f, 0xb5, 0x11, -0x9d, 0x6f, 0x6a, 0x57, 0xd4, 0xf2, 0x14, 0x1f, 0x5c, 0xb0, 0x09, 0xdf, 0xe6, 0xe0, 0x5b, 0x5b, -0x9b, 0x57, 0xa4, 0xae, 0xd2, 0x53, 0xfb, 0x7b, 0x0c, 0x5e, 0x2a, 0x2d, 0xd8, 0x29, 0xf8, 0x9a, -0x35, 0x64, 0xc3, 0x18, 0x6c, 0x8d, 0x8d, 0xe1, 0x63, 0xb2, 0x3e, 0x9f, 0x9a, 0xa5, 0xd8, 0xfa, -0x1f, 0x8e, 0x87, 0x78, 0xa6, 0xb2, 0x1f, 0xb2, 0x69, 0xbc, 0xd4, 0x89, 0x51, 0x1e, 0x63, 0x81, -0x45, 0x95, 0x9d, 0x31, 0xa5, 0x41, 0xc8, 0xc9, 0xf9, 0xfa, 0xac, 0x3b, 0x4b, 0x9f, 0xfd, 0x90, -0xbb, 0xe2, 0x59, 0x78, 0xb2, 0xe2, 0xc9, 0x9a, 0x38, 0xf1, 0xc2, 0x11, 0x7d, 0xbe, 0x53, 0xec, -0x43, 0x62, 0xee, 0x97, 0x85, 0x1a, 0x15, 0x2b, 0x3b, 0x49, 0xdc, 0x67, 0x2e, 0xa7, 0x5c, 0x92, -0xf9, 0x69, 0xca, 0x72, 0x8c, 0x9c, 0x66, 0x07, 0x3f, 0x2d, 0xa3, 0x9b, 0x69, 0x02, 0xa7, 0x45, -0x29, 0xc5, 0xed, 0x24, 0xf2, 0xb6, 0xd8, 0xdc, 0x94, 0x57, 0x93, 0x04, 0x44, 0x02, 0x37, 0x2c, -0xf7, 0xb8, 0x6b, 0x5d, 0x2c, 0xe5, 0xb9, 0xe3, 0x64, 0xca, 0x6f, 0x0f, 0x5f, 0x77, 0xe7, 0x34, -0x99, 0x64, 0x31, 0xab, 0x2c, 0x0d, 0x26, 0xc7, 0xcf, 0x92, 0x4c, 0x0b, 0x8a, 0x3d, 0xa4, 0x7a, -0x0c, 0x8d, 0x0b, 0x2f, 0x83, 0xd4, 0x54, 0x62, 0x48, 0x4d, 0xdb, 0x58, 0xb2, 0x46, 0x3e, 0x5d, -0xc5, 0x32, 0xe4, 0x1c, 0x27, 0x46, 0x78, 0xb9, 0x43, 0xf6, 0x56, 0xb1, 0x8e, 0x6a, 0x0d, 0xd2, -0x84, 0x45, 0x79, 0xba, 0x96, 0xda, 0x61, 0x3a, 0xf9, 0x94, 0xa0, 0x7e, 0x6d, 0x6f, 0x77, 0x9b, -0x54, 0x6c, 0x02, 0x06, 0x6d, 0xc0, 0x69, 0xd9, 0xeb, 0x03, 0x01, 0x6a, 0xac, 0x9c, 0xd9, 0x6d, -0xa1, 0x18, 0x4a, 0x81, 0xa4, 0x2e, 0xed, 0x4a, 0x2e, 0x3a, 0x73, 0x6b, 0x94, 0xdc, 0xca, 0xa8, -0x2e, 0x38, 0x34, 0xad, 0x8e, 0x2a, 0xfc, 0x92, 0x18, 0x89, 0x8a, 0xd0, 0x46, 0xfe, 0xdb, 0x99, -0x7f, 0x07, 0xa0, 0x39, 0x16, 0xe3, 0x2d, 0xa4, 0x96, 0x03, 0x4e, 0x79, 0x30, 0x39, 0xaa, 0x21, -0x02, 0xbe, 0x32, 0x01, 0x5f, 0x4e, 0xaa, 0x06, 0x63, 0xe2, 0xa2, 0xed, 0xe1, 0x31, 0xba, 0xa4, -0xb1, 0x46, 0x9a, 0x92, 0xb9, 0xa0, 0x8f, 0xf8, 0xc8, 0x82, 0xf1, 0xc8, 0xca, 0xfb, 0xc0, 0x8c, -0x31, 0xe9, 0x84, 0x31, 0x2f, 0x5e, 0x27, 0x66, 0x37, 0x2c, 0xce, 0x7a, 0x68, 0xed, 0x1f, 0x8b, -0x39, 0xca, 0x4f, 0x66, 0x01, 0x12, 0xed, 0xb2, 0xf8, 0x1d, 0x11, 0xbf, 0x57, 0x20, 0x21, 0x16, -0x99, 0x1e, 0x02, 0x6d, 0x9d, 0x74, 0x5d, 0x76, 0x53, 0xc3, 0x26, 0x48, 0xc6, 0x0b, 0xbe, 0xcc, -0x33, 0x12, 0x5f, 0x87, 0x56, 0x7f, 0xb8, 0xa2, 0x5c, 0x4a, 0x76, 0x69, 0x78, 0x97, 0xb5, 0x6f, -0x88, 0xdf, 0xf9, 0x85, 0x5d, 0x44, 0xb6, 0x6c, 0x6d, 0xe1, 0x6a, 0xfa, 0xab, 0x5f, 0x38, 0xb3, -0xcd, 0x3d, 0x3c, 0x7b, 0xaa, 0x64, 0xac, 0xe4, 0x79, 0xb0, 0x06, 0x5e, 0xd1, 0x49, 0xcf, 0xa9, -0xd7, 0x2f, 0xca, 0xd5, 0xe7, 0xd2, 0x13, 0x2e, 0x71, 0x97, 0x20, 0xb3, 0x6d, 0x57, 0x15, 0xf1, -0x6c, 0x4d, 0xb8, 0x71, 0xcf, 0xa4, 0xcc, 0xc4, 0x1a, 0xf1, 0x3e, 0x29, 0xde, 0xa5, 0x66, 0xf3, -0x3c, 0xb9, 0xda, 0x29, 0x66, 0x47, 0x16, 0xaa, 0xcd, 0x5f, 0x5e, 0x4a, 0x13, 0xb4, 0xf9, 0xea, -0x62, 0x71, 0xff, 0x86, 0xba, 0xd0, 0x85, 0xf0, 0x8a, 0x42, 0xb2, 0x97, 0x42, 0x2a, 0x02, 0x2f, -0x80, 0x04, 0x3e, 0x72, 0xd6, 0x4b, 0xe0, 0x23, 0xa2, 0x0d, 0x41, 0x4b, 0x72, 0xb3, 0x39, 0xcf, -0x4d, 0x5f, 0x51, 0x65, 0xfc, 0x66, 0x42, 0xe2, 0x92, 0x05, 0x46, 0x6d, 0xa0, 0x3f, 0xbb, 0x78, -0x32, 0xbb, 0xa1, 0xc1, 0xaa, 0xb9, 0x51, 0x6a, 0x36, 0xbb, 0xdd, 0xe8, 0xd9, 0x59, 0x6e, 0x49, -0x35, 0x8b, 0xd2, 0x16, 0x40, 0xeb, 0xff, 0xd8, 0xbb, 0x7c, 0xdc, 0xbc, 0x7c, 0x99, 0x32, 0x43, -0x6b, 0xf8, 0x72, 0x95, 0xf6, 0x75, 0x17, 0xf9, 0x3c, 0x72, 0x08, 0x3c, 0xc7, 0xec, 0x2b, 0x07, -0xa4, 0x59, 0xe0, 0xfe, 0x1b, 0xbd, 0xc4, 0x7c, 0xba, 0x43, 0xdb, 0x95, 0x4c, 0xb4, 0x3e, 0x7c, -0xb8, 0xea, 0x03, 0x6d, 0x5f, 0x7b, 0xa9, 0x83, 0x63, 0xc9, 0x69, 0x66, 0xc8, 0x3e, 0xb3, 0x76, -0xdc, 0xb4, 0x2b, 0xb9, 0xd8, 0x8a, 0x3c, 0x8e, 0x32, 0x3d, 0xd9, 0xb2, 0xef, 0x4f, 0x0a, 0x29, -0x2c, 0xa8, 0xe8, 0xf1, 0x1e, 0x2e, 0x25, 0x21, 0xf3, 0x0c, 0x10, 0xbe, 0x5e, 0xd4, 0xbe, 0x80, -0xbf, 0xb6, 0x8d, 0x7e, 0x7d, 0x0b, 0xbe, 0xce, 0xad, 0x98, 0xa1, 0x25, 0x63, 0x73, 0x7e, 0xd0, -0xa2, 0x75, 0x95, 0xb6, 0x68, 0x3d, 0xb1, 0xba, 0xed, 0x1f, 0x68, 0x6b, 0x04, 0x2c, 0x19, 0xb3, -0x27, 0x80, 0xeb, 0x70, 0x79, 0xf2, 0x9c, 0xcb, 0x9f, 0x5d, 0xa9, 0x7f, 0xa4, 0x98, 0x8c, 0x70, -0xab, 0x11, 0x9e, 0x59, 0xff, 0x48, 0x39, 0x19, 0xab, 0xd1, 0x1c, 0x2e, 0x19, 0xe1, 0xe6, 0xfa, -0x47, 0x66, 0x05, 0x35, 0xd5, 0x48, 0x6d, 0x36, 0x42, 0x27, 0xd4, 0x3f, 0x52, 0x1a, 0x1c, 0x4d, -0x2d, 0xf6, 0xcb, 0x7d, 0x1d, 0x35, 0xe6, 0x38, 0x4b, 0xfd, 0x23, 0x53, 0xc9, 0x95, 0x59, 0xb3, -0xf6, 0x95, 0x67, 0xb5, 0x85, 0x73, 0xce, 0x49, 0x15, 0xc0, 0x7d, 0x8a, 0xce, 0xef, 0x16, 0x56, -0x21, 0xbd, 0x89, 0x7a, 0xf0, 0xf6, 0x16, 0xed, 0x0a, 0x6b, 0x52, 0x11, 0xde, 0x41, 0x07, 0x3d, -0x8b, 0x21, 0x99, 0x3d, 0x43, 0x53, 0xf1, 0xcb, 0xa3, 0x35, 0x97, 0x3f, 0x43, 0x5b, 0x80, 0x9c, -0x27, 0xf8, 0x38, 0xf7, 0x6f, 0xf8, 0x78, 0xaf, 0xa4, 0x8c, 0xa7, 0xf9, 0x28, 0x27, 0x83, 0xc7, -0x07, 0xa6, 0xc0, 0x69, 0x9d, 0xc8, 0x31, 0xdc, 0xae, 0xf5, 0x3f, 0xab, 0x7d, 0x12, 0x6f, 0x57, -0x96, 0x4b, 0x4e, 0xf4, 0x31, 0xab, 0xbb, 0x92, 0xf7, 0xf7, 0x69, 0xaa, 0x37, 0xa8, 0xce, 0xdf, -0xdb, 0x97, 0x68, 0xb8, 0xb6, 0x34, 0x9f, 0xd5, 0x97, 0xfd, 0x47, 0x96, 0xc3, 0xab, 0x22, 0x75, -0xa3, 0x65, 0x41, 0x53, 0xab, 0x33, 0x74, 0x9a, 0x27, 0xc7, 0xd4, 0xec, 0x15, 0xb4, 0xdc, 0x27, -0x62, 0xc6, 0xc6, 0x99, 0xd6, 0x43, 0x1f, 0x17, 0xbd, 0x29, 0xe2, 0xae, 0x07, 0xbd, 0xd9, 0xa3, -0x4b, 0xc9, 0x1c, 0xb7, 0x83, 0xca, 0x0a, 0xa2, 0xd0, 0x3d, 0xe3, 0xd9, 0x51, 0xb4, 0x64, 0x8b, -0x25, 0x0a, 0x0a, 0x6b, 0x26, 0xe9, 0x54, 0x54, 0x50, 0xa3, 0x0b, 0x1a, 0xa5, 0x0a, 0xfd, 0xcb, -0x67, 0xe1, 0xf2, 0x3c, 0x5d, 0x2e, 0xf4, 0x2e, 0x85, 0xbf, 0x10, 0xb1, 0x45, 0x57, 0xc5, 0x16, -0x21, 0x16, 0x6f, 0x5e, 0xa9, 0x99, 0xf9, 0xfc, 0xbf, 0x3c, 0xe9, 0x26, 0xaf, 0xd5, 0xbc, 0x1e, -0xe0, 0x58, 0x95, 0x9a, 0xd1, 0x55, 0xd9, 0x86, 0x4d, 0xbc, 0xd7, 0x59, 0xca, 0x8f, 0xde, 0x87, -0xdf, 0x52, 0xe0, 0x9e, 0xa4, 0x1c, 0xe4, 0x69, 0x17, 0x79, 0xda, 0xc1, 0x3b, 0x6d, 0x71, 0xb9, -0x03, 0x1c, 0xa2, 0x23, 0x08, 0xbd, 0xd2, 0x4d, 0xb9, 0xbf, 0xdd, 0x91, 0xec, 0x06, 0xbf, 0x90, -0xd3, 0xe5, 0x1a, 0x69, 0x3a, 0x91, 0xa6, 0x33, 0xd8, 0x61, 0x42, 0x9f, 0xcb, 0x7d, 0xff, 0xa9, -0x9e, 0x1e, 0x7c, 0x21, 0x77, 0xca, 0xbb, 0x93, 0x09, 0xf3, 0x6a, 0xcb, 0xbe, 0x64, 0xbc, 0xb4, -0xd3, 0xc4, 0x3b, 0x84, 0x4d, 0x7b, 0x56, 0x57, 0xee, 0xeb, 0x8e, 0x7b, 0x78, 0xee, 0xa0, 0xe3, -0x8e, 0xa1, 0x67, 0xc4, 0xcc, 0xfc, 0x79, 0xf4, 0xf4, 0x0b, 0x8e, 0x2a, 0x63, 0x5e, 0xfe, 0xbc, -0x2f, 0x23, 0x35, 0x2f, 0x1f, 0xca, 0x54, 0xa3, 0xc8, 0xa3, 0x5b, 0xe4, 0xd1, 0x1d, 0x2f, 0xef, -0x30, 0xed, 0x62, 0x7e, 0xdd, 0xd1, 0x59, 0xb9, 0x3b, 0x19, 0x2f, 0x62, 0x28, 0x39, 0x9f, 0xd5, -0x77, 0xbc, 0xc5, 0xf9, 0x54, 0x1b, 0xf9, 0xcc, 0x49, 0xe7, 0x33, 0x21, 0x95, 0xcf, 0x6a, 0xde, -0xe1, 0x5a, 0xed, 0x68, 0x96, 0xfa, 0x16, 0x6c, 0xe0, 0xd5, 0x97, 0xf6, 0x0c, 0x4e, 0xc9, 0x33, -0x10, 0xbc, 0x5e, 0xaa, 0x84, 0xab, 0x79, 0xa6, 0xb4, 0x59, 0x5f, 0x17, 0x55, 0xc2, 0xe8, 0x3f, -0xe7, 0x8d, 0xb7, 0xc7, 0x04, 0xf7, 0x94, 0x05, 0x5f, 0xce, 0x85, 0x44, 0x50, 0x48, 0x16, 0x2f, -0x6b, 0xa9, 0x4d, 0xd0, 0x1c, 0x6d, 0x22, 0xce, 0x2c, 0xe2, 0xf2, 0x10, 0x93, 0x95, 0x8e, 0x61, -0xed, 0xcd, 0x5e, 0x79, 0x5e, 0x72, 0x8a, 0xd6, 0x33, 0x2b, 0xd3, 0xc1, 0x1b, 0x24, 0xc5, 0x22, -0xda, 0x56, 0x84, 0x88, 0xbd, 0xad, 0x92, 0x23, 0xf2, 0xc2, 0x40, 0xc2, 0x62, 0x99, 0x8e, 0x31, -0x69, 0x4a, 0x42, 0x56, 0xe6, 0x20, 0x4d, 0x55, 0x47, 0x99, 0x81, 0x93, 0xe3, 0x85, 0x55, 0xda, -0x89, 0xc2, 0x39, 0xda, 0x70, 0xe1, 0x5c, 0xed, 0x74, 0x61, 0x58, 0x3b, 0x6b, 0xcc, 0x5c, 0x1f, -0x4f, 0xcd, 0x5c, 0xfb, 0xac, 0xa2, 0xfc, 0x1c, 0xb1, 0x43, 0xdb, 0x26, 0x7e, 0xb3, 0xc5, 0xaf, -0x15, 0x74, 0x39, 0xc1, 0x57, 0x08, 0x09, 0x01, 0xad, 0x7e, 0x68, 0xa4, 0x10, 0x54, 0xad, 0x5d, -0x18, 0x5f, 0x2b, 0xd0, 0xa9, 0x33, 0x5a, 0x9d, 0x70, 0x77, 0xde, 0x71, 0x8c, 0x4b, 0x0b, 0x69, -0xe7, 0x79, 0x46, 0xe6, 0x7a, 0x98, 0x53, 0x65, 0xd0, 0x45, 0x79, 0xaa, 0xad, 0x21, 0x83, 0x5a, -0x91, 0xb7, 0x57, 0x6a, 0xe7, 0xbc, 0x3f, 0xee, 0x17, 0xf3, 0x13, 0x6b, 0x13, 0x05, 0x29, 0x7a, -0x11, 0xf1, 0x19, 0x57, 0xc5, 0xf7, 0x26, 0x38, 0x54, 0x4e, 0xd1, 0xa1, 0x1e, 0x3a, 0x86, 0x02, -0xd9, 0x42, 0xa1, 0xfd, 0x5a, 0x3c, 0x7f, 0x1e, 0x96, 0x53, 0x38, 0xd6, 0x47, 0xd5, 0xf1, 0x23, -0x33, 0x5a, 0xf5, 0x19, 0xd0, 0xaf, 0x03, 0x72, 0xb1, 0x24, 0x72, 0xc9, 0x81, 0xfc, 0x86, 0xaf, -0x95, 0x90, 0x92, 0x71, 0xaa, 0x2f, 0x9c, 0x74, 0xb6, 0x68, 0xcf, 0x80, 0x96, 0x6d, 0x83, 0x6b, -0x55, 0x39, 0x56, 0xfb, 0xfa, 0xc1, 0x17, 0x06, 0x5a, 0x2e, 0x15, 0xbf, 0x1a, 0xeb, 0xde, 0xdd, -0xbd, 0xe8, 0xbc, 0x28, 0xc1, 0xb6, 0x9a, 0xca, 0x80, 0x41, 0x7f, 0xe5, 0xe0, 0xcb, 0x28, 0xf7, -0x46, 0xb4, 0x43, 0x7f, 0x80, 0xe7, 0xad, 0x2a, 0xb5, 0xdd, 0xee, 0x16, 0xad, 0xdf, 0x6d, 0x3a, -0xb5, 0x31, 0xdc, 0x8b, 0x9c, 0x2d, 0xc0, 0xd9, 0xa1, 0xc6, 0x1e, 0xfc, 0x1e, 0x83, 0x2c, 0xbc, -0xf5, 0xf8, 0xb3, 0xda, 0x6e, 0xd5, 0x1c, 0x4b, 0xfe, 0xfa, 0x03, 0xad, 0xff, 0xa7, 0x87, 0x5a, -0x3e, 0xe9, 0x9c, 0x70, 0x68, 0xdd, 0xca, 0x09, 0xaf, 0x24, 0x9d, 0x55, 0x7b, 0x7a, 0x16, 0xcb, -0x8e, 0x4c, 0xb4, 0x35, 0xd5, 0x74, 0xaf, 0x9c, 0x70, 0x70, 0xad, 0x6b, 0x86, 0x76, 0x6c, 0xdb, -0xba, 0x37, 0x93, 0x4a, 0x9d, 0x23, 0xec, 0xa5, 0x35, 0x26, 0xb4, 0xf2, 0x5e, 0x35, 0xf0, 0xc6, -0x07, 0xda, 0x6e, 0x97, 0xd9, 0xdb, 0x82, 0x67, 0x73, 0x6c, 0xed, 0xeb, 0xc8, 0xe5, 0x85, 0x57, -0x5b, 0x3e, 0x29, 0xac, 0xd7, 0xf6, 0x7a, 0x6b, 0x62, 0x0f, 0xed, 0x79, 0x28, 0x6e, 0x89, 0xdd, -0xd7, 0xd8, 0xed, 0xcd, 0x50, 0x2d, 0xe8, 0x01, 0xf7, 0xc5, 0xb3, 0x55, 0x1b, 0x24, 0x68, 0xeb, -0xfe, 0x67, 0xb5, 0xbd, 0xf1, 0x43, 0xaa, 0xec, 0x9e, 0xe8, 0x8e, 0x38, 0x26, 0x34, 0x76, 0xaf, -0x4c, 0x9e, 0xfa, 0x5f, 0xd2, 0x5a, 0xde, 0x0d, 0xd0, 0x31, 0xe1, 0x20, 0x9e, 0x31, 0xd6, 0xfc, -0xfd, 0xa3, 0x07, 0x9d, 0x3c, 0xfb, 0x7d, 0x98, 0x5b, 0x88, 0xe9, 0x4f, 0x8f, 0x8f, 0xf6, 0xb4, -0xc9, 0xbf, 0x7d, 0x5a, 0x95, 0xc3, 0x3d, 0xa7, 0xff, 0x57, 0xcd, 0xda, 0x33, 0x7d, 0xc0, 0xdb, -0x51, 0x47, 0xe6, 0x99, 0x0d, 0xa8, 0xe7, 0x60, 0x07, 0x3d, 0x7a, 0x04, 0xa3, 0xee, 0x0e, 0xbf, -0x0d, 0xd8, 0x1a, 0x68, 0x7a, 0x56, 0x1b, 0x18, 0x78, 0xcb, 0x81, 0x51, 0x07, 0x6f, 0x8f, 0x0f, -0xf5, 0xef, 0xb0, 0x38, 0x2b, 0x6d, 0x01, 0x0b, 0x0d, 0xcc, 0xd0, 0xfe, 0x9e, 0x5b, 0x00, 0x79, -0x3d, 0xab, 0x1d, 0x46, 0x6e, 0x3b, 0x54, 0xe9, 0xf4, 0x13, 0x5f, 0x0e, 0x6a, 0x3f, 0x13, 0x78, -0xcc, 0x06, 0xf6, 0xa6, 0x38, 0x2b, 0x23, 0x1d, 0x16, 0xf2, 0x65, 0x83, 0x3f, 0xee, 0x40, 0xaf, -0x7b, 0x32, 0x25, 0xe1, 0x0f, 0x3e, 0xab, 0x0d, 0x3a, 0x5a, 0xb4, 0x27, 0x91, 0xeb, 0xe3, 0x83, -0x2f, 0xd8, 0x2d, 0xce, 0x60, 0x4e, 0xce, 0xc1, 0x8c, 0x9e, 0x19, 0xda, 0xcf, 0x72, 0xbb, 0x63, -0x0f, 0x81, 0x7f, 0xee, 0x50, 0x6d, 0xa0, 0xda, 0x67, 0xb4, 0x81, 0xbf, 0x79, 0x0d, 0xb0, 0x3f, -0x21, 0x56, 0x63, 0x05, 0xad, 0xf7, 0x3f, 0xb4, 0x88, 0xb4, 0xa5, 0x80, 0xe4, 0x09, 0xfe, 0x36, -0x76, 0xff, 0x82, 0x6e, 0xf0, 0xe5, 0xe9, 0x94, 0xd9, 0x7f, 0xff, 0xbd, 0xbc, 0xbf, 0xde, 0xcd, -0x4f, 0x8b, 0x0e, 0xbd, 0x75, 0x9f, 0x62, 0xde, 0xf7, 0xac, 0x76, 0x68, 0x09, 0x5d, 0x59, 0xaa, -0x7f, 0x87, 0xd2, 0x9e, 0x19, 0x2b, 0x01, 0x09, 0x3e, 0xdc, 0xa9, 0xf3, 0x61, 0xdd, 0xb2, 0xcb, -0x91, 0xd6, 0xb4, 0x47, 0x82, 0xba, 0x6d, 0x57, 0x39, 0x41, 0x03, 0xcf, 0x75, 0xfb, 0xc8, 0xee, -0xf4, 0x91, 0xe2, 0xf2, 0x91, 0x53, 0x8c, 0xf9, 0x4e, 0x8c, 0x25, 0x1b, 0x12, 0x0e, 0x87, 0x5c, -0xd3, 0xdd, 0x0e, 0x2c, 0xdb, 0x20, 0x51, 0xfe, 0xf3, 0x8e, 0x33, 0x1b, 0x07, 0x66, 0x46, 0x68, -0xbe, 0xe1, 0x23, 0xc2, 0xf0, 0xc9, 0x60, 0x72, 0x48, 0x35, 0xdd, 0xab, 0x26, 0x1c, 0xec, 0x5d, -0x6d, 0xfa, 0xe7, 0x67, 0xcf, 0xdc, 0x8f, 0x52, 0x0a, 0x5e, 0x3f, 0x68, 0xb7, 0xe5, 0x64, 0x1e, -0x94, 0xe7, 0x1f, 0x8c, 0xf4, 0x44, 0x0e, 0x86, 0x7b, 0x2c, 0x19, 0x24, 0x27, 0xb2, 0x21, 0x1d, -0x64, 0xe9, 0x9e, 0x26, 0xc2, 0x95, 0xe0, 0x53, 0x95, 0x08, 0xcd, 0x4c, 0x64, 0x21, 0xd4, 0x1c, -0xed, 0x49, 0x48, 0x1d, 0x26, 0xbc, 0x9b, 0xf9, 0x3d, 0x81, 0xf7, 0x38, 0xde, 0xa3, 0x19, 0xcd, -0x16, 0x1e, 0xeb, 0xf1, 0x26, 0x47, 0x2b, 0x13, 0xf2, 0xfd, 0xb2, 0x2a, 0xd7, 0x64, 0x1e, 0x91, -0x6d, 0xeb, 0xea, 0xde, 0xa1, 0x72, 0x31, 0x4b, 0x30, 0x28, 0x66, 0x09, 0x22, 0x9e, 0x5a, 0x5f, -0x0d, 0x95, 0xfb, 0xe6, 0x50, 0xd0, 0x17, 0xa5, 0x70, 0x71, 0xb0, 0xdc, 0x14, 0x79, 0xa5, 0x34, -0x14, 0x79, 0x49, 0x8c, 0x35, 0xb9, 0xd7, 0x8e, 0x33, 0xa6, 0x21, 0x61, 0xab, 0x69, 0xf1, 0x4d, -0x72, 0x96, 0xd3, 0x70, 0xc3, 0x52, 0x25, 0x04, 0x3e, 0xa3, 0x87, 0xdc, 0xe0, 0x83, 0x8e, 0xe8, -0x08, 0xd5, 0x3f, 0x5c, 0x44, 0x22, 0x44, 0xf6, 0x4d, 0xe2, 0x58, 0xf4, 0x65, 0xa5, 0xe8, 0x21, -0xf1, 0x7e, 0x03, 0xc7, 0x72, 0xdf, 0x06, 0x2e, 0xbd, 0x2c, 0xf1, 0x37, 0x9b, 0xff, 0xfa, 0xc8, -0xf1, 0xfb, 0x1f, 0x3d, 0x12, 0x5d, 0xdf, 0x6c, 0xde, 0xb6, 0xfe, 0xad, 0xf5, 0x5d, 0xa4, 0xcb, -0xa2, 0x4a, 0xcd, 0xeb, 0x2f, 0xf7, 0x43, 0xc3, 0xf4, 0xd0, 0x63, 0xeb, 0xc5, 0x3e, 0x7b, 0xf0, -0xbd, 0x74, 0xc8, 0x5a, 0x25, 0x6b, 0xb0, 0x17, 0x12, 0xb0, 0xec, 0x36, 0x6d, 0xbf, 0x5f, 0xb1, -0x0e, 0xf6, 0xbe, 0xc8, 0xcf, 0x13, 0xb6, 0x6f, 0x8c, 0xae, 0x6b, 0xa3, 0x8c, 0xd5, 0xd1, 0x5e, -0xfc, 0x76, 0x46, 0x9f, 0xa7, 0x60, 0x82, 0x32, 0x9a, 0xab, 0x3e, 0x04, 0x8f, 0x2d, 0x14, 0x63, -0x5f, 0x21, 0x73, 0xd4, 0xa2, 0x89, 0xd1, 0x19, 0x82, 0xe3, 0xb6, 0x08, 0x8e, 0x5b, 0xfb, 0xe3, -0x7f, 0x00, 0x7f, 0x75, 0x0b, 0xfe, 0x2a, 0x15, 0x59, 0x58, 0x2e, 0x4d, 0x8d, 0x85, 0xa8, 0x4d, -0xb0, 0x61, 0x13, 0xf2, 0xd0, 0xbf, 0xb7, 0xf8, 0x56, 0x40, 0x07, 0x2b, 0x56, 0x6d, 0x48, 0x33, -0x49, 0x1f, 0x3d, 0x79, 0x46, 0x04, 0x63, 0xe3, 0xf3, 0x54, 0x0c, 0x19, 0xff, 0x87, 0x7a, 0xbe, -0xce, 0x19, 0x62, 0x84, 0xcd, 0xf6, 0xdd, 0xa0, 0xa7, 0x71, 0x62, 0x84, 0x45, 0x1b, 0x2d, 0x45, -0x88, 0x8f, 0xca, 0x95, 0x39, 0x3e, 0x48, 0x81, 0x78, 0x8a, 0x08, 0xed, 0x34, 0x03, 0x5c, 0x4f, -0x02, 0xde, 0xcc, 0xbe, 0x2c, 0x84, 0x2d, 0xd6, 0xf3, 0xf5, 0xba, 0x81, 0xa1, 0xe2, 0xa2, 0x87, -0x66, 0x67, 0x42, 0xb6, 0x90, 0x71, 0x65, 0xe0, 0x62, 0x19, 0x4b, 0x12, 0x79, 0x82, 0x5f, 0x0b, -0xab, 0xd4, 0x19, 0x82, 0x97, 0x66, 0x23, 0xb4, 0x68, 0x1c, 0x2f, 0x05, 0xac, 0x2d, 0xb9, 0xa2, -0xb4, 0xd2, 0xf1, 0x31, 0x3a, 0x04, 0xa9, 0xfa, 0xe9, 0x61, 0xe0, 0xab, 0x35, 0x46, 0xeb, 0x59, -0xf4, 0xf6, 0xe4, 0x16, 0x1a, 0xdb, 0x9e, 0xdc, 0x82, 0xa3, 0xed, 0x69, 0xb4, 0x5f, 0xba, 0x3d, -0x19, 0x03, 0xe2, 0x8b, 0x20, 0x35, 0x09, 0x9e, 0xdd, 0x46, 0x7e, 0x6e, 0xdb, 0x17, 0x06, 0x16, -0xcb, 0xbe, 0x08, 0x45, 0xfe, 0xef, 0xb4, 0xb1, 0x69, 0x1b, 0xb7, 0xb1, 0x69, 0xb3, 0xde, 0xc6, -0xa6, 0x3e, 0xdf, 0x3c, 0xd4, 0x75, 0x2e, 0xd5, 0xfd, 0xcd, 0x6b, 0x21, 0xb4, 0x45, 0x27, 0x7b, -0xae, 0x69, 0xf2, 0x55, 0xd1, 0x82, 0xa2, 0x4c, 0x8f, 0xec, 0xbd, 0x01, 0xdc, 0x97, 0xe7, 0x83, -0x4a, 0x21, 0x07, 0x58, 0x1a, 0x93, 0x1d, 0x9f, 0xed, 0x4a, 0x2e, 0x61, 0x4d, 0xcf, 0x04, 0x38, -0x8b, 0xff, 0x79, 0xc7, 0x80, 0x9e, 0x47, 0xd6, 0xf7, 0x7f, 0xe9, 0x66, 0x0b, 0xb1, 0x4b, 0xe0, -0x4d, 0x37, 0xfa, 0x4c, 0x48, 0xbf, 0x20, 0xf2, 0x9d, 0x3e, 0xf2, 0x55, 0x52, 0x71, 0x8a, 0x27, -0xa1, 0xaf, 0xd7, 0xb9, 0xa6, 0x93, 0x05, 0x9c, 0xb9, 0x06, 0xf0, 0xda, 0x50, 0xe7, 0x06, 0x1f, -0x73, 0x80, 0x85, 0x91, 0xef, 0x6c, 0x4f, 0xaf, 0xf9, 0x72, 0x49, 0x90, 0x81, 0x2c, 0xc7, 0x92, -0x82, 0xc6, 0xd7, 0x2e, 0xb1, 0x28, 0x19, 0x83, 0xdd, 0xfd, 0x3d, 0x8b, 0x72, 0xf7, 0xf4, 0x2c, -0xc9, 0x82, 0xde, 0xd4, 0x30, 0xd8, 0xd3, 0xbf, 0x76, 0x91, 0x99, 0xfd, 0xc8, 0x50, 0xef, 0x7e, -0x96, 0x01, 0x1d, 0xa8, 0x47, 0x38, 0x6e, 0x57, 0x4c, 0x63, 0xc7, 0x29, 0x2f, 0x6b, 0x04, 0x16, -0xa4, 0xd9, 0x09, 0x9e, 0x13, 0xe6, 0x91, 0x46, 0xc8, 0x92, 0xd9, 0x5c, 0xce, 0x1d, 0x2c, 0x65, -0x5b, 0x57, 0x92, 0x9a, 0xcf, 0x2d, 0x1a, 0xe9, 0x2c, 0x25, 0x9f, 0x14, 0xe9, 0xc0, 0x6f, 0x76, -0xfd, 0xbe, 0x4f, 0x97, 0xc7, 0xd6, 0xf2, 0x0c, 0xc6, 0xbe, 0xb5, 0xf1, 0x53, 0xaa, 0x4b, 0xc4, -0xb7, 0x1f, 0xe6, 0xf8, 0xf6, 0x1d, 0xfc, 0x7d, 0x84, 0xc2, 0x48, 0x53, 0x03, 0x28, 0xc3, 0xb1, -0x3e, 0x91, 0xae, 0x2f, 0xfe, 0x56, 0xec, 0xc1, 0x17, 0x1f, 0x84, 0xf6, 0x61, 0x76, 0xca, 0xb1, -0x9e, 0x18, 0x30, 0xb8, 0xe0, 0x79, 0x2a, 0xc5, 0x55, 0x07, 0x68, 0x8b, 0xfb, 0x9f, 0xa7, 0x48, -0x9c, 0xae, 0x0c, 0x30, 0xa4, 0x89, 0xa9, 0x3a, 0xa4, 0x8e, 0x7a, 0x86, 0x67, 0x8c, 0x7e, 0x68, -0xee, 0xb4, 0x08, 0x1b, 0x35, 0xc9, 0x98, 0x79, 0xf0, 0xd7, 0x7f, 0xe7, 0x2f, 0x36, 0x41, 0xbb, -0xae, 0x70, 0xb7, 0x91, 0x1b, 0x7c, 0xb1, 0xd8, 0xd3, 0x46, 0xe5, 0xae, 0x36, 0x0a, 0xf2, 0x2c, -0xbf, 0x2e, 0x89, 0x3a, 0x59, 0x1b, 0xb2, 0x38, 0x27, 0x19, 0xba, 0x5c, 0x88, 0xb5, 0x23, 0xc7, -0x0a, 0xa9, 0xb7, 0x61, 0x83, 0x52, 0x55, 0x0d, 0x0a, 0x4b, 0xd9, 0xa0, 0xb1, 0xf5, 0x1c, 0xa0, -0x55, 0x7e, 0x7c, 0x30, 0x61, 0x55, 0xdc, 0xda, 0x48, 0xff, 0xd3, 0x52, 0x67, 0x42, 0x52, 0xc2, -0x81, 0xaf, 0x17, 0xb7, 0x90, 0xfc, 0xe8, 0xab, 0xb1, 0xfb, 0xcb, 0x5b, 0x48, 0x2a, 0x6b, 0x21, -0xf3, 0xf7, 0x5f, 0x8b, 0x3d, 0xe8, 0x9b, 0x24, 0x68, 0xdc, 0xe2, 0xf3, 0x0a, 0xea, 0xcc, 0x12, -0x16, 0x5e, 0x19, 0xbe, 0x5c, 0x84, 0x2e, 0x10, 0x97, 0x17, 0xfd, 0xc0, 0x4b, 0x96, 0x74, 0x3f, -0x2b, 0x15, 0x16, 0xa0, 0x59, 0xa2, 0x67, 0x89, 0xf6, 0xd3, 0x3d, 0x91, 0x75, 0x15, 0x2c, 0x10, -0xb6, 0xc0, 0xda, 0x09, 0x43, 0xfe, 0x0e, 0x16, 0x99, 0x9c, 0xb5, 0x3a, 0xe4, 0x4c, 0x47, 0x2a, -0xf7, 0x26, 0x43, 0x86, 0x6e, 0xd8, 0xc4, 0xb6, 0x03, 0xa0, 0xa1, 0x9e, 0xc2, 0x1a, 0x5d, 0x16, -0xb3, 0x78, 0xc8, 0x4c, 0x0a, 0x34, 0xcf, 0x1f, 0xf0, 0xec, 0x88, 0xcd, 0x43, 0x5f, 0x8a, 0x24, -0xc5, 0xec, 0x43, 0xa9, 0x31, 0x1e, 0x72, 0x3e, 0x45, 0x90, 0x9f, 0x6c, 0x22, 0xd4, 0xe9, 0x28, -0x92, 0xa3, 0x31, 0xb6, 0x2c, 0xba, 0xc8, 0xab, 0x5f, 0x57, 0xdb, 0xe6, 0x31, 0x4c, 0x91, 0x81, -0x69, 0x41, 0x8a, 0x19, 0xb9, 0xe5, 0xff, 0xa7, 0xe4, 0x36, 0xff, 0x26, 0x9e, 0x79, 0xfe, 0x66, -0xc8, 0x43, 0x8b, 0xda, 0x35, 0xbc, 0xdf, 0x8d, 0x9c, 0x0b, 0x72, 0x28, 0xd2, 0x1d, 0x39, 0xc0, -0x5b, 0xde, 0x13, 0x16, 0x61, 0x4b, 0xbd, 0x48, 0xcd, 0xc7, 0x9b, 0x49, 0xbc, 0x65, 0xd1, 0x37, -0x55, 0xab, 0x44, 0xda, 0xa7, 0x71, 0xf3, 0x4d, 0xec, 0xcd, 0x65, 0xd1, 0xb4, 0x56, 0x40, 0x10, -0x6d, 0x0f, 0x0e, 0xac, 0x3f, 0xd5, 0xd7, 0xf1, 0xbd, 0x1a, 0xd3, 0xc1, 0xf5, 0x67, 0x36, 0x24, -0xbb, 0x3b, 0x94, 0x83, 0xeb, 0x87, 0xba, 0x71, 0xb7, 0x1d, 0xed, 0x7e, 0xf7, 0xa1, 0xe4, 0xfa, -0xb3, 0x7d, 0x37, 0x05, 0xe9, 0x9b, 0xb3, 0x20, 0x41, 0xce, 0xaa, 0xd2, 0x3e, 0x6c, 0x0c, 0x1f, -0x0f, 0xcd, 0x0a, 0x6b, 0x17, 0x1a, 0xab, 0xdf, 0xaa, 0x9a, 0x55, 0xad, 0x7d, 0x3c, 0xab, 0x4e, -0x1b, 0x99, 0x35, 0x87, 0x67, 0x04, 0xd2, 0x16, 0xf8, 0xcb, 0xa9, 0x1e, 0x10, 0x9f, 0x88, 0xac, -0xfe, 0x6c, 0x3f, 0x4b, 0x9a, 0x62, 0xad, 0x8c, 0xe7, 0xa1, 0x4e, 0x96, 0x9c, 0x15, 0x52, 0x69, -0x8a, 0xc3, 0xcd, 0xd0, 0xce, 0x8e, 0xe7, 0x70, 0x62, 0xcc, 0xde, 0xad, 0x8f, 0xd9, 0x91, 0x77, -0x15, 0xbf, 0xb3, 0xd6, 0x55, 0x2b, 0xa0, 0xcf, 0x75, 0x50, 0xa8, 0x32, 0x52, 0x39, 0x9b, 0xc0, -0x45, 0xd3, 0x1e, 0xd1, 0x9c, 0x74, 0xfa, 0x7e, 0x48, 0x7a, 0x72, 0xe8, 0x31, 0x96, 0xee, 0xe2, -0xec, 0xab, 0x05, 0xf5, 0x1c, 0xea, 0x1e, 0xea, 0x0e, 0x7d, 0xdb, 0x0e, 0x1a, 0xb0, 0xca, 0x86, -0x0e, 0x26, 0x68, 0xa0, 0x08, 0x7c, 0xdd, 0x33, 0x03, 0xa3, 0x7d, 0x0b, 0x15, 0xb8, 0x5a, 0x48, -0xf1, 0x37, 0x93, 0xbc, 0xf9, 0x98, 0xcb, 0x12, 0x5b, 0x8b, 0x27, 0xf3, 0xe6, 0xf3, 0x24, 0xf1, -0xec, 0x32, 0xcb, 0xc7, 0x24, 0x5f, 0x8f, 0xc2, 0x9d, 0x21, 0xaf, 0x27, 0x4d, 0xe1, 0xd5, 0xd5, -0xba, 0xdd, 0xc5, 0x28, 0x85, 0xa3, 0x8e, 0x57, 0x51, 0x78, 0x0d, 0xf2, 0x82, 0x56, 0x10, 0xf0, -0x92, 0x14, 0x68, 0x72, 0xce, 0x71, 0x7a, 0xc8, 0xd2, 0xf5, 0x67, 0x27, 0xd8, 0x86, 0xb3, 0x46, -0xb7, 0x02, 0x9a, 0xd5, 0x42, 0xd9, 0xda, 0x59, 0xfc, 0xe6, 0x68, 0xe7, 0x58, 0xb3, 0x99, 0x55, -0xab, 0x5d, 0x98, 0x55, 0x09, 0x8c, 0x56, 0x69, 0x17, 0x81, 0xe1, 0x4f, 0xc4, 0x4a, 0x6a, 0x0b, -0xd9, 0xb5, 0xd3, 0x06, 0x0d, 0x9c, 0x18, 0xa5, 0x01, 0x41, 0xf5, 0x19, 0xa3, 0x33, 0xaa, 0x82, -0xea, 0x47, 0xb1, 0xf7, 0x75, 0xed, 0x38, 0xd7, 0xd9, 0x1d, 0x41, 0x1e, 0xc7, 0x8b, 0x4c, 0xae, -0x5a, 0xc1, 0x6f, 0x9f, 0x11, 0xbc, 0xf7, 0x47, 0xbf, 0xa7, 0x17, 0x9c, 0x46, 0x2f, 0x58, 0x5f, -0x58, 0x87, 0x5e, 0x10, 0xd5, 0xce, 0x5a, 0x0a, 0xd3, 0xbd, 0x60, 0x05, 0xe8, 0xb6, 0xf0, 0x3f, -0xa3, 0x17, 0xdc, 0xca, 0xbd, 0x40, 0xcf, 0x2d, 0xff, 0x3f, 0x25, 0xb7, 0xf9, 0x37, 0xeb, 0xbd, -0xa0, 0x90, 0x7b, 0xc1, 0xad, 0xdc, 0x0b, 0x0a, 0xc7, 0xf7, 0x82, 0x9b, 0xc7, 0xf5, 0x82, 0x9b, -0xc7, 0xf5, 0x82, 0x9b, 0x45, 0x2f, 0xb8, 0xf5, 0x8f, 0xec, 0x05, 0x37, 0xff, 0x9e, 0x5e, 0xe0, -0x9f, 0xa1, 0xbd, 0x35, 0x2b, 0x78, 0x4d, 0x4f, 0x58, 0x91, 0xee, 0x09, 0xab, 0xd3, 0x3d, 0x61, -0xd2, 0x98, 0x9e, 0xe0, 0x4d, 0xf7, 0x84, 0xd3, 0xd7, 0xe9, 0x09, 0xfd, 0x46, 0x5b, 0x1e, 0xe3, -0xb6, 0x74, 0xb6, 0x40, 0x2f, 0x9d, 0x41, 0x36, 0xc8, 0x3d, 0x05, 0x65, 0xb6, 0xd2, 0xa5, 0x24, -0x6f, 0x7f, 0x39, 0xb6, 0xb1, 0xd4, 0x4d, 0x52, 0x09, 0x24, 0xbd, 0x6d, 0x87, 0x62, 0x0f, 0x14, -0x79, 0xa0, 0x23, 0x4e, 0xf0, 0x99, 0x53, 0x34, 0xe1, 0x5d, 0x4e, 0xd6, 0xdf, 0x0c, 0xf8, 0x97, -0x43, 0xba, 0x9d, 0x41, 0xd6, 0x63, 0x7d, 0x52, 0x0f, 0x9b, 0xb6, 0x36, 0x5b, 0x1a, 0x7b, 0xda, -0x2f, 0xf4, 0x26, 0x63, 0x3d, 0x25, 0x1e, 0xca, 0x45, 0x6c, 0x7e, 0xa0, 0xca, 0x37, 0x31, 0xd2, -0xbe, 0x54, 0x8c, 0x80, 0x15, 0x61, 0xd0, 0x56, 0xa8, 0x59, 0x36, 0x87, 0xd8, 0x0b, 0x52, 0xb3, -0x34, 0x58, 0x05, 0x9e, 0x65, 0xe9, 0xa0, 0x1c, 0xf0, 0x16, 0x07, 0x7a, 0x8d, 0x77, 0xba, 0x5c, -0x73, 0xcf, 0x7a, 0x50, 0xf0, 0x31, 0x41, 0x99, 0xc7, 0x21, 0xf7, 0x9f, 0x98, 0xc5, 0xb4, 0x1c, -0xd4, 0x4e, 0x01, 0x2f, 0xa7, 0x67, 0x2d, 0xa7, 0x3c, 0xed, 0x0c, 0x53, 0xcf, 0x2c, 0xd6, 0xf9, -0xeb, 0xb5, 0x0f, 0xa1, 0xdf, 0x7e, 0x1c, 0x00, 0xa5, 0x83, 0xba, 0x3f, 0x01, 0xa6, 0x2e, 0x01, -0x6b, 0x97, 0x05, 0xcf, 0x98, 0xab, 0x5d, 0x41, 0x8e, 0xb9, 0x86, 0x3e, 0x7a, 0x2c, 0x65, 0xa9, -0x07, 0x89, 0x6a, 0x92, 0x5e, 0x03, 0x9e, 0x27, 0x12, 0x78, 0x78, 0xc6, 0xc0, 0xc3, 0xa0, 0xc0, -0x43, 0xad, 0xc7, 0xe2, 0x0a, 0xba, 0x2b, 0xd1, 0x83, 0x86, 0xa0, 0x59, 0xbd, 0xe9, 0xcd, 0xe6, -0x39, 0x68, 0x63, 0xa5, 0xfb, 0x49, 0xc0, 0x73, 0x0a, 0x7d, 0xe9, 0x0c, 0xb4, 0xe9, 0x73, 0xd0, -0x1a, 0xfe, 0xac, 0xd9, 0xca, 0xfd, 0x39, 0x54, 0x99, 0x03, 0xbd, 0x41, 0x85, 0x5c, 0x0d, 0xa8, -0x2e, 0xb0, 0x04, 0xdf, 0x2c, 0x85, 0x93, 0xab, 0x4c, 0x27, 0x9f, 0x01, 0x34, 0x1f, 0x02, 0x12, -0xe6, 0x62, 0x17, 0xc1, 0xf5, 0x25, 0x2a, 0x98, 0x3f, 0x10, 0x26, 0xe8, 0x38, 0x9f, 0xf8, 0x2b, -0x91, 0xd7, 0x5b, 0xcc, 0xb1, 0xd3, 0xfd, 0xc5, 0xce, 0xbd, 0x0c, 0xd4, 0xf8, 0x36, 0xbe, 0xb8, -0x84, 0x2f, 0x2e, 0xa3, 0xd5, 0x8f, 0x71, 0xab, 0x07, 0x66, 0x68, 0xc7, 0x91, 0xf3, 0x15, 0x9f, -0xd9, 0xd8, 0x53, 0xd4, 0xa2, 0xbd, 0x15, 0x59, 0x7d, 0xa5, 0x86, 0xad, 0x2b, 0x43, 0x7f, 0xab, -0xf3, 0xbe, 0x59, 0xbc, 0xd6, 0xa4, 0xa8, 0x0b, 0xa3, 0xeb, 0x12, 0x4d, 0x62, 0xf5, 0xee, 0xb1, -0x22, 0x6a, 0xff, 0x74, 0xe0, 0x3e, 0x9e, 0xef, 0x88, 0x67, 0xb5, 0xcb, 0x03, 0xf7, 0xf1, 0x5e, -0x81, 0x2b, 0x3f, 0x50, 0x66, 0x68, 0x43, 0x9b, 0x1f, 0x40, 0x29, 0x43, 0xd0, 0x15, 0xdf, 0xfc, -0x9b, 0xa3, 0x4a, 0x75, 0x3b, 0x39, 0x64, 0x47, 0xd4, 0x39, 0xc9, 0x65, 0x75, 0x23, 0x2e, 0xd6, -0xeb, 0xc9, 0x8e, 0xad, 0xf3, 0xd6, 0xf0, 0x8c, 0xad, 0x23, 0xaa, 0x4c, 0xe0, 0xa7, 0x2b, 0x3f, -0x50, 0x79, 0x37, 0xc8, 0x6b, 0x02, 0x5b, 0x3b, 0x74, 0xfe, 0x09, 0x0d, 0xe1, 0x02, 0x6b, 0x08, -0x25, 0x6d, 0x54, 0x53, 0xda, 0x46, 0x51, 0x8c, 0xc1, 0x41, 0x5f, 0x03, 0x79, 0xe3, 0xc5, 0x3c, -0xf3, 0xa9, 0x4c, 0x72, 0xb0, 0x65, 0x74, 0x5d, 0xb1, 0x8f, 0x62, 0x62, 0xf5, 0x64, 0x7e, 0xe4, -0x25, 0xe8, 0x41, 0xec, 0x77, 0x71, 0xa1, 0xd7, 0x47, 0xea, 0x1a, 0xed, 0xd1, 0x23, 0x90, 0x5b, -0x16, 0xeb, 0xd6, 0x85, 0xa6, 0xe3, 0xc6, 0xf8, 0xab, 0x8e, 0xf1, 0x46, 0xe9, 0xe7, 0x78, 0x67, -0x1b, 0x79, 0x7d, 0x37, 0x78, 0x18, 0xf2, 0x06, 0xcf, 0x5f, 0x7a, 0x40, 0x2b, 0x2c, 0x79, 0x55, -0xfe, 0x6b, 0x9f, 0x06, 0x49, 0xa5, 0x98, 0x65, 0xab, 0xaa, 0x8b, 0xdb, 0x35, 0x5f, 0x2d, 0x95, -0x22, 0x97, 0x0e, 0x4e, 0x5d, 0x0c, 0x2a, 0x8d, 0x1c, 0x84, 0xb4, 0x68, 0x8b, 0x0c, 0x40, 0x4e, -0xec, 0x29, 0x05, 0x4f, 0x2e, 0x9f, 0x41, 0x39, 0xbc, 0xca, 0xed, 0x6f, 0xa1, 0xbc, 0x7d, 0x90, -0x5f, 0x16, 0x91, 0x29, 0x1c, 0x39, 0xb4, 0xbd, 0xe7, 0x27, 0x87, 0x5a, 0xc9, 0x54, 0x16, 0xa8, -0x2d, 0xaf, 0xf9, 0x9b, 0x57, 0x7f, 0x8e, 0xb1, 0x1e, 0xe1, 0x5e, 0x7f, 0xe4, 0xe1, 0x57, 0x7f, -0x7a, 0x18, 0xe1, 0x0e, 0xc7, 0x0c, 0x96, 0xa1, 0x40, 0xc5, 0x53, 0xa1, 0x29, 0x2f, 0x0e, 0xbf, -0x94, 0x70, 0x77, 0x4e, 0x1e, 0xe8, 0xd9, 0xf7, 0x40, 0x6b, 0x96, 0x63, 0xee, 0x23, 0x2f, 0x0f, -0x6e, 0x08, 0x49, 0xaa, 0xec, 0xcc, 0xdc, 0xfa, 0xc0, 0xcf, 0x8f, 0x36, 0x9b, 0x1d, 0x75, 0x8f, -0xbc, 0xa6, 0x2e, 0x75, 0xd6, 0x3f, 0x7a, 0xf4, 0x91, 0x57, 0xd5, 0x45, 0x0c, 0x07, 0xca, 0xf3, -0x22, 0xad, 0x45, 0x99, 0xb4, 0x79, 0x43, 0x27, 0xa9, 0x16, 0x25, 0x73, 0xf3, 0x06, 0x4e, 0x6d, -0xc4, 0x15, 0xfd, 0xfc, 0x68, 0xab, 0xc5, 0x59, 0xf7, 0xe8, 0xab, 0x8e, 0xa8, 0xea, 0xc7, 0x77, -0x7c, 0x9f, 0x8a, 0xb8, 0x20, 0x5b, 0xbc, 0xec, 0x7b, 0xa0, 0xc5, 0xcc, 0x69, 0x55, 0xb3, 0x32, -0x69, 0xb0, 0xa7, 0x93, 0x7e, 0x7e, 0xb4, 0xc5, 0x12, 0xa8, 0xe1, 0xdc, 0x55, 0x33, 0xea, 0x0b, -0xed, 0xfa, 0x27, 0x2f, 0x37, 0xcb, 0x8f, 0x3d, 0xa0, 0x4a, 0xab, 0x69, 0x2f, 0xea, 0xb3, 0xd8, -0xbc, 0xfd, 0x81, 0x58, 0x2f, 0xb4, 0x78, 0x60, 0x71, 0xfb, 0xba, 0x9f, 0xbe, 0xd6, 0x2c, 0xff, -0xcd, 0x51, 0xde, 0x09, 0xc7, 0xeb, 0x9b, 0x8b, 0x2d, 0x0f, 0x1f, 0xf5, 0x58, 0x62, 0xeb, 0x54, -0x99, 0x71, 0xff, 0xd8, 0x43, 0xec, 0xae, 0x03, 0xfa, 0xe2, 0xb3, 0x64, 0x89, 0xdb, 0x2c, 0x33, -0x78, 0x57, 0x5e, 0x9c, 0x71, 0xaa, 0x96, 0x43, 0x42, 0x0b, 0x99, 0xd9, 0x43, 0x23, 0x69, 0x4a, -0xa5, 0x63, 0xa2, 0x90, 0x66, 0xb3, 0xc6, 0xb6, 0x13, 0xf4, 0x91, 0xcc, 0x54, 0xfb, 0x3c, 0xfc, -0x3c, 0xf9, 0x3d, 0x5f, 0x17, 0x76, 0x49, 0x16, 0xc8, 0x7c, 0xfe, 0x56, 0xba, 0xd2, 0xcb, 0xe9, -0x1c, 0x7a, 0x7b, 0x81, 0xfe, 0xae, 0x44, 0x3d, 0x7f, 0x69, 0x48, 0x7b, 0x36, 0x63, 0x9c, 0x3c, -0x9d, 0xe6, 0x33, 0xdc, 0x2f, 0xc1, 0x67, 0x4a, 0x6c, 0x01, 0xd0, 0xca, 0x96, 0x97, 0x8a, 0x26, -0xc6, 0xee, 0x2b, 0x06, 0xa7, 0x01, 0xd7, 0x31, 0x6f, 0x3f, 0x18, 0xdb, 0xe8, 0x06, 0x0e, 0x78, -0xc7, 0xdc, 0x9f, 0x2f, 0x46, 0x99, 0x68, 0x49, 0xf6, 0x01, 0x3b, 0xb8, 0x25, 0xdf, 0x43, 0x13, -0xdf, 0x9a, 0x41, 0x93, 0xa5, 0x75, 0x62, 0x7e, 0x82, 0x79, 0x46, 0x96, 0xc2, 0x3c, 0xc3, 0x2d, -0xd7, 0xdc, 0xcd, 0x3c, 0xe3, 0xb4, 0xe0, 0x19, 0xc2, 0x46, 0x17, 0xfd, 0xf3, 0x02, 0xb8, 0xc1, -0x45, 0xf0, 0x8c, 0x4f, 0xc0, 0x3f, 0x2e, 0x81, 0x6f, 0xea, 0x5c, 0x01, 0xbd, 0x48, 0x69, 0x15, -0x1c, 0xe1, 0xb4, 0x2f, 0xdb, 0xe0, 0x08, 0x13, 0x7c, 0x56, 0x7d, 0xc7, 0x9e, 0xa0, 0xef, 0xfd, -0x06, 0x37, 0x38, 0x0f, 0xfd, 0x5d, 0xe2, 0xdd, 0x27, 0xe8, 0x81, 0x17, 0x31, 0x4e, 0x5c, 0xb0, -0x4c, 0x1f, 0xdb, 0x7f, 0x45, 0xae, 0x55, 0xda, 0x65, 0x83, 0x53, 0x8f, 0x18, 0x9c, 0xfa, 0x8a, -0xbe, 0x93, 0x51, 0xf4, 0xd1, 0xf3, 0x91, 0xd5, 0x5a, 0x96, 0xd1, 0x47, 0x27, 0x8e, 0xf6, 0xd1, -0xba, 0x0f, 0x82, 0xe5, 0xda, 0x71, 0x61, 0x57, 0xc3, 0x7b, 0x31, 0x1e, 0x17, 0xbf, 0x62, 0x66, -0x63, 0xa2, 0xb9, 0x61, 0x53, 0x28, 0xa8, 0xef, 0x91, 0x70, 0xf1, 0xce, 0x20, 0x4b, 0x6c, 0x29, -0x15, 0xf0, 0xdd, 0xef, 0xa6, 0x82, 0xfe, 0xa5, 0x34, 0x15, 0xa3, 0xe5, 0x66, 0xa7, 0x58, 0x0b, -0x8b, 0x07, 0xdb, 0x5d, 0xd7, 0x5d, 0x8b, 0xea, 0x60, 0xcb, 0x1c, 0x25, 0xd9, 0x5e, 0x7e, 0xed, -0x2e, 0x29, 0xb2, 0x26, 0xd8, 0xca, 0xd8, 0x76, 0x3b, 0x8f, 0x52, 0x53, 0xc1, 0x7b, 0x6c, 0x0e, -0xa4, 0x75, 0xf0, 0xca, 0xdf, 0xc3, 0x63, 0xdf, 0x6e, 0x59, 0x86, 0x9a, 0x4a, 0x22, 0x1f, 0x8c, -0x97, 0xfe, 0xfd, 0xa3, 0xcf, 0xb7, 0x44, 0x49, 0x5a, 0xb8, 0x93, 0x6c, 0xb1, 0xe5, 0x54, 0x70, -0x6b, 0x94, 0xd7, 0xe6, 0x16, 0xee, 0x00, 0xde, 0x8c, 0x7d, 0x19, 0x3a, 0x4f, 0x50, 0x2a, 0x5c, -0x91, 0xe8, 0x72, 0xca, 0x02, 0xac, 0xaf, 0xdc, 0xbe, 0x8c, 0xad, 0x5f, 0xf0, 0x6b, 0xc1, 0xf7, -0x28, 0x21, 0x2d, 0xf9, 0xe8, 0x3a, 0xb0, 0x65, 0x54, 0x07, 0x16, 0xfe, 0x37, 0x3b, 0x53, 0x2b, -0x27, 0x7a, 0x3a, 0xf7, 0x52, 0x48, 0x48, 0x72, 0x2d, 0x34, 0x74, 0xe8, 0x05, 0xd6, 0xf6, 0xac, -0xc1, 0xe7, 0xe4, 0x18, 0x38, 0x83, 0xdd, 0x17, 0xa2, 0x02, 0x68, 0x72, 0x0a, 0x2e, 0x27, 0x8f, -0xdc, 0x73, 0x3f, 0x42, 0xd8, 0x0d, 0xa9, 0xb1, 0xbb, 0x24, 0x68, 0xe4, 0xe6, 0x16, 0x5f, 0x59, -0x53, 0x5f, 0xcd, 0xe6, 0xd1, 0xb8, 0x80, 0xd3, 0x8f, 0xa6, 0xe5, 0x71, 0xfe, 0xaf, 0x7e, 0x91, -0x82, 0xac, 0x25, 0xef, 0x5a, 0x7d, 0x59, 0xc4, 0x4f, 0xe2, 0x3d, 0x5f, 0x3a, 0x25, 0x8b, 0xd6, -0xfa, 0x85, 0xf8, 0x3d, 0x9e, 0x6a, 0xb3, 0x94, 0x4d, 0x98, 0xee, 0x17, 0x53, 0xcc, 0xc5, 0x3b, -0x6f, 0xa9, 0x05, 0x17, 0x6c, 0x25, 0x87, 0x83, 0x2d, 0xa8, 0xdd, 0x4a, 0xab, 0xe9, 0xf1, 0xd1, -0xf9, 0x72, 0x47, 0x33, 0x39, 0x8c, 0x95, 0xbf, 0x1f, 0x2a, 0x77, 0x41, 0x87, 0xdb, 0xfa, 0x93, -0xc3, 0xec, 0xe1, 0xd4, 0x82, 0x51, 0x44, 0x48, 0x44, 0x1b, 0x19, 0x07, 0x62, 0xcc, 0xb1, 0xf1, -0xbc, 0xbe, 0x6e, 0x1f, 0xc4, 0x6b, 0x4d, 0xaa, 0x7d, 0x3c, 0x86, 0x5c, 0x02, 0x43, 0x73, 0xce, -0x4b, 0x4e, 0x1e, 0xd7, 0x74, 0x9b, 0xbf, 0x4f, 0x87, 0x9d, 0xbc, 0x02, 0xc5, 0x3b, 0x8a, 0x1c, -0x1d, 0x05, 0x43, 0xcf, 0x40, 0x22, 0x64, 0x29, 0x07, 0xf4, 0x8a, 0x9e, 0x31, 0x72, 0xb5, 0xa4, -0x23, 0xbe, 0x43, 0x4a, 0xe1, 0x57, 0x74, 0xf8, 0xb2, 0x98, 0xd7, 0x55, 0xb3, 0x8c, 0xd5, 0x07, -0xd2, 0x96, 0x2a, 0xcd, 0x63, 0x20, 0x7f, 0xa5, 0xea, 0x1c, 0x7a, 0x6f, 0x6a, 0x77, 0xe0, 0x7a, -0xbc, 0xb9, 0x47, 0xdf, 0x84, 0x1f, 0xc9, 0x61, 0xdd, 0x5e, 0xac, 0x3c, 0xe0, 0xac, 0x75, 0x67, -0xeb, 0xe3, 0x90, 0x87, 0x78, 0x94, 0xeb, 0xb0, 0xf0, 0xbc, 0x18, 0x20, 0xcb, 0xcc, 0x0a, 0x12, -0xc6, 0x1b, 0x6f, 0x98, 0xc7, 0x95, 0x92, 0xe5, 0x86, 0x75, 0x42, 0xc5, 0x5f, 0x0d, 0x34, 0xf2, -0x5a, 0x71, 0x31, 0x28, 0x3d, 0x57, 0x09, 0x3a, 0xa2, 0x08, 0x73, 0x46, 0x06, 0x1c, 0x93, 0x98, -0xd7, 0xbb, 0x2c, 0x22, 0xf5, 0x6b, 0x18, 0x8f, 0x32, 0xf5, 0xef, 0x40, 0x71, 0xe5, 0xa2, 0x97, -0x82, 0xa7, 0x54, 0x38, 0x9c, 0x91, 0xc0, 0x74, 0x92, 0x8b, 0xa7, 0xec, 0x66, 0xdb, 0xc4, 0xcb, -0x6c, 0x57, 0xea, 0x07, 0x05, 0xf7, 0x47, 0x5a, 0x88, 0xce, 0x97, 0xb1, 0xe5, 0x43, 0x35, 0x9e, -0x4e, 0xf1, 0x2a, 0xfc, 0x1e, 0x0e, 0x3b, 0x5e, 0x9e, 0xb3, 0xab, 0x06, 0xf7, 0xc1, 0x52, 0xf0, -0x99, 0xdd, 0x61, 0x7c, 0xf3, 0xca, 0xfe, 0x50, 0x4b, 0xde, 0xbe, 0x48, 0x4b, 0xce, 0xde, 0xca, -0xd6, 0xec, 0x3d, 0xc1, 0xd6, 0x2c, 0xdd, 0x96, 0x8e, 0xed, 0x3c, 0xaf, 0x67, 0xa3, 0xa7, 0x4c, -0x71, 0x4c, 0x17, 0x96, 0x88, 0xe7, 0x99, 0x2f, 0x20, 0xe4, 0x34, 0xef, 0x66, 0x1b, 0x63, 0xb9, -0xe7, 0x11, 0xf6, 0x88, 0xa7, 0x53, 0x96, 0x88, 0xfe, 0x18, 0xff, 0x32, 0xcd, 0x1c, 0xff, 0xe4, -0xff, 0xa6, 0xcd, 0x5e, 0xdd, 0x07, 0xe1, 0x2e, 0xed, 0x70, 0x7a, 0x6d, 0xe8, 0x82, 0xe0, 0xb7, -0x63, 0xec, 0x39, 0x5d, 0xa0, 0x38, 0x53, 0x01, 0xe4, 0x36, 0x8b, 0xd0, 0xd6, 0x8b, 0x79, 0x5e, -0x3a, 0xd0, 0xb8, 0xab, 0xb6, 0xc5, 0xc3, 0xf3, 0xe3, 0xfe, 0x15, 0x02, 0x67, 0x53, 0xcb, 0x19, -0x63, 0x35, 0x2d, 0x79, 0xc0, 0x8e, 0x79, 0x6f, 0xa4, 0x25, 0xbb, 0x22, 0x67, 0xd7, 0x9c, 0x16, -0x4b, 0x19, 0x8f, 0x4b, 0xb5, 0xcd, 0x0d, 0x3e, 0x49, 0x58, 0xee, 0x65, 0x5f, 0x65, 0xd3, 0xb9, -0xff, 0x4f, 0xb2, 0xe9, 0x24, 0x7a, 0xe8, 0xc5, 0xda, 0x16, 0x2b, 0xd4, 0x38, 0xcb, 0xbe, 0xca, -0x56, 0x79, 0x6f, 0xb0, 0xed, 0x0f, 0x58, 0x79, 0x1a, 0x98, 0xbd, 0x30, 0xd6, 0xc6, 0xf3, 0xba, -0x98, 0xfd, 0x13, 0xac, 0x3c, 0x57, 0x92, 0x92, 0x21, 0x46, 0x80, 0xc3, 0xc6, 0x08, 0x60, 0xd8, -0x78, 0xa6, 0xad, 0x3a, 0x51, 0xcb, 0xb4, 0x5d, 0x27, 0x51, 0xbf, 0x61, 0xd9, 0x49, 0xf4, 0x23, -0xdd, 0xb6, 0xb3, 0xf5, 0x3f, 0x6c, 0xd1, 0xf9, 0x7f, 0x97, 0x3a, 0xc6, 0x5a, 0x74, 0xb2, 0xfe, -0x5b, 0x2e, 0x6c, 0x3a, 0x53, 0xb4, 0x21, 0xac, 0x3a, 0xcf, 0x19, 0x76, 0xbd, 0xa7, 0xd2, 0xd6, -0x9d, 0x4e, 0xee, 0x3f, 0xfb, 0xd8, 0x9e, 0x33, 0x5f, 0x58, 0xff, 0xb2, 0x3d, 0xa7, 0xad, 0x24, -0x67, 0x0f, 0xdb, 0x73, 0x5a, 0x02, 0x37, 0xee, 0x42, 0xcf, 0x6e, 0xab, 0x37, 0x68, 0xe2, 0x6a, -0x3b, 0xdf, 0x2d, 0x7f, 0x12, 0x4d, 0x2c, 0x4e, 0x5b, 0x87, 0x92, 0xcf, 0xe2, 0xaf, 0x1e, 0x6f, -0x21, 0xfa, 0x9f, 0xd3, 0xd2, 0x86, 0x7d, 0x68, 0x79, 0x6a, 0x1f, 0x9f, 0x33, 0x82, 0x5f, 0xb7, -0x98, 0xf5, 0x19, 0x7e, 0xa3, 0x23, 0x14, 0x0b, 0x81, 0xba, 0x70, 0xe9, 0x96, 0xf6, 0x3b, 0xc9, -0xd2, 0xb0, 0x29, 0xe5, 0xe7, 0x1e, 0xbc, 0x06, 0x7c, 0x0d, 0xdc, 0x85, 0xb9, 0xd6, 0x74, 0xaa, -0x78, 0x78, 0x80, 0x2d, 0x49, 0xba, 0xa8, 0x7c, 0x3a, 0xe5, 0x9e, 0xe8, 0x13, 0x7c, 0x8e, 0x98, -0xcf, 0xb9, 0xc6, 0xf1, 0x3c, 0x9d, 0xdb, 0x69, 0x6f, 0xee, 0x5f, 0xbb, 0xc8, 0xaf, 0x88, 0x67, -0xe6, 0x8a, 0x63, 0xf9, 0x60, 0xe3, 0xda, 0xc6, 0x1e, 0x47, 0x14, 0x92, 0xb8, 0xf9, 0x5a, 0x4e, -0x17, 0xee, 0x1a, 0x5d, 0x63, 0x30, 0xf6, 0xcf, 0x9f, 0x4b, 0x43, 0xd3, 0x46, 0xec, 0x6b, 0xb7, -0xd8, 0x0b, 0xfc, 0x31, 0x6d, 0x46, 0x0e, 0xf8, 0x21, 0xf7, 0x42, 0x6b, 0x93, 0x21, 0xdf, 0x26, -0xcb, 0x40, 0xb9, 0x91, 0x97, 0x1f, 0xeb, 0x56, 0x62, 0x6c, 0xa1, 0xeb, 0xf4, 0x91, 0xf3, 0xd8, -0x4e, 0xb2, 0xba, 0x7c, 0xe4, 0x7e, 0x93, 0xc7, 0xf0, 0x5e, 0xc8, 0xf9, 0x6d, 0x54, 0x8a, 0xfc, -0x7e, 0x28, 0x76, 0xa9, 0x77, 0xe9, 0x1c, 0xd5, 0x27, 0xb1, 0xe4, 0xcb, 0xd6, 0xe6, 0x9d, 0x94, -0x3b, 0x83, 0x0a, 0x31, 0x72, 0x9c, 0x85, 0x64, 0x95, 0x0b, 0x6e, 0xc7, 0xf2, 0xd5, 0x05, 0xfc, -0x16, 0x40, 0xb2, 0xaa, 0x84, 0xfc, 0x13, 0x84, 0xfc, 0x53, 0x39, 0xd4, 0x42, 0x0e, 0xbc, 0x8d, -0x34, 0x06, 0x07, 0x5b, 0xc8, 0x85, 0xb0, 0x2b, 0x90, 0xd9, 0xbc, 0x2c, 0x03, 0x89, 0x1d, 0x2b, -0xa7, 0x21, 0x05, 0xcd, 0x37, 0xa4, 0xa0, 0x19, 0xfa, 0xcc, 0x9a, 0x2e, 0x07, 0x39, 0x67, 0xe8, -0xa3, 0x05, 0xa4, 0x86, 0x13, 0xfa, 0x5a, 0x03, 0xe4, 0xf8, 0x80, 0x2f, 0x4c, 0x45, 0x45, 0x99, -0xce, 0xfa, 0xd9, 0x41, 0x2a, 0x29, 0xa3, 0xc8, 0xcb, 0xb3, 0x2b, 0xa9, 0xac, 0xd4, 0x14, 0x39, -0x34, 0x3b, 0x44, 0xe5, 0xa5, 0xa1, 0xd9, 0x55, 0x54, 0x51, 0x56, 0xa5, 0xb7, 0x68, 0xc2, 0xe1, -0xb8, 0x4b, 0x8c, 0xa2, 0xf9, 0x3f, 0x3e, 0x9c, 0xc8, 0xc3, 0x98, 0x18, 0x7e, 0xe1, 0x3d, 0x0a, -0xc7, 0xad, 0xde, 0xe5, 0xa6, 0xc3, 0xc0, 0x76, 0x1f, 0xef, 0x8b, 0x0d, 0x85, 0x94, 0x1b, 0x13, -0x56, 0x6f, 0x14, 0x32, 0x69, 0x50, 0xd7, 0x21, 0x80, 0xad, 0x80, 0x62, 0x4b, 0xd8, 0xfa, 0x1f, -0x19, 0x1f, 0x1e, 0x0d, 0x25, 0xb2, 0x95, 0x46, 0xce, 0xc5, 0xf8, 0x7e, 0xe5, 0x4f, 0x3e, 0xa2, -0x40, 0x9c, 0xa4, 0x6c, 0xc5, 0xba, 0x6f, 0x63, 0x9b, 0xa4, 0x64, 0x06, 0xd8, 0xa6, 0x2e, 0xa2, -0xdc, 0xb0, 0xf7, 0x41, 0xbc, 0xc9, 0x7e, 0x7e, 0x8b, 0xb2, 0xc7, 0xf5, 0xc1, 0x75, 0xbc, 0x12, -0xc0, 0xde, 0xdf, 0x87, 0x36, 0xfa, 0x2a, 0x29, 0xec, 0xf7, 0x91, 0xbf, 0x31, 0x08, 0xcc, 0x06, -0x77, 0x3d, 0xd4, 0x66, 0x1e, 0x6c, 0xa3, 0x12, 0x55, 0xc6, 0x6f, 0x39, 0xd2, 0xd7, 0xb9, 0xe4, -0x37, 0xef, 0x9b, 0xf7, 0xbb, 0x55, 0xec, 0xdb, 0xbd, 0x24, 0x30, 0xa1, 0xb1, 0xf2, 0xe7, 0x2f, -0xb5, 0x99, 0x87, 0xda, 0xa8, 0x4c, 0x95, 0xf1, 0x5b, 0x81, 0xba, 0xd6, 0xf7, 0xd7, 0xb6, 0x90, -0xa9, 0x67, 0x57, 0xa4, 0x8d, 0x4c, 0x5d, 0xc2, 0xee, 0x62, 0xc4, 0xc9, 0x5c, 0xfb, 0x39, 0x25, -0x58, 0xf5, 0x11, 0x45, 0x38, 0xe4, 0x8a, 0x24, 0x7c, 0x67, 0xc7, 0x1c, 0x21, 0x96, 0x0c, 0x15, -0xeb, 0xe6, 0x75, 0xcb, 0xa1, 0x6d, 0x0e, 0x26, 0xfb, 0x9f, 0xa7, 0xa2, 0x96, 0x6c, 0xe5, 0x86, -0xcd, 0xbd, 0xfa, 0xfb, 0x8b, 0xc9, 0xb6, 0xfa, 0x9f, 0x1d, 0x6a, 0x91, 0x5d, 0xec, 0xb1, 0x7c, -0xed, 0x4f, 0x5f, 0x86, 0x8e, 0xe9, 0xa3, 0xa0, 0x2a, 0xb3, 0x2d, 0x61, 0x63, 0x92, 0xf9, 0xa6, -0x2f, 0xc3, 0x47, 0x5c, 0x9f, 0x66, 0xd4, 0x07, 0x4f, 0xa8, 0x27, 0x9e, 0x32, 0x7d, 0xb4, 0xfd, -0x41, 0x9f, 0xfc, 0xd8, 0x46, 0x5f, 0xa6, 0x3e, 0x97, 0xe0, 0x0b, 0x0a, 0x99, 0x80, 0xbd, 0xbf, -0xa2, 0x8f, 0x44, 0x06, 0xbc, 0xa1, 0xc0, 0xfc, 0xa2, 0x89, 0x6f, 0x27, 0x41, 0x6f, 0x59, 0x91, -0x03, 0x81, 0x56, 0x92, 0xe6, 0xfd, 0x8b, 0x9d, 0x74, 0xcd, 0xc1, 0x97, 0xe5, 0x33, 0x97, 0xb8, -0x29, 0x3b, 0xf2, 0xd2, 0xb6, 0x6e, 0x47, 0x15, 0x9f, 0x2f, 0xe0, 0xe7, 0x5e, 0x28, 0xec, 0xf3, -0x94, 0xfa, 0x87, 0x0f, 0xf1, 0x9c, 0xb9, 0x32, 0xe7, 0xe1, 0x97, 0x23, 0x9d, 0x7d, 0x04, 0xb9, -0x23, 0x1b, 0xb2, 0x37, 0xdb, 0x1a, 0xde, 0xaf, 0x84, 0x50, 0xbb, 0x76, 0x51, 0xdf, 0x21, 0xa3, -0x5f, 0xb7, 0x2b, 0x21, 0x2f, 0x7a, 0x72, 0x51, 0x39, 0x0d, 0x2f, 0x0b, 0xf8, 0xea, 0xa8, 0x48, -0x5d, 0x10, 0x28, 0x42, 0xf9, 0x07, 0xdc, 0xa1, 0x40, 0xd3, 0x1b, 0x07, 0x4a, 0x8a, 0x50, 0xfa, -0x4b, 0xfe, 0x66, 0xc8, 0xa6, 0x96, 0xc1, 0xb5, 0x5c, 0x2e, 0x94, 0x90, 0xec, 0x87, 0x5f, 0xe2, -0x92, 0xf0, 0x64, 0x7d, 0xf8, 0x80, 0x28, 0x33, 0x68, 0x94, 0x59, 0xfb, 0xf0, 0xcb, 0xee, 0x36, -0x0a, 0x19, 0xe5, 0x12, 0xdb, 0x38, 0x2a, 0x73, 0xea, 0x37, 0x7b, 0xe7, 0x73, 0x69, 0x62, 0x96, -0xfd, 0x87, 0xec, 0xf1, 0xba, 0x7e, 0xdf, 0xc8, 0x76, 0xc8, 0x84, 0x15, 0xbe, 0x2c, 0xa3, 0x3e, -0x66, 0x40, 0xe8, 0xa3, 0x32, 0x48, 0x8c, 0x90, 0x93, 0x54, 0xfb, 0x75, 0xc3, 0xd9, 0x2b, 0xbb, -0x2c, 0xb0, 0xb5, 0x6f, 0x64, 0x80, 0xf3, 0x73, 0x33, 0x8d, 0xe5, 0x5e, 0x45, 0x63, 0xd0, 0x87, -0xc6, 0xd1, 0xe2, 0xa8, 0x7e, 0xe4, 0x34, 0xe6, 0x23, 0x1d, 0xcc, 0x8d, 0x05, 0x45, 0xfb, 0x47, -0x77, 0x43, 0xb3, 0x35, 0xb7, 0xb0, 0xd9, 0x9a, 0x0a, 0x7d, 0xcd, 0xc3, 0xbe, 0xa5, 0xe2, 0x16, -0xdd, 0xa7, 0xc0, 0x95, 0xfc, 0xb1, 0x3b, 0xa3, 0xc3, 0xb2, 0xb1, 0xb7, 0x3a, 0x32, 0xe7, 0x2c, -0xc5, 0xc7, 0x58, 0x8d, 0x1c, 0x45, 0x0e, 0xfe, 0x44, 0x96, 0xc8, 0xc3, 0xff, 0xe8, 0x11, 0x55, -0x06, 0xbb, 0x32, 0x8d, 0xb5, 0x2a, 0xf1, 0x67, 0x45, 0x06, 0x74, 0x09, 0x5e, 0xd0, 0x13, 0xa4, -0xfc, 0x50, 0x03, 0xef, 0xd6, 0x99, 0x09, 0x6e, 0x6c, 0xc8, 0xbb, 0xc2, 0x63, 0xc9, 0xb4, 0xac, -0x94, 0xbc, 0xdb, 0xae, 0x71, 0x59, 0x62, 0x75, 0xb0, 0x1e, 0x32, 0xba, 0x25, 0xba, 0x83, 0x94, -0x44, 0xb3, 0x85, 0xbd, 0x76, 0x7f, 0x25, 0x7e, 0x8f, 0xba, 0x28, 0xfa, 0x0c, 0xb4, 0xcb, 0xa6, -0x12, 0x2f, 0xe5, 0x44, 0x5e, 0x2a, 0xf6, 0xb2, 0x3e, 0xee, 0x0d, 0x3d, 0xfe, 0x3e, 0xd9, 0x9c, -0x55, 0x5b, 0xdf, 0x17, 0x96, 0x0d, 0xd6, 0x52, 0x2f, 0xe5, 0xb2, 0x06, 0x5e, 0xe6, 0xa5, 0x3c, -0x70, 0xa8, 0xb5, 0x18, 0x6f, 0x14, 0xa4, 0xf0, 0x2a, 0xd9, 0x48, 0x51, 0xe4, 0xc8, 0x02, 0x57, -0x95, 0x99, 0x3f, 0x75, 0xcd, 0xae, 0x31, 0x1b, 0x3b, 0x11, 0xe7, 0xb1, 0x0e, 0x6a, 0xec, 0xd8, -0xff, 0x01, 0x63, 0x6e, 0x14, 0x5e, 0x68, 0x28, 0xa6, 0x51, 0x88, 0x19, 0x97, 0xc0, 0x43, 0x7d, -0x1a, 0x3b, 0x7d, 0xe0, 0xe1, 0xfb, 0xd9, 0x8b, 0xc5, 0x0b, 0xe7, 0x68, 0x4f, 0x22, 0x17, 0x9c, -0xf9, 0x39, 0xde, 0x2b, 0xd4, 0x9e, 0xde, 0x59, 0x7e, 0x65, 0x7f, 0x3a, 0x6d, 0xcf, 0xe8, 0x1e, -0x73, 0x25, 0xe0, 0xb4, 0xb8, 0xea, 0x79, 0x04, 0xae, 0xfe, 0x30, 0xe3, 0xb5, 0x31, 0x96, 0x74, -0x47, 0x95, 0x15, 0x19, 0x23, 0x8e, 0x50, 0xbb, 0x35, 0x1d, 0x52, 0x32, 0x26, 0xf6, 0x15, 0xdd, -0xbf, 0x03, 0xb8, 0xda, 0x61, 0x71, 0x36, 0x49, 0x2d, 0x15, 0xa7, 0x7d, 0x3c, 0x90, 0x34, 0x9f, -0xf7, 0xa1, 0x3b, 0x1b, 0x44, 0x4b, 0xde, 0x94, 0xc8, 0xea, 0x30, 0x81, 0x63, 0x94, 0xab, 0x24, -0x95, 0x74, 0xca, 0xd0, 0x6a, 0xf8, 0xc9, 0x0b, 0x59, 0x2c, 0x37, 0x32, 0xb0, 0xd2, 0x34, 0xb0, -0x36, 0x21, 0x8b, 0xbd, 0xfd, 0x32, 0x46, 0x5e, 0x7b, 0xe4, 0x50, 0x59, 0x21, 0x15, 0x94, 0x2f, -0x27, 0x7b, 0x20, 0x33, 0x72, 0xe0, 0xb7, 0x4f, 0x0d, 0xf5, 0xfe, 0xfc, 0x40, 0x33, 0x99, 0x4e, -0x40, 0xaa, 0x2d, 0x08, 0x64, 0x44, 0x0e, 0x78, 0x7d, 0x54, 0xfe, 0xc1, 0x53, 0x43, 0x0f, 0xed, -0xed, 0x46, 0xe8, 0x2b, 0xca, 0xbc, 0x87, 0x8f, 0xfa, 0x96, 0x93, 0x97, 0x22, 0xbe, 0x15, 0xf8, -0xad, 0x33, 0xca, 0x93, 0xce, 0x56, 0xb1, 0x4d, 0xf3, 0xd9, 0x6a, 0x86, 0xa6, 0x2d, 0xcf, 0x67, -0xe1, 0xb5, 0xc3, 0xd1, 0xf9, 0x6e, 0xf7, 0x3c, 0xb6, 0x28, 0x44, 0x68, 0xe6, 0x68, 0x68, 0x27, -0x6d, 0x7f, 0x68, 0xf9, 0xdd, 0x0e, 0x39, 0xdc, 0xed, 0x36, 0x9d, 0xed, 0x5d, 0x33, 0xf9, 0xe0, -0x7d, 0xd0, 0xba, 0xbc, 0xac, 0x83, 0x6b, 0x9a, 0xaf, 0x9a, 0x82, 0x83, 0xbd, 0x0f, 0x1f, 0xf6, -0xb0, 0xc5, 0xf7, 0x3a, 0xbc, 0x35, 0xc4, 0x7a, 0xc1, 0xbf, 0x9b, 0xd8, 0x42, 0x00, 0xb1, 0x55, -0xe4, 0xf7, 0xb1, 0xfd, 0x69, 0xd8, 0x6b, 0x0a, 0xaf, 0xf7, 0xd5, 0xd0, 0x82, 0x35, 0xb6, 0xb7, -0xbb, 0x7d, 0x73, 0x68, 0xe1, 0x4a, 0xdb, 0xb6, 0x6e, 0xc4, 0xaa, 0xe0, 0x29, 0x3f, 0x60, 0x9b, -0xde, 0x70, 0xf7, 0x59, 0xfe, 0xce, 0xbb, 0x8a, 0xd4, 0x1f, 0x45, 0xbb, 0xdb, 0xdc, 0x18, 0x4f, -0xf3, 0x3c, 0xe6, 0x53, 0xff, 0x7b, 0x0d, 0x55, 0x4c, 0x39, 0x72, 0x5f, 0x7c, 0xf9, 0x5e, 0x9e, -0x61, 0x58, 0x8a, 0x52, 0xd4, 0xf7, 0x9f, 0x5b, 0x4d, 0xbc, 0x0b, 0xed, 0xe8, 0xba, 0x44, 0x89, -0x1a, 0x8b, 0x76, 0xc7, 0x2d, 0x65, 0x79, 0x47, 0xee, 0x4a, 0x78, 0xd4, 0x1a, 0x7c, 0x33, 0x05, -0x71, 0x79, 0x45, 0x3e, 0x5a, 0xf0, 0xd1, 0xb3, 0x47, 0xd6, 0xc7, 0x8b, 0xf7, 0x3c, 0x4f, 0xe1, -0xd6, 0x00, 0xc2, 0x8a, 0x48, 0x42, 0xe8, 0xc2, 0x0f, 0xff, 0x37, 0x42, 0xa7, 0x82, 0xaa, 0xd6, -0x36, 0x3d, 0xd4, 0xb4, 0xc1, 0x23, 0x37, 0xae, 0xdb, 0x87, 0x7c, 0x9b, 0x6d, 0x9e, 0x0c, 0xf1, -0x14, 0x6e, 0xe9, 0x55, 0x65, 0x3f, 0xfa, 0xc6, 0x31, 0x84, 0xc6, 0x36, 0x0e, 0x3e, 0x4f, 0xc1, -0x9f, 0xb2, 0x7d, 0xb8, 0x9b, 0x77, 0x3c, 0xbc, 0xf1, 0xcb, 0x1f, 0x1f, 0x6d, 0x9b, 0xea, 0xf6, -0x51, 0x03, 0xb8, 0x69, 0x93, 0x37, 0xf8, 0x9b, 0x81, 0xdf, 0x7c, 0x44, 0x75, 0x3c, 0xdb, 0xf1, -0xc6, 0xc1, 0x37, 0x5e, 0x7d, 0x03, 0x9c, 0x59, 0x7d, 0x4e, 0xb4, 0x70, 0x14, 0x32, 0xb5, 0xe3, -0xe0, 0x72, 0x52, 0x80, 0xc9, 0x32, 0x31, 0x43, 0xec, 0x41, 0xaa, 0x62, 0xc3, 0x03, 0x41, 0x8e, -0x48, 0xe3, 0x12, 0xfb, 0xbf, 0xda, 0x2d, 0xba, 0xc5, 0xa9, 0x5d, 0x78, 0x9b, 0x60, 0x4d, 0x34, -0x3b, 0x96, 0x3c, 0x55, 0xdb, 0x69, 0xdb, 0xcd, 0xeb, 0xf2, 0x95, 0xf1, 0x83, 0xae, 0x46, 0xa1, -0xc5, 0xda, 0x4b, 0x97, 0x53, 0x1e, 0xcf, 0xa3, 0xbe, 0x7e, 0x94, 0x2d, 0xd7, 0xcb, 0x56, 0x50, -0xde, 0xcf, 0x0e, 0xb7, 0xd0, 0x67, 0x6f, 0x39, 0x63, 0xae, 0x98, 0xb0, 0xdf, 0x7b, 0xdb, 0xe0, -0x23, 0xa5, 0x63, 0xf6, 0x71, 0xf9, 0x95, 0x16, 0xb2, 0xb8, 0x30, 0x6a, 0x3b, 0x31, 0x66, 0x3b, -0x30, 0x62, 0x3b, 0x37, 0x14, 0x03, 0x6f, 0xfe, 0x19, 0x94, 0x53, 0x22, 0xbd, 0x09, 0xa9, 0x28, -0x70, 0x57, 0x60, 0x06, 0x65, 0x97, 0x4e, 0x3c, 0x0e, 0x49, 0xe9, 0xd8, 0x52, 0x32, 0x2b, 0x0d, -0x43, 0x87, 0x79, 0x36, 0x65, 0x75, 0xd6, 0x5b, 0x3b, 0x84, 0x25, 0xd4, 0x85, 0xc2, 0xa8, 0x76, -0x71, 0xcb, 0x81, 0x59, 0xb5, 0xda, 0xa5, 0xad, 0xc1, 0x59, 0x21, 0xed, 0xf2, 0xf6, 0x4a, 0x9e, -0xe7, 0xd8, 0x16, 0x9c, 0x55, 0xa5, 0x5d, 0x51, 0x56, 0x08, 0x2d, 0xf2, 0x02, 0xb8, 0xa8, 0x98, -0x43, 0x09, 0x6d, 0x01, 0x57, 0xa0, 0xba, 0x0f, 0xac, 0xc6, 0xcc, 0x06, 0xa0, 0x18, 0x16, 0xbb, -0xc9, 0x6a, 0x8b, 0xa9, 0x24, 0x58, 0x62, 0x2a, 0xad, 0x84, 0xcc, 0xe4, 0x2c, 0xb5, 0x44, 0x0e, -0x41, 0x53, 0x73, 0x95, 0x99, 0x22, 0x2f, 0xff, 0xe4, 0x50, 0x73, 0x16, 0x64, 0x85, 0x0b, 0xb3, -0x22, 0xda, 0x45, 0xd5, 0x82, 0xdf, 0x0b, 0x3c, 0xcf, 0x82, 0x51, 0x2a, 0x0b, 0xf9, 0x7f, 0x0c, -0x79, 0xe2, 0x13, 0x84, 0xea, 0xab, 0x15, 0x9f, 0xfc, 0xc9, 0xeb, 0x65, 0x63, 0x35, 0xde, 0x4b, -0xff, 0xe1, 0xf5, 0xb2, 0xdf, 0x9f, 0xdb, 0x35, 0xeb, 0x65, 0x3c, 0xa7, 0x6d, 0x33, 0xf1, 0x6c, -0xb0, 0xd8, 0x09, 0x33, 0xba, 0x5e, 0x46, 0xe3, 0xd6, 0xcb, 0x4c, 0x57, 0xaf, 0x97, 0x75, 0xd4, -0x0f, 0xdd, 0x1f, 0x1e, 0x88, 0xf3, 0x3e, 0x25, 0x47, 0x0d, 0xc6, 0x6b, 0xbe, 0x83, 0x77, 0xdf, -0x73, 0xd3, 0x72, 0x9a, 0x4a, 0x6a, 0x00, 0x58, 0xdf, 0xbe, 0xa1, 0x30, 0xac, 0x0d, 0xfb, 0x5b, -0xb4, 0x8f, 0x1f, 0xeb, 0x43, 0x4b, 0x9d, 0xfe, 0xab, 0x57, 0x0b, 0xe7, 0x6a, 0x67, 0xff, 0xfa, -0x70, 0x61, 0x9d, 0x76, 0x3e, 0x35, 0xff, 0xe4, 0xe3, 0x19, 0xa8, 0xe1, 0xc8, 0x6a, 0xe8, 0x0f, -0xf8, 0x22, 0x35, 0x4b, 0x5c, 0x72, 0xd6, 0x31, 0x43, 0x3b, 0xaf, 0xcc, 0xd0, 0xc4, 0xfa, 0xc0, -0xae, 0x24, 0x24, 0x19, 0x13, 0xe0, 0x9c, 0xba, 0x85, 0x6c, 0x26, 0x89, 0x68, 0xf2, 0x4d, 0x18, -0x67, 0x6e, 0x0f, 0x91, 0xf3, 0xf6, 0x2a, 0x72, 0x89, 0x1d, 0x6f, 0x03, 0x46, 0x6b, 0x82, 0xa6, -0x4a, 0xfd, 0xa0, 0x27, 0x8b, 0xc3, 0xa0, 0x29, 0x9e, 0xbf, 0x73, 0xf6, 0x39, 0x0b, 0x41, 0x65, -0xd0, 0xd7, 0x20, 0x19, 0x48, 0x83, 0xa1, 0xcd, 0x2d, 0x94, 0x13, 0xb0, 0x0d, 0x55, 0x6d, 0x69, -0x81, 0xd4, 0x0d, 0x5a, 0x5a, 0x75, 0xc3, 0x71, 0xa6, 0xa5, 0xb0, 0x4e, 0x4b, 0x29, 0x89, 0x11, -0x2d, 0x3a, 0x02, 0x7a, 0xba, 0x62, 0xcc, 0xcc, 0x5f, 0x48, 0xcd, 0xcc, 0xa7, 0x69, 0xa8, 0x40, -0x3b, 0x31, 0x3a, 0x07, 0xe7, 0x97, 0xfc, 0xc1, 0xcd, 0x07, 0x41, 0x1f, 0x97, 0xfc, 0x95, 0x9b, -0x5f, 0xc2, 0xfd, 0xf2, 0x60, 0x88, 0xe7, 0xc4, 0x87, 0xaa, 0x78, 0x2e, 0xcf, 0x1f, 0x2a, 0x04, -0xe5, 0xf8, 0xab, 0xd8, 0xab, 0xc4, 0x98, 0x75, 0x11, 0x7d, 0xee, 0x2d, 0x7a, 0xdd, 0xb9, 0x37, -0xab, 0x2e, 0x75, 0xf2, 0xfa, 0xf3, 0xec, 0x0a, 0x77, 0x6d, 0x11, 0xcf, 0xef, 0xe7, 0x0a, 0xdf, -0x3b, 0x3c, 0x9a, 0x4c, 0x11, 0x6d, 0x9e, 0xa7, 0xcf, 0xb1, 0x25, 0xb2, 0x21, 0xd9, 0x79, 0xcb, -0xd0, 0x36, 0x7f, 0xf5, 0x0b, 0x31, 0xbf, 0x1c, 0xfc, 0xfe, 0x2f, 0x99, 0xfb, 0xa9, 0x17, 0xc4, -0x5c, 0x7e, 0xae, 0x18, 0x4b, 0x8a, 0x75, 0xce, 0x6e, 0xb2, 0x58, 0x6c, 0x7c, 0xae, 0x87, 0x89, -0xa2, 0x3b, 0xa9, 0x38, 0xc1, 0x2b, 0x25, 0x56, 0xdd, 0x3a, 0xfe, 0x23, 0x3f, 0x6b, 0x44, 0xf8, -0xc2, 0x04, 0x0e, 0x1c, 0x11, 0xb1, 0x21, 0xdf, 0x04, 0xc0, 0xc9, 0x6b, 0x27, 0xf9, 0x3e, 0x6e, -0xe7, 0x82, 0xc8, 0xc0, 0x7b, 0x7d, 0x3e, 0x0a, 0xfd, 0xad, 0xf0, 0xf3, 0xc3, 0x3a, 0x22, 0xef, -0x4e, 0x03, 0x7f, 0xe6, 0xd5, 0x15, 0x9f, 0x45, 0xdf, 0x77, 0xf3, 0x5f, 0x17, 0xd2, 0x72, 0x30, -0x14, 0xf6, 0x8f, 0xe0, 0x56, 0xb3, 0xc5, 0x88, 0x3c, 0x53, 0x1f, 0x91, 0x17, 0x6c, 0xd2, 0xf9, -0x7b, 0x3c, 0x9f, 0xe1, 0x01, 0x1c, 0x52, 0x82, 0xed, 0xc2, 0x65, 0x65, 0x8b, 0x12, 0xbb, 0x65, -0x39, 0xef, 0x4f, 0x55, 0x97, 0xfa, 0x26, 0x00, 0x13, 0x56, 0xd6, 0x9f, 0x39, 0xaf, 0x0f, 0x3a, -0xb9, 0x9c, 0x52, 0x2e, 0xf9, 0x90, 0xc2, 0x63, 0x21, 0xef, 0xfe, 0xaf, 0x2b, 0xf6, 0x60, 0x9c, -0x39, 0x88, 0x11, 0x25, 0x2f, 0xf2, 0xd2, 0x7b, 0x1b, 0xcb, 0xb8, 0x67, 0xbc, 0xcc, 0x23, 0xb0, -0x77, 0x0e, 0xeb, 0x08, 0xb7, 0x2f, 0xe7, 0xdd, 0x66, 0xb7, 0xb3, 0xfd, 0x3c, 0xe7, 0x5e, 0xcc, -0xf3, 0x61, 0xa2, 0xee, 0x56, 0x6a, 0x90, 0x58, 0xdf, 0x29, 0x96, 0x1a, 0xfe, 0x4d, 0x13, 0x73, -0xc2, 0x76, 0xc1, 0xb9, 0xe4, 0x5b, 0xa3, 0xd0, 0x23, 0x78, 0xce, 0x5e, 0xd7, 0xc0, 0xf2, 0x55, -0x65, 0x4c, 0x78, 0x8c, 0xc7, 0xe0, 0xe8, 0xc3, 0x89, 0x3c, 0x5e, 0x35, 0x70, 0x45, 0x19, 0xcb, -0x2a, 0xdb, 0x87, 0x78, 0xff, 0xea, 0x17, 0xdf, 0xff, 0xa5, 0x2a, 0xb9, 0xa2, 0xce, 0x48, 0x74, -0x4b, 0x9c, 0xae, 0x6c, 0x63, 0xee, 0x26, 0x56, 0xdb, 0xbf, 0x75, 0x17, 0xda, 0xcc, 0x5f, 0xe6, -0xaa, 0x75, 0xb3, 0x76, 0x60, 0x87, 0xb4, 0x9c, 0x0f, 0xad, 0xa0, 0x00, 0x3a, 0xc1, 0x54, 0x65, -0x4a, 0x22, 0x67, 0x8c, 0x8c, 0xcf, 0x72, 0xfc, 0x4a, 0x55, 0x7a, 0xf8, 0xb0, 0x63, 0x6e, 0xf5, -0x47, 0x64, 0xf7, 0x36, 0x0b, 0x89, 0xde, 0x2d, 0xe4, 0xaf, 0xba, 0xb1, 0xf2, 0xd7, 0x42, 0x2b, -0xcf, 0xde, 0xdd, 0x25, 0x6c, 0x11, 0x5c, 0x11, 0xd7, 0x44, 0x4f, 0x7d, 0x6a, 0x5e, 0xd1, 0x68, -0xd5, 0x6c, 0xdd, 0x9a, 0x3c, 0xe3, 0x09, 0x48, 0xa3, 0xa3, 0x7e, 0x92, 0x6e, 0xd0, 0x77, 0x8c, -0xbc, 0x67, 0xd6, 0xfd, 0x03, 0xc5, 0x73, 0x75, 0xcb, 0x9b, 0xf7, 0x16, 0xb9, 0x83, 0xec, 0x5b, -0x4e, 0xd8, 0x65, 0x1c, 0x0e, 0x85, 0x55, 0x69, 0x95, 0x31, 0xff, 0xca, 0x12, 0x51, 0xc2, 0xac, -0x84, 0x10, 0xfe, 0x58, 0x74, 0x6d, 0xdc, 0x9c, 0x57, 0x4e, 0xca, 0x9b, 0x9b, 0xda, 0x0b, 0x78, -0xb7, 0xc0, 0xe8, 0x2e, 0x02, 0xda, 0x3a, 0xad, 0x0e, 0x3d, 0xab, 0xca, 0xdb, 0x22, 0xac, 0xbe, -0xf7, 0x8a, 0x19, 0xdb, 0xf6, 0xe2, 0xfd, 0xef, 0xbc, 0x3b, 0x6d, 0x2e, 0xc9, 0x62, 0x4f, 0xa1, -0x45, 0xac, 0x9a, 0xe6, 0x25, 0x9c, 0xc2, 0x46, 0xa6, 0xb8, 0x63, 0xf2, 0x40, 0x77, 0x4e, 0x39, -0xc9, 0xbb, 0x92, 0x5c, 0x7f, 0x1d, 0xaa, 0x73, 0x2a, 0x74, 0x6a, 0xd4, 0x2b, 0x71, 0x77, 0x34, -0x9c, 0xc8, 0x15, 0x56, 0x0e, 0x93, 0x74, 0x0a, 0x7a, 0x6f, 0x15, 0xb7, 0x99, 0x2a, 0x4f, 0x8f, -0x92, 0x05, 0x6d, 0x90, 0x4d, 0x85, 0x5a, 0x92, 0xf2, 0xc6, 0xd4, 0xec, 0x95, 0x76, 0x93, 0x5a, -0x00, 0x3d, 0xb4, 0x60, 0xd4, 0x76, 0x63, 0x5c, 0xac, 0xb0, 0x7c, 0x60, 0x8c, 0xf1, 0x4e, 0x0e, -0x03, 0xca, 0x5d, 0xea, 0x6b, 0xe8, 0x49, 0xa5, 0x1e, 0x93, 0x68, 0xdb, 0x98, 0xf0, 0xab, 0x62, -0x83, 0x3c, 0xe7, 0xd6, 0x67, 0x2d, 0x57, 0x11, 0xb4, 0xd1, 0x90, 0x6e, 0xd1, 0xd3, 0xdf, 0xbb, -0x48, 0x76, 0x53, 0x63, 0x6f, 0x71, 0x97, 0xa6, 0xb1, 0x87, 0x09, 0xf6, 0x6f, 0xf5, 0x7e, 0x10, -0xb2, 0x74, 0x86, 0x4f, 0x12, 0xf2, 0x33, 0xf7, 0xd1, 0xdc, 0xbf, 0x1b, 0xb8, 0x57, 0x76, 0x06, -0x8b, 0xcc, 0xb1, 0xf5, 0x7b, 0xd7, 0x2f, 0x3e, 0xa5, 0x4a, 0x6b, 0x48, 0x99, 0x50, 0xf7, 0x4e, -0xc1, 0x88, 0xf0, 0x03, 0x28, 0x09, 0xfb, 0xf6, 0x12, 0xa5, 0x55, 0x72, 0xaa, 0xbc, 0x43, 0xdd, -0xe2, 0x34, 0x1d, 0x4a, 0xee, 0xe6, 0xdd, 0xe2, 0xa9, 0x39, 0xcb, 0x73, 0x6a, 0x7e, 0x4d, 0xf7, -0xc1, 0x64, 0xe5, 0x59, 0xe8, 0x5d, 0x66, 0xa4, 0xb5, 0x36, 0xf4, 0x29, 0xb6, 0x4e, 0x6d, 0x77, -0x32, 0xfe, 0xf1, 0xc3, 0x87, 0x15, 0xcb, 0x18, 0x3f, 0x0b, 0x23, 0xa0, 0x26, 0x07, 0xaf, 0x47, -0xf0, 0xfa, 0xa5, 0x6b, 0x86, 0xa0, 0x6a, 0x8b, 0xd8, 0xcf, 0xeb, 0xf2, 0xf1, 0xec, 0xa3, 0x3e, -0x93, 0x67, 0xc7, 0x95, 0x2b, 0x20, 0x14, 0x3d, 0xe7, 0x9d, 0x05, 0xc2, 0xba, 0x2a, 0x98, 0x28, -0x52, 0xa1, 0x69, 0x42, 0x76, 0x7f, 0x6e, 0xe4, 0x47, 0x62, 0x5c, 0x60, 0x3a, 0x9f, 0xa1, 0x8d, -0xe8, 0x61, 0x57, 0x76, 0x8a, 0x77, 0xc9, 0x91, 0x61, 0xbc, 0xef, 0xf7, 0xf1, 0xea, 0x69, 0x46, -0xda, 0x56, 0x48, 0x3a, 0xd3, 0x3d, 0xc4, 0xfb, 0x0f, 0xad, 0xaf, 0x1f, 0x68, 0x9f, 0x70, 0x28, -0xb9, 0xf2, 0x7b, 0x35, 0x19, 0xa7, 0xff, 0xd7, 0x7d, 0xb6, 0xba, 0x0f, 0xc2, 0x56, 0xed, 0xbc, -0xae, 0x15, 0x8f, 0xf0, 0x1a, 0x7b, 0x85, 0xb3, 0x2d, 0x63, 0x81, 0xcb, 0x97, 0xb1, 0xd0, 0xe3, -0xcb, 0x50, 0x3b, 0xa9, 0xf6, 0xb2, 0x16, 0xf1, 0x56, 0xc5, 0x1e, 0x2a, 0xca, 0xf0, 0x66, 0xb8, -0xb3, 0x3d, 0xd5, 0x8d, 0x0f, 0xba, 0xaa, 0x63, 0x0f, 0xe8, 0x3b, 0x99, 0xb8, 0xc7, 0xeb, 0xfe, -0x31, 0xa2, 0xc1, 0xb8, 0xcd, 0x9d, 0xed, 0xcd, 0x76, 0x55, 0x37, 0x3e, 0x50, 0x94, 0x19, 0xbb, -0x0f, 0x54, 0x77, 0x42, 0x4f, 0xa3, 0x9f, 0x19, 0xb4, 0xbf, 0xb7, 0x59, 0x05, 0x5d, 0x5c, 0xf5, -0x4d, 0xa2, 0xce, 0x2b, 0xab, 0x92, 0xd7, 0xe4, 0x30, 0xc7, 0xba, 0x11, 0x6b, 0xd2, 0x63, 0x21, -0x9f, 0x96, 0xea, 0x29, 0xd8, 0x5e, 0x09, 0x39, 0xbf, 0xdd, 0xbe, 0xb8, 0xbf, 0x07, 0x3d, 0x63, -0xb3, 0x22, 0xbd, 0xdb, 0x57, 0xf9, 0x51, 0x46, 0xd3, 0xeb, 0x03, 0xb7, 0xd4, 0x8c, 0x0c, 0xc7, -0x7a, 0xc6, 0xbc, 0xcf, 0x1b, 0x39, 0xf1, 0x22, 0x97, 0x31, 0xe9, 0xda, 0x32, 0x8a, 0x50, 0x46, -0x91, 0xc9, 0x31, 0x01, 0x65, 0x4c, 0xfa, 0x83, 0x65, 0x78, 0xc7, 0xe4, 0x39, 0xe7, 0xaa, 0x32, -0xe6, 0x8e, 0x9c, 0x88, 0xf5, 0xaa, 0xa4, 0xb1, 0xe6, 0x95, 0x71, 0x55, 0x29, 0x44, 0x47, 0xf4, -0x50, 0xa3, 0xbe, 0x6b, 0x5b, 0x16, 0xa0, 0xb4, 0xab, 0x53, 0x85, 0xbd, 0x19, 0xbe, 0x49, 0x9e, -0x9a, 0xc6, 0x07, 0xb9, 0x8f, 0x8c, 0x8b, 0x61, 0xab, 0xb0, 0xd3, 0x3a, 0x0c, 0xb4, 0xe3, 0xf7, -0xd4, 0x13, 0x30, 0xec, 0x5d, 0xdb, 0x36, 0x1f, 0xbc, 0xfe, 0xea, 0xbc, 0x43, 0xee, 0x0c, 0xdf, -0x04, 0x4f, 0xf8, 0x7a, 0x79, 0xbb, 0x53, 0x79, 0xd7, 0x8d, 0xc9, 0x29, 0x7c, 0x55, 0xce, 0x73, -0x46, 0x4e, 0x34, 0xae, 0x45, 0xed, 0x9c, 0xd1, 0x9e, 0x84, 0xbb, 0x71, 0x4c, 0x8c, 0xcb, 0x3d, -0x32, 0xac, 0x48, 0xb1, 0x64, 0xea, 0xdd, 0xe3, 0x1e, 0x39, 0xa1, 0xd2, 0x67, 0xe7, 0x53, 0x67, -0x10, 0xb1, 0x24, 0x98, 0xe1, 0x16, 0x7b, 0xb6, 0x79, 0x76, 0xc8, 0x0e, 0x79, 0xb5, 0x00, 0x72, -0xab, 0x12, 0x5d, 0xdb, 0xd2, 0x14, 0xed, 0x6d, 0x69, 0xd8, 0xb3, 0x93, 0x0a, 0x16, 0x47, 0xf7, -0xee, 0x24, 0x65, 0x71, 0x58, 0xd0, 0x64, 0xda, 0xc6, 0xc3, 0x91, 0x71, 0xa6, 0x5b, 0x50, 0xe4, -0x40, 0xfb, 0x84, 0x81, 0xb5, 0xec, 0xf9, 0x62, 0xf8, 0x87, 0x87, 0xfc, 0x76, 0x8a, 0x17, 0x38, -0x73, 0x04, 0x35, 0x67, 0x38, 0x64, 0x83, 0x9a, 0x0f, 0xf6, 0xf7, 0x8c, 0xee, 0xb6, 0x82, 0xee, -0x59, 0xf0, 0x7f, 0xbf, 0xbc, 0xf9, 0x57, 0x95, 0xa7, 0xdb, 0xa0, 0x54, 0x04, 0x9c, 0xb5, 0x5e, -0xf2, 0x98, 0x5c, 0xd9, 0xae, 0x65, 0x64, 0xdd, 0xa3, 0xaf, 0xa9, 0x9c, 0xd1, 0xfd, 0xa7, 0x25, -0x72, 0xfd, 0x4b, 0x69, 0x3d, 0x4b, 0x06, 0xca, 0x5d, 0x78, 0xea, 0xc3, 0xd3, 0x25, 0x95, 0x57, -0xd3, 0x8c, 0x79, 0x39, 0xf6, 0x8e, 0x34, 0x3a, 0x63, 0xc7, 0x33, 0xce, 0xab, 0x26, 0x1f, 0x7f, -0x56, 0xbb, 0xd8, 0x7e, 0xe1, 0x70, 0xf2, 0xcc, 0x46, 0xf6, 0x4b, 0x34, 0x66, 0x47, 0xe1, 0xd3, -0xbc, 0xa3, 0x90, 0x36, 0xf2, 0x18, 0xed, 0xbb, 0x71, 0xd4, 0x07, 0x4b, 0xb4, 0x27, 0x9e, 0x07, -0xdd, 0x8f, 0x77, 0x6a, 0x6d, 0x65, 0x5b, 0x98, 0xc2, 0x2e, 0x1a, 0xfe, 0xef, 0xcd, 0xda, 0x09, -0xd5, 0xee, 0x88, 0x2a, 0x66, 0x47, 0x26, 0xc7, 0x5c, 0x39, 0x98, 0x8a, 0x59, 0x3d, 0xa2, 0x9d, -0x28, 0x6c, 0xd4, 0x4e, 0x43, 0x1a, 0x1a, 0x66, 0x7b, 0x7c, 0xe3, 0x4b, 0xe6, 0x1f, 0xe7, 0x8d, -0xe7, 0x27, 0x78, 0x57, 0x41, 0x21, 0x24, 0x24, 0xd0, 0xaf, 0x99, 0x6d, 0xf5, 0xeb, 0xf7, 0x7d, -0xfa, 0x49, 0x31, 0x21, 0x37, 0xc8, 0x6d, 0x22, 0xb7, 0x9d, 0xfa, 0xaa, 0x54, 0x28, 0xe4, 0x97, -0xea, 0x3e, 0xa8, 0xeb, 0xd2, 0xf6, 0xa6, 0xe6, 0x73, 0x2b, 0xca, 0x57, 0x53, 0xbe, 0x9b, 0x6e, -0x11, 0x56, 0xcc, 0xca, 0x63, 0xc9, 0x76, 0x5a, 0x45, 0xa1, 0xca, 0x92, 0xf2, 0xef, 0x69, 0xc5, -0xe5, 0x49, 0x93, 0xba, 0xdc, 0xb9, 0x94, 0xfc, 0x42, 0xaa, 0x31, 0x17, 0x77, 0x58, 0x48, 0x95, -0x1e, 0x3d, 0xb2, 0x27, 0xda, 0x26, 0x95, 0x64, 0xb9, 0x96, 0x92, 0xdb, 0x4b, 0x27, 0x92, 0xde, -0xdb, 0x52, 0x27, 0xf4, 0x95, 0x86, 0x8a, 0xb3, 0x22, 0x07, 0x3d, 0x35, 0x73, 0x7e, 0xe7, 0xa6, -0x9f, 0xfe, 0xa2, 0x4d, 0x72, 0xd5, 0x15, 0x4f, 0x42, 0x2a, 0xaf, 0xc0, 0xaf, 0xf9, 0xd8, 0xbf, -0xe2, 0x6b, 0xf9, 0xd8, 0x59, 0xb2, 0x0b, 0x8d, 0xff, 0xe6, 0x84, 0x79, 0x57, 0xb4, 0xcd, 0xa2, -0xca, 0xbb, 0xa2, 0xcd, 0x52, 0x20, 0x2b, 0xd6, 0xdb, 0x94, 0xdc, 0xd7, 0xdb, 0xbc, 0x25, 0xd0, -0x7d, 0x1b, 0x7b, 0xe9, 0x94, 0x6e, 0xab, 0x22, 0xb9, 0x31, 0x74, 0x5b, 0x48, 0xac, 0x61, 0xe6, -0x87, 0x83, 0xb7, 0x05, 0xc9, 0xcc, 0x6b, 0x3c, 0x8d, 0xc1, 0xcd, 0x90, 0xfa, 0xf0, 0x96, 0x55, -0xf7, 0x4e, 0xb9, 0x3e, 0xf3, 0x78, 0x89, 0x47, 0x77, 0x67, 0xc4, 0x95, 0x6d, 0x58, 0x5b, 0x9c, -0x17, 0x36, 0xc6, 0xba, 0x3d, 0x20, 0xd1, 0xfd, 0x2e, 0xa6, 0x09, 0x0f, 0x29, 0x42, 0x9a, 0xf6, -0x08, 0x58, 0x96, 0xb6, 0xdf, 0xa1, 0x54, 0x0d, 0xb2, 0x8c, 0x89, 0xd6, 0x13, 0x2b, 0x33, 0x2b, -0x0c, 0xe9, 0x7c, 0x52, 0x7a, 0xf7, 0x01, 0xcb, 0xdb, 0x13, 0x13, 0xec, 0x99, 0xd3, 0x3e, 0xea, -0x17, 0x45, 0x7c, 0xed, 0x61, 0xea, 0x43, 0x3a, 0xab, 0xa3, 0xca, 0x35, 0x5d, 0x8e, 0xcd, 0x5f, -0x0b, 0xbc, 0x5f, 0x82, 0x24, 0x7d, 0x1d, 0x19, 0x7f, 0xd4, 0x83, 0x90, 0xda, 0xd0, 0x49, 0xc5, -0xb6, 0x77, 0xef, 0x77, 0x47, 0x20, 0x13, 0x2a, 0x3c, 0xef, 0xac, 0xa4, 0xac, 0x46, 0xb3, 0xf5, -0x5d, 0x9f, 0x8a, 0x24, 0xda, 0x29, 0x3b, 0xf6, 0xc0, 0x82, 0x8d, 0x90, 0xad, 0x33, 0xd1, 0x1e, -0xa6, 0xfe, 0x07, 0x16, 0x1d, 0xd3, 0xbf, 0xb7, 0x9a, 0xc8, 0x72, 0xaf, 0xa5, 0x29, 0xc9, 0x3a, -0x20, 0x7a, 0xac, 0x5b, 0x78, 0x70, 0x64, 0x6b, 0x72, 0x43, 0x2e, 0xbd, 0x7a, 0xd7, 0xb6, 0x56, -0x94, 0xf6, 0x66, 0x1b, 0x31, 0xf0, 0xb2, 0x4b, 0xf7, 0x6f, 0x89, 0x31, 0x15, 0xf8, 0x57, 0x82, -0x7c, 0x42, 0x9d, 0x8f, 0x57, 0xcc, 0x2f, 0x6b, 0x87, 0xea, 0x1f, 0x49, 0xc7, 0x01, 0x12, 0x47, -0x30, 0xf2, 0x2d, 0x11, 0x67, 0xad, 0x7f, 0x84, 0xc7, 0x36, 0xde, 0x71, 0x2a, 0xf2, 0x60, 0x1c, -0xc4, 0x11, 0xa2, 0x8f, 0xd1, 0x75, 0xd7, 0xf9, 0xc6, 0x4d, 0x25, 0xc8, 0xaf, 0x73, 0x7c, 0x7e, -0x7a, 0x59, 0xfc, 0x1d, 0xe2, 0xcb, 0x52, 0x71, 0x90, 0x64, 0xb9, 0x67, 0xeb, 0x5e, 0x6f, 0x9d, -0xe9, 0xb0, 0x62, 0x70, 0xdf, 0x7d, 0x5a, 0xc0, 0xf0, 0x99, 0x47, 0xe9, 0x39, 0xae, 0x88, 0x5a, -0xe4, 0xcc, 0x81, 0x5c, 0x3b, 0xb5, 0xea, 0x42, 0x1f, 0xb1, 0xa7, 0x00, 0xb4, 0x8c, 0xf5, 0xaa, -0xbd, 0x85, 0xae, 0xd1, 0x37, 0x67, 0x48, 0xac, 0x76, 0x1f, 0xd5, 0x67, 0xb8, 0xd2, 0x79, 0x78, -0x44, 0x1e, 0x96, 0xd7, 0x0f, 0x3b, 0x58, 0xce, 0xb5, 0x0c, 0xf6, 0x8d, 0xfb, 0x3e, 0xeb, 0x9a, -0xef, 0x07, 0x53, 0xdf, 0xfb, 0xf4, 0x19, 0x36, 0x6b, 0xfb, 0xa8, 0xa7, 0xa6, 0xa2, 0xeb, 0xed, -0x96, 0x4f, 0xe1, 0xbd, 0xb4, 0xa2, 0x98, 0x3c, 0x4b, 0xc9, 0x89, 0x91, 0xf7, 0x6d, 0x57, 0x39, -0x73, 0x03, 0x8c, 0xa6, 0xa7, 0xbc, 0xf3, 0xf8, 0xac, 0x43, 0x50, 0x64, 0x4e, 0x69, 0x21, 0xe5, -0xbf, 0xfa, 0x3e, 0x15, 0x1c, 0xef, 0x05, 0x6d, 0x9a, 0x21, 0xf7, 0xeb, 0xfe, 0x4e, 0xe5, 0xd4, -0xf9, 0x7c, 0x4a, 0x21, 0x79, 0xfb, 0x77, 0x5e, 0x2f, 0x26, 0x84, 0xd0, 0xd0, 0xd3, 0xe4, 0xf5, -0xaf, 0xa0, 0xa9, 0x90, 0xf1, 0x65, 0xa5, 0x8a, 0x29, 0x0d, 0x5d, 0x17, 0x98, 0x86, 0xdc, 0x36, -0x26, 0x35, 0x52, 0x4a, 0x46, 0x5e, 0xee, 0x44, 0xbe, 0x1e, 0x83, 0xaf, 0x0a, 0x22, 0xed, 0x7d, -0x24, 0xe2, 0x9f, 0x26, 0xb7, 0xe0, 0x46, 0x21, 0xb1, 0x6b, 0x57, 0xdf, 0x25, 0x5b, 0xc4, 0xd2, -0xd1, 0x98, 0x52, 0x4d, 0x7a, 0xa9, 0xe9, 0xf6, 0x61, 0x5d, 0x20, 0x5f, 0xe4, 0x9d, 0xcf, 0xe1, -0xde, 0x56, 0xca, 0xfe, 0xf9, 0x2f, 0xe3, 0xa4, 0xb9, 0x3d, 0x2d, 0x64, 0xde, 0xa7, 0xaf, 0xfe, -0xe6, 0xb3, 0xbc, 0x27, 0x4e, 0xf4, 0x93, 0x9c, 0x96, 0x95, 0x93, 0x07, 0xd7, 0x5e, 0xcf, 0x8b, -0x95, 0x23, 0x34, 0x66, 0x57, 0xc4, 0x3b, 0x41, 0xab, 0xf0, 0x8d, 0xea, 0x28, 0x06, 0xe3, 0xe6, -0xbd, 0xab, 0xad, 0xa3, 0xb3, 0x94, 0x7d, 0x91, 0x83, 0x99, 0x3b, 0xe9, 0x47, 0x63, 0xe7, 0xda, -0x52, 0x6d, 0xe2, 0xcb, 0x4a, 0xb0, 0xee, 0x62, 0x4b, 0x51, 0xe7, 0xc8, 0xe2, 0xb1, 0x5e, 0x8c, -0x0c, 0x9f, 0x8a, 0xdf, 0xd2, 0x79, 0x04, 0x95, 0x89, 0x59, 0xb9, 0x90, 0x90, 0x99, 0x5b, 0xdd, -0xa0, 0x46, 0xe1, 0x85, 0xa6, 0x09, 0xdf, 0x7b, 0xb9, 0x37, 0xb7, 0x7f, 0x99, 0x57, 0xfc, 0xc5, -0x0a, 0x62, 0xdd, 0xf5, 0xfa, 0x72, 0x74, 0x39, 0xf9, 0x9b, 0xd9, 0x2a, 0x8e, 0x6d, 0x80, 0xc7, -0xad, 0xf5, 0x3b, 0xea, 0x46, 0xe7, 0x04, 0xb5, 0x22, 0x60, 0xc6, 0x2d, 0xf4, 0xaa, 0x99, 0x09, -0x0b, 0xb8, 0x33, 0xfb, 0x5f, 0x8a, 0xa3, 0x9f, 0x92, 0x76, 0x56, 0xf8, 0x0c, 0x63, 0x2e, 0xfb, -0x25, 0xdc, 0xe5, 0xfe, 0xee, 0x84, 0x7b, 0x89, 0x39, 0xda, 0x9d, 0xc8, 0x51, 0x83, 0xed, 0x16, -0xbc, 0xe5, 0xd8, 0xca, 0xc9, 0xda, 0xdf, 0x1d, 0x0f, 0xa8, 0x4e, 0xbd, 0x8f, 0x72, 0x6a, 0xbf, -0xed, 0xdd, 0xbe, 0xfa, 0xef, 0xa4, 0x6d, 0xbd, 0x0a, 0x8c, 0x1c, 0x32, 0x8d, 0xbb, 0xdc, 0x91, -0x3d, 0xd0, 0xad, 0x7b, 0xc8, 0xe4, 0xb3, 0xfc, 0x10, 0x92, 0x2f, 0xf0, 0xee, 0x70, 0x51, 0x7b, -0xf1, 0xf5, 0xf7, 0x1c, 0xd3, 0x93, 0xce, 0x8c, 0x63, 0x6b, 0x21, 0x63, 0x5e, 0x6b, 0xe7, 0x21, -0x5f, 0x37, 0xd4, 0xca, 0x7d, 0x45, 0x50, 0x7f, 0x08, 0xdf, 0x07, 0xc4, 0x7c, 0x84, 0x09, 0x9a, -0xbe, 0xd4, 0x70, 0x8e, 0xa6, 0x84, 0x3c, 0x94, 0x23, 0x66, 0x21, 0x6e, 0x14, 0xb3, 0x17, 0xce, -0xdb, 0xf9, 0xd9, 0x2b, 0x7e, 0x8b, 0x6e, 0x67, 0x8f, 0xcc, 0x01, 0x35, 0xa0, 0x48, 0xe3, 0x76, -0x07, 0x5b, 0xf5, 0x9e, 0x34, 0x2e, 0x34, 0xda, 0x5e, 0x3c, 0xfa, 0xa6, 0xfb, 0xac, 0x0e, 0xff, -0x71, 0xfe, 0x32, 0xf7, 0xeb, 0xab, 0xd5, 0xde, 0x89, 0x68, 0xb9, 0xfd, 0x2e, 0x93, 0x5b, 0x72, -0xd7, 0xb3, 0xa7, 0x44, 0x5c, 0xc7, 0x85, 0x5c, 0x6f, 0x53, 0x24, 0xde, 0xa3, 0xaa, 0xd7, 0x7d, -0x42, 0x8e, 0x9a, 0xc5, 0x56, 0x10, 0xbc, 0x57, 0xb5, 0x6f, 0x0b, 0x8f, 0xe2, 0x45, 0xd0, 0x99, -0x3d, 0x39, 0x8a, 0x57, 0x8e, 0x09, 0xcf, 0x91, 0x87, 0x0a, 0xab, 0xb5, 0xc3, 0x95, 0x1f, 0x08, -0x2f, 0x62, 0x47, 0xab, 0x3e, 0xc0, 0x78, 0x5b, 0xab, 0x0d, 0xa6, 0x77, 0xa7, 0x1d, 0x1a, 0xdd, -0x9d, 0xc6, 0xd2, 0xa2, 0xf9, 0x10, 0xfb, 0xe5, 0xfc, 0x9e, 0x76, 0x81, 0x3a, 0xac, 0xa7, 0x76, -0xe8, 0xfa, 0xd4, 0x12, 0x32, 0x3f, 0xc7, 0xfe, 0x9a, 0x0c, 0xef, 0x91, 0x23, 0xce, 0x99, 0x7d, -0xe0, 0xbd, 0xe6, 0xc7, 0x14, 0x69, 0xfc, 0x0e, 0x6f, 0x97, 0x80, 0xc7, 0xdc, 0xe3, 0x5a, 0x7b, -0x6b, 0x18, 0x7c, 0x32, 0xe3, 0x56, 0x5e, 0xcf, 0x94, 0xee, 0x49, 0x9e, 0xe9, 0xc3, 0x93, 0xd5, -0xba, 0x96, 0x77, 0xd0, 0x26, 0x48, 0x52, 0x17, 0x89, 0x67, 0xee, 0x55, 0xe6, 0xa9, 0xaa, 0x9d, -0x9f, 0x15, 0x84, 0x67, 0x1c, 0xe6, 0x27, 0x3f, 0x87, 0x42, 0x67, 0x94, 0x4f, 0x8b, 0xf5, 0x62, -0xaf, 0xf0, 0x7d, 0x78, 0xba, 0xe3, 0xe6, 0xa1, 0x67, 0xa4, 0x8d, 0xc2, 0xaf, 0xe2, 0x89, 0xea, -0xcb, 0x57, 0x06, 0xea, 0xb7, 0xac, 0x9a, 0x72, 0x9c, 0xad, 0x39, 0xc2, 0xe9, 0xda, 0xb1, 0xe7, -0xb3, 0xa3, 0xed, 0x16, 0xd4, 0xf7, 0x3a, 0x75, 0x33, 0xf2, 0xb9, 0xa8, 0x78, 0xa5, 0x8d, 0x0d, -0xba, 0x0f, 0xc5, 0x13, 0xf5, 0xec, 0x4b, 0xd9, 0x59, 0xf4, 0x8c, 0xee, 0x99, 0xb1, 0xc3, 0x3a, -0x5a, 0x42, 0xfd, 0x96, 0xd0, 0x0a, 0xb2, 0xad, 0x0a, 0xf6, 0x01, 0xe7, 0xa8, 0x49, 0x8e, 0xf1, -0xf5, 0xc8, 0x1a, 0xeb, 0xdb, 0xcf, 0x48, 0x6c, 0x23, 0xc5, 0xab, 0x75, 0xfc, 0xb5, 0xd2, 0x9e, -0xd7, 0x0f, 0x28, 0x13, 0x66, 0x5a, 0xc1, 0xb3, 0x11, 0x46, 0xba, 0xb3, 0x0e, 0xaf, 0xb4, 0xf9, -0x6e, 0xdd, 0x7b, 0xe4, 0x30, 0xa0, 0xcd, 0xa9, 0xdf, 0x62, 0xc4, 0x9c, 0x77, 0x23, 0x66, 0x61, -0x2f, 0x5b, 0x72, 0x19, 0x39, 0x14, 0x18, 0xe5, 0x5f, 0x28, 0x42, 0xcc, 0x3d, 0xf7, 0xa5, 0xf2, -0x36, 0x66, 0xa5, 0x6c, 0x21, 0x93, 0x6a, 0x61, 0x2d, 0x71, 0xa0, 0x37, 0x66, 0x82, 0x2e, 0x7d, -0xf1, 0xe6, 0x4a, 0x72, 0xbb, 0x21, 0xfd, 0xa8, 0x16, 0x9e, 0xb3, 0x3d, 0xbc, 0x2e, 0x46, 0xd1, -0x5e, 0x84, 0x06, 0x69, 0xba, 0x67, 0x86, 0x76, 0x01, 0x74, 0x50, 0xdd, 0xd8, 0x57, 0x64, 0x39, -0x72, 0x5f, 0x4c, 0x8e, 0xae, 0x8b, 0x7f, 0x7c, 0x73, 0x98, 0x3c, 0xec, 0xcf, 0x95, 0x34, 0x7d, -0x36, 0xaf, 0x5a, 0xb7, 0x23, 0x23, 0xf0, 0xbf, 0x2d, 0x0d, 0x9b, 0x78, 0xf7, 0x3c, 0x69, 0x82, -0xab, 0x6e, 0x11, 0x16, 0xc9, 0x23, 0x56, 0xb1, 0x07, 0xf0, 0x5e, 0x8c, 0x70, 0x35, 0xec, 0xcb, -0x67, 0x2a, 0x43, 0xed, 0xbe, 0xe1, 0x2f, 0x00, 0x2f, 0xe3, 0xed, 0x1e, 0x03, 0x6f, 0xd5, 0x97, -0x3f, 0x0b, 0xea, 0x35, 0xf2, 0xc9, 0x0e, 0x0e, 0xef, 0x4e, 0x61, 0xcd, 0x8d, 0x96, 0x72, 0x78, -0x21, 0x78, 0x99, 0xde, 0xdd, 0xa8, 0xc8, 0xef, 0xf6, 0x6d, 0xee, 0xdd, 0xdc, 0x7d, 0xb2, 0x4f, -0x94, 0xda, 0x87, 0x14, 0x17, 0xf5, 0x92, 0xce, 0xf6, 0xdd, 0xc1, 0x1e, 0x77, 0xbc, 0x34, 0x55, -0x31, 0x0d, 0x1a, 0x6b, 0xe0, 0x9b, 0xbb, 0x57, 0x65, 0xbd, 0xb7, 0x43, 0xc8, 0x99, 0x48, 0x23, -0x52, 0xd8, 0x15, 0xdd, 0xeb, 0xa6, 0x1b, 0x7c, 0x9b, 0x7c, 0xe5, 0xb3, 0x1e, 0x3b, 0x22, 0xbe, -0x46, 0x4c, 0xbe, 0x65, 0x06, 0x99, 0xb5, 0x7f, 0x14, 0xa7, 0xb6, 0x1e, 0x67, 0x49, 0x1f, 0x61, -0x05, 0xb7, 0xae, 0xa0, 0x3c, 0xf6, 0x26, 0x99, 0x71, 0x34, 0xd5, 0x5a, 0xed, 0x13, 0x07, 0xb9, -0xb5, 0x18, 0xe6, 0xe1, 0x79, 0x97, 0x47, 0x36, 0xd6, 0x6f, 0x33, 0x62, 0x2e, 0x31, 0xd4, 0x0d, -0x29, 0xa8, 0xb7, 0x8d, 0x69, 0x85, 0x8b, 0xab, 0xac, 0xc7, 0x99, 0x0a, 0x64, 0x3d, 0xc6, 0x48, -0x7f, 0xa1, 0x7d, 0xca, 0x20, 0x87, 0xd2, 0x35, 0xe9, 0xcf, 0x77, 0xdc, 0x38, 0x86, 0x6a, 0x52, -0xe9, 0xcf, 0xae, 0xca, 0x19, 0x9b, 0xcb, 0x98, 0xf4, 0xa7, 0xdb, 0x73, 0xc7, 0xe6, 0x74, 0x47, -0x8b, 0x76, 0x85, 0x6c, 0xf8, 0xfd, 0x98, 0x72, 0xf0, 0xfb, 0x21, 0xe5, 0xe2, 0xf7, 0x1c, 0xe5, -0xe1, 0xf7, 0x0c, 0xd9, 0x41, 0x83, 0xf9, 0xb8, 0x0a, 0x02, 0x33, 0x78, 0x65, 0xf9, 0x8e, 0x4a, -0x9a, 0x5a, 0x3a, 0x43, 0xfb, 0xa4, 0x31, 0x7c, 0x47, 0x98, 0x14, 0xd4, 0x36, 0x9f, 0x1c, 0xf8, -0x9d, 0x4a, 0x2e, 0xf1, 0xec, 0x11, 0xcf, 0x45, 0xe2, 0x39, 0x20, 0x9e, 0x4b, 0xc4, 0x73, 0x99, -0x78, 0xae, 0x10, 0x33, 0x60, 0x6e, 0x9a, 0xca, 0x34, 0x85, 0x51, 0x93, 0xe1, 0x5c, 0x41, 0x0d, -0xa0, 0xb9, 0x27, 0x63, 0x4c, 0x73, 0x24, 0xa0, 0xb4, 0xa9, 0x65, 0x5c, 0x53, 0x31, 0x5e, 0xfc, -0x51, 0xbd, 0x4a, 0xec, 0xfa, 0x7e, 0x0b, 0x7d, 0xbb, 0xa1, 0x61, 0xd3, 0xad, 0x2d, 0xda, 0x30, -0x35, 0xa9, 0x24, 0xd5, 0x19, 0xb9, 0xdb, 0xda, 0x6f, 0x1e, 0xad, 0xeb, 0xbc, 0xcb, 0x9f, 0x5a, -0xd3, 0xf8, 0x39, 0xfd, 0xb9, 0xf8, 0x3f, 0xdb, 0x6e, 0x1d, 0x8b, 0x1f, 0x2f, 0x72, 0x71, 0x14, -0x51, 0xbe, 0x62, 0x7a, 0xb7, 0x4f, 0x09, 0x82, 0x9e, 0xfa, 0x98, 0x9e, 0x2a, 0x53, 0xf4, 0x74, -0xda, 0x47, 0x80, 0x6e, 0x80, 0x39, 0x97, 0x4e, 0x31, 0x48, 0x3b, 0x8e, 0xa6, 0x3a, 0xb2, 0xfe, -0x79, 0x87, 0xd8, 0xf9, 0xc0, 0x1e, 0xa1, 0x91, 0x4e, 0xa4, 0xca, 0xbf, 0x03, 0xd2, 0x0a, 0x39, -0xf1, 0xeb, 0x24, 0x97, 0xd2, 0x4a, 0x21, 0x47, 0x2b, 0xd5, 0xdc, 0x1a, 0x01, 0x05, 0xd5, 0x02, -0xaf, 0x61, 0xe2, 0xb1, 0x53, 0x16, 0xbe, 0x6a, 0x76, 0xd0, 0xd4, 0x84, 0x05, 0x2d, 0xe0, 0x51, -0xc9, 0xb4, 0xf2, 0x8b, 0x61, 0x86, 0xf1, 0xd2, 0xb0, 0x29, 0x91, 0x0b, 0x79, 0xdb, 0xc2, 0xda, -0x1a, 0xca, 0xf5, 0x84, 0xf5, 0x9c, 0xbc, 0x77, 0xb0, 0xaf, 0x09, 0x7e, 0x72, 0xa4, 0xe8, 0x65, -0x2c, 0xa5, 0x56, 0x5f, 0xfe, 0xf7, 0x53, 0x69, 0x7e, 0x71, 0x5a, 0x70, 0xa5, 0xcd, 0x3a, 0x27, -0x19, 0xc7, 0x2f, 0xce, 0xaf, 0xb2, 0x8d, 0xa1, 0xb1, 0x2d, 0xec, 0xf1, 0x3a, 0x3d, 0x07, 0xb9, -0x34, 0x6a, 0x4b, 0x2c, 0x76, 0x00, 0x3f, 0x8a, 0xe9, 0x1b, 0xc9, 0x35, 0x37, 0xbe, 0xc8, 0x7e, -0x0e, 0xca, 0xf9, 0xfc, 0x4a, 0x8c, 0xcb, 0x2e, 0x35, 0xba, 0xca, 0xb6, 0x37, 0xb9, 0x24, 0xc7, -0x11, 0x7c, 0x63, 0xc0, 0x59, 0xfb, 0x2b, 0xf0, 0xf3, 0x9b, 0xad, 0x4a, 0x60, 0x3b, 0xa9, 0xd6, -0x35, 0x79, 0x2f, 0x76, 0x27, 0xf2, 0xf4, 0x94, 0x02, 0x96, 0xb3, 0xba, 0x8d, 0xc9, 0xb4, 0xa8, -0xba, 0x18, 0x32, 0x92, 0x82, 0x37, 0xb4, 0x87, 0x7e, 0xd6, 0xb1, 0xd0, 0xbb, 0xd4, 0xb4, 0x45, -0x92, 0xd1, 0x4f, 0xc6, 0x72, 0x57, 0xd4, 0x23, 0x3f, 0x5d, 0x8f, 0x8b, 0xe3, 0xb9, 0xab, 0xa8, -0x07, 0x5b, 0x89, 0x31, 0x4f, 0x00, 0xdf, 0x12, 0xa5, 0x7c, 0x83, 0xcb, 0x48, 0x95, 0x10, 0xd8, -0xcf, 0x2d, 0x00, 0x79, 0xf5, 0x59, 0x6d, 0xff, 0xbd, 0xb2, 0xb3, 0x45, 0xdb, 0xaf, 0xcc, 0x75, -0xd4, 0x28, 0x69, 0x59, 0xf6, 0xb3, 0xcd, 0x8e, 0xb9, 0x63, 0xc7, 0x5a, 0x63, 0xe4, 0xb0, 0x84, -0x02, 0x4b, 0x35, 0xd6, 0xe6, 0x30, 0xd6, 0xb2, 0xf5, 0xd2, 0x56, 0x5d, 0x1f, 0x84, 0x04, 0x51, -0xc0, 0x6b, 0x0f, 0x42, 0x9e, 0xd0, 0x74, 0x49, 0xb6, 0x94, 0xd8, 0x3b, 0x7d, 0x5a, 0x8a, 0xdd, -0xe7, 0x9e, 0xeb, 0x69, 0x26, 0x9e, 0x01, 0xcb, 0x29, 0x86, 0x2c, 0xf8, 0xf2, 0x39, 0x2a, 0x38, -0xd6, 0x63, 0x48, 0x0e, 0xd2, 0xd8, 0x1d, 0xd1, 0x90, 0x5e, 0x89, 0xb6, 0x43, 0x2a, 0xf0, 0xb2, -0xdc, 0x0e, 0x59, 0x55, 0xd2, 0x65, 0x55, 0x27, 0x5d, 0x27, 0xad, 0x94, 0x68, 0x46, 0xaa, 0x02, -0x96, 0xc9, 0xaf, 0x8e, 0x45, 0x0e, 0xee, 0x44, 0x7d, 0x34, 0x9c, 0xf0, 0xb7, 0x5b, 0xaf, 0xf5, -0x26, 0x4b, 0xf9, 0x89, 0xc0, 0xb5, 0xa5, 0xb3, 0xdf, 0xed, 0x44, 0xbe, 0xbb, 0x99, 0xb2, 0x7f, -0xfa, 0x0b, 0x48, 0xa4, 0x0d, 0xa3, 0xbe, 0xc3, 0xb4, 0x90, 0x7e, 0xea, 0xb4, 0x2e, 0xa3, 0x0a, -0x99, 0xe9, 0xcb, 0x62, 0xdd, 0xf5, 0x22, 0x74, 0xe1, 0x52, 0xa7, 0xc5, 0x59, 0xeb, 0x22, 0xaf, -0xe9, 0x44, 0x72, 0xb5, 0xfb, 0xad, 0x4d, 0xab, 0x9c, 0xc7, 0x37, 0xd5, 0x62, 0xec, 0xe2, 0xf3, -0xeb, 0xcf, 0x77, 0xaa, 0x2e, 0xdd, 0xbb, 0x03, 0xef, 0xae, 0xac, 0x7f, 0xc4, 0xf9, 0x3c, 0x15, -0x4f, 0x6b, 0xa3, 0x52, 0x92, 0xf1, 0x5b, 0x4e, 0x96, 0xd8, 0xda, 0xea, 0x73, 0x64, 0xe5, 0x99, -0xc8, 0xfd, 0x6b, 0x17, 0xbd, 0x59, 0xf7, 0x4e, 0x41, 0x17, 0xb7, 0x3c, 0xe3, 0x51, 0x5f, 0x1b, -0x80, 0x96, 0xc7, 0x56, 0x60, 0xc9, 0x36, 0xd6, 0x1d, 0xe5, 0xd7, 0x07, 0xfc, 0x7c, 0x42, 0xb8, -0xec, 0x07, 0x85, 0x2b, 0x96, 0x94, 0x7f, 0x2d, 0x7f, 0x05, 0xf4, 0xd8, 0xfa, 0xb9, 0x1f, 0x51, -0x69, 0xe1, 0x44, 0x94, 0x5b, 0xb0, 0xd2, 0xfd, 0xe6, 0x26, 0xf0, 0x89, 0x66, 0x25, 0x4f, 0x78, -0x16, 0x99, 0xc0, 0x1e, 0x99, 0x17, 0xf9, 0x0d, 0x9f, 0x24, 0x44, 0x0f, 0x19, 0x5e, 0x49, 0x40, -0xc7, 0x29, 0xaf, 0x24, 0x52, 0x50, 0xd5, 0x9f, 0x33, 0x11, 0xbf, 0x79, 0x11, 0xd1, 0x0f, 0xd4, -0x4e, 0xf1, 0xde, 0xb3, 0xc8, 0x2b, 0xee, 0xdd, 0x8b, 0xc9, 0x64, 0x36, 0xfc, 0x96, 0x90, 0xe9, -0x8a, 0x78, 0x62, 0xa9, 0xf0, 0x15, 0xf1, 0x64, 0x89, 0x23, 0x0c, 0x6d, 0xbc, 0x4d, 0xbc, 0x1d, -0x44, 0x8a, 0x67, 0xc4, 0xd3, 0x4b, 0x08, 0x3f, 0x83, 0x7e, 0xb8, 0x17, 0x5c, 0x40, 0x56, 0x76, -0x52, 0x31, 0xfb, 0xd8, 0x72, 0x16, 0xe1, 0x59, 0x48, 0xb8, 0x23, 0x3f, 0x52, 0xf3, 0xc7, 0xbc, -0x3d, 0xa1, 0x2a, 0x63, 0xde, 0x1e, 0x53, 0x42, 0x4a, 0x12, 0xe9, 0x7f, 0x34, 0x26, 0x6c, 0xab, -0x23, 0x94, 0xca, 0x0d, 0x2d, 0xe0, 0x21, 0xbb, 0x7a, 0x42, 0x58, 0x66, 0xdb, 0xd9, 0xbf, 0xb1, -0x89, 0x78, 0x8f, 0xb9, 0x1f, 0x2d, 0x7a, 0x6a, 0xc3, 0x60, 0x32, 0xda, 0x1d, 0xbf, 0xc4, 0xe9, -0xd4, 0x7d, 0xfc, 0x1b, 0x6a, 0x10, 0xbf, 0xbc, 0xee, 0xa2, 0xdf, 0x65, 0xe3, 0x6e, 0x66, 0x6f, -0xfc, 0x8e, 0x56, 0xdd, 0x0b, 0x9a, 0xbe, 0x42, 0x2a, 0xa4, 0xe6, 0x1c, 0x7d, 0x15, 0x30, 0xbd, -0x43, 0x9a, 0x4c, 0xa1, 0x76, 0x62, 0x2f, 0x52, 0xa1, 0x36, 0x72, 0xe0, 0x2a, 0xc0, 0x35, 0x35, -0xc4, 0xf6, 0x50, 0xa9, 0xef, 0xd6, 0x88, 0xef, 0x56, 0xe9, 0xdf, 0x25, 0x5c, 0xd6, 0x6d, 0x8c, -0xb5, 0xb8, 0x19, 0xfa, 0x55, 0x4c, 0x95, 0xf1, 0xcb, 0x6b, 0xf1, 0x16, 0x48, 0x59, 0x4f, 0xcb, -0x35, 0x3e, 0xc8, 0x18, 0xbc, 0xd6, 0xa3, 0x96, 0xa4, 0xd7, 0xfd, 0x82, 0xa9, 0xf4, 0xbc, 0xde, -0xa8, 0x1a, 0xeb, 0x84, 0x81, 0xa0, 0x52, 0x28, 0x47, 0x9b, 0x92, 0x48, 0xeb, 0x76, 0x4c, 0x84, -0xcc, 0x40, 0x07, 0x93, 0xf8, 0xd6, 0xeb, 0xab, 0x23, 0xbf, 0xb0, 0x2c, 0xce, 0x18, 0xd5, 0x33, -0x74, 0x9c, 0xf8, 0x7d, 0x34, 0x55, 0x68, 0x4c, 0x04, 0x26, 0xa1, 0x80, 0x76, 0x7c, 0xe4, 0x10, -0xfe, 0xe6, 0x29, 0x52, 0x19, 0xaa, 0x4c, 0x76, 0x8b, 0x90, 0x02, 0x3d, 0xe4, 0xe4, 0x86, 0x64, -0xb7, 0x4a, 0x57, 0x1e, 0x47, 0x0d, 0x6a, 0x18, 0x03, 0x02, 0x8e, 0xa9, 0x7f, 0x37, 0x18, 0xcf, -0x57, 0xc3, 0x0b, 0xfa, 0x1c, 0x7d, 0xaa, 0x67, 0x5c, 0x8c, 0xfc, 0x77, 0x83, 0x89, 0x92, 0xd0, -0xc3, 0x6a, 0x2e, 0x97, 0x84, 0x5a, 0x66, 0xea, 0xd8, 0x01, 0x8c, 0x1b, 0xc2, 0x9b, 0x95, 0x79, -0x29, 0xbf, 0xbd, 0x62, 0xa7, 0x28, 0x7d, 0xb6, 0x5e, 0xcd, 0x15, 0xf3, 0x35, 0xd6, 0xf8, 0x6e, -0xf5, 0x88, 0xe8, 0x2d, 0x56, 0x47, 0x52, 0x3d, 0xce, 0x5e, 0xf7, 0x46, 0x7d, 0x41, 0x95, 0x06, -0x5c, 0x91, 0xb4, 0xe6, 0xa6, 0x8e, 0x6a, 0x6e, 0x79, 0x1e, 0xfa, 0x91, 0x35, 0xa4, 0x69, 0x71, -0x77, 0x3b, 0x75, 0x98, 0x54, 0x79, 0xc8, 0x14, 0x4b, 0xda, 0x4d, 0x87, 0x33, 0x12, 0x96, 0x55, -0x96, 0xbd, 0xc9, 0xf8, 0x05, 0xd5, 0xcd, 0xf7, 0x84, 0x63, 0xbd, 0xe9, 0xa6, 0x2a, 0xfa, 0x51, -0x31, 0xa9, 0xf6, 0x80, 0x14, 0x39, 0xc0, 0xde, 0x7c, 0x73, 0xe8, 0x60, 0x46, 0xdc, 0x92, 0xcc, -0xb8, 0x29, 0x48, 0x3f, 0x52, 0xa5, 0x4e, 0x6d, 0x54, 0xfb, 0xe3, 0xb7, 0x3b, 0x42, 0x94, 0xe5, -0x97, 0xea, 0xde, 0xa9, 0x13, 0xe5, 0xb3, 0x7f, 0x3f, 0xdd, 0x2b, 0x8e, 0x32, 0x9d, 0xad, 0x62, -0xd8, 0x8e, 0x3a, 0x6d, 0xeb, 0x9c, 0xcd, 0x5e, 0xff, 0x30, 0x9e, 0x3b, 0x93, 0x4f, 0xb1, 0x95, -0x87, 0xc1, 0xd3, 0x02, 0x6e, 0xee, 0xe7, 0xf5, 0xae, 0x22, 0xd3, 0xdd, 0xfa, 0x2e, 0x65, 0xe1, -0x8f, 0x6a, 0xd8, 0x49, 0xd3, 0xc2, 0xa0, 0xc1, 0x56, 0xd3, 0xa5, 0xd1, 0x55, 0x9b, 0x63, 0x3d, -0xe0, 0x6e, 0x55, 0xaf, 0x1f, 0x74, 0x60, 0xe4, 0x16, 0xa5, 0xc8, 0x5f, 0x1d, 0xe3, 0xeb, 0x5f, -0x59, 0x31, 0x26, 0xed, 0x2b, 0x06, 0x44, 0x62, 0x05, 0x92, 0x67, 0x5e, 0x5c, 0xf5, 0xc8, 0x5d, -0x9c, 0x9d, 0x70, 0x73, 0x03, 0x8f, 0x44, 0xa3, 0x96, 0x98, 0x56, 0x5e, 0x09, 0xcc, 0x8e, 0x2f, -0xc0, 0x3d, 0x07, 0xbd, 0xae, 0x61, 0x7c, 0x99, 0xc6, 0x69, 0x0f, 0x66, 0x7d, 0x15, 0x2e, 0x4d, -0x99, 0x92, 0xb2, 0x65, 0x7c, 0x79, 0xa2, 0xef, 0x4c, 0x16, 0x9e, 0x5f, 0xa3, 0xca, 0xed, 0x96, -0xf3, 0x63, 0xfd, 0x0c, 0xd4, 0x91, 0x3e, 0x33, 0x24, 0xe6, 0x3e, 0xca, 0xd8, 0x26, 0xc5, 0xdd, -0x7a, 0x55, 0x6d, 0x83, 0xe3, 0x4a, 0xbd, 0xfb, 0x57, 0x47, 0x7e, 0x75, 0xc4, 0xd9, 0x71, 0x98, -0x1a, 0x36, 0xa9, 0x96, 0xdd, 0x3b, 0xc9, 0x9e, 0xb0, 0x18, 0x5e, 0x16, 0x3f, 0x1e, 0x5f, 0x2a, -0x6b, 0x67, 0x0b, 0x0d, 0x1b, 0x9f, 0x69, 0x7f, 0x93, 0x5a, 0x4b, 0x14, 0x3a, 0xa8, 0xa8, 0xb9, -0xe2, 0x70, 0xa2, 0x19, 0xd2, 0x35, 0x5f, 0x3c, 0x5a, 0x73, 0x45, 0x6a, 0x4c, 0x72, 0xed, 0x3b, -0x32, 0xa0, 0x29, 0x45, 0x15, 0x69, 0xb0, 0x67, 0x30, 0xc9, 0x70, 0x5f, 0xad, 0x75, 0x0a, 0x8f, -0x42, 0xde, 0x29, 0x5d, 0x8c, 0x9b, 0x29, 0xac, 0x6f, 0x66, 0x4f, 0x09, 0xd1, 0xe4, 0x5b, 0xa2, -0x64, 0xbb, 0xa5, 0x8b, 0x86, 0x1f, 0x76, 0x53, 0x6e, 0xbb, 0xa9, 0xbf, 0x27, 0x9e, 0x75, 0xcb, -0x72, 0xd3, 0x59, 0x2a, 0xe0, 0x15, 0x3b, 0xc5, 0x52, 0xf7, 0x41, 0xd8, 0xb0, 0x23, 0x87, 0xc6, -0xb8, 0x81, 0xed, 0xe8, 0x8b, 0x83, 0x5c, 0xa3, 0xaa, 0x8f, 0xb7, 0x13, 0xfb, 0xae, 0xc5, 0x65, -0x05, 0x9f, 0x10, 0x27, 0x3b, 0x38, 0x75, 0x1f, 0xdb, 0xd2, 0x94, 0x20, 0x65, 0xce, 0x0c, 0x91, -0x34, 0x85, 0x35, 0x55, 0xc1, 0x45, 0xf4, 0x33, 0x1d, 0xda, 0x27, 0x0f, 0x25, 0xcf, 0x74, 0x4b, -0xbc, 0x52, 0xdc, 0xad, 0xfb, 0x87, 0xf4, 0x65, 0xcd, 0xec, 0x62, 0xe7, 0x47, 0xe2, 0x37, 0x47, -0xfc, 0xe6, 0x89, 0x5f, 0xfb, 0x6d, 0x5d, 0xdf, 0xd3, 0xc8, 0x26, 0x7e, 0x73, 0xc4, 0x6f, 0x9e, -0xf8, 0xb5, 0x83, 0x3e, 0xa4, 0x69, 0xb5, 0x64, 0x16, 0xb0, 0x58, 0xbf, 0x0a, 0x6a, 0x09, 0xed, -0x20, 0x4b, 0xe8, 0x29, 0xb2, 0x38, 0xff, 0x32, 0x75, 0x0e, 0x8c, 0x93, 0x4f, 0x7d, 0x29, 0x70, -0x45, 0xd9, 0x4f, 0x26, 0xdb, 0x79, 0x08, 0x8f, 0x9d, 0x3d, 0x18, 0xab, 0xb2, 0x7f, 0x72, 0x24, -0x7e, 0xce, 0xb9, 0x9c, 0xcc, 0xbb, 0x0d, 0x4b, 0x0d, 0xfd, 0xec, 0x17, 0x1e, 0x1f, 0xc4, 0x09, -0x20, 0x37, 0x25, 0xb2, 0x79, 0x6f, 0xc7, 0xd9, 0x60, 0x49, 0xb0, 0x14, 0xf8, 0x51, 0x2d, 0x25, -0x4b, 0xa9, 0xa0, 0x74, 0x29, 0x46, 0xd9, 0x49, 0xfa, 0xea, 0x70, 0xda, 0x57, 0x38, 0x3d, 0x7c, -0xd8, 0x45, 0x6f, 0x26, 0x55, 0x0f, 0xcf, 0x89, 0x17, 0x97, 0xd8, 0xe9, 0xfb, 0xbf, 0x0c, 0x40, -0x3b, 0xff, 0xcd, 0x01, 0xd5, 0xdc, 0xbb, 0xf2, 0x38, 0xc5, 0x36, 0xfc, 0xd3, 0x4b, 0x3f, 0x7d, -0xb5, 0xf5, 0x22, 0xf4, 0x72, 0xef, 0x6d, 0x3d, 0x76, 0x8a, 0xf5, 0x35, 0x75, 0xf7, 0xf7, 0xb5, -0x0e, 0xf1, 0xca, 0xee, 0xdc, 0x7f, 0xdd, 0x4b, 0x6a, 0x91, 0x1b, 0x31, 0xc5, 0xc5, 0x16, 0x2a, -0x47, 0xbe, 0x8f, 0xbc, 0xca, 0x96, 0x2e, 0xbf, 0x1e, 0xc0, 0xb7, 0x9d, 0xdb, 0x91, 0xf6, 0x8d, -0x5f, 0xfe, 0xfc, 0x70, 0x2b, 0xcf, 0x86, 0xbb, 0x67, 0xf6, 0x58, 0x28, 0xd6, 0xdd, 0x94, 0xfc, -0xc9, 0x81, 0xd6, 0xd7, 0x74, 0x8f, 0x9c, 0xf5, 0xdf, 0xfa, 0x0b, 0x71, 0x52, 0x13, 0xe8, 0x60, -0x31, 0xaf, 0xa6, 0xfb, 0x6a, 0x29, 0x57, 0x9f, 0x01, 0x67, 0xef, 0x16, 0x0d, 0xef, 0x91, 0x1d, -0xd7, 0x97, 0x70, 0x7d, 0xf9, 0x46, 0xb1, 0xc3, 0xe2, 0x36, 0x96, 0xf5, 0x1c, 0xe0, 0x49, 0x8f, -0x01, 0x07, 0x2f, 0x32, 0x95, 0xb0, 0x8e, 0xcf, 0x2b, 0xb8, 0xc0, 0x20, 0xcf, 0x4d, 0x58, 0xf4, -0xf9, 0x00, 0xc8, 0xb4, 0xc3, 0x37, 0xaf, 0x6a, 0xcf, 0x19, 0x95, 0x6f, 0x8c, 0x79, 0xb8, 0x88, -0x88, 0xb9, 0x7f, 0xd4, 0x67, 0xbb, 0x1e, 0xc3, 0xed, 0xcc, 0x36, 0xd3, 0xbb, 0x6a, 0x5b, 0xca, -0x77, 0xa1, 0x85, 0x5b, 0x4b, 0x8a, 0x6d, 0xbb, 0x83, 0xad, 0xfe, 0x7e, 0x70, 0x88, 0x56, 0xcf, -0xe6, 0xd0, 0x96, 0x5a, 0xe6, 0xe7, 0x6a, 0x3e, 0xe2, 0xb2, 0x5b, 0x73, 0xf0, 0x9b, 0xd5, 0x92, -0x8b, 0x38, 0x4b, 0x8b, 0x19, 0xbf, 0x56, 0x8c, 0xd6, 0xfa, 0xfa, 0xe0, 0xb0, 0x61, 0x0d, 0xfd, -0x15, 0x61, 0xc3, 0x56, 0xe6, 0xb1, 0x78, 0xc5, 0x8c, 0x60, 0x3c, 0xa8, 0x46, 0x75, 0x7f, 0x30, -0xee, 0xe0, 0x9c, 0xf7, 0xc0, 0x17, 0xe6, 0xae, 0x22, 0x97, 0x07, 0x6d, 0xec, 0x21, 0xd9, 0x91, -0xa3, 0xc8, 0x83, 0x1b, 0x95, 0x6a, 0xde, 0x0b, 0x37, 0xf2, 0x0c, 0x4b, 0x07, 0xb1, 0xde, 0x17, -0x7b, 0xe3, 0xc3, 0x8e, 0xf0, 0x1b, 0x87, 0xf0, 0xef, 0xd5, 0x37, 0x5e, 0xad, 0xfa, 0xd7, 0xed, -0xa4, 0x4c, 0x29, 0xa2, 0xd0, 0x9c, 0xc8, 0x9c, 0xe8, 0x7d, 0xf1, 0x3d, 0xe8, 0x57, 0x23, 0x22, -0x7f, 0x87, 0x07, 0xfc, 0xa9, 0x88, 0xbc, 0xd9, 0xd1, 0x75, 0x89, 0xf8, 0x2a, 0x52, 0xef, 0x01, -0xbf, 0xcf, 0x6f, 0x9f, 0x3c, 0xd0, 0xed, 0xa2, 0xf7, 0x1e, 0x78, 0x33, 0xa9, 0x64, 0x9c, 0xec, -0xe3, 0x5f, 0x3e, 0x8d, 0xe4, 0xcd, 0x64, 0xfb, 0xe4, 0x1a, 0x1a, 0xe8, 0x76, 0xd2, 0xd9, 0xfb, -0x8f, 0x25, 0x15, 0xe9, 0x64, 0x1f, 0xff, 0x72, 0xcc, 0xb1, 0x24, 0x53, 0xf3, 0x64, 0x1a, 0xee, -0x56, 0x4c, 0xef, 0xf5, 0x0d, 0x25, 0x15, 0xd3, 0x49, 0xf1, 0xcb, 0x71, 0xb8, 0x57, 0x2b, 0xb2, -0x0e, 0x19, 0x43, 0xd5, 0xca, 0x16, 0xc3, 0x23, 0xfa, 0xdc, 0x91, 0x73, 0xa2, 0xb3, 0x7e, 0xfc, -0xce, 0x13, 0x70, 0x03, 0x47, 0xc2, 0x3e, 0x2d, 0x44, 0x0e, 0xdd, 0x37, 0xf2, 0xe5, 0xc7, 0xf4, -0x7d, 0x1f, 0x23, 0x0e, 0x31, 0xbf, 0xb8, 0x7c, 0xec, 0x5e, 0x0f, 0x63, 0xe6, 0x46, 0xcc, 0xb9, -0x95, 0x96, 0xb9, 0xc1, 0x65, 0x79, 0x3f, 0x87, 0x3e, 0xef, 0x16, 0x77, 0xb4, 0xf3, 0x6c, 0x4c, -0xb3, 0xe1, 0xfd, 0xae, 0x58, 0xcc, 0x13, 0xf9, 0x95, 0x3a, 0x47, 0x50, 0xcc, 0x93, 0xa9, 0x2b, -0x59, 0x32, 0xab, 0x8a, 0xee, 0x24, 0x77, 0x3c, 0xaf, 0xdd, 0x76, 0x9d, 0xb9, 0x28, 0x37, 0xa8, -0x58, 0xd8, 0x5d, 0xb2, 0xef, 0xbc, 0x19, 0x51, 0xb2, 0x44, 0x9f, 0x23, 0x39, 0xee, 0x4e, 0x79, -0xbf, 0x1b, 0xb7, 0x87, 0x78, 0xd2, 0xe8, 0x1e, 0xe2, 0x19, 0xa0, 0x9f, 0x55, 0x9c, 0x77, 0x78, -0x5c, 0x4a, 0x8b, 0xb4, 0x1c, 0x3d, 0xd5, 0xaf, 0x9a, 0x69, 0x39, 0x9a, 0xd0, 0xcf, 0x79, 0x41, -0x12, 0x7a, 0x0e, 0x69, 0xae, 0xd9, 0x45, 0xa3, 0xe8, 0xbb, 0x68, 0xc6, 0x97, 0x23, 0x76, 0xd1, -0x54, 0xbe, 0x2f, 0x39, 0xd1, 0xd7, 0xf5, 0x39, 0xc4, 0x7c, 0xe3, 0x34, 0x9c, 0x4b, 0x85, 0xf5, -0xd7, 0xce, 0x21, 0xf2, 0x7e, 0xa5, 0x38, 0x5b, 0x93, 0x73, 0x5d, 0x77, 0xab, 0x01, 0x48, 0xb4, -0x8e, 0xb1, 0x39, 0xb6, 0xe4, 0x02, 0x66, 0xc8, 0x48, 0xbe, 0xc2, 0x71, 0x9e, 0x37, 0xaa, 0x12, -0xd6, 0xd4, 0x3c, 0x22, 0xc6, 0x3e, 0x49, 0x9c, 0x9d, 0x63, 0xd8, 0xba, 0x84, 0xc2, 0x9d, 0x26, -0x75, 0x2f, 0xdb, 0x0c, 0xf2, 0x1a, 0xb7, 0x13, 0x7d, 0xbd, 0xea, 0x23, 0xb2, 0xa4, 0xfc, 0xb7, -0x09, 0xef, 0x6b, 0xa5, 0xbb, 0x92, 0x71, 0x8b, 0x90, 0x27, 0x78, 0x9f, 0xa8, 0xc4, 0xeb, 0xd8, -0x29, 0x9b, 0xaf, 0xdb, 0x82, 0xe4, 0xbc, 0xad, 0x92, 0x5c, 0xe8, 0x7f, 0x93, 0x69, 0xaa, 0xbe, -0x77, 0x81, 0xe7, 0x6c, 0x8b, 0xa9, 0xc4, 0x24, 0x6a, 0xed, 0x3f, 0x06, 0xae, 0x72, 0x5b, 0x88, -0xcc, 0x6f, 0x82, 0xb3, 0xdc, 0x56, 0x25, 0xac, 0x26, 0xaf, 0xad, 0x3f, 0x7b, 0x42, 0x59, 0x46, -0x59, 0xe8, 0x09, 0x59, 0xbc, 0x4a, 0x83, 0x1c, 0x2d, 0x6a, 0xb1, 0xc0, 0xc6, 0x24, 0x63, 0x46, -0xf5, 0xa2, 0x7e, 0xbe, 0x0e, 0xef, 0x25, 0xd2, 0x6d, 0xfc, 0x78, 0xa5, 0xea, 0xda, 0xbd, 0xd3, -0xc2, 0xca, 0xe6, 0x6c, 0x6a, 0xcc, 0x2a, 0xad, 0xf0, 0xd4, 0x3a, 0xeb, 0x5d, 0x77, 0xb5, 0x93, -0x3b, 0xdb, 0xdc, 0xcb, 0x7b, 0xdd, 0x21, 0x97, 0xee, 0xb6, 0x14, 0x1a, 0x7b, 0x9d, 0x76, 0xf0, -0x7e, 0xed, 0xab, 0x5b, 0x49, 0x9c, 0x66, 0x93, 0x37, 0x7e, 0xaf, 0x93, 0xd8, 0x2f, 0x2f, 0x39, -0xe5, 0xfe, 0x9e, 0x44, 0x87, 0xee, 0x6b, 0xef, 0xb3, 0x90, 0x12, 0x74, 0xb9, 0x21, 0x89, 0x55, -0x85, 0x1e, 0x76, 0x37, 0xaa, 0x4d, 0x16, 0xaf, 0xc8, 0x33, 0x7a, 0xdd, 0x76, 0xd7, 0x73, 0xbc, -0x9a, 0xbe, 0xd8, 0xc7, 0x8b, 0xbc, 0x3b, 0x19, 0xcf, 0x43, 0x6b, 0x8a, 0x1c, 0x1d, 0x41, 0xd4, -0xc2, 0x1d, 0xda, 0xec, 0xa8, 0x72, 0xf4, 0xb9, 0x2c, 0x86, 0xbd, 0xe9, 0x8f, 0x14, 0x49, 0xb7, -0xc6, 0x83, 0xd6, 0x11, 0x01, 0xc5, 0x37, 0xe8, 0xbd, 0xe7, 0xdf, 0xb7, 0xeb, 0x76, 0x1f, 0x23, -0x18, 0x27, 0xb9, 0x85, 0xe3, 0x65, 0xe3, 0x7a, 0xd0, 0xd1, 0x9f, 0x9d, 0x23, 0x47, 0x3c, 0x37, -0xdd, 0xd3, 0x6e, 0xf8, 0xbc, 0x9e, 0x66, 0x50, 0x83, 0x31, 0xd7, 0xce, 0xb6, 0xab, 0x73, 0xd8, -0xe2, 0x74, 0x8c, 0x0d, 0xaf, 0xb2, 0x3c, 0x63, 0x64, 0x8c, 0xbd, 0x69, 0xb9, 0x33, 0x38, 0xd6, -0x82, 0x57, 0xac, 0xea, 0xe5, 0x5c, 0xbb, 0x6f, 0x21, 0x75, 0x62, 0xa0, 0x2f, 0x9b, 0xad, 0x26, -0x40, 0xb1, 0x6c, 0x35, 0x51, 0xf2, 0xf0, 0x61, 0xb5, 0xd8, 0x38, 0x09, 0xe8, 0xa2, 0xa8, 0xad, -0xac, 0x3a, 0xd9, 0x33, 0x90, 0x23, 0xd8, 0xb0, 0x41, 0x95, 0xab, 0xce, 0x52, 0x89, 0x32, 0x45, -0x58, 0x59, 0x64, 0x71, 0x5c, 0x72, 0x07, 0xe2, 0xc1, 0x3b, 0x75, 0xff, 0x98, 0xf1, 0x37, 0xdb, -0x35, 0x9d, 0x17, 0x0b, 0xeb, 0xa9, 0x88, 0xd7, 0xe4, 0x99, 0xe8, 0xaa, 0xc7, 0xe8, 0xe7, 0xde, -0x6d, 0xac, 0xd9, 0x29, 0xe5, 0x3c, 0xc5, 0xd6, 0x41, 0x4a, 0xad, 0xb7, 0x55, 0xc8, 0x9f, 0x27, -0xdc, 0x24, 0xc2, 0x4c, 0x08, 0xab, 0x36, 0x64, 0xd2, 0x13, 0x45, 0x34, 0xd6, 0x9e, 0xd6, 0xef, -0xa1, 0x40, 0x19, 0x46, 0x8d, 0xd5, 0x9a, 0xea, 0x2e, 0x0f, 0xfa, 0xb2, 0x85, 0xb5, 0x85, 0x59, -0xb7, 0x59, 0x79, 0x9f, 0xad, 0xcf, 0x73, 0x7f, 0x36, 0x70, 0xaf, 0xec, 0xc9, 0xf6, 0x04, 0x85, -0xb7, 0xcb, 0xd7, 0xfc, 0xfe, 0xb3, 0x64, 0x0d, 0x42, 0x1a, 0x1d, 0x6a, 0xd7, 0xfa, 0xd7, 0x25, -0xca, 0xfa, 0x7b, 0xe3, 0xfa, 0x8a, 0x85, 0x5f, 0xac, 0x53, 0xf9, 0xe7, 0xa5, 0xe6, 0xfc, 0x6e, -0xe0, 0x53, 0xb7, 0x3c, 0x41, 0x68, 0x7a, 0x32, 0x3f, 0x89, 0xf5, 0xb9, 0x90, 0x8f, 0x4f, 0xeb, -0xc2, 0x5b, 0xff, 0x83, 0x8b, 0x0b, 0x94, 0xba, 0x76, 0xcd, 0x61, 0x5e, 0xa5, 0x9f, 0x07, 0x51, -0x23, 0xb0, 0x94, 0x0b, 0xfe, 0x9d, 0xbb, 0x6b, 0x5d, 0x22, 0x47, 0xa9, 0x7e, 0xfd, 0xe5, 0xd7, -0xcf, 0x51, 0x49, 0xac, 0x41, 0x35, 0x7b, 0x48, 0x95, 0x56, 0x6b, 0x63, 0xad, 0x7c, 0xc5, 0x7b, -0xa6, 0x6e, 0x87, 0x6c, 0xd8, 0x42, 0x93, 0xbb, 0xb2, 0x48, 0xf6, 0xb2, 0x2c, 0x30, 0xd6, 0xef, -0xe6, 0x51, 0xe3, 0x1c, 0x8f, 0x62, 0x01, 0x5b, 0xa8, 0x7f, 0xdd, 0x62, 0xab, 0x80, 0x9a, 0x4c, -0x36, 0x68, 0x84, 0x53, 0x2d, 0x32, 0x62, 0xe3, 0x88, 0x29, 0x5a, 0x05, 0x15, 0x74, 0x5f, 0x6f, -0xbc, 0xa1, 0x71, 0x39, 0x38, 0x69, 0xf8, 0xf5, 0x43, 0x28, 0xbb, 0xec, 0xf6, 0x06, 0x2a, 0xf2, -0xef, 0xd7, 0x34, 0xe8, 0x39, 0x6c, 0x51, 0x52, 0xe6, 0x0f, 0xbe, 0x7e, 0xb8, 0xf2, 0x5f, 0xfa, -0xc8, 0x6f, 0x2b, 0x0b, 0xfe, 0xec, 0xe5, 0xb8, 0xd3, 0x9d, 0xe9, 0xc8, 0x1c, 0x5a, 0xe7, 0x7f, -0xc1, 0xce, 0xab, 0x72, 0x65, 0x33, 0x91, 0xd2, 0x4e, 0xfc, 0x3d, 0x97, 0x00, 0x4d, 0x6f, 0x25, -0xbe, 0x7b, 0x42, 0x60, 0xea, 0x20, 0x9e, 0x76, 0x79, 0xaa, 0xff, 0xe9, 0x65, 0xa4, 0x2b, 0x89, -0xb6, 0x1f, 0xa7, 0x84, 0x4b, 0x58, 0x48, 0x48, 0xc6, 0x7e, 0xf8, 0xe1, 0xf7, 0xdf, 0x62, 0x3c, -0x8b, 0x9d, 0x05, 0xf7, 0xff, 0x13, 0xd7, 0xfa, 0xeb, 0xee, 0x4c, 0xf4, 0xd3, 0xb7, 0x19, 0x32, -0xf6, 0xdd, 0xbb, 0xaf, 0x3b, 0xee, 0x77, 0x67, 0x72, 0x29, 0xb7, 0xe3, 0x6b, 0x2a, 0x52, 0xbd, -0xe3, 0xe1, 0xd9, 0xc7, 0x36, 0x27, 0x99, 0xfe, 0x17, 0x8e, 0x93, 0x28, 0x3b, 0x9b, 0xf5, 0x33, -0x51, 0xf2, 0x71, 0xe1, 0x5f, 0x87, 0xa1, 0xdb, 0x49, 0x81, 0xe3, 0x74, 0x7b, 0x35, 0x05, 0x18, -0xc2, 0xd8, 0x72, 0x2a, 0x66, 0x58, 0x66, 0xee, 0x27, 0xd3, 0x71, 0x3e, 0x61, 0xfa, 0x88, 0xc0, -0x44, 0x30, 0xc0, 0xd6, 0xea, 0xd0, 0x6c, 0x81, 0x0d, 0x94, 0xdc, 0x58, 0x79, 0x7b, 0x25, 0xb0, -0x81, 0xaf, 0x31, 0x02, 0xf7, 0x46, 0x2b, 0xe3, 0x16, 0xe1, 0xb5, 0xb4, 0x48, 0x35, 0xdf, 0x0e, -0xad, 0x9b, 0x8a, 0xb8, 0xc6, 0x62, 0x45, 0xb2, 0x24, 0xc4, 0x5a, 0x38, 0x51, 0x2f, 0xbe, 0x0a, -0xcc, 0x65, 0xbb, 0xa2, 0xb7, 0x54, 0x4f, 0xe4, 0x90, 0xf0, 0xa1, 0xa4, 0xd7, 0xf1, 0x51, 0xae, -0x1f, 0xe3, 0x15, 0x75, 0xcc, 0xd2, 0xdb, 0xb5, 0xdd, 0xa4, 0x36, 0x31, 0x96, 0x4b, 0x6d, 0xd6, -0x30, 0x20, 0x1d, 0xc4, 0xf7, 0xeb, 0x03, 0x7a, 0x4b, 0x98, 0xca, 0xa8, 0xb1, 0x1a, 0xb0, 0x8e, -0x96, 0x5d, 0x7d, 0x4d, 0xd9, 0xa8, 0x8f, 0x85, 0x00, 0x5f, 0x20, 0x55, 0x0f, 0x48, 0x4e, 0xa8, -0x55, 0x28, 0x68, 0x99, 0x40, 0xa6, 0xb8, 0x2b, 0x1a, 0x8c, 0x3b, 0x10, 0x53, 0xa1, 0xdb, 0xc8, -0x29, 0xb2, 0xc3, 0xaa, 0x8f, 0xd2, 0xe8, 0x4d, 0x73, 0xd3, 0x6f, 0x05, 0x63, 0x69, 0x4a, 0x91, -0x75, 0x7a, 0x62, 0x1a, 0x06, 0xa7, 0x59, 0xb9, 0x4a, 0x53, 0x87, 0x75, 0xdb, 0x34, 0xa7, 0xc5, -0x53, 0x1f, 0xdd, 0xcc, 0x9e, 0x62, 0x47, 0x77, 0x06, 0xb8, 0x5a, 0x68, 0x63, 0xa8, 0xea, 0xaf, -0x8f, 0xf2, 0xe9, 0x39, 0x77, 0x6e, 0x56, 0x55, 0xe7, 0x0a, 0xca, 0x52, 0x42, 0x3e, 0x1b, 0xa4, -0xe6, 0xb0, 0x7e, 0x22, 0x51, 0x3c, 0xea, 0x8b, 0x92, 0x32, 0x7b, 0x05, 0xe5, 0x92, 0xf3, 0x2b, -0x3c, 0x57, 0xec, 0xc2, 0xef, 0xcd, 0x74, 0xab, 0x32, 0xf7, 0x91, 0x57, 0xd9, 0x9e, 0x7e, 0x64, -0x50, 0x9c, 0x5a, 0x04, 0x29, 0xd5, 0xc9, 0x23, 0x00, 0xcf, 0x21, 0xf1, 0x3e, 0x0c, 0x45, 0xc4, -0x9d, 0xe0, 0x56, 0xf7, 0x57, 0xbd, 0x70, 0xa0, 0x59, 0x2e, 0x21, 0xf7, 0x5c, 0x57, 0x63, 0xf4, -0x91, 0xf8, 0xe3, 0x62, 0xa5, 0x4d, 0x8e, 0x35, 0xd3, 0xd4, 0xd1, 0xbd, 0x07, 0xaa, 0xa4, 0xef, -0xa7, 0xd2, 0x2d, 0xc3, 0x30, 0x86, 0x3d, 0x21, 0x64, 0xe2, 0x5a, 0x27, 0xb9, 0xea, 0x85, 0x9e, -0x15, 0x16, 0xfa, 0xc5, 0x73, 0xc2, 0x0e, 0x53, 0x2b, 0x7d, 0x42, 0x9c, 0x95, 0xd4, 0x04, 0xb9, -0x64, 0xcb, 0xa8, 0xc6, 0x52, 0xf9, 0xbe, 0x29, 0x39, 0xba, 0xe2, 0x77, 0xe5, 0x3c, 0xf8, 0xdb, -0x8a, 0x31, 0xf1, 0xaf, 0xa8, 0x6e, 0x50, 0x55, 0x4f, 0x62, 0xaa, 0x18, 0x17, 0x6d, 0xed, 0x2a, -0x8f, 0x8b, 0x8a, 0x3e, 0x2e, 0xde, 0xb8, 0x2b, 0xb9, 0x38, 0x8f, 0xf7, 0x41, 0xa9, 0xb2, 0x73, -0x85, 0xe9, 0x21, 0xd1, 0xdb, 0x2c, 0x68, 0x07, 0xbf, 0x31, 0x27, 0x06, 0x89, 0x1b, 0x2d, 0xaf, -0x8e, 0xee, 0x41, 0x57, 0x58, 0x9f, 0xab, 0x0d, 0x4c, 0x31, 0xf6, 0xec, 0x8d, 0xb0, 0x5d, 0xf4, -0x6e, 0x7d, 0x4f, 0xdf, 0x05, 0xfd, 0xf4, 0x13, 0xda, 0x79, 0xbd, 0x7d, 0x7c, 0x8e, 0x29, 0xce, -0xe9, 0xc2, 0x8f, 0xdf, 0x79, 0x8c, 0x7f, 0xd7, 0xd9, 0xf5, 0x29, 0xf6, 0x94, 0xbb, 0xc5, 0x09, -0x14, 0x4b, 0x47, 0xf7, 0x7d, 0x72, 0xdd, 0x8f, 0x2d, 0x1f, 0xb7, 0x63, 0x8d, 0xf7, 0xf7, 0xfe, -0xfe, 0x9d, 0x7d, 0xf1, 0x3f, 0x72, 0x67, 0x5f, 0x05, 0x4a, 0x5f, 0xaa, 0x5b, 0x74, 0x0e, 0x0d, -0x29, 0xfa, 0x59, 0x85, 0x45, 0xfa, 0x0e, 0x4a, 0x67, 0x72, 0x5a, 0xa5, 0xd0, 0x84, 0x2c, 0xb8, -0xb2, 0x78, 0xa7, 0xe7, 0x96, 0xc6, 0x99, 0x95, 0x64, 0x2d, 0x2e, 0x24, 0xf3, 0xd6, 0x15, 0x24, -0x41, 0x5b, 0xca, 0x36, 0xe6, 0xcf, 0x3e, 0xa8, 0x93, 0xb5, 0x63, 0xa3, 0x76, 0xbe, 0xca, 0xb8, -0x3d, 0xa3, 0x62, 0xa5, 0x71, 0xd8, 0x7f, 0x63, 0x3f, 0xef, 0xf8, 0xcb, 0x12, 0xbe, 0x85, 0x57, -0x90, 0xb9, 0x2d, 0xb5, 0x0f, 0xd4, 0xb0, 0x27, 0xfd, 0xbf, 0x76, 0xba, 0x47, 0xf6, 0x1f, 0x3a, -0xdd, 0xe3, 0x2a, 0xdc, 0xfe, 0xe9, 0xa7, 0x7b, 0xc8, 0x69, 0xab, 0xe3, 0x8b, 0x62, 0xff, 0x7d, -0xc4, 0x59, 0x2b, 0x56, 0xd0, 0x89, 0x3e, 0xe6, 0xd3, 0x3d, 0xe2, 0x0d, 0xc0, 0xf5, 0x32, 0xd4, -0xd8, 0x74, 0x55, 0x7d, 0x07, 0xd9, 0xb2, 0xe2, 0x0f, 0xd5, 0x97, 0x67, 0x31, 0xc7, 0xb6, 0xcb, -0x1f, 0x7f, 0xfa, 0x07, 0xef, 0x64, 0xf6, 0x59, 0x78, 0x6f, 0x2e, 0x7e, 0xef, 0xf2, 0x59, 0x4a, -0x1a, 0x7d, 0x93, 0xae, 0x53, 0xef, 0xff, 0xf4, 0x9d, 0xc4, 0x75, 0xc6, 0x3a, 0x77, 0x8a, 0x1e, -0xd2, 0xd4, 0xb0, 0x1c, 0x6d, 0x42, 0xa2, 0xed, 0x0b, 0xf5, 0xf6, 0x37, 0x60, 0x13, 0xed, 0xc2, -0xd0, 0xfd, 0x9e, 0x96, 0xf9, 0x53, 0x4e, 0xf1, 0x90, 0x53, 0x73, 0xba, 0xe8, 0xb7, 0xf5, 0xe0, -0x5b, 0x29, 0x1e, 0xf1, 0x96, 0x73, 0xd4, 0x1b, 0x5a, 0xdf, 0x9c, 0x73, 0xf4, 0x9c, 0x61, 0x69, -0xbb, 0x93, 0xf6, 0xc7, 0x73, 0xa0, 0xe1, 0xec, 0x37, 0x76, 0xf3, 0xc8, 0xfa, 0xec, 0xad, 0x2f, -0x44, 0x76, 0x65, 0x2e, 0x73, 0x0f, 0x3e, 0x1f, 0x01, 0x5a, 0xf1, 0xe8, 0xee, 0x9f, 0xd7, 0xc6, -0xec, 0x04, 0x3a, 0xc8, 0x29, 0xd2, 0xf9, 0xca, 0xea, 0xce, 0xc8, 0xbb, 0xe5, 0x0e, 0xcf, 0x44, -0x67, 0xc4, 0x9d, 0x5d, 0x42, 0xa1, 0x90, 0x9a, 0xe7, 0xcf, 0x61, 0x1b, 0x9f, 0x05, 0xf7, 0x3b, -0xaa, 0x23, 0x03, 0x91, 0x03, 0x62, 0x5f, 0x67, 0x56, 0x2c, 0xb4, 0x27, 0xb4, 0xe8, 0x0c, 0xf4, -0xa5, 0x72, 0xdd, 0xf6, 0x81, 0xf5, 0xae, 0x51, 0xd8, 0x00, 0x51, 0x59, 0x3c, 0x07, 0xbf, 0xa1, -0xb8, 0xf0, 0xa4, 0x7c, 0xa5, 0x14, 0xd0, 0x95, 0xa9, 0x7c, 0xba, 0x43, 0x85, 0xd2, 0x83, 0xe7, -0x8a, 0xab, 0x2d, 0x22, 0xae, 0x9b, 0x47, 0x48, 0xe4, 0x51, 0x36, 0x26, 0x8f, 0x90, 0xc8, 0xa3, -0x46, 0xe4, 0x51, 0x73, 0x8d, 0x55, 0x85, 0xe0, 0x75, 0x7e, 0x85, 0xed, 0x5b, 0xd9, 0x97, 0xa1, -0x63, 0x06, 0xf1, 0x09, 0x42, 0xfa, 0x5e, 0x10, 0xf4, 0xbb, 0x44, 0x68, 0x65, 0xfe, 0x9b, 0x4f, -0xc9, 0x35, 0x90, 0xe0, 0xcf, 0x54, 0x7d, 0x00, 0x49, 0xbe, 0x56, 0x3b, 0xb7, 0x92, 0x7d, 0x89, -0x7e, 0x28, 0x76, 0x5d, 0x04, 0x8d, 0x53, 0x29, 0x3f, 0x11, 0xbf, 0x97, 0xc0, 0xf1, 0x2e, 0x1b, -0x72, 0xfe, 0x99, 0x94, 0x9c, 0xaf, 0xba, 0x3a, 0x27, 0x1e, 0x7b, 0x4a, 0xf8, 0x7e, 0x3d, 0x83, -0x6f, 0xce, 0xcd, 0x0a, 0xa6, 0xcf, 0x46, 0x4b, 0xa7, 0xf9, 0x32, 0x24, 0x00, 0xb6, 0xea, 0xb7, -0xcd, 0xd0, 0x34, 0x67, 0x92, 0xad, 0xfb, 0x65, 0x6b, 0x7a, 0x87, 0xc8, 0x05, 0xee, 0x67, 0xec, -0xb9, 0xdb, 0x44, 0xda, 0x25, 0x96, 0x35, 0x0b, 0x21, 0xad, 0x6b, 0x23, 0xfe, 0x60, 0x71, 0xa5, -0x8b, 0xbd, 0x64, 0xb1, 0x57, 0xc5, 0xac, 0x39, 0x1f, 0x08, 0x9b, 0xac, 0x8b, 0xa0, 0x4c, 0xb6, -0xcd, 0x63, 0x7f, 0xe1, 0x17, 0xc4, 0x1e, 0x07, 0x70, 0x84, 0xc8, 0x6a, 0x2d, 0xdf, 0x97, 0xc5, -0x27, 0x16, 0xb0, 0x7e, 0x78, 0x3b, 0xdb, 0xd9, 0x17, 0x08, 0xc9, 0xd5, 0xac, 0xf0, 0xca, 0x30, -0x7b, 0x97, 0x67, 0x3a, 0x3e, 0x6d, 0x94, 0x77, 0x36, 0xf2, 0x6e, 0xc5, 0x75, 0xfd, 0x8f, 0x78, -0x27, 0xc6, 0xd6, 0x8f, 0xf5, 0x3f, 0xe2, 0x01, 0x55, 0x5f, 0xd7, 0x07, 0xc9, 0xb3, 0x64, 0x1d, -0xdc, 0xc2, 0x3b, 0x1b, 0x3a, 0xf2, 0x87, 0x76, 0x8c, 0x9e, 0x08, 0x28, 0xbc, 0x8d, 0xb0, 0x57, -0xad, 0x10, 0xf0, 0x55, 0xa3, 0xfb, 0xee, 0x29, 0xac, 0xd6, 0x46, 0x0c, 0x4f, 0x23, 0x67, 0xd3, -0x9e, 0x46, 0xcc, 0x63, 0x3c, 0x8d, 0x74, 0x69, 0x87, 0x0c, 0xb8, 0x4e, 0xf3, 0x4e, 0x99, 0x40, -0xb0, 0x24, 0xf4, 0x93, 0x57, 0x5b, 0xda, 0xf7, 0x54, 0xb6, 0x34, 0xa7, 0x70, 0xc2, 0xe7, 0xb3, -0x89, 0x53, 0x08, 0xcd, 0x6e, 0x2f, 0x6b, 0x7d, 0xab, 0x08, 0x25, 0x8d, 0x14, 0x46, 0x79, 0xc7, -0xc7, 0x9c, 0xf7, 0xc9, 0xe6, 0x9e, 0xb4, 0xfa, 0xc2, 0xe1, 0x75, 0x6c, 0x49, 0x58, 0xc5, 0x58, -0xaa, 0x15, 0xbe, 0x4a, 0x74, 0x1f, 0x5f, 0x21, 0xdd, 0xf7, 0x09, 0x63, 0x2a, 0xb5, 0x0b, 0xf7, -0xca, 0x15, 0x63, 0x27, 0xc8, 0x98, 0x3d, 0xb8, 0x86, 0x5f, 0xaf, 0x72, 0x1d, 0x16, 0x61, 0x6f, -0x62, 0x3a, 0x96, 0x6c, 0xec, 0xc1, 0xf8, 0x7f, 0x31, 0xad, 0xff, 0x5f, 0x10, 0x78, 0xab, 0x75, -0xd7, 0x97, 0x53, 0x64, 0xa0, 0x24, 0xd4, 0xff, 0x40, 0x2b, 0x99, 0x9a, 0x4a, 0x4d, 0x91, 0x03, -0x65, 0x19, 0x91, 0x97, 0x76, 0xad, 0xc5, 0x5b, 0x8d, 0x38, 0xff, 0x28, 0xfb, 0xe1, 0xc3, 0xce, -0x49, 0xab, 0x88, 0xcf, 0x48, 0x80, 0xcc, 0x17, 0xb0, 0x4c, 0x4f, 0xef, 0xda, 0x41, 0x6b, 0xda, -0xa6, 0xff, 0xbf, 0xbc, 0x6b, 0xc7, 0xfb, 0xff, 0xda, 0xae, 0x9d, 0x66, 0xde, 0xb5, 0x53, 0x79, -0x8e, 0xea, 0xc3, 0x03, 0x71, 0xf3, 0xb4, 0xe5, 0x34, 0x9f, 0x62, 0xa0, 0x82, 0x0b, 0xb3, 0xc2, -0x46, 0x3b, 0x54, 0xb3, 0x2f, 0x70, 0x63, 0x57, 0x8e, 0xee, 0x07, 0xe2, 0xa4, 0x7b, 0xdf, 0xf8, -0x5d, 0x39, 0x6c, 0x95, 0x21, 0x68, 0xe2, 0xa8, 0xc1, 0x73, 0x03, 0x4e, 0x32, 0xac, 0xfd, 0x06, -0x74, 0x1b, 0xa2, 0xfe, 0x9e, 0x7b, 0xa1, 0x35, 0x5f, 0xad, 0x5b, 0xb0, 0xb4, 0xea, 0x37, 0xa9, -0x39, 0xbb, 0x79, 0x24, 0xba, 0xdf, 0x1f, 0x64, 0x99, 0xfc, 0x8d, 0xc3, 0xfe, 0x99, 0x7d, 0xba, -0x7e, 0x74, 0x56, 0x09, 0xbd, 0x7e, 0x90, 0xcf, 0x19, 0x40, 0xd8, 0x94, 0xc4, 0x82, 0xc6, 0x60, -0x20, 0xc9, 0x6f, 0xd1, 0x6f, 0xf5, 0x51, 0xfc, 0x6e, 0xd6, 0xba, 0xf8, 0x5c, 0xb3, 0x78, 0x8e, -0xa1, 0x69, 0xb0, 0x5c, 0x5e, 0xec, 0xdf, 0x09, 0x09, 0xb7, 0xc4, 0x85, 0x7c, 0x02, 0x41, 0x7d, -0x5e, 0xcb, 0x3f, 0xa5, 0xbf, 0x32, 0x9e, 0x1b, 0xf8, 0x71, 0x1f, 0x6b, 0x16, 0xc5, 0x5c, 0xc2, -0x6d, 0x48, 0xd3, 0x47, 0xaa, 0xcd, 0x90, 0xef, 0x6d, 0x22, 0xac, 0xbb, 0x8f, 0x6e, 0x0f, 0x51, -0x11, 0x4b, 0x5e, 0xd7, 0xee, 0x86, 0x1c, 0xdd, 0xdf, 0x3a, 0x2a, 0xbf, 0xa2, 0x1d, 0x75, 0x4b, -0xcf, 0x5c, 0x6b, 0xc3, 0x3b, 0xef, 0xc6, 0xb3, 0xff, 0xee, 0x2c, 0xc9, 0x71, 0x8b, 0x98, 0x15, -0x95, 0xe2, 0x0e, 0xb4, 0xf0, 0xcd, 0x2d, 0xb9, 0x68, 0xd8, 0xe4, 0x4d, 0x41, 0xba, 0x79, 0xcc, -0x79, 0xc0, 0xbc, 0xf2, 0x84, 0x71, 0x7b, 0xe4, 0xc8, 0xd5, 0xbb, 0x5f, 0xc7, 0xec, 0xe5, 0x9f, -0x88, 0x91, 0x33, 0x47, 0xdf, 0x7b, 0x83, 0x52, 0x72, 0x38, 0x4d, 0x6a, 0x1e, 0x32, 0xb5, 0x3f, -0xd4, 0xd1, 0xf0, 0x55, 0x3e, 0x65, 0x49, 0xe6, 0x35, 0x07, 0xc7, 0x66, 0x67, 0x44, 0x95, 0x20, -0x73, 0xa2, 0xcf, 0xc7, 0x2f, 0x39, 0xa2, 0x6a, 0x0e, 0xf8, 0x8f, 0xe5, 0x85, 0x37, 0xe2, 0x16, -0xde, 0xa3, 0xe2, 0x7a, 0x58, 0xb5, 0xe8, 0x3b, 0xcd, 0xe3, 0x67, 0x11, 0x67, 0x7b, 0xe1, 0x3d, -0x68, 0xfa, 0x16, 0x7c, 0x6d, 0x65, 0xff, 0x7d, 0x46, 0xcc, 0x39, 0x25, 0x16, 0xdd, 0x1c, 0x67, -0xff, 0x31, 0x59, 0xbc, 0xc6, 0xf8, 0x81, 0xab, 0xfe, 0x11, 0x3c, 0xe7, 0x18, 0xbd, 0x3d, 0x6d, -0xff, 0x58, 0x4a, 0x18, 0x09, 0xcb, 0x4a, 0x4d, 0x89, 0x92, 0x68, 0x28, 0x11, 0x38, 0x3c, 0xa0, -0xcf, 0xa7, 0x40, 0x43, 0xd1, 0x2d, 0x8d, 0xfb, 0x1a, 0x36, 0xb9, 0x28, 0x31, 0x35, 0xf5, 0xce, -0xde, 0xd2, 0x62, 0x3d, 0xa7, 0x7a, 0x76, 0x27, 0x5b, 0xa5, 0xd8, 0x5a, 0x7f, 0x86, 0x6a, 0x4e, -0x59, 0x79, 0xa7, 0xcf, 0xee, 0x90, 0xd8, 0x9e, 0x4a, 0xf1, 0x51, 0xae, 0x43, 0xf7, 0x32, 0x5c, -0xe0, 0xf2, 0x41, 0x7e, 0x6f, 0x13, 0x56, 0xd3, 0xaf, 0xe9, 0xd6, 0x78, 0xd7, 0x9c, 0x03, 0xf4, -0x03, 0xc6, 0x82, 0xbe, 0xff, 0x89, 0xad, 0xa7, 0x8b, 0x4c, 0xae, 0x90, 0xa7, 0xca, 0x5d, 0xed, -0x4c, 0xfb, 0x6b, 0x29, 0x99, 0x14, 0x79, 0xa9, 0x24, 0xfc, 0x93, 0x97, 0x5a, 0xc8, 0xb4, 0xb4, -0x6c, 0x5e, 0x69, 0xdd, 0x4f, 0x7f, 0x89, 0xa7, 0x7b, 0x8c, 0xb5, 0x8c, 0xa9, 0xe0, 0x99, 0xb9, -0x5b, 0xce, 0x92, 0xed, 0xc7, 0xbf, 0x68, 0x96, 0x20, 0x47, 0x2f, 0xa5, 0x3c, 0xbc, 0xe5, 0xfc, -0xf8, 0x68, 0x73, 0xc0, 0x5d, 0xab, 0x16, 0x31, 0xdf, 0x54, 0xc2, 0xba, 0x85, 0x35, 0xaf, 0xa8, -0xe1, 0x99, 0x44, 0x7b, 0x05, 0x7f, 0xf2, 0x11, 0x79, 0x97, 0x98, 0x5d, 0x6d, 0xe4, 0x6d, 0x7c, -0xa0, 0x7f, 0xe3, 0x22, 0xd9, 0x1d, 0x6c, 0xdc, 0xa8, 0xcc, 0x7d, 0xf8, 0x25, 0x87, 0x25, 0xd6, -0x1d, 0xed, 0x6e, 0x83, 0x24, 0xae, 0xd4, 0x3d, 0xfc, 0x4b, 0xc5, 0x12, 0x4b, 0x46, 0x93, 0x78, -0xfb, 0xd0, 0x6d, 0x6e, 0x96, 0xc2, 0xbd, 0xbb, 0x7a, 0xdb, 0xb2, 0x1c, 0x13, 0xf0, 0xd4, 0xdd, -0xdf, 0xdd, 0x1a, 0xf0, 0x49, 0xba, 0xff, 0x18, 0xe8, 0xf6, 0x59, 0xf3, 0x2e, 0x6b, 0xae, 0xfa, -0x6d, 0xba, 0x76, 0xe7, 0xbb, 0x41, 0x58, 0xfb, 0xef, 0xbb, 0xf2, 0xa1, 0xf0, 0x3e, 0xdb, 0x03, -0xdd, 0x36, 0xab, 0x7e, 0x1b, 0xa4, 0xac, 0x27, 0x21, 0xa7, 0x72, 0xbf, 0x4b, 0xa5, 0x99, 0xc0, -0xbe, 0x74, 0x47, 0x77, 0xb5, 0x0b, 0x09, 0xae, 0x77, 0x6c, 0xae, 0xc8, 0x63, 0x50, 0x48, 0x4d, -0xeb, 0x13, 0x45, 0x6d, 0x39, 0xa9, 0xdc, 0x01, 0xe7, 0x2b, 0xbc, 0x9f, 0x5c, 0xb5, 0x71, 0x88, -0x52, 0xc5, 0x6f, 0x68, 0xb7, 0x54, 0xa9, 0xab, 0x84, 0xed, 0xc4, 0x7d, 0x09, 0x4f, 0x5b, 0xb6, -0xfe, 0xc5, 0x5f, 0xff, 0x03, 0x24, 0x24, 0x93, 0x8a, 0x37, 0x65, 0xde, 0xc3, 0xff, 0x20, 0xd2, -0x8e, 0xc2, 0x18, 0xe5, 0xd4, 0x62, 0xc7, 0x0b, 0xbf, 0x2d, 0xd2, 0x2d, 0x64, 0x53, 0x7b, 0x9c, -0x7e, 0x7f, 0x9b, 0x8e, 0xbc, 0xa9, 0xb7, 0xe9, 0x5d, 0xa2, 0xf5, 0x8a, 0x26, 0x32, 0x86, 0x7d, -0xd0, 0x90, 0xbd, 0xd9, 0xc5, 0x21, 0xb4, 0xd8, 0x11, 0xb4, 0x93, 0xab, 0xac, 0xaa, 0xb4, 0x5a, -0xb4, 0x58, 0x81, 0x61, 0x07, 0xff, 0xf9, 0x2d, 0xe6, 0x41, 0x8b, 0xb9, 0x58, 0xab, 0x51, 0x42, -0x7a, 0x8b, 0xb9, 0x08, 0x4f, 0xc2, 0x1e, 0x7e, 0xcf, 0x03, 0x8b, 0x64, 0x57, 0xd5, 0xb8, 0x96, -0x3a, 0x92, 0x6e, 0xa9, 0x83, 0xe3, 0x5a, 0x6a, 0x37, 0x60, 0xf4, 0xa2, 0x85, 0x7a, 0x76, 0xf5, -0xb4, 0xf1, 0x0e, 0x0e, 0xbf, 0xd1, 0x5a, 0x16, 0x1e, 0xef, 0x58, 0x27, 0xf7, 0x99, 0xc7, 0xb4, -0x41, 0x96, 0xf0, 0x6e, 0xcc, 0xd7, 0x84, 0x71, 0xed, 0xd0, 0x1c, 0x7d, 0x9e, 0xbc, 0x89, 0x40, -0x5b, 0x2e, 0x7f, 0x65, 0xe0, 0xfc, 0x23, 0x2a, 0x17, 0x58, 0xcf, 0xe1, 0x30, 0x25, 0x8a, 0xf7, -0x62, 0x03, 0xef, 0x59, 0xf8, 0x7a, 0xdf, 0x95, 0x63, 0x02, 0xef, 0xcf, 0x93, 0x1f, 0x6d, 0x65, -0xd3, 0xbf, 0xfb, 0x6b, 0xfe, 0xa6, 0x59, 0xb4, 0x94, 0x19, 0xb8, 0x4f, 0x7d, 0x31, 0x29, 0xfd, -0xcd, 0x13, 0xfc, 0x0d, 0xe3, 0xbb, 0xc1, 0xc0, 0x37, 0x5b, 0x1d, 0x7a, 0x26, 0x96, 0x52, 0x89, -0xc9, 0x99, 0x1d, 0x5d, 0x17, 0xcf, 0x7d, 0xbd, 0xe1, 0x0d, 0xe8, 0x6f, 0xaf, 0x83, 0x2f, 0xe0, -0x6e, 0x5e, 0x69, 0xe2, 0x55, 0xf4, 0xfa, 0xe7, 0x3e, 0x7d, 0x52, 0xb7, 0xf4, 0xa3, 0xbe, 0x5f, -0x37, 0xfe, 0x23, 0x24, 0xde, 0x5f, 0x43, 0x1f, 0xc2, 0xdd, 0xac, 0x04, 0x1d, 0x7c, 0x2a, 0x90, -0x45, 0x89, 0x3a, 0xaa, 0x99, 0xce, 0x3f, 0x4d, 0x0a, 0x29, 0xb9, 0x49, 0x99, 0xeb, 0x08, 0x0a, -0xfd, 0xe2, 0x71, 0xee, 0xf1, 0x15, 0x39, 0xec, 0x55, 0x87, 0x7d, 0xe8, 0xb0, 0x57, 0x1d, 0x5e, -0x57, 0x10, 0x16, 0xb8, 0xd6, 0x94, 0x9c, 0x5e, 0x7a, 0xdf, 0x9d, 0x35, 0x24, 0xdd, 0x59, 0x4d, -0xf2, 0x9d, 0x61, 0x32, 0x4f, 0xaf, 0xd2, 0xcf, 0x1a, 0xd7, 0x67, 0xd1, 0x53, 0x7a, 0x8a, 0x78, -0x9e, 0x3b, 0xfa, 0xec, 0xcf, 0xd0, 0x57, 0x19, 0x84, 0x5e, 0x7b, 0x8c, 0xe5, 0x74, 0x3e, 0x69, -0x5c, 0x9f, 0x15, 0xd5, 0xb5, 0x36, 0x70, 0x2f, 0x37, 0xb7, 0x2e, 0x46, 0x0d, 0x6f, 0xa0, 0x99, -0x0a, 0x20, 0x21, 0x5c, 0xf2, 0x43, 0x77, 0x2f, 0x8c, 0x68, 0x23, 0xde, 0x56, 0xb9, 0x82, 0x4f, -0x57, 0xee, 0xb0, 0x0d, 0x25, 0x31, 0x4a, 0x1e, 0x43, 0xdc, 0xf1, 0x8e, 0x29, 0xe2, 0x59, 0x9c, -0xbc, 0xca, 0xfa, 0xad, 0x12, 0x82, 0x5c, 0x71, 0x8c, 0xbd, 0xfd, 0x83, 0x8b, 0x4e, 0x15, 0xb4, -0x14, 0x53, 0x0a, 0xe5, 0xbb, 0xf5, 0x73, 0xa8, 0xd9, 0xe7, 0xbf, 0x21, 0x77, 0x5c, 0xc0, 0x7d, -0x04, 0xf7, 0x8b, 0xd7, 0x9e, 0x8d, 0x8b, 0xda, 0x1b, 0xfb, 0x20, 0x2f, 0xaf, 0x5c, 0xb0, 0x49, -0xad, 0x80, 0x0c, 0xeb, 0x89, 0x5b, 0xc5, 0x9e, 0x67, 0x84, 0xfd, 0xfb, 0x89, 0x86, 0x4d, 0x81, -0x2e, 0xb2, 0xbd, 0xf1, 0xbe, 0xd4, 0xab, 0x84, 0xaa, 0x91, 0x5b, 0xca, 0xeb, 0x29, 0x42, 0xa7, -0xa4, 0x43, 0xd3, 0xbe, 0x50, 0xef, 0x84, 0x9e, 0x44, 0x05, 0x77, 0xb2, 0x0d, 0xd9, 0x54, 0xa1, -0xb3, 0x89, 0xfd, 0xa9, 0x3e, 0xe9, 0xc6, 0x20, 0x7d, 0xe9, 0xc6, 0x4a, 0xca, 0xbf, 0x31, 0x44, -0x05, 0xfa, 0x2c, 0xb8, 0xb4, 0xec, 0xef, 0x35, 0x52, 0xf4, 0x35, 0x3f, 0x11, 0x3b, 0x26, 0xd4, -0x08, 0xcb, 0xbf, 0x3a, 0xcc, 0xa7, 0xef, 0xaa, 0x7c, 0x51, 0xfc, 0xbe, 0x9a, 0xf6, 0x76, 0x40, -0xb6, 0x22, 0x3a, 0xef, 0xd5, 0xcf, 0x14, 0x0a, 0xfe, 0x8a, 0x3d, 0xbe, 0xe4, 0xbc, 0x71, 0xe4, -0xab, 0x7d, 0x3b, 0x48, 0x9c, 0x33, 0x94, 0x3d, 0x23, 0x22, 0x95, 0xcd, 0xa8, 0x95, 0x4a, 0xf4, -0xb1, 0x85, 0x57, 0x4f, 0x91, 0x77, 0x41, 0x6a, 0x2e, 0x5e, 0xb7, 0x19, 0xf9, 0x6a, 0x84, 0x8a, -0x6f, 0x83, 0x74, 0x4b, 0xe5, 0x62, 0x57, 0x44, 0x19, 0x7e, 0xf3, 0xa9, 0x82, 0xd3, 0xa3, 0xa5, -0x72, 0xd9, 0xe2, 0xf1, 0x54, 0xdf, 0x3f, 0x4f, 0xe4, 0x55, 0x92, 0x28, 0xc5, 0x2f, 0x4e, 0xa9, -0x24, 0x3b, 0xc7, 0xe5, 0xb8, 0xe9, 0xcb, 0x91, 0xee, 0x29, 0x41, 0xfa, 0x32, 0x61, 0x1c, 0x22, -0xc5, 0x6f, 0xd2, 0xed, 0x79, 0x52, 0x7b, 0x25, 0xdc, 0x62, 0x8e, 0xc5, 0xc9, 0x27, 0x91, 0x46, -0xd3, 0xfd, 0x37, 0xaa, 0xf7, 0x5f, 0x6f, 0x90, 0x4f, 0xb1, 0x6d, 0xf6, 0xa6, 0xad, 0xaa, 0x1d, -0x6c, 0xb9, 0x20, 0x4e, 0x68, 0x67, 0x69, 0xfe, 0xba, 0x12, 0x91, 0x22, 0x41, 0xb7, 0xd4, 0xf7, -0xd0, 0x66, 0xa0, 0x83, 0xb6, 0x6a, 0x9a, 0x52, 0xc5, 0xbd, 0x87, 0x65, 0x48, 0x31, 0x1b, 0x7b, -0x72, 0x96, 0xdb, 0x90, 0x54, 0xac, 0xa9, 0x35, 0x69, 0x7d, 0x1f, 0x1d, 0xcf, 0xf7, 0x28, 0xe2, -0xc4, 0x58, 0x47, 0xf2, 0xab, 0xd0, 0x6f, 0x5d, 0xc6, 0xd9, 0x4d, 0x9d, 0xa4, 0xe6, 0x29, 0xd0, -0x13, 0xa1, 0xf9, 0x5a, 0x6f, 0x81, 0x0e, 0x7c, 0x4b, 0x25, 0x59, 0x5d, 0x8d, 0x4e, 0x8b, 0xd2, -0xa0, 0xef, 0x25, 0x11, 0x1a, 0xdf, 0xdb, 0x86, 0x27, 0xb8, 0xe1, 0x37, 0x3a, 0x84, 0x2f, 0x74, -0x33, 0xc3, 0xa7, 0x5a, 0x78, 0x06, 0x3b, 0xad, 0x13, 0xeb, 0x7e, 0x4d, 0x47, 0xf5, 0xee, 0xa2, -0x68, 0x4f, 0xbc, 0x88, 0x75, 0xda, 0x3f, 0x46, 0xf3, 0x1e, 0xa3, 0xd5, 0xca, 0xfa, 0xee, 0xba, -0x51, 0xbf, 0xbd, 0xee, 0x88, 0x9b, 0x3c, 0x26, 0xaf, 0x54, 0x94, 0xe1, 0xaa, 0x4f, 0x7b, 0x5d, -0xcb, 0x16, 0x33, 0x73, 0xcd, 0xc2, 0x7e, 0xd0, 0xc2, 0xb9, 0x8c, 0x5f, 0x37, 0x10, 0xfe, 0xeb, -0x9c, 0xd1, 0x64, 0x3c, 0xdb, 0x58, 0x03, 0x0a, 0x89, 0xfe, 0xb6, 0x4b, 0x5f, 0x3b, 0x48, 0xf9, -0x0a, 0xe5, 0x35, 0x8c, 0x50, 0x75, 0xa4, 0x1a, 0xf2, 0xdf, 0xf9, 0x50, 0x4d, 0xa4, 0x06, 0x32, -0xe1, 0x87, 0xbc, 0x3e, 0x38, 0x6b, 0x0e, 0x24, 0xbf, 0x16, 0xed, 0x63, 0x50, 0x78, 0xd6, 0xb5, -0x74, 0xef, 0x58, 0x21, 0x6d, 0x46, 0xbd, 0x2e, 0x8d, 0xa5, 0x7a, 0xb6, 0x0a, 0x4d, 0x9f, 0x00, -0x1e, 0x15, 0x67, 0x7d, 0x9f, 0xa8, 0xfc, 0x00, 0x7a, 0x47, 0x44, 0xec, 0x23, 0x3a, 0x2d, 0xce, -0xfb, 0x3e, 0xcb, 0xfe, 0x60, 0x0c, 0x3f, 0xbe, 0x92, 0x71, 0xe2, 0x77, 0x33, 0xfb, 0xc7, 0x23, -0x19, 0x58, 0x65, 0xdf, 0xfc, 0x36, 0x9e, 0xfd, 0xe4, 0x93, 0x87, 0xde, 0x38, 0xfc, 0x55, 0xe8, -0x52, 0x7d, 0x34, 0xde, 0x1f, 0x72, 0xb9, 0x7e, 0xc2, 0x65, 0xab, 0xd8, 0xb1, 0x29, 0xed, 0x4d, -0xde, 0xbb, 0x58, 0xd8, 0xcb, 0xe1, 0xfb, 0x5f, 0xbd, 0xaa, 0x9f, 0xec, 0x7b, 0xb6, 0x4e, 0x0a, -0x4f, 0x26, 0x45, 0x0a, 0x05, 0x23, 0xc1, 0xe1, 0x88, 0x14, 0xa4, 0x0b, 0x7d, 0x41, 0x25, 0x63, -0x75, 0xc1, 0xb9, 0x1d, 0x7d, 0x41, 0x7f, 0x8e, 0x14, 0xbc, 0x40, 0x7d, 0xc1, 0xe2, 0x5e, 0xe0, -0xc8, 0x94, 0x70, 0xf3, 0xba, 0x51, 0x28, 0x14, 0x09, 0x9d, 0x8d, 0x4a, 0x21, 0xba, 0xc0, 0xde, -0x95, 0xa5, 0xca, 0xc9, 0xd4, 0x5b, 0x19, 0xaa, 0x8a, 0x54, 0x0d, 0xcf, 0x95, 0xaa, 0x68, 0x72, -0x6f, 0xd5, 0xcc, 0x9e, 0xed, 0x54, 0xf7, 0x8e, 0x5c, 0x6e, 0xc8, 0x46, 0x92, 0x6e, 0x77, 0xe3, -0xce, 0x78, 0x6f, 0xe3, 0x9b, 0xbd, 0xee, 0x8c, 0x93, 0xe2, 0x37, 0x12, 0x0e, 0x85, 0x71, 0x97, -0xde, 0xdb, 0x78, 0x0c, 0xbf, 0x27, 0xc5, 0x2f, 0x87, 0xe1, 0x6e, 0x7a, 0x6f, 0xe3, 0x10, 0x7e, -0x4f, 0x8a, 0x5f, 0x0e, 0x1b, 0xea, 0xe5, 0xf9, 0x55, 0x8c, 0x90, 0xfa, 0x9e, 0x05, 0xbd, 0x3e, -0xc5, 0x81, 0xa0, 0x21, 0x41, 0x6f, 0x68, 0x73, 0xbf, 0xf1, 0xaa, 0x5e, 0x9f, 0x93, 0x51, 0x40, -0xa0, 0xf5, 0x56, 0xe9, 0x50, 0xf7, 0x06, 0x8b, 0x7b, 0x04, 0xd4, 0x16, 0x01, 0x75, 0xbb, 0x80, -0xca, 0x2a, 0xe6, 0x1d, 0xce, 0x8e, 0xb1, 0xe5, 0x2a, 0x2e, 0x9c, 0xc8, 0x3b, 0x56, 0x2f, 0x2e, -0xea, 0x2c, 0x38, 0xb6, 0x49, 0xb7, 0xe8, 0x32, 0x7d, 0x62, 0x58, 0x74, 0xb1, 0x85, 0xdc, 0xc0, -0xa2, 0xe2, 0xb4, 0x45, 0xd7, 0xfd, 0x69, 0x8b, 0x2e, 0x35, 0x65, 0xd1, 0x65, 0x3a, 0xa2, 0x2e, -0x12, 0xcf, 0x72, 0x62, 0x95, 0x6e, 0xd9, 0x85, 0xb0, 0x3d, 0xea, 0x6a, 0xc3, 0xaa, 0x4b, 0x49, -0x59, 0x75, 0xd1, 0x13, 0x69, 0xab, 0xae, 0x5e, 0xdd, 0xaa, 0x0b, 0xe9, 0x1e, 0x52, 0x5b, 0xd3, -0x96, 0x5c, 0x94, 0xb6, 0xe4, 0x5a, 0x05, 0x08, 0xfc, 0x6c, 0xfd, 0xe3, 0x10, 0xeb, 0x8a, 0xda, -0x8b, 0xaa, 0x55, 0x29, 0x4a, 0xbd, 0x5d, 0xd9, 0x89, 0xd8, 0xf9, 0x63, 0xde, 0x9f, 0x54, 0x3f, -0x1c, 0xf3, 0xf6, 0x03, 0x75, 0x58, 0x19, 0xb5, 0xe3, 0x2a, 0x52, 0x87, 0xc6, 0xbc, 0xb9, 0xd5, -0x43, 0x62, 0x0d, 0x35, 0x4b, 0x5a, 0xce, 0xbc, 0x11, 0xf9, 0x64, 0xd3, 0xf2, 0x20, 0x89, 0xa7, -0x51, 0x2b, 0x16, 0xa2, 0x4b, 0xc6, 0xde, 0xac, 0x0b, 0x22, 0x5f, 0xd2, 0x5b, 0x59, 0xa3, 0xd9, -0x95, 0xe4, 0x70, 0xd0, 0xf0, 0x06, 0xe3, 0xb9, 0x20, 0x40, 0xc6, 0xd3, 0xd4, 0x93, 0x7c, 0xae, -0x9f, 0xb0, 0xd0, 0x12, 0xbb, 0xce, 0xf3, 0x06, 0xd9, 0xf6, 0x2a, 0x48, 0x6e, 0x5f, 0x88, 0xbc, -0x57, 0xdb, 0x4f, 0x19, 0xf6, 0x57, 0x16, 0xd6, 0xf9, 0x30, 0x06, 0x6f, 0x64, 0x6d, 0x4d, 0x48, -0x13, 0x93, 0xfc, 0xad, 0x64, 0x86, 0xd6, 0x9f, 0x55, 0xbf, 0x55, 0x09, 0x0a, 0x7e, 0x90, 0x4c, -0x34, 0xb3, 0x55, 0xd4, 0x2e, 0xfd, 0x04, 0x66, 0xe1, 0x9d, 0x8f, 0x2d, 0x0d, 0xc0, 0x6d, 0x2c, -0x04, 0x08, 0x21, 0xa7, 0xd7, 0x49, 0x6e, 0xed, 0x53, 0xdc, 0xc3, 0x3a, 0x87, 0x1b, 0xf7, 0xad, -0x9f, 0x6d, 0xa1, 0x24, 0xd2, 0x46, 0xc0, 0x69, 0xad, 0x39, 0x45, 0x34, 0x41, 0x32, 0x51, 0x46, -0x0f, 0x81, 0x0b, 0x5b, 0xd5, 0x5c, 0x81, 0x07, 0x0b, 0x2d, 0x57, 0xb8, 0xf6, 0x66, 0x69, 0xf9, -0x3b, 0xc0, 0xc7, 0x35, 0xb6, 0x55, 0x23, 0x86, 0x15, 0x95, 0xdd, 0x58, 0x77, 0x67, 0xbe, 0x6c, -0x42, 0xfc, 0x33, 0xaf, 0x50, 0x4e, 0x46, 0x8d, 0xe9, 0xa0, 0x87, 0x4a, 0x5f, 0x91, 0x7a, 0x32, -0x6e, 0xaa, 0x24, 0x5e, 0x09, 0x29, 0xee, 0x71, 0x53, 0x1e, 0xef, 0x0a, 0x4b, 0xed, 0x8d, 0xe0, -0x31, 0x03, 0xdf, 0x95, 0xb2, 0x27, 0x02, 0x27, 0x5b, 0xc4, 0xc5, 0xc4, 0x5a, 0x51, 0x1e, 0xaf, -0xef, 0x43, 0xc3, 0xb3, 0x9b, 0x2b, 0x93, 0xa4, 0xdb, 0xb3, 0x0c, 0x76, 0x03, 0x03, 0x4f, 0x74, -0x52, 0x31, 0x72, 0x88, 0x84, 0x42, 0xa1, 0x80, 0x7b, 0x6c, 0xec, 0x50, 0x0f, 0xf8, 0x6e, 0xb1, -0xbe, 0xc7, 0x5e, 0x6a, 0xfc, 0x4c, 0x73, 0xda, 0x76, 0x25, 0x5b, 0x2c, 0x8a, 0xc9, 0x19, 0x51, -0x42, 0xea, 0x52, 0xe8, 0x74, 0xb2, 0xb3, 0xc7, 0xdd, 0x20, 0xe6, 0xf0, 0xb3, 0xa6, 0x47, 0x49, -0x56, 0x65, 0x17, 0xa4, 0x18, 0x91, 0x5e, 0x11, 0x67, 0xdd, 0x88, 0x3c, 0x4b, 0x0a, 0x91, 0x67, -0x15, 0xf2, 0x14, 0x2b, 0xbc, 0xc7, 0xd6, 0xee, 0xea, 0x69, 0x39, 0xae, 0x06, 0xa1, 0x11, 0xe5, -0x22, 0xb5, 0x74, 0x6b, 0x04, 0xdc, 0x9d, 0xbd, 0x99, 0x3c, 0x4d, 0x52, 0x68, 0x87, 0xfe, 0x8c, -0x30, 0x49, 0x35, 0x4f, 0xe7, 0x98, 0x3e, 0x5d, 0x4b, 0x88, 0x93, 0xb6, 0x90, 0x6b, 0x73, 0x4b, -0x94, 0xcc, 0x75, 0xef, 0x14, 0xa0, 0x96, 0xb7, 0xcc, 0x45, 0x9b, 0x3f, 0xe2, 0x6e, 0x14, 0xeb, -0xa9, 0xc7, 0xd4, 0x37, 0xa1, 0x83, 0xa1, 0x5f, 0xb9, 0xeb, 0x75, 0x4b, 0xbd, 0xb9, 0x1f, 0x66, -0x3c, 0x01, 0xac, 0x8e, 0xee, 0xb0, 0x37, 0x64, 0x86, 0xf7, 0xcc, 0x62, 0x4e, 0x3b, 0xa6, 0x04, -0x79, 0x44, 0x61, 0x0b, 0x30, 0xd1, 0xc6, 0xa3, 0x36, 0xb1, 0xf5, 0xe9, 0x94, 0x6f, 0x1a, 0x5e, -0x3f, 0x5d, 0xd3, 0xf8, 0x1c, 0x8e, 0x6c, 0xc9, 0x43, 0xdf, 0x23, 0x5e, 0x41, 0xb6, 0x7a, 0x9b, -0xf5, 0x7d, 0xea, 0x8e, 0xb9, 0xe3, 0xf6, 0xb5, 0xcf, 0x1b, 0xab, 0xa3, 0x76, 0x51, 0x6a, 0x4d, -0xf3, 0xf7, 0xfb, 0x34, 0x0a, 0xb0, 0x4f, 0xa3, 0x03, 0x7e, 0xf6, 0x69, 0x34, 0x20, 0xf2, 0x0e, -0x0a, 0xbf, 0x46, 0x95, 0xec, 0xd7, 0xc8, 0xf0, 0x69, 0x94, 0x34, 0x7c, 0x1a, 0x75, 0xf3, 0x78, -0xe1, 0x30, 0xfc, 0x1a, 0x39, 0x85, 0x5f, 0x23, 0x57, 0xd6, 0x1f, 0xf6, 0x69, 0x04, 0x9e, 0xf3, -0x8c, 0x80, 0xa3, 0x8d, 0x7a, 0xbd, 0x3e, 0x62, 0x9b, 0xdf, 0x36, 0xea, 0x83, 0x36, 0xb0, 0xb1, -0xfa, 0x23, 0xea, 0xe4, 0x35, 0xa3, 0xcf, 0xea, 0x4b, 0x7d, 0xd4, 0x15, 0x0b, 0x6f, 0x6f, 0xa3, -0x55, 0x25, 0x3e, 0x5a, 0x13, 0xab, 0xda, 0xd6, 0x46, 0xab, 0x8b, 0xd9, 0xa7, 0xf6, 0x64, 0x29, -0xa4, 0x5d, 0xf0, 0x4b, 0xcd, 0xd2, 0x3d, 0xc1, 0x33, 0xec, 0x9f, 0xac, 0xa6, 0xac, 0xca, 0x37, -0x8f, 0x1a, 0xca, 0xc2, 0xf8, 0x6d, 0x52, 0x6e, 0x80, 0x6c, 0xde, 0x20, 0xfc, 0x39, 0xe7, 0xfa, -0xd8, 0xbb, 0x1a, 0xc7, 0x95, 0x8b, 0xb8, 0x05, 0x3c, 0x7e, 0x49, 0xe7, 0xda, 0x27, 0x0f, 0x3e, -0x78, 0x26, 0x99, 0xda, 0xdf, 0x05, 0x19, 0x3d, 0xa8, 0x5b, 0x1f, 0x2d, 0xd8, 0x54, 0x94, 0x84, -0x04, 0xe0, 0x83, 0xc4, 0x22, 0xec, 0x7e, 0x50, 0xf3, 0x62, 0xc0, 0xd0, 0x1b, 0x0e, 0x83, 0x8a, -0x0b, 0xa9, 0xb4, 0x43, 0x12, 0x56, 0x90, 0x4b, 0xb9, 0x3f, 0x85, 0x07, 0xf4, 0x9d, 0xc1, 0x28, -0xbd, 0x2c, 0xd0, 0x46, 0x35, 0xbe, 0x5a, 0x6a, 0x2f, 0x67, 0x1b, 0xd1, 0x67, 0x3c, 0xa8, 0x47, -0xec, 0x79, 0xea, 0xb3, 0xfd, 0x59, 0xae, 0x9b, 0x2d, 0x21, 0x73, 0xa4, 0xdd, 0xb4, 0xc8, 0xdc, -0xef, 0xa6, 0x5b, 0xee, 0xb5, 0x0a, 0x7b, 0xc4, 0x5b, 0x36, 0x77, 0xc7, 0x92, 0xaa, 0x45, 0x9f, -0xcf, 0xd9, 0xdc, 0x6d, 0x8c, 0x3e, 0xee, 0x5f, 0xbd, 0xea, 0x0c, 0x6c, 0xa7, 0x80, 0xc4, 0xa3, -0x49, 0x7a, 0x0f, 0xab, 0x7c, 0xfc, 0x5b, 0x3b, 0xa8, 0x4c, 0x3a, 0x33, 0x2f, 0xed, 0x89, 0x48, -0x5d, 0x3d, 0xe1, 0xd0, 0xba, 0x35, 0xdf, 0xab, 0x99, 0x70, 0xfa, 0x6f, 0x7d, 0x73, 0x68, 0xf1, -0xa3, 0x47, 0xf4, 0x3e, 0x01, 0xb8, 0x9a, 0xd1, 0x67, 0x2e, 0x47, 0xdb, 0xa8, 0x2c, 0xc1, 0xe7, -0x0a, 0xe7, 0x07, 0xa4, 0xd5, 0x93, 0xcf, 0x2d, 0x1b, 0x0a, 0x9d, 0xaa, 0x84, 0x5c, 0x10, 0x0a, -0x55, 0x0e, 0x85, 0x2b, 0xb2, 0x12, 0x66, 0x68, 0x45, 0x05, 0xaa, 0xf4, 0xc8, 0xab, 0x43, 0xb5, -0xee, 0x36, 0x52, 0x7f, 0x7d, 0x96, 0x1c, 0x65, 0x26, 0xe0, 0xb1, 0xfa, 0x4c, 0x75, 0x45, 0x66, -0xe4, 0x1f, 0x00, 0x7b, 0x49, 0xd5, 0xef, 0x56, 0x51, 0xa8, 0x8d, 0x82, 0xc8, 0xed, 0x87, 0xab, -0x27, 0x1c, 0xe9, 0xe6, 0xb2, 0xce, 0xfd, 0xed, 0x57, 0x9a, 0xe8, 0x6b, 0x9e, 0x5a, 0x5f, 0x1d, -0x85, 0x3c, 0x3e, 0x5a, 0x1c, 0x7a, 0x1e, 0x7a, 0x4d, 0x90, 0x02, 0xbe, 0x08, 0x15, 0xa9, 0xe5, -0x36, 0x1f, 0x7d, 0x6d, 0x60, 0x5d, 0x94, 0x12, 0xd2, 0xa6, 0x9b, 0xda, 0x4d, 0xfd, 0xf7, 0xc5, -0x2d, 0xb1, 0x07, 0xf9, 0x2b, 0x55, 0x3a, 0xb5, 0x09, 0xef, 0xd0, 0x35, 0xd0, 0xb6, 0xa1, 0xaf, -0x40, 0xc3, 0xa1, 0xaf, 0x01, 0x33, 0xa1, 0xd5, 0xdf, 0xab, 0xc9, 0x44, 0xdc, 0x83, 0x78, 0x8e, -0xa0, 0xc5, 0x23, 0xfd, 0xcf, 0x53, 0x73, 0xcb, 0x3e, 0x3c, 0x05, 0x90, 0xae, 0x68, 0x35, 0x95, -0xb9, 0xc9, 0xf5, 0xeb, 0x97, 0xdf, 0xf8, 0x88, 0xda, 0x45, 0x6d, 0xf2, 0x1a, 0x43, 0x16, 0x89, -0xa5, 0x95, 0xc6, 0x4a, 0x01, 0xcf, 0x84, 0x17, 0xd7, 0xc5, 0xa5, 0xc6, 0x0d, 0x31, 0xc0, 0xb8, -0x07, 0x57, 0x2b, 0x69, 0x77, 0xc7, 0xa2, 0xe8, 0xd7, 0x59, 0xd0, 0x90, 0x16, 0xce, 0x3f, 0xc0, -0x3e, 0xeb, 0xc3, 0xdd, 0xbb, 0x7a, 0x9a, 0xe9, 0x0a, 0xe4, 0x74, 0xf2, 0x8a, 0x9e, 0x64, 0x19, -0x4c, 0x1e, 0xff, 0x16, 0xdb, 0x2f, 0x1f, 0x87, 0x74, 0x7a, 0x7c, 0x05, 0x05, 0x1b, 0x9f, 0xa7, -0x8d, 0x48, 0xbf, 0x31, 0x4e, 0x57, 0x1a, 0x8a, 0xb3, 0xc5, 0xd9, 0xd2, 0xa5, 0xe0, 0xf4, 0xeb, -0xc5, 0x99, 0x4c, 0x15, 0x8a, 0x29, 0x96, 0x04, 0x2c, 0xe5, 0x8d, 0x7d, 0x2f, 0x0c, 0xb4, 0x49, -0x31, 0xf6, 0x39, 0x57, 0xde, 0xbc, 0x94, 0xcf, 0x77, 0xf5, 0x59, 0x7c, 0x63, 0xcf, 0x38, 0x29, -0x79, 0x7d, 0x00, 0x5f, 0xd8, 0x0c, 0x5f, 0xef, 0x93, 0xcf, 0x86, 0x56, 0x91, 0x5a, 0xde, 0x18, -0x5a, 0x89, 0xe1, 0x95, 0x4c, 0x6d, 0x72, 0x09, 0xfa, 0x95, 0x27, 0xa3, 0x7d, 0xf2, 0xf0, 0xb3, -0xbc, 0x77, 0xc1, 0x38, 0x87, 0x6b, 0xdd, 0xea, 0xc9, 0xef, 0x3f, 0xa3, 0x9f, 0x6f, 0xe9, 0x31, -0x9d, 0x7a, 0xf0, 0xf8, 0xba, 0x64, 0x6f, 0x4d, 0x32, 0x59, 0xe9, 0x1f, 0x70, 0x9b, 0x1c, 0x19, -0xd1, 0x50, 0x7c, 0xa0, 0x74, 0x05, 0x39, 0x8b, 0x99, 0xea, 0x0b, 0xc9, 0x15, 0x79, 0x09, 0x72, -0x0a, 0x43, 0xd4, 0xc6, 0x27, 0x6c, 0x06, 0xf8, 0x14, 0xdd, 0x03, 0x8e, 0xb9, 0x4e, 0xeb, 0xb1, -0xfb, 0xb7, 0xf5, 0x1a, 0x9e, 0xc6, 0xcb, 0x75, 0x2f, 0xe6, 0x9c, 0x02, 0x38, 0x6c, 0x4a, 0x53, -0x7f, 0xb6, 0xbf, 0x90, 0x9c, 0x83, 0x6d, 0xd4, 0xe9, 0x98, 0x1b, 0x19, 0x08, 0x70, 0x5e, 0x07, -0x44, 0x4a, 0x9b, 0xe1, 0x47, 0xa9, 0x49, 0xf4, 0xc2, 0xa3, 0x46, 0x2f, 0x5c, 0x0c, 0x7a, 0x68, -0x8f, 0x3e, 0x23, 0x97, 0xc5, 0xf3, 0xaa, 0x30, 0xfa, 0x4f, 0xbb, 0xd0, 0x9e, 0x5e, 0x77, 0xf8, -0xec, 0xf8, 0xf4, 0xa0, 0x5c, 0xc6, 0x71, 0xe8, 0x3d, 0xdb, 0x45, 0x4f, 0x5d, 0x8a, 0x92, 0x9a, -0xd1, 0x53, 0x9b, 0xc4, 0x49, 0x6e, 0xf5, 0xc5, 0x3e, 0x5a, 0x18, 0x0b, 0x6d, 0x6d, 0xa3, 0x05, -0xe8, 0xa9, 0xf7, 0x88, 0x9e, 0x7a, 0x77, 0x71, 0xc8, 0x17, 0xa5, 0x60, 0x71, 0x15, 0x7e, 0x4b, -0xfd, 0xd2, 0x81, 0x97, 0xc6, 0x5a, 0xc2, 0x7f, 0xd6, 0x04, 0xea, 0x29, 0x42, 0x6e, 0x01, 0xee, -0x63, 0xa8, 0xd5, 0x82, 0x70, 0xa5, 0xde, 0xc7, 0x56, 0x49, 0x87, 0x93, 0xbe, 0x30, 0x85, 0xd1, -0xbf, 0x5e, 0x89, 0xac, 0x0f, 0xd7, 0x04, 0x42, 0xe8, 0x59, 0x7c, 0xa6, 0x79, 0xcc, 0x89, 0x52, -0x41, 0x31, 0x4b, 0x6d, 0xf9, 0xf9, 0xe8, 0x57, 0xab, 0xc8, 0x9e, 0xb9, 0xef, 0xea, 0x7e, 0xd5, -0x3b, 0xa6, 0x5f, 0xf5, 0x8e, 0xf6, 0x2b, 0x0f, 0xfa, 0x55, 0x69, 0x26, 0xcb, 0xa8, 0xa3, 0xfd, -0x6a, 0x08, 0xfd, 0x2a, 0x34, 0x27, 0xdd, 0xab, 0x22, 0x7a, 0x7b, 0xa0, 0xe4, 0x3a, 0x2f, 0x53, -0xfe, 0x73, 0xd1, 0x9a, 0x84, 0x0d, 0xf2, 0x61, 0x7e, 0x99, 0x8c, 0xd6, 0x6b, 0x79, 0x2b, 0x7c, -0xaa, 0x1a, 0xbd, 0x28, 0x1c, 0xaa, 0x7e, 0xab, 0x32, 0x3a, 0x67, 0xb4, 0x17, 0x31, 0xf5, 0x0e, -0xee, 0x20, 0x9e, 0x01, 0x2a, 0x1e, 0x7a, 0xd9, 0x3f, 0x31, 0x32, 0x00, 0x28, 0x8b, 0xaa, 0x3e, -0xb6, 0x70, 0x0f, 0x0a, 0x28, 0xd9, 0xea, 0xdd, 0xa1, 0xea, 0xfc, 0x9b, 0x66, 0x57, 0x93, 0xd7, -0x0b, 0x6a, 0x02, 0xf4, 0xe5, 0x78, 0x9f, 0xfa, 0x56, 0x1b, 0x79, 0xad, 0xd5, 0xa4, 0xdd, 0x2b, -0x97, 0x95, 0x93, 0x96, 0xff, 0x72, 0xec, 0x7e, 0x35, 0x0b, 0x7d, 0xab, 0x8d, 0x8a, 0xa9, 0xfc, -0xd1, 0x23, 0x7f, 0xf7, 0x11, 0xd5, 0xb5, 0x1c, 0xd6, 0x7b, 0xc1, 0xbb, 0x0f, 0xfe, 0xd3, 0xf3, -0x54, 0x8c, 0x9e, 0xd0, 0x00, 0x78, 0xb2, 0x1a, 0xc3, 0xc2, 0x76, 0x40, 0xa7, 0xfd, 0x00, 0x68, -0x3f, 0xd0, 0x7a, 0xd8, 0x1b, 0x8c, 0xcd, 0x41, 0xda, 0x09, 0x7c, 0x22, 0xcd, 0xfc, 0x43, 0x91, -0xde, 0xc8, 0xa1, 0x70, 0xef, 0xde, 0x75, 0xcd, 0xa4, 0x05, 0x95, 0xec, 0x31, 0xd4, 0xff, 0xd0, -0x90, 0xa0, 0xfe, 0x21, 0x50, 0xff, 0x90, 0x4e, 0xfd, 0x3c, 0x0f, 0xd1, 0x0c, 0xea, 0xdf, 0x69, -0xd0, 0xfe, 0xe2, 0x71, 0x94, 0x5f, 0x3a, 0x86, 0xf2, 0x4b, 0x9b, 0x79, 0x1e, 0x23, 0x38, 0x8e, -0xee, 0x8b, 0x5e, 0x1f, 0xb0, 0xd9, 0x42, 0x19, 0xaa, 0xa7, 0x31, 0x24, 0x28, 0xdd, 0x0c, 0x1d, -0x8e, 0xb5, 0x78, 0xd6, 0xeb, 0xb2, 0xa2, 0x19, 0xb8, 0x4c, 0xdf, 0x78, 0x49, 0x35, 0x37, 0xbc, -0x84, 0xb0, 0x0c, 0xdb, 0x4b, 0x79, 0x90, 0x02, 0x40, 0xd9, 0x43, 0x65, 0x3a, 0x65, 0x2f, 0xb8, -0x8a, 0xb2, 0x8b, 0xda, 0x09, 0x54, 0x1b, 0x04, 0x5d, 0xdf, 0x20, 0xe8, 0xda, 0x04, 0xaa, 0x2e, -0xc5, 0x78, 0x56, 0x06, 0x6a, 0x75, 0x38, 0x10, 0x3f, 0x3a, 0x0e, 0x1a, 0x34, 0xdd, 0x34, 0x86, -0xa6, 0xeb, 0xc6, 0xd0, 0x74, 0x31, 0xcf, 0xe4, 0x7f, 0xba, 0x43, 0x68, 0x3c, 0x2d, 0x64, 0x29, -0x9a, 0x81, 0xd1, 0xbc, 0x99, 0x8a, 0x85, 0x25, 0xc0, 0x1c, 0xc3, 0x12, 0x80, 0x32, 0xb6, 0x18, -0x67, 0xcc, 0xdb, 0x0b, 0x31, 0xd2, 0x7e, 0xba, 0xdf, 0x51, 0xc7, 0x2b, 0x47, 0xec, 0x09, 0x14, -0xda, 0xc8, 0x71, 0xe1, 0x05, 0xa8, 0xde, 0xe6, 0xa5, 0x02, 0x3e, 0xdd, 0x82, 0x4f, 0xf7, 0x8e, -0x37, 0x40, 0xff, 0xe1, 0xaf, 0x1f, 0x73, 0xeb, 0xde, 0x4c, 0xc5, 0xdb, 0x95, 0x1f, 0xf8, 0x9b, -0xc9, 0x55, 0x0e, 0xdd, 0xc3, 0x3f, 0x03, 0x3a, 0xd6, 0x40, 0x60, 0x86, 0xf6, 0x76, 0xe4, 0x40, -0xf1, 0x0c, 0x6d, 0x38, 0x72, 0xb0, 0xb8, 0x45, 0x3b, 0xe5, 0xa8, 0x03, 0xd6, 0xfb, 0x8e, 0x3d, -0xe4, 0xb2, 0xbc, 0x79, 0xbf, 0x48, 0xff, 0x1a, 0xca, 0x91, 0xf5, 0x2f, 0x4b, 0x91, 0x0a, 0x23, -0x1b, 0x74, 0x18, 0xa4, 0x3f, 0x85, 0x9e, 0xd3, 0xa2, 0xbd, 0x5d, 0x1c, 0x2e, 0x8c, 0x7e, 0x3a, -0x50, 0x1c, 0xc2, 0xef, 0x21, 0xbf, 0x7c, 0xe0, 0xe0, 0xf8, 0xfe, 0xa2, 0x5b, 0x20, 0x4a, 0x5c, -0xca, 0x09, 0xd1, 0x57, 0xbc, 0x54, 0xba, 0x52, 0x7a, 0x25, 0x59, 0x58, 0xf5, 0xe9, 0xe1, 0x54, -0x5f, 0xf1, 0x87, 0x0b, 0x23, 0x9f, 0xf2, 0x29, 0x7b, 0x31, 0x07, 0xea, 0x13, 0x7b, 0x96, 0xac, -0xb6, 0x2f, 0xe5, 0x17, 0x92, 0xb2, 0x92, 0xf2, 0xf4, 0xbe, 0x52, 0x68, 0xf4, 0x15, 0xdc, 0x37, -0xaf, 0x1d, 0xd3, 0x57, 0xd6, 0x8a, 0x1d, 0xa0, 0x2b, 0xc8, 0xfd, 0xc6, 0x61, 0xd7, 0xcc, 0x3e, -0x0a, 0x54, 0xb1, 0xf6, 0xe2, 0x5d, 0x41, 0xfe, 0xfd, 0x7a, 0x5f, 0x69, 0x3f, 0x4b, 0xa1, 0x6a, -0x5d, 0x4e, 0x7a, 0xf3, 0xd9, 0x4f, 0xf7, 0xa3, 0xcc, 0xa3, 0x2b, 0xa9, 0x64, 0x22, 0xee, 0x83, -0x85, 0xc1, 0x4f, 0xf7, 0x14, 0xce, 0xf9, 0x74, 0x17, 0xcb, 0x6b, 0xdc, 0x67, 0xd0, 0xb2, 0xf9, -0x15, 0xcc, 0xf1, 0xda, 0xde, 0xae, 0x3a, 0x35, 0x07, 0x7d, 0xa6, 0x2a, 0x34, 0x27, 0x30, 0x67, -0xe8, 0x40, 0xb4, 0x3a, 0xc1, 0x9e, 0x97, 0x85, 0xed, 0xb3, 0xb7, 0xe5, 0xd3, 0xa3, 0x83, 0xaf, -0x56, 0x7e, 0x9c, 0x44, 0x0f, 0x2c, 0x6c, 0xf9, 0x74, 0xcf, 0xa7, 0xcf, 0xa9, 0xf3, 0x9d, 0xb8, -0xc7, 0x9e, 0xfd, 0x74, 0xcf, 0x97, 0xef, 0xfe, 0xf4, 0x67, 0x71, 0x39, 0x5a, 0x1d, 0x37, 0x4f, -0x79, 0xf6, 0xd3, 0x9f, 0x6d, 0xa7, 0xd8, 0x06, 0x35, 0xbb, 0xb0, 0xfe, 0xd3, 0x3d, 0xe8, 0x6b, -0x33, 0x3e, 0x7d, 0x0e, 0xb8, 0xd9, 0xf9, 0xe3, 0x0f, 0x3e, 0x1d, 0x6c, 0xe1, 0x72, 0x9f, 0xc3, -0x37, 0x3b, 0x85, 0xc7, 0x1d, 0xd7, 0xbb, 0x7d, 0xbf, 0x19, 0x78, 0xfd, 0x83, 0x4f, 0x8f, 0x89, -0x5e, 0x52, 0x25, 0x7c, 0xff, 0x4b, 0x8d, 0x7d, 0xb1, 0x39, 0xbb, 0xe7, 0xb4, 0x1e, 0x44, 0x09, -0xcf, 0x21, 0xef, 0xea, 0x35, 0x54, 0x91, 0x19, 0x7d, 0xf6, 0xd3, 0xc3, 0xf3, 0x5f, 0x8a, 0xac, -0x8d, 0xbc, 0x14, 0x5e, 0xbb, 0xe7, 0x3e, 0xf4, 0x92, 0x7a, 0xe4, 0xba, 0xa7, 0x68, 0xc6, 0xa7, -0xbb, 0x40, 0x11, 0xde, 0x7e, 0x63, 0xa4, 0x18, 0x12, 0x3b, 0x5d, 0xd0, 0x4f, 0xec, 0x43, 0xcd, -0xe8, 0x2b, 0xcf, 0x92, 0x2d, 0x8a, 0x8b, 0xfb, 0x8a, 0xb1, 0x62, 0x75, 0x81, 0x75, 0xe6, 0x6b, -0xce, 0xb3, 0xb8, 0xa8, 0xdb, 0xe5, 0x61, 0x14, 0x39, 0x14, 0x7d, 0x9a, 0xca, 0xd9, 0x5b, 0xf4, -0xa8, 0xf7, 0xa2, 0x95, 0xd2, 0x1e, 0xd6, 0x9d, 0x77, 0x1a, 0x9a, 0xc4, 0x0f, 0x79, 0xf7, 0xad, -0xa0, 0xa9, 0x60, 0x87, 0x65, 0x57, 0x12, 0xda, 0xd0, 0x66, 0x40, 0x50, 0xee, 0x42, 0xec, 0xbc, -0x0f, 0x3e, 0x3d, 0xde, 0x49, 0x5d, 0xa7, 0x4f, 0x3c, 0xe8, 0xb9, 0xe1, 0xae, 0x75, 0xea, 0x42, -0xa5, 0xaa, 0x69, 0xad, 0xdf, 0x1e, 0xa0, 0xe1, 0x5a, 0xa9, 0x92, 0x26, 0xbf, 0x34, 0x32, 0x65, -0xca, 0xac, 0x4a, 0xed, 0x74, 0x80, 0xce, 0x8e, 0x7d, 0x3f, 0x03, 0x2d, 0x75, 0xf2, 0x01, 0x7e, -0x86, 0x86, 0x2c, 0x34, 0x7a, 0xa1, 0x77, 0x38, 0xe6, 0x0c, 0x3e, 0xa5, 0x7b, 0x8d, 0x28, 0xac, -0xd1, 0xe7, 0x42, 0xf8, 0x14, 0x56, 0x5d, 0xf3, 0xf0, 0x0e, 0xb0, 0x7f, 0x9e, 0x58, 0x0f, 0x97, -0x6b, 0x68, 0x8e, 0xdd, 0xad, 0x5b, 0xe6, 0xa0, 0x74, 0x5e, 0x87, 0x64, 0xda, 0x46, 0xa8, 0x97, -0x7d, 0xff, 0x96, 0x80, 0xc6, 0x03, 0xa0, 0x55, 0x5e, 0x25, 0x11, 0x1e, 0xbd, 0x74, 0x8f, 0xb7, -0x17, 0x5c, 0x2d, 0x9f, 0x1e, 0x8a, 0x7c, 0xbb, 0x4f, 0xc3, 0x7d, 0x20, 0xf2, 0xed, 0xed, 0x1a, -0xaf, 0x50, 0xb2, 0x17, 0x63, 0x5f, 0x96, 0x3e, 0x8b, 0x52, 0x96, 0x35, 0x76, 0x77, 0x3b, 0x7a, -0xa7, 0x17, 0xf9, 0x39, 0x07, 0x5b, 0xb4, 0xe3, 0x8e, 0x3a, 0xf4, 0x17, 0xaf, 0xe8, 0xbd, 0x73, -0x44, 0xef, 0x85, 0x86, 0xfe, 0x69, 0x72, 0xd4, 0xa7, 0xba, 0xcb, 0xe2, 0x24, 0x77, 0xb6, 0x98, -0x6d, 0xd8, 0x02, 0xc9, 0xbb, 0xd8, 0xf0, 0x06, 0xe5, 0x19, 0xc5, 0xe7, 0x6a, 0x79, 0x5f, 0x32, -0x9e, 0xcf, 0x2b, 0x6e, 0x8c, 0x49, 0x81, 0xc7, 0xec, 0x5d, 0xc9, 0x26, 0xc8, 0x64, 0xfe, 0x60, -0xac, 0x8f, 0xa9, 0x2c, 0x60, 0x69, 0x27, 0xe3, 0x3b, 0x3b, 0x7f, 0xb5, 0x7a, 0xf2, 0xc0, 0xba, -0xc6, 0x64, 0x7e, 0x39, 0x99, 0xf6, 0x89, 0x74, 0xbc, 0xbb, 0x26, 0x5a, 0x99, 0xc8, 0xf6, 0xc9, -0x3e, 0x49, 0x9f, 0xb1, 0xbe, 0xf4, 0xb1, 0x3a, 0x55, 0x9c, 0x08, 0x94, 0x0e, 0xf9, 0x74, 0xb7, -0x6a, 0x1d, 0x7d, 0xfb, 0x5d, 0x9d, 0xb1, 0xca, 0x51, 0xae, 0xef, 0x33, 0x73, 0xe9, 0x70, 0x02, -0x3e, 0xd4, 0xe1, 0x48, 0x80, 0x8a, 0x93, 0xa8, 0x5f, 0xee, 0xed, 0x41, 0x92, 0x20, 0x23, 0xe7, -0x87, 0xc3, 0xb7, 0x87, 0xc9, 0xdc, 0x18, 0xdc, 0xdc, 0x4c, 0xf9, 0x08, 0xcb, 0x12, 0xd4, 0x71, -0x73, 0x3c, 0x1b, 0x12, 0xb6, 0x3f, 0x6e, 0xc1, 0xaf, 0x17, 0xb5, 0x3b, 0x1a, 0xaa, 0xcc, 0xf1, -0xd2, 0x2d, 0xb1, 0xca, 0x50, 0x10, 0x3d, 0x5a, 0xd9, 0x12, 0x34, 0xec, 0x1a, 0x2d, 0x51, 0xf6, -0xc9, 0xb3, 0x57, 0xa9, 0x3a, 0xb6, 0x36, 0xc4, 0xe3, 0xd1, 0x76, 0xbb, 0x3d, 0x0f, 0xf1, 0x7b, -0xe4, 0x45, 0x39, 0x7b, 0x91, 0x7e, 0x91, 0x55, 0x0a, 0x93, 0xc6, 0xba, 0xfd, 0xf6, 0x2a, 0x55, -0x2a, 0x35, 0x05, 0xc2, 0x73, 0xff, 0x65, 0x3b, 0x79, 0x9b, 0xc9, 0x3f, 0xb8, 0xf2, 0x38, 0xf5, -0x23, 0x8f, 0x66, 0x19, 0x65, 0xca, 0x78, 0xb2, 0xb4, 0xf1, 0x93, 0xe5, 0x8d, 0x57, 0x11, 0xeb, -0xfe, 0xcd, 0xab, 0xae, 0x92, 0xed, 0xf4, 0x66, 0x70, 0x8f, 0x9e, 0xa2, 0x0a, 0x5a, 0x91, 0x9e, -0xa2, 0x0a, 0x5a, 0x47, 0x33, 0x79, 0x07, 0xbf, 0x75, 0xfd, 0xaf, 0x07, 0x31, 0x66, 0x5c, 0x2f, -0x7c, 0x77, 0x1f, 0x34, 0xa0, 0x78, 0x23, 0xde, 0xd5, 0x2c, 0x86, 0x5c, 0xd8, 0xb1, 0xb1, 0xef, -0x2e, 0x13, 0x46, 0x14, 0x0b, 0xb0, 0x51, 0xf0, 0xfa, 0x72, 0xf1, 0x2e, 0xe1, 0xdd, 0x89, 0xf7, -0xfc, 0x53, 0x11, 0x0e, 0x11, 0x94, 0x95, 0x8b, 0x11, 0x07, 0x21, 0x9b, 0xbb, 0x15, 0x5a, 0x8e, -0x91, 0xe6, 0x54, 0xf2, 0x61, 0xe4, 0xa0, 0x5b, 0x87, 0x8e, 0x9e, 0xbb, 0xe2, 0xa9, 0xf5, 0x90, -0x3b, 0x5a, 0x64, 0x62, 0xcd, 0xd9, 0x9d, 0xcd, 0x5e, 0xa8, 0x05, 0x55, 0x0c, 0x09, 0xbf, 0xd4, -0xb9, 0xfd, 0x6b, 0x17, 0x11, 0xbd, 0xc2, 0x25, 0x17, 0x4f, 0x07, 0xc6, 0x43, 0xb7, 0x87, 0xc8, -0xcc, 0xd8, 0xe3, 0x38, 0x60, 0x7e, 0x99, 0x8e, 0xf9, 0x50, 0x2c, 0x30, 0x5d, 0x9c, 0xec, 0x2e, -0x09, 0xcd, 0x29, 0x6f, 0xf7, 0x0a, 0x32, 0xb7, 0x10, 0x3d, 0xd4, 0xbf, 0x82, 0xb2, 0x5a, 0x21, -0xf3, 0xed, 0x82, 0xbe, 0xb7, 0x68, 0x8d, 0xcb, 0xd2, 0x49, 0x8e, 0x79, 0x4a, 0x55, 0xbb, 0x09, -0x72, 0x8d, 0x9f, 0x2d, 0x1e, 0x30, 0xda, 0x34, 0x61, 0xb4, 0xf2, 0x03, 0x56, 0x39, 0x60, 0x19, -0xc2, 0xf8, 0xdc, 0x5f, 0xd9, 0x2c, 0x05, 0x28, 0xd0, 0x8c, 0x12, 0x2c, 0x18, 0x85, 0x4a, 0xfb, -0x6b, 0x9b, 0x25, 0xff, 0xc4, 0x40, 0x70, 0xcb, 0x81, 0xd8, 0x86, 0x1f, 0x83, 0xbe, 0x17, 0x15, -0x0f, 0x1e, 0xd1, 0xbd, 0x59, 0x22, 0x4f, 0xb9, 0xc5, 0x85, 0x12, 0x2c, 0xad, 0x4a, 0x17, 0x95, -0xdf, 0xe8, 0xac, 0x09, 0x44, 0x7e, 0x7c, 0xa4, 0x35, 0xf7, 0xcd, 0xfb, 0x4a, 0xfb, 0xee, 0xac, -0x24, 0xf9, 0x4e, 0x60, 0x2f, 0xd6, 0xb3, 0xaf, 0x27, 0xbe, 0x51, 0x2d, 0x88, 0xf6, 0xc4, 0xed, -0xa1, 0xa6, 0x50, 0x33, 0x34, 0x4d, 0xf4, 0x5c, 0x5c, 0x66, 0x5c, 0x16, 0x5c, 0x59, 0x63, 0xce, -0x92, 0xb3, 0x09, 0x4f, 0xd8, 0xa5, 0x2e, 0xe2, 0xd3, 0xdd, 0xc5, 0x2e, 0xa8, 0x9b, 0xe3, 0xd6, -0xe8, 0x4e, 0xd0, 0x92, 0x19, 0xbf, 0xde, 0x44, 0x5d, 0xbe, 0x87, 0x6e, 0x29, 0xf0, 0x90, 0x12, -0x0a, 0xdb, 0xcd, 0xa0, 0xaa, 0xcc, 0x58, 0xe5, 0x96, 0x30, 0x68, 0xa7, 0x28, 0xd7, 0xbe, 0x5f, -0x5a, 0x64, 0xdd, 0x27, 0x2d, 0xb1, 0x48, 0x21, 0xd2, 0xb6, 0x86, 0x55, 0xa9, 0xd8, 0x54, 0x12, -0xfa, 0xc7, 0x5f, 0x0c, 0x2e, 0xa3, 0xa0, 0x7b, 0x39, 0x28, 0xa6, 0x73, 0x2f, 0xf1, 0x9e, 0x09, -0xbe, 0x37, 0xae, 0x8d, 0xae, 0x8d, 0xbf, 0xa6, 0x66, 0x01, 0x7f, 0xc1, 0xc1, 0xe5, 0x64, 0x3f, -0xf0, 0x12, 0xef, 0x0b, 0x4c, 0xfb, 0x89, 0x8d, 0x38, 0x29, 0x3d, 0x77, 0x58, 0x00, 0x8e, 0x31, -0x35, 0x91, 0x17, 0xe5, 0x53, 0xe9, 0x79, 0x8f, 0x4a, 0x01, 0xcf, 0x76, 0xdc, 0xc2, 0xab, 0x85, -0x36, 0xf5, 0xee, 0x6b, 0xcf, 0xec, 0x60, 0x6f, 0x0d, 0x89, 0x90, 0xb0, 0x0f, 0x0a, 0xce, 0x0c, -0xd1, 0x54, 0xd6, 0xd2, 0xfd, 0xa1, 0x94, 0x6f, 0x94, 0xc1, 0xe4, 0xd5, 0xe9, 0xd9, 0xab, 0xc0, -0x68, 0x8e, 0xe2, 0xfc, 0x20, 0x2e, 0x89, 0x77, 0xb5, 0xc9, 0xfa, 0xd9, 0x74, 0x75, 0xf2, 0xa8, -0x1f, 0xd0, 0xd2, 0x51, 0xfb, 0x8f, 0x16, 0x52, 0x4a, 0x66, 0x50, 0x4e, 0xf1, 0x0c, 0xca, 0x0b, -0xcc, 0xa0, 0x7c, 0xff, 0x0c, 0x9a, 0x2a, 0x66, 0x88, 0xcd, 0xce, 0xe5, 0x6c, 0xfd, 0x5d, 0xfd, -0x9e, 0xe4, 0xc4, 0xd3, 0x54, 0x21, 0x05, 0x16, 0xb9, 0xa7, 0xcb, 0x77, 0xc7, 0x7a, 0x85, 0xe7, -0xc6, 0x88, 0xb0, 0x24, 0xb8, 0xc4, 0x1e, 0x40, 0xd9, 0xcb, 0x37, 0xfb, 0xf7, 0x56, 0x96, 0x1b, -0x9e, 0x1b, 0xd9, 0x07, 0x43, 0xbe, 0xea, 0x5e, 0xf5, 0xe7, 0xc7, 0x9f, 0xd2, 0xfd, 0x3c, 0xa6, -0xad, 0x20, 0x0c, 0x5f, 0x8f, 0xc6, 0x2c, 0xf3, 0x85, 0xb1, 0xb6, 0xe1, 0x72, 0x41, 0xea, 0x94, -0x08, 0xbf, 0xe4, 0xcb, 0x16, 0xa7, 0x57, 0x4a, 0xb8, 0x4c, 0xb8, 0xf8, 0xfc, 0x35, 0xb7, 0xd8, -0xd7, 0xb4, 0x4f, 0x13, 0x67, 0x7f, 0xeb, 0xab, 0x5d, 0xbc, 0x56, 0xa9, 0x88, 0xd9, 0x82, 0xb9, -0x08, 0x2b, 0x9c, 0xd8, 0x49, 0xec, 0x8f, 0x51, 0x56, 0x14, 0x9b, 0x59, 0xcc, 0xb1, 0xf1, 0x1e, -0x7e, 0x5a, 0xb7, 0x88, 0x64, 0xeb, 0x60, 0xd2, 0x3f, 0xcb, 0x62, 0xae, 0xff, 0x94, 0x24, 0xd9, -0xf8, 0x27, 0x85, 0xa5, 0x72, 0x28, 0xc4, 0x8b, 0xf5, 0x37, 0x93, 0x35, 0xe3, 0xa1, 0x8c, 0xc7, -0x33, 0xb6, 0x99, 0xe6, 0x9b, 0xea, 0x4c, 0xed, 0xa6, 0xb8, 0xa9, 0xdc, 0xe4, 0x92, 0x36, 0x4a, -0x5b, 0xa5, 0x3a, 0xa9, 0x53, 0x7a, 0x5c, 0x7a, 0xd2, 0x94, 0x97, 0xf1, 0xc3, 0x8c, 0x57, 0x32, -0x5e, 0x94, 0xa5, 0x8c, 0xd3, 0x19, 0xc7, 0x32, 0x4e, 0x64, 0xac, 0xcc, 0x88, 0x67, 0xb4, 0x9a, -0xee, 0x37, 0xfd, 0xd0, 0x74, 0xdc, 0x34, 0x60, 0x4a, 0x9a, 0xb6, 0x9b, 0x5e, 0x33, 0xed, 0x31, -0x7d, 0x62, 0x3a, 0x63, 0xfa, 0x50, 0xca, 0x96, 0xec, 0xc8, 0xdf, 0x85, 0xab, 0x58, 0x7a, 0x46, -0xda, 0x2d, 0x1d, 0x96, 0x5e, 0x94, 0xe9, 0xff, 0x57, 0xfe, 0x49, 0xa7, 0xa5, 0x2b, 0x19, 0xd6, -0x0c, 0x57, 0x46, 0x71, 0x46, 0xfd, 0x34, 0x5e, 0xe9, 0xce, 0x55, 0x49, 0xfa, 0x50, 0xd9, 0xcf, -0xe7, 0xda, 0xdf, 0xb2, 0x9c, 0x72, 0xd9, 0x06, 0x4d, 0x7a, 0x9b, 0x67, 0x87, 0xa7, 0xd5, 0x8a, -0xb3, 0x59, 0x72, 0x85, 0xc6, 0xa2, 0x22, 0xf4, 0xb0, 0x48, 0x95, 0x8b, 0x54, 0x16, 0x91, 0x6a, -0xaf, 0xf8, 0xde, 0x8e, 0xa7, 0xe7, 0x44, 0x8c, 0xed, 0x16, 0xf6, 0x04, 0xc9, 0x31, 0x3f, 0x10, -0x31, 0x05, 0x78, 0xda, 0x2a, 0x62, 0x72, 0x10, 0x53, 0x20, 0x62, 0x7a, 0x6f, 0x5f, 0x8a, 0x11, -0xc6, 0x8f, 0xa7, 0xd5, 0x22, 0xc6, 0xa3, 0x5b, 0x66, 0xab, 0x79, 0x22, 0x3c, 0x80, 0xf0, 0x45, -0x22, 0xbc, 0x50, 0x84, 0x07, 0x78, 0xb6, 0x0e, 0x61, 0xf5, 0x22, 0xb6, 0x08, 0x4f, 0x61, 0x11, -0x3b, 0x43, 0xc4, 0x16, 0xa9, 0xc3, 0x22, 0xdc, 0xcb, 0xde, 0x91, 0x45, 0xb8, 0x57, 0x84, 0x7b, -0xd5, 0xc3, 0x94, 0xc3, 0xfa, 0xb8, 0x94, 0x27, 0xe5, 0x68, 0x7f, 0x8f, 0x7b, 0xb6, 0x25, 0x87, -0xcf, 0xb9, 0x15, 0x69, 0x7c, 0x6c, 0x33, 0x2d, 0x9e, 0xfc, 0xea, 0xd4, 0x9b, 0x96, 0xd2, 0x04, -0x9a, 0x82, 0x90, 0xf3, 0x22, 0x64, 0xa6, 0xd8, 0x6f, 0x37, 0x45, 0xed, 0x13, 0x6f, 0xb7, 0xf1, -0x3c, 0x16, 0xe2, 0x06, 0xc5, 0xdb, 0xed, 0xea, 0x05, 0xe4, 0xca, 0xef, 0x03, 0xc8, 0xf5, 0x53, -0xde, 0xdd, 0x8a, 0x5c, 0x25, 0x23, 0xd7, 0x4c, 0xbc, 0x37, 0x89, 0x27, 0x59, 0x94, 0x6e, 0xc1, -0xfb, 0x76, 0xa4, 0xfb, 0x37, 0xdc, 0x37, 0x23, 0x5d, 0x86, 0x91, 0x6e, 0x02, 0xef, 0x7a, 0x17, -0x4f, 0x66, 0xf5, 0x09, 0x71, 0x27, 0x75, 0xbb, 0xb8, 0x4b, 0xea, 0x66, 0x71, 0xb7, 0x18, 0xa5, -0x67, 0xa9, 0x49, 0x71, 0xb2, 0x0b, 0x99, 0x1a, 0x88, 0x7d, 0x84, 0xde, 0x88, 0xa7, 0x1a, 0xc9, -0xa3, 0x5d, 0x11, 0x4f, 0xe5, 0xc2, 0x03, 0xcd, 0x8d, 0x46, 0xae, 0xa5, 0x18, 0xf1, 0xde, 0x14, -0x4f, 0x65, 0x2a, 0x69, 0xd1, 0xa8, 0xf0, 0x7b, 0x88, 0xb4, 0x9f, 0x89, 0xb4, 0x36, 0xe2, 0xbd, -0x88, 0xfc, 0x24, 0x76, 0xb9, 0x08, 0x8f, 0xa3, 0x37, 0x7e, 0x63, 0x40, 0xad, 0xd7, 0xd3, 0x21, -0x56, 0xe6, 0x58, 0x3a, 0x8b, 0x2f, 0x3e, 0x15, 0x4f, 0x6f, 0x1b, 0xe9, 0xf0, 0xd5, 0xfc, 0x01, -0xd5, 0x95, 0x4e, 0x67, 0x11, 0xb1, 0x03, 0x48, 0xf7, 0x6f, 0xe2, 0x69, 0x8f, 0x91, 0x2e, 0x83, -0xd3, 0xa5, 0x76, 0x98, 0xb2, 0xf7, 0x66, 0x60, 0x40, 0xe1, 0xf5, 0x51, 0x60, 0xe0, 0x1d, 0x3e, -0xcd, 0x03, 0x18, 0xc8, 0x4c, 0x58, 0x04, 0x84, 0x4e, 0xd5, 0x23, 0xee, 0xd3, 0x54, 0xba, 0xf2, -0x84, 0x4f, 0xa7, 0xa0, 0x66, 0xa4, 0xb7, 0xa9, 0x71, 0xa4, 0xfe, 0x48, 0x55, 0x91, 0x56, 0x4e, -0x58, 0x45, 0x1a, 0xb6, 0x44, 0xa5, 0xcf, 0x46, 0xc4, 0xf3, 0x0d, 0x48, 0xdf, 0x2e, 0xe8, 0x4a, -0x51, 0xcb, 0x45, 0xc8, 0x54, 0x50, 0x95, 0x02, 0x0c, 0x15, 0x89, 0x50, 0xa7, 0xea, 0xd2, 0x3d, -0xd4, 0xa8, 0x53, 0xdb, 0xb5, 0xfe, 0x9d, 0xe4, 0xd4, 0x77, 0x04, 0x0b, 0x4e, 0xe0, 0x50, 0x92, -0x48, 0xeb, 0x64, 0x4e, 0xd8, 0x69, 0x52, 0xe6, 0x19, 0x33, 0x7f, 0x83, 0x8a, 0x98, 0xa5, 0xfd, -0x74, 0x48, 0x8c, 0x40, 0x52, 0xe8, 0x11, 0x31, 0x76, 0xc8, 0xc6, 0x7a, 0xfb, 0x77, 0x69, 0xd8, -0x65, 0x16, 0xbf, 0x93, 0xc7, 0x9e, 0xe7, 0xc3, 0xe3, 0xac, 0xb0, 0x27, 0x19, 0x67, 0x73, 0x08, -0x7d, 0x36, 0x77, 0xbc, 0xed, 0xe0, 0xa8, 0x8d, 0x5e, 0xe5, 0x39, 0x1a, 0xa8, 0xfa, 0x88, 0x46, -0x7d, 0x4f, 0x65, 0x5d, 0x65, 0x57, 0x38, 0x1a, 0x23, 0x8f, 0x5a, 0xeb, 0xb1, 0x4d, 0x4a, 0xea, -0x8c, 0x2c, 0x9f, 0x04, 0x6d, 0x71, 0x82, 0xc5, 0x04, 0x1a, 0xce, 0x16, 0xa7, 0x52, 0x4f, 0xe8, -0x0c, 0x0d, 0xb0, 0xbc, 0xf3, 0x24, 0x3f, 0xbf, 0x60, 0x0a, 0x1f, 0xe0, 0x7d, 0xf8, 0x9d, 0x94, -0xeb, 0xe6, 0xd3, 0xcc, 0x73, 0xa6, 0x93, 0x59, 0xcc, 0xff, 0x58, 0xfd, 0xe5, 0xdf, 0xfb, 0x54, -0xf8, 0x9a, 0xb6, 0x61, 0x84, 0x2a, 0xff, 0x6f, 0x1a, 0x3f, 0xc7, 0x65, 0x84, 0x6a, 0x88, 0x37, -0x25, 0xac, 0x7c, 0x36, 0x61, 0xdc, 0x26, 0x05, 0x41, 0xa5, 0x59, 0xe2, 0x9c, 0x42, 0x59, 0x0a, -0x7e, 0xa6, 0x85, 0x0f, 0xc6, 0xb3, 0x90, 0x63, 0x36, 0xc2, 0x3f, 0x52, 0x2d, 0xe1, 0x03, 0x71, -0x84, 0x7e, 0xaa, 0x15, 0x43, 0xd2, 0x0e, 0x2c, 0xe3, 0x31, 0x68, 0xf3, 0xab, 0xfd, 0xe2, 0x74, -0x5e, 0x87, 0x25, 0xdc, 0xad, 0x54, 0x06, 0x2c, 0xd6, 0x4a, 0x93, 0xb6, 0xc8, 0xae, 0xcf, 0xaa, -0xed, 0xae, 0x5d, 0x2c, 0x7f, 0x54, 0xab, 0x4a, 0xef, 0xd7, 0xf6, 0x57, 0xb6, 0xc8, 0x9b, 0xf9, -0xcc, 0xe9, 0xa0, 0xbe, 0xd6, 0xca, 0xf2, 0x5f, 0x20, 0x58, 0x1a, 0xfa, 0xe9, 0xab, 0x2d, 0xee, -0x92, 0xca, 0xb2, 0xaa, 0x9f, 0xfd, 0xa2, 0x45, 0xd1, 0x3d, 0xf3, 0x86, 0xfe, 0x56, 0xf7, 0xa2, -0xef, 0x9b, 0xc8, 0x5e, 0x21, 0x75, 0x2b, 0xb4, 0xb2, 0x8d, 0x6c, 0x1d, 0x9a, 0x92, 0x6d, 0xd8, -0xf6, 0xd6, 0x18, 0xab, 0x0a, 0x94, 0xe9, 0x72, 0x8d, 0x58, 0xad, 0xbc, 0x38, 0xab, 0x85, 0xf2, -0x30, 0x9a, 0xb4, 0x50, 0xbe, 0x76, 0xb9, 0x10, 0xa3, 0xd9, 0xf5, 0x76, 0x1c, 0xb5, 0x93, 0x61, -0x4b, 0x27, 0xfc, 0x43, 0x39, 0x6b, 0x4b, 0x82, 0xa5, 0x95, 0x2c, 0x03, 0x0b, 0x2c, 0x7e, 0x49, -0xe8, 0x16, 0x9e, 0xb4, 0x6d, 0x98, 0xf2, 0x87, 0x2c, 0xcd, 0x74, 0x78, 0x7d, 0x14, 0x59, 0xad, -0xb5, 0xfa, 0x52, 0x6b, 0xd5, 0x86, 0x7d, 0xe1, 0xa8, 0x07, 0x28, 0x61, 0xab, 0xe1, 0x48, 0xd7, -0x8d, 0xf7, 0x19, 0xe0, 0x9b, 0x0e, 0xdb, 0xb1, 0xee, 0xad, 0xc9, 0xf6, 0x0b, 0x03, 0x3d, 0x6c, -0x4d, 0x32, 0xbe, 0x96, 0x61, 0xeb, 0x55, 0x36, 0x76, 0x1f, 0xea, 0x61, 0xec, 0x33, 0x80, 0xf7, -0x7d, 0x29, 0x16, 0xc3, 0x2a, 0x7d, 0x51, 0xda, 0x26, 0x7d, 0x41, 0xa8, 0x8d, 0xec, 0xb8, 0xf2, -0xd3, 0x3b, 0xdc, 0x9f, 0x27, 0x45, 0xb7, 0x44, 0xf7, 0x55, 0xea, 0x27, 0x61, 0x55, 0x7e, 0x84, -0x11, 0x33, 0x22, 0xbc, 0xd6, 0x5a, 0x90, 0x22, 0x07, 0x97, 0x8d, 0xcf, 0x43, 0xda, 0x72, 0xd7, -0xec, 0x4a, 0xca, 0x45, 0x4e, 0xe6, 0xad, 0xcb, 0x48, 0x9a, 0x1d, 0xa2, 0x3c, 0xa4, 0xb4, 0x3b, -0x82, 0xe0, 0xf2, 0xdb, 0xf4, 0x1d, 0x90, 0x82, 0xf2, 0x0a, 0x52, 0x3e, 0x0b, 0x84, 0x1c, 0x93, -0xed, 0x9f, 0xd2, 0xbf, 0x4c, 0x58, 0x7a, 0x4f, 0xd7, 0x4f, 0xba, 0x69, 0x5b, 0x24, 0x2c, 0x0e, -0x46, 0x5c, 0x41, 0x9f, 0x14, 0x59, 0x71, 0x1d, 0x8b, 0xef, 0x92, 0xf4, 0x59, 0x31, 0xbf, 0x67, -0x15, 0xf6, 0xd6, 0xb4, 0xbd, 0xb7, 0x2b, 0x79, 0xab, 0x38, 0xe5, 0x25, 0x65, 0xc9, 0x80, 0x91, -0x9c, 0xeb, 0xa8, 0x18, 0xbb, 0xf8, 0x9d, 0xb8, 0x5c, 0xa8, 0x89, 0x5b, 0x5f, 0xc5, 0x41, 0x7f, -0x53, 0x50, 0x4f, 0x27, 0x20, 0xb7, 0xa1, 0x8e, 0x6e, 0xc4, 0xd8, 0x0c, 0x6c, 0xd8, 0x21, 0x8b, -0xc9, 0x9b, 0xef, 0x9a, 0x0d, 0x09, 0x0b, 0xb0, 0x9a, 0xb7, 0x70, 0x1d, 0x2b, 0x69, 0x2a, 0x52, -0x2a, 0xec, 0x53, 0xef, 0xd3, 0xf5, 0xae, 0x20, 0x9f, 0xdb, 0x25, 0xec, 0x7f, 0x0b, 0x52, 0xf6, -0x9f, 0x4c, 0x1b, 0xa1, 0x67, 0x75, 0x5f, 0x81, 0xc2, 0xd6, 0xdf, 0x23, 0x2c, 0x17, 0x9d, 0x90, -0xd9, 0xcc, 0xfd, 0x7c, 0xc6, 0x4f, 0xbe, 0xd0, 0xf7, 0x18, 0xf3, 0x36, 0x3c, 0xc9, 0xfd, 0x77, -0xb5, 0x58, 0xfc, 0x36, 0xc6, 0x48, 0x5b, 0x16, 0xe7, 0xfa, 0xd9, 0xe3, 0xe0, 0xae, 0x9e, 0x50, -0x8b, 0x76, 0x1e, 0xd7, 0x87, 0xa1, 0x16, 0x7d, 0x25, 0x57, 0xb7, 0x54, 0xaf, 0xfd, 0x40, 0x3b, -0xef, 0xb3, 0x0a, 0x4a, 0xfa, 0x9c, 0x73, 0x7e, 0x02, 0x0d, 0xbe, 0x89, 0xfa, 0x09, 0x36, 0x6c, -0x23, 0xf6, 0xd6, 0x4e, 0xc8, 0x56, 0x67, 0x85, 0x85, 0x98, 0x5b, 0x69, 0xd1, 0xce, 0x02, 0x97, -0xfa, 0xd9, 0x37, 0xbc, 0xda, 0xed, 0xd6, 0x31, 0x6d, 0x7c, 0xcb, 0xb6, 0xd5, 0xe2, 0x94, 0xa0, -0xd4, 0x8e, 0x82, 0xe3, 0x9f, 0xe8, 0xdf, 0xe1, 0x1b, 0xbf, 0xf1, 0x0d, 0x7b, 0x15, 0x19, 0x61, -0x6f, 0x42, 0xbc, 0x5a, 0x2f, 0xac, 0x3e, 0x75, 0x1b, 0x6c, 0x23, 0x1d, 0xcf, 0xca, 0x97, 0x04, -0x63, 0x0f, 0xf0, 0x79, 0x66, 0xe2, 0x44, 0xd0, 0x4b, 0xbc, 0x96, 0xf9, 0x46, 0x47, 0xfd, 0x56, -0xf1, 0x36, 0x22, 0xbc, 0xc3, 0xd9, 0x04, 0x87, 0xac, 0x19, 0x67, 0x4b, 0x7e, 0xfe, 0x2a, 0x5b, -0xf2, 0xf3, 0x09, 0x17, 0xa0, 0xbd, 0x18, 0x98, 0xa1, 0x9d, 0xf7, 0xcf, 0xd0, 0x3e, 0xfc, 0x7c, -0x5b, 0x72, 0xff, 0x24, 0xd1, 0x57, 0x8e, 0xa7, 0xd7, 0xdb, 0x85, 0xcd, 0x82, 0x7e, 0xe6, 0xd0, -0x17, 0xc4, 0xbd, 0x4d, 0x99, 0xab, 0x9f, 0x79, 0xf1, 0xe9, 0x16, 0x17, 0xfb, 0x7c, 0xb0, 0x8c, -0x9e, 0x67, 0x45, 0x23, 0xa9, 0xf6, 0x14, 0x76, 0xe9, 0x8c, 0x7d, 0x8f, 0x6e, 0x9b, 0xae, 0x5b, -0xa4, 0x1b, 0xd6, 0xe9, 0xc0, 0x9b, 0xbf, 0x31, 0x85, 0xbb, 0x79, 0x02, 0xfb, 0xc2, 0x0b, 0x8f, -0x5b, 0x60, 0x5d, 0x32, 0xb0, 0xfe, 0x07, 0x2c, 0xda, 0x81, 0xf5, 0x6d, 0x69, 0xac, 0xa7, 0x4e, -0xa4, 0xba, 0x3e, 0xd6, 0xb7, 0x8d, 0x62, 0xbd, 0x38, 0x18, 0xbb, 0x9f, 0xf7, 0xa2, 0xe0, 0x0b, -0xa4, 0x9b, 0xa3, 0x63, 0xfd, 0x11, 0xf1, 0x36, 0xa2, 0xdb, 0x07, 0xfa, 0xb3, 0xfe, 0x03, 0xe7, -0x55, 0x59, 0x53, 0xd2, 0x34, 0x55, 0xb0, 0xff, 0xd5, 0xda, 0x73, 0x19, 0xaf, 0x21, 0xc5, 0x98, -0x9d, 0x83, 0x32, 0x45, 0x37, 0x27, 0xb2, 0xd9, 0x1f, 0xc7, 0xe1, 0xdd, 0xd1, 0x7e, 0x0b, 0xc5, -0xf9, 0xd4, 0x39, 0x7e, 0xdb, 0x3b, 0xf6, 0x3c, 0x71, 0x31, 0x46, 0xe6, 0x8c, 0xf9, 0xf2, 0x15, -0xf6, 0xae, 0x41, 0x67, 0x44, 0xca, 0x1d, 0x55, 0x17, 0x2c, 0x74, 0xcb, 0x06, 0x8b, 0x25, 0xd4, -0x6f, 0x91, 0x5d, 0x5d, 0x08, 0x79, 0xe6, 0x1f, 0x0f, 0xdf, 0xf2, 0x80, 0x85, 0x6c, 0xe5, 0xda, -0xee, 0x8e, 0xdc, 0x5b, 0xba, 0x2d, 0x14, 0x0a, 0xea, 0x3d, 0x7f, 0x28, 0xf9, 0xc1, 0x86, 0xa1, -0xe4, 0xbb, 0x1b, 0xaa, 0x2e, 0xd8, 0x2d, 0x8e, 0x07, 0x1c, 0xe2, 0xeb, 0xaf, 0xb6, 0xdb, 0x21, -0x49, 0x7a, 0xf0, 0xeb, 0xd9, 0x70, 0xcb, 0x06, 0xbb, 0x25, 0x96, 0x0c, 0x94, 0x53, 0xee, 0xae, -0x64, 0xfc, 0xa8, 0xb2, 0x53, 0xa6, 0xaa, 0x73, 0x32, 0xef, 0xeb, 0x97, 0x1d, 0x80, 0x94, 0x77, -0xd7, 0x4f, 0x8b, 0x60, 0xe8, 0x17, 0xdf, 0xb9, 0xda, 0x2d, 0x14, 0x7d, 0x44, 0x1f, 0xdf, 0x1d, -0x93, 0x0e, 0x26, 0x5d, 0x95, 0x0e, 0x68, 0x8f, 0x8e, 0x47, 0x1c, 0x8d, 0x5f, 0x5d, 0x21, 0x6c, -0x37, 0x45, 0x9d, 0x14, 0xbf, 0x9d, 0x1a, 0x93, 0xb7, 0x24, 0xed, 0x14, 0x77, 0xea, 0xd6, 0x9c, -0x29, 0xdb, 0x4e, 0xe4, 0x2c, 0x2b, 0x1b, 0x6e, 0x59, 0x2e, 0x5b, 0x44, 0xee, 0x16, 0x47, 0x1f, -0xf2, 0xb6, 0xdc, 0x1a, 0xc9, 0x92, 0xc7, 0xd6, 0x53, 0x9c, 0xee, 0x47, 0x3a, 0x06, 0x5d, 0xc0, -0xa0, 0x1b, 0x9c, 0xd6, 0xb9, 0x22, 0x4b, 0x9e, 0x7b, 0x1e, 0x98, 0x9c, 0x37, 0x16, 0x93, 0x63, -0x3d, 0xaa, 0x1b, 0x65, 0x07, 0xec, 0x14, 0x4b, 0x4e, 0x43, 0xd9, 0x46, 0x8d, 0x72, 0x1d, 0x51, -0x1d, 0xb7, 0x63, 0x4e, 0x3f, 0x2f, 0x75, 0x3e, 0x23, 0x53, 0xe5, 0x79, 0x99, 0x84, 0xa7, 0x89, -0x66, 0xd4, 0x36, 0x4a, 0xf2, 0xf4, 0x28, 0x6a, 0x29, 0x30, 0xf9, 0xfa, 0x11, 0x57, 0x9f, 0x5e, -0xdf, 0x5b, 0x3b, 0x2c, 0x80, 0x54, 0xc1, 0xaf, 0xf2, 0xc0, 0xb4, 0x07, 0xf0, 0x7b, 0xcd, 0x1a, -0x25, 0x9f, 0x5a, 0x0d, 0x18, 0x6d, 0x0e, 0x1f, 0xe5, 0x3a, 0x1b, 0x85, 0x4f, 0x01, 0x87, 0xcf, -0x54, 0xbf, 0xef, 0x8a, 0xc4, 0x7e, 0xc7, 0x13, 0x2b, 0x9d, 0xc1, 0xd0, 0x4e, 0x70, 0xc8, 0x9d, -0xd0, 0x96, 0xb7, 0x84, 0x76, 0x4e, 0x3c, 0x3f, 0x2d, 0x08, 0xfe, 0xab, 0x42, 0x37, 0xb4, 0x75, -0x7e, 0x6f, 0x77, 0x32, 0x5e, 0xce, 0x69, 0x3f, 0x7b, 0x53, 0xa4, 0x8d, 0x80, 0x1b, 0xdb, 0x94, -0xca, 0xd7, 0x0f, 0xbc, 0x7e, 0x78, 0xa8, 0x8f, 0x4f, 0xb5, 0x7e, 0xf4, 0x80, 0x12, 0xbc, 0x65, -0x79, 0x16, 0x65, 0x11, 0x72, 0xd9, 0x01, 0x29, 0xbf, 0x11, 0xb9, 0x6c, 0x56, 0x1a, 0x95, 0x24, -0xe7, 0xa4, 0xe6, 0x43, 0xbe, 0xc9, 0x45, 0xce, 0xb9, 0xd3, 0xa2, 0x64, 0x77, 0xf6, 0xa1, 0xd6, -0x90, 0xc1, 0xd8, 0x6e, 0xf6, 0xd1, 0x23, 0xae, 0xfb, 0x79, 0x9f, 0x95, 0x55, 0xdf, 0xb9, 0xe0, -0x57, 0xd8, 0xc3, 0x9f, 0x2f, 0x75, 0xe2, 0x09, 0xf5, 0xa6, 0xbd, 0x7a, 0x48, 0xa1, 0x87, 0x79, -0x84, 0x48, 0xc4, 0xc7, 0x8e, 0x11, 0xce, 0xc8, 0xa3, 0x03, 0x8e, 0xe5, 0x13, 0xcf, 0x1b, 0x6b, -0xf7, 0xd3, 0xc7, 0x8f, 0x20, 0x4a, 0xed, 0xc3, 0x03, 0x3c, 0x67, 0x25, 0x20, 0x28, 0x72, 0x2c, -0xfd, 0xbc, 0x74, 0xce, 0xda, 0x47, 0x07, 0x8c, 0x3e, 0x66, 0x61, 0x4b, 0x7d, 0x25, 0xaa, 0xca, -0x73, 0x2e, 0x5f, 0x29, 0x12, 0x7d, 0xe6, 0x70, 0x1a, 0x36, 0xee, 0x21, 0x05, 0x68, 0x5f, 0x85, -0xcf, 0xc2, 0x72, 0x35, 0xcd, 0xbd, 0x7c, 0xa5, 0x5f, 0x0d, 0x70, 0x4f, 0xae, 0x7f, 0x54, 0xec, -0x97, 0xcb, 0xd1, 0xfd, 0xc2, 0x22, 0xe4, 0x46, 0x68, 0xa0, 0xc5, 0x0d, 0x9b, 0x54, 0x3e, 0x25, -0xd3, 0xc2, 0xbe, 0x0e, 0xbd, 0xc1, 0x19, 0x11, 0xb2, 0xcc, 0xa8, 0x25, 0xab, 0xe1, 0x4b, 0xe3, -0x70, 0xda, 0xfb, 0x50, 0x7a, 0x87, 0xca, 0xec, 0x0a, 0x3e, 0xc7, 0x1e, 0xf9, 0x07, 0x91, 0x7f, -0xd8, 0x05, 0x76, 0x84, 0xb6, 0xaa, 0x43, 0x99, 0x0d, 0xde, 0x36, 0x6a, 0xf2, 0xfa, 0x68, 0x81, -0xdb, 0x47, 0x0b, 0xf9, 0x1c, 0x13, 0x3e, 0xd5, 0x68, 0x68, 0x68, 0x76, 0x1d, 0x15, 0xcf, 0x9e, -0x47, 0x25, 0xe0, 0x68, 0x15, 0x7e, 0x3e, 0x7b, 0xd3, 0x32, 0xf4, 0x20, 0x78, 0xbd, 0xe5, 0x8d, -0xa3, 0xca, 0xfc, 0x1f, 0x1f, 0x68, 0x23, 0xda, 0xa2, 0xdb, 0x47, 0x63, 0x14, 0xc8, 0xda, 0xbd, -0x21, 0x6e, 0x05, 0x57, 0xb4, 0x46, 0x06, 0x1a, 0xbb, 0xfb, 0xbb, 0x9b, 0x8b, 0x7d, 0x99, 0xbe, -0x6c, 0x3e, 0xc1, 0xc8, 0xd8, 0xf5, 0x45, 0x52, 0x71, 0xa0, 0x8d, 0x4a, 0x86, 0xde, 0x27, 0xcb, -0x4c, 0xe8, 0x73, 0x33, 0x43, 0x94, 0x15, 0xf0, 0xe1, 0x7d, 0x05, 0x59, 0x79, 0xd7, 0xd7, 0xcc, -0x2a, 0xca, 0x56, 0x79, 0x27, 0xa0, 0x95, 0x02, 0x48, 0x17, 0x08, 0x4c, 0x8c, 0x1c, 0xa8, 0xfa, -0x9d, 0x9d, 0x7e, 0x3c, 0xd0, 0x96, 0x15, 0x98, 0x37, 0xf4, 0x11, 0x05, 0xf0, 0x95, 0x55, 0x69, -0xd4, 0xf7, 0x2a, 0xfa, 0x0b, 0x29, 0xab, 0x1f, 0x65, 0xa2, 0xf5, 0x1e, 0x8f, 0xae, 0x4f, 0x90, -0xe9, 0x90, 0xa3, 0xc6, 0xd1, 0x07, 0x28, 0xf7, 0xeb, 0xd6, 0x6c, 0x7e, 0x3e, 0xf9, 0x69, 0x00, -0xf4, 0x94, 0x82, 0x68, 0x43, 0xff, 0x86, 0x6b, 0x21, 0x32, 0xfd, 0x10, 0x25, 0x15, 0x0f, 0x9d, -0x1b, 0x07, 0x51, 0xf1, 0xd0, 0xf2, 0x71, 0x10, 0x2d, 0x1f, 0x07, 0xd1, 0x45, 0x03, 0x22, 0xbc, -0x0f, 0x1d, 0x15, 0x10, 0xe9, 0x36, 0xc7, 0x59, 0xd0, 0xf6, 0x74, 0x88, 0xb2, 0xa3, 0xbd, 0x89, -0x6c, 0x47, 0x18, 0xd0, 0x58, 0x5c, 0x11, 0xd5, 0xac, 0xd3, 0x9f, 0xee, 0xf7, 0xd9, 0x24, 0xe6, -0x2e, 0xe2, 0x74, 0x65, 0x8f, 0x2a, 0x23, 0xce, 0xa2, 0xe3, 0xb8, 0xf4, 0x06, 0x65, 0xbe, 0x2e, -0x9d, 0x18, 0x58, 0xe4, 0xb3, 0xad, 0xad, 0x01, 0x60, 0xbb, 0xea, 0x77, 0xdb, 0xb5, 0x9f, 0xbe, -0xda, 0xec, 0x67, 0xb8, 0x9d, 0x73, 0xea, 0xb7, 0xa4, 0xe0, 0xa6, 0x73, 0x7e, 0x79, 0x10, 0xf1, -0x33, 0x83, 0x06, 0xd4, 0xf2, 0x38, 0x2c, 0xe6, 0xe2, 0x5b, 0x6b, 0xf5, 0xef, 0x36, 0xd3, 0xdf, -0x1d, 0x6d, 0xb3, 0xf8, 0x6f, 0x18, 0xac, 0x9d, 0x19, 0x1c, 0xc5, 0x5c, 0x00, 0x98, 0xdb, 0x25, -0x30, 0xa7, 0xad, 0x61, 0xcc, 0xd1, 0x63, 0x3a, 0xe6, 0x68, 0xcb, 0xd5, 0x50, 0x94, 0x31, 0x14, -0x68, 0x6b, 0x3e, 0xbf, 0xf8, 0x67, 0xaf, 0x36, 0x17, 0x31, 0x14, 0xae, 0x39, 0xf5, 0x8f, 0x18, -0x50, 0x2c, 0xf6, 0x9b, 0x07, 0x97, 0x8f, 0x81, 0xc1, 0x3c, 0x0e, 0x6f, 0x7c, 0x9a, 0xb1, 0x75, -0xce, 0xc5, 0xcd, 0xf4, 0x93, 0x5f, 0xb6, 0x99, 0x3f, 0x07, 0x53, 0x59, 0xc0, 0x94, 0xcc, 0x98, -0x7a, 0xf8, 0xb0, 0x33, 0x8d, 0x8d, 0x72, 0xab, 0x8e, 0x23, 0xad, 0x23, 0x4d, 0xbd, 0x23, 0xfa, -0xfe, 0x28, 0xdd, 0x1e, 0x1c, 0x34, 0x5b, 0x0c, 0xda, 0x2d, 0x2d, 0xe2, 0xd5, 0x53, 0x1f, 0x05, -0x41, 0xbf, 0x61, 0xd0, 0x6f, 0x04, 0x34, 0x5b, 0x07, 0xba, 0x6e, 0x00, 0x7d, 0x37, 0xf1, 0xea, -0xea, 0xbc, 0xcb, 0x9f, 0xae, 0x9c, 0x5d, 0x45, 0x5e, 0x48, 0x95, 0x45, 0xac, 0xe9, 0x32, 0xf5, -0xbe, 0xfe, 0x12, 0xd7, 0xc7, 0x31, 0x71, 0xa8, 0x87, 0x31, 0x04, 0x38, 0x40, 0x19, 0xbb, 0xfa, -0xda, 0xd4, 0x37, 0x5e, 0x52, 0x82, 0xaf, 0x1f, 0x7c, 0xe1, 0xd5, 0x56, 0xaf, 0x38, 0x41, 0x78, -0x5b, 0x9a, 0x3e, 0xa2, 0x7e, 0x3e, 0x3d, 0x2d, 0x55, 0xcb, 0x39, 0x94, 0x65, 0xbc, 0xb3, 0xcd, -0xf0, 0x33, 0xbb, 0x36, 0xb4, 0xde, 0x73, 0x55, 0xfa, 0x7c, 0xe4, 0x69, 0x19, 0x0c, 0xa5, 0x53, -0x17, 0x92, 0x75, 0xb0, 0x4a, 0xf5, 0x0f, 0xf6, 0xbc, 0xf1, 0xd2, 0x8f, 0x07, 0x5a, 0x1b, 0xc6, -0xa7, 0xa6, 0xf3, 0xc8, 0xcd, 0x9b, 0x6e, 0x47, 0x3d, 0x77, 0x7e, 0xb7, 0x72, 0x7b, 0xcd, 0xac, -0xc1, 0x88, 0xda, 0x68, 0x60, 0x2c, 0x45, 0xed, 0x77, 0xef, 0xd5, 0x39, 0xd6, 0x4e, 0x37, 0xb7, -0xd8, 0x93, 0x2f, 0x0c, 0x5c, 0x0d, 0x31, 0x6d, 0x47, 0x5a, 0xcb, 0x60, 0x55, 0x3a, 0x47, 0xd4, -0x51, 0xc0, 0xa3, 0xe7, 0x77, 0x0d, 0xad, 0x8a, 0xb3, 0x30, 0xac, 0x9e, 0x6b, 0x69, 0xb5, 0xc6, -0xa0, 0xd4, 0x23, 0xaa, 0xe4, 0x8a, 0x5c, 0x03, 0xc7, 0xf9, 0xbd, 0xfa, 0x1c, 0x1c, 0xfb, 0x7b, -0xba, 0xa6, 0x55, 0x45, 0x9e, 0x92, 0x47, 0xb4, 0xaa, 0xc8, 0xe5, 0x44, 0xda, 0xba, 0xd1, 0xb0, -0x21, 0x37, 0xda, 0xd1, 0x8f, 0x76, 0x2c, 0x46, 0x5b, 0x95, 0xf2, 0x4a, 0xb8, 0x8b, 0x79, 0x12, -0xda, 0x12, 0x6d, 0x1a, 0x01, 0x2f, 0xaa, 0x43, 0x3b, 0x36, 0xa0, 0x8d, 0x9b, 0xc4, 0x6c, 0x5f, -0x56, 0x29, 0xda, 0xe0, 0xd7, 0x07, 0xd9, 0xaf, 0xf1, 0x5f, 0x1f, 0xe5, 0xb3, 0x02, 0xfc, 0x7c, -0x7a, 0xac, 0x65, 0x70, 0xed, 0x4f, 0x07, 0x5a, 0xe7, 0x73, 0x4f, 0x79, 0xe3, 0x25, 0xc8, 0x42, -0x56, 0x68, 0x74, 0x66, 0x77, 0x30, 0xb6, 0x51, 0x2d, 0xe7, 0xd6, 0x6c, 0x59, 0x28, 0xce, 0x82, -0xdf, 0xf7, 0xef, 0xad, 0xe9, 0xf6, 0xf1, 0xcc, 0xac, 0x03, 0x5e, 0xc2, 0xa2, 0x65, 0x2c, 0x8d, -0x41, 0x81, 0x27, 0xeb, 0xcc, 0x6a, 0xca, 0xe6, 0xfc, 0x6a, 0x2f, 0x94, 0x9a, 0x38, 0x17, 0x7c, -0x7b, 0xb4, 0xa5, 0xee, 0x9a, 0x3a, 0x2f, 0xd6, 0x7d, 0x81, 0xd0, 0x71, 0x2f, 0xe3, 0x7e, 0xe8, -0xa7, 0x87, 0x5b, 0xdd, 0x46, 0xfe, 0xd9, 0x69, 0xec, 0x1f, 0x49, 0xe7, 0x3f, 0x8a, 0xf7, 0xea, -0xcf, 0xc5, 0x3b, 0xa4, 0x1c, 0x0f, 0xe7, 0xf5, 0x38, 0xfa, 0x3b, 0x6a, 0xc7, 0xd8, 0x77, 0x45, -0x04, 0xf6, 0x3b, 0x8c, 0x3e, 0x90, 0x7f, 0x7d, 0xec, 0x0b, 0x48, 0x16, 0x00, 0x8e, 0x26, 0x01, -0x41, 0xaa, 0x47, 0x46, 0xff, 0xc8, 0xd2, 0xf5, 0x16, 0xf2, 0xa0, 0x6c, 0x57, 0xba, 0x64, 0x8c, -0x45, 0x97, 0xf4, 0x36, 0x7f, 0x66, 0xb4, 0xdf, 0xd5, 0x7f, 0xe7, 0xd1, 0x23, 0x2a, 0x69, 0xad, -0x0f, 0x1f, 0x56, 0x4f, 0xa4, 0xc6, 0x0f, 0x6e, 0x1f, 0xb4, 0x59, 0x1d, 0xda, 0x6b, 0x21, 0xda, -0x4f, 0xe5, 0xd3, 0xce, 0x43, 0x9b, 0xd7, 0x14, 0xbf, 0xbd, 0xc9, 0x31, 0x27, 0xf4, 0xf0, 0xdf, -0xbc, 0xf6, 0xfd, 0x5f, 0xae, 0xd4, 0x56, 0x6b, 0x8f, 0x1e, 0xe1, 0x76, 0x32, 0x6d, 0x8b, 0xae, -0x4b, 0x98, 0xcb, 0x96, 0x51, 0xd6, 0x3f, 0xbd, 0x12, 0x5d, 0x9b, 0x30, 0x97, 0xa3, 0xf4, 0xdf, -0x1c, 0x2a, 0x99, 0xce, 0xa7, 0xef, 0x05, 0xf8, 0x0c, 0xbe, 0x03, 0x3f, 0xff, 0x65, 0x5b, 0xbe, -0x52, 0xf5, 0xfa, 0x2b, 0x4a, 0x76, 0x63, 0xf2, 0x85, 0x81, 0x66, 0xe8, 0x97, 0xbe, 0x79, 0xe4, -0xf7, 0x04, 0x63, 0x0f, 0xa2, 0xcc, 0x92, 0x9f, 0xbd, 0xd6, 0x96, 0xef, 0xa8, 0x7c, 0xe3, 0x90, -0x72, 0x43, 0x63, 0xf2, 0xc7, 0x1c, 0x3b, 0xd1, 0x57, 0x4f, 0x7e, 0x6f, 0x30, 0xf6, 0xd0, 0x23, -0xaf, 0xaa, 0x76, 0x4f, 0xc6, 0x5b, 0xeb, 0x15, 0xd3, 0x60, 0xef, 0xbe, 0x24, 0x9f, 0x09, 0xc8, -0xa1, 0xe2, 0xdb, 0xfa, 0x37, 0xd7, 0xef, 0x49, 0xc6, 0xcd, 0xab, 0x1b, 0xde, 0xda, 0xc4, 0xa7, -0x8f, 0x0f, 0xf5, 0x42, 0xe6, 0x31, 0xaf, 0x6c, 0x7a, 0x13, 0x6f, 0x2b, 0x49, 0xac, 0x07, 0x65, -0x02, 0x6b, 0x16, 0xe8, 0xf8, 0x6c, 0x3f, 0x54, 0x87, 0x6b, 0x31, 0x5f, 0x0a, 0x9f, 0x21, 0xbe, -0x39, 0xb5, 0xff, 0x39, 0xa3, 0x84, 0xcf, 0xac, 0xfc, 0xe9, 0x61, 0x5e, 0xaf, 0x10, 0xb6, 0x4f, -0x25, 0xfa, 0xb8, 0x32, 0xaa, 0x3f, 0x8a, 0xab, 0xdb, 0x11, 0x79, 0xe4, 0x00, 0x5b, 0x13, 0x38, -0x97, 0x65, 0xd1, 0x1d, 0xcb, 0x21, 0x98, 0x48, 0x25, 0x3b, 0xc9, 0x72, 0x07, 0xcf, 0x7c, 0xf3, -0x0e, 0xda, 0x2d, 0x8e, 0x26, 0xe8, 0x80, 0x96, 0xfe, 0xc6, 0x66, 0xa9, 0x24, 0xc9, 0x23, 0x11, -0xef, 0x51, 0x6e, 0x93, 0xef, 0x08, 0x12, 0x9f, 0x99, 0x94, 0x1d, 0x19, 0x60, 0x5e, 0xdb, 0xb8, -0xc1, 0x91, 0xfb, 0xe3, 0x81, 0xf8, 0x22, 0xc5, 0xe4, 0x88, 0x42, 0x83, 0xf4, 0xb3, 0xb7, 0x36, -0x35, 0x5f, 0x09, 0x02, 0x43, 0x16, 0xe8, 0xb7, 0x96, 0x78, 0x18, 0x4f, 0x56, 0x3c, 0x59, 0xe3, -0x65, 0x8e, 0xbb, 0x14, 0x1b, 0xaf, 0x56, 0x60, 0x34, 0xbd, 0x00, 0x69, 0xe0, 0x2d, 0xd5, 0x3d, -0x1b, 0x92, 0x37, 0xb1, 0xac, 0x3f, 0xb1, 0x7e, 0xdf, 0xbf, 0x39, 0x85, 0x5c, 0x61, 0x99, 0xd9, -0x46, 0xfe, 0xb4, 0x3c, 0xfe, 0xb1, 0x0f, 0x63, 0xb8, 0x6a, 0xe6, 0x73, 0x2b, 0x9c, 0x95, 0xe0, -0x90, 0x7c, 0x26, 0x7d, 0x83, 0x7e, 0xb6, 0xb3, 0xa9, 0x00, 0xb5, 0x6c, 0xd2, 0xad, 0xe1, 0xae, -0xcc, 0x47, 0x7b, 0x59, 0x45, 0x7b, 0x2d, 0xe5, 0xf6, 0xf2, 0x49, 0xd0, 0x14, 0xd0, 0xb6, 0xe2, -0x54, 0x1e, 0x8b, 0x1f, 0xa5, 0x44, 0xda, 0x97, 0x92, 0xef, 0x86, 0xeb, 0xe3, 0x4b, 0x32, 0xa7, -0xf1, 0x75, 0xe8, 0xfa, 0xf8, 0xd2, 0xa5, 0x20, 0xe0, 0x6b, 0xe0, 0xf7, 0xe0, 0xab, 0xf7, 0x0b, -0xe0, 0xab, 0x29, 0x85, 0x2f, 0xc6, 0x55, 0x19, 0x70, 0xb5, 0x8f, 0x71, 0x55, 0x81, 0x27, 0xeb, -0x3e, 0xc6, 0x55, 0x31, 0xe3, 0x6a, 0xd7, 0x06, 0xd4, 0xf2, 0x4d, 0x60, 0xea, 0x84, 0xea, 0x44, -0x4c, 0xb6, 0x8e, 0xa7, 0xdf, 0x8d, 0x08, 0x3c, 0x99, 0x45, 0xef, 0xd0, 0xb1, 0x74, 0x51, 0x60, -0x49, 0xd2, 0x31, 0xb4, 0x5a, 0x53, 0x65, 0xa6, 0x68, 0xd4, 0xc9, 0x38, 0x65, 0xfa, 0xca, 0x59, -0xb6, 0x2b, 0x1d, 0xa5, 0x61, 0xf6, 0xfe, 0x01, 0xbc, 0x64, 0xfa, 0xf4, 0xbd, 0xf4, 0xc0, 0x4d, -0x84, 0xa0, 0xdd, 0x5d, 0x17, 0x37, 0x74, 0x2e, 0x8d, 0x9b, 0x17, 0x05, 0x6e, 0x8a, 0xff, 0x04, -0xdc, 0xac, 0xf9, 0x02, 0x98, 0x69, 0x60, 0xcc, 0xa8, 0xf9, 0x9e, 0x60, 0xc9, 0x0c, 0xb2, 0xec, -0x11, 0x58, 0xc1, 0x93, 0x75, 0x4f, 0x0a, 0x2b, 0x37, 0x31, 0x56, 0x68, 0x50, 0xc7, 0x4a, 0x89, -0x81, 0x15, 0x96, 0x8b, 0x0c, 0xac, 0x54, 0x5d, 0x1f, 0x2b, 0x2b, 0x35, 0x35, 0xbb, 0xab, 0xe9, -0xc4, 0xa6, 0xd5, 0xc5, 0x6f, 0x6d, 0xe2, 0xb1, 0xfa, 0x8d, 0x8e, 0x31, 0xd4, 0x73, 0xc6, 0xd8, -0x09, 0xd2, 0x66, 0x9c, 0x36, 0x15, 0x8e, 0x56, 0x25, 0x1c, 0x77, 0x30, 0x6d, 0x9a, 0xaf, 0x9d, -0x73, 0x01, 0x05, 0x2e, 0x70, 0xec, 0x80, 0xdc, 0x3f, 0xd5, 0x27, 0x5d, 0x1b, 0xeb, 0x73, 0x67, -0x51, 0xfd, 0xbe, 0x8b, 0x0b, 0x1a, 0x36, 0xf1, 0xfe, 0x91, 0xd4, 0xe8, 0x8f, 0x9c, 0xfd, 0xcc, -0x63, 0x3f, 0xb3, 0x39, 0x6b, 0x55, 0xfa, 0xac, 0x34, 0xf5, 0x7e, 0xc5, 0xc3, 0xef, 0x57, 0xa2, -0xfc, 0xac, 0x15, 0xf3, 0xb3, 0xd6, 0xa4, 0xcf, 0x7b, 0xb1, 0x0f, 0x6f, 0x97, 0xbe, 0x3f, 0xc9, -0x6b, 0xec, 0xc8, 0x7b, 0x2c, 0xc7, 0x43, 0x7f, 0xc6, 0xf2, 0x72, 0x5b, 0x4d, 0xa4, 0x3b, 0x50, -0xd9, 0x61, 0x72, 0x4e, 0xfc, 0xed, 0x53, 0x8d, 0xdd, 0x07, 0x9f, 0xa7, 0x82, 0xce, 0xc9, 0x87, -0xd6, 0x9e, 0xe9, 0x19, 0xea, 0x3e, 0xd6, 0xdd, 0x41, 0x39, 0x40, 0x70, 0xe7, 0x84, 0x57, 0x7a, -0x72, 0xcb, 0xb5, 0xe4, 0x99, 0x1f, 0x1e, 0xec, 0x09, 0x0f, 0xc4, 0xb3, 0xa2, 0xdd, 0xdf, 0x30, -0xec, 0xd3, 0xa2, 0xdd, 0x71, 0x3b, 0xef, 0xbc, 0x8c, 0xdb, 0x55, 0x87, 0x38, 0x9d, 0x43, 0xd6, -0x77, 0x8f, 0x41, 0x1b, 0xcd, 0x52, 0x7c, 0x6c, 0x83, 0x8b, 0x5f, 0x67, 0x87, 0x09, 0x10, 0xba, -0x95, 0xa4, 0x3f, 0x6d, 0x43, 0x2b, 0xf6, 0x3a, 0x43, 0x7b, 0x43, 0xed, 0x15, 0x8c, 0xf4, 0x39, -0xfe, 0x36, 0xca, 0x2b, 0xf6, 0xd1, 0x54, 0x55, 0x8a, 0x05, 0xfb, 0x23, 0x8b, 0x1d, 0xec, 0xcd, -0x22, 0xd6, 0xed, 0x32, 0xbd, 0xd9, 0xfd, 0xfe, 0x86, 0x2d, 0x6b, 0x03, 0xd0, 0xdb, 0xf4, 0x99, -0xcc, 0x18, 0xf8, 0xcc, 0xee, 0x6f, 0xd9, 0x29, 0x71, 0x3c, 0x6d, 0xf3, 0x7d, 0xc2, 0x90, 0xe4, -0x17, 0xae, 0xa2, 0x52, 0x1f, 0xcd, 0xf7, 0xc8, 0xb1, 0x75, 0xec, 0x01, 0xc4, 0x29, 0xbf, 0x7f, -0xff, 0xd6, 0x64, 0xf5, 0xef, 0xdc, 0x24, 0xbc, 0x30, 0xdd, 0xcd, 0x96, 0x5a, 0x45, 0x52, 0xf8, -0xbe, 0x5a, 0x48, 0xcf, 0x6a, 0x7b, 0xe5, 0xc7, 0xab, 0xa8, 0xdc, 0xef, 0x76, 0xec, 0x07, 0xcc, -0x8b, 0x17, 0x46, 0x56, 0xd1, 0xd4, 0x48, 0xbb, 0x7b, 0xaa, 0xcf, 0xca, 0xbe, 0x68, 0x6e, 0x3f, -0x2d, 0xe6, 0x03, 0xac, 0xae, 0xa8, 0x2b, 0x93, 0x63, 0x7c, 0x93, 0x22, 0x2b, 0x68, 0x6a, 0xfd, -0xb6, 0xc6, 0xb5, 0x1c, 0xba, 0x77, 0x6d, 0x22, 0x6b, 0xce, 0xfb, 0xda, 0xa9, 0xfd, 0xa0, 0xb9, -0x25, 0xc3, 0x4a, 0xc6, 0xe0, 0xda, 0xf7, 0x1f, 0xd8, 0x96, 0x9c, 0xf3, 0xbb, 0x52, 0x12, 0x69, -0x75, 0xff, 0x2c, 0xc8, 0xe3, 0x8e, 0x1a, 0xe1, 0xa3, 0xd7, 0x1a, 0x5b, 0x57, 0x7d, 0x8e, 0xa6, -0xee, 0x7b, 0x9e, 0x8a, 0xda, 0xee, 0x1f, 0x3d, 0x41, 0x94, 0xed, 0xf7, 0x51, 0x7f, 0x37, 0x20, -0xcb, 0x2f, 0xf3, 0x91, 0xa8, 0xaf, 0xd3, 0x14, 0xeb, 0x49, 0xd5, 0x18, 0x78, 0x71, 0xbe, 0x71, -0xa0, 0xf2, 0x3d, 0x32, 0x2f, 0xd8, 0x10, 0xaa, 0x14, 0x35, 0x9b, 0x0a, 0x9e, 0xb0, 0x77, 0x25, -0x95, 0xb8, 0xb5, 0x91, 0xd8, 0xda, 0x37, 0xd7, 0xee, 0xeb, 0x28, 0xa5, 0xc5, 0xe6, 0x28, 0xc6, -0xac, 0xb8, 0x8d, 0xfd, 0x46, 0x44, 0x2b, 0xf9, 0x24, 0xfa, 0x18, 0xaf, 0xb2, 0xf7, 0x21, 0x54, -0x4a, 0xac, 0x01, 0x35, 0xe7, 0xbd, 0xd9, 0xe0, 0x5f, 0x0b, 0x8e, 0x99, 0x3b, 0x74, 0x57, 0xa0, -0x1b, 0xa9, 0xf2, 0x70, 0xe5, 0x5a, 0xd9, 0x82, 0x31, 0x27, 0x6e, 0x45, 0xaa, 0xec, 0x36, 0x39, -0xb0, 0x56, 0x95, 0xfc, 0xdd, 0x7c, 0x6a, 0x76, 0xeb, 0xd4, 0x21, 0xf4, 0x1b, 0x48, 0xad, 0x66, -0x91, 0xc2, 0x16, 0xf7, 0xe8, 0x29, 0x62, 0x0d, 0xea, 0x70, 0xe3, 0x5d, 0xea, 0x09, 0xc4, 0xb2, -0x4c, 0x6b, 0x16, 0xa1, 0x96, 0x99, 0xbc, 0x9b, 0x36, 0x0f, 0x3d, 0x84, 0xbd, 0xac, 0xe4, 0x22, -0x6c, 0x34, 0xc7, 0xcd, 0xc8, 0xf1, 0xe1, 0x0e, 0xd4, 0xa6, 0xf2, 0x2c, 0x4d, 0xad, 0x7a, 0x8f, -0xa6, 0xba, 0xa4, 0xc6, 0xb5, 0x7b, 0xd7, 0x36, 0x93, 0x16, 0xd2, 0xf7, 0x0f, 0xf0, 0xe9, 0x74, -0xac, 0xdb, 0xa1, 0xc5, 0x1d, 0x25, 0x90, 0x22, 0x41, 0x1d, 0x76, 0x71, 0xb2, 0x47, 0x83, 0x3f, -0x06, 0x8c, 0xb8, 0x36, 0x47, 0xa0, 0x7b, 0x78, 0xb6, 0x44, 0xfc, 0x95, 0xc5, 0xcb, 0x49, 0xda, -0x15, 0x5c, 0x02, 0x29, 0x6f, 0x4b, 0x70, 0x5b, 0xf4, 0x54, 0xf4, 0x95, 0x83, 0xc5, 0x74, 0x36, -0xaa, 0xef, 0xc3, 0x7c, 0xb3, 0x27, 0x56, 0x69, 0xad, 0x24, 0xdb, 0xbd, 0x52, 0x87, 0x4d, 0xa7, -0x0e, 0xa7, 0xa9, 0xb1, 0xc7, 0x51, 0xae, 0x69, 0x49, 0x3a, 0xfd, 0x3f, 0x41, 0xc3, 0xc9, 0x84, -0x45, 0x0f, 0x3f, 0xfd, 0x3f, 0x9d, 0x55, 0xbf, 0x7a, 0xa9, 0xfa, 0x5f, 0x76, 0xd0, 0xda, 0x98, -0x23, 0x23, 0xd6, 0x6d, 0x0e, 0x92, 0x6d, 0x73, 0xa8, 0x93, 0x8a, 0x2d, 0xc0, 0x27, 0xb9, 0xa5, -0xed, 0x6b, 0x5d, 0xf2, 0xaa, 0xc9, 0x80, 0x50, 0x59, 0x49, 0xaa, 0xf5, 0xf6, 0xfd, 0x9a, 0x56, -0x4a, 0x7a, 0xaa, 0xa6, 0xb5, 0xec, 0xe7, 0xc7, 0x15, 0x9e, 0xf3, 0x3e, 0x4d, 0xde, 0xfd, 0x40, -0xeb, 0xe9, 0xfe, 0xc8, 0x22, 0xdd, 0x3f, 0xa8, 0xb6, 0x35, 0xe9, 0x2f, 0x4f, 0x52, 0xb4, 0x27, -0x61, 0x51, 0xf4, 0x12, 0x9f, 0x18, 0xea, 0xee, 0x06, 0x65, 0x42, 0x7b, 0x2d, 0x48, 0xed, 0x45, -0x98, 0x5d, 0x01, 0x5e, 0x91, 0xd6, 0x2a, 0x8b, 0x3d, 0x24, 0xa3, 0x3c, 0xe9, 0xd0, 0xc1, 0x22, -0xe9, 0xed, 0x1e, 0xc7, 0x84, 0xa1, 0xfb, 0xf8, 0x34, 0xd1, 0x72, 0x0f, 0x99, 0x8f, 0xbe, 0xe2, -0x31, 0xbf, 0xb5, 0x9e, 0x7d, 0x03, 0xf1, 0xd9, 0x4a, 0x73, 0xf5, 0x7d, 0xec, 0x99, 0xbe, 0x0c, -0xd6, 0x73, 0xdd, 0x74, 0x3c, 0xe9, 0x98, 0xb0, 0x25, 0x79, 0x6a, 0xfd, 0x89, 0xee, 0x53, 0x3d, -0x5b, 0x7b, 0x8f, 0xad, 0x83, 0x7c, 0x66, 0xde, 0xfc, 0x3e, 0x49, 0xbc, 0xd7, 0x0e, 0x1c, 0x76, -0x01, 0xa7, 0x52, 0x9a, 0xc9, 0x2a, 0x4e, 0xbb, 0xb1, 0x8d, 0x9e, 0x76, 0xc3, 0xf2, 0x07, 0xb0, -0x39, 0x5f, 0x87, 0x97, 0x4f, 0x3d, 0x56, 0xaa, 0x3d, 0xb2, 0x3b, 0xc3, 0x37, 0x97, 0x8a, 0x5d, -0x73, 0x58, 0xd6, 0xea, 0x30, 0xed, 0xea, 0x6d, 0x6e, 0xae, 0xb8, 0x21, 0x90, 0xc3, 0xf9, 0xf0, -0x99, 0x21, 0x9b, 0xe7, 0xf1, 0xaa, 0xae, 0xdf, 0x04, 0x79, 0x30, 0xcc, 0x4f, 0xbc, 0xfa, 0xce, -0x6b, 0xbd, 0x88, 0x6f, 0x10, 0xbb, 0x00, 0xad, 0x18, 0x65, 0x22, 0xf5, 0xfb, 0xae, 0x54, 0xf8, -0xf9, 0x9b, 0xce, 0xb7, 0xd1, 0x3e, 0xb3, 0x27, 0x84, 0x12, 0x01, 0x6a, 0xac, 0x1c, 0x12, 0x29, -0x63, 0xc1, 0xcd, 0xe2, 0x4b, 0xc4, 0x36, 0x8b, 0x31, 0xc0, 0x8a, 0xd4, 0x36, 0xf6, 0x7d, 0xc6, -0xa7, 0xc5, 0xc5, 0x1e, 0xfc, 0xcd, 0x47, 0x54, 0xae, 0x98, 0x07, 0x1f, 0x8a, 0xae, 0x6f, 0xb6, -0x78, 0xe9, 0xc4, 0x03, 0xc7, 0x1e, 0x52, 0x73, 0x1a, 0x7b, 0x1f, 0x7b, 0x9e, 0x4a, 0xf9, 0xed, -0xf1, 0x75, 0xc7, 0x1e, 0x3a, 0xd6, 0xb7, 0x75, 0x5d, 0xb4, 0xa7, 0xd9, 0x2a, 0x56, 0x0d, 0xcd, -0xfd, 0x0f, 0xb6, 0x92, 0xb6, 0xc0, 0x25, 0xbb, 0x33, 0x31, 0x6a, 0x97, 0x86, 0xbb, 0x19, 0x43, -0xe3, 0x6a, 0xe5, 0x67, 0xfe, 0x7b, 0xf2, 0x9c, 0x2b, 0xd2, 0xb8, 0xf6, 0x38, 0x72, 0xc1, 0x97, -0xab, 0x51, 0x2f, 0x50, 0x1b, 0xf5, 0x95, 0x5d, 0xbf, 0x66, 0x55, 0x46, 0xcd, 0xaa, 0x8c, 0x9a, -0x05, 0xf5, 0x9a, 0x31, 0xd7, 0xd7, 0x6b, 0xf5, 0x16, 0xd7, 0x2a, 0xd3, 0xa8, 0x55, 0x95, 0x51, -0xab, 0x2a, 0xa3, 0x56, 0x0b, 0xf5, 0x5a, 0x71, 0x6a, 0x51, 0x9b, 0x4e, 0x40, 0xfc, 0xc0, 0xd6, -0x5e, 0xae, 0xa1, 0x6a, 0x89, 0xae, 0x6d, 0xb3, 0xf1, 0xdb, 0x18, 0xd8, 0x97, 0x1b, 0xbd, 0x5e, -0xec, 0x36, 0x98, 0x5d, 0xee, 0x66, 0x39, 0xbf, 0x4d, 0x97, 0xf1, 0xc1, 0xb5, 0x22, 0xa0, 0x42, -0xf4, 0x00, 0xd0, 0x85, 0x8f, 0x02, 0x5d, 0x54, 0xee, 0xa3, 0xb2, 0xd5, 0x04, 0x8e, 0x50, 0x53, -0x7d, 0x79, 0xe4, 0x2d, 0x35, 0xee, 0x24, 0xee, 0x43, 0x7b, 0x92, 0x2d, 0xed, 0x7c, 0x8a, 0x14, -0xf7, 0xaf, 0xc4, 0x79, 0xee, 0xab, 0x6c, 0xe9, 0xf6, 0x7e, 0xdf, 0xe6, 0x3e, 0x25, 0xfc, 0xfa, -0x80, 0x9a, 0xa5, 0xf7, 0xb4, 0x3d, 0x3d, 0x2d, 0x51, 0x91, 0xe2, 0x02, 0x4a, 0x37, 0xc5, 0xf8, -0xc4, 0x67, 0x79, 0x0d, 0x55, 0x98, 0x94, 0x39, 0xfd, 0x7d, 0xcd, 0xf9, 0x90, 0x56, 0xcc, 0x8d, -0x95, 0xe9, 0x75, 0xfb, 0x4c, 0x71, 0xca, 0x9c, 0xf0, 0x73, 0xdd, 0xd4, 0xb3, 0xa7, 0xa7, 0xcd, -0xe6, 0x90, 0x86, 0x7a, 0x14, 0x09, 0x79, 0x76, 0x8b, 0x3c, 0x37, 0xd7, 0xbd, 0x53, 0x3e, 0x32, -0x3a, 0x53, 0x92, 0x82, 0x58, 0xf0, 0xd2, 0x1a, 0x67, 0x10, 0xd0, 0x46, 0xb7, 0x05, 0x63, 0x55, -0xa0, 0x3b, 0x1b, 0x7b, 0xfb, 0xfc, 0xd5, 0x20, 0xea, 0x91, 0xc1, 0x9e, 0x45, 0x99, 0xeb, 0x5e, -0x7d, 0xea, 0x82, 0x47, 0xb7, 0xfa, 0x7b, 0xec, 0x2a, 0xca, 0x6d, 0x48, 0x5b, 0x62, 0x5e, 0x45, -0xbd, 0xba, 0x8d, 0x5e, 0x23, 0xb8, 0x9c, 0xaf, 0x8a, 0x82, 0x5e, 0xde, 0x81, 0x6b, 0x05, 0x72, -0xa4, 0x0e, 0x6a, 0xd7, 0xd8, 0x42, 0xaf, 0xbc, 0x88, 0x24, 0xde, 0x55, 0xb2, 0x3f, 0xc2, 0xde, -0x79, 0x16, 0x9b, 0x4b, 0x4d, 0x25, 0x13, 0x55, 0x73, 0x89, 0xa9, 0x74, 0x62, 0xb9, 0x65, 0xb5, -0xb6, 0x2f, 0x99, 0x68, 0x55, 0xe6, 0xad, 0x26, 0xd4, 0xdd, 0x16, 0xbb, 0xef, 0xed, 0xfb, 0xf6, -0x77, 0xac, 0xa2, 0xc5, 0x65, 0x45, 0x14, 0xbb, 0x8f, 0xcf, 0x4d, 0xf2, 0xd5, 0xb0, 0xd1, 0xce, -0xfb, 0x0f, 0x3d, 0xfe, 0x3c, 0xf9, 0x4f, 0x3c, 0x28, 0xde, 0x2c, 0x3c, 0x7e, 0xaa, 0xb6, 0x99, -0x0d, 0x34, 0x75, 0x26, 0x38, 0x27, 0x29, 0x8d, 0xf7, 0x55, 0x9e, 0xd5, 0x4e, 0xed, 0xbb, 0xaf, -0xe5, 0xbc, 0x52, 0xa3, 0xe6, 0xc7, 0xd6, 0x31, 0x76, 0xfb, 0xd7, 0x35, 0x3f, 0xe7, 0xa1, 0xd8, -0x3a, 0x6f, 0xe6, 0x89, 0x75, 0xef, 0x3f, 0xf8, 0xd8, 0xfa, 0xca, 0xdf, 0x2d, 0x20, 0x7f, 0x2f, -0xe4, 0x03, 0x49, 0x35, 0x97, 0xf5, 0xce, 0xc2, 0x3d, 0x96, 0x6c, 0xea, 0x6e, 0xda, 0xb0, 0xe0, -0xa1, 0x5d, 0xcf, 0x53, 0x71, 0x0b, 0xef, 0xa8, 0x98, 0xd7, 0x45, 0x91, 0x01, 0xc0, 0xfb, 0x0a, -0x73, 0x6d, 0x92, 0xbc, 0x55, 0xbf, 0x79, 0x69, 0xde, 0xc7, 0x67, 0x89, 0x2d, 0xad, 0x21, 0xc9, -0x1f, 0x60, 0x0f, 0xa9, 0xe0, 0x2e, 0x79, 0x68, 0xef, 0x29, 0xdb, 0xd7, 0x45, 0x7b, 0xff, 0xf2, -0x50, 0xa4, 0x97, 0xc2, 0x64, 0x82, 0xd6, 0x92, 0x5b, 0x96, 0x87, 0x98, 0x29, 0x8f, 0xf1, 0xd9, -0xe0, 0xeb, 0x4a, 0x33, 0x21, 0x9b, 0x59, 0x98, 0xe7, 0x97, 0x04, 0x4a, 0x8d, 0x7d, 0x1e, 0x3c, -0x0e, 0x8e, 0x8e, 0x8a, 0xdb, 0xba, 0x91, 0x6e, 0x2d, 0x60, 0xc9, 0xda, 0x13, 0x6e, 0xd6, 0x39, -0xb3, 0x5d, 0xcd, 0xd9, 0x13, 0x6e, 0xcb, 0x46, 0x98, 0xd0, 0x82, 0x98, 0xf7, 0x33, 0xaf, 0x66, -0x9e, 0xcd, 0x27, 0x81, 0x97, 0x9a, 0x8e, 0x57, 0x02, 0x26, 0x4b, 0x99, 0xfc, 0x58, 0x15, 0x72, -0xb7, 0x22, 0x8d, 0x6d, 0x4b, 0xd5, 0x50, 0x25, 0xf8, 0x7b, 0x4e, 0x60, 0x0a, 0x73, 0x79, 0x3e, -0x9d, 0x59, 0xa4, 0xcf, 0x8e, 0xad, 0x17, 0xf5, 0x5f, 0x0f, 0xfe, 0x5d, 0x5a, 0x52, 0x48, 0xd0, -0x23, 0xca, 0x32, 0xf4, 0x93, 0xa7, 0x7c, 0x59, 0xa0, 0xa3, 0x1b, 0xf4, 0xfd, 0xc2, 0xf3, 0x2e, -0x5f, 0xf2, 0x8a, 0x71, 0x33, 0xb7, 0x94, 0x57, 0xd2, 0x6e, 0xf0, 0x65, 0x32, 0x9d, 0x85, 0xfe, -0xd6, 0x83, 0xde, 0x39, 0x7c, 0x5e, 0xa9, 0x16, 0x32, 0x60, 0x2e, 0xf8, 0x7a, 0x7d, 0xda, 0xd2, -0xdf, 0xab, 0x2e, 0xd5, 0xed, 0x95, 0x91, 0x23, 0x89, 0x13, 0xee, 0x32, 0xeb, 0xf7, 0x5d, 0x2a, -0xe2, 0xf9, 0x7c, 0x6e, 0xf1, 0x17, 0xfe, 0xa1, 0xb9, 0xc0, 0xe0, 0x3b, 0x7e, 0xa6, 0x56, 0x68, -0x2a, 0x46, 0x9a, 0x91, 0xbd, 0xbc, 0x6f, 0x3c, 0x56, 0x85, 0x16, 0xce, 0xe0, 0x7d, 0xc2, 0x0c, -0x03, 0xfb, 0x8c, 0x1b, 0x53, 0xfa, 0x04, 0x9d, 0xca, 0x91, 0x9f, 0x08, 0xe5, 0x94, 0x4c, 0x7d, -0x2f, 0xfc, 0x43, 0xeb, 0x46, 0xc7, 0xbc, 0xb1, 0x7e, 0xd9, 0xaf, 0x9e, 0x59, 0x11, 0xe7, 0x9e, -0x58, 0xd8, 0xc3, 0x96, 0xd5, 0x43, 0x26, 0x4d, 0x8b, 0x87, 0x78, 0x46, 0x14, 0x42, 0x50, 0x5e, -0xff, 0x32, 0xed, 0x4a, 0x3c, 0x8b, 0x4f, 0xc3, 0xc2, 0xd3, 0x48, 0xc2, 0x19, 0x5b, 0x4a, 0xb6, -0xc0, 0x0e, 0x71, 0x1a, 0xa9, 0x7c, 0x1b, 0xf0, 0x4b, 0x12, 0xef, 0x78, 0xc9, 0xd9, 0x4f, 0xd2, -0x82, 0x1d, 0x24, 0xc7, 0x76, 0x90, 0x55, 0x65, 0x9f, 0x13, 0x12, 0xc6, 0x25, 0xb1, 0xd7, 0x14, -0xfc, 0x4b, 0xb6, 0xf9, 0x28, 0x73, 0xd0, 0x47, 0xe6, 0x41, 0x13, 0xef, 0xbe, 0x1a, 0xae, 0x1d, -0x34, 0xe5, 0xf8, 0x68, 0x52, 0xa3, 0x69, 0xc0, 0xa4, 0xdb, 0xb0, 0xea, 0x27, 0xb3, 0xb9, 0x59, -0x52, 0xc3, 0xf8, 0x08, 0xbc, 0xf2, 0x09, 0x6c, 0xfb, 0xb4, 0x57, 0xd8, 0xd3, 0x80, 0x33, 0x4b, -0x9c, 0x6d, 0xd9, 0x31, 0xe6, 0x8c, 0xc7, 0xbb, 0xdf, 0x04, 0x55, 0xfc, 0xea, 0x25, 0xe7, 0xf2, -0x8c, 0x80, 0x6a, 0xd9, 0xbb, 0x93, 0xf7, 0x3e, 0xa5, 0x7d, 0x07, 0x87, 0xc6, 0x7b, 0x0e, 0xe6, -0x53, 0xd8, 0x7c, 0xd9, 0xed, 0xb6, 0xf1, 0x3d, 0xd3, 0x38, 0x35, 0x49, 0x9c, 0x05, 0x67, 0xec, -0x5d, 0x77, 0x8a, 0x52, 0x25, 0x94, 0xda, 0xc0, 0xa3, 0xcf, 0xb4, 0x90, 0xf0, 0xb4, 0xae, 0x00, -0x27, 0x19, 0xd7, 0x94, 0x7f, 0xf4, 0x78, 0xef, 0xf1, 0x5e, 0xe8, 0xac, 0x87, 0x2a, 0xcf, 0x66, -0x04, 0x9c, 0x9b, 0x95, 0xfb, 0xc7, 0x96, 0x9a, 0x3a, 0x69, 0xae, 0x5c, 0xf2, 0xf8, 0xf4, 0x93, -0xe6, 0x44, 0xce, 0x68, 0x93, 0x2b, 0x9f, 0x88, 0xf3, 0xab, 0x33, 0xd8, 0xbf, 0x24, 0xf2, 0x0b, -0x8f, 0x99, 0xb5, 0x07, 0x07, 0x61, 0xde, 0x56, 0x79, 0xa1, 0x94, 0x1c, 0x4b, 0x33, 0x02, 0xd0, -0x7c, 0xfd, 0xfb, 0x9e, 0x22, 0x39, 0xee, 0x32, 0xce, 0x7a, 0x95, 0x95, 0xa4, 0x6a, 0x4d, 0xf9, -0x86, 0xbe, 0x25, 0x98, 0x11, 0x18, 0x7b, 0x06, 0x10, 0x64, 0xce, 0x5a, 0xc3, 0xc3, 0xc3, 0x91, -0x31, 0xb9, 0x02, 0x92, 0x60, 0xb9, 0xe0, 0x65, 0x9d, 0xe0, 0x65, 0x01, 0xd4, 0x75, 0x37, 0x34, -0xf7, 0xbd, 0xa0, 0x3a, 0x0f, 0xdb, 0xa6, 0xa3, 0x77, 0xea, 0x67, 0x46, 0x66, 0xa6, 0xbd, 0xf7, -0x8e, 0xb3, 0x59, 0x76, 0xf3, 0xec, 0xc4, 0x36, 0x9b, 0x87, 0x4a, 0x22, 0xc9, 0xca, 0x8f, 0xa8, -0x2f, 0x32, 0xe0, 0xc8, 0x14, 0x34, 0x7c, 0xc9, 0x99, 0x21, 0x76, 0x28, 0xac, 0xe6, 0xb8, 0x92, -0x20, 0xe2, 0x36, 0x87, 0xa4, 0x76, 0x53, 0xc8, 0xa4, 0x06, 0xa6, 0xd2, 0x6b, 0x1e, 0xde, 0xf3, -0xb1, 0x86, 0xa6, 0x4a, 0x8e, 0x39, 0x90, 0x81, 0x6c, 0xec, 0x77, 0x56, 0x79, 0x61, 0x07, 0xc5, -0x24, 0x35, 0x5b, 0xc4, 0xce, 0x9a, 0xff, 0x0f, 0x91, 0xfb, 0x02, 0x73, 0x94, 0x0d, 0x31, 0xd3, -0x20, 0x2d, 0xe8, 0xab, 0x98, 0xf4, 0xa2, 0x29, 0xce, 0xfe, 0xd2, 0x9c, 0x62, 0x77, 0x43, 0x19, -0x72, 0xeb, 0x07, 0x17, 0x3a, 0xce, 0xeb, 0xa8, 0x8d, 0x6b, 0x9d, 0x99, 0x8d, 0x3d, 0x08, 0x71, -0xb2, 0x7f, 0x60, 0x67, 0xf8, 0x91, 0x57, 0x85, 0x37, 0xba, 0x8b, 0xec, 0x81, 0xae, 0x8e, 0xe9, -0x76, 0x63, 0x6a, 0x4f, 0xa8, 0x83, 0x25, 0x29, 0xc8, 0x95, 0xaf, 0x1f, 0x76, 0x8a, 0xf5, 0x74, -0x7f, 0xa0, 0x0f, 0xf2, 0xcb, 0xd9, 0xba, 0x8e, 0xc9, 0x35, 0xa6, 0xc3, 0xdd, 0x07, 0x93, 0xef, -0xf5, 0x75, 0x52, 0x8d, 0x34, 0xd0, 0x13, 0x9d, 0x4e, 0xa6, 0x84, 0xe2, 0x80, 0x16, 0x54, 0x32, -0xb3, 0x8f, 0x3a, 0x29, 0x17, 0xbf, 0xab, 0x27, 0x1f, 0x5a, 0xd7, 0xd7, 0x53, 0x9c, 0x71, 0x36, -0x7a, 0x68, 0x5d, 0x4f, 0xcf, 0x2b, 0xeb, 0x92, 0x6b, 0xb9, 0xcd, 0xf4, 0x1d, 0xa0, 0xdb, 0xc2, -0xa0, 0x0e, 0x85, 0xf7, 0xf4, 0x0c, 0x47, 0xb7, 0x56, 0x82, 0x92, 0x9d, 0x3a, 0xfd, 0x6e, 0x09, -0xfe, 0xc3, 0x4b, 0x3a, 0x47, 0x7a, 0xf9, 0xa0, 0x2e, 0x95, 0x41, 0x22, 0xee, 0x79, 0xe9, 0x40, -0x6a, 0xff, 0x5b, 0x4a, 0xde, 0xab, 0x50, 0x14, 0x5e, 0xa7, 0x41, 0x1e, 0xac, 0x0f, 0x80, 0xbe, -0xdd, 0xe2, 0x34, 0x6e, 0xb1, 0xbf, 0x13, 0xed, 0x10, 0xd8, 0x4e, 0xfa, 0x7e, 0xc4, 0xe1, 0xda, -0x95, 0x93, 0x6b, 0x32, 0x0e, 0x42, 0x1e, 0xeb, 0x2a, 0x38, 0xff, 0x74, 0xcf, 0x5a, 0x97, 0xc4, -0xe5, 0x9f, 0x9d, 0xcb, 0x65, 0x4c, 0xa6, 0x9e, 0xb5, 0xbb, 0xd6, 0xc5, 0x83, 0x62, 0xef, 0x67, -0x05, 0xcb, 0x8b, 0x68, 0x39, 0xff, 0x76, 0xe2, 0xfd, 0xad, 0x67, 0x23, 0x5c, 0xc3, 0x81, 0x6e, -0x86, 0x90, 0xe1, 0x98, 0x4c, 0xc9, 0x1e, 0x87, 0xac, 0xe7, 0xd8, 0x39, 0xf9, 0x60, 0x4f, 0xb2, -0xbb, 0x7f, 0xad, 0x71, 0x06, 0x62, 0xda, 0x2b, 0x87, 0xdc, 0x25, 0x68, 0x9f, 0x21, 0xcb, 0x15, -0xf2, 0xb6, 0x80, 0x86, 0x71, 0xc6, 0xd0, 0xe8, 0x3e, 0x7c, 0xcf, 0x76, 0x77, 0x4e, 0xae, 0x91, -0x0e, 0x01, 0x6f, 0x2b, 0xa9, 0x26, 0x63, 0x60, 0xad, 0x28, 0xdb, 0x35, 0x5a, 0xb6, 0x3b, 0x83, -0x39, 0xd8, 0x64, 0x1a, 0xee, 0xed, 0xe9, 0x5d, 0x35, 0xb9, 0x46, 0x3e, 0xbc, 0xf6, 0x6c, 0x6f, -0x2f, 0x9e, 0x5e, 0xe9, 0x05, 0xf6, 0x4c, 0x27, 0x1f, 0x18, 0xc2, 0x6f, 0xa4, 0x4a, 0xe8, 0x82, -0xf6, 0xa1, 0xb5, 0x4a, 0xb7, 0x43, 0x3a, 0xb9, 0xe1, 0x18, 0x7e, 0xd9, 0x9b, 0x3c, 0x63, 0xe4, -0x58, 0xb7, 0xd2, 0xe3, 0xa0, 0x93, 0x1b, 0x06, 0xbb, 0x1d, 0x64, 0x84, 0x29, 0x83, 0xdd, 0x4a, -0x12, 0xd0, 0x15, 0xe8, 0x7b, 0xdc, 0x99, 0x1b, 0x79, 0xdb, 0xc0, 0x99, 0x9e, 0x1b, 0x59, 0xec, -0x4d, 0x79, 0xb0, 0x06, 0xc4, 0x4e, 0xee, 0x53, 0xd0, 0xde, 0xc4, 0x1c, 0x59, 0x80, 0x77, 0x6d, -0x27, 0xb2, 0xa0, 0xbb, 0x42, 0x5b, 0xd4, 0x8e, 0x62, 0x44, 0x2d, 0x24, 0x6b, 0xfa, 0x7d, 0x7f, -0xc3, 0x26, 0xc7, 0xdc, 0xf6, 0xfc, 0x71, 0x67, 0x65, 0x59, 0xd2, 0xe7, 0xde, 0x1f, 0x37, 0x76, -0xce, 0x2c, 0x60, 0x1d, 0x0a, 0xe3, 0xfc, 0x62, 0x8c, 0xf0, 0x8b, 0x9c, 0xbc, 0x72, 0xe7, 0x21, -0xe7, 0xae, 0xa7, 0xa1, 0x07, 0x98, 0x85, 0x9f, 0xc9, 0x0a, 0xf4, 0x96, 0x82, 0x7d, 0x2b, 0x28, -0x37, 0x9e, 0x0b, 0xd9, 0x26, 0x1f, 0x3a, 0x77, 0x5e, 0x3c, 0x2b, 0xe0, 0xa1, 0xa9, 0xbb, 0x56, -0x90, 0x3d, 0xb1, 0xda, 0x80, 0xc0, 0x2a, 0x4a, 0x8c, 0xa6, 0x21, 0xd0, 0xdf, 0xcb, 0x1a, 0x36, -0x41, 0xfa, 0x9d, 0x1a, 0x39, 0x18, 0x60, 0x4f, 0x40, 0x07, 0x52, 0x67, 0x28, 0xaf, 0x34, 0x29, -0x2d, 0x24, 0xb3, 0x25, 0xdb, 0xc8, 0x72, 0xb6, 0x39, 0xb8, 0x5e, 0x9a, 0x50, 0xc6, 0xb8, 0x34, -0xd6, 0x3b, 0xd8, 0x66, 0x2d, 0x17, 0xbf, 0xf9, 0x94, 0x77, 0x07, 0x9f, 0xb1, 0x6d, 0xbf, 0x95, -0x6d, 0x88, 0x6c, 0xb6, 0x42, 0xf6, 0x58, 0x14, 0x28, 0xa4, 0xdc, 0xf7, 0x6a, 0xd1, 0x53, 0xbc, -0x91, 0x01, 0x41, 0x83, 0x17, 0xf4, 0x9d, 0x92, 0xfc, 0xfd, 0x95, 0xd5, 0x5c, 0xa3, 0xa9, 0x1e, -0x0c, 0xb9, 0x13, 0xd8, 0x76, 0x1e, 0x3a, 0x55, 0xd1, 0x61, 0xa4, 0x44, 0xea, 0x62, 0xf4, 0xbb, -0xa6, 0x76, 0x53, 0x31, 0x45, 0x0e, 0x7a, 0xa4, 0x23, 0x6b, 0x13, 0x66, 0xa5, 0x7b, 0xa8, 0x57, -0xcd, 0xcd, 0xf7, 0xd0, 0x9d, 0x91, 0x75, 0x65, 0xd5, 0x9e, 0x1b, 0x0e, 0xad, 0x9b, 0x7f, 0x30, -0xd2, 0x53, 0x16, 0x52, 0x1e, 0x1c, 0x0c, 0x2e, 0xe8, 0xfb, 0xf1, 0xe1, 0xf8, 0xb1, 0xc8, 0x7d, -0x91, 0x7f, 0x28, 0x2d, 0xe4, 0x3d, 0x84, 0x5c, 0x9a, 0x38, 0x91, 0x79, 0x05, 0xef, 0xa0, 0x5f, -0x49, 0xef, 0x6d, 0x2c, 0xe3, 0xbd, 0x99, 0xe2, 0x2c, 0xe6, 0x47, 0x8f, 0x88, 0x7d, 0x1d, 0xa7, -0x52, 0x67, 0x7d, 0x92, 0x7b, 0x7c, 0x0b, 0xb6, 0xe7, 0x5f, 0xe7, 0x7c, 0xaa, 0xa9, 0xb7, 0x46, -0xc1, 0x73, 0x83, 0xc2, 0x7a, 0x9a, 0xe5, 0xd1, 0x02, 0x48, 0x46, 0xa2, 0x25, 0xaf, 0xc4, 0x78, -0xfd, 0x59, 0xb7, 0x93, 0xd0, 0xd7, 0x00, 0x2a, 0x98, 0x73, 0x3b, 0x41, 0xbd, 0x6e, 0xd0, 0x08, -0x7b, 0x0f, 0x28, 0xf6, 0xdb, 0x74, 0xda, 0x9d, 0x48, 0x89, 0x2c, 0x29, 0x78, 0x45, 0xf3, 0x27, -0x79, 0x37, 0xae, 0xe2, 0x41, 0x6b, 0xe4, 0x0b, 0x5f, 0x3b, 0xe4, 0xab, 0x05, 0x14, 0xfb, 0xb4, -0x83, 0xa0, 0x02, 0xab, 0x38, 0x47, 0x0d, 0x74, 0x08, 0x6c, 0xe7, 0xea, 0x3e, 0x94, 0xe2, 0xf7, -0xa0, 0x15, 0x72, 0xc4, 0xb9, 0xd2, 0x36, 0xe0, 0x48, 0x9c, 0x39, 0xad, 0x9f, 0x2d, 0xcd, 0x27, -0xc5, 0x24, 0xc4, 0x0a, 0x9b, 0xf0, 0x32, 0x8c, 0x1a, 0xbf, 0xb7, 0x91, 0xeb, 0xc8, 0xa7, 0x4d, -0x4b, 0xcb, 0xaf, 0x40, 0x0b, 0x54, 0xf3, 0xdf, 0xdb, 0xc8, 0xa7, 0xe8, 0x2a, 0xe1, 0xca, 0x0b, -0x6e, 0xcd, 0x69, 0x51, 0xaa, 0x2a, 0x2f, 0x2c, 0xd0, 0x5c, 0xec, 0xeb, 0xe0, 0x4d, 0x86, 0x8d, -0x1a, 0x2c, 0xd0, 0x8f, 0xc2, 0x5d, 0x29, 0xdf, 0x29, 0xa5, 0x01, 0x70, 0x02, 0xc1, 0x15, 0x40, -0x7f, 0xee, 0x68, 0x6f, 0x1c, 0x35, 0x8e, 0x67, 0xb1, 0x77, 0x51, 0xdc, 0x89, 0x0e, 0xb5, 0xd7, -0x5c, 0x7b, 0x96, 0x9a, 0xb0, 0x22, 0x78, 0xa6, 0xf2, 0x1c, 0xa5, 0xad, 0xb2, 0x3e, 0x1b, 0x6a, -0x67, 0x6c, 0x95, 0xa0, 0x3e, 0x65, 0xe8, 0x2d, 0x4e, 0x63, 0xb7, 0xef, 0x5e, 0x67, 0x32, 0xd1, -0x01, 0x0c, 0x7a, 0x85, 0xcf, 0x6c, 0xed, 0xce, 0x43, 0x0b, 0x36, 0xc5, 0x92, 0xa3, 0x6b, 0xe8, -0x9f, 0x35, 0xe1, 0x9b, 0x8a, 0x44, 0x8d, 0xc0, 0x2c, 0xc7, 0xf7, 0x37, 0x6c, 0x52, 0xe5, 0x69, -0x61, 0x0a, 0x01, 0x57, 0x25, 0x3c, 0x0b, 0xc3, 0x73, 0x30, 0xe3, 0x5b, 0x07, 0x5f, 0x04, 0xe2, -0x7c, 0x96, 0x5a, 0xc5, 0xd5, 0xfb, 0x5a, 0x95, 0x98, 0x51, 0xea, 0x2e, 0x47, 0xb4, 0x7d, 0xd4, -0xbb, 0x5b, 0x91, 0x58, 0xf5, 0x17, 0xa7, 0x13, 0x88, 0xd3, 0x32, 0x8d, 0xf5, 0xcc, 0x39, 0x80, -0x7e, 0xbc, 0xbf, 0x60, 0x2a, 0x83, 0x6c, 0x4b, 0xea, 0x54, 0xe4, 0x1d, 0x28, 0x9e, 0x69, 0x97, -0x17, 0x76, 0x47, 0x43, 0x89, 0xec, 0xb1, 0x5e, 0x83, 0xd5, 0x35, 0xb1, 0xe4, 0x0b, 0x03, 0xf1, -0xb7, 0x57, 0x82, 0x5b, 0xab, 0x7c, 0xfa, 0x5e, 0x40, 0x69, 0x2f, 0xa5, 0x85, 0x6b, 0x75, 0xcf, -0xc9, 0xde, 0x66, 0xe1, 0x7b, 0xe0, 0x50, 0xac, 0x67, 0x37, 0xb0, 0xb0, 0x64, 0x78, 0xb4, 0x0e, -0x9c, 0xe3, 0xd8, 0xf3, 0x1a, 0x01, 0x69, 0x6a, 0x87, 0xed, 0xf5, 0xea, 0x31, 0xa6, 0xc4, 0xf1, -0x35, 0xe1, 0xd3, 0xb7, 0x47, 0x57, 0xdd, 0xe7, 0xbe, 0x8f, 0x1a, 0x8c, 0x5d, 0x6d, 0x2f, 0xa4, -0x92, 0x47, 0x5e, 0xed, 0x20, 0xd5, 0xa1, 0xac, 0xa0, 0xc0, 0xeb, 0xaf, 0x1a, 0xfb, 0x96, 0xed, -0x0b, 0x37, 0x40, 0x23, 0x91, 0xe3, 0x59, 0x42, 0x92, 0xe4, 0x59, 0xcd, 0xbd, 0xb1, 0xee, 0xfe, -0xee, 0xf8, 0x5b, 0xfd, 0x4f, 0x53, 0x59, 0x7c, 0x11, 0x8f, 0xf4, 0x3c, 0xd6, 0xf7, 0xd9, 0x15, -0xcb, 0x78, 0x4c, 0x1b, 0x9e, 0x2c, 0xfb, 0x38, 0x5f, 0x3d, 0x95, 0x38, 0x3d, 0xb1, 0x90, 0x02, -0x62, 0x4f, 0x06, 0x9f, 0x69, 0x50, 0x98, 0xae, 0xe1, 0x8a, 0xf1, 0x35, 0xbc, 0xb5, 0x8e, 0x02, -0x0b, 0x9e, 0xa6, 0x12, 0xe3, 0x0c, 0x46, 0xe4, 0xf5, 0xeb, 0x81, 0xc1, 0x8d, 0xfc, 0xfb, 0xeb, -0xf7, 0x29, 0x80, 0xd4, 0x15, 0xce, 0x46, 0xe6, 0xbd, 0xde, 0xa5, 0xb2, 0x5e, 0x7f, 0x19, 0x52, -0x86, 0x19, 0x70, 0x87, 0x1e, 0x79, 0x55, 0xec, 0xf0, 0x4d, 0x26, 0xb2, 0x63, 0x80, 0xef, 0x4e, -0x01, 0xb3, 0xbb, 0x49, 0x78, 0x4c, 0x1d, 0xb3, 0xb6, 0x2f, 0xbc, 0xa7, 0xd2, 0xf8, 0x7e, 0x7c, -0x75, 0x8b, 0x3e, 0x7c, 0x18, 0xad, 0x99, 0xc7, 0xb8, 0x7f, 0xe3, 0xb0, 0x63, 0x4a, 0x22, 0x67, -0x77, 0x77, 0x5c, 0x0e, 0x61, 0x44, 0x8e, 0x25, 0x17, 0xf6, 0xf5, 0xef, 0xa4, 0x92, 0x25, 0xa7, -0xc7, 0x62, 0x5a, 0xef, 0xcf, 0x6c, 0x53, 0xd6, 0x5e, 0x3c, 0xd6, 0xca, 0xc3, 0x49, 0x09, 0x97, -0xf0, 0xae, 0xbf, 0xcb, 0x11, 0x1c, 0x3d, 0xa9, 0xef, 0xb3, 0xcd, 0x8e, 0x90, 0x3e, 0x22, 0x5c, -0x51, 0x66, 0x84, 0xe8, 0x31, 0x5d, 0x82, 0xd5, 0x4f, 0xca, 0x06, 0x3f, 0x17, 0x67, 0x60, 0xa0, -0x8d, 0x9c, 0x2c, 0x07, 0x70, 0x1d, 0x15, 0xb7, 0xf4, 0x24, 0xf4, 0x64, 0xab, 0x8f, 0xd7, 0x93, -0x6d, 0xe2, 0x34, 0x94, 0x5c, 0x3c, 0xbb, 0xc8, 0x1e, 0x7a, 0x9e, 0x0a, 0x94, 0xa5, 0x52, 0xd7, -0x23, 0xaf, 0x56, 0xb3, 0xec, 0x8b, 0xba, 0x83, 0xc3, 0x4e, 0x65, 0xff, 0x57, 0x2c, 0x33, 0x8b, -0xd6, 0x66, 0x9a, 0xb5, 0x47, 0x77, 0x4a, 0x4f, 0xc6, 0x73, 0x18, 0x12, 0x57, 0xa5, 0x77, 0xb9, -0xa0, 0xb4, 0x13, 0xd3, 0x82, 0xd2, 0x93, 0x1c, 0x9e, 0xb8, 0x27, 0xba, 0x53, 0xbe, 0x3b, 0xee, -0xd2, 0x63, 0xdb, 0xc9, 0x88, 0x7f, 0x73, 0x5a, 0x10, 0xa1, 0xb6, 0x71, 0xdf, 0x1c, 0x51, 0x03, -0x90, 0x24, 0x73, 0xa5, 0x2e, 0xd7, 0x72, 0x89, 0x4f, 0xe8, 0x6c, 0x52, 0xed, 0x62, 0x4f, 0xc5, -0x94, 0x44, 0x76, 0xf4, 0x69, 0x9a, 0x1a, 0xe7, 0x1d, 0x37, 0x93, 0xea, 0xb7, 0x42, 0xd6, 0xd5, -0xbd, 0x77, 0x9f, 0x6a, 0x27, 0x7d, 0xa4, 0x5e, 0x48, 0x57, 0x8f, 0x85, 0xda, 0x09, 0xfd, 0xf4, -0x81, 0x31, 0x21, 0x87, 0xf4, 0x90, 0xdf, 0x77, 0x6e, 0xa1, 0xf0, 0x6a, 0xc6, 0xf6, 0x76, 0x3e, -0xca, 0x43, 0x0f, 0xa9, 0x41, 0x0f, 0x0b, 0xfe, 0xdd, 0xe0, 0x37, 0xc0, 0xd9, 0xfd, 0x21, 0xa7, -0x05, 0x52, 0x51, 0x65, 0xc2, 0x11, 0x4d, 0xc6, 0xa7, 0xda, 0xca, 0x29, 0x7b, 0xbc, 0x0c, 0x08, -0x6a, 0x64, 0xcf, 0x06, 0x35, 0x4a, 0x50, 0xb9, 0x3f, 0xed, 0xb1, 0xf1, 0xac, 0xc0, 0x74, 0x0b, -0x59, 0x78, 0xa7, 0xa9, 0xeb, 0xbf, 0x8c, 0xdd, 0x69, 0x2a, 0x56, 0xd8, 0x7a, 0x2b, 0xdf, 0x97, -0x47, 0xbd, 0x80, 0x0f, 0xf9, 0x0a, 0xe5, 0x0a, 0x61, 0xb9, 0xba, 0xac, 0xfa, 0xb2, 0x56, 0x5c, -0xbf, 0xe5, 0xd6, 0xa0, 0xd4, 0x9b, 0x0e, 0x5b, 0x23, 0xde, 0xfb, 0xd2, 0xef, 0x9b, 0xc4, 0xfb, -0xc6, 0xf4, 0xfb, 0xdf, 0x88, 0xf7, 0xcd, 0xe2, 0x5c, 0xaa, 0xa7, 0x8d, 0xb0, 0x5d, 0x22, 0x6c, -0x6b, 0x3a, 0xcd, 0xa0, 0x78, 0xdf, 0x9e, 0x7e, 0x7f, 0x57, 0xbc, 0x3f, 0x2e, 0xbc, 0x2e, 0x3d, -0x2d, 0xf5, 0x0a, 0xdf, 0xa8, 0x4f, 0x4b, 0x7d, 0x3c, 0x0b, 0x8f, 0xfb, 0x46, 0xdc, 0x4f, 0xe1, -0xce, 0x7e, 0x8a, 0xdf, 0xc2, 0x7d, 0x2b, 0xaf, 0xef, 0xe0, 0xbe, 0x9d, 0xd7, 0xee, 0x44, 0xef, -0x3b, 0x24, 0x5a, 0x6f, 0x8d, 0xe1, 0xd7, 0xa4, 0x0b, 0x79, 0x71, 0xe8, 0x73, 0x95, 0xef, 0x4b, -0x15, 0x63, 0x78, 0xaf, 0x86, 0x70, 0xf7, 0xad, 0x5d, 0x64, 0x23, 0xa8, 0xb8, 0x0f, 0x1f, 0x16, -0xb8, 0x18, 0xc4, 0xb8, 0xa7, 0x7f, 0x05, 0x8a, 0x92, 0xfc, 0x89, 0x55, 0x8e, 0x42, 0xa9, 0xb7, -0xa1, 0x3b, 0xe5, 0x81, 0x51, 0x29, 0x94, 0xb6, 0x0a, 0x6b, 0x51, 0xe1, 0x35, 0x36, 0x6d, 0x11, -0x36, 0x89, 0x7d, 0x11, 0xe9, 0x35, 0x0b, 0xfd, 0x6d, 0x35, 0xf2, 0xf9, 0xe8, 0x82, 0xa8, 0x41, -0xbb, 0x38, 0x13, 0xce, 0xe5, 0x9b, 0xa4, 0xdb, 0x6b, 0xb9, 0xd6, 0x84, 0xfe, 0x56, 0x84, 0x37, -0x73, 0x78, 0x5c, 0x81, 0x6e, 0x68, 0x78, 0xee, 0xbf, 0xf0, 0x76, 0xc3, 0x26, 0xae, 0x3d, 0xde, -0xfd, 0xf5, 0xfb, 0x3e, 0x3b, 0xc5, 0x96, 0xa6, 0x69, 0xff, 0xa8, 0x29, 0x7f, 0xb1, 0xbb, 0x79, -0x57, 0x25, 0xb7, 0x9a, 0xb3, 0x85, 0xac, 0x28, 0xf7, 0xbc, 0xe1, 0xbd, 0x56, 0xf8, 0x07, 0x56, -0x3c, 0x72, 0x6c, 0x01, 0x43, 0x26, 0x4e, 0xb2, 0x34, 0xce, 0x27, 0x3e, 0x96, 0x3a, 0x9f, 0xd8, -0xcd, 0xe7, 0x4e, 0xef, 0x6d, 0xd8, 0x94, 0x20, 0x69, 0xb1, 0x12, 0x04, 0x1f, 0x96, 0x62, 0x3d, -0x1d, 0xda, 0xae, 0xed, 0xf1, 0x4b, 0x7c, 0xe2, 0x77, 0x47, 0x05, 0x78, 0xd1, 0xb8, 0xf1, 0xea, -0xb3, 0x26, 0xa4, 0xdf, 0x1d, 0x77, 0x70, 0xae, 0x77, 0x8b, 0x5c, 0x0b, 0xeb, 0xae, 0xcd, 0x55, -0x25, 0xd3, 0x39, 0xa5, 0x45, 0xdb, 0x7d, 0xcb, 0x5c, 0xca, 0xf7, 0x42, 0x45, 0x0a, 0x55, 0x85, -0xaa, 0xbb, 0x8e, 0x9d, 0x78, 0xb0, 0xe8, 0x86, 0xbb, 0xee, 0x9b, 0xd1, 0x44, 0x25, 0x33, 0x10, -0x47, 0x65, 0xbb, 0x7b, 0xef, 0xe5, 0x99, 0xdd, 0x6a, 0x8c, 0x8b, 0x3d, 0x4a, 0x6e, 0xc7, 0x94, -0xa1, 0x9d, 0x72, 0x4c, 0x78, 0x82, 0x0a, 0x6a, 0xc7, 0x2b, 0x3f, 0xd0, 0x4e, 0x17, 0x46, 0xb4, -0x13, 0xe2, 0xac, 0xb7, 0x61, 0xce, 0x1f, 0xfa, 0xb0, 0x91, 0x7b, 0xd9, 0x0c, 0xed, 0x5c, 0xc3, -0xa6, 0x68, 0x55, 0x3c, 0xa2, 0xe4, 0x3a, 0x00, 0xc7, 0x3d, 0xdd, 0x63, 0xbe, 0xba, 0xc8, 0x5f, -0x15, 0xce, 0xb9, 0xfa, 0x1b, 0x9f, 0x47, 0x3f, 0x9f, 0xd0, 0xe7, 0x91, 0x36, 0xb3, 0x15, 0x1c, -0x34, 0xee, 0x1d, 0x82, 0x8a, 0xd0, 0x4a, 0x71, 0x69, 0xa5, 0x29, 0xd6, 0xbb, 0x60, 0x63, 0xc3, -0x43, 0xbb, 0x7b, 0x17, 0x93, 0xa6, 0x8e, 0xa9, 0x5b, 0x8b, 0xb6, 0xf7, 0xda, 0xda, 0x19, 0x79, -0x9d, 0x77, 0x78, 0xa4, 0xed, 0xe2, 0x44, 0xbd, 0x49, 0xb5, 0x97, 0x47, 0xee, 0xae, 0xdf, 0x6a, -0x84, 0x5f, 0x50, 0x10, 0x2e, 0xce, 0x6d, 0x9c, 0x24, 0x6c, 0x1a, 0xdd, 0xc2, 0x66, 0x31, 0xcb, -0xc0, 0x87, 0x55, 0x9d, 0x2a, 0x78, 0xc2, 0x4f, 0xe9, 0xa4, 0xd3, 0xea, 0x40, 0xd8, 0x57, 0xc1, -0xc7, 0x18, 0xff, 0xb4, 0x9f, 0x96, 0x81, 0x73, 0xd8, 0x90, 0xfa, 0x42, 0x7c, 0x0d, 0xf2, 0xe8, -0xed, 0x98, 0x2c, 0xbc, 0x61, 0xed, 0xef, 0x30, 0xe1, 0x77, 0x20, 0xa7, 0x9c, 0x26, 0x89, 0xf7, -0x43, 0x68, 0xc7, 0xc3, 0xb8, 0x8e, 0xe2, 0x1a, 0x44, 0x5e, 0x33, 0xb4, 0xdd, 0x22, 0x37, 0xf6, -0x2f, 0xcf, 0xbe, 0x47, 0x03, 0x80, 0xfc, 0x30, 0xe7, 0xac, 0x40, 0x17, 0xe2, 0xba, 0x08, 0x6f, -0x59, 0xc7, 0xaa, 0x3e, 0xd0, 0xf6, 0xb3, 0x8f, 0x2d, 0xc3, 0xda, 0xf8, 0xd8, 0x58, 0xbf, 0x4b, -0xed, 0x24, 0xa0, 0x0b, 0x82, 0x83, 0xb2, 0x9f, 0x27, 0x1d, 0x86, 0x2c, 0xce, 0x23, 0xfa, 0x14, -0xb9, 0x12, 0x0a, 0xda, 0x28, 0x12, 0xad, 0x4a, 0x84, 0x39, 0x15, 0xb1, 0x65, 0x9b, 0xcd, 0xb0, -0x2c, 0x1e, 0xfe, 0xd7, 0x30, 0xbe, 0xf7, 0x72, 0x4a, 0x0b, 0xf4, 0x2f, 0xe6, 0x7b, 0x8c, 0x05, -0xdf, 0x74, 0xf0, 0xaf, 0x7d, 0x9f, 0x16, 0x43, 0x4a, 0x47, 0xcc, 0xe8, 0x58, 0x0c, 0x88, 0x77, -0x2b, 0x80, 0x57, 0xf8, 0xfd, 0xd9, 0x68, 0x58, 0x0d, 0x96, 0x89, 0x95, 0x1c, 0xd6, 0xf2, 0x56, -0x48, 0x65, 0xfa, 0xd8, 0x0f, 0x6a, 0x2f, 0x81, 0x84, 0x08, 0xa9, 0x4d, 0x3f, 0xb5, 0x5e, 0xf4, -0x00, 0x48, 0xd2, 0xb5, 0x97, 0x2f, 0x0f, 0xd7, 0x6f, 0x35, 0xde, 0x5c, 0xba, 0xc5, 0xa8, 0xd8, -0x65, 0x30, 0x25, 0x91, 0x4a, 0x63, 0x65, 0x6e, 0x6b, 0x3c, 0xe7, 0xd7, 0xef, 0xbb, 0xdc, 0x3f, -0x76, 0xa7, 0x63, 0xc3, 0x26, 0x83, 0xf3, 0xb2, 0x9d, 0xf7, 0x0c, 0xc8, 0x7e, 0xc5, 0x90, 0xc4, -0x6d, 0x62, 0x9e, 0xbe, 0x85, 0x72, 0x3b, 0x0a, 0x86, 0x9e, 0x12, 0x14, 0x78, 0x51, 0xec, 0xcb, -0x44, 0x5f, 0xba, 0x9e, 0xa5, 0x37, 0x63, 0x6b, 0xd4, 0xd6, 0x5b, 0x11, 0xfe, 0x5c, 0xdd, 0x48, -0x2b, 0x76, 0x27, 0x4c, 0x49, 0xac, 0x82, 0x06, 0xe3, 0x10, 0x1a, 0x4c, 0xab, 0xf0, 0x03, 0xe2, -0x99, 0xc6, 0xde, 0xcf, 0x03, 0xf8, 0xb5, 0x51, 0x51, 0xea, 0x2c, 0xcc, 0xf6, 0xac, 0xc1, 0x67, -0xc0, 0x29, 0xf9, 0x64, 0x6c, 0xd7, 0xbc, 0xcb, 0x97, 0xa7, 0xd6, 0x6f, 0x83, 0xc4, 0xef, 0x22, -0x0b, 0xc7, 0x3b, 0x6f, 0xf8, 0x8b, 0x1e, 0x48, 0x70, 0x5e, 0x83, 0x4e, 0xb7, 0xdd, 0x0a, 0xaa, -0xa5, 0xdc, 0xd4, 0x29, 0x84, 0x3e, 0x49, 0xf1, 0x4a, 0xbd, 0x0b, 0x93, 0xfa, 0xb7, 0x46, 0xac, -0xcd, 0xf0, 0xe8, 0x2a, 0xeb, 0x9e, 0x66, 0x31, 0x5a, 0xb0, 0xdf, 0x28, 0x4f, 0xc2, 0xee, 0x58, -0x4a, 0x0e, 0xd0, 0x17, 0xfb, 0x8a, 0x0c, 0x50, 0x2e, 0x7e, 0x8b, 0xc8, 0x16, 0xda, 0x41, 0x9e, -0x14, 0xaf, 0x57, 0x4a, 0xdd, 0x3a, 0xd7, 0xb0, 0x81, 0x7b, 0xe4, 0x86, 0x5a, 0xb4, 0x2b, 0xd3, -0xea, 0x30, 0x8e, 0x2c, 0x87, 0x2c, 0x9c, 0x63, 0x9c, 0x3f, 0x72, 0x0e, 0xfd, 0xfb, 0x43, 0x03, -0x0b, 0xe7, 0xc6, 0x78, 0x55, 0x4b, 0xa2, 0xd7, 0x7e, 0xb2, 0x57, 0x5f, 0xe9, 0x6c, 0x16, 0xf2, -0x33, 0xaf, 0x77, 0x38, 0xd9, 0xe7, 0x94, 0xe2, 0x65, 0xcf, 0x2e, 0xed, 0x90, 0xea, 0xd2, 0x5e, -0xdb, 0x72, 0x0b, 0x57, 0xc8, 0x77, 0xeb, 0x79, 0x81, 0x0e, 0xaf, 0x80, 0x0e, 0x3f, 0x56, 0x15, -0x71, 0x16, 0x0c, 0x51, 0x3f, 0x97, 0xd7, 0x91, 0x3d, 0xf4, 0xb4, 0xc0, 0xfd, 0x39, 0x94, 0xf9, -0xa1, 0xf0, 0x27, 0xf5, 0xf1, 0xd5, 0xa5, 0xba, 0x75, 0x3b, 0x88, 0xd5, 0xe2, 0x5c, 0xef, 0x02, -0x3e, 0x43, 0x66, 0xc1, 0xa6, 0x68, 0x0b, 0xcf, 0x60, 0x09, 0x0b, 0xf9, 0x7d, 0x57, 0x5a, 0xf5, -0x96, 0xc7, 0x37, 0x9f, 0x80, 0x82, 0x7a, 0x7d, 0xd6, 0xea, 0xcb, 0x97, 0x0e, 0xd6, 0x6f, 0x31, -0xc2, 0x2e, 0x33, 0xc7, 0x8e, 0x71, 0x7f, 0xb5, 0xd6, 0x6f, 0x69, 0xff, 0x73, 0xf6, 0xfc, 0xc3, -0xf5, 0x4b, 0xd9, 0x51, 0xcf, 0x42, 0xbb, 0x68, 0x1f, 0xe3, 0x77, 0x44, 0xbb, 0xc8, 0x73, 0x71, -0x4a, 0xb3, 0x51, 0xba, 0x35, 0x7d, 0x92, 0xbb, 0x0c, 0x79, 0xdc, 0xc1, 0xfe, 0x6a, 0x0b, 0x64, -0xdd, 0xaa, 0x58, 0xd8, 0xd2, 0x1b, 0x3e, 0x12, 0x59, 0xe7, 0x76, 0x36, 0xa8, 0x8a, 0x7e, 0x0e, -0x5a, 0x3c, 0x4f, 0x5f, 0x93, 0x64, 0x5f, 0x78, 0x7b, 0x76, 0x90, 0x37, 0xce, 0xeb, 0xa4, 0x6e, -0x35, 0xcb, 0x98, 0xcb, 0x7a, 0x8b, 0xf7, 0xc9, 0x19, 0xd6, 0xf8, 0x6c, 0x2b, 0xa3, 0x40, 0x86, -0x76, 0xf2, 0xea, 0xd9, 0x9c, 0x73, 0x52, 0xc5, 0x18, 0x39, 0xea, 0x6e, 0x0f, 0xe4, 0x8a, 0x79, -0x97, 0xb5, 0xed, 0xaa, 0x3b, 0xba, 0x16, 0x7d, 0x8b, 0xe7, 0x01, 0x33, 0xf4, 0xb5, 0x3c, 0xa6, -0x43, 0xfd, 0x9d, 0x4f, 0xe0, 0x16, 0xe7, 0x7f, 0xd8, 0xe2, 0x59, 0x9e, 0xaf, 0x8b, 0x73, 0x28, -0x86, 0x80, 0xfb, 0x31, 0xd2, 0x98, 0xd8, 0x6f, 0x62, 0xfd, 0xe2, 0xd2, 0x85, 0xe1, 0xf7, 0x9a, -0x7b, 0xa8, 0x93, 0xfd, 0x66, 0x16, 0xfb, 0xc8, 0xe3, 0x5e, 0x61, 0xca, 0x15, 0xbe, 0x9e, 0xba, -0x78, 0x07, 0x54, 0x2c, 0x78, 0x7b, 0x90, 0x6b, 0x07, 0xba, 0x71, 0xab, 0xe6, 0x9f, 0x9e, 0x23, -0x77, 0xdc, 0x1c, 0x5b, 0x4e, 0xd9, 0x2a, 0x9f, 0x48, 0x57, 0x20, 0x3d, 0xa3, 0x69, 0xda, 0x47, -0xc4, 0x96, 0x9b, 0x36, 0xe8, 0xa3, 0xf8, 0x0e, 0x3a, 0x80, 0x99, 0xf7, 0x15, 0xab, 0xa9, 0xfd, -0x29, 0xec, 0x09, 0xea, 0xa0, 0xc8, 0x6f, 0x25, 0xfb, 0xda, 0xd6, 0x67, 0x2c, 0x23, 0xef, 0xce, -0x64, 0x39, 0x54, 0xe8, 0x51, 0xe2, 0x24, 0x2b, 0x2e, 0x2b, 0xbb, 0x91, 0xcb, 0xca, 0x86, 0x2e, -0xed, 0x15, 0xbb, 0x59, 0xbd, 0xd1, 0x60, 0xbc, 0x33, 0x5a, 0xd9, 0xb2, 0x18, 0x3d, 0xce, 0x16, -0x7d, 0x24, 0xb1, 0x50, 0xf8, 0x4b, 0x98, 0x94, 0x28, 0xe6, 0x73, 0xb3, 0x55, 0xb7, 0xf1, 0x36, -0xd5, 0x21, 0xec, 0xfc, 0x35, 0xb9, 0xfd, 0xca, 0x81, 0xa7, 0x89, 0xfd, 0xf2, 0x67, 0xb3, 0x56, -0x8b, 0x92, 0x11, 0x7a, 0x65, 0xbf, 0xab, 0xca, 0x75, 0x63, 0xfc, 0x98, 0x5a, 0x9e, 0x4a, 0xc5, -0xf1, 0xa2, 0xdf, 0xba, 0xc7, 0xa6, 0x52, 0x0b, 0x38, 0x4f, 0x71, 0xfa, 0x82, 0x57, 0xb5, 0x45, -0x83, 0xcd, 0xd6, 0xa2, 0x72, 0x13, 0x74, 0x47, 0xf1, 0xcd, 0x56, 0xf1, 0x0b, 0xe8, 0xeb, 0x36, -0xea, 0x12, 0xb4, 0x8b, 0x29, 0x01, 0x78, 0xfc, 0xd5, 0xfb, 0x94, 0x03, 0x99, 0x4c, 0x49, 0xe4, -0x42, 0x12, 0xcf, 0xf3, 0xb9, 0xd1, 0x7b, 0x59, 0xe3, 0xed, 0x42, 0x5e, 0x4a, 0xc3, 0x26, 0x27, -0x34, 0xf7, 0x84, 0x82, 0x5e, 0xcc, 0x67, 0xd7, 0x07, 0x53, 0xf3, 0x74, 0x83, 0x49, 0x47, 0x68, -0x9c, 0x6e, 0xc3, 0x5a, 0xee, 0xf8, 0xef, 0xcb, 0x59, 0xcb, 0x65, 0x4e, 0x26, 0x24, 0xec, 0x2c, -0xf6, 0xad, 0x8a, 0xd2, 0xac, 0x6c, 0xf5, 0xaa, 0x4c, 0xa7, 0x1c, 0xc7, 0x32, 0xca, 0x73, 0x4c, -0xe7, 0x91, 0x69, 0xd7, 0x0e, 0xe8, 0x29, 0x56, 0xb1, 0xdf, 0x3c, 0x53, 0x49, 0xf2, 0x8c, 0xad, -0xa3, 0xc3, 0x42, 0xce, 0x65, 0x18, 0x05, 0x23, 0xe0, 0xa9, 0xb5, 0xc2, 0xae, 0x34, 0x1f, 0xe1, -0xaf, 0xb3, 0xff, 0x27, 0x83, 0x6b, 0xe4, 0x30, 0x85, 0x28, 0xed, 0x16, 0x12, 0x7b, 0xd2, 0x91, -0xaf, 0xd8, 0xdb, 0x21, 0x3b, 0xb8, 0x07, 0xbe, 0xce, 0xfa, 0x2d, 0xb7, 0x0b, 0xcb, 0xe2, 0xf8, -0x36, 0x4f, 0x99, 0x2e, 0x3d, 0xd1, 0x41, 0x7c, 0x7e, 0x8e, 0x77, 0x99, 0x7e, 0xae, 0x8a, 0x93, -0x52, 0xe1, 0xac, 0x99, 0x8e, 0x8d, 0x71, 0xf3, 0xca, 0xa2, 0x1b, 0xfd, 0xd7, 0x89, 0xde, 0xea, -0x23, 0x27, 0xe8, 0x0e, 0x9c, 0x52, 0xe7, 0xef, 0x08, 0xb5, 0x41, 0x27, 0x3a, 0x87, 0xd2, 0x7b, -0x6e, 0x09, 0xa7, 0xf7, 0x91, 0x16, 0xa4, 0xe7, 0xae, 0x01, 0xc7, 0xaf, 0xce, 0x22, 0x36, 0x27, -0x91, 0x83, 0xfa, 0xa4, 0x71, 0xf1, 0x99, 0x3f, 0xb4, 0x05, 0x98, 0xd4, 0x3d, 0x23, 0x32, 0xdc, -0x6c, 0x99, 0x8c, 0xb4, 0x6f, 0x70, 0x4e, 0xe0, 0x44, 0x4e, 0xc0, 0xd2, 0xbf, 0x53, 0x7a, 0x22, -0xce, 0xfc, 0xc9, 0xa2, 0x3c, 0xac, 0x7a, 0x30, 0x66, 0x43, 0x6a, 0x13, 0x67, 0xd1, 0x70, 0xc8, -0x53, 0x7c, 0x26, 0x8f, 0xe3, 0xae, 0xeb, 0xe1, 0x84, 0x73, 0xfd, 0x63, 0x70, 0x02, 0x4e, 0xba, -0x37, 0xe5, 0xd7, 0xdb, 0xc5, 0xde, 0x2a, 0xc0, 0x65, 0x58, 0xa6, 0x2a, 0x5c, 0x4e, 0x41, 0x6d, -0xbf, 0x83, 0xc4, 0x3e, 0x9f, 0x01, 0xbc, 0x85, 0xb5, 0x43, 0xe2, 0x64, 0xf0, 0xc3, 0x78, 0x96, -0xf5, 0xd1, 0x9b, 0xcf, 0x17, 0x17, 0x14, 0x62, 0x13, 0x23, 0x16, 0x6a, 0x34, 0x72, 0x8f, 0x4e, -0x1d, 0xd1, 0x9d, 0x54, 0x00, 0x79, 0x9b, 0xfd, 0xae, 0xcb, 0xb8, 0x27, 0xa1, 0xe3, 0x16, 0x62, -0x24, 0x5f, 0x5f, 0x58, 0xa3, 0x1d, 0x07, 0x07, 0xdd, 0x0b, 0x0e, 0x7a, 0xc2, 0xe0, 0x8f, 0xc7, -0x53, 0xfc, 0x11, 0xd2, 0xbc, 0xc2, 0x92, 0x84, 0x69, 0x3e, 0xe7, 0x36, 0xef, 0x03, 0xde, 0x3f, -0x86, 0x91, 0xe6, 0x69, 0x63, 0xa4, 0x91, 0x21, 0xa5, 0xe4, 0xe8, 0xa3, 0xa7, 0x38, 0x7b, 0x7b, -0xe2, 0xd0, 0xd3, 0xc6, 0x29, 0xb7, 0x17, 0xc4, 0x48, 0xaa, 0x4b, 0xe1, 0x18, 0xeb, 0xbc, 0xa8, -0xc1, 0xc2, 0xf5, 0x90, 0x9d, 0x3c, 0x54, 0x60, 0x8c, 0xb6, 0x63, 0xf3, 0x29, 0x18, 0x97, 0x7a, -0x64, 0x7c, 0x3e, 0x18, 0xdd, 0x2f, 0x31, 0x27, 0xea, 0xb2, 0xec, 0x4f, 0x2e, 0xce, 0xdf, 0x0f, -0xe9, 0x6a, 0x89, 0x59, 0xf8, 0xff, 0xcf, 0x6e, 0xbf, 0x81, 0x4f, 0xdd, 0xba, 0xa9, 0x0b, 0xd2, -0x83, 0x57, 0xcd, 0xef, 0xb8, 0x69, 0x5a, 0xa5, 0x78, 0x33, 0x91, 0xb7, 0x4b, 0xde, 0x9f, 0x5c, -0x62, 0xe9, 0x34, 0x9d, 0xdc, 0x79, 0x57, 0x48, 0x95, 0x3a, 0x6d, 0xde, 0xe5, 0x54, 0xe0, 0xf6, -0x90, 0xdb, 0x83, 0xbe, 0xe1, 0xf2, 0xf0, 0x0a, 0x9d, 0x0d, 0x7d, 0xbe, 0x56, 0x5f, 0x43, 0x16, -0xdc, 0x0e, 0x72, 0x05, 0x7a, 0x0f, 0x30, 0x52, 0xd3, 0x20, 0x30, 0x22, 0x7c, 0x86, 0x42, 0x4e, -0x04, 0x1f, 0x3f, 0x8d, 0xeb, 0xcc, 0xac, 0x2a, 0xed, 0xec, 0xac, 0x6a, 0x8c, 0x25, 0x61, 0x48, -0xe6, 0xad, 0x06, 0x96, 0xb2, 0x53, 0x7c, 0xbc, 0xfd, 0x26, 0xe8, 0xab, 0xee, 0x84, 0x1d, 0x3a, -0x91, 0x49, 0x9c, 0x68, 0xe9, 0x7c, 0xfd, 0x17, 0x36, 0x5b, 0x42, 0x1e, 0x94, 0x6c, 0x49, 0x63, -0x7f, 0x0a, 0x4a, 0xe5, 0x9e, 0xc9, 0x25, 0xf5, 0x3f, 0xb0, 0xe8, 0x44, 0xea, 0x9c, 0x8a, 0x85, -0x5d, 0xc6, 0xe9, 0xb6, 0x5f, 0x17, 0xde, 0x79, 0x52, 0x6d, 0x9e, 0x3b, 0xab, 0x85, 0xb2, 0xb5, -0xc1, 0xd2, 0x16, 0x50, 0x4a, 0xa1, 0xd4, 0x27, 0xa4, 0xed, 0x0b, 0x1d, 0x19, 0x2c, 0x49, 0xa4, -0xf7, 0xfa, 0x2c, 0x17, 0x5e, 0x75, 0x5a, 0xf5, 0x76, 0x95, 0xe2, 0x7a, 0xbb, 0x4a, 0xf7, 0xa0, -0x1e, 0xb9, 0x80, 0xc0, 0x0e, 0x6e, 0xc0, 0xde, 0x9f, 0xc3, 0xa8, 0xb7, 0x1f, 0x75, 0x2e, 0xf6, -0x48, 0xe1, 0x75, 0xfb, 0x7a, 0x5b, 0x49, 0x2a, 0x47, 0xd5, 0x29, 0xbc, 0x7e, 0xff, 0x5a, 0x3c, -0xfb, 0x77, 0xf5, 0xb6, 0x91, 0xe4, 0x79, 0xe1, 0x25, 0xfc, 0x3a, 0xa3, 0xbd, 0xcd, 0x59, 0x45, -0x72, 0xf8, 0xbe, 0x63, 0xbd, 0xab, 0x20, 0xb5, 0xaf, 0xa1, 0xe8, 0xda, 0x66, 0xab, 0x37, 0x23, -0xbc, 0xde, 0x43, 0x6f, 0xad, 0x5d, 0x89, 0x90, 0x2e, 0xda, 0xd2, 0xa3, 0x58, 0x36, 0xf7, 0xec, -0xea, 0x6d, 0x96, 0xb7, 0xf4, 0x1e, 0xeb, 0xee, 0x5f, 0xdb, 0x2c, 0x6f, 0x5e, 0xfb, 0x56, 0x92, -0x47, 0x5b, 0x50, 0xd0, 0x05, 0x43, 0x9b, 0x79, 0x0c, 0x23, 0xe8, 0x20, 0x68, 0x26, 0x24, 0x4e, -0x4d, 0xf5, 0x8a, 0x9a, 0xb3, 0xbc, 0x79, 0x34, 0xc5, 0x91, 0xbc, 0x41, 0xb4, 0xba, 0x39, 0xfd, -0x46, 0x8e, 0x19, 0xda, 0x51, 0xb4, 0xf6, 0x84, 0x54, 0xc8, 0x89, 0xe4, 0x89, 0x9d, 0xd0, 0xcc, -0x63, 0xa8, 0x89, 0x52, 0x91, 0x31, 0x2b, 0xac, 0x0d, 0xa2, 0x07, 0xc9, 0xed, 0x93, 0x0d, 0xf9, -0x61, 0x08, 0x94, 0xfa, 0x26, 0x42, 0xdf, 0x46, 0x9b, 0x0c, 0x23, 0xdf, 0x53, 0xdc, 0x3e, 0xb8, -0xce, 0xce, 0x0a, 0x69, 0xe7, 0xd8, 0x33, 0x25, 0x7a, 0x83, 0x55, 0x7b, 0xcb, 0xa0, 0xe5, 0xa1, -0x14, 0x2d, 0x8b, 0xf3, 0xdc, 0xd6, 0x34, 0x6c, 0x62, 0xfe, 0x27, 0xac, 0x70, 0x6e, 0xd8, 0xc5, -0x67, 0xb9, 0xb9, 0x1d, 0x68, 0xf3, 0x05, 0xdc, 0xa3, 0x86, 0x90, 0xf7, 0x9b, 0x68, 0xfb, 0xb7, -0x0a, 0xeb, 0x91, 0x77, 0x58, 0x3b, 0x85, 0xfc, 0x4f, 0xcf, 0xe2, 0x93, 0x00, 0xaa, 0xb5, 0xb3, -0x6a, 0x51, 0xc7, 0x97, 0xf8, 0x54, 0xd5, 0x3f, 0x94, 0x0e, 0x2d, 0x23, 0xc6, 0xff, 0xab, 0x4b, -0x6f, 0xd8, 0x54, 0x62, 0x65, 0x7f, 0x8a, 0x5c, 0x72, 0xd7, 0x9f, 0x9f, 0xe0, 0x9c, 0x6a, 0xb4, -0x21, 0xc8, 0x06, 0x83, 0xa8, 0xcb, 0x1c, 0xed, 0x38, 0xbe, 0x7f, 0x0b, 0xdf, 0xa7, 0x7a, 0xe0, -0x90, 0x4a, 0x74, 0x3f, 0x5a, 0x78, 0x8d, 0x38, 0x59, 0x25, 0xc6, 0x30, 0xf3, 0x4e, 0x33, 0xe0, -0x41, 0xe9, 0x9a, 0x7c, 0x82, 0xf1, 0x50, 0xa3, 0xe3, 0x01, 0x65, 0xbd, 0x8d, 0x4b, 0xe0, 0x01, -0xb0, 0xe8, 0x74, 0x9a, 0xc2, 0x43, 0x50, 0xc7, 0x02, 0xfa, 0xed, 0x10, 0xfb, 0x23, 0x4d, 0x41, -0xe2, 0xb7, 0x26, 0x4a, 0xc4, 0xce, 0x0f, 0x50, 0x05, 0x72, 0xf5, 0xaf, 0xfc, 0xf3, 0x37, 0x9f, -0x16, 0xa7, 0x26, 0x0c, 0xcd, 0xaa, 0x04, 0x34, 0xc1, 0xf1, 0xd0, 0x8c, 0xfd, 0x52, 0x48, 0xd9, -0x4f, 0x1a, 0xf4, 0x7a, 0x2c, 0xe5, 0x79, 0x87, 0xa5, 0xbd, 0x14, 0x55, 0x32, 0xbf, 0xfa, 0xc7, -0xf3, 0x94, 0x53, 0xf9, 0x3e, 0x35, 0x40, 0x6f, 0x3a, 0xe6, 0xbb, 0x93, 0xc7, 0x1d, 0xe1, 0xa1, -0x7f, 0xdf, 0x25, 0x19, 0x72, 0x9d, 0xe0, 0xb4, 0x62, 0x4f, 0x93, 0x5b, 0x7a, 0x82, 0x79, 0xc8, -0xbc, 0xcb, 0xff, 0xf6, 0x5a, 0xfd, 0xb6, 0x31, 0x31, 0x23, 0x46, 0x8c, 0x4d, 0x48, 0x25, 0x5e, -0xf4, 0xf5, 0x4b, 0x71, 0xb3, 0xe0, 0x70, 0x97, 0x84, 0x6e, 0xc5, 0xcf, 0x36, 0x6d, 0x84, 0xe7, -0xd2, 0xd1, 0xeb, 0xe4, 0x78, 0x19, 0xdb, 0xe0, 0xbe, 0xf0, 0x3e, 0x45, 0x5a, 0xfd, 0xe2, 0x34, -0x2c, 0x7b, 0xe5, 0x05, 0xbb, 0x86, 0x77, 0x7f, 0x8b, 0x82, 0x98, 0x6c, 0x3c, 0xd5, 0xb5, 0xe6, -0x89, 0x98, 0x7c, 0x23, 0xa6, 0x78, 0xe1, 0xc1, 0x48, 0x4f, 0x18, 0x9c, 0x21, 0x14, 0x42, 0x0e, -0xb6, 0x78, 0x31, 0xd2, 0xe5, 0x8a, 0x1c, 0xf4, 0x3d, 0xdd, 0xc8, 0xc1, 0xa2, 0xe7, 0x90, 0x8f, -0x98, 0x3c, 0x91, 0x83, 0x4d, 0xc4, 0xe4, 0x1b, 0x31, 0xc5, 0xcd, 0x32, 0xe4, 0x8e, 0x5c, 0x9f, -0x97, 0xf2, 0x84, 0x27, 0xd9, 0x49, 0xe0, 0xb3, 0x15, 0xcc, 0xa5, 0x3a, 0x4d, 0x4a, 0x23, 0xf0, -0x6a, 0x01, 0x5e, 0x0b, 0x66, 0x81, 0xef, 0x6b, 0x1f, 0x97, 0xa3, 0x2f, 0x96, 0x78, 0x28, 0xaf, -0x14, 0xfd, 0xb2, 0x0c, 0x32, 0x47, 0x31, 0xef, 0xbc, 0xc0, 0x77, 0x6b, 0xfe, 0xcc, 0x51, 0xf3, -0x36, 0x6b, 0x07, 0x68, 0xfd, 0x42, 0x96, 0x14, 0x4f, 0xcc, 0x8a, 0x82, 0x8e, 0xaa, 0xb5, 0x33, -0x85, 0x2c, 0x31, 0x9e, 0x45, 0x6b, 0x9e, 0x9f, 0xc5, 0x67, 0x57, 0xd4, 0x6b, 0x17, 0x0c, 0x0d, -0x62, 0xf8, 0x6a, 0xfe, 0x5c, 0xcc, 0xf2, 0x6b, 0x1a, 0x0e, 0xb1, 0xc3, 0x73, 0x12, 0x7b, 0x32, -0x61, 0x48, 0x74, 0xcc, 0x83, 0x87, 0x1e, 0xab, 0xdf, 0xf7, 0x6f, 0x12, 0x5a, 0x3d, 0x2b, 0x32, -0x20, 0xda, 0xef, 0x19, 0xa3, 0xfd, 0x4e, 0xfc, 0xbe, 0xf6, 0x5b, 0xd3, 0xf0, 0xf6, 0x03, 0xe9, -0xb6, 0x9b, 0x50, 0xbf, 0xef, 0x93, 0xc8, 0xf5, 0xdb, 0xee, 0x93, 0x9c, 0xff, 0x7f, 0x68, 0xbb, -0xcb, 0x3d, 0x63, 0xdb, 0x8e, 0x4b, 0x43, 0xdb, 0xd9, 0xb5, 0x8b, 0x68, 0xbb, 0x3c, 0x5e, 0xf7, -0x2c, 0x35, 0xda, 0xcd, 0x83, 0x6f, 0xba, 0x26, 0x3b, 0xaa, 0x4f, 0x3c, 0x25, 0x7a, 0xe0, 0x09, -0xd1, 0x6e, 0xc3, 0x68, 0x37, 0x6e, 0xad, 0x73, 0xa2, 0xdd, 0xb8, 0xcd, 0x2e, 0xa0, 0xcd, 0x3e, -0x46, 0x5f, 0xfa, 0x04, 0x6d, 0x76, 0xda, 0x68, 0xb3, 0x13, 0x63, 0x34, 0x9d, 0x6b, 0x5a, 0xec, -0xb2, 0x34, 0xa6, 0xc5, 0x80, 0xed, 0xdf, 0xc5, 0x8c, 0xbe, 0xb6, 0xdb, 0xd0, 0x68, 0xd9, 0xae, -0x24, 0xd7, 0xc3, 0xf2, 0xab, 0x21, 0x05, 0xd6, 0x9e, 0xa3, 0x06, 0x3d, 0xbd, 0xee, 0x87, 0xbc, -0x7e, 0xdf, 0xc5, 0x1f, 0x09, 0xb9, 0xa7, 0x05, 0xa3, 0x80, 0xc2, 0x63, 0x43, 0xbc, 0x54, 0x70, -0xbc, 0x22, 0x1f, 0xaf, 0xb3, 0xe8, 0x1e, 0x90, 0xd9, 0x47, 0xe8, 0xbe, 0x7f, 0xdf, 0xa6, 0xe6, -0x8b, 0xb1, 0xc3, 0x9e, 0x8a, 0x11, 0x67, 0x36, 0xec, 0xfb, 0xf7, 0x35, 0x21, 0x84, 0x0a, 0x38, -0x84, 0xac, 0x48, 0x76, 0xc8, 0xdb, 0xb9, 0x75, 0xef, 0x94, 0x93, 0x4a, 0x17, 0x0f, 0xa6, 0x74, -0x53, 0x97, 0xae, 0x9b, 0xa6, 0xe9, 0x85, 0xe7, 0x87, 0x0c, 0xa9, 0x94, 0xcf, 0xa7, 0x3c, 0x98, -0x92, 0x2b, 0x85, 0x3c, 0x60, 0x1b, 0xda, 0x81, 0x11, 0xde, 0xe4, 0xa3, 0x79, 0x97, 0xff, 0xf5, -0x1c, 0xe8, 0x64, 0x34, 0x6e, 0xa4, 0x7d, 0xca, 0xe0, 0x8e, 0x94, 0x14, 0x51, 0xbf, 0xad, 0xb3, -0x41, 0x8c, 0xff, 0x3f, 0x4d, 0xd5, 0x27, 0xd2, 0xe1, 0x86, 0xe4, 0xf2, 0xaf, 0xc7, 0xc6, 0x42, -0x38, 0xef, 0xf2, 0xa5, 0x13, 0xf5, 0xdb, 0x1c, 0xd0, 0x04, 0xb7, 0xa0, 0xec, 0x69, 0x7c, 0x86, -0x9a, 0x97, 0x2c, 0x9b, 0x01, 0xc3, 0xd0, 0x4e, 0x2a, 0xe5, 0xf7, 0xc1, 0x9d, 0x54, 0x0e, 0x89, -0x80, 0xcf, 0x60, 0x0b, 0x36, 0xf6, 0xbd, 0x7e, 0x60, 0x5a, 0x84, 0x78, 0x47, 0x58, 0xb8, 0xb1, -0x7b, 0x88, 0x4f, 0x28, 0xaa, 0xbb, 0x0a, 0x13, 0x62, 0x3f, 0xa3, 0x51, 0xa6, 0x5e, 0xde, 0x09, -0x8c, 0xe4, 0xa6, 0x51, 0xad, 0x57, 0x3f, 0x37, 0xa9, 0x3c, 0x5d, 0xe7, 0x54, 0x5d, 0x9d, 0x80, -0x01, 0xba, 0x6a, 0xdf, 0x78, 0xfc, 0x5d, 0xaa, 0x60, 0xfc, 0x41, 0xd6, 0x62, 0xc9, 0x9e, 0x35, -0x06, 0x3f, 0xae, 0x3a, 0x5c, 0x11, 0x5c, 0x61, 0x5c, 0xbc, 0x8f, 0xad, 0x14, 0x57, 0x39, 0xcb, -0x67, 0x62, 0xb6, 0x6e, 0x9c, 0x14, 0xfe, 0xf1, 0x9e, 0x31, 0x52, 0x3c, 0x99, 0x2a, 0xfe, 0x90, -0x1c, 0x8f, 0xd4, 0x4e, 0x95, 0x4c, 0x79, 0x63, 0x31, 0x8e, 0xde, 0xd7, 0xeb, 0x93, 0xe6, 0x5d, -0xfe, 0xb8, 0x6b, 0x3c, 0xb6, 0x15, 0x84, 0xc7, 0x58, 0xc3, 0x97, 0xea, 0xb7, 0xa5, 0x76, 0x77, -0xea, 0xf9, 0xb2, 0x05, 0xed, 0x55, 0xab, 0x6b, 0xac, 0xf7, 0xb9, 0x79, 0xac, 0x5a, 0xdd, 0xf0, -0xd6, 0xfd, 0x69, 0x1e, 0x90, 0x09, 0x08, 0xc3, 0xe3, 0x6b, 0xfc, 0x6f, 0x75, 0x90, 0x2d, 0x9c, -0xdc, 0x72, 0xd7, 0xd5, 0x3a, 0xc2, 0x63, 0xa1, 0x85, 0x6e, 0x5d, 0x80, 0x71, 0x9e, 0xdb, 0x2d, -0xc8, 0xbe, 0x9f, 0xd1, 0x4e, 0xdc, 0x2e, 0xc0, 0x12, 0x42, 0x22, 0x8d, 0x49, 0xb4, 0x5d, 0x31, -0xc2, 0xea, 0xa6, 0x55, 0x91, 0x73, 0x1a, 0xb4, 0x7f, 0xb4, 0x68, 0x33, 0xa4, 0xe2, 0x72, 0x2e, -0x91, 0xcb, 0xba, 0x78, 0xde, 0xe8, 0x1d, 0x99, 0xbc, 0x7f, 0x1e, 0xb0, 0xf8, 0xaf, 0xa6, 0xeb, -0x4f, 0x5e, 0x14, 0x3a, 0xf6, 0x0c, 0xed, 0xa2, 0x6a, 0x4e, 0x4b, 0x57, 0xe5, 0xfa, 0x29, 0x60, -0x42, 0x27, 0x6e, 0x23, 0x05, 0x7a, 0xb1, 0x9b, 0x35, 0x4f, 0x6e, 0x45, 0x0f, 0xb8, 0x52, 0xed, -0x07, 0xa9, 0x5e, 0x24, 0xbc, 0x81, 0xef, 0xfb, 0x97, 0x45, 0x8e, 0x2a, 0x9e, 0xe3, 0x02, 0xbf, -0xe0, 0x19, 0x10, 0x6b, 0xff, 0xb3, 0xe0, 0x2b, 0x11, 0xf0, 0x1f, 0x48, 0xfe, 0xde, 0x60, 0xd5, -0x27, 0x76, 0xed, 0xc7, 0x1f, 0x80, 0xb3, 0x94, 0x18, 0x3e, 0xb4, 0x9e, 0x05, 0x6f, 0xf1, 0x88, -0x58, 0xb3, 0x23, 0x58, 0xf9, 0x2f, 0xe0, 0x4f, 0x1f, 0x50, 0x71, 0x8b, 0xe8, 0x57, 0x82, 0xb3, -0x30, 0x6d, 0xef, 0xfb, 0xc4, 0xa5, 0xf3, 0x16, 0xe6, 0x58, 0x90, 0x69, 0xc6, 0x79, 0x04, 0xf6, -0xe8, 0xfc, 0x3b, 0x4f, 0xff, 0x42, 0xd4, 0x44, 0x7c, 0xf3, 0xbb, 0x8f, 0xc7, 0xf0, 0x03, 0x86, -0x2b, 0x04, 0xb9, 0xe5, 0x06, 0x5d, 0xe3, 0xe6, 0x3d, 0x7f, 0xa8, 0x4b, 0x81, 0x47, 0xd7, 0xef, -0x15, 0xae, 0x8b, 0x97, 0xeb, 0xf2, 0xe1, 0xf8, 0xba, 0x5c, 0xd8, 0xe6, 0x6f, 0xd1, 0xd7, 0x2e, -0x5f, 0xf8, 0x10, 0xb5, 0xa8, 0x08, 0x80, 0x82, 0x2b, 0x2f, 0x6c, 0xd7, 0xf0, 0xe6, 0x6f, 0xf1, -0x23, 0x2e, 0x1b, 0x4f, 0x75, 0xad, 0x2e, 0x84, 0xe7, 0x18, 0xe1, 0xd7, 0xc0, 0xfe, 0xbb, 0xe5, -0xd7, 0xc0, 0x7e, 0xc3, 0x1f, 0x84, 0xbd, 0x64, 0x3c, 0xec, 0x17, 0xd6, 0x1b, 0xb0, 0xcb, 0x7f, -0x3c, 0xec, 0x1f, 0xbd, 0x05, 0xf8, 0x6c, 0xe3, 0x60, 0xcf, 0x1d, 0x07, 0x7b, 0x4e, 0x1a, 0xf6, -0xbc, 0xcf, 0x83, 0xfd, 0xe2, 0x73, 0x5f, 0x1c, 0xf6, 0x8b, 0xab, 0xc7, 0xc3, 0xfe, 0xd1, 0x91, -0x3f, 0x01, 0xf6, 0xa9, 0xff, 0x71, 0xd8, 0xff, 0xf5, 0xe3, 0x2f, 0x0e, 0xfb, 0xbf, 0xbe, 0x78, -0x15, 0xec, 0xd9, 0x5f, 0x1c, 0xf6, 0x0f, 0x17, 0x8d, 0x83, 0x3d, 0x04, 0x3a, 0x9f, 0xc1, 0xd0, -0x5b, 0x74, 0xe8, 0x03, 0x69, 0xe8, 0xdd, 0x22, 0x26, 0xcf, 0x88, 0xb9, 0x16, 0xfe, 0xc0, 0x17, -0x87, 0xff, 0xe3, 0x2b, 0xe3, 0xe1, 0xff, 0xb0, 0x7e, 0x14, 0x7e, 0xe1, 0x2d, 0xc9, 0x3f, 0x76, -0x16, 0xa4, 0xb3, 0xe1, 0x18, 0xe4, 0x87, 0x34, 0xec, 0x52, 0xfd, 0xbe, 0x0f, 0x7e, 0x64, 0x94, -0x84, 0x3e, 0x9e, 0x2a, 0x6b, 0x7c, 0x19, 0x6c, 0x07, 0x8b, 0x72, 0xb6, 0x89, 0xf3, 0x54, 0x04, -0xdf, 0x17, 0xdf, 0x9d, 0x41, 0x39, 0x3e, 0x3e, 0xaf, 0xc4, 0x2a, 0xfc, 0xa7, 0x88, 0xb2, 0x4a, -0x79, 0xf6, 0x98, 0xe7, 0x25, 0x3e, 0xa7, 0xac, 0xb2, 0xb1, 0xf5, 0xad, 0xbd, 0xfc, 0x71, 0x08, -0x7a, 0x6a, 0xaa, 0xf4, 0xf2, 0x54, 0xe9, 0xa2, 0x9c, 0xa7, 0xaf, 0x82, 0x40, 0x81, 0xfe, 0x7b, -0x67, 0xba, 0x6c, 0xee, 0x5f, 0x76, 0x94, 0x6e, 0xab, 0x7b, 0xa7, 0x60, 0xb4, 0xf4, 0x3f, 0x50, -0xd3, 0xf3, 0xfb, 0xc7, 0x63, 0xfb, 0x5f, 0x0e, 0xa5, 0xcb, 0x2e, 0x1d, 0x57, 0xb6, 0x51, 0x47, -0x5e, 0xcb, 0xc4, 0x57, 0x57, 0xae, 0x53, 0xcf, 0x3f, 0x54, 0x52, 0xec, 0xaa, 0x92, 0xee, 0xfe, -0xa3, 0x4a, 0xda, 0xfa, 0xc5, 0x31, 0xfa, 0xfe, 0xd9, 0xf1, 0x18, 0xbd, 0x70, 0xe1, 0x4f, 0xc3, -0xe8, 0x79, 0xfb, 0x75, 0x31, 0xfa, 0x87, 0x4a, 0x5f, 0x7e, 0x55, 0xe9, 0x1d, 0x7f, 0x5a, 0xe9, -0xef, 0x3f, 0x76, 0x75, 0xe9, 0x7f, 0x6c, 0xcf, 0x3b, 0x77, 0x16, 0xfc, 0xc0, 0x82, 0xb1, 0x64, -0x06, 0x59, 0xd1, 0xcb, 0xb2, 0xd0, 0xbb, 0xb2, 0x9d, 0x13, 0xb7, 0x76, 0x73, 0x5f, 0xdc, 0xfd, -0x1c, 0xfa, 0x62, 0xd9, 0xd0, 0x86, 0x5d, 0xcf, 0x89, 0x3e, 0x18, 0xd1, 0xad, 0xba, 0x79, 0xf7, -0xcf, 0x8f, 0xb9, 0x2f, 0x2a, 0x83, 0x7d, 0xfd, 0xcf, 0x5d, 0xdb, 0x07, 0x3f, 0xfa, 0x13, 0xf8, -0xdf, 0x47, 0x57, 0xf1, 0xbf, 0x73, 0x7f, 0x02, 0xff, 0x3b, 0x37, 0xf5, 0x3f, 0xbb, 0x26, 0x1f, -0x9e, 0xfe, 0xe2, 0x35, 0xf9, 0xb0, 0xff, 0xaa, 0x9a, 0xd0, 0x17, 0xaf, 0xc9, 0x7b, 0x4d, 0x80, -0xdf, 0x92, 0xe6, 0x86, 0x25, 0x3c, 0x9e, 0x0a, 0x3e, 0xe8, 0xe5, 0x7a, 0x09, 0x3e, 0xe8, 0x30, -0xc6, 0xd1, 0x6b, 0x61, 0xf6, 0x7f, 0x71, 0x98, 0x3f, 0x18, 0x19, 0x0f, 0xf3, 0x7b, 0x75, 0x5f, -0x1c, 0xe6, 0xb3, 0x4f, 0xfc, 0xe9, 0x30, 0x7f, 0xd0, 0xf5, 0x27, 0xc0, 0x1c, 0x19, 0x0f, 0xf3, -0xd9, 0xed, 0x63, 0x61, 0xd6, 0xa5, 0x2e, 0xc0, 0x9c, 0x96, 0xba, 0xae, 0x07, 0xf3, 0xbb, 0xe7, -0x99, 0x62, 0x98, 0x5e, 0x18, 0x6e, 0x7f, 0x2d, 0x9f, 0x09, 0xb3, 0xab, 0xb6, 0xcd, 0xec, 0x88, -0x28, 0x41, 0x55, 0x72, 0xf0, 0xae, 0xb4, 0x2c, 0xc4, 0x66, 0xfb, 0x33, 0x22, 0x03, 0xc5, 0xa6, -0xc8, 0xc1, 0x5d, 0x55, 0x88, 0x23, 0x45, 0x42, 0x9c, 0xf4, 0x63, 0xae, 0xa5, 0x47, 0xd4, 0xd0, -0x09, 0xaa, 0xaa, 0x6b, 0x9d, 0x7a, 0x3d, 0x0a, 0x3a, 0xff, 0xc3, 0xcf, 0xaf, 0x99, 0x8b, 0xae, -0x5f, 0xb3, 0xf3, 0xad, 0xe3, 0x6b, 0xf6, 0xee, 0x8b, 0xa8, 0x59, 0xc6, 0x78, 0x19, 0xcc, 0x3b, -0xa6, 0x35, 0xae, 0x27, 0x4f, 0xbe, 0x9b, 0x13, 0x68, 0xd5, 0x77, 0x38, 0x09, 0xb9, 0xb1, 0x88, -0xed, 0xf1, 0x85, 0x8c, 0xe8, 0xc4, 0x7b, 0xa4, 0x75, 0x2a, 0x9e, 0xeb, 0x5a, 0xaf, 0x82, 0xf5, -0xfd, 0x4f, 0xae, 0x81, 0x35, 0xfb, 0x0f, 0xb5, 0xc2, 0xfb, 0x07, 0xaf, 0x82, 0x35, 0xe7, 0x8b, -0x53, 0xce, 0x99, 0xf8, 0x7f, 0x5c, 0x5e, 0x7c, 0xbf, 0xec, 0x8b, 0x53, 0xd0, 0xfb, 0xe6, 0xf1, -0xb0, 0x9f, 0x99, 0xff, 0xc5, 0x61, 0xff, 0xed, 0x4e, 0xc0, 0xe7, 0x1c, 0x07, 0xbb, 0x7b, 0x1c, -0xec, 0xae, 0x34, 0xec, 0x9e, 0xcf, 0x83, 0xfd, 0xdc, 0x9a, 0x2f, 0x0e, 0xfb, 0xb9, 0xe8, 0x78, -0xd8, 0x7f, 0xfb, 0xd8, 0x17, 0x87, 0xfd, 0xf4, 0x87, 0xff, 0x71, 0x79, 0xf1, 0xbd, 0x83, 0x5f, -0x1c, 0xf6, 0xf7, 0x1e, 0x1a, 0x0f, 0xfb, 0xe9, 0xb7, 0xff, 0x04, 0xd8, 0x85, 0x44, 0x38, 0x0e, -0xf6, 0xbc, 0x71, 0xb0, 0xe7, 0xa6, 0x61, 0xb7, 0x7f, 0x2e, 0xec, 0xe6, 0x2f, 0x0e, 0xfb, 0xd9, -0xa1, 0xab, 0x60, 0x77, 0x7c, 0x71, 0xd8, 0xff, 0x79, 0xe5, 0x7f, 0x1c, 0xef, 0x67, 0xa3, 0x7f, -0x02, 0xec, 0x79, 0xe3, 0x61, 0xff, 0xe7, 0xf8, 0x17, 0x87, 0xfd, 0xd4, 0xbe, 0xff, 0x38, 0xec, -0xef, 0x3e, 0xf4, 0xc5, 0x61, 0x7f, 0xf7, 0xee, 0xf1, 0xb0, 0x9f, 0xda, 0x79, 0x2d, 0xec, 0x7f, -0x88, 0x27, 0x9e, 0xbc, 0x02, 0x9e, 0x68, 0x19, 0xc7, 0x13, 0xb3, 0xfe, 0x10, 0x4f, 0x3c, 0x73, -0xea, 0x8b, 0xf3, 0xc4, 0x33, 0xcf, 0x8d, 0x87, 0xf5, 0xe4, 0x95, 0x3f, 0x01, 0xd6, 0xd8, 0x17, -0xe7, 0xdf, 0x67, 0x4a, 0xfe, 0x04, 0x58, 0xa5, 0xab, 0x60, 0x8d, 0x8d, 0x85, 0x95, 0x78, 0xe7, -0x2e, 0xfb, 0x70, 0x62, 0x0b, 0xe0, 0x82, 0x7f, 0xfc, 0x80, 0x72, 0x94, 0x46, 0x91, 0xaf, 0x35, -0x95, 0xaf, 0x33, 0xe8, 0x40, 0x4b, 0xb7, 0x4f, 0x1a, 0x7c, 0x4a, 0xea, 0x65, 0x8f, 0xe0, 0xc6, -0x0a, 0xe9, 0x29, 0xc3, 0xcb, 0xc4, 0xe6, 0xdd, 0xba, 0xf7, 0x88, 0x3e, 0x3e, 0x1b, 0xc7, 0xbd, -0x42, 0x1b, 0xe1, 0x19, 0xde, 0xb9, 0xef, 0x8f, 0xa9, 0xeb, 0x0d, 0xf5, 0xfb, 0x86, 0xe3, 0xe9, -0x79, 0xdc, 0x15, 0x94, 0x2b, 0x66, 0x92, 0x0a, 0x49, 0xae, 0xbe, 0x3c, 0xec, 0xaf, 0xdf, 0x32, -0x26, 0xc6, 0x9e, 0x9e, 0x4b, 0x42, 0xac, 0xd8, 0x1b, 0xe7, 0x2e, 0x7a, 0x06, 0xb1, 0x93, 0x40, -0xc9, 0x91, 0xe2, 0xa0, 0x51, 0x07, 0xce, 0xef, 0x21, 0x9e, 0xe3, 0x4c, 0xcf, 0xd0, 0x20, 0xfe, -0xb7, 0x05, 0xc5, 0x51, 0x31, 0x47, 0x93, 0x95, 0xb6, 0x0d, 0x2d, 0x4d, 0x59, 0xea, 0xb0, 0xbd, -0xc3, 0xad, 0x21, 0x92, 0x13, 0x5e, 0x61, 0xf3, 0xc4, 0x10, 0x78, 0x78, 0x2e, 0xab, 0xf6, 0xf2, -0x3b, 0xfd, 0x86, 0x1d, 0x14, 0x97, 0xed, 0x49, 0xcf, 0x63, 0x89, 0xb3, 0x7e, 0x59, 0xca, 0x4e, -0x9f, 0xbb, 0x7c, 0xcd, 0x3c, 0x1d, 0x63, 0x82, 0xcf, 0x05, 0x4c, 0x14, 0x39, 0x56, 0x50, 0x9e, -0xe2, 0xd6, 0x46, 0xfa, 0x9f, 0x92, 0x56, 0xc5, 0x95, 0x69, 0x11, 0xb2, 0x8c, 0x9d, 0x1d, 0x13, -0x73, 0xd6, 0x5e, 0x6e, 0x87, 0x77, 0xc2, 0xdc, 0x0e, 0xf3, 0xce, 0x8d, 0xc1, 0x4c, 0x36, 0x42, -0xeb, 0xd2, 0x2d, 0x9c, 0x05, 0x5e, 0x33, 0x5f, 0x89, 0xf1, 0xcc, 0x23, 0xe7, 0xd9, 0x91, 0x6d, -0xd8, 0xf7, 0x5c, 0x10, 0x73, 0xbf, 0xc2, 0xca, 0xe7, 0x6a, 0xff, 0xc0, 0xec, 0x8f, 0x51, 0x68, -0x0e, 0x49, 0x5f, 0x16, 0xe7, 0x53, 0xbf, 0x4f, 0xb3, 0x18, 0x7e, 0xe7, 0x46, 0x12, 0x3c, 0x1f, -0x6e, 0x11, 0x5e, 0xda, 0xc4, 0x2c, 0xd7, 0x29, 0xf3, 0xd5, 0xb3, 0x5a, 0xff, 0x7c, 0xd6, 0xc0, -0x28, 0xc3, 0x51, 0x6e, 0xcc, 0x70, 0x8d, 0x08, 0x2f, 0x74, 0xc2, 0x47, 0x5a, 0xea, 0x3c, 0x2f, -0x50, 0x47, 0x29, 0xa8, 0x84, 0xbd, 0xdb, 0x94, 0x73, 0xeb, 0x2a, 0x85, 0x64, 0x73, 0xa0, 0xd5, -0x3a, 0x48, 0xec, 0x0c, 0x30, 0x56, 0xcc, 0x5d, 0xa4, 0x34, 0x2a, 0x33, 0x48, 0xe6, 0x18, 0xc7, -0x74, 0x39, 0xd6, 0xc4, 0x3b, 0x45, 0x0b, 0x58, 0x8b, 0x61, 0xa8, 0xab, 0x3f, 0xc2, 0x73, 0x56, -0x9a, 0xa6, 0x20, 0x17, 0x25, 0x96, 0x47, 0xab, 0x12, 0xcb, 0x3d, 0x48, 0xad, 0xcc, 0x00, 0x8e, -0x82, 0x88, 0x0f, 0x91, 0x12, 0x63, 0xeb, 0x58, 0xa7, 0x6f, 0xae, 0xf0, 0x5d, 0xe8, 0xc5, 0xe5, -0x57, 0x5a, 0xa4, 0x55, 0x8f, 0xbc, 0xea, 0x6d, 0xd1, 0xad, 0x19, 0x5d, 0xd4, 0x3e, 0x79, 0xf0, -0x59, 0xa9, 0xb7, 0x9f, 0xf7, 0x45, 0xe4, 0xdc, 0x5a, 0x45, 0x16, 0x68, 0x86, 0x93, 0x98, 0x26, -0xae, 0xe8, 0x1e, 0x16, 0xd7, 0xc6, 0xed, 0x29, 0x8a, 0x62, 0xad, 0xe9, 0x37, 0xfb, 0x1b, 0x36, -0xa9, 0x66, 0x5e, 0x61, 0x74, 0x91, 0x2e, 0x61, 0xe9, 0x3b, 0x41, 0xbf, 0xf6, 0xd1, 0x95, 0xc7, -0x45, 0xbb, 0xb6, 0x99, 0x56, 0xd5, 0x7e, 0x64, 0xe2, 0xf3, 0x25, 0xdd, 0x6c, 0xdb, 0x78, 0xcb, -0xf2, 0x94, 0x7d, 0x33, 0x43, 0x8c, 0xd0, 0x4b, 0xc6, 0xa9, 0xc3, 0x5a, 0x69, 0x81, 0xaf, 0x8b, -0x86, 0xaf, 0x3c, 0x43, 0x6e, 0xe3, 0xee, 0x6f, 0x37, 0xf1, 0x79, 0x1d, 0x78, 0x3b, 0x39, 0xd5, -0xc6, 0xa7, 0xfa, 0xf0, 0x6e, 0x62, 0x23, 0x2e, 0x68, 0x2b, 0xa7, 0x0c, 0xc4, 0x86, 0x8d, 0xf7, -0x08, 0x7b, 0x97, 0xf7, 0xf1, 0x3c, 0xb1, 0xfe, 0xde, 0x80, 0xf8, 0x4c, 0xc4, 0x37, 0x19, 0xef, -0x0b, 0x10, 0x6f, 0x41, 0xfc, 0x42, 0xe3, 0x5d, 0x45, 0xbc, 0x19, 0xf1, 0x8b, 0x8d, 0xf7, 0xa5, -0x88, 0x9f, 0xc0, 0x67, 0xf3, 0x18, 0xef, 0xed, 0x88, 0xe7, 0xd3, 0x4c, 0x3b, 0xb9, 0xf4, 0x89, -0xcd, 0xb4, 0x0a, 0xf1, 0x59, 0x88, 0xef, 0xe2, 0x77, 0xcb, 0x2a, 0x4a, 0x22, 0x7e, 0x12, 0xe2, -0x7b, 0xf9, 0x7d, 0xc2, 0x45, 0xea, 0x43, 0xbc, 0x15, 0xf1, 0x1b, 0x8d, 0xef, 0x37, 0x23, 0xfe, -0x06, 0xc4, 0x6f, 0xe5, 0xf8, 0x3f, 0xcb, 0xa5, 0xed, 0x88, 0xcf, 0x46, 0xfc, 0xe3, 0xfc, 0x6e, -0x8e, 0xd0, 0x13, 0x88, 0x9f, 0x8c, 0xf8, 0x27, 0x8d, 0xf4, 0x3b, 0x10, 0x3f, 0x05, 0xf1, 0xcf, -0x88, 0xf7, 0x1d, 0xd4, 0x8f, 0xf8, 0x1c, 0xc4, 0xef, 0x36, 0xe2, 0xf7, 0x22, 0xfe, 0x46, 0xc4, -0xef, 0x37, 0xde, 0x07, 0x10, 0xcf, 0xa7, 0x26, 0x1d, 0x32, 0xde, 0x0f, 0x23, 0xfe, 0x26, 0xc4, -0x1f, 0x35, 0xde, 0x07, 0x11, 0x9f, 0x87, 0xf8, 0x63, 0x5c, 0xde, 0x57, 0x1f, 0xa7, 0xe3, 0x88, -0xbf, 0x19, 0xf1, 0x27, 0x8c, 0xf8, 0x61, 0xc4, 0xdb, 0x11, 0x7f, 0xda, 0x78, 0x3f, 0x8b, 0xf8, -0x2f, 0x21, 0xfe, 0xbc, 0xf1, 0x7e, 0x01, 0xf1, 0xf9, 0x88, 0xbf, 0x68, 0xbc, 0x5f, 0x42, 0xfc, -0x97, 0x11, 0x3f, 0xa2, 0xbf, 0x9b, 0x08, 0xf1, 0xa0, 0x3d, 0x93, 0xcc, 0xf9, 0xcb, 0x7d, 0x26, -0x0b, 0xe2, 0xff, 0xcc, 0x57, 0x69, 0xb2, 0xfa, 0xea, 0x4c, 0x11, 0x4e, 0xe3, 0xfa, 0x9d, 0xa9, -0xce, 0xc6, 0x6d, 0x12, 0x34, 0x35, 0xf8, 0xa2, 0x26, 0xd1, 0x0e, 0xae, 0xcb, 0x26, 0x6e, 0x87, -0xa9, 0x48, 0xb7, 0x30, 0xf4, 0xbc, 0x49, 0xc5, 0xb5, 0x18, 0xd7, 0x52, 0xb6, 0xc2, 0xbd, 0x75, -0x8a, 0xb1, 0x02, 0xfd, 0x23, 0x7c, 0x21, 0x5a, 0xe1, 0xd6, 0x3c, 0x53, 0x3b, 0xdb, 0x4b, 0x20, -0x75, 0x67, 0xe5, 0x47, 0xa6, 0x8d, 0x95, 0x67, 0xb5, 0xfd, 0xbe, 0x88, 0x69, 0xd5, 0x02, 0x50, -0xb0, 0x89, 0xdb, 0x81, 0x28, 0x69, 0x4a, 0xe2, 0xfb, 0x5e, 0x5c, 0x7d, 0x22, 0x0f, 0xc5, 0xc8, -0xe3, 0xc4, 0xad, 0x41, 0x49, 0x9c, 0xab, 0x9a, 0xf0, 0xeb, 0xf6, 0xba, 0xb7, 0xde, 0x56, 0xfd, -0x91, 0xa9, 0x29, 0x65, 0xb1, 0x2b, 0xce, 0xe8, 0x30, 0x4f, 0x9b, 0x4b, 0x79, 0x6a, 0xce, 0xb8, -0xef, 0x8e, 0xb0, 0x47, 0x24, 0xe6, 0x70, 0x0b, 0xe9, 0x6b, 0x1f, 0x99, 0x16, 0x33, 0x15, 0x7f, -0xf6, 0xb8, 0x58, 0x39, 0x69, 0x93, 0xba, 0xaa, 0x3f, 0x92, 0xac, 0x69, 0x2a, 0xde, 0xe2, 0xcb, -0xaa, 0xd5, 0x3d, 0x29, 0x6c, 0xed, 0x54, 0x8e, 0x6d, 0x8a, 0xac, 0x32, 0x5d, 0x12, 0xe1, 0xfb, -0x98, 0xbb, 0xf9, 0xa2, 0x52, 0x9d, 0x8e, 0x03, 0xa9, 0xa1, 0x1d, 0x18, 0x90, 0x9a, 0x7c, 0x21, -0x69, 0x81, 0xa8, 0xd3, 0x6c, 0x69, 0x61, 0x47, 0x85, 0xaf, 0x52, 0x42, 0xdd, 0x25, 0xd4, 0x5d, -0x5a, 0x8a, 0xeb, 0xff, 0xc3, 0xdb, 0xdf, 0x00, 0x36, 0x75, 0x5d, 0x09, 0xe2, 0xf8, 0xd1, 0xb3, -0x2c, 0x84, 0xa2, 0x38, 0x8a, 0xeb, 0xba, 0x5e, 0xea, 0x25, 0x0f, 0x45, 0x08, 0x45, 0x96, 0x2d, -0xd5, 0x55, 0x1c, 0xc7, 0x68, 0x8d, 0x24, 0xcb, 0x46, 0x16, 0xc6, 0x75, 0x0c, 0xa5, 0xde, 0x0c, -0x93, 0xbe, 0x10, 0x5b, 0x32, 0xc6, 0x1f, 0x1a, 0xc7, 0x65, 0x5c, 0xff, 0xfd, 0xcf, 0x18, 0x43, -0x08, 0x25, 0x14, 0x1c, 0x42, 0x28, 0xcd, 0x32, 0xd9, 0x6c, 0x37, 0x9b, 0x61, 0x08, 0x69, 0x5d, -0x97, 0x52, 0x86, 0x65, 0x32, 0x0e, 0xa5, 0x0c, 0x65, 0x98, 0xac, 0x4b, 0x99, 0x0c, 0x93, 0x1f, -0x9b, 0x80, 0xcb, 0x66, 0x5c, 0x42, 0x12, 0x4a, 0x19, 0x4a, 0x89, 0xed, 0xf7, 0x3f, 0xe7, 0xdc, -0x27, 0xe9, 0x99, 0x8f, 0x4c, 0x3a, 0xb3, 0xff, 0x9f, 0xe1, 0x3d, 0xdd, 0x7b, 0xdf, 0xfd, 0xfe, -0x38, 0xf7, 0x9c, 0x7b, 0xcf, 0x47, 0xfb, 0xcd, 0xed, 0x97, 0x92, 0xa2, 0xfd, 0x52, 0x8f, 0x68, -0xbf, 0xd4, 0x1b, 0xfa, 0x58, 0x1a, 0x12, 0xed, 0x97, 0xfa, 0x57, 0x50, 0xc8, 0x40, 0x37, 0xce, -0x66, 0x09, 0x5b, 0x2e, 0x6d, 0xc2, 0x67, 0x0b, 0xf3, 0xae, 0x0e, 0x24, 0xe4, 0x4c, 0x6b, 0xa5, -0xa6, 0x54, 0x6b, 0x31, 0xdc, 0x22, 0x07, 0xe7, 0x51, 0x6b, 0x99, 0x8f, 0x86, 0xb8, 0xaa, 0xa4, -0xe6, 0x34, 0xcf, 0x5f, 0x8a, 0x6b, 0x81, 0x6f, 0x85, 0x34, 0x6e, 0x9d, 0xdd, 0x37, 0x73, 0xf1, -0x20, 0x04, 0x40, 0x0a, 0x2f, 0xc5, 0xa3, 0xe3, 0x4a, 0x59, 0xaa, 0x03, 0x78, 0xc3, 0x19, 0xfc, -0xc7, 0x8b, 0x90, 0x8b, 0xfd, 0x32, 0xc0, 0xb7, 0x71, 0xbc, 0x8e, 0xe9, 0xfe, 0x38, 0xc3, 0x3f, -0x8d, 0x69, 0xd2, 0x77, 0x1c, 0xb8, 0xff, 0x08, 0x5e, 0x58, 0x84, 0x1c, 0xff, 0xc4, 0x7c, 0x23, -0xf4, 0x95, 0x6e, 0x1a, 0x13, 0x66, 0xda, 0x9b, 0x96, 0x0f, 0x28, 0x26, 0x84, 0x3f, 0x7b, 0xa4, -0x0d, 0x0b, 0x82, 0x60, 0x73, 0x0e, 0x26, 0xfc, 0xc4, 0xb3, 0x4c, 0x3c, 0xcc, 0xb8, 0x6b, 0x62, -0xcc, 0xa2, 0xd5, 0xc6, 0x46, 0xb6, 0xee, 0x3a, 0xa1, 0xb3, 0xee, 0x9a, 0x86, 0xd6, 0x0b, 0x98, -0x77, 0x36, 0xee, 0xa2, 0x98, 0xcc, 0xd9, 0xfd, 0x2f, 0x49, 0x03, 0xb6, 0x81, 0xb9, 0xf5, 0xe5, -0xa5, 0xf3, 0xc0, 0x6b, 0xf6, 0x8a, 0x36, 0xcc, 0x15, 0x7c, 0x46, 0xb2, 0x95, 0xef, 0x8b, 0x4e, -0x6b, 0x5c, 0x92, 0xd6, 0x64, 0xf6, 0x28, 0x69, 0x9c, 0x26, 0x3e, 0x49, 0xb3, 0xfd, 0x30, 0xcb, -0xfa, 0xb5, 0x62, 0x2c, 0x76, 0x25, 0x0d, 0xf5, 0xdf, 0x08, 0x07, 0x05, 0x87, 0x1c, 0xf3, 0x57, -0xb9, 0xa5, 0xde, 0x84, 0x8d, 0xb9, 0x5b, 0xa1, 0xfe, 0xd0, 0x99, 0x03, 0xe1, 0xbd, 0x52, 0x2f, -0xf1, 0x27, 0x48, 0x3d, 0x89, 0xb9, 0xe9, 0xd0, 0x97, 0xb5, 0xd9, 0xa5, 0x49, 0x07, 0x60, 0x9c, -0x1e, 0xe2, 0x4f, 0x4a, 0xf1, 0xd2, 0x69, 0x79, 0x15, 0xc6, 0x30, 0x3c, 0xee, 0xa1, 0x1d, 0xe3, -0xc6, 0x89, 0xf9, 0x41, 0xa9, 0x87, 0x5c, 0x53, 0x1b, 0xd1, 0xd5, 0x4b, 0x9c, 0x3f, 0x98, 0x23, -0xd9, 0xd9, 0xb4, 0x32, 0x9f, 0xe3, 0x60, 0x13, 0x71, 0x7c, 0xdb, 0x29, 0x47, 0x6f, 0x9b, 0xb4, -0x1b, 0x61, 0x1a, 0xee, 0xbf, 0x60, 0x25, 0x3d, 0xb4, 0x72, 0x9b, 0xd4, 0xc3, 0x72, 0x0e, 0x66, -0x9e, 0xe3, 0x42, 0x8f, 0xb3, 0x35, 0x65, 0x87, 0xfc, 0x53, 0xb9, 0xfa, 0x52, 0x1a, 0x46, 0x96, -0xe3, 0xd7, 0xa6, 0xc5, 0x1f, 0x42, 0x59, 0x2f, 0xac, 0x85, 0x1e, 0xf5, 0xa9, 0xc8, 0xbb, 0xdb, -0x6a, 0x6f, 0xa8, 0x47, 0xfa, 0xa3, 0x67, 0xb7, 0xf5, 0xd5, 0xbd, 0xb3, 0x6d, 0x29, 0xf3, 0xdc, -0x90, 0x7e, 0x6d, 0xd6, 0x8a, 0xcc, 0xbc, 0xd6, 0x24, 0xe5, 0x4c, 0x67, 0xb3, 0x55, 0x1f, 0x23, -0x6c, 0xae, 0x65, 0x39, 0xb3, 0x20, 0xfe, 0x96, 0xf3, 0xd8, 0x74, 0xe1, 0xb7, 0xd4, 0x69, 0x2e, -0xf5, 0xc9, 0xac, 0xe4, 0xec, 0xb1, 0xbd, 0xd2, 0x10, 0xeb, 0x62, 0x5a, 0xce, 0x58, 0x40, 0xc1, -0xc1, 0x1f, 0x40, 0x64, 0x55, 0x98, 0xbf, 0x9a, 0xec, 0x6e, 0x69, 0x0b, 0x73, 0x50, 0x7b, 0x21, -0x2a, 0xf0, 0x06, 0x6f, 0x76, 0xd2, 0x8a, 0x29, 0xb6, 0x70, 0x8a, 0x26, 0x0c, 0xf3, 0x42, 0x2b, -0x3e, 0x49, 0x71, 0xff, 0x77, 0x60, 0xa0, 0xd9, 0xe8, 0xf8, 0x9c, 0x13, 0x37, 0x0c, 0x88, 0x34, -0x3c, 0x2b, 0x7f, 0x8e, 0xf8, 0x9d, 0xe3, 0xa0, 0x36, 0xa7, 0x6d, 0x31, 0x38, 0x78, 0x96, 0xaf, -0x4c, 0xdd, 0x95, 0x3b, 0x8b, 0xc1, 0x51, 0x52, 0x0c, 0x41, 0x4f, 0x07, 0x44, 0x70, 0xc6, 0x47, -0x0b, 0x8b, 0xe1, 0x0b, 0x73, 0x8a, 0xe1, 0x8b, 0x05, 0xc5, 0x70, 0x5f, 0x5e, 0x31, 0xdc, 0xbf, -0xb0, 0x03, 0x4a, 0xd5, 0x38, 0xbe, 0xcb, 0xd4, 0xd6, 0xd8, 0xfa, 0x44, 0x89, 0xc6, 0x1b, 0x35, -0x89, 0xb8, 0xd9, 0x6b, 0xd2, 0x2e, 0xac, 0x83, 0x87, 0xf8, 0x98, 0xa7, 0x47, 0xf8, 0x16, 0x2e, -0x8b, 0x65, 0xaa, 0x86, 0xc4, 0xca, 0x8b, 0x83, 0x21, 0xaf, 0xfa, 0x12, 0x94, 0x91, 0xe5, 0x86, -0x85, 0x61, 0xb5, 0xad, 0xa8, 0x4e, 0x5d, 0x59, 0x54, 0xaf, 0x2a, 0xd8, 0x57, 0x57, 0x5c, 0x1d, -0xea, 0xca, 0x8d, 0xfb, 0xc8, 0x96, 0x25, 0xce, 0xdb, 0xa3, 0xc9, 0x72, 0x7b, 0x80, 0x04, 0xa1, -0x1d, 0x59, 0x6c, 0xa9, 0xd5, 0xda, 0xed, 0x66, 0xab, 0x32, 0x27, 0x62, 0x1d, 0xea, 0xe9, 0x38, -0xdd, 0xc1, 0x16, 0xab, 0x6f, 0xdb, 0x8b, 0xc1, 0x76, 0x84, 0x38, 0x6a, 0xf7, 0x8f, 0xbe, 0xce, -0xf7, 0x58, 0x56, 0x74, 0xef, 0xe1, 0xf4, 0xed, 0xc9, 0x26, 0x4a, 0x6f, 0x4b, 0xa7, 0xef, 0x99, -0xb7, 0x9f, 0xd2, 0x6f, 0x2e, 0x2d, 0x56, 0x37, 0x07, 0x3a, 0xd4, 0x8d, 0xbe, 0x62, 0x75, 0x4b, -0x69, 0x87, 0xba, 0xe9, 0x70, 0xb1, 0x7a, 0x69, 0x55, 0xf7, 0xa1, 0x62, 0xf5, 0xc3, 0x55, 0xed, -0x07, 0x8b, 0xd5, 0x8f, 0x56, 0xc5, 0x7d, 0x1d, 0x6a, 0xbf, 0xbf, 0x58, 0x6d, 0xdb, 0x1f, 0x5d, -0xf5, 0x68, 0x63, 0x68, 0x7b, 0xfd, 0x48, 0x87, 0x1a, 0x6f, 0x69, 0x68, 0x0c, 0x0e, 0xd5, 0x0e, -0x77, 0xa8, 0xad, 0x2d, 0x35, 0xd8, 0x43, 0x81, 0xc0, 0x72, 0x7f, 0xce, 0xfe, 0x68, 0x4b, 0x85, -0x7d, 0xf1, 0xc2, 0x47, 0xd4, 0x66, 0x8c, 0xd1, 0xbc, 0xaa, 0x04, 0xeb, 0xaf, 0x94, 0x2e, 0x1f, -0xae, 0x5d, 0xe5, 0xc0, 0x94, 0x16, 0x0a, 0x6b, 0x31, 0x0e, 0xd7, 0x36, 0xe7, 0x63, 0xfc, 0x72, -0xd7, 0x7a, 0x4a, 0x55, 0xbe, 0x49, 0x5e, 0xec, 0x5b, 0x47, 0xf1, 0xca, 0x07, 0x1a, 0x36, 0x3b, -0x73, 0x93, 0xea, 0xf0, 0x7a, 0x1c, 0x07, 0x33, 0xdf, 0x82, 0xfb, 0xb5, 0xdb, 0x58, 0xb6, 0xca, -0x2b, 0x6b, 0x52, 0x09, 0xcc, 0x05, 0xbc, 0x52, 0x76, 0x41, 0x53, 0x62, 0x45, 0x8a, 0x17, 0xbf, -0xbb, 0xe0, 0x14, 0x8d, 0xb4, 0x81, 0x39, 0xf9, 0xea, 0x6f, 0xe6, 0x7c, 0xc5, 0xd9, 0xed, 0x20, -0xec, 0x89, 0x70, 0x3c, 0xc5, 0x3c, 0xbc, 0x07, 0xe6, 0x24, 0xac, 0x29, 0x9d, 0x57, 0x24, 0xa7, -0xe0, 0x30, 0xcf, 0x90, 0x25, 0x93, 0xd8, 0x22, 0x87, 0xce, 0xbe, 0xae, 0x37, 0x87, 0xf8, 0x5c, -0x65, 0x2f, 0xae, 0x98, 0xbb, 0xdd, 0xc1, 0xfa, 0xef, 0x4f, 0x37, 0xb8, 0xbf, 0x2e, 0x38, 0x5e, -0x6f, 0x0a, 0x8f, 0x89, 0x70, 0x4d, 0x77, 0x77, 0x79, 0x8a, 0x8f, 0xaf, 0xf6, 0x22, 0xd4, 0x9b, -0xdd, 0x60, 0x02, 0x19, 0xc7, 0xe2, 0x25, 0xe2, 0xc0, 0xb1, 0xb9, 0x49, 0x1e, 0x93, 0x5b, 0x52, -0x2e, 0x64, 0xdb, 0x59, 0xaf, 0x77, 0x49, 0x5a, 0xaf, 0xb7, 0xc3, 0x5e, 0xf4, 0xe9, 0x7a, 0xbd, -0x15, 0x29, 0x3a, 0x4a, 0xd6, 0x44, 0xb5, 0xdc, 0xe6, 0xfc, 0x5f, 0xc9, 0x6d, 0xc5, 0xe7, 0xfb, -0x21, 0x0b, 0x1e, 0x0f, 0xbb, 0x61, 0x15, 0xeb, 0xa5, 0x7f, 0x14, 0x73, 0x2e, 0xcc, 0x05, 0xd2, -0x66, 0xc4, 0x3a, 0xd9, 0xcd, 0x24, 0xb1, 0x0f, 0xab, 0x94, 0x39, 0xac, 0x79, 0x9d, 0x7c, 0x16, -0x78, 0x5c, 0x21, 0x7b, 0xa3, 0x9f, 0xc4, 0x4d, 0xcc, 0x81, 0xb7, 0x6a, 0xfe, 0x1a, 0xac, 0x41, -0x8c, 0xa0, 0x63, 0x21, 0x68, 0xfd, 0xc7, 0x58, 0xba, 0x0f, 0x71, 0x45, 0xc8, 0xc3, 0x1e, 0x21, -0x69, 0x4a, 0x53, 0x29, 0x52, 0x3f, 0xa4, 0x09, 0xda, 0x9f, 0x8b, 0xfd, 0x23, 0xaf, 0xb5, 0x6a, -0x7c, 0x48, 0x88, 0x4d, 0x13, 0xf7, 0x05, 0xae, 0x82, 0xeb, 0x0b, 0x6b, 0x33, 0x36, 0x3a, 0x6e, -0x86, 0xd5, 0x3e, 0x6c, 0xf3, 0xd0, 0x29, 0x4c, 0x6f, 0xda, 0x7e, 0x11, 0xa4, 0xe8, 0x6a, 0xc4, -0x9a, 0x5b, 0xc1, 0x20, 0x6e, 0xa0, 0x05, 0xff, 0xba, 0x35, 0x65, 0xd3, 0xf9, 0xab, 0xa4, 0x0d, -0x5c, 0x70, 0x54, 0xe2, 0xca, 0xcd, 0xc3, 0x3a, 0x14, 0x96, 0xd9, 0x4a, 0x5b, 0xc1, 0xb8, 0xfd, -0xa7, 0x9e, 0xd9, 0x8d, 0x1b, 0xfd, 0x2e, 0x90, 0xca, 0x5b, 0xc1, 0xb4, 0xeb, 0x48, 0xe3, 0x16, -0xb7, 0x1b, 0xa9, 0x08, 0xac, 0xd7, 0x62, 0xc1, 0x1d, 0x68, 0xc4, 0x5d, 0xcb, 0x46, 0xfa, 0x57, -0xc7, 0x70, 0x0d, 0x8d, 0x6d, 0xc7, 0x94, 0x32, 0xce, 0xb2, 0x3d, 0xcc, 0x09, 0x76, 0x81, 0xeb, -0xc9, 0xd2, 0x3a, 0x33, 0x2c, 0x85, 0xd4, 0x60, 0xbd, 0xeb, 0xd4, 0x1b, 0x45, 0xd5, 0xea, 0xa4, -0xc6, 0x2b, 0x78, 0x21, 0xc5, 0x2b, 0x48, 0x16, 0xdd, 0x85, 0x86, 0x64, 0xe6, 0xfd, 0x1b, 0xd5, -0x6a, 0x77, 0x2e, 0xc5, 0xfb, 0x77, 0x73, 0xed, 0x4a, 0x66, 0x37, 0x3e, 0xa3, 0xaf, 0x5d, 0xb8, -0x7a, 0x8e, 0x1b, 0xac, 0x9e, 0x7f, 0xbd, 0x8e, 0xff, 0x41, 0xab, 0xe3, 0x38, 0xd7, 0xf1, 0x7d, -0xe6, 0xbb, 0x8f, 0xa8, 0x1f, 0x61, 0x1d, 0xaf, 0x60, 0x1d, 0xaf, 0x2e, 0x5c, 0x8c, 0xf5, 0xac, -0x63, 0x5b, 0x51, 0x37, 0x16, 0x56, 0xab, 0xd3, 0x5a, 0x3d, 0xc7, 0xd3, 0xf5, 0x9c, 0xa5, 0xab, -0xe7, 0xa4, 0x7a, 0x30, 0x25, 0x9f, 0x40, 0x7c, 0xf1, 0x34, 0x97, 0x33, 0xf2, 0x44, 0xbf, 0x79, -0xc5, 0x21, 0xb8, 0xe8, 0xcb, 0x8a, 0xd6, 0x18, 0x57, 0xb0, 0x94, 0x03, 0x52, 0x34, 0x9a, 0x3d, -0x95, 0xeb, 0x5e, 0x48, 0xf1, 0x48, 0xc6, 0x82, 0xf1, 0x3c, 0x4a, 0x9d, 0x4a, 0x77, 0x85, 0x4e, -0xe8, 0xad, 0x84, 0x2b, 0x39, 0xd8, 0xbe, 0x94, 0x7a, 0x55, 0xdc, 0xd4, 0x57, 0xd2, 0x9d, 0x94, -0x8b, 0xb4, 0x3d, 0x92, 0x16, 0x18, 0xdc, 0x4d, 0x02, 0x15, 0x5e, 0xa8, 0x88, 0x15, 0xb1, 0x5d, -0x97, 0x22, 0x30, 0x2b, 0x56, 0x96, 0x76, 0x39, 0xa4, 0x76, 0x13, 0x85, 0x12, 0x1b, 0x4c, 0x3c, -0x8a, 0x7e, 0xa3, 0x37, 0x8b, 0xef, 0xa4, 0x24, 0x7a, 0x93, 0x4d, 0xbb, 0xfa, 0x21, 0x0f, 0x30, -0x5c, 0xad, 0x4e, 0xc8, 0x5e, 0x4b, 0x8a, 0xa2, 0x5a, 0x64, 0x0c, 0x27, 0xc8, 0x3a, 0x0b, 0xd1, -0x23, 0x54, 0x87, 0xa3, 0x04, 0x0b, 0x0a, 0x29, 0xef, 0x0e, 0xa4, 0xbf, 0x30, 0xd4, 0xad, 0xaf, -0x9b, 0x22, 0xf5, 0xab, 0xb2, 0xa9, 0xee, 0x3d, 0xab, 0x90, 0x81, 0xa7, 0x3b, 0x24, 0x0f, 0xe9, -0x35, 0xa3, 0x3a, 0x95, 0xdd, 0xb6, 0x4e, 0xd3, 0xef, 0x6a, 0x75, 0x5a, 0x4b, 0x76, 0xb1, 0x32, -0x35, 0x4a, 0x3d, 0xa2, 0x66, 0x2e, 0xe0, 0x52, 0xab, 0x12, 0x65, 0xbe, 0x76, 0x90, 0x7c, 0x79, -0x5e, 0x4b, 0xa9, 0x07, 0x4c, 0x08, 0x4f, 0xa3, 0xa4, 0x79, 0x06, 0xdd, 0x46, 0x74, 0x07, 0x59, -0x0b, 0x8d, 0x59, 0xd3, 0x44, 0xf3, 0x19, 0xeb, 0xdb, 0x0b, 0xa4, 0xed, 0xa0, 0x50, 0xe8, 0x86, -0x3f, 0x9e, 0x9a, 0x53, 0x2e, 0xc4, 0xbb, 0x10, 0xc6, 0x16, 0xe2, 0xbe, 0xe5, 0xc3, 0xfd, 0xab, -0x1c, 0xc7, 0x2f, 0x40, 0x52, 0x77, 0x48, 0x1b, 0x1f, 0xcf, 0x48, 0x63, 0xb2, 0xe5, 0x9c, 0x82, -0x18, 0xf1, 0x54, 0x19, 0xbb, 0x11, 0x1a, 0x76, 0x07, 0x93, 0x06, 0x87, 0x1b, 0xf2, 0xfe, 0xcf, -0x9e, 0x81, 0x75, 0x88, 0xf5, 0x19, 0x71, 0x56, 0x15, 0x30, 0x3c, 0x99, 0x1b, 0xdb, 0x43, 0x71, -0x08, 0x62, 0xf6, 0x04, 0xbb, 0x49, 0x3a, 0xbd, 0xc0, 0xed, 0x82, 0xbc, 0x0f, 0xfe, 0x72, 0xc3, -0x3a, 0x4f, 0x58, 0x31, 0x06, 0xfa, 0x49, 0xc3, 0xd9, 0x08, 0x62, 0xc7, 0x3d, 0x66, 0xd2, 0xcf, -0xdc, 0x67, 0x38, 0xb4, 0x35, 0x01, 0x52, 0x4d, 0x77, 0x68, 0x64, 0x2b, 0xd9, 0x37, 0x07, 0xd6, -0xa9, 0x8f, 0x38, 0xfc, 0x43, 0x1a, 0x3f, 0x25, 0xaf, 0x1f, 0x7b, 0x44, 0xb3, 0xf4, 0x3d, 0xe1, -0x35, 0xa6, 0xa5, 0x23, 0x6a, 0x30, 0x9f, 0xad, 0x9c, 0xcf, 0xd6, 0x78, 0x39, 0xe6, 0x43, 0xf2, -0x82, 0xd3, 0x98, 0xcf, 0x40, 0xdc, 0xcd, 0xfa, 0x9f, 0x1f, 0x3a, 0x4d, 0x39, 0x84, 0x35, 0x79, -0xb9, 0x76, 0x2d, 0x7d, 0x5a, 0xba, 0x22, 0x9c, 0xdd, 0x6f, 0x50, 0x8c, 0xe1, 0xea, 0x70, 0x4d, -0x4f, 0xf0, 0xe8, 0x33, 0xe3, 0x9b, 0x93, 0x7f, 0x56, 0x03, 0xa3, 0xcf, 0xbc, 0xbf, 0x69, 0xc3, -0x40, 0x52, 0x1e, 0x7d, 0x66, 0x6c, 0x00, 0x7f, 0x6d, 0x6f, 0x0d, 0xfc, 0xf3, 0xb6, 0x0d, 0xcf, -0x4c, 0x6c, 0x46, 0x88, 0x7c, 0x5a, 0xce, 0xe9, 0x0e, 0x8d, 0x12, 0x27, 0x37, 0xc0, 0x71, 0x9c, -0x2d, 0x05, 0x6c, 0xf9, 0xec, 0xa4, 0x66, 0x1f, 0xb6, 0x48, 0xda, 0xe4, 0x80, 0xe5, 0x83, 0x58, -0xda, 0x49, 0x7b, 0xb0, 0xe9, 0x5b, 0x88, 0x3b, 0x9e, 0x4e, 0x66, 0x91, 0x84, 0x98, 0x5c, 0x75, -0x93, 0xad, 0xf3, 0x4d, 0xcb, 0xbf, 0xc5, 0x61, 0x69, 0x5b, 0xe7, 0x76, 0x6a, 0xf3, 0x6a, 0x28, -0x28, 0x6a, 0x50, 0xc7, 0x52, 0x69, 0x70, 0x1f, 0x3e, 0x99, 0xe2, 0x97, 0xed, 0xb6, 0xa6, 0x7b, -0xa2, 0x4a, 0xbd, 0xe4, 0x2f, 0x06, 0xfb, 0x42, 0xb2, 0x79, 0xdb, 0x01, 0xce, 0x85, 0x51, 0xf5, -0x8a, 0x4f, 0x5a, 0x16, 0xa4, 0x73, 0xeb, 0x53, 0xa3, 0x08, 0x0b, 0xaf, 0xfa, 0xcc, 0xe8, 0x2b, -0x86, 0x92, 0x53, 0x41, 0xe2, 0x2f, 0xbb, 0xb9, 0xcd, 0x7c, 0x0a, 0x31, 0xc6, 0x5c, 0x69, 0x67, -0x48, 0xdf, 0x2b, 0xe9, 0x12, 0xe1, 0x56, 0x4c, 0x88, 0x56, 0x50, 0xed, 0xb8, 0xee, 0x13, 0x33, -0x6b, 0x88, 0xad, 0xba, 0xc4, 0x75, 0x9a, 0x48, 0xd5, 0x29, 0xcd, 0x6d, 0x7b, 0x12, 0xa1, 0xc6, -0x18, 0xe2, 0x33, 0xb9, 0xea, 0x19, 0xb6, 0x5a, 0xf1, 0x0e, 0xe2, 0x25, 0x67, 0x4b, 0xa9, 0x8e, -0x21, 0xf5, 0x9c, 0x56, 0xc7, 0x71, 0xaa, 0x1f, 0xd6, 0xee, 0x82, 0x0f, 0x6b, 0x86, 0x90, 0xfa, -0x7d, 0x6c, 0xc7, 0x69, 0x6c, 0xb5, 0x5f, 0x1b, 0xd3, 0x93, 0xde, 0xd9, 0x5a, 0xfd, 0x6e, 0x29, -0x87, 0x64, 0x68, 0x7b, 0x0c, 0xb8, 0x4a, 0x5d, 0xc9, 0x87, 0x34, 0xf9, 0x19, 0xc6, 0xd5, 0x6f, -0x3b, 0x1f, 0x8c, 0xe1, 0xb0, 0xe2, 0x88, 0xd5, 0x24, 0xe4, 0x99, 0x71, 0x6f, 0x1d, 0x79, 0xb9, -0x43, 0x37, 0xb3, 0x8f, 0xf9, 0x24, 0x86, 0x61, 0x2f, 0x6b, 0xe7, 0x25, 0x6c, 0x05, 0x15, 0x57, -0x62, 0xd2, 0xee, 0x85, 0x1e, 0xc4, 0x67, 0x7b, 0x11, 0xd6, 0xf4, 0xe3, 0xba, 0xde, 0xe0, 0xf7, -0xc2, 0x20, 0xae, 0xed, 0x66, 0x67, 0x63, 0xec, 0x07, 0xd0, 0x1a, 0x37, 0x93, 0xd5, 0xcc, 0x04, -0x18, 0x5f, 0xf1, 0x99, 0x17, 0x45, 0xa1, 0x69, 0x51, 0x08, 0x1e, 0x0d, 0xcc, 0x5e, 0x54, 0x0b, -0x2b, 0x4b, 0xab, 0x16, 0x55, 0xc1, 0x63, 0x2c, 0x7d, 0x0b, 0xb0, 0x11, 0x53, 0x75, 0x96, 0x19, -0x76, 0x86, 0x0f, 0xd4, 0x76, 0x82, 0xb1, 0xb7, 0x62, 0xf6, 0x8b, 0xe1, 0x91, 0x6a, 0x74, 0x75, -0x96, 0x7b, 0xa1, 0xcd, 0x0f, 0x3b, 0x22, 0x87, 0xc3, 0x1d, 0x60, 0x54, 0xfc, 0x35, 0x3b, 0x8e, -0x0e, 0xc7, 0x30, 0x7c, 0xc5, 0x48, 0x55, 0x97, 0x54, 0x66, 0x88, 0xfe, 0x74, 0x38, 0xdc, 0x25, -0x91, 0x2e, 0x05, 0xb2, 0xc7, 0x4a, 0x94, 0x12, 0xe2, 0x0f, 0xad, 0x63, 0x83, 0x58, 0xa7, 0xf6, -0x53, 0xeb, 0x0f, 0xc7, 0xda, 0x25, 0x7f, 0x8d, 0x3f, 0xf6, 0xc2, 0x11, 0x97, 0xa5, 0x71, 0xc3, -0xa1, 0xda, 0x2e, 0xa9, 0x62, 0x76, 0xf4, 0x67, 0x2f, 0xae, 0xb7, 0x47, 0x67, 0xd8, 0x5a, 0x66, -0xad, 0x09, 0x0a, 0x18, 0x25, 0xd6, 0xa8, 0x77, 0xe8, 0x77, 0x4a, 0xc3, 0x36, 0x96, 0x51, 0xb9, -0x2f, 0x61, 0x8f, 0x85, 0x13, 0x73, 0x7d, 0x58, 0x83, 0x48, 0xb0, 0x14, 0xeb, 0x17, 0x09, 0x61, -0x09, 0xbb, 0x11, 0xaf, 0x6e, 0x8a, 0x8e, 0x0a, 0x2b, 0x9a, 0x9f, 0xec, 0x2d, 0x5d, 0x03, 0xb9, -0xa5, 0x45, 0x60, 0xf3, 0x19, 0xc6, 0x10, 0x63, 0x5f, 0x14, 0x84, 0x26, 0x5f, 0xed, 0xd8, 0xc7, -0xf0, 0x28, 0xb6, 0xf5, 0xd1, 0x53, 0x5d, 0xb0, 0x12, 0xdb, 0xbb, 0xf2, 0xd4, 0xc7, 0xf0, 0x18, -0xb6, 0xf8, 0x31, 0x2d, 0x57, 0x92, 0x85, 0x0d, 0xe3, 0xfb, 0x2c, 0xb7, 0x59, 0x7a, 0x3b, 0x4a, -0x6d, 0x86, 0xb7, 0x4e, 0x1d, 0xf1, 0x9b, 0xf7, 0x93, 0xeb, 0xa8, 0xaf, 0x0b, 0xda, 0x4a, 0xa3, -0xa7, 0x46, 0x47, 0x6a, 0x3b, 0x00, 0x0e, 0x9c, 0x8a, 0x0e, 0x87, 0x30, 0xf4, 0xfb, 0x6c, 0x85, -0x69, 0x52, 0x58, 0xb5, 0x84, 0x97, 0xe5, 0x20, 0xd5, 0x83, 0x75, 0x4d, 0x48, 0xb8, 0x27, 0x40, -0x56, 0x03, 0xce, 0xd4, 0x41, 0x84, 0x3b, 0xe6, 0x44, 0xdf, 0x92, 0x8f, 0xa1, 0x8e, 0x6c, 0x34, -0x90, 0x14, 0x92, 0x38, 0xe1, 0xc1, 0xda, 0xaf, 0xc5, 0x76, 0xf4, 0x3d, 0xdf, 0xf8, 0x1c, 0xe2, -0x09, 0xcf, 0xe3, 0x8e, 0x8f, 0xbf, 0x26, 0x79, 0xa9, 0x3d, 0xc6, 0xad, 0x38, 0xac, 0x59, 0xec, -0x08, 0x72, 0xfa, 0x0a, 0xc4, 0x6f, 0x53, 0x79, 0x9b, 0x39, 0xc4, 0xc5, 0x2d, 0x2c, 0x82, 0xdc, -0x9b, 0xd2, 0xc7, 0xec, 0xd8, 0x1f, 0x5c, 0xaf, 0xdd, 0xb0, 0x06, 0x06, 0x60, 0xae, 0xcc, 0xf9, -0x4d, 0x5d, 0x94, 0x97, 0xd0, 0x38, 0xd0, 0x28, 0x78, 0xda, 0x0d, 0xc7, 0x89, 0x73, 0xcd, 0x4b, -0xb2, 0x3b, 0x9e, 0x00, 0xb6, 0x78, 0x51, 0x0d, 0x44, 0x90, 0x28, 0x6b, 0x5b, 0xb4, 0x18, 0x6a, -0xbc, 0x75, 0x10, 0x55, 0x40, 0xea, 0xc6, 0x79, 0xe3, 0x09, 0x78, 0x20, 0x17, 0xeb, 0xf8, 0xd8, -0x70, 0x4d, 0x07, 0x48, 0x4d, 0x7e, 0x0f, 0xe4, 0x63, 0x3f, 0x3c, 0xba, 0x3f, 0x8a, 0xbe, 0x98, -0xbf, 0x9d, 0x25, 0xa9, 0x57, 0x8e, 0xc4, 0xd0, 0x17, 0x28, 0xf3, 0x40, 0x5e, 0x29, 0xf6, 0xf6, -0x01, 0xec, 0x1f, 0xa9, 0xa4, 0xdc, 0x7c, 0x38, 0xda, 0x25, 0x95, 0x9b, 0x76, 0x75, 0x41, 0x64, -0x38, 0x82, 0x21, 0x85, 0xc3, 0x61, 0x1c, 0x77, 0x08, 0x84, 0x77, 0x7f, 0x0c, 0x11, 0xec, 0xd3, -0xfa, 0x4e, 0x90, 0xcc, 0x15, 0xb3, 0x2b, 0x2d, 0x6f, 0xd0, 0x0c, 0xb0, 0xbc, 0xd8, 0x05, 0x35, -0x23, 0xd5, 0x1d, 0x60, 0xb8, 0x3a, 0x52, 0xd5, 0x8e, 0x73, 0x68, 0x27, 0xfa, 0x29, 0x27, 0xc3, -0x05, 0xaa, 0x05, 0x59, 0xf3, 0x4e, 0xac, 0x7c, 0x0a, 0x2a, 0x8b, 0x60, 0xae, 0x79, 0x16, 0xcd, -0x4d, 0xc3, 0xc9, 0xc8, 0xdf, 0xc6, 0x5d, 0x15, 0x6b, 0x90, 0x62, 0xbb, 0x3b, 0x32, 0xe8, 0x0e, -0xbf, 0xf8, 0x01, 0x78, 0xca, 0x71, 0xd4, 0xb1, 0xee, 0xbe, 0xc8, 0x0f, 0x70, 0x7f, 0xed, 0x02, -0xdf, 0xae, 0x0f, 0xa0, 0x84, 0xfc, 0x4a, 0xbe, 0x3f, 0xe6, 0xb0, 0x3c, 0x75, 0xcf, 0xd1, 0x67, -0xdc, 0xe1, 0xff, 0x72, 0xa2, 0xbc, 0x46, 0x17, 0xc7, 0xe3, 0x25, 0x4e, 0xbc, 0xa0, 0x62, 0x23, -0xbd, 0x27, 0xe8, 0x36, 0x42, 0x90, 0xce, 0xfc, 0xfe, 0xcb, 0xdf, 0x2f, 0xaa, 0x06, 0xff, 0xa1, -0xda, 0x76, 0x23, 0xce, 0x10, 0xff, 0xa2, 0x08, 0x94, 0x1d, 0x8c, 0xa2, 0x3b, 0x0a, 0x65, 0xb8, -0x3a, 0xca, 0xb1, 0x86, 0x46, 0x9c, 0x41, 0xe5, 0x8b, 0xea, 0xa1, 0x62, 0xb8, 0x1e, 0xdd, 0x41, -0xa8, 0xc0, 0x5e, 0xa9, 0x18, 0xfa, 0x18, 0xca, 0xb0, 0x07, 0xca, 0xb7, 0x7f, 0x0c, 0xfe, 0x99, -0x18, 0x5b, 0xc3, 0x36, 0xa4, 0x01, 0x03, 0xae, 0x35, 0x6c, 0x7f, 0xca, 0xe8, 0xc3, 0x5e, 0x1c, -0xee, 0x82, 0x32, 0x9c, 0x47, 0xd7, 0xb0, 0xd7, 0x72, 0x0f, 0x60, 0x5a, 0x9c, 0x4b, 0x17, 0x71, -0x77, 0xcc, 0x1b, 0xe9, 0x22, 0xdd, 0x61, 0xf0, 0x2e, 0xf6, 0xb4, 0x6d, 0x3f, 0xe6, 0x85, 0xe1, -0xa7, 0x02, 0x18, 0xb6, 0xbf, 0xbe, 0x4b, 0x0a, 0x84, 0x03, 0x64, 0x4b, 0xbc, 0x7c, 0x24, 0xd2, -0x2e, 0x95, 0x1b, 0x7c, 0x91, 0xe7, 0xde, 0x72, 0x99, 0x1b, 0x37, 0xf8, 0x31, 0xa7, 0x03, 0x31, -0x5c, 0x6f, 0x55, 0xfe, 0x18, 0x61, 0x13, 0xc3, 0xd5, 0xed, 0x52, 0x05, 0xf8, 0xaa, 0x9f, 0x3b, -0xe1, 0x36, 0x37, 0x3e, 0xcd, 0xfa, 0xb2, 0xb4, 0x3a, 0x3c, 0xf7, 0x03, 0x08, 0x70, 0x4f, 0xd6, -0xb0, 0xfd, 0xc9, 0xb9, 0xac, 0xed, 0xa3, 0x3b, 0x32, 0x1a, 0xb7, 0xfb, 0x71, 0x26, 0x45, 0x8f, -0x44, 0x06, 0xe5, 0xf0, 0x10, 0x59, 0x3f, 0x37, 0x97, 0xe1, 0xac, 0x22, 0xdb, 0xa2, 0xf6, 0xaa, -0xed, 0x64, 0x07, 0x7d, 0xb6, 0x92, 0xe3, 0x43, 0xec, 0x99, 0x34, 0x2a, 0xee, 0x18, 0xe0, 0x70, -0xec, 0x35, 0x85, 0x64, 0xa8, 0x9a, 0x49, 0xf7, 0x15, 0x69, 0xa4, 0x90, 0x73, 0xc6, 0xbe, 0x8d, -0x33, 0xcb, 0x77, 0x6a, 0x33, 0x86, 0x06, 0xc7, 0x10, 0xc6, 0x9c, 0x42, 0x08, 0x73, 0x7a, 0xeb, -0xdb, 0x9b, 0x75, 0x6b, 0xba, 0x0b, 0xe9, 0x56, 0xb6, 0xa0, 0x8e, 0xd0, 0x27, 0x90, 0x30, 0x1f, -0x14, 0xda, 0x52, 0xaf, 0xf0, 0x38, 0x2c, 0xc7, 0x51, 0xfe, 0x01, 0x78, 0xe2, 0x30, 0xb5, 0x99, -0x74, 0x26, 0x8a, 0x55, 0xff, 0xdb, 0x41, 0xe6, 0x5a, 0x4d, 0xdb, 0xc4, 0xc5, 0x95, 0xde, 0x97, -0x5a, 0x1d, 0xb4, 0xbe, 0x26, 0x5f, 0x55, 0x60, 0xca, 0xce, 0x78, 0x9b, 0x46, 0xbf, 0xb3, 0x5c, -0xe1, 0x1a, 0x60, 0xed, 0xcd, 0x09, 0xe5, 0x27, 0xa7, 0xe2, 0x2b, 0x95, 0x55, 0xc4, 0xbf, 0x6b, -0x47, 0xac, 0x52, 0x1e, 0x98, 0x17, 0x62, 0xbb, 0x58, 0x00, 0xd6, 0x44, 0x0e, 0xd9, 0xa3, 0x19, -0x6b, 0x25, 0x9b, 0x34, 0x5f, 0x0a, 0x6a, 0xd6, 0xb7, 0xac, 0x09, 0x1b, 0x86, 0x9a, 0x30, 0xd4, -0x34, 0xb4, 0x1a, 0x24, 0x0c, 0x37, 0x95, 0xde, 0xfb, 0xcb, 0x06, 0x0c, 0x93, 0x7e, 0xd1, 0x0a, -0x12, 0xba, 0x49, 0x13, 0x98, 0xf0, 0x69, 0x7c, 0x98, 0x8e, 0xaf, 0x3b, 0x91, 0x1a, 0x62, 0x9b, -0x5c, 0xd6, 0xf8, 0x4e, 0xe5, 0x23, 0xcd, 0x6e, 0x8a, 0x1d, 0x71, 0x11, 0x2b, 0xf1, 0x9e, 0x3b, -0x8a, 0x59, 0x52, 0xf4, 0x3a, 0x3e, 0x37, 0xe4, 0xaa, 0x6e, 0xb3, 0xd0, 0x8e, 0xba, 0x2c, 0x88, -0x3b, 0xc9, 0x24, 0xfa, 0x41, 0xe7, 0x9f, 0x46, 0x5c, 0x8e, 0xb0, 0xca, 0x62, 0x20, 0x7b, 0x7a, -0x1e, 0xb1, 0xfa, 0xe3, 0x36, 0x92, 0x11, 0xb2, 0x23, 0x65, 0xe7, 0x20, 0x3e, 0x5f, 0x23, 0xf1, -0xf0, 0x46, 0xac, 0x9a, 0x45, 0x23, 0xa6, 0x3a, 0x84, 0x2c, 0x3b, 0xe1, 0x41, 0x58, 0xa6, 0xcd, -0x8d, 0xe5, 0x79, 0x8a, 0xa1, 0x00, 0xcb, 0x95, 0xcb, 0x3b, 0x60, 0x6e, 0x11, 0x42, 0x5f, 0xf5, -0xb2, 0x63, 0x19, 0x63, 0x59, 0x87, 0xae, 0xc4, 0x4a, 0x10, 0x87, 0x63, 0x99, 0x4a, 0xc5, 0x2b, -0x89, 0xd2, 0x90, 0xe6, 0x20, 0x8c, 0x93, 0x79, 0x1d, 0x10, 0xda, 0xb8, 0x90, 0x0e, 0xbe, 0xf1, -0xc3, 0x9f, 0x76, 0xe2, 0xd4, 0x45, 0xd7, 0xf4, 0x0f, 0x7f, 0x8a, 0x6b, 0x30, 0x82, 0xae, 0xeb, -0x3f, 0x3c, 0x8a, 0x61, 0x15, 0xe8, 0x9a, 0xfc, 0xe1, 0x51, 0x0c, 0xf3, 0x79, 0xa5, 0xf2, 0x3a, -0x1c, 0xa5, 0x2c, 0x9c, 0x61, 0xb3, 0x38, 0x17, 0x13, 0xf1, 0xd1, 0xfe, 0x0b, 0x69, 0x9e, 0x94, -0x71, 0x96, 0xe7, 0x62, 0x89, 0x96, 0xfa, 0x43, 0xbf, 0xd9, 0x43, 0xa5, 0x44, 0xdb, 0xc0, 0xc6, -0x38, 0xe4, 0x0a, 0xd2, 0x1e, 0x83, 0x54, 0x8d, 0xad, 0xea, 0x37, 0x51, 0x40, 0xca, 0xc6, 0x53, -0xd6, 0x06, 0xb9, 0x8b, 0x7f, 0x5b, 0x0e, 0x3b, 0x2f, 0x32, 0x7f, 0x76, 0x1e, 0xc2, 0xcb, 0x91, -0x00, 0xd2, 0x74, 0x7f, 0xfd, 0x73, 0x9c, 0xf9, 0xaf, 0x96, 0xba, 0x70, 0x1e, 0xbe, 0x39, 0xf2, -0x2c, 0xba, 0x5f, 0x2c, 0x43, 0x3c, 0x2c, 0xfa, 0xd3, 0x03, 0xdf, 0x22, 0x8b, 0x97, 0xa4, 0xd9, -0x14, 0xdd, 0xcf, 0x76, 0x10, 0x74, 0x0d, 0x26, 0xdc, 0x48, 0xd5, 0xdf, 0x88, 0x8e, 0x0e, 0x53, -0xbc, 0x41, 0x74, 0x4f, 0x93, 0xbb, 0x63, 0x2d, 0xba, 0xae, 0xa3, 0xeb, 0x5b, 0x9d, 0xed, 0xe8, -0x9a, 0x24, 0x57, 0xc7, 0x2a, 0xb2, 0x64, 0x13, 0xcf, 0xd5, 0xea, 0x4e, 0xb6, 0xad, 0xb8, 0xee, -0x8a, 0xb0, 0x50, 0x27, 0x56, 0x44, 0x45, 0x64, 0x34, 0x51, 0x21, 0x62, 0x7c, 0xe7, 0x4d, 0xef, -0x5d, 0xcf, 0xbf, 0x85, 0xb8, 0xd3, 0x3d, 0xa3, 0xeb, 0xa2, 0x7f, 0x62, 0x06, 0x8c, 0xed, 0x42, -0x08, 0xce, 0x2d, 0xbd, 0x5a, 0xca, 0x2d, 0xcd, 0xd5, 0xa8, 0x6c, 0x24, 0x48, 0x49, 0x8a, 0x17, -0xb1, 0x49, 0x95, 0x5a, 0x2e, 0x38, 0x79, 0x2f, 0x1f, 0xc1, 0xfd, 0x9a, 0xb8, 0x76, 0x31, 0x94, -0xf7, 0xe9, 0xe3, 0xda, 0xb8, 0x8d, 0x31, 0xfe, 0x5a, 0x2c, 0x6c, 0x3d, 0xd2, 0x3c, 0x41, 0x1c, -0xb6, 0xa0, 0x92, 0x30, 0x0f, 0xc4, 0x3a, 0xd4, 0x73, 0xf6, 0x70, 0xd1, 0x6a, 0x1c, 0xb7, 0x33, -0xce, 0x47, 0x34, 0x3b, 0x05, 0x0d, 0x88, 0xd7, 0x9c, 0xc2, 0x7e, 0x91, 0x14, 0xd3, 0x9f, 0xbf, -0x85, 0x78, 0xc1, 0x29, 0x6d, 0x87, 0x7e, 0x5b, 0x58, 0x69, 0x62, 0x09, 0xec, 0x10, 0xf1, 0x3e, -0x83, 0x8b, 0xa9, 0xc8, 0x62, 0xf5, 0x0c, 0x9d, 0x21, 0x4e, 0x75, 0x6b, 0xa3, 0xfa, 0x18, 0x8e, -0xdb, 0x15, 0xd6, 0x48, 0x49, 0x90, 0x7b, 0x67, 0x79, 0xb1, 0x7a, 0x2d, 0x80, 0x73, 0xf6, 0x70, -0x04, 0xa1, 0xf0, 0xa6, 0x32, 0xec, 0x01, 0xa2, 0x56, 0x47, 0xaa, 0xf0, 0x5b, 0x5f, 0x05, 0xd6, -0xb7, 0xb4, 0xf1, 0x10, 0x41, 0xf1, 0xce, 0x03, 0x08, 0x9b, 0x4b, 0xab, 0x10, 0xfb, 0xb9, 0x7e, -0x38, 0xda, 0x2e, 0x05, 0xcc, 0x48, 0xfd, 0xdd, 0x18, 0x21, 0xf8, 0x62, 0x40, 0xba, 0x6a, 0x72, -0x98, 0xe0, 0x10, 0x2c, 0x8c, 0xa8, 0xd3, 0x34, 0x3f, 0x86, 0x4e, 0xd9, 0x3b, 0xd4, 0x53, 0xbf, -0x3c, 0x4e, 0xf3, 0x67, 0x08, 0x69, 0xd6, 0xff, 0x7d, 0x3c, 0xd6, 0xa1, 0x9e, 0x4b, 0x98, 0xe4, -0xb0, 0x6b, 0x0f, 0xc9, 0x6a, 0x80, 0xcb, 0xb7, 0xd8, 0x6b, 0xd6, 0x66, 0x78, 0x21, 0xd7, 0x90, -0xb4, 0x11, 0x59, 0xd1, 0x97, 0x87, 0x2b, 0xbd, 0x9f, 0x65, 0x72, 0x89, 0xeb, 0xfb, 0x2a, 0xc5, -0xa5, 0xd9, 0xf2, 0x71, 0x3b, 0xb5, 0x25, 0xba, 0x46, 0x68, 0xa3, 0x9b, 0x9c, 0x43, 0xd8, 0x57, -0x00, 0x21, 0x15, 0xee, 0x7b, 0x9e, 0x72, 0xd3, 0x99, 0xc6, 0x5d, 0xa1, 0x0a, 0x84, 0x53, 0x08, -0xc9, 0x4a, 0xca, 0xb2, 0xdf, 0xc6, 0x1d, 0x70, 0x67, 0xf0, 0x2c, 0xee, 0x81, 0xbb, 0x43, 0xef, -0xe0, 0x2e, 0xf8, 0x62, 0x10, 0xa1, 0x80, 0x99, 0x31, 0x30, 0x28, 0x8d, 0x10, 0x56, 0xe8, 0xab, -0x42, 0x9a, 0xe0, 0x52, 0xe9, 0x62, 0x74, 0x23, 0x5e, 0x61, 0xe8, 0xab, 0x74, 0x43, 0xfe, 0x1b, -0xd8, 0x62, 0x43, 0x27, 0xb6, 0x3d, 0x97, 0xf0, 0x1a, 0x43, 0x33, 0x69, 0x41, 0xa2, 0xdd, 0xca, -0xf0, 0x28, 0xd2, 0xdf, 0xb6, 0xc3, 0xd8, 0x57, 0x86, 0x86, 0xd2, 0x08, 0xc2, 0x7e, 0xa9, 0x34, -0x4a, 0xbd, 0xe0, 0xab, 0x22, 0x0c, 0xc7, 0x17, 0x42, 0xbc, 0xf0, 0x46, 0xa9, 0x69, 0xb8, 0x86, -0xac, 0xa8, 0x12, 0x05, 0xef, 0xcb, 0x7e, 0x03, 0x7b, 0xc5, 0x37, 0x8b, 0x56, 0x31, 0xb6, 0xfa, -0xfd, 0x44, 0xfb, 0xc2, 0x0e, 0xf5, 0x9a, 0xfa, 0x76, 0x65, 0xb1, 0xfa, 0xf6, 0x1b, 0x94, 0x8b, -0x05, 0xfd, 0x57, 0xd4, 0xb3, 0xc3, 0x1d, 0xea, 0x59, 0x9c, 0xb3, 0x93, 0xe8, 0xbb, 0xaa, 0xbe, -0x8b, 0x5f, 0xdf, 0x7d, 0x83, 0xb0, 0x89, 0x4b, 0xe8, 0xba, 0xfc, 0x06, 0xe1, 0x13, 0xe3, 0xb4, -0x1b, 0x96, 0x2e, 0xa6, 0xb2, 0x30, 0xec, 0xec, 0x1b, 0xb8, 0x87, 0xfa, 0x16, 0x53, 0x69, 0x23, -0x1d, 0xea, 0xbb, 0x5d, 0x46, 0xb2, 0xcd, 0x4d, 0xe5, 0x61, 0x3e, 0x6f, 0x77, 0x19, 0x71, 0x56, -0x93, 0x44, 0xd3, 0x34, 0xcb, 0x62, 0xbf, 0x8d, 0xfd, 0xfe, 0xf6, 0x73, 0x88, 0x7d, 0x62, 0x9c, -0x1b, 0xa5, 0xa1, 0xe7, 0x3f, 0x54, 0x2f, 0x11, 0x96, 0x10, 0x97, 0x79, 0x14, 0x8c, 0xae, 0xd7, -0xb1, 0xbf, 0xa9, 0x5f, 0x8b, 0xd5, 0x71, 0xfd, 0x18, 0x28, 0x8d, 0x62, 0x2f, 0x78, 0x2a, 0x7b, -0xf4, 0x99, 0xf8, 0x2a, 0x2d, 0xee, 0x5e, 0xb0, 0x62, 0xef, 0xd8, 0x7c, 0xb3, 0xc8, 0x1a, 0xf3, -0xd0, 0x62, 0x6a, 0xc5, 0xbb, 0x41, 0xa4, 0xaa, 0xaf, 0x63, 0x68, 0xee, 0xf6, 0xc5, 0x58, 0x83, -0x1b, 0xbf, 0x40, 0x38, 0xf0, 0x5f, 0x11, 0x3e, 0xdc, 0x92, 0x27, 0xd9, 0x91, 0x58, 0xbb, 0x0b, -0x68, 0x2e, 0x44, 0xff, 0x64, 0x13, 0xa4, 0xc6, 0xf7, 0x37, 0xbb, 0x4f, 0x0f, 0xd0, 0xf8, 0x6a, -0x12, 0xdd, 0x30, 0x3d, 0x98, 0x1a, 0xe5, 0x0f, 0x5f, 0xc2, 0x35, 0x22, 0xf1, 0xd9, 0x3b, 0xad, -0x90, 0x3d, 0xda, 0x0a, 0x99, 0x88, 0xfe, 0x73, 0x00, 0x68, 0x85, 0x20, 0x44, 0x73, 0x21, 0x64, -0xf3, 0x95, 0x23, 0xfe, 0x4d, 0x56, 0xdb, 0x30, 0xc5, 0x06, 0x39, 0x78, 0x2f, 0x9d, 0xe2, 0x7c, -0x0e, 0xe9, 0x71, 0x9b, 0xfa, 0x11, 0xeb, 0x1e, 0xb8, 0x88, 0x6f, 0x87, 0x7a, 0xe5, 0x8b, 0xd5, -0x48, 0xfb, 0xeb, 0x2c, 0xd0, 0xe1, 0x7b, 0xae, 0x8a, 0xfd, 0x0d, 0x76, 0xac, 0x6b, 0x56, 0xf8, -0x2f, 0xd8, 0xae, 0x33, 0xd9, 0x9d, 0xba, 0x18, 0xed, 0xfb, 0xb8, 0x99, 0x6a, 0x2d, 0xb8, 0x24, -0x27, 0x49, 0x97, 0x88, 0xa7, 0xee, 0x43, 0x08, 0x68, 0x16, 0xb0, 0xf8, 0x54, 0x45, 0xd8, 0x63, -0xc5, 0x5a, 0x38, 0xb0, 0x06, 0x1e, 0xac, 0x81, 0x3b, 0x36, 0x18, 0x67, 0x0b, 0xb1, 0x4c, 0x2d, -0xe6, 0x6a, 0x76, 0xb4, 0xaf, 0x17, 0xb5, 0x42, 0x01, 0x42, 0xe8, 0xbb, 0x1f, 0x19, 0x14, 0x16, -0x96, 0x2f, 0x8d, 0xcf, 0xa8, 0xe1, 0x04, 0xd7, 0xf0, 0x02, 0x51, 0x08, 0x5c, 0xb7, 0xcb, 0x5c, -0xb7, 0x2b, 0x5c, 0xb7, 0xab, 0x5c, 0xb7, 0x6b, 0x33, 0xea, 0x76, 0x21, 0xda, 0xf7, 0x91, 0x9b, -0xe6, 0xbe, 0xb8, 0x95, 0xfd, 0x64, 0x4c, 0xd4, 0xcd, 0x58, 0x28, 0xce, 0xe2, 0xc5, 0x1e, 0x53, -0xce, 0xbd, 0x83, 0xf5, 0x72, 0x61, 0xbd, 0x9c, 0xa2, 0x67, 0x2e, 0xb5, 0xc9, 0xc1, 0x79, 0x1d, -0x64, 0xd3, 0xf3, 0xde, 0x0e, 0xb8, 0x1f, 0x3e, 0xc7, 0x92, 0x96, 0xd7, 0x99, 0xc2, 0xb9, 0xc1, -0x25, 0x4f, 0x72, 0xc9, 0xba, 0x9e, 0x40, 0x0a, 0xaa, 0xef, 0xc3, 0x70, 0xa6, 0x1f, 0x3e, 0x69, -0xd6, 0xfa, 0xa1, 0x50, 0x9c, 0x6c, 0xf1, 0x28, 0x78, 0x59, 0x77, 0xb8, 0x0f, 0x71, 0x0f, 0x37, -0x62, 0x18, 0xda, 0x28, 0x7c, 0x80, 0xb9, 0xf8, 0xaa, 0xbd, 0x66, 0x91, 0x0f, 0xf3, 0x92, 0xea, -0x1f, 0xca, 0xab, 0x80, 0xf3, 0x7a, 0x0f, 0x02, 0xc2, 0x1e, 0xb6, 0x37, 0xa7, 0xac, 0x9a, 0x4f, -0x49, 0x8c, 0x29, 0xeb, 0x7b, 0xb8, 0xfe, 0x67, 0x58, 0xdc, 0x13, 0x16, 0xa9, 0x2b, 0x25, 0x6f, -0x4e, 0x69, 0x0d, 0x7e, 0xcb, 0xd6, 0xc5, 0xe4, 0x78, 0x0b, 0x5d, 0x34, 0x87, 0xea, 0xde, 0x0b, -0xf6, 0x0b, 0xde, 0x01, 0x6f, 0x4e, 0xf8, 0x2f, 0x2a, 0x82, 0x9a, 0x9d, 0x42, 0x4b, 0x2a, 0xb7, -0x85, 0xda, 0xfd, 0x79, 0x4a, 0x47, 0x13, 0x96, 0x1b, 0xd6, 0xbe, 0xa7, 0x73, 0xd2, 0xac, 0x03, -0xb2, 0x54, 0x38, 0xc9, 0x73, 0xc3, 0xf9, 0x90, 0x11, 0xce, 0x07, 0xcf, 0xe1, 0x73, 0x06, 0x9f, -0xb3, 0x70, 0xfe, 0x6b, 0x66, 0x38, 0xdf, 0x98, 0x07, 0xe7, 0x1f, 0xd9, 0x05, 0xe7, 0x13, 0xa7, -0xe0, 0x7c, 0x24, 0x1f, 0xce, 0xff, 0x67, 0x07, 0x9c, 0x6f, 0x3e, 0x8e, 0x4f, 0x3b, 0x9c, 0x0f, -0x6f, 0x85, 0xf3, 0x2b, 0xca, 0x31, 0x4e, 0x13, 0x9c, 0x6f, 0x1a, 0xc3, 0x38, 0x18, 0xd6, 0x74, -0x1d, 0x7f, 0x77, 0xe0, 0xef, 0x05, 0x38, 0x1f, 0x6f, 0x85, 0xf3, 0xad, 0x0a, 0xfa, 0x07, 0xe0, -0xfc, 0x2a, 0x3f, 0x9c, 0x5f, 0x8e, 0xf9, 0xaf, 0x18, 0x45, 0x7f, 0x1d, 0xe6, 0x13, 0xc3, 0xfc, -0x23, 0x70, 0xfe, 0xd1, 0x36, 0xcc, 0x1f, 0xcb, 0x7a, 0x04, 0xe3, 0x7d, 0xad, 0x17, 0x9f, 0x3d, -0x70, 0xbe, 0xe5, 0x23, 0x8c, 0xeb, 0xc1, 0xf2, 0xde, 0xc2, 0x72, 0xca, 0x30, 0x7f, 0x2c, 0xf3, -0x11, 0x0c, 0xaf, 0xa5, 0xcd, 0x09, 0x30, 0x6f, 0xcc, 0xe3, 0x6b, 0x97, 0xe1, 0x7c, 0x5d, 0xbd, -0x8a, 0x7f, 0xf0, 0xef, 0xfd, 0x73, 0xac, 0xa8, 0x6e, 0xac, 0x90, 0xdb, 0x1f, 0xff, 0x66, 0x4b, -0xf7, 0x93, 0x25, 0xed, 0xab, 0x57, 0x75, 0x3f, 0xde, 0xfd, 0x4d, 0xf9, 0x41, 0x5f, 0x89, 0x4f, -0x76, 0x95, 0x96, 0x3c, 0x58, 0x52, 0xea, 0xfb, 0x52, 0xe9, 0x03, 0x77, 0x5b, 0x60, 0x66, 0x04, -0x80, 0xd8, 0x24, 0x9c, 0xff, 0x4f, 0xfb, 0xe0, 0xfc, 0x86, 0xd6, 0x75, 0xa5, 0xb3, 0x83, 0xe8, -0xde, 0x8d, 0xcf, 0xff, 0x07, 0x9f, 0x93, 0xe9, 0x9c, 0x4b, 0xe0, 0x7c, 0xa0, 0x5f, 0xd4, 0x39, -0x54, 0x5e, 0xc7, 0xe9, 0xbf, 0xee, 0x7f, 0xf0, 0xeb, 0x55, 0x5d, 0xed, 0xed, 0x2d, 0x4f, 0xf4, -0x34, 0xac, 0xee, 0x6d, 0x69, 0x7f, 0x92, 0x83, 0x61, 0xd9, 0x13, 0x8f, 0xb7, 0xb7, 0xb0, 0xb3, -0xea, 0xf1, 0xf6, 0xf6, 0x55, 0x8f, 0x3f, 0xb1, 0x06, 0xbe, 0xbe, 0xac, 0xb5, 0xeb, 0x4f, 0x1b, -0x1e, 0xef, 0xee, 0x79, 0xf2, 0x2b, 0x71, 0x11, 0x29, 0xd1, 0xfd, 0x78, 0xb2, 0x75, 0xf5, 0x13, -0x99, 0x3a, 0x7c, 0xa3, 0x67, 0x75, 0xfb, 0xea, 0x9e, 0x6f, 0xa6, 0xfd, 0xcb, 0x1b, 0xbf, 0x5a, -0x0d, 0x35, 0xa1, 0xba, 0x65, 0xd5, 0x30, 0xff, 0x49, 0xad, 0x49, 0xff, 0x69, 0x7e, 0xd2, 0xd3, -0xdd, 0x92, 0x58, 0xdd, 0xd5, 0x89, 0x2e, 0x6c, 0x45, 0x71, 0xe5, 0x93, 0xad, 0x8f, 0x27, 0x5b, -0xd8, 0xb3, 0xac, 0x76, 0x69, 0x43, 0x5d, 0x75, 0x4d, 0x63, 0xf5, 0xb2, 0xa8, 0x88, 0x2c, 0xc7, -0xbb, 0xbe, 0xd1, 0xd9, 0x3c, 0x4f, 0x9e, 0xdf, 0xec, 0x9d, 0xdf, 0x2c, 0x17, 0x8b, 0x5f, 0x8c, -0xb7, 0xba, 0x23, 0xd9, 0xde, 0xd2, 0xd8, 0x12, 0xef, 0x6e, 0x79, 0xb2, 0xb5, 0x42, 0xa6, 0x2a, -0xae, 0xee, 0x4c, 0xc8, 0x4f, 0x68, 0x55, 0x95, 0x3b, 0xbb, 0xfe, 0x74, 0x9e, 0xbc, 0xaa, 0x83, -0xf3, 0x6c, 0x6c, 0xe9, 0xf9, 0x46, 0x77, 0x67, 0x4b, 0xb3, 0x1c, 0xef, 0xee, 0xea, 0x48, 0x47, -0x99, 0x87, 0x99, 0x2c, 0x0d, 0x35, 0x2e, 0x6f, 0xbc, 0x4d, 0x69, 0x16, 0xf8, 0xca, 0xda, 0x96, -0xee, 0xf6, 0xc7, 0x93, 0x49, 0xcc, 0xb4, 0x42, 0x94, 0x59, 0xac, 0x95, 0x5c, 0xd5, 0x78, 0x53, -0x40, 0x23, 0x76, 0xdc, 0x4d, 0x41, 0x2b, 0x56, 0x3f, 0xb9, 0x7a, 0x55, 0x7b, 0x0b, 0x86, 0x3e, -0x89, 0xa5, 0x74, 0x60, 0x8f, 0x7d, 0xb6, 0x9a, 0x2e, 0xee, 0xea, 0x91, 0x5b, 0x3a, 0x92, 0x3d, -0xdf, 0x94, 0x45, 0xff, 0xf0, 0x47, 0x0b, 0x44, 0x56, 0x77, 0x63, 0x19, 0xed, 0xdf, 0x14, 0x0d, -0x78, 0xf2, 0x89, 0xee, 0x96, 0x96, 0x4e, 0x99, 0x12, 0x27, 0xba, 0xb5, 0xea, 0xde, 0x36, 0x57, -0x0c, 0xee, 0xa2, 0x5e, 0xea, 0x69, 0x49, 0x65, 0xd7, 0xfa, 0x78, 0x67, 0x73, 0x7b, 0x0b, 0xf6, -0x66, 0xb1, 0x5c, 0xdf, 0xd5, 0xd3, 0x4a, 0x29, 0x7a, 0xba, 0xe4, 0x9e, 0xc7, 0xd7, 0xb4, 0xe8, -0xb3, 0xc6, 0x84, 0x7f, 0x24, 0xa6, 0xc6, 0x1f, 0xcb, 0x91, 0x16, 0x4a, 0xcf, 0xbe, 0x0a, 0x79, -0x79, 0x6b, 0x4b, 0x77, 0x8b, 0xfc, 0x38, 0x3e, 0x4f, 0xe2, 0x30, 0xb7, 0xcb, 0x4f, 0xb4, 0xae, -0x6e, 0x6f, 0xee, 0xc6, 0xba, 0x3c, 0x2e, 0xea, 0x81, 0x8d, 0xeb, 0xec, 0xc4, 0x26, 0x34, 0xb7, -0x3c, 0xd9, 0xd3, 0xdd, 0xf5, 0x4d, 0xad, 0x4b, 0xa9, 0x61, 0x34, 0xf6, 0x5f, 0xe9, 0xc4, 0x16, -0xb4, 0xf4, 0x26, 0xb1, 0x29, 0x54, 0x70, 0x57, 0x67, 0x8b, 0x5c, 0xd5, 0xbe, 0x3a, 0x49, 0xdd, -0x87, 0xf5, 0x69, 0x6f, 0x79, 0x7c, 0x2d, 0x06, 0x63, 0xd9, 0x3c, 0x19, 0x44, 0x85, 0x2b, 0x38, -0x71, 0x75, 0x63, 0xe3, 0x57, 0x1a, 0x31, 0xca, 0x93, 0x8f, 0x77, 0xa4, 0x5a, 0xf2, 0xe4, 0xbc, -0x79, 0xdc, 0xb7, 0xb7, 0xfc, 0x19, 0x10, 0x06, 0x58, 0x53, 0xab, 0x08, 0x9f, 0x52, 0x7c, 0x8a, -0x35, 0xbf, 0x0b, 0x9f, 0x05, 0x5a, 0x38, 0x10, 0x7c, 0xa1, 0xc7, 0x9b, 0xb3, 0xac, 0x13, 0x64, -0x82, 0x59, 0xd1, 0x5e, 0x55, 0x8d, 0x7e, 0x13, 0x57, 0x8b, 0x9f, 0x68, 0xb3, 0xc0, 0x4a, 0xc2, -0xd2, 0x92, 0xa0, 0x69, 0x18, 0xc9, 0x49, 0x9d, 0xe8, 0x72, 0x8c, 0x40, 0x26, 0x46, 0x6c, 0x20, -0x61, 0x6d, 0xc4, 0x1c, 0xa4, 0x12, 0xf5, 0x77, 0x90, 0xa3, 0x48, 0x7f, 0x8e, 0x98, 0xa9, 0xd0, -0x6a, 0x06, 0xa5, 0x8e, 0x60, 0xb8, 0x0d, 0x71, 0xe2, 0x6f, 0x62, 0xdc, 0x46, 0x4e, 0x51, 0xc7, -0x56, 0xe3, 0x94, 0x19, 0x79, 0xb5, 0xd3, 0x99, 0xfa, 0x42, 0x61, 0xc3, 0x92, 0xee, 0xa7, 0xc3, -0xba, 0x9a, 0xac, 0xac, 0x7f, 0x3e, 0x73, 0x96, 0x4c, 0x21, 0xc1, 0x7d, 0x14, 0x3b, 0xb0, 0x92, -0x63, 0x17, 0xc6, 0x06, 0xe2, 0xcd, 0x5e, 0x8b, 0x2e, 0x7e, 0x44, 0x9c, 0xa0, 0x0b, 0x4e, 0x2f, -0x0e, 0x59, 0x9e, 0xca, 0x5d, 0x17, 0xab, 0xb9, 0xfe, 0x79, 0x5d, 0x9d, 0x1a, 0x18, 0xcb, 0xb6, -0xb1, 0xcc, 0x6b, 0xae, 0x3d, 0xf6, 0xfc, 0xe8, 0xd8, 0xba, 0x8c, 0x14, 0x1d, 0x95, 0x22, 0xb8, -0x0b, 0xea, 0x20, 0xa3, 0xa9, 0xad, 0xea, 0xf7, 0x70, 0xbe, 0x72, 0x6e, 0xf2, 0x81, 0x8c, 0x66, -0xb5, 0xf9, 0x41, 0x70, 0x26, 0xa2, 0x1c, 0xee, 0xd5, 0x6b, 0x5c, 0xc3, 0x70, 0xb7, 0xf0, 0xc5, -0x2d, 0xf6, 0x36, 0x70, 0xd6, 0x7f, 0x7f, 0x7a, 0x95, 0x22, 0xcb, 0x01, 0xb8, 0x17, 0x0c, 0x64, -0xfd, 0x6f, 0xd6, 0x98, 0xc3, 0x80, 0xf1, 0xa2, 0x18, 0xcf, 0x2e, 0x6c, 0x14, 0x46, 0x06, 0xc4, -0x8d, 0x7f, 0xc4, 0x38, 0x53, 0xd7, 0xcb, 0xd4, 0x45, 0x4d, 0x57, 0x5c, 0xa5, 0x23, 0xea, 0xae, -0x7f, 0xee, 0x38, 0x59, 0x12, 0x55, 0x5f, 0x9e, 0x4f, 0xf6, 0xb5, 0x49, 0xfe, 0xf2, 0x29, 0x4f, -0x27, 0x38, 0x85, 0xe6, 0x25, 0x2c, 0x67, 0x37, 0xd2, 0xa2, 0x2f, 0x91, 0xb6, 0xc2, 0x78, 0x85, -0xe2, 0x16, 0x96, 0x57, 0x59, 0x77, 0x21, 0xe9, 0xc9, 0xdc, 0x6d, 0xa7, 0xbb, 0x54, 0x27, 0x9d, -0xc4, 0x20, 0x25, 0x37, 0xc7, 0x4b, 0xfb, 0x34, 0xd1, 0x5a, 0x24, 0x43, 0x12, 0xf3, 0x2c, 0xe5, -0xb3, 0x48, 0xe0, 0x13, 0x01, 0xec, 0x95, 0x5f, 0x2c, 0x27, 0xbd, 0x9b, 0xff, 0x40, 0xa7, 0xe6, -0xe4, 0x6b, 0x07, 0xa3, 0xe6, 0x37, 0xc9, 0x75, 0x55, 0x17, 0xc1, 0x26, 0x72, 0x9a, 0x26, 0xdb, -0xdf, 0x7d, 0xf6, 0x3a, 0xe1, 0xfb, 0xe4, 0x25, 0x67, 0x10, 0xfd, 0xdb, 0xd3, 0xe5, 0x0c, 0x21, -0xce, 0xb7, 0x35, 0x11, 0xa3, 0x1c, 0x9e, 0x5b, 0x46, 0xe9, 0x5f, 0x58, 0x23, 0xf2, 0x7b, 0x6e, -0x8d, 0xc8, 0x0f, 0xfd, 0x26, 0x4c, 0xb1, 0xd5, 0xbe, 0x24, 0x95, 0x82, 0x4b, 0xe3, 0xb8, 0xff, -0xa0, 0xc5, 0xfd, 0x85, 0x16, 0x17, 0xfd, 0x26, 0xda, 0x5b, 0x09, 0x0b, 0x11, 0x3a, 0xb8, 0xda, -0x2f, 0x93, 0x56, 0x52, 0x1e, 0xbf, 0xb9, 0x3d, 0xa6, 0x23, 0x24, 0x59, 0x9c, 0x97, 0x17, 0x00, -0x69, 0xff, 0xba, 0xf8, 0x5c, 0xef, 0xdd, 0x29, 0x9b, 0x9a, 0x18, 0x9f, 0x64, 0x5f, 0xfd, 0xc2, -0x0e, 0x6f, 0x27, 0x61, 0xe1, 0x0e, 0x6e, 0xbb, 0xb5, 0xf6, 0xc6, 0xf4, 0xae, 0xfa, 0x1d, 0x5a, -0x3f, 0xec, 0x00, 0xc4, 0xb1, 0x61, 0x2e, 0xcf, 0x7d, 0x83, 0xe0, 0x07, 0xbc, 0x49, 0xc7, 0xdf, -0x56, 0x1a, 0x07, 0x96, 0x71, 0xb1, 0x93, 0x15, 0x52, 0x79, 0x35, 0x44, 0x48, 0x83, 0x0c, 0x69, -0x80, 0x60, 0x9a, 0xcb, 0x86, 0xab, 0x85, 0xf4, 0x4e, 0x1c, 0x52, 0x4f, 0xb0, 0xa6, 0xb7, 0x1a, -0xb9, 0x81, 0xb4, 0xc6, 0x2a, 0x12, 0xd2, 0x64, 0xad, 0x50, 0xb8, 0xea, 0xfa, 0x8f, 0x8f, 0x63, -0x1c, 0x09, 0x69, 0x36, 0x8a, 0xf3, 0x2a, 0x9d, 0x25, 0x28, 0x76, 0xb2, 0x39, 0x28, 0x6a, 0x36, -0xd0, 0x48, 0xb7, 0x0c, 0x10, 0x61, 0x49, 0x97, 0x43, 0xea, 0x46, 0x6a, 0x8d, 0x90, 0xed, 0x89, -0xb0, 0x7c, 0xcb, 0x8c, 0x39, 0x71, 0x39, 0xa3, 0x6f, 0x90, 0x74, 0xa6, 0x60, 0xa8, 0x8d, 0x7a, -0xef, 0x76, 0xa1, 0x9f, 0x1c, 0xd1, 0x6e, 0x48, 0x0f, 0x32, 0x75, 0x1e, 0x75, 0xcc, 0x76, 0xd5, -0xcb, 0xad, 0xa2, 0xee, 0xe1, 0x0e, 0x75, 0x0c, 0x9f, 0x53, 0xf8, 0x9c, 0xc6, 0xe7, 0x6d, 0xd2, -0x32, 0x47, 0xfa, 0x1d, 0xf0, 0xb9, 0x98, 0xb6, 0x53, 0xfb, 0x3a, 0xdb, 0xa9, 0x3d, 0x9b, 0xd2, -0x7f, 0x80, 0xcf, 0x38, 0xeb, 0xa7, 0x43, 0xaa, 0x01, 0x9f, 0x6b, 0xa9, 0xf3, 0x04, 0x92, 0x51, -0xb6, 0x16, 0x21, 0x1c, 0xfa, 0x6e, 0xbc, 0x4e, 0x8c, 0xcf, 0x8a, 0x09, 0x17, 0x78, 0x4b, 0xc0, -0x89, 0xf8, 0xdc, 0x98, 0x3d, 0xe8, 0x7d, 0x00, 0xfa, 0x9c, 0x01, 0xc4, 0x24, 0x0e, 0xca, 0x55, -0xf5, 0x43, 0x14, 0xbe, 0xf4, 0x43, 0xf5, 0x2c, 0xf6, 0x59, 0x11, 0xce, 0x98, 0xaa, 0xfa, 0xe7, -0xbc, 0x56, 0x4d, 0xde, 0x35, 0x47, 0xa4, 0xfe, 0xe6, 0x72, 0xec, 0x01, 0x1f, 0xdd, 0xb4, 0x78, -0x8a, 0x60, 0x2b, 0x9f, 0xa0, 0x94, 0x25, 0x89, 0xb6, 0x3c, 0x5c, 0x54, 0xa3, 0x8e, 0xe2, 0x73, -0x34, 0xf4, 0x01, 0xd8, 0xe8, 0x66, 0x05, 0x9f, 0x93, 0x72, 0xcc, 0xb1, 0x84, 0xb4, 0xa4, 0x79, -0xda, 0xc1, 0xcd, 0x9a, 0x31, 0x10, 0x3a, 0x2d, 0xe8, 0x50, 0x47, 0x61, 0xab, 0x62, 0x5c, 0x10, -0x86, 0xad, 0xf2, 0x1a, 0xd8, 0x8c, 0xdf, 0x9c, 0xbc, 0x9e, 0xc4, 0xef, 0xe4, 0x82, 0x20, 0x6c, -0x4e, 0x90, 0x3d, 0xde, 0xc3, 0xf8, 0xbc, 0x81, 0x74, 0xdc, 0xc6, 0x65, 0x21, 0xa4, 0x26, 0x46, -0x7d, 0x6b, 0x60, 0xd3, 0xb2, 0x28, 0xd2, 0x39, 0x47, 0xe4, 0xa0, 0x96, 0x27, 0xcd, 0x75, 0x49, -0xc6, 0x7a, 0x24, 0x72, 0xbd, 0x1e, 0x9c, 0x2f, 0x45, 0xb0, 0x99, 0xf5, 0xf9, 0x3c, 0xc5, 0x9c, -0x29, 0x98, 0x37, 0x52, 0x2d, 0xb6, 0x5f, 0x34, 0x90, 0x0b, 0xf3, 0xc9, 0xfd, 0x25, 0xd2, 0xc6, -0xe9, 0xd0, 0x56, 0x30, 0xea, 0xc2, 0x4d, 0x5a, 0xfa, 0xed, 0x94, 0x07, 0xe9, 0xd0, 0x4d, 0xf9, -0x31, 0x4e, 0x01, 0xce, 0x8d, 0xed, 0x18, 0x46, 0x78, 0x65, 0x81, 0xd6, 0x97, 0x20, 0xf9, 0x1d, -0x45, 0x50, 0xe0, 0x88, 0x2c, 0xfd, 0x3d, 0xf5, 0xc9, 0x8f, 0xff, 0x2e, 0x11, 0x21, 0x4d, 0xf0, -0xf8, 0x25, 0x80, 0x29, 0xb6, 0xe3, 0x9a, 0xdf, 0x4e, 0x67, 0x47, 0xc3, 0x0d, 0x1d, 0x1e, 0xb2, -0x64, 0x3c, 0x82, 0x25, 0x77, 0xd8, 0x7d, 0xf7, 0xe2, 0x8c, 0x33, 0x76, 0xce, 0x61, 0x3b, 0xcc, -0xad, 0x64, 0x13, 0x97, 0xd6, 0x0d, 0xe9, 0x86, 0xd0, 0xa4, 0xb1, 0xf3, 0xf6, 0x6f, 0x8e, 0xe7, -0x88, 0x7c, 0x12, 0x56, 0x87, 0x1b, 0x0a, 0x12, 0x26, 0x07, 0xd2, 0x11, 0xca, 0xcb, 0x4e, 0x2c, -0xcb, 0x13, 0xe9, 0x81, 0xea, 0x0f, 0xd5, 0x31, 0x17, 0x8f, 0x56, 0x09, 0xbd, 0x87, 0xdc, 0xf4, -0xfe, 0x5e, 0x51, 0xbd, 0x7a, 0x50, 0xee, 0x50, 0x0f, 0x5a, 0x5d, 0x5c, 0x83, 0x24, 0xce, 0xa3, -0xed, 0x6c, 0x6d, 0x17, 0xe7, 0x42, 0x47, 0x21, 0x49, 0xe7, 0x22, 0x65, 0x78, 0xad, 0x23, 0xb7, -0xd4, 0x86, 0xbf, 0xd7, 0x3b, 0x2d, 0x18, 0x22, 0xa1, 0xeb, 0x46, 0x97, 0x9d, 0x69, 0xcd, 0x20, -0x5b, 0xeb, 0xc5, 0x79, 0xd4, 0x51, 0xc6, 0x31, 0xce, 0x75, 0x96, 0xb0, 0x74, 0x2f, 0xce, 0xa8, -0x4e, 0x07, 0xf5, 0x03, 0xe5, 0x8d, 0x7d, 0xd0, 0x67, 0x5f, 0x4c, 0xf3, 0x81, 0xf5, 0xe3, 0x1d, -0xa4, 0xb9, 0xd0, 0x93, 0xcf, 0xa7, 0x31, 0xf9, 0xfa, 0x38, 0x5e, 0x8b, 0x3d, 0x52, 0xff, 0x1c, -0xf5, 0x7f, 0xd2, 0x30, 0x3c, 0x18, 0xf7, 0x65, 0xea, 0x95, 0xb0, 0xda, 0xa3, 0x34, 0xc3, 0x7f, -0x34, 0x81, 0xd0, 0xb7, 0x80, 0xd2, 0x90, 0x56, 0x80, 0x74, 0xde, 0xd5, 0x22, 0xd5, 0x81, 0xd7, -0xd5, 0x83, 0xf1, 0x5c, 0x5d, 0xaa, 0x76, 0xa7, 0x0b, 0xfb, 0x21, 0xfe, 0x93, 0x0f, 0xd5, 0x83, -0x89, 0x32, 0xa4, 0xac, 0x4a, 0x29, 0xa5, 0x9d, 0x52, 0x3d, 0x80, 0xa3, 0xf5, 0x00, 0x6c, 0x96, -0x23, 0x38, 0x6f, 0x75, 0x61, 0x74, 0xd3, 0x44, 0x23, 0xa6, 0x59, 0x13, 0x28, 0x20, 0xbb, 0xf1, -0xf4, 0xcd, 0xfa, 0x00, 0xf7, 0x0e, 0x41, 0x88, 0xed, 0xf6, 0x98, 0x98, 0x3d, 0x9f, 0x1c, 0xa6, -0x92, 0x90, 0x32, 0x33, 0xaa, 0x07, 0x15, 0x98, 0x3e, 0xec, 0xa1, 0x3c, 0x44, 0xcd, 0x26, 0xaa, -0x6f, 0x4c, 0x3a, 0xea, 0xb7, 0x6b, 0xbe, 0x31, 0xe6, 0xf4, 0x25, 0x2d, 0x7e, 0x17, 0x12, 0x6e, -0x73, 0x09, 0xdd, 0x06, 0xc4, 0x2d, 0x72, 0x27, 0x44, 0xfe, 0x5a, 0xb4, 0x86, 0x57, 0x09, 0x6b, -0x39, 0xc0, 0x91, 0xa2, 0xbe, 0x59, 0xfb, 0x12, 0x73, 0x34, 0x6b, 0xad, 0x44, 0x3a, 0xe7, 0x4c, -0xc3, 0x36, 0xcd, 0x77, 0x15, 0x7d, 0x27, 0x70, 0x96, 0x44, 0xf8, 0xfe, 0x62, 0x2b, 0xc2, 0x79, -0x13, 0x53, 0xb5, 0x43, 0x44, 0x4b, 0xfd, 0xeb, 0xf0, 0x24, 0x0d, 0x39, 0x26, 0xf8, 0x7c, 0x28, -0xea, 0xc0, 0x86, 0xdc, 0x0e, 0x3a, 0x24, 0xc1, 0xe6, 0x82, 0xef, 0xee, 0x27, 0x9b, 0x1a, 0xef, -0xa7, 0x20, 0xcb, 0xe7, 0xc3, 0xf0, 0x5d, 0x1e, 0x17, 0x30, 0xac, 0xa0, 0xf9, 0xe5, 0xc2, 0xd9, -0x45, 0xab, 0xff, 0x9b, 0xcb, 0x69, 0x87, 0xb0, 0x7a, 0xc4, 0x0c, 0xb6, 0xb7, 0xe3, 0x1a, 0x11, -0xb3, 0xd7, 0x47, 0x67, 0x9d, 0xc3, 0x34, 0x7b, 0x9d, 0xda, 0xec, 0x9d, 0x4b, 0x67, 0x9b, 0xc3, -0x34, 0x7b, 0xf3, 0x48, 0xd7, 0x26, 0xcf, 0x5e, 0x2b, 0xc1, 0x0e, 0x9e, 0x0b, 0x56, 0x4c, 0xdb, -0xe7, 0x59, 0x23, 0xfa, 0x76, 0xff, 0x16, 0x9c, 0xcd, 0x1e, 0x6d, 0x36, 0x7b, 0x68, 0x36, 0xbb, -0x70, 0xc7, 0x52, 0x76, 0x60, 0x1f, 0x39, 0x11, 0xa6, 0xf6, 0x21, 0x3c, 0xcd, 0xf5, 0x34, 0x36, -0x6c, 0x23, 0xeb, 0x7c, 0xb8, 0xf3, 0x15, 0x89, 0x7e, 0xc7, 0x9a, 0x44, 0xb0, 0xbe, 0x46, 0x1c, -0x43, 0x5c, 0x89, 0xaa, 0xa4, 0xb8, 0xac, 0x25, 0x5c, 0xaf, 0x30, 0xc5, 0xa8, 0xfd, 0x90, 0xee, -0xb9, 0x10, 0x4e, 0x61, 0xea, 0xe9, 0xf7, 0x71, 0x04, 0xb6, 0xe3, 0x3e, 0xa7, 0x95, 0xc7, 0x7a, -0x0d, 0x59, 0x3f, 0xa8, 0x80, 0xdd, 0x3c, 0x3f, 0xad, 0x7c, 0x96, 0x7b, 0x5f, 0x02, 0x0c, 0xc7, -0x15, 0xa3, 0x67, 0x85, 0xb2, 0x5d, 0x2b, 0x7d, 0x37, 0x3e, 0xb4, 0xd2, 0xbf, 0xc7, 0x7b, 0x25, -0xee, 0xc3, 0x22, 0x97, 0xa9, 0x21, 0xda, 0x93, 0x79, 0x37, 0x6c, 0xd0, 0x5c, 0xb9, 0xcf, 0x11, -0xdc, 0x48, 0x85, 0x12, 0xdc, 0xc8, 0x84, 0x9b, 0x70, 0x7f, 0x1a, 0xe0, 0xfd, 0xc9, 0x8a, 0x7b, -0x74, 0xfc, 0x76, 0xd0, 0x57, 0x6a, 0x53, 0xff, 0x0c, 0xe6, 0x12, 0x64, 0xa5, 0x52, 0x69, 0xf5, -0x46, 0xcf, 0xf1, 0x9c, 0xc5, 0x90, 0x9e, 0x89, 0xd3, 0xdf, 0xe6, 0xfd, 0xa5, 0x6f, 0xe9, 0x8d, -0xe9, 0x82, 0xfa, 0x9d, 0x54, 0xb7, 0xfe, 0xab, 0x67, 0xbf, 0xcd, 0x9a, 0xa2, 0xb6, 0x33, 0x4c, -0x28, 0x2c, 0x79, 0x96, 0x7b, 0xd9, 0x24, 0xda, 0xf4, 0xcd, 0xe5, 0x4e, 0x6d, 0xdc, 0xa8, 0xbf, -0x4b, 0x72, 0x08, 0x02, 0xf4, 0xe4, 0x6b, 0x23, 0x17, 0x25, 0xb8, 0x23, 0xb7, 0x6b, 0xab, 0xff, -0x91, 0x8e, 0xf2, 0xb4, 0x1d, 0xee, 0x12, 0x61, 0x75, 0xbb, 0xd3, 0x99, 0xb6, 0xc7, 0x5d, 0xc8, -0xfd, 0xe0, 0x81, 0x3e, 0xae, 0xcb, 0x5d, 0x64, 0x31, 0x37, 0x65, 0x7f, 0x43, 0xc9, 0x4d, 0x7d, -0xf3, 0x4a, 0x64, 0xc1, 0x86, 0x5a, 0xa7, 0x8d, 0xa3, 0x05, 0x73, 0x8f, 0xfc, 0x15, 0xcd, 0xf9, -0x1c, 0x74, 0xf5, 0xd9, 0x6b, 0x52, 0xbd, 0x76, 0x20, 0x33, 0xd6, 0x0e, 0x27, 0x8d, 0xf5, 0x5c, -0xad, 0x4e, 0x14, 0x6f, 0xbb, 0x3d, 0x9c, 0x1a, 0x23, 0x9e, 0x01, 0xa0, 0x36, 0x30, 0xf7, 0xb7, -0xd3, 0xec, 0xd1, 0x56, 0x52, 0x2a, 0x57, 0x9e, 0x53, 0xac, 0x1d, 0xd2, 0xaa, 0x5b, 0x45, 0x45, -0xa9, 0x75, 0x33, 0x39, 0x4e, 0xfa, 0x08, 0xc5, 0x3c, 0x41, 0xdf, 0x69, 0x9a, 0x2b, 0xac, 0xe9, -0x6e, 0xab, 0xa6, 0xb9, 0x62, 0x52, 0xe3, 0x28, 0x99, 0x89, 0x23, 0xbc, 0x28, 0xd6, 0x11, 0x62, -0x69, 0x99, 0xb0, 0x97, 0x35, 0xbe, 0xbd, 0x57, 0x58, 0xb3, 0x7d, 0xd4, 0x5d, 0xeb, 0xb1, 0xa4, -0x56, 0x09, 0xed, 0x75, 0x04, 0x5f, 0xeb, 0x2a, 0xa8, 0xf5, 0x88, 0xdd, 0xdc, 0xc5, 0x78, 0xea, -0x59, 0x7a, 0x57, 0xc6, 0x70, 0x04, 0xd5, 0xd9, 0x26, 0x0d, 0xca, 0x15, 0x38, 0x73, 0x1c, 0x77, -0x2b, 0x90, 0xf5, 0x56, 0x6a, 0x5f, 0xc8, 0x7a, 0xd5, 0xbe, 0x86, 0x6f, 0xbb, 0x37, 0x3b, 0xc2, -0x38, 0x47, 0x68, 0x0d, 0x41, 0x56, 0x1f, 0x9f, 0xaa, 0xd2, 0x2a, 0x82, 0xac, 0xce, 0xd2, 0xdc, -0x11, 0x5a, 0x47, 0x90, 0x45, 0x27, 0x89, 0x62, 0x25, 0x41, 0x56, 0x13, 0xed, 0x3b, 0x9c, 0xff, -0x2a, 0x1a, 0x0f, 0x39, 0x8c, 0xb9, 0x6c, 0x76, 0x54, 0x79, 0xda, 0x04, 0x06, 0xe7, 0x0e, 0x8a, -0x13, 0xb8, 0x86, 0x6d, 0x44, 0xe0, 0xe3, 0x5c, 0xce, 0xf3, 0x11, 0xff, 0xbe, 0xb9, 0x94, 0xe4, -0x04, 0x66, 0xfb, 0xe9, 0x4e, 0xcb, 0xe2, 0xa3, 0x33, 0x50, 0x33, 0xe7, 0xd1, 0x45, 0xb5, 0x73, -0x17, 0x8b, 0xb3, 0x4d, 0xb2, 0xfe, 0x29, 0x57, 0xcb, 0x2e, 0x84, 0x21, 0x74, 0x2e, 0x1d, 0x84, -0x95, 0xde, 0x10, 0x28, 0xbe, 0xcf, 0xff, 0xa2, 0x0b, 0x56, 0x96, 0x16, 0x83, 0xf4, 0xcb, 0x2e, -0x78, 0x8c, 0x7d, 0x8a, 0xe6, 0x5b, 0x45, 0x77, 0x50, 0xde, 0xa5, 0xe0, 0x27, 0x7b, 0x8c, 0xd1, -0x2e, 0x18, 0x88, 0xb6, 0x83, 0x2d, 0x4a, 0x16, 0xfa, 0x10, 0x3f, 0x37, 0x2c, 0xd7, 0x6e, 0x1c, -0x7b, 0x4a, 0xf1, 0x0b, 0x71, 0x29, 0xfa, 0xba, 0x60, 0xd0, 0x1b, 0x85, 0x80, 0xcf, 0x0b, 0x1b, -0xa2, 0xa3, 0x43, 0xdf, 0x62, 0xee, 0xf8, 0x20, 0xfa, 0x36, 0xa2, 0x6f, 0x13, 0xfb, 0x22, 0x18, -0x2f, 0x8a, 0x71, 0xea, 0x64, 0xb2, 0x42, 0xea, 0x62, 0xb9, 0xe1, 0x06, 0xef, 0x12, 0x58, 0x1e, -0xfe, 0x01, 0x34, 0x79, 0x81, 0xeb, 0xfc, 0x1d, 0x6e, 0x77, 0x0d, 0xe2, 0x0b, 0x1f, 0x43, 0xd0, -0x5d, 0x85, 0x98, 0x27, 0x63, 0x0c, 0xfc, 0xed, 0xa7, 0xf4, 0x8d, 0xca, 0x75, 0x2d, 0x17, 0xf7, -0x41, 0x6a, 0x9b, 0x9b, 0xec, 0x32, 0x56, 0xbb, 0xef, 0x8d, 0x3d, 0x8d, 0x3e, 0x3b, 0xae, 0xbd, -0x89, 0x6e, 0xd3, 0xe8, 0xba, 0x5c, 0xc4, 0x33, 0x89, 0x7f, 0xc1, 0xf0, 0x0e, 0xb5, 0x9e, 0xd3, -0x9e, 0xa5, 0xb4, 0x4d, 0xdb, 0x5c, 0x4b, 0xc8, 0xd6, 0xb1, 0xa3, 0x1a, 0x57, 0x88, 0x19, 0xf7, -0x54, 0xd2, 0x4b, 0x37, 0xe0, 0x8d, 0xc1, 0x06, 0x6e, 0xf9, 0x80, 0xd6, 0xf2, 0x41, 0xf6, 0x6d, -0xd0, 0x7c, 0x1b, 0x9d, 0x64, 0x0b, 0x3e, 0x0c, 0x3e, 0xec, 0x0b, 0x0f, 0xa6, 0x6e, 0xc3, 0x3e, -0x58, 0x49, 0x27, 0xcd, 0xf8, 0xbb, 0x69, 0x46, 0x5f, 0x80, 0xa1, 0x0e, 0x7b, 0x61, 0x15, 0x8e, -0x07, 0xdd, 0x10, 0xce, 0xf6, 0x77, 0x41, 0x1c, 0xc7, 0xa3, 0x0b, 0x5a, 0xb5, 0xf1, 0xf8, 0x1d, -0x8d, 0x87, 0x9f, 0x46, 0xcc, 0x52, 0x41, 0x23, 0x76, 0xb7, 0x8f, 0x46, 0x8c, 0x46, 0xcf, 0xe6, -0x9d, 0x4d, 0x31, 0x16, 0xdd, 0xeb, 0x88, 0x08, 0x59, 0x12, 0x4c, 0xb5, 0x91, 0xf3, 0xd9, 0xc4, -0xf9, 0x6c, 0xe6, 0x7c, 0xb6, 0x88, 0x7c, 0x16, 0xd9, 0xb5, 0x59, 0x97, 0x87, 0x14, 0xcb, 0xf9, -0xca, 0x48, 0xec, 0x35, 0x30, 0xc7, 0x4d, 0xec, 0x5e, 0x24, 0x7a, 0x71, 0xd1, 0x83, 0x94, 0x4f, -0xc3, 0x36, 0xae, 0x4d, 0x14, 0xfc, 0x01, 0x1a, 0x55, 0x1a, 0x5f, 0xac, 0x39, 0xc7, 0x2e, 0xc5, -0xd0, 0x72, 0x6c, 0x7b, 0x40, 0xce, 0xd1, 0xc6, 0x26, 0x88, 0xd8, 0xac, 0x5f, 0x1b, 0xb5, 0x08, -0xd9, 0xed, 0xc2, 0xaf, 0x75, 0x6c, 0x6b, 0x89, 0xb4, 0xd2, 0x36, 0x28, 0x61, 0x47, 0x74, 0x07, -0x62, 0x74, 0x76, 0x8b, 0x6c, 0xee, 0xb9, 0x67, 0x74, 0xf0, 0xd4, 0x00, 0xd9, 0xd6, 0x72, 0xd4, -0x62, 0x58, 0x2e, 0xf6, 0xdf, 0xbf, 0x92, 0x0f, 0x6b, 0x13, 0x6f, 0xf0, 0xd6, 0xb1, 0x0c, 0x01, -0xc0, 0x28, 0x8e, 0xb6, 0x17, 0x1a, 0xb8, 0xa6, 0x61, 0x77, 0xa4, 0xfe, 0x05, 0x1c, 0xef, 0xba, -0x99, 0xe3, 0x9d, 0xd6, 0xeb, 0x0d, 0xd3, 0xdb, 0x1d, 0x5e, 0x24, 0x05, 0xc9, 0x62, 0x41, 0xb5, -0xdb, 0x46, 0xe3, 0x3c, 0x1d, 0x76, 0xd6, 0xc9, 0x4b, 0xed, 0xe1, 0xf4, 0xba, 0x38, 0x2c, 0x2f, -0x15, 0xae, 0xa9, 0x8b, 0xee, 0x70, 0xec, 0x75, 0x6c, 0x9f, 0x93, 0xf3, 0xee, 0x10, 0x63, 0xae, -0x14, 0x78, 0xb3, 0xbc, 0xb3, 0x19, 0x6b, 0xc9, 0x62, 0xbd, 0x50, 0x97, 0x9c, 0xb8, 0x36, 0xd9, -0x3a, 0x42, 0x11, 0x18, 0x13, 0x16, 0xd2, 0x7c, 0x47, 0x56, 0xa2, 0x11, 0xa6, 0x88, 0xef, 0x27, -0x49, 0x3e, 0xa8, 0x61, 0x1b, 0xeb, 0x9a, 0x75, 0xd0, 0x0e, 0xfd, 0x93, 0x09, 0x8a, 0xa7, 0xe5, -0x0d, 0x93, 0x85, 0xee, 0xb0, 0x23, 0x4b, 0x8b, 0xfb, 0x32, 0xf1, 0x63, 0x90, 0x9f, 0xb8, 0x62, -0x35, 0x2b, 0xc3, 0xdf, 0x73, 0x32, 0x6c, 0x28, 0xb9, 0xcb, 0xee, 0x01, 0xb3, 0xdb, 0x03, 0x56, -0xdf, 0xe7, 0xcb, 0x71, 0x2e, 0xf9, 0x23, 0xa7, 0x7f, 0xe6, 0x8f, 0x45, 0xab, 0xa3, 0x3f, 0x7b, -0x27, 0x18, 0xfd, 0xd9, 0x99, 0x50, 0xf4, 0x68, 0x34, 0x14, 0x7d, 0x73, 0x2c, 0x14, 0x08, 0xb2, -0x6d, 0x24, 0x23, 0x52, 0xf3, 0x3c, 0xba, 0xb4, 0x8b, 0xb2, 0x6b, 0x03, 0x61, 0xde, 0xae, 0xe5, -0xde, 0x08, 0xf4, 0xbc, 0xb8, 0xb5, 0xf1, 0x69, 0x6f, 0x35, 0xf4, 0xcb, 0x96, 0xa1, 0x0d, 0xdc, -0xb7, 0x03, 0xde, 0x7a, 0xd8, 0x80, 0x3d, 0xbf, 0x09, 0xd7, 0xce, 0x16, 0x7c, 0x44, 0x8a, 0x57, -0x1d, 0x55, 0xf5, 0xdb, 0xe5, 0x9a, 0x17, 0x4e, 0x60, 0x6f, 0xf6, 0x3a, 0x09, 0xda, 0xba, 0x35, -0xee, 0x92, 0x42, 0x6d, 0xc5, 0x74, 0x3a, 0x17, 0x2b, 0xa2, 0x9c, 0xbf, 0xa6, 0xb9, 0x3b, 0xdb, -0xd4, 0xb4, 0x8d, 0x71, 0x10, 0xe2, 0x4e, 0xdf, 0xaa, 0xdd, 0x9e, 0xae, 0x4c, 0xe9, 0x86, 0x2f, -0x2f, 0xf5, 0xf6, 0x0f, 0x80, 0xd1, 0x80, 0x98, 0xd4, 0x12, 0x28, 0x64, 0x77, 0x36, 0xc8, 0x58, -0xaa, 0x03, 0x4b, 0x74, 0x55, 0x7f, 0xcc, 0xbc, 0xcf, 0x36, 0xd2, 0x27, 0x29, 0x74, 0xc0, 0x0b, -0x3b, 0x0d, 0xdf, 0xf9, 0x3b, 0x0c, 0x0d, 0xa6, 0x2c, 0x19, 0x04, 0xec, 0x66, 0x23, 0x98, 0x12, -0xc6, 0x3e, 0x8b, 0x22, 0xf5, 0xe5, 0x11, 0xff, 0xf4, 0x8c, 0xb3, 0x5a, 0xed, 0x1c, 0xb6, 0xcf, -0x21, 0x4e, 0x75, 0x23, 0x81, 0x3f, 0xa8, 0xec, 0xfc, 0xdb, 0x96, 0x5d, 0xf3, 0xef, 0x2a, 0xfb, -0x2a, 0xcb, 0x6b, 0xd7, 0x22, 0x1d, 0xa6, 0xd1, 0x90, 0x29, 0x7a, 0xa9, 0x69, 0xdb, 0xf0, 0xb3, -0x89, 0xb9, 0x62, 0x17, 0x58, 0x74, 0x4d, 0xf4, 0x1e, 0xf5, 0x9d, 0xb6, 0xef, 0x10, 0x75, 0xbe, -0x2a, 0x05, 0xff, 0x0d, 0x85, 0xe1, 0x2e, 0xa0, 0x67, 0x2e, 0x3e, 0x32, 0x3e, 0x76, 0xac, 0x35, -0xcd, 0xa5, 0x3e, 0x1c, 0x99, 0x42, 0x3a, 0x15, 0x20, 0x0c, 0x8e, 0x2c, 0xa7, 0x10, 0xfd, 0xb0, -0x04, 0xc3, 0x9c, 0x62, 0x07, 0x17, 0xd4, 0x43, 0x0d, 0xee, 0x68, 0x9b, 0x79, 0xf7, 0xc6, 0x5c, -0xb4, 0xfd, 0x1b, 0xf3, 0xe2, 0xfd, 0x1b, 0xf3, 0xd3, 0xf6, 0x6f, 0xcc, 0xb5, 0x93, 0x6e, 0x18, -0xfa, 0x34, 0x9a, 0xe9, 0x32, 0x62, 0x44, 0x77, 0x7b, 0x2d, 0x1a, 0x16, 0x66, 0x55, 0x6c, 0x21, -0xcc, 0xd7, 0x9e, 0xfe, 0xfe, 0xc9, 0x11, 0x8d, 0xa6, 0x20, 0xbe, 0xfd, 0xc8, 0x8f, 0x69, 0x9f, -0xb5, 0x31, 0xd6, 0x93, 0xa1, 0xbe, 0x86, 0x74, 0x94, 0x87, 0x93, 0x29, 0x0f, 0x59, 0xab, 0x11, -0xc5, 0xdc, 0xce, 0x75, 0xd7, 0x30, 0x66, 0xa6, 0x48, 0x70, 0x07, 0x0f, 0xa5, 0xc3, 0xa6, 0x2e, -0x13, 0x25, 0x45, 0xb7, 0xa6, 0x09, 0x2a, 0x35, 0xf2, 0xe3, 0x5f, 0x63, 0x09, 0xb9, 0x7c, 0x26, -0xa0, 0x51, 0xd1, 0x62, 0x1f, 0x97, 0x97, 0xd1, 0xba, 0xe3, 0x53, 0x11, 0xd3, 0xbc, 0x20, 0xe6, -0xc2, 0xbd, 0x28, 0x0f, 0x10, 0xf7, 0x0f, 0x87, 0x4a, 0xf2, 0xf3, 0x19, 0xbc, 0x58, 0xb3, 0x92, -0x79, 0xbe, 0xad, 0x57, 0xbb, 0xdf, 0xb7, 0xea, 0x78, 0xf1, 0x25, 0x87, 0x99, 0xa4, 0x0a, 0xe9, -0xfb, 0x9a, 0x56, 0x7b, 0x38, 0x19, 0xcf, 0x9c, 0x11, 0x35, 0x6c, 0x13, 0x56, 0x0e, 0xea, 0xff, -0x04, 0xc7, 0xf4, 0x02, 0xed, 0xee, 0x08, 0x8d, 0x4a, 0x9c, 0xb5, 0x8e, 0x1c, 0xc4, 0x7c, 0x37, -0x21, 0xac, 0xbe, 0xe8, 0x7a, 0x84, 0xd7, 0x84, 0xc3, 0x9b, 0xe3, 0x6b, 0x03, 0xa4, 0xf4, 0x7d, -0x8d, 0x54, 0x4f, 0xac, 0xed, 0x6c, 0x84, 0x4e, 0x35, 0x94, 0xe7, 0x6a, 0xd2, 0x25, 0x53, 0x88, -0xe3, 0xfa, 0x06, 0xe2, 0x0c, 0x54, 0x9b, 0x97, 0x4b, 0x3d, 0x60, 0x2b, 0x6d, 0x07, 0x4f, 0x99, -0xe1, 0xed, 0xc6, 0x9d, 0xb5, 0xe5, 0xb8, 0x73, 0xfb, 0x88, 0xeb, 0xa5, 0x1d, 0x4a, 0x2a, 0x70, -0x97, 0x27, 0xfb, 0x8c, 0x07, 0xda, 0x21, 0xaf, 0x13, 0x0c, 0x1b, 0xce, 0x04, 0x77, 0x45, 0x0f, -0xb6, 0x43, 0x3e, 0xba, 0x7b, 0xdf, 0x09, 0xbd, 0x58, 0xcb, 0xb7, 0x86, 0x9d, 0x67, 0x83, 0xbb, -0xa3, 0xc3, 0x35, 0x74, 0x7f, 0xe8, 0xc0, 0x5d, 0x85, 0xec, 0xac, 0x63, 0xee, 0x0d, 0x5e, 0x3a, -0x2f, 0x2a, 0x4b, 0x58, 0x34, 0x3c, 0x08, 0x0c, 0x81, 0x45, 0x74, 0xde, 0x51, 0x5a, 0xea, 0x05, -0x0f, 0xee, 0xa0, 0xa5, 0xc3, 0xa1, 0x2e, 0xa9, 0x14, 0x16, 0x85, 0x20, 0x88, 0xe1, 0xb9, 0xe0, -0xf7, 0x19, 0x0f, 0x76, 0x91, 0xfe, 0x36, 0xfc, 0xe6, 0x5f, 0x14, 0x84, 0x30, 0xe9, 0x7e, 0x2b, -0xad, 0x3e, 0x14, 0xc5, 0x58, 0xd1, 0x45, 0xb5, 0x10, 0xa1, 0xfb, 0x4a, 0x5f, 0xcd, 0x1b, 0x35, -0xed, 0x92, 0x6f, 0xf1, 0xa2, 0x28, 0xd4, 0x8c, 0x10, 0x57, 0xd2, 0xc4, 0x70, 0x94, 0x6e, 0x0d, -0x17, 0xe1, 0x2e, 0x0e, 0x15, 0x01, 0x6c, 0x43, 0x65, 0xce, 0x4b, 0x5d, 0x50, 0xf1, 0x6e, 0x08, -0x43, 0x72, 0x21, 0x80, 0xef, 0x12, 0xa8, 0x2c, 0xf3, 0x42, 0xe5, 0x4e, 0xe2, 0x35, 0xad, 0x7a, -0x67, 0x34, 0xf6, 0x03, 0xac, 0x13, 0xc0, 0x10, 0x42, 0x6f, 0x23, 0x94, 0x61, 0xdd, 0x24, 0xc4, -0x9f, 0x3d, 0x67, 0x3f, 0x86, 0x8a, 0xed, 0xf5, 0x54, 0x17, 0xac, 0x5d, 0xe5, 0x29, 0x8c, 0x3b, -0x14, 0xa2, 0x3a, 0x6c, 0x7f, 0x8b, 0x4a, 0x1e, 0x7a, 0x93, 0xca, 0x5b, 0xd0, 0x0e, 0x32, 0x8e, -0xab, 0x8f, 0xec, 0x14, 0x4a, 0x55, 0x70, 0x4f, 0xa0, 0x6a, 0xf7, 0xc7, 0x50, 0x7a, 0x8a, 0x53, -0x0d, 0x75, 0x89, 0x3a, 0x9f, 0x12, 0xf1, 0x3f, 0x46, 0x1f, 0xa5, 0x68, 0x23, 0x6b, 0xbd, 0x5e, -0xa9, 0x62, 0x29, 0xee, 0x8a, 0x74, 0xf7, 0xdb, 0x05, 0xe2, 0xd6, 0x3d, 0x3d, 0x12, 0x0b, 0xba, -0xa0, 0x11, 0xf3, 0x2c, 0xfc, 0xb4, 0x38, 0x34, 0x5a, 0xe9, 0x5b, 0xc3, 0x7d, 0x72, 0x1d, 0x43, -0xb5, 0x17, 0x35, 0xa8, 0x56, 0xa8, 0xd9, 0x92, 0x2d, 0x75, 0x44, 0xfd, 0x38, 0x5d, 0x91, 0xfa, -0x9d, 0x2b, 0x85, 0xd4, 0x8f, 0xbf, 0x14, 0x82, 0xb9, 0x84, 0x15, 0x25, 0x2a, 0xd7, 0x9a, 0x8e, -0xac, 0xcf, 0x47, 0xcc, 0xe1, 0xc0, 0xba, 0xb8, 0x5d, 0x9c, 0xbc, 0xd2, 0x89, 0x07, 0x63, 0xdd, -0x2e, 0x32, 0xbc, 0x28, 0xe6, 0x99, 0x38, 0xa3, 0x52, 0xe8, 0x3c, 0x49, 0x0b, 0x69, 0xdf, 0x45, -0x33, 0x72, 0x3e, 0xd9, 0xac, 0x31, 0x93, 0xce, 0xb3, 0x58, 0x38, 0x91, 0x2b, 0x67, 0x28, 0x89, -0xcb, 0x02, 0xf3, 0x97, 0x63, 0x8c, 0xa1, 0x62, 0x6d, 0xea, 0xac, 0x9a, 0xec, 0x4b, 0x34, 0x3d, -0x77, 0xed, 0xc4, 0x17, 0x9c, 0xb0, 0x20, 0x15, 0x61, 0x80, 0x26, 0xe2, 0x16, 0x49, 0x82, 0x90, -0x28, 0xb1, 0x93, 0x9e, 0xdc, 0x47, 0xe4, 0xd9, 0x8a, 0x51, 0x36, 0x0b, 0xee, 0x81, 0x84, 0xa5, -0xf4, 0x01, 0xd8, 0x89, 0xb8, 0xe3, 0xce, 0x96, 0x4b, 0xa9, 0x7c, 0xaa, 0x26, 0x20, 0x1e, 0x2e, -0xf8, 0xd1, 0xf1, 0xf8, 0x8d, 0x68, 0x1b, 0xf7, 0x85, 0x2a, 0xb5, 0x87, 0x2e, 0x42, 0x41, 0x46, -0x72, 0xa8, 0xe1, 0x22, 0x3c, 0xfa, 0x60, 0xbf, 0x01, 0xa0, 0xa9, 0x49, 0x93, 0x9a, 0x61, 0x78, -0x89, 0xeb, 0xc7, 0x35, 0x1b, 0xe7, 0x36, 0xf5, 0xd3, 0xcb, 0xd4, 0x66, 0x6c, 0xab, 0x91, 0x6d, -0xe0, 0x9c, 0xff, 0xd3, 0xeb, 0x2e, 0x04, 0x5c, 0x29, 0xde, 0x44, 0xe2, 0xa7, 0x0d, 0x16, 0x6a, -0xf6, 0xdf, 0xa2, 0xae, 0xd9, 0x5c, 0x93, 0x82, 0xd4, 0x79, 0x27, 0x42, 0x8a, 0xb5, 0xf3, 0x23, -0xb0, 0x56, 0x26, 0xdf, 0x8b, 0x9a, 0xc4, 0x80, 0x66, 0xd1, 0x8d, 0xe2, 0x3b, 0x67, 0x3b, 0x72, -0xf0, 0xcb, 0x26, 0x97, 0x1b, 0x1e, 0x9b, 0x5f, 0x05, 0x8f, 0x91, 0x1e, 0xd3, 0x11, 0x2d, 0x07, -0x4a, 0x4f, 0xb7, 0xa4, 0xf3, 0xaa, 0x30, 0x3d, 0xfe, 0x8a, 0x31, 0x13, 0x3a, 0xbe, 0xd5, 0xb5, -0x54, 0xae, 0xc8, 0x47, 0x46, 0xec, 0xdc, 0x0f, 0xae, 0xfa, 0x61, 0xb1, 0xc7, 0xee, 0x17, 0x30, -0x74, 0x6a, 0x52, 0xd8, 0x8b, 0x84, 0x57, 0xd2, 0x10, 0x63, 0x87, 0x63, 0x99, 0xd2, 0x89, 0x58, -0x72, 0xe1, 0x70, 0x1b, 0x14, 0xc6, 0xdb, 0x11, 0xbb, 0xde, 0x39, 0xbc, 0x06, 0x76, 0xc6, 0x9b, -0x34, 0xb8, 0x66, 0xb2, 0x86, 0x91, 0x44, 0x8b, 0xe9, 0xce, 0x67, 0x04, 0x4e, 0x5e, 0x9e, 0xa6, -0x68, 0x4b, 0x34, 0xaa, 0x37, 0x4d, 0xeb, 0xda, 0x97, 0xa6, 0x20, 0x28, 0x9f, 0xa0, 0x2e, 0x4d, -0x41, 0x4b, 0xc6, 0x07, 0x72, 0xb4, 0x19, 0xb7, 0x45, 0x31, 0xbf, 0x70, 0x42, 0x31, 0xfa, 0xfb, -0xc1, 0x90, 0x81, 0x5e, 0x72, 0x2a, 0xee, 0x45, 0x92, 0x87, 0xf3, 0x59, 0x52, 0x67, 0x97, 0xe2, -0x54, 0xe3, 0x6b, 0xda, 0xd9, 0x32, 0x8d, 0x63, 0xe8, 0xd7, 0x10, 0xcd, 0x70, 0x21, 0x0b, 0x4a, -0x25, 0x34, 0xa1, 0x1b, 0xc3, 0x93, 0x69, 0xab, 0x24, 0x51, 0xd1, 0x9b, 0x8e, 0x46, 0x85, 0x68, -0x19, 0xd1, 0x53, 0x2f, 0x13, 0x3c, 0xe6, 0x7a, 0x5c, 0xd2, 0x6c, 0x8e, 0xd0, 0x5c, 0x97, 0xe4, -0x5a, 0xb2, 0x32, 0x85, 0xdf, 0xeb, 0x70, 0xfc, 0x6e, 0xd6, 0x53, 0x9e, 0x3e, 0x33, 0xa5, 0x35, -0x41, 0x90, 0x11, 0xd7, 0x41, 0xc1, 0xf0, 0x5f, 0x42, 0x41, 0x1c, 0x60, 0x17, 0xce, 0xb2, 0xc2, -0x11, 0x3a, 0x19, 0x25, 0xcd, 0xab, 0xad, 0x99, 0xd3, 0x54, 0xb9, 0xe1, 0x27, 0xc7, 0x13, 0x73, -0x7e, 0x8c, 0x8f, 0xc6, 0xcd, 0x72, 0x59, 0x9c, 0x8c, 0x22, 0x8d, 0xfe, 0x0a, 0xe2, 0x42, 0x8f, -0x91, 0x3d, 0xeb, 0xb5, 0x90, 0xd9, 0x33, 0xc9, 0xbe, 0x6a, 0xdc, 0xc1, 0x5a, 0x2e, 0x6d, 0xe9, -0x98, 0x7d, 0x7c, 0xbe, 0xea, 0x27, 0x7b, 0x4a, 0xa9, 0xf3, 0x55, 0xc5, 0x9a, 0xf1, 0x0d, 0xd6, -0x35, 0x6c, 0x2b, 0x19, 0xd4, 0xce, 0x5b, 0x0b, 0x35, 0x1b, 0x61, 0x5e, 0xa4, 0x61, 0x84, 0xf6, -0x6a, 0xab, 0xb0, 0x09, 0x75, 0xa7, 0x33, 0x12, 0xfd, 0xc9, 0xfc, 0x1f, 0x72, 0x0a, 0x7b, 0x4b, -0xe8, 0x61, 0xed, 0x84, 0x65, 0x48, 0x9c, 0xcd, 0x16, 0x05, 0xd5, 0x97, 0x8b, 0x42, 0xea, 0x6e, -0x8f, 0xe4, 0xce, 0x72, 0xd1, 0x59, 0xcb, 0x51, 0x7c, 0x8e, 0xe1, 0x73, 0x1c, 0x9f, 0x13, 0x6c, -0x37, 0xe2, 0xf6, 0x27, 0xb6, 0xb7, 0x9c, 0xce, 0x66, 0x28, 0x4c, 0x0d, 0xbe, 0xdc, 0x25, 0x56, -0x1c, 0x96, 0x40, 0xb6, 0x33, 0xf2, 0xd2, 0x7c, 0xa6, 0x5b, 0x53, 0xb3, 0x1c, 0xbf, 0x90, 0xed, -0x95, 0x41, 0xe2, 0x5f, 0xb5, 0x07, 0xb5, 0x39, 0xb5, 0x9b, 0x4e, 0x30, 0xe5, 0x0e, 0x75, 0xe8, -0x17, 0x0d, 0xc4, 0xdb, 0xc9, 0x7c, 0x67, 0x18, 0xc2, 0x9c, 0x67, 0xc2, 0x2f, 0xce, 0x33, 0xcd, -0x48, 0x55, 0xf6, 0x55, 0xdf, 0x98, 0xbe, 0x2a, 0xce, 0xb1, 0xbc, 0xc5, 0x2a, 0x69, 0x04, 0xdb, -0x5e, 0xbf, 0xbd, 0x54, 0x4b, 0xff, 0x3c, 0xa7, 0x7f, 0x4e, 0x4b, 0xff, 0xbc, 0x96, 0x9e, 0xce, -0x35, 0xba, 0x0d, 0xeb, 0x5f, 0x03, 0xb6, 0xe7, 0xa1, 0x18, 0xb1, 0xe6, 0x43, 0x25, 0x98, 0x7e, -0x21, 0x52, 0x30, 0xea, 0x2b, 0xf8, 0xce, 0x55, 0xf7, 0x95, 0x67, 0xe3, 0x6f, 0x9e, 0xfa, 0x7d, -0xa4, 0x6a, 0x6c, 0x65, 0x26, 0xcf, 0x62, 0xe6, 0x70, 0x85, 0x44, 0x65, 0xea, 0xe4, 0xc3, 0x67, -0x1a, 0x8a, 0x8d, 0x75, 0xa8, 0xdf, 0x27, 0x1e, 0x36, 0x5f, 0xf6, 0x50, 0x87, 0xba, 0x0f, 0x7d, -0xaf, 0x10, 0x27, 0x8a, 0x1c, 0xae, 0x22, 0x7e, 0xf1, 0xc5, 0x1a, 0xff, 0x2b, 0x59, 0xec, 0x94, -0xc8, 0x56, 0x70, 0xc3, 0xb6, 0x1e, 0x92, 0x98, 0x7c, 0x59, 0x5b, 0xe7, 0xbb, 0x62, 0xaf, 0xab, -0x2f, 0xc7, 0x49, 0xd3, 0xf5, 0xee, 0x84, 0x1c, 0xdb, 0x18, 0x37, 0xc6, 0x9e, 0x4e, 0x18, 0x93, -0x59, 0x4a, 0xbe, 0x2e, 0xdc, 0xcc, 0x76, 0x3c, 0x86, 0x15, 0x53, 0x52, 0xc2, 0x7e, 0x1a, 0xa6, -0x93, 0x60, 0xb2, 0xa5, 0x42, 0xba, 0xc2, 0xa9, 0x8c, 0xa2, 0x5a, 0xf5, 0x70, 0x15, 0x9d, 0x46, -0xd7, 0xaa, 0xa3, 0xa5, 0xc5, 0xea, 0xf7, 0x7c, 0x86, 0x31, 0xac, 0x2d, 0xd6, 0xe1, 0xba, 0xaf, -0x58, 0x7d, 0xa9, 0x34, 0x78, 0x0a, 0x69, 0x18, 0x92, 0xaf, 0x39, 0x55, 0x75, 0x0a, 0xdb, 0x42, -0x3c, 0x33, 0x63, 0x11, 0x8c, 0x91, 0x4f, 0xb5, 0xe4, 0x73, 0xeb, 0x61, 0xdd, 0xb9, 0xb5, 0x69, -0x01, 0x59, 0xea, 0xd8, 0xca, 0xa7, 0xcd, 0x7c, 0xae, 0x27, 0xac, 0xad, 0x4d, 0xf1, 0x1e, 0x50, -0x49, 0xb9, 0x53, 0x9f, 0x86, 0xc7, 0x1a, 0xc6, 0x16, 0xfb, 0x06, 0xfc, 0x1d, 0xea, 0x4b, 0xd4, -0x93, 0x63, 0xd8, 0xb3, 0x63, 0xb1, 0x2f, 0x05, 0x11, 0x5b, 0xc0, 0xaf, 0xc4, 0x49, 0x38, 0xb6, -0x98, 0x38, 0x09, 0xb5, 0x6f, 0x26, 0xfe, 0x66, 0x8a, 0x6d, 0xec, 0xf2, 0x60, 0x48, 0x5e, 0x63, -0x70, 0x6c, 0x31, 0x96, 0x3d, 0x51, 0x1a, 0xd3, 0x6a, 0x76, 0xb1, 0x34, 0x6b, 0x59, 0x88, 0x39, -0xdd, 0x2f, 0xf9, 0x8c, 0x63, 0x31, 0xad, 0x6e, 0x1f, 0xc5, 0x9e, 0xc6, 0xf8, 0xb3, 0xb4, 0xb6, -0x5c, 0xc6, 0x94, 0xf9, 0x98, 0x32, 0x86, 0xee, 0x2b, 0xa5, 0x59, 0xa7, 0x16, 0x6b, 0x6d, 0xb9, -0x5a, 0x6a, 0xd4, 0xd2, 0x5e, 0xa3, 0xda, 0x6a, 0xa7, 0xfa, 0xc4, 0xc5, 0x32, 0xc9, 0xb5, 0xcf, -0xc9, 0x9c, 0x6c, 0x4f, 0x9e, 0x4e, 0xad, 0x5a, 0xec, 0xb9, 0x57, 0x58, 0xa2, 0x94, 0x74, 0x54, -0x0e, 0x69, 0xe7, 0xc9, 0x73, 0x68, 0x0e, 0x6a, 0x67, 0x97, 0x47, 0xe9, 0xac, 0x56, 0xb3, 0xad, -0x6a, 0x55, 0x72, 0x7e, 0xf8, 0x77, 0x09, 0x13, 0x9d, 0xd5, 0x29, 0x64, 0x2b, 0x66, 0xa8, 0x08, -0x73, 0x54, 0x69, 0xf7, 0x33, 0xa6, 0x4e, 0xec, 0xe4, 0x4e, 0xd8, 0x4c, 0xba, 0x23, 0x47, 0xe8, -0x9c, 0xd9, 0x9f, 0x3e, 0x67, 0x76, 0x6b, 0xe7, 0xcc, 0xf6, 0xf4, 0x39, 0x73, 0x81, 0x38, 0x09, -0xe7, 0x13, 0xd4, 0x9c, 0xf4, 0x3d, 0x43, 0x9e, 0x92, 0xc7, 0x75, 0x2d, 0x81, 0x3e, 0x71, 0x8a, -0x3a, 0xb9, 0x82, 0xca, 0xfd, 0xeb, 0x0f, 0xd5, 0xdd, 0x71, 0x9b, 0x28, 0x23, 0x91, 0x53, 0xd4, -0x49, 0xa5, 0x26, 0x4c, 0xb8, 0x62, 0x8c, 0xca, 0xc6, 0xd4, 0xb9, 0xbd, 0x68, 0x6f, 0xe8, 0xc6, -0x64, 0x4e, 0x51, 0x54, 0xdd, 0x21, 0x4e, 0x88, 0xb1, 0xcd, 0x88, 0x6b, 0x3f, 0x4a, 0xb7, 0x15, -0xbb, 0xec, 0xc1, 0xfa, 0xe7, 0xb0, 0xa6, 0x9b, 0x17, 0x84, 0x61, 0x33, 0xef, 0x73, 0x1d, 0xb8, -0x7f, 0x98, 0xed, 0xd8, 0xea, 0xa2, 0x7a, 0x75, 0x77, 0xa0, 0xaa, 0xcc, 0xe2, 0x58, 0xc2, 0x69, -0xdc, 0xd0, 0x87, 0x73, 0x6c, 0x17, 0x52, 0x7c, 0x9b, 0xc5, 0x29, 0x2f, 0xae, 0x22, 0xd2, 0xf0, -0xbb, 0x39, 0x75, 0x1e, 0xf7, 0x1e, 0x62, 0x6c, 0xff, 0x88, 0xd8, 0x19, 0xfe, 0xe6, 0xfd, 0x63, -0x1b, 0xdb, 0xfa, 0x20, 0x4c, 0x81, 0xb4, 0x7d, 0xee, 0x52, 0x72, 0xdf, 0x6b, 0xc5, 0xaf, 0xad, -0x40, 0xbf, 0x79, 0xf8, 0x9b, 0xaf, 0xc1, 0x4e, 0x3a, 0xe5, 0x0c, 0xde, 0xf9, 0xeb, 0x8f, 0xff, -0x2e, 0x51, 0x4f, 0x94, 0xc0, 0x7b, 0x74, 0x06, 0xb9, 0xf9, 0x1f, 0xc5, 0xf9, 0xe3, 0xe6, 0xf7, -0xc4, 0xd9, 0x23, 0xf9, 0x4d, 0x5a, 0xdd, 0xb6, 0x53, 0x4d, 0xa8, 0x7e, 0xb8, 0x63, 0x0f, 0xa5, -0xc2, 0x08, 0x5a, 0x8b, 0x91, 0xbd, 0x71, 0x83, 0x56, 0x30, 0xd5, 0xe4, 0xc7, 0x1f, 0xaa, 0xaf, -0x24, 0x4c, 0xb8, 0x73, 0x80, 0xea, 0xc6, 0xf8, 0x43, 0x65, 0x39, 0x9e, 0x0e, 0x75, 0xf7, 0x3f, -0xe2, 0x5c, 0xf9, 0x27, 0x9c, 0x55, 0xf8, 0xbb, 0x11, 0x7f, 0x37, 0x95, 0x70, 0xff, 0xf4, 0x1c, -0x3d, 0xfd, 0x6d, 0x17, 0x53, 0x25, 0x44, 0x9b, 0x3c, 0xba, 0x5c, 0xa3, 0x04, 0x4a, 0x53, 0xfd, -0xa1, 0xdd, 0x03, 0x48, 0x48, 0x71, 0x88, 0x73, 0x99, 0x3c, 0xac, 0xef, 0x5c, 0x6d, 0x4d, 0xb8, -0xc5, 0xbd, 0x11, 0xcf, 0x0f, 0x23, 0x86, 0x8b, 0x1b, 0x8c, 0xc3, 0xf4, 0x95, 0xf2, 0xc5, 0x18, -0x08, 0x93, 0x28, 0xf7, 0x47, 0x2b, 0x53, 0x27, 0xf7, 0x1c, 0xb6, 0x3d, 0x74, 0xe3, 0x46, 0xaf, -0x18, 0x2b, 0xa2, 0x8e, 0xe8, 0xc6, 0x83, 0xea, 0x2e, 0x6a, 0xe4, 0xd2, 0xd3, 0x48, 0xad, 0x48, -0xb7, 0x6c, 0x4f, 0xd3, 0x49, 0x8f, 0x68, 0x37, 0x1c, 0x74, 0xca, 0x49, 0x37, 0x1c, 0x74, 0xca, -0x29, 0x6e, 0x38, 0x56, 0x83, 0xa9, 0x4b, 0x1e, 0x5e, 0xa1, 0x51, 0x51, 0x9d, 0x74, 0x0a, 0x8a, -0xdf, 0x3b, 0xd3, 0xa7, 0xa0, 0x9d, 0x7c, 0x0a, 0xaa, 0xb5, 0x89, 0x4f, 0xfa, 0xb8, 0x4d, 0xa9, -0x33, 0x16, 0x25, 0x37, 0xf5, 0x8d, 0x56, 0xcd, 0xef, 0x8f, 0xf1, 0x29, 0xe8, 0xcd, 0x74, 0x94, -0x88, 0x93, 0x23, 0x4e, 0xb3, 0x7f, 0xbf, 0x85, 0x6f, 0x30, 0x32, 0x94, 0x94, 0x8b, 0xce, 0x6a, -0x13, 0x76, 0xad, 0xde, 0xb9, 0x99, 0x1e, 0x4a, 0xc5, 0xd5, 0x68, 0x29, 0x57, 0xfa, 0x96, 0xe1, -0xd0, 0xef, 0x1d, 0x88, 0x11, 0x7e, 0x1f, 0xb1, 0x52, 0x39, 0x5d, 0x46, 0xbe, 0x36, 0xef, 0x72, -0x6e, 0xbd, 0x5b, 0x20, 0xad, 0x18, 0xbf, 0x37, 0x62, 0x8a, 0x8d, 0x9d, 0x08, 0x1f, 0xbb, 0x96, -0xb3, 0xa5, 0xb4, 0xfb, 0xe2, 0x75, 0xf4, 0xad, 0xfa, 0x43, 0x5c, 0xad, 0xa4, 0x97, 0xf7, 0x14, -0x7d, 0xef, 0xca, 0x61, 0xd9, 0xd7, 0x89, 0xd4, 0xad, 0x19, 0xc6, 0xb6, 0x85, 0x30, 0x06, 0xeb, -0xad, 0xd7, 0xc2, 0xd2, 0xb7, 0x18, 0x47, 0x05, 0x3c, 0x98, 0x71, 0x87, 0x71, 0x14, 0x73, 0xda, -0x84, 0x39, 0xe1, 0x5e, 0x90, 0x48, 0xd1, 0x9d, 0x93, 0x8e, 0x20, 0xdb, 0x00, 0xd9, 0xc3, 0xf7, -0x80, 0x2b, 0x78, 0x8f, 0x8a, 0xa5, 0xf6, 0x28, 0xae, 0x1f, 0xdd, 0x15, 0x0d, 0x61, 0xca, 0x97, -0x78, 0x7f, 0x6a, 0xe4, 0xdd, 0xa9, 0x4d, 0xdb, 0xad, 0xda, 0xb4, 0xdd, 0xaa, 0x0d, 0x67, 0xb3, -0xee, 0xfe, 0x78, 0xed, 0x4b, 0x22, 0x25, 0xa6, 0x72, 0xf3, 0xad, 0xb0, 0xb6, 0x73, 0xa1, 0x7f, -0x0e, 0x97, 0xbf, 0x27, 0x91, 0xaf, 0xdd, 0x9b, 0x15, 0xab, 0x7b, 0x52, 0x3b, 0x28, 0xaf, 0xe1, -0x34, 0xf6, 0xa5, 0x9d, 0x05, 0xb7, 0x8a, 0xb3, 0x60, 0xc6, 0x9d, 0x72, 0x92, 0xf1, 0xee, 0x19, -0x36, 0x22, 0x11, 0xa6, 0xfb, 0xe4, 0x20, 0xe3, 0x50, 0xe3, 0xcc, 0x87, 0x9c, 0xc6, 0xc7, 0xe3, -0xb9, 0xf6, 0x98, 0x9e, 0xa2, 0x44, 0xec, 0xce, 0x24, 0x30, 0x74, 0xb6, 0x91, 0x9c, 0xba, 0x83, -0xf6, 0x22, 0xce, 0xe0, 0x15, 0x56, 0x42, 0x10, 0x6f, 0xc8, 0x4b, 0xd9, 0x9b, 0x43, 0xaa, 0x73, -0x8c, 0xb4, 0x26, 0x93, 0xd4, 0xa9, 0x13, 0x57, 0xac, 0x8b, 0x28, 0x68, 0x73, 0x6c, 0x28, 0x31, -0x87, 0x4f, 0x91, 0x7f, 0xcf, 0x7c, 0x13, 0x35, 0xe2, 0x14, 0x41, 0x3b, 0x3d, 0x68, 0x22, 0x8a, -0xc1, 0x4e, 0xfa, 0xb5, 0x11, 0xff, 0x24, 0x79, 0xf9, 0x1e, 0xc8, 0x73, 0x41, 0x36, 0x8e, 0xb7, -0xdb, 0x6b, 0x44, 0x1a, 0x6f, 0x13, 0xd2, 0x3c, 0xbd, 0xc1, 0x59, 0xb5, 0x37, 0xd4, 0xcd, 0xf5, -0x3b, 0x9c, 0x90, 0x0e, 0xdf, 0xc8, 0xe1, 0xa6, 0xfa, 0x1d, 0xf6, 0xac, 0xb5, 0x20, 0x57, 0x93, -0xf5, 0x53, 0xe6, 0x90, 0x2d, 0x2c, 0x79, 0x8d, 0x62, 0x10, 0x25, 0x13, 0x84, 0xfa, 0x1d, 0x48, -0x75, 0xf9, 0x44, 0x1a, 0x0e, 0x31, 0x70, 0x48, 0x38, 0x13, 0x2f, 0x9d, 0x93, 0x91, 0xbf, 0xf8, -0x6f, 0x2a, 0x37, 0x9b, 0x43, 0x6b, 0x16, 0x75, 0x41, 0x04, 0xa2, 0xe8, 0x8a, 0xdd, 0x54, 0x82, -0xc4, 0xdf, 0x03, 0xba, 0x12, 0xb2, 0x38, 0xa4, 0xfe, 0x36, 0x25, 0x98, 0xf8, 0x4b, 0xe4, 0xe6, -0x96, 0x71, 0x28, 0xf3, 0x7d, 0x7b, 0xb1, 0xf5, 0xd0, 0xe4, 0x0d, 0xc3, 0xca, 0xf0, 0x0f, 0x40, -0x09, 0x7d, 0x0c, 0x41, 0x8d, 0x9a, 0x7a, 0x34, 0x65, 0x53, 0x54, 0xf8, 0x27, 0x9b, 0xc9, 0x3f, -0x2f, 0xcc, 0x1a, 0xdb, 0x0a, 0x4b, 0xf6, 0xc2, 0x56, 0xee, 0xd7, 0x6e, 0xed, 0x74, 0xc6, 0x0d, -0x5b, 0xd9, 0x32, 0x15, 0x69, 0x8c, 0xf1, 0xf1, 0x98, 0x5c, 0xe0, 0x53, 0xa0, 0x5a, 0x28, 0xf4, -0xd6, 0x83, 0x4c, 0x1a, 0x37, 0x56, 0x7d, 0x0f, 0x6c, 0xc9, 0xc2, 0x31, 0x92, 0xba, 0x28, 0x48, -0xcb, 0xfc, 0xdb, 0x05, 0xfd, 0x25, 0xa8, 0x46, 0xc6, 0x8f, 0x6b, 0x9d, 0xe0, 0x30, 0x38, 0xeb, -0x63, 0x03, 0x88, 0x81, 0xac, 0x4b, 0x04, 0x19, 0xef, 0x26, 0x7a, 0xee, 0x65, 0xe6, 0xe7, 0xbf, -0x2f, 0x41, 0xf4, 0x1d, 0xd7, 0x68, 0x3a, 0xf2, 0x9d, 0x36, 0xf0, 0xbc, 0xd0, 0x06, 0x25, 0xe9, -0x90, 0x4a, 0xc5, 0xac, 0x0b, 0xd3, 0x51, 0x81, 0x29, 0x1c, 0xdd, 0x01, 0x4e, 0x03, 0xd9, 0x48, -0xcd, 0xe0, 0xe9, 0x48, 0x81, 0xe4, 0x22, 0xed, 0x91, 0xbb, 0x92, 0xed, 0x10, 0xb3, 0x3f, 0x1f, -0xfd, 0xf9, 0x5f, 0xcf, 0xf8, 0x6d, 0xe8, 0xb7, 0xe9, 0xbe, 0xe7, 0xa1, 0x3f, 0xef, 0xeb, 0x33, -0xe3, 0xe7, 0x76, 0xd8, 0xb4, 0x2f, 0xe9, 0x98, 0xe1, 0x60, 0x3a, 0xf7, 0xfc, 0xce, 0x3b, 0x7d, -0xcd, 0xa4, 0xb5, 0xe9, 0x73, 0xbd, 0x25, 0xed, 0x2d, 0x5f, 0x89, 0x9a, 0x08, 0xb0, 0x2e, 0x29, -0xb7, 0x17, 0x1c, 0x34, 0x36, 0x8c, 0xc7, 0x95, 0xd1, 0x09, 0x57, 0xf8, 0x7f, 0xb8, 0xee, 0x56, -0x24, 0x39, 0xec, 0xb0, 0xc9, 0x2f, 0xb8, 0x37, 0xc5, 0x06, 0x13, 0x73, 0xdc, 0x11, 0xe7, 0xe7, -0x13, 0x1f, 0xc9, 0x61, 0x7b, 0x55, 0xb4, 0x0f, 0x88, 0x53, 0xfe, 0x1b, 0xb8, 0xea, 0xde, 0x75, -0x57, 0x29, 0x13, 0xf3, 0x49, 0x17, 0x83, 0xb9, 0xee, 0x3d, 0x47, 0x40, 0x68, 0x0f, 0xf5, 0xc9, -0x0e, 0xb3, 0x13, 0x62, 0xeb, 0xba, 0xec, 0xd1, 0xbe, 0xe9, 0x0b, 0x5e, 0x73, 0xf5, 0x0d, 0x75, -0x27, 0x9d, 0xd8, 0xc6, 0xd6, 0x77, 0x99, 0xa2, 0x7d, 0x6a, 0xae, 0x52, 0x12, 0x5b, 0x9f, 0x88, -0xa1, 0x2b, 0xa2, 0x38, 0x70, 0x7c, 0x9c, 0x18, 0xeb, 0x2d, 0x8e, 0x95, 0xd4, 0xc5, 0xb2, 0x28, -0x66, 0x8c, 0xe5, 0x40, 0x17, 0xf1, 0x9c, 0x6e, 0x57, 0x0a, 0x62, 0x03, 0x14, 0x3e, 0xbd, 0x1f, -0xc3, 0x07, 0x12, 0x56, 0x74, 0x1d, 0x62, 0x5b, 0xe6, 0x01, 0x9a, 0x33, 0x46, 0x1e, 0x1f, 0x6a, -0xcf, 0xa2, 0x4a, 0x77, 0x94, 0xce, 0x03, 0xdd, 0x64, 0x81, 0x6b, 0x35, 0x58, 0xbb, 0x8d, 0x02, -0x2b, 0x9f, 0x0c, 0x3a, 0x08, 0x53, 0xb5, 0x76, 0x83, 0x80, 0x75, 0x93, 0x41, 0x27, 0xb8, 0xe8, -0x0e, 0x9c, 0xc2, 0xcc, 0x9e, 0x08, 0x85, 0x74, 0xdb, 0xc6, 0xd6, 0x89, 0x55, 0xc9, 0xfe, 0x36, -0x9c, 0x65, 0x1e, 0xe2, 0x35, 0x88, 0xbe, 0x49, 0x98, 0x60, 0x74, 0x54, 0x58, 0x05, 0xde, 0x35, -0x20, 0xac, 0x00, 0xbf, 0xb8, 0x8e, 0xb4, 0x14, 0x91, 0xb5, 0x6b, 0x92, 0x9f, 0x69, 0xdc, 0x30, -0x43, 0xca, 0x8d, 0xcb, 0x50, 0xc7, 0x85, 0xbc, 0x8d, 0x90, 0xc2, 0xd1, 0x52, 0x0f, 0x6a, 0xa9, -0xd7, 0x53, 0xc9, 0xc9, 0x7b, 0x46, 0x07, 0xbb, 0xc1, 0x8e, 0xf9, 0x50, 0xfa, 0x54, 0x2a, 0xfa, -0xa2, 0xd5, 0xb2, 0x79, 0x01, 0xe6, 0x4f, 0x9c, 0x2b, 0xfd, 0x93, 0x29, 0x3a, 0x6a, 0xc6, 0x59, -0x44, 0xab, 0xd4, 0xa6, 0x4e, 0x43, 0x53, 0x43, 0xfa, 0x9c, 0x80, 0xe9, 0xd0, 0x0c, 0x6d, 0x7a, -0xec, 0x36, 0xb4, 0xe9, 0xb1, 0x94, 0xb5, 0x69, 0x27, 0xd2, 0xa6, 0x8e, 0x06, 0xc5, 0xaa, 0xd1, -0xef, 0x2f, 0xa6, 0xa9, 0xd2, 0x8f, 0xe4, 0x25, 0x69, 0x6b, 0x4e, 0xc6, 0x3b, 0xd2, 0xa1, 0x33, -0x78, 0x77, 0x04, 0x2c, 0x5e, 0x31, 0x61, 0x0f, 0xca, 0x8f, 0x34, 0x6d, 0xe3, 0x79, 0x54, 0x82, -0x3b, 0x7a, 0xe1, 0x08, 0xd1, 0xf5, 0x8e, 0x32, 0xa4, 0xeb, 0x49, 0x86, 0x42, 0xae, 0x3d, 0xd0, -0x8a, 0xd4, 0xbd, 0x94, 0x34, 0xd8, 0x1b, 0xf8, 0x4c, 0x81, 0x70, 0x80, 0xc2, 0xc4, 0x04, 0xae, -0xd4, 0x0c, 0xbd, 0xb9, 0xfd, 0x66, 0x7e, 0x9e, 0xc1, 0xba, 0x34, 0x3f, 0x8f, 0x83, 0x64, 0xa8, -0x35, 0x7e, 0x1e, 0x1b, 0xd9, 0x0e, 0x4b, 0xe9, 0xab, 0x75, 0x45, 0x1d, 0xe0, 0x0e, 0x39, 0xeb, -0x99, 0xd6, 0x5e, 0x1e, 0x3d, 0x52, 0xb1, 0x54, 0x31, 0xa6, 0xda, 0x93, 0x28, 0xd4, 0x76, 0xf3, -0x8f, 0xe8, 0x44, 0x40, 0x96, 0xec, 0x77, 0x6b, 0x37, 0x9b, 0xc3, 0xb1, 0x60, 0xe2, 0x1d, 0xb9, -0x4e, 0xd8, 0xdd, 0x92, 0x2d, 0x33, 0x79, 0x95, 0x32, 0xb4, 0xe5, 0xb4, 0xf9, 0x0f, 0xa7, 0x57, -0xf5, 0x96, 0xbd, 0x6f, 0xa1, 0x55, 0x5f, 0x12, 0x23, 0xb0, 0xa8, 0x94, 0x66, 0x0f, 0xd2, 0xee, -0x34, 0xc3, 0x1e, 0xe0, 0x19, 0xf6, 0x80, 0x36, 0xc3, 0x1e, 0xd0, 0x66, 0x58, 0x17, 0xb8, 0x08, -0x57, 0x27, 0x7b, 0xee, 0x34, 0xcb, 0xd6, 0x02, 0xcf, 0x13, 0x2f, 0xf8, 0x9e, 0x52, 0x5f, 0x38, -0xe1, 0xec, 0x02, 0xbf, 0x68, 0x89, 0x3a, 0x4e, 0xf6, 0xe2, 0x45, 0x9e, 0x98, 0xc6, 0x53, 0xe6, -0xe2, 0x79, 0xe7, 0xe2, 0x79, 0xe7, 0xd2, 0xe6, 0x9d, 0x4b, 0x9b, 0x77, 0xad, 0xe9, 0x79, 0x87, -0xb9, 0xdb, 0x57, 0x6b, 0x73, 0xef, 0x8e, 0x79, 0x8a, 0x13, 0x7e, 0xce, 0x37, 0xe0, 0x10, 0xda, -0xba, 0x22, 0x98, 0x32, 0x5a, 0x8a, 0xa4, 0x94, 0xcf, 0x0b, 0x8d, 0x1e, 0x37, 0x18, 0xf9, 0xf6, -0xc5, 0xcc, 0x94, 0xf0, 0x6b, 0xf1, 0xa7, 0x18, 0x1f, 0x0e, 0x94, 0x3d, 0x00, 0x12, 0xd6, 0xe1, -0x5e, 0xac, 0x01, 0xee, 0x90, 0x5c, 0x83, 0x07, 0xc0, 0xc4, 0x35, 0xa8, 0x61, 0xab, 0xda, 0x35, -0xbc, 0x66, 0x40, 0xac, 0x18, 0xcc, 0x75, 0x79, 0xaa, 0x5c, 0x25, 0xd0, 0x63, 0xd8, 0xbf, 0x29, -0x51, 0xe6, 0x5d, 0x02, 0x8e, 0x45, 0x8f, 0x80, 0x6b, 0x11, 0x59, 0x84, 0x74, 0xe3, 0xdb, 0x08, -0x1e, 0x7c, 0x9b, 0xa0, 0xa4, 0x34, 0x84, 0xbb, 0x82, 0xaf, 0x94, 0x34, 0xae, 0xf8, 0xe9, 0x3c, -0xb0, 0x0a, 0x71, 0x0e, 0x86, 0x4a, 0x50, 0xff, 0x0d, 0xaa, 0x75, 0xca, 0xca, 0xad, 0x5c, 0xa9, -0xd9, 0xe9, 0x92, 0xdd, 0x08, 0xdd, 0x6a, 0x6f, 0x4c, 0x37, 0x2b, 0x4e, 0xb9, 0x98, 0xed, 0x97, -0xd3, 0x6d, 0x39, 0xdb, 0x50, 0x72, 0x7c, 0x1e, 0xd7, 0x9b, 0xdd, 0xbe, 0x34, 0xe9, 0x4a, 0xaf, -0x90, 0x32, 0x77, 0x98, 0xed, 0xc7, 0x9d, 0xc6, 0xfd, 0x3d, 0xa0, 0xe4, 0xb9, 0x1e, 0xa1, 0x18, -0xfa, 0xef, 0xf6, 0x3a, 0x9a, 0xbd, 0xf1, 0xf7, 0x53, 0x7c, 0x09, 0xb5, 0x37, 0xa6, 0xc6, 0xeb, -0x33, 0x3c, 0x12, 0x29, 0xd7, 0xe6, 0xb4, 0x6b, 0x3b, 0xee, 0xf7, 0x31, 0xa4, 0x64, 0xc0, 0x60, -0x9b, 0xc1, 0x19, 0x29, 0x8b, 0x39, 0x97, 0xd2, 0xae, 0x63, 0x73, 0xc3, 0xa3, 0x8d, 0xf0, 0xf9, -0x20, 0x3c, 0x1a, 0x77, 0x26, 0x1b, 0x6e, 0xb6, 0x91, 0x3d, 0x3f, 0x08, 0xab, 0x12, 0xb9, 0x72, -0x30, 0xda, 0x2a, 0x6c, 0x16, 0x48, 0xed, 0x4d, 0xdb, 0x52, 0xd2, 0x6a, 0x29, 0x2b, 0x76, 0xa9, -0x5c, 0x96, 0x71, 0x2e, 0xed, 0xa5, 0xe9, 0xd3, 0x3b, 0xcb, 0x73, 0xc7, 0xc5, 0xec, 0x53, 0x5f, -0x0d, 0xef, 0x65, 0xab, 0x3c, 0xab, 0x38, 0xdc, 0x96, 0x6c, 0x98, 0x61, 0x9f, 0x61, 0xd5, 0x4c, -0x8b, 0xba, 0x24, 0x23, 0xa0, 0xc1, 0x87, 0x4d, 0xcc, 0x95, 0xf1, 0x9f, 0xe3, 0x73, 0x84, 0x04, -0x98, 0x5a, 0xc7, 0x78, 0x57, 0x0a, 0x7a, 0xac, 0x0d, 0x07, 0x85, 0x4d, 0xdf, 0x88, 0xae, 0x3d, -0x54, 0xa2, 0x96, 0xca, 0x42, 0x61, 0x98, 0x6a, 0x25, 0xf1, 0x48, 0x52, 0xfc, 0x54, 0x9d, 0xe9, -0x7e, 0x1f, 0xa1, 0x48, 0x40, 0x9c, 0x52, 0xde, 0xdf, 0x00, 0x81, 0x65, 0x0f, 0xc0, 0xae, 0xf0, -0x1e, 0x70, 0x84, 0x87, 0xf0, 0x6d, 0xc6, 0xc7, 0xaa, 0xe4, 0x93, 0x1e, 0x1f, 0x9c, 0xb9, 0xfa, -0x51, 0x08, 0x20, 0xc5, 0x6b, 0xd6, 0xe5, 0x81, 0x31, 0x90, 0xfa, 0xfd, 0x1c, 0xec, 0x5a, 0x95, -0x63, 0xdf, 0x03, 0x81, 0x79, 0xb5, 0x10, 0x68, 0x74, 0xc1, 0x2e, 0x25, 0x8f, 0x6d, 0xc2, 0xcd, -0x4c, 0x5b, 0x26, 0xda, 0xe8, 0x0b, 0xf0, 0xfc, 0xf0, 0xb2, 0xbe, 0x5f, 0x47, 0x0f, 0x90, 0x9d, -0xfa, 0xa4, 0x09, 0xa1, 0xb9, 0x1b, 0x76, 0x39, 0xab, 0x6a, 0x6f, 0x4c, 0xfa, 0xd9, 0xda, 0x7d, -0x5e, 0xb7, 0x34, 0x32, 0x18, 0xcf, 0x61, 0xfe, 0x46, 0x9c, 0x33, 0xe1, 0xd7, 0x48, 0xdf, 0x52, -0xec, 0xf9, 0x84, 0x99, 0xe3, 0x2d, 0x53, 0xde, 0x71, 0x92, 0x15, 0x8f, 0x2a, 0x08, 0xd4, 0xbd, -0x17, 0xb0, 0x0a, 0xe8, 0xb8, 0x88, 0xb4, 0xdb, 0xf9, 0x31, 0xd7, 0x72, 0x97, 0x17, 0x02, 0xb8, -0xbf, 0x46, 0x48, 0x22, 0xcc, 0x83, 0xbb, 0x52, 0x0f, 0xce, 0xf8, 0xd0, 0x87, 0x88, 0xa3, 0x47, -0xc1, 0x23, 0x67, 0xbb, 0xef, 0x76, 0x07, 0xe9, 0xce, 0x5a, 0x21, 0xdb, 0x1c, 0x77, 0x93, 0xfc, -0xd9, 0xf4, 0x47, 0x8e, 0xa0, 0x6f, 0xf9, 0xd8, 0x07, 0x60, 0x7e, 0x30, 0xca, 0xf7, 0x17, 0xd2, -0xa9, 0x0f, 0xc0, 0xf2, 0x60, 0x2d, 0xe4, 0xfa, 0xf2, 0xc6, 0x70, 0x67, 0x78, 0x30, 0x08, 0x79, -0xa5, 0x1e, 0x0c, 0x5d, 0x03, 0x39, 0x0f, 0x86, 0x20, 0x7f, 0x7e, 0x04, 0xcc, 0x8e, 0xc1, 0x86, -0x6d, 0xb8, 0x66, 0x36, 0xc4, 0x2b, 0x3d, 0xd5, 0xd8, 0x8a, 0x12, 0x98, 0xbb, 0xd6, 0x74, 0x54, -0x9c, 0x8f, 0x0f, 0xc6, 0xdd, 0x9e, 0x1a, 0xc4, 0x4d, 0x4b, 0x20, 0x3b, 0x10, 0xda, 0xfd, 0x73, -0x7b, 0x4e, 0xe3, 0xba, 0xd2, 0xe0, 0xf6, 0xe3, 0xc9, 0x7b, 0xc7, 0xbe, 0x85, 0xdf, 0x0d, 0x72, -0x8d, 0xe0, 0x17, 0x9d, 0x6c, 0xc3, 0xd9, 0x65, 0x75, 0x2e, 0x73, 0x58, 0xc4, 0x4d, 0xae, 0xda, -0x13, 0x7b, 0x26, 0x1e, 0xa1, 0x6f, 0xb1, 0x1f, 0x40, 0x30, 0x41, 0x18, 0x73, 0x90, 0x6e, 0x55, -0xa6, 0x76, 0x2a, 0x16, 0xb9, 0x8e, 0xe0, 0x16, 0x5b, 0x3e, 0xa6, 0x1e, 0x41, 0xc8, 0x41, 0xfa, -0x1f, 0x6f, 0x9c, 0xd0, 0x38, 0xc8, 0x36, 0xac, 0x38, 0x1a, 0xdd, 0x10, 0x3d, 0x1a, 0xd9, 0xf0, -0x94, 0x01, 0xe9, 0x24, 0x87, 0xd0, 0x4a, 0x44, 0x70, 0x1a, 0x21, 0xc9, 0x19, 0xe6, 0xdc, 0xe8, -0x82, 0x26, 0xec, 0x99, 0x95, 0xb4, 0xcf, 0xf1, 0x8d, 0xb5, 0x4f, 0x01, 0xe3, 0x2e, 0xd2, 0xbc, -0x3a, 0x84, 0xfd, 0x42, 0xfa, 0x3f, 0xb7, 0x7f, 0x88, 0xf0, 0xeb, 0x56, 0x49, 0x5b, 0x3f, 0xf6, -0xa9, 0xa2, 0xf5, 0x5d, 0x50, 0xdc, 0xf0, 0x1b, 0x0b, 0xa3, 0x08, 0x8f, 0xb0, 0x0e, 0x11, 0xe2, -0x78, 0xc8, 0xdc, 0xf0, 0x63, 0x2f, 0x14, 0xc1, 0x5c, 0xba, 0xe7, 0xcf, 0xfa, 0x9e, 0x0f, 0xa1, -0x55, 0x39, 0xc6, 0xf0, 0x47, 0x4a, 0xa3, 0xcf, 0x9f, 0x20, 0xed, 0x24, 0x08, 0xb7, 0x62, 0xa5, -0x5d, 0x50, 0x13, 0xa8, 0x2d, 0x85, 0xe8, 0x9b, 0xdb, 0xb7, 0x92, 0xb6, 0x31, 0x4d, 0x86, 0x16, -0x24, 0x4f, 0xb7, 0xe1, 0xc8, 0x20, 0x49, 0x7d, 0x93, 0x2c, 0x7d, 0xbc, 0x06, 0x43, 0x49, 0x0f, -0xd1, 0x76, 0xf4, 0xf5, 0xc4, 0x21, 0x6b, 0x2f, 0xd1, 0x41, 0xbb, 0x42, 0x8b, 0x22, 0x50, 0x87, -0x25, 0xe4, 0x6e, 0x3f, 0xb2, 0xa8, 0x16, 0xea, 0xf9, 0x26, 0xa5, 0x61, 0x28, 0xbc, 0x88, 0xb4, -0xda, 0x08, 0xa9, 0xf5, 0x3a, 0x6c, 0x61, 0xaf, 0xc6, 0x8b, 0x7b, 0x4d, 0xa9, 0x5f, 0x6b, 0x38, -0x40, 0xb9, 0xc5, 0x1c, 0x24, 0xf5, 0x4c, 0x52, 0xde, 0xc1, 0x03, 0x22, 0xbf, 0x47, 0xff, 0xf0, -0xfc, 0xa6, 0x25, 0x05, 0xb2, 0xec, 0x49, 0xe3, 0xe8, 0x60, 0xc2, 0x84, 0x74, 0xb5, 0xac, 0x90, -0x6e, 0x44, 0x1a, 0x21, 0x0f, 0xdf, 0xe7, 0x3d, 0x8a, 0xbb, 0xe9, 0x0a, 0x92, 0xb5, 0x24, 0x39, -0x6e, 0x77, 0xce, 0x8b, 0x9b, 0xdb, 0x4c, 0x91, 0xa7, 0x9f, 0x3b, 0xae, 0x18, 0xe5, 0xea, 0x3e, -0x44, 0xa3, 0xa1, 0x79, 0x6c, 0x2b, 0x71, 0x05, 0xbc, 0x33, 0x80, 0x33, 0xb3, 0xf5, 0xcc, 0xe6, -0xe3, 0x83, 0x67, 0x36, 0x51, 0x5a, 0x3f, 0x62, 0x91, 0x3b, 0x2e, 0x41, 0x2e, 0xed, 0x98, 0xed, -0x66, 0x8f, 0x25, 0xb2, 0x11, 0x69, 0x28, 0xa9, 0x1f, 0xe8, 0x9b, 0xbb, 0x95, 0x78, 0xa5, 0x60, -0x33, 0xd5, 0xbe, 0xc2, 0x8d, 0x39, 0x7b, 0xc0, 0xe6, 0x0b, 0xef, 0xaf, 0x6e, 0x77, 0x44, 0x7f, -0x46, 0xd8, 0x98, 0x2b, 0x7b, 0xd7, 0x26, 0xdf, 0x1a, 0xf0, 0x9c, 0xd9, 0xa4, 0xb8, 0x1d, 0xd5, -0x2f, 0x1c, 0xe7, 0x9c, 0x37, 0xf5, 0xdc, 0x83, 0x79, 0x6f, 0x56, 0x0a, 0xdc, 0x84, 0xb1, 0x99, -0x11, 0xff, 0xf1, 0x44, 0x8f, 0x2a, 0x16, 0xf1, 0x6d, 0xed, 0x3d, 0xc7, 0xd7, 0x53, 0xce, 0x01, -0xdc, 0xa9, 0xfc, 0x74, 0x2b, 0x17, 0xde, 0x5f, 0xd3, 0x9e, 0x1b, 0x3d, 0xe6, 0xa8, 0x79, 0xe1, -0x38, 0xc6, 0xce, 0xc7, 0xdc, 0x4a, 0xfe, 0xe1, 0xb8, 0x92, 0xe3, 0xa1, 0xb4, 0x26, 0x3f, 0xfa, -0x58, 0x47, 0x1d, 0xce, 0x18, 0xac, 0x0b, 0x61, 0xf5, 0x31, 0x1e, 0x97, 0x08, 0xce, 0x37, 0xea, -0xd7, 0x00, 0xe6, 0xe5, 0x13, 0x14, 0x98, 0xaf, 0x1d, 0xf2, 0x87, 0xb0, 0x1d, 0x76, 0x73, 0xe3, -0x3a, 0x74, 0xe7, 0xa1, 0xdb, 0x66, 0x0b, 0xc0, 0xbd, 0x63, 0x9b, 0xd6, 0x1a, 0x28, 0x16, 0x69, -0x4f, 0xf0, 0xac, 0x16, 0x73, 0xde, 0x1e, 0x7c, 0x00, 0x67, 0xbd, 0xbc, 0x54, 0xce, 0xb6, 0x9b, -0x1c, 0x46, 0xa7, 0xc5, 0x35, 0x0b, 0x57, 0x6a, 0x20, 0x83, 0xc7, 0x65, 0xfa, 0x1c, 0xe9, 0xcd, -0x6c, 0xaf, 0x51, 0x27, 0x71, 0xed, 0x47, 0x1a, 0xf0, 0x25, 0xb3, 0x84, 0x30, 0xab, 0x2d, 0xdd, -0xf3, 0x0a, 0xbe, 0xad, 0xf1, 0x47, 0xbd, 0x44, 0x75, 0xd5, 0xe1, 0x1b, 0xc7, 0x10, 0x67, 0x66, -0x2f, 0x41, 0x3e, 0x9c, 0xa5, 0x4d, 0xa4, 0x7f, 0x86, 0xac, 0xf8, 0xc2, 0x5a, 0xa4, 0x8b, 0x79, -0x1e, 0x3d, 0xdf, 0x05, 0xad, 0x7c, 0x7a, 0xdb, 0x05, 0x6d, 0xe8, 0x6e, 0xc7, 0xdf, 0x4e, 0x6d, -0xbc, 0x5b, 0xb1, 0xaf, 0x77, 0x08, 0x4e, 0x89, 0x69, 0x49, 0xbb, 0xd9, 0x2c, 0x21, 0xce, 0x0a, -0xba, 0xc7, 0x48, 0x80, 0xc1, 0x1e, 0x39, 0x12, 0x2f, 0xc4, 0xb8, 0x72, 0x69, 0x31, 0xd8, 0x02, -0x24, 0xb1, 0x8f, 0xfd, 0xef, 0x0f, 0xf9, 0x72, 0xa2, 0xa3, 0x23, 0xf5, 0x9d, 0x51, 0x85, 0xd7, -0x28, 0x61, 0xc0, 0x81, 0xd5, 0x0c, 0x45, 0x6c, 0x8e, 0xfa, 0x17, 0x7e, 0x2e, 0x46, 0x9f, 0x47, -0xd8, 0x42, 0xb2, 0xaf, 0x43, 0x9b, 0x3d, 0xb5, 0x8a, 0x91, 0x66, 0x03, 0xc5, 0xf6, 0xaf, 0x86, -0x5c, 0x8c, 0x99, 0x6b, 0xb7, 0x6c, 0xff, 0x56, 0x5b, 0x20, 0xb2, 0xce, 0x51, 0xab, 0x94, 0xbf, -0x30, 0x2a, 0x5b, 0x14, 0x69, 0x68, 0xf3, 0xd8, 0xb7, 0x02, 0xf5, 0x34, 0xfa, 0xe5, 0x6e, 0x1c, -0x2f, 0x8c, 0x83, 0xa5, 0x95, 0x94, 0x1a, 0xa3, 0x6f, 0xfa, 0x2d, 0xd1, 0x23, 0x07, 0x63, 0x5d, -0xc6, 0xed, 0x83, 0x8a, 0x71, 0xc7, 0x3a, 0xbb, 0x74, 0xea, 0x5b, 0xfe, 0x98, 0x22, 0xe1, 0xee, -0x8e, 0x23, 0x45, 0xb8, 0x85, 0x23, 0xe7, 0xd3, 0x7b, 0x55, 0x81, 0x29, 0x3f, 0x41, 0x5c, 0x86, -0xb0, 0x75, 0x08, 0xc3, 0x68, 0x34, 0x23, 0x3c, 0xb6, 0x95, 0xbc, 0x1e, 0x49, 0x43, 0x28, 0x8d, -0x6c, 0xf1, 0xbf, 0x32, 0xb2, 0x4b, 0x33, 0xb9, 0x4e, 0xb6, 0xd1, 0xa8, 0x0a, 0xbe, 0xa3, 0x04, -0x69, 0xc4, 0xf0, 0xc7, 0xe1, 0x93, 0x77, 0xa8, 0xef, 0x1c, 0x9f, 0xe7, 0xf9, 0x92, 0x8c, 0x0b, -0x2c, 0x80, 0xa4, 0xca, 0x7b, 0xbd, 0x2e, 0x86, 0xea, 0x87, 0xae, 0x45, 0x11, 0xc6, 0xd0, 0x68, -0xb1, 0xd6, 0xcf, 0xdf, 0xef, 0x23, 0x28, 0xa2, 0xe1, 0x01, 0xf0, 0x49, 0xb3, 0x03, 0x47, 0x85, -0xe5, 0x2e, 0xcd, 0xd2, 0x1a, 0xba, 0x21, 0x54, 0x4c, 0x42, 0x07, 0x83, 0xe0, 0xf1, 0xea, 0x7e, -0xaa, 0xc6, 0x20, 0xb4, 0xb0, 0x18, 0xe6, 0x32, 0xd4, 0x00, 0x43, 0xbe, 0x80, 0x17, 0x86, 0x1c, -0xc2, 0xfe, 0xff, 0xa1, 0x91, 0x28, 0x81, 0x7f, 0x6c, 0x13, 0x67, 0xca, 0xbf, 0xc0, 0x3d, 0x99, -0x79, 0x98, 0xdb, 0xc0, 0x44, 0xb5, 0x26, 0x28, 0xca, 0xd2, 0xb0, 0xb8, 0x3f, 0xfe, 0xcb, 0x06, -0x86, 0xa9, 0x84, 0x9f, 0xf4, 0xd5, 0xde, 0xf8, 0x97, 0x97, 0x34, 0xae, 0x7a, 0x0b, 0xdf, 0x01, -0xec, 0xa0, 0xd4, 0xcf, 0x35, 0x52, 0xda, 0xe7, 0x49, 0x03, 0x15, 0xfa, 0x90, 0x4e, 0x35, 0x52, -0xde, 0x48, 0xb3, 0x9a, 0x5c, 0xe2, 0x14, 0xd3, 0xb1, 0xe4, 0xc6, 0xb5, 0x3a, 0x5c, 0xad, 0x5b, -0x7c, 0xb9, 0x63, 0xb8, 0xb3, 0xd0, 0x99, 0xf3, 0xc3, 0x41, 0xb6, 0x10, 0x26, 0x9d, 0x6a, 0x07, -0x0b, 0xee, 0x1b, 0xb9, 0x0f, 0x87, 0xc0, 0xe2, 0x6b, 0x1c, 0xbb, 0x04, 0x56, 0xdc, 0x67, 0x6c, -0x0f, 0x47, 0xc1, 0x4a, 0xb7, 0xea, 0xe8, 0xcf, 0x41, 0x7f, 0x2e, 0xfa, 0x73, 0xa8, 0x27, 0x7c, -0x21, 0xaf, 0x19, 0x71, 0xac, 0xd9, 0x51, 0xe2, 0xa9, 0xca, 0xcc, 0xdd, 0x17, 0x30, 0x5f, 0xcc, -0xf3, 0x39, 0x0c, 0x25, 0x6e, 0x38, 0x74, 0xe7, 0xa2, 0xdb, 0x92, 0x0e, 0xb5, 0xf2, 0x49, 0x39, -0xe6, 0x87, 0xee, 0x1c, 0xd7, 0x72, 0x1d, 0x3f, 0x4b, 0x32, 0x2d, 0xf3, 0xef, 0xe2, 0xdb, 0xc6, -0xd2, 0xd4, 0xee, 0x4b, 0x96, 0x54, 0x0f, 0xec, 0x85, 0xbe, 0x78, 0x1e, 0xf3, 0x5e, 0x59, 0xf9, -0x5c, 0x60, 0x7d, 0xea, 0xbc, 0x45, 0x8e, 0x3d, 0xff, 0x73, 0xc6, 0xd1, 0x1b, 0x91, 0x86, 0xab, -0x62, 0x1e, 0x89, 0x35, 0xda, 0x79, 0x95, 0x86, 0x71, 0x89, 0xf3, 0xb9, 0xab, 0xbb, 0xd8, 0x0e, -0x94, 0x35, 0x11, 0xd0, 0xb8, 0x5c, 0x2d, 0x34, 0xae, 0xd7, 0xbb, 0x5d, 0xc0, 0xf1, 0xb2, 0x30, -0x06, 0x7f, 0xd1, 0xdd, 0x15, 0x1b, 0x31, 0xa5, 0x99, 0x2d, 0x89, 0x35, 0xd3, 0x3e, 0x8a, 0xa9, -0x83, 0x48, 0xeb, 0x5a, 0xe4, 0x98, 0x3d, 0x2c, 0x4a, 0xa4, 0x1a, 0x13, 0x7f, 0x8a, 0x86, 0x05, -0xd3, 0xae, 0x1e, 0x49, 0x73, 0x5a, 0x91, 0x76, 0xa5, 0x68, 0x9a, 0xef, 0xd2, 0x43, 0xbc, 0xa9, -0x57, 0xf3, 0xdc, 0x41, 0x81, 0x5b, 0x62, 0xac, 0x02, 0xc1, 0x0f, 0xfb, 0xdb, 0x33, 0x74, 0x2a, -0x1a, 0xc6, 0x79, 0xf8, 0xc2, 0x89, 0xc5, 0x38, 0x67, 0x11, 0xaf, 0x0d, 0x78, 0x3b, 0xc0, 0x9c, -0xe6, 0x52, 0x23, 0x3c, 0x21, 0x8a, 0xf8, 0xc1, 0x0c, 0xec, 0xc6, 0x19, 0x44, 0xec, 0xc9, 0xe3, -0xcb, 0xc7, 0xb7, 0x6f, 0xac, 0x13, 0xcc, 0x0f, 0x05, 0x59, 0x0b, 0x82, 0xa7, 0xb4, 0x15, 0xc7, -0xf1, 0x23, 0xb0, 0x3c, 0x84, 0x18, 0x41, 0x45, 0xc3, 0x3b, 0x1f, 0x81, 0xf5, 0xa1, 0xa5, 0x90, -0x47, 0xa7, 0xa3, 0x18, 0x2b, 0x07, 0x63, 0xe5, 0x23, 0xcd, 0xe8, 0x07, 0x33, 0x53, 0x3e, 0x46, -0xc7, 0xb3, 0x8a, 0xf1, 0x81, 0x25, 0x60, 0xc6, 0x79, 0xea, 0x81, 0xb9, 0xbc, 0x16, 0x7a, 0x89, -0xf7, 0x50, 0xd3, 0x0c, 0x31, 0x1a, 0x8f, 0xd1, 0xde, 0x71, 0x13, 0x6d, 0xba, 0x19, 0xeb, 0x2e, -0xbb, 0xc3, 0x2f, 0x62, 0x5d, 0xe5, 0xbb, 0x3d, 0xb1, 0xdd, 0xb4, 0xe6, 0x72, 0x68, 0x35, 0x3b, -0x2d, 0x33, 0xe9, 0x5c, 0xaa, 0x77, 0x7a, 0x25, 0xaf, 0x22, 0xfd, 0x85, 0xa4, 0xe1, 0x89, 0xe7, -0xb2, 0x95, 0xb4, 0x06, 0xe2, 0xb3, 0x56, 0xb3, 0xf2, 0x53, 0xa8, 0x84, 0x75, 0xdc, 0x7e, 0x65, -0x84, 0x19, 0x69, 0xab, 0x7a, 0x0d, 0xae, 0xea, 0x0f, 0xb4, 0x55, 0xbd, 0x06, 0x57, 0x35, 0xce, -0xc8, 0x64, 0x66, 0x4d, 0x47, 0x53, 0x6b, 0x9a, 0xb4, 0x5c, 0x12, 0x2c, 0xf0, 0x7e, 0x15, 0x7c, -0x8e, 0x25, 0xd8, 0x12, 0x5f, 0x1c, 0xa6, 0x8f, 0x33, 0x44, 0xa4, 0x56, 0x15, 0xca, 0x4b, 0x11, -0x86, 0x91, 0xcd, 0xb9, 0xa8, 0x36, 0x3b, 0x4e, 0x09, 0x3d, 0xba, 0x0a, 0x4c, 0xef, 0x48, 0x8f, -0x13, 0xae, 0xec, 0x2b, 0xe5, 0x3a, 0xdd, 0x13, 0x79, 0x19, 0xbd, 0xda, 0x74, 0x0e, 0x82, 0xa3, -0xeb, 0xe2, 0xdd, 0x19, 0x0c, 0x95, 0xda, 0xbd, 0x9e, 0x4d, 0x3b, 0x13, 0xa5, 0xf5, 0x77, 0xe8, -0x4a, 0x8e, 0x92, 0xc3, 0x67, 0xab, 0xda, 0x6a, 0xfd, 0xcd, 0xdb, 0x1a, 0xce, 0xf3, 0x03, 0x70, -0xc4, 0x1b, 0x04, 0x44, 0xe0, 0x55, 0xc9, 0xa7, 0xa6, 0xcf, 0xe9, 0xd6, 0xa8, 0xe6, 0x4f, 0x69, -0x71, 0xd1, 0xce, 0x5b, 0x05, 0x6c, 0x48, 0x9d, 0xb0, 0xb2, 0x4f, 0x7f, 0xc2, 0x9a, 0x2a, 0xb9, -0x6f, 0xc9, 0x8d, 0xdf, 0xec, 0xa8, 0x7f, 0x81, 0x39, 0x17, 0x5f, 0x83, 0xad, 0x89, 0xba, 0x4f, -0x2f, 0x23, 0x9d, 0x6e, 0x6b, 0xfd, 0x0b, 0x9f, 0x5e, 0x02, 0xc3, 0x38, 0x84, 0x1a, 0x4b, 0x6f, -0x5c, 0x99, 0xa3, 0x44, 0x70, 0x05, 0xe3, 0xac, 0x5c, 0x98, 0x82, 0x15, 0x1d, 0x60, 0x59, 0x88, -0x70, 0xc2, 0x9f, 0xfb, 0x0f, 0x88, 0xb9, 0x22, 0x66, 0x2c, 0xe1, 0x6f, 0x8e, 0xd7, 0x4a, 0x50, -0xc1, 0x17, 0x24, 0x89, 0xff, 0x19, 0x50, 0x61, 0xa7, 0xfb, 0xab, 0x34, 0xca, 0x0c, 0x2f, 0x0f, -0xa4, 0xb4, 0x80, 0x57, 0x92, 0xcd, 0x6c, 0x97, 0xa6, 0x83, 0xac, 0x1c, 0x71, 0xb0, 0xd2, 0x32, -0x2f, 0x94, 0x39, 0xdc, 0xf0, 0x54, 0xdc, 0xcc, 0x34, 0x23, 0x18, 0x7c, 0x48, 0x1f, 0x18, 0xb1, -0x9f, 0x73, 0xe5, 0x58, 0x12, 0xf8, 0x24, 0x78, 0x1f, 0x7d, 0xef, 0x27, 0xba, 0xa6, 0x06, 0xd7, -0x62, 0x03, 0x59, 0x37, 0x4c, 0x44, 0x84, 0x6c, 0x52, 0x9f, 0xe9, 0xc8, 0xd3, 0x73, 0x70, 0x06, -0x1d, 0x5a, 0x17, 0x77, 0xd0, 0x79, 0xb2, 0x58, 0xc9, 0xbe, 0x2a, 0x4d, 0x5a, 0x99, 0xac, 0xb6, -0x02, 0x43, 0xd1, 0x9d, 0xcc, 0xf7, 0x81, 0xb5, 0x15, 0xfe, 0xab, 0xf9, 0x1a, 0xd7, 0x07, 0xb6, -0x6d, 0xfe, 0x12, 0x2a, 0x9d, 0x6c, 0xdb, 0x21, 0x8c, 0x7c, 0x95, 0xa5, 0xbf, 0x82, 0x42, 0x56, -0x0a, 0x31, 0x9b, 0xdc, 0xff, 0x47, 0x27, 0x2b, 0xa5, 0xf9, 0x45, 0x7f, 0xde, 0x25, 0xee, 0x0b, -0x2e, 0x63, 0x47, 0xb0, 0x1f, 0x04, 0x2f, 0xfa, 0xc7, 0xa4, 0xd1, 0xfc, 0x2e, 0x86, 0x35, 0xa4, -0x3b, 0xc2, 0x44, 0x72, 0x54, 0x9a, 0x7e, 0x71, 0x27, 0x85, 0x7c, 0x7c, 0x22, 0x25, 0x8d, 0x33, -0xa3, 0x9e, 0xa2, 0xae, 0x6c, 0x23, 0x4e, 0xc8, 0x74, 0x51, 0x59, 0xff, 0x45, 0x27, 0xd3, 0xa5, -0xf9, 0x4d, 0x6c, 0x91, 0xb2, 0x26, 0x61, 0x16, 0xba, 0x7e, 0xd4, 0x11, 0xc2, 0xa6, 0x57, 0xf6, -0x0b, 0xb9, 0x6b, 0x87, 0x66, 0x1d, 0xce, 0x49, 0xab, 0xe2, 0x2e, 0x0d, 0xa2, 0x91, 0x05, 0xf8, -0x4d, 0x0e, 0xc2, 0xda, 0xca, 0x33, 0x90, 0xf2, 0x93, 0xc3, 0x33, 0x21, 0xe5, 0xc7, 0x9d, 0x6e, -0x82, 0x94, 0x72, 0x22, 0xaa, 0x87, 0x94, 0xbf, 0x8d, 0x6a, 0x90, 0x92, 0xea, 0x9d, 0xcb, 0xd2, -0x81, 0x1b, 0x12, 0xd8, 0xf2, 0xb4, 0x6e, 0x6f, 0xd2, 0x08, 0x97, 0xa5, 0x87, 0x9a, 0x57, 0x4b, -0x34, 0xa8, 0xe9, 0xc0, 0x91, 0xca, 0xc3, 0xf6, 0xdd, 0x85, 0xad, 0x33, 0x0b, 0xfa, 0x90, 0xb1, -0x96, 0x3c, 0x86, 0x9f, 0x01, 0x4d, 0xdf, 0xa4, 0x99, 0xee, 0x1f, 0x6e, 0x7f, 0x96, 0x52, 0xff, -0x55, 0x75, 0x7f, 0x4a, 0x77, 0x46, 0x49, 0x31, 0x14, 0x78, 0x8a, 0x71, 0x67, 0xe8, 0x40, 0x0c, -0x66, 0xe9, 0xbc, 0x62, 0x70, 0xf5, 0xc1, 0x5a, 0xf8, 0xee, 0xc9, 0x5e, 0x48, 0x1a, 0x48, 0x6a, -0x89, 0x6f, 0xef, 0x5f, 0x57, 0x0f, 0xe2, 0x73, 0x1c, 0x9f, 0x51, 0x47, 0x94, 0x46, 0xd2, 0x6e, -0xb3, 0xae, 0x23, 0x1e, 0xc4, 0x44, 0xe3, 0x2a, 0x37, 0xb9, 0xe0, 0x7e, 0xba, 0x83, 0x5f, 0x65, -0x65, 0xb7, 0x1d, 0x31, 0xf8, 0x0d, 0x4a, 0x3b, 0xbb, 0x1d, 0x89, 0x1a, 0xfe, 0x7d, 0x20, 0x9e, -0x54, 0xa2, 0x9c, 0x26, 0x3b, 0xe1, 0x5c, 0x65, 0x61, 0x97, 0x31, 0xbe, 0x52, 0x59, 0xce, 0xae, -0x7f, 0x48, 0x38, 0xf9, 0xf7, 0xed, 0x78, 0x4c, 0xb1, 0xb1, 0xb4, 0xc9, 0x71, 0x25, 0xc8, 0xbf, -0xa3, 0x4a, 0xb9, 0x13, 0xe9, 0x38, 0xa5, 0xd4, 0x45, 0xb7, 0xa8, 0x1e, 0x17, 0xb9, 0x9d, 0x88, -0xf9, 0x19, 0x53, 0x1c, 0x22, 0x54, 0x47, 0x25, 0x8f, 0x4e, 0x20, 0x95, 0x1c, 0x4d, 0x4e, 0xc5, -0xc4, 0xbf, 0x27, 0xf9, 0x94, 0x99, 0x6e, 0xa7, 0xc7, 0x64, 0x92, 0x2c, 0x04, 0xb5, 0xce, 0x5c, -0x0c, 0x12, 0xd6, 0xd4, 0x1c, 0xc3, 0x76, 0x24, 0xc0, 0x78, 0x3c, 0xb6, 0x9e, 0x6a, 0x2a, 0x87, -0xa9, 0x84, 0x78, 0x1f, 0xe2, 0x7a, 0x8e, 0x44, 0x4f, 0x5a, 0x23, 0xda, 0x05, 0xa1, 0x11, 0xad, -0xa8, 0x9f, 0x6a, 0xaf, 0x5e, 0xe0, 0xde, 0x98, 0x20, 0xba, 0xb2, 0x1b, 0xb4, 0x13, 0xf6, 0xa0, -0x23, 0xc8, 0x7e, 0x73, 0xca, 0xcf, 0xb2, 0x15, 0x17, 0xf8, 0x9e, 0xb6, 0x4d, 0x55, 0x97, 0x0d, -0x90, 0x66, 0x00, 0xba, 0x85, 0xc1, 0x55, 0x4b, 0x37, 0xf8, 0x74, 0x8f, 0xea, 0x8f, 0x91, 0x1d, -0xf0, 0x30, 0xd2, 0xd9, 0x46, 0xa4, 0xa7, 0x6a, 0xec, 0x61, 0xe7, 0x03, 0x60, 0x64, 0xdc, 0x29, -0x87, 0x77, 0x8d, 0xc2, 0x61, 0xac, 0x45, 0x27, 0x18, 0x3d, 0x38, 0x1b, 0x6c, 0x8e, 0x08, 0xcb, -0x7a, 0x72, 0x58, 0x07, 0x18, 0x0b, 0x10, 0x2f, 0xe2, 0x7b, 0x9f, 0x69, 0x99, 0x6e, 0xf1, 0x9b, -0xb6, 0x61, 0x1b, 0x8c, 0x29, 0x89, 0x0a, 0xdf, 0x2c, 0xc4, 0x4d, 0x73, 0x87, 0x42, 0x7c, 0x7b, -0x5f, 0x43, 0x74, 0xdd, 0xd0, 0xcf, 0x49, 0xe7, 0x85, 0xdc, 0xa1, 0xee, 0xaf, 0xfa, 0x50, 0xbd, -0xea, 0x89, 0xa5, 0xf5, 0x69, 0xbd, 0xeb, 0xb5, 0x28, 0x3d, 0x45, 0xd5, 0xea, 0x69, 0x7c, 0xce, -0x54, 0x7f, 0xa8, 0x5e, 0x28, 0x8a, 0xa9, 0x67, 0x43, 0x18, 0xa7, 0x28, 0xaa, 0x9e, 0x23, 0xeb, -0x2d, 0xa4, 0xa9, 0xcd, 0x8f, 0x39, 0x2c, 0x8c, 0xa9, 0xef, 0x2f, 0x5c, 0xac, 0x4e, 0x2c, 0xac, -0x61, 0xc9, 0x99, 0x19, 0x92, 0x1b, 0x24, 0x17, 0xf4, 0xc2, 0x09, 0xcc, 0x79, 0x2c, 0xc5, 0x4b, -0x8b, 0xb4, 0x83, 0xd1, 0x5d, 0xac, 0x9e, 0x8e, 0x3d, 0x9d, 0x70, 0xc8, 0xd5, 0x76, 0x2c, 0x37, -0x25, 0xfb, 0x40, 0x37, 0x46, 0x3c, 0xd7, 0x8b, 0xd5, 0xfd, 0xf5, 0x87, 0xa6, 0x92, 0x0d, 0xdb, -0x90, 0xa6, 0x8a, 0xc5, 0xd6, 0x27, 0xe6, 0xc8, 0x55, 0xb8, 0xc3, 0xda, 0xe4, 0xd9, 0xbf, 0x78, -0x1d, 0x69, 0x9c, 0x56, 0xda, 0x97, 0x7e, 0xf9, 0x3a, 0xe4, 0xbd, 0xfb, 0xad, 0xb3, 0x9b, 0x7c, -0xd8, 0x1a, 0x6c, 0xcb, 0x51, 0xaa, 0xff, 0x2f, 0x1a, 0xc8, 0x96, 0x1c, 0xfa, 0x8e, 0x31, 0x27, -0x47, 0xb1, 0x7a, 0x94, 0x38, 0x39, 0x88, 0x8b, 0x43, 0x9c, 0xf2, 0xdc, 0x7c, 0x76, 0x23, 0x34, -0x89, 0x49, 0x17, 0xe7, 0x63, 0x1d, 0xe1, 0x65, 0x7c, 0x9f, 0x04, 0xd7, 0xfc, 0x6a, 0xd8, 0x5a, -0x75, 0x11, 0xf6, 0xcd, 0xaf, 0x4d, 0xdd, 0x90, 0xa8, 0x15, 0x64, 0x97, 0x5a, 0xde, 0x4c, 0xef, -0x79, 0x1d, 0xc4, 0x65, 0x87, 0x54, 0xb1, 0xfd, 0xc1, 0x28, 0xcc, 0x9d, 0x1f, 0x86, 0xc8, 0x7c, -0x92, 0xc2, 0x93, 0xf1, 0x7d, 0x1c, 0xd6, 0x62, 0x9f, 0x38, 0x1f, 0xac, 0x85, 0xc2, 0xd0, 0x45, -0xdd, 0x69, 0xef, 0xa9, 0xf9, 0xc4, 0xef, 0xb0, 0x99, 0xea, 0xf9, 0x20, 0x62, 0x0b, 0x0f, 0x2e, -0x86, 0x3c, 0x1c, 0x81, 0xfc, 0x07, 0x43, 0xe8, 0xaf, 0x81, 0xfc, 0xc6, 0xc5, 0x2f, 0x75, 0xa8, -0x47, 0x31, 0x74, 0x63, 0x63, 0xcd, 0xee, 0x0e, 0xf5, 0x18, 0x86, 0x6d, 0xca, 0xdc, 0x8d, 0x50, -0x6f, 0x2c, 0xbd, 0x31, 0xd9, 0x54, 0xbf, 0x13, 0x61, 0xd8, 0x6e, 0x1a, 0x49, 0x69, 0x39, 0x85, -0xb1, 0xbf, 0x8f, 0xfd, 0x91, 0xb4, 0x7f, 0x3b, 0xfb, 0xfd, 0xb6, 0x62, 0xf5, 0x6f, 0x3e, 0x1f, -0x84, 0xef, 0xca, 0x61, 0x9a, 0xff, 0x71, 0xe3, 0xbc, 0x18, 0x18, 0xe7, 0x57, 0x41, 0x41, 0x22, -0xc7, 0x5e, 0xe5, 0x7b, 0x00, 0x76, 0x36, 0x06, 0xb1, 0x1e, 0x3b, 0x15, 0x63, 0xb8, 0x0d, 0x76, -0xca, 0x02, 0xa3, 0xda, 0x61, 0x0f, 0xcb, 0x42, 0xfb, 0x4d, 0x90, 0xb1, 0xc2, 0x8a, 0xd8, 0x86, -0x78, 0xc0, 0x55, 0x65, 0x5f, 0xce, 0xa7, 0x51, 0x1e, 0xf9, 0x01, 0x28, 0x18, 0xde, 0x0b, 0x05, -0x71, 0x3b, 0xf1, 0x82, 0x29, 0xb9, 0x5a, 0x78, 0x1e, 0x42, 0xff, 0x42, 0x3a, 0x2b, 0x6e, 0xb1, -0xb8, 0x6a, 0x87, 0x57, 0xc3, 0xce, 0x27, 0xde, 0x57, 0x4e, 0x72, 0x7a, 0x13, 0xa6, 0x77, 0x2a, -0xc6, 0xbf, 0x3a, 0x1e, 0xb7, 0xd9, 0xc3, 0xf6, 0xcd, 0xe1, 0xed, 0xf3, 0xa3, 0x60, 0x4c, 0xb8, -0xe5, 0xcd, 0x8a, 0xd3, 0xb1, 0x63, 0x7e, 0x1d, 0x18, 0xe5, 0xe5, 0x54, 0x2b, 0xd7, 0x66, 0x25, -0xdf, 0xb1, 0xc1, 0x45, 0xb8, 0x9b, 0x91, 0x63, 0x48, 0xd8, 0xcb, 0x11, 0xfa, 0x42, 0xb7, 0xd2, -0xc4, 0x5b, 0xa6, 0x41, 0xca, 0x23, 0x29, 0x29, 0xd4, 0x04, 0x9d, 0x19, 0xe9, 0xbe, 0x4c, 0x0d, -0x69, 0xa7, 0xc8, 0x00, 0xa3, 0x6e, 0xdc, 0xb3, 0xe8, 0x9e, 0x58, 0x6e, 0xd4, 0x6e, 0x01, 0xfb, -0x38, 0x45, 0x21, 0xa6, 0xe8, 0xe3, 0x3c, 0x1a, 0x49, 0x9e, 0x4f, 0x0f, 0x7f, 0x15, 0x9b, 0x2b, -0x2c, 0x7b, 0xb0, 0x1e, 0x41, 0xac, 0xc1, 0x66, 0x8a, 0xe3, 0x62, 0x19, 0x2e, 0x57, 0xb5, 0x26, -0x73, 0x13, 0xc6, 0xd8, 0x84, 0x77, 0xa5, 0x6e, 0xc8, 0x4b, 0xd3, 0x37, 0xe4, 0x2e, 0x4d, 0x0e, -0x48, 0x4e, 0xdd, 0x90, 0x77, 0xe6, 0x6b, 0x50, 0x9b, 0x78, 0x09, 0xac, 0xa9, 0xfb, 0x7c, 0x85, -0xb9, 0x7e, 0xf5, 0xb2, 0x5c, 0x3a, 0xf9, 0x1e, 0xab, 0x33, 0x23, 0xcb, 0xb5, 0x35, 0x75, 0x4b, -0x9d, 0x60, 0xed, 0x1a, 0x2c, 0x75, 0x75, 0x14, 0xb1, 0x6c, 0x31, 0x3e, 0x5b, 0x95, 0x88, 0x76, -0x36, 0x7a, 0xe8, 0xc6, 0xa3, 0x6c, 0x79, 0x7c, 0x77, 0xc2, 0x9a, 0x0e, 0x89, 0x72, 0xc8, 0x76, -0x5d, 0x48, 0x59, 0xc3, 0xb6, 0x5b, 0x4f, 0x36, 0x59, 0xde, 0x9b, 0x6e, 0x73, 0xb7, 0xd0, 0x6d, -0x6e, 0x8c, 0xe4, 0x03, 0x61, 0xd2, 0xae, 0xc0, 0x64, 0x2f, 0xa6, 0xee, 0x8b, 0xbf, 0xa4, 0xec, -0xf9, 0xac, 0x32, 0x73, 0x77, 0xe4, 0xf3, 0xba, 0x9a, 0xd2, 0x90, 0x95, 0xd2, 0xc8, 0xa5, 0x49, -0x15, 0x4c, 0xba, 0x82, 0xb7, 0x93, 0xe8, 0x4a, 0x71, 0xcb, 0x38, 0xc0, 0x55, 0x04, 0x46, 0xdd, -0x2d, 0x85, 0x69, 0x5e, 0x24, 0xcd, 0xd5, 0xbc, 0x41, 0x8e, 0xe0, 0xec, 0x7c, 0xce, 0x6d, 0xfc, -0xc9, 0xcf, 0xd8, 0xfe, 0x46, 0x81, 0x5c, 0xfd, 0xa3, 0x09, 0x9c, 0x8b, 0xf9, 0x1a, 0x57, 0x4d, -0x0e, 0x8f, 0x6a, 0x9d, 0x56, 0xd2, 0xee, 0x03, 0x4f, 0xe3, 0xbe, 0x5c, 0xcd, 0x70, 0xfe, 0x2d, -0x1c, 0x0b, 0x96, 0x77, 0xb2, 0x87, 0x49, 0x3a, 0xb7, 0xfe, 0x90, 0x4a, 0x5a, 0xa4, 0xac, 0x1e, -0x89, 0x64, 0xbd, 0x06, 0x02, 0x42, 0xe2, 0x54, 0xae, 0xd1, 0xf2, 0xa9, 0x60, 0x69, 0x4f, 0x0f, -0xf3, 0x2d, 0x96, 0xe0, 0xaf, 0xe0, 0x69, 0x74, 0xf8, 0xf2, 0x98, 0x83, 0xb1, 0x10, 0x43, 0x04, -0x6f, 0x63, 0x2e, 0x71, 0x38, 0x93, 0x55, 0x17, 0xaf, 0x49, 0xc8, 0x9a, 0x2a, 0x79, 0x54, 0x8e, -0x5c, 0xc3, 0x52, 0x9b, 0xd6, 0x94, 0xfc, 0xe5, 0x4f, 0x8e, 0x61, 0x3d, 0x6a, 0xe8, 0x6c, 0x51, -0xd9, 0x2d, 0xa7, 0x6a, 0x77, 0xd1, 0x15, 0x79, 0xea, 0xea, 0xbb, 0xdf, 0xf6, 0x50, 0xf9, 0x4e, -0xae, 0x45, 0x9e, 0xe0, 0xc8, 0x58, 0x7a, 0x63, 0x7a, 0x9f, 0x36, 0xe7, 0x6a, 0x58, 0xee, 0xac, -0x58, 0xbd, 0x8e, 0xf5, 0xa8, 0x20, 0x5d, 0x5b, 0x5c, 0x0f, 0x1f, 0xba, 0xae, 0x72, 0x4d, 0x9c, -0xe8, 0xba, 0xc6, 0x35, 0x21, 0xfd, 0x3f, 0x42, 0xf2, 0xac, 0xba, 0x7e, 0x08, 0xb1, 0x85, 0x59, -0x58, 0x7a, 0x86, 0xe7, 0x42, 0xfb, 0xe6, 0x9d, 0x25, 0xd7, 0x08, 0x6e, 0xf6, 0x03, 0x5b, 0x12, -0xb2, 0x56, 0x86, 0x8d, 0xbf, 0xce, 0xc2, 0xef, 0x42, 0x36, 0xce, 0xaa, 0x49, 0x93, 0x3d, 0x25, -0xc2, 0x11, 0xf6, 0x5e, 0x63, 0xfb, 0xb5, 0xc6, 0x86, 0x6d, 0x1a, 0x3f, 0xf9, 0xb3, 0x72, 0xd5, -0x02, 0xa2, 0xae, 0x8c, 0xb8, 0x9e, 0xd7, 0xcf, 0x0b, 0x0b, 0xdd, 0x68, 0x38, 0x97, 0x4e, 0xde, -0x4e, 0x37, 0x1a, 0xdb, 0x75, 0xfe, 0x94, 0xf1, 0xc6, 0x5d, 0xe9, 0xb2, 0x1c, 0x71, 0xdb, 0x68, -0xc4, 0xe7, 0x11, 0x6f, 0xb4, 0x91, 0xf5, 0x56, 0x3e, 0x97, 0x92, 0xeb, 0x94, 0x23, 0x82, 0x3b, -0x6a, 0x8a, 0xad, 0x69, 0x6b, 0x12, 0x01, 0x66, 0xdc, 0xd5, 0xb6, 0xaf, 0x05, 0x25, 0xec, 0xb8, -0x6b, 0x2d, 0xbc, 0x70, 0xc2, 0x1e, 0xd6, 0xe4, 0x50, 0x9d, 0x7c, 0x3b, 0x66, 0xcb, 0x70, 0x52, -0xac, 0x35, 0x20, 0x54, 0x47, 0xb8, 0xa3, 0x97, 0x4f, 0x9d, 0xda, 0xbd, 0xff, 0x75, 0xf5, 0x32, -0xe9, 0xc7, 0x72, 0xd8, 0x94, 0xa3, 0xc2, 0x8a, 0x8d, 0xc1, 0xe9, 0x89, 0xf0, 0x48, 0x04, 0x1c, -0xbc, 0xea, 0x35, 0x5e, 0xab, 0x00, 0xc9, 0x42, 0xf2, 0x7a, 0x6f, 0xc4, 0x5e, 0x27, 0x8e, 0x97, -0x36, 0x96, 0xda, 0xb4, 0xe1, 0x2f, 0x49, 0x6d, 0x12, 0xc7, 0x4b, 0x1b, 0x4b, 0x6d, 0x5a, 0x35, -0x2c, 0x2d, 0x87, 0x78, 0x86, 0x74, 0x9c, 0x2e, 0x25, 0x2c, 0xbd, 0x5b, 0x23, 0xe6, 0x01, 0x71, -0x53, 0xfd, 0xf5, 0x07, 0x08, 0x87, 0x5f, 0x46, 0x8a, 0x64, 0x3d, 0xee, 0xe9, 0xa9, 0x1a, 0x5d, -0x24, 0x6d, 0xc5, 0x4b, 0x71, 0x37, 0x2d, 0xe1, 0xd9, 0xc0, 0x35, 0xc9, 0x13, 0x32, 0x0c, 0x0e, -0xae, 0x95, 0x4e, 0x92, 0xe1, 0xb3, 0xce, 0x87, 0x14, 0x0f, 0x4e, 0x0d, 0xf3, 0xe0, 0xe4, 0x60, -0x2d, 0xaa, 0x6e, 0xe1, 0xc1, 0xc9, 0x49, 0x49, 0x22, 0xfe, 0xe4, 0xc4, 0x4d, 0x1c, 0x35, 0x39, -0xcc, 0x73, 0x14, 0x16, 0xf5, 0xd6, 0x38, 0x6a, 0xfa, 0x75, 0xb2, 0xb6, 0x64, 0x05, 0xe8, 0x69, -0xa4, 0xc3, 0xab, 0xe7, 0x61, 0xcd, 0xf1, 0xab, 0x99, 0xd7, 0x27, 0xf6, 0x2b, 0xee, 0xe1, 0x97, -0xed, 0x4f, 0x2f, 0xc0, 0x35, 0x2b, 0x47, 0xe4, 0x67, 0xb5, 0x99, 0x21, 0xb4, 0xaf, 0xfd, 0x89, -0xd0, 0xf7, 0xb3, 0xcf, 0x85, 0x8f, 0x11, 0xce, 0xef, 0xbc, 0x8c, 0xcf, 0xd5, 0xb4, 0x56, 0x8f, -0xf3, 0x7f, 0xfd, 0x32, 0x9c, 0xff, 0x5f, 0x97, 0xf0, 0xb9, 0x0e, 0xe7, 0xc7, 0x7c, 0x70, 0xfe, -0x17, 0xab, 0xe0, 0xfc, 0xe9, 0x06, 0x38, 0x7f, 0x66, 0x04, 0xce, 0xff, 0xd3, 0x0e, 0x7c, 0x8e, -0xc3, 0xf9, 0xff, 0xe7, 0x0c, 0x9c, 0x7f, 0x6f, 0x13, 0x9c, 0x3f, 0x97, 0x07, 0xe7, 0xcf, 0x6f, -0x81, 0xf3, 0xff, 0x07, 0x7b, 0xe7, 0xd7, 0x27, 0xe1, 0xfc, 0x45, 0x4c, 0x73, 0xe9, 0x2a, 0x9c, -0xff, 0x70, 0x0f, 0x9c, 0xff, 0x8d, 0x15, 0x9f, 0x0d, 0x70, 0xfe, 0x8a, 0x19, 0x9f, 0x01, 0x38, -0x7f, 0x0d, 0xdd, 0xd7, 0x26, 0xe1, 0xfc, 0xef, 0x30, 0xff, 0xeb, 0x98, 0xee, 0xf7, 0x27, 0x61, -0xfc, 0xde, 0x9d, 0x30, 0xee, 0x78, 0x14, 0xc6, 0x1f, 0x68, 0x86, 0x71, 0xb7, 0x02, 0xe3, 0xde, -0xfd, 0x30, 0xfe, 0xa5, 0xab, 0x30, 0xfe, 0xe5, 0x2b, 0x30, 0x5e, 0xde, 0x8e, 0x4f, 0x3f, 0x8c, -0x07, 0x2c, 0x30, 0x5e, 0x75, 0x1c, 0xc6, 0x23, 0x3e, 0x18, 0x5f, 0x92, 0x8f, 0xcf, 0x19, 0x18, -0xaf, 0x9b, 0x80, 0xf1, 0xaf, 0xe0, 0xf7, 0xaf, 0xf4, 0xc2, 0xf8, 0x23, 0x61, 0x18, 0x6f, 0x2c, -0x41, 0xf7, 0x65, 0x18, 0xaf, 0x3e, 0x85, 0x65, 0xdb, 0xd0, 0x3d, 0x80, 0xcf, 0x6e, 0x38, 0x3f, -0x8a, 0xe5, 0xbd, 0x89, 0x75, 0xff, 0xbb, 0x56, 0x38, 0x7f, 0x01, 0xdb, 0x32, 0x81, 0x75, 0xbb, -0x7c, 0x10, 0xcb, 0xc9, 0x83, 0x71, 0x7f, 0x3b, 0x9c, 0xff, 0x9b, 0x7d, 0x18, 0x07, 0xdb, 0x3f, -0x91, 0x84, 0xf3, 0x1f, 0xf9, 0x61, 0xbc, 0x1e, 0xdb, 0xf7, 0x41, 0x00, 0xc6, 0x3d, 0x15, 0x70, -0xfe, 0x0d, 0x19, 0xeb, 0x82, 0xfd, 0xf3, 0xd7, 0x1e, 0x18, 0x2f, 0xc1, 0xf0, 0x43, 0x2b, 0xe1, -0xfc, 0x6f, 0x4f, 0x63, 0x5d, 0xb1, 0xed, 0xbf, 0xdd, 0x05, 0xe7, 0xdf, 0xba, 0x80, 0x75, 0x8b, -0x62, 0xbd, 0x0a, 0x60, 0x7c, 0x19, 0xf6, 0xd1, 0x47, 0xaf, 0x60, 0x7a, 0x6c, 0xf7, 0xc7, 0x54, -0x76, 0x13, 0x9c, 0xff, 0x17, 0x6c, 0xcf, 0xc2, 0x56, 0x18, 0xaf, 0x35, 0x63, 0x1a, 0x6c, 0xff, -0xbf, 0x60, 0xdb, 0x90, 0xda, 0x39, 0xff, 0x6b, 0xf4, 0x07, 0xde, 0xc2, 0x5f, 0xec, 0xbf, 0x5f, -0x61, 0xd9, 0x6f, 0x62, 0x78, 0x3d, 0xb6, 0xdf, 0xde, 0x04, 0xe3, 0x77, 0xd7, 0x61, 0x7f, 0xbe, -0x0c, 0xe3, 0x0b, 0x64, 0xec, 0xd3, 0xb3, 0x70, 0xfe, 0xea, 0x28, 0x9c, 0x3f, 0xbb, 0x12, 0xf3, -0x71, 0x60, 0xfc, 0x08, 0xa6, 0xa3, 0x7c, 0x23, 0x70, 0xfe, 0x7d, 0x4c, 0xfb, 0xf1, 0x2b, 0x58, -0x37, 0xf4, 0x7f, 0x80, 0xee, 0x09, 0x6c, 0xbb, 0x1f, 0xfb, 0xc7, 0x8b, 0xed, 0xfc, 0xe7, 0xc8, -0xbf, 0xaa, 0xf3, 0xe8, 0xfc, 0x28, 0xb6, 0x6b, 0x62, 0x3f, 0x9c, 0xff, 0xfb, 0x61, 0x18, 0x7f, -0x08, 0xfb, 0xb6, 0x1c, 0xdb, 0x50, 0x8e, 0xed, 0xfa, 0x08, 0xe7, 0xc4, 0xd9, 0x2d, 0x58, 0x67, -0xea, 0x0b, 0x1c, 0xaf, 0x0f, 0xb0, 0x0f, 0x3f, 0x44, 0x7f, 0xdd, 0x30, 0x8e, 0xeb, 0x1b, 0x22, -0xed, 0xff, 0xda, 0x83, 0xf5, 0x41, 0xff, 0xff, 0x9e, 0xc0, 0xb2, 0x46, 0x45, 0xd8, 0xdf, 0x60, -0x1f, 0xff, 0xf3, 0x25, 0x76, 0x8f, 0x57, 0x60, 0x5f, 0x9d, 0xac, 0x14, 0xee, 0xa5, 0xe5, 0xd8, -0x8e, 0x1e, 0xe1, 0xfe, 0xca, 0x41, 0xf1, 0xfb, 0x70, 0x29, 0xf6, 0x19, 0x96, 0x7d, 0xd1, 0x86, -0x75, 0x50, 0xfe, 0xaf, 0xe8, 0x70, 0xba, 0xbd, 0x4e, 0xa7, 0xd5, 0x9d, 0x3d, 0xdf, 0x58, 0xdd, -0xb3, 0xba, 0xab, 0x53, 0xaf, 0xd6, 0xa9, 0x74, 0xa6, 0x5a, 0xa7, 0x5b, 0xe2, 0x08, 0xcd, 0x4e, -0xcf, 0x6c, 0x84, 0x5f, 0x9d, 0x80, 0x75, 0xa5, 0xb3, 0xef, 0x41, 0xf7, 0x93, 0xf8, 0x7c, 0x05, -0x9f, 0x57, 0x53, 0xd9, 0xcf, 0xca, 0x85, 0xf3, 0x1b, 0xda, 0x45, 0xcb, 0xf7, 0xad, 0xfc, 0x91, -0xee, 0x4f, 0x5f, 0x09, 0x55, 0xf7, 0x17, 0xc7, 0xbf, 0x4d, 0xf8, 0xf7, 0x3f, 0xf1, 0xef, 0x23, -0xfc, 0x8b, 0x68, 0x7f, 0x5f, 0xc5, 0xbf, 0xff, 0x8d, 0x7f, 0xf4, 0x4b, 0x69, 0x28, 0x8c, 0xfc, -0x14, 0xe7, 0xbb, 0xf8, 0x47, 0x61, 0x94, 0x26, 0x95, 0x27, 0x7d, 0x4b, 0xb9, 0x29, 0x4e, 0xca, -0xbd, 0x77, 0xef, 0x57, 0xbf, 0xda, 0xd0, 0xdd, 0x95, 0xe8, 0x7e, 0xbc, 0x43, 0x7e, 0xbc, 0xbd, -0xa5, 0xbb, 0xa7, 0x42, 0x06, 0xa4, 0x7d, 0x8c, 0xf4, 0x6d, 0x80, 0xff, 0x23, 0x4c, 0xd1, 0xd5, -0x8b, 0x70, 0xee, 0x01, 0x23, 0xdc, 0x77, 0xa7, 0x0e, 0x14, 0xb5, 0xfe, 0x4c, 0x7d, 0x6d, 0xd0, -0xca, 0x18, 0xd2, 0x97, 0x81, 0x7e, 0x13, 0x40, 0x96, 0x8c, 0xbf, 0xb3, 0x00, 0xa4, 0x26, 0xfc, -0x25, 0xe1, 0x5e, 0xb3, 0xf6, 0x39, 0x4f, 0xf4, 0xdd, 0xf3, 0xd9, 0xf8, 0x20, 0x24, 0x78, 0xbe, -0x9b, 0x53, 0x1a, 0x90, 0xc2, 0x33, 0x40, 0x16, 0xbb, 0x25, 0x83, 0x96, 0xb7, 0x41, 0x55, 0x0d, -0x99, 0x52, 0xbe, 0xfa, 0xd5, 0xbd, 0x7b, 0xbf, 0x3e, 0xa3, 0x78, 0x73, 0xda, 0xb5, 0x3b, 0x28, -0x06, 0xe7, 0xbf, 0xc9, 0xba, 0x5f, 0xab, 0x0a, 0xea, 0xe5, 0x69, 0x50, 0xcf, 0x4d, 0x82, 0x3a, -0x7a, 0x1d, 0xd4, 0x81, 0xcb, 0xa0, 0xc2, 0x39, 0x98, 0x86, 0x51, 0x98, 0xc4, 0xfc, 0xae, 0x63, -0x94, 0xcb, 0xf8, 0x9c, 0x63, 0x01, 0x4e, 0xd1, 0x51, 0xb7, 0xfb, 0xbb, 0x0b, 0xee, 0x86, 0x7b, -0xb0, 0x16, 0xb3, 0x71, 0x44, 0x72, 0x3e, 0x32, 0x3d, 0x9b, 0x6e, 0xe5, 0xff, 0x0b, 0x7f, 0xd2, -0x00, 0x75, 0x8c, 0xd6, 0x43, 0xe2, 0x5f, 0xaa, 0xdf, 0x53, 0xbe, 0x19, 0x3d, 0x27, 0x7c, 0x03, -0x12, 0x25, 0x12, 0x71, 0x37, 0x6d, 0xb2, 0xdb, 0x29, 0x26, 0x45, 0xa6, 0x1e, 0xc4, 0xa1, 0x9d, -0x6d, 0xc9, 0x9e, 0x65, 0x32, 0x1b, 0xb2, 0x24, 0xe3, 0x5d, 0xd6, 0xbb, 0x55, 0x7a, 0x40, 0x5d, -0xfd, 0xc4, 0x13, 0xed, 0x8f, 0x3f, 0xf9, 0x24, 0x74, 0x74, 0x35, 0xb7, 0xb4, 0x0b, 0xe7, 0xea, -0x8e, 0xc7, 0x13, 0x2d, 0xc2, 0x19, 0xc7, 0xb9, 0xd5, 0xb2, 0x5a, 0xb8, 0x9f, 0xfc, 0xe6, 0x93, -0x9a, 0x2b, 0xbe, 0xba, 0xbd, 0x9d, 0x14, 0x66, 0x69, 0xd1, 0x7b, 0x5a, 0x7a, 0x7b, 0xb4, 0x2f, -0x89, 0xc7, 0x9b, 0x13, 0x2d, 0x5a, 0xf8, 0xaa, 0x6f, 0xf4, 0xf4, 0x74, 0x75, 0x26, 0x52, 0x19, -0x09, 0xaf, 0xf0, 0x25, 0xbb, 0xbb, 0x92, 0xda, 0x87, 0x27, 0x7b, 0xba, 0x35, 0x17, 0xe9, 0xda, -0x4a, 0x85, 0x76, 0xb4, 0x74, 0x7e, 0x63, 0xd5, 0xe3, 0xdd, 0xed, 0x8f, 0xaf, 0x4a, 0x55, 0xea, -0x4f, 0x57, 0x77, 0x36, 0xb7, 0x3c, 0xd1, 0xd5, 0xad, 0xa5, 0x7a, 0xa2, 0x5b, 0xe7, 0xa3, 0xd8, -0x3a, 0x6f, 0x77, 0x57, 0x97, 0x56, 0x85, 0x64, 0x17, 0x2e, 0xf5, 0x16, 0x2d, 0x78, 0x75, 0x67, -0xf2, 0x1b, 0x3d, 0x25, 0xcd, 0x2d, 0x6b, 0x57, 0x3f, 0xd1, 0x02, 0x3d, 0xab, 0x3b, 0x5a, 0xba, -0x53, 0x9e, 0x4c, 0x82, 0xba, 0xda, 0xf0, 0xd7, 0x6b, 0x3b, 0x57, 0xe3, 0x4a, 0x7a, 0xa2, 0xbb, -0xe5, 0x71, 0xd2, 0xeb, 0x95, 0xfa, 0x64, 0x81, 0xda, 0xaf, 0x47, 0x57, 0x37, 0x37, 0x43, 0x2b, -0xbe, 0x4a, 0xd2, 0x6a, 0xd9, 0x52, 0x8e, 0x9b, 0x82, 0x93, 0xab, 0x7b, 0xe3, 0x1d, 0x3d, 0xba, -0xec, 0x56, 0x3d, 0xfe, 0x64, 0x8b, 0xec, 0xeb, 0x25, 0x6d, 0x5b, 0x37, 0x6b, 0x70, 0xbb, 0x45, -0xc5, 0xdb, 0x4d, 0x5a, 0xe7, 0xd6, 0xb4, 0x7c, 0xb3, 0xe3, 0xf1, 0x64, 0xda, 0xdb, 0xd5, 0x95, -0x71, 0xcf, 0x2c, 0x74, 0xd5, 0xea, 0x1e, 0x8c, 0x78, 0x6b, 0x1b, 0xa8, 0x7b, 0x34, 0xcd, 0x64, -0xdd, 0x72, 0xcf, 0xe3, 0x4f, 0xae, 0xb1, 0xe8, 0xe2, 0xb4, 0x77, 0x3d, 0xde, 0x2c, 0x37, 0xb7, -0xc4, 0x1f, 0xff, 0x46, 0x7b, 0x8f, 0x9c, 0xec, 0x6e, 0x89, 0xb7, 0x74, 0xb7, 0x74, 0x3e, 0xd1, -0x82, 0xed, 0xfd, 0xd4, 0x3e, 0x9e, 0x39, 0x1c, 0x99, 0xec, 0x96, 0xb5, 0xf4, 0xb0, 0xf2, 0xb1, -0x6f, 0x24, 0x65, 0xad, 0xf3, 0x9f, 0x2c, 0x29, 0x29, 0xd1, 0x17, 0xd8, 0xdc, 0xd5, 0xd9, 0x62, -0x81, 0x65, 0xdf, 0x7c, 0xb2, 0xa7, 0xa5, 0x43, 0x6e, 0x6c, 0xf9, 0x93, 0x6f, 0xb4, 0x3c, 0xd9, -0x33, 0x63, 0x9e, 0xcd, 0x9c, 0x2a, 0xcd, 0x5d, 0x99, 0x9e, 0xc8, 0xc0, 0x6d, 0x2e, 0xbb, 0x42, -0xee, 0x8a, 0xc7, 0x9f, 0x6c, 0xe9, 0x79, 0x52, 0xee, 0x59, 0xdd, 0xd3, 0xde, 0xd2, 0xb5, 0xaa, -0x4d, 0xfe, 0x4f, 0xf2, 0xfc, 0x66, 0x0f, 0x37, 0x38, 0xe3, 0xc3, 0xaa, 0xa6, 0x3c, 0x16, 0xe8, -0xe9, 0x4a, 0x3e, 0xde, 0x57, 0x12, 0xef, 0xea, 0xec, 0x81, 0xaf, 0xac, 0x81, 0xaa, 0xc7, 0xb1, -0xa9, 0xed, 0xf0, 0xb5, 0xae, 0xee, 0x35, 0xab, 0xb0, 0xd5, 0xad, 0x3a, 0x97, 0xb7, 0xb5, 0xab, -0xa3, 0xc5, 0xdb, 0xf3, 0xa7, 0xab, 0xdb, 0x5b, 0x3a, 0xbd, 0x8f, 0x77, 0x77, 0x3d, 0xe9, 0xed, -0xee, 0xea, 0xf0, 0xa6, 0x6b, 0xe0, 0x2d, 0xf1, 0x76, 0x25, 0x5b, 0x3a, 0x85, 0x3e, 0xb7, 0x92, -0x27, 0xe0, 0x8f, 0xd2, 0x5f, 0xfe, 0x58, 0xae, 0xed, 0x5c, 0xfb, 0x78, 0xfb, 0xea, 0xe6, 0x54, -0x07, 0xc8, 0xe8, 0xfb, 0x46, 0x8b, 0x3c, 0x3f, 0x29, 0x3f, 0xde, 0x23, 0xcf, 0x7f, 0xd2, 0x23, -0xb7, 0xaf, 0xee, 0x44, 0xef, 0x37, 0x2c, 0xba, 0xd2, 0xf4, 0xad, 0x9c, 0xb1, 0x6e, 0x32, 0x8b, -0xee, 0xb3, 0x55, 0x88, 0xc6, 0xa5, 0xeb, 0x4f, 0xff, 0xfd, 0x15, 0xfa, 0xb7, 0x95, 0xdb, 0xf3, -0x78, 0xa2, 0x7d, 0xf5, 0x93, 0x3d, 0xff, 0xee, 0xe2, 0xe5, 0x65, 0xdc, 0xaf, 0xba, 0xfa, 0x68, -0xea, 0xfd, 0xbe, 0xc6, 0xc5, 0xd4, 0xd0, 0x6c, 0xa9, 0x90, 0x85, 0x87, 0x56, 0x55, 0x7b, 0xaf, -0xe5, 0xf6, 0x31, 0x58, 0xaf, 0xde, 0xa7, 0xc5, 0x68, 0x6c, 0xe8, 0xea, 0xee, 0x11, 0x11, 0xe4, -0x70, 0x17, 0x4e, 0xf8, 0x6e, 0x5d, 0xc8, 0xa7, 0x24, 0x59, 0xf0, 0xa4, 0xa6, 0x7c, 0xef, 0x96, -0xa4, 0x33, 0xbf, 0xb0, 0x72, 0xc4, 0xd6, 0xd5, 0x9d, 0x6b, 0x22, 0xab, 0x9f, 0x4c, 0x62, 0x78, -0x85, 0x1c, 0x7a, 0xa2, 0x67, 0xf5, 0xda, 0x16, 0xd1, 0x40, 0xea, 0x84, 0x06, 0xad, 0x57, 0xd0, -0xb9, 0x2c, 0xd9, 0x8d, 0xc0, 0x94, 0x55, 0xf2, 0xe1, 0x3a, 0xaa, 0x6d, 0xc0, 0xd5, 0xf8, 0x24, -0x2e, 0x98, 0xc7, 0x7b, 0x1e, 0xa7, 0xaf, 0xd8, 0xff, 0x89, 0x9e, 0x56, 0x79, 0x7e, 0xfb, 0x37, -0xe4, 0x9e, 0x6f, 0x26, 0x5b, 0xc8, 0x31, 0x23, 0x5e, 0x6d, 0xc3, 0xd7, 0x6b, 0xab, 0xbe, 0x52, -0xbf, 0xbc, 0xf1, 0x2b, 0x75, 0x5f, 0x5f, 0xf1, 0xe5, 0x87, 0x66, 0x7c, 0x8b, 0x74, 0x3f, 0x9e, -0x90, 0x09, 0xc4, 0xa3, 0x1b, 0xeb, 0xe5, 0xf3, 0xb7, 0x37, 0xdd, 0x9c, 0x76, 0x59, 0x55, 0x63, -0x75, 0x75, 0xfd, 0xd2, 0xaf, 0x44, 0xaa, 0x6f, 0x49, 0x8d, 0x5f, 0x1b, 0xbe, 0x52, 0x5b, 0xbf, -0xbc, 0xba, 0x11, 0x3f, 0x3d, 0x7c, 0xe7, 0x4f, 0xb7, 0xa6, 0x0a, 0xd5, 0x55, 0x2f, 0x5f, 0x8e, -0x19, 0xce, 0x6f, 0xa6, 0x16, 0xb0, 0x5e, 0x49, 0x5d, 0x84, 0xd4, 0x14, 0x91, 0xab, 0xba, 0xda, -0xbb, 0xba, 0xbf, 0x5c, 0x2a, 0x2f, 0x7f, 0x7c, 0x55, 0x7b, 0x0a, 0x4c, 0xce, 0x88, 0xd8, 0xdc, -0xd2, 0x8b, 0xed, 0x6d, 0x96, 0x1b, 0x53, 0xb5, 0x97, 0x17, 0xa7, 0x5d, 0xe1, 0xdb, 0xb6, 0x08, -0x9d, 0xe9, 0x6c, 0x33, 0x29, 0xcb, 0x71, 0xac, 0x16, 0xa7, 0x5d, 0xe1, 0x94, 0xcb, 0x02, 0x7f, -0x94, 0x4e, 0xfa, 0xc7, 0xf2, 0x57, 0x93, 0xd8, 0xe5, 0x04, 0xc4, 0x52, 0x13, 0xf6, 0x09, 0xca, -0xe7, 0xc9, 0x5b, 0x1a, 0x57, 0x5d, 0xbf, 0xec, 0x96, 0xfe, 0xa8, 0xea, 0xfa, 0x46, 0x67, 0x0f, -0x17, 0xb8, 0x5c, 0x8c, 0xd1, 0xcc, 0x26, 0x37, 0x20, 0xc8, 0xf0, 0xff, 0xd1, 0x1f, 0xdf, 0x12, -0x56, 0x7e, 0x6b, 0x98, 0xe8, 0x8b, 0x96, 0xce, 0x66, 0x5a, 0x26, 0x2d, 0x9d, 0x3d, 0x88, 0xc9, -0xde, 0x2e, 0xb7, 0x3f, 0xc2, 0xc0, 0x3f, 0x16, 0x5f, 0x74, 0x6d, 0x98, 0x31, 0x30, 0xa1, 0xba, -0x86, 0x68, 0xe8, 0xd6, 0xcf, 0x5f, 0x41, 0x7c, 0x79, 0x59, 0x55, 0xa8, 0xfe, 0x76, 0x03, 0x57, -0x83, 0xf3, 0xe8, 0x96, 0x70, 0xd1, 0xa2, 0x66, 0xb9, 0x9e, 0xd4, 0x44, 0x06, 0xe6, 0x3f, 0x59, -0x29, 0x2f, 0x5b, 0xdd, 0xc7, 0x21, 0x35, 0x5d, 0xd4, 0xe8, 0x99, 0x83, 0xf6, 0xd5, 0xce, 0x35, -0x9d, 0x5d, 0x7f, 0xda, 0x29, 0xb3, 0x97, 0xd3, 0xce, 0xf8, 0xdc, 0xd8, 0xf2, 0x24, 0xed, 0x38, -0xda, 0x22, 0xb9, 0x69, 0x3b, 0xc8, 0xcc, 0x8c, 0xd5, 0x4f, 0x62, 0xf3, 0x7b, 0x48, 0x65, 0xa7, -0xa6, 0x4b, 0x13, 0x97, 0x23, 0x8e, 0x6c, 0x4f, 0x6b, 0x8b, 0xa6, 0x4b, 0xd3, 0x63, 0x49, 0xb6, -0xb7, 0xd0, 0xe6, 0xfa, 0x44, 0x7b, 0x17, 0xbe, 0x1f, 0x6f, 0x6f, 0x97, 0x05, 0x2c, 0x7a, 0x52, -0x6e, 0xe9, 0x7d, 0xa2, 0x25, 0xd9, 0x23, 0x7f, 0x0d, 0x77, 0x3e, 0xdc, 0xd4, 0xba, 0x71, 0x61, -0xe2, 0xd6, 0xf3, 0x64, 0x09, 0xad, 0xc8, 0xee, 0x6f, 0xf6, 0x6b, 0xb0, 0x1f, 0xab, 0xa4, 0xd5, -0x28, 0xfc, 0x8d, 0x78, 0x5c, 0x2c, 0xdb, 0xa4, 0x68, 0x18, 0xba, 0x9a, 0x71, 0xee, 0xc5, 0xbb, -0xba, 0x3b, 0x52, 0x53, 0x37, 0xb5, 0x9c, 0xba, 0xbe, 0x81, 0x83, 0x53, 0xd5, 0xbe, 0xfa, 0x89, -0x35, 0xd4, 0xf5, 0x25, 0xa9, 0x81, 0xd1, 0x3e, 0x2f, 0x69, 0xf9, 0x66, 0x63, 0xb2, 0x27, 0xd2, -0x82, 0xeb, 0x9d, 0xa7, 0xc2, 0x93, 0x2d, 0x4f, 0x3c, 0x29, 0x77, 0xac, 0x7e, 0x02, 0x81, 0xa7, -0x7c, 0xdb, 0xa8, 0xcb, 0x92, 0x2d, 0x2d, 0x5a, 0x34, 0x8a, 0x7f, 0xfb, 0xa8, 0x9d, 0x5d, 0x58, -0x19, 0x44, 0x61, 0x6a, 0xbf, 0x52, 0x52, 0x82, 0x9b, 0xe8, 0x82, 0x1e, 0x99, 0x7a, 0x02, 0x33, -0xe0, 0x6d, 0xfb, 0x49, 0x7d, 0xd4, 0x65, 0x34, 0x6d, 0xea, 0xab, 0xbf, 0xd6, 0xd0, 0x58, 0x5d, -0xb3, 0x4c, 0x6e, 0x59, 0x8b, 0xd3, 0x07, 0xa1, 0x2b, 0x77, 0x0b, 0x81, 0x9f, 0xae, 0x4e, 0x58, -0x8e, 0x1d, 0x18, 0xff, 0x46, 0x27, 0x7b, 0x10, 0x08, 0xbb, 0x1e, 0xa0, 0x9e, 0x26, 0xd5, 0xa2, -0xac, 0xf6, 0x15, 0x37, 0xd0, 0x9e, 0x96, 0x66, 0xdc, 0xb6, 0xbf, 0x0e, 0x7f, 0xc4, 0x63, 0xf1, -0xc7, 0xa2, 0xe8, 0xa8, 0x40, 0x22, 0x32, 0x83, 0x5b, 0x5b, 0x5d, 0x45, 0x9b, 0x44, 0x85, 0xfc, -0x78, 0x73, 0x73, 0x37, 0x6d, 0xb1, 0xbd, 0xb2, 0xcc, 0xdb, 0x06, 0x6f, 0xb7, 0xb2, 0xab, 0xab, -0x7b, 0x75, 0x22, 0xe3, 0x7f, 0xc0, 0xa2, 0x1b, 0x59, 0x7d, 0x86, 0xa0, 0xdb, 0x6f, 0x6e, 0x42, -0x1b, 0x33, 0x78, 0x41, 0x26, 0xa9, 0x1e, 0xa1, 0x81, 0xff, 0x09, 0x21, 0x10, 0xd0, 0x14, 0xab, -0xbf, 0x3a, 0xfe, 0x4d, 0x59, 0xcb, 0x53, 0xae, 0xac, 0xfc, 0xec, 0x58, 0x46, 0xe6, 0xef, 0xf3, -0x70, 0xfe, 0xc5, 0xd3, 0xf8, 0xbc, 0x8c, 0x4f, 0x3b, 0x3e, 0x48, 0xcb, 0xbe, 0x68, 0x85, 0xf3, -0xbb, 0x9a, 0xe1, 0xfc, 0x77, 0x14, 0x38, 0xbf, 0xf3, 0x3a, 0x9c, 0xff, 0x2e, 0xd2, 0xcc, 0xdf, -0x3d, 0x84, 0x0f, 0xd2, 0xc9, 0xdf, 0x45, 0xda, 0xfb, 0xbb, 0x7e, 0x7c, 0x90, 0xb2, 0xd9, 0xb5, -0x0b, 0x1f, 0x1f, 0xc6, 0x43, 0x5a, 0xf2, 0x3b, 0xc7, 0xf1, 0x41, 0x9a, 0xf8, 0x3b, 0x1e, 0x0c, -0x4b, 0x69, 0x07, 0xce, 0x87, 0xf3, 0x3f, 0xb6, 0xc0, 0xf9, 0xd7, 0x91, 0xc6, 0x7e, 0xfd, 0x28, -0x9c, 0xff, 0x7e, 0x0e, 0x3e, 0x48, 0xcb, 0x7f, 0xff, 0x7b, 0x70, 0xfe, 0x87, 0x48, 0x83, 0x8f, -0x60, 0xfa, 0x1f, 0x61, 0xfc, 0xef, 0x5f, 0x86, 0xf3, 0x3f, 0xa8, 0xc0, 0xa7, 0x0f, 0x1f, 0x2c, -0x67, 0x18, 0xe9, 0xf6, 0xe1, 0x7a, 0x7c, 0xce, 0x61, 0xbc, 0x6e, 0x7c, 0x30, 0x6c, 0x04, 0xc3, -0x46, 0x30, 0x6c, 0x64, 0x1c, 0xc3, 0x77, 0x65, 0x74, 0xb3, 0xfe, 0x68, 0x77, 0xc6, 0xfd, 0xe3, -0x6e, 0xcd, 0x3d, 0x3f, 0xa5, 0x93, 0x55, 0xfb, 0x4b, 0xe9, 0x6c, 0x5d, 0x70, 0x93, 0x1e, 0xd7, -0x94, 0xee, 0xd6, 0x79, 0x5a, 0xf8, 0x02, 0x5d, 0x3a, 0xc7, 0x8c, 0x33, 0x69, 0xe5, 0x96, 0x7b, -0xca, 0xe5, 0xb7, 0x84, 0x04, 0x6e, 0x09, 0x61, 0xbe, 0xd2, 0xb4, 0x5e, 0xd8, 0x2c, 0xaf, 0xe4, -0xf0, 0xd2, 0x4d, 0x1b, 0xf1, 0xb3, 0x6c, 0xfe, 0xb3, 0xfa, 0x43, 0xea, 0x4b, 0x4e, 0xb2, 0x50, -0x9c, 0x27, 0xe4, 0x50, 0xd5, 0xfd, 0xf8, 0x9b, 0x85, 0xbf, 0xc4, 0x1f, 0x61, 0x73, 0xdc, 0xe7, -0xbc, 0xef, 0x96, 0x34, 0xcf, 0xe0, 0xd7, 0xb6, 0x19, 0x69, 0x06, 0xb4, 0x34, 0x9b, 0xef, 0x98, -0x66, 0x3b, 0x7e, 0x2d, 0x9b, 0x91, 0xa6, 0x4e, 0x4b, 0xb3, 0xe2, 0x8e, 0x69, 0xfe, 0x9c, 0xb4, -0xb6, 0xcd, 0x48, 0x53, 0xa0, 0xa5, 0xb1, 0xdf, 0x31, 0xcd, 0x5f, 0xd6, 0x1f, 0x9a, 0x7e, 0x4b, -0x9f, 0x66, 0xfa, 0x82, 0x48, 0x33, 0xfd, 0xd1, 0x1d, 0xd3, 0xfc, 0x08, 0xbf, 0xbe, 0x38, 0x23, -0xcd, 0xb0, 0x96, 0xe6, 0xd0, 0x1d, 0xd3, 0xbc, 0x89, 0x5f, 0xe3, 0x33, 0xd2, 0xf4, 0x6b, 0x69, -0x36, 0xde, 0x31, 0xcd, 0xdf, 0xe3, 0xd7, 0xd2, 0x19, 0x69, 0xa2, 0x5a, 0x9a, 0xc6, 0x3b, 0xa6, -0xf9, 0xa7, 0xfa, 0x43, 0x53, 0xd3, 0x33, 0xd2, 0xe4, 0x69, 0x69, 0xe6, 0xde, 0x31, 0xcd, 0xfb, -0x98, 0xe6, 0x84, 0x3e, 0xcd, 0xd4, 0x39, 0x91, 0x66, 0xea, 0xe2, 0x1d, 0xd3, 0x5c, 0xc5, 0xaf, -0x3b, 0x67, 0xa4, 0xd9, 0xa7, 0xa5, 0x39, 0x70, 0xc7, 0x34, 0x2a, 0x7e, 0x5d, 0x35, 0x23, 0x4d, -0xaf, 0x96, 0x66, 0xf0, 0x4e, 0x69, 0x9e, 0x9d, 0x8d, 0x5f, 0x4b, 0x66, 0xa4, 0x89, 0x68, 0x69, -0xea, 0x75, 0x69, 0x88, 0x4f, 0xdb, 0x2c, 0xbb, 0x25, 0x7b, 0x22, 0x47, 0x70, 0x01, 0x4c, 0xf9, -0xc2, 0x7b, 0x25, 0x3b, 0x49, 0x94, 0xe8, 0xbe, 0x3a, 0xd3, 0x5f, 0x73, 0xf1, 0xab, 0x53, 0xfb, -0x3a, 0xb3, 0xbc, 0xcf, 0xd7, 0x1f, 0x9a, 0x7c, 0x43, 0x5f, 0xde, 0xe4, 0x69, 0x51, 0xde, 0xe4, -0xbb, 0xfa, 0xf2, 0x30, 0x0d, 0xae, 0x15, 0x87, 0x5b, 0x3a, 0x97, 0x28, 0x20, 0x1f, 0x7e, 0xdf, -0xa7, 0xfd, 0x92, 0x35, 0xd9, 0x73, 0x22, 0xee, 0x6d, 0xf2, 0x5f, 0x80, 0x31, 0x1e, 0x9b, 0x91, -0x7f, 0x8f, 0x96, 0xff, 0x53, 0x77, 0xec, 0x83, 0x07, 0xf1, 0xab, 0x7b, 0x46, 0x9a, 0xa0, 0x96, -0x26, 0x76, 0xc7, 0x34, 0x55, 0xf5, 0x87, 0x3e, 0xb9, 0x36, 0x23, 0x8d, 0x55, 0x4b, 0x93, 0x7f, -0x6b, 0xbf, 0x99, 0x4e, 0xa7, 0x7a, 0xe6, 0x93, 0xeb, 0xe1, 0xbd, 0xa6, 0xd3, 0xa9, 0x7e, 0x93, -0xef, 0xb5, 0xd2, 0x41, 0x55, 0x76, 0x02, 0x0c, 0x25, 0xab, 0x1e, 0x25, 0xb7, 0xc1, 0x98, 0x00, -0x38, 0xb4, 0xaa, 0x90, 0xdd, 0x12, 0xba, 0xc7, 0x56, 0x01, 0xbc, 0xc1, 0x3e, 0x43, 0x1c, 0x0c, -0x3b, 0x14, 0x80, 0xad, 0x9c, 0x46, 0x7c, 0xcb, 0x61, 0x37, 0x7d, 0xe9, 0x23, 0xdb, 0x29, 0xec, -0xcb, 0xc2, 0x2f, 0x47, 0xd9, 0x65, 0xc4, 0xf0, 0x55, 0x8a, 0xe6, 0xcb, 0x33, 0x60, 0x29, 0x46, -0x91, 0xb3, 0x71, 0x16, 0xc6, 0x39, 0xd3, 0x02, 0x70, 0x8c, 0x7d, 0x66, 0x8c, 0x57, 0x81, 0xf1, -0xde, 0x26, 0x9f, 0x83, 0x72, 0x9e, 0x14, 0x39, 0x3b, 0x28, 0x67, 0x99, 0xf4, 0xcc, 0xb1, 0x8f, -0x72, 0xbe, 0xc2, 0x2e, 0xca, 0x99, 0xb8, 0xd1, 0xaf, 0x7a, 0x67, 0x93, 0x5d, 0xf5, 0xfa, 0xbf, -0x82, 0x5f, 0xfd, 0xe8, 0xa0, 0x62, 0xcd, 0xf8, 0x7e, 0x5c, 0xa7, 0x69, 0x4e, 0x94, 0x32, 0x61, -0x3f, 0xd9, 0xa9, 0x5c, 0xcc, 0xf8, 0x0e, 0x1e, 0x51, 0xce, 0x66, 0x7c, 0x87, 0x4e, 0x2b, 0x6f, -0xe9, 0x7c, 0xe3, 0xca, 0x68, 0xc6, 0xf7, 0x3f, 0x87, 0x94, 0x11, 0x9d, 0xef, 0xba, 0xf2, 0x4a, -0xc6, 0x77, 0xb8, 0x47, 0xd9, 0xa9, 0xf3, 0x9d, 0x55, 0x36, 0xe9, 0x7c, 0xe7, 0x14, 0x50, 0xfb, -0x32, 0xfe, 0xbf, 0x2e, 0x41, 0x7f, 0x9b, 0xce, 0x8f, 0x7d, 0xa6, 0x3e, 0xaa, 0xf3, 0x8f, 0xa3, -0x3f, 0x96, 0xf1, 0xbf, 0x41, 0x32, 0xd5, 0x15, 0x3a, 0xff, 0x20, 0xc9, 0x58, 0xeb, 0xfc, 0xdf, -0x47, 0xff, 0x1c, 0x21, 0x91, 0xc0, 0x37, 0x38, 0xb9, 0x72, 0x2b, 0xdb, 0x00, 0x34, 0xa7, 0xa4, -0x4c, 0x84, 0xd6, 0x97, 0xd4, 0x48, 0x0f, 0x48, 0xf3, 0xae, 0x25, 0x5a, 0xb5, 0xb1, 0x35, 0x26, -0x2a, 0x39, 0xe4, 0x5f, 0x12, 0xd1, 0xd4, 0xe8, 0xc2, 0x0e, 0xa5, 0x90, 0xc3, 0xae, 0x27, 0x1e, -0x6b, 0xa9, 0x67, 0xd7, 0xef, 0x13, 0xab, 0xf8, 0xf7, 0x46, 0x7c, 0xad, 0x12, 0xcf, 0x94, 0xfc, -0xda, 0x11, 0x7d, 0x5f, 0xef, 0x2b, 0xe4, 0xbe, 0xee, 0xd1, 0x85, 0xf4, 0x2a, 0x97, 0x32, 0xbe, -0xd7, 0x2b, 0x94, 0x77, 0x33, 0xbe, 0x91, 0x06, 0x65, 0x4c, 0xe7, 0x5b, 0xae, 0x1c, 0xd1, 0xf9, -0x9a, 0x94, 0xfd, 0x3a, 0xdf, 0x4a, 0xe5, 0xd5, 0x3f, 0xa4, 0x75, 0xf6, 0xeb, 0x38, 0x3f, 0x36, -0xce, 0x6c, 0x9f, 0xfd, 0x77, 0x89, 0xe6, 0x9b, 0xdb, 0x67, 0xbf, 0x91, 0xe8, 0x6b, 0x69, 0x63, -0xd7, 0x27, 0x09, 0x37, 0xff, 0x4e, 0x62, 0xfb, 0x4a, 0x32, 0x25, 0xbf, 0xb2, 0x4b, 0xdf, 0xbe, -0x57, 0xae, 0xdc, 0xdc, 0xbe, 0xbd, 0xa3, 0xfa, 0xf6, 0xed, 0x3d, 0xaa, 0x6f, 0xdf, 0xff, 0xa8, -0xd7, 0xb7, 0xef, 0x7f, 0x6c, 0xd4, 0xb7, 0x6f, 0xcf, 0xb8, 0xbe, 0x7d, 0x7b, 0xdb, 0xff, 0xb0, -0xf6, 0xcd, 0xbb, 0x81, 0xed, 0x1b, 0x5d, 0xe5, 0x67, 0xf7, 0xef, 0xd0, 0xbd, 0x79, 0x55, 0x9e, -0x68, 0x5b, 0x62, 0xa5, 0x68, 0x33, 0xb6, 0xf1, 0x9a, 0xf2, 0x98, 0x36, 0x86, 0xbd, 0x62, 0x04, -0x31, 0x6c, 0x5c, 0xe9, 0x63, 0xf7, 0x14, 0xa6, 0xd9, 0xbb, 0xaa, 0x80, 0xdd, 0x9f, 0x10, 0xdf, -0x11, 0xbb, 0x26, 0x89, 0x57, 0x40, 0x49, 0xf9, 0xa6, 0x31, 0x7c, 0x07, 0xbb, 0x54, 0xb2, 0x6b, -0x8c, 0xe1, 0x3b, 0x32, 0x35, 0xde, 0x3c, 0x63, 0x8d, 0x3d, 0x9b, 0x2b, 0xd6, 0x18, 0x7c, 0x4f, -0x17, 0xd6, 0xa9, 0x5f, 0x63, 0x5b, 0x9c, 0xfa, 0x35, 0xb6, 0xfb, 0x90, 0x7e, 0x8d, 0xbd, 0xfc, -0xb2, 0x7e, 0x8d, 0xfd, 0xb7, 0x01, 0xfd, 0x1a, 0xfb, 0x5e, 0x52, 0xbf, 0xc6, 0x5e, 0xa9, 0xd7, -0xaf, 0xb1, 0x57, 0x1a, 0xf5, 0x6b, 0xec, 0x95, 0x15, 0xb4, 0xc6, 0x3e, 0x53, 0x2f, 0xde, 0x85, -0xfd, 0x68, 0xb1, 0xdf, 0x6b, 0x5d, 0xc7, 0x90, 0xcd, 0xc7, 0xbf, 0xc6, 0x44, 0x3e, 0xff, 0x1a, -0xe2, 0x99, 0xd1, 0x1f, 0x1f, 0xb7, 0xe8, 0x5a, 0x39, 0x7e, 0xa1, 0x82, 0x5b, 0xe9, 0xd1, 0x85, -0x1c, 0x50, 0x2e, 0x71, 0x89, 0xf9, 0xb1, 0x81, 0x3b, 0x95, 0xe7, 0xd4, 0xc1, 0x57, 0x43, 0x56, -0xc2, 0xb3, 0xca, 0xa2, 0xcd, 0xc2, 0x06, 0x25, 0x57, 0x9b, 0x9f, 0x6e, 0xfa, 0x95, 0xa4, 0x78, -0xa5, 0x7e, 0xe6, 0x79, 0xdc, 0xfa, 0x1e, 0xf6, 0x24, 0xb9, 0xec, 0x80, 0x2e, 0xe4, 0x84, 0x7e, -0xe6, 0x15, 0xcb, 0xca, 0xbb, 0x9f, 0x75, 0x06, 0xb1, 0xe5, 0xd0, 0xa6, 0x96, 0x5c, 0xc1, 0xdb, -0x9a, 0x08, 0xe2, 0x6f, 0xd6, 0xc8, 0x40, 0x7c, 0x95, 0xd2, 0xd8, 0x6d, 0x1a, 0x19, 0x58, 0xf5, -0x28, 0xfa, 0x67, 0x8d, 0x0c, 0x34, 0xe7, 0x6b, 0xf5, 0xcc, 0xc0, 0xa1, 0xf1, 0xeb, 0x9d, 0xfa, -0xfe, 0xf8, 0x4d, 0x3f, 0xd7, 0x49, 0xf7, 0xfd, 0xb7, 0x2e, 0x5d, 0x9d, 0xc6, 0x7f, 0x97, 0xaf, -0x5b, 0x0d, 0xe3, 0xff, 0xf2, 0xa2, 0x32, 0xf6, 0x07, 0xd5, 0x70, 0x45, 0x8b, 0x4d, 0xab, 0x61, -0x65, 0x4b, 0x13, 0xf6, 0xef, 0x2a, 0xa5, 0x93, 0xeb, 0xd7, 0x7a, 0x53, 0xfd, 0x9a, 0x74, 0x35, -0xda, 0x70, 0x9b, 0xfa, 0xe9, 0xbe, 0x4f, 0xec, 0xd6, 0xd7, 0xef, 0xe3, 0x83, 0xfa, 0xfa, 0x7d, -0x90, 0xa7, 0x5b, 0xad, 0xe3, 0xbf, 0x19, 0x50, 0x8e, 0x7c, 0xf6, 0x15, 0xc9, 0x2b, 0xaf, 0x79, -0x95, 0xaf, 0x1b, 0xfb, 0xb1, 0x65, 0xae, 0xa8, 0xf5, 0x13, 0x00, 0xdf, 0x67, 0xed, 0x51, 0x2f, -0xa2, 0xdf, 0x20, 0x2c, 0x9e, 0xe2, 0x0a, 0x39, 0x40, 0x6d, 0x43, 0xf7, 0x61, 0x74, 0xef, 0xe6, -0x94, 0xe6, 0x44, 0xb9, 0xb6, 0x7a, 0xa5, 0x44, 0x58, 0xcc, 0x12, 0xfc, 0xbe, 0x5b, 0xb1, 0xb3, -0x7b, 0x76, 0x22, 0xc0, 0xbf, 0x16, 0x0c, 0xdb, 0xa4, 0x54, 0x66, 0x46, 0xfc, 0x4b, 0xaf, 0xea, -0xe7, 0x47, 0xa9, 0xa4, 0xad, 0xc0, 0x0d, 0xba, 0xb0, 0x33, 0xfa, 0x15, 0xf8, 0xe5, 0x26, 0xfd, -0x0a, 0xf4, 0xe7, 0xeb, 0x57, 0xa0, 0xff, 0x88, 0x7e, 0x05, 0x3e, 0xb8, 0x41, 0xbf, 0x02, 0xcb, -0x0e, 0xeb, 0x57, 0x60, 0xd9, 0xa4, 0xb2, 0xf3, 0x0f, 0xec, 0x97, 0xd8, 0x2a, 0x4f, 0x37, 0x8d, -0x22, 0xc0, 0x96, 0x16, 0x6b, 0xba, 0x2f, 0xf6, 0xe2, 0x68, 0x66, 0x71, 0xe8, 0x06, 0x0c, 0x13, -0x7d, 0xb2, 0x93, 0xea, 0xaf, 0xad, 0x13, 0x7f, 0x8b, 0xac, 0xad, 0x8e, 0x72, 0xd1, 0x4b, 0x08, -0x97, 0xe5, 0xcc, 0xf8, 0x9c, 0x3d, 0xa5, 0x1f, 0xe9, 0x77, 0x7d, 0x37, 0xc1, 0xe5, 0xf1, 0xf3, -0x15, 0xfa, 0x91, 0x3e, 0xfb, 0xa8, 0x7e, 0xa4, 0xdf, 0x3d, 0xac, 0x1f, 0xe9, 0x73, 0x3b, 0x74, -0x70, 0x79, 0xfc, 0xdd, 0xf7, 0x75, 0x70, 0x79, 0xfc, 0xbd, 0xe1, 0xcf, 0x0e, 0x97, 0x79, 0xce, -0x02, 0xec, 0x6a, 0xc9, 0xd7, 0x66, 0x6d, 0xb2, 0xa5, 0x3f, 0xdd, 0xda, 0x21, 0x65, 0xf9, 0x2d, -0xeb, 0xbf, 0x6f, 0xe6, 0xfa, 0xc7, 0x16, 0xb6, 0x2a, 0x39, 0x99, 0xb2, 0x7f, 0x3a, 0xaa, 0x6f, -0xe1, 0xe8, 0x06, 0x6e, 0x61, 0x66, 0xe7, 0x1d, 0x3f, 0xba, 0x4f, 0xdf, 0xc2, 0xbf, 0xed, 0xd4, -0xb7, 0xf0, 0x67, 0x9b, 0xf5, 0x2d, 0x3c, 0x16, 0xd5, 0xb7, 0xf0, 0x78, 0x9d, 0xb2, 0xff, 0x0f, -0x1c, 0x41, 0x79, 0x15, 0x59, 0xe9, 0x88, 0x76, 0x53, 0x5b, 0x1a, 0x94, 0x52, 0xad, 0x25, 0x05, -0x5a, 0xad, 0x2b, 0xf5, 0xb5, 0xee, 0xb8, 0xac, 0xaf, 0x75, 0x67, 0xcd, 0x4d, 0x50, 0x6b, 0x7c, -0xf5, 0x1e, 0x7d, 0xad, 0x3b, 0x76, 0xfe, 0x01, 0x50, 0x8b, 0x66, 0x4b, 0x7f, 0x6a, 0x06, 0x25, -0xa2, 0x2d, 0x08, 0xaf, 0xb4, 0xfa, 0x15, 0xae, 0x32, 0xf3, 0xaa, 0xea, 0x53, 0xda, 0x6e, 0xaa, -0xdb, 0x8c, 0x1e, 0x7d, 0x74, 0x5a, 0x5f, 0xb7, 0x3f, 0x6a, 0xbd, 0xb9, 0x47, 0x57, 0x56, 0xea, -0xeb, 0xf6, 0xc7, 0xef, 0xea, 0x7b, 0xf4, 0xb1, 0x72, 0x7d, 0x8f, 0x3e, 0xf6, 0xb6, 0xbe, 0x47, -0x95, 0x97, 0xff, 0xe0, 0x1e, 0x05, 0xd8, 0xbe, 0xaa, 0xf2, 0x26, 0x68, 0x31, 0xc1, 0xd0, 0xe2, -0x72, 0x6a, 0xce, 0x18, 0x4a, 0x71, 0x35, 0x1c, 0xec, 0xce, 0xe6, 0x59, 0x35, 0x81, 0xb8, 0xf7, -0x21, 0x01, 0xf7, 0x5a, 0xc0, 0x50, 0x80, 0x5f, 0xf6, 0x71, 0x4e, 0xb3, 0x12, 0xbd, 0xab, 0xf2, -0xb5, 0x36, 0xd7, 0xb5, 0xf4, 0xe9, 0xf6, 0xfe, 0xc6, 0x34, 0x6e, 0x7e, 0x68, 0x95, 0x55, 0xeb, -0x0d, 0x80, 0x77, 0x15, 0x67, 0x1a, 0x33, 0x1f, 0x49, 0x61, 0xe6, 0x0c, 0x97, 0x74, 0xb3, 0xfe, -0xc9, 0xb7, 0xf4, 0xfd, 0xd4, 0x53, 0xaa, 0x41, 0x16, 0x5d, 0x8b, 0x7b, 0xce, 0xea, 0x20, 0xcb, -0x78, 0x4f, 0xbf, 0x0e, 0xb2, 0x8c, 0xf7, 0xbc, 0xac, 0x83, 0x2c, 0xe3, 0xbd, 0xfd, 0x3a, 0xc8, -0x32, 0xde, 0xab, 0xdf, 0xdb, 0xc7, 0x7b, 0x37, 0xe8, 0x20, 0xcb, 0x78, 0x6f, 0xaf, 0x6e, 0x6f, -0x1f, 0xef, 0xdd, 0xa4, 0xdb, 0xdb, 0xc7, 0x7b, 0xb7, 0xcc, 0xc0, 0x9f, 0xc7, 0x7b, 0x77, 0xcd, -0xc0, 0x9f, 0xc7, 0x7b, 0x5f, 0x21, 0xfc, 0xf9, 0xb3, 0xef, 0xfd, 0xd6, 0xe7, 0x78, 0xbf, 0xcd, -0xcd, 0xc0, 0xb5, 0xff, 0xd4, 0xcb, 0xad, 0x9c, 0xfb, 0x6f, 0xde, 0xcd, 0xc3, 0x62, 0x35, 0x4b, -0x92, 0xb6, 0x9b, 0x9b, 0xe2, 0x3e, 0x1d, 0xbc, 0xfa, 0x95, 0x37, 0xae, 0x87, 0xd6, 0xde, 0xfd, -0x5c, 0x9a, 0x6e, 0xb7, 0x2f, 0xd9, 0xa3, 0x61, 0x12, 0x9f, 0x75, 0x0e, 0x49, 0x89, 0xca, 0x5b, -0x30, 0x09, 0x6d, 0xde, 0xdf, 0x8c, 0x49, 0xd4, 0xea, 0x61, 0xe5, 0xaf, 0x1e, 0x7b, 0xf9, 0x66, -0x4c, 0xe2, 0xb1, 0xc7, 0xf4, 0x98, 0xc4, 0x12, 0xdf, 0x67, 0x5f, 0x93, 0x5a, 0x8b, 0x97, 0xaf, -0xca, 0x4d, 0xad, 0x44, 0x6d, 0xff, 0x7a, 0x4c, 0x91, 0x45, 0x2f, 0x24, 0x6a, 0xf8, 0x77, 0x56, -0xbc, 0x4e, 0x0f, 0xbd, 0x5b, 0x67, 0x40, 0x89, 0xd6, 0x57, 0x6f, 0xc6, 0x23, 0x12, 0x97, 0xf5, -0x2b, 0x71, 0xf5, 0xa0, 0x7e, 0x25, 0xae, 0x7e, 0xec, 0xb3, 0xe3, 0x11, 0x5c, 0x76, 0x56, 0xa2, -0x7b, 0xd5, 0x1c, 0xad, 0x7f, 0x2a, 0x34, 0x88, 0x1b, 0xd1, 0x7a, 0x2e, 0xae, 0xf0, 0x17, 0xc9, -0x9c, 0xa8, 0xe7, 0xdf, 0xd9, 0x62, 0xb7, 0x91, 0x8c, 0x58, 0x5f, 0x1d, 0x1e, 0xf8, 0xf4, 0x19, -0x7d, 0x7d, 0x37, 0x56, 0xdc, 0x5c, 0xdf, 0x8d, 0x51, 0x7d, 0x7d, 0x37, 0x8e, 0xe8, 0xeb, 0xfb, -0x4c, 0xee, 0x67, 0xaf, 0xaf, 0x69, 0x40, 0x55, 0xa7, 0xd5, 0xee, 0xd9, 0xb4, 0xca, 0xa1, 0x6d, -0x6c, 0xc0, 0xb7, 0xd0, 0x6c, 0xaa, 0xff, 0x04, 0x24, 0xc8, 0x03, 0x3b, 0x3c, 0xa6, 0xfd, 0x6b, -0xc0, 0x7f, 0x7e, 0x08, 0x67, 0x46, 0xac, 0x62, 0x42, 0x3f, 0xbe, 0x0b, 0x6f, 0xae, 0xdd, 0xaf, -0x16, 0x1e, 0xd0, 0x8f, 0xef, 0xc2, 0x69, 0x3d, 0x8d, 0x12, 0x28, 0xfb, 0xc3, 0x7a, 0xd3, 0x60, -0x5e, 0x25, 0xe0, 0xff, 0xac, 0xe6, 0x66, 0x6d, 0x1e, 0xb6, 0x69, 0xf0, 0x85, 0xe8, 0xaa, 0x57, -0x95, 0x92, 0xd4, 0xfe, 0x9d, 0x86, 0x45, 0xdb, 0x95, 0x15, 0x1a, 0xcc, 0x69, 0x13, 0x10, 0x27, -0x91, 0x14, 0xb0, 0x09, 0x77, 0x74, 0x5d, 0x2d, 0x1f, 0x4e, 0xea, 0x5b, 0xf1, 0xf0, 0x3b, 0x37, -0x53, 0x5a, 0x15, 0x92, 0xbe, 0x15, 0x15, 0x6e, 0x7d, 0x2b, 0x2a, 0xda, 0xf4, 0x94, 0x56, 0xc5, -0xab, 0x7a, 0x4a, 0xab, 0xe2, 0xb0, 0x9e, 0xd2, 0xaa, 0x38, 0xf5, 0x19, 0x77, 0xf4, 0x5b, 0x6c, -0x64, 0x3d, 0x63, 0xfe, 0xd7, 0x6c, 0x64, 0xed, 0x8c, 0x7e, 0x26, 0x1b, 0x59, 0x15, 0x8e, 0xe0, -0x83, 0xfd, 0x38, 0xa6, 0xb7, 0x5a, 0xc9, 0xea, 0x9b, 0x69, 0xf9, 0xea, 0x85, 0x09, 0x9d, 0xe5, -0x2b, 0xca, 0xf1, 0x51, 0xfd, 0xd7, 0x67, 0x82, 0xb5, 0xc2, 0xce, 0xd5, 0x0e, 0xcd, 0x8a, 0x56, -0x40, 0x57, 0x57, 0x5f, 0xfd, 0x8e, 0x99, 0x79, 0xed, 0x5c, 0x9e, 0xb6, 0x9f, 0xd5, 0xa7, 0xb7, -0x9f, 0xf5, 0x4c, 0xc1, 0xcd, 0xf6, 0xb3, 0x9e, 0x71, 0xdd, 0x6a, 0x3f, 0xeb, 0x99, 0x72, 0xb2, -0xca, 0x95, 0xf1, 0xbf, 0xb0, 0x25, 0xdd, 0x52, 0x47, 0xc9, 0xe1, 0xcf, 0x66, 0x57, 0xab, 0x69, -0x9b, 0xb0, 0xaa, 0xb5, 0x12, 0x84, 0xbe, 0x05, 0x59, 0xb3, 0x94, 0x8c, 0xa1, 0x5e, 0xc8, 0xeb, -0x06, 0x4f, 0x17, 0x69, 0xdd, 0x9e, 0x7a, 0x54, 0xd3, 0xb3, 0xc0, 0xe7, 0x55, 0xdc, 0x86, 0x3d, -0x7c, 0xca, 0xd5, 0x18, 0xfe, 0x8b, 0xfa, 0x43, 0xea, 0x71, 0x39, 0xa8, 0xf5, 0x45, 0xc1, 0xfc, -0xa0, 0xe9, 0xf4, 0xbc, 0x7e, 0x38, 0xff, 0xe2, 0x15, 0xa1, 0x73, 0x61, 0x5e, 0x0c, 0x1c, 0x29, -0xed, 0xb6, 0x98, 0x9e, 0x4e, 0xc8, 0xcc, 0x5e, 0x09, 0xd3, 0x1b, 0x45, 0xfa, 0xd4, 0x59, 0x99, -0xba, 0x21, 0x9d, 0xc7, 0x5c, 0x4a, 0xbf, 0xfb, 0xac, 0x96, 0x3e, 0x0c, 0x0e, 0x71, 0x7e, 0x36, -0x71, 0x88, 0x35, 0xba, 0x50, 0x4e, 0xf7, 0xdd, 0x31, 0xa7, 0x07, 0x31, 0xa7, 0x8a, 0x99, 0x39, -0xfd, 0xf9, 0xa1, 0x5b, 0x72, 0x4a, 0x7e, 0x86, 0x9c, 0x16, 0xd4, 0x1f, 0x9a, 0xbe, 0x3c, 0x33, -0xa7, 0x97, 0x5e, 0xbc, 0x25, 0x27, 0xe7, 0x8c, 0x9c, 0x32, 0xbd, 0xa3, 0xcf, 0x69, 0x25, 0xe6, -0xf4, 0x6a, 0x3a, 0x27, 0xfb, 0xfc, 0xa0, 0x74, 0x8e, 0x72, 0xfb, 0xaf, 0xe7, 0x32, 0x3d, 0x24, -0xce, 0xfe, 0xfe, 0xf9, 0x4c, 0x3a, 0xb7, 0xdb, 0xf4, 0xd5, 0xe6, 0xed, 0xa9, 0xf3, 0xd1, 0xe9, -0xa6, 0x99, 0xf5, 0x7a, 0xb9, 0xf1, 0xe6, 0x7a, 0xfd, 0xf3, 0xd6, 0x3b, 0xd4, 0xab, 0x46, 0x9c, -0x6b, 0xd3, 0xa8, 0x4d, 0xe7, 0xea, 0x47, 0x4d, 0x72, 0x72, 0x4e, 0x67, 0x6f, 0x3b, 0x6a, 0x99, -0xf4, 0x65, 0x99, 0xf4, 0x53, 0xa7, 0x66, 0xa4, 0xb7, 0x53, 0xfa, 0xff, 0xf6, 0xd4, 0xbf, 0x32, -0xea, 0x36, 0x91, 0x3e, 0x7d, 0xb2, 0xbc, 0x75, 0x66, 0x4b, 0xbe, 0xe7, 0xb9, 0xb9, 0x25, 0xef, -0x1f, 0xbd, 0xc3, 0x58, 0xc5, 0x32, 0x39, 0xf1, 0xb9, 0x76, 0x64, 0x66, 0x4e, 0xff, 0x3d, 0x72, -0x4b, 0x4e, 0x7d, 0x77, 0xc8, 0xc9, 0xad, 0xcb, 0x89, 0x2c, 0x8d, 0xdc, 0x98, 0x99, 0xd3, 0x2b, -0xa5, 0xb7, 0xe4, 0xe4, 0xbb, 0x5d, 0x4e, 0xb8, 0x0e, 0xf9, 0xfc, 0x3f, 0x75, 0xa2, 0x3f, 0x39, -0x32, 0x33, 0x9f, 0xff, 0x61, 0xba, 0x39, 0x9f, 0xff, 0x33, 0xf1, 0x29, 0xf9, 0xfc, 0x7d, 0xea, -0x36, 0x61, 0xb2, 0xed, 0xa6, 0x7c, 0xb6, 0xdf, 0x92, 0xcf, 0xcb, 0x77, 0x68, 0x59, 0x34, 0x33, -0x0b, 0xe9, 0x2e, 0x63, 0x52, 0x9e, 0x99, 0xd3, 0xab, 0x4d, 0xb7, 0xe4, 0xb4, 0xe2, 0x53, 0x6a, -0xb4, 0x3d, 0x75, 0x8f, 0xf2, 0xc9, 0x99, 0x99, 0xf9, 0xfc, 0xc5, 0x2d, 0x6b, 0xf5, 0xff, 0xe4, -0x7c, 0xda, 0x0a, 0xd3, 0x72, 0xfa, 0x11, 0xe6, 0x74, 0xd3, 0xf8, 0xef, 0x91, 0x6f, 0xce, 0xe9, -0xc2, 0x9d, 0xc6, 0x3f, 0x57, 0x97, 0xd3, 0x5f, 0x62, 0x4e, 0x37, 0x8d, 0xff, 0x9e, 0xdd, 0xb7, -0xe4, 0x74, 0xa7, 0xf1, 0xb7, 0xe8, 0x72, 0xfa, 0x73, 0xd2, 0x9c, 0x39, 0x33, 0xa7, 0xbf, 0x74, -0xde, 0x92, 0x93, 0xef, 0x0e, 0x39, 0xe5, 0xe9, 0xfa, 0x9b, 0x74, 0x70, 0x0e, 0xdf, 0x94, 0xd3, -0xb1, 0x9b, 0x73, 0xfa, 0xd5, 0xfb, 0x77, 0xc8, 0xc9, 0x2a, 0xee, 0xfa, 0x52, 0xb7, 0x77, 0x37, -0xe2, 0x33, 0x73, 0xda, 0xbb, 0xf6, 0x96, 0x9c, 0x76, 0xdf, 0x21, 0x27, 0x9b, 0xae, 0x4e, 0x7f, -0x86, 0x39, 0x15, 0xce, 0xcc, 0xe9, 0xb5, 0xbc, 0x5b, 0x72, 0x6a, 0xd4, 0xe7, 0x44, 0x7a, 0xac, -0x32, 0xb6, 0x73, 0xa6, 0x57, 0xdd, 0x72, 0x57, 0x79, 0x6a, 0x86, 0x9e, 0x1f, 0x37, 0xac, 0x8c, -0xed, 0x85, 0xa1, 0x78, 0x6e, 0x5a, 0x9a, 0x2c, 0x3e, 0x3f, 0x08, 0x43, 0x09, 0x30, 0x04, 0x31, -0x7c, 0x4b, 0xbc, 0x40, 0x6e, 0x83, 0xa1, 0xa4, 0x2f, 0xfd, 0xb5, 0x1b, 0xbf, 0x6e, 0x21, 0x3d, -0x14, 0xb1, 0x36, 0xd8, 0x15, 0x2f, 0x09, 0xfd, 0x1e, 0xeb, 0xba, 0x3a, 0xa9, 0xda, 0xdb, 0x60, -0x4b, 0x77, 0xda, 0x7a, 0xe3, 0x74, 0x84, 0xa4, 0x1c, 0x61, 0x1a, 0xf7, 0x67, 0x03, 0xec, 0xc2, -0x1c, 0xb6, 0xcc, 0x6f, 0x45, 0xdc, 0xab, 0x15, 0x73, 0x7c, 0x31, 0x5e, 0xca, 0xb2, 0x47, 0xe3, -0xfb, 0xae, 0x61, 0x4e, 0x2f, 0x92, 0x3c, 0x19, 0xbc, 0x4d, 0x31, 0xe6, 0x05, 0xc1, 0x45, 0xbf, -0x5f, 0xea, 0x87, 0xd9, 0x6c, 0x11, 0x61, 0x4b, 0x3a, 0xb7, 0xf2, 0x58, 0x9b, 0xf4, 0x46, 0xdc, -0x56, 0x75, 0x11, 0xec, 0xa4, 0x73, 0x68, 0x7a, 0x17, 0xe5, 0x2b, 0xbd, 0x11, 0xdb, 0x2b, 0x05, -0xe2, 0xa4, 0xdf, 0x73, 0x25, 0xe6, 0xfe, 0xa2, 0x14, 0xc0, 0xdc, 0xdb, 0xe3, 0x4d, 0x33, 0xda, -0x91, 0x4c, 0xf4, 0xca, 0x41, 0x9d, 0x74, 0x7d, 0xb7, 0x3d, 0x88, 0xa1, 0x3d, 0x89, 0x55, 0x5c, -0xef, 0xb5, 0x49, 0xc3, 0x4d, 0x75, 0x8e, 0x61, 0x6e, 0x3d, 0x5c, 0xd7, 0x76, 0xb9, 0x4d, 0x2a, -0xb1, 0x05, 0xd4, 0x09, 0x8c, 0x41, 0xf2, 0x8a, 0x87, 0xb1, 0xb4, 0xb2, 0x78, 0x0e, 0xd7, 0xfd, -0x57, 0xcf, 0x8c, 0x35, 0x91, 0x2e, 0xf8, 0x42, 0x2c, 0x71, 0x47, 0x7c, 0x8e, 0x08, 0x1b, 0xb5, -0x51, 0x58, 0xda, 0x12, 0xa5, 0x89, 0x6d, 0xc7, 0xa7, 0xf5, 0x22, 0x91, 0x14, 0xac, 0xf7, 0x61, -0x2a, 0x29, 0xda, 0x29, 0x45, 0x11, 0x96, 0x77, 0x86, 0x3e, 0x92, 0xd6, 0x16, 0x47, 0xa5, 0xa7, -0xc2, 0xdf, 0x97, 0xfa, 0xd0, 0xdd, 0x87, 0xee, 0xb5, 0xc5, 0xfd, 0xf0, 0xab, 0xf2, 0x5e, 0x69, -0x33, 0xfe, 0x9e, 0x7f, 0x76, 0xbd, 0xf4, 0x52, 0x71, 0xbd, 0xf4, 0x6a, 0xc3, 0x36, 0x99, 0x6b, -0x68, 0x76, 0x81, 0x49, 0x6a, 0x4e, 0xb0, 0x5d, 0x90, 0x67, 0xbf, 0x9d, 0xb2, 0x0b, 0x82, 0x29, -0x07, 0xe9, 0x8e, 0x3a, 0x69, 0xd0, 0xf4, 0x59, 0x9e, 0x63, 0x4d, 0x88, 0x5d, 0x50, 0x4e, 0x7a, -0x13, 0x9f, 0xfd, 0x4b, 0xc8, 0x0b, 0x5d, 0x34, 0x8d, 0x7a, 0xa3, 0x50, 0xc0, 0xfe, 0x61, 0x92, -0x1c, 0x34, 0x1d, 0x45, 0x3f, 0xeb, 0x55, 0x7c, 0xf6, 0x6f, 0xc1, 0x81, 0xfe, 0xe3, 0xe8, 0x77, -0x85, 0x7f, 0x00, 0x1e, 0x7c, 0x7c, 0x33, 0x4a, 0xb3, 0x79, 0x79, 0xad, 0x3d, 0x7b, 0x36, 0xa5, -0x93, 0x81, 0xec, 0x74, 0x3e, 0xfb, 0x9b, 0x9b, 0xec, 0x74, 0x36, 0x25, 0xc0, 0x08, 0xf4, 0x65, -0x8b, 0x41, 0x6f, 0xd9, 0xd3, 0x09, 0xf8, 0x6d, 0x65, 0x3c, 0x4f, 0xb4, 0xdb, 0xeb, 0x86, 0x26, -0x84, 0xfa, 0xcd, 0x2c, 0x71, 0x79, 0x8a, 0x63, 0xe7, 0xde, 0x64, 0x07, 0x74, 0x79, 0xdc, 0x91, -0x8e, 0xbb, 0x72, 0xf1, 0x8d, 0x29, 0xc2, 0x96, 0x32, 0x69, 0x19, 0xbf, 0xc2, 0xb4, 0x3b, 0x39, -0xed, 0xbc, 0x9b, 0xd2, 0x36, 0xc7, 0x7d, 0xe9, 0xb8, 0xcb, 0x17, 0xdf, 0x98, 0x9c, 0xd4, 0xa5, -0x5d, 0x79, 0x4b, 0x3e, 0x48, 0xf9, 0x67, 0xd5, 0x73, 0x3e, 0x3e, 0x7d, 0x3e, 0x0e, 0xaa, 0xb1, -0x12, 0x0f, 0xa4, 0x63, 0x37, 0x63, 0x4e, 0x23, 0xba, 0xd4, 0xcb, 0x3f, 0x35, 0x57, 0x59, 0x01, -0xe9, 0x3a, 0xcd, 0xac, 0x2d, 0x01, 0xec, 0x21, 0xd2, 0x8e, 0xf5, 0x36, 0x62, 0x57, 0x63, 0x3c, -0xd7, 0x86, 0x75, 0x21, 0x27, 0x43, 0x1f, 0x43, 0x1e, 0xfb, 0x76, 0x90, 0xa6, 0x22, 0xe9, 0x68, -0xb2, 0xe4, 0x36, 0x3a, 0xbf, 0x48, 0x6e, 0x74, 0xaf, 0x56, 0x02, 0x60, 0x3d, 0x02, 0xa9, 0xf2, -0xa2, 0x6d, 0xc6, 0x0b, 0x3a, 0x77, 0xaf, 0xce, 0xfd, 0xfd, 0xfa, 0xe7, 0xe7, 0xf7, 0xc3, 0xf8, -0xc9, 0x8b, 0xb0, 0x37, 0xbc, 0x17, 0xbe, 0x3f, 0x3f, 0x06, 0x23, 0xa1, 0x8b, 0xf0, 0xbd, 0xf9, -0x51, 0x78, 0x09, 0xfd, 0x07, 0xd0, 0x3d, 0x81, 0xee, 0xcb, 0xe8, 0xbe, 0x84, 0xee, 0x4b, 0xe8, -0x9e, 0x60, 0x9d, 0x9c, 0x7f, 0x25, 0xd2, 0xc3, 0xa1, 0x4c, 0x5e, 0x70, 0xad, 0xfe, 0xf9, 0xd0, -0x45, 0x83, 0x63, 0x7e, 0xd4, 0xe0, 0x09, 0xef, 0x35, 0xb8, 0xd0, 0xed, 0x42, 0x37, 0xce, 0x97, -0xec, 0x39, 0xf3, 0xa3, 0xd9, 0xf6, 0xf0, 0xde, 0xec, 0xb9, 0xe8, 0x9e, 0x8b, 0xee, 0x39, 0xa9, -0x34, 0x86, 0xd2, 0x4c, 0x7a, 0x83, 0x22, 0x30, 0xe5, 0x54, 0xde, 0x86, 0xad, 0xba, 0x6f, 0x87, -0x75, 0xee, 0x8b, 0x58, 0x0e, 0xf6, 0xd0, 0x33, 0x74, 0x0b, 0x5e, 0x90, 0x04, 0x7b, 0xf0, 0x97, -0xa3, 0xf8, 0xef, 0xe7, 0xbf, 0xfc, 0x79, 0xd5, 0xaf, 0xb3, 0xfc, 0x55, 0x57, 0x76, 0x81, 0x7d, -0xe8, 0x7e, 0x96, 0x0b, 0xc3, 0xb7, 0x19, 0xcc, 0x8d, 0x03, 0xa1, 0x09, 0xb0, 0x76, 0xdf, 0x35, -0x32, 0x10, 0x3f, 0xfd, 0x60, 0xff, 0x7f, 0xfd, 0xaf, 0x59, 0x07, 0x6f, 0x5d, 0x1f, 0x5b, 0x1e, -0x49, 0xad, 0x8f, 0x19, 0xeb, 0x15, 0x0c, 0x8f, 0xea, 0xd7, 0x2a, 0xfa, 0x63, 0xb7, 0x49, 0xfb, -0x8d, 0x19, 0x69, 0xc7, 0x7f, 0x5f, 0x98, 0xb4, 0x45, 0x83, 0x64, 0x71, 0xf6, 0x0b, 0xc9, 0x9e, -0x40, 0x7a, 0xae, 0x44, 0x11, 0x83, 0x1a, 0x25, 0xe8, 0x65, 0x30, 0x85, 0xf7, 0x9a, 0xf6, 0x87, -0x25, 0xc2, 0xf6, 0xa5, 0x76, 0x59, 0x1a, 0x1b, 0xc4, 0x7f, 0x03, 0x63, 0x03, 0x26, 0xa4, 0xcd, -0xb2, 0xfd, 0xd1, 0x6e, 0x33, 0xd4, 0x3f, 0xdf, 0x38, 0xd8, 0xb4, 0x2d, 0x29, 0x0f, 0x0f, 0xc6, -0xcf, 0xf1, 0xec, 0xf8, 0x2e, 0x41, 0x94, 0x29, 0x65, 0x7e, 0xd0, 0xf8, 0x6a, 0x78, 0xaf, 0x71, -0x2f, 0x87, 0xfd, 0x45, 0x3a, 0xec, 0x2c, 0x86, 0x89, 0x78, 0x07, 0x52, 0x61, 0xd9, 0xb9, 0xd8, -0xdb, 0xf9, 0x61, 0x84, 0x82, 0xb7, 0xa9, 0xef, 0xd1, 0x74, 0x7d, 0xdd, 0x12, 0xc2, 0x56, 0xac, -0xc7, 0xaf, 0xc2, 0x48, 0x8d, 0x60, 0xfd, 0x2e, 0x88, 0x10, 0x76, 0x4f, 0xf0, 0x1e, 0xb2, 0x57, -0xba, 0x90, 0x58, 0x8e, 0x3b, 0x49, 0x03, 0xae, 0xfa, 0x33, 0xf3, 0xa3, 0xa6, 0x73, 0x58, 0xf7, -0xb3, 0xe8, 0x3e, 0x8b, 0xee, 0x33, 0xa9, 0x11, 0x31, 0x5d, 0xa8, 0x3f, 0xf4, 0xfb, 0xb7, 0xb0, -0x06, 0xbf, 0xfa, 0x91, 0xcb, 0x1e, 0xf3, 0x54, 0x61, 0x1d, 0x7a, 0x6f, 0x82, 0x42, 0xbc, 0x6f, -0x6e, 0x79, 0x3f, 0x55, 0xb2, 0x62, 0x4c, 0x41, 0xbb, 0x3a, 0xd2, 0xf1, 0x2a, 0xf3, 0xfe, 0xe2, -0xa3, 0xfd, 0x05, 0xf7, 0x9d, 0x3c, 0x3b, 0x42, 0x67, 0xe7, 0x6a, 0xc8, 0xc1, 0xbd, 0x26, 0xcf, -0xee, 0x86, 0x02, 0x84, 0xed, 0x85, 0xe1, 0x36, 0x90, 0x63, 0xaf, 0x81, 0x27, 0xee, 0x43, 0xaa, -0xd1, 0xbf, 0x7f, 0x20, 0xee, 0x32, 0x3f, 0x40, 0xf2, 0x0d, 0x71, 0xd9, 0x6b, 0x16, 0x76, 0xdd, -0x69, 0x9c, 0x0a, 0x56, 0x88, 0x9d, 0x8f, 0xa0, 0xea, 0x83, 0x41, 0x90, 0x23, 0x6d, 0xa4, 0x39, -0xcf, 0x6a, 0x64, 0x79, 0x40, 0xd2, 0x91, 0x6e, 0x61, 0x1a, 0x94, 0x65, 0x85, 0xe3, 0x26, 0xa6, -0x44, 0xa3, 0x48, 0x3b, 0xb9, 0x90, 0x76, 0x9a, 0xc5, 0x3a, 0x47, 0xb2, 0x71, 0x96, 0x58, 0xa8, -0xce, 0x90, 0x93, 0x30, 0x2b, 0x1e, 0x3e, 0xdd, 0x74, 0x16, 0xd5, 0xaa, 0x57, 0x8a, 0x62, 0xea, -0xb5, 0xa2, 0xa8, 0x7a, 0x03, 0x29, 0xcf, 0x0e, 0xf5, 0xdd, 0x68, 0x9f, 0xda, 0x40, 0xe5, 0x39, -0x77, 0xf8, 0x8a, 0xd5, 0x69, 0xa6, 0x98, 0x49, 0xbb, 0x5e, 0x87, 0x7a, 0xda, 0xd3, 0xa1, 0x9e, -0x21, 0x29, 0x33, 0x61, 0x73, 0x28, 0x40, 0x1a, 0x43, 0xca, 0xe5, 0x35, 0xd8, 0x1e, 0x17, 0xd0, -0x9e, 0xea, 0x77, 0xe1, 0x5e, 0x21, 0x34, 0x25, 0xb0, 0x15, 0xbc, 0x5f, 0x99, 0x9b, 0x52, 0x76, -0xc6, 0x24, 0x07, 0xcb, 0x37, 0x7a, 0xc4, 0x49, 0x98, 0x56, 0xab, 0x7b, 0x48, 0x5f, 0x10, 0xd6, -0xab, 0x81, 0x4f, 0x26, 0x2f, 0x21, 0x4c, 0x58, 0x42, 0x7b, 0x34, 0x12, 0xce, 0x1e, 0xac, 0x63, -0x41, 0xdc, 0xe2, 0x5e, 0x03, 0xfe, 0x05, 0x75, 0xe0, 0x57, 0xa4, 0xff, 0xf2, 0xf7, 0x7f, 0xf5, -0xf7, 0x38, 0xbb, 0x72, 0xc2, 0xaf, 0x65, 0x1d, 0x23, 0xed, 0x1a, 0x09, 0x3b, 0x69, 0x28, 0x0a, -0xff, 0x85, 0x37, 0x40, 0x42, 0x22, 0xde, 0xbb, 0xa9, 0xb4, 0xfc, 0x4e, 0xb9, 0x03, 0x4a, 0xe6, -0xb5, 0xc2, 0x1c, 0x60, 0xfb, 0x9e, 0xb0, 0x0f, 0x40, 0x06, 0x28, 0x70, 0x7b, 0x0c, 0x52, 0xac, -0xdd, 0x60, 0x4a, 0x18, 0xdd, 0x45, 0xd2, 0x84, 0xc3, 0x03, 0x25, 0xb2, 0x07, 0x5a, 0x13, 0x66, -0x39, 0x8c, 0xbb, 0x6c, 0xbe, 0x62, 0xb6, 0x87, 0xef, 0x5f, 0x4d, 0x69, 0x62, 0xa4, 0xef, 0x6c, -0x9f, 0x5c, 0x04, 0xe5, 0x09, 0x79, 0xff, 0x40, 0xa2, 0x50, 0x0e, 0x3b, 0x70, 0xa5, 0x2d, 0xfd, -0x3d, 0x8c, 0x4f, 0xbd, 0xa2, 0xb0, 0xa5, 0x53, 0x47, 0x63, 0xd3, 0x36, 0x96, 0x7e, 0xbc, 0xb2, -0x20, 0x0c, 0xe5, 0xb1, 0xa7, 0xe3, 0x94, 0xe3, 0x05, 0x39, 0x30, 0x90, 0x35, 0x64, 0x93, 0xab, -0xab, 0x3e, 0x06, 0x0f, 0xb5, 0x60, 0xaa, 0x9b, 0x6c, 0x86, 0x39, 0x8c, 0x88, 0x91, 0x90, 0xde, -0x52, 0x97, 0x3d, 0xec, 0x58, 0x2d, 0x45, 0x78, 0x3c, 0xea, 0xe4, 0x36, 0x75, 0xf2, 0x66, 0x5d, -0x8d, 0x38, 0x03, 0xfd, 0x6c, 0x13, 0xc6, 0x47, 0xad, 0x08, 0x6f, 0xf6, 0xde, 0x25, 0x87, 0xbd, -0x2e, 0x29, 0xca, 0xbe, 0x11, 0xd2, 0x38, 0x89, 0x35, 0x8c, 0x4a, 0xd1, 0xff, 0xd0, 0x0a, 0xd9, -0xd0, 0x80, 0xef, 0x59, 0xf0, 0x08, 0x5b, 0x25, 0x62, 0x0b, 0x82, 0xd3, 0x2b, 0xb9, 0x3f, 0x02, -0xd8, 0x3f, 0x2b, 0xa5, 0xd7, 0x55, 0xf5, 0x3d, 0x15, 0x77, 0x37, 0x96, 0x8c, 0xc6, 0x71, 0x90, -0xb8, 0x67, 0xc6, 0x3d, 0xc7, 0xe5, 0x62, 0x20, 0x4d, 0x8b, 0x79, 0xc3, 0xfb, 0xa0, 0x04, 0xf7, -0x31, 0xd2, 0xd5, 0x41, 0x73, 0x6a, 0xfc, 0x93, 0x0b, 0xc2, 0xf6, 0x64, 0x3a, 0xbe, 0x55, 0xc4, -0xe7, 0x18, 0xd8, 0x53, 0xe9, 0x38, 0xb2, 0x37, 0x8b, 0xfb, 0x78, 0x8e, 0x3d, 0xc8, 0xa7, 0x0a, -0x73, 0x3f, 0xd7, 0x0f, 0x59, 0x60, 0xfc, 0x32, 0xe1, 0x34, 0xa6, 0xfb, 0xeb, 0xc0, 0x12, 0xfa, -0x35, 0xe4, 0x54, 0xfd, 0x1a, 0x72, 0x59, 0x7e, 0x7a, 0x9f, 0x36, 0x82, 0x1e, 0x6c, 0x97, 0x95, -0x47, 0xc9, 0x88, 0xa3, 0x64, 0x15, 0xa3, 0xa4, 0xe4, 0xde, 0x5a, 0x1e, 0xd5, 0xad, 0xee, 0xbd, -0xfe, 0x80, 0x66, 0x29, 0xe9, 0xab, 0xea, 0x84, 0x97, 0xf4, 0xdf, 0x4f, 0xf2, 0x59, 0x48, 0x01, -0x59, 0x4d, 0x8c, 0xf6, 0x4d, 0x6d, 0xa6, 0xf4, 0x0b, 0x48, 0xff, 0xb8, 0xcd, 0x43, 0x7a, 0x20, -0x34, 0x1d, 0xd9, 0x50, 0xe1, 0x88, 0x6a, 0x56, 0x56, 0x4a, 0x17, 0x7f, 0x24, 0x45, 0xe5, 0x25, -0x19, 0x0b, 0x24, 0xa1, 0x4b, 0xd2, 0x5a, 0x5c, 0xb5, 0xa9, 0x9d, 0xc4, 0x96, 0x34, 0xac, 0xdb, -0x8b, 0xbb, 0x7a, 0x26, 0xc6, 0x31, 0x71, 0x76, 0x20, 0x6c, 0x71, 0x39, 0x6a, 0x39, 0x97, 0x56, -0x96, 0xb6, 0x5f, 0xd5, 0x0b, 0xe5, 0x20, 0xad, 0xfe, 0x58, 0x05, 0xdb, 0xe2, 0x09, 0xa8, 0xcc, -0x9c, 0xca, 0xb0, 0x75, 0xa8, 0xd9, 0x54, 0xef, 0xff, 0x6c, 0x75, 0xe6, 0x98, 0xd6, 0x03, 0x18, -0x4a, 0xe5, 0xaa, 0x4c, 0x99, 0x02, 0x72, 0x2b, 0x92, 0x33, 0xe4, 0x87, 0xe1, 0x0d, 0x09, 0xb3, -0xfd, 0x73, 0x8d, 0x03, 0xb1, 0x75, 0xf1, 0xcb, 0x8e, 0xe7, 0x9d, 0x9b, 0x75, 0xf1, 0x8e, 0xe1, -0xaa, 0x0a, 0xfb, 0x24, 0xa1, 0x59, 0x89, 0xca, 0x5f, 0x54, 0xe9, 0x8a, 0x3a, 0x6b, 0x4b, 0xc0, -0x6d, 0x90, 0x63, 0x8e, 0x9c, 0x11, 0x21, 0x33, 0x9b, 0x53, 0x6e, 0x88, 0x1e, 0x25, 0xb8, 0xaa, -0x59, 0x6a, 0x9b, 0x76, 0xc7, 0x78, 0x26, 0x05, 0x11, 0x42, 0x18, 0xc1, 0x16, 0xcf, 0x53, 0xca, -0x60, 0xb5, 0x0d, 0xc0, 0x66, 0x7f, 0xa4, 0x71, 0x80, 0x57, 0xbe, 0x91, 0xb0, 0xad, 0xe1, 0xea, -0xf8, 0x44, 0xf5, 0x04, 0x42, 0x8b, 0x3d, 0x20, 0xc7, 0xed, 0x4a, 0x85, 0xd4, 0x4a, 0xed, 0x90, -0x1b, 0x1a, 0x07, 0x58, 0x2f, 0xa9, 0x49, 0x31, 0xcb, 0x4b, 0x38, 0xd6, 0xfb, 0xd5, 0x97, 0xa0, -0xf2, 0xbf, 0xfc, 0x3d, 0xe3, 0xda, 0x86, 0x45, 0x86, 0x70, 0x82, 0x6c, 0x62, 0xb3, 0xdc, 0x30, -0xb6, 0x8e, 0x5a, 0x22, 0x3d, 0x43, 0x12, 0x63, 0x1e, 0xc9, 0xb4, 0x91, 0xdb, 0x59, 0x93, 0x69, -0x27, 0xb5, 0xd1, 0x11, 0x2a, 0x83, 0xe1, 0x67, 0xb0, 0x8d, 0xb9, 0xa2, 0x8d, 0x94, 0xab, 0x22, -0xc9, 0x21, 0xbb, 0x2d, 0x61, 0xc2, 0xb2, 0xaa, 0xe3, 0x57, 0xe5, 0xed, 0x8e, 0x67, 0x79, 0x86, -0x9a, 0x62, 0xaf, 0x83, 0x9c, 0x28, 0x61, 0x7a, 0x0c, 0x29, 0x29, 0xaf, 0x51, 0x94, 0x54, 0x8d, -0xeb, 0xab, 0xe8, 0x70, 0xfd, 0x76, 0x41, 0x5f, 0xb1, 0x5e, 0x15, 0x51, 0x03, 0xb2, 0x2a, 0x58, -0xae, 0x2b, 0x0f, 0xfb, 0x6b, 0xad, 0xea, 0xcb, 0x22, 0x9d, 0x45, 0x99, 0x71, 0x77, 0xd6, 0xcb, -0x9d, 0xd2, 0x68, 0x32, 0xb3, 0x13, 0x05, 0xd8, 0x3e, 0x79, 0x19, 0xe6, 0x15, 0xd0, 0xe6, 0xb8, -0x5a, 0x5e, 0xf8, 0x1f, 0xfa, 0x71, 0xe5, 0x98, 0x1f, 0xee, 0xc7, 0x01, 0x65, 0x9e, 0x02, 0xee, -0x41, 0xd2, 0xb5, 0xfd, 0xa8, 0x62, 0xc4, 0xf5, 0xbe, 0xe1, 0x81, 0x20, 0xe4, 0x3c, 0x10, 0x03, -0x8f, 0x6c, 0x15, 0xb3, 0x81, 0xb0, 0x46, 0x67, 0x94, 0xf4, 0x67, 0x27, 0xad, 0x19, 0x9c, 0x38, -0xad, 0x7b, 0x3d, 0xcb, 0x2e, 0xe9, 0xc2, 0x20, 0x91, 0xe3, 0x78, 0x9e, 0x34, 0xde, 0xcc, 0xaf, -0x02, 0xa3, 0x73, 0xb3, 0x42, 0x3a, 0xd8, 0xad, 0x99, 0x13, 0xaa, 0x94, 0x6d, 0x21, 0xd2, 0x9e, -0xad, 0xd9, 0xbd, 0x9d, 0xed, 0x06, 0x67, 0x27, 0xac, 0xd4, 0xec, 0x85, 0xbc, 0x95, 0xb4, 0x74, -0x1b, 0xa2, 0xa1, 0x4c, 0x8e, 0x2e, 0x61, 0x1f, 0x88, 0xf0, 0x13, 0x86, 0x27, 0x93, 0x15, 0x58, -0x3f, 0xe2, 0x9b, 0xda, 0x69, 0x0f, 0xc7, 0x06, 0xe3, 0x2b, 0xcd, 0xd9, 0x54, 0x7b, 0xdc, 0x37, -0x9a, 0x94, 0x86, 0x87, 0x69, 0xfd, 0x91, 0xd5, 0xf4, 0xa6, 0x6e, 0x23, 0xc7, 0x0d, 0x3a, 0x81, -0x7d, 0x20, 0x7c, 0x0e, 0x70, 0x21, 0x3e, 0x26, 0x47, 0xba, 0xcd, 0xc2, 0x6f, 0x97, 0x1c, 0x59, -0x6b, 0x3f, 0x27, 0x20, 0x07, 0x69, 0xfe, 0x43, 0x2c, 0x9f, 0x2c, 0xdf, 0x8a, 0xb4, 0x7e, 0xa5, -0xd4, 0xf5, 0x2d, 0xcc, 0xdd, 0x90, 0x70, 0x52, 0x1e, 0xa4, 0x9f, 0x96, 0x6c, 0xf1, 0x94, 0xbb, -0x91, 0x9e, 0x3b, 0x5a, 0xe1, 0x86, 0x9c, 0xe8, 0xcf, 0x58, 0xeb, 0x95, 0xfa, 0xc2, 0x09, 0x5e, -0xe5, 0xe3, 0xb2, 0x55, 0xb1, 0xd9, 0xeb, 0x92, 0x96, 0x4c, 0x6b, 0xc9, 0xda, 0xcd, 0xca, 0x49, -0x41, 0x77, 0x15, 0x47, 0xa1, 0x57, 0xe8, 0x63, 0x66, 0x1d, 0xdb, 0xa5, 0x6e, 0x70, 0xe5, 0x44, -0x8f, 0x44, 0x7f, 0x2a, 0x1b, 0x06, 0x9e, 0x26, 0xba, 0x05, 0x6b, 0x5a, 0x45, 0xf6, 0xd9, 0x10, -0x5b, 0x8f, 0xe0, 0xc8, 0xed, 0x71, 0x40, 0x72, 0x7a, 0x78, 0x30, 0x71, 0x11, 0xe9, 0x0c, 0x15, -0xb1, 0x03, 0xeb, 0x89, 0x1f, 0x40, 0xe1, 0x8a, 0x23, 0xd1, 0xc1, 0xe8, 0x91, 0xc8, 0x20, 0xae, -0x1b, 0x8c, 0x33, 0xbd, 0x85, 0xd7, 0x8b, 0xa6, 0x61, 0x9b, 0xed, 0x0a, 0x95, 0xc0, 0x72, 0xee, -0x47, 0xb2, 0x41, 0x5e, 0x82, 0xb8, 0xd0, 0x39, 0xa1, 0xa5, 0xd5, 0xde, 0x26, 0xc9, 0xbc, 0x82, -0xcc, 0xcf, 0x1d, 0x17, 0xd6, 0x86, 0x9e, 0x3b, 0x8e, 0x61, 0x85, 0xc2, 0x2d, 0xa7, 0x5c, 0x23, -0xd4, 0xfe, 0xb4, 0x6f, 0x9f, 0x62, 0x86, 0xbd, 0x2c, 0x54, 0x57, 0xa0, 0x69, 0xcb, 0xff, 0xea, -0xf4, 0x28, 0x8f, 0xd9, 0xec, 0xa2, 0xe0, 0xf4, 0x35, 0xd7, 0x5d, 0x45, 0xf5, 0xaa, 0x89, 0x76, -0x89, 0xd9, 0x4a, 0xd1, 0x6a, 0x30, 0x4f, 0x9f, 0x88, 0xe7, 0x70, 0xd9, 0x8e, 0xa2, 0x56, 0x90, -0xa7, 0x4f, 0x24, 0x58, 0x73, 0x78, 0xdc, 0xa2, 0x14, 0x16, 0x21, 0x35, 0xb1, 0xe5, 0xda, 0xf4, -0x09, 0xdc, 0x0f, 0x4b, 0x58, 0x3f, 0x87, 0x5d, 0x31, 0xa7, 0xc2, 0xb0, 0x3e, 0x1d, 0xaa, 0x89, -0x74, 0xbe, 0x88, 0x71, 0x9e, 0x9d, 0x87, 0x79, 0x9f, 0x23, 0x5b, 0x35, 0xd3, 0xe7, 0x58, 0xe3, -0x8d, 0xd5, 0xb9, 0x34, 0xfc, 0xdf, 0xe5, 0x2a, 0x7b, 0xc4, 0xdf, 0x0f, 0xe9, 0x79, 0x36, 0x75, -0x4d, 0x2e, 0x56, 0x27, 0x1b, 0x07, 0xf4, 0x33, 0x65, 0x6a, 0x39, 0xa6, 0x3c, 0x53, 0x14, 0x54, -0xa5, 0x04, 0x98, 0x0f, 0x51, 0x8a, 0x17, 0x4e, 0x38, 0x83, 0x99, 0x14, 0x2e, 0x60, 0x2d, 0x36, -0x36, 0xd2, 0x04, 0x20, 0x57, 0x3d, 0x05, 0xf6, 0x62, 0x15, 0xd7, 0xbd, 0x15, 0xa0, 0x3f, 0x2e, -0x35, 0x3e, 0x63, 0x2b, 0x88, 0x5f, 0x2d, 0x0a, 0xa9, 0x26, 0xdf, 0xac, 0xc6, 0xe0, 0xc2, 0xe0, -0xf4, 0x05, 0x5f, 0xb0, 0x28, 0x3a, 0x7d, 0xba, 0x71, 0x93, 0x6c, 0x1e, 0xdb, 0x34, 0x36, 0x90, -0x99, 0xf5, 0x5c, 0xca, 0x5b, 0xbe, 0x8e, 0xe9, 0x0b, 0x58, 0x4a, 0xcd, 0x2f, 0x8e, 0xff, 0xe2, -0xb8, 0x3d, 0x18, 0xfe, 0xe1, 0x26, 0x48, 0xd5, 0x70, 0xf1, 0x87, 0xea, 0xe4, 0x2d, 0xb5, 0xd4, -0xa5, 0x76, 0x68, 0x6e, 0x9c, 0x67, 0x1d, 0xd3, 0x6f, 0x61, 0x48, 0xbd, 0x02, 0xb3, 0xa6, 0x53, -0xb5, 0xe5, 0x34, 0x18, 0x8e, 0x98, 0x6e, 0xc7, 0xf4, 0xe9, 0x65, 0xdf, 0x72, 0x62, 0x1d, 0x1d, -0x61, 0x25, 0x5f, 0x3e, 0xf1, 0xa3, 0xd1, 0x44, 0x8e, 0xdd, 0xe2, 0x08, 0x35, 0xae, 0xb3, 0xe6, -0x62, 0x8d, 0xaf, 0x85, 0xe7, 0x20, 0x3c, 0x79, 0x7d, 0xfa, 0x74, 0xc7, 0x05, 0x4c, 0x7f, 0x65, -0x21, 0xce, 0xfb, 0xe9, 0x53, 0x98, 0xf2, 0xcc, 0xda, 0x4c, 0xbb, 0x2c, 0xd8, 0xae, 0xf5, 0xa9, -0x76, 0xc9, 0x59, 0x8d, 0x03, 0x58, 0xf3, 0x89, 0x2f, 0xb6, 0xc3, 0xfd, 0xd3, 0x97, 0xf0, 0xed, -0x9c, 0xbe, 0xe2, 0xc0, 0xf8, 0xe1, 0xea, 0x5e, 0x58, 0x7c, 0x09, 0x96, 0x1f, 0xd8, 0x40, 0x1a, -0xee, 0x70, 0x6d, 0x52, 0x6a, 0x1b, 0x63, 0xb7, 0xea, 0xc3, 0x47, 0x9b, 0xb6, 0x39, 0x40, 0xb1, -0x36, 0x0e, 0x5a, 0x0b, 0x30, 0x37, 0xb2, 0x6e, 0x64, 0xb2, 0x2f, 0x91, 0x63, 0xb2, 0xe4, 0xa9, -0xc1, 0xf9, 0x71, 0x62, 0xb8, 0xfa, 0x09, 0xa9, 0x02, 0xaa, 0xaf, 0xb8, 0x0c, 0x8d, 0x1b, 0x0e, -0xbe, 0x3e, 0x3d, 0xd1, 0x71, 0xa8, 0x2c, 0xdb, 0x54, 0x05, 0x32, 0xe6, 0xfb, 0x56, 0x38, 0xec, -0x0e, 0x50, 0x0e, 0x4a, 0x81, 0xd7, 0x48, 0xfa, 0x21, 0x9a, 0xb6, 0x61, 0xca, 0x88, 0x96, 0x2e, -0xfc, 0x84, 0xe4, 0x07, 0xd7, 0x9c, 0xf8, 0x05, 0x9f, 0x64, 0x0a, 0xf2, 0x59, 0x36, 0x14, 0x85, -0xa6, 0xcf, 0x96, 0x17, 0x4f, 0xbf, 0xdb, 0x10, 0xf1, 0x17, 0x4f, 0x5f, 0xf8, 0xd9, 0xd1, 0x47, -0xc2, 0x73, 0x3c, 0x88, 0x13, 0x3c, 0xed, 0xab, 0xc6, 0x59, 0x9c, 0xb7, 0x30, 0x3a, 0x7d, 0x79, -0x7f, 0x55, 0xcb, 0x1c, 0x8c, 0x29, 0x49, 0xeb, 0x09, 0x02, 0x6f, 0x5f, 0x6f, 0x37, 0xb4, 0x49, -0x8d, 0xeb, 0xc6, 0xd7, 0xfd, 0xb2, 0x63, 0xfa, 0x72, 0x99, 0x94, 0xeb, 0x81, 0xf9, 0xd1, 0x75, -0xef, 0x84, 0x1a, 0xaa, 0xdf, 0xa9, 0x2a, 0xf5, 0x80, 0x75, 0x2d, 0x94, 0x65, 0xfb, 0x42, 0x3f, -0xfc, 0x69, 0xbb, 0x54, 0x61, 0xa0, 0x9e, 0x8e, 0x3d, 0x97, 0x00, 0xd3, 0xc6, 0xa2, 0xfe, 0x01, -0x09, 0xbe, 0xa8, 0x9e, 0x66, 0x7b, 0x43, 0x67, 0xd8, 0x97, 0xa5, 0x9e, 0x95, 0x06, 0x28, 0x47, -0x6c, 0xdd, 0x39, 0x0e, 0x31, 0xaa, 0x17, 0x7c, 0xc5, 0xd3, 0xc7, 0x1a, 0x82, 0xe9, 0xf0, 0x09, -0x9c, 0x33, 0x97, 0x9e, 0x3b, 0x4e, 0x34, 0xe1, 0xb7, 0xb3, 0xab, 0x3f, 0x64, 0xcc, 0x0f, 0xe7, -0xec, 0xd4, 0x06, 0xec, 0xd1, 0x49, 0xcc, 0xb7, 0xc4, 0x46, 0x75, 0x1d, 0x10, 0x75, 0x18, 0x0b, -0xad, 0xbd, 0xbe, 0x33, 0x58, 0x56, 0xf5, 0xf6, 0xcf, 0xfe, 0xd7, 0xd1, 0x47, 0x16, 0x07, 0xb0, -0x35, 0xdc, 0xa7, 0x56, 0x6b, 0x0d, 0x42, 0x12, 0xcb, 0xb2, 0x1a, 0xff, 0xac, 0x97, 0x22, 0xfb, -0x97, 0xac, 0xba, 0x4c, 0xbd, 0xd9, 0x03, 0x7e, 0x93, 0x57, 0xf2, 0x16, 0x4f, 0x9f, 0x66, 0x2d, -0xa2, 0x17, 0x1a, 0xb6, 0xe1, 0xdc, 0x7b, 0x7f, 0xf4, 0x18, 0x8d, 0x6c, 0xbb, 0xb1, 0xb1, 0x63, -0xfa, 0x7d, 0x4a, 0xf5, 0xc4, 0x1c, 0xc4, 0x10, 0x11, 0x0b, 0x8a, 0xb6, 0xaa, 0xea, 0xd0, 0xeb, -0xd3, 0x67, 0x05, 0x1c, 0xa7, 0xd8, 0x65, 0x41, 0xaa, 0xe9, 0x58, 0xc7, 0xf4, 0x29, 0x4c, 0x77, -0xe3, 0x29, 0xf3, 0x4b, 0xe8, 0xc2, 0x90, 0x8b, 0x6f, 0x7e, 0x38, 0x7d, 0xe3, 0xdd, 0xa0, 0x5c, -0xa7, 0xd5, 0xb3, 0x9e, 0x46, 0xbe, 0x0c, 0x63, 0xe2, 0xe8, 0xd8, 0x16, 0x56, 0xa9, 0x80, 0x71, -0xde, 0x7f, 0xf3, 0xa7, 0xa5, 0xf0, 0x48, 0xc8, 0x4f, 0xa1, 0x61, 0xb8, 0x3b, 0xbf, 0x78, 0xfa, -0x52, 0x74, 0xfd, 0xe9, 0x2a, 0xfc, 0xbd, 0x42, 0xbf, 0xa7, 0x17, 0x9f, 0x0e, 0x95, 0xb6, 0x43, -0x0e, 0xf6, 0xa3, 0xe4, 0xab, 0x2d, 0x20, 0x2d, 0x0c, 0x1b, 0xb0, 0x37, 0x0b, 0xfc, 0xb3, 0x9f, -0xfa, 0xed, 0x4b, 0x91, 0x7c, 0x0f, 0xdc, 0x1f, 0x5d, 0xef, 0xab, 0x1d, 0xfa, 0xe9, 0xd0, 0x87, -0xd3, 0xc7, 0xde, 0x8d, 0xbe, 0x14, 0xea, 0x36, 0x6e, 0x8f, 0x94, 0x1b, 0x76, 0x05, 0xcf, 0x84, -0xa9, 0xae, 0x54, 0x4b, 0x19, 0x70, 0x7c, 0x06, 0xc6, 0x37, 0x61, 0xcd, 0xae, 0x86, 0x3b, 0xa6, -0xcf, 0xe2, 0x73, 0xea, 0x85, 0x13, 0xb8, 0xae, 0x8f, 0xc9, 0x34, 0xb7, 0x37, 0x21, 0x3e, 0x63, -0xa1, 0xb9, 0xba, 0x70, 0xb1, 0x9a, 0x53, 0x99, 0x5d, 0x21, 0x29, 0xb8, 0x9f, 0xe6, 0x51, 0x3f, -0x0e, 0x36, 0x85, 0xa9, 0xd5, 0x71, 0xe3, 0xe9, 0x8e, 0xe9, 0xab, 0xa5, 0x98, 0xaa, 0xa8, 0x76, -0xfa, 0x74, 0xe8, 0x37, 0xbb, 0x00, 0x57, 0xdb, 0x87, 0xd3, 0x6f, 0xe1, 0xba, 0xbc, 0xb4, 0x16, -0xb0, 0x14, 0xb2, 0xff, 0x63, 0xc2, 0x79, 0x73, 0x44, 0x01, 0x78, 0x5f, 0xce, 0x1a, 0xc3, 0x3e, -0x1b, 0x7e, 0x5d, 0xb5, 0x24, 0xcc, 0xd8, 0xba, 0x53, 0x8d, 0x41, 0xc2, 0xd2, 0x71, 0x3c, 0xb3, -0xc0, 0xa6, 0x2a, 0xb4, 0x9a, 0xd5, 0x66, 0xf6, 0xdd, 0xa7, 0xb6, 0x22, 0x7e, 0xdf, 0xce, 0x6e, -0x83, 0x9a, 0xc4, 0x7c, 0xc8, 0xe6, 0x54, 0x0f, 0xfb, 0xb3, 0xd4, 0xde, 0x22, 0xec, 0x31, 0xb5, -0x9f, 0x7d, 0x16, 0x75, 0xa0, 0xa8, 0x63, 0x7a, 0x52, 0xdd, 0xc0, 0xbe, 0x7c, 0x75, 0x13, 0xeb, -0xd6, 0xda, 0xc2, 0xbe, 0x79, 0xea, 0x10, 0x7e, 0x9b, 0x50, 0x77, 0xe0, 0xcc, 0xd8, 0xa5, 0xcd, -0x8c, 0x7b, 0x71, 0x66, 0x28, 0x9e, 0x8e, 0xe9, 0x23, 0x34, 0x33, 0x70, 0x6f, 0xc4, 0x9a, 0xc7, -0xb1, 0x8e, 0xd3, 0xc7, 0x18, 0x47, 0xb6, 0x60, 0xfc, 0x23, 0x38, 0x0f, 0x20, 0xeb, 0x32, 0xe7, -0x30, 0x5b, 0xbd, 0x8c, 0xfd, 0x70, 0xa9, 0xe9, 0xf5, 0xe9, 0x4b, 0x45, 0x4d, 0xea, 0x55, 0x1c, -0xeb, 0x53, 0x98, 0xd7, 0x75, 0xb6, 0xee, 0x72, 0x59, 0xcb, 0xa5, 0x17, 0x5b, 0x72, 0x61, 0x18, -0xbf, 0x24, 0x2c, 0xa7, 0x97, 0x34, 0xae, 0x3f, 0x50, 0xd3, 0x02, 0x6a, 0x81, 0xbd, 0x78, 0xfa, -0xc8, 0x99, 0x0e, 0x15, 0x30, 0xc5, 0x59, 0x1c, 0xd3, 0xf7, 0x0f, 0xe0, 0x6f, 0x1c, 0xa6, 0x8f, -0xd1, 0x2a, 0xf7, 0x67, 0x57, 0xcc, 0xaa, 0x2c, 0x56, 0x73, 0xe4, 0x3a, 0x9c, 0xf3, 0x13, 0x9e, -0x10, 0xd1, 0xa2, 0x31, 0xec, 0xf1, 0x04, 0x64, 0x6d, 0x4e, 0xe6, 0xcc, 0x84, 0x96, 0x42, 0xfb, -0x54, 0xd6, 0x2a, 0xc4, 0x0d, 0x1a, 0x58, 0x93, 0x98, 0x4d, 0xa7, 0x49, 0x2c, 0x8e, 0xb8, 0x21, -0xf8, 0xb2, 0xb1, 0xbd, 0x79, 0xec, 0x4f, 0xa8, 0x05, 0xdc, 0x4f, 0xe2, 0x6b, 0xb3, 0x2a, 0xe3, -0x1a, 0x8b, 0xf8, 0x0c, 0x6b, 0xef, 0x79, 0xbf, 0x75, 0x2c, 0x34, 0x1e, 0xf4, 0x05, 0x87, 0x2e, -0x81, 0x79, 0x7c, 0xa9, 0xf4, 0x34, 0xad, 0x98, 0xe7, 0x7e, 0x86, 0xbd, 0xed, 0xe0, 0x98, 0x2d, -0xaa, 0x0b, 0x63, 0xd6, 0xf8, 0x0c, 0xba, 0x78, 0x96, 0xf1, 0x98, 0x34, 0xc8, 0xf1, 0x8e, 0x60, -0x3c, 0x0f, 0xc7, 0x6b, 0x53, 0x7d, 0x72, 0xf1, 0xf4, 0x35, 0x69, 0x40, 0x7d, 0xef, 0x93, 0xbf, -0x81, 0xa0, 0x31, 0x88, 0x65, 0xf9, 0xf9, 0x4b, 0xbb, 0x5a, 0x8e, 0x3d, 0x77, 0x4c, 0x0d, 0xb0, -0xaf, 0x53, 0x0d, 0xa2, 0xef, 0x84, 0x1a, 0x21, 0xbc, 0x05, 0x29, 0x0d, 0x80, 0x24, 0xb6, 0xef, -0x5c, 0xc2, 0x68, 0x0b, 0xc0, 0x37, 0x31, 0x4d, 0xb4, 0xa8, 0x4e, 0xad, 0xe3, 0x98, 0x6b, 0xd4, -0x06, 0xdc, 0x63, 0x0c, 0x36, 0x93, 0xba, 0x1c, 0xc7, 0xe7, 0x43, 0xd5, 0xa6, 0xad, 0x85, 0xef, -0x39, 0x31, 0x6f, 0xdc, 0x9d, 0x40, 0x5a, 0xc9, 0x29, 0xc9, 0x02, 0x5f, 0xc7, 0xf4, 0x39, 0xed, -0xeb, 0xe4, 0x82, 0x18, 0xf4, 0x3a, 0x5e, 0x9f, 0xbe, 0x36, 0x1f, 0x61, 0x06, 0x18, 0xf1, 0x7d, -0x0c, 0xcc, 0x0f, 0x22, 0xb4, 0xc7, 0xd2, 0x30, 0x86, 0xdb, 0x05, 0x2b, 0xb1, 0xbf, 0xca, 0xb9, -0xbf, 0x76, 0xa7, 0xfb, 0x4b, 0xc2, 0x99, 0xb4, 0xdb, 0x56, 0x04, 0x65, 0x74, 0xbe, 0x67, 0x87, -0xa6, 0x75, 0x38, 0x16, 0x2f, 0x73, 0xb8, 0xa4, 0xbe, 0x92, 0x5b, 0x04, 0x0f, 0x45, 0xd7, 0x45, -0xdf, 0xe4, 0xd0, 0x3d, 0x1a, 0xcc, 0xd9, 0xe7, 0x5b, 0x03, 0xe6, 0xe7, 0x46, 0x31, 0x4d, 0x79, -0x74, 0x60, 0x68, 0xf4, 0x11, 0x5a, 0x0d, 0xc3, 0x1a, 0xf4, 0xd9, 0x2f, 0x70, 0xcc, 0xa2, 0xc5, -0xea, 0x41, 0x0e, 0xf9, 0xbc, 0x7a, 0x78, 0xad, 0xa1, 0xa8, 0x4a, 0x1d, 0x65, 0xdf, 0x17, 0xd4, -0xa3, 0x99, 0x75, 0xed, 0x12, 0xba, 0x4d, 0xc1, 0x30, 0x60, 0x5f, 0x03, 0xa5, 0x8e, 0x20, 0xd9, -0xeb, 0xf0, 0x54, 0x23, 0x8c, 0x7d, 0x83, 0x2c, 0x31, 0x22, 0xb4, 0x44, 0x4a, 0x94, 0xa9, 0x4b, -0xd2, 0x09, 0x5d, 0xda, 0x03, 0xf4, 0x6d, 0x92, 0x6c, 0xd0, 0x95, 0xd2, 0x69, 0xf1, 0xa6, 0x0a, -0x20, 0x1d, 0x2a, 0xa5, 0xf7, 0x12, 0xd6, 0xf4, 0x1f, 0x45, 0xfd, 0x45, 0x6d, 0xfd, 0x58, 0xbb, -0x7c, 0xaa, 0xdb, 0x7a, 0xac, 0xa7, 0xa5, 0xb0, 0x08, 0x1e, 0x8e, 0x6e, 0xa4, 0x1c, 0xa2, 0xa3, -0xd1, 0x37, 0x77, 0xfc, 0xd4, 0x61, 0x19, 0x3a, 0xe6, 0xe4, 0x72, 0xa6, 0xdf, 0xa2, 0xf4, 0xa4, -0x91, 0x9d, 0x7f, 0x5d, 0xf0, 0x1f, 0x75, 0x50, 0x72, 0x77, 0x0a, 0x4a, 0x3a, 0x21, 0x21, 0xd3, -0x77, 0x7b, 0x50, 0xe0, 0x50, 0x8e, 0x88, 0xf6, 0x65, 0x27, 0xe2, 0x31, 0xc2, 0xf5, 0x94, 0x3d, -0x42, 0xfa, 0x7e, 0x74, 0x35, 0x36, 0xea, 0x6b, 0x1c, 0xae, 0x42, 0xbc, 0x58, 0xfd, 0x32, 0x78, -0x78, 0x4f, 0xa9, 0x2c, 0x9e, 0xbe, 0x1c, 0xfd, 0xdb, 0xa2, 0xba, 0xe9, 0xb7, 0x5c, 0x1d, 0xaa, -0xa4, 0xd0, 0x88, 0x58, 0x90, 0x72, 0x22, 0x3b, 0x21, 0x03, 0x09, 0x93, 0x03, 0x76, 0x6c, 0x51, -0xd0, 0x4f, 0x5a, 0x68, 0x68, 0xff, 0xa2, 0x7c, 0x30, 0x6f, 0x3f, 0xe6, 0x3c, 0xa7, 0x21, 0x64, -0xa3, 0xf6, 0x0d, 0x9c, 0x0a, 0x9e, 0xaa, 0x92, 0x67, 0x45, 0xdf, 0xe4, 0xbe, 0xb2, 0x71, 0x8c, -0x3a, 0xdc, 0xd5, 0xc8, 0x77, 0xf4, 0x9f, 0x8e, 0x58, 0xf3, 0x78, 0xef, 0xdc, 0xf2, 0x76, 0xc7, -0xf4, 0x8d, 0x58, 0x5e, 0xfc, 0x65, 0x17, 0xce, 0x05, 0x5c, 0xab, 0xc7, 0xec, 0x4b, 0x5e, 0x38, -0x91, 0x54, 0x35, 0x7c, 0xa5, 0x01, 0xd7, 0x58, 0xaa, 0x1d, 0x51, 0x9c, 0x41, 0x67, 0xd2, 0x2b, -0xab, 0x5e, 0x69, 0xcc, 0xd0, 0x58, 0x53, 0xf5, 0x5e, 0x84, 0x71, 0x08, 0xe1, 0x8f, 0x31, 0x5f, -0xd8, 0xd5, 0x86, 0x6d, 0x9a, 0xff, 0x2d, 0xf6, 0x1f, 0x6f, 0xd8, 0x36, 0x33, 0xed, 0xed, 0xe6, -0x24, 0xc2, 0xcc, 0x13, 0xb8, 0x3a, 0x4e, 0x90, 0x5e, 0x9b, 0xe9, 0x5d, 0x44, 0xe7, 0xe1, 0x6c, -0x30, 0xd9, 0xab, 0x3c, 0x0f, 0xc0, 0x4a, 0xb9, 0x1d, 0x36, 0x2d, 0x6c, 0x85, 0xbc, 0xe9, 0x63, -0x04, 0xdf, 0x77, 0x22, 0xb5, 0xbf, 0xb0, 0x0a, 0xe1, 0x05, 0xfc, 0xee, 0x23, 0x05, 0x7e, 0x77, -0x99, 0xed, 0xd3, 0x54, 0x78, 0x73, 0xca, 0xab, 0xbc, 0xd6, 0xf2, 0x30, 0x6b, 0xbe, 0xbc, 0xcb, -0x6b, 0xf1, 0xce, 0x26, 0x9a, 0x8d, 0xcf, 0xba, 0x48, 0x22, 0xc5, 0x81, 0x38, 0xaa, 0x55, 0xb3, -0xb3, 0x7b, 0x5a, 0x3b, 0xfb, 0xcf, 0x50, 0x10, 0x71, 0x07, 0x61, 0xe5, 0x1b, 0x11, 0xbf, 0xce, -0x4b, 0xe3, 0xb5, 0xa4, 0x1f, 0x8d, 0x4e, 0x6e, 0x0a, 0x84, 0x15, 0x01, 0x5d, 0x5b, 0xc3, 0x30, -0xc7, 0xdb, 0x6f, 0x26, 0x39, 0x2c, 0x99, 0xec, 0x25, 0x13, 0xe5, 0x3f, 0x60, 0xd0, 0x9d, 0x1f, -0x63, 0x3a, 0xb2, 0x67, 0x8e, 0xd8, 0x69, 0x4e, 0x15, 0x69, 0x27, 0x4a, 0x9d, 0xaf, 0x6f, 0x97, -0xc3, 0x69, 0xf7, 0x80, 0xce, 0xbd, 0x25, 0xe3, 0x9e, 0x52, 0x08, 0x0b, 0x25, 0xdd, 0x97, 0x82, -0x22, 0xa6, 0x96, 0x39, 0x80, 0x68, 0x9e, 0xda, 0x8f, 0x8c, 0xbd, 0xb8, 0x26, 0xd2, 0x94, 0x98, -0x75, 0x90, 0x4a, 0x8d, 0x83, 0xc1, 0x2f, 0xaf, 0xc9, 0x76, 0x31, 0x4e, 0xea, 0xf9, 0xf1, 0xf1, -0x84, 0x2b, 0xd6, 0x0a, 0xb9, 0x71, 0x3b, 0xd2, 0x80, 0x39, 0x89, 0x42, 0xa6, 0xa6, 0xef, 0xca, -0x50, 0xd3, 0xaa, 0x31, 0x43, 0x4d, 0x87, 0xdb, 0x20, 0x17, 0xa9, 0xa1, 0xbc, 0x44, 0xbf, 0xd8, -0x69, 0x09, 0x0f, 0x1a, 0x1b, 0xb8, 0x19, 0xdb, 0x44, 0x1a, 0xa7, 0x20, 0xf1, 0xa8, 0x67, 0x0d, -0x34, 0x1c, 0x26, 0xf8, 0x3e, 0x87, 0xe7, 0xfd, 0x7d, 0x49, 0x47, 0xe6, 0xc4, 0xd8, 0x13, 0x5c, -0x10, 0x84, 0x86, 0x04, 0xe9, 0x36, 0xcd, 0x63, 0x9b, 0xac, 0x5a, 0x4e, 0x4e, 0x68, 0x5c, 0x8f, -0x94, 0x87, 0x9b, 0xee, 0xe2, 0x27, 0x0f, 0x76, 0xab, 0x23, 0x03, 0xf1, 0x7c, 0xec, 0xdf, 0x8c, -0x35, 0x96, 0xfa, 0xf0, 0x5e, 0x28, 0xe8, 0x21, 0x6d, 0xa7, 0xe1, 0xf9, 0xd8, 0x83, 0x52, 0x2b, -0x38, 0xf8, 0xb7, 0x1d, 0x7c, 0xfc, 0x9b, 0x84, 0x40, 0xb4, 0x57, 0x4a, 0xe2, 0xd3, 0x8e, 0x4f, -0x2b, 0x9d, 0xb7, 0x7d, 0xbb, 0x48, 0x9c, 0xb7, 0x85, 0x3e, 0xc8, 0x9e, 0x93, 0x99, 0x7d, 0xd3, -0x57, 0xf8, 0x8c, 0x2c, 0x9c, 0x70, 0x2d, 0x88, 0x65, 0xbb, 0x16, 0xb4, 0x41, 0xa1, 0xf1, 0x55, -0x7c, 0xcb, 0xc6, 0xbd, 0xf8, 0x76, 0x19, 0xcf, 0xe2, 0xdb, 0x63, 0x3c, 0x87, 0x6f, 0x7f, 0x76, -0x2e, 0xbe, 0xcb, 0xb3, 0xf3, 0x75, 0xfd, 0x78, 0x0c, 0xe7, 0x9b, 0x55, 0x1d, 0x4b, 0x9f, 0x2b, -0x54, 0xba, 0xa3, 0xae, 0x5a, 0x67, 0xbd, 0x27, 0x45, 0xab, 0xad, 0xe0, 0xd1, 0x6f, 0x88, 0xad, -0x91, 0x2a, 0xd8, 0x1a, 0xeb, 0x8b, 0x34, 0xaa, 0xd8, 0xbb, 0x9e, 0x78, 0x20, 0xf4, 0x21, 0x78, -0xec, 0x8f, 0x38, 0xda, 0x29, 0x9f, 0xc9, 0xc6, 0xd4, 0x49, 0x96, 0x27, 0x88, 0xfd, 0xed, 0xf2, -0xe6, 0x45, 0x3b, 0xe0, 0x20, 0xd5, 0xf6, 0xc1, 0x0b, 0x45, 0xcb, 0x91, 0x1a, 0xab, 0x17, 0xe7, -0x36, 0x42, 0x6b, 0xae, 0xb0, 0x10, 0xda, 0xaf, 0x9d, 0x41, 0x88, 0x73, 0x42, 0xb2, 0x37, 0xe1, -0xa4, 0x99, 0xc3, 0x54, 0x39, 0x53, 0xe3, 0xba, 0xb3, 0x34, 0xd8, 0xc1, 0x5a, 0x79, 0xbf, 0x98, -0x98, 0x8b, 0xb0, 0xca, 0xf6, 0xc3, 0x8b, 0x20, 0x77, 0x91, 0x36, 0x3f, 0x99, 0xb5, 0x70, 0xe7, -0x0d, 0xef, 0x05, 0xb9, 0xdd, 0x88, 0x63, 0x45, 0x10, 0xa8, 0xc4, 0xd7, 0x0a, 0x56, 0x8a, 0xd1, -0xce, 0x31, 0x74, 0xe9, 0x72, 0x31, 0xd4, 0xc1, 0xe9, 0x1c, 0x9c, 0x2e, 0x1f, 0xd3, 0x39, 0x38, -0x9d, 0x43, 0x4b, 0x97, 0x43, 0x31, 0x38, 0x9d, 0x43, 0xab, 0x87, 0x1b, 0x5d, 0x6e, 0x90, 0xf1, -0x21, 0x4d, 0x68, 0x05, 0xa2, 0x5e, 0x0e, 0xb6, 0x63, 0x95, 0x3e, 0x87, 0x3c, 0x43, 0xf6, 0xa1, -0xb8, 0xb7, 0xfc, 0x38, 0xe3, 0x2e, 0x31, 0x1e, 0x72, 0xd9, 0x17, 0xc2, 0xf7, 0x55, 0x5f, 0x18, -0xdf, 0xd7, 0x7d, 0x55, 0xe9, 0x73, 0x1d, 0x17, 0xce, 0xc4, 0x33, 0x64, 0xe5, 0x28, 0x33, 0x13, -0xeb, 0x3e, 0x0c, 0x5a, 0x85, 0x8e, 0x33, 0xd2, 0x9b, 0xeb, 0xec, 0x02, 0x97, 0x8b, 0x34, 0x96, -0x7b, 0x60, 0xb9, 0x63, 0x0d, 0xae, 0xc7, 0x22, 0x28, 0x70, 0x15, 0x41, 0xa1, 0xdb, 0x0d, 0x25, -0x9a, 0x6d, 0x39, 0xcb, 0x8c, 0xbe, 0x09, 0x38, 0xb3, 0xe9, 0x3c, 0x06, 0xce, 0x21, 0x9c, 0x65, -0x3a, 0x10, 0xd7, 0x5f, 0xbf, 0xbd, 0xc6, 0x21, 0xac, 0xc5, 0xdb, 0x71, 0x76, 0x16, 0x68, 0x5f, -0xd6, 0x7a, 0xeb, 0xc0, 0xe3, 0xad, 0x26, 0x2b, 0xea, 0x2b, 0xfb, 0xeb, 0x7f, 0x0f, 0xbf, 0xba, -0x2f, 0x57, 0xe8, 0x94, 0xc5, 0x36, 0x9c, 0xa3, 0xb3, 0x54, 0xb3, 0x0b, 0x24, 0x98, 0x13, 0x77, -0x52, 0xcd, 0x8b, 0x6a, 0xd5, 0xeb, 0x88, 0x43, 0x4d, 0xf2, 0xf9, 0xe8, 0x39, 0xac, 0x71, 0xb3, -0x38, 0x1f, 0x45, 0x3c, 0xf7, 0xba, 0x38, 0x1f, 0x4d, 0x82, 0x03, 0xdb, 0xe2, 0x21, 0x5b, 0x8f, -0x7f, 0x4c, 0x37, 0x5c, 0xcf, 0xff, 0x1c, 0x47, 0x78, 0x3a, 0x63, 0xff, 0x56, 0xd0, 0x89, 0x8e, -0x1c, 0x13, 0xae, 0x54, 0x83, 0xa2, 0x5b, 0xe3, 0x27, 0x71, 0xe6, 0x17, 0xea, 0xfc, 0xc7, 0x32, -0x76, 0xda, 0x84, 0xed, 0x64, 0xdc, 0x6b, 0x62, 0x94, 0xdb, 0xe4, 0x58, 0xca, 0xb6, 0x51, 0xe6, -0xf6, 0x72, 0x7a, 0xe5, 0x2d, 0xf7, 0x99, 0x4f, 0xa5, 0xec, 0x1a, 0xe1, 0x3c, 0x2a, 0xa0, 0xf3, -0x66, 0x27, 0xc2, 0x4a, 0xfb, 0x1a, 0xa9, 0x8c, 0xe7, 0x6e, 0x4d, 0x6c, 0x35, 0xe4, 0xc7, 0x01, -0xc6, 0x62, 0xaf, 0x01, 0xf3, 0x68, 0xea, 0x20, 0x1c, 0xc6, 0x41, 0x08, 0x67, 0xb9, 0x19, 0xc2, -0x51, 0xda, 0xe4, 0x5c, 0x9d, 0x75, 0x94, 0xd7, 0xa4, 0x32, 0xe6, 0xa5, 0x90, 0xb4, 0x79, 0x89, -0x98, 0x29, 0xdf, 0x09, 0xae, 0x0a, 0x5d, 0x04, 0x3e, 0xbf, 0x53, 0x56, 0xfe, 0xe4, 0xcd, 0xf8, -0x0a, 0xf9, 0xf9, 0x9f, 0x5c, 0x84, 0xf2, 0xf8, 0x1c, 0xfb, 0xe7, 0x12, 0xa6, 0xf9, 0x21, 0x28, -0x57, 0x6c, 0xb1, 0xbd, 0x10, 0x40, 0x77, 0x14, 0xdd, 0x46, 0x6c, 0x75, 0x39, 0x7e, 0x3f, 0x10, -0xf7, 0xd3, 0x4d, 0x0c, 0x8e, 0x92, 0xb0, 0x7c, 0xe2, 0x34, 0xbb, 0x21, 0x4b, 0x3a, 0x9d, 0x98, -0x1b, 0xdb, 0x23, 0x95, 0x25, 0x0a, 0x78, 0x77, 0xcc, 0xeb, 0xc9, 0x3a, 0x32, 0x98, 0xb0, 0x62, -0xba, 0x03, 0x8a, 0x89, 0x4e, 0x96, 0xe2, 0x2f, 0x7b, 0x63, 0x38, 0xfb, 0x82, 0x74, 0x62, 0x58, -0x67, 0x54, 0x60, 0xfa, 0x23, 0x61, 0xa1, 0x09, 0x47, 0x6e, 0x38, 0xfa, 0xcf, 0xe5, 0x15, 0xce, -0xa8, 0xab, 0xde, 0x51, 0x02, 0x2b, 0x9d, 0xa9, 0xb3, 0x01, 0x90, 0xf6, 0xff, 0xf0, 0x23, 0xe8, -0x4f, 0xe4, 0xf2, 0xac, 0x93, 0xc4, 0x4e, 0x60, 0x79, 0x45, 0xd3, 0x24, 0x8d, 0xfd, 0x20, 0x0d, -0xb9, 0xac, 0xa6, 0x0d, 0x38, 0x32, 0x5b, 0x91, 0x62, 0xcb, 0x58, 0x2f, 0x26, 0x4b, 0x1f, 0xd7, -0x8a, 0x96, 0xa8, 0x57, 0x70, 0xae, 0xf1, 0xb9, 0xf8, 0xf4, 0x1e, 0x31, 0xee, 0xfc, 0xe5, 0xb2, -0x48, 0x8f, 0xf5, 0xb4, 0xe9, 0x52, 0x1d, 0x53, 0x40, 0x0a, 0x13, 0xde, 0x62, 0x9f, 0x54, 0xaf, -0x15, 0xad, 0x91, 0x9a, 0xd5, 0x49, 0x5b, 0x91, 0xe1, 0xff, 0x2b, 0x21, 0x10, 0xfb, 0x62, 0x50, -0xbd, 0xe1, 0x58, 0x23, 0xb5, 0xf2, 0xe9, 0x53, 0x5e, 0xfa, 0x24, 0xf8, 0x43, 0xf5, 0x5a, 0xea, -0x24, 0x38, 0x75, 0xf2, 0xf6, 0xc9, 0x21, 0x1c, 0x8d, 0x0a, 0x4d, 0x17, 0x60, 0x01, 0x86, 0xba, -0x20, 0xb7, 0xfa, 0xc6, 0x74, 0x41, 0xfd, 0x76, 0x74, 0x17, 0x49, 0x15, 0x7c, 0x36, 0x66, 0xa3, -0x5a, 0x4c, 0xf7, 0x85, 0x3e, 0x00, 0x0f, 0xcd, 0xe8, 0xa9, 0x0b, 0xfa, 0x5a, 0xe0, 0x0e, 0xdf, -0xa0, 0x3f, 0x85, 0xc2, 0x58, 0xe7, 0xe8, 0xee, 0x42, 0x7d, 0x0c, 0x73, 0xee, 0x15, 0x3a, 0x1f, -0x29, 0xd5, 0x64, 0x73, 0xf8, 0x35, 0x68, 0x8a, 0xae, 0x81, 0xe5, 0x04, 0x9f, 0x8c, 0xe5, 0x94, -0xbf, 0xe1, 0xa9, 0xea, 0x1b, 0x53, 0xfb, 0x44, 0x59, 0x86, 0xc1, 0xfa, 0xed, 0xf6, 0x35, 0x86, -0xa4, 0x38, 0x2d, 0x41, 0xc8, 0xe0, 0xe3, 0xb2, 0x46, 0xb9, 0x1e, 0xda, 0x09, 0x35, 0xbb, 0x93, -0x5c, 0x27, 0xb9, 0x64, 0x0b, 0xba, 0xdb, 0xb5, 0x7a, 0xb6, 0x52, 0x5a, 0xa9, 0x99, 0xea, 0xca, -0xb3, 0x2a, 0x47, 0x2e, 0x92, 0x94, 0x4c, 0x9d, 0xaa, 0x2f, 0xe1, 0x2e, 0x16, 0xd3, 0x9f, 0x27, -0x72, 0x8b, 0x56, 0x39, 0xc1, 0x55, 0x24, 0xf5, 0x1c, 0xdc, 0x97, 0xed, 0x22, 0xab, 0xd9, 0xb1, -0x0d, 0xf8, 0xfe, 0xbe, 0x1c, 0x41, 0x0c, 0x29, 0x77, 0x59, 0xf0, 0x4b, 0x41, 0xdc, 0xd1, 0x00, -0x5e, 0xe2, 0x3d, 0x0d, 0x60, 0x27, 0xfe, 0x92, 0xed, 0xe7, 0xad, 0x33, 0x76, 0x6f, 0xc4, 0xad, -0x74, 0xf3, 0x3a, 0x72, 0xbb, 0x7d, 0xbb, 0x28, 0x4c, 0xd8, 0x25, 0xed, 0xdb, 0xea, 0x31, 0xa4, -0x42, 0x4e, 0x14, 0xf1, 0xbe, 0xad, 0xbe, 0x85, 0x6e, 0xa2, 0x4a, 0xde, 0x2e, 0x8a, 0xa8, 0xef, -0x30, 0x86, 0x96, 0x83, 0xe3, 0x33, 0xf2, 0x87, 0xed, 0xda, 0xd8, 0x76, 0x92, 0x93, 0x6c, 0xd2, -0xb5, 0x0d, 0x31, 0x29, 0xd2, 0x0e, 0x2a, 0x0d, 0x66, 0x5a, 0xdf, 0xb0, 0xed, 0x27, 0x97, 0x70, -0x4e, 0x16, 0x10, 0x1c, 0x93, 0x84, 0xf5, 0x69, 0x6d, 0x4e, 0xe2, 0xea, 0x10, 0x56, 0x84, 0x3e, -0x5c, 0x59, 0xa8, 0xee, 0x10, 0xf0, 0x04, 0xf1, 0xa3, 0x8c, 0xf5, 0xb1, 0x57, 0x35, 0xed, 0x9f, -0x02, 0x23, 0x40, 0x7c, 0x40, 0xcc, 0x72, 0x43, 0x80, 0xe7, 0xb7, 0x9c, 0x9a, 0xdf, 0xae, 0x36, -0x3e, 0xf3, 0xb7, 0xc6, 0xf6, 0xe1, 0x1c, 0xcd, 0x31, 0x93, 0xe6, 0xc1, 0x67, 0xe8, 0x3c, 0x2d, -0x12, 0xa6, 0x7d, 0x96, 0xb8, 0x0b, 0x86, 0xc5, 0x79, 0xb1, 0x4d, 0xae, 0x72, 0xba, 0x60, 0x07, -0x9f, 0xe9, 0x1d, 0x8c, 0xad, 0x8f, 0x5f, 0xc6, 0x6f, 0xbb, 0x38, 0x4f, 0xd7, 0x8f, 0x27, 0x60, -0x4b, 0xdc, 0x3c, 0xaf, 0x0d, 0x76, 0x00, 0xe2, 0x98, 0xc4, 0xfd, 0xc0, 0x6e, 0xb2, 0xab, 0xbd, -0x43, 0xd3, 0x1c, 0x8a, 0x61, 0x30, 0xe4, 0x74, 0xc3, 0x8a, 0xe7, 0x7f, 0x9e, 0xee, 0x8f, 0x77, -0x52, 0xbb, 0xe3, 0xf0, 0x1e, 0x83, 0x9c, 0xc8, 0x09, 0x7d, 0x60, 0xc8, 0x8c, 0xd0, 0x49, 0x86, -0xa4, 0x77, 0x09, 0x2c, 0xc4, 0x30, 0x47, 0xac, 0xa8, 0xdb, 0xa5, 0xa5, 0xba, 0xdf, 0x26, 0xfd, -0x31, 0xdc, 0xdd, 0x2d, 0xd8, 0x1f, 0x6c, 0xb1, 0x6c, 0x6a, 0x12, 0xeb, 0x9b, 0xab, 0x94, 0x84, -0xff, 0x12, 0xf1, 0xad, 0xd5, 0x50, 0x80, 0xcf, 0x1c, 0xcc, 0x63, 0x63, 0xe6, 0x9c, 0x7d, 0x7a, -0x8b, 0x5d, 0x3b, 0x13, 0x8b, 0x0d, 0xc4, 0xcf, 0xc8, 0x55, 0x3c, 0x42, 0x88, 0x07, 0x19, 0x85, -0xe5, 0x6e, 0xad, 0xcf, 0x33, 0x3b, 0xbf, 0x06, 0x3b, 0xf3, 0x70, 0xef, 0x29, 0x70, 0x14, 0xc1, -0x72, 0x4d, 0x3b, 0xec, 0xf8, 0x27, 0x9d, 0xa4, 0xf5, 0x55, 0x2a, 0x64, 0xeb, 0x89, 0x73, 0xe2, -0x1e, 0xc4, 0xbc, 0x2d, 0x9a, 0x84, 0xf4, 0x2a, 0xc4, 0x71, 0xdd, 0x50, 0x21, 0x56, 0x10, 0xe2, -0x35, 0x15, 0xc9, 0x66, 0x3d, 0x87, 0xa2, 0x32, 0x57, 0x17, 0xb7, 0x8c, 0x73, 0x91, 0xd3, 0x7e, -0x27, 0xe2, 0xf0, 0x6d, 0x06, 0x33, 0x59, 0x66, 0x35, 0x48, 0xdc, 0xa2, 0xa7, 0x04, 0x34, 0x43, -0xdc, 0x74, 0x82, 0xee, 0xd8, 0xc8, 0xd6, 0x82, 0xd3, 0x03, 0x2b, 0x69, 0x0f, 0x24, 0xfb, 0x43, -0x04, 0xcf, 0xb5, 0xbd, 0x4f, 0x83, 0xbf, 0x88, 0x11, 0xbf, 0xe8, 0xc0, 0xfe, 0x72, 0x23, 0x6e, -0x43, 0x6d, 0x39, 0x24, 0xce, 0x95, 0xf7, 0xe1, 0xbe, 0x5e, 0x0c, 0x36, 0x9c, 0xe3, 0x39, 0xb4, -0x62, 0x10, 0xda, 0x06, 0x49, 0x1a, 0x46, 0xbb, 0x0b, 0x24, 0xb9, 0x92, 0x1e, 0x71, 0x27, 0x98, -0xb0, 0x68, 0xd2, 0x01, 0x9d, 0xca, 0xaa, 0xa4, 0x11, 0xe1, 0xaa, 0x93, 0x20, 0x39, 0x62, 0xad, -0x6e, 0xa4, 0x31, 0xc9, 0x7a, 0x00, 0xee, 0xb5, 0x7d, 0xee, 0x77, 0xb6, 0x79, 0xb3, 0xbd, 0x77, -0x7b, 0xef, 0x72, 0x05, 0xe0, 0x57, 0x39, 0x2b, 0x49, 0xdf, 0xae, 0xa7, 0x0d, 0x48, 0x42, 0xc6, -0x76, 0x98, 0x6f, 0x5e, 0x10, 0x8e, 0xfb, 0xb0, 0xc4, 0x92, 0x19, 0xb7, 0x8d, 0x73, 0x70, 0x2d, -0x64, 0xe3, 0x6e, 0x7a, 0x97, 0xa6, 0x9f, 0xd7, 0xa6, 0x98, 0xa5, 0x0e, 0xf5, 0xcf, 0x68, 0xc7, -0x74, 0xd7, 0x4b, 0x1d, 0x7f, 0xa3, 0x42, 0x0e, 0xa6, 0xf3, 0xb8, 0x11, 0xe3, 0x48, 0xad, 0x7e, -0x17, 0xe0, 0xba, 0xf0, 0xc7, 0x8d, 0xe1, 0x7d, 0xe0, 0xff, 0xc9, 0x45, 0x83, 0x0b, 0x5d, 0x7b, -0x0d, 0x2e, 0x9c, 0x13, 0x35, 0xda, 0x7c, 0x5b, 0x03, 0x61, 0x08, 0xa3, 0x3f, 0x9c, 0xf6, 0xd7, -0x00, 0xd9, 0x27, 0xf2, 0xc7, 0x1d, 0xa9, 0xd0, 0x78, 0x5e, 0x2a, 0x3e, 0xce, 0xee, 0x1c, 0x39, -0x88, 0x70, 0xb6, 0x26, 0x7e, 0x9d, 0xf3, 0xaf, 0x44, 0xc8, 0x58, 0x42, 0x94, 0xd7, 0x0f, 0xff, -0x2e, 0x6e, 0xba, 0x7f, 0x19, 0x18, 0x95, 0x7c, 0x8e, 0x67, 0x55, 0x72, 0x7e, 0x32, 0x1a, 0x37, -0xca, 0xcf, 0xe3, 0x1e, 0x13, 0x94, 0x6d, 0xf1, 0x2b, 0x32, 0x5b, 0x64, 0x9d, 0x5e, 0xe9, 0xba, -0x9b, 0x76, 0x06, 0xc4, 0x28, 0x22, 0xda, 0xc9, 0xf2, 0x1a, 0x18, 0x10, 0x56, 0xfb, 0x18, 0x9e, -0x8e, 0x20, 0x5e, 0xe2, 0x60, 0x88, 0x3e, 0x97, 0xf4, 0x46, 0x23, 0x16, 0x2d, 0x27, 0xcc, 0x3c, -0xb6, 0x3b, 0x1b, 0xb6, 0x61, 0xdb, 0x64, 0x47, 0xe3, 0x7e, 0x61, 0x25, 0x8d, 0x60, 0xfb, 0xa1, -0xa9, 0xef, 0x2d, 0xe8, 0x1f, 0x7d, 0xf7, 0xd0, 0x18, 0xd6, 0x61, 0x8d, 0x14, 0xd3, 0x20, 0x3c, -0xe7, 0x34, 0x75, 0xd1, 0xdb, 0x4f, 0xf2, 0x91, 0x50, 0xea, 0x5d, 0x23, 0x35, 0x42, 0xb9, 0xad, -0x58, 0xec, 0x1a, 0xf7, 0x05, 0xa1, 0xcc, 0xd1, 0x21, 0x25, 0x6f, 0xda, 0x35, 0x3e, 0x46, 0xda, -0x54, 0xdb, 0x35, 0x10, 0xc6, 0x36, 0xa6, 0xe1, 0x6b, 0x7d, 0x66, 0xe6, 0x69, 0x30, 0x67, 0x45, -0x26, 0x04, 0xeb, 0xc0, 0x37, 0xa5, 0xf7, 0xe5, 0x6a, 0xad, 0x59, 0x4b, 0x76, 0x23, 0xf9, 0xd6, -0xad, 0x40, 0xe0, 0x16, 0x9a, 0x7e, 0xfa, 0xcb, 0x69, 0x2c, 0x82, 0x76, 0xd2, 0xd4, 0xce, 0x69, -0x66, 0x9c, 0x5e, 0x5b, 0x31, 0x7c, 0x1b, 0x7f, 0x2d, 0x74, 0x43, 0x3d, 0x19, 0x1b, 0x8c, 0x17, -0xe2, 0x1a, 0x19, 0x12, 0x9c, 0xa3, 0xe1, 0xbf, 0x48, 0xc7, 0xb1, 0x91, 0x8d, 0x58, 0xd8, 0x21, -0xbe, 0x51, 0xe8, 0x43, 0x23, 0x22, 0x15, 0xe2, 0xb6, 0xfd, 0x0d, 0xdb, 0xd8, 0xf6, 0xc1, 0x5c, -0x79, 0x09, 0x85, 0xa9, 0x6f, 0x20, 0xf6, 0x66, 0xc1, 0xfe, 0xea, 0xef, 0x31, 0x7c, 0xe7, 0xef, -0x10, 0xd2, 0x20, 0xd6, 0xd1, 0xd8, 0x0a, 0xf9, 0xe1, 0x30, 0xdb, 0x4b, 0x6b, 0x6d, 0x12, 0xb1, -0x1d, 0xb1, 0x70, 0xdc, 0xa3, 0xe5, 0xd5, 0x20, 0xf2, 0xa2, 0x98, 0xcb, 0x30, 0x26, 0xc7, 0x0b, -0x36, 0x6c, 0x53, 0x8c, 0x18, 0x47, 0xe3, 0x62, 0x55, 0x4c, 0xf4, 0x1b, 0x9c, 0x01, 0x5d, 0x7d, -0x52, 0x74, 0x54, 0xc3, 0x17, 0xfe, 0xe4, 0x91, 0x6d, 0x9a, 0x05, 0x48, 0xb3, 0xa3, 0x36, 0x44, -0x3b, 0x6a, 0x27, 0xb4, 0x73, 0x5d, 0x06, 0x13, 0x46, 0xe7, 0x0f, 0xc0, 0xa6, 0x59, 0x0f, 0xf9, -0x81, 0xc0, 0x34, 0x1a, 0xd8, 0xf6, 0x24, 0xc2, 0xdd, 0x31, 0xc2, 0x4d, 0xe9, 0xe0, 0xce, 0x6d, -0x70, 0xe6, 0xd0, 0xb9, 0xfe, 0xb7, 0x3b, 0xd5, 0xeb, 0x0b, 0xfb, 0xc1, 0xac, 0x4e, 0x86, 0x8b, -0xd5, 0x69, 0x7c, 0x54, 0xe2, 0xa6, 0xe3, 0x33, 0x93, 0x31, 0xe2, 0x84, 0x28, 0x2f, 0xac, 0x7f, -0xfe, 0x8b, 0xfd, 0xb8, 0xd7, 0x8c, 0xf1, 0xfb, 0x14, 0xa7, 0xf9, 0xa6, 0x7a, 0x36, 0x1d, 0xeb, -0x82, 0xf6, 0xfd, 0x02, 0xbf, 0xdf, 0xe7, 0xef, 0xfd, 0xea, 0x65, 0xb6, 0x81, 0x1d, 0xeb, 0x85, -0xd0, 0xaf, 0x21, 0x8b, 0xec, 0x46, 0x56, 0x4d, 0x80, 0x21, 0x66, 0x8b, 0x5f, 0x6b, 0xdc, 0x80, -0x2e, 0x29, 0xe6, 0x02, 0x43, 0xfc, 0x82, 0x6c, 0x1c, 0xdb, 0x30, 0x36, 0xc0, 0xcf, 0x4d, 0xe7, -0xee, 0xb8, 0x23, 0x14, 0xc8, 0x41, 0x1c, 0x83, 0x15, 0xb6, 0xc3, 0x60, 0x08, 0x63, 0x6c, 0x3e, -0xf7, 0x90, 0xbe, 0xd4, 0x08, 0xc6, 0x5c, 0x84, 0x62, 0xd1, 0x75, 0x7f, 0x1c, 0xfa, 0x52, 0x08, -0x4c, 0x55, 0x17, 0x21, 0xab, 0xfa, 0x43, 0xf5, 0xfa, 0xbc, 0x18, 0x98, 0xe7, 0xd5, 0xd2, 0xda, -0xb4, 0xc7, 0xaa, 0x7f, 0x8d, 0x25, 0xdd, 0x1b, 0xbf, 0x86, 0xbf, 0xd2, 0xe2, 0x09, 0xc8, 0x8b, -0x3d, 0x00, 0x86, 0x84, 0xd1, 0x7e, 0x17, 0x59, 0x35, 0x9a, 0x17, 0x02, 0x5b, 0xe3, 0x80, 0xbc, -0xe4, 0xe0, 0x40, 0xfc, 0x55, 0x92, 0xe0, 0x21, 0xee, 0x8c, 0x4d, 0x95, 0xf6, 0x58, 0xf2, 0x9e, -0x74, 0xe9, 0x43, 0xb8, 0xfe, 0x2c, 0x98, 0xef, 0x3d, 0xb2, 0xb1, 0x71, 0x20, 0x13, 0xea, 0xab, -0x8e, 0x6d, 0x6c, 0xcf, 0xf5, 0x66, 0x91, 0xed, 0x5c, 0x69, 0x40, 0xf4, 0x4f, 0xf8, 0x2f, 0x94, -0x99, 0x21, 0x17, 0x28, 0x94, 0xac, 0x27, 0x88, 0x99, 0x34, 0x7a, 0x91, 0xad, 0x34, 0x38, 0x12, -0x1e, 0xe2, 0xe5, 0x38, 0xee, 0xf3, 0x66, 0x69, 0x77, 0xb0, 0xd9, 0xf5, 0xcf, 0xf3, 0x69, 0x90, -0x2d, 0x39, 0x3d, 0xbc, 0x21, 0x31, 0x81, 0x79, 0x64, 0x53, 0xfc, 0x9f, 0xef, 0xc6, 0x39, 0x20, -0xf5, 0x82, 0x3d, 0x26, 0xeb, 0xf0, 0x1f, 0x7b, 0x58, 0x77, 0x5a, 0x81, 0x5f, 0x7d, 0x46, 0x84, -0xf8, 0xfd, 0xea, 0x3e, 0x82, 0xf8, 0xfa, 0xbd, 0xc7, 0x49, 0x76, 0x6b, 0xd2, 0x77, 0x01, 0x2e, -0x28, 0xef, 0x07, 0xdb, 0x3f, 0x8d, 0xca, 0xb7, 0xdc, 0x02, 0xc6, 0x41, 0xb5, 0xf4, 0x82, 0xb2, -0x87, 0x69, 0xb6, 0x4a, 0x41, 0x93, 0x23, 0xf6, 0xa8, 0xa3, 0xc9, 0x43, 0x17, 0x55, 0x35, 0x39, -0x35, 0xbc, 0xa9, 0x99, 0xf4, 0x28, 0x07, 0x90, 0xb6, 0x0d, 0x84, 0xc3, 0x4a, 0xb9, 0x0f, 0x29, -0x63, 0x84, 0xc8, 0xd9, 0x09, 0xf3, 0xe7, 0xfb, 0x11, 0xd3, 0x1d, 0x50, 0xe6, 0x02, 0x52, 0x6a, -0x64, 0xcd, 0x4e, 0xd8, 0xcf, 0xa8, 0x7f, 0xa1, 0xf1, 0xb5, 0x6c, 0x8f, 0xf8, 0xc6, 0x7b, 0x77, -0x38, 0x61, 0x73, 0x34, 0x2a, 0xa6, 0x25, 0xbf, 0xa7, 0x7b, 0x78, 0x86, 0x24, 0x87, 0x67, 0x50, -0xac, 0x6c, 0x63, 0xe4, 0x3f, 0x6f, 0x63, 0x7b, 0xa8, 0xfd, 0x24, 0x39, 0x01, 0xc6, 0x61, 0x01, -0x29, 0x5a, 0xd3, 0x90, 0xc2, 0x98, 0x82, 0x14, 0x8e, 0xaf, 0x0b, 0xfb, 0xa9, 0xbc, 0xaf, 0x44, -0x5d, 0xb3, 0x9d, 0x16, 0x5e, 0xdf, 0x2b, 0x63, 0x1b, 0xe2, 0x96, 0xd8, 0xfa, 0x84, 0x49, 0xae, -0x72, 0xb9, 0x20, 0x2a, 0x6e, 0x9a, 0x0d, 0x1e, 0xb6, 0x7b, 0x80, 0xd0, 0xfc, 0xc8, 0x40, 0x5f, -0xf6, 0xa1, 0x75, 0x09, 0x33, 0xd6, 0x9b, 0x6c, 0xc2, 0xe4, 0x2d, 0xb9, 0x68, 0xac, 0x74, 0x5b, -0x4c, 0x4f, 0xf3, 0x7d, 0x70, 0x75, 0xa6, 0xc5, 0x5e, 0x0b, 0x61, 0x3e, 0x74, 0x7f, 0x4b, 0xfb, -0xe5, 0x86, 0x28, 0xdd, 0xe9, 0xc7, 0xf6, 0x1a, 0x63, 0x89, 0x52, 0xa7, 0x85, 0xa8, 0xb2, 0xac, -0x77, 0xec, 0x82, 0xf6, 0xaa, 0x90, 0xdb, 0x8c, 0xb1, 0xf9, 0x0d, 0x59, 0xef, 0xcc, 0x6f, 0x05, -0x63, 0xd6, 0xbb, 0xf3, 0xab, 0x8c, 0x31, 0x0c, 0x59, 0x69, 0xaf, 0xc2, 0x5d, 0xdf, 0xcc, 0x31, -0xde, 0x90, 0x3f, 0x97, 0x96, 0x12, 0x34, 0xb3, 0x84, 0xa0, 0xa2, 0x68, 0x52, 0x40, 0x89, 0x9c, -0x96, 0xe5, 0x2c, 0xd1, 0xf2, 0x7b, 0x0a, 0x6f, 0x89, 0x2e, 0x58, 0x0a, 0x66, 0xa5, 0x46, 0x5e, -0xca, 0xd0, 0xe0, 0x94, 0x93, 0x6e, 0x02, 0x31, 0x2f, 0xee, 0x03, 0xab, 0x3d, 0x98, 0xc9, 0x71, -0x41, 0x15, 0x98, 0x31, 0xae, 0x91, 0x38, 0x12, 0x04, 0x04, 0xc9, 0x99, 0x4b, 0x96, 0x94, 0x38, -0xdd, 0x49, 0x25, 0xf7, 0xd6, 0x6f, 0x82, 0xb2, 0xeb, 0x01, 0x3b, 0xe6, 0x27, 0xf0, 0x47, 0xcc, -0xb9, 0x92, 0xe3, 0x47, 0x75, 0xed, 0x3e, 0x96, 0xba, 0xe1, 0xed, 0x0f, 0x68, 0x67, 0x4a, 0x97, -0x11, 0x2f, 0xab, 0x74, 0xc5, 0xb8, 0x6f, 0x9b, 0xb4, 0x7b, 0xfc, 0xa7, 0x34, 0x1c, 0x6d, 0xad, -0x66, 0xf1, 0xa5, 0x53, 0xeb, 0xe5, 0x78, 0x6c, 0x07, 0xbe, 0x15, 0xa2, 0x43, 0xf0, 0xb7, 0x49, -0xf6, 0x80, 0xb5, 0x71, 0x80, 0x2c, 0x77, 0x75, 0x0b, 0x79, 0x3d, 0xda, 0xe9, 0x8c, 0xdc, 0x82, -0x83, 0x18, 0x4a, 0xfd, 0xef, 0xa3, 0xfb, 0x5a, 0xad, 0x3e, 0xc1, 0xa4, 0x81, 0xbf, 0x1d, 0xc5, -0x58, 0xe6, 0xa4, 0x3a, 0xbc, 0x23, 0x51, 0xc1, 0xb3, 0xc0, 0x8c, 0x14, 0x7a, 0x3b, 0x20, 0x6a, -0xe0, 0x25, 0xea, 0x7d, 0x0d, 0x58, 0xc1, 0xe5, 0x58, 0x2e, 0xb4, 0x70, 0xc3, 0xb8, 0x6e, 0x0f, -0x29, 0x4c, 0x4b, 0xa8, 0x00, 0x9c, 0xd0, 0xee, 0xa3, 0x8f, 0x90, 0x6d, 0x39, 0x0d, 0x87, 0x38, -0x10, 0x7b, 0x1d, 0x56, 0x10, 0xfe, 0x1d, 0x2b, 0x86, 0x65, 0xed, 0x00, 0xaf, 0xca, 0x81, 0x01, -0x23, 0x64, 0x21, 0xc6, 0x21, 0x7a, 0x75, 0x9c, 0x6c, 0xda, 0xc9, 0xc1, 0x32, 0x17, 0x98, 0x10, -0xa7, 0xac, 0xe2, 0xf3, 0x85, 0x7b, 0x12, 0x16, 0xc4, 0x3b, 0xae, 0x0c, 0x77, 0xc0, 0xd5, 0xae, -0x1e, 0x77, 0x3b, 0x9f, 0x94, 0x92, 0xfd, 0x6b, 0x23, 0xf5, 0xdc, 0xe4, 0x26, 0xba, 0x73, 0x4e, -0x34, 0xdd, 0xdf, 0xcf, 0x0a, 0x56, 0xf3, 0xbe, 0x5c, 0x05, 0x05, 0xbe, 0x80, 0x04, 0x22, 0x65, -0x5c, 0x0a, 0x07, 0xbf, 0x1c, 0x84, 0x39, 0xf7, 0x2f, 0x85, 0xc2, 0x54, 0xaa, 0x2f, 0x23, 0x66, -0xc3, 0x67, 0x19, 0x29, 0x9f, 0x15, 0xec, 0xf7, 0xb7, 0x01, 0xb6, 0x0b, 0xdf, 0x75, 0xe0, 0x9a, -0x91, 0xfb, 0x5a, 0xc4, 0x1a, 0xcc, 0xe9, 0xda, 0x8d, 0x90, 0x6f, 0xd9, 0x3e, 0x3a, 0x65, 0xc1, -0xd1, 0xa1, 0x73, 0x0a, 0x1b, 0x5b, 0xdc, 0x92, 0xe4, 0xf0, 0x73, 0xa3, 0xbd, 0xc6, 0x83, 0x9b, -0x5a, 0x7a, 0xe4, 0xf0, 0xf0, 0x60, 0xb3, 0x24, 0x07, 0xb7, 0xaf, 0x1f, 0xda, 0xe4, 0x82, 0xb5, -0xb3, 0xff, 0x79, 0x9f, 0xd3, 0xf8, 0xc1, 0xb3, 0x3b, 0x37, 0xb8, 0xb2, 0xce, 0x0c, 0x38, 0x8d, -0x1f, 0xa2, 0x6b, 0x6c, 0xfd, 0xa9, 0x81, 0x1d, 0x9b, 0x9c, 0x52, 0xef, 0xec, 0x5f, 0xbf, 0x26, -0x67, 0x7d, 0xb0, 0x69, 0x68, 0xbd, 0x13, 0xde, 0x1e, 0x94, 0xb3, 0x3e, 0x44, 0xd7, 0xe9, 0x81, -0xed, 0x83, 0x6d, 0x52, 0x64, 0x9d, 0xdc, 0x29, 0x95, 0x62, 0x8f, 0xe6, 0x39, 0xa1, 0x67, 0xf6, -0xff, 0x79, 0xcd, 0x91, 0xf5, 0xc1, 0xe6, 0x1d, 0xeb, 0x9d, 0xd2, 0xdb, 0x03, 0x8e, 0xac, 0x0f, -0xd1, 0x35, 0x36, 0x38, 0x86, 0x54, 0xca, 0xf0, 0xba, 0xe5, 0x6c, 0x75, 0x9a, 0x6e, 0x69, 0xea, -0xde, 0x0b, 0x16, 0x6a, 0x73, 0x65, 0x98, 0x6d, 0x41, 0xd2, 0x3d, 0xf6, 0x4a, 0x17, 0xd2, 0xab, -0x95, 0x10, 0xfd, 0xdb, 0x8a, 0x90, 0x36, 0x57, 0xea, 0x1d, 0xb5, 0xda, 0xec, 0x89, 0x68, 0x96, -0x82, 0xe9, 0x36, 0x3b, 0xc2, 0x76, 0x2a, 0xe8, 0xc4, 0x5f, 0x82, 0x72, 0xdc, 0xb5, 0x92, 0x38, -0xc6, 0x01, 0xf6, 0x67, 0x41, 0x30, 0xd9, 0xc3, 0x76, 0xc1, 0x23, 0xec, 0x37, 0x42, 0xb4, 0xbb, -0xf7, 0xd4, 0x36, 0x6f, 0x08, 0xea, 0xc2, 0x3f, 0x80, 0x06, 0x79, 0x09, 0x8e, 0x78, 0x39, 0xf5, -0xcc, 0x27, 0x97, 0x92, 0x60, 0x73, 0x83, 0xd1, 0xce, 0x16, 0x8e, 0xa7, 0xf7, 0xb2, 0x2f, 0x5b, -0xf3, 0xbd, 0xc2, 0x3e, 0x93, 0xe6, 0x7b, 0xa9, 0x22, 0xf7, 0x9d, 0xc5, 0x81, 0xbb, 0xcf, 0xb6, -0x81, 0x44, 0x96, 0xd5, 0xd6, 0x82, 0xaf, 0x1a, 0xcb, 0xf3, 0x05, 0x6a, 0xbc, 0xf5, 0xe0, 0x67, -0xcb, 0x5d, 0x61, 0x5f, 0x9e, 0xaf, 0x1d, 0xa4, 0xa6, 0x2d, 0x88, 0x89, 0xe7, 0x8d, 0x55, 0x8f, -0x21, 0xad, 0x13, 0x1d, 0x2d, 0x35, 0x47, 0xdf, 0xe4, 0x31, 0xb0, 0x29, 0xb2, 0x7d, 0x09, 0x59, -0xac, 0x0a, 0x04, 0x97, 0x5c, 0x3b, 0x03, 0xf2, 0xdd, 0x15, 0x51, 0xc4, 0x31, 0xfc, 0x4b, 0xfe, -0x65, 0x02, 0xec, 0x77, 0x73, 0x0c, 0x4b, 0xe3, 0x7a, 0x2c, 0x6f, 0x56, 0x74, 0xc0, 0x17, 0xfc, -0xe1, 0x4f, 0x3b, 0x47, 0xd8, 0x42, 0x5d, 0x9b, 0xe0, 0xd1, 0x40, 0x28, 0xdb, 0xa4, 0xb5, 0x74, -0xb9, 0xb7, 0x0b, 0x92, 0xd0, 0xa4, 0xb5, 0x73, 0x25, 0xfa, 0x7a, 0x40, 0xd1, 0x5a, 0xd9, 0x8c, -0xbe, 0x5e, 0x68, 0xc5, 0x36, 0xb6, 0x73, 0x1b, 0x97, 0x73, 0x1b, 0xaf, 0xc8, 0xcb, 0x34, 0xec, -0x2a, 0x22, 0xec, 0x97, 0xb3, 0xad, 0xab, 0x06, 0xed, 0x9c, 0xcd, 0xde, 0x03, 0x2f, 0x9c, 0xa0, -0x13, 0xf9, 0xd4, 0x79, 0x0b, 0x8e, 0xc5, 0x80, 0xe0, 0xc1, 0x71, 0x87, 0xbd, 0x31, 0x08, 0x94, -0xe0, 0x88, 0x78, 0x3b, 0x61, 0x39, 0x78, 0xc8, 0x0a, 0xbd, 0x2f, 0x88, 0xad, 0x2e, 0x5d, 0x14, -0x82, 0xb2, 0x40, 0x08, 0x5b, 0x5e, 0x2e, 0x56, 0xaf, 0x94, 0xeb, 0xd4, 0x46, 0x48, 0x32, 0x6b, -0x36, 0x3a, 0x84, 0x85, 0x59, 0x8f, 0x6e, 0x8c, 0x5a, 0x71, 0x8c, 0xf6, 0x85, 0x26, 0xd4, 0xab, -0x98, 0x43, 0xbb, 0x56, 0xff, 0x64, 0xf2, 0x8f, 0x6a, 0x80, 0x47, 0xaa, 0x47, 0x6b, 0x43, 0x6f, -0xf2, 0x6b, 0x5a, 0x48, 0x3f, 0xb6, 0x63, 0x40, 0xae, 0x23, 0xeb, 0x87, 0x9e, 0xc5, 0x34, 0x56, -0xbe, 0x22, 0x30, 0x5b, 0x83, 0xaa, 0x1a, 0x0f, 0xd0, 0xda, 0x96, 0x24, 0x08, 0x7a, 0xeb, 0x20, -0xb2, 0x08, 0xfb, 0x14, 0xa2, 0xf8, 0x2e, 0x83, 0x18, 0x8e, 0x03, 0x59, 0x5a, 0x0c, 0xe0, 0x18, -0xaf, 0x11, 0x6b, 0xdb, 0x41, 0xfd, 0x10, 0xcc, 0xac, 0x6e, 0x43, 0x6e, 0x1f, 0xcc, 0x29, 0x82, -0x1c, 0x57, 0x76, 0xcd, 0x86, 0x6e, 0xc8, 0x2d, 0x82, 0x7b, 0x8e, 0xaf, 0x8b, 0x3d, 0x1d, 0x0f, -0xd8, 0xeb, 0x64, 0x23, 0x95, 0x32, 0xbd, 0xd7, 0xb7, 0x06, 0x24, 0xbb, 0x17, 0xca, 0x4f, 0x6d, -0xf2, 0x2d, 0x93, 0xbd, 0x50, 0x3a, 0xb6, 0xc9, 0x8f, 0x90, 0x07, 0x43, 0x4d, 0xf6, 0xba, 0xea, -0x2b, 0x66, 0xd5, 0x61, 0x09, 0x5d, 0x2e, 0x50, 0x9d, 0x66, 0x8e, 0xfd, 0x16, 0xc2, 0x8b, 0x51, -0xfc, 0x66, 0xec, 0xbf, 0xe7, 0xec, 0xa6, 0x89, 0x8d, 0x7f, 0xff, 0x01, 0x98, 0xfc, 0x64, 0xd3, -0xc3, 0xd8, 0xcd, 0xb9, 0x11, 0x17, 0x4a, 0xd2, 0x3c, 0xbc, 0xbe, 0x5d, 0x5a, 0x6b, 0xb6, 0x65, -0x45, 0x07, 0x42, 0x54, 0x97, 0xd1, 0x6e, 0x28, 0x2d, 0x22, 0xcb, 0xaf, 0xfe, 0x22, 0x30, 0x71, -0x2e, 0x7d, 0x18, 0x1e, 0x7d, 0xfe, 0xe7, 0x49, 0x43, 0x38, 0xa4, 0xf8, 0x68, 0xbc, 0xbb, 0x0a, -0x1c, 0xd9, 0x47, 0x07, 0x12, 0xb9, 0xcb, 0x36, 0xfb, 0x0d, 0x3f, 0x3b, 0x76, 0x7a, 0xf0, 0xf4, -0x6b, 0x60, 0x91, 0x07, 0x1b, 0x43, 0x8a, 0xd5, 0x61, 0x3c, 0x3a, 0x40, 0xb4, 0x6b, 0x20, 0x2c, -0x6f, 0x1d, 0x0b, 0x36, 0x7e, 0xab, 0x69, 0xd3, 0x81, 0x6f, 0x75, 0x9e, 0x24, 0x6e, 0x94, 0xa4, -0x61, 0xf8, 0xdb, 0x71, 0x63, 0x61, 0x00, 0x67, 0xd8, 0x32, 0xac, 0xb1, 0x44, 0x65, 0xb1, 0x65, -0xe5, 0x3a, 0x07, 0xb6, 0xe2, 0xf4, 0x56, 0x27, 0xb6, 0xe9, 0xed, 0xcd, 0xe5, 0x45, 0x64, 0x7d, -0xb9, 0xa2, 0x88, 0x6c, 0x2f, 0x53, 0xd9, 0x53, 0xdf, 0x73, 0xae, 0x01, 0x9b, 0xb0, 0xf2, 0x3a, -0x9d, 0x1a, 0xa9, 0x0d, 0xd8, 0x87, 0x2f, 0xc3, 0x26, 0x6d, 0x8c, 0xb6, 0xa0, 0xef, 0x15, 0x18, -0xd2, 0xc6, 0x67, 0x07, 0xfa, 0xf6, 0xc0, 0x2e, 0x1c, 0x9b, 0xdd, 0x3c, 0x36, 0x1b, 0x78, 0x6c, -0xae, 0xc8, 0xe2, 0x84, 0xc9, 0xac, 0x8d, 0x79, 0x6a, 0x96, 0x0d, 0x68, 0x96, 0xfd, 0x72, 0x04, -0x06, 0x29, 0xe7, 0xd2, 0x09, 0x21, 0x9f, 0x9c, 0x7c, 0xdf, 0x05, 0x72, 0x04, 0x71, 0x25, 0x86, -0xdb, 0x53, 0x7b, 0x9c, 0xc4, 0xf3, 0xb2, 0x3e, 0x71, 0x49, 0xe0, 0xe3, 0xd3, 0x5b, 0xe4, 0xac, -0x0c, 0x3f, 0x98, 0x4f, 0xcf, 0xdf, 0xb2, 0xa2, 0x0c, 0xcc, 0x2e, 0xe2, 0x4c, 0x41, 0x2c, 0xbf, -0x55, 0x2a, 0xc4, 0xbd, 0x39, 0x4b, 0xf0, 0xac, 0x48, 0x7b, 0xa7, 0x49, 0x9b, 0x77, 0x41, 0xac, -0x8a, 0xf6, 0x27, 0xa9, 0x50, 0x6a, 0x25, 0xcb, 0x8c, 0x69, 0x9e, 0x96, 0x17, 0xd1, 0x25, 0x67, -0xce, 0x7b, 0xc8, 0xaf, 0xe3, 0x93, 0x59, 0x4b, 0xd6, 0xc3, 0xb9, 0xae, 0x15, 0xb2, 0xb0, 0xfc, -0xe6, 0x20, 0x3a, 0x13, 0x69, 0xcc, 0x02, 0xa4, 0x28, 0x89, 0x8a, 0x72, 0xfc, 0xf8, 0x78, 0xdc, -0xbc, 0xa0, 0x11, 0x1c, 0x8a, 0x4d, 0x0e, 0x72, 0x3e, 0xed, 0xb2, 0xed, 0xc7, 0xa3, 0xf1, 0x2b, -0x8a, 0xe2, 0x2a, 0x82, 0x92, 0x65, 0x6b, 0xc0, 0x23, 0xb5, 0xbd, 0xa7, 0x42, 0xa1, 0xd3, 0x38, -0xf3, 0xe4, 0x15, 0xe9, 0xe0, 0x99, 0x1c, 0x38, 0xaf, 0x86, 0xb7, 0x13, 0x3d, 0x84, 0x3b, 0xac, -0x51, 0xa3, 0x41, 0x52, 0x27, 0xb1, 0x56, 0x61, 0x8f, 0xd0, 0xa6, 0xe1, 0xe9, 0xf9, 0x9d, 0x6c, -0x29, 0xcf, 0x28, 0x6f, 0x57, 0x76, 0xd7, 0xbd, 0xb7, 0xb2, 0x90, 0xcf, 0x3a, 0x2e, 0x78, 0x05, -0x47, 0x9c, 0x5d, 0xd8, 0x98, 0xa1, 0x93, 0xe4, 0xa2, 0x5a, 0xed, 0x44, 0xf6, 0x42, 0xb4, 0x4f, -0xad, 0x14, 0xe7, 0x08, 0x4c, 0x99, 0x74, 0xa8, 0xe7, 0x52, 0x67, 0xf8, 0xbe, 0xd4, 0xd9, 0x6b, -0xa3, 0xe0, 0xd4, 0x83, 0x6b, 0x3a, 0x0e, 0xbc, 0x51, 0x3f, 0x24, 0x02, 0x58, 0x4f, 0xfb, 0x2d, -0x67, 0x9e, 0x19, 0x8e, 0x41, 0xa3, 0xfe, 0x66, 0x6b, 0x26, 0xf7, 0x5e, 0x8f, 0x81, 0xb8, 0x91, -0xa8, 0xff, 0xc4, 0x9e, 0x1f, 0xa8, 0x40, 0x38, 0x5e, 0x4b, 0x5c, 0x63, 0x6e, 0x0d, 0x9a, 0x6b, -0x3b, 0xea, 0x20, 0xe7, 0xdf, 0x77, 0x33, 0x0c, 0xb7, 0xb6, 0xe1, 0xb8, 0x99, 0xe3, 0x6e, 0x5e, -0xd5, 0x46, 0xec, 0x19, 0xb2, 0xf4, 0x5d, 0x05, 0xae, 0x45, 0x61, 0x70, 0xeb, 0xf6, 0x68, 0x39, -0xbd, 0x8a, 0xdd, 0x64, 0x9f, 0x32, 0x74, 0x59, 0x06, 0xbb, 0xd9, 0xd7, 0x18, 0xba, 0xec, 0x03, -0xd9, 0x5c, 0x4e, 0x76, 0xec, 0xda, 0x08, 0x5a, 0x3b, 0xe0, 0xf4, 0x16, 0xa7, 0xe1, 0xed, 0x4d, -0x7c, 0x7f, 0xf8, 0xf6, 0xcd, 0xb0, 0x6f, 0x65, 0x40, 0xec, 0x7e, 0xe2, 0x7e, 0x0c, 0xe9, 0x9d, -0xfa, 0x44, 0xf0, 0x26, 0x5e, 0xc9, 0x47, 0x1d, 0x6d, 0xd2, 0x5a, 0x92, 0xfe, 0x7c, 0x78, 0x48, -0x11, 0x76, 0xe8, 0x0b, 0xc9, 0x32, 0x38, 0xed, 0xf0, 0x8e, 0x2a, 0x67, 0x6e, 0xfc, 0xd2, 0x0b, -0x27, 0xf4, 0x7c, 0x93, 0x6c, 0x89, 0xd6, 0x22, 0x6e, 0xd2, 0x98, 0x8e, 0xaa, 0xc0, 0xf5, 0xc6, -0x33, 0x68, 0xf1, 0x25, 0xd3, 0x05, 0x7d, 0xbe, 0xae, 0x76, 0xd3, 0x19, 0xc5, 0xc5, 0x3c, 0xb1, -0x59, 0x88, 0xe7, 0x86, 0xa1, 0x40, 0x6e, 0xd7, 0xa0, 0x14, 0xad, 0xa4, 0xbc, 0x0c, 0x1f, 0x6c, -0xdc, 0xec, 0x5a, 0x1e, 0xdb, 0x11, 0x3f, 0xfd, 0xdd, 0x93, 0xfa, 0x92, 0x98, 0x2b, 0x8f, 0xa9, -0x2f, 0x31, 0x9e, 0x4e, 0x71, 0x32, 0xde, 0x2c, 0x4e, 0xd3, 0xb1, 0x0d, 0xba, 0xd3, 0x74, 0x59, -0x70, 0x68, 0x93, 0xf4, 0x8b, 0x2b, 0x5e, 0x8a, 0x6f, 0x4f, 0xdc, 0xe3, 0xeb, 0x07, 0xd7, 0x2f, -0x2e, 0x42, 0xc1, 0xb2, 0x21, 0x9c, 0xfb, 0xe5, 0xe9, 0xb8, 0x61, 0x5c, 0x85, 0x81, 0x0c, 0x85, -0xe0, 0x47, 0xda, 0x88, 0xdb, 0x14, 0x9e, 0xd9, 0x46, 0x9f, 0x45, 0x8c, 0x31, 0x5b, 0xf3, 0x8e, -0x22, 0x85, 0xd8, 0x24, 0x78, 0x98, 0x49, 0xea, 0x88, 0xb0, 0x4b, 0xb1, 0xfe, 0x19, 0xdb, 0xd8, -0x8b, 0x2d, 0xfa, 0x7a, 0x9a, 0x72, 0x46, 0x9a, 0x80, 0xf0, 0x3f, 0xfe, 0xfe, 0xa8, 0x75, 0x8f, -0xc0, 0x77, 0xe2, 0x64, 0x4f, 0xa9, 0x50, 0xb7, 0x1e, 0x47, 0xb0, 0x4e, 0x7e, 0x71, 0x3b, 0x80, -0x5f, 0xf2, 0x66, 0x7c, 0x59, 0x23, 0x8d, 0xe2, 0xec, 0xf4, 0x27, 0x33, 0xf7, 0x64, 0x65, 0x1c, -0xa6, 0xab, 0xf7, 0x54, 0x59, 0x8a, 0x96, 0x45, 0xda, 0x3d, 0x3d, 0x4f, 0x35, 0xbb, 0xde, 0x44, -0xd9, 0x82, 0xa3, 0x41, 0x71, 0x39, 0x73, 0x91, 0xa2, 0xcd, 0xc5, 0xbc, 0xcc, 0x32, 0xee, 0xfa, -0x3a, 0xaa, 0x68, 0x06, 0xa7, 0xa2, 0xa3, 0x8a, 0xf7, 0xdc, 0x53, 0xe1, 0xe7, 0x05, 0xb7, 0xa2, -0xd8, 0x27, 0x1d, 0xb5, 0x84, 0x9b, 0xf0, 0xcc, 0x75, 0x92, 0xf5, 0x4b, 0x3e, 0x35, 0xf6, 0xc7, -0x30, 0x2f, 0xc4, 0xfc, 0x1a, 0xc5, 0x19, 0x32, 0xe6, 0xa3, 0xe3, 0x01, 0xd4, 0x76, 0x54, 0xae, -0x13, 0xfe, 0x33, 0xa7, 0xa8, 0x32, 0x71, 0x7f, 0xc1, 0xbc, 0xbd, 0x82, 0x53, 0xdd, 0x25, 0x56, -0xf4, 0x7e, 0xb1, 0xa2, 0x6b, 0xd5, 0x4b, 0x64, 0x4f, 0x51, 0x9d, 0xa0, 0xf8, 0xf7, 0x4c, 0xfa, -0x5f, 0x57, 0xaf, 0x3f, 0xd8, 0xa1, 0xde, 0x00, 0xa9, 0x61, 0x9b, 0x43, 0xe3, 0xf6, 0x25, 0xbe, -0x73, 0x1a, 0x05, 0x71, 0xc3, 0x29, 0xea, 0xc4, 0xf8, 0xae, 0x11, 0xe8, 0xdc, 0xca, 0xec, 0xad, -0xa5, 0x31, 0xb9, 0x95, 0xee, 0x11, 0x92, 0x9c, 0x82, 0xb7, 0x98, 0xc7, 0xc6, 0xec, 0xac, 0xa7, -0xb3, 0x03, 0x47, 0x27, 0x1c, 0x90, 0x03, 0x48, 0x6b, 0xaf, 0xe7, 0x3a, 0x98, 0x11, 0x56, 0x96, -0x61, 0x5a, 0x0b, 0xf6, 0x16, 0xdd, 0x1c, 0x8b, 0x1b, 0xcc, 0x61, 0xac, 0x39, 0x9d, 0xcb, 0x5d, -0xa6, 0xd9, 0x2e, 0xfa, 0x1a, 0xe1, 0xa5, 0x9d, 0xd7, 0x50, 0x69, 0x19, 0x24, 0x4a, 0x92, 0x20, -0xce, 0xad, 0xac, 0x55, 0x30, 0xf1, 0x84, 0xb1, 0x2c, 0x00, 0x13, 0x24, 0x2d, 0x65, 0x0f, 0x33, -0x8c, 0xce, 0x50, 0xc4, 0x11, 0xbe, 0x25, 0x59, 0x49, 0x94, 0x42, 0xa4, 0x50, 0x5b, 0x33, 0x95, -0x72, 0xad, 0xab, 0x9e, 0xb8, 0x3a, 0x82, 0x86, 0x6e, 0x95, 0xe6, 0x16, 0xf6, 0xdf, 0x59, 0x07, -0x2c, 0xa1, 0x15, 0xb4, 0x34, 0xb3, 0x82, 0x9c, 0xb8, 0x82, 0x02, 0x34, 0x3f, 0x7d, 0x88, 0xe3, -0x0f, 0x8a, 0x36, 0xe3, 0x5a, 0x2a, 0xc0, 0xb5, 0x54, 0x38, 0x63, 0xc7, 0x2f, 0xd0, 0xf1, 0x94, -0x4b, 0x8d, 0x5b, 0x9d, 0xcb, 0x62, 0xcf, 0xc7, 0x4f, 0xca, 0x39, 0x63, 0x5b, 0x67, 0x9e, 0x0d, -0x38, 0x09, 0x07, 0xaf, 0xf7, 0x60, 0xae, 0xdf, 0x3d, 0xa9, 0x54, 0xdc, 0x26, 0xcf, 0x4e, 0x2d, -0xcf, 0xfa, 0x9b, 0xf2, 0xb4, 0xca, 0xd6, 0xb1, 0x2d, 0x63, 0x03, 0x0b, 0xb6, 0x9a, 0xa1, 0x71, -0x8b, 0x67, 0x45, 0x6c, 0x67, 0xfc, 0xc8, 0x3f, 0x9d, 0xfc, 0xa7, 0x93, 0xe1, 0xfd, 0x07, 0x41, -0x57, 0xdf, 0x63, 0xf2, 0x5d, 0x44, 0x97, 0x36, 0x6c, 0xfb, 0x8c, 0x7d, 0x55, 0xfa, 0xaf, 0xf5, -0x15, 0xdd, 0x29, 0x3a, 0xcd, 0xd2, 0x3a, 0xe2, 0x12, 0xe9, 0x31, 0xec, 0x5f, 0x17, 0x37, 0xd1, -0xa9, 0x94, 0x62, 0xee, 0xb9, 0x07, 0xdd, 0x85, 0x8e, 0xd9, 0x38, 0x5e, 0x05, 0x72, 0xd8, 0x5e, -0x25, 0xf8, 0xd7, 0x32, 0xf9, 0x10, 0x65, 0x16, 0x1b, 0x4c, 0x49, 0xa1, 0x21, 0xd6, 0x8d, 0xe3, -0x2f, 0x6e, 0xd5, 0x64, 0x33, 0x49, 0xa4, 0x18, 0x5a, 0x85, 0x8e, 0x52, 0x71, 0x8e, 0xee, 0x00, -0xed, 0x24, 0xbd, 0x4d, 0xd4, 0x92, 0xed, 0x5a, 0x9b, 0xba, 0x31, 0x0f, 0xc5, 0xd8, 0x0d, 0x3d, -0x52, 0xcd, 0xa0, 0xd3, 0xb0, 0x71, 0x2f, 0xdc, 0x38, 0x36, 0x38, 0xbf, 0x0a, 0x6e, 0x98, 0xb3, -0xf0, 0x6b, 0xb9, 0x0b, 0x69, 0x7b, 0xc5, 0x43, 0x14, 0x99, 0x32, 0xd7, 0xf9, 0x80, 0x16, 0x9a, -0x2b, 0xaf, 0x86, 0xe9, 0x1f, 0x5e, 0x84, 0xe9, 0xb8, 0x79, 0xe3, 0xba, 0x63, 0x83, 0xf7, 0x63, -0x6c, 0xfb, 0x23, 0xcc, 0x9b, 0x7d, 0x56, 0xd8, 0x63, 0x8e, 0xbf, 0x25, 0x07, 0xc5, 0x1d, 0xb0, -0x80, 0x9f, 0x84, 0x2b, 0x38, 0x71, 0xff, 0xa5, 0xf3, 0x66, 0x99, 0xac, 0xb0, 0x66, 0xe4, 0x28, -0x66, 0xde, 0x6f, 0x76, 0x3b, 0xdd, 0x50, 0x22, 0xb3, 0xad, 0xba, 0xc9, 0x37, 0x48, 0x7b, 0x95, -0x2b, 0x6b, 0xe6, 0xe9, 0x64, 0x7a, 0xb7, 0x37, 0x6b, 0x12, 0x56, 0x8c, 0x13, 0xa4, 0xdc, 0x88, -0x57, 0x3b, 0x94, 0x1c, 0x84, 0x38, 0x72, 0x3a, 0x44, 0x9c, 0x4e, 0x5e, 0x4a, 0x9d, 0x07, 0xe2, -0x1e, 0x24, 0x7b, 0xab, 0xe8, 0x3e, 0x17, 0xb1, 0x10, 0xed, 0x56, 0xb4, 0xae, 0x30, 0xc5, 0x91, -0xcf, 0x39, 0xcb, 0x37, 0xf3, 0xe5, 0xab, 0xe1, 0xcc, 0xfd, 0x2d, 0xdd, 0x67, 0x87, 0x83, 0x29, -0xee, 0x7c, 0x8e, 0x9f, 0x8b, 0x31, 0x93, 0x1a, 0xff, 0x85, 0x5a, 0x5e, 0xa8, 0x71, 0xf8, 0x13, -0xbe, 0xbd, 0x3b, 0x8d, 0xe3, 0x08, 0x7a, 0xbd, 0xa9, 0x8a, 0xce, 0xe0, 0xb4, 0x13, 0x02, 0x0d, -0xb2, 0x16, 0x08, 0xda, 0x17, 0xe9, 0x7a, 0x1b, 0x7d, 0xc5, 0x7e, 0x63, 0x6a, 0x5e, 0x91, 0xd6, -0x02, 0x51, 0x09, 0x19, 0xbe, 0x4d, 0xfe, 0x1a, 0xe3, 0xaf, 0x27, 0xfc, 0xc1, 0xd8, 0x7a, 0xa4, -0xfe, 0x05, 0x7e, 0x31, 0x92, 0xda, 0xa9, 0x22, 0x44, 0x01, 0x36, 0x6b, 0xb0, 0xb2, 0x53, 0xdb, -0x9d, 0x2d, 0x84, 0x4d, 0xd1, 0x5d, 0x2d, 0x63, 0x68, 0x2c, 0xed, 0xcd, 0xe1, 0x0a, 0x63, 0xdc, -0x39, 0x4a, 0x93, 0xdc, 0xd0, 0xb8, 0x8e, 0x4f, 0x88, 0xcd, 0x4a, 0x3d, 0xce, 0x82, 0xfb, 0x8e, -0x0e, 0xec, 0x5f, 0xd7, 0x79, 0x51, 0x89, 0xa6, 0xc2, 0x13, 0xe5, 0xe8, 0xbf, 0xd2, 0x7d, 0xd7, -0x78, 0xab, 0x98, 0x7d, 0xdd, 0xf7, 0x8d, 0x0c, 0x24, 0x1c, 0x76, 0x84, 0xf2, 0x3c, 0xe2, 0x39, -0x4a, 0x41, 0x3a, 0x07, 0x93, 0x62, 0xed, 0x06, 0xb9, 0x76, 0x78, 0x5d, 0xe7, 0x25, 0x45, 0x7a, -0xee, 0xb8, 0x6c, 0x26, 0x09, 0x55, 0x84, 0xfa, 0xb9, 0x7e, 0xb8, 0x18, 0xeb, 0x5e, 0x74, 0x74, -0x5d, 0xd8, 0xa0, 0xec, 0xe3, 0x3c, 0x8d, 0xf3, 0x6a, 0xe1, 0x34, 0xef, 0x39, 0x92, 0x03, 0xe4, -0x4e, 0x18, 0xd0, 0xed, 0x70, 0x92, 0xe3, 0x3e, 0x6d, 0x8f, 0xf1, 0x11, 0x9f, 0x80, 0x4c, 0xfc, -0x02, 0x0d, 0xb1, 0xed, 0x62, 0x96, 0xdb, 0x2d, 0x47, 0x06, 0x1c, 0x21, 0x3e, 0x73, 0x7c, 0x59, -0x99, 0x8b, 0xd0, 0xde, 0x92, 0xb0, 0xf2, 0x69, 0xf4, 0xf3, 0xbc, 0x93, 0xe7, 0x8b, 0xf1, 0x4e, -0xe4, 0xc4, 0xb6, 0x27, 0xd8, 0x36, 0x72, 0xfc, 0x6c, 0xaa, 0x77, 0xac, 0x46, 0xb1, 0x67, 0xa4, -0x60, 0xa3, 0x13, 0x57, 0x4e, 0x7c, 0x2e, 0x41, 0x48, 0xc1, 0xcd, 0x87, 0xae, 0x7e, 0x4e, 0x5b, -0x42, 0x50, 0x92, 0xce, 0x66, 0x15, 0x4d, 0xe2, 0x96, 0x4e, 0x91, 0xc9, 0x92, 0x67, 0x22, 0x97, -0x31, 0xd4, 0xcf, 0xc5, 0x2d, 0xf4, 0x95, 0x6e, 0x24, 0x28, 0x6f, 0x01, 0x3b, 0x39, 0x8f, 0x55, -0x64, 0x1f, 0x95, 0x79, 0x37, 0xbe, 0x2d, 0x60, 0x6b, 0xf9, 0xcb, 0x54, 0xab, 0xb8, 0xb0, 0xbd, -0x58, 0xc2, 0x31, 0xaf, 0x39, 0xd6, 0x88, 0x72, 0xe2, 0x4e, 0x2d, 0x26, 0xe9, 0xdf, 0xcd, 0xe3, -0xda, 0x17, 0xca, 0x41, 0xad, 0x84, 0x5c, 0xca, 0x3d, 0x03, 0xb3, 0xa9, 0x3c, 0x51, 0x0e, 0xaf, -0x9a, 0x01, 0xfd, 0xcd, 0x0e, 0x43, 0x6d, 0xab, 0xd6, 0x97, 0x39, 0xa1, 0x8f, 0xe0, 0x90, 0xbe, -0x2f, 0x09, 0x0a, 0xc0, 0x84, 0xe8, 0x51, 0x96, 0xc1, 0xa0, 0xf6, 0xcf, 0x76, 0xc6, 0xdc, 0xe0, -0x31, 0xb8, 0x72, 0x90, 0xa2, 0x35, 0x6b, 0xa7, 0x26, 0x1f, 0x95, 0x18, 0x4d, 0xcf, 0x30, 0xb6, -0xb1, 0x38, 0x03, 0x97, 0x11, 0x57, 0x20, 0xce, 0x75, 0x85, 0xe5, 0x7b, 0x0f, 0x0b, 0xbb, 0x68, -0x82, 0x53, 0x7d, 0x4a, 0x71, 0x0a, 0x2e, 0xfe, 0x57, 0x93, 0x81, 0x5b, 0xad, 0x60, 0x3a, 0x29, -0xc7, 0xad, 0xf3, 0x97, 0x40, 0xc1, 0x7c, 0x84, 0xb6, 0x48, 0xdf, 0xd9, 0xc7, 0xd6, 0xf0, 0x29, -0xa0, 0xfc, 0x60, 0x35, 0xd8, 0xe7, 0xd7, 0x80, 0x4f, 0xcc, 0x25, 0xc1, 0x5d, 0x28, 0x07, 0x43, -0x97, 0x9b, 0xac, 0x0e, 0xf3, 0xfc, 0x28, 0x52, 0xdc, 0x66, 0x3a, 0xcf, 0x66, 0x6e, 0xd8, 0x4d, -0x02, 0x37, 0xeb, 0x96, 0x47, 0x06, 0x3a, 0x4c, 0x8a, 0x89, 0x39, 0x49, 0x64, 0x1e, 0x11, 0xfa, -0xda, 0xdc, 0xb0, 0xcd, 0x0e, 0xc9, 0x7b, 0xa3, 0x41, 0xbd, 0x8c, 0x1e, 0x94, 0x27, 0x4c, 0x8d, -0xaf, 0x81, 0x4b, 0xb1, 0xcd, 0xc4, 0x7d, 0xd6, 0x82, 0xae, 0x55, 0x24, 0x67, 0x01, 0x4c, 0x87, -0x4c, 0xa6, 0xe4, 0x62, 0x9c, 0x51, 0x97, 0x59, 0x9c, 0x14, 0x0a, 0xc8, 0x88, 0x73, 0x63, 0x43, -0xc2, 0xe9, 0x2b, 0x81, 0x52, 0xa4, 0xe8, 0xea, 0x7e, 0x14, 0x8c, 0x8c, 0xc6, 0x89, 0x43, 0x6c, -0x40, 0xa1, 0xfe, 0xb5, 0x57, 0x69, 0x37, 0xd2, 0xaa, 0xcb, 0x01, 0x84, 0x25, 0x8b, 0x33, 0x36, -0x01, 0xcd, 0x53, 0xb4, 0x0d, 0xf3, 0xee, 0x03, 0xcf, 0xf5, 0x55, 0xe9, 0x7a, 0xf4, 0x23, 0xbe, -0xd6, 0x18, 0x77, 0xe2, 0x2c, 0xb1, 0xa3, 0x6b, 0x45, 0xbc, 0x70, 0x86, 0xf4, 0xf2, 0x8a, 0x78, -0x06, 0x57, 0x59, 0xab, 0x78, 0xb0, 0xe7, 0x1a, 0x59, 0x1e, 0x7b, 0x05, 0xe7, 0x92, 0xc1, 0x7e, -0x14, 0xc4, 0xc3, 0x32, 0x77, 0x1e, 0x6b, 0x05, 0x44, 0x12, 0x38, 0x09, 0xc9, 0x21, 0xd0, 0x69, -0x8b, 0x7b, 0xb6, 0xc7, 0xe2, 0x0e, 0x7a, 0x43, 0xe0, 0x71, 0x85, 0x4b, 0xb2, 0x9c, 0x39, 0x33, -0xa4, 0xe4, 0x48, 0x6b, 0x61, 0x03, 0xce, 0x2f, 0x81, 0x97, 0xd4, 0xc4, 0x9e, 0x4e, 0x84, 0x35, -0xbe, 0x8d, 0x8b, 0x7a, 0x4c, 0xd3, 0xff, 0x6d, 0x9f, 0x17, 0x4a, 0x70, 0xcc, 0xa4, 0x07, 0xeb, -0xc0, 0xf8, 0xe0, 0x62, 0x30, 0x3d, 0x18, 0x41, 0xfc, 0x6a, 0x89, 0xbd, 0xda, 0x51, 0xc3, 0x37, -0x43, 0xf6, 0x99, 0x5c, 0x1d, 0xfd, 0x93, 0xa9, 0xb3, 0xd7, 0x72, 0xc9, 0x1e, 0x74, 0x18, 0x92, -0x60, 0x9f, 0xbd, 0x16, 0x7a, 0xb1, 0x3f, 0x27, 0x27, 0x52, 0xe7, 0x41, 0xb4, 0xa6, 0x9d, 0x1a, -0xff, 0x0f, 0xf1, 0xbb, 0x68, 0x7c, 0x37, 0x33, 0xf7, 0x00, 0x1f, 0x49, 0xd0, 0x20, 0xce, 0x6f, -0xf1, 0x9a, 0xf1, 0x6d, 0xe6, 0xb7, 0xe9, 0x17, 0x1f, 0x40, 0x21, 0xbb, 0x8c, 0xe8, 0x2a, 0xf0, -0x9a, 0x45, 0x9a, 0x9b, 0x78, 0x73, 0xce, 0xa5, 0x65, 0x04, 0xfd, 0xfe, 0x60, 0x69, 0x88, 0xe7, -0xab, 0x69, 0x44, 0x48, 0x30, 0x10, 0x97, 0x4b, 0x2c, 0x4d, 0x53, 0xf5, 0x22, 0xd5, 0x21, 0x38, -0x5d, 0x3a, 0x33, 0xb0, 0x5d, 0xcf, 0xe1, 0x22, 0xce, 0x90, 0x65, 0xcd, 0xae, 0x35, 0xed, 0x5b, -0xb4, 0x67, 0xb9, 0x90, 0x6e, 0xa4, 0x1d, 0xca, 0xed, 0x96, 0x0a, 0x53, 0xfb, 0xd7, 0x92, 0xdf, -0x53, 0xdd, 0x35, 0xbb, 0xdd, 0xc4, 0xbd, 0xb4, 0x39, 0x2d, 0x21, 0x98, 0x0a, 0x5b, 0x7b, 0xcb, -0x2e, 0x56, 0x6d, 0x6f, 0xd7, 0xe8, 0xd7, 0xa6, 0xf4, 0x8e, 0x66, 0xc1, 0x30, 0x59, 0x84, 0xb9, -0x68, 0x1f, 0xcb, 0xc3, 0x5d, 0x57, 0xa3, 0x30, 0xe5, 0x6a, 0x2d, 0x5c, 0xec, 0xae, 0xef, 0x7b, -0xef, 0x12, 0xd2, 0x6a, 0xfa, 0x7b, 0x2e, 0xdc, 0xd9, 0x3c, 0xde, 0x18, 0xf1, 0xfb, 0xf4, 0x07, -0x68, 0x67, 0xfb, 0xe2, 0x8b, 0xda, 0x89, 0x2d, 0xd3, 0x96, 0x82, 0xfb, 0x64, 0x24, 0xb5, 0xbf, -0x65, 0xfa, 0xa1, 0x50, 0xa3, 0x2f, 0x73, 0x67, 0xc8, 0x9e, 0x69, 0xf4, 0xa5, 0xb8, 0xa3, 0xa5, -0x19, 0xe5, 0x99, 0xcd, 0xf3, 0xc9, 0x47, 0xf3, 0xc9, 0x71, 0xeb, 0x7c, 0xa2, 0x93, 0xd4, 0x3d, -0x60, 0xe7, 0x93, 0xd4, 0x8d, 0xf8, 0xde, 0x13, 0xfd, 0x99, 0x26, 0x39, 0x76, 0x51, 0x2f, 0x39, -0x86, 0xf4, 0xb6, 0x7d, 0xe9, 0xc7, 0xb8, 0xca, 0x73, 0x98, 0x6b, 0xd1, 0x44, 0x27, 0x7b, 0x74, -0x96, 0xfe, 0x67, 0xef, 0x78, 0xbb, 0x20, 0xc2, 0x67, 0x3c, 0x51, 0x68, 0x20, 0x89, 0x40, 0xdf, -0xb7, 0xbf, 0xd4, 0x05, 0x61, 0x90, 0xbe, 0x84, 0x73, 0xef, 0x4b, 0x38, 0xf7, 0xbe, 0x84, 0x73, -0xaf, 0xb7, 0xee, 0xcc, 0x36, 0xaf, 0x51, 0x70, 0x90, 0x8c, 0x74, 0xd3, 0xdd, 0x11, 0xf6, 0x6d, -0x3e, 0xdd, 0xa4, 0x60, 0x4e, 0x46, 0xca, 0x93, 0xbe, 0xfc, 0xa4, 0x9f, 0xe5, 0xd3, 0x0c, 0xc3, -0x4f, 0xb7, 0xe7, 0x69, 0x54, 0xa2, 0xd5, 0x5e, 0x23, 0x67, 0x2f, 0x1b, 0xe0, 0x13, 0x88, 0x06, -0x3d, 0x8d, 0xab, 0x9d, 0x66, 0x14, 0x68, 0x6d, 0xbd, 0x2a, 0x60, 0x81, 0x63, 0xb6, 0x2b, 0x47, -0xd4, 0x1e, 0xa1, 0x61, 0x26, 0xf6, 0xa3, 0x7c, 0x9a, 0x92, 0x93, 0x82, 0x89, 0x0c, 0xff, 0x8c, -0x08, 0x6d, 0x3c, 0xfa, 0x1c, 0xf9, 0xf4, 0x9b, 0x29, 0x5e, 0x83, 0x01, 0xe7, 0x69, 0x0c, 0x0a, -0xc3, 0x3f, 0x00, 0x59, 0x2e, 0xa2, 0x95, 0x33, 0x13, 0x83, 0x5d, 0x86, 0xb4, 0x9b, 0xe0, 0x8d, -0xab, 0x4b, 0xe3, 0x0c, 0x62, 0xa5, 0xdb, 0x1b, 0xec, 0xf7, 0x26, 0xac, 0x49, 0xeb, 0xd8, 0xb7, -0xe4, 0x75, 0x19, 0x3d, 0xf3, 0x8c, 0x67, 0x12, 0x9c, 0x9a, 0xed, 0xcc, 0xa1, 0x7d, 0x24, 0xb6, -0x21, 0x6e, 0x22, 0x7b, 0x97, 0x64, 0x11, 0x56, 0x2a, 0x13, 0xbb, 0xaa, 0xdc, 0xc0, 0x18, 0xe1, -0x50, 0x22, 0x8f, 0xe8, 0x21, 0x2f, 0x62, 0xfa, 0x19, 0x1c, 0x9f, 0xbe, 0x30, 0xed, 0x78, 0x39, -0x85, 0x75, 0x72, 0x9b, 0x2f, 0x31, 0x1d, 0x75, 0x13, 0x3f, 0x11, 0xec, 0x41, 0xec, 0xd8, 0x8a, -0xbf, 0x2f, 0x23, 0x95, 0x90, 0x43, 0x33, 0x23, 0xe8, 0x70, 0x04, 0x19, 0x1e, 0x23, 0x5c, 0x0f, -0x7d, 0x64, 0x28, 0xcd, 0x8c, 0xa9, 0x5d, 0xdc, 0xcd, 0xae, 0x45, 0xaa, 0x9f, 0xa0, 0xc2, 0xcb, -0xbe, 0x22, 0x49, 0x2e, 0x85, 0xc6, 0xd0, 0x43, 0x21, 0x49, 0x8e, 0x05, 0xe3, 0x6e, 0xb9, 0xf1, -0xa1, 0x56, 0xf0, 0x48, 0x85, 0xfc, 0x5b, 0x22, 0xcd, 0x95, 0x1b, 0xc3, 0xe8, 0xe7, 0x77, 0x89, -0xdc, 0xf8, 0xfc, 0xcf, 0x39, 0x55, 0xe3, 0x82, 0xa0, 0x54, 0x40, 0xb6, 0xe1, 0x6b, 0x18, 0x6f, -0x9b, 0x74, 0x2d, 0x26, 0xba, 0x59, 0xd3, 0xd8, 0xb1, 0xa9, 0x9e, 0x47, 0x56, 0x7d, 0xf0, 0x82, -0x1c, 0x13, 0xa7, 0xb6, 0x9f, 0x08, 0x8d, 0xc2, 0xda, 0xce, 0xce, 0x52, 0xc8, 0x79, 0x99, 0xbb, -0x89, 0xf2, 0x0a, 0x17, 0x8e, 0xa1, 0xd3, 0x82, 0xfb, 0xdb, 0x60, 0x42, 0xe8, 0xb7, 0x5b, 0x7e, -0x8b, 0x9c, 0x70, 0xc9, 0x62, 0xba, 0x1d, 0x60, 0x9b, 0xdb, 0x22, 0xf7, 0xf2, 0x42, 0x2f, 0x71, -0xf1, 0xe7, 0x80, 0x2b, 0x49, 0x3c, 0x01, 0x1e, 0xb9, 0xce, 0x4e, 0x27, 0x58, 0xed, 0x5c, 0x92, -0x09, 0x5a, 0x0d, 0x80, 0x7b, 0x2d, 0x86, 0x39, 0xaa, 0x84, 0x3c, 0xd7, 0x74, 0x03, 0x9d, 0xdd, -0x88, 0x53, 0x07, 0xaf, 0x44, 0x54, 0x2f, 0xe1, 0x4e, 0x88, 0x1d, 0x0d, 0xc6, 0x2d, 0x0a, 0xc0, -0x16, 0xc2, 0x8a, 0xe8, 0x36, 0x71, 0xff, 0xba, 0x2e, 0x21, 0x37, 0xf5, 0x91, 0xb2, 0x96, 0xeb, -0x92, 0x4c, 0x61, 0x43, 0x18, 0xd3, 0x2c, 0xb5, 0xaa, 0xd3, 0xc4, 0x51, 0x46, 0x58, 0x52, 0x37, -0xe2, 0xe1, 0x94, 0x2a, 0x9d, 0xe2, 0x8a, 0x12, 0xe1, 0x14, 0x95, 0x37, 0x61, 0x5f, 0xae, 0x34, -0xf6, 0x65, 0x56, 0x0a, 0xed, 0x8f, 0x88, 0x72, 0x86, 0x31, 0xd5, 0x88, 0x28, 0x27, 0x47, 0x83, -0x1a, 0xb5, 0x98, 0x3b, 0x59, 0xde, 0xbc, 0xef, 0x0e, 0x7d, 0xa3, 0x49, 0x96, 0xdd, 0xd2, 0x37, -0xae, 0x3b, 0xf7, 0xcd, 0xcc, 0x5e, 0x91, 0x5a, 0xa7, 0xd5, 0x3b, 0xf7, 0x0a, 0xe2, 0xa1, 0x92, -0x36, 0x9f, 0x5e, 0xfa, 0xb7, 0xf6, 0x0f, 0xb4, 0x22, 0x6e, 0xf1, 0xff, 0xb7, 0xfe, 0xc1, 0xdc, -0x6d, 0xa9, 0xfe, 0x99, 0xc9, 0x1b, 0xa0, 0xd7, 0xb5, 0x45, 0xdc, 0x32, 0x9a, 0x9e, 0xad, 0x0d, -0x9a, 0x9e, 0xad, 0xdb, 0x71, 0x24, 0xd2, 0x09, 0x63, 0x81, 0x53, 0xa3, 0x6e, 0x68, 0xa7, 0xa0, -0x36, 0xdb, 0xdb, 0x34, 0xce, 0xc4, 0xdc, 0xfb, 0x63, 0x90, 0x43, 0xbe, 0xf4, 0xce, 0x6d, 0x49, -0x71, 0xd1, 0x3a, 0xc0, 0x5e, 0x04, 0x81, 0x98, 0x07, 0xee, 0x69, 0x2f, 0x44, 0xdc, 0x22, 0x10, -0x5b, 0x17, 0x37, 0x2f, 0x88, 0x41, 0xb9, 0x22, 0xd9, 0xeb, 0x5c, 0x8f, 0x30, 0xc4, 0xbf, 0x66, -0xdf, 0xac, 0x58, 0x1c, 0xeb, 0x28, 0x14, 0x1f, 0x8a, 0x51, 0x40, 0xbb, 0x0c, 0xdd, 0xc3, 0xab, -0xaa, 0xd7, 0x2d, 0x45, 0x68, 0x8d, 0x56, 0x92, 0x6e, 0x4e, 0x9b, 0xb9, 0x88, 0x39, 0x0c, 0x0b, -0x7f, 0x8c, 0x39, 0xc5, 0xf3, 0x49, 0x8f, 0x49, 0x42, 0xe8, 0x16, 0xcb, 0x4b, 0x66, 0x1d, 0x41, -0x88, 0x85, 0xe9, 0x0f, 0x08, 0x2b, 0xd0, 0xd3, 0x2b, 0x79, 0xa7, 0x92, 0xc4, 0x5e, 0x3a, 0xeb, -0x29, 0xe6, 0x13, 0x7a, 0x6f, 0x25, 0xef, 0xa5, 0x53, 0xc7, 0x85, 0x2c, 0xa7, 0xab, 0xbe, 0xa8, -0x13, 0x56, 0x4e, 0x1d, 0xc7, 0xf7, 0xf2, 0xa9, 0x2b, 0x74, 0xde, 0x43, 0x7b, 0x27, 0xdf, 0x63, -0x9f, 0xd1, 0x49, 0x97, 0x98, 0x59, 0xf6, 0x0a, 0xc0, 0xc4, 0x12, 0x57, 0x00, 0xb3, 0xd4, 0x09, -0xde, 0xfb, 0xbe, 0x2f, 0x5d, 0x48, 0xc0, 0xbd, 0xad, 0xb2, 0x85, 0x2c, 0x1d, 0xc6, 0xdd, 0xba, -0xb3, 0xc6, 0x8b, 0x88, 0x53, 0x96, 0xcd, 0xe0, 0x8a, 0x0a, 0xfe, 0x78, 0x02, 0x2a, 0x5a, 0x4c, -0xf8, 0xae, 0x6c, 0xa1, 0xd9, 0xf7, 0x1d, 0xc6, 0x8f, 0xbf, 0x23, 0x74, 0x92, 0x7c, 0xfb, 0x98, -0xe0, 0x86, 0xa6, 0x16, 0x12, 0x77, 0x90, 0x39, 0xcd, 0xdd, 0xc4, 0x1c, 0x61, 0x16, 0xac, 0x8f, -0xc6, 0x81, 0x4c, 0xf0, 0xdc, 0xec, 0x06, 0x23, 0xe9, 0x00, 0x28, 0x42, 0x4a, 0x50, 0xbd, 0x4e, -0xb2, 0x87, 0xea, 0x75, 0xc1, 0x9f, 0x36, 0x53, 0x12, 0xd5, 0x19, 0x64, 0x89, 0x13, 0x37, 0x52, -0x2d, 0x1d, 0xea, 0x75, 0xde, 0x49, 0xcf, 0x3a, 0x81, 0xe1, 0xbc, 0x5d, 0xf0, 0x20, 0xe9, 0xb8, -0x3d, 0xac, 0x48, 0x73, 0x81, 0xed, 0xa5, 0x64, 0x96, 0x5c, 0x25, 0x0f, 0x28, 0x60, 0xdb, 0x41, -0x69, 0xc4, 0xfc, 0xce, 0x3a, 0xc3, 0xf9, 0x2c, 0xee, 0x16, 0x54, 0xe7, 0x59, 0x84, 0x93, 0xce, -0x85, 0xed, 0xd2, 0x71, 0xf5, 0x30, 0xbe, 0x4f, 0xa8, 0x6f, 0xe0, 0xfb, 0xa4, 0x3a, 0xea, 0xf1, -0x48, 0x47, 0xcd, 0x1e, 0xac, 0xc5, 0xff, 0x4a, 0xe4, 0x43, 0x47, 0x10, 0xd4, 0x63, 0x4a, 0x4e, -0xbf, 0x1a, 0xee, 0x98, 0x7a, 0x7b, 0x61, 0xbf, 0xaa, 0x4e, 0x9d, 0x56, 0xac, 0x24, 0xf5, 0x47, -0x3e, 0x7c, 0x9f, 0xe6, 0xf7, 0x65, 0xfc, 0x7a, 0x2a, 0x29, 0x15, 0x05, 0xa7, 0x26, 0x48, 0xc2, -0x6d, 0xea, 0x64, 0x2f, 0x84, 0x5f, 0x9f, 0xba, 0x80, 0xcf, 0xb9, 0xa7, 0xc8, 0x75, 0x16, 0x9f, -0x4b, 0xee, 0xe2, 0xa9, 0xe3, 0x0a, 0x64, 0x05, 0xe4, 0x5c, 0xd3, 0xc0, 0x9f, 0xa9, 0xea, 0x7b, -0xdd, 0xf7, 0x93, 0x26, 0xc4, 0x2c, 0x8f, 0x4e, 0x13, 0x62, 0x14, 0x1a, 0x61, 0x25, 0xc4, 0x21, -0x09, 0x7d, 0xb0, 0x01, 0x5e, 0x85, 0xa3, 0x59, 0x32, 0x0c, 0xc3, 0x49, 0xd8, 0x0a, 0x6f, 0xc3, -0x47, 0x52, 0xa1, 0xd4, 0x28, 0xed, 0x93, 0x2e, 0x49, 0x57, 0xb2, 0x64, 0x69, 0x8b, 0xf4, 0xb6, -0xd4, 0x2d, 0xdd, 0x90, 0x5e, 0xc9, 0x92, 0xb3, 0x24, 0x7c, 0x2c, 0x18, 0x36, 0x22, 0xb5, 0x4a, -0xc7, 0xe1, 0x50, 0x56, 0xee, 0x42, 0xc4, 0xc4, 0xd4, 0x83, 0x0a, 0x48, 0x63, 0xec, 0x3a, 0x84, -0xae, 0x63, 0xec, 0x3a, 0x8c, 0xae, 0xc3, 0xec, 0x7a, 0x03, 0x5d, 0x23, 0xec, 0x1a, 0x45, 0xd7, -0x9e, 0x2f, 0xb6, 0xe1, 0x5c, 0x38, 0x82, 0xae, 0x97, 0xd8, 0xf5, 0x53, 0x74, 0x91, 0xd6, 0x85, -0x63, 0x52, 0x50, 0xbd, 0xbc, 0x30, 0xa8, 0x1e, 0x1b, 0xc0, 0x98, 0xf4, 0x8b, 0xe1, 0xfd, 0x38, -0x5a, 0x46, 0xf5, 0x24, 0xba, 0xba, 0xd9, 0x85, 0x6d, 0x92, 0x5a, 0xc9, 0x35, 0x75, 0x01, 0x5d, -0x8f, 0x95, 0xb8, 0xc9, 0x7e, 0xb0, 0xb4, 0x82, 0xf2, 0xc6, 0xbe, 0x02, 0xa9, 0x0e, 0x71, 0x68, -0x23, 0xd9, 0xab, 0x87, 0x0e, 0xc0, 0x1c, 0x38, 0x0d, 0x85, 0xfb, 0x29, 0x3c, 0x5e, 0x90, 0x9c, -0x3b, 0x73, 0xac, 0x71, 0x87, 0x29, 0xc3, 0xaf, 0xf9, 0x82, 0xeb, 0xd5, 0xd3, 0x26, 0x74, 0x5d, -0x7d, 0xfb, 0x13, 0xde, 0xdf, 0x52, 0x94, 0x9a, 0x39, 0xb6, 0x0f, 0xfa, 0x13, 0x95, 0x8a, 0x2c, -0xd7, 0x33, 0x77, 0x94, 0x44, 0xf2, 0xd0, 0xcf, 0x1d, 0xb7, 0x07, 0x39, 0xd5, 0x24, 0xf1, 0x10, -0x24, 0xb3, 0x69, 0xfc, 0x11, 0xbb, 0x3b, 0xf4, 0xc9, 0x5b, 0xb7, 0xcc, 0x11, 0x9b, 0x02, 0x39, -0x7d, 0xfc, 0x6d, 0xe4, 0xe6, 0xf2, 0x71, 0x0c, 0xcf, 0x50, 0x1d, 0x9a, 0xb6, 0xc5, 0x73, 0x69, -0x26, 0x49, 0xcd, 0x36, 0xc4, 0x9d, 0xc4, 0x5c, 0x92, 0x9a, 0xa8, 0x4f, 0xba, 0xef, 0x39, 0x32, -0x20, 0x87, 0xba, 0xef, 0x19, 0xd9, 0x14, 0xb7, 0x52, 0xff, 0x00, 0xe2, 0xde, 0xd4, 0x37, 0xc9, -0x27, 0x6b, 0x40, 0x7f, 0xba, 0x25, 0x77, 0x4c, 0x9d, 0x99, 0x17, 0x04, 0xe6, 0x21, 0x42, 0xac, -0xcb, 0x12, 0x9f, 0xcb, 0xf5, 0xe2, 0xbc, 0x6e, 0xe6, 0x66, 0x56, 0xc0, 0x30, 0xc9, 0x30, 0x94, -0xec, 0x77, 0x33, 0x0f, 0x34, 0x61, 0x05, 0x69, 0x9c, 0x00, 0x0c, 0xa6, 0x22, 0x0c, 0x9b, 0x3a, -0x93, 0x00, 0xc3, 0x69, 0xca, 0x97, 0xf9, 0x4d, 0xf3, 0x66, 0xac, 0x4b, 0x51, 0x5a, 0x01, 0xa5, -0xbd, 0x17, 0xc7, 0x10, 0x0a, 0x11, 0x7a, 0x8f, 0x91, 0x4f, 0xbb, 0xc5, 0xdd, 0x3d, 0x0f, 0xfb, -0x92, 0x74, 0xec, 0xc0, 0x21, 0x1e, 0xad, 0xb3, 0xe8, 0x1a, 0xe6, 0xb1, 0xb1, 0x40, 0x87, 0x81, -0x66, 0x39, 0xe2, 0x11, 0x52, 0xc7, 0xb4, 0xca, 0xae, 0x9d, 0xa9, 0x2f, 0x60, 0x63, 0xff, 0x46, -0xa9, 0x43, 0xfd, 0x18, 0x5d, 0x3c, 0xfa, 0x53, 0xe7, 0x94, 0x1e, 0x0f, 0x8d, 0x73, 0xa7, 0x18, -0xdb, 0xbb, 0x03, 0xd0, 0x61, 0xc4, 0x1c, 0xc4, 0xba, 0x50, 0x9a, 0x38, 0xb4, 0x2e, 0x69, 0xa2, -0xf5, 0xa0, 0xc4, 0xd8, 0x67, 0xc6, 0x9c, 0x06, 0x30, 0x7d, 0x80, 0xf8, 0xee, 0xf0, 0xd7, 0xef, -0xa2, 0xf4, 0x25, 0x9c, 0xdb, 0x49, 0xc5, 0xa9, 0xad, 0xb3, 0xb9, 0x3c, 0x6b, 0x4e, 0x29, 0xf9, -0xfc, 0x7b, 0x59, 0xc9, 0xe1, 0xef, 0x97, 0x14, 0x53, 0xb7, 0x84, 0xab, 0x6a, 0x22, 0xf4, 0xa1, -0xb6, 0xfa, 0xc7, 0x04, 0xef, 0xcb, 0xe4, 0x81, 0xa2, 0x6a, 0x5c, 0x53, 0x65, 0xfd, 0xea, 0x1d, -0x57, 0x61, 0x7a, 0xd5, 0xde, 0xba, 0x1e, 0x7d, 0x1d, 0xea, 0x28, 0xe2, 0xd8, 0x67, 0x71, 0x4c, -0x0f, 0xd3, 0x29, 0x4b, 0xc2, 0xcc, 0x52, 0x02, 0x17, 0x88, 0x86, 0x25, 0x99, 0x54, 0x0c, 0x7f, -0x43, 0x17, 0x7e, 0x49, 0x0b, 0x9f, 0xe8, 0x56, 0x47, 0x36, 0x26, 0x4a, 0x64, 0x93, 0xa7, 0x63, -0xea, 0x38, 0x8e, 0xb3, 0x1b, 0x6b, 0xb2, 0xdc, 0xba, 0x91, 0x2c, 0xb5, 0x26, 0xcc, 0xfc, 0x6b, -0x8c, 0x47, 0x30, 0xef, 0xc3, 0x94, 0x17, 0xfe, 0xbe, 0x41, 0x69, 0xb1, 0xe6, 0x67, 0x44, 0xfc, -0x4f, 0xde, 0xf7, 0x40, 0x52, 0x1d, 0xde, 0x18, 0x97, 0x69, 0x36, 0x74, 0x9b, 0x70, 0x36, 0xac, -0xbb, 0x15, 0x86, 0x29, 0x70, 0xd7, 0x3b, 0xa1, 0x0f, 0x60, 0x79, 0x51, 0x74, 0xea, 0x8c, 0x3d, -0x2a, 0x52, 0xaa, 0x15, 0xfa, 0x32, 0x13, 0x6e, 0x39, 0x58, 0xf5, 0xa1, 0x5a, 0x9f, 0x2c, 0xb7, -0x13, 0x4c, 0x03, 0x47, 0xea, 0x1b, 0x69, 0xcb, 0xcc, 0x79, 0xa8, 0x43, 0x6d, 0x36, 0xac, 0xc5, -0x77, 0xdc, 0xd0, 0xab, 0x58, 0x1f, 0xea, 0x87, 0x7c, 0xf4, 0xd1, 0xbb, 0x37, 0x93, 0x87, 0x9b, -0x66, 0xc5, 0x16, 0xca, 0x65, 0xfa, 0x5a, 0xb2, 0x89, 0x72, 0xb1, 0xcd, 0xcc, 0x05, 0x0c, 0x9d, -0x6c, 0xed, 0xfe, 0xaf, 0xe0, 0xfc, 0xfb, 0x67, 0x71, 0x4d, 0x44, 0x1a, 0x48, 0xb3, 0xce, 0xa3, -0x72, 0xb1, 0x5a, 0x73, 0x3e, 0xfa, 0x50, 0x50, 0xaa, 0x44, 0xdc, 0xb6, 0x26, 0x99, 0x35, 0xfc, -0xfa, 0xd4, 0xc9, 0x44, 0x69, 0xb7, 0x71, 0x84, 0x7e, 0x0b, 0x70, 0xb5, 0x48, 0xae, 0x80, 0xaa, -0x4e, 0x5f, 0x3b, 0xf3, 0x6d, 0xfa, 0x12, 0x27, 0x4d, 0xfc, 0x15, 0x4a, 0x4e, 0x2a, 0x2c, 0xe9, -0x56, 0x6c, 0xdd, 0xa5, 0x67, 0xd6, 0x29, 0xd6, 0x74, 0x88, 0xfd, 0xcc, 0x40, 0x6a, 0x0c, 0xe2, -0x56, 0xe6, 0xb0, 0x36, 0x36, 0x06, 0x87, 0x1a, 0x94, 0x39, 0xbe, 0x20, 0x86, 0x9b, 0x49, 0x4a, -0x79, 0x64, 0x53, 0xa7, 0x15, 0xdd, 0x56, 0xe1, 0x6e, 0x37, 0xe2, 0x7a, 0x3b, 0x9c, 0x1a, 0x1f, -0xc4, 0xf5, 0x29, 0x8d, 0x09, 0xd3, 0xb4, 0x82, 0xa4, 0xa5, 0xb2, 0xe8, 0x52, 0xe5, 0xe8, 0x52, -0xbd, 0x41, 0x7c, 0xe6, 0xb4, 0x8a, 0x71, 0xa7, 0x33, 0x25, 0x7c, 0xb8, 0x37, 0x9c, 0x8e, 0x61, -0x79, 0xed, 0x73, 0x0e, 0xef, 0x01, 0x47, 0x3c, 0x6f, 0x41, 0x94, 0x35, 0x18, 0x70, 0x1f, 0x4c, -0x06, 0x31, 0xfe, 0xa8, 0x62, 0xc5, 0x5d, 0xe9, 0x34, 0xae, 0xf3, 0xbf, 0xa1, 0x35, 0x1e, 0xc3, -0xd4, 0xf1, 0x55, 0xfe, 0x62, 0xd5, 0x64, 0x0d, 0x83, 0xf9, 0x09, 0xb3, 0x90, 0xa7, 0x54, 0x4c, -0x18, 0x32, 0x1a, 0x3d, 0xc2, 0x7b, 0x6a, 0xa9, 0xba, 0xb1, 0xa8, 0x46, 0xdd, 0x8c, 0xa9, 0xb6, -0xe2, 0xb3, 0xdd, 0x59, 0x3c, 0x35, 0x01, 0x55, 0xb3, 0xa0, 0x14, 0x6b, 0x1b, 0x7d, 0x93, 0xda, -0x19, 0x1d, 0xc5, 0xd9, 0xb0, 0x51, 0x2b, 0xa3, 0x6d, 0x41, 0x10, 0x9a, 0xb0, 0x6f, 0x71, 0x94, -0xe8, 0xac, 0x30, 0x69, 0x62, 0x48, 0x63, 0x5c, 0x6b, 0xa0, 0xd3, 0x8f, 0xea, 0x0f, 0x10, 0xbf, -0x8d, 0x69, 0xa3, 0xef, 0x4f, 0x5a, 0x6f, 0x86, 0x94, 0xd0, 0x40, 0x10, 0xca, 0x3c, 0x8a, 0x78, -0x49, 0x13, 0xfe, 0x1e, 0xa4, 0x31, 0x33, 0x8f, 0xc8, 0xc1, 0x79, 0x21, 0x82, 0x21, 0xd0, 0x84, -0x58, 0xca, 0x41, 0x9d, 0x9e, 0x35, 0xe2, 0x86, 0xd3, 0xb5, 0xae, 0x14, 0xa8, 0x7d, 0x31, 0x5c, -0x33, 0x71, 0x87, 0x35, 0x08, 0xc6, 0xae, 0x82, 0x85, 0xfd, 0x06, 0x98, 0x3a, 0x85, 0x6e, 0x73, -0x67, 0x6e, 0xf4, 0xcd, 0xa4, 0xe1, 0x57, 0x7b, 0x16, 0x06, 0x71, 0x35, 0x9a, 0x70, 0x75, 0xc9, -0x53, 0xa7, 0x7c, 0x18, 0x13, 0xe7, 0xe3, 0x49, 0xd9, 0xac, 0xcd, 0x91, 0x63, 0x58, 0x03, 0x1f, -0x96, 0x18, 0x94, 0x83, 0x76, 0xad, 0x96, 0x7c, 0x1a, 0x0c, 0xb3, 0x2b, 0x14, 0x30, 0xbb, 0x99, -0x53, 0xd3, 0x18, 0xed, 0x84, 0x42, 0xb1, 0xe3, 0xe3, 0x6c, 0x3c, 0x08, 0x51, 0x7c, 0x1f, 0x82, -0x58, 0x66, 0x94, 0x1f, 0x0a, 0x82, 0x6e, 0xf4, 0xd0, 0x57, 0xc3, 0xbd, 0x78, 0x17, 0xf6, 0x62, -0x4c, 0xdd, 0xcc, 0xee, 0x3c, 0x75, 0x6b, 0x51, 0xbd, 0xba, 0x9d, 0xdd, 0x36, 0x75, 0x67, 0x51, -0xb5, 0xfa, 0x22, 0xbb, 0xe7, 0xa9, 0x2f, 0x61, 0x4f, 0x7f, 0x8f, 0xdd, 0x1e, 0xf5, 0x55, 0xfe, -0xb5, 0xaa, 0xdf, 0x2f, 0xea, 0x98, 0xba, 0xa4, 0x8e, 0xf0, 0x5a, 0xdd, 0x4b, 0x92, 0x02, 0x55, -0xe9, 0xde, 0x9e, 0x0a, 0x08, 0x6d, 0xb2, 0x71, 0x98, 0xb5, 0xa5, 0x17, 0x68, 0x3f, 0x96, 0x23, -0xbf, 0x38, 0x8a, 0xff, 0x8e, 0xff, 0xe2, 0x78, 0x68, 0x22, 0xcb, 0x1f, 0xba, 0xba, 0x09, 0x9c, -0x74, 0xdf, 0x40, 0x52, 0x90, 0x36, 0x39, 0x26, 0x1b, 0xf9, 0x16, 0x73, 0x5f, 0xe3, 0x06, 0x9c, -0xdd, 0x1b, 0xe2, 0xa7, 0x08, 0xda, 0xe0, 0x08, 0x8e, 0x62, 0x0f, 0x49, 0x5d, 0x4a, 0x5f, 0x56, -0x4d, 0x36, 0xf7, 0x95, 0x25, 0x3a, 0x3a, 0x27, 0x00, 0x86, 0xf3, 0xaf, 0xff, 0xe7, 0xa7, 0xfb, -0x8d, 0x72, 0xcd, 0x2f, 0x8e, 0xe1, 0xbf, 0xdb, 0xe6, 0x78, 0x08, 0xd7, 0x43, 0x73, 0x2e, 0xd5, -0x49, 0xce, 0xee, 0x05, 0xad, 0xc7, 0x6a, 0x14, 0x2b, 0x96, 0x94, 0xad, 0xf9, 0xf6, 0x35, 0x3e, -0xdd, 0xb8, 0x31, 0x69, 0x46, 0xf8, 0x70, 0xc0, 0xda, 0x81, 0xf8, 0xda, 0x68, 0x67, 0x4f, 0x9f, -0xb9, 0xff, 0xde, 0x54, 0xdf, 0x1f, 0xc6, 0x1c, 0xda, 0x7d, 0x72, 0xf5, 0x2f, 0x7e, 0x86, 0xff, -0x6e, 0x5f, 0x6b, 0xca, 0xdd, 0x94, 0xc9, 0x3d, 0x36, 0xd0, 0xee, 0xfa, 0xd4, 0xf8, 0xb1, 0x14, -0x44, 0xc0, 0xb2, 0x37, 0x36, 0x3e, 0x9d, 0xcc, 0xc3, 0xb2, 0x77, 0xc5, 0x9e, 0x89, 0xdb, 0x95, -0xb2, 0xb5, 0x50, 0xe6, 0x06, 0x92, 0x95, 0x77, 0xb3, 0x84, 0x28, 0xf1, 0x6a, 0x8e, 0xca, 0x11, -0x96, 0x3f, 0x3d, 0xd7, 0xb0, 0x59, 0x31, 0x53, 0x0f, 0xba, 0x2c, 0x8e, 0xc5, 0xbe, 0x5c, 0x5e, -0x87, 0x63, 0xd4, 0x3f, 0x8e, 0x48, 0x0c, 0x21, 0x6d, 0x22, 0x07, 0x69, 0xc0, 0x8e, 0xa9, 0x0b, -0x5a, 0xce, 0x5b, 0x43, 0x97, 0xc0, 0x9e, 0x9a, 0x23, 0xaa, 0xeb, 0xa1, 0x35, 0x88, 0xe9, 0x98, -0xf1, 0x1d, 0x03, 0x0b, 0xae, 0x9c, 0xc3, 0x0f, 0x85, 0xc1, 0x4a, 0xeb, 0xe3, 0xa1, 0x10, 0xe4, -0x7c, 0xa1, 0x43, 0x3d, 0x62, 0x88, 0xe1, 0xfb, 0xa7, 0x86, 0x25, 0x0b, 0x3a, 0xd4, 0xe3, 0xe0, -0xc2, 0xf7, 0x49, 0x98, 0x23, 0xb0, 0x91, 0x8f, 0x55, 0x9c, 0x21, 0x79, 0xd6, 0xb0, 0xe1, 0xb7, -0x9d, 0x26, 0x6b, 0xc8, 0x50, 0xd4, 0x65, 0x86, 0xa0, 0x04, 0x14, 0xc6, 0x12, 0x6e, 0x45, 0x2c, -0x43, 0xa2, 0x61, 0x98, 0x5f, 0x20, 0xcd, 0x40, 0xf7, 0xe3, 0xdb, 0x08, 0x0e, 0x7e, 0xcf, 0xff, -0x02, 0x69, 0x26, 0x76, 0x72, 0x7e, 0xf9, 0xb8, 0xb6, 0xce, 0xf1, 0xda, 0xba, 0x42, 0xfc, 0x63, -0x3c, 0x2f, 0x70, 0x5f, 0xd0, 0xea, 0x7d, 0x56, 0x0b, 0xf7, 0x23, 0xcc, 0xcc, 0x32, 0xb4, 0xe2, -0xdb, 0x6a, 0x68, 0xab, 0xfe, 0x40, 0x9a, 0xbb, 0x20, 0x66, 0x68, 0xa7, 0x19, 0x50, 0x0a, 0x34, -0xf2, 0x5d, 0x52, 0xb7, 0xf9, 0xa1, 0x90, 0xa1, 0x87, 0xdd, 0xb8, 0x47, 0x2d, 0x08, 0x19, 0xfa, -0x16, 0x2c, 0x31, 0xbc, 0x84, 0x6b, 0xea, 0x74, 0xa2, 0x1c, 0xc7, 0x0f, 0xf1, 0xc3, 0xf8, 0x9c, -0x68, 0xbb, 0x14, 0x10, 0x3a, 0x87, 0x82, 0x5b, 0x16, 0x04, 0x0d, 0x49, 0x58, 0x03, 0x36, 0xa9, -0x12, 0x77, 0xf5, 0x7c, 0x84, 0x3e, 0xc7, 0xc5, 0xc9, 0x87, 0xd6, 0x33, 0x07, 0xe9, 0x7b, 0xec, -0x35, 0x43, 0x32, 0x8e, 0xdf, 0x10, 0xb7, 0x6f, 0x85, 0x17, 0xf5, 0x29, 0x11, 0xf7, 0xa1, 0x6f, -0x90, 0x7d, 0x59, 0x01, 0xe3, 0x1b, 0xa1, 0x4b, 0xd2, 0x25, 0xc5, 0x46, 0x2b, 0x37, 0x6e, 0x0a, -0x5d, 0xca, 0x32, 0x2a, 0x46, 0x7c, 0x17, 0xda, 0x63, 0x49, 0xa2, 0x80, 0x86, 0xa8, 0x74, 0x75, -0xb4, 0x0b, 0xf7, 0xac, 0x75, 0xaf, 0x19, 0xfa, 0xb0, 0x6d, 0xe7, 0x12, 0x15, 0xe1, 0xa0, 0xad, -0xc8, 0x10, 0x43, 0xc8, 0x3d, 0x97, 0x5d, 0x4b, 0xd0, 0x25, 0x63, 0x39, 0xe7, 0x92, 0xe0, 0x20, -0xdc, 0xd4, 0x56, 0xf5, 0x5b, 0x33, 0x7c, 0x39, 0x24, 0xcd, 0x5d, 0x3e, 0xd0, 0x5d, 0x80, 0xf4, -0x59, 0xa4, 0xb4, 0xc0, 0x1a, 0xc2, 0x71, 0x9d, 0x50, 0x2a, 0x28, 0x5d, 0x2e, 0xa6, 0x18, 0x81, -0xb8, 0x35, 0x8c, 0x6e, 0xec, 0x49, 0x83, 0x61, 0x09, 0xc2, 0x2c, 0x43, 0xdc, 0xfc, 0x85, 0xa0, -0x61, 0x09, 0x85, 0xdd, 0x2e, 0x77, 0xc5, 0x58, 0x14, 0x9e, 0x3a, 0xee, 0xb9, 0xdb, 0xb4, 0x11, -0xf7, 0xe0, 0x6b, 0xf2, 0xdd, 0xcc, 0x31, 0x79, 0x4d, 0xae, 0xb1, 0x63, 0x79, 0xe1, 0x82, 0xe1, -0x4d, 0xf1, 0x1b, 0xb8, 0x4f, 0x1f, 0x27, 0x6e, 0xe3, 0xe9, 0x59, 0xfc, 0x36, 0xf3, 0x7b, 0xb6, -0x63, 0xc9, 0x53, 0x05, 0xef, 0x3e, 0xdb, 0x07, 0x15, 0x6e, 0x69, 0x6e, 0xe8, 0x5f, 0x9a, 0x20, -0xe6, 0x9a, 0xba, 0x16, 0x97, 0xc5, 0xca, 0x11, 0xda, 0x60, 0x7a, 0xa5, 0xd4, 0x0c, 0xa7, 0xef, -0xc4, 0x51, 0x3c, 0x75, 0x6d, 0xf9, 0xe6, 0x37, 0x36, 0xc7, 0x4f, 0x60, 0xef, 0xbf, 0x9d, 0x70, -0x60, 0x0f, 0x9d, 0x93, 0x6b, 0x1a, 0x37, 0xc6, 0x0a, 0x98, 0x0b, 0x3f, 0x93, 0x2e, 0x8b, 0x39, -0x83, 0x6a, 0x1a, 0x9f, 0x56, 0x4c, 0x7d, 0x50, 0x82, 0xf5, 0x38, 0x84, 0x6b, 0xab, 0xe3, 0x74, -0xd1, 0x62, 0xc2, 0xce, 0x8d, 0xfb, 0x48, 0x9a, 0x74, 0x6b, 0xb6, 0x5e, 0x9a, 0xd4, 0x09, 0x0f, -0x90, 0x34, 0x69, 0x65, 0xe8, 0x52, 0xf6, 0x9c, 0x1f, 0x5e, 0xca, 0xb6, 0x27, 0xfc, 0x2e, 0x4f, -0xf6, 0x1c, 0xd9, 0xe8, 0xb2, 0x78, 0x30, 0xb5, 0x23, 0xa8, 0xcc, 0x21, 0xfd, 0x69, 0x89, 0x5c, -0x47, 0x11, 0xe4, 0xe3, 0x48, 0x56, 0x61, 0xee, 0x23, 0xb1, 0x60, 0x42, 0xc2, 0x95, 0xd1, 0x18, -0xdb, 0x1e, 0x1f, 0x77, 0x44, 0x8a, 0x6a, 0xa6, 0x8e, 0xf3, 0x29, 0x6e, 0x05, 0xee, 0xa7, 0x6e, -0xa2, 0xcb, 0x88, 0xab, 0x61, 0xe9, 0x8d, 0xdf, 0x84, 0xeb, 0x77, 0x22, 0xec, 0x6f, 0xe5, 0x50, -0x0f, 0x87, 0xba, 0x38, 0xa4, 0x9d, 0x75, 0xf4, 0x6d, 0x41, 0x7f, 0x39, 0x87, 0xfa, 0x15, 0x92, -0x88, 0xf2, 0x18, 0xf7, 0x92, 0x36, 0x2c, 0xe3, 0xab, 0x98, 0xd2, 0x9c, 0x4e, 0xe9, 0x31, 0x9e, -0xe3, 0xd0, 0xb3, 0x33, 0x52, 0x7a, 0xb2, 0xf3, 0x29, 0x34, 0x3b, 0x97, 0x43, 0xc9, 0xbe, 0x8e, -0x6d, 0x41, 0x4c, 0xea, 0x49, 0x18, 0x1b, 0x49, 0xc6, 0x56, 0xc7, 0x35, 0x8a, 0x14, 0x91, 0x34, -0x8f, 0x30, 0xce, 0xd6, 0x2a, 0xd2, 0xa0, 0x42, 0xf8, 0x73, 0x37, 0x69, 0x4f, 0x41, 0x6a, 0xe9, -0x28, 0xa6, 0x54, 0x6e, 0xc1, 0xce, 0x9b, 0xe3, 0x90, 0xb5, 0x17, 0x71, 0xe1, 0x4a, 0x9c, 0x8b, -0x83, 0x88, 0x1f, 0x97, 0x11, 0x3c, 0x35, 0xfa, 0x31, 0xc4, 0xa3, 0x93, 0x25, 0xdb, 0xa8, 0xbb, -0xad, 0x05, 0x29, 0x17, 0xd7, 0xf3, 0x7f, 0x85, 0xb9, 0xf8, 0xfe, 0xef, 0x70, 0x1f, 0xbe, 0xff, -0x02, 0x64, 0x7c, 0xbf, 0x06, 0xf3, 0xf0, 0xfd, 0x03, 0xb0, 0xe3, 0x7b, 0x18, 0x57, 0x6a, 0x87, -0xfa, 0x43, 0x5c, 0xa9, 0x1d, 0xea, 0x08, 0xae, 0xd4, 0x0e, 0xf5, 0x47, 0xe0, 0xc4, 0x35, 0x1d, -0x24, 0x1a, 0x76, 0xea, 0x5a, 0x9a, 0x86, 0xcd, 0x02, 0xcb, 0xd4, 0x35, 0xa1, 0x33, 0x62, 0x6a, -0x9a, 0x7f, 0xb3, 0xa7, 0x4d, 0xb6, 0x22, 0x98, 0x4b, 0x7c, 0x7b, 0x8d, 0x9b, 0x8a, 0xa2, 0xd3, -0x16, 0x0e, 0x9d, 0x35, 0x9d, 0x83, 0xee, 0x5c, 0x76, 0xff, 0xc7, 0xe9, 0x7c, 0xda, 0x0d, 0xa6, -0xe7, 0xb0, 0x6f, 0xee, 0xf4, 0xdc, 0xee, 0x86, 0xa2, 0xd0, 0xb4, 0x5d, 0x68, 0x97, 0x98, 0x76, -0xe2, 0x17, 0x37, 0xad, 0x7f, 0xe6, 0xfd, 0xcc, 0x4b, 0x18, 0x7b, 0x40, 0x71, 0x7a, 0xe9, 0xb6, -0xaa, 0x48, 0x6a, 0xf6, 0xde, 0x25, 0xf2, 0x6e, 0x0c, 0xfa, 0x82, 0x74, 0xe7, 0x01, 0xc4, 0xdb, -0x3d, 0x7e, 0xe3, 0x31, 0xe6, 0xca, 0x2d, 0xc0, 0xb9, 0x7d, 0x83, 0x64, 0xf2, 0xa6, 0xae, 0x11, -0x8d, 0xb2, 0xf5, 0x5e, 0xd2, 0xe7, 0xfc, 0x71, 0x27, 0xf6, 0x11, 0xf6, 0x93, 0x81, 0xac, 0x83, -0xd8, 0x12, 0xcb, 0xe5, 0x20, 0xb4, 0x06, 0x71, 0xdf, 0x62, 0x59, 0xbc, 0x1b, 0xea, 0x46, 0x9d, -0x14, 0xde, 0xe6, 0xa2, 0x35, 0x86, 0x7a, 0x75, 0x08, 0xdf, 0x35, 0xea, 0x8e, 0xee, 0xd9, 0x45, -0x21, 0x75, 0x17, 0x4b, 0xea, 0xed, 0x4e, 0x4b, 0xe7, 0x39, 0x6e, 0xd7, 0xa3, 0x0a, 0x9d, 0x09, -0x11, 0x8f, 0xb3, 0x84, 0xa5, 0xcd, 0x6d, 0xd8, 0x56, 0x7d, 0xc9, 0xb0, 0x75, 0xa6, 0xfc, 0x9a, -0xaf, 0x48, 0xf2, 0x20, 0x14, 0xd3, 0x30, 0x4e, 0x35, 0x1f, 0x57, 0xc4, 0xe5, 0x84, 0x09, 0xe1, -0x8e, 0x2c, 0x55, 0xa6, 0x64, 0xfb, 0xa6, 0x2c, 0x0c, 0x4d, 0xea, 0x13, 0x4a, 0x5a, 0xbe, 0xf0, -0x45, 0xc4, 0x4b, 0x0e, 0x22, 0xb6, 0xfa, 0x12, 0xee, 0x9c, 0xdf, 0x63, 0x59, 0x43, 0x2c, 0xf3, -0xa3, 0xb7, 0x04, 0x47, 0x13, 0x51, 0x4b, 0x1f, 0x6d, 0xd0, 0x74, 0xcc, 0xb5, 0x4b, 0x17, 0xaa, -0x3e, 0x90, 0xa2, 0x62, 0xb6, 0xe8, 0x64, 0xf0, 0x36, 0x0b, 0x59, 0x40, 0x3e, 0xf3, 0x1d, 0xf8, -0x5a, 0x46, 0xc6, 0x2b, 0xa6, 0x97, 0x9a, 0x8a, 0x03, 0x5c, 0x64, 0x39, 0x40, 0x01, 0x63, 0x1f, -0xa3, 0xd5, 0xa9, 0x71, 0xaf, 0x89, 0x5d, 0x7a, 0x94, 0xeb, 0x65, 0xcd, 0x48, 0x21, 0x36, 0x6c, -0x93, 0x8b, 0x0c, 0xa2, 0xcd, 0x80, 0xb5, 0x70, 0xb3, 0xff, 0xa9, 0xb4, 0x7f, 0x0e, 0xfb, 0x37, -0xa6, 0xfd, 0xd8, 0x32, 0x92, 0x15, 0x1c, 0xd1, 0xe5, 0xc9, 0x5c, 0x2c, 0x42, 0xde, 0xd0, 0x66, -0x2e, 0x46, 0xaa, 0xf7, 0x6f, 0xe3, 0xda, 0x97, 0xc9, 0x66, 0x92, 0x51, 0xe4, 0xb8, 0x56, 0x3d, -0x17, 0x8a, 0xb7, 0x78, 0xea, 0x8c, 0x26, 0x49, 0x85, 0x63, 0xd2, 0xb4, 0xed, 0x76, 0x92, 0x83, -0x98, 0x67, 0x8f, 0x38, 0xd1, 0x5d, 0xd6, 0x0a, 0xb9, 0xb7, 0xca, 0xd6, 0x7d, 0xe7, 0xef, 0xf4, -0x12, 0x52, 0x1a, 0x66, 0x2f, 0x7d, 0xe7, 0xef, 0xe4, 0xbb, 0x48, 0xa3, 0xc0, 0xd4, 0xcb, 0x74, -0x7a, 0x2f, 0x75, 0x7c, 0x82, 0x14, 0x17, 0xd1, 0x29, 0x0a, 0xfc, 0x56, 0x4e, 0x6a, 0x50, 0x6d, -0xaa, 0xdd, 0xc3, 0x14, 0xce, 0x35, 0xa4, 0xd8, 0xa7, 0xcf, 0x89, 0x1c, 0x35, 0xcc, 0xc3, 0x10, -0x87, 0x1b, 0x48, 0x1f, 0xdc, 0x90, 0x1c, 0xed, 0xd9, 0x2e, 0xb7, 0x95, 0xf8, 0xdf, 0x8d, 0xbd, -0x7a, 0xfe, 0x77, 0xa7, 0x07, 0x1a, 0xe2, 0xf0, 0x49, 0xa3, 0x02, 0x9f, 0xf8, 0xab, 0x69, 0xde, -0xf0, 0x49, 0x90, 0xb8, 0xa1, 0xd6, 0xb4, 0x66, 0xdc, 0xad, 0x6e, 0x4c, 0xda, 0x8a, 0x82, 0x8c, -0x5f, 0x49, 0x50, 0xa0, 0x6e, 0x75, 0xdc, 0xc5, 0x37, 0x4b, 0xad, 0x45, 0x61, 0xc6, 0xb3, 0x24, -0x90, 0x11, 0xcf, 0xa2, 0xb9, 0xf8, 0x22, 0x71, 0xa2, 0xf3, 0xec, 0x9e, 0x1b, 0xfe, 0x8b, 0xa5, -0x37, 0x2e, 0x0d, 0x11, 0x3c, 0x31, 0x3c, 0xd5, 0x7d, 0x2f, 0xce, 0xd6, 0xcd, 0xfa, 0x6f, 0x1c, -0x3e, 0x98, 0x9c, 0x43, 0xb9, 0x62, 0x3b, 0x5d, 0x08, 0x83, 0x66, 0x7e, 0x63, 0xfb, 0xa0, 0x38, -0xb2, 0x4f, 0x61, 0xdd, 0x90, 0xa2, 0x9c, 0x9a, 0xa6, 0x19, 0x2a, 0x93, 0x4c, 0xa7, 0x18, 0xa1, -0x37, 0x70, 0x7f, 0x35, 0x71, 0x98, 0x86, 0x27, 0x4c, 0x3b, 0x17, 0xc4, 0xc0, 0x45, 0x3b, 0x0d, -0xc2, 0x0c, 0xd2, 0x9c, 0x26, 0xf3, 0xfe, 0x3d, 0x8f, 0xf7, 0x72, 0x3b, 0xaf, 0xa7, 0x4f, 0x10, -0x4b, 0x5c, 0xa2, 0x0e, 0xe5, 0xd2, 0x9a, 0x32, 0xe0, 0x9a, 0xc2, 0x3a, 0x51, 0x8e, 0x7c, 0x52, -0x9a, 0x87, 0x35, 0xd9, 0xc1, 0xfa, 0x86, 0x5e, 0xa6, 0xf3, 0x52, 0xfc, 0x25, 0x8d, 0x20, 0xf3, -0xa2, 0xeb, 0x58, 0x0a, 0x7c, 0x0f, 0xba, 0xed, 0x9a, 0x7b, 0xdf, 0x17, 0xd7, 0xc0, 0xfd, 0xea, -0x30, 0xbe, 0x1d, 0xea, 0x0f, 0xf1, 0x3d, 0x5f, 0x1d, 0xc1, 0xb7, 0x53, 0xfd, 0x11, 0xe9, 0x98, -0x59, 0x3e, 0x80, 0xf9, 0xec, 0xe6, 0xbe, 0xd8, 0x9f, 0x5a, 0x97, 0xd8, 0x82, 0x7c, 0x6c, 0x41, -0x40, 0xc8, 0x99, 0xcb, 0x76, 0xc7, 0x6c, 0x47, 0x3d, 0xf6, 0xb2, 0x83, 0x4f, 0xc1, 0x57, 0xe1, -0xba, 0x39, 0x8b, 0xb9, 0x9e, 0x11, 0x58, 0xc8, 0x17, 0x3b, 0xb3, 0xb2, 0xd5, 0xf7, 0xf1, 0x3d, -0x4b, 0xfd, 0x67, 0xbe, 0x07, 0xee, 0x50, 0xcf, 0x08, 0xde, 0x41, 0x4f, 0x4a, 0x77, 0x27, 0x9d, -0x81, 0x19, 0x93, 0x0e, 0xba, 0x37, 0xc5, 0x75, 0x7e, 0x96, 0x76, 0x6f, 0x5a, 0xe1, 0x38, 0x16, -0x93, 0xd0, 0x61, 0xb3, 0xa9, 0x17, 0x71, 0x5d, 0x9e, 0x65, 0xe9, 0xa4, 0x8a, 0xba, 0x0f, 0x23, -0x46, 0x21, 0x97, 0xfe, 0x95, 0x8f, 0xd5, 0xfd, 0x74, 0xe7, 0xe3, 0xee, 0x82, 0x7e, 0x57, 0x17, -0x0c, 0x94, 0x78, 0x60, 0xa5, 0x87, 0x78, 0x26, 0x3b, 0x20, 0xcf, 0x55, 0x0c, 0x05, 0xde, 0x0e, -0x28, 0x04, 0x3f, 0xbe, 0x65, 0xf0, 0xe0, 0xdb, 0x01, 0x3e, 0x4f, 0x07, 0xb8, 0xfc, 0x1d, 0x48, -0x51, 0x14, 0x41, 0x01, 0x51, 0x3f, 0x71, 0x4b, 0x0c, 0xda, 0x2d, 0x24, 0x73, 0xa1, 0x18, 0xfb, -0x0c, 0xb8, 0x1b, 0x4a, 0x8a, 0xd4, 0x67, 0x64, 0xe9, 0x0a, 0x63, 0x77, 0x70, 0xf3, 0xba, 0xd0, -0xc7, 0x50, 0x8e, 0x3e, 0x0b, 0xd2, 0x7c, 0x35, 0x02, 0x12, 0xa7, 0x78, 0x27, 0x88, 0x17, 0xd5, -0x68, 0x80, 0xc8, 0x53, 0x06, 0xef, 0x62, 0x88, 0xa6, 0x34, 0xc2, 0x18, 0xb3, 0x31, 0x2f, 0x89, -0x4f, 0xe5, 0x83, 0xde, 0x08, 0x44, 0xd8, 0x15, 0xc5, 0xa7, 0x81, 0xe3, 0x1b, 0xa1, 0xc9, 0xbb, -0x04, 0x56, 0xb2, 0xfb, 0x6d, 0x50, 0xbc, 0xf5, 0xd0, 0xcc, 0x3c, 0xad, 0x0f, 0x40, 0xab, 0x3f, -0xe6, 0xc5, 0xaa, 0x94, 0x12, 0x57, 0xec, 0x9b, 0x3e, 0xe2, 0x90, 0x1d, 0x25, 0xe9, 0xb8, 0xc0, -0x1a, 0x30, 0xfb, 0xd7, 0x80, 0xa5, 0x37, 0x78, 0xfc, 0xe9, 0xd0, 0xaf, 0xe1, 0x9c, 0x7d, 0x35, -0x34, 0x2d, 0xbd, 0x66, 0x56, 0x1d, 0x39, 0xd5, 0x57, 0x0a, 0x54, 0xa7, 0xe5, 0x29, 0xc3, 0xa6, -0x67, 0xaa, 0x89, 0x93, 0x9c, 0x74, 0x5b, 0xe5, 0x97, 0x10, 0xf7, 0xf3, 0x3e, 0x39, 0xb8, 0x80, -0x38, 0xf3, 0x69, 0x9f, 0x92, 0xbd, 0x5d, 0xe0, 0x87, 0x40, 0xec, 0x07, 0x48, 0xa3, 0xe4, 0x70, -0x49, 0xf7, 0x63, 0x6d, 0x88, 0x5b, 0xb9, 0x0e, 0xc3, 0x3c, 0x5a, 0x98, 0x1d, 0x6b, 0x47, 0xda, -0x31, 0x97, 0x13, 0x87, 0xb1, 0xd0, 0x51, 0x12, 0xba, 0x0c, 0xc4, 0xd9, 0xb8, 0x06, 0x8c, 0x42, -0x33, 0x0b, 0xf9, 0x65, 0xb3, 0x56, 0xa3, 0x24, 0xd6, 0xa8, 0xfb, 0x76, 0xb5, 0x71, 0x65, 0x67, -0xea, 0x82, 0x74, 0x51, 0x7f, 0x1c, 0x0c, 0xce, 0xe7, 0x8e, 0xdb, 0x17, 0x73, 0xc8, 0xab, 0xb8, -0x3b, 0xda, 0x6e, 0xdf, 0x87, 0x58, 0x7a, 0xf0, 0xff, 0x5e, 0x1f, 0x7e, 0xd6, 0xd6, 0xde, 0xa9, -0xaf, 0x3f, 0x4b, 0xcb, 0x12, 0x75, 0xc9, 0x66, 0xbd, 0x1c, 0x12, 0x86, 0x55, 0x24, 0x1c, 0xf6, -0x20, 0xe1, 0x55, 0x6a, 0x05, 0x42, 0xf3, 0x0a, 0xf9, 0x35, 0xe8, 0xa7, 0x5f, 0xcc, 0xb9, 0x1f, -0x73, 0xb3, 0xce, 0x5b, 0x4d, 0x9a, 0x82, 0x95, 0x3c, 0x0d, 0xa2, 0x9f, 0xff, 0x87, 0x3d, 0xe1, -0x0e, 0x28, 0xa1, 0x73, 0x2d, 0x98, 0x46, 0x8a, 0xba, 0x9f, 0xec, 0x9d, 0x9a, 0xb3, 0x91, 0x1e, -0x9f, 0x4b, 0x3a, 0x1f, 0x78, 0x45, 0x7c, 0x3e, 0x91, 0xcb, 0xb7, 0x22, 0x84, 0xbb, 0x95, 0x24, -0x0d, 0xbc, 0xaf, 0xbc, 0xbf, 0x00, 0xf3, 0x93, 0x0a, 0x69, 0xbf, 0x61, 0x8d, 0xa0, 0x74, 0xaf, -0x8a, 0x21, 0xf3, 0x96, 0xb0, 0xf4, 0x45, 0x3f, 0x8f, 0x7c, 0xa9, 0x56, 0xc6, 0xaf, 0x58, 0x06, -0xd5, 0xc6, 0x37, 0xbd, 0x5b, 0x53, 0x32, 0x9d, 0xf6, 0x76, 0xf0, 0x0b, 0x6e, 0x18, 0xca, 0xd5, -0xde, 0xaa, 0xc9, 0xaf, 0xe4, 0x39, 0x56, 0x43, 0xcd, 0xfd, 0x4b, 0xa0, 0x46, 0x70, 0x72, 0xcc, -0x5f, 0x02, 0x61, 0xba, 0xb3, 0x42, 0xe8, 0x53, 0xb3, 0xa0, 0x16, 0xc2, 0xd4, 0x3f, 0xce, 0xbf, -0x04, 0x23, 0xc6, 0x30, 0x2e, 0x68, 0x87, 0x0d, 0xf0, 0xa8, 0x1c, 0x14, 0x32, 0x99, 0x7a, 0xe8, -0x2e, 0xce, 0xe5, 0x11, 0x87, 0x30, 0xc2, 0x9c, 0x84, 0x45, 0x5e, 0x22, 0xa4, 0x3c, 0x49, 0xbf, -0x25, 0xbb, 0xca, 0xe9, 0x84, 0x0a, 0x4a, 0x90, 0xd6, 0x63, 0xbf, 0x7a, 0x90, 0x7a, 0x40, 0xbb, -0xd7, 0xac, 0xe3, 0xdb, 0x5f, 0x1b, 0x9d, 0xe4, 0x23, 0xdc, 0xc8, 0x15, 0x67, 0xf9, 0xaa, 0x0b, -0xdf, 0x4d, 0xea, 0x20, 0xee, 0x56, 0xa0, 0x7e, 0x3e, 0x5e, 0x62, 0x8f, 0xce, 0x38, 0x93, 0x0f, -0xe8, 0xcf, 0xfe, 0xec, 0x1d, 0x6a, 0xae, 0x1c, 0xfc, 0x11, 0x9f, 0xcb, 0xff, 0x88, 0xce, 0xe5, -0xe7, 0x62, 0xbd, 0xd6, 0x33, 0xf4, 0x75, 0x79, 0x8b, 0x55, 0xd6, 0xf1, 0xbf, 0xf5, 0x6b, 0x33, -0x4f, 0xe6, 0x6d, 0x40, 0x5f, 0xc4, 0xbe, 0xe4, 0xc0, 0xf4, 0x95, 0x74, 0x6a, 0x2c, 0xa9, 0x74, -0xf2, 0x66, 0x54, 0x65, 0x3e, 0x19, 0xb6, 0x7f, 0xb1, 0x0d, 0x29, 0xd0, 0x4a, 0x7c, 0xcf, 0x56, -0x17, 0x15, 0xb5, 0x81, 0x05, 0xa1, 0xab, 0x1b, 0xe8, 0x4c, 0x2e, 0x57, 0xf5, 0xe0, 0x7b, 0x8e, -0xfa, 0x94, 0xdb, 0x0d, 0x73, 0xd1, 0x65, 0x57, 0x37, 0x62, 0x0a, 0xa7, 0xea, 0xc4, 0xb7, 0x4b, -0x75, 0xe0, 0xdb, 0xad, 0x06, 0xf1, 0xed, 0x51, 0xc3, 0x65, 0x6d, 0x50, 0xe2, 0x02, 0x69, 0xc3, -0xb8, 0xfa, 0x9e, 0xca, 0x3d, 0x04, 0x90, 0x9b, 0x98, 0x6b, 0x6f, 0x43, 0x24, 0xa5, 0x56, 0xbd, -0x2c, 0xcf, 0xe6, 0x1b, 0x87, 0x9c, 0x19, 0x6d, 0xa3, 0x7b, 0x80, 0xcb, 0xd8, 0xa6, 0xcb, 0x42, -0xa6, 0x21, 0xfb, 0xb2, 0x7d, 0xb6, 0xd9, 0x80, 0xb1, 0x3c, 0x9f, 0xd2, 0x03, 0xc5, 0x98, 0x57, -0x70, 0x64, 0x0f, 0xf5, 0x00, 0xbe, 0x45, 0x0f, 0xfc, 0x38, 0xdd, 0x03, 0x97, 0x6f, 0xee, 0x01, -0xbe, 0x07, 0x58, 0x63, 0x37, 0x22, 0x34, 0xbe, 0xec, 0xe9, 0x50, 0x07, 0xe9, 0x36, 0x40, 0x1a, -0xa0, 0x3a, 0x6e, 0x1a, 0x08, 0x77, 0xa8, 0xfd, 0xf8, 0xf4, 0x61, 0x2d, 0xd6, 0x92, 0x3c, 0xbe, -0x3a, 0xa6, 0x76, 0xf7, 0x00, 0xfa, 0x96, 0xaf, 0x05, 0x1c, 0xc5, 0x2c, 0x35, 0x89, 0xef, 0x6c, -0xb5, 0x33, 0x49, 0x1a, 0xea, 0x1a, 0xba, 0x55, 0xdc, 0x59, 0xea, 0x5e, 0x38, 0x81, 0x29, 0x02, -0x18, 0x27, 0x8a, 0xbf, 0xed, 0xf8, 0x5b, 0x80, 0x4f, 0x2b, 0x3e, 0xe5, 0xf8, 0xf8, 0xf1, 0x29, -0xc4, 0xa7, 0x19, 0x9f, 0x08, 0x3e, 0x0a, 0x3e, 0x2b, 0xf1, 0x69, 0xea, 0xa7, 0x5c, 0x7d, 0x48, -0x75, 0x5c, 0x97, 0x6d, 0x7c, 0x27, 0xc0, 0x36, 0x13, 0xe1, 0xcf, 0x57, 0x81, 0xf1, 0xfd, 0xcc, -0xad, 0x80, 0x21, 0x60, 0x88, 0x18, 0xea, 0x0d, 0x4d, 0x59, 0xbe, 0xac, 0x88, 0x61, 0x95, 0xf1, -0x1d, 0xc3, 0x8e, 0xac, 0xb3, 0x86, 0x97, 0x0c, 0x7b, 0xb2, 0x9a, 0xb2, 0x9a, 0x0d, 0xed, 0x86, -0xb5, 0x86, 0x01, 0xc3, 0x66, 0xc3, 0x51, 0xc3, 0x5b, 0x59, 0x3b, 0xb2, 0x5e, 0xc9, 0xda, 0x60, -0x7c, 0xc7, 0xf8, 0x4e, 0x56, 0x41, 0xd6, 0xa1, 0xac, 0xe1, 0xac, 0x53, 0x86, 0x33, 0x86, 0xf7, -0x0d, 0x93, 0x92, 0x45, 0x2a, 0x90, 0x4a, 0xa4, 0x88, 0xf4, 0xa8, 0x94, 0x94, 0x36, 0x4a, 0xbb, -0xb3, 0x7a, 0x8c, 0xef, 0x48, 0x23, 0xd2, 0x51, 0xc3, 0x88, 0xf4, 0xb6, 0xd1, 0x22, 0x5d, 0xca, -0x7a, 0x3f, 0xeb, 0x28, 0xa6, 0x3a, 0x8d, 0xff, 0x0a, 0x8c, 0xce, 0xac, 0xcb, 0xb8, 0x54, 0x31, -0x0f, 0xe3, 0xc9, 0x2c, 0x89, 0x7f, 0xdf, 0x31, 0xbe, 0x6a, 0x1c, 0xd1, 0x5c, 0xff, 0xbe, 0x7f, -0x6f, 0xfc, 0x5f, 0xc9, 0xe5, 0xd3, 0xff, 0x05, 0x8c, 0x11, 0x63, 0xbd, 0x71, 0xa5, 0xb1, 0xcd, -0xd8, 0x6b, 0xdc, 0x68, 0xdc, 0x51, 0x49, 0x12, 0x61, 0x90, 0xb5, 0x6b, 0x61, 0x2b, 0xce, 0x67, -0xdc, 0xb3, 0xb3, 0xb6, 0xb2, 0x4b, 0x46, 0xd7, 0x06, 0x76, 0xd9, 0xd1, 0xd5, 0x57, 0x84, 0x90, -0x40, 0xdd, 0x8c, 0xae, 0x24, 0x87, 0x39, 0xd1, 0x15, 0x67, 0x17, 0x52, 0x91, 0x59, 0x2b, 0xd9, -0x15, 0x44, 0x57, 0x23, 0xbb, 0xc2, 0xe8, 0x8a, 0x72, 0x0a, 0x0f, 0xba, 0x2a, 0xd9, 0xf5, 0x14, -0xba, 0xfc, 0xec, 0x8a, 0xa2, 0xcb, 0x1d, 0xdb, 0x03, 0xc6, 0x15, 0x2c, 0x65, 0xb5, 0x30, 0xa8, -0x06, 0x30, 0xa4, 0x80, 0xbf, 0xd5, 0xa1, 0x2b, 0x87, 0x5d, 0x0d, 0xe8, 0x32, 0x52, 0x2c, 0xdc, -0xf7, 0x0d, 0x8a, 0xb5, 0x7b, 0x5a, 0xb1, 0xb1, 0xcf, 0x9c, 0x94, 0x36, 0xd1, 0x3d, 0xc3, 0x44, -0xf7, 0xd4, 0xf1, 0x75, 0xf8, 0x7b, 0x4e, 0x8b, 0x63, 0x54, 0x26, 0xba, 0x3f, 0x51, 0x2e, 0x69, -0x3e, 0xb3, 0xf2, 0x4e, 0xf7, 0xef, 0x94, 0x77, 0x45, 0x0a, 0x88, 0x18, 0x00, 0x63, 0x1e, 0x90, -0x22, 0xd3, 0x2a, 0xfe, 0x7e, 0x3f, 0x15, 0x2a, 0x51, 0xe8, 0xcb, 0x52, 0x64, 0x8a, 0x42, 0x77, -0x89, 0x50, 0xf3, 0x51, 0xb8, 0x17, 0x7d, 0x9b, 0xcd, 0x1b, 0xf8, 0x77, 0x30, 0x15, 0xd7, 0x4c, -0x71, 0x7b, 0xa4, 0xc8, 0xef, 0x28, 0x6e, 0x7b, 0x2a, 0xd4, 0x46, 0xa1, 0x8f, 0x49, 0x91, 0x8f, -0x29, 0x74, 0x45, 0x3a, 0x07, 0x1b, 0xfa, 0xa2, 0x98, 0x03, 0xfd, 0x06, 0xd3, 0xa1, 0xff, 0x01, -0x7d, 0xa5, 0x18, 0x4a, 0xbf, 0xdc, 0xfe, 0x84, 0x29, 0x89, 0x31, 0xd4, 0xd2, 0xee, 0x8f, 0xf1, -0xed, 0xd7, 0x42, 0xb0, 0xdf, 0x55, 0xb9, 0xfb, 0x3d, 0x7c, 0xdb, 0x53, 0xa5, 0x18, 0xb1, 0x14, -0xc3, 0x75, 0x29, 0xf2, 0x09, 0x96, 0x62, 0xb8, 0x9c, 0xce, 0xef, 0xf3, 0xe8, 0x1b, 0xc7, 0xfc, -0xe8, 0xf7, 0x9d, 0x74, 0xe8, 0x5c, 0xf4, 0x9d, 0xc4, 0x50, 0xfa, 0x3d, 0xca, 0x3d, 0x59, 0xc8, -0xe1, 0xff, 0x11, 0xfd, 0xfb, 0x31, 0x9c, 0x7e, 0xf7, 0x59, 0x8b, 0x55, 0x55, 0xad, 0xc4, 0xfd, -0xf7, 0x7b, 0x5f, 0x6c, 0x85, 0x59, 0x6a, 0x25, 0x86, 0xed, 0xe2, 0xb0, 0x45, 0x18, 0xb6, 0x95, -0xc3, 0x16, 0x61, 0xd8, 0x06, 0x37, 0xee, 0x33, 0x65, 0xfd, 0x70, 0x0f, 0xba, 0x7b, 0x93, 0x7f, -0x56, 0x03, 0x9b, 0x06, 0x38, 0xc7, 0x8d, 0xe8, 0x6f, 0xe5, 0x12, 0xc1, 0xa0, 0x74, 0x07, 0x37, -0xe1, 0x38, 0x18, 0x9a, 0xc8, 0xff, 0x35, 0x1c, 0x51, 0x7f, 0xb0, 0x31, 0x86, 0x7e, 0x31, 0xfe, -0x05, 0x04, 0xd3, 0xd5, 0x76, 0xf4, 0x97, 0x6b, 0x79, 0x91, 0x2e, 0x45, 0x0f, 0x7f, 0x53, 0xd0, -0x65, 0xe7, 0xf9, 0xd2, 0x89, 0xae, 0x82, 0xf4, 0x58, 0x2b, 0x38, 0xd6, 0xcd, 0x1c, 0x9e, 0xc4, -0x70, 0xe0, 0xb8, 0xe5, 0xb8, 0x0f, 0x5e, 0x63, 0x17, 0x52, 0xd1, 0x70, 0x89, 0x5d, 0xcb, 0x39, -0x6f, 0xb2, 0x36, 0x7e, 0x96, 0xfd, 0x08, 0x25, 0xe0, 0x54, 0x7a, 0x36, 0xcc, 0xc1, 0xd9, 0x30, -0x37, 0x3d, 0x1b, 0xac, 0x38, 0x1b, 0x52, 0xf3, 0xc7, 0xb6, 0x11, 0xe7, 0x0f, 0xec, 0xe9, 0xfe, -0xf8, 0xd8, 0x3a, 0xba, 0xcf, 0xa1, 0x33, 0x3e, 0xfc, 0xdd, 0xc5, 0x79, 0x74, 0x93, 0x55, 0xf3, -0x74, 0x4d, 0x22, 0x58, 0x93, 0x1a, 0xcd, 0x27, 0x29, 0x65, 0xdd, 0x53, 0x4a, 0x79, 0x3a, 0x7f, -0x17, 0xe6, 0xef, 0x4e, 0xe7, 0x3f, 0x07, 0xf3, 0x2f, 0xd4, 0x7c, 0x36, 0x2c, 0xed, 0x63, 0x25, -0x27, 0x35, 0x9e, 0x1b, 0x06, 0x94, 0x8a, 0xee, 0xf7, 0x8e, 0xae, 0x53, 0xc4, 0xec, 0x6f, 0xc6, -0xfd, 0xab, 0x49, 0x71, 0xb1, 0x3b, 0x82, 0xee, 0x95, 0x4a, 0xa1, 0x07, 0x6b, 0x20, 0xd7, 0x60, -0x48, 0xbf, 0xda, 0xaa, 0x88, 0xd9, 0xbf, 0x96, 0x4f, 0x94, 0x0d, 0x6a, 0x7f, 0xe8, 0xc3, 0x34, -0xf4, 0x1d, 0x93, 0x99, 0xde, 0xb9, 0x71, 0x5d, 0x49, 0xfe, 0xbf, 0x0d, 0x7f, 0xcd, 0x46, 0xba, -0xf7, 0x4f, 0xfa, 0x46, 0x37, 0xc4, 0x4d, 0xb6, 0x00, 0xd8, 0x36, 0x0d, 0xf0, 0x8c, 0x32, 0x76, -0xff, 0xaf, 0xe3, 0xeb, 0xf0, 0xdb, 0x5d, 0xd8, 0xea, 0xb7, 0x8e, 0x0f, 0xc4, 0x30, 0xdf, 0xb8, -0xa5, 0x5b, 0x1a, 0x59, 0x12, 0xef, 0x89, 0x3d, 0x1d, 0x2f, 0x41, 0x50, 0x3a, 0x80, 0xbb, 0x47, -0x41, 0xea, 0xfe, 0x31, 0x9e, 0x57, 0x8a, 0x98, 0xb2, 0xf9, 0xed, 0xe7, 0x8e, 0x8b, 0x10, 0x37, -0xce, 0x6b, 0xf3, 0x71, 0x37, 0x60, 0x5e, 0x5f, 0x54, 0x9a, 0x05, 0x8d, 0x6d, 0xaf, 0x96, 0x57, -0x6b, 0xf7, 0x71, 0x4e, 0xe2, 0x15, 0xa5, 0x3c, 0xe8, 0x3b, 0xe3, 0x11, 0x03, 0x42, 0x6e, 0xdc, -0xf2, 0x4a, 0x46, 0xab, 0x8f, 0xe2, 0x11, 0x6e, 0xcc, 0x29, 0xd2, 0x6d, 0xc0, 0x92, 0x0b, 0x49, -0xc6, 0x7d, 0xeb, 0x96, 0x54, 0x09, 0x58, 0x9e, 0x27, 0x95, 0x87, 0x62, 0x8a, 0x3d, 0x8d, 0xfe, -0x42, 0xa1, 0x6b, 0xe1, 0xe6, 0xfb, 0x73, 0xec, 0xa9, 0x82, 0x04, 0xe9, 0xbb, 0x0d, 0x0c, 0x48, -0xb2, 0x91, 0xeb, 0x91, 0x44, 0x5a, 0xe3, 0x6a, 0xfa, 0xbc, 0xe7, 0x6a, 0x62, 0x0e, 0xe2, 0xcc, -0xf5, 0xb7, 0x9c, 0xf6, 0x34, 0x62, 0x9e, 0x56, 0xa2, 0xb5, 0xe6, 0x4d, 0xa9, 0xef, 0xca, 0xd5, -0x36, 0x57, 0xfa, 0xf4, 0x62, 0x1c, 0x69, 0xa2, 0x46, 0xf5, 0x42, 0x51, 0x2b, 0x52, 0x46, 0x97, -0x8a, 0xaa, 0xd5, 0x09, 0x47, 0xab, 0xa6, 0x1d, 0x02, 0x66, 0xbd, 0xa3, 0x3b, 0xb7, 0x78, 0x37, -0x7d, 0x12, 0x84, 0xb8, 0xd8, 0xac, 0xd1, 0x05, 0xd5, 0x50, 0x22, 0x2f, 0xc1, 0x12, 0xf9, 0xac, -0x40, 0x6d, 0xe3, 0xd0, 0xbd, 0x0b, 0xc2, 0x06, 0xeb, 0x82, 0x0e, 0xb5, 0xdb, 0x60, 0xd3, 0x56, -0xaf, 0x85, 0x30, 0xb4, 0x2f, 0xb6, 0x1a, 0x62, 0x6a, 0xe5, 0x17, 0x3a, 0xd4, 0x4a, 0x58, 0xa5, -0xad, 0xe0, 0x54, 0xf8, 0x12, 0x75, 0x11, 0x86, 0x2f, 0x82, 0x27, 0x16, 0x44, 0xa0, 0x60, 0x41, -0x15, 0x6c, 0xa0, 0x91, 0x8a, 0x93, 0xb4, 0x6e, 0xc9, 0x17, 0x5a, 0x91, 0xda, 0x29, 0xc3, 0xf7, -0x7c, 0x28, 0xc7, 0xf7, 0xfd, 0xf0, 0x10, 0xbe, 0x9d, 0xf0, 0x70, 0xec, 0x75, 0xf5, 0xa9, 0xb8, -0x29, 0x99, 0x73, 0x7c, 0x20, 0xe1, 0xa4, 0x78, 0x38, 0x87, 0x5d, 0x09, 0x93, 0xdc, 0x6a, 0x48, -0x2a, 0x66, 0xc4, 0x36, 0x5c, 0xf2, 0x6a, 0x78, 0x91, 0x28, 0x80, 0x31, 0x17, 0x7c, 0xbe, 0x11, -0xbe, 0x10, 0x84, 0x87, 0x30, 0x85, 0x87, 0x2c, 0xfb, 0xe2, 0x38, 0x7b, 0x08, 0xc7, 0x42, 0xcc, -0x34, 0x1b, 0xee, 0x49, 0x14, 0xd0, 0xdd, 0xc5, 0x58, 0x2b, 0x98, 0x97, 0x05, 0x73, 0x89, 0x42, -0x58, 0x37, 0x12, 0xec, 0x34, 0x62, 0xfc, 0x32, 0xb6, 0x69, 0x20, 0xbe, 0x9b, 0xf0, 0xbb, 0x85, -0xbf, 0x3f, 0x94, 0xfe, 0xfe, 0x10, 0x63, 0xb6, 0xf7, 0x24, 0xf2, 0x28, 0x7d, 0x84, 0xbe, 0x95, -0xa7, 0xbf, 0x95, 0xc7, 0x5c, 0x70, 0x4f, 0x3b, 0x7d, 0x31, 0xf1, 0x97, 0x87, 0xd3, 0x5f, 0x1e, -0x96, 0x1b, 0x98, 0x8b, 0x66, 0x10, 0xf1, 0xa5, 0x5c, 0xa2, 0xdd, 0x18, 0x47, 0x26, 0x4d, 0xc6, -0xb9, 0x94, 0xc3, 0x88, 0x0b, 0xe6, 0x77, 0x99, 0x7b, 0x6c, 0x1b, 0x06, 0x16, 0x90, 0x44, 0x93, -0xa0, 0xed, 0xb2, 0xf9, 0xdb, 0xc3, 0xf8, 0xcd, 0x89, 0xdf, 0x64, 0xf1, 0x8d, 0x29, 0x7e, 0xd2, -0x25, 0x3c, 0x49, 0x39, 0xf0, 0xc8, 0xd7, 0xbb, 0x88, 0xeb, 0x67, 0x77, 0xf5, 0x87, 0xea, 0x1b, -0xb7, 0x39, 0x25, 0x28, 0x50, 0xdf, 0x28, 0x8a, 0xa8, 0x47, 0xb4, 0x13, 0x83, 0x63, 0x74, 0x07, -0x4b, 0x1a, 0x8a, 0xd0, 0x77, 0x97, 0x4a, 0xfa, 0x27, 0x59, 0xab, 0x0f, 0xb6, 0xc9, 0x00, 0x79, -0x04, 0x1b, 0xf9, 0x96, 0xf4, 0x54, 0xe4, 0x75, 0xf5, 0x94, 0xd0, 0x45, 0xb9, 0x75, 0x27, 0x97, -0xb1, 0xc1, 0x01, 0x09, 0x0f, 0xcd, 0x3b, 0xc8, 0x92, 0xc3, 0x55, 0x74, 0x83, 0x2b, 0xe6, 0x1c, -0x85, 0x18, 0x39, 0x24, 0x75, 0xea, 0x18, 0xe6, 0xdf, 0xa7, 0x18, 0x37, 0x67, 0xad, 0x27, 0x53, -0x51, 0xad, 0x3d, 0xc6, 0x44, 0x1e, 0x62, 0x78, 0xd7, 0xf3, 0xa8, 0xc7, 0x06, 0x7d, 0xe1, 0x91, -0x4d, 0x4f, 0x18, 0xbf, 0x10, 0x82, 0x72, 0x0c, 0x9b, 0x64, 0x2d, 0x06, 0x36, 0x1b, 0xf5, 0x18, -0xd6, 0x40, 0xfb, 0xf2, 0xf0, 0x43, 0x24, 0xb1, 0x73, 0xed, 0xa1, 0x10, 0x5c, 0x5f, 0xd0, 0x8f, -0x6b, 0xea, 0xb0, 0x14, 0x58, 0xb0, 0x44, 0x0a, 0x2e, 0xa8, 0x93, 0x22, 0x82, 0xa6, 0xc3, 0x7d, -0xb9, 0x5d, 0xe4, 0xd6, 0xad, 0x8e, 0xbc, 0xae, 0xd6, 0x25, 0x72, 0xc6, 0xc2, 0x18, 0x26, 0xfb, -0x8a, 0xd5, 0xfa, 0x5f, 0x74, 0xa8, 0x72, 0x01, 0x8d, 0xdb, 0x06, 0x31, 0x0e, 0x81, 0x50, 0x52, -0x1d, 0x7e, 0x5d, 0x6d, 0x48, 0xe4, 0x9c, 0x8a, 0x2c, 0x0c, 0xa9, 0xf6, 0xd2, 0x62, 0xb5, 0xf1, -0x97, 0x1d, 0xb8, 0x83, 0x6d, 0x4c, 0x58, 0xe5, 0x9a, 0x52, 0x9c, 0x07, 0x3e, 0x1c, 0x6b, 0xc4, -0xec, 0xb1, 0xde, 0xe8, 0xb3, 0x92, 0xce, 0x3a, 0x6b, 0x07, 0xce, 0x56, 0x39, 0x6e, 0xf6, 0xcd, -0x1e, 0x5a, 0x4c, 0xf9, 0x62, 0x7d, 0x64, 0x5c, 0x48, 0x14, 0x6a, 0x8f, 0x5b, 0x4a, 0xcd, 0xdb, -0x3b, 0x10, 0xd3, 0xc6, 0xbc, 0x30, 0xdc, 0x0e, 0x16, 0x84, 0x2d, 0x81, 0xc4, 0x63, 0x7e, 0x8c, -0xf3, 0xa3, 0x13, 0xed, 0xc6, 0x87, 0x6a, 0x91, 0x16, 0xc3, 0xf0, 0x1f, 0x92, 0x3b, 0x0a, 0x96, -0xd2, 0x59, 0x35, 0xa1, 0xe4, 0x3d, 0xe7, 0x1e, 0x7f, 0x2b, 0x84, 0x25, 0xe7, 0xd7, 0x84, 0xce, -0x3d, 0xfe, 0x53, 0x4c, 0x8d, 0x14, 0x9c, 0xd9, 0x1f, 0xaa, 0xbe, 0x92, 0x04, 0x4a, 0x53, 0x39, -0xfb, 0xa5, 0x10, 0x86, 0x58, 0x4a, 0x43, 0x98, 0x32, 0xdf, 0x67, 0x89, 0x8e, 0x56, 0xfd, 0xc6, -0x0c, 0x3f, 0xfc, 0x79, 0xbb, 0xd9, 0x67, 0x1e, 0x0a, 0x61, 0x0d, 0x38, 0xbe, 0xcf, 0x30, 0x84, -0x50, 0x6c, 0x28, 0xfc, 0x50, 0x10, 0x92, 0x48, 0xfb, 0x59, 0x7c, 0xc1, 0xa1, 0xa3, 0x43, 0x6f, -0x61, 0x19, 0xdd, 0xb1, 0xc5, 0x1d, 0x60, 0x74, 0x60, 0x3d, 0xf2, 0xf1, 0xb7, 0x90, 0x74, 0xfd, -0x53, 0x6b, 0xfc, 0xb3, 0xa2, 0x47, 0xec, 0x91, 0xea, 0xdf, 0xb8, 0x80, 0xda, 0xf5, 0xa3, 0x13, -0xf8, 0x0d, 0x02, 0x41, 0x3f, 0xd6, 0xa2, 0x34, 0x5c, 0xfd, 0x9b, 0x09, 0x0a, 0xcd, 0xa1, 0xd0, -0xac, 0x8b, 0xb1, 0x8d, 0x71, 0xd3, 0x43, 0x8b, 0x89, 0xc6, 0xf3, 0xcf, 0x72, 0xd4, 0x9c, 0x46, -0x1a, 0xe2, 0xa1, 0x30, 0x18, 0x29, 0x26, 0xba, 0x4d, 0xe8, 0xa6, 0xaf, 0x9b, 0xb0, 0xb5, 0xf9, -0xb0, 0x19, 0x4b, 0x71, 0xc6, 0x8d, 0xd8, 0x7a, 0x27, 0xfa, 0x9d, 0x48, 0xa3, 0x75, 0xa8, 0x8e, -0x38, 0xdd, 0xcd, 0x3a, 0xd0, 0xef, 0x80, 0x5c, 0xf4, 0x07, 0xf9, 0x7b, 0x10, 0xfd, 0x41, 0xc8, -0x43, 0x7f, 0x98, 0xbf, 0x87, 0xd1, 0x1f, 0x86, 0xfc, 0x1e, 0xc0, 0x7c, 0x83, 0x07, 0x07, 0xbb, -0x8c, 0x38, 0xbe, 0x79, 0xec, 0x0b, 0xff, 0xf5, 0x11, 0xf4, 0x05, 0x21, 0xbf, 0xdc, 0x05, 0x56, -0x96, 0xec, 0xcd, 0x2b, 0x8d, 0xfc, 0xe8, 0x08, 0xf6, 0x5f, 0x04, 0xf2, 0x30, 0x2c, 0x87, 0xc3, -0xf2, 0xd3, 0x61, 0xf9, 0xb8, 0xb2, 0x0b, 0x13, 0x85, 0xb8, 0xa6, 0x0b, 0x1f, 0x7a, 0x04, 0xde, -0x7f, 0x68, 0x35, 0x48, 0x30, 0xf1, 0x10, 0x51, 0xa9, 0x17, 0xf1, 0x6d, 0x82, 0x4b, 0x4a, 0x09, -0xd6, 0xf7, 0x7d, 0xae, 0xef, 0xc4, 0x08, 0xd5, 0xd7, 0xb4, 0x70, 0x0d, 0xe4, 0x69, 0x35, 0xbe, -0x38, 0x4c, 0x35, 0xa6, 0x90, 0x7c, 0xad, 0xce, 0x97, 0xf0, 0xdd, 0x09, 0x1f, 0xe1, 0x3b, 0x09, -0x57, 0x30, 0xef, 0xf2, 0xb8, 0xa9, 0xa8, 0xd5, 0xf0, 0x94, 0x5a, 0x8e, 0x30, 0xad, 0x1c, 0x4e, -0x62, 0x88, 0x9f, 0x43, 0x06, 0x55, 0x3f, 0x86, 0xf8, 0xe1, 0xf8, 0x82, 0x56, 0xc3, 0x46, 0x18, -0xc3, 0x19, 0x24, 0x3b, 0x6a, 0x52, 0x1a, 0xb0, 0x12, 0x46, 0xa4, 0x64, 0x87, 0xe4, 0x1a, 0xa4, -0x63, 0xb7, 0xc0, 0x0e, 0x74, 0x6f, 0x59, 0x50, 0x03, 0xbb, 0xb0, 0xf5, 0x7d, 0xf1, 0x02, 0xcc, -0xc1, 0x87, 0x54, 0x53, 0x07, 0xee, 0x56, 0x64, 0x91, 0x65, 0x2a, 0x91, 0x5b, 0xb4, 0x1a, 0xa6, -0xd5, 0xe5, 0x74, 0xbb, 0x03, 0x37, 0x30, 0xcf, 0xe5, 0x30, 0x8d, 0xef, 0xa7, 0x84, 0xb6, 0x45, -0x82, 0x33, 0xd2, 0x22, 0xa4, 0x42, 0x11, 0xaa, 0xd1, 0x1d, 0x92, 0x62, 0x8c, 0x22, 0x94, 0xcb, -0xdc, 0x24, 0xc1, 0x00, 0xdd, 0xe4, 0x4b, 0xfe, 0x19, 0xfc, 0x23, 0xed, 0x33, 0x34, 0x65, 0x5d, -0xd2, 0x6b, 0xca, 0x0a, 0xbf, 0x26, 0xc5, 0xb0, 0x06, 0x4d, 0x71, 0x13, 0xbe, 0x57, 0x26, 0x4c, -0x0f, 0x91, 0xa5, 0xaf, 0x68, 0x6c, 0x8d, 0x14, 0x8d, 0xe7, 0xd1, 0x0a, 0x25, 0x9e, 0x3e, 0x2b, -0xc4, 0xcd, 0x55, 0x1f, 0x48, 0x7e, 0x84, 0x52, 0x91, 0xa2, 0x25, 0xea, 0xf7, 0x8a, 0x3a, 0xd4, -0x8d, 0xea, 0xab, 0xf8, 0x56, 0xd4, 0xbd, 0xf8, 0x6e, 0xa6, 0x7b, 0x59, 0x35, 0xa2, 0x8e, 0xe0, -0xbb, 0x55, 0x3d, 0x80, 0xb3, 0xb4, 0x77, 0x61, 0x4c, 0x3d, 0xc4, 0xa7, 0xcc, 0x5b, 0xa3, 0x7d, -0x1f, 0x96, 0xde, 0x46, 0xff, 0x56, 0xfb, 0x2d, 0xfa, 0xb7, 0x2e, 0xcd, 0xd0, 0xbf, 0xd5, 0xa1, -0x1e, 0x26, 0x1e, 0x05, 0x07, 0x69, 0xb8, 0x25, 0x3d, 0x98, 0x03, 0x88, 0x4b, 0xb8, 0xe8, 0x24, -0x31, 0xcf, 0x0d, 0x85, 0xa4, 0xaf, 0x3f, 0xd7, 0x0d, 0x73, 0x48, 0x03, 0xb0, 0xcd, 0x0d, 0xff, -0x81, 0xa5, 0x52, 0x62, 0x22, 0xc6, 0xe4, 0x20, 0xeb, 0x16, 0x28, 0x90, 0x53, 0x7e, 0x17, 0x43, -0xfa, 0x24, 0xb6, 0xa5, 0x44, 0xc8, 0x63, 0xf1, 0x8e, 0x77, 0x03, 0xe1, 0x1f, 0xed, 0x71, 0x67, -0xe4, 0xea, 0x5c, 0x57, 0xfa, 0x84, 0xf1, 0x08, 0xb6, 0xee, 0x38, 0xb6, 0xc2, 0xa3, 0x9e, 0xe4, -0x33, 0xfb, 0xb1, 0xa2, 0x35, 0x06, 0xab, 0x7a, 0x1a, 0xe1, 0xea, 0xd1, 0xf4, 0x0e, 0xa8, 0xd7, -0xaa, 0xf7, 0x46, 0x6a, 0xff, 0x93, 0x97, 0xe0, 0xf8, 0x79, 0x92, 0x6a, 0x37, 0xd9, 0x2d, 0xa0, -0x1d, 0x9c, 0xfa, 0x34, 0x9a, 0xb0, 0xc9, 0x4b, 0x4a, 0xfb, 0x55, 0x15, 0x69, 0x70, 0x3e, 0x4f, -0x9f, 0xbe, 0xa4, 0x9d, 0xcf, 0xbf, 0xd2, 0xb4, 0x0d, 0x5b, 0xd8, 0x9f, 0x50, 0x70, 0x14, 0x73, -0xed, 0xad, 0x1a, 0xbd, 0xcc, 0xa7, 0x07, 0x93, 0x63, 0x8a, 0x56, 0x73, 0x75, 0xe4, 0xb3, 0x6b, -0x5d, 0x42, 0xfc, 0xc0, 0x66, 0xce, 0x22, 0x5d, 0xe8, 0xcf, 0x1d, 0xb7, 0x57, 0x0b, 0x4e, 0x29, -0xc2, 0x94, 0x18, 0xfb, 0xb0, 0x21, 0x95, 0x5c, 0xa0, 0x93, 0x56, 0x41, 0x1f, 0x6b, 0xbd, 0x9d, -0xa0, 0xb3, 0x46, 0xc2, 0x2c, 0x7e, 0xf7, 0x3d, 0x05, 0x7e, 0xe7, 0x27, 0xbb, 0x1a, 0x62, 0xdf, -0x4e, 0xe9, 0x9f, 0x8a, 0x03, 0xe2, 0x73, 0xa0, 0xf6, 0xd5, 0x7f, 0x55, 0x3d, 0x4c, 0xbc, 0xcf, -0x4e, 0x33, 0xf1, 0x65, 0x63, 0x8e, 0x7e, 0x3e, 0x0d, 0xdd, 0x88, 0xe3, 0x7b, 0x98, 0x74, 0x08, -0x3f, 0x78, 0x81, 0x35, 0xf3, 0x31, 0x77, 0x1e, 0x9c, 0x24, 0xf9, 0xb4, 0xb8, 0xdb, 0x5e, 0xf5, -0x69, 0x7c, 0x86, 0x07, 0x98, 0x9a, 0x3f, 0xb0, 0x47, 0xf0, 0x19, 0x1a, 0xee, 0x66, 0x1a, 0xfe, -0x65, 0x6f, 0x16, 0xff, 0xbe, 0x9d, 0xa1, 0xe5, 0x45, 0x1a, 0xb9, 0x8a, 0x35, 0x65, 0xde, 0x83, -0xd8, 0x9a, 0x5f, 0x91, 0x92, 0x3e, 0xb9, 0x0a, 0xfb, 0xfe, 0xb0, 0x76, 0x96, 0x0a, 0x70, 0x9a, -0xa4, 0xe8, 0xb0, 0xc4, 0xf0, 0xa7, 0x95, 0xb8, 0x9f, 0x4b, 0xdc, 0x9f, 0x2a, 0x31, 0x4f, 0x2b, -0x51, 0xba, 0xb9, 0xc4, 0xa2, 0xb0, 0x7a, 0xc9, 0xfc, 0x21, 0x48, 0xea, 0xdf, 0x29, 0x7d, 0x4b, -0x11, 0x87, 0x4d, 0xd9, 0x07, 0xdc, 0x74, 0xc8, 0x9b, 0x53, 0xbf, 0xbd, 0xa8, 0x3e, 0xf5, 0x95, -0xdb, 0x3b, 0x98, 0x58, 0xf1, 0x6f, 0x28, 0x7b, 0xc1, 0x9d, 0xca, 0x26, 0xfe, 0x26, 0xdc, 0xc5, -0xc3, 0xea, 0x24, 0x62, 0xcf, 0x87, 0x59, 0xae, 0xda, 0x5f, 0xf7, 0x61, 0xa4, 0x50, 0xdd, 0x23, -0x64, 0x01, 0x66, 0xf2, 0xc7, 0x92, 0xed, 0x39, 0x92, 0x38, 0x92, 0xbb, 0xa0, 0x1c, 0x69, 0x01, -0x3e, 0x39, 0x44, 0xf8, 0x66, 0xe6, 0x53, 0x40, 0x2b, 0xfb, 0x66, 0xe1, 0xd8, 0xd3, 0x39, 0x61, -0x1e, 0xfb, 0xcc, 0x50, 0xc0, 0xe7, 0xa6, 0xcc, 0x0f, 0x4f, 0x9a, 0x84, 0x43, 0x1f, 0x0b, 0x2d, -0x26, 0x9f, 0xbc, 0xcf, 0xfa, 0x72, 0xb1, 0x7c, 0x6f, 0x10, 0x0a, 0x33, 0xa1, 0x24, 0xb3, 0x24, -0xac, 0x4b, 0x61, 0x59, 0x01, 0xe6, 0x46, 0xad, 0x27, 0x9d, 0x15, 0x82, 0xa7, 0x54, 0x7a, 0x85, -0x65, 0xb8, 0x3a, 0xa1, 0x9f, 0x39, 0xee, 0x0b, 0xb1, 0x7f, 0x0e, 0xa9, 0x8f, 0xb1, 0x44, 0x83, -0x51, 0x77, 0x2b, 0x42, 0xb4, 0x64, 0x7f, 0xa0, 0x44, 0x3a, 0x5e, 0x5e, 0x22, 0x9d, 0xa8, 0x28, -0x91, 0x4e, 0x3a, 0x4b, 0xa4, 0xa3, 0xda, 0x29, 0xe6, 0x00, 0xd6, 0x62, 0x03, 0xbb, 0x1d, 0xb0, -0x09, 0xdd, 0x5b, 0xd8, 0x3d, 0x1f, 0x86, 0x58, 0x03, 0xc8, 0x0e, 0xf6, 0x95, 0x0a, 0x8d, 0x08, -0xec, 0x5e, 0x0c, 0x2f, 0xf3, 0xa9, 0xe9, 0x2b, 0xec, 0x2b, 0x86, 0x3d, 0xe8, 0xde, 0xc7, 0x6e, -0x17, 0x0c, 0x93, 0x7d, 0xbd, 0x6d, 0x77, 0xc1, 0x7e, 0xf6, 0x7b, 0xe1, 0x20, 0xfb, 0x0b, 0xe1, -0x30, 0xfb, 0x83, 0x30, 0x8a, 0x71, 0x8f, 0x62, 0x4e, 0xc7, 0xf1, 0x39, 0x29, 0xf3, 0x4d, 0x31, -0xf3, 0x5a, 0x99, 0xb1, 0xed, 0xeb, 0xc9, 0x02, 0xb4, 0xb5, 0x46, 0x55, 0xe3, 0xc6, 0x40, 0x40, -0x1a, 0xb0, 0x46, 0xc8, 0x55, 0x1e, 0x30, 0x80, 0xb5, 0x1a, 0x5d, 0x52, 0x9f, 0x64, 0x8d, 0x18, -0xde, 0xeb, 0xf4, 0x2c, 0xfe, 0x18, 0xc6, 0x58, 0x5e, 0x83, 0xe6, 0xc3, 0x89, 0x34, 0x47, 0xfc, -0x12, 0xd6, 0xd3, 0xf0, 0x3e, 0xcd, 0x08, 0xea, 0xc7, 0x04, 0xa5, 0x3c, 0x57, 0x5e, 0x4d, 0xba, -0x8a, 0x7c, 0x11, 0xaf, 0xd9, 0x57, 0xe3, 0x35, 0x2f, 0xbe, 0x31, 0xdd, 0x58, 0xff, 0xbc, 0x53, -0xe8, 0x92, 0x52, 0x87, 0xd7, 0xc7, 0xcb, 0xe8, 0x2b, 0xe6, 0x75, 0x9c, 0x74, 0x52, 0xa5, 0xbe, -0xf0, 0x28, 0x14, 0x6a, 0x5f, 0x5e, 0xa6, 0x47, 0x9f, 0x86, 0xd6, 0x16, 0x62, 0x5f, 0x1f, 0x83, -0x2b, 0xcd, 0xd1, 0x25, 0x5a, 0x41, 0xfc, 0x5c, 0x49, 0xaa, 0x7d, 0x62, 0xae, 0xcf, 0x0b, 0x15, -0xd1, 0x63, 0xc4, 0x13, 0x75, 0x78, 0x5d, 0xbb, 0x31, 0x00, 0x8a, 0x35, 0x09, 0x18, 0x56, 0x39, -0xbc, 0xb1, 0x5d, 0xc2, 0x49, 0x11, 0xd1, 0xe2, 0x04, 0xa2, 0x47, 0x29, 0xce, 0x41, 0x8c, 0x53, -0x9e, 0x8a, 0x13, 0x1c, 0xde, 0xd0, 0x2e, 0xb9, 0xb8, 0xc5, 0x89, 0xfc, 0x58, 0x75, 0x87, 0x8d, -0x43, 0xcb, 0xa3, 0x3f, 0x1b, 0x7e, 0xba, 0xdd, 0x84, 0x14, 0x8f, 0x14, 0xae, 0x7e, 0xb0, 0x46, -0x3a, 0xfe, 0x60, 0x44, 0x3a, 0xf1, 0x60, 0xb5, 0x74, 0x72, 0x7e, 0x95, 0x74, 0x14, 0x5b, 0x16, -0x85, 0x0d, 0xd8, 0xc6, 0x28, 0x6c, 0xd1, 0x46, 0xac, 0x0a, 0x47, 0xca, 0x12, 0xed, 0x95, 0x21, -0xc5, 0xf1, 0xc6, 0x35, 0xde, 0xc2, 0x1a, 0x8d, 0x76, 0x3b, 0x83, 0x1a, 0x8f, 0x4e, 0xa1, 0x62, -0x2b, 0x09, 0x6c, 0x00, 0x98, 0x9d, 0x86, 0x60, 0xa4, 0xc1, 0xed, 0xd0, 0x94, 0xdc, 0xb4, 0x4d, -0xa9, 0x9b, 0x1f, 0x84, 0x7e, 0xd2, 0x29, 0xc6, 0x69, 0xce, 0xa4, 0xb4, 0xb4, 0xf1, 0x77, 0xb8, -0xb3, 0x5e, 0xb6, 0xc9, 0x0b, 0x42, 0x1f, 0x9b, 0x6e, 0xe6, 0x15, 0x68, 0xf7, 0x71, 0xef, 0xad, -0xa4, 0x93, 0xd8, 0xa3, 0x29, 0x9b, 0x62, 0x3e, 0x9f, 0x26, 0xdd, 0xdd, 0xea, 0x84, 0x70, 0x55, -0xb4, 0xca, 0xda, 0xaa, 0xd3, 0x91, 0x90, 0x05, 0xb6, 0x45, 0x55, 0x90, 0xb7, 0x08, 0xf1, 0x0d, -0x9d, 0x94, 0xb7, 0x2d, 0x73, 0xe3, 0xbd, 0x62, 0x54, 0x71, 0xfb, 0x1a, 0x0e, 0x44, 0x3b, 0x4a, -0x4a, 0xab, 0xca, 0x10, 0x17, 0x0a, 0xfd, 0x76, 0x00, 0x71, 0xb1, 0x0e, 0x99, 0xf4, 0x26, 0x0c, -0x47, 0x3b, 0x0a, 0x4a, 0x83, 0x7e, 0xc4, 0x8a, 0x42, 0x57, 0x28, 0x74, 0xa5, 0xd0, 0xc6, 0x63, -0x4a, 0xc9, 0x87, 0x59, 0xad, 0x42, 0xca, 0x44, 0xd8, 0x0b, 0x25, 0xde, 0x76, 0x5c, 0xcf, 0x36, -0xda, 0xd5, 0xb4, 0xf5, 0x7c, 0x90, 0x6e, 0x7d, 0x1c, 0x5d, 0xd0, 0xeb, 0xec, 0x82, 0xfe, 0x45, -0x5d, 0xb0, 0x19, 0xe9, 0xa9, 0x2e, 0xd8, 0xe2, 0xc4, 0xd5, 0x5d, 0xd1, 0x05, 0x83, 0x01, 0x2f, -0x6c, 0x8c, 0x1e, 0xd3, 0x34, 0x89, 0xf8, 0x70, 0x9d, 0xb6, 0x92, 0xde, 0x6f, 0x4d, 0x97, 0x48, -0x79, 0xb2, 0x9d, 0x75, 0xbb, 0x04, 0x34, 0x6d, 0x22, 0xc1, 0x64, 0x52, 0xe8, 0xe9, 0xc1, 0xf9, -0x1e, 0x95, 0x63, 0xd8, 0x0a, 0x1f, 0xf1, 0x2f, 0x7c, 0x72, 0xc9, 0xed, 0x06, 0xff, 0x7d, 0x6d, -0x50, 0x0e, 0xc5, 0xbd, 0x50, 0x7b, 0x43, 0xed, 0x29, 0x11, 0x36, 0x45, 0x48, 0x0f, 0x6a, 0x17, -0x94, 0xc4, 0x0b, 0x7a, 0x00, 0xb1, 0x67, 0x89, 0x35, 0xb8, 0x18, 0x70, 0x2f, 0xfd, 0x9c, 0xb0, -0x48, 0xc7, 0x1a, 0xee, 0x85, 0xbc, 0x6c, 0x29, 0xcb, 0x8b, 0x1c, 0x44, 0xfa, 0x82, 0x74, 0x71, -0xd1, 0x98, 0xb0, 0x4e, 0x0c, 0x11, 0x4f, 0xdd, 0x67, 0x07, 0xd6, 0x14, 0x05, 0x36, 0xd2, 0x90, -0x2f, 0xc2, 0x5e, 0xf5, 0xdd, 0x3d, 0xb6, 0x06, 0x48, 0xc3, 0xb9, 0x9f, 0x6e, 0x27, 0x4e, 0xb5, -0xc2, 0x9c, 0x53, 0x35, 0xf6, 0x18, 0x69, 0xbe, 0xe7, 0xef, 0x36, 0x47, 0x11, 0x42, 0x2c, 0x49, -0x5e, 0xcc, 0x36, 0x4d, 0x62, 0x48, 0x2d, 0x50, 0xe8, 0xd1, 0xd8, 0x6b, 0x60, 0x4e, 0x14, 0xc4, -0x36, 0x24, 0xf2, 0x48, 0xf3, 0x1a, 0x95, 0x83, 0xb4, 0x03, 0x6b, 0x44, 0xa4, 0xf2, 0x32, 0xda, -0x55, 0xd4, 0xa8, 0xd6, 0x27, 0x24, 0xbd, 0xd4, 0x2a, 0xee, 0x53, 0xb0, 0x47, 0x48, 0x9f, 0x4f, -0xbb, 0xa6, 0xcf, 0xc7, 0xc8, 0xfa, 0x7c, 0x92, 0xa0, 0x60, 0x6f, 0x34, 0x73, 0x6f, 0xd4, 0x71, -0x6f, 0x5c, 0xd1, 0x72, 0x3e, 0x34, 0xdd, 0x9e, 0xa9, 0x3f, 0xd6, 0xdd, 0x0b, 0x0f, 0xa7, 0xea, -0x2e, 0x78, 0xf2, 0xf9, 0x34, 0x3f, 0x2a, 0x6c, 0xa7, 0x23, 0x2d, 0x65, 0xc0, 0x76, 0xcf, 0xf6, -0x9a, 0x31, 0x5d, 0x8c, 0x66, 0x5a, 0x4a, 0xb6, 0x93, 0x65, 0x8d, 0x41, 0xd3, 0x1e, 0x21, 0x2c, -0xcf, 0xa4, 0x24, 0x83, 0xf2, 0x84, 0xac, 0x77, 0x0c, 0xe7, 0x6b, 0xdc, 0xfc, 0xa5, 0x30, 0xe4, -0x92, 0x2e, 0xf2, 0x94, 0x3c, 0x10, 0x6b, 0x9c, 0x0b, 0xa6, 0xf8, 0xe9, 0x7d, 0x52, 0xca, 0x22, -0x9e, 0xd0, 0x0b, 0x81, 0xfb, 0xef, 0x1e, 0x92, 0xe9, 0x73, 0x98, 0x5d, 0xb3, 0x9d, 0xc0, 0x96, -0x17, 0xf6, 0xa4, 0x60, 0x00, 0x69, 0x0e, 0xd7, 0x60, 0xc0, 0x72, 0x6b, 0x15, 0x48, 0x09, 0x7b, -0xa7, 0x19, 0x7f, 0x0d, 0xf1, 0x1a, 0x25, 0x07, 0x7f, 0xb3, 0x12, 0x85, 0xf8, 0x36, 0xc6, 0xcb, -0x15, 0x3a, 0x35, 0x27, 0xdd, 0x07, 0xef, 0x28, 0x85, 0x9a, 0x6b, 0x5c, 0xc9, 0xd5, 0x5c, 0x27, -0x14, 0xb3, 0xe6, 0x3a, 0xc5, 0x9a, 0x53, 0x04, 0x0f, 0x7f, 0x4a, 0x73, 0xf8, 0x87, 0xc1, 0x42, -0x75, 0x97, 0xd0, 0x11, 0xeb, 0xb5, 0x24, 0x55, 0x92, 0x30, 0xd1, 0x64, 0x30, 0xb2, 0x78, 0xf7, -0xb1, 0xca, 0x5e, 0xb0, 0xd9, 0xbd, 0x88, 0xcd, 0x0f, 0xc4, 0x8d, 0xb1, 0x75, 0x89, 0xa7, 0x10, -0x23, 0x47, 0xbc, 0xdc, 0xc9, 0x56, 0x65, 0x06, 0x2e, 0x27, 0xcc, 0x66, 0x03, 0x62, 0x26, 0x66, -0xa5, 0x8d, 0x74, 0xe1, 0xc6, 0x9b, 0xb1, 0x1f, 0x4c, 0x1c, 0x66, 0xc4, 0xb0, 0x15, 0x4c, 0xed, -0x36, 0x70, 0x0a, 0xeb, 0xda, 0xde, 0x63, 0x83, 0x09, 0x53, 0xe4, 0xcd, 0xb8, 0x49, 0xa9, 0x8c, -0x8c, 0x26, 0x2a, 0x30, 0x66, 0x0e, 0xf9, 0xdb, 0x4c, 0x4a, 0x49, 0x64, 0x74, 0x8d, 0x9b, 0x63, -0xd9, 0xd6, 0xce, 0x3a, 0xba, 0x3e, 0x3f, 0x00, 0xd9, 0x07, 0x06, 0xe3, 0x94, 0x0b, 0x7c, 0x6d, -0x54, 0x31, 0xd1, 0x4d, 0xc3, 0xd7, 0x66, 0xac, 0x36, 0xc7, 0x7d, 0xce, 0xfb, 0x6e, 0xad, 0x21, -0xae, 0xbb, 0x82, 0x4c, 0x2e, 0xcb, 0x06, 0x31, 0x1f, 0xe3, 0x81, 0xc1, 0x96, 0x55, 0xa7, 0x07, -0xfd, 0x0b, 0x5d, 0xa6, 0xfa, 0x4f, 0x64, 0x09, 0x9a, 0xa0, 0x1b, 0x2c, 0xb8, 0x1f, 0x55, 0x7a, -0x6b, 0x71, 0xbf, 0x44, 0x2a, 0x04, 0xd7, 0x90, 0x0d, 0xd7, 0x99, 0x95, 0x73, 0xfc, 0x3d, 0x8c, -0x1f, 0x3e, 0x72, 0xa7, 0x2f, 0xff, 0xf8, 0xd2, 0x9d, 0xbe, 0x3c, 0x5a, 0x7a, 0xa7, 0x2f, 0x5f, -0x2d, 0x11, 0x35, 0xd5, 0x56, 0xbe, 0xcf, 0xed, 0x05, 0xbf, 0x07, 0xe1, 0xae, 0x13, 0xa1, 0x74, -0x09, 0x42, 0x65, 0x84, 0x04, 0x11, 0x87, 0x17, 0xa2, 0x2e, 0x89, 0xb5, 0x47, 0x97, 0xea, 0xb5, -0x47, 0x2f, 0xb9, 0x31, 0xfd, 0x14, 0xae, 0xe0, 0x42, 0x96, 0x92, 0xbe, 0xcb, 0x3b, 0x8b, 0x74, -0xfb, 0x69, 0x37, 0x63, 0x88, 0x17, 0x78, 0x4d, 0x62, 0xcd, 0xb0, 0x5c, 0x65, 0xe3, 0x32, 0xa1, -0x7f, 0xc2, 0x18, 0x5b, 0x1f, 0x3f, 0xa5, 0xd7, 0xe2, 0x2c, 0x6c, 0x9d, 0x69, 0x3a, 0xad, 0x67, -0x6b, 0x33, 0x77, 0x79, 0x79, 0x90, 0xb5, 0x4f, 0xd5, 0xf1, 0xa9, 0x86, 0x2d, 0x61, 0x4d, 0x4e, -0x0f, 0x6f, 0x89, 0x9b, 0x9d, 0x6d, 0xb8, 0x9b, 0x4b, 0x2f, 0x9c, 0x70, 0x64, 0x31, 0x47, 0x41, -0xa9, 0x5e, 0x56, 0xd5, 0x9b, 0x45, 0xf6, 0xf6, 0x88, 0x6b, 0x80, 0xe5, 0x03, 0x0f, 0xa9, 0x3e, -0xbd, 0x6c, 0xaa, 0x90, 0x11, 0x25, 0x3d, 0x3b, 0x38, 0x0a, 0x46, 0x92, 0xdc, 0x41, 0xec, 0xbf, -0x12, 0x97, 0xa3, 0x79, 0x64, 0x13, 0x52, 0xda, 0x66, 0xed, 0x1c, 0xe4, 0x4a, 0x12, 0x34, 0x39, -0xa9, 0x73, 0x2c, 0xf3, 0xd8, 0x05, 0x0d, 0xd8, 0x1f, 0xcb, 0xb1, 0x1f, 0x9a, 0xdc, 0x5d, 0xa0, -0x38, 0x8a, 0x61, 0xb9, 0x6b, 0x0d, 0x54, 0x90, 0x7c, 0x0d, 0xcc, 0x89, 0x83, 0xe1, 0x45, 0x3e, -0xed, 0x58, 0x4a, 0xa7, 0x1d, 0x24, 0xef, 0x6c, 0xd8, 0x4c, 0xfe, 0x8c, 0x85, 0x2e, 0xa1, 0x57, -0x75, 0x66, 0x9f, 0xc9, 0x79, 0x09, 0x92, 0xcf, 0x21, 0xfd, 0xba, 0x0d, 0x64, 0x3f, 0x63, 0x78, -0x28, 0x11, 0xf5, 0xde, 0x45, 0x3b, 0xfa, 0x36, 0x27, 0xe1, 0xb2, 0xb3, 0x4d, 0xf5, 0xdb, 0xbd, -0x45, 0xd0, 0xcf, 0x21, 0x51, 0x76, 0x57, 0xe0, 0x53, 0xca, 0xfe, 0x36, 0xd2, 0x36, 0x0d, 0x74, -0x0f, 0x5a, 0xea, 0xbd, 0x17, 0xd7, 0xbf, 0xcd, 0x6b, 0xe6, 0xf0, 0x3f, 0x67, 0xfc, 0x97, 0xa4, -0x14, 0x96, 0x6b, 0xd6, 0xbf, 0x96, 0x2f, 0x6a, 0x45, 0x2c, 0xac, 0x04, 0xdf, 0x25, 0xe0, 0x63, -0x69, 0xbb, 0xe5, 0x2c, 0x6d, 0xb7, 0x1c, 0x31, 0x43, 0x8a, 0xd1, 0xe8, 0x01, 0xd6, 0xc5, 0xfa, -0x7b, 0x28, 0xa5, 0x3a, 0xa7, 0xce, 0xde, 0x48, 0x13, 0xab, 0x77, 0x09, 0xc2, 0xf0, 0x3a, 0x84, -0xdf, 0xb6, 0xe1, 0xa7, 0x69, 0x4e, 0x97, 0x06, 0x71, 0xee, 0x44, 0x22, 0x3f, 0x80, 0x08, 0xee, -0xae, 0xe5, 0xac, 0xb9, 0x35, 0x7a, 0x1b, 0x6a, 0x44, 0xa7, 0xad, 0xd5, 0x7b, 0xb7, 0x77, 0x56, -0xd2, 0x38, 0xf0, 0x34, 0x4e, 0x9b, 0x5e, 0x55, 0x25, 0x09, 0x32, 0x6c, 0x41, 0x65, 0xda, 0x0a, -0xde, 0xdd, 0xf8, 0xed, 0x19, 0x84, 0x5f, 0xd9, 0xfa, 0xaf, 0xf5, 0xdb, 0xe5, 0xe5, 0xf6, 0x1a, -0x51, 0x37, 0x79, 0xf9, 0x97, 0xba, 0x10, 0xac, 0x7a, 0xf8, 0x97, 0x6b, 0xad, 0xe9, 0x75, 0xd2, -0xcd, 0x9b, 0x19, 0x3d, 0xbd, 0x96, 0xcf, 0x75, 0xaa, 0x78, 0x24, 0xe8, 0xbe, 0xbb, 0x5c, 0x83, -0x97, 0x72, 0x0a, 0x5e, 0xf2, 0xdc, 0x20, 0x68, 0xe9, 0x24, 0x39, 0xc1, 0x94, 0xfe, 0x1a, 0x67, -0x94, 0x25, 0xbe, 0x35, 0x19, 0xb8, 0xd8, 0x50, 0xc2, 0xe7, 0x2b, 0x91, 0xe4, 0x65, 0xc1, 0xff, -0x14, 0x94, 0xe4, 0x78, 0xa1, 0xdc, 0x60, 0xef, 0x94, 0x0a, 0xb4, 0x1a, 0x2d, 0xfb, 0x52, 0x9b, -0x54, 0x88, 0x35, 0xa2, 0xdf, 0xb9, 0x58, 0xa3, 0x65, 0xa2, 0x46, 0xa1, 0x8b, 0x3a, 0x39, 0xc8, -0x63, 0x9a, 0x1e, 0xe5, 0x5f, 0x05, 0x57, 0x92, 0xce, 0xd9, 0xb4, 0x1e, 0x15, 0xc4, 0x5a, 0x5d, -0x3a, 0xb9, 0x72, 0xc4, 0x58, 0x03, 0x3d, 0x50, 0xfb, 0x11, 0xd8, 0x95, 0x3c, 0xb9, 0x8e, 0x25, -0xc9, 0x09, 0xd3, 0x76, 0x91, 0x3e, 0x13, 0x84, 0xdd, 0xcb, 0x78, 0x4f, 0x79, 0x3f, 0x86, 0xd0, -0x85, 0x65, 0xca, 0xfb, 0x52, 0x1a, 0x1c, 0x85, 0x74, 0xf9, 0xca, 0xc2, 0xb4, 0x8e, 0x20, 0xf3, -0xed, 0xb4, 0x03, 0x21, 0x0d, 0x34, 0xc7, 0xec, 0x46, 0xdf, 0x97, 0x13, 0xb9, 0x7a, 0x1d, 0x4f, -0xc9, 0xe9, 0x37, 0xc9, 0x2a, 0xe4, 0x4c, 0x2d, 0xfc, 0x8c, 0x0b, 0x24, 0x0d, 0x64, 0x0b, 0x5b, -0xc3, 0x00, 0x58, 0xd6, 0x97, 0xd6, 0x3b, 0xae, 0xff, 0x3a, 0x39, 0xec, 0x72, 0x21, 0xc4, 0x68, -0x85, 0x02, 0xf0, 0xb8, 0x5d, 0x50, 0xc8, 0xf6, 0x4d, 0x5f, 0x74, 0x23, 0xdd, 0x4c, 0x7c, 0x4e, -0x86, 0xe5, 0x09, 0x8b, 0x1c, 0xc6, 0x59, 0x65, 0xa7, 0xdb, 0x86, 0x92, 0x2c, 0xd2, 0x1d, 0x80, -0x73, 0x3d, 0x23, 0x65, 0x7f, 0xb2, 0xb4, 0x1f, 0x2a, 0x7f, 0x79, 0x14, 0x67, 0x8f, 0x2f, 0x5c, -0xa3, 0x98, 0x1a, 0x6b, 0x10, 0xf6, 0xf8, 0x70, 0xed, 0xf9, 0x64, 0x1b, 0x69, 0x3d, 0x1f, 0xfe, -0x01, 0x78, 0xe2, 0x17, 0xbd, 0xd5, 0x08, 0x0e, 0x91, 0x62, 0x50, 0xfa, 0xff, 0xea, 0x43, 0xf0, -0x24, 0x4c, 0xf8, 0xf6, 0xc5, 0xdb, 0x52, 0x7a, 0x39, 0xd3, 0xf2, 0x88, 0xf5, 0xac, 0xb5, 0xb9, -0x1c, 0x77, 0xcf, 0x00, 0x69, 0x72, 0x46, 0x48, 0x16, 0x24, 0x5b, 0x2d, 0x2f, 0x9c, 0x58, 0x4c, -0xfc, 0x03, 0x55, 0xac, 0x0f, 0xaa, 0x43, 0xe3, 0xf5, 0xb2, 0xdf, 0x22, 0xcd, 0x68, 0xb5, 0x47, -0x32, 0xf1, 0xc2, 0xaf, 0x83, 0x4f, 0x6a, 0x67, 0xbd, 0xcc, 0xaf, 0x83, 0x67, 0xd9, 0x0f, 0xb0, -0x7c, 0x96, 0xa9, 0x4e, 0x98, 0x63, 0xe8, 0xc6, 0xdd, 0xbc, 0x17, 0xeb, 0xe8, 0x11, 0x10, 0x21, -0x61, 0x5c, 0xf6, 0x74, 0xfc, 0x2a, 0x42, 0x6d, 0x9f, 0x7d, 0x93, 0x22, 0xf5, 0xab, 0x7a, 0x1d, -0x02, 0x72, 0xf8, 0x4b, 0x35, 0x20, 0x7f, 0x89, 0xee, 0xde, 0xed, 0x19, 0x29, 0x62, 0xec, 0xc3, -0xb3, 0x38, 0xe6, 0x95, 0xce, 0xa8, 0x73, 0xb6, 0x0b, 0x5c, 0xf5, 0xfe, 0xa0, 0xa6, 0x5d, 0xe1, -0x08, 0x53, 0xa7, 0x87, 0x35, 0x69, 0xc8, 0xfd, 0x4b, 0x3e, 0xc2, 0xbe, 0x5a, 0xaa, 0x83, 0x0b, -0xed, 0xf0, 0xa2, 0x1d, 0x77, 0xad, 0xa5, 0x1f, 0x40, 0x65, 0x38, 0xac, 0x18, 0x1b, 0xc3, 0x9e, -0xa0, 0x9c, 0x9f, 0x08, 0x1f, 0x18, 0x88, 0x5f, 0x45, 0xdc, 0x68, 0xbb, 0x3d, 0xf4, 0xc3, 0x5f, -0x63, 0xff, 0x94, 0xe3, 0xdb, 0x97, 0x28, 0x4d, 0x59, 0xb9, 0x4c, 0x18, 0x87, 0x37, 0xc4, 0x2f, -0xc8, 0x55, 0x49, 0x70, 0x44, 0x5e, 0x18, 0xd5, 0xea, 0x6c, 0xc6, 0x6f, 0x1b, 0xe2, 0x1f, 0xbd, -0x70, 0xc2, 0xb3, 0xa9, 0xd7, 0xa0, 0x98, 0x7b, 0x0d, 0x3d, 0x2a, 0xee, 0x48, 0x11, 0xbd, 0xf6, -0x9a, 0x58, 0x24, 0x5e, 0x8a, 0xeb, 0xdc, 0xcf, 0x2b, 0x3a, 0x06, 0x01, 0xec, 0x1d, 0x19, 0xd7, -0x27, 0xf3, 0xe2, 0x21, 0x34, 0xea, 0x9b, 0xba, 0xa6, 0x51, 0xd4, 0x5d, 0x10, 0x4e, 0x5c, 0xf2, -0xe3, 0x3e, 0x80, 0xb8, 0x82, 0x4a, 0xba, 0xc0, 0xfa, 0x49, 0xb2, 0xd3, 0x51, 0xff, 0x0d, 0x2a, -0x33, 0x7a, 0x54, 0x11, 0xb5, 0xc8, 0xc7, 0x95, 0x58, 0x40, 0xb4, 0x0c, 0x0c, 0x11, 0x1a, 0x54, -0xff, 0x0d, 0x69, 0x48, 0x55, 0xa7, 0xd4, 0x94, 0xfe, 0xe1, 0x45, 0x24, 0x45, 0x1f, 0xc0, 0x79, -0xb4, 0x1c, 0xc8, 0xf6, 0x47, 0xb9, 0xab, 0x0d, 0xf2, 0xdc, 0x6d, 0x50, 0x50, 0xd6, 0x01, 0x46, -0x5b, 0x31, 0xf3, 0xc1, 0xfc, 0x16, 0xa0, 0xc4, 0xec, 0xef, 0x00, 0x13, 0xfa, 0x89, 0x4f, 0xe6, -0x0a, 0x92, 0x50, 0x51, 0xf0, 0xf8, 0x3a, 0xc0, 0x1c, 0xfa, 0xed, 0x26, 0xc0, 0x50, 0xb6, 0xa9, -0x64, 0x37, 0x2f, 0x5b, 0x87, 0x61, 0x96, 0xd0, 0x15, 0x0e, 0x7b, 0x98, 0xc2, 0x64, 0xf3, 0xb2, -0x81, 0x5e, 0x1c, 0x5c, 0x28, 0xf4, 0xb5, 0x83, 0x99, 0x6f, 0x5c, 0x9a, 0xfd, 0x48, 0x6c, 0x44, -0x8f, 0x04, 0xda, 0x21, 0xa7, 0xb4, 0x1d, 0x2c, 0x38, 0xa7, 0x5c, 0x71, 0x7f, 0x45, 0x31, 0x59, -0x77, 0xfc, 0xc7, 0x9f, 0xfd, 0xe3, 0x91, 0x40, 0x31, 0x7e, 0x3d, 0xf6, 0x0f, 0xc7, 0x96, 0x5e, -0x99, 0x80, 0xea, 0xdf, 0x6e, 0x52, 0x47, 0x36, 0xb7, 0x9b, 0x9c, 0xa1, 0xef, 0x1c, 0x6f, 0x7c, -0xb6, 0xfa, 0xda, 0x2e, 0x75, 0x78, 0x73, 0xbb, 0xdf, 0x13, 0xfc, 0xf3, 0x9f, 0x37, 0x6e, 0x55, -0x3c, 0xee, 0x59, 0xef, 0xac, 0x7b, 0x71, 0xd3, 0xf8, 0xd3, 0xb8, 0x23, 0x7a, 0xce, 0x0e, 0xec, -0xfe, 0xd6, 0xf8, 0x46, 0x67, 0xf5, 0x3f, 0x1e, 0x59, 0x7a, 0xad, 0x15, 0x14, 0x5b, 0x59, 0x3b, -0x18, 0x17, 0xff, 0xb6, 0x17, 0xb0, 0x14, 0xd3, 0xff, 0xfe, 0x18, 0x3c, 0x6f, 0x3c, 0xdb, 0x69, -0x71, 0xdf, 0x35, 0xf2, 0x2c, 0x52, 0x2b, 0x88, 0x01, 0xb8, 0x67, 0xfd, 0x35, 0x86, 0x75, 0x58, -0x3c, 0x39, 0xc3, 0x5b, 0xdb, 0xcd, 0x1e, 0x50, 0x8c, 0x94, 0x07, 0xd5, 0x26, 0x74, 0xb9, 0x49, -0x75, 0xe0, 0xbe, 0xd3, 0x2e, 0x39, 0x0c, 0xe1, 0x7d, 0x20, 0x1f, 0x1a, 0xec, 0x8c, 0xf8, 0x6b, -0xab, 0xaf, 0xb4, 0xaa, 0x4e, 0x0b, 0x96, 0x2d, 0x39, 0xe1, 0xf0, 0xfa, 0xce, 0x52, 0x6c, 0x87, -0xf1, 0x6b, 0x47, 0xa3, 0x1b, 0x48, 0x67, 0xd7, 0x8e, 0xa3, 0x2e, 0x8b, 0xbd, 0x03, 0xe1, 0x9d, -0xc6, 0x41, 0x23, 0x67, 0xdb, 0x4d, 0x65, 0x18, 0x8e, 0x23, 0x8c, 0x33, 0x13, 0x57, 0x77, 0xcd, -0x03, 0x64, 0x0b, 0xa5, 0x1d, 0x84, 0x16, 0x81, 0x47, 0xe7, 0x2d, 0x05, 0xd7, 0x03, 0x4b, 0x21, -0xfa, 0xe2, 0xe2, 0x87, 0xab, 0xc1, 0x48, 0x3a, 0x1c, 0x76, 0x07, 0x1f, 0xae, 0x41, 0x6c, 0xb8, -0x1d, 0x6c, 0x58, 0xa2, 0xcd, 0xf5, 0x3a, 0x38, 0x8a, 0xea, 0xc0, 0xd1, 0xd8, 0x81, 0x7b, 0x44, -0xbb, 0x0c, 0x50, 0x28, 0x2f, 0x4d, 0x42, 0xb7, 0xea, 0xa8, 0xc3, 0xfc, 0x02, 0x74, 0x7a, 0x84, -0x50, 0x93, 0xad, 0xd6, 0xfe, 0x3c, 0x48, 0xfa, 0xd8, 0x79, 0x8e, 0x17, 0x36, 0x6c, 0x53, 0xcc, -0x34, 0x7a, 0xe1, 0x36, 0xda, 0x4b, 0xfb, 0x27, 0x59, 0xf7, 0x11, 0x6b, 0x5c, 0xe0, 0x33, 0x22, -0x61, 0x93, 0xc7, 0x5e, 0x54, 0xab, 0xde, 0x28, 0x8a, 0xaa, 0xd7, 0x58, 0x6b, 0xdd, 0x78, 0xb4, -0x6f, 0x1a, 0x6e, 0xb5, 0xb3, 0x9c, 0xd2, 0xb0, 0xa0, 0xc1, 0xb1, 0xd9, 0x77, 0xb6, 0x1c, 0x32, -0xbf, 0x6a, 0xa6, 0xe5, 0x10, 0xd2, 0x72, 0x1a, 0xd1, 0xf4, 0x76, 0x55, 0xce, 0x80, 0xab, 0x1e, -0xd2, 0x21, 0xc3, 0x16, 0x36, 0xe2, 0xb6, 0xf0, 0xf7, 0xc1, 0x8e, 0xfb, 0x1c, 0x41, 0x55, 0x3b, -0xdd, 0x7a, 0x22, 0x34, 0xc0, 0xfd, 0x2c, 0x08, 0x52, 0xf0, 0x3d, 0xf5, 0x4b, 0x41, 0xa8, 0xab, -0x42, 0xd8, 0x4b, 0xb1, 0x15, 0x71, 0xeb, 0x52, 0x17, 0x37, 0x2f, 0x9e, 0x00, 0x8f, 0xfd, 0x59, -0xfb, 0x12, 0x0d, 0x0f, 0x98, 0x08, 0x3f, 0xe7, 0x77, 0x43, 0xa9, 0x14, 0xfe, 0x9b, 0x4f, 0x20, -0x1c, 0x04, 0xc4, 0x3b, 0xec, 0xf2, 0x12, 0xc5, 0x8a, 0xf9, 0xc8, 0x52, 0x10, 0x8c, 0x1b, 0x82, -0x5a, 0xbc, 0x8f, 0xb0, 0x2f, 0x7c, 0xf8, 0x94, 0x3c, 0x18, 0x86, 0xd2, 0xb5, 0x50, 0x21, 0x49, -0xd8, 0xdf, 0xb5, 0x17, 0x11, 0x22, 0xba, 0x7c, 0x45, 0x20, 0x97, 0x4a, 0x3f, 0x0c, 0x21, 0x36, -0x39, 0x47, 0x0a, 0xaa, 0x9f, 0x0c, 0x54, 0x3f, 0x44, 0x63, 0x54, 0x67, 0x5f, 0x92, 0x81, 0xf6, -0xce, 0x14, 0xb4, 0x3f, 0x85, 0x58, 0x51, 0xc3, 0x62, 0x4c, 0xa7, 0x7d, 0x2d, 0x71, 0x42, 0x3c, -0xa8, 0xb9, 0xed, 0x33, 0xec, 0x70, 0xcf, 0x25, 0xfd, 0x6e, 0xf6, 0x56, 0x29, 0xca, 0xfb, 0xbf, -0xd8, 0xfd, 0xcf, 0xe9, 0xb8, 0x6f, 0x78, 0xff, 0x59, 0xd4, 0xd0, 0xb4, 0x6d, 0x2d, 0xc8, 0x35, -0xda, 0xae, 0x91, 0xa5, 0x59, 0x7d, 0xf9, 0x93, 0x94, 0x0e, 0x44, 0x1c, 0x45, 0x07, 0xe9, 0xd8, -0x77, 0xb8, 0xc8, 0x8a, 0xaf, 0xb0, 0x6c, 0xc2, 0x36, 0x55, 0x03, 0xdf, 0x3d, 0xf9, 0xfc, 0xcf, -0x93, 0xd0, 0x2b, 0x1d, 0x1f, 0x54, 0x9c, 0x48, 0xf7, 0xcc, 0x25, 0xeb, 0x24, 0x52, 0x65, 0x8c, -0x6c, 0x6a, 0x13, 0x0e, 0x9d, 0xe3, 0xaa, 0x95, 0x19, 0x9b, 0x8e, 0x1b, 0xbf, 0x7b, 0x32, 0x09, -0xf6, 0xa8, 0x06, 0x71, 0xc0, 0xd0, 0xf9, 0x93, 0xe3, 0xf1, 0xb7, 0xf8, 0x2c, 0xea, 0x29, 0x4d, -0x9f, 0xeb, 0x66, 0x91, 0x16, 0xc3, 0x0c, 0x09, 0x0f, 0xa7, 0xce, 0x67, 0xb9, 0xaf, 0x01, 0xfb, -0x90, 0x3c, 0x20, 0xb0, 0x3b, 0xd7, 0x26, 0xdc, 0x39, 0x92, 0x84, 0x43, 0x27, 0x2a, 0x58, 0xc6, -0xd9, 0x89, 0x7e, 0x85, 0x6d, 0xa1, 0x90, 0xe4, 0x9b, 0x91, 0x4a, 0x3b, 0x28, 0xb4, 0x0a, 0x81, -0x01, 0xcb, 0x22, 0xcd, 0x38, 0xd2, 0xa2, 0xc4, 0x35, 0xd7, 0x90, 0xbc, 0x17, 0x02, 0x48, 0xa7, -0x07, 0x14, 0xd2, 0x15, 0x2c, 0x7c, 0x51, 0xf6, 0xd9, 0x75, 0xa5, 0xb6, 0x73, 0xa9, 0x6e, 0x45, -0x92, 0xeb, 0x5c, 0x0d, 0xb1, 0x76, 0xa9, 0x32, 0x71, 0xed, 0x27, 0xc7, 0x11, 0xf6, 0x5e, 0x96, -0x3f, 0xc7, 0x75, 0x34, 0xda, 0x07, 0x14, 0xb2, 0x06, 0x14, 0x70, 0x0e, 0xc9, 0xcf, 0xd2, 0x4d, -0x36, 0xd7, 0xc4, 0x19, 0x1b, 0xa2, 0xf2, 0xe0, 0x04, 0xdb, 0x61, 0xb9, 0x61, 0xff, 0x1c, 0xd7, -0xd5, 0xe8, 0x5a, 0x87, 0x71, 0x43, 0x10, 0xc0, 0x36, 0xb4, 0xc9, 0x03, 0x4a, 0xab, 0x16, 0xeb, -0x15, 0xd6, 0xa4, 0x7f, 0x43, 0xa9, 0xe1, 0x5a, 0xfb, 0x59, 0xbf, 0x1f, 0xd6, 0x1a, 0xcb, 0x6c, -0x88, 0xb5, 0x62, 0x89, 0xd7, 0xed, 0xb6, 0xc4, 0x53, 0xf6, 0x90, 0x22, 0xd9, 0xc3, 0x8e, 0x7b, -0xe3, 0x37, 0x66, 0xe6, 0x65, 0x1f, 0x08, 0x0f, 0x29, 0x32, 0xe6, 0x64, 0x54, 0x1e, 0x15, 0xf9, -0xdc, 0x5c, 0x33, 0xf9, 0xd9, 0xf0, 0xf3, 0x88, 0xd1, 0xba, 0x4d, 0x07, 0x59, 0xba, 0x3b, 0x46, -0xfa, 0x6d, 0x1a, 0xb6, 0x09, 0xbc, 0x20, 0x6d, 0x51, 0x66, 0xae, 0x66, 0x51, 0x26, 0x9f, 0x2d, -0xca, 0xd8, 0x04, 0x87, 0x6a, 0x77, 0xd6, 0xe8, 0xba, 0x04, 0x59, 0x36, 0x3a, 0x90, 0xc2, 0x1e, -0x04, 0xee, 0x40, 0xa7, 0x14, 0x42, 0x66, 0x9c, 0xd2, 0x7b, 0x5d, 0x29, 0xb9, 0xf1, 0xf9, 0xe8, -0x83, 0x72, 0x3e, 0x2f, 0x7b, 0x99, 0xf4, 0x85, 0x90, 0x3e, 0x32, 0x87, 0xd9, 0x09, 0x7c, 0x0e, -0xeb, 0x8f, 0x0d, 0x26, 0x7c, 0x08, 0x13, 0x10, 0x9f, 0x33, 0x80, 0xd0, 0x76, 0x67, 0x3e, 0x54, -0x14, 0x56, 0xaf, 0x17, 0x55, 0xcd, 0xd4, 0x21, 0x32, 0xf5, 0x52, 0x5a, 0x87, 0x88, 0xcc, 0x76, -0x8e, 0xce, 0x68, 0xf6, 0x26, 0xec, 0xac, 0x57, 0x70, 0x25, 0x52, 0x55, 0x66, 0x5a, 0x73, 0x38, -0x8a, 0xc4, 0xff, 0x09, 0x09, 0xcb, 0x83, 0x21, 0x88, 0xe2, 0xea, 0x89, 0x29, 0x79, 0x3e, 0x37, -0x98, 0xc7, 0x42, 0x0f, 0x06, 0x21, 0x8a, 0x2e, 0xcb, 0x58, 0x18, 0x5d, 0x31, 0xb2, 0x0f, 0x8c, -0xeb, 0x7e, 0xff, 0x83, 0xa4, 0x0d, 0xd9, 0x8c, 0xef, 0x18, 0x58, 0x84, 0x9e, 0x1b, 0xc2, 0x5b, -0xd8, 0x66, 0xd0, 0x47, 0x29, 0x9b, 0x41, 0x49, 0xd0, 0xfb, 0x19, 0xbf, 0xd3, 0xec, 0x03, 0x91, -0x34, 0x3e, 0xeb, 0x1d, 0xd3, 0xeb, 0x05, 0x25, 0x3d, 0x62, 0x85, 0x31, 0x17, 0xdc, 0xd7, 0x6e, -0x4d, 0xe1, 0x6d, 0x85, 0x2f, 0x35, 0x6c, 0xbb, 0x59, 0x77, 0xa8, 0x66, 0x75, 0x87, 0xec, 0x54, -0x94, 0x3a, 0x34, 0x4b, 0x59, 0x3c, 0x46, 0x15, 0x08, 0x89, 0xd9, 0x76, 0x1e, 0xd9, 0xfb, 0x8d, -0x1e, 0x8d, 0xfe, 0x0c, 0xcb, 0xce, 0x4f, 0xe7, 0x59, 0xa8, 0x59, 0x00, 0xc9, 0x68, 0x10, 0x4b, -0xea, 0x2d, 0x40, 0xd5, 0x05, 0x04, 0xa7, 0xad, 0xe0, 0xf2, 0x5d, 0x54, 0xe1, 0xa8, 0x2d, 0xaa, -0x57, 0xcf, 0x31, 0x6f, 0xde, 0x05, 0x6d, 0xfd, 0x04, 0x2a, 0xa5, 0xb2, 0xaa, 0x85, 0x11, 0xf5, -0xec, 0xc2, 0x6a, 0xf5, 0xdd, 0xf2, 0xa0, 0xbd, 0x8e, 0xe6, 0x4e, 0xbb, 0xc9, 0x61, 0x8d, 0x0c, -0xda, 0xc3, 0xcc, 0x5b, 0x7c, 0xa6, 0xbc, 0x58, 0x3d, 0xdb, 0x18, 0xd9, 0xb5, 0xf8, 0x60, 0x6d, -0x17, 0xeb, 0xb8, 0xc0, 0xaf, 0xe6, 0xc8, 0xa0, 0x1c, 0xae, 0x28, 0x56, 0xdf, 0x6d, 0xac, 0x7e, -0x71, 0xc9, 0xa1, 0x68, 0x57, 0x78, 0x57, 0xed, 0x8b, 0xd1, 0x58, 0xb0, 0xc3, 0x34, 0xb6, 0xd8, -0x3f, 0x4b, 0x31, 0xf9, 0x67, 0xed, 0x08, 0xfa, 0x66, 0xc5, 0x42, 0x1d, 0xa6, 0x53, 0x4b, 0xca, -0xee, 0x52, 0x4c, 0x65, 0x77, 0xed, 0x0c, 0x95, 0xde, 0x85, 0x6d, 0xe6, 0x96, 0xd8, 0xa3, 0xa9, -0xb6, 0x90, 0xd6, 0x59, 0xd6, 0x70, 0x46, 0x27, 0x60, 0x5a, 0x9b, 0x3a, 0x6a, 0x4a, 0x11, 0xab, -0x2a, 0x9b, 0xf5, 0x76, 0x88, 0xec, 0xd4, 0xf8, 0xef, 0x3a, 0x1d, 0x3c, 0x85, 0x70, 0x7c, 0xac, -0x43, 0x7d, 0x97, 0x74, 0x44, 0xda, 0x3b, 0xd4, 0x33, 0xca, 0x9c, 0x03, 0xad, 0x60, 0xeb, 0xc8, -0x1d, 0xc1, 0xfe, 0xee, 0xb4, 0xee, 0x6f, 0x85, 0xdc, 0x0e, 0xd3, 0x70, 0x2b, 0xe4, 0x77, 0xd5, -0x68, 0xf0, 0xf2, 0x1c, 0xee, 0x0e, 0x67, 0xa8, 0xb4, 0x42, 0x84, 0x3c, 0x61, 0x7c, 0xec, 0xe8, -0x96, 0xad, 0xf6, 0x62, 0xf5, 0x0c, 0xdd, 0x07, 0x96, 0xdd, 0x15, 0xfd, 0x29, 0xb5, 0x29, 0x7a, -0x94, 0x5a, 0x10, 0xfd, 0x99, 0xa8, 0xc1, 0x74, 0x0f, 0xa5, 0xb8, 0xb7, 0x06, 0xc7, 0x32, 0xd5, -0xbb, 0x73, 0xb9, 0x77, 0x8b, 0x91, 0x4a, 0x4b, 0xf7, 0xef, 0xb4, 0x4d, 0xdf, 0xbf, 0x2b, 0x27, -0xd5, 0xe1, 0x94, 0x0e, 0x1f, 0xd6, 0x53, 0x49, 0x1a, 0x1e, 0xdb, 0x79, 0xb5, 0xac, 0xe5, 0xfe, -0x4d, 0x66, 0x34, 0x32, 0x21, 0x35, 0x66, 0x80, 0x39, 0x2c, 0xbd, 0x72, 0x35, 0x13, 0x1a, 0xba, -0x28, 0x39, 0x84, 0x1e, 0xb6, 0x8c, 0x9e, 0x25, 0xd2, 0xc4, 0x24, 0x7c, 0x82, 0xcb, 0xda, 0xfa, -0x1a, 0x04, 0x59, 0xe3, 0xa5, 0xc9, 0x7c, 0x11, 0xd1, 0x9e, 0x02, 0x3b, 0x69, 0x54, 0xd8, 0x3e, -0x7f, 0x09, 0x3c, 0xa6, 0x98, 0xd8, 0xbd, 0x31, 0x93, 0x36, 0x45, 0x0f, 0xdc, 0x51, 0xbf, 0x63, -0x16, 0x18, 0x11, 0x53, 0x36, 0x23, 0x86, 0xfb, 0x19, 0xf4, 0x3b, 0xfa, 0x58, 0xdf, 0xa0, 0xb9, -0x84, 0xd6, 0x7d, 0xdc, 0x87, 0xab, 0xd3, 0xe5, 0x7c, 0x38, 0x6d, 0x9f, 0x38, 0x68, 0xe7, 0xf3, -0xab, 0xe9, 0x4b, 0x42, 0x73, 0xf9, 0x7c, 0xd2, 0x2e, 0x7e, 0x80, 0x4f, 0x2c, 0x2f, 0x2b, 0x46, -0xdc, 0x1b, 0x0f, 0x64, 0xf6, 0x50, 0x59, 0xe8, 0x2d, 0x2c, 0xc8, 0xb4, 0x7b, 0x7e, 0x58, 0x0a, -0xe8, 0x6b, 0xcd, 0x6b, 0x8d, 0xf4, 0x60, 0x98, 0xed, 0xa4, 0x2d, 0x17, 0xc7, 0xcc, 0xb1, 0x1a, -0x5c, 0x82, 0x9b, 0x15, 0xe1, 0x4e, 0x36, 0x14, 0xc6, 0xcd, 0xf7, 0x07, 0x49, 0x63, 0x0a, 0xd5, -0x10, 0x77, 0xd7, 0x42, 0xc7, 0xd7, 0x53, 0x78, 0x81, 0x5e, 0x03, 0x26, 0xe1, 0x04, 0x84, 0x1b, -0xa4, 0xf0, 0x02, 0x75, 0xdf, 0x9d, 0xf1, 0x02, 0x6f, 0x8e, 0x5c, 0x02, 0x2f, 0x15, 0x47, 0xe1, -0x25, 0xb1, 0x96, 0xc5, 0xb9, 0x29, 0x54, 0xb8, 0x44, 0xaf, 0xd5, 0xf0, 0x79, 0x7f, 0x50, 0xeb, -0x35, 0x1b, 0xe2, 0xb1, 0x79, 0xd8, 0x6b, 0x6c, 0xff, 0x28, 0x6e, 0xe2, 0x9a, 0x59, 0xe5, 0xba, -0xc5, 0xa4, 0x7f, 0x04, 0xb1, 0x7d, 0x25, 0x7d, 0x8e, 0xca, 0x9a, 0x58, 0x6d, 0xfa, 0xfe, 0x24, -0x4b, 0xe8, 0x29, 0xbd, 0x3b, 0xb7, 0xda, 0x1c, 0xc3, 0x36, 0xb0, 0x06, 0x0c, 0x97, 0x99, 0xf4, -0xdd, 0xba, 0xea, 0x1d, 0x9d, 0x29, 0x5c, 0xa3, 0x28, 0xa8, 0x9e, 0x9c, 0xb1, 0x2b, 0x93, 0x06, -0xa2, 0x2c, 0x2f, 0x6b, 0x13, 0x18, 0xca, 0xd7, 0x71, 0x82, 0x4a, 0xcb, 0x06, 0x44, 0xbc, 0xee, -0xd9, 0xa4, 0x8f, 0x21, 0x5b, 0xc7, 0x79, 0x09, 0xf1, 0xec, 0x55, 0xd9, 0x35, 0x90, 0x67, 0x38, -0x24, 0xd5, 0x18, 0xc2, 0x52, 0x8d, 0x31, 0x9a, 0xed, 0xd4, 0x72, 0xcb, 0xe1, 0x7c, 0x2a, 0x45, -0x3e, 0x4d, 0xdb, 0xe4, 0xac, 0x6e, 0xdb, 0xc8, 0xfa, 0x66, 0x29, 0x69, 0x93, 0x23, 0x55, 0x97, -0xa4, 0x31, 0x9d, 0xcc, 0xad, 0xbe, 0x0e, 0x90, 0xfd, 0x0a, 0x51, 0x4d, 0xd2, 0x59, 0x84, 0xd2, -0x94, 0xfe, 0x51, 0x05, 0x8c, 0x5b, 0x67, 0xe4, 0xd8, 0x97, 0xca, 0x11, 0x57, 0x8d, 0xd5, 0x6b, -0x5c, 0x7c, 0x49, 0x3a, 0xaa, 0xdd, 0x21, 0x1c, 0x16, 0xe7, 0xe2, 0x98, 0x87, 0xc2, 0xdf, 0xc8, -0x72, 0xd1, 0xd5, 0xd4, 0xcd, 0x9a, 0x88, 0xad, 0x59, 0xab, 0x2f, 0x60, 0xed, 0x08, 0x90, 0x4d, -0x32, 0x63, 0xc5, 0x08, 0xc3, 0x0e, 0x4d, 0x1f, 0x6f, 0xd8, 0xb6, 0xf6, 0xf4, 0xdb, 0xdf, 0x76, -0x58, 0x14, 0x57, 0x5a, 0x5b, 0xcf, 0xfb, 0xde, 0x2c, 0x39, 0x5c, 0x3f, 0xf4, 0xdc, 0x71, 0x7b, -0xd5, 0x0b, 0x27, 0xbe, 0xf3, 0x77, 0x7c, 0x1f, 0xb8, 0x9f, 0xef, 0x27, 0x48, 0xe3, 0xbf, 0x95, -0x6f, 0xf9, 0x48, 0x8e, 0xed, 0x2d, 0x25, 0x6d, 0x13, 0xc7, 0x01, 0x54, 0x0e, 0x95, 0x1b, 0x6d, -0x97, 0x8e, 0x8a, 0x33, 0x40, 0x21, 0x87, 0x34, 0x1d, 0x27, 0x9a, 0xbd, 0x07, 0xb0, 0x3d, 0x57, -0x38, 0x65, 0x49, 0x8f, 0x01, 0xdd, 0xef, 0xcf, 0x68, 0xdb, 0xae, 0x54, 0xdb, 0x48, 0xf2, 0x6a, -0xc8, 0xa0, 0x9e, 0x96, 0x23, 0x45, 0x0d, 0xac, 0x91, 0x24, 0x6b, 0x48, 0x52, 0xcf, 0x96, 0xb6, -0x82, 0x11, 0x67, 0xdf, 0x39, 0xf6, 0x67, 0xa9, 0x17, 0x7c, 0xad, 0x60, 0xc2, 0x19, 0xc9, 0x36, -0xa0, 0x89, 0x23, 0x58, 0x6e, 0x97, 0xce, 0x3d, 0xff, 0x73, 0xb6, 0x02, 0xcd, 0x7c, 0x25, 0xf6, -0x48, 0xe9, 0x03, 0x74, 0xf6, 0x17, 0xba, 0x24, 0x4d, 0x90, 0xec, 0xa3, 0x74, 0xc1, 0x8b, 0xfb, -0xde, 0x22, 0x43, 0x38, 0xa1, 0xf4, 0xcf, 0x28, 0xf7, 0x47, 0xa9, 0x72, 0x1d, 0xed, 0x52, 0xa9, -0x1c, 0xf1, 0xbb, 0xc0, 0x78, 0x3a, 0x6c, 0x0d, 0x83, 0xe3, 0x09, 0xa9, 0xc7, 0x81, 0x18, 0x1d, -0x9d, 0x75, 0x46, 0x33, 0x3a, 0x74, 0xc8, 0x32, 0xb1, 0x3d, 0x22, 0x3f, 0x62, 0x5f, 0x32, 0x36, -0xa0, 0xd7, 0x05, 0xfa, 0xf9, 0x56, 0x98, 0x05, 0xcd, 0xf8, 0x9e, 0x0d, 0x2d, 0x74, 0xff, 0xc2, -0x12, 0x4f, 0x05, 0x6c, 0x5d, 0x82, 0xec, 0xf9, 0x1e, 0xc3, 0x31, 0x6d, 0x97, 0x2e, 0xd0, 0xf9, -0x16, 0x7f, 0x99, 0x14, 0xf7, 0x5a, 0x59, 0xdf, 0xd7, 0xea, 0xe2, 0x48, 0x9a, 0x87, 0x07, 0x99, -0xc3, 0x6c, 0x01, 0xce, 0xeb, 0xf9, 0x6c, 0xa1, 0x42, 0xcc, 0x82, 0xb7, 0x32, 0xb3, 0x91, 0x6b, -0xa8, 0x9f, 0x31, 0xb9, 0xd1, 0xf6, 0x2c, 0xbe, 0x49, 0x1d, 0xfa, 0x58, 0xc4, 0xc2, 0xdd, 0xcf, -0x18, 0x8e, 0x2c, 0xe6, 0x53, 0xa8, 0xa5, 0x17, 0x21, 0x8e, 0xbb, 0x6f, 0x27, 0xf6, 0xd2, 0x18, -0xce, 0xf7, 0xe3, 0x0a, 0x49, 0xe7, 0xeb, 0x53, 0xbb, 0x10, 0xe2, 0x1f, 0xc7, 0xf6, 0x3c, 0x40, -0xeb, 0x09, 0xdf, 0x46, 0x7e, 0x4b, 0xf8, 0xae, 0x12, 0x78, 0xe9, 0x73, 0x05, 0xf5, 0xcf, 0x53, -0x0b, 0x92, 0x26, 0xac, 0x5b, 0x9e, 0xb5, 0x0a, 0x6c, 0x5d, 0x26, 0x53, 0x95, 0xfa, 0x3b, 0x85, -0xce, 0x87, 0x67, 0x75, 0x82, 0xc1, 0x84, 0xbf, 0x96, 0x55, 0x00, 0xd3, 0xdd, 0xa6, 0x91, 0xc1, -0x78, 0x19, 0x49, 0xac, 0xe2, 0xce, 0x22, 0x95, 0xc2, 0xaf, 0x6b, 0x07, 0x83, 0x15, 0xd8, 0x93, -0xbe, 0xec, 0x5f, 0x47, 0x07, 0xaa, 0xd1, 0x65, 0x0a, 0x64, 0xff, 0xba, 0x7e, 0x4b, 0x75, 0x85, -0xe1, 0xfc, 0xd2, 0xcd, 0xa1, 0x52, 0x38, 0x8f, 0xdf, 0x7d, 0xa6, 0xf3, 0xd1, 0x81, 0x1a, 0xc5, -0x46, 0xb5, 0xa8, 0xc0, 0x72, 0x71, 0xbc, 0x8c, 0x54, 0x17, 0x5f, 0x55, 0xd5, 0xe5, 0x4d, 0x10, -0xfa, 0xcd, 0x26, 0xd0, 0xcb, 0x24, 0xf7, 0x43, 0x20, 0xbb, 0xc4, 0x14, 0x5d, 0x1c, 0x5e, 0xbc, -0x75, 0xa3, 0xfc, 0x4c, 0xc0, 0x90, 0x72, 0xcf, 0x5b, 0x0c, 0xc6, 0x00, 0xe8, 0x7c, 0x42, 0x17, -0x62, 0x98, 0x4e, 0xae, 0x3b, 0xcd, 0x9e, 0x62, 0x75, 0x2c, 0xbc, 0x58, 0xb1, 0x05, 0xb2, 0x1e, -0xa9, 0xb1, 0xd6, 0x80, 0xb4, 0xca, 0xed, 0xc9, 0x79, 0x0a, 0xe9, 0xe9, 0xd2, 0x2a, 0x61, 0xcd, -0xf7, 0xf9, 0xbf, 0xfd, 0xe5, 0xcf, 0x27, 0x96, 0x4a, 0xd5, 0xf7, 0xc0, 0xb9, 0x5a, 0x29, 0x04, -0x97, 0x37, 0x87, 0xba, 0xad, 0xe3, 0xad, 0x9b, 0x83, 0x5f, 0x7e, 0xba, 0x15, 0xec, 0xa2, 0xaf, -0x1e, 0xe0, 0xbe, 0x9a, 0xe3, 0x45, 0xf8, 0x83, 0x8f, 0xd1, 0x6b, 0x4b, 0xf7, 0x4e, 0x9d, 0xe8, -0x9d, 0x86, 0xd7, 0xd5, 0xe3, 0xd4, 0x86, 0xb2, 0x7b, 0xad, 0x55, 0xaa, 0x1a, 0x87, 0xe9, 0xdd, -0xb1, 0x08, 0xee, 0xfe, 0x67, 0x66, 0xf4, 0x35, 0xcf, 0xb5, 0xe7, 0x36, 0xa6, 0xe6, 0x9a, 0x98, -0x05, 0xa1, 0xed, 0x38, 0x26, 0xf9, 0x33, 0x62, 0xbc, 0x96, 0x86, 0x19, 0x33, 0x69, 0x86, 0x08, -0xe3, 0x84, 0x34, 0x36, 0x36, 0x31, 0x2f, 0x9e, 0xfb, 0x69, 0x7a, 0x5e, 0x58, 0x45, 0x5c, 0x7b, -0x24, 0xb6, 0x1a, 0xa4, 0x78, 0x5e, 0xf5, 0xa5, 0xac, 0x54, 0x3a, 0x3b, 0xc7, 0x1c, 0x57, 0x72, -0x31, 0xac, 0x70, 0x46, 0x39, 0xd7, 0x52, 0xe5, 0x78, 0x22, 0x0d, 0x5b, 0x7b, 0x40, 0xcc, 0x18, -0x5f, 0xbe, 0xc8, 0x89, 0xe5, 0xb5, 0xe7, 0xa6, 0xa0, 0x92, 0x21, 0x47, 0xdc, 0x33, 0x6f, 0xb7, -0xa4, 0xe6, 0x18, 0x62, 0xcd, 0x37, 0x52, 0x33, 0x70, 0x11, 0x84, 0x13, 0xda, 0x77, 0x1f, 0xf7, -0x87, 0xd5, 0xff, 0x6e, 0xe3, 0x60, 0xd2, 0x8a, 0x33, 0x66, 0x98, 0xb8, 0x52, 0xf5, 0xa5, 0x6e, -0x8f, 0xa5, 0x5b, 0x17, 0x79, 0xb8, 0x21, 0xeb, 0x20, 0x7e, 0x1f, 0x49, 0x95, 0x02, 0x7b, 0x38, -0xc6, 0xea, 0x54, 0x0c, 0xd2, 0x32, 0x32, 0x23, 0xed, 0x33, 0x99, 0xb4, 0x2c, 0xed, 0x74, 0xd0, -0x01, 0x33, 0xfa, 0xc8, 0xe9, 0x05, 0x7b, 0x24, 0xa9, 0xcd, 0xe3, 0xe8, 0x6a, 0x30, 0xfb, 0x56, -0x83, 0x47, 0x8c, 0xd4, 0xf6, 0xff, 0x9a, 0xee, 0x2b, 0xd2, 0xa9, 0x16, 0xe0, 0x9e, 0xf2, 0xc4, -0x4d, 0xb8, 0xba, 0x5f, 0x54, 0x72, 0x10, 0x8a, 0x06, 0xec, 0xed, 0xb8, 0x67, 0x52, 0xae, 0x23, -0xce, 0x41, 0x25, 0xd5, 0x53, 0x05, 0x9c, 0xf6, 0xef, 0xd3, 0x35, 0x32, 0xf7, 0xa8, 0x8a, 0x49, -0xdc, 0xb9, 0xa4, 0x60, 0xe7, 0xef, 0xb7, 0x34, 0xcc, 0x1c, 0x29, 0x9b, 0xd6, 0x17, 0x97, 0xd2, -0xeb, 0x51, 0x62, 0x5c, 0xe6, 0xe5, 0x34, 0x2e, 0x43, 0xfa, 0x50, 0x59, 0x1b, 0x15, 0x59, 0x0a, -0x7a, 0xe0, 0x5d, 0x65, 0x6e, 0x14, 0xa9, 0x71, 0x7c, 0xe6, 0xe0, 0x53, 0x80, 0x4f, 0xbe, 0xd7, -0x0d, 0xb9, 0x08, 0x35, 0x9f, 0x77, 0x34, 0x12, 0xb4, 0x16, 0xfa, 0x4f, 0x85, 0x76, 0x44, 0x7b, -0x17, 0x18, 0x95, 0x42, 0x79, 0x35, 0xe4, 0x32, 0x8f, 0x6d, 0x61, 0xc2, 0x04, 0xad, 0xc4, 0x5c, -0xa3, 0xe1, 0x66, 0x97, 0x34, 0xfd, 0xbd, 0xef, 0xa6, 0xe8, 0x72, 0x87, 0xa0, 0xcb, 0x2b, 0x34, -0x2d, 0x7e, 0x8a, 0x5e, 0x8b, 0x1f, 0xc1, 0x65, 0x75, 0x98, 0xf4, 0xee, 0xe1, 0x6f, 0x1b, 0x69, -0xf8, 0xd4, 0x6b, 0xc0, 0x4b, 0xdd, 0xdd, 0xa4, 0xee, 0x8f, 0x84, 0x6e, 0x43, 0x84, 0xc1, 0x1f, -0x21, 0x7e, 0xf0, 0x91, 0x62, 0x24, 0x9e, 0x14, 0x79, 0x76, 0x4a, 0xa7, 0x7c, 0x25, 0xe2, 0x67, -0xae, 0xd9, 0xbc, 0xee, 0xe2, 0x48, 0x73, 0xae, 0xaa, 0x80, 0xe8, 0xcf, 0x02, 0x86, 0xe8, 0x31, -0x6f, 0xb6, 0xd7, 0x54, 0x5a, 0xe5, 0x9d, 0x5d, 0x1a, 0x46, 0x4a, 0xd7, 0x28, 0x74, 0xd0, 0x85, -0xcc, 0x42, 0x3a, 0x36, 0xc1, 0x27, 0x56, 0xb7, 0xe8, 0x27, 0x03, 0xf8, 0x0e, 0x8e, 0x5a, 0x18, -0x7c, 0xf3, 0x23, 0x10, 0xfb, 0x7c, 0x0d, 0x7c, 0xe5, 0xf3, 0xd5, 0x50, 0x4f, 0x1a, 0xe3, 0x88, -0xaf, 0xe5, 0x41, 0x92, 0x2b, 0x37, 0x8b, 0xdb, 0xb4, 0xba, 0xfe, 0x8c, 0xae, 0x78, 0xa8, 0x70, -0xd6, 0xca, 0x9d, 0xc2, 0xbe, 0x5c, 0xed, 0x47, 0x86, 0x8b, 0x7a, 0x0b, 0x47, 0xb1, 0x36, 0x43, -0x30, 0x9e, 0xc3, 0xf8, 0x46, 0x98, 0xd3, 0x07, 0x15, 0x2b, 0x86, 0x85, 0x13, 0x7e, 0x0e, 0x73, -0x62, 0x58, 0xb6, 0x21, 0xec, 0x5b, 0x36, 0x3f, 0x6a, 0x88, 0x90, 0x75, 0x09, 0xfc, 0x8d, 0x92, -0x74, 0x17, 0xfe, 0xd6, 0x95, 0xad, 0x01, 0xd3, 0xfc, 0x25, 0x86, 0x06, 0xc5, 0x1c, 0xc6, 0x14, -0xf8, 0x04, 0xf5, 0x56, 0x8d, 0x04, 0xf6, 0x41, 0x7d, 0x1d, 0x90, 0x5d, 0x5e, 0x70, 0xe4, 0x7b, -0xe1, 0x7e, 0xd2, 0x1e, 0x96, 0x84, 0x1e, 0xc8, 0xf3, 0xc2, 0x7d, 0x4a, 0x9f, 0x1d, 0x4e, 0x0d, -0xda, 0x43, 0xbf, 0x7c, 0xf3, 0xd4, 0xb7, 0x4e, 0xad, 0x3b, 0xb5, 0xce, 0x1e, 0xaa, 0xfa, 0x75, -0x96, 0xbf, 0xea, 0x37, 0x51, 0x70, 0x44, 0xbb, 0x21, 0xd7, 0xd6, 0x77, 0xcf, 0x91, 0xa7, 0xdd, -0x86, 0x5f, 0x7f, 0xfb, 0x14, 0xbe, 0xcf, 0xf3, 0x3b, 0x5a, 0x1d, 0xae, 0x3e, 0xf5, 0xb4, 0x7d, -0x5d, 0x69, 0xc1, 0x44, 0xed, 0x9d, 0xbe, 0xde, 0x1f, 0x62, 0x6d, 0x0b, 0xb9, 0x9f, 0xf2, 0x9d, -0x4e, 0x0f, 0xb3, 0x5a, 0x06, 0xeb, 0xde, 0x33, 0x0a, 0xcd, 0x91, 0x07, 0x35, 0xad, 0xff, 0x50, -0x61, 0x70, 0xd4, 0xcf, 0x98, 0xad, 0x05, 0xbe, 0x90, 0xd7, 0x4c, 0xd6, 0xa7, 0x69, 0xce, 0x3e, -0xff, 0x67, 0x99, 0x9d, 0x26, 0x36, 0xd8, 0x05, 0xd2, 0x47, 0xc2, 0x0a, 0x90, 0xf4, 0x7e, 0xea, -0x84, 0xc1, 0x05, 0xc9, 0xc2, 0xe1, 0xc1, 0xe6, 0xb0, 0xa7, 0x4d, 0x2a, 0x65, 0x89, 0xc6, 0x4e, -0x9c, 0xb9, 0x6b, 0xa0, 0x90, 0xf4, 0xf1, 0x3f, 0x78, 0x58, 0xdc, 0xe1, 0xc6, 0x06, 0x56, 0xfc, -0x34, 0xba, 0x3e, 0x52, 0xd5, 0x1d, 0x1f, 0x19, 0x6c, 0xa6, 0x1b, 0x43, 0x13, 0xc6, 0x8a, 0x63, -0xac, 0x78, 0xea, 0x3b, 0x52, 0xdd, 0xa6, 0x70, 0x95, 0x22, 0xad, 0x35, 0xc8, 0x12, 0xd9, 0x84, -0x26, 0x1d, 0xdb, 0xc9, 0x2f, 0xd4, 0x80, 0xbc, 0xc4, 0x8e, 0xf9, 0xde, 0x46, 0xbf, 0xb6, 0xbe, -0xc6, 0x85, 0xa4, 0x89, 0x1b, 0xe1, 0x70, 0x01, 0x3e, 0x8c, 0xa9, 0x3c, 0xbf, 0x37, 0x03, 0x07, -0x63, 0x7b, 0x61, 0x0b, 0xd9, 0x84, 0x22, 0x6d, 0x0f, 0xac, 0xdd, 0xec, 0x50, 0x46, 0x9b, 0x33, -0x41, 0xa4, 0x66, 0x80, 0x0d, 0x19, 0x6d, 0xad, 0x2e, 0x48, 0xf4, 0xd3, 0xbe, 0x78, 0xdb, 0xfc, -0x6d, 0xf8, 0x58, 0x39, 0xff, 0x9f, 0xeb, 0xe0, 0x6c, 0x1b, 0x6c, 0x29, 0x42, 0x1c, 0x5a, 0x7d, -0x0b, 0xdf, 0x05, 0xea, 0xa9, 0x85, 0xfd, 0x60, 0x55, 0xdf, 0xa6, 0x14, 0xa4, 0x69, 0xd1, 0x8e, -0xa9, 0x30, 0xbf, 0x77, 0x8a, 0x42, 0xea, 0xbb, 0x55, 0x1f, 0xaa, 0x69, 0x0d, 0xbe, 0xd3, 0xe5, -0xba, 0x5b, 0x0f, 0x45, 0x31, 0x77, 0x1b, 0x47, 0xa8, 0x26, 0xdf, 0x9b, 0x51, 0x13, 0x80, 0xed, -0x77, 0xac, 0x0b, 0xef, 0x3b, 0x5c, 0x97, 0xab, 0x9f, 0x5a, 0x97, 0xbb, 0xd3, 0x75, 0x31, 0x62, -0x5d, 0xcc, 0x9f, 0xa1, 0x2e, 0x85, 0xb7, 0xee, 0x51, 0x3b, 0xee, 0x4b, 0xc1, 0xbb, 0x58, 0x55, -0xa2, 0x92, 0x39, 0x22, 0xe8, 0x66, 0xd9, 0xdc, 0x1d, 0x3f, 0xb5, 0x17, 0x6b, 0x63, 0xa8, 0x3f, -0x34, 0x65, 0xf3, 0xba, 0xd1, 0x65, 0x49, 0x63, 0x38, 0x74, 0x6e, 0x8c, 0x13, 0x3e, 0xda, 0xc6, -0xf8, 0x8d, 0x25, 0x83, 0xdf, 0x24, 0x7b, 0xb0, 0xcf, 0x0b, 0x52, 0x16, 0xf7, 0xba, 0x3b, 0x53, -0x39, 0x4c, 0xbe, 0xc5, 0x73, 0xac, 0x9a, 0xf4, 0xac, 0xea, 0x6d, 0xa2, 0xde, 0xa6, 0x36, 0xe9, -0x1d, 0x03, 0xe1, 0x36, 0x71, 0xe5, 0x5f, 0xfc, 0x62, 0x3f, 0xe4, 0xa8, 0x1f, 0x85, 0x8b, 0xd5, -0x8f, 0xc3, 0x1d, 0xea, 0x65, 0x7c, 0xae, 0x60, 0xe8, 0xd5, 0xa2, 0x30, 0xf6, 0xdd, 0xad, 0x3d, -0x72, 0x97, 0xfa, 0x76, 0x32, 0x1f, 0xfb, 0xe1, 0xdd, 0xd0, 0x87, 0xea, 0x45, 0xc4, 0x83, 0xc6, -0x6f, 0xea, 0x0b, 0x9d, 0x3d, 0x54, 0x96, 0xba, 0x0e, 0x88, 0x5b, 0x6a, 0x71, 0x0f, 0x8f, 0x34, -0x43, 0x86, 0x63, 0xae, 0xdf, 0xef, 0x86, 0xab, 0x0f, 0x56, 0xe9, 0xe8, 0xcb, 0xb5, 0x3a, 0xbb, -0x1a, 0x57, 0x85, 0x7e, 0x55, 0xd7, 0x6c, 0x57, 0xbd, 0x33, 0x65, 0x4d, 0x01, 0x0c, 0x4e, 0x96, -0x23, 0xfb, 0x0e, 0x69, 0xd3, 0x66, 0x3e, 0x80, 0xb3, 0xd8, 0x42, 0x0a, 0xd9, 0x85, 0x21, 0x82, -0x0b, 0xe1, 0x2c, 0xae, 0x96, 0x9f, 0x45, 0x9f, 0x8e, 0x54, 0xa7, 0x70, 0xe8, 0x12, 0xf0, 0x14, -0x19, 0xa4, 0xfd, 0x1b, 0xe3, 0xe6, 0x43, 0x6b, 0x0c, 0x26, 0xec, 0x9f, 0x77, 0x62, 0x6b, 0x0c, -0x66, 0xa1, 0x35, 0xfb, 0xe4, 0xc0, 0x82, 0xb0, 0x41, 0x7a, 0xa8, 0xda, 0x60, 0x0a, 0x63, 0x58, -0xf8, 0x35, 0x88, 0x21, 0xdd, 0x9b, 0x8d, 0x74, 0x2f, 0xc0, 0x3e, 0xb2, 0x4d, 0xc9, 0x79, 0x7f, -0x57, 0x9f, 0x77, 0xc2, 0xf6, 0x3f, 0x2f, 0x41, 0x79, 0xdc, 0x92, 0xcc, 0x7e, 0x20, 0x98, 0x45, -0x7a, 0xba, 0x36, 0xc4, 0x06, 0xe3, 0x46, 0x87, 0x47, 0xba, 0x80, 0x7d, 0x4f, 0xbf, 0x13, 0x9a, -0xc4, 0x7e, 0x18, 0xe9, 0x2a, 0xbf, 0x26, 0xaf, 0x4f, 0x1a, 0xf6, 0x8d, 0x08, 0x83, 0x89, 0xcf, -0xcb, 0xe7, 0xe8, 0x90, 0x22, 0x0c, 0xd7, 0xa3, 0xba, 0x5b, 0x42, 0x8f, 0x4e, 0x7b, 0x83, 0x0f, -0x77, 0x42, 0x2f, 0x94, 0x0b, 0xf9, 0x7e, 0xda, 0x15, 0x53, 0xf6, 0x76, 0x11, 0x12, 0x46, 0x8a, -0xa2, 0x52, 0xf4, 0x0b, 0xad, 0x58, 0xc7, 0x86, 0x2f, 0x10, 0x76, 0xfc, 0x08, 0x53, 0x54, 0x35, -0x1a, 0x1f, 0xf7, 0x62, 0x21, 0x25, 0xa9, 0xdd, 0xbb, 0x08, 0x9a, 0x58, 0x26, 0x3d, 0xe1, 0x4e, -0xaf, 0x38, 0xef, 0x61, 0x4a, 0xd5, 0x05, 0x85, 0xcc, 0x11, 0x35, 0x97, 0x6c, 0x85, 0x27, 0x56, -0xe0, 0x4c, 0x52, 0xa3, 0x6d, 0x86, 0x42, 0xa1, 0x3f, 0xba, 0xe2, 0xb4, 0x06, 0x51, 0x2a, 0xd9, -0x3a, 0x40, 0x23, 0xee, 0x62, 0xad, 0xb2, 0x9b, 0x38, 0x4e, 0x31, 0x32, 0xc2, 0x7b, 0x3a, 0x09, -0xc2, 0x79, 0x63, 0x9a, 0x17, 0x86, 0x7c, 0xc5, 0x34, 0xaf, 0x15, 0xe6, 0xe0, 0xee, 0x9a, 0xc5, -0x3a, 0x33, 0x4a, 0x58, 0x77, 0x00, 0xf3, 0x28, 0x28, 0x73, 0x52, 0xd6, 0xfa, 0x98, 0xd3, 0x91, -0xed, 0xa8, 0x7a, 0x8e, 0x13, 0xae, 0xa0, 0xec, 0x41, 0x18, 0x6a, 0xbd, 0x49, 0x2b, 0xb1, 0xe3, -0x26, 0x5b, 0xdb, 0x19, 0x2d, 0xc4, 0xc1, 0xdb, 0x6b, 0x21, 0x9e, 0xa1, 0x55, 0x52, 0xd3, 0x41, -0x8c, 0x78, 0x8a, 0x1b, 0x71, 0x11, 0x9c, 0xa7, 0x71, 0x27, 0x73, 0xb0, 0x37, 0xd5, 0x5e, 0x84, -0x73, 0xb8, 0xbb, 0xf0, 0xb9, 0x16, 0x52, 0x5d, 0x6d, 0x86, 0x7a, 0xa1, 0x25, 0x5e, 0x6a, 0x23, -0x39, 0x57, 0xc5, 0xc1, 0x5c, 0x0e, 0xa5, 0x77, 0x88, 0x35, 0x06, 0x6d, 0x60, 0x23, 0x6d, 0xfc, -0x62, 0xf5, 0xdd, 0x97, 0xab, 0xc5, 0x61, 0xcb, 0x99, 0x42, 0x17, 0x64, 0x46, 0x7f, 0x70, 0x6c, -0x8f, 0xa1, 0x9e, 0xf5, 0x07, 0xdf, 0x58, 0x18, 0x54, 0xa7, 0xb9, 0x05, 0x73, 0xb0, 0x05, 0xef, -0x63, 0x0b, 0x56, 0xdc, 0x4e, 0x7f, 0xf0, 0x67, 0xd6, 0xfb, 0xdf, 0xee, 0x9a, 0xa1, 0xf7, 0x3f, -0xbe, 0xf2, 0x66, 0x6b, 0x3b, 0x3a, 0xbd, 0xff, 0x06, 0x9d, 0xde, 0x7f, 0xc3, 0x2d, 0x7a, 0xff, -0x0d, 0x33, 0xf5, 0xfe, 0x63, 0xbb, 0x6e, 0xb2, 0xc6, 0xc3, 0xb7, 0xb3, 0xff, 0x9a, 0xc6, 0xff, -0xe8, 0x9d, 0x34, 0xfe, 0xf3, 0xfa, 0xae, 0x14, 0x67, 0x1b, 0x15, 0x41, 0x7f, 0xa8, 0xbc, 0x15, -0xcc, 0x88, 0xdb, 0x58, 0x48, 0xf2, 0x22, 0x3a, 0x5a, 0xea, 0x22, 0xe9, 0xe7, 0xda, 0xab, 0x63, -0xe0, 0xb0, 0x56, 0xfd, 0xe6, 0x65, 0x70, 0xce, 0xc6, 0x79, 0x3a, 0x87, 0x6c, 0xb3, 0xf1, 0xb9, -0x86, 0x17, 0x61, 0x21, 0xe8, 0x38, 0xaf, 0xce, 0x6a, 0x76, 0x4c, 0x2a, 0x48, 0x27, 0x3d, 0xad, -0xfe, 0xa4, 0x4b, 0x2f, 0x27, 0x33, 0xb5, 0xdc, 0xc1, 0x3a, 0xd6, 0x0d, 0x40, 0x9c, 0x24, 0x5e, -0x5a, 0xa3, 0xa6, 0xda, 0x1b, 0xea, 0xc1, 0xfa, 0x1d, 0x38, 0xa3, 0x73, 0xd2, 0x61, 0xd9, 0xf5, -0x3b, 0x3e, 0x1f, 0x04, 0x67, 0xda, 0x6f, 0xe4, 0xef, 0xb9, 0x6c, 0xad, 0x7a, 0xbd, 0x16, 0x26, -0x71, 0xd8, 0x9c, 0x74, 0x9c, 0x2c, 0xf6, 0xcf, 0x4d, 0xfb, 0xcd, 0xec, 0xcf, 0x9f, 0x91, 0x66, -0x16, 0xe7, 0x3b, 0x3b, 0xbc, 0x17, 0xec, 0xe9, 0x78, 0x86, 0xfa, 0x1d, 0x1a, 0x0e, 0x56, 0x29, -0xd6, 0x11, 0x59, 0x26, 0x68, 0x1c, 0x98, 0x59, 0x6b, 0xcc, 0xc9, 0xce, 0x3c, 0x20, 0x90, 0xd6, -0x33, 0x68, 0xd3, 0x5b, 0x19, 0x7a, 0xe1, 0x84, 0xe2, 0xa9, 0xfd, 0x00, 0xae, 0xcd, 0xb0, 0x26, -0xf9, 0x81, 0xc1, 0x91, 0x89, 0x33, 0x7d, 0x45, 0x8f, 0x2d, 0xa5, 0xac, 0xf0, 0xb0, 0xbd, 0x15, -0x8b, 0x37, 0xc7, 0x1f, 0xc4, 0xf7, 0x6c, 0x71, 0x12, 0x7d, 0x9c, 0x2d, 0xf4, 0x0a, 0x8e, 0x20, -0xfa, 0x2e, 0x6c, 0x68, 0xa4, 0x6c, 0x48, 0x63, 0x9f, 0xeb, 0x6d, 0x0b, 0x1c, 0x13, 0xfd, 0x1d, -0x28, 0x65, 0x5e, 0x26, 0xa1, 0x45, 0x19, 0xa1, 0x9a, 0x1c, 0x51, 0x22, 0x72, 0xf0, 0x33, 0xdb, -0x18, 0xc8, 0xd3, 0x6c, 0x0c, 0x44, 0x62, 0xdb, 0x13, 0x41, 0xcd, 0xc6, 0x40, 0x39, 0xce, 0x3d, -0x31, 0x97, 0x4a, 0xe4, 0x56, 0xa9, 0x0c, 0x67, 0x43, 0x3e, 0xdb, 0xf2, 0xce, 0x8f, 0xcf, 0x4d, -0x5b, 0xe7, 0xce, 0x43, 0xcc, 0x0d, 0x61, 0x12, 0x69, 0x3f, 0x4b, 0xb7, 0xf3, 0x70, 0x8a, 0x03, -0xcb, 0x4b, 0x3a, 0xf4, 0x41, 0x6f, 0x7f, 0x16, 0x67, 0x69, 0x40, 0xb4, 0x69, 0x86, 0x4e, 0xff, -0x63, 0xa2, 0x5d, 0x49, 0xfb, 0xd8, 0x56, 0xd1, 0xe6, 0xa4, 0x67, 0x6c, 0x0f, 0xc2, 0x24, 0xd1, -0xd6, 0xfe, 0xb4, 0xb5, 0x1e, 0x8b, 0x36, 0x6f, 0xb5, 0x7e, 0x99, 0xf1, 0xcd, 0x38, 0xf3, 0x5b, -0x37, 0x69, 0xf0, 0x2e, 0x10, 0x9c, 0x12, 0x6c, 0xab, 0xdb, 0x9c, 0xb6, 0x52, 0x95, 0xa7, 0x30, -0xa6, 0xb4, 0x63, 0x35, 0xbf, 0xd7, 0xa6, 0x28, 0x13, 0xad, 0x1f, 0x65, 0xed, 0x3e, 0x7b, 0x2b, -0xb6, 0xb1, 0xc4, 0x1a, 0x26, 0xbe, 0x55, 0xff, 0x03, 0x60, 0x65, 0x5a, 0xd6, 0x58, 0xf6, 0x00, -0xe4, 0x94, 0xa3, 0xaf, 0x0f, 0x2a, 0x24, 0x7f, 0xe4, 0xc7, 0x3f, 0x6b, 0x97, 0xfc, 0xc6, 0xd2, -0xd5, 0x90, 0xd3, 0x0b, 0xe5, 0x59, 0xfe, 0xda, 0x1f, 0x1f, 0x6d, 0x97, 0xca, 0x66, 0x93, 0x4d, -0xdc, 0x61, 0x5c, 0x41, 0x9d, 0x66, 0xec, 0x2b, 0x6d, 0xa5, 0xc5, 0x42, 0x89, 0x9c, 0x11, 0x5c, -0x51, 0x9d, 0xa6, 0x2f, 0x85, 0x90, 0x5a, 0xa1, 0x90, 0x70, 0x22, 0x8f, 0xa4, 0x61, 0x10, 0x77, -0x95, 0x46, 0xbe, 0xd5, 0x61, 0xfa, 0x52, 0x18, 0xeb, 0x45, 0xe1, 0x55, 0x1c, 0x4e, 0x1a, 0xf9, -0xb2, 0x38, 0xbc, 0x0a, 0x61, 0x35, 0xd3, 0x1d, 0x84, 0xbd, 0xf2, 0x3d, 0x7c, 0x17, 0xb8, 0x34, -0xd8, 0xe3, 0x20, 0xd8, 0xe3, 0x46, 0x98, 0x41, 0xfa, 0xdb, 0x6f, 0x0b, 0x83, 0xfa, 0x88, 0xaf, -0x01, 0xee, 0x8b, 0x2b, 0x37, 0x6b, 0x6b, 0xbf, 0x59, 0x1b, 0xbb, 0x66, 0xef, 0xeb, 0x44, 0x4a, -0x1b, 0x3b, 0x42, 0xd3, 0xa5, 0x22, 0x04, 0xb1, 0xd0, 0x9b, 0xe2, 0xdc, 0x41, 0x53, 0xbb, 0xcb, -0x1b, 0x03, 0x07, 0xdd, 0xa7, 0xa7, 0x35, 0xb5, 0xcf, 0x84, 0x48, 0x85, 0xb7, 0x40, 0xa4, 0xd2, -0x19, 0xf0, 0x35, 0x0d, 0x8b, 0xfe, 0xc0, 0x36, 0x02, 0x0c, 0xde, 0xa9, 0x95, 0xb7, 0xd4, 0x7d, -0x2c, 0xdd, 0xae, 0x31, 0xd1, 0x03, 0xe9, 0x3b, 0x66, 0xb3, 0x16, 0xfe, 0xa9, 0xfa, 0xe8, 0x89, -0xe7, 0xc4, 0x50, 0xf0, 0x6f, 0x6a, 0xab, 0xfb, 0xf6, 0x6d, 0x95, 0x03, 0x48, 0xff, 0x16, 0xd2, -0x7e, 0xc8, 0xfb, 0x88, 0x74, 0xdb, 0xf6, 0xbd, 0x4d, 0x7c, 0xb1, 0xb8, 0x43, 0xbe, 0xcf, 0x27, -0x11, 0xc6, 0xb2, 0x25, 0x8a, 0xb9, 0x2c, 0xf8, 0x60, 0x1b, 0x6c, 0x82, 0xf7, 0xcb, 0xdb, 0xc0, -0x84, 0x5f, 0x26, 0xc4, 0x97, 0xf2, 0x3a, 0xc5, 0x5c, 0x4e, 0x5f, 0x36, 0xc3, 0x04, 0xdd, 0x3e, -0x95, 0xba, 0xe1, 0x22, 0x6b, 0x25, 0x33, 0xfa, 0x82, 0x8a, 0xc3, 0x17, 0x62, 0x3e, 0x9a, 0x2f, -0x26, 0xf2, 0x4b, 0x71, 0x7f, 0xfc, 0xd1, 0xf1, 0x27, 0x24, 0xb9, 0x56, 0x68, 0x51, 0x1e, 0xd9, -0xd4, 0x2c, 0xc9, 0x74, 0x53, 0x75, 0x91, 0x6e, 0xaa, 0x30, 0xe4, 0x92, 0x48, 0x55, 0x8a, 0xa9, -0x4a, 0xd3, 0xa9, 0x2a, 0xda, 0x20, 0xf7, 0x7f, 0xfe, 0xfc, 0x09, 0xc9, 0xbe, 0x94, 0x53, 0xe5, -0x8f, 0x7c, 0xab, 0x59, 0xb2, 0x53, 0xaa, 0x4b, 0x5a, 0xbd, 0x11, 0x7e, 0x79, 0xd3, 0x77, 0x4f, -0xc2, 0x8e, 0x41, 0xe8, 0xa2, 0xa6, 0xb9, 0xb8, 0x20, 0x61, 0x96, 0x86, 0x3e, 0x56, 0x49, 0xff, -0x23, 0x0c, 0xd9, 0x30, 0xc3, 0xba, 0xf7, 0x02, 0xc6, 0x4f, 0xef, 0xb3, 0xe9, 0xf1, 0xdb, 0xf7, -0x99, 0x4f, 0x22, 0x0d, 0xd6, 0x32, 0x71, 0x1f, 0x7a, 0xb1, 0xdf, 0xb0, 0xff, 0x10, 0x47, 0x92, -0x71, 0xff, 0x71, 0x90, 0x95, 0x43, 0x61, 0x31, 0x48, 0xe3, 0x08, 0xf6, 0xa6, 0xf6, 0xa5, 0xe9, -0x97, 0x34, 0x1e, 0x29, 0x3b, 0xe1, 0x54, 0xf8, 0x2d, 0x0f, 0xbf, 0x15, 0x60, 0xfa, 0x42, 0xb2, -0x80, 0x46, 0xf7, 0xc7, 0x18, 0xcf, 0x95, 0xb1, 0x2d, 0x99, 0xe2, 0x1e, 0x74, 0x21, 0xde, 0x87, -0xb3, 0xb1, 0xdc, 0xdd, 0x05, 0x01, 0x2c, 0x25, 0x28, 0x57, 0x91, 0x64, 0x40, 0x6c, 0x1f, 0xe1, -0x99, 0x06, 0x8b, 0x3d, 0x26, 0x77, 0xa4, 0x6c, 0xd5, 0x32, 0x87, 0x8f, 0x95, 0xa4, 0x7b, 0x7c, -0x40, 0x9a, 0x09, 0x6c, 0x90, 0x70, 0xd3, 0xaf, 0x2c, 0x78, 0x65, 0xc8, 0x9e, 0xc0, 0x3b, 0x48, -0xb9, 0xb7, 0xc3, 0x1c, 0xdf, 0xe7, 0x70, 0x57, 0x2d, 0x02, 0x49, 0xe3, 0xd5, 0x75, 0x91, 0x5d, -0x46, 0x17, 0x86, 0xf3, 0x29, 0x18, 0xee, 0x3e, 0xee, 0x20, 0xee, 0x57, 0xa0, 0x59, 0xb5, 0x1d, -0xff, 0x66, 0xd2, 0x4d, 0x37, 0xd9, 0x7e, 0x84, 0x31, 0x48, 0xe3, 0xa5, 0xac, 0x10, 0x4e, 0xef, -0x25, 0x8b, 0x12, 0x7c, 0x5a, 0x41, 0xd2, 0x6a, 0x46, 0x9f, 0xa1, 0xff, 0x9e, 0x4b, 0xad, 0x63, -0xa1, 0xf1, 0xe0, 0xd8, 0x32, 0x77, 0x76, 0x9b, 0xd4, 0xf8, 0xf4, 0xf8, 0xd3, 0x43, 0xd5, 0x1a, -0x7f, 0xb0, 0x44, 0xfc, 0xc1, 0x81, 0x22, 0x30, 0x55, 0x98, 0x9e, 0xba, 0xe7, 0xa3, 0x8e, 0x77, -0x6a, 0xc6, 0xab, 0x4f, 0x55, 0x8f, 0x6f, 0xd9, 0x1e, 0xd1, 0x38, 0x86, 0xd9, 0xe6, 0x27, 0x8d, -0x96, 0xb7, 0x0a, 0x02, 0xde, 0xa5, 0x50, 0xee, 0xad, 0x03, 0x3f, 0xce, 0x70, 0x1f, 0xf3, 0x32, -0xfe, 0x1e, 0xeb, 0x70, 0x14, 0xa1, 0xf9, 0xdd, 0xe1, 0xbf, 0xa0, 0x13, 0x01, 0xaf, 0xb9, 0x6c, -0x19, 0x8e, 0xb1, 0x07, 0xeb, 0x4b, 0x5c, 0xbe, 0xdf, 0x17, 0x9c, 0x88, 0xc4, 0xf3, 0x28, 0xa4, -0x5a, 0x2a, 0x2b, 0x9c, 0xd8, 0x27, 0xae, 0x0e, 0xb0, 0x3a, 0x8a, 0x09, 0xf3, 0x83, 0x3c, 0x5c, -0xb9, 0x2b, 0x71, 0x44, 0xaf, 0x63, 0x2a, 0x49, 0x70, 0x61, 0xfc, 0xd9, 0x3b, 0x64, 0xb5, 0x97, -0x5c, 0xeb, 0xdf, 0x71, 0x03, 0xee, 0x7c, 0xfc, 0x65, 0xe9, 0x87, 0xea, 0x1b, 0x7c, 0x2a, 0x32, -0xbe, 0x21, 0x2a, 0xd7, 0x0b, 0xdb, 0xc0, 0xbc, 0x33, 0x7b, 0xb0, 0xaf, 0xf7, 0xe0, 0x4a, 0x2d, -0xe1, 0xb0, 0x7a, 0x17, 0x30, 0xd6, 0x4a, 0x27, 0xe9, 0x73, 0xfa, 0x01, 0xdb, 0xc5, 0x5c, 0xe0, -0xc9, 0xac, 0xd1, 0x8d, 0xdd, 0x12, 0x42, 0xfd, 0x1c, 0xfb, 0x1a, 0x9c, 0x9b, 0x82, 0x37, 0xd3, -0xd4, 0x61, 0x41, 0x5f, 0x2e, 0xfb, 0x7c, 0xa5, 0xc5, 0xea, 0x0d, 0xd6, 0x2a, 0x7a, 0x3d, 0x3a, -0x1a, 0x39, 0x86, 0xbb, 0x03, 0x71, 0x56, 0x66, 0x6b, 0x9c, 0xc7, 0x98, 0xdb, 0xd4, 0x38, 0xdb, -0x30, 0x34, 0x23, 0x1d, 0x14, 0x13, 0x1c, 0xf4, 0x5e, 0x63, 0xaa, 0xde, 0xf8, 0xf5, 0x23, 0x3e, -0x2f, 0xeb, 0x50, 0x27, 0xbb, 0xc0, 0x60, 0xc2, 0xdf, 0xe9, 0x2e, 0x80, 0x69, 0xd2, 0x1f, 0x06, -0xd6, 0x6e, 0xd2, 0x42, 0x6e, 0xe9, 0x33, 0x1c, 0x5a, 0x87, 0xa3, 0xbc, 0x57, 0x09, 0xc4, 0xa0, -0x1d, 0x29, 0x5a, 0xc6, 0xa3, 0x25, 0x4e, 0xdb, 0x5d, 0xda, 0xa1, 0xde, 0xf0, 0x51, 0x5e, 0x59, -0x01, 0x4c, 0x19, 0xfd, 0x93, 0x09, 0x15, 0x7f, 0x27, 0xa3, 0xc9, 0x09, 0x95, 0x57, 0x0d, 0xc5, -0x71, 0x11, 0x1f, 0x92, 0xd2, 0x86, 0x69, 0xe3, 0xba, 0x94, 0xe5, 0xb7, 0xa4, 0xcc, 0xd2, 0x52, -0x66, 0x45, 0x57, 0xe3, 0x6f, 0x2b, 0xae, 0x19, 0xc9, 0x1d, 0x80, 0xf1, 0x65, 0x3b, 0xe4, 0xea, -0xfa, 0xa1, 0x54, 0x6c, 0x81, 0xf5, 0xdc, 0xbe, 0x2c, 0x7b, 0x75, 0xfd, 0x73, 0xac, 0x51, 0x9c, -0x74, 0xb8, 0x59, 0x13, 0xe5, 0x18, 0xff, 0x06, 0xf6, 0xcd, 0x75, 0xaf, 0xc5, 0x67, 0x1e, 0xc3, -0x14, 0xcb, 0x82, 0xa5, 0x41, 0xef, 0x6c, 0x9f, 0x01, 0xdd, 0x93, 0x9a, 0x3b, 0xea, 0x35, 0xf3, -0xd9, 0x88, 0x91, 0x77, 0xf3, 0xf1, 0xf5, 0xa4, 0xaf, 0xad, 0x90, 0x46, 0xc4, 0x1e, 0xd1, 0x6c, -0x2b, 0x87, 0x85, 0x4d, 0x66, 0xb6, 0xd0, 0xbd, 0x4b, 0xbb, 0x09, 0xbe, 0xe3, 0x6c, 0x48, 0xf5, -0xda, 0xe8, 0xba, 0x11, 0xc2, 0x05, 0x77, 0xff, 0xbb, 0x67, 0xc7, 0xa3, 0xb7, 0x9b, 0x1d, 0x9f, -0x4c, 0xde, 0x66, 0x76, 0xac, 0xfc, 0xb7, 0xce, 0x8e, 0x4f, 0x8e, 0x7e, 0xda, 0xec, 0xf8, 0x64, -0x2c, 0x33, 0x3b, 0xe0, 0xa0, 0x36, 0x3b, 0x86, 0x33, 0xed, 0x4c, 0x58, 0x89, 0xcb, 0x8f, 0xad, -0x8a, 0xbc, 0xa8, 0x94, 0x65, 0xc6, 0xf7, 0x93, 0xa6, 0xcc, 0xf8, 0x96, 0xf1, 0x68, 0x1d, 0x54, -0xcb, 0x78, 0xb4, 0x0e, 0xa6, 0x67, 0xc6, 0x27, 0x39, 0x3c, 0x33, 0x14, 0x5d, 0x2a, 0xfb, 0x2d, -0xa9, 0xb2, 0xb4, 0x54, 0xba, 0x59, 0xb1, 0xf8, 0xc6, 0x8d, 0xd3, 0xf5, 0xcf, 0x7f, 0x96, 0x19, -0xc1, 0x27, 0xd5, 0x05, 0x9f, 0x3e, 0x9e, 0x82, 0xae, 0xaf, 0xac, 0x74, 0xe9, 0xa0, 0xa1, 0xdb, -0x0b, 0x75, 0x7e, 0x2f, 0xd4, 0x94, 0xff, 0xff, 0xb8, 0xfb, 0xfb, 0xe8, 0xb6, 0xca, 0x2b, 0x51, -0x18, 0xdf, 0xe7, 0x58, 0x56, 0x14, 0x45, 0x11, 0xc2, 0x35, 0xae, 0x6b, 0xdc, 0x70, 0xd0, 0x08, -0xa1, 0xc8, 0x8a, 0x25, 0x54, 0x61, 0x8c, 0x51, 0x1d, 0x49, 0x96, 0x6c, 0x45, 0x76, 0x74, 0x5d, -0xdb, 0xa4, 0x7e, 0x59, 0x19, 0xe6, 0xdc, 0x34, 0x48, 0x8e, 0x3f, 0x35, 0xbe, 0xb9, 0x59, 0x59, -0x59, 0xbe, 0xd4, 0xf9, 0x20, 0x04, 0x9a, 0x21, 0x26, 0x84, 0x94, 0x61, 0x18, 0x7e, 0xfc, 0xba, -0x58, 0xbd, 0x4c, 0xa0, 0xd4, 0x4d, 0x53, 0x9a, 0x7a, 0xb8, 0x19, 0x27, 0x84, 0x34, 0x50, 0xca, -0x6b, 0x42, 0x48, 0xd3, 0x4c, 0x06, 0x32, 0x19, 0x5e, 0x26, 0xe4, 0x03, 0xd2, 0x34, 0x84, 0x60, -0x12, 0x9f, 0xdf, 0xde, 0xfb, 0x39, 0xfa, 0x70, 0x12, 0x28, 0x9d, 0x3b, 0xf7, 0xfd, 0xe3, 0xb7, -0xbc, 0xac, 0x73, 0xce, 0x73, 0x9e, 0xf3, 0x7c, 0xee, 0x67, 0x7f, 0x3c, 0xcf, 0xfe, 0xf0, 0x42, -0x22, 0x4e, 0x16, 0x0f, 0xa7, 0xaf, 0xd2, 0x73, 0xf4, 0xe4, 0xf1, 0x62, 0x68, 0x65, 0x7a, 0x4e, -0xc6, 0xe8, 0x0d, 0x81, 0x2b, 0xf2, 0x53, 0x94, 0xa8, 0xa3, 0xe0, 0x53, 0x5a, 0xec, 0x0b, 0x1d, -0x0d, 0x4d, 0x1f, 0x83, 0x4b, 0x44, 0xc0, 0xd4, 0x23, 0x58, 0xff, 0x28, 0x41, 0xf6, 0x43, 0x4f, -0xf9, 0x7a, 0xc1, 0xe0, 0xf7, 0x80, 0x31, 0xd0, 0x8b, 0x94, 0xac, 0x17, 0xcc, 0xa2, 0x24, 0x96, -0x0f, 0x8d, 0x13, 0x67, 0xc0, 0xd4, 0x1e, 0x8f, 0x8e, 0x77, 0x1b, 0x0f, 0xf4, 0x81, 0xb9, 0x3d, -0xcc, 0x96, 0xcd, 0x86, 0x83, 0x98, 0xca, 0xbe, 0x8a, 0x0d, 0x07, 0xce, 0xa0, 0xfc, 0x12, 0xaf, -0x41, 0xd8, 0xab, 0x24, 0x4d, 0xbb, 0xf5, 0x5b, 0xf7, 0xfd, 0x72, 0xff, 0x80, 0x3f, 0x18, 0xc6, -0x14, 0x73, 0x09, 0xe9, 0xd9, 0xad, 0xde, 0xba, 0xfb, 0x97, 0x6f, 0x0e, 0x28, 0xb1, 0xb3, 0xcf, -0x68, 0x25, 0xa4, 0xb1, 0xb7, 0xda, 0x17, 0xfe, 0xd9, 0xeb, 0xbd, 0xb6, 0x86, 0x0b, 0x23, 0xf4, -0x7c, 0x07, 0x3f, 0xbf, 0xd6, 0x67, 0xd3, 0xdb, 0x6d, 0x82, 0x5e, 0xbc, 0xb1, 0xaa, 0x46, 0xb9, -0xf7, 0xfb, 0x1a, 0x58, 0x5d, 0x1d, 0xed, 0x11, 0xd6, 0x7c, 0x31, 0x92, 0x87, 0x3e, 0x8d, 0xac, -0x19, 0x86, 0x84, 0xd4, 0x2e, 0x76, 0x80, 0xc1, 0xcf, 0x56, 0x55, 0x16, 0x6f, 0x88, 0xf5, 0x35, -0x14, 0x3b, 0xf1, 0x31, 0x48, 0x5f, 0x9a, 0x3e, 0x66, 0x7a, 0xe4, 0xa1, 0xbe, 0x22, 0x2f, 0x0c, -0xb9, 0x98, 0x12, 0x85, 0xb1, 0x17, 0x0e, 0x5c, 0x15, 0x8d, 0xe1, 0x8d, 0x9c, 0x75, 0x1a, 0xd2, -0x56, 0x2c, 0x87, 0xec, 0xa6, 0xca, 0xaf, 0x11, 0xcb, 0xc2, 0x06, 0x0e, 0x3e, 0x43, 0x9e, 0x81, -0x9c, 0x44, 0x33, 0xdb, 0xa6, 0x05, 0x11, 0xa7, 0x93, 0xcf, 0x2c, 0x85, 0xd7, 0x00, 0x49, 0xd9, -0x14, 0x26, 0x6b, 0x76, 0x9f, 0x1c, 0x1d, 0x26, 0xcb, 0xb4, 0x82, 0x5d, 0x0c, 0x53, 0x3e, 0xde, -0xbc, 0x53, 0xb7, 0x51, 0xa3, 0x7e, 0x28, 0x7a, 0xac, 0x08, 0xd2, 0x3c, 0x41, 0x8e, 0xd8, 0xe1, -0x59, 0x06, 0x9d, 0xe2, 0x44, 0x49, 0xa1, 0x68, 0x10, 0xf8, 0xad, 0xbd, 0x39, 0xf7, 0x25, 0x49, -0x76, 0x64, 0xbd, 0x5e, 0x44, 0x7e, 0xdc, 0x79, 0x57, 0x88, 0x62, 0x8d, 0x57, 0x20, 0x15, 0x2a, -0x11, 0xde, 0x04, 0x6f, 0xef, 0x42, 0x4e, 0xc0, 0x84, 0xbf, 0x46, 0x30, 0xe7, 0x22, 0x9d, 0x40, -0x76, 0xd4, 0x7c, 0xe4, 0x9f, 0x8d, 0x62, 0x29, 0x91, 0xfe, 0x6c, 0x2d, 0xe2, 0x0b, 0x07, 0x42, -0x61, 0x17, 0x74, 0xf2, 0xbe, 0x6b, 0x39, 0x52, 0xda, 0x72, 0x11, 0x33, 0xd1, 0xde, 0x92, 0xad, -0xd1, 0x09, 0x1c, 0xf7, 0x4a, 0xd4, 0xd8, 0x9b, 0xab, 0xb1, 0x0c, 0x6b, 0x17, 0x35, 0x5a, 0xee, -0xe0, 0x1a, 0xef, 0xe0, 0x1a, 0x13, 0x6b, 0xd3, 0xaa, 0x65, 0x0b, 0x45, 0x5a, 0x4f, 0x19, 0xff, -0xf1, 0x94, 0x76, 0x29, 0xd5, 0x46, 0x91, 0xce, 0x19, 0xe6, 0xe2, 0x88, 0x61, 0x66, 0x23, 0x3d, -0x59, 0xe9, 0x12, 0x11, 0x61, 0x6a, 0x79, 0xfe, 0x2a, 0x91, 0x16, 0x2a, 0x48, 0x0b, 0x1d, 0x04, -0xb3, 0xdc, 0x8a, 0xb2, 0x69, 0x91, 0x1b, 0x73, 0x91, 0xd8, 0x19, 0x73, 0x8d, 0x4d, 0xb5, 0xb4, -0x6e, 0x22, 0xdd, 0xb4, 0x6c, 0xd4, 0x72, 0xc4, 0x80, 0xe7, 0x69, 0xaf, 0x99, 0x78, 0x04, 0xc4, -0x82, 0x16, 0x37, 0x62, 0x40, 0xec, 0x8f, 0x83, 0x74, 0xfc, 0xf4, 0x88, 0xf2, 0x83, 0xd9, 0x51, -0xc4, 0x5e, 0xc5, 0x0a, 0xbd, 0x80, 0x4a, 0x9d, 0xe4, 0x77, 0x42, 0xd7, 0xcb, 0x00, 0x29, 0x81, -0x63, 0x4f, 0xb1, 0x0a, 0x0d, 0xf6, 0x98, 0x6b, 0x19, 0x98, 0xf4, 0x38, 0xf4, 0x01, 0x3a, 0x5d, -0xc6, 0xf5, 0xcb, 0x36, 0xb0, 0x2b, 0xcf, 0xd3, 0x1c, 0xb3, 0x27, 0xdb, 0x8b, 0x48, 0xa1, 0xca, -0xf9, 0x6e, 0x12, 0xef, 0xac, 0x02, 0x0b, 0x45, 0xc7, 0xd3, 0xd5, 0x05, 0xb8, 0x0f, 0xfa, 0x2c, -0x39, 0xdc, 0x07, 0xb0, 0x5e, 0x69, 0x41, 0xcc, 0x77, 0x1e, 0xf9, 0x92, 0x79, 0xda, 0x85, 0xf8, -0x6e, 0xc2, 0x6f, 0x6a, 0x86, 0x63, 0x3f, 0xb3, 0xf4, 0x39, 0x7c, 0x36, 0x5d, 0x26, 0xda, 0x43, -0x51, 0xdb, 0xed, 0x2e, 0x28, 0x97, 0x57, 0xf3, 0x9e, 0x92, 0xe1, 0xd1, 0xfd, 0xaa, 0xc1, 0x37, -0x04, 0xc5, 0xb9, 0x92, 0xc9, 0x4f, 0x9e, 0xd1, 0x61, 0x6a, 0x5b, 0x83, 0xd2, 0x45, 0xb6, 0x7c, -0x67, 0x02, 0xfe, 0x72, 0x9c, 0x34, 0x5b, 0x1d, 0x26, 0x25, 0x86, 0x7c, 0xae, 0x61, 0x7a, 0x6d, -0x8e, 0x6e, 0x98, 0x43, 0x9c, 0x97, 0x4e, 0x8f, 0x16, 0xdf, 0x35, 0xb4, 0x61, 0x83, 0x76, 0xe9, -0xae, 0x21, 0xbb, 0x5d, 0x9b, 0xb2, 0xb7, 0x64, 0x80, 0x63, 0xb0, 0x3c, 0x6d, 0x6f, 0xe0, 0xd3, -0x2c, 0x93, 0xbd, 0x85, 0x9f, 0xb7, 0x85, 0xcf, 0x68, 0x97, 0xe6, 0xc6, 0xc1, 0xf4, 0x0d, 0xd2, -0xe5, 0xfc, 0xa6, 0x28, 0x49, 0x94, 0x8a, 0x98, 0xf0, 0x22, 0xd1, 0x34, 0x7b, 0x4b, 0xd3, 0x1f, -0x4d, 0x9a, 0x63, 0x96, 0x1e, 0x03, 0x9b, 0xbe, 0x7a, 0x93, 0xac, 0x6f, 0x16, 0x07, 0xb5, 0x83, -0xf9, 0xc8, 0xa4, 0xb4, 0x87, 0x43, 0x56, 0x2c, 0x8e, 0x65, 0x50, 0xc2, 0x90, 0x1d, 0xd0, 0x63, -0xfc, 0x7a, 0x74, 0xfb, 0x35, 0xc3, 0x7c, 0x94, 0xd3, 0xc0, 0x84, 0xbf, 0x66, 0x84, 0xb2, 0xee, -0xab, 0x35, 0x59, 0x28, 0x66, 0x52, 0xc6, 0x50, 0xa8, 0xcf, 0xa2, 0xc7, 0xa5, 0x21, 0x58, 0xf6, -0x50, 0xbc, 0x2d, 0x97, 0x0b, 0x61, 0x19, 0x61, 0x9b, 0x3c, 0xcc, 0xa4, 0x97, 0x33, 0x15, 0x1d, -0xbb, 0x64, 0x71, 0x42, 0xeb, 0xa6, 0x74, 0xca, 0xdc, 0x03, 0xc3, 0x74, 0xba, 0x84, 0x30, 0xc6, -0x71, 0x76, 0x29, 0x92, 0xa3, 0x97, 0x34, 0x2b, 0x0b, 0x21, 0x2d, 0x17, 0x6f, 0x17, 0xbf, 0x2d, -0x42, 0xfc, 0x7f, 0xbc, 0x75, 0x13, 0x8f, 0x96, 0x35, 0x55, 0xca, 0x9c, 0xb7, 0x4c, 0x16, 0x22, -0x9f, 0xbf, 0x2b, 0x56, 0xb9, 0x5a, 0x4a, 0xf4, 0x8f, 0x53, 0xde, 0xe0, 0x14, 0x5c, 0x6b, 0x19, -0xb9, 0xe5, 0x3d, 0x8b, 0x1e, 0xc3, 0x06, 0x5b, 0xf7, 0x3e, 0xb6, 0xae, 0x16, 0x5b, 0x17, 0xc4, -0x95, 0x46, 0x1a, 0xb1, 0xb5, 0x4e, 0x17, 0x47, 0x91, 0x26, 0x3f, 0x3e, 0x4f, 0xe2, 0x4a, 0x32, -0xd9, 0xb0, 0xa5, 0x16, 0xec, 0x7e, 0xda, 0x62, 0x21, 0xef, 0x87, 0x20, 0x91, 0x66, 0x63, 0x3f, -0x79, 0xdc, 0xb0, 0x84, 0xe0, 0x44, 0xda, 0x8c, 0xbf, 0x1a, 0xa6, 0xb6, 0xa9, 0x83, 0x04, 0x5b, -0x38, 0xe7, 0x8b, 0xe4, 0x90, 0xf6, 0xfd, 0x3b, 0x08, 0xe7, 0x15, 0x31, 0x85, 0xaa, 0x76, 0x51, -0xef, 0x02, 0xdc, 0x2f, 0x8e, 0x4f, 0x8a, 0xf8, 0x5e, 0x19, 0x94, 0xbd, 0x61, 0x1c, 0x89, 0x6b, -0x46, 0x3f, 0xa5, 0x33, 0x7e, 0xfc, 0xce, 0x84, 0x6b, 0xa8, 0x17, 0xdb, 0x1c, 0x52, 0x86, 0x57, -0x60, 0xbb, 0x57, 0xc8, 0xb9, 0xbe, 0x80, 0xf0, 0xf5, 0x2f, 0x01, 0x52, 0x0f, 0x17, 0x96, 0xe8, -0x99, 0xdf, 0x8b, 0x18, 0xcf, 0x87, 0xbf, 0x25, 0xe0, 0x7f, 0x49, 0x44, 0xb9, 0x2e, 0x2c, 0xd9, -0x95, 0x2d, 0x79, 0xd0, 0x40, 0xd1, 0xe1, 0x44, 0x3b, 0xfb, 0x00, 0x76, 0x21, 0x3e, 0x1c, 0xce, -0xb7, 0x74, 0x72, 0x9d, 0x2b, 0x1b, 0x05, 0xea, 0xd9, 0x82, 0xd6, 0xb6, 0x7c, 0x79, 0x6b, 0xd5, -0x84, 0xde, 0xef, 0xfe, 0xe9, 0xfd, 0x9e, 0xac, 0xd1, 0x4b, 0x5b, 0xf4, 0xd5, 0xcb, 0xc2, 0x2f, -0x11, 0x7b, 0x4c, 0x5a, 0x5b, 0x37, 0xa9, 0xa4, 0xf3, 0x6c, 0x89, 0x8c, 0xac, 0x30, 0xa8, 0xe5, -0xf9, 0x79, 0x9d, 0xe4, 0x13, 0x0e, 0xd5, 0xb0, 0x42, 0xce, 0x46, 0xf9, 0xab, 0xa4, 0x99, 0xac, -0x14, 0x34, 0x41, 0x87, 0xb3, 0x20, 0xcd, 0xa2, 0x0e, 0x67, 0x21, 0x82, 0x33, 0x1d, 0x3e, 0x96, -0xcb, 0x3d, 0xda, 0xf7, 0xd9, 0xb2, 0xba, 0x5b, 0xc0, 0xdd, 0x67, 0x5b, 0x18, 0xee, 0x16, 0xff, -0x79, 0x10, 0xf7, 0x59, 0x46, 0xa7, 0x2c, 0x1e, 0x1c, 0x7d, 0x1f, 0x7e, 0x15, 0xc0, 0x6b, 0xed, -0xb4, 0x2f, 0x72, 0xfb, 0xe0, 0x28, 0x27, 0x83, 0x0e, 0x6d, 0x4a, 0x56, 0x12, 0xf3, 0x79, 0xc1, -0x8a, 0xeb, 0xdd, 0x0b, 0x25, 0x28, 0x6f, 0x20, 0x3d, 0x21, 0x89, 0x43, 0xd0, 0xb9, 0xac, 0x9c, -0x86, 0xb2, 0x98, 0x4d, 0x7f, 0x63, 0x9e, 0xfe, 0x46, 0x97, 0xe0, 0xb6, 0xe9, 0x31, 0x8c, 0x48, -0xfa, 0xcb, 0xd9, 0x9f, 0xa1, 0xf4, 0x56, 0x8e, 0xef, 0x2b, 0xc9, 0x9e, 0x52, 0x44, 0x84, 0x14, -0xf1, 0xbf, 0x84, 0xcd, 0x47, 0xbd, 0x17, 0xda, 0x90, 0x37, 0x59, 0x34, 0x7f, 0x00, 0xee, 0x81, -0xe0, 0x7c, 0xb2, 0xc1, 0x21, 0xcd, 0xfd, 0x28, 0x62, 0x31, 0x07, 0xdb, 0x80, 0x7a, 0x61, 0x49, -0x7b, 0xcc, 0x3f, 0x00, 0xf7, 0xb6, 0x2f, 0x98, 0xbf, 0x00, 0xa9, 0x36, 0x59, 0xe8, 0x26, 0x71, -0x2c, 0x02, 0xba, 0xf5, 0x15, 0xe0, 0x0c, 0xc4, 0x21, 0x82, 0x52, 0xd6, 0x86, 0x60, 0xf1, 0xd1, -0x01, 0x68, 0x0d, 0x46, 0xbd, 0x45, 0xfe, 0x46, 0xe4, 0x9a, 0xb0, 0x1d, 0xcd, 0x93, 0x9a, 0x23, -0xf9, 0x78, 0xed, 0x00, 0xa8, 0xfa, 0x1e, 0xa3, 0x85, 0x52, 0x63, 0x93, 0x9a, 0x27, 0xb9, 0x19, -0xcb, 0x89, 0xf8, 0x21, 0xbe, 0xbb, 0xe9, 0x42, 0x39, 0xed, 0x74, 0x5a, 0x98, 0x4b, 0xdc, 0xcc, -0xfe, 0xa6, 0xd7, 0xce, 0x9f, 0x41, 0x3a, 0x02, 0xd5, 0xc8, 0xb3, 0xff, 0xd7, 0x21, 0x7b, 0x53, -0xf2, 0xd1, 0x86, 0xf3, 0xad, 0x40, 0x16, 0x49, 0x98, 0x6f, 0xa6, 0xc8, 0xe7, 0xb6, 0xb6, 0x3d, -0x80, 0x4f, 0x5e, 0xe8, 0x44, 0x0e, 0x54, 0x7c, 0x47, 0x78, 0xa4, 0x3a, 0x31, 0x00, 0xf5, 0xb8, -0x42, 0x65, 0xc5, 0x65, 0xdc, 0xc1, 0x9a, 0x47, 0x9d, 0xed, 0x8d, 0xc1, 0x46, 0xcc, 0x69, 0xf5, -0x19, 0xda, 0x43, 0x13, 0x03, 0x50, 0x47, 0x9e, 0x97, 0xf1, 0x8b, 0xc7, 0xdb, 0x36, 0x52, 0xad, -0xf1, 0x1e, 0x4d, 0xcb, 0xd7, 0x4b, 0x27, 0x13, 0x38, 0x7a, 0x58, 0x23, 0x7d, 0xd1, 0x16, 0x25, -0x5b, 0x6a, 0xca, 0xab, 0x4b, 0x7e, 0xad, 0x08, 0xa7, 0x2d, 0xde, 0x18, 0xc4, 0x91, 0x8f, 0x1b, -0x61, 0x5e, 0x19, 0xe0, 0x09, 0x6f, 0x11, 0x59, 0x32, 0x0b, 0x8f, 0xce, 0xd9, 0x3a, 0x48, 0x22, -0xa0, 0xef, 0xb0, 0x45, 0xf1, 0xf6, 0x0d, 0x58, 0x96, 0x49, 0xd4, 0x83, 0x23, 0x95, 0xcc, 0xd6, -0x85, 0xef, 0xfc, 0x98, 0xde, 0xcf, 0xfc, 0xea, 0x66, 0xee, 0x4b, 0x5c, 0xd8, 0xa3, 0x7a, 0x8b, -0xda, 0x1b, 0x69, 0x04, 0xf3, 0xf5, 0xb7, 0x6d, 0x64, 0x1f, 0xb8, 0x34, 0x7e, 0xd9, 0xde, 0xda, -0xb2, 0xed, 0xb9, 0xfb, 0x07, 0xc8, 0xc9, 0xc4, 0x11, 0xde, 0xa2, 0xfa, 0xc9, 0x48, 0xa9, 0x0a, -0xc8, 0x95, 0xea, 0xf7, 0x22, 0x3a, 0xa4, 0x52, 0x43, 0x38, 0xdc, 0x89, 0x73, 0xea, 0xa8, 0x82, -0x4e, 0xd6, 0x0c, 0x21, 0x89, 0x5e, 0x79, 0x67, 0xbc, 0xf9, 0x63, 0xe6, 0xbf, 0x1c, 0x55, 0xc2, -0xb3, 0xd7, 0xcb, 0x8a, 0xcd, 0x32, 0x3c, 0x2c, 0xc3, 0xd7, 0xd3, 0x4e, 0xbe, 0xde, 0x98, 0xf6, -0xf0, 0xf5, 0x06, 0xec, 0xe9, 0x33, 0x59, 0x3f, 0x74, 0x14, 0x1d, 0x32, 0xda, 0x4d, 0xde, 0xc9, -0x60, 0x63, 0x36, 0x2d, 0x30, 0x1c, 0x6d, 0x53, 0x87, 0x90, 0xee, 0x19, 0x6e, 0x0f, 0x23, 0x5e, -0x0c, 0x83, 0x94, 0x76, 0xf4, 0x1b, 0x13, 0xe1, 0xb4, 0x4d, 0x8d, 0xe2, 0x93, 0x9c, 0x76, 0xe0, -0x6f, 0x51, 0xaa, 0x56, 0x75, 0xd3, 0x99, 0x3a, 0x72, 0x38, 0xf4, 0x6b, 0x54, 0x5d, 0xe2, 0x2a, -0xd2, 0xd4, 0x8a, 0xdb, 0xc9, 0x23, 0xaf, 0x91, 0x7f, 0x4d, 0xaa, 0xe5, 0x76, 0xf2, 0xb8, 0x6f, -0xe4, 0x5f, 0x53, 0xe2, 0x79, 0xe3, 0x8e, 0x01, 0x33, 0x72, 0x67, 0xc6, 0x89, 0x10, 0xd6, 0x6f, -0xcc, 0xc8, 0xa3, 0x98, 0x92, 0x32, 0xb3, 0x06, 0x31, 0xa5, 0x98, 0x14, 0x7d, 0xd7, 0x4a, 0x78, -0xfe, 0xd2, 0x6a, 0x5b, 0xde, 0xeb, 0x35, 0x50, 0x6c, 0x4a, 0x84, 0xf6, 0x37, 0x74, 0x68, 0x5f, -0xea, 0xf2, 0x42, 0x17, 0x72, 0x50, 0xbd, 0x08, 0x91, 0x83, 0x35, 0x03, 0xb0, 0x42, 0x89, 0x78, -0xc9, 0xbb, 0x53, 0x04, 0xd7, 0x4b, 0xc4, 0xbb, 0x0c, 0x16, 0x43, 0x7d, 0xb0, 0x0b, 0x94, 0x15, -0xc9, 0x43, 0xa4, 0x2f, 0xc7, 0x7e, 0x2e, 0x37, 0x4c, 0xf2, 0x1e, 0x97, 0x76, 0xfb, 0xfb, 0x28, -0x99, 0x19, 0x08, 0xcb, 0x08, 0xdb, 0x1e, 0xf9, 0xf4, 0x4d, 0xdd, 0xf0, 0x0d, 0x68, 0xc2, 0xdf, -0x0a, 0x88, 0xe3, 0x6f, 0x25, 0x2c, 0x40, 0x2e, 0xc6, 0x26, 0xec, 0x6e, 0x9d, 0x44, 0x1b, 0x38, -0x86, 0x59, 0xca, 0xa4, 0x34, 0xd0, 0x2e, 0xa6, 0x6a, 0xe4, 0x2b, 0xfd, 0x22, 0x36, 0x50, 0xe6, -0x81, 0xa5, 0x7d, 0x78, 0x55, 0xf1, 0xd8, 0xf0, 0x7d, 0x56, 0xf2, 0xc1, 0xf5, 0x90, 0xa5, 0xd2, -0x67, 0x82, 0xf8, 0x7a, 0x55, 0x8e, 0x34, 0xe2, 0xec, 0x58, 0x3d, 0xd1, 0x7f, 0x19, 0x7f, 0x19, -0x21, 0x23, 0x6d, 0xf4, 0xcd, 0xf4, 0x87, 0xfd, 0x50, 0x37, 0x0f, 0xbf, 0x89, 0x1e, 0x69, 0xad, -0x75, 0x81, 0x7c, 0x18, 0xf9, 0x73, 0x5f, 0x35, 0xe9, 0xdc, 0xe0, 0x18, 0x2b, 0xfd, 0x26, 0x8a, -0x86, 0x48, 0x3e, 0xe7, 0x28, 0x8a, 0x44, 0xda, 0x87, 0xbf, 0x45, 0x48, 0x75, 0xba, 0x71, 0x6e, -0x76, 0x46, 0xfe, 0xa7, 0x6a, 0x20, 0x1c, 0xe9, 0x6b, 0x46, 0xc8, 0x6c, 0xc1, 0x7f, 0xf2, 0x0c, -0x10, 0x13, 0x3a, 0x6d, 0xf3, 0x67, 0x46, 0xd2, 0xf8, 0x55, 0x8d, 0xd8, 0x39, 0xc7, 0x3a, 0x67, -0xe2, 0x9a, 0xae, 0xcb, 0xe6, 0xf6, 0xb7, 0xa0, 0x44, 0x8b, 0xb9, 0xfd, 0x31, 0x84, 0x63, 0x92, -0xef, 0xcc, 0x5e, 0x39, 0x3c, 0xf9, 0xf9, 0x7e, 0xc4, 0xd0, 0x8b, 0x10, 0x86, 0xef, 0x49, 0x8e, -0x90, 0xbc, 0xc5, 0xb9, 0x67, 0x8d, 0xf4, 0xa3, 0xec, 0x41, 0x12, 0xb0, 0x05, 0xef, 0x8c, 0x7c, -0x57, 0x0d, 0xa6, 0xfb, 0xaf, 0xfb, 0xa8, 0x6b, 0x02, 0xdf, 0x1c, 0x0f, 0x4d, 0x44, 0xf5, 0x34, -0x23, 0xa7, 0x18, 0x31, 0x25, 0xc6, 0xeb, 0x03, 0xf1, 0x08, 0xe2, 0xa7, 0x04, 0x96, 0x6f, 0x66, -0x8b, 0x59, 0x2c, 0x15, 0x5b, 0xfd, 0x82, 0x0f, 0xf3, 0x60, 0x1d, 0x89, 0x7a, 0x2c, 0x25, 0xfe, -0x6b, 0xd1, 0x3e, 0xac, 0xb7, 0x0e, 0x79, 0xad, 0x99, 0x54, 0xa3, 0xbf, 0x19, 0x4b, 0xc3, 0xde, -0xf8, 0xa3, 0x78, 0xc5, 0xde, 0x50, 0x39, 0xa2, 0x0c, 0x6a, 0x1d, 0x49, 0x7e, 0x0d, 0x9f, 0x81, -0xf6, 0xed, 0xf7, 0xe9, 0x1c, 0x5a, 0x69, 0x8a, 0x67, 0x56, 0x12, 0xe6, 0x58, 0x92, 0x7c, 0xb4, -0x75, 0x53, 0x3d, 0xb2, 0xaa, 0xd0, 0xcf, 0xe9, 0xa1, 0x78, 0xc6, 0x04, 0x38, 0xeb, 0x4b, 0x58, -0xce, 0xf7, 0x88, 0x72, 0x37, 0xff, 0x7a, 0xf3, 0xaf, 0xfd, 0x0b, 0xbc, 0x33, 0xfd, 0x2d, 0x9b, -0xc7, 0x37, 0x8f, 0xd3, 0xdd, 0xbb, 0x51, 0x7f, 0x93, 0x77, 0xe6, 0x44, 0x8c, 0xd6, 0x36, 0xb6, -0xb5, 0x11, 0xeb, 0x41, 0x7c, 0x49, 0x75, 0x21, 0xcd, 0x19, 0xa3, 0x31, 0x48, 0x2c, 0x4a, 0xf5, -0xea, 0x7c, 0x97, 0x35, 0xd1, 0x98, 0xb6, 0xe1, 0xfb, 0x7a, 0xc2, 0x8a, 0x9c, 0x62, 0x56, 0x4d, -0xd9, 0x67, 0xb6, 0x59, 0x1f, 0x9b, 0x5c, 0x4a, 0x6b, 0x12, 0x7b, 0x62, 0x08, 0x52, 0xef, 0xf6, -0x61, 0xae, 0xe2, 0x20, 0xf6, 0xd7, 0xd7, 0x62, 0x0f, 0x85, 0xcf, 0x3e, 0x01, 0x0e, 0xd3, 0x96, -0x47, 0x7c, 0xcd, 0xf6, 0x30, 0xdd, 0x3b, 0x4d, 0x5b, 0xd7, 0xdb, 0x13, 0x13, 0x8f, 0x1c, 0x58, -0xdf, 0xbe, 0xa6, 0x7d, 0x2d, 0x62, 0xf0, 0x7a, 0xe2, 0xce, 0x08, 0x72, 0x08, 0xf3, 0xa4, 0xcd, -0x4b, 0x6a, 0xff, 0x6a, 0xf8, 0x7e, 0x69, 0xd7, 0xf0, 0x7d, 0x3e, 0xac, 0x23, 0xc2, 0x98, 0xa7, -0x99, 0x71, 0x50, 0x31, 0xde, 0xb5, 0xf0, 0x98, 0x67, 0x67, 0x70, 0x5e, 0xf6, 0x94, 0x52, 0xec, -0x4a, 0x50, 0x9b, 0x6c, 0x5e, 0x58, 0x48, 0x1e, 0xae, 0xbc, 0x26, 0xbc, 0x6b, 0x65, 0x8b, 0xcf, -0x99, 0x78, 0xd7, 0x2e, 0xd2, 0xa8, 0xad, 0x9f, 0xed, 0x64, 0x4d, 0x3e, 0x61, 0x8f, 0x2d, 0xb0, -0x49, 0x00, 0xa9, 0xcb, 0x2c, 0xe6, 0x07, 0xc9, 0xaa, 0xd9, 0x82, 0x3d, 0x54, 0x10, 0xa7, 0x18, -0x90, 0x5f, 0x35, 0x89, 0x08, 0xc6, 0xe9, 0x3a, 0x3f, 0x4a, 0x35, 0x9b, 0x4f, 0x22, 0xff, 0x3a, -0xb3, 0x5b, 0x6e, 0x1b, 0x3e, 0x3e, 0x5c, 0xd3, 0x7e, 0x68, 0x3c, 0xf0, 0x03, 0xe2, 0x68, 0xed, -0xe4, 0xd9, 0xaa, 0x1b, 0x8c, 0x23, 0x1f, 0xe2, 0x2a, 0x30, 0x89, 0xb7, 0x01, 0xc4, 0x22, 0x07, -0xc7, 0xbf, 0x95, 0x40, 0x5c, 0xd2, 0x21, 0x22, 0xf9, 0xd1, 0xbe, 0xe5, 0xdb, 0xe3, 0x35, 0xed, -0x5b, 0x31, 0x17, 0x7f, 0x67, 0xa2, 0x1a, 0x6a, 0x7a, 0x40, 0xc6, 0x14, 0xd3, 0xed, 0xcd, 0x20, -0x53, 0x1a, 0x69, 0xfd, 0x4d, 0x84, 0xe8, 0x0d, 0xd9, 0xf8, 0xe3, 0xea, 0x37, 0xe8, 0xa9, 0x88, -0x0b, 0x88, 0xff, 0x9e, 0xc0, 0x95, 0xc6, 0x58, 0x42, 0x22, 0x59, 0x8d, 0x4f, 0x05, 0x88, 0x03, -0xc8, 0xed, 0x84, 0x0a, 0xef, 0x21, 0x1c, 0x5f, 0xbd, 0x47, 0x97, 0x2e, 0x22, 0xf6, 0x86, 0x2c, -0x75, 0x76, 0xa1, 0xcc, 0xb4, 0x52, 0x9c, 0xbe, 0x11, 0x6f, 0x31, 0x4e, 0xab, 0x7e, 0x62, 0x1d, -0xd1, 0x6b, 0x11, 0x9f, 0xda, 0xa9, 0x4b, 0x7c, 0x44, 0x59, 0xb9, 0xa4, 0x24, 0xe3, 0x04, 0xf2, -0x19, 0x54, 0x4e, 0x7a, 0x14, 0xf6, 0x08, 0x97, 0x24, 0xe9, 0xf2, 0x9e, 0x9f, 0xa5, 0x0b, 0x25, -0x7c, 0xce, 0x04, 0x91, 0xd6, 0x48, 0x17, 0xc8, 0xf8, 0x6f, 0x60, 0xfb, 0x2a, 0x23, 0xff, 0x9a, -0x38, 0x96, 0x29, 0xd5, 0xb4, 0xa8, 0x30, 0xbe, 0x25, 0xe9, 0x6f, 0xd1, 0xa9, 0xa1, 0x9f, 0xbc, -0x4d, 0xcc, 0xf4, 0xd3, 0xde, 0xf7, 0x4c, 0x86, 0xf6, 0x52, 0xfa, 0x47, 0x38, 0x77, 0x09, 0xfc, -0x4e, 0x52, 0x30, 0x61, 0x16, 0xce, 0x63, 0xe0, 0x75, 0x55, 0x2a, 0xf2, 0x61, 0x1e, 0x43, 0x36, -0x46, 0x26, 0x4a, 0x5a, 0x47, 0x49, 0xb3, 0x99, 0xa4, 0x2c, 0x27, 0xc2, 0x03, 0x49, 0x5c, 0x2e, -0x92, 0xb4, 0x3c, 0xb0, 0x98, 0x6d, 0x3c, 0x69, 0x7e, 0xe6, 0xb8, 0x49, 0x7e, 0x6a, 0xa8, 0x42, -0xf9, 0x49, 0x3b, 0x8a, 0x38, 0x2e, 0xc8, 0xbb, 0x37, 0x57, 0x4b, 0x4f, 0x97, 0x06, 0x40, 0x56, -0xf8, 0x6e, 0x0a, 0xef, 0xca, 0xd8, 0x1b, 0x96, 0x25, 0xba, 0x27, 0x1d, 0x28, 0x90, 0x9e, 0xe4, -0x42, 0xe9, 0x49, 0xba, 0x57, 0xe9, 0xe3, 0xc8, 0x58, 0x17, 0x59, 0xa2, 0x99, 0x44, 0x0e, 0xa7, -0x85, 0x25, 0x28, 0x90, 0xa2, 0x0b, 0xcf, 0x08, 0x9d, 0x7e, 0x5c, 0x25, 0xd6, 0x02, 0x6f, 0x71, -0x45, 0xda, 0x31, 0x5f, 0x0f, 0x98, 0x28, 0xea, 0x15, 0x3f, 0x1b, 0xb4, 0x13, 0x08, 0x5b, 0xe6, -0xaa, 0x05, 0xda, 0x69, 0x47, 0x0f, 0x9f, 0x59, 0x0a, 0x4c, 0xbc, 0x3c, 0x21, 0xf7, 0x66, 0x74, -0x79, 0xc4, 0xac, 0x24, 0xec, 0x1c, 0xc1, 0xed, 0xf2, 0x4a, 0xda, 0xcf, 0xc1, 0x9a, 0x2e, 0xf9, -0xa4, 0xe5, 0xd7, 0xbd, 0xcf, 0xbb, 0xbe, 0xe4, 0x77, 0x9b, 0x22, 0xcf, 0xf8, 0xe5, 0xa1, 0xeb, -0x4e, 0x2f, 0x3b, 0x10, 0x39, 0x1e, 0x1e, 0xd9, 0xad, 0x98, 0x48, 0x0a, 0x0a, 0xcc, 0xd3, 0xa6, -0xfc, 0xb2, 0x48, 0x0b, 0x9f, 0xb5, 0x41, 0x3d, 0x52, 0x99, 0xc0, 0x8c, 0xd3, 0xdd, 0x07, 0x9b, -0x8e, 0x47, 0x46, 0xf6, 0xd8, 0x11, 0x83, 0x7b, 0x48, 0x22, 0xc3, 0x1e, 0xd8, 0x13, 0xa4, 0x87, -0x0c, 0xeb, 0xb1, 0x05, 0x25, 0xba, 0x8d, 0xe7, 0x3a, 0xbd, 0x6e, 0x8b, 0x92, 0x68, 0xc0, 0x9e, -0xfc, 0xe7, 0xd7, 0x9e, 0xa8, 0x82, 0xd9, 0x7f, 0xb9, 0x87, 0xfc, 0x4f, 0x45, 0xd7, 0x14, 0xb6, -0xc4, 0xd1, 0x0f, 0x73, 0xb8, 0xb6, 0xad, 0xf6, 0x98, 0xd0, 0x62, 0xb4, 0x63, 0x3a, 0x45, 0x25, -0x21, 0x39, 0xee, 0xd2, 0x1a, 0x2f, 0xf1, 0xdb, 0xb3, 0x70, 0xed, 0xd3, 0xb9, 0xde, 0xf1, 0x55, -0x8b, 0xf4, 0x28, 0x91, 0x24, 0x3f, 0x2e, 0x61, 0xf9, 0xf1, 0x18, 0xcb, 0x8f, 0xc7, 0xe9, 0xab, -0xac, 0x04, 0xa9, 0xc4, 0x98, 0x37, 0x20, 0xcb, 0x8e, 0xa3, 0x39, 0x19, 0xf2, 0x18, 0x3d, 0xfd, -0x05, 0xca, 0x91, 0x5f, 0xcb, 0xca, 0x91, 0xb9, 0x5d, 0xc0, 0x40, 0x1f, 0xf6, 0xb1, 0x4f, 0x9b, -0x8a, 0x9d, 0x43, 0x29, 0xd2, 0x7c, 0x95, 0x14, 0x79, 0x49, 0xdb, 0xa1, 0xef, 0x73, 0x6e, 0x64, -0x6b, 0x7f, 0xda, 0xe3, 0xec, 0xd3, 0x61, 0x8f, 0xf8, 0xf0, 0x28, 0x71, 0x98, 0x2e, 0x1c, 0x4b, -0xe4, 0xc6, 0x3b, 0x79, 0x8f, 0xa2, 0x58, 0xe9, 0x06, 0x03, 0xd3, 0x71, 0xb1, 0x4b, 0x41, 0x69, -0x33, 0x0a, 0xd3, 0x90, 0xb6, 0x55, 0xe8, 0xb2, 0x7d, 0x09, 0xdb, 0xd4, 0xcf, 0xc6, 0x3b, 0x13, -0xe6, 0x10, 0x7e, 0x42, 0x8c, 0xb8, 0xfe, 0xe6, 0x50, 0xdc, 0x4f, 0xfe, 0xf2, 0xe6, 0xdc, 0x97, -0x47, 0x1d, 0xa1, 0xac, 0xf6, 0x8f, 0x90, 0xf5, 0xa7, 0x9d, 0x42, 0x58, 0xc4, 0x29, 0x04, 0xf2, -0x38, 0xbb, 0xd4, 0x56, 0x7d, 0x5e, 0x77, 0x20, 0xa7, 0x54, 0x81, 0x33, 0xba, 0x91, 0x4f, 0x20, -0xea, 0xe8, 0x8e, 0x6a, 0xe1, 0xa7, 0x5d, 0x74, 0x77, 0x17, 0x69, 0x0e, 0x5d, 0xd0, 0x23, 0xed, -0xee, 0xad, 0x5e, 0x47, 0x9c, 0x30, 0xae, 0x97, 0x8d, 0xe2, 0x44, 0xe2, 0xae, 0x90, 0x76, 0x9e, -0x35, 0xb6, 0xab, 0x11, 0x2b, 0x54, 0xdc, 0x45, 0x7e, 0x4a, 0xcf, 0xb3, 0x9f, 0xd6, 0x0b, 0x6a, -0xa5, 0x5f, 0x1f, 0x35, 0x95, 0xf6, 0xec, 0x0c, 0xbe, 0x5e, 0x30, 0x92, 0x8f, 0x3e, 0xf2, 0xcd, -0xa7, 0x06, 0xc9, 0x43, 0xa9, 0x3c, 0x43, 0xdb, 0x48, 0xbe, 0x4c, 0x11, 0xf6, 0x47, 0x28, 0x46, -0x1d, 0x5e, 0xb7, 0x54, 0x25, 0xb4, 0x27, 0x22, 0x3f, 0xd1, 0x9e, 0x52, 0x7a, 0x73, 0x96, 0x0d, -0xd8, 0xa2, 0xbc, 0x7c, 0x9d, 0xda, 0xa6, 0x6e, 0xc7, 0x11, 0xaf, 0xd4, 0x32, 0x5f, 0x59, 0x6e, -0x37, 0xfd, 0x47, 0xe4, 0x76, 0xe6, 0x26, 0x09, 0x03, 0x96, 0x3a, 0x74, 0x7c, 0xca, 0x18, 0x30, -0xb0, 0x43, 0x9c, 0x82, 0xeb, 0xd8, 0x54, 0xc7, 0x80, 0xa2, 0x84, 0x0a, 0x3a, 0x45, 0x47, 0x48, -0x44, 0x59, 0x2f, 0x39, 0x76, 0x99, 0xb1, 0x08, 0xc9, 0x2c, 0x82, 0xae, 0x58, 0xb2, 0x3c, 0xda, -0x59, 0x8a, 0xbc, 0xed, 0x26, 0x39, 0x5b, 0x97, 0xb9, 0x11, 0x4b, 0x39, 0xb8, 0xec, 0xee, 0x6b, -0xed, 0x6b, 0x39, 0x20, 0xdd, 0x31, 0x6d, 0xa7, 0xaa, 0xd1, 0xed, 0x01, 0x53, 0x3a, 0xa4, 0xc4, -0xf8, 0x6c, 0xfd, 0x80, 0x0b, 0x74, 0xc9, 0xda, 0x81, 0xfc, 0xba, 0x0b, 0x25, 0x6b, 0x0f, 0x5b, -0xa2, 0x17, 0x4a, 0x63, 0x8e, 0x9c, 0x27, 0x35, 0xd6, 0x7f, 0xba, 0xfc, 0x06, 0xe9, 0xe9, 0x92, -0xbd, 0xfd, 0x50, 0x50, 0xec, 0x02, 0x50, 0x5f, 0x7d, 0x35, 0x6c, 0x39, 0x39, 0x00, 0x2e, 0xda, -0xa5, 0xd4, 0xa5, 0xa2, 0x4e, 0xe4, 0x9a, 0x2b, 0xab, 0xaa, 0xc0, 0xc0, 0x16, 0x0a, 0x3b, 0xec, -0x21, 0xde, 0xf7, 0xb9, 0x1e, 0x39, 0xe5, 0x22, 0x28, 0x4d, 0x43, 0xd1, 0x3d, 0x4b, 0x00, 0x5e, -0xe7, 0x27, 0x33, 0x62, 0xd1, 0xd1, 0x25, 0x4b, 0xf9, 0xbe, 0x18, 0x21, 0x75, 0xeb, 0x12, 0x3f, -0xdf, 0xcb, 0x78, 0xff, 0xe3, 0x25, 0x56, 0xbe, 0x97, 0x52, 0x60, 0x20, 0xef, 0xbd, 0xdd, 0xfc, -0x54, 0x84, 0x6f, 0xba, 0xf8, 0xce, 0x80, 0xe9, 0x9d, 0x98, 0xbe, 0x91, 0x9f, 0x66, 0x60, 0x7a, -0xea, 0xbe, 0xec, 0x93, 0x09, 0x9f, 0x46, 0xf8, 0x6e, 0x26, 0xe6, 0xf2, 0xab, 0x20, 0x97, 0xf3, -0xd3, 0x75, 0x58, 0xdf, 0xf2, 0x25, 0x4e, 0xbe, 0xb7, 0xe0, 0x7d, 0xe7, 0x7d, 0x48, 0x6e, 0xf8, -0x09, 0xd7, 0x49, 0xd1, 0xcb, 0x7c, 0x67, 0xc5, 0x2f, 0xc8, 0x17, 0xf3, 0x93, 0xfc, 0x74, 0x3d, -0xa6, 0xbf, 0x7b, 0x1f, 0x14, 0xbd, 0xc1, 0x4f, 0x25, 0xf8, 0x8d, 0x87, 0xef, 0xbe, 0x96, 0x82, -0xa2, 0x23, 0x98, 0xeb, 0x1e, 0x7e, 0x9a, 0x83, 0xb9, 0xb6, 0x2c, 0xe9, 0xe4, 0xfb, 0x6f, 0x60, -0x9e, 0x49, 0xbd, 0x8e, 0x32, 0xbc, 0x7f, 0x06, 0xeb, 0x58, 0xc3, 0x4f, 0x5f, 0xa7, 0x98, 0x09, -0x7c, 0x57, 0x8e, 0x5f, 0x3f, 0x85, 0x5f, 0xef, 0xe4, 0xa7, 0x1b, 0x31, 0xfd, 0x12, 0xe6, 0x7a, -0x97, 0x9f, 0x2a, 0xb1, 0x2c, 0x23, 0xdf, 0x7d, 0x13, 0x73, 0xad, 0xc0, 0x1e, 0x1e, 0xe5, 0x27, -0x07, 0xa6, 0x1b, 0xf4, 0x72, 0x15, 0xec, 0x5f, 0x29, 0xf6, 0xb6, 0x8c, 0x9f, 0xec, 0xa4, 0x1b, -0xc7, 0x77, 0x7f, 0x81, 0x5f, 0x44, 0xf1, 0x8b, 0x10, 0x3f, 0xdd, 0x8a, 0xeb, 0xf4, 0x89, 0x25, -0xa2, 0xe7, 0xb7, 0xe0, 0xfd, 0x7e, 0xbe, 0x73, 0x62, 0x1e, 0x85, 0x6c, 0x3b, 0xf1, 0xc9, 0x80, -0x3c, 0x32, 0x96, 0xca, 0x77, 0x32, 0xa6, 0x9b, 0xb0, 0x4d, 0x97, 0x6e, 0x8f, 0x73, 0x4c, 0xd1, -0x49, 0xbc, 0x1a, 0xf1, 0x7a, 0x0e, 0xaf, 0x26, 0xb9, 0x5b, 0x7b, 0x8f, 0xf6, 0x4e, 0xe4, 0xf7, -0xf1, 0xc9, 0x8c, 0x4f, 0xff, 0xc4, 0x4f, 0x87, 0x28, 0x2f, 0xeb, 0x4a, 0xd1, 0xd3, 0x7e, 0xfa, -0x02, 0x9f, 0x4c, 0xfc, 0x34, 0x46, 0xdf, 0xe1, 0x93, 0xc2, 0x4f, 0x2f, 0xd0, 0x77, 0xf8, 0x14, -0xe2, 0xa7, 0xa7, 0x85, 0xfe, 0x33, 0x74, 0x87, 0x80, 0x9f, 0x1f, 0x91, 0xbb, 0xff, 0x49, 0xe3, -0xbb, 0x75, 0x62, 0xbf, 0x52, 0x1e, 0xba, 0xbd, 0x15, 0x7c, 0xb7, 0x23, 0x37, 0x00, 0x7e, 0xde, -0xf3, 0x0d, 0xf0, 0x9e, 0x6f, 0x0d, 0xf2, 0x5b, 0x02, 0x93, 0x99, 0x33, 0xf2, 0x6a, 0x8a, 0x15, -0x0e, 0x72, 0x5b, 0xe6, 0xf2, 0x6e, 0x71, 0x17, 0x77, 0x6c, 0xc0, 0xdf, 0xa8, 0x5e, 0x42, 0xd0, -0xf2, 0x18, 0xc5, 0x1b, 0x4f, 0x81, 0xec, 0x77, 0x8c, 0x28, 0x0f, 0x93, 0xa7, 0xec, 0x5b, 0xe2, -0x74, 0xea, 0x2a, 0x2b, 0x72, 0xf7, 0xff, 0x2d, 0x6a, 0x2b, 0xd3, 0x53, 0xac, 0x28, 0x27, 0x59, -0xe4, 0x10, 0xa6, 0x86, 0x6c, 0xa0, 0x96, 0x8a, 0x54, 0xe9, 0x62, 0x3e, 0x55, 0x81, 0xdb, 0xb9, -0xe5, 0xd2, 0xfb, 0xf8, 0x0e, 0xa1, 0x40, 0x3a, 0x0a, 0x14, 0xdf, 0x93, 0x52, 0x0e, 0xe8, 0x29, -0xa4, 0x59, 0xf6, 0x39, 0xa7, 0x8c, 0x63, 0x0a, 0xc9, 0x1c, 0x3b, 0xf1, 0x4a, 0x9e, 0x20, 0xb6, -0x67, 0x7b, 0xab, 0x00, 0xd9, 0xa8, 0x48, 0x3f, 0x92, 0xbb, 0xdf, 0xd3, 0xf8, 0xee, 0x89, 0xec, -0x9b, 0x61, 0xf1, 0x66, 0x83, 0xdc, 0xfd, 0x7d, 0xf1, 0xe6, 0xfe, 0xec, 0x1b, 0xda, 0xdb, 0xc3, -0xe7, 0x5e, 0x2c, 0xfd, 0xfb, 0x7c, 0xb7, 0x24, 0xfb, 0x46, 0xe2, 0xb1, 0x93, 0xda, 0xe4, 0xee, -0x29, 0xee, 0x8d, 0x14, 0xcf, 0x7d, 0x63, 0x00, 0x2b, 0x3e, 0xd7, 0x71, 0x8b, 0xe8, 0xce, 0x97, -0x7b, 0x23, 0xf3, 0x33, 0x8e, 0x80, 0x76, 0x99, 0xef, 0xca, 0x72, 0x6f, 0x24, 0x7e, 0x36, 0xe2, -0x9b, 0x29, 0xba, 0x83, 0x4b, 0xb9, 0x37, 0x26, 0x7e, 0x3e, 0x8d, 0x6f, 0x3e, 0xe5, 0xbb, 0xe3, -0xb9, 0x37, 0x36, 0x7e, 0x3e, 0xc0, 0x3a, 0x75, 0x74, 0xb7, 0x3f, 0xf7, 0x46, 0xe1, 0xe7, 0x9d, -0x0c, 0x37, 0x74, 0xf7, 0x62, 0xee, 0x4d, 0x88, 0x9f, 0x9f, 0x66, 0x18, 0xa2, 0xbb, 0x2d, 0x05, -0x3d, 0xa5, 0xe7, 0x75, 0xdc, 0x53, 0xab, 0xba, 0x4a, 0x68, 0x55, 0x70, 0x3f, 0xad, 0x6a, 0x2f, -0xf7, 0xd2, 0xaa, 0x2e, 0xcd, 0xa6, 0xca, 0xd4, 0xfb, 0x45, 0x72, 0xf7, 0x65, 0xea, 0x7b, 0xd2, -0x6f, 0x92, 0x51, 0x7e, 0x16, 0xf3, 0xa5, 0x5d, 0x5a, 0x13, 0x42, 0x29, 0xdb, 0xa2, 0xd6, 0x72, -0xea, 0x59, 0x4c, 0xb5, 0x61, 0xea, 0x75, 0x9c, 0x6a, 0x53, 0xed, 0x0c, 0x17, 0xa6, 0x74, 0x05, -0x42, 0xa4, 0x93, 0xe7, 0xda, 0xa5, 0x5a, 0xf1, 0xb7, 0x56, 0x35, 0xb1, 0xc5, 0xb4, 0xbc, 0x5c, -0x42, 0x59, 0x99, 0xe8, 0xd8, 0x04, 0xd1, 0xd3, 0xcf, 0x23, 0x84, 0xf3, 0x7a, 0x2d, 0x84, 0x87, -0xc9, 0x53, 0x99, 0x53, 0xe7, 0x6c, 0x9d, 0x59, 0xdc, 0x1e, 0x45, 0x3e, 0x39, 0x74, 0x2d, 0x3e, -0x99, 0xb9, 0x5b, 0x94, 0xe0, 0xc9, 0xa2, 0x80, 0xb4, 0xe2, 0xc1, 0x96, 0x31, 0xdd, 0x12, 0x02, -0xcf, 0x2d, 0x11, 0xd6, 0x31, 0x13, 0x3c, 0xed, 0xcb, 0xd3, 0x78, 0x5a, 0xcb, 0xff, 0x26, 0x2f, -0xde, 0x3f, 0x9d, 0x17, 0x17, 0xa7, 0x2f, 0x74, 0x62, 0x40, 0xfa, 0x0a, 0xb1, 0x0f, 0x99, 0x7a, -0x94, 0x23, 0xf7, 0xf3, 0x24, 0xd1, 0x96, 0x16, 0x10, 0x79, 0xb2, 0xfc, 0xba, 0xa7, 0x07, 0x1c, -0xe1, 0x93, 0x50, 0x8b, 0xef, 0xb7, 0xec, 0xd0, 0xcf, 0x2a, 0x74, 0x7a, 0x35, 0x50, 0xb0, 0x6f, -0x29, 0x67, 0xbf, 0x65, 0x0b, 0x48, 0xda, 0x49, 0x43, 0xde, 0x2a, 0x8b, 0xdb, 0xe5, 0x35, 0x4b, -0xc8, 0x6f, 0x5f, 0x16, 0xb7, 0x5b, 0x96, 0x08, 0x4c, 0x64, 0xd4, 0xf1, 0x56, 0xf1, 0x52, 0x90, -0x04, 0xc6, 0x94, 0x10, 0xa7, 0x76, 0xd8, 0x91, 0x93, 0x16, 0xf8, 0xfe, 0x7b, 0x28, 0x6b, 0x93, -0x67, 0xf7, 0x5c, 0x8a, 0x09, 0x53, 0xc8, 0x97, 0xfc, 0x8b, 0x39, 0xbc, 0x2d, 0xe7, 0xf1, 0xb6, -0x74, 0x10, 0x71, 0xdf, 0xae, 0x2c, 0xde, 0xd6, 0x71, 0x2a, 0xe2, 0xed, 0x22, 0xf2, 0x08, 0x5f, -0x91, 0xc5, 0xdb, 0x52, 0x0d, 0xe6, 0x72, 0x64, 0xf1, 0xb6, 0xf4, 0x52, 0x16, 0x6f, 0xcb, 0x14, -0x8b, 0xf7, 0x44, 0x16, 0x6f, 0x63, 0x8b, 0xf3, 0x78, 0xbb, 0x34, 0x8f, 0xb7, 0xa5, 0xc3, 0xf8, -0xf5, 0xde, 0x2c, 0xde, 0x96, 0x8e, 0x64, 0xf1, 0xb6, 0xfc, 0x74, 0x0e, 0x23, 0x13, 0xde, 0x96, -0x31, 0xd7, 0x47, 0x59, 0xbc, 0x2d, 0xcb, 0x59, 0xbc, 0x2d, 0xaf, 0x24, 0xbb, 0xfd, 0x1c, 0xe6, -0xdd, 0xa7, 0xd3, 0x35, 0xc4, 0xd4, 0x70, 0x40, 0xa7, 0x6b, 0x0a, 0xe6, 0x6a, 0xa3, 0x35, 0x22, -0x30, 0x37, 0xf9, 0x12, 0x14, 0x78, 0x1e, 0xd3, 0xeb, 0xf0, 0xeb, 0x7d, 0x3a, 0x0e, 0x5f, 0x85, -0x94, 0xc1, 0x98, 0xc5, 0xd5, 0xd2, 0x89, 0x2c, 0xae, 0x96, 0x09, 0xc3, 0x90, 0xd5, 0x9e, 0x41, -0xb5, 0x92, 0xed, 0x9e, 0x6a, 0xa2, 0xb1, 0xf3, 0x91, 0xdd, 0x31, 0xed, 0xb4, 0x9f, 0x67, 0x2f, -0xc9, 0xe7, 0x29, 0x2d, 0xe1, 0x42, 0x0e, 0x79, 0x5c, 0xb5, 0xd0, 0x3d, 0xcb, 0xa1, 0x96, 0x45, -0xec, 0x3f, 0xda, 0xbe, 0x21, 0xfa, 0x28, 0xe6, 0x7c, 0x9d, 0xd2, 0x99, 0xaf, 0x75, 0xd2, 0x0e, -0x17, 0x3d, 0xd9, 0x9f, 0xc3, 0x35, 0x01, 0xd2, 0xa8, 0xfe, 0x85, 0x91, 0xbe, 0x50, 0xdf, 0xd0, -0x9f, 0x24, 0xf0, 0xe2, 0xd3, 0x2e, 0xce, 0x37, 0xa2, 0x92, 0x87, 0x27, 0xbc, 0x8b, 0xd0, 0xdd, -0x30, 0xfb, 0xa6, 0xb2, 0xa4, 0xac, 0x6a, 0x54, 0xcf, 0x5b, 0x4c, 0xda, 0x01, 0x08, 0x41, 0x15, -0xea, 0x12, 0x3d, 0x05, 0x39, 0x52, 0x7c, 0xef, 0x28, 0x78, 0x22, 0x08, 0x2b, 0x51, 0x23, 0xb9, -0xd2, 0x67, 0xa7, 0x8d, 0x98, 0x52, 0xa6, 0xfa, 0x32, 0xa0, 0x7a, 0xf4, 0xd6, 0x10, 0x16, 0xb5, -0xe7, 0xca, 0xb4, 0x61, 0xfd, 0xa0, 0xd5, 0x73, 0x7f, 0x5d, 0x60, 0x8b, 0x8f, 0x4f, 0x0c, 0x3f, -0x3a, 0x1c, 0x1d, 0xb6, 0x93, 0x2f, 0xfe, 0x4b, 0xb9, 0x92, 0xaf, 0xe3, 0x5c, 0xe5, 0xb9, 0x72, -0xc5, 0xb3, 0x29, 0xd7, 0x5b, 0xeb, 0xa0, 0xc4, 0x5e, 0x64, 0xc4, 0xfb, 0x22, 0xf1, 0x7e, 0xea, -0x84, 0xfe, 0x6c, 0xd0, 0x9f, 0x0f, 0xe7, 0x6a, 0x15, 0xcf, 0xfb, 0x73, 0x63, 0x22, 0x9e, 0x77, -0xea, 0x23, 0x7c, 0xdd, 0x5f, 0xd2, 0xd3, 0xb6, 0xdc, 0x18, 0x5b, 0xf9, 0xed, 0x93, 0xb9, 0xda, -0x2d, 0xfc, 0xfc, 0x70, 0xae, 0x76, 0x3e, 0xd3, 0xe7, 0xb4, 0x15, 0xb9, 0x34, 0xdb, 0xe0, 0x75, -0x8d, 0xd2, 0x9e, 0x61, 0xfb, 0x6a, 0x35, 0xa0, 0xf7, 0xbb, 0x56, 0x75, 0xeb, 0x77, 0x41, 0x55, -0xa1, 0x3b, 0x96, 0x17, 0xe7, 0xf8, 0x9f, 0x03, 0xdf, 0xb7, 0xba, 0xc0, 0x0f, 0x32, 0xfe, 0x06, -0xc0, 0x80, 0xbf, 0x35, 0x24, 0xcd, 0x27, 0xff, 0x3b, 0x79, 0xeb, 0xe2, 0xab, 0x41, 0xbf, 0xd2, -0xb3, 0x8c, 0xff, 0x9a, 0x58, 0xaf, 0x6d, 0xcf, 0x41, 0x34, 0xa3, 0xaf, 0xdd, 0xf6, 0x82, 0x7b, -0x1c, 0xf1, 0xa8, 0x38, 0x47, 0xfe, 0xb2, 0xbd, 0xf6, 0xaf, 0xa6, 0x39, 0x45, 0x7a, 0xe7, 0x76, -0x1d, 0xa7, 0x90, 0x5e, 0x5a, 0x0d, 0xd9, 0x21, 0xae, 0x0d, 0xcc, 0x05, 0xd2, 0x51, 0x24, 0xab, -0x44, 0xd3, 0x6d, 0x61, 0xb6, 0x4c, 0x34, 0xdf, 0x16, 0x02, 0x61, 0x9d, 0x1c, 0x31, 0x61, 0x1e, -0x9c, 0x79, 0xd3, 0xa1, 0x6e, 0x28, 0x6f, 0x6f, 0xf0, 0xad, 0xc5, 0x67, 0x5a, 0xdb, 0xe6, 0x83, -0xdd, 0x50, 0xd1, 0x1e, 0xa1, 0xef, 0x30, 0xa5, 0x98, 0x72, 0x1c, 0xc0, 0x1c, 0xf4, 0x3d, 0xd9, -0x11, 0xd2, 0xf3, 0x04, 0xe6, 0xa0, 0x72, 0x84, 0x66, 0x39, 0xe9, 0x56, 0xbb, 0x84, 0x4e, 0x16, -0x71, 0xa5, 0xa4, 0xff, 0xee, 0x22, 0x29, 0xca, 0x1e, 0x55, 0x9a, 0x15, 0x99, 0xb1, 0xfa, 0xeb, -0x81, 0x90, 0x3d, 0x4a, 0xbb, 0x8a, 0x5b, 0xfe, 0x3e, 0x23, 0x89, 0x14, 0x5f, 0x48, 0x35, 0x5b, -0x24, 0xf8, 0xab, 0x94, 0xfc, 0xf8, 0xfe, 0xf6, 0x35, 0x88, 0x6b, 0x0d, 0x25, 0x37, 0xa6, 0x3e, -0xe2, 0xb3, 0x65, 0xe1, 0x5b, 0xaa, 0xde, 0xa9, 0xfb, 0x08, 0x21, 0x3f, 0x48, 0xa4, 0xbf, 0xd5, -0x3c, 0x39, 0x75, 0x48, 0x4d, 0xb5, 0x0d, 0x3b, 0x16, 0x94, 0x7c, 0x23, 0x6d, 0xe4, 0x6f, 0xcf, -0xd9, 0x9b, 0x59, 0x96, 0xda, 0x9b, 0x28, 0x49, 0xb7, 0xb4, 0x3d, 0x6c, 0x6f, 0x56, 0x74, 0x4d, -0x2b, 0xed, 0x75, 0x4f, 0xa8, 0xa6, 0x0a, 0x9c, 0xf1, 0x57, 0x6a, 0x11, 0xc3, 0x7a, 0x65, 0x5f, -0x51, 0x07, 0xef, 0x86, 0x73, 0xec, 0xa4, 0xc7, 0x83, 0xc9, 0x85, 0x17, 0xf6, 0x6b, 0x8a, 0xd5, -0xde, 0x6c, 0x2f, 0xea, 0x58, 0x2d, 0xf4, 0xb4, 0xd9, 0x76, 0x9a, 0xdf, 0xd2, 0xb9, 0x00, 0x96, -0x67, 0x42, 0xc9, 0x3d, 0x81, 0xeb, 0x61, 0x44, 0x68, 0x4d, 0xa3, 0xc4, 0x78, 0x91, 0xed, 0xb0, -0xf5, 0x33, 0x61, 0x8a, 0x42, 0xe6, 0xac, 0x82, 0xc5, 0x7c, 0x36, 0x6a, 0x52, 0xc4, 0x6e, 0xd2, -0x1c, 0x0f, 0x8e, 0xa9, 0xae, 0x67, 0xb6, 0x45, 0xdf, 0xa9, 0xa0, 0x33, 0xe6, 0x25, 0xb9, 0x73, -0xd8, 0x39, 0xf6, 0x04, 0xf9, 0x29, 0x10, 0x32, 0xdb, 0x72, 0x20, 0x0f, 0x41, 0x2c, 0x7d, 0xc8, -0xd3, 0xa4, 0xbf, 0x9a, 0x9c, 0x0e, 0xda, 0x21, 0x96, 0x2f, 0xe3, 0x42, 0x87, 0x92, 0x64, 0x73, -0xaf, 0xc9, 0x4f, 0xe5, 0xce, 0xd4, 0x75, 0xb9, 0x50, 0xb2, 0xbb, 0x75, 0x17, 0x7b, 0xf9, 0xc4, -0xd5, 0xea, 0xa0, 0x34, 0x39, 0xab, 0x0d, 0xcd, 0xd1, 0xaf, 0xad, 0x79, 0xb9, 0x7f, 0xe5, 0x75, -0x27, 0x72, 0x72, 0x7f, 0xb5, 0x09, 0xa5, 0x9f, 0x62, 0x61, 0x39, 0x37, 0x15, 0x72, 0xb0, 0xae, -0x9a, 0x5f, 0x68, 0x14, 0x4d, 0xf9, 0x24, 0x91, 0xaf, 0xe1, 0x0f, 0x00, 0xbc, 0x46, 0x2a, 0x5c, -0x33, 0x0f, 0x0f, 0x93, 0x37, 0x8f, 0xe3, 0x71, 0xb1, 0x23, 0xf6, 0xc4, 0xb0, 0xd2, 0xc8, 0x6f, -0x0c, 0xc2, 0x3b, 0xe4, 0xd4, 0x36, 0x6f, 0x11, 0xed, 0x7d, 0x1e, 0x7f, 0x58, 0x69, 0x7a, 0x74, -0x0f, 0xe9, 0x1d, 0xb1, 0x9f, 0x52, 0x17, 0x9f, 0x2a, 0xfc, 0x00, 0xeb, 0xc9, 0xea, 0x9d, 0xb9, -0x59, 0xfe, 0x5c, 0x49, 0xfa, 0x74, 0xb5, 0xd8, 0xae, 0x1a, 0x6c, 0x97, 0xbf, 0x28, 0x73, 0xdd, -0xb1, 0x65, 0x07, 0x1a, 0x8e, 0x87, 0x7d, 0x61, 0x82, 0x5a, 0x7f, 0x91, 0x78, 0x1a, 0xd9, 0xad, -0x58, 0x26, 0x36, 0x28, 0xa1, 0x91, 0xb7, 0xc4, 0x9e, 0x44, 0x0d, 0xed, 0x49, 0x14, 0x61, 0x1f, -0xf8, 0x6d, 0x90, 0xf2, 0x1a, 0xfd, 0x45, 0xe2, 0xe9, 0xa9, 0xdd, 0x0b, 0xcf, 0x9e, 0x80, 0xa7, -0x3e, 0x04, 0x39, 0x21, 0xe7, 0xf6, 0x25, 0x62, 0x2e, 0xda, 0x97, 0x48, 0xd8, 0xad, 0x8e, 0x5e, -0x9c, 0x97, 0x66, 0xd6, 0x12, 0x24, 0xf9, 0x7f, 0x42, 0xd8, 0x33, 0xd4, 0x92, 0x0e, 0xa7, 0x52, -0x3b, 0x00, 0xd5, 0x35, 0x03, 0x4c, 0xb3, 0x03, 0x28, 0xff, 0x2f, 0xae, 0xf1, 0x82, 0x3b, 0xfe, -0x4a, 0x60, 0x00, 0x9c, 0x74, 0x82, 0x26, 0x76, 0x55, 0x2f, 0xa9, 0x74, 0x1f, 0xef, 0xd5, 0x34, -0x91, 0xd2, 0x3c, 0x79, 0xa9, 0x97, 0xa1, 0xc4, 0x51, 0xbd, 0x8e, 0xcf, 0x50, 0x2c, 0x0c, 0x39, -0x72, 0xf2, 0x71, 0xb2, 0x4f, 0x67, 0xcf, 0x55, 0xdd, 0x74, 0x0a, 0xc8, 0x79, 0x7c, 0x28, 0xe7, -0x05, 0xbc, 0xcd, 0x78, 0x4d, 0x80, 0xa7, 0x6d, 0xad, 0xb7, 0x41, 0x68, 0xa1, 0x7a, 0x23, 0xa0, -0xb4, 0xbc, 0x17, 0xac, 0x54, 0xe1, 0x92, 0x82, 0xfc, 0x00, 0xf1, 0x08, 0xec, 0x95, 0x11, 0xe1, -0x9d, 0xf4, 0x4a, 0x15, 0x94, 0x36, 0x6d, 0x42, 0x2b, 0x87, 0x46, 0x7c, 0x08, 0x72, 0xf0, 0xf0, -0x23, 0x0b, 0xbb, 0xf1, 0x4d, 0x9b, 0x05, 0xa4, 0xa4, 0x42, 0x6a, 0x99, 0xd8, 0xc1, 0xbb, 0xad, -0x07, 0x2c, 0x60, 0xc0, 0x5f, 0x2b, 0x49, 0x10, 0xb0, 0xd1, 0x36, 0x97, 0x3c, 0x5a, 0x4d, 0x90, -0x0e, 0xea, 0x30, 0xde, 0xdf, 0xc1, 0xf7, 0x46, 0x5c, 0xb5, 0xf2, 0x6d, 0xc4, 0x5d, 0x1a, 0xf0, -0xd7, 0x8c, 0x39, 0x97, 0xe0, 0x9a, 0x96, 0x11, 0x5e, 0xe3, 0x22, 0x7f, 0x36, 0x2f, 0xe5, 0x2b, -0x99, 0xcb, 0x1a, 0x36, 0x88, 0x3b, 0x46, 0xc2, 0x7e, 0xc0, 0xf4, 0xda, 0xf8, 0xf0, 0xe6, 0x10, -0xe1, 0x81, 0x92, 0xb9, 0xac, 0x6b, 0x83, 0xd8, 0x44, 0x7f, 0x73, 0xa7, 0xfe, 0xc6, 0xa8, 0x96, -0xe8, 0xad, 0x59, 0xc6, 0x75, 0x2c, 0xa3, 0x3a, 0x5a, 0xde, 0xab, 0x04, 0xb1, 0x7e, 0xbc, 0x66, -0x47, 0x1f, 0xfb, 0xd7, 0xbc, 0xe8, 0x9d, 0x07, 0xa5, 0xbc, 0x07, 0x3c, 0x0f, 0x2c, 0x0c, 0x19, -0x97, 0xfc, 0x6e, 0x3e, 0xcb, 0x28, 0x65, 0xbd, 0x53, 0xc4, 0x31, 0xbe, 0x79, 0xa4, 0xc7, 0x46, -0x5a, 0xd4, 0x13, 0x61, 0x47, 0x9f, 0x76, 0x5e, 0xdf, 0xb5, 0xf9, 0xb2, 0x32, 0x76, 0x62, 0x19, -0x46, 0xbd, 0x8c, 0x22, 0xbd, 0x8c, 0xa9, 0x3f, 0xb3, 0x8c, 0xe5, 0x58, 0x86, 0x49, 0x2f, 0x83, -0x70, 0x9f, 0x91, 0xda, 0xf1, 0x67, 0x95, 0xe0, 0xc7, 0x12, 0xcc, 0x7a, 0x09, 0x46, 0xbd, 0x84, -0xa9, 0x6b, 0x94, 0x30, 0xcb, 0x6b, 0x26, 0x2d, 0x3b, 0x2c, 0xa7, 0xfc, 0xaa, 0x72, 0x90, 0xaf, -0xbc, 0x7c, 0x92, 0xf6, 0xad, 0x03, 0x0f, 0x51, 0xd4, 0x3e, 0xe4, 0x9a, 0x65, 0x8a, 0x6e, 0x40, -0xe7, 0x58, 0x14, 0xd5, 0x80, 0xf6, 0x91, 0xb9, 0x86, 0x2a, 0x31, 0x56, 0x07, 0xce, 0xe0, 0x58, -0x2d, 0x08, 0x3c, 0xc4, 0x1e, 0x21, 0x11, 0x83, 0x4f, 0x9c, 0xc1, 0x7e, 0xc7, 0xe9, 0x2b, 0xb6, -0xae, 0xa2, 0x1c, 0x7d, 0xda, 0x25, 0xfa, 0x1a, 0x9f, 0x05, 0x06, 0xef, 0xd3, 0xa6, 0xa8, 0x14, -0xda, 0x33, 0x7b, 0xab, 0x0d, 0x7f, 0x27, 0xdf, 0x42, 0x39, 0x05, 0xdb, 0x77, 0xd6, 0xa9, 0xb7, -0x91, 0xdb, 0x27, 0xf6, 0x54, 0xc8, 0x17, 0x33, 0xe2, 0x77, 0x4c, 0xf1, 0xf2, 0x4e, 0x7d, 0x65, -0x72, 0x4c, 0xab, 0xa7, 0xfa, 0x99, 0x4f, 0xb6, 0x52, 0x8c, 0x3d, 0x2c, 0x03, 0x4b, 0xe6, 0x32, -0x78, 0x77, 0x5b, 0x60, 0xcb, 0xa0, 0xe2, 0x98, 0x07, 0x26, 0x27, 0xf6, 0xc8, 0x85, 0x3d, 0x43, -0xac, 0x59, 0x4a, 0xbd, 0xc5, 0xd2, 0x8a, 0x79, 0x75, 0x91, 0x2e, 0xe8, 0x05, 0xee, 0x7b, 0xee, -0xf9, 0xd2, 0x79, 0x6a, 0xd1, 0xa3, 0xdc, 0xa2, 0x47, 0xb1, 0x34, 0x3a, 0x63, 0x6c, 0x39, 0x63, -0x08, 0x0a, 0x3d, 0x62, 0x5c, 0x19, 0x06, 0xac, 0x9f, 0x4e, 0x34, 0x2c, 0x5e, 0xb2, 0x28, 0xac, -0xd6, 0x5b, 0xb3, 0x59, 0xdf, 0x53, 0xe6, 0x5a, 0xa1, 0x96, 0xe6, 0x86, 0x4e, 0x25, 0x70, 0x7c, -0x6d, 0x76, 0xac, 0x15, 0x71, 0x76, 0x79, 0xa2, 0x1b, 0x2c, 0xbd, 0x00, 0x3b, 0x58, 0x2f, 0xda, -0x8b, 0x2b, 0x69, 0x1b, 0xd7, 0x2c, 0x61, 0xaf, 0xf8, 0x1c, 0xe4, 0xd2, 0x2a, 0x9c, 0x37, 0xdf, -0x01, 0xa1, 0x73, 0x77, 0x0d, 0x28, 0x3c, 0x10, 0xe2, 0xde, 0x1a, 0xa9, 0xb7, 0xe2, 0xb9, 0x76, -0x35, 0x7e, 0xe1, 0xc7, 0x2f, 0x26, 0xaf, 0x86, 0xb7, 0x82, 0xdc, 0x46, 0xf1, 0x7c, 0x67, 0x18, -0xe7, 0xd0, 0x0d, 0x81, 0xab, 0xe1, 0xea, 0xce, 0x10, 0x62, 0x3d, 0x37, 0xd4, 0x5c, 0x0d, 0x2f, -0xf8, 0x06, 0x57, 0x14, 0x62, 0x94, 0x5c, 0x2b, 0xa7, 0xba, 0xa9, 0x75, 0x2d, 0x67, 0x2a, 0x41, -0x3b, 0xfd, 0xa7, 0x67, 0x69, 0xea, 0xec, 0xf4, 0x59, 0x7a, 0x94, 0x67, 0xe9, 0xd1, 0x3f, 0x7b, -0x96, 0xb4, 0x27, 0xa7, 0xcf, 0xd2, 0xe7, 0xc9, 0x2f, 0x9b, 0xa5, 0xac, 0xdf, 0x52, 0xc4, 0x61, -0xad, 0x38, 0x63, 0x8b, 0xf9, 0x1c, 0xbf, 0xba, 0x9a, 0xf6, 0x55, 0x5d, 0xd0, 0xe1, 0xee, 0x05, -0xbf, 0xb7, 0x17, 0xea, 0xa0, 0x56, 0xb9, 0x81, 0xb4, 0x1f, 0x46, 0x47, 0x52, 0xa6, 0xf9, 0xb4, -0x8b, 0xeb, 0x51, 0xcd, 0xf3, 0xe9, 0x94, 0x95, 0x74, 0x15, 0x3a, 0x22, 0xb1, 0xc8, 0x00, 0xd4, -0xe0, 0x3f, 0x69, 0x2c, 0xf8, 0x86, 0xa2, 0x47, 0x37, 0xa9, 0x06, 0xda, 0x89, 0x73, 0xdc, 0xfd, -0xe8, 0x7e, 0xa4, 0x39, 0xe4, 0x91, 0xec, 0x19, 0xf6, 0xd3, 0x5c, 0x31, 0xbf, 0x1b, 0x3c, 0x10, -0xc0, 0xdf, 0x6a, 0xa8, 0x51, 0x12, 0xba, 0xbf, 0xb5, 0x36, 0xda, 0x59, 0x73, 0xf6, 0x42, 0x3d, -0xc5, 0x9d, 0xb2, 0x0c, 0x50, 0xe9, 0xe9, 0x3a, 0xde, 0x65, 0xb5, 0x25, 0x62, 0xa9, 0x0a, 0x13, -0x20, 0x0f, 0x0c, 0x70, 0x84, 0x53, 0xac, 0xc4, 0x01, 0x8e, 0xaf, 0x4e, 0x57, 0x90, 0x2c, 0xcd, -0x6f, 0x6c, 0xd3, 0xd2, 0x01, 0xb6, 0xe7, 0xf7, 0x67, 0x43, 0x2b, 0x09, 0x07, 0xc7, 0x07, 0x20, -0xc8, 0x5e, 0x5e, 0x3d, 0x64, 0xdd, 0x40, 0x98, 0x27, 0xe0, 0x85, 0x0e, 0x1a, 0xeb, 0x01, 0x94, -0xa5, 0x49, 0x8b, 0x60, 0x60, 0xc8, 0x87, 0x79, 0xe6, 0xc7, 0x21, 0x8a, 0x1c, 0x5d, 0xfd, 0xfc, -0x30, 0x34, 0x1e, 0x8c, 0xb7, 0x47, 0xe6, 0x47, 0x20, 0x3e, 0x11, 0x6e, 0x0f, 0xcd, 0x0f, 0x41, -0x02, 0x67, 0x5b, 0x86, 0x9b, 0x52, 0x25, 0x48, 0x79, 0x9f, 0xb2, 0x37, 0x92, 0x07, 0xf3, 0x29, -0x99, 0xe5, 0xf1, 0x39, 0xdc, 0x2f, 0x8a, 0xea, 0xd9, 0x91, 0x2e, 0xf3, 0x1a, 0x59, 0x9f, 0xc0, -0x48, 0x34, 0x5d, 0xea, 0xd0, 0x6d, 0x0b, 0x14, 0xfb, 0x42, 0xac, 0x23, 0xca, 0xdc, 0x62, 0x63, -0x7c, 0x37, 0xd6, 0x1d, 0x8f, 0xef, 0xa9, 0x21, 0x6d, 0xce, 0x57, 0x38, 0xf2, 0xf7, 0x21, 0xdd, -0x9f, 0x1b, 0x68, 0x46, 0xe1, 0xcb, 0x1a, 0xa9, 0xe0, 0x00, 0x12, 0x13, 0x1e, 0x99, 0xdb, 0xc9, -0x26, 0xd2, 0x83, 0xbf, 0x35, 0x6c, 0xe7, 0x46, 0x69, 0x4f, 0xb6, 0xc5, 0xc6, 0x90, 0xc7, 0xea, -0x83, 0xa9, 0xa7, 0xf3, 0x1e, 0x4b, 0x69, 0xa7, 0x71, 0xbe, 0xdd, 0x21, 0x76, 0x19, 0x3d, 0xf5, -0x5e, 0xf0, 0x07, 0xbd, 0x50, 0x53, 0xeb, 0x85, 0xba, 0x3a, 0xec, 0x91, 0x9d, 0xf4, 0x55, 0xe6, -0xe2, 0xdc, 0x0e, 0x6d, 0xd8, 0x00, 0xca, 0xfc, 0x21, 0xbb, 0x1d, 0xec, 0x62, 0x4f, 0x81, 0x38, -0xa1, 0x1a, 0x94, 0x5f, 0xc9, 0x36, 0x9a, 0xf8, 0x27, 0xd6, 0x7b, 0x7f, 0x1a, 0x47, 0xb0, 0x08, -0xe7, 0x8d, 0x75, 0xe0, 0x33, 0xca, 0xc4, 0x26, 0x94, 0xc9, 0x4d, 0x37, 0xf0, 0xde, 0x3d, 0xf2, -0x66, 0x31, 0xfd, 0x1c, 0xb8, 0x11, 0xff, 0x9b, 0x04, 0xef, 0xf0, 0x89, 0x39, 0xb2, 0x0d, 0x25, -0x1c, 0x37, 0x7c, 0x93, 0x78, 0x9b, 0x96, 0xf7, 0xa2, 0x97, 0x68, 0x2f, 0x40, 0x78, 0x31, 0x16, -0xbc, 0xbc, 0x90, 0x4a, 0x52, 0x56, 0xf2, 0xb4, 0x06, 0xd6, 0xe5, 0xd7, 0x35, 0xca, 0x7b, 0xd6, -0xa4, 0xed, 0x2c, 0x1f, 0xe7, 0x34, 0xdd, 0x52, 0x25, 0x14, 0xeb, 0x35, 0xe5, 0x49, 0xc0, 0x62, -0xb6, 0xa7, 0x5a, 0x3c, 0xac, 0x3a, 0x07, 0xbf, 0x4f, 0xfc, 0x3e, 0xc7, 0x80, 0x35, 0x25, 0x56, -0xa7, 0x4b, 0x33, 0x26, 0xb5, 0x24, 0xb1, 0x5a, 0xd8, 0x5b, 0x45, 0x87, 0x55, 0x63, 0x66, 0x06, -0xe9, 0x5d, 0x39, 0xd8, 0x17, 0x31, 0x90, 0x35, 0x01, 0xdb, 0x3c, 0x22, 0x2c, 0x2b, 0x6e, 0xdd, -0xde, 0x00, 0x39, 0xb1, 0xba, 0x7c, 0x1c, 0x21, 0x9a, 0x13, 0xe1, 0x4f, 0x0d, 0xe1, 0x2d, 0x2e, -0x34, 0x04, 0x61, 0x8c, 0x6d, 0x5b, 0x6c, 0x69, 0x1b, 0xf6, 0xc2, 0xe0, 0xf8, 0x01, 0xf6, 0xa3, -0x92, 0xfa, 0xa2, 0x96, 0xde, 0xd2, 0x8c, 0xcf, 0xcf, 0x43, 0xf5, 0x0d, 0x3d, 0xb0, 0x04, 0x2a, -0xf1, 0xf7, 0x7b, 0xf0, 0xcd, 0x5b, 0x5a, 0x10, 0x5b, 0xb5, 0x91, 0x16, 0x34, 0x59, 0xc2, 0x61, -0xef, 0x70, 0x15, 0x62, 0xfb, 0xac, 0x69, 0xab, 0xd2, 0xa6, 0x74, 0x49, 0xc9, 0x51, 0xe1, 0x93, -0xce, 0xc7, 0xb0, 0x69, 0xe5, 0xf7, 0x59, 0xd8, 0x34, 0x52, 0x0c, 0x52, 0xb5, 0x7c, 0xa7, 0x18, -0xf9, 0x5e, 0xde, 0x0d, 0xb6, 0xa8, 0x26, 0xf2, 0xcc, 0xab, 0xca, 0x8f, 0xee, 0xbf, 0x25, 0x8e, -0xb2, 0xa0, 0x41, 0xb1, 0xd1, 0xfe, 0x01, 0x96, 0x6d, 0x0b, 0x9f, 0x44, 0x1a, 0x13, 0x47, 0x0e, -0x84, 0xb4, 0x23, 0x69, 0xc7, 0x4a, 0xf1, 0xb6, 0xb1, 0xbe, 0x24, 0x8e, 0xf0, 0x10, 0xa8, 0xf0, -0xe9, 0x0a, 0xba, 0x92, 0x4c, 0x42, 0xb3, 0x5f, 0xeb, 0xd4, 0xb9, 0xef, 0xe9, 0x7b, 0xcc, 0x5e, -0x70, 0x45, 0x22, 0xea, 0x22, 0x25, 0x44, 0x9a, 0x15, 0x1c, 0xd5, 0xf1, 0xb2, 0xa6, 0xad, 0x34, -0xee, 0x1c, 0xbe, 0x2f, 0x54, 0xe0, 0x57, 0xc8, 0x0a, 0x25, 0x50, 0x0e, 0x73, 0xc0, 0x01, 0x88, -0x55, 0x03, 0xab, 0x55, 0x27, 0x52, 0x1f, 0x59, 0x55, 0x88, 0x06, 0xa9, 0x15, 0xb7, 0x13, 0xa7, -0x50, 0x7a, 0x43, 0x18, 0xac, 0xaa, 0x15, 0x7f, 0xaf, 0x53, 0x4d, 0xb7, 0x84, 0x49, 0xb7, 0x74, -0xda, 0x2e, 0xd0, 0xd3, 0xed, 0x11, 0x9f, 0x4c, 0x73, 0xd2, 0xf2, 0xde, 0xd2, 0x4a, 0xb1, 0x13, -0xc4, 0x7c, 0x12, 0xcb, 0x38, 0x38, 0x1f, 0xe2, 0x9c, 0x33, 0xc2, 0xb2, 0x4c, 0x30, 0xb7, 0x6b, -0xd2, 0x32, 0x6d, 0x27, 0x88, 0x3c, 0x23, 0xb4, 0x82, 0x01, 0x7f, 0x5d, 0xa4, 0xb5, 0x41, 0x27, -0x0d, 0xb8, 0x66, 0x0d, 0xb4, 0xf7, 0x8f, 0x58, 0xad, 0xb2, 0x70, 0x1f, 0xa8, 0x52, 0x48, 0x65, -0x16, 0x6f, 0x97, 0xd8, 0x63, 0x9c, 0x9a, 0xca, 0x7a, 0xa7, 0x27, 0x5b, 0x74, 0xd1, 0xcb, 0x41, -0xe3, 0xf6, 0xe1, 0xfb, 0x92, 0xdc, 0x4b, 0x82, 0x73, 0x53, 0xae, 0xa7, 0x15, 0x08, 0x6c, 0x4e, -0xc4, 0x40, 0xb5, 0xfe, 0xef, 0xa8, 0x64, 0x5b, 0x26, 0x2b, 0x0f, 0xa9, 0x76, 0xbc, 0x1a, 0xd4, -0x0b, 0xf8, 0x6b, 0x54, 0xcf, 0x66, 0x88, 0x4b, 0xb2, 0x22, 0x74, 0xd1, 0xf5, 0x3a, 0x65, 0x58, -0x35, 0x28, 0xff, 0x00, 0xe6, 0xac, 0xb4, 0x48, 0xd2, 0x0e, 0x69, 0x1b, 0xbb, 0x0b, 0xf6, 0xf4, -0x3d, 0x5d, 0xb0, 0xd8, 0x77, 0x3d, 0xe9, 0x42, 0xa3, 0xf4, 0x26, 0x93, 0xb7, 0xd1, 0x5a, 0x2c, -0x2f, 0x80, 0xa5, 0xd9, 0xfb, 0xf4, 0xa8, 0xae, 0xca, 0xc4, 0x6e, 0x5f, 0xfc, 0xd0, 0x78, 0x4d, -0x73, 0x7b, 0x4b, 0x7b, 0x42, 0x99, 0x65, 0x37, 0x2d, 0xf8, 0xe3, 0x38, 0x38, 0x2c, 0xb1, 0xb3, -0xcf, 0x80, 0xd3, 0x4c, 0x78, 0x80, 0x4f, 0xc9, 0x2d, 0x62, 0xe4, 0xf4, 0x13, 0xf2, 0x72, 0x3a, -0x95, 0x0b, 0xb4, 0x8e, 0x26, 0xfa, 0x7c, 0x35, 0xa1, 0x5a, 0xec, 0x6b, 0xec, 0xfc, 0x33, 0xf0, -0x8b, 0xdf, 0x0c, 0xd8, 0xe9, 0xfc, 0xda, 0x8f, 0x9c, 0xdb, 0xe8, 0x82, 0xbe, 0xb2, 0x40, 0x88, -0x76, 0x37, 0xc2, 0x67, 0x47, 0xe0, 0x67, 0xaf, 0xdf, 0x9b, 0x5d, 0x19, 0xbc, 0x07, 0x45, 0xa3, -0x74, 0xa5, 0x8e, 0x97, 0x56, 0x7d, 0x6d, 0xdd, 0x67, 0x91, 0x62, 0xcf, 0x5b, 0x99, 0x6e, 0xb8, -0x32, 0x9f, 0xf0, 0x70, 0x35, 0xed, 0xcb, 0xfb, 0x75, 0xab, 0x42, 0x10, 0x31, 0x3e, 0xa6, 0x96, -0xe8, 0xda, 0x61, 0xfb, 0x75, 0x8a, 0xd2, 0x85, 0x10, 0xd0, 0xeb, 0xaa, 0x82, 0x5e, 0x4f, 0x90, -0xac, 0xad, 0xee, 0xaf, 0x79, 0x77, 0x53, 0xf8, 0x94, 0xa4, 0x22, 0x54, 0xfb, 0x9b, 0x4f, 0x43, -0x70, 0xf9, 0x92, 0x83, 0x9b, 0x56, 0xb4, 0x1c, 0xda, 0xa4, 0x82, 0xfc, 0xae, 0xe2, 0x26, 0x2b, -0x03, 0xf9, 0x4d, 0xdd, 0xfe, 0x0c, 0x94, 0x46, 0xd6, 0x11, 0x61, 0xeb, 0x2c, 0x79, 0xa7, 0x1b, -0xdf, 0xe6, 0x2d, 0xe3, 0x95, 0x58, 0xf8, 0x84, 0x2c, 0x3c, 0x20, 0x17, 0x7a, 0x5a, 0x73, 0x43, -0xa9, 0x85, 0x43, 0x86, 0xe0, 0x17, 0xf1, 0x25, 0xa5, 0xa4, 0xbd, 0x85, 0x32, 0x55, 0x5b, 0x49, -0x10, 0x6c, 0xa4, 0x69, 0x25, 0xdf, 0xa3, 0x96, 0xea, 0x9c, 0x39, 0x59, 0x0d, 0x85, 0x08, 0xe7, -0xca, 0x8d, 0x2a, 0xf9, 0x35, 0xf0, 0xb4, 0x77, 0xc1, 0x59, 0x6c, 0x45, 0xad, 0x6f, 0x08, 0xca, -0xdf, 0x3a, 0x09, 0x1e, 0x79, 0xe4, 0x73, 0xb2, 0xa3, 0x02, 0xd9, 0x49, 0x6f, 0x71, 0x76, 0xab, -0xff, 0xd7, 0xa9, 0xa2, 0x3d, 0xb4, 0xa7, 0x64, 0xaf, 0x96, 0x3b, 0xb1, 0x26, 0xc7, 0xe8, 0xea, -0xfb, 0x90, 0x61, 0x4b, 0x59, 0x94, 0x6a, 0x79, 0xf1, 0xe8, 0x36, 0x70, 0x2d, 0x01, 0x69, 0x12, -0xdf, 0x75, 0xb4, 0xaf, 0x9e, 0x17, 0x96, 0x3b, 0x30, 0xb5, 0x65, 0x74, 0x43, 0x6a, 0xd0, 0x42, -0xfb, 0xc9, 0xe5, 0xa9, 0x6e, 0xa6, 0x3b, 0x87, 0x91, 0xce, 0xf9, 0xdd, 0xd5, 0x60, 0xe8, 0xdc, -0xa4, 0x7a, 0x94, 0x18, 0xe3, 0xc4, 0x8e, 0xf4, 0x9c, 0xb1, 0x17, 0xe5, 0x96, 0x74, 0x39, 0x49, -0x78, 0xd8, 0xf3, 0x0f, 0xc9, 0xf3, 0x81, 0x88, 0xbc, 0x27, 0x2c, 0x29, 0x95, 0x98, 0xdb, 0x96, -0x78, 0x20, 0x35, 0xc1, 0x9c, 0x82, 0x1f, 0x4b, 0xe9, 0x8f, 0x60, 0x7e, 0xfc, 0x6f, 0xc5, 0xff, -0x0e, 0xfc, 0xef, 0xc4, 0xff, 0xc5, 0x91, 0xe7, 0x8b, 0xf6, 0x90, 0x97, 0x1c, 0x69, 0x45, 0x62, -0x35, 0x4a, 0xa0, 0x19, 0xc4, 0x17, 0x0e, 0x88, 0xe2, 0xaf, 0x0b, 0xe2, 0xec, 0x65, 0x9d, 0x3c, -0x65, 0x49, 0x54, 0xea, 0x8d, 0xa7, 0x75, 0x6f, 0xeb, 0x95, 0x5e, 0xf6, 0xfe, 0x86, 0xa5, 0xd6, -0x20, 0xff, 0x7a, 0x76, 0x6e, 0xbf, 0xdc, 0x22, 0x39, 0x38, 0x92, 0x52, 0x5d, 0xeb, 0xa6, 0x2f, -0xaa, 0x03, 0x6b, 0x28, 0xf5, 0x74, 0x23, 0x7e, 0x24, 0x8b, 0x76, 0x8f, 0xb7, 0x0a, 0x6a, 0xbd, -0xb3, 0xa9, 0x54, 0xeb, 0x24, 0xd6, 0x62, 0x15, 0xf7, 0xd7, 0xb9, 0x11, 0xeb, 0x55, 0x0b, 0x0b, -0x05, 0x92, 0x29, 0x75, 0x2b, 0x85, 0x15, 0xc8, 0x1b, 0xb4, 0xdc, 0x44, 0x3c, 0x43, 0x6b, 0xc4, -0x0b, 0xdf, 0x41, 0xee, 0xa1, 0x0b, 0xda, 0xe6, 0x93, 0xf6, 0x53, 0xc7, 0x7c, 0xda, 0x0d, 0x5f, -0x84, 0xbf, 0x76, 0xa4, 0x9e, 0x3d, 0x10, 0x87, 0x7b, 0xf0, 0xb7, 0x05, 0xee, 0x25, 0x4d, 0x3d, -0xb6, 0xc7, 0x28, 0xa2, 0xb2, 0xdd, 0x08, 0x43, 0x37, 0xce, 0x21, 0x0b, 0x1c, 0x2e, 0xa5, 0x0b, -0x4b, 0xd0, 0xa0, 0x1b, 0xb9, 0x8e, 0x7e, 0xfc, 0xcf, 0xe8, 0x79, 0x8b, 0x44, 0x5e, 0xca, 0xe5, -0xa1, 0xc8, 0x1d, 0xbe, 0xb9, 0x49, 0xf0, 0x29, 0x1e, 0xa8, 0x9d, 0x1b, 0x02, 0x8f, 0xa8, 0x3d, -0x57, 0x73, 0xbe, 0xce, 0x7c, 0x3d, 0x20, 0xfa, 0x70, 0xe3, 0x1c, 0x96, 0xd2, 0x9d, 0xd8, 0x57, -0x0f, 0xf7, 0xac, 0x1a, 0x5c, 0xc8, 0x75, 0x1e, 0xa5, 0x7b, 0xb6, 0xda, 0x1f, 0x16, 0xbe, 0x65, -0x78, 0x8e, 0x14, 0xe4, 0x0e, 0xc8, 0x1b, 0xa0, 0x8d, 0x60, 0x05, 0xa9, 0xdd, 0xf9, 0xb4, 0x91, -0xad, 0x78, 0xcf, 0xeb, 0x96, 0xe9, 0x6b, 0x48, 0x6f, 0x3e, 0x67, 0xbb, 0xbb, 0xd1, 0xc1, 0xfa, -0x65, 0x97, 0x6d, 0x3a, 0xf5, 0xae, 0x65, 0xce, 0x6e, 0x31, 0x7b, 0x74, 0x34, 0xb9, 0x67, 0x3a, -0xbe, 0x53, 0xd5, 0x0d, 0x4b, 0xb5, 0x27, 0x6a, 0x86, 0x20, 0xf8, 0xbb, 0xd7, 0xaa, 0x9a, 0x39, -0x4a, 0xe4, 0x85, 0xa6, 0x93, 0xd2, 0x49, 0xbc, 0x7f, 0x4a, 0x9f, 0x33, 0x84, 0xa6, 0x4b, 0xf5, -0xad, 0x9b, 0x3c, 0xb1, 0xc4, 0x8b, 0x92, 0x92, 0x2a, 0x99, 0x16, 0xb9, 0x27, 0x76, 0x73, 0x48, -0x52, 0x04, 0x04, 0xdd, 0xb8, 0x87, 0xf8, 0x42, 0xcc, 0xdb, 0xcf, 0x57, 0x4c, 0x71, 0xd5, 0x44, -0x50, 0x96, 0xb0, 0xc7, 0x3c, 0x73, 0x39, 0x1e, 0x75, 0x69, 0x55, 0x44, 0x1b, 0xc4, 0xff, 0x2e, -0x8e, 0x52, 0xd9, 0xa7, 0x3d, 0x82, 0xf5, 0xa8, 0x58, 0x4f, 0x7f, 0x55, 0x42, 0xbb, 0x57, 0x05, -0x65, 0x1c, 0xe5, 0x8b, 0x7b, 0x95, 0x2a, 0xe3, 0xcb, 0x69, 0x7b, 0xe4, 0x79, 0xe3, 0xcb, 0xb4, -0x36, 0x85, 0x1f, 0x50, 0xb6, 0xd1, 0xfe, 0xb7, 0xfa, 0x2e, 0x4f, 0xec, 0xdb, 0xe4, 0xe1, 0xe6, -0x7e, 0x86, 0x29, 0x2c, 0x39, 0xe5, 0xc4, 0xb1, 0x29, 0xf3, 0xce, 0xd3, 0x06, 0x91, 0x07, 0xdd, -0x91, 0x8f, 0xca, 0x50, 0xd5, 0xa7, 0x0d, 0x6a, 0x5d, 0xf8, 0xbb, 0x43, 0x1b, 0xa4, 0x7a, 0xa8, -0x15, 0x4a, 0x2c, 0xd1, 0x25, 0xdd, 0x9f, 0xf6, 0x58, 0xe6, 0x81, 0xac, 0xed, 0x4c, 0x39, 0x22, -0xf8, 0x44, 0x31, 0xb4, 0xfa, 0x2a, 0xa8, 0xd6, 0x3b, 0xfa, 0xb4, 0x5d, 0xd0, 0x88, 0xbf, 0xe3, -0x08, 0xc7, 0x1c, 0x1f, 0x65, 0xd6, 0xaa, 0xce, 0x4d, 0x58, 0xf2, 0xbd, 0x74, 0x7f, 0x83, 0xd5, -0x01, 0x9e, 0x58, 0xe4, 0x45, 0xc9, 0x43, 0x79, 0x6f, 0xed, 0xd3, 0xf6, 0x40, 0x1c, 0x7f, 0xf7, -0x41, 0x4b, 0x75, 0x15, 0x04, 0x3a, 0x37, 0x25, 0x7a, 0xe4, 0x3a, 0x5c, 0x07, 0x2f, 0x25, 0x5e, -0x04, 0x1f, 0x5e, 0x5f, 0x54, 0xe6, 0x69, 0x3b, 0xe5, 0x61, 0x0d, 0x34, 0xcd, 0x32, 0x2c, 0x03, -0x74, 0x91, 0x1f, 0x7e, 0xf6, 0x58, 0x77, 0x81, 0xcf, 0xdc, 0x77, 0x70, 0x99, 0x8d, 0x0e, 0x82, -0x18, 0xdb, 0x2e, 0xc2, 0x1a, 0x43, 0xf3, 0x42, 0x92, 0x2b, 0xb1, 0x1e, 0xef, 0xa2, 0x6c, 0x2b, -0x50, 0xcf, 0x9e, 0x1d, 0x9e, 0x93, 0x3b, 0xf0, 0x4b, 0xbf, 0x5e, 0xba, 0x5b, 0x2f, 0xdd, 0xee, -0x69, 0xcc, 0x43, 0xfc, 0x8a, 0xa2, 0x97, 0x48, 0xcf, 0x79, 0x4f, 0x9f, 0x79, 0xa5, 0xb4, 0x93, -0xf4, 0x3b, 0xcf, 0xab, 0x8b, 0x49, 0x3b, 0x3a, 0xed, 0x5f, 0x51, 0xfc, 0x12, 0x3d, 0xbf, 0xbf, -0xd2, 0x50, 0x15, 0xd5, 0x8e, 0x71, 0x0c, 0xb2, 0xf7, 0x33, 0x52, 0x55, 0x48, 0x3b, 0x41, 0xbd, -0x22, 0x8f, 0x0e, 0x5e, 0xa3, 0x12, 0x43, 0x39, 0x89, 0xbd, 0x3a, 0x58, 0x17, 0xab, 0x95, 0x72, -0x3f, 0x9d, 0x68, 0xd1, 0x5b, 0x67, 0x0c, 0xd7, 0x5a, 0x14, 0xff, 0x43, 0xcc, 0x5d, 0x1e, 0xff, -0xdd, 0xd3, 0xc2, 0x9b, 0x1b, 0x6c, 0xf5, 0x34, 0x9a, 0xaa, 0x59, 0x0b, 0x19, 0xe0, 0x61, 0xde, -0xb7, 0x0a, 0xd6, 0x74, 0xa1, 0xcc, 0x35, 0x2b, 0xd8, 0x05, 0x25, 0x08, 0xb7, 0x46, 0xef, 0x5c, -0xfc, 0x6e, 0x2e, 0x7e, 0xc7, 0xd6, 0xd9, 0x25, 0x7e, 0xf6, 0x9e, 0x12, 0x4a, 0x2f, 0x56, 0x1a, -0xe5, 0xae, 0x6c, 0xe9, 0xf6, 0x58, 0x2e, 0x17, 0x97, 0xfe, 0xdd, 0xa0, 0xfa, 0x0c, 0xa5, 0x47, -0xfe, 0x27, 0xd7, 0xab, 0xa7, 0xfe, 0x53, 0x1b, 0x5b, 0x89, 0x8a, 0xfa, 0xae, 0x4b, 0x57, 0x50, -0x0e, 0xaf, 0x91, 0x57, 0x43, 0x88, 0x72, 0x15, 0xe0, 0x2c, 0x2c, 0x9b, 0x7c, 0xa5, 0xdb, 0x63, -0x91, 0x7f, 0x00, 0xcf, 0x10, 0x38, 0x63, 0xbf, 0x38, 0x25, 0xb9, 0x52, 0x56, 0x8e, 0x6f, 0x76, -0x2f, 0xc5, 0x21, 0x5f, 0x21, 0xa9, 0x56, 0x9a, 0x39, 0x47, 0x0f, 0xca, 0x0c, 0x38, 0x37, 0x91, -0x06, 0x9e, 0x4d, 0x57, 0x35, 0xf2, 0x15, 0x91, 0x86, 0xc4, 0x83, 0x69, 0x93, 0xd2, 0xe4, 0x40, -0xba, 0x4a, 0xf4, 0xbe, 0x04, 0xdf, 0x5b, 0x24, 0x28, 0x5b, 0x02, 0xdf, 0xfc, 0x11, 0x52, 0x64, -0x29, 0xcf, 0xb7, 0x7c, 0xf3, 0x78, 0xe9, 0xc3, 0x92, 0x5c, 0xb9, 0x13, 0xaa, 0xbf, 0xb9, 0xf9, -0x1b, 0x4f, 0x7c, 0x73, 0xf3, 0xb4, 0xbf, 0x32, 0xfe, 0xc3, 0x3b, 0xf0, 0xf3, 0xf3, 0x71, 0xac, -0xe7, 0x57, 0x36, 0xfc, 0xb7, 0x00, 0x48, 0xe9, 0x39, 0xf7, 0x95, 0xb0, 0xee, 0x3d, 0x72, 0x7f, -0x78, 0x2d, 0xc2, 0xd1, 0xdb, 0xae, 0x26, 0xef, 0x42, 0x8c, 0xa2, 0x8d, 0xe1, 0xa8, 0x6e, 0xb3, -0x23, 0xf4, 0x29, 0xdf, 0x21, 0x4d, 0xcb, 0x03, 0x48, 0xc7, 0xef, 0x0a, 0xd3, 0x13, 0xae, 0x6c, -0xf3, 0x04, 0x52, 0xf4, 0xbb, 0x42, 0xda, 0x38, 0xf5, 0x9d, 0xfc, 0x09, 0xd4, 0x84, 0xbd, 0xb3, -0x94, 0xef, 0xe4, 0x3d, 0xe2, 0x8a, 0x12, 0x78, 0x6e, 0x96, 0xa2, 0x7c, 0xbe, 0x8b, 0xf9, 0x9d, -0xa4, 0x27, 0x36, 0x2f, 0x21, 0x79, 0xc8, 0x33, 0xc0, 0xb7, 0x97, 0x22, 0xde, 0xb4, 0x28, 0x11, -0xa4, 0xd8, 0x28, 0x13, 0x93, 0x67, 0x00, 0xf2, 0x64, 0xf4, 0xed, 0x0d, 0x98, 0x5a, 0x8a, 0x6b, -0x6a, 0x4b, 0xeb, 0x26, 0x2c, 0x7d, 0x17, 0x3e, 0xd9, 0xec, 0x11, 0xb2, 0x7a, 0xf7, 0xce, 0x4c, -0x3e, 0xd6, 0xb9, 0xa9, 0x7a, 0x1b, 0x4a, 0x78, 0xd9, 0xb7, 0xe3, 0x37, 0x0e, 0xd1, 0x7a, 0x51, -0x0d, 0xb8, 0x86, 0xc6, 0xb0, 0x8e, 0x0b, 0x34, 0x8e, 0x55, 0x3d, 0xd0, 0xa5, 0x8d, 0xd2, 0xb8, -0x79, 0x9a, 0x5c, 0xfd, 0x34, 0x6e, 0x7f, 0xfb, 0x06, 0xca, 0x7b, 0x63, 0x6c, 0x49, 0x00, 0x86, -0xc9, 0x25, 0x15, 0x78, 0xb7, 0x2c, 0x0d, 0xc6, 0x09, 0xbc, 0x76, 0xa7, 0x61, 0x26, 0xe0, 0x15, -0x57, 0x41, 0xe5, 0x33, 0x48, 0x13, 0x43, 0x70, 0xf2, 0x7b, 0x60, 0xfa, 0x48, 0xd8, 0x1b, 0x54, -0x3e, 0xa2, 0x82, 0x79, 0x0d, 0x95, 0xe9, 0xaf, 0x92, 0x0f, 0x78, 0x62, 0xbe, 0x6a, 0xa9, 0x83, -0xfc, 0x60, 0x7f, 0x3b, 0x24, 0x75, 0x24, 0xc2, 0x69, 0x27, 0xc5, 0x4e, 0xc7, 0x01, 0x24, 0x8d, -0x4f, 0x69, 0x74, 0x5d, 0xaa, 0x6c, 0x5e, 0x44, 0x5a, 0xa1, 0x44, 0xbe, 0x8d, 0xd0, 0x26, 0xad, -0xc2, 0x5f, 0x9b, 0x34, 0xa4, 0x42, 0x65, 0x82, 0xbe, 0x17, 0xab, 0x64, 0xe6, 0xf6, 0xc4, 0xfa, -0xd4, 0xbd, 0xe4, 0x03, 0xcd, 0x13, 0xf1, 0xf5, 0x83, 0xcd, 0xdf, 0x2f, 0x74, 0x49, 0x52, 0x46, -0xc5, 0x62, 0x9f, 0xa1, 0x1a, 0x32, 0x30, 0x08, 0x02, 0xd6, 0xf0, 0x77, 0x29, 0xca, 0x13, 0x33, -0x11, 0x07, 0x4b, 0xc2, 0xa3, 0x81, 0x6d, 0x39, 0xef, 0xee, 0x0e, 0xa7, 0xec, 0x3c, 0x8e, 0x2e, -0xc4, 0x6d, 0x58, 0x9b, 0x3d, 0x72, 0xdb, 0x32, 0xaa, 0x0d, 0x7f, 0xb9, 0xb6, 0x1b, 0x8f, 0x46, -0xa2, 0xaa, 0xc1, 0x03, 0x2b, 0x25, 0x2e, 0x37, 0xa2, 0xca, 0x2b, 0xa5, 0x44, 0x43, 0xaa, 0x8e, -0xda, 0x60, 0xaf, 0x2a, 0x7a, 0x53, 0xa9, 0x2a, 0x7a, 0xdd, 0x31, 0x4f, 0xdb, 0xe3, 0x9c, 0xa7, -0xed, 0x23, 0x7c, 0xac, 0x3d, 0x49, 0xd4, 0x2f, 0xd3, 0x35, 0xfa, 0x7c, 0xd1, 0xa1, 0xb4, 0x19, -0xa9, 0xda, 0x81, 0x5b, 0x43, 0x45, 0x87, 0xd4, 0x72, 0xca, 0xdf, 0x86, 0x4f, 0xaa, 0x35, 0xd3, -0xc5, 0x58, 0x05, 0x53, 0xe9, 0x6d, 0x16, 0xc3, 0x14, 0xbd, 0x4e, 0x18, 0xa6, 0xe8, 0x4d, 0xc2, -0x0a, 0x45, 0xcb, 0xd9, 0xe3, 0x5e, 0x05, 0x8e, 0x78, 0x9d, 0xa7, 0x89, 0x57, 0xc4, 0xdd, 0x69, -0x9f, 0xbe, 0xcf, 0x6a, 0x13, 0xfc, 0xfe, 0x72, 0xdb, 0x0e, 0x8a, 0x8c, 0x35, 0x4b, 0x5f, 0x23, -0x92, 0x77, 0x46, 0x7e, 0x85, 0x64, 0x24, 0x15, 0x8a, 0xfc, 0x28, 0x93, 0xce, 0xa0, 0xd2, 0x99, -0x8e, 0x62, 0xef, 0x73, 0x94, 0xd4, 0x98, 0x7d, 0xba, 0xce, 0xed, 0x69, 0xac, 0x41, 0xcc, 0x22, -0x37, 0x00, 0xed, 0x0e, 0x50, 0x5c, 0x1c, 0xe5, 0xbb, 0xe3, 0xa5, 0x10, 0x5f, 0x13, 0x8d, 0x60, -0xad, 0x12, 0xae, 0xc3, 0xb2, 0x5c, 0x0d, 0x4a, 0x61, 0x0d, 0x89, 0x48, 0x8a, 0x7c, 0x25, 0xda, -0x52, 0xcb, 0x73, 0xad, 0x22, 0xec, 0x44, 0x38, 0x48, 0xd1, 0xf1, 0xcd, 0x14, 0xd1, 0x3c, 0xc2, -0x7e, 0xf9, 0xfa, 0x04, 0xdd, 0x53, 0x9a, 0x98, 0x37, 0x79, 0x30, 0x5d, 0xc1, 0xe7, 0x3e, 0x15, -0xe9, 0x92, 0x44, 0x24, 0xeb, 0x11, 0xc8, 0x1e, 0xfb, 0x8b, 0x46, 0xf0, 0xa9, 0x46, 0x67, 0xec, -0x56, 0xbc, 0x26, 0x22, 0x08, 0x71, 0x31, 0x4f, 0x35, 0x04, 0x54, 0xc4, 0x5d, 0x1e, 0x17, 0xd4, -0xd2, 0xe8, 0xc8, 0x8b, 0xec, 0x8d, 0x28, 0xe9, 0xcd, 0x05, 0x5b, 0x06, 0xeb, 0x5c, 0x5e, 0xbc, -0x63, 0xf8, 0x3e, 0xa8, 0xa8, 0x29, 0x88, 0x20, 0xbf, 0x03, 0x2c, 0x15, 0x6e, 0x58, 0x04, 0x3b, -0x24, 0x45, 0x68, 0xbe, 0x92, 0xb4, 0x2e, 0x49, 0xe9, 0x0a, 0xf3, 0x32, 0x3a, 0xcd, 0x67, 0xcc, -0x82, 0x63, 0x93, 0xc5, 0x46, 0xb4, 0x9e, 0xec, 0x8d, 0x94, 0x8f, 0xfd, 0x3f, 0x83, 0x6d, 0x0d, -0x41, 0xe4, 0xb7, 0x42, 0x60, 0x75, 0xc4, 0xd8, 0xc3, 0xda, 0x72, 0x15, 0xbe, 0x71, 0xc8, 0xd9, -0x44, 0x5a, 0x84, 0x38, 0x9e, 0x4b, 0xb7, 0xf4, 0x40, 0x19, 0xc2, 0x53, 0x15, 0x52, 0xca, 0xaf, -0x89, 0x32, 0xfe, 0xc7, 0x91, 0x5a, 0xf0, 0x34, 0xe1, 0x48, 0x5a, 0xb7, 0xf6, 0x40, 0xe9, 0x15, -0xef, 0xb6, 0xf2, 0xce, 0xf7, 0x4f, 0xb4, 0x7b, 0xb7, 0x44, 0xe7, 0xcb, 0x91, 0xf4, 0xd6, 0xd0, -0xfc, 0xa2, 0x48, 0x3a, 0x5f, 0xff, 0x2f, 0x54, 0xf2, 0x3e, 0x48, 0xe5, 0x2a, 0xed, 0x41, 0xc2, -0xad, 0x56, 0x3f, 0xe1, 0xd6, 0x99, 0x38, 0x6a, 0x55, 0xc8, 0xab, 0x51, 0x49, 0xd3, 0x71, 0x6b, -0x85, 0x3e, 0xbe, 0x93, 0x3c, 0xb6, 0xb3, 0x44, 0x29, 0x87, 0xab, 0x49, 0x5b, 0xda, 0xd1, 0x28, -0xb4, 0x14, 0xa6, 0xf7, 0xf0, 0x77, 0x4f, 0x73, 0xfc, 0xe9, 0x29, 0x81, 0xd3, 0xaf, 0x7b, 0x96, -0x74, 0x71, 0xe3, 0xe3, 0xd9, 0x59, 0x1a, 0x94, 0x37, 0x0f, 0x7b, 0xa5, 0xfc, 0x3c, 0x51, 0xcc, -0x85, 0x1b, 0xe7, 0x24, 0x37, 0x7b, 0x84, 0x47, 0x15, 0x28, 0x3f, 0x4a, 0xb0, 0x58, 0x7e, 0x48, -0x09, 0xf1, 0xa9, 0xdc, 0xf5, 0x29, 0x28, 0x7f, 0x1d, 0x79, 0x86, 0x63, 0x8c, 0x27, 0xde, 0x47, -0xac, 0xf7, 0xff, 0x30, 0x56, 0xfa, 0xe0, 0x2e, 0xa4, 0xad, 0xda, 0x09, 0xc4, 0x1a, 0x27, 0xf1, -0xff, 0xb4, 0x8e, 0x35, 0xe2, 0xda, 0x47, 0xf8, 0xdb, 0xa2, 0x9d, 0x63, 0x6a, 0x38, 0xc9, 0xbe, -0xb7, 0x88, 0x12, 0x01, 0x43, 0x84, 0x5e, 0x87, 0x0a, 0xe5, 0x2b, 0x33, 0xd7, 0x35, 0xc2, 0x1e, -0xf2, 0xba, 0xc5, 0x58, 0x3f, 0x0b, 0x2f, 0x5f, 0xdf, 0xa8, 0x82, 0x6d, 0x4c, 0xc9, 0xcf, 0x4d, -0x30, 0x3b, 0x33, 0xf6, 0xd8, 0xb7, 0x78, 0x66, 0x58, 0xfa, 0x27, 0x8c, 0x0b, 0xe5, 0x01, 0x73, -0x08, 0x68, 0xaf, 0xfa, 0x9a, 0xf3, 0x8b, 0x75, 0x88, 0xb2, 0x67, 0x60, 0x1b, 0xba, 0x98, 0x0b, -0x2e, 0x80, 0x66, 0x15, 0xbe, 0x7e, 0x21, 0x12, 0xc2, 0xd5, 0x06, 0xd6, 0xf5, 0x42, 0x7e, 0x36, -0x79, 0x90, 0x97, 0xfb, 0x26, 0x3e, 0xaf, 0x48, 0x84, 0x52, 0x60, 0xe5, 0xc8, 0x32, 0x78, 0xed, -0xca, 0x97, 0x81, 0xe3, 0xbd, 0xcd, 0x11, 0x23, 0xbd, 0x19, 0xc4, 0x5c, 0xdb, 0xa4, 0x15, 0x69, -0x53, 0x04, 0x7f, 0xb1, 0xa4, 0x17, 0xf2, 0xd8, 0xa9, 0xb8, 0x94, 0x69, 0xfc, 0xd6, 0xaf, 0x32, -0xbb, 0x7e, 0x1e, 0x0b, 0x47, 0x23, 0xdb, 0x78, 0xda, 0x96, 0xcf, 0x18, 0x5f, 0xb3, 0x42, 0x42, -0x5a, 0xaf, 0xf4, 0x99, 0xd9, 0xb2, 0xe9, 0x18, 0x96, 0xdc, 0xb6, 0xb2, 0x68, 0x27, 0xdd, 0x6f, -0x1f, 0x24, 0x8e, 0x17, 0xbe, 0x1e, 0x51, 0xc1, 0x70, 0x8c, 0xf7, 0x30, 0xad, 0x29, 0x05, 0xb1, -0xe7, 0xa0, 0xb9, 0xfb, 0x8b, 0xe0, 0x5b, 0x35, 0xe0, 0xfb, 0x36, 0x7b, 0x23, 0xaf, 0x07, 0x1d, -0x83, 0xa4, 0xcb, 0xae, 0x1c, 0x6d, 0x96, 0x81, 0x1b, 0x79, 0x04, 0xca, 0xf9, 0x2c, 0xe0, 0xba, -0xb4, 0x4d, 0xf4, 0x98, 0x4e, 0xae, 0xce, 0x51, 0x49, 0x96, 0x42, 0xba, 0xac, 0x5a, 0x73, 0xe3, -0x71, 0xe2, 0xca, 0x31, 0xb5, 0x37, 0xca, 0xcb, 0x88, 0x4a, 0xab, 0x30, 0xdb, 0x3f, 0xbd, 0x45, -0x82, 0xd2, 0x3b, 0x1a, 0xb9, 0xe5, 0xd7, 0xa5, 0x61, 0x76, 0x89, 0xda, 0x88, 0x7d, 0xb6, 0xca, -0xa1, 0x7f, 0xd2, 0x6e, 0x0f, 0xe9, 0x33, 0x1d, 0x21, 0x5d, 0x12, 0x9e, 0x59, 0x07, 0xb6, 0x1c, -0x2c, 0x1f, 0xd1, 0xec, 0xde, 0xfe, 0x45, 0xb3, 0x6b, 0xe4, 0x3c, 0xaf, 0x7f, 0xd5, 0xb6, 0xa9, -0x60, 0x79, 0x9a, 0x66, 0xbb, 0x0c, 0xa6, 0xcf, 0xf6, 0x0d, 0x67, 0xf3, 0xdf, 0xa8, 0x70, 0xf9, -0x88, 0x27, 0x06, 0xfd, 0x0a, 0x48, 0x1d, 0xf9, 0x19, 0x2d, 0x8a, 0xfc, 0x09, 0xbc, 0xbf, 0xec, -0x4b, 0xf0, 0xfe, 0xb2, 0x42, 0xbc, 0xcf, 0xdf, 0xd2, 0x73, 0xa4, 0xe8, 0x75, 0x2a, 0xe3, 0xd6, -0x06, 0xc4, 0xfd, 0xd8, 0x26, 0x69, 0x2f, 0x7b, 0x2f, 0x81, 0x32, 0xbf, 0xa7, 0x09, 0x39, 0x40, -0x17, 0xb6, 0xd2, 0xc5, 0x14, 0xe0, 0x1b, 0x98, 0x36, 0x87, 0x5b, 0xd1, 0x8a, 0xf5, 0xef, 0xc2, -0xfa, 0xc7, 0x72, 0xf5, 0xd6, 0x33, 0x4e, 0x2d, 0x42, 0x79, 0x0f, 0x79, 0x33, 0x41, 0x0f, 0xe2, -0x2b, 0x4d, 0x80, 0x7d, 0xa8, 0xb0, 0x37, 0x29, 0x5d, 0xe0, 0x12, 0x9c, 0x91, 0x46, 0x92, 0x19, -0xdc, 0x60, 0x16, 0xbd, 0x14, 0x92, 0x86, 0x0a, 0x97, 0x2e, 0xe4, 0x68, 0xd0, 0x18, 0xd3, 0xa0, -0x5d, 0x2a, 0xdc, 0xb0, 0x43, 0xa7, 0x3b, 0xdf, 0x20, 0x8e, 0x54, 0xb4, 0x48, 0x72, 0x3b, 0xfa, -0xa1, 0x3a, 0xb2, 0x4d, 0xee, 0x40, 0x6e, 0xd4, 0xda, 0x67, 0xf1, 0x57, 0x83, 0xa5, 0x31, 0xbc, -0xfc, 0xba, 0xf7, 0x97, 0x21, 0x57, 0x15, 0x56, 0x9a, 0xd8, 0x67, 0x8e, 0x8d, 0xf8, 0x18, 0xbc, -0xb3, 0xd0, 0x2e, 0xdb, 0x9e, 0x90, 0x78, 0xa3, 0xcb, 0xa2, 0x9e, 0x84, 0x4b, 0xba, 0xb1, 0xcf, -0x89, 0x73, 0xc5, 0xbe, 0x7e, 0x32, 0x45, 0x3a, 0x6c, 0x01, 0x45, 0x47, 0xcc, 0xce, 0x4f, 0x1b, -0x96, 0x4f, 0x73, 0xc4, 0xbc, 0xf8, 0xd8, 0x59, 0x8a, 0x3f, 0xd4, 0x4d, 0x32, 0xed, 0xc2, 0xcf, -0xe8, 0x2d, 0x8e, 0xd4, 0xbd, 0x6a, 0x35, 0x9f, 0x64, 0x74, 0xa4, 0x1d, 0xbb, 0x7e, 0x90, 0x56, -0xec, 0x4d, 0x89, 0xb9, 0x58, 0x6a, 0x39, 0x69, 0x13, 0x0b, 0xdf, 0x7e, 0x0a, 0xed, 0xe8, 0x6c, -0xcd, 0x96, 0xa3, 0xef, 0x7f, 0xbe, 0x51, 0xd5, 0x80, 0x75, 0xf1, 0x8e, 0xf5, 0xc7, 0x0f, 0xb7, -0x6e, 0x4a, 0xe0, 0xdb, 0xf4, 0x1c, 0x67, 0xc3, 0xad, 0x89, 0xa2, 0x3d, 0xb7, 0x34, 0xc9, 0x2d, -0x19, 0xf9, 0x96, 0x90, 0xdc, 0x7a, 0x0b, 0x62, 0x2c, 0xb9, 0x13, 0x7f, 0x5b, 0xe4, 0xc5, 0x6a, -0x9d, 0xce, 0x37, 0xcc, 0xb8, 0x4a, 0xb6, 0x55, 0x74, 0x39, 0x69, 0x9e, 0xd6, 0x8f, 0xa5, 0xa1, -0x0c, 0x7d, 0x73, 0x93, 0xe4, 0x60, 0xa9, 0x42, 0x97, 0x6f, 0x75, 0xde, 0xe8, 0xc3, 0x34, 0x73, -0x3f, 0xb8, 0x62, 0x27, 0x89, 0x2f, 0x42, 0x2e, 0x70, 0x92, 0x4e, 0xe3, 0x3c, 0x31, 0xb9, 0xff, -0x3d, 0x4d, 0x40, 0x95, 0xa3, 0xa7, 0x68, 0x8f, 0xae, 0xd1, 0xfb, 0x2e, 0xc9, 0x5d, 0x1f, 0x97, -0x5c, 0xa3, 0xbf, 0x2e, 0xa5, 0x0a, 0xda, 0x88, 0x86, 0x29, 0x26, 0xde, 0x61, 0x30, 0xa5, 0x4a, -0xf5, 0xde, 0x0a, 0x79, 0x1e, 0x7b, 0x5b, 0xd0, 0xd3, 0x03, 0xf9, 0x9e, 0x7e, 0xf4, 0x8c, 0xb3, -0x81, 0xe4, 0x6a, 0x9c, 0xb3, 0x16, 0x9a, 0x37, 0xfc, 0x6f, 0xc5, 0xff, 0x4e, 0xfc, 0x5f, 0x8c, -0xf2, 0x7c, 0x37, 0xc1, 0xb7, 0x4d, 0x87, 0xef, 0x2f, 0x81, 0xe9, 0xee, 0x2f, 0x81, 0xe9, 0xee, -0x2f, 0xe3, 0x65, 0x54, 0x13, 0xf5, 0xf5, 0x63, 0x2d, 0xbf, 0x82, 0x88, 0x9f, 0x20, 0x5a, 0xc3, -0xb0, 0x27, 0x8b, 0x51, 0x55, 0x61, 0xf2, 0x5e, 0xc4, 0x93, 0x81, 0x42, 0x39, 0x87, 0xa8, 0x7a, -0x0a, 0x4a, 0xd4, 0x02, 0x5e, 0xa2, 0xe8, 0x4a, 0x5e, 0x42, 0x85, 0xcf, 0xc6, 0x69, 0xc5, 0x94, -0xd4, 0x4d, 0x5f, 0xc5, 0x25, 0x6e, 0x84, 0xf9, 0x65, 0x50, 0xbd, 0xeb, 0x39, 0xb9, 0x05, 0x9f, -0x2a, 0x05, 0x94, 0xd1, 0x5e, 0xa9, 0x36, 0xe6, 0xc5, 0x35, 0x31, 0x29, 0x93, 0x1c, 0xd8, 0x0b, -0x92, 0xc5, 0x11, 0xf3, 0xbb, 0xa5, 0xe0, 0x01, 0xe4, 0xa4, 0x6f, 0x0f, 0x4b, 0xb5, 0xfe, 0x6e, -0xa9, 0xfe, 0xc0, 0x19, 0x6d, 0xfc, 0xf6, 0x05, 0x12, 0x73, 0x77, 0x4a, 0x8f, 0xec, 0x4f, 0x74, -0xc1, 0x50, 0xaf, 0xc7, 0x27, 0xc5, 0xc7, 0x7b, 0xe5, 0xe8, 0xf0, 0x72, 0x79, 0xc7, 0x70, 0xaf, -0xe9, 0x40, 0x58, 0x89, 0xdd, 0x86, 0xf9, 0x7d, 0x33, 0x45, 0x2a, 0xd9, 0xbb, 0x60, 0xea, 0x6b, -0x98, 0x5a, 0xf0, 0x25, 0xae, 0x83, 0xde, 0x14, 0xf6, 0x3f, 0xd2, 0x2f, 0x05, 0xd5, 0x55, 0x4a, -0xac, 0xa6, 0x4b, 0xaa, 0x25, 0xff, 0xe5, 0xf5, 0x51, 0xf6, 0x30, 0x3c, 0x2b, 0xb9, 0xb9, 0x75, -0x13, 0x52, 0xb1, 0x90, 0x14, 0x0c, 0x2e, 0x93, 0xea, 0xec, 0xf4, 0xd5, 0x32, 0xd9, 0xcf, 0xbc, -0x54, 0x2f, 0xd2, 0x47, 0x2b, 0xbd, 0x47, 0xfe, 0x23, 0x24, 0xd5, 0x4f, 0x7f, 0x17, 0x63, 0xeb, -0x21, 0xde, 0xb5, 0xc4, 0x1c, 0xce, 0xd8, 0x1d, 0x21, 0xa9, 0x36, 0x5b, 0xe7, 0xf4, 0xaf, 0x51, -0x7a, 0x0e, 0x89, 0xf6, 0x04, 0x7b, 0xa0, 0xd1, 0x19, 0x3b, 0x7a, 0x4a, 0xaa, 0xbd, 0x2b, 0xa9, -0xed, 0xd2, 0x53, 0xa2, 0x9c, 0x52, 0x87, 0x29, 0xe3, 0x2a, 0x79, 0xa3, 0xd8, 0xa5, 0x60, 0xfa, -0xe6, 0x13, 0xd0, 0xc8, 0xfd, 0xa8, 0x0d, 0xa2, 0x6c, 0x4c, 0x39, 0x9f, 0x3a, 0x05, 0xd1, 0xdb, -0x92, 0x12, 0xaf, 0x06, 0xc1, 0x4d, 0x66, 0x23, 0x7f, 0xb0, 0x95, 0xac, 0xe2, 0x09, 0x29, 0xfd, -0xe0, 0xa3, 0x1d, 0x50, 0x94, 0x0c, 0x95, 0xb6, 0xe6, 0xad, 0x27, 0xa0, 0x32, 0xd0, 0x05, 0xf6, -0xb6, 0xc4, 0x96, 0x13, 0x30, 0x47, 0x35, 0x06, 0x86, 0xe0, 0x99, 0x9a, 0x04, 0xc9, 0x8e, 0xd2, -0x0a, 0xdd, 0x16, 0xde, 0xe3, 0x9f, 0x2b, 0xd5, 0x06, 0xe6, 0x4a, 0x75, 0x84, 0x95, 0x6a, 0xaa, -0xe5, 0xa3, 0xd4, 0x6e, 0xb9, 0x5e, 0xf0, 0xfe, 0x16, 0xb0, 0xac, 0x13, 0xf1, 0xb5, 0x6b, 0x83, -0x60, 0xd9, 0xbf, 0x36, 0x9d, 0xa2, 0x68, 0xec, 0x2b, 0xa1, 0x76, 0x96, 0x27, 0x5a, 0x3b, 0xeb, -0x09, 0xbc, 0xbf, 0x2b, 0xaa, 0x2d, 0xf9, 0x5f, 0xaf, 0xf5, 0x1a, 0x91, 0xcf, 0x58, 0x42, 0x51, -0xa4, 0xc8, 0x7e, 0x2d, 0x18, 0x3e, 0xfa, 0x1a, 0xf6, 0xa4, 0x37, 0x11, 0xee, 0x2d, 0x43, 0xaa, -0x31, 0x2b, 0x6d, 0x88, 0xbe, 0x92, 0xb2, 0xec, 0x5c, 0xd0, 0xeb, 0xdc, 0xd9, 0xa7, 0xf5, 0x0e, -0xd8, 0xd5, 0x72, 0x4c, 0x35, 0x53, 0x6a, 0x77, 0x59, 0xed, 0x3c, 0x6d, 0xc9, 0xce, 0x05, 0x03, -0x16, 0x7a, 0xd3, 0x6b, 0xf2, 0x1b, 0x36, 0x2f, 0x20, 0x2c, 0x25, 0x6a, 0x2f, 0xe2, 0xda, 0x8b, -0x44, 0xed, 0x45, 0x58, 0x7b, 0x2f, 0x45, 0x7d, 0xc7, 0xda, 0xcd, 0x58, 0xbb, 0x19, 0x6b, 0xb7, -0x5e, 0xa3, 0x76, 0x73, 0x30, 0xa2, 0xd7, 0x1e, 0xe9, 0xa5, 0xf3, 0xa4, 0x99, 0x69, 0x23, 0x45, -0x7c, 0x4e, 0x5b, 0xb1, 0x7e, 0x37, 0xd7, 0xef, 0x0c, 0x18, 0xd4, 0x4a, 0x3e, 0x67, 0x30, 0x72, -0x4c, 0xea, 0x32, 0x84, 0xc5, 0x25, 0xa3, 0xd8, 0x86, 0x51, 0x6e, 0x43, 0x00, 0xb6, 0x50, 0x1b, -0x22, 0x19, 0xa0, 0xd8, 0x1d, 0x2b, 0x60, 0x25, 0x08, 0x7c, 0x7d, 0xe9, 0x04, 0xcd, 0x89, 0xbd, -0x0b, 0x6a, 0x75, 0x2b, 0xff, 0x71, 0xd6, 0xba, 0x29, 0xc5, 0xbb, 0x97, 0x3c, 0xcb, 0xe4, 0xe8, -0xff, 0x3a, 0x61, 0xdc, 0x49, 0xfe, 0x6a, 0x82, 0xcb, 0xc0, 0x54, 0x3b, 0x17, 0xcc, 0x81, 0x79, -0xda, 0x2e, 0xbf, 0x35, 0x11, 0xe9, 0x33, 0xfb, 0xb0, 0x2c, 0xdf, 0xac, 0xd1, 0x0d, 0xfd, 0x6e, -0x25, 0xb6, 0x19, 0x21, 0x0f, 0x5b, 0x66, 0x4e, 0x84, 0xff, 0x4a, 0xe0, 0xe4, 0xb2, 0xdc, 0x5b, -0x8b, 0x6f, 0xd6, 0xc8, 0x32, 0xb0, 0x8c, 0x86, 0x07, 0x64, 0x3f, 0xd4, 0xcc, 0xd3, 0xc6, 0x03, -0x86, 0x44, 0x03, 0x7e, 0x4d, 0x16, 0x63, 0x66, 0x7c, 0xef, 0x57, 0x62, 0x5b, 0xba, 0xa4, 0xba, -0x44, 0x43, 0xaf, 0x35, 0x11, 0xed, 0xb5, 0x27, 0x22, 0x54, 0xc2, 0xde, 0x90, 0x5a, 0x91, 0xcb, -0x61, 0xf3, 0x99, 0xb1, 0x04, 0xeb, 0x68, 0x64, 0xc0, 0x18, 0x00, 0x55, 0x0e, 0x18, 0xb6, 0x27, -0x53, 0x86, 0x9d, 0x91, 0x74, 0xa9, 0xb2, 0x20, 0x23, 0x5d, 0xd9, 0x1b, 0x5f, 0x1f, 0x7b, 0x59, -0xa2, 0x9a, 0x8d, 0xed, 0xcd, 0x77, 0x35, 0x6b, 0xbb, 0x30, 0x65, 0x5c, 0x2f, 0xc9, 0xd8, 0x9e, -0xb8, 0x2b, 0xa1, 0x8d, 0xe3, 0xda, 0xdc, 0xd5, 0x4b, 0xd2, 0xe7, 0x2e, 0xbc, 0x1b, 0xe7, 0xbb, -0x71, 0x7b, 0x2c, 0xb1, 0x4c, 0x0a, 0xa5, 0xfd, 0xf4, 0xbd, 0x32, 0x57, 0x8a, 0x62, 0x6e, 0x13, -0x5e, 0x5b, 0x46, 0x37, 0xf4, 0x1a, 0x48, 0xa2, 0xa5, 0x52, 0x9c, 0x31, 0xa5, 0x4a, 0x8a, 0xf3, -0x9b, 0x2a, 0xa9, 0x55, 0x7f, 0x33, 0x9e, 0xdd, 0xd1, 0x29, 0x3d, 0xda, 0x49, 0xd0, 0x6a, 0x53, -0x42, 0x4c, 0x9f, 0x30, 0xff, 0x00, 0xbf, 0x2f, 0x80, 0xcb, 0x39, 0xb8, 0x0e, 0x57, 0x1d, 0x3d, -0x41, 0x9e, 0x1e, 0x10, 0x93, 0x27, 0x01, 0xb9, 0x4e, 0x69, 0x68, 0x02, 0x67, 0xf7, 0x8e, 0x10, -0x44, 0x55, 0xdb, 0x55, 0xbb, 0x46, 0x7a, 0xc9, 0xb3, 0x56, 0x15, 0xee, 0x1a, 0xe1, 0x8a, 0xcc, -0x62, 0xba, 0x8a, 0xab, 0x31, 0x9d, 0xe0, 0x44, 0x0d, 0xbc, 0xf3, 0x03, 0x93, 0x57, 0xed, 0xeb, -0xf4, 0x8a, 0x5d, 0x9d, 0xfb, 0x90, 0x16, 0xa8, 0x16, 0xc1, 0xe3, 0xc1, 0x41, 0xd2, 0xdd, 0xfd, -0xaa, 0xd2, 0x81, 0x23, 0x36, 0xda, 0x2d, 0x2d, 0xc7, 0xb2, 0x9f, 0x46, 0xbc, 0xb1, 0xdc, 0xd9, -0x28, 0x3c, 0x13, 0x5c, 0x93, 0x63, 0x5a, 0xe5, 0x69, 0x0a, 0xf4, 0xeb, 0xf2, 0xcc, 0xa9, 0xab, -0xe5, 0x99, 0x2d, 0xe3, 0x35, 0xfd, 0x60, 0xc5, 0x79, 0x5b, 0xba, 0xf5, 0x23, 0x96, 0x68, 0xaa, -0xf1, 0x6d, 0xd9, 0x95, 0x12, 0x8d, 0xd7, 0xbc, 0x75, 0x9c, 0xb5, 0x5c, 0xf4, 0xb2, 0x77, 0xd4, -0xaa, 0x73, 0xbe, 0x0c, 0x63, 0x0b, 0x7e, 0x9f, 0x70, 0x76, 0x91, 0x83, 0xb9, 0x02, 0x09, 0x2e, -0x93, 0x4e, 0x25, 0xd6, 0x33, 0x8a, 0xd4, 0xe6, 0x10, 0xd1, 0xb8, 0x0c, 0x71, 0x1a, 0x87, 0x74, -0xda, 0x7b, 0xad, 0xdd, 0xb3, 0xc5, 0x38, 0x8f, 0x95, 0xf6, 0x26, 0x5c, 0x09, 0x80, 0x5f, 0x97, -0x30, 0x17, 0x79, 0x39, 0x6d, 0x76, 0x2e, 0x83, 0xa9, 0x5f, 0x9e, 0x84, 0xa9, 0x74, 0x90, 0xf7, -0x2d, 0xef, 0x25, 0x0b, 0x06, 0x51, 0x0a, 0x96, 0x13, 0x34, 0xd0, 0x41, 0x3f, 0x73, 0x18, 0x96, -0x4c, 0xe4, 0x45, 0xe9, 0x1e, 0xfc, 0xbf, 0x37, 0x32, 0x1c, 0x59, 0x3d, 0x2f, 0x24, 0x2d, 0x99, -0x17, 0x96, 0x52, 0x82, 0x2b, 0xc4, 0x31, 0x63, 0x4c, 0x8a, 0xf2, 0xf2, 0x2c, 0x31, 0xda, 0x3e, -0x1a, 0x6d, 0x93, 0xf0, 0x87, 0x56, 0xf2, 0xb4, 0x8b, 0xfd, 0xbd, 0xb0, 0xfd, 0x76, 0x4c, 0x71, -0x49, 0xf7, 0x8c, 0xae, 0xc3, 0xb1, 0xbe, 0x90, 0x18, 0x4e, 0x0d, 0xc6, 0x57, 0x26, 0x49, 0xee, -0xdd, 0x47, 0x7b, 0x92, 0xdf, 0xde, 0xd0, 0xba, 0xa9, 0x2a, 0xa4, 0x3d, 0x9b, 0x01, 0xfc, 0x7d, -0xc6, 0x8e, 0xf4, 0xb4, 0x2a, 0xac, 0xad, 0x5a, 0x0e, 0x55, 0x11, 0x6d, 0x85, 0x32, 0x4f, 0x5b, -0x81, 0x29, 0xab, 0x0e, 0xac, 0x7e, 0x6b, 0x18, 0x29, 0xed, 0x8a, 0x03, 0x3f, 0xd1, 0x56, 0xbd, -0xb5, 0x86, 0x9e, 0xb2, 0xff, 0xce, 0x6c, 0xea, 0x5a, 0x3d, 0xcf, 0x33, 0x98, 0xf2, 0xec, 0xa1, -0xd5, 0xef, 0x0c, 0xf3, 0xfe, 0xc4, 0x92, 0x9b, 0x1b, 0xa4, 0x14, 0xc2, 0xc4, 0x73, 0xbf, 0x38, -0x21, 0xdd, 0x4b, 0x56, 0xcf, 0xd8, 0xe2, 0x3d, 0x55, 0xcd, 0xda, 0x1a, 0xae, 0xed, 0x7e, 0xcc, -0x7f, 0x3f, 0xe6, 0x5f, 0x73, 0x68, 0xed, 0x3b, 0x6b, 0xb0, 0xae, 0xfb, 0x0f, 0xfd, 0x44, 0x5b, -0xf3, 0xce, 0x30, 0x3d, 0x65, 0xff, 0xed, 0xd9, 0xd4, 0xd5, 0xf4, 0x74, 0x8d, 0x76, 0xbf, 0xc0, -0x25, 0x3d, 0x87, 0xf9, 0x9e, 0xc3, 0x7c, 0x2f, 0xbc, 0xb3, 0x3a, 0x32, 0x3c, 0xf8, 0x8d, 0x03, -0x6b, 0xdf, 0x5a, 0xc3, 0x7b, 0xbf, 0x4b, 0x6e, 0xc6, 0xd1, 0x52, 0x5d, 0xf6, 0xd8, 0xce, 0x7f, -0x90, 0xee, 0x49, 0x19, 0x7f, 0xf1, 0x21, 0x8e, 0xb4, 0xd8, 0xab, 0x33, 0xe7, 0xc6, 0xd9, 0x2c, -0xc6, 0x99, 0x79, 0x92, 0xd8, 0xad, 0x51, 0xe9, 0x9e, 0x5b, 0x13, 0xd2, 0xbd, 0x6a, 0x19, 0xef, -0xc1, 0x5d, 0x35, 0xf2, 0x3c, 0x93, 0x06, 0xb8, 0x1b, 0x47, 0xd5, 0x86, 0x77, 0x12, 0x54, 0xa4, -0x84, 0xd4, 0x24, 0xb3, 0x84, 0x50, 0x04, 0xd7, 0xa5, 0x50, 0x42, 0x84, 0xf3, 0x98, 0x66, 0x73, -0x36, 0x8a, 0x73, 0xfb, 0x41, 0xdf, 0x38, 0xf9, 0xe9, 0x3a, 0x86, 0x7d, 0xef, 0xfa, 0x3a, 0xed, -0xba, 0x1b, 0x94, 0x26, 0x5c, 0xd7, 0x1f, 0x21, 0xdf, 0x79, 0xb6, 0x1f, 0xe0, 0xa9, 0xfc, 0x59, -0x0e, 0x73, 0x02, 0x8b, 0x44, 0x6c, 0x6b, 0xc4, 0xa3, 0x95, 0x84, 0x4f, 0xd5, 0x8e, 0x41, 0xdb, -0xf6, 0x7f, 0x80, 0xd2, 0x54, 0x62, 0xd7, 0x3f, 0x80, 0x27, 0x15, 0xad, 0x8a, 0xe3, 0x9c, 0xc7, -0xbe, 0xd5, 0x25, 0x75, 0x40, 0x85, 0xa3, 0x89, 0xb5, 0x3d, 0xda, 0xd3, 0x56, 0x7c, 0xae, 0x05, -0x05, 0x7f, 0xeb, 0xc0, 0xae, 0x5a, 0xbe, 0xd5, 0x0d, 0x56, 0x7c, 0xea, 0x46, 0xc2, 0x64, 0x0f, -0x7f, 0x08, 0x8e, 0x86, 0x0f, 0x73, 0x3c, 0xf5, 0x0b, 0xcb, 0x25, 0xd5, 0x6a, 0x0f, 0x91, 0x16, -0x76, 0xea, 0xc7, 0x54, 0x56, 0x24, 0x92, 0x3f, 0x35, 0x4a, 0x44, 0x52, 0xb5, 0x3c, 0x3a, 0xc5, -0xc9, 0xb1, 0xff, 0xa7, 0xb1, 0x75, 0x53, 0x4e, 0xbe, 0xd0, 0xd8, 0x37, 0x6f, 0xe1, 0x8e, 0x4a, -0x28, 0x6d, 0xf5, 0x34, 0xb5, 0xf5, 0xc3, 0x59, 0xd5, 0x48, 0xe7, 0xaf, 0x33, 0x97, 0xb2, 0xd4, -0xde, 0x8b, 0x77, 0xf7, 0xac, 0x20, 0xdc, 0xfc, 0xb2, 0xaf, 0x48, 0x0e, 0x15, 0x69, 0x35, 0x21, -0x25, 0xe6, 0x73, 0x49, 0x1d, 0x72, 0xe8, 0x12, 0xf8, 0x67, 0xad, 0x09, 0xd5, 0x84, 0x91, 0x17, -0xe9, 0x40, 0xcc, 0x3f, 0xe6, 0x97, 0xe5, 0xb0, 0xf6, 0x7d, 0xa4, 0x2f, 0xc6, 0x74, 0x9d, 0x4f, -0x32, 0x86, 0xb4, 0xd7, 0xc9, 0x06, 0x7b, 0x49, 0xb5, 0x89, 0xac, 0x70, 0xec, 0x09, 0xb9, 0x6f, -0x8e, 0x25, 0x0c, 0x35, 0x29, 0xb3, 0xbe, 0x4b, 0xba, 0x4d, 0xec, 0x91, 0x22, 0xb4, 0x07, 0x99, -0xd7, 0x33, 0x47, 0x50, 0x9e, 0x34, 0x9d, 0xc5, 0x3c, 0x29, 0xe4, 0x5b, 0xc3, 0xb0, 0x34, 0x6d, -0xc5, 0xdf, 0x74, 0xda, 0x84, 0xbf, 0xf7, 0xa5, 0xc8, 0xbf, 0x77, 0xcc, 0xdf, 0x2f, 0x75, 0x7e, -0x7b, 0x81, 0xb4, 0x08, 0x79, 0x9a, 0xce, 0x4c, 0xeb, 0xf8, 0xda, 0x95, 0xad, 0x3b, 0x87, 0x53, -0xc6, 0x6f, 0x0f, 0x61, 0x35, 0x9d, 0x99, 0xbf, 0x6a, 0x84, 0xf1, 0xb5, 0xc4, 0x9f, 0xc2, 0x33, -0x29, 0x93, 0x12, 0x83, 0x2e, 0x94, 0x9c, 0x3a, 0x7d, 0x33, 0x95, 0x58, 0xad, 0x4b, 0xea, 0xfc, -0x55, 0xc8, 0x1f, 0x22, 0x2b, 0x6e, 0x3e, 0xcb, 0x56, 0xf2, 0xf3, 0x16, 0x41, 0x4e, 0xde, 0x17, -0x84, 0x13, 0xa4, 0xd1, 0x2b, 0x75, 0xa6, 0xdd, 0xb6, 0x20, 0x4a, 0xd6, 0xe4, 0x1b, 0x78, 0x76, -0xda, 0x77, 0x55, 0xae, 0x0f, 0x49, 0x8e, 0xc0, 0x5c, 0x06, 0xcc, 0x45, 0xb2, 0x54, 0x17, 0x62, -0x66, 0x63, 0xa4, 0x07, 0xcc, 0xf8, 0x6f, 0x51, 0x57, 0x11, 0x8f, 0x90, 0x99, 0x8f, 0xad, 0xa0, -0x55, 0xb9, 0xd1, 0x27, 0xe3, 0x08, 0xec, 0xa0, 0x11, 0xf8, 0x9e, 0xc5, 0x12, 0x81, 0xff, 0x92, -0x36, 0xe2, 0x6f, 0x32, 0x35, 0x98, 0x29, 0xda, 0x3f, 0x9c, 0x36, 0x2c, 0x77, 0xd1, 0x09, 0xf3, -0xf4, 0x1a, 0xee, 0xa0, 0x13, 0x1f, 0xe3, 0x1d, 0x64, 0x2f, 0x40, 0xfa, 0xc0, 0x92, 0x7f, 0x48, -0xdb, 0xf1, 0xf6, 0x38, 0xdb, 0xbf, 0x97, 0xd8, 0x7c, 0x4f, 0x40, 0x7c, 0x78, 0xf7, 0x1e, 0xac, -0xd1, 0xcc, 0x29, 0x65, 0x22, 0xe5, 0xd5, 0xf1, 0x3b, 0x22, 0x60, 0xe1, 0x53, 0x89, 0x59, 0xf9, -0x33, 0x89, 0xdc, 0x7e, 0x8b, 0x45, 0x85, 0x19, 0x4f, 0xe5, 0xa5, 0xc7, 0x19, 0x89, 0x84, 0xdc, -0x5b, 0x91, 0x58, 0x9f, 0xaa, 0x24, 0x1c, 0x38, 0x63, 0x0d, 0xcb, 0x58, 0xc5, 0x08, 0x6d, 0x20, -0x55, 0x62, 0xce, 0x41, 0x86, 0x7b, 0x4b, 0xe1, 0x8e, 0xda, 0x72, 0xc3, 0x8e, 0xe1, 0xb4, 0x45, -0xec, 0xed, 0x4f, 0xd1, 0x4e, 0xd1, 0xfe, 0x69, 0xbb, 0x3f, 0xb4, 0xa7, 0xa9, 0xef, 0xff, 0x38, -0x20, 0xb3, 0x64, 0x7c, 0x0d, 0x41, 0x52, 0x1a, 0xa6, 0x6a, 0x94, 0x46, 0xd6, 0x82, 0xbe, 0x2e, -0xdd, 0x28, 0x64, 0x62, 0xe6, 0x7e, 0x27, 0xf9, 0x9c, 0x2e, 0x54, 0x08, 0x75, 0x2c, 0x7b, 0xd8, -0xed, 0x8d, 0xba, 0xb4, 0x5f, 0xae, 0x4b, 0x64, 0xe6, 0xe4, 0xd8, 0xf1, 0xa4, 0xb3, 0xc9, 0xd1, -0x03, 0x0e, 0xea, 0xc5, 0x72, 0xe0, 0x7d, 0x79, 0x89, 0x74, 0xff, 0x8d, 0x7b, 0x4c, 0x32, 0x14, -0xa7, 0x8d, 0x04, 0xbf, 0xaa, 0x85, 0x23, 0x57, 0x83, 0xf1, 0x45, 0xde, 0x1f, 0x34, 0x7a, 0xcd, -0xa2, 0xec, 0xaf, 0x95, 0x78, 0x74, 0x4c, 0x79, 0xf9, 0x05, 0x2e, 0x11, 0xb2, 0x6f, 0xca, 0x17, -0x79, 0x10, 0xb6, 0x8d, 0x1d, 0x7f, 0x9a, 0x4a, 0xa0, 0xec, 0x9a, 0xa1, 0x51, 0x32, 0x2e, 0xde, -0x21, 0xb8, 0x7b, 0xb7, 0xe0, 0xee, 0x8d, 0x8d, 0x89, 0xa2, 0x5e, 0x98, 0x61, 0x55, 0x9a, 0x14, -0x97, 0x90, 0x8a, 0x24, 0xe0, 0xbe, 0xa2, 0xa4, 0x0a, 0x2f, 0xf0, 0x5e, 0xc9, 0x8f, 0x0b, 0xe5, -0xb3, 0x7f, 0x5d, 0x6e, 0x6f, 0x72, 0xcc, 0x05, 0x8a, 0x32, 0x71, 0xb0, 0x75, 0x93, 0x88, 0x50, -0x4a, 0x5e, 0xb8, 0xc9, 0x9f, 0x4a, 0xf8, 0x8c, 0xb6, 0xa3, 0xe1, 0x8c, 0x36, 0x39, 0x48, 0x71, -0x2b, 0xfb, 0xb4, 0x27, 0x88, 0x06, 0x11, 0xc4, 0xa4, 0x5a, 0xb9, 0x7d, 0x2b, 0x39, 0xda, 0x3b, -0x8f, 0x9b, 0xd8, 0x31, 0xae, 0x22, 0xbb, 0x5e, 0x1b, 0x79, 0xea, 0x4c, 0x57, 0xdf, 0x38, 0x04, -0x45, 0xda, 0x4e, 0xfc, 0xbd, 0x41, 0xfb, 0x55, 0x55, 0x93, 0xb6, 0x0b, 0xb9, 0x89, 0x31, 0x31, -0xef, 0x79, 0x49, 0xd0, 0x13, 0x9b, 0x87, 0x92, 0xa1, 0x0a, 0xc5, 0x9b, 0x11, 0xef, 0xf4, 0xe7, -0xbd, 0xe5, 0xe2, 0x08, 0x24, 0xe9, 0x94, 0xce, 0x18, 0x2f, 0x6c, 0xe9, 0xb1, 0xd7, 0x95, 0x26, -0x6a, 0x99, 0xb3, 0x8b, 0x5a, 0x2a, 0x74, 0xc6, 0x1c, 0x55, 0x50, 0xa9, 0xca, 0xce, 0x26, 0x6c, -0xed, 0xbd, 0x5f, 0xd8, 0xda, 0xe8, 0x9f, 0x6c, 0xad, 0x9d, 0x67, 0x01, 0xb9, 0x43, 0x92, 0x3d, -0x38, 0x62, 0xde, 0xac, 0x3c, 0x0c, 0x44, 0x22, 0x2b, 0x24, 0xd5, 0xb0, 0x5c, 0x8a, 0x34, 0x4c, -0x6f, 0x65, 0xa2, 0x21, 0x05, 0x86, 0x23, 0xf6, 0x18, 0x61, 0x65, 0xa9, 0x23, 0x6d, 0x65, 0x1c, -0x7b, 0x0e, 0x71, 0xec, 0xf9, 0x01, 0x30, 0xec, 0x61, 0xbc, 0x4d, 0xb0, 0x1b, 0xfa, 0xc2, 0x76, -0x39, 0xb3, 0xb5, 0xe6, 0xda, 0x15, 0x04, 0x05, 0x60, 0xfa, 0x4e, 0x8c, 0x61, 0x25, 0xe3, 0x5c, -0x19, 0xe5, 0x79, 0x30, 0xf4, 0xe6, 0xbf, 0x10, 0xd2, 0x5a, 0x7c, 0xa5, 0xe1, 0xca, 0xfc, 0x11, -0x67, 0xcc, 0x57, 0x25, 0x45, 0xd2, 0x96, 0xf6, 0x10, 0xca, 0x3e, 0x91, 0x94, 0x21, 0xd2, 0x23, -0x85, 0x78, 0x8d, 0x3d, 0x5f, 0xb4, 0x8f, 0xac, 0x38, 0x48, 0x8e, 0x7e, 0xef, 0x75, 0x07, 0xa0, -0x34, 0xbb, 0xaf, 0x7d, 0x18, 0x65, 0xd3, 0x7d, 0x9d, 0x9b, 0x10, 0x36, 0x9e, 0x23, 0xbc, 0xe7, -0xec, 0x87, 0x80, 0xd2, 0x23, 0xc9, 0xae, 0x1e, 0xa8, 0x16, 0x76, 0xba, 0x30, 0xc2, 0x3a, 0x35, -0x06, 0xa5, 0x5f, 0x7e, 0x3f, 0x41, 0x3e, 0xea, 0x4d, 0xba, 0xbc, 0xa5, 0xfb, 0x92, 0xa7, 0x9e, -0x09, 0x8c, 0x79, 0x79, 0xb0, 0x8a, 0x7d, 0xc9, 0xf3, 0xe9, 0xda, 0xa4, 0xf6, 0xbe, 0xa3, 0x57, -0xf7, 0x25, 0xdf, 0x92, 0xb3, 0x4d, 0x25, 0x5b, 0xf1, 0xbc, 0x65, 0x69, 0x40, 0xef, 0xcd, 0xa4, -0xee, 0x4d, 0x9e, 0x9e, 0x3c, 0x39, 0x7f, 0xf2, 0x58, 0xc6, 0xdc, 0x6b, 0xf8, 0x93, 0xe7, 0x5c, -0x28, 0xbb, 0xbf, 0xfb, 0xbe, 0xe0, 0x25, 0x73, 0x3b, 0x04, 0x19, 0xc5, 0x2d, 0xb7, 0xb6, 0x0f, -0xd3, 0x3e, 0x45, 0x7f, 0x86, 0xf7, 0x56, 0x0f, 0xf3, 0xde, 0xea, 0x51, 0xc6, 0x3c, 0xaf, 0x7b, -0xdd, 0x72, 0xcb, 0x55, 0x3b, 0x15, 0x73, 0x0a, 0xe1, 0xeb, 0x5d, 0x94, 0xf7, 0xe7, 0x75, 0x4f, -0x3b, 0x87, 0x17, 0xfb, 0x02, 0xad, 0xfa, 0xde, 0x00, 0xef, 0x0b, 0x50, 0x9d, 0x7c, 0x16, 0x6f, -0xc9, 0xe3, 0x2d, 0x79, 0x33, 0xed, 0x0a, 0x28, 0xb4, 0x2b, 0x10, 0x73, 0xf4, 0x4b, 0x4b, 0x9c, -0xfd, 0x52, 0x8a, 0x77, 0x44, 0x4d, 0x59, 0x1d, 0x27, 0xe6, 0x23, 0xa0, 0x80, 0x8b, 0xd8, 0xb2, -0x02, 0xaa, 0x1a, 0xb4, 0x11, 0xe4, 0x79, 0x1e, 0x5e, 0x09, 0x55, 0x51, 0x6d, 0x3d, 0x7e, 0xbd, -0x1e, 0x79, 0x8a, 0x87, 0x75, 0x1e, 0x67, 0x3d, 0xf2, 0x38, 0x0f, 0x0b, 0x1e, 0x27, 0xfb, 0xef, -0xca, 0xa6, 0xae, 0xa3, 0xa7, 0xb7, 0x7f, 0xa2, 0x6d, 0xc1, 0x5a, 0x47, 0xde, 0x19, 0xc6, 0x32, -0x46, 0x14, 0xb3, 0x7d, 0x56, 0x64, 0xad, 0x71, 0x35, 0xf6, 0xc6, 0xff, 0xd6, 0x5a, 0x4a, 0xc7, -0x32, 0xb6, 0x6c, 0x5d, 0xfd, 0xf8, 0xf0, 0x7d, 0x41, 0xa5, 0x5f, 0xba, 0x27, 0x03, 0x62, 0x65, -0x93, 0x15, 0x0d, 0x8f, 0x20, 0x45, 0x01, 0x61, 0x6e, 0x84, 0xce, 0x3c, 0xa5, 0x7b, 0x75, 0xce, -0x0f, 0xf9, 0x8e, 0x3c, 0x17, 0xc3, 0x54, 0x77, 0x7d, 0x3a, 0x90, 0xdb, 0x15, 0xcd, 0xee, 0x3b, -0xd8, 0xff, 0x34, 0x76, 0x12, 0xf0, 0x56, 0xec, 0x49, 0x2f, 0x25, 0x68, 0xfb, 0x97, 0xc5, 0x0e, -0x40, 0x5c, 0x19, 0xec, 0xdc, 0xd4, 0xf4, 0x19, 0x79, 0xe1, 0x77, 0x11, 0x97, 0xe1, 0x63, 0xed, -0xce, 0x1b, 0xd2, 0x4e, 0x9b, 0x5b, 0x1e, 0x2e, 0x81, 0x76, 0xe9, 0x86, 0xb0, 0x3c, 0x9c, 0x80, -0x54, 0x59, 0xfb, 0x0b, 0xc5, 0x1e, 0xb6, 0xcb, 0x2b, 0xf5, 0x5a, 0x58, 0x77, 0x8c, 0xa3, 0x0c, -0xe9, 0xfe, 0xbb, 0x8d, 0x09, 0x7c, 0x9b, 0xda, 0x5b, 0xd5, 0xc2, 0x3c, 0x3b, 0xc2, 0xc1, 0xd1, -0xa3, 0x28, 0x67, 0xd3, 0xbe, 0x60, 0x07, 0x73, 0xcc, 0xa4, 0xef, 0x01, 0x52, 0x9c, 0x2d, 0x60, -0x88, 0x6e, 0xd4, 0x67, 0xf7, 0xf2, 0x70, 0x6d, 0x85, 0x00, 0x71, 0xeb, 0x87, 0xae, 0x9c, 0x04, -0x02, 0x92, 0x62, 0x99, 0x47, 0xf8, 0x09, 0xbf, 0x28, 0xa3, 0xf3, 0x42, 0xe6, 0xc0, 0x1c, 0x11, -0x7c, 0x37, 0x7d, 0xa5, 0x2b, 0x6e, 0x38, 0x98, 0x96, 0x1d, 0xa1, 0xab, 0x57, 0x9f, 0xa4, 0x73, -0x73, 0xd9, 0xd5, 0xf7, 0xe9, 0x51, 0xa3, 0xa4, 0xfd, 0xc1, 0x11, 0x24, 0xbd, 0x73, 0x8b, 0x84, -0xdc, 0x45, 0x29, 0x9d, 0x99, 0x2a, 0xa1, 0xb7, 0xc6, 0xed, 0xf1, 0xb7, 0x2f, 0x21, 0x5d, 0xac, -0x70, 0xdc, 0xb6, 0x01, 0xc4, 0xde, 0xdd, 0xd1, 0x46, 0x27, 0xe8, 0xa7, 0xb0, 0x38, 0x32, 0x0b, -0x3e, 0xa3, 0x19, 0x50, 0x66, 0xa9, 0x0e, 0xda, 0xdf, 0x72, 0x81, 0x5a, 0xe2, 0x35, 0x30, 0x6f, -0x4e, 0x96, 0x73, 0x5b, 0x9c, 0xed, 0x59, 0xed, 0xd4, 0xd4, 0x09, 0xc5, 0xa0, 0xfb, 0xc9, 0x3f, -0x84, 0x70, 0x44, 0xb4, 0xa3, 0x28, 0x39, 0xf6, 0xcf, 0x87, 0x5a, 0x37, 0xa9, 0xad, 0x7f, 0x5a, -0xb6, 0xfa, 0x34, 0x48, 0x34, 0x1d, 0xdb, 0x44, 0xd2, 0x0c, 0xb6, 0x2c, 0x1b, 0x0b, 0x66, 0x8b, -0x1e, 0x31, 0x49, 0x85, 0x7f, 0x3f, 0x87, 0x7c, 0x0e, 0xd2, 0x7e, 0xe4, 0xb1, 0xf0, 0x97, 0xb5, -0x0a, 0x6a, 0x12, 0x91, 0xf4, 0x1c, 0xbc, 0x7b, 0x24, 0xe5, 0xf1, 0xc4, 0x10, 0x9a, 0x2a, 0x95, -0x9f, 0x68, 0x5d, 0xf3, 0xb0, 0x1c, 0xa9, 0x92, 0x31, 0xfa, 0x23, 0x6a, 0x29, 0xbf, 0x25, 0x7e, -0xa9, 0xcb, 0x13, 0x73, 0xbe, 0x28, 0x95, 0xce, 0x6b, 0x96, 0x4a, 0xf9, 0x5b, 0x78, 0x2f, 0x98, -0xf8, 0x89, 0x36, 0x88, 0xd7, 0x80, 0x83, 0xf0, 0x46, 0xec, 0xe6, 0x46, 0xf0, 0xe0, 0x9b, 0xde, -0xb4, 0x59, 0x8c, 0x5c, 0xbd, 0xdc, 0xb9, 0x89, 0xa5, 0xcc, 0xca, 0xc8, 0x48, 0x60, 0x08, 0x4a, -0xdf, 0x79, 0x95, 0xa3, 0xd7, 0x99, 0xe3, 0xcb, 0x40, 0x11, 0xdc, 0x02, 0xf2, 0xc8, 0x09, 0xa8, -0x8c, 0x3c, 0x0f, 0xe5, 0x99, 0xf2, 0x89, 0x07, 0x6e, 0x0d, 0x41, 0xa9, 0xbd, 0x98, 0x20, 0x5d, -0x2a, 0xbf, 0x35, 0x8c, 0x5f, 0x3d, 0x2f, 0x95, 0xe2, 0x6c, 0x3d, 0x35, 0x3d, 0x96, 0x11, 0xca, -0xb8, 0xe5, 0x6c, 0xc1, 0x10, 0x20, 0x2d, 0x5b, 0xf2, 0xfa, 0x30, 0xd9, 0x89, 0x7c, 0x05, 0x9c, -0x5a, 0xaf, 0xc2, 0xc9, 0xc6, 0xe4, 0xdd, 0xda, 0x04, 0x79, 0x34, 0x70, 0xf5, 0x21, 0x27, 0x53, -0x66, 0x27, 0x2f, 0xee, 0x52, 0x8e, 0x27, 0xad, 0x73, 0x92, 0x06, 0x93, 0x53, 0xc1, 0x39, 0x94, -0x86, 0xaf, 0x7a, 0x27, 0x7c, 0xfb, 0x9f, 0xcb, 0xd8, 0xaf, 0x7c, 0x43, 0x31, 0x5d, 0xa4, 0x3d, -0x0a, 0xa7, 0xda, 0xe9, 0x5b, 0x8f, 0x23, 0xf7, 0xf6, 0x72, 0xfc, 0xd6, 0x90, 0xe4, 0xc3, 0xf7, -0x8f, 0x64, 0x6c, 0xf1, 0x10, 0xbd, 0x9d, 0x31, 0x71, 0xc5, 0xdb, 0x00, 0xbe, 0xcd, 0xc4, 0xce, -0x60, 0xbb, 0x84, 0x2f, 0x0d, 0xf3, 0x42, 0xf2, 0x64, 0x5f, 0x99, 0xdc, 0x4a, 0xf1, 0xef, 0xe0, -0x9b, 0xda, 0x04, 0xeb, 0x2a, 0x1c, 0xe4, 0xa7, 0x39, 0xda, 0x61, 0xe4, 0xf0, 0x14, 0x7c, 0x3e, -0x2a, 0x72, 0x93, 0x37, 0xe9, 0x5c, 0xce, 0x13, 0x9c, 0xf3, 0xb4, 0x9e, 0xf3, 0x2c, 0xe6, 0xa4, -0x28, 0x35, 0xe7, 0x95, 0x5e, 0x99, 0x22, 0x2c, 0x73, 0xac, 0x3c, 0x1c, 0xc3, 0x00, 0x3e, 0x3b, -0x39, 0x7e, 0xde, 0x89, 0x5c, 0x5a, 0xad, 0xbd, 0x0a, 0x02, 0xe2, 0x54, 0x0b, 0xb6, 0x33, 0xa7, -0xf0, 0x82, 0x12, 0xbd, 0x9e, 0xf8, 0x3f, 0x6b, 0xa6, 0x74, 0x62, 0xdd, 0xcd, 0x21, 0x9c, 0x85, -0xe7, 0x78, 0x16, 0xe8, 0xbe, 0xf4, 0xd6, 0x28, 0x18, 0x62, 0xa7, 0xc0, 0x84, 0xb3, 0x63, 0xc3, -0xd9, 0xb1, 0x84, 0x4f, 0x81, 0xe5, 0xd6, 0x38, 0x98, 0xf0, 0x5a, 0x8a, 0x57, 0x9e, 0x31, 0xbc, -0x2f, 0xc7, 0xfb, 0x52, 0xbc, 0x2a, 0x78, 0x75, 0x61, 0x9a, 0x03, 0xef, 0x1d, 0x78, 0xaf, 0x84, -0x4f, 0xe1, 0x0c, 0xc6, 0xc5, 0x0c, 0x12, 0x57, 0x89, 0x2b, 0xb8, 0xe1, 0xe6, 0x21, 0x38, 0xfe, -0x03, 0x03, 0x94, 0xdc, 0xdc, 0x0c, 0x56, 0xac, 0xd9, 0x0f, 0x33, 0x31, 0xe5, 0x5f, 0xb7, 0x7c, -0x04, 0x14, 0x61, 0x6f, 0xec, 0xf7, 0xa5, 0xce, 0x8d, 0xb8, 0xea, 0x21, 0x39, 0x76, 0xf8, 0x83, -0xb9, 0x3d, 0x28, 0x87, 0xac, 0x9b, 0x9b, 0x80, 0x0d, 0xcc, 0x47, 0x2e, 0x27, 0xcd, 0xef, 0xd8, -0xe4, 0xe1, 0x63, 0xc9, 0xcd, 0x78, 0x57, 0x05, 0xb5, 0xc9, 0xcd, 0x48, 0xc7, 0x02, 0xb9, 0x31, -0x8e, 0xe0, 0x93, 0x2f, 0xff, 0xc4, 0x94, 0x84, 0x71, 0x3f, 0x8e, 0xa0, 0x9d, 0xfc, 0xf2, 0x1d, -0x66, 0xef, 0x2d, 0xd9, 0x34, 0x69, 0x98, 0xf0, 0xd6, 0xe1, 0x08, 0xd1, 0xce, 0xc2, 0x74, 0x8a, -0x27, 0x82, 0xe9, 0x64, 0x9b, 0x63, 0x61, 0x4f, 0x75, 0xe4, 0xb3, 0x61, 0x47, 0x36, 0xea, 0x47, -0xd6, 0x2e, 0x16, 0x57, 0x34, 0x45, 0x52, 0x70, 0x43, 0x60, 0xc1, 0xe4, 0xe1, 0x64, 0x72, 0x0b, -0xdf, 0xd7, 0xe2, 0xd5, 0x2c, 0xf4, 0x82, 0x94, 0xee, 0xc2, 0xb6, 0xe0, 0x53, 0x41, 0x3b, 0x0b, -0x5a, 0x85, 0x92, 0xd6, 0x82, 0xc9, 0xdf, 0xed, 0xe2, 0x38, 0x4a, 0x95, 0xd5, 0xbf, 0xca, 0xb5, -0xcc, 0x8c, 0x25, 0xe5, 0xdb, 0x33, 0x8b, 0xdf, 0x97, 0x8b, 0xb8, 0x1f, 0x1c, 0x97, 0x42, 0xd8, -0x95, 0x39, 0x90, 0x57, 0xea, 0x10, 0x1a, 0x10, 0x85, 0x51, 0x44, 0x94, 0x16, 0x9f, 0x1b, 0x4a, -0xe2, 0xe3, 0x7e, 0x37, 0xd8, 0x74, 0xcf, 0xd8, 0x43, 0xce, 0x90, 0x13, 0xb2, 0x11, 0x44, 0x12, -0x6b, 0xd3, 0x73, 0x7e, 0x79, 0x52, 0x4a, 0xa6, 0xcb, 0x95, 0x2a, 0x70, 0xa5, 0x4b, 0xf9, 0x5c, -0xd3, 0x08, 0xe5, 0x8b, 0x76, 0xc7, 0x57, 0xc7, 0x77, 0x8f, 0xaf, 0xd6, 0xa3, 0x70, 0x5a, 0xbe, -0xaa, 0xb5, 0xdd, 0x17, 0x79, 0xb9, 0xfb, 0x53, 0x1a, 0x90, 0x97, 0xe3, 0x79, 0x1f, 0x79, 0x19, -0x49, 0xd7, 0x81, 0x7c, 0x5a, 0xd7, 0x70, 0x9c, 0x20, 0x3f, 0xbd, 0xd8, 0xcf, 0xc5, 0x58, 0x9f, -0xea, 0x1e, 0x80, 0xa5, 0xa4, 0xed, 0xe8, 0xf6, 0x42, 0xaf, 0xc7, 0x0b, 0x19, 0x9c, 0x85, 0x95, -0x98, 0x7f, 0xd8, 0x51, 0x0d, 0x8b, 0x5d, 0xd5, 0xd0, 0x99, 0x18, 0x80, 0xfb, 0xd3, 0x4b, 0xbc, -0x43, 0xc3, 0xf2, 0xcd, 0x9f, 0x83, 0xdb, 0xdb, 0x00, 0x01, 0xf6, 0x98, 0x53, 0x6d, 0x73, 0x49, -0xff, 0x43, 0x06, 0x90, 0x6f, 0x0a, 0x41, 0xb5, 0x77, 0x99, 0xdc, 0x06, 0xad, 0xde, 0x66, 0xa8, -0xf5, 0x26, 0x20, 0xe8, 0x6d, 0x41, 0x29, 0x20, 0x06, 0x51, 0x6f, 0x23, 0xc4, 0x49, 0x6f, 0xce, -0xbb, 0x10, 0x7c, 0x8e, 0x2e, 0x39, 0xb3, 0x43, 0xf7, 0x4a, 0x5a, 0xe0, 0x6b, 0xc3, 0x9d, 0xb3, -0x3b, 0xce, 0x90, 0x2e, 0x3e, 0x5b, 0x4e, 0x94, 0xb3, 0x5c, 0xee, 0x4d, 0xdb, 0x88, 0x43, 0xb2, -0xcd, 0x52, 0x12, 0x98, 0xaf, 0x83, 0xf8, 0x23, 0xec, 0x61, 0xc7, 0xa8, 0xf0, 0xc6, 0x5a, 0xd0, -0x1a, 0x4f, 0x83, 0xbd, 0x1f, 0x5b, 0x33, 0xb7, 0xa0, 0x35, 0x5f, 0xd2, 0x0e, 0xaa, 0x53, 0x68, -0xa2, 0x93, 0xa6, 0x8c, 0xb0, 0xab, 0x9e, 0x3a, 0xd2, 0xba, 0x09, 0xcb, 0x5e, 0xce, 0x27, 0xd0, -0x52, 0x7a, 0xf1, 0xad, 0xb8, 0x66, 0x1e, 0xb2, 0x83, 0xe9, 0xeb, 0xba, 0xd6, 0xb8, 0xd2, 0x07, -0x06, 0xe1, 0x19, 0x46, 0x68, 0xf3, 0x4e, 0xf5, 0xe6, 0x52, 0xac, 0xc2, 0x2a, 0x70, 0xea, 0x59, -0xaf, 0x4c, 0x9e, 0x4c, 0xbc, 0xec, 0xd3, 0xc4, 0x3b, 0x33, 0xd8, 0x0b, 0xb2, 0xd7, 0x5a, 0xdb, -0xc1, 0x56, 0x7e, 0x63, 0x53, 0x65, 0xb8, 0x6e, 0x4d, 0x28, 0x03, 0x7e, 0x53, 0xf5, 0x17, 0x94, -0x66, 0xd5, 0x4b, 0x9b, 0xf3, 0x65, 0xdf, 0x5e, 0x3e, 0x42, 0xd6, 0x5f, 0xba, 0xff, 0x60, 0x5f, -0x4e, 0xbf, 0xd6, 0xe6, 0x14, 0x51, 0x9e, 0xed, 0x3c, 0x56, 0x52, 0xda, 0x1c, 0xe9, 0x86, 0x12, -0xfc, 0x2f, 0x55, 0x2b, 0xda, 0xda, 0xdb, 0x7a, 0x40, 0xbe, 0x1b, 0xd7, 0xf7, 0xdd, 0x3d, 0xba, -0x6f, 0xb9, 0x12, 0xfe, 0x2d, 0xbd, 0x9d, 0xd6, 0xbc, 0x19, 0x7f, 0x8d, 0x60, 0xe1, 0x7d, 0x2d, -0x29, 0x55, 0xa6, 0x74, 0x4d, 0xf3, 0x84, 0x6b, 0x60, 0x4f, 0xb8, 0x24, 0xcf, 0x95, 0x88, 0x73, -0x6f, 0xf8, 0x11, 0x9f, 0x97, 0xba, 0x90, 0xfe, 0x83, 0xa6, 0x91, 0xf7, 0xff, 0xf1, 0x93, 0x3c, -0x63, 0xc4, 0x8b, 0x21, 0x0f, 0x89, 0x12, 0x2b, 0xf9, 0x62, 0x2b, 0xee, 0x47, 0xc9, 0x16, 0xbf, -0x34, 0xf0, 0xf9, 0xb2, 0x99, 0xfd, 0xff, 0xcb, 0x5e, 0xa4, 0xdc, 0x23, 0xa7, 0xf4, 0x3d, 0x44, -0xed, 0xdb, 0x4b, 0x75, 0x7d, 0xa1, 0xf7, 0x45, 0x59, 0x42, 0x27, 0xe8, 0xad, 0x76, 0xf2, 0x6a, -0x97, 0x0e, 0x58, 0x42, 0xdf, 0x9f, 0x5a, 0xe2, 0xe4, 0xb3, 0x8b, 0xe0, 0xf7, 0xb5, 0x61, 0x7e, -0x67, 0x1c, 0xd6, 0xf0, 0x8e, 0x38, 0xad, 0x6c, 0x0a, 0x9d, 0xdf, 0xaa, 0x56, 0xd6, 0xae, 0xb6, -0xaa, 0xa2, 0x6f, 0xa4, 0xa5, 0x5e, 0x12, 0x1d, 0x47, 0x0e, 0xfc, 0xd9, 0x2b, 0x5a, 0x6a, 0xc1, -0x96, 0x9a, 0xa6, 0xb5, 0x94, 0x7c, 0x93, 0x16, 0x71, 0x4b, 0x0d, 0xdc, 0x47, 0xcc, 0xc3, 0x2d, -0x35, 0xe8, 0x2d, 0x35, 0x7e, 0x69, 0x4b, 0x71, 0x54, 0xc9, 0xdf, 0xde, 0x9f, 0xd1, 0x56, 0x9b, -0xde, 0x56, 0x9b, 0xde, 0x56, 0x5b, 0x46, 0x12, 0x7a, 0xcd, 0xdf, 0xd9, 0xc4, 0xf6, 0x9d, 0x03, -0x08, 0xbd, 0x5e, 0xa8, 0xc5, 0x95, 0x18, 0xc4, 0x15, 0x17, 0x77, 0xf6, 0x82, 0x5d, 0xf7, 0xfb, -0x0b, 0xa6, 0xaf, 0x31, 0xe7, 0x7b, 0x71, 0xb9, 0xeb, 0xe0, 0x26, 0xf2, 0x1e, 0x8c, 0x12, 0xae, -0x51, 0xf7, 0x7d, 0xce, 0xbe, 0x84, 0x2f, 0x5f, 0xd4, 0x23, 0x89, 0x01, 0x1c, 0x24, 0x8f, 0x9e, -0x23, 0x1f, 0x15, 0xfb, 0xdc, 0xa4, 0x43, 0x1e, 0xc5, 0x3b, 0xbf, 0xc3, 0x54, 0xff, 0xb5, 0x15, -0x50, 0x33, 0x63, 0xa5, 0xbc, 0x7f, 0xad, 0x6e, 0x8d, 0x62, 0xf6, 0x0d, 0x80, 0xe7, 0x67, 0xe3, -0x69, 0x8f, 0xbd, 0x38, 0x1e, 0x8e, 0x84, 0x47, 0x36, 0x78, 0x61, 0xf3, 0x03, 0x5e, 0x29, 0x3b, -0x3a, 0x16, 0xb6, 0xb6, 0x1c, 0xc0, 0xf9, 0x6b, 0x0c, 0xb9, 0xa1, 0xf1, 0x81, 0x23, 0x0f, 0xfc, -0xdd, 0x03, 0xaf, 0x0f, 0x67, 0x0c, 0xfb, 0x86, 0xf5, 0xef, 0x2d, 0xf8, 0x7d, 0x35, 0x7f, 0x2f, -0xe7, 0xbe, 0x5f, 0x73, 0xed, 0xef, 0x1d, 0xd0, 0xb8, 0xe6, 0xe0, 0x9a, 0xc7, 0xd7, 0xec, 0x1d, -0x4e, 0xac, 0x4b, 0x9b, 0xf9, 0x6b, 0x79, 0xf4, 0x81, 0x94, 0x15, 0x71, 0xa3, 0x93, 0x9f, 0x0c, -0xa3, 0x6b, 0xd2, 0x95, 0x2b, 0xa1, 0xb6, 0x0a, 0x4c, 0xd8, 0xca, 0x2a, 0x9e, 0x8b, 0x19, 0x4a, -0x8b, 0xbd, 0xd1, 0x5e, 0xbc, 0x4a, 0xc2, 0xd5, 0xe4, 0x41, 0x0c, 0x79, 0xa9, 0x35, 0xe7, 0x19, -0x67, 0x3e, 0xd9, 0xe7, 0x86, 0x70, 0x84, 0x3a, 0xea, 0x70, 0x2a, 0x6a, 0xbc, 0xd0, 0x86, 0x14, -0xc2, 0xae, 0x63, 0x93, 0xf5, 0x43, 0x81, 0xa3, 0x9b, 0x90, 0x83, 0x26, 0x0d, 0xe3, 0x56, 0xfa, -0x17, 0xa3, 0x54, 0xeb, 0x85, 0x28, 0x79, 0x1e, 0xa7, 0x37, 0xc9, 0xb1, 0x4b, 0xaf, 0x67, 0x47, -0x4b, 0x5a, 0xe4, 0x8f, 0x1d, 0xd8, 0xeb, 0x6b, 0x98, 0xd8, 0x83, 0x39, 0x02, 0xbe, 0x99, 0x23, -0xd1, 0x6f, 0x87, 0x8a, 0x7d, 0x58, 0x66, 0x4d, 0xbd, 0xe9, 0xe9, 0x86, 0x6f, 0x37, 0x15, 0x93, -0x4d, 0x9d, 0x4c, 0xbe, 0xaa, 0x7c, 0x25, 0xab, 0xa0, 0x0e, 0x4c, 0xc5, 0xb8, 0x0a, 0x1a, 0x87, -0x20, 0x38, 0xb3, 0x36, 0xfa, 0xab, 0x7d, 0x03, 0x96, 0xa0, 0x1b, 0xac, 0x2f, 0x87, 0x97, 0x56, -0x6f, 0x6e, 0x54, 0x7d, 0x75, 0x03, 0x50, 0xfb, 0xfb, 0xdf, 0xfe, 0x6a, 0x5f, 0xbf, 0x93, 0x52, -0xef, 0x87, 0x7a, 0xc9, 0xd5, 0x54, 0x6f, 0xf4, 0x36, 0x41, 0xf5, 0xfd, 0xd0, 0xd8, 0xf4, 0xf4, -0x4f, 0xa1, 0x7a, 0xd7, 0xc6, 0x01, 0xd3, 0x81, 0x46, 0xd5, 0x18, 0x09, 0xab, 0xf2, 0xa0, 0x36, -0x64, 0x78, 0xe3, 0x81, 0x74, 0x0b, 0xe6, 0x33, 0xd5, 0x36, 0xfc, 0xea, 0xd7, 0x03, 0x96, 0x7a, -0xa4, 0x21, 0xbb, 0x22, 0x4b, 0x03, 0x5b, 0x9a, 0xd4, 0x1a, 0x2c, 0xab, 0x0e, 0xcb, 0xfa, 0x75, -0xbf, 0x67, 0x3e, 0xf9, 0xdd, 0xf0, 0x63, 0x2e, 0xd9, 0xdd, 0x44, 0xb6, 0x30, 0xd3, 0xca, 0xfb, -0x9b, 0x01, 0xf3, 0xc1, 0x01, 0xf0, 0x63, 0x89, 0xc4, 0x65, 0x6a, 0xd1, 0x57, 0x7b, 0x2a, 0x50, -0xc6, 0xb0, 0xb4, 0x47, 0xe7, 0x47, 0x21, 0xd0, 0x81, 0xed, 0x51, 0xcd, 0x6d, 0x0d, 0xf3, 0x1b, -0xa0, 0x06, 0xef, 0xeb, 0x70, 0x84, 0x67, 0xfa, 0x11, 0xc6, 0x7e, 0xbe, 0xb7, 0xdf, 0x89, 0xe3, -0x6c, 0xc2, 0x19, 0xac, 0xf9, 0xd9, 0x2b, 0xfd, 0x15, 0xb5, 0x98, 0xef, 0xed, 0x37, 0x7e, 0xbe, -0x77, 0xc0, 0x86, 0x6f, 0xeb, 0xde, 0x7a, 0xed, 0x67, 0xaf, 0x0c, 0x18, 0x21, 0x24, 0x81, 0x6a, -0x90, 0x43, 0x53, 0x1a, 0xf0, 0xae, 0x3e, 0x7e, 0xeb, 0xe6, 0xd9, 0xc1, 0xd5, 0x29, 0xaf, 0xa1, -0xb9, 0x15, 0xbe, 0x08, 0x85, 0x55, 0xae, 0xd2, 0x8c, 0x74, 0x25, 0x8a, 0x70, 0x1b, 0xcf, 0xce, -0x17, 0x6b, 0x03, 0xdb, 0x72, 0x1e, 0xf2, 0x2c, 0x44, 0xd9, 0xc8, 0x5a, 0x93, 0xf4, 0x14, 0x07, -0x2a, 0x59, 0x7b, 0x60, 0x76, 0xba, 0x34, 0xb0, 0x0c, 0xcc, 0x35, 0x88, 0x61, 0x9a, 0xce, 0xed, -0x84, 0xf8, 0xf0, 0x96, 0xf1, 0x5f, 0xfc, 0x66, 0xc0, 0x43, 0xd6, 0x9e, 0x9c, 0xcb, 0xc9, 0xf8, -0x77, 0x76, 0x7a, 0x8e, 0x5f, 0x78, 0x3a, 0x30, 0x50, 0x4c, 0xdb, 0xf8, 0xf0, 0xe6, 0xf1, 0x9f, -0xef, 0xa7, 0x73, 0xa1, 0x68, 0x48, 0x35, 0x8a, 0x68, 0x39, 0x39, 0x8b, 0x32, 0x55, 0xf7, 0xe9, -0x46, 0x96, 0x8d, 0x36, 0xe4, 0x46, 0x4b, 0x5d, 0xf3, 0xa0, 0x52, 0x89, 0x92, 0x05, 0x77, 0x55, -0x17, 0x74, 0x6a, 0xbd, 0x48, 0x4f, 0x0c, 0x03, 0x50, 0x5c, 0x82, 0x57, 0x23, 0x5e, 0xcd, 0x7c, -0xb2, 0x6f, 0x4b, 0x39, 0x0a, 0xad, 0xae, 0x52, 0x65, 0x02, 0xd3, 0x6a, 0x8d, 0x28, 0x09, 0x85, -0x16, 0xed, 0x8b, 0xaf, 0x8f, 0xef, 0x8b, 0xae, 0x57, 0xe5, 0x21, 0xa9, 0xba, 0x0a, 0xec, 0x4a, -0xd3, 0x5d, 0xad, 0x5a, 0x37, 0x47, 0x0f, 0x88, 0x92, 0xdd, 0x0c, 0x59, 0x3a, 0x1b, 0xf6, 0xb0, -0xf5, 0xed, 0x3c, 0x28, 0xf7, 0x5a, 0x9c, 0xb3, 0x8d, 0x6b, 0x35, 0x4d, 0x5b, 0xce, 0x7e, 0x32, -0x29, 0xf2, 0x40, 0x03, 0xe7, 0x3b, 0xe0, 0x04, 0xb1, 0x57, 0x66, 0x58, 0x8f, 0xdc, 0xe5, 0xc1, -0x6c, 0x6e, 0x01, 0x9b, 0xbe, 0x3e, 0xed, 0x30, 0x8d, 0x96, 0xcf, 0x34, 0x40, 0x16, 0x78, 0x47, -0xfa, 0x2b, 0x85, 0x0f, 0xdd, 0x8b, 0x6e, 0x8e, 0x28, 0xe0, 0x81, 0x6a, 0xbc, 0xf7, 0xe9, 0xfb, -0x11, 0x8b, 0x82, 0x8d, 0x7e, 0x2c, 0xe1, 0xae, 0x05, 0xda, 0x51, 0xff, 0x3c, 0xed, 0xd0, 0x5d, -0x61, 0xed, 0xdd, 0x89, 0xd7, 0xda, 0xe3, 0x77, 0xc5, 0xb5, 0x63, 0x64, 0xdf, 0x75, 0x57, 0x48, -0x3b, 0xee, 0x2f, 0xc1, 0xd4, 0xf7, 0x11, 0x37, 0xc9, 0xf8, 0xf4, 0xc1, 0x01, 0xec, 0x73, 0x7b, -0x18, 0x53, 0x4e, 0x90, 0x15, 0x2e, 0xe7, 0x38, 0x49, 0x16, 0xe7, 0xc9, 0xb1, 0x4f, 0xcf, 0x61, -0x0f, 0x7f, 0x42, 0xbb, 0x6c, 0xb0, 0x0f, 0xcb, 0xea, 0x8e, 0xee, 0xee, 0x29, 0x41, 0x6a, 0x64, -0x69, 0x6b, 0x6d, 0xeb, 0x42, 0x8a, 0x81, 0x23, 0x8e, 0xff, 0x64, 0xf3, 0x61, 0xf1, 0x5f, 0x8f, -0xdf, 0x9f, 0xa6, 0xe8, 0xc6, 0xf8, 0xf5, 0x47, 0xa4, 0x45, 0xca, 0x25, 0x9e, 0x25, 0x0d, 0x52, -0x2e, 0xf1, 0x1c, 0xd7, 0x79, 0x5e, 0xaf, 0xf3, 0x42, 0xae, 0xce, 0x8b, 0xb9, 0x3a, 0x27, 0x1b, -0xce, 0x68, 0x2f, 0x7a, 0x67, 0x72, 0x7c, 0xeb, 0x3e, 0xe4, 0xa7, 0x17, 0x68, 0x4b, 0xa8, 0xf7, -0x97, 0xcf, 0xe1, 0x3b, 0x92, 0x8d, 0x2d, 0x43, 0x48, 0xce, 0xaa, 0xe2, 0x5a, 0x46, 0xad, 0xf6, -0xd2, 0x0e, 0x42, 0xc6, 0x5b, 0xe4, 0x9d, 0x81, 0x39, 0xdf, 0xc7, 0xff, 0xa3, 0x8a, 0xf1, 0xdf, -0x37, 0xc4, 0xff, 0xda, 0x04, 0x38, 0x1a, 0x38, 0x37, 0xfc, 0xed, 0xd8, 0xa7, 0xf1, 0xb6, 0xf5, -0x64, 0xfd, 0x67, 0xef, 0xd3, 0x96, 0xbc, 0xdc, 0xa7, 0xa5, 0xfa, 0xf6, 0xe3, 0xaa, 0xc4, 0x5e, -0x98, 0x8c, 0xec, 0x0f, 0x68, 0x07, 0x5e, 0x4d, 0x8b, 0x7e, 0x1d, 0x7f, 0x30, 0xfe, 0xeb, 0xe8, -0x83, 0x3e, 0x2b, 0xc5, 0x4a, 0xfc, 0xd3, 0x6d, 0x24, 0xdf, 0x7a, 0x37, 0x5f, 0xd2, 0x5e, 0xa4, -0xf9, 0x2d, 0x21, 0x7e, 0x46, 0x02, 0xf9, 0xc6, 0xb0, 0xb6, 0xbd, 0xaa, 0x57, 0x6e, 0xd3, 0x26, -0x50, 0x4a, 0xde, 0x59, 0xd5, 0xa0, 0xbd, 0x5c, 0xd5, 0xac, 0x8d, 0x63, 0x6f, 0x28, 0x8a, 0xdd, -0x5e, 0xbc, 0x1e, 0xc5, 0xeb, 0xfe, 0xaa, 0x26, 0xed, 0x8d, 0xaa, 0x98, 0xb6, 0x23, 0xcf, 0xd7, -0xc8, 0x4b, 0x0a, 0xf6, 0x69, 0x5e, 0xcc, 0xf1, 0x35, 0x20, 0x27, 0x22, 0x3f, 0xd1, 0x2e, 0x25, -0x7a, 0x90, 0xb3, 0xa9, 0x60, 0xab, 0x59, 0x6f, 0xba, 0x44, 0xe7, 0x6c, 0x9a, 0x31, 0xe7, 0x25, -0x86, 0x97, 0x41, 0x94, 0xc1, 0x84, 0x47, 0x9e, 0xcc, 0x57, 0x6f, 0xb5, 0xbd, 0x37, 0xcf, 0xf7, -0xdc, 0x18, 0xc2, 0x56, 0x7f, 0x95, 0xf6, 0x52, 0x9d, 0x2f, 0x7a, 0x50, 0x82, 0x14, 0x3c, 0x90, -0xf4, 0x82, 0xf0, 0x17, 0x10, 0xdd, 0xd7, 0x3d, 0xe8, 0x95, 0x73, 0x5c, 0x0e, 0x42, 0xcb, 0x27, -0xeb, 0xfd, 0xdd, 0x20, 0x07, 0xdb, 0x7c, 0xd8, 0x82, 0xf0, 0x85, 0x0d, 0x9a, 0x57, 0x0e, 0x62, -0x0b, 0x28, 0x36, 0x04, 0xeb, 0xb9, 0x9a, 0xbc, 0x45, 0x9e, 0x20, 0x1c, 0x1f, 0x0d, 0x92, 0xad, -0x8b, 0xaf, 0x0d, 0xdf, 0xc9, 0x98, 0xdf, 0xd8, 0x70, 0xe1, 0x09, 0x8d, 0xbd, 0x1d, 0xaf, 0x41, -0x4e, 0x06, 0xbf, 0x8c, 0x67, 0x4e, 0x4c, 0x89, 0xdc, 0xf6, 0xc6, 0xe4, 0xa3, 0xed, 0xd4, 0x9b, -0x6e, 0xb6, 0x28, 0xa6, 0x53, 0x97, 0x3d, 0x57, 0xd4, 0x58, 0x4a, 0x70, 0x81, 0xf3, 0x28, 0xa5, -0x5b, 0xa9, 0x6e, 0x5f, 0xdb, 0xd5, 0x75, 0x56, 0x8b, 0x3a, 0x9b, 0x92, 0x23, 0x7f, 0xaa, 0x75, -0xe4, 0xc7, 0xb8, 0xad, 0xed, 0xee, 0x6e, 0xb6, 0xf5, 0xf6, 0x45, 0xf7, 0xa5, 0xda, 0x7c, 0x6d, -0xf4, 0x0d, 0xae, 0x85, 0x6c, 0xcb, 0xb4, 0x2f, 0xef, 0xc7, 0xd5, 0x39, 0xa9, 0x0f, 0x6d, 0x98, -0xe3, 0x6e, 0xd1, 0x07, 0x1f, 0xc5, 0x4a, 0xa1, 0xd1, 0xe3, 0x5e, 0x18, 0x45, 0x2f, 0xce, 0x27, -0xaf, 0x6c, 0x7b, 0x80, 0xcb, 0x78, 0x4e, 0x2f, 0x03, 0x73, 0x18, 0x39, 0x5e, 0x87, 0x8f, 0x3c, -0x44, 0xfa, 0x4a, 0x46, 0x70, 0x75, 0xfb, 0xd9, 0x17, 0xe8, 0x96, 0x33, 0xda, 0x21, 0xf2, 0x06, -0xaa, 0x34, 0x20, 0x56, 0x38, 0xc8, 0xbe, 0x22, 0x0f, 0xc5, 0x77, 0x2f, 0x07, 0x47, 0x8c, 0x61, -0x24, 0xeb, 0xff, 0xde, 0xe5, 0x35, 0x20, 0x06, 0x39, 0xce, 0xde, 0x19, 0x8e, 0x79, 0x67, 0xe2, -0xfd, 0xbb, 0x7c, 0x7f, 0x14, 0xcb, 0x2f, 0x16, 0x78, 0x48, 0xf7, 0x74, 0xca, 0x58, 0xe5, 0x8f, -0x07, 0x5b, 0x37, 0xe5, 0xf1, 0xca, 0x1f, 0x0f, 0x73, 0x9c, 0x35, 0x92, 0xed, 0x6b, 0x75, 0xfb, -0xf0, 0x17, 0x0a, 0xa3, 0xb0, 0xb8, 0x0a, 0xa2, 0xb0, 0x7c, 0x19, 0xb6, 0x9c, 0x2c, 0x67, 0x6c, -0xa9, 0x7b, 0x40, 0x60, 0x7b, 0xba, 0x5c, 0x84, 0x15, 0x0f, 0xad, 0x86, 0x6a, 0x8e, 0xcb, 0x62, -0xe0, 0xb8, 0x2c, 0x2f, 0x5e, 0x19, 0x97, 0xc5, 0xad, 0x63, 0x47, 0xe9, 0x38, 0xc9, 0xde, 0x22, -0x9f, 0xc0, 0x8d, 0x55, 0xf8, 0xac, 0x9d, 0xc5, 0xdf, 0xd3, 0xc2, 0x83, 0x60, 0x02, 0xef, 0x06, -0x40, 0x7a, 0x03, 0xaf, 0x1f, 0xe1, 0x75, 0x2f, 0xe6, 0x3f, 0x4b, 0xf5, 0x9f, 0xbf, 0xd8, 0xba, -0xc9, 0x83, 0x5c, 0x00, 0x73, 0x40, 0x5b, 0x5e, 0x16, 0xbc, 0xc0, 0x8f, 0x11, 0x87, 0x14, 0x63, -0x1f, 0xcd, 0xad, 0x9b, 0x4c, 0xd5, 0xc4, 0x17, 0xa7, 0x16, 0xd3, 0x9c, 0xe5, 0x66, 0x88, 0xe0, -0x0c, 0xdf, 0x9f, 0x7b, 0x01, 0xc7, 0xec, 0x24, 0x8e, 0xee, 0x09, 0x3d, 0xa2, 0xcd, 0x47, 0x05, -0x11, 0x6d, 0x4e, 0x5f, 0x11, 0xd1, 0x86, 0x2c, 0x4f, 0x8e, 0x0f, 0x39, 0xda, 0xb0, 0x5d, 0xf8, -0x7f, 0xf2, 0x6e, 0xcc, 0x81, 0xff, 0x14, 0xeb, 0xc7, 0xc1, 0x11, 0x60, 0x2c, 0xd4, 0x22, 0xd1, -0x8b, 0xe4, 0xd8, 0x67, 0xbd, 0xba, 0x7f, 0x8c, 0x4a, 0xbd, 0x45, 0xa5, 0xa2, 0x45, 0xe7, 0x56, -0xfe, 0x89, 0x16, 0x55, 0xfc, 0xe7, 0xb4, 0x08, 0xe1, 0xe6, 0x04, 0x62, 0x88, 0x8b, 0xe2, 0x2b, -0xbc, 0xbb, 0x84, 0x29, 0x27, 0x09, 0x67, 0x88, 0x32, 0x39, 0x82, 0xa5, 0x99, 0xe3, 0x4b, 0x17, -0x93, 0x2d, 0x90, 0x32, 0xfb, 0x3b, 0xc3, 0xec, 0x9d, 0xd7, 0x28, 0x66, 0xf5, 0x0f, 0x64, 0xef, -0xe2, 0x52, 0x17, 0x5f, 0x39, 0x2b, 0x7f, 0x46, 0xeb, 0x8c, 0xa2, 0x7d, 0x0c, 0x81, 0x1e, 0xb5, -0x82, 0xf8, 0x56, 0x01, 0x79, 0x7f, 0xb8, 0x97, 0x77, 0x1a, 0x4a, 0x05, 0x14, 0xa7, 0x9e, 0x12, -0xd6, 0x3d, 0x7f, 0xa8, 0x69, 0xdd, 0xa4, 0x1e, 0xe1, 0x28, 0x32, 0x1b, 0xd8, 0xca, 0x5c, 0x66, -0x39, 0x16, 0x25, 0x1b, 0x61, 0xe1, 0x21, 0x62, 0x46, 0xc8, 0xdf, 0x99, 0xd2, 0x1c, 0x37, 0xa9, -0x70, 0xb9, 0x8d, 0xac, 0x65, 0x93, 0x7f, 0x8d, 0x7c, 0xe1, 0x61, 0xe6, 0x33, 0x7c, 0xc8, 0x83, -0x04, 0x84, 0x47, 0x6f, 0x8a, 0x70, 0x62, 0x9b, 0x89, 0x7c, 0x9b, 0xdf, 0x54, 0x21, 0xb8, 0x14, -0x6f, 0x08, 0xc7, 0x57, 0xc4, 0x3d, 0xd1, 0x63, 0x9b, 0x60, 0x8a, 0x0d, 0x25, 0xc1, 0x52, 0xdd, -0x57, 0x7d, 0x25, 0x79, 0x7b, 0xf4, 0x2e, 0xc0, 0x6f, 0x91, 0x23, 0x02, 0x07, 0x79, 0x4f, 0xff, -0xee, 0x38, 0x7b, 0x03, 0x5e, 0x00, 0xae, 0xe8, 0x4f, 0xc1, 0x95, 0x8d, 0xbe, 0x51, 0x18, 0xcb, -0x83, 0x7d, 0x41, 0xba, 0xa6, 0x7b, 0xf2, 0x72, 0xa1, 0xdc, 0x8e, 0x3c, 0xa4, 0xe0, 0x6e, 0x15, -0x47, 0xe4, 0x9d, 0x71, 0x3e, 0x73, 0x90, 0xd2, 0x14, 0x7b, 0xcd, 0xa0, 0x52, 0x6c, 0x36, 0x19, -0x31, 0x55, 0x25, 0xf2, 0x96, 0x73, 0xb6, 0xc7, 0xbf, 0x67, 0xd8, 0x1c, 0x27, 0x9d, 0xa0, 0xf1, -0xdd, 0x42, 0xbe, 0x30, 0x62, 0x6b, 0xbf, 0xaf, 0xe5, 0xf7, 0xb7, 0x47, 0xbb, 0xa1, 0x22, 0x65, -0x48, 0x34, 0xa4, 0xe7, 0xa0, 0x0c, 0x51, 0xe1, 0x6b, 0xf0, 0xc6, 0x11, 0xd6, 0xa2, 0xd8, 0x4a, -0x8a, 0x15, 0xd0, 0x4c, 0x7b, 0x15, 0x96, 0x4a, 0x15, 0xa6, 0x2e, 0x09, 0x3f, 0x60, 0x42, 0x9e, -0x9f, 0x5f, 0x8f, 0x6d, 0x50, 0x51, 0xa2, 0x58, 0x8a, 0xf2, 0x7c, 0x97, 0x12, 0x75, 0xbb, 0xc0, -0x61, 0x8f, 0x79, 0x97, 0x41, 0x27, 0xf8, 0xc4, 0xf8, 0x34, 0x9d, 0x37, 0x81, 0x32, 0x0f, 0xfb, -0x1b, 0x82, 0x4e, 0xe4, 0xeb, 0x28, 0xe6, 0x0e, 0x45, 0x39, 0x07, 0x1e, 0x8b, 0x22, 0x94, 0x92, -0x43, 0x10, 0xf7, 0x22, 0x16, 0x80, 0x96, 0x5c, 0xcc, 0x91, 0x16, 0xec, 0x77, 0x34, 0xef, 0x73, -0xd2, 0xe4, 0xc9, 0x7a, 0x97, 0x4a, 0xac, 0xa5, 0xfd, 0x8c, 0xd1, 0x30, 0xd1, 0xdb, 0x68, 0x13, -0x79, 0x34, 0x15, 0xd1, 0x41, 0x63, 0x1f, 0x23, 0x0f, 0x6e, 0x46, 0x58, 0xd2, 0xa3, 0x30, 0xeb, -0x12, 0x8b, 0x59, 0xc0, 0xd1, 0xf6, 0xc1, 0x40, 0x88, 0xd7, 0x87, 0xfc, 0xf8, 0xeb, 0xc8, 0xf5, -0x57, 0x44, 0x1a, 0xc9, 0xa3, 0x13, 0xfb, 0x5c, 0x2f, 0xb2, 0x15, 0xe3, 0x3a, 0x7e, 0x72, 0x49, -0x2d, 0xdf, 0x93, 0x65, 0xcb, 0xb8, 0xee, 0xd9, 0x70, 0x36, 0x71, 0x2b, 0x9c, 0x2a, 0xa1, 0x8c, -0xf7, 0x26, 0x79, 0x90, 0xe3, 0xa7, 0xa2, 0x34, 0xfb, 0xf5, 0xb2, 0x19, 0x30, 0x75, 0xa7, 0xda, -0xc1, 0xf7, 0xa6, 0xb4, 0x6f, 0x49, 0x29, 0xdf, 0x19, 0xd3, 0x22, 0x65, 0x06, 0xc7, 0x53, 0x62, -0xaf, 0x5f, 0xb6, 0x99, 0xe4, 0xe9, 0x14, 0xaf, 0x66, 0x4c, 0x5b, 0xaf, 0xb6, 0xd4, 0x20, 0xc6, -0x56, 0x8d, 0x2c, 0xef, 0x56, 0xb6, 0xad, 0x19, 0x92, 0xd4, 0x0c, 0xdf, 0xcf, 0x51, 0xcf, 0xf1, -0x55, 0xd6, 0xdf, 0x19, 0xdb, 0xd6, 0xa8, 0x8b, 0xf8, 0xce, 0xa0, 0x9e, 0xe7, 0xab, 0x49, 0x3d, -0xed, 0xfb, 0x9a, 0x1c, 0xd2, 0x3e, 0xab, 0x19, 0x1e, 0xc6, 0xe7, 0x9a, 0x61, 0xb5, 0x86, 0xfc, -0xc0, 0xa7, 0x8d, 0xd0, 0x8e, 0x92, 0x9e, 0x5b, 0x6e, 0xd7, 0x3e, 0x56, 0x1d, 0xb9, 0x14, 0x93, -0x5a, 0x8e, 0x29, 0x9f, 0xaa, 0x25, 0x64, 0xdb, 0xcb, 0x12, 0xaa, 0x69, 0x70, 0x6a, 0xcf, 0xf0, -0xcd, 0x61, 0xa4, 0x5b, 0x1f, 0x43, 0x27, 0x4a, 0x35, 0xbe, 0xbc, 0xdf, 0xf6, 0xa9, 0xf3, 0x89, -0x46, 0xec, 0xef, 0x61, 0x7f, 0x15, 0xcc, 0x09, 0xf6, 0x40, 0xe5, 0xf6, 0xe4, 0xf7, 0x28, 0x82, -0x59, 0x91, 0xd2, 0x18, 0x94, 0xc8, 0x33, 0xba, 0x3d, 0xf4, 0xd4, 0x43, 0x2f, 0x6f, 0xe8, 0x35, -0xd5, 0x48, 0x5b, 0x93, 0x64, 0x6b, 0xf4, 0x52, 0x0f, 0x54, 0xa4, 0x95, 0x3b, 0x1a, 0x80, 0x38, -0x0b, 0x09, 0x6e, 0x4e, 0x8b, 0x68, 0x1f, 0xf3, 0x80, 0xbc, 0x0f, 0x19, 0x50, 0xee, 0x39, 0xac, -0xfb, 0xbd, 0x25, 0x58, 0x34, 0x87, 0x4f, 0x81, 0x69, 0x21, 0xca, 0xe3, 0x2a, 0xed, 0x31, 0x1a, -0xf1, 0x4e, 0x9e, 0x8f, 0xdf, 0x83, 0x0f, 0x6b, 0xab, 0x44, 0xb8, 0x9d, 0xb3, 0x3d, 0xb4, 0xb4, -0xba, 0x06, 0xb6, 0x86, 0xd3, 0x6e, 0xc1, 0xeb, 0x7b, 0xa4, 0x78, 0x63, 0xa4, 0xd1, 0xde, 0x48, -0x92, 0xee, 0x63, 0xbb, 0x11, 0x67, 0xc4, 0x21, 0x90, 0x85, 0x51, 0xb2, 0xd4, 0x57, 0x0d, 0x91, -0x86, 0x8c, 0xe6, 0x1b, 0x46, 0x48, 0x55, 0x7c, 0x45, 0x2f, 0x61, 0x4f, 0xbe, 0x67, 0xf0, 0x79, -0xc1, 0x47, 0x16, 0x08, 0xe3, 0x97, 0xb4, 0x02, 0x88, 0x26, 0xae, 0x3d, 0x38, 0x4c, 0x71, 0x47, -0x13, 0x4d, 0xe9, 0xfb, 0x73, 0xf0, 0xb2, 0x7c, 0xe7, 0x0b, 0xda, 0xa5, 0xb4, 0x89, 0x31, 0xc2, -0xcd, 0xe9, 0x14, 0xc5, 0x78, 0x22, 0xce, 0x39, 0x9d, 0xf4, 0x99, 0xd3, 0x46, 0x1c, 0x9d, 0x56, -0xb2, 0x2c, 0xbf, 0x35, 0x0e, 0xf6, 0x41, 0xc9, 0x1b, 0x86, 0x00, 0x43, 0x67, 0x2d, 0xc5, 0xa0, -0x4b, 0x34, 0xd1, 0x3a, 0xf5, 0xa1, 0x4c, 0x3d, 0x32, 0x8e, 0xad, 0x0a, 0x15, 0xf8, 0x85, 0xfd, -0x18, 0x02, 0x39, 0xcf, 0xa6, 0x0d, 0x5c, 0xe2, 0x1b, 0xa2, 0x7c, 0x61, 0x03, 0xb2, 0x77, 0x98, -0x7d, 0x9c, 0x5e, 0xca, 0xee, 0xa6, 0x28, 0x64, 0xe9, 0x5b, 0x49, 0x7b, 0x7e, 0x4e, 0xb2, 0x40, -0xef, 0xe5, 0x7d, 0xbf, 0x4e, 0x5d, 0x67, 0x76, 0x2f, 0x3e, 0x5f, 0x11, 0xc3, 0xc8, 0x1d, 0x12, -0x3b, 0xbb, 0xec, 0x31, 0x47, 0x89, 0x7d, 0x62, 0x82, 0xaa, 0x04, 0xd8, 0x03, 0x2f, 0xc3, 0x0d, -0x91, 0x6e, 0xb2, 0xfe, 0x26, 0xbb, 0x6f, 0xbc, 0x93, 0xf9, 0xce, 0x28, 0xf8, 0xbc, 0x41, 0xa0, -0x68, 0x47, 0xc2, 0x13, 0xef, 0x2d, 0x21, 0x70, 0xe2, 0xfb, 0x0a, 0xde, 0x0f, 0xa8, 0xe4, 0xdf, -0x39, 0x9c, 0x6b, 0x4e, 0x61, 0x2e, 0x8e, 0xdd, 0x60, 0x64, 0x7f, 0x8e, 0x0a, 0xbf, 0xbd, 0xe9, -0x9a, 0x6f, 0x25, 0x50, 0xc8, 0x82, 0x1f, 0x61, 0xf1, 0x22, 0x84, 0xa0, 0xf8, 0xae, 0x10, 0xd9, -0xce, 0x79, 0x67, 0xd3, 0xfe, 0xc0, 0xe7, 0x27, 0x85, 0xc5, 0xf9, 0xdf, 0xfd, 0x56, 0x99, 0x8d, -0xfd, 0x35, 0xe4, 0xfc, 0x77, 0x58, 0x1c, 0x7a, 0x7c, 0xc3, 0xbc, 0x5f, 0x6e, 0xd2, 0x2d, 0x31, -0x0e, 0x7f, 0xff, 0xd2, 0xc7, 0xda, 0xa0, 0x79, 0x3b, 0xe9, 0x87, 0x6d, 0x29, 0xb0, 0xae, 0x5f, -0x01, 0x1b, 0xa0, 0x11, 0xda, 0xe0, 0x5e, 0x20, 0x6b, 0xd3, 0x3a, 0x28, 0xc3, 0x67, 0x5f, 0xce, -0xa7, 0x59, 0x85, 0x6a, 0xce, 0xdd, 0xcf, 0xb1, 0x0f, 0xab, 0x1d, 0xba, 0x3f, 0x33, 0xa7, 0x9a, -0xc8, 0xa5, 0x57, 0xaa, 0x1f, 0xe4, 0xee, 0x65, 0xf5, 0x48, 0xee, 0xde, 0xa8, 0xbe, 0x99, 0xbb, -0x37, 0xa8, 0x7b, 0x72, 0xf7, 0x26, 0xf5, 0x25, 0xfd, 0xde, 0x36, 0x68, 0x24, 0x7f, 0x69, 0x28, -0xf5, 0x55, 0xf0, 0x8c, 0x94, 0x64, 0x6d, 0xef, 0x0b, 0xbd, 0x15, 0x66, 0x7d, 0x9c, 0x43, 0xd0, -0xad, 0xc7, 0xa1, 0x62, 0xcf, 0x46, 0xf3, 0x10, 0x9f, 0x6f, 0x23, 0x4f, 0xb1, 0xf0, 0xd4, 0x20, -0xf8, 0xe7, 0x81, 0xb2, 0xe0, 0x8f, 0xe5, 0x14, 0xaf, 0xc8, 0x26, 0x23, 0x2f, 0x0d, 0x61, 0x28, -0xba, 0x23, 0x0c, 0x64, 0xf3, 0x6a, 0x60, 0x6f, 0xf5, 0x6e, 0x28, 0xf1, 0xb2, 0x65, 0x04, 0xd2, -0x42, 0x1d, 0x77, 0x09, 0xbf, 0xdf, 0xbf, 0x50, 0x49, 0x23, 0x28, 0x3b, 0xc2, 0x77, 0xe0, 0x08, -0x73, 0x64, 0xbc, 0x52, 0x80, 0x14, 0x47, 0x00, 0xa0, 0x5d, 0x66, 0x1a, 0x73, 0xa4, 0xfd, 0x67, -0xb1, 0x34, 0x0b, 0xc3, 0x45, 0x85, 0x32, 0xcc, 0x51, 0x94, 0xcd, 0xaa, 0x72, 0x27, 0x49, 0xf3, -0x65, 0xf8, 0x5b, 0x82, 0x2d, 0xef, 0x16, 0xf1, 0x91, 0xa0, 0x0b, 0x97, 0x63, 0x45, 0x06, 0x44, -0xd4, 0x9d, 0x20, 0xe4, 0x5b, 0x9f, 0xf5, 0x01, 0x41, 0xad, 0xa7, 0x36, 0x63, 0x7f, 0x4d, 0x16, -0x3a, 0x95, 0x23, 0x2c, 0x37, 0x29, 0x56, 0xe5, 0x82, 0x73, 0xe5, 0xe4, 0x87, 0xc2, 0x68, 0x09, -0x93, 0x75, 0x1c, 0x3c, 0x8c, 0x57, 0x0d, 0xdf, 0x1e, 0xf5, 0xf5, 0x80, 0x0d, 0x7b, 0xea, 0x81, -0xb2, 0xed, 0x1b, 0x52, 0x36, 0x7c, 0x2a, 0xe1, 0xa7, 0xf2, 0xed, 0x1b, 0x30, 0xd7, 0x2e, 0xda, -0xaf, 0xce, 0xf6, 0x9c, 0xfc, 0x64, 0x12, 0x34, 0x79, 0xc1, 0xdf, 0x43, 0xda, 0x7e, 0xf8, 0x6b, -0xc3, 0xd5, 0x9d, 0xed, 0xb7, 0x59, 0xe8, 0xda, 0xe9, 0x7e, 0x35, 0xb9, 0xdf, 0xb4, 0x97, 0x75, -0x67, 0x0f, 0xf7, 0xa4, 0x87, 0x7a, 0xa2, 0xeb, 0xf3, 0x99, 0xa9, 0xdf, 0x17, 0x2f, 0x32, 0xcf, -0x70, 0xcf, 0xb5, 0x6b, 0x98, 0x5e, 0xea, 0x3f, 0xb5, 0x5d, 0x59, 0x2a, 0x8f, 0x61, 0xbe, 0xac, -0x17, 0xf0, 0xab, 0xc2, 0x31, 0x54, 0x38, 0x36, 0x11, 0x88, 0x51, 0xca, 0x46, 0x01, 0xcb, 0xd2, -0x7d, 0x8a, 0xbb, 0x89, 0xab, 0xd5, 0x41, 0xd4, 0xed, 0x5a, 0xb5, 0x0f, 0xca, 0xdb, 0x9f, 0x47, -0x4e, 0x63, 0xb9, 0xe0, 0x06, 0x9a, 0x11, 0xd2, 0x51, 0xfa, 0xb5, 0xa7, 0x97, 0x2e, 0x20, 0xde, -0x98, 0x76, 0xd4, 0xf4, 0xb6, 0x2d, 0xfc, 0x8c, 0xa8, 0x54, 0x72, 0x6b, 0x36, 0xa2, 0xe6, 0xf6, -0x41, 0x7d, 0xb7, 0x28, 0x40, 0xa5, 0xac, 0x70, 0x1c, 0xda, 0xc4, 0xde, 0xb8, 0xb2, 0x34, 0x6d, -0x2b, 0xf7, 0x4c, 0xce, 0xf5, 0x8c, 0x7c, 0x72, 0xf1, 0x77, 0xbf, 0xa4, 0x3d, 0x5a, 0x57, 0x04, -0xeb, 0x50, 0xcb, 0x0a, 0xde, 0xf3, 0xbb, 0x97, 0xf7, 0xb0, 0xc4, 0x7f, 0x45, 0xef, 0x69, 0x3f, -0x30, 0x1b, 0x0d, 0x8c, 0x76, 0x76, 0x5d, 0x05, 0xd1, 0xd4, 0x14, 0x0f, 0x38, 0x70, 0xa5, 0x3f, -0x0f, 0xa6, 0x54, 0xe7, 0x7f, 0x6c, 0x6c, 0x29, 0x17, 0xc1, 0x9b, 0xdc, 0x75, 0x59, 0x93, 0x2a, -0x0a, 0x46, 0x1a, 0xf1, 0xc3, 0xa7, 0x11, 0x1e, 0xdd, 0x9c, 0x9f, 0x05, 0x8e, 0x1b, 0x27, 0x7c, -0xca, 0x97, 0xdb, 0xdb, 0xf2, 0x71, 0xab, 0x0b, 0x63, 0x58, 0x8b, 0x88, 0xd3, 0xec, 0x17, 0xda, -0x9e, 0xf5, 0x7f, 0x8d, 0x72, 0x42, 0x89, 0x6a, 0x47, 0x9e, 0x8a, 0x77, 0xeb, 0x11, 0x62, 0x69, -0xb7, 0xde, 0x46, 0x78, 0x0a, 0x65, 0x5a, 0xf6, 0xc2, 0x72, 0xf9, 0x7e, 0xc2, 0x38, 0x7c, 0xe2, -0x7a, 0x58, 0xc4, 0x23, 0xbf, 0x7c, 0x7f, 0xcb, 0x7b, 0x51, 0xdd, 0xe3, 0xea, 0x7c, 0x3a, 0xf5, -0xf1, 0xb8, 0x68, 0x46, 0x7b, 0x61, 0x31, 0xb6, 0x58, 0xa9, 0x26, 0x9b, 0x2b, 0xf2, 0x1d, 0xf5, -0x4d, 0xf2, 0x40, 0x62, 0x43, 0xba, 0x64, 0x6f, 0xe2, 0x88, 0x8a, 0xe4, 0xaf, 0x54, 0x78, 0xff, -0x75, 0x31, 0xb5, 0xfb, 0x66, 0x5a, 0x21, 0xfb, 0x4b, 0x7b, 0xd3, 0x72, 0x44, 0x52, 0xb4, 0x97, -0x18, 0xdf, 0x5b, 0x57, 0x05, 0xe6, 0xf8, 0xab, 0x43, 0xf3, 0x1b, 0x8d, 0x2c, 0x67, 0xfc, 0x08, -0x25, 0xac, 0x16, 0x11, 0x87, 0x9a, 0x65, 0x99, 0x6f, 0xa6, 0x2d, 0x4a, 0x13, 0x7d, 0xc3, 0xfe, -0xf7, 0x1f, 0xc1, 0xb7, 0xa5, 0xfc, 0xb6, 0x30, 0x75, 0x0b, 0xd6, 0x22, 0xe2, 0x98, 0x50, 0x9c, -0xd0, 0xb8, 0xa3, 0x39, 0xa3, 0x51, 0xfa, 0x54, 0x2b, 0x3e, 0x95, 0x5f, 0x95, 0xdb, 0x45, 0x3b, -0x95, 0x7f, 0xee, 0x79, 0x8c, 0xa2, 0xc7, 0x27, 0xd2, 0x7d, 0x2f, 0xbe, 0x3e, 0xfd, 0x8d, 0xee, -0xc1, 0x62, 0x97, 0x7e, 0x56, 0x73, 0x9e, 0x7c, 0x1e, 0x92, 0x6f, 0x1c, 0xf2, 0xab, 0x43, 0xbe, -0xe3, 0xc8, 0x5b, 0x47, 0x2d, 0xce, 0xf4, 0xce, 0x6e, 0x84, 0x0c, 0xb9, 0x2d, 0x8a, 0xb2, 0x44, -0x00, 0xf9, 0x39, 0x17, 0x7b, 0x63, 0xf4, 0x04, 0x28, 0x26, 0xfb, 0x1e, 0x9f, 0x21, 0x3e, 0xae, -0x84, 0xda, 0x37, 0xbc, 0x75, 0x00, 0x39, 0xb2, 0xf2, 0x1f, 0xfe, 0x66, 0x50, 0xa3, 0x16, 0x3c, -0x11, 0xf2, 0x19, 0xc8, 0xe7, 0xa1, 0xf0, 0x65, 0x1e, 0xff, 0xf7, 0x20, 0xf1, 0xaf, 0x4c, 0xfb, -0xc8, 0x9f, 0x62, 0xd6, 0x97, 0x22, 0xf6, 0xdf, 0x4e, 0x76, 0x6f, 0xfe, 0xd0, 0xdb, 0x13, 0x88, -0x67, 0x6c, 0xdb, 0xbb, 0xc0, 0xf4, 0xdd, 0xbd, 0xf1, 0x75, 0xd1, 0xe8, 0xe6, 0x90, 0x90, 0x04, -0x69, 0x3d, 0x19, 0xd9, 0x4f, 0x9c, 0xac, 0x7b, 0x8f, 0x37, 0x40, 0xba, 0xd1, 0x57, 0xa2, 0x0e, -0x79, 0x8b, 0x28, 0xba, 0x0a, 0x45, 0xff, 0x69, 0x9a, 0xd4, 0x4a, 0x93, 0x8f, 0xd5, 0xb1, 0x9e, -0x56, 0x22, 0x9a, 0x2e, 0xe3, 0xd8, 0x94, 0x12, 0x9d, 0x95, 0x3f, 0xe4, 0xa4, 0x78, 0x92, 0x47, -0x58, 0xdf, 0x96, 0xa4, 0xf7, 0x91, 0x57, 0xb3, 0xf1, 0x30, 0x26, 0xda, 0xd4, 0xba, 0xc2, 0x12, -0xa6, 0x0e, 0x7c, 0x85, 0x12, 0x4a, 0xc8, 0xef, 0x5c, 0x7b, 0x68, 0x24, 0x86, 0xdc, 0x70, 0x30, -0x1f, 0x85, 0xd2, 0xed, 0x65, 0x8c, 0x1a, 0xc2, 0xde, 0x45, 0x5d, 0x28, 0xcb, 0x72, 0xf4, 0x2b, -0x94, 0x2a, 0x10, 0xb3, 0x98, 0x46, 0x7b, 0x51, 0xaa, 0x35, 0x29, 0x1d, 0xd7, 0xbf, 0x4c, 0xfa, -0x42, 0x3e, 0x11, 0x3d, 0xd2, 0xe2, 0x9b, 0x39, 0x1a, 0x1f, 0x20, 0xcf, 0x56, 0xb3, 0x69, 0xd7, -0x29, 0x39, 0x36, 0xb5, 0x0e, 0xb1, 0x27, 0xf9, 0x67, 0xb3, 0x6d, 0x0f, 0xf5, 0xae, 0xf4, 0x49, -0xea, 0x72, 0x94, 0xbb, 0xe3, 0xfe, 0x05, 0x8f, 0xbe, 0x16, 0xef, 0x02, 0xe9, 0xed, 0x83, 0xd8, -0x46, 0x8a, 0x08, 0x58, 0xad, 0xef, 0x88, 0xc6, 0xc4, 0xc8, 0x53, 0xfe, 0x1d, 0xc3, 0xbd, 0xfe, -0x20, 0x7e, 0x8b, 0x7c, 0x8e, 0x3e, 0x33, 0xe4, 0x5d, 0x2f, 0x3e, 0xee, 0x6b, 0xb4, 0x2f, 0x7c, -0xeb, 0x20, 0xce, 0x88, 0x8b, 0x66, 0x84, 0x65, 0xfa, 0x78, 0x5b, 0xe3, 0x53, 0xa1, 0x3b, 0x1b, -0x91, 0x52, 0x57, 0x14, 0xd4, 0x4c, 0x3e, 0xdd, 0x6c, 0xd8, 0x4a, 0x4b, 0xaf, 0xe1, 0xce, 0x10, -0xc2, 0x4a, 0xae, 0x9c, 0x6c, 0x2d, 0x01, 0xec, 0x01, 0xb6, 0xdb, 0xf2, 0xf8, 0x7e, 0x2a, 0x51, -0x31, 0xeb, 0x65, 0x4a, 0xa2, 0x4c, 0xfc, 0xa6, 0x04, 0xdf, 0xda, 0xec, 0x1d, 0x91, 0xdb, 0x36, -0x40, 0x3e, 0xf6, 0x24, 0x42, 0x12, 0xd0, 0xd9, 0x91, 0xdf, 0x8b, 0x52, 0x85, 0x17, 0xca, 0xb0, -0x4c, 0x2f, 0xf2, 0xbb, 0xb6, 0xe5, 0x10, 0x00, 0x97, 0xfc, 0xc4, 0xda, 0xeb, 0x47, 0x5d, 0x10, -0x87, 0xb6, 0x10, 0xf2, 0x81, 0xa7, 0x05, 0xad, 0x89, 0xf8, 0xca, 0xf1, 0x7b, 0x10, 0xb1, 0xab, -0xdf, 0xe7, 0x33, 0x8b, 0x84, 0x72, 0xbd, 0xf0, 0x4d, 0x22, 0x3b, 0xc9, 0x5e, 0x25, 0x05, 0xc6, -0x13, 0x08, 0x35, 0x36, 0xa5, 0x81, 0x7c, 0x1a, 0x22, 0x85, 0x73, 0x52, 0x6c, 0x31, 0x84, 0x51, -0x53, 0xf5, 0xec, 0xef, 0x3c, 0xc8, 0x9a, 0x23, 0xb2, 0x3d, 0xe2, 0x9d, 0x0b, 0xd5, 0xde, 0x12, -0x96, 0x5b, 0x47, 0x1d, 0x91, 0x3a, 0x37, 0x58, 0x9f, 0xec, 0xd3, 0x2e, 0x22, 0x77, 0xe5, 0xac, -0xea, 0x02, 0x8b, 0xf6, 0x81, 0xd2, 0xa7, 0x7d, 0xe0, 0x71, 0x41, 0xc0, 0xd1, 0xe1, 0x44, 0x2e, -0x83, 0x34, 0x04, 0x29, 0x52, 0x96, 0x90, 0x1e, 0xec, 0x11, 0x3a, 0x6d, 0x64, 0x1f, 0xf5, 0xc9, -0x6a, 0xe0, 0xbd, 0xa5, 0x75, 0x4a, 0x88, 0x71, 0xdf, 0x3c, 0xed, 0x83, 0x85, 0x93, 0x97, 0xf6, -0x21, 0xe6, 0x2e, 0xf2, 0xce, 0x10, 0xb5, 0x20, 0xcf, 0xbb, 0x9e, 0x29, 0x34, 0xc9, 0x5f, 0x16, -0xdd, 0xc7, 0xb1, 0x2d, 0x6d, 0xf5, 0x1a, 0xd8, 0x2a, 0xf4, 0x03, 0xb6, 0x65, 0xb2, 0x70, 0x8c, -0x4b, 0x3a, 0xa1, 0x35, 0xa4, 0x2d, 0xde, 0xaf, 0x09, 0x3e, 0xf5, 0xce, 0xd1, 0xd6, 0x4d, 0xc2, -0x1f, 0xb7, 0x97, 0x2c, 0xc7, 0x3e, 0x60, 0x3f, 0x64, 0xe4, 0xad, 0xed, 0x70, 0x30, 0xa4, 0x34, -0x38, 0x45, 0xef, 0x72, 0x2b, 0xe3, 0x2e, 0xec, 0xa1, 0x76, 0xb2, 0x1e, 0x7b, 0xee, 0x9f, 0xb1, -0x99, 0x21, 0x91, 0xb9, 0x88, 0xe9, 0x6b, 0xc3, 0xa1, 0xaf, 0x8d, 0xde, 0x00, 0x45, 0xcf, 0xcd, -0x42, 0x36, 0xb5, 0x62, 0xec, 0xf3, 0x0b, 0x13, 0x7c, 0x8a, 0xae, 0xde, 0x53, 0x98, 0x1e, 0x9b, -0xfc, 0xfc, 0xdd, 0xe4, 0xe6, 0x00, 0xc3, 0xfc, 0x2e, 0x94, 0xb9, 0x53, 0xe5, 0xd3, 0xa0, 0x9e, -0xbe, 0xdc, 0x7c, 0x50, 0xc0, 0x7d, 0x1f, 0xcb, 0xf6, 0x17, 0x27, 0xe2, 0x08, 0xfb, 0x7b, 0xec, -0xb4, 0x82, 0x56, 0x1f, 0x5f, 0x3d, 0x12, 0x56, 0xcd, 0x9c, 0xca, 0x91, 0x79, 0x7d, 0x31, 0xe4, -0x00, 0xac, 0xdb, 0x37, 0xf4, 0x37, 0x0a, 0x18, 0x1d, 0xdd, 0xd0, 0x17, 0x45, 0x0c, 0x69, 0x71, -0xe0, 0x68, 0xdb, 0xbb, 0x19, 0xa6, 0xe6, 0x22, 0xcf, 0x61, 0xda, 0xb2, 0x1a, 0xe1, 0xa9, 0xd2, -0x17, 0x43, 0x68, 0xc2, 0x37, 0x6f, 0xbd, 0x8d, 0xf0, 0x74, 0x46, 0x3b, 0x9d, 0x87, 0xa7, 0x23, -0xa1, 0x3b, 0x63, 0xc8, 0xe9, 0x95, 0xde, 0x49, 0x7e, 0x1f, 0x2b, 0x54, 0x0b, 0xe2, 0x80, 0x92, -0x09, 0xbc, 0x47, 0x38, 0xab, 0x18, 0xbc, 0x7e, 0x6e, 0x18, 0xe6, 0xdc, 0x49, 0x27, 0x6a, 0xb4, -0x7b, 0x6d, 0xd4, 0x7b, 0xe7, 0x17, 0xda, 0xa9, 0x86, 0x09, 0x94, 0xe4, 0x6d, 0x14, 0x13, 0xd4, -0xd1, 0x46, 0x7e, 0x44, 0x9c, 0xbd, 0x1c, 0xff, 0x07, 0x71, 0xf5, 0x9d, 0xc4, 0xf9, 0xba, 0x71, -0x5d, 0x94, 0x93, 0x96, 0x39, 0x62, 0xf9, 0x19, 0x16, 0x80, 0xff, 0x92, 0x2a, 0x5f, 0x5e, 0xb4, -0x67, 0x4d, 0x2a, 0x44, 0xf4, 0x7f, 0x00, 0x0c, 0x6d, 0xa2, 0xdc, 0xf6, 0x90, 0xaa, 0xe0, 0xdb, -0x64, 0xca, 0x9e, 0x29, 0xda, 0x33, 0x9c, 0x0a, 0xd0, 0x5b, 0x5c, 0x1d, 0x95, 0x14, 0x3e, 0x42, -0xe4, 0x68, 0x0b, 0x51, 0x5b, 0xb0, 0x3e, 0xca, 0x97, 0x49, 0x59, 0x12, 0xbd, 0x50, 0xd1, 0x0f, -0xd2, 0x39, 0x4c, 0xb1, 0x62, 0xca, 0x5f, 0xa7, 0x2a, 0xf0, 0x9b, 0x4a, 0xfc, 0x06, 0x4b, 0x2d, -0xba, 0x44, 0x79, 0xc5, 0x77, 0x2a, 0x14, 0x7d, 0x84, 0xef, 0x23, 0x29, 0x28, 0xfa, 0x80, 0x6a, -0xa6, 0x68, 0x00, 0xf8, 0x66, 0x36, 0xb8, 0xf1, 0x77, 0x26, 0x94, 0x67, 0xc2, 0x2a, 0xc8, 0xc7, -0x13, 0x52, 0xaf, 0x55, 0x8c, 0x20, 0x79, 0x35, 0xc3, 0x6f, 0xc6, 0xa2, 0xbb, 0x91, 0x35, 0x37, -0x93, 0x56, 0xab, 0xfc, 0x3b, 0x5c, 0x09, 0xe0, 0xc0, 0xf5, 0x1d, 0xdd, 0x93, 0x06, 0xe9, 0x02, -0xfb, 0x67, 0xa0, 0x78, 0x54, 0x08, 0x00, 0x29, 0x23, 0xb5, 0x54, 0xa5, 0x7b, 0x83, 0x68, 0x35, -0x62, 0x94, 0xca, 0xed, 0x21, 0xac, 0x65, 0x25, 0xcd, 0x6a, 0x7b, 0x98, 0x66, 0xbe, 0x2d, 0xc4, -0x27, 0x89, 0x88, 0x2f, 0x10, 0xd6, 0xee, 0x6d, 0xc7, 0x7e, 0xdd, 0x49, 0x31, 0xbf, 0xb0, 0x6d, -0xd2, 0x24, 0x7e, 0x59, 0x8c, 0xbc, 0x9c, 0xde, 0xf6, 0x14, 0x68, 0x28, 0x31, 0x17, 0x05, 0x39, -0xe2, 0x62, 0x49, 0x76, 0x14, 0xb0, 0x34, 0xec, 0xbf, 0x0a, 0x9a, 0xdb, 0x42, 0x1e, 0xc8, 0xda, -0x28, 0xdd, 0x44, 0xf2, 0x9e, 0x25, 0x11, 0xc2, 0xde, 0x5a, 0xdb, 0xe9, 0x9d, 0x95, 0xef, 0xe5, -0x1a, 0x9a, 0xe7, 0xd0, 0x0f, 0xf7, 0xdb, 0x7b, 0xc9, 0xae, 0x2f, 0xfe, 0xd7, 0x1b, 0x00, 0xff, -0x35, 0xa1, 0x27, 0x84, 0x18, 0xa3, 0xa2, 0x3d, 0x7e, 0x67, 0x1c, 0x2a, 0x7e, 0x77, 0x1a, 0x65, -0x98, 0x6f, 0x0d, 0x03, 0xb5, 0x85, 0x7c, 0x28, 0x63, 0xb9, 0xb3, 0x52, 0x84, 0x6f, 0x2a, 0xe8, -0x3b, 0xc2, 0x29, 0xe4, 0xcb, 0xde, 0xc2, 0xfe, 0xeb, 0xee, 0x24, 0xcf, 0xe7, 0xee, 0x08, 0xca, -0x49, 0x83, 0x45, 0x98, 0xfa, 0x06, 0xa6, 0x7e, 0x3d, 0xd5, 0x4b, 0xf5, 0x93, 0x5e, 0x9f, 0x98, -0x47, 0xf9, 0x61, 0x7f, 0xc8, 0x31, 0xb3, 0x9d, 0x3c, 0xc9, 0x98, 0x2c, 0x3e, 0x40, 0x06, 0xfe, -0xbb, 0xaf, 0x6b, 0x17, 0xd3, 0xc6, 0x48, 0xa4, 0x7d, 0x4d, 0xf7, 0x47, 0xd4, 0xa6, 0x1f, 0xbe, -0x86, 0xad, 0xc9, 0x00, 0xc4, 0x33, 0x2e, 0xd0, 0x5b, 0x83, 0x7d, 0x1e, 0xc1, 0x1a, 0x27, 0x22, -0x38, 0x5b, 0x95, 0x77, 0x46, 0x44, 0xab, 0xe2, 0x7b, 0x22, 0xdf, 0x72, 0xc1, 0x9d, 0xa4, 0x53, -0xe3, 0x16, 0x10, 0x26, 0x57, 0x63, 0x8d, 0x37, 0xa4, 0x22, 0xdc, 0x63, 0x13, 0xb6, 0x03, 0xa1, -0x60, 0xca, 0xa1, 0xd7, 0x5b, 0x42, 0x65, 0xfb, 0x43, 0x3f, 0x7c, 0x4d, 0x11, 0xfd, 0xcd, 0x3c, -0x01, 0xe2, 0x84, 0xf7, 0xf6, 0xf7, 0x29, 0x27, 0xa5, 0x46, 0x7c, 0x3b, 0xe1, 0xce, 0x66, 0xec, -0xe7, 0x36, 0x2c, 0xa7, 0x3c, 0x65, 0xa7, 0x74, 0xd1, 0xfa, 0xcb, 0xef, 0xf2, 0x7b, 0xdb, 0x9d, -0x98, 0xc2, 0x73, 0x62, 0xe1, 0x39, 0xd9, 0x85, 0xf9, 0x2a, 0xc8, 0x3b, 0x0b, 0xa6, 0x57, 0x52, -0x6d, 0x97, 0x5f, 0xe2, 0x71, 0xef, 0xa0, 0x3a, 0x71, 0xe6, 0x9f, 0xf6, 0xd3, 0x18, 0x2f, 0x68, -0x8f, 0x33, 0x3c, 0x59, 0xa9, 0xbc, 0xcd, 0xe3, 0x77, 0x2e, 0xc0, 0x76, 0x80, 0x6a, 0xc5, 0xd1, -0xc5, 0xf6, 0xb4, 0x2f, 0xc0, 0xe7, 0x8a, 0x41, 0x89, 0x23, 0x91, 0x99, 0xf0, 0x3f, 0x37, 0xff, -0x93, 0xf7, 0xe6, 0xfa, 0x46, 0x51, 0x02, 0xda, 0xb0, 0xe4, 0xef, 0xa7, 0x92, 0x54, 0x32, 0x8e, -0x7e, 0xe5, 0x68, 0x9c, 0x34, 0xf2, 0xb8, 0x5c, 0x9b, 0x68, 0x3b, 0x80, 0x68, 0x9d, 0xaa, 0x30, -0x3c, 0xc5, 0xa9, 0xb4, 0x42, 0x78, 0x9a, 0xb4, 0xd2, 0x1c, 0x52, 0x69, 0x59, 0x98, 0x82, 0x29, -0x9e, 0xb7, 0xd2, 0xfc, 0xbc, 0x65, 0x8a, 0xe6, 0x86, 0x90, 0x0a, 0x00, 0xbc, 0x8f, 0x6f, 0x66, -0xf2, 0x8c, 0x22, 0xfc, 0x0f, 0xde, 0x4c, 0xeb, 0x1a, 0x53, 0xdf, 0x64, 0x0d, 0x03, 0x6b, 0x9a, -0xa0, 0x6e, 0x5e, 0xaa, 0x9c, 0x56, 0x56, 0xaa, 0x06, 0x7f, 0x2b, 0x07, 0x6a, 0x08, 0x1a, 0x2c, -0xd7, 0x63, 0xaa, 0x47, 0x75, 0x94, 0x80, 0x51, 0xd2, 0x26, 0x2c, 0x12, 0xcc, 0x5c, 0x52, 0x8e, -0x23, 0x50, 0xe1, 0xa4, 0x77, 0xdf, 0x82, 0x79, 0x4f, 0x40, 0xca, 0xaa, 0x1a, 0x07, 0x55, 0x5c, -0xb7, 0x46, 0x5e, 0x53, 0x6e, 0x4b, 0x2f, 0xfd, 0xa6, 0x97, 0xf3, 0x6e, 0xd2, 0xd7, 0xd2, 0x2e, -0xca, 0xfd, 0x36, 0xce, 0x6d, 0xe2, 0xfa, 0x74, 0x65, 0xc9, 0x30, 0xe6, 0x99, 0xc1, 0x78, 0xa1, -0xc2, 0x4f, 0x9e, 0xc1, 0xcc, 0xed, 0x1b, 0x7e, 0xf6, 0xda, 0x40, 0x5c, 0x85, 0x4b, 0x73, 0x68, -0x5c, 0x6b, 0x16, 0xe8, 0x69, 0xbf, 0x19, 0xa8, 0x56, 0x4d, 0xd7, 0x8f, 0x96, 0x6b, 0xe5, 0xd0, -0xbe, 0x80, 0x62, 0xa3, 0xd5, 0xe8, 0xf3, 0xf9, 0xcb, 0xdd, 0x7d, 0x27, 0xae, 0x1f, 0x2e, 0x27, -0x18, 0x31, 0x21, 0x5e, 0xc0, 0x6f, 0xda, 0x08, 0x26, 0x8c, 0x3a, 0xbe, 0xc1, 0xe7, 0x2c, 0x0c, -0x63, 0x3b, 0x30, 0x25, 0x6d, 0x5c, 0x7e, 0xfd, 0x03, 0x2f, 0xc0, 0x1c, 0x6e, 0xcd, 0xcd, 0xe9, -0x39, 0x7a, 0x6f, 0xcb, 0x78, 0xfc, 0x10, 0x52, 0xfc, 0xcf, 0xe2, 0xe8, 0xd8, 0x3b, 0x37, 0x91, -0xaf, 0x0f, 0x94, 0x44, 0x24, 0xde, 0x39, 0x7f, 0x99, 0x77, 0x2a, 0x69, 0xff, 0xd1, 0x44, 0x3a, -0x18, 0x4c, 0xd9, 0xd8, 0x0f, 0x32, 0x71, 0xdd, 0xa3, 0xc8, 0x97, 0xf5, 0x52, 0x54, 0x2e, 0x93, -0x43, 0x9c, 0x52, 0x3e, 0x45, 0x74, 0xb3, 0x7a, 0x9e, 0x88, 0x3c, 0xc5, 0xa7, 0x94, 0x1e, 0xa4, -0x25, 0x7d, 0xfa, 0xb7, 0xe4, 0x5d, 0x14, 0xa9, 0x57, 0xd3, 0x19, 0x6d, 0xbb, 0x90, 0x38, 0xd7, -0xc5, 0x95, 0x66, 0xd6, 0x29, 0x3b, 0xe0, 0x0c, 0xb1, 0x0e, 0x29, 0xd2, 0xda, 0x22, 0x8f, 0x9b, -0x22, 0x55, 0xb1, 0xdd, 0x29, 0xbf, 0x4b, 0x56, 0x85, 0xb4, 0x1f, 0x79, 0x8b, 0x3d, 0x21, 0x6f, -0x35, 0x41, 0x76, 0x78, 0xf2, 0x93, 0xf1, 0xaa, 0xb8, 0xf6, 0xb4, 0xf0, 0x3a, 0x86, 0xd4, 0xf4, -0x69, 0x3b, 0x96, 0xcf, 0x5a, 0xf7, 0x96, 0x74, 0x10, 0xa5, 0x69, 0x3b, 0xe2, 0xe0, 0x72, 0xa5, -0x2c, 0x4d, 0x11, 0x14, 0x49, 0xeb, 0x44, 0xcf, 0x87, 0x23, 0x11, 0x23, 0xff, 0xf1, 0xbd, 0x96, -0x8a, 0x6a, 0xc0, 0xf5, 0x58, 0x5a, 0x0d, 0x33, 0xd4, 0x5a, 0xbc, 0x37, 0xf0, 0x7d, 0xb1, 0xea, -0x51, 0x3c, 0x72, 0x28, 0x6d, 0xa4, 0xaf, 0x54, 0x93, 0xb7, 0x98, 0x7d, 0xed, 0x3c, 0x99, 0xfd, -0xde, 0xd3, 0xa7, 0xfd, 0x48, 0xe9, 0x07, 0x43, 0x1d, 0x52, 0xfc, 0x00, 0xe9, 0xc2, 0xd0, 0xf3, -0x32, 0x30, 0x04, 0x5d, 0x60, 0xde, 0x11, 0x4b, 0x95, 0x25, 0x62, 0x69, 0x73, 0x24, 0x62, 0x89, -0x41, 0x51, 0xca, 0xa8, 0x9a, 0x02, 0xc5, 0xab, 0x24, 0x71, 0x7e, 0x3b, 0xd6, 0x98, 0x36, 0xec, -0x68, 0x44, 0x58, 0x0a, 0xa5, 0x4a, 0xf0, 0xad, 0xfc, 0xdd, 0x7d, 0xf1, 0xf5, 0xb6, 0x20, 0x48, -0x23, 0x8d, 0x41, 0x1c, 0xe3, 0x21, 0xf2, 0x70, 0x3c, 0x0f, 0x4b, 0x6a, 0x22, 0xaf, 0xab, 0xc9, -0xb1, 0xf3, 0x2f, 0x2d, 0x3c, 0x83, 0xd4, 0xd3, 0xca, 0xbb, 0x5a, 0x45, 0xac, 0xad, 0x4d, 0x7b, -0x8a, 0x14, 0xd9, 0x69, 0x6c, 0x6a, 0x88, 0x75, 0xbb, 0x36, 0xb2, 0x97, 0x2b, 0x4e, 0xb9, 0x00, -0xc8, 0x53, 0x5a, 0xde, 0x3a, 0x80, 0xa3, 0xb1, 0x4d, 0x9c, 0x5b, 0x57, 0x45, 0xb4, 0x1f, 0xdb, -0xc9, 0x3b, 0x38, 0x47, 0x74, 0xb2, 0x37, 0x67, 0xa3, 0x3d, 0x15, 0x46, 0x72, 0x0a, 0xea, 0x31, -0x89, 0xec, 0xcd, 0x0b, 0x2f, 0x98, 0x34, 0x87, 0xb5, 0x30, 0x96, 0x13, 0x7b, 0x59, 0x16, 0x5e, -0x73, 0xb1, 0xfc, 0xf3, 0xaf, 0xdf, 0x85, 0x23, 0x8f, 0x94, 0xb3, 0x18, 0xcb, 0x2c, 0xb2, 0xcf, -0xd3, 0x7e, 0xbc, 0x5c, 0x12, 0x11, 0xa7, 0x90, 0xd3, 0x08, 0xd4, 0x61, 0x99, 0x47, 0xba, 0x70, -0xb5, 0xce, 0xd3, 0xa6, 0xe2, 0xe3, 0xec, 0x2f, 0xb2, 0x74, 0x64, 0xf5, 0xf1, 0xe1, 0x23, 0x21, -0x7f, 0xac, 0x6a, 0x81, 0xf6, 0xa2, 0xbd, 0x19, 0xdf, 0xfc, 0x28, 0x3e, 0x8e, 0xdf, 0xbd, 0xc8, -0x5a, 0x48, 0x36, 0xa1, 0x4d, 0x86, 0x65, 0xf5, 0x69, 0xdb, 0x38, 0x85, 0xa2, 0xc8, 0x2b, 0x1e, -0x9c, 0x99, 0x44, 0x35, 0xce, 0x0b, 0xc0, 0x38, 0xe9, 0x9c, 0x8c, 0x74, 0x0b, 0x9f, 0xa0, 0xd8, -0x9b, 0x90, 0xf6, 0x63, 0x9d, 0x97, 0xd9, 0x46, 0x3b, 0xf6, 0x7f, 0x7c, 0x11, 0x69, 0xfd, 0x8f, -0xa8, 0x4d, 0xb4, 0xca, 0xb1, 0x46, 0xda, 0x71, 0x66, 0x18, 0x1c, 0xf0, 0x51, 0x0b, 0x45, 0xdb, -0xae, 0xae, 0x57, 0xd4, 0xf8, 0xd6, 0x19, 0xed, 0xc7, 0x19, 0x49, 0xd4, 0xab, 0x76, 0x50, 0xfe, -0xe5, 0xc5, 0xd9, 0x2f, 0xd8, 0x0e, 0xc5, 0x99, 0x91, 0x88, 0x17, 0x10, 0x67, 0xdf, 0xf2, 0x03, -0xd4, 0x02, 0xb6, 0x16, 0xfa, 0x11, 0x96, 0x77, 0x96, 0xc7, 0xed, 0x5c, 0xa0, 0x4f, 0x3b, 0x8f, -0x63, 0x77, 0xc1, 0xde, 0x3c, 0xb1, 0xd6, 0x5e, 0x7c, 0xe0, 0x11, 0x47, 0xd1, 0xc1, 0x87, 0x9d, -0xc5, 0x87, 0x36, 0x88, 0xd1, 0x23, 0x18, 0x13, 0x51, 0x09, 0xd2, 0xd3, 0xe0, 0xd7, 0x01, 0x3e, -0xe1, 0x03, 0xfc, 0xa2, 0xd7, 0xc2, 0x67, 0x0a, 0x53, 0xed, 0xa1, 0x60, 0xc8, 0x6b, 0xe5, 0x33, -0x85, 0x4b, 0xf9, 0x33, 0x85, 0x60, 0x98, 0x38, 0x41, 0xb1, 0x32, 0xc4, 0xa9, 0x56, 0x62, 0x4d, -0x9a, 0xfc, 0xd4, 0xca, 0x59, 0xf8, 0x38, 0xc7, 0x1c, 0x9d, 0x38, 0xbf, 0xa0, 0x73, 0x16, 0x5e, -0xa1, 0xcb, 0x75, 0xef, 0xb0, 0x7b, 0x51, 0xca, 0x21, 0xe9, 0x69, 0x31, 0xed, 0x8e, 0xa3, 0x4c, -0xb0, 0x14, 0x25, 0x9d, 0x2e, 0x8e, 0x38, 0x57, 0xec, 0x35, 0x34, 0x7d, 0xcc, 0x3e, 0x55, 0xb3, -0x6b, 0x2e, 0x52, 0x70, 0x6e, 0x5f, 0x87, 0xfc, 0x91, 0x1e, 0x9b, 0x9a, 0x76, 0xf0, 0x59, 0xdf, -0xcf, 0x18, 0xdf, 0xcd, 0x5c, 0xe5, 0xec, 0xb4, 0x59, 0xc8, 0xb1, 0xda, 0x23, 0xaa, 0x49, 0xbf, -0xdb, 0x22, 0x4e, 0xd8, 0xff, 0x70, 0xb1, 0x95, 0xb4, 0x75, 0xc8, 0x7b, 0x2d, 0x71, 0x8e, 0x74, -0xf2, 0x68, 0x43, 0x89, 0x8b, 0x6c, 0x22, 0x83, 0x8c, 0x0b, 0x5e, 0xa6, 0x78, 0xdf, 0xa4, 0x37, -0x4b, 0x3e, 0x70, 0x49, 0x6b, 0xc1, 0x31, 0x0f, 0xd7, 0x65, 0x04, 0x79, 0xe7, 0x4e, 0xe4, 0x99, -0x97, 0x92, 0x06, 0x50, 0xe4, 0x27, 0xda, 0xa4, 0x85, 0xfc, 0xf3, 0x52, 0xac, 0xe5, 0xfd, 0x89, -0xb5, 0xa4, 0x17, 0xcb, 0x3b, 0x7a, 0x23, 0x55, 0x2d, 0xda, 0xae, 0xaa, 0x66, 0x6d, 0x4f, 0x55, -0xbb, 0xb6, 0x0f, 0xff, 0xc9, 0x4f, 0xca, 0x9b, 0x55, 0x09, 0xed, 0x40, 0xa4, 0x4f, 0x3b, 0x74, -0x57, 0x0f, 0xf2, 0xa3, 0x87, 0xf1, 0xd7, 0xa6, 0x1d, 0xc1, 0xf4, 0xa3, 0x55, 0x3d, 0x50, 0xa9, -0x1d, 0xab, 0x6a, 0xd0, 0x84, 0xb5, 0xd0, 0x89, 0xce, 0x4d, 0x6c, 0xbf, 0x6e, 0x49, 0x3b, 0xdd, -0x55, 0x50, 0x6e, 0x8f, 0x29, 0x73, 0xc9, 0x67, 0x28, 0x42, 0xd3, 0xbe, 0x42, 0xfe, 0x57, 0x89, -0x55, 0x11, 0x5f, 0xfb, 0xa6, 0x2a, 0xaf, 0x02, 0x9b, 0x9b, 0x23, 0x3c, 0x4b, 0xe9, 0x4a, 0xe6, -0x65, 0xe2, 0x96, 0x6e, 0xe8, 0x42, 0xbe, 0x23, 0x94, 0x91, 0xf1, 0xab, 0xc9, 0xc1, 0xeb, 0xab, -0xc2, 0xda, 0x51, 0xd5, 0x8f, 0x9c, 0xf4, 0x8c, 0x3e, 0x0f, 0xeb, 0xcc, 0x4e, 0x92, 0x46, 0x2d, -0x42, 0xd5, 0x81, 0x86, 0x33, 0x9a, 0x36, 0x28, 0x39, 0x50, 0x96, 0xcf, 0xd9, 0x6a, 0x98, 0x23, -0x21, 0xdb, 0x3c, 0x4d, 0x43, 0x38, 0x3d, 0x94, 0xc0, 0xfe, 0xa5, 0x01, 0x3e, 0x62, 0xbe, 0xfe, -0x69, 0x84, 0xae, 0x5d, 0x6c, 0x03, 0xc1, 0x3a, 0x79, 0x89, 0x07, 0xd2, 0x15, 0x7c, 0xa2, 0x6a, -0x11, 0x12, 0xf8, 0xf4, 0xb7, 0xa6, 0x79, 0x08, 0x7f, 0xef, 0xa5, 0xdd, 0x98, 0xab, 0x94, 0x2c, -0x24, 0xb1, 0x07, 0x16, 0x5c, 0x09, 0x5f, 0xcb, 0xb6, 0xfe, 0x8e, 0x3e, 0xed, 0x30, 0x98, 0xf0, -0xf7, 0x08, 0xd8, 0x6e, 0xed, 0xd3, 0x8e, 0xd1, 0x3e, 0x9a, 0x76, 0x74, 0x70, 0xc9, 0x9e, 0xe1, -0xb4, 0x55, 0xee, 0xa5, 0xd3, 0x24, 0x84, 0xc6, 0x52, 0xdf, 0x4f, 0xb4, 0x43, 0x26, 0xe4, 0xc8, -0xd2, 0x4b, 0x85, 0xd7, 0x73, 0xd2, 0xcb, 0xd7, 0xbd, 0xfc, 0x05, 0xf5, 0xfd, 0x09, 0x8a, 0x9f, -0xd5, 0xc8, 0x7d, 0x3a, 0x89, 0x23, 0xf8, 0x51, 0x55, 0x54, 0x3b, 0x37, 0x28, 0x63, 0x7f, 0xc9, -0x83, 0xf4, 0x49, 0xd6, 0x9b, 0x27, 0x5f, 0x47, 0x73, 0x70, 0xa6, 0x0d, 0xc9, 0xb1, 0xb3, 0xec, -0x4b, 0x9c, 0x76, 0x7c, 0x94, 0x86, 0xfc, 0x9e, 0x50, 0x72, 0xec, 0x32, 0x59, 0x4b, 0xd9, 0xa8, -0x05, 0xbc, 0x83, 0x45, 0x51, 0xc5, 0x9f, 0x62, 0xba, 0x71, 0xd5, 0x5e, 0x01, 0xc2, 0xe9, 0xb8, -0x1e, 0x85, 0x40, 0x25, 0x8b, 0x1c, 0xa7, 0xdc, 0x2b, 0x47, 0xd7, 0x36, 0x7f, 0x0c, 0x8b, 0x17, -0xb2, 0x45, 0xbf, 0xd0, 0x45, 0x53, 0x65, 0x77, 0xc2, 0xb1, 0x10, 0xe9, 0xbc, 0x19, 0x21, 0x6d, -0x6b, 0xeb, 0x26, 0x23, 0x8a, 0xae, 0x37, 0x80, 0xfe, 0xbc, 0xa5, 0x75, 0x93, 0x13, 0x52, 0xef, -0x26, 0xd6, 0xf4, 0x12, 0xef, 0x3e, 0x75, 0xe3, 0x10, 0x20, 0x06, 0x0a, 0x63, 0x09, 0x8f, 0xbe, -0x4e, 0x71, 0x03, 0x7f, 0xbe, 0xbf, 0xdf, 0x10, 0xfe, 0x50, 0xd3, 0xec, 0xed, 0x44, 0xf9, 0xc8, -0xe2, 0x54, 0x8c, 0x9a, 0xf0, 0x6f, 0xa7, 0xef, 0x41, 0x85, 0xc4, 0xde, 0x4e, 0x3d, 0xef, 0xaf, -0x39, 0xc9, 0x4b, 0x3d, 0xca, 0xcc, 0x76, 0xf2, 0xc7, 0x3a, 0x37, 0x1b, 0x35, 0x37, 0xf6, 0x47, -0x13, 0x60, 0xbb, 0x3c, 0x55, 0x1e, 0x8a, 0xfe, 0xe5, 0x0a, 0xd2, 0xb8, 0xbb, 0x83, 0x70, 0xfc, -0x48, 0x23, 0xf9, 0x07, 0x2a, 0xf0, 0xd3, 0x7a, 0xe9, 0x3d, 0x6d, 0xa8, 0xe4, 0xe5, 0xe1, 0xfb, -0x40, 0x52, 0x0a, 0xf6, 0x92, 0x33, 0xb0, 0x12, 0xee, 0x87, 0xf5, 0xf0, 0x08, 0x6c, 0x81, 0x27, -0xe1, 0x19, 0xf8, 0x31, 0xec, 0x80, 0x3d, 0xb0, 0x1f, 0xde, 0x84, 0x23, 0xf0, 0x01, 0x4c, 0x82, -0x13, 0x1a, 0x25, 0x99, 0xe3, 0x9a, 0x91, 0xe6, 0xe1, 0x07, 0xb7, 0x84, 0xc9, 0xd3, 0x34, 0x79, -0x43, 0x84, 0x1e, 0xb2, 0xec, 0x43, 0x2a, 0x4c, 0x1e, 0xcf, 0xb2, 0xef, 0xf7, 0x29, 0x41, 0xf8, -0xd7, 0xc7, 0x8b, 0x13, 0xab, 0xd3, 0xb2, 0x42, 0x9a, 0xf8, 0x25, 0x4a, 0x34, 0x39, 0x22, 0xf7, -0x7c, 0xaa, 0x01, 0x45, 0xca, 0x06, 0x18, 0xb9, 0x9d, 0x3c, 0xbd, 0x02, 0x3c, 0xed, 0x58, 0x4d, -0xf1, 0xb0, 0x6e, 0x09, 0x73, 0x8c, 0xdf, 0x11, 0xbc, 0x06, 0xf0, 0xba, 0x01, 0xdf, 0x9a, 0xd4, -0x6e, 0x8e, 0x24, 0xb4, 0x14, 0xd3, 0x14, 0x75, 0x39, 0xfe, 0x3a, 0xd4, 0xce, 0x1b, 0xc2, 0xe0, -0x8a, 0x84, 0xe3, 0x61, 0xbc, 0xce, 0x55, 0x13, 0xf8, 0xeb, 0xd6, 0x9f, 0xaa, 0xd4, 0x20, 0xe6, -0xf0, 0xa9, 0x2d, 0xf8, 0xeb, 0x51, 0x1b, 0xb1, 0x5e, 0xf2, 0x33, 0x52, 0x36, 0x34, 0xa5, 0x56, -0xf0, 0xbd, 0xac, 0x9a, 0x87, 0x2e, 0xab, 0x56, 0xbc, 0x37, 0x65, 0x0c, 0x1c, 0xbd, 0xca, 0x3e, -0xf4, 0xf9, 0x6f, 0xe9, 0x5a, 0xb1, 0xb6, 0x07, 0xac, 0xcb, 0x25, 0xf2, 0xfe, 0x4b, 0xb1, 0x8d, -0x50, 0xc6, 0xac, 0x56, 0x8d, 0xec, 0x4b, 0xa9, 0xba, 0x30, 0x16, 0xd1, 0xd4, 0x38, 0x9f, 0x4d, -0x0c, 0xb1, 0xff, 0x61, 0x5d, 0x8f, 0xaa, 0x60, 0xb7, 0x9e, 0xce, 0xf0, 0xf4, 0xdd, 0x7a, 0x3a, -0xc7, 0x52, 0xae, 0x27, 0xcf, 0xfc, 0x78, 0x2d, 0x49, 0xb9, 0xd5, 0x12, 0x8a, 0xd2, 0xa2, 0xf3, -0x2e, 0xe5, 0xca, 0xf3, 0xc8, 0x11, 0x5a, 0xf3, 0x29, 0x29, 0xa3, 0xf2, 0x18, 0xb6, 0x74, 0x4e, -0x64, 0x44, 0xbd, 0xa8, 0xef, 0xa3, 0x77, 0x7d, 0xd1, 0x3e, 0x3a, 0x7b, 0xe3, 0x25, 0x48, 0x74, -0x61, 0xcd, 0x1e, 0x37, 0xed, 0x39, 0xf5, 0x14, 0x9e, 0x89, 0x48, 0xf9, 0xa8, 0x41, 0x0b, 0xf3, -0xfe, 0x6f, 0x49, 0x7b, 0x1f, 0xa6, 0xc4, 0x89, 0xc2, 0x02, 0x6c, 0xe3, 0x9d, 0xe4, 0x0b, 0x97, -0xf6, 0x33, 0x38, 0x0a, 0xd2, 0xe5, 0x6d, 0x35, 0x1e, 0xf6, 0x53, 0x6f, 0x49, 0x6c, 0x49, 0x29, -0xbe, 0x22, 0xa2, 0x8c, 0xb9, 0x5d, 0xc5, 0x0e, 0xd7, 0x30, 0xcf, 0x65, 0x28, 0x62, 0x03, 0x84, -0x2a, 0x88, 0x27, 0x5e, 0x40, 0x69, 0xc9, 0x7e, 0x65, 0x2e, 0xe4, 0xc2, 0x0c, 0x64, 0x79, 0xae, -0xe7, 0xb3, 0x71, 0xbe, 0xc0, 0xd5, 0xa5, 0x61, 0xbe, 0x40, 0x7a, 0x85, 0x9e, 0xcb, 0x04, 0x71, -0xda, 0x95, 0x54, 0x4a, 0x06, 0x81, 0xb4, 0x6e, 0xc5, 0xe9, 0x09, 0xf2, 0x53, 0x25, 0x08, 0x2d, -0xa5, 0x02, 0x6b, 0xc8, 0xdd, 0x02, 0x5e, 0x38, 0xdf, 0xf5, 0xb9, 0x5c, 0x22, 0xfe, 0x62, 0x68, -0x2e, 0xed, 0xd6, 0x57, 0xd2, 0x6a, 0xbe, 0xb4, 0x18, 0xba, 0x05, 0x0c, 0xde, 0xd2, 0x02, 0x76, -0xe8, 0x36, 0x20, 0x45, 0x0b, 0x9f, 0x06, 0xc7, 0xdc, 0x38, 0x9d, 0x67, 0xae, 0x04, 0xc5, 0xa0, -0x56, 0x50, 0x54, 0xbd, 0xbf, 0x20, 0xdb, 0x05, 0x59, 0x41, 0x09, 0x57, 0xc9, 0x9d, 0x19, 0xb1, -0x6f, 0xdc, 0xac, 0x5f, 0x61, 0xd2, 0xfa, 0xe4, 0x7d, 0x7e, 0x71, 0x82, 0x44, 0x33, 0x6a, 0x6f, -0x67, 0x4a, 0x23, 0x22, 0x3a, 0xc6, 0xd3, 0xe6, 0x82, 0xdd, 0xd7, 0x1e, 0xdd, 0xff, 0x6e, 0x09, -0xfb, 0xdf, 0xbf, 0xf2, 0x5d, 0x20, 0xf7, 0xae, 0x68, 0xfa, 0x3b, 0x3d, 0xbe, 0x53, 0x6f, 0x2e, -0xbe, 0x53, 0xe5, 0xf4, 0xf8, 0x4e, 0x8b, 0x75, 0x0f, 0xc4, 0x1c, 0x4b, 0x84, 0x3c, 0xdd, 0xcf, -0x05, 0x47, 0x0e, 0x77, 0x51, 0xec, 0x54, 0xa4, 0x89, 0x07, 0xed, 0x62, 0x57, 0x83, 0xe9, 0xd6, -0x79, 0x8a, 0x8d, 0xe5, 0x98, 0x97, 0x8f, 0x60, 0xe9, 0x74, 0x01, 0x59, 0xda, 0x98, 0x2c, 0x55, -0x7c, 0x3a, 0x11, 0x27, 0x6f, 0xef, 0xec, 0x95, 0xcf, 0xcf, 0x7e, 0x29, 0xe9, 0x54, 0x44, 0x16, -0x71, 0x53, 0x89, 0x1f, 0xa1, 0xb9, 0x1f, 0x45, 0x7a, 0xdf, 0xdb, 0x9f, 0x08, 0xf5, 0x75, 0x13, -0xcf, 0x83, 0x4f, 0x97, 0x7a, 0xd5, 0x44, 0xa8, 0xd7, 0xaa, 0xde, 0xc3, 0xde, 0xfd, 0x3a, 0xc8, -0x83, 0x5f, 0xba, 0xcd, 0x4b, 0x16, 0x51, 0x53, 0x08, 0xfd, 0xb9, 0x12, 0x0e, 0x57, 0x13, 0x06, -0x67, 0xaa, 0x1c, 0x88, 0x8e, 0x77, 0x1b, 0x06, 0x0d, 0xaa, 0x3c, 0x28, 0xe3, 0x5c, 0x18, 0x71, -0xcd, 0x29, 0xaa, 0x09, 0xef, 0x8a, 0xf1, 0xce, 0xb6, 0x66, 0x38, 0x63, 0x1a, 0x5e, 0x4d, 0x67, -0x30, 0x74, 0xde, 0xa3, 0x4d, 0x29, 0xab, 0x55, 0xa3, 0x88, 0xde, 0xd8, 0x72, 0xc6, 0x62, 0xc9, -0xf9, 0x8b, 0xdf, 0x4f, 0xf0, 0x8d, 0xdc, 0xc0, 0x62, 0xc2, 0xb6, 0xa4, 0xfb, 0xce, 0xfa, 0x82, -0x0e, 0xb1, 0xbe, 0x16, 0x20, 0x7e, 0x93, 0x7b, 0x74, 0x4a, 0x61, 0xc8, 0x72, 0x04, 0x7a, 0x2c, -0x45, 0x3a, 0x1d, 0x37, 0x40, 0x0b, 0x47, 0x1e, 0x0f, 0x41, 0xc7, 0xb4, 0x68, 0x8a, 0xf1, 0xec, -0xf8, 0x0a, 0x3e, 0x60, 0xb2, 0xb2, 0x75, 0x13, 0xcf, 0x8a, 0x35, 0x6d, 0x23, 0x0d, 0x04, 0xe5, -0x7a, 0x50, 0xbc, 0x24, 0x2f, 0x3a, 0x54, 0x0b, 0x3f, 0x97, 0xe0, 0x73, 0x07, 0x8e, 0xb9, 0xd0, -0x4e, 0x70, 0xf1, 0xca, 0x21, 0xed, 0x04, 0xf2, 0x48, 0xef, 0xd3, 0xb5, 0x13, 0x6a, 0x11, 0x7f, -0x2b, 0xde, 0x38, 0x04, 0xb9, 0xde, 0x10, 0xbe, 0x89, 0xda, 0x69, 0xb7, 0xb7, 0x3c, 0x57, 0x6b, -0xed, 0x74, 0x08, 0xcb, 0xf9, 0x63, 0x3d, 0x8d, 0x7d, 0xb4, 0xdb, 0x85, 0x5e, 0x24, 0xf5, 0xc4, -0xe6, 0xc0, 0xf9, 0xa5, 0xaf, 0x28, 0x1a, 0x25, 0x8f, 0x2f, 0xe4, 0xcf, 0x0d, 0x0e, 0x57, 0x33, -0xfd, 0x5a, 0xc2, 0x56, 0x6a, 0x4a, 0x03, 0xc2, 0xa3, 0xcb, 0xc5, 0x51, 0xff, 0x86, 0x45, 0xec, -0x2f, 0xa4, 0xb1, 0xd7, 0x17, 0x70, 0x08, 0xd1, 0xdc, 0xa8, 0xf8, 0x98, 0x42, 0x32, 0x75, 0x44, -0x2a, 0x79, 0x81, 0x38, 0x80, 0x02, 0x0d, 0xb8, 0x8f, 0xa6, 0x8f, 0xc8, 0x67, 0xe6, 0xd6, 0x4d, -0x34, 0x13, 0xd1, 0x4a, 0xed, 0xb0, 0x3e, 0x13, 0x7c, 0x96, 0xe3, 0x2e, 0xa0, 0x35, 0xb9, 0x98, -0x97, 0xe5, 0xd7, 0x8e, 0x79, 0x49, 0x11, 0x2a, 0x89, 0xcf, 0xe3, 0xd3, 0xb6, 0x45, 0x07, 0x09, -0x26, 0x2c, 0xe9, 0x7b, 0xa7, 0xc5, 0xc1, 0x6c, 0x75, 0xa3, 0x74, 0x37, 0x46, 0x65, 0x34, 0x0a, -0xcc, 0x8a, 0xb4, 0x9c, 0x4e, 0x6c, 0x6b, 0x79, 0x06, 0xc9, 0xff, 0xb8, 0xc2, 0x1e, 0xc9, 0x43, -0xe0, 0x7a, 0x49, 0x8f, 0x81, 0x56, 0x30, 0x8b, 0xb9, 0x55, 0x42, 0x51, 0x56, 0x92, 0x63, 0x17, -0x17, 0x61, 0x7f, 0xe5, 0xfc, 0x09, 0x0d, 0xc5, 0x4f, 0x52, 0xbc, 0x40, 0xb1, 0xb0, 0x2d, 0x1c, -0x79, 0x4d, 0xec, 0xdf, 0x1f, 0xf5, 0x14, 0xc8, 0x79, 0x14, 0xe5, 0xd5, 0x73, 0x45, 0x84, 0x61, -0x87, 0x07, 0x3a, 0xdd, 0x1e, 0xe3, 0x84, 0xbd, 0x11, 0x29, 0x29, 0x9d, 0x1c, 0x15, 0x91, 0x3d, -0xdd, 0x70, 0xd1, 0x88, 0xb4, 0x70, 0x52, 0x7b, 0x31, 0xb9, 0xd5, 0x11, 0xca, 0xa6, 0xad, 0x06, -0x30, 0x27, 0xb7, 0xe2, 0x48, 0x3e, 0xc5, 0x72, 0xcd, 0x1a, 0xde, 0xfd, 0xb3, 0x71, 0x3a, 0x24, -0xb7, 0x56, 0x43, 0x41, 0x3e, 0x63, 0x72, 0x2b, 0xfb, 0x08, 0x26, 0xc9, 0x5f, 0x61, 0x1b, 0xa6, -0x89, 0x6c, 0xfc, 0x60, 0xca, 0xad, 0x4d, 0xf0, 0xd5, 0xa8, 0x1d, 0xe6, 0xab, 0x59, 0x3b, 0xc6, -0xb3, 0xf5, 0x7e, 0x2e, 0x72, 0x70, 0x08, 0xd7, 0xc8, 0xd3, 0x69, 0x73, 0x55, 0x93, 0x76, 0xb0, -0x2a, 0x89, 0x3c, 0x4a, 0x44, 0x49, 0x0c, 0xb2, 0xc4, 0x73, 0x89, 0x5b, 0x73, 0xff, 0x75, 0x13, -0x0f, 0x9e, 0xd8, 0x40, 0xfa, 0xec, 0xd8, 0x4e, 0xe4, 0x72, 0x34, 0xe3, 0x87, 0x1b, 0xc8, 0x82, -0x0a, 0x79, 0x4b, 0xd6, 0x29, 0x50, 0x4b, 0x32, 0xc4, 0x3d, 0x1e, 0x1c, 0x94, 0x88, 0x0f, 0x8c, -0x91, 0xac, 0xe0, 0xc2, 0x59, 0x9f, 0xe0, 0x12, 0x0c, 0x0e, 0x61, 0xe7, 0x45, 0xe7, 0xab, 0xb6, -0xc4, 0x73, 0x60, 0x4b, 0xdd, 0x8f, 0xad, 0xf4, 0x71, 0x2b, 0x9f, 0x11, 0xad, 0xf4, 0x7b, 0x8a, -0x76, 0x86, 0xcf, 0x68, 0x2f, 0x50, 0x7b, 0x32, 0x26, 0x7b, 0xe8, 0xed, 0x71, 0xfc, 0x7b, 0xed, -0xed, 0xd7, 0x1a, 0x3e, 0x2c, 0x0a, 0x34, 0x9c, 0x7f, 0x02, 0x7c, 0x8f, 0xde, 0x86, 0x92, 0x64, -0x2e, 0xba, 0x4b, 0x18, 0x8c, 0x6d, 0xc3, 0xe1, 0x13, 0x60, 0xb9, 0x7f, 0xd6, 0xae, 0xe1, 0xd4, -0x04, 0x95, 0x4b, 0x3e, 0x81, 0xaa, 0x62, 0xda, 0x59, 0xac, 0xf5, 0x19, 0x94, 0xad, 0xce, 0x63, -0xcb, 0x2e, 0x66, 0x0c, 0xd8, 0xa6, 0x4b, 0xf6, 0x2e, 0xed, 0x12, 0xeb, 0x89, 0x99, 0x70, 0xb5, -0x54, 0x24, 0x47, 0x98, 0x27, 0xcf, 0x8e, 0x79, 0xd1, 0xc2, 0xc9, 0xa9, 0xba, 0xe4, 0x56, 0x37, -0x14, 0xa4, 0xc9, 0xc9, 0xad, 0xba, 0x1c, 0x59, 0xec, 0xd5, 0x2d, 0x12, 0x23, 0xf7, 0x38, 0x84, -0x8d, 0x79, 0x94, 0xe1, 0xa4, 0x9a, 0x56, 0x53, 0x7e, 0xed, 0xd9, 0x1b, 0xb3, 0x90, 0xc2, 0x16, -0x6d, 0x3c, 0xdb, 0x02, 0x83, 0xdc, 0xba, 0xc6, 0x04, 0x6a, 0x59, 0x96, 0x47, 0x8c, 0x6c, 0x6f, -0xdd, 0xf4, 0xc3, 0xdf, 0xa8, 0x46, 0x1a, 0x95, 0xcf, 0x2f, 0x2a, 0xb3, 0xf2, 0xb2, 0xc9, 0x97, -0x9f, 0xc6, 0x13, 0x5d, 0x1f, 0x29, 0x4a, 0xb3, 0xde, 0xca, 0x88, 0x4d, 0xd0, 0xf9, 0x11, 0x39, -0xe5, 0x14, 0x51, 0xe0, 0xec, 0x23, 0x2a, 0xc7, 0x3d, 0x53, 0x5a, 0x39, 0x3e, 0x9c, 0x39, 0x77, -0x6f, 0xb4, 0x6f, 0xf8, 0x2a, 0x67, 0xe5, 0x85, 0x75, 0x7b, 0xab, 0x40, 0xe8, 0xf7, 0x29, 0x5e, -0xbf, 0x09, 0xb2, 0x6d, 0xbe, 0x2a, 0x3e, 0x60, 0xe9, 0x35, 0x4a, 0x29, 0xe4, 0x63, 0xf7, 0x5d, -0x69, 0x95, 0xa4, 0x6d, 0xb9, 0x2a, 0xe5, 0x91, 0x6c, 0x8c, 0x31, 0xe5, 0x0b, 0xad, 0x9e, 0xb4, -0x96, 0x6c, 0x8c, 0xb1, 0x7a, 0xca, 0x55, 0x89, 0xb9, 0x1c, 0x98, 0xc3, 0x53, 0xeb, 0x05, 0x77, -0x8d, 0x17, 0xfc, 0x76, 0x3a, 0xff, 0x5a, 0x06, 0x8b, 0x51, 0xae, 0xb6, 0xb4, 0x87, 0xb1, 0xc7, -0xd6, 0xd1, 0x70, 0x7f, 0x63, 0x22, 0xd2, 0x17, 0x69, 0x8f, 0xef, 0x8c, 0xf7, 0x07, 0x13, 0x0d, -0x7d, 0xb5, 0x75, 0xd0, 0x18, 0x1b, 0xba, 0xee, 0xf4, 0x7d, 0xe3, 0xb1, 0xed, 0x91, 0x5e, 0x39, -0x20, 0x8d, 0x46, 0xfa, 0x1d, 0x7e, 0x43, 0x63, 0x78, 0xd5, 0x75, 0x27, 0xff, 0xeb, 0x9e, 0xe8, -0x4b, 0xf1, 0x01, 0xb9, 0xc6, 0xb4, 0xbd, 0xa1, 0x9f, 0x46, 0x5d, 0x89, 0x8f, 0x93, 0x0f, 0xa1, -0xf8, 0x2b, 0xba, 0xbd, 0xd5, 0x10, 0x9f, 0x48, 0xd6, 0x7b, 0xbc, 0xe0, 0xab, 0xf6, 0xf2, 0xf9, -0x72, 0x1c, 0x6b, 0xad, 0x0b, 0x78, 0xa1, 0xbe, 0xce, 0x0b, 0x11, 0x6c, 0x45, 0xe3, 0x4b, 0xb1, -0x01, 0xe3, 0x2f, 0x63, 0xff, 0xd8, 0xf0, 0xcb, 0xd8, 0x8e, 0xe8, 0x80, 0xf1, 0x17, 0xd1, 0x5f, -0x45, 0x7e, 0x11, 0xad, 0x8d, 0x05, 0x1a, 0x94, 0x96, 0x47, 0x5f, 0xcf, 0x14, 0x8d, 0x6e, 0xe8, -0xb5, 0x04, 0xa3, 0xbe, 0x88, 0x3d, 0xf9, 0xd8, 0xfe, 0xd1, 0x87, 0xfa, 0xca, 0xbc, 0xcd, 0x10, -0xf7, 0x45, 0x11, 0x87, 0x47, 0xc9, 0x16, 0xc9, 0x1f, 0xf1, 0x2e, 0x80, 0xa0, 0xda, 0xef, 0x9d, -0xe5, 0x93, 0xdb, 0x58, 0xc2, 0xe5, 0xdd, 0x1f, 0x33, 0xf9, 0xb7, 0x69, 0x9e, 0xd4, 0x2c, 0xc9, -0xc7, 0x3b, 0x22, 0xf1, 0x3d, 0xbc, 0x97, 0x81, 0xf0, 0x43, 0x91, 0xec, 0x39, 0x8e, 0x18, 0x79, -0xbf, 0xa1, 0xf8, 0x4e, 0x81, 0xea, 0x1f, 0x78, 0xad, 0x77, 0xc7, 0x28, 0xa6, 0x3d, 0xf9, 0xd8, -0x14, 0x91, 0xea, 0x73, 0x6f, 0x49, 0x33, 0x2c, 0x7e, 0x77, 0xd4, 0x1f, 0xc5, 0x3a, 0xa2, 0x6d, -0x0d, 0xac, 0x35, 0x16, 0xf2, 0x46, 0x90, 0x7a, 0x24, 0xa0, 0xd6, 0xdb, 0x04, 0x01, 0x6f, 0x23, -0xf8, 0x48, 0xf3, 0x45, 0x85, 0xa9, 0x1f, 0xe9, 0x76, 0x61, 0x72, 0xa1, 0x5d, 0x18, 0x47, 0xe1, -0x20, 0xce, 0x2f, 0x80, 0x70, 0x51, 0xcb, 0x67, 0x67, 0xf3, 0xa0, 0x03, 0xaf, 0xc1, 0xe6, 0x33, -0x70, 0x6c, 0xc1, 0xe4, 0x54, 0x63, 0xe6, 0xe6, 0x9c, 0xa7, 0xee, 0x3d, 0xac, 0xc9, 0x54, 0x9d, -0xf7, 0x84, 0x12, 0x79, 0x1e, 0xfc, 0x05, 0xde, 0xec, 0x13, 0x19, 0xe3, 0x63, 0xaf, 0x61, 0xe9, -0x21, 0xc4, 0x06, 0x6d, 0x54, 0x2b, 0x71, 0x3f, 0x4c, 0xa9, 0xc7, 0x70, 0xdd, 0x21, 0xfe, 0xbe, -0x4c, 0x56, 0x2b, 0x14, 0x01, 0xfb, 0x18, 0x7b, 0x7e, 0x47, 0xc9, 0xeb, 0x17, 0x27, 0xc0, 0x95, -0x02, 0xc9, 0x63, 0xff, 0x1a, 0x9d, 0x0a, 0x92, 0x0e, 0xee, 0xcf, 0x76, 0xa7, 0x4c, 0x3f, 0x3f, -0xc5, 0x72, 0x70, 0x99, 0xe2, 0x96, 0x15, 0xa2, 0x5e, 0x64, 0xd3, 0xeb, 0x42, 0x5e, 0xe8, 0x89, -0x87, 0xbc, 0x86, 0xcd, 0x1b, 0xbc, 0x12, 0xd9, 0xe6, 0xd0, 0x79, 0x8f, 0x78, 0x43, 0x27, 0xde, -0x23, 0x64, 0x9f, 0x64, 0x52, 0xda, 0xf1, 0x6a, 0xc0, 0x11, 0x72, 0xcb, 0x95, 0xc9, 0x2d, 0x9e, -0x6e, 0xf6, 0x34, 0x51, 0x8e, 0xf8, 0xdf, 0x83, 0xbc, 0xff, 0x8f, 0x95, 0x7e, 0x50, 0x84, 0xb7, -0x30, 0x78, 0xc2, 0xfe, 0x35, 0x7f, 0x3f, 0x18, 0x1a, 0xfe, 0x50, 0x8e, 0x62, 0x0d, 0x18, 0x7c, -0xd5, 0x28, 0xe7, 0x8f, 0x4f, 0xac, 0xaf, 0xad, 0xa6, 0xf3, 0xe4, 0xe6, 0x3f, 0xc4, 0x35, 0xd7, -0xec, 0xba, 0x6a, 0x3a, 0x55, 0x76, 0x87, 0x9a, 0x3f, 0xe9, 0xd4, 0xdc, 0xb3, 0xeb, 0xdd, 0xf8, -0xe6, 0xd7, 0x07, 0x1e, 0xfc, 0xf9, 0xee, 0x3e, 0x83, 0x3d, 0xdc, 0xfe, 0x10, 0x3e, 0x9b, 0xe3, -0xbf, 0x3e, 0xfa, 0xe0, 0xe8, 0xfa, 0x3e, 0x83, 0x62, 0x6c, 0x1f, 0xde, 0xb9, 0xba, 0xcf, 0xe0, -0x92, 0xda, 0xd7, 0x8d, 0xe1, 0xb3, 0xdb, 0xd8, 0xfe, 0x00, 0x9d, 0xa1, 0xc6, 0x77, 0x07, 0x5d, -0x50, 0x12, 0xdf, 0xe7, 0x95, 0x9f, 0x1c, 0x76, 0xc7, 0x9e, 0x3c, 0x01, 0x65, 0xf1, 0xff, 0xde, -0x05, 0x4f, 0x3c, 0xe4, 0x8e, 0xe2, 0x7d, 0x69, 0xfc, 0xbf, 0x97, 0xc3, 0xc8, 0x7a, 0x2f, 0xb0, -0x8e, 0x95, 0x49, 0xf4, 0xc7, 0xb3, 0xe8, 0x65, 0x11, 0x57, 0x65, 0x11, 0xce, 0x80, 0xe7, 0xf6, -0x1e, 0xe2, 0xb2, 0xd8, 0x72, 0xcb, 0x28, 0xa8, 0xf6, 0xe5, 0x67, 0x3b, 0x37, 0xf1, 0xa9, 0x94, -0x21, 0xb1, 0x16, 0x25, 0x87, 0x3d, 0x91, 0x1e, 0x8a, 0xc7, 0x46, 0x23, 0x7b, 0x69, 0x23, 0x8d, -0xe8, 0x54, 0xc7, 0x77, 0xb2, 0xb2, 0x5c, 0xc0, 0x4e, 0x31, 0xa5, 0x29, 0xce, 0x03, 0xd2, 0x22, -0xa7, 0x07, 0xe7, 0x74, 0x99, 0x4e, 0x23, 0x41, 0x6e, 0x44, 0xdc, 0x61, 0x70, 0x66, 0xb5, 0x51, -0x29, 0x06, 0x5e, 0xed, 0x3b, 0xe3, 0x0e, 0x8b, 0x71, 0x0d, 0xd2, 0xd4, 0x47, 0x94, 0x9c, 0xa7, -0x99, 0xcb, 0xe3, 0x8c, 0xcf, 0x5f, 0x64, 0x7d, 0x25, 0x1f, 0x45, 0x8b, 0x72, 0x70, 0xb4, 0xa8, -0x5b, 0xe2, 0x60, 0x08, 0xe2, 0xd3, 0x2d, 0x49, 0x14, 0x06, 0xe9, 0x39, 0x09, 0x1e, 0x4f, 0x0f, -0x54, 0x07, 0xfb, 0xa1, 0xe4, 0xef, 0x5f, 0xc3, 0x27, 0x13, 0x72, 0xa9, 0xd5, 0xfe, 0x65, 0x60, -0x7b, 0x6c, 0xff, 0x2d, 0x0b, 0x38, 0x4e, 0xaa, 0x04, 0x15, 0x99, 0x8e, 0x89, 0xe7, 0x01, 0x17, -0x18, 0x6b, 0x05, 0xfe, 0x5b, 0xc8, 0x71, 0x0b, 0x52, 0xe6, 0xd6, 0x4d, 0x58, 0x7e, 0xd2, 0xe4, -0x01, 0xa3, 0x7c, 0x30, 0x15, 0x0f, 0x9f, 0x96, 0x4e, 0xe6, 0xea, 0x7e, 0x83, 0xbf, 0x2a, 0xc7, -0x34, 0xff, 0x15, 0xed, 0x99, 0xc3, 0x6f, 0xca, 0xbc, 0x45, 0xf6, 0x2a, 0xa8, 0x66, 0xeb, 0xfd, -0x63, 0x5e, 0x29, 0x39, 0xf6, 0xf9, 0x4a, 0x61, 0xef, 0xd6, 0x4a, 0x76, 0x41, 0x6e, 0x8a, 0x4e, -0x74, 0xd9, 0xd6, 0xba, 0x49, 0x2f, 0xbb, 0x96, 0xb4, 0x70, 0xec, 0x25, 0x5e, 0x3a, 0xc5, 0x32, -0xd3, 0xe9, 0x19, 0xef, 0x34, 0x21, 0xbf, 0x4e, 0xd6, 0x14, 0xbc, 0x03, 0x95, 0xd5, 0x64, 0xc5, -0x2f, 0x11, 0x3b, 0x56, 0x63, 0x79, 0x64, 0xfd, 0x2d, 0x74, 0xb5, 0x6c, 0x64, 0x67, 0xe7, 0x9e, -0x47, 0x3e, 0xdb, 0x1c, 0x06, 0x67, 0xf1, 0xa1, 0x07, 0xde, 0x59, 0xc7, 0xff, 0x05, 0x1e, 0x90, -0xb2, 0xcf, 0xc2, 0xf7, 0x11, 0x94, 0x64, 0x75, 0xe0, 0x88, 0xbb, 0xcb, 0x00, 0x71, 0x1e, 0x88, -0xd5, 0x5c, 0x88, 0xfb, 0x3c, 0xe4, 0xf5, 0x08, 0xfb, 0xae, 0x90, 0xdc, 0x89, 0xad, 0x33, 0x60, -0xeb, 0x00, 0x46, 0x91, 0x6b, 0x7f, 0x12, 0x69, 0x9b, 0xf5, 0x36, 0xf2, 0x40, 0x1b, 0xba, 0x19, -0x79, 0x6c, 0x29, 0x4a, 0xa3, 0x58, 0xbb, 0x0c, 0x2c, 0x76, 0x7c, 0xda, 0x7c, 0x0a, 0x4c, 0xbf, -0x7f, 0xed, 0xe6, 0x16, 0xa9, 0x05, 0xdf, 0x59, 0xa4, 0xb8, 0xfe, 0xce, 0x8a, 0xef, 0x2c, 0xf8, -0xce, 0xcc, 0xef, 0x5a, 0xd5, 0x54, 0xa2, 0x1b, 0x39, 0xe6, 0xf2, 0x2b, 0xc7, 0x66, 0xb2, 0x9f, -0xac, 0x04, 0x5b, 0x37, 0xe1, 0xdb, 0xb2, 0x74, 0xa9, 0x6e, 0x07, 0xdb, 0x2b, 0xf9, 0xf1, 0x8d, -0x0f, 0xdf, 0x94, 0x61, 0x3b, 0xb3, 0x69, 0x27, 0x9b, 0x26, 0x27, 0x2b, 0x93, 0x8f, 0x61, 0x6a, -0x39, 0xe7, 0xf7, 0xa5, 0xcb, 0x74, 0x7f, 0x0f, 0x32, 0xa7, 0xfa, 0x5a, 0xb3, 0xbb, 0xe2, 0x2c, -0xb5, 0x92, 0xbd, 0x56, 0x46, 0x68, 0xe9, 0x1c, 0x26, 0x4c, 0x82, 0xb0, 0xd4, 0x89, 0xb0, 0xab, -0xba, 0x70, 0xed, 0x55, 0x23, 0xe4, 0x21, 0xf4, 0x75, 0x20, 0x77, 0x64, 0x10, 0x16, 0x6e, 0x86, -0x41, 0xb7, 0xa0, 0x99, 0x6e, 0x86, 0xba, 0xc5, 0xef, 0x8c, 0x3b, 0x11, 0x8e, 0x6c, 0xf3, 0x78, -0xcf, 0x49, 0x4e, 0x5b, 0xf8, 0x8c, 0x0b, 0x0c, 0x2d, 0x2a, 0x14, 0x3d, 0xe9, 0x9b, 0xc7, 0xb2, -0x05, 0xf9, 0x02, 0xaf, 0x65, 0x29, 0xc1, 0x42, 0x12, 0x43, 0x0a, 0x8a, 0x7a, 0xf1, 0xed, 0x20, -0x62, 0x83, 0x6a, 0x25, 0x5a, 0x43, 0xeb, 0xeb, 0x95, 0xad, 0xdb, 0xc0, 0x14, 0xa0, 0xf5, 0xb6, -0x67, 0xcb, 0x36, 0xe4, 0xd1, 0x16, 0x22, 0x4f, 0x57, 0x9f, 0x29, 0xcb, 0x41, 0xcd, 0x08, 0x47, -0x4f, 0x88, 0x8a, 0xb1, 0x4e, 0x5b, 0x10, 0x5b, 0x54, 0xd3, 0xde, 0xa4, 0x54, 0x9b, 0x6a, 0x49, -0xac, 0xed, 0x35, 0xfe, 0x6e, 0x1b, 0x59, 0x3c, 0x25, 0xd6, 0xf4, 0x1a, 0xdf, 0xd9, 0x46, 0x5e, -0x69, 0x10, 0xc2, 0x91, 0x23, 0x42, 0xec, 0x60, 0x51, 0x8a, 0x26, 0x36, 0xfc, 0x7c, 0xbc, 0xd7, -0xfc, 0xd8, 0xfe, 0xad, 0x0f, 0x51, 0x2e, 0xe7, 0x4c, 0x7c, 0x67, 0xe6, 0x77, 0x56, 0x45, 0xce, -0xbe, 0xdb, 0xf2, 0x10, 0x7d, 0xe7, 0x98, 0xf9, 0xd2, 0xe6, 0x94, 0x69, 0xc7, 0x36, 0xc2, 0x5b, -0x45, 0x1b, 0x11, 0x3f, 0x33, 0x04, 0x4e, 0x3e, 0xc2, 0x63, 0x68, 0x4b, 0x87, 0xfe, 0xe3, 0x70, -0xf8, 0xd9, 0x52, 0x82, 0x43, 0xc7, 0xda, 0x5b, 0x22, 0x60, 0x10, 0xa5, 0x50, 0xbc, 0xf2, 0xba, -0xa2, 0x27, 0x71, 0xe4, 0x6a, 0xe5, 0x27, 0x70, 0xfd, 0x25, 0x62, 0x29, 0x23, 0xf9, 0x53, 0x2e, -0x2a, 0x45, 0x7e, 0xc5, 0x8a, 0x94, 0xc0, 0xcf, 0x10, 0x57, 0x8d, 0x34, 0xb4, 0x1a, 0xa9, 0xac, -0x9f, 0xfd, 0x76, 0xe1, 0xfd, 0xa1, 0x9f, 0x82, 0xff, 0x0a, 0xbf, 0x5d, 0xd9, 0xd4, 0xd5, 0x5f, -0x00, 0xbb, 0x75, 0x5c, 0x52, 0xcd, 0xef, 0x7e, 0x0a, 0x75, 0x98, 0xb7, 0xe6, 0xed, 0x35, 0xde, -0x30, 0xd4, 0x28, 0x38, 0x7b, 0x76, 0x37, 0x38, 0x22, 0x6b, 0x18, 0xc2, 0xcc, 0x6f, 0xad, 0xc1, -0x9a, 0x6a, 0xb0, 0xa6, 0x3a, 0xf2, 0x9d, 0xf1, 0x3d, 0x17, 0x71, 0xeb, 0xc4, 0x63, 0xc9, 0xe4, -0xb7, 0x4b, 0xf7, 0x09, 0x83, 0x18, 0x89, 0x62, 0x44, 0x25, 0x11, 0x77, 0x28, 0x88, 0x13, 0x1c, -0x7c, 0xc6, 0xb1, 0x0d, 0xfc, 0x69, 0x57, 0x81, 0x5f, 0xad, 0x6e, 0x6c, 0xb9, 0x92, 0xa3, 0x36, -0x2f, 0xe7, 0x29, 0x8b, 0x0a, 0xb2, 0xc3, 0x6b, 0x54, 0x08, 0xa6, 0x87, 0x19, 0xa6, 0x21, 0x39, -0xf6, 0xe9, 0x86, 0x7f, 0xc6, 0x11, 0xf8, 0x3d, 0xf6, 0x5f, 0xa9, 0x92, 0x15, 0xc4, 0x24, 0xe5, -0xe4, 0xa5, 0x37, 0xf2, 0x3f, 0x29, 0xd2, 0x13, 0x51, 0x4b, 0x91, 0x87, 0xf1, 0x3f, 0xa7, 0x07, -0xa3, 0x38, 0xba, 0x31, 0x1c, 0xd9, 0x2a, 0xb9, 0x72, 0xe1, 0xe4, 0xa7, 0xfd, 0xc8, 0x0d, 0x0a, -0x4f, 0x44, 0xe5, 0xd5, 0x14, 0xa1, 0xfa, 0x05, 0xe4, 0xe6, 0xb2, 0xd4, 0xe1, 0x69, 0x47, 0x89, -0xbf, 0x8f, 0xa8, 0x83, 0x0b, 0xec, 0x64, 0x13, 0x38, 0x8f, 0xa9, 0xc3, 0xea, 0x9a, 0x79, 0x48, -0x03, 0x5e, 0x59, 0xf8, 0x87, 0x5a, 0xcd, 0x69, 0xad, 0x9d, 0x87, 0xf8, 0x7f, 0xaf, 0x27, 0xb4, -0xf0, 0x02, 0xd2, 0x0a, 0x6b, 0x1d, 0xe9, 0x21, 0xbd, 0x7a, 0xf0, 0x81, 0x9f, 0xef, 0x41, 0xea, -0x10, 0x69, 0x7f, 0x48, 0x68, 0x24, 0x1d, 0x78, 0x60, 0x14, 0xa9, 0x82, 0x22, 0xb5, 0x0f, 0xbf, -0xb4, 0xa6, 0xcf, 0xe0, 0x94, 0xdb, 0xd7, 0x66, 0xa9, 0x84, 0x80, 0xd6, 0x3a, 0x82, 0xde, 0x57, -0xbd, 0x46, 0xbb, 0x61, 0xf3, 0xb0, 0x27, 0xfc, 0x14, 0xd1, 0x87, 0x15, 0x9d, 0x60, 0x2f, 0xda, -0xfc, 0x10, 0x3f, 0x95, 0xc6, 0x57, 0xb8, 0x60, 0xe4, 0x01, 0xa4, 0x10, 0x7b, 0x88, 0x42, 0x90, -0xf5, 0x0b, 0xb5, 0xd6, 0x7d, 0xf7, 0x98, 0xa0, 0x11, 0xad, 0x6c, 0xb3, 0x5f, 0x4d, 0xe3, 0x7b, -0x53, 0xc9, 0x95, 0xa3, 0x73, 0x61, 0x48, 0x3f, 0x4d, 0x04, 0x01, 0x6b, 0xed, 0xa1, 0x89, 0x08, -0xf1, 0x0e, 0x04, 0x6b, 0x78, 0xdf, 0x40, 0x70, 0x17, 0x8c, 0xe0, 0x88, 0x34, 0x14, 0xc2, 0xda, -0x85, 0x8b, 0x02, 0xdf, 0x11, 0xc4, 0xe1, 0x98, 0xec, 0xd5, 0xa1, 0x16, 0xe0, 0x25, 0x61, 0x51, -0x4c, 0xe3, 0xc4, 0xb3, 0x06, 0xf0, 0x9c, 0x1d, 0xf1, 0xa1, 0x82, 0xd0, 0x92, 0x20, 0xbd, 0x75, -0x80, 0x75, 0xf6, 0xf0, 0xa3, 0xfb, 0x1d, 0xb8, 0x46, 0xec, 0xa6, 0x43, 0x0f, 0xbd, 0xb3, 0x5a, -0xfc, 0x4e, 0x83, 0xb5, 0x5c, 0xca, 0x74, 0xbf, 0x2e, 0x6e, 0x58, 0x09, 0x47, 0xd6, 0xfe, 0x7e, -0xcd, 0x35, 0xa0, 0x0a, 0x71, 0x2d, 0x43, 0x94, 0xf3, 0x5a, 0x10, 0x25, 0xa8, 0xca, 0x2d, 0x51, -0x84, 0xa7, 0x98, 0x80, 0xa7, 0xc2, 0xf1, 0x60, 0x2c, 0x25, 0x8b, 0x7d, 0x0f, 0xd6, 0xfb, 0x75, -0x09, 0x6f, 0x03, 0x14, 0xbb, 0xd6, 0x49, 0xb1, 0xb3, 0xab, 0x50, 0x42, 0xab, 0x82, 0x8e, 0x1c, -0x05, 0xac, 0x7c, 0x67, 0x5c, 0x8f, 0x8c, 0x64, 0xa0, 0xb8, 0x9e, 0xbc, 0x6a, 0x93, 0xd8, 0xa6, -0xca, 0x74, 0x9c, 0xf4, 0xd2, 0x70, 0x14, 0x42, 0xcc, 0x77, 0x8c, 0x5d, 0x18, 0xd3, 0xd7, 0xf0, -0x2c, 0x9f, 0xa7, 0x60, 0x0d, 0x7b, 0xc4, 0x1a, 0x9e, 0x66, 0x15, 0x41, 0xe3, 0xca, 0x56, 0x10, -0x9f, 0x3c, 0x43, 0x76, 0x1a, 0x11, 0x92, 0x8b, 0x68, 0xb4, 0xac, 0xc8, 0xed, 0x79, 0xf2, 0x2d, -0x9d, 0xbe, 0x02, 0x78, 0x77, 0xc7, 0x96, 0x91, 0xf2, 0xeb, 0x20, 0xb2, 0xad, 0x90, 0xcb, 0xc2, -0x12, 0x4a, 0x52, 0x15, 0x4a, 0x8b, 0xbd, 0x6d, 0xf3, 0x69, 0x30, 0x28, 0x33, 0xf1, 0x1b, 0x03, -0xde, 0x19, 0xed, 0x33, 0xd9, 0xe3, 0x5a, 0x27, 0xbd, 0x4f, 0x3b, 0x44, 0x9b, 0xd3, 0x95, 0x98, -0xaf, 0x1b, 0x5c, 0xb9, 0x9c, 0x9e, 0xc2, 0x9c, 0xe4, 0x65, 0x31, 0x37, 0xaa, 0x96, 0x82, 0x51, -0x2d, 0xe1, 0xd5, 0x29, 0x28, 0x89, 0xac, 0x78, 0x0a, 0xe1, 0xea, 0xbc, 0xe3, 0x1a, 0x94, 0xa4, -0x87, 0x28, 0xc9, 0x1f, 0x3f, 0x10, 0x94, 0x04, 0xdf, 0x94, 0x17, 0xbc, 0x39, 0x89, 0x6f, 0xde, -0x28, 0xa0, 0x26, 0xf9, 0x37, 0x8f, 0xe0, 0x9b, 0xed, 0x82, 0xa2, 0xf0, 0x38, 0xdb, 0xbc, 0xfa, -0xdc, 0x86, 0x16, 0x63, 0x8f, 0x91, 0x37, 0x40, 0x4c, 0xcd, 0x34, 0x31, 0xd2, 0x25, 0x85, 0x48, -0x67, 0x92, 0x7c, 0x35, 0x64, 0x63, 0x21, 0xeb, 0xe7, 0xb0, 0x03, 0xfa, 0x99, 0x81, 0x4b, 0xf8, -0x1c, 0xcb, 0xee, 0x70, 0x92, 0x1d, 0x6a, 0x81, 0xcf, 0x24, 0x8b, 0x12, 0x82, 0xae, 0x61, 0x05, -0x6c, 0x42, 0x8e, 0x61, 0x79, 0x24, 0x48, 0x73, 0xae, 0x47, 0x13, 0x76, 0x10, 0x9f, 0x84, 0xf2, -0x7a, 0x07, 0x51, 0x61, 0x77, 0x17, 0xf9, 0xa1, 0xc0, 0x16, 0x15, 0xf4, 0xfa, 0x8f, 0x95, 0x4a, -0x37, 0xe1, 0x18, 0xae, 0xab, 0x11, 0xf9, 0xaf, 0x15, 0x19, 0xe9, 0xe6, 0x10, 0xac, 0xc0, 0x7c, -0x82, 0xf7, 0x34, 0xeb, 0xbc, 0xa7, 0xc9, 0x4b, 0xb1, 0xd1, 0x4c, 0x3a, 0x37, 0xda, 0x03, 0x96, -0x1c, 0x3f, 0xaa, 0x24, 0xc7, 0xce, 0x4d, 0x52, 0x29, 0x37, 0x37, 0xc0, 0x0a, 0x8e, 0x58, 0xd0, -0x2d, 0x57, 0xfe, 0x87, 0x4a, 0x42, 0xba, 0x72, 0x6e, 0x94, 0xbe, 0xa6, 0x92, 0x90, 0x3b, 0x34, -0x83, 0xf1, 0x76, 0x8a, 0xca, 0x6a, 0x60, 0x7e, 0xd1, 0xc4, 0xfc, 0xa2, 0x39, 0xa3, 0xac, 0xde, -0x26, 0x95, 0xe3, 0xfa, 0xf4, 0xb0, 0x6f, 0x92, 0x39, 0xbf, 0x38, 0x03, 0xa1, 0x54, 0x79, 0xbc, -0x0f, 0x5a, 0xc9, 0x4f, 0x0a, 0x62, 0xf9, 0x20, 0xaf, 0xc0, 0xe3, 0x43, 0xa3, 0x62, 0xe5, 0xb0, -0xaf, 0x1f, 0xd2, 0xfd, 0xa2, 0xb7, 0x6e, 0xa8, 0xa7, 0x77, 0xff, 0x17, 0x9d, 0xaf, 0x99, 0x85, -0x3f, 0x9c, 0x02, 0x8f, 0x3d, 0x2e, 0x94, 0x98, 0xdd, 0x79, 0xe8, 0xa5, 0x48, 0xb3, 0x05, 0xa3, -0x85, 0x5c, 0x5d, 0xcb, 0x7b, 0x41, 0x8b, 0x0a, 0x7f, 0x98, 0xfc, 0x4a, 0xbc, 0x68, 0xf4, 0xcf, -0xe2, 0x45, 0x5f, 0x60, 0xf8, 0x0c, 0x11, 0x1d, 0x46, 0x4a, 0x52, 0x4a, 0x9c, 0x28, 0xd1, 0x6b, -0xbc, 0xda, 0x1c, 0x1b, 0x7c, 0xc4, 0x93, 0xc6, 0xa1, 0x92, 0xa2, 0xd2, 0xe9, 0x7c, 0x6a, 0x39, -0xfe, 0xd3, 0xe8, 0x55, 0x93, 0xcf, 0x4d, 0xa2, 0x3d, 0xfa, 0xbd, 0x0d, 0xef, 0x1d, 0x5c, 0x96, -0x9f, 0xbc, 0x74, 0x43, 0x64, 0xb0, 0xe3, 0x00, 0x71, 0xa7, 0x52, 0x01, 0x77, 0x1a, 0x60, 0xee, -0xb4, 0xee, 0x1a, 0x5c, 0xa9, 0xef, 0x1a, 0x5c, 0xa9, 0xf0, 0xb6, 0x50, 0xed, 0x2d, 0x9a, 0x8e, -0x87, 0xcf, 0x1e, 0xe7, 0x74, 0x0f, 0xf3, 0xa4, 0x01, 0x9c, 0xb9, 0x21, 0xc4, 0x1e, 0x26, 0xc4, -0x73, 0x38, 0xb6, 0xe4, 0x03, 0x21, 0x8b, 0x3f, 0x94, 0x92, 0x6b, 0x60, 0x8f, 0x80, 0xc0, 0xca, -0x7f, 0x58, 0xc2, 0x65, 0xb8, 0xfe, 0x23, 0x1c, 0x28, 0xce, 0x87, 0x1a, 0xf9, 0x29, 0x2c, 0x46, -0x84, 0xbb, 0x18, 0x29, 0xb8, 0xaa, 0x73, 0x9f, 0xb5, 0xc8, 0x7d, 0x06, 0x71, 0xed, 0x91, 0xce, -0x49, 0x20, 0xc7, 0x85, 0xee, 0xc8, 0x72, 0xa1, 0xc8, 0xbd, 0x29, 0x7f, 0x7b, 0x12, 0x2a, 0x11, -0x63, 0x38, 0x1e, 0x3b, 0x09, 0xe5, 0x82, 0x2b, 0x8d, 0x3c, 0x27, 0x45, 0x1d, 0x38, 0x7e, 0x01, -0xe4, 0x39, 0x9f, 0x40, 0x7e, 0xf4, 0x9d, 0x37, 0x6e, 0x4e, 0x48, 0x2d, 0x98, 0x1a, 0xd7, 0x53, -0xad, 0xc4, 0x89, 0xbe, 0xf3, 0x1a, 0xa6, 0x0a, 0x4e, 0xd4, 0x73, 0x35, 0x27, 0xfa, 0xf1, 0xfb, -0x58, 0xab, 0x87, 0x71, 0x41, 0xf5, 0x74, 0x4e, 0xf4, 0xe3, 0x1f, 0xe3, 0x9b, 0xea, 0xe9, 0x9c, -0xe8, 0xc7, 0x9b, 0xb3, 0x3c, 0x27, 0xe6, 0x0f, 0x5d, 0xc1, 0x89, 0x86, 0xae, 0xe6, 0x44, 0xb3, -0x11, 0x15, 0x09, 0x93, 0x93, 0xf4, 0x67, 0xaf, 0xc6, 0x5e, 0x77, 0xe9, 0xbb, 0xe9, 0x20, 0x2d, -0xa2, 0xdd, 0x23, 0xe2, 0x3d, 0x11, 0xfe, 0x0c, 0x59, 0x0d, 0x7b, 0x29, 0x24, 0xce, 0xd8, 0x05, -0x0d, 0x20, 0x0b, 0x05, 0xc1, 0x75, 0x4a, 0x0e, 0x11, 0x5d, 0x06, 0xa5, 0xd0, 0x3e, 0xa8, 0xae, -0x41, 0xf8, 0xf9, 0xdd, 0x49, 0xb0, 0xfd, 0xf0, 0x24, 0x28, 0xb5, 0x08, 0x3f, 0xbf, 0x3f, 0x09, -0xa5, 0x38, 0x42, 0xbc, 0x73, 0xd9, 0x6b, 0xa8, 0xc1, 0xf1, 0x21, 0x9b, 0x8c, 0xb4, 0xc9, 0x17, -0xfa, 0xd9, 0x6f, 0xbe, 0x27, 0x3b, 0xe3, 0xf8, 0x54, 0x9a, 0xd6, 0x4f, 0xef, 0x47, 0x7f, 0xb0, -0x54, 0x76, 0x86, 0x76, 0x72, 0xce, 0x5a, 0x91, 0xb3, 0x84, 0x73, 0xbe, 0xf1, 0x3d, 0xd9, 0x45, -0x39, 0xcb, 0x72, 0x39, 0x37, 0x2e, 0x95, 0x5d, 0xa1, 0x5f, 0xe1, 0x4a, 0x4f, 0x19, 0x7f, 0x79, -0x00, 0xa9, 0xec, 0xb3, 0x5e, 0x49, 0xc0, 0xcd, 0xd9, 0x28, 0x8f, 0x81, 0x2b, 0x5d, 0x9b, 0x83, -0x1f, 0xeb, 0x57, 0x80, 0x9f, 0x79, 0x04, 0x3f, 0x1f, 0xdb, 0x99, 0x83, 0xfc, 0xc1, 0x2d, 0x2d, -0x60, 0x88, 0x74, 0x67, 0x21, 0xbe, 0xa0, 0x1c, 0xe2, 0x08, 0x5a, 0x84, 0x6d, 0x1f, 0xde, 0x35, -0x5f, 0xbb, 0x94, 0x8f, 0x8e, 0x0a, 0x28, 0x64, 0xde, 0xc0, 0xcc, 0xf7, 0xee, 0x1c, 0x85, 0x65, -0x6b, 0x06, 0x85, 0x63, 0x00, 0x5e, 0x93, 0xba, 0x96, 0x33, 0x75, 0xad, 0x2c, 0xa0, 0xae, 0xae, -0x74, 0x1c, 0xb1, 0x46, 0x20, 0x1d, 0x11, 0x54, 0xf5, 0xe3, 0xa5, 0xb9, 0xf6, 0xcc, 0xfa, 0x0a, -0xfd, 0x62, 0xaa, 0xfa, 0x51, 0x82, 0x2d, 0x6a, 0x85, 0x97, 0x0d, 0x37, 0xf6, 0xcc, 0xa5, 0xc3, -0xdc, 0x15, 0x34, 0xeb, 0x4c, 0xe6, 0x1a, 0x30, 0xc7, 0x34, 0xeb, 0x8c, 0x5f, 0xc0, 0xdc, 0x15, -0x94, 0x09, 0x69, 0xd6, 0x99, 0xf2, 0x02, 0xb8, 0x9b, 0x46, 0xb3, 0x4e, 0x4f, 0x09, 0xd8, 0xcb, -0x52, 0x27, 0xfc, 0xf7, 0x09, 0xab, 0x45, 0xcc, 0xeb, 0x4e, 0x29, 0x7a, 0x34, 0x40, 0x3a, 0xc9, -0x28, 0xc1, 0x5f, 0x6a, 0xaf, 0x45, 0x60, 0x15, 0x87, 0x25, 0x27, 0x51, 0xba, 0xb9, 0xef, 0xd3, -0x29, 0x5e, 0xe0, 0x6a, 0x8a, 0x57, 0x69, 0xf8, 0x0f, 0x51, 0x3a, 0x5b, 0x9e, 0xd2, 0x7d, 0xb5, -0x68, 0x88, 0x57, 0x68, 0xad, 0xaf, 0xd4, 0x53, 0xbd, 0x42, 0x37, 0xdd, 0x9e, 0xdb, 0xf5, 0xbe, -0x3c, 0x28, 0xde, 0x78, 0xcd, 0x8f, 0xee, 0xb7, 0xeb, 0x7b, 0x89, 0xfa, 0x9b, 0x75, 0xc2, 0x4e, -0x00, 0xa1, 0xc0, 0xcf, 0xb6, 0x0c, 0xdd, 0xb0, 0x38, 0xf3, 0xf5, 0x46, 0x18, 0x94, 0xe2, 0xe1, -0xbc, 0xbf, 0xaf, 0x5b, 0x42, 0x72, 0xf5, 0xa0, 0x76, 0x4b, 0x58, 0xde, 0x7b, 0xfb, 0x90, 0x3c, -0x2c, 0xef, 0xf7, 0x07, 0x25, 0x60, 0x3b, 0xad, 0xff, 0x3b, 0x6d, 0xf0, 0x07, 0x61, 0xff, 0xed, -0x61, 0xf9, 0x75, 0x1c, 0x1f, 0x59, 0x46, 0x8e, 0x41, 0x7e, 0x13, 0xef, 0xfc, 0xf2, 0x04, 0xfe, -0x86, 0xe4, 0x03, 0xb7, 0x0c, 0xd9, 0xa4, 0xd0, 0x1c, 0xf9, 0xe0, 0x0d, 0x08, 0x6a, 0xf2, 0x61, -0xfc, 0x5d, 0x28, 0xff, 0x1e, 0x7f, 0x17, 0xc9, 0x47, 0xf0, 0x37, 0x22, 0xff, 0xb3, 0x12, 0xba, -0x8d, 0x74, 0xe8, 0x7a, 0x59, 0x7f, 0x25, 0x60, 0xef, 0x96, 0xab, 0xa9, 0xf6, 0xbc, 0x0c, 0x78, -0xcd, 0xb6, 0xf8, 0x91, 0x8a, 0x56, 0xdb, 0x43, 0xd3, 0x73, 0x52, 0x09, 0x0f, 0x57, 0x36, 0x9c, -0x94, 0x4f, 0x67, 0xca, 0xf3, 0xa9, 0x8e, 0x20, 0xa6, 0x06, 0x94, 0x48, 0xc3, 0xc9, 0x22, 0x43, -0x61, 0x3a, 0xa7, 0x54, 0x16, 0xa6, 0xb4, 0xbc, 0xd7, 0x22, 0x7c, 0x4a, 0xc9, 0xa4, 0x6d, 0x4d, -0x5a, 0xd7, 0x01, 0x2f, 0xcc, 0xa9, 0xf1, 0x02, 0xc5, 0x8e, 0xe5, 0xa8, 0x9b, 0xa3, 0x91, 0xfe, -0x52, 0x7d, 0x2f, 0xd2, 0x76, 0xc5, 0x5e, 0xa4, 0x85, 0xcf, 0x14, 0x76, 0xe2, 0xd7, 0x74, 0x2e, -0x52, 0x19, 0x40, 0x29, 0xa3, 0x06, 0x65, 0xba, 0xd8, 0x19, 0x4c, 0x5b, 0x09, 0x2e, 0xa2, 0xce, -0x0b, 0x84, 0x8f, 0xb3, 0x2d, 0xe4, 0x0f, 0x00, 0x66, 0x6b, 0x3b, 0x7d, 0x91, 0xaa, 0xb8, 0xf6, -0x32, 0x3f, 0x95, 0x6b, 0xe3, 0x55, 0x7d, 0xf8, 0xbb, 0x97, 0x9f, 0x66, 0x69, 0xfb, 0x75, 0x7d, -0x2f, 0x1b, 0x7b, 0xc5, 0x2e, 0x65, 0xeb, 0xb9, 0x10, 0xe6, 0x7e, 0x23, 0xfa, 0x13, 0xed, 0x0d, -0xce, 0xa3, 0x68, 0x13, 0xf8, 0x45, 0xa9, 0x76, 0x90, 0xac, 0x59, 0x48, 0xdf, 0xf8, 0x71, 0x63, -0x72, 0x6c, 0x4a, 0xe1, 0x5d, 0x70, 0x4b, 0x7a, 0x65, 0x8c, 0x7c, 0x4f, 0xea, 0xbe, 0xd5, 0xf4, -0x1a, 0x8b, 0xb4, 0x63, 0x7c, 0x35, 0x68, 0x27, 0x6a, 0x9a, 0xab, 0x9a, 0xb5, 0xd3, 0x7c, 0x76, -0x77, 0xd1, 0x2b, 0x7b, 0x83, 0xf4, 0x76, 0xc1, 0xe4, 0xe5, 0xfd, 0xc9, 0x2d, 0x9c, 0x76, 0x49, -0x4f, 0x33, 0xe0, 0x33, 0x69, 0xfc, 0xcc, 0x12, 0x5e, 0x76, 0x3a, 0x37, 0x55, 0xff, 0x04, 0xdf, -0xe9, 0xfc, 0xbf, 0x7e, 0x3a, 0xe1, 0xab, 0x5e, 0x8b, 0x7c, 0x87, 0x9c, 0x1c, 0xbb, 0xbc, 0x9c, -0xdb, 0x2c, 0xb7, 0x9c, 0xa9, 0xb4, 0x68, 0xcf, 0xea, 0x3e, 0xc2, 0xea, 0xd9, 0x62, 0xc1, 0x0b, -0x4a, 0xf3, 0x29, 0xf0, 0x38, 0x9a, 0xb1, 0x8e, 0x20, 0x52, 0xa6, 0xa7, 0x44, 0x8c, 0x52, 0xa1, -0xc3, 0xa3, 0x55, 0xe2, 0xaa, 0xc7, 0x34, 0x2f, 0xca, 0x54, 0xba, 0xef, 0xb0, 0xa7, 0x78, 0x4f, -0xcd, 0xd6, 0xf9, 0xf0, 0x3f, 0xbe, 0x9e, 0x9a, 0xd0, 0xad, 0xe1, 0x74, 0x8b, 0x17, 0x3e, 0xc7, -0xe9, 0x82, 0x0e, 0x7b, 0xb7, 0x94, 0x14, 0xb6, 0xc6, 0x8f, 0xee, 0xc7, 0x32, 0x7e, 0x1c, 0xd9, -0x26, 0xe9, 0xf6, 0x2e, 0x22, 0xc6, 0x34, 0x9f, 0x89, 0x47, 0x5d, 0x03, 0xd0, 0x52, 0xeb, 0x85, -0x84, 0x53, 0x9c, 0xea, 0x74, 0x28, 0x3d, 0x22, 0x66, 0x2e, 0xf9, 0xe9, 0x76, 0x74, 0xf1, 0x79, -0x6a, 0x54, 0xf8, 0x09, 0x6b, 0x46, 0xbe, 0x40, 0x59, 0x98, 0xe7, 0x16, 0x70, 0x95, 0x60, 0x5e, -0x7e, 0xf7, 0x0c, 0xdb, 0xa2, 0xdc, 0x90, 0xa6, 0xd8, 0x9d, 0x86, 0x41, 0x03, 0x9d, 0x52, 0x5d, -0x0a, 0xa1, 0xd4, 0x6e, 0x56, 0xb2, 0x39, 0xb6, 0x93, 0x7f, 0x2b, 0xfb, 0x67, 0x60, 0xf7, 0x62, -0x0a, 0x72, 0x0c, 0x09, 0xf0, 0x21, 0xe5, 0xae, 0xf5, 0x36, 0x43, 0x20, 0x7c, 0x4a, 0xea, 0xe2, -0xb8, 0xba, 0x3d, 0xf2, 0x52, 0x08, 0xda, 0xaa, 0x72, 0x5e, 0xaf, 0x9c, 0x8e, 0x1e, 0xb9, 0x8b, -0x31, 0x42, 0x69, 0x81, 0x7f, 0x2d, 0x7b, 0xce, 0x16, 0xb2, 0x4a, 0x6a, 0x24, 0xbd, 0x29, 0x9c, -0xbf, 0x59, 0x82, 0xdf, 0xbb, 0xc7, 0x9f, 0xb5, 0xac, 0xa0, 0x7a, 0x19, 0x6f, 0xcd, 0xa1, 0x3b, -0x94, 0x37, 0xa8, 0x0d, 0x2f, 0xe4, 0x5a, 0xf3, 0x64, 0x41, 0x3f, 0xf6, 0x51, 0x6a, 0xae, 0x97, -0x2b, 0xf4, 0x53, 0x47, 0x85, 0xad, 0x49, 0xc8, 0x92, 0xd2, 0x45, 0xbb, 0x95, 0xc8, 0x9d, 0x2c, -0xf6, 0xf4, 0x01, 0x69, 0xc4, 0x96, 0x26, 0x5e, 0x90, 0x92, 0xa9, 0x15, 0xe1, 0xd3, 0x70, 0xcc, -0xde, 0x0b, 0x9d, 0x01, 0x0f, 0x58, 0xe2, 0x7b, 0xca, 0x3c, 0x30, 0x27, 0xbe, 0x96, 0xe3, 0x25, -0x97, 0x91, 0x25, 0x4d, 0xfb, 0x9a, 0xf8, 0x2b, 0x2b, 0xc3, 0x44, 0x39, 0x1f, 0x7f, 0x1d, 0x4b, -0x6d, 0x54, 0x4b, 0xaf, 0x91, 0x1a, 0x9a, 0x1b, 0xc2, 0x9a, 0x7b, 0xf5, 0xf1, 0x76, 0xd8, 0x69, -0xb4, 0x7b, 0xa5, 0x0c, 0x59, 0x78, 0x6a, 0xbb, 0x58, 0x7b, 0xb3, 0x14, 0xa5, 0xa9, 0xd9, 0x14, -0x2b, 0x1b, 0xe1, 0xb6, 0x45, 0xd7, 0x6b, 0x09, 0xf2, 0x59, 0x1e, 0xc7, 0x72, 0xc6, 0x2f, 0xaa, -0x29, 0xaa, 0x57, 0x60, 0x2e, 0x94, 0xd4, 0xb8, 0x90, 0x5b, 0x94, 0x47, 0x1a, 0x6e, 0x0b, 0x01, -0x79, 0xbc, 0x37, 0xfa, 0xa4, 0x91, 0x05, 0x14, 0xdb, 0xc9, 0xe6, 0x82, 0x9a, 0xf8, 0xf0, 0x44, -0xc3, 0x96, 0xd0, 0x6d, 0x11, 0xe8, 0xc5, 0xa7, 0x3b, 0xe2, 0xc3, 0x07, 0xc6, 0x37, 0x2f, 0xb8, -0x2d, 0x0c, 0xfd, 0x8e, 0x9b, 0x9c, 0x1c, 0xa9, 0x79, 0xbe, 0x42, 0x27, 0x07, 0x7a, 0xbc, 0x62, -0x97, 0xef, 0xfa, 0x7a, 0xc4, 0xef, 0xbb, 0x42, 0x7d, 0x91, 0xba, 0xb9, 0x20, 0x07, 0x91, 0x5e, -0xbd, 0x1c, 0xeb, 0xab, 0xa9, 0x99, 0x0b, 0x86, 0xda, 0x92, 0x9d, 0x0d, 0xfd, 0x1e, 0xac, 0xd1, -0x18, 0x70, 0x83, 0xbc, 0x23, 0xdc, 0xaf, 0x8c, 0x46, 0x07, 0xe4, 0x5a, 0x18, 0x8b, 0x0c, 0xc8, -0x81, 0xe2, 0x5d, 0x0d, 0xbd, 0x72, 0xcd, 0x8c, 0x97, 0xc3, 0xbd, 0xb2, 0xdf, 0x38, 0x16, 0xe9, -0x2b, 0x8d, 0x84, 0x54, 0xb7, 0x72, 0xbd, 0x1d, 0xbf, 0x53, 0xd8, 0x36, 0x38, 0x23, 0xa9, 0xfd, -0xbe, 0xe1, 0xdb, 0x96, 0x21, 0x26, 0x93, 0xf9, 0x24, 0xcc, 0x50, 0x27, 0xb7, 0xc7, 0x6e, 0x8b, -0x81, 0xb1, 0x75, 0x43, 0x46, 0xda, 0xbe, 0x0c, 0x8c, 0xbd, 0x15, 0xbe, 0x47, 0xeb, 0xa4, 0x36, -0x4a, 0xd3, 0x73, 0xe0, 0x2f, 0xd9, 0x2b, 0x87, 0x5a, 0x37, 0xd4, 0x5d, 0x3f, 0x16, 0xed, 0x2d, -0xf5, 0x3d, 0x80, 0xbd, 0x90, 0xdb, 0xa3, 0xb7, 0x45, 0xf5, 0x13, 0x34, 0x7c, 0xf3, 0x12, 0xe6, -0xec, 0x2d, 0x6d, 0x6b, 0xf0, 0xad, 0xa5, 0x77, 0xfa, 0x77, 0xfc, 0xae, 0xe5, 0x3d, 0xc3, 0x25, -0xc6, 0x39, 0xcf, 0x22, 0xb4, 0x73, 0x5c, 0x7b, 0x67, 0x1f, 0x50, 0xbc, 0x76, 0x47, 0x2d, 0x72, -0x9b, 0x65, 0x6e, 0x1c, 0x8b, 0xb5, 0xb5, 0x0d, 0x88, 0x03, 0xe2, 0x7c, 0x8e, 0xf7, 0x6c, 0xf6, -0xb4, 0x71, 0xb8, 0x08, 0xcc, 0xda, 0xb3, 0x7c, 0xad, 0xd4, 0x5e, 0xe0, 0x6b, 0x91, 0xb6, 0x83, -0xaf, 0x33, 0x10, 0x1b, 0xb5, 0x20, 0x26, 0xa2, 0xfb, 0x0a, 0x6d, 0x2f, 0x9f, 0x40, 0xee, 0xe7, -0xa7, 0xeb, 0xb4, 0x37, 0x7c, 0xe4, 0x19, 0x7d, 0x82, 0x9f, 0x6c, 0xda, 0x41, 0xc4, 0x3d, 0x95, -0x74, 0x56, 0x89, 0x4f, 0x65, 0xda, 0x51, 0xcc, 0x77, 0x8c, 0x66, 0xd0, 0x16, 0x84, 0xe2, 0xd1, -0x1f, 0xa4, 0x4c, 0xa4, 0x1d, 0x8a, 0x69, 0xa3, 0xb8, 0x9a, 0x91, 0xb7, 0x42, 0xc9, 0xa7, 0x8d, -0xe4, 0x0e, 0xda, 0xb1, 0xf0, 0xf5, 0x41, 0x85, 0x97, 0x34, 0x9d, 0x0f, 0x3a, 0xf5, 0x88, 0x62, -0xb0, 0x91, 0xfc, 0xcb, 0xf3, 0x39, 0xf7, 0xb3, 0x8c, 0xc7, 0x6c, 0xc9, 0xb1, 0xcf, 0x3a, 0x9b, -0x4e, 0xc1, 0xad, 0xbf, 0xfb, 0x8d, 0x6b, 0xd6, 0xe1, 0x1f, 0xdc, 0x32, 0x1c, 0x67, 0x9c, 0x96, -0xb2, 0x88, 0x93, 0xe9, 0x8b, 0x93, 0xc8, 0x3d, 0x2e, 0xe2, 0xfc, 0x97, 0xc4, 0x79, 0x27, 0x14, -0xe3, 0x17, 0x16, 0xe7, 0x3c, 0xed, 0x52, 0xfb, 0xda, 0xaa, 0x06, 0xed, 0x52, 0xd3, 0x19, 0xed, -0x34, 0x9d, 0xc3, 0xd2, 0xda, 0x29, 0xe8, 0xb5, 0xac, 0x9d, 0x46, 0xa9, 0xaa, 0x74, 0x64, 0x2d, -0xd6, 0x77, 0x96, 0x74, 0x14, 0xbd, 0xfe, 0x38, 0xf2, 0x18, 0x17, 0x5f, 0x56, 0xf0, 0x4b, 0xb6, -0x89, 0x64, 0xdd, 0x83, 0xca, 0x4a, 0x6d, 0xa3, 0xee, 0x69, 0xa3, 0x33, 0xe7, 0xaf, 0x68, 0x1e, -0x58, 0x2a, 0xaa, 0xe0, 0x0e, 0x57, 0x15, 0xd2, 0x6e, 0xe4, 0x98, 0xf9, 0x4c, 0x3d, 0x49, 0x9e, -0x33, 0x8d, 0x1f, 0x98, 0x0c, 0x60, 0x26, 0x2f, 0x44, 0xd1, 0x46, 0xa6, 0x87, 0x37, 0x12, 0xb7, -0x5a, 0x5f, 0x05, 0x17, 0xe2, 0xbf, 0xae, 0xad, 0x82, 0x8b, 0xf1, 0xbd, 0x0b, 0xce, 0x68, 0x8b, -0xb1, 0x35, 0x9d, 0x04, 0xe9, 0xd3, 0xbc, 0x5c, 0x9a, 0xb5, 0xc5, 0x7a, 0xbb, 0x96, 0x66, 0xa4, -0x91, 0x07, 0xb1, 0x55, 0x5d, 0xfc, 0x6c, 0xd0, 0x7a, 0x07, 0xa5, 0xcd, 0xeb, 0xaa, 0xc2, 0x5a, -0x86, 0x9f, 0x8b, 0xb5, 0xe5, 0x55, 0x4d, 0xda, 0x4a, 0x7d, 0x86, 0x86, 0xaa, 0xa2, 0xda, 0xb0, -0xee, 0xfb, 0x72, 0x1d, 0xcf, 0xd0, 0x06, 0xdd, 0xf7, 0xe5, 0xc6, 0x41, 0x1b, 0x7e, 0x33, 0xc2, -0x4f, 0x37, 0x6a, 0x5b, 0xf0, 0xcd, 0x13, 0x7c, 0x5f, 0xae, 0x3d, 0x45, 0x91, 0x07, 0xf4, 0x79, -0x7c, 0xd6, 0xd7, 0x88, 0xf3, 0xf8, 0x1c, 0xd2, 0x87, 0x1d, 0xd8, 0xaa, 0x5a, 0xa6, 0x0f, 0x5b, -0x75, 0xfa, 0xb0, 0x03, 0xeb, 0xd9, 0xa9, 0xd3, 0x88, 0x97, 0xb1, 0x9e, 0x71, 0x9d, 0x52, 0xed, -0x65, 0x1d, 0xc2, 0xfd, 0x3a, 0xa5, 0xa2, 0xd8, 0x49, 0x13, 0x3a, 0x0d, 0x3a, 0x58, 0xd5, 0x23, -0xb7, 0x31, 0x1c, 0x10, 0xd5, 0x3a, 0x4a, 0x63, 0xc3, 0xd6, 0x3c, 0xd3, 0xa9, 0xd6, 0x31, 0xa4, -0x5a, 0xc7, 0x48, 0x8b, 0x53, 0xd0, 0xa9, 0xd8, 0xe4, 0xa7, 0x2b, 0x93, 0x9b, 0x5d, 0x82, 0x52, -0x39, 0xb0, 0x64, 0x95, 0x7c, 0xa4, 0xe9, 0x73, 0xbf, 0xf9, 0xd6, 0x10, 0x3c, 0xcb, 0xf3, 0x6d, -0x15, 0xfa, 0x7a, 0x9f, 0x9a, 0x5b, 0x37, 0x45, 0xa2, 0x14, 0x67, 0x31, 0xfe, 0x80, 0x2f, 0x86, -0xa5, 0x75, 0xb2, 0xde, 0x0d, 0x8d, 0x73, 0x49, 0x4c, 0x8c, 0x6d, 0xeb, 0x55, 0x1e, 0x44, 0xb3, -0x63, 0x5b, 0xa4, 0x2d, 0xd5, 0xc7, 0xb0, 0xb7, 0xaa, 0x4f, 0xeb, 0xd4, 0x47, 0x74, 0x06, 0x8e, -0x28, 0x3d, 0xad, 0xd4, 0xc7, 0x71, 0x88, 0xc7, 0x71, 0x58, 0x1f, 0xc7, 0x75, 0x83, 0x21, 0x1c, -0xc7, 0x0d, 0xfa, 0x2a, 0x20, 0xe8, 0x1c, 0xd1, 0xc7, 0x6e, 0x0b, 0x8f, 0xdd, 0x13, 0x3a, 0xd4, -0xf3, 0xa8, 0x12, 0x4c, 0x7a, 0xab, 0x10, 0xbe, 0x51, 0x56, 0x42, 0x5a, 0x89, 0xb3, 0x8c, 0x2d, -0xbe, 0xc8, 0x76, 0x4f, 0x8e, 0x74, 0xbf, 0xde, 0x37, 0x73, 0x16, 0xae, 0x2f, 0x0c, 0x63, 0xef, -0x9e, 0xca, 0x41, 0xf3, 0x0c, 0x4c, 0x41, 0xee, 0x56, 0x6d, 0xbc, 0x12, 0x9a, 0x2f, 0xd4, 0x93, -0xb4, 0xf1, 0xb7, 0x67, 0xb4, 0x4b, 0xfa, 0x3c, 0xd9, 0x72, 0xf3, 0x44, 0xf0, 0xb2, 0x83, 0x3c, -0x07, 0xb1, 0x56, 0x6c, 0x15, 0xd2, 0xca, 0xb1, 0x4f, 0x26, 0x19, 0x7a, 0x8d, 0x91, 0x28, 0x7d, -0xc5, 0xd4, 0xaa, 0x3c, 0x65, 0xcd, 0x14, 0x8f, 0x3f, 0x0f, 0xe5, 0x22, 0x6e, 0x88, 0x64, 0xfb, -0x3f, 0x34, 0x52, 0xea, 0x7f, 0x6c, 0xa4, 0x68, 0x37, 0x97, 0xbd, 0x53, 0x8f, 0x5d, 0x78, 0x43, -0x1f, 0xab, 0xee, 0x2b, 0xc7, 0xea, 0x93, 0x0e, 0x1c, 0xab, 0x67, 0x0a, 0xc7, 0xea, 0x13, 0xc0, -0xb1, 0x8a, 0x5c, 0x39, 0x56, 0x9f, 0x94, 0x7c, 0xa5, 0x71, 0x7a, 0x26, 0x39, 0x76, 0xfe, 0x80, -0x58, 0xe5, 0x91, 0x28, 0xd9, 0xa3, 0x4a, 0xd7, 0xa5, 0x9d, 0x1c, 0x89, 0xb9, 0x18, 0x69, 0xad, -0xad, 0x6d, 0x98, 0xbd, 0xe1, 0x7f, 0x8d, 0xac, 0x83, 0x7d, 0x8d, 0x5e, 0x13, 0xfb, 0xcc, 0x79, -0xf6, 0x6f, 0xc7, 0x39, 0xe2, 0x32, 0xae, 0x6b, 0xcc, 0x6d, 0xe7, 0xdc, 0x06, 0x2f, 0xe6, 0xc6, -0x6b, 0xc9, 0xb4, 0x9c, 0xab, 0x72, 0x39, 0x8b, 0x73, 0xe5, 0xce, 0xa4, 0x72, 0xef, 0x11, 0xe5, -0x7e, 0x7d, 0x5a, 0xee, 0x96, 0x5c, 0x6e, 0x43, 0x2e, 0x37, 0xc5, 0xa9, 0xb1, 0x75, 0x8a, 0xdc, -0x65, 0xd3, 0x72, 0xcf, 0xc9, 0xe5, 0x96, 0x73, 0xb9, 0x8d, 0x94, 0xbb, 0x43, 0xe4, 0x2e, 0x2d, -0xcc, 0xfd, 0xd9, 0xd9, 0x5c, 0xee, 0x22, 0xcc, 0xed, 0xe0, 0xdc, 0x33, 0x28, 0xf7, 0x22, 0x91, -0xfb, 0x86, 0x69, 0xb9, 0xf7, 0x64, 0xf3, 0xd2, 0x7a, 0x82, 0x73, 0xd5, 0xb3, 0x8d, 0x0f, 0x6a, -0x5a, 0x0e, 0x5f, 0xcd, 0x98, 0x46, 0x33, 0x04, 0x9c, 0x48, 0x3a, 0x9c, 0x14, 0x21, 0x9c, 0x64, -0xb1, 0x53, 0x1e, 0x42, 0x08, 0x3f, 0xd1, 0xd3, 0x17, 0x60, 0x28, 0xf2, 0x98, 0x0e, 0xc3, 0x3a, -0x94, 0x54, 0x14, 0xe0, 0xa8, 0xeb, 0xb4, 0xa7, 0x18, 0x62, 0x9e, 0xd1, 0x21, 0xe6, 0x59, 0x41, -0x13, 0xae, 0x82, 0x18, 0xf2, 0xc6, 0xf4, 0xa4, 0x5b, 0x40, 0x4c, 0x48, 0x87, 0x98, 0x19, 0x59, -0x88, 0xf9, 0xa3, 0x1d, 0x21, 0xe6, 0xb9, 0x1c, 0xc4, 0x90, 0x9f, 0x9e, 0x37, 0x11, 0x62, 0xca, -0xaf, 0x84, 0x98, 0x73, 0xc7, 0x78, 0x87, 0x5d, 0x87, 0x03, 0xee, 0xf9, 0x46, 0x1d, 0x7e, 0xe2, -0x0c, 0x3f, 0xf9, 0x5e, 0x4b, 0x3a, 0x65, 0x2c, 0x62, 0x3e, 0xbd, 0x08, 0x8c, 0xcc, 0xa1, 0x53, -0x3f, 0xdf, 0xe0, 0x7e, 0x4e, 0xe8, 0xfd, 0x3c, 0xc8, 0xfd, 0x3c, 0xac, 0xf7, 0xf3, 0xe8, 0xa0, -0x82, 0xeb, 0xe2, 0x98, 0xde, 0xcb, 0xf7, 0x29, 0xea, 0xb2, 0xde, 0xcb, 0xd3, 0xdc, 0xcb, 0xb3, -0x85, 0x70, 0x7e, 0xae, 0x17, 0x5b, 0x4d, 0x56, 0x04, 0xe5, 0xe4, 0xf1, 0x62, 0x7f, 0x88, 0x70, -0xa8, 0x5d, 0xe8, 0x35, 0xc7, 0x91, 0xdb, 0x5b, 0xb5, 0xe0, 0x14, 0xec, 0x77, 0xcd, 0x32, 0xae, -0xc3, 0x91, 0x7b, 0x4a, 0x5d, 0xaa, 0x38, 0xd2, 0x2a, 0xfb, 0x13, 0x9b, 0xc4, 0x96, 0x35, 0x6b, -0xbb, 0xb0, 0xec, 0x3d, 0x99, 0x22, 0xd2, 0x0b, 0x67, 0x4c, 0xfc, 0x66, 0x55, 0x8f, 0x64, 0xd1, -0x5e, 0xa7, 0x32, 0x0a, 0xfc, 0xa3, 0x91, 0x97, 0xb1, 0xb1, 0x9c, 0xe7, 0xb3, 0xd2, 0x02, 0xad, -0xaf, 0x1d, 0x39, 0x7e, 0xb3, 0xd9, 0x8e, 0x32, 0x3f, 0x73, 0x89, 0x87, 0x76, 0x6e, 0x4c, 0x3d, -0x81, 0xfc, 0x8c, 0x45, 0x78, 0x5b, 0x3d, 0x4f, 0x9e, 0xe1, 0x43, 0xac, 0x09, 0xe3, 0x13, 0x5c, -0xbd, 0x4f, 0x71, 0x7a, 0xc1, 0xb6, 0xdc, 0x60, 0x0f, 0xae, 0xae, 0xfc, 0xfb, 0x57, 0x63, 0x22, -0xd2, 0x30, 0xca, 0x83, 0xd2, 0x63, 0x5e, 0x89, 0x22, 0x8d, 0x0d, 0x42, 0xa3, 0xb4, 0x67, 0xed, -0xcf, 0x56, 0x1f, 0xfb, 0x41, 0xfb, 0x9a, 0xd4, 0x07, 0x99, 0x9b, 0xc6, 0x57, 0x23, 0xaf, 0x22, -0xec, 0x59, 0xfd, 0xba, 0x3c, 0xe0, 0x40, 0x09, 0xcb, 0x4e, 0x9a, 0xe6, 0x69, 0x13, 0xfe, 0xca, -0x29, 0x55, 0xb5, 0xc4, 0x4e, 0xc1, 0x61, 0xf2, 0x44, 0x0f, 0xc7, 0x54, 0x73, 0xec, 0x94, 0x74, -0x0f, 0xde, 0xcb, 0xd2, 0x12, 0xf6, 0xf4, 0xf7, 0x48, 0xe7, 0x26, 0x27, 0xdc, 0xd2, 0x0c, 0x66, -0xd1, 0xc2, 0xa9, 0x25, 0x2e, 0x50, 0x8a, 0x26, 0xd6, 0x1e, 0x1a, 0x3e, 0xb4, 0xf6, 0xd0, 0x5a, -0xa5, 0x21, 0x7c, 0xa2, 0x38, 0x10, 0x3e, 0xeb, 0x82, 0xbc, 0xed, 0xbb, 0x66, 0xa6, 0xbd, 0x4d, -0x6f, 0x94, 0x76, 0x34, 0x5b, 0x2a, 0x55, 0x38, 0xbb, 0x83, 0xae, 0xdc, 0x02, 0x19, 0xdb, 0x5e, -0x4a, 0x5a, 0x2c, 0xd8, 0x82, 0x8a, 0x82, 0x16, 0xd4, 0xa8, 0x26, 0xe3, 0x5a, 0xfc, 0xfa, 0xb0, -0x6a, 0xa4, 0x2b, 0xf9, 0x90, 0xcf, 0xd6, 0x85, 0xb3, 0x91, 0x2d, 0xd7, 0x80, 0xe5, 0x96, 0x63, -0xb9, 0xa5, 0x28, 0xf1, 0x51, 0xb9, 0x8b, 0xe9, 0xca, 0xe5, 0xda, 0x9d, 0x5e, 0xf6, 0x64, 0xa1, -0xa0, 0xbc, 0x31, 0x87, 0xf8, 0x94, 0xa9, 0xc3, 0x9d, 0x9b, 0x1c, 0x80, 0xa5, 0x24, 0xa8, 0x14, -0xbb, 0x7c, 0x60, 0xcd, 0xc1, 0xd5, 0x07, 0xd7, 0x1c, 0x5c, 0x43, 0xfb, 0xa3, 0xc5, 0x01, 0x65, -0xd0, 0x05, 0xaa, 0xf5, 0xa5, 0xe7, 0xc0, 0x9c, 0x32, 0xee, 0xec, 0x02, 0x13, 0x4a, 0x13, 0x61, -0xbb, 0x2d, 0xf5, 0x91, 0xf0, 0x46, 0x8e, 0x18, 0x8b, 0x76, 0x56, 0xa6, 0x5a, 0x37, 0xf9, 0xe4, -0x96, 0xf7, 0xa2, 0x05, 0x5e, 0x83, 0xf8, 0x84, 0xd6, 0xcb, 0x1e, 0x80, 0x7b, 0xdd, 0x16, 0xe3, -0x03, 0xd8, 0xae, 0x0b, 0x4a, 0x2c, 0xc7, 0xef, 0xdf, 0x13, 0x3e, 0x2d, 0x39, 0x7e, 0x76, 0x5a, -0xf2, 0x20, 0x75, 0xfc, 0x91, 0xa3, 0x57, 0x72, 0x44, 0x22, 0x1e, 0x83, 0xbc, 0x1e, 0xa4, 0x59, -0xaf, 0x54, 0x07, 0xe1, 0xdf, 0x4c, 0x9d, 0x2a, 0x48, 0xeb, 0x12, 0xeb, 0xd3, 0x89, 0xc4, 0x36, -0xb0, 0xa7, 0xa3, 0x6c, 0xdb, 0x71, 0xc1, 0x6b, 0xe1, 0x7d, 0xe2, 0xd9, 0xfa, 0x39, 0x95, 0x25, -0x11, 0x4a, 0xdb, 0x95, 0x3e, 0xb9, 0x66, 0x54, 0xe8, 0xf6, 0xb9, 0xc0, 0xcc, 0x1a, 0xb8, 0x6e, -0xb0, 0xb3, 0x56, 0xe1, 0x08, 0x47, 0x7a, 0xc3, 0x56, 0xf2, 0xd7, 0x67, 0x15, 0xc3, 0xf8, 0x36, -0xb6, 0xa4, 0x73, 0x27, 0x22, 0x48, 0x69, 0xc8, 0x8b, 0x07, 0x79, 0xf3, 0xdb, 0x99, 0xf1, 0x4c, -0x97, 0xda, 0x75, 0x5f, 0xe2, 0x86, 0x5b, 0x87, 0x4c, 0x64, 0x6c, 0x5b, 0x4a, 0xfe, 0xb2, 0x6f, -0x5d, 0x08, 0x8e, 0x5b, 0x71, 0x96, 0x6e, 0x1d, 0x80, 0x2e, 0x50, 0x6e, 0xed, 0x86, 0x39, 0xe0, -0xc2, 0x79, 0xf7, 0x40, 0x89, 0xf8, 0x2e, 0xe1, 0x86, 0xca, 0xde, 0x7b, 0xb0, 0x96, 0x94, 0x53, -0x97, 0xf3, 0xd3, 0x11, 0x5c, 0x2d, 0x56, 0x94, 0xc4, 0xac, 0xf6, 0x66, 0x1c, 0xd7, 0xcd, 0x4a, -0x6e, 0x6e, 0xa6, 0x86, 0x0b, 0xee, 0x37, 0xda, 0x9b, 0x33, 0x9e, 0x5c, 0xdd, 0xd5, 0xf9, 0x37, -0x97, 0x55, 0xb5, 0x82, 0xde, 0x51, 0xaa, 0x6a, 0xbb, 0xb5, 0x17, 0xb6, 0xe8, 0xa5, 0x85, 0xa8, -0x34, 0x75, 0x69, 0xce, 0x8e, 0xa4, 0xbc, 0xc4, 0x0d, 0x4e, 0xf2, 0x01, 0x9d, 0x91, 0xfe, 0xed, -0xb9, 0xfc, 0x89, 0x8e, 0x7a, 0x14, 0xfb, 0x57, 0x96, 0x0e, 0x7a, 0x45, 0x2f, 0x58, 0xcb, 0xd3, -0xbb, 0x10, 0x5a, 0x11, 0x26, 0xe2, 0x5e, 0x6a, 0x7f, 0xc7, 0x7c, 0x6a, 0x7f, 0x7d, 0xf8, 0x63, -0x94, 0x03, 0xe3, 0xd0, 0x19, 0x1f, 0x60, 0x4c, 0xea, 0x86, 0x32, 0x1a, 0x3b, 0x69, 0xaf, 0xf0, -0xed, 0x9f, 0xd8, 0x9c, 0x82, 0xa9, 0x55, 0x05, 0xf3, 0xb6, 0x2f, 0xef, 0xe3, 0xc6, 0xeb, 0x05, -0x92, 0xfa, 0x70, 0x85, 0xd1, 0x3f, 0xc2, 0x91, 0x51, 0x68, 0x33, 0x22, 0x04, 0x9c, 0xa0, 0x73, -0x30, 0xd7, 0x02, 0xdd, 0x46, 0x77, 0xb1, 0x93, 0xe2, 0x7a, 0x13, 0x2e, 0xd0, 0xa0, 0x8c, 0xb4, -0x0a, 0x38, 0x32, 0xc7, 0xff, 0x58, 0x34, 0x1e, 0x05, 0x94, 0x2f, 0x2b, 0x1c, 0x64, 0x23, 0x4f, -0xf6, 0xfa, 0x07, 0xda, 0x36, 0x60, 0x4b, 0x14, 0xfd, 0xd9, 0x38, 0x72, 0x12, 0x64, 0x4e, 0x71, -0xa0, 0x7c, 0x5a, 0x89, 0x72, 0x69, 0x1b, 0xb8, 0x1c, 0xcb, 0x74, 0xdc, 0x50, 0x5e, 0x20, 0x8b, -0x96, 0x4d, 0xd7, 0xe4, 0x54, 0x7a, 0xe4, 0x84, 0x88, 0xaa, 0x80, 0xed, 0x3d, 0x79, 0x6b, 0x44, -0x4e, 0x44, 0x7a, 0xe4, 0xf8, 0xdc, 0x08, 0xc9, 0x3e, 0x74, 0xc2, 0x43, 0x18, 0x4c, 0xd7, 0xb9, -0x9c, 0xb6, 0x27, 0xa5, 0xbd, 0xa0, 0xef, 0x2e, 0xd1, 0xfe, 0x6e, 0x65, 0x76, 0x3d, 0x70, 0x5c, -0xcb, 0x60, 0xf3, 0x67, 0xa4, 0x19, 0xa3, 0xd6, 0x2a, 0x55, 0x72, 0x74, 0x74, 0x9b, 0x71, 0x67, -0xca, 0xe3, 0x73, 0x43, 0xe3, 0x48, 0x0f, 0x98, 0xee, 0x20, 0x9b, 0x78, 0x37, 0x44, 0xf1, 0x9e, -0x22, 0xae, 0xd9, 0x5c, 0x3d, 0xe4, 0x07, 0x09, 0x65, 0xc5, 0xc7, 0x5d, 0x1d, 0x9d, 0x9b, 0x38, -0x02, 0xe9, 0x39, 0x3d, 0xc2, 0xe5, 0x1e, 0x25, 0xc2, 0x65, 0x2e, 0xce, 0xee, 0x14, 0xe8, 0x3b, -0x5f, 0x26, 0x51, 0xff, 0xa5, 0x15, 0x57, 0xee, 0x9d, 0x5d, 0x5a, 0x23, 0x5a, 0x04, 0x75, 0x39, -0xdf, 0x1d, 0x09, 0x3a, 0x57, 0xbb, 0xb4, 0x81, 0x75, 0x4f, 0x23, 0x3c, 0x12, 0x6e, 0x3d, 0xf2, -0x53, 0x59, 0x76, 0x67, 0xef, 0x4e, 0x8e, 0x00, 0x75, 0xa7, 0x1e, 0x01, 0xea, 0x4e, 0x8e, 0x00, -0x75, 0x27, 0x47, 0x80, 0xf2, 0xce, 0x8a, 0xf7, 0x82, 0x0b, 0xff, 0x1d, 0x88, 0xab, 0x64, 0xde, -0x05, 0xb1, 0x08, 0x9d, 0x6d, 0xf2, 0x39, 0xe6, 0x28, 0xf0, 0x39, 0x86, 0x38, 0xc2, 0x41, 0xba, -0xfa, 0x8a, 0x8c, 0x6b, 0xa6, 0x2d, 0xdd, 0x89, 0xb0, 0xb4, 0x28, 0xdd, 0x46, 0xfa, 0x7d, 0xf8, -0x65, 0x46, 0x09, 0xf1, 0xca, 0x8a, 0xe0, 0x5c, 0x3e, 0x69, 0x5f, 0x06, 0xd6, 0x9b, 0x23, 0x50, -0x8a, 0xb2, 0x60, 0xf9, 0x6d, 0xcb, 0x28, 0x16, 0x95, 0x65, 0x0d, 0xd9, 0xa6, 0xa7, 0xac, 0x37, -0x37, 0x40, 0x6d, 0xc3, 0x09, 0xa8, 0xbd, 0x79, 0x01, 0x54, 0xaa, 0x06, 0x7c, 0xa2, 0xa8, 0xdf, -0x66, 0x92, 0xa9, 0x34, 0x23, 0x6b, 0x67, 0xb2, 0xcd, 0x9e, 0xf0, 0x35, 0x96, 0x95, 0xf2, 0xb1, -0x5e, 0x8f, 0xdb, 0x0b, 0x3e, 0x6c, 0x43, 0xc0, 0x4d, 0x5e, 0x58, 0xe6, 0x41, 0xa7, 0x52, 0x34, -0xfe, 0x02, 0xb6, 0x01, 0x24, 0x39, 0xf1, 0x02, 0xb6, 0x02, 0x60, 0x52, 0x78, 0x22, 0x9a, 0x3a, -0xe1, 0x10, 0xed, 0x00, 0x38, 0xa1, 0xf4, 0xc1, 0x93, 0x08, 0x65, 0xd6, 0x5b, 0x1a, 0xa0, 0xf4, -0xf6, 0x18, 0x94, 0xdf, 0xde, 0xc3, 0x2d, 0x59, 0x2b, 0x5a, 0x72, 0x4b, 0x14, 0x6a, 0xc3, 0x27, -0xa1, 0x96, 0x4e, 0x6e, 0x54, 0x03, 0x3e, 0x55, 0x26, 0x9e, 0x27, 0xcc, 0x03, 0x4f, 0xd3, 0xb9, -0x04, 0x3c, 0x48, 0x9e, 0xfe, 0x10, 0x8f, 0x8c, 0x17, 0xec, 0xb1, 0x05, 0xe9, 0x74, 0x26, 0x3d, -0xa4, 0xef, 0x4c, 0x81, 0xa0, 0xb4, 0xb8, 0xfe, 0x02, 0xf6, 0x1e, 0xc9, 0xe3, 0xfb, 0x07, 0xe4, -0x82, 0xf4, 0x7b, 0x94, 0x74, 0xcd, 0x20, 0x67, 0x9f, 0x6e, 0x5e, 0x86, 0xe3, 0x6c, 0x28, 0x78, -0xb2, 0xe5, 0x73, 0xe2, 0x53, 0x29, 0x58, 0x0a, 0x9e, 0xca, 0xc1, 0xe6, 0x74, 0x73, 0x5c, 0x17, -0x0f, 0xce, 0x5b, 0x25, 0xd3, 0xb4, 0x9d, 0x4a, 0x03, 0xf9, 0xf0, 0x67, 0xcb, 0xb3, 0xd9, 0xec, -0x37, 0x66, 0xec, 0xf2, 0xe1, 0xc2, 0xd1, 0xe2, 0x9d, 0x07, 0xb1, 0xc7, 0xc4, 0xfa, 0x9d, 0x58, -0xde, 0x9c, 0x51, 0xa1, 0x97, 0xe9, 0x12, 0x70, 0x93, 0xd3, 0xa8, 0xb4, 0x65, 0xd7, 0x48, 0xde, -0xc3, 0x9c, 0xae, 0x29, 0x49, 0x10, 0xae, 0xe0, 0xf8, 0xd2, 0x1c, 0x7b, 0x68, 0x17, 0x9d, 0x21, -0xc9, 0x41, 0xe7, 0x0b, 0xbd, 0x73, 0x84, 0x3f, 0xc6, 0x92, 0x20, 0x28, 0xdb, 0x87, 0xd3, 0xa5, -0x78, 0xb5, 0x6d, 0x1f, 0xfe, 0xee, 0x2b, 0xf1, 0xb5, 0xf1, 0x57, 0xa2, 0x6b, 0x55, 0xe3, 0x0a, -0x5c, 0x63, 0x2b, 0xa4, 0x44, 0x43, 0x9a, 0xb0, 0x51, 0x75, 0xf8, 0x04, 0x1c, 0x13, 0xfb, 0x52, -0x0b, 0x4e, 0x49, 0x7e, 0xa5, 0x25, 0xbf, 0x2f, 0x85, 0x38, 0xc1, 0x85, 0x3d, 0x20, 0xaa, 0xd8, -0xe6, 0x0c, 0x15, 0xbc, 0xe1, 0x38, 0x10, 0x57, 0x7d, 0xbf, 0x42, 0x99, 0x45, 0xfa, 0xd0, 0x6c, -0x3d, 0x60, 0x60, 0x8f, 0x25, 0x0f, 0xdd, 0x3c, 0x40, 0x63, 0x89, 0xbf, 0x38, 0x86, 0x91, 0xe7, -0xc0, 0x72, 0xfd, 0x32, 0x29, 0x01, 0x95, 0xf8, 0xdb, 0x0c, 0xdf, 0x6c, 0xf8, 0x50, 0xea, 0x42, -0xb8, 0x9a, 0x93, 0x5f, 0xaf, 0xce, 0xbc, 0x77, 0xfd, 0xc5, 0x38, 0x9a, 0x7c, 0xc6, 0x2a, 0xa2, -0xae, 0x71, 0xec, 0x2e, 0xab, 0xd2, 0xa6, 0x74, 0x89, 0x3d, 0x9e, 0x54, 0xb5, 0x1a, 0xa4, 0x48, -0x5d, 0x29, 0x6b, 0xa1, 0xff, 0x49, 0xa4, 0x6b, 0xe4, 0x45, 0xc9, 0x05, 0x75, 0xaa, 0x42, 0xe7, -0x04, 0x3c, 0xa6, 0x66, 0x2c, 0x49, 0xc1, 0x34, 0x8b, 0x6a, 0xd1, 0xdf, 0xfa, 0x49, 0xf6, 0x46, -0xd8, 0xb0, 0x2c, 0x38, 0x03, 0xa3, 0x76, 0xe1, 0x9b, 0xbf, 0x8e, 0x6c, 0x03, 0xaa, 0x5a, 0x61, -0x94, 0xaf, 0x64, 0xd9, 0xb1, 0x83, 0x66, 0xc5, 0x4e, 0xfe, 0xee, 0x4c, 0x9c, 0x63, 0x17, 0xbd, -0xb9, 0xa5, 0x15, 0x6c, 0xb7, 0xb4, 0xe0, 0xfc, 0x74, 0x23, 0x27, 0x2c, 0x76, 0xed, 0x69, 0xff, -0x7e, 0x56, 0xfe, 0x8c, 0x54, 0xe0, 0x05, 0xde, 0x99, 0xc5, 0xb5, 0xc8, 0xfe, 0xc3, 0x7a, 0x84, -0x46, 0x0e, 0xd8, 0x52, 0xdc, 0x3e, 0x6e, 0xbf, 0x45, 0x69, 0x23, 0xad, 0x24, 0xd2, 0xf0, 0x50, -0x4d, 0x78, 0x67, 0xc5, 0x3b, 0xcb, 0xd6, 0xe9, 0xa5, 0x5a, 0x44, 0xc4, 0xc3, 0xad, 0xa1, 0x3b, -0x1a, 0xc0, 0xb6, 0xa5, 0x1b, 0x39, 0xf5, 0x2b, 0xdf, 0x1d, 0xd9, 0x12, 0xba, 0x23, 0xc2, 0xe7, -0xf0, 0x4a, 0xcb, 0x7b, 0x95, 0x96, 0xec, 0x7e, 0xe4, 0xfc, 0x7a, 0x84, 0xa1, 0x56, 0xac, 0xbf, -0xc3, 0x25, 0xf4, 0xac, 0x96, 0xe2, 0x9a, 0xec, 0xaa, 0x2d, 0xe2, 0x7d, 0xc2, 0x85, 0x10, 0x5c, -0x2e, 0x62, 0x4f, 0x83, 0x94, 0x41, 0x3c, 0x4d, 0xda, 0x1f, 0xd5, 0xd8, 0xc6, 0x7a, 0xbc, 0x3a, -0x13, 0x6b, 0x90, 0xaa, 0xf6, 0x3b, 0xfa, 0x25, 0xb2, 0xd9, 0x2a, 0x67, 0x3f, 0xf0, 0x16, 0x4c, -0x31, 0x27, 0x06, 0xa0, 0x26, 0x5d, 0x4f, 0xd6, 0x1a, 0xbd, 0x00, 0x97, 0xc4, 0x68, 0xaf, 0xb0, -0xbd, 0x34, 0x9c, 0x76, 0xeb, 0x30, 0x66, 0x2f, 0x0b, 0x42, 0x08, 0x9f, 0x2b, 0xf0, 0xb9, 0x15, -0x9f, 0x4b, 0xf0, 0x59, 0xc5, 0x67, 0x33, 0x47, 0x65, 0xa3, 0x68, 0x92, 0xfb, 0xbc, 0xc5, 0x5e, -0xf2, 0x58, 0x4d, 0xbe, 0xb8, 0xeb, 0x85, 0x9e, 0xe2, 0xd0, 0x28, 0x51, 0x2c, 0xb2, 0x04, 0x12, -0xd6, 0x20, 0x7e, 0x2f, 0xdc, 0xbf, 0x99, 0xac, 0xf0, 0xbc, 0xb0, 0x66, 0xa4, 0x0f, 0x28, 0x86, -0x94, 0xc2, 0x1a, 0x61, 0xa6, 0xcd, 0x74, 0xea, 0xdd, 0x03, 0x46, 0xff, 0x00, 0x44, 0xb7, 0x2f, -0xe8, 0x5b, 0xe9, 0x1b, 0x80, 0xc6, 0xd1, 0x78, 0x5f, 0xa6, 0x5e, 0x8a, 0xff, 0x3a, 0x88, 0xa2, -0x46, 0x7c, 0x5f, 0xed, 0x82, 0xdf, 0xef, 0xfb, 0xd5, 0xaf, 0x07, 0xee, 0xad, 0x07, 0x4e, 0x49, -0x60, 0x4a, 0x9c, 0x53, 0x5a, 0x86, 0x20, 0x88, 0xed, 0xbe, 0xff, 0xba, 0xc6, 0x19, 0x6f, 0xae, -0x5f, 0xa1, 0xbc, 0xf4, 0x60, 0xca, 0x88, 0xbd, 0xac, 0x51, 0xfd, 0x2b, 0x66, 0xbc, 0xb1, 0x16, -0x5b, 0x59, 0xfc, 0xd2, 0xfa, 0xd4, 0xca, 0xcd, 0x0b, 0xe6, 0x87, 0x21, 0x34, 0x12, 0x9f, 0x1f, -0x82, 0x08, 0xb6, 0xaf, 0x17, 0xdb, 0x15, 0x14, 0xf6, 0x49, 0x97, 0xb6, 0xf2, 0x4e, 0xe8, 0x70, -0xda, 0xa0, 0xb6, 0x39, 0xcc, 0x8e, 0x36, 0xd5, 0xb6, 0xaa, 0xf4, 0xc8, 0xdf, 0x90, 0x17, 0x6d, -0x6f, 0x12, 0x7b, 0xd3, 0x02, 0xd5, 0x22, 0x3e, 0xfb, 0xd4, 0x41, 0x1c, 0x73, 0x3f, 0x8e, 0x37, -0xc7, 0x76, 0x4a, 0x59, 0x6a, 0x84, 0x2e, 0x9b, 0x89, 0x34, 0xbc, 0x57, 0xe0, 0xba, 0xff, 0xfb, -0x37, 0xff, 0xf6, 0x8d, 0x97, 0x44, 0xce, 0x2d, 0x2f, 0xeb, 0x57, 0x55, 0x76, 0x98, 0x73, 0x1e, -0xe7, 0x14, 0xde, 0x05, 0xba, 0x48, 0xb6, 0x34, 0x35, 0xf3, 0xa0, 0x22, 0x30, 0x0f, 0xe6, 0xe8, -0x96, 0xc5, 0x36, 0xfc, 0xb7, 0xb0, 0x85, 0xf3, 0x3c, 0x61, 0x7d, 0xf3, 0x7d, 0xf2, 0xfa, 0x7c, -0x91, 0xa3, 0xd6, 0x2c, 0xe8, 0x73, 0x93, 0xad, 0xec, 0x8e, 0x78, 0x9f, 0x3d, 0xd0, 0x50, 0x83, -0x92, 0x47, 0xc3, 0x1f, 0x47, 0xe0, 0xe7, 0xaf, 0x0f, 0x94, 0xfa, 0x23, 0x81, 0x3e, 0x6d, 0x2a, -0x7c, 0x6e, 0x18, 0x7e, 0xf6, 0xda, 0xbd, 0xc2, 0x43, 0x36, 0xe1, 0x1e, 0xb2, 0x76, 0x39, 0x91, -0xdd, 0x2f, 0x27, 0xe8, 0x74, 0x22, 0x25, 0x09, 0x78, 0x91, 0xfb, 0xd8, 0x13, 0x1c, 0x00, 0x7b, -0xf3, 0xa4, 0x36, 0xa4, 0x46, 0x10, 0x1a, 0x6c, 0x6a, 0x35, 0xc2, 0x46, 0xbd, 0xea, 0xe2, 0xa8, -0x0b, 0x0a, 0x42, 0x82, 0x04, 0x5e, 0x3a, 0x33, 0x23, 0xbc, 0xc5, 0x71, 0x37, 0xe9, 0x6c, 0xed, -0x71, 0xf6, 0x85, 0x15, 0x4a, 0xcd, 0xd1, 0xa3, 0xe6, 0x1c, 0xe0, 0x3e, 0x5b, 0x75, 0x5a, 0xb9, -0x93, 0x47, 0x62, 0xe7, 0xe3, 0xaf, 0x2b, 0x66, 0x9d, 0x5a, 0xe6, 0xac, 0xd6, 0xe8, 0xcc, 0x83, -0x57, 0xa7, 0x11, 0xd7, 0x17, 0xae, 0x00, 0xa2, 0x97, 0x78, 0x57, 0x8f, 0xdc, 0xb1, 0x8d, 0x35, -0xf8, 0x14, 0x8a, 0xb1, 0x98, 0x01, 0x75, 0x95, 0x52, 0x92, 0x4a, 0x28, 0x26, 0xb5, 0x51, 0x91, -0x7e, 0x31, 0x9e, 0x52, 0x94, 0x10, 0xdb, 0x4d, 0x5b, 0xc8, 0x03, 0x4d, 0x11, 0x58, 0x56, 0x13, -0x5b, 0xf4, 0xdd, 0x6c, 0xf4, 0x0c, 0x80, 0x1d, 0x76, 0x7a, 0x3f, 0x77, 0xfa, 0x7b, 0xf2, 0xf2, -0x66, 0xbf, 0x5e, 0x31, 0x25, 0x56, 0xa7, 0xc6, 0x12, 0xc3, 0xa9, 0x9d, 0x14, 0x07, 0xfb, 0x17, -0xfb, 0x53, 0x26, 0xb2, 0xaa, 0x83, 0x35, 0xaa, 0x72, 0x75, 0x89, 0x29, 0x59, 0x31, 0x29, 0xad, -0xbc, 0x4e, 0x0f, 0xa9, 0x1d, 0xf6, 0xd6, 0x0c, 0x10, 0x97, 0x96, 0x2a, 0x25, 0xff, 0x2e, 0x74, -0x02, 0x5b, 0xa4, 0xfb, 0x70, 0x49, 0xd5, 0xaa, 0x75, 0x57, 0xd7, 0x87, 0x5f, 0xcf, 0xb4, 0x7f, -0x87, 0xbf, 0x38, 0x8e, 0x75, 0xcc, 0x11, 0xb1, 0x04, 0x0a, 0xbf, 0x4b, 0x9b, 0xb0, 0x67, 0x46, -0xec, 0x95, 0xac, 0x98, 0x85, 0x9e, 0x09, 0xd4, 0x93, 0xbe, 0x3b, 0x7b, 0x77, 0x43, 0x1c, 0xe8, -0x22, 0x1c, 0x48, 0xfb, 0xe5, 0x61, 0x7b, 0x1f, 0x54, 0x27, 0xb6, 0xf4, 0x23, 0xd7, 0xe3, 0x1a, -0x4e, 0x6c, 0xa6, 0xab, 0x63, 0xb8, 0x0e, 0xe9, 0xd3, 0x3f, 0x1e, 0xec, 0x95, 0x5d, 0x7f, 0x83, -0x77, 0xd6, 0x7f, 0x3c, 0xd0, 0x2b, 0x3b, 0xe8, 0x8e, 0xbc, 0x46, 0x79, 0x3c, 0x21, 0x53, 0x35, -0xeb, 0x2f, 0x3a, 0x3c, 0x61, 0xa5, 0x1a, 0xaa, 0xf9, 0x19, 0xa4, 0xda, 0x74, 0x69, 0xfb, 0xdf, -0xfc, 0xe3, 0xdb, 0xbd, 0xb2, 0xf3, 0x6f, 0xfc, 0xf8, 0x4d, 0xfb, 0x43, 0x3f, 0x9f, 0xe8, 0xad, -0x51, 0xdd, 0xca, 0xd7, 0xec, 0xa5, 0xae, 0xd0, 0xef, 0x77, 0xff, 0xe3, 0x1b, 0xbd, 0xc6, 0xbf, -0xdb, 0xed, 0xfc, 0x1b, 0xd5, 0x98, 0x18, 0xee, 0x95, 0x23, 0x8f, 0x29, 0x36, 0x7b, 0x09, 0xe5, -0x73, 0x84, 0xde, 0xd9, 0xfd, 0xf3, 0xd7, 0x7b, 0x8d, 0x8f, 0xed, 0x56, 0x1e, 0xd2, 0xdf, 0x8d, -0x88, 0x53, 0x5c, 0xaf, 0x99, 0xf1, 0xfb, 0x5c, 0x08, 0x2a, 0x21, 0xe4, 0x71, 0x5d, 0x72, 0x74, -0xfb, 0x3f, 0x20, 0x47, 0x85, 0x5f, 0xf8, 0xdd, 0x60, 0xde, 0xde, 0x05, 0xe6, 0x81, 0xfc, 0x18, -0x1e, 0xa3, 0x3e, 0x92, 0x25, 0x99, 0xb2, 0x0c, 0x82, 0xaa, 0x43, 0xc1, 0xdc, 0xa3, 0x94, 0xbb, -0x1c, 0xc7, 0xbd, 0xa4, 0xaf, 0x84, 0xe2, 0x0d, 0xf6, 0x59, 0xf0, 0x1b, 0x4b, 0xaf, 0x71, 0x14, -0x31, 0x7e, 0x5f, 0x6e, 0xec, 0x15, 0x13, 0x73, 0x35, 0xf5, 0x0e, 0xfd, 0xec, 0xc0, 0x49, 0xf6, -0x40, 0x7c, 0x5e, 0x4c, 0x1c, 0x14, 0xf2, 0x75, 0x55, 0x48, 0x79, 0x43, 0x7c, 0xbf, 0x98, 0xf5, -0x44, 0xe4, 0xc8, 0xe3, 0x4c, 0x05, 0x13, 0x7a, 0x54, 0x96, 0x86, 0x6b, 0x44, 0x65, 0x69, 0x10, -0x51, 0x59, 0x5c, 0xa0, 0xbf, 0x5f, 0x91, 0x58, 0x97, 0x2e, 0xa7, 0xa8, 0x2c, 0x29, 0x0b, 0x97, -0x61, 0xcd, 0x48, 0xee, 0x61, 0xd5, 0x84, 0x65, 0xbb, 0x98, 0x13, 0xa5, 0xf5, 0x59, 0x29, 0x3c, -0xb0, 0x71, 0x44, 0x96, 0x65, 0xc8, 0x1b, 0xfa, 0xd8, 0x6a, 0xbd, 0x22, 0xed, 0xf4, 0xe1, 0xdc, -0x53, 0xec, 0xf9, 0x54, 0x65, 0x0d, 0xf6, 0x99, 0x34, 0x6d, 0x6d, 0x73, 0x71, 0xdd, 0x0e, 0x07, -0x86, 0xb4, 0xa9, 0x2d, 0xe3, 0xb1, 0xf3, 0xcf, 0xc1, 0x2f, 0x7e, 0x33, 0x90, 0xed, 0xcf, 0xeb, -0x8a, 0x49, 0x78, 0x54, 0x23, 0x6e, 0x90, 0x63, 0x74, 0xf4, 0x48, 0x22, 0x0a, 0xa2, 0xf1, 0xd6, -0x36, 0xa9, 0x14, 0xe7, 0xa3, 0x47, 0xf2, 0x65, 0xe6, 0xe4, 0xf9, 0x17, 0xe6, 0x10, 0xe7, 0x50, -0xcc, 0x1f, 0x7b, 0x28, 0x2f, 0x6d, 0xc6, 0x4e, 0x93, 0xae, 0x8a, 0x54, 0xa9, 0x3c, 0x7c, 0x6b, -0x02, 0x7f, 0xcd, 0x59, 0xee, 0x2f, 0xe8, 0xa3, 0xb3, 0x2f, 0xe4, 0xba, 0xd8, 0x3a, 0xb3, 0x0e, -0xd7, 0x34, 0x52, 0x1b, 0xe6, 0xa8, 0xc8, 0x17, 0xf1, 0xfc, 0xe2, 0x48, 0x1a, 0x57, 0x2f, 0xc2, -0x48, 0x72, 0xec, 0xc2, 0xa2, 0x1a, 0xb6, 0x64, 0xa7, 0x35, 0xc6, 0xd4, 0x1d, 0xb9, 0xc1, 0x4e, -0xc1, 0x85, 0x4d, 0x10, 0xe7, 0x27, 0xd1, 0x9a, 0x79, 0x66, 0x89, 0x33, 0x43, 0xb1, 0x18, 0x00, -0xd6, 0xdf, 0x47, 0x7b, 0xed, 0xf2, 0x28, 0xd2, 0x06, 0x18, 0x51, 0xeb, 0x33, 0x0a, 0xa6, 0x76, -0x61, 0x4a, 0x08, 0x53, 0xee, 0x57, 0x17, 0xe1, 0x17, 0x48, 0x8a, 0xd3, 0xf5, 0x4b, 0x4a, 0xe8, -0x5b, 0x84, 0xee, 0x20, 0x5e, 0x0d, 0xd8, 0xdf, 0x25, 0xaa, 0xdd, 0xb2, 0x46, 0x22, 0x5b, 0x80, -0x84, 0x65, 0x0d, 0x69, 0x8f, 0xa5, 0x5a, 0x55, 0xd3, 0xf5, 0xe4, 0x2b, 0xc5, 0xa0, 0x36, 0xe2, -0xf5, 0x06, 0xbc, 0xd6, 0xe3, 0xf5, 0x7a, 0xbc, 0xd6, 0xe0, 0xb5, 0x04, 0xaf, 0xd5, 0x78, 0x9d, -0x85, 0x57, 0xe7, 0xf5, 0xe4, 0xa3, 0xc3, 0xa0, 0xce, 0xb9, 0x9e, 0x7c, 0x7e, 0x18, 0xd4, 0xb2, -0xeb, 0xc9, 0xf3, 0x88, 0x41, 0xa5, 0xc8, 0x45, 0xa5, 0x78, 0x35, 0xe2, 0xd5, 0x0c, 0x06, 0x3a, -0xf3, 0xb8, 0x8d, 0xf8, 0x44, 0xd3, 0xcd, 0x51, 0x30, 0x7b, 0xcd, 0xf1, 0x2e, 0x9c, 0x69, 0xec, -0x31, 0xe9, 0x99, 0x11, 0x8f, 0xe2, 0x2b, 0x12, 0x9e, 0xbf, 0x72, 0x23, 0x8e, 0x2b, 0xcc, 0xd3, -0x0d, 0x1d, 0x34, 0x32, 0x2e, 0x3a, 0x95, 0x17, 0xb6, 0x96, 0x14, 0xf1, 0x32, 0xcb, 0x31, 0x11, -0xf5, 0x5a, 0xde, 0x67, 0xc1, 0xbb, 0x10, 0x47, 0x41, 0x7e, 0x58, 0x75, 0x0d, 0xaa, 0x98, 0xd6, -0xa1, 0x53, 0xb2, 0x95, 0x8a, 0xf0, 0x93, 0x07, 0xa4, 0xf1, 0x24, 0x03, 0xc9, 0xce, 0x53, 0xeb, -0xd8, 0x4a, 0xee, 0x5e, 0xe1, 0x53, 0x4f, 0x46, 0xb9, 0x03, 0x21, 0xf2, 0x22, 0x3d, 0xa1, 0x74, -0xcb, 0x1e, 0x0b, 0xa5, 0x8e, 0xc1, 0x22, 0xe4, 0x4f, 0x4c, 0x2c, 0x3b, 0xbc, 0xa9, 0x06, 0xf8, -0xba, 0x5f, 0xf5, 0xb0, 0xdf, 0x4e, 0xba, 0x37, 0xa9, 0x0a, 0x69, 0x54, 0x65, 0xe3, 0x9b, 0x2b, -0xed, 0xad, 0x9b, 0x3c, 0x89, 0xd1, 0x0d, 0x29, 0x23, 0xcd, 0xb8, 0xca, 0xbb, 0x01, 0x62, 0x9e, -0x91, 0x46, 0x1c, 0xa3, 0x48, 0x44, 0x2e, 0xfd, 0xa4, 0x80, 0x6c, 0x2e, 0x9d, 0x48, 0x17, 0x38, -0xee, 0x0e, 0xcf, 0xf6, 0xc2, 0x53, 0x10, 0x64, 0x7c, 0x7d, 0x5d, 0x9a, 0x3c, 0x4c, 0x0b, 0xcd, -0x2c, 0x85, 0xad, 0xce, 0x8f, 0xb2, 0x16, 0x97, 0x2c, 0xb0, 0xb7, 0xd7, 0x4a, 0x90, 0xc0, 0xde, -0x0b, 0xad, 0xba, 0x26, 0x68, 0x25, 0xe3, 0xaa, 0xac, 0xd5, 0xbb, 0x01, 0x7b, 0x6d, 0xd1, 0xad, -0xdf, 0x29, 0x2e, 0x74, 0x94, 0x7c, 0x5c, 0x09, 0xdb, 0xbf, 0x1c, 0xb7, 0x4a, 0x16, 0x80, 0xb6, -0x42, 0x1f, 0x59, 0x21, 0xe4, 0xd4, 0xe8, 0x54, 0x2d, 0xeb, 0x2f, 0x51, 0x58, 0x8a, 0x2a, 0xe4, -0x57, 0x77, 0x2b, 0x62, 0xde, 0x27, 0x79, 0x77, 0xff, 0x78, 0x55, 0x52, 0xfb, 0x20, 0xf2, 0x13, -0xed, 0x64, 0xf8, 0x8c, 0x36, 0x59, 0x15, 0xd7, 0x3e, 0x0a, 0x78, 0xc0, 0xba, 0xa5, 0x87, 0x77, -0x8c, 0xab, 0x20, 0x84, 0xff, 0x41, 0xf1, 0xf5, 0xff, 0xd8, 0xba, 0x25, 0x74, 0x57, 0x44, 0x3b, -0x47, 0x67, 0x83, 0xf8, 0xbe, 0xed, 0xaa, 0xf7, 0x47, 0xf8, 0x3d, 0xd9, 0x77, 0x5d, 0x60, 0x2b, -0xad, 0xb5, 0x71, 0xf2, 0x7e, 0xce, 0x5e, 0x0c, 0xcf, 0x1f, 0xd5, 0xed, 0x45, 0x29, 0xfe, 0x23, -0xf9, 0x0c, 0xc3, 0x99, 0x62, 0x0d, 0x50, 0x17, 0x42, 0x3a, 0xca, 0xe0, 0xb0, 0x8c, 0xda, 0x8a, -0x12, 0xbe, 0x47, 0xb7, 0xc1, 0xb7, 0x68, 0xfb, 0x75, 0xeb, 0xc3, 0xf3, 0x8c, 0x75, 0xbc, 0xc2, -0x93, 0x24, 0xc9, 0x30, 0x88, 0x91, 0xa3, 0xa4, 0xf5, 0xe4, 0x42, 0x4e, 0x2d, 0xb1, 0x86, 0xe2, -0xc8, 0x47, 0xf7, 0xa4, 0x88, 0x6a, 0x85, 0x7c, 0x2f, 0x83, 0x14, 0xdd, 0xd3, 0x1d, 0xa5, 0xb8, -0x75, 0x59, 0x28, 0x4a, 0xdb, 0xbc, 0x16, 0xe6, 0x6a, 0xc6, 0x2e, 0x8b, 0x08, 0x5a, 0x4e, 0xf2, -0x4e, 0x80, 0xf3, 0x31, 0x47, 0x41, 0xee, 0x0d, 0xa9, 0x28, 0xbe, 0x9d, 0xef, 0x85, 0x46, 0x8a, -0x87, 0x89, 0xbd, 0xc1, 0x76, 0x5d, 0x22, 0x7f, 0x5f, 0xa5, 0x19, 0xf2, 0xbf, 0xac, 0x78, 0x13, -0xe0, 0x40, 0x4e, 0xcd, 0xe5, 0xb5, 0xe8, 0xde, 0x25, 0x67, 0x13, 0xcf, 0xb7, 0x70, 0xf2, 0xbc, -0x25, 0xb9, 0x55, 0x89, 0xe2, 0x0c, 0x53, 0xf4, 0x07, 0x1b, 0x53, 0x5a, 0x17, 0xf2, 0xd4, 0x3e, -0x3d, 0x2e, 0x71, 0xde, 0x53, 0x01, 0xef, 0xe8, 0x0a, 0x2b, 0x59, 0xb6, 0x5d, 0xb3, 0xa9, 0x06, -0xe7, 0x42, 0xc2, 0x65, 0xd8, 0xce, 0x39, 0x39, 0xbe, 0xb8, 0x94, 0x4f, 0x36, 0xae, 0x4b, 0x93, -0xdd, 0x80, 0x81, 0xfd, 0x15, 0x6e, 0x58, 0x0e, 0x72, 0xcf, 0x3f, 0x69, 0x60, 0xe5, 0x9d, 0x4a, -0x4b, 0x3a, 0x69, 0x92, 0xc9, 0x4f, 0x31, 0x47, 0x5b, 0x35, 0x73, 0xe4, 0xd5, 0x20, 0x43, 0xd2, -0xac, 0x2c, 0x1f, 0x9a, 0x1c, 0xbb, 0x48, 0x27, 0x30, 0x36, 0xf6, 0x7b, 0x4b, 0xde, 0x6a, 0x20, -0xff, 0xe6, 0x72, 0xa7, 0x9b, 0x7d, 0x91, 0xa9, 0x66, 0xe8, 0xa3, 0x71, 0xce, 0x79, 0x9b, 0xd5, -0x3d, 0x0c, 0xe2, 0x28, 0xbf, 0x4f, 0xba, 0x40, 0x0e, 0xf2, 0xee, 0x88, 0x92, 0x22, 0xf9, 0xe0, -0xa3, 0x53, 0xf4, 0xac, 0x3c, 0xca, 0x72, 0xa8, 0xc9, 0x8b, 0x7c, 0x18, 0xf2, 0x3f, 0x09, 0x84, -0xda, 0x38, 0xae, 0x54, 0xd7, 0x04, 0x69, 0x9b, 0x57, 0xe2, 0xe8, 0x38, 0xbc, 0xf2, 0x02, 0xd6, -0x48, 0xc4, 0x79, 0xde, 0xc2, 0xfc, 0x88, 0x2c, 0xea, 0x3d, 0xf7, 0x01, 0x73, 0x98, 0x8b, 0xf1, -0x3f, 0xce, 0xbb, 0xf1, 0xb4, 0x3e, 0xa9, 0x95, 0x3e, 0xd2, 0x93, 0x21, 0x18, 0x11, 0xf2, 0x09, -0x63, 0xf0, 0x07, 0xd3, 0x15, 0x98, 0xcf, 0xc4, 0x2b, 0x44, 0xd2, 0x35, 0x5c, 0xe9, 0xbc, 0x70, -0x07, 0xcd, 0x06, 0xf3, 0x48, 0x76, 0x96, 0xd1, 0xba, 0x41, 0x51, 0x4b, 0x28, 0xb2, 0x58, 0x01, -0x76, 0xae, 0xb1, 0x47, 0x1c, 0xd7, 0xa7, 0x4e, 0xb6, 0xbc, 0x17, 0x65, 0x7e, 0xbf, 0x96, 0x30, -0x6f, 0xa9, 0xd3, 0x2b, 0x34, 0x10, 0x84, 0x85, 0x9f, 0xeb, 0xa0, 0x43, 0xe0, 0x55, 0xff, 0xed, -0x51, 0x28, 0xbd, 0x05, 0x71, 0x0d, 0x94, 0x25, 0xd6, 0xb2, 0x1f, 0x66, 0xf2, 0x58, 0xd8, 0x0d, -0x15, 0x79, 0x3f, 0x0b, 0x5e, 0x5d, 0x77, 0x72, 0xae, 0xb1, 0x75, 0x53, 0x56, 0x4e, 0x34, 0x54, -0xb2, 0x9c, 0xc8, 0x36, 0x71, 0x14, 0x71, 0x2c, 0x7c, 0xa2, 0x40, 0x9f, 0xf0, 0x0d, 0xf6, 0x07, -0xc9, 0x1a, 0x01, 0x8e, 0x9b, 0xb2, 0xfa, 0x36, 0xb4, 0xc7, 0x40, 0xe9, 0x08, 0x13, 0x5e, 0x28, -0x21, 0x4c, 0x47, 0x7b, 0x22, 0xe1, 0x93, 0x05, 0xdf, 0xed, 0xcb, 0x69, 0xe0, 0xd4, 0xe5, 0x3c, -0xca, 0xba, 0xa1, 0x1c, 0xf9, 0x13, 0x19, 0x42, 0xe1, 0x49, 0x6d, 0x64, 0x30, 0xb4, 0x9d, 0xfd, -0xe6, 0xd3, 0x3c, 0xcb, 0x95, 0xc9, 0x11, 0x7a, 0x6b, 0x07, 0xe4, 0x70, 0x64, 0xd2, 0x67, 0x4a, -0x91, 0xdf, 0x80, 0x62, 0xe9, 0xc6, 0x74, 0x0b, 0x22, 0x7d, 0x73, 0xca, 0x8e, 0xbf, 0xb3, 0xd2, -0x46, 0xd2, 0xbb, 0x56, 0x2b, 0xe9, 0x97, 0xe3, 0x2a, 0xf2, 0xda, 0xf4, 0xec, 0x67, 0xac, 0x38, -0x87, 0x35, 0x9d, 0x64, 0x1a, 0xe3, 0xe9, 0x7a, 0xa3, 0x55, 0x2f, 0x33, 0xc6, 0x79, 0x6f, 0xf7, -0x36, 0x96, 0x34, 0x24, 0xf8, 0x06, 0xc9, 0x6f, 0x72, 0xa5, 0xd0, 0x36, 0xf0, 0xce, 0x12, 0x69, -0xc2, 0x33, 0x73, 0x74, 0xd8, 0x0b, 0x6a, 0x67, 0x61, 0x8b, 0x5a, 0x37, 0xfd, 0xe7, 0xd4, 0xcf, -0x1a, 0xe3, 0xac, 0x2d, 0x3b, 0x35, 0xce, 0x11, 0x26, 0xb8, 0x56, 0xc4, 0x56, 0xe7, 0xf4, 0x5d, -0xc1, 0x6d, 0xbc, 0x5f, 0xb1, 0x91, 0xbd, 0xbb, 0xdc, 0x8d, 0x77, 0x6b, 0x88, 0x7f, 0xc0, 0x55, -0x44, 0x5a, 0x82, 0xa5, 0xaa, 0x6d, 0xd0, 0xb0, 0xfd, 0x39, 0xa4, 0xa4, 0xc6, 0x5f, 0x9c, 0x80, -0x4a, 0x6c, 0x7f, 0x48, 0xb1, 0xa5, 0x4e, 0x8b, 0x7d, 0xd5, 0x69, 0x91, 0xb8, 0x01, 0x7e, 0x44, -0x7b, 0x3b, 0x5e, 0x17, 0xd1, 0xa6, 0x8b, 0xa0, 0xd3, 0x5b, 0xfb, 0xf5, 0xe4, 0x79, 0xcb, 0x70, -0x1b, 0xfd, 0x1a, 0x6f, 0x4e, 0x20, 0x05, 0x9b, 0x95, 0xa7, 0x60, 0x67, 0x38, 0xfe, 0x31, 0xed, -0xb7, 0x30, 0x7c, 0xb2, 0xd7, 0x98, 0x8f, 0x2a, 0xd5, 0x0e, 0x2a, 0x87, 0x68, 0xd7, 0x63, 0xaf, -0x21, 0xdd, 0x38, 0x32, 0xfa, 0x82, 0xa4, 0xa4, 0xa2, 0xec, 0xb5, 0x75, 0xdb, 0x57, 0x29, 0xf5, -0xf4, 0x9b, 0x57, 0x97, 0xfa, 0xe9, 0x5e, 0x21, 0xb9, 0x92, 0xe6, 0xf4, 0xd5, 0x7b, 0x6a, 0x53, -0xb2, 0xbe, 0xe3, 0xe0, 0x73, 0xea, 0x36, 0x99, 0x8a, 0x88, 0x2f, 0xb6, 0xb1, 0x69, 0x52, 0x3b, -0xa9, 0xce, 0xf9, 0x1d, 0xe2, 0x8f, 0x77, 0xba, 0xc1, 0x88, 0x23, 0xb5, 0x31, 0xcd, 0xe7, 0xe6, -0xb9, 0xb8, 0xa2, 0xdd, 0xb0, 0x85, 0xe5, 0x82, 0xa3, 0x48, 0x85, 0x2d, 0xc2, 0x7e, 0xd2, 0xa9, -0xfb, 0xe7, 0x5d, 0x70, 0x0a, 0x8e, 0x39, 0xdc, 0x48, 0x89, 0xf5, 0xd8, 0x79, 0xee, 0x1e, 0x38, -0xe6, 0x0a, 0xc2, 0xbf, 0x55, 0x36, 0x3a, 0xe9, 0x37, 0x43, 0x3b, 0xc8, 0x95, 0x4f, 0x53, 0xf4, -0x0d, 0xcf, 0x7e, 0xf2, 0x22, 0xf2, 0xf9, 0xfb, 0x48, 0x3d, 0xb6, 0x26, 0xe6, 0xc1, 0x4d, 0x28, -0x81, 0x3e, 0xec, 0xe9, 0x03, 0xd7, 0x3f, 0x9e, 0x42, 0x9e, 0xad, 0x04, 0x69, 0x3e, 0xad, 0xdd, -0x59, 0xe4, 0x09, 0x84, 0x71, 0x6d, 0x2f, 0x47, 0x57, 0x48, 0x21, 0xdf, 0x2b, 0x23, 0x87, 0x56, -0xf3, 0x8f, 0x1f, 0xc9, 0x4a, 0xca, 0x47, 0xfe, 0x33, 0xc9, 0x03, 0x08, 0xf5, 0x5a, 0xd7, 0x54, -0xb6, 0x52, 0x4c, 0x0f, 0xb9, 0x8f, 0x61, 0x4d, 0x94, 0x31, 0x5b, 0x69, 0xe0, 0x32, 0x5c, 0xaa, -0x0b, 0xbf, 0xaa, 0x4c, 0x91, 0x17, 0x60, 0x2b, 0xed, 0x53, 0xb7, 0x6e, 0x52, 0xcb, 0x3c, 0xfd, -0xe0, 0x50, 0x65, 0x61, 0x79, 0x97, 0x36, 0xfd, 0xe3, 0x47, 0x28, 0xa1, 0x9c, 0x53, 0x2b, 0xdc, -0x7d, 0x60, 0xd0, 0xed, 0x2c, 0x52, 0xd9, 0x28, 0x7f, 0x24, 0xcf, 0x11, 0x87, 0x9c, 0xad, 0x51, -0xc4, 0xb7, 0x78, 0x2d, 0x74, 0xcd, 0xba, 0x2a, 0xd5, 0x97, 0xb3, 0xde, 0x33, 0x1d, 0x22, 0xca, -0x46, 0x29, 0x4a, 0x7e, 0xd6, 0xe0, 0x3c, 0x28, 0x21, 0xaf, 0x5e, 0x2e, 0x0f, 0x74, 0xb0, 0x75, -0xc5, 0xa1, 0x74, 0xa3, 0xcd, 0x4d, 0xfa, 0x27, 0x77, 0x85, 0xb4, 0xb3, 0x25, 0xa4, 0x6f, 0xb1, -0xfa, 0xae, 0xb0, 0x76, 0x8e, 0xfc, 0x3f, 0xb5, 0x87, 0xf0, 0xb9, 0x36, 0xbe, 0x7a, 0x24, 0x3c, -0x11, 0xc1, 0xb7, 0xe4, 0x53, 0xc1, 0xcc, 0x69, 0x77, 0x72, 0x5a, 0x23, 0x45, 0x8a, 0x41, 0x3a, -0x7b, 0x16, 0xe9, 0xec, 0xfb, 0xaa, 0x01, 0x29, 0xe5, 0xfb, 0x89, 0xc8, 0x80, 0x31, 0x81, 0xdf, -0xf4, 0x5b, 0x13, 0x8d, 0x03, 0x20, 0xad, 0xc2, 0xfb, 0x3b, 0xf1, 0x3a, 0x58, 0xed, 0x46, 0x2e, -0xa9, 0x5b, 0x66, 0x99, 0x3b, 0x65, 0xc0, 0xbb, 0xca, 0x47, 0xf7, 0xdb, 0x9b, 0xd9, 0xbf, 0xce, -0x33, 0x4a, 0xf3, 0x63, 0xaf, 0xf1, 0x5d, 0x1b, 0x9d, 0x30, 0xdd, 0xd5, 0x03, 0x1e, 0xed, 0x34, -0xfe, 0x56, 0x6b, 0x1f, 0x45, 0xf0, 0x1e, 0xff, 0xab, 0xb1, 0x54, 0x5c, 0x1d, 0xd4, 0x96, 0x81, -0x55, 0xd4, 0xae, 0xf8, 0x6a, 0x5f, 0x68, 0x64, 0xf7, 0x5d, 0x71, 0xed, 0x62, 0x04, 0x25, 0x54, -0x3d, 0xe2, 0x04, 0xb7, 0x8d, 0x23, 0x4d, 0x14, 0x3b, 0x66, 0x7f, 0x67, 0x0d, 0x42, 0x0b, 0x9f, -0x2a, 0x5f, 0xde, 0xc8, 0x91, 0xa5, 0xe6, 0xf0, 0x0a, 0x14, 0xfd, 0x2d, 0xe3, 0x93, 0xb4, 0xb3, -0x8c, 0x49, 0x35, 0xa9, 0x43, 0x3f, 0x2b, 0x50, 0xec, 0x4d, 0xc2, 0x2b, 0x97, 0xf0, 0xd0, 0x15, -0x98, 0xa7, 0x5d, 0x8a, 0xef, 0xa9, 0x21, 0x8f, 0x5a, 0xaf, 0x90, 0xb6, 0xcf, 0xa5, 0x43, 0xd4, -0x23, 0x6e, 0xc5, 0x9d, 0x03, 0xab, 0xb0, 0xde, 0x8b, 0x54, 0x63, 0xae, 0x25, 0x93, 0x7e, 0x1a, -0x2f, 0x8a, 0x98, 0x73, 0xe9, 0x9a, 0xad, 0x30, 0xfe, 0xa7, 0xb5, 0xe2, 0x27, 0xda, 0x89, 0xb4, -0x45, 0x69, 0xb6, 0xf7, 0x69, 0x27, 0xc4, 0xa8, 0xdd, 0xd1, 0xa7, 0x9d, 0x06, 0x0f, 0xfe, 0x7e, -0x04, 0xd5, 0x8a, 0x18, 0xd3, 0x27, 0x59, 0xe3, 0x6a, 0x9e, 0xf6, 0xbe, 0xc0, 0x57, 0xab, 0xd9, -0x2f, 0x78, 0xde, 0x87, 0x9c, 0xd8, 0x0d, 0x08, 0x66, 0xe1, 0xa2, 0x9c, 0xe0, 0xa2, 0x0e, 0xe1, -0xc2, 0xa9, 0xc3, 0x45, 0x56, 0x0b, 0x7b, 0xfa, 0x8c, 0xd9, 0x5d, 0xe0, 0x49, 0xbb, 0x11, 0x1b, -0x85, 0x52, 0x8e, 0x85, 0x27, 0xa0, 0xd5, 0xde, 0x85, 0x32, 0x9a, 0x0b, 0x7c, 0x29, 0xf2, 0x83, -0x63, 0x65, 0xfc, 0x37, 0xf3, 0xab, 0xe8, 0xf4, 0xe7, 0xa0, 0xed, 0x62, 0x0e, 0xda, 0xf4, 0xd1, -0xb3, 0x11, 0xb4, 0x0d, 0x6f, 0x0e, 0xd1, 0x28, 0x92, 0xb4, 0xc7, 0x29, 0x77, 0xea, 0x29, 0x53, -0xac, 0x91, 0x21, 0xc6, 0xce, 0x48, 0x11, 0x44, 0x88, 0xb7, 0xe2, 0x33, 0x1f, 0x49, 0xb7, 0x9e, -0xd7, 0xfb, 0x99, 0x88, 0xf4, 0x9a, 0x18, 0x06, 0x2b, 0x54, 0x73, 0x22, 0x92, 0x26, 0x78, 0xbc, -0x03, 0xe1, 0x31, 0x86, 0xab, 0x7b, 0xaf, 0x80, 0x47, 0x78, 0x39, 0x0f, 0x7d, 0x98, 0xdb, 0xc1, -0x90, 0x75, 0xcf, 0x97, 0x41, 0x96, 0x3a, 0x07, 0x4b, 0xaa, 0xc5, 0xd6, 0xdc, 0x31, 0xe0, 0xa7, -0xb9, 0xa7, 0xb7, 0xf9, 0x19, 0x8f, 0x0f, 0xeb, 0x73, 0x2e, 0x34, 0x11, 0x79, 0xc6, 0x3f, 0x2f, -0xcd, 0xcf, 0x38, 0xd6, 0xcd, 0xab, 0x66, 0xa0, 0xee, 0x2b, 0xc0, 0x4d, 0x41, 0x19, 0x93, 0x13, -0xf9, 0x32, 0xb2, 0x33, 0x2b, 0xec, 0x2a, 0xd8, 0xaf, 0xd3, 0x61, 0x7d, 0x2e, 0xcf, 0x16, 0xac, -0x71, 0xe5, 0xae, 0x3e, 0x98, 0xa3, 0x4d, 0x65, 0x67, 0xb1, 0x0a, 0x67, 0x51, 0x9b, 0xa4, 0xd9, -0xab, 0x21, 0x7f, 0x62, 0xaf, 0xd4, 0x93, 0x3f, 0xb1, 0x5f, 0x07, 0x91, 0x53, 0xab, 0xa3, 0x56, -0xbc, 0x4a, 0x71, 0x64, 0x80, 0xac, 0x32, 0x4a, 0xf1, 0xdf, 0x86, 0xff, 0x82, 0xb7, 0xfe, 0xb7, -0x52, 0xb7, 0x82, 0x12, 0x00, 0xeb, 0x18, 0x5d, 0xc0, 0x3b, 0xdb, 0xc8, 0x83, 0xd5, 0xe0, 0x41, -0x59, 0xe0, 0xa9, 0x47, 0xf0, 0xa9, 0x7c, 0xe4, 0x01, 0x37, 0xe4, 0xf6, 0x67, 0xa9, 0x55, 0x6c, -0xe5, 0x96, 0x58, 0x9f, 0x32, 0x90, 0x8f, 0x2c, 0xaf, 0x85, 0x4e, 0xb9, 0xf9, 0x6c, 0x1e, 0x29, -0xc0, 0xe7, 0x6c, 0x07, 0x46, 0x1e, 0xd7, 0xde, 0x46, 0x6c, 0xfe, 0x1e, 0x62, 0x73, 0xbc, 0x6e, -0xc0, 0xeb, 0xc3, 0x76, 0x2c, 0x8f, 0xbc, 0x21, 0x51, 0x89, 0xb7, 0x87, 0xc0, 0x5c, 0x46, 0x70, -0xb1, 0x76, 0x73, 0x43, 0x19, 0x41, 0x01, 0x5e, 0xf1, 0x5d, 0x46, 0x40, 0xc8, 0x48, 0x38, 0x8b, -0x73, 0x30, 0xdf, 0x20, 0xd9, 0xb0, 0x30, 0x9f, 0x49, 0x5e, 0xae, 0x2e, 0xd8, 0x67, 0x38, 0x8c, -0x4e, 0xf6, 0x1e, 0xa7, 0xb5, 0x28, 0xcd, 0x57, 0xa6, 0x38, 0xbb, 0xc1, 0x51, 0x95, 0xd0, 0xce, -0x91, 0xe7, 0x25, 0xf2, 0xf2, 0xcd, 0xdf, 0xad, 0xf2, 0x50, 0xac, 0x31, 0x92, 0xa8, 0xac, 0x13, -0x0f, 0x91, 0x77, 0x44, 0xbc, 0x37, 0xda, 0x8b, 0x0e, 0x3c, 0x84, 0x57, 0x53, 0xc3, 0x1f, 0x4c, -0x9a, 0x83, 0x7c, 0xd3, 0x9b, 0x1b, 0xfe, 0x50, 0xae, 0xfd, 0xcb, 0x19, 0x28, 0x1d, 0x7d, 0xa4, -0x0f, 0x73, 0xb6, 0x0f, 0x1f, 0xfa, 0x09, 0x94, 0x6f, 0x5f, 0xdb, 0x67, 0xb0, 0x17, 0xb5, 0xaf, -0xde, 0x81, 0x69, 0x0e, 0x6b, 0xfb, 0x9a, 0x9f, 0xbf, 0x82, 0xcf, 0x0d, 0xed, 0x0f, 0x05, 0xbb, -0xc0, 0x26, 0x6c, 0x41, 0xb7, 0x0c, 0x3b, 0x22, 0x5b, 0x4e, 0x20, 0x15, 0x33, 0x3f, 0xb6, 0x7b, -0xf3, 0x09, 0x28, 0x1b, 0x79, 0x64, 0xf3, 0xda, 0x83, 0x8f, 0x1c, 0x7a, 0x48, 0x6f, 0x8f, 0xd8, -0xbf, 0x02, 0x6d, 0xb9, 0xa3, 0x4f, 0x3b, 0x87, 0x6b, 0xf9, 0x02, 0x8e, 0xd9, 0x83, 0x69, 0x25, -0x6f, 0x5d, 0xcd, 0xb4, 0xce, 0xe6, 0x9d, 0x81, 0xab, 0xf7, 0x02, 0x8d, 0xdf, 0xc5, 0xe3, 0x0c, -0x41, 0x62, 0x6c, 0xcb, 0x68, 0x4d, 0x15, 0x8e, 0xee, 0xa5, 0x1a, 0xdd, 0xee, 0xcc, 0x9c, 0xb3, -0xa3, 0x32, 0x37, 0x7d, 0x46, 0x76, 0x32, 0x4c, 0x27, 0x39, 0x9a, 0x73, 0x3a, 0x34, 0xcd, 0x8a, -0xe6, 0xb1, 0x6c, 0xec, 0xf6, 0xb2, 0x0a, 0x7b, 0x48, 0xf7, 0x38, 0x3f, 0xe7, 0x6b, 0x4c, 0xd7, -0xbf, 0x45, 0x1a, 0xcc, 0xc6, 0xbf, 0x40, 0xba, 0x1e, 0xfe, 0x10, 0xac, 0x0d, 0x1f, 0x22, 0x9f, -0x47, 0xdc, 0xfb, 0x0b, 0xf8, 0xbd, 0x9b, 0xa3, 0xc3, 0x3d, 0x39, 0x6d, 0xd6, 0x57, 0xe8, 0x5e, -0xef, 0xb2, 0xb2, 0xcd, 0x13, 0xfa, 0xce, 0xdf, 0x3a, 0xa4, 0xc2, 0x1b, 0x90, 0x1a, 0x6f, 0x24, -0x7e, 0xc2, 0xcd, 0xfc, 0x44, 0xee, 0xe4, 0xf1, 0x88, 0x03, 0x46, 0x7f, 0x82, 0x7c, 0x05, 0xf3, -0x09, 0xe4, 0x3f, 0x8c, 0xf6, 0xd6, 0x68, 0xdf, 0xfb, 0x96, 0x10, 0x72, 0xcb, 0xdb, 0xc0, 0xb6, -0xe0, 0x94, 0xf4, 0x72, 0xe1, 0x49, 0x01, 0x96, 0xb1, 0xa1, 0xf0, 0x44, 0xbc, 0xf0, 0xac, 0x20, -0xe2, 0x85, 0x45, 0xde, 0x08, 0x74, 0xde, 0x44, 0x5e, 0x45, 0xbf, 0x4b, 0x7e, 0xc7, 0x90, 0x97, -0x5f, 0x8a, 0x3c, 0xbc, 0x8a, 0xf7, 0x2a, 0xde, 0x2f, 0xc6, 0x6b, 0x1c, 0xaf, 0x4e, 0x2c, 0x65, -0xa3, 0x17, 0xb9, 0x2a, 0xf0, 0xe0, 0x6f, 0x39, 0xf8, 0xe6, 0xd3, 0x5e, 0x40, 0x20, 0x53, 0x86, -0x3c, 0x7f, 0x10, 0xf3, 0x74, 0x93, 0xd7, 0x02, 0x2c, 0xad, 0x1f, 0x47, 0xdf, 0x96, 0xb2, 0x37, -0x90, 0x25, 0x7c, 0xb6, 0xc5, 0xb5, 0xaa, 0xa5, 0xc0, 0x26, 0x74, 0x0f, 0xe5, 0x48, 0x7f, 0x44, -0xbb, 0x8e, 0x38, 0x76, 0x5d, 0x62, 0xb7, 0x13, 0xe5, 0xb8, 0x4a, 0x97, 0xee, 0xcf, 0x9c, 0xcf, -0xc5, 0xb0, 0xdf, 0x8e, 0x2b, 0xfa, 0x3d, 0xba, 0x0d, 0x7b, 0xcd, 0xfb, 0x9b, 0xc9, 0xc7, 0xb1, -0xd7, 0x29, 0xc5, 0x2d, 0x05, 0xec, 0x72, 0xf6, 0xfd, 0x25, 0x33, 0xfb, 0x2e, 0xe9, 0xb8, 0x65, -0x21, 0x58, 0x70, 0x14, 0x4c, 0x99, 0xd2, 0xd1, 0x35, 0x4b, 0xcb, 0xc2, 0xa7, 0xa1, 0xb4, 0xe1, -0x24, 0x4a, 0x6f, 0xa7, 0x27, 0xd6, 0xe4, 0xf5, 0xbb, 0xff, 0x9c, 0x11, 0xca, 0x9d, 0x0b, 0x09, -0x49, 0x82, 0x76, 0x2a, 0x48, 0x9a, 0x70, 0x24, 0x9e, 0x47, 0xbc, 0x0d, 0xb0, 0xde, 0x61, 0x60, -0x3b, 0xa7, 0x97, 0x91, 0x67, 0x32, 0x15, 0xd8, 0x3a, 0xbd, 0x91, 0x2f, 0x63, 0x6a, 0xca, 0x41, -0x71, 0x86, 0xf3, 0xef, 0xf6, 0xa1, 0x9c, 0xd1, 0x42, 0x9e, 0x06, 0xe9, 0xd4, 0x82, 0x38, 0x98, -0x1c, 0x37, 0x6b, 0x4a, 0xbb, 0x88, 0x83, 0xcd, 0x48, 0x38, 0x97, 0x24, 0xd9, 0x90, 0xfe, 0xe4, -0xb5, 0xad, 0x69, 0xcd, 0x4a, 0x15, 0xf6, 0xde, 0x4c, 0x3e, 0x5b, 0xd4, 0x0d, 0xc8, 0x1d, 0xb2, -0x34, 0x92, 0xf1, 0x4d, 0x8f, 0xce, 0x7d, 0xb9, 0x23, 0xef, 0xa1, 0x5e, 0xe8, 0x48, 0xe7, 0x3d, -0x4d, 0xe5, 0xce, 0x42, 0x2d, 0x4a, 0x97, 0x5c, 0xc3, 0xa7, 0xa4, 0xd9, 0x7a, 0x36, 0x17, 0x9c, -0x93, 0xe6, 0xce, 0xd1, 0x29, 0x4d, 0xdd, 0x41, 0x30, 0x4a, 0xb2, 0x0c, 0x42, 0xc8, 0x3d, 0x37, -0x11, 0xc4, 0xdf, 0x7b, 0x13, 0xed, 0x15, 0xfd, 0xd5, 0xfc, 0x01, 0x58, 0x85, 0xf0, 0x32, 0x00, -0xcb, 0x61, 0xe9, 0x4d, 0x43, 0xec, 0xf5, 0x08, 0x65, 0x68, 0x86, 0xaa, 0xa6, 0xc2, 0x39, 0x24, -0x6f, 0x4c, 0x08, 0x2d, 0x2d, 0x08, 0x2d, 0x1d, 0x58, 0x46, 0x2b, 0xc5, 0x8a, 0xc1, 0xfb, 0x96, -0xd8, 0xc7, 0x40, 0x5a, 0x3d, 0xe4, 0x27, 0x7f, 0x18, 0xf9, 0xf0, 0x8d, 0x42, 0xf7, 0xe6, 0xf6, -0xf7, 0xf1, 0x3d, 0x79, 0xe1, 0xb0, 0x33, 0xb4, 0xf9, 0xf0, 0x29, 0x45, 0x7e, 0x95, 0x18, 0xea, -0x6a, 0xf3, 0x33, 0x36, 0x55, 0xcb, 0x1c, 0x2d, 0xca, 0x4e, 0x59, 0x88, 0x9a, 0x5f, 0x9f, 0xf5, -0xba, 0x8f, 0x73, 0x55, 0x8b, 0xbc, 0x32, 0xfb, 0x94, 0xaf, 0xf6, 0x42, 0xd4, 0x17, 0x1c, 0x96, -0xfc, 0xc1, 0xef, 0x6b, 0x01, 0xa8, 0x91, 0xd4, 0xfa, 0x9a, 0x2e, 0x30, 0xbc, 0xd4, 0x3c, 0x20, -0xd7, 0xcc, 0x0a, 0x74, 0x81, 0x71, 0x7b, 0x62, 0x40, 0xf6, 0x9b, 0xeb, 0xe8, 0x44, 0xef, 0xd5, -0xe0, 0xac, 0xf8, 0x3e, 0x57, 0xac, 0xe9, 0x7c, 0x97, 0x16, 0xdf, 0xf3, 0xcb, 0x3d, 0x03, 0xb2, -0x63, 0x16, 0xed, 0x22, 0xc6, 0xfe, 0xf8, 0x8c, 0x16, 0x1f, 0xff, 0xc5, 0xf8, 0x80, 0xac, 0x98, -0xf5, 0x9d, 0xc3, 0x97, 0x13, 0xeb, 0xd2, 0xb4, 0xf3, 0x58, 0x5d, 0xe1, 0x02, 0x7b, 0xfc, 0x81, -0xad, 0x31, 0x25, 0xea, 0x5b, 0xcb, 0x9c, 0x28, 0x79, 0x72, 0xab, 0x2e, 0x73, 0xc1, 0xcd, 0x84, -0x8b, 0x83, 0xab, 0xc7, 0x72, 0x69, 0x25, 0x94, 0x73, 0xf5, 0xc1, 0x70, 0xdd, 0x1a, 0xc4, 0x5c, -0x36, 0x3d, 0xe5, 0xe6, 0xf8, 0xea, 0x89, 0xb0, 0xab, 0xa9, 0x76, 0x58, 0xe7, 0x51, 0xb3, 0xda, -0xcf, 0xc8, 0xcf, 0x07, 0x50, 0x5e, 0xa4, 0xfd, 0xed, 0xe8, 0x78, 0xb7, 0xd1, 0xcc, 0xf1, 0x3e, -0x29, 0xea, 0x27, 0xe9, 0x3d, 0x27, 0x9e, 0x03, 0x6b, 0x3a, 0x22, 0xfc, 0xa5, 0x66, 0x40, 0xf5, -0xef, 0x18, 0x4e, 0x3b, 0x90, 0xcb, 0xb0, 0x4a, 0x52, 0xba, 0x92, 0xf6, 0xbe, 0x9d, 0x12, 0xc7, -0x8a, 0x92, 0x2c, 0xfc, 0x9b, 0x32, 0xc9, 0xe1, 0x29, 0xed, 0x5b, 0x61, 0x2c, 0xf5, 0x3b, 0x6d, -0xc3, 0x83, 0x74, 0x36, 0x64, 0xe4, 0xbd, 0xf0, 0xfd, 0x39, 0x1d, 0x69, 0xf2, 0x72, 0xe6, 0xa9, -0xf7, 0x42, 0x4d, 0x86, 0x42, 0xaa, 0x7c, 0x8b, 0x25, 0x7f, 0xf2, 0x71, 0x49, 0xbb, 0xb1, 0x6d, -0x95, 0x10, 0x89, 0x21, 0xb6, 0x19, 0x75, 0xf4, 0x42, 0x49, 0x24, 0x4a, 0x3b, 0x46, 0x48, 0x1d, -0x2a, 0x79, 0xb7, 0xa3, 0x25, 0x12, 0xe1, 0x3d, 0x8b, 0xd9, 0xe9, 0x1a, 0x8e, 0xfd, 0x50, 0x21, -0xbe, 0x18, 0x35, 0xa6, 0x9c, 0x89, 0x26, 0x94, 0xcc, 0x1e, 0x61, 0x9d, 0xd8, 0xd9, 0x88, 0x97, -0xcd, 0xf3, 0xe5, 0x48, 0x9a, 0x77, 0x36, 0x99, 0x2a, 0xdf, 0x41, 0xf1, 0x76, 0x14, 0xb5, 0xd7, -0xd9, 0xde, 0x16, 0x11, 0x27, 0x13, 0x6a, 0xbd, 0xee, 0xad, 0x93, 0x4a, 0x72, 0x5f, 0x51, 0x52, -0x84, 0xcf, 0xbd, 0x66, 0xa7, 0x4b, 0xbc, 0x1e, 0x28, 0x99, 0x6f, 0xc0, 0x92, 0x10, 0x87, 0x4f, -0x1d, 0xa4, 0x92, 0x6e, 0x17, 0x25, 0x29, 0x8e, 0xb6, 0xb6, 0xa8, 0x38, 0xf7, 0xd1, 0x96, 0xb8, -0x3a, 0xda, 0x62, 0x3b, 0xc5, 0x7d, 0x4b, 0x46, 0x13, 0x31, 0x1f, 0x96, 0xdf, 0xe4, 0x93, 0x07, -0x67, 0xfd, 0x5b, 0x97, 0x1c, 0x83, 0x9b, 0x86, 0x63, 0x83, 0xf3, 0xf7, 0xaf, 0x3e, 0xb5, 0x71, -0x38, 0xaa, 0x1e, 0xff, 0x82, 0x88, 0xdd, 0x05, 0x3e, 0x77, 0xb8, 0xa7, 0x1e, 0xde, 0x15, 0x76, -0x5e, 0xcb, 0xc7, 0x0e, 0x79, 0x14, 0x62, 0x2f, 0xe9, 0x8a, 0x12, 0x8a, 0x8c, 0x96, 0xc3, 0xb4, -0x28, 0x37, 0x39, 0xff, 0x71, 0x24, 0xd5, 0xdb, 0x7b, 0xc1, 0xa1, 0x90, 0x65, 0x45, 0x39, 0xef, -0x32, 0x2e, 0x83, 0x4e, 0xdd, 0x77, 0x9d, 0x95, 0x63, 0xbf, 0xe0, 0xf7, 0xb7, 0x3c, 0x07, 0x86, -0x72, 0xd0, 0xf5, 0xb4, 0xae, 0x8a, 0x66, 0x94, 0xf7, 0x06, 0x77, 0xa5, 0xbf, 0x41, 0xb2, 0xdd, -0xb2, 0xfc, 0x03, 0x96, 0x5c, 0x01, 0x86, 0x54, 0x39, 0xfb, 0x12, 0xc4, 0x91, 0x97, 0xdf, 0x49, -0x19, 0x23, 0x23, 0x88, 0xcb, 0x94, 0x8c, 0xa4, 0x0c, 0xe7, 0x3c, 0x0d, 0x75, 0x7d, 0x71, 0x54, -0x9e, 0xf9, 0xec, 0x4d, 0xd2, 0xa5, 0x47, 0x6b, 0x71, 0x93, 0x47, 0xac, 0x79, 0xb0, 0x58, 0xf7, -0x26, 0x79, 0xde, 0x04, 0x89, 0xcd, 0x38, 0xab, 0xc7, 0xdc, 0x55, 0xec, 0xdd, 0xef, 0xb0, 0x3d, -0x96, 0xf5, 0xce, 0x1b, 0xa8, 0x02, 0xd3, 0xc1, 0x8e, 0x1a, 0xa4, 0xfe, 0x87, 0x4e, 0x83, 0x5c, -0xef, 0x01, 0x43, 0x7b, 0xd3, 0xbb, 0x91, 0x20, 0x72, 0x9d, 0xed, 0x8d, 0x47, 0x9b, 0x95, 0x36, -0xda, 0x6d, 0xc3, 0xd6, 0xf8, 0xbd, 0x1c, 0xe1, 0x84, 0xcb, 0x2b, 0x11, 0xb1, 0xf4, 0xa6, 0x86, -0xed, 0x31, 0x9f, 0x8c, 0x7c, 0xfb, 0x2c, 0xe4, 0xda, 0x67, 0x20, 0xcf, 0x6e, 0x44, 0x8e, 0x9d, -0x7d, 0xd1, 0xb2, 0xec, 0x38, 0x58, 0xf0, 0x85, 0x1e, 0x7d, 0x6f, 0x2a, 0x19, 0xff, 0x75, 0x5d, -0xa4, 0xa6, 0xd9, 0x1e, 0x53, 0x66, 0xdb, 0x67, 0x39, 0x66, 0xb4, 0xaf, 0x71, 0xce, 0x12, 0x5f, -0xd4, 0x36, 0x72, 0x9a, 0x85, 0x9f, 0x5e, 0xc6, 0x2f, 0xdb, 0x72, 0xdf, 0x1a, 0xf5, 0x6f, 0x4b, -0x28, 0x47, 0xdb, 0xb0, 0xdd, 0xe2, 0x98, 0xe1, 0x14, 0xf9, 0xde, 0xc4, 0x94, 0x19, 0x76, 0x51, -0x02, 0xed, 0x3f, 0x94, 0x0b, 0xcb, 0x73, 0x92, 0xbb, 0x39, 0x76, 0x4a, 0x8d, 0xa2, 0x47, 0x9b, -0xca, 0xfa, 0xd6, 0x6c, 0x46, 0x19, 0x11, 0xc7, 0xdc, 0x55, 0x35, 0x37, 0x6b, 0xfb, 0x4a, 0x7e, -0x36, 0x97, 0x83, 0xea, 0xe3, 0xd8, 0x68, 0x32, 0x5c, 0x9f, 0x2e, 0xe7, 0x6b, 0x49, 0xba, 0x8c, -0xaf, 0xb6, 0x54, 0xd9, 0xad, 0x74, 0x7e, 0x6d, 0x56, 0x2d, 0x81, 0xe7, 0x28, 0x8a, 0xd9, 0xed, -0x1c, 0xb1, 0x6c, 0xb9, 0x94, 0xf5, 0x26, 0xc9, 0xd1, 0xc4, 0xf6, 0xd0, 0xb9, 0x46, 0x2f, 0xc7, -0x59, 0x41, 0x7c, 0xfb, 0x14, 0xed, 0x77, 0x62, 0xcd, 0x1b, 0x70, 0x86, 0x37, 0x62, 0xed, 0x23, -0x54, 0xbb, 0x6b, 0x2e, 0xfb, 0x52, 0x52, 0x14, 0x31, 0xfe, 0x1b, 0x45, 0xd4, 0x87, 0xe6, 0x73, -0xe5, 0xb0, 0x40, 0x78, 0x16, 0x5b, 0xaa, 0x7b, 0x69, 0x41, 0x1c, 0x8a, 0xb2, 0x89, 0x1c, 0xdf, -0x33, 0x88, 0x42, 0x2b, 0x5c, 0xc7, 0x2b, 0xca, 0x6a, 0x6f, 0x11, 0xbe, 0x82, 0xbd, 0xdd, 0x60, -0x86, 0xc0, 0x4d, 0x7d, 0x48, 0x33, 0x16, 0xb0, 0x07, 0x8b, 0x36, 0x84, 0x5d, 0xf3, 0x81, 0x6e, -0x60, 0xdd, 0x15, 0xcb, 0x63, 0x38, 0x53, 0x72, 0xca, 0x4a, 0x31, 0x95, 0xdb, 0x23, 0x07, 0x43, -0x14, 0x51, 0x18, 0xdb, 0x5d, 0x05, 0xa5, 0xfc, 0x54, 0x05, 0x65, 0xed, 0x0d, 0x87, 0xc2, 0xf6, -0x96, 0xac, 0xfd, 0x93, 0x18, 0xc3, 0x9c, 0x47, 0xbb, 0xa5, 0x4c, 0xd9, 0xc9, 0x47, 0x1c, 0x47, -0xc6, 0x41, 0xca, 0x5e, 0x2e, 0x3c, 0x72, 0x09, 0xad, 0x1a, 0x5a, 0x3f, 0x76, 0x82, 0xe9, 0x08, -0x43, 0x9f, 0x44, 0xde, 0x28, 0xd9, 0xc3, 0xa3, 0xac, 0x47, 0x57, 0x7f, 0x44, 0xc4, 0xc1, 0x12, -0x27, 0x94, 0x16, 0x83, 0xbe, 0xcb, 0x91, 0x5d, 0x43, 0x5e, 0xa8, 0xe4, 0xdd, 0x71, 0xca, 0xb9, -0x54, 0xd8, 0x3a, 0x71, 0xe9, 0x15, 0xfa, 0x8a, 0xc9, 0xae, 0xce, 0x86, 0x42, 0xd8, 0x9e, 0x58, -0x23, 0xf6, 0x3a, 0xb2, 0xfb, 0x28, 0xba, 0x05, 0x5d, 0x2a, 0xeb, 0x45, 0xa9, 0x96, 0x76, 0x3a, -0xd9, 0x42, 0xc4, 0x95, 0xf3, 0x2c, 0x48, 0x73, 0x5c, 0xe5, 0x37, 0x41, 0x24, 0x12, 0x69, 0x68, -0x9a, 0xd4, 0xf6, 0xab, 0x14, 0xb5, 0xc8, 0x34, 0x81, 0xb3, 0x38, 0x42, 0xfa, 0x02, 0x0d, 0x48, -0x3b, 0x28, 0x9f, 0x19, 0x53, 0x8c, 0x98, 0x62, 0x1c, 0x25, 0x2b, 0x11, 0x40, 0xea, 0x3e, 0x3b, -0xf9, 0x98, 0xd0, 0xe3, 0x49, 0xbd, 0x79, 0x7b, 0x03, 0x98, 0x6e, 0x8f, 0x00, 0xf6, 0xc3, 0xc3, -0xde, 0x24, 0x0b, 0xea, 0xca, 0xd5, 0x43, 0xb5, 0xbe, 0x33, 0xee, 0x74, 0x83, 0x85, 0x6b, 0x2c, -0xc1, 0xba, 0x16, 0xab, 0x86, 0x97, 0x86, 0x49, 0xcf, 0x97, 0xca, 0xe2, 0x92, 0xce, 0xaa, 0x2d, -0xd7, 0x3a, 0x65, 0x4d, 0x99, 0xd5, 0xc0, 0xca, 0xf2, 0xc3, 0x9b, 0x9a, 0x27, 0x35, 0x17, 0xeb, -0xca, 0x3f, 0xce, 0xb9, 0x0f, 0xaa, 0x4e, 0xfc, 0xbe, 0x5c, 0x09, 0xb1, 0x16, 0xbe, 0x25, 0x65, -0xe3, 0x92, 0x36, 0xf3, 0xbb, 0x0f, 0x04, 0x06, 0x11, 0xed, 0x11, 0x35, 0xc6, 0x26, 0xa7, 0x4e, -0xaa, 0x47, 0xb9, 0x6d, 0x64, 0x21, 0x53, 0x99, 0x1f, 0x03, 0x6a, 0xe9, 0x5b, 0xe3, 0xd8, 0x56, -0x6a, 0x5b, 0x79, 0x95, 0x6d, 0x05, 0x60, 0xde, 0x5d, 0xaa, 0x7d, 0xc7, 0x70, 0xca, 0xe8, 0x28, -0x4a, 0xb9, 0xd4, 0xda, 0x6b, 0xb6, 0x4a, 0x76, 0x8a, 0x71, 0x10, 0x35, 0x1e, 0x50, 0x5d, 0x4a, -0x91, 0xea, 0xc8, 0xb6, 0x26, 0x6d, 0x71, 0x80, 0x6a, 0x5a, 0x51, 0x7a, 0x08, 0x5b, 0x3d, 0x35, -0xc8, 0x11, 0x4f, 0x45, 0xab, 0xdf, 0x25, 0xe8, 0x77, 0x54, 0x66, 0x7d, 0xa9, 0x4e, 0xc3, 0xbd, -0x42, 0x23, 0x2b, 0xf8, 0x05, 0xb8, 0xd7, 0x99, 0xc5, 0xbd, 0x6f, 0xed, 0xbe, 0x39, 0xce, 0x3a, -0x2d, 0x86, 0x86, 0x13, 0x28, 0xa3, 0x3c, 0x84, 0xd8, 0xb8, 0x0b, 0x9f, 0x91, 0x7e, 0xe7, 0x31, -0x9c, 0xf0, 0x76, 0xc3, 0xb6, 0xed, 0x1d, 0x58, 0x47, 0x27, 0x62, 0xba, 0xc5, 0x34, 0x1b, 0x48, -0xfd, 0x95, 0x5a, 0x5c, 0x55, 0x14, 0xdd, 0x3c, 0x17, 0x4f, 0xb1, 0xc0, 0x9b, 0xa1, 0x87, 0xe3, -0xa0, 0x8f, 0x44, 0x6b, 0xc9, 0xcb, 0x8c, 0x71, 0xe4, 0x95, 0x1a, 0x53, 0x22, 0xc4, 0x31, 0x1f, -0x57, 0xea, 0xf1, 0x18, 0x43, 0xc8, 0xa5, 0xb8, 0xd8, 0x73, 0x58, 0x2f, 0xf9, 0x31, 0x65, 0x4f, -0x91, 0x12, 0xa6, 0xb0, 0xf6, 0xb0, 0xb0, 0x07, 0x13, 0xfe, 0xb8, 0x71, 0x2c, 0x5b, 0xab, 0xbe, -0xd5, 0x09, 0x0b, 0x27, 0x2f, 0x0f, 0xd6, 0x46, 0x6b, 0x1a, 0x54, 0x17, 0x69, 0xe9, 0xbd, 0xf5, -0x06, 0x7e, 0xeb, 0x21, 0xfd, 0xbc, 0xb7, 0x7e, 0x43, 0x71, 0xfb, 0x48, 0xc7, 0xc8, 0x2e, 0xf4, -0xf0, 0x42, 0xd9, 0x95, 0xc2, 0xf3, 0xb8, 0x55, 0x68, 0x67, 0xa5, 0x5e, 0x57, 0x8c, 0x7a, 0xa4, -0x18, 0x97, 0x88, 0x4f, 0xcf, 0x16, 0x6f, 0x1e, 0x3a, 0x21, 0x71, 0xe6, 0x7c, 0xc4, 0xb9, 0x22, -0xbf, 0x1f, 0x5f, 0xa9, 0x10, 0x84, 0x5c, 0x36, 0x7a, 0x3b, 0x40, 0xc1, 0xb5, 0x83, 0x50, 0xa2, -0xeb, 0x77, 0x39, 0xb9, 0xe5, 0x46, 0xa4, 0x48, 0xf9, 0xba, 0x1c, 0xd9, 0xba, 0x94, 0x04, 0x7b, -0x63, 0xbc, 0x5f, 0xdd, 0x9f, 0x58, 0x93, 0xf7, 0x2c, 0xe7, 0x88, 0x90, 0x47, 0xb7, 0xe9, 0x5e, -0x2c, 0xf5, 0xb8, 0xef, 0x07, 0x71, 0xd5, 0x07, 0xe9, 0x4c, 0x86, 0xbc, 0xb0, 0x21, 0xd7, 0xd5, -0x22, 0xfc, 0xa5, 0x72, 0x1d, 0xc5, 0x50, 0x3b, 0xf1, 0x03, 0x92, 0x18, 0x50, 0xd6, 0x36, 0x5c, -0xa5, 0x67, 0x58, 0x7b, 0x85, 0xc7, 0x48, 0x31, 0x9e, 0x9e, 0xf0, 0xc7, 0x7c, 0xc2, 0x40, 0x23, -0x17, 0xd0, 0x47, 0xb3, 0x94, 0xbe, 0xf7, 0x77, 0xb3, 0xe7, 0x00, 0xc3, 0xdb, 0xfb, 0xbd, 0x0b, -0xa0, 0x5c, 0x1f, 0xdf, 0x4a, 0xf2, 0x3f, 0x46, 0x33, 0xc3, 0xa9, 0x0a, 0x9d, 0x46, 0x14, 0xd4, -0xe0, 0xc9, 0xf9, 0x89, 0x9c, 0xc5, 0xbe, 0x61, 0x2d, 0xc2, 0x4f, 0x64, 0x90, 0x24, 0x11, 0x4f, -0x16, 0x26, 0x14, 0x3a, 0xeb, 0x08, 0x51, 0x0f, 0xf4, 0x71, 0x09, 0x20, 0xbf, 0x73, 0x75, 0x6b, -0x03, 0xd7, 0x6c, 0xad, 0x0b, 0x5b, 0x6b, 0xa3, 0x19, 0x14, 0xfe, 0x40, 0xb9, 0xb5, 0x36, 0xfa, -0x9e, 0x35, 0x30, 0x4f, 0x81, 0x01, 0xdf, 0x95, 0xea, 0x6d, 0x2d, 0x67, 0x2d, 0xcc, 0x53, 0x58, -0x4a, 0x9c, 0xcf, 0x4d, 0x94, 0x82, 0xd2, 0x5d, 0x05, 0x2d, 0xf5, 0x42, 0x28, 0x39, 0xf6, 0xb9, -0x2a, 0xda, 0xca, 0xe7, 0x24, 0xae, 0xac, 0x1f, 0x4e, 0x86, 0x5f, 0xe6, 0x6d, 0xd9, 0xca, 0x31, -0xef, 0x0f, 0xf5, 0x13, 0x13, 0xac, 0x72, 0x1d, 0xd9, 0x84, 0x94, 0x80, 0xe4, 0xc4, 0x62, 0x41, -0x09, 0x6a, 0xe6, 0x81, 0xe1, 0x10, 0x4a, 0xe8, 0x48, 0x11, 0x8c, 0x07, 0x91, 0x42, 0x23, 0x04, -0x46, 0xab, 0x4a, 0x45, 0x4c, 0xef, 0x85, 0x93, 0x93, 0xa7, 0xd5, 0x36, 0x3d, 0xc6, 0x6b, 0xc2, -0x5f, 0x44, 0x5a, 0x3d, 0xf3, 0xc3, 0xe0, 0xf3, 0xc9, 0xa4, 0xdb, 0x33, 0x3f, 0x04, 0xfe, 0x44, -0xb8, 0xcf, 0x9f, 0x08, 0xf5, 0x55, 0x6f, 0xc7, 0x12, 0x7a, 0x5d, 0xa3, 0xf8, 0x7d, 0xaf, 0x3d, -0xef, 0x85, 0xd3, 0x1e, 0xcb, 0xaf, 0x90, 0x8c, 0x61, 0x74, 0x7d, 0xca, 0x38, 0xb7, 0x19, 0xf1, -0xb7, 0x95, 0x31, 0xc0, 0x56, 0xa7, 0x80, 0xd5, 0x67, 0x72, 0xb0, 0x6a, 0xcb, 0x8e, 0x36, 0x9f, -0xe5, 0xb5, 0xe0, 0x68, 0xb7, 0x22, 0x36, 0xee, 0x50, 0x22, 0x58, 0x9a, 0x83, 0x71, 0x89, 0xd2, -0x7c, 0xbe, 0x9c, 0xe2, 0xbe, 0x59, 0x52, 0xa5, 0x24, 0x83, 0xde, 0x7c, 0x83, 0x57, 0x9c, 0xff, -0x34, 0x56, 0x21, 0xdf, 0xdb, 0xba, 0x69, 0x85, 0x72, 0x88, 0x7a, 0x57, 0x8e, 0xd2, 0x48, 0x91, -0xe8, 0x1d, 0xf9, 0x4c, 0xf5, 0x55, 0x83, 0x6d, 0xa2, 0x57, 0xe0, 0x66, 0x6c, 0x73, 0x10, 0x9f, -0x4b, 0xf0, 0x99, 0x31, 0x33, 0x3e, 0xd7, 0x67, 0x47, 0x38, 0x4f, 0x17, 0x84, 0xf5, 0x11, 0xfb, -0x15, 0x67, 0xef, 0x7d, 0x58, 0xc3, 0x12, 0x6a, 0xad, 0x2a, 0xff, 0xf0, 0x37, 0x26, 0x03, 0x14, -0xa7, 0x2d, 0x7a, 0xea, 0x09, 0x4a, 0x65, 0x2c, 0x34, 0x48, 0x35, 0xfd, 0xe2, 0x37, 0xe9, 0x6e, -0x3e, 0x13, 0xac, 0xf5, 0xf6, 0x23, 0x45, 0x0f, 0xe2, 0xfc, 0x85, 0xae, 0xb2, 0xe2, 0xcc, 0x41, -0x74, 0x15, 0x8e, 0x45, 0x46, 0xa6, 0x13, 0xc4, 0x5c, 0x0b, 0x7b, 0xb8, 0x85, 0xbe, 0x5c, 0x0b, -0xf5, 0x51, 0x2e, 0x18, 0xd1, 0x82, 0x36, 0x2a, 0x06, 0x9d, 0xaa, 0xba, 0xf2, 0x1c, 0x9f, 0x98, -0x69, 0xa2, 0xaf, 0xbf, 0x1b, 0x77, 0xf4, 0xe8, 0xde, 0x41, 0xcb, 0x72, 0x3d, 0xbc, 0xc2, 0xf7, -0x63, 0xe4, 0x79, 0x92, 0x90, 0xb2, 0x9e, 0xa2, 0x7d, 0x44, 0x7d, 0xc8, 0x7f, 0xa3, 0xc3, 0x51, -0x48, 0xe9, 0xd8, 0xeb, 0x42, 0x95, 0xcf, 0x04, 0x4d, 0x93, 0x17, 0xdf, 0xa5, 0x53, 0x35, 0x81, -0x0f, 0xf4, 0x96, 0x64, 0x31, 0xcf, 0x63, 0x3a, 0xe6, 0x39, 0x86, 0xf4, 0x83, 0xb9, 0x94, 0xe4, -0x5f, 0x67, 0x4f, 0xe3, 0x50, 0xa2, 0x5d, 0xc9, 0x3b, 0x44, 0x71, 0x2c, 0xd7, 0x36, 0x4d, 0x7a, -0x5f, 0x93, 0x0e, 0x3c, 0xba, 0x9f, 0xce, 0xd3, 0x2f, 0x6d, 0xb0, 0x13, 0xa5, 0x77, 0xfe, 0x45, -0x37, 0xac, 0x03, 0xeb, 0x5f, 0xd0, 0x8e, 0x09, 0x40, 0xe9, 0xb7, 0xd8, 0x57, 0x1c, 0x7d, 0x9f, -0x97, 0x43, 0x49, 0xf6, 0x26, 0xdc, 0x42, 0xa7, 0x78, 0xc9, 0xbb, 0xb5, 0xe7, 0xb8, 0x96, 0x3e, -0xd6, 0xf8, 0x5c, 0xa9, 0x5b, 0xef, 0x3e, 0x7b, 0x8d, 0x7a, 0x50, 0xda, 0x40, 0xc8, 0xb0, 0xb3, -0xb5, 0xe3, 0xbb, 0x42, 0xb3, 0xf4, 0x46, 0x94, 0x49, 0xb5, 0x0f, 0xf8, 0xf7, 0x4c, 0x61, 0x6e, -0xf2, 0x83, 0x1b, 0x3e, 0xa3, 0x9d, 0xab, 0x8a, 0x6b, 0x93, 0x74, 0x4e, 0x8d, 0xf7, 0x17, 0xf0, -0xfe, 0x1c, 0x5e, 0xdf, 0xc5, 0xeb, 0xce, 0x2a, 0x6e, 0x9d, 0xb6, 0xeb, 0x2e, 0xbc, 0x6a, 0x7b, -0x32, 0x30, 0x68, 0xcb, 0x7d, 0xfb, 0x26, 0xb5, 0xa2, 0xe1, 0x8c, 0xb6, 0x2d, 0xdf, 0x5e, 0xfa, -0x2a, 0xaf, 0x85, 0x9e, 0xd5, 0x2a, 0x65, 0xef, 0xb9, 0x06, 0xe1, 0x43, 0x1e, 0xe5, 0x00, 0xbf, -0x72, 0x3d, 0x69, 0x2b, 0x48, 0x72, 0xba, 0x71, 0x09, 0xc7, 0x60, 0x93, 0x28, 0x3e, 0xee, 0x3a, -0xb5, 0x84, 0xef, 0x8b, 0xd3, 0xad, 0x7c, 0x35, 0xa6, 0x32, 0xea, 0x3d, 0x58, 0x43, 0x2d, 0x79, -0x19, 0xc8, 0x6b, 0x9d, 0x10, 0x7f, 0x98, 0x5e, 0x74, 0x73, 0x02, 0x4c, 0x6d, 0xdb, 0x10, 0x33, -0x9e, 0xc0, 0x15, 0x96, 0x70, 0xd2, 0x8c, 0xf7, 0x40, 0x6d, 0xc3, 0x49, 0xed, 0x3c, 0xf2, 0x83, -0xf9, 0xdc, 0x35, 0xed, 0xcf, 0x83, 0x07, 0xa9, 0xee, 0x32, 0xa4, 0x83, 0xf8, 0x2e, 0xbf, 0xbf, -0xa1, 0x5a, 0xa7, 0x3d, 0x1b, 0x28, 0x1e, 0x2b, 0x45, 0x6c, 0x25, 0x1d, 0x98, 0x16, 0xc8, 0xf2, -0xbb, 0x8a, 0x33, 0xeb, 0x87, 0x83, 0xbc, 0x88, 0x23, 0x74, 0x94, 0x56, 0x21, 0xd7, 0xa5, 0xce, -0x61, 0xde, 0xd6, 0x00, 0x52, 0x5a, 0x5c, 0xe5, 0x94, 0xe5, 0x16, 0xe2, 0x69, 0x0d, 0xaa, 0xc1, -0x81, 0x14, 0x17, 0x39, 0xd9, 0x48, 0x8e, 0x93, 0x3d, 0xd8, 0xf2, 0xde, 0x52, 0x43, 0x96, 0xe3, -0x61, 0xbc, 0xca, 0x31, 0x3e, 0x79, 0xa7, 0x07, 0x69, 0x13, 0x43, 0x6c, 0x34, 0x47, 0xcd, 0x5b, -0x0a, 0x68, 0xb9, 0x4f, 0xa7, 0xe5, 0xe1, 0xb7, 0xc6, 0x23, 0x23, 0x44, 0xc9, 0xf1, 0xdf, 0x84, -0xd0, 0xe7, 0x61, 0x0f, 0x3a, 0x21, 0xf2, 0xcc, 0xa6, 0x2d, 0xe6, 0x5d, 0x5d, 0xaf, 0xf0, 0x94, -0x40, 0x98, 0x91, 0x6a, 0xa2, 0xf3, 0x63, 0x2f, 0xc5, 0x50, 0x26, 0x1f, 0xa9, 0x39, 0xbe, 0x7c, -0xe2, 0xa7, 0x24, 0xce, 0xe2, 0x37, 0x2e, 0x31, 0x2b, 0xfa, 0x4c, 0x08, 0x1b, 0x72, 0x1d, 0xfe, -0x69, 0xc5, 0xc4, 0xfe, 0x60, 0x02, 0x6a, 0x25, 0x42, 0xe9, 0x93, 0x62, 0x2c, 0x28, 0x5f, 0x96, -0x87, 0xf5, 0xf4, 0x64, 0xe9, 0x29, 0xf9, 0x7b, 0xc5, 0x3c, 0x5b, 0xae, 0xe0, 0x36, 0xf1, 0xcb, -0x1c, 0x4d, 0x94, 0xc4, 0xf7, 0xba, 0x0c, 0x6f, 0x10, 0x5e, 0x9a, 0x49, 0xc2, 0x7c, 0x7b, 0x9c, -0x74, 0x33, 0xf4, 0x31, 0x2c, 0xd1, 0xc7, 0x90, 0xbd, 0xe2, 0x2a, 0xff, 0x40, 0xda, 0x33, 0x7c, -0xf7, 0x28, 0xb5, 0x51, 0x19, 0xc8, 0xb6, 0x9f, 0xb8, 0xd5, 0xb7, 0xc6, 0xdb, 0x9e, 0x03, 0xcb, -0xd5, 0xa9, 0xed, 0xd7, 0x48, 0x55, 0x7c, 0x26, 0xc1, 0xe7, 0xea, 0x1c, 0x14, 0x8d, 0x12, 0xe3, -0xae, 0x5a, 0x1c, 0xdb, 0x9a, 0x2c, 0xef, 0xed, 0x08, 0xe5, 0xb0, 0x84, 0xc4, 0xa3, 0x5e, 0xf9, -0x45, 0x1c, 0x54, 0x9e, 0x6f, 0x22, 0x0e, 0xc3, 0x47, 0xbb, 0x60, 0xe4, 0xdf, 0xd5, 0x35, 0x9d, -0xc3, 0x40, 0xce, 0xa2, 0x3c, 0x4c, 0x3b, 0x7f, 0xc4, 0x31, 0xa4, 0x98, 0x9f, 0xcf, 0xf2, 0x16, -0x95, 0x05, 0xbc, 0x45, 0xe5, 0x55, 0xbc, 0xc5, 0x3e, 0xe4, 0x2d, 0xca, 0xa7, 0xf1, 0x16, 0x9e, -0x2b, 0x24, 0x5d, 0x0b, 0x71, 0x17, 0xdf, 0xd9, 0xc4, 0x98, 0xcf, 0x96, 0x9b, 0xd3, 0x52, 0x9d, -0xab, 0x20, 0x3c, 0x4c, 0x1a, 0x1f, 0xe5, 0x8e, 0x2e, 0x9d, 0x52, 0x17, 0x62, 0x61, 0x43, 0x9e, -0x4f, 0x71, 0xfc, 0x55, 0x2b, 0x43, 0x23, 0x4a, 0x0e, 0xa2, 0x5d, 0x06, 0xfd, 0xbc, 0xd4, 0x30, -0x1d, 0x7b, 0x16, 0x7e, 0x25, 0xfa, 0xce, 0x78, 0xee, 0x6e, 0xb2, 0xbc, 0x98, 0x5f, 0xe7, 0x99, -0xc7, 0x36, 0xd6, 0x16, 0x17, 0xf9, 0x8b, 0x6e, 0x14, 0x11, 0xbb, 0x1d, 0xb9, 0x58, 0x0b, 0xe4, -0x8b, 0xfc, 0x57, 0xa7, 0x39, 0x82, 0xed, 0x09, 0xb2, 0x73, 0x33, 0x18, 0xb4, 0x8b, 0x3c, 0xf6, -0x95, 0x05, 0x3e, 0xab, 0xcf, 0x68, 0x17, 0xf3, 0xd0, 0x8e, 0xeb, 0x7f, 0xaf, 0x83, 0x34, 0x78, -0x84, 0x0f, 0xfb, 0x9d, 0x64, 0x4f, 0x0c, 0x2f, 0xb0, 0x07, 0x69, 0x03, 0x45, 0x74, 0x17, 0xf4, -0x8d, 0xca, 0x92, 0x4c, 0xda, 0x89, 0xaa, 0x06, 0xed, 0x34, 0x97, 0x2b, 0xb3, 0x9e, 0xa9, 0xe5, -0x2a, 0x7f, 0xd8, 0x05, 0x65, 0x57, 0xcf, 0xfe, 0xbf, 0x1e, 0x54, 0x9a, 0x94, 0x2d, 0xaa, 0x3d, -0x37, 0xfe, 0x67, 0xb0, 0x0f, 0xd9, 0xf1, 0x6f, 0x70, 0x44, 0xed, 0xd9, 0x5a, 0x5f, 0x50, 0x9a, -0x38, 0xea, 0x32, 0xcf, 0x5b, 0x6a, 0x82, 0x6b, 0x28, 0xd2, 0x5b, 0xfe, 0x05, 0xa5, 0xeb, 0x31, -0x54, 0xb6, 0x0b, 0xdf, 0xdf, 0xf6, 0xc6, 0x02, 0x3f, 0xcb, 0xd1, 0x69, 0xf3, 0x47, 0x7b, 0xdc, -0xe3, 0x02, 0xff, 0xd5, 0x92, 0xff, 0x36, 0x5a, 0x9d, 0x2e, 0x8e, 0x5f, 0xd9, 0x0d, 0x0e, 0x4f, -0x37, 0x2c, 0x26, 0xff, 0xda, 0x69, 0x8a, 0xa6, 0x42, 0x7a, 0x7a, 0xa6, 0x9a, 0xd6, 0xdf, 0xff, -0xa6, 0x66, 0x19, 0x98, 0xfd, 0x5d, 0x20, 0xff, 0xee, 0x35, 0x94, 0x59, 0x29, 0x46, 0x51, 0xc3, -0x20, 0x4a, 0xd6, 0x2c, 0xb5, 0xea, 0xa7, 0xca, 0x14, 0x29, 0x9b, 0x69, 0xff, 0xf1, 0x5b, 0x77, -0xb1, 0xb4, 0xae, 0x53, 0x0b, 0xb1, 0x17, 0x7a, 0xb5, 0xcf, 0x94, 0x0c, 0xe0, 0xb3, 0x89, 0x74, -0x13, 0xb3, 0x11, 0x3a, 0x19, 0x9a, 0x70, 0xf6, 0x8d, 0x3b, 0x79, 0xf6, 0x3d, 0x04, 0x13, 0x0e, -0x19, 0x39, 0xcb, 0x2e, 0x68, 0x44, 0xee, 0xd1, 0xe4, 0xeb, 0xe2, 0xdd, 0x47, 0xcb, 0xb5, 0xa0, -0x82, 0xa3, 0xc9, 0xe3, 0x1a, 0xb3, 0x7b, 0x19, 0x86, 0x4c, 0xf8, 0x3e, 0xa8, 0x9a, 0x95, 0xd0, -0xf6, 0xe7, 0xe4, 0x68, 0xda, 0xa8, 0xd8, 0x70, 0x0c, 0xcf, 0x65, 0x6d, 0x75, 0x6a, 0xfd, 0xa4, -0x45, 0x83, 0xfd, 0x0d, 0xd5, 0x7a, 0xa1, 0xae, 0xc6, 0x4b, 0x7c, 0x88, 0x71, 0xe7, 0xcf, 0xf6, -0x50, 0x7c, 0x5f, 0xa6, 0x63, 0x15, 0x64, 0xbd, 0x83, 0x94, 0xa6, 0x1c, 0xb9, 0x08, 0xe6, 0x04, -0x79, 0xff, 0x9c, 0x22, 0xa1, 0xae, 0xbc, 0x25, 0x62, 0xdc, 0x89, 0xf9, 0xb6, 0x0a, 0xdf, 0x1a, -0x1a, 0xca, 0x52, 0x96, 0xa8, 0xa6, 0xa5, 0x0c, 0xb5, 0x6e, 0x68, 0xb4, 0x34, 0xd0, 0x1d, 0xca, -0xe5, 0x51, 0x7f, 0x10, 0xfe, 0x3f, 0xfe, 0x30, 0xae, 0xb7, 0x0a, 0x7b, 0x08, 0x67, 0xc1, 0x47, -0x38, 0x04, 0x7b, 0xa1, 0x6c, 0x3e, 0x81, 0x1c, 0xb1, 0x0b, 0xec, 0x9b, 0xbb, 0x60, 0x8e, 0x8f, -0xf4, 0xa0, 0x66, 0x8e, 0x6e, 0xe8, 0x95, 0x6b, 0x67, 0xfa, 0x1a, 0xf0, 0x5e, 0xa2, 0xfb, 0x1a, -0xe9, 0xf6, 0x28, 0x34, 0xa2, 0x84, 0x1a, 0x6d, 0x22, 0xae, 0x1f, 0xf9, 0x45, 0xb2, 0x47, 0x7c, -0xb8, 0x45, 0x58, 0xcc, 0xdf, 0xfe, 0xbe, 0x12, 0xb1, 0x37, 0x8b, 0x96, 0xf0, 0x4e, 0xdb, 0xeb, -0xe2, 0x74, 0x6b, 0xd6, 0x2a, 0xa1, 0x95, 0xc0, 0x31, 0x49, 0xcb, 0xb3, 0x7a, 0x59, 0xec, 0xe5, -0xc3, 0xc5, 0x9c, 0x6c, 0x8f, 0xfc, 0xbe, 0x7e, 0xc2, 0x44, 0x7e, 0xba, 0x6d, 0x0d, 0x14, 0x1b, -0xa9, 0x99, 0xbc, 0xcf, 0x24, 0xf0, 0x6d, 0xba, 0x6b, 0xc1, 0x29, 0xe3, 0xfb, 0x05, 0xbb, 0xec, -0xf7, 0xb8, 0x7b, 0x8c, 0x87, 0x97, 0x4b, 0x0b, 0x27, 0xa7, 0xb6, 0xab, 0x75, 0xec, 0x27, 0x7e, -0x2b, 0x73, 0x18, 0x62, 0x46, 0x0c, 0xc8, 0xe5, 0x21, 0xac, 0x20, 0x0e, 0xe9, 0xd3, 0xa1, 0x90, -0xfc, 0x83, 0x96, 0xe7, 0xd7, 0x0f, 0xe9, 0xa1, 0xec, 0x0d, 0xb9, 0xef, 0x4e, 0x3c, 0x9e, 0xda, -0x53, 0xb8, 0x77, 0x4f, 0x9a, 0x1e, 0x64, 0x37, 0xc7, 0x27, 0x0d, 0x96, 0xbc, 0x0f, 0x6b, 0x8a, -0x09, 0x99, 0x59, 0x3a, 0x98, 0xd7, 0x02, 0xa9, 0x73, 0x40, 0xda, 0x64, 0x0f, 0xf1, 0x1e, 0x4c, -0x1d, 0x71, 0xd9, 0x21, 0x3d, 0x37, 0xd9, 0x08, 0xa6, 0x1d, 0x57, 0xe5, 0x2d, 0x55, 0x1a, 0xec, -0xa1, 0xcc, 0xd2, 0xfc, 0x89, 0x42, 0x56, 0x1b, 0x95, 0xbe, 0xcb, 0x59, 0x8f, 0x74, 0x43, 0xe3, -0x95, 0xbb, 0xee, 0xf6, 0x44, 0xfe, 0x2b, 0xad, 0x5a, 0x68, 0xfb, 0x10, 0x46, 0x55, 0xec, 0x8c, -0xbd, 0xb0, 0x5d, 0x79, 0x4f, 0x82, 0xc4, 0xa1, 0x39, 0x5a, 0x19, 0x32, 0x23, 0x6d, 0xdd, 0x30, -0x27, 0xbf, 0xfb, 0xcf, 0xfb, 0x36, 0x96, 0xf9, 0xdd, 0x50, 0x0a, 0xb6, 0x9b, 0xba, 0xa1, 0x0c, -0x4a, 0xf0, 0xf7, 0xeb, 0xf0, 0xb5, 0xf0, 0xc7, 0xba, 0xd6, 0xd1, 0x4e, 0x07, 0xe4, 0xcb, 0x69, -0xc7, 0x6f, 0xa9, 0x7d, 0x05, 0x5e, 0x9e, 0xc9, 0x96, 0xd0, 0xa0, 0xcb, 0x6b, 0xfb, 0xa9, 0xbd, -0xb8, 0x32, 0xa2, 0xfa, 0x1e, 0x7c, 0x6d, 0xde, 0xf2, 0x95, 0xe4, 0x94, 0x11, 0x94, 0xb6, 0x70, -0xf4, 0x3b, 0x84, 0x84, 0x35, 0x22, 0x43, 0x25, 0x3e, 0x75, 0x92, 0x3c, 0x47, 0x9e, 0xce, 0xc1, -0x81, 0x4f, 0x8b, 0x49, 0xba, 0x25, 0x5f, 0xf5, 0xe0, 0x61, 0x6f, 0xfd, 0x3e, 0x7e, 0x02, 0x94, -0xd6, 0x06, 0x40, 0x45, 0xfe, 0x98, 0xfd, 0xd9, 0x43, 0x10, 0x9f, 0x96, 0x42, 0x48, 0xe9, 0x97, -0x8f, 0x91, 0x76, 0xcc, 0xe5, 0x75, 0x05, 0x7b, 0xf6, 0xb5, 0xf9, 0x88, 0xc2, 0xee, 0x2a, 0x58, -0xcc, 0xba, 0xfd, 0xad, 0x1e, 0x70, 0x21, 0x57, 0x23, 0x6c, 0xbc, 0xd2, 0x8b, 0x94, 0x5e, 0xe8, -0x1c, 0x34, 0xf0, 0x09, 0x7e, 0x68, 0xd0, 0xb4, 0x7d, 0xf8, 0x3e, 0xd2, 0xf9, 0xf3, 0x21, 0xbe, -0xf5, 0xd4, 0xc3, 0x87, 0xff, 0xe5, 0x58, 0xfc, 0x91, 0x50, 0xec, 0x54, 0x51, 0x60, 0xa5, 0x24, -0x3f, 0xc8, 0xb1, 0xb6, 0x4f, 0x83, 0xc7, 0xe9, 0x86, 0x2e, 0x87, 0x1b, 0x96, 0xda, 0xdd, 0xa0, -0x2a, 0x86, 0x89, 0x07, 0x11, 0x32, 0xe8, 0xeb, 0x17, 0xda, 0xd6, 0xc5, 0x4e, 0x22, 0xb6, 0x30, -0x8c, 0xae, 0x4b, 0x1d, 0x45, 0x58, 0x33, 0xa2, 0x6c, 0x75, 0xa0, 0x75, 0x93, 0x1e, 0x0f, 0x18, -0x57, 0x19, 0xae, 0x55, 0xe1, 0x61, 0x9d, 0xd6, 0x5b, 0x37, 0x61, 0x61, 0xfa, 0xb7, 0xb9, 0xe1, -0x3e, 0xf2, 0x62, 0xe0, 0x35, 0xe1, 0xdd, 0x52, 0x71, 0x17, 0xef, 0xc6, 0xd1, 0xc0, 0x5c, 0x53, -0x63, 0xec, 0x9d, 0xeb, 0x26, 0xe1, 0xad, 0x29, 0x63, 0x29, 0x84, 0x96, 0x04, 0xef, 0xc0, 0x28, -0x3f, 0x05, 0xd3, 0x6d, 0x03, 0xe4, 0xe1, 0x0f, 0x7f, 0x4b, 0xc0, 0x38, 0x28, 0xdd, 0x1c, 0x46, -0xfc, 0xf4, 0x57, 0x7a, 0x8d, 0xb4, 0xc7, 0xe1, 0x15, 0x35, 0x7e, 0xde, 0x89, 0x9c, 0x9d, 0xa9, -0x93, 0x7c, 0xf2, 0xd9, 0x70, 0x2c, 0x2d, 0x54, 0xaa, 0x0a, 0x9f, 0xfb, 0x48, 0x27, 0x2c, 0x6b, -0xb5, 0xe2, 0xe9, 0xc5, 0x31, 0xa2, 0xc8, 0x52, 0x1e, 0x07, 0x50, 0xc4, 0x92, 0x76, 0xf2, 0x26, -0x80, 0xdf, 0xa4, 0x4a, 0x1d, 0xed, 0xe4, 0xaf, 0xde, 0xde, 0x9c, 0xb1, 0xe4, 0xa1, 0xcc, 0xdb, -0x82, 0xad, 0x8c, 0x40, 0x39, 0xe9, 0x10, 0xa9, 0x30, 0xf9, 0x81, 0x90, 0x1c, 0x83, 0xb4, 0x56, -0x49, 0x77, 0x32, 0xe4, 0xf6, 0x42, 0x94, 0x70, 0x12, 0xdb, 0x98, 0x1f, 0x41, 0x02, 0xc6, 0x2b, -0x56, 0xe9, 0xc0, 0x35, 0xe6, 0x13, 0x6b, 0x56, 0x4f, 0x89, 0x91, 0xd4, 0x2b, 0x52, 0xdc, 0x3d, -0x10, 0xec, 0xdc, 0xe4, 0x08, 0xc2, 0xbf, 0x45, 0x1e, 0x5e, 0x38, 0xa9, 0x2d, 0x55, 0xef, 0xa7, -0xb8, 0x1b, 0x74, 0xe6, 0xa2, 0x96, 0x29, 0x2e, 0x49, 0x1e, 0xdd, 0x92, 0xb2, 0x5c, 0xbf, 0x0c, -0x8a, 0xa1, 0x15, 0x7f, 0x67, 0xc0, 0x77, 0xf4, 0xb3, 0x92, 0xf7, 0x95, 0x3e, 0x39, 0xfe, 0x33, -0x94, 0xb5, 0x53, 0x2d, 0xfa, 0xca, 0x26, 0xf8, 0xf1, 0x21, 0x2d, 0xe8, 0x93, 0x79, 0xcf, 0x3e, -0x1d, 0x28, 0xc0, 0xb5, 0x8e, 0x02, 0x7e, 0xb0, 0x92, 0xe5, 0xe0, 0x80, 0x12, 0x49, 0x8e, 0xf0, -0x5d, 0x6d, 0x72, 0x6b, 0x15, 0xb6, 0x5d, 0x8e, 0xb3, 0x8e, 0x63, 0xd6, 0x9f, 0xea, 0x90, 0xa3, -0xd4, 0xf5, 0x40, 0xa2, 0x21, 0xc5, 0x36, 0xed, 0x9f, 0xf7, 0x76, 0x6e, 0x52, 0x22, 0xdc, 0xde, -0xfb, 0xf1, 0x1b, 0x43, 0x72, 0xec, 0xb3, 0x93, 0x34, 0xcf, 0x43, 0x41, 0x21, 0x7f, 0x8a, 0xfd, -0x7e, 0x9f, 0x17, 0xac, 0xf1, 0x71, 0xbf, 0x17, 0x4a, 0xe2, 0xbb, 0xf5, 0xb8, 0x10, 0xb6, 0x82, -0xb8, 0xce, 0x08, 0x0b, 0xf6, 0x7c, 0xc4, 0x67, 0x73, 0xd6, 0x13, 0xbe, 0xfd, 0x0b, 0x3d, 0xe1, -0x67, 0x7d, 0x40, 0x5d, 0xeb, 0xfb, 0xa9, 0x97, 0xa7, 0x97, 0x5c, 0x78, 0xce, 0xa0, 0xe8, 0x74, -0x84, 0x63, 0xf4, 0x9a, 0x4a, 0x82, 0x60, 0xdc, 0x3e, 0x9c, 0x32, 0xd2, 0xce, 0x62, 0xf2, 0xbf, -0xfb, 0x48, 0x33, 0x8d, 0xf7, 0xe4, 0x69, 0x57, 0x47, 0xf1, 0xea, 0x11, 0xd4, 0x51, 0xf2, 0x27, -0xef, 0xf6, 0x41, 0x2f, 0x34, 0x2a, 0x64, 0x53, 0x84, 0xd8, 0xa3, 0xb6, 0xb8, 0x3d, 0x7a, 0x78, -0x00, 0x12, 0xf5, 0xc6, 0xf6, 0xa6, 0x77, 0x07, 0x20, 0x39, 0x38, 0x1b, 0x57, 0x0a, 0xc0, 0xbe, -0x82, 0x58, 0x4e, 0xbd, 0xf8, 0x37, 0x06, 0x95, 0xf8, 0x4f, 0x57, 0xf1, 0xb7, 0x0b, 0xf6, 0xd1, -0xbf, 0xb7, 0x88, 0x75, 0x8c, 0x69, 0x87, 0x5c, 0xc6, 0x59, 0xed, 0x4c, 0x6e, 0xad, 0x6b, 0xaa, -0x8d, 0xb2, 0x3e, 0x85, 0xe6, 0xb5, 0xf0, 0x89, 0x39, 0xcb, 0xc2, 0x53, 0x53, 0x1c, 0xcd, 0x77, -0x2d, 0xe7, 0xa6, 0xbd, 0x78, 0x99, 0x23, 0xf9, 0xce, 0x16, 0x6f, 0x35, 0x63, 0x7b, 0x94, 0xb5, -0xa7, 0x92, 0x57, 0x94, 0x67, 0xc2, 0xf2, 0x1a, 0x6b, 0x63, 0xf9, 0x9c, 0x53, 0x47, 0xf5, 0x1c, -0x7a, 0x19, 0x64, 0xcd, 0x5f, 0xbd, 0xd6, 0xd7, 0x44, 0xf5, 0xc4, 0xfb, 0x90, 0xc6, 0x8b, 0x5c, -0x23, 0x6d, 0x31, 0xa2, 0x32, 0x7f, 0xf7, 0x5b, 0xd5, 0x50, 0x47, 0xde, 0x30, 0xde, 0x50, 0x8d, -0x7f, 0xf7, 0x5b, 0xf2, 0x70, 0x91, 0x88, 0xa5, 0xd8, 0x1b, 0x5f, 0xa2, 0x31, 0xc5, 0x6f, 0x32, -0xd2, 0xe8, 0x0f, 0xd2, 0x96, 0x41, 0xe3, 0xf6, 0x1f, 0xa4, 0xcc, 0xb6, 0x20, 0x98, 0x54, 0x63, -0xc6, 0x84, 0x3c, 0x81, 0xd1, 0x5b, 0xe4, 0xf3, 0x9b, 0x40, 0xf8, 0xe7, 0xe3, 0x9a, 0xc6, 0xa6, -0x86, 0xe2, 0xbf, 0x8e, 0xef, 0x0b, 0x62, 0x5b, 0x7c, 0x2d, 0xed, 0x71, 0x5f, 0x3c, 0x9e, 0x59, -0x09, 0x88, 0x07, 0x8d, 0xa4, 0xd1, 0xe9, 0x46, 0xa8, 0x8e, 0x06, 0x49, 0x67, 0x2d, 0xbe, 0x57, -0xf4, 0xd3, 0x6b, 0xf4, 0x2d, 0x14, 0xb9, 0xe2, 0xe0, 0x35, 0xc6, 0xfb, 0xb1, 0x65, 0xb2, 0xae, -0xd3, 0x56, 0x7e, 0x45, 0x9d, 0x46, 0xac, 0xd3, 0x88, 0x75, 0x9a, 0xae, 0x51, 0x27, 0x47, 0x41, -0xf4, 0x1a, 0x7c, 0xb3, 0xe3, 0xe3, 0x4a, 0x63, 0x3c, 0x63, 0xa2, 0xdd, 0x51, 0xf2, 0x97, 0x45, -0xba, 0x3e, 0x0e, 0x2f, 0x52, 0x60, 0x6f, 0x13, 0x84, 0xda, 0xd7, 0x79, 0xa3, 0x88, 0x2b, 0x9b, -0xa0, 0x76, 0xe1, 0x85, 0x71, 0xf0, 0x26, 0x11, 0x8b, 0x46, 0xb2, 0xfe, 0xff, 0x2f, 0xaf, 0x8f, -0xff, 0x7b, 0x3d, 0x69, 0xe4, 0x3a, 0x3c, 0xc8, 0x7b, 0xbb, 0x10, 0x16, 0xdc, 0x42, 0x3b, 0x97, -0x7c, 0xde, 0x3a, 0x68, 0xfe, 0x6b, 0x06, 0xc8, 0x7f, 0xa5, 0x77, 0x16, 0xcf, 0x95, 0x1c, 0x9b, -0xbc, 0x5c, 0x99, 0xdc, 0x8c, 0xcf, 0xc5, 0x7a, 0x4d, 0x1e, 0xa1, 0x87, 0xed, 0x9d, 0xd5, 0xd6, -0x28, 0x72, 0x24, 0x37, 0xd3, 0x5a, 0xc0, 0xba, 0x3d, 0xde, 0x18, 0xb8, 0xda, 0xa8, 0x6e, 0x07, -0x59, 0xcc, 0xb7, 0xbc, 0x67, 0x19, 0x52, 0xe1, 0xd2, 0x25, 0xc4, 0x15, 0x6f, 0x20, 0xdc, 0x91, -0xa4, 0xc4, 0x71, 0x77, 0xe8, 0xec, 0xa1, 0x7a, 0x5a, 0x54, 0x31, 0x7c, 0xb3, 0xd4, 0x4b, 0xf2, -0x5f, 0x4b, 0xa4, 0x31, 0x12, 0x8b, 0x44, 0x57, 0xd0, 0xf9, 0x07, 0xc0, 0x49, 0xbb, 0xcd, 0xb2, -0x9a, 0x7c, 0xc1, 0x10, 0x27, 0xbb, 0xc4, 0xc7, 0xf7, 0x86, 0x74, 0xdb, 0x12, 0x2b, 0xdf, 0x15, -0x21, 0xc7, 0xbb, 0x1f, 0x73, 0xed, 0xe2, 0xa7, 0x62, 0x92, 0xd8, 0xf9, 0xce, 0x48, 0x7e, 0xd4, -0xd5, 0xec, 0x53, 0x79, 0xda, 0x89, 0x12, 0x32, 0xdd, 0xcd, 0xc6, 0xf4, 0x27, 0x54, 0x07, 0xdf, -0x7f, 0x03, 0x25, 0x64, 0xba, 0x2a, 0x2c, 0x35, 0x0f, 0x0e, 0x49, 0xea, 0x10, 0x9d, 0xed, 0x38, -0x36, 0x20, 0xf5, 0x34, 0xa9, 0x19, 0x96, 0x45, 0x2d, 0x24, 0x61, 0x91, 0xc7, 0x93, 0xb4, 0x7a, -0x9f, 0x19, 0xd7, 0x52, 0x11, 0xae, 0x82, 0x0e, 0xb5, 0x63, 0xd0, 0xbc, 0x7d, 0x78, 0x49, 0x0b, -0x3e, 0x7f, 0x7d, 0xfb, 0xf0, 0xd2, 0x46, 0xbc, 0x56, 0x50, 0xec, 0x38, 0x35, 0xc8, 0xba, 0xf2, -0x35, 0x0e, 0x50, 0xfd, 0xe4, 0x97, 0x5f, 0xf5, 0x24, 0x50, 0xee, 0x49, 0x39, 0xa1, 0x1b, 0x57, -0x8b, 0x4d, 0x9d, 0x83, 0x33, 0x4c, 0xcf, 0x65, 0xf8, 0x2c, 0xe1, 0xb3, 0x95, 0x6b, 0x40, 0xd8, -0x5a, 0x25, 0x91, 0x2f, 0x1a, 0x3a, 0xcd, 0xf6, 0x34, 0xe5, 0x24, 0x5e, 0xd0, 0x4c, 0x4a, 0x9b, -0xd8, 0x9b, 0x90, 0xee, 0x4d, 0x44, 0x53, 0x20, 0x75, 0x5a, 0x5a, 0xa9, 0xbf, 0x52, 0xeb, 0xa0, -0xd5, 0x1b, 0x86, 0x56, 0xfc, 0xef, 0xc0, 0xb1, 0x2b, 0x95, 0x43, 0x20, 0x93, 0xe7, 0x77, 0xd6, -0x0b, 0x7f, 0x28, 0x75, 0x2f, 0x7b, 0x0e, 0xfb, 0x14, 0x9c, 0x37, 0x85, 0xc0, 0x8d, 0x79, 0x02, -0x38, 0x27, 0xb5, 0x34, 0xf3, 0x99, 0x56, 0xd6, 0xab, 0x0e, 0x62, 0xbe, 0x8e, 0x03, 0x9b, 0xf0, -0x8d, 0xb0, 0x34, 0x17, 0x3b, 0x8c, 0x71, 0xec, 0x79, 0x8d, 0xa3, 0x4b, 0xf7, 0x1f, 0x06, 0x70, -0xa8, 0x00, 0x7b, 0x3a, 0x73, 0x1c, 0x38, 0x8e, 0x73, 0xec, 0x43, 0xed, 0x2c, 0x62, 0x96, 0x87, -0x97, 0x9a, 0xb8, 0xd7, 0x0f, 0xa5, 0x3a, 0xd8, 0x5e, 0xfc, 0x13, 0xbd, 0xbe, 0x05, 0x57, 0xd7, -0x37, 0x78, 0x45, 0x6d, 0x7a, 0x4d, 0xbd, 0x5c, 0x53, 0xef, 0x35, 0xeb, 0x59, 0xc4, 0x65, 0x7e, -0xfa, 0xd5, 0xcb, 0x2c, 0xe8, 0x41, 0xe6, 0x2a, 0xa9, 0x2d, 0x57, 0x2e, 0xf9, 0x46, 0xbf, 0x63, -0x00, 0xda, 0xc0, 0x80, 0xeb, 0xdc, 0x82, 0x77, 0x8b, 0x70, 0x95, 0x19, 0x22, 0x21, 0x8e, 0xea, -0xfa, 0x5e, 0x0b, 0xd9, 0xe7, 0x05, 0x72, 0x3a, 0xeb, 0xf5, 0x59, 0xcc, 0x48, 0x7b, 0xa2, 0x24, -0xaf, 0xeb, 0xd1, 0xcf, 0xfc, 0xd7, 0x88, 0x7e, 0x46, 0xe9, 0x95, 0x79, 0xe9, 0x35, 0xf2, 0x02, -0x58, 0x22, 0x5b, 0xf0, 0xd7, 0x10, 0xe9, 0xc5, 0x35, 0x31, 0x5b, 0x78, 0xbd, 0xb8, 0x34, 0x25, -0xf4, 0x0a, 0x53, 0x73, 0x88, 0xfa, 0x15, 0x46, 0x09, 0x73, 0x44, 0x0a, 0x46, 0xf8, 0x40, 0xa6, -0x62, 0x14, 0xbf, 0x47, 0x5c, 0xfb, 0xa2, 0xe2, 0x01, 0x4b, 0x01, 0xbe, 0xcd, 0xe2, 0xd8, 0xa7, -0xf9, 0x5f, 0xfc, 0x65, 0xd3, 0x6a, 0x72, 0x77, 0x63, 0x05, 0xf9, 0xf0, 0x7d, 0x8c, 0xf8, 0xdb, -0xac, 0xd7, 0xbe, 0x2c, 0x2f, 0x26, 0xc3, 0x8d, 0x28, 0x6d, 0x13, 0x87, 0xe5, 0xe2, 0xa7, 0xaf, -0x83, 0x87, 0x6c, 0x7f, 0xf0, 0x39, 0xc0, 0x91, 0xa6, 0x6a, 0x1f, 0xdd, 0xdf, 0xf0, 0x19, 0xfc, -0xeb, 0xe3, 0xdf, 0x24, 0xee, 0x8a, 0xe2, 0xae, 0xb1, 0x07, 0x94, 0xda, 0x2f, 0x69, 0x77, 0xc5, -0x17, 0xbf, 0xd3, 0xad, 0xab, 0x74, 0xad, 0x7c, 0x1c, 0xdd, 0x80, 0x38, 0x13, 0x26, 0x47, 0xb8, -0x92, 0x01, 0xf9, 0x86, 0x4b, 0xde, 0x5e, 0x70, 0xc0, 0x22, 0xbc, 0x5b, 0xc4, 0x5a, 0x8f, 0x98, -0x22, 0x76, 0xfa, 0x17, 0x9c, 0x35, 0x81, 0xa7, 0xd1, 0xd9, 0xcf, 0x31, 0x39, 0x4c, 0x13, 0xad, -0xf3, 0x43, 0xd0, 0x56, 0x17, 0xf2, 0x57, 0x83, 0xf9, 0x00, 0xca, 0x73, 0xf3, 0x11, 0xfe, 0x03, -0x61, 0x8e, 0x3c, 0x5b, 0x5c, 0xeb, 0x02, 0x63, 0xbd, 0xc1, 0x17, 0x6b, 0x8f, 0xcf, 0x8f, 0x43, -0xf2, 0x2d, 0xa4, 0x57, 0xf3, 0xf1, 0x1f, 0x1a, 0xfd, 0xd1, 0xf6, 0x05, 0xf3, 0x17, 0x40, 0xeb, -0xdb, 0x48, 0xd5, 0x30, 0xa5, 0x15, 0x12, 0xf6, 0x0e, 0xdf, 0x5c, 0xb1, 0x66, 0x84, 0x15, 0xa3, -0xd2, 0x9e, 0xb3, 0x50, 0x74, 0xd1, 0xce, 0x15, 0x43, 0xde, 0x45, 0xe8, 0x47, 0xc8, 0xbb, 0x17, -0xff, 0x07, 0xbd, 0xcd, 0xb0, 0x32, 0x88, 0x30, 0x83, 0xf8, 0x33, 0x82, 0xff, 0x43, 0x78, 0xdf, -0x81, 0xd7, 0x7a, 0xfc, 0x1f, 0xc6, 0x56, 0x16, 0xe3, 0x98, 0xad, 0x1b, 0x04, 0xbf, 0x01, 0xa1, -0x71, 0x03, 0xf6, 0xc3, 0x02, 0x75, 0xc8, 0x87, 0xd4, 0xc1, 0x46, 0x4f, 0xa3, 0xb7, 0x1f, 0x9f, -0xee, 0xc1, 0xa7, 0x7b, 0x60, 0x04, 0xe1, 0x73, 0x0b, 0xc2, 0xf1, 0xf2, 0x6c, 0x5d, 0x72, 0x1b, -0xd7, 0x15, 0x87, 0x27, 0x78, 0xb5, 0x5e, 0x84, 0xa7, 0x6e, 0x1a, 0x80, 0x7b, 0xe1, 0x19, 0xac, -0xed, 0xc7, 0xf8, 0x45, 0x04, 0xb6, 0xe1, 0x6f, 0x3d, 0xbc, 0x88, 0xa5, 0x6f, 0xc7, 0x92, 0x5f, -0xe2, 0x32, 0xc7, 0xb8, 0xac, 0x5d, 0x58, 0xd6, 0x1e, 0x2c, 0xeb, 0x47, 0x1c, 0xd1, 0x3a, 0x8e, -0xb4, 0x96, 0x5a, 0x7c, 0x01, 0x5e, 0xe7, 0x12, 0xde, 0xc4, 0x12, 0x0e, 0x72, 0x09, 0x87, 0xb9, -0x84, 0xa3, 0x58, 0xc2, 0x31, 0x2c, 0xe1, 0x7d, 0x2e, 0xe1, 0x04, 0x97, 0x70, 0x1a, 0x4b, 0x38, -0x8b, 0x25, 0x4c, 0xe0, 0xd7, 0xe7, 0x39, 0x1a, 0x6e, 0x03, 0x9d, 0xb7, 0x67, 0xe1, 0xee, 0xfa, -0xe1, 0xe9, 0x70, 0x67, 0x5b, 0x27, 0xfe, 0xae, 0xcf, 0xd8, 0x5e, 0xbc, 0x3e, 0x23, 0xfe, 0x8a, -0x0e, 0x18, 0x27, 0xcd, 0xf6, 0xd9, 0xf7, 0x22, 0xdc, 0xbd, 0x6f, 0x3b, 0x7c, 0x3d, 0x5c, 0xdf, -0x92, 0xfb, 0x13, 0x39, 0x9c, 0x4a, 0xb3, 0xbd, 0x17, 0x71, 0x69, 0x23, 0x6b, 0x72, 0x92, 0x55, -0x9e, 0x39, 0xbe, 0x7b, 0x39, 0x38, 0x3a, 0x90, 0x53, 0x59, 0x84, 0x50, 0xb5, 0x35, 0x23, 0x29, -0x8d, 0x88, 0x0d, 0x2d, 0x29, 0xb8, 0xde, 0xf6, 0xfe, 0xc2, 0x80, 0xe1, 0xfd, 0xc4, 0x13, 0x91, -0x27, 0x22, 0xde, 0x22, 0xa5, 0x63, 0xda, 0xd9, 0x3c, 0xae, 0x9b, 0x4f, 0x2b, 0xea, 0x90, 0x66, -0x3c, 0xb9, 0xa7, 0x6e, 0xe1, 0x41, 0xa4, 0x1b, 0xc1, 0x48, 0x20, 0x76, 0xf0, 0x63, 0xb8, 0x37, -0x90, 0x40, 0x88, 0x9e, 0xed, 0x35, 0xef, 0xbf, 0xb4, 0xed, 0xf9, 0x48, 0x34, 0x1e, 0x3d, 0xde, -0x12, 0x5f, 0x81, 0x34, 0x95, 0xb4, 0xba, 0xbc, 0x92, 0xb2, 0x60, 0xf2, 0x33, 0x85, 0x3d, 0x3e, -0x3a, 0x22, 0x3f, 0xf4, 0x5a, 0x7d, 0x58, 0xe7, 0xc8, 0xab, 0x48, 0x75, 0xbb, 0x90, 0x82, 0xce, -0x46, 0x5e, 0x5b, 0xe2, 0x5c, 0xa5, 0x9c, 0xa3, 0x52, 0x05, 0xdb, 0x23, 0xf6, 0x46, 0x65, 0x2e, -0x58, 0x98, 0x63, 0x2a, 0x15, 0x1c, 0x13, 0xdb, 0x44, 0x19, 0x86, 0x8a, 0x22, 0x03, 0xd0, 0xa8, -0x9a, 0x07, 0x8b, 0x86, 0x0c, 0xf3, 0x69, 0x5f, 0xb9, 0x71, 0x5a, 0x0b, 0xad, 0xd4, 0x42, 0xe2, -0x5d, 0xa3, 0x43, 0x38, 0xc6, 0xf5, 0xc4, 0x53, 0x52, 0x5b, 0x11, 0x46, 0xee, 0x61, 0xde, 0xc4, -0xea, 0x25, 0xad, 0x38, 0x2f, 0xdc, 0xeb, 0x9d, 0x15, 0x9b, 0xbc, 0x50, 0xc2, 0x34, 0x12, 0xb9, -0x00, 0x84, 0x41, 0x8e, 0xba, 0xf2, 0xf6, 0x7e, 0x2c, 0x85, 0xa2, 0x71, 0x62, 0x29, 0xf6, 0x48, -0xf2, 0xd1, 0xf0, 0x47, 0xda, 0x65, 0x9c, 0x93, 0x45, 0xe4, 0x10, 0x7f, 0xd1, 0x30, 0xce, 0x1c, -0xd6, 0x86, 0x5f, 0x27, 0x91, 0xbe, 0x52, 0x39, 0x34, 0x1a, 0x9b, 0xf1, 0xdd, 0x92, 0x36, 0x7a, -0xb7, 0x0a, 0xe9, 0x65, 0xaa, 0x63, 0x83, 0xce, 0x57, 0x50, 0x44, 0xcf, 0x59, 0x1e, 0x6a, 0xc9, -0x12, 0x2c, 0xa1, 0xd1, 0xde, 0x98, 0x7c, 0x34, 0x57, 0x4a, 0x37, 0xdd, 0x75, 0xd0, 0x5d, 0x7f, -0xb5, 0x17, 0xda, 0xda, 0x1e, 0xe4, 0x52, 0xfb, 0x91, 0x83, 0x00, 0xfc, 0xc7, 0x32, 0x1b, 0xce, -0x68, 0x97, 0x10, 0x1e, 0x1e, 0xc6, 0x7c, 0xa9, 0x4e, 0xca, 0x97, 0x12, 0xfc, 0x93, 0x77, 0x26, -0xe6, 0x4b, 0x60, 0x2e, 0xfc, 0x4a, 0xcf, 0x37, 0x85, 0xf9, 0xee, 0xc1, 0xeb, 0x65, 0xbc, 0xde, -0xcf, 0xe5, 0xdc, 0x8b, 0x65, 0xcc, 0xcc, 0x95, 0xa3, 0x61, 0xfa, 0x93, 0x74, 0x06, 0x46, 0x5f, -0x63, 0x0b, 0xeb, 0xa9, 0x5d, 0xa4, 0x83, 0xef, 0x2d, 0xb2, 0x77, 0x20, 0xff, 0xda, 0xe8, 0x0b, -0x5f, 0xab, 0xe7, 0xd5, 0xd6, 0xbb, 0x45, 0xab, 0x56, 0x50, 0x49, 0x94, 0x1f, 0xc7, 0x42, 0x63, -0xff, 0xe2, 0x6b, 0xb9, 0x0e, 0x1a, 0x81, 0x6e, 0x2a, 0x0b, 0x7b, 0x97, 0x64, 0x4e, 0xc4, 0x8b, -0xf5, 0xd3, 0xf8, 0x2e, 0xc1, 0xdf, 0x59, 0x3c, 0xb2, 0x1e, 0xce, 0xdb, 0xa8, 0xd7, 0xea, 0xc5, -0xb5, 0x4b, 0xdc, 0xbb, 0xc8, 0xbb, 0x9e, 0xca, 0xa5, 0x51, 0xd1, 0x7b, 0x36, 0x9b, 0xfb, 0x34, -0x9b, 0xfb, 0x27, 0xbe, 0x2e, 0x4f, 0xe0, 0x4c, 0xa7, 0xc1, 0xba, 0x06, 0x67, 0xb0, 0x6d, 0xd1, -0x42, 0x72, 0x89, 0xfe, 0xdd, 0x46, 0x5a, 0xed, 0x8b, 0x92, 0xf5, 0x5e, 0x68, 0xfd, 0x6e, 0xd3, -0xb4, 0x99, 0x37, 0x53, 0xcb, 0x5d, 0x91, 0xe4, 0x96, 0xbf, 0x8c, 0xb1, 0x86, 0x43, 0x0c, 0x0c, -0xdf, 0x03, 0xd8, 0xf0, 0x97, 0x51, 0x4b, 0x14, 0xef, 0xee, 0x27, 0xad, 0x13, 0xb7, 0x7c, 0xf7, -0x03, 0xc1, 0xa4, 0xcb, 0xda, 0xb1, 0xae, 0x6e, 0x21, 0x73, 0x4e, 0xb3, 0xe9, 0x04, 0x8b, 0x6a, -0xa3, 0xa8, 0x10, 0xd5, 0xd6, 0xb6, 0x07, 0xc3, 0x67, 0x10, 0x12, 0x8b, 0x28, 0x9e, 0x03, 0xb6, -0x8e, 0xfa, 0xb6, 0x00, 0x96, 0x24, 0x37, 0xd7, 0x36, 0xea, 0x7d, 0x91, 0xe3, 0xbd, 0x38, 0xde, -0x56, 0xe4, 0x5f, 0x89, 0x7e, 0x6c, 0x0e, 0x9f, 0xc6, 0xd1, 0x2d, 0xa2, 0xb8, 0x19, 0xf9, 0x2f, -0x72, 0xfd, 0x2e, 0xe6, 0x3d, 0x2c, 0x8a, 0x80, 0xbc, 0x59, 0x2d, 0x47, 0x8e, 0x11, 0x39, 0x5f, -0x7f, 0xa3, 0x77, 0x66, 0x30, 0xe9, 0xb5, 0x62, 0xed, 0xec, 0xdd, 0xe1, 0x8f, 0xdc, 0x4b, 0x15, -0x66, 0x3f, 0xc3, 0x9a, 0x41, 0xb6, 0x4c, 0xd1, 0xf8, 0xea, 0x94, 0x9b, 0xfb, 0x94, 0xa7, 0x9b, -0x30, 0x7b, 0x4d, 0x01, 0xe5, 0xec, 0xcf, 0xd3, 0xa5, 0xd9, 0xdd, 0xd8, 0x47, 0xcb, 0x12, 0x8a, -0xd6, 0x3d, 0xeb, 0xee, 0xf1, 0xf8, 0x30, 0xe2, 0xe2, 0xba, 0x0e, 0xc4, 0x29, 0xaa, 0x71, 0x3e, -0x69, 0xef, 0xd5, 0x61, 0xbf, 0x2d, 0xc8, 0x93, 0x45, 0xc5, 0xdb, 0x60, 0xa8, 0x23, 0xa9, 0x1a, -0x82, 0xf8, 0xc6, 0x24, 0x01, 0x9d, 0x4a, 0x3c, 0x4d, 0x10, 0x1c, 0x88, 0x7a, 0xcd, 0x1c, 0x75, -0x83, 0x46, 0x1d, 0xc7, 0x5f, 0xe9, 0xa0, 0x18, 0x84, 0xf6, 0x46, 0x2f, 0xae, 0x3d, 0x8e, 0x62, -0x4b, 0xad, 0x5c, 0x8a, 0xe3, 0xbf, 0xa2, 0x6d, 0x61, 0x60, 0x00, 0x56, 0xb6, 0x25, 0x50, 0xa6, -0x1a, 0x6c, 0x0f, 0x61, 0x5d, 0xdd, 0x28, 0x57, 0x2d, 0x6f, 0x0f, 0x23, 0xce, 0xef, 0x0f, 0x14, -0xdf, 0x1d, 0xa9, 0x37, 0xdc, 0xdd, 0x44, 0x33, 0xc9, 0x5e, 0x3f, 0xaf, 0x4f, 0xd7, 0x8b, 0x92, -0x94, 0x46, 0xfc, 0x45, 0x69, 0xf6, 0xdc, 0x54, 0xe7, 0xa6, 0xea, 0xb5, 0xf3, 0x41, 0x68, 0x87, -0x9d, 0x3b, 0xe2, 0x2d, 0xf2, 0xd3, 0x8a, 0x9c, 0xe9, 0xa3, 0x5f, 0x93, 0x3f, 0x81, 0x77, 0x0b, -0x85, 0xb7, 0xb2, 0x73, 0xf7, 0x53, 0x29, 0x4a, 0x87, 0x5e, 0x0e, 0x20, 0xbe, 0x2c, 0xba, 0x12, -0xff, 0x9c, 0x7b, 0x32, 0x68, 0x3e, 0x9a, 0xc4, 0x96, 0x34, 0x36, 0x86, 0x26, 0x22, 0x13, 0x0b, -0x6b, 0x21, 0xbe, 0x17, 0x47, 0xd8, 0xa8, 0xc7, 0xef, 0x32, 0xe8, 0x18, 0xc0, 0x40, 0xd0, 0xe0, -0x4b, 0x20, 0x7c, 0xde, 0x53, 0x37, 0xe3, 0xf8, 0xc2, 0xf8, 0xab, 0x58, 0xc6, 0x8c, 0x06, 0xa4, -0x60, 0x8f, 0xbd, 0x8a, 0xdf, 0x2e, 0xf2, 0xcf, 0x8e, 0xef, 0x76, 0x85, 0xe8, 0x24, 0x92, 0x67, -0x1c, 0x67, 0x64, 0xc1, 0xe4, 0x1f, 0x3e, 0xc0, 0x19, 0xbf, 0x97, 0xb1, 0x10, 0xc2, 0x39, 0xf3, -0xd1, 0x58, 0x1a, 0x4b, 0xa6, 0x34, 0xcf, 0x8d, 0xf1, 0x65, 0x84, 0xaf, 0xb0, 0x0d, 0x5b, 0x9e, -0x4e, 0xbe, 0x9b, 0x10, 0x1c, 0xb7, 0x6f, 0xc6, 0xdd, 0xf9, 0x7a, 0x23, 0xc9, 0xcd, 0xc8, 0xa1, -0x24, 0xdf, 0x79, 0x95, 0xec, 0xcc, 0xb2, 0x79, 0x45, 0xbe, 0xf6, 0xa6, 0x60, 0x93, 0xd7, 0x9a, -0x2d, 0x4f, 0x85, 0x99, 0xeb, 0xb8, 0x5f, 0x92, 0xbd, 0x71, 0xf4, 0x1f, 0x10, 0xcb, 0xb3, 0x3c, -0xa8, 0x1a, 0x18, 0x87, 0x15, 0x89, 0x91, 0x72, 0x31, 0x1e, 0x63, 0x6b, 0x96, 0x2f, 0x1c, 0xaf, -0x3f, 0x24, 0x8f, 0x20, 0xee, 0x3d, 0xf8, 0xe6, 0x16, 0xa4, 0x35, 0xf4, 0xff, 0x74, 0xf2, 0xe9, -0x64, 0x50, 0x6e, 0x6f, 0x3c, 0xba, 0xb0, 0x6e, 0x46, 0x7b, 0xec, 0x48, 0x42, 0xec, 0x99, 0xb4, -0x3d, 0x78, 0x7c, 0x93, 0xc0, 0x4b, 0x57, 0x62, 0x73, 0x7b, 0x94, 0x57, 0xa0, 0x25, 0x12, 0x15, -0x9a, 0x86, 0xb5, 0x4d, 0xc1, 0x46, 0xa2, 0xa6, 0x81, 0x84, 0x37, 0x01, 0x11, 0xac, 0x05, 0x71, -0x97, 0x3f, 0x86, 0xa3, 0x92, 0x50, 0x57, 0x05, 0xa2, 0x0b, 0x85, 0x1f, 0x30, 0xd2, 0x94, 0xde, -0xda, 0xba, 0xa9, 0x99, 0x63, 0x20, 0x93, 0xfd, 0x21, 0xe9, 0x77, 0x28, 0xd0, 0x2d, 0xb7, 0x0d, -0x1f, 0x1f, 0x46, 0xb9, 0xa5, 0xfe, 0xc9, 0x61, 0x94, 0x62, 0x22, 0x47, 0x1f, 0xa6, 0x08, 0x6c, -0xb8, 0x6a, 0x10, 0xcb, 0x27, 0xb7, 0x22, 0x04, 0x6c, 0x14, 0x39, 0x91, 0xe2, 0x34, 0xfe, 0xcb, -0x38, 0x8e, 0x3a, 0xc5, 0xb0, 0x27, 0xb9, 0x6c, 0x56, 0xf3, 0xe4, 0xd9, 0xf5, 0xc9, 0xc7, 0x09, -0x93, 0x8e, 0x3c, 0x8c, 0xe9, 0xc0, 0x31, 0xff, 0x08, 0x8b, 0x3c, 0xde, 0x46, 0xf2, 0xa6, 0x6f, -0x57, 0xb4, 0x7f, 0x8d, 0x0a, 0xe6, 0x95, 0x5f, 0xb6, 0x4e, 0xcc, 0xf7, 0x5c, 0x7b, 0x9d, 0x98, -0x23, 0xff, 0xc7, 0xd7, 0xc9, 0x2c, 0x9a, 0x89, 0xb3, 0xc1, 0xff, 0xfd, 0x75, 0xf2, 0xf1, 0xa1, -0xc2, 0x75, 0xf2, 0xf1, 0xf6, 0x2f, 0x9e, 0xf7, 0x8f, 0x17, 0x5d, 0xb1, 0x4e, 0x8e, 0x5f, 0xbd, -0x4e, 0x3e, 0x1e, 0xf4, 0x59, 0x71, 0x85, 0x34, 0x4d, 0x24, 0xea, 0x20, 0xfe, 0xaa, 0x6f, 0xf6, -0xc4, 0x00, 0xd3, 0xaf, 0x62, 0x3f, 0xb4, 0x85, 0xfd, 0x61, 0x84, 0x58, 0x01, 0x61, 0x74, 0xc2, -0xd2, 0xe6, 0x8a, 0x26, 0xb7, 0xe0, 0xe8, 0x5a, 0x7d, 0x09, 0x4f, 0x78, 0xc1, 0xd9, 0x13, 0x50, -0x3f, 0x3b, 0xfe, 0xeb, 0xa0, 0x7c, 0x3c, 0x19, 0xdf, 0xe7, 0x97, 0x3d, 0x4d, 0xff, 0xb2, 0xfb, -0xef, 0xf7, 0x51, 0xfc, 0x4d, 0x9a, 0x93, 0xd8, 0xe4, 0x47, 0xe3, 0x8c, 0xe5, 0x88, 0x12, 0x14, -0xe3, 0x9c, 0xd5, 0x33, 0xf4, 0xcf, 0x12, 0x70, 0x8a, 0xd2, 0x7d, 0x3f, 0xc2, 0x3d, 0x62, 0x3d, -0x84, 0xc6, 0x7b, 0x0e, 0x2e, 0xd4, 0xa5, 0xd2, 0x62, 0x9f, 0xac, 0xaf, 0x12, 0xd2, 0xc1, 0xdb, -0xea, 0x6e, 0xfa, 0x67, 0x2e, 0x8f, 0x77, 0x1f, 0x04, 0xce, 0xe4, 0x5c, 0xed, 0x11, 0x5f, 0x84, -0xfb, 0xb7, 0x95, 0x6b, 0x9b, 0xad, 0xbf, 0x53, 0x54, 0x30, 0x0d, 0xfd, 0x67, 0xac, 0x96, 0x8f, -0x94, 0x3f, 0xb1, 0x5a, 0x78, 0x0d, 0xb4, 0xad, 0x39, 0xfe, 0xf0, 0x9f, 0x5c, 0x2d, 0xbc, 0xae, -0x82, 0x91, 0xda, 0x98, 0xb7, 0x65, 0xfa, 0x6a, 0x89, 0xef, 0x53, 0x57, 0x06, 0xa2, 0xcd, 0x62, -0xa5, 0xcc, 0xc0, 0x95, 0x82, 0x10, 0x2f, 0xa2, 0x85, 0xb3, 0x2d, 0xf4, 0x96, 0x2b, 0x57, 0x8a, -0x92, 0xc4, 0x35, 0x32, 0x83, 0xd7, 0xc8, 0xe3, 0x38, 0xfb, 0x8f, 0x88, 0x3c, 0x28, 0xe3, 0x44, -0xfe, 0x79, 0x1c, 0x47, 0xb7, 0x71, 0xe2, 0x61, 0xa6, 0x55, 0x80, 0xa3, 0x01, 0x84, 0xa3, 0xce, -0x2c, 0x4e, 0x6e, 0xb1, 0x1b, 0x37, 0x8b, 0x54, 0x09, 0x53, 0x25, 0xc2, 0x31, 0x62, 0x9d, 0xec, -0x88, 0xf6, 0xaf, 0x53, 0x61, 0x46, 0xeb, 0x97, 0xad, 0x93, 0x19, 0xfe, 0x6b, 0xaf, 0x93, 0x19, -0x15, 0xff, 0xfb, 0xeb, 0xc4, 0x1f, 0xf5, 0xce, 0x0c, 0xc4, 0x90, 0xe7, 0x9b, 0xb6, 0x4e, 0x04, -0x74, 0x0b, 0x7d, 0x95, 0xe4, 0xd8, 0x99, 0xd2, 0xc2, 0x75, 0x82, 0x33, 0x35, 0xc8, 0x12, 0x41, -0xb7, 0x8f, 0xd6, 0x09, 0xad, 0x98, 0xaf, 0xb0, 0x4e, 0x4e, 0xbf, 0x58, 0xb8, 0x4e, 0x4e, 0x3f, -0xfc, 0xc5, 0x33, 0x7e, 0xba, 0xfa, 0x8a, 0x75, 0x72, 0xf6, 0xea, 0x75, 0x72, 0x3a, 0xe1, 0x33, -0x4f, 0x24, 0xeb, 0x66, 0x1f, 0x21, 0x0c, 0x8f, 0x98, 0x3b, 0xb7, 0x3e, 0x8a, 0xaf, 0x5c, 0x21, -0xfe, 0x84, 0x7f, 0xc6, 0xf1, 0x05, 0xbe, 0x30, 0xd1, 0x94, 0x21, 0x08, 0xce, 0x38, 0xfa, 0xd0, -0x53, 0x1b, 0x04, 0xcc, 0x10, 0x35, 0x51, 0x22, 0x0b, 0xce, 0x96, 0x6b, 0x38, 0xf6, 0x38, 0x12, -0x7f, 0xbb, 0x9b, 0xf1, 0x9b, 0x85, 0x70, 0xdb, 0xa9, 0x11, 0xa6, 0x2a, 0x8f, 0x8b, 0x35, 0x83, -0x73, 0x5a, 0xc7, 0x71, 0x22, 0x8b, 0xb3, 0x6b, 0x46, 0x69, 0x64, 0x3e, 0x98, 0x46, 0xe7, 0xf1, -0xe9, 0x74, 0x25, 0x10, 0xc2, 0xb1, 0x2c, 0x16, 0x6b, 0x06, 0xe9, 0x4f, 0xc4, 0xb1, 0xe0, 0x9d, -0x8f, 0x91, 0xdb, 0x10, 0xb4, 0x85, 0xf3, 0x67, 0x69, 0x0b, 0xef, 0xac, 0x15, 0xeb, 0x2b, 0xc7, -0x2c, 0xde, 0xa9, 0x70, 0x69, 0xef, 0x7f, 0xc6, 0xaa, 0x39, 0x79, 0xf2, 0x3f, 0x8b, 0xc6, 0xd4, -0x36, 0x89, 0xd1, 0xfa, 0x32, 0x1a, 0xa3, 0x24, 0x1e, 0x7d, 0x23, 0x4b, 0x67, 0xe2, 0x5d, 0x20, -0x5d, 0x4d, 0x69, 0x68, 0xdd, 0x1c, 0xd1, 0x29, 0x8c, 0xa0, 0x45, 0x79, 0xda, 0x92, 0x5d, 0x5b, -0xd7, 0xa2, 0x31, 0x27, 0xed, 0x7f, 0x9a, 0xc6, 0x18, 0x4a, 0xbf, 0x6c, 0xed, 0x14, 0x5d, 0xb8, -0xf6, 0xda, 0x29, 0x7a, 0xf7, 0xff, 0x38, 0x8d, 0x61, 0x8e, 0xf1, 0xc3, 0xc3, 0xff, 0xfb, 0x34, -0xe6, 0xc3, 0xc1, 0xc2, 0xb5, 0xf3, 0x61, 0xf2, 0x8b, 0xe7, 0xfd, 0xc4, 0xb9, 0x2b, 0xd6, 0xce, -0xb1, 0xab, 0xd7, 0xce, 0x87, 0xd6, 0x3a, 0xf3, 0x91, 0xe4, 0x57, 0xa1, 0x2e, 0x02, 0x4a, 0xfc, -0x89, 0xd8, 0x1f, 0x56, 0xd2, 0x1a, 0xb1, 0x3e, 0xbe, 0xfb, 0x9a, 0x34, 0x86, 0x3c, 0x46, 0x20, -0x96, 0x3b, 0xb1, 0x38, 0xcb, 0x85, 0x09, 0x1a, 0xc3, 0x2b, 0x86, 0x21, 0x89, 0x63, 0x21, 0x08, -0x1a, 0xb3, 0xe5, 0x6a, 0x1a, 0x43, 0x51, 0xfa, 0xc4, 0xba, 0xd2, 0x69, 0x8c, 0x59, 0xa7, 0x31, -0x5b, 0xf2, 0x34, 0xc6, 0x1f, 0xc9, 0xd2, 0x21, 0xae, 0x8f, 0x79, 0x34, 0x15, 0x3e, 0x7b, 0xe2, -0x3f, 0x63, 0xad, 0xfc, 0xfb, 0xae, 0xff, 0x2c, 0x0a, 0x53, 0x1b, 0xd1, 0x69, 0x4c, 0xec, 0xca, -0xb5, 0x22, 0x28, 0x4c, 0xc1, 0x3a, 0x99, 0xf1, 0x65, 0xeb, 0x84, 0x69, 0xd0, 0xb5, 0x57, 0x48, -0xe4, 0x5f, 0xa6, 0x53, 0x18, 0x96, 0x9e, 0x9b, 0x27, 0x3f, 0x98, 0x4c, 0x3e, 0x5e, 0x40, 0x61, -0xac, 0x4c, 0x61, 0x1e, 0x2f, 0xa4, 0x30, 0xf0, 0xd1, 0x95, 0x2b, 0x03, 0x8e, 0x5e, 0x7b, 0x65, -0xc0, 0xde, 0x5c, 0xce, 0xec, 0x4e, 0xe6, 0xf6, 0x82, 0x9c, 0x4f, 0x15, 0xe4, 0x7c, 0x32, 0x97, -0xb3, 0x57, 0xcf, 0xb9, 0xa1, 0x20, 0xe7, 0xeb, 0xb9, 0x9c, 0x99, 0x2b, 0xf2, 0xa9, 0xd7, 0xcc, -0x95, 0xb8, 0x22, 0x57, 0xdd, 0x35, 0x73, 0x39, 0xae, 0xe8, 0x47, 0xe9, 0xb5, 0x7a, 0x91, 0x8b, -0x52, 0xf7, 0xc6, 0x17, 0xe9, 0x0c, 0x29, 0x83, 0x26, 0x3a, 0x03, 0xbe, 0xff, 0xaa, 0x18, 0xcd, -0xe5, 0xd3, 0x75, 0x5d, 0x5a, 0xf4, 0x48, 0x3c, 0x2e, 0xdd, 0x27, 0x25, 0x9d, 0x2f, 0x89, 0x9d, -0x35, 0xc7, 0x7f, 0x33, 0x19, 0x74, 0xcb, 0x8d, 0xac, 0x96, 0x5f, 0x6e, 0xbf, 0x4e, 0xd7, 0xd3, -0xe8, 0xcd, 0x69, 0x60, 0x44, 0xa6, 0x97, 0x5a, 0x69, 0xb8, 0x52, 0xef, 0x5d, 0xdb, 0x39, 0x3d, -0x72, 0x0c, 0xe9, 0x08, 0xa1, 0xac, 0x5f, 0xea, 0x61, 0xfd, 0x27, 0xcd, 0xa5, 0x7b, 0xa2, 0xa0, -0x93, 0x69, 0xe1, 0x09, 0xd1, 0x0b, 0xe5, 0x76, 0xdd, 0x87, 0x06, 0x69, 0xab, 0x63, 0x3e, 0x17, -0xed, 0x09, 0x09, 0xfd, 0x3c, 0xfd, 0x54, 0x2b, 0xef, 0xed, 0x73, 0xd7, 0x7f, 0xe4, 0xac, 0x6c, -0x9a, 0xe5, 0xcd, 0x95, 0xa9, 0x4f, 0xeb, 0x7a, 0x1b, 0x6f, 0xb0, 0x87, 0xab, 0x90, 0x42, 0xfe, -0xe9, 0xc4, 0xbe, 0x9f, 0x81, 0x7d, 0x91, 0x98, 0x6f, 0xea, 0x82, 0x07, 0xc0, 0x14, 0xf9, 0x29, -0x58, 0xf1, 0xbf, 0xc4, 0x37, 0x97, 0xf6, 0xb0, 0xda, 0x69, 0x67, 0xa4, 0x0c, 0xef, 0xcd, 0xfa, -0x7d, 0x05, 0xe6, 0x8d, 0xc2, 0x1c, 0xfc, 0x8d, 0x83, 0x1d, 0x7f, 0x5b, 0xc0, 0xe9, 0xa5, 0x3d, -0x46, 0xf7, 0x7c, 0xda, 0x59, 0xae, 0xa6, 0x98, 0xa6, 0x99, 0xef, 0x37, 0x42, 0xc2, 0x2d, 0x1f, -0xea, 0xc3, 0x91, 0xfb, 0xf9, 0x09, 0x28, 0x4d, 0x99, 0xbd, 0x5d, 0xf8, 0x8d, 0x6f, 0xd0, 0xa0, -0x96, 0xe3, 0xb3, 0x8d, 0x9f, 0x43, 0xf8, 0x2c, 0xab, 0x26, 0xbc, 0x8b, 0xe3, 0x9d, 0xb4, 0x66, -0x98, 0x76, 0xed, 0xf9, 0x24, 0x22, 0x0b, 0x4d, 0x5f, 0xa0, 0x4d, 0x14, 0x09, 0xb1, 0xee, 0x48, -0x40, 0x9c, 0xe8, 0xd1, 0x29, 0x8e, 0x87, 0x2c, 0x6c, 0xbc, 0x10, 0x44, 0x5c, 0x5d, 0xa3, 0xc4, -0xe8, 0x1c, 0x87, 0xfc, 0x11, 0xa7, 0x8c, 0xd5, 0xd5, 0xe4, 0x1f, 0x06, 0x7f, 0x4b, 0xed, 0x4d, -0x8e, 0xb9, 0xe0, 0xe7, 0x54, 0xb3, 0x6f, 0x08, 0xca, 0xde, 0xfa, 0x88, 0x3c, 0x6d, 0x86, 0x3f, -0x02, 0x57, 0xa0, 0x1f, 0x7a, 0xfd, 0xad, 0x35, 0xfd, 0xd0, 0xef, 0x77, 0x81, 0xec, 0x8a, 0x32, -0xa4, 0x58, 0x38, 0xca, 0x33, 0x48, 0x25, 0x74, 0xfe, 0xa4, 0x8c, 0x93, 0x46, 0xa1, 0x12, 0xfa, -0x2e, 0xc7, 0x26, 0x38, 0x78, 0x1a, 0x0c, 0x5b, 0x5e, 0xb3, 0xf7, 0x83, 0xaf, 0x6e, 0x19, 0x18, -0x0f, 0x9d, 0x06, 0xe3, 0xd6, 0xdd, 0xbe, 0x5e, 0x30, 0x8f, 0xfc, 0x56, 0x31, 0x89, 0x35, 0x7f, -0x68, 0xbc, 0x76, 0x19, 0x8e, 0x28, 0xc5, 0x58, 0xa7, 0x53, 0xab, 0x55, 0xac, 0x65, 0x17, 0x65, -0x9f, 0x2c, 0x96, 0xb4, 0x03, 0x57, 0x7b, 0x35, 0xf0, 0x2e, 0x45, 0x4d, 0xb3, 0x77, 0x16, 0x62, -0x1c, 0x33, 0x3e, 0xfb, 0xf8, 0x74, 0xe9, 0xa0, 0x1e, 0x73, 0xf2, 0x29, 0xa5, 0x1f, 0x21, 0x2a, -0x66, 0x9a, 0xcb, 0x96, 0x3e, 0xd6, 0x02, 0x7a, 0x50, 0xaa, 0x72, 0xfc, 0x28, 0x4b, 0x23, 0xf6, -0xc3, 0x90, 0x21, 0x6d, 0x7c, 0x7c, 0xeb, 0xf3, 0x4d, 0x3f, 0x27, 0xbb, 0x4c, 0x14, 0xc5, 0xd2, -0xbe, 0xf0, 0xc8, 0x6f, 0xea, 0x16, 0xd6, 0x34, 0xb7, 0xb7, 0x1c, 0x7e, 0xbd, 0xb6, 0x05, 0xeb, -0x29, 0x46, 0x48, 0x8d, 0x72, 0x29, 0x88, 0xb9, 0x94, 0x85, 0x8f, 0xfe, 0x86, 0xf0, 0x19, 0xc9, -0x8e, 0x74, 0x65, 0xcf, 0xa7, 0x33, 0xf8, 0x6b, 0xf2, 0xe9, 0xed, 0x48, 0x84, 0x52, 0xa5, 0xfa, -0x39, 0xe3, 0x2c, 0x3d, 0x2a, 0x0d, 0x47, 0xec, 0x13, 0xf6, 0x3c, 0x7c, 0x8a, 0x26, 0x6c, 0x79, -0x6a, 0x6b, 0xbc, 0xe0, 0xa4, 0x28, 0xe5, 0x75, 0x5e, 0xa8, 0x0e, 0x7a, 0xc1, 0xef, 0x20, 0xfd, -0x03, 0x99, 0xf7, 0xdd, 0xc7, 0x2e, 0xdf, 0xcf, 0x7d, 0x1f, 0xe0, 0x79, 0xcd, 0xda, 0x51, 0x91, -0xcf, 0x97, 0x7c, 0x7f, 0x2c, 0x05, 0x4f, 0x56, 0xb6, 0xa2, 0x1f, 0xbb, 0x4c, 0xf1, 0x59, 0x2c, -0xb7, 0x0c, 0xc1, 0xbf, 0x3e, 0xdc, 0x09, 0xa6, 0x1b, 0x68, 0xff, 0xf1, 0x9b, 0x5e, 0x99, 0xf6, -0x09, 0xd8, 0xee, 0x38, 0x8a, 0xff, 0x0d, 0xba, 0xed, 0xf1, 0x71, 0xb2, 0x54, 0x8d, 0xb8, 0xe1, -0x9b, 0xa2, 0x6d, 0x96, 0xa1, 0xec, 0x39, 0x06, 0x47, 0xe1, 0x6d, 0x29, 0xb4, 0x4d, 0xc0, 0xb6, -0xb5, 0xd9, 0x3d, 0x08, 0x19, 0x34, 0x76, 0x46, 0x3b, 0x79, 0x01, 0x34, 0xe0, 0x6f, 0x69, 0x35, -0xc2, 0x45, 0x5d, 0x15, 0xf4, 0x3e, 0xd9, 0x5a, 0x5b, 0x05, 0xfd, 0x4f, 0x74, 0x81, 0xcc, 0xfe, -0x6a, 0x67, 0xb3, 0x85, 0x5a, 0x25, 0xcf, 0xda, 0xec, 0x74, 0x05, 0x7d, 0xc5, 0x1a, 0x76, 0x0a, -0xa6, 0xe0, 0xdb, 0xac, 0xe7, 0x16, 0xd5, 0xc8, 0xd1, 0xd7, 0x24, 0xd2, 0x3c, 0xf6, 0x4a, 0xec, -0xe9, 0x7d, 0xec, 0xd2, 0x06, 0x77, 0x37, 0xfb, 0xad, 0x14, 0x3e, 0xd7, 0x40, 0xb2, 0xb3, 0xdf, -0x95, 0xd9, 0x88, 0x6b, 0xc7, 0x1d, 0xf3, 0xc0, 0x96, 0xd8, 0x06, 0x95, 0xe9, 0x92, 0x02, 0x3d, -0x15, 0xcc, 0x1d, 0x79, 0x8e, 0x75, 0x7f, 0x4b, 0x88, 0x0b, 0x90, 0xdf, 0x49, 0xcf, 0xc1, 0x96, -0x51, 0xc4, 0x7b, 0x03, 0xf9, 0xa3, 0x41, 0xa8, 0x31, 0x64, 0x2c, 0x58, 0x8b, 0xc1, 0xf6, 0x33, -0x93, 0x14, 0x41, 0x28, 0xf5, 0x5a, 0x48, 0x4b, 0x3f, 0xfe, 0xd7, 0x58, 0x69, 0x37, 0xae, 0x8c, -0xbf, 0x6e, 0xa5, 0x7d, 0x50, 0xac, 0xf9, 0xf3, 0xe5, 0x7a, 0x4c, 0xd9, 0x4a, 0x3a, 0x35, 0xc4, -0x32, 0x6a, 0x39, 0x1e, 0xa8, 0x29, 0xf2, 0x3f, 0x49, 0x53, 0xbe, 0xf9, 0x2c, 0x2e, 0xb9, 0x6e, -0x84, 0xd4, 0x0f, 0xc1, 0xa8, 0x98, 0x8e, 0x0f, 0xc7, 0xff, 0xbb, 0x89, 0x9e, 0x4d, 0xe1, 0xb3, -0xad, 0x80, 0x69, 0xa4, 0x17, 0x3a, 0x93, 0x4b, 0x69, 0xa1, 0x96, 0xdc, 0x1c, 0x01, 0x5b, 0x5e, -0xe3, 0x85, 0x21, 0xb3, 0x33, 0x31, 0x00, 0xfe, 0x94, 0xdd, 0x82, 0xb4, 0x1e, 0x4c, 0x29, 0x3a, -0xfb, 0x88, 0x47, 0xfe, 0xbf, 0x6c, 0x85, 0x57, 0xa1, 0x2c, 0x64, 0x1f, 0xd6, 0xa4, 0x9d, 0x14, -0x4d, 0xe1, 0x98, 0x44, 0x1a, 0x28, 0xf6, 0xe8, 0x0a, 0x49, 0xd4, 0xef, 0xa5, 0x7a, 0x8c, 0xf1, -0x0c, 0xd7, 0x6f, 0x88, 0x67, 0x5a, 0x49, 0xce, 0xc2, 0x9a, 0x26, 0x8f, 0x73, 0xb9, 0x72, 0xa4, -0x81, 0xe0, 0x2c, 0x67, 0x51, 0xee, 0x76, 0xe0, 0x3c, 0xd1, 0xb9, 0xaa, 0x98, 0x2b, 0x85, 0xe7, -0x0a, 0x7f, 0x4b, 0xdd, 0x5d, 0xb8, 0x86, 0x29, 0xcd, 0xc6, 0x6b, 0xf8, 0x14, 0x54, 0xce, 0xef, -0x81, 0xc5, 0x50, 0xab, 0x9a, 0xc3, 0xa7, 0xc0, 0x85, 0xf7, 0xf7, 0x42, 0x2d, 0xfe, 0xf6, 0x42, -0xdd, 0xfc, 0x56, 0x08, 0xe2, 0x1d, 0xae, 0xd2, 0xf9, 0x38, 0xa3, 0x50, 0x3f, 0x9f, 0xfc, 0x0b, -0xd7, 0xb0, 0xe7, 0xa0, 0x9a, 0xe8, 0x78, 0x0a, 0xa4, 0x95, 0xde, 0x3e, 0x08, 0x40, 0x08, 0xd7, -0xb9, 0x94, 0x76, 0x51, 0x7f, 0x09, 0x42, 0x85, 0x2e, 0x99, 0xd0, 0x00, 0xf2, 0x80, 0x6e, 0x4b, -0x35, 0x1b, 0xdb, 0xb9, 0x54, 0xd8, 0x52, 0x0d, 0xd1, 0xf7, 0xbe, 0x91, 0x01, 0x2c, 0x0f, 0xbb, -0x82, 0xe3, 0x1b, 0xc0, 0xe7, 0xba, 0x09, 0xec, 0xd3, 0x5f, 0x86, 0xf0, 0xd7, 0x34, 0x82, 0x33, -0x86, 0x6f, 0x83, 0xf8, 0x5f, 0x1b, 0x1c, 0x00, 0xdf, 0xd1, 0x93, 0x60, 0xcc, 0x8e, 0x78, 0xdb, -0x06, 0x3b, 0xe1, 0x87, 0xd5, 0xc7, 0x57, 0x1f, 0xdd, 0xcd, 0xeb, 0x63, 0x36, 0xe9, 0xbe, 0x63, -0xd9, 0xf7, 0x88, 0x31, 0x42, 0xee, 0x32, 0x41, 0xd6, 0x3f, 0x88, 0x6d, 0x56, 0x33, 0xb6, 0x61, -0xcf, 0x8f, 0xd1, 0xd5, 0x5e, 0x89, 0x76, 0x33, 0x11, 0x8b, 0xc7, 0x99, 0x3b, 0xab, 0x82, 0x00, -0x7f, 0xd9, 0x91, 0x1c, 0xfb, 0xec, 0x59, 0x1c, 0x93, 0x40, 0x10, 0x57, 0x4f, 0x27, 0x05, 0x93, -0xed, 0x38, 0x4a, 0x3e, 0x7e, 0xc8, 0xf2, 0xdb, 0x24, 0xa0, 0x68, 0xda, 0x4a, 0x2b, 0x51, 0xe7, -0xd0, 0xfd, 0x74, 0x78, 0xc2, 0x55, 0x55, 0x88, 0x3b, 0xb0, 0xa7, 0x9f, 0xbd, 0x44, 0x3d, 0xf5, -0xbb, 0xc1, 0x78, 0xa0, 0x0f, 0xea, 0x0f, 0x60, 0x1f, 0xa8, 0xfd, 0xec, 0xff, 0xab, 0xee, 0xd1, -0xf1, 0x2c, 0x86, 0x3b, 0x10, 0xb2, 0x2f, 0xf4, 0x59, 0xc9, 0x6e, 0x8d, 0xc7, 0xca, 0x66, 0x5f, -0x18, 0x3e, 0x09, 0x15, 0x7a, 0xfc, 0xa4, 0xbd, 0x89, 0xf5, 0xa4, 0xcb, 0xa8, 0xc7, 0x73, 0x22, -0xaf, 0x7c, 0x51, 0x2e, 0x59, 0xe1, 0x73, 0x40, 0x82, 0xa0, 0xba, 0x44, 0x43, 0xaa, 0xe6, 0x30, -0x42, 0xc4, 0x11, 0x1c, 0x39, 0xaf, 0x88, 0x76, 0x47, 0xd1, 0x79, 0xa3, 0x1c, 0x9d, 0x97, 0xbd, -0xbe, 0x4c, 0xc4, 0xf8, 0x3e, 0x2a, 0xd6, 0x3c, 0x43, 0xe5, 0x46, 0x82, 0x15, 0x9d, 0x47, 0x60, -0x9f, 0x85, 0xf5, 0x41, 0xd2, 0xa0, 0x75, 0x09, 0xad, 0xc0, 0xea, 0x1a, 0x2c, 0x19, 0x71, 0x50, -0x0d, 0x72, 0xed, 0x75, 0x41, 0xd2, 0x10, 0x24, 0x0b, 0x1a, 0xf2, 0xb5, 0xdb, 0xcb, 0xde, 0x37, -0xb3, 0x38, 0x33, 0xab, 0xcf, 0x70, 0x05, 0xce, 0xbc, 0xb8, 0x2b, 0xfe, 0x6a, 0x4d, 0x33, 0xed, -0x70, 0x92, 0xb5, 0x07, 0x69, 0xbb, 0x78, 0xe5, 0xe6, 0xc9, 0x8b, 0x6b, 0x92, 0x8f, 0x07, 0x12, -0x6d, 0x3f, 0xd0, 0x4f, 0x1b, 0xcc, 0xb4, 0xaf, 0xc8, 0x9a, 0x00, 0x8f, 0x67, 0x4b, 0x25, 0xbc, -0xa3, 0x97, 0x9c, 0xd5, 0x5a, 0xb8, 0xb2, 0xe4, 0xa5, 0xcc, 0xff, 0x16, 0x73, 0xb9, 0xb2, 0xee, -0x55, 0x8c, 0xb4, 0x15, 0x82, 0xc8, 0x6b, 0xd6, 0xb6, 0x3f, 0xe0, 0x8d, 0xe1, 0x8c, 0x26, 0xc0, -0xc7, 0xba, 0x03, 0x1e, 0x6f, 0x04, 0x5c, 0x2d, 0xef, 0x05, 0x87, 0x54, 0xb8, 0x68, 0x44, 0x4c, -0x76, 0x5a, 0xc7, 0x64, 0x64, 0x0b, 0xd4, 0xe2, 0x16, 0xa7, 0x79, 0x09, 0xa8, 0xf6, 0xcc, 0x43, -0x3c, 0x36, 0x40, 0xb1, 0x36, 0x0b, 0x31, 0x19, 0x53, 0x38, 0x91, 0x6a, 0x5a, 0x55, 0x76, 0xe4, -0x79, 0xa2, 0x70, 0xab, 0x5c, 0x47, 0x7e, 0x50, 0x8f, 0xd8, 0x4d, 0x89, 0xd5, 0xda, 0x6a, 0x10, -0xbf, 0xf9, 0x70, 0x35, 0x90, 0xc7, 0x4e, 0x17, 0xe1, 0x36, 0x0f, 0xe3, 0x36, 0xb6, 0xdd, 0x58, -0x84, 0xd0, 0x16, 0x0d, 0xe3, 0x4a, 0x0c, 0x63, 0x09, 0x32, 0x96, 0x60, 0x75, 0x11, 0xae, 0xf3, -0x30, 0x26, 0xc4, 0xc1, 0x4b, 0x84, 0xf1, 0xd7, 0x68, 0x0e, 0x29, 0x70, 0x7b, 0x08, 0xbf, 0xc6, -0xf5, 0x22, 0xfa, 0x48, 0x7e, 0x8a, 0xd3, 0x14, 0xb3, 0xb0, 0x2c, 0x2d, 0xbb, 0xc2, 0xc1, 0xa6, -0xa7, 0xf6, 0xce, 0x4f, 0x22, 0xec, 0x37, 0x3c, 0xb5, 0x1f, 0xaf, 0x75, 0x08, 0xd3, 0xb5, 0x07, -0xba, 0xd9, 0x0e, 0x26, 0x48, 0x6b, 0x01, 0xd3, 0xea, 0xc9, 0xf3, 0x47, 0x7b, 0xf2, 0xe8, 0xee, -0x7a, 0x9a, 0x73, 0xd2, 0xb1, 0xa9, 0x47, 0xa9, 0x1a, 0x39, 0x00, 0xd2, 0xa0, 0x8a, 0xbf, 0xe2, -0x4b, 0x92, 0xcd, 0x56, 0xad, 0x84, 0x33, 0x31, 0x9b, 0xe2, 0x75, 0x91, 0x75, 0xce, 0xa3, 0xaf, -0x30, 0xa5, 0xc2, 0x51, 0x78, 0x74, 0x2f, 0xd3, 0xaa, 0x22, 0x9c, 0x83, 0x99, 0x34, 0x96, 0x9f, -0x06, 0x04, 0xad, 0x42, 0x6c, 0x37, 0x45, 0x11, 0xae, 0x39, 0xcd, 0x9c, 0xf3, 0x74, 0x45, 0x18, -0xf7, 0x59, 0x8f, 0x47, 0xc7, 0xb8, 0xd6, 0x3c, 0xc6, 0x8d, 0xbc, 0x00, 0x36, 0x61, 0x47, 0x9b, -0xb6, 0xd1, 0x7a, 0xa1, 0x99, 0x2c, 0x7f, 0x0e, 0x8a, 0x23, 0x1e, 0xf2, 0xde, 0xcf, 0xe5, 0xb3, -0xe6, 0xcc, 0x05, 0x47, 0x01, 0x3e, 0x5d, 0xc3, 0xf8, 0x74, 0x76, 0x1e, 0x9f, 0xd2, 0xde, 0xb8, -0x1f, 0xe2, 0xbb, 0x17, 0x9e, 0x2d, 0x9f, 0x8e, 0x57, 0x57, 0x08, 0xbc, 0x8a, 0xbd, 0x8f, 0x07, -0xc3, 0xe1, 0x0b, 0x1b, 0xf2, 0xd8, 0x15, 0xcb, 0xfc, 0xe4, 0xa3, 0xb9, 0x8d, 0x85, 0x98, 0x15, -0xb9, 0xe3, 0x88, 0xbd, 0x45, 0x31, 0xd8, 0x8b, 0x3c, 0x0b, 0x11, 0x83, 0x3e, 0x2c, 0x6a, 0x60, -0x0d, 0xdd, 0x5c, 0x3b, 0x3e, 0x61, 0xfd, 0x38, 0x1e, 0x91, 0x62, 0x94, 0x86, 0xea, 0x04, 0x9e, -0xfc, 0xac, 0x8c, 0x7d, 0x80, 0x81, 0xdc, 0x2f, 0xbc, 0xb0, 0x2a, 0xa1, 0xc1, 0xf9, 0x8d, 0xd2, -0x9e, 0xe1, 0x4c, 0x68, 0x74, 0x35, 0xc5, 0x65, 0x23, 0x3c, 0x02, 0x14, 0x29, 0xe0, 0xa5, 0xc4, -0xea, 0x14, 0xc8, 0xf1, 0xec, 0x08, 0x7d, 0x72, 0x62, 0xda, 0x08, 0xfd, 0xc8, 0xfd, 0xbf, 0x31, -0x42, 0x9f, 0xc8, 0xf9, 0x11, 0x92, 0x3e, 0xb8, 0x72, 0x84, 0x70, 0x04, 0x1a, 0x83, 0xe1, 0x26, -0x1c, 0x81, 0x69, 0xe3, 0xf3, 0xdf, 0xbe, 0x6c, 0x7c, 0xce, 0xbf, 0x39, 0x37, 0xf6, 0xe7, 0x8e, -0xcf, 0xf9, 0x27, 0x05, 0xe7, 0x24, 0x2d, 0xd5, 0xad, 0xa3, 0x5d, 0x5e, 0x23, 0xfb, 0x1a, 0xa1, -0x77, 0x93, 0x5e, 0x23, 0x59, 0x80, 0xb1, 0xcf, 0xbc, 0x22, 0xa1, 0xc7, 0x73, 0x7e, 0x1b, 0x47, -0xcd, 0x04, 0x29, 0xa0, 0x98, 0x08, 0x82, 0x17, 0xfd, 0x3a, 0xfe, 0x60, 0xb4, 0x29, 0x3b, 0x3e, -0xe7, 0xf7, 0x67, 0x7b, 0xcc, 0x67, 0x5c, 0x4d, 0x05, 0xbc, 0x96, 0xf1, 0xca, 0xd5, 0x7d, 0x7e, -0xfd, 0x35, 0x4a, 0x6f, 0x61, 0x7c, 0xf1, 0x37, 0xd3, 0x67, 0xeb, 0xd3, 0x2e, 0x1a, 0x29, 0x2e, -0x0d, 0xe0, 0x65, 0x9a, 0x4b, 0xee, 0x03, 0x72, 0xad, 0x8c, 0x21, 0xf5, 0x6f, 0x3f, 0x77, 0x8b, -0x9d, 0x58, 0x78, 0xb2, 0xa0, 0x07, 0xb5, 0x64, 0xe3, 0x5e, 0x46, 0x3e, 0x0f, 0xd6, 0x96, 0x93, -0x9f, 0x83, 0x75, 0x58, 0x6a, 0x62, 0x64, 0xaf, 0x2f, 0x5e, 0x67, 0x88, 0xbf, 0xba, 0xe0, 0x6c, -0x27, 0x1c, 0x7d, 0x25, 0x98, 0x44, 0xfc, 0x17, 0xdf, 0xfa, 0x0a, 0xf2, 0x94, 0xc6, 0x78, 0x2f, -0xb6, 0xce, 0xca, 0x27, 0x6b, 0x72, 0x6c, 0xf2, 0x8f, 0xbb, 0x92, 0x9b, 0xdf, 0x8d, 0xd6, 0x35, -0xc5, 0x5f, 0x71, 0x59, 0x9f, 0x58, 0xcb, 0x2d, 0x5b, 0xcf, 0x67, 0xb4, 0x16, 0x4f, 0x54, 0x68, -0x62, 0x25, 0x37, 0x7b, 0x16, 0xfe, 0xfd, 0xab, 0xd8, 0x8f, 0xd9, 0x5e, 0x03, 0xa7, 0xcc, 0xd2, -0xf5, 0x9a, 0x3c, 0x98, 0xd3, 0x1a, 0xff, 0x6f, 0xb5, 0xbc, 0x0b, 0xa6, 0xa7, 0x95, 0xeb, 0x18, -0xb8, 0x34, 0xe7, 0x4b, 0xd2, 0x4e, 0xde, 0x3c, 0xc8, 0x8b, 0x2d, 0x47, 0x2f, 0x25, 0xcb, 0xc9, -0xb9, 0xec, 0xe1, 0x9c, 0xb8, 0xf6, 0x52, 0x8e, 0xbe, 0x62, 0xc4, 0xb5, 0x5d, 0x9a, 0x58, 0x97, -0x4e, 0xed, 0xdc, 0xa6, 0xfb, 0x09, 0xaf, 0x74, 0x74, 0x21, 0x45, 0x6a, 0xc5, 0x3b, 0x05, 0xef, -0x2a, 0xd5, 0x46, 0x1d, 0x1a, 0x83, 0xd3, 0x28, 0x71, 0xb5, 0xa0, 0xc4, 0x2e, 0x48, 0x3b, 0x94, -0x50, 0xbe, 0x34, 0x5c, 0x77, 0xb4, 0x7f, 0x04, 0xbe, 0x86, 0x9f, 0xed, 0xee, 0x95, 0x6b, 0xc0, -0x1e, 0xd5, 0x3d, 0x05, 0x0a, 0x3f, 0xcd, 0x3b, 0xc8, 0x2f, 0x6a, 0xb4, 0x32, 0xab, 0xb1, 0x1c, -0x64, 0x0f, 0xbb, 0x59, 0x3f, 0xf2, 0x64, 0x23, 0x90, 0xf7, 0x09, 0x9f, 0x7d, 0xc2, 0xd5, 0xa3, -0xf2, 0x69, 0xfd, 0x12, 0x9d, 0xa2, 0x0d, 0xb9, 0xc8, 0xe3, 0x48, 0x61, 0xde, 0x15, 0x89, 0xb5, -0x69, 0x90, 0x57, 0x29, 0x1e, 0x70, 0x21, 0xa4, 0x47, 0x47, 0xb7, 0x51, 0xd4, 0x3d, 0x4b, 0x37, -0x72, 0x42, 0xf7, 0xa4, 0x8d, 0x88, 0x0f, 0x1d, 0x6a, 0xd9, 0x28, 0xf5, 0x0e, 0x24, 0x17, 0xa7, -0x76, 0x62, 0xae, 0x39, 0x14, 0x43, 0x58, 0xf7, 0x46, 0x5e, 0xe2, 0x47, 0xa9, 0x62, 0x05, 0xd4, -0x48, 0xa6, 0x22, 0x7e, 0x96, 0x29, 0xf7, 0xa2, 0x3d, 0xf1, 0x35, 0x19, 0x69, 0x24, 0x12, 0x80, -0xe8, 0x2b, 0xdd, 0x46, 0x73, 0x58, 0x02, 0xd5, 0x8c, 0xef, 0x4d, 0xa9, 0x46, 0xc0, 0xfb, 0x3b, -0xc3, 0x6c, 0xa3, 0xe6, 0x11, 0xfe, 0x95, 0xb3, 0x52, 0x08, 0x7e, 0xbb, 0x37, 0xd2, 0x50, 0x17, -0x61, 0xbe, 0x9c, 0xe3, 0x0c, 0x9c, 0x9b, 0x64, 0x9f, 0x53, 0x0d, 0x69, 0x5b, 0x3e, 0xed, 0xb3, -0xbd, 0x9c, 0xf6, 0x02, 0x47, 0x10, 0xd9, 0x6a, 0x89, 0x90, 0xdc, 0x43, 0xe3, 0xee, 0xa6, 0x71, -0x27, 0xfb, 0x2f, 0x05, 0xef, 0x2a, 0xaf, 0x2a, 0x9d, 0xb0, 0xc5, 0xfd, 0xa4, 0x83, 0x56, 0x27, -0xc7, 0x5f, 0x5d, 0x38, 0x79, 0xee, 0x19, 0x35, 0x88, 0x3d, 0xb6, 0xce, 0x80, 0xb4, 0x1b, 0x39, -0x00, 0x0b, 0x7b, 0x4a, 0x24, 0x6f, 0x18, 0xfc, 0x9b, 0x2a, 0x93, 0x43, 0x53, 0xda, 0x5d, 0x21, -0xe1, 0x71, 0x8f, 0x4e, 0x7a, 0x85, 0x47, 0x4e, 0xf7, 0xdd, 0x6d, 0x6b, 0x07, 0x95, 0xed, 0x6b, -0xd3, 0x46, 0xd6, 0x2a, 0xdd, 0x95, 0x88, 0x22, 0x27, 0x85, 0x39, 0xf8, 0xd4, 0x81, 0xda, 0x46, -0x36, 0x44, 0xb6, 0x80, 0x1b, 0x16, 0x59, 0x22, 0x9a, 0x46, 0x51, 0x86, 0xa9, 0x65, 0x3a, 0xa7, -0x0d, 0x52, 0x19, 0xce, 0x43, 0xa7, 0x25, 0xcc, 0x6f, 0xcc, 0x34, 0x82, 0x59, 0x2a, 0x04, 0xe4, -0x07, 0xeb, 0x1e, 0x4b, 0x08, 0xdf, 0xd8, 0x68, 0xc4, 0x45, 0x7a, 0xca, 0x82, 0xab, 0xe5, 0x38, -0xf6, 0xb4, 0x12, 0xd7, 0xd5, 0x91, 0x15, 0xb3, 0xfe, 0xbd, 0x4b, 0x8e, 0xc0, 0x4d, 0xc3, 0x91, -0xe5, 0xf3, 0xf7, 0xac, 0x39, 0xf5, 0xd0, 0x70, 0x18, 0xcb, 0x2e, 0x17, 0x2b, 0x96, 0x23, 0xbe, -0x67, 0x46, 0x37, 0x62, 0xbe, 0xed, 0x54, 0x52, 0x7c, 0x1c, 0x73, 0x3f, 0x47, 0xed, 0xa0, 0x2f, -0xd6, 0x85, 0x30, 0xad, 0x33, 0x3e, 0x3e, 0x38, 0x7f, 0x7c, 0xf5, 0xa9, 0x0d, 0xeb, 0xc8, 0x5a, -0x7f, 0x88, 0xed, 0x03, 0x8c, 0xb7, 0x47, 0x60, 0x48, 0x8d, 0xec, 0xe8, 0x86, 0xfb, 0xd3, 0xc1, -0xbf, 0xfb, 0xad, 0x2a, 0xbb, 0xe3, 0x54, 0x26, 0x8e, 0x5d, 0x91, 0x28, 0x51, 0x09, 0xed, 0x68, -0x60, 0xff, 0xd9, 0x0a, 0xf7, 0xd7, 0x88, 0x14, 0x72, 0x48, 0x35, 0xe0, 0xb8, 0x28, 0x35, 0x98, -0xc6, 0x65, 0xbc, 0x71, 0x5b, 0x04, 0x14, 0x2c, 0xe7, 0xfe, 0x3b, 0x85, 0x8f, 0x0d, 0x5f, 0xe1, -0x78, 0x5c, 0x2c, 0xa7, 0xf1, 0x58, 0x21, 0xa9, 0x30, 0xe5, 0x9e, 0x96, 0x4e, 0x96, 0x95, 0xb6, -0x95, 0x94, 0x9e, 0x11, 0x71, 0x15, 0xc8, 0x5e, 0x95, 0xfc, 0x8b, 0x90, 0x5f, 0x51, 0x37, 0x79, -0x96, 0x40, 0x3e, 0xc0, 0x8b, 0xf3, 0xc3, 0x1e, 0x6a, 0xf7, 0x76, 0x6e, 0xf2, 0x10, 0xcc, 0x5a, -0x74, 0xed, 0xb9, 0x35, 0x4e, 0xe4, 0x96, 0x59, 0x0a, 0xa5, 0x53, 0xaa, 0xf3, 0xf6, 0x79, 0x32, -0x7b, 0xf9, 0x48, 0x84, 0x7b, 0x69, 0xa5, 0x96, 0x47, 0x42, 0xaa, 0xa1, 0x2d, 0x24, 0xf4, 0x8a, -0xd3, 0x86, 0x5f, 0xed, 0x4f, 0x9d, 0xab, 0x75, 0xc3, 0xd2, 0x8e, 0x28, 0x8e, 0x47, 0xaa, 0x2d, -0xb2, 0xfb, 0x24, 0xb4, 0xa9, 0x3e, 0xb2, 0x6d, 0x29, 0x9f, 0x0b, 0x4a, 0x7c, 0xdd, 0xe1, 0x5e, -0x30, 0x08, 0xef, 0xcf, 0x3e, 0xd2, 0x0a, 0x0b, 0x60, 0xef, 0x51, 0xaa, 0xce, 0x73, 0x84, 0xa5, -0x73, 0xe1, 0xa6, 0xf8, 0x9a, 0x83, 0x21, 0xc2, 0x01, 0x26, 0x09, 0xd7, 0x41, 0xa1, 0xd4, 0x9a, -0xe5, 0x3d, 0x3d, 0xd3, 0x78, 0xcf, 0xe9, 0x9c, 0x12, 0xb5, 0xb1, 0x8e, 0x79, 0x4f, 0xf9, 0x40, -0x0f, 0xd4, 0xdb, 0x9b, 0x7d, 0x06, 0xe6, 0x2f, 0xc9, 0xa2, 0xc0, 0x16, 0xdf, 0x67, 0x6f, 0x46, -0x8e, 0xcb, 0xaa, 0x18, 0xf9, 0x79, 0x6f, 0x62, 0x9e, 0x7c, 0xa8, 0x37, 0x8e, 0x73, 0x5e, 0x92, -0x8e, 0x60, 0x1b, 0x6b, 0xd9, 0x8b, 0xac, 0xa0, 0x39, 0x6d, 0x59, 0x2a, 0xa3, 0x84, 0xe2, 0x19, -0x85, 0xd7, 0xb0, 0x8d, 0x30, 0xe7, 0x30, 0xf2, 0xe7, 0xad, 0x77, 0x87, 0x88, 0x43, 0x67, 0x3e, -0x7a, 0x26, 0x9f, 0x54, 0x2d, 0x21, 0xba, 0x21, 0xf8, 0xa0, 0x54, 0x2b, 0x4a, 0x81, 0x75, 0xed, -0xb1, 0x23, 0x11, 0x2e, 0xbd, 0x64, 0xfa, 0x97, 0xed, 0x21, 0xb5, 0x64, 0x5a, 0x1b, 0x5e, 0x27, -0x7e, 0x95, 0x34, 0x71, 0x58, 0x26, 0x25, 0x5e, 0x35, 0x22, 0xf8, 0x55, 0x3e, 0xa5, 0x3c, 0xa6, -0xf3, 0xaa, 0x43, 0xd3, 0xfd, 0x42, 0xba, 0xc8, 0x1b, 0x0c, 0xca, 0x36, 0xc1, 0x2a, 0xa4, 0xbf, -0x46, 0x9e, 0xa5, 0xf7, 0x0b, 0x66, 0xec, 0xb0, 0xc3, 0x05, 0xfe, 0x84, 0x07, 0x6b, 0xf7, 0xd0, -0x0c, 0x21, 0x3c, 0x2e, 0x0d, 0x86, 0x90, 0x6f, 0x6a, 0x6d, 0x4f, 0x46, 0xa2, 0x38, 0x5b, 0x51, -0xa5, 0xf5, 0x97, 0xfb, 0x53, 0x17, 0xeb, 0xdc, 0xd0, 0xf6, 0xda, 0xab, 0xc8, 0x3f, 0xa7, 0xb0, -0xb5, 0x51, 0xd5, 0xaf, 0xb7, 0x54, 0xc1, 0x96, 0x22, 0x9d, 0x10, 0xbe, 0x71, 0x46, 0xc2, 0x7e, -0x68, 0x0c, 0xaf, 0xbc, 0xee, 0xc4, 0x7f, 0x1d, 0x0f, 0x07, 0x7b, 0x98, 0xe3, 0x1a, 0xaf, 0x70, -0xe1, 0xfc, 0x3d, 0xd0, 0x1e, 0x8b, 0x18, 0xfc, 0x88, 0x6b, 0x14, 0xb8, 0x03, 0xf1, 0x4b, 0xfc, -0xd5, 0xa0, 0x21, 0xbe, 0x2f, 0x98, 0xac, 0x63, 0x0f, 0x5d, 0xf3, 0xa5, 0x48, 0x5a, 0x89, 0x3d, -0xba, 0x8f, 0xf9, 0xad, 0xe4, 0xa3, 0xbf, 0x65, 0x6e, 0x8b, 0xe8, 0x42, 0x09, 0xd1, 0xa1, 0x33, -0xfb, 0x74, 0x6e, 0xab, 0xd4, 0xdb, 0x82, 0x63, 0x9e, 0x40, 0xbe, 0xb5, 0x39, 0xa7, 0x59, 0x9b, -0x52, 0x3c, 0xf2, 0x41, 0xa4, 0xa5, 0xb6, 0x94, 0xe2, 0x2d, 0xca, 0x52, 0xae, 0x33, 0xf7, 0xf3, -0xee, 0xa6, 0x95, 0xcb, 0xa0, 0x67, 0x3f, 0xed, 0x6a, 0x26, 0x42, 0x7d, 0x72, 0x5b, 0x34, 0xbb, -0x3f, 0x72, 0x86, 0xac, 0x34, 0x73, 0xd4, 0x96, 0x63, 0xee, 0x11, 0x8c, 0x5c, 0x73, 0x6f, 0x83, -0xfc, 0x66, 0xfe, 0xd5, 0x23, 0xe4, 0xb5, 0x92, 0x39, 0xf5, 0x62, 0x3e, 0xe9, 0xc7, 0x92, 0x49, -0x03, 0xe8, 0xaf, 0xba, 0x48, 0x7f, 0x86, 0xe9, 0xdb, 0x46, 0x3d, 0xba, 0xc1, 0x81, 0x82, 0x12, -0x57, 0xf1, 0xb8, 0x56, 0x52, 0x2f, 0x99, 0xee, 0xe6, 0xbe, 0x4d, 0x8e, 0xfd, 0xf1, 0x25, 0xa6, -0xb9, 0x9d, 0x08, 0xb1, 0x7a, 0x4b, 0x72, 0x7e, 0x4e, 0x64, 0xaa, 0xab, 0x40, 0x8b, 0x45, 0xce, -0xd5, 0xb1, 0x76, 0x5a, 0x5e, 0xd3, 0xb4, 0xbc, 0x54, 0xb2, 0x35, 0x97, 0xd7, 0x21, 0xf6, 0x4c, -0x04, 0xb5, 0xe4, 0x7d, 0xcd, 0x4a, 0xa5, 0x0a, 0x6c, 0xc4, 0x79, 0x79, 0xc9, 0x9b, 0x2e, 0x24, -0xc7, 0x4e, 0x6d, 0x8b, 0x3c, 0x4f, 0x56, 0x12, 0x49, 0x45, 0x78, 0xeb, 0xa5, 0xf5, 0x2c, 0x93, -0x74, 0x47, 0xbb, 0x3d, 0x25, 0xcc, 0xe5, 0x99, 0xe4, 0xae, 0x8f, 0x35, 0xe4, 0xf1, 0x84, 0x1d, -0xc0, 0x39, 0xde, 0xb7, 0x9b, 0x04, 0xeb, 0x4d, 0x3d, 0xf0, 0x00, 0x94, 0x78, 0x7b, 0x20, 0x04, -0x64, 0x45, 0x99, 0xdf, 0x3b, 0x2b, 0xdc, 0x63, 0xb5, 0x66, 0xf7, 0xce, 0x90, 0x3f, 0x0b, 0x6d, -0x17, 0xfa, 0x7f, 0x55, 0x10, 0xcc, 0x5b, 0x38, 0x60, 0xed, 0x14, 0x2d, 0xad, 0x52, 0xee, 0x9a, -0xd2, 0x74, 0x8f, 0x42, 0x9d, 0x98, 0xa6, 0xd0, 0x5e, 0x6a, 0xce, 0xa3, 0x71, 0x61, 0xeb, 0x4b, -0xd3, 0xf7, 0x67, 0xdb, 0x7e, 0xf2, 0xa3, 0x2b, 0xdb, 0xad, 0xb7, 0xcd, 0xce, 0x6d, 0x73, 0x62, -0xdb, 0xa2, 0x2c, 0x95, 0x72, 0xdb, 0xa8, 0x2f, 0x5f, 0xda, 0xbe, 0xe8, 0x17, 0xb4, 0x2f, 0x8a, -0xff, 0xa5, 0xdc, 0xb2, 0x7b, 0xf0, 0xce, 0x91, 0x6f, 0x19, 0x8d, 0x74, 0x76, 0xf7, 0x95, 0x2c, -0xdc, 0x84, 0xa5, 0xc0, 0xa5, 0x35, 0xc2, 0x6f, 0x70, 0x21, 0xfd, 0x77, 0x91, 0x87, 0x7d, 0x8a, -0x5f, 0xec, 0x46, 0xbc, 0x68, 0x21, 0xdf, 0xb8, 0xc4, 0x95, 0xd2, 0xa9, 0x20, 0x71, 0xa3, 0x74, -0x15, 0xfe, 0x75, 0x09, 0x26, 0x4e, 0x1e, 0xd1, 0x77, 0xc1, 0x40, 0x5a, 0xac, 0x4b, 0xd3, 0x20, -0x55, 0x53, 0x2f, 0x08, 0x27, 0x94, 0xc3, 0x47, 0x96, 0xc3, 0x70, 0xdc, 0x10, 0x5f, 0x47, 0x7e, -0xa7, 0x6c, 0xd2, 0x47, 0xa6, 0x09, 0xe9, 0x38, 0x54, 0x40, 0xfc, 0x01, 0x84, 0xa1, 0x9e, 0x02, -0xb8, 0x28, 0x15, 0x5c, 0xa2, 0xb0, 0xb4, 0xad, 0x8b, 0xb1, 0x06, 0x0d, 0xd6, 0xd9, 0xbe, 0xe1, -0xd1, 0xdf, 0x22, 0xb6, 0x20, 0x49, 0x68, 0xc3, 0xa3, 0x7b, 0x11, 0x67, 0x10, 0x74, 0xc9, 0x0b, -0x27, 0x4f, 0x96, 0x30, 0x05, 0x2d, 0xcf, 0xd6, 0x08, 0x9b, 0xaf, 0x28, 0xaf, 0x44, 0x94, 0x77, -0xd2, 0x26, 0x6c, 0x0a, 0xa6, 0xb5, 0x5b, 0xe8, 0xff, 0x23, 0x64, 0xe6, 0x6b, 0x50, 0xa2, 0x42, -0xf7, 0x4f, 0xbc, 0xa5, 0xdc, 0xde, 0x22, 0x3f, 0xf5, 0x79, 0x99, 0xa6, 0x89, 0x37, 0x5c, 0xbb, -0x78, 0x67, 0x16, 0x3a, 0x55, 0x94, 0xee, 0xa7, 0x96, 0x3d, 0xf4, 0xd8, 0x5e, 0xef, 0x4c, 0x2a, -0x25, 0x57, 0x76, 0xb9, 0x9a, 0xd4, 0xc7, 0x8d, 0xe5, 0xf5, 0xbc, 0xb4, 0x4e, 0x77, 0x7a, 0x1b, -0xc6, 0xce, 0x76, 0xf1, 0x6a, 0x72, 0x5c, 0xd1, 0x72, 0xab, 0xae, 0xc3, 0xdf, 0x46, 0x23, 0xb1, -0x4a, 0x62, 0xaa, 0x76, 0x56, 0x50, 0xb5, 0xe4, 0xdd, 0xda, 0xe2, 0x6c, 0x7c, 0x58, 0x57, 0x1f, -0x58, 0x3c, 0xbd, 0xd0, 0x11, 0xa8, 0x82, 0x45, 0x28, 0xaf, 0x76, 0xd2, 0x88, 0x53, 0xbf, 0xef, -0x08, 0x81, 0xea, 0x77, 0x81, 0x0d, 0x71, 0xd6, 0x12, 0xe2, 0xc9, 0x88, 0x36, 0x10, 0x9f, 0x46, -0x7e, 0xfd, 0x4d, 0x6f, 0xb0, 0xcd, 0x9e, 0x4b, 0x60, 0x51, 0xd3, 0x2e, 0x17, 0xc2, 0xe7, 0xce, -0x0d, 0x38, 0x7a, 0xdb, 0xfc, 0x55, 0xe0, 0x42, 0x6a, 0xa2, 0x6e, 0xc6, 0x56, 0x6c, 0xee, 0x81, -0x5e, 0x5f, 0x15, 0xb8, 0x11, 0x47, 0x2e, 0x19, 0xe9, 0x62, 0x7f, 0x01, 0xfd, 0xb4, 0x9f, 0x47, -0xfc, 0x67, 0x24, 0x52, 0x23, 0xc5, 0x5f, 0xf1, 0x87, 0x54, 0xf2, 0x1b, 0x62, 0xd8, 0x1e, 0xef, -0x53, 0x48, 0x4a, 0x0d, 0x5f, 0x18, 0x86, 0x9f, 0xbd, 0x32, 0x50, 0x4a, 0x92, 0xcc, 0x68, 0xbc, -0xcf, 0x82, 0x69, 0x66, 0x4e, 0x7b, 0xad, 0xdf, 0xe2, 0x68, 0x6b, 0x63, 0x5f, 0x2a, 0xa9, 0x37, -0x97, 0x6b, 0x58, 0xea, 0x3d, 0xa3, 0x11, 0xac, 0x79, 0x0b, 0xf3, 0x26, 0xe4, 0x0b, 0x91, 0xbd, -0x32, 0xa3, 0x9c, 0xe2, 0xc0, 0xf1, 0x20, 0xaa, 0x66, 0xbb, 0x23, 0x02, 0xf7, 0xdc, 0x9a, 0x00, -0x07, 0xe6, 0xea, 0xcf, 0xbd, 0x47, 0xa9, 0xe0, 0x2c, 0x4a, 0x2d, 0xa6, 0xce, 0x9f, 0x9d, 0x22, -0xce, 0xb1, 0x68, 0x0f, 0xc2, 0x3f, 0x79, 0x1d, 0x2b, 0x2b, 0x6c, 0x33, 0xfe, 0x2f, 0xf5, 0xcd, -0x85, 0x72, 0x6e, 0x37, 0xb6, 0x19, 0xff, 0x53, 0xd4, 0x7e, 0xc7, 0x32, 0x28, 0x89, 0x44, 0xea, -0xa4, 0xf8, 0xab, 0xd7, 0x6c, 0xf7, 0xab, 0xd7, 0x6c, 0x77, 0x69, 0xbe, 0xdd, 0xc8, 0x8f, 0x1b, -0x02, 0x45, 0xaa, 0xcc, 0xed, 0xef, 0xa4, 0xf6, 0xcf, 0x38, 0xc8, 0xed, 0xaf, 0xd4, 0xdb, 0x27, -0x61, 0xfb, 0x15, 0xa4, 0xca, 0xab, 0xf8, 0x9c, 0x7b, 0xec, 0x73, 0xf6, 0x7e, 0x8a, 0xfd, 0xe8, -0xc4, 0x7e, 0x28, 0x98, 0xfb, 0xc7, 0xb9, 0x7c, 0xd8, 0x8f, 0x8f, 0x3b, 0x98, 0xdf, 0x64, 0x39, -0x70, 0x06, 0x79, 0x5d, 0x54, 0xaa, 0x5d, 0x50, 0x99, 0x8b, 0x99, 0xbc, 0x38, 0x17, 0x09, 0x12, -0x60, 0x29, 0xc7, 0xbf, 0x04, 0xb8, 0x8f, 0xe3, 0x5f, 0x62, 0x53, 0x38, 0xfe, 0x25, 0x4e, 0x9d, -0xb6, 0x9c, 0xaf, 0x23, 0x05, 0xb1, 0x51, 0x01, 0x36, 0x68, 0xeb, 0xf4, 0xb8, 0x97, 0x00, 0x19, -0x6d, 0x63, 0x15, 0xc2, 0x03, 0x47, 0xbd, 0x04, 0xf8, 0xbe, 0x88, 0x7a, 0x89, 0x98, 0xc2, 0xc2, -0xf1, 0x6f, 0x61, 0x46, 0x69, 0xbc, 0x07, 0xaa, 0xf1, 0xdf, 0x83, 0xff, 0x6e, 0xfc, 0x77, 0x91, -0xae, 0x27, 0xfb, 0x1d, 0x7f, 0x97, 0x23, 0x3d, 0x7e, 0xaa, 0x3d, 0x7b, 0x23, 0xe2, 0x24, 0xed, -0xb9, 0xc8, 0x4f, 0xb4, 0x6d, 0xf8, 0xff, 0x22, 0xfe, 0x6f, 0xc7, 0xff, 0x97, 0x0a, 0xb0, 0x53, -0xf9, 0x55, 0x91, 0x1d, 0x9f, 0xcd, 0x62, 0x27, 0xe7, 0x3c, 0x6d, 0xdb, 0x1d, 0x0d, 0xd0, 0xeb, -0x9f, 0xa7, 0xed, 0x40, 0x38, 0xcc, 0x28, 0xf3, 0xb4, 0x17, 0x11, 0x2e, 0xfb, 0x3d, 0x7d, 0xda, -0x4b, 0x77, 0x24, 0x61, 0xd0, 0x83, 0x58, 0xdd, 0x8d, 0x63, 0xe6, 0xc0, 0x59, 0xac, 0x45, 0xc8, -0x8b, 0xef, 0x55, 0x1a, 0x11, 0x66, 0x0d, 0xf1, 0xdd, 0xf6, 0x98, 0x0f, 0xf9, 0x8e, 0xf0, 0xd9, -0x72, 0x18, 0x39, 0x09, 0x65, 0x76, 0xd3, 0x01, 0x8a, 0x49, 0xac, 0x22, 0x8c, 0xbb, 0xe3, 0x7b, -0x94, 0xc6, 0x20, 0xd2, 0x9a, 0xf8, 0x3e, 0xcc, 0x61, 0x0c, 0x9f, 0xed, 0xa2, 0x1c, 0xe5, 0xb1, -0xb3, 0x2e, 0xa8, 0x4a, 0x68, 0x5d, 0x3e, 0xec, 0xcb, 0xa3, 0x7b, 0xe3, 0xaf, 0x84, 0xcf, 0xd6, -0x4a, 0x58, 0xfb, 0xf6, 0xda, 0xa2, 0xf8, 0xde, 0x86, 0xb3, 0x71, 0xa8, 0x5a, 0xa0, 0x65, 0xf0, -0x5d, 0xf5, 0xa3, 0x7b, 0xe2, 0xe3, 0xe1, 0xb3, 0x26, 0x29, 0x98, 0x24, 0x29, 0xba, 0x2a, 0xae, -0xad, 0xf4, 0xf4, 0xb0, 0xd6, 0xb8, 0x25, 0x3e, 0x7e, 0xe0, 0xa1, 0xd1, 0xd5, 0x4b, 0x8d, 0x23, -0x0f, 0x51, 0x6c, 0x4f, 0x7f, 0x3f, 0x58, 0x63, 0x67, 0x9f, 0x83, 0x9f, 0xbf, 0xbe, 0xd4, 0xf8, -0xd8, 0x7e, 0xfc, 0xba, 0x2b, 0xf1, 0x13, 0x4d, 0xed, 0x25, 0x7f, 0xc9, 0x2a, 0xde, 0x75, 0xf5, -0xda, 0xf0, 0xae, 0x4b, 0x35, 0x2b, 0x4d, 0x72, 0xd7, 0x7b, 0x48, 0x01, 0xaa, 0x6d, 0x89, 0x07, -0x53, 0xe7, 0x38, 0xe2, 0x43, 0x70, 0x58, 0x56, 0x28, 0xee, 0x43, 0x2f, 0x69, 0xcb, 0x8a, 0x3d, -0x5e, 0x8a, 0xf2, 0x9c, 0xae, 0xb8, 0x95, 0xec, 0x11, 0xa6, 0xc5, 0x25, 0xc4, 0x94, 0x68, 0x1a, -0x8a, 0x1f, 0xe1, 0xb1, 0xfe, 0x4c, 0x3b, 0xc0, 0x63, 0x7d, 0x88, 0x4a, 0x69, 0x38, 0x01, 0x1d, -0x58, 0xeb, 0xe1, 0xaa, 0x3e, 0x4d, 0xd5, 0x8e, 0xe1, 0x6f, 0x97, 0xf6, 0x3e, 0xfe, 0x66, 0xb4, -0x13, 0xf8, 0xbb, 0x52, 0x3b, 0x8d, 0xb3, 0x1a, 0xd5, 0xce, 0x56, 0x75, 0xc9, 0x4b, 0xb5, 0xf3, -0xd8, 0x8b, 0xa3, 0x7c, 0x7e, 0xe4, 0x11, 0xe7, 0x47, 0x83, 0x86, 0x35, 0xc3, 0x38, 0x5a, 0x17, -0xaf, 0x41, 0xd9, 0xce, 0x68, 0x07, 0xb2, 0x73, 0xf3, 0xe8, 0x7e, 0x7c, 0x5a, 0xcc, 0xed, 0xfb, -0x11, 0xb6, 0x83, 0xd7, 0x20, 0x51, 0xa7, 0x3f, 0x2c, 0xc6, 0x19, 0xba, 0x97, 0xf6, 0x93, 0x89, -0x6a, 0x09, 0x38, 0x31, 0x9c, 0xce, 0xbe, 0xfd, 0xec, 0x38, 0x52, 0x69, 0xc4, 0x52, 0x5e, 0x17, -0x45, 0x1d, 0xc1, 0xaf, 0x90, 0xff, 0x4a, 0x8e, 0xbd, 0xbf, 0x22, 0x8b, 0x17, 0x08, 0x1e, 0x16, -0x9e, 0x02, 0x17, 0x69, 0x3a, 0x2e, 0x79, 0x52, 0x2d, 0xe3, 0xef, 0xac, 0x62, 0xed, 0x92, 0x7e, -0xa1, 0xa3, 0x2d, 0x4b, 0xcf, 0x52, 0xef, 0xab, 0x60, 0xd8, 0x82, 0xeb, 0xd8, 0x92, 0x02, 0x43, -0x10, 0xf1, 0x0e, 0xaf, 0x5f, 0xc4, 0x60, 0x4b, 0xb6, 0xe2, 0x5a, 0x65, 0xde, 0x63, 0x11, 0xaf, -0xe4, 0x2a, 0x48, 0x25, 0xc2, 0x7d, 0x00, 0xeb, 0xb7, 0xf7, 0x40, 0x6b, 0xef, 0xfd, 0x5b, 0x43, -0x3d, 0xab, 0xfc, 0x3d, 0xd0, 0xe6, 0x9d, 0x19, 0x6c, 0x60, 0x5f, 0xda, 0xda, 0xb7, 0xdf, 0x6f, -0xdd, 0xe4, 0x87, 0xbe, 0xa5, 0xa3, 0x3d, 0xd0, 0xd1, 0x7b, 0x2f, 0xc2, 0x52, 0xf9, 0xa3, 0xfb, -0x55, 0xd9, 0xd1, 0x36, 0x1a, 0x4f, 0x9b, 0xdb, 0x36, 0x70, 0x5d, 0xe7, 0xd4, 0x16, 0x1e, 0x89, -0xc6, 0x80, 0xc4, 0xf1, 0x8c, 0x90, 0x97, 0xf7, 0x87, 0x55, 0xb7, 0x8e, 0x03, 0xe6, 0xe4, 0x70, -0xc0, 0x6b, 0x03, 0x25, 0x89, 0x86, 0x3e, 0x2b, 0xcd, 0x40, 0x39, 0xf1, 0x7e, 0xeb, 0x76, 0x36, -0xf4, 0xda, 0x10, 0x03, 0xb0, 0x9f, 0x95, 0xd4, 0x84, 0x6a, 0x7c, 0xfc, 0x75, 0x55, 0x0e, 0xd0, -0xd9, 0xea, 0x22, 0x5a, 0xff, 0x45, 0xcb, 0x79, 0xfd, 0x2b, 0xdc, 0xcb, 0x2a, 0xf2, 0x10, 0xf1, -0x49, 0x54, 0xac, 0xfd, 0x4f, 0xb3, 0x57, 0x92, 0x34, 0x2b, 0x11, 0x07, 0x2c, 0x42, 0x1c, 0x80, -0x2b, 0xbd, 0x28, 0x22, 0xce, 0x87, 0x30, 0x67, 0x05, 0xf1, 0x0f, 0xb5, 0x2e, 0xa8, 0x40, 0x99, -0xa7, 0x2c, 0x80, 0x6b, 0xbf, 0xce, 0x05, 0xe5, 0x5f, 0xbe, 0xea, 0xf0, 0x7f, 0x0c, 0xff, 0x77, -0xe1, 0xff, 0x1e, 0xfc, 0xdf, 0x57, 0xb0, 0x0a, 0x2d, 0x5f, 0xbc, 0x0a, 0xed, 0x7d, 0xb8, 0x0a, -0x17, 0x40, 0xaf, 0xd2, 0xa7, 0x6d, 0xbf, 0x23, 0x0e, 0x19, 0x3b, 0xad, 0xc2, 0x30, 0xe2, 0xf2, -0x79, 0xb8, 0x0a, 0x43, 0x30, 0xd8, 0x16, 0x7d, 0xa2, 0xe1, 0xf0, 0x82, 0xc3, 0xf1, 0xb6, 0xc8, -0x96, 0xd8, 0xc1, 0xf0, 0xc1, 0x90, 0x1b, 0xf9, 0x52, 0x67, 0x31, 0x79, 0x71, 0x1c, 0x16, 0xa7, -0xc6, 0x16, 0xa4, 0x27, 0x86, 0x89, 0x2e, 0x30, 0x19, 0x43, 0xda, 0x59, 0x5c, 0x9f, 0x46, 0x95, -0xb8, 0x93, 0x4a, 0x7b, 0x0f, 0x4b, 0x38, 0xc4, 0x45, 0x77, 0xf1, 0xfb, 0xb2, 0x12, 0x92, 0x77, -0x56, 0x9b, 0x8a, 0x11, 0x37, 0x1b, 0x0e, 0x74, 0x41, 0x79, 0x5b, 0x38, 0x8b, 0xbf, 0x38, 0x16, -0xb7, 0x9a, 0xc5, 0x62, 0x41, 0x29, 0xbe, 0xaf, 0xaa, 0x91, 0x63, 0x8e, 0x33, 0x36, 0x0b, 0x44, -0x71, 0xed, 0x66, 0xb2, 0x38, 0xad, 0x56, 0x8e, 0xef, 0xad, 0x8a, 0x72, 0x54, 0x5f, 0xc6, 0x6d, -0x83, 0x12, 0x42, 0x73, 0x1e, 0xb7, 0x85, 0xf3, 0xb8, 0x8d, 0xfa, 0x8f, 0xe5, 0xe6, 0xb1, 0x5b, -0x58, 0x7b, 0x02, 0xc7, 0xe5, 0x29, 0xfc, 0x7f, 0x26, 0xb1, 0x36, 0xdd, 0x88, 0x50, 0xd5, 0xf6, -0xca, 0x29, 0x58, 0x24, 0x3c, 0x62, 0xfa, 0x1b, 0xde, 0xde, 0xed, 0x97, 0x57, 0x5c, 0xf7, 0xc1, -0xb2, 0x03, 0x91, 0xe3, 0xe1, 0xcd, 0xbb, 0x8f, 0x3e, 0x44, 0x6d, 0x58, 0x78, 0x0e, 0xf8, 0x84, -0x2f, 0x3e, 0x3e, 0xfa, 0x48, 0x2f, 0x9d, 0x9d, 0x93, 0x47, 0x1f, 0x94, 0xa4, 0x46, 0x1e, 0x1e, -0xb4, 0x1d, 0xa0, 0x75, 0x44, 0x54, 0xd4, 0x82, 0x72, 0x55, 0xe2, 0x5f, 0xce, 0x68, 0xea, 0xf6, -0x47, 0x96, 0x1a, 0x37, 0x3f, 0x4c, 0xa9, 0xbe, 0x2e, 0xb0, 0x22, 0x1e, 0xeb, 0xfa, 0x97, 0xbd, -0x3f, 0x7b, 0x73, 0xa9, 0xf1, 0xd1, 0xbd, 0xd8, 0x8e, 0x2b, 0x71, 0x04, 0xdd, 0x75, 0x65, 0x79, -0x52, 0x5d, 0x62, 0x89, 0x08, 0x7c, 0x91, 0xe5, 0x4a, 0xff, 0x03, 0x18, 0x83, 0xf6, 0x6e, 0x2f, -0x7d, 0x45, 0x8c, 0x91, 0xd0, 0x4e, 0x04, 0x23, 0x55, 0x49, 0xc6, 0x17, 0xa1, 0x2f, 0xc4, 0x17, -0xf2, 0x7f, 0x00, 0x5f, 0xd8, 0xb2, 0x18, 0xe1, 0x8c, 0x07, 0x61, 0x68, 0xb1, 0x8e, 0x2f, 0x6c, -0x8c, 0x2f, 0xda, 0xb2, 0xef, 0x3e, 0xd9, 0x31, 0x0d, 0x5b, 0xd8, 0x04, 0xb6, 0x38, 0x16, 0xa7, -0x31, 0x71, 0x08, 0x3e, 0xbd, 0x7c, 0xe1, 0xe4, 0xbf, 0x0d, 0xab, 0x15, 0xf4, 0xc5, 0x8a, 0xb2, -0x43, 0xcf, 0x93, 0x8f, 0x3d, 0x9d, 0x42, 0x6e, 0x2d, 0xc0, 0x15, 0xc7, 0xe8, 0x0b, 0xe8, 0x92, -0x00, 0x2c, 0x96, 0x1e, 0xde, 0x2b, 0xea, 0x4c, 0x20, 0x77, 0x9b, 0x6a, 0x53, 0xad, 0xfa, 0xb3, -0x9d, 0x9f, 0xaf, 0xa0, 0xc4, 0xff, 0x7e, 0x36, 0xcf, 0x99, 0xab, 0x76, 0xce, 0x79, 0x4f, 0x7a, -0xce, 0x74, 0x6e, 0xe3, 0xdf, 0xdf, 0xc8, 0xf3, 0xc8, 0x39, 0x8f, 0xeb, 0x01, 0xdd, 0x3b, 0xf2, -0x90, 0x7e, 0x9a, 0xb0, 0xc3, 0xd5, 0xe6, 0xed, 0x85, 0xc5, 0xe0, 0xcf, 0xfc, 0x97, 0x46, 0x98, -0xee, 0xf1, 0x56, 0xab, 0xe3, 0x78, 0x27, 0x6d, 0xe4, 0xe9, 0x07, 0x25, 0xea, 0x79, 0x60, 0xcd, -0x68, 0x39, 0x8f, 0x3c, 0x2f, 0xdd, 0x18, 0x82, 0xeb, 0xa6, 0x7b, 0xff, 0x01, 0x5b, 0xf8, 0x0c, -0x94, 0x56, 0x91, 0xff, 0xad, 0x9f, 0x40, 0x79, 0xc3, 0x19, 0x5c, 0xf3, 0x0b, 0xa0, 0xb4, 0xe9, -0x0c, 0xd8, 0x6f, 0x59, 0x08, 0xa6, 0xdb, 0xe9, 0xec, 0xd6, 0xe2, 0x9a, 0xbd, 0x5c, 0x52, 0x8d, -0x91, 0xc8, 0x4a, 0xf8, 0xe1, 0x6f, 0x68, 0x47, 0xa1, 0xc0, 0x97, 0xf1, 0xcb, 0x89, 0x48, 0xca, -0x92, 0x81, 0xbc, 0x6f, 0x63, 0xb2, 0x1d, 0x5d, 0xd1, 0xa2, 0x44, 0xf3, 0x5e, 0x80, 0x54, 0x98, -0x11, 0xf1, 0xcd, 0x83, 0x52, 0x8e, 0x30, 0x6c, 0xe1, 0x08, 0xc3, 0x30, 0xc3, 0xa1, 0x42, 0xf1, -0xbb, 0x4a, 0x1f, 0x94, 0x39, 0x37, 0x20, 0x34, 0x56, 0xdf, 0x1a, 0x17, 0x51, 0x5e, 0x2e, 0x27, -0xc9, 0x8e, 0x9b, 0xd2, 0x6f, 0x45, 0xec, 0x8d, 0xdc, 0x0a, 0x8d, 0xc5, 0x22, 0x31, 0x6a, 0x62, -0x5c, 0x94, 0x76, 0x7c, 0xf3, 0x06, 0xf8, 0xf0, 0x77, 0x3f, 0x04, 0xf0, 0x77, 0x02, 0x78, 0x77, -0xf5, 0x0e, 0x9c, 0x3f, 0x50, 0xf1, 0xd7, 0x06, 0x4b, 0x38, 0xe7, 0x10, 0x47, 0x50, 0x5e, 0x83, -0xbc, 0xe6, 0xce, 0x41, 0x03, 0x45, 0xbf, 0xcb, 0xda, 0xcd, 0x93, 0x6e, 0x19, 0xc2, 0xc8, 0xba, -0x68, 0x0f, 0xac, 0xf3, 0x20, 0x9c, 0x78, 0x19, 0x27, 0x40, 0x4d, 0xe4, 0xa7, 0x50, 0xc7, 0xf7, -0xf7, 0x41, 0x3d, 0xde, 0x47, 0xf8, 0x3e, 0x05, 0x8d, 0xcc, 0xc1, 0x52, 0x7c, 0xd9, 0x38, 0x24, -0x38, 0x2d, 0x0d, 0x49, 0x5d, 0x8e, 0x98, 0x43, 0x67, 0xc8, 0x6c, 0xd5, 0xd2, 0xc6, 0x6f, 0x46, -0x60, 0xd1, 0x0a, 0xc9, 0xdb, 0x00, 0xf7, 0xf0, 0xd3, 0x06, 0xb8, 0x17, 0xef, 0x97, 0xf0, 0x7d, -0x06, 0x52, 0x28, 0x47, 0x19, 0xa0, 0x9b, 0x9f, 0xbe, 0x0f, 0xfd, 0xf8, 0x66, 0x10, 0x6b, 0x59, -0x81, 0xff, 0xab, 0xc8, 0x33, 0x15, 0xc2, 0x4b, 0x39, 0x52, 0xb6, 0x31, 0xa6, 0x34, 0x20, 0xbb, -0x32, 0x1d, 0x13, 0xcf, 0x83, 0x41, 0xf7, 0x61, 0xf9, 0x6f, 0x21, 0x87, 0x03, 0x5a, 0x37, 0xe1, -0xfb, 0x27, 0x23, 0x48, 0x55, 0x98, 0x62, 0x14, 0xa1, 0x2c, 0xad, 0xdd, 0xb9, 0x57, 0xb5, 0x7b, -0xba, 0x91, 0x37, 0xe7, 0x48, 0x10, 0x9d, 0x9b, 0xec, 0x11, 0x25, 0xe9, 0x69, 0xa4, 0xdd, 0x0d, -0xe1, 0x97, 0xb1, 0x8d, 0x72, 0x8b, 0x5d, 0xd5, 0xc3, 0xe4, 0x21, 0x89, 0x30, 0xa7, 0x31, 0x04, -0xe6, 0x89, 0x06, 0x1c, 0x81, 0x56, 0x7b, 0x04, 0xf9, 0x52, 0x8a, 0x11, 0x07, 0x7e, 0xa4, 0x71, -0x3f, 0xdf, 0xdd, 0x6b, 0xc4, 0xd4, 0x36, 0xd5, 0x78, 0x07, 0xf9, 0xe4, 0x6c, 0xeb, 0xe8, 0xe1, -0x5e, 0x91, 0x3d, 0xe3, 0xfd, 0x2c, 0x09, 0xae, 0xc9, 0x4a, 0x4f, 0xf1, 0xe1, 0x40, 0xc8, 0x9b, -0x80, 0x75, 0xfa, 0xf3, 0xcd, 0xec, 0x0b, 0x20, 0xce, 0xde, 0xd1, 0xf5, 0xf7, 0xfe, 0x90, 0x77, -0x01, 0xfb, 0xee, 0xd6, 0xdf, 0x73, 0x7e, 0xb6, 0x26, 0xc3, 0xff, 0x27, 0xf0, 0xff, 0x29, 0xfc, -0x7f, 0x06, 0xff, 0x9f, 0xc5, 0xff, 0xe7, 0xbe, 0x50, 0xee, 0xbd, 0x3f, 0x47, 0x33, 0xbc, 0xb0, -0x0e, 0x69, 0xc4, 0xd2, 0x6a, 0x2f, 0x6c, 0xbc, 0xa3, 0x09, 0xba, 0x70, 0x3e, 0x37, 0x20, 0xc7, -0x96, 0xf2, 0x0e, 0xe0, 0x98, 0x57, 0xd3, 0x99, 0xee, 0x1d, 0x64, 0x2f, 0x34, 0x00, 0x5b, 0x90, -0xa2, 0x2c, 0xf7, 0x78, 0xe1, 0xa9, 0x3b, 0x1a, 0x61, 0x25, 0x4a, 0x94, 0x4f, 0x60, 0xfa, 0x0a, -0xa7, 0x17, 0x9e, 0x41, 0xbe, 0x6f, 0xd5, 0xc4, 0xbe, 0x89, 0x53, 0xd0, 0x8a, 0x39, 0x5a, 0x27, -0x1a, 0x90, 0x1b, 0x6f, 0xa3, 0xde, 0xc6, 0x77, 0xfb, 0xe3, 0x6f, 0xef, 0x8e, 0xff, 0xba, 0xe1, -0x0f, 0x2b, 0x81, 0x74, 0x2b, 0x77, 0x9f, 0x82, 0x8e, 0x60, 0x92, 0x35, 0xbe, 0xaa, 0xe9, 0x6c, -0x28, 0x76, 0xa1, 0x1c, 0xb0, 0xed, 0x6d, 0xf8, 0xfc, 0xec, 0xe8, 0x43, 0xdf, 0xb3, 0x4c, 0x8c, -0x8f, 0xbc, 0x46, 0x25, 0xe0, 0x9c, 0x27, 0x30, 0xed, 0xb9, 0xd1, 0x87, 0xbf, 0xc7, 0xba, 0x7b, -0xd4, 0x07, 0x6c, 0x65, 0x42, 0x91, 0x8e, 0x6f, 0x20, 0x2f, 0xee, 0x5b, 0x43, 0xbe, 0x22, 0x1c, -0x55, 0x1b, 0x96, 0x19, 0xa1, 0x77, 0x98, 0x66, 0x09, 0x42, 0x7c, 0x9f, 0x23, 0xbc, 0xf0, 0x5c, -0x17, 0x04, 0x1a, 0x7e, 0xf1, 0xe6, 0x52, 0x83, 0xaf, 0x68, 0x24, 0x8c, 0xdf, 0xb4, 0x11, 0xee, -0x7e, 0x7b, 0xf7, 0xcf, 0x5e, 0x43, 0xbc, 0xbd, 0x1b, 0xc7, 0x31, 0x42, 0x3b, 0x3f, 0x48, 0x17, -0xfe, 0xeb, 0x78, 0xd8, 0xf2, 0x53, 0x80, 0xff, 0x01, 0x10, 0xf9, 0x9e, 0x81, 0x20, 0x92, 0x47, -0xb9, 0x8e, 0xa2, 0x57, 0x31, 0x4c, 0x2c, 0x6e, 0xdd, 0x74, 0x05, 0xbe, 0xfe, 0x18, 0x5e, 0xd0, -0xf1, 0xb5, 0x17, 0x5e, 0xf8, 0x02, 0x7c, 0x1d, 0x4f, 0x83, 0x2c, 0x6c, 0x5f, 0x3f, 0xcb, 0xce, -0xab, 0x0e, 0x6b, 0xb8, 0x26, 0x84, 0x0d, 0x20, 0xdb, 0xe1, 0x8d, 0x78, 0xe9, 0xa4, 0x72, 0x8b, -0x97, 0xec, 0x4e, 0x9f, 0x40, 0xd8, 0x8d, 0xc3, 0x53, 0x54, 0x9b, 0x17, 0x71, 0x36, 0x3c, 0x33, -0x0d, 0x5f, 0x0b, 0xcd, 0x9f, 0x67, 0x19, 0xbe, 0x37, 0xfc, 0xe9, 0xb9, 0x44, 0xcc, 0xfd, 0x31, -0xd4, 0xe4, 0x30, 0xb7, 0x85, 0xf4, 0xc0, 0x68, 0x77, 0xa4, 0x90, 0x0e, 0xb1, 0x94, 0x9f, 0xf5, -0xe8, 0x06, 0xd2, 0xb3, 0x48, 0x07, 0xcb, 0x59, 0xea, 0x2f, 0xca, 0xe2, 0x6f, 0x92, 0x45, 0x8f, -0xb0, 0x87, 0x54, 0x5e, 0x31, 0x25, 0x59, 0x3e, 0xe6, 0xe3, 0x09, 0x3e, 0xe9, 0x07, 0x29, 0xf5, -0xa7, 0x76, 0x08, 0x8e, 0xec, 0xcc, 0xed, 0x10, 0xd4, 0x4d, 0x3b, 0x73, 0x2f, 0x9a, 0xa6, 0xdd, -0x52, 0x74, 0xa5, 0x04, 0xfc, 0x71, 0x6b, 0xeb, 0x26, 0x21, 0xa3, 0x63, 0x79, 0x53, 0xd3, 0x25, -0xf8, 0xfc, 0x3e, 0xd6, 0x15, 0xd2, 0x73, 0x59, 0x7e, 0xf7, 0xcb, 0xde, 0x94, 0x7c, 0x54, 0x48, -0xf8, 0xfa, 0xa9, 0xb4, 0x89, 0xa4, 0x75, 0xb6, 0x99, 0x61, 0x49, 0x5d, 0xdf, 0x75, 0xd2, 0xf7, -0x10, 0x28, 0x3e, 0xe4, 0x15, 0x65, 0xf1, 0xbe, 0x16, 0x95, 0x22, 0xf6, 0x22, 0xa8, 0x15, 0x7a, -0x64, 0xa1, 0x82, 0xdd, 0x2d, 0xee, 0xb9, 0xde, 0x32, 0xa6, 0x40, 0x32, 0x59, 0x91, 0x5d, 0x51, -0x52, 0x6e, 0xd7, 0x4b, 0xec, 0x64, 0x88, 0x2f, 0xf5, 0xfd, 0x85, 0x29, 0xaf, 0x38, 0xa3, 0x33, -0x89, 0x2f, 0x79, 0xf7, 0x40, 0x50, 0x59, 0x6b, 0x72, 0xb3, 0x67, 0x11, 0x8f, 0xb2, 0x21, 0x36, -0xf9, 0x61, 0x35, 0xc7, 0x0b, 0xfd, 0x80, 0xde, 0x38, 0x62, 0xc9, 0xcd, 0x8c, 0x75, 0x87, 0x55, -0x47, 0xa2, 0x87, 0x4f, 0x2e, 0x83, 0x96, 0x79, 0x20, 0xc3, 0x1c, 0x1c, 0x63, 0x3f, 0xd2, 0x00, -0x05, 0xb1, 0xbf, 0x96, 0x22, 0x2f, 0x83, 0x1c, 0x11, 0x87, 0x3c, 0xf7, 0x4b, 0x15, 0x76, 0xe4, -0xef, 0xe4, 0xd5, 0x14, 0xbe, 0x0e, 0xdf, 0x2e, 0x4b, 0x87, 0x96, 0x98, 0xf1, 0xda, 0x85, 0x5f, -0x00, 0x52, 0xd3, 0x10, 0x9c, 0x48, 0x3b, 0xf1, 0xf7, 0xc3, 0x14, 0xc0, 0x59, 0x3a, 0x05, 0x85, -0x93, 0x82, 0x93, 0xfd, 0x7f, 0x4e, 0xb4, 0x6e, 0xb2, 0xf4, 0xc1, 0x87, 0x6c, 0x05, 0x7f, 0x48, -0x05, 0xb8, 0x90, 0xa0, 0x33, 0xd3, 0x37, 0xd4, 0x52, 0xbe, 0xee, 0xc5, 0xfa, 0xd7, 0xa4, 0x4d, -0x88, 0x2d, 0xd7, 0xe0, 0xbb, 0x97, 0xf4, 0x6f, 0x76, 0x70, 0xac, 0x80, 0x37, 0x58, 0xf3, 0x73, -0xec, 0x77, 0x17, 0x08, 0xef, 0xea, 0x7b, 0x5d, 0xeb, 0x19, 0xc2, 0x37, 0xf2, 0x7a, 0x78, 0x38, -0x0b, 0xc3, 0xad, 0x9b, 0xbe, 0x04, 0x23, 0x61, 0xfe, 0x2f, 0xd8, 0xe9, 0x8a, 0x8b, 0xda, 0x4e, -0x4d, 0x88, 0xeb, 0xe9, 0xf5, 0xa4, 0x0b, 0x44, 0xb4, 0x5c, 0xcf, 0xdf, 0xa3, 0xd3, 0xba, 0x38, -0xe6, 0x35, 0x79, 0x2d, 0xac, 0x1b, 0x39, 0x84, 0x33, 0xf1, 0x35, 0x96, 0x74, 0x6b, 0xb1, 0xcd, -0xec, 0x39, 0x8f, 0x2c, 0x3b, 0x38, 0xa5, 0xa6, 0x75, 0x13, 0x59, 0xc9, 0xf1, 0xbd, 0xdd, 0xad, -0x47, 0xa4, 0xbe, 0xf8, 0xb4, 0x0a, 0x17, 0xb7, 0x91, 0xec, 0x9c, 0x02, 0xcd, 0xa7, 0x6e, 0xd4, -0xfd, 0x8e, 0x92, 0x0f, 0x42, 0xd2, 0x4b, 0x70, 0x5f, 0xe1, 0x73, 0xbe, 0x3a, 0x32, 0x40, 0xda, -0x33, 0x83, 0x79, 0xca, 0xfd, 0x26, 0xf6, 0xdc, 0x86, 0x78, 0xde, 0xea, 0x1d, 0x82, 0x7f, 0x7d, -0x7c, 0x2e, 0x94, 0xf0, 0xb3, 0x8c, 0x90, 0x3a, 0x04, 0xff, 0xf6, 0xfd, 0xed, 0x50, 0xc1, 0xcf, -0x36, 0x98, 0x13, 0xfe, 0x18, 0xdc, 0xe4, 0x81, 0x1e, 0x31, 0x90, 0x13, 0xef, 0x73, 0x67, 0xcc, -0x97, 0xba, 0x1d, 0x90, 0x76, 0x4d, 0x8b, 0x6b, 0x40, 0x71, 0x78, 0xcd, 0xb7, 0x20, 0xad, 0x95, -0x6b, 0x32, 0x92, 0x6a, 0xb5, 0xe7, 0x3c, 0xfe, 0x4f, 0x1d, 0xa3, 0x08, 0x02, 0x51, 0xdd, 0xcb, -0xe8, 0xff, 0x5b, 0x7e, 0x47, 0xfe, 0xb4, 0x2e, 0x65, 0xd6, 0xa3, 0x88, 0x47, 0xf7, 0x91, 0x5f, -0xef, 0x85, 0x48, 0xdd, 0x40, 0x81, 0x37, 0x91, 0xa6, 0xf6, 0x96, 0xc3, 0x1f, 0x43, 0xa2, 0x66, -0x61, 0x7b, 0xf3, 0xa1, 0x8f, 0x21, 0x99, 0xb9, 0x30, 0xf1, 0x53, 0x08, 0x0c, 0x92, 0x37, 0x85, -0x8a, 0xf0, 0x67, 0xf0, 0xaf, 0x0f, 0x2f, 0x2e, 0xf7, 0x99, 0x20, 0xbe, 0x8e, 0xef, 0xd5, 0x0a, -0xba, 0x7f, 0x40, 0x35, 0x90, 0x17, 0x88, 0x44, 0x53, 0x4a, 0x5e, 0x29, 0xf9, 0x66, 0xa7, 0xe4, -0x55, 0xd2, 0xa0, 0xb4, 0x7d, 0x7d, 0xda, 0x92, 0x31, 0x8e, 0xae, 0xbf, 0xca, 0x2b, 0x47, 0xcd, -0xf4, 0xd3, 0x68, 0x2d, 0x5a, 0xd3, 0x5c, 0xb7, 0x30, 0xd0, 0xe4, 0x2d, 0x4a, 0x44, 0xbf, 0x4b, -0x1a, 0x6a, 0xff, 0x8d, 0xa2, 0x71, 0xd0, 0x29, 0x85, 0xc0, 0x1e, 0x1b, 0x76, 0xd0, 0x6a, 0xad, -0x6d, 0xd1, 0x31, 0xc7, 0xec, 0x44, 0x8c, 0x73, 0x2d, 0xc7, 0x5c, 0xc2, 0x3e, 0x98, 0x57, 0xb3, -0xee, 0x95, 0x63, 0x3d, 0x7b, 0xe5, 0x58, 0x7f, 0x95, 0x57, 0x8e, 0x2b, 0xea, 0x9c, 0x9a, 0x60, -0x9d, 0x19, 0x4b, 0x22, 0x46, 0x3a, 0x71, 0x4f, 0x8e, 0xe7, 0x7c, 0x93, 0x6c, 0xce, 0x79, 0xe5, -0x68, 0x86, 0x50, 0xfb, 0x46, 0x6f, 0x0b, 0x42, 0x56, 0x33, 0xd4, 0x26, 0xa2, 0x94, 0x6f, 0xcb, -0x38, 0x9f, 0x1f, 0xe4, 0x3c, 0x73, 0x4c, 0x2d, 0x8d, 0xff, 0x3b, 0x04, 0xed, 0x59, 0x8d, 0xdd, -0x01, 0xe4, 0x27, 0x1f, 0xcb, 0xea, 0x9f, 0x3a, 0x86, 0x95, 0x65, 0x50, 0xaf, 0xd6, 0x9a, 0x10, -0x77, 0xc1, 0x75, 0xe9, 0xea, 0x9f, 0x7d, 0x08, 0x7b, 0xd3, 0xae, 0xda, 0x2e, 0x8e, 0x73, 0x47, -0x27, 0x80, 0xd6, 0x3a, 0x94, 0xe6, 0x7e, 0xff, 0xdb, 0x5f, 0xbd, 0x3d, 0x50, 0xe2, 0xdc, 0xa8, -0x5a, 0xeb, 0x96, 0x81, 0x69, 0xc1, 0x27, 0xfb, 0xa7, 0x7e, 0x45, 0xd1, 0x63, 0x37, 0xea, 0x34, -0x61, 0x4f, 0xcb, 0x7b, 0x41, 0x98, 0x16, 0x2b, 0x93, 0x3d, 0x01, 0xe1, 0x6a, 0x72, 0x78, 0xba, -0xa0, 0x53, 0xf7, 0x9d, 0x73, 0x95, 0x27, 0x45, 0xf6, 0xc1, 0xa7, 0xfb, 0x38, 0x68, 0x3a, 0x67, -0x02, 0x41, 0x2d, 0x07, 0x41, 0xe9, 0xe5, 0xf5, 0x7a, 0xd4, 0x39, 0x9c, 0x8d, 0x51, 0xca, 0xbe, -0xd0, 0x4c, 0x0e, 0xe1, 0xad, 0xd0, 0xc6, 0xbe, 0xc5, 0xe7, 0xb2, 0x97, 0x42, 0x59, 0x29, 0x12, -0xde, 0xcb, 0x15, 0xdd, 0x9f, 0x3c, 0x79, 0x0e, 0x53, 0xb6, 0x9b, 0x28, 0x4a, 0x2e, 0x3e, 0xb1, -0x57, 0xf9, 0x2f, 0xf5, 0x27, 0x2f, 0x22, 0xf0, 0x91, 0x37, 0x2b, 0x7b, 0x17, 0xeb, 0x62, 0xcd, -0x85, 0xd2, 0xc1, 0xaf, 0x6f, 0x7f, 0x0e, 0xac, 0xf7, 0x01, 0x6c, 0xa5, 0x68, 0x05, 0x07, 0x56, -0xfb, 0xef, 0x2a, 0x37, 0x26, 0x3f, 0xb7, 0xc9, 0xb0, 0x48, 0xff, 0x5b, 0xcf, 0xff, 0xe2, 0x2f, -0x9b, 0x16, 0x87, 0x20, 0xf8, 0x0a, 0x9e, 0xf1, 0xcf, 0x0e, 0xc7, 0x1f, 0xb2, 0x87, 0x3a, 0x57, -0x2b, 0x33, 0x55, 0x53, 0xdb, 0xb0, 0x3d, 0x64, 0x87, 0x03, 0xc3, 0x0e, 0x49, 0x2d, 0x5f, 0x34, -0xec, 0x80, 0x83, 0xc3, 0xfe, 0x21, 0xb0, 0x0e, 0x5a, 0x55, 0xb3, 0xb8, 0x66, 0xac, 0xcb, 0xad, -0x08, 0xd5, 0x25, 0x28, 0xeb, 0x94, 0xa5, 0x6d, 0x2b, 0xa5, 0x9d, 0x6b, 0x53, 0x66, 0xc7, 0x1a, -0x6c, 0x73, 0x85, 0x42, 0x31, 0x65, 0x57, 0xf3, 0xdd, 0x43, 0x59, 0x2f, 0x72, 0x86, 0xca, 0xac, -0x87, 0x5a, 0x8e, 0xd8, 0xad, 0x92, 0xb6, 0x31, 0xf9, 0xd6, 0x77, 0x56, 0x21, 0x6d, 0xae, 0x06, -0xb3, 0xd2, 0x0f, 0x46, 0xf2, 0x1b, 0xe8, 0xaa, 0x06, 0xbb, 0xab, 0x1f, 0xac, 0xee, 0x7e, 0x28, -0x71, 0x57, 0x43, 0x99, 0xa7, 0x1a, 0x2a, 0xaa, 0x2d, 0xef, 0x3e, 0x10, 0xfe, 0xa4, 0x0b, 0x48, -0x17, 0x28, 0x7b, 0x4e, 0x74, 0x89, 0x75, 0x49, 0x33, 0x37, 0x8c, 0xbe, 0x08, 0x73, 0xee, 0x03, -0xeb, 0x1e, 0xa5, 0x1a, 0xe6, 0xe4, 0xad, 0xf5, 0x0d, 0x8f, 0xc8, 0xe7, 0x8d, 0x87, 0xa5, 0x0b, -0xd6, 0xed, 0xf9, 0x3f, 0x53, 0xd7, 0xcc, 0xf3, 0xb3, 0x86, 0x67, 0x57, 0x64, 0x9f, 0xa1, 0x0d, -0xff, 0x3d, 0xe0, 0x11, 0x9a, 0x86, 0xfe, 0x98, 0x77, 0x26, 0x79, 0x92, 0xc1, 0xa5, 0xdb, 0x42, -0xa7, 0x42, 0x5e, 0x03, 0xd2, 0xab, 0x22, 0xae, 0xc9, 0x8d, 0x74, 0xe5, 0xe9, 0x2b, 0x73, 0xf9, -0x5a, 0x48, 0x8f, 0x83, 0x73, 0xf1, 0x69, 0xd8, 0x25, 0x43, 0xdb, 0xc6, 0xb6, 0xbf, 0x51, 0x62, -0x77, 0x6f, 0xb8, 0x7b, 0xfd, 0xc2, 0xf3, 0x1b, 0xb4, 0xa6, 0x4f, 0xba, 0x34, 0xe2, 0xa9, 0xbf, -0xfd, 0x3e, 0xe6, 0x30, 0x7a, 0x4d, 0x44, 0x61, 0x5b, 0x37, 0xd5, 0x01, 0x3f, 0x19, 0xf5, 0x75, -0xe5, 0xc1, 0xb5, 0xbc, 0xee, 0x3e, 0x23, 0xf9, 0x05, 0x50, 0x0d, 0xf8, 0x4b, 0x56, 0x0f, 0x12, -0xc5, 0xae, 0xe5, 0xd5, 0x49, 0x98, 0xb6, 0x56, 0x3f, 0x45, 0x42, 0x3a, 0x29, 0x56, 0x92, 0x87, -0xd7, 0x2d, 0xd1, 0x50, 0x7f, 0xec, 0xf7, 0xaf, 0xfd, 0xfd, 0x6b, 0x88, 0x83, 0x5a, 0x7d, 0xa1, -0x7f, 0xde, 0xff, 0xc3, 0xfd, 0x57, 0xfa, 0x10, 0xba, 0xf2, 0xcb, 0xac, 0xdd, 0x37, 0xae, 0xe5, -0x75, 0x69, 0x73, 0x62, 0x1d, 0xaf, 0x64, 0xb3, 0xbe, 0x92, 0xad, 0x57, 0xfb, 0xd7, 0xf9, 0xdc, -0xe8, 0x99, 0xd5, 0xbe, 0x9e, 0xac, 0x79, 0xc8, 0xf2, 0x83, 0xfc, 0x07, 0xc5, 0x7b, 0x59, 0x3f, -0x64, 0x6c, 0x72, 0xdf, 0xdf, 0xbf, 0xa1, 0x58, 0xdb, 0x86, 0xb3, 0x56, 0x0d, 0xf6, 0x59, 0x9b, -0xff, 0xa6, 0x6d, 0xb5, 0x5d, 0x12, 0xfa, 0x8c, 0xff, 0xbc, 0x9b, 0x6a, 0x19, 0x2c, 0x72, 0x5b, -0xb6, 0x0f, 0xf7, 0x1a, 0x8e, 0x0c, 0xab, 0x72, 0xe7, 0x03, 0xd3, 0xfc, 0x12, 0x8d, 0x4d, 0xbe, -0xa0, 0xeb, 0xd5, 0xe9, 0xb8, 0x61, 0x72, 0x45, 0xc7, 0xc6, 0xbb, 0x1f, 0x68, 0xfb, 0x9b, 0x5c, -0xeb, 0x4c, 0xd8, 0x3a, 0xd3, 0x20, 0x62, 0x99, 0x41, 0xb3, 0x2a, 0x0f, 0x5a, 0xf9, 0x6b, 0x7f, -0x39, 0xe8, 0x5f, 0xf7, 0xeb, 0x16, 0x46, 0xd9, 0xaf, 0x6b, 0x85, 0xf6, 0x8e, 0x65, 0xcf, 0x97, -0xcc, 0x11, 0xcf, 0xe4, 0xa4, 0x9a, 0x9d, 0x23, 0x4f, 0xe3, 0xdd, 0x8f, 0x34, 0xe0, 0x2c, 0x79, -0x66, 0x36, 0x7d, 0x72, 0x42, 0x7b, 0x6b, 0x7f, 0x6e, 0xa6, 0xcc, 0xf1, 0xcc, 0x06, 0x10, 0x71, -0xf0, 0xdc, 0x10, 0xbe, 0x70, 0x02, 0x44, 0xda, 0x09, 0xa0, 0xf9, 0xfb, 0x33, 0x67, 0xcc, 0x28, -0x5a, 0xb8, 0x70, 0xf2, 0xb3, 0xad, 0xc9, 0xad, 0xbf, 0x7f, 0xf5, 0xa9, 0x07, 0x68, 0xae, 0xfe, -0x79, 0xfc, 0x87, 0xe3, 0x57, 0xce, 0x94, 0xe0, 0xbe, 0xf2, 0x5f, 0x24, 0xb7, 0x52, 0x3b, 0xdb, -0xd7, 0xb7, 0xff, 0x80, 0x79, 0xca, 0x75, 0xba, 0x36, 0xe1, 0x35, 0xe6, 0xe8, 0xb3, 0x25, 0xe2, -0x3b, 0xc4, 0x98, 0xe7, 0xbe, 0xa4, 0xf7, 0x92, 0xc8, 0xfb, 0xff, 0x6f, 0x10, 0x7a, 0x71, 0xa9, -0x67, 0x76, 0x1b, 0x42, 0x68, 0xbc, 0x07, 0xe1, 0x93, 0xac, 0x93, 0x8c, 0x59, 0x08, 0xbd, 0xe8, -0x98, 0x0e, 0xa1, 0x3f, 0xfc, 0xad, 0x7d, 0x56, 0x1e, 0x42, 0xab, 0x67, 0xbf, 0xbb, 0xfa, 0x4f, -0xc1, 0xe8, 0x45, 0xe1, 0x5d, 0x2a, 0x07, 0x65, 0x9f, 0x1e, 0x20, 0x18, 0x6d, 0x7f, 0xf0, 0xab, -0xc1, 0xe8, 0xa7, 0xaf, 0xeb, 0x5f, 0xe3, 0xcc, 0x5c, 0xbe, 0xe7, 0x8b, 0x66, 0x46, 0xd7, 0x50, -0x7c, 0x9d, 0xe6, 0xc5, 0xd3, 0x74, 0xf7, 0x23, 0x38, 0x52, 0x9d, 0x77, 0x93, 0xfc, 0xdf, 0x79, -0xf7, 0x03, 0x77, 0xaf, 0x0f, 0x7f, 0x96, 0x9b, 0x9b, 0x62, 0x8a, 0x1c, 0x45, 0x30, 0x59, 0x9f, -0x9d, 0x9d, 0x01, 0x7a, 0xfe, 0xb2, 0xf9, 0x11, 0xda, 0xc4, 0x9f, 0x46, 0xd8, 0xef, 0x43, 0x34, -0x3b, 0xc2, 0xa4, 0x0f, 0xe9, 0x6b, 0xfa, 0xfd, 0x7e, 0x9a, 0x13, 0x7f, 0xe8, 0x9f, 0x5f, 0x7b, -0x72, 0xc3, 0x93, 0x1b, 0x9e, 0x7a, 0xe8, 0xa9, 0x87, 0xc2, 0xe7, 0x3b, 0x09, 0xbb, 0x76, 0x2e, -0x3c, 0xa1, 0x69, 0x0d, 0x84, 0x69, 0x17, 0xc0, 0xe2, 0xea, 0x99, 0xdc, 0xdb, 0xe9, 0x7e, 0xc9, -0xc6, 0x2e, 0x9c, 0xcd, 0xb6, 0x4b, 0xbb, 0xec, 0x25, 0x4f, 0xeb, 0x51, 0x6a, 0x17, 0xb5, 0xd9, -0x37, 0x63, 0x62, 0x00, 0xee, 0x61, 0x59, 0x3d, 0xce, 0x6f, 0x8b, 0x49, 0x47, 0x53, 0x7f, 0xbb, -0xd8, 0x67, 0xc5, 0xb7, 0xf7, 0xb2, 0xcc, 0xd9, 0xc2, 0xa3, 0x10, 0x42, 0xa8, 0xe0, 0xb8, 0x45, -0xec, 0x7f, 0xae, 0x05, 0xff, 0x3b, 0xd8, 0x7f, 0x87, 0xcc, 0xf1, 0xfa, 0x1c, 0x3c, 0xce, 0xc5, -0x38, 0xce, 0x01, 0x7d, 0x5e, 0x74, 0x79, 0xe9, 0x42, 0x06, 0xa5, 0x0e, 0xec, 0x7d, 0x3c, 0xb3, -0x52, 0x43, 0xca, 0xba, 0x34, 0xbe, 0xe2, 0x89, 0x69, 0xb8, 0xe9, 0x82, 0x9b, 0xf9, 0x8c, 0x69, -0x73, 0x79, 0x21, 0x98, 0x1b, 0xcb, 0xa2, 0x7c, 0x9b, 0x3d, 0xc0, 0xcf, 0xb9, 0x56, 0xba, 0x01, -0xe7, 0xa9, 0xc9, 0x6b, 0x22, 0xfd, 0x6a, 0xdf, 0xec, 0x89, 0xff, 0x1f, 0x75, 0x7f, 0x02, 0x17, -0x55, 0xd9, 0x3d, 0x80, 0xe3, 0xcf, 0x0c, 0xc3, 0x30, 0xc0, 0x80, 0x23, 0x21, 0x92, 0x92, 0x5d, -0xc7, 0x69, 0x1c, 0x87, 0x81, 0x19, 0x09, 0x11, 0x95, 0x70, 0x18, 0x06, 0x18, 0x46, 0x44, 0x04, -0x54, 0xf2, 0x55, 0xbb, 0xa2, 0xcc, 0xb0, 0x83, 0x48, 0x8a, 0xc6, 0xab, 0xb8, 0x46, 0xe6, 0x82, -0x6b, 0x54, 0xa6, 0x56, 0x56, 0x6a, 0x66, 0x68, 0x5a, 0xa6, 0x66, 0x68, 0x66, 0x6e, 0x29, 0x2e, -0xb9, 0x65, 0x6a, 0x4a, 0x46, 0xa5, 0xb9, 0x91, 0x29, 0x29, 0xf7, 0x7f, 0xce, 0x73, 0xef, 0x0c, -0x03, 0xda, 0xf2, 0xbe, 0xdf, 0xf7, 0xf7, 0xff, 0xfd, 0xff, 0xf0, 0x39, 0x73, 0xb7, 0x67, 0x5f, -0xce, 0x73, 0xce, 0xf3, 0x9c, 0x25, 0x1e, 0x35, 0xa7, 0x0d, 0xee, 0x75, 0x49, 0x54, 0x3e, 0xa4, -0x4d, 0xa9, 0x6c, 0x52, 0x18, 0x99, 0xbe, 0x8f, 0xb2, 0x85, 0x36, 0xb0, 0xe9, 0xb7, 0xc3, 0xa8, -0xe3, 0x06, 0xa9, 0xa2, 0xa5, 0x95, 0x66, 0x25, 0x5e, 0x81, 0xff, 0xb1, 0x3c, 0x9f, 0x2d, 0xb2, -0x94, 0x66, 0xd0, 0x32, 0xfe, 0x36, 0xdb, 0x31, 0x8a, 0x6c, 0x44, 0x26, 0x6f, 0x6d, 0xb3, 0xcd, -0xa5, 0x35, 0x78, 0xcf, 0xbe, 0x63, 0x1d, 0x79, 0xb3, 0xe4, 0x8f, 0xc0, 0xbf, 0x98, 0xe3, 0x54, -0xc2, 0xe2, 0xb7, 0x29, 0x03, 0xaf, 0x12, 0x51, 0xea, 0xbc, 0x21, 0x2f, 0xb6, 0x8c, 0x25, 0x4d, -0xdc, 0x90, 0xb9, 0xea, 0xf8, 0x21, 0x2f, 0x6b, 0x1d, 0x73, 0xdd, 0x5d, 0x2f, 0xe7, 0xf9, 0xa5, -0x28, 0x42, 0x9f, 0xbc, 0x95, 0x71, 0x7f, 0x8d, 0xdb, 0xb4, 0x2d, 0x73, 0x3d, 0x8e, 0xce, 0x58, -0x1c, 0x51, 0x1e, 0x54, 0x6a, 0x10, 0xe5, 0x11, 0xb7, 0x1a, 0xe2, 0xbf, 0x73, 0x8e, 0xa8, 0xc4, -0xc6, 0x06, 0xee, 0xd5, 0x7d, 0xaf, 0xee, 0x4b, 0xb8, 0x7d, 0x9a, 0x7b, 0x65, 0xff, 0x2b, 0xfb, -0x75, 0xf2, 0xe5, 0xf3, 0x53, 0x67, 0x33, 0x03, 0x16, 0x7e, 0x9d, 0x5a, 0x89, 0x23, 0xcc, 0xd9, -0xaf, 0x13, 0x5c, 0xad, 0xd9, 0x61, 0xba, 0x8c, 0xd4, 0x8c, 0xe5, 0x35, 0xd3, 0x13, 0x61, 0x52, -0x46, 0xb5, 0xe1, 0x21, 0xde, 0x57, 0xe8, 0xa1, 0x8a, 0x8d, 0xa2, 0xda, 0xa3, 0xe8, 0x75, 0x19, -0xe5, 0x2b, 0x53, 0xe8, 0xc9, 0xc8, 0xd8, 0x94, 0x05, 0x8c, 0xf1, 0xe8, 0x5e, 0x2c, 0x8d, 0xa5, -0x38, 0x83, 0x38, 0x4e, 0x4b, 0xea, 0x92, 0xa9, 0xce, 0x3b, 0x96, 0xac, 0x4b, 0x2a, 0x5a, 0xc5, -0x0c, 0x44, 0x6b, 0x95, 0x67, 0x3f, 0x24, 0x91, 0x9f, 0xd4, 0xe6, 0x6f, 0x6d, 0x3d, 0x32, 0x1a, -0x95, 0xd0, 0x7f, 0x03, 0xa0, 0x45, 0x93, 0xf9, 0x18, 0xb7, 0x37, 0x3b, 0xac, 0xe9, 0xc5, 0x35, -0xdd, 0xde, 0xeb, 0xd4, 0xb8, 0xa7, 0x3e, 0x97, 0xa9, 0x0d, 0x15, 0x6f, 0x5a, 0x67, 0x41, 0x3f, -0x5e, 0x9a, 0x52, 0x2c, 0xaf, 0x99, 0x55, 0x20, 0x2f, 0xf1, 0xde, 0x34, 0x6b, 0xd4, 0x2e, 0xcb, -0xb4, 0xf4, 0x18, 0xc0, 0x04, 0x6e, 0xf0, 0x6e, 0x76, 0x81, 0x02, 0xc6, 0x87, 0x77, 0xcd, 0xec, -0x51, 0xad, 0x34, 0x4f, 0xff, 0xa2, 0xf7, 0x80, 0x22, 0x47, 0x4b, 0x66, 0x50, 0x82, 0x1d, 0x88, -0x0d, 0x86, 0xbc, 0x88, 0x7a, 0x2a, 0x43, 0x5e, 0x46, 0x3c, 0x80, 0x2d, 0x06, 0xfc, 0x89, 0x01, -0xc7, 0x4b, 0x96, 0x94, 0xfa, 0x7e, 0x94, 0x18, 0xb4, 0x4e, 0x0d, 0x49, 0xb1, 0x86, 0xef, 0x9d, -0x18, 0x12, 0x25, 0x58, 0x03, 0xf0, 0xa6, 0x7d, 0x03, 0x25, 0x4e, 0x68, 0xba, 0x1d, 0x94, 0xbc, -0x18, 0xe2, 0xa6, 0xf3, 0xfe, 0x6c, 0xce, 0xec, 0x9a, 0x42, 0xa2, 0x7d, 0xbf, 0xfd, 0xea, 0xb5, -0x69, 0xaf, 0x4d, 0x63, 0xa4, 0x55, 0x2f, 0x56, 0xbd, 0x38, 0xb0, 0x31, 0x83, 0xd3, 0xf9, 0x9c, -0xab, 0x70, 0x62, 0xca, 0xca, 0xfe, 0x46, 0x32, 0xfc, 0xa1, 0xf5, 0xc9, 0x9c, 0xbc, 0x90, 0x71, -0xe7, 0x7b, 0x27, 0xbc, 0x88, 0x98, 0xf4, 0xee, 0xa8, 0x0b, 0xcd, 0xf7, 0x41, 0x28, 0xd1, 0xf8, -0x50, 0x7f, 0xde, 0x44, 0x1f, 0x47, 0xa2, 0xb4, 0x62, 0x7d, 0x32, 0x31, 0xea, 0x06, 0x6a, 0x93, -0xd8, 0x0c, 0xea, 0x8f, 0x5a, 0xe8, 0x13, 0x07, 0x1e, 0x06, 0xee, 0xc8, 0xb8, 0xa4, 0x02, 0x75, -0x8b, 0x9c, 0xbd, 0x35, 0x8f, 0x97, 0x75, 0xd5, 0x4b, 0xa8, 0x76, 0x30, 0xe4, 0x90, 0xbc, 0x98, -0xae, 0xef, 0x62, 0xc0, 0x72, 0x3c, 0x4e, 0x70, 0x4f, 0x5e, 0x7c, 0xfe, 0x43, 0x92, 0x4d, 0xfb, -0xd2, 0xc0, 0xc8, 0x35, 0xc6, 0x33, 0xd7, 0x49, 0x54, 0xda, 0x6c, 0x83, 0xb9, 0xea, 0x30, 0xf0, -0x7b, 0x11, 0x9b, 0x2c, 0x85, 0x4b, 0x58, 0x22, 0xd9, 0xf3, 0x3f, 0xeb, 0x0b, 0x6f, 0x47, 0x5f, -0xdc, 0x32, 0xfc, 0x2f, 0xfb, 0xe2, 0x66, 0xd5, 0xa3, 0xfa, 0x82, 0x71, 0xaf, 0x9a, 0x56, 0x35, -0x6d, 0xf9, 0x8b, 0xcb, 0x5f, 0xd4, 0xca, 0xcf, 0x56, 0x0c, 0x84, 0x35, 0xf9, 0x1f, 0xf4, 0x85, -0xd4, 0xa5, 0x2f, 0xa4, 0xad, 0xfa, 0x42, 0x2e, 0xf4, 0x45, 0x3c, 0x89, 0xd2, 0xfd, 0xe7, 0x7d, -0x31, 0x9f, 0x7a, 0xb3, 0xc7, 0x9e, 0x90, 0x40, 0x0f, 0x38, 0xfa, 0x42, 0x4c, 0xb5, 0x81, 0x53, -0x68, 0xff, 0x48, 0x1f, 0xd9, 0x17, 0xb3, 0xa0, 0x2f, 0xbe, 0x6e, 0xe9, 0x0b, 0xb7, 0x48, 0x97, -0xbe, 0x80, 0x56, 0x4f, 0x47, 0xdb, 0x72, 0x6e, 0x25, 0xf2, 0x4d, 0xd0, 0x17, 0x7e, 0xd0, 0x17, -0x9b, 0x66, 0x63, 0x0f, 0x45, 0xc5, 0x3c, 0xdc, 0x17, 0xa8, 0xd1, 0xaf, 0x17, 0xb9, 0xf4, 0x85, -0x9c, 0xae, 0x64, 0x29, 0xc9, 0xdb, 0x6e, 0xac, 0xe6, 0xfb, 0x42, 0x89, 0x78, 0x6d, 0x1a, 0xb4, -0x70, 0x86, 0x3a, 0x0e, 0xfa, 0x84, 0xf6, 0x08, 0x94, 0xee, 0x4f, 0x71, 0x97, 0xa6, 0x05, 0x77, -0x99, 0x5b, 0xe1, 0x2e, 0x48, 0x39, 0xa6, 0xe9, 0xfa, 0x7d, 0x5c, 0x81, 0x00, 0xf7, 0x40, 0xfd, -0x78, 0x1c, 0x7e, 0xa6, 0x16, 0xf5, 0xa4, 0xbf, 0xdd, 0xf5, 0x0a, 0xd0, 0x69, 0xcb, 0xa7, 0x2d, -0x9f, 0x16, 0xdb, 0xb8, 0x15, 0xad, 0x39, 0x8d, 0xd0, 0xfa, 0x9c, 0x9d, 0x9d, 0x3a, 0x5b, 0x27, -0x85, 0xb6, 0x9b, 0x7d, 0x69, 0x7e, 0xff, 0xf8, 0x47, 0xf7, 0x0c, 0x9d, 0x0b, 0xf2, 0x29, 0xc0, -0xda, 0x92, 0x08, 0xcb, 0x5e, 0xa5, 0xd4, 0x8c, 0x25, 0x8d, 0xa2, 0x1a, 0xc3, 0xf5, 0xe8, 0xff, -0x4b, 0x65, 0x01, 0xbe, 0xd7, 0xa8, 0x1f, 0x48, 0xcc, 0x9a, 0x01, 0xda, 0x78, 0x9d, 0x18, 0x7a, -0x46, 0x4e, 0xfd, 0x91, 0xd0, 0xfe, 0xcb, 0x58, 0x10, 0x3a, 0x0f, 0xa5, 0xe1, 0x51, 0xab, 0x18, -0x7a, 0x27, 0xf2, 0x44, 0x05, 0xd5, 0x8b, 0x5a, 0xd6, 0xd2, 0x67, 0xa1, 0x10, 0xf6, 0x7c, 0x85, -0x73, 0xc6, 0x78, 0x40, 0x7f, 0xf0, 0xf6, 0x28, 0xa1, 0x8f, 0xf8, 0x27, 0xbe, 0x67, 0x42, 0xbd, -0x13, 0x1a, 0xcb, 0x08, 0xf4, 0x8b, 0xc4, 0x50, 0x44, 0xe2, 0xab, 0x2c, 0x35, 0x45, 0x24, 0xa2, -0x60, 0x09, 0xf2, 0x31, 0xff, 0xb3, 0x9e, 0xf1, 0x71, 0xf4, 0xcc, 0x75, 0xaf, 0xff, 0x27, 0x7a, -0xe6, 0xd7, 0xcc, 0xbf, 0xea, 0x19, 0x5d, 0xfc, 0x1b, 0xbb, 0xde, 0xd8, 0x05, 0x33, 0xe6, 0xe5, -0x58, 0xa0, 0xdf, 0xb1, 0x7f, 0x52, 0x5f, 0x66, 0xbc, 0xff, 0x7a, 0xd6, 0xd0, 0xb9, 0xf1, 0x50, -0xdf, 0x24, 0x3c, 0xa2, 0x6f, 0x84, 0x9e, 0x41, 0x59, 0x7c, 0x5f, 0x97, 0x9e, 0x29, 0x85, 0x9e, -0x59, 0xdc, 0xaa, 0x67, 0x16, 0xb7, 0xea, 0x19, 0x33, 0xed, 0x19, 0xbe, 0x5f, 0x24, 0x42, 0xcf, -0xf0, 0xfd, 0xe2, 0xee, 0xd2, 0x33, 0xf2, 0xc4, 0x3b, 0xce, 0x9e, 0x31, 0x39, 0x7b, 0x46, 0xc2, -0xeb, 0x0d, 0x0a, 0xd2, 0xf4, 0x9a, 0x16, 0xdb, 0xf8, 0x4c, 0x01, 0x91, 0xa9, 0xd0, 0x43, 0x99, -0x96, 0x8c, 0x80, 0x7b, 0x85, 0x16, 0xf8, 0x7b, 0x0d, 0xf0, 0xfd, 0xc0, 0x5d, 0x4b, 0x75, 0x28, -0x4d, 0x52, 0xc0, 0xdd, 0x05, 0xb8, 0x8f, 0x12, 0xc2, 0xbf, 0x1e, 0xa2, 0x34, 0xa5, 0x7b, 0xf2, -0xb6, 0x6b, 0xac, 0xb0, 0xe7, 0xeb, 0x4e, 0x3a, 0x39, 0xa5, 0x27, 0x25, 0x4c, 0x7c, 0x2b, 0xf9, -0x49, 0x0c, 0xa7, 0xd4, 0x7b, 0x29, 0x74, 0xa4, 0xb7, 0xa5, 0x82, 0xb7, 0x14, 0x63, 0x08, 0x41, -0x1f, 0xc3, 0xd4, 0x16, 0x33, 0x70, 0x0d, 0xf0, 0xd4, 0x2c, 0xd8, 0x77, 0x42, 0x8f, 0x37, 0x97, -0x9a, 0x54, 0x4c, 0x08, 0x77, 0xb7, 0xea, 0x03, 0xee, 0x3e, 0xa5, 0x9e, 0xa5, 0x40, 0x3b, 0x13, -0xb2, 0x59, 0x09, 0xa5, 0x62, 0x72, 0x88, 0x54, 0x19, 0x87, 0x92, 0xfa, 0xd4, 0x0f, 0xeb, 0xce, -0x50, 0xf4, 0x50, 0xe4, 0xe1, 0x90, 0x43, 0x0e, 0xc0, 0x1c, 0x66, 0x18, 0x62, 0xd5, 0xb2, 0x21, -0x33, 0x54, 0x90, 0xc2, 0x12, 0x48, 0x61, 0xe4, 0x74, 0x08, 0x9f, 0x10, 0x77, 0x8d, 0xbb, 0xfa, -0xca, 0xc1, 0x12, 0x11, 0xc6, 0x7a, 0x60, 0xb1, 0x56, 0xd8, 0xc7, 0x0e, 0x85, 0x6f, 0x8e, 0x72, -0x97, 0xc8, 0x01, 0x87, 0x4b, 0xb0, 0xdc, 0x61, 0x86, 0x40, 0xc2, 0xe3, 0x4d, 0xbd, 0x48, 0xef, -0x8e, 0x5e, 0xb9, 0x93, 0xb7, 0x5d, 0xb5, 0xe9, 0x25, 0x8e, 0xbc, 0xa9, 0x7d, 0x76, 0x0d, 0xe9, -0x94, 0x1e, 0x63, 0x88, 0x81, 0xf1, 0x5a, 0xc0, 0x35, 0xd3, 0x32, 0x6f, 0xfb, 0xa5, 0x1e, 0x72, -0xc9, 0x27, 0x0c, 0x94, 0x9b, 0xf7, 0x4d, 0x8d, 0x72, 0xf0, 0x41, 0xd0, 0xce, 0x4e, 0x0b, 0xfa, -0xbc, 0xe7, 0xe9, 0xc8, 0xbe, 0x3a, 0x5e, 0xda, 0x4c, 0xa1, 0x2e, 0x14, 0xf6, 0x24, 0x74, 0xc4, -0x57, 0x95, 0x0f, 0xed, 0x9c, 0x4f, 0xa4, 0x1a, 0x4d, 0x8b, 0xfe, 0xee, 0x55, 0xa0, 0xf8, 0x04, -0xbd, 0x59, 0x29, 0x4f, 0x43, 0xfc, 0x72, 0x9e, 0xda, 0x4d, 0x43, 0x4f, 0xcc, 0x5d, 0x04, 0x69, -0x38, 0x59, 0x1a, 0x6d, 0x35, 0x41, 0x06, 0x8e, 0xb6, 0x9c, 0x63, 0x0f, 0x9e, 0x74, 0xb0, 0x11, -0xf2, 0x2e, 0x84, 0x8e, 0xc0, 0xd0, 0x2d, 0x92, 0x73, 0x8e, 0x3d, 0xf7, 0x96, 0xd0, 0xe8, 0x7b, -0x5a, 0x4e, 0x88, 0xa8, 0x28, 0xc2, 0x52, 0x81, 0x3b, 0xea, 0x55, 0xb5, 0x06, 0x8b, 0xde, 0x9b, -0xf7, 0x3f, 0x8d, 0xbb, 0xea, 0x8b, 0x6a, 0xc3, 0x12, 0xd1, 0x06, 0x1a, 0xfa, 0x80, 0xa6, 0x67, -0x64, 0x9e, 0x0e, 0x3a, 0xd5, 0x19, 0xbf, 0x8f, 0x4b, 0x7c, 0x2f, 0x3e, 0x3e, 0x0d, 0x1f, 0x09, -0xe1, 0xa1, 0x94, 0x8b, 0x8c, 0xd4, 0x66, 0x84, 0x8c, 0xf7, 0x7f, 0xdd, 0x42, 0xe7, 0xf2, 0xf1, -0xf5, 0x6e, 0x4a, 0x33, 0xdd, 0x5d, 0x12, 0x68, 0xa5, 0x9f, 0xef, 0x08, 0xbe, 0xc2, 0xf9, 0x3a, -0x2c, 0x47, 0x8f, 0xd6, 0x45, 0x1a, 0xba, 0xd7, 0x6f, 0xc1, 0x94, 0xf9, 0xba, 0xf0, 0xe5, 0x70, -0xec, 0xf5, 0xb7, 0xa4, 0x46, 0xfd, 0x5c, 0x6b, 0xe8, 0x49, 0x85, 0x85, 0x2f, 0x47, 0x4b, 0x3b, -0x09, 0xe1, 0x5b, 0x97, 0x3d, 0x82, 0x96, 0x3d, 0x1c, 0x3d, 0x59, 0x43, 0xc9, 0x1c, 0xf5, 0x86, -0x3c, 0x5c, 0x4a, 0xdd, 0x1b, 0xbf, 0x3e, 0xb2, 0xe6, 0xbd, 0x5b, 0xc7, 0xfe, 0xf3, 0x5a, 0xf3, -0xad, 0xdf, 0xaa, 0x97, 0xb4, 0xad, 0x66, 0x0d, 0xb4, 0x82, 0xa1, 0x67, 0x6b, 0xbe, 0xf3, 0xa7, -0xab, 0x98, 0x03, 0xd5, 0x06, 0x22, 0x44, 0x5c, 0xa4, 0xd1, 0x7b, 0xe3, 0xfc, 0x71, 0xc8, 0x3f, -0xf2, 0x33, 0x09, 0x6b, 0xd4, 0xb6, 0x56, 0xce, 0xb6, 0x5b, 0x2f, 0xd4, 0x8f, 0xc6, 0xc5, 0x3a, -0x0d, 0xa1, 0xe3, 0xd6, 0x31, 0x0b, 0x1f, 0x15, 0x17, 0x3d, 0x82, 0xcb, 0x45, 0x10, 0x23, 0x8c, -0xe2, 0x34, 0x6f, 0x6c, 0xc9, 0x21, 0xd8, 0x92, 0x32, 0x83, 0x91, 0xbf, 0x62, 0x8c, 0x54, 0x23, -0xca, 0x7a, 0xb7, 0xad, 0x11, 0xfa, 0xaa, 0x76, 0xc6, 0xf5, 0x82, 0xb8, 0x42, 0x0c, 0xec, 0x3b, -0xfe, 0x8e, 0x8f, 0xe7, 0xc8, 0xdb, 0x35, 0x2e, 0xe2, 0x16, 0xea, 0xff, 0xdb, 0x0b, 0x46, 0x00, -0x95, 0xc5, 0xb1, 0x7e, 0xc0, 0xdd, 0xb5, 0x1b, 0xdb, 0xce, 0x82, 0x86, 0xd3, 0xbc, 0x6c, 0x03, -0xcc, 0xbd, 0x26, 0x9e, 0x96, 0x6e, 0xc8, 0xd6, 0xbb, 0xf1, 0x7d, 0x64, 0x30, 0x22, 0x27, 0xa4, -0x87, 0x99, 0x4f, 0xdf, 0x17, 0x22, 0xaf, 0xc1, 0x9f, 0x11, 0x6d, 0xbc, 0xc6, 0xdd, 0x77, 0x49, -0x4b, 0x18, 0x69, 0x0d, 0x73, 0x9d, 0x69, 0x35, 0x0b, 0x69, 0x05, 0x3d, 0x94, 0xd6, 0x7d, 0xfa, -0x5e, 0x89, 0x69, 0x59, 0xd7, 0x11, 0xc6, 0x8e, 0xa7, 0x49, 0x21, 0x40, 0x2f, 0xf8, 0x26, 0x6f, -0x6b, 0xda, 0xc3, 0x7b, 0xa5, 0x81, 0x59, 0x1e, 0xc4, 0x9d, 0xc3, 0x59, 0xae, 0xe7, 0x77, 0xfa, -0x73, 0x88, 0xaf, 0xac, 0x07, 0x11, 0xd1, 0x3e, 0xa8, 0x45, 0x3b, 0x19, 0x28, 0x43, 0x5a, 0xdc, -0x2e, 0x9e, 0xd4, 0x4e, 0x2b, 0x35, 0x6e, 0xae, 0xb0, 0xeb, 0x0a, 0xbc, 0xfc, 0xa3, 0x08, 0xb3, -0xb9, 0xc2, 0x96, 0xc9, 0x5a, 0x4a, 0x59, 0x78, 0xa3, 0x44, 0x3d, 0x18, 0x52, 0x61, 0x4b, 0x35, -0x65, 0x13, 0x49, 0x4f, 0xc0, 0xbb, 0x44, 0x26, 0xce, 0xe6, 0x8e, 0x10, 0x39, 0x6b, 0x44, 0x5b, -0x25, 0xa5, 0x22, 0x56, 0xc6, 0x5f, 0x97, 0x18, 0x97, 0x18, 0x7b, 0x9a, 0x20, 0x8c, 0x91, 0xe0, -0x1b, 0xb9, 0xd8, 0xc8, 0x5d, 0x20, 0x46, 0xa2, 0x60, 0xfd, 0x31, 0x26, 0xfa, 0xcb, 0x13, 0xde, -0x5e, 0x87, 0xb7, 0x0c, 0xfa, 0x9a, 0x95, 0xc7, 0x10, 0x77, 0x5b, 0xa8, 0x3c, 0x9b, 0xab, 0x23, -0x6a, 0x9b, 0x1a, 0x53, 0x09, 0x23, 0xc7, 0x8c, 0xc7, 0x8c, 0x90, 0x56, 0xcc, 0xa3, 0x52, 0xc2, -0x38, 0x50, 0x7a, 0x37, 0xd2, 0xc1, 0xee, 0xf0, 0x95, 0x4b, 0x38, 0x63, 0xb1, 0x48, 0xf5, 0x24, -0xef, 0xf3, 0x59, 0xf0, 0x03, 0x12, 0xa4, 0xcc, 0x21, 0x2a, 0x5d, 0x0e, 0x50, 0x2c, 0x50, 0x5a, -0xf4, 0xf9, 0xac, 0xce, 0x26, 0x01, 0xca, 0x6c, 0xe2, 0xa7, 0xea, 0x41, 0x94, 0xb8, 0x6a, 0xc0, -0xea, 0x21, 0xa1, 0x52, 0x6b, 0x54, 0x52, 0xf3, 0xc7, 0x08, 0xaa, 0x93, 0x6f, 0xa2, 0x7b, 0xe7, -0x22, 0x7b, 0x3e, 0xd5, 0xb3, 0x1f, 0xeb, 0xd4, 0xb3, 0xf7, 0xa5, 0x3a, 0x41, 0x32, 0x5e, 0x13, -0xff, 0x4a, 0x23, 0xc5, 0x00, 0x21, 0xae, 0xf3, 0xc3, 0x10, 0xee, 0x98, 0x1b, 0x4a, 0x6b, 0xf2, -0x86, 0xe6, 0xd5, 0xc0, 0x3b, 0xe7, 0xe1, 0x6e, 0x12, 0x7a, 0x92, 0xa3, 0xbf, 0x62, 0xbd, 0x2c, -0x22, 0x8d, 0x3f, 0x4d, 0xbd, 0x32, 0xdf, 0x55, 0x3f, 0x9f, 0x0d, 0x13, 0x52, 0x17, 0xf4, 0xfc, -0xaf, 0x2c, 0xfb, 0xcb, 0xb8, 0xa9, 0x3c, 0xcf, 0xec, 0xf0, 0x1c, 0x6d, 0xc0, 0xfa, 0x6a, 0xa0, -0xbe, 0x0c, 0xd6, 0x57, 0xdd, 0x83, 0x8c, 0xd0, 0x61, 0x7d, 0x61, 0x75, 0x54, 0x09, 0xf5, 0xd5, -0xe4, 0xf0, 0xf5, 0x55, 0x63, 0x7d, 0xdd, 0x1c, 0xbb, 0x60, 0x57, 0xe2, 0x05, 0x2c, 0xe6, 0x06, -0xb5, 0x05, 0x4c, 0x4c, 0xf9, 0xc1, 0x60, 0x7e, 0x14, 0x0f, 0x68, 0xba, 0xe2, 0x97, 0xbc, 0x14, -0x46, 0xa6, 0x18, 0x56, 0x6e, 0x19, 0xd5, 0xa5, 0xa7, 0xe7, 0xa8, 0x86, 0x54, 0x9c, 0x4f, 0x89, -0x4d, 0x3f, 0x1c, 0x4e, 0x5e, 0x62, 0x48, 0x75, 0x9e, 0x6b, 0x4a, 0xf9, 0xaf, 0x70, 0x27, 0xb6, -0xe4, 0x08, 0xf8, 0x6e, 0x89, 0x90, 0x1e, 0x3f, 0x92, 0x31, 0x2d, 0x49, 0x4b, 0x78, 0xc4, 0x3a, -0x18, 0x5a, 0xc0, 0x57, 0x4b, 0x50, 0x22, 0xf7, 0x51, 0x39, 0x25, 0x2f, 0x49, 0x4d, 0x4d, 0x85, -0x70, 0x69, 0xf0, 0x9e, 0x45, 0x4b, 0x45, 0xae, 0x69, 0x6e, 0xfb, 0xa1, 0x50, 0xa8, 0x81, 0x08, -0x6a, 0x60, 0x84, 0x18, 0x6e, 0x0f, 0xa7, 0x3d, 0xa0, 0xe9, 0x07, 0x25, 0x9f, 0xfb, 0xa3, 0xbe, -0x26, 0x2f, 0x4d, 0x4d, 0x4d, 0xe3, 0x4b, 0x66, 0x80, 0x74, 0xc4, 0x34, 0x1d, 0x97, 0x5a, 0x63, -0x28, 0x47, 0x9d, 0xeb, 0xcf, 0xb6, 0x2e, 0x67, 0xcb, 0x37, 0x28, 0x25, 0x5f, 0x46, 0x29, 0x4d, -0x27, 0xb4, 0x35, 0xd6, 0x34, 0x3c, 0xdd, 0x1a, 0x67, 0xd6, 0x6f, 0x75, 0x94, 0x84, 0x96, 0x4a, -0x28, 0x4d, 0x78, 0x2a, 0x7f, 0x7a, 0x5e, 0x5f, 0xea, 0xec, 0x5d, 0x39, 0xfa, 0x7a, 0x12, 0x80, -0xf0, 0xbe, 0xd0, 0xfe, 0xfb, 0x73, 0xba, 0xff, 0xc5, 0xf9, 0x4e, 0xd7, 0xff, 0xf0, 0x7c, 0xa7, -0xab, 0x70, 0xbe, 0xd3, 0xf5, 0xbf, 0x3e, 0xdf, 0xa1, 0xde, 0xe8, 0xdc, 0x6b, 0xd6, 0x10, 0x5f, -0x9b, 0x06, 0xbe, 0xfb, 0xc1, 0x68, 0x0e, 0xb0, 0xf9, 0x96, 0xf8, 0x2a, 0xf9, 0x33, 0x95, 0x69, -0xb4, 0x6d, 0x7c, 0x95, 0x15, 0xfc, 0x59, 0x0b, 0x70, 0xb7, 0x42, 0x5b, 0xf1, 0xa7, 0xb6, 0x54, -0xa6, 0x6b, 0x2c, 0xee, 0x91, 0xe9, 0x81, 0x6e, 0x24, 0x16, 0xdc, 0x89, 0xc2, 0xd3, 0x47, 0x15, -0xe0, 0x7e, 0x26, 0x57, 0x98, 0x0f, 0xb9, 0x44, 0x49, 0x92, 0x80, 0xa6, 0xf4, 0x45, 0xdd, 0x6d, -0x3d, 0xfa, 0x3c, 0x31, 0x6b, 0x73, 0x49, 0x27, 0xa5, 0xc9, 0x69, 0x07, 0xd9, 0xbd, 0x66, 0x1d, -0x9e, 0xb4, 0x8b, 0xef, 0x86, 0xc9, 0xfb, 0xa2, 0x5e, 0x90, 0x19, 0xd3, 0x01, 0x8a, 0x73, 0x04, -0xea, 0x39, 0xd7, 0x99, 0xd3, 0x8c, 0xe1, 0x03, 0x4f, 0x1c, 0x4a, 0xb3, 0x5a, 0xcd, 0xc3, 0xa8, -0xb6, 0xac, 0x35, 0x66, 0x18, 0xd5, 0x19, 0xef, 0x1f, 0x43, 0x22, 0x81, 0xe2, 0xff, 0x90, 0x24, -0xd9, 0x15, 0xd4, 0x86, 0x30, 0xdc, 0xd9, 0xd0, 0x66, 0xbc, 0x8c, 0x95, 0x96, 0xc8, 0x80, 0x9e, -0x93, 0xea, 0xa5, 0x61, 0x4f, 0xbb, 0x50, 0x73, 0xc8, 0x45, 0x18, 0x93, 0xb7, 0x35, 0x1b, 0xa9, -0xb5, 0x25, 0x8b, 0x5e, 0x6a, 0x4d, 0xc0, 0x94, 0xc2, 0x62, 0x20, 0xbf, 0x24, 0xcb, 0xb8, 0x4a, -0xb4, 0x90, 0x84, 0x3a, 0x34, 0x68, 0x7d, 0xff, 0x0e, 0xb5, 0xfc, 0x9b, 0x41, 0x77, 0x11, 0xc7, -0x0a, 0xba, 0xab, 0xee, 0xd6, 0x22, 0x62, 0xc4, 0x73, 0xcb, 0x30, 0x23, 0x0d, 0xed, 0xee, 0xd0, -0x62, 0x15, 0xce, 0x2d, 0xb1, 0x24, 0xbe, 0x25, 0xb4, 0x1c, 0x76, 0x29, 0x3d, 0x2f, 0xc5, 0x5d, -0x3b, 0x69, 0xeb, 0xf1, 0x09, 0x69, 0xd7, 0x02, 0xbd, 0x2e, 0x75, 0xec, 0xbd, 0x85, 0x15, 0x91, -0x14, 0x83, 0xa7, 0xa5, 0x96, 0x89, 0xa3, 0x7e, 0x05, 0x70, 0x27, 0x8e, 0xee, 0x82, 0xad, 0x1e, -0x21, 0xf8, 0x29, 0xc0, 0x9c, 0x81, 0x17, 0x13, 0x76, 0xf7, 0x38, 0xd4, 0xf7, 0xb5, 0x4c, 0x28, -0x76, 0xec, 0x64, 0x49, 0xa8, 0x14, 0x57, 0x8a, 0x4e, 0x9e, 0x3a, 0x1b, 0xfb, 0x61, 0x48, 0x65, -0xa8, 0xcf, 0x90, 0x17, 0x07, 0xb6, 0xec, 0xe7, 0xca, 0x28, 0x6f, 0x03, 0x7c, 0x1d, 0xf0, 0x2a, -0xe9, 0xf4, 0x8d, 0x87, 0xf0, 0x94, 0x21, 0xcc, 0x75, 0x7e, 0xb7, 0x53, 0xb0, 0x94, 0x6c, 0x29, -0x3d, 0x8d, 0xfb, 0x88, 0xd0, 0x1a, 0x96, 0x66, 0x5a, 0x46, 0x0b, 0xac, 0x67, 0x71, 0xc9, 0x0b, -0x23, 0x8b, 0x48, 0x3a, 0x5a, 0x01, 0xf8, 0xf6, 0x10, 0x94, 0x37, 0xe3, 0xdc, 0x4b, 0xd8, 0x62, -0x1a, 0x59, 0xf5, 0xdc, 0xea, 0xb9, 0x9a, 0x84, 0x57, 0xf7, 0xbf, 0xba, 0x3f, 0xe6, 0x37, 0x0b, -0xee, 0xea, 0x9a, 0x19, 0x19, 0xb5, 0xd4, 0x93, 0x12, 0xdb, 0x98, 0x4d, 0x62, 0x7e, 0x82, 0xd2, -0xe2, 0xae, 0xab, 0x0b, 0x4e, 0x01, 0xfe, 0x29, 0x23, 0x79, 0x11, 0xdd, 0xb3, 0x95, 0x63, 0x39, -0xea, 0x8a, 0x48, 0x26, 0xdf, 0xc6, 0xf4, 0x9d, 0x24, 0x79, 0x19, 0xbc, 0xb1, 0xd1, 0x37, 0xc5, -0xc0, 0x0f, 0x5a, 0x48, 0xb9, 0xb0, 0x83, 0x8b, 0x92, 0x05, 0x3a, 0x5a, 0x1e, 0xe4, 0xdd, 0xb0, -0xed, 0x64, 0x82, 0x64, 0xca, 0xa5, 0x72, 0x15, 0xbf, 0xbb, 0xef, 0x82, 0xb9, 0x16, 0xd1, 0xfd, -0x56, 0x9a, 0x83, 0xc6, 0x48, 0xef, 0x21, 0x65, 0x9d, 0xd1, 0x91, 0x06, 0xf2, 0x43, 0x80, 0x5b, -0xf8, 0x5f, 0x79, 0x5d, 0x3c, 0xa5, 0xa7, 0x7c, 0xea, 0x92, 0x79, 0x6a, 0xc6, 0x25, 0x35, 0xa9, -0x6b, 0xdb, 0x40, 0xbb, 0x44, 0xe2, 0xfe, 0x2a, 0xf5, 0x9f, 0x8a, 0xfb, 0xac, 0xa5, 0xd9, 0x22, -0xcb, 0xf3, 0x0d, 0xad, 0x3d, 0x4a, 0xe0, 0x18, 0x0c, 0x6b, 0x5d, 0x16, 0x61, 0x87, 0x35, 0x05, -0x00, 0x39, 0xbd, 0x6c, 0x80, 0x62, 0xe7, 0x79, 0xb7, 0xaa, 0x0d, 0x3f, 0xa6, 0xa3, 0x67, 0xae, -0xd4, 0x0f, 0x2c, 0xae, 0xb2, 0xe8, 0x1d, 0x02, 0x7d, 0x0b, 0xa9, 0xf2, 0x08, 0xca, 0x5f, 0xd0, -0x15, 0x15, 0xae, 0x7e, 0x11, 0xe8, 0x87, 0x20, 0x96, 0x30, 0x61, 0xd9, 0x44, 0x3e, 0x00, 0xda, -0x99, 0xc9, 0x16, 0xc5, 0x97, 0x11, 0x56, 0x13, 0xd5, 0x72, 0x36, 0xad, 0x40, 0x2a, 0xc7, 0x52, -0xfb, 0x5d, 0xed, 0xd6, 0xf9, 0xf9, 0xbe, 0x1a, 0x5f, 0xd6, 0x6b, 0xe0, 0xcd, 0x86, 0xe6, 0xed, -0x87, 0x8b, 0xc4, 0xda, 0x64, 0x61, 0x4d, 0x3f, 0xa6, 0xb4, 0xc2, 0x1c, 0x34, 0xe1, 0x1c, 0xb4, -0xc6, 0x02, 0x3e, 0xf5, 0x83, 0x72, 0xf8, 0xeb, 0xc5, 0x2d, 0xeb, 0x2c, 0xbf, 0x5a, 0xfe, 0xa1, -0xa0, 0xd2, 0xa7, 0x7e, 0xbc, 0xdc, 0x20, 0xa5, 0x8a, 0x38, 0xd4, 0x01, 0x32, 0xbd, 0x87, 0x5a, -0x3e, 0xfc, 0xda, 0xde, 0xc4, 0x6b, 0xe8, 0x39, 0x52, 0x09, 0x78, 0x38, 0x95, 0xa6, 0x03, 0x4a, -0x4c, 0x43, 0xd0, 0xe4, 0x84, 0x91, 0x20, 0x0b, 0xcb, 0x21, 0x72, 0xa7, 0xf4, 0x10, 0x86, 0x40, -0x39, 0x3d, 0x3f, 0x9a, 0xce, 0x1a, 0x12, 0x60, 0x9f, 0x4c, 0x53, 0xf3, 0x87, 0xd4, 0xfc, 0x1e, -0x91, 0x5a, 0x39, 0xa5, 0x0f, 0x9d, 0xa5, 0x76, 0xa5, 0x0d, 0x68, 0x8d, 0x56, 0x0b, 0x25, 0x66, -0x2c, 0x15, 0x7e, 0x1a, 0xf2, 0xa4, 0x65, 0xda, 0xb1, 0x5c, 0x12, 0xad, 0xb4, 0xb6, 0x58, 0x0e, -0xc1, 0xef, 0x6a, 0x94, 0x6f, 0x72, 0x73, 0xf0, 0x8e, 0x4a, 0xab, 0xe0, 0x15, 0x6d, 0x0f, 0xed, -0x8d, 0xa0, 0xe4, 0xe7, 0xa9, 0x76, 0x17, 0x50, 0x72, 0xac, 0x91, 0xd2, 0x8c, 0x8a, 0x92, 0x76, -0xf1, 0xa2, 0xda, 0x69, 0x80, 0x61, 0x52, 0x36, 0x55, 0xd8, 0x94, 0x48, 0x47, 0xc1, 0xbd, 0x68, -0x91, 0xb1, 0x67, 0xcc, 0x5f, 0xd2, 0x50, 0x32, 0xa1, 0xbd, 0xb7, 0x39, 0x57, 0x1b, 0xd1, 0x9f, -0x59, 0xdd, 0xfa, 0x7f, 0x43, 0xc2, 0xe4, 0x3f, 0xf5, 0x4c, 0xc2, 0x8d, 0x70, 0xf5, 0x4c, 0xc2, -0xe5, 0xff, 0x67, 0x9e, 0x49, 0xb8, 0xa8, 0xff, 0xff, 0x94, 0x84, 0x10, 0xfc, 0xa4, 0xf5, 0x75, -0xcc, 0x4c, 0x98, 0x89, 0x2a, 0xf4, 0xe6, 0xc4, 0x04, 0xd3, 0x99, 0x19, 0x50, 0xa2, 0xd8, 0x54, -0x61, 0xcf, 0x14, 0x3c, 0x93, 0x4c, 0x31, 0x55, 0xc1, 0xbb, 0x4e, 0xa6, 0x2a, 0x5e, 0xe2, 0xb1, -0xff, 0x1d, 0x15, 0xc9, 0x58, 0x60, 0x2f, 0x81, 0xb5, 0x25, 0x18, 0x2d, 0x99, 0xc3, 0x1a, 0x24, -0x56, 0x9a, 0x50, 0xf6, 0x66, 0x29, 0x50, 0xd5, 0x71, 0x80, 0x5d, 0x50, 0x82, 0x18, 0x53, 0xa1, -0x76, 0x82, 0x18, 0xa6, 0x02, 0x63, 0xc3, 0x9d, 0x92, 0xa9, 0x68, 0x91, 0x9a, 0xa4, 0xda, 0x98, -0xa1, 0x30, 0x8b, 0xbc, 0x50, 0x0e, 0xe3, 0x92, 0x85, 0x1f, 0xef, 0x19, 0x15, 0x7c, 0x68, 0x7c, -0xcf, 0x4b, 0x68, 0xb0, 0xb2, 0x62, 0x5f, 0xfe, 0x1d, 0x53, 0x81, 0x23, 0x79, 0x84, 0xc4, 0xa9, -0x49, 0xd9, 0x40, 0x75, 0x82, 0x01, 0x17, 0x09, 0x2b, 0xac, 0x4a, 0x19, 0xaf, 0x06, 0xfa, 0x9d, -0x89, 0x05, 0x4a, 0xd6, 0x4b, 0x19, 0x8b, 0x34, 0x2c, 0x60, 0x1b, 0x89, 0x16, 0xc6, 0x3c, 0xd0, -0xb4, 0x7e, 0xfa, 0x1c, 0x58, 0xad, 0xa3, 0xe0, 0xb7, 0x13, 0x09, 0x0f, 0xd5, 0x93, 0xa8, 0xf3, -0xf3, 0xb4, 0x1e, 0x69, 0xb3, 0xd0, 0xaa, 0x16, 0xf5, 0x75, 0x6d, 0xd4, 0xc8, 0xd2, 0x66, 0x52, -0x1c, 0x32, 0x00, 0x71, 0x08, 0xc4, 0x87, 0xd9, 0x5d, 0xd2, 0x7e, 0x13, 0xca, 0xcf, 0x65, 0xf3, -0x2d, 0x61, 0xf7, 0x85, 0x2b, 0xb4, 0x8c, 0x8d, 0x48, 0xe6, 0x02, 0x7d, 0xf9, 0x16, 0x13, 0x8f, -0xda, 0xf6, 0xe2, 0x6f, 0x6c, 0x72, 0xb4, 0x43, 0x2f, 0x94, 0x17, 0xfd, 0xb4, 0xac, 0x25, 0x4a, -0x7a, 0xd2, 0xc5, 0xd3, 0x74, 0xf0, 0xad, 0x15, 0x27, 0x8c, 0xb6, 0xb9, 0xcc, 0x29, 0x0b, 0x42, -0x5f, 0x86, 0x31, 0xe7, 0x4e, 0x2d, 0x07, 0xe3, 0x1b, 0x94, 0xc6, 0x33, 0x39, 0xb5, 0x13, 0xf1, -0x0d, 0xd3, 0x52, 0x1a, 0x8a, 0xb3, 0x5f, 0x06, 0x2a, 0x24, 0xfc, 0x74, 0x03, 0xe9, 0x84, 0x92, -0x16, 0xfc, 0xee, 0x3b, 0xb5, 0xf3, 0xf4, 0x9a, 0xd2, 0xea, 0x68, 0x7d, 0xaa, 0x49, 0x4f, 0x6d, -0x16, 0xb0, 0xc4, 0xad, 0xe1, 0xbf, 0x2f, 0xdf, 0xfd, 0xd5, 0x6d, 0xcb, 0x77, 0x3f, 0xbf, 0x6d, -0xf9, 0xee, 0x57, 0x24, 0x5c, 0x23, 0x22, 0x2c, 0x99, 0xe9, 0x15, 0xb4, 0xe8, 0x43, 0x57, 0x26, -0x58, 0xcf, 0x1c, 0xbb, 0xe2, 0xb8, 0xef, 0x47, 0x2d, 0x1a, 0xe8, 0x09, 0x9b, 0xd0, 0x74, 0x3f, -0x3b, 0x79, 0x31, 0x60, 0x46, 0xb9, 0x32, 0x01, 0xb0, 0xe4, 0x03, 0xf4, 0x27, 0x89, 0xda, 0x3f, -0xf0, 0xad, 0x3c, 0x79, 0x31, 0x7a, 0x5e, 0xc3, 0xdd, 0xef, 0x47, 0x94, 0xd7, 0x8f, 0xf5, 0x72, -0xe6, 0x2b, 0x15, 0xf2, 0x95, 0xb5, 0x2e, 0xdb, 0xc0, 0xa6, 0x3f, 0xea, 0x78, 0xbd, 0x4a, 0x65, -0xbc, 0x60, 0xeb, 0x0d, 0xa5, 0x0b, 0x1d, 0xb1, 0xfc, 0x05, 0xbc, 0x7f, 0x4c, 0xa7, 0x25, 0xe1, -0x13, 0x48, 0x80, 0x96, 0x44, 0x52, 0xbd, 0x9c, 0xd7, 0xe8, 0x5b, 0x0b, 0x60, 0x58, 0x6c, 0xb3, -0xf5, 0x4a, 0x02, 0xad, 0x2d, 0xa1, 0xf7, 0xef, 0xd2, 0x3d, 0x99, 0xe8, 0xba, 0xa4, 0x12, 0x12, -0xa6, 0x25, 0x7d, 0x61, 0xac, 0xa4, 0xac, 0x98, 0xa6, 0xf4, 0xe0, 0xcf, 0xc0, 0xeb, 0xe8, 0x2e, -0x01, 0xdd, 0x21, 0x8d, 0x02, 0xdc, 0x34, 0x62, 0x51, 0x05, 0x23, 0xe2, 0x77, 0x32, 0xeb, 0x06, -0xd2, 0x15, 0x17, 0x53, 0x95, 0x09, 0x3d, 0x62, 0x72, 0xf4, 0x48, 0x4b, 0x2e, 0x8c, 0x9b, 0x70, -0xff, 0x2e, 0xf5, 0x25, 0xf0, 0x32, 0xd0, 0x25, 0xb8, 0x02, 0xd4, 0xb6, 0xf4, 0x90, 0x50, 0x5e, -0x25, 0x6f, 0x6f, 0x5f, 0x74, 0xcb, 0x59, 0x13, 0x81, 0x9b, 0xfc, 0x43, 0xa6, 0xf3, 0x18, 0x32, -0x3b, 0x16, 0xad, 0xff, 0x27, 0x02, 0xf5, 0x80, 0x67, 0x6c, 0x68, 0xbb, 0xd7, 0x13, 0xb5, 0x23, -0xd0, 0x0b, 0xd2, 0x90, 0xca, 0xd8, 0xab, 0xf4, 0x1b, 0xcb, 0x8f, 0x1a, 0x6a, 0x6b, 0x17, 0xed, -0x03, 0x7b, 0xd1, 0x13, 0xdc, 0x65, 0xd4, 0xf6, 0x92, 0x14, 0x00, 0xfa, 0x05, 0xe3, 0x50, 0x7d, -0xd5, 0x97, 0x71, 0x27, 0x97, 0x6a, 0xd0, 0x22, 0x55, 0xe2, 0xd3, 0x12, 0x56, 0x28, 0x95, 0xc0, -0x6b, 0x36, 0xcd, 0x15, 0x46, 0x22, 0x1f, 0x5a, 0x4a, 0x2d, 0xc0, 0x5a, 0x30, 0x15, 0xdc, 0xc5, -0x1e, 0x36, 0x0d, 0xd2, 0x16, 0x51, 0x4a, 0x8b, 0xc5, 0x7a, 0xe9, 0x63, 0x08, 0x9b, 0xbc, 0x0c, -0x4a, 0x23, 0xd6, 0xf9, 0xa4, 0xcf, 0xe6, 0xf3, 0xd1, 0x7b, 0x42, 0xcf, 0x23, 0x37, 0x84, 0xdf, -0x13, 0xf9, 0x3c, 0x2c, 0x80, 0xfb, 0xa8, 0x0c, 0x82, 0x1b, 0x6d, 0x0d, 0x47, 0x89, 0x5a, 0xd5, -0xba, 0xc9, 0x6f, 0xd8, 0x8b, 0x50, 0x1a, 0xb4, 0x11, 0x23, 0xd2, 0x7b, 0xd0, 0x5c, 0xbc, 0x04, -0x4d, 0x5d, 0x2c, 0x0d, 0x6a, 0xe8, 0xfe, 0xa1, 0xf7, 0x40, 0xaa, 0x86, 0xfa, 0x93, 0x80, 0x6f, -0xd1, 0x80, 0x9a, 0x9e, 0x4b, 0x08, 0xf3, 0x19, 0x1e, 0x63, 0x90, 0x47, 0x25, 0xa5, 0x27, 0x87, -0xc5, 0x1c, 0xfb, 0xaa, 0x7f, 0x22, 0x49, 0x3a, 0x9f, 0x6c, 0xf9, 0x0a, 0xcf, 0x97, 0x70, 0xe7, -0x48, 0xef, 0x15, 0xd3, 0x74, 0x6f, 0x38, 0x9e, 0xf6, 0xf2, 0xbb, 0xe6, 0x51, 0xd0, 0xa3, 0x96, -0xbd, 0x7c, 0xcf, 0xe0, 0x79, 0x36, 0xe6, 0x32, 0xb0, 0xe9, 0xde, 0x50, 0xda, 0x6a, 0x1e, 0xce, -0x3c, 0x83, 0x20, 0x4f, 0x58, 0x57, 0x86, 0xf2, 0x7b, 0xbf, 0x80, 0x4b, 0x84, 0xdd, 0x34, 0xc4, -0xd8, 0x51, 0xd4, 0x33, 0x9c, 0x87, 0x60, 0x27, 0x59, 0x28, 0x63, 0xb1, 0x88, 0x89, 0x05, 0xbe, -0xe4, 0x6f, 0x66, 0xdd, 0x3d, 0xb4, 0x69, 0x25, 0x87, 0x95, 0xdb, 0x47, 0x29, 0xa7, 0xf3, 0x7e, -0x07, 0xdc, 0xbb, 0xb7, 0xba, 0x97, 0x38, 0xef, 0x7d, 0x1c, 0xf7, 0x4e, 0x6a, 0x2b, 0x90, 0xe7, -0x66, 0x5c, 0x01, 0x7d, 0x2a, 0x0a, 0x9e, 0x7f, 0x79, 0x2b, 0xa0, 0xbc, 0x4d, 0xcd, 0x55, 0xbc, -0xc7, 0xc7, 0x16, 0x9b, 0x9b, 0xc2, 0xaa, 0xfd, 0xda, 0xa3, 0xde, 0x3e, 0x28, 0xc3, 0xb7, 0xc9, -0x43, 0xb8, 0x46, 0xdc, 0x97, 0xc7, 0x7d, 0x75, 0x65, 0x01, 0x91, 0xab, 0x7a, 0x48, 0x0f, 0x29, -0x35, 0x64, 0x15, 0xac, 0x2e, 0xab, 0x81, 0xcf, 0x5a, 0x4e, 0xa5, 0x6a, 0x15, 0xca, 0xc1, 0x4f, -0xc7, 0x10, 0x29, 0x3e, 0xc3, 0x9d, 0x91, 0xca, 0x38, 0x23, 0xc8, 0x27, 0x78, 0x9f, 0x9c, 0x1e, -0x1c, 0xcb, 0x35, 0xa2, 0x46, 0x51, 0xb0, 0x91, 0xbb, 0xaf, 0xcc, 0xa6, 0xbb, 0x63, 0x8d, 0x7a, -0x19, 0xac, 0x58, 0x9d, 0xf0, 0x4c, 0x5d, 0x15, 0xc2, 0x5d, 0x55, 0x87, 0x70, 0x37, 0x70, 0xd7, -0x09, 0x7d, 0x08, 0x63, 0x08, 0xdc, 0xa1, 0xe8, 0x66, 0x91, 0xee, 0x70, 0x60, 0x7b, 0x82, 0x3e, -0x5b, 0x51, 0xff, 0x3c, 0x1c, 0xed, 0x9f, 0xd9, 0x6d, 0xd4, 0xfb, 0x90, 0x88, 0xfa, 0xb9, 0xf7, -0x37, 0x7d, 0x08, 0x2b, 0x5d, 0xbe, 0xf4, 0xc4, 0xe2, 0xfd, 0xb0, 0x02, 0x29, 0xa8, 0x64, 0xef, -0x4c, 0x35, 0xae, 0xb5, 0x16, 0x26, 0x5f, 0xf0, 0x01, 0x1a, 0xed, 0xf4, 0x01, 0xaa, 0xe2, 0xe5, -0xf3, 0x05, 0xdf, 0x7f, 0xe8, 0x49, 0x52, 0x85, 0xbe, 0x42, 0x9d, 0xbe, 0x65, 0x1d, 0xbe, 0x81, -0x71, 0xc5, 0x94, 0xd1, 0xb0, 0x53, 0x5e, 0x39, 0xc8, 0x78, 0xe3, 0xba, 0xcc, 0xb7, 0x33, 0xb4, -0xc6, 0x1e, 0x3c, 0x65, 0xd0, 0xe0, 0x29, 0x03, 0xb4, 0x86, 0x3a, 0x84, 0x28, 0xd4, 0xf9, 0xb0, -0x8e, 0x06, 0x13, 0x56, 0x1b, 0x2c, 0x3d, 0xa4, 0x0a, 0x96, 0xee, 0xd1, 0x05, 0x4b, 0xf7, 0x51, -0xab, 0x7e, 0xa2, 0x12, 0x02, 0xab, 0x49, 0x0e, 0x91, 0xe8, 0xf2, 0x80, 0x5f, 0x80, 0x35, 0x1e, -0x5a, 0x60, 0x4f, 0xb1, 0x4f, 0xdd, 0x74, 0xb8, 0x1e, 0x32, 0x7d, 0xc0, 0xd5, 0x95, 0xc8, 0x8f, -0x4d, 0x87, 0x96, 0x39, 0x11, 0x5c, 0x4e, 0x2e, 0x7f, 0x14, 0xc0, 0x9d, 0x86, 0x77, 0xe7, 0x00, -0x2e, 0x5a, 0x3f, 0xe0, 0xf6, 0xc0, 0xea, 0xd3, 0x49, 0x90, 0xbf, 0xf7, 0x77, 0x58, 0x55, 0x6d, -0xf1, 0xc8, 0xae, 0x22, 0x2a, 0xd4, 0xfc, 0x6a, 0x12, 0x3c, 0x1e, 0x01, 0x3d, 0xd1, 0xa3, 0x80, -0xdb, 0x43, 0x64, 0x13, 0xb8, 0x11, 0xb3, 0x82, 0xe3, 0xb8, 0x7d, 0x5a, 0x9f, 0x67, 0x67, 0x15, -0xcb, 0xcf, 0x55, 0xa0, 0xd4, 0xd1, 0x26, 0x76, 0x20, 0xca, 0xc7, 0x66, 0xb3, 0x46, 0x8a, 0x3b, -0xa5, 0xb8, 0xaf, 0x88, 0x74, 0x3b, 0x6a, 0x95, 0x29, 0x22, 0x64, 0xd4, 0x4a, 0x8a, 0x9c, 0xa0, -0xe6, 0x22, 0xd2, 0xb4, 0xb1, 0x0d, 0xa4, 0xfd, 0xf1, 0xfd, 0xc7, 0xf7, 0x77, 0xfb, 0x80, 0xbb, -0xbb, 0x8f, 0x0c, 0xad, 0x64, 0x64, 0x75, 0x95, 0x75, 0x15, 0x25, 0xa2, 0x1e, 0xd3, 0x64, 0x44, -0x09, 0x79, 0x40, 0x7d, 0xe4, 0xc1, 0x05, 0xdc, 0x3e, 0xae, 0x1e, 0xfa, 0xb5, 0x21, 0xf6, 0x1a, -0xf4, 0x6d, 0x22, 0x77, 0x15, 0xbd, 0xf2, 0xc2, 0xf5, 0x86, 0xd0, 0xbf, 0xf5, 0x8e, 0xfe, 0x55, -0x93, 0x94, 0x05, 0xc5, 0x5c, 0xcd, 0x0c, 0xdb, 0xcc, 0x60, 0x13, 0x57, 0x47, 0xbd, 0x09, 0x1f, -0x62, 0x20, 0x15, 0xde, 0xca, 0xf3, 0x83, 0x32, 0x95, 0xb7, 0x74, 0x3a, 0x21, 0xd2, 0x7a, 0xc6, -0x29, 0xab, 0xfc, 0xe0, 0x50, 0xcc, 0x2f, 0xd2, 0xd3, 0xca, 0xa4, 0x16, 0x6f, 0xe1, 0x2e, 0xdf, -0xf6, 0xf2, 0x76, 0x04, 0x97, 0x1e, 0x00, 0x5a, 0x09, 0x4f, 0x24, 0x96, 0x0b, 0x27, 0x12, 0x37, -0x90, 0xa6, 0xd1, 0x09, 0x7d, 0x42, 0xcf, 0x38, 0x0a, 0x81, 0x2a, 0xd0, 0x10, 0x56, 0xa5, 0x91, -0x1e, 0xd2, 0x64, 0x4b, 0x6b, 0xd5, 0xd9, 0xd2, 0x3d, 0xd4, 0xe6, 0x0a, 0xf5, 0x9c, 0x2d, 0xd0, -0x53, 0x84, 0x78, 0x41, 0xeb, 0x46, 0x66, 0x8e, 0xa5, 0xf7, 0xe8, 0x05, 0xee, 0x6a, 0x66, 0x18, -0xbd, 0x17, 0xc3, 0xfd, 0xc7, 0x99, 0xbe, 0xf4, 0x5e, 0x64, 0x23, 0xa2, 0x3d, 0xb0, 0xea, 0x57, -0xd3, 0x27, 0x37, 0xf8, 0xb2, 0x8e, 0xde, 0x49, 0xe0, 0xfd, 0x7a, 0xd6, 0xf1, 0xe4, 0x01, 0xef, -0x0f, 0x64, 0x11, 0xb2, 0x95, 0x3e, 0xa1, 0xef, 0xe5, 0x7d, 0xf4, 0xce, 0x13, 0x42, 0xcd, 0x86, -0x50, 0x7b, 0xe9, 0x53, 0x3b, 0xc8, 0x8f, 0x64, 0xaa, 0xe9, 0xbd, 0x1c, 0xc2, 0x9c, 0x80, 0x18, -0x7b, 0xe8, 0x13, 0xda, 0xe7, 0x39, 0x46, 0xef, 0x7c, 0x21, 0x46, 0x3a, 0xc4, 0x38, 0x4c, 0x9f, -0xda, 0xa3, 0xed, 0xa3, 0x2c, 0x22, 0x12, 0xd3, 0x27, 0x3f, 0x78, 0x42, 0xaf, 0xe7, 0xd4, 0x22, -0xb7, 0x28, 0x14, 0x56, 0x09, 0xb4, 0x7b, 0x8c, 0x72, 0xbe, 0x80, 0x43, 0xe1, 0x49, 0xe6, 0x7c, -0xf2, 0x82, 0x14, 0x9a, 0x9c, 0x4f, 0x62, 0x78, 0xba, 0xea, 0x7c, 0xf2, 0x84, 0xa7, 0xf3, 0xc2, -0x53, 0x1e, 0x7d, 0xaa, 0x83, 0x19, 0x27, 0x43, 0x6f, 0xee, 0xca, 0x4a, 0xf4, 0x25, 0x86, 0x4f, -0xca, 0x35, 0xa4, 0x1c, 0xcb, 0x2d, 0xdc, 0x57, 0xc0, 0xfd, 0x36, 0xe1, 0x1e, 0x6d, 0x2b, 0x6f, -0x10, 0xee, 0x31, 0xfc, 0x5b, 0xc2, 0x3d, 0xd2, 0x46, 0xcb, 0x84, 0xfb, 0x2a, 0xb8, 0x9f, 0x23, -0xdc, 0x2f, 0x61, 0xa7, 0x08, 0x77, 0xd5, 0x6c, 0xa9, 0x2a, 0xa7, 0x05, 0x3b, 0x14, 0xfb, 0xd3, -0xb9, 0x70, 0x03, 0xc6, 0x7c, 0x23, 0xc0, 0x5d, 0x00, 0x07, 0x86, 0xb8, 0xe1, 0x18, 0x41, 0x06, -0xa3, 0xaa, 0x32, 0x65, 0x01, 0x1b, 0xe5, 0x2c, 0xaf, 0x8c, 0x65, 0x9c, 0xf7, 0xde, 0xac, 0xbf, -0xf3, 0xde, 0x8b, 0x15, 0x6a, 0x0f, 0xeb, 0x66, 0x36, 0xd5, 0x52, 0x81, 0x11, 0xd6, 0x84, 0x1e, -0xaa, 0x15, 0x2e, 0x74, 0x71, 0xe1, 0xc3, 0x74, 0x31, 0x8c, 0x24, 0x09, 0xbf, 0xeb, 0xcd, 0x53, -0xc7, 0x51, 0x68, 0x23, 0x08, 0xbd, 0x25, 0x53, 0x9b, 0xb8, 0x30, 0xf7, 0x90, 0x77, 0xcd, 0x50, -0xc3, 0x48, 0xe2, 0x67, 0x1b, 0x52, 0xef, 0x03, 0xf0, 0x34, 0x3f, 0x2e, 0x18, 0xa8, 0xcc, 0x32, -0xf5, 0x69, 0xd4, 0x6a, 0xd8, 0x41, 0xbd, 0xd2, 0x13, 0xe2, 0x6d, 0xcf, 0xce, 0xd4, 0x0a, 0x63, -0x20, 0x3e, 0x53, 0xce, 0x8f, 0x0d, 0x3c, 0xfd, 0x61, 0x0d, 0xfc, 0x78, 0xb0, 0x47, 0xf2, 0x23, -0x0f, 0xde, 0x55, 0xb2, 0xe1, 0x42, 0xdf, 0x9b, 0xb3, 0xfa, 0xf2, 0x7d, 0x6f, 0x37, 0x21, 0x7d, -0x4f, 0xc4, 0xb6, 0x5c, 0xd6, 0xd8, 0x1d, 0xfd, 0xfc, 0x95, 0xb3, 0x2c, 0xbd, 0x56, 0xb0, 0x19, -0xf4, 0x3a, 0x93, 0x4d, 0xa1, 0xd7, 0x4a, 0xd6, 0x42, 0xaf, 0x73, 0x85, 0x70, 0x55, 0x6c, 0x24, -0xbd, 0x2e, 0x61, 0x0d, 0xf4, 0x5a, 0xcd, 0x6a, 0x04, 0x1b, 0xa8, 0xbc, 0x2f, 0x42, 0xf9, 0xb1, -0x19, 0xb0, 0x2a, 0xab, 0xfb, 0x1b, 0x89, 0x96, 0xc9, 0xe1, 0xee, 0xa3, 0x05, 0x40, 0xdc, 0x0d, -0x43, 0x0c, 0xcc, 0x0c, 0xa4, 0xfc, 0xa2, 0xc3, 0x7f, 0x60, 0xa4, 0xa0, 0x75, 0xe1, 0xc0, 0x39, -0x71, 0xad, 0xed, 0x38, 0x53, 0xef, 0xa5, 0x72, 0x3a, 0xeb, 0xaa, 0xa8, 0x27, 0xf6, 0x10, 0x7e, -0xd6, 0x31, 0xb1, 0xc8, 0x4b, 0x30, 0x3a, 0xc2, 0x02, 0xf5, 0xa4, 0xc1, 0x56, 0x0a, 0x24, 0x90, -0xeb, 0x7a, 0xe9, 0x1e, 0xc0, 0x70, 0x55, 0xd0, 0xb3, 0x4b, 0x00, 0xa8, 0x3e, 0x2e, 0x10, 0x0e, -0x05, 0x5c, 0x95, 0xa0, 0x49, 0x84, 0xf6, 0xac, 0x4a, 0x54, 0xf2, 0x87, 0xb1, 0x80, 0x72, 0x80, -0x13, 0x03, 0x48, 0x80, 0x3b, 0xa1, 0x9c, 0xb2, 0x5d, 0x49, 0x75, 0x7b, 0x7d, 0xb9, 0x55, 0xc1, -0x79, 0xa4, 0x9a, 0x5b, 0x0d, 0xa9, 0xad, 0xa1, 0xfe, 0x39, 0x56, 0x51, 0x6d, 0x74, 0x23, 0xdd, -0x99, 0x0f, 0x26, 0xd5, 0x42, 0x38, 0x0f, 0x6e, 0x3d, 0x84, 0x2b, 0xe7, 0x6a, 0x20, 0xdc, 0x66, -0x1a, 0x6e, 0x3d, 0x0d, 0x17, 0x28, 0x84, 0xab, 0x10, 0xc2, 0xf9, 0x70, 0x5b, 0x21, 0xdc, 0x12, -0x6e, 0x07, 0x84, 0xab, 0xa5, 0xe1, 0xb6, 0x62, 0xb8, 0xbb, 0x37, 0x84, 0x70, 0x4b, 0x84, 0x70, -0x32, 0x6e, 0x0f, 0x84, 0xab, 0xe0, 0xf6, 0x41, 0xb8, 0x43, 0x34, 0xdc, 0x1e, 0x1a, 0x6e, 0x9f, -0x10, 0x6e, 0xa6, 0x10, 0x4e, 0xce, 0xd5, 0x41, 0xb8, 0x2a, 0xee, 0x04, 0x84, 0x3b, 0x4d, 0xc3, -0xd5, 0xd1, 0x70, 0xab, 0x84, 0x70, 0x55, 0x42, 0x38, 0x4f, 0x58, 0x11, 0xf2, 0xc8, 0x4c, 0xee, -0x22, 0x84, 0xab, 0xa7, 0xe1, 0xce, 0xd1, 0x70, 0x65, 0x42, 0xb8, 0xb9, 0x42, 0x38, 0x2f, 0xae, -0x01, 0xc2, 0x55, 0x72, 0x57, 0x21, 0xdc, 0x0d, 0x1a, 0xae, 0x81, 0x86, 0x4b, 0x11, 0xc2, 0x55, -0x0a, 0xe1, 0xbc, 0x01, 0x17, 0xe7, 0x91, 0xb9, 0xfc, 0x3c, 0xa2, 0xe1, 0x1a, 0x69, 0x38, 0xb4, -0x17, 0x26, 0xdf, 0x72, 0x55, 0xba, 0xd5, 0xa6, 0x66, 0x74, 0xd2, 0xd3, 0xd0, 0xcf, 0x55, 0x43, -0xa9, 0x75, 0x54, 0x08, 0x53, 0xc6, 0x71, 0x08, 0xb5, 0xd3, 0x78, 0x4b, 0x0f, 0xd1, 0x68, 0x7d, -0x44, 0xe1, 0x8a, 0x71, 0x37, 0xf3, 0xbe, 0xd5, 0x63, 0x1d, 0xbe, 0xd5, 0x11, 0xbb, 0xb6, 0x99, -0x3d, 0x72, 0xae, 0x4c, 0x58, 0xbd, 0xe5, 0x38, 0xf3, 0x80, 0x0f, 0x25, 0x3c, 0xdd, 0x00, 0xe3, -0xc3, 0xa0, 0xe4, 0xb1, 0x32, 0x9e, 0x25, 0x21, 0x1f, 0xce, 0x2a, 0x61, 0x1e, 0x01, 0x36, 0xde, -0x47, 0xa9, 0x4b, 0x06, 0xa8, 0x0a, 0xf9, 0xd1, 0xda, 0xe2, 0xf6, 0x75, 0xeb, 0x88, 0xa4, 0xae, -0xa2, 0xae, 0x42, 0x65, 0x90, 0x11, 0xfb, 0x08, 0x27, 0x7e, 0x08, 0xa8, 0x9b, 0x06, 0xf8, 0xa1, -0x11, 0xd6, 0x8e, 0xbb, 0x0f, 0x53, 0x0e, 0x56, 0xa3, 0x1d, 0x2d, 0xb1, 0xc9, 0x8a, 0xdd, 0x58, -0x35, 0xb5, 0xe7, 0x72, 0x1f, 0xb1, 0x19, 0x95, 0xd9, 0x14, 0xd3, 0x5a, 0xe0, 0x37, 0xcf, 0x1a, -0x68, 0x8b, 0x54, 0x6a, 0x6d, 0x38, 0x1d, 0x78, 0x4c, 0xe0, 0x94, 0x73, 0xb1, 0x84, 0xd4, 0xfa, -0x90, 0x22, 0xe9, 0x9a, 0x5c, 0xce, 0xd5, 0x3b, 0xd6, 0x10, 0xea, 0x09, 0xb9, 0x80, 0xea, 0xbf, -0x2a, 0x28, 0x9d, 0xcf, 0x20, 0xbd, 0xa3, 0x1c, 0x27, 0x73, 0xcc, 0x22, 0x39, 0xfa, 0xaf, 0xa7, -0x16, 0xb6, 0x73, 0x89, 0xaa, 0xd4, 0xff, 0xc4, 0x3a, 0xe9, 0x21, 0x28, 0xd9, 0x8d, 0x60, 0x4b, -0x0b, 0x7d, 0x83, 0x73, 0x8b, 0x62, 0x2f, 0xe7, 0xec, 0xb2, 0xd4, 0x02, 0x85, 0xd3, 0xa0, 0x2a, -0xe0, 0xae, 0x62, 0x3e, 0xcf, 0x2e, 0x00, 0xfc, 0x12, 0x09, 0x34, 0x16, 0x5a, 0xfc, 0xd3, 0x61, -0x9b, 0x68, 0xa1, 0x4d, 0xf8, 0xb6, 0x40, 0xdf, 0xe5, 0xa7, 0x6a, 0x4b, 0x49, 0x59, 0xd0, 0xe9, -0x05, 0x13, 0x3c, 0x4f, 0xae, 0x91, 0xee, 0x4b, 0x6c, 0xba, 0x13, 0x09, 0xfd, 0x6b, 0xb6, 0x33, -0x74, 0x9f, 0xc2, 0x0d, 0xbd, 0xae, 0xd0, 0x9a, 0xe9, 0x49, 0x50, 0x0d, 0xb4, 0x98, 0x8d, 0xd6, -0x9f, 0x99, 0xce, 0xca, 0x53, 0xa7, 0x67, 0xbc, 0x5c, 0xec, 0x5b, 0x33, 0xdd, 0x56, 0xc7, 0xfa, -0x0a, 0x75, 0xbb, 0x10, 0x14, 0x95, 0xb1, 0x00, 0x7a, 0x05, 0x5b, 0x81, 0x83, 0x9a, 0x37, 0xfc, -0x17, 0x75, 0xec, 0xf8, 0xdf, 0xd4, 0x51, 0xe8, 0xfd, 0x1b, 0xd8, 0xf3, 0x58, 0x43, 0x48, 0x15, -0x71, 0x42, 0x0f, 0x3e, 0xaf, 0xe3, 0xbb, 0x60, 0x04, 0xec, 0x49, 0x9d, 0x06, 0xa9, 0xdd, 0x28, -0x71, 0x83, 0x5f, 0x27, 0xe6, 0xa7, 0x78, 0xe1, 0x06, 0xee, 0x64, 0xf0, 0x78, 0xe1, 0xb7, 0xe1, -0x14, 0xd3, 0x8c, 0xfc, 0xa7, 0xa9, 0xb9, 0xae, 0x22, 0x0f, 0xa5, 0xe5, 0xeb, 0x9a, 0xd6, 0x7f, -0xd8, 0x0a, 0x1d, 0xfe, 0x9b, 0x56, 0x40, 0x79, 0x14, 0xbd, 0x17, 0x96, 0xba, 0x65, 0xa4, 0xab, -0x8a, 0x65, 0xd8, 0x63, 0x72, 0xeb, 0x3a, 0x22, 0x1b, 0x26, 0x58, 0xc0, 0xc6, 0xb9, 0x51, 0x0b, -0x7d, 0x89, 0x34, 0x6f, 0x49, 0xfb, 0x63, 0x6b, 0x21, 0xa7, 0x18, 0x98, 0xef, 0xc6, 0x16, 0x9a, -0xaa, 0x58, 0x86, 0x73, 0x40, 0x18, 0xff, 0x0d, 0x2d, 0xe3, 0x1f, 0xad, 0x0a, 0x73, 0xcd, 0x90, -0x5f, 0xbd, 0x93, 0x76, 0x2e, 0xa2, 0xa5, 0x57, 0xf1, 0x18, 0x18, 0xa9, 0xf9, 0xa3, 0xbb, 0xba, -0x02, 0xfd, 0x49, 0x56, 0xc1, 0xaf, 0x8c, 0xac, 0x06, 0x7e, 0x07, 0x77, 0xd2, 0x25, 0x2c, 0x69, -0xd4, 0x62, 0x78, 0xde, 0x8b, 0x2e, 0x86, 0x63, 0xa0, 0x64, 0x42, 0x6c, 0x59, 0xed, 0x5a, 0x22, -0x41, 0x8f, 0xb3, 0x8e, 0x12, 0x3a, 0x28, 0x2c, 0x03, 0x95, 0xad, 0xa1, 0x32, 0x1f, 0x80, 0xe9, -0x95, 0xc1, 0x74, 0x3d, 0x84, 0xf8, 0x88, 0xfd, 0xbf, 0xa9, 0xc5, 0x7d, 0xac, 0x8d, 0x3f, 0x93, -0xe5, 0x76, 0x9b, 0x32, 0x05, 0xe8, 0x2b, 0x85, 0xd2, 0x68, 0x05, 0x2a, 0x2b, 0x7f, 0x84, 0x32, -0x97, 0x5f, 0x85, 0xa2, 0xb2, 0x89, 0x34, 0x02, 0xe5, 0x6f, 0xbe, 0x60, 0x8c, 0x98, 0x4b, 0xa9, -0xd7, 0x89, 0x69, 0xb4, 0x4d, 0x71, 0x7e, 0xc7, 0x42, 0x4d, 0x93, 0x1f, 0x6e, 0xd3, 0x70, 0xd4, -0xba, 0x56, 0x3c, 0x05, 0x29, 0x93, 0xe5, 0xfc, 0xa9, 0xe6, 0xed, 0x92, 0x94, 0x05, 0x06, 0xb1, -0xa5, 0x96, 0x95, 0x0a, 0x7a, 0x32, 0x88, 0x7d, 0x4e, 0xd3, 0xf6, 0x1e, 0x07, 0x34, 0x20, 0xda, -0xd7, 0xf2, 0x2f, 0x56, 0xb6, 0xd5, 0xc9, 0xa7, 0x7b, 0x6f, 0x49, 0x1d, 0x78, 0x9d, 0x7c, 0x6d, -0x6b, 0x9d, 0xfc, 0x0e, 0x6d, 0x74, 0xf2, 0x9f, 0x42, 0x9d, 0xfc, 0x9f, 0x89, 0xff, 0x53, 0xa8, -0x93, 0xbf, 0x8e, 0x04, 0xc2, 0x7d, 0x20, 0xdc, 0xfb, 0x77, 0xb7, 0x12, 0x19, 0xd5, 0xae, 0x94, -0x97, 0x42, 0xce, 0x26, 0x13, 0xda, 0xbb, 0xf8, 0x2b, 0x4d, 0x7c, 0xc6, 0xea, 0xa2, 0x83, 0xef, -0xab, 0x34, 0x16, 0xeb, 0x5a, 0xb4, 0x14, 0x5d, 0xbe, 0xcd, 0x85, 0x92, 0x9d, 0x60, 0x2f, 0x02, -0xe5, 0xb1, 0x47, 0xd0, 0x1f, 0x4c, 0xd2, 0x5b, 0x49, 0xdf, 0x36, 0xfa, 0x83, 0xd1, 0xe8, 0x4f, -0xf2, 0x2f, 0xf4, 0x07, 0xcd, 0x82, 0xfe, 0xa0, 0x8c, 0x04, 0x00, 0x3f, 0xc4, 0xeb, 0x0e, 0x4a, -0x48, 0x17, 0xe4, 0x73, 0x8c, 0x84, 0x28, 0x05, 0xdd, 0x42, 0x35, 0xea, 0x16, 0x7e, 0x9e, 0x4e, -0xb4, 0x82, 0x6e, 0x61, 0x68, 0xcc, 0x75, 0xd2, 0x17, 0xc6, 0x43, 0x18, 0xc4, 0x89, 0xf8, 0x5b, -0xdd, 0xc2, 0x78, 0xaa, 0x5b, 0x68, 0x22, 0x4b, 0xfe, 0x54, 0xb7, 0x30, 0x8a, 0xf2, 0x90, 0x7a, -0xa7, 0x7f, 0x87, 0x54, 0x81, 0x7f, 0x0c, 0x77, 0xc8, 0x65, 0xa9, 0x0b, 0x88, 0x3f, 0x8c, 0x96, -0xc0, 0x7e, 0x05, 0x44, 0xc9, 0xc5, 0x47, 0x87, 0x10, 0x35, 0xcf, 0xe1, 0x48, 0x37, 0x59, 0x3f, -0x40, 0x8b, 0x6e, 0xd2, 0x75, 0x70, 0x95, 0xdb, 0x14, 0xbc, 0x75, 0x0c, 0x0f, 0x12, 0x9c, 0x4d, -0x18, 0xa0, 0xf7, 0xa5, 0xf4, 0xd9, 0x0b, 0xe8, 0x8b, 0x50, 0xb4, 0x06, 0x6a, 0x0b, 0x5c, 0xb8, -0x0f, 0x68, 0x7d, 0x0d, 0xe4, 0x2d, 0xd6, 0x60, 0xcf, 0x12, 0x69, 0x09, 0x8c, 0x22, 0x13, 0x8b, -0x16, 0x36, 0x4c, 0xd4, 0x0f, 0x85, 0x3f, 0xac, 0x83, 0x72, 0x18, 0x57, 0x30, 0xd7, 0x78, 0x7c, -0x30, 0x59, 0xcc, 0xca, 0xe9, 0x13, 0xc5, 0x10, 0x93, 0x45, 0x50, 0x1a, 0x8d, 0x8e, 0xb7, 0x6e, -0x5d, 0xd9, 0x2f, 0x9b, 0xf8, 0x73, 0xd1, 0x38, 0x0f, 0x4d, 0xb1, 0x26, 0x73, 0xc2, 0x55, 0x92, -0x1e, 0x0c, 0x5f, 0x39, 0xab, 0x4a, 0x8b, 0xd2, 0x94, 0xce, 0x7d, 0xf5, 0x01, 0xb0, 0x2a, 0x52, -0xdd, 0x7e, 0x8c, 0x03, 0xf3, 0xcb, 0x3f, 0x5c, 0x4b, 0x24, 0x45, 0xe2, 0x3a, 0x13, 0x5c, 0xa5, -0x45, 0xe2, 0x63, 0x26, 0x5e, 0xe7, 0x7f, 0x93, 0xb9, 0x48, 0x1c, 0x29, 0x02, 0xbc, 0xa1, 0xa0, -0x7a, 0xff, 0xdb, 0x80, 0x57, 0xb2, 0x12, 0x4d, 0x78, 0x08, 0x17, 0x7d, 0xc2, 0x24, 0x35, 0x91, -0x27, 0x14, 0x3a, 0xd2, 0xcd, 0x52, 0x71, 0xc2, 0x08, 0x57, 0x35, 0x5e, 0x4f, 0x98, 0x77, 0x9a, -0xc6, 0x88, 0xc3, 0x3d, 0x60, 0x2e, 0x89, 0xa1, 0x16, 0xe9, 0x86, 0x7c, 0xe2, 0xbb, 0xb1, 0xb6, -0x80, 0xb8, 0xcf, 0x91, 0xc6, 0x02, 0xb7, 0x72, 0x8d, 0x5a, 0xe8, 0x48, 0x51, 0x59, 0x4c, 0x66, -0xbe, 0x54, 0x6c, 0xa7, 0x16, 0x39, 0x31, 0x28, 0x53, 0x82, 0x60, 0x6f, 0xc0, 0x3c, 0x46, 0x1c, -0x49, 0x42, 0x3b, 0xd9, 0x2e, 0xf1, 0xf9, 0x45, 0x4b, 0xa4, 0x09, 0x44, 0x81, 0xde, 0x9f, 0xfa, -0xc5, 0x71, 0x56, 0x46, 0x9a, 0x52, 0xb1, 0xeb, 0xcb, 0xc1, 0xc6, 0x40, 0x1d, 0x51, 0x59, 0x66, -0x86, 0x99, 0x63, 0x7f, 0x22, 0xfe, 0xfd, 0x12, 0xb9, 0xe4, 0x9a, 0xd8, 0xac, 0x4e, 0x68, 0x7f, -0x00, 0xad, 0xbb, 0x70, 0xdc, 0xa2, 0x19, 0x0e, 0x7d, 0x8f, 0xe3, 0x05, 0x5c, 0x72, 0x04, 0xf9, -0xb8, 0x80, 0x8b, 0x1f, 0x2b, 0x89, 0x08, 0xe1, 0xe2, 0xa1, 0xac, 0x4f, 0x59, 0x2a, 0x4e, 0x1b, -0x53, 0xcc, 0xa7, 0x63, 0xa1, 0x9c, 0x12, 0x28, 0xa3, 0x7c, 0x63, 0x6d, 0x3e, 0x71, 0x97, 0xb1, -0x44, 0x72, 0x49, 0xf0, 0xfa, 0x9b, 0xc7, 0xf7, 0xc9, 0x03, 0xb4, 0x37, 0x95, 0x61, 0x27, 0x92, -0x03, 0x0a, 0xcc, 0xad, 0xc2, 0x0f, 0xe3, 0x4e, 0x8b, 0x88, 0x39, 0x59, 0x3b, 0xe1, 0xee, 0xb2, -0x01, 0x11, 0xb1, 0x27, 0xf7, 0x64, 0x18, 0x4b, 0x44, 0x9b, 0x66, 0xd9, 0xb4, 0x90, 0xb3, 0xf7, -0xa2, 0xd9, 0x3a, 0x11, 0x95, 0x10, 0x9d, 0x7d, 0xce, 0x38, 0x41, 0xb4, 0xf4, 0x00, 0xf4, 0x4e, -0x34, 0xe3, 0x9e, 0x56, 0x01, 0x69, 0x58, 0x69, 0x7d, 0x23, 0x80, 0xab, 0x01, 0x26, 0x16, 0x30, -0x9d, 0x75, 0xd7, 0x57, 0xcb, 0x6a, 0xd9, 0xb3, 0x8c, 0x5b, 0x5a, 0x05, 0xac, 0xe9, 0x56, 0xbb, -0x24, 0xcc, 0x0d, 0xed, 0x6d, 0x5b, 0xca, 0x48, 0x24, 0x6f, 0x23, 0x0b, 0xf0, 0x66, 0x5f, 0xa7, -0x9d, 0x2c, 0x37, 0xa2, 0xe0, 0x46, 0x28, 0x43, 0xb8, 0xbe, 0x86, 0x18, 0xc1, 0xd6, 0x8c, 0x1b, -0x79, 0x92, 0x1b, 0x8b, 0x56, 0xa1, 0xe8, 0xbd, 0x88, 0xcb, 0x87, 0x9a, 0x48, 0x21, 0x9f, 0x62, -0xfa, 0xec, 0xc6, 0x95, 0xf2, 0x3d, 0x02, 0x3c, 0x6e, 0xfa, 0xa2, 0x5a, 0xc6, 0xb3, 0xea, 0x03, -0x2e, 0xbe, 0xa4, 0x91, 0xda, 0x7c, 0x29, 0xa3, 0x21, 0xbc, 0xb8, 0x72, 0x68, 0xdb, 0x0c, 0x6a, -0x7b, 0xc6, 0x8d, 0x04, 0x70, 0x33, 0xa9, 0x95, 0xad, 0x4a, 0xc8, 0x5f, 0x41, 0xf3, 0xaf, 0x77, -0xc9, 0xdb, 0x13, 0xb8, 0xe3, 0x64, 0xae, 0x41, 0x68, 0x99, 0x89, 0x71, 0x68, 0x2b, 0xa5, 0x80, -0x8b, 0xc0, 0xd6, 0x51, 0x19, 0xa9, 0xcd, 0xf3, 0x58, 0xb4, 0x8a, 0x0c, 0xf1, 0xa3, 0xe9, 0x28, -0xf1, 0x82, 0x94, 0x23, 0x88, 0x86, 0x25, 0x6e, 0x33, 0x19, 0x2b, 0xe0, 0xfd, 0x7a, 0x21, 0x74, -0xd9, 0xb6, 0x19, 0x76, 0x1d, 0xb6, 0x93, 0x2e, 0xe6, 0x5c, 0x02, 0xe3, 0x5e, 0x85, 0x1e, 0x5b, -0x9d, 0x56, 0x8e, 0xce, 0x19, 0x95, 0x6e, 0x8b, 0x66, 0xa1, 0xef, 0x1b, 0xc7, 0x9b, 0x93, 0xb5, -0xa9, 0x33, 0x80, 0xbb, 0x4e, 0xc9, 0xf8, 0x80, 0x4b, 0xd1, 0x65, 0x50, 0xcd, 0x70, 0xd2, 0x5c, -0xc7, 0xa7, 0x6d, 0x85, 0x96, 0xb5, 0x13, 0xb7, 0xf0, 0x62, 0x5f, 0x57, 0x9b, 0x04, 0x0f, 0xd2, -0x29, 0x6e, 0x24, 0x6e, 0xe8, 0xbd, 0x29, 0xe5, 0x21, 0x5b, 0x63, 0x36, 0x6e, 0x04, 0xf6, 0x37, -0xda, 0xc0, 0x12, 0xec, 0xf1, 0x8c, 0xa5, 0xa3, 0x34, 0x5b, 0xb0, 0xe4, 0x93, 0x8f, 0x56, 0x79, -0x0d, 0xa2, 0x09, 0xed, 0xae, 0x64, 0xd7, 0xc5, 0x5c, 0x32, 0x1a, 0x8c, 0x97, 0x92, 0xc4, 0x33, -0x71, 0x2c, 0x51, 0x0b, 0x38, 0xc5, 0x82, 0x85, 0x9f, 0x52, 0x08, 0xe5, 0x6b, 0x10, 0x39, 0xc3, -0x08, 0xfe, 0x85, 0x16, 0xee, 0x46, 0x8b, 0x5b, 0x34, 0x4c, 0x2e, 0x57, 0xce, 0x84, 0x90, 0x20, -0x71, 0x05, 0x77, 0xe1, 0x8f, 0xcf, 0x89, 0x51, 0x62, 0x74, 0xda, 0x2f, 0xcb, 0xe7, 0x66, 0x42, -0xf9, 0xa3, 0x05, 0x2b, 0x3f, 0x85, 0xdc, 0x5c, 0x18, 0x15, 0x72, 0xae, 0x8a, 0x52, 0xbe, 0x51, -0x68, 0xd9, 0x03, 0xea, 0x65, 0xb2, 0x4b, 0x14, 0x51, 0x64, 0x12, 0xc4, 0x59, 0x12, 0x9c, 0xc4, -0x55, 0xd3, 0x90, 0x79, 0xdc, 0xf2, 0x60, 0xc0, 0xd6, 0x0a, 0x29, 0xb7, 0x4a, 0xb0, 0x55, 0xc3, -0x8f, 0xce, 0xb7, 0xd4, 0xc6, 0x50, 0xc0, 0x2d, 0x62, 0x05, 0x8d, 0xe7, 0xbb, 0x70, 0x1f, 0xf4, -0xb7, 0x49, 0xf8, 0x76, 0x1f, 0x70, 0x7c, 0x99, 0xea, 0x03, 0x8a, 0xf7, 0x25, 0x4f, 0x41, 0xae, -0x44, 0xd6, 0x2b, 0x0e, 0xf2, 0x81, 0xaf, 0x40, 0xa5, 0x8d, 0x70, 0x8e, 0xb4, 0xf5, 0xce, 0x16, -0x12, 0xc3, 0x38, 0x5a, 0xef, 0x17, 0x4c, 0x22, 0x90, 0x9a, 0x66, 0x44, 0x19, 0x38, 0x6e, 0x6b, -0xe8, 0x7b, 0x31, 0xb7, 0x59, 0x11, 0x8c, 0xf2, 0x57, 0x40, 0x15, 0x90, 0x8c, 0xe9, 0xb0, 0xd2, -0x6d, 0xa5, 0xef, 0xdd, 0xb8, 0x1d, 0x06, 0xe0, 0x7c, 0x16, 0xee, 0x82, 0x58, 0x91, 0x96, 0x69, -0x55, 0xbb, 0x06, 0x57, 0x42, 0x2b, 0xd4, 0xd2, 0x6f, 0x12, 0x6e, 0x0f, 0x7c, 0xf3, 0x5a, 0x58, -0x0b, 0x31, 0xfb, 0x58, 0x2a, 0xaa, 0x6a, 0x17, 0x5e, 0xe3, 0xe2, 0x63, 0x1a, 0xb8, 0xab, 0x10, -0x62, 0x1f, 0x0d, 0xd1, 0x81, 0x3b, 0x34, 0x41, 0x04, 0xab, 0x65, 0x1d, 0x7d, 0xea, 0xc8, 0x9d, -0x60, 0x92, 0x84, 0xb2, 0x27, 0x6b, 0x08, 0x6f, 0x9d, 0x4b, 0x94, 0x0d, 0x2b, 0x53, 0x98, 0x8a, -0x5a, 0x92, 0xd5, 0xc5, 0xe1, 0x89, 0x1c, 0xda, 0x37, 0xa5, 0x14, 0x81, 0x2f, 0xbf, 0x9b, 0x8e, -0xdf, 0x4b, 0x09, 0x7e, 0xbb, 0x8f, 0x67, 0x95, 0x61, 0x5d, 0x61, 0x05, 0xa9, 0xec, 0x4b, 0x6d, -0xf2, 0x84, 0xb5, 0xa7, 0x52, 0x4c, 0x0a, 0xac, 0x51, 0x85, 0x1f, 0x96, 0x7f, 0x5a, 0x38, 0x94, -0x36, 0x00, 0xcb, 0x3a, 0x03, 0xcb, 0x16, 0x84, 0x25, 0x43, 0x8d, 0xfa, 0x30, 0x3c, 0x83, 0x5c, -0xf2, 0x85, 0xca, 0xab, 0x6a, 0xaf, 0x9a, 0xe6, 0xd3, 0x7c, 0x18, 0xe3, 0x9b, 0xd6, 0xf0, 0xe9, -0x98, 0x34, 0xe4, 0x09, 0x07, 0x5e, 0x80, 0xd1, 0xbf, 0xde, 0x81, 0x1b, 0xd4, 0xc4, 0xce, 0xe0, -0x77, 0x58, 0x0f, 0x09, 0x5a, 0x9b, 0x54, 0x99, 0x85, 0x2f, 0xcb, 0x98, 0x58, 0xe1, 0x6e, 0x0a, -0xdf, 0x6e, 0x29, 0xc6, 0x70, 0xa3, 0x2a, 0x98, 0x84, 0x61, 0xeb, 0xe3, 0xf9, 0x5d, 0x8b, 0xa4, -0x85, 0xd2, 0x8c, 0x7b, 0x6a, 0xb4, 0x2e, 0x12, 0x58, 0x87, 0xf0, 0xdd, 0x3a, 0x7d, 0x08, 0xd1, -0xf0, 0x12, 0x5a, 0xe1, 0x80, 0xbb, 0x80, 0xbe, 0x0b, 0x21, 0x0a, 0x5e, 0x2a, 0xaf, 0xfb, 0x4e, -0x98, 0x11, 0xd1, 0xca, 0x01, 0x4b, 0x0f, 0xc0, 0xaa, 0xcf, 0xaf, 0x1a, 0x29, 0x4c, 0x92, 0xd2, -0x91, 0xaf, 0x85, 0x97, 0xac, 0x52, 0x3a, 0x57, 0xe4, 0x07, 0xc9, 0x98, 0x96, 0x1e, 0xf0, 0x35, -0xc6, 0xde, 0xd7, 0x08, 0x7c, 0xc6, 0x23, 0x46, 0xca, 0x14, 0xc2, 0x78, 0xd0, 0x1d, 0x28, 0x4a, -0x53, 0x62, 0x0d, 0x21, 0x77, 0xa6, 0xc5, 0x5b, 0x3a, 0xed, 0x9f, 0xce, 0xdc, 0x7a, 0x8a, 0x23, -0x6a, 0x84, 0x9e, 0xdf, 0x8c, 0xbe, 0x5d, 0xe1, 0x79, 0xab, 0xd0, 0xdb, 0x3b, 0x26, 0x10, 0xc0, -0xae, 0xd1, 0xd0, 0x9f, 0xf1, 0x29, 0x33, 0xe0, 0xb7, 0x56, 0x90, 0x16, 0x6c, 0xb4, 0x91, 0xa6, -0xf5, 0x2c, 0x8c, 0x78, 0x68, 0xbd, 0x11, 0x68, 0x4d, 0xe3, 0x9e, 0xc2, 0x71, 0xea, 0xa5, 0xc1, -0x13, 0x2f, 0x3d, 0x49, 0x52, 0xeb, 0x49, 0xba, 0x01, 0xfd, 0xaf, 0xc5, 0xc2, 0xc8, 0x1c, 0xab, -0xd1, 0x90, 0x0c, 0xc1, 0x4e, 0x76, 0x18, 0xe0, 0xd6, 0xb9, 0x70, 0x0d, 0x05, 0xee, 0xc8, 0x17, -0x56, 0xaa, 0xa1, 0x2d, 0x54, 0x48, 0x69, 0xf3, 0x80, 0xa6, 0xbb, 0x2c, 0xda, 0x6a, 0x40, 0x5b, -0x6e, 0x25, 0x46, 0x3c, 0xe1, 0xc2, 0xfd, 0x2a, 0xf8, 0x0c, 0x78, 0x82, 0x6c, 0x7b, 0x12, 0xfb, -0xde, 0x60, 0xd2, 0x93, 0x9e, 0xfd, 0xf3, 0x48, 0x20, 0xf4, 0x21, 0xfa, 0x9d, 0xc9, 0x23, 0x41, -0xfa, 0x14, 0x12, 0x61, 0x9d, 0x85, 0x3e, 0xb1, 0x80, 0x46, 0xd0, 0xc5, 0x5e, 0x27, 0xb1, 0x78, -0x5e, 0xbc, 0xf4, 0x00, 0x1d, 0x5d, 0x27, 0xa9, 0xf7, 0x80, 0x6a, 0x59, 0x30, 0xd0, 0x22, 0x9d, -0xe1, 0x6e, 0xbe, 0x5e, 0xa2, 0xd0, 0x93, 0x04, 0x5e, 0x3a, 0x36, 0x79, 0x69, 0x17, 0xa2, 0x97, -0x30, 0xb0, 0x66, 0x28, 0x34, 0xe2, 0xb3, 0xe8, 0xd9, 0x0b, 0xb9, 0x97, 0x1a, 0x0f, 0x9b, 0x1f, -0x94, 0xac, 0x4c, 0x9e, 0x8d, 0xd4, 0x54, 0xea, 0x6e, 0xcb, 0x74, 0xcb, 0x6e, 0xf3, 0xf4, 0x3f, -0x8d, 0xf7, 0x6d, 0x4b, 0x3c, 0xde, 0x6b, 0xcc, 0x9e, 0x0a, 0x96, 0xfa, 0x96, 0x29, 0x25, 0xe1, -0x1a, 0xa2, 0x66, 0x3b, 0x95, 0x34, 0x6f, 0x9a, 0x6e, 0xc3, 0xfd, 0x8a, 0x32, 0x25, 0xd9, 0x5d, -0x65, 0xf7, 0xb2, 0xce, 0xb6, 0x4b, 0x98, 0x78, 0xa6, 0xa2, 0x94, 0x6b, 0xd9, 0x43, 0x68, 0x9e, -0xdd, 0xaa, 0x2d, 0xe6, 0xaa, 0xe9, 0x5e, 0x47, 0xf3, 0x5d, 0x56, 0x5a, 0x4a, 0x58, 0x71, 0xa9, -0x88, 0xfa, 0x9a, 0x17, 0xf6, 0xd2, 0x2d, 0x3f, 0x46, 0x86, 0xa1, 0x06, 0x3d, 0x9e, 0x3c, 0x17, -0x8b, 0x6a, 0xe6, 0x8c, 0x4d, 0x52, 0xe7, 0x02, 0x5e, 0x40, 0xff, 0xf4, 0x56, 0x7a, 0x2a, 0x12, -0x4c, 0xe4, 0x74, 0xd4, 0x99, 0x35, 0xc1, 0x44, 0x02, 0xb8, 0xa2, 0x0c, 0xe8, 0x39, 0xb4, 0x69, -0xbc, 0x15, 0xf7, 0xc9, 0xf9, 0x51, 0x83, 0x1a, 0x07, 0xf4, 0x6e, 0x5f, 0x4b, 0x19, 0x1e, 0x24, -0x53, 0x8b, 0x52, 0x17, 0x92, 0x82, 0x78, 0x1e, 0x89, 0x5c, 0x3e, 0xab, 0x24, 0x97, 0xcf, 0xd4, -0xc3, 0x75, 0x28, 0xb9, 0x5c, 0x17, 0x4a, 0x2e, 0x5f, 0xbc, 0x4a, 0x2e, 0x37, 0xc8, 0xc8, 0xe5, -0xeb, 0x00, 0x97, 0xe1, 0x7d, 0xc3, 0x69, 0xb8, 0x5f, 0x4f, 0x2e, 0xdf, 0x08, 0x22, 0x97, 0x7f, -0x65, 0x01, 0x1a, 0x00, 0xe0, 0xfd, 0x4f, 0x73, 0x01, 0x96, 0x03, 0xec, 0x85, 0xe7, 0x55, 0x10, -0x6f, 0x0d, 0xb9, 0xfc, 0x23, 0xc4, 0xf9, 0x29, 0x05, 0x40, 0x45, 0xfe, 0xec, 0xef, 0xf2, 0xaf, -0x0a, 0x0e, 0xfe, 0xc8, 0xff, 0xfa, 0x4f, 0x35, 0x34, 0x2e, 0xb5, 0x2f, 0x63, 0x1f, 0x3d, 0xb6, -0xb4, 0xa8, 0x28, 0x7f, 0x7c, 0x68, 0x7e, 0x4e, 0x66, 0xc9, 0xe8, 0x92, 0x49, 0x4c, 0x78, 0xcf, -0xd0, 0x9e, 0x8c, 0x26, 0x2c, 0xb4, 0x57, 0x68, 0x98, 0xa1, 0x67, 0x58, 0x0f, 0x1f, 0x2f, 0xd2, -0x36, 0x08, 0x21, 0xd6, 0xfb, 0xe4, 0xf2, 0x41, 0x19, 0xa9, 0x9f, 0x5c, 0x3a, 0xad, 0x87, 0x27, -0x94, 0xf0, 0xc0, 0x1d, 0x80, 0xe3, 0xf0, 0x4e, 0xe3, 0x4c, 0x1d, 0xea, 0x76, 0x40, 0xc2, 0x97, -0xff, 0x5b, 0x19, 0xac, 0xad, 0xbe, 0x78, 0x0b, 0xd7, 0x0e, 0xc2, 0x35, 0x00, 0x2e, 0x22, 0x00, -0xb1, 0xf0, 0xcc, 0x7f, 0x97, 0x11, 0x89, 0x10, 0xbf, 0xed, 0x7b, 0xc7, 0xb5, 0x9d, 0x6b, 0x7c, -0xb8, 0x6a, 0xfe, 0x24, 0xbc, 0xa7, 0x70, 0xf5, 0x12, 0xae, 0xcf, 0x60, 0xf8, 0x59, 0x8f, 0xd1, -0x3c, 0x3d, 0xe1, 0x8a, 0xe1, 0xdd, 0x1e, 0x11, 0xdf, 0x91, 0xae, 0x23, 0x1d, 0x05, 0x7d, 0x96, -0x91, 0xf6, 0xc2, 0xb3, 0x9f, 0x70, 0x7d, 0x4c, 0xb8, 0xfa, 0x0b, 0xd7, 0x78, 0x4c, 0x03, 0xae, -0xa9, 0xad, 0xd2, 0x93, 0x11, 0x6f, 0xe1, 0x2a, 0x17, 0xae, 0x43, 0x84, 0x6b, 0x1f, 0xe1, 0x6a, -0x11, 0xe2, 0x25, 0xc2, 0xd5, 0x03, 0xae, 0x56, 0xfa, 0x1e, 0xe3, 0x5f, 0x3e, 0x5c, 0xe4, 0x28, -0x1f, 0xee, 0x3a, 0xa1, 0xb5, 0x6e, 0x97, 0x74, 0x7d, 0x84, 0xeb, 0x00, 0x08, 0x57, 0xe2, 0x92, -0x6e, 0xdf, 0xbf, 0x48, 0x17, 0x9f, 0x93, 0xe0, 0x3a, 0xb6, 0x4d, 0xba, 0xd2, 0x96, 0xfa, 0x2b, -0x3c, 0x21, 0x8c, 0xbb, 0xa3, 0x13, 0xe1, 0x5e, 0xe3, 0xc8, 0x4b, 0xf8, 0xee, 0xe1, 0x08, 0xe7, -0x5a, 0x4f, 0xa1, 0x2f, 0xff, 0xea, 0xca, 0xa7, 0x0f, 0xf8, 0x54, 0xb8, 0x4a, 0x84, 0x6b, 0x3b, -0xe1, 0xda, 0x99, 0x96, 0x0f, 0x56, 0x47, 0x97, 0x38, 0xc4, 0x25, 0x0d, 0xf1, 0x23, 0xde, 0x3f, -0x2a, 0xbd, 0x8e, 0x2e, 0xe9, 0x89, 0xfe, 0x22, 0x5c, 0xa0, 0x70, 0xc5, 0xba, 0xb5, 0x6b, 0xa9, -0x1f, 0xe9, 0xee, 0x3a, 0x2e, 0x61, 0xe4, 0xdb, 0xb3, 0x4a, 0xc7, 0xe4, 0x8f, 0x1e, 0x3f, 0x9e, -0x8c, 0x2f, 0x2d, 0xb1, 0xf3, 0x77, 0xb6, 0x92, 0xcc, 0xe7, 0x4b, 0x4b, 0x8b, 0x0a, 0xf9, 0xa7, -0xe2, 0x92, 0xa2, 0x62, 0xe1, 0xc3, 0xf3, 0xa5, 0x39, 0xf9, 0x39, 0xa5, 0x93, 0x9c, 0xf3, 0xc4, -0x5e, 0x32, 0xba, 0x38, 0x3b, 0x67, 0x4c, 0xcb, 0xc4, 0xc9, 0x1f, 0x3d, 0x29, 0xab, 0xa4, 0xe5, -0x31, 0xa7, 0xb0, 0xf4, 0xf9, 0x9c, 0xd2, 0x9c, 0xa2, 0x42, 0xe7, 0x1b, 0x5b, 0xc9, 0xe8, 0x82, -0xac, 0x1c, 0x3e, 0xb5, 0xed, 0xe4, 0xa9, 0xf1, 0xe4, 0xa9, 0xfc, 0xb1, 0xa4, 0x20, 0xab, 0xf0, -0xf9, 0xcc, 0xd1, 0x25, 0xf9, 0xa3, 0x33, 0xb3, 0xf2, 0x1d, 0x25, 0x68, 0x09, 0x86, 0x21, 0xd2, -0xb3, 0xca, 0x4a, 0x99, 0x81, 0x43, 0xd2, 0xd2, 0x99, 0xcc, 0x2c, 0xa6, 0x18, 0xde, 0x66, 0x8d, -0x65, 0x26, 0xe6, 0x94, 0x66, 0x33, 0x83, 0x06, 0x3e, 0x97, 0x1c, 0x37, 0xac, 0x55, 0xf8, 0x3f, -0xbb, 0x1f, 0x3f, 0x69, 0xfc, 0xdf, 0x84, 0xe8, 0xda, 0x95, 0x49, 0x4a, 0x4c, 0x4b, 0x1f, 0x9a, -0x18, 0x37, 0x8c, 0x31, 0xa7, 0xc6, 0x0c, 0x4b, 0x4c, 0x4e, 0x60, 0xd2, 0xd2, 0x63, 0xd2, 0xe3, -0x98, 0xe4, 0x41, 0xe9, 0x4c, 0xda, 0x90, 0x94, 0x94, 0x41, 0xa9, 0xe9, 0x71, 0x66, 0xa6, 0x6b, -0x57, 0x98, 0x74, 0x7f, 0x9f, 0xf4, 0xa3, 0xdf, 0xe2, 0x9f, 0x37, 0xb9, 0x7c, 0xb4, 0x04, 0x20, -0x15, 0x20, 0x0c, 0xc0, 0x0f, 0xf0, 0xec, 0x2d, 0x80, 0x63, 0x00, 0x9b, 0x00, 0x16, 0x01, 0xc0, -0xf7, 0x3a, 0xf8, 0x5e, 0x17, 0x26, 0x74, 0x9d, 0x9c, 0x5c, 0xbe, 0x20, 0x25, 0x97, 0xcf, 0x41, -0xf8, 0x73, 0xf0, 0xed, 0x1c, 0x84, 0x3b, 0x07, 0x71, 0xbe, 0x83, 0xe7, 0xef, 0xe0, 0xf9, 0x3b, -0x78, 0xfe, 0x0e, 0x9e, 0xcf, 0xc3, 0xf3, 0x79, 0x78, 0x3e, 0xbf, 0xc9, 0x39, 0xb6, 0x2e, 0x5f, -0x38, 0xd4, 0x72, 0x7f, 0x71, 0x8a, 0x73, 0xbc, 0x5e, 0xbe, 0xb0, 0x8e, 0xd4, 0xf7, 0x67, 0x1c, -0xd8, 0xd2, 0xe5, 0xda, 0x55, 0xb8, 0xef, 0xee, 0xfa, 0xde, 0xd5, 0x47, 0xe2, 0x83, 0x08, 0xe4, -0xa1, 0xe9, 0x89, 0xae, 0x97, 0x0a, 0xf7, 0x69, 0xb4, 0x44, 0x69, 0x57, 0xe8, 0xb5, 0xa4, 0x1a, -0x77, 0x76, 0xb9, 0x93, 0xb0, 0xfa, 0x28, 0x53, 0x16, 0xa0, 0x64, 0x8f, 0xf3, 0xbb, 0xda, 0xe5, -0xfb, 0xc7, 0xf0, 0x5d, 0xdd, 0xe6, 0xbb, 0xd6, 0xe5, 0xfb, 0x32, 0xf8, 0xae, 0x6d, 0xf3, 0x3d, -0xd4, 0xe5, 0xfb, 0x04, 0xf8, 0x1e, 0xda, 0xe6, 0x7b, 0x98, 0xcb, 0xf7, 0xa1, 0xf0, 0x3d, 0xac, -0xcd, 0xf7, 0x08, 0x97, 0xef, 0x11, 0xf0, 0x3d, 0xa2, 0xcd, 0xf7, 0xbe, 0x2e, 0xdf, 0x03, 0xe0, -0x7b, 0xdf, 0x36, 0xdf, 0xa3, 0x5b, 0xbe, 0x37, 0xdf, 0x81, 0xef, 0xd1, 0x6d, 0xbe, 0x9b, 0x5c, -0xbe, 0x63, 0xfd, 0x4d, 0x6d, 0xbe, 0xc7, 0xbb, 0x7c, 0xc7, 0xfa, 0xc7, 0xb7, 0xf9, 0x6e, 0x75, -0xf9, 0x8e, 0xf5, 0xb7, 0x3a, 0xbe, 0x33, 0xed, 0x51, 0x43, 0x0b, 0x68, 0x98, 0xd7, 0xb2, 0xd4, -0x48, 0xe1, 0xd0, 0xfb, 0xe5, 0x99, 0x84, 0xbc, 0x0b, 0x4f, 0x62, 0xfa, 0xb4, 0x0e, 0xee, 0xdc, -0x50, 0x0e, 0x88, 0xec, 0xe0, 0x4f, 0xfe, 0xa0, 0xab, 0xdd, 0xec, 0x49, 0x99, 0xfe, 0xf4, 0x4e, -0x64, 0x67, 0xe8, 0x55, 0x4c, 0xcf, 0x7b, 0xa8, 0x26, 0x84, 0x48, 0x62, 0x8f, 0xa2, 0x57, 0x19, -0x3d, 0xef, 0x51, 0xa2, 0xac, 0x00, 0xd0, 0x37, 0x9f, 0x92, 0xfa, 0xe2, 0xa1, 0xac, 0xbc, 0xe5, -0x69, 0x9c, 0x17, 0x6f, 0x37, 0x8d, 0xcc, 0x6c, 0x79, 0x37, 0xa9, 0x8a, 0xfd, 0xb9, 0xe5, 0xa9, -0xa8, 0x8a, 0x3d, 0xe7, 0x12, 0x7e, 0x28, 0x7b, 0xb8, 0xe5, 0x69, 0xfc, 0xbb, 0x6c, 0x6d, 0xcb, -0xd3, 0x04, 0x15, 0xbb, 0xc9, 0xe5, 0x69, 0x36, 0xbb, 0xba, 0xe5, 0x69, 0xe2, 0x5c, 0x76, 0x19, -0xdd, 0x4d, 0x09, 0xfc, 0x6b, 0x39, 0x31, 0x6c, 0x0d, 0xbe, 0x2e, 0xf6, 0xa8, 0xcc, 0xc0, 0x12, -0xac, 0x7d, 0xb1, 0x50, 0xc7, 0x2e, 0x7c, 0xdb, 0xd8, 0x0a, 0xd9, 0x14, 0xa1, 0x86, 0x7d, 0xb3, -0xb4, 0x42, 0x1d, 0x87, 0xb3, 0x4c, 0x4b, 0x5e, 0xa3, 0x2b, 0x5c, 0x6b, 0x38, 0xa6, 0x86, 0xd6, -0x30, 0xa3, 0xe5, 0xcd, 0xd8, 0x00, 0xf6, 0x6a, 0xcb, 0x53, 0x96, 0x2f, 0x7b, 0xde, 0xe5, 0x69, -0x32, 0x5b, 0xd7, 0xf2, 0x94, 0x93, 0xc4, 0xee, 0xfe, 0xa7, 0xa5, 0x2e, 0x91, 0xd0, 0x9e, 0x3a, -0xe6, 0xd2, 0x87, 0xf3, 0xa1, 0x0f, 0xab, 0x9d, 0x7d, 0xb8, 0xbc, 0x55, 0x1f, 0x2e, 0xff, 0xbf, -0xf4, 0x61, 0xc6, 0x0a, 0xd7, 0x1a, 0x3e, 0xdb, 0xf4, 0x70, 0x1f, 0x0e, 0x4f, 0x77, 0xed, 0xc3, -0x7f, 0x95, 0xb9, 0xf6, 0xe1, 0xbf, 0x9a, 0x5d, 0xfb, 0x70, 0x54, 0xbd, 0x6b, 0x1f, 0x3e, 0xa7, -0x70, 0xed, 0xc3, 0xe7, 0xe6, 0xba, 0xf6, 0xe1, 0x68, 0xd9, 0x7f, 0xd8, 0x87, 0x22, 0xbb, 0x35, -0x53, 0x57, 0xc2, 0xd7, 0x7e, 0x6e, 0x96, 0x5c, 0xe8, 0x3f, 0x18, 0xbf, 0x6c, 0x21, 0xda, 0xd2, -0x82, 0xb7, 0x33, 0xe1, 0x9d, 0x84, 0xbe, 0x5b, 0x86, 0xe5, 0x17, 0xda, 0x24, 0x3c, 0x8b, 0x11, -0xea, 0x1f, 0x29, 0xd4, 0x7f, 0x82, 0x6b, 0xff, 0xa6, 0xab, 0x5c, 0x6b, 0x3f, 0x24, 0x92, 0xd6, -0xbe, 0xb4, 0xe5, 0x4d, 0xaa, 0x97, 0x6b, 0xff, 0xa6, 0xd5, 0xb8, 0xf6, 0xef, 0x90, 0x39, 0xae, -0xfd, 0x3b, 0xe4, 0x0e, 0xbb, 0xbb, 0xe5, 0x69, 0x28, 0xcb, 0x6e, 0x6e, 0x79, 0x1a, 0xf6, 0x1a, -0xfb, 0xee, 0x7f, 0x58, 0x5b, 0x53, 0xa6, 0x8a, 0xda, 0x08, 0xf3, 0xe7, 0xfb, 0x7c, 0x4c, 0xb9, -0xb3, 0xc6, 0x55, 0x6c, 0x66, 0x09, 0x5f, 0xcf, 0xd9, 0x6c, 0xa9, 0x50, 0x4b, 0x65, 0x96, 0x51, -0xa8, 0xa5, 0x63, 0x14, 0x67, 0xb3, 0xbe, 0x2d, 0xf9, 0xc7, 0xdf, 0x75, 0xad, 0x65, 0xca, 0x49, -0x5a, 0x4b, 0x5b, 0xcb, 0x1b, 0xcb, 0x04, 0xd7, 0x5a, 0x26, 0x0e, 0x75, 0xad, 0xe5, 0xc0, 0x62, -0xd7, 0x5a, 0x26, 0xee, 0x74, 0xad, 0x65, 0xd2, 0x72, 0x76, 0xf3, 0x7f, 0x38, 0x13, 0xcd, 0x99, -0x8a, 0x12, 0x1c, 0xd1, 0x56, 0xbe, 0x9e, 0xb6, 0x14, 0xd6, 0x4f, 0xa8, 0x83, 0x17, 0x5f, 0x03, -0x5b, 0xb4, 0x6b, 0xc9, 0xfb, 0xc8, 0x5c, 0x4b, 0xde, 0x8f, 0xb7, 0x19, 0x18, 0xd5, 0xf2, 0x26, -0xea, 0x57, 0xd7, 0x92, 0xf7, 0xbb, 0xcb, 0x9e, 0xff, 0x47, 0xe5, 0xf1, 0x86, 0x12, 0x79, 0x29, -0xdb, 0x53, 0x1f, 0x46, 0x62, 0xbb, 0x81, 0x5e, 0x25, 0xf6, 0x00, 0xc1, 0xa7, 0x51, 0x68, 0x4b, -0x8a, 0xa1, 0x87, 0x5c, 0xf3, 0xef, 0x49, 0x4f, 0x73, 0x58, 0x9d, 0xcb, 0x1b, 0xc8, 0x9f, 0xe6, -0x18, 0x60, 0xad, 0xf8, 0xb3, 0xfc, 0xd4, 0xad, 0x5b, 0x20, 0x5c, 0x68, 0x81, 0xe1, 0x42, 0x0b, -0xb0, 0xac, 0xff, 0x43, 0x38, 0x28, 0xc9, 0x75, 0x8c, 0x46, 0x28, 0x5d, 0xcb, 0x10, 0xa9, 0xa5, -0x65, 0xb0, 0xba, 0xbc, 0x69, 0xd5, 0x7b, 0xbd, 0xe4, 0xae, 0xbd, 0xd7, 0x7b, 0x2e, 0x5b, 0xf7, -0x1f, 0x8e, 0xbc, 0x50, 0x01, 0x57, 0x66, 0xf2, 0x38, 0xc6, 0x9e, 0x2d, 0x8c, 0xbc, 0x72, 0x36, -0x5f, 0xe8, 0x29, 0x5d, 0x56, 0xa0, 0xd0, 0x57, 0xd9, 0xac, 0x4b, 0x5b, 0x69, 0xbd, 0x5c, 0xcb, -0x19, 0x9a, 0xda, 0x76, 0x94, 0x69, 0xce, 0xba, 0x96, 0x53, 0x67, 0x74, 0x2d, 0x67, 0xf0, 0x61, -0xd7, 0x51, 0xa6, 0xbb, 0xe5, 0x3a, 0xca, 0x42, 0x76, 0xfe, 0xc7, 0xa3, 0xec, 0xbf, 0xc6, 0xf7, -0x5d, 0xcb, 0x5c, 0xeb, 0xd0, 0xdd, 0xaf, 0x2d, 0xbe, 0xef, 0x3e, 0xdf, 0xb5, 0x0e, 0x5d, 0x19, -0xd7, 0x3a, 0xa8, 0xe2, 0x5d, 0xeb, 0xa0, 0x31, 0xff, 0x73, 0x7c, 0x2f, 0x94, 0x3a, 0x4c, 0x18, -0x19, 0x19, 0xc2, 0xc8, 0x18, 0xe5, 0x9c, 0x1b, 0x5a, 0xa1, 0xbd, 0x93, 0x5c, 0xdb, 0xbb, 0x73, -0xa3, 0x6b, 0x59, 0xbb, 0xfc, 0xdc, 0x76, 0x5c, 0x3c, 0x61, 0x75, 0x2d, 0x6b, 0x17, 0x83, 0x6b, -0x59, 0xbb, 0x94, 0xff, 0xc3, 0x71, 0xe1, 0xab, 0xf7, 0x4a, 0x2b, 0x24, 0x8c, 0xde, 0x17, 0x6d, -0x80, 0x72, 0x9c, 0x65, 0x12, 0x70, 0xb2, 0x73, 0x71, 0x7f, 0x28, 0x8a, 0x7a, 0x67, 0xb5, 0xc2, -0x37, 0x9b, 0x42, 0x16, 0x0a, 0x1c, 0x85, 0xaf, 0x5d, 0xc6, 0xf8, 0x26, 0x6f, 0xe0, 0x7e, 0xe5, -0xe3, 0xf2, 0xd2, 0x78, 0xbc, 0xce, 0x21, 0x05, 0x88, 0x79, 0xe4, 0x9c, 0x4b, 0xcc, 0x0a, 0xbb, -0x3c, 0x15, 0x62, 0x8b, 0x43, 0xb9, 0xdf, 0xd1, 0xaa, 0xce, 0x1b, 0x87, 0x19, 0x5f, 0xc1, 0x5b, -0x76, 0x98, 0x2a, 0x99, 0xa6, 0x0b, 0x98, 0x5c, 0x15, 0x4a, 0x96, 0x38, 0xd2, 0xe0, 0x73, 0x3f, -0x52, 0xd7, 0x2a, 0x8d, 0x12, 0x65, 0x72, 0x8b, 0x8c, 0x05, 0x6f, 0xa7, 0x94, 0x96, 0x71, 0x3d, -0xea, 0xf8, 0xf7, 0x6b, 0x40, 0xb9, 0x5d, 0x67, 0xb9, 0x77, 0x24, 0x2f, 0xd6, 0x7b, 0xb5, 0x3c, -0x1f, 0x19, 0xeb, 0x4c, 0x49, 0x15, 0xba, 0x03, 0xee, 0x52, 0xe9, 0x73, 0x0a, 0x3d, 0x4d, 0x55, -0x50, 0xf9, 0x59, 0x3f, 0xa5, 0x75, 0x71, 0x6d, 0xdd, 0xb4, 0x96, 0x53, 0xaf, 0x8c, 0x05, 0xac, -0x8c, 0x68, 0x09, 0x70, 0xe0, 0xa5, 0x04, 0xf7, 0x5b, 0x92, 0x24, 0xbc, 0xbe, 0x99, 0xca, 0x48, -0xed, 0x5c, 0x07, 0x3c, 0x65, 0x21, 0x4b, 0x20, 0x6d, 0x47, 0x5a, 0x49, 0x19, 0x68, 0x69, 0x73, -0x32, 0xef, 0x6f, 0xc8, 0xd9, 0x0a, 0xd5, 0x58, 0xb6, 0xa8, 0x11, 0x54, 0x76, 0x18, 0xeb, 0x30, -0xdc, 0xf5, 0xeb, 0x81, 0x3d, 0x89, 0x7c, 0xc9, 0x97, 0xd0, 0x9d, 0xb4, 0x0a, 0x7b, 0x94, 0x4b, -0x0d, 0x36, 0x27, 0x2f, 0x69, 0x93, 0x56, 0x03, 0x4d, 0x25, 0xc8, 0x5a, 0x61, 0x9b, 0xdc, 0xaa, -0x6e, 0x75, 0x7c, 0xea, 0xff, 0xdf, 0x68, 0x11, 0x2a, 0xc9, 0xc6, 0x4b, 0xfd, 0xc3, 0x68, 0x59, -0xb8, 0x0f, 0xcf, 0x60, 0xe1, 0x1d, 0xf5, 0xc5, 0xc3, 0x6b, 0x46, 0x3c, 0x18, 0x2e, 0x8c, 0x07, -0x4a, 0xbf, 0x22, 0xe5, 0x0a, 0xa5, 0xea, 0x8b, 0x39, 0x7e, 0x7d, 0x03, 0x28, 0xe8, 0x03, 0x8c, -0x51, 0xa8, 0x6b, 0xe0, 0x53, 0x46, 0x62, 0xed, 0x5a, 0x0e, 0x5c, 0xce, 0x22, 0x22, 0x33, 0xad, -0x21, 0xf2, 0xae, 0x56, 0xd4, 0x10, 0x6c, 0x99, 0x2b, 0x2e, 0xf1, 0x23, 0x9c, 0xf1, 0xe7, 0xb4, -0x8a, 0x1f, 0x8f, 0xf1, 0x8f, 0xad, 0xfa, 0xdb, 0xf8, 0xbe, 0xce, 0xf8, 0xd6, 0x56, 0xf1, 0x4d, -0x18, 0xff, 0xf8, 0xd0, 0xbf, 0x8d, 0x2f, 0x77, 0xc6, 0xf7, 0x6a, 0x15, 0x3f, 0x1a, 0xe3, 0x9f, -0x18, 0xfb, 0xb7, 0xf1, 0x43, 0x1d, 0xf1, 0x9b, 0x5b, 0xd7, 0xbf, 0x2f, 0xc6, 0xff, 0x26, 0xf5, -0x1f, 0xe6, 0x7f, 0x1f, 0xe2, 0xb7, 0xae, 0x7f, 0x04, 0xc6, 0x3f, 0xa9, 0xfd, 0xdb, 0xf8, 0x0a, -0x8c, 0x7f, 0x58, 0x0a, 0xf1, 0x5b, 0xd7, 0x3f, 0x8c, 0xc6, 0xdf, 0xf6, 0x0f, 0xe3, 0xfb, 0x43, -0xfc, 0xd6, 0xf5, 0x0f, 0xc5, 0xf8, 0xa7, 0x74, 0xff, 0xac, 0xfd, 0x31, 0xfe, 0x83, 0xd6, 0xf5, -0xd7, 0xd2, 0xf8, 0x87, 0xfe, 0x36, 0xbe, 0xda, 0xd1, 0x7e, 0x0f, 0x5a, 0xd7, 0x5f, 0x8d, 0xf1, -0x4f, 0x57, 0xfd, 0x6d, 0x7c, 0x99, 0xa3, 0xfe, 0x0f, 0x5a, 0xd7, 0x5f, 0x89, 0xf1, 0xcf, 0xc4, -0x3f, 0x2a, 0x7e, 0xf2, 0x38, 0x5e, 0x6f, 0x87, 0xe7, 0x6b, 0x9b, 0x33, 0x05, 0x1c, 0x87, 0xa9, -0xca, 0x63, 0xef, 0x41, 0x6a, 0x4f, 0xb6, 0x9c, 0x9e, 0x3f, 0x38, 0x0d, 0x69, 0x2d, 0xb7, 0x97, -0xd1, 0xf7, 0xfa, 0x36, 0xef, 0x57, 0xd9, 0x53, 0xe8, 0x7b, 0x63, 0x9b, 0xf7, 0xab, 0xed, 0x1a, -0xfa, 0x7e, 0x50, 0x9b, 0xf7, 0xd5, 0xb6, 0x70, 0x3d, 0xee, 0x91, 0x49, 0xa0, 0xec, 0xab, 0x61, -0xc4, 0x4d, 0x4e, 0x59, 0xe0, 0x7c, 0x5e, 0x05, 0xcf, 0xb9, 0x2e, 0xcf, 0xcb, 0xe1, 0x79, 0x38, -0x4a, 0x56, 0xa0, 0x2e, 0x9b, 0x13, 0x0f, 0xd3, 0x32, 0xc6, 0xfc, 0x4c, 0x9c, 0xd8, 0xf2, 0xc1, -0x31, 0xe0, 0x1b, 0xcb, 0x1d, 0x21, 0xd0, 0xaf, 0x97, 0xaa, 0x88, 0xca, 0x1b, 0x95, 0xd3, 0x75, -0x41, 0xa6, 0xcb, 0x25, 0xd5, 0x78, 0x92, 0x81, 0xa1, 0x9c, 0x69, 0x57, 0x27, 0x34, 0x35, 0x37, -0x03, 0xce, 0x68, 0x29, 0xcb, 0x62, 0x97, 0x72, 0x2c, 0x76, 0x29, 0xc3, 0x62, 0x5e, 0x72, 0x1c, -0x7d, 0x74, 0x51, 0x99, 0xc4, 0x8b, 0x98, 0x03, 0x95, 0x79, 0xee, 0x88, 0x5a, 0xfa, 0x7a, 0xf4, -0xb7, 0xc0, 0x4b, 0x40, 0x53, 0xe9, 0x67, 0x7a, 0x2f, 0x26, 0x41, 0x70, 0xcf, 0x00, 0xa8, 0xe8, -0xb9, 0xcb, 0xe5, 0xc3, 0xa3, 0xe3, 0xa0, 0x5f, 0xd0, 0x73, 0x9e, 0x2e, 0x8f, 0x96, 0x66, 0xa6, -0xe0, 0xf3, 0x8b, 0x71, 0xf4, 0xa5, 0x15, 0x4a, 0x67, 0x93, 0xa3, 0x54, 0x05, 0xb7, 0x1c, 0xda, -0xa9, 0x1c, 0xf0, 0x2d, 0xbc, 0x71, 0x78, 0x66, 0x77, 0xf4, 0x19, 0x84, 0xb5, 0x14, 0x3f, 0xf7, -0xb0, 0x9f, 0x03, 0xe8, 0xf1, 0x2e, 0x8c, 0xb1, 0x6b, 0x79, 0x7b, 0xe5, 0xd3, 0x66, 0x12, 0xd9, -0xb5, 0xdc, 0xfc, 0xb4, 0xb2, 0x3d, 0x89, 0xea, 0x59, 0x2e, 0x72, 0x23, 0x72, 0xf8, 0x25, 0x44, -0xa1, 0xaa, 0xe0, 0xdb, 0x27, 0x79, 0x08, 0xb7, 0x06, 0xa5, 0x47, 0x54, 0x30, 0xec, 0x34, 0x89, -0x30, 0x7a, 0x32, 0xe8, 0x29, 0xda, 0x1a, 0x97, 0xf3, 0x52, 0x11, 0xb7, 0x46, 0x38, 0x85, 0xad, -0xa1, 0x57, 0x77, 0x7a, 0x46, 0xe2, 0x46, 0x3c, 0xe8, 0xc9, 0x98, 0x1b, 0x51, 0xd2, 0xf3, 0x2f, -0x37, 0x32, 0x96, 0xab, 0xa3, 0x27, 0x2a, 0x27, 0x84, 0xf3, 0xdc, 0xd3, 0xc2, 0x49, 0xef, 0x45, -0x7a, 0xed, 0xca, 0x35, 0xd0, 0x6b, 0x7b, 0x8e, 0x4a, 0xee, 0x51, 0x49, 0x00, 0x22, 0xce, 0xe5, -0x4f, 0x46, 0xc4, 0x99, 0xd6, 0xf5, 0x24, 0x00, 0xae, 0xc3, 0x4d, 0x8b, 0x15, 0xc0, 0xed, 0xd4, -0x4c, 0xb7, 0x7b, 0x15, 0x8b, 0xe0, 0x57, 0x06, 0x4f, 0x78, 0xa6, 0x79, 0xc2, 0x90, 0x1e, 0x6c, -0xe1, 0xd6, 0x1b, 0xf2, 0xe1, 0xc9, 0xc2, 0x6d, 0x86, 0x2b, 0x7a, 0x13, 0xd9, 0x01, 0x57, 0x29, -0x5c, 0xf7, 0x40, 0x6c, 0x99, 0xbd, 0xaf, 0x5a, 0x47, 0xfc, 0x30, 0x96, 0x4d, 0x56, 0x7c, 0xa1, -0x76, 0x46, 0x0f, 0x23, 0xf1, 0x03, 0xaa, 0x40, 0x4e, 0x4f, 0x60, 0x2f, 0xdf, 0xbc, 0x82, 0x72, -0xdd, 0xbc, 0x25, 0x05, 0x08, 0x21, 0xe9, 0x11, 0x4b, 0xfc, 0xac, 0x1f, 0x70, 0x87, 0x6c, 0x5e, -0x2c, 0x11, 0xd5, 0xd3, 0x72, 0xef, 0x0b, 0x1e, 0xc0, 0x9d, 0xa3, 0x52, 0xa4, 0x0a, 0x78, 0xaa, -0x67, 0xf2, 0x49, 0x40, 0x70, 0x36, 0x91, 0x70, 0x57, 0x83, 0xf3, 0x49, 0x27, 0xae, 0x91, 0x81, -0xd4, 0x65, 0xb8, 0x5b, 0x28, 0x29, 0x16, 0xb3, 0x81, 0xd4, 0xb7, 0xba, 0xa4, 0xd8, 0x8d, 0xf5, -0x35, 0xd7, 0xda, 0x24, 0xc5, 0x12, 0x56, 0x6a, 0xae, 0xcd, 0x95, 0x16, 0xa3, 0x35, 0x97, 0x13, -0xc5, 0x3e, 0x35, 0xd3, 0xb3, 0x88, 0x28, 0xfb, 0xc4, 0x74, 0x43, 0x3f, 0x0d, 0xb5, 0xe0, 0x2a, -0x8a, 0x26, 0x41, 0x24, 0x4c, 0xe4, 0x2b, 0x52, 0x93, 0x4c, 0xb2, 0x8e, 0x58, 0x48, 0x39, 0x39, -0x27, 0x1a, 0x41, 0xf6, 0x90, 0x3b, 0xa4, 0x0a, 0xca, 0xa8, 0x23, 0x01, 0xd8, 0xe6, 0x7c, 0x49, -0xef, 0x9a, 0x80, 0xcb, 0xdb, 0xf9, 0xd0, 0xdb, 0xbd, 0xf0, 0x76, 0x0d, 0x7d, 0x2b, 0x6f, 0xfd, -0xe5, 0x5e, 0x29, 0x7c, 0x69, 0x7c, 0xd4, 0x97, 0x26, 0x15, 0x7c, 0x39, 0xdb, 0x36, 0xa5, 0x3f, -0xb6, 0xb1, 0xa3, 0x1e, 0x15, 0xfa, 0xfe, 0x5b, 0x10, 0x7a, 0xfd, 0xa3, 0xbe, 0x3c, 0xa8, 0x66, -0xd1, 0x5b, 0xdb, 0x23, 0xbe, 0x34, 0xaf, 0x60, 0xcb, 0xda, 0xa4, 0x5f, 0xef, 0x56, 0x47, 0x4f, -0xd1, 0x15, 0x6c, 0xee, 0x23, 0x62, 0xd4, 0xcb, 0x2e, 0xb2, 0xf1, 0x8f, 0x7a, 0xef, 0x3d, 0x02, -0x28, 0xc0, 0x47, 0xbc, 0xf7, 0x39, 0xcd, 0x06, 0x3c, 0xea, 0xbd, 0xdf, 0x12, 0x9a, 0x8b, 0x3f, -0x2b, 0x59, 0x7a, 0x80, 0xe5, 0xa5, 0x39, 0x24, 0xac, 0x4c, 0x65, 0x64, 0xfc, 0x6c, 0x4d, 0xac, -0xbf, 0x69, 0xb1, 0xb2, 0x80, 0x3b, 0xd4, 0x72, 0xb6, 0xe3, 0x94, 0x4a, 0x97, 0x73, 0x55, 0xbc, -0x3c, 0x12, 0xcc, 0xdc, 0x1b, 0x54, 0xbb, 0xdc, 0xa2, 0xf6, 0x54, 0x27, 0x33, 0x51, 0x15, 0x32, -0x12, 0x5d, 0x42, 0x98, 0x44, 0x5d, 0x21, 0xcc, 0xf1, 0x0d, 0xdc, 0xb9, 0xfe, 0xb0, 0x5e, 0x68, -0xac, 0x65, 0xa4, 0x94, 0x0c, 0xb8, 0x47, 0xea, 0x03, 0x4d, 0x03, 0xe1, 0x37, 0x60, 0xb9, 0xc2, -0x1f, 0xed, 0x9c, 0xd8, 0x99, 0x4c, 0xb9, 0x95, 0xd8, 0x93, 0xd0, 0x2a, 0x8b, 0xcd, 0xc4, 0x06, -0xc8, 0x09, 0x37, 0xdd, 0x1e, 0x04, 0xbf, 0x33, 0x80, 0xd3, 0x22, 0xc4, 0xcd, 0x16, 0x6a, 0x32, -0x02, 0xaf, 0xe7, 0x86, 0x7a, 0x26, 0xa7, 0x2b, 0x52, 0x16, 0xa0, 0x76, 0x57, 0x09, 0xb7, 0x69, -0x3d, 0x11, 0xdb, 0xc4, 0xa9, 0xd3, 0x81, 0x47, 0x73, 0x13, 0x74, 0x92, 0x96, 0x9e, 0xae, 0xa0, -0xb4, 0x0c, 0xda, 0xad, 0x12, 0x25, 0x5e, 0x25, 0xfe, 0x56, 0xa3, 0x7d, 0x39, 0x23, 0x4e, 0xad, -0x40, 0x69, 0xcb, 0xba, 0x99, 0xad, 0x65, 0x01, 0x80, 0x12, 0x52, 0xd2, 0x72, 0xf6, 0x87, 0x72, -0xc6, 0x02, 0xde, 0xa0, 0xe5, 0x44, 0xf9, 0x00, 0xb1, 0xb5, 0xc4, 0x8d, 0x31, 0x32, 0xd3, 0x58, -0x22, 0x36, 0x52, 0x0b, 0x54, 0xa6, 0xa3, 0xbb, 0x8f, 0xee, 0x8b, 0xb9, 0x21, 0xa3, 0x36, 0x86, -0x99, 0xe9, 0x19, 0x1f, 0x92, 0xf0, 0x72, 0x92, 0xb2, 0x6b, 0x0a, 0x79, 0xe3, 0x70, 0x19, 0x79, -0xf5, 0xd0, 0x64, 0xf2, 0xfa, 0xd7, 0xa5, 0x44, 0x39, 0x40, 0x1d, 0xaf, 0x73, 0x53, 0x8b, 0x15, -0x7e, 0xb4, 0x4e, 0xa1, 0x99, 0x0a, 0x2b, 0x9e, 0x51, 0x96, 0xc8, 0x79, 0xa9, 0xfa, 0xe9, 0x2c, -0x43, 0xeb, 0x65, 0xa3, 0xf5, 0x42, 0x89, 0x79, 0xac, 0x19, 0x11, 0xe5, 0x42, 0x69, 0x09, 0xd9, -0x01, 0xbf, 0xc9, 0x7a, 0xa9, 0x05, 0x35, 0x7b, 0x50, 0x63, 0x08, 0x65, 0x3b, 0xea, 0x03, 0x92, -0xb5, 0x74, 0xbd, 0x81, 0x95, 0x24, 0x14, 0xcb, 0x25, 0x9a, 0x8e, 0x7e, 0x85, 0x45, 0x2a, 0x3d, -0x81, 0xb6, 0x48, 0x24, 0x11, 0x18, 0xa6, 0xc3, 0xdd, 0x94, 0x05, 0x26, 0x63, 0x4b, 0x49, 0x30, -0x2c, 0xcc, 0xc0, 0x80, 0x62, 0x11, 0xd5, 0x1e, 0x91, 0x6d, 0xe3, 0x4f, 0x4a, 0xa3, 0x4b, 0xfa, -0x6f, 0x7a, 0x31, 0x8b, 0x90, 0xbb, 0xa8, 0x93, 0x44, 0x2d, 0x38, 0xa1, 0x36, 0x11, 0x00, 0xcd, -0x2d, 0x9e, 0xe6, 0xb6, 0x8a, 0x6a, 0x97, 0x39, 0xf2, 0x0a, 0xa0, 0x98, 0x44, 0xa2, 0xa9, 0x60, -0xe5, 0x34, 0x0d, 0x49, 0x30, 0xcc, 0x7f, 0x2d, 0x49, 0x7d, 0x51, 0x63, 0x34, 0x19, 0x4b, 0x69, -0x7e, 0x28, 0x19, 0xef, 0xc8, 0x87, 0xc7, 0x3b, 0xe4, 0xa4, 0x5c, 0x44, 0x2d, 0x67, 0x1c, 0x2e, -0x79, 0x72, 0x13, 0xcc, 0x59, 0x52, 0xf9, 0x4f, 0xf3, 0x23, 0xef, 0xee, 0xa0, 0xb9, 0xe8, 0x2a, -0xd8, 0x48, 0x9a, 0x96, 0x01, 0xf0, 0x4d, 0x10, 0x4a, 0x5c, 0x88, 0x63, 0xb8, 0x3f, 0xd0, 0xbb, -0xb1, 0x0c, 0x53, 0xee, 0x04, 0x58, 0xc4, 0xcf, 0xba, 0x86, 0x28, 0x6c, 0x8a, 0x81, 0x0d, 0xc4, -0xbf, 0x6b, 0x32, 0x51, 0xe0, 0x2a, 0x7c, 0xb8, 0x80, 0x00, 0x53, 0x92, 0x3a, 0x1d, 0x78, 0xc5, -0x40, 0x58, 0x85, 0x03, 0xd4, 0xc4, 0xb5, 0x4d, 0x58, 0x69, 0x04, 0xd0, 0xdc, 0x26, 0xa3, 0x9f, -0x5f, 0xdc, 0xcf, 0x74, 0x4c, 0x90, 0xe6, 0x11, 0x2a, 0x37, 0xb5, 0x54, 0xe7, 0xcd, 0xf7, 0x3f, -0xf4, 0x7e, 0x0e, 0xed, 0xfd, 0x4b, 0x50, 0x12, 0x29, 0xe0, 0xf9, 0x78, 0x22, 0xb1, 0x4e, 0xb7, -0x89, 0x55, 0xee, 0xf0, 0x1b, 0xcd, 0x46, 0x60, 0x58, 0x75, 0x62, 0x99, 0x18, 0xe6, 0x03, 0x7f, -0xe7, 0xc6, 0x98, 0xa8, 0x76, 0xdb, 0x01, 0x67, 0xfc, 0x3c, 0x67, 0x7c, 0xb9, 0xce, 0x18, 0x62, -0x26, 0x12, 0x56, 0xa2, 0x92, 0xb0, 0x62, 0x9e, 0xf6, 0xa7, 0x67, 0xad, 0x0a, 0x87, 0x85, 0xeb, -0xa8, 0x68, 0x8d, 0x45, 0x43, 0xb4, 0x22, 0x6d, 0xa2, 0x30, 0x4f, 0xc2, 0x5d, 0xe7, 0x09, 0x2f, -0xa1, 0x42, 0x0e, 0xd0, 0x75, 0xce, 0x8d, 0xa8, 0x0c, 0x26, 0x18, 0x73, 0x1a, 0xfa, 0x24, 0x21, -0x3a, 0x43, 0x2c, 0x3c, 0x19, 0xe8, 0x53, 0x07, 0x18, 0x89, 0x18, 0xfb, 0x69, 0x88, 0x3d, 0xd0, -0x31, 0x7a, 0x71, 0xb4, 0xd2, 0xaf, 0x9d, 0x49, 0x14, 0xfd, 0x3a, 0xb0, 0x44, 0xd4, 0xea, 0xab, -0x11, 0xd6, 0x4c, 0x33, 0xe3, 0x6f, 0xf7, 0x85, 0x77, 0xab, 0xf4, 0x3e, 0x5a, 0x23, 0x4a, 0x08, -0x68, 0x9f, 0x1b, 0xf0, 0x0b, 0x49, 0x86, 0x70, 0x4e, 0x79, 0x74, 0x26, 0x8f, 0x94, 0x53, 0x0d, -0x22, 0x7e, 0x35, 0x2d, 0x63, 0x92, 0x94, 0xf0, 0x06, 0xbd, 0xec, 0x86, 0xb9, 0x5b, 0x76, 0x95, -0x12, 0x55, 0x2e, 0xd5, 0xf3, 0xa9, 0xa6, 0xb2, 0x0c, 0x2d, 0xf1, 0xf6, 0xb6, 0x49, 0xd9, 0xaa, -0x7d, 0x4e, 0x90, 0xa1, 0xd7, 0x08, 0x32, 0x8b, 0xd1, 0x5a, 0x8b, 0x3a, 0x99, 0x97, 0x78, 0x23, -0xdb, 0x96, 0x1e, 0x00, 0x0e, 0xe6, 0xf2, 0xcd, 0x43, 0xac, 0x58, 0x6b, 0x52, 0x75, 0x40, 0x09, -0x4f, 0xa2, 0x90, 0xf1, 0xfa, 0x24, 0xb3, 0x4b, 0x3c, 0xa8, 0xd6, 0xb6, 0x3b, 0xf0, 0xe2, 0x2a, -0xfa, 0x85, 0x7a, 0x9e, 0x36, 0x10, 0x1b, 0x4a, 0x3b, 0x74, 0xd2, 0x7b, 0x27, 0x2f, 0xa1, 0xb2, -0xfc, 0x7c, 0x19, 0xa6, 0xb0, 0x6a, 0x26, 0x84, 0x44, 0xca, 0x2b, 0x70, 0x7d, 0xb6, 0x05, 0xc9, -0x3f, 0xe0, 0xd7, 0x67, 0x9b, 0x45, 0x39, 0x10, 0x57, 0xf3, 0x16, 0x1e, 0x84, 0x8d, 0x80, 0x30, -0x4f, 0x0f, 0x99, 0x68, 0x0b, 0x95, 0x7f, 0x30, 0x71, 0xc8, 0xd3, 0x18, 0x46, 0x05, 0xe9, 0x19, -0x31, 0x3d, 0x08, 0x6b, 0x6e, 0x09, 0x09, 0x58, 0xc6, 0x8b, 0x72, 0xbc, 0x62, 0xd5, 0x3c, 0xd5, -0x40, 0x18, 0x07, 0x84, 0x1b, 0xc1, 0x3f, 0x9b, 0x16, 0xf1, 0x56, 0x66, 0xa8, 0xed, 0x91, 0xbe, -0x1a, 0xbe, 0x36, 0x91, 0x71, 0x0d, 0xdc, 0x5d, 0xb5, 0x06, 0xc0, 0x5a, 0x4a, 0x58, 0x3f, 0x66, -0x8c, 0x40, 0x1b, 0xe5, 0xf3, 0xe5, 0x4b, 0x9d, 0xfe, 0xf1, 0x74, 0xdb, 0xcf, 0xe6, 0xe9, 0x27, -0xe0, 0x3f, 0xf6, 0x96, 0xa6, 0x85, 0x66, 0x4b, 0x06, 0x7e, 0x48, 0xde, 0x42, 0x7b, 0xd0, 0x58, -0x9d, 0x98, 0x14, 0xf4, 0x7c, 0x04, 0x23, 0x02, 0xe3, 0x5a, 0x5c, 0xa5, 0x35, 0x1c, 0x34, 0x18, -0x70, 0xbe, 0x32, 0x75, 0xb2, 0x5d, 0x5d, 0x2c, 0x2b, 0x21, 0x6d, 0xa4, 0x9b, 0xfc, 0x55, 0xd3, -0x61, 0x74, 0xf2, 0xed, 0x92, 0x0c, 0x94, 0x8e, 0x44, 0xc0, 0xd5, 0x94, 0x03, 0xc5, 0x7c, 0xf8, -0x74, 0x79, 0x9f, 0x04, 0xf8, 0x6c, 0xa9, 0x15, 0xde, 0x2c, 0x12, 0xf4, 0xe2, 0xf4, 0xbc, 0x8e, -0x3b, 0x6a, 0xd3, 0x09, 0x5c, 0x59, 0x89, 0x40, 0xd9, 0x00, 0x86, 0x8f, 0xee, 0xab, 0x4a, 0xd4, -0xfa, 0x32, 0x39, 0x44, 0xa7, 0xd3, 0x90, 0x68, 0x56, 0xc9, 0xc4, 0xcb, 0xd1, 0x37, 0x95, 0xc2, -0xe6, 0x2f, 0x5f, 0xc3, 0x53, 0x47, 0x36, 0x2f, 0xf9, 0x1a, 0xbe, 0xfd, 0xed, 0x72, 0x65, 0xbc, -0xae, 0xbd, 0x75, 0xb6, 0xed, 0x2c, 0x4b, 0xdc, 0x1a, 0x4b, 0x8d, 0x27, 0x66, 0xa3, 0x54, 0x11, -0xb5, 0xe9, 0x02, 0xd4, 0x50, 0xaf, 0x7a, 0x4d, 0x7c, 0x0f, 0x2b, 0xe1, 0xe5, 0xff, 0xb5, 0xc4, -0xbf, 0x84, 0xd9, 0x54, 0x61, 0x57, 0x65, 0xc9, 0x27, 0x28, 0x3e, 0xae, 0xb0, 0x11, 0xb7, 0xad, -0x10, 0x47, 0xc5, 0xcb, 0x6d, 0x88, 0x3b, 0xc9, 0x2b, 0x50, 0xb4, 0x13, 0xde, 0xc2, 0x9a, 0x2a, -0x1e, 0x6b, 0x5a, 0x4f, 0xa6, 0xa8, 0x73, 0x09, 0xaf, 0x5f, 0xae, 0xc0, 0x71, 0x21, 0xf2, 0xa0, -0xfb, 0x1e, 0xee, 0x10, 0xa2, 0xa2, 0xc7, 0x00, 0x32, 0x05, 0x42, 0xcc, 0x01, 0x98, 0xdf, 0xa7, -0x1c, 0xe6, 0xd0, 0x0a, 0x65, 0x9c, 0xbe, 0x07, 0x50, 0xf2, 0xf9, 0x64, 0x0e, 0xac, 0x15, 0x28, -0x47, 0xe5, 0x39, 0xb0, 0x89, 0x0b, 0x4c, 0x5e, 0xa6, 0x89, 0x83, 0x35, 0xb0, 0x1a, 0x75, 0x18, -0xc9, 0x7c, 0xe1, 0x0b, 0xea, 0x78, 0xc6, 0x33, 0x3d, 0xc8, 0x1c, 0xa4, 0x1d, 0x4b, 0xdc, 0xa9, -0x5e, 0xf4, 0xe4, 0x2c, 0xaf, 0x09, 0x12, 0x5a, 0x26, 0x15, 0xeb, 0x57, 0xe2, 0x09, 0xef, 0xe4, -0x13, 0xbc, 0xe9, 0xb3, 0x3f, 0x8b, 0xfe, 0x5c, 0xe2, 0x95, 0x1a, 0x32, 0x7f, 0x82, 0xe7, 0xc7, -0xd3, 0x80, 0xc6, 0x1a, 0x5b, 0x33, 0xcd, 0x46, 0xc4, 0xc7, 0xd8, 0x50, 0x0c, 0x07, 0x77, 0xfb, -0x18, 0xe0, 0x32, 0x61, 0x1e, 0x76, 0x20, 0xcb, 0x84, 0x52, 0x64, 0x93, 0xd9, 0x34, 0x2f, 0x78, -0x87, 0x7e, 0x0f, 0x34, 0xf1, 0x90, 0x86, 0xce, 0x29, 0x57, 0x77, 0x83, 0xa7, 0x13, 0x29, 0xfd, -0xd4, 0xf8, 0x88, 0xb8, 0x8b, 0x84, 0x72, 0xba, 0x0d, 0x6c, 0x6a, 0x1e, 0xda, 0xaa, 0x06, 0xd3, -0x85, 0x2f, 0xee, 0xc9, 0xcb, 0xd4, 0x52, 0xe9, 0x0c, 0x18, 0x13, 0xb3, 0xa9, 0x7d, 0xda, 0xf5, -0xa4, 0x5a, 0xef, 0xa6, 0x8c, 0x87, 0xf8, 0xd3, 0x85, 0x5c, 0x97, 0x15, 0xdf, 0xd1, 0xc4, 0xd7, -0xad, 0x27, 0x54, 0xe7, 0x1f, 0xf7, 0x91, 0xb2, 0xfc, 0x7a, 0xa0, 0x14, 0x99, 0x94, 0xbc, 0x46, -0xa5, 0xc9, 0xa4, 0xdc, 0x0d, 0x56, 0x41, 0xdf, 0x78, 0x08, 0x6f, 0x3c, 0xb8, 0x1b, 0xca, 0x78, -0x4d, 0x0f, 0x32, 0x1b, 0xfa, 0x7d, 0x3a, 0x8c, 0x4d, 0xdd, 0xd2, 0x03, 0x09, 0xd7, 0xb8, 0x1b, -0x9a, 0x38, 0x61, 0x7c, 0xe7, 0x17, 0x7b, 0x32, 0xf1, 0x35, 0x6b, 0xc8, 0x1c, 0x58, 0xcf, 0x4e, -0x62, 0x89, 0x60, 0x7d, 0xd2, 0x38, 0xf3, 0xdb, 0xf6, 0x60, 0x3d, 0x6d, 0xd3, 0xd9, 0x54, 0xae, -0x65, 0x26, 0x84, 0x89, 0x86, 0x3a, 0x6f, 0xd0, 0xc4, 0x77, 0xc3, 0xda, 0x69, 0xc8, 0x32, 0x26, -0x0e, 0x42, 0x57, 0x5b, 0x72, 0x9c, 0x2d, 0xa3, 0x41, 0x6d, 0x39, 0xd6, 0x1f, 0x53, 0xd2, 0xc4, -0x43, 0xbf, 0x39, 0xde, 0x43, 0xef, 0xf4, 0xc9, 0x27, 0x95, 0xd4, 0x4e, 0xb0, 0x02, 0xd2, 0x58, -0x02, 0x78, 0x28, 0x68, 0xcb, 0x55, 0x32, 0xc5, 0x16, 0x09, 0xd4, 0xe4, 0x1c, 0xda, 0x37, 0x0a, -0xec, 0x1b, 0xbb, 0x97, 0xb0, 0xc7, 0xcf, 0xb0, 0x0a, 0x5a, 0xb2, 0xf9, 0xb6, 0x4e, 0x3d, 0xb3, -0x31, 0x26, 0xeb, 0x5b, 0x2c, 0xa9, 0x81, 0x91, 0x81, 0x94, 0xbf, 0xd9, 0xc8, 0x4a, 0x79, 0x5a, -0x41, 0x19, 0x6f, 0x5a, 0x4b, 0xa6, 0xe0, 0xca, 0x20, 0x82, 0xd5, 0x58, 0xe4, 0xa7, 0x89, 0x87, -0x75, 0x66, 0x8a, 0xe0, 0xb7, 0x2e, 0x94, 0xfa, 0x92, 0xf0, 0xc5, 0x95, 0x17, 0xfa, 0x17, 0xe2, -0x42, 0x0d, 0x3a, 0x01, 0x55, 0xbb, 0xc2, 0xee, 0x95, 0x66, 0xec, 0x63, 0x24, 0x2b, 0x60, 0x1d, -0xbc, 0x68, 0xd5, 0x10, 0x9f, 0x7c, 0x42, 0x4e, 0x63, 0xbb, 0xf0, 0xbd, 0x09, 0x38, 0x85, 0xa7, -0xf9, 0xf3, 0xc9, 0x6b, 0xdc, 0x0d, 0xbe, 0x47, 0x81, 0xa2, 0x46, 0xd9, 0x1c, 0xa1, 0x0d, 0x5b, -0xda, 0xcf, 0xd9, 0x8b, 0xb3, 0x5d, 0xdb, 0xed, 0x7e, 0xa9, 0xb3, 0xdd, 0x82, 0x6a, 0x66, 0xd8, -0x27, 0x97, 0x28, 0xba, 0xc5, 0x90, 0xf4, 0xa7, 0x8d, 0x24, 0xa3, 0x1b, 0xf4, 0x03, 0x19, 0x81, -0x54, 0xa4, 0x0a, 0xca, 0xc9, 0xcb, 0x15, 0x93, 0xd9, 0x32, 0x2d, 0x2d, 0x67, 0x39, 0xcd, 0xc5, -0xd9, 0x1e, 0xd4, 0x72, 0x67, 0x85, 0x5d, 0x46, 0xc7, 0x30, 0xcb, 0x86, 0x0b, 0xed, 0xa1, 0x73, -0x19, 0x8f, 0x5e, 0x90, 0xeb, 0x32, 0xf4, 0x52, 0x00, 0xf5, 0xd6, 0xf1, 0xfd, 0x84, 0x6d, 0x08, -0xb3, 0x73, 0x04, 0xd4, 0x2f, 0x83, 0xd5, 0x2a, 0x4d, 0x54, 0xfe, 0x69, 0x09, 0xe0, 0xb6, 0x2e, -0xad, 0xe7, 0x30, 0x63, 0x02, 0xce, 0x37, 0xb2, 0x27, 0xee, 0x69, 0x51, 0x5d, 0x29, 0x58, 0xef, -0xae, 0x8d, 0x28, 0xe7, 0x0e, 0x51, 0xdd, 0x88, 0xe8, 0x87, 0x64, 0xd3, 0x89, 0xad, 0x96, 0x3d, -0x87, 0x7a, 0x21, 0x06, 0xc0, 0x60, 0xaa, 0x64, 0xfd, 0x00, 0xe2, 0x3f, 0x81, 0x58, 0xa7, 0xdb, -0x0d, 0xc8, 0xbf, 0xd8, 0x3a, 0xb1, 0x1a, 0xc6, 0xa8, 0x44, 0x7b, 0x29, 0xa8, 0x95, 0xc3, 0xf3, -0x95, 0x25, 0x80, 0xd3, 0xc4, 0xa9, 0x33, 0x62, 0x80, 0x36, 0x85, 0x37, 0xb8, 0x8e, 0xd5, 0x01, -0xe5, 0x76, 0x9a, 0x71, 0x03, 0x8c, 0x26, 0x47, 0x9d, 0x0f, 0xc4, 0xc3, 0x91, 0x62, 0x8d, 0x4c, -0xed, 0xcb, 0x06, 0xf2, 0x12, 0x72, 0xdc, 0x6b, 0x10, 0xa2, 0x8b, 0x8b, 0xd4, 0xf6, 0x6c, 0x17, -0x1f, 0x71, 0x73, 0xa1, 0x0c, 0xa7, 0x59, 0xb1, 0x8a, 0xae, 0xcc, 0xc6, 0x20, 0x07, 0xee, 0xa5, -0x9a, 0xbd, 0xa1, 0xaa, 0x1c, 0xc2, 0x6b, 0x84, 0x29, 0xe4, 0xeb, 0x08, 0x61, 0x08, 0xf1, 0xb7, -0x49, 0x7b, 0xe5, 0x90, 0x40, 0x12, 0x68, 0xcd, 0x01, 0x7c, 0xa6, 0x28, 0x8e, 0x76, 0x59, 0x4b, -0x28, 0x5e, 0x15, 0xb8, 0xbe, 0x71, 0x7c, 0x3a, 0x34, 0x15, 0xb4, 0xf0, 0xb1, 0x04, 0x29, 0x01, -0xa5, 0xb1, 0xa5, 0x04, 0x18, 0x0a, 0xeb, 0x1d, 0x09, 0xab, 0xbf, 0xca, 0x53, 0xeb, 0x58, 0x03, -0xe7, 0x08, 0x56, 0x4a, 0x5a, 0x56, 0x3b, 0x06, 0xb1, 0x31, 0xac, 0x37, 0x52, 0x5a, 0x0e, 0x2f, -0x58, 0x79, 0x4d, 0x38, 0x42, 0xd8, 0x51, 0xca, 0x01, 0xb8, 0x12, 0xb3, 0x43, 0x27, 0x30, 0x27, -0x17, 0x30, 0xb1, 0xcc, 0xcb, 0x26, 0x33, 0xcb, 0x30, 0x46, 0x79, 0x15, 0x4a, 0xdd, 0xd8, 0x02, -0x80, 0x26, 0x92, 0xd8, 0x65, 0x24, 0x1f, 0xfd, 0x04, 0xb2, 0x52, 0x71, 0x3e, 0xfa, 0xe6, 0x2e, -0x13, 0x51, 0x39, 0x43, 0x47, 0x9b, 0x1d, 0xb3, 0x9a, 0xed, 0x81, 0xce, 0x94, 0x7d, 0x31, 0xe5, -0x62, 0x11, 0x7c, 0x47, 0xdc, 0x9f, 0x82, 0xd6, 0x53, 0xb0, 0x35, 0x29, 0xef, 0x2a, 0x03, 0x1a, -0xde, 0x02, 0x6b, 0x73, 0x7d, 0xe7, 0x63, 0x6c, 0x27, 0xeb, 0xfb, 0x24, 0xc8, 0xee, 0x87, 0x6d, -0x84, 0x16, 0x45, 0x78, 0x9d, 0x1c, 0x98, 0x29, 0x2a, 0x75, 0x1a, 0xed, 0xb3, 0x8b, 0xc2, 0x17, -0x1c, 0x0f, 0xf5, 0x81, 0xa3, 0xf8, 0xaf, 0xc2, 0xec, 0x12, 0xa3, 0xb4, 0xbc, 0x63, 0x7d, 0xc3, -0x75, 0x05, 0x68, 0x95, 0x16, 0x3d, 0xec, 0x73, 0xc2, 0xaa, 0xb2, 0x0f, 0x68, 0xa2, 0xbe, 0x6a, -0x8b, 0xd6, 0x53, 0x93, 0x8c, 0xb2, 0x8e, 0x6a, 0xdc, 0x5d, 0x76, 0x48, 0x9f, 0xee, 0x73, 0xf2, -0xcd, 0x32, 0x12, 0x45, 0x39, 0xca, 0x43, 0xf4, 0xbe, 0x27, 0x95, 0x0a, 0x95, 0x91, 0x58, 0xee, -0x34, 0x9d, 0x59, 0xe7, 0xe8, 0x53, 0x0c, 0xe5, 0x8d, 0x65, 0xc4, 0x44, 0x79, 0x63, 0x19, 0x09, -0xe3, 0x79, 0x63, 0x4a, 0x35, 0xfb, 0xeb, 0x43, 0xc9, 0x72, 0x28, 0x29, 0xce, 0xad, 0x9e, 0x80, -0xff, 0x8b, 0x93, 0x97, 0x21, 0x6f, 0x09, 0x33, 0xcf, 0xf1, 0x36, 0x96, 0xbe, 0x39, 0xe7, 0xf2, -0x26, 0x86, 0xbe, 0xa9, 0xa7, 0xfa, 0xf7, 0xeb, 0x9d, 0x6f, 0x4d, 0xf4, 0xed, 0x55, 0xa7, 0xe7, -0xd1, 0x50, 0x4a, 0x69, 0x85, 0x31, 0x56, 0x98, 0xcd, 0x0e, 0x2a, 0xb0, 0x93, 0x4b, 0x2a, 0x61, -0xc9, 0xdb, 0x38, 0xe4, 0xb9, 0x1b, 0x79, 0x3f, 0x56, 0xa8, 0xd7, 0x56, 0x4a, 0x34, 0xbc, 0x47, -0xbd, 0x12, 0xb4, 0x69, 0x53, 0xc3, 0x4b, 0xf1, 0x43, 0xdd, 0x94, 0x71, 0x71, 0xd7, 0xb8, 0x7d, -0xa8, 0x8b, 0x0d, 0x3c, 0xb8, 0xd1, 0x3e, 0xaa, 0xb7, 0x89, 0x48, 0x4c, 0x79, 0x44, 0x8a, 0xb6, -0x84, 0xf4, 0x5e, 0x68, 0x09, 0x37, 0x63, 0x41, 0x58, 0x39, 0x49, 0x67, 0xe2, 0x8e, 0xd7, 0xd1, -0xfc, 0x56, 0x21, 0x15, 0xaa, 0x8c, 0x63, 0x06, 0xfb, 0xa1, 0x2f, 0xbc, 0x69, 0xc7, 0x62, 0x8e, -0x19, 0x7b, 0xc7, 0xc0, 0xfa, 0x1d, 0xdb, 0x3b, 0x9b, 0xf8, 0x13, 0x2f, 0x66, 0x30, 0x6f, 0x4f, -0xc7, 0x60, 0x44, 0xfe, 0x45, 0x41, 0x4e, 0x54, 0x0a, 0xbd, 0x56, 0x89, 0x7b, 0x55, 0xd0, 0x3b, -0xd7, 0x46, 0x44, 0x71, 0x6b, 0xa8, 0x0d, 0xc4, 0xbf, 0xb0, 0x6d, 0x23, 0x68, 0x38, 0x6c, 0x72, -0xbe, 0x91, 0xd3, 0x71, 0xee, 0xd5, 0x42, 0x97, 0x08, 0x3d, 0xb9, 0x44, 0xd0, 0x16, 0x97, 0x23, -0xaf, 0xaf, 0xd5, 0x50, 0x7f, 0x71, 0x32, 0x62, 0x2c, 0x41, 0x0d, 0x04, 0x05, 0x6a, 0x07, 0x09, -0x74, 0xf6, 0x39, 0x95, 0x8e, 0xc8, 0x70, 0xdd, 0x26, 0xbc, 0xfd, 0x37, 0xe8, 0xe3, 0xa7, 0x49, -0xca, 0x02, 0x35, 0x69, 0xd1, 0x40, 0x50, 0xa1, 0xad, 0x18, 0x39, 0x6d, 0x99, 0x70, 0x21, 0x26, -0xd6, 0x75, 0x2b, 0xd5, 0x76, 0x27, 0x62, 0x35, 0x7e, 0xd5, 0x28, 0xfa, 0xe1, 0x7e, 0x42, 0x75, -0xe7, 0x6c, 0x58, 0xb3, 0x5e, 0x83, 0x5f, 0x0f, 0xee, 0xf5, 0x7e, 0x80, 0x89, 0xb8, 0x65, 0x30, -0x33, 0xe2, 0xd4, 0xd9, 0x44, 0xa6, 0x09, 0x26, 0x5e, 0xfd, 0xf2, 0x88, 0x3f, 0x84, 0xc9, 0x23, -0x01, 0x10, 0x26, 0x8f, 0x74, 0xe4, 0x5e, 0x37, 0x15, 0x70, 0xcb, 0xac, 0x33, 0x61, 0x4c, 0x5c, -0xa4, 0x72, 0x8b, 0x34, 0xbf, 0x28, 0x62, 0x10, 0x4b, 0x8d, 0x24, 0xaa, 0x2e, 0xde, 0x52, 0xdb, -0x1a, 0x6b, 0xf1, 0x74, 0x95, 0x2d, 0xc8, 0x0a, 0xb1, 0x20, 0xce, 0x7a, 0xd4, 0x86, 0x87, 0xde, -0x5d, 0x85, 0xfe, 0xb6, 0x9a, 0x2f, 0x52, 0xbf, 0x62, 0xd5, 0xd1, 0x52, 0xcb, 0x57, 0xe5, 0x91, -0xe7, 0x2a, 0x18, 0x33, 0x60, 0x6c, 0x0f, 0x67, 0xcc, 0xaa, 0xa7, 0xe2, 0x89, 0xa6, 0x57, 0x01, -0x57, 0x4d, 0x74, 0x1d, 0x0a, 0xb8, 0xd7, 0x48, 0x28, 0xfc, 0xbe, 0x4e, 0xf4, 0xd0, 0x5f, 0x30, -0xce, 0xa9, 0x1d, 0xdb, 0x0e, 0x76, 0x49, 0xb1, 0x02, 0x56, 0x20, 0x89, 0x7f, 0x8d, 0x4c, 0xc4, -0xbf, 0xef, 0x90, 0x4d, 0xda, 0x01, 0xb7, 0xa2, 0x25, 0x62, 0x13, 0x50, 0x81, 0x00, 0xd2, 0x98, -0x9f, 0x89, 0xe6, 0x29, 0x0b, 0x91, 0x41, 0xcf, 0xf7, 0x39, 0xfe, 0x95, 0x75, 0x86, 0x4d, 0x13, -0x7b, 0xab, 0x9a, 0x3c, 0x95, 0x48, 0xe4, 0xa6, 0x75, 0x30, 0xdb, 0x4c, 0xe8, 0x15, 0x15, 0xda, -0x43, 0x86, 0xba, 0x42, 0x2d, 0x79, 0xc3, 0xea, 0x70, 0x25, 0x52, 0x9c, 0x66, 0x0e, 0x77, 0x5b, -0x92, 0x4f, 0xbc, 0x1c, 0x31, 0x20, 0xb4, 0xdf, 0xc3, 0x61, 0x37, 0x9b, 0xed, 0x41, 0x48, 0xdd, -0x47, 0x99, 0x98, 0xd8, 0xd4, 0x4a, 0x58, 0x9d, 0xe4, 0xc7, 0x0f, 0x57, 0xcd, 0x6f, 0xf9, 0x1e, -0x8b, 0x3a, 0x42, 0x89, 0x44, 0x01, 0xf3, 0xd2, 0x5f, 0xef, 0x65, 0xc9, 0x05, 0xaa, 0x90, 0x62, -0x7f, 0x28, 0x99, 0x01, 0x75, 0x87, 0x0c, 0xe6, 0xd4, 0xca, 0xa3, 0x3f, 0x13, 0x39, 0xdc, 0x33, -0x50, 0x26, 0xd5, 0x53, 0xb9, 0xb0, 0xae, 0x1b, 0xe0, 0x57, 0x47, 0xc2, 0x89, 0x16, 0x5a, 0x93, -0xda, 0x91, 0xb4, 0x9a, 0x6c, 0x52, 0xa8, 0x4f, 0x20, 0x6b, 0x8a, 0xbd, 0xc6, 0x2d, 0x47, 0x1d, -0x19, 0x5d, 0x36, 0xed, 0xd5, 0xbe, 0xd8, 0xc3, 0xb0, 0x1a, 0x41, 0x9b, 0xc2, 0x9c, 0x5f, 0x0e, -0xab, 0x7f, 0x09, 0x96, 0x8f, 0x86, 0xca, 0xa7, 0x5a, 0x58, 0x32, 0xc7, 0x58, 0xef, 0x65, 0x24, -0xbc, 0x46, 0x6b, 0x2e, 0x61, 0x94, 0xb1, 0x8a, 0xb5, 0x44, 0x44, 0xfb, 0x45, 0xe1, 0xda, 0x2b, -0x0f, 0xac, 0xc0, 0x1b, 0x78, 0x09, 0x1a, 0x53, 0xf7, 0xb9, 0x7c, 0x1c, 0xdf, 0x14, 0xaf, 0xa1, -0x9c, 0x6b, 0x11, 0x70, 0x8a, 0x68, 0xa5, 0xab, 0x88, 0x68, 0xe8, 0x2e, 0x57, 0x14, 0xf3, 0x3e, -0x70, 0x52, 0x90, 0x0b, 0xac, 0x2e, 0xfc, 0x08, 0x23, 0x76, 0x2d, 0xee, 0x52, 0xc2, 0xc8, 0x84, -0xb4, 0xee, 0x37, 0xe0, 0x37, 0x94, 0xcd, 0x25, 0x52, 0xe5, 0x80, 0x12, 0x4e, 0x08, 0xf5, 0x2e, -0x9d, 0xcb, 0x52, 0x53, 0x95, 0x3a, 0x98, 0x84, 0x97, 0xc2, 0xd2, 0x44, 0xc4, 0x25, 0xc4, 0x4f, -0x47, 0x44, 0x10, 0xd2, 0x5f, 0x39, 0x80, 0x0f, 0x75, 0x7f, 0x3a, 0xae, 0x52, 0x88, 0xff, 0xa8, -0x0e, 0x5e, 0x11, 0x6f, 0x03, 0x0a, 0xd8, 0x77, 0x7f, 0xc0, 0x85, 0x81, 0x76, 0xa5, 0x90, 0x8b, -0x08, 0x72, 0x99, 0x4e, 0xbd, 0xb0, 0x41, 0x2c, 0xa2, 0xd0, 0x9b, 0x88, 0x5c, 0xf5, 0xa4, 0xea, -0x39, 0x96, 0xdc, 0x9f, 0x8e, 0xd7, 0x16, 0x6b, 0xcf, 0x9a, 0x10, 0xaa, 0x55, 0x24, 0xd7, 0x22, -0x9f, 0x14, 0x0c, 0x7d, 0xa3, 0xb7, 0x07, 0xc0, 0xe8, 0x36, 0x70, 0xbf, 0xc2, 0x6f, 0x18, 0xd7, -0x10, 0x0e, 0x65, 0x89, 0x0a, 0x26, 0x11, 0xac, 0x7f, 0x3f, 0xf4, 0x7c, 0x8e, 0x6f, 0xa5, 0xf4, -0xad, 0x0c, 0xde, 0x7a, 0x41, 0x49, 0x3b, 0xc1, 0xf8, 0x7d, 0x8b, 0x97, 0xe9, 0x05, 0x3e, 0x4b, -0x6e, 0x0b, 0x85, 0x5f, 0x1f, 0x5b, 0x3a, 0xb5, 0x25, 0x24, 0xa7, 0x76, 0xa2, 0xa9, 0x8d, 0x28, -0x18, 0xd7, 0xc7, 0x42, 0xa9, 0xa5, 0x04, 0x08, 0x3f, 0x81, 0xe2, 0xb8, 0x30, 0x35, 0xb4, 0xe7, -0x14, 0xd2, 0x62, 0x79, 0x0b, 0xf0, 0xd9, 0xcf, 0x30, 0x5e, 0x63, 0xe3, 0x90, 0x0e, 0x34, 0xf3, -0xbd, 0xf3, 0x20, 0x39, 0x0c, 0x28, 0x58, 0x43, 0x08, 0x77, 0x8b, 0xf5, 0x9f, 0x42, 0xd0, 0x9a, -0x51, 0x18, 0xcc, 0x4f, 0x94, 0xc2, 0x9f, 0x40, 0x00, 0xeb, 0xfd, 0x6c, 0x28, 0xe0, 0x7e, 0x2d, -0x71, 0xdb, 0xf4, 0x01, 0xae, 0xaa, 0x89, 0x37, 0x18, 0x77, 0x76, 0x72, 0x89, 0x84, 0x3e, 0xa9, -0x22, 0x4d, 0x25, 0x24, 0xcc, 0xf3, 0xd5, 0x5d, 0x2a, 0x79, 0xae, 0x38, 0x75, 0xfa, 0xa5, 0xe9, -0x89, 0x37, 0x34, 0x24, 0xbc, 0x80, 0x6b, 0xe0, 0xed, 0x86, 0x2c, 0xad, 0x1d, 0x32, 0x87, 0x2d, -0xc4, 0x10, 0xca, 0x18, 0xa0, 0xc9, 0x31, 0x06, 0x13, 0x69, 0x7a, 0x75, 0xbf, 0x6b, 0x68, 0x43, -0x3c, 0xe4, 0xdb, 0x40, 0xbd, 0x68, 0xde, 0x08, 0x74, 0x63, 0x51, 0xeb, 0x06, 0xc3, 0xf9, 0xb5, -0x0d, 0xc7, 0x4a, 0x17, 0xee, 0x4f, 0x6c, 0xe0, 0xee, 0x1b, 0xe2, 0xf9, 0xb4, 0x17, 0xd6, 0xea, -0x64, 0xbc, 0x4e, 0x8e, 0x23, 0x3e, 0x13, 0x0f, 0x29, 0x88, 0x5a, 0x5a, 0xc9, 0x1e, 0xa9, 0x8c, -0x2b, 0x16, 0xa1, 0xfc, 0x3e, 0x50, 0x11, 0xd9, 0x7c, 0xbf, 0x2a, 0xe3, 0x0c, 0x72, 0xe0, 0x85, -0xbd, 0x2c, 0xbb, 0x54, 0x66, 0x61, 0x44, 0x28, 0xb0, 0x35, 0x98, 0x10, 0xee, 0x67, 0xe1, 0x79, -0x0f, 0x8b, 0xf6, 0x9d, 0x3a, 0xd1, 0x38, 0xd5, 0x4c, 0x1c, 0xb6, 0x34, 0xac, 0xe6, 0x72, 0xa5, -0x17, 0x7c, 0x9b, 0xcf, 0x76, 0x12, 0xee, 0x34, 0xd4, 0x56, 0xad, 0x07, 0xdf, 0xea, 0x0f, 0xce, -0x0a, 0xfa, 0xfb, 0x3c, 0x66, 0x16, 0x6c, 0x50, 0x53, 0x2d, 0x5a, 0x1c, 0xbb, 0x1a, 0x18, 0xbb, -0xc6, 0x08, 0x3d, 0x09, 0x0d, 0xd7, 0x93, 0xb0, 0x48, 0x3d, 0x89, 0xe8, 0xab, 0x27, 0x7d, 0x23, -0x8b, 0x48, 0x74, 0xff, 0xf2, 0xca, 0x4a, 0xc2, 0xf4, 0x2f, 0x57, 0x2a, 0x89, 0x92, 0x5a, 0x53, -0xca, 0xc3, 0x12, 0x34, 0xaf, 0x80, 0x3c, 0xac, 0xc2, 0xfd, 0xba, 0x62, 0xa6, 0x6e, 0x01, 0x70, -0x83, 0x82, 0xe5, 0x56, 0xa5, 0xd5, 0xe0, 0x06, 0xe5, 0x17, 0x5b, 0x76, 0x85, 0x4b, 0x2c, 0xbb, -0x23, 0xdc, 0x2d, 0x5f, 0x08, 0xe1, 0x0e, 0x3b, 0x6c, 0xb0, 0xc2, 0xb8, 0xa5, 0x1a, 0xb5, 0xad, -0xe4, 0xf3, 0xa6, 0xfc, 0xb9, 0xe5, 0x94, 0x16, 0xbe, 0x51, 0x58, 0x3f, 0x2e, 0xb5, 0xbc, 0x85, -0x51, 0x2f, 0x67, 0x9c, 0xdc, 0x24, 0xbf, 0xee, 0xbb, 0xa6, 0xcb, 0xd5, 0x39, 0xce, 0x1e, 0x30, -0xfe, 0xe2, 0xfd, 0xaa, 0x16, 0xce, 0x73, 0x26, 0x4f, 0x5f, 0xf1, 0xe7, 0x02, 0x4c, 0xa4, 0x0a, -0x6d, 0x15, 0xe8, 0x89, 0x31, 0xe1, 0x3a, 0xc5, 0x45, 0x0c, 0x9e, 0xcc, 0x1c, 0x8c, 0xe4, 0x29, -0xed, 0x5e, 0xf5, 0x78, 0x9e, 0xa0, 0x17, 0x03, 0xe5, 0x1d, 0x85, 0x34, 0x51, 0x62, 0x13, 0x37, -0x3d, 0x79, 0x89, 0xde, 0x48, 0x0c, 0xad, 0xde, 0x77, 0xa0, 0xef, 0x2c, 0xfa, 0x22, 0x32, 0x96, -0xf2, 0x11, 0x9a, 0xd0, 0x75, 0xc0, 0xaf, 0x78, 0x43, 0x18, 0x25, 0xac, 0xd3, 0xe5, 0xc2, 0xf9, -0x8e, 0x8c, 0x31, 0x52, 0x9f, 0xcb, 0xa8, 0x59, 0x2c, 0xe1, 0xcf, 0x11, 0x78, 0xad, 0x04, 0x26, -0x0a, 0xca, 0x60, 0x50, 0xf3, 0xe5, 0x88, 0x1a, 0x00, 0x54, 0x29, 0x94, 0x23, 0x90, 0x96, 0x23, -0x83, 0xfa, 0x50, 0x7c, 0x44, 0x39, 0x9a, 0x9b, 0x68, 0x9e, 0xe1, 0x2e, 0xef, 0x65, 0x80, 0x57, -0xf1, 0x5d, 0x12, 0x50, 0xc0, 0xe9, 0x42, 0x29, 0x5a, 0xbe, 0x99, 0x05, 0x2a, 0xab, 0xc2, 0x86, -0xde, 0x29, 0xd0, 0xb7, 0xaa, 0x3f, 0x7a, 0xa9, 0x80, 0x6b, 0x10, 0x95, 0xe6, 0xf3, 0x81, 0xdf, -0x68, 0x98, 0xa5, 0x87, 0x1f, 0x2e, 0x6d, 0x94, 0x84, 0x97, 0xeb, 0x87, 0xd2, 0xd6, 0x01, 0xce, -0xc3, 0x16, 0xb3, 0xa0, 0xfe, 0x04, 0x94, 0x36, 0x23, 0x91, 0x2f, 0xad, 0x81, 0x96, 0xb6, 0x98, -0xda, 0x28, 0x7b, 0xa8, 0xb4, 0x09, 0x4d, 0xcd, 0x49, 0xc9, 0x8b, 0x1f, 0x2a, 0xad, 0x2f, 0x7d, -0x97, 0xf4, 0x50, 0x49, 0xdb, 0xd1, 0xf7, 0x91, 0xb4, 0xb4, 0x33, 0xec, 0x52, 0x7d, 0x2c, 0x89, -0x44, 0x6d, 0x55, 0x1a, 0xbf, 0x88, 0xa0, 0xc5, 0x7c, 0x2c, 0xaf, 0x1c, 0x7e, 0x4d, 0x50, 0xde, -0x2e, 0x8f, 0x68, 0x5d, 0xb4, 0xbb, 0x6f, 0xa0, 0x38, 0xae, 0x96, 0x5a, 0x58, 0x68, 0xb1, 0x35, -0xe3, 0xaf, 0x0a, 0x81, 0x96, 0x2d, 0x23, 0x46, 0x5a, 0xde, 0x55, 0x80, 0x9f, 0x6a, 0x85, 0x12, -0x07, 0xb7, 0x6e, 0xdf, 0x07, 0xaf, 0x25, 0x2f, 0x41, 0x6b, 0x33, 0x2e, 0xef, 0x65, 0xc4, 0x33, -0x79, 0x09, 0x6f, 0x3d, 0x92, 0xee, 0x66, 0xea, 0xf0, 0xb4, 0xa2, 0xd5, 0x77, 0x2f, 0x1a, 0xe7, -0x04, 0xff, 0x8e, 0x6a, 0xd3, 0xe0, 0xdb, 0x67, 0xe8, 0xdb, 0x73, 0xd4, 0xfa, 0xd1, 0xfb, 0x2e, -0xa1, 0xe3, 0x1c, 0x3d, 0x62, 0x97, 0x05, 0x03, 0xcf, 0xc9, 0xd5, 0x43, 0x2d, 0xdb, 0xc3, 0x7c, -0xf2, 0x2f, 0x7e, 0xb2, 0x76, 0x1d, 0xd1, 0x51, 0x39, 0x3c, 0x7f, 0x9e, 0x82, 0xb7, 0x0b, 0x92, -0x58, 0x36, 0xbf, 0x62, 0x31, 0xeb, 0x55, 0x22, 0x09, 0x8e, 0xe1, 0xae, 0xb2, 0xfc, 0x49, 0xc6, -0x55, 0x6c, 0x23, 0xb4, 0x10, 0xc4, 0x4a, 0xa9, 0x67, 0xf7, 0x1b, 0xc1, 0x56, 0x98, 0xfd, 0xb4, -0x04, 0x34, 0x97, 0x04, 0x58, 0x09, 0xb6, 0x0a, 0x6d, 0x64, 0xa4, 0x9a, 0xc3, 0x12, 0x2a, 0x9d, -0xc2, 0x64, 0x79, 0x09, 0x72, 0x29, 0x5a, 0x56, 0x41, 0xf3, 0xf2, 0x43, 0x9b, 0xa9, 0xf0, 0xdc, -0x89, 0x55, 0x40, 0x2e, 0xd2, 0x12, 0x37, 0xd6, 0xab, 0x58, 0x02, 0xe5, 0xd1, 0xb1, 0x9d, 0x4a, -0xdc, 0x9f, 0x8a, 0x81, 0xab, 0x1f, 0xb4, 0xb9, 0x8a, 0xce, 0x8c, 0xcb, 0x37, 0x0f, 0xe1, 0x9a, -0x9c, 0xb2, 0xc0, 0xba, 0xc2, 0x86, 0xb9, 0x55, 0x63, 0x4b, 0xc2, 0x35, 0x1e, 0x72, 0x9b, 0x2b, -0xe4, 0x26, 0x77, 0xf4, 0x88, 0x53, 0xcf, 0x78, 0x8d, 0xa0, 0xd7, 0x5d, 0x43, 0xe7, 0x5d, 0x01, -0xa5, 0xc9, 0x53, 0x68, 0x4f, 0x5c, 0x84, 0xf8, 0x35, 0x7c, 0x4f, 0x60, 0xec, 0xc4, 0x6b, 0xc4, -0x3f, 0xa1, 0xe9, 0xbe, 0xa1, 0x54, 0xc4, 0x96, 0x01, 0xf7, 0x86, 0x54, 0x1f, 0x5a, 0x07, 0x91, -0x11, 0x3f, 0x5e, 0xce, 0x10, 0xb5, 0x01, 0xec, 0xa1, 0x99, 0x68, 0xf3, 0x03, 0x39, 0x95, 0x74, -0x36, 0x88, 0xbe, 0xf3, 0xb7, 0xf7, 0xcd, 0x0a, 0xa3, 0x77, 0xf1, 0xf6, 0x08, 0x7a, 0x4d, 0xb5, -0x45, 0xb2, 0x61, 0xd0, 0x2a, 0x3b, 0x58, 0x03, 0xfc, 0xee, 0x61, 0xc4, 0x97, 0xd7, 0x60, 0x9b, -0xb1, 0x4a, 0x78, 0x3a, 0xc4, 0x06, 0xa1, 0xed, 0x20, 0x36, 0x00, 0x7e, 0xcf, 0xb1, 0x0a, 0xf8, -0xad, 0x67, 0xbd, 0x68, 0xcb, 0x62, 0xfb, 0x36, 0xd2, 0xb1, 0x2a, 0x47, 0x8f, 0x0b, 0xd4, 0xaa, -0xc7, 0x64, 0xaa, 0x37, 0x77, 0x9f, 0x9e, 0xdf, 0x42, 0x59, 0xe1, 0x6a, 0x4d, 0xde, 0xf6, 0xc7, -0xaa, 0x87, 0x46, 0xdf, 0xb5, 0x20, 0x09, 0xb7, 0x4a, 0xa8, 0xe7, 0x1a, 0x3a, 0x5b, 0x70, 0xf4, -0x85, 0xd0, 0x59, 0x92, 0x81, 0x75, 0x3d, 0x64, 0x70, 0x9c, 0xdd, 0xf1, 0x75, 0x35, 0xc5, 0x42, -0x6d, 0x03, 0x13, 0x9a, 0xfe, 0x30, 0xb1, 0xb9, 0xad, 0xea, 0x6a, 0xb1, 0x5b, 0x33, 0x3b, 0xd1, -0x3b, 0xb9, 0x5d, 0x47, 0xaf, 0x7d, 0xec, 0x7c, 0xed, 0xbc, 0x6d, 0x46, 0x96, 0x6f, 0x05, 0xab, -0x3d, 0x0c, 0x65, 0x89, 0x50, 0xeb, 0xc0, 0xa6, 0x63, 0xe5, 0x50, 0xee, 0xf5, 0xac, 0x0a, 0x7e, -0x37, 0xb3, 0x5d, 0xb0, 0xd6, 0x13, 0x44, 0xb4, 0x76, 0x7b, 0x68, 0xed, 0x0e, 0xd1, 0xda, 0x9d, -0xa0, 0xb5, 0x3b, 0xd7, 0xaa, 0x76, 0x95, 0xd6, 0x58, 0x9b, 0x34, 0xb8, 0x80, 0xdb, 0xc3, 0xed, -0x00, 0xbe, 0x59, 0x1a, 0x6c, 0xa2, 0xa3, 0x0b, 0x79, 0xa0, 0x86, 0x56, 0xb5, 0x5e, 0x03, 0x57, -0x75, 0xf2, 0xb6, 0xa6, 0x75, 0x8f, 0xa8, 0xb5, 0x9c, 0x5b, 0xf2, 0x97, 0xb5, 0xae, 0x7c, 0x74, -0xad, 0x9b, 0x92, 0xda, 0xf4, 0x70, 0xa2, 0x3d, 0x43, 0xa8, 0x75, 0x5f, 0x6a, 0xcb, 0x05, 0xdb, -0xc1, 0x48, 0xaf, 0x3e, 0xb6, 0x64, 0xa1, 0x9f, 0x07, 0xd8, 0x3b, 0x65, 0x45, 0xd2, 0xbb, 0x24, -0xa1, 0x9f, 0x87, 0xd8, 0xc2, 0x84, 0xda, 0x6b, 0x69, 0xed, 0x55, 0x42, 0xed, 0x83, 0x68, 0xed, -0x03, 0x68, 0xed, 0x15, 0xb4, 0xf6, 0x5e, 0xb4, 0xb7, 0xb1, 0x0d, 0xea, 0xdb, 0xf6, 0xf0, 0x7f, -0xd6, 0x0a, 0xf7, 0x56, 0xff, 0x55, 0x2b, 0x34, 0xe3, 0xc9, 0x15, 0x8f, 0x79, 0x42, 0x80, 0xab, -0x00, 0x5e, 0x25, 0x14, 0x5a, 0x83, 0x9e, 0xae, 0xfa, 0x72, 0xc5, 0x40, 0xb9, 0x94, 0x0a, 0x5a, -0xb0, 0x65, 0x34, 0x87, 0x72, 0xfa, 0xd4, 0x81, 0x43, 0xfd, 0xc7, 0x99, 0x94, 0xcf, 0x54, 0x73, -0x95, 0x10, 0x6a, 0x2e, 0xbd, 0xef, 0xce, 0x55, 0x01, 0xae, 0x6e, 0x47, 0xf5, 0x33, 0xe9, 0xfe, -0x16, 0x6f, 0x07, 0x06, 0xe3, 0x28, 0x44, 0xdc, 0x2a, 0xe1, 0xfc, 0x75, 0x35, 0x7d, 0x16, 0x73, -0x6b, 0xd0, 0x3e, 0x33, 0x3c, 0xaf, 0xa7, 0xcf, 0x5e, 0x5c, 0x0d, 0xdc, 0x6f, 0xa6, 0xe9, 0xab, -0xb9, 0xad, 0x31, 0x68, 0x13, 0xc1, 0xc2, 0xed, 0xa0, 0xcf, 0x1d, 0xb9, 0x5a, 0xc4, 0x71, 0x34, -0x5c, 0x17, 0xe0, 0x84, 0x8d, 0x94, 0x13, 0x76, 0x53, 0x3c, 0x09, 0x9c, 0x30, 0xe0, 0x31, 0x21, -0x5d, 0x6a, 0x55, 0x0b, 0xfa, 0xb1, 0x0c, 0xb9, 0xe7, 0xe6, 0xbb, 0xae, 0xa7, 0xce, 0xcd, 0x77, -0x85, 0x53, 0x67, 0x22, 0x9c, 0x3a, 0xcb, 0x84, 0x53, 0x67, 0x05, 0xbd, 0x6a, 0xb8, 0xc0, 0xe0, -0x04, 0x8e, 0xe7, 0xb4, 0x07, 0x70, 0x0c, 0xbd, 0x5a, 0x39, 0x0d, 0xdd, 0xff, 0x13, 0x71, 0x06, -0x1a, 0x86, 0xe1, 0x22, 0x85, 0xb3, 0x67, 0x23, 0xfd, 0xee, 0xc3, 0x59, 0x04, 0xdb, 0x2e, 0x29, -0xc5, 0xde, 0xa8, 0xcf, 0x2d, 0x9c, 0x54, 0x67, 0xd0, 0xb7, 0xed, 0x38, 0x96, 0x8e, 0x9e, 0x82, -0xe6, 0x3b, 0x65, 0xa2, 0xc5, 0xfb, 0x4d, 0x71, 0xe5, 0x64, 0x20, 0x8c, 0xa3, 0xb8, 0xa6, 0xbb, -0x68, 0xb7, 0xfc, 0x64, 0xab, 0x91, 0xa4, 0x41, 0x69, 0xdd, 0xcc, 0x70, 0x8a, 0x23, 0x02, 0xec, -0xd9, 0x14, 0x6f, 0xa0, 0xa4, 0x58, 0x06, 0xbd, 0x52, 0xaf, 0x18, 0x6c, 0x06, 0x0d, 0xa9, 0xb6, -0x0f, 0xcd, 0x1c, 0x8e, 0x6f, 0x15, 0x22, 0x2a, 0xe3, 0x3a, 0x8a, 0xbe, 0x0d, 0xb6, 0x4f, 0xc8, -0xf4, 0xa3, 0x77, 0x3d, 0xec, 0x63, 0xe9, 0x55, 0x6b, 0x2b, 0x61, 0x87, 0xd2, 0xbb, 0x14, 0x3b, -0x7f, 0x1d, 0x2c, 0x5c, 0x75, 0xb6, 0x0c, 0x36, 0x15, 0xc6, 0x54, 0x29, 0x9b, 0x02, 0xbf, 0xe5, -0xac, 0x15, 0x7e, 0x67, 0xb2, 0x66, 0xf8, 0x9d, 0xcb, 0x46, 0xc3, 0xef, 0x12, 0x36, 0x12, 0x7e, -0x97, 0xf7, 0x8b, 0x69, 0xbe, 0xc3, 0x86, 0x16, 0x8b, 0x6a, 0xa6, 0x51, 0x7b, 0x76, 0x62, 0xe4, -0xd2, 0xb0, 0xe7, 0xd8, 0x4e, 0x3a, 0x98, 0xa9, 0x7d, 0x45, 0xac, 0x9f, 0x32, 0x86, 0xf5, 0x0d, -0x14, 0xd1, 0x51, 0xaa, 0xa3, 0xa3, 0x34, 0x9c, 0xe2, 0x72, 0xdf, 0xe0, 0xc4, 0xe6, 0x1b, 0xc9, -0x8b, 0x52, 0x16, 0x28, 0x0b, 0x9a, 0x6f, 0xd0, 0xd1, 0x1a, 0xd0, 0x6a, 0xc5, 0x12, 0xc5, 0x35, -0xdd, 0x69, 0x48, 0x5e, 0xd4, 0xcf, 0xc8, 0xdd, 0x6d, 0xf5, 0xde, 0x8d, 0xbe, 0x6b, 0x6a, 0xb3, -0xf6, 0x40, 0x4f, 0xd1, 0xf7, 0xf7, 0x5b, 0x85, 0xf5, 0xa0, 0xef, 0x9a, 0x5b, 0xc2, 0x3a, 0x53, -0x2e, 0x4b, 0x5e, 0xc4, 0x18, 0xd3, 0xd7, 0x10, 0x89, 0x73, 0x5d, 0xa1, 0x29, 0x3f, 0xf4, 0xce, -0x1d, 0xdf, 0x3d, 0xbb, 0x46, 0xb0, 0x40, 0xdf, 0x92, 0x86, 0x87, 0xe3, 0x3d, 0xcc, 0xa9, 0x73, -0xc2, 0x6a, 0x51, 0x0c, 0x57, 0x6d, 0xf2, 0xb6, 0x3b, 0xa3, 0x78, 0x7d, 0x6e, 0xbe, 0x5e, 0xb0, -0xaa, 0x5e, 0x21, 0xb9, 0x38, 0x97, 0xac, 0xb3, 0x6d, 0x72, 0x6b, 0x9c, 0x4d, 0xb6, 0x89, 0xdf, -0x2f, 0x3d, 0x81, 0x14, 0x11, 0xdd, 0xbd, 0xb9, 0x48, 0x5b, 0xc2, 0x31, 0x06, 0x25, 0x30, 0x8e, -0x2e, 0xd2, 0xab, 0x98, 0x6b, 0xa0, 0xe7, 0x9a, 0x98, 0xce, 0x6c, 0x9b, 0x14, 0x7d, 0x42, 0x1e, -0x2e, 0x81, 0x14, 0x24, 0x9d, 0x70, 0xe5, 0xc4, 0xfd, 0x89, 0xe1, 0x68, 0x61, 0x03, 0x2d, 0xe3, -0xa0, 0xd5, 0x64, 0xe0, 0xf2, 0x03, 0x9b, 0x1b, 0xad, 0x2f, 0xda, 0x55, 0x4c, 0x02, 0x4f, 0xa7, -0x72, 0x5b, 0x95, 0xf4, 0xac, 0x23, 0xa2, 0x07, 0x7c, 0xcd, 0xc1, 0xaf, 0xc2, 0xfb, 0x4d, 0x02, -0x16, 0x08, 0xec, 0x1f, 0xd2, 0xdc, 0x68, 0xb2, 0x1b, 0xe2, 0xa8, 0x14, 0x23, 0xf5, 0x06, 0xa7, -0x34, 0xe2, 0xf8, 0x66, 0xc5, 0x13, 0x64, 0x72, 0x28, 0x81, 0x5d, 0x95, 0xe9, 0x05, 0x57, 0x1c, -0x43, 0x33, 0x59, 0x5f, 0xb8, 0x43, 0xb9, 0x6f, 0x09, 0x91, 0xd9, 0x60, 0x54, 0x84, 0x69, 0x89, -0x64, 0x64, 0xcc, 0xa2, 0x44, 0xd6, 0x0b, 0xef, 0x8e, 0xe5, 0x12, 0xd9, 0xa8, 0x18, 0xf4, 0x45, -0x97, 0x8a, 0x76, 0xf0, 0xbd, 0xca, 0x48, 0xa4, 0xdb, 0xc2, 0x3d, 0x1a, 0xe4, 0x1a, 0x66, 0x5e, -0x9a, 0x59, 0x67, 0x66, 0xe3, 0x99, 0xc4, 0xaa, 0x9f, 0x81, 0xca, 0x95, 0xf1, 0xf6, 0x04, 0x20, -0xa4, 0xa4, 0x2a, 0x26, 0x8c, 0x7a, 0xaf, 0x7b, 0xd6, 0x58, 0x15, 0xcb, 0xaa, 0xdb, 0x7c, 0x07, -0xae, 0xbe, 0x6a, 0x57, 0x18, 0x7a, 0x03, 0x91, 0xd6, 0x41, 0x7a, 0xc3, 0x8d, 0xac, 0xc4, 0x64, -0x34, 0xc5, 0xa0, 0xee, 0x7e, 0xf3, 0x7d, 0x83, 0x11, 0x66, 0xbc, 0x24, 0x38, 0x91, 0x93, 0xf3, -0x76, 0x0a, 0x80, 0x5a, 0xf0, 0x0f, 0x8e, 0xe7, 0x54, 0x40, 0x29, 0x44, 0x05, 0x43, 0x9b, 0x70, -0x66, 0x03, 0xcc, 0x27, 0x08, 0x93, 0xd4, 0x6a, 0x3c, 0x3c, 0x99, 0xbc, 0xad, 0x11, 0x29, 0x97, -0x11, 0x10, 0x6e, 0x2c, 0xdf, 0x6b, 0xcd, 0x38, 0xba, 0x00, 0xf7, 0x35, 0xae, 0xd1, 0x18, 0x05, -0xc9, 0x3f, 0xb4, 0x65, 0x5b, 0x8d, 0x32, 0x30, 0x8d, 0xda, 0x94, 0x05, 0xac, 0x8e, 0xee, 0x16, -0x52, 0xd9, 0x0c, 0xb4, 0xc9, 0x77, 0xe8, 0x06, 0x77, 0x55, 0xe8, 0xef, 0x8b, 0x34, 0x4c, 0x20, -0xcf, 0xe3, 0xbe, 0x7a, 0x88, 0x15, 0x6b, 0x8c, 0x8c, 0x1c, 0x39, 0x92, 0xe6, 0x7d, 0x02, 0xc6, -0xbc, 0x4b, 0x4f, 0x82, 0x04, 0x8c, 0x49, 0x71, 0x41, 0x87, 0xe6, 0xbb, 0xa6, 0x0f, 0x9a, 0xef, -0xd3, 0xfb, 0x00, 0x0e, 0xf9, 0x3d, 0x09, 0xbd, 0xef, 0xc8, 0xc9, 0x8a, 0x11, 0x33, 0xc9, 0x05, -0x0c, 0x88, 0xf9, 0x39, 0x70, 0x6b, 0x20, 0x84, 0x0a, 0x12, 0x70, 0x2b, 0x23, 0x60, 0x42, 0x95, -0x80, 0x5d, 0x35, 0x70, 0xaf, 0x13, 0xb0, 0x8b, 0x01, 0xbe, 0x79, 0xc2, 0x73, 0xb8, 0x80, 0x35, -0x23, 0x85, 0xb0, 0x51, 0x02, 0xd6, 0x44, 0x0d, 0x7a, 0xb3, 0x80, 0x35, 0x2d, 0x02, 0xd6, 0x4c, -0x12, 0xb0, 0x66, 0x8a, 0x03, 0x2f, 0x01, 0xd6, 0xcc, 0xa0, 0x2d, 0xc4, 0x63, 0x4d, 0x16, 0xee, -0xc7, 0x0a, 0x58, 0x33, 0x1b, 0xca, 0x91, 0x5f, 0xee, 0x69, 0x32, 0x4f, 0x16, 0xf3, 0xd4, 0xcc, -0xed, 0x4c, 0x6a, 0xe5, 0xac, 0x05, 0x43, 0x21, 0x56, 0x22, 0x64, 0x51, 0xa6, 0xce, 0x69, 0xcd, -0x6e, 0x99, 0x60, 0x31, 0xcf, 0x1b, 0x46, 0xd0, 0x22, 0xb4, 0xff, 0x26, 0x60, 0x2c, 0x9b, 0x80, -0xb1, 0xca, 0xd9, 0x6c, 0x8a, 0x6d, 0x02, 0xec, 0x3a, 0x8a, 0x99, 0xa0, 0xee, 0xf6, 0x50, 0xfa, -0xa6, 0x83, 0x8d, 0x65, 0x79, 0x5c, 0xd5, 0x91, 0x5a, 0x38, 0x96, 0x91, 0x7e, 0xb0, 0x5a, 0x1a, -0x83, 0x63, 0x9a, 0xef, 0xb3, 0xf1, 0x80, 0x45, 0x24, 0x78, 0xcf, 0xc9, 0xd9, 0xbe, 0x14, 0xf7, -0xc8, 0x85, 0x32, 0xfa, 0x4f, 0x16, 0xb3, 0x1a, 0x8a, 0x81, 0xfc, 0x27, 0x4b, 0x28, 0xc5, 0x10, -0xc4, 0x06, 0xc2, 0xaf, 0x8a, 0xf5, 0xa3, 0xf8, 0x47, 0x1e, 0x29, 0x62, 0x65, 0x51, 0x22, 0x01, -0x0f, 0xb5, 0x5e, 0x2d, 0x23, 0x5b, 0xd1, 0xf8, 0xa2, 0x84, 0xa6, 0x5b, 0xd9, 0xc9, 0x8b, 0x29, -0xfe, 0xd1, 0xb6, 0xc2, 0x3f, 0x8b, 0x9d, 0xf8, 0x67, 0x5d, 0x2b, 0xfc, 0xb3, 0x98, 0xe2, 0x1f, -0x6d, 0x2b, 0xfc, 0x83, 0xef, 0x9a, 0x01, 0x47, 0xa0, 0x2d, 0x69, 0x46, 0x6e, 0xe6, 0x38, 0x5b, -0xa4, 0x3c, 0x8e, 0x48, 0x6c, 0x9d, 0xf8, 0x70, 0x78, 0x06, 0xe2, 0x88, 0x1d, 0x49, 0xf7, 0x12, -0x58, 0x55, 0x9b, 0x2f, 0x1e, 0x8e, 0x2f, 0x0c, 0x0d, 0x47, 0x63, 0x4b, 0xe9, 0xbd, 0x07, 0x1f, -0x52, 0x4f, 0x12, 0x9a, 0x6e, 0xae, 0x49, 0x5e, 0x1c, 0x41, 0xed, 0xe8, 0x60, 0x5f, 0x2c, 0x9a, -0xb1, 0x68, 0x46, 0xd7, 0x18, 0x5e, 0x72, 0xcc, 0x81, 0xf3, 0x92, 0x17, 0x0b, 0xb8, 0x4d, 0xeb, -0x82, 0xef, 0x84, 0x77, 0x14, 0xb7, 0xad, 0x73, 0xc1, 0x79, 0x8b, 0x79, 0xdc, 0xe6, 0x12, 0xd6, -0xc3, 0xe5, 0x1d, 0x3f, 0x6b, 0xb4, 0x24, 0x34, 0xb1, 0xe9, 0x66, 0x49, 0xf2, 0x12, 0xb5, 0x91, -0x5a, 0x36, 0xc7, 0xfd, 0x46, 0x05, 0xc9, 0xa3, 0x98, 0xce, 0x0c, 0xf7, 0x44, 0xe3, 0x23, 0x9d, -0xc9, 0x71, 0x5c, 0x31, 0xd4, 0xa4, 0x18, 0xda, 0x43, 0x82, 0xb6, 0xfb, 0x23, 0x83, 0x92, 0x97, -0x09, 0xd2, 0x5d, 0x0e, 0x1b, 0x1b, 0x65, 0xc2, 0x3a, 0x5b, 0x21, 0xac, 0xb3, 0xbc, 0x55, 0x07, -0x37, 0xae, 0x4a, 0x58, 0x43, 0xab, 0x85, 0x35, 0x75, 0x15, 0x7d, 0xef, 0x2e, 0x48, 0x85, 0x05, -0x70, 0x35, 0x14, 0x83, 0x6d, 0x16, 0xe6, 0xc1, 0x56, 0xb8, 0xdf, 0x21, 0x48, 0x7e, 0xd5, 0x0a, -0xf3, 0x61, 0x9f, 0x21, 0x1e, 0x46, 0xf8, 0x21, 0x61, 0xb5, 0xad, 0x6b, 0xc1, 0xb7, 0xb4, 0x0c, -0x68, 0xe3, 0xed, 0xa2, 0x60, 0x3b, 0xae, 0x01, 0x77, 0x5e, 0xa9, 0xd4, 0xd5, 0xf2, 0xe0, 0x01, -0x40, 0x75, 0x0c, 0xe0, 0xd6, 0xb7, 0xea, 0xc7, 0x27, 0x07, 0x36, 0xdd, 0x18, 0xc1, 0xef, 0x84, -0x53, 0x59, 0x5e, 0xd7, 0x7e, 0x57, 0xd0, 0xf7, 0xd4, 0xce, 0x32, 0xfa, 0x5c, 0xa1, 0xfd, 0x93, -0x3a, 0x04, 0x2d, 0x38, 0x94, 0x86, 0xe5, 0x11, 0x29, 0x5a, 0x48, 0x88, 0xb9, 0x59, 0x89, 0xf2, -0x63, 0xe5, 0x68, 0x39, 0xdf, 0x52, 0x9b, 0xc1, 0x53, 0x44, 0xb1, 0xdc, 0x5c, 0x4a, 0x0d, 0x2c, -0xa1, 0xbc, 0x1f, 0xb6, 0x6b, 0x98, 0xc0, 0x8b, 0xc9, 0xa9, 0x6c, 0xc3, 0x2a, 0x52, 0x88, 0x6d, -0x79, 0xea, 0x03, 0xae, 0xbc, 0xd8, 0x07, 0xb0, 0x6d, 0x1e, 0x91, 0x09, 0xe9, 0x94, 0xa2, 0xfd, -0x7e, 0x4b, 0xed, 0x90, 0x0a, 0x4a, 0x65, 0xc5, 0x72, 0x33, 0xe1, 0xd9, 0x4b, 0x48, 0x77, 0x6e, -0xb1, 0xd7, 0x9f, 0xa6, 0x99, 0xe4, 0x4c, 0xb1, 0xb4, 0x58, 0x4e, 0x29, 0xaf, 0x64, 0x6e, 0xb5, -0x6b, 0x48, 0x8d, 0x23, 0xa4, 0x52, 0xc0, 0x79, 0xc9, 0x80, 0xf3, 0x80, 0xb7, 0x10, 0xa8, 0xc4, -0x8b, 0xb8, 0xd3, 0x77, 0x9d, 0x5a, 0x8e, 0x63, 0xd5, 0x34, 0x9e, 0x77, 0x42, 0xd3, 0x75, 0x29, -0xce, 0x1f, 0x2a, 0x95, 0xc2, 0xeb, 0xd0, 0xf9, 0xe2, 0x33, 0x2b, 0xd1, 0x18, 0x59, 0xf1, 0xab, -0x87, 0x28, 0x3e, 0x2c, 0x6f, 0x3e, 0x21, 0xd0, 0xd1, 0x95, 0x68, 0x93, 0xd3, 0x81, 0x0f, 0xd1, -0xf2, 0x8f, 0x80, 0xe1, 0x1c, 0x74, 0x21, 0xf6, 0x24, 0xb5, 0x0b, 0x28, 0xf4, 0x71, 0x35, 0xed, -0x63, 0x4a, 0x15, 0x12, 0x15, 0x8c, 0x00, 0x9e, 0x22, 0x94, 0x91, 0x10, 0x6e, 0x0d, 0x84, 0x5a, -0x4f, 0xef, 0x43, 0xb9, 0x1a, 0x98, 0xfb, 0x46, 0x61, 0x2c, 0xc8, 0x48, 0x6f, 0x6e, 0x2b, 0x7c, -0xa3, 0x63, 0x81, 0x79, 0x8c, 0xab, 0x85, 0x7b, 0x4a, 0x0d, 0x32, 0x0a, 0xde, 0x46, 0x1f, 0xbd, -0xf7, 0xe1, 0xea, 0xe0, 0xfe, 0x84, 0x40, 0xd1, 0x51, 0x6a, 0x50, 0x18, 0x33, 0x17, 0x21, 0x2d, -0x39, 0x8f, 0xeb, 0x29, 0x9e, 0x6c, 0x10, 0xf0, 0xe4, 0x55, 0x01, 0xbf, 0x50, 0x8b, 0x62, 0x48, -0x9f, 0x25, 0x36, 0xfd, 0x3a, 0x16, 0xf0, 0xd9, 0x6a, 0x57, 0xec, 0xc7, 0xf8, 0x50, 0xcd, 0x32, -0x35, 0x8f, 0xdb, 0xec, 0xa9, 0xb0, 0x76, 0xf2, 0xdc, 0x5c, 0x39, 0x6b, 0x14, 0xb0, 0xa3, 0x99, -0x5e, 0x55, 0x68, 0xcb, 0x91, 0xe2, 0xb4, 0x10, 0x7b, 0x34, 0x8f, 0xf7, 0x18, 0x85, 0x3d, 0x89, -0x5e, 0x1f, 0x03, 0x2c, 0x17, 0x45, 0xbf, 0x85, 0xda, 0x35, 0xf4, 0xda, 0xdb, 0x16, 0x45, 0xa9, -0xff, 0xb9, 0x6c, 0x38, 0xa5, 0xbb, 0x42, 0x91, 0xee, 0x62, 0x35, 0xf0, 0xbb, 0x9a, 0x72, 0x7d, -0xeb, 0x29, 0x4f, 0xb0, 0x99, 0xf2, 0x04, 0x3b, 0x28, 0x4f, 0xb0, 0x87, 0x52, 0x5b, 0x87, 0x28, -0x96, 0x3b, 0x41, 0x47, 0xb2, 0x2f, 0x4a, 0x82, 0x50, 0x2c, 0x97, 0x42, 0x65, 0x20, 0xa5, 0x28, -0x75, 0x28, 0x50, 0x01, 0xa7, 0xdb, 0xe2, 0xbd, 0x6b, 0xc5, 0xff, 0x1b, 0xbc, 0xd7, 0x12, 0xd6, -0x99, 0x32, 0x41, 0x3c, 0x92, 0xf1, 0x27, 0x78, 0xc8, 0xe5, 0x1d, 0xc5, 0x41, 0x83, 0x1f, 0xc6, -0x4d, 0x4e, 0x3c, 0x04, 0x38, 0xb5, 0x51, 0x18, 0x97, 0x95, 0x70, 0x8d, 0x48, 0xde, 0x76, 0xf5, -0x0a, 0xf5, 0x91, 0xd6, 0x8a, 0x7b, 0x19, 0x21, 0xe1, 0x4a, 0xff, 0xc7, 0x63, 0x4f, 0xef, 0x32, -0xf6, 0x0c, 0x74, 0xec, 0x79, 0xfd, 0x0f, 0xc7, 0x9e, 0xdb, 0x3f, 0x1b, 0x7b, 0xbf, 0x34, 0xfc, -0x0f, 0xc6, 0x9e, 0xfe, 0x2f, 0xc6, 0x9e, 0xe1, 0xff, 0xad, 0xb1, 0xf7, 0x73, 0xe3, 0xff, 0x53, -0x63, 0xef, 0xe7, 0x99, 0xff, 0xcf, 0x8d, 0xbd, 0x9f, 0x73, 0xff, 0x6a, 0xec, 0x35, 0x37, 0xd0, -0xbd, 0x69, 0xde, 0x52, 0x9e, 0x5c, 0x87, 0xd6, 0xf2, 0x9c, 0x9c, 0x73, 0x73, 0x03, 0xd0, 0x83, -0x57, 0xe9, 0xe8, 0x71, 0x6f, 0x86, 0x1e, 0x6e, 0x6e, 0xa4, 0xf7, 0xc9, 0x2e, 0x74, 0xa2, 0xd4, -0x85, 0x4e, 0x8c, 0x00, 0x3a, 0x91, 0x13, 0xe8, 0x44, 0x19, 0x19, 0xc4, 0x29, 0xe0, 0x8b, 0x3f, -0xbd, 0x4f, 0x73, 0xd2, 0x89, 0x32, 0x92, 0xce, 0x31, 0x70, 0xaf, 0xa2, 0xf7, 0x1e, 0x9c, 0x06, -0xee, 0x91, 0x46, 0x74, 0xab, 0x10, 0x73, 0x06, 0xb8, 0x0f, 0x17, 0xc6, 0x5e, 0x24, 0xdc, 0x47, -0x09, 0xa3, 0xdd, 0x48, 0x7b, 0xe3, 0x51, 0xd4, 0xa1, 0x8c, 0xf4, 0x02, 0xbe, 0x15, 0xf3, 0x4c, -0xa7, 0x14, 0x6a, 0x06, 0xc4, 0x1a, 0x51, 0xaa, 0x88, 0x28, 0xe7, 0xb8, 0xb2, 0xc0, 0xd3, 0xf3, -0xd0, 0xa3, 0xcf, 0x5d, 0x7f, 0x18, 0x8d, 0xbb, 0x5b, 0x71, 0xaa, 0x28, 0x9d, 0xb6, 0x21, 0xd3, -0x40, 0xef, 0xdd, 0xed, 0x63, 0x9d, 0x9c, 0x6a, 0x3a, 0x5e, 0x2b, 0xc4, 0x94, 0x1a, 0x9c, 0x42, -0xbf, 0x4a, 0xed, 0xa9, 0xf4, 0xea, 0x61, 0x9b, 0xc2, 0xda, 0xe8, 0x5d, 0xb2, 0xbd, 0xaf, 0xc0, -0xa5, 0xf6, 0xb2, 0xb3, 0xf4, 0x1a, 0x61, 0xcb, 0x64, 0xf9, 0x7d, 0xa2, 0x34, 0x61, 0x77, 0x24, -0xdd, 0x1e, 0x4e, 0xaf, 0x83, 0x6c, 0x16, 0xa4, 0xf2, 0x9a, 0xaf, 0x52, 0xca, 0xb0, 0x91, 0xed, -0x4b, 0xe9, 0xc3, 0x70, 0x4a, 0x1f, 0x86, 0x52, 0xfa, 0x10, 0xc7, 0xaa, 0x3f, 0x1d, 0xab, 0x41, -0x74, 0xac, 0xaa, 0xe8, 0x58, 0xd5, 0xd1, 0xb1, 0x1a, 0xce, 0x7a, 0xa9, 0x63, 0xe0, 0x9a, 0xce, -0x8a, 0xc3, 0x45, 0x74, 0x04, 0x48, 0xd0, 0x27, 0x90, 0x30, 0x5a, 0xf9, 0x1d, 0x71, 0xb9, 0x63, -0x6c, 0xa2, 0xaf, 0xd5, 0xdf, 0x9b, 0xf0, 0x74, 0xd9, 0x39, 0x3e, 0x1d, 0xdf, 0xdc, 0xd0, 0x37, -0x6a, 0xab, 0x11, 0xea, 0xf8, 0xe2, 0x2e, 0x84, 0xbf, 0xdf, 0x2a, 0xbc, 0x87, 0x10, 0x1e, 0x47, -0x29, 0x63, 0x85, 0x5e, 0xb3, 0x09, 0xfc, 0x98, 0x75, 0x86, 0x5d, 0x0e, 0x2b, 0x7a, 0x14, 0x13, -0x8b, 0x96, 0x8c, 0x58, 0x3f, 0xfa, 0x36, 0x92, 0x29, 0xe4, 0xb9, 0x3c, 0xf4, 0x60, 0x00, 0xa1, -0xfd, 0x6d, 0x52, 0xca, 0xff, 0xe0, 0x7d, 0xb8, 0x0d, 0x4f, 0xca, 0x05, 0x4a, 0x96, 0xcf, 0x51, -0x8d, 0xe5, 0xac, 0x57, 0xc6, 0x26, 0x2f, 0xd4, 0x12, 0x97, 0xf7, 0x1e, 0x4c, 0x6c, 0x72, 0x15, -0x7f, 0x76, 0xaa, 0x34, 0x86, 0xf5, 0x20, 0xd2, 0xd8, 0x5f, 0x38, 0x0e, 0x47, 0xed, 0x84, 0x07, -0x1f, 0xbf, 0x94, 0x15, 0x11, 0x11, 0xc2, 0xdd, 0xff, 0x38, 0x8f, 0x84, 0xdb, 0x88, 0xa8, 0x19, -0x68, 0x8d, 0x88, 0x4d, 0x89, 0x45, 0x44, 0xd4, 0xb8, 0x28, 0x31, 0x32, 0x84, 0xbb, 0xdb, 0xdb, -0x4c, 0x0c, 0x11, 0xa2, 0x93, 0x05, 0x5c, 0x53, 0xef, 0x58, 0x12, 0x96, 0x61, 0x86, 0x67, 0x49, -0x7a, 0x2c, 0xdc, 0x4b, 0x87, 0x58, 0xaa, 0x76, 0x47, 0x58, 0x94, 0x71, 0xdd, 0x06, 0x10, 0x49, -0x58, 0x0c, 0x63, 0xec, 0x9a, 0x08, 0xb3, 0x23, 0x89, 0x1b, 0x21, 0x50, 0x89, 0x0d, 0x70, 0xed, -0x9b, 0xbc, 0xed, 0xc7, 0x24, 0xb5, 0x93, 0xae, 0x11, 0xad, 0x52, 0xfb, 0x48, 0x67, 0x00, 0x5d, -0xc8, 0x02, 0x3d, 0x66, 0x81, 0xf6, 0x70, 0x43, 0x9f, 0xea, 0x91, 0x41, 0xe8, 0x69, 0x48, 0xa0, -0x0c, 0x59, 0x81, 0x32, 0xcc, 0x16, 0x28, 0xc3, 0x62, 0x81, 0x32, 0x2c, 0x13, 0x28, 0xc1, 0x0a, -0x81, 0xce, 0xab, 0x14, 0x28, 0xc4, 0x2a, 0x81, 0xc2, 0xab, 0x2e, 0x5b, 0x03, 0x69, 0x6a, 0x80, -0xc6, 0x7b, 0xde, 0x42, 0xb0, 0x1f, 0xe9, 0xe8, 0xed, 0xc7, 0xad, 0x31, 0x98, 0x50, 0x8a, 0x5f, -0xe0, 0xac, 0x6a, 0xe8, 0x28, 0xde, 0x2c, 0x58, 0xe5, 0xdd, 0x8a, 0x72, 0xff, 0x02, 0xed, 0x88, -0xd6, 0x72, 0xe9, 0xee, 0x11, 0x4f, 0xc5, 0x02, 0x55, 0x85, 0x92, 0x9c, 0x40, 0x77, 0xc5, 0xde, -0x94, 0x89, 0x80, 0xd7, 0x1c, 0x8b, 0xf4, 0x1c, 0x5c, 0xf3, 0x29, 0x0d, 0x06, 0x74, 0x1d, 0xd2, -0x74, 0x80, 0xcb, 0x66, 0xd2, 0x53, 0x30, 0x35, 0x52, 0x5f, 0xc1, 0xd0, 0x53, 0x94, 0xfa, 0x6a, -0xe9, 0x6b, 0xe0, 0x39, 0xaf, 0x30, 0xb8, 0x92, 0xe0, 0xa9, 0x00, 0x96, 0x4c, 0xcf, 0xcb, 0x68, -0x6f, 0xbb, 0x79, 0x91, 0xd2, 0x5b, 0xb8, 0x5b, 0x5e, 0x3e, 0xa1, 0x41, 0x90, 0x6d, 0x7b, 0x3e, -0xd2, 0x51, 0x72, 0xb4, 0x2d, 0xdc, 0x30, 0xf0, 0x9a, 0x83, 0x6e, 0xd5, 0xfb, 0x0a, 0x2d, 0x84, -0xfb, 0x03, 0x75, 0xc2, 0xfe, 0xc0, 0x69, 0x26, 0x5d, 0xa5, 0x10, 0xe7, 0xa3, 0xc6, 0x1f, 0xee, -0xed, 0xd1, 0x56, 0x87, 0x14, 0xf4, 0xde, 0x74, 0x0c, 0x1c, 0xc6, 0x31, 0x00, 0xe5, 0xa3, 0xb6, -0xe4, 0x0f, 0x5d, 0xa4, 0xfb, 0xf5, 0x0c, 0x3d, 0xc7, 0xf1, 0xd5, 0x8b, 0xd5, 0xb1, 0x54, 0xa7, -0x44, 0xce, 0xf2, 0x54, 0x1b, 0x50, 0x76, 0x3f, 0x44, 0x01, 0xdd, 0xe6, 0xa0, 0xd9, 0xa2, 0x78, -0x1e, 0x56, 0xd0, 0x74, 0x51, 0x14, 0x9b, 0xdb, 0xca, 0x28, 0x31, 0xbc, 0x04, 0xee, 0xec, 0x9e, -0xb9, 0x44, 0x4a, 0x24, 0xf0, 0xeb, 0x4b, 0xa4, 0x3d, 0xd1, 0x07, 0x9a, 0x0c, 0x7e, 0xbb, 0x10, -0xaf, 0x9e, 0xb4, 0x7d, 0x4d, 0xd9, 0xc4, 0x97, 0xd7, 0xfc, 0x30, 0xad, 0x21, 0x7e, 0x00, 0x01, -0x5d, 0x73, 0x89, 0x8a, 0x74, 0x82, 0xbb, 0x2e, 0x00, 0x4a, 0x08, 0x1b, 0x4d, 0xd4, 0xf0, 0x2e, -0x89, 0x68, 0x8a, 0xdd, 0xba, 0x1a, 0x89, 0x8e, 0xa6, 0x67, 0xa0, 0xe9, 0x85, 0xd1, 0xf4, 0xc2, -0x69, 0x7a, 0x11, 0x5d, 0xcb, 0x51, 0x22, 0x15, 0xb5, 0x4a, 0x78, 0x89, 0x54, 0x9a, 0x8e, 0x51, -0x99, 0x4b, 0xc2, 0x95, 0x95, 0x8c, 0xcc, 0x21, 0x5f, 0xf4, 0xd0, 0xa9, 0x9b, 0xb4, 0xe5, 0x7c, -0xed, 0x61, 0xa9, 0x1a, 0xb4, 0x77, 0x4a, 0x65, 0x27, 0xc2, 0xe4, 0xd9, 0x1c, 0x47, 0x64, 0xb6, -0x50, 0x26, 0x9b, 0xbb, 0x4f, 0xdf, 0x30, 0x8c, 0x86, 0x04, 0xd9, 0x3b, 0x51, 0x9d, 0xa6, 0x09, -0xbc, 0xdf, 0xef, 0x3e, 0x68, 0x5f, 0xb8, 0x62, 0x18, 0x95, 0xd9, 0x49, 0x7e, 0xde, 0x24, 0x00, -0x50, 0x16, 0x27, 0x1c, 0xa7, 0xce, 0xba, 0x10, 0x8a, 0xdd, 0xfd, 0x81, 0xba, 0x08, 0x44, 0xc9, -0x09, 0x71, 0x27, 0xc6, 0x6c, 0x32, 0x99, 0xe2, 0xd8, 0x20, 0x9c, 0xcd, 0x35, 0x71, 0xf9, 0xe2, -0xbe, 0xd4, 0x8b, 0x45, 0x8d, 0xa9, 0x48, 0x1c, 0x4e, 0x78, 0xdf, 0x49, 0x76, 0xc9, 0x8e, 0x4a, -0xdb, 0x45, 0x7d, 0x30, 0xc1, 0x93, 0x9b, 0x46, 0x9c, 0xe9, 0x7a, 0x08, 0x11, 0xd7, 0xc4, 0x45, -0x50, 0x6f, 0x43, 0x72, 0x8d, 0xd9, 0x14, 0x1b, 0x4a, 0xa5, 0x60, 0x80, 0x1a, 0x3f, 0x81, 0x32, -0x74, 0x25, 0x04, 0xe5, 0xbd, 0x8b, 0xc5, 0xb5, 0xd3, 0xcc, 0xbb, 0x6c, 0xa9, 0xe1, 0x10, 0x0b, -0xb5, 0x1a, 0x51, 0xe2, 0x1b, 0x71, 0x04, 0x4d, 0x33, 0xd4, 0xb1, 0xff, 0xa3, 0xc3, 0x5e, 0x62, -0x84, 0xd4, 0xa9, 0x25, 0xe9, 0xe6, 0xf3, 0x10, 0xe3, 0x9c, 0x32, 0xd9, 0xb1, 0x13, 0x44, 0xa5, -0x04, 0x60, 0x45, 0xc2, 0x12, 0x66, 0x18, 0xeb, 0xac, 0x6c, 0x31, 0xc4, 0xc8, 0xc5, 0xd4, 0x54, -0xd9, 0xbc, 0xbd, 0x4a, 0xfb, 0x08, 0xff, 0xaa, 0x0e, 0x68, 0x97, 0x4b, 0x04, 0xbf, 0x62, 0x22, -0xee, 0x95, 0x0d, 0x3d, 0x24, 0x45, 0x7b, 0xb5, 0xf6, 0xa0, 0xe0, 0x5c, 0x98, 0x87, 0xa7, 0x51, -0xbe, 0x82, 0xb1, 0xf2, 0xd2, 0xb4, 0xcd, 0x1f, 0x3f, 0x55, 0xc0, 0x9d, 0x06, 0x3e, 0x96, 0xd1, -0xe5, 0xa2, 0x27, 0x51, 0xf4, 0x2a, 0x20, 0x48, 0xe3, 0x14, 0x70, 0x27, 0x8e, 0xd7, 0x31, 0x8e, -0x9c, 0x51, 0x46, 0x41, 0x82, 0x67, 0xb8, 0xbc, 0x8d, 0x4c, 0x4d, 0x3a, 0x95, 0x67, 0x97, 0xee, -0x98, 0x0b, 0x98, 0xb7, 0x8b, 0x0e, 0xc2, 0x5a, 0x63, 0xed, 0x29, 0x61, 0x62, 0x69, 0x0c, 0xf1, -0x0f, 0x77, 0x3b, 0x11, 0xc3, 0x98, 0xd9, 0x68, 0x99, 0x06, 0x4a, 0xe1, 0x63, 0x0f, 0x42, 0xcf, -0x94, 0xca, 0x1c, 0xa2, 0xa0, 0x3b, 0x69, 0xbe, 0xc5, 0xcd, 0x55, 0x80, 0xd3, 0xea, 0xe2, 0xea, -0x4c, 0x4f, 0x1b, 0xd1, 0x57, 0x04, 0x09, 0x62, 0xa5, 0xc7, 0x11, 0xcb, 0x0d, 0xa6, 0x7b, 0x64, -0x8d, 0x2e, 0xed, 0xbc, 0x53, 0x65, 0x86, 0x99, 0x51, 0xff, 0x58, 0x49, 0xe2, 0x35, 0xee, 0x9c, -0x86, 0xe2, 0x1d, 0x83, 0x49, 0x2b, 0x7b, 0x76, 0x16, 0xb4, 0xed, 0x69, 0x96, 0xed, 0x65, 0x22, -0x32, 0x19, 0xca, 0x61, 0xf8, 0xd8, 0x92, 0x42, 0xb5, 0xc4, 0x8f, 0xfa, 0xee, 0x88, 0x15, 0xec, -0x4a, 0xf7, 0x15, 0xe6, 0xa1, 0x1c, 0x31, 0xba, 0x60, 0xbd, 0xed, 0x5c, 0x70, 0x1c, 0xe5, 0x21, -0xc5, 0x24, 0x90, 0xab, 0x87, 0xfa, 0x9d, 0xa6, 0x3c, 0x64, 0x03, 0x93, 0xa0, 0x4c, 0x72, 0xc8, -0x84, 0x63, 0xfb, 0xaa, 0x52, 0x37, 0xf3, 0x25, 0x98, 0x63, 0x5b, 0x4e, 0x2d, 0xd5, 0x3a, 0x64, -0x2e, 0xd6, 0x3b, 0xac, 0xf4, 0xb2, 0x62, 0xc6, 0xc8, 0x28, 0x6c, 0x4d, 0xcc, 0x87, 0x44, 0x46, -0xbd, 0x73, 0x49, 0xe8, 0x39, 0x71, 0x0e, 0x2f, 0xf5, 0x64, 0x93, 0x75, 0x33, 0x12, 0x3f, 0x08, -0x19, 0xa3, 0xc4, 0x30, 0x15, 0xad, 0x42, 0x04, 0x39, 0x43, 0x04, 0xb9, 0x86, 0xb0, 0xfc, 0x48, -0x22, 0xd5, 0x30, 0xd6, 0x35, 0xe8, 0x8f, 0x0a, 0xfd, 0xe3, 0xa9, 0x5b, 0x2c, 0xd1, 0x15, 0xab, -0x8f, 0x2e, 0x31, 0xd1, 0xd1, 0x45, 0xe5, 0x23, 0xbc, 0x71, 0x4c, 0x43, 0x6f, 0x28, 0xcc, 0xd0, -0x9b, 0x4f, 0xe5, 0x41, 0x1f, 0xfb, 0xc1, 0xaf, 0x82, 0x28, 0x19, 0xaf, 0x8c, 0x8a, 0xa4, 0x0b, -0x41, 0xe8, 0x3f, 0x44, 0xed, 0x90, 0xcb, 0x37, 0xa0, 0x67, 0x44, 0x0b, 0xa4, 0x9a, 0x84, 0x5e, -0xf3, 0x60, 0x36, 0x8d, 0x08, 0xd7, 0x93, 0xa1, 0xc5, 0x5c, 0xcd, 0x3a, 0x22, 0xb6, 0x4b, 0xad, -0x26, 0xbb, 0x0c, 0x6d, 0xa7, 0x4d, 0xd0, 0xb2, 0xe2, 0x09, 0xa9, 0xea, 0x74, 0x7e, 0x77, 0x8e, -0xfa, 0x7d, 0x16, 0xe4, 0x3c, 0x4f, 0x2d, 0xd1, 0x0c, 0xd0, 0x7c, 0x81, 0x3e, 0x74, 0xc5, 0x46, -0xd1, 0xe3, 0x5e, 0x90, 0x6b, 0x18, 0x21, 0x31, 0x04, 0xe5, 0xb1, 0x14, 0x74, 0x8d, 0x58, 0x07, -0x14, 0x01, 0xfa, 0x0f, 0x16, 0x13, 0x6f, 0x9b, 0x82, 0x18, 0x89, 0xb9, 0xb7, 0x91, 0xea, 0xd1, -0x49, 0x3b, 0xa6, 0x90, 0x2e, 0xdd, 0x61, 0x4c, 0x11, 0x3f, 0xf8, 0x55, 0x10, 0xb5, 0xd5, 0x64, -0xcb, 0x8d, 0xf9, 0x85, 0x68, 0xbb, 0x5b, 0x48, 0x00, 0x95, 0x5a, 0x43, 0x0f, 0x83, 0x82, 0x24, -0xd9, 0x7d, 0xdf, 0x8e, 0x46, 0xa2, 0x35, 0x05, 0x13, 0x1d, 0x84, 0x15, 0x93, 0x08, 0x82, 0xb5, -0x6a, 0x49, 0x9f, 0x90, 0x03, 0x7c, 0x0e, 0x70, 0x57, 0x3b, 0xe0, 0x17, 0x12, 0x8d, 0x12, 0x3b, -0x96, 0x3c, 0xa2, 0x75, 0x9c, 0x4d, 0x77, 0x47, 0x2c, 0x64, 0xed, 0x3e, 0x90, 0xf4, 0x15, 0xec, -0x77, 0xbc, 0x26, 0xce, 0xe3, 0x1e, 0x40, 0x39, 0x20, 0x56, 0x09, 0x87, 0x72, 0xa2, 0xdd, 0x8d, -0x24, 0x00, 0xde, 0x4f, 0x8f, 0x43, 0xff, 0x20, 0x74, 0xd5, 0x71, 0xb4, 0xae, 0xa0, 0x87, 0xa7, -0x29, 0x46, 0xaf, 0x8c, 0x3a, 0x41, 0x13, 0xcf, 0x50, 0xe2, 0xa6, 0x8f, 0x21, 0xe1, 0x82, 0xbe, -0x02, 0xee, 0xcc, 0xf9, 0xc3, 0xd7, 0x28, 0x41, 0x63, 0xc1, 0x88, 0x67, 0xa1, 0xf0, 0xdd, 0x0c, -0xb9, 0xc0, 0x8a, 0x20, 0x68, 0xeb, 0x4d, 0x10, 0x64, 0xdb, 0x67, 0x62, 0x5e, 0x58, 0x0e, 0x5e, -0x0f, 0x4f, 0x29, 0xdf, 0x5d, 0xa1, 0x89, 0x61, 0x86, 0x30, 0xeb, 0x89, 0x5f, 0xc6, 0x52, 0xc0, -0xd6, 0x17, 0xca, 0xe5, 0xbc, 0xee, 0x80, 0x41, 0x4f, 0x50, 0x36, 0x40, 0x02, 0x25, 0x5c, 0x03, -0xbd, 0x21, 0x81, 0x51, 0x2b, 0x29, 0xd6, 0x42, 0xef, 0xa5, 0x52, 0x3c, 0x55, 0x2f, 0x9c, 0xdf, -0xc8, 0x43, 0x43, 0x08, 0x4a, 0x02, 0xf9, 0x53, 0xe9, 0x3b, 0x0f, 0x41, 0x5a, 0x6f, 0x5b, 0xd3, -0x59, 0x2d, 0xb5, 0x17, 0x69, 0x43, 0x6b, 0x8d, 0x12, 0xad, 0x86, 0x74, 0x72, 0xf9, 0x1e, 0x03, -0xdf, 0xb7, 0xe9, 0xe8, 0x77, 0xfc, 0x6a, 0x93, 0xe8, 0xd0, 0xc3, 0x9c, 0x8e, 0xc7, 0x5a, 0x88, -0xb1, 0xe0, 0x3b, 0xfa, 0x66, 0x97, 0x07, 0x03, 0x95, 0xcb, 0x5d, 0x45, 0x5a, 0x77, 0x82, 0xa8, -0x94, 0x94, 0x11, 0x58, 0x7f, 0xea, 0x59, 0x22, 0xfa, 0xb8, 0x17, 0xd0, 0x0c, 0x30, 0xbf, 0xa4, -0x54, 0xf7, 0x59, 0x4e, 0x35, 0xda, 0x7c, 0x95, 0xf1, 0x06, 0x98, 0xa7, 0xe9, 0xb8, 0x57, 0xd2, -0x40, 0x25, 0xfe, 0x1a, 0xd4, 0xb9, 0x54, 0xdb, 0x0d, 0x75, 0x63, 0xee, 0x08, 0xba, 0x7a, 0xeb, -0x05, 0xb9, 0xc1, 0x04, 0x17, 0xb9, 0x41, 0xa0, 0xb2, 0x03, 0xd6, 0x10, 0x0f, 0x56, 0xa1, 0x2c, -0x80, 0x79, 0x97, 0x43, 0xa9, 0x23, 0x09, 0xbc, 0x79, 0xcc, 0xa5, 0xc4, 0x3d, 0xa1, 0x44, 0xd8, -0x4b, 0xb2, 0xb0, 0x10, 0xee, 0xe7, 0x7e, 0x31, 0x5c, 0x43, 0x7a, 0x0c, 0x8c, 0x31, 0x09, 0xb5, -0xd7, 0x2c, 0x15, 0xa8, 0x91, 0xa0, 0x60, 0x18, 0xe7, 0xc0, 0x57, 0xbd, 0x0f, 0x3d, 0x3b, 0x80, -0x97, 0x32, 0x6e, 0xfe, 0xb8, 0x7b, 0x01, 0x77, 0x03, 0xf0, 0x97, 0x12, 0x66, 0x30, 0xaf, 0xc5, -0x47, 0x25, 0x79, 0x04, 0x0c, 0x56, 0x4f, 0x31, 0x98, 0x20, 0x65, 0x05, 0x29, 0x37, 0x64, 0xc4, -0x1c, 0x33, 0xf6, 0x8a, 0xa1, 0x16, 0x2e, 0x29, 0xee, 0xb5, 0x05, 0xba, 0x94, 0x49, 0x66, 0xc8, -0x26, 0xfe, 0xe9, 0x96, 0x5e, 0x16, 0xe2, 0xc5, 0xe6, 0x0b, 0xb1, 0xf8, 0x3d, 0x79, 0x22, 0x3a, -0x81, 0xfe, 0x9d, 0xd2, 0x8d, 0x30, 0xef, 0xbc, 0x84, 0x2f, 0x9b, 0x58, 0x0b, 0x5f, 0x67, 0xd1, -0x56, 0xa0, 0xd9, 0x60, 0x45, 0xbe, 0xc7, 0x52, 0xcc, 0xe3, 0xdb, 0xab, 0x1c, 0x7d, 0x26, 0xc3, -0xaf, 0x07, 0xa4, 0xa3, 0x32, 0x40, 0x7d, 0xc2, 0x80, 0x36, 0x49, 0x17, 0x72, 0x86, 0x7b, 0x69, -0x7a, 0x0c, 0xdc, 0x79, 0xa5, 0x1a, 0x23, 0x2a, 0x68, 0xfd, 0xc4, 0xb8, 0x03, 0x7f, 0xa2, 0x92, -0x96, 0x64, 0x30, 0x94, 0xc1, 0x77, 0xe3, 0xee, 0xb1, 0x06, 0xea, 0x17, 0x0a, 0x3d, 0x3f, 0x85, -0x70, 0x57, 0x21, 0x6d, 0x0b, 0x63, 0x8c, 0xb9, 0x61, 0x91, 0x69, 0x64, 0x50, 0x3a, 0x2a, 0x3f, -0x17, 0x0e, 0x73, 0xd2, 0xb2, 0x3b, 0x35, 0x16, 0xf5, 0xdb, 0x82, 0xad, 0xd0, 0x87, 0x14, 0x6b, -0xd9, 0x48, 0x73, 0xbc, 0x1a, 0xbd, 0xb7, 0x40, 0x89, 0xf4, 0xee, 0x30, 0xca, 0xf9, 0xd8, 0x5e, -0x2e, 0x2d, 0x1d, 0x95, 0xbc, 0xed, 0x2e, 0xf5, 0x4a, 0x46, 0xeb, 0x45, 0x94, 0x46, 0x15, 0xe0, -0xad, 0x2d, 0xd7, 0x08, 0xda, 0xc6, 0xb9, 0xc5, 0xaa, 0x50, 0xba, 0x09, 0xa8, 0x49, 0x71, 0x98, -0x67, 0x24, 0x8c, 0x93, 0x08, 0xf3, 0xc0, 0xdb, 0x55, 0x5c, 0x84, 0xe9, 0x93, 0xc3, 0xf9, 0xd2, -0x70, 0xcf, 0x13, 0xe6, 0x34, 0x13, 0x93, 0xc2, 0xfa, 0xa2, 0x94, 0x5b, 0x78, 0x54, 0x05, 0x09, -0x8b, 0x9a, 0xca, 0x69, 0xbd, 0x69, 0x3b, 0xee, 0x53, 0xc7, 0xa5, 0x9a, 0x96, 0x00, 0x4d, 0xa9, -0xd1, 0x10, 0xdf, 0x16, 0x09, 0x44, 0xec, 0x87, 0xe3, 0xc7, 0x19, 0xb3, 0xa3, 0x0f, 0x36, 0x1b, -0xf3, 0x09, 0x99, 0x6b, 0x30, 0x56, 0xed, 0x36, 0xb8, 0x5d, 0x32, 0x86, 0xc5, 0xea, 0x3d, 0x2d, -0xc5, 0x84, 0x38, 0xac, 0xdf, 0x86, 0x93, 0x09, 0xa2, 0x62, 0x6e, 0x60, 0xd3, 0xdd, 0x00, 0x76, -0x78, 0xa4, 0x96, 0x48, 0x6b, 0xcc, 0x45, 0xe2, 0xd4, 0x58, 0x83, 0x5b, 0x9a, 0x71, 0xd7, 0xee, -0xa3, 0xb9, 0x44, 0xf2, 0x4d, 0x2e, 0x91, 0xd1, 0x31, 0x47, 0xb1, 0xbe, 0x1d, 0x7d, 0x27, 0xf2, -0x96, 0xa6, 0x03, 0xbe, 0x81, 0x52, 0xb3, 0x0a, 0xda, 0x0f, 0xcb, 0x68, 0x2f, 0x48, 0xbe, 0x81, -0x71, 0x0f, 0x78, 0x28, 0x88, 0xd7, 0x59, 0xc1, 0xef, 0x50, 0xf2, 0x5b, 0xaa, 0x54, 0x83, 0x84, -0xb6, 0xd3, 0x2a, 0x3c, 0x9f, 0xa0, 0xfe, 0x2e, 0x11, 0xb3, 0xef, 0xa0, 0xd4, 0x93, 0x9e, 0x28, -0x1c, 0x80, 0x92, 0x3d, 0x30, 0x4f, 0x82, 0x00, 0x37, 0x4d, 0xe0, 0xe5, 0x97, 0xa8, 0x3c, 0xf4, -0x10, 0xee, 0x10, 0x95, 0xeb, 0x45, 0xde, 0x50, 0x38, 0x55, 0x15, 0x68, 0xd8, 0x02, 0xee, 0x90, -0x8b, 0xdd, 0x50, 0x37, 0xba, 0x7b, 0x80, 0x16, 0x42, 0x4f, 0xd0, 0x6b, 0x3b, 0xba, 0x6b, 0x80, -0xf6, 0x44, 0x79, 0x2d, 0xd2, 0x06, 0x65, 0x1e, 0x51, 0xd1, 0x5d, 0xe1, 0xae, 0xbc, 0xff, 0x40, -0x87, 0x0c, 0xa9, 0x56, 0xb0, 0x01, 0x4b, 0xce, 0x3b, 0x43, 0xb8, 0xb7, 0x0e, 0x01, 0xb1, 0xeb, -0x9c, 0xdf, 0x3c, 0x1e, 0xfa, 0x76, 0x9a, 0x89, 0xa3, 0xd2, 0xd7, 0xbe, 0x16, 0xa3, 0xc9, 0x48, -0x6d, 0xc6, 0x2a, 0xa8, 0x07, 0x86, 0x8b, 0xa5, 0x87, 0x4e, 0xcc, 0x83, 0x39, 0xe2, 0xd0, 0x2d, -0xae, 0x54, 0x99, 0x1c, 0xf8, 0x4a, 0x4d, 0xec, 0x85, 0x82, 0x7d, 0xe4, 0x43, 0x98, 0x3a, 0xa5, -0xb8, 0x4f, 0xd0, 0x73, 0x99, 0xd3, 0x40, 0x8b, 0x12, 0x91, 0x88, 0xf7, 0xdf, 0x00, 0x6f, 0x64, -0xdc, 0x7d, 0xa0, 0x94, 0x02, 0x1d, 0xbe, 0x11, 0x55, 0x66, 0xf4, 0x1e, 0xd4, 0xca, 0x6a, 0x06, -0xb1, 0x29, 0x68, 0xe9, 0x50, 0xfb, 0x8c, 0xd7, 0x62, 0xf2, 0xe7, 0x3d, 0x26, 0x32, 0xa6, 0xa3, -0xb5, 0xcc, 0xac, 0xae, 0xb1, 0xc4, 0xa1, 0x41, 0x86, 0x52, 0xba, 0xeb, 0x05, 0x9f, 0x2d, 0x28, -0x07, 0x85, 0x96, 0x51, 0xa3, 0x50, 0x1a, 0x0c, 0x56, 0x2a, 0xb3, 0x32, 0x5f, 0xa8, 0x21, 0x8e, -0x35, 0x89, 0x8b, 0x26, 0x1b, 0x21, 0xab, 0xf4, 0x94, 0x13, 0x87, 0x12, 0x18, 0xf5, 0xe8, 0x27, -0x85, 0x6a, 0x4d, 0xa3, 0x9d, 0x74, 0x11, 0x70, 0xc9, 0x31, 0xc0, 0x21, 0xe9, 0x2d, 0x80, 0xc7, -0xa1, 0x87, 0x08, 0x95, 0xbf, 0xb7, 0x4f, 0x76, 0xf8, 0x41, 0xa1, 0xde, 0xa1, 0x34, 0xce, 0xd2, -0x66, 0xd2, 0x3c, 0x78, 0x29, 0x5c, 0x2c, 0xe9, 0x31, 0x0d, 0x70, 0xd5, 0x94, 0xaa, 0x89, 0x06, -0x5c, 0xaf, 0xa1, 0x29, 0xe8, 0xf4, 0x49, 0x04, 0xcf, 0x69, 0x70, 0x6d, 0x08, 0x6f, 0xe5, 0x65, -0xca, 0x99, 0x0e, 0x63, 0x52, 0xa2, 0xd7, 0x94, 0x24, 0x21, 0x95, 0x43, 0xd4, 0xc3, 0x8a, 0x20, -0x5d, 0xa5, 0x0a, 0xe6, 0xee, 0x7f, 0xba, 0xdb, 0xbe, 0xac, 0x58, 0xc4, 0xfe, 0xdc, 0xda, 0x27, -0x24, 0xfa, 0x2f, 0x92, 0x56, 0x4c, 0xe5, 0xb8, 0xdf, 0xa9, 0xae, 0x8a, 0x17, 0xfa, 0x39, 0x40, -0x2f, 0xc7, 0x2c, 0xf3, 0x4f, 0xec, 0x92, 0x58, 0x7e, 0x8c, 0x8c, 0x82, 0xd6, 0x42, 0x7f, 0x13, -0x2a, 0x68, 0x2d, 0x4d, 0x78, 0x30, 0x91, 0xa3, 0x24, 0xa4, 0x41, 0x2c, 0x36, 0x1e, 0xe1, 0x60, -0x05, 0x96, 0x03, 0x8e, 0xec, 0x44, 0xeb, 0x12, 0xd8, 0x52, 0x7b, 0xe5, 0x40, 0x47, 0x3a, 0x1a, -0xc2, 0x8a, 0xcb, 0x48, 0xf7, 0x58, 0xd2, 0xa9, 0xb7, 0x89, 0xc8, 0xa9, 0x9c, 0x50, 0x08, 0x7a, -0xdd, 0x01, 0x2c, 0xa1, 0x42, 0xd9, 0x9a, 0xdf, 0x28, 0xa7, 0xc3, 0x48, 0x92, 0x2e, 0x44, 0x05, -0xf1, 0xda, 0xf1, 0x6a, 0xc1, 0x0b, 0x99, 0xd0, 0x97, 0x25, 0x32, 0x9e, 0x12, 0x97, 0x63, 0x5f, -0x3b, 0x7a, 0x9a, 0x96, 0x39, 0xc0, 0xe9, 0x37, 0xb3, 0x88, 0x04, 0xb6, 0xf6, 0x3b, 0x93, 0x44, -0x5a, 0x64, 0xe6, 0x1f, 0x25, 0x3d, 0x07, 0xe3, 0xe0, 0x2a, 0xd5, 0x25, 0x28, 0x22, 0x28, 0xe1, -0x15, 0xa5, 0xd1, 0x13, 0x63, 0x2b, 0x7f, 0x3d, 0xe1, 0x8c, 0x19, 0xfd, 0xf5, 0x4c, 0x20, 0xb0, -0x42, 0x05, 0x02, 0xde, 0x82, 0x36, 0x44, 0xeb, 0x31, 0x28, 0xa9, 0x91, 0xc9, 0xef, 0x33, 0xf4, -0x19, 0xeb, 0xf0, 0xd3, 0xe4, 0x69, 0xcf, 0x14, 0xce, 0xb2, 0x70, 0xf7, 0xe2, 0x67, 0x58, 0xfb, -0x0f, 0xf1, 0x92, 0x2b, 0xf6, 0x32, 0x41, 0x96, 0x83, 0x90, 0x13, 0x6c, 0xbc, 0x20, 0xc3, 0x42, -0xc8, 0x9a, 0xcc, 0x40, 0x41, 0xd6, 0x83, 0x90, 0x2a, 0x5e, 0x0e, 0x04, 0x42, 0x6c, 0x82, 0x78, -0x95, 0x82, 0x9c, 0x07, 0x21, 0xcb, 0xb3, 0x80, 0x83, 0x12, 0xa4, 0x3d, 0xd0, 0xce, 0xd6, 0x14, -0x68, 0xbd, 0x2e, 0x10, 0x62, 0x6e, 0x77, 0x13, 0x41, 0x5c, 0xc4, 0xf7, 0xdd, 0x64, 0x25, 0x60, -0x7b, 0x9b, 0x58, 0xe9, 0x15, 0x66, 0x02, 0x0c, 0x2e, 0x4a, 0xae, 0x82, 0x55, 0x4d, 0x01, 0xbc, -0x5a, 0x26, 0x63, 0x96, 0x57, 0x51, 0x7b, 0x3c, 0x19, 0x40, 0xc7, 0x89, 0x49, 0x47, 0xbb, 0x3f, -0xb4, 0x9e, 0xa2, 0x45, 0xde, 0x5c, 0x1c, 0xcc, 0xfd, 0x41, 0x3a, 0x62, 0x5a, 0x6c, 0x84, 0x75, -0xba, 0x3d, 0x9c, 0xd0, 0x50, 0xac, 0xae, 0xa3, 0x89, 0xf8, 0xb3, 0x2a, 0xf8, 0xed, 0xc0, 0x76, -0x81, 0xdf, 0x00, 0xb6, 0x13, 0x84, 0x91, 0xb3, 0xfe, 0x10, 0x46, 0x01, 0x61, 0x44, 0x10, 0x46, -0x06, 0x25, 0xc1, 0x53, 0x60, 0x11, 0x1d, 0xd3, 0x03, 0x85, 0xf9, 0x52, 0x47, 0x2d, 0xe4, 0x9e, -0xb6, 0xce, 0xb0, 0x0f, 0x57, 0xe7, 0xc2, 0x48, 0x3c, 0x68, 0x4b, 0xc5, 0xef, 0x1a, 0x33, 0x95, -0x0c, 0x16, 0x46, 0xbd, 0x8a, 0xd8, 0xa3, 0xa8, 0x6c, 0x1b, 0xa3, 0x87, 0xb7, 0xd4, 0x43, 0xaa, -0x46, 0x18, 0xf1, 0x3a, 0x26, 0x97, 0x1f, 0xf1, 0x30, 0xde, 0x19, 0x47, 0x5f, 0xd2, 0xd9, 0x6d, -0x72, 0x8c, 0xf6, 0x09, 0x04, 0xa5, 0x81, 0xcb, 0x83, 0x70, 0x15, 0x42, 0xcb, 0x52, 0x4c, 0x9a, -0xa2, 0x22, 0x75, 0x31, 0x6f, 0xf3, 0x49, 0x2f, 0x46, 0x0e, 0x0e, 0xf9, 0x51, 0x18, 0x0b, 0xfe, -0xe8, 0x67, 0x42, 0x89, 0xa3, 0x7e, 0x1a, 0x8e, 0xfa, 0x52, 0xd1, 0xe6, 0x69, 0x59, 0xfe, 0x38, -0xea, 0x79, 0x89, 0xd5, 0xf0, 0x12, 0x59, 0x17, 0x66, 0xce, 0xdf, 0x78, 0x3f, 0x75, 0xc8, 0x0d, -0xef, 0x83, 0x51, 0xc2, 0xfb, 0x6f, 0x43, 0x1c, 0x0c, 0xd4, 0x91, 0x60, 0x1f, 0x60, 0x36, 0xb4, -0x08, 0x11, 0x4f, 0x77, 0x8e, 0x78, 0x93, 0xd2, 0xdc, 0xe2, 0x6d, 0x0d, 0xbe, 0x64, 0xf3, 0xa3, -0x49, 0x6d, 0x3a, 0x55, 0xdb, 0x1d, 0xf5, 0x6b, 0x97, 0xc0, 0x3c, 0x09, 0x26, 0x1d, 0x3b, 0x96, -0x43, 0x3b, 0xfb, 0x77, 0xc4, 0xf5, 0xba, 0x03, 0xd2, 0x16, 0x00, 0x81, 0xa6, 0x3c, 0x12, 0x84, -0x7e, 0xa3, 0x60, 0x0d, 0x58, 0xce, 0x98, 0xe1, 0x57, 0x42, 0xf7, 0x07, 0x08, 0x4a, 0x23, 0x3c, -0x88, 0x4e, 0x5e, 0x04, 0x7d, 0xca, 0x38, 0xbe, 0x2b, 0xcd, 0x7a, 0xa8, 0x17, 0xcc, 0x22, 0x7e, -0xdf, 0x71, 0x6c, 0xf2, 0x22, 0xa0, 0x66, 0x55, 0x88, 0x01, 0x1e, 0x99, 0x42, 0x3b, 0x1a, 0x5b, -0xd2, 0x3a, 0xb6, 0xb0, 0xfb, 0xd0, 0x35, 0x79, 0x91, 0xba, 0x42, 0x69, 0xc4, 0x76, 0x01, 0xde, -0xc4, 0x8b, 0xbb, 0xcb, 0xa4, 0x21, 0x5d, 0x42, 0xfd, 0x1b, 0xdc, 0x37, 0x85, 0x70, 0xcd, 0x00, -0xdc, 0xc3, 0x29, 0xc3, 0xea, 0x73, 0x97, 0xc6, 0xd7, 0x24, 0x2f, 0xa2, 0x23, 0xc0, 0xe8, 0xd0, -0x2c, 0xe8, 0xce, 0x4b, 0x96, 0xa3, 0xcc, 0x73, 0xe1, 0x23, 0x72, 0x94, 0x11, 0x39, 0xef, 0x25, -0x17, 0xbf, 0xa1, 0x2d, 0x1e, 0x97, 0x34, 0x91, 0x97, 0xae, 0xa6, 0x61, 0xbc, 0xa1, 0x54, 0xbc, -0xe4, 0x74, 0xb8, 0xc0, 0x5b, 0xc3, 0xca, 0x9e, 0x5a, 0xe1, 0xaa, 0xa5, 0x89, 0x63, 0x1c, 0xf2, -0xf0, 0x82, 0xf1, 0x28, 0x21, 0x1d, 0xa9, 0x9f, 0x1b, 0x0c, 0x57, 0x03, 0xe3, 0x5e, 0x8d, 0x6d, -0xca, 0x32, 0x0f, 0xe5, 0xec, 0xcd, 0xe7, 0x0c, 0xb9, 0x4a, 0x30, 0x36, 0x7a, 0xf1, 0xd5, 0xcb, -0x93, 0xb7, 0xfd, 0xd1, 0x24, 0x70, 0x3a, 0x30, 0xae, 0x61, 0xce, 0x6d, 0x16, 0xd6, 0xd3, 0x7d, -0x8f, 0x68, 0x4b, 0x58, 0x1b, 0xe3, 0x9a, 0xfe, 0xa8, 0x49, 0x5e, 0x24, 0xc8, 0x0d, 0xe1, 0x7a, -0x5b, 0xf7, 0xc8, 0x76, 0xf5, 0xa0, 0x61, 0x1c, 0x6b, 0xf1, 0x69, 0x26, 0xed, 0x91, 0x6b, 0xa4, -0x63, 0x8d, 0xbe, 0x48, 0xd7, 0xe8, 0x7a, 0xc1, 0x5e, 0x3b, 0xf5, 0xe4, 0x82, 0xfa, 0x2d, 0xb8, -0x9f, 0xaf, 0xc9, 0x77, 0xae, 0xa0, 0x5b, 0xa9, 0x56, 0x4b, 0xbe, 0x93, 0xe6, 0x97, 0x61, 0xbf, -0xf0, 0x6b, 0x1b, 0xdb, 0x85, 0xae, 0x9b, 0x62, 0xe8, 0x3f, 0x1d, 0xe0, 0xf5, 0x24, 0x15, 0xea, -0x06, 0xdc, 0x75, 0x8c, 0x45, 0xca, 0x4d, 0x06, 0xf1, 0x6b, 0x5f, 0xf2, 0x90, 0xe6, 0x8b, 0x94, -0xce, 0xe7, 0x4f, 0x39, 0x10, 0x8b, 0x48, 0x80, 0x93, 0xef, 0x02, 0x9c, 0xba, 0xa4, 0x19, 0xcf, -0x39, 0x65, 0x65, 0x04, 0xe8, 0x30, 0xe6, 0xf4, 0x0c, 0x6d, 0x30, 0x7a, 0x0f, 0x8c, 0x82, 0x3a, -0x45, 0xf7, 0x20, 0xd2, 0x7e, 0x30, 0x42, 0x9a, 0x2f, 0xc1, 0xaf, 0x57, 0x33, 0x50, 0x14, 0x35, -0xef, 0x03, 0x1f, 0x60, 0x65, 0xcc, 0xb0, 0x12, 0xf1, 0xf2, 0x2a, 0x41, 0xe8, 0x49, 0x4f, 0x53, -0x08, 0x23, 0x21, 0xce, 0x20, 0xb5, 0xd4, 0x86, 0x79, 0xa0, 0x7e, 0xb3, 0x50, 0xd6, 0x65, 0x8c, -0x99, 0x4a, 0xfe, 0xa3, 0xc6, 0x3d, 0xfa, 0x06, 0x77, 0x13, 0xf4, 0x14, 0x5c, 0x30, 0xbf, 0xda, -0x6c, 0x85, 0x3e, 0xb3, 0x79, 0xc9, 0xf3, 0x88, 0x0f, 0xe9, 0x82, 0x3b, 0x23, 0xba, 0xb8, 0xe0, -0x42, 0x12, 0xde, 0x7c, 0x15, 0x4b, 0xa4, 0x42, 0xdf, 0x31, 0x71, 0x6a, 0x33, 0x62, 0x7a, 0x41, -0x2e, 0x7c, 0xe7, 0xc0, 0x6b, 0xcd, 0x37, 0xd0, 0xff, 0x0b, 0x1f, 0xc3, 0x06, 0x3c, 0x96, 0x08, -0x53, 0x57, 0x58, 0x0a, 0x78, 0x59, 0x99, 0x7e, 0x32, 0x18, 0xb9, 0xd7, 0x29, 0x77, 0x86, 0x7e, -0x96, 0xe5, 0x40, 0x17, 0x2a, 0x8e, 0xef, 0x81, 0xde, 0x3b, 0x9c, 0x70, 0x8d, 0xbb, 0xef, 0x1c, -0x47, 0x77, 0x1c, 0xe1, 0x71, 0x84, 0xa9, 0xcd, 0x25, 0xc4, 0x0f, 0xe6, 0x27, 0xaf, 0x23, 0x3f, -0x34, 0x7e, 0x68, 0x82, 0x2e, 0xd6, 0x50, 0x48, 0x64, 0x23, 0x2d, 0xfd, 0x2c, 0xcd, 0x97, 0xc2, -0x0a, 0x89, 0xd7, 0xc8, 0xc4, 0x7e, 0x89, 0xcd, 0xf5, 0xf0, 0x9d, 0xd8, 0x43, 0xd5, 0xb1, 0x11, -0x78, 0xae, 0xfa, 0x45, 0x78, 0x48, 0xf3, 0x25, 0xcb, 0x6e, 0x4b, 0xad, 0xa3, 0x05, 0x94, 0x71, -0x31, 0x50, 0x36, 0x94, 0xe8, 0x7f, 0xe5, 0x60, 0x89, 0x48, 0x90, 0xe9, 0xb7, 0x84, 0x1b, 0xa9, -0x37, 0x93, 0x6c, 0xc7, 0x77, 0xc6, 0xcb, 0xb1, 0xcf, 0xa1, 0x34, 0xfb, 0xf5, 0x20, 0x01, 0x54, -0xe3, 0x5f, 0x06, 0xbf, 0x62, 0x1b, 0xc3, 0x7a, 0x45, 0x16, 0x34, 0x5f, 0x3a, 0xbd, 0xb7, 0xba, -0x96, 0x0d, 0xc0, 0xbb, 0xea, 0x5a, 0x46, 0xce, 0xfb, 0x8d, 0x8d, 0x8c, 0x3f, 0x5d, 0xcb, 0x8a, -0x23, 0xe3, 0xd5, 0xd8, 0xa2, 0xc1, 0xa4, 0x43, 0x5d, 0x85, 0xae, 0xa0, 0xb9, 0xc1, 0x10, 0xe1, -0xf4, 0x01, 0x2e, 0x78, 0x3c, 0x52, 0xc6, 0x29, 0x49, 0xa9, 0xc8, 0x21, 0x67, 0x8f, 0xbd, 0x11, -0x51, 0xd0, 0x5c, 0x1f, 0x3c, 0xa0, 0xb9, 0x3e, 0x22, 0x1e, 0xcb, 0x49, 0x7d, 0x1d, 0xc6, 0x31, -0xde, 0x51, 0x90, 0x7a, 0x84, 0xaf, 0xe5, 0x8b, 0x81, 0xb7, 0x23, 0x39, 0x95, 0xaf, 0x1a, 0xc2, -0x24, 0xdc, 0x0e, 0xe4, 0xd4, 0xde, 0x7c, 0xcc, 0xe6, 0xc3, 0x3a, 0xcc, 0x27, 0x94, 0xf8, 0xd7, -0x55, 0x30, 0x98, 0x8f, 0xe1, 0xe1, 0x7c, 0x84, 0x90, 0xeb, 0xf8, 0xde, 0x39, 0x9f, 0x4d, 0x3a, -0xf1, 0x9e, 0x74, 0x21, 0x7c, 0xfd, 0xc2, 0x5a, 0x46, 0xc6, 0x97, 0xfb, 0xbc, 0xb1, 0x25, 0x57, -0x2a, 0xf3, 0x0f, 0x25, 0x12, 0xb4, 0x56, 0x14, 0x7f, 0xd2, 0x2e, 0x7b, 0xa8, 0x17, 0x30, 0x9a, -0x07, 0xa4, 0x75, 0xd5, 0xd1, 0xef, 0xfc, 0xce, 0x48, 0xf3, 0x56, 0x5e, 0x1b, 0xa5, 0xc5, 0x9f, -0x36, 0x4f, 0x27, 0xa0, 0x57, 0x4b, 0x99, 0x8e, 0xae, 0x75, 0xbe, 0x80, 0x97, 0x5c, 0xd6, 0x3a, -0x78, 0x0a, 0xa4, 0x23, 0x55, 0x2e, 0x78, 0xdd, 0xa6, 0x1c, 0x15, 0xae, 0x4b, 0xff, 0x80, 0xae, -0x08, 0x6a, 0x4d, 0x57, 0x8c, 0xe0, 0x6d, 0xec, 0xa0, 0x7f, 0x23, 0xf4, 0x57, 0x6f, 0x40, 0xdf, -0x7f, 0x40, 0x15, 0x45, 0x52, 0xea, 0xaf, 0x8b, 0x40, 0x05, 0x39, 0x28, 0xd6, 0xa4, 0x16, 0x2a, -0x48, 0x85, 0x76, 0xe3, 0x89, 0xde, 0x87, 0xe7, 0xde, 0x7e, 0x9f, 0x7e, 0xa2, 0x82, 0xd2, 0xde, -0xa3, 0xe4, 0x4b, 0xa9, 0x65, 0xbc, 0xa1, 0x9f, 0x5c, 0xe5, 0xee, 0xdb, 0x52, 0xd0, 0x3b, 0x9e, -0xdd, 0xda, 0x8a, 0xa6, 0x3d, 0xa6, 0x45, 0x9e, 0x30, 0x82, 0xae, 0x9a, 0x41, 0xfa, 0x58, 0x58, -0x39, 0x07, 0xc2, 0x6c, 0x02, 0x9a, 0x91, 0xc9, 0x17, 0x28, 0xc4, 0x24, 0x57, 0x3f, 0xa4, 0x34, -0xee, 0x40, 0xc7, 0x8a, 0x49, 0x6d, 0x27, 0xc8, 0x79, 0xdb, 0x09, 0xc5, 0xe2, 0xbf, 0xd2, 0x26, -0x70, 0xe8, 0x07, 0xa8, 0x05, 0x5f, 0x86, 0x80, 0x7c, 0xa3, 0x13, 0x79, 0x1d, 0x01, 0xd4, 0xc4, -0x95, 0x3b, 0xf7, 0x2f, 0x50, 0xdf, 0x38, 0x88, 0xda, 0x54, 0xe0, 0xe9, 0x60, 0x0f, 0x9e, 0x6e, -0xa5, 0xb2, 0xea, 0xe1, 0x40, 0x1d, 0x47, 0x3a, 0x6d, 0xe9, 0x74, 0x12, 0x3c, 0x03, 0x0a, 0xad, -0xe1, 0xba, 0xae, 0xb7, 0xe8, 0x04, 0xc0, 0x0a, 0x7b, 0x1a, 0x25, 0xa1, 0x90, 0xcb, 0x51, 0xb7, -0x70, 0x39, 0x54, 0x1f, 0xe0, 0x6b, 0xf4, 0xca, 0x75, 0x9a, 0xdf, 0x75, 0xe1, 0xfb, 0x58, 0x15, -0xfb, 0x4d, 0xad, 0x46, 0x07, 0x34, 0xba, 0xcf, 0xb3, 0xb3, 0x99, 0x78, 0x86, 0xee, 0x2a, 0x98, -0x4c, 0xda, 0x28, 0x52, 0xaf, 0xc9, 0x64, 0xf3, 0x51, 0xda, 0x5b, 0xa9, 0x90, 0x4f, 0x43, 0x19, -0x52, 0xb4, 0x30, 0x49, 0xa5, 0x22, 0xfd, 0xe9, 0x55, 0x6d, 0x4b, 0xa6, 0x7b, 0x8a, 0xf1, 0xf0, -0x2b, 0x65, 0x51, 0x0a, 0x4d, 0x52, 0x63, 0xc9, 0x17, 0x1b, 0x64, 0x61, 0xc0, 0xf9, 0x6d, 0x32, -0xc2, 0x9d, 0xa8, 0x06, 0xf8, 0x3d, 0xbb, 0x46, 0x8e, 0x7b, 0x42, 0x5e, 0x76, 0xe9, 0x31, 0xcb, -0x22, 0xa3, 0x41, 0xd4, 0xcb, 0x48, 0x75, 0xa2, 0x64, 0xd4, 0x3a, 0x8a, 0x1b, 0x50, 0x1c, 0x71, -0xc9, 0xe8, 0x4b, 0x44, 0x51, 0x2a, 0xa2, 0xed, 0x1c, 0xef, 0xa0, 0x7d, 0xa8, 0x2f, 0xc4, 0x0a, -0xab, 0xc9, 0xae, 0xc6, 0x94, 0x51, 0x2e, 0xcd, 0x52, 0x5b, 0x55, 0x99, 0x8a, 0x52, 0x17, 0xe7, -0xc2, 0x20, 0xdd, 0xc5, 0xfb, 0x82, 0x13, 0x01, 0xc7, 0x23, 0x97, 0x73, 0xb5, 0xec, 0xf4, 0xe9, -0x79, 0x14, 0x63, 0xbb, 0x71, 0x37, 0x82, 0xcd, 0xc0, 0xed, 0x20, 0xa7, 0x73, 0x17, 0xe8, 0xa6, -0x96, 0x71, 0x13, 0x1b, 0x8b, 0x3a, 0xd0, 0xad, 0xbd, 0xe6, 0x95, 0x73, 0x9b, 0x85, 0xd3, 0xea, -0x43, 0x4e, 0x29, 0xff, 0x96, 0xf6, 0x32, 0xfc, 0xe7, 0x5c, 0xa1, 0xe0, 0x13, 0xe4, 0x2a, 0x9e, -0x1e, 0xb7, 0xd8, 0x3f, 0x12, 0x0d, 0x45, 0xba, 0x46, 0x94, 0xea, 0x2c, 0x8b, 0xc9, 0xc5, 0x27, -0x3d, 0x7e, 0x8f, 0xe4, 0x7b, 0x42, 0x2d, 0x3e, 0x89, 0xde, 0xd6, 0xe9, 0xea, 0x07, 0x2d, 0xe4, -0xa4, 0x29, 0x06, 0x36, 0x3d, 0x58, 0x9e, 0xbc, 0x4c, 0x65, 0x7c, 0xc4, 0x37, 0xf7, 0xe4, 0x65, -0x54, 0x0e, 0xa5, 0x8e, 0xd2, 0x14, 0x0f, 0x7f, 0xf7, 0x10, 0xbe, 0x9f, 0xa6, 0xfb, 0x40, 0x8e, -0xf5, 0x52, 0xeb, 0xe0, 0x29, 0x5d, 0xf8, 0xc9, 0x3d, 0x80, 0x61, 0x0f, 0x39, 0x38, 0x4a, 0x26, -0x96, 0xa9, 0xe0, 0xa9, 0x0e, 0x32, 0xdd, 0x35, 0x55, 0x07, 0x8d, 0xa4, 0x10, 0x25, 0x6f, 0x7b, -0x20, 0x63, 0x62, 0x7b, 0x1a, 0x89, 0x97, 0x09, 0x78, 0xb8, 0x9e, 0xe5, 0xa4, 0x1d, 0xdd, 0xe5, -0x51, 0xc8, 0x8d, 0x80, 0x71, 0x25, 0x26, 0xb4, 0xde, 0xd5, 0x8e, 0x7e, 0x6f, 0xe9, 0x6b, 0x31, -0xd5, 0x5c, 0xbb, 0x0a, 0xb3, 0x95, 0xde, 0x3d, 0x18, 0xfe, 0xa8, 0x94, 0x81, 0xfa, 0xda, 0x76, -0x7f, 0x03, 0x13, 0xdb, 0x1e, 0x78, 0x20, 0xd4, 0x93, 0x60, 0x3b, 0x29, 0x07, 0x76, 0x8b, 0xc2, -0xb5, 0x98, 0x41, 0xef, 0x0f, 0x03, 0x54, 0x26, 0x47, 0xcb, 0x09, 0x3c, 0xa8, 0x9c, 0xef, 0x43, -0xaa, 0xbd, 0x8d, 0x33, 0x2d, 0x08, 0x96, 0x45, 0xaa, 0x4b, 0x07, 0xab, 0x09, 0x03, 0xed, 0x9e, -0xfc, 0xa8, 0x56, 0x87, 0xd9, 0x1f, 0xc9, 0xef, 0x95, 0xc6, 0xdc, 0x8a, 0x24, 0x80, 0xcb, 0xe4, -0xca, 0xf6, 0xc7, 0xb0, 0x1e, 0x31, 0xb4, 0xbc, 0x12, 0xea, 0x9f, 0x1a, 0x4a, 0x09, 0x38, 0x41, -0x05, 0xe5, 0x89, 0x14, 0x3c, 0xfe, 0xf9, 0xf3, 0xf8, 0x2a, 0x88, 0x6a, 0x78, 0xa3, 0x15, 0x56, -0xb5, 0x0b, 0x7d, 0xcc, 0xf7, 0xa1, 0x8b, 0x6f, 0x5b, 0x94, 0x0a, 0x1e, 0x95, 0xe9, 0xeb, 0xc2, -0x25, 0x8e, 0x12, 0x24, 0xec, 0xba, 0xdb, 0xf9, 0x53, 0x7f, 0x8d, 0x2d, 0x89, 0x45, 0xab, 0x15, -0xb2, 0x62, 0x6f, 0xa6, 0x02, 0xa5, 0x07, 0xd9, 0xa1, 0x6a, 0x78, 0x0a, 0x07, 0x2a, 0x40, 0x8e, -0x7b, 0xff, 0x5e, 0x36, 0x89, 0xd2, 0xca, 0xca, 0xc3, 0xb2, 0x89, 0x74, 0xf1, 0x01, 0x03, 0x94, -0xef, 0xf8, 0x3e, 0xf5, 0x4b, 0xac, 0x3f, 0x7a, 0x72, 0x85, 0x27, 0x29, 0x2b, 0x13, 0xee, 0x24, -0xca, 0x4a, 0x17, 0xca, 0x3b, 0xef, 0xcf, 0xac, 0xb8, 0xba, 0xe2, 0x58, 0x68, 0xa5, 0x70, 0xe4, -0xd3, 0x74, 0x54, 0x8f, 0x10, 0x4b, 0xae, 0x35, 0x7d, 0x5b, 0x0b, 0xed, 0x15, 0xf8, 0xa8, 0xf6, -0x52, 0x43, 0x7f, 0x02, 0xa7, 0x10, 0x4a, 0x24, 0xe2, 0x0a, 0x0e, 0x5a, 0x4d, 0x0e, 0xc3, 0x9c, -0x70, 0x36, 0x0b, 0xc5, 0x56, 0xe8, 0xc5, 0xb9, 0x9c, 0x7a, 0x11, 0x60, 0x8a, 0x35, 0x75, 0x0b, -0xb0, 0xcd, 0x20, 0x9d, 0x80, 0x96, 0x74, 0x5c, 0x71, 0x69, 0x58, 0x08, 0xdd, 0x49, 0xd7, 0x18, -0x60, 0xae, 0x55, 0xed, 0xaa, 0xa9, 0xb4, 0x6b, 0xeb, 0x62, 0x58, 0x5f, 0x98, 0xa9, 0x4a, 0xd4, -0x9d, 0x65, 0x14, 0x75, 0x05, 0x44, 0xd2, 0xcf, 0x28, 0xf4, 0x82, 0x73, 0xd4, 0x34, 0x7d, 0x4c, -0x7b, 0xc0, 0xad, 0x05, 0xf3, 0x0a, 0x7c, 0xa6, 0x4a, 0xad, 0xa7, 0x1a, 0x68, 0x3a, 0xa0, 0xb2, -0x74, 0x48, 0x65, 0x09, 0xb4, 0x94, 0x81, 0x3f, 0xd1, 0x85, 0x95, 0x51, 0x03, 0x78, 0x63, 0x97, -0x0a, 0x77, 0x58, 0x91, 0xae, 0xce, 0x83, 0xe5, 0xcc, 0xac, 0x1c, 0x3a, 0xa4, 0x62, 0xc8, 0x34, -0x6a, 0x2f, 0xa6, 0x0b, 0xaf, 0x69, 0xfe, 0x60, 0x19, 0xc5, 0x15, 0x0e, 0xbe, 0x23, 0x56, 0x39, -0xc0, 0x39, 0x3f, 0x8d, 0x54, 0xa3, 0x9e, 0xa7, 0xb8, 0xe4, 0x0e, 0x8a, 0xab, 0x0d, 0x9f, 0xed, -0x85, 0x1c, 0xd4, 0x9f, 0xf0, 0xd9, 0xe4, 0x7f, 0xcf, 0x67, 0x3f, 0xac, 0xfd, 0x06, 0x18, 0x2c, -0xdf, 0xb1, 0xaf, 0xe5, 0xc0, 0x60, 0x8f, 0xc6, 0x24, 0xdc, 0xba, 0xe4, 0x65, 0x5a, 0x02, 0x73, -0x7d, 0xb3, 0x63, 0x17, 0x5d, 0xcd, 0x9f, 0x07, 0xc7, 0x3a, 0x4f, 0x59, 0x36, 0x3b, 0x7c, 0xe3, -0x08, 0x38, 0x6e, 0x8f, 0x80, 0xe3, 0x0e, 0x51, 0x1c, 0x57, 0xc7, 0x9f, 0x23, 0x03, 0x66, 0xcc, -0x77, 0xc6, 0xf1, 0xe1, 0xf2, 0x85, 0x53, 0x99, 0x52, 0xc1, 0x23, 0x53, 0xb9, 0xe0, 0x81, 0x69, -0xa6, 0x90, 0xe6, 0x5c, 0x21, 0xcd, 0x25, 0xf4, 0xea, 0x4e, 0xe5, 0x7c, 0xc4, 0x44, 0xca, 0xad, -0xa6, 0x69, 0xae, 0xa1, 0x67, 0xb5, 0x0e, 0x79, 0xc1, 0x73, 0x42, 0xba, 0x6e, 0xa4, 0x1b, 0xc5, -0xaf, 0xb8, 0xaf, 0x55, 0x4f, 0xf7, 0xb4, 0xae, 0x3e, 0x1a, 0x03, 0xc2, 0x97, 0x2a, 0xf4, 0xe9, -0xf3, 0x68, 0xfc, 0x07, 0x5f, 0xaa, 0x01, 0x6a, 0xff, 0x64, 0x5f, 0x6d, 0x9f, 0x0b, 0x0e, 0xac, -0x6b, 0xd9, 0x51, 0x43, 0xdc, 0x03, 0x98, 0x59, 0xd3, 0x06, 0x47, 0x79, 0xf1, 0x76, 0x4e, 0x92, -0xb7, 0x35, 0x67, 0x46, 0x12, 0x2a, 0x15, 0x50, 0x1c, 0x1c, 0xc7, 0x95, 0xb9, 0xa4, 0x71, 0x0e, -0xda, 0x36, 0xdf, 0x91, 0x8e, 0x56, 0xd0, 0x57, 0x25, 0xcb, 0x11, 0xdb, 0xa2, 0xb7, 0x6e, 0xba, -0x5e, 0xdd, 0x70, 0xec, 0xca, 0xc5, 0x5c, 0x83, 0x1a, 0x5a, 0x78, 0xff, 0x78, 0xad, 0xe7, 0xde, -0xc3, 0xfb, 0x72, 0x98, 0x8a, 0xb0, 0x62, 0x9b, 0xbe, 0xa9, 0x7d, 0xa8, 0xae, 0xd4, 0x7e, 0xcc, -0x83, 0x43, 0xc9, 0xcb, 0x60, 0x7d, 0x95, 0xf7, 0x32, 0x13, 0xdf, 0x47, 0x84, 0x80, 0xb6, 0x7a, -0x4a, 0xe0, 0x73, 0xec, 0x32, 0xd5, 0xac, 0xa7, 0x70, 0x2f, 0x2f, 0x5e, 0x08, 0x57, 0xad, 0x77, -0x03, 0xce, 0xf8, 0x5d, 0xd4, 0x10, 0xb0, 0xce, 0xb2, 0xfb, 0x3a, 0xdf, 0xba, 0xd3, 0x37, 0xd3, -0xed, 0x0e, 0x8e, 0xa8, 0xd1, 0x81, 0x87, 0x5d, 0x4b, 0xe8, 0xdc, 0x0f, 0x4c, 0xa2, 0xfb, 0xb0, -0x7f, 0x87, 0x19, 0xd1, 0xd3, 0xb7, 0x89, 0x4a, 0x4c, 0xa1, 0xb5, 0x31, 0x33, 0xab, 0x15, 0x76, -0x7c, 0xbc, 0x04, 0xbf, 0xcc, 0x61, 0xac, 0x97, 0x80, 0xd9, 0xe4, 0x6c, 0x00, 0xc5, 0x8f, 0x63, -0x05, 0xfc, 0x18, 0x26, 0xbc, 0xf7, 0x55, 0x56, 0xf2, 0xd8, 0x4f, 0xb9, 0x06, 0xbe, 0xfe, 0x03, -0xdc, 0xe7, 0x38, 0x9f, 0x6b, 0x99, 0x9b, 0x48, 0xdb, 0x02, 0x77, 0x27, 0xb1, 0x2b, 0x9c, 0x75, -0x25, 0x80, 0xeb, 0x57, 0xa7, 0x2c, 0x60, 0xfc, 0xdb, 0xbc, 0xab, 0x4a, 0x59, 0xf0, 0x77, 0x73, -0x36, 0x88, 0xb4, 0xec, 0x2f, 0xf7, 0x6f, 0xb5, 0xb7, 0xc1, 0x7b, 0xa5, 0x6a, 0x45, 0x49, 0xb8, -0x29, 0x3c, 0x04, 0x3d, 0x19, 0x4f, 0x5e, 0x32, 0x4d, 0x21, 0xe3, 0xce, 0xd1, 0x11, 0x5e, 0xcf, -0x98, 0x91, 0xe2, 0x42, 0xef, 0xa6, 0xf4, 0xdc, 0x99, 0x09, 0x15, 0x9f, 0x9f, 0xc6, 0x53, 0x16, -0x88, 0x69, 0xb9, 0xab, 0x42, 0xec, 0x1b, 0xd0, 0xfa, 0x75, 0x40, 0xff, 0x50, 0xeb, 0x0d, 0x14, -0xdb, 0xe6, 0xbb, 0x8c, 0x9c, 0xab, 0x8e, 0xb2, 0xb5, 0x8a, 0xe5, 0xc9, 0x21, 0x17, 0x75, 0x3a, -0xd8, 0xca, 0x35, 0xfe, 0xc3, 0x18, 0x32, 0xee, 0x06, 0x8c, 0xd0, 0x8b, 0xe8, 0x73, 0xf5, 0xcf, -0x63, 0x4c, 0x26, 0x13, 0xae, 0x9e, 0x9c, 0xa7, 0xa3, 0x58, 0x84, 0x85, 0x2e, 0xd2, 0xa5, 0x7e, -0x76, 0x9f, 0xfa, 0xd1, 0x26, 0x64, 0x67, 0x66, 0x28, 0xbd, 0x47, 0xcf, 0xec, 0x95, 0x99, 0x72, -0x7a, 0x2f, 0xb5, 0x11, 0x51, 0x14, 0x9b, 0x4f, 0xef, 0x3d, 0xed, 0x7d, 0xe9, 0xd5, 0x07, 0xde, -0x69, 0xf0, 0x74, 0x0f, 0x9e, 0x64, 0xa4, 0x83, 0xbd, 0x6f, 0xa6, 0x2f, 0xdc, 0xb9, 0x51, 0x3f, -0xec, 0x0a, 0xe7, 0xfb, 0x00, 0x7b, 0x20, 0xbd, 0x76, 0xb4, 0x11, 0xd2, 0xc4, 0x32, 0xca, 0x84, -0xa7, 0xf1, 0xd4, 0x10, 0x4f, 0x0b, 0xaf, 0x22, 0xb7, 0xcd, 0xd5, 0xc1, 0xdd, 0x25, 0x7a, 0x77, -0x1a, 0xee, 0x4e, 0xd3, 0xbb, 0x8b, 0xe8, 0xc5, 0x9d, 0x09, 0xe1, 0x4e, 0x43, 0x09, 0xf6, 0xa6, -0x55, 0xb0, 0xfe, 0x78, 0xaf, 0x0c, 0xe1, 0xea, 0x16, 0x7d, 0xc0, 0x5d, 0xdc, 0x54, 0x31, 0x86, -0x90, 0x1a, 0x4a, 0x51, 0x9e, 0x9e, 0x2c, 0xa2, 0x12, 0x7e, 0x09, 0x5d, 0x21, 0x16, 0x7a, 0x67, -0x25, 0xd5, 0xca, 0x84, 0x6e, 0x78, 0x2f, 0xc3, 0xfd, 0x41, 0x81, 0x62, 0x77, 0x63, 0xe2, 0x01, -0x33, 0x25, 0x73, 0x7c, 0x7e, 0x37, 0x94, 0x09, 0x78, 0xee, 0x84, 0x3d, 0x40, 0x71, 0xbc, 0x4e, -0x65, 0x46, 0x4f, 0xab, 0xb0, 0xa2, 0xaa, 0x28, 0x67, 0x84, 0x67, 0xe6, 0x92, 0xa5, 0x07, 0xd4, -0xb1, 0x02, 0x36, 0xc8, 0x87, 0x51, 0xed, 0xb8, 0x2f, 0xa3, 0x71, 0x65, 0xff, 0x45, 0x3c, 0x08, -0x15, 0x83, 0x1c, 0xb7, 0x40, 0x25, 0xab, 0x78, 0x2f, 0x5a, 0x73, 0x05, 0xea, 0xf7, 0x2a, 0x7c, -0x3b, 0x04, 0xfd, 0x75, 0x43, 0x69, 0x0e, 0x86, 0xf4, 0xff, 0xaa, 0xdf, 0x18, 0x77, 0x7a, 0x72, -0xb2, 0x5a, 0xd8, 0xc1, 0xbf, 0x81, 0x9c, 0x8a, 0x86, 0xf7, 0x8a, 0x4c, 0x57, 0xd4, 0x70, 0x18, -0x7d, 0xb1, 0xbc, 0x6e, 0x2e, 0x9e, 0x45, 0x79, 0xea, 0x13, 0x49, 0x50, 0x8b, 0xf6, 0x1d, 0x60, -0x01, 0xf4, 0x75, 0xcb, 0x4b, 0x9f, 0x75, 0xb0, 0x27, 0x53, 0x89, 0x33, 0xec, 0x51, 0xc6, 0xe9, -0x5b, 0x7d, 0x39, 0xab, 0x15, 0x74, 0x0d, 0x52, 0x78, 0xbd, 0x02, 0xea, 0xbb, 0x61, 0x2c, 0xae, -0xc1, 0xbc, 0xf7, 0xc1, 0xf0, 0x12, 0x8d, 0x9c, 0xee, 0x19, 0x42, 0x0b, 0xe3, 0xdb, 0x62, 0x4f, -0x61, 0x96, 0x97, 0x0b, 0xf4, 0x04, 0xbf, 0x8b, 0x9e, 0xef, 0x28, 0xbf, 0x73, 0xc6, 0x45, 0xd3, -0xef, 0x1e, 0xc2, 0xf7, 0xa4, 0x87, 0xbe, 0x77, 0xa1, 0xdf, 0x65, 0xc2, 0x77, 0xdd, 0x43, 0xdf, -0x83, 0xda, 0xf8, 0x57, 0x77, 0xae, 0xf6, 0x6c, 0x3d, 0x9d, 0xcb, 0x12, 0x9e, 0xc6, 0xf8, 0x7f, -0x9a, 0x2f, 0x20, 0x88, 0xf3, 0x09, 0xb9, 0xfb, 0x67, 0x7c, 0x01, 0x39, 0xdf, 0xc2, 0x17, 0xfc, -0xd9, 0x79, 0x93, 0xca, 0xf8, 0x67, 0xe7, 0x4c, 0x3c, 0x5f, 0xf0, 0x67, 0x27, 0x4d, 0xff, 0x90, -0x2b, 0xb8, 0xd2, 0x96, 0x2b, 0xb0, 0x87, 0x3a, 0xe8, 0xf7, 0x3f, 0xfc, 0x9d, 0x69, 0x8f, 0x2d, -0x11, 0xbb, 0xa6, 0x4d, 0xa9, 0x77, 0xea, 0xed, 0xf9, 0x9f, 0x52, 0xef, 0x94, 0x9a, 0xd3, 0x13, -0x95, 0x06, 0xc7, 0x9e, 0x9e, 0xe8, 0x18, 0x33, 0xee, 0x36, 0x97, 0x88, 0x98, 0xd8, 0x4d, 0x6b, -0x80, 0x9a, 0xcb, 0xe0, 0x77, 0x49, 0x12, 0x1a, 0x65, 0xb8, 0xff, 0x8b, 0x54, 0x9d, 0x8e, 0x52, -0x75, 0x48, 0xf9, 0x9a, 0xb5, 0xe8, 0x91, 0x1a, 0x28, 0x66, 0x65, 0xda, 0xc3, 0x54, 0x1d, 0xdd, -0xd5, 0xf1, 0x05, 0x86, 0x20, 0x16, 0xcf, 0xcc, 0xf5, 0x72, 0xba, 0xa7, 0xe8, 0x42, 0xb9, 0xf1, -0x7b, 0x0b, 0xd4, 0x9b, 0xa1, 0x63, 0x77, 0x21, 0xb6, 0x35, 0x5e, 0xff, 0x5f, 0xd3, 0x75, 0xfc, -0x4c, 0x8b, 0xec, 0x4b, 0x69, 0xf0, 0x22, 0x9e, 0x06, 0x87, 0x16, 0xf5, 0xa2, 0xe7, 0xcf, 0xbb, -0x55, 0xfc, 0xe9, 0x21, 0x2b, 0x5f, 0x42, 0x77, 0x30, 0xa4, 0x9f, 0xfc, 0xcc, 0xdd, 0xb7, 0xa5, -0x02, 0x77, 0x2e, 0xb3, 0x27, 0xd1, 0xd6, 0x36, 0x3b, 0x76, 0x30, 0xd4, 0xc4, 0xde, 0x57, 0xd8, -0xbf, 0x30, 0x13, 0x46, 0x1f, 0xcb, 0xef, 0x5f, 0x08, 0xe3, 0xba, 0x65, 0xd7, 0xbf, 0xf5, 0x1e, -0x46, 0xac, 0xeb, 0x1e, 0xc6, 0x88, 0x20, 0xe7, 0x28, 0xaf, 0x74, 0xae, 0x59, 0x82, 0xb4, 0x02, -0xd2, 0x86, 0x74, 0xb7, 0x20, 0x10, 0x46, 0xfa, 0x56, 0x7e, 0xd6, 0xab, 0x07, 0x32, 0x09, 0xdd, -0x35, 0x3c, 0xbe, 0x2b, 0x97, 0x97, 0x91, 0x09, 0x64, 0xb2, 0x18, 0x66, 0xee, 0xaa, 0x56, 0x72, -0xa8, 0x21, 0x76, 0x8b, 0x20, 0x13, 0xdd, 0xd5, 0x3e, 0x45, 0x58, 0xe1, 0x3d, 0x6d, 0x93, 0xd9, -0x50, 0xfa, 0x4e, 0x63, 0x2f, 0xa4, 0xd7, 0xb1, 0xb6, 0x6c, 0x76, 0x84, 0x20, 0x13, 0xad, 0x16, -0xf4, 0xad, 0x0d, 0x76, 0xad, 0x20, 0x01, 0x9d, 0xc4, 0x86, 0xe9, 0x44, 0x6c, 0x3c, 0x95, 0xde, -0xf6, 0xe3, 0xb6, 0x52, 0x49, 0x67, 0xaa, 0xe1, 0xc9, 0xb4, 0xe7, 0x6a, 0xa9, 0xc4, 0xb3, 0x96, -0x3e, 0x89, 0xb8, 0x7d, 0x96, 0x5d, 0xd4, 0xef, 0xf8, 0x21, 0x36, 0x90, 0xbe, 0xf1, 0x86, 0x35, -0x91, 0x6a, 0xe8, 0x6a, 0x45, 0xac, 0x54, 0x2d, 0x62, 0xc5, 0x1a, 0xfe, 0x3c, 0x65, 0x80, 0xeb, -0x79, 0x0a, 0x97, 0xc2, 0x24, 0x50, 0xb9, 0xa1, 0x73, 0xc1, 0x29, 0x74, 0x7d, 0xdb, 0x8a, 0xeb, -0x1b, 0x7d, 0x27, 0xe3, 0xee, 0x6e, 0x6e, 0x75, 0xe6, 0xe6, 0xba, 0x67, 0xc0, 0xef, 0x36, 0xa9, -0x4d, 0x4c, 0x02, 0x7f, 0x0a, 0x04, 0x6b, 0x93, 0x8c, 0xf2, 0xf5, 0x62, 0xfe, 0x54, 0x02, 0x56, -0xea, 0x0a, 0x98, 0x2d, 0x95, 0x0e, 0x5b, 0x06, 0x5f, 0x1b, 0x79, 0x09, 0x95, 0x5e, 0xf5, 0xe8, -0x6d, 0x14, 0xf2, 0x98, 0x2b, 0xc8, 0x30, 0x2e, 0x41, 0xaf, 0x8a, 0x8f, 0xa0, 0x44, 0x97, 0x33, -0x09, 0xed, 0xe3, 0x80, 0x9f, 0xae, 0x32, 0xad, 0x01, 0x4e, 0x34, 0x9e, 0x5f, 0x11, 0x84, 0x79, -0x78, 0xcb, 0x39, 0x07, 0x13, 0x28, 0x67, 0x2e, 0xb7, 0x39, 0xe8, 0xb1, 0x1b, 0x2e, 0x3b, 0xd4, -0xce, 0xb2, 0xbe, 0x72, 0xd0, 0x3a, 0xd3, 0x9e, 0x4d, 0xeb, 0x6e, 0x76, 0x9c, 0x24, 0xc0, 0xda, -0x66, 0x04, 0x6a, 0x27, 0x15, 0xca, 0x78, 0x51, 0x58, 0xcf, 0x5a, 0x3c, 0x65, 0xba, 0x31, 0x32, -0xee, 0xa2, 0xd0, 0x2e, 0xf5, 0xce, 0x9d, 0x14, 0x2b, 0xef, 0xab, 0xd9, 0x89, 0xb1, 0x02, 0x5c, -0x4e, 0x62, 0x5d, 0x72, 0x63, 0xbc, 0xe9, 0x4a, 0xc2, 0x0a, 0x7b, 0x29, 0x8d, 0x74, 0xcf, 0x4b, -0x18, 0x4d, 0x88, 0x33, 0xc3, 0x61, 0xc6, 0xd0, 0x55, 0x04, 0xad, 0xb9, 0x34, 0xba, 0xac, 0x21, -0x21, 0xdc, 0x5d, 0x61, 0xd4, 0x84, 0xb6, 0xe2, 0x93, 0x53, 0x59, 0x2f, 0x7e, 0x74, 0xa0, 0xb4, -0x31, 0xee, 0x29, 0x3a, 0xd7, 0x0b, 0x19, 0x5d, 0x2f, 0x34, 0xc2, 0xd8, 0xb8, 0x2b, 0xdc, 0xb5, -0x87, 0xbb, 0x2e, 0xce, 0x3d, 0x31, 0x17, 0xba, 0x94, 0xea, 0xd2, 0x53, 0xdf, 0xec, 0x54, 0x66, -0xe0, 0x5c, 0x31, 0x61, 0xaf, 0xf2, 0x16, 0x33, 0xa2, 0x90, 0x0b, 0x36, 0xc2, 0xec, 0x33, 0x03, -0xbe, 0xb1, 0xfc, 0xc9, 0x4e, 0xa3, 0x13, 0x17, 0x68, 0xa1, 0xef, 0x27, 0x93, 0x62, 0xc0, 0x47, -0x35, 0x88, 0x8f, 0x08, 0x79, 0x17, 0xf8, 0x4d, 0xa8, 0xd5, 0xe9, 0xb9, 0x71, 0xd7, 0x89, 0x4a, -0x90, 0x54, 0x73, 0x95, 0x47, 0x72, 0x13, 0xec, 0xa1, 0x4a, 0x48, 0x24, 0x8c, 0x0d, 0x99, 0xa5, -0x36, 0xa5, 0x02, 0x4f, 0xa0, 0xe1, 0x9e, 0x6a, 0x0e, 0xa1, 0x2c, 0x92, 0x16, 0x66, 0x24, 0x60, -0x9e, 0xc1, 0x4a, 0xab, 0x80, 0xad, 0xca, 0x10, 0xb7, 0x3d, 0x6b, 0x44, 0xdc, 0x36, 0x24, 0x46, -0x17, 0xab, 0x2a, 0x04, 0x9e, 0x15, 0x67, 0x6d, 0x21, 0xcf, 0xb3, 0xa2, 0xb7, 0xd7, 0xd6, 0xd8, -0x4d, 0xe0, 0x4a, 0xbd, 0xf4, 0x44, 0x19, 0x0b, 0x78, 0x0d, 0xf0, 0x1b, 0x70, 0xa7, 0x2d, 0xd8, -0x2d, 0x08, 0x56, 0x78, 0xde, 0xce, 0x69, 0xe0, 0x9f, 0xed, 0xed, 0x32, 0xe9, 0x0f, 0x63, 0x31, -0x18, 0x35, 0x92, 0x87, 0x77, 0x76, 0xff, 0xc9, 0x1e, 0xae, 0xc3, 0xbe, 0x3c, 0xf0, 0xad, 0x82, -0xdc, 0x67, 0xf3, 0xba, 0x87, 0xf8, 0xd5, 0x63, 0x0f, 0xbd, 0x39, 0x24, 0xec, 0x95, 0xd6, 0x0b, -0xde, 0x55, 0x53, 0x74, 0x7a, 0xc2, 0x46, 0xe8, 0xc9, 0xf0, 0xbe, 0x7a, 0x32, 0x0a, 0xc2, 0x25, -0xf1, 0x3e, 0xee, 0x11, 0xfb, 0x23, 0xd5, 0x91, 0x56, 0x51, 0xf2, 0x00, 0xc6, 0x08, 0x11, 0x75, -0xd1, 0x16, 0x91, 0x74, 0x7a, 0xf6, 0x91, 0x43, 0xc2, 0x61, 0xcd, 0xc8, 0x03, 0x8e, 0x23, 0xde, -0xb1, 0xaf, 0x1d, 0x1d, 0x4c, 0x94, 0xe7, 0xf3, 0x08, 0x83, 0x6d, 0x1a, 0x09, 0x2d, 0x3a, 0xd4, -0x1c, 0xe6, 0xf6, 0xc5, 0x57, 0xa7, 0x63, 0xa0, 0x75, 0x65, 0xd6, 0xc5, 0x76, 0x4d, 0x86, 0x11, -0xf7, 0x2e, 0xc4, 0x62, 0x62, 0x80, 0x1c, 0xd2, 0xf5, 0x30, 0xf7, 0x49, 0xb8, 0x1e, 0xe6, 0x29, -0x89, 0xec, 0x0f, 0x7d, 0x23, 0x8d, 0xe1, 0x7e, 0x3f, 0x66, 0xec, 0x1f, 0x43, 0x8c, 0x54, 0x62, -0x4f, 0x67, 0x93, 0x98, 0xc4, 0x30, 0xfb, 0xd1, 0x3a, 0x16, 0xea, 0x59, 0x4a, 0x50, 0x2e, 0x33, -0xcc, 0xed, 0x18, 0x9e, 0x31, 0xe6, 0x11, 0x89, 0x26, 0xc5, 0x14, 0xcb, 0x4a, 0x52, 0x63, 0x35, -0x46, 0xe0, 0x1c, 0xb2, 0x37, 0xc5, 0xda, 0x1a, 0xd9, 0x4c, 0x28, 0xb3, 0x1b, 0xcc, 0xf7, 0x2e, -0x1b, 0x6b, 0x6d, 0xfe, 0xc5, 0x5c, 0xcd, 0xfb, 0x24, 0xd0, 0x26, 0xa3, 0xa7, 0xc6, 0x3a, 0x1a, -0x1b, 0x2d, 0x32, 0x89, 0xd1, 0xfe, 0x73, 0x0c, 0xcc, 0xee, 0xaf, 0x8b, 0xf5, 0xc5, 0x32, 0x42, -0xcc, 0xfd, 0xcd, 0x24, 0x1a, 0x7a, 0x46, 0x99, 0x66, 0xac, 0x33, 0x43, 0x29, 0x4c, 0x4c, 0x1a, -0xdd, 0x87, 0x36, 0x68, 0xe3, 0x05, 0x7b, 0x79, 0xaf, 0xa5, 0xc5, 0xa5, 0xc6, 0x9e, 0x4e, 0x10, -0x8b, 0xb9, 0x66, 0x4d, 0xba, 0x75, 0x89, 0x5d, 0x62, 0x8d, 0xb3, 0x2d, 0x73, 0xb4, 0x02, 0xd4, -0x43, 0xd7, 0x52, 0x7f, 0xc1, 0xbe, 0x6f, 0x10, 0xcf, 0x8d, 0x51, 0xdb, 0xf8, 0xd0, 0xda, 0xc0, -0x39, 0x79, 0x45, 0xe4, 0x12, 0x26, 0x2c, 0x97, 0x28, 0x2d, 0xe3, 0xab, 0x89, 0x25, 0x9b, 0x6b, -0x72, 0xc8, 0xee, 0xc0, 0xfa, 0xaf, 0xe5, 0x77, 0x6d, 0x79, 0x8e, 0x09, 0x25, 0xdb, 0xba, 0x96, -0x93, 0xfa, 0xfe, 0x91, 0xa4, 0x12, 0x30, 0xd2, 0xdc, 0xae, 0x16, 0x52, 0x85, 0x52, 0x34, 0x0e, -0x9b, 0xda, 0x5a, 0x8b, 0xd6, 0x4b, 0x95, 0x28, 0x5f, 0x88, 0xad, 0x08, 0xb8, 0x30, 0x42, 0x07, -0x23, 0x50, 0x03, 0xfc, 0x5d, 0xff, 0x1c, 0x22, 0x27, 0xa1, 0xd1, 0x3d, 0x88, 0x6f, 0x78, 0x0f, -0xa2, 0x88, 0xe8, 0x41, 0xe5, 0x64, 0x15, 0x4a, 0x18, 0xab, 0xc2, 0xd9, 0xc6, 0x0a, 0x6a, 0x57, -0x15, 0x3d, 0xc5, 0x74, 0xca, 0x14, 0xac, 0x92, 0xd8, 0xe5, 0x82, 0xe5, 0x10, 0x42, 0xce, 0xb1, -0x92, 0x62, 0x0f, 0x18, 0x53, 0xee, 0x28, 0x25, 0x0b, 0xab, 0xf6, 0x2a, 0xe1, 0x84, 0x24, 0x1e, -0x69, 0xed, 0xa3, 0xb5, 0x2d, 0x67, 0x26, 0x7a, 0x42, 0xad, 0x13, 0xcd, 0xb7, 0x7c, 0x61, 0xd9, -0x1d, 0x99, 0x10, 0x5e, 0x44, 0xfa, 0x52, 0x7b, 0x6e, 0x66, 0xc6, 0x4b, 0x29, 0x77, 0x9c, 0xb7, -0x2c, 0x9b, 0x9b, 0x3a, 0x63, 0xc9, 0x9c, 0xd4, 0xe9, 0xea, 0x38, 0x15, 0xe0, 0x5e, 0x7e, 0x86, -0xe2, 0xc9, 0x94, 0x86, 0x0f, 0x69, 0x85, 0xd9, 0x1b, 0xe5, 0x7a, 0xaa, 0xa4, 0x22, 0x8e, 0x5c, -0xf9, 0xfc, 0x78, 0x0f, 0xc7, 0x42, 0x4e, 0x2a, 0x7a, 0x26, 0x13, 0x8e, 0x67, 0x32, 0x7c, 0x4e, -0x06, 0x3d, 0x89, 0x6f, 0x7d, 0xf6, 0x82, 0xd2, 0xa6, 0x2a, 0xfa, 0x4d, 0x1d, 0x07, 0x61, 0xbd, -0x1c, 0x56, 0x97, 0xa8, 0x87, 0x63, 0xde, 0x63, 0x44, 0x33, 0x96, 0xc1, 0x53, 0x9a, 0x21, 0x78, -0x38, 0x68, 0xb1, 0xc3, 0xcc, 0x5b, 0xb2, 0x65, 0xc2, 0x50, 0x96, 0x0f, 0xa5, 0x06, 0xdb, 0x5a, -0x5f, 0x15, 0x34, 0xf1, 0x70, 0xef, 0xe0, 0xf2, 0x11, 0x2d, 0xd7, 0x08, 0xfd, 0x45, 0x2d, 0xd7, -0x14, 0xe8, 0x36, 0xe5, 0x12, 0x6d, 0xbe, 0x1a, 0x7d, 0x4c, 0x33, 0x29, 0x26, 0x23, 0xeb, 0x9f, -0x6a, 0x0c, 0x27, 0x69, 0xa6, 0x4d, 0x26, 0x1b, 0x7f, 0x06, 0xdd, 0xc8, 0x7a, 0x31, 0x89, 0xca, -0x14, 0x2a, 0x9d, 0x5b, 0xcf, 0x6b, 0x04, 0xc1, 0x7c, 0x97, 0xb0, 0xe2, 0xc5, 0xfb, 0x21, 0x4e, -0x20, 0x6f, 0x35, 0x15, 0xb5, 0x64, 0xd0, 0x97, 0x70, 0xd2, 0xb5, 0x24, 0xe0, 0x9a, 0x04, 0x4c, -0xbe, 0x4f, 0x38, 0xd9, 0x44, 0x59, 0x29, 0x85, 0xb0, 0x6a, 0x31, 0xa8, 0x53, 0x73, 0xa6, 0x36, -0x78, 0x20, 0x77, 0xfa, 0xd9, 0x0f, 0x80, 0x97, 0x2a, 0xe0, 0x4e, 0x03, 0xff, 0xb2, 0x8e, 0x48, -0x4c, 0x05, 0xdc, 0x09, 0x93, 0xc9, 0x14, 0x0f, 0xd7, 0x93, 0xa6, 0x84, 0xc9, 0x84, 0x5a, 0xbc, -0xd8, 0xc7, 0x12, 0xb7, 0x35, 0x38, 0x6b, 0x55, 0x69, 0x5b, 0xee, 0x53, 0xed, 0x13, 0xe0, 0xf4, -0x32, 0x23, 0xb7, 0x20, 0x77, 0x37, 0xd6, 0x4e, 0xdc, 0x98, 0xcc, 0x80, 0x2d, 0xc8, 0x01, 0xca, -0xec, 0xa3, 0xb6, 0x08, 0x1c, 0x9f, 0x5b, 0x19, 0xc4, 0xf1, 0xc5, 0xa7, 0x0a, 0xb1, 0x9d, 0x88, -0x7f, 0xa5, 0xf1, 0xd0, 0x86, 0x2e, 0xcb, 0x9a, 0xe9, 0x7d, 0xb2, 0xbd, 0x24, 0x33, 0x90, 0xde, -0x01, 0x5f, 0x29, 0x0a, 0xa7, 0x77, 0x11, 0xf0, 0x1d, 0x6d, 0xa4, 0x46, 0xd3, 0xa7, 0x41, 0x10, -0x6f, 0x07, 0xbd, 0x4b, 0x83, 0xf7, 0xc0, 0x59, 0x8a, 0x37, 0xf7, 0x30, 0x12, 0xff, 0x29, 0xc0, -0x69, 0xb8, 0x75, 0xea, 0x97, 0x4f, 0x82, 0xb8, 0x13, 0xe1, 0xa4, 0x80, 0x09, 0xcf, 0x27, 0x5a, -0xc0, 0x99, 0x21, 0xdc, 0x3e, 0xe0, 0xf1, 0xcf, 0xc2, 0x0c, 0x30, 0x19, 0xac, 0x55, 0xb5, 0x1b, -0xf7, 0xe7, 0xcb, 0xc2, 0xbd, 0x96, 0xa0, 0x9d, 0x48, 0xd3, 0x66, 0xa8, 0x13, 0xd0, 0x2a, 0x44, -0x5c, 0xef, 0x8c, 0x15, 0x08, 0x18, 0x45, 0x5b, 0x63, 0x2a, 0xf4, 0xc3, 0x36, 0x36, 0x88, 0xe3, -0x8d, 0x25, 0xed, 0x2e, 0xb1, 0x7b, 0x9c, 0xa1, 0x0b, 0xfa, 0x42, 0x8b, 0xec, 0x33, 0xe4, 0x10, -0x2f, 0x48, 0x9d, 0x09, 0xcb, 0x87, 0x79, 0x56, 0xd2, 0x66, 0x9e, 0x99, 0x0c, 0xc6, 0xbe, 0x21, -0x90, 0x56, 0x5c, 0xcc, 0xad, 0x4a, 0xb2, 0x71, 0x7f, 0x21, 0x8c, 0xe7, 0x12, 0xd1, 0x22, 0xe3, -0x89, 0x98, 0x3e, 0x26, 0x12, 0x44, 0x2d, 0x05, 0x9e, 0x84, 0x1c, 0x73, 0xa1, 0xc4, 0x12, 0x13, -0xe4, 0x0a, 0xa0, 0x55, 0x92, 0xb4, 0x69, 0x93, 0x1f, 0x6c, 0x9b, 0x96, 0x15, 0xa8, 0x34, 0x32, -0x83, 0x61, 0xdd, 0xdc, 0xc7, 0x4a, 0x53, 0xe1, 0x3d, 0x93, 0x62, 0xad, 0xb2, 0xdd, 0xc1, 0x5d, -0x2c, 0x55, 0xac, 0x52, 0x0b, 0xd8, 0xda, 0xcc, 0x84, 0x02, 0x26, 0x80, 0x55, 0x3a, 0xad, 0x12, -0xc2, 0x57, 0x66, 0x11, 0x31, 0xa3, 0x17, 0xc1, 0xf8, 0x95, 0xc3, 0xf8, 0x5d, 0xc5, 0xcb, 0xd6, -0x8a, 0x7d, 0xad, 0x15, 0x76, 0x2f, 0xa2, 0x23, 0x22, 0xa2, 0x83, 0x27, 0x2f, 0xb1, 0x8e, 0x6b, -0xa6, 0x77, 0x04, 0x4a, 0xdc, 0xa5, 0x8f, 0x91, 0x74, 0xa9, 0xb1, 0x42, 0xbb, 0x5e, 0x55, 0xc6, -0xe2, 0x89, 0x24, 0xee, 0x81, 0xe8, 0xcc, 0xfa, 0x50, 0x2a, 0x71, 0x1a, 0xa9, 0x25, 0x29, 0x0b, -0xe0, 0x9b, 0x21, 0x02, 0xca, 0x65, 0xf0, 0xae, 0xb1, 0x16, 0x02, 0x6f, 0x6e, 0xb0, 0xa2, 0xd6, -0xaf, 0x61, 0x80, 0x0e, 0xea, 0x8d, 0x67, 0xba, 0xb8, 0x6b, 0x61, 0xd9, 0x05, 0xad, 0xa4, 0xb4, -0xd4, 0xea, 0x62, 0x2c, 0x13, 0x64, 0xc4, 0x92, 0xc3, 0x35, 0x41, 0x98, 0x3a, 0x47, 0x0b, 0x30, -0x05, 0x5c, 0x5d, 0xcc, 0x0d, 0x42, 0x36, 0x02, 0x6f, 0x51, 0x64, 0x5c, 0x72, 0xb0, 0x8f, 0x95, -0xa8, 0xfa, 0xa0, 0x1c, 0xa5, 0x9a, 0xb7, 0x9a, 0xc9, 0x98, 0x29, 0x2d, 0x76, 0x31, 0x38, 0x8e, -0xab, 0x17, 0x74, 0xf1, 0x1a, 0xb0, 0x55, 0x99, 0x1c, 0xe1, 0x74, 0x2e, 0x11, 0xd6, 0xf8, 0x73, -0x8e, 0xf5, 0x07, 0xca, 0xd2, 0x25, 0x1c, 0xcb, 0xe3, 0x55, 0x33, 0x80, 0x96, 0x67, 0x00, 0x2d, -0x8f, 0xf5, 0xbf, 0x2d, 0xcf, 0xb2, 0x03, 0x7d, 0x06, 0xfc, 0x5f, 0xca, 0xa3, 0x8a, 0x85, 0x59, -0xe5, 0xd8, 0x3b, 0xdb, 0x76, 0x2f, 0x20, 0x65, 0x81, 0x2e, 0x56, 0x19, 0x8a, 0x94, 0x18, 0x86, -0x75, 0xed, 0x1b, 0x52, 0xe9, 0xe8, 0x9b, 0xfb, 0x94, 0xaa, 0x66, 0x27, 0x40, 0xeb, 0x33, 0xf4, -0x57, 0xc9, 0x16, 0x6b, 0x2a, 0xd8, 0xfc, 0xc7, 0x8d, 0x24, 0x84, 0xb5, 0x39, 0x31, 0xc1, 0x39, -0x01, 0x13, 0x58, 0x81, 0x76, 0x45, 0x5b, 0x7a, 0x17, 0x21, 0x35, 0x7f, 0xe7, 0xfe, 0x43, 0x14, -0xbf, 0x8f, 0xa0, 0x8a, 0x05, 0xac, 0xc3, 0xef, 0x24, 0xf8, 0xf3, 0x3b, 0x09, 0x30, 0xbf, 0xcf, -0x39, 0xf7, 0x12, 0xe4, 0xb1, 0x2d, 0x4f, 0x65, 0xac, 0xac, 0x5c, 0x34, 0x45, 0x34, 0x19, 0x28, -0xe5, 0x72, 0x11, 0x94, 0x12, 0xe5, 0x0d, 0x60, 0x3e, 0x3b, 0xa8, 0x65, 0xde, 0x43, 0xf7, 0x7d, -0x53, 0x30, 0xd4, 0x95, 0xc8, 0xad, 0x09, 0x28, 0x65, 0x25, 0xc8, 0x40, 0xa1, 0xbe, 0xd9, 0x72, -0x65, 0xac, 0x1a, 0x46, 0x08, 0x70, 0x61, 0x32, 0xe7, 0x1e, 0xd7, 0x39, 0x97, 0x3d, 0x2e, 0x4f, -0x7e, 0xf7, 0x56, 0xe1, 0xe1, 0xc2, 0x05, 0xe3, 0x9e, 0x12, 0xe5, 0x82, 0x5b, 0x95, 0x3c, 0x05, -0xe7, 0x54, 0x91, 0x06, 0x66, 0x4b, 0x50, 0x70, 0x22, 0x77, 0x31, 0xca, 0x18, 0x9c, 0xcc, 0x35, -0xe0, 0xcc, 0x24, 0x72, 0xda, 0x4f, 0xdb, 0xee, 0x45, 0xc1, 0xbc, 0x31, 0xc2, 0xb7, 0x1b, 0xd8, -0x57, 0x28, 0xeb, 0xcf, 0xdb, 0xc3, 0x45, 0x8b, 0xe4, 0x7c, 0xfd, 0x68, 0xdd, 0x90, 0xf6, 0xc3, -0xbb, 0x32, 0x2b, 0xe0, 0x20, 0x28, 0xe1, 0x5b, 0xd6, 0x78, 0x58, 0x51, 0x56, 0xf1, 0x2d, 0xc2, -0x98, 0xd1, 0x86, 0x2b, 0xbc, 0x6d, 0x5c, 0x02, 0xf3, 0x14, 0xe6, 0x9a, 0xc6, 0xb2, 0x3b, 0x5f, -0x6c, 0x9e, 0xce, 0xd3, 0x96, 0xb0, 0x82, 0xca, 0xff, 0x6a, 0xd6, 0x5e, 0x32, 0x1a, 0x8c, 0x1b, -0x77, 0x17, 0xca, 0x60, 0x36, 0x6a, 0xca, 0xa0, 0xbd, 0xca, 0xc4, 0x30, 0x27, 0xaa, 0xf5, 0x6e, -0xc9, 0xdb, 0x7e, 0x57, 0xaa, 0xe8, 0xac, 0x20, 0xcb, 0x05, 0x9b, 0xaf, 0xb1, 0x30, 0x52, 0x4c, -0x40, 0x45, 0x9b, 0x71, 0x94, 0x00, 0x95, 0xfb, 0xc8, 0x51, 0x82, 0xb1, 0x59, 0xd6, 0x1a, 0x6f, -0x1f, 0xab, 0x32, 0xc3, 0x7a, 0x28, 0xb3, 0x8f, 0xd0, 0xc5, 0xe2, 0x79, 0xbe, 0x63, 0xcf, 0xf1, -0xce, 0x21, 0x9a, 0x6a, 0xbc, 0x90, 0x66, 0x2e, 0x1d, 0x7f, 0x26, 0xaa, 0x1f, 0xde, 0x60, 0xfd, -0x00, 0x68, 0x90, 0x4e, 0x7f, 0x9e, 0xb6, 0xcb, 0x08, 0x14, 0x43, 0x4a, 0x68, 0x93, 0x9e, 0xdf, -0xeb, 0x59, 0x25, 0xec, 0xf5, 0xe0, 0xae, 0x06, 0x52, 0x5a, 0xe9, 0x40, 0x17, 0x64, 0x00, 0xfd, -0x30, 0xc2, 0x29, 0xad, 0x89, 0xbb, 0x0b, 0x2d, 0xf2, 0x9a, 0xe7, 0xd4, 0x78, 0x3a, 0x69, 0xe4, -0x2d, 0x39, 0x8b, 0x22, 0x9d, 0xfb, 0x25, 0x03, 0x5b, 0x9d, 0x5e, 0x2a, 0x5b, 0xa4, 0xb2, 0x04, -0xe9, 0x7c, 0xc3, 0x43, 0xd4, 0xb0, 0xc3, 0x57, 0x00, 0x4f, 0x15, 0xb7, 0x73, 0xfa, 0x03, 0x30, -0x52, 0x1e, 0xd6, 0x2c, 0x78, 0xd6, 0xb1, 0xa0, 0x35, 0xb7, 0x16, 0xae, 0xe7, 0x48, 0xb0, 0x8b, -0x44, 0xbe, 0x82, 0xe7, 0x7a, 0x80, 0x1e, 0x4a, 0x11, 0x76, 0x14, 0x04, 0xbe, 0xc7, 0x49, 0x87, -0x12, 0xb2, 0xac, 0x7b, 0x2c, 0x94, 0xce, 0x51, 0x17, 0x4d, 0xeb, 0xba, 0xa0, 0xfd, 0xdb, 0x87, -0x64, 0xab, 0xe4, 0x76, 0x29, 0x95, 0xd2, 0xd3, 0x59, 0xdf, 0xa7, 0x92, 0xf8, 0xb1, 0xdd, 0x91, -0x12, 0x44, 0xca, 0x57, 0x4e, 0x6d, 0xd5, 0x2a, 0x3b, 0x96, 0x43, 0xa9, 0x43, 0x4c, 0x40, 0x49, -0x42, 0x7e, 0x2a, 0x29, 0x5a, 0x87, 0xad, 0x50, 0x57, 0x08, 0x79, 0xc8, 0x48, 0xaf, 0x12, 0xce, -0x35, 0x0f, 0x94, 0xd6, 0xd2, 0xfb, 0xf0, 0x72, 0x50, 0x77, 0x6b, 0xe9, 0x9c, 0x76, 0x78, 0x5b, -0xc0, 0x73, 0xab, 0xf0, 0x7f, 0x74, 0x6a, 0x28, 0xa5, 0x9a, 0xc5, 0x41, 0x3c, 0xef, 0x0c, 0x58, -0x62, 0x3e, 0xbf, 0xa3, 0x36, 0x46, 0xc5, 0x6b, 0x77, 0xda, 0xca, 0x59, 0x5e, 0x57, 0x78, 0x99, -0xb0, 0xaf, 0xf6, 0x8a, 0x5d, 0xe9, 0xd4, 0xda, 0xb4, 0xd2, 0xdd, 0x72, 0x89, 0xb0, 0x8f, 0x96, -0x2f, 0xec, 0x96, 0x07, 0xb1, 0xa1, 0x78, 0xae, 0x08, 0x54, 0x9f, 0x57, 0x78, 0x36, 0xd0, 0xc4, -0xd9, 0x38, 0xbe, 0x2b, 0x29, 0x1e, 0x74, 0x8c, 0x6f, 0x83, 0x51, 0x5d, 0xc9, 0x76, 0x11, 0xc2, -0x6b, 0x95, 0x95, 0xac, 0x9f, 0x70, 0xdf, 0x85, 0xbd, 0x25, 0xec, 0xb3, 0x4b, 0xfe, 0xe1, 0x3e, -0xfb, 0xa3, 0x65, 0x48, 0x60, 0xb5, 0xe1, 0x77, 0xd5, 0xf1, 0xb4, 0xd5, 0x45, 0x5e, 0x44, 0xf1, -0x5f, 0xcb, 0x8b, 0x5c, 0x44, 0x2e, 0x4e, 0xe7, 0xa2, 0x1d, 0x03, 0xf9, 0x85, 0xf2, 0x7c, 0x42, -0xb1, 0xb8, 0x66, 0xa9, 0x4d, 0x09, 0xf3, 0x04, 0xe6, 0xbb, 0x78, 0x85, 0x40, 0xc3, 0x13, 0xf1, -0x12, 0xa4, 0x44, 0xe0, 0xcd, 0x5c, 0xaa, 0x53, 0x42, 0xc4, 0x33, 0xa1, 0x37, 0xa0, 0xa7, 0x1a, -0xcf, 0xa3, 0xe4, 0x3a, 0xca, 0xcd, 0x00, 0x37, 0x25, 0xa1, 0x7e, 0x52, 0xbc, 0xe4, 0x74, 0xa7, -0x5a, 0x6c, 0x63, 0xfd, 0xd0, 0x52, 0xa8, 0xdc, 0x48, 0xb2, 0xed, 0x32, 0xf8, 0xe5, 0xe0, 0x5d, -0xdf, 0x30, 0xe4, 0x2b, 0xf2, 0x88, 0x52, 0xed, 0x79, 0xb2, 0xd2, 0x50, 0x40, 0xfc, 0xe2, 0xee, -0x61, 0x1b, 0xea, 0xdd, 0x00, 0x5f, 0x3c, 0xc0, 0xd3, 0x92, 0xbe, 0x24, 0x3f, 0x33, 0x22, 0x98, -0x04, 0x15, 0x01, 0x93, 0x20, 0xf0, 0x87, 0x8a, 0x56, 0x33, 0x02, 0xbd, 0xb2, 0x1b, 0x2c, 0x5f, -0xa4, 0xcd, 0xd0, 0xc7, 0xa2, 0x8e, 0x0a, 0x95, 0x7c, 0x36, 0xea, 0xad, 0x30, 0x0f, 0x60, 0x2c, -0x11, 0x0b, 0x8e, 0x1b, 0x5e, 0x22, 0x52, 0x74, 0xab, 0x95, 0x44, 0x4a, 0x78, 0xcb, 0x58, 0x17, -0x9d, 0xde, 0x6c, 0x2c, 0x9c, 0x62, 0xc8, 0x07, 0xaa, 0xd6, 0x8d, 0xe2, 0x29, 0xc8, 0x17, 0x38, -0x52, 0x6d, 0xb5, 0xd1, 0x20, 0xc1, 0xbc, 0xc3, 0x24, 0xf1, 0x31, 0x65, 0xed, 0x1a, 0x46, 0xef, -0x36, 0x6e, 0x8a, 0x2d, 0x4a, 0xfe, 0xab, 0x52, 0xa4, 0xfe, 0x49, 0x29, 0x5a, 0xe5, 0x6c, 0x74, -0xe4, 0x8c, 0x65, 0xeb, 0x2b, 0x4e, 0x8b, 0xcb, 0x23, 0x22, 0xeb, 0xe6, 0xb8, 0x22, 0x22, 0x32, -0x43, 0x1f, 0x07, 0x01, 0x87, 0xdf, 0x25, 0x52, 0x6c, 0xd9, 0x63, 0x30, 0xc6, 0xdc, 0x48, 0x21, -0x5b, 0x2b, 0x6d, 0x7e, 0xd0, 0xc2, 0xc8, 0xf3, 0x10, 0x91, 0xaa, 0x44, 0xbc, 0x69, 0x29, 0x5c, -0x83, 0xea, 0xe2, 0x7a, 0x03, 0x6d, 0xe1, 0xc4, 0x71, 0x21, 0x04, 0x68, 0xea, 0x9b, 0x57, 0xd4, -0x3c, 0xee, 0xdc, 0xdd, 0x3b, 0x8e, 0xa8, 0xa8, 0x2e, 0x85, 0x9a, 0x4a, 0x20, 0xea, 0x04, 0x6b, -0x8d, 0x58, 0x92, 0x48, 0x28, 0x5f, 0x54, 0x09, 0xea, 0xeb, 0x18, 0xb7, 0x0a, 0xbb, 0x10, 0x8f, -0x6a, 0x93, 0xbe, 0x50, 0x8e, 0x6d, 0xa6, 0x42, 0x5b, 0x78, 0x1c, 0xb6, 0x0a, 0x8e, 0x3c, 0xaa, -0x4d, 0xaa, 0xb4, 0x8c, 0x93, 0xb5, 0xc2, 0xe4, 0x31, 0xb7, 0x60, 0xa5, 0xdf, 0x53, 0x14, 0xbd, -0x19, 0xb8, 0x33, 0x7b, 0xe4, 0x92, 0xb8, 0xde, 0x26, 0x47, 0xce, 0xa5, 0x22, 0xbd, 0xc9, 0x35, -0x4f, 0xc0, 0xf1, 0x66, 0x62, 0x7c, 0x74, 0x6e, 0xce, 0x7a, 0xc0, 0x0a, 0x70, 0x33, 0x2c, 0x65, -0x01, 0x5d, 0xe1, 0xf1, 0x6c, 0x3b, 0x0f, 0xd7, 0xf7, 0xd2, 0x07, 0x9b, 0x2b, 0xb3, 0x34, 0x74, -0x75, 0xf7, 0x86, 0xf1, 0xa5, 0xa6, 0x98, 0x20, 0x10, 0xc6, 0x4f, 0x83, 0xcd, 0x0f, 0xc6, 0x99, -0x3c, 0x02, 0xf2, 0x66, 0x5e, 0x2e, 0xf6, 0x62, 0xa5, 0xc5, 0x62, 0x61, 0x9f, 0x31, 0x8a, 0x97, -0xdd, 0x31, 0xc5, 0xb1, 0xa4, 0x79, 0x8d, 0xb0, 0x1f, 0x8f, 0x7b, 0x14, 0x3a, 0xb4, 0xec, 0x09, -0xa3, 0x3b, 0xbc, 0x65, 0x36, 0x01, 0x3f, 0xb9, 0x1e, 0xdb, 0x96, 0xbc, 0x15, 0x85, 0xb4, 0x8f, -0x8e, 0x04, 0x6d, 0x4e, 0x06, 0xca, 0x67, 0x49, 0x54, 0xb2, 0x65, 0x37, 0x6a, 0xa2, 0x20, 0x36, -0x86, 0xba, 0xe7, 0x3f, 0x5c, 0x77, 0xb4, 0x24, 0xab, 0x34, 0xc5, 0xdc, 0x0c, 0x24, 0x1b, 0x0f, -0x17, 0x65, 0x3a, 0xcf, 0xb8, 0x68, 0x5f, 0xdc, 0x18, 0x4e, 0x57, 0x9c, 0x24, 0x88, 0xd7, 0x65, -0xd1, 0x55, 0x12, 0xd4, 0x27, 0xb1, 0x85, 0x0a, 0xd2, 0x23, 0x5e, 0xc3, 0x76, 0x09, 0x82, 0x16, -0x62, 0x68, 0x5f, 0xa8, 0x5c, 0x76, 0x19, 0x9d, 0xfb, 0x9c, 0xce, 0x14, 0x61, 0xdd, 0xb9, 0x11, -0x84, 0x5e, 0xdc, 0x04, 0x59, 0x7a, 0x85, 0x43, 0x2a, 0x89, 0xb7, 0x68, 0xa7, 0x03, 0x7e, 0x62, -0x0a, 0x01, 0x1e, 0x9d, 0x39, 0x0f, 0x6b, 0x19, 0x13, 0x0f, 0xe9, 0xc8, 0x29, 0x47, 0xe8, 0x2b, -0x58, 0xa9, 0x24, 0xe2, 0x03, 0x30, 0xc6, 0x23, 0x9d, 0x67, 0xc2, 0x0d, 0xad, 0x76, 0xdb, 0x1b, -0x84, 0xdd, 0xf6, 0x1b, 0x42, 0x7e, 0xab, 0xf8, 0xd3, 0x14, 0xd4, 0x4a, 0xe2, 0x77, 0xd6, 0xf4, -0x44, 0x15, 0xaf, 0xd7, 0x22, 0xcd, 0x7a, 0xbd, 0x10, 0xf9, 0x15, 0x7e, 0xbf, 0x98, 0xdf, 0x3b, -0x0e, 0xc7, 0xfd, 0x98, 0xdd, 0xb0, 0xce, 0x7b, 0xd1, 0xfd, 0x8d, 0x78, 0xa0, 0x7a, 0x64, 0x1a, -0x63, 0x62, 0xa3, 0x86, 0x53, 0xc9, 0xe3, 0x6e, 0x05, 0x72, 0x6a, 0x2f, 0x07, 0xf7, 0xa8, 0xf7, -0x40, 0x0a, 0x04, 0x6a, 0xb2, 0x33, 0x63, 0x41, 0xe8, 0xfb, 0x44, 0xd5, 0x9f, 0x98, 0xec, 0x30, -0x83, 0xa4, 0xf8, 0x96, 0xda, 0x66, 0x49, 0xc2, 0xb4, 0x23, 0xf3, 0x89, 0x2c, 0x38, 0x89, 0xbb, -0x2a, 0xdc, 0x7b, 0xc1, 0x7d, 0xa3, 0x0a, 0x53, 0x4e, 0x80, 0x31, 0xa2, 0x80, 0x75, 0xb9, 0x41, -0xf0, 0x19, 0x50, 0xc6, 0x24, 0x94, 0x12, 0x7f, 0x0d, 0x8e, 0xed, 0x3d, 0x15, 0x4c, 0x3c, 0xee, -0x5e, 0xab, 0x83, 0xf9, 0xbd, 0x6b, 0x4d, 0x02, 0x4a, 0xd7, 0x61, 0x0a, 0xad, 0xf6, 0xb7, 0x73, -0x49, 0x17, 0x4d, 0xac, 0x43, 0xea, 0x13, 0x2d, 0x92, 0xea, 0x12, 0xa8, 0xfc, 0x60, 0x88, 0x9e, -0x30, 0xf1, 0x74, 0x47, 0x1b, 0x4b, 0xe2, 0xba, 0xe7, 0x83, 0xfe, 0x27, 0xaa, 0x94, 0x09, 0xc0, -0x79, 0xa3, 0xed, 0xba, 0x3a, 0xcb, 0x6e, 0x46, 0x0c, 0x34, 0x4e, 0x45, 0xa4, 0x51, 0x95, 0x00, -0xd8, 0x9f, 0x81, 0xd1, 0xa1, 0xd4, 0x7a, 0x9e, 0xad, 0xd4, 0x61, 0x4e, 0x40, 0x1b, 0xeb, 0xdd, -0x5d, 0x47, 0x47, 0xb8, 0x11, 0xde, 0x49, 0xd5, 0xb2, 0xa1, 0x33, 0x22, 0x43, 0xa1, 0x14, 0x7b, -0x98, 0x78, 0x4a, 0xf7, 0x9e, 0x8d, 0x41, 0xfc, 0x36, 0x56, 0xef, 0xae, 0x47, 0x6b, 0x38, 0xf5, -0xa8, 0x9f, 0xa9, 0x33, 0xaa, 0x24, 0x19, 0xd3, 0x29, 0xcd, 0xd4, 0x03, 0x77, 0xb7, 0x94, 0xe6, -0xd8, 0x9b, 0xb2, 0x3f, 0x34, 0x9e, 0x7a, 0xf7, 0x30, 0xab, 0xde, 0x93, 0x0f, 0x8f, 0xe1, 0x50, -0xe7, 0x29, 0x92, 0xd3, 0xca, 0x28, 0xde, 0x2f, 0xe0, 0xce, 0x16, 0x13, 0xa5, 0xaf, 0xd0, 0xba, -0xa5, 0x3c, 0x87, 0x8d, 0x7b, 0x03, 0x56, 0x0d, 0x79, 0x72, 0xe4, 0x6e, 0xcb, 0x74, 0xb3, 0x49, -0x97, 0x00, 0x2c, 0x85, 0xa6, 0x48, 0xb2, 0xe4, 0x10, 0x95, 0xba, 0x48, 0xe8, 0x09, 0x9c, 0x41, -0xcf, 0x24, 0xa2, 0x36, 0x65, 0x13, 0x0d, 0x72, 0x58, 0xca, 0x04, 0xc8, 0x4f, 0x25, 0x37, 0x72, -0x9c, 0x5d, 0x83, 0xf5, 0x2e, 0x21, 0x61, 0x3d, 0x88, 0x5a, 0x2f, 0x0a, 0x37, 0xea, 0xbd, 0x5a, -0xfa, 0xe5, 0xda, 0x66, 0x4d, 0x42, 0x9f, 0x72, 0x8e, 0xa3, 0x32, 0xdc, 0x81, 0x56, 0x93, 0xbd, -0x5c, 0x17, 0x2f, 0xe8, 0xf4, 0x2b, 0x64, 0x80, 0xe1, 0xc9, 0x93, 0xb6, 0x5c, 0x61, 0xbd, 0x59, -0x8d, 0xab, 0x50, 0x38, 0x6a, 0x91, 0xd1, 0xd2, 0xd0, 0x5d, 0x72, 0x08, 0x55, 0x4c, 0x84, 0x6f, -0xeb, 0x1d, 0x63, 0xe0, 0xd7, 0x6d, 0x8f, 0x1e, 0x03, 0xd7, 0x2c, 0x42, 0x1e, 0x81, 0xaa, 0x78, -0xe4, 0xc0, 0x9d, 0x29, 0x88, 0x1c, 0x29, 0x60, 0xaf, 0x0a, 0xfb, 0x46, 0xc9, 0xe8, 0xc9, 0x0e, -0xfa, 0x16, 0x2d, 0xde, 0xf1, 0x23, 0x4f, 0x02, 0x6b, 0x2b, 0xae, 0xba, 0x92, 0x30, 0x18, 0xbf, -0x7a, 0x4f, 0x83, 0xac, 0x0e, 0x46, 0x50, 0x9a, 0x31, 0xcc, 0x08, 0xf7, 0x22, 0xb8, 0x97, 0xa5, -0x19, 0xb1, 0x6e, 0x06, 0x8b, 0x5e, 0x16, 0x19, 0x03, 0x14, 0x31, 0xf2, 0x61, 0xd0, 0xd7, 0xbf, -0x47, 0xe3, 0xde, 0x8e, 0x2e, 0x41, 0x1c, 0xca, 0xfd, 0x81, 0xe3, 0x89, 0x52, 0x77, 0x35, 0xc2, -0x49, 0x0a, 0xda, 0x01, 0x0e, 0x54, 0xe9, 0x49, 0x90, 0x1a, 0x86, 0x09, 0xe5, 0xf7, 0x83, 0xda, -0xc8, 0xf5, 0xc4, 0xb6, 0xd6, 0x23, 0x41, 0x3f, 0x09, 0x58, 0x97, 0x1b, 0xf4, 0xcc, 0xa6, 0x6e, -0x66, 0xd2, 0x05, 0x79, 0xd0, 0x3f, 0xdb, 0xb5, 0xa3, 0x7e, 0xa3, 0x84, 0xf3, 0x42, 0xad, 0x9e, -0x18, 0x22, 0xf5, 0xa4, 0xef, 0x04, 0x12, 0x01, 0xf8, 0xe7, 0xe4, 0xcb, 0xd6, 0x22, 0x12, 0x61, -0xf7, 0x83, 0xf6, 0x08, 0xa0, 0x3b, 0x0f, 0xb8, 0xc2, 0xfb, 0x95, 0x8a, 0x58, 0x29, 0xbd, 0x12, -0xab, 0xd9, 0xee, 0x07, 0xeb, 0xb2, 0x1b, 0xb4, 0x8a, 0x17, 0x94, 0x4e, 0x52, 0x8a, 0x7a, 0xac, -0x62, 0x2a, 0xa3, 0x13, 0x27, 0x58, 0x02, 0x40, 0xab, 0x4b, 0xbb, 0x74, 0xb1, 0xaa, 0xa1, 0x4e, -0x19, 0x1d, 0xb3, 0x3d, 0x99, 0x8f, 0x63, 0x8b, 0x87, 0xf5, 0x57, 0x8a, 0x5a, 0x79, 0x28, 0x89, -0x03, 0xbc, 0x6f, 0x6a, 0xab, 0x36, 0xcc, 0xc3, 0x36, 0x8c, 0x32, 0xea, 0x7d, 0xa1, 0x0d, 0xf3, -0xb0, 0x0d, 0x69, 0x7b, 0x42, 0x1b, 0x86, 0xc7, 0xc0, 0x38, 0x71, 0x6f, 0x69, 0x41, 0xc4, 0xbb, -0x0e, 0xbd, 0x15, 0x4a, 0x11, 0x87, 0x43, 0x4d, 0x22, 0x01, 0xdb, 0x46, 0x21, 0x55, 0x87, 0x7a, -0x48, 0xa5, 0x04, 0xcf, 0x41, 0x4f, 0xbc, 0xac, 0x34, 0xc9, 0x7a, 0x00, 0x2e, 0xf4, 0xb6, 0x87, -0x39, 0xe9, 0x4b, 0x2f, 0x17, 0xad, 0xa6, 0x20, 0x25, 0x2f, 0x5d, 0xe4, 0xe7, 0xa0, 0x61, 0x4c, -0xef, 0x13, 0xbf, 0xe2, 0x07, 0x8c, 0x69, 0xd7, 0x1a, 0x22, 0xa3, 0xf2, 0xa8, 0x22, 0x7b, 0x97, -0x8f, 0xff, 0x54, 0x9f, 0x47, 0x4d, 0xd8, 0x92, 0x09, 0x84, 0x2d, 0xa4, 0x92, 0x96, 0x68, 0xb7, -0x23, 0x33, 0xd3, 0x8f, 0xde, 0x79, 0xd9, 0x33, 0xe8, 0x55, 0x6e, 0x4b, 0x65, 0x93, 0xe9, 0xdd, -0x58, 0x3b, 0x43, 0xa5, 0x2f, 0xd1, 0x57, 0x3a, 0x3e, 0x77, 0xb5, 0x45, 0xf2, 0xe9, 0xdb, 0x0c, -0x4a, 0x13, 0x52, 0x69, 0x40, 0x1d, 0xf2, 0xcf, 0x8c, 0xd2, 0xd4, 0x2d, 0x9b, 0x9e, 0x66, 0x3b, -0xfc, 0x70, 0xe4, 0x91, 0x0a, 0xea, 0x87, 0x23, 0x8f, 0x9b, 0x4a, 0xe4, 0xbc, 0xae, 0x49, 0xcc, -0x75, 0xa2, 0x6b, 0x25, 0x71, 0x49, 0xb8, 0x72, 0x2b, 0xb4, 0x99, 0x4d, 0x0a, 0x6b, 0x62, 0x27, -0x22, 0x83, 0x7b, 0x2f, 0x7a, 0xef, 0x4d, 0xbc, 0xac, 0x33, 0xec, 0x85, 0x4c, 0x07, 0xc1, 0x27, -0xf5, 0x58, 0xc1, 0xff, 0xb4, 0xf4, 0xd3, 0x5f, 0xb8, 0xfb, 0xb6, 0xa1, 0x82, 0xd4, 0x3e, 0xae, -0x25, 0x80, 0x75, 0x1f, 0xec, 0xa1, 0x6b, 0x89, 0x51, 0x38, 0xa1, 0x42, 0x4d, 0x2c, 0x06, 0x56, -0x0e, 0x95, 0xa0, 0x97, 0xa2, 0x69, 0xa5, 0x89, 0xe5, 0xa4, 0xee, 0x9c, 0x69, 0xc0, 0xea, 0xf1, -0x00, 0xb8, 0x16, 0x41, 0x37, 0x45, 0x2e, 0xe8, 0xa6, 0x3c, 0xa4, 0x7f, 0x25, 0x50, 0xc8, 0x11, -0x02, 0x7d, 0xcc, 0x9f, 0x19, 0x48, 0x6c, 0x6a, 0x41, 0xa6, 0x4e, 0x2c, 0x50, 0xc1, 0x11, 0xf8, -0x64, 0xd5, 0x12, 0x9f, 0x91, 0xb5, 0x96, 0x8a, 0x30, 0x23, 0xf3, 0x92, 0xb9, 0xea, 0x9f, 0xea, -0x69, 0xf1, 0xd6, 0x06, 0x22, 0x9d, 0x67, 0x63, 0xea, 0x10, 0x17, 0x7d, 0xc1, 0x13, 0xad, 0xd6, -0xa4, 0x13, 0xc2, 0x9a, 0x74, 0xce, 0xa1, 0x9f, 0x2e, 0x48, 0x46, 0x5d, 0x2d, 0xf6, 0x75, 0x9c, -0xfa, 0x0a, 0xde, 0xe8, 0x36, 0x0b, 0x9e, 0x71, 0xd6, 0x3b, 0xf9, 0x29, 0xe7, 0x7c, 0x54, 0x1b, -0xe9, 0xb9, 0xef, 0x22, 0xe8, 0x29, 0x11, 0xf1, 0xe5, 0xf9, 0x2a, 0x8d, 0xf7, 0xe9, 0x0a, 0xc6, -0x4c, 0x4f, 0x85, 0xa8, 0xbc, 0x2c, 0xdd, 0xcb, 0x49, 0xa6, 0x72, 0x1f, 0x30, 0xc6, 0x6c, 0x7d, -0x85, 0xd3, 0xa5, 0xd3, 0xc2, 0xe9, 0xd2, 0x45, 0xc6, 0x1c, 0x9c, 0x02, 0x6b, 0x4e, 0x0b, 0x17, -0xd5, 0x3b, 0xee, 0x1a, 0x77, 0xc2, 0x85, 0x93, 0xf2, 0x83, 0x96, 0x31, 0x4f, 0x83, 0xd4, 0x18, -0xb3, 0xb5, 0xca, 0x2e, 0xa5, 0xa9, 0xb4, 0x9c, 0xd3, 0xf2, 0x5c, 0xd5, 0x00, 0xd7, 0x73, 0x5a, -0x41, 0x5a, 0x36, 0x88, 0x73, 0x48, 0x89, 0xb7, 0x39, 0x0d, 0x95, 0x85, 0xc1, 0x40, 0xf0, 0xb6, -0xf3, 0xe7, 0xc1, 0xb9, 0x2e, 0x73, 0x60, 0x1d, 0xf1, 0xfb, 0x27, 0x67, 0xa2, 0x82, 0x8c, 0x34, -0xe5, 0x19, 0x60, 0x0e, 0x22, 0x35, 0xc9, 0xa0, 0xd6, 0x32, 0xac, 0x2b, 0x44, 0x8c, 0x3e, 0xed, -0x89, 0x5e, 0x54, 0x32, 0x35, 0x5e, 0xb4, 0xbb, 0x02, 0x28, 0x2a, 0x28, 0x1f, 0x7f, 0x5a, 0xfa, -0x07, 0x4a, 0x2a, 0xfb, 0x17, 0x8b, 0x80, 0x16, 0x92, 0xdb, 0x18, 0x28, 0x89, 0x58, 0x1f, 0x26, -0x93, 0x08, 0xdf, 0x9d, 0x6b, 0xa2, 0xa5, 0x96, 0xae, 0x8a, 0x74, 0xa7, 0x35, 0x88, 0x7a, 0xbb, -0x66, 0xf0, 0xdc, 0x55, 0xa1, 0xe6, 0x4b, 0xaf, 0xc5, 0x53, 0xe6, 0x19, 0x1f, 0xc9, 0x64, 0x0e, -0x8e, 0x19, 0xc6, 0x58, 0x10, 0xea, 0xa7, 0x40, 0xfa, 0x84, 0x8e, 0x61, 0xe0, 0x65, 0xad, 0xc1, -0xc4, 0x67, 0x84, 0xe0, 0x93, 0x15, 0x3d, 0x83, 0x20, 0x0f, 0x07, 0xdf, 0x25, 0xae, 0x5c, 0x76, -0x13, 0x9e, 0x68, 0x05, 0xd1, 0x3d, 0x5d, 0xe0, 0xf6, 0xe4, 0x92, 0xd6, 0xb5, 0xc2, 0x54, 0xb1, -0xa5, 0x50, 0xbf, 0x43, 0xde, 0x03, 0xf8, 0x4d, 0x09, 0x50, 0xc4, 0xbe, 0xfc, 0x3e, 0x36, 0x52, -0x74, 0xb0, 0xaa, 0x49, 0x29, 0x75, 0xa8, 0xa3, 0x2b, 0x05, 0xea, 0xc9, 0x37, 0x62, 0x0b, 0x78, -0x19, 0x09, 0x5a, 0x0a, 0x90, 0xc3, 0xf8, 0x94, 0x5b, 0x89, 0xcb, 0xf8, 0xf5, 0x02, 0x6e, 0xf7, -0x04, 0xcf, 0x8f, 0x90, 0xda, 0x70, 0x0d, 0xae, 0x37, 0xb5, 0xeb, 0x61, 0x94, 0x9b, 0x0a, 0xfc, -0xc2, 0x34, 0xc4, 0xaf, 0x40, 0xbe, 0x39, 0x97, 0xc8, 0xf2, 0xa5, 0x9b, 0x80, 0x1a, 0x2c, 0x48, -0xe1, 0xb5, 0x2e, 0xb1, 0x77, 0xd0, 0xb7, 0x12, 0x5f, 0xbb, 0x26, 0x7e, 0xd7, 0x42, 0x67, 0x7a, -0x8f, 0x6f, 0x69, 0x67, 0xfb, 0x8a, 0xf9, 0xd6, 0x6d, 0x52, 0xbb, 0xd2, 0x72, 0x4d, 0x52, 0x5a, -0xbb, 0xe6, 0x5d, 0x90, 0x07, 0x8b, 0x3e, 0x2a, 0x53, 0x5a, 0xa7, 0x76, 0xef, 0x84, 0x23, 0x35, -0x9c, 0x67, 0xad, 0xda, 0x8a, 0x3f, 0xd9, 0x3e, 0xed, 0x9a, 0xda, 0x3d, 0xb4, 0x26, 0x1e, 0x04, -0xed, 0x8e, 0xa9, 0x61, 0xbd, 0x73, 0xec, 0x12, 0x47, 0xcb, 0xfd, 0x49, 0x1f, 0x35, 0x7f, 0xf1, -0xc8, 0x3e, 0xba, 0x37, 0xc2, 0x59, 0x8b, 0xe0, 0x36, 0xb5, 0xa0, 0x7d, 0x74, 0x8f, 0x75, 0xed, -0xa3, 0x7b, 0x46, 0xbe, 0x8f, 0x1c, 0xfd, 0x63, 0x10, 0x53, 0x4c, 0xa2, 0x27, 0xfe, 0x4a, 0x7d, -0xcb, 0x8a, 0x09, 0xeb, 0x9b, 0x0a, 0xa9, 0xbf, 0xa4, 0x0b, 0x46, 0xf9, 0x3f, 0x5d, 0x05, 0x23, -0xd1, 0xd6, 0x09, 0xe5, 0xe7, 0x23, 0xf4, 0xa4, 0x53, 0xb8, 0x9e, 0x74, 0x81, 0x5e, 0xe0, 0x35, -0x7f, 0xe4, 0x32, 0x09, 0x71, 0xb7, 0x4b, 0x8e, 0xe5, 0x90, 0x40, 0xa0, 0x4c, 0xbd, 0xe0, 0x49, -0x6a, 0x97, 0xd4, 0xe5, 0x90, 0x4e, 0xd6, 0xd8, 0x02, 0x3f, 0xe8, 0x2f, 0x5f, 0xe0, 0xcf, 0xbc, -0x6a, 0x4c, 0xa3, 0x5c, 0x7c, 0x13, 0xe1, 0xa9, 0x0d, 0x8f, 0x79, 0x5a, 0x59, 0x9e, 0x6f, 0x39, -0x95, 0xaf, 0x72, 0x60, 0x1f, 0xfe, 0x1c, 0x55, 0x90, 0x32, 0xef, 0x22, 0xec, 0xd3, 0xb4, 0xcc, -0xb6, 0x96, 0x75, 0x1e, 0xf0, 0x4a, 0x31, 0x11, 0xf0, 0xcf, 0x5d, 0x1c, 0x89, 0x71, 0xc0, 0x25, -0x0b, 0xf2, 0x1b, 0x32, 0xd2, 0xae, 0x84, 0xd0, 0xdd, 0x27, 0xe7, 0x3e, 0x06, 0xca, 0xe8, 0x3b, -0xbf, 0xfa, 0xb6, 0xfd, 0x8a, 0xfe, 0xfb, 0x5c, 0x65, 0x3f, 0x1e, 0x8a, 0x2b, 0x37, 0xc1, 0xb8, -0x43, 0x6a, 0x88, 0x6a, 0x96, 0x4b, 0x59, 0x59, 0x2a, 0x3c, 0x5b, 0xab, 0x6d, 0x77, 0x9d, 0xb1, -0x34, 0x6d, 0xd3, 0x84, 0x31, 0xca, 0xeb, 0x1d, 0x3b, 0x77, 0x67, 0x54, 0x15, 0x86, 0x7c, 0x1e, -0xb3, 0x45, 0x21, 0x55, 0x9d, 0xec, 0x2a, 0x97, 0x72, 0x24, 0xc6, 0x15, 0xa7, 0xa1, 0x0f, 0x60, -0x5b, 0x5b, 0x49, 0x93, 0xa4, 0x47, 0x60, 0x30, 0x39, 0xaf, 0x27, 0xfe, 0x27, 0x67, 0xa1, 0xb9, -0x82, 0xcf, 0xa3, 0xd6, 0xa7, 0xa1, 0xe9, 0x8f, 0xd0, 0x72, 0x79, 0xc4, 0xce, 0x84, 0x73, 0x57, -0x82, 0x6a, 0xc0, 0xa2, 0xf6, 0x0a, 0x6a, 0x43, 0xab, 0x78, 0x0d, 0xd8, 0x10, 0xe1, 0xf4, 0xd2, -0x44, 0xf5, 0x9d, 0x0d, 0xc2, 0x39, 0x73, 0x81, 0xf3, 0x9c, 0xd9, 0xd4, 0x9a, 0x1e, 0x33, 0xc5, -0xb2, 0xf1, 0x82, 0x3c, 0x85, 0xaf, 0x9d, 0x97, 0x18, 0x6f, 0x47, 0xed, 0xb7, 0xe3, 0xf9, 0x88, -0x8e, 0xd5, 0x20, 0x9f, 0xd3, 0xdd, 0x42, 0x7d, 0x30, 0x79, 0x99, 0x1c, 0x76, 0x10, 0xa4, 0xac, -0x22, 0x35, 0x8f, 0x6f, 0x65, 0x56, 0xda, 0x1b, 0x6d, 0xc6, 0xc8, 0x60, 0x85, 0x2f, 0xa0, 0x2b, -0xbc, 0xa1, 0xd5, 0x0a, 0xbf, 0xda, 0x1a, 0x6b, 0x2f, 0x44, 0x1b, 0x96, 0x35, 0x10, 0x37, 0x13, -0x53, 0x91, 0x41, 0x59, 0xf8, 0x99, 0x65, 0xe2, 0x6d, 0x4b, 0x3c, 0xf0, 0xa2, 0x7c, 0xb9, 0x85, -0xd7, 0x2b, 0xa5, 0xe5, 0x46, 0xcd, 0xd2, 0xd8, 0x16, 0xcd, 0xd2, 0x47, 0x70, 0xe2, 0x4e, 0x4d, -0x14, 0x47, 0x6a, 0xc8, 0x1b, 0xdf, 0x3f, 0x96, 0xb2, 0xa0, 0x8c, 0xa0, 0x26, 0x72, 0x8b, 0x8e, -0x29, 0xef, 0x51, 0xc3, 0x65, 0x07, 0x4c, 0xc3, 0x6b, 0x08, 0x3b, 0x77, 0xc0, 0x7c, 0xed, 0x11, -0xad, 0xe4, 0x01, 0xc2, 0x04, 0x79, 0x80, 0x76, 0x36, 0x8d, 0xb0, 0xb6, 0x7b, 0x38, 0xe4, 0x41, -0xe9, 0x13, 0xf6, 0xa1, 0x8c, 0xa9, 0x60, 0x95, 0x94, 0x0b, 0x7c, 0x1f, 0x28, 0x9e, 0xbf, 0x5c, -0xd7, 0x05, 0x59, 0xf8, 0x46, 0xe1, 0xbc, 0x99, 0xea, 0xac, 0xc3, 0xcc, 0x37, 0x03, 0x47, 0x0a, -0xeb, 0xed, 0xf9, 0x97, 0x11, 0xdf, 0x23, 0x3f, 0x62, 0xd9, 0x6d, 0x9e, 0x4e, 0xbd, 0xd0, 0xf0, -0xb2, 0xe3, 0xd9, 0x74, 0x4e, 0xf8, 0xb9, 0x52, 0xa7, 0xae, 0xa7, 0xf1, 0xaa, 0x04, 0x26, 0x55, -0x1b, 0x4b, 0xb5, 0xac, 0x20, 0x34, 0xed, 0x13, 0x5f, 0x6d, 0x2c, 0xd2, 0x91, 0x10, 0xb3, 0x0b, -0xc6, 0x76, 0x9c, 0xcd, 0xf2, 0x72, 0x83, 0x82, 0x1f, 0xbf, 0x63, 0xaa, 0x58, 0x6d, 0x2e, 0xad, -0x03, 0x70, 0x52, 0x78, 0x22, 0x4c, 0xcf, 0x82, 0xc3, 0xe8, 0x69, 0x1e, 0xc4, 0xc3, 0xdc, 0xf5, -0x7a, 0x12, 0xc6, 0x9f, 0x5c, 0x6a, 0x08, 0x95, 0xd3, 0xf2, 0xa5, 0x58, 0x91, 0x6a, 0xa0, 0x2a, -0x07, 0x96, 0x12, 0xa7, 0xff, 0x97, 0x02, 0xea, 0x69, 0x47, 0x7a, 0x0e, 0xb0, 0x0b, 0x52, 0x03, -0x34, 0x4d, 0xff, 0x16, 0xad, 0xb1, 0x73, 0xc6, 0xfe, 0x79, 0x30, 0xfe, 0x28, 0xc5, 0x50, 0x7a, -0xed, 0x44, 0x25, 0xc6, 0xd7, 0x22, 0xf7, 0x3c, 0x10, 0xfa, 0x23, 0x82, 0x91, 0x50, 0x6f, 0x7a, -0x07, 0x18, 0x53, 0x55, 0xad, 0x4a, 0xc6, 0xfb, 0xa6, 0xf9, 0xa6, 0x88, 0xf4, 0x55, 0x0e, 0x34, -0x00, 0x55, 0x0f, 0x35, 0x46, 0x6a, 0x1c, 0x43, 0x28, 0x74, 0x34, 0x5f, 0x21, 0x4e, 0x21, 0x7f, -0xc2, 0x89, 0xfe, 0x7c, 0x4e, 0xe4, 0x51, 0xfe, 0x5b, 0x4b, 0xa4, 0x7c, 0xc9, 0x1c, 0xba, 0x6c, -0x68, 0xc7, 0x2b, 0x52, 0x2c, 0x35, 0x73, 0xd7, 0x80, 0xa7, 0x34, 0xa7, 0x56, 0x62, 0xfc, 0xd0, -0x0d, 0x64, 0x55, 0x14, 0x94, 0xd1, 0x32, 0xae, 0xe1, 0x81, 0x5e, 0x66, 0xc9, 0x81, 0x51, 0x25, -0xd3, 0xfb, 0xc0, 0x4a, 0x93, 0x4b, 0x53, 0x90, 0xb5, 0x4e, 0x01, 0xa9, 0x7d, 0xa4, 0x56, 0xd1, -0x1b, 0x53, 0x18, 0xc6, 0x2a, 0xae, 0x7e, 0xa0, 0x97, 0x58, 0xb2, 0x21, 0x96, 0x44, 0xef, 0x33, -0xb0, 0xa9, 0x29, 0x3c, 0x79, 0x19, 0xf4, 0x88, 0x97, 0x41, 0x54, 0xd6, 0xae, 0x21, 0xbb, 0x2e, -0xe6, 0x92, 0x51, 0x6a, 0xe2, 0x6e, 0x23, 0xc7, 0xbc, 0xf4, 0x80, 0x65, 0xb7, 0x4e, 0x3c, 0x62, -0x76, 0x24, 0x81, 0xbc, 0xdd, 0xd4, 0x62, 0x95, 0x74, 0xc9, 0x1c, 0x17, 0x3b, 0xb1, 0xdc, 0xc2, -0x3d, 0x0b, 0x0f, 0xa4, 0x55, 0x6a, 0xbd, 0xce, 0xce, 0x70, 0xa4, 0x4f, 0x75, 0x0e, 0x64, 0xc0, -0xed, 0xfa, 0xc0, 0x38, 0x8f, 0x4f, 0x5e, 0x86, 0x79, 0x1f, 0xdd, 0x13, 0x73, 0xab, 0x52, 0xf4, -0x70, 0x88, 0xe4, 0x65, 0xa9, 0xe8, 0x93, 0xd3, 0x00, 0x6b, 0x48, 0x68, 0x89, 0x64, 0xd3, 0x1c, -0xdb, 0x2a, 0x35, 0xa1, 0xbb, 0x8d, 0x72, 0x7b, 0x4a, 0x1b, 0x0e, 0x25, 0xf7, 0x11, 0xbc, 0x1e, -0xe5, 0x53, 0xfa, 0x1a, 0xf5, 0x3e, 0x8f, 0xe2, 0x53, 0xb4, 0xb1, 0x94, 0x96, 0x76, 0xf2, 0x2a, -0x4e, 0xe9, 0x93, 0x2e, 0xca, 0x04, 0xda, 0xb3, 0xa8, 0x8d, 0xa0, 0x79, 0x58, 0xeb, 0x9f, 0xee, -0xb9, 0xe0, 0x99, 0xb2, 0x9c, 0x9e, 0xe1, 0xa3, 0xf6, 0x88, 0x97, 0xde, 0x13, 0x7e, 0x21, 0x4f, -0x5c, 0x35, 0x61, 0x34, 0xf9, 0xc3, 0x5a, 0x98, 0x24, 0x78, 0xcc, 0x93, 0x14, 0x4b, 0x50, 0xa3, -0xb5, 0x45, 0x06, 0x54, 0x2d, 0xc8, 0x80, 0xc2, 0xcc, 0xd0, 0x91, 0x5c, 0xe4, 0x18, 0x9c, 0x6b, -0xb7, 0x0e, 0xd7, 0xdc, 0xbb, 0xbf, 0xba, 0xd0, 0xf6, 0x0a, 0x7d, 0x3e, 0x8c, 0x28, 0x7f, 0xa0, -0xed, 0x03, 0x05, 0xcc, 0x10, 0xe4, 0xb2, 0x2f, 0xa4, 0x78, 0xd4, 0xbe, 0xd0, 0xdd, 0xda, 0x94, -0x05, 0x2d, 0xab, 0xbd, 0xd3, 0x07, 0x71, 0x3d, 0x7a, 0xb1, 0xd1, 0x0a, 0x1c, 0x18, 0xce, 0xca, -0xb0, 0x10, 0xaa, 0x25, 0x2d, 0x93, 0x6b, 0x04, 0x7a, 0xc9, 0x22, 0xec, 0xc4, 0x36, 0xd8, 0xc2, -0x71, 0x86, 0xe6, 0x13, 0x51, 0x18, 0xb4, 0x83, 0xe8, 0x54, 0x2d, 0xce, 0xfe, 0x54, 0x63, 0x6f, -0x58, 0xb3, 0x6a, 0x90, 0x5b, 0xe1, 0x31, 0x5a, 0x3e, 0x91, 0x3b, 0xf0, 0x02, 0x52, 0x4b, 0x22, -0x85, 0x40, 0x2d, 0xdd, 0x31, 0x7d, 0x08, 0x65, 0xc1, 0x52, 0x6b, 0xfa, 0xe7, 0x13, 0x05, 0xd1, -0xc1, 0xaf, 0x1f, 0x09, 0xe5, 0xf9, 0xe4, 0x56, 0x7c, 0x89, 0xca, 0x51, 0x7a, 0xea, 0xdb, 0x24, -0x03, 0x29, 0x0c, 0x2b, 0xc9, 0x07, 0x7a, 0x4b, 0x6c, 0xe4, 0xa6, 0xa2, 0x8d, 0x06, 0x27, 0x9e, -0xa3, 0xed, 0xf2, 0xfb, 0x49, 0xe1, 0x1c, 0x68, 0x15, 0x6d, 0x19, 0x7f, 0x9a, 0x47, 0x20, 0xb4, -0x4c, 0x10, 0xdd, 0x2f, 0x63, 0x5a, 0xa5, 0xed, 0xef, 0xc4, 0x48, 0xa9, 0x7c, 0xba, 0x05, 0xd9, -0x04, 0x68, 0xbd, 0x47, 0xa4, 0x5a, 0x41, 0x53, 0xb5, 0xfe, 0x27, 0x69, 0x3a, 0x53, 0x80, 0xd6, -0xfe, 0x3d, 0x35, 0x65, 0x01, 0x2b, 0x47, 0x1a, 0x0b, 0xd7, 0x61, 0xf4, 0xca, 0x42, 0xdb, 0x5e, -0x22, 0xf8, 0xe4, 0x09, 0x7a, 0x74, 0xbf, 0x8b, 0x73, 0x91, 0x43, 0x6c, 0xdd, 0xef, 0x77, 0xee, -0xd0, 0x92, 0x44, 0xfd, 0xb7, 0xfd, 0x7e, 0x67, 0x1f, 0xbf, 0x1f, 0xe8, 0x22, 0x5d, 0x5b, 0x87, -0x3a, 0x2b, 0xda, 0x90, 0x47, 0x50, 0x38, 0x5b, 0x81, 0xc2, 0xa9, 0x6b, 0xa1, 0x70, 0xac, 0xb3, -0x00, 0x53, 0x36, 0x0a, 0xf4, 0xcd, 0x55, 0x6a, 0x55, 0xf1, 0x21, 0x0a, 0x47, 0x83, 0xdf, 0xea, -0xfa, 0xa0, 0x2d, 0x00, 0x5f, 0x55, 0x1c, 0x4f, 0x37, 0xe2, 0xaa, 0x6b, 0x5a, 0x0c, 0xbc, 0xb8, -0x04, 0x20, 0x08, 0xed, 0x02, 0xd0, 0x9d, 0xde, 0xb0, 0x62, 0xd4, 0x58, 0xc7, 0xb5, 0xcc, 0x0d, -0xae, 0x3a, 0x3e, 0x2c, 0x52, 0x44, 0x2a, 0x9f, 0x67, 0xa7, 0x33, 0x26, 0x65, 0x2c, 0xb3, 0x96, -0xca, 0x80, 0x2f, 0x11, 0x56, 0x61, 0x4f, 0x7b, 0x3a, 0xf5, 0x28, 0x82, 0x12, 0x8c, 0x61, 0xbc, -0x04, 0xa3, 0x70, 0xed, 0x6a, 0x2b, 0x64, 0x79, 0x5f, 0x23, 0xcf, 0xa0, 0x1f, 0x87, 0x59, 0x8f, -0x11, 0xb1, 0xe0, 0xcf, 0xc1, 0xcb, 0x96, 0xce, 0x06, 0xa8, 0x90, 0x1f, 0x4f, 0x7a, 0x8a, 0xe7, -0xc2, 0xcd, 0xf4, 0xaa, 0x61, 0xa3, 0xe8, 0x35, 0x88, 0x0d, 0xc7, 0x75, 0xfc, 0x29, 0x0b, 0x09, -0x44, 0x3f, 0x38, 0xac, 0x34, 0xb5, 0x02, 0xe8, 0x2a, 0x15, 0xa3, 0x05, 0xbc, 0x47, 0x8e, 0x55, -0x1c, 0x9b, 0x66, 0xad, 0x09, 0x24, 0xb6, 0x9f, 0x59, 0x5f, 0x6a, 0xff, 0x2d, 0x8c, 0x95, 0xd2, -0x58, 0x3a, 0x26, 0x8e, 0x5a, 0x2b, 0x31, 0xb5, 0xe1, 0xd9, 0x33, 0x50, 0x0e, 0x89, 0xae, 0x28, -0x7e, 0xaa, 0x38, 0xc0, 0x35, 0x2a, 0xd7, 0x33, 0x2e, 0xe7, 0x37, 0x59, 0x6f, 0x4a, 0x7f, 0x00, -0x7d, 0x00, 0x14, 0x15, 0x31, 0x58, 0xf3, 0x91, 0xcf, 0x87, 0x16, 0x6b, 0x4f, 0xad, 0x1a, 0x85, -0x51, 0x2c, 0x64, 0xd8, 0xf5, 0x0b, 0x51, 0x57, 0xc5, 0xf4, 0x31, 0x02, 0x36, 0xe5, 0xe9, 0xaf, -0x13, 0x7c, 0x8a, 0x4c, 0x14, 0xd4, 0x4e, 0x54, 0xe2, 0x49, 0x4f, 0x17, 0x5d, 0x2d, 0xd6, 0x9c, -0x0b, 0x4e, 0xe3, 0xea, 0x19, 0xd4, 0x5c, 0x76, 0x50, 0x67, 0x03, 0x81, 0x3a, 0xab, 0x73, 0xe1, -0x38, 0x51, 0xe2, 0x4a, 0x01, 0x7c, 0x66, 0xa0, 0xdd, 0x0b, 0x7d, 0x99, 0xc3, 0x9d, 0xca, 0xc6, -0x38, 0x34, 0xec, 0xa1, 0x37, 0x61, 0xe5, 0x63, 0xe2, 0x80, 0x86, 0x70, 0xd1, 0xb1, 0x47, 0x9a, -0x41, 0xa0, 0xda, 0xa2, 0x1c, 0x3b, 0x5b, 0x8f, 0xa2, 0xda, 0xf0, 0x34, 0xe9, 0x7f, 0xac, 0x87, -0xfc, 0xd0, 0x5e, 0x90, 0x63, 0x0f, 0x88, 0xee, 0x80, 0xeb, 0xfe, 0xd1, 0x6e, 0x8e, 0x76, 0x02, -0x61, 0xd5, 0x8c, 0xd1, 0xb9, 0x9f, 0x13, 0x48, 0xf7, 0x6c, 0xbc, 0x6c, 0x7e, 0xa8, 0xdd, 0xc1, -0x98, 0x00, 0x8f, 0xab, 0xc6, 0x4a, 0xbb, 0xc2, 0xac, 0x79, 0x78, 0x17, 0x06, 0xfa, 0x73, 0xaf, -0x75, 0x86, 0x3d, 0x53, 0xd0, 0x62, 0xe6, 0xf7, 0x57, 0xd2, 0xdb, 0xda, 0xba, 0x51, 0x91, 0x87, -0x77, 0x57, 0x70, 0x67, 0x45, 0x90, 0xd3, 0x7c, 0xe4, 0xfe, 0x0a, 0x4d, 0xa3, 0xad, 0xe5, 0x8f, -0x47, 0xee, 0xae, 0x00, 0xf7, 0xc2, 0xb8, 0xec, 0xb0, 0x18, 0x5a, 0xed, 0xb0, 0x78, 0xd9, 0x18, -0x81, 0x0a, 0x73, 0x17, 0xa8, 0x30, 0xad, 0x40, 0x85, 0x89, 0x98, 0x4d, 0xb2, 0xa0, 0xbf, 0xb1, -0x01, 0xf2, 0x9c, 0xc3, 0xb2, 0x5d, 0xff, 0x68, 0xa0, 0xb9, 0x32, 0xa0, 0x9d, 0x47, 0x68, 0xf4, -0x84, 0x75, 0x48, 0x17, 0xe1, 0x8c, 0x8d, 0xd2, 0x11, 0x29, 0xee, 0x51, 0x08, 0xb2, 0x96, 0x8b, -0x2c, 0x7b, 0x81, 0xea, 0x09, 0x26, 0x06, 0xda, 0xeb, 0x61, 0xc0, 0xdb, 0x07, 0x29, 0x63, 0xf0, -0x64, 0xc3, 0xe9, 0x43, 0x83, 0x1c, 0x9b, 0x4d, 0xa9, 0x28, 0x94, 0x7f, 0x29, 0xa4, 0x54, 0x9a, -0x8c, 0xdf, 0x47, 0x2f, 0x25, 0xaa, 0x34, 0x07, 0x7d, 0xd6, 0x26, 0x0d, 0x86, 0x89, 0xb1, 0x14, -0xb7, 0x4e, 0x43, 0x19, 0x8b, 0xb2, 0xe4, 0x2a, 0x33, 0x8c, 0x6f, 0x97, 0x34, 0xfc, 0xa1, 0x86, -0x2d, 0xa9, 0xb0, 0x44, 0xfc, 0x31, 0x9e, 0x0e, 0x6b, 0xcd, 0xd4, 0xff, 0x27, 0x4a, 0x69, 0x3a, -0x68, 0x3d, 0xf3, 0xa3, 0x68, 0xbd, 0xc9, 0x44, 0x9b, 0xc4, 0x46, 0x6c, 0x03, 0xec, 0x33, 0x4c, -0xa0, 0x28, 0x75, 0xb1, 0xd4, 0xaa, 0x01, 0xa6, 0x1f, 0x42, 0x29, 0x49, 0xa4, 0x23, 0xd3, 0x1c, -0xbb, 0xfc, 0x58, 0x3a, 0x9c, 0x85, 0xe7, 0x8c, 0xa9, 0xb3, 0xa8, 0x5c, 0xba, 0x0c, 0xe2, 0xaa, -0xb2, 0x76, 0x6a, 0x06, 0x2a, 0xd3, 0x90, 0x76, 0xa0, 0x3b, 0xde, 0xbe, 0x74, 0xfd, 0x97, 0x68, -0x63, 0x01, 0x6f, 0xaa, 0x94, 0x16, 0xa0, 0x00, 0x05, 0xcf, 0x8e, 0x7d, 0xa1, 0xe5, 0xfa, 0x23, -0x66, 0x36, 0x44, 0xe9, 0x21, 0x0d, 0xdc, 0x3f, 0x8e, 0x8f, 0x76, 0x3f, 0x8f, 0x7b, 0xca, 0x09, -0x7a, 0x18, 0xf7, 0x24, 0xa2, 0x7f, 0x1c, 0x09, 0x33, 0x01, 0x55, 0xa7, 0x4f, 0x22, 0x46, 0x4d, -0xac, 0xde, 0x8c, 0x92, 0x3f, 0xa2, 0xe9, 0xc0, 0xcd, 0x1a, 0xc3, 0x43, 0x81, 0x36, 0x70, 0x7a, -0x52, 0xec, 0x6b, 0x44, 0x2a, 0x0d, 0x65, 0x0a, 0x71, 0xcf, 0x82, 0x89, 0x65, 0x7c, 0xe2, 0xae, -0x13, 0x0b, 0x4f, 0xed, 0x3d, 0x48, 0xee, 0x5f, 0x44, 0x2c, 0x24, 0x1c, 0x78, 0x5d, 0x6b, 0xa4, -0x9e, 0x84, 0x5b, 0xf6, 0x40, 0x79, 0x80, 0x46, 0xac, 0x99, 0x99, 0x2f, 0x85, 0x2f, 0xe1, 0xa4, -0x2f, 0xf0, 0x60, 0x28, 0x8f, 0x29, 0x2b, 0x71, 0x83, 0x95, 0x33, 0xa8, 0xc0, 0xe1, 0x27, 0xac, -0x90, 0xb5, 0x38, 0xfd, 0x84, 0xa1, 0x57, 0xe1, 0x51, 0x2c, 0x73, 0x02, 0x30, 0xd2, 0x70, 0x13, -0x3b, 0x0a, 0xb5, 0x58, 0x17, 0xee, 0x71, 0x50, 0xaa, 0x27, 0x8c, 0xc5, 0xcd, 0x55, 0xb1, 0xe1, -0x46, 0x36, 0x03, 0xad, 0x99, 0x2d, 0xde, 0xc3, 0x78, 0x3a, 0xde, 0x87, 0x03, 0x36, 0x1c, 0x6a, -0x65, 0x8d, 0x8f, 0x7a, 0xbf, 0xe4, 0x0b, 0xc6, 0x8b, 0x7f, 0x0e, 0x8f, 0x3b, 0x51, 0xcb, 0x76, -0x59, 0x02, 0x65, 0x79, 0xd6, 0x84, 0xe5, 0x68, 0xf3, 0xd5, 0x98, 0x6a, 0x3d, 0xf1, 0xa5, 0xb3, -0x6e, 0x39, 0x24, 0x3c, 0xcc, 0xeb, 0x18, 0x4a, 0xf5, 0x41, 0x8d, 0x51, 0x82, 0xaf, 0x45, 0x9e, -0x2f, 0xe3, 0x43, 0x12, 0xa1, 0x04, 0xea, 0x4a, 0x87, 0x61, 0x0b, 0x29, 0xd7, 0x6f, 0x66, 0x86, -0x32, 0x3e, 0xda, 0x18, 0x18, 0x0f, 0x94, 0xee, 0x35, 0x98, 0x36, 0x17, 0x11, 0x43, 0xbe, 0xa4, -0xbf, 0x89, 0x18, 0xa0, 0x0d, 0xc2, 0x6a, 0xac, 0x45, 0x92, 0xfe, 0x56, 0x12, 0x16, 0x7b, 0xc3, -0xc2, 0x19, 0xe2, 0x51, 0x96, 0x0c, 0x7a, 0x22, 0x3c, 0x2d, 0xfe, 0x9c, 0xc9, 0x10, 0x1b, 0x7b, -0x63, 0x15, 0x67, 0x48, 0x80, 0x77, 0xd2, 0x68, 0xb7, 0xb4, 0x84, 0xf3, 0x56, 0x47, 0x5f, 0x9f, -0x35, 0xea, 0x81, 0x96, 0x26, 0x66, 0xc0, 0x35, 0x11, 0xea, 0x0e, 0x36, 0xd2, 0x5c, 0xa2, 0x96, -0x6b, 0x50, 0x3a, 0x59, 0x4f, 0x74, 0x7d, 0x20, 0x75, 0x62, 0x80, 0xdf, 0x30, 0x12, 0x96, 0x1a, -0xbf, 0x1c, 0x9e, 0xfa, 0xc4, 0x93, 0xf0, 0xd4, 0x84, 0x15, 0xf0, 0xa6, 0x4f, 0x02, 0x89, 0x28, -0x16, 0x4d, 0x5b, 0x4f, 0x74, 0xbd, 0xa1, 0x47, 0x09, 0xfa, 0xf9, 0xd1, 0x50, 0xeb, 0x2a, 0xa8, -0xe9, 0x10, 0xdb, 0x5a, 0xd3, 0x41, 0x38, 0x81, 0xb0, 0x3a, 0x4e, 0x20, 0x54, 0xb1, 0xe8, 0x89, -0x8d, 0x1f, 0x53, 0xad, 0xcf, 0x1e, 0x04, 0x7a, 0x94, 0x9e, 0x3d, 0xd0, 0x3d, 0x74, 0xa0, 0x47, -0x51, 0x1f, 0x9a, 0xea, 0x4e, 0xb4, 0xa2, 0x47, 0x05, 0x3a, 0x53, 0xe3, 0x22, 0x13, 0x0a, 0xa5, -0x06, 0x9e, 0xd7, 0x0c, 0x25, 0xb7, 0xf0, 0x7c, 0xaf, 0xc6, 0x74, 0xa6, 0xb6, 0x1c, 0x67, 0x74, -0x18, 0xcc, 0x26, 0xc3, 0xb9, 0x8a, 0xc9, 0xe2, 0x57, 0x0e, 0xa2, 0x7d, 0xd5, 0x67, 0xd0, 0x9a, -0xff, 0x7c, 0xc6, 0x0c, 0x3d, 0xe3, 0x67, 0xc9, 0x23, 0x22, 0xbd, 0x54, 0x99, 0x80, 0x96, 0xa0, -0x6b, 0xe6, 0x14, 0x95, 0x7e, 0x72, 0x95, 0x04, 0xd9, 0x73, 0x91, 0x77, 0xa5, 0x73, 0x51, 0xe2, -0xa2, 0xf3, 0x90, 0xde, 0x63, 0x00, 0x61, 0x28, 0xde, 0xd3, 0xe9, 0x73, 0xa9, 0x3c, 0x49, 0x2c, -0x09, 0x17, 0x28, 0x90, 0x48, 0x3c, 0xe5, 0x50, 0x9a, 0x9c, 0x32, 0x31, 0xa8, 0x77, 0xac, 0x73, -0xe2, 0xbe, 0x02, 0x57, 0xfd, 0x07, 0x9a, 0xae, 0x1c, 0xd2, 0x0a, 0x62, 0x5e, 0x9e, 0xec, 0xa5, -0x86, 0x7e, 0x4f, 0x7d, 0x19, 0x72, 0x55, 0x65, 0x11, 0xae, 0x90, 0x4a, 0x4d, 0xdf, 0x77, 0x68, -0x19, 0xff, 0xb3, 0x3d, 0xa2, 0xff, 0x83, 0xd4, 0x33, 0x5a, 0x6a, 0xc0, 0x73, 0xde, 0x74, 0xc4, -0x84, 0x90, 0x36, 0x0b, 0x6d, 0x98, 0x0f, 0xb3, 0xca, 0x16, 0xae, 0x27, 0xb9, 0x7d, 0xfd, 0xa1, -0xe5, 0xc4, 0xb0, 0x5e, 0x46, 0xd8, 0x72, 0xe3, 0x78, 0x1d, 0x59, 0xa6, 0x8d, 0x6c, 0x4d, 0x3b, -0x12, 0xfe, 0x28, 0x7d, 0x02, 0x6c, 0x0f, 0x41, 0xc6, 0x86, 0xa7, 0xd8, 0x8c, 0x82, 0x8c, 0x8d, -0x99, 0xda, 0x99, 0xb0, 0xc0, 0xf8, 0x75, 0xac, 0xd6, 0xc3, 0x5c, 0x56, 0x6a, 0xea, 0x11, 0x57, -0x97, 0x47, 0x22, 0x76, 0xf0, 0x7b, 0x45, 0x33, 0x85, 0x5c, 0x35, 0x0f, 0x49, 0xf4, 0x84, 0xc3, -0x48, 0xc2, 0x13, 0x92, 0x48, 0x41, 0xb2, 0x27, 0x2a, 0x12, 0x46, 0x16, 0x62, 0x15, 0xfa, 0xdc, -0x01, 0xf2, 0x31, 0x63, 0x3e, 0x42, 0xae, 0x49, 0x34, 0xd7, 0x14, 0x0d, 0xf6, 0x42, 0xb2, 0xd2, -0x2a, 0x60, 0xbb, 0x32, 0xfa, 0x5c, 0x44, 0xc6, 0x02, 0x36, 0x8c, 0x30, 0xb8, 0xf3, 0xb8, 0x10, -0x70, 0xb6, 0xeb, 0x99, 0x27, 0xda, 0xdb, 0x2c, 0x6f, 0x3d, 0xca, 0x70, 0x6e, 0xc0, 0x4a, 0x65, -0x0e, 0x85, 0x51, 0x36, 0xe0, 0x3a, 0x89, 0x62, 0x12, 0xd0, 0xaa, 0x58, 0x8b, 0xa5, 0xb1, 0x52, -0x62, 0x32, 0x9b, 0xe2, 0x4d, 0xb1, 0x78, 0x96, 0x4e, 0x36, 0xb7, 0xf1, 0xfe, 0x97, 0x9b, 0xa9, -0x11, 0x28, 0xb8, 0x29, 0x99, 0x72, 0x9e, 0xa6, 0x83, 0x35, 0x66, 0x3e, 0x5b, 0x26, 0xf8, 0x04, -0x54, 0xd3, 0x6b, 0x7b, 0xdb, 0x64, 0xd6, 0x20, 0x78, 0x04, 0x4c, 0xc9, 0x8a, 0x16, 0x3c, 0x02, -0xb2, 0x82, 0x47, 0xc0, 0x51, 0x6c, 0x8a, 0xd5, 0x6c, 0xcb, 0xc0, 0xbd, 0x69, 0xc2, 0x15, 0x8b, -0x2e, 0xaf, 0x89, 0xa8, 0x28, 0x15, 0xb1, 0xf1, 0x1d, 0x81, 0xe3, 0x23, 0x1e, 0x1d, 0x63, 0x88, -0xb4, 0x54, 0x54, 0x2e, 0x62, 0x23, 0xe1, 0x4e, 0x06, 0xef, 0x0d, 0xbd, 0x63, 0x88, 0x97, 0x35, -0xce, 0xa6, 0x29, 0x16, 0x43, 0x0b, 0x87, 0xb1, 0x0c, 0x3c, 0xcb, 0xd9, 0x4e, 0xdd, 0x63, 0x48, -0xd8, 0x64, 0x11, 0xeb, 0x07, 0xd7, 0x50, 0x56, 0x0e, 0xbf, 0x40, 0x9b, 0x47, 0x4c, 0x2b, 0x13, -0x3d, 0xca, 0x06, 0x18, 0x17, 0x65, 0x8d, 0xb7, 0x1b, 0x00, 0x93, 0x89, 0x29, 0x55, 0xd3, 0xa5, -0x8c, 0x44, 0x3e, 0xc6, 0x2a, 0x52, 0x2b, 0x3a, 0x05, 0x6e, 0x03, 0x7e, 0xdf, 0x26, 0xc5, 0x3c, -0x59, 0x45, 0x18, 0xd9, 0x5a, 0x51, 0xf8, 0x33, 0x2b, 0x53, 0x00, 0xd7, 0xb3, 0x10, 0xde, 0x5b, -0x63, 0xed, 0xe8, 0xc1, 0xf6, 0x31, 0xaa, 0x05, 0x25, 0xad, 0x99, 0x56, 0x20, 0x33, 0xc1, 0x15, -0xc0, 0x63, 0xb2, 0x54, 0x1f, 0x07, 0x18, 0x3a, 0x81, 0xee, 0xeb, 0x18, 0x80, 0x23, 0x0a, 0x7f, -0x48, 0x73, 0xc8, 0x39, 0x73, 0xa8, 0xf4, 0x52, 0x8b, 0x8c, 0x32, 0xee, 0x9a, 0x38, 0x6d, 0xeb, -0xab, 0x80, 0x66, 0x47, 0xdf, 0x0e, 0x8e, 0x73, 0x78, 0xd4, 0x02, 0x73, 0x9c, 0xc0, 0x23, 0xcd, -0x7f, 0xff, 0x0a, 0x3d, 0xf9, 0x35, 0xb5, 0xc8, 0x7e, 0xfb, 0x69, 0x89, 0x07, 0xf6, 0xea, 0x26, -0x2d, 0x95, 0x73, 0xda, 0x37, 0x81, 0x44, 0x68, 0x89, 0x1a, 0xea, 0xa3, 0x25, 0x1a, 0x71, 0x0c, -0xe1, 0x4c, 0x71, 0x9d, 0xb4, 0x44, 0x8b, 0x2d, 0xcb, 0x71, 0xd3, 0xbf, 0x64, 0x44, 0x16, 0xe3, -0x17, 0x7b, 0x8e, 0xe5, 0x92, 0xc0, 0xa8, 0x98, 0x5d, 0x5f, 0xd4, 0xe5, 0x92, 0x80, 0xbe, 0xc4, -0xf2, 0xa5, 0x23, 0x37, 0xcb, 0x04, 0x0b, 0xc7, 0xc4, 0x59, 0x8a, 0x23, 0x39, 0x4b, 0x21, 0xd7, -0x6c, 0xc9, 0xe6, 0x9a, 0x69, 0x9e, 0x49, 0x34, 0x4f, 0xc8, 0xcf, 0x14, 0x03, 0xb9, 0xc9, 0x4c, -0x46, 0x05, 0xe4, 0x59, 0x17, 0x03, 0x33, 0x5e, 0x8c, 0x67, 0xb5, 0xb4, 0x05, 0x15, 0xfc, 0xde, -0xbb, 0x02, 0xa5, 0xc9, 0x81, 0x2f, 0x64, 0xc5, 0x75, 0x31, 0x7a, 0x4f, 0xfe, 0xb4, 0xc1, 0x8d, -0xc3, 0xfd, 0x63, 0x48, 0x47, 0xeb, 0xc8, 0x87, 0xf2, 0x07, 0x1a, 0xcb, 0x04, 0xd9, 0x03, 0xb8, -0xaa, 0x31, 0x47, 0xd9, 0x03, 0xbd, 0x2f, 0x9e, 0x87, 0x27, 0x6f, 0xfb, 0xe3, 0x3c, 0x7a, 0xa8, -0x89, 0x86, 0xf7, 0xa6, 0xd8, 0x00, 0xa8, 0x13, 0xcd, 0x4d, 0xcb, 0xdb, 0x96, 0x98, 0x5d, 0xab, -0x71, 0xb3, 0x98, 0xf7, 0x7f, 0x75, 0x1a, 0xca, 0x1d, 0x06, 0x29, 0x7c, 0xb5, 0xeb, 0x24, 0xd4, -0x64, 0x58, 0xc2, 0x79, 0xb3, 0xe5, 0xab, 0x28, 0x89, 0x65, 0x2f, 0x93, 0xb0, 0x70, 0x6f, 0xb1, -0x7b, 0x4d, 0x25, 0xf0, 0x94, 0x5b, 0x0d, 0xa2, 0x61, 0xc6, 0xba, 0x58, 0xaa, 0x51, 0xde, 0x18, -0x15, 0xbb, 0xf0, 0xb0, 0xf0, 0x7e, 0xd5, 0x9f, 0xb5, 0xec, 0x1f, 0x73, 0x1d, 0x5f, 0xf4, 0x21, -0x5c, 0x23, 0x13, 0x6f, 0xc9, 0x06, 0x1c, 0xea, 0xab, 0x97, 0xea, 0xc5, 0x68, 0xb9, 0x25, 0x57, -0x25, 0x58, 0x55, 0x51, 0xb9, 0x86, 0xd2, 0x7b, 0xa0, 0x7d, 0x68, 0x68, 0x27, 0x4e, 0x2f, 0xc6, -0xef, 0x43, 0x5e, 0x4c, 0x9f, 0xed, 0x6c, 0xcb, 0x42, 0x88, 0xef, 0xc1, 0xa7, 0x20, 0xc4, 0x35, -0xb4, 0x8e, 0xcb, 0x14, 0x40, 0xdf, 0x63, 0xdc, 0x96, 0x10, 0x81, 0x43, 0xcc, 0xfd, 0xcc, 0xdc, -0xdd, 0x21, 0xb1, 0xfd, 0x62, 0xb9, 0x26, 0x6c, 0x9b, 0x74, 0x23, 0xda, 0xde, 0xc7, 0xba, 0xa6, -0xc7, 0xf4, 0x8b, 0x81, 0xfe, 0xf0, 0x46, 0xdb, 0x84, 0xd4, 0x3e, 0xa1, 0x9c, 0xda, 0x38, 0x13, -0xd3, 0x93, 0x13, 0xaf, 0x0e, 0xa8, 0xb9, 0xeb, 0x41, 0x4f, 0x60, 0xf1, 0xe4, 0xfa, 0xd0, 0x3f, -0xd2, 0x1a, 0x87, 0x59, 0x69, 0x37, 0xb4, 0xda, 0x17, 0x2c, 0x11, 0xec, 0x69, 0xf8, 0x09, 0x92, -0x70, 0xa9, 0x36, 0x96, 0x4d, 0xa7, 0xb4, 0xa8, 0x4c, 0xa0, 0x4c, 0x73, 0x55, 0x39, 0x74, 0x04, -0xa0, 0x9f, 0xec, 0x6c, 0xde, 0x8b, 0x9b, 0xb3, 0xef, 0x7b, 0x0a, 0x7d, 0x2f, 0x83, 0x71, 0x02, -0x63, 0xbe, 0x2e, 0x46, 0x38, 0x6d, 0xe2, 0x54, 0xd3, 0x58, 0x83, 0x32, 0x47, 0xf0, 0xaf, 0x2d, -0x53, 0x56, 0xb0, 0x4a, 0x41, 0x02, 0x4e, 0xec, 0xdc, 0x57, 0xfc, 0x2b, 0x1b, 0x1b, 0xf5, 0xc0, -0xa9, 0x44, 0xb9, 0xea, 0xf7, 0x0d, 0x10, 0x6c, 0xfe, 0x50, 0xce, 0xf6, 0xa2, 0xd3, 0x1f, 0x2f, -0xdd, 0x83, 0xa0, 0x72, 0x57, 0x22, 0xa2, 0xc3, 0x39, 0xa8, 0x1f, 0x48, 0x0c, 0xce, 0xfd, 0xfc, -0x11, 0x34, 0x27, 0xe4, 0xeb, 0x02, 0x95, 0xae, 0x96, 0x7e, 0x44, 0x68, 0x93, 0x02, 0xb8, 0xa8, -0xe8, 0x96, 0xf6, 0x31, 0xec, 0x20, 0x62, 0x13, 0x94, 0xce, 0x04, 0xb5, 0x04, 0xf0, 0x00, 0x90, -0x99, 0xb2, 0xa9, 0x65, 0x16, 0x79, 0xb1, 0x04, 0xb8, 0x8c, 0x30, 0x87, 0x86, 0x61, 0xd3, 0x4e, -0x5e, 0x26, 0x71, 0xe9, 0x01, 0xb4, 0x59, 0x11, 0x45, 0xf8, 0x1d, 0x80, 0x47, 0xea, 0x37, 0x46, -0xfc, 0x77, 0xfa, 0x8d, 0xb8, 0x9a, 0xe1, 0x0e, 0x82, 0x5a, 0x90, 0x5a, 0x42, 0xe9, 0x6b, 0x94, -0x8b, 0xb2, 0x13, 0x71, 0x28, 0x3f, 0xab, 0xe3, 0x6e, 0x07, 0x12, 0x94, 0xcc, 0xb3, 0x95, 0x3a, -0xcf, 0x7b, 0x49, 0xf2, 0xb6, 0xbb, 0xc7, 0xe8, 0xee, 0x02, 0x2b, 0xbc, 0x5b, 0xe5, 0x42, 0x4b, -0xb7, 0x1a, 0xf7, 0x77, 0x97, 0x84, 0xe5, 0x12, 0x85, 0x21, 0x97, 0xf8, 0x22, 0x7d, 0xaa, 0x0f, -0x25, 0xab, 0xa2, 0x72, 0x89, 0xbf, 0x65, 0x5c, 0x03, 0x07, 0x57, 0x3f, 0x4b, 0x71, 0x03, 0xa7, -0xf7, 0xc4, 0xfd, 0x39, 0x08, 0x69, 0xa6, 0xe3, 0xdf, 0xe5, 0x4c, 0xf9, 0x6e, 0x05, 0xca, 0x7a, -0x13, 0x49, 0x78, 0x30, 0xb5, 0x8d, 0xec, 0x8b, 0xfb, 0x80, 0xbd, 0x12, 0x81, 0xdb, 0x01, 0x7c, -0xd9, 0x2b, 0x86, 0xee, 0xec, 0x7a, 0xf5, 0x32, 0x12, 0x7f, 0x5a, 0x73, 0xb3, 0x0c, 0xe5, 0xd0, -0x7c, 0xec, 0x5e, 0x40, 0xa1, 0x06, 0xa6, 0x99, 0x30, 0x3c, 0x95, 0x3d, 0x80, 0x37, 0xc7, 0x1a, -0x48, 0xa7, 0xb4, 0x44, 0x8c, 0x09, 0x6f, 0xdc, 0xe1, 0x8d, 0x0c, 0xa8, 0xc7, 0x40, 0x4c, 0x01, -0x9e, 0xa5, 0xf8, 0x5c, 0x07, 0xd4, 0x24, 0xa6, 0x84, 0xda, 0xb5, 0x19, 0x68, 0x73, 0x38, 0x00, -0x4a, 0xac, 0xc8, 0x40, 0xcb, 0xc4, 0x81, 0x50, 0x7e, 0xbf, 0xc1, 0x18, 0xbb, 0x13, 0x60, 0x3e, -0xff, 0xc1, 0xb1, 0xbd, 0x62, 0x49, 0x50, 0xb8, 0x16, 0x68, 0x33, 0x35, 0x7c, 0x65, 0x20, 0x6c, -0x17, 0xf8, 0xa6, 0x84, 0xfc, 0x54, 0xc5, 0xf7, 0xab, 0x4c, 0x75, 0xb1, 0xf0, 0x26, 0xc8, 0x20, -0xce, 0x30, 0xd6, 0x59, 0xd0, 0xcb, 0x3c, 0xab, 0x85, 0xd9, 0xe5, 0x65, 0x57, 0xd1, 0x70, 0x18, -0x3e, 0x06, 0xc2, 0xc6, 0x12, 0xd5, 0x84, 0xfb, 0xcb, 0x62, 0x0c, 0xb1, 0x75, 0xfb, 0xe1, 0x5d, -0x27, 0xc1, 0x46, 0x72, 0xc0, 0x64, 0xd2, 0xd7, 0x2f, 0x4a, 0x4b, 0x3a, 0x45, 0xc6, 0x03, 0x76, -0x0d, 0x8a, 0x30, 0xc3, 0x28, 0x70, 0xe7, 0xf9, 0x9d, 0x8c, 0x05, 0xa1, 0x2f, 0xeb, 0x9d, 0x56, -0x7b, 0x4b, 0x44, 0xfc, 0x8c, 0x60, 0xc5, 0xa9, 0x31, 0x11, 0xa2, 0xbd, 0xbb, 0x6a, 0x66, 0xe4, -0xdf, 0x49, 0x8b, 0x41, 0x7e, 0x2e, 0x40, 0xd4, 0x21, 0x86, 0x68, 0x07, 0xf0, 0xf2, 0x8d, 0x84, -0x62, 0x3e, 0x2e, 0x79, 0x69, 0xca, 0x82, 0x4e, 0xa4, 0x83, 0x91, 0x04, 0x23, 0x96, 0x23, 0x9c, -0xde, 0x4d, 0x2f, 0xc7, 0x77, 0x50, 0x22, 0xb5, 0x78, 0x16, 0x7d, 0xe3, 0x0e, 0x63, 0x8d, 0x7f, -0xa3, 0xc1, 0xb8, 0xd1, 0x66, 0x47, 0x98, 0x08, 0xb2, 0xdc, 0xd8, 0x2b, 0x9e, 0x74, 0x72, 0x84, -0xa8, 0x36, 0xf6, 0x32, 0x93, 0x20, 0xab, 0xc9, 0x2e, 0x7d, 0x25, 0x97, 0x28, 0x59, 0x2f, 0x6b, -0x2e, 0xd4, 0x4d, 0xb2, 0x10, 0x38, 0x39, 0xba, 0x8b, 0x59, 0xee, 0xe0, 0xc7, 0xfb, 0x23, 0x85, -0x64, 0xd6, 0xf0, 0xba, 0x60, 0x68, 0x01, 0x03, 0xf8, 0x8f, 0x6f, 0x6a, 0x11, 0x27, 0x6a, 0x71, -0x8f, 0x1c, 0xcf, 0xac, 0x75, 0x6d, 0x25, 0xc8, 0x44, 0x3f, 0x03, 0x67, 0x93, 0x8e, 0x9e, 0xb6, -0x00, 0xeb, 0xe8, 0x49, 0x4a, 0xcb, 0x99, 0xb0, 0xde, 0xdb, 0xf4, 0x1e, 0xd0, 0x33, 0x3e, 0x16, -0x18, 0x45, 0x3c, 0x46, 0xba, 0x53, 0x66, 0x32, 0x07, 0xc2, 0x5a, 0xd1, 0x57, 0x4b, 0x02, 0x23, -0xfc, 0xda, 0xae, 0x59, 0xa6, 0x84, 0x2e, 0x5a, 0x12, 0x8c, 0x16, 0x41, 0x80, 0xf2, 0x1f, 0x10, -0x61, 0x56, 0xca, 0x35, 0x26, 0xf4, 0xc0, 0x02, 0xad, 0x1a, 0x60, 0x32, 0xf9, 0x03, 0xbe, 0x8f, -0x8a, 0xdd, 0x1c, 0x3b, 0x56, 0x1c, 0x65, 0x0a, 0xf7, 0x8d, 0xf2, 0x36, 0xc4, 0x51, 0xaa, 0x08, -0xbd, 0x1e, 0x03, 0xfd, 0x44, 0xf7, 0xe2, 0x20, 0x1d, 0xa0, 0x52, 0x72, 0x85, 0xd5, 0x5b, 0x01, -0x75, 0x90, 0x2a, 0x81, 0x56, 0x53, 0x18, 0xaa, 0x89, 0xc1, 0xc8, 0x7a, 0xd1, 0x35, 0x43, 0x66, -0x30, 0xd6, 0xed, 0x85, 0x72, 0x46, 0xf5, 0x97, 0x99, 0xec, 0xd0, 0x53, 0x31, 0xc4, 0x98, 0xbc, -0xed, 0xb7, 0x77, 0x0d, 0xc8, 0x67, 0xd2, 0x5d, 0x67, 0x7e, 0x15, 0x52, 0x1a, 0x81, 0xce, 0xb4, -0x00, 0xf7, 0xfb, 0x80, 0x3e, 0xab, 0x95, 0x46, 0xba, 0x17, 0x8e, 0xf5, 0x93, 0xa1, 0x64, 0xc0, -0x6f, 0xc9, 0xa9, 0xf1, 0xb0, 0xde, 0xa8, 0xd3, 0x4c, 0x38, 0xfa, 0x81, 0x66, 0x0d, 0xb7, 0x9a, -0xd0, 0x33, 0x2d, 0xc4, 0xd2, 0x9d, 0x3c, 0x7c, 0x36, 0x17, 0x28, 0x39, 0x5a, 0xe2, 0x65, 0xa6, -0xb4, 0x04, 0x6b, 0x02, 0x52, 0x16, 0x2a, 0xb9, 0x7a, 0xa0, 0xd6, 0xa8, 0x89, 0xc1, 0xb6, 0xb7, -0x49, 0xe1, 0x57, 0x6e, 0x0f, 0x72, 0xc1, 0xdb, 0xd8, 0x4a, 0x5d, 0xf8, 0x56, 0xfa, 0x2d, 0x15, -0xf1, 0x05, 0xe0, 0x69, 0xb1, 0xde, 0x07, 0x9f, 0x7f, 0xbf, 0x45, 0xf7, 0x90, 0x5b, 0xe2, 0x4d, -0xa0, 0x2d, 0x07, 0xb3, 0x97, 0xd6, 0x48, 0xda, 0x52, 0xe3, 0x36, 0xab, 0xad, 0x8c, 0xae, 0x95, -0xb2, 0xba, 0x58, 0xbd, 0xc8, 0x81, 0x73, 0xf9, 0x35, 0xb7, 0xf1, 0x63, 0x41, 0x4a, 0xad, 0x0b, -0x9e, 0xf5, 0x09, 0xb3, 0x5b, 0x05, 0xb3, 0xfb, 0x8f, 0x28, 0xd4, 0x58, 0x2b, 0x6e, 0xf8, 0xc3, -0x02, 0xfc, 0x8a, 0x25, 0x9b, 0xee, 0xaa, 0xcb, 0x20, 0x3c, 0x4b, 0xe7, 0x38, 0x8c, 0x06, 0x99, -0x86, 0xf2, 0x37, 0x26, 0x9c, 0x67, 0x78, 0x42, 0x82, 0xbd, 0x0d, 0x2d, 0xd7, 0xc2, 0xdb, 0x00, -0x96, 0x70, 0xca, 0x55, 0xc1, 0x0c, 0x6c, 0xd9, 0x6b, 0xe7, 0x6d, 0x3d, 0xb9, 0xf0, 0x35, 0x8e, -0xfd, 0x73, 0x7f, 0xde, 0x6a, 0x88, 0x92, 0x3f, 0xbf, 0x57, 0xf0, 0xfb, 0x13, 0x70, 0xe7, 0x7f, -0x14, 0xad, 0x0a, 0xf9, 0x1e, 0x43, 0xf9, 0xe8, 0x1e, 0x54, 0xa2, 0x5a, 0x01, 0xdc, 0x68, 0xc0, -0xa6, 0xc4, 0x22, 0x75, 0x44, 0x4c, 0x24, 0xcc, 0xfc, 0xd8, 0xc6, 0x2a, 0xee, 0xa3, 0x83, 0x45, -0x81, 0x75, 0x56, 0x78, 0x1f, 0x58, 0x93, 0x58, 0xe4, 0x1b, 0x6e, 0x44, 0x29, 0xec, 0x98, 0x1b, -0x55, 0xdc, 0xc6, 0x03, 0x85, 0x12, 0xc7, 0x0e, 0x6c, 0x50, 0x1b, 0xbb, 0x77, 0x2a, 0xc1, 0xee, -0x1d, 0x95, 0xa9, 0xd0, 0x62, 0x7d, 0x80, 0x32, 0x3d, 0xc9, 0x4b, 0x31, 0x93, 0xc3, 0x2d, 0xd2, -0x02, 0x01, 0xc0, 0xe5, 0x3f, 0x1e, 0x4b, 0x74, 0x40, 0x81, 0x2b, 0xea, 0xae, 0x01, 0xde, 0xb2, -0x50, 0xda, 0x57, 0x33, 0x50, 0x98, 0xa7, 0x55, 0x57, 0x49, 0xa0, 0x5e, 0x86, 0x76, 0xb4, 0xa1, -0xaf, 0x75, 0x44, 0xfb, 0x65, 0x2d, 0x84, 0xf4, 0x85, 0x90, 0x0a, 0x21, 0xa4, 0x9a, 0x86, 0x09, -0xe0, 0xc3, 0xd4, 0x99, 0xf2, 0xfc, 0xc2, 0xfc, 0x0d, 0xc6, 0x52, 0x12, 0x2e, 0xda, 0x5c, 0x59, -0x28, 0x33, 0x88, 0xd2, 0xe8, 0x39, 0x74, 0x8d, 0x9b, 0x7d, 0xc4, 0xe3, 0x46, 0xe8, 0xc5, 0x56, -0x52, 0xa2, 0xb7, 0xb5, 0x14, 0x4f, 0x9b, 0x9c, 0x7b, 0x4f, 0x92, 0x36, 0x92, 0x3d, 0x8f, 0xd0, -0x3d, 0x77, 0xdd, 0x05, 0xbe, 0x75, 0x1f, 0xbd, 0xd5, 0x39, 0xa5, 0x5e, 0xe5, 0xce, 0xfd, 0xff, -0x1b, 0xc2, 0x2c, 0xa7, 0x94, 0x3d, 0xb4, 0x82, 0x05, 0x5b, 0x41, 0x17, 0x02, 0x33, 0x3b, 0xde, -0x79, 0x02, 0xe0, 0xd2, 0x06, 0xe1, 0x3a, 0xe2, 0x7b, 0x02, 0xfd, 0x68, 0xe8, 0x08, 0xda, 0x8c, -0xf2, 0x83, 0x1a, 0x06, 0x6c, 0xb6, 0x14, 0x4a, 0xc2, 0x65, 0xa9, 0x26, 0x58, 0x73, 0x02, 0x37, -0x19, 0x0b, 0x24, 0x06, 0x51, 0xaa, 0x31, 0x52, 0x66, 0xd9, 0x13, 0xad, 0x23, 0x9d, 0xfa, 0x8a, -0x2d, 0x5f, 0x86, 0x25, 0xc4, 0xde, 0xb4, 0x70, 0x1f, 0x7d, 0x59, 0x28, 0x0d, 0x97, 0x9d, 0x48, -0x18, 0x62, 0x32, 0xc4, 0x44, 0xe5, 0x93, 0x20, 0xa4, 0x28, 0x63, 0x6f, 0x5c, 0xa4, 0xef, 0x61, -0x6c, 0x24, 0x0f, 0x31, 0xea, 0xe2, 0xc3, 0x42, 0x89, 0x54, 0x1e, 0x43, 0x7e, 0x42, 0x1b, 0x0d, -0x70, 0xe5, 0xec, 0x66, 0xf8, 0x6d, 0x80, 0x12, 0x24, 0xa1, 0xcc, 0x23, 0x8c, 0x6e, 0x1d, 0x3d, -0xe3, 0xfa, 0xb3, 0xd1, 0x1d, 0xe3, 0xa7, 0x73, 0xa5, 0x27, 0x94, 0xd3, 0xe8, 0x09, 0x44, 0x40, -0x98, 0xb1, 0x75, 0x3f, 0x2d, 0xde, 0xa7, 0xf7, 0xa4, 0xbd, 0x14, 0x0b, 0x3d, 0xaa, 0xfd, 0xaa, -0xd6, 0x60, 0x72, 0xf4, 0xce, 0xc2, 0x3d, 0x42, 0xdf, 0xc4, 0xfe, 0x49, 0xdf, 0xe8, 0x28, 0xf5, -0xbc, 0xf3, 0xe1, 0xfe, 0xb9, 0x39, 0x47, 0x38, 0x85, 0x78, 0x4b, 0xe0, 0x92, 0x0b, 0x28, 0x97, -0x6c, 0x22, 0xe1, 0xf4, 0xc4, 0x20, 0xf2, 0x2f, 0xe8, 0x7c, 0x97, 0x5e, 0xba, 0x39, 0x14, 0x7a, -0x69, 0xd4, 0xe3, 0xf9, 0x44, 0xf7, 0x50, 0xfa, 0x5a, 0x87, 0x5e, 0xca, 0x7f, 0x9f, 0xfa, 0x8d, -0xbb, 0x74, 0x0c, 0x08, 0x67, 0x40, 0x0e, 0xde, 0x42, 0xb0, 0x8c, 0x80, 0x63, 0x80, 0x52, 0x4d, -0xb8, 0xf3, 0xfa, 0x77, 0x16, 0x20, 0x79, 0xbb, 0x64, 0x0e, 0x0b, 0x90, 0x37, 0x2f, 0x9e, 0xac, -0x10, 0xac, 0xaf, 0xcf, 0x71, 0xec, 0x9e, 0x52, 0x1b, 0x90, 0x93, 0xd1, 0x5b, 0x8c, 0xbd, 0xd4, -0x59, 0x06, 0x94, 0x76, 0xce, 0xe4, 0xe9, 0x0d, 0xc1, 0x72, 0xb2, 0x99, 0xb7, 0x9b, 0xec, 0x94, -0x4f, 0x68, 0x63, 0xb5, 0x1c, 0x3d, 0x76, 0x18, 0xca, 0x89, 0xa8, 0xaa, 0x16, 0x65, 0x02, 0xff, -0xf2, 0xec, 0xdb, 0xb5, 0x9e, 0x0a, 0xa0, 0x37, 0x1c, 0xd6, 0x95, 0x91, 0x7b, 0x1a, 0x87, 0xe7, -0x6c, 0xa4, 0xfe, 0x8b, 0x50, 0x52, 0xbf, 0xfb, 0x06, 0x5c, 0x33, 0xe1, 0x7a, 0x95, 0xb4, 0xfd, -0xab, 0xff, 0xa6, 0xae, 0xe5, 0x7e, 0xef, 0x56, 0x52, 0x7f, 0x32, 0x9c, 0xd4, 0xdf, 0x2e, 0x83, -0xf7, 0xab, 0x00, 0x2c, 0xa4, 0xfe, 0x16, 0xc0, 0x57, 0xfe, 0xfc, 0xf7, 0x93, 0x72, 0xf8, 0x06, -0xdf, 0x4f, 0x1a, 0x49, 0xfd, 0xbe, 0x14, 0xfe, 0xdd, 0x81, 0x93, 0xa4, 0xfe, 0xdb, 0x73, 0xa4, -0xfe, 0x08, 0x0b, 0xef, 0xb3, 0x21, 0x7c, 0x0d, 0xa9, 0x3f, 0x55, 0x05, 0xe1, 0x20, 0xad, 0x2b, -0x53, 0x20, 0x9c, 0x86, 0x83, 0x3f, 0xf2, 0x7f, 0xfd, 0x53, 0x0d, 0x8d, 0x4b, 0xed, 0xcb, 0xe4, -0x8c, 0x29, 0x2a, 0x0c, 0xcd, 0xcf, 0xc9, 0x2c, 0x19, 0x5d, 0x32, 0x89, 0x09, 0x0f, 0x0f, 0x0d, -0x63, 0x34, 0x61, 0xa1, 0xbd, 0x42, 0xc3, 0x0c, 0x3d, 0xc3, 0x7a, 0xf8, 0x78, 0x11, 0xd7, 0xcf, -0x84, 0x58, 0xef, 0x93, 0xfa, 0x17, 0x4a, 0xc9, 0x0f, 0x3d, 0x0f, 0xcd, 0xd4, 0x79, 0xce, 0x86, -0x7b, 0x1b, 0x40, 0x02, 0xc0, 0x12, 0x47, 0xa2, 0x62, 0x68, 0x9b, 0xc9, 0x65, 0x7c, 0x3d, 0xbe, -0xb8, 0x2f, 0xbc, 0xec, 0x01, 0xd0, 0x1d, 0xa1, 0x82, 0x54, 0xf5, 0x22, 0x28, 0x10, 0x86, 0x6a, -0x38, 0xa4, 0xea, 0x19, 0xbc, 0x87, 0x6b, 0xb4, 0xe3, 0x1d, 0xa9, 0xff, 0xec, 0x3c, 0xa9, 0xdf, -0xf9, 0x8c, 0xf3, 0xde, 0xf1, 0x37, 0x15, 0xfe, 0xc9, 0xd4, 0xa9, 0x53, 0xe9, 0xdd, 0x54, 0x0a, -0x35, 0x35, 0x35, 0x84, 0xdc, 0x80, 0x7f, 0x72, 0xe3, 0xc6, 0x0d, 0x7a, 0x77, 0x83, 0x07, 0x1a, -0x77, 0x27, 0xb4, 0xf1, 0xce, 0x81, 0x00, 0xe9, 0x00, 0xcf, 0x02, 0x8c, 0x06, 0xc8, 0x05, 0x18, -0x07, 0x30, 0xe1, 0x91, 0x79, 0xc3, 0xdf, 0x44, 0x42, 0x76, 0x4c, 0x24, 0x51, 0x3b, 0x01, 0x3e, -0xff, 0x73, 0x20, 0x3c, 0x4c, 0xe5, 0x3e, 0x2f, 0xc6, 0x42, 0x41, 0x5f, 0x38, 0x00, 0x9e, 0xdb, -0xfd, 0x37, 0x00, 0x71, 0x9b, 0x21, 0xfa, 0x8d, 0x1f, 0x2b, 0x48, 0x24, 0x40, 0xd4, 0x8f, 0x15, -0x5d, 0x9e, 0xf9, 0x6b, 0x20, 0xcf, 0xfc, 0x48, 0xc8, 0x33, 0x5c, 0x05, 0xf9, 0x37, 0xc4, 0x7b, -0x80, 0x00, 0x15, 0x7f, 0xe2, 0x22, 0x21, 0x3e, 0x3f, 0x72, 0xdc, 0xb5, 0xff, 0x14, 0x2a, 0x84, -0xfa, 0x17, 0x13, 0x8f, 0x1d, 0xc5, 0xa2, 0x1f, 0x77, 0x02, 0x7c, 0xfe, 0xa7, 0x40, 0x3c, 0x28, -0x8c, 0xe7, 0xfe, 0xf7, 0xf5, 0xaf, 0x27, 0x6e, 0x77, 0x01, 0xee, 0xd7, 0x93, 0xc7, 0x1e, 0xfc, -0x39, 0xdc, 0x06, 0x70, 0x7b, 0x70, 0x11, 0xa0, 0x19, 0xe0, 0x7f, 0x57, 0x7f, 0x37, 0x80, 0x76, -0x70, 0xdb, 0x1f, 0xd7, 0x83, 0x5a, 0xe2, 0x06, 0xd0, 0x8e, 0xbb, 0x48, 0xfa, 0x03, 0x40, 0xd9, -0xdc, 0x78, 0xb8, 0x2b, 0xe2, 0xe1, 0x3e, 0xe1, 0xa1, 0x99, 0x4c, 0xa5, 0xc0, 0x41, 0x38, 0xce, -0x00, 0x10, 0xf9, 0x24, 0xc7, 0x05, 0x3d, 0xc9, 0x35, 0xfb, 0xb6, 0xe3, 0xee, 0x7b, 0xb4, 0xe3, -0xee, 0xba, 0xbd, 0xc8, 0xdd, 0x10, 0x7d, 0x05, 0x69, 0x5c, 0x86, 0xf4, 0xc6, 0x43, 0x8f, 0xf5, -0x81, 0xa9, 0xfb, 0x44, 0x33, 0x21, 0xbe, 0x30, 0x3d, 0x3c, 0xee, 0x42, 0xb6, 0x50, 0x72, 0xd1, -0xc5, 0xff, 0x2a, 0x7f, 0xb8, 0x36, 0x7b, 0x40, 0xfe, 0x90, 0x25, 0xf7, 0xe4, 0xe7, 0x1c, 0x07, -0xd9, 0x37, 0xeb, 0x2f, 0x70, 0x0f, 0x3a, 0x72, 0x5c, 0x93, 0xf7, 0x75, 0xae, 0xd1, 0x9d, 0xe3, -0x1a, 0xc4, 0xbf, 0x73, 0x75, 0xa2, 0xa9, 0xdc, 0x2a, 0xb2, 0x9d, 0x33, 0x92, 0xe7, 0x9a, 0x2b, -0x48, 0xc8, 0x03, 0x42, 0x3a, 0x36, 0x11, 0xe2, 0xd5, 0x48, 0x88, 0x7b, 0x03, 0x4c, 0x59, 0x40, -0x57, 0x22, 0xe6, 0xff, 0x47, 0xea, 0xff, 0x24, 0xe4, 0x3d, 0xb5, 0x02, 0x16, 0xdd, 0x5a, 0xe2, -0x01, 0xf0, 0x24, 0xc4, 0x9b, 0xca, 0x5d, 0x84, 0xfc, 0x6e, 0x78, 0x00, 0x40, 0xd2, 0x77, 0xa7, -0xf2, 0x70, 0x1f, 0xb2, 0xba, 0x0f, 0xcf, 0xcd, 0x30, 0x78, 0x9a, 0xa1, 0xbe, 0x5c, 0x67, 0xa8, -0xff, 0x33, 0xf0, 0x1c, 0x8a, 0xf5, 0x9f, 0x0a, 0xf5, 0xff, 0x10, 0xea, 0x7f, 0x01, 0xea, 0xff, -0x23, 0xd4, 0x7f, 0xe2, 0x3f, 0xa9, 0xff, 0xff, 0xe9, 0x4f, 0x24, 0x54, 0x40, 0x8a, 0x74, 0x1f, -0x40, 0x20, 0x80, 0x01, 0x80, 0x85, 0x0a, 0xd5, 0x5e, 0x04, 0x54, 0x13, 0x49, 0xd0, 0x69, 0x86, -0x94, 0xb8, 0x55, 0xc0, 0xe7, 0x8b, 0xf0, 0x39, 0x12, 0x3e, 0xfb, 0x02, 0x8f, 0xe1, 0x56, 0x4b, -0xb1, 0xe1, 0x5f, 0xfe, 0xb9, 0xa1, 0x15, 0x36, 0x68, 0xa3, 0x76, 0xd0, 0x5e, 0x4f, 0x42, 0xdb, -0xf5, 0x87, 0x76, 0x9c, 0x4a, 0xfb, 0x05, 0xfb, 0xa2, 0x19, 0xfa, 0xe5, 0x01, 0xb4, 0xcf, 0xbd, -0x76, 0x1c, 0x77, 0x0b, 0xda, 0xa4, 0x1e, 0xda, 0x66, 0x1f, 0xb4, 0x51, 0x15, 0x34, 0x0b, 0xd3, -0x9f, 0x6b, 0x36, 0x2e, 0xe0, 0xee, 0x57, 0x74, 0xe3, 0xee, 0x11, 0x19, 0x77, 0x8b, 0x88, 0xfb, -0xd7, 0x13, 0xb2, 0x60, 0x1f, 0x21, 0xdd, 0xaa, 0x08, 0x50, 0x67, 0x04, 0x89, 0x9e, 0xbf, 0xcd, -0xff, 0xff, 0xed, 0xfa, 0xbb, 0xfe, 0xb5, 0x83, 0x71, 0xd3, 0x0f, 0x30, 0xe0, 0xbf, 0x57, 0x5e, -0x24, 0xcd, 0x53, 0xff, 0xa7, 0xf5, 0xf7, 0x80, 0xa1, 0x28, 0x57, 0xa0, 0x33, 0x43, 0x42, 0x18, -0x28, 0x9a, 0x11, 0x8a, 0x66, 0xdc, 0x05, 0xb0, 0xbb, 0x82, 0x18, 0xc7, 0xd6, 0x92, 0x98, 0xc0, -0x5a, 0x12, 0x5b, 0x59, 0x4b, 0x32, 0xbf, 0xac, 0x20, 0x3d, 0xc7, 0x54, 0x90, 0xc0, 0x2f, 0x20, -0x3c, 0xd4, 0x58, 0x2e, 0x27, 0x22, 0xc9, 0x3e, 0xe2, 0x26, 0xa9, 0x20, 0x52, 0x00, 0xb9, 0x04, -0xea, 0x0f, 0x57, 0x03, 0x34, 0x0a, 0x3b, 0xf3, 0x3f, 0xa8, 0xbf, 0x04, 0xf2, 0x16, 0xc1, 0xa3, -0x07, 0x14, 0xad, 0x1d, 0x14, 0x6d, 0x14, 0x14, 0x2d, 0x1a, 0x21, 0x06, 0xba, 0x5c, 0xc4, 0x92, -0xa8, 0xd8, 0x0c, 0x32, 0x32, 0x22, 0x99, 0x24, 0x55, 0xad, 0xac, 0x50, 0x65, 0x7c, 0x7e, 0xd1, -0xef, 0xf1, 0xa9, 0x77, 0xbd, 0x6f, 0x71, 0xcd, 0xde, 0x3f, 0x70, 0x0f, 0xdc, 0xc6, 0x70, 0xf7, -0xbc, 0xbb, 0x73, 0xb7, 0x3a, 0x2e, 0xe0, 0xea, 0xbb, 0x3d, 0xc9, 0xed, 0x4b, 0xf8, 0x9c, 0xab, -0x9a, 0x31, 0x95, 0x63, 0x54, 0x50, 0xff, 0x97, 0xfe, 0x9b, 0xfa, 0x67, 0x43, 0xbd, 0x0f, 0x09, -0x30, 0x17, 0x00, 0x56, 0xf5, 0x18, 0xf8, 0x16, 0x5b, 0x49, 0x48, 0xe6, 0x1e, 0x42, 0x7a, 0x66, -0x42, 0x25, 0x77, 0xff, 0x3f, 0x54, 0x7f, 0x74, 0xd3, 0x00, 0xf7, 0xa3, 0x80, 0x4a, 0x8a, 0x2e, -0x05, 0x18, 0x0b, 0xf5, 0x97, 0x11, 0x12, 0x05, 0x45, 0x1d, 0xf9, 0xf4, 0x7d, 0x92, 0xb4, 0xf0, -0x47, 0xa8, 0xff, 0xca, 0x8b, 0x7e, 0x81, 0xff, 0xd3, 0xfa, 0x23, 0x2d, 0xe0, 0xc1, 0xd3, 0x0f, -0x33, 0x4b, 0x85, 0xf1, 0x6c, 0x10, 0xae, 0xe1, 0xc2, 0xe8, 0xc3, 0x67, 0xb1, 0x83, 0xd8, 0x71, -0x01, 0x89, 0x70, 0x95, 0x0a, 0x73, 0x41, 0x26, 0x5c, 0x3d, 0x85, 0xf8, 0x5e, 0xc2, 0xd5, 0x57, -0x78, 0xe7, 0x2f, 0x84, 0x57, 0x0b, 0x57, 0x8d, 0x70, 0xd5, 0x0a, 0x57, 0x9d, 0x70, 0x0d, 0x6d, -0x99, 0x5e, 0x8e, 0xb2, 0xcd, 0x5e, 0x2f, 0xa4, 0x83, 0xf7, 0x46, 0x97, 0x7b, 0x9d, 0xcb, 0xbd, -0xa4, 0xe5, 0x7e, 0xd6, 0x0d, 0x97, 0xfb, 0x7d, 0x2e, 0xf7, 0xab, 0x5c, 0xee, 0x37, 0xbb, 0xc4, -0x0d, 0x74, 0x79, 0x3f, 0xd7, 0xe5, 0xbe, 0xac, 0xd5, 0x3c, 0xfc, 0x41, 0x1c, 0xfa, 0xd0, 0xdc, -0xfc, 0x41, 0xbc, 0xfc, 0xe1, 0x77, 0x6e, 0xe7, 0x1f, 0x7e, 0xe7, 0xde, 0xe9, 0x11, 0xef, 0xca, -0x1e, 0x7e, 0x27, 0x5a, 0xfd, 0xf0, 0x3b, 0xd9, 0x86, 0x87, 0xdf, 0x79, 0x86, 0x3d, 0xfc, 0xce, -0x63, 0xd1, 0xc3, 0xef, 0xa4, 0x97, 0x1e, 0x91, 0xc7, 0x1c, 0x97, 0x27, 0xff, 0x7f, 0xd0, 0xbf, -0x62, 0xa1, 0x7f, 0x7d, 0x69, 0xbf, 0xd6, 0xcf, 0x3a, 0x27, 0x74, 0x90, 0xaf, 0x70, 0x6d, 0x27, -0xdc, 0x2b, 0x84, 0x6f, 0xf8, 0x97, 0xfc, 0x88, 0x74, 0x3d, 0x68, 0xba, 0xf5, 0x2f, 0x6a, 0x84, -0x78, 0x06, 0x61, 0x6c, 0x38, 0xd2, 0x0a, 0x13, 0xe2, 0xe3, 0x7d, 0x84, 0x70, 0x8f, 0x63, 0xa8, -0xaf, 0x70, 0x8d, 0x16, 0xbe, 0x99, 0x5c, 0xc2, 0xc5, 0xbb, 0x84, 0xb3, 0x0a, 0xf9, 0xe9, 0x84, -0x74, 0x25, 0x7f, 0x51, 0x17, 0xb1, 0x30, 0x46, 0xc5, 0x02, 0xfe, 0x16, 0x0b, 0xe9, 0x89, 0x69, -0x3d, 0xf8, 0x7b, 0x3f, 0x97, 0x7c, 0x02, 0x5c, 0xee, 0x3b, 0xb9, 0xe4, 0xd9, 0x45, 0x78, 0xa7, -0x14, 0xde, 0x39, 0xc6, 0xb8, 0x9b, 0x30, 0xc6, 0x49, 0x62, 0xec, 0xa0, 0xe4, 0xf8, 0x98, 0xd8, -0x38, 0xbc, 0x26, 0x0e, 0x8c, 0x49, 0xc0, 0x6b, 0x71, 0xa1, 0x9d, 0xc1, 0x6b, 0x4c, 0x6a, 0x82, -0xc9, 0x2f, 0x7c, 0x68, 0x59, 0xce, 0x98, 0x41, 0x85, 0xa4, 0xfe, 0x73, 0xac, 0x27, 0x61, 0xc6, -0x66, 0xd9, 0xf2, 0x47, 0x97, 0x66, 0x31, 0x3d, 0x43, 0x81, 0x31, 0x61, 0x62, 0x8b, 0x8a, 0x27, -0x95, 0xe4, 0xd8, 0xb3, 0x4b, 0x99, 0x9e, 0x7d, 0xfa, 0xf4, 0x0a, 0x01, 0x3e, 0xc5, 0xc0, 0x58, -0xb3, 0x46, 0x17, 0x86, 0xe4, 0x17, 0x3d, 0x5f, 0xcc, 0x24, 0x8c, 0xce, 0xc9, 0xcf, 0x9f, 0xc4, -0x8c, 0x2e, 0x1c, 0xcb, 0x0c, 0x1c, 0x5d, 0x92, 0xc7, 0xc4, 0x8c, 0xcd, 0xcf, 0x2a, 0x71, 0x59, -0xdb, 0x7f, 0x78, 0xe6, 0x24, 0xca, 0x72, 0x41, 0x8d, 0x25, 0xe4, 0x87, 0xbe, 0xeb, 0xe0, 0xd7, -0x1d, 0x6a, 0x27, 0x13, 0xee, 0xa5, 0x84, 0x81, 0x7f, 0xfe, 0x5e, 0x02, 0xef, 0x15, 0xe4, 0x87, -0x88, 0xcd, 0xf0, 0x55, 0xc1, 0xbf, 0x17, 0xee, 0x2b, 0xe0, 0x9f, 0xbf, 0x67, 0x48, 0x05, 0x74, -0x15, 0xde, 0xe3, 0x9d, 0x58, 0x22, 0xdc, 0x8b, 0xc4, 0x22, 0xb1, 0x82, 0xbf, 0x17, 0x89, 0xdd, -0x24, 0xee, 0x52, 0x0f, 0x99, 0xcc, 0xd3, 0xd3, 0xcb, 0xcb, 0xdb, 0x5b, 0x0e, 0x7f, 0x3e, 0xf0, -0xe7, 0x0b, 0x7f, 0xed, 0xe0, 0x4f, 0x21, 0xfc, 0xb5, 0x17, 0xfe, 0xfc, 0x84, 0xbf, 0xc7, 0x84, -0x3f, 0xff, 0x36, 0x7f, 0x1d, 0xda, 0xfc, 0x05, 0xb4, 0xf9, 0xeb, 0xd8, 0xe6, 0x2f, 0xf0, 0x6f, -0xfe, 0x1e, 0xff, 0x9b, 0xbf, 0x4e, 0x7f, 0xf3, 0xd7, 0xf9, 0xaf, 0xff, 0x82, 0x68, 0xfd, 0x25, -0xee, 0xee, 0x52, 0xf8, 0xf3, 0x80, 0x3f, 0x99, 0xf0, 0xe7, 0x29, 0xfc, 0x79, 0xb5, 0xf9, 0xf3, -0x6e, 0xf3, 0x27, 0xff, 0x9b, 0x3f, 0x9f, 0xbf, 0xf9, 0xf3, 0xfd, 0x3f, 0xfe, 0xb5, 0xfb, 0x3f, -0xfe, 0xc1, 0xd4, 0x69, 0x8f, 0xbd, 0xe9, 0xe8, 0xbb, 0xb6, 0xfd, 0xf4, 0x77, 0xfd, 0xf1, 0x7f, -0x6c, 0xff, 0xce, 0x41, 0xff, 0xc7, 0xbf, 0x27, 0xfe, 0x8f, 0x7f, 0xa4, 0x7e, 0x6e, 0x1d, 0xa9, -0x5f, 0x98, 0x42, 0xcf, 0xc8, 0x88, 0xa8, 0x0b, 0xc5, 0x8d, 0xf5, 0x2f, 0x5f, 0x84, 0xf7, 0x19, -0xc2, 0x8c, 0xec, 0x22, 0xe0, 0x4b, 0x58, 0x5f, 0x16, 0xed, 0x11, 0xde, 0x3d, 0x26, 0xe0, 0x46, -0x9c, 0x9b, 0xee, 0x04, 0xed, 0x1c, 0x04, 0x02, 0xe0, 0x5c, 0xf5, 0x07, 0x90, 0x03, 0x04, 0x01, -0x88, 0x01, 0xfc, 0x00, 0xbc, 0x00, 0x3a, 0x01, 0x48, 0x01, 0x02, 0x00, 0x7c, 0x01, 0xba, 0x00, -0x88, 0x00, 0xda, 0x03, 0x78, 0x02, 0x3c, 0x0e, 0x80, 0xff, 0x1d, 0xf0, 0xbc, 0x07, 0xe0, 0x09, -0x00, 0x37, 0x80, 0xc7, 0x00, 0xbc, 0x01, 0x3a, 0x03, 0x78, 0x00, 0x74, 0x04, 0x78, 0x34, 0x6d, -0x2b, 0x72, 0xc1, 0xdb, 0x6e, 0x02, 0x48, 0x04, 0x70, 0x17, 0x40, 0x2a, 0x80, 0x87, 0x00, 0x32, -0x01, 0x3c, 0x05, 0xf0, 0x12, 0xc0, 0x5b, 0x00, 0xb9, 0x00, 0x3e, 0x14, 0xe4, 0x10, 0x76, 0x2e, -0x40, 0x12, 0xc0, 0x21, 0xf4, 0x7d, 0x07, 0xb0, 0x1e, 0x00, 0xbd, 0x82, 0x5d, 0x05, 0x08, 0x02, -0x58, 0x0e, 0x30, 0x02, 0xe0, 0x1c, 0x40, 0x14, 0xc0, 0x0e, 0x80, 0x72, 0x80, 0xfb, 0x00, 0x62, -0x80, 0xe9, 0x00, 0x26, 0x80, 0xdd, 0x00, 0x4a, 0x80, 0xb7, 0x00, 0x32, 0x01, 0x2e, 0x01, 0xf8, -0x01, 0x2c, 0x02, 0x48, 0x05, 0x38, 0x06, 0x10, 0x06, 0xb0, 0x09, 0xa0, 0x04, 0xe0, 0x16, 0x80, -0x17, 0xc0, 0x1c, 0x00, 0x2b, 0xc0, 0x01, 0x00, 0x2d, 0xc0, 0x3a, 0x80, 0x5c, 0x80, 0x9f, 0x01, -0x3a, 0x01, 0xbc, 0x06, 0x30, 0x1c, 0xe0, 0x2c, 0x40, 0x5f, 0x80, 0x6d, 0x00, 0x93, 0x01, 0x9a, -0x00, 0xa4, 0x00, 0xb3, 0x01, 0xe2, 0x01, 0xf6, 0x02, 0xa8, 0x01, 0xde, 0x05, 0xb0, 0x01, 0x5c, -0x01, 0x08, 0x00, 0x58, 0x06, 0x30, 0x14, 0xe0, 0x24, 0x40, 0x04, 0xc0, 0xc7, 0x00, 0x13, 0x00, -0xee, 0x00, 0xf8, 0x02, 0xcc, 0x07, 0x48, 0x06, 0x38, 0x0c, 0x10, 0x0a, 0xb0, 0x01, 0xa0, 0x10, -0xe0, 0x57, 0x80, 0x2e, 0x00, 0x2b, 0x00, 0x46, 0x01, 0x9c, 0x07, 0x88, 0x06, 0xd8, 0x09, 0x30, -0x05, 0xa0, 0x19, 0x40, 0x04, 0x30, 0x0d, 0x20, 0x06, 0x60, 0x17, 0x40, 0x57, 0x80, 0x37, 0x01, -0x46, 0x03, 0x7c, 0x0f, 0xd0, 0x1e, 0x60, 0x21, 0xc0, 0x60, 0x80, 0xa3, 0x00, 0x3d, 0x01, 0x36, -0x02, 0x8c, 0x03, 0xb8, 0x09, 0xe0, 0x09, 0xf0, 0x12, 0x40, 0x22, 0xc0, 0x7e, 0x80, 0x1e, 0x00, -0x6b, 0x01, 0x72, 0x00, 0x7e, 0x02, 0x78, 0x1c, 0xe0, 0x55, 0x80, 0x67, 0x01, 0xce, 0x00, 0xf4, -0x01, 0xf8, 0x14, 0x60, 0x12, 0xc0, 0x3d, 0x3a, 0x4a, 0x65, 0x64, 0x16, 0x40, 0x1c, 0xc0, 0x97, -0x00, 0x4f, 0x01, 0xbc, 0x03, 0x90, 0x85, 0xeb, 0x0b, 0x40, 0x07, 0x80, 0xa5, 0x00, 0x43, 0x00, -0xbe, 0x01, 0xe8, 0x05, 0xb0, 0x05, 0xe0, 0x79, 0x80, 0xdf, 0x00, 0x7c, 0x00, 0xe6, 0x01, 0x0c, -0x04, 0xf8, 0x1a, 0x20, 0x04, 0xe0, 0x03, 0x00, 0x94, 0x0f, 0xbd, 0x06, 0xf0, 0x04, 0xc0, 0x1b, -0x00, 0x23, 0x01, 0xbe, 0x03, 0x78, 0x06, 0xe0, 0x33, 0x80, 0x7f, 0x03, 0x3c, 0x00, 0x78, 0x8c, -0x78, 0x8a, 0x00, 0xc8, 0x62, 0xb8, 0x02, 0x90, 0x34, 0xb8, 0x02, 0x90, 0xe3, 0x70, 0x05, 0x20, -0x4f, 0xc3, 0x15, 0x80, 0x7c, 0x04, 0x57, 0x00, 0x32, 0x1e, 0xae, 0x00, 0xe4, 0x36, 0x5c, 0x01, -0x60, 0x44, 0x7a, 0x8a, 0x00, 0xc8, 0xcb, 0x70, 0x05, 0x20, 0x03, 0xe0, 0x0a, 0x40, 0x0e, 0xc2, -0x15, 0x80, 0x04, 0xc3, 0x15, 0x80, 0xbc, 0x0f, 0x57, 0x00, 0x92, 0x07, 0x57, 0x00, 0xf2, 0x0b, -0x5c, 0x01, 0x60, 0x0e, 0x79, 0x8a, 0x00, 0xc8, 0xeb, 0x70, 0x05, 0x20, 0xff, 0x82, 0x2b, 0x00, -0xf9, 0x16, 0xae, 0x00, 0xa4, 0x1f, 0x5c, 0x01, 0xc8, 0x76, 0xb8, 0x02, 0x90, 0x17, 0xe0, 0x0a, -0x40, 0xfe, 0x80, 0x2b, 0x00, 0xcc, 0x18, 0x4f, 0x11, 0x00, 0x79, 0x11, 0xae, 0x00, 0x24, 0x01, -0xae, 0x00, 0xe4, 0x2b, 0xb8, 0x02, 0x90, 0xee, 0x70, 0x05, 0x20, 0xef, 0xc1, 0x15, 0x80, 0xd8, -0xe1, 0x0a, 0x40, 0x7e, 0x84, 0x2b, 0x00, 0xcc, 0x5d, 0x4f, 0x11, 0x00, 0x79, 0x05, 0xae, 0x00, -0x64, 0x18, 0x5c, 0x01, 0xc8, 0x29, 0xb8, 0x02, 0x90, 0xde, 0x70, 0x05, 0x20, 0x9f, 0xc0, 0x15, -0x80, 0x4c, 0x84, 0x2b, 0x00, 0xf9, 0x1d, 0xae, 0x00, 0x80, 0x85, 0x3c, 0x45, 0x00, 0x64, 0x01, -0x5c, 0x01, 0xc8, 0x20, 0xb8, 0x02, 0x90, 0x23, 0x70, 0x05, 0x20, 0x7a, 0xb8, 0x02, 0x90, 0x0f, -0xe1, 0x0a, 0x40, 0x8a, 0xe0, 0x0a, 0x40, 0xae, 0xc3, 0x15, 0x80, 0x3c, 0x09, 0x57, 0x00, 0xb2, -0x12, 0xae, 0x00, 0xe4, 0x39, 0xb8, 0x02, 0x90, 0x0b, 0x70, 0x05, 0x20, 0xfd, 0xe1, 0x0a, 0x40, -0x3e, 0x87, 0x2b, 0x00, 0x99, 0x0a, 0x57, 0x00, 0xc2, 0xc1, 0x95, 0xa3, 0xf8, 0xc1, 0x83, 0x18, -0x01, 0x18, 0x00, 0x16, 0x40, 0x01, 0x90, 0x02, 0x60, 0x00, 0x28, 0x06, 0x90, 0x01, 0x58, 0x00, -0x34, 0x00, 0xd9, 0x00, 0x81, 0x00, 0x19, 0x00, 0x91, 0x00, 0x65, 0x00, 0x12, 0x00, 0x33, 0x80, -0x0a, 0x60, 0x2c, 0x80, 0x3f, 0x40, 0x3a, 0x40, 0x38, 0x40, 0x29, 0x80, 0x1b, 0xa4, 0x30, 0x03, -0x20, 0x16, 0xe0, 0x0b, 0x80, 0x6e, 0x00, 0x6f, 0x03, 0x8c, 0x01, 0xb8, 0x4c, 0xf1, 0xd4, 0x3f, -0xe1, 0xf1, 0x45, 0x8f, 0xc0, 0x87, 0x6d, 0xf1, 0x62, 0x5b, 0xfc, 0xd8, 0x16, 0x4f, 0x3a, 0x00, -0x57, 0x47, 0x22, 0xf3, 0xf0, 0x94, 0x7a, 0xb9, 0x7b, 0x4b, 0xe4, 0x6e, 0x3e, 0x62, 0x5f, 0x51, -0x3b, 0xd7, 0xbc, 0xc4, 0x2e, 0xe9, 0xb8, 0xbb, 0xe0, 0x56, 0x99, 0x80, 0x47, 0xe5, 0x4e, 0x3a, -0x9b, 0xa7, 0xdb, 0x91, 0x6f, 0x09, 0x42, 0x92, 0x51, 0xa0, 0x35, 0x91, 0x9e, 0x8e, 0x04, 0x40, -0x1e, 0x09, 0xf7, 0xd6, 0x59, 0xba, 0xc5, 0xc9, 0x33, 0x7b, 0xc8, 0xfb, 0x20, 0xe3, 0x79, 0xb1, -0x4d, 0xfd, 0x5c, 0xf3, 0x94, 0x0a, 0x79, 0xc9, 0x85, 0x3c, 0x02, 0x85, 0xb4, 0x0d, 0x42, 0x9a, -0xac, 0x90, 0x56, 0xad, 0xd0, 0x24, 0x15, 0xff, 0x79, 0xf4, 0xff, 0xf3, 0x9f, 0x23, 0x43, 0x0f, -0x52, 0x5f, 0xeb, 0x06, 0xf0, 0x18, 0x40, 0x17, 0x80, 0x27, 0x01, 0xb4, 0x00, 0xbd, 0x01, 0x80, -0x3f, 0xa8, 0x1d, 0x0a, 0x30, 0x86, 0x7e, 0xc3, 0x7d, 0x6e, 0x0f, 0xc3, 0xb2, 0x5f, 0x7d, 0x47, -0xeb, 0x5e, 0xf5, 0x1c, 0xbc, 0xcd, 0xa3, 0x60, 0xcf, 0xe3, 0xc5, 0xb9, 0x8d, 0x0b, 0x7e, 0x1a, -0xf3, 0x4e, 0xaf, 0x15, 0x63, 0x97, 0xbe, 0xed, 0xfb, 0x6d, 0x65, 0xd8, 0xa4, 0x73, 0x5b, 0x57, -0x5f, 0xfc, 0xe6, 0xa7, 0x2e, 0xaf, 0x1c, 0x3b, 0x53, 0xe9, 0xf9, 0x71, 0x52, 0xf0, 0x94, 0x8d, -0xe5, 0x9f, 0xfd, 0xb8, 0x35, 0xc4, 0xa3, 0xea, 0xf3, 0x27, 0x16, 0x3e, 0xf1, 0x89, 0x62, 0x6c, -0x6e, 0x0d, 0x73, 0xeb, 0xf6, 0xa7, 0xe3, 0x2c, 0x33, 0x77, 0xc6, 0x9c, 0xef, 0x74, 0xf6, 0xc4, -0xbf, 0x0b, 0xbe, 0xab, 0xff, 0xa5, 0xf1, 0xc4, 0x96, 0xc1, 0x33, 0x8e, 0xcf, 0xfa, 0xea, 0xb1, -0xfc, 0xea, 0xa1, 0x63, 0xf3, 0xd6, 0xd4, 0x3e, 0xc8, 0xbc, 0x37, 0x79, 0x4e, 0xd6, 0xfe, 0xab, -0xfe, 0xa2, 0x11, 0x83, 0xc6, 0x48, 0xf3, 0xcf, 0x34, 0xb5, 0x7b, 0x66, 0xcc, 0x3c, 0x99, 0xcf, -0x6f, 0xfd, 0x0a, 0x99, 0x7d, 0x49, 0x39, 0x8a, 0x51, 0xdf, 0xb0, 0x31, 0xf5, 0x6f, 0xd9, 0xc7, -0x95, 0x44, 0xb9, 0xd5, 0x1f, 0x1d, 0x20, 0x39, 0x91, 0x70, 0xcc, 0x67, 0xd6, 0x83, 0x77, 0xbc, -0xb6, 0xe4, 0xf5, 0xda, 0xb2, 0xa6, 0xc9, 0xb4, 0xa9, 0x3a, 0xff, 0xdb, 0xed, 0xfb, 0x4f, 0xae, -0xdf, 0x71, 0xcf, 0x18, 0x76, 0x3a, 0xff, 0x72, 0xdc, 0x85, 0x11, 0xcf, 0x9f, 0x3b, 0xe9, 0x73, -0xe4, 0xfd, 0xa3, 0xcf, 0x3c, 0xab, 0x3e, 0x63, 0x58, 0x3f, 0xf8, 0x3c, 0xe9, 0xbb, 0xef, 0xd4, -0xe0, 0x8a, 0xcf, 0xeb, 0x46, 0x07, 0x74, 0xdd, 0xdc, 0xb8, 0x65, 0xe8, 0x47, 0x7b, 0xba, 0x1d, -0xd9, 0xb6, 0xf4, 0xd5, 0xad, 0x9f, 0xbd, 0xd3, 0x4e, 0x23, 0xde, 0xba, 0xe2, 0x39, 0xf7, 0x4a, -0xd9, 0x5e, 0xf9, 0x99, 0x4d, 0x1b, 0xbd, 0x7f, 0x52, 0xe9, 0x8b, 0xca, 0x5f, 0xcc, 0xc8, 0x4e, -0x6a, 0xbf, 0x6b, 0xf4, 0x13, 0xef, 0x7f, 0x6c, 0x0b, 0x79, 0x66, 0xc2, 0xb9, 0x98, 0x2a, 0xd1, -0xb7, 0xe3, 0xa4, 0xd5, 0xc7, 0x98, 0x1d, 0xd7, 0xbf, 0x51, 0x68, 0xc7, 0x6d, 0x9c, 0xf5, 0x92, -0xf4, 0xe3, 0x2d, 0x4f, 0xae, 0xfc, 0xbc, 0xfe, 0x9d, 0x86, 0xad, 0x27, 0x9e, 0x2e, 0xf3, 0xd8, -0xff, 0x56, 0x3b, 0x72, 0x2f, 0x7c, 0x99, 0xe7, 0x9a, 0xf9, 0xdf, 0xfb, 0x56, 0x07, 0x4e, 0xcd, -0xf5, 0xd9, 0x2e, 0x2b, 0x78, 0x26, 0x64, 0xe1, 0xd8, 0xfc, 0x57, 0xae, 0x8c, 0x19, 0x21, 0xca, -0xcb, 0x1b, 0xdc, 0x18, 0x94, 0x3f, 0x3a, 0x73, 0x56, 0x96, 0xe1, 0xf4, 0xad, 0x4c, 0x92, 0x9c, -0x2f, 0x5d, 0x7a, 0xad, 0xb3, 0xe8, 0x9d, 0x17, 0xa6, 0xcb, 0x1a, 0x77, 0xfd, 0xd6, 0x6e, 0xcf, -0xb0, 0xac, 0x9a, 0x33, 0x7b, 0xfd, 0x3e, 0xf9, 0x29, 0xe5, 0xe5, 0x9d, 0x5b, 0x7f, 0xbe, 0xff, -0x69, 0x65, 0x79, 0xe6, 0x77, 0x4f, 0x5c, 0xe8, 0x70, 0x36, 0x24, 0x71, 0xee, 0xf1, 0xf2, 0xdb, -0x7f, 0x9c, 0x48, 0xca, 0x1a, 0xb8, 0x69, 0x74, 0x46, 0xdf, 0x2d, 0x83, 0x0f, 0xbf, 0xbd, 0x83, -0x94, 0x9e, 0xd8, 0x6e, 0xb8, 0x64, 0xbd, 0xf0, 0x4e, 0xcc, 0x33, 0xa7, 0x97, 0x9e, 0x5a, 0x7d, -0x74, 0x4f, 0xc1, 0xf1, 0x93, 0x8d, 0x7f, 0xc4, 0xe6, 0xfc, 0x94, 0x1b, 0x5e, 0x78, 0xe6, 0xfe, -0x07, 0xf6, 0xca, 0xf8, 0xb3, 0xec, 0xd6, 0x3a, 0xb3, 0x24, 0x64, 0xfc, 0xd3, 0x6e, 0x4f, 0xfc, -0xb0, 0xce, 0x2b, 0xe9, 0xb9, 0xef, 0x7c, 0xca, 0xf7, 0xa7, 0xb8, 0x8f, 0x8b, 0xea, 0x2e, 0x8e, -0x59, 0xb7, 0xd3, 0x5b, 0xa1, 0xd8, 0x2f, 0x67, 0x66, 0x0f, 0xcb, 0xde, 0xf2, 0x14, 0x53, 0x34, -0xeb, 0xa3, 0x4f, 0x6d, 0x27, 0x3c, 0x0f, 0x8f, 0xae, 0x5f, 0x39, 0xea, 0xfc, 0x3d, 0xdf, 0x1e, -0x67, 0xf6, 0x57, 0xd7, 0xd4, 0x55, 0x2b, 0xbf, 0x3a, 0xb5, 0x66, 0xf3, 0xb3, 0x1f, 0x3d, 0xd3, -0x31, 0x74, 0xb3, 0xcf, 0xb4, 0x4f, 0x3e, 0x1b, 0xd1, 0xaf, 0x76, 0x5b, 0xfe, 0x07, 0xd7, 0xb6, -0xce, 0x60, 0x5e, 0xfb, 0xfc, 0xa3, 0x8f, 0xdd, 0x3e, 0xbe, 0x24, 0x2f, 0xdd, 0x78, 0xec, 0xb5, -0x9f, 0xbf, 0x49, 0xe8, 0xf3, 0xc6, 0xb1, 0x89, 0x1f, 0x4a, 0xbe, 0x55, 0x77, 0x18, 0x7f, 0x2e, -0x60, 0xc6, 0xe5, 0x31, 0xde, 0x7e, 0x4b, 0xc6, 0xf6, 0x9b, 0xe9, 0x53, 0x90, 0x1b, 0x3d, 0x39, -0x77, 0xf8, 0x9a, 0x7a, 0xdf, 0x23, 0xde, 0x8b, 0x3d, 0xb9, 0x37, 0xbc, 0xc8, 0x86, 0xee, 0xff, -0xf6, 0x58, 0xb1, 0xf1, 0x46, 0xbb, 0xc5, 0xe6, 0x17, 0x65, 0x6f, 0x1f, 0xeb, 0x22, 0xba, 0x95, -0x9d, 0x23, 0xdd, 0xdd, 0xfc, 0x7b, 0xe6, 0xb0, 0x91, 0x15, 0x59, 0xf6, 0x83, 0x8f, 0xe7, 0x47, -0x8c, 0x2b, 0xcc, 0x93, 0xfe, 0xd8, 0x7c, 0xa2, 0xf3, 0x84, 0x97, 0x8e, 0x07, 0x5f, 0x54, 0x9c, -0x9d, 0x3c, 0xdc, 0xfe, 0x9d, 0xf5, 0xd0, 0xbd, 0x4f, 0x2f, 0x14, 0xcd, 0xdf, 0x79, 0xfd, 0x5e, -0xc7, 0x4f, 0x76, 0xc6, 0xb2, 0x35, 0xf3, 0xbf, 0x39, 0x79, 0xf2, 0xed, 0x86, 0x37, 0x8f, 0x2e, -0x9e, 0x12, 0x79, 0x7a, 0xf7, 0x9e, 0x41, 0x17, 0x6e, 0xa5, 0x1e, 0xdd, 0x6e, 0xbf, 0xf9, 0xee, -0x8e, 0x61, 0xf6, 0xfe, 0x5b, 0xa4, 0xdf, 0x59, 0x36, 0x45, 0x0c, 0x38, 0xed, 0x13, 0x7c, 0xf6, -0x43, 0xaf, 0xce, 0x49, 0x11, 0x6e, 0xd6, 0x3b, 0x31, 0x92, 0xc9, 0xec, 0x05, 0xf6, 0xfa, 0x17, -0x6b, 0xec, 0x17, 0x86, 0xf4, 0x2c, 0x9c, 0x7f, 0x3d, 0x3e, 0x67, 0xe7, 0xa4, 0x83, 0xa3, 0x3f, -0x9a, 0xbb, 0xc3, 0x36, 0xa3, 0xd3, 0x53, 0x45, 0xc7, 0x56, 0xa5, 0x66, 0x5f, 0x8a, 0x38, 0x24, -0x9f, 0xb8, 0x74, 0xbb, 0x77, 0x82, 0x9b, 0x52, 0x1c, 0xf0, 0xe9, 0x10, 0x77, 0xb5, 0xfe, 0xcb, -0x6d, 0xfd, 0x76, 0x6e, 0xfa, 0xcc, 0x5b, 0x13, 0xbc, 0x79, 0xf8, 0xa2, 0x11, 0x1f, 0xe5, 0x4a, -0x76, 0x9f, 0xe2, 0xde, 0xdb, 0x52, 0x77, 0xa4, 0xa7, 0xee, 0xcc, 0x8a, 0x97, 0xff, 0x75, 0x7e, -0xc3, 0x13, 0xaf, 0x8f, 0xdd, 0x5d, 0x73, 0x75, 0xcc, 0x2d, 0xf5, 0xf3, 0xb9, 0x6f, 0x2f, 0x17, -0x17, 0x2c, 0xf6, 0x5a, 0xee, 0x29, 0x5d, 0xfb, 0x8b, 0x6f, 0x44, 0xff, 0x12, 0x0f, 0xfb, 0x2c, -0x77, 0x32, 0xec, 0xb1, 0xa5, 0x9f, 0x5b, 0xa7, 0x5f, 0xda, 0x3a, 0xd9, 0xff, 0x85, 0x8d, 0xc1, -0x1b, 0xe4, 0x1f, 0x77, 0x8e, 0x5c, 0x74, 0x6c, 0xfe, 0xeb, 0x3f, 0x7c, 0xb3, 0xd3, 0xa7, 0xfc, -0xdc, 0xf5, 0x4f, 0xbc, 0xbf, 0xbd, 0xd0, 0x75, 0xf6, 0xf1, 0x63, 0x27, 0x6e, 0x9e, 0xb8, 0x64, -0xca, 0xfe, 0xee, 0xa3, 0xbb, 0x4f, 0x9e, 0x9d, 0x51, 0x38, 0x6d, 0x67, 0xc0, 0xd7, 0x77, 0x3e, -0x55, 0xff, 0xab, 0xa8, 0x66, 0xe2, 0xf7, 0x81, 0x9f, 0x24, 0x4c, 0xac, 0x94, 0x0d, 0xbf, 0xc2, -0xb5, 0xcb, 0x2d, 0xb6, 0x49, 0xfb, 0x1d, 0x68, 0x2f, 0xf2, 0x1e, 0xb1, 0x20, 0x6b, 0x05, 0x77, -0x37, 0x73, 0x43, 0xce, 0xe8, 0x3c, 0xee, 0x78, 0x40, 0xfe, 0x91, 0xb8, 0x55, 0x5e, 0x97, 0xca, -0x4e, 0xf9, 0x1c, 0xfb, 0x35, 0x59, 0x32, 0x23, 0xbd, 0x8f, 0xdb, 0x47, 0xbb, 0xdf, 0xb3, 0xab, -0x47, 0xd7, 0xb1, 0x01, 0xbf, 0x27, 0xe6, 0x24, 0x0c, 0x8c, 0x2e, 0x9c, 0xf8, 0xed, 0x86, 0xa3, -0xb9, 0xd6, 0x33, 0x27, 0x87, 0x9f, 0x33, 0x5e, 0xf0, 0xb6, 0xf5, 0x3e, 0xdd, 0xef, 0xc6, 0xda, -0x1d, 0x1b, 0xd2, 0xce, 0x6f, 0x5f, 0xf1, 0x65, 0xc2, 0xa6, 0x23, 0x53, 0x0d, 0x5b, 0xb8, 0x9f, -0x3e, 0xfb, 0xec, 0x56, 0xd0, 0x81, 0x6d, 0xbb, 0xe7, 0xa4, 0x7d, 0xb4, 0xd8, 0xa0, 0xda, 0xfc, -0xf6, 0xbb, 0xdb, 0xea, 0x22, 0xdc, 0xbf, 0x3e, 0x25, 0x5d, 0x9c, 0x7e, 0x7e, 0x58, 0x8f, 0x6e, -0x67, 0xec, 0x9f, 0x7f, 0x64, 0x9b, 0x1c, 0xba, 0x67, 0xb4, 0x75, 0xeb, 0xc8, 0xec, 0xce, 0x62, -0x6d, 0x51, 0xf0, 0x92, 0xcd, 0xde, 0x3b, 0x7b, 0x7f, 0x21, 0x9f, 0xff, 0xe6, 0x70, 0xf7, 0x0b, -0x9d, 0x43, 0xc4, 0xd7, 0xe7, 0xe1, 0xfc, 0x7f, 0xbc, 0x73, 0xcf, 0x98, 0xb0, 0x88, 0xcc, 0xe9, -0xc1, 0x21, 0x69, 0x5f, 0x8c, 0xcd, 0xff, 0x52, 0xf2, 0xef, 0x89, 0x8d, 0x71, 0x43, 0x87, 0xbf, -0x37, 0x7b, 0x50, 0xcc, 0xb2, 0xaf, 0xf6, 0x9d, 0x99, 0x23, 0x3b, 0xba, 0x7b, 0x7b, 0x62, 0xd3, -0xf5, 0x86, 0x39, 0x97, 0x1b, 0xcf, 0x1c, 0x5c, 0xbf, 0x65, 0x90, 0x7c, 0xcb, 0x86, 0x29, 0x03, -0x57, 0xcc, 0x08, 0x99, 0xff, 0x62, 0x75, 0xd0, 0x11, 0xeb, 0x6e, 0xbf, 0xc1, 0x69, 0x67, 0xba, -0x29, 0xca, 0x1a, 0x8b, 0x8f, 0x8f, 0xbe, 0x1e, 0xb3, 0x28, 0x74, 0xc3, 0xa9, 0x21, 0xbd, 0xb7, -0x5c, 0xf1, 0x0f, 0xaa, 0xde, 0x72, 0xca, 0x7d, 0xc6, 0xcc, 0x65, 0xd3, 0x3b, 0x57, 0x3f, 0xfb, -0x3a, 0x59, 0x1b, 0x58, 0x13, 0xd2, 0xf4, 0xed, 0xda, 0x88, 0x83, 0xaf, 0x5d, 0x99, 0x38, 0x72, -0x24, 0x97, 0x9f, 0x1f, 0x74, 0x22, 0xa6, 0xff, 0x85, 0xaf, 0x87, 0xfb, 0xae, 0x58, 0x3a, 0x53, -0xf5, 0xd6, 0xdc, 0x95, 0x1d, 0x2e, 0xbf, 0xb7, 0x29, 0x9e, 0xd9, 0xb9, 0x76, 0xe2, 0xe8, 0x9b, -0x0d, 0xdf, 0xbf, 0xdb, 0x70, 0xbb, 0xee, 0xc7, 0x2f, 0xce, 0xcf, 0x50, 0x9d, 0xfd, 0x72, 0x53, -0xd6, 0xc8, 0x91, 0x1b, 0xd6, 0x99, 0xe3, 0x57, 0xfe, 0x52, 0x94, 0x77, 0x48, 0x33, 0xa1, 0xf8, -0x41, 0x4e, 0x9f, 0x9e, 0x79, 0x1b, 0x18, 0xed, 0xf0, 0xeb, 0xde, 0x1e, 0x9e, 0x3a, 0xbf, 0xa0, -0xc8, 0x82, 0x0b, 0xf1, 0x11, 0xb7, 0xf7, 0x8e, 0xf4, 0xd8, 0x74, 0xad, 0x38, 0x7d, 0x5c, 0x63, -0x5e, 0x96, 0x61, 0xbb, 0xf6, 0xf6, 0xef, 0x6f, 0xf5, 0xdc, 0xfd, 0xf1, 0x4b, 0x41, 0x0b, 0x9f, -0xaf, 0xf2, 0x58, 0x15, 0xde, 0x71, 0xe5, 0x8e, 0x3f, 0x7c, 0x67, 0xce, 0xdb, 0xf6, 0xd4, 0xda, -0xf3, 0x93, 0xa2, 0x36, 0x5d, 0x8f, 0x1c, 0x7f, 0x7b, 0x12, 0x97, 0xdb, 0x60, 0xd9, 0x19, 0xf3, -0x65, 0xe7, 0x7f, 0x67, 0x9c, 0xd7, 0x46, 0xdd, 0x98, 0x34, 0xc8, 0xfd, 0xa7, 0xcc, 0x29, 0xe6, -0xdd, 0x83, 0x42, 0x5e, 0xfc, 0x36, 0x3d, 0x68, 0xef, 0x92, 0x0e, 0x73, 0x44, 0xf3, 0x7c, 0xb7, -0x1b, 0xdf, 0xed, 0xd6, 0x30, 0xe3, 0xf3, 0xc8, 0x33, 0xbb, 0x23, 0x57, 0x7d, 0xe9, 0xd3, 0x75, -0x7b, 0x63, 0x92, 0xd7, 0xb2, 0xf7, 0x16, 0x3c, 0x36, 0x6f, 0xd9, 0xe1, 0x11, 0x87, 0x88, 0x67, -0xdc, 0xa9, 0x9e, 0x96, 0xc2, 0xa6, 0xcc, 0x97, 0x27, 0x7e, 0x9f, 0x76, 0x60, 0xdb, 0xf6, 0x91, -0xe9, 0x6f, 0xaf, 0xca, 0xef, 0x50, 0x39, 0xaf, 0xff, 0xc9, 0x85, 0xcb, 0x7c, 0x5f, 0x39, 0x7f, -0xaa, 0x3a, 0xe5, 0xab, 0x43, 0x6b, 0xdb, 0x5f, 0xfd, 0xbe, 0xe9, 0xd8, 0x6f, 0x4d, 0x07, 0x17, -0x97, 0x64, 0x9e, 0x1a, 0x91, 0x37, 0xe9, 0xca, 0x13, 0xc6, 0xf4, 0x2d, 0xe7, 0x9f, 0x1d, 0x34, -0x73, 0x65, 0x80, 0xaf, 0x5f, 0x46, 0xbb, 0x0e, 0xdd, 0x1e, 0x57, 0x45, 0x16, 0x9f, 0x7d, 0xa6, -0x5b, 0xcc, 0xeb, 0x59, 0x0f, 0xf2, 0xde, 0x2b, 0xbf, 0x32, 0xfc, 0xca, 0xb0, 0x83, 0x9e, 0x4f, -0x25, 0xd7, 0x45, 0x8e, 0x15, 0x2d, 0xdc, 0xf0, 0x76, 0xe0, 0x9c, 0x95, 0x97, 0x9e, 0x7e, 0xef, -0x50, 0x57, 0xed, 0x8e, 0x07, 0xec, 0x07, 0xaa, 0xef, 0x3f, 0xdc, 0xdc, 0xbf, 0xee, 0xd7, 0x95, -0x7e, 0x33, 0x42, 0x66, 0x7b, 0x6e, 0xca, 0xdf, 0x6f, 0x51, 0xbd, 0x5f, 0x97, 0xd6, 0xe1, 0xe7, -0x3f, 0xa6, 0xc4, 0xf7, 0xb8, 0x94, 0x35, 0x31, 0x5b, 0xdf, 0x7f, 0xd2, 0x9d, 0x08, 0x95, 0xe5, -0x93, 0x27, 0x3c, 0x3b, 0x97, 0x4a, 0xfc, 0xb4, 0xbd, 0x06, 0xa4, 0xed, 0xb8, 0x95, 0x6a, 0x99, -0xf7, 0xd1, 0xa4, 0xac, 0xf3, 0xc5, 0xec, 0x94, 0xeb, 0x3d, 0x7f, 0xbc, 0x72, 0xbb, 0xb9, 0xf9, -0xc1, 0xee, 0xcf, 0xbf, 0xa9, 0x5b, 0x58, 0x7e, 0xe8, 0xe0, 0xaa, 0x67, 0x66, 0xcc, 0x89, 0x68, -0x7a, 0x6d, 0xa1, 0xc7, 0xf6, 0x8d, 0x3b, 0xd2, 0xcb, 0xd6, 0xbc, 0x97, 0xd5, 0xa7, 0xdf, 0x8c, -0xea, 0x01, 0xca, 0xea, 0xb5, 0x5e, 0x9e, 0x5b, 0x9a, 0xf6, 0x2b, 0x36, 0x1c, 0xac, 0x7c, 0xee, -0xfa, 0xc8, 0x41, 0xf1, 0x8d, 0xf9, 0xbe, 0x05, 0x67, 0xfa, 0x7f, 0x5d, 0xba, 0xdb, 0x77, 0xee, -0xed, 0xe1, 0x7e, 0xb1, 0x3f, 0xc7, 0x74, 0x13, 0xef, 0xca, 0x2f, 0xde, 0x75, 0x7a, 0x62, 0x4c, -0xc5, 0x2b, 0x11, 0xa7, 0x12, 0xe6, 0x87, 0x5c, 0x91, 0xbe, 0x43, 0xb6, 0x7c, 0xb9, 0xa3, 0xf3, -0xcc, 0x99, 0xe3, 0x62, 0xe6, 0x74, 0xca, 0x1e, 0xbe, 0xfd, 0x5f, 0xb1, 0x13, 0x1b, 0xaa, 0x87, -0xe7, 0x9f, 0x39, 0xd3, 0x21, 0x64, 0x50, 0x17, 0x79, 0xc4, 0x94, 0xe7, 0xba, 0x77, 0x0e, 0x59, -0x1e, 0x4d, 0x82, 0xbe, 0xfb, 0xb4, 0x9a, 0xf8, 0xad, 0x9a, 0xd1, 0x33, 0xed, 0xe5, 0x0d, 0x99, -0x55, 0x8b, 0xb6, 0xa4, 0x1d, 0xfd, 0xae, 0xf1, 0xcb, 0x80, 0x3d, 0xd7, 0x1b, 0x87, 0x5d, 0xdf, -0xfd, 0xde, 0x92, 0x3b, 0x67, 0x96, 0x7d, 0xb3, 0xc1, 0x63, 0xc7, 0x4f, 0x9f, 0x04, 0xcd, 0x5b, -0xb3, 0xbc, 0xe7, 0xf9, 0xbc, 0x59, 0xda, 0xeb, 0xda, 0x03, 0x79, 0x93, 0xae, 0x1d, 0x2f, 0xb6, -0xac, 0xbf, 0x3b, 0xb2, 0x73, 0xd1, 0xf7, 0xf1, 0xda, 0x50, 0xdb, 0xf9, 0x88, 0xef, 0xa7, 0x7e, -0xe9, 0xb1, 0x2a, 0xbd, 0x21, 0x7d, 0xcc, 0xc0, 0xdb, 0x59, 0x4a, 0xf1, 0xa6, 0xdb, 0x3f, 0x74, -0x5e, 0xbb, 0x7b, 0xb5, 0x61, 0xe6, 0x42, 0x7b, 0x8f, 0x95, 0xab, 0xd4, 0xf5, 0x5f, 0x6e, 0xd8, -0xfa, 0xe0, 0xfc, 0xca, 0x7b, 0x27, 0x6f, 0x1f, 0xea, 0x7b, 0xa4, 0xe1, 0xc1, 0x0b, 0x15, 0x6b, -0xf3, 0x76, 0xbc, 0xba, 0x69, 0xf8, 0x83, 0x4d, 0x2b, 0x3d, 0xa3, 0xdf, 0x9f, 0x19, 0x39, 0x55, -0x17, 0xa4, 0xaa, 0xe9, 0xe5, 0xd1, 0xe1, 0x66, 0x17, 0x6d, 0x7c, 0x98, 0x47, 0xcf, 0x89, 0xe3, -0x2d, 0xc5, 0xdf, 0x6f, 0x1e, 0x9c, 0x57, 0xf7, 0xdb, 0xe4, 0xf8, 0x19, 0x11, 0x63, 0x46, 0x6e, -0x9a, 0x78, 0xb0, 0xe9, 0x54, 0xf2, 0xb1, 0xef, 0xaf, 0xb4, 0xbb, 0x77, 0x68, 0xcb, 0xa1, 0x8b, -0xa7, 0x66, 0xce, 0xfb, 0x70, 0x99, 0x9f, 0xf5, 0xe3, 0x79, 0xdd, 0xbc, 0xdf, 0x58, 0x55, 0xbc, -0x6f, 0xe6, 0xf6, 0x98, 0x97, 0xdc, 0xba, 0x8d, 0x8c, 0xef, 0x14, 0x99, 0xef, 0xd1, 0xb3, 0x43, -0xff, 0x3d, 0x1a, 0x5f, 0xdf, 0x59, 0xf6, 0x41, 0xd5, 0xa6, 0x29, 0xe9, 0x6b, 0xdd, 0x86, 0x4c, -0x6a, 0xaa, 0x4d, 0xca, 0x3c, 0x38, 0x6d, 0x5a, 0xe4, 0x97, 0x4f, 0x56, 0x77, 0x6b, 0x1c, 0xf5, -0x91, 0xef, 0x7b, 0x6f, 0xac, 0xeb, 0xb0, 0xec, 0xdc, 0x0f, 0xe9, 0xa4, 0xf3, 0xfd, 0x41, 0x3d, -0x87, 0x9f, 0xca, 0xcc, 0x7c, 0xf5, 0xf0, 0xa4, 0xb4, 0xd3, 0x89, 0xdf, 0x0f, 0xea, 0x98, 0xd2, -0x34, 0x65, 0xe8, 0x0b, 0xa7, 0x42, 0x96, 0x66, 0x1e, 0x0a, 0x3a, 0x11, 0x32, 0x6f, 0xce, 0x63, -0xe1, 0xcb, 0xb6, 0xa7, 0x3e, 0xb9, 0xbd, 0x61, 0xa1, 0x74, 0xd5, 0x99, 0xba, 0x51, 0x53, 0x6e, -0x5f, 0x4d, 0xc8, 0xda, 0xfd, 0x41, 0xbe, 0x65, 0x61, 0xe1, 0xf3, 0x69, 0xab, 0xf4, 0x7d, 0xfd, -0x22, 0x1a, 0xba, 0x79, 0x7a, 0xac, 0x95, 0xa9, 0xd2, 0x73, 0xdb, 0xf7, 0xcf, 0x0a, 0x5e, 0xf6, -0xde, 0xa4, 0xfa, 0x05, 0x3b, 0x2c, 0xef, 0xac, 0x5e, 0xd8, 0xd9, 0xf6, 0xd9, 0x1c, 0x6d, 0xf7, -0x5b, 0x07, 0x77, 0x5c, 0xfc, 0xa5, 0x6e, 0xde, 0x9b, 0xb5, 0x0f, 0xce, 0x67, 0x9e, 0xb9, 0x72, -0xbd, 0x9b, 0xff, 0x8e, 0xef, 0x3f, 0xf3, 0x79, 0xaf, 0xee, 0xbe, 0x7a, 0xce, 0x8c, 0xfe, 0xfd, -0x17, 0x6e, 0x9a, 0x52, 0x5c, 0xa7, 0xfa, 0x34, 0xe7, 0x60, 0x87, 0xbb, 0xa6, 0x2b, 0xf1, 0xfd, -0xfe, 0xf5, 0x60, 0xe2, 0xe4, 0x73, 0x59, 0x79, 0x5b, 0xbe, 0x9c, 0x32, 0xbc, 0xf1, 0xd7, 0x34, -0xcf, 0xde, 0xbf, 0x5b, 0x22, 0x27, 0x6c, 0xf5, 0xdc, 0xb0, 0xf1, 0x4d, 0xbf, 0x95, 0x37, 0xe6, -0xf4, 0x3f, 0xf4, 0xf4, 0x62, 0xd5, 0x83, 0x12, 0x4a, 0xe8, 0xec, 0xce, 0xed, 0xed, 0x36, 0xf3, -0x44, 0xa1, 0x38, 0x7e, 0xe7, 0xb3, 0x1e, 0x9e, 0x6b, 0xce, 0x49, 0x0f, 0xee, 0xfe, 0x45, 0x32, -0xaf, 0x7c, 0x93, 0xfb, 0xa0, 0x80, 0x59, 0xbe, 0x8f, 0x0d, 0xde, 0xda, 0xee, 0x68, 0xbf, 0x05, -0x3e, 0xaf, 0xcc, 0x3a, 0x29, 0x1f, 0x72, 0xfd, 0x7b, 0xcf, 0x4e, 0xf7, 0xc6, 0xca, 0x4e, 0x2f, -0x4e, 0xf3, 0x5a, 0x11, 0xe2, 0xe5, 0x3d, 0x22, 0xe1, 0x99, 0x20, 0xf5, 0xdb, 0xc5, 0x4f, 0xd4, -0xef, 0x4f, 0x78, 0xf2, 0xad, 0x89, 0x5d, 0xba, 0xb0, 0x4f, 0xf4, 0xe8, 0xac, 0xf7, 0x5e, 0xdf, -0xe9, 0xda, 0xe8, 0xd7, 0x03, 0xdf, 0xbf, 0xb0, 0xfb, 0xf1, 0x9c, 0x2d, 0xbf, 0xf9, 0xf5, 0xba, -0xb5, 0xef, 0xb1, 0xdf, 0xab, 0xb9, 0xf6, 0x1b, 0xd5, 0xef, 0x2a, 0xc6, 0x27, 0x2d, 0xec, 0x10, -0x35, 0xdc, 0xdf, 0xbf, 0xd9, 0xd0, 0x2d, 0x60, 0xeb, 0xfc, 0xc9, 0x1d, 0x27, 0xd7, 0x0f, 0x8c, -0x1c, 0x18, 0x7f, 0xb1, 0xcf, 0x02, 0xdd, 0xa9, 0x7e, 0xfb, 0x17, 0xcd, 0xef, 0xeb, 0x7d, 0xf7, -0xd3, 0xfe, 0xe6, 0x5f, 0xa3, 0xa2, 0x67, 0xcf, 0xf4, 0x8e, 0xaa, 0xed, 0x9b, 0xfa, 0x8c, 0x38, -0x25, 0x2b, 0x62, 0x54, 0xc7, 0x8c, 0xde, 0xcb, 0xff, 0x5d, 0xd4, 0xeb, 0xec, 0x17, 0x11, 0xe1, -0x81, 0x6b, 0x45, 0x3d, 0x87, 0x7d, 0x3e, 0xd3, 0xb0, 0xf4, 0x9b, 0x8f, 0xc2, 0x8e, 0xe7, 0xfd, -0xfc, 0x74, 0x7b, 0xd1, 0x77, 0xaa, 0xbc, 0x1f, 0xaa, 0x9e, 0x5a, 0xbb, 0xe0, 0xbd, 0xee, 0xd7, -0x7b, 0x36, 0xab, 0x43, 0xfe, 0xb5, 0xbf, 0x5b, 0xe6, 0xc0, 0x24, 0xe5, 0xaa, 0xee, 0x2f, 0x30, -0x57, 0x5e, 0x55, 0x76, 0x55, 0xdd, 0xee, 0xa0, 0x2d, 0xdb, 0xac, 0x09, 0xde, 0x76, 0xfe, 0xc9, -0x1e, 0xf7, 0xd9, 0x78, 0x4d, 0xb4, 0xd7, 0xb8, 0x90, 0x71, 0x41, 0x8d, 0xba, 0x8f, 0x26, 0x7c, -0x11, 0xfa, 0xdb, 0xbe, 0xd7, 0xf4, 0xbd, 0xdf, 0xfa, 0xa0, 0xf8, 0xb5, 0x79, 0xb5, 0xe3, 0x32, -0x7e, 0xfc, 0x7d, 0x7c, 0x97, 0x67, 0x37, 0x94, 0x9c, 0x7b, 0xfa, 0xd5, 0x89, 0x8b, 0x9f, 0x0a, -0x9a, 0x30, 0x78, 0x50, 0x70, 0x69, 0xc7, 0x9b, 0x25, 0xcf, 0x7f, 0xf3, 0x7a, 0xdc, 0x94, 0x97, -0xce, 0x95, 0x4d, 0x1d, 0xf0, 0xf1, 0xa0, 0x7f, 0xfb, 0xc8, 0x02, 0xca, 0x8f, 0x64, 0x76, 0x9d, -0x54, 0x51, 0xba, 0xba, 0xcc, 0xd4, 0x65, 0xf1, 0x64, 0xc9, 0xaa, 0x03, 0x2f, 0xec, 0x3d, 0xf0, -0x20, 0x7f, 0x47, 0x68, 0x4d, 0xc1, 0x14, 0xf3, 0x8b, 0x45, 0x91, 0x4d, 0xe7, 0x0b, 0x9b, 0xaa, -0x7e, 0xca, 0xdb, 0x32, 0x3b, 0x3f, 0x77, 0xe2, 0xd5, 0x7f, 0x65, 0xf7, 0x4c, 0x15, 0xe7, 0xdc, -0x8e, 0xec, 0x95, 0xf9, 0xe1, 0x54, 0xd9, 0x98, 0x82, 0x0e, 0xfd, 0x47, 0x07, 0xbf, 0x6f, 0x63, -0x7f, 0xda, 0x35, 0x38, 0xeb, 0xdd, 0x53, 0x27, 0xc6, 0x8e, 0xfd, 0xec, 0xb2, 0x4d, 0xe9, 0xb6, -0xcd, 0x7e, 0x31, 0x67, 0x9e, 0xe5, 0xd4, 0x41, 0x26, 0xb1, 0xc3, 0x9b, 0x1d, 0x07, 0xa4, 0x3d, -0x99, 0x6c, 0x5d, 0xf8, 0xfc, 0xa4, 0x41, 0xe7, 0xc7, 0xdc, 0x4f, 0x0e, 0xf2, 0x3c, 0x98, 0x34, -0xfc, 0x93, 0x45, 0x03, 0xab, 0xbf, 0x7b, 0x27, 0x7e, 0xcf, 0x6b, 0xd5, 0x09, 0xd2, 0x1b, 0x1f, -0xc6, 0x19, 0x93, 0xef, 0x98, 0xa7, 0xab, 0x76, 0xc5, 0x7c, 0x1d, 0x66, 0x36, 0xb6, 0xcb, 0x18, -0x6f, 0x4a, 0xbc, 0xa2, 0x8d, 0x7d, 0x79, 0xee, 0x13, 0xe9, 0x37, 0xb3, 0x53, 0x86, 0x3c, 0x2d, -0xb6, 0x0f, 0x7b, 0x7e, 0x47, 0xf4, 0xd0, 0x4f, 0x4e, 0x7a, 0xa6, 0xdd, 0xad, 0x9d, 0x9b, 0xda, -0x77, 0xdd, 0xf6, 0x94, 0x72, 0xff, 0x4b, 0x83, 0x77, 0x4e, 0xf9, 0x66, 0xf8, 0xa5, 0x3e, 0x0d, -0xff, 0x62, 0xd2, 0x2e, 0x3c, 0x6b, 0xbb, 0x36, 0x3b, 0x63, 0xf5, 0x8b, 0x1b, 0x47, 0xfe, 0xb2, -0x30, 0x7c, 0x44, 0x8f, 0x3f, 0xdc, 0x46, 0x15, 0xc5, 0x0d, 0x7f, 0xee, 0x03, 0x7d, 0xc1, 0xf7, -0xbd, 0x3a, 0x57, 0x5c, 0xfc, 0x7d, 0xdc, 0x27, 0x97, 0x36, 0x1e, 0xf9, 0xf5, 0xf2, 0xf8, 0x77, -0xce, 0x5c, 0x89, 0xfa, 0x68, 0xc4, 0x8f, 0xcd, 0x67, 0xf2, 0x7e, 0xd8, 0x6a, 0x0f, 0xab, 0x9f, -0xec, 0xe3, 0x7e, 0x5d, 0x6d, 0x8d, 0xfc, 0xb5, 0x9e, 0x69, 0x77, 0xf5, 0xad, 0x15, 0x43, 0xaf, -0xb1, 0x8d, 0xa3, 0x1b, 0xf4, 0x97, 0xea, 0x7f, 0xba, 0x56, 0x79, 0xfc, 0x97, 0xf7, 0x23, 0xe6, -0xfc, 0x9c, 0x33, 0xe2, 0xb3, 0x07, 0x8f, 0x6d, 0xbd, 0x71, 0xff, 0xe8, 0xb1, 0xaf, 0x9a, 0x5f, -0xc9, 0x5f, 0xc1, 0x0d, 0x91, 0xae, 0x6d, 0xea, 0xa4, 0xd0, 0xfd, 0x71, 0x7a, 0x72, 0xe7, 0x7b, -0x2b, 0xf6, 0x98, 0xee, 0x8e, 0xd8, 0xf0, 0xfc, 0x6d, 0xf2, 0x93, 0xe5, 0xd6, 0xee, 0x19, 0x53, -0x6f, 0xcc, 0x7c, 0x46, 0x7d, 0x33, 0x7e, 0x58, 0xfb, 0x46, 0xcf, 0x98, 0x25, 0xbf, 0x1d, 0x0c, -0x7e, 0xfb, 0xf7, 0x79, 0x4b, 0x9b, 0xee, 0x0c, 0xe2, 0xbe, 0x3e, 0x53, 0x36, 0x92, 0x3d, 0xbd, -0xad, 0xf7, 0xb0, 0xb3, 0xf7, 0x5f, 0xf2, 0xfd, 0x36, 0xfa, 0x72, 0x9f, 0xf3, 0xe3, 0x7e, 0xdb, -0x71, 0xe1, 0xa3, 0x95, 0x2f, 0x7f, 0xf7, 0x5b, 0xd7, 0x63, 0xe7, 0x7a, 0x0f, 0xf8, 0xe1, 0x54, -0x9e, 0xfc, 0xf4, 0xc9, 0xb5, 0xb6, 0xeb, 0x27, 0xae, 0x9f, 0xfe, 0xf8, 0x9b, 0x90, 0x4d, 0xd3, -0xea, 0x32, 0x57, 0x4b, 0x8e, 0xae, 0x3a, 0xfc, 0xf4, 0xf1, 0x2b, 0xc5, 0xb9, 0xc7, 0x54, 0x9d, -0x46, 0x7e, 0x39, 0xaa, 0x59, 0xb1, 0x67, 0xf9, 0x92, 0xee, 0x7b, 0xcf, 0x6a, 0xa7, 0x7c, 0x15, -0x68, 0x4c, 0xdc, 0x3d, 0x6c, 0xe8, 0xa1, 0x2f, 0x96, 0x46, 0xfd, 0xb1, 0xeb, 0xf8, 0xf4, 0xb7, -0x6a, 0xdb, 0x37, 0x2c, 0x3d, 0x38, 0xf0, 0xc3, 0x35, 0x07, 0x16, 0x7c, 0xb9, 0x72, 0xdf, 0xfe, -0x17, 0xf6, 0xee, 0xf7, 0x6e, 0x7f, 0xf3, 0x90, 0xd9, 0xa3, 0xf4, 0xeb, 0xd9, 0x05, 0xb1, 0x47, -0x6a, 0x8f, 0x77, 0x3a, 0x2c, 0xfe, 0x34, 0x64, 0xe1, 0x87, 0xcb, 0x8c, 0x55, 0x05, 0xf7, 0x27, -0x2e, 0x0a, 0x36, 0x85, 0x2e, 0xfe, 0x49, 0xf3, 0xf8, 0xb2, 0x77, 0xa3, 0x97, 0xbf, 0x32, 0x36, -0xfd, 0xfd, 0xa5, 0xca, 0x9f, 0x6f, 0x2d, 0xb9, 0x58, 0xf1, 0xe5, 0xca, 0x1d, 0x5f, 0xdd, 0x5d, -0x31, 0xe5, 0x83, 0x23, 0xcb, 0x23, 0x1f, 0x5b, 0xf6, 0x46, 0xd3, 0xa4, 0x37, 0xab, 0xb7, 0x14, -0xa9, 0x5e, 0x9d, 0xe8, 0xfe, 0xd8, 0xeb, 0x3d, 0xb7, 0x5b, 0x5f, 0xbb, 0x7d, 0xf4, 0xdf, 0xf3, -0x5e, 0xea, 0x65, 0x98, 0x3b, 0xe0, 0x39, 0x8f, 0xf9, 0x3e, 0xdf, 0x8f, 0x5a, 0x70, 0xe4, 0xe5, -0x9c, 0x39, 0x15, 0x6f, 0x5c, 0x7d, 0xd9, 0xf4, 0xfb, 0xb7, 0x2f, 0x49, 0x12, 0xa7, 0x57, 0xee, -0xed, 0xb6, 0x65, 0xc6, 0x6b, 0x63, 0x2b, 0xa7, 0x67, 0xf8, 0x7e, 0x5e, 0xd1, 0xa5, 0xe6, 0xca, -0xb4, 0x73, 0x67, 0x8f, 0xce, 0x5c, 0x7c, 0x28, 0x7d, 0xd6, 0xe0, 0x77, 0xc7, 0xbc, 0xd8, 0x31, -0xb0, 0xef, 0xec, 0x6f, 0x4a, 0x7c, 0xd6, 0x5e, 0xaa, 0x5b, 0xb5, 0x86, 0xd9, 0xf6, 0xca, 0x3a, -0x9b, 0xe4, 0xf0, 0xfb, 0xab, 0x0b, 0xef, 0x6d, 0xf8, 0xa5, 0xac, 0xfc, 0xc3, 0x1e, 0x7e, 0x03, -0x3e, 0x28, 0x5a, 0xef, 0xb7, 0xfe, 0x83, 0xbd, 0x4f, 0xbd, 0x77, 0x73, 0x5a, 0xe0, 0xbb, 0x4f, -0xff, 0xa2, 0x5f, 0xfd, 0xfc, 0x90, 0x09, 0xef, 0x7c, 0xd2, 0x3f, 0x66, 0xd5, 0xdd, 0x1e, 0x7b, -0xde, 0xec, 0x1b, 0x7b, 0xfb, 0xed, 0xf2, 0x07, 0xeb, 0xde, 0xda, 0xf9, 0xca, 0x1b, 0x5b, 0xf6, -0x8c, 0xaf, 0xdb, 0x2c, 0x7d, 0xfc, 0xc7, 0x8f, 0x8d, 0xef, 0xed, 0xfc, 0x64, 0xfa, 0xd7, 0x2f, -0x6d, 0xfa, 0xfa, 0x5b, 0xf9, 0x47, 0xed, 0x36, 0xf6, 0xdb, 0x98, 0xd8, 0x2e, 0xb3, 0xe6, 0xe5, -0xac, 0x21, 0xdb, 0x4f, 0x29, 0xb3, 0xb7, 0x75, 0xb0, 0x3c, 0xb7, 0x35, 0xed, 0x8e, 0xf4, 0xd3, -0x85, 0xcb, 0x7b, 0xee, 0x38, 0x3f, 0x67, 0xf3, 0x67, 0x41, 0x17, 0x67, 0x7c, 0x3e, 0x7c, 0xd4, -0xd9, 0x9d, 0xd5, 0xe1, 0xd7, 0x70, 0xfe, 0x6f, 0xdd, 0x61, 0xcf, 0x5a, 0xe7, 0xb9, 0xef, 0x65, -0xbf, 0x2d, 0x1f, 0xfe, 0xba, 0x20, 0xf3, 0x95, 0x61, 0xbd, 0xcf, 0xdf, 0x08, 0x7b, 0x2a, 0xef, -0xb9, 0x73, 0x6f, 0x9c, 0x8a, 0xfc, 0xf4, 0xcb, 0xcd, 0x9a, 0xeb, 0xff, 0x96, 0x0d, 0x9a, 0x53, -0xf4, 0xd9, 0xc5, 0xb1, 0xa7, 0x44, 0x2f, 0x8a, 0xac, 0x27, 0x3f, 0xdf, 0x7a, 0x2b, 0xf7, 0xf4, -0x77, 0x17, 0x2f, 0x4c, 0x7c, 0x3a, 0x63, 0x8c, 0x62, 0x68, 0xca, 0xe3, 0xc3, 0x56, 0x36, 0xbc, -0x63, 0x68, 0x6a, 0x52, 0xac, 0xf4, 0x37, 0xad, 0xbf, 0x3b, 0xee, 0xc2, 0x0b, 0xb5, 0xfb, 0xec, -0x5f, 0xbd, 0xf7, 0xc1, 0xf3, 0x25, 0xb2, 0xd8, 0xaf, 0x0f, 0x17, 0xa9, 0x97, 0x7e, 0x30, 0xb5, -0x38, 0xa4, 0x7d, 0x60, 0x87, 0xfe, 0xab, 0x3f, 0xf9, 0xe3, 0xc5, 0xc0, 0xba, 0x15, 0x9d, 0x8e, -0x34, 0x74, 0x7f, 0x6b, 0xfc, 0x02, 0x53, 0xcd, 0x5e, 0x66, 0xbd, 0x6c, 0x72, 0xc2, 0xfe, 0x55, -0x61, 0x1f, 0x46, 0x07, 0xce, 0xdf, 0xf7, 0x2f, 0xaf, 0x7e, 0xf6, 0x2d, 0x9b, 0x5e, 0x24, 0x75, -0xfa, 0x94, 0xc8, 0x9c, 0x57, 0xae, 0x3e, 0x27, 0x9f, 0xf5, 0xec, 0x8d, 0x4b, 0xcf, 0xfc, 0xf0, -0xca, 0x8b, 0x59, 0xb3, 0x5f, 0x3c, 0xfa, 0x5d, 0xdf, 0x8b, 0x9b, 0x8f, 0x2c, 0x18, 0x34, 0x7c, -0xe2, 0xd3, 0x9a, 0xfe, 0x3f, 0xd7, 0x2b, 0x66, 0xa7, 0x66, 0x4c, 0xbc, 0x6c, 0xbc, 0x76, 0xda, -0xe7, 0xee, 0xe0, 0xcf, 0xb3, 0x6f, 0x04, 0xdf, 0x7d, 0xd3, 0xf2, 0xca, 0xca, 0x3d, 0xc3, 0x95, -0x06, 0xed, 0xa5, 0x15, 0xc3, 0x06, 0x4d, 0x4d, 0x2c, 0xba, 0xf3, 0xd5, 0x6f, 0xb2, 0xc5, 0xdf, -0x18, 0xdf, 0xfb, 0x77, 0xc1, 0xfd, 0xda, 0xc0, 0x5e, 0x2b, 0xeb, 0x92, 0xe7, 0x75, 0xfb, 0x24, -0x78, 0xe5, 0xb2, 0xc0, 0x2f, 0xbb, 0x6b, 0xa7, 0xae, 0xda, 0xf6, 0x20, 0xe1, 0x71, 0x71, 0x0c, -0x53, 0xae, 0x68, 0x5c, 0xb0, 0x68, 0x8d, 0xa5, 0xe1, 0xf7, 0xd7, 0xfd, 0x33, 0x9e, 0xe9, 0xb6, -0xa6, 0x7f, 0x46, 0xcf, 0x27, 0xaa, 0x3e, 0x7e, 0xe9, 0xcd, 0xdf, 0x8f, 0xfb, 0x4f, 0x38, 0x92, -0xbb, 0xfe, 0xc0, 0x9a, 0x76, 0x3b, 0xa7, 0x7a, 0x7c, 0x2f, 0xfd, 0x82, 0x9d, 0x39, 0x6a, 0x55, -0xf1, 0xb1, 0x2b, 0x41, 0x1d, 0x3f, 0x69, 0x5c, 0xbb, 0xf5, 0xd9, 0xa4, 0x0e, 0x17, 0xa2, 0x8e, -0xee, 0xfe, 0x71, 0x56, 0xce, 0x94, 0x8a, 0x8b, 0x2f, 0x1c, 0xd4, 0xfb, 0x7e, 0x31, 0xd1, 0x92, -0x77, 0xd0, 0xa7, 0xdd, 0x5b, 0xe3, 0x37, 0x66, 0x7f, 0x35, 0x5a, 0xf2, 0x55, 0x8f, 0x33, 0x5b, -0x57, 0x25, 0x99, 0x8b, 0xaa, 0x7f, 0xbb, 0x7f, 0x9c, 0xab, 0xfa, 0xd5, 0x96, 0x32, 0x65, 0xe8, -0xd9, 0xde, 0x9d, 0x7d, 0x3f, 0xed, 0x3e, 0xf0, 0x63, 0x77, 0xa3, 0x66, 0x75, 0xcd, 0xf5, 0xbd, -0x41, 0xf2, 0xca, 0xb7, 0xa7, 0x7d, 0x5b, 0xd3, 0xa9, 0x8f, 0xfd, 0xd4, 0xd4, 0xe0, 0x63, 0x65, -0x0b, 0x17, 0x17, 0x3e, 0xd9, 0xd8, 0x4f, 0xfd, 0xbb, 0xdb, 0x8c, 0xd7, 0xaa, 0x6c, 0x0b, 0xf5, -0xfd, 0x2b, 0x7b, 0x2c, 0xce, 0xb8, 0xb6, 0xd9, 0xcc, 0xa6, 0xcb, 0xef, 0x7a, 0xf4, 0xec, 0x32, -0x70, 0xcd, 0x85, 0x77, 0x6f, 0x1e, 0xd9, 0xd6, 0xbc, 0xe8, 0xc2, 0xd5, 0xf8, 0xd0, 0xad, 0x2f, -0xa5, 0xbf, 0xde, 0xd1, 0x7e, 0xb5, 0x7b, 0xb1, 0x78, 0xdc, 0x0d, 0xcb, 0xf6, 0xfd, 0x49, 0xfa, -0xf3, 0xdf, 0xde, 0xab, 0x30, 0x8c, 0x89, 0xfb, 0x71, 0x48, 0x5e, 0xff, 0x55, 0xcb, 0x8f, 0xcf, -0xf8, 0xea, 0xde, 0xae, 0x88, 0xec, 0x8e, 0x93, 0xe6, 0xb4, 0x2b, 0xa9, 0x1f, 0xd9, 0xfb, 0xe0, -0x88, 0xef, 0x53, 0x36, 0x24, 0xa7, 0x73, 0xc6, 0x3b, 0x0d, 0xd5, 0x4f, 0x6d, 0x78, 0xb9, 0x72, -0x7c, 0x40, 0xef, 0xeb, 0x01, 0x92, 0xe9, 0xc6, 0xbb, 0x3b, 0xa2, 0xbb, 0xbf, 0xd1, 0xf5, 0xa7, -0x27, 0x55, 0xaf, 0x0e, 0x29, 0x8b, 0x79, 0xf9, 0xe2, 0xa9, 0x0f, 0x9f, 0x1e, 0x51, 0x73, 0xe0, -0xda, 0xb3, 0x1f, 0xf7, 0x1b, 0xf2, 0xc3, 0xd1, 0x51, 0x09, 0x29, 0x53, 0x6a, 0xb8, 0xab, 0x8f, -0x7f, 0x93, 0xd9, 0xaf, 0x6b, 0xfe, 0xd9, 0x17, 0xe3, 0x3d, 0xf7, 0x85, 0xfd, 0xf4, 0x63, 0xf1, -0xfc, 0xf9, 0xd3, 0x35, 0xd7, 0x56, 0x9c, 0xa8, 0x1a, 0x7c, 0x6f, 0xe3, 0xf4, 0xfa, 0xa1, 0xcf, -0xf5, 0xcd, 0xe8, 0xd9, 0xf7, 0xbd, 0x05, 0x9e, 0x33, 0x9e, 0x7c, 0xba, 0xf0, 0x8a, 0xcf, 0xec, -0x5d, 0xb2, 0x2d, 0x7d, 0xdf, 0x2d, 0xf8, 0xcc, 0xf8, 0xfd, 0x6a, 0xf7, 0xfb, 0xb3, 0x77, 0x75, -0x4c, 0xec, 0xa1, 0xff, 0xf0, 0xb7, 0x64, 0x6b, 0x98, 0x72, 0xc2, 0xed, 0x39, 0x2b, 0xda, 0x2f, -0xab, 0x0e, 0xde, 0x59, 0xc6, 0xbc, 0x72, 0xe6, 0x89, 0xb2, 0xc6, 0xfd, 0x03, 0x6a, 0x2d, 0x1b, -0x42, 0x8f, 0x3d, 0x10, 0xd5, 0xe6, 0xc6, 0xd8, 0xde, 0xf9, 0x7d, 0xd9, 0xa8, 0xa0, 0x41, 0xda, -0x3e, 0x93, 0x46, 0xae, 0x5c, 0xf6, 0xca, 0x0f, 0xdd, 0x6e, 0xde, 0x1a, 0x98, 0xf7, 0xb8, 0xfb, -0x6f, 0xa7, 0xa6, 0xb0, 0x3f, 0x66, 0x1e, 0x9d, 0xff, 0xdc, 0xf9, 0x8f, 0x7f, 0xd9, 0xed, 0x39, -0x3f, 0x75, 0xf2, 0x96, 0x9f, 0x7a, 0x67, 0x93, 0xf8, 0x33, 0x75, 0x3b, 0xba, 0xee, 0xa8, 0xbc, -0xd0, 0xf3, 0x67, 0xc3, 0x98, 0xa1, 0x0b, 0x94, 0x27, 0xef, 0x8d, 0x7e, 0x2d, 0x77, 0x85, 0xc4, -0xe3, 0xb3, 0x77, 0x3f, 0xfb, 0x5c, 0xb4, 0xeb, 0xf4, 0x07, 0x9b, 0x0b, 0x23, 0x3a, 0xc8, 0x3c, -0xd3, 0x9e, 0x28, 0x49, 0x7e, 0xed, 0x9d, 0xc3, 0x3d, 0xb8, 0x4f, 0x5e, 0x98, 0xdd, 0xbe, 0xdd, -0x57, 0xdf, 0x97, 0x2e, 0x52, 0x9c, 0xf9, 0x5a, 0xbb, 0x7e, 0xe7, 0x9a, 0xc8, 0xc7, 0xdb, 0xc7, -0x57, 0xbc, 0x33, 0xa1, 0xdb, 0xe9, 0xbd, 0xb6, 0xe7, 0xd9, 0xc9, 0x22, 0x45, 0xc9, 0x91, 0x0d, -0xcd, 0x07, 0xc6, 0xef, 0x7f, 0x7d, 0xd8, 0xea, 0x9b, 0xca, 0xeb, 0x81, 0xcb, 0x12, 0x1e, 0x7c, -0xd0, 0x67, 0x6d, 0x5c, 0xfb, 0x51, 0x87, 0x26, 0x0c, 0xfc, 0x55, 0x7a, 0xf8, 0xe6, 0x4b, 0x63, -0xce, 0x99, 0xd5, 0xf3, 0xc6, 0xde, 0x8d, 0x69, 0xb8, 0xa7, 0x9f, 0x34, 0x38, 0x66, 0x71, 0x97, -0xf0, 0x34, 0xf5, 0xc6, 0xb3, 0xbf, 0xbc, 0x76, 0xf2, 0xf3, 0x8f, 0xee, 0xed, 0xfd, 0xc9, 0x3b, -0xee, 0xcd, 0xb9, 0x8f, 0xdf, 0xf0, 0xcd, 0x7c, 0x33, 0x29, 0xc7, 0x23, 0xea, 0xf5, 0xc1, 0x3b, -0x67, 0x76, 0x8f, 0xf8, 0x76, 0xd9, 0xa2, 0x57, 0x7b, 0x85, 0x86, 0x36, 0xa7, 0xa8, 0xd3, 0x3f, -0x7d, 0x75, 0x45, 0xc3, 0xf9, 0xfb, 0x73, 0x47, 0x8e, 0xf3, 0x0b, 0xff, 0x3e, 0x60, 0xe2, 0xda, -0x88, 0xd0, 0xc3, 0xed, 0xe7, 0x24, 0xbe, 0xef, 0xd6, 0xff, 0x4a, 0xdc, 0xf6, 0x19, 0xd3, 0x98, -0xcb, 0x17, 0x17, 0x4e, 0xf8, 0xd7, 0x88, 0x3b, 0x8f, 0x25, 0xfe, 0xf4, 0xec, 0x83, 0x9b, 0x43, -0xa2, 0xab, 0xf3, 0xa7, 0x4b, 0xbb, 0x9e, 0x88, 0x1e, 0x6d, 0xde, 0xfb, 0xf2, 0xe1, 0x75, 0x53, -0x7a, 0xaf, 0x3d, 0x72, 0x72, 0x6a, 0x4c, 0x64, 0xe1, 0x17, 0xea, 0x91, 0xe5, 0x13, 0x5e, 0xfa, -0x68, 0xcf, 0x81, 0x5f, 0x4f, 0x3e, 0xfb, 0xc4, 0xc9, 0xa2, 0xef, 0xdf, 0xdc, 0xe8, 0x75, 0xdb, -0xbf, 0x4b, 0xfd, 0x80, 0x35, 0x93, 0xa6, 0x3d, 0x76, 0x30, 0xe7, 0xd4, 0xfb, 0x13, 0x7d, 0x37, -0x7d, 0xba, 0xfb, 0xcd, 0x11, 0xa2, 0x29, 0x7b, 0xfb, 0x2c, 0x5f, 0xdb, 0x5c, 0xa1, 0xea, 0xf0, -0xea, 0x0f, 0x11, 0xab, 0x22, 0xbc, 0xe7, 0x07, 0x0d, 0x2e, 0x9c, 0x6d, 0x0b, 0x78, 0x2f, 0xfa, -0xec, 0xb8, 0xdd, 0xba, 0xa2, 0xf3, 0xba, 0x25, 0xc7, 0x3f, 0x4d, 0xf4, 0x94, 0x4c, 0xbb, 0xb1, -0x71, 0xeb, 0x95, 0xa5, 0x6f, 0xfb, 0x24, 0xbe, 0xd0, 0x79, 0x63, 0x68, 0x97, 0xd8, 0x63, 0xd1, -0x96, 0x3f, 0x0a, 0x9f, 0x0d, 0xf9, 0xe9, 0xdb, 0x3b, 0x5f, 0x0c, 0xb6, 0x2f, 0x7c, 0xf7, 0x50, -0xcd, 0xda, 0x27, 0x4b, 0xe5, 0x87, 0x27, 0xdb, 0x3e, 0x1d, 0xbd, 0xe4, 0xbc, 0xbb, 0xf4, 0x26, -0xce, 0xff, 0x65, 0x06, 0x8f, 0x89, 0xba, 0xd1, 0xbe, 0xbf, 0x6e, 0x1b, 0xec, 0xf9, 0xea, 0xe3, -0x7b, 0x0a, 0x3c, 0x16, 0x34, 0xe6, 0x16, 0xf7, 0x7a, 0x67, 0xcc, 0x4f, 0x6f, 0x2f, 0x1d, 0xbb, -0x22, 0xac, 0xf2, 0x5b, 0xdf, 0xd5, 0x5b, 0xcf, 0x4d, 0xea, 0xf2, 0xd3, 0x37, 0x17, 0x2b, 0xcf, -0x1c, 0x7b, 0x25, 0x38, 0xe9, 0x63, 0xcf, 0xcf, 0xca, 0x37, 0x4e, 0xf1, 0x08, 0xd9, 0xfa, 0xe3, -0xc2, 0x27, 0x3e, 0xaf, 0x1a, 0xab, 0xf8, 0xe4, 0x89, 0x5b, 0x4c, 0x4d, 0xae, 0x65, 0xdc, 0xa7, -0xb7, 0xcf, 0xc7, 0xec, 0x9c, 0xf9, 0xef, 0x13, 0x67, 0x3b, 0xfd, 0x52, 0xff, 0x5d, 0xc1, 0xe0, -0x2d, 0x27, 0x1a, 0xbf, 0x9a, 0x75, 0x7c, 0xc6, 0xd0, 0xea, 0xfc, 0xc7, 0x6a, 0xd7, 0xe4, 0x8d, -0x9d, 0x7c, 0x2f, 0xf3, 0xc1, 0xd5, 0xfd, 0x59, 0x73, 0x06, 0x8d, 0x10, 0xf9, 0x9f, 0xc9, 0x97, -0x8e, 0x19, 0xf3, 0x4c, 0xbb, 0xa6, 0xdf, 0x7c, 0x64, 0xf3, 0xf6, 0x31, 0x85, 0xfd, 0x46, 0x29, -0x72, 0x92, 0xea, 0x63, 0xd8, 0x6f, 0x4a, 0xc6, 0xd9, 0xdf, 0x3a, 0x5a, 0xef, 0x16, 0x95, 0x70, -0x42, 0x32, 0xe0, 0xc1, 0x2c, 0x9f, 0x63, 0x79, 0x5b, 0xbc, 0xde, 0x69, 0x5a, 0xb3, 0xa5, 0x57, -0x7e, 0xf5, 0x26, 0xd3, 0xc9, 0xfd, 0xdb, 0xbf, 0x35, 0xde, 0xdb, 0xb1, 0xfe, 0x72, 0xfe, 0xe9, -0xb0, 0xe7, 0x47, 0x5c, 0x88, 0x3b, 0xe2, 0x73, 0xf2, 0xdc, 0xb3, 0xcf, 0x1c, 0x7d, 0x7f, 0xbd, -0xe1, 0x8c, 0xba, 0x2f, 0x39, 0x3f, 0xb8, 0x62, 0xf0, 0xa9, 0x7d, 0x01, 0xa3, 0xeb, 0x3e, 0xdf, -0xd2, 0xb8, 0xb9, 0x6b, 0xb7, 0x3d, 0x1f, 0x0d, 0x7d, 0x75, 0xe9, 0xb6, 0x23, 0xed, 0xde, 0xf9, -0x6c, 0xeb, 0x8a, 0xad, 0x62, 0x8d, 0xac, 0xd2, 0xfd, 0xb9, 0x4d, 0x67, 0xe4, 0x7b, 0x55, 0x3f, -0x79, 0x6f, 0x7c, 0xb1, 0xbc, 0x48, 0xdf, 0x3e, 0x29, 0x3b, 0xe3, 0xfd, 0x27, 0x46, 0xef, 0x7a, -0x26, 0xc4, 0xf6, 0x71, 0x55, 0xcc, 0xb9, 0x09, 0xd2, 0x71, 0xdf, 0x8a, 0x76, 0x30, 0xc7, 0xaa, -0xb5, 0x8a, 0x6f, 0xae, 0xbf, 0x34, 0x6b, 0xe3, 0xb8, 0x27, 0xb7, 0x7c, 0x2c, 0x7d, 0xa7, 0xfe, -0xf3, 0x95, 0x4f, 0x9f, 0xd8, 0xda, 0xf0, 0xd6, 0x7e, 0x8f, 0xb2, 0xf0, 0x7b, 0xa4, 0xdd, 0xfc, -0x35, 0x9e, 0xcb, 0x02, 0xab, 0x7d, 0xbf, 0xdf, 0xee, 0x93, 0x3b, 0x35, 0xe4, 0x99, 0x02, 0xd9, -0x2b, 0xf9, 0x63, 0x17, 0x8a, 0x46, 0x8c, 0xb9, 0xd2, 0x38, 0x38, 0x2f, 0x2f, 0x73, 0x74, 0x7e, -0xd0, 0x69, 0x43, 0xd6, 0xac, 0x64, 0x92, 0x79, 0xeb, 0xda, 0x52, 0x69, 0xfe, 0x0b, 0xef, 0x88, -0x3a, 0xef, 0x6a, 0x94, 0x4d, 0x1f, 0xb6, 0xa7, 0xdd, 0x6f, 0x7b, 0xcf, 0xd4, 0x64, 0xa5, 0xfc, -0xf4, 0x89, 0xdf, 0xcf, 0x5b, 0x77, 0xbe, 0x5c, 0x5e, 0xf9, 0xe9, 0xfd, 0x0b, 0x4f, 0x7c, 0x97, -0x99, 0x18, 0x72, 0xb6, 0xc3, 0xed, 0xf2, 0xe3, 0x73, 0xb3, 0x92, 0x4e, 0xfc, 0x91, 0x31, 0x7a, -0xd3, 0xc0, 0xc3, 0x83, 0xb7, 0xf4, 0x2d, 0x25, 0x3b, 0xde, 0xbe, 0x64, 0xd8, 0x7e, 0x22, 0xe6, -0x9d, 0x0b, 0xd6, 0x53, 0x4b, 0x4f, 0x3f, 0x53, 0xb0, 0xe7, 0xe8, 0xea, 0x3f, 0x1a, 0x4f, 0x1e, -0xcf, 0xfd, 0x29, 0x27, 0xf6, 0xfe, 0x99, 0xc2, 0xf0, 0xf8, 0x4a, 0xfb, 0x07, 0x75, 0x5b, 0xd9, -0xb3, 0xe3, 0x43, 0x24, 0xe6, 0x1f, 0x9e, 0x70, 0x7b, 0xfa, 0xb9, 0x24, 0xaf, 0x75, 0xfb, 0xcb, -0x7d, 0xbe, 0x8b, 0x1a, 0xe7, 0x9e, 0xb2, 0x2e, 0x46, 0xdc, 0x5d, 0xa1, 0xf0, 0xde, 0x39, 0x9b, -0x91, 0xef, 0x7f, 0x6a, 0x4b, 0xf6, 0xb0, 0x8f, 0x66, 0x15, 0x31, 0x9e, 0x27, 0x6c, 0x9f, 0xae, -0xac, 0x1f, 0x7d, 0xd8, 0xf7, 0xde, 0xf9, 0x51, 0xd5, 0xfb, 0xcf, 0xf4, 0x50, 0x56, 0xd7, 0xd5, -0x6c, 0x5e, 0x73, 0xea, 0xab, 0x8e, 0xcf, 0x7c, 0xf4, 0xec, 0x34, 0x9f, 0xcd, 0xa1, 0xfd, 0x46, -0x7c, 0xf6, 0xc9, 0x07, 0xf9, 0xdb, 0x6a, 0x99, 0x19, 0x5b, 0xaf, 0x7d, 0xfc, 0xd1, 0xe7, 0xaf, -0xc9, 0x2f, 0x7d, 0xec, 0xf6, 0xda, 0xb1, 0x8d, 0xa5, 0x7d, 0x12, 0xbe, 0xf9, 0xf9, 0xc3, 0x89, -0xc7, 0xde, 0xe8, 0xa0, 0xfe, 0x56, 0x32, 0x23, 0xe0, 0xdc, 0x78, 0x3f, 0xef, 0x31, 0x97, 0x67, -0xf6, 0x1b, 0xbb, 0x24, 0x3a, 0xb7, 0xc0, 0x67, 0xcd, 0xf0, 0xdc, 0xc9, 0xde, 0x47, 0x7c, 0xeb, -0xdf, 0xe0, 0x3c, 0x17, 0x77, 0xdf, 0x40, 0xbc, 0x36, 0xae, 0xf0, 0xf8, 0xb7, 0x79, 0x71, 0xbb, -0x1b, 0xc7, 0xde, 0x96, 0xbd, 0x98, 0x7d, 0x4b, 0xd4, 0xa5, 0x79, 0xb7, 0x34, 0x67, 0xe4, 0xb0, -0xcc, 0xdf, 0x0f, 0xda, 0xb3, 0x2a, 0xc6, 0x45, 0xe4, 0x3f, 0xfe, 0xa3, 0x34, 0xaf, 0x70, 0x42, -0xe7, 0x13, 0xcd, 0x17, 0x83, 0x8f, 0xbf, 0x34, 0x7c, 0xf2, 0x59, 0xc5, 0x21, 0xeb, 0x77, 0xf6, -0xa2, 0x0b, 0x9f, 0xde, 0xbb, 0x77, 0x7d, 0xe7, 0xfc, 0xd8, 0x9d, 0x9f, 0x74, 0xfc, 0x66, 0x7e, -0x0d, 0xdb, 0xf0, 0xf6, 0xc9, 0x93, 0x53, 0x16, 0x1f, 0x7d, 0x73, 0xcf, 0xee, 0xd3, 0x91, 0xa9, -0xb7, 0x2e, 0x0c, 0xba, 0x69, 0xdf, 0x7e, 0xd4, 0x3e, 0x6c, 0xc7, 0xbb, 0xdf, 0x49, 0xb7, 0xf4, -0x1f, 0x10, 0xb1, 0xc9, 0x72, 0x36, 0xd8, 0xe7, 0x74, 0x52, 0x67, 0xaf, 0x0f, 0xef, 0x58, 0xdd, -0x22, 0xd8, 0xc9, 0x92, 0x98, 0x2f, 0xae, 0xb3, 0x17, 0x86, 0x5c, 0xb0, 0xaf, 0xb9, 0x3e, 0xbf, -0xb0, 0xe7, 0xa4, 0x9d, 0x39, 0xf1, 0x73, 0x3f, 0x1a, 0x7d, 0xb0, 0xd3, 0x0c, 0xdb, 0x8e, 0x55, -0xc7, 0x8a, 0x9e, 0x8a, 0xb8, 0x94, 0x9d, 0xba, 0x74, 0xa2, 0xfc, 0x90, 0x5b, 0x82, 0xf7, 0xf6, -0x4f, 0x03, 0xc4, 0x4a, 0xbd, 0xda, 0x7d, 0xc8, 0xce, 0x7e, 0xdb, 0xbe, 0xd4, 0x78, 0x7f, 0xb6, -0x69, 0xd1, 0xf0, 0xcd, 0xc1, 0x92, 0xdc, 0x8f, 0x46, 0xbc, 0xc7, 0x9d, 0xda, 0xdd, 0xf3, 0x48, -0xdd, 0x96, 0x97, 0x57, 0x9c, 0xd1, 0x3d, 0xb1, 0xe1, 0xfc, 0xbf, 0x6a, 0x76, 0x8f, 0x7d, 0x5d, -0x7d, 0x6b, 0xcc, 0xd5, 0xe5, 0x6f, 0xe7, 0x3e, 0xef, 0xb5, 0xb8, 0x40, 0xbc, 0x56, 0xea, 0xb9, -0xbc, 0x7f, 0x84, 0xef, 0x2f, 0xb3, 0xec, 0x1e, 0x25, 0x8f, 0x0d, 0x23, 0xee, 0xd3, 0xad, 0x9f, -0x2f, 0xf5, 0x9f, 0xbc, 0xf5, 0xd2, 0x86, 0xe0, 0x8d, 0x2f, 0x44, 0x76, 0xfe, 0x58, 0xfe, 0xfa, -0xfc, 0x63, 0x8b, 0x7c, 0x76, 0x7e, 0xf3, 0xc3, 0x27, 0xd7, 0xcf, 0x95, 0x77, 0xbd, 0xf0, 0xad, -0xf7, 0x89, 0x63, 0xc7, 0x67, 0x9b, 0x2e, 0x9d, 0xb8, 0x79, 0xf7, 0xa3, 0xef, 0xb2, 0x0b, 0x67, -0x9c, 0x7d, 0xf2, 0xeb, 0x80, 0x9d, 0xd3, 0xfe, 0xa5, 0xfe, 0xf4, 0xce, 0xf7, 0x13, 0x6b, 0x8a, -0x26, 0x26, 0x7c, 0x12, 0x78, 0x65, 0xb8, 0xac, 0xb2, 0x38, 0xb7, 0x1d, 0x77, 0xa0, 0x9f, 0xd4, -0x36, 0xc2, 0x5b, 0xd4, 0x9e, 0x5b, 0x91, 0xb5, 0x20, 0x67, 0x43, 0xe6, 0xdd, 0xe3, 0x5c, 0xde, -0xe8, 0xb8, 0x23, 0xf9, 0x01, 0x65, 0x97, 0xbc, 0x56, 0xfd, 0x7a, 0xcc, 0xe7, 0x54, 0xfa, 0x0c, -0x49, 0xf2, 0xee, 0x8f, 0xdc, 0xfa, 0x8c, 0x56, 0xdb, 0xdf, 0xfb, 0x3d, 0x80, 0xad, 0x1b, 0x98, -0x90, 0x93, 0xf8, 0xed, 0xc4, 0xc2, 0x68, 0x6b, 0xee, 0xd1, 0x0d, 0xe7, 0x86, 0x9f, 0x3c, 0x63, -0xf3, 0xbe, 0x60, 0xbc, 0xd1, 0xef, 0x74, 0xef, 0xb4, 0x0d, 0x3b, 0xd6, 0x7e, 0xb9, 0x62, 0xfb, -0xf9, 0xa9, 0x47, 0x36, 0x25, 0xfc, 0xc4, 0x6d, 0x31, 0x04, 0xdd, 0xfa, 0xec, 0xb3, 0x39, 0xbb, -0xb7, 0x1d, 0x30, 0x2c, 0xfe, 0x28, 0xed, 0xdd, 0xb7, 0x37, 0xab, 0xdc, 0x23, 0xea, 0xb6, 0x2d, -0x96, 0x9e, 0xfa, 0xba, 0xc7, 0xb0, 0xf3, 0xe9, 0x9f, 0xdb, 0xcf, 0x74, 0x0b, 0x9d, 0x6c, 0xfb, -0x68, 0xab, 0x75, 0xf4, 0x1e, 0x71, 0xe7, 0xec, 0x91, 0x4b, 0x82, 0x8b, 0xb4, 0xbd, 0x77, 0x7a, -0x6f, 0x7e, 0x73, 0xbe, 0xfc, 0x8b, 0xce, 0x17, 0xdc, 0x87, 0xcf, 0xbb, 0x2e, 0x0e, 0xc1, 0xf9, -0x1f, 0xd3, 0xb3, 0xf3, 0xe3, 0xd3, 0x33, 0x23, 0xc2, 0xbe, 0x48, 0x0b, 0x09, 0x96, 0x7c, 0x99, -0x3f, 0x36, 0xae, 0x71, 0xe2, 0xbf, 0x67, 0xbf, 0x37, 0x7c, 0xe8, 0x57, 0xcb, 0x62, 0x06, 0xc9, -0xe6, 0x9c, 0xd9, 0x97, 0xb8, 0x7d, 0xf7, 0xd1, 0x39, 0x0d, 0xd7, 0x9b, 0x0e, 0x9e, 0x69, 0xbc, -0x2c, 0x1f, 0xb4, 0x65, 0xfd, 0xc0, 0x29, 0x1b, 0xb6, 0xcc, 0x0f, 0x99, 0xb1, 0xe2, 0x48, 0x50, -0xf5, 0x8b, 0x83, 0xfd, 0x76, 0x5b, 0x15, 0xdd, 0xce, 0xa4, 0x1d, 0x2f, 0x6e, 0x2c, 0x5b, 0x14, -0x73, 0x7d, 0xf4, 0x90, 0x53, 0x1b, 0x42, 0xfd, 0xaf, 0x6c, 0xe9, 0x7d, 0x6a, 0x4b, 0x75, 0xd0, -0xb2, 0x99, 0x33, 0xdc, 0x9f, 0xad, 0xee, 0x3c, 0x3d, 0x70, 0x2d, 0x79, 0xfd, 0xdb, 0xa6, 0x90, -0x9a, 0xd7, 0x0e, 0x46, 0xac, 0x1d, 0x39, 0x72, 0xe2, 0x95, 0xa0, 0xfc, 0x7c, 0xee, 0x42, 0xff, -0x98, 0x13, 0x2b, 0x7c, 0x87, 0x7f, 0xfd, 0x96, 0x6a, 0xe6, 0xd2, 0xcb, 0x1d, 0x56, 0xce, 0x65, -0xe2, 0x37, 0xbd, 0x37, 0x7a, 0xe2, 0xda, 0x9d, 0xef, 0x7e, 0xdf, 0x70, 0xf3, 0xc7, 0xba, 0xdb, -0x0d, 0xaa, 0x19, 0xe7, 0xbf, 0xc8, 0xda, 0xf4, 0xe5, 0xd9, 0x75, 0x1b, 0x46, 0x8e, 0xfc, 0x65, -0x65, 0xbc, 0x59, 0x73, 0x28, 0xaf, 0x28, 0xe7, 0x41, 0xf1, 0x84, 0x0d, 0x79, 0x3d, 0xfb, 0x5c, -0x1f, 0xae, 0x65, 0x74, 0x9e, 0x1e, 0xde, 0x05, 0x91, 0x41, 0x7e, 0xb7, 0x23, 0xe2, 0x2f, 0x6c, -0xf2, 0x18, 0xb9, 0x77, 0x5c, 0x7a, 0xf1, 0x35, 0x43, 0x56, 0x5e, 0xe3, 0xef, 0xb7, 0xb5, 0xdb, -0x3f, 0xde, 0xdd, 0xf3, 0xad, 0xe7, 0x17, 0x06, 0xbd, 0x14, 0xbe, 0xca, 0xa3, 0xea, 0x8f, 0x1d, -0x2b, 0x3b, 0x6e, 0x9b, 0x37, 0xd3, 0x77, 0xd2, 0xf9, 0xb5, 0x4f, 0x45, 0x5e, 0xdf, 0x14, 0xc5, -0x4d, 0xba, 0x3d, 0x7e, 0xa7, 0xa5, 0x21, 0xf7, 0xdf, 0x9d, 0xbf, 0x8c, 0x89, 0xd2, 0x9e, 0xcf, -0x70, 0x1f, 0x34, 0xe9, 0x86, 0x79, 0x4a, 0xe6, 0x4f, 0x2f, 0x86, 0x0c, 0xda, 0xbd, 0x37, 0x28, -0xfd, 0x5b, 0xd1, 0x9c, 0x0e, 0x4b, 0x8c, 0xdb, 0x7d, 0xe7, 0xcd, 0x68, 0xe8, 0xf6, 0xee, 0xee, -0x33, 0x91, 0x9f, 0xfb, 0x7c, 0xb9, 0x2a, 0x32, 0xa9, 0x71, 0x7b, 0xd7, 0x05, 0xef, 0x2d, 0xf3, -0x3a, 0xbc, 0x6c, 0xde, 0x63, 0x9e, 0xe4, 0xd0, 0x08, 0x4b, 0xcf, 0x53, 0x71, 0x2f, 0x67, 0x36, -0x15, 0x1e, 0x48, 0xfb, 0x7e, 0x62, 0xfa, 0xc8, 0xed, 0xdb, 0x3a, 0xe4, 0xaf, 0x7a, 0xfb, 0x64, -0xff, 0x79, 0x95, 0xaf, 0xf8, 0x2e, 0x5b, 0x98, 0x52, 0x7d, 0xea, 0x7c, 0xfb, 0xb5, 0x87, 0xbe, -0x3a, 0xd6, 0xf4, 0xfd, 0xd5, 0xc5, 0x07, 0x9b, 0x7e, 0x1b, 0x71, 0x2a, 0xb3, 0xe4, 0x89, 0x2b, -0x93, 0xf2, 0xce, 0x6f, 0x49, 0x37, 0xae, 0x9c, 0x39, 0xe8, 0xd9, 0x0c, 0x3f, 0xdf, 0x80, 0xc7, -0xbb, 0x75, 0x68, 0x77, 0xb6, 0x38, 0x52, 0xf5, 0x7a, 0x4c, 0xb7, 0x67, 0xde, 0xcb, 0x7b, 0x90, -0x05, 0xec, 0x7f, 0xf9, 0x53, 0x9e, 0x07, 0x87, 0x8d, 0x8d, 0xac, 0x4b, 0x7e, 0x7b, 0xc3, 0x42, -0xd1, 0xa5, 0x95, 0x73, 0x02, 0xbb, 0x1e, 0x7a, 0xef, 0x69, 0xf6, 0xc1, 0x0e, 0xed, 0x87, 0xdf, -0xab, 0x3e, 0xf8, 0xb5, 0xae, 0xff, 0xe6, 0x90, 0x19, 0x7e, 0x2b, 0xf3, 0x37, 0x79, 0xce, 0x7e, -0x5f, 0x65, 0xd9, 0xff, 0x73, 0x87, 0xb4, 0xba, 0x1e, 0xf1, 0x53, 0xfe, 0xc8, 0x9e, 0x98, 0x75, -0xe9, 0xce, 0xa4, 0xfe, 0xfa, 0x4f, 0x2c, 0xaa, 0x88, 0xd2, 0xce, 0x9e, 0x4f, 0xf4, 0xd2, 0xfa, -0x49, 0x6e, 0xed, 0x48, 0x1b, 0xf0, 0xd1, 0x3c, 0x4b, 0x6a, 0xf1, 0xf9, 0xac, 0x49, 0x3d, 0xaf, -0x4f, 0x61, 0x9b, 0x6f, 0x5f, 0xf9, 0xf1, 0xf3, 0xdd, 0x0f, 0x9a, 0xcb, 0x17, 0xd6, 0x7d, 0xf3, -0xcc, 0xaa, 0x83, 0x87, 0x9a, 0x22, 0xe6, 0xcc, 0xd8, 0xee, 0xb1, 0xf0, 0xb5, 0xb2, 0xf4, 0x1d, -0x1b, 0xfb, 0x64, 0xbd, 0xb7, 0x66, 0x40, 0xf5, 0x8c, 0x7e, 0x5e, 0x6b, 0xab, 0x95, 0xfb, 0x9b, -0xb6, 0x78, 0x56, 0x1e, 0xdc, 0xa0, 0x18, 0x34, 0xf2, 0xfa, 0x73, 0xbe, 0xf9, 0x8d, 0xf1, 0x5f, -0xf7, 0x3f, 0x53, 0x30, 0xd7, 0x77, 0x77, 0x69, 0xac, 0xdf, 0xf0, 0xdb, 0xe2, 0x6e, 0x31, 0x3f, -0xef, 0x2a, 0xce, 0xdf, 0x55, 0x11, 0x33, 0xf1, 0x74, 0xc2, 0xa9, 0x88, 0x57, 0xa4, 0x57, 0x42, -0xe6, 0x7f, 0xb9, 0x85, 0xbc, 0x33, 0x73, 0x66, 0xe7, 0x1d, 0x9d, 0xe6, 0xc4, 0x8c, 0xfb, 0xd7, -0xf6, 0xe1, 0xd9, 0xd5, 0x0d, 0x13, 0x63, 0xcf, 0x9c, 0xc9, 0x1f, 0xde, 0x65, 0x50, 0x48, 0x87, -0xe7, 0xa6, 0x44, 0xc8, 0x97, 0x87, 0x74, 0xee, 0xfe, 0x5d, 0x10, 0x89, 0xf6, 0x23, 0xd5, 0x9f, -0xa6, 0xf5, 0x9c, 0xb1, 0xaa, 0x2a, 0x73, 0xc3, 0xcb, 0x47, 0xd3, 0xb6, 0x2c, 0x0a, 0xf8, 0xb2, -0xf1, 0xbb, 0x61, 0x8d, 0xd7, 0xf7, 0x2c, 0x79, 0x6f, 0xf7, 0xf5, 0x6f, 0x96, 0x9d, 0xb9, 0xf3, -0xd3, 0x0e, 0x8f, 0x0d, 0x6b, 0xe6, 0x05, 0x7d, 0x92, 0x77, 0xbe, 0xe7, 0x72, 0x60, 0xff, 0x67, -0x5d, 0x9b, 0x94, 0x77, 0x60, 0xbd, 0xa5, 0xf8, 0x78, 0x51, 0xe7, 0x91, 0x77, 0x43, 0xb5, 0xf1, -0xdf, 0x7f, 0x1f, 0x71, 0xde, 0xb6, 0xca, 0xe3, 0xcb, 0xa9, 0x63, 0xd2, 0x1b, 0xd2, 0x95, 0x59, -0xb7, 0x07, 0xfe, 0x70, 0x7b, 0x93, 0x78, 0xf5, 0xee, 0xb5, 0x9d, 0xed, 0x0b, 0x67, 0x1a, 0xd4, -0xab, 0x56, 0xf6, 0xd8, 0xba, 0xe1, 0xcb, 0xfa, 0x7b, 0x2b, 0xcf, 0x3f, 0xe8, 0x7b, 0xe8, 0xf6, -0xc9, 0x17, 0x1e, 0x34, 0x1c, 0xd9, 0x91, 0xb7, 0xb6, 0xe2, 0xc1, 0xf0, 0x4d, 0xaf, 0x46, 0x7b, -0xae, 0xdc, 0x34, 0x35, 0x72, 0xe6, 0xfb, 0x35, 0xaa, 0x20, 0xdd, 0xcd, 0x0e, 0x1e, 0xbd, 0xc2, -0xe2, 0xb5, 0x5d, 0xc6, 0x4f, 0xec, 0xe9, 0xb1, 0xf9, 0xfb, 0x62, 0xcb, 0x6f, 0x75, 0x79, 0x83, -0x23, 0x66, 0xc4, 0x4f, 0x9e, 0xb8, 0x69, 0xe4, 0x98, 0xe4, 0x53, 0x4d, 0x07, 0xdb, 0x5d, 0xf9, -0xfe, 0x18, 0xb0, 0xff, 0xf7, 0xe6, 0xcd, 0x3c, 0x75, 0xd1, 0xea, 0xb7, 0xec, 0x43, 0xef, 0x6e, -0xf3, 0x3e, 0xde, 0x57, 0xbc, 0xea, 0x8d, 0x97, 0x62, 0xb6, 0xcf, 0x8c, 0x1f, 0xd9, 0xcd, 0xcd, -0x23, 0x3f, 0xb2, 0xd3, 0x9e, 0xfe, 0x1d, 0x7a, 0xce, 0xf2, 0xf5, 0xd5, 0x98, 0xaa, 0x07, 0xd9, -0xdd, 0xd6, 0xa6, 0x4f, 0xa9, 0x6d, 0x9a, 0x34, 0x64, 0xda, 0xc1, 0xcc, 0xa4, 0x27, 0xbf, 0x8c, -0x9c, 0x36, 0xaa, 0xb1, 0x5b, 0xf5, 0x1b, 0xef, 0xf9, 0x7e, 0x74, 0x6e, 0x59, 0x87, 0x75, 0x9d, -0x49, 0xfa, 0x0f, 0xc3, 0x7b, 0x0e, 0xba, 0xff, 0x6a, 0x66, 0xe6, 0xa9, 0xd3, 0x69, 0x93, 0x0e, -0x77, 0x1c, 0xf4, 0x7d, 0xe2, 0xd0, 0x29, 0x4d, 0x29, 0x4b, 0x43, 0x4e, 0xbd, 0x70, 0x22, 0xe8, -0x50, 0xe6, 0x63, 0x73, 0xe6, 0x85, 0xa4, 0x6e, 0x5f, 0x16, 0xbe, 0xb0, 0x61, 0xfb, 0x93, 0x75, -0x67, 0x56, 0x49, 0xaf, 0xde, 0x9e, 0x32, 0xea, 0x83, 0xdd, 0x59, 0x09, 0x85, 0x0b, 0x2d, 0xf9, -0xfa, 0x55, 0x69, 0xcf, 0x37, 0x44, 0xf8, 0xf5, 0x5d, 0xeb, 0xe1, 0xd9, 0x2d, 0x37, 0x5d, 0x25, -0x0b, 0xce, 0xea, 0xdf, 0xbe, 0x7e, 0xd2, 0x7b, 0xcb, 0xde, 0xb1, 0xec, 0x58, 0x60, 0xeb, 0xbc, -0x70, 0x75, 0x77, 0xed, 0x9c, 0xcf, 0x2e, 0xee, 0x38, 0x78, 0xeb, 0xcd, 0x79, 0x75, 0xbf, 0x64, -0x9e, 0x7f, 0x50, 0xdb, 0xed, 0xfa, 0x95, 0x33, 0x9f, 0x7d, 0xbf, 0xc3, 0xff, 0x7e, 0xdd, 0x7b, -0x3e, 0xfd, 0x67, 0xcc, 0x51, 0x4f, 0xd9, 0xb4, 0xb0, 0xff, 0xa7, 0xaa, 0xba, 0xe2, 0xbb, 0x1d, -0x0e, 0xe6, 0xf4, 0x8b, 0xbf, 0x62, 0x9a, 0x3c, 0xf1, 0xc1, 0xbf, 0xb6, 0xe4, 0x65, 0x9d, 0x6b, -0x1c, 0x3e, 0xe5, 0xcb, 0xde, 0x9e, 0x69, 0xbf, 0x4e, 0x88, 0xb4, 0xfc, 0xbe, 0x71, 0x83, 0xe7, -0xd6, 0x1b, 0x2b, 0xfd, 0xde, 0x7c, 0xfa, 0x50, 0xff, 0x39, 0x25, 0x0f, 0x54, 0x8b, 0x71, 0xfe, -0xf7, 0xce, 0xdd, 0x2d, 0x2a, 0x3c, 0x31, 0xd3, 0xed, 0xd9, 0x9d, 0xf1, 0xe2, 0x73, 0x6b, 0x3c, -0x3d, 0x7e, 0xd9, 0x7d, 0x50, 0xba, 0xa9, 0x7c, 0x9e, 0x64, 0x56, 0xc0, 0x20, 0xf7, 0xad, 0x83, -0x1f, 0xf3, 0x5d, 0xd0, 0xef, 0x68, 0xbb, 0x93, 0xb3, 0x5e, 0xf1, 0xf9, 0xfe, 0xfa, 0x10, 0xf9, -0xd8, 0x7b, 0x9d, 0x3c, 0xd3, 0x16, 0x9f, 0x96, 0x79, 0x85, 0xac, 0xf0, 0x7a, 0x26, 0x61, 0x84, -0x77, 0xf1, 0xdb, 0xea, 0xa0, 0x84, 0xfd, 0xf5, 0x4f, 0x74, 0x99, 0xf8, 0xd6, 0x93, 0x3d, 0x9e, -0x60, 0xbb, 0xac, 0xf7, 0xd6, 0x77, 0x7e, 0x7d, 0xf4, 0xb5, 0x4e, 0xbb, 0x2f, 0xbc, 0x1f, 0xf8, -0xdb, 0x96, 0x9c, 0xc7, 0xf7, 0xdd, 0xea, 0xe5, 0xc7, 0x55, 0xff, 0xfe, 0xd8, 0xbb, 0xea, 0x8d, -0xed, 0x17, 0x26, 0x8d, 0x57, 0xf8, 0x0f, 0x8f, 0xea, 0xd0, 0xcd, 0xd0, 0xec, 0x3f, 0x79, 0xfe, -0xd6, 0x80, 0x81, 0xf5, 0x93, 0x3b, 0x5e, 0x8c, 0x1f, 0x18, 0x79, 0x4a, 0xb7, 0xa0, 0xcf, 0xfc, -0x45, 0xfb, 0xfb, 0x7d, 0x7a, 0xd7, 0xbb, 0x6f, 0xd4, 0xaf, 0xe6, 0xfe, 0xde, 0x33, 0x67, 0x47, -0xa7, 0xf6, 0xad, 0x8d, 0xca, 0x4a, 0x11, 0x3f, 0x93, 0xd1, 0x71, 0x54, 0x44, 0xd1, 0xbf, 0x97, -0xf7, 0x8e, 0xf8, 0xe2, 0x6c, 0x2f, 0xd1, 0xda, 0xc0, 0xf0, 0x99, 0x9f, 0x0f, 0xeb, 0xf9, 0xd1, -0x37, 0x4b, 0x0d, 0x3f, 0xe7, 0x1d, 0x0f, 0xfb, 0x4e, 0xd4, 0xfe, 0xe9, 0xaa, 0x1f, 0xf2, 0x54, -0xef, 0x2d, 0x58, 0xfb, 0x54, 0x73, 0xcf, 0xeb, 0xdd, 0xf7, 0xff, 0x2b, 0x44, 0x9d, 0x34, 0x30, -0xb3, 0xdb, 0x0b, 0xdd, 0x57, 0x29, 0x95, 0xaf, 0x5e, 0x61, 0x3a, 0xdc, 0x56, 0x75, 0xd5, 0x6c, -0x2e, 0xd3, 0x3e, 0x79, 0x7e, 0x5b, 0x70, 0x3c, 0x7b, 0xbf, 0xc7, 0x38, 0xaf, 0x68, 0x4d, 0x63, -0xd0, 0xb8, 0x90, 0x2f, 0x26, 0x7c, 0xa4, 0x7b, 0x6d, 0xdf, 0x6f, 0xa1, 0x1f, 0xbc, 0xd5, 0x5b, -0x5f, 0x3b, 0xef, 0xb5, 0xe2, 0xdf, 0x7f, 0xcc, 0x18, 0xb7, 0xe1, 0xd9, 0x2e, 0xe3, 0x5f, 0x7d, -0xfa, 0x5c, 0x49, 0xd0, 0x53, 0x8b, 0x27, 0x06, 0x0f, 0x1a, 0x3c, 0xa1, 0xe4, 0x66, 0xc7, 0xd2, -0xb8, 0xd7, 0xbf, 0x79, 0xbe, 0xec, 0xdc, 0x4b, 0x53, 0x06, 0x7d, 0x3c, 0x60, 0x6a, 0x80, 0xcc, -0xe7, 0xdf, 0x5d, 0x33, 0x8f, 0x94, 0xaf, 0x2e, 0xad, 0x98, 0xb4, 0xb8, 0x8b, 0xa9, 0xec, 0xc0, -0x2a, 0xc9, 0xe4, 0x07, 0x07, 0xf6, 0xbe, 0x50, 0x13, 0xba, 0x23, 0xff, 0x45, 0xf3, 0x94, 0x82, -0xf3, 0x4d, 0x91, 0x45, 0x3f, 0x55, 0x35, 0x15, 0xe6, 0xcf, 0xde, 0x92, 0xf7, 0xaf, 0xab, 0x13, -0x73, 0xc5, 0xa9, 0x3d, 0xb3, 0x7b, 0x45, 0xde, 0xce, 0x91, 0x4d, 0xfd, 0x30, 0xb3, 0x7f, 0x87, -0x82, 0x31, 0xb6, 0xf7, 0x83, 0x47, 0x0f, 0xde, 0xf5, 0x13, 0x7b, 0xe2, 0xd4, 0xbb, 0x59, 0x97, -0x3f, 0x1b, 0x3b, 0x76, 0x9b, 0x9b, 0xd2, 0x36, 0x2f, 0xe7, 0xa2, 0x9d, 0x39, 0x78, 0xca, 0xd2, -0xf1, 0xcd, 0x0e, 0x89, 0xc9, 0x4f, 0xa6, 0x0d, 0x98, 0xf4, 0xfc, 0x42, 0xeb, 0xfd, 0x31, 0xe7, -0x07, 0x1d, 0xf4, 0x0c, 0x4a, 0x5e, 0xf4, 0xc9, 0xf0, 0xa4, 0x77, 0xbe, 0xab, 0x1e, 0x58, 0xfd, -0xda, 0x9e, 0xf8, 0x0f, 0x6f, 0x48, 0x13, 0xee, 0x24, 0x1b, 0xe3, 0x76, 0xa9, 0xa6, 0x9b, 0xcd, -0x61, 0x5f, 0xc7, 0x8c, 0xcf, 0x68, 0x67, 0xd4, 0x5e, 0x49, 0x34, 0x3d, 0x31, 0xf7, 0xe5, 0xd8, -0x94, 0xec, 0x9b, 0xe9, 0x76, 0xf1, 0xd3, 0x43, 0xa2, 0x77, 0x3c, 0x3f, 0xcc, 0xf3, 0xe4, 0x27, -0x43, 0xe7, 0xd6, 0xde, 0x4d, 0xdb, 0xbe, 0xae, 0x6f, 0xea, 0x25, 0xff, 0xf2, 0x94, 0x6f, 0xa6, -0xec, 0x1c, 0xdc, 0xd0, 0xe7, 0xd2, 0xf0, 0x0b, 0x69, 0xcc, 0xbf, 0x66, 0x5f, 0xb3, 0x3d, 0xbb, -0xf1, 0xc5, 0xd5, 0x19, 0xe1, 0x0b, 0x7f, 0x19, 0xe9, 0xf6, 0x47, 0x8f, 0x11, 0xc3, 0xe3, 0x8a, -0x46, 0x15, 0xe8, 0x3f, 0x78, 0xae, 0xa2, 0x73, 0xaf, 0xef, 0x3f, 0x19, 0xf7, 0xfb, 0xc5, 0x5f, -0x8f, 0x6c, 0xbc, 0x74, 0xe6, 0x9d, 0xf1, 0x97, 0x47, 0x7c, 0x14, 0x75, 0x25, 0xef, 0x4c, 0xf3, -0x8f, 0x61, 0xf6, 0xad, 0x3f, 0xb8, 0xfb, 0x4c, 0xae, 0x8f, 0xb4, 0xaa, 0xaf, 0xb7, 0x63, 0xea, -0x7f, 0x1d, 0xba, 0xe2, 0xad, 0xab, 0xa3, 0x1b, 0xd9, 0x6b, 0xf5, 0x97, 0xf4, 0x0d, 0xc7, 0x2b, -0xaf, 0xfd, 0x34, 0x27, 0xe2, 0xfd, 0x5f, 0x3e, 0x1b, 0x91, 0xf3, 0xf3, 0x8d, 0xad, 0x8f, 0x3d, -0xf8, 0xea, 0xd8, 0xd1, 0xfb, 0x2b, 0xf2, 0x5f, 0x69, 0x5e, 0x2b, 0x1d, 0xc2, 0xe9, 0x14, 0x9d, -0x9a, 0x3a, 0x4f, 0x3e, 0xfd, 0x87, 0x69, 0xcf, 0x8a, 0x7b, 0xcf, 0x6f, 0x18, 0x71, 0xd7, 0xf2, -0x13, 0xb9, 0x3d, 0x75, 0xc6, 0xee, 0x5b, 0xea, 0x67, 0x66, 0xde, 0x68, 0x3f, 0x2c, 0xfe, 0xe6, -0x92, 0x18, 0xcf, 0xc6, 0xb7, 0x83, 0x0f, 0xfe, 0xd6, 0xb4, 0x74, 0xde, 0xef, 0x5f, 0x73, 0x83, -0xee, 0xb0, 0x23, 0xcb, 0xce, 0x0c, 0xeb, 0xbd, 0xed, 0xb4, 0xef, 0x4b, 0xf7, 0xcf, 0xf6, 0xb9, -0x1c, 0xfd, 0xed, 0x8e, 0xdf, 0xc6, 0x9d, 0x7f, 0x79, 0xe5, 0x47, 0x17, 0x8e, 0x75, 0xfd, 0xed, -0xbb, 0x1f, 0x06, 0xf4, 0x3e, 0x77, 0x5a, 0x9e, 0x77, 0xea, 0xba, 0x6d, 0xed, 0xc9, 0x8f, 0x4f, -0x5f, 0x3f, 0x31, 0x6d, 0x53, 0xc8, 0x37, 0x92, 0xd5, 0x99, 0x75, 0x4f, 0x1f, 0x5e, 0x75, 0x34, -0xb7, 0xf8, 0xca, 0xf1, 0x91, 0x9d, 0x54, 0xc7, 0x14, 0xcd, 0xa3, 0xbe, 0xec, 0xbe, 0x64, 0xf9, -0x9e, 0x29, 0xda, 0xb3, 0x7b, 0x13, 0x8d, 0x81, 0x5f, 0x1d, 0x1a, 0x3a, 0x6c, 0xf7, 0x1f, 0x51, -0x4b, 0xbf, 0x78, 0x6b, 0xfa, 0xf1, 0x5d, 0x4b, 0x1b, 0xda, 0xd7, 0xae, 0xf9, 0x70, 0xe0, 0xc1, -0x95, 0x5f, 0x2e, 0x80, 0x9e, 0xda, 0xbf, 0xef, 0x66, 0x7b, 0xef, 0xfd, 0xa5, 0x1e, 0xe6, 0x43, -0xb1, 0x05, 0xb3, 0xbf, 0xee, 0x74, 0xbc, 0xf6, 0x48, 0xc8, 0xa7, 0xe2, 0xc3, 0xc6, 0x65, 0x1f, -0x2e, 0x9c, 0x78, 0xbf, 0xa0, 0x2a, 0xd4, 0x14, 0xbc, 0xe8, 0x71, 0xcd, 0x4f, 0x8b, 0x97, 0x47, -0xbf, 0xbb, 0xec, 0xfd, 0xf4, 0xb1, 0xaf, 0xdc, 0xfa, 0x59, 0xb9, 0xf4, 0xcb, 0x8a, 0x8b, 0x4b, -0xee, 0x7e, 0xb5, 0x63, 0xe5, 0x91, 0x0f, 0xa6, 0xac, 0x58, 0xf6, 0x58, 0xe4, 0xf2, 0x37, 0x27, -0x35, 0xbd, 0xa1, 0x2a, 0xda, 0x52, 0xfd, 0x98, 0xfb, 0xc4, 0x57, 0xad, 0xdb, 0x7b, 0xbe, 0xfe, -0xef, 0xa3, 0xb7, 0x5f, 0x33, 0xf4, 0x7a, 0x69, 0x9e, 0xc7, 0x73, 0x03, 0xe6, 0x8e, 0xfa, 0xde, -0x67, 0x7e, 0xce, 0xcb, 0x47, 0x16, 0x5c, 0x7d, 0xa3, 0x62, 0xce, 0xb7, 0xbf, 0x9b, 0x5e, 0x9e, -0x9e, 0x28, 0x79, 0x69, 0x4b, 0xb7, 0xbd, 0x95, 0x95, 0x63, 0x5f, 0x9b, 0xf1, 0xb9, 0x6f, 0xc6, -0xf4, 0x2b, 0x35, 0x5d, 0x2a, 0x8e, 0x9e, 0x3d, 0x37, 0x2d, 0xfd, 0xd0, 0xe2, 0x99, 0x63, 0xde, -0x1d, 0x3c, 0xab, 0x6f, 0x60, 0xc7, 0x17, 0x7d, 0x4a, 0xbe, 0x99, 0xbd, 0xaa, 0xee, 0xd2, 0xda, -0x57, 0xb6, 0x31, 0x6b, 0x0e, 0x4b, 0x6c, 0xeb, 0xee, 0x15, 0xae, 0x7e, 0xbf, 0xbc, 0xec, 0x97, -0x0d, 0x03, 0xfc, 0x7a, 0x7c, 0xe8, 0xb7, 0xbe, 0xe8, 0x83, 0xa7, 0xf6, 0x7e, 0xb0, 0x3e, 0x70, -0xda, 0xcd, 0xf7, 0xf4, 0xbf, 0x3c, 0xfd, 0xee, 0x84, 0x21, 0xcf, 0xaf, 0x8e, 0xe9, 0xff, 0xc9, -0x3b, 0x7b, 0x7a, 0xdc, 0x5d, 0x75, 0x3b, 0xb6, 0xef, 0x9b, 0xeb, 0x1e, 0x94, 0xbf, 0xfd, 0xc6, -0x2b, 0x3b, 0xdf, 0xaa, 0x1b, 0xbf, 0x67, 0xcb, 0x8f, 0x8f, 0x4b, 0x37, 0xef, 0x7c, 0xcf, 0xf8, -0xf1, 0x4b, 0x5f, 0x4f, 0xff, 0x44, 0xfe, 0xed, 0xd7, 0x9b, 0xfa, 0x6d, 0x6c, 0xf7, 0x51, 0x66, -0xbb, 0xc4, 0x8d, 0x43, 0xb2, 0x5e, 0xae, 0xc9, 0x56, 0x9e, 0xda, 0xfe, 0x9c, 0xa5, 0xc3, 0x36, -0xe9, 0x9d, 0xb4, 0xad, 0x3d, 0x97, 0x2f, 0xfc, 0x74, 0xf3, 0x9c, 0xf3, 0x3b, 0x66, 0x5c, 0x0c, -0xfa, 0xec, 0xec, 0xa8, 0xe1, 0x9f, 0x5f, 0x0b, 0xaf, 0xde, 0x89, 0xf3, 0x3f, 0xcb, 0xbe, 0x63, -0xeb, 0xcb, 0xfb, 0x3c, 0xd7, 0xfd, 0xfa, 0xe1, 0x16, 0xbf, 0x61, 0xaf, 0x64, 0x2e, 0x08, 0xbb, -0x71, 0xbe, 0xf7, 0xb9, 0xe7, 0xf2, 0x9e, 0xfa, 0x34, 0xf2, 0xd4, 0x1b, 0xd7, 0x35, 0x9b, 0xbf, -0x9c, 0x33, 0x48, 0xf6, 0xef, 0xb1, 0x17, 0x3f, 0x2b, 0x02, 0xf6, 0xff, 0xd4, 0xd6, 0xcf, 0x4f, -0x5a, 0xbf, 0x3b, 0x9d, 0x7b, 0xeb, 0xe9, 0x89, 0x17, 0x2e, 0x0e, 0x55, 0x8c, 0xc9, 0x58, 0x39, -0xec, 0xf1, 0x94, 0x26, 0xc3, 0x3b, 0x0d, 0xfe, 0x2b, 0x15, 0x4d, 0xe3, 0xee, 0xae, 0x37, 0xed, -0xab, 0x7d, 0xe1, 0xc2, 0x07, 0xef, 0x7d, 0x65, 0x8f, 0x95, 0x95, 0x3c, 0xaf, 0x2e, 0x3a, 0xfc, -0x75, 0xf1, 0xd4, 0x0f, 0x96, 0x76, 0x08, 0x6c, 0x1f, 0xf2, 0xc7, 0x27, 0xab, 0xfb, 0xaf, 0xa8, -0x0b, 0x7c, 0xb1, 0x7b, 0xc3, 0x91, 0x4e, 0xa6, 0x05, 0xe3, 0xdf, 0x5a, 0xcf, 0xec, 0xad, 0xd9, -0x9f, 0x30, 0x59, 0x16, 0xfd, 0x61, 0xd8, 0xaa, 0x7f, 0xed, 0x9b, 0x1f, 0xb8, 0xc5, 0xde, 0xcf, -0xab, 0x8e, 0xbc, 0xb8, 0x29, 0x27, 0x32, 0x45, 0x2f, 0x7f, 0xee, 0xea, 0x2b, 0x97, 0x6e, 0x3c, -0x3b, 0xeb, 0xc5, 0x57, 0x7e, 0x78, 0xe6, 0xe8, 0x8b, 0xb3, 0xb3, 0x36, 0x5f, 0xec, 0xfb, 0xdd, -0xf0, 0x41, 0x0b, 0x8e, 0xf4, 0xd7, 0x3c, 0x3d, 0x71, 0xb6, 0xa2, 0xfe, 0xe7, 0xcb, 0x13, 0x33, -0x52, 0x7d, 0x4e, 0x5f, 0x33, 0x66, 0x7f, 0x3e, 0xf8, 0xee, 0x9b, 0x77, 0x83, 0x6f, 0xec, 0x59, -0xf9, 0x8a, 0x45, 0x6b, 0x50, 0x0e, 0x1f, 0x34, 0x6c, 0xc5, 0xa5, 0x3b, 0x45, 0x89, 0x53, 0x17, -0xcb, 0x7e, 0xfb, 0xea, 0xdf, 0xef, 0x19, 0xbf, 0x09, 0xac, 0xbd, 0x5f, 0x90, 0x5c, 0xb7, 0xb2, -0x57, 0xf0, 0x27, 0xdd, 0xe6, 0x7d, 0x19, 0xb8, 0x6c, 0xe5, 0xaa, 0xa9, 0xda, 0xee, 0x8f, 0x27, -0x3c, 0xd8, 0x56, 0xce, 0xc4, 0x88, 0x17, 0x2d, 0x68, 0x54, 0xfc, 0xde, 0x60, 0x59, 0xf3, 0x4c, -0x86, 0xff, 0xeb, 0x19, 0xfd, 0xd7, 0x74, 0xfb, 0xb8, 0xea, 0x89, 0x9e, 0xc7, 0x7f, 0x7f, 0xf3, -0xa5, 0xdc, 0x23, 0x13, 0xfc, 0xdb, 0xad, 0x39, 0xb0, 0xfe, 0x7b, 0x8f, 0xa9, 0x3b, 0x67, 0xb2, -0x5f, 0x48, 0x8f, 0x15, 0xaf, 0x1a, 0xf5, 0x49, 0xc7, 0xa0, 0x2b, 0xcf, 0x6e, 0x5d, 0xdb, 0x18, -0x75, 0xa1, 0x43, 0xd2, 0xac, 0x1f, 0x77, 0x1f, 0xbd, 0x58, 0x31, 0x25, 0xc7, 0x57, 0x7f, 0xf0, -0x85, 0x3c, 0xcb, 0xc4, 0x2f, 0xde, 0x6a, 0xe7, 0x73, 0xf0, 0xab, 0xec, 0x8d, 0xe3, 0x7b, 0x7c, -0x25, 0x19, 0x9d, 0xb4, 0x6a, 0xeb, 0x99, 0xdf, 0xaa, 0x8b, 0xcc, 0x55, 0xdc, 0xf1, 0xfb, 0x53, -0x52, 0x6c, 0xbf, 0x76, 0xee, 0x7d, 0x76, 0xe8, 0xc0, 0xee, 0x9f, 0xfa, 0x6a, 0x8c, 0xee, 0x1f, -0xef, 0xbd, 0x5e, 0xb3, 0xfa, 0xed, 0x4a, 0x79, 0x50, 0xa7, 0x9a, 0x6f, 0xa7, 0x4d, 0x3d, 0x65, -0xef, 0xb3, 0xb0, 0xec, 0x58, 0x70, 0xe3, 0x93, 0x85, 0x8b, 0xdd, 0x7e, 0x57, 0xf7, 0xb3, 0x55, -0xbd, 0x36, 0xa3, 0xb2, 0xbf, 0x7e, 0xe1, 0xb5, 0x8c, 0xc5, 0x3d, 0xd2, 0x59, 0xf3, 0xe6, 0x9e, -0x1e, 0x77, 0xe5, 0x17, 0xd6, 0x0c, 0xec, 0xb2, 0xed, 0xc8, 0xcd, 0x77, 0xaf, 0x5e, 0x58, 0xd4, -0xfc, 0xd2, 0xd6, 0xd0, 0x78, 0x7b, 0xc7, 0xd7, 0xd3, 0xc5, 0xc5, 0xdd, 0xaf, 0x6e, 0xb7, 0xdc, -0x18, 0x77, 0x5e, 0x9f, 0xb4, 0xdf, 0x50, 0x71, 0xef, 0xdb, 0x21, 0x3f, 0xc6, 0x8d, 0x59, 0xbe, -0xaa, 0x7f, 0xde, 0xbd, 0xaf, 0x66, 0x1c, 0xef, 0x98, 0x1d, 0xb1, 0xab, 0xa4, 0xdd, 0x9c, 0x49, -0x07, 0x7b, 0x8f, 0xac, 0xdf, 0x90, 0xf2, 0xfd, 0x08, 0x23, 0x97, 0x9e, 0xfc, 0x54, 0x75, 0xc3, -0x9d, 0xf1, 0x95, 0x2f, 0x6f, 0x08, 0xb8, 0xde, 0x3b, 0xe0, 0xae, 0x71, 0xba, 0xe4, 0x8d, 0xee, -0xd1, 0x3b, 0x54, 0x4f, 0xfe, 0xd4, 0x35, 0xa6, 0x6c, 0xc8, 0xab, 0x1f, 0x9e, 0xba, 0xf8, 0xf2, -0x81, 0x9a, 0x11, 0x4f, 0xf7, 0xfb, 0xf8, 0xd9, 0x6b, 0xa3, 0x8e, 0xfe, 0x30, 0xa4, 0x66, 0x4a, -0x4a, 0xc2, 0x37, 0x8f, 0x5f, 0xe5, 0xf2, 0xbb, 0xf6, 0xcb, 0xf4, 0x8c, 0x7f, 0xf1, 0xec, 0x8f, -0x3f, 0x85, 0xed, 0x9b, 0x3e, 0x7f, 0x7e, 0xf1, 0x89, 0x15, 0xd7, 0x34, 0x1b, 0xef, 0x0d, 0xae, -0x7a, 0x6e, 0x68, 0xfd, 0xf4, 0xbe, 0x3d, 0x33, 0xfa, 0xce, 0xf0, 0x5c, 0xf0, 0xde, 0x95, 0xc2, -0xa7, 0x9f, 0x94, 0xed, 0x9a, 0xed, 0x53, 0xf0, 0x6e, 0xdf, 0x2d, 0xab, 0xbf, 0x37, 0x7e, 0xb6, -0x6b, 0xf6, 0x7d, 0x77, 0x7d, 0x8f, 0xc4, 0x8e, 0xd6, 0xe4, 0xdf, 0x3e, 0xbc, 0x3d, 0x41, 0x19, -0xb6, 0xac, 0xfd, 0x8a, 0x39, 0x65, 0x3b, 0x83, 0xab, 0x9f, 0x38, 0xf3, 0x0a, 0x33, 0x60, 0x7f, -0x63, 0x59, 0xe8, 0x06, 0x4b, 0x6d, 0xad, 0xe8, 0xc1, 0xb1, 0x77, 0x6c, 0x31, 0xb9, 0x41, 0xa3, -0x96, 0xfd, 0x3e, 0xa9, 0x8f, 0x76, 0xd0, 0x2b, 0xcb, 0x56, 0x8e, 0xbc, 0x75, 0xb3, 0xdb, 0x0f, -0xee, 0x8f, 0xe7, 0x0d, 0x64, 0xa7, 0x9c, 0xfa, 0x6d, 0xfe, 0xd1, 0xcc, 0x1f, 0x7f, 0xf9, 0xf8, -0xfc, 0x73, 0xa9, 0xf3, 0x3d, 0x77, 0xf7, 0xfe, 0x69, 0xcb, 0xe4, 0x33, 0xf1, 0x24, 0x1b, 0xd8, -0xff, 0xba, 0x9f, 0x7b, 0x5e, 0xa8, 0x5c, 0x30, 0x74, 0x8c, 0x61, 0xf4, 0xbd, 0x93, 0x4a, 0xc9, -0x8a, 0xdc, 0xd7, 0x80, 0xfd, 0xf7, 0x38, 0xbd, 0x4b, 0xf4, 0x79, 0x44, 0xe1, 0xe6, 0x0f, 0xd2, -0x3c, 0x65, 0x1d, 0x5e, 0x4b, 0x2e, 0x79, 0x82, 0xeb, 0x71, 0xf8, 0x9d, 0xf6, 0xb3, 0x5f, 0xf8, -0xa4, 0xf4, 0xfb, 0xaf, 0xda, 0x7d, 0x7d, 0x46, 0xb1, 0x68, 0xcd, 0xce, 0xf5, 0xda, 0xf8, 0xf6, -0x8f, 0x47, 0x76, 0x9b, 0xf0, 0x4e, 0xc5, 0xf3, 0xb6, 0xbd, 0xa7, 0x15, 0xa2, 0xc9, 0x6c, 0xf3, -0x86, 0x23, 0x25, 0xaf, 0xef, 0x1f, 0x7f, 0x40, 0x79, 0x73, 0xf5, 0xb0, 0x84, 0x65, 0x81, 0xd7, -0xd7, 0xf6, 0xf9, 0xe0, 0xc1, 0xa1, 0x51, 0xed, 0xe3, 0xa4, 0xbf, 0x0e, 0x9c, 0x30, 0xe6, 0xa5, -0x9b, 0x87, 0xe7, 0xa9, 0xcd, 0xe7, 0x1a, 0x62, 0xee, 0x8e, 0x1d, 0x3c, 0x49, 0x7f, 0x2f, 0xbc, -0xcb, 0xe2, 0x98, 0xb3, 0x1b, 0xd5, 0x69, 0x9f, 0x9f, 0x7c, 0xed, 0x97, 0x9f, 0xf6, 0xde, 0xfb, -0x68, 0xee, 0x9b, 0x71, 0xde, 0x99, 0xbe, 0x37, 0x1e, 0xf7, 0xc8, 0x49, 0x7a, 0x73, 0xe7, 0xe0, -0xd7, 0xa3, 0xbe, 0x8d, 0xe8, 0x3e, 0xb3, 0xd7, 0xab, 0x8b, 0x96, 0xa5, 0x34, 0x87, 0x86, 0xbe, -0xfa, 0x69, 0xba, 0xfa, 0xfe, 0xf9, 0x86, 0x15, 0x7e, 0xe3, 0x46, 0xce, 0x9d, 0x18, 0xf0, 0x7d, -0xf8, 0xe1, 0xd0, 0x88, 0xb5, 0xef, 0x27, 0xce, 0x69, 0x1f, 0x77, 0xa5, 0xbf, 0x1b, 0x33, 0x6d, -0xc6, 0xf6, 0x09, 0x0b, 0x2f, 0x5e, 0x7e, 0xec, 0xce, 0x88, 0x7f, 0x3d, 0x78, 0xf6, 0xa7, 0xc4, -0xea, 0xe8, 0x21, 0x37, 0xbb, 0x4a, 0xa7, 0xe7, 0x9b, 0x47, 0x47, 0x9f, 0x58, 0x77, 0xf8, 0xe5, -0xbd, 0x47, 0xd6, 0xf6, 0x9e, 0x12, 0x19, 0x33, 0xf5, 0xe4, 0x48, 0xf5, 0x17, 0x85, 0x1f, 0xbd, -0x34, 0xa1, 0xfc, 0xe4, 0xaf, 0x07, 0xf6, 0x14, 0x9d, 0x7c, 0xe2, 0x59, 0xaf, 0x8d, 0x6f, 0x7e, -0x5f, 0xdf, 0xc5, 0xff, 0xf6, 0xb4, 0x49, 0x6b, 0x06, 0x9c, 0xca, 0x39, 0xf8, 0xd8, 0x26, 0xdf, -0x89, 0xef, 0x8f, 0x78, 0x73, 0xf7, 0xa7, 0x7d, 0xf6, 0x4e, 0x11, 0x55, 0x34, 0xaf, 0x5d, 0xfe, -0xc3, 0xab, 0x1d, 0x54, 0xde, 0x11, 0xab, 0x22, 0x0a, 0x07, 0x07, 0xcd, 0x7f, 0x2f, 0xc0, 0x36, -0x7b, 0xf7, 0xb8, 0xb3, 0xd1, 0xba, 0xf3, 0x45, 0xba, 0xc4, 0x4f, 0x8f, 0x2f, 0xb9, 0x31, 0x4d, -0xe2, 0xb9, 0xf4, 0xca, 0xd6, 0x8d, 0x2f, 0x24, 0xfa, 0xbc, 0xdd, 0x25, 0x74, 0x63, 0x67, 0x4b, -0xf4, 0xb1, 0xd8, 0x90, 0x67, 0x0b, 0xff, 0xf8, 0xe2, 0xce, 0xb7, 0x3f, 0xbd, 0xbb, 0xd0, 0x3e, -0xf8, 0xc9, 0xb5, 0x35, 0x87, 0x26, 0x1f, 0x96, 0x97, 0x2e, 0x19, 0xfd, 0xa9, 0xed, 0xa6, 0xd4, -0xfd, 0x3c, 0xcb, 0x4b, 0x50, 0xa4, 0xa0, 0x2c, 0xab, 0xbf, 0x8c, 0x8c, 0xf7, 0xf3, 0x20, 0x4f, -0xc2, 0x7d, 0x31, 0x5a, 0x92, 0x21, 0x9e, 0xa4, 0x56, 0xe1, 0x41, 0x25, 0xc1, 0x58, 0x2a, 0xdf, -0xea, 0x49, 0x56, 0x09, 0x52, 0x6c, 0x15, 0x00, 0x46, 0x78, 0xbe, 0x08, 0xdf, 0x51, 0xd2, 0x2b, -0x03, 0x20, 0x10, 0x9e, 0xab, 0x1e, 0xf3, 0x20, 0xfd, 0xe0, 0xbe, 0x0c, 0x7d, 0xaf, 0xc2, 0x73, -0x5d, 0x7b, 0x0f, 0x2a, 0x69, 0x85, 0x96, 0x69, 0x34, 0xf0, 0x5c, 0x03, 0x57, 0xfc, 0xaf, 0x04, -0xb0, 0xc0, 0xf3, 0x0d, 0x85, 0x07, 0x95, 0xbf, 0x4d, 0x07, 0xf0, 0xef, 0x20, 0x23, 0x97, 0x21, -0x7e, 0x30, 0x41, 0xa3, 0x3f, 0x32, 0x12, 0x0e, 0xdf, 0xf7, 0x41, 0x7c, 0x94, 0x84, 0x1a, 0x8b, -0x16, 0x8b, 0xe1, 0x79, 0x0d, 0x95, 0xd5, 0x95, 0x91, 0x99, 0x00, 0x66, 0x78, 0x6e, 0x50, 0x78, -0xd0, 0xf4, 0x46, 0x50, 0x89, 0x38, 0x4f, 0x52, 0xed, 0xef, 0x41, 0xd2, 0x04, 0x29, 0xb8, 0x28, -0x78, 0x3e, 0x0d, 0xf5, 0xe9, 0x28, 0x48, 0xcd, 0xe9, 0xe0, 0x79, 0x2b, 0xfa, 0x03, 0x73, 0x4a, -0xd6, 0x79, 0x92, 0xbb, 0x0a, 0x5e, 0x12, 0x06, 0xa5, 0xe0, 0xfc, 0x20, 0xff, 0xb7, 0x21, 0xff, -0x6e, 0x82, 0x14, 0x5c, 0x18, 0x7c, 0xdf, 0x03, 0xf9, 0x7b, 0x0b, 0x52, 0x73, 0x4a, 0x78, 0x5e, -0xdd, 0x4a, 0xb2, 0xce, 0x93, 0xd4, 0x43, 0x7c, 0x0f, 0x41, 0x0a, 0xae, 0x13, 0x3c, 0x2f, 0x81, -0xfc, 0x63, 0x05, 0x29, 0xb8, 0xbe, 0xf0, 0x7c, 0x02, 0xf2, 0x7f, 0x4c, 0x90, 0x9a, 0xd3, 0xc2, -0xf3, 0xe6, 0x56, 0x92, 0x75, 0x9e, 0xa4, 0x51, 0xe1, 0x41, 0x25, 0xc5, 0x50, 0x0a, 0x2e, 0xc0, -0x08, 0x6d, 0x0b, 0xf9, 0x3f, 0x2d, 0x48, 0xc1, 0x45, 0xc0, 0xf7, 0x43, 0x90, 0x7f, 0x3b, 0x41, -0x6a, 0x4e, 0x0d, 0xcf, 0xeb, 0x5b, 0x49, 0xd6, 0x79, 0x92, 0xab, 0x0a, 0x0f, 0x2a, 0xa9, 0x36, -0x8a, 0x4a, 0xc4, 0x79, 0x92, 0xe5, 0x90, 0xff, 0x18, 0x41, 0x0a, 0x2e, 0x1a, 0x9e, 0xcf, 0x41, -0xfe, 0x9d, 0x05, 0xa9, 0xb9, 0x50, 0x78, 0xde, 0xd1, 0x4a, 0xb2, 0xce, 0x93, 0xdc, 0x17, 0xfa, -0x1f, 0xa5, 0xe0, 0xda, 0x43, 0xfd, 0x67, 0x08, 0xfd, 0x3f, 0x8e, 0x4a, 0xc4, 0x79, 0x92, 0xdd, -0x42, 0xff, 0x8f, 0xa6, 0x12, 0x74, 0x9e, 0x54, 0x82, 0xb0, 0x45, 0xb2, 0xce, 0x93, 0x5c, 0x12, -0xfa, 0xff, 0x59, 0x2a, 0x11, 0xe7, 0x49, 0x16, 0x09, 0xfd, 0x3f, 0x89, 0x4a, 0xc4, 0x79, 0x92, -0x63, 0x42, 0xff, 0xe7, 0x50, 0x09, 0x3a, 0x4f, 0x2a, 0x61, 0xd8, 0x22, 0x59, 0xe7, 0x49, 0x6e, -0x09, 0xfd, 0x8f, 0x52, 0x70, 0x1d, 0x14, 0x32, 0x91, 0x58, 0xe8, 0xff, 0xe7, 0xa9, 0x44, 0x9c, -0x27, 0x39, 0x20, 0xf4, 0x7f, 0x16, 0x95, 0xa0, 0xf3, 0xa4, 0x12, 0x88, 0x2d, 0x92, 0x75, 0x9e, -0xe4, 0x67, 0xa1, 0xff, 0x47, 0x52, 0x89, 0x38, 0x4f, 0xf2, 0x9a, 0xd0, 0xff, 0xff, 0xa6, 0x12, -0x71, 0x9e, 0xe4, 0xac, 0xd0, 0xff, 0x05, 0x54, 0x82, 0xce, 0x93, 0x4a, 0x28, 0xb6, 0x48, 0xd6, -0x79, 0x92, 0x26, 0xa1, 0xff, 0x31, 0xce, 0x63, 0x50, 0xff, 0x2f, 0x84, 0xfe, 0x1f, 0x0f, 0x80, -0xd2, 0x71, 0x7b, 0x85, 0xfe, 0x1f, 0x43, 0x25, 0xa4, 0x3c, 0xa9, 0x04, 0x63, 0x8b, 0xe4, 0x94, -0x27, 0xb9, 0x22, 0xf4, 0xff, 0xbf, 0x00, 0x50, 0xda, 0x6d, 0x99, 0xd0, 0xff, 0x2f, 0x00, 0xa0, -0x74, 0xdb, 0x49, 0xa1, 0xff, 0xd1, 0x17, 0x31, 0x4a, 0xcb, 0xa1, 0x84, 0x23, 0xa6, 0xf7, 0x32, -0x00, 0x4a, 0xd3, 0xdd, 0x11, 0xfa, 0x7f, 0x18, 0x40, 0x47, 0x97, 0xfe, 0x9f, 0x08, 0x80, 0xd2, -0x69, 0x87, 0x85, 0xfe, 0xb7, 0x03, 0xa0, 0xb4, 0xdb, 0x06, 0x2a, 0xf7, 0x25, 0x23, 0x2f, 0x02, -0xa0, 0x34, 0xdc, 0xaf, 0x42, 0xff, 0x3f, 0x07, 0x80, 0xd2, 0x66, 0x2b, 0x84, 0xfe, 0x9f, 0x0a, -0x80, 0xd2, 0x65, 0xe7, 0x85, 0xfe, 0x2f, 0x02, 0x40, 0x69, 0x35, 0x94, 0x90, 0xc4, 0xf4, 0x16, -0x00, 0xa0, 0x34, 0x5b, 0xf3, 0xdf, 0xcc, 0xff, 0x5d, 0x6d, 0xe6, 0xff, 0x9b, 0x6d, 0xe6, 0xff, -0xf7, 0x6d, 0xe6, 0xff, 0xc2, 0x36, 0xf3, 0xff, 0x68, 0x9b, 0xf9, 0xbf, 0xb1, 0xcd, 0xfc, 0xbf, -0xf9, 0x37, 0xf3, 0x7f, 0x7f, 0x9b, 0xf9, 0xbf, 0xb6, 0xcd, 0xfc, 0xff, 0xa9, 0xcd, 0xfc, 0x7f, -0xb5, 0xcd, 0xfc, 0x3f, 0xd3, 0x66, 0xfe, 0x7f, 0xda, 0x66, 0xfe, 0xdf, 0xfb, 0x9b, 0xf9, 0xff, -0x65, 0x9b, 0xf9, 0xff, 0x4e, 0x9b, 0xf9, 0xff, 0x43, 0x9b, 0xf9, 0xbf, 0xb4, 0xcd, 0xfc, 0xff, -0xa6, 0xcd, 0xfc, 0xdf, 0xd2, 0x66, 0xfe, 0xff, 0xf6, 0x37, 0xf3, 0xff, 0xeb, 0x36, 0xf3, 0xff, -0x83, 0x36, 0xf3, 0xff, 0x5a, 0x9b, 0xf9, 0xff, 0x46, 0x9b, 0xf9, 0xff, 0x5d, 0x9b, 0xf9, 0xff, -0x59, 0x9b, 0xf9, 0xff, 0xe0, 0x6f, 0xe6, 0xff, 0x17, 0x6d, 0xe6, 0xff, 0xdb, 0x6d, 0xe6, 0xff, -0xe5, 0x36, 0xf3, 0x7f, 0x71, 0x9b, 0xf9, 0x7f, 0xbc, 0xcd, 0xfc, 0xff, 0xa8, 0xcd, 0xfc, 0xbf, -0xfd, 0x37, 0xf3, 0xff, 0x60, 0x9b, 0xf9, 0xff, 0x7e, 0x9b, 0xf9, 0xff, 0x4b, 0x9b, 0xf9, 0xff, -0x7a, 0x9b, 0xf9, 0xff, 0x6d, 0x9b, 0xf9, 0xbf, 0xbd, 0xcd, 0xfc, 0xff, 0xe3, 0x6f, 0xe6, 0xff, -0x57, 0x6d, 0xe6, 0xff, 0x7b, 0x6d, 0xe6, 0xff, 0x8f, 0x6d, 0xe6, 0xff, 0x2b, 0x6d, 0xe6, 0xff, -0xa9, 0x36, 0xf3, 0xff, 0x93, 0x36, 0xf3, 0xff, 0xf7, 0xbf, 0x99, 0xff, 0x47, 0xda, 0xcc, 0xff, -0x0f, 0xdb, 0xcc, 0xff, 0xeb, 0x6d, 0xe6, 0xff, 0xca, 0x36, 0xf3, 0xff, 0x42, 0x9b, 0xf9, 0xff, -0x79, 0x9b, 0xf9, 0xcf, 0x29, 0xdc, 0x89, 0xa8, 0xa3, 0xbb, 0x48, 0xf4, 0x98, 0x3b, 0x69, 0xdf, -0xd9, 0x5d, 0x21, 0x6a, 0xef, 0x4e, 0xdc, 0x1f, 0x77, 0x97, 0x88, 0x3a, 0xb8, 0x93, 0x98, 0x27, -0xdc, 0x8d, 0x22, 0xf8, 0xee, 0x16, 0xe8, 0x2e, 0x16, 0xf9, 0xbb, 0x93, 0xae, 0x41, 0xee, 0x8c, -0xc8, 0xcf, 0x9d, 0x78, 0x76, 0x72, 0x97, 0x89, 0x02, 0xdc, 0xc9, 0x34, 0xa3, 0x3b, 0x21, 0xf0, -0x5d, 0x0c, 0xf1, 0xa7, 0x41, 0xfc, 0xc7, 0x3b, 0xbb, 0x07, 0x62, 0x7c, 0x8f, 0xc7, 0xdd, 0xa5, -0x18, 0x7f, 0xf4, 0x13, 0xee, 0x2c, 0xc6, 0x97, 0x04, 0xba, 0xbb, 0x61, 0xfc, 0x9e, 0x41, 0xee, -0x06, 0x8c, 0xef, 0xd3, 0xc9, 0x5d, 0x8e, 0xf1, 0x77, 0x61, 0x7c, 0xa2, 0x80, 0xf1, 0xe1, 0x47, -0xc7, 0x20, 0xd6, 0x44, 0x4a, 0xe5, 0xf7, 0xbd, 0x61, 0x4c, 0xc8, 0xd1, 0x3a, 0x13, 0x5a, 0x7f, -0x86, 0xf1, 0xd6, 0x8e, 0xc9, 0x29, 0xfc, 0x3b, 0xad, 0x9f, 0xd6, 0x0a, 0x3e, 0x6e, 0x54, 0x3f, -0x40, 0x4a, 0xdb, 0xca, 0x13, 0xd2, 0xf4, 0x86, 0xb4, 0xda, 0x41, 0x4e, 0x8f, 0xc1, 0x68, 0xe8, -0x0c, 0x2d, 0xd5, 0x0d, 0x7a, 0xe3, 0x69, 0xe8, 0xa1, 0x58, 0xe8, 0xf9, 0x31, 0xd0, 0xdb, 0x33, -0x60, 0x64, 0x7f, 0x41, 0x2e, 0x8b, 0xc4, 0x82, 0xe4, 0xa7, 0x58, 0x48, 0x01, 0xcb, 0xe4, 0x03, -0xf1, 0x1e, 0x87, 0xd1, 0xdf, 0x13, 0x46, 0xfc, 0x68, 0x18, 0xf9, 0xbb, 0x44, 0x22, 0xd1, 0x34, -0xb1, 0xc8, 0x4d, 0x24, 0x11, 0x49, 0x45, 0x32, 0x91, 0x5c, 0xa4, 0x10, 0x05, 0x8a, 0x18, 0x91, -0x41, 0x64, 0x14, 0xb1, 0xbc, 0xed, 0x00, 0x45, 0x9b, 0xff, 0xf6, 0xc2, 0xbf, 0x9f, 0xf0, 0xff, -0x98, 0xf0, 0xef, 0x2f, 0xfc, 0x77, 0x10, 0xfe, 0x15, 0x30, 0x27, 0xbe, 0x68, 0x15, 0xcb, 0x11, -0xda, 0x11, 0x2a, 0x00, 0xfe, 0x3b, 0xc2, 0x7f, 0x20, 0xfc, 0x3f, 0x0e, 0xff, 0x9d, 0xe0, 0xbf, -0x33, 0xfc, 0x07, 0xc1, 0xff, 0x13, 0xf0, 0x6f, 0x24, 0xc6, 0xe7, 0x4b, 0x73, 0xf2, 0x73, 0x4a, -0x27, 0x39, 0xcd, 0x34, 0x8c, 0x2d, 0x1a, 0xef, 0xbc, 0xb7, 0x97, 0x8c, 0x2e, 0xce, 0xce, 0x19, -0xd3, 0xf2, 0x22, 0xa7, 0xb0, 0xf4, 0xf9, 0x9c, 0xd2, 0x1c, 0x17, 0xab, 0x0e, 0x63, 0xa0, 0x6d, -0x9f, 0xe3, 0x7f, 0x8b, 0x6c, 0xc2, 0x4d, 0x18, 0xbd, 0x6d, 0x79, 0x7e, 0x2a, 0x7f, 0xec, 0x53, -0xe3, 0x49, 0x28, 0x74, 0x4a, 0x11, 0x99, 0x58, 0x54, 0x92, 0x97, 0x99, 0x55, 0x38, 0x26, 0xbb, -0x25, 0x85, 0x49, 0x99, 0x59, 0x25, 0x0f, 0xe5, 0x64, 0xce, 0x19, 0x9f, 0xf7, 0x27, 0x9f, 0x1e, -0x4e, 0x02, 0x03, 0xf3, 0xc9, 0xf3, 0xbf, 0x71, 0xc9, 0x43, 0xfb, 0xa6, 0x3d, 0x9b, 0x46, 0xf4, -0x7d, 0xc9, 0x53, 0xe3, 0xf5, 0x63, 0xb3, 0x6c, 0xcf, 0x3d, 0x35, 0x9e, 0xff, 0xf2, 0xe8, 0x14, -0xfb, 0xd2, 0xdc, 0xb4, 0x5a, 0x2d, 0x63, 0x1e, 0x94, 0xdc, 0x3d, 0x9d, 0x89, 0x33, 0x27, 0xa6, -0x33, 0xe9, 0x96, 0x38, 0x26, 0x7e, 0x50, 0x52, 0xd2, 0xa0, 0x61, 0x89, 0xc9, 0x09, 0x4c, 0x52, -0x62, 0x72, 0x5c, 0x5a, 0xd7, 0xae, 0x0c, 0x04, 0xc2, 0xe4, 0x63, 0x52, 0x63, 0x69, 0x0e, 0x34, -0xa2, 0xb9, 0x64, 0xf4, 0xc4, 0xac, 0x12, 0x92, 0x5e, 0x54, 0x94, 0x4f, 0x52, 0x4a, 0x8a, 0x72, -0xb3, 0xc6, 0x94, 0x92, 0xf4, 0x92, 0xd1, 0xe3, 0xb3, 0xc7, 0x8c, 0x2e, 0x24, 0xe6, 0xac, 0x09, -0x39, 0x63, 0xb2, 0xc8, 0x80, 0x9c, 0x31, 0x79, 0x24, 0xa6, 0xb8, 0x38, 0x71, 0x4c, 0x51, 0x21, -0x81, 0x98, 0x7d, 0xd3, 0x26, 0x8d, 0x2f, 0xcd, 0x2a, 0xd0, 0x63, 0x02, 0x38, 0x3e, 0x81, 0xad, -0x2e, 0x29, 0x29, 0x2a, 0x61, 0xc6, 0x66, 0x8d, 0x29, 0x1a, 0x9b, 0x53, 0x68, 0x67, 0x0a, 0xb3, -0x26, 0x52, 0xf3, 0x1a, 0xcc, 0xd8, 0xd1, 0xa5, 0xa3, 0x49, 0x8e, 0xcd, 0x56, 0x3c, 0xba, 0x64, -0x7c, 0x56, 0x8b, 0x35, 0x8d, 0xe4, 0xac, 0x89, 0x89, 0x8e, 0xcf, 0x4c, 0x69, 0xc9, 0xf3, 0x85, -0x63, 0x60, 0xc0, 0x8f, 0x6d, 0xfd, 0x3a, 0xa7, 0x70, 0xc2, 0xe8, 0xfc, 0x9c, 0xb1, 0xff, 0xbc, -0x66, 0x58, 0xb0, 0xd8, 0xfc, 0xd1, 0xe3, 0xc7, 0x67, 0x41, 0xb3, 0x41, 0x0a, 0xa5, 0x93, 0x8a, -0xe1, 0xae, 0xb8, 0xd0, 0x1e, 0xea, 0x78, 0x22, 0x54, 0xbb, 0xce, 0xf9, 0xcd, 0x59, 0x9e, 0x81, -0x45, 0x13, 0xfe, 0x3f, 0xcc, 0xfd, 0x0d, 0x7c, 0x54, 0xd5, 0xb5, 0x30, 0x8c, 0xaf, 0x73, 0x66, -0x32, 0x0c, 0xc9, 0x18, 0xc7, 0x18, 0xd3, 0x18, 0x53, 0x3c, 0x4e, 0x87, 0x71, 0x98, 0x0c, 0x99, -0x21, 0x8d, 0x34, 0x4d, 0x53, 0x9c, 0x4c, 0x26, 0x61, 0x32, 0x84, 0x31, 0x4e, 0x02, 0xa6, 0x94, -0x87, 0x1e, 0x43, 0x32, 0x03, 0x31, 0x1f, 0xd3, 0x21, 0xa4, 0x29, 0x6f, 0x5e, 0x9c, 0x99, 0x04, -0x0c, 0x1f, 0xf2, 0x2d, 0xd7, 0x5a, 0xdb, 0xeb, 0xed, 0xf5, 0xb6, 0x18, 0x50, 0x23, 0x52, 0x9a, -0x9b, 0x72, 0x31, 0x22, 0xf5, 0x41, 0xa4, 0x3e, 0x01, 0x23, 0xa5, 0x5e, 0xaa, 0x88, 0x80, 0x88, -0x28, 0xd4, 0x22, 0xd2, 0x08, 0x39, 0xff, 0xb5, 0xf6, 0x39, 0x33, 0x99, 0x04, 0xb4, 0xed, 0xbd, -0xf7, 0x7d, 0x7e, 0xff, 0xc0, 0x99, 0xb3, 0xf7, 0x3e, 0xfb, 0x63, 0xed, 0xb5, 0xd7, 0x5e, 0x7b, -0xad, 0xfd, 0xb1, 0xf6, 0xe2, 0x7a, 0x28, 0x6e, 0x5e, 0xdc, 0xf4, 0x20, 0xd1, 0x07, 0x54, 0x2e, -0x5e, 0xd8, 0xba, 0x34, 0x54, 0x0f, 0xb3, 0x97, 0x2e, 0x59, 0xbc, 0x10, 0xca, 0x9b, 0x97, 0x20, -0x88, 0x4d, 0xf5, 0xcd, 0xad, 0x50, 0xd5, 0xb2, 0xb4, 0xb9, 0x0e, 0x5c, 0x2d, 0x0b, 0x65, 0x6f, -0x75, 0x7d, 0x3b, 0x86, 0x31, 0x5c, 0x80, 0xaf, 0x78, 0x76, 0x21, 0xfd, 0xe0, 0xe3, 0x02, 0x57, -0x19, 0x94, 0x35, 0xb6, 0x04, 0x11, 0x33, 0x25, 0x2e, 0xfc, 0xef, 0xbb, 0x6f, 0x36, 0xb8, 0xdc, -0xe0, 0x76, 0x41, 0xe9, 0xec, 0x39, 0xe0, 0x7e, 0x30, 0x54, 0x57, 0x47, 0xa8, 0x77, 0xdf, 0x37, -0xbb, 0x14, 0xdc, 0x2d, 0x4d, 0xf5, 0x50, 0x56, 0x5c, 0x0d, 0x55, 0x65, 0x55, 0x50, 0x8c, 0x09, -0x59, 0xab, 0xcc, 0xa9, 0x72, 0x42, 0x6e, 0xa8, 0x7e, 0xe1, 0x8f, 0x17, 0x36, 0x22, 0x5e, 0x18, -0x27, 0x18, 0xf3, 0xdb, 0x5c, 0x5f, 0x5f, 0x27, 0xd4, 0x21, 0x98, 0x08, 0x2e, 0xd5, 0x00, 0x21, -0xac, 0x7f, 0xb0, 0x49, 0xa8, 0x47, 0xe8, 0xc0, 0xbf, 0xb8, 0xb1, 0x5e, 0x60, 0x0d, 0x12, 0x0f, -0x66, 0x1e, 0x86, 0x55, 0xd9, 0xb9, 0xb8, 0x79, 0xc9, 0x52, 0xbf, 0x7f, 0xf1, 0xc2, 0xc5, 0x58, -0x0b, 0xa1, 0xa9, 0xbe, 0xa9, 0x05, 0xb3, 0xa8, 0xc5, 0x10, 0x64, 0x28, 0xb1, 0x08, 0x0b, 0x5b, -0x9a, 0x82, 0x88, 0x8d, 0x5a, 0xcc, 0xab, 0xad, 0x3e, 0xb4, 0x84, 0xd0, 0x42, 0x81, 0x21, 0x04, -0xaa, 0x55, 0x58, 0x54, 0xff, 0x60, 0x1d, 0xc6, 0x5d, 0xb8, 0xa8, 0x1e, 0x09, 0x63, 0x69, 0xf3, -0x43, 0xcd, 0x2d, 0x3f, 0x6a, 0x16, 0x28, 0x45, 0xa8, 0x7e, 0x09, 0x45, 0xc5, 0x3c, 0x5b, 0x17, -0xb5, 0xd4, 0x81, 0xd2, 0x86, 0xc2, 0x8f, 0x16, 0x37, 0xd7, 0xb5, 0xfc, 0x48, 0x58, 0xb2, 0x78, -0x59, 0x7d, 0x3c, 0xba, 0x92, 0x07, 0xf2, 0xba, 0xc0, 0x12, 0x61, 0x49, 0x7d, 0x2b, 0xc4, 0x32, -0x0d, 0x2d, 0x14, 0x9a, 0x16, 0x2f, 0xc1, 0xa6, 0x58, 0xb8, 0x28, 0x9e, 0x41, 0x6d, 0x63, 0xcb, -0xc2, 0x87, 0x04, 0xb9, 0x0d, 0x95, 0xa0, 0x25, 0xad, 0x2d, 0xa1, 0xfa, 0xd8, 0x97, 0xc6, 0xfa, -0xe6, 0x40, 0xeb, 0xa2, 0x25, 0xd0, 0xda, 0xd2, 0x22, 0x34, 0x3d, 0xd8, 0xfc, 0x63, 0x25, 0x40, -0x20, 0xa2, 0x5c, 0xbc, 0xa4, 0xf5, 0xc1, 0xe6, 0x85, 0xf5, 0xc2, 0x92, 0x1f, 0x37, 0xd5, 0xb6, -0x34, 0x2e, 0x89, 0x67, 0x80, 0xb4, 0x5a, 0x1f, 0x4b, 0xc8, 0x00, 0x88, 0x17, 0xb6, 0xb8, 0x35, -0x96, 0x3e, 0x54, 0x1f, 0xac, 0x7f, 0xb0, 0x75, 0x6c, 0x92, 0xa9, 0x53, 0x09, 0xbe, 0x25, 0x44, -0xe7, 0x88, 0xef, 0xa9, 0x2d, 0xfe, 0xa9, 0x0c, 0x86, 0x78, 0x24, 0xe4, 0x48, 0xf5, 0xa1, 0x07, -0x1b, 0x6d, 0x37, 0xca, 0x3a, 0x06, 0xcc, 0xd8, 0xd0, 0xb1, 0x29, 0x58, 0x29, 0xd7, 0xa5, 0xf8, -0x92, 0x50, 0xaa, 0xb0, 0xff, 0xc1, 0x90, 0x50, 0xfb, 0x20, 0x83, 0x20, 0xd6, 0x40, 0xac, 0xad, -0xe5, 0xe6, 0x19, 0x0d, 0x8c, 0x65, 0xaf, 0x04, 0x7f, 0x75, 0x4e, 0x5f, 0x55, 0xfa, 0x8d, 0xe0, -0x8d, 0x9d, 0x23, 0x38, 0xb5, 0xff, 0xdc, 0xa8, 0xfb, 0x77, 0x5b, 0x63, 0x16, 0x77, 0xf0, 0x99, -0xac, 0xbc, 0x8d, 0xca, 0xb9, 0x5c, 0x7a, 0xdf, 0xa5, 0x9c, 0x57, 0xb8, 0x5b, 0xf1, 0x43, 0x42, -0x7c, 0x66, 0x3f, 0x87, 0xec, 0x0e, 0xd9, 0x52, 0x6d, 0xc9, 0x55, 0xcd, 0x20, 0xd8, 0x52, 0x9d, -0xbf, 0x72, 0xb7, 0x4b, 0x92, 0xfb, 0xc7, 0x70, 0xea, 0xff, 0x61, 0x36, 0x00, 0x8b, 0xe6, 0x33, -0x3b, 0x6e, 0xf8, 0xcd, 0xaf, 0xd7, 0xe6, 0xd2, 0x31, 0xfb, 0x80, 0x56, 0x48, 0xf5, 0x3e, 0x27, -0x7d, 0x22, 0xdb, 0xb5, 0x94, 0x6d, 0x17, 0xdb, 0x52, 0x63, 0x36, 0xe1, 0x58, 0x4a, 0x6d, 0x42, -0xca, 0x70, 0x40, 0xe7, 0xc3, 0xd4, 0x7c, 0xae, 0xf4, 0x39, 0xa4, 0x8a, 0xfc, 0xcf, 0xde, 0x10, -0x52, 0xe5, 0x7b, 0xb1, 0x84, 0x3c, 0xa3, 0x97, 0xe5, 0xbb, 0xdc, 0x98, 0xcb, 0x27, 0xc7, 0x72, -0x90, 0xcb, 0xde, 0xf7, 0xf8, 0x98, 0x1c, 0xe6, 0x1b, 0xbc, 0xd6, 0x1f, 0xd3, 0xc1, 0x07, 0x2c, -0x57, 0x4d, 0x10, 0x2a, 0xe5, 0x08, 0x33, 0xff, 0x0a, 0xd2, 0x77, 0xce, 0x7a, 0x37, 0x27, 0x40, -0x6d, 0xf7, 0x6e, 0xc6, 0xb7, 0x54, 0xe4, 0x63, 0x39, 0x54, 0x32, 0x4b, 0x78, 0x7a, 0x76, 0x33, -0x4e, 0x9a, 0xc1, 0xb3, 0x79, 0x60, 0x30, 0x12, 0xcf, 0x29, 0x97, 0x2c, 0xba, 0x89, 0xf2, 0x59, -0xb4, 0x54, 0xf9, 0x26, 0xee, 0x0a, 0xb5, 0x6c, 0xf1, 0xd2, 0xe8, 0xb8, 0x87, 0xee, 0x8a, 0xc8, -0x98, 0xec, 0xe6, 0x93, 0x13, 0x72, 0xab, 0xa8, 0x59, 0x8f, 0xd0, 0x88, 0x63, 0xea, 0x5a, 0x10, -0x83, 0x81, 0xdd, 0x45, 0x11, 0x0e, 0x38, 0x13, 0x60, 0x31, 0x7b, 0x37, 0xdb, 0x92, 0x13, 0x63, -0xef, 0x7b, 0x9a, 0x62, 0x17, 0xcd, 0x67, 0xb1, 0xb3, 0x3d, 0x61, 0x7f, 0x9d, 0x2d, 0x79, 0x34, -0x3e, 0xd6, 0x9a, 0xc2, 0xf5, 0xff, 0xb3, 0x35, 0x94, 0xed, 0x79, 0x92, 0xfd, 0x4d, 0xef, 0x0f, -0x65, 0x6b, 0xd4, 0xb2, 0x95, 0xe9, 0x91, 0x5a, 0xd6, 0x76, 0xc9, 0x46, 0xb2, 0x4f, 0x6d, 0xe1, -0x27, 0x05, 0x52, 0x6d, 0xdf, 0xa6, 0x74, 0x64, 0x71, 0x53, 0x3a, 0x56, 0xb9, 0x1e, 0xc3, 0x4c, -0x63, 0xc2, 0xf6, 0xb3, 0x30, 0xc3, 0x98, 0xb0, 0x5e, 0x16, 0x66, 0x19, 0x13, 0xf6, 0x24, 0x0b, -0xcb, 0x18, 0x13, 0xd6, 0xcd, 0xc2, 0xd2, 0xc6, 0x84, 0xb5, 0xb2, 0xb0, 0xd4, 0x31, 0x61, 0xe2, -0x0d, 0xd2, 0x56, 0x54, 0xae, 0x0f, 0x72, 0xc6, 0x18, 0xcd, 0xb4, 0x40, 0xfa, 0xe4, 0x0e, 0x38, -0x3d, 0xb1, 0x1f, 0x2c, 0x93, 0x3d, 0x90, 0x57, 0x7c, 0x0e, 0xa6, 0xc7, 0xea, 0x7b, 0xed, 0x48, -0x2b, 0x10, 0xbe, 0xf8, 0x46, 0xc1, 0x79, 0x78, 0x1f, 0xfe, 0x3b, 0x50, 0x7c, 0xb1, 0xbb, 0x8e, -0x6e, 0x33, 0xf7, 0x6e, 0xf6, 0x45, 0x6b, 0xd6, 0x07, 0x85, 0xde, 0xa8, 0xff, 0x94, 0xb3, 0x87, -0x3b, 0xab, 0x2f, 0x02, 0xfd, 0x64, 0x07, 0x77, 0xfe, 0x9e, 0x0e, 0xe9, 0x2a, 0x77, 0x11, 0xdb, -0x5a, 0xcd, 0x5d, 0x62, 0xee, 0x4f, 0x99, 0xfb, 0xb2, 0xb3, 0x81, 0xbb, 0x82, 0xf1, 0x46, 0x30, -0xde, 0xed, 0x93, 0x1d, 0x3c, 0x8f, 0xa1, 0x1c, 0xaf, 0x61, 0xbf, 0xda, 0x92, 0xbf, 0xc2, 0xa9, -0xff, 0x48, 0x76, 0x42, 0xbc, 0xd4, 0x63, 0x18, 0x23, 0x2b, 0xd0, 0xce, 0xc2, 0xb3, 0x82, 0x63, -0xc3, 0x53, 0x03, 0x95, 0x2c, 0xdc, 0x14, 0xbc, 0x7b, 0x4c, 0x78, 0x5a, 0xc0, 0xcc, 0xc2, 0xbf, -0x35, 0x2e, 0x7e, 0x86, 0x3f, 0x5f, 0xa9, 0x39, 0x62, 0xcb, 0xdb, 0x3f, 0x52, 0x59, 0xb9, 0x3e, -0xee, 0x4f, 0x45, 0xbf, 0x23, 0xc1, 0x9f, 0x85, 0x7e, 0xbb, 0x72, 0x5f, 0x0e, 0x17, 0xa3, 0x5d, -0xa1, 0xd0, 0xe4, 0x36, 0x4e, 0x34, 0x2f, 0x82, 0x64, 0x4f, 0xa5, 0x3f, 0x37, 0x28, 0x86, 0x38, -0x77, 0x71, 0x9c, 0x1e, 0x0a, 0xcd, 0x64, 0x1d, 0x36, 0x57, 0x98, 0x65, 0xbf, 0x0a, 0xc9, 0xdf, -0xee, 0x40, 0x49, 0x36, 0xd5, 0xe0, 0x88, 0x7f, 0x4d, 0xb6, 0x57, 0x09, 0x5a, 0x5f, 0xf8, 0x83, -0xee, 0x3f, 0x0e, 0x98, 0xa3, 0x53, 0x3c, 0xa0, 0xae, 0xaa, 0x0a, 0x72, 0xf2, 0xad, 0x73, 0xf3, -0xd5, 0xcc, 0xbe, 0xf3, 0x21, 0xf7, 0x07, 0xf6, 0x02, 0xa3, 0xdb, 0x54, 0x8e, 0xf4, 0x99, 0x44, -0xb4, 0xf8, 0x1f, 0xe5, 0xb6, 0x89, 0xe5, 0x88, 0xf1, 0xc2, 0x21, 0xef, 0x16, 0x85, 0xfe, 0x01, -0x7a, 0xf0, 0xab, 0x96, 0x7d, 0xbd, 0xcf, 0x96, 0x12, 0x0b, 0xf7, 0x1b, 0x58, 0x48, 0x4d, 0xf9, -0xc7, 0xd2, 0x1b, 0x36, 0x1d, 0xbb, 0x49, 0xa0, 0xd7, 0xfd, 0x10, 0x59, 0xa3, 0x67, 0xee, 0x56, -0x11, 0x60, 0x6d, 0xf1, 0x47, 0x90, 0xe4, 0x2c, 0xf9, 0xc9, 0x21, 0x31, 0xb3, 0xe4, 0xd2, 0x01, -0x78, 0xf3, 0xb5, 0xf2, 0x3f, 0x1f, 0x80, 0x3f, 0x1e, 0x22, 0x0b, 0x7a, 0x20, 0x95, 0x5f, 0xd2, -0x0e, 0xb6, 0x71, 0x46, 0xad, 0x3e, 0x33, 0x0d, 0x34, 0x9c, 0x34, 0xa8, 0xe3, 0x60, 0xe2, 0xc2, -0x63, 0x58, 0x92, 0x9a, 0xe5, 0xbb, 0x90, 0x59, 0x69, 0x44, 0x38, 0x94, 0xd2, 0x8c, 0x9e, 0x92, -0x80, 0x60, 0xe3, 0xdd, 0x8d, 0x72, 0x3f, 0xfa, 0x8f, 0x45, 0x18, 0x33, 0xcf, 0xdd, 0x24, 0xbd, -0x41, 0xb1, 0xf2, 0xf6, 0x90, 0x05, 0x47, 0x71, 0x92, 0x0c, 0x23, 0x85, 0x52, 0x1d, 0xbe, 0xdd, -0xeb, 0xdd, 0x62, 0x4b, 0x41, 0xdf, 0x51, 0x06, 0x33, 0x59, 0xe5, 0x9d, 0x44, 0xdf, 0x64, 0xdb, -0xe6, 0xdf, 0xd1, 0x3a, 0x2d, 0x30, 0x89, 0x72, 0xc7, 0xde, 0xf4, 0x71, 0xb6, 0x4e, 0xbe, 0xef, -0x52, 0xaf, 0x3f, 0xa9, 0xd5, 0x00, 0x3c, 0xac, 0x0f, 0xeb, 0xcd, 0xc0, 0xc9, 0xee, 0x5b, 0x1c, -0xc0, 0xa1, 0x8f, 0x8f, 0xfb, 0x78, 0x6a, 0x97, 0x7b, 0x0d, 0xb9, 0x5a, 0xa3, 0xd7, 0xa6, 0x8d, -0xdd, 0xa1, 0x30, 0x3f, 0x9c, 0xd8, 0x32, 0xd7, 0xaa, 0x4d, 0xec, 0xd6, 0x4f, 0xdb, 0x04, 0xd9, -0xf2, 0x2a, 0xe2, 0x86, 0x60, 0x5b, 0xa2, 0xdc, 0xb9, 0xd0, 0x6a, 0x50, 0xb5, 0x8e, 0x58, 0x1b, -0xf8, 0x54, 0x76, 0x67, 0x30, 0x59, 0xe6, 0xd5, 0x07, 0x9a, 0x0d, 0xa0, 0x84, 0xe4, 0x5a, 0x20, -0xe0, 0x33, 0xa8, 0x14, 0x5f, 0x5f, 0x3e, 0x04, 0x0a, 0x3c, 0x3d, 0xbc, 0xc5, 0x9f, 0xc1, 0x28, -0xec, 0xc7, 0xe3, 0x28, 0xcc, 0x62, 0xa5, 0xfe, 0x9a, 0x61, 0x98, 0x20, 0xc7, 0xbf, 0xfa, 0x84, -0xe0, 0x30, 0x94, 0x62, 0x9c, 0x32, 0xb2, 0x66, 0x67, 0x48, 0x52, 0x72, 0xf9, 0x25, 0xbb, 0x51, -0x59, 0x3d, 0xc6, 0x57, 0x12, 0xcf, 0xc7, 0x4b, 0x7e, 0x3b, 0xf2, 0x4b, 0xd7, 0x55, 0x79, 0xec, -0x10, 0x94, 0xbb, 0x41, 0xa8, 0x77, 0x22, 0x77, 0xc9, 0x64, 0x77, 0xf4, 0x29, 0x63, 0x83, 0x60, -0x03, 0xad, 0xc1, 0x86, 0x78, 0xc3, 0xef, 0xf8, 0x2d, 0x9d, 0x6e, 0x86, 0x91, 0x47, 0x00, 0x3b, -0x6f, 0xb2, 0x41, 0xa6, 0xa0, 0x0a, 0x71, 0xa3, 0x14, 0x6a, 0x84, 0x80, 0xc5, 0x66, 0x83, 0x6c, -0x9b, 0xca, 0x06, 0x41, 0xef, 0xe0, 0xf3, 0xe8, 0x62, 0x3c, 0x05, 0x53, 0x1b, 0x0d, 0x4e, 0x41, -0x15, 0x87, 0x81, 0x6c, 0x4c, 0xeb, 0x89, 0x67, 0x93, 0x95, 0x7d, 0xf7, 0x07, 0x05, 0xbc, 0x11, -0xf3, 0x0a, 0x94, 0xc9, 0x74, 0x40, 0x18, 0x36, 0x81, 0xaf, 0x73, 0x6c, 0xde, 0x66, 0x08, 0x98, -0xc6, 0xe4, 0x2d, 0xb0, 0xbc, 0x1d, 0x36, 0xde, 0xa6, 0x96, 0xb1, 0x4e, 0x76, 0xab, 0x95, 0xbb, -0x65, 0xde, 0x75, 0x30, 0xeb, 0xc7, 0x45, 0x74, 0xaf, 0x8c, 0xd9, 0x6c, 0x03, 0x7b, 0xbe, 0x0d, -0x72, 0x83, 0xe9, 0x63, 0x60, 0x75, 0x30, 0x7a, 0xff, 0x45, 0x9b, 0xf7, 0x28, 0xdd, 0x1b, 0xa5, -0x46, 0x8a, 0x49, 0xb7, 0x01, 0xdd, 0x6c, 0x37, 0x72, 0x9e, 0xb9, 0x53, 0x64, 0xda, 0xb9, 0x07, -0x79, 0x0e, 0xb3, 0x24, 0x4c, 0x37, 0x8b, 0xa9, 0x0b, 0x73, 0x40, 0xcb, 0xb8, 0xbf, 0x33, 0xe0, -0xb7, 0xbb, 0x83, 0x37, 0x0f, 0x76, 0x9f, 0x09, 0x97, 0xb3, 0x5b, 0xb1, 0x99, 0xad, 0xc8, 0x11, -0x2c, 0xaa, 0x18, 0xe9, 0x64, 0x4b, 0xe5, 0x7a, 0x7b, 0xa9, 0x4d, 0x8b, 0x10, 0xa2, 0xcb, 0x08, -0x21, 0xd5, 0x68, 0xb9, 0xd8, 0xde, 0x7a, 0x9b, 0x1a, 0xa1, 0x96, 0xcb, 0x22, 0xbb, 0x86, 0xfa, -0xc9, 0xa5, 0x90, 0x1c, 0x48, 0xc7, 0xb0, 0x1c, 0x90, 0x6f, 0x31, 0x56, 0x6e, 0x47, 0x8a, 0xd9, -0x73, 0x9e, 0x5f, 0xe4, 0x5d, 0x7a, 0xff, 0x7a, 0x66, 0x21, 0x1f, 0xf9, 0x83, 0xc9, 0x2b, 0xdf, -0x30, 0xa7, 0x2e, 0x64, 0x76, 0xac, 0xed, 0x98, 0xab, 0xcf, 0xe8, 0xb0, 0x50, 0x88, 0x05, 0xdb, -0x93, 0xfa, 0xe4, 0xa9, 0xab, 0x9f, 0x5a, 0x1c, 0x58, 0x0b, 0x2f, 0xd9, 0x87, 0x26, 0xab, 0x94, -0xf7, 0x9c, 0xf2, 0x92, 0xcd, 0xfd, 0xf4, 0x7e, 0xf9, 0xa6, 0xa5, 0x66, 0x5b, 0x0e, 0x9f, 0x85, -0x3d, 0x8c, 0xec, 0xc0, 0x16, 0x91, 0xad, 0x3b, 0x84, 0x24, 0x9d, 0x20, 0x21, 0x4b, 0xbb, 0x7e, -0xe0, 0xbc, 0xf7, 0x34, 0x41, 0x14, 0x96, 0xe1, 0x6f, 0x17, 0x74, 0x4c, 0x6e, 0x82, 0x95, 0xb0, -0x1c, 0xe3, 0x26, 0xbb, 0x9b, 0xe0, 0x39, 0x77, 0x03, 0xfc, 0xd2, 0xbb, 0x15, 0x71, 0x12, 0xc5, -0x67, 0x25, 0x3e, 0xab, 0x59, 0xaf, 0x7d, 0x16, 0x1a, 0x02, 0x76, 0xfc, 0x6d, 0x0e, 0x58, 0xe8, -0x6e, 0x77, 0x8c, 0xd9, 0x80, 0x31, 0x6b, 0xbd, 0x5b, 0x11, 0x8f, 0x53, 0xa1, 0x19, 0x9f, 0x06, -0xb2, 0x2c, 0x7b, 0xed, 0xc0, 0x64, 0x07, 0xd4, 0x12, 0x06, 0x03, 0xa0, 0x0a, 0xb5, 0x43, 0xf1, -0x39, 0xe9, 0x8a, 0xcd, 0x0d, 0x76, 0xf9, 0xe6, 0x08, 0x6b, 0x11, 0x9c, 0x7a, 0xad, 0x4e, 0x50, -0x7f, 0xd0, 0x3d, 0xd8, 0x65, 0x75, 0xfc, 0x69, 0xe0, 0x4f, 0x6f, 0xcc, 0xfe, 0x04, 0xfa, 0x4c, -0x37, 0x1d, 0x5d, 0xf7, 0xa7, 0x0b, 0x60, 0x37, 0x94, 0x18, 0xa6, 0x60, 0xdf, 0xc9, 0x67, 0x39, -0xee, 0xc2, 0xa7, 0x97, 0x2c, 0x53, 0x0a, 0x33, 0xe5, 0xfb, 0xc8, 0x0f, 0x0f, 0xb8, 0x83, 0xdd, -0x40, 0x76, 0x71, 0x6d, 0x9c, 0x2d, 0xd9, 0x50, 0xe6, 0xdd, 0x38, 0xd5, 0x01, 0x7a, 0xd6, 0xdb, -0x40, 0xa5, 0x15, 0x4a, 0xa6, 0xb2, 0xbb, 0x9a, 0xac, 0x1b, 0xc8, 0xb2, 0x63, 0x80, 0xdd, 0xb4, -0x28, 0x5b, 0xdc, 0xb7, 0xa5, 0x94, 0x5c, 0xec, 0x06, 0xf7, 0x0f, 0xbb, 0x01, 0x5b, 0x24, 0x59, -0x28, 0xf3, 0x6e, 0xc0, 0x74, 0x5a, 0x39, 0x1d, 0x3f, 0x68, 0x28, 0x31, 0x4d, 0x21, 0x0b, 0xce, -0xac, 0xcc, 0x5e, 0x2a, 0x97, 0xca, 0xab, 0x59, 0x9f, 0x1b, 0x46, 0x3a, 0x8c, 0x95, 0xa2, 0x53, -0x62, 0xff, 0xc2, 0xf9, 0x1c, 0x64, 0xe2, 0x93, 0x8d, 0x4f, 0xba, 0xaf, 0x2b, 0xc8, 0xf7, 0x76, -0xf9, 0x91, 0x61, 0x8d, 0xc3, 0xf5, 0xbd, 0xde, 0xfe, 0xab, 0xdb, 0x14, 0xd9, 0x68, 0x92, 0xa7, -0x07, 0xf2, 0x02, 0x99, 0xec, 0xa6, 0xb7, 0x3c, 0xc2, 0xcf, 0xd5, 0x4b, 0x88, 0x9f, 0x3c, 0xd9, -0xd6, 0x25, 0xef, 0x1b, 0x97, 0xb2, 0x18, 0xbf, 0x37, 0x27, 0xa4, 0x2c, 0x53, 0x52, 0x96, 0xb1, -0x94, 0xfd, 0x98, 0xb2, 0x4c, 0x49, 0x99, 0x39, 0x2e, 0x65, 0x11, 0x7e, 0xcf, 0x57, 0x52, 0xd6, -0x79, 0x76, 0x80, 0x33, 0xb0, 0x20, 0x38, 0x23, 0xb1, 0x37, 0x20, 0x07, 0x4b, 0x67, 0xb6, 0x81, -0x67, 0xd8, 0x00, 0xdb, 0xcd, 0xeb, 0xed, 0xff, 0xe2, 0x0c, 0xa3, 0xcc, 0x12, 0x8c, 0x0b, 0xdc, -0x01, 0xa4, 0x8b, 0x1d, 0x60, 0xf5, 0xab, 0xdb, 0x67, 0x88, 0x7c, 0x7b, 0x01, 0xc5, 0x73, 0xfe, -0x4a, 0xe6, 0x6f, 0x05, 0xd9, 0x36, 0xb2, 0xd9, 0xeb, 0xb4, 0x59, 0xc0, 0x19, 0xa7, 0xdc, 0x4c, -0x2c, 0x23, 0x23, 0x50, 0x33, 0x9e, 0xca, 0x66, 0x0d, 0x7f, 0xf1, 0x9c, 0xf7, 0x31, 0x13, 0x8c, -0x0b, 0xff, 0xae, 0xf7, 0x31, 0x03, 0x08, 0x56, 0xc8, 0xc0, 0x94, 0x42, 0x20, 0xcb, 0x53, 0xe2, -0x57, 0x7b, 0x8a, 0x03, 0x69, 0xb6, 0x14, 0x7b, 0x09, 0xf5, 0x21, 0x56, 0x3b, 0x06, 0x3d, 0xd6, -0x30, 0x03, 0xa1, 0x29, 0xc4, 0xdc, 0xb3, 0x6e, 0x98, 0x7b, 0xe5, 0x57, 0xe4, 0x9e, 0x35, 0x3e, -0xf7, 0xbc, 0x12, 0xdb, 0x44, 0x39, 0xf7, 0x2f, 0x8e, 0x2a, 0xb9, 0x67, 0x21, 0x47, 0x38, 0x3e, -0x2e, 0xbd, 0xc3, 0xdb, 0x3f, 0x7c, 0x45, 0xc1, 0x1d, 0xdd, 0x1c, 0xd6, 0x08, 0xb2, 0x05, 0x75, -0x80, 0xee, 0x36, 0x1c, 0xbd, 0x4d, 0x6a, 0xb3, 0xca, 0xd7, 0xe5, 0x79, 0xdc, 0x7f, 0xf9, 0x58, -0xd7, 0xb1, 0x2e, 0x41, 0x9d, 0x88, 0x55, 0x0b, 0xf1, 0x18, 0x2c, 0x09, 0x31, 0xa4, 0x60, 0x75, -0x98, 0x71, 0xbe, 0xc9, 0xb3, 0x61, 0xba, 0x3f, 0x57, 0x0c, 0x5a, 0x2d, 0x30, 0xfd, 0xf8, 0xa3, -0xb6, 0x14, 0xca, 0xd3, 0x66, 0x3f, 0x46, 0xb0, 0x6c, 0x15, 0xca, 0x84, 0xb0, 0xd0, 0x00, 0xd3, -0x05, 0xf4, 0xd7, 0x3c, 0xca, 0xda, 0xd3, 0xed, 0xeb, 0x12, 0xb5, 0x3f, 0xfd, 0x7d, 0x3b, 0xcc, -0x1e, 0x1e, 0x1e, 0xda, 0xdd, 0xd5, 0x7c, 0x40, 0x70, 0x1d, 0xde, 0x6f, 0xc0, 0x38, 0x6f, 0x1e, -0x70, 0xbe, 0xd0, 0xad, 0xd4, 0x17, 0xdb, 0x83, 0xa0, 0xf5, 0x61, 0x19, 0x1e, 0x05, 0xda, 0x2c, -0xc1, 0x63, 0x78, 0x88, 0x3b, 0xfb, 0xd8, 0x41, 0xeb, 0x2c, 0x84, 0xc6, 0x21, 0x26, 0x0b, 0x1e, -0xe6, 0xfa, 0xe5, 0x32, 0x90, 0xef, 0x42, 0xa9, 0x5c, 0x3f, 0x2a, 0x57, 0xd2, 0x2d, 0x27, 0xd8, -0x7b, 0x62, 0x5c, 0x3e, 0x59, 0xe6, 0xff, 0x37, 0xba, 0xff, 0xe4, 0xbe, 0x0b, 0xd2, 0x1e, 0x76, -0x27, 0x8c, 0xdb, 0x32, 0xd1, 0x94, 0x6c, 0x73, 0x20, 0xec, 0xc5, 0x50, 0x66, 0xe5, 0xcd, 0x29, -0x26, 0xaf, 0xf3, 0x79, 0xc8, 0xc5, 0x27, 0xcf, 0xf3, 0x1c, 0x4a, 0x49, 0x90, 0xb4, 0x4b, 0xc6, -0x54, 0xd2, 0x0e, 0xe4, 0x4b, 0x13, 0x65, 0xbe, 0x64, 0x76, 0x58, 0x9b, 0xf9, 0xac, 0xca, 0xf5, -0x9e, 0x87, 0xb8, 0x2b, 0xfe, 0x34, 0xc2, 0x8f, 0xa7, 0x11, 0xba, 0xe6, 0xbe, 0xec, 0x8e, 0xb8, -0x5f, 0x76, 0x45, 0x44, 0x4d, 0x08, 0xa5, 0x96, 0x10, 0x08, 0x54, 0x97, 0x32, 0xc1, 0x45, 0xe3, -0x4d, 0xae, 0xec, 0xab, 0xc2, 0x50, 0x97, 0xf5, 0x21, 0x94, 0x9c, 0x30, 0x2c, 0x1f, 0xc8, 0xc5, -0xf2, 0x48, 0x67, 0x56, 0x5b, 0x59, 0x2e, 0x0f, 0x8c, 0xe6, 0x82, 0x2d, 0x13, 0xe2, 0x58, 0xba, -0x99, 0x72, 0x2e, 0xf7, 0x3a, 0xc0, 0xc3, 0xfc, 0xce, 0xc4, 0x7c, 0x0c, 0x8e, 0x10, 0x6c, 0x3c, -0xc0, 0x6e, 0x0f, 0xc8, 0x60, 0x77, 0x2f, 0xf1, 0x2f, 0x0c, 0x34, 0xea, 0x8c, 0x8b, 0x41, 0x7d, -0xef, 0xce, 0x4c, 0xc8, 0xac, 0x10, 0x93, 0x4b, 0x2f, 0x65, 0xc2, 0xbd, 0x3d, 0xb0, 0x35, 0xb3, -0xc2, 0xd7, 0x5d, 0x1d, 0x09, 0xea, 0x7a, 0xbb, 0xfd, 0x83, 0x1e, 0xa7, 0x7f, 0xd1, 0xbd, 0x33, -0xc1, 0x65, 0x7b, 0x88, 0xbb, 0x08, 0xb9, 0xf8, 0x7b, 0x09, 0x6b, 0x3c, 0xd3, 0x3f, 0x8f, 0x6e, -0x8b, 0x34, 0x80, 0xbb, 0xd8, 0xfd, 0x72, 0x55, 0xb1, 0xbb, 0xd8, 0x59, 0x1c, 0x75, 0x20, 0x66, -0x72, 0x59, 0xa8, 0x0d, 0xf2, 0xaa, 0x1c, 0x88, 0xab, 0x5c, 0x0c, 0xc9, 0x13, 0x38, 0x8a, 0xe3, -0x1b, 0x8d, 0x93, 0x17, 0x8b, 0xe3, 0x2b, 0x8e, 0xc5, 0xb9, 0x97, 0xee, 0xb3, 0xf3, 0x88, 0x1a, -0xf6, 0x76, 0xb1, 0x3a, 0xa6, 0x23, 0xdd, 0xaf, 0x0e, 0xa4, 0xde, 0xdb, 0x08, 0x1b, 0xc0, 0x81, -0xbf, 0x5b, 0xc0, 0x29, 0xa6, 0x0a, 0xa5, 0xf7, 0x2e, 0x02, 0x1d, 0xfa, 0x17, 0x41, 0x2a, 0x38, -0x83, 0x5c, 0xef, 0xca, 0x07, 0xd8, 0x8d, 0xc3, 0x58, 0xdf, 0x42, 0x4f, 0x27, 0x52, 0xe9, 0xc5, -0xd1, 0xbb, 0x9f, 0x96, 0x41, 0xa1, 0x0d, 0x1c, 0x54, 0x0e, 0x95, 0x8f, 0x63, 0x6e, 0xae, 0xdb, -0xe9, 0xde, 0xb7, 0x29, 0xfa, 0x76, 0x04, 0x35, 0x10, 0x1b, 0x38, 0xe9, 0xce, 0x27, 0xbb, 0x8b, -0x6e, 0x98, 0xda, 0xf0, 0xaa, 0x95, 0x3b, 0xde, 0x6d, 0xc8, 0xe1, 0x79, 0x23, 0xec, 0x0c, 0x37, -0xf2, 0x46, 0xce, 0x30, 0x5b, 0x28, 0x11, 0xf8, 0xd2, 0x0b, 0x50, 0x87, 0xb8, 0x4b, 0x23, 0x39, -0xa2, 0x1d, 0x30, 0x7e, 0x5d, 0x7f, 0x57, 0x63, 0xea, 0xe3, 0x2b, 0xcc, 0xea, 0x06, 0xde, 0xd7, -0x75, 0xb2, 0x6b, 0x19, 0x88, 0xba, 0x27, 0xba, 0x2c, 0x49, 0xe8, 0x5b, 0x71, 0x72, 0x45, 0x3b, -0xd1, 0x66, 0x1a, 0xbb, 0x43, 0x6a, 0x3e, 0xf6, 0xb4, 0x9b, 0x90, 0xff, 0x3f, 0x47, 0xa9, 0x89, -0xaa, 0x83, 0xe0, 0x69, 0x81, 0xc2, 0x80, 0x86, 0xbe, 0x89, 0x6a, 0xfc, 0xad, 0x14, 0x66, 0xa3, -0x44, 0x93, 0xcb, 0x62, 0xcf, 0x33, 0xcc, 0x96, 0x4b, 0x19, 0x79, 0xda, 0xde, 0x02, 0x05, 0x6f, -0xbb, 0x11, 0x3a, 0xf7, 0xa6, 0x16, 0x68, 0x38, 0x52, 0x66, 0x98, 0x4d, 0xf7, 0xc9, 0xb8, 0x5f, -0x96, 0xbf, 0x4b, 0x7a, 0x19, 0x2e, 0xc5, 0xb7, 0x9f, 0x6e, 0xd9, 0x45, 0x9a, 0x2d, 0xcb, 0x6f, -0x01, 0xfb, 0xa6, 0x83, 0xb6, 0x72, 0x76, 0x53, 0x2f, 0xab, 0x25, 0xdd, 0x6a, 0xba, 0x71, 0xdf, -0xe1, 0xfd, 0x38, 0xda, 0x4c, 0xc7, 0x92, 0x3d, 0x81, 0xb9, 0x71, 0xd8, 0x16, 0x28, 0xb0, 0xc9, -0xbe, 0x0a, 0x94, 0x83, 0x9c, 0x6f, 0x0d, 0xa0, 0x74, 0x33, 0xc3, 0x5d, 0xe2, 0x7e, 0x05, 0x43, -0xbc, 0x64, 0x87, 0xfc, 0xf0, 0x00, 0x96, 0x84, 0x38, 0x1a, 0x8c, 0x22, 0xfe, 0x7c, 0xa5, 0x9f, -0x16, 0x48, 0xc6, 0xe4, 0xfc, 0xd2, 0xd2, 0x4f, 0xbb, 0x25, 0x53, 0xb2, 0x02, 0xeb, 0x1b, 0x09, -0x77, 0xc1, 0xbf, 0x23, 0xdf, 0xad, 0x6a, 0x80, 0x0f, 0x56, 0x19, 0x8b, 0xdf, 0x1a, 0x78, 0xeb, -0xe0, 0x5b, 0x07, 0x4b, 0xcf, 0x41, 0x5f, 0xe9, 0xa5, 0x6d, 0x80, 0x9c, 0x5b, 0x08, 0xd4, 0x7a, -0xb6, 0xf3, 0x93, 0xfc, 0x59, 0x4c, 0xca, 0x5b, 0x23, 0x7c, 0x1b, 0x35, 0xc3, 0x6d, 0xa3, 0x92, -0xde, 0xdd, 0x0e, 0x7e, 0x92, 0xc5, 0x0a, 0xeb, 0xf2, 0x93, 0x86, 0x4a, 0x87, 0x9c, 0xc8, 0x0d, -0x84, 0x20, 0x84, 0x80, 0x8f, 0x92, 0x35, 0x6a, 0xc3, 0x6c, 0xc4, 0x7a, 0x41, 0x1b, 0x4c, 0x57, -0x63, 0x3b, 0xcd, 0xc0, 0x36, 0xd0, 0x90, 0x6d, 0x7e, 0x49, 0x62, 0x77, 0x31, 0x6d, 0x59, 0x4e, -0xfd, 0x62, 0x12, 0x62, 0xc2, 0x2c, 0x7a, 0x31, 0x5d, 0x26, 0x8a, 0x97, 0xd9, 0xf2, 0x2d, 0x66, -0xc8, 0x63, 0x06, 0x73, 0xad, 0x30, 0xc4, 0x7a, 0xe4, 0x8c, 0x05, 0x8f, 0x04, 0xaf, 0xbc, 0x11, -0x66, 0x2d, 0xe8, 0x60, 0x54, 0xe1, 0xa4, 0x3a, 0x50, 0x29, 0x86, 0xd9, 0x88, 0xb1, 0xe9, 0x58, -0xfb, 0x22, 0xcf, 0x23, 0x01, 0x5d, 0xc7, 0x9d, 0x65, 0x1a, 0xe3, 0x4c, 0xba, 0x43, 0x48, 0x9c, -0xdf, 0x71, 0x6f, 0x99, 0x06, 0x5d, 0xbf, 0x10, 0x2f, 0x19, 0x18, 0xe6, 0xe2, 0xed, 0xe7, 0x63, -0xed, 0x57, 0x8d, 0xe3, 0x2e, 0xc3, 0xe3, 0x17, 0x07, 0x5b, 0x71, 0x10, 0x86, 0x0a, 0x96, 0xbb, -0x57, 0xc6, 0x1a, 0xe2, 0xcc, 0x2d, 0x38, 0x8a, 0x2f, 0x9a, 0x25, 0xa3, 0xd6, 0x58, 0x5c, 0xfa, -0xa9, 0x7b, 0x1c, 0xd6, 0x30, 0x2f, 0x17, 0xca, 0x1d, 0x5d, 0x54, 0x37, 0xea, 0x0b, 0x46, 0xa0, -0x36, 0x1b, 0x72, 0x19, 0xf8, 0xd1, 0x7e, 0x44, 0x74, 0x4b, 0xf7, 0xc6, 0xb8, 0x07, 0xaa, 0x1c, -0x83, 0x2d, 0xe0, 0x18, 0x74, 0xd1, 0xbd, 0x48, 0x61, 0xea, 0x31, 0x79, 0x58, 0x3e, 0xdd, 0x3a, -0x97, 0x8b, 0xb2, 0x5e, 0xde, 0x51, 0x87, 0xad, 0x04, 0xfb, 0x90, 0x0b, 0xf2, 0xa6, 0xd3, 0x0d, -0x5d, 0x25, 0x47, 0x1d, 0x47, 0xb1, 0x45, 0xf1, 0x4b, 0xae, 0x05, 0xbf, 0x16, 0xaa, 0xf0, 0x4b, -0xae, 0xad, 0x14, 0xf2, 0xc6, 0xd5, 0xa2, 0x9a, 0xd5, 0xc2, 0x17, 0xaf, 0x85, 0x3a, 0x4f, 0x55, -0x55, 0x8c, 0xd4, 0xc6, 0x27, 0x52, 0x1b, 0xe6, 0x58, 0x54, 0x50, 0x42, 0x94, 0x63, 0xd3, 0x51, -0xbd, 0x08, 0x1a, 0x8a, 0x5f, 0x3a, 0x3c, 0xdc, 0xef, 0xdd, 0x84, 0x98, 0xf3, 0x3a, 0x9d, 0x6e, -0xa7, 0xfc, 0xdd, 0xee, 0x64, 0xb7, 0xaa, 0xdc, 0xe4, 0xdd, 0x44, 0x25, 0xd1, 0x2d, 0x03, 0x5f, -0x8e, 0xb3, 0xe1, 0xad, 0x79, 0x2a, 0xdf, 0x75, 0xa5, 0x21, 0x15, 0x3b, 0x58, 0x5e, 0xc9, 0x58, -0x56, 0x59, 0xac, 0xac, 0xf2, 0xe1, 0x61, 0xaf, 0x77, 0x0b, 0x96, 0xe5, 0x21, 0x1c, 0x29, 0xdf, -0x9d, 0xec, 0x9e, 0x98, 0x9b, 0x98, 0xf6, 0x63, 0xce, 0xdd, 0x3e, 0x96, 0xb2, 0x87, 0x0b, 0xb0, -0x15, 0x78, 0x43, 0x0c, 0xe3, 0x7b, 0x58, 0x9b, 0xcc, 0xa0, 0xfc, 0xb0, 0x5f, 0x15, 0xc5, 0xca, -0x1b, 0xd9, 0xa3, 0xdc, 0xca, 0x44, 0x76, 0xbb, 0x5d, 0x4c, 0xc6, 0x2f, 0x44, 0x7d, 0x71, 0xa2, -0x59, 0x96, 0x37, 0x67, 0x20, 0x37, 0x29, 0x64, 0x5c, 0x9c, 0xf1, 0x12, 0x23, 0x88, 0x06, 0x03, -0xf5, 0xbc, 0x46, 0xc6, 0x49, 0x6b, 0x50, 0x6f, 0x4b, 0x13, 0xaa, 0x74, 0x76, 0xf8, 0xae, 0x19, -0xfc, 0xbc, 0x2f, 0x2a, 0x68, 0x07, 0xa3, 0xa2, 0xce, 0xe4, 0x11, 0xe6, 0x31, 0xfa, 0x1b, 0x62, -0xf7, 0x30, 0xea, 0x68, 0xbc, 0xa1, 0x99, 0x00, 0x93, 0x5b, 0x96, 0xbe, 0x36, 0xbf, 0xf6, 0xd8, -0x41, 0x1a, 0x9b, 0x6c, 0xa9, 0xee, 0x87, 0xa4, 0x2b, 0x6c, 0x84, 0xd8, 0x83, 0x9a, 0xa4, 0x97, -0xee, 0x2b, 0xae, 0x5c, 0x1f, 0xd7, 0x8b, 0xf3, 0x8c, 0x2c, 0xbe, 0x5f, 0x10, 0xcd, 0x46, 0x0b, -0xf0, 0x06, 0xe7, 0xe8, 0x8c, 0x92, 0x30, 0xea, 0xce, 0x16, 0xd5, 0x33, 0xcf, 0x02, 0xff, 0x9b, -0x73, 0x90, 0xec, 0x3f, 0x26, 0xa7, 0xa5, 0xdb, 0xa0, 0x71, 0xec, 0xe9, 0x40, 0xbe, 0x3f, 0x15, -0xf5, 0x6e, 0x94, 0xec, 0x70, 0x74, 0xd2, 0x6d, 0x3c, 0x50, 0x72, 0x81, 0xa5, 0xa8, 0xb0, 0xfe, -0x40, 0xbe, 0x4f, 0xd7, 0x96, 0xba, 0xf9, 0x35, 0xd9, 0x3f, 0x26, 0x8d, 0x0d, 0xd4, 0x18, 0x9f, -0xa5, 0x19, 0x9f, 0xc2, 0xfb, 0x43, 0xf9, 0xa6, 0xe9, 0x19, 0x33, 0xac, 0x5a, 0x4b, 0xb9, 0x59, -0x67, 0xf6, 0x3a, 0xa3, 0xce, 0x4e, 0x79, 0xdc, 0x62, 0x23, 0x4c, 0xb3, 0x3c, 0xc2, 0x58, 0x12, -0x47, 0x2f, 0x19, 0x57, 0xc7, 0x3d, 0x0e, 0x7f, 0xbe, 0xd1, 0xca, 0x5d, 0x34, 0x59, 0xb9, 0x4b, -0x74, 0x7f, 0x14, 0xb6, 0x4d, 0xc2, 0xa8, 0x61, 0xe4, 0xba, 0x1c, 0x55, 0xa8, 0x2d, 0x19, 0x54, -0xa3, 0xa3, 0x84, 0x89, 0x5b, 0xe9, 0xf0, 0x95, 0xa0, 0x34, 0x7f, 0x93, 0x3c, 0x8a, 0x0a, 0x0e, -0x94, 0x79, 0x79, 0x6a, 0x41, 0x86, 0x47, 0x83, 0x67, 0x1b, 0x8e, 0x0c, 0xd9, 0xd3, 0xc3, 0xdf, -0x72, 0x02, 0x2f, 0xa8, 0x28, 0x7c, 0x70, 0x11, 0x16, 0x4a, 0x77, 0xe7, 0xaa, 0xed, 0x66, 0xd8, -0x22, 0x66, 0x8d, 0xf9, 0xd6, 0x04, 0x3a, 0xe5, 0xdb, 0x54, 0x48, 0x1d, 0x2c, 0x61, 0x6e, 0x0d, -0xb3, 0xf1, 0xee, 0x92, 0xb5, 0x1e, 0x6a, 0x61, 0x83, 0x95, 0xe7, 0x89, 0xf7, 0x0b, 0x9c, 0xa1, -0x4c, 0xf0, 0xd0, 0x7d, 0x61, 0x08, 0x3f, 0xe3, 0xfc, 0x48, 0x59, 0x96, 0xc3, 0x74, 0xd7, 0xb2, -0x8d, 0xee, 0x7b, 0xcf, 0x03, 0xd2, 0x8c, 0x7c, 0xdd, 0x2f, 0xbc, 0xdc, 0xa8, 0x91, 0x73, 0x65, -0x37, 0xc8, 0x75, 0xc4, 0xf0, 0xe4, 0x9d, 0x23, 0xf5, 0xd2, 0xdd, 0x52, 0x66, 0x2d, 0xca, 0x0b, -0xde, 0x9c, 0x72, 0xe9, 0x8a, 0xf3, 0x59, 0xe9, 0x2a, 0x3e, 0xbd, 0xcb, 0xb9, 0x20, 0x97, 0xe3, -0x90, 0xfa, 0x42, 0x5c, 0x4e, 0xb1, 0xb4, 0xeb, 0xb1, 0x83, 0x1d, 0x5c, 0x2b, 0xb4, 0x49, 0x22, -0xc0, 0xcf, 0xd9, 0xad, 0x5e, 0xb0, 0xc1, 0x1e, 0x68, 0xae, 0x35, 0x31, 0xd7, 0xd4, 0x40, 0x61, -0x6d, 0x32, 0x73, 0x71, 0xfe, 0xe5, 0x62, 0x1b, 0x73, 0xe5, 0xb2, 0xbb, 0x5a, 0xb1, 0x95, 0xfc, -0x8d, 0xa2, 0xec, 0xca, 0x0b, 0x94, 0xd5, 0xe7, 0x32, 0xd7, 0x37, 0x03, 0x2e, 0xf6, 0x2e, 0xf5, -0x57, 0x8a, 0x8e, 0xa0, 0xd4, 0xdb, 0xe9, 0x77, 0x9b, 0xcc, 0xa0, 0x16, 0x9d, 0x9e, 0xa8, 0x7f, -0x86, 0x91, 0x5c, 0x05, 0x56, 0xfa, 0xcd, 0xa3, 0x7b, 0xb8, 0x59, 0xcd, 0xcd, 0xce, 0x4d, 0xa2, -0x31, 0x07, 0x7d, 0xd2, 0x2e, 0x31, 0x9b, 0xbd, 0xfb, 0xc4, 0xf4, 0x5c, 0x8a, 0x93, 0xca, 0x7c, -0x57, 0x45, 0x0d, 0x7b, 0xf7, 0x16, 0x7f, 0x2c, 0x5d, 0x51, 0xe4, 0x87, 0xd8, 0x2d, 0xad, 0xbe, -0x90, 0xb4, 0xb3, 0xd3, 0xaf, 0xf1, 0x44, 0x69, 0x06, 0x05, 0x7f, 0x5d, 0x24, 0x4b, 0xab, 0x3e, -0x66, 0xfa, 0xec, 0xa9, 0xcb, 0x7b, 0xac, 0x0e, 0x65, 0x7e, 0xc5, 0x8a, 0xb2, 0x20, 0xcd, 0x11, -0x9c, 0x1a, 0x7e, 0xda, 0xec, 0x40, 0x77, 0x2a, 0xb9, 0x3f, 0x9f, 0x4b, 0xf2, 0x1a, 0x83, 0x01, -0x31, 0x67, 0x0c, 0xd3, 0x08, 0xe2, 0x07, 0x15, 0x50, 0x9e, 0x98, 0xdf, 0x39, 0x84, 0x18, 0xe0, -0x14, 0x1b, 0xc5, 0x4f, 0x5d, 0x4d, 0x66, 0xb3, 0x98, 0x00, 0x43, 0x39, 0x44, 0x9f, 0xb9, 0xd2, -0x09, 0xc4, 0xdf, 0x29, 0xc4, 0xe5, 0x59, 0xa4, 0xe9, 0x8f, 0xa5, 0x13, 0x4c, 0xbe, 0xab, 0x30, -0x33, 0xa8, 0xf8, 0xbd, 0x58, 0x02, 0xa5, 0x3a, 0x0d, 0x6a, 0x33, 0xd2, 0x8b, 0x7c, 0xcb, 0x2e, -0x6c, 0xa2, 0x32, 0x10, 0xc7, 0xab, 0x3d, 0x5d, 0x81, 0x0e, 0x05, 0x4e, 0xd2, 0xa0, 0x4f, 0x7d, -0x76, 0xcc, 0x08, 0x4c, 0xde, 0x6c, 0x1b, 0x07, 0xa5, 0x5c, 0x8b, 0x5f, 0x12, 0x94, 0x6c, 0x74, -0x9b, 0xeb, 0xb1, 0x82, 0x1d, 0xf3, 0x5f, 0x40, 0xa9, 0x51, 0xe7, 0x65, 0xa9, 0xbf, 0xa8, 0x55, -0x52, 0x03, 0x5f, 0xa6, 0xa4, 0x3f, 0x6d, 0x31, 0x54, 0xae, 0xc7, 0x5a, 0x84, 0x03, 0xea, 0xdb, -0x1d, 0xc8, 0x8e, 0x94, 0x9c, 0xbe, 0xf8, 0xb4, 0x72, 0xbd, 0x88, 0xa4, 0xc8, 0x60, 0xf5, 0x99, -0x1d, 0x72, 0x7d, 0x79, 0xbd, 0x67, 0x25, 0x8e, 0x00, 0xef, 0x20, 0x54, 0xc0, 0x8d, 0x8c, 0xcd, -0x19, 0xeb, 0x78, 0x48, 0xce, 0x9b, 0x3b, 0x15, 0xe2, 0x5b, 0x69, 0x8c, 0xa3, 0x99, 0x8d, 0x6c, -0x0c, 0x1f, 0x22, 0x37, 0xc3, 0xc8, 0x59, 0xc3, 0x54, 0xe9, 0x90, 0x11, 0x30, 0xfc, 0x09, 0xe6, -0xdf, 0x9f, 0xc3, 0xf8, 0x82, 0xb4, 0x87, 0x62, 0xe4, 0x78, 0xa5, 0x81, 0x1c, 0x6c, 0x33, 0x69, -0x7f, 0xce, 0x2c, 0xe9, 0x40, 0x4e, 0x29, 0x4a, 0x7e, 0x18, 0x9b, 0xe6, 0x5f, 0x30, 0x8f, 0x41, -0x7f, 0xa6, 0x92, 0x63, 0x07, 0xe2, 0x4d, 0x27, 0x34, 0x49, 0x43, 0x74, 0xc7, 0xd4, 0x5d, 0x48, -0xc9, 0x06, 0xb5, 0xb1, 0x08, 0x40, 0xf5, 0xb1, 0xf2, 0xfd, 0x24, 0xc6, 0x3e, 0x26, 0x3c, 0xc4, -0x8d, 0xb0, 0x5e, 0x97, 0x47, 0xba, 0xe4, 0x63, 0x07, 0x11, 0xef, 0x7b, 0x46, 0x6f, 0x2b, 0x26, -0xb9, 0x9b, 0xb4, 0x45, 0xcc, 0x3d, 0x11, 0x03, 0x19, 0x84, 0x01, 0x51, 0xcf, 0xe6, 0xa8, 0xf6, -0xd0, 0x17, 0x6b, 0x17, 0xb5, 0x09, 0x42, 0x31, 0x18, 0xd0, 0x2a, 0xb9, 0xff, 0x12, 0x7d, 0xc7, -0x02, 0x3a, 0xc5, 0x77, 0x5c, 0xe4, 0x7f, 0x72, 0x28, 0xc4, 0x1b, 0xa7, 0xca, 0x75, 0xc4, 0x90, -0x8c, 0x56, 0x10, 0xb5, 0x04, 0xa5, 0x11, 0x7e, 0x72, 0x28, 0x5e, 0x06, 0xc3, 0x27, 0xc3, 0xa1, -0xdb, 0xd3, 0xd9, 0x92, 0x36, 0xb6, 0xcd, 0xb1, 0x3e, 0x79, 0x88, 0xd1, 0xac, 0x62, 0x92, 0x33, -0xfe, 0xc5, 0x10, 0x93, 0x7b, 0x17, 0x60, 0xb8, 0x86, 0xdd, 0xa3, 0xc5, 0x07, 0xd5, 0xb1, 0xd6, -0x8a, 0xa5, 0x08, 0xcc, 0xf7, 0x3c, 0xe2, 0x47, 0x8d, 0x5e, 0xda, 0x85, 0x14, 0xfd, 0xac, 0xd4, -0x17, 0x30, 0xe3, 0xef, 0x55, 0xbf, 0x89, 0x51, 0x9c, 0x4a, 0x3a, 0x8f, 0xf4, 0x7f, 0x35, 0xc7, -0x2d, 0x5d, 0x44, 0xaa, 0xbb, 0xc4, 0xa8, 0xee, 0x3c, 0x6b, 0xc9, 0x3a, 0x51, 0x4d, 0xfd, 0x1a, -0x73, 0x63, 0x33, 0x10, 0xc3, 0x19, 0x42, 0x85, 0xa1, 0x49, 0xba, 0x6a, 0x2c, 0x95, 0xb5, 0x0f, -0xba, 0x19, 0xa2, 0x15, 0xe1, 0xc6, 0xbc, 0x7a, 0x03, 0x1a, 0xc4, 0x71, 0xaf, 0x10, 0x35, 0xf0, -0x72, 0xcd, 0x46, 0xf2, 0x04, 0x1d, 0xbb, 0x2f, 0xac, 0x9b, 0xe6, 0xe5, 0xb0, 0x96, 0x20, 0x4d, -0x67, 0xbf, 0xed, 0xb6, 0xd4, 0x10, 0xa0, 0xee, 0xa1, 0xa5, 0x38, 0x0a, 0x6f, 0x3e, 0xcb, 0x74, -0x0f, 0x2d, 0xcd, 0x83, 0xa0, 0x7c, 0x57, 0xe0, 0x59, 0x11, 0x10, 0x90, 0x5b, 0x6b, 0x63, 0xda, -0x05, 0xab, 0x41, 0x86, 0x09, 0x34, 0x74, 0x87, 0x51, 0xdf, 0xac, 0xf3, 0x70, 0x5c, 0xd4, 0xfd, -0xf4, 0xf7, 0x6d, 0x58, 0xb2, 0xa8, 0xa6, 0x37, 0xe3, 0xc6, 0x1c, 0x72, 0x63, 0x67, 0x4c, 0x07, -0x30, 0xcb, 0x61, 0xb3, 0x12, 0xc3, 0x70, 0xa4, 0xb0, 0x07, 0xd4, 0x82, 0xc3, 0xb9, 0x01, 0xa9, -0xad, 0x08, 0x4e, 0x5d, 0x71, 0xe7, 0xe2, 0xef, 0x7f, 0x1e, 0x2a, 0xf9, 0x88, 0xbb, 0x88, 0xa5, -0xe6, 0x8b, 0x30, 0x71, 0x9f, 0x21, 0x4d, 0x17, 0xc1, 0x74, 0x77, 0x06, 0x40, 0xf3, 0x64, 0x2d, -0xc0, 0x30, 0xf3, 0xe9, 0x03, 0xa0, 0x36, 0xd5, 0x2e, 0x63, 0x6e, 0x2d, 0xf6, 0x85, 0x27, 0x6a, -0x0b, 0x99, 0x9b, 0xdd, 0x93, 0x55, 0x9b, 0xc9, 0xdc, 0x3c, 0xd2, 0xf1, 0x49, 0xe6, 0x52, 0xf9, -0x61, 0x62, 0x33, 0xf6, 0x05, 0xa0, 0x5b, 0xe4, 0x59, 0x88, 0x06, 0xe3, 0x19, 0x6a, 0x81, 0xaf, -0xc0, 0xd0, 0x64, 0x16, 0x42, 0x3d, 0xaa, 0xbb, 0x36, 0x43, 0x88, 0xc5, 0x48, 0x46, 0xff, 0xa9, -0x5a, 0xe4, 0x0f, 0x18, 0x63, 0x01, 0x0b, 0x49, 0x0d, 0x80, 0x6a, 0x3e, 0x86, 0x44, 0x31, 0x24, -0xcc, 0x42, 0xbe, 0x86, 0x50, 0x6c, 0xa9, 0x9d, 0xce, 0xdc, 0xb7, 0xe2, 0xd7, 0xcb, 0x4a, 0xc9, -0xb7, 0xa0, 0xfb, 0xe7, 0xcc, 0x95, 0xe6, 0x07, 0xed, 0x25, 0x11, 0x54, 0xaf, 0x32, 0xdf, 0x6d, -0x18, 0x1f, 0x4b, 0x55, 0xbb, 0x45, 0x50, 0xf3, 0x2c, 0xe4, 0x0e, 0xd4, 0xda, 0xf2, 0x6b, 0xe5, -0x1a, 0xde, 0x8e, 0x5f, 0x77, 0xe2, 0xd7, 0x53, 0xf8, 0xb5, 0x81, 0x85, 0x7c, 0x1d, 0xbf, 0xfa, -0x6b, 0x21, 0x69, 0xad, 0x08, 0x49, 0x65, 0x2c, 0xa4, 0x84, 0x66, 0x1d, 0x6a, 0x3b, 0x98, 0xdb, -0x84, 0x18, 0xb1, 0x2b, 0xa5, 0x1b, 0x30, 0xe6, 0x09, 0xa5, 0x74, 0x01, 0xdd, 0x72, 0xe9, 0x77, -0x61, 0xe9, 0x6d, 0x98, 0x76, 0x1b, 0xf3, 0x19, 0x31, 0xfc, 0x00, 0xe6, 0x76, 0x0c, 0x43, 0xfa, -0x59, 0x88, 0x05, 0x73, 0xe8, 0x50, 0x4a, 0x37, 0xa3, 0xdb, 0x5a, 0x0b, 0x9a, 0x4a, 0x11, 0x34, -0x32, 0x6c, 0xd6, 0x00, 0x4c, 0xd0, 0xd6, 0x83, 0xe6, 0x04, 0xf3, 0x4d, 0xc3, 0xbc, 0x2c, 0xf8, -0x6d, 0x07, 0xf9, 0x36, 0xe6, 0xe2, 0xb7, 0xda, 0x5a, 0x07, 0xfb, 0xe2, 0x45, 0x98, 0x52, 0x95, -0xb2, 0x5d, 0x88, 0xf3, 0x27, 0x98, 0x6b, 0xb6, 0x1f, 0x26, 0x0c, 0x8b, 0xc0, 0x1d, 0x61, 0xbe, -0x4a, 0xcc, 0xdd, 0x8b, 0x79, 0x15, 0xb0, 0xd4, 0x53, 0xf1, 0xdb, 0x3b, 0x98, 0xd7, 0x59, 0xe6, -0xdb, 0x44, 0xfc, 0xa6, 0x36, 0x9b, 0xb9, 0xed, 0x98, 0x6f, 0xb0, 0x1e, 0x26, 0xe4, 0x33, 0xdf, -0x46, 0x8c, 0xb7, 0x3b, 0x96, 0xc7, 0xc6, 0x2d, 0xf8, 0x2d, 0x8c, 0xdf, 0xd6, 0xea, 0x22, 0x5d, -0x40, 0xbc, 0x6c, 0xc2, 0x13, 0xa2, 0xc3, 0x90, 0xc3, 0x9d, 0x15, 0x2c, 0xa0, 0xee, 0x8d, 0xe0, -0xd7, 0xad, 0xd8, 0xdf, 0x92, 0x9d, 0xdb, 0xb9, 0xb3, 0x3e, 0x6c, 0xa3, 0x09, 0xdd, 0x9e, 0x08, -0xc6, 0x89, 0xde, 0xed, 0x50, 0xfc, 0xed, 0xd4, 0xb6, 0x8c, 0xa3, 0xa8, 0x85, 0x58, 0x9c, 0xba, -0xbb, 0x31, 0x8c, 0x3b, 0xcf, 0xdc, 0x35, 0x4c, 0x3f, 0x55, 0x1b, 0xb6, 0x2b, 0x7e, 0xb7, 0x50, -0x8e, 0x3a, 0x4e, 0x7e, 0x50, 0x3b, 0x3a, 0x9f, 0xea, 0x8b, 0x62, 0x2f, 0xd7, 0x0a, 0x2e, 0xe7, -0x06, 0xfc, 0x6e, 0x46, 0x99, 0x30, 0x95, 0x6e, 0x5d, 0xad, 0x41, 0x3e, 0x3b, 0x21, 0x4b, 0xb8, -0x2e, 0x2e, 0x86, 0xaa, 0xbf, 0xd5, 0x00, 0x1a, 0xee, 0x4a, 0x62, 0x3a, 0xcd, 0xc5, 0xc4, 0x74, -0x9a, 0x93, 0x0c, 0x22, 0x4d, 0x1e, 0xea, 0xd8, 0xc2, 0x2a, 0x4a, 0xa3, 0x19, 0x64, 0x30, 0x8d, -0x8c, 0x49, 0xb3, 0x67, 0x4c, 0x9a, 0xe7, 0xc6, 0xd4, 0x64, 0x84, 0xa5, 0x7a, 0x82, 0x52, 0xf1, -0xfc, 0x98, 0x54, 0x2b, 0xc7, 0xa4, 0x1a, 0x53, 0x7f, 0x8a, 0x89, 0x61, 0x75, 0xdf, 0x72, 0xf3, -0x9a, 0x31, 0x69, 0x7c, 0x63, 0xd2, 0xb8, 0x62, 0xd0, 0xf1, 0x1a, 0x05, 0xba, 0x3c, 0xaa, 0x11, -0xaf, 0x1d, 0x93, 0x66, 0xd2, 0x98, 0x34, 0xfa, 0x78, 0x39, 0x94, 0x4e, 0x2b, 0xa7, 0x4b, 0x1a, -0x66, 0xb5, 0x1a, 0x66, 0xee, 0x4f, 0xc6, 0xc0, 0x2f, 0x87, 0xbd, 0x4d, 0x5a, 0x74, 0xd2, 0x10, -0xdd, 0x2d, 0x66, 0x4b, 0xa2, 0xf9, 0x41, 0x8a, 0x43, 0xa3, 0x91, 0x9c, 0x13, 0xbb, 0x53, 0x3e, -0x9b, 0xc5, 0xec, 0x95, 0x67, 0x57, 0x93, 0xb6, 0xc9, 0xb7, 0x6c, 0xdd, 0x20, 0xb6, 0x5a, 0x78, -0x56, 0x89, 0xdb, 0xc5, 0x72, 0x5d, 0x6e, 0x28, 0x31, 0xf4, 0xa0, 0x8c, 0xb9, 0x03, 0x9a, 0x59, -0x68, 0x33, 0x86, 0x4e, 0xfa, 0x92, 0x92, 0xd2, 0xb1, 0xa4, 0x8d, 0xa8, 0xef, 0xc7, 0x21, 0x0c, -0x4a, 0x42, 0x98, 0xa5, 0x2a, 0x50, 0xca, 0xb5, 0x5b, 0x12, 0xf3, 0x32, 0xf4, 0x2b, 0xf3, 0x9b, -0x5f, 0x02, 0x4b, 0x9a, 0xf0, 0xd8, 0x8d, 0x72, 0x53, 0x9f, 0x23, 0xc8, 0xd4, 0xa7, 0x84, 0x92, -0xbb, 0xe8, 0x1e, 0x5e, 0x6d, 0x2c, 0x3f, 0xf5, 0x11, 0x16, 0x7e, 0x48, 0x86, 0x8e, 0x66, 0x3e, -0x6f, 0x80, 0x07, 0x2d, 0x8b, 0xb9, 0x4d, 0x86, 0x47, 0xfd, 0x54, 0xce, 0xd8, 0x1c, 0x36, 0x28, -0xe1, 0xdd, 0x5f, 0x89, 0x1f, 0x39, 0x8f, 0x3a, 0x56, 0xda, 0x02, 0x76, 0x17, 0xb0, 0x95, 0xee, -0x38, 0xab, 0x0a, 0xeb, 0xd8, 0x5a, 0x12, 0x71, 0x29, 0x94, 0xc7, 0x8b, 0x84, 0xd2, 0xcd, 0xaf, -0xa1, 0x4c, 0x5a, 0x24, 0x8f, 0x2e, 0x86, 0x92, 0x6f, 0xb4, 0x80, 0x75, 0xb4, 0xf6, 0x6a, 0x23, -0xa6, 0x17, 0xbe, 0x02, 0x93, 0xcf, 0xa0, 0x5c, 0xa7, 0x8b, 0xd7, 0x9e, 0x77, 0xb2, 0x5e, 0xa1, -0xfa, 0x44, 0x86, 0x50, 0x75, 0xe6, 0x46, 0xe5, 0xaa, 0x06, 0xb1, 0x5c, 0x87, 0x52, 0xae, 0x43, -0x2e, 0x37, 0x67, 0x4c, 0xa9, 0xaa, 0xe7, 0x58, 0x7a, 0xe1, 0x2b, 0x70, 0xfe, 0xec, 0x0d, 0xcb, -0x6d, 0xa3, 0xda, 0xaa, 0x82, 0x58, 0x0b, 0x2a, 0x57, 0x17, 0xcf, 0x6f, 0x01, 0x0b, 0xaf, 0xf9, -0x4a, 0xda, 0xd3, 0xb1, 0x98, 0xf9, 0x0a, 0xe4, 0xd6, 0x9c, 0xb1, 0x39, 0x64, 0x2b, 0xe1, 0xe9, -0x5f, 0x89, 0x73, 0x96, 0x07, 0x7f, 0x51, 0x9e, 0xbb, 0xe0, 0xcf, 0x7e, 0x9b, 0x6e, 0xf1, 0xec, -0x8a, 0xe5, 0xc1, 0x1f, 0x53, 0xc2, 0x07, 0x13, 0xfa, 0x4f, 0x23, 0x74, 0xc9, 0xfd, 0x87, 0xef, -0x67, 0xbf, 0xbb, 0xd8, 0xef, 0x73, 0x4a, 0xcc, 0x5f, 0xde, 0xde, 0x00, 0x13, 0xe0, 0x39, 0x16, -0xf6, 0x04, 0xa5, 0x62, 0xe1, 0x72, 0x79, 0xa9, 0xfa, 0x1d, 0xf0, 0x9c, 0xa8, 0x55, 0xea, 0xaf, -0x67, 0x71, 0xda, 0x94, 0x74, 0xcd, 0xc4, 0x31, 0x0d, 0x50, 0x15, 0xd1, 0x45, 0x64, 0x9c, 0xf3, -0xf3, 0xa7, 0x38, 0xa0, 0x37, 0x0e, 0x89, 0x57, 0x89, 0x57, 0x26, 0x58, 0xa1, 0x17, 0xdf, 0x33, -0x46, 0x31, 0x29, 0x53, 0x2f, 0x6f, 0x55, 0x62, 0x18, 0xaf, 0xcb, 0x29, 0x0d, 0x73, 0xda, 0x15, -0xcf, 0x49, 0x86, 0x08, 0xb8, 0xab, 0x09, 0x3d, 0x7e, 0x07, 0xb0, 0x5a, 0x20, 0xdf, 0x8e, 0x41, -0x9c, 0xe6, 0xd9, 0x01, 0xfb, 0x63, 0x70, 0x07, 0x39, 0x21, 0x1c, 0x87, 0x9b, 0xb5, 0x1b, 0xb7, -0x37, 0x9e, 0x1a, 0xb8, 0x9d, 0xc4, 0x71, 0xb8, 0x1d, 0xe3, 0x6b, 0x7b, 0x83, 0x54, 0xdd, 0xf1, -0x38, 0xa9, 0xf2, 0x3d, 0x63, 0x88, 0xcd, 0xa8, 0xb0, 0x6a, 0x5c, 0xac, 0xda, 0xf1, 0x39, 0x21, -0x7c, 0xab, 0xc7, 0xc5, 0x99, 0x91, 0xd8, 0xaa, 0x6c, 0x7d, 0x13, 0xd3, 0xb0, 0x16, 0xcf, 0xf0, -0x60, 0xab, 0x06, 0xf4, 0x0a, 0x6c, 0x19, 0x0c, 0x0a, 0xe0, 0x52, 0x15, 0xbf, 0x86, 0xc1, 0x0a, -0x48, 0x5d, 0x06, 0x99, 0xb6, 0x98, 0x1e, 0xd2, 0x78, 0x83, 0x5e, 0xa2, 0xbf, 0x9e, 0x5a, 0xe1, -0x00, 0xa6, 0xd3, 0x2b, 0xfc, 0x41, 0x8f, 0x18, 0x6d, 0x23, 0xac, 0x22, 0xd7, 0xd5, 0x18, 0x5c, -0xce, 0x8d, 0x62, 0x32, 0xf1, 0x5c, 0x79, 0x95, 0x84, 0xc5, 0x7e, 0x82, 0xc1, 0x63, 0x88, 0x41, -0x7a, 0x83, 0x92, 0xa8, 0x57, 0x5c, 0x5f, 0x8e, 0xc8, 0xd2, 0xa5, 0xe6, 0xc4, 0x4a, 0x59, 0xfe, -0x15, 0xa5, 0xe4, 0x33, 0x3c, 0xe5, 0x4e, 0xa1, 0xb8, 0x2b, 0xd1, 0x6f, 0x64, 0xfe, 0x49, 0x63, -0xda, 0x96, 0xc2, 0x75, 0x9e, 0xe7, 0x51, 0xae, 0xd3, 0xe0, 0xe8, 0x69, 0x37, 0xac, 0x2e, 0xbe, -0x00, 0x05, 0x31, 0x3d, 0xce, 0xc8, 0x34, 0xa6, 0xcb, 0xb9, 0xf1, 0x3b, 0x91, 0x33, 0x63, 0xb3, -0xdf, 0xca, 0xad, 0xde, 0xde, 0xf1, 0xf7, 0x7c, 0x5f, 0xad, 0x53, 0x66, 0xc8, 0x6d, 0xf1, 0x3d, -0x19, 0x8a, 0x84, 0x3a, 0xb2, 0x8b, 0x24, 0x54, 0x76, 0x47, 0x76, 0x39, 0x54, 0xdb, 0x3c, 0x50, -0x67, 0xf2, 0x5a, 0xcc, 0x60, 0x18, 0x95, 0x52, 0x2d, 0xb2, 0x94, 0x0a, 0x29, 0xab, 0xb1, 0x95, -0xd6, 0xf9, 0xb5, 0xf6, 0x26, 0x48, 0xcf, 0x71, 0xc3, 0x3a, 0xf4, 0x6d, 0xf2, 0x6b, 0xf3, 0x9a, -0x20, 0x23, 0xa7, 0x1c, 0x36, 0x61, 0x59, 0xd5, 0x2f, 0x7c, 0x8c, 0x7a, 0x3d, 0xa4, 0xd4, 0xca, -0x52, 0xe8, 0x99, 0x79, 0xa5, 0xc3, 0x52, 0x83, 0x79, 0x96, 0xc0, 0x7f, 0xd0, 0x3d, 0x18, 0x35, -0x39, 0xfe, 0x30, 0xf0, 0x87, 0xd7, 0x67, 0x7e, 0x04, 0x7d, 0x33, 0x3f, 0xeb, 0x03, 0x21, 0x07, -0x32, 0x03, 0x7a, 0x9b, 0x95, 0x4f, 0xb3, 0x01, 0x71, 0x67, 0xe7, 0x76, 0xc8, 0xac, 0x5c, 0x8f, -0xa1, 0x42, 0x20, 0xad, 0x77, 0x3b, 0xe8, 0x03, 0xba, 0xf8, 0xae, 0x8c, 0x4d, 0x58, 0xfa, 0x76, -0x48, 0xf7, 0x0b, 0x62, 0xa1, 0xf0, 0x10, 0xa4, 0x0b, 0xf6, 0x02, 0x10, 0x9a, 0x60, 0xb5, 0xb0, -0x08, 0xec, 0xb2, 0x86, 0x7f, 0xb5, 0xc2, 0xd7, 0x55, 0xd3, 0x29, 0xaa, 0xdb, 0xa0, 0x1d, 0xfa, -0xb6, 0x83, 0xba, 0xfe, 0x98, 0x92, 0x36, 0x07, 0xd2, 0xbd, 0x9b, 0x30, 0xe7, 0x74, 0x96, 0x73, -0x36, 0x96, 0x17, 0xcf, 0x13, 0x43, 0xb3, 0x2b, 0xb1, 0x2d, 0x82, 0x7c, 0x2f, 0xea, 0xab, 0xd2, -0x02, 0x53, 0x85, 0xf3, 0x59, 0xd4, 0x31, 0x9f, 0x87, 0xea, 0x00, 0x24, 0xff, 0x82, 0xea, 0x82, -0x79, 0x67, 0x10, 0x26, 0x51, 0xb6, 0x46, 0xa9, 0x2b, 0x79, 0x93, 0x30, 0x3b, 0x08, 0xc6, 0x16, -0xa8, 0x64, 0xbb, 0x5f, 0x78, 0x92, 0x80, 0x77, 0x86, 0x5b, 0x74, 0x06, 0x38, 0x12, 0x9e, 0xf6, -0xc3, 0x4c, 0x80, 0xad, 0xa2, 0x7a, 0xda, 0xfd, 0xb0, 0xd5, 0x17, 0xae, 0xee, 0x0e, 0xe9, 0x76, -0x86, 0xfd, 0xc7, 0x28, 0x0f, 0x1b, 0xc2, 0x08, 0x8b, 0x6c, 0x4d, 0xd0, 0x0b, 0xd6, 0x80, 0x16, -0xdf, 0xbb, 0xc0, 0xe1, 0xcf, 0xc4, 0x76, 0x72, 0xe7, 0x2d, 0x06, 0x1d, 0xe2, 0xdb, 0x4a, 0x73, -0xb5, 0xf6, 0x45, 0x90, 0x8a, 0xf8, 0x77, 0x18, 0xa7, 0xc2, 0x4a, 0xbf, 0xda, 0x98, 0xc3, 0x0d, -0x33, 0x3e, 0xbd, 0x0e, 0x7f, 0x1d, 0xa8, 0xff, 0x4a, 0x04, 0x21, 0x57, 0x27, 0x24, 0x69, 0xc2, -0xc4, 0xda, 0x75, 0x74, 0xef, 0xf0, 0x08, 0x4a, 0xf0, 0x57, 0x85, 0xa4, 0x13, 0xdd, 0x1e, 0xd2, -0x91, 0xf7, 0x79, 0x92, 0x48, 0xc7, 0xc6, 0xbc, 0x2a, 0xf3, 0xcd, 0xa0, 0x97, 0x77, 0x31, 0xd8, -0xc0, 0x66, 0x03, 0xbb, 0x7c, 0xcf, 0x2a, 0x6a, 0x6e, 0x32, 0xe4, 0x53, 0xb0, 0x24, 0x4e, 0xb9, -0x71, 0xb5, 0xbb, 0x72, 0x3d, 0xe9, 0x0d, 0x36, 0x2a, 0x8b, 0x66, 0x31, 0x0b, 0x90, 0x36, 0xec, -0x62, 0xf2, 0xc9, 0x6e, 0xcc, 0xeb, 0xa9, 0x93, 0xab, 0x02, 0x0d, 0x38, 0x92, 0xf0, 0x1b, 0x5f, -0xaa, 0xfd, 0x04, 0x79, 0x12, 0xbd, 0xcf, 0xb0, 0xbb, 0xdc, 0x8b, 0xc1, 0x1e, 0xbf, 0x5d, 0xd5, -0x06, 0xae, 0x58, 0xfe, 0xf7, 0xf2, 0xce, 0xc0, 0x98, 0x7c, 0xf3, 0x6d, 0x04, 0x7d, 0x11, 0xe6, -0x5b, 0x44, 0xab, 0x9c, 0xa2, 0x16, 0xf3, 0xb5, 0x63, 0xae, 0x2e, 0x25, 0xd7, 0x8b, 0x4a, 0xae, -0x67, 0xb1, 0x67, 0xbb, 0x43, 0x1c, 0xe6, 0x9b, 0xdf, 0xc1, 0xd9, 0xca, 0xc0, 0xce, 0x6e, 0xc2, -0x2b, 0xa2, 0xb5, 0x52, 0x31, 0x97, 0x85, 0xe4, 0xb3, 0x10, 0x3b, 0x8b, 0x53, 0x84, 0xfe, 0x02, -0x31, 0x83, 0x85, 0xe4, 0xb3, 0x10, 0x3b, 0x8b, 0x53, 0x44, 0xb0, 0x61, 0xfd, 0xad, 0x87, 0x0f, -0x1c, 0x3e, 0x80, 0xb8, 0x6c, 0x44, 0xd8, 0xac, 0x89, 0xf0, 0xe1, 0x77, 0x11, 0xc7, 0xc3, 0x0a, -0x8c, 0xe3, 0xa8, 0xea, 0xc6, 0x18, 0xad, 0x88, 0x11, 0x6b, 0xd5, 0x2a, 0x6c, 0x83, 0x76, 0xdb, -0x6c, 0x70, 0x21, 0x14, 0x82, 0xc0, 0x3b, 0x1d, 0x6e, 0x87, 0xc7, 0x11, 0x00, 0x29, 0xe8, 0x71, -0x06, 0xa2, 0xf2, 0x7d, 0x8a, 0x54, 0xb6, 0xbc, 0x66, 0x8e, 0xf9, 0x39, 0xe4, 0x35, 0xf2, 0x52, -0xf2, 0x77, 0xb3, 0x32, 0x18, 0x7d, 0x12, 0x34, 0xf2, 0x7c, 0xf7, 0xae, 0x70, 0x5d, 0x2e, 0x85, -0x6f, 0x88, 0xca, 0x31, 0x95, 0x34, 0x18, 0x67, 0xe3, 0xf3, 0xf2, 0x0d, 0x85, 0x62, 0x2a, 0x61, -0x58, 0x9a, 0x71, 0x72, 0x95, 0x3f, 0x0d, 0x75, 0x46, 0xcd, 0x58, 0xfc, 0x2b, 0xd8, 0x39, 0xae, -0x60, 0x67, 0x28, 0x86, 0xf3, 0x71, 0xd8, 0xd4, 0x51, 0x1e, 0x23, 0x27, 0x11, 0x9f, 0x30, 0x72, -0x49, 0x49, 0x73, 0x5e, 0xc1, 0x5b, 0x7e, 0x1e, 0xed, 0x1e, 0x00, 0x3b, 0x57, 0x64, 0x83, 0x3c, -0x6c, 0x73, 0x8d, 0xbd, 0x05, 0x0a, 0x5b, 0x21, 0x5f, 0xab, 0xac, 0x84, 0x54, 0xcb, 0xf5, 0xca, -0x71, 0xc0, 0xba, 0xbc, 0x16, 0xa0, 0xbb, 0x1e, 0x27, 0x62, 0xcc, 0xe9, 0x4a, 0xcc, 0x19, 0x37, -0x88, 0xb7, 0x49, 0x84, 0x91, 0xa7, 0xb1, 0xec, 0x0a, 0xec, 0xc7, 0x88, 0x43, 0xb3, 0xe3, 0x8f, -0x03, 0x7f, 0x3c, 0x54, 0x7e, 0x1e, 0xfa, 0xfe, 0x78, 0x01, 0x5c, 0xb6, 0x0e, 0xd2, 0x22, 0x38, -0xd1, 0xf6, 0x10, 0x77, 0x9e, 0xab, 0x63, 0x3e, 0x8e, 0x5b, 0xe4, 0x7c, 0x9e, 0x6b, 0x0c, 0xf2, -0x36, 0x07, 0x17, 0x44, 0xc8, 0xeb, 0x38, 0xc2, 0x36, 0xdd, 0x88, 0x5d, 0x13, 0x52, 0xcb, 0xb9, -0x5f, 0x75, 0xe8, 0x1c, 0xa0, 0x5d, 0x08, 0x5c, 0x6b, 0xc2, 0xca, 0xc2, 0x2f, 0x6f, 0xb4, 0xb2, -0x40, 0xdf, 0x71, 0x0c, 0xa8, 0x40, 0x4d, 0x9d, 0x6e, 0x97, 0xc5, 0x47, 0xe1, 0xc9, 0x56, 0xb6, -0x5e, 0x4e, 0xb3, 0x2c, 0x76, 0x6c, 0x55, 0x97, 0xc1, 0x0c, 0xeb, 0x76, 0x3e, 0x0f, 0x56, 0x3f, -0xed, 0x0e, 0x71, 0xbc, 0x78, 0x16, 0x48, 0x1f, 0x4a, 0xa3, 0x2f, 0x36, 0x33, 0x6c, 0xb2, 0x71, -0x31, 0x4a, 0x18, 0x0c, 0x0f, 0x86, 0x47, 0x57, 0x3d, 0x69, 0x37, 0x0c, 0x8e, 0xb4, 0x02, 0xcd, -0x5c, 0x19, 0xe8, 0xc6, 0xcf, 0x29, 0xb0, 0xc9, 0x58, 0x6a, 0x9c, 0x02, 0xeb, 0xac, 0x98, 0xbf, -0x72, 0x6b, 0xb0, 0x4c, 0xe9, 0x8f, 0xb1, 0x76, 0xae, 0xc9, 0xe5, 0xdf, 0x89, 0xbe, 0xf3, 0x88, -0xc0, 0xbb, 0xc2, 0x94, 0x13, 0x86, 0x04, 0xcb, 0xe5, 0x7b, 0x34, 0xe5, 0x58, 0x72, 0x9b, 0x5b, -0x95, 0xbe, 0xa0, 0x94, 0x87, 0xb1, 0xe6, 0x07, 0x91, 0x3b, 0x89, 0xed, 0xbd, 0x2b, 0xfd, 0x19, -0x08, 0x53, 0xf0, 0xf0, 0x2b, 0x38, 0x5e, 0x4d, 0x18, 0xd5, 0x72, 0x44, 0x27, 0xbb, 0x1d, 0x98, -0xf5, 0xd7, 0x19, 0xae, 0xca, 0xf5, 0x66, 0xc7, 0xa8, 0x9f, 0xee, 0x46, 0xa6, 0x5c, 0x0c, 0x4e, -0xa1, 0xcc, 0x52, 0x12, 0x02, 0x51, 0x6f, 0x19, 0x3c, 0x3c, 0x70, 0x64, 0xed, 0xae, 0x48, 0xb3, -0x7a, 0x53, 0xb4, 0xa6, 0xbb, 0x6a, 0x15, 0x69, 0x5c, 0xcd, 0xe7, 0x8e, 0x3e, 0x82, 0xb4, 0x31, -0xff, 0xc8, 0xca, 0x63, 0xcf, 0x43, 0xcd, 0xaf, 0xf7, 0x37, 0x6b, 0x1e, 0x5f, 0x7d, 0xe4, 0x79, -0x68, 0xac, 0x5a, 0x21, 0x68, 0xac, 0x9c, 0x67, 0x45, 0x73, 0x17, 0x4a, 0xd9, 0xab, 0xa9, 0xae, -0xc4, 0x27, 0x90, 0x1e, 0xcc, 0x40, 0x6b, 0x02, 0x56, 0x4c, 0xe3, 0x68, 0xe3, 0x62, 0xed, 0xa3, -0xb4, 0x4e, 0x03, 0xc6, 0xcb, 0x44, 0xb9, 0x24, 0x6b, 0x2c, 0xd6, 0xaf, 0xb8, 0xd9, 0xcc, 0xe0, -0x0e, 0xba, 0x11, 0x96, 0x3b, 0x4a, 0xbc, 0x8b, 0xdd, 0x46, 0x4b, 0xfb, 0x30, 0x90, 0x2e, 0xfc, -0x3a, 0x2d, 0xb6, 0x7d, 0x40, 0x63, 0x59, 0x04, 0x59, 0x62, 0xaa, 0x6b, 0xc0, 0x0f, 0x49, 0xa4, -0xcd, 0xb9, 0xd1, 0x9f, 0xa1, 0xc8, 0xfc, 0xc9, 0x4a, 0x4c, 0x0d, 0x1d, 0xc6, 0xf2, 0x6b, 0x9c, -0x4e, 0xc4, 0x89, 0xba, 0x95, 0x6b, 0xe7, 0x4a, 0x2e, 0x40, 0x87, 0xb2, 0x8e, 0x50, 0xe8, 0x71, -0xfa, 0x0d, 0xb6, 0x46, 0xc8, 0x84, 0x30, 0x8e, 0x79, 0x1d, 0x86, 0xd9, 0xb4, 0xce, 0x63, 0x54, -0x13, 0xef, 0xc5, 0x18, 0xc4, 0x93, 0xb7, 0xa2, 0xa4, 0x98, 0x97, 0x3f, 0x15, 0xb4, 0xee, 0x7d, -0x38, 0x16, 0x69, 0x0c, 0xda, 0xea, 0x88, 0x9d, 0xee, 0xe9, 0xd6, 0x56, 0x87, 0xdb, 0xb8, 0x8d, -0x07, 0x62, 0x75, 0xa0, 0xd6, 0xa2, 0xdd, 0x14, 0xf8, 0x0e, 0x8f, 0x8f, 0xa7, 0xac, 0x21, 0xa4, -0x53, 0xcb, 0x60, 0xdb, 0x5f, 0xa1, 0xef, 0x38, 0x92, 0xa9, 0x83, 0xb7, 0x0c, 0xae, 0x3a, 0x13, -0x8e, 0xed, 0x8e, 0x71, 0x2f, 0x02, 0x3e, 0xd6, 0x8e, 0xc5, 0x17, 0x38, 0xba, 0x83, 0x77, 0xbe, -0x92, 0xd2, 0x8a, 0xfe, 0xf6, 0xe2, 0xb3, 0x12, 0xdd, 0xc4, 0xd9, 0x9d, 0x47, 0xb0, 0xbc, 0x1c, -0xe4, 0xde, 0xdf, 0x56, 0x15, 0x1e, 0xad, 0xc9, 0x48, 0x0f, 0xc2, 0xa8, 0x76, 0xef, 0x9b, 0x3e, -0x15, 0x34, 0xee, 0x57, 0x28, 0x9c, 0x6a, 0xe2, 0x8b, 0xfa, 0x3a, 0x63, 0x6b, 0x49, 0x4a, 0xfd, -0xb8, 0x10, 0x37, 0xb6, 0x7e, 0x72, 0xdc, 0x58, 0x2e, 0xe4, 0x6b, 0xe5, 0x28, 0xad, 0x12, 0xb2, -0x1b, 0xb1, 0x5a, 0x43, 0xa9, 0x0c, 0x88, 0x25, 0x27, 0xdf, 0x06, 0x05, 0x54, 0xce, 0xfe, 0x42, -0x2a, 0xe7, 0x77, 0xb4, 0xee, 0xb5, 0x5c, 0x7a, 0xec, 0xa0, 0x82, 0xcd, 0x93, 0xe3, 0x6b, 0x2e, -0x8c, 0xd6, 0x21, 0x95, 0xad, 0xc6, 0x20, 0xcd, 0x78, 0xfb, 0x3f, 0x1f, 0xa2, 0x59, 0x4e, 0xee, -0x38, 0xb6, 0x6d, 0xba, 0x3f, 0x1b, 0xfb, 0x96, 0x9a, 0x51, 0x5c, 0x11, 0x8a, 0x5d, 0x09, 0x7d, -0x05, 0xa9, 0x22, 0x9d, 0xc5, 0x10, 0x49, 0x9e, 0x41, 0x09, 0x29, 0x80, 0x29, 0x77, 0x50, 0x4a, -0x1c, 0xff, 0x1b, 0x41, 0x7b, 0xf8, 0x60, 0x08, 0xd2, 0xf4, 0xef, 0x95, 0xd3, 0x1a, 0x40, 0x2b, -0xa4, 0x9b, 0x81, 0x7b, 0xcf, 0xe3, 0x76, 0x3a, 0x9d, 0x6d, 0x90, 0x61, 0x06, 0xfe, 0xbd, 0x59, -0xee, 0x12, 0x67, 0x09, 0x96, 0xbf, 0xa8, 0xe4, 0x02, 0x27, 0x2a, 0xad, 0xd4, 0x87, 0xe9, 0xd2, -0xe5, 0x11, 0xeb, 0xae, 0xb0, 0x1b, 0x7c, 0x2b, 0xe6, 0xae, 0xae, 0xe9, 0x12, 0x35, 0xed, 0xf0, -0xd8, 0xc1, 0x65, 0xd0, 0xbf, 0x03, 0x47, 0xf3, 0x5f, 0x22, 0x95, 0x8a, 0xa1, 0xd1, 0x9d, 0x65, -0xd5, 0x4c, 0xfa, 0x31, 0x31, 0xd8, 0xad, 0x28, 0xf9, 0xf4, 0x7f, 0x9e, 0x89, 0xb2, 0x56, 0x66, -0x02, 0x44, 0x59, 0x6c, 0x67, 0xab, 0x93, 0xe4, 0x7c, 0xcc, 0x5d, 0xc7, 0xee, 0xaa, 0x16, 0x47, -0xfb, 0x9a, 0xe0, 0x09, 0x82, 0x98, 0x85, 0xb8, 0xd3, 0x21, 0xb4, 0xd3, 0xb4, 0x60, 0x28, 0x7e, -0xf3, 0x65, 0x0b, 0x42, 0xf1, 0x9f, 0xaf, 0xe9, 0x3f, 0x7b, 0x5c, 0xe5, 0x0b, 0xf7, 0x3e, 0x0f, -0xa2, 0xff, 0x44, 0x22, 0x45, 0x8e, 0x52, 0x23, 0xa3, 0x45, 0x1b, 0xb4, 0x9b, 0x6c, 0xd0, 0x6a, -0xc6, 0xde, 0x23, 0xc7, 0xf8, 0xe2, 0x84, 0x22, 0x59, 0xb0, 0x3b, 0xbc, 0x51, 0x5e, 0xd9, 0xd2, -0x04, 0xb0, 0x01, 0xcb, 0xce, 0xc4, 0x7e, 0xa6, 0x67, 0x3d, 0x39, 0x3e, 0x12, 0xd5, 0xc8, 0x58, -0x55, 0x8d, 0xc1, 0x6a, 0xb6, 0x3f, 0x6d, 0x14, 0xfe, 0xcb, 0xf3, 0xe4, 0x19, 0x67, 0x82, 0x50, -0x70, 0x2c, 0xe8, 0x16, 0xb4, 0xa1, 0x2b, 0x03, 0x11, 0xc1, 0x11, 0x82, 0x65, 0x88, 0x36, 0xc4, -0x65, 0xd6, 0xee, 0x2d, 0x01, 0x44, 0xee, 0x99, 0x2e, 0x13, 0x94, 0x75, 0x76, 0x4c, 0x78, 0x75, -0xa5, 0x35, 0xe9, 0x83, 0xe7, 0x1e, 0xb5, 0x23, 0xf6, 0x08, 0x76, 0xab, 0xff, 0xf8, 0x9b, 0x17, -0xc0, 0xea, 0x8b, 0x1c, 0xde, 0x87, 0x7d, 0xcd, 0x11, 0xd0, 0x18, 0xcb, 0xb1, 0xbe, 0x67, 0x88, -0x13, 0x0a, 0xc8, 0x23, 0x7b, 0xc7, 0xf3, 0xc8, 0xb6, 0x51, 0x7e, 0x40, 0x1c, 0xd0, 0x80, 0x1c, -0xb0, 0x8d, 0x23, 0xd8, 0x63, 0xfd, 0x48, 0xde, 0x7b, 0xc6, 0x79, 0x11, 0x3a, 0xbb, 0xf3, 0x57, -0xee, 0x16, 0x38, 0x2b, 0xef, 0xa4, 0x29, 0xb0, 0x41, 0xe1, 0xbd, 0x2e, 0xb8, 0x38, 0x1d, 0x99, -0xdd, 0xbd, 0x25, 0xf0, 0x69, 0xa1, 0x0d, 0xca, 0xee, 0x2d, 0x85, 0x4b, 0x33, 0x6c, 0xe0, 0xb9, -0x77, 0x26, 0x5c, 0xa6, 0x15, 0xdf, 0x7b, 0xcb, 0x38, 0x28, 0xc4, 0x51, 0xe6, 0xde, 0xd9, 0x1c, -0x4f, 0x58, 0xe4, 0xd4, 0x36, 0x0f, 0xa7, 0x45, 0x4c, 0x9e, 0x57, 0x46, 0x99, 0x79, 0x48, 0x6b, -0xd9, 0xca, 0x6d, 0xb9, 0x6f, 0x53, 0xa9, 0xf7, 0x56, 0x72, 0xfa, 0x7b, 0x4b, 0xb8, 0x34, 0xa7, -0x8d, 0x4b, 0xbf, 0xb3, 0x03, 0xc7, 0x92, 0xdb, 0x16, 0x84, 0x43, 0x57, 0xf6, 0x85, 0x6d, 0xc5, -0x5c, 0x66, 0x5e, 0xda, 0xbd, 0xc5, 0x5c, 0x81, 0x52, 0x93, 0x4d, 0xf7, 0x3a, 0xb8, 0x42, 0x8c, -0x55, 0xc4, 0x62, 0x7d, 0x77, 0xe0, 0xe5, 0xeb, 0x31, 0x6b, 0x04, 0x1c, 0x81, 0x1c, 0x81, 0xba, -0x78, 0x0e, 0x0e, 0xa5, 0xd7, 0x3e, 0x8e, 0xbd, 0xf6, 0x0a, 0x52, 0x61, 0x7b, 0xc9, 0x87, 0xd8, -0x83, 0xcb, 0xe1, 0xaa, 0xb3, 0x05, 0x4e, 0xe0, 0x73, 0x12, 0xeb, 0x73, 0x0a, 0xeb, 0x72, 0x06, -0xeb, 0x71, 0xf6, 0xde, 0x32, 0xb8, 0x84, 0xf5, 0x38, 0x77, 0xef, 0x6c, 0xb8, 0x8c, 0x10, 0x9f, -0x88, 0x41, 0xac, 0xb4, 0x35, 0xc2, 0xed, 0xed, 0xbf, 0xb4, 0x7a, 0x8a, 0x93, 0x24, 0x49, 0x31, -0x5b, 0x0e, 0x75, 0xfe, 0x0a, 0xc3, 0xda, 0xe4, 0x55, 0x4e, 0x74, 0x2d, 0x27, 0x4a, 0x14, 0xd3, -0x46, 0x69, 0xf5, 0x52, 0xe3, 0x14, 0x0f, 0x49, 0xba, 0x3e, 0xe4, 0x82, 0x28, 0x7b, 0x12, 0x2f, -0x84, 0x2b, 0xbf, 0xb4, 0x60, 0x8d, 0x50, 0xda, 0xab, 0x86, 0xd5, 0xad, 0x1c, 0xc9, 0x8d, 0x86, -0x51, 0x5e, 0xe0, 0xd6, 0x39, 0x81, 0x93, 0xa9, 0x83, 0xe5, 0x3d, 0x03, 0xcb, 0xd2, 0xb4, 0x72, -0xb1, 0x5d, 0x91, 0x24, 0xfd, 0x73, 0x15, 0xf2, 0x3a, 0xa5, 0x7d, 0x86, 0x71, 0xa2, 0xd9, 0x2b, -0x6a, 0x74, 0x00, 0x1d, 0x81, 0x0a, 0xfd, 0xed, 0xfe, 0xcb, 0x46, 0x37, 0x8d, 0x60, 0xdf, 0xde, -0x2f, 0x16, 0xda, 0x78, 0xef, 0x63, 0xb4, 0x4f, 0xd1, 0xe4, 0x11, 0x3c, 0x06, 0x67, 0xc2, 0x2a, -0x68, 0xaa, 0x3e, 0xaf, 0x00, 0x58, 0x8a, 0x49, 0x28, 0x4b, 0x66, 0x19, 0x67, 0xe9, 0xef, 0x60, -0x3e, 0x8d, 0x07, 0xfc, 0x9f, 0x8a, 0xbc, 0x71, 0x96, 0x27, 0xcd, 0xbf, 0xcf, 0xe9, 0x90, 0xf7, -0xfd, 0x76, 0xc8, 0xfb, 0x1f, 0x71, 0xa8, 0x35, 0xa5, 0x06, 0x01, 0xb1, 0x8d, 0x0a, 0x8c, 0x71, -0x94, 0x3f, 0xb8, 0x69, 0x36, 0x5e, 0x70, 0x08, 0x45, 0x74, 0x5c, 0x20, 0x1e, 0x5a, 0xc4, 0xe8, -0xc7, 0xe5, 0x6e, 0xe7, 0x00, 0x75, 0x37, 0x90, 0x69, 0xe7, 0x36, 0x17, 0x14, 0x14, 0x9f, 0x83, -0x9a, 0xc9, 0x6e, 0x94, 0xcb, 0x7a, 0x60, 0x3e, 0xba, 0xe7, 0xa3, 0xbb, 0x26, 0x28, 0x4d, 0x76, -0x40, 0x1f, 0x3e, 0xc7, 0x69, 0xc7, 0x1a, 0xd3, 0x3f, 0xfc, 0x42, 0x72, 0x65, 0x98, 0xed, 0xa2, -0x65, 0x7b, 0x25, 0x5d, 0xd9, 0x6c, 0x5e, 0xfd, 0x3c, 0xed, 0x05, 0x65, 0xab, 0x9e, 0xd3, 0x41, -0x2b, 0xef, 0x2c, 0x44, 0x5e, 0xae, 0x63, 0x21, 0xf7, 0x80, 0x9e, 0x49, 0x88, 0xe9, 0x28, 0xf1, -0x65, 0x6e, 0x3c, 0xc0, 0x66, 0x40, 0x68, 0x25, 0xa2, 0x8c, 0xf6, 0x89, 0xca, 0x37, 0xaa, 0xb3, -0xf5, 0x50, 0x96, 0x47, 0xa9, 0xbc, 0xff, 0x56, 0xc7, 0xf6, 0xbb, 0xef, 0xc2, 0x3c, 0xdd, 0xc8, -0x4b, 0xca, 0x31, 0x0e, 0xdb, 0x1d, 0x86, 0xad, 0x41, 0xf2, 0x3a, 0xed, 0x31, 0x62, 0xbb, 0xd5, -0x46, 0x73, 0xa0, 0xf4, 0xa8, 0x39, 0xe5, 0x99, 0xe4, 0xb9, 0x7d, 0x0f, 0xe4, 0xd3, 0x7a, 0x1a, -0x37, 0xe8, 0x2c, 0x73, 0xce, 0x5c, 0x06, 0xed, 0x92, 0x58, 0xa3, 0xac, 0x0a, 0x4e, 0x0f, 0x98, -0x6a, 0xd3, 0xe4, 0xb5, 0xc0, 0x80, 0x95, 0xbd, 0xef, 0xf1, 0x17, 0x89, 0x76, 0xe6, 0xfa, 0x56, -0x40, 0x8e, 0xe3, 0xf6, 0x5b, 0x44, 0xa3, 0x99, 0x56, 0xef, 0xd4, 0xa8, 0x7b, 0xa9, 0x99, 0xfe, -0x9b, 0x19, 0xdf, 0xf5, 0x97, 0x8a, 0xfa, 0x6f, 0xf2, 0x0c, 0x33, 0x68, 0x44, 0x75, 0x11, 0xfe, -0x22, 0x2d, 0xe6, 0x8f, 0x59, 0xd1, 0xdb, 0x8a, 0x3a, 0x42, 0x57, 0xa0, 0x40, 0x5e, 0x7f, 0x8a, -0xad, 0xb9, 0x71, 0x65, 0x0c, 0x17, 0xdf, 0x42, 0x76, 0xe5, 0x00, 0x33, 0xc9, 0x62, 0x28, 0x95, -0x78, 0xc0, 0xbe, 0xf1, 0x80, 0xc1, 0x89, 0x75, 0x36, 0xb2, 0x19, 0xa1, 0xb2, 0x02, 0x10, 0x97, -0x7b, 0x56, 0xd0, 0x2e, 0x45, 0x77, 0xbb, 0xea, 0x13, 0x59, 0xdf, 0xbd, 0xbc, 0xc7, 0xa2, 0xac, -0x8d, 0x61, 0x9f, 0x4d, 0x41, 0x8c, 0xf0, 0xf2, 0xfa, 0xda, 0x35, 0x5f, 0x01, 0xa0, 0x5f, 0xd6, -0x89, 0xe7, 0x8a, 0x4e, 0xb6, 0x5f, 0xe7, 0x84, 0xa7, 0x8c, 0x76, 0xf0, 0xd8, 0x52, 0xec, 0x1d, -0xaa, 0x8f, 0x37, 0x0c, 0xd8, 0xb4, 0xf2, 0xca, 0xdf, 0x67, 0xc7, 0x62, 0x79, 0xc0, 0xde, 0x2f, -0xcb, 0x83, 0xad, 0xd1, 0x65, 0x7a, 0x5c, 0x18, 0xe7, 0x49, 0x96, 0xd7, 0x56, 0xcf, 0x4c, 0xfc, -0xdd, 0x80, 0x12, 0x5f, 0x6c, 0x47, 0xf1, 0x9e, 0xc4, 0x1d, 0xc5, 0x28, 0x0d, 0x5a, 0xe8, 0x5b, -0xa0, 0x91, 0xed, 0x51, 0x96, 0x57, 0x99, 0x76, 0x18, 0x21, 0x30, 0xdf, 0x10, 0x5b, 0x63, 0xa3, -0xfd, 0xc9, 0x8e, 0xaf, 0x4a, 0x6f, 0x7c, 0x88, 0xb7, 0x18, 0x54, 0x72, 0x6c, 0x65, 0x3f, 0x32, -0x67, 0xf5, 0x28, 0xfb, 0x91, 0x63, 0xeb, 0x5a, 0x7c, 0xcc, 0x85, 0xbd, 0xcc, 0x65, 0x57, 0x57, -0xbc, 0x5b, 0x71, 0x55, 0x6e, 0xf3, 0x44, 0x8d, 0x5a, 0xfa, 0xe5, 0xdf, 0xda, 0x73, 0x5c, 0x94, -0x67, 0x6a, 0x01, 0x01, 0x47, 0x09, 0x23, 0x8e, 0xed, 0x66, 0x5b, 0x4a, 0x6c, 0xa5, 0x5a, 0xf7, -0x4d, 0x28, 0xd4, 0x4a, 0xfe, 0x32, 0x43, 0xca, 0xe8, 0x4e, 0x6b, 0xb6, 0x27, 0x7b, 0x53, 0x7c, -0x9f, 0x75, 0xd4, 0x42, 0xbd, 0xeb, 0xd4, 0x7f, 0xbc, 0x61, 0x8c, 0xed, 0x8b, 0x3e, 0x89, 0x2a, -0x79, 0x6c, 0xc7, 0x74, 0x34, 0xbe, 0x03, 0xfb, 0x97, 0xe2, 0x02, 0x0b, 0xcc, 0x5f, 0x21, 0x24, -0x8d, 0x95, 0x68, 0x03, 0x45, 0x28, 0x8d, 0xca, 0xeb, 0x64, 0x52, 0xa1, 0xdd, 0x26, 0xef, 0x9f, -0x3f, 0xa6, 0xec, 0xac, 0x3a, 0x66, 0x50, 0x8d, 0xc9, 0x35, 0x61, 0xaf, 0x35, 0xb5, 0x87, 0xa8, -0x0b, 0x05, 0xe4, 0xaf, 0x23, 0x79, 0xed, 0x20, 0x50, 0xed, 0x8b, 0x62, 0x33, 0x07, 0xb4, 0xf7, -0xda, 0xba, 0x48, 0x5e, 0xef, 0x53, 0xd6, 0xb7, 0xc0, 0xfd, 0xc1, 0x8c, 0x42, 0xab, 0x8d, 0x33, -0x5b, 0x6c, 0x9c, 0xd5, 0xdc, 0xc2, 0xd9, 0x59, 0x59, 0x67, 0x6c, 0x1a, 0xb6, 0x93, 0xbd, 0x88, -0xad, 0xe9, 0xf9, 0x51, 0x5f, 0x3a, 0xf5, 0xff, 0x0c, 0xe9, 0x56, 0xd0, 0xda, 0x64, 0x40, 0xc3, -0x7c, 0x27, 0x9c, 0x2a, 0x81, 0x6a, 0xf8, 0x4e, 0xbb, 0xf1, 0xd8, 0x7a, 0x3a, 0x49, 0x91, 0xb7, -0xc7, 0xa6, 0x41, 0x89, 0x8b, 0x52, 0x7f, 0x48, 0xbc, 0x02, 0xa9, 0x99, 0x4e, 0xa8, 0xa4, 0x2b, -0xf3, 0x99, 0x7a, 0x83, 0xda, 0x98, 0x84, 0x7c, 0x2b, 0x55, 0xbe, 0x09, 0xdd, 0x9f, 0xee, 0x53, -0x61, 0xaf, 0x57, 0x91, 0x94, 0x22, 0xe4, 0x69, 0xc1, 0xbf, 0x4f, 0xe6, 0x0e, 0xf3, 0x3b, 0x90, -0x1f, 0xc2, 0x97, 0xc1, 0xab, 0xec, 0xb1, 0x36, 0x62, 0x9b, 0x21, 0xbc, 0x28, 0xfb, 0xc2, 0x07, -0xab, 0x8e, 0x84, 0x8f, 0x44, 0x8e, 0x44, 0x34, 0x34, 0xef, 0xd6, 0x57, 0xfe, 0x97, 0xcc, 0x2b, -0x28, 0xdf, 0xe8, 0xfd, 0x00, 0x3b, 0x84, 0x87, 0xa0, 0x96, 0xf5, 0x3e, 0x2b, 0x9d, 0x53, 0x10, -0xbe, 0xa9, 0xad, 0x6d, 0x32, 0xd8, 0x92, 0x9c, 0xbf, 0xc2, 0x11, 0xf0, 0x21, 0xd8, 0x81, 0xcf, -0x36, 0x77, 0x50, 0x0b, 0xac, 0x55, 0x4f, 0x4f, 0x5a, 0x34, 0x45, 0xde, 0xbd, 0x9b, 0xcd, 0x52, -0x37, 0x7b, 0xb6, 0xc3, 0x40, 0x60, 0x91, 0x2d, 0x07, 0xb6, 0xe1, 0xb3, 0x23, 0x36, 0xf2, 0x9b, -0xc0, 0x0c, 0xc7, 0xc2, 0xe3, 0x77, 0x5d, 0x22, 0xfd, 0xa6, 0xd2, 0x1e, 0x12, 0x83, 0xc3, 0xe8, -0xb2, 0x96, 0xd2, 0x6e, 0x76, 0x1c, 0x51, 0xf4, 0x01, 0x0b, 0x96, 0x3f, 0x80, 0x12, 0xbf, 0x7a, -0x54, 0x6e, 0x31, 0x35, 0xe2, 0x58, 0x42, 0x71, 0x39, 0x16, 0xaf, 0xb0, 0xaa, 0xb3, 0x66, 0x8d, -0xa7, 0xd3, 0xff, 0x89, 0xbc, 0xe3, 0x9a, 0xf6, 0x76, 0x98, 0x51, 0x97, 0x44, 0xe9, 0xc4, 0x8e, -0xd2, 0x49, 0xbe, 0x3c, 0xeb, 0x42, 0xf8, 0xd1, 0x10, 0x06, 0xfb, 0x66, 0x5e, 0xd2, 0x5e, 0x41, -0xb8, 0x48, 0x72, 0xff, 0x39, 0xf2, 0x56, 0xde, 0xa6, 0xf3, 0xf6, 0x8f, 0x5c, 0x64, 0xf2, 0xfc, -0x76, 0x56, 0xe3, 0xc7, 0x83, 0x1c, 0x9b, 0x69, 0x08, 0xa3, 0x5f, 0x8b, 0xef, 0x76, 0x25, 0x76, -0x10, 0xeb, 0xd4, 0x87, 0xbc, 0x60, 0x11, 0xbe, 0xf7, 0xe0, 0x5b, 0x34, 0x5b, 0x61, 0x97, 0xd1, -0xf5, 0xd6, 0xfe, 0xb7, 0xf6, 0x0b, 0xc9, 0x63, 0x6b, 0x42, 0xbb, 0xba, 0x71, 0x8c, 0x3d, 0x4f, -0xb5, 0xb1, 0x96, 0x50, 0x5d, 0xee, 0x76, 0x81, 0xda, 0xb4, 0x03, 0x7a, 0xef, 0x6e, 0x84, 0x3d, -0xd8, 0x47, 0x1a, 0xa1, 0x0f, 0xeb, 0x94, 0x3c, 0x5a, 0x27, 0x94, 0xff, 0xf5, 0x7d, 0x9b, 0x03, -0x5a, 0xc1, 0xc9, 0xe2, 0x17, 0xfa, 0xba, 0xe6, 0x46, 0xd9, 0x1c, 0xce, 0xb9, 0xbb, 0x4b, 0x41, -0x8b, 0x72, 0xe5, 0xa7, 0x38, 0x6e, 0x6e, 0xc3, 0x27, 0x8e, 0x45, 0xa3, 0x63, 0x1c, 0xf6, 0x74, -0x63, 0xca, 0x73, 0x82, 0x2e, 0x78, 0xcb, 0xdd, 0x0e, 0x50, 0xdf, 0xdd, 0x81, 0x54, 0x76, 0x16, -0xb4, 0xa6, 0xb0, 0xf1, 0x21, 0xd0, 0x5b, 0x9c, 0xad, 0x30, 0x9b, 0x69, 0xf1, 0x74, 0xfa, 0x03, -0xc7, 0x34, 0x4d, 0xd6, 0x76, 0x50, 0x89, 0xcb, 0x32, 0x2d, 0xc0, 0x65, 0x58, 0x80, 0xd7, 0x5b, -0x40, 0x95, 0xa6, 0xea, 0x53, 0x2d, 0xe4, 0xd3, 0xd4, 0xbd, 0x1c, 0xfe, 0x82, 0x87, 0xf3, 0xab, -0x9d, 0xb7, 0x89, 0x35, 0xcb, 0x20, 0x4b, 0x9d, 0xc9, 0x9d, 0xd2, 0xf1, 0xa4, 0xe6, 0x4a, 0x56, -0xf5, 0xf1, 0x2e, 0xa1, 0xec, 0xf0, 0x7e, 0x9e, 0xd6, 0x6b, 0x25, 0x59, 0x6e, 0x7d, 0x61, 0xe0, -0x7f, 0x0d, 0xb8, 0x40, 0xc7, 0x49, 0x83, 0x3e, 0x65, 0x47, 0xe7, 0x07, 0xab, 0xc2, 0xdc, 0x0b, -0xbf, 0xfb, 0x5f, 0x8a, 0x8f, 0xe8, 0x0b, 0xfd, 0xaf, 0x8c, 0xfa, 0xc3, 0x5c, 0x56, 0xd8, 0x17, -0xad, 0x59, 0xed, 0x7b, 0x34, 0x5e, 0xbb, 0xad, 0x95, 0xeb, 0x7b, 0xa3, 0xb5, 0x20, 0xf9, 0x69, -0x2f, 0x0a, 0x3b, 0x19, 0x46, 0x94, 0x9a, 0xae, 0xcf, 0x01, 0x7b, 0x15, 0x8d, 0xcf, 0x5c, 0xed, -0x5c, 0x6c, 0x0f, 0xa7, 0xbf, 0x32, 0x38, 0x63, 0xac, 0x54, 0xae, 0x9c, 0xb4, 0x49, 0x93, 0x69, -0x28, 0xbf, 0x03, 0x66, 0xc4, 0x4e, 0x45, 0xdc, 0x5d, 0x01, 0xce, 0x82, 0x3d, 0x90, 0x87, 0x94, -0xe4, 0x9c, 0xd6, 0x01, 0x79, 0x28, 0x52, 0x32, 0x17, 0xb7, 0x01, 0x35, 0x01, 0x39, 0x6c, 0x2b, -0x68, 0xc8, 0x25, 0xcf, 0xa0, 0x3a, 0xb7, 0x41, 0x1a, 0xf9, 0xf0, 0x3d, 0x49, 0x79, 0x1b, 0x90, -0xb6, 0x80, 0x9d, 0xc7, 0xb9, 0xca, 0xc6, 0x7d, 0xd4, 0x73, 0x8c, 0x4d, 0xb4, 0x1b, 0x92, 0xf1, -0x4c, 0x5f, 0x8e, 0x43, 0xba, 0x4a, 0xbb, 0x8c, 0x0d, 0x6a, 0xda, 0x09, 0xa3, 0xf0, 0x94, 0xbd, -0xd4, 0x87, 0xbb, 0xce, 0xdb, 0xd4, 0xee, 0x26, 0x4c, 0xd5, 0x00, 0x06, 0x6a, 0xb9, 0xe4, 0x13, -0x6c, 0x97, 0xaf, 0xc3, 0x5f, 0x8d, 0x63, 0xc1, 0x54, 0xe9, 0xaa, 0xb7, 0x7f, 0x78, 0x17, 0xf2, -0x86, 0x9e, 0xb8, 0xee, 0x7f, 0x65, 0xbc, 0xee, 0x3f, 0x99, 0x74, 0x7f, 0xfc, 0x1e, 0xc8, 0x1f, -0x53, 0x9a, 0x09, 0xd3, 0xab, 0xe5, 0x1d, 0x00, 0x77, 0x9e, 0x64, 0xd4, 0x8b, 0x12, 0xae, 0x80, -0x39, 0x8a, 0xa9, 0xf1, 0x9c, 0xe7, 0xd1, 0x49, 0xa5, 0x8a, 0x8f, 0x5d, 0xd9, 0xd2, 0x59, 0x5a, -0xa1, 0x97, 0xb9, 0x54, 0x41, 0x9e, 0xb1, 0x85, 0xcb, 0x36, 0xd9, 0x38, 0xc1, 0xd4, 0xc2, 0x19, -0xd9, 0xee, 0x92, 0x45, 0x86, 0x64, 0xa3, 0x6a, 0x74, 0x1c, 0xf1, 0xcf, 0x1b, 0xdd, 0x4d, 0x64, -0x86, 0xa0, 0xba, 0xb7, 0xab, 0xce, 0x4d, 0x75, 0xd9, 0x9b, 0xea, 0x0e, 0xb9, 0xbf, 0x60, 0x72, -0xcb, 0x53, 0xf2, 0x1e, 0x85, 0x07, 0xba, 0x74, 0x34, 0xcd, 0x01, 0xb5, 0x66, 0x84, 0x25, 0x39, -0xbd, 0x08, 0x84, 0xa1, 0xf5, 0xca, 0xa9, 0x20, 0xbb, 0x81, 0x4f, 0xcc, 0x53, 0x3e, 0x17, 0xa1, -0x9c, 0xf8, 0xcb, 0x4e, 0xe4, 0x4d, 0x01, 0x5d, 0x02, 0x77, 0x62, 0x63, 0x09, 0x72, 0x25, 0x75, -0x55, 0x38, 0x34, 0x61, 0x67, 0xb8, 0x3e, 0x8d, 0x4e, 0x08, 0x18, 0xdc, 0x6f, 0x5e, 0x85, 0x53, -0x1d, 0xd9, 0xc2, 0xb4, 0x6e, 0x4c, 0x45, 0x67, 0x27, 0x51, 0xc6, 0x13, 0xb0, 0x6f, 0xeb, 0x5b, -0xd5, 0x86, 0xa2, 0x48, 0xf6, 0xcf, 0x7e, 0x57, 0x2a, 0xcf, 0x4b, 0x15, 0x21, 0x39, 0x6c, 0xb6, -0x71, 0x34, 0xcb, 0x14, 0x82, 0x32, 0x6e, 0x5f, 0xe7, 0x0b, 0x91, 0x13, 0x6b, 0xaa, 0xa2, 0xfe, -0x33, 0xc1, 0x3b, 0x07, 0x22, 0x15, 0xef, 0xaa, 0x75, 0xca, 0x69, 0x2d, 0xa4, 0x0b, 0xe4, 0x10, -0xd9, 0x74, 0x16, 0xca, 0xdb, 0x2f, 0xed, 0xa2, 0x5d, 0x71, 0xa5, 0xe7, 0x61, 0xba, 0xe0, 0x89, -0x63, 0xfd, 0x50, 0xe2, 0x69, 0xb6, 0xe2, 0x4b, 0xdd, 0x60, 0x98, 0x35, 0x7a, 0x66, 0x2b, 0x21, -0xde, 0xab, 0xf2, 0x39, 0x2d, 0x94, 0x9f, 0xf8, 0xd6, 0xe9, 0x43, 0xcf, 0x83, 0x7e, 0x74, 0x5f, -0xdb, 0xb5, 0x43, 0x06, 0xaa, 0xd7, 0x0d, 0x76, 0xbc, 0x5d, 0x7b, 0xd5, 0x78, 0xa7, 0x72, 0x1a, -0x27, 0x8f, 0x4e, 0xe3, 0x20, 0x3c, 0xd9, 0x74, 0xaa, 0x44, 0xb2, 0x30, 0x48, 0x3e, 0x1a, 0x03, -0xc9, 0xbc, 0x44, 0x48, 0x84, 0x25, 0xdd, 0x20, 0x26, 0x97, 0x60, 0x6f, 0x7e, 0xf1, 0x95, 0x40, -0x32, 0x4a, 0x98, 0x7a, 0xff, 0xa7, 0xad, 0x80, 0xd2, 0xa9, 0x36, 0x11, 0x26, 0x86, 0x63, 0x5d, -0x6c, 0xd7, 0x45, 0xc1, 0x0c, 0x1c, 0x79, 0x8b, 0x70, 0xe4, 0x75, 0x60, 0x9d, 0x5d, 0x58, 0x96, -0x9b, 0x9d, 0x91, 0xe9, 0x97, 0xa2, 0x82, 0x3c, 0x9f, 0x9d, 0xe6, 0xd9, 0x06, 0x0d, 0x01, 0x1d, -0xfe, 0xb6, 0xa1, 0xb4, 0xbb, 0x0d, 0x42, 0x81, 0x36, 0xb6, 0x37, 0x5d, 0xa7, 0xec, 0x4d, 0x77, -0x7b, 0xfb, 0xaf, 0x18, 0xe2, 0xa7, 0x42, 0xd5, 0xad, 0x85, 0x48, 0xe1, 0x72, 0xbb, 0xee, 0x9d, -0x75, 0x01, 0x0a, 0x72, 0x2c, 0x50, 0x88, 0x63, 0xd2, 0x4d, 0x6d, 0x6a, 0x25, 0x74, 0x30, 0xa4, -0xa6, 0xd3, 0x28, 0xbc, 0x09, 0xe3, 0xce, 0x18, 0x8d, 0x6b, 0x6b, 0x80, 0x19, 0x90, 0x7f, 0x7d, -0xcc, 0x07, 0xf6, 0xb9, 0xa3, 0x2e, 0xd4, 0x51, 0xb9, 0x2b, 0x98, 0x9b, 0x40, 0x67, 0x78, 0x98, -0x04, 0x3a, 0xc0, 0xf6, 0xcc, 0x91, 0xe4, 0xe9, 0x31, 0xcc, 0x66, 0x32, 0x5a, 0x83, 0xc5, 0xc1, -0xc6, 0xf2, 0xfe, 0x91, 0x03, 0x46, 0xc7, 0x18, 0x08, 0x0b, 0x50, 0xd7, 0x25, 0xc9, 0xd8, 0x88, -0x10, 0xea, 0xf9, 0x26, 0xe9, 0xaf, 0xa8, 0xf5, 0x3e, 0x0b, 0x19, 0xf8, 0x64, 0x89, 0xb9, 0xbb, -0xe4, 0x15, 0xa1, 0x1e, 0x56, 0xc7, 0x1e, 0x56, 0xc7, 0x1e, 0xac, 0x63, 0xb6, 0x07, 0x63, 0xf8, -0xf5, 0xa1, 0x9c, 0x32, 0x2e, 0xb6, 0x9b, 0x05, 0x61, 0x08, 0xed, 0x92, 0x57, 0x3d, 0x12, 0x73, -0xff, 0x36, 0xe6, 0x1e, 0xab, 0xbf, 0x16, 0x65, 0xf4, 0xfd, 0xf8, 0x9c, 0xc5, 0xd4, 0xd3, 0x03, -0x9e, 0x31, 0xf1, 0x0a, 0x51, 0x63, 0x1d, 0x96, 0xe3, 0xf9, 0xb3, 0xc5, 0x5c, 0xd6, 0x63, 0xd2, -0x6d, 0x20, 0x94, 0xd0, 0x49, 0x97, 0x9a, 0x75, 0xa4, 0x63, 0x08, 0x4e, 0x94, 0x60, 0xd3, 0x7f, -0xf6, 0x86, 0xa9, 0x08, 0x7b, 0xd7, 0x06, 0xe3, 0x54, 0x98, 0x3e, 0xb4, 0x4e, 0x70, 0x62, 0x2b, -0x1e, 0xf9, 0x32, 0x28, 0xc7, 0x94, 0xf0, 0x1d, 0x2c, 0xe1, 0xf1, 0xf8, 0xae, 0xb3, 0xeb, 0x63, -0x57, 0xcb, 0xb1, 0xe3, 0x67, 0x20, 0xaa, 0x31, 0xfe, 0x22, 0x05, 0xf2, 0x5c, 0x3a, 0xcf, 0xe0, -0xed, 0xff, 0x62, 0x86, 0xd9, 0xa1, 0x70, 0x29, 0xa5, 0x5d, 0xe4, 0x5d, 0x48, 0x01, 0x7d, 0x4e, -0x23, 0xd9, 0xa6, 0xc0, 0xdf, 0x2c, 0xc4, 0x1a, 0xff, 0x93, 0x43, 0x54, 0x86, 0x5f, 0x2d, 0x9a, -0x7f, 0x72, 0x88, 0x95, 0x23, 0xb0, 0x72, 0xb2, 0xa8, 0x1c, 0x3f, 0x9d, 0xb2, 0xba, 0x89, 0x49, -0xd9, 0xa7, 0x27, 0x8b, 0xf9, 0x72, 0xdf, 0xce, 0x8a, 0x71, 0x3b, 0xdb, 0x4d, 0xd8, 0xaf, 0x18, -0xaf, 0xbb, 0xa5, 0x82, 0x7d, 0x93, 0x77, 0x9f, 0x25, 0xb3, 0x1d, 0x46, 0xfd, 0x9f, 0xbd, 0x5a, -0xb9, 0x9e, 0x52, 0xa3, 0x6b, 0x0f, 0x6a, 0x70, 0x31, 0xed, 0x2d, 0x5b, 0x5e, 0xbb, 0x41, 0xfe, -0xda, 0x4a, 0x3d, 0xd4, 0x48, 0xf3, 0x48, 0xed, 0xe0, 0x45, 0x19, 0xa3, 0x49, 0x6a, 0xa3, 0xde, -0x5d, 0x90, 0xed, 0xdd, 0x54, 0xfe, 0xb1, 0xb4, 0x9f, 0xe8, 0x03, 0xb1, 0xa1, 0xf3, 0x6e, 0x9a, -0xf9, 0xb1, 0x74, 0x4c, 0xf1, 0xa5, 0x78, 0x37, 0x09, 0x7c, 0x15, 0xa3, 0x80, 0x90, 0x0a, 0xb9, -0x06, 0x70, 0xe9, 0xdf, 0xe9, 0x78, 0x5f, 0x2f, 0xb5, 0x7d, 0xa7, 0x83, 0xe3, 0xa4, 0xf6, 0x3b, -0x9c, 0xd2, 0x2f, 0x69, 0x17, 0x14, 0x0e, 0x51, 0xbd, 0xca, 0x7b, 0x57, 0x4e, 0x85, 0xb4, 0x36, -0x67, 0x96, 0xb4, 0xe1, 0x3b, 0x1d, 0x20, 0x48, 0x51, 0xf6, 0xdb, 0x85, 0xbf, 0x6a, 0x69, 0x25, -0x49, 0x63, 0x7b, 0x37, 0xa5, 0xe1, 0xd8, 0xb2, 0x33, 0xea, 0xd7, 0x30, 0xdf, 0x72, 0xe4, 0xb8, -0xdb, 0xf0, 0x2b, 0x2f, 0x1d, 0x62, 0x31, 0x0f, 0xb0, 0xdf, 0x83, 0x77, 0x74, 0x80, 0x4a, 0x3a, -0xc2, 0x7e, 0xdf, 0x64, 0x5f, 0x4f, 0xb0, 0xf0, 0xe3, 0xec, 0xf7, 0x1d, 0x16, 0x7e, 0x86, 0xfd, -0x7e, 0x10, 0x54, 0xf5, 0x46, 0x03, 0x2e, 0xa4, 0xf6, 0x68, 0xc0, 0xaa, 0x2f, 0x02, 0x1e, 0x7d, -0x69, 0x39, 0x38, 0x2e, 0x77, 0x54, 0x4a, 0x6f, 0xd0, 0xfb, 0xff, 0xad, 0x94, 0x4e, 0x8a, 0xf9, -0xe4, 0x5a, 0xae, 0x84, 0x3c, 0x4c, 0x21, 0x06, 0x72, 0x85, 0x95, 0x90, 0x08, 0x85, 0xe8, 0xc9, -0x15, 0x55, 0x42, 0x3a, 0x31, 0xa4, 0xf4, 0x63, 0xe9, 0x7c, 0xac, 0xcf, 0x74, 0x14, 0xc5, 0xce, -0xbe, 0x15, 0x7f, 0x2c, 0xb5, 0x19, 0x3c, 0xd6, 0x26, 0x26, 0x9f, 0x37, 0xc8, 0xbc, 0x97, 0x46, -0x82, 0xf9, 0x6a, 0x49, 0xa4, 0x91, 0xe0, 0xab, 0xcf, 0x0f, 0x0a, 0xf7, 0x7b, 0x16, 0x83, 0xda, -0x9f, 0xaa, 0xab, 0x7c, 0x5f, 0x4f, 0x3a, 0x8d, 0x7b, 0xc0, 0x15, 0x46, 0xbe, 0xcb, 0x79, 0x97, -0x7e, 0x6f, 0x3d, 0x8d, 0x1f, 0xa6, 0x72, 0xa1, 0x01, 0xf4, 0xf6, 0x29, 0xa0, 0x0e, 0x68, 0x75, -0x0e, 0xd4, 0xca, 0xeb, 0x44, 0xab, 0x61, 0x0a, 0x68, 0x5a, 0x33, 0x87, 0xd6, 0xb7, 0x71, 0xed, -0x6a, 0x99, 0x97, 0x8f, 0xec, 0x61, 0x7c, 0xa0, 0x42, 0xa8, 0xf2, 0xa0, 0xf6, 0x39, 0x17, 0xf3, -0xc9, 0x73, 0x08, 0xab, 0x5c, 0x1b, 0xc4, 0xe9, 0x86, 0xfb, 0x3d, 0x1b, 0x91, 0x1e, 0x3a, 0xb6, -0x3f, 0x7b, 0x70, 0x04, 0xe5, 0x6c, 0xda, 0xab, 0x9b, 0x69, 0xc8, 0xb9, 0x2e, 0xfd, 0x6e, 0xc6, -0x1d, 0x94, 0xf2, 0x45, 0x0d, 0x9d, 0x8b, 0x25, 0xc9, 0xb6, 0x22, 0xbb, 0x66, 0x3d, 0x9d, 0xa1, -0xa6, 0xf2, 0xa9, 0xf4, 0x40, 0x21, 0xfe, 0xf2, 0x48, 0x9f, 0x0e, 0xbf, 0xd7, 0x66, 0x01, 0xbd, -0x0d, 0x21, 0xc1, 0xda, 0xdd, 0x72, 0x7f, 0x58, 0x1e, 0x1d, 0xef, 0x38, 0xcb, 0xe6, 0x1e, 0xf2, -0xe8, 0xdb, 0x68, 0x68, 0x76, 0x03, 0x52, 0xdf, 0xa4, 0x1b, 0xc5, 0xcf, 0xf6, 0xdb, 0x1d, 0x2c, -0x85, 0xda, 0xde, 0x01, 0x9c, 0xa0, 0x35, 0xfe, 0xe0, 0x1f, 0x29, 0xed, 0x96, 0xbd, 0x37, 0x2a, -0xed, 0xf6, 0x19, 0x5f, 0x56, 0xda, 0x6d, 0xe7, 0xaf, 0x2f, 0x4d, 0x96, 0x32, 0x8a, 0x0c, 0x02, -0xb6, 0x1f, 0xf6, 0x04, 0xbd, 0x71, 0x11, 0xa6, 0xe3, 0x49, 0x8a, 0x90, 0xcf, 0xb2, 0x26, 0xd7, -0x28, 0xe3, 0xbd, 0xcb, 0x84, 0xe3, 0xfc, 0xd8, 0xf3, 0x96, 0x28, 0x79, 0xe6, 0xe2, 0xf8, 0x2f, -0x9f, 0xb6, 0x7c, 0x16, 0xb4, 0x8c, 0x5f, 0xa6, 0xe1, 0x58, 0x9c, 0x44, 0x71, 0xdb, 0x39, 0x45, -0xa3, 0xd9, 0xc3, 0x4e, 0x0d, 0x4a, 0xd8, 0x3e, 0x6a, 0x3a, 0xcb, 0x2c, 0x24, 0xa1, 0x94, 0x50, -0x24, 0x9d, 0x22, 0xda, 0x60, 0x2d, 0x8c, 0x23, 0x12, 0x8e, 0x1a, 0x82, 0x91, 0x74, 0xb6, 0x87, -0xa8, 0x74, 0x59, 0x1e, 0xa0, 0xf3, 0x9d, 0xb9, 0x5d, 0x98, 0x3b, 0xd3, 0xe1, 0xf4, 0xdb, 0x14, -0x38, 0xb2, 0x0c, 0xea, 0x78, 0xce, 0xbb, 0x29, 0xd7, 0xb9, 0xb1, 0x56, 0x53, 0x5a, 0x2c, 0x2e, -0x39, 0x15, 0x9a, 0xcb, 0x4d, 0x88, 0x05, 0xd3, 0xfd, 0xd6, 0x87, 0x60, 0xfa, 0x1e, 0x79, 0x55, -0x3b, 0x8d, 0x51, 0x92, 0x8e, 0x51, 0x12, 0x70, 0x6a, 0x94, 0x4b, 0x9f, 0x26, 0x2c, 0xb1, 0xfa, -0x26, 0x8f, 0xa9, 0x2f, 0xc0, 0x39, 0x23, 0xd6, 0xe2, 0xd4, 0x6a, 0xea, 0xed, 0x24, 0x05, 0x35, -0x6a, 0x9d, 0xdb, 0x61, 0x3a, 0xa6, 0x78, 0x63, 0x28, 0x3a, 0x14, 0x15, 0xf8, 0xb1, 0x27, 0x4f, -0xad, 0x94, 0xa2, 0x8f, 0xc9, 0xf8, 0x80, 0x3c, 0xc9, 0xeb, 0xed, 0xbf, 0xc6, 0x4e, 0x08, 0xb6, -0x02, 0xf2, 0xdf, 0xd3, 0xaa, 0x64, 0x31, 0x1b, 0x25, 0x4e, 0x6c, 0x0d, 0x5b, 0x0a, 0xf1, 0x68, -0xc1, 0x55, 0xd3, 0x25, 0x0c, 0x28, 0xba, 0x7a, 0xd4, 0x17, 0xdd, 0xf5, 0xac, 0x74, 0xb5, 0xfe, -0x1d, 0xca, 0xd7, 0xb9, 0xdb, 0x0c, 0x77, 0x7b, 0x61, 0x7a, 0x50, 0x88, 0x6c, 0x87, 0x05, 0x6c, -0xff, 0x65, 0x2d, 0xed, 0x99, 0x14, 0x35, 0x3e, 0x06, 0x05, 0x49, 0x5d, 0xb4, 0xfe, 0x79, 0x24, -0xe2, 0xd9, 0x9d, 0x09, 0xfe, 0x73, 0x94, 0xab, 0x2f, 0x1c, 0x3b, 0xdb, 0x28, 0xd7, 0x21, 0x8e, -0x2b, 0x53, 0x2b, 0xcc, 0x1c, 0x1e, 0x79, 0x52, 0x4c, 0xb7, 0x4d, 0x92, 0x4b, 0x8f, 0x5b, 0x31, -0xd0, 0x29, 0x65, 0x9e, 0x51, 0x28, 0xfd, 0xe3, 0xf9, 0xd9, 0xd2, 0x09, 0xb9, 0x45, 0xa0, 0xc0, -0x54, 0x6e, 0xbe, 0x5f, 0xb0, 0x42, 0x59, 0xc0, 0x95, 0x27, 0xf7, 0xbb, 0x62, 0xc4, 0x56, 0x81, -0x68, 0x92, 0xe9, 0x89, 0x38, 0xeb, 0xb5, 0x83, 0x4a, 0x3e, 0x26, 0xd4, 0xc1, 0xca, 0x84, 0xaa, -0xa0, 0x3e, 0xb2, 0x4d, 0x81, 0x36, 0xc3, 0x06, 0x72, 0x3c, 0xa4, 0x05, 0x03, 0x3b, 0xc5, 0xa3, -0xf4, 0xa5, 0x6c, 0x18, 0x93, 0x7b, 0xde, 0x57, 0xe4, 0xde, 0x98, 0x90, 0x7b, 0x1e, 0xe6, 0xae, -0xbd, 0x51, 0xee, 0xd7, 0xf6, 0x8f, 0xcf, 0x1d, 0xdb, 0xfd, 0x0a, 0x69, 0x9b, 0xe6, 0x26, 0xd4, -0x40, 0x90, 0x9e, 0x51, 0x72, 0xd6, 0x9b, 0x72, 0x40, 0x1f, 0x4c, 0x1f, 0x2f, 0xbd, 0x1b, 0xe9, -0x2c, 0xa3, 0x4a, 0x3e, 0xcf, 0xeb, 0x6e, 0x64, 0x67, 0x19, 0xe7, 0x51, 0x6b, 0xe5, 0x38, 0xa5, -0x61, 0x6a, 0x47, 0xe2, 0x70, 0x2b, 0xab, 0x99, 0x34, 0x3d, 0x2c, 0xd3, 0x5f, 0x4c, 0x96, 0xc6, -0xaf, 0x4f, 0x18, 0x31, 0xd4, 0xde, 0x00, 0x6a, 0x3a, 0xdb, 0x7b, 0x36, 0x2c, 0x6b, 0x38, 0xe8, -0xd7, 0xb0, 0xd3, 0xbc, 0xa8, 0x53, 0xa0, 0x5b, 0x1b, 0x73, 0x1b, 0x61, 0x28, 0x1c, 0x10, 0x91, -0x5a, 0xc6, 0x9e, 0xef, 0x4d, 0x53, 0x28, 0x85, 0x95, 0x3d, 0xfc, 0x4e, 0xfc, 0x84, 0x6f, 0xd1, -0xc9, 0xd5, 0x8f, 0x1d, 0x34, 0xdd, 0x34, 0xa7, 0x93, 0xd6, 0xb7, 0xf4, 0x95, 0xa2, 0x01, 0xc7, -0x38, 0x55, 0xfc, 0x94, 0xbd, 0x23, 0x90, 0x2d, 0x60, 0xd9, 0xc2, 0x22, 0x48, 0x3e, 0x7c, 0x70, -0xda, 0xb3, 0xd2, 0xc8, 0x36, 0xf0, 0xad, 0xde, 0xb5, 0xda, 0xff, 0x36, 0x52, 0xc5, 0xb0, 0xd2, -0x8e, 0x45, 0xd2, 0x31, 0x6a, 0x47, 0xb9, 0x0f, 0xd8, 0x0b, 0x4d, 0xe5, 0x46, 0xec, 0x03, 0x0c, -0xe3, 0x4e, 0x84, 0x7d, 0x65, 0x02, 0xce, 0xdb, 0xc5, 0x79, 0x37, 0x38, 0xe1, 0xc9, 0x2b, 0x27, -0x3c, 0x65, 0xc8, 0x5c, 0x0c, 0x2b, 0x25, 0xa8, 0x03, 0x54, 0xb2, 0x31, 0xb7, 0x12, 0x75, 0xeb, -0xc4, 0xde, 0x12, 0xc3, 0x4a, 0xde, 0x14, 0x0c, 0x03, 0x27, 0xb6, 0x15, 0x47, 0x6d, 0x25, 0x66, -0x2b, 0xb1, 0xa9, 0xad, 0x14, 0xaa, 0xbc, 0xa5, 0x42, 0xe1, 0x3e, 0x5a, 0xe2, 0x3e, 0x22, 0xbf, -0xf1, 0x80, 0xa0, 0x45, 0x78, 0x75, 0x31, 0x4e, 0x10, 0xa7, 0x0c, 0x2b, 0x6a, 0xac, 0x4e, 0xe5, -0xfc, 0x64, 0x17, 0x69, 0x61, 0xfe, 0x8e, 0x04, 0xfe, 0x1f, 0x14, 0x73, 0x59, 0x8f, 0x5d, 0x04, -0x05, 0xe3, 0x7a, 0xec, 0x3c, 0x82, 0x2d, 0x58, 0x34, 0xb8, 0x03, 0x9c, 0xb1, 0x32, 0x11, 0x83, -0x76, 0x06, 0x83, 0x39, 0x16, 0x3b, 0xde, 0x37, 0xac, 0x14, 0x9b, 0x4a, 0x62, 0xab, 0x69, 0x45, -0xb1, 0x14, 0xb7, 0xb5, 0xcb, 0xdf, 0xe7, 0x5e, 0x37, 0x16, 0xc8, 0xf4, 0x5b, 0x50, 0x80, 0xbc, -0x0a, 0x35, 0x1a, 0x10, 0x68, 0x4e, 0x83, 0x4e, 0x35, 0xc8, 0x54, 0x20, 0x6b, 0x05, 0xe8, 0x97, -0xa9, 0x00, 0xb5, 0x02, 0xfb, 0x43, 0x0a, 0x15, 0x6c, 0x22, 0x2a, 0x78, 0xec, 0x20, 0xb5, 0xe8, -0x6d, 0xed, 0xc8, 0x99, 0x55, 0xa8, 0xe7, 0x61, 0xfb, 0x61, 0xb9, 0xf6, 0x6d, 0x74, 0xa2, 0x58, -0x1d, 0x6f, 0x5d, 0x0d, 0x6b, 0xcd, 0x77, 0x76, 0xad, 0x8e, 0x8d, 0x44, 0x58, 0x2a, 0x3b, 0xa5, -0x2e, 0x30, 0xdc, 0x18, 0xad, 0x90, 0xe5, 0xd7, 0x6a, 0xad, 0x48, 0xcb, 0xb7, 0x04, 0x6a, 0xed, -0x39, 0x71, 0x9c, 0xcc, 0xc5, 0xde, 0x93, 0x13, 0xeb, 0x3d, 0x57, 0x87, 0x95, 0xde, 0xe3, 0xc2, -0xde, 0x93, 0x85, 0x2d, 0xa2, 0x8e, 0xf7, 0x9e, 0x7c, 0x13, 0xc2, 0xa7, 0xd0, 0x76, 0x0a, 0xd2, -0x9f, 0xd2, 0x2e, 0x4a, 0x1b, 0xd2, 0xe9, 0x72, 0x59, 0x5a, 0xcf, 0x62, 0xa3, 0xf8, 0x68, 0xcd, -0xd5, 0x63, 0x60, 0xc8, 0x60, 0x30, 0xf0, 0x08, 0x43, 0x43, 0x02, 0x0c, 0x0b, 0xc6, 0xc0, 0xd0, -0x96, 0x00, 0x43, 0x06, 0xc2, 0xc0, 0xc7, 0x61, 0x28, 0xf0, 0x44, 0x03, 0x79, 0x5f, 0x09, 0x87, -0x3e, 0x06, 0xc7, 0xc8, 0x26, 0x05, 0x0e, 0xc5, 0x02, 0x86, 0x0c, 0x87, 0x9d, 0xf8, 0xfa, 0x22, -0x1a, 0xf1, 0xe8, 0x24, 0x7a, 0x20, 0xb3, 0x36, 0x19, 0xe5, 0x27, 0x1e, 0x47, 0x97, 0x42, 0x31, -0x9b, 0x9d, 0x5f, 0xa2, 0x91, 0xe1, 0x0d, 0xd1, 0x62, 0x44, 0x9a, 0x89, 0xfb, 0x0f, 0x88, 0x59, -0x71, 0xf7, 0xe3, 0x58, 0x07, 0xfc, 0xd2, 0x16, 0x9b, 0xbf, 0xdc, 0xab, 0xcc, 0x62, 0xe9, 0x64, -0x9b, 0x05, 0x74, 0xc2, 0x15, 0xc7, 0xa2, 0x74, 0xd2, 0x96, 0x50, 0x56, 0xc9, 0xa6, 0x18, 0xb2, -0x15, 0x82, 0xbf, 0x69, 0x09, 0xa1, 0x05, 0xb4, 0xa4, 0x87, 0x09, 0xa3, 0x67, 0x64, 0xf7, 0x8e, -0xdf, 0x13, 0x24, 0x6b, 0x9d, 0x6c, 0x74, 0x6a, 0x91, 0xe7, 0x28, 0xf1, 0x9b, 0xc0, 0xea, 0x93, -0x46, 0xf2, 0x64, 0xc0, 0x84, 0xb5, 0x41, 0x59, 0x24, 0xe0, 0x50, 0x6a, 0xb5, 0xc0, 0x6c, 0xc1, -0x5c, 0xd3, 0xb1, 0x17, 0xab, 0xdb, 0x62, 0xda, 0xc3, 0x1e, 0x31, 0xfd, 0x06, 0xa1, 0xbb, 0x7b, -0x7b, 0x40, 0x1b, 0xa7, 0x5b, 0xb3, 0x21, 0x3d, 0x56, 0x5f, 0x79, 0x1d, 0x03, 0x25, 0x02, 0xad, -0x2d, 0x1d, 0x5b, 0x37, 0x3b, 0x36, 0x1e, 0x3f, 0x30, 0x20, 0x1e, 0x61, 0x35, 0xcf, 0x56, 0xac, -0xe2, 0x60, 0x7d, 0x10, 0x9a, 0x74, 0x53, 0xa5, 0xa1, 0x4a, 0x81, 0xc6, 0xaa, 0x40, 0x33, 0x43, -0x81, 0xa6, 0x48, 0x28, 0xa7, 0x5d, 0x38, 0x02, 0xe6, 0x95, 0xb0, 0xb6, 0x87, 0xbe, 0xc3, 0x9b, -0x45, 0x41, 0xb8, 0xee, 0x8b, 0x01, 0x7d, 0x6f, 0x6e, 0x16, 0x35, 0x6f, 0x9e, 0x43, 0x8e, 0xbc, -0x8a, 0x8d, 0xcf, 0x10, 0xb3, 0x53, 0x80, 0x38, 0x76, 0x61, 0x89, 0x6e, 0x13, 0x7f, 0x34, 0x3a, -0x56, 0xae, 0x30, 0xd1, 0x29, 0x58, 0x2b, 0x8e, 0xd6, 0x45, 0x36, 0x1b, 0x54, 0xc4, 0xad, 0x39, -0xb8, 0x98, 0x7c, 0x41, 0x67, 0x86, 0xf4, 0x3f, 0x39, 0xf4, 0xd3, 0xdf, 0x87, 0x60, 0xf3, 0x6b, -0x41, 0x8e, 0x78, 0x89, 0x25, 0xe5, 0x89, 0xd5, 0xbb, 0xba, 0x17, 0x9a, 0x49, 0xbf, 0xcc, 0xc8, -0xeb, 0x96, 0x76, 0xe7, 0x75, 0x83, 0x5f, 0xeb, 0x0b, 0xfb, 0xba, 0x71, 0xb4, 0x46, 0x39, 0xe2, -0x83, 0x35, 0xed, 0xfa, 0xbe, 0xce, 0x7a, 0xed, 0x9b, 0x03, 0xbe, 0x6e, 0xa4, 0xe9, 0xa1, 0x5d, -0xdd, 0xfe, 0x6c, 0xf3, 0xc4, 0x63, 0x61, 0x9a, 0x4f, 0x80, 0x70, 0xb3, 0xde, 0x04, 0x55, 0x9d, -0x1f, 0xac, 0xe9, 0xd0, 0xee, 0xe9, 0xac, 0x57, 0x1b, 0x5c, 0x41, 0x30, 0x73, 0xef, 0xad, 0x95, -0xcf, 0xfb, 0x9a, 0x26, 0xe2, 0x3b, 0xdc, 0xa2, 0x6e, 0x7b, 0xb8, 0x4c, 0x65, 0x50, 0x55, 0x45, -0xa2, 0x5d, 0x9b, 0x5f, 0x11, 0x05, 0xab, 0x83, 0xcd, 0x8f, 0x62, 0x78, 0x51, 0x07, 0xd0, 0xfa, -0x17, 0x70, 0xdc, 0xa6, 0x75, 0xd1, 0xae, 0x0d, 0xeb, 0x66, 0x7d, 0x76, 0x56, 0x6a, 0xe3, 0xbe, -0x16, 0x39, 0x00, 0xb3, 0xcf, 0xa3, 0x5e, 0xe4, 0x05, 0xfb, 0xec, 0x4f, 0x8f, 0x81, 0x59, 0x65, -0x4d, 0x7a, 0xf2, 0x51, 0x51, 0xf7, 0xde, 0xaa, 0xe8, 0xa4, 0x5c, 0xcd, 0x3b, 0xeb, 0x6e, 0x8f, -0xb4, 0xc3, 0xfd, 0x87, 0xa4, 0x4f, 0x9d, 0xae, 0xaa, 0xae, 0xba, 0x73, 0xff, 0xf9, 0x0a, 0x52, -0x82, 0xfd, 0x8f, 0xaf, 0x60, 0x0d, 0x32, 0xa8, 0x54, 0xbf, 0x9e, 0x9d, 0x17, 0xb2, 0xfb, 0xba, -0x59, 0x7f, 0x01, 0xc9, 0xc4, 0xfc, 0x02, 0xfb, 0x06, 0x52, 0xe6, 0xae, 0xb5, 0x75, 0xe9, 0x66, -0x27, 0xb6, 0x53, 0x91, 0x13, 0x25, 0xb9, 0x8c, 0xb7, 0x7d, 0xe1, 0x5d, 0x61, 0xff, 0x15, 0x91, -0xe8, 0xab, 0x28, 0x7b, 0x0f, 0xd0, 0x5a, 0x96, 0x43, 0x58, 0x4b, 0xbb, 0x0c, 0x62, 0xe7, 0xb7, -0x69, 0xc6, 0x80, 0xe8, 0x56, 0x28, 0x2a, 0x2f, 0xb9, 0xcf, 0x1b, 0xa3, 0x6f, 0x85, 0x7a, 0x77, -0xc8, 0xf3, 0x03, 0x44, 0xdb, 0xd8, 0x1a, 0x3a, 0xcf, 0x26, 0x79, 0x16, 0x7f, 0x6f, 0x2f, 0xa3, -0xe2, 0xf8, 0xcc, 0x90, 0x31, 0x2c, 0xa4, 0xc9, 0x74, 0xae, 0x8c, 0x2c, 0x79, 0x28, 0x2d, 0x66, -0xe2, 0x28, 0x2b, 0x04, 0x41, 0x3f, 0x15, 0x6e, 0x0d, 0x41, 0xda, 0x54, 0xf8, 0x9a, 0x50, 0x4c, -0x67, 0x0c, 0x05, 0x07, 0xfd, 0x26, 0xee, 0xc5, 0x60, 0x92, 0x0b, 0x7f, 0x03, 0xdb, 0x1a, 0x6b, -0xdb, 0xbc, 0x47, 0x49, 0x72, 0x4c, 0x89, 0x59, 0xbb, 0xb8, 0xfa, 0xa4, 0x8d, 0xe6, 0xa4, 0x7a, -0xdd, 0x0f, 0xf1, 0x06, 0xa4, 0xd5, 0x06, 0xab, 0x83, 0x24, 0x53, 0x83, 0x47, 0xe0, 0xe9, 0xec, -0x2e, 0x69, 0x6e, 0x58, 0xdb, 0x6a, 0x92, 0xcc, 0xc6, 0xe6, 0x67, 0xa5, 0xfc, 0x8a, 0x12, 0xf2, -0xa9, 0x66, 0x76, 0x93, 0x34, 0x32, 0x2c, 0xee, 0x06, 0xb2, 0x4c, 0x81, 0xa3, 0x16, 0x9d, 0xa6, -0x3a, 0xbd, 0x98, 0xce, 0xea, 0x0b, 0xf2, 0x39, 0x1e, 0xc8, 0x16, 0xd6, 0xc9, 0xa7, 0x5c, 0x9c, -0x8e, 0x8a, 0x8f, 0x2b, 0x74, 0xf2, 0xec, 0x15, 0xd6, 0xf1, 0xa2, 0xfb, 0x83, 0x19, 0x79, 0x26, -0xd4, 0x0d, 0xa9, 0x7c, 0x1c, 0x3f, 0x76, 0xe1, 0xd3, 0x3b, 0x5a, 0x27, 0x1a, 0xd7, 0x51, 0x5a, -0x20, 0x28, 0x12, 0x56, 0xc9, 0xcd, 0x34, 0x66, 0x0d, 0x21, 0x0c, 0x28, 0x79, 0xb0, 0xf2, 0x98, -0xdc, 0x9d, 0x57, 0xab, 0x68, 0xea, 0x00, 0xdb, 0xa8, 0x2c, 0xc4, 0xc6, 0xa7, 0x06, 0xac, 0x41, -0x55, 0x24, 0xa7, 0x58, 0xba, 0xec, 0xc4, 0x11, 0xdd, 0xca, 0xea, 0x6c, 0x99, 0x0a, 0xe9, 0x9a, -0x15, 0x00, 0xc8, 0x82, 0x34, 0xb6, 0xa4, 0xd2, 0xe1, 0x91, 0x46, 0xef, 0x26, 0x1c, 0x89, 0xdb, -0x25, 0xc9, 0x56, 0x54, 0xec, 0x9b, 0xe9, 0x64, 0xd6, 0x40, 0xf2, 0xd9, 0xfa, 0x4d, 0xd8, 0x3f, -0x9f, 0xe2, 0xc8, 0xdf, 0x59, 0xdd, 0x3e, 0xb5, 0xa9, 0x66, 0x0e, 0x7f, 0xd1, 0xc1, 0x24, 0xbc, -0xcc, 0x50, 0x32, 0xf6, 0x55, 0x43, 0x2c, 0x06, 0xcd, 0xd0, 0x91, 0x1c, 0x21, 0x7f, 0xeb, 0x45, -0xb9, 0x6f, 0xee, 0x3e, 0x77, 0xd4, 0xe7, 0x24, 0x8d, 0x98, 0xc5, 0xe9, 0x1f, 0x51, 0xb0, 0xf6, -0x05, 0x3b, 0x67, 0xc6, 0xac, 0xc1, 0xb8, 0xae, 0xb3, 0x06, 0xf3, 0x71, 0x45, 0x87, 0x34, 0xa8, -0x60, 0xe7, 0x3c, 0x62, 0xa7, 0x80, 0x66, 0x26, 0x49, 0xce, 0x32, 0x36, 0xa1, 0x9c, 0x85, 0xb0, -0xa3, 0x9c, 0x3a, 0xec, 0x9c, 0x2a, 0x49, 0xc4, 0x03, 0x50, 0x33, 0xc0, 0x7e, 0x4b, 0x1c, 0x21, -0x66, 0x3b, 0x83, 0x64, 0x29, 0x7c, 0x24, 0x79, 0x26, 0xec, 0x8b, 0xab, 0x6c, 0xad, 0x2a, 0x13, -0x7b, 0xf9, 0xdc, 0x56, 0x1e, 0xf5, 0x32, 0x7e, 0x19, 0x78, 0x36, 0x35, 0xa9, 0x71, 0x5c, 0xe1, -0x30, 0xa5, 0x05, 0x71, 0x9e, 0x03, 0xbd, 0xf8, 0xec, 0x92, 0x71, 0x4e, 0xf6, 0x34, 0x30, 0xf5, -0x65, 0x7c, 0x46, 0x94, 0x1c, 0xfa, 0xad, 0xb1, 0x1c, 0xd2, 0xb5, 0x3c, 0xed, 0x6c, 0xa1, 0xf9, -0x64, 0x91, 0xaf, 0x1c, 0xb8, 0xc3, 0x21, 0x9d, 0x47, 0xf7, 0x84, 0x2a, 0x40, 0xd7, 0xc7, 0xa8, -0x91, 0x7f, 0x72, 0x07, 0xa6, 0x92, 0x2e, 0xe0, 0xaf, 0x24, 0x5d, 0x44, 0x2d, 0x59, 0x2b, 0xfd, -0x19, 0x25, 0xa6, 0xcb, 0xb4, 0xf7, 0xb7, 0x41, 0xc3, 0x56, 0x21, 0xa4, 0x13, 0x91, 0x3b, 0x8a, -0xa5, 0x4f, 0x59, 0x8a, 0xbf, 0x90, 0x34, 0x75, 0xdd, 0xb7, 0x4b, 0xec, 0xdb, 0x67, 0x46, 0x9a, -0x2f, 0xea, 0xa5, 0x93, 0x43, 0xd8, 0x4a, 0xc9, 0x84, 0xf3, 0xab, 0xaf, 0x7a, 0x37, 0xc7, 0x5a, -0xa9, 0x7c, 0x76, 0xf1, 0x4c, 0x9a, 0xf9, 0xb8, 0xba, 0x4e, 0x69, 0xa5, 0x76, 0x8a, 0x23, 0x7f, -0x67, 0xad, 0x74, 0xde, 0xa6, 0x2e, 0x1f, 0xfe, 0xab, 0x6c, 0x81, 0x48, 0x6e, 0xa5, 0xec, 0x58, -0x0c, 0x6c, 0xa5, 0xcb, 0xd8, 0x1a, 0xb2, 0x34, 0x40, 0xad, 0x74, 0x39, 0xe0, 0x76, 0x3a, 0x45, -0x21, 0xe1, 0xfb, 0xb0, 0x2d, 0x29, 0xe1, 0xfb, 0xb0, 0xdc, 0x8a, 0xec, 0x7b, 0xff, 0x55, 0x07, -0x93, 0x24, 0xfa, 0xff, 0xba, 0x25, 0xd6, 0x82, 0xd4, 0x62, 0xd9, 0x1d, 0xd2, 0x21, 0x6a, 0x31, -0xcf, 0x0a, 0x7f, 0x5f, 0x2b, 0x72, 0x3e, 0xe4, 0xbb, 0x24, 0xbf, 0xd0, 0x7a, 0x45, 0x3e, 0x8e, -0x6f, 0x05, 0xd9, 0x36, 0xf8, 0xe6, 0xb2, 0x9b, 0xdf, 0x8e, 0x0a, 0x49, 0xa3, 0xfb, 0x6f, 0x6c, -0x2a, 0xd9, 0x76, 0x49, 0x02, 0xde, 0xdb, 0x41, 0x92, 0x2d, 0xe8, 0x14, 0x64, 0x07, 0x2f, 0x1e, -0xa4, 0xb9, 0x0f, 0x5d, 0x23, 0xbf, 0x60, 0xc5, 0x99, 0x47, 0x91, 0x97, 0x98, 0x37, 0xbf, 0x26, -0xf0, 0x65, 0xd8, 0xc7, 0x37, 0x86, 0x73, 0xf9, 0x37, 0xc2, 0xd3, 0x4b, 0x45, 0xeb, 0x9e, 0x2c, -0xbf, 0x26, 0x0b, 0xca, 0x92, 0x5e, 0xd7, 0x9f, 0x74, 0xf8, 0xf5, 0xc4, 0xc7, 0xa4, 0xb0, 0xa8, -0x15, 0x5c, 0xc6, 0x62, 0x7b, 0x11, 0x84, 0xcd, 0x9e, 0x9f, 0xbc, 0xbc, 0x6b, 0x6d, 0xf3, 0xdb, -0x47, 0x1e, 0x39, 0xb6, 0xc6, 0xb7, 0x6a, 0xf7, 0xaa, 0xe6, 0x33, 0x38, 0xb2, 0x5f, 0x8d, 0xad, -0xea, 0x25, 0xae, 0xa9, 0x8d, 0xda, 0x97, 0x18, 0xa5, 0x45, 0x85, 0x03, 0xb1, 0xd3, 0xa2, 0x46, -0x92, 0xf3, 0x49, 0xc6, 0x6f, 0x62, 0xb4, 0xc7, 0xce, 0x38, 0xe2, 0x73, 0x1e, 0x1f, 0x76, 0xf2, -0x0c, 0x9f, 0x2b, 0xf2, 0xd8, 0x47, 0x96, 0x48, 0xca, 0x87, 0xaf, 0x18, 0xbc, 0x5b, 0x8c, 0xa0, -0xec, 0xf9, 0xe0, 0x98, 0x75, 0x12, 0xc2, 0x56, 0x76, 0xee, 0xf6, 0x58, 0x1c, 0xef, 0x16, 0x33, -0x3c, 0x1e, 0x95, 0x63, 0x60, 0x7b, 0xf2, 0x4a, 0x0c, 0xc1, 0xd3, 0xd5, 0x02, 0xaa, 0x1d, 0xe5, -0x1f, 0x61, 0x9b, 0xb3, 0x9e, 0x4a, 0x32, 0xce, 0xf0, 0x1b, 0xf2, 0x0e, 0x5d, 0xd5, 0x86, 0xeb, -0xd6, 0x96, 0x46, 0xed, 0x79, 0xcc, 0xf5, 0xf6, 0x7f, 0x7e, 0x50, 0xd1, 0x2c, 0xae, 0x62, 0xdc, -0x3a, 0x83, 0xca, 0x14, 0x9b, 0x91, 0x3c, 0xda, 0x87, 0x1c, 0x41, 0xe5, 0x9b, 0x4c, 0x92, 0x73, -0xc3, 0x64, 0x17, 0x34, 0xe7, 0x74, 0x80, 0xc4, 0x57, 0x4b, 0x7b, 0xf1, 0x7d, 0x3a, 0x25, 0x4d, -0xda, 0x97, 0x33, 0x4b, 0x7a, 0x35, 0xa1, 0xbc, 0x05, 0x56, 0x87, 0x72, 0xbe, 0xb0, 0xb7, 0x72, -0x3d, 0xe6, 0x95, 0x5d, 0xf2, 0x31, 0xf2, 0x1f, 0x87, 0xb0, 0x2a, 0x21, 0x4e, 0x21, 0xf1, 0x4b, -0xa9, 0x37, 0xa8, 0xc6, 0x6f, 0xbb, 0xe9, 0xfc, 0x63, 0xc2, 0xb7, 0x49, 0xca, 0x37, 0x3a, 0xff, -0x78, 0x3c, 0xc6, 0x91, 0xf8, 0xcc, 0xd1, 0x18, 0x7f, 0xbd, 0x2a, 0xc7, 0x20, 0xfe, 0xff, 0x48, -0x5f, 0x90, 0x6a, 0xd3, 0x21, 0xd7, 0x91, 0xdb, 0x2b, 0x02, 0xf7, 0x49, 0x42, 0xcc, 0x23, 0x14, -0x8f, 0xc1, 0xe3, 0x43, 0x08, 0xcc, 0xa0, 0xad, 0x5c, 0xaf, 0x0b, 0x97, 0x15, 0x97, 0x94, 0xfa, -0xf3, 0x42, 0x49, 0x3b, 0xb7, 0x81, 0xbe, 0xce, 0x92, 0x10, 0xfb, 0x69, 0x25, 0xdf, 0x8f, 0xa5, -0x77, 0x82, 0x1a, 0xe2, 0xe3, 0x95, 0xeb, 0x43, 0x1a, 0x66, 0x45, 0xa8, 0x1d, 0xf3, 0xad, 0x61, -0xab, 0xd1, 0xbb, 0x75, 0x61, 0xea, 0x3d, 0xb4, 0x0a, 0x18, 0x9c, 0xd8, 0x4b, 0x39, 0x00, 0x37, -0x2f, 0x21, 0x0f, 0xd1, 0x4a, 0x33, 0xc8, 0xa5, 0x01, 0x0d, 0xe6, 0x32, 0x24, 0x52, 0xfd, 0x0e, -0xb2, 0xda, 0x24, 0x53, 0x7e, 0xac, 0x27, 0x01, 0x97, 0x8a, 0xdf, 0xa7, 0xb3, 0xf3, 0x93, 0x57, -0xf0, 0xb9, 0x88, 0xcf, 0xd0, 0xfd, 0xeb, 0xef, 0x6c, 0x92, 0xde, 0x85, 0x09, 0xf8, 0xfb, 0x0e, -0xa8, 0xb0, 0x0f, 0xf5, 0xb2, 0x55, 0xd2, 0xd3, 0x5b, 0xcf, 0xb0, 0x76, 0x75, 0x60, 0x79, 0x6f, -0x88, 0xc4, 0xb3, 0x29, 0xd5, 0x25, 0xea, 0xa1, 0xf8, 0x1c, 0xfc, 0x3b, 0x52, 0x3d, 0x45, 0x67, -0x90, 0x75, 0x61, 0xe2, 0xcb, 0xfe, 0xf9, 0x1e, 0x27, 0x9d, 0xdb, 0xc5, 0x94, 0x67, 0x71, 0x94, -0xd0, 0xdf, 0x30, 0x75, 0xff, 0x95, 0x03, 0x6c, 0xad, 0xd2, 0xe1, 0x6f, 0x10, 0x1b, 0x58, 0xdc, -0x53, 0x5f, 0x11, 0xf7, 0x49, 0x25, 0xae, 0x43, 0xac, 0xd6, 0x85, 0x83, 0xcd, 0x01, 0xc1, 0x5f, -0x11, 0xe4, 0x7a, 0x3b, 0x9b, 0xb2, 0x05, 0x15, 0xad, 0x8c, 0xd2, 0xe8, 0xb1, 0xa9, 0x07, 0xa9, -0x26, 0xa2, 0x6d, 0x10, 0x54, 0x1f, 0x74, 0x4f, 0x46, 0x7c, 0x69, 0xdb, 0x7c, 0x9d, 0xa2, 0xe9, -0x3b, 0x28, 0x0f, 0x49, 0xbb, 0x44, 0x7e, 0x19, 0xd7, 0xce, 0x89, 0x99, 0xcb, 0x39, 0xec, 0xf5, -0x69, 0x6d, 0xe0, 0x9c, 0xe9, 0x74, 0xe2, 0x38, 0xb3, 0xcb, 0x59, 0xea, 0x74, 0x59, 0x93, 0x2b, -0x57, 0x8e, 0xe2, 0xf5, 0x8a, 0x36, 0x81, 0x2a, 0x8e, 0xca, 0xad, 0x3d, 0x92, 0x29, 0xea, 0x12, -0x53, 0x8c, 0xc6, 0xfe, 0xfc, 0xed, 0x78, 0xbb, 0x1f, 0xc4, 0xb8, 0xae, 0xc0, 0x24, 0x1a, 0xfd, -0xa5, 0x77, 0x7c, 0xe1, 0xc9, 0x0e, 0xe8, 0x65, 0xee, 0x77, 0x99, 0x7b, 0xd7, 0x6d, 0x4d, 0xd2, -0x7b, 0xf0, 0x1c, 0xe2, 0x45, 0x83, 0xf4, 0x7d, 0x0a, 0x0e, 0x78, 0x66, 0x32, 0xd7, 0x59, 0x38, -0x8f, 0x6d, 0x24, 0xa2, 0xeb, 0x3c, 0xec, 0xc7, 0x5a, 0x5c, 0x9a, 0x5c, 0x0c, 0x03, 0x2c, 0xdd, -0xeb, 0x2c, 0xdd, 0x9e, 0x56, 0x48, 0x9f, 0x2a, 0x1d, 0x9c, 0xec, 0x84, 0x3e, 0x0f, 0x96, 0x1e, -0x98, 0x8e, 0x31, 0x2f, 0xc2, 0x59, 0x16, 0x3a, 0x84, 0xa1, 0xc7, 0xb1, 0xfc, 0x2b, 0xf2, 0xfe, -0x8c, 0xc9, 0x6e, 0x38, 0xc5, 0x52, 0xbe, 0xe5, 0x0b, 0x8b, 0x6a, 0xcc, 0xe7, 0x14, 0xa6, 0x3f, -0x81, 0x23, 0x89, 0xbc, 0x6f, 0x26, 0x7e, 0x56, 0x14, 0xb9, 0xc5, 0x29, 0x92, 0xb7, 0x89, 0x5b, -0x18, 0x15, 0x6e, 0x61, 0x66, 0x5c, 0xdc, 0x94, 0xa2, 0xf0, 0x71, 0x1d, 0x71, 0xd0, 0xcb, 0x23, -0x4a, 0x7f, 0xa6, 0x73, 0x30, 0xa8, 0xc1, 0xcb, 0xfb, 0xf0, 0xe5, 0x30, 0xfe, 0x2a, 0xca, 0xdb, -0xcd, 0x01, 0xa3, 0x81, 0x47, 0x89, 0xbb, 0x61, 0x54, 0xe2, 0xf6, 0x84, 0x9b, 0x80, 0x3f, 0x85, -0x72, 0x77, 0x73, 0x6c, 0x65, 0x81, 0x3f, 0xe6, 0xe9, 0x81, 0xfd, 0x7e, 0x2d, 0xfe, 0x1e, 0xc0, -0x74, 0xfb, 0x95, 0x3e, 0xfd, 0x09, 0xf5, 0xe9, 0xe4, 0xb0, 0xf4, 0x29, 0xf6, 0xe9, 0xcb, 0x4a, -0x79, 0xeb, 0xe4, 0xfe, 0xac, 0x9c, 0x47, 0x05, 0xfe, 0x49, 0x73, 0x54, 0xc1, 0x34, 0x7d, 0x0d, -0x62, 0xbb, 0x54, 0xb0, 0x7e, 0x7c, 0x26, 0xa1, 0x1f, 0xd3, 0x97, 0xb9, 0xec, 0x0b, 0x37, 0xa6, -0x17, 0x8b, 0x46, 0xf9, 0x3b, 0x72, 0x2c, 0x73, 0x11, 0x9c, 0xbe, 0x29, 0x4d, 0x70, 0x79, 0x37, -0xc4, 0x46, 0xa5, 0xb2, 0xfb, 0x7c, 0xb3, 0x6d, 0xba, 0xd9, 0xc3, 0x9f, 0x5d, 0x61, 0x16, 0xbe, -0x32, 0x59, 0x8a, 0x5c, 0x8a, 0x1b, 0x8b, 0x85, 0x7a, 0x5b, 0x11, 0xf5, 0x5e, 0x6c, 0xe3, 0x78, -0x0c, 0xce, 0x8c, 0x63, 0xe8, 0x8b, 0x6c, 0xd4, 0x1b, 0x4e, 0xb3, 0xc0, 0x6f, 0xaa, 0x38, 0x1c, -0x05, 0xbf, 0xf0, 0x34, 0x40, 0xd7, 0xdc, 0x01, 0x17, 0x85, 0x5e, 0xbd, 0xa3, 0x01, 0x9e, 0x93, -0xae, 0xa1, 0x94, 0xb5, 0x17, 0x6b, 0x7b, 0x96, 0xad, 0x11, 0x9c, 0x0a, 0xe8, 0x50, 0xe6, 0x3f, -0x61, 0x77, 0xbc, 0xf0, 0x72, 0x1d, 0x6f, 0xe7, 0xf2, 0xe0, 0x88, 0xe3, 0x88, 0xa3, 0x80, 0xab, -0x72, 0xd9, 0xd5, 0x8d, 0x6a, 0x8d, 0x03, 0xc7, 0x52, 0x07, 0xa6, 0x1c, 0xb9, 0xc3, 0x25, 0x73, -0x57, 0x84, 0xa9, 0xdb, 0xbb, 0x55, 0x86, 0x80, 0xcd, 0xb5, 0x20, 0x8d, 0x7d, 0xda, 0xc7, 0xc6, -0x46, 0xc6, 0x1f, 0x60, 0x13, 0xe3, 0xc1, 0x18, 0x23, 0xfe, 0x45, 0x4f, 0xf8, 0x0d, 0x14, 0xb0, -0x36, 0xea, 0x23, 0x6d, 0x73, 0xf6, 0xf0, 0xe7, 0x41, 0x06, 0x35, 0xe9, 0x8e, 0x02, 0x83, 0x64, -0x12, 0xfb, 0x7a, 0x9c, 0xe9, 0xa2, 0xca, 0x97, 0xb9, 0x72, 0xfb, 0x68, 0x70, 0x44, 0xe5, 0x5b, -0x39, 0xd6, 0x3a, 0x15, 0x2c, 0xd6, 0x01, 0x39, 0x8f, 0xcb, 0xa9, 0xf1, 0x3c, 0xf2, 0xf1, 0xeb, -0x79, 0xd6, 0x9f, 0x1b, 0xe0, 0x7c, 0x62, 0x1e, 0xfe, 0x4c, 0x31, 0x73, 0x0c, 0x3c, 0x66, 0x65, -0xcf, 0xa3, 0x9c, 0x63, 0x5b, 0x60, 0x9e, 0x59, 0x6e, 0x05, 0x35, 0xc9, 0x05, 0x97, 0x9e, 0x1b, -0x95, 0x0b, 0xa8, 0x07, 0x53, 0x8a, 0x4b, 0x6d, 0x0a, 0x76, 0xed, 0xb2, 0x3c, 0x86, 0xf9, 0x58, -0xa0, 0x0d, 0xe5, 0xa5, 0x86, 0xc1, 0x1e, 0x08, 0xc9, 0xb9, 0xfe, 0xb9, 0x2f, 0x2e, 0xab, 0x65, -0xe3, 0x38, 0x4c, 0x21, 0x03, 0xb4, 0x6a, 0x0b, 0xcb, 0xc7, 0xe5, 0xef, 0xbd, 0x41, 0xfe, 0x19, -0x37, 0xc8, 0x7f, 0x39, 0xb6, 0x48, 0xc3, 0x91, 0x1e, 0x58, 0x66, 0xe3, 0x58, 0x6e, 0x35, 0xd7, -0xe5, 0x2f, 0x32, 0xab, 0x93, 0x0a, 0x7d, 0xfd, 0xe5, 0xb2, 0x02, 0x07, 0xb3, 0x11, 0x95, 0xb0, -0xef, 0x8d, 0xe6, 0x08, 0x0f, 0xb0, 0x1e, 0x45, 0xf6, 0x0e, 0x69, 0x95, 0xcf, 0x6a, 0x6a, 0x91, -0xf7, 0x3d, 0x58, 0x50, 0x96, 0x28, 0x68, 0x81, 0x19, 0x74, 0x86, 0x7c, 0xef, 0xcb, 0x9e, 0x16, -0x70, 0x06, 0x32, 0x0c, 0xbe, 0xe2, 0x0f, 0x61, 0x22, 0xd3, 0xa3, 0x92, 0x51, 0x7e, 0x27, 0x6d, -0x7c, 0xc0, 0x7f, 0x25, 0xc8, 0x7d, 0xb0, 0x2d, 0x17, 0xaa, 0x1e, 0x69, 0x85, 0x76, 0xd2, 0xdf, -0xa0, 0xa0, 0xa2, 0xfc, 0x3c, 0x4c, 0xb3, 0xaa, 0x5c, 0x2b, 0x69, 0x3f, 0xab, 0x27, 0x1a, 0x50, -0x57, 0x45, 0xc5, 0x3a, 0x8f, 0xde, 0x3f, 0x5d, 0xf0, 0x29, 0x73, 0x40, 0x2b, 0x75, 0x7a, 0x28, -0xf7, 0x2f, 0xd7, 0x99, 0x61, 0x36, 0x70, 0xfe, 0x36, 0xb6, 0xef, 0x8c, 0xff, 0xf7, 0x01, 0x7f, -0x23, 0x86, 0x7c, 0x17, 0x54, 0xfe, 0xba, 0x9a, 0x6e, 0x8b, 0x47, 0x98, 0x0a, 0x6a, 0x0b, 0xe6, -0x9f, 0x96, 0x19, 0x98, 0xaf, 0xe3, 0xa4, 0x7f, 0xae, 0xd5, 0x68, 0x38, 0xe9, 0x84, 0x98, 0x4d, -0x3b, 0x04, 0x98, 0xfb, 0x79, 0x51, 0xcf, 0x33, 0x69, 0xce, 0xc8, 0x69, 0xa2, 0x28, 0x07, 0xda, -0x9c, 0xdc, 0x85, 0xb5, 0x72, 0xc8, 0xb1, 0xc8, 0x82, 0xb0, 0xa8, 0x1b, 0x5c, 0x69, 0x50, 0x9f, -0xf8, 0x97, 0x7d, 0x13, 0x32, 0x5e, 0x46, 0xa9, 0x24, 0xdc, 0xac, 0xee, 0x5f, 0xe5, 0x3f, 0xdf, -0xbf, 0xaa, 0x19, 0xa4, 0xc6, 0x20, 0x88, 0xa9, 0x6c, 0x6d, 0x66, 0x9f, 0x28, 0xaf, 0xd1, 0xfc, -0xb1, 0xe2, 0xdd, 0xa2, 0xab, 0x31, 0x3d, 0x16, 0x71, 0x50, 0x60, 0x45, 0x5d, 0x76, 0xba, 0x0d, -0x66, 0x04, 0x34, 0xe5, 0x1f, 0xc1, 0x71, 0x51, 0x8d, 0xbf, 0x7d, 0xa4, 0x87, 0x15, 0xaa, 0xdc, -0xbf, 0xcb, 0xeb, 0x80, 0x69, 0x6f, 0xfe, 0x4e, 0x14, 0x74, 0x69, 0x58, 0x8b, 0x2c, 0x9d, 0x85, -0xd5, 0x22, 0x0d, 0x6b, 0x61, 0x01, 0xfe, 0xc5, 0x01, 0xbf, 0x16, 0x43, 0xb0, 0x16, 0x01, 0xbd, -0xcd, 0x8d, 0x72, 0x59, 0x0d, 0x5b, 0x09, 0x1b, 0xc2, 0x51, 0xb1, 0x08, 0xa9, 0x4f, 0x1d, 0x5b, -0x19, 0xa7, 0xd5, 0x09, 0x1c, 0x0f, 0xcd, 0x2c, 0x55, 0x92, 0xc5, 0x31, 0xeb, 0x63, 0xe9, 0xdd, -0x76, 0xc8, 0x44, 0xfd, 0x26, 0xf4, 0xee, 0xb1, 0x88, 0xa7, 0x24, 0xa0, 0xff, 0xed, 0x47, 0xd0, -0x8b, 0x7d, 0x56, 0xd3, 0xb7, 0x1d, 0x76, 0x61, 0xbf, 0x19, 0xb9, 0x93, 0x4e, 0xd7, 0x4d, 0xbb, -0x93, 0x6e, 0x92, 0xc8, 0xbb, 0x93, 0xce, 0x3c, 0x7d, 0x93, 0x56, 0xcb, 0x62, 0xfa, 0x4b, 0x2e, -0xdc, 0x60, 0x37, 0xcc, 0x5c, 0x83, 0xc3, 0x38, 0x93, 0xd9, 0x89, 0xa4, 0xdd, 0x30, 0x34, 0x33, -0xdd, 0xe7, 0x29, 0xf1, 0xa7, 0x7f, 0x8b, 0xac, 0x4b, 0x75, 0xdd, 0x3d, 0x1b, 0x7a, 0xef, 0x76, -0xc1, 0xae, 0xaf, 0x75, 0xc0, 0x2d, 0xf0, 0x1c, 0xc2, 0x61, 0x83, 0x69, 0xa1, 0x77, 0x07, 0x23, -0x1f, 0x77, 0xa3, 0xe6, 0x47, 0x56, 0x77, 0x1c, 0xb3, 0x2e, 0x66, 0xbe, 0x5b, 0xfc, 0xd9, 0x31, -0x30, 0x69, 0x8f, 0x3e, 0x7a, 0x9d, 0xcd, 0xc7, 0x58, 0xfe, 0x25, 0xf1, 0xfc, 0xb5, 0x81, 0x1a, -0x9d, 0x0d, 0x9c, 0xf0, 0x4d, 0x9a, 0xb1, 0xb0, 0x3b, 0xcc, 0xdd, 0x53, 0x66, 0x83, 0x5a, 0x3e, -0xff, 0xc5, 0x66, 0x66, 0xb5, 0x6c, 0x07, 0xaf, 0xc3, 0xdb, 0x7f, 0x8d, 0xc9, 0xbb, 0xb4, 0xf3, -0x5a, 0xe4, 0x7d, 0x61, 0x23, 0xf7, 0x5e, 0xcf, 0x6f, 0xf7, 0x35, 0x5f, 0xa6, 0x13, 0x69, 0x64, -0x4d, 0xd3, 0x66, 0x45, 0x4d, 0x41, 0x8e, 0xd7, 0x28, 0xc7, 0x93, 0x2d, 0x9a, 0xca, 0x9a, 0x2f, -0xea, 0xa9, 0x44, 0xa7, 0x34, 0x5f, 0x67, 0x66, 0x7c, 0x59, 0x34, 0x37, 0xc0, 0x0c, 0xb6, 0x3f, -0x73, 0x03, 0xb3, 0x87, 0x90, 0x26, 0x7a, 0xd9, 0xda, 0xe9, 0x27, 0xb6, 0x14, 0x3a, 0x6b, 0x40, -0x33, 0xe3, 0x46, 0x9d, 0x69, 0xfe, 0x6e, 0xfa, 0x76, 0x46, 0xcc, 0x73, 0xde, 0x4a, 0xf3, 0xb4, -0x58, 0x56, 0xf2, 0xcc, 0xe1, 0x91, 0x34, 0xd9, 0x7a, 0x2f, 0x72, 0x88, 0x49, 0x14, 0xca, 0x60, -0x4d, 0x8e, 0x85, 0xcd, 0x65, 0x16, 0xb5, 0xe4, 0x39, 0x33, 0x2a, 0xbf, 0x48, 0x27, 0xaf, 0x62, -0x7d, 0xe9, 0x9c, 0xd2, 0x60, 0xcc, 0xb2, 0xe5, 0x7f, 0x7d, 0xc6, 0x89, 0x59, 0x6b, 0x55, 0x66, -0x22, 0x31, 0x46, 0x36, 0xca, 0xcf, 0x99, 0x1b, 0x0f, 0x88, 0x02, 0xb6, 0xc8, 0xed, 0x2f, 0x44, -0xda, 0xa0, 0x4c, 0xb5, 0xaf, 0xd3, 0x58, 0xfc, 0xd6, 0xcb, 0xe6, 0x87, 0xb8, 0x53, 0x7f, 0x3c, -0x78, 0xa2, 0xdb, 0x90, 0xbf, 0x0d, 0x5e, 0x0c, 0xfb, 0xba, 0x77, 0x75, 0xfb, 0x8f, 0xa3, 0xcc, -0xad, 0x93, 0x29, 0x58, 0xa0, 0x33, 0x30, 0x02, 0xa6, 0x35, 0x9a, 0x5b, 0xc0, 0x1c, 0xeb, 0xd5, -0x46, 0x8e, 0xac, 0x14, 0x9d, 0xf0, 0xdc, 0xe9, 0xc4, 0x92, 0x99, 0x1b, 0x5d, 0xb7, 0x18, 0xb9, -0x13, 0xab, 0xf1, 0x9d, 0x76, 0x67, 0x31, 0xdc, 0x6a, 0x00, 0x67, 0xb1, 0xbb, 0xf8, 0x44, 0x39, -0xba, 0xd3, 0x65, 0x37, 0xba, 0x6e, 0x33, 0xc0, 0x89, 0x55, 0xf8, 0xce, 0xb8, 0xd3, 0x01, 0x5f, -0x53, 0x24, 0x6d, 0x2d, 0xad, 0xb5, 0xb1, 0xd6, 0x34, 0xa3, 0xa6, 0xf9, 0x29, 0x9b, 0x7d, 0xd2, -0x22, 0x77, 0xcf, 0xaa, 0xdc, 0xc2, 0x4e, 0xfc, 0x51, 0x4b, 0xa7, 0xa1, 0xae, 0x4f, 0x36, 0x0d, -0xf5, 0xc6, 0x70, 0x0c, 0x83, 0xd9, 0x6a, 0x6a, 0x41, 0x5a, 0x05, 0x2c, 0x9a, 0x61, 0xb1, 0x8d, -0xee, 0xb1, 0x42, 0x28, 0x0b, 0x10, 0xca, 0x22, 0x13, 0x59, 0x3e, 0x52, 0xec, 0x96, 0x99, 0x41, -0x3e, 0x47, 0x74, 0xc2, 0x8d, 0xe5, 0x9a, 0x65, 0x37, 0xba, 0xa6, 0x08, 0xfc, 0x89, 0x6e, 0x7c, -0x5b, 0x10, 0xe6, 0x1c, 0x92, 0xf2, 0xc9, 0x9e, 0x6c, 0xab, 0x95, 0x41, 0x93, 0x34, 0x7b, 0x78, -0xc4, 0x2f, 0x73, 0x76, 0xb6, 0x76, 0xe8, 0xf1, 0x75, 0x31, 0x68, 0xc8, 0xee, 0x66, 0xda, 0xac, -0xe1, 0x91, 0xa7, 0xbd, 0x8f, 0xc9, 0xf0, 0x50, 0x2d, 0xd8, 0x2c, 0x7c, 0x92, 0x77, 0xab, 0x51, -0x5e, 0x63, 0x26, 0xad, 0x2d, 0x85, 0x34, 0x25, 0x84, 0x5b, 0x89, 0x25, 0xa4, 0xd7, 0x84, 0x07, -0xa3, 0xe6, 0x38, 0xf4, 0x1d, 0x45, 0xb4, 0x72, 0x78, 0xdf, 0x05, 0x9a, 0x47, 0xb8, 0x77, 0x86, -0x85, 0xe6, 0xb9, 0x6c, 0x50, 0x41, 0x92, 0xf5, 0x4b, 0x5f, 0x0b, 0x4e, 0x49, 0x98, 0x57, 0xa1, -0x55, 0xa9, 0x32, 0xda, 0x5d, 0x1d, 0x94, 0x68, 0x07, 0x32, 0xd6, 0xac, 0x1a, 0xfb, 0x8e, 0x93, -0x24, 0x2c, 0x2b, 0x7d, 0xcb, 0x72, 0x3e, 0x0f, 0xf9, 0xf8, 0x14, 0x08, 0x8e, 0x92, 0x0b, 0x90, -0x5f, 0x7a, 0x01, 0x0a, 0xfe, 0xe9, 0xf5, 0x9f, 0x1c, 0x62, 0x31, 0xf6, 0x07, 0xa5, 0xde, 0xc7, -0xfc, 0xa9, 0x42, 0x49, 0xef, 0x06, 0xbf, 0xd6, 0x82, 0xf1, 0x04, 0x8a, 0x57, 0x86, 0xf1, 0xec, -0x8f, 0x1d, 0x64, 0x31, 0xf6, 0x1a, 0x4a, 0x6c, 0xb7, 0xd8, 0x6e, 0x1b, 0x9d, 0xb7, 0xb0, 0xc0, -0xdb, 0xe1, 0xc4, 0x9d, 0x8b, 0xcc, 0x6a, 0x2a, 0x40, 0x0f, 0xb6, 0x4e, 0x0d, 0xf6, 0x28, 0x79, -0xa6, 0xad, 0x82, 0x66, 0xda, 0xae, 0x75, 0x59, 0xe7, 0xfc, 0xec, 0x02, 0xb8, 0x84, 0xd4, 0x06, -0xec, 0x77, 0x27, 0xc3, 0x28, 0x75, 0x94, 0x98, 0x2b, 0x7f, 0x72, 0x01, 0xdc, 0x82, 0x4e, 0x0e, -0x31, 0xb3, 0xf9, 0x7c, 0xc1, 0x25, 0xd6, 0x59, 0x92, 0xdf, 0x5e, 0x2b, 0x24, 0xc9, 0x5a, 0xe0, -0xc1, 0x30, 0x9d, 0xab, 0xea, 0x5d, 0xd1, 0xac, 0xb6, 0x40, 0xd5, 0x8a, 0x7f, 0x7a, 0x5d, 0x74, -0xe4, 0xa6, 0xbc, 0xb3, 0x4e, 0x98, 0x20, 0x7f, 0x7d, 0x83, 0xbe, 0xe6, 0xf7, 0x3e, 0xd2, 0xac, -0xa6, 0x51, 0x00, 0x71, 0x98, 0x84, 0x7c, 0x2f, 0x3f, 0x06, 0xdf, 0x3b, 0x61, 0xc3, 0xcc, 0x37, -0xff, 0x37, 0xc6, 0xb0, 0x0f, 0xae, 0xa2, 0x93, 0x65, 0xc2, 0x9f, 0xb5, 0xe0, 0x5b, 0xf3, 0x9b, -0xb7, 0x9a, 0xf6, 0xf8, 0x56, 0x1b, 0x4a, 0x7e, 0x7d, 0xb8, 0x69, 0xab, 0x50, 0xc6, 0xea, 0xd5, -0xc7, 0xac, 0xb8, 0xc5, 0x77, 0xb9, 0x8c, 0xd4, 0x92, 0x9f, 0xf6, 0x4d, 0xb2, 0x93, 0x99, 0xfa, -0x98, 0xd4, 0x77, 0x6f, 0x4c, 0xea, 0xd3, 0xa1, 0xd4, 0xa7, 0x8f, 0xe9, 0x85, 0x09, 0x1a, 0x20, -0x5f, 0x3e, 0x7c, 0x75, 0xb9, 0x6c, 0x0f, 0x98, 0x64, 0xb9, 0xa4, 0x82, 0x98, 0xee, 0x47, 0xdf, -0xbc, 0x5b, 0xac, 0x30, 0x16, 0x53, 0xb2, 0x15, 0xcf, 0xa4, 0xb4, 0xf2, 0x73, 0xe0, 0xcd, 0xa9, -0x40, 0x69, 0x3f, 0x85, 0xf6, 0x4f, 0xb2, 0x19, 0xef, 0xb9, 0x28, 0x1b, 0xaa, 0x4d, 0x9a, 0x98, -0x6e, 0x47, 0x31, 0xf7, 0xa0, 0x04, 0xa3, 0x3e, 0x83, 0x9a, 0x5d, 0xed, 0xe4, 0x32, 0xf0, 0x3b, -0x49, 0x5e, 0x2f, 0x83, 0xe6, 0xa0, 0x84, 0x1a, 0xdc, 0x15, 0x9a, 0x11, 0x63, 0x5a, 0xc0, 0x45, -0xe2, 0x3f, 0x8f, 0x9c, 0x60, 0xfb, 0xb6, 0x50, 0xb6, 0xb5, 0xa9, 0xe3, 0x36, 0x50, 0x07, 0x64, -0x1b, 0xa8, 0xea, 0xa7, 0x51, 0x4e, 0xbe, 0x82, 0xf2, 0xed, 0x36, 0x5a, 0xfb, 0xc3, 0xf0, 0x1d, -0x4e, 0x0b, 0xfc, 0x32, 0x7f, 0xcf, 0xfb, 0xfa, 0x7b, 0x3a, 0x38, 0x0e, 0x78, 0xf4, 0xd9, 0x27, -0xb3, 0x9d, 0x06, 0x50, 0xa8, 0xbc, 0x67, 0xdc, 0x53, 0x0c, 0xba, 0x7b, 0x1c, 0x90, 0x3a, 0xb9, -0x03, 0xc0, 0x01, 0xe0, 0x41, 0xa9, 0xf9, 0xa2, 0x3c, 0x9a, 0xaa, 0x0a, 0x2d, 0x66, 0x48, 0x36, -0x2f, 0x02, 0xcd, 0x72, 0x1c, 0x81, 0x73, 0xca, 0xa4, 0x53, 0xd6, 0x14, 0x11, 0x54, 0x19, 0x6d, -0x90, 0x91, 0x2e, 0x9f, 0x15, 0x41, 0xde, 0x6e, 0x05, 0x8e, 0xec, 0xa6, 0xad, 0x0c, 0xaf, 0xb4, -0x82, 0x8a, 0xf9, 0xf9, 0xf7, 0xba, 0x57, 0x86, 0x4d, 0xa5, 0xdf, 0x5b, 0xa3, 0xeb, 0x0c, 0x83, -0x3e, 0xa5, 0x36, 0x8f, 0xbd, 0x93, 0xeb, 0x00, 0xd6, 0x31, 0xd7, 0x84, 0xda, 0x74, 0xf6, 0x56, -0xd5, 0x39, 0xd9, 0x9b, 0xab, 0x07, 0xd5, 0x79, 0x51, 0x8e, 0x35, 0x11, 0xb5, 0xdc, 0x13, 0xa2, -0x89, 0xb9, 0xf5, 0xb5, 0xc9, 0xec, 0x7d, 0x73, 0x5d, 0x86, 0x98, 0xc9, 0x5c, 0x69, 0x0b, 0xf5, -0xf4, 0xbe, 0x65, 0x02, 0xc6, 0xea, 0x47, 0xe9, 0xbd, 0x98, 0xac, 0x32, 0x06, 0x55, 0xbd, 0x6b, -0xea, 0x40, 0xd5, 0x83, 0x72, 0xbf, 0x15, 0xd4, 0xf2, 0x79, 0x16, 0x06, 0x47, 0x12, 0xc1, 0xd5, -0x15, 0xee, 0xb2, 0xc2, 0x04, 0xe6, 0xd7, 0xbc, 0xd7, 0xdd, 0x15, 0xbe, 0x7f, 0x45, 0xe5, 0x5a, -0x4f, 0xb1, 0x7f, 0x92, 0xb8, 0xdc, 0xa8, 0xab, 0x89, 0x8e, 0x5a, 0x08, 0xb6, 0x40, 0xd9, 0x8a, -0xb7, 0xd7, 0x08, 0xce, 0xf2, 0x8b, 0x5a, 0x4e, 0xac, 0x45, 0xfe, 0x8f, 0x9a, 0xda, 0xf5, 0x3b, -0xf9, 0x4c, 0x34, 0x73, 0x98, 0x6e, 0xd3, 0xc8, 0xeb, 0x5e, 0xa8, 0x81, 0x9d, 0x45, 0x5d, 0xb9, -0x9b, 0xad, 0xc8, 0xcd, 0xa2, 0x35, 0x33, 0x95, 0x71, 0xfa, 0x1e, 0x48, 0x17, 0x1a, 0xd8, 0xde, -0xbd, 0x74, 0xe0, 0x65, 0x17, 0x87, 0x70, 0x29, 0x61, 0x07, 0x00, 0xb9, 0x3e, 0xb6, 0x8b, 0x55, -0xd3, 0xf9, 0xb0, 0x74, 0x41, 0x0a, 0xdd, 0xbc, 0xb3, 0xb3, 0x1e, 0xb8, 0xfd, 0x47, 0x3b, 0xed, -0xdf, 0x29, 0xd0, 0x78, 0xbf, 0x00, 0x1e, 0x04, 0x30, 0x43, 0x01, 0x8e, 0x75, 0x5e, 0x98, 0x07, -0x7e, 0xae, 0x0f, 0xec, 0xb0, 0x05, 0x3e, 0xe1, 0xfa, 0xe4, 0x7f, 0x70, 0x1c, 0xf5, 0x9a, 0x42, -0x1c, 0xf1, 0x37, 0xe1, 0x7b, 0x06, 0xbe, 0x57, 0xe3, 0xdb, 0x83, 0xef, 0x28, 0xe5, 0x6f, 0xa7, -0x33, 0xdc, 0xed, 0xac, 0x24, 0x27, 0x8a, 0xf9, 0xc0, 0x35, 0x2a, 0x6e, 0x35, 0xba, 0x45, 0xc5, -0xad, 0x41, 0x77, 0x35, 0xb9, 0x69, 0x1e, 0x4c, 0x5e, 0x3b, 0xaa, 0x0e, 0xdf, 0x45, 0xa7, 0x33, -0xe5, 0x30, 0xce, 0xaf, 0x39, 0xb5, 0xba, 0x3a, 0x4a, 0x72, 0x2a, 0xc6, 0x2e, 0xc2, 0xd8, 0xa6, -0xf1, 0x76, 0x94, 0x6f, 0x88, 0x95, 0x34, 0xa4, 0x6e, 0x55, 0x0c, 0x27, 0x7f, 0x6d, 0x55, 0x70, -0x92, 0x87, 0xba, 0x0a, 0x5b, 0xa3, 0x41, 0x89, 0xed, 0xa8, 0x27, 0x4a, 0x23, 0x1f, 0xd2, 0x5a, -0xab, 0xab, 0x01, 0xc8, 0xca, 0xf7, 0x21, 0x41, 0x5d, 0x1d, 0xee, 0x7d, 0x64, 0xe1, 0x3c, 0x53, -0x03, 0x4c, 0x0f, 0x26, 0xbf, 0x13, 0x16, 0x66, 0x1e, 0xfe, 0xdf, 0x28, 0x13, 0x74, 0x5f, 0x5f, -0x86, 0xf5, 0xfa, 0x32, 0x98, 0x35, 0xde, 0xc9, 0x5e, 0x98, 0x8e, 0x9c, 0x6f, 0xc7, 0x6e, 0xf9, -0xe4, 0xf7, 0x2c, 0x83, 0x57, 0x50, 0x9f, 0xee, 0x8e, 0xf3, 0xcc, 0xd5, 0x82, 0x7a, 0xb0, 0x8b, -0xcd, 0x29, 0x9f, 0x37, 0x39, 0xfe, 0x70, 0x0e, 0xa6, 0xff, 0xad, 0xba, 0x5c, 0x5f, 0xce, 0x15, -0x66, 0x5d, 0xd7, 0xb4, 0x8e, 0xac, 0xa8, 0x62, 0xef, 0x3a, 0x2f, 0xd8, 0x33, 0x89, 0xd7, 0x16, -0xe2, 0x18, 0xc0, 0xc7, 0x2c, 0x74, 0x57, 0xae, 0x47, 0x2a, 0x5c, 0x51, 0x0f, 0x57, 0xcf, 0x98, -0xca, 0xac, 0x53, 0xa5, 0x53, 0x86, 0x06, 0xa0, 0xf3, 0xf6, 0x0d, 0x95, 0xdd, 0xc5, 0x7f, 0xee, -0x06, 0xd3, 0xc4, 0xa3, 0x3d, 0xe0, 0x17, 0xe7, 0x8e, 0x9e, 0xbd, 0x62, 0x72, 0x29, 0xeb, 0x37, -0xd1, 0x70, 0xd4, 0xcc, 0xfa, 0x0d, 0x9d, 0xbf, 0xea, 0x8e, 0x86, 0x99, 0x4b, 0xfd, 0x9e, 0x9b, -0xbe, 0xb1, 0x13, 0x5a, 0x49, 0x44, 0xcf, 0xe1, 0x68, 0xd8, 0x0c, 0x13, 0x98, 0x5f, 0xf3, 0xde, -0xea, 0x70, 0xb4, 0xf8, 0x62, 0xa6, 0x4e, 0x17, 0x2e, 0x2f, 0xf5, 0xba, 0x02, 0xea, 0xdd, 0xdd, -0xb5, 0xbf, 0x2c, 0x3f, 0x0b, 0xda, 0x7f, 0x7f, 0xa5, 0xce, 0x6e, 0x76, 0xff, 0xe4, 0xb5, 0xc9, -0x15, 0xd0, 0x8c, 0x4f, 0xe8, 0xc9, 0xb5, 0xc8, 0x41, 0xda, 0xe8, 0x3c, 0xbe, 0xf3, 0x57, 0x28, -0x1f, 0xee, 0xc0, 0x67, 0x9b, 0x4d, 0x4b, 0x1c, 0xe3, 0xaf, 0x5b, 0x91, 0x02, 0x4f, 0xb1, 0x59, -0x03, 0xd4, 0xc2, 0xfc, 0x21, 0x94, 0xfb, 0xb7, 0xe1, 0x33, 0xba, 0x83, 0x17, 0x4c, 0x70, 0x34, -0x7c, 0xf4, 0x7a, 0x8b, 0xd9, 0xcc, 0x1a, 0x54, 0x0c, 0x2f, 0x9f, 0xcb, 0xb6, 0x67, 0x5d, 0xa8, -0xc7, 0xd9, 0xb1, 0xbe, 0x03, 0xc8, 0xdb, 0x27, 0x19, 0x6e, 0x17, 0xb8, 0x93, 0xdd, 0x7c, 0x18, -0x1e, 0x7e, 0xf8, 0x61, 0x3e, 0x22, 0x61, 0x52, 0x4d, 0x04, 0xc2, 0xe1, 0xf0, 0x91, 0xb0, 0xf0, -0x72, 0x55, 0xd4, 0x13, 0xf5, 0xbf, 0x33, 0x46, 0xe7, 0xde, 0xa3, 0xec, 0xfe, 0x3c, 0x1f, 0x5b, -0xe3, 0xa1, 0x5d, 0x80, 0x38, 0xaa, 0x55, 0x98, 0x72, 0xa0, 0xd6, 0x9c, 0x03, 0x0d, 0xcc, 0x6a, -0x47, 0x1d, 0x72, 0xd0, 0xe9, 0x42, 0xc5, 0xe8, 0xfe, 0x45, 0x4f, 0x0f, 0x77, 0xca, 0x5f, 0x2d, -0xb0, 0xd3, 0x2d, 0xa3, 0x33, 0xea, 0x52, 0xe1, 0x64, 0x07, 0x77, 0x2a, 0x50, 0x44, 0x16, 0x58, -0x05, 0x2d, 0x4a, 0xd2, 0x5a, 0x0b, 0x9c, 0x7c, 0x94, 0xce, 0x31, 0x06, 0x92, 0x85, 0xa4, 0xe4, -0xf0, 0xc7, 0x7d, 0x9d, 0x02, 0xed, 0x28, 0x91, 0x4f, 0x63, 0xfa, 0x4f, 0x1a, 0x1a, 0xb8, 0x53, -0xdf, 0x08, 0x67, 0x82, 0xaf, 0xbb, 0x86, 0x59, 0x75, 0x50, 0x83, 0xff, 0x40, 0x42, 0x29, 0xaf, -0x52, 0x29, 0x64, 0xbb, 0xc3, 0x52, 0xf2, 0x9f, 0xfb, 0xc9, 0xe2, 0x3e, 0x93, 0x3e, 0x6e, 0xa2, -0x51, 0xe0, 0xf2, 0x3c, 0x79, 0x14, 0x60, 0x92, 0x09, 0xa8, 0xf6, 0x57, 0x3e, 0x6a, 0xd2, 0x91, -0x26, 0x9d, 0xbd, 0x7a, 0x36, 0x8e, 0xa6, 0xcb, 0x0a, 0xde, 0x5e, 0x5f, 0x7e, 0x01, 0x8a, 0x3a, -0x20, 0xfb, 0xb6, 0xf7, 0xbc, 0xee, 0x32, 0x67, 0x19, 0x5b, 0xf5, 0x60, 0xad, 0xbd, 0x36, 0xbc, -0x76, 0x2a, 0x6b, 0xed, 0xa9, 0xd4, 0xda, 0x6b, 0xc3, 0xcc, 0xa5, 0xb4, 0x36, 0x5b, 0x15, 0x49, -0x22, 0xea, 0x08, 0x47, 0xc2, 0x53, 0x61, 0x02, 0xf3, 0x6b, 0xde, 0x5b, 0x15, 0x8e, 0x84, 0x74, -0xc7, 0x23, 0x72, 0x6b, 0x63, 0x69, 0xea, 0x20, 0x9d, 0x78, 0x2e, 0x20, 0x9b, 0x25, 0x04, 0x15, -0x9b, 0x8b, 0xe4, 0x99, 0x6e, 0xee, 0x80, 0xa2, 0x98, 0xb5, 0xfd, 0x47, 0x8e, 0xb1, 0xd5, 0x0b, -0xe9, 0x9e, 0x53, 0x71, 0xc8, 0x69, 0x5d, 0xa7, 0x84, 0x59, 0x75, 0xb0, 0x2a, 0x70, 0xeb, 0xd8, -0x7d, 0x14, 0x6a, 0x37, 0xca, 0x47, 0xec, 0xfc, 0x5b, 0xff, 0x67, 0x6c, 0x8e, 0x80, 0x9d, 0x68, -0x4e, 0xc6, 0xb1, 0x56, 0x67, 0x7f, 0x08, 0x3a, 0x90, 0x62, 0x8a, 0x88, 0x17, 0xdb, 0xf8, 0x5c, -0xac, 0xe1, 0xd7, 0xb5, 0x64, 0x23, 0x81, 0xe9, 0x8d, 0x0e, 0xec, 0xd9, 0x07, 0xe5, 0x78, 0xb6, -0x1c, 0xf0, 0xb0, 0x58, 0x13, 0xb1, 0x8c, 0xc4, 0xef, 0x3d, 0x42, 0x0e, 0x14, 0xea, 0xd8, 0xa9, -0x78, 0x94, 0x83, 0xe5, 0xb8, 0xc0, 0x62, 0x72, 0xe3, 0x62, 0x86, 0x31, 0xe6, 0x8c, 0x1b, 0xc6, -0xe4, 0xb1, 0xc7, 0xf6, 0x7f, 0xd6, 0x15, 0x8f, 0x39, 0x37, 0xbe, 0x1f, 0x1a, 0xe0, 0x8c, 0x02, -0x67, 0xa5, 0x02, 0xa5, 0xea, 0x86, 0x50, 0x1a, 0xe5, 0x58, 0x94, 0xce, 0xbe, 0x08, 0x78, 0x25, -0xae, 0x7a, 0x2c, 0x04, 0xdc, 0xc8, 0x98, 0x58, 0x6a, 0x25, 0x56, 0xd2, 0xb8, 0x58, 0xc7, 0xc6, -0xc4, 0xd2, 0x28, 0xb1, 0x34, 0xe3, 0x62, 0xed, 0xa4, 0xef, 0x5a, 0xec, 0xe1, 0xf0, 0x9d, 0x98, -0x25, 0x62, 0xda, 0x37, 0xc0, 0xd6, 0xbe, 0xd5, 0x41, 0x5e, 0xd4, 0xc9, 0x27, 0xb7, 0xe7, 0xb0, -0x13, 0xca, 0xe1, 0xc8, 0x98, 0xfa, 0x4e, 0xa0, 0xfa, 0x5e, 0xda, 0x12, 0xcf, 0xcb, 0x8f, 0x98, -0xc9, 0x1b, 0x87, 0x93, 0x64, 0x86, 0x93, 0xb4, 0x78, 0x1c, 0x67, 0x6e, 0x0e, 0x4c, 0xf7, 0x0b, -0xa2, 0x69, 0x4c, 0xac, 0x14, 0x96, 0xd3, 0xf9, 0x78, 0xac, 0x6c, 0x61, 0x66, 0xcd, 0x23, 0x42, -0xa6, 0xff, 0x6d, 0x92, 0xb9, 0xca, 0xe8, 0xcc, 0x73, 0x41, 0x82, 0x5c, 0x6e, 0x8f, 0xcb, 0xe5, -0xd3, 0x14, 0xb9, 0x3c, 0x0f, 0xa5, 0xe1, 0x6f, 0x2a, 0xf4, 0xa3, 0x4e, 0xa0, 0x1f, 0x59, 0x06, -0x46, 0xee, 0x2d, 0x7f, 0x43, 0xf5, 0x98, 0xac, 0xa4, 0x33, 0x1a, 0x8c, 0xc9, 0x46, 0xd0, 0xcb, -0x4e, 0xc2, 0xff, 0xd7, 0x73, 0x6f, 0x56, 0xbe, 0x70, 0x31, 0xea, 0x56, 0x72, 0x9e, 0xbb, 0x9c, -0x13, 0x93, 0x9d, 0x33, 0x75, 0x61, 0xba, 0x5b, 0x2a, 0x90, 0x41, 0xb1, 0x90, 0x57, 0xdf, 0x34, -0x9a, 0x1a, 0xe5, 0xa8, 0xbc, 0xff, 0x7c, 0x95, 0xce, 0x29, 0x5d, 0x25, 0x9a, 0x0a, 0xb5, 0x98, -0x91, 0x97, 0xb4, 0xb1, 0x78, 0xaa, 0xc1, 0xed, 0x50, 0x8b, 0xb8, 0x41, 0xac, 0x7c, 0xca, 0x76, -0xab, 0xee, 0x0e, 0x3f, 0xa0, 0x68, 0x62, 0xf1, 0xf3, 0x73, 0xca, 0x39, 0x22, 0xd9, 0x8e, 0xf5, -0xd8, 0x55, 0xce, 0x97, 0xee, 0xfd, 0xb2, 0x55, 0x4e, 0xd2, 0x3b, 0x84, 0x19, 0x46, 0x3a, 0x4b, -0x84, 0xda, 0x15, 0xb3, 0x28, 0x28, 0x9f, 0x83, 0xc9, 0x36, 0xc9, 0x2b, 0x97, 0x6f, 0x18, 0x92, -0x8d, 0xb1, 0x30, 0xd9, 0x9a, 0xe0, 0xcf, 0x11, 0x36, 0x35, 0xdb, 0x93, 0x00, 0xf0, 0xb8, 0x27, -0xdc, 0x8c, 0xbf, 0x56, 0x9a, 0x67, 0x7c, 0xda, 0xa8, 0xd3, 0x44, 0x01, 0x78, 0x13, 0x61, 0x64, -0xd6, 0xb0, 0xd4, 0xa1, 0x68, 0x9a, 0xf3, 0xc8, 0xef, 0x7d, 0xcc, 0x4a, 0x72, 0xbd, 0xd1, 0xf9, -0x2f, 0x41, 0x5e, 0xf0, 0x30, 0x6b, 0xa0, 0xf2, 0x7c, 0x60, 0x11, 0xad, 0x4d, 0xea, 0xb6, 0x2d, -0xf9, 0xf1, 0x92, 0x56, 0xd0, 0xfb, 0xd3, 0x74, 0xdb, 0xea, 0xdb, 0xeb, 0x17, 0x42, 0x3a, 0xd5, -0x2e, 0xdf, 0x51, 0xb3, 0x5a, 0x54, 0xe7, 0x77, 0x20, 0x8e, 0x69, 0xd6, 0xe6, 0x69, 0xaa, 0xbd, -0x64, 0x12, 0x66, 0xb3, 0xf9, 0xc4, 0xa3, 0x95, 0xeb, 0x45, 0x83, 0x36, 0x07, 0xe9, 0xf4, 0x47, -0x34, 0x32, 0x63, 0x2c, 0xd5, 0x96, 0x01, 0x51, 0x9f, 0xdf, 0x21, 0x49, 0x62, 0x72, 0x3e, 0xed, -0xbc, 0xa1, 0x94, 0x7c, 0x88, 0x37, 0xa6, 0x28, 0xd0, 0x67, 0x50, 0x88, 0x24, 0xd1, 0x2d, 0x02, -0x1d, 0xea, 0x1a, 0x59, 0x6b, 0xa6, 0xbd, 0x00, 0x42, 0x68, 0xa2, 0xbc, 0xcf, 0xee, 0x5a, 0x08, -0xe1, 0x69, 0x30, 0xd0, 0x19, 0xdc, 0xcc, 0x36, 0xad, 0x12, 0x56, 0x4d, 0x3b, 0x94, 0x05, 0x87, -0x09, 0x55, 0x2f, 0x91, 0x6f, 0x93, 0xe2, 0x71, 0x1b, 0x3d, 0x9d, 0x7e, 0x47, 0xd0, 0x78, 0x43, -0x79, 0xc2, 0x8c, 0x9a, 0x66, 0xb6, 0x31, 0x76, 0xde, 0x6a, 0x1d, 0x86, 0xa8, 0xb1, 0x25, 0x33, -0x0d, 0xb3, 0x82, 0xc6, 0xd1, 0x3b, 0x6d, 0x28, 0x37, 0x41, 0x25, 0xef, 0x2a, 0x97, 0x4f, 0x10, -0x60, 0x1a, 0xd4, 0x4e, 0x49, 0x87, 0x0f, 0x25, 0xd1, 0x89, 0x13, 0x06, 0x0f, 0xdb, 0xab, 0x6e, -0xb6, 0x77, 0xeb, 0x0c, 0x0e, 0x31, 0xcf, 0xb4, 0x18, 0xcc, 0x7f, 0x78, 0xfd, 0x0f, 0xaf, 0xd3, -0x39, 0x1d, 0x1c, 0x51, 0x6f, 0xed, 0x7b, 0x06, 0xb4, 0xfe, 0x6c, 0x5a, 0x35, 0x1e, 0xdd, 0x8b, -0x70, 0xdb, 0x1e, 0xc0, 0xf1, 0xce, 0x99, 0x67, 0xa6, 0x99, 0xf1, 0x34, 0xc3, 0xc4, 0x56, 0x39, -0x2f, 0xaf, 0x81, 0x4e, 0xf3, 0xed, 0x75, 0xba, 0x94, 0xbc, 0x1b, 0xe3, 0xe7, 0xcf, 0xb2, 0xc7, -0xd8, 0x79, 0xcd, 0x45, 0x6c, 0xa3, 0x06, 0x9e, 0x68, 0x1d, 0x56, 0xd1, 0xd5, 0xe3, 0xf6, 0x5e, -0xc7, 0x59, 0x92, 0xfd, 0x1b, 0xb1, 0x51, 0x43, 0x31, 0xd2, 0x6e, 0x35, 0xa3, 0xb2, 0x5b, 0x8d, -0x6c, 0x31, 0x0b, 0x66, 0x99, 0x82, 0xfc, 0xc0, 0xcf, 0x63, 0x7a, 0xa7, 0x85, 0x9d, 0x93, 0x6c, -0x34, 0xdf, 0xa4, 0xe9, 0x92, 0x24, 0xc9, 0x48, 0x2b, 0x7c, 0x23, 0xe7, 0x63, 0x3b, 0xd1, 0xf8, -0x34, 0x83, 0x7a, 0xf4, 0x4c, 0x9e, 0x85, 0xce, 0xf8, 0x81, 0x60, 0x81, 0xcc, 0xca, 0x30, 0xdb, -0x29, 0x51, 0xc8, 0x4e, 0xaf, 0x29, 0xa7, 0xea, 0x2c, 0x37, 0x69, 0x56, 0xb0, 0x1c, 0x92, 0x64, -0x59, 0x89, 0xf5, 0xca, 0x24, 0xb6, 0x7f, 0x79, 0x35, 0x8d, 0x2e, 0x2f, 0x3d, 0x26, 0x7f, 0x51, -0x4e, 0x5b, 0xe8, 0x31, 0x2f, 0x0b, 0x08, 0xec, 0xcb, 0x13, 0x28, 0x2f, 0x3e, 0x81, 0x50, 0xa8, -0x98, 0xef, 0xe7, 0xb6, 0x24, 0x76, 0x23, 0x4c, 0x38, 0x7e, 0xf3, 0x4b, 0x62, 0xdc, 0x9f, 0x63, -0xdc, 0x66, 0x8c, 0xcb, 0x33, 0xdf, 0x2f, 0x30, 0xcf, 0x1b, 0xc5, 0xfa, 0x37, 0xb2, 0x3f, 0x12, -0x8f, 0xb5, 0x63, 0x34, 0x16, 0x9d, 0x6d, 0x8c, 0x87, 0xff, 0x3a, 0x31, 0x9c, 0xd3, 0xc5, 0xc3, -0xfb, 0xc6, 0xc4, 0xbf, 0x14, 0x87, 0xec, 0xb7, 0x63, 0xc2, 0x8f, 0xb3, 0xb0, 0x03, 0xa8, 0x53, -0x19, 0xbf, 0xa4, 0x5e, 0xbf, 0x17, 0xc9, 0x8a, 0x4b, 0x17, 0xc6, 0x3d, 0xa8, 0xeb, 0x2a, 0x2b, -0xae, 0xe6, 0x9b, 0x05, 0xf6, 0x86, 0x46, 0xbb, 0xae, 0xab, 0xc4, 0x55, 0x56, 0x15, 0xf0, 0x35, -0x2d, 0xd0, 0x74, 0xfd, 0xb6, 0x77, 0x87, 0x44, 0xe7, 0x52, 0xea, 0x7d, 0x62, 0xbe, 0xae, 0x8b, -0xee, 0x98, 0x0b, 0x4c, 0xd2, 0x75, 0x2d, 0xf1, 0x2f, 0x81, 0x40, 0x86, 0xae, 0x6b, 0x76, 0x95, -0x0b, 0xfc, 0x05, 0x09, 0xb9, 0x1e, 0x11, 0x1b, 0x13, 0x7c, 0x47, 0xc5, 0x05, 0x09, 0xbe, 0xb7, -0xc5, 0xca, 0x04, 0xdf, 0xf3, 0xa2, 0x33, 0xc1, 0xf7, 0x8e, 0x98, 0x1f, 0xaf, 0xc9, 0xfb, 0x72, -0x5b, 0x14, 0x86, 0x15, 0xdc, 0xa5, 0x26, 0xc4, 0x7b, 0x5f, 0xd4, 0x25, 0xf8, 0x5e, 0x42, 0x5d, -0x71, 0xbe, 0x59, 0xb1, 0x1d, 0xeb, 0xcf, 0x52, 0xbe, 0x20, 0x8f, 0xc5, 0xf0, 0x50, 0x2c, 0x1c, -0x29, 0xe5, 0xe9, 0xdb, 0x69, 0x16, 0xcf, 0x4e, 0xb6, 0xb6, 0x3c, 0xe1, 0x16, 0x94, 0xdb, 0x0d, -0x16, 0x48, 0x27, 0xbd, 0x3f, 0x76, 0x86, 0x53, 0xb6, 0x91, 0x4a, 0x33, 0xee, 0xf4, 0x65, 0xf4, -0x34, 0xe4, 0x4b, 0x1f, 0x8c, 0x52, 0x18, 0xd2, 0x13, 0xd2, 0xa3, 0xf1, 0x26, 0x36, 0x7f, 0x6a, -0x6c, 0x6b, 0x54, 0x56, 0x41, 0xc8, 0xe2, 0x52, 0x19, 0x52, 0xe2, 0x86, 0xa1, 0x47, 0x63, 0x21, -0x88, 0xf5, 0x0d, 0xe3, 0x30, 0x9f, 0x11, 0x87, 0x2d, 0x09, 0xb5, 0xe5, 0xa3, 0x32, 0x6c, 0xb4, -0xf7, 0xdf, 0xa0, 0x1e, 0x3d, 0xf9, 0x89, 0xbe, 0x18, 0xc5, 0x46, 0xd9, 0xfc, 0x9c, 0x41, 0xd4, -0x18, 0x68, 0x65, 0xea, 0x97, 0xf1, 0xd4, 0xc8, 0xeb, 0xae, 0x3e, 0x3e, 0x5a, 0x33, 0xee, 0xe0, -0xed, 0x74, 0x93, 0x17, 0xd6, 0x8c, 0x1b, 0xb0, 0x30, 0x6e, 0x68, 0x4e, 0xd1, 0x74, 0x31, 0x6e, -0x9b, 0x44, 0x6b, 0xed, 0xc3, 0xa9, 0x64, 0x1d, 0x84, 0xc5, 0x9c, 0x2b, 0xaf, 0x9e, 0x5b, 0x1d, -0x86, 0xd9, 0xce, 0x7f, 0xa1, 0x5d, 0xe5, 0x41, 0x5e, 0xb6, 0xbe, 0x4c, 0xab, 0xa9, 0x5c, 0x81, -0xe0, 0xb0, 0x2e, 0x42, 0x8e, 0xfb, 0x9c, 0xc2, 0x71, 0x73, 0x75, 0xcf, 0xc9, 0x1c, 0xd7, 0x6f, -0x8c, 0x97, 0x4d, 0xeb, 0xec, 0xd9, 0xa3, 0x65, 0xc3, 0x59, 0x2c, 0x5b, 0x45, 0x65, 0xc3, 0x3b, -0x72, 0x1c, 0x5b, 0x86, 0xb7, 0xff, 0x8b, 0x43, 0xf1, 0xf6, 0x00, 0x94, 0xa0, 0x73, 0x41, 0xaf, -0x0b, 0x37, 0x2d, 0x5d, 0xb2, 0x38, 0x10, 0xaa, 0x35, 0xeb, 0xc2, 0x75, 0x2d, 0x0b, 0x97, 0x06, -0x3c, 0xb5, 0x28, 0xe9, 0x3f, 0xd8, 0xbc, 0xb8, 0x09, 0x63, 0xac, 0x14, 0x9b, 0x71, 0xe4, 0x6b, -0x5e, 0xd2, 0x1a, 0x70, 0x63, 0xbc, 0x96, 0xb6, 0xc5, 0xfe, 0x90, 0xe8, 0xd7, 0x85, 0x97, 0xb4, -0x2c, 0x6d, 0x0e, 0x58, 0xc9, 0x9e, 0x71, 0x70, 0xf1, 0xc2, 0x56, 0xff, 0x02, 0x11, 0x25, 0x29, -0x82, 0x0c, 0x4b, 0x3d, 0xa5, 0x0b, 0xb7, 0xd6, 0xb7, 0xb7, 0xfa, 0x51, 0x47, 0x84, 0x13, 0x34, -0x1f, 0xfd, 0x12, 0xd9, 0xea, 0x3d, 0xce, 0x5c, 0xcb, 0xd0, 0x75, 0x84, 0xb9, 0x5a, 0xc8, 0x0a, -0x17, 0x73, 0x2d, 0x46, 0xd7, 0x5e, 0xe6, 0x7a, 0x10, 0x5d, 0xbb, 0x98, 0xeb, 0x01, 0x74, 0xf5, -0x30, 0xd7, 0xfd, 0xe8, 0x7a, 0x2a, 0x5e, 0x43, 0x3a, 0xb5, 0x51, 0x18, 0xaf, 0xa1, 0x06, 0xeb, -0xa7, 0x06, 0xbb, 0x32, 0xca, 0xe0, 0xb7, 0x2b, 0x03, 0x42, 0x69, 0x6c, 0x94, 0x61, 0xed, 0xe3, -0x21, 0xae, 0xc5, 0xa4, 0xa2, 0x1f, 0xf9, 0x85, 0x44, 0x3c, 0x0d, 0x5f, 0x8a, 0xe7, 0x62, 0x52, -0xb0, 0x34, 0x29, 0xb1, 0x94, 0xe1, 0xa1, 0xf1, 0xa5, 0x30, 0xfb, 0xae, 0x45, 0x92, 0x9a, 0xf4, -0x07, 0x06, 0xd9, 0x3a, 0x79, 0xb6, 0xfd, 0xa5, 0x55, 0x0a, 0x6e, 0x91, 0xa7, 0x0d, 0x07, 0x47, -0x71, 0x2b, 0xd5, 0x89, 0x20, 0xb9, 0xbd, 0x3f, 0xa4, 0x33, 0x5a, 0xc8, 0x79, 0x0f, 0xe0, 0x78, -0x6d, 0x47, 0x5d, 0xa3, 0x02, 0xf9, 0x6e, 0x25, 0xe8, 0x6c, 0x74, 0xb2, 0x5f, 0x8f, 0xbf, 0x74, -0xb2, 0xbc, 0x0a, 0xb2, 0x91, 0x0f, 0x5b, 0xf1, 0xb1, 0xd3, 0x6c, 0x1a, 0x42, 0x50, 0xc0, 0x7a, -0xcf, 0x9f, 0x51, 0xca, 0x11, 0x4b, 0x51, 0x96, 0x62, 0x3b, 0x10, 0x4f, 0xfb, 0x5e, 0x95, 0xe7, -0xf7, 0xfc, 0xd3, 0x99, 0xfc, 0xc2, 0xc2, 0x4a, 0x78, 0x23, 0xd2, 0x47, 0xf1, 0x5f, 0xe1, 0xf4, -0x7d, 0x7b, 0xe8, 0xac, 0x66, 0x00, 0x25, 0x08, 0xb2, 0x28, 0x86, 0x7a, 0x8f, 0xbe, 0xf5, 0x0b, -0x51, 0x67, 0xa2, 0x5b, 0x86, 0x30, 0xc4, 0x08, 0x35, 0xeb, 0xe9, 0x2c, 0x94, 0x8e, 0x6c, 0x96, -0x15, 0xe0, 0xc8, 0x25, 0xcb, 0x50, 0xe9, 0x89, 0x0f, 0x8e, 0xd2, 0x35, 0xca, 0x99, 0x66, 0x9e, -0x9d, 0x94, 0xe5, 0x5a, 0x75, 0xa7, 0xb6, 0x19, 0x8a, 0x8b, 0xff, 0xac, 0xbd, 0x49, 0xe0, 0xd2, -0x8b, 0x20, 0xf5, 0xd4, 0xb6, 0xc1, 0x6e, 0x7c, 0xdf, 0x7e, 0xea, 0x99, 0xc1, 0x88, 0xf1, 0x4e, -0x8a, 0xc7, 0xf6, 0x14, 0xd2, 0x49, 0x67, 0x33, 0xa4, 0x1b, 0x16, 0x81, 0x96, 0x66, 0x60, 0x6f, -0x8d, 0x6a, 0x81, 0xdc, 0xb7, 0x46, 0xb4, 0x1c, 0xd3, 0xf3, 0xd3, 0x29, 0x6e, 0x6c, 0xae, 0x91, -0xac, 0x4c, 0x90, 0xde, 0x65, 0x98, 0x02, 0xcb, 0xac, 0x8b, 0x61, 0xba, 0x65, 0x31, 0x34, 0x14, -0x5f, 0x3e, 0x06, 0xe6, 0x29, 0xd0, 0x26, 0xa8, 0x2d, 0x64, 0x65, 0x67, 0x0a, 0x58, 0x4c, 0x1a, -0x4d, 0xa7, 0x24, 0x8d, 0x0c, 0xef, 0x7e, 0xb4, 0x4e, 0x67, 0xba, 0x89, 0xd6, 0x41, 0x39, 0xcd, -0xd6, 0x95, 0x38, 0xf6, 0x82, 0x6d, 0x31, 0x9d, 0x9d, 0xc2, 0xdf, 0x3c, 0x28, 0x98, 0xf5, 0x31, -0xc7, 0xcf, 0xc2, 0xb4, 0x93, 0xec, 0x6e, 0x29, 0xdb, 0xee, 0x06, 0x1c, 0x57, 0x57, 0xd7, 0xf3, -0xa7, 0x56, 0x61, 0x5e, 0xa1, 0xbe, 0x15, 0x75, 0x5a, 0x8b, 0x5a, 0x54, 0x67, 0xab, 0x45, 0x6d, -0xf9, 0xc7, 0x23, 0x23, 0xb6, 0x12, 0xb0, 0x97, 0x5e, 0x36, 0x43, 0x66, 0x9e, 0x16, 0xf6, 0xa8, -0x91, 0xb2, 0x8f, 0x64, 0xe7, 0x69, 0xa5, 0xbd, 0x1a, 0x5a, 0x61, 0xcf, 0x48, 0xdb, 0x4d, 0xa7, -0x5d, 0x5f, 0xcd, 0xb0, 0x00, 0xb7, 0xdb, 0x4c, 0x7b, 0xef, 0xa1, 0xbf, 0xba, 0xbb, 0x7a, 0x35, -0x8e, 0xe9, 0x76, 0xb2, 0xc8, 0x35, 0xf3, 0x2c, 0x70, 0x74, 0xc7, 0xcf, 0x24, 0xfc, 0xb6, 0x17, -0xe3, 0xf8, 0x1b, 0xc9, 0x4a, 0x3b, 0xfa, 0x78, 0xf4, 0xf1, 0xfe, 0x05, 0xe8, 0x53, 0xa1, 0x4f, -0x85, 0x3e, 0x95, 0xbf, 0x12, 0x7d, 0x6a, 0xf4, 0xa9, 0xd1, 0xa7, 0xf6, 0x3b, 0xd1, 0x97, 0x84, -0xbe, 0x24, 0xf4, 0x25, 0xf9, 0xf3, 0xd1, 0xa7, 0x41, 0x9f, 0x06, 0x7d, 0x1a, 0xbf, 0x09, 0x7d, -0x13, 0xd0, 0x37, 0x01, 0x7d, 0x13, 0xfc, 0x99, 0x95, 0xdd, 0x26, 0x37, 0xd9, 0x75, 0x9b, 0x34, -0x05, 0xb4, 0x18, 0xa2, 0xf5, 0x6b, 0x2a, 0x57, 0xff, 0xf6, 0x40, 0x6d, 0x94, 0x20, 0x27, 0xcb, -0x54, 0xff, 0xf4, 0xfb, 0x99, 0x1f, 0x71, 0xbc, 0x50, 0xd1, 0xbb, 0xa6, 0x31, 0xf3, 0x1b, 0x4e, -0x68, 0xee, 0x5f, 0xd3, 0x92, 0x3f, 0x29, 0xbf, 0x4f, 0xca, 0xcc, 0xef, 0x03, 0x21, 0x45, 0xd4, -0x64, 0x6a, 0x44, 0x7e, 0x92, 0x66, 0xff, 0xf3, 0x50, 0x30, 0x14, 0x45, 0xa9, 0x24, 0x3f, 0x3f, -0xcf, 0xac, 0xdc, 0xb8, 0xb0, 0x0b, 0x29, 0x6b, 0x61, 0x72, 0x55, 0xc4, 0x0f, 0x23, 0x9f, 0xa2, -0x3e, 0x9a, 0x82, 0xb8, 0x0f, 0xed, 0x0c, 0xd7, 0xf1, 0x02, 0x37, 0x3a, 0x23, 0x49, 0xe7, 0xf1, -0x49, 0xf6, 0xc4, 0x1e, 0x93, 0x4d, 0xad, 0x49, 0xfb, 0xb2, 0x7b, 0xa3, 0x75, 0x48, 0x5f, 0x9e, -0x68, 0x80, 0x2c, 0x0f, 0x99, 0x91, 0x5e, 0x2d, 0xa0, 0x93, 0x75, 0xbc, 0xb7, 0x7a, 0xe4, 0x98, -0x6f, 0x6d, 0x03, 0x3d, 0xba, 0xd3, 0x1f, 0xeb, 0x01, 0xb2, 0x4d, 0x9a, 0xfd, 0xd8, 0x36, 0x36, -0x17, 0xc5, 0xac, 0x77, 0x78, 0xd0, 0xed, 0xd7, 0xdc, 0x45, 0xb7, 0xa5, 0xeb, 0x8d, 0x77, 0xca, -0x37, 0xe8, 0xdd, 0x4b, 0x32, 0xab, 0x1d, 0xf3, 0xb6, 0x98, 0xf9, 0x63, 0xd1, 0x72, 0x76, 0xaf, -0xd3, 0x6c, 0xa4, 0xde, 0xe6, 0x03, 0xb3, 0xf0, 0xf7, 0xa1, 0x6e, 0x5a, 0x6b, 0x34, 0x59, 0xa0, -0x70, 0x6b, 0x0f, 0x84, 0xb6, 0x86, 0x0d, 0xfc, 0x91, 0x1e, 0xb0, 0x68, 0x22, 0x44, 0x09, 0x3b, -0xc3, 0xb5, 0x34, 0x9f, 0x34, 0xdd, 0xc6, 0xbb, 0x83, 0x66, 0xa0, 0x1b, 0xaa, 0xb0, 0xcc, 0x66, -0x7c, 0x1a, 0xf0, 0x99, 0x87, 0xe9, 0x3c, 0x74, 0xca, 0xe0, 0xf0, 0x39, 0x70, 0x52, 0xd9, 0x21, -0xc8, 0x33, 0x4b, 0x23, 0xbb, 0x22, 0xb5, 0xea, 0x4d, 0xb4, 0x8f, 0xac, 0x78, 0x1a, 0x57, 0x15, -0xf6, 0x9f, 0xc3, 0xf4, 0x33, 0x0e, 0xef, 0xa7, 0x3d, 0x71, 0x37, 0xfa, 0x7a, 0x34, 0x6a, 0xf2, -0x91, 0x8c, 0x8c, 0xdc, 0x36, 0xd7, 0x62, 0x81, 0xe9, 0x56, 0x84, 0x25, 0xd7, 0x02, 0xa1, 0xdd, -0xe1, 0x3a, 0x8d, 0xa7, 0x33, 0x30, 0x57, 0xe4, 0x4d, 0xb0, 0xa1, 0x93, 0xce, 0x11, 0xa3, 0xae, -0x45, 0x38, 0xca, 0x64, 0xb2, 0x90, 0xce, 0xa6, 0xb2, 0xdd, 0x8a, 0xfa, 0xa8, 0xdd, 0xfb, 0x98, -0xa8, 0x0f, 0xd1, 0x2e, 0xd4, 0xb4, 0x78, 0xc8, 0x56, 0x8c, 0x6d, 0x27, 0x78, 0x8e, 0x3f, 0x42, -0x61, 0x42, 0xa9, 0x3b, 0xb8, 0x08, 0xbc, 0x5b, 0xfe, 0xb0, 0xf9, 0x0f, 0xdb, 0xd9, 0x0d, 0x4d, -0x3a, 0xa2, 0xe8, 0xa3, 0x58, 0xd7, 0xc9, 0x25, 0x10, 0x0a, 0xf2, 0xbd, 0x9d, 0x75, 0xf9, 0xec, -0xe6, 0x1c, 0x2c, 0x19, 0x75, 0x71, 0xbb, 0x16, 0x26, 0x17, 0x43, 0x99, 0xde, 0xae, 0xe5, 0xe4, -0x53, 0xc5, 0x08, 0xd5, 0xdc, 0x8f, 0x9e, 0x79, 0x31, 0x3c, 0xd0, 0x03, 0x3e, 0xba, 0x2b, 0x49, -0x47, 0xfd, 0x22, 0xa9, 0x36, 0x59, 0xf0, 0x21, 0xae, 0x91, 0xa6, 0x47, 0xf6, 0x09, 0x96, 0x8c, -0x7e, 0xc4, 0x6e, 0xe1, 0xae, 0xf0, 0xc2, 0x45, 0x98, 0x6f, 0xc3, 0xee, 0xf0, 0x42, 0xcb, 0x96, -0x4e, 0x1d, 0x52, 0x01, 0xc7, 0x2f, 0xd4, 0x90, 0x25, 0x70, 0x8e, 0xa7, 0x15, 0x23, 0x2c, 0x61, -0xfa, 0x60, 0x67, 0xcc, 0xf2, 0xc6, 0x50, 0xe7, 0x64, 0x67, 0x46, 0xbf, 0x98, 0x67, 0x50, 0xd1, -0x8e, 0x32, 0x0e, 0xeb, 0xb0, 0xd0, 0xc2, 0xf6, 0x8d, 0xf2, 0x9b, 0xc2, 0x5b, 0xc2, 0x47, 0x23, -0xbb, 0x3a, 0xeb, 0x78, 0x13, 0x6f, 0x53, 0x39, 0x7f, 0x35, 0xd8, 0x03, 0xd3, 0x63, 0xa9, 0xfe, -0xd0, 0x93, 0xd1, 0x1f, 0xbb, 0x6f, 0x41, 0xd6, 0x48, 0x58, 0xeb, 0xe6, 0x63, 0xef, 0x2e, 0xa0, -0xb9, 0x89, 0xfc, 0x63, 0x74, 0xb6, 0x24, 0x6f, 0x08, 0x5b, 0xf9, 0x74, 0xdd, 0x27, 0x33, 0x87, -0xaf, 0xfd, 0x1c, 0x5b, 0xfa, 0x54, 0xf7, 0xd3, 0xba, 0x1e, 0x82, 0x1a, 0x42, 0xb5, 0xc8, 0x99, -0x48, 0xcf, 0x42, 0x58, 0x42, 0x35, 0xeb, 0x69, 0xcf, 0x2a, 0xd6, 0x45, 0x47, 0x16, 0x33, 0x54, -0x4f, 0x32, 0xa9, 0xe0, 0x32, 0x62, 0x04, 0x71, 0x53, 0x57, 0x8d, 0xf5, 0x6e, 0x20, 0xbc, 0x04, -0x41, 0x6f, 0xaf, 0xe1, 0x71, 0x94, 0x2f, 0xc3, 0xb6, 0x99, 0xfb, 0x71, 0x02, 0x26, 0x68, 0x26, -0xf1, 0xf0, 0x80, 0x1d, 0x31, 0x26, 0xeb, 0xb9, 0x86, 0xa4, 0x7d, 0x3d, 0x90, 0xc7, 0xda, 0xfb, -0xe5, 0x69, 0xe1, 0x4c, 0xda, 0xe9, 0x57, 0x66, 0xc0, 0x38, 0x6f, 0x1e, 0xf8, 0x66, 0x0f, 0x34, -0x76, 0xd3, 0x8e, 0x6d, 0x92, 0x16, 0x16, 0x20, 0x7e, 0xdb, 0x26, 0x37, 0x40, 0x33, 0xd4, 0x2e, -0xe7, 0x27, 0xcf, 0x84, 0x05, 0x58, 0xae, 0x6f, 0x67, 0x0f, 0x2c, 0xaf, 0xab, 0xa0, 0xb9, 0xb4, -0x8d, 0x03, 0x18, 0x27, 0x46, 0x7f, 0xdd, 0xf5, 0x05, 0xec, 0x7e, 0x2d, 0xd4, 0xfa, 0xb0, 0xc4, -0x05, 0x95, 0xeb, 0x99, 0x7c, 0x6a, 0x5c, 0xc6, 0xf5, 0xf7, 0xc0, 0xca, 0x40, 0x46, 0x87, 0x0a, -0xf5, 0xc0, 0x0c, 0x6a, 0xb9, 0x0d, 0x48, 0x97, 0x54, 0x1b, 0x3d, 0x2c, 0xd4, 0xc8, 0xb9, 0x62, -0x2e, 0x6d, 0x58, 0x97, 0x48, 0x1d, 0x70, 0xcb, 0x31, 0xf7, 0x05, 0xf5, 0x64, 0x61, 0x87, 0xea, -0xe4, 0x40, 0x7a, 0x0d, 0x3d, 0x40, 0xb6, 0xe7, 0xac, 0x0f, 0x70, 0x1b, 0x1a, 0xa0, 0xce, 0xd0, -0x90, 0xf1, 0xa4, 0xc5, 0x92, 0xf1, 0xd4, 0xdb, 0xab, 0x8a, 0xa0, 0xaa, 0xec, 0x9b, 0x2b, 0x6b, -0x40, 0x09, 0xd9, 0x72, 0x6b, 0xa4, 0x06, 0x7c, 0xab, 0x26, 0x97, 0x67, 0x3c, 0x39, 0xc7, 0x21, -0xaf, 0x0b, 0xa7, 0x4d, 0xcf, 0x04, 0xd9, 0xc5, 0x5a, 0x8d, 0xa3, 0x33, 0xe5, 0x47, 0x56, 0x0b, -0xc5, 0xbe, 0x45, 0xb0, 0x09, 0xf5, 0x7e, 0xa9, 0x36, 0x53, 0xc6, 0x05, 0xf6, 0xac, 0x53, 0xab, -0x9e, 0xd6, 0xdf, 0x23, 0xe3, 0x06, 0x24, 0x31, 0xe3, 0x13, 0xb7, 0xfc, 0x45, 0x13, 0xa6, 0x2f, -0x82, 0x83, 0x66, 0x00, 0x39, 0xa0, 0x99, 0x81, 0xc1, 0xd5, 0x16, 0x87, 0xaf, 0x69, 0xe2, 0x4a, -0xab, 0x25, 0xe3, 0xf1, 0xaa, 0x95, 0x08, 0x63, 0x1b, 0xc2, 0x1e, 0xf2, 0x45, 0x36, 0x85, 0x11, -0x53, 0xa1, 0x39, 0xb4, 0x07, 0x86, 0x41, 0x6e, 0x00, 0x5f, 0x04, 0x43, 0x1a, 0xc8, 0xba, 0x5a, -0x6d, 0x25, 0xf5, 0x16, 0xa1, 0x14, 0xe9, 0x54, 0x15, 0xa7, 0xd3, 0x32, 0xec, 0x39, 0x73, 0x2f, -0x3c, 0xfb, 0xdb, 0x78, 0x0b, 0x61, 0x98, 0xf3, 0xed, 0x30, 0xb5, 0x0a, 0x7e, 0x99, 0xf1, 0x4e, -0x44, 0x98, 0x69, 0x29, 0x9d, 0xf6, 0x6b, 0x2d, 0x64, 0x92, 0x4e, 0x50, 0x86, 0xa5, 0x38, 0x8f, -0x84, 0x85, 0xe2, 0x69, 0xd8, 0x3a, 0x5a, 0x0a, 0x69, 0xab, 0x62, 0x65, 0xf9, 0x37, 0x39, 0x7b, -0xc0, 0x4f, 0xe7, 0x04, 0x09, 0xe7, 0xb4, 0x53, 0x40, 0x2e, 0x77, 0xcf, 0x2a, 0x3f, 0x5c, 0xeb, -0xc3, 0x78, 0xf3, 0x36, 0x85, 0x51, 0x47, 0xd7, 0x10, 0x5d, 0x52, 0x9b, 0xa2, 0xee, 0xce, 0xb1, -0xb3, 0x12, 0x5b, 0xb0, 0x55, 0x1b, 0x60, 0x9e, 0x2d, 0xcd, 0xbb, 0x59, 0xf0, 0x31, 0x4b, 0x31, -0x00, 0xdd, 0x1e, 0xcc, 0x8b, 0x76, 0xf5, 0x12, 0x2d, 0x21, 0xe6, 0xa9, 0x8f, 0x99, 0x51, 0xb3, -0x44, 0x0c, 0x23, 0x96, 0x9f, 0x7a, 0xf3, 0x80, 0xf3, 0x87, 0xdd, 0x58, 0x76, 0xc6, 0x93, 0x18, -0xb2, 0xe5, 0x96, 0x88, 0x16, 0x68, 0xcf, 0x0f, 0xfa, 0x8a, 0xc9, 0x82, 0x60, 0xf1, 0xa7, 0xdd, -0x40, 0x98, 0x35, 0x10, 0x66, 0x22, 0xd8, 0xcb, 0x73, 0xa9, 0x74, 0x82, 0xe8, 0x6f, 0x43, 0x40, -0xe5, 0xfb, 0xb0, 0x37, 0x56, 0x21, 0x35, 0xb3, 0xbe, 0x8a, 0xa3, 0xcd, 0xd5, 0x61, 0x92, 0x76, -0x42, 0x1c, 0xd6, 0xc6, 0x1f, 0xfb, 0x26, 0xc2, 0xd5, 0x53, 0x0c, 0x46, 0x47, 0x0c, 0x42, 0x6a, -0x99, 0xf1, 0x10, 0x1a, 0x62, 0x10, 0xd2, 0x4c, 0x22, 0x62, 0x03, 0x7d, 0x8e, 0x44, 0x08, 0x09, -0x63, 0xcb, 0xd4, 0xfd, 0xd1, 0xd8, 0x29, 0x0d, 0x84, 0x71, 0x1e, 0xa3, 0xe6, 0x97, 0x9b, 0x34, -0x47, 0x18, 0x94, 0x21, 0x3a, 0xd7, 0xa1, 0xa5, 0x5b, 0xe6, 0x48, 0x86, 0xa8, 0xfb, 0x24, 0x0e, -0x69, 0xff, 0x5f, 0x87, 0x65, 0x6c, 0x31, 0x18, 0x93, 0x3b, 0xd4, 0x7b, 0xa2, 0xfe, 0xd4, 0x20, -0x2f, 0xea, 0x97, 0xab, 0xf7, 0x46, 0xfd, 0xda, 0xa0, 0x6a, 0xf4, 0xb4, 0x43, 0xc7, 0x55, 0x59, -0x17, 0x57, 0x38, 0x3a, 0xad, 0x7c, 0x26, 0xf4, 0x79, 0xb9, 0xa7, 0xcb, 0x94, 0x17, 0xeb, 0xff, -0x7f, 0xfd, 0xf9, 0xdf, 0xee, 0xf9, 0xfc, 0x20, 0xeb, 0xf9, 0xcd, 0x4a, 0xcf, 0x6f, 0xff, 0x9f, -0xef, 0xf9, 0x98, 0xbf, 0xe1, 0x06, 0x7d, 0x3b, 0x75, 0x6c, 0xdf, 0xc6, 0x72, 0x19, 0xb5, 0x29, -0xd4, 0xf0, 0x54, 0x07, 0xbf, 0x67, 0x05, 0xf6, 0x5e, 0xcf, 0x03, 0x49, 0x9b, 0x1a, 0x20, 0x38, -0x18, 0x9e, 0x86, 0xd4, 0xa1, 0xb4, 0xca, 0x96, 0x5b, 0x57, 0x20, 0xde, 0xbb, 0x27, 0xbb, 0x33, -0x9e, 0xb4, 0x73, 0x55, 0x0e, 0xd9, 0x12, 0x26, 0x52, 0xd6, 0xf4, 0x1a, 0x90, 0xfb, 0x25, 0xd9, -0x12, 0x7b, 0xf3, 0xb5, 0x92, 0x4f, 0x1f, 0x07, 0xdf, 0x62, 0xa5, 0x67, 0xa6, 0xc9, 0xb0, 0xde, -0xa8, 0x4f, 0x1a, 0x1c, 0x74, 0xc2, 0x7f, 0xd5, 0xd3, 0x58, 0xe3, 0x29, 0xd4, 0x27, 0xd1, 0x3f, -0x20, 0xa7, 0x9d, 0x88, 0xfd, 0x11, 0x69, 0x2f, 0xdc, 0xdb, 0x1d, 0xbb, 0x25, 0x0c, 0xf1, 0xb7, -0x00, 0xeb, 0x12, 0xda, 0x38, 0x30, 0xd9, 0x0d, 0x21, 0xc4, 0xd8, 0xf2, 0xda, 0xe0, 0x72, 0x7e, -0x6f, 0x77, 0x5d, 0x03, 0xeb, 0x3d, 0x0b, 0xa8, 0xa7, 0x5a, 0xc1, 0xb7, 0x72, 0x72, 0x99, 0x8c, -0xc5, 0xaf, 0xee, 0xa1, 0x0c, 0x4b, 0x03, 0x16, 0xcd, 0xc1, 0x18, 0xfe, 0x7e, 0x37, 0xed, 0x05, -0x2d, 0xd4, 0x5c, 0x87, 0x41, 0x2a, 0x55, 0xce, 0xdf, 0xff, 0x73, 0x71, 0xf9, 0x20, 0xad, 0x1b, -0x3a, 0xa0, 0x01, 0xa9, 0x8e, 0x60, 0x99, 0xbe, 0x0c, 0xb2, 0x68, 0xdc, 0x2a, 0x4d, 0x1c, 0xb7, -0x58, 0x9b, 0x25, 0x94, 0x24, 0x56, 0xd0, 0xdd, 0x6f, 0x69, 0xd3, 0x62, 0xfc, 0x6b, 0x30, 0xec, -0x0c, 0x6a, 0x6f, 0xdc, 0xf3, 0x5e, 0xbe, 0xbe, 0xe7, 0xc5, 0x6a, 0x4f, 0x3d, 0x86, 0x7a, 0x8e, -0x27, 0x12, 0x80, 0x6b, 0xbf, 0xfc, 0xfb, 0x7b, 0x63, 0x02, 0x85, 0xc3, 0xb5, 0x66, 0x71, 0x3e, -0xd1, 0xf6, 0x7f, 0xa5, 0xaf, 0x5c, 0x7e, 0x23, 0x21, 0x27, 0x1d, 0xea, 0xe0, 0x28, 0x73, 0x13, -0xa7, 0x12, 0xf5, 0xd4, 0xfb, 0xc6, 0xf7, 0x96, 0xd1, 0xdd, 0x1e, 0x6c, 0x4f, 0x04, 0x4a, 0x52, -0xdf, 0xef, 0xa4, 0xf1, 0x5b, 0x1a, 0x59, 0xa8, 0x6e, 0x83, 0xb2, 0x92, 0x59, 0xc3, 0x97, 0x4f, -0xc6, 0x7a, 0xca, 0xe5, 0x56, 0x94, 0xe5, 0xb1, 0x76, 0xf5, 0x19, 0x58, 0xea, 0x63, 0x35, 0xeb, -0xd9, 0x49, 0xf3, 0x64, 0x76, 0x8b, 0x4a, 0x0f, 0x6a, 0x92, 0xb4, 0xc6, 0x17, 0x22, 0xee, 0x80, -0xad, 0x4e, 0x78, 0x0f, 0xb1, 0xba, 0xab, 0x8e, 0x84, 0x65, 0x4b, 0xc1, 0x3b, 0xbb, 0x6b, 0x0b, -0x37, 0xbe, 0x4c, 0x14, 0x41, 0x9c, 0xf2, 0x1f, 0xc1, 0x07, 0xf2, 0xc6, 0x04, 0x3c, 0x62, 0x29, -0x96, 0xe2, 0xb3, 0x23, 0xc3, 0x2f, 0xbc, 0x5c, 0x4b, 0xd6, 0x4f, 0xff, 0x01, 0xac, 0x4a, 0x4e, -0x71, 0x3e, 0xe1, 0xe3, 0xbf, 0x82, 0xd5, 0xcf, 0xda, 0xe5, 0x9c, 0x82, 0x6a, 0x99, 0x07, 0x8d, -0x62, 0x15, 0x5d, 0xc9, 0xe8, 0x4a, 0xc0, 0x6a, 0x91, 0x3c, 0x07, 0x47, 0x7a, 0x55, 0x26, 0xca, -0xea, 0xec, 0x9c, 0xee, 0x6e, 0x79, 0x9e, 0xfe, 0x92, 0x11, 0x65, 0x34, 0xe5, 0xbe, 0x98, 0xb3, -0xcc, 0x92, 0xd4, 0x49, 0x9a, 0x7b, 0x22, 0xf9, 0x0c, 0xdd, 0x47, 0xd9, 0x99, 0x76, 0x94, 0xdd, -0x82, 0x16, 0xc4, 0xb3, 0x3a, 0xa0, 0x65, 0x73, 0x2d, 0xe1, 0x40, 0x06, 0xdb, 0x49, 0x91, 0xc3, -0x6c, 0x6c, 0xa2, 0x34, 0x1a, 0x93, 0xde, 0x30, 0x55, 0x57, 0x1d, 0xc0, 0xd3, 0x24, 0xb7, 0xee, -0xea, 0xaa, 0xd3, 0x3c, 0x1e, 0x3d, 0xda, 0x25, 0xf2, 0x46, 0xda, 0x8b, 0x41, 0x67, 0x01, 0xa6, -0xcb, 0x32, 0xf1, 0x64, 0x27, 0xb6, 0x88, 0x93, 0xd5, 0x94, 0xf8, 0x15, 0xdd, 0xc6, 0x58, 0x66, -0x46, 0xca, 0xff, 0x70, 0x1b, 0x8d, 0x33, 0xc0, 0x8d, 0xf2, 0x2c, 0x59, 0x42, 0x7d, 0x20, 0x2a, -0x96, 0xc5, 0x78, 0x5b, 0x26, 0x8f, 0x14, 0x21, 0xc7, 0xde, 0xfe, 0x9b, 0x71, 0x3d, 0xd2, 0xc4, -0xbd, 0x1a, 0xeb, 0x91, 0xaf, 0x50, 0x8f, 0x2c, 0x48, 0xec, 0x91, 0x11, 0xec, 0x1b, 0x91, 0x5d, -0x91, 0xba, 0xdd, 0xa2, 0x3a, 0x38, 0x22, 0x9f, 0x14, 0xd3, 0x65, 0xa3, 0x34, 0x9f, 0x62, 0x4b, -0x46, 0xac, 0xe8, 0x64, 0x6c, 0x70, 0x86, 0x51, 0x6c, 0x70, 0x19, 0x9e, 0xed, 0x64, 0xdb, 0x94, -0x4b, 0xc5, 0xb7, 0x91, 0x59, 0xd2, 0xde, 0x0e, 0xe9, 0xf8, 0xd0, 0xf9, 0xe1, 0xcc, 0x20, 0x8f, -0x75, 0xb6, 0x22, 0x4d, 0xa5, 0x4f, 0xa6, 0xbd, 0x59, 0x7a, 0xc2, 0x59, 0xa3, 0xc6, 0x45, 0xbd, -0x3d, 0x93, 0xdc, 0x01, 0x75, 0xc8, 0x82, 0xad, 0xf7, 0x43, 0xa4, 0x2c, 0x35, 0x93, 0x75, 0xd9, -0x6a, 0x90, 0xf3, 0x57, 0x84, 0xaf, 0xe6, 0x03, 0xa2, 0x6e, 0xd4, 0xf7, 0x10, 0xad, 0x51, 0xeb, -0x08, 0x83, 0x98, 0x9b, 0x49, 0x6e, 0xe7, 0x5a, 0x92, 0x1d, 0x2c, 0x83, 0x94, 0x5b, 0x21, 0xd6, -0xc1, 0x53, 0xd5, 0x2d, 0xd7, 0x82, 0x8d, 0xbb, 0xe8, 0x3f, 0x7c, 0xf5, 0x61, 0x49, 0x92, 0xe8, -0xa4, 0x30, 0x3b, 0x0f, 0xe6, 0x94, 0xe5, 0x4c, 0x4c, 0x13, 0x25, 0x2e, 0x88, 0xff, 0x5e, 0x7b, -0xf3, 0x35, 0xa1, 0xfc, 0x30, 0xf2, 0xc7, 0x6e, 0x2b, 0x3b, 0x17, 0x49, 0x52, 0xc1, 0xf2, 0x99, -0x34, 0xd6, 0x58, 0xed, 0xdf, 0x7c, 0x1c, 0xd0, 0xb7, 0x1a, 0x43, 0xd5, 0xf8, 0x5e, 0x87, 0x6f, -0x0d, 0xbe, 0x97, 0xd1, 0xbe, 0x06, 0x7c, 0xe6, 0x51, 0x3f, 0x09, 0x52, 0xfc, 0x36, 0xe2, 0x5c, -0x34, 0x46, 0xe2, 0x53, 0xc6, 0x76, 0x48, 0x12, 0x35, 0x8d, 0x18, 0x7f, 0x60, 0xa2, 0xf3, 0xfe, -0x2d, 0x8a, 0x7d, 0xb5, 0x6c, 0x61, 0x91, 0x7c, 0xef, 0x5c, 0x20, 0x0d, 0xc7, 0xa2, 0x6d, 0x90, -0xe9, 0x4f, 0xbd, 0x0b, 0x75, 0x5d, 0xd4, 0xd4, 0xc9, 0xee, 0xca, 0x88, 0xfc, 0x50, 0x6c, 0xd2, -0x94, 0x59, 0x3c, 0x23, 0xea, 0xbc, 0xd9, 0x6c, 0x3f, 0xe1, 0xa4, 0x6f, 0x14, 0x67, 0xec, 0xa6, -0xf4, 0xcc, 0xfa, 0xa7, 0x63, 0xa0, 0x05, 0x52, 0xa7, 0x39, 0x32, 0x76, 0x05, 0xc7, 0xa5, 0x64, -0xa9, 0x4c, 0xf1, 0x72, 0x04, 0x96, 0xff, 0x6a, 0xfc, 0xd5, 0xc1, 0x72, 0xfc, 0xd5, 0xc3, 0xba, -0xbb, 0x68, 0x8e, 0x76, 0x59, 0x62, 0x3a, 0xda, 0x53, 0x65, 0x20, 0xfb, 0x73, 0x34, 0x53, 0xcd, -0x2d, 0x88, 0x9a, 0xf8, 0x33, 0x6b, 0x82, 0xf7, 0x0e, 0x46, 0xce, 0x77, 0x0f, 0x76, 0x9a, 0x1d, -0x7f, 0x7c, 0x59, 0xd9, 0xcf, 0xb8, 0x58, 0x86, 0xc4, 0xaf, 0x2d, 0x3e, 0x0f, 0x29, 0x6c, 0x2e, -0x65, 0x0a, 0x64, 0xb6, 0x71, 0xbb, 0xc3, 0x01, 0x7d, 0x06, 0xf6, 0x25, 0x7c, 0xa7, 0x7b, 0xc2, -0xfe, 0x9a, 0x8d, 0x07, 0xc4, 0x05, 0x9e, 0x67, 0xa0, 0x21, 0xe0, 0xb5, 0x77, 0x40, 0xb2, 0xe8, -0x33, 0x2e, 0x56, 0xa8, 0xc4, 0x85, 0x1c, 0x47, 0x1f, 0x48, 0xc6, 0xd0, 0x74, 0xe4, 0x33, 0xe9, -0xec, 0x44, 0x7e, 0x9a, 0x09, 0xf5, 0x3a, 0x46, 0x4f, 0x1a, 0x5f, 0xb7, 0xe7, 0x0e, 0xff, 0x30, -0xfa, 0x8d, 0x89, 0x7e, 0x4c, 0x63, 0x0d, 0xa4, 0x56, 0x77, 0x8b, 0x94, 0x4e, 0x23, 0xa7, 0x09, -0xde, 0xdc, 0xfb, 0x0c, 0xe4, 0xfa, 0x35, 0xf8, 0xeb, 0x0d, 0x68, 0x8a, 0x2f, 0x1e, 0x48, 0x12, -0xb3, 0x05, 0xae, 0x4d, 0x77, 0x66, 0xdb, 0x50, 0x58, 0xe0, 0x10, 0x96, 0x54, 0x72, 0x05, 0x6f, -0x3f, 0xf1, 0xcc, 0x11, 0x5a, 0x61, 0x06, 0x41, 0x2b, 0xef, 0xfc, 0x22, 0x5b, 0x2d, 0xb4, 0x6f, -0x0c, 0x79, 0xa5, 0x59, 0xa6, 0xe1, 0x94, 0xbe, 0x51, 0x1a, 0x4e, 0xd9, 0x11, 0x4c, 0xea, 0x8d, -0x36, 0x41, 0xca, 0xd3, 0x1e, 0xfa, 0xfd, 0x39, 0x59, 0xa5, 0x0a, 0x64, 0x7b, 0x36, 0xfb, 0x35, -0xe8, 0x52, 0xfb, 0xd3, 0xc8, 0x72, 0x3e, 0x49, 0x15, 0xfc, 0x13, 0xfe, 0x34, 0x66, 0x69, 0x42, -0x77, 0xf7, 0x8f, 0xe1, 0xd4, 0x66, 0x01, 0x32, 0x45, 0x48, 0x09, 0x92, 0x6d, 0xab, 0x00, 0x68, -0x4c, 0xc6, 0x35, 0xd8, 0xdf, 0x4c, 0xd8, 0x63, 0x4d, 0x6d, 0x96, 0xdd, 0x34, 0xa7, 0x7d, 0x80, -0x49, 0x1d, 0x99, 0xe8, 0x4a, 0x4e, 0xa4, 0x6a, 0xa2, 0x61, 0xa4, 0xce, 0x74, 0xa4, 0x55, 0xed, -0xad, 0x7b, 0xe0, 0xce, 0x6e, 0x90, 0x5d, 0xd2, 0x9a, 0x6e, 0x4e, 0x09, 0xd3, 0x76, 0xf3, 0xe5, -0x67, 0x41, 0x35, 0xb9, 0x82, 0xc5, 0x62, 0xda, 0x2f, 0xc3, 0x7f, 0x88, 0xbe, 0x3b, 0xa7, 0x1d, -0x00, 0xf9, 0xdd, 0xad, 0x56, 0xde, 0x49, 0xca, 0x5b, 0xa3, 0xbc, 0x27, 0x90, 0x1d, 0x9b, 0xc9, -0xe5, 0x90, 0x4e, 0x27, 0x11, 0x89, 0xde, 0x43, 0x13, 0x77, 0xca, 0x6d, 0xc5, 0xed, 0x46, 0xed, -0xa2, 0x29, 0x79, 0x77, 0xb8, 0x29, 0x59, 0xa4, 0x75, 0x3c, 0x4d, 0x50, 0x8d, 0x1a, 0x2b, 0xa4, -0x85, 0x95, 0x92, 0xb9, 0xee, 0x89, 0xc5, 0x67, 0x21, 0x19, 0xb9, 0x7d, 0x7a, 0xf0, 0x87, 0x34, -0x6f, 0xfd, 0x47, 0xcc, 0xc1, 0xb3, 0x91, 0xf6, 0x40, 0x63, 0xcb, 0x5a, 0x03, 0xea, 0x36, 0x1e, -0xe3, 0xab, 0x06, 0x55, 0xe8, 0xd3, 0xfb, 0xd5, 0x4e, 0x15, 0x6a, 0x9c, 0xea, 0xa3, 0xf4, 0x2d, -0x1b, 0x7d, 0x74, 0x53, 0xa9, 0xf6, 0x28, 0x87, 0x3e, 0xa3, 0xe2, 0xd3, 0x1f, 0xe5, 0x32, 0x3b, -0x11, 0x1a, 0x35, 0x41, 0x63, 0xc6, 0x32, 0x2c, 0x58, 0x9f, 0xdb, 0x9f, 0x85, 0x09, 0x8f, 0x03, -0x86, 0x26, 0x8d, 0x0b, 0xd5, 0xb0, 0x50, 0xcd, 0xb8, 0xd0, 0x24, 0x16, 0x3a, 0x61, 0x5c, 0xa8, -0x9a, 0x85, 0x5e, 0x5f, 0xcb, 0xd4, 0xb6, 0x2f, 0xad, 0x23, 0xc6, 0x9f, 0x38, 0x2e, 0x97, 0x9b, -0x59, 0x2e, 0xc9, 0x4a, 0x28, 0xb3, 0xad, 0x16, 0x30, 0xe3, 0x37, 0xed, 0x1d, 0x3b, 0xe0, 0x6b, -0xec, 0x5b, 0xca, 0xb8, 0x14, 0x19, 0x8f, 0x03, 0x62, 0x48, 0x47, 0x18, 0xa2, 0x99, 0x09, 0x1c, -0x55, 0xac, 0x81, 0x2c, 0xe4, 0x2e, 0xe9, 0xec, 0xc4, 0xa9, 0xc2, 0xeb, 0xe5, 0x56, 0xa6, 0x76, -0x43, 0xae, 0x20, 0x04, 0x4b, 0x91, 0x47, 0x90, 0xf5, 0x85, 0xdd, 0x08, 0x65, 0xee, 0xfd, 0xe1, -0x90, 0xee, 0xfd, 0x6d, 0x06, 0x26, 0xcd, 0x69, 0x41, 0x81, 0x96, 0x6e, 0x67, 0x88, 0xee, 0x0e, -0x37, 0x66, 0x63, 0x1b, 0x25, 0xe1, 0x3b, 0x13, 0xdf, 0x9a, 0xdd, 0xe1, 0xb9, 0xaf, 0xb8, 0x3b, -0x91, 0xee, 0xf9, 0x0d, 0xaf, 0x98, 0xb4, 0xa2, 0x86, 0x6e, 0xd7, 0x6d, 0xe3, 0x3e, 0x5e, 0xb3, -0x32, 0xc2, 0xec, 0xc6, 0xa8, 0x83, 0xc2, 0x4a, 0x3a, 0xad, 0x74, 0xa7, 0xbc, 0x2f, 0x70, 0x46, -0x7a, 0xe5, 0x7a, 0x8c, 0x7b, 0xe7, 0xe1, 0x57, 0x64, 0x7e, 0xba, 0x91, 0x2c, 0x25, 0x26, 0x97, -0x0f, 0x9f, 0xef, 0x61, 0x73, 0xc2, 0xcc, 0xd2, 0x0c, 0x72, 0xb9, 0x1c, 0xba, 0x06, 0x91, 0xc6, -0x5a, 0x01, 0x5d, 0x8a, 0xfd, 0x71, 0xe6, 0x67, 0xbc, 0x2b, 0x81, 0xdf, 0xc6, 0x6a, 0xd0, 0x56, -0x8a, 0x10, 0xd2, 0x0c, 0xd7, 0x09, 0xa5, 0xbe, 0x34, 0xae, 0xbf, 0x81, 0xf0, 0xa6, 0xcf, 0x1a, -0xfe, 0x24, 0xab, 0x9c, 0xcd, 0xb6, 0x88, 0x22, 0xcd, 0xa3, 0xa3, 0x2e, 0xaa, 0xf3, 0xe7, 0x31, -0x8c, 0x64, 0xa3, 0x76, 0x9a, 0xb9, 0x29, 0x6c, 0xe3, 0x70, 0x8c, 0xa7, 0x1b, 0x8b, 0x09, 0x2f, -0x5b, 0x62, 0x39, 0xd2, 0xee, 0x53, 0x4a, 0x5f, 0xb3, 0x1e, 0xfb, 0x87, 0x2e, 0x50, 0x40, 0x69, -0x29, 0x6f, 0xeb, 0x22, 0xd0, 0x23, 0x1d, 0xd2, 0xc9, 0x5a, 0xed, 0x2d, 0xbb, 0x1f, 0x07, 0x59, -0x1f, 0x61, 0xba, 0x0e, 0x85, 0x65, 0x1b, 0xcc, 0x90, 0x4e, 0x12, 0x9e, 0x24, 0x61, 0x49, 0x42, -0xed, 0xda, 0x38, 0xfe, 0x8d, 0x94, 0x03, 0x96, 0x98, 0x3d, 0xae, 0xc4, 0x31, 0x2d, 0xc1, 0x66, -0xa2, 0x2c, 0x20, 0xf4, 0xd2, 0x3c, 0x52, 0x1a, 0xb5, 0x4b, 0xa8, 0x9c, 0xf0, 0x84, 0x78, 0x2d, -0x9f, 0x5c, 0x02, 0xea, 0x60, 0x79, 0xaf, 0x5c, 0xcf, 0x23, 0x4a, 0xbe, 0xd9, 0x01, 0x9a, 0xd1, -0x66, 0xf5, 0xfc, 0x38, 0x4f, 0xae, 0x67, 0xbc, 0x96, 0xd3, 0xe3, 0x65, 0xff, 0x23, 0x35, 0xb5, -0xe3, 0xa8, 0xcc, 0x6a, 0x42, 0x5c, 0x3a, 0xcd, 0x5e, 0x00, 0xbe, 0x4e, 0x2c, 0x99, 0xa4, 0xb7, -0x74, 0x56, 0xe7, 0x88, 0x12, 0x92, 0xee, 0xe1, 0xfc, 0x5b, 0xe4, 0xd6, 0xfe, 0xc7, 0xea, 0xe8, -0xe9, 0x54, 0x6a, 0xf6, 0x7d, 0xa5, 0x66, 0xdf, 0x67, 0x35, 0xfb, 0xbe, 0x52, 0xb3, 0x37, 0x94, -0xdc, 0x70, 0x9c, 0x86, 0x3d, 0x72, 0xcd, 0xce, 0xd7, 0xfc, 0x8f, 0xd7, 0xcc, 0xf8, 0xff, 0x51, -0xcd, 0x52, 0x43, 0x01, 0xa5, 0x56, 0x01, 0x56, 0xab, 0x00, 0xab, 0x55, 0x63, 0x3c, 0x9f, 0xf9, -0x04, 0x4f, 0x75, 0x98, 0xe0, 0x59, 0xa8, 0x45, 0xf8, 0xfa, 0x3f, 0xea, 0xa8, 0x59, 0x4f, 0x61, -0x06, 0xa8, 0x8e, 0x50, 0xdd, 0x6a, 0x1d, 0x0c, 0x96, 0xed, 0xf0, 0x4d, 0x59, 0x23, 0x50, 0x60, -0xdb, 0x0e, 0x79, 0x6c, 0x66, 0x2c, 0x7d, 0x3c, 0x97, 0x96, 0xfb, 0x91, 0x7c, 0x2a, 0xbf, 0xed, -0x87, 0x54, 0x26, 0xf6, 0xa2, 0x74, 0xba, 0x63, 0x1c, 0xf3, 0x16, 0x6a, 0xd6, 0x33, 0xab, 0x86, -0x59, 0xcc, 0x9e, 0xac, 0x49, 0x84, 0xa4, 0x06, 0x36, 0x5a, 0x24, 0xf7, 0x45, 0x9b, 0x34, 0x34, -0x4a, 0x8c, 0x19, 0x37, 0xd2, 0xe9, 0x5b, 0x20, 0x95, 0x8d, 0x1b, 0x56, 0x94, 0x8b, 0xbe, 0xc0, -0xf8, 0x0e, 0x16, 0x3f, 0x83, 0x49, 0xe3, 0x7a, 0xd2, 0x56, 0x93, 0xcc, 0x72, 0xec, 0x00, 0xa8, -0xf3, 0x31, 0xed, 0xca, 0x36, 0x9e, 0xc6, 0x11, 0xd8, 0x33, 0x7b, 0xf8, 0xa3, 0x8c, 0x59, 0x4c, -0x96, 0x2f, 0x1f, 0x3e, 0xb7, 0x8d, 0xc5, 0x27, 0x49, 0x7e, 0x6b, 0xa2, 0x24, 0xcf, 0x1f, 0x12, -0x41, 0x65, 0x88, 0x69, 0x4d, 0xa3, 0x33, 0x7e, 0xff, 0xd8, 0x6c, 0x04, 0x7e, 0x7b, 0xbc, 0xaa, -0x9b, 0x34, 0xa1, 0xd1, 0xb9, 0x91, 0x17, 0x06, 0xfc, 0x6b, 0xbf, 0x62, 0x66, 0xe4, 0xb1, 0xb8, -0xac, 0xbd, 0x65, 0x8c, 0xcc, 0x3e, 0x4f, 0x04, 0x7e, 0x13, 0x9d, 0xaa, 0x47, 0xd8, 0x36, 0xcd, -0x1a, 0x3e, 0x57, 0x8d, 0x72, 0xe9, 0xb7, 0x49, 0x13, 0xa5, 0x79, 0xa1, 0xf2, 0x4f, 0xb5, 0x50, -0x7e, 0x7e, 0xe2, 0x4a, 0xa6, 0xc1, 0x73, 0xa8, 0xc1, 0x4f, 0xa2, 0x9c, 0x12, 0xf4, 0x77, 0x4e, -0xd1, 0xdf, 0x2b, 0xd9, 0x5a, 0xd6, 0x45, 0xaa, 0x17, 0xcd, 0x1c, 0x21, 0x46, 0x22, 0x75, 0xb4, -0x1b, 0x01, 0xcb, 0xdc, 0x29, 0x4b, 0xe3, 0xfb, 0xac, 0x58, 0xdf, 0xe2, 0xcb, 0x8f, 0x4b, 0x24, -0x23, 0x67, 0xa0, 0x5c, 0xcc, 0xe6, 0xde, 0x77, 0xc8, 0xf6, 0xc0, 0x19, 0xfe, 0x9e, 0x62, 0x6e, -0x15, 0x73, 0x6f, 0x29, 0xf9, 0x90, 0xe3, 0x4d, 0xa9, 0x47, 0x57, 0xcd, 0xed, 0x46, 0xde, 0xce, -0x59, 0x91, 0x7d, 0x66, 0x62, 0x9a, 0xbe, 0xb0, 0xdf, 0x8f, 0x7e, 0x9e, 0xf9, 0x78, 0xf4, 0xd5, -0xa0, 0x4f, 0xc5, 0x7c, 0x2a, 0xf4, 0x79, 0x68, 0x04, 0x63, 0x3e, 0x35, 0xfa, 0x8a, 0x68, 0xe4, -0x62, 0xbe, 0x24, 0xf4, 0xe5, 0xd2, 0x88, 0xc5, 0x7c, 0x1a, 0xf4, 0x09, 0x34, 0x52, 0x31, 0xdf, -0x04, 0xf4, 0xa5, 0x55, 0x76, 0x1b, 0xa8, 0x84, 0x5c, 0xd0, 0xa2, 0x8f, 0xf6, 0xb9, 0xad, 0xde, -0xfc, 0x0a, 0x41, 0x80, 0x63, 0xca, 0x82, 0x9d, 0xab, 0xea, 0xe8, 0x1c, 0x17, 0xd5, 0x6b, 0x41, -0x6c, 0x5e, 0x80, 0xd5, 0xaf, 0xe1, 0x01, 0x6e, 0x30, 0x3c, 0x0d, 0xc7, 0xe2, 0x1b, 0xe9, 0xb0, -0xb2, 0x86, 0x5b, 0xcc, 0xe6, 0x43, 0xd2, 0xec, 0x63, 0x67, 0xec, 0xc6, 0xea, 0xb7, 0xbe, 0xea, -0xb8, 0x86, 0x3b, 0xaa, 0x37, 0x2d, 0xd8, 0x8c, 0x6d, 0xfb, 0xa6, 0x2c, 0xc3, 0x2e, 0x10, 0x2b, -0x49, 0x6f, 0xa6, 0x96, 0xfe, 0x2f, 0xeb, 0xce, 0x4a, 0xce, 0x71, 0xdd, 0x99, 0xce, 0xd3, 0x59, -0xff, 0x86, 0xee, 0x3c, 0x4e, 0x43, 0xfb, 0xe0, 0xe8, 0x18, 0x0d, 0xfa, 0x13, 0x71, 0xde, 0x7f, -0x55, 0xd7, 0xfb, 0x60, 0x6d, 0xe2, 0x6c, 0x13, 0xeb, 0x83, 0x34, 0xdb, 0x94, 0xd7, 0xa6, 0xde, -0x2d, 0xeb, 0xcf, 0x66, 0xd4, 0xf4, 0x8c, 0x41, 0x4e, 0x14, 0x98, 0x0e, 0x00, 0x47, 0xc2, 0x83, -0x91, 0x41, 0x66, 0x4d, 0x88, 0xe9, 0x00, 0xf9, 0x64, 0x9b, 0x43, 0xa8, 0x24, 0x9b, 0x72, 0x06, -0x98, 0x13, 0xc1, 0x91, 0x39, 0x52, 0xaf, 0xa7, 0x3d, 0xc5, 0xfc, 0x13, 0xb2, 0x76, 0x12, 0xd0, -0x88, 0x74, 0xfe, 0x4c, 0xb1, 0x66, 0xca, 0xd1, 0xea, 0x63, 0x94, 0xa4, 0x60, 0xa4, 0xab, 0x2e, -0x2c, 0x41, 0x27, 0x43, 0xb4, 0x70, 0x5d, 0xcd, 0x7a, 0xac, 0x03, 0x4a, 0x94, 0x81, 0x6a, 0x99, -0xa3, 0x28, 0xda, 0x8a, 0x6c, 0x19, 0x4a, 0x85, 0x50, 0x15, 0xfd, 0xfd, 0xda, 0x0a, 0xe3, 0x7d, -0xd4, 0xcb, 0xb5, 0x31, 0xcd, 0x83, 0xb8, 0xcf, 0x99, 0x5f, 0x28, 0xdc, 0x27, 0xb9, 0x55, 0x22, -0x89, 0x13, 0x21, 0x39, 0xcf, 0x6a, 0x09, 0x70, 0x8a, 0xf4, 0xaa, 0x16, 0x1c, 0xad, 0x0d, 0xc8, -0x43, 0x5b, 0xf9, 0x5d, 0x04, 0x1d, 0xad, 0x83, 0x28, 0x7c, 0x58, 0x0b, 0xca, 0x5c, 0x6b, 0x9c, -0xf7, 0x65, 0x8e, 0xf5, 0x4f, 0x1b, 0xe7, 0xb7, 0x8f, 0xf3, 0xa7, 0x8c, 0xf3, 0x27, 0x8f, 0xf3, -0x4f, 0x1c, 0xe7, 0xd7, 0x66, 0x42, 0x25, 0xe3, 0xb5, 0xa2, 0x81, 0xf6, 0x4f, 0x51, 0xbb, 0x95, -0x0f, 0x9f, 0xca, 0xb8, 0xb1, 0xfc, 0x41, 0x75, 0x3b, 0xfd, 0x2a, 0xd5, 0xa0, 0x66, 0x7d, 0x8b, -0xa2, 0x27, 0x12, 0xcf, 0x8d, 0xdb, 0x2a, 0x4b, 0x46, 0xad, 0x74, 0x74, 0x16, 0x84, 0x59, 0xf2, -0xb0, 0xd3, 0xdd, 0x1c, 0xe9, 0xb4, 0x5b, 0x87, 0x74, 0x76, 0x65, 0x5f, 0xdd, 0x3e, 0xe3, 0xa2, -0xb8, 0xbe, 0xbe, 0x9b, 0xdd, 0x6f, 0xa3, 0x6e, 0xd5, 0x88, 0xda, 0xe0, 0xc4, 0xde, 0x68, 0x3d, -0x6a, 0xde, 0x9e, 0xce, 0x26, 0x80, 0x9f, 0x23, 0x9d, 0xd1, 0x7b, 0x6b, 0x22, 0x35, 0x30, 0xcd, -0x90, 0x51, 0x83, 0xe1, 0x16, 0x92, 0xcc, 0xfc, 0x19, 0x02, 0x3f, 0x18, 0x25, 0x2b, 0xb7, 0xa3, -0x5f, 0x76, 0x6e, 0x0c, 0x10, 0x8d, 0x69, 0x03, 0xb4, 0xbf, 0x2b, 0xc9, 0xa6, 0xf5, 0xf6, 0xff, -0xe5, 0x29, 0xb2, 0xb8, 0x17, 0x84, 0x5d, 0x3d, 0x10, 0x0d, 0xcc, 0xc0, 0x16, 0x89, 0x1a, 0x9c, -0x6f, 0xee, 0xc3, 0x7f, 0x09, 0x1a, 0x26, 0xad, 0x12, 0xa1, 0x86, 0x59, 0x1c, 0xd3, 0x30, 0xf3, -0x48, 0xc3, 0x2c, 0x86, 0xd5, 0x79, 0xa4, 0x61, 0x16, 0xc3, 0xba, 0x3c, 0xd2, 0x30, 0x8b, 0x61, -0x19, 0x8e, 0x33, 0x2b, 0x49, 0x83, 0x44, 0xcd, 0x5b, 0x37, 0xba, 0x8e, 0xa6, 0xd4, 0x65, 0x1f, -0x8d, 0x76, 0x4a, 0x1d, 0x77, 0xd3, 0xad, 0xbd, 0x41, 0x0b, 0xd2, 0x99, 0x5d, 0x5f, 0x04, 0xa5, -0xf8, 0x36, 0xe3, 0xbb, 0x1c, 0xdf, 0x02, 0xbe, 0xbf, 0x8f, 0xef, 0x4c, 0x7c, 0x07, 0xf0, 0x4d, -0x33, 0x1e, 0x3f, 0xc4, 0xb7, 0x96, 0x56, 0x6e, 0x70, 0x34, 0x5a, 0x46, 0x67, 0x98, 0x03, 0xa9, -0xec, 0xbc, 0x9c, 0x19, 0x73, 0x34, 0x12, 0xcd, 0x2b, 0x2b, 0x75, 0xce, 0x2f, 0x09, 0x9f, 0xf1, -0x25, 0xe1, 0xd3, 0xc7, 0x87, 0xa3, 0x3b, 0x7b, 0xd4, 0x8f, 0x14, 0x9b, 0x5d, 0xb9, 0x3e, 0x88, -0xa5, 0x63, 0x0f, 0xbc, 0x86, 0x6d, 0xc7, 0x66, 0x15, 0x62, 0xeb, 0x77, 0x45, 0x05, 0x64, 0xbf, -0x1a, 0xdb, 0x8d, 0xd9, 0x4b, 0xc6, 0x36, 0xb4, 0x92, 0x75, 0x10, 0x33, 0xd9, 0x16, 0x6e, 0x61, -0xb7, 0xd5, 0x14, 0x29, 0xf7, 0x73, 0x5d, 0xd2, 0xe9, 0x61, 0x1a, 0xf6, 0xb9, 0xf3, 0xcb, 0x0a, -0xfa, 0x23, 0xf8, 0x3e, 0xa5, 0xcc, 0x44, 0x9c, 0xa0, 0x59, 0x06, 0x9a, 0x81, 0xf0, 0xeb, 0xee, -0xee, 0x80, 0xd3, 0x0d, 0x7d, 0x20, 0x60, 0x88, 0x99, 0xe6, 0x22, 0xfc, 0x5a, 0x16, 0x72, 0x04, -0x8c, 0xec, 0x2e, 0x62, 0xbe, 0x4d, 0xe3, 0x89, 0x36, 0x6a, 0x5c, 0xd1, 0x65, 0x20, 0xa6, 0x2d, -0xbb, 0xb9, 0x3f, 0xda, 0x98, 0x1c, 0xba, 0x38, 0x14, 0xc9, 0xa2, 0xb9, 0x20, 0x7e, 0x19, 0x57, -0x7c, 0x5e, 0x92, 0x42, 0xda, 0x9d, 0xdd, 0xf5, 0xc0, 0xad, 0x65, 0xa7, 0xab, 0x57, 0x06, 0x27, -0xf4, 0x46, 0x1b, 0x81, 0x5b, 0x9e, 0x56, 0x04, 0x37, 0xef, 0x44, 0xbd, 0x90, 0x6b, 0x25, 0xaa, -0xe1, 0x9a, 0x11, 0x97, 0x13, 0x89, 0x6e, 0xb8, 0x3a, 0x4f, 0x17, 0xfe, 0x2e, 0x60, 0x36, 0x63, -0xc8, 0x55, 0x8d, 0x5f, 0xb4, 0x58, 0x4f, 0xbe, 0x75, 0xa2, 0xbb, 0x3d, 0x63, 0x2f, 0x3b, 0x31, -0x95, 0x83, 0x78, 0x78, 0x08, 0x04, 0xef, 0x06, 0xe3, 0xe8, 0x1e, 0x0e, 0x3b, 0xca, 0x16, 0xd9, -0xc6, 0x35, 0x93, 0x4b, 0x21, 0x93, 0xb0, 0x83, 0xd4, 0x92, 0xbb, 0x8c, 0x33, 0x24, 0x9d, 0x7e, -0xc6, 0x48, 0xb3, 0xf7, 0x96, 0x2a, 0xea, 0x3d, 0x79, 0x82, 0x6e, 0x01, 0x51, 0xbf, 0xd7, 0x90, -0xf4, 0xde, 0x33, 0x02, 0x85, 0x7b, 0xd8, 0x1c, 0xa9, 0x8f, 0xed, 0x9a, 0x69, 0x84, 0x89, 0xb1, -0x7b, 0x90, 0x30, 0x6c, 0x2e, 0xed, 0x13, 0x41, 0xde, 0x15, 0x2f, 0x0b, 0xc3, 0xa6, 0xb3, 0x30, -0x0b, 0x58, 0xc6, 0x84, 0xce, 0x50, 0x42, 0x3d, 0x63, 0x42, 0x9d, 0xce, 0x9e, 0x8c, 0x7e, 0x41, -0x37, 0x3f, 0xfc, 0xde, 0xb3, 0x93, 0x4b, 0x33, 0x68, 0x5f, 0xa1, 0x91, 0xed, 0x08, 0x48, 0x1a, -0x13, 0x4b, 0x4b, 0x3c, 0xdf, 0xc8, 0x0d, 0x45, 0x2c, 0xfc, 0xdb, 0x51, 0x84, 0x5d, 0xa7, 0x70, -0xa6, 0xe9, 0x01, 0x3a, 0xa3, 0x3a, 0x23, 0x90, 0x4c, 0x27, 0x0e, 0x02, 0x6a, 0xda, 0x97, 0x13, -0xe3, 0x99, 0x4c, 0xda, 0x31, 0x03, 0x93, 0x97, 0xae, 0x15, 0x20, 0x57, 0xcc, 0x5f, 0x36, 0x72, -0x30, 0xf2, 0x76, 0x18, 0x4b, 0x79, 0xea, 0x48, 0x74, 0x30, 0x82, 0xe3, 0xca, 0x16, 0xa4, 0xf6, -0xe8, 0x64, 0x17, 0xac, 0xbc, 0xad, 0x03, 0x95, 0x21, 0xa3, 0x6d, 0x16, 0x08, 0xa8, 0xb1, 0x17, -0x89, 0xf0, 0xf1, 0xba, 0xe0, 0xb0, 0x42, 0x2d, 0x57, 0x29, 0x04, 0x7b, 0x82, 0x0d, 0xf9, 0x83, -0x8d, 0x74, 0x14, 0xb6, 0x47, 0xb8, 0x1d, 0x6e, 0x66, 0xbb, 0x82, 0x6d, 0x20, 0xd0, 0x83, 0x25, -0xec, 0xa4, 0xd3, 0xea, 0xcc, 0x76, 0x13, 0xe9, 0xfa, 0xd9, 0x64, 0x69, 0x48, 0xa1, 0x9e, 0x46, -0x85, 0x5a, 0xea, 0xcc, 0xc8, 0x15, 0x94, 0x7b, 0xee, 0x6a, 0x68, 0x5f, 0x04, 0x8e, 0x23, 0x29, -0xb3, 0xd8, 0xaa, 0xb1, 0xf7, 0xb1, 0x2f, 0x69, 0xb3, 0x4c, 0xd6, 0x66, 0xb9, 0xd4, 0x66, 0x14, -0x83, 0xf6, 0xa6, 0x7a, 0x1f, 0x33, 0xae, 0xb9, 0x21, 0x7e, 0xbf, 0x04, 0xeb, 0x0a, 0x46, 0x6f, -0x80, 0x79, 0x86, 0x67, 0xc4, 0xeb, 0x68, 0xa8, 0xd5, 0x41, 0xb8, 0xa6, 0xf5, 0x54, 0x66, 0xed, -0x23, 0x8d, 0xe1, 0x56, 0xc7, 0x70, 0xab, 0x21, 0xab, 0x7e, 0x7e, 0x92, 0xbc, 0xfb, 0xbf, 0x38, -0x47, 0xf7, 0x77, 0xc2, 0xe3, 0x34, 0xa7, 0xca, 0x2c, 0xe1, 0x59, 0xd9, 0x3a, 0xea, 0x63, 0x09, -0xfe, 0x19, 0x58, 0xda, 0x0c, 0x16, 0xe2, 0x51, 0x42, 0x9c, 0x6c, 0x54, 0xa1, 0x13, 0x5c, 0x42, -0x2e, 0x4a, 0xc3, 0x18, 0xa2, 0x25, 0x9d, 0xd5, 0xfb, 0x18, 0xd9, 0x2d, 0xa2, 0xbb, 0x8e, 0x36, -0xec, 0x00, 0x2d, 0xb5, 0x0a, 0xcd, 0xd3, 0x65, 0x3c, 0xde, 0x3a, 0xb2, 0x3f, 0xfc, 0xa7, 0x7d, -0x93, 0xbd, 0x19, 0x4f, 0x91, 0xf5, 0x97, 0xc1, 0xe8, 0x91, 0xf0, 0xe4, 0xe2, 0x8c, 0x2d, 0xc5, -0xe7, 0x60, 0xd3, 0x64, 0x77, 0x4a, 0x46, 0xf1, 0xb9, 0x89, 0x2b, 0xf1, 0x6d, 0x28, 0x3e, 0x97, -0xbc, 0x0c, 0xdf, 0xb9, 0xcc, 0x3a, 0x1d, 0x8c, 0xb6, 0x58, 0x87, 0x5a, 0x9e, 0x95, 0x0a, 0x42, -0xc9, 0x45, 0x2d, 0x38, 0x17, 0xc3, 0xa6, 0x1a, 0x76, 0x6f, 0xa4, 0xba, 0xdd, 0xff, 0x89, 0xd3, -0x21, 0x87, 0x4d, 0x5c, 0x59, 0x13, 0x0e, 0xb5, 0x63, 0x6f, 0xbb, 0x18, 0x8b, 0x95, 0xbc, 0x0c, -0x43, 0x2a, 0x28, 0x64, 0x5a, 0x07, 0x70, 0xea, 0x4d, 0xce, 0x6d, 0x19, 0xdb, 0xf0, 0x79, 0x1a, -0x9f, 0x1d, 0xf8, 0x3c, 0xc9, 0x78, 0xc6, 0x0c, 0x41, 0x39, 0xb9, 0x47, 0xb7, 0x59, 0x09, 0xdc, -0x60, 0x84, 0xad, 0x69, 0x5c, 0x7c, 0x1c, 0x0c, 0x8b, 0x53, 0xe6, 0x99, 0xcc, 0xe9, 0x5e, 0xe3, -0xc4, 0xa1, 0x55, 0x56, 0xe7, 0x9f, 0xf6, 0xcd, 0xfe, 0xf4, 0x2c, 0xcc, 0xc2, 0x70, 0xc4, 0xd4, -0x93, 0xbb, 0xc3, 0x2d, 0x3e, 0x23, 0xf8, 0xa2, 0xb4, 0x4f, 0xc0, 0xe4, 0xfa, 0xc3, 0xfe, 0x99, -0x17, 0xfb, 0xc0, 0xfc, 0x50, 0xca, 0x3c, 0xb3, 0xee, 0xd8, 0xda, 0x63, 0x5d, 0x85, 0x79, 0x6e, -0x66, 0x39, 0x3d, 0xf6, 0xc5, 0x44, 0x5f, 0x52, 0x8e, 0xad, 0x39, 0xd6, 0x55, 0x80, 0x5f, 0xfa, -0x4a, 0x6b, 0xd3, 0xfd, 0xe9, 0xe5, 0x17, 0x0f, 0x00, 0x7d, 0xcb, 0xb4, 0xa6, 0xcf, 0xed, 0xcb, -0x49, 0x9f, 0x5b, 0xcb, 0x0b, 0x7c, 0xc1, 0x5c, 0xc2, 0x8d, 0xc9, 0xf9, 0x87, 0x7d, 0xf4, 0xc5, -0x98, 0x83, 0xe5, 0xa3, 0xfb, 0x0f, 0xaf, 0x4f, 0x5f, 0xb2, 0x0d, 0x0a, 0x52, 0xfa, 0x2a, 0x6a, -0xcd, 0xfe, 0xd4, 0x99, 0x17, 0xb1, 0x0b, 0x4c, 0x95, 0xd3, 0x2c, 0xcc, 0x3c, 0x12, 0x31, 0x15, -0xff, 0xe1, 0x65, 0x8a, 0x7d, 0xb7, 0x33, 0x65, 0x9e, 0x01, 0x06, 0xc3, 0xa8, 0xed, 0x83, 0x54, -0x4b, 0xab, 0xad, 0x87, 0x5f, 0xbe, 0xab, 0x3c, 0x65, 0x1e, 0x9d, 0xa6, 0x63, 0xfb, 0x5b, 0x0e, -0x29, 0xab, 0x61, 0x75, 0x96, 0x16, 0x58, 0x64, 0x9e, 0x23, 0x34, 0x61, 0x1f, 0xac, 0x44, 0x9e, -0xaf, 0x73, 0xf6, 0xa4, 0x7b, 0x59, 0x1f, 0xfb, 0x6e, 0xba, 0xcf, 0x54, 0x21, 0x54, 0xb4, 0xa3, -0xec, 0x2b, 0xda, 0x3d, 0x95, 0xa4, 0x49, 0xa5, 0x7b, 0x69, 0xf4, 0x4d, 0xf7, 0x1e, 0x89, 0x58, -0x8b, 0xff, 0xf4, 0x32, 0x61, 0x60, 0xaa, 0x23, 0x65, 0xde, 0x6c, 0x94, 0xb7, 0x9d, 0xb9, 0xe9, -0x73, 0xcd, 0x20, 0xaa, 0x9d, 0x8b, 0x80, 0xf7, 0x85, 0x6b, 0xba, 0x77, 0x85, 0x9b, 0x0f, 0x89, -0x5e, 0x92, 0xee, 0xd2, 0xbd, 0x21, 0x0e, 0x39, 0x98, 0xc6, 0xd7, 0x25, 0xb8, 0xc8, 0x52, 0xdd, -0x60, 0xd8, 0xea, 0xf8, 0xd3, 0x00, 0x4b, 0xeb, 0x4e, 0x99, 0x27, 0x68, 0x07, 0xbb, 0x07, 0xc3, -0xdf, 0x66, 0xf2, 0x28, 0xc9, 0x7f, 0x4e, 0x73, 0xfa, 0xdc, 0xaa, 0x9e, 0x8c, 0xa7, 0x99, 0xfc, -0x9d, 0x6a, 0x9f, 0xa6, 0xe5, 0xe5, 0x51, 0x7c, 0x63, 0x4f, 0xc6, 0x36, 0x01, 0xcb, 0x27, 0x89, -0xa8, 0x71, 0x5b, 0x0e, 0x59, 0x65, 0x47, 0x5f, 0x03, 0xef, 0xeb, 0x3c, 0xd9, 0x39, 0x7b, 0x78, -0xc4, 0x2d, 0xa6, 0xda, 0x54, 0x36, 0x92, 0x91, 0xb6, 0x56, 0x75, 0xca, 0x1a, 0x5d, 0xf3, 0x27, -0x6d, 0x60, 0x29, 0x82, 0xd3, 0xd5, 0x87, 0x68, 0x8c, 0x25, 0x39, 0xcc, 0xaa, 0x3b, 0xde, 0x8d, -0x3c, 0xc0, 0x6a, 0x6d, 0x48, 0x59, 0x40, 0x79, 0xd1, 0xa8, 0x4c, 0x92, 0x27, 0x95, 0x3b, 0x79, -0x51, 0xca, 0xbc, 0x14, 0xb6, 0x52, 0x94, 0xee, 0x65, 0xfd, 0x14, 0xf3, 0x12, 0x4a, 0xe9, 0xee, -0x4e, 0x16, 0xd7, 0x57, 0x15, 0xa6, 0xd8, 0xb4, 0x3a, 0x46, 0xeb, 0x5b, 0xdf, 0xf0, 0xa6, 0xcc, -0x63, 0x71, 0x7d, 0xa3, 0x6b, 0x5e, 0xdf, 0xc0, 0xda, 0x94, 0x5c, 0x3e, 0x0b, 0x6f, 0xbe, 0x56, -0x72, 0xe9, 0x71, 0x90, 0xeb, 0x35, 0xb8, 0xd6, 0xe4, 0xc8, 0xbb, 0xf5, 0xc8, 0xfd, 0xa6, 0xb2, -0x6f, 0xa1, 0x8e, 0x4a, 0x75, 0x9e, 0x84, 0x78, 0xa2, 0xf2, 0xd2, 0xb0, 0x9e, 0x6c, 0xe6, 0x6d, -0x42, 0x2d, 0x9f, 0x36, 0xc1, 0xc7, 0x15, 0x7f, 0x6a, 0x86, 0x5b, 0x8a, 0xd3, 0xe7, 0x0a, 0x0e, -0x3a, 0x9b, 0xf4, 0x4d, 0x7c, 0x26, 0x3b, 0x53, 0x16, 0xf8, 0xa2, 0x31, 0x58, 0x4c, 0xa5, 0xde, -0xcd, 0x35, 0x9d, 0xb2, 0x95, 0xc6, 0x5e, 0x6c, 0xa1, 0x26, 0x90, 0xc8, 0x1e, 0xb6, 0x55, 0x86, -0x8d, 0x20, 0x31, 0x58, 0x52, 0x16, 0xc8, 0xf2, 0x26, 0xe5, 0x7f, 0x57, 0x31, 0xd2, 0xd8, 0x1c, -0x5b, 0x13, 0xdb, 0x0d, 0x86, 0x6d, 0x9b, 0xab, 0xb7, 0x2d, 0x42, 0x77, 0xbe, 0x8d, 0x76, 0xb8, -0x58, 0xb1, 0x9d, 0xf5, 0x41, 0xc4, 0x37, 0xb6, 0xdb, 0xa2, 0x94, 0xc2, 0xea, 0x70, 0x9b, 0x80, -0x72, 0xe6, 0x45, 0xa2, 0x12, 0x67, 0x2b, 0xcd, 0xee, 0xa7, 0xfb, 0x7c, 0x9d, 0x56, 0xd5, 0xf1, -0xce, 0xe3, 0x2b, 0x85, 0xb2, 0xe2, 0xb3, 0x29, 0xf3, 0xac, 0xc9, 0xc7, 0xbb, 0x97, 0x81, 0xcd, -0x85, 0x3c, 0x6d, 0x16, 0x14, 0x99, 0xca, 0xac, 0x49, 0x16, 0x1e, 0xe9, 0x7e, 0x8b, 0x70, 0x87, -0x7c, 0x23, 0x40, 0xc9, 0x25, 0x37, 0xb0, 0xdb, 0xf9, 0x78, 0xca, 0x23, 0x2f, 0x3f, 0x93, 0x97, -0x67, 0x52, 0x84, 0x62, 0x5f, 0x77, 0x7f, 0x77, 0xa3, 0xda, 0xb7, 0x52, 0x28, 0xfd, 0xa6, 0x1b, -0xe8, 0xbe, 0x18, 0x7b, 0xf3, 0xbc, 0x59, 0x67, 0x93, 0x7e, 0x66, 0xb8, 0xe9, 0xc8, 0xa3, 0xbe, -0x50, 0x26, 0xd0, 0x6d, 0x3e, 0x4d, 0x69, 0x1b, 0xf0, 0x97, 0x34, 0x37, 0x6b, 0x0b, 0xe4, 0x5b, -0xda, 0xb4, 0x28, 0x81, 0xfd, 0xf4, 0xf7, 0xad, 0x90, 0x7f, 0x0b, 0xed, 0x9f, 0x39, 0x16, 0xbf, -0x89, 0xec, 0x30, 0xd2, 0x85, 0xe7, 0x91, 0x40, 0x96, 0x30, 0x93, 0xec, 0xfd, 0xb9, 0x71, 0x54, -0x72, 0x2f, 0xd5, 0x26, 0x7e, 0xdd, 0xe6, 0x63, 0xab, 0x54, 0x7c, 0x51, 0x0b, 0x48, 0x7e, 0x1c, -0xe7, 0x69, 0xfc, 0x2f, 0x32, 0x26, 0x59, 0x34, 0xfe, 0xd4, 0xe2, 0x0b, 0xe0, 0x9c, 0x75, 0x01, -0x44, 0xa7, 0x83, 0xed, 0xe0, 0x73, 0xa2, 0x7c, 0xcc, 0x93, 0x5e, 0x93, 0xf4, 0xb3, 0x23, 0x91, -0x92, 0x4f, 0x69, 0x2e, 0xd7, 0x52, 0x2e, 0xf2, 0x55, 0xe1, 0xa2, 0xc9, 0x81, 0xe1, 0x5c, 0xd0, -0x3c, 0x42, 0x5f, 0xde, 0x79, 0xa4, 0xaa, 0xec, 0x9e, 0x95, 0xed, 0x40, 0xf7, 0x0f, 0x24, 0xfd, -0x7c, 0x30, 0x5c, 0x1d, 0xd2, 0x42, 0x15, 0xc2, 0x3c, 0x67, 0x85, 0x67, 0x45, 0xf3, 0x1b, 0xcb, -0x80, 0xc9, 0x6e, 0xab, 0xc9, 0xbe, 0x5a, 0x6e, 0x11, 0xb3, 0xcc, 0x3f, 0x9f, 0xdd, 0xe0, 0xf7, -0xbb, 0x0e, 0x28, 0x32, 0xa7, 0x14, 0x5a, 0x4b, 0xfe, 0xf4, 0xca, 0x9f, 0xde, 0x98, 0xfd, 0x09, -0xf5, 0x8f, 0xb3, 0x20, 0x16, 0x54, 0x75, 0x5a, 0xfc, 0xbf, 0xbd, 0x80, 0xf5, 0xcf, 0xfd, 0xcf, -0xdf, 0xff, 0xe7, 0xef, 0x67, 0x5d, 0x3a, 0x06, 0x58, 0x8b, 0xa9, 0x80, 0x32, 0x74, 0x20, 0x0b, -0x71, 0x77, 0x9b, 0x8d, 0x33, 0xf0, 0x34, 0x47, 0x41, 0x27, 0x25, 0xe4, 0xba, 0x7e, 0x07, 0xa9, -0xa0, 0x6a, 0xa5, 0x67, 0xa5, 0x7f, 0x7f, 0x55, 0x14, 0xcb, 0x8c, 0xfa, 0x9f, 0x12, 0x51, 0x68, -0x1f, 0x6c, 0x48, 0x29, 0x1c, 0x74, 0xd8, 0x07, 0xaa, 0x57, 0xff, 0xf6, 0x80, 0xff, 0xd3, 0x8d, -0x07, 0xc4, 0x19, 0x6c, 0xde, 0x8d, 0xc7, 0x91, 0xc4, 0x4e, 0x34, 0x5a, 0xf2, 0x79, 0xa6, 0x23, -0xef, 0x96, 0x36, 0x98, 0xce, 0xf9, 0x8a, 0xf3, 0x22, 0x9b, 0x5f, 0x6b, 0x85, 0x10, 0xb7, 0xaf, -0x33, 0x1a, 0x3d, 0xb9, 0x86, 0xc6, 0x57, 0xdf, 0x2a, 0x03, 0x6c, 0x5a, 0xe5, 0x89, 0x34, 0x9f, -0x3b, 0xb9, 0x7a, 0x7a, 0xd4, 0xd7, 0x5d, 0xb3, 0xa6, 0xaf, 0xbb, 0x71, 0xaf, 0xb2, 0xb3, 0x2a, -0x9f, 0xdd, 0xc2, 0x40, 0xf7, 0xab, 0x65, 0xd3, 0x9e, 0x75, 0x2b, 0x4a, 0x4e, 0xcc, 0xf2, 0x17, -0xe5, 0xad, 0x6d, 0x55, 0xe7, 0x75, 0xc0, 0x04, 0x51, 0xd3, 0xaa, 0xc2, 0xf7, 0x6a, 0x83, 0xc6, -0xc7, 0xee, 0x05, 0xb8, 0x67, 0x8f, 0x24, 0x65, 0xa2, 0xd6, 0xd4, 0x2e, 0xa1, 0xe4, 0xd3, 0x81, -0xa5, 0x5a, 0x00, 0xbf, 0xbc, 0xf8, 0x72, 0x8b, 0x7a, 0x77, 0x38, 0xe0, 0xdf, 0x15, 0x69, 0xd1, -0x33, 0xc9, 0xf6, 0x35, 0xe2, 0xa0, 0x6f, 0x22, 0x07, 0x16, 0xad, 0x98, 0x57, 0x66, 0x5f, 0x38, -0x90, 0x3a, 0x1a, 0xee, 0xc3, 0x70, 0xdf, 0xa2, 0xe4, 0x7e, 0x51, 0xdf, 0x9a, 0xbc, 0x2b, 0x82, -0x9c, 0x62, 0x51, 0xf2, 0x5e, 0x51, 0x8d, 0xbf, 0xfb, 0x3c, 0x9d, 0x81, 0x54, 0xa4, 0xcc, 0x74, -0xb3, 0x8a, 0x95, 0xaa, 0x11, 0xd3, 0xcc, 0x20, 0x97, 0x2f, 0x6a, 0xd1, 0xc5, 0x20, 0x0a, 0x81, -0x6f, 0x45, 0xcd, 0x6a, 0x41, 0xb5, 0x67, 0x45, 0x63, 0xb8, 0xe2, 0x5d, 0x75, 0x87, 0xbc, 0xce, -0x2f, 0x90, 0x35, 0x05, 0xa4, 0x26, 0xa4, 0xa8, 0x82, 0x38, 0x7e, 0x34, 0xad, 0xea, 0x10, 0xab, -0x41, 0x68, 0x69, 0x19, 0xf7, 0xd8, 0x41, 0x06, 0x33, 0xa8, 0xf6, 0x22, 0xd4, 0x39, 0xa0, 0x29, -0x39, 0x07, 0xdc, 0xce, 0x55, 0x2d, 0x9a, 0xdd, 0x64, 0xb7, 0xe4, 0x17, 0xbb, 0x56, 0xa1, 0x96, -0xf3, 0xb8, 0x31, 0x59, 0x9e, 0x49, 0xe5, 0xff, 0xf9, 0x48, 0xc4, 0x5c, 0xfc, 0xc7, 0x97, 0x47, -0x61, 0x2e, 0xf9, 0x30, 0x79, 0x19, 0x0e, 0xf1, 0xf9, 0xdd, 0x60, 0x30, 0x67, 0xec, 0x5e, 0xae, -0xff, 0x79, 0xd7, 0xde, 0x48, 0xa3, 0x7b, 0x39, 0xcc, 0xb8, 0xc5, 0x3a, 0xe1, 0xfd, 0xe7, 0x0c, -0x9a, 0x22, 0x73, 0xc6, 0xae, 0xb5, 0xc5, 0xd3, 0xca, 0x32, 0x76, 0xd1, 0xbc, 0xa2, 0x05, 0x7b, -0xdd, 0x1d, 0x2b, 0x33, 0x01, 0xf5, 0x06, 0xed, 0x6d, 0xdb, 0x32, 0x76, 0x65, 0x72, 0xd5, 0x91, -0xbb, 0x50, 0x8b, 0x31, 0x2e, 0xca, 0xd8, 0x1d, 0xd2, 0x6f, 0x5a, 0x7d, 0xf2, 0x57, 0xd3, 0x66, -0x66, 0xec, 0x2a, 0xfd, 0xd4, 0x7d, 0xf1, 0x2e, 0x4f, 0xc6, 0x6e, 0x51, 0x4f, 0xf9, 0xbc, 0xff, -0xfc, 0xfa, 0x45, 0x19, 0xbb, 0x8e, 0x74, 0xdd, 0x55, 0x9c, 0xb1, 0xfb, 0xfe, 0x83, 0xd2, 0x16, -0xa7, 0xb3, 0x2a, 0x5a, 0xb7, 0x56, 0x04, 0xfe, 0x14, 0x95, 0x28, 0xdf, 0x68, 0x85, 0x78, 0xec, -0x30, 0x38, 0x4a, 0x3e, 0xe4, 0xff, 0x99, 0x74, 0x01, 0xec, 0x31, 0xd3, 0xba, 0xa1, 0x5d, 0xff, -0x78, 0x74, 0x14, 0xce, 0xbe, 0x48, 0x63, 0x19, 0xc2, 0x39, 0x25, 0x79, 0x59, 0xae, 0xfa, 0xfd, -0xe7, 0xd7, 0x61, 0x8e, 0x54, 0x92, 0x41, 0xd9, 0x01, 0x79, 0xeb, 0x23, 0x99, 0xf2, 0xee, 0xc7, -0x04, 0x98, 0x0c, 0x32, 0x4c, 0xab, 0x4e, 0x3e, 0x3d, 0xcd, 0x95, 0xb1, 0xab, 0xe4, 0xcf, 0xe6, -0x8b, 0x77, 0x95, 0x23, 0x4c, 0x19, 0x72, 0x2e, 0xef, 0xef, 0x58, 0x45, 0x50, 0x45, 0x09, 0x2a, -0x91, 0x37, 0x96, 0xd3, 0xbd, 0x5b, 0xc9, 0x7b, 0x08, 0x22, 0x6c, 0x0b, 0xfd, 0xe6, 0x7d, 0x18, -0xcb, 0x9c, 0xdc, 0xff, 0xe2, 0xcb, 0x8d, 0x8e, 0xff, 0x66, 0x79, 0xba, 0xc4, 0x92, 0x28, 0xff, -0xd6, 0xd4, 0x5d, 0x88, 0xe1, 0x07, 0x56, 0x63, 0x89, 0xc9, 0x66, 0xfe, 0xfd, 0x1d, 0xdd, 0x94, -0xb7, 0x2b, 0x21, 0xef, 0xae, 0x1b, 0xe4, 0x8d, 0xe9, 0x10, 0x1f, 0x91, 0xb3, 0xbf, 0x98, 0xe6, -0xcc, 0xd8, 0xd5, 0xf1, 0xe9, 0xf1, 0xc8, 0x5d, 0x65, 0x19, 0x74, 0x93, 0xfc, 0x53, 0x0f, 0x78, -0x28, 0x9f, 0xf7, 0x7b, 0x56, 0x60, 0x2e, 0xd5, 0x11, 0x3a, 0x29, 0x8a, 0xb4, 0xb7, 0x0a, 0xf5, -0xb5, 0x01, 0x56, 0xa3, 0x01, 0x6c, 0xd1, 0x28, 0xab, 0xcb, 0x5e, 0x6c, 0xd7, 0xeb, 0xea, 0x82, -0x92, 0x9e, 0xf6, 0x76, 0xac, 0x0b, 0x7b, 0x27, 0x94, 0x67, 0x96, 0xeb, 0xb2, 0x56, 0xae, 0x4b, -0xf9, 0x25, 0xac, 0x4b, 0xc5, 0x8d, 0xea, 0xd2, 0x71, 0xd3, 0x9e, 0x48, 0xa3, 0x73, 0xce, 0x7f, -0xa3, 0x2e, 0xad, 0x7f, 0x21, 0x3e, 0xf6, 0x00, 0xe1, 0x7f, 0xa2, 0x5c, 0x8b, 0xb9, 0x11, 0xb2, -0xd0, 0xc8, 0xa0, 0xdf, 0x1f, 0x87, 0x7e, 0xdf, 0xff, 0x27, 0xd0, 0x4f, 0x44, 0xe8, 0xdd, 0xa5, -0xe7, 0xa4, 0xcb, 0xff, 0x0d, 0xf8, 0x3f, 0x1f, 0x8a, 0xdc, 0xe5, 0xc4, 0xdc, 0xd3, 0x4b, 0x3e, -0x94, 0x3e, 0x1b, 0xad, 0xc5, 0x82, 0x08, 0x95, 0x82, 0xfd, 0x5e, 0x87, 0xfd, 0x3e, 0x8d, 0xfa, -0x7d, 0x48, 0x23, 0xea, 0xa9, 0xd7, 0x53, 0x9f, 0x15, 0x35, 0xd4, 0xeb, 0x43, 0x13, 0x36, 0xbf, -0x86, 0x7d, 0x7e, 0x8d, 0xb1, 0x5c, 0x50, 0xfd, 0xc7, 0xef, 0x1a, 0xe1, 0xaa, 0x23, 0xb6, 0x67, -0x41, 0xee, 0xf7, 0xb4, 0xaf, 0xcf, 0x83, 0xf2, 0x5c, 0x00, 0xf8, 0xbe, 0xcd, 0xaf, 0x8d, 0xee, -0xee, 0xd9, 0x58, 0x59, 0x8e, 0xbf, 0x6b, 0x6b, 0x04, 0x73, 0xc6, 0x53, 0x83, 0xab, 0x96, 0x41, -0xe1, 0x34, 0x2d, 0xa0, 0x7b, 0x8b, 0x7e, 0x5a, 0x6c, 0x67, 0x8b, 0x6f, 0x95, 0x99, 0xfa, 0xd6, -0x0a, 0x7f, 0xb3, 0xbc, 0xbf, 0xcc, 0xe4, 0x40, 0xce, 0x8c, 0xbc, 0xa3, 0x55, 0xbf, 0x25, 0x82, -0x5c, 0xe4, 0xd6, 0x5d, 0x5d, 0x8d, 0x2e, 0x13, 0x7c, 0xb8, 0x7d, 0x25, 0xd5, 0xb7, 0x24, 0x63, -0x97, 0x91, 0xb0, 0x89, 0xda, 0xae, 0xc9, 0xf5, 0xb5, 0x4e, 0x33, 0x98, 0xc8, 0x55, 0xf2, 0x35, -0xac, 0xb3, 0x99, 0xab, 0x8e, 0xde, 0xe5, 0xc4, 0xfe, 0x8d, 0xb9, 0xb5, 0xe9, 0xb7, 0x46, 0xcf, -0x3c, 0x45, 0x6b, 0xaa, 0xa6, 0xe2, 0x99, 0x7f, 0x31, 0x5f, 0xc4, 0x1e, 0xac, 0xfd, 0x70, 0x5b, -0x04, 0x73, 0x38, 0x16, 0xb9, 0xcb, 0x45, 0xd4, 0xc8, 0x27, 0xd3, 0x0e, 0x1c, 0x2d, 0x98, 0x38, -0xb6, 0x77, 0x98, 0x3b, 0xda, 0x89, 0xff, 0x56, 0x9b, 0x4a, 0x10, 0x2b, 0x58, 0x76, 0x87, 0xfe, -0xc9, 0x28, 0x72, 0xa8, 0x5b, 0xf7, 0x74, 0x35, 0x96, 0x59, 0x55, 0x1f, 0x3e, 0xb7, 0x96, 0xca, -0x46, 0xbe, 0x82, 0xe5, 0xa6, 0xe7, 0x52, 0x89, 0x33, 0xbf, 0xb6, 0xd2, 0x8d, 0xaa, 0x2d, 0xba, -0xca, 0xa8, 0x6c, 0x37, 0x57, 0xdd, 0x75, 0x97, 0x8b, 0xe0, 0xc2, 0x96, 0xd2, 0x3f, 0xd9, 0x75, -0xfe, 0x5f, 0x09, 0x52, 0x93, 0x73, 0xe6, 0x5f, 0x90, 0xbb, 0xcc, 0xa2, 0xf6, 0xfc, 0x70, 0xfb, -0x23, 0x54, 0x7a, 0x94, 0x4a, 0x27, 0x1e, 0x6e, 0xbc, 0x27, 0x13, 0x02, 0xcd, 0x34, 0x6f, 0xb0, -0xf1, 0xd8, 0x86, 0x17, 0x33, 0x19, 0x47, 0x23, 0xa8, 0x65, 0xc9, 0x6b, 0x37, 0x72, 0x10, 0x13, -0xbc, 0x1f, 0xaf, 0xb3, 0x21, 0xa1, 0xce, 0x99, 0x09, 0x75, 0x4e, 0x6c, 0x67, 0x4c, 0x1d, 0x51, -0xea, 0x8c, 0xe5, 0x66, 0x2a, 0xe5, 0xbe, 0xcf, 0x6a, 0x2d, 0xd3, 0x51, 0xd5, 0x0a, 0x1d, 0xdb, -0x7b, 0x54, 0x9b, 0x3a, 0xf3, 0xaf, 0xca, 0x0e, 0xa2, 0x6f, 0xd6, 0xa0, 0xee, 0x2c, 0x24, 0x7d, -0xd2, 0x2d, 0xef, 0xf4, 0x33, 0xd1, 0x4e, 0xbf, 0x1c, 0x4e, 0x39, 0x6b, 0x7b, 0xf4, 0x79, 0x1c, -0xcd, 0x15, 0x8c, 0x28, 0x94, 0xc4, 0xb0, 0x42, 0xfc, 0xcd, 0xac, 0x1a, 0x4b, 0x81, 0x0a, 0x2e, -0x90, 0x06, 0x15, 0x38, 0x6f, 0x44, 0x85, 0x71, 0xac, 0xc4, 0xa1, 0x63, 0x58, 0x91, 0xa1, 0x63, -0x77, 0x47, 0xe6, 0x6b, 0x15, 0xac, 0x6c, 0xaa, 0x78, 0xe2, 0x45, 0x46, 0x29, 0xbb, 0x89, 0x0e, -0x68, 0xcf, 0x14, 0xdd, 0x93, 0xdb, 0x58, 0x66, 0x4c, 0x7a, 0xaf, 0xa7, 0x8b, 0xca, 0x45, 0x7a, -0xa6, 0x5d, 0xc8, 0x0a, 0x2e, 0xa2, 0xa8, 0x6a, 0x92, 0xcb, 0x49, 0xe5, 0xc6, 0x76, 0x95, 0x2b, -0xa9, 0xc3, 0xa7, 0xfe, 0x6d, 0x5a, 0xa9, 0x4c, 0x09, 0x5a, 0xa5, 0xdc, 0xf7, 0x9e, 0x5d, 0x83, -0x79, 0x0c, 0x46, 0xee, 0x72, 0x64, 0xec, 0x7e, 0xf1, 0x6c, 0xc6, 0x93, 0xf5, 0x70, 0x4d, 0xa4, -0x3b, 0x9a, 0xd5, 0xbc, 0x10, 0xe3, 0xaa, 0x2f, 0x63, 0xbd, 0x2d, 0x6a, 0x78, 0x71, 0xa0, 0xd1, -0x61, 0xe2, 0xdf, 0x8b, 0xb7, 0x44, 0x6c, 0x1f, 0xfb, 0xad, 0x9d, 0xda, 0x78, 0x6f, 0x8b, 0x95, -0x47, 0x5c, 0x35, 0xa8, 0xdf, 0xb0, 0xea, 0x04, 0xeb, 0x6d, 0x25, 0x7f, 0xce, 0x54, 0xb8, 0xea, -0x7b, 0xac, 0x97, 0xc9, 0xa5, 0xd1, 0xd8, 0xae, 0xe6, 0xd1, 0xd5, 0x2b, 0xf7, 0x1f, 0xd2, 0xa8, -0xa8, 0x4c, 0x3a, 0xff, 0xda, 0x98, 0x1d, 0xcf, 0x7d, 0x5b, 0xc6, 0xaf, 0xc7, 0xe6, 0x2f, 0xa6, -0x7b, 0xc2, 0x2d, 0xe9, 0x63, 0xbf, 0xfb, 0x58, 0xa9, 0x4e, 0xcc, 0x1b, 0x35, 0xa9, 0xdd, 0x09, -0x79, 0xe9, 0x51, 0xdf, 0x32, 0x7f, 0x79, 0x5e, 0x63, 0x53, 0xd1, 0xdd, 0x31, 0x8d, 0x86, 0x1b, -0xe6, 0xec, 0xd0, 0xe3, 0x88, 0x4a, 0x14, 0x75, 0x7f, 0x3c, 0xff, 0x92, 0xb3, 0xb0, 0x09, 0x75, -0x9a, 0x8c, 0xbb, 0x3a, 0xe0, 0xd4, 0x9a, 0xa7, 0x53, 0x26, 0x95, 0x9c, 0x9d, 0xb8, 0x12, 0xfd, -0x06, 0xe6, 0xef, 0x4b, 0xb1, 0x94, 0x9c, 0x4d, 0x5e, 0x86, 0xfe, 0x5c, 0xe6, 0x3f, 0x94, 0x32, -0x3d, 0x56, 0x4e, 0x50, 0x4b, 0x75, 0x16, 0xe1, 0xcf, 0x7b, 0x69, 0x7e, 0x8f, 0x6c, 0xc1, 0xd0, -0x9e, 0x1c, 0xa3, 0x8d, 0x56, 0xf0, 0x10, 0x62, 0xc8, 0xb3, 0x81, 0xa1, 0xed, 0x26, 0xd4, 0x33, -0x1c, 0x26, 0x0e, 0xb1, 0xdd, 0x90, 0xb1, 0xeb, 0x1e, 0xc2, 0x76, 0x6c, 0x96, 0xb3, 0x93, 0xd6, -0x3d, 0xf0, 0xdd, 0x23, 0xd7, 0x80, 0xad, 0xf4, 0x58, 0x18, 0xcd, 0x87, 0xcf, 0xfc, 0xcb, 0x3d, -0xc5, 0x19, 0xbb, 0x42, 0x7f, 0x61, 0xda, 0x2c, 0x61, 0xfb, 0x99, 0x4e, 0x4c, 0x3d, 0x97, 0xe6, -0xb8, 0x77, 0x33, 0x2b, 0xcc, 0x3f, 0x6f, 0xd3, 0x4e, 0x2e, 0xc9, 0xe8, 0x8d, 0xe7, 0x85, 0xb4, -0x92, 0x47, 0x3b, 0xa4, 0xb4, 0xd3, 0xf9, 0x13, 0xb3, 0x30, 0x67, 0x5a, 0xb7, 0xd2, 0x66, 0xf0, -0x65, 0x2a, 0x74, 0xb3, 0xf0, 0xb2, 0xe2, 0x13, 0xe5, 0xb7, 0x44, 0xb4, 0xaa, 0x1a, 0x56, 0x0e, -0xea, 0xe5, 0xe9, 0xf1, 0xb4, 0x3f, 0x8d, 0xad, 0x33, 0xb1, 0x93, 0xe3, 0x67, 0xc7, 0xce, 0xe8, -0xb1, 0x9a, 0xdc, 0x84, 0xd8, 0x74, 0x91, 0xb5, 0x61, 0xb2, 0xf4, 0xd3, 0x45, 0xf5, 0x70, 0x26, -0xd4, 0x23, 0x7a, 0xe3, 0x7a, 0x30, 0x2a, 0x65, 0xf5, 0x68, 0xfd, 0xcb, 0x50, 0x78, 0x32, 0xf1, -0xe8, 0xd4, 0x10, 0x9f, 0x58, 0x13, 0x96, 0xf7, 0x44, 0xcc, 0xdb, 0x12, 0xcf, 0xab, 0x87, 0x5a, -0x6a, 0x7c, 0x6e, 0xce, 0x06, 0xe2, 0xf3, 0x6f, 0xf5, 0x60, 0x0e, 0x9a, 0x05, 0x71, 0x1c, 0x5c, -0x3b, 0xc3, 0xd2, 0xa7, 0x1c, 0xe9, 0xc9, 0xe8, 0xdd, 0x14, 0xae, 0x59, 0xdf, 0xaa, 0x45, 0x99, -0x0f, 0x75, 0xe8, 0xff, 0x3f, 0x85, 0xb6, 0xa0, 0x66, 0x7d, 0x70, 0x02, 0xfa, 0x7a, 0xe3, 0xb3, -0x8a, 0xb4, 0x2f, 0x8e, 0xd9, 0xf7, 0x21, 0x4b, 0x3a, 0xa8, 0x65, 0xd8, 0x3d, 0x3d, 0x10, 0x45, -0x69, 0xf1, 0x13, 0x83, 0x2f, 0xc8, 0xf7, 0x3e, 0x03, 0x56, 0x7f, 0x8d, 0xe0, 0x09, 0x81, 0x50, -0xf4, 0x17, 0x69, 0xe0, 0x61, 0x76, 0xbe, 0x5e, 0xe3, 0x59, 0x04, 0x9b, 0xfc, 0x05, 0xbe, 0xc8, -0xc9, 0xee, 0x9a, 0xee, 0x56, 0x61, 0x57, 0xc4, 0x7f, 0xd6, 0xd3, 0x00, 0xbb, 0xfd, 0x16, 0xfc, -0xed, 0xf7, 0x1b, 0xf1, 0xf7, 0x55, 0xff, 0x24, 0x59, 0x1f, 0xf3, 0x2c, 0xe2, 0xd2, 0xfc, 0x69, -0xf2, 0x6c, 0x86, 0x2a, 0xec, 0x3f, 0xef, 0x74, 0xc4, 0x66, 0xa4, 0xbf, 0x81, 0x7a, 0x86, 0xbb, -0x21, 0x25, 0x83, 0xec, 0x27, 0x5d, 0x74, 0x78, 0x37, 0xa3, 0xdb, 0x40, 0x36, 0x93, 0x6c, 0x96, -0x94, 0x2c, 0x77, 0x03, 0x6c, 0xb2, 0x25, 0xcf, 0x1a, 0xbe, 0xe4, 0xf4, 0x3e, 0x86, 0x7e, 0x93, -0xbb, 0x61, 0xe2, 0x4a, 0x5a, 0xf3, 0x42, 0x99, 0xde, 0x8c, 0xf1, 0x72, 0x29, 0x1e, 0xad, 0xea, -0x6c, 0xfc, 0x43, 0xe5, 0xfa, 0x10, 0xd9, 0xcb, 0x12, 0x48, 0xa7, 0xe1, 0xff, 0x99, 0xf8, 0x9c, -0x07, 0xb5, 0x1a, 0xbf, 0xb6, 0x2a, 0x42, 0xab, 0x43, 0xfe, 0x53, 0xa4, 0xb1, 0x91, 0x95, 0xd9, -0xc3, 0xe7, 0x32, 0x9e, 0x2e, 0xbe, 0xf8, 0x78, 0xea, 0x64, 0x77, 0xc6, 0xd3, 0xad, 0xc9, 0x43, -0xdd, 0x67, 0x56, 0xb7, 0x25, 0x1f, 0x45, 0x0d, 0xeb, 0xcc, 0x9a, 0x5d, 0x9d, 0x75, 0x3a, 0x51, -0x67, 0x4a, 0x9a, 0xd7, 0x69, 0x54, 0x85, 0xe8, 0x0e, 0x23, 0x95, 0x90, 0x54, 0x13, 0xde, 0x15, -0xae, 0xcf, 0x62, 0x73, 0x5f, 0xe9, 0x36, 0x35, 0x3b, 0x63, 0x8d, 0xb8, 0xbb, 0xfa, 0x0b, 0x66, -0xf5, 0x0c, 0x54, 0x3c, 0xb5, 0xc1, 0x32, 0x35, 0xdb, 0x7b, 0xae, 0xd9, 0xd5, 0xe9, 0x07, 0x88, -0xb2, 0xd6, 0xf6, 0x18, 0xd4, 0xd5, 0x11, 0x59, 0x53, 0xfc, 0x6f, 0xb6, 0x79, 0x46, 0x9e, 0xba, -0xba, 0x58, 0xce, 0x29, 0xb1, 0xed, 0xe9, 0x64, 0xd2, 0x9a, 0x13, 0xf4, 0xbb, 0x76, 0x90, 0x20, -0xfa, 0xfc, 0x1d, 0xb6, 0xde, 0x0a, 0x7c, 0x90, 0xf5, 0x6f, 0x8f, 0x51, 0x5d, 0x13, 0x95, 0x4f, -0x9d, 0x30, 0xbe, 0xfa, 0x8f, 0xf4, 0xf4, 0x5f, 0x10, 0xa4, 0xcb, 0xfe, 0xc2, 0xe6, 0x1b, 0xb1, -0xfc, 0x7c, 0x75, 0x8d, 0x53, 0xce, 0x09, 0x39, 0x6c, 0xbc, 0x7c, 0x43, 0xb1, 0x6f, 0x95, 0x11, -0xdb, 0x43, 0x68, 0x48, 0xc9, 0x62, 0x29, 0x53, 0xb0, 0x54, 0xaf, 0x49, 0x4b, 0xe7, 0x85, 0x24, -0xa0, 0x3b, 0xd8, 0x24, 0xc9, 0xa2, 0x7a, 0xef, 0xd9, 0xd5, 0x54, 0x72, 0xa9, 0x5c, 0xb2, 0x09, -0x4b, 0xfc, 0xda, 0x0a, 0x94, 0x06, 0xe8, 0x3d, 0xae, 0xe4, 0x65, 0xfa, 0x27, 0xc2, 0xe7, 0xfe, -0x95, 0x60, 0x5c, 0xf6, 0x99, 0x52, 0x72, 0xe6, 0x74, 0xad, 0xa6, 0x24, 0x96, 0xd7, 0x7b, 0xdb, -0x1f, 0xc1, 0x9c, 0xe6, 0xc5, 0xe9, 0x9e, 0x95, 0xe7, 0xc2, 0x71, 0x92, 0xff, 0x6f, 0x96, 0xa2, -0xa7, 0x3c, 0xae, 0xcb, 0x1d, 0x65, 0xb4, 0xc6, 0xca, 0x07, 0x94, 0x16, 0x1c, 0xcf, 0x2b, 0x59, -0xce, 0x9d, 0x37, 0x2e, 0x61, 0x94, 0x57, 0x2e, 0xbb, 0x24, 0x97, 0x10, 0x04, 0x26, 0x7f, 0xec, -0x17, 0x33, 0xf3, 0x26, 0x7e, 0x6f, 0x4c, 0x4b, 0xd6, 0xb0, 0xf2, 0xc4, 0x77, 0x0c, 0x94, 0xee, -0x26, 0x94, 0x46, 0xe6, 0xb5, 0x41, 0xc6, 0x37, 0xb5, 0xc0, 0xec, 0x4d, 0xfe, 0x33, 0xc9, 0x4a, -0xd3, 0xf3, 0x0a, 0xe2, 0xb8, 0x7c, 0x3f, 0x5e, 0x4b, 0x5a, 0xf7, 0xa7, 0x9d, 0x35, 0xb7, 0xaf, -0x40, 0x39, 0x80, 0xde, 0x3d, 0xb2, 0x14, 0x40, 0xab, 0x47, 0x06, 0xb9, 0x96, 0x11, 0xa5, 0x96, -0x7f, 0x79, 0x3b, 0xc2, 0x6a, 0x69, 0xfa, 0xf2, 0x9c, 0xdf, 0x67, 0x75, 0x9f, 0x4b, 0x3b, 0xd8, -0x77, 0xfb, 0xc2, 0x2f, 0x0e, 0x34, 0x83, 0x14, 0x9c, 0x79, 0x0e, 0x7b, 0x1d, 0xd9, 0xdb, 0xc6, -0x9e, 0xf7, 0xe7, 0xb5, 0xde, 0xc7, 0xca, 0xcf, 0x61, 0xaf, 0xe3, 0x19, 0xed, 0x3f, 0x66, 0xd3, -0xc9, 0x76, 0xf7, 0x3f, 0x23, 0x4b, 0x6a, 0x46, 0x72, 0x7d, 0x54, 0x59, 0xb3, 0xde, 0xd3, 0x15, -0xd0, 0xd9, 0x3c, 0x60, 0xac, 0x78, 0xb7, 0xa8, 0x48, 0x84, 0x2b, 0x1b, 0xe8, 0x4d, 0x3c, 0x3b, -0x7e, 0x32, 0xcd, 0x06, 0x7a, 0x1c, 0xb9, 0x9f, 0x44, 0xbd, 0xf0, 0xa9, 0xb7, 0x5e, 0xbb, 0x27, -0xf2, 0x38, 0x28, 0xbe, 0x2d, 0xb7, 0x85, 0x51, 0x4f, 0x5e, 0x85, 0x63, 0xf8, 0x93, 0x9e, 0x88, -0x5f, 0x3f, 0x18, 0x36, 0x3a, 0xde, 0x1a, 0x28, 0xbd, 0xb8, 0x0d, 0x7c, 0xd8, 0xf3, 0xc5, 0x05, -0xbe, 0x6d, 0x19, 0x3b, 0xaa, 0x22, 0xa5, 0x4c, 0xd2, 0xd5, 0xe7, 0xc5, 0xa4, 0x59, 0x0d, 0x5b, -0xeb, 0xa6, 0x98, 0x6f, 0x1d, 0x8c, 0xc5, 0xd5, 0x45, 0x64, 0xa9, 0xab, 0x34, 0x26, 0x75, 0xe5, -0x65, 0x82, 0xa8, 0xff, 0x64, 0x95, 0xb1, 0xf8, 0xad, 0xd8, 0x4e, 0x6e, 0x0b, 0xed, 0xe4, 0x1e, -0xcd, 0x7f, 0xe2, 0x4a, 0x1c, 0xc7, 0x69, 0x27, 0xf7, 0xaa, 0xd8, 0x3a, 0x19, 0xbb, 0xeb, 0xe6, -0x87, 0x7f, 0xff, 0x39, 0xc1, 0xf8, 0x19, 0xc1, 0xcf, 0x4b, 0x2f, 0x40, 0xba, 0xbc, 0x5e, 0xd9, -0x16, 0x95, 0xef, 0x96, 0xf3, 0x97, 0x8d, 0x9e, 0x0f, 0x6c, 0x1b, 0x89, 0x9d, 0x0f, 0x5c, 0x5d, -0xc6, 0xce, 0x07, 0x66, 0xc9, 0xe7, 0x03, 0x83, 0x74, 0xef, 0x52, 0x76, 0xf0, 0x8b, 0xde, 0xa8, -0x3f, 0xd3, 0xf3, 0x3c, 0x9d, 0xe0, 0x17, 0x53, 0x13, 0xcf, 0x0a, 0x8a, 0x7c, 0xeb, 0xb5, 0xc4, -0xf3, 0x82, 0xde, 0x1f, 0xb2, 0xb3, 0x8e, 0xd7, 0xbc, 0x4b, 0x83, 0x73, 0xbc, 0x4b, 0x69, 0x87, -0xd3, 0xc6, 0x0b, 0xa0, 0x3e, 0x7c, 0x40, 0xbe, 0x8f, 0x6e, 0xb3, 0x5e, 0xbe, 0x8f, 0xce, 0x66, -0x63, 0xf3, 0xfb, 0xfa, 0xd8, 0xfc, 0x91, 0xcd, 0x01, 0x6a, 0x2f, 0x96, 0x7d, 0xcb, 0x16, 0x1b, -0xed, 0x6d, 0x94, 0xdd, 0x3d, 0x74, 0x2f, 0x71, 0x91, 0x60, 0x51, 0xd6, 0xff, 0xe8, 0x66, 0x8a, -0x19, 0xe9, 0xb6, 0x22, 0x44, 0x21, 0x9d, 0x77, 0x34, 0xd2, 0x7d, 0x14, 0x66, 0x30, 0x26, 0xc9, -0x3d, 0x3f, 0x66, 0xef, 0x86, 0x72, 0x33, 0xa8, 0x64, 0x1a, 0x1e, 0x8a, 0x38, 0x4b, 0xdc, 0x25, -0xce, 0x52, 0x77, 0xe9, 0xd1, 0x15, 0x5b, 0xbb, 0x94, 0x94, 0xec, 0x1e, 0x8b, 0xc1, 0x4e, 0x79, -0x6e, 0x41, 0xfa, 0x73, 0xfb, 0xcd, 0x65, 0x2e, 0x4f, 0x34, 0x90, 0x66, 0xe6, 0xab, 0xd8, 0xbd, -0x7c, 0xd2, 0xc5, 0x85, 0x1a, 0x3a, 0xa3, 0x0e, 0x37, 0x63, 0x6b, 0x71, 0xd2, 0x7b, 0x0b, 0xb5, -0x14, 0x53, 0xf1, 0xcb, 0x5f, 0x99, 0x4f, 0x60, 0x36, 0x53, 0xc2, 0x5d, 0x15, 0xef, 0xaa, 0x8b, -0xe2, 0x16, 0xec, 0x32, 0x99, 0x8d, 0x3e, 0x5a, 0xf7, 0xe2, 0xa9, 0x64, 0x19, 0x32, 0xc4, 0xe6, -0x1a, 0xbf, 0x15, 0xdb, 0x36, 0x6d, 0x28, 0x4c, 0xab, 0x74, 0x2c, 0x8f, 0x28, 0xcb, 0x83, 0x1f, -0xec, 0xa4, 0xb1, 0x06, 0x43, 0x80, 0xfb, 0x54, 0x13, 0xa6, 0x30, 0xd4, 0x86, 0xcf, 0x2a, 0xfb, -0x6f, 0xcf, 0x86, 0x6e, 0xde, 0xb9, 0xa6, 0x2e, 0x15, 0x35, 0xcb, 0x4f, 0x30, 0x75, 0xd6, 0x50, -0xf8, 0x68, 0xb4, 0x6a, 0x0d, 0xb3, 0xe8, 0x77, 0x71, 0x6c, 0x3e, 0x4a, 0xcd, 0xe2, 0x7b, 0xc5, -0x30, 0x8f, 0xa7, 0x67, 0x7e, 0x74, 0xae, 0x52, 0x48, 0x26, 0x2a, 0xbc, 0xad, 0x97, 0x46, 0xc4, -0x34, 0xfd, 0x50, 0xe4, 0x68, 0x94, 0x76, 0x17, 0x2b, 0x6f, 0x5e, 0x79, 0xab, 0x94, 0xb7, 0x5a, -0x79, 0x27, 0x29, 0x6f, 0x8d, 0xf2, 0x9e, 0xa0, 0xbc, 0xb5, 0xca, 0x7b, 0xa2, 0xf2, 0x4e, 0x56, -0xde, 0x29, 0xca, 0x5b, 0xa7, 0xbc, 0x6f, 0x52, 0xde, 0xa9, 0xca, 0xfb, 0x66, 0x7a, 0x17, 0x9f, -0x05, 0x7d, 0x6f, 0xb7, 0x1f, 0xa4, 0xf6, 0xd2, 0x73, 0xb7, 0xf5, 0x2a, 0xf0, 0xf2, 0xb4, 0x7b, -0xcd, 0x08, 0x71, 0xe8, 0xb7, 0xd0, 0x2d, 0xa7, 0xa2, 0xa6, 0x9c, 0xb5, 0xf3, 0xee, 0xab, 0xb7, -0x3d, 0x5f, 0x0b, 0x52, 0xa1, 0x90, 0x22, 0x78, 0x02, 0x00, 0x47, 0x10, 0x0b, 0xab, 0x67, 0x7e, -0x24, 0x5d, 0xc4, 0x9a, 0xa4, 0xb1, 0x9c, 0x2d, 0x4a, 0x4d, 0x2c, 0x4a, 0x4d, 0x2c, 0x4a, 0x4d, -0x2c, 0x4a, 0x4d, 0x2c, 0x4a, 0x4d, 0x2c, 0x4a, 0x4d, 0x2c, 0x4a, 0x4d, 0x2c, 0x4a, 0x4d, 0x2c, -0x4a, 0x4d, 0x2c, 0x4a, 0x4d, 0x2c, 0x4a, 0x4d, 0x2c, 0x4a, 0x4d, 0x2c, 0x4a, 0x4d, 0x2c, 0x4a, -0x4d, 0x2c, 0x72, 0x4d, 0x4a, 0xcf, 0x81, 0x9e, 0xda, 0xa5, 0x1e, 0xa4, 0x50, 0xe8, 0xe2, 0xbe, -0xf0, 0xe1, 0x97, 0x43, 0x37, 0x0f, 0x44, 0x44, 0xd2, 0x22, 0x33, 0xe9, 0x7b, 0x55, 0xd8, 0x13, -0xf6, 0x7f, 0x3a, 0x86, 0x56, 0x79, 0xf9, 0xe6, 0x94, 0x78, 0x3d, 0x37, 0x51, 0x3d, 0x05, 0x15, -0xa3, 0x9f, 0xa8, 0x72, 0x23, 0x08, 0x4a, 0x8f, 0x22, 0x5c, 0x4b, 0xc3, 0x27, 0x75, 0xf4, 0xac, -0x2c, 0xd9, 0xeb, 0xd4, 0x72, 0xb4, 0x53, 0xdf, 0xa8, 0xff, 0x75, 0xf8, 0xe4, 0xaa, 0x9a, 0x6e, -0xe4, 0x3f, 0x9f, 0xd0, 0x19, 0x59, 0x85, 0xde, 0xb2, 0x8d, 0x4e, 0xb6, 0xa3, 0x9d, 0x27, 0xae, -0x09, 0xe1, 0xf2, 0x61, 0x69, 0xbf, 0x2d, 0x4b, 0xc6, 0xab, 0x69, 0x60, 0xf7, 0x6a, 0xff, 0xa7, -0x72, 0xce, 0xf2, 0x1d, 0x96, 0x45, 0xf9, 0x16, 0x1b, 0x27, 0x18, 0x6d, 0x9c, 0xb9, 0xa5, 0xc3, -0xd6, 0x41, 0x16, 0x87, 0xe0, 0xc9, 0xe2, 0x0b, 0xf0, 0xd4, 0xac, 0x0b, 0x5c, 0x76, 0x90, 0x13, -0x06, 0x06, 0xc3, 0xbf, 0x3d, 0xe0, 0xbf, 0x62, 0xbe, 0x99, 0x4e, 0x9d, 0xc3, 0x93, 0x36, 0x75, -0x9b, 0x70, 0x74, 0x3d, 0xd9, 0x67, 0x95, 0xb6, 0xa0, 0x9c, 0xa3, 0x52, 0x6e, 0xd4, 0xd5, 0x97, -0x0e, 0x4b, 0xa2, 0x6c, 0x77, 0xb5, 0x72, 0x3d, 0x59, 0xe9, 0x0a, 0x90, 0x55, 0x17, 0x56, 0x27, -0x0b, 0x9c, 0x44, 0x4e, 0x21, 0xc7, 0x4c, 0xf8, 0xa6, 0x8e, 0x7d, 0xf3, 0x1f, 0x10, 0x6c, 0x9c, -0xf1, 0x85, 0x15, 0x42, 0x52, 0xc5, 0xbb, 0xd6, 0x22, 0xf9, 0x36, 0x4b, 0xe2, 0x15, 0x9b, 0x0b, -0xe4, 0x33, 0x81, 0x33, 0xec, 0x64, 0xbb, 0x91, 0xad, 0x00, 0xa1, 0x6c, 0x27, 0xaf, 0xef, 0xa9, -0x9f, 0x0e, 0x71, 0xb6, 0x62, 0xec, 0x53, 0x20, 0xdb, 0x74, 0x8b, 0x59, 0x6d, 0x39, 0x1a, 0x21, -0x4b, 0x2d, 0xac, 0x97, 0xc3, 0x91, 0x4e, 0xa6, 0x2b, 0xc3, 0x7b, 0xdd, 0x83, 0x91, 0xb2, 0x30, -0x59, 0x43, 0xd9, 0x5c, 0x20, 0x1a, 0xa8, 0x3d, 0x4c, 0x40, 0xbd, 0xf0, 0xc4, 0xac, 0xdf, 0xb0, -0x1b, 0x7a, 0xd5, 0x40, 0xfa, 0xf6, 0x7b, 0xdd, 0x86, 0x69, 0x99, 0xf0, 0x62, 0x98, 0xe4, 0xf6, -0x80, 0xd6, 0xa0, 0x6d, 0x53, 0xed, 0xeb, 0xf4, 0x1f, 0x99, 0x79, 0x56, 0xba, 0x6a, 0x98, 0x65, -0x74, 0x16, 0xcb, 0xa9, 0x41, 0x65, 0x37, 0x4f, 0x01, 0xf5, 0xbf, 0x87, 0xa9, 0x14, 0xd9, 0xfe, -0x24, 0x9b, 0xaf, 0xc6, 0x1c, 0xcc, 0xdc, 0xb1, 0x88, 0x0c, 0x85, 0x1c, 0xa6, 0x61, 0xb9, 0xbe, -0x1a, 0xa6, 0x16, 0x50, 0x03, 0x8d, 0x5b, 0xb2, 0xfd, 0x46, 0xea, 0x79, 0x13, 0xd8, 0x49, 0x39, -0xc1, 0x8e, 0xe3, 0xb0, 0xbd, 0x00, 0x7e, 0x13, 0x36, 0x4d, 0x01, 0xed, 0x6f, 0xc2, 0x66, 0xbb, -0x1b, 0x30, 0x67, 0x3b, 0x41, 0x41, 0xf9, 0xb7, 0x43, 0x99, 0x7a, 0x5f, 0xd7, 0xf5, 0xf9, 0x8f, -0x96, 0xfb, 0x0f, 0x96, 0xa1, 0xfb, 0xbf, 0x50, 0x86, 0xfe, 0xff, 0x42, 0x19, 0xe9, 0xff, 0x17, -0xca, 0xc8, 0xfc, 0xbf, 0x50, 0x46, 0xf6, 0x7f, 0xb5, 0x0c, 0x0b, 0xf7, 0xf6, 0x57, 0x96, 0x62, -0xc0, 0x12, 0xa8, 0xa4, 0x17, 0x22, 0xc2, 0x14, 0x10, 0x5e, 0x88, 0xb0, 0x52, 0x22, 0x16, 0x7b, -0x0d, 0xfc, 0x36, 0x22, 0x70, 0x14, 0x9b, 0xf2, 0x1b, 0xe8, 0xa4, 0x14, 0x1a, 0x4c, 0xc1, 0xd6, -0x41, 0x39, 0xb9, 0x4f, 0x50, 0xae, 0x13, 0x30, 0x57, 0x8b, 0xea, 0xed, 0x4e, 0x8a, 0xf5, 0x6a, -0x24, 0x56, 0x8e, 0xa0, 0x1a, 0xec, 0xa4, 0x5c, 0x59, 0x3e, 0xe1, 0xf1, 0xf4, 0x7f, 0x24, 0x22, -0xd7, 0x42, 0xae, 0x51, 0xe9, 0x39, 0xe9, 0x44, 0xc9, 0x87, 0x20, 0xb4, 0xdf, 0xd9, 0xb7, 0xba, -0x1e, 0xae, 0x1e, 0x0a, 0x9d, 0xd8, 0x17, 0xfd, 0xc3, 0xcb, 0xfb, 0xbb, 0x8c, 0xb3, 0x4c, 0xbc, -0xd2, 0x13, 0x5b, 0x51, 0x16, 0x54, 0xbf, 0xa0, 0xc0, 0x43, 0xf5, 0x1e, 0xe8, 0x8a, 0xc1, 0x43, -0x36, 0x3c, 0xcd, 0x9c, 0xd3, 0xe5, 0x76, 0x9d, 0xa8, 0x20, 0xae, 0x33, 0x01, 0x04, 0xd7, 0xe1, -0xfd, 0x56, 0xed, 0xf1, 0x6e, 0x8a, 0x77, 0x20, 0x42, 0x61, 0x6a, 0x16, 0x46, 0x2b, 0x7a, 0xc2, -0x34, 0x2d, 0x58, 0xa7, 0x2d, 0x82, 0xff, 0x08, 0x8f, 0xc7, 0x1f, 0xc2, 0xc4, 0xfa, 0xb4, 0x65, -0x1a, 0x41, 0xfc, 0xbd, 0xce, 0x9a, 0xd5, 0x21, 0xd5, 0xce, 0xce, 0xfa, 0x95, 0xa8, 0xcf, 0x66, -0x13, 0x3c, 0x6d, 0xaa, 0xfd, 0x9d, 0x01, 0x6b, 0xcd, 0x1a, 0xb9, 0x77, 0x23, 0x67, 0xb8, 0xe3, -0x4b, 0x38, 0x83, 0x5d, 0xe6, 0x0c, 0xfe, 0xe3, 0x65, 0x61, 0x23, 0xc8, 0xd6, 0x1a, 0x63, 0x1c, -0x67, 0x28, 0x91, 0xe3, 0x44, 0x47, 0x39, 0x8e, 0x72, 0x92, 0xa6, 0x83, 0xce, 0x38, 0x8a, 0x30, -0xbc, 0x15, 0x9f, 0x4d, 0x24, 0xb7, 0x60, 0xcb, 0xb4, 0x80, 0x9e, 0x2c, 0xe1, 0x1a, 0xf4, 0x86, -0x16, 0x48, 0x47, 0x5e, 0x2e, 0xa4, 0xdf, 0xde, 0xce, 0xf5, 0x45, 0xe6, 0xec, 0xdf, 0xa5, 0xf6, -0xab, 0x7d, 0x11, 0x31, 0xd5, 0xc3, 0xfb, 0xb5, 0xad, 0xea, 0x2d, 0x11, 0x03, 0x4f, 0x7b, 0xdf, -0x7c, 0xe1, 0xdd, 0xe1, 0x80, 0xa6, 0x5d, 0xd5, 0x17, 0xa9, 0x3b, 0x2a, 0x44, 0x2a, 0xde, 0x05, -0x79, 0x0f, 0x54, 0x01, 0x9b, 0x1f, 0x79, 0x88, 0xd9, 0xc3, 0xcb, 0xf7, 0xd3, 0x6e, 0x03, 0x2e, -0xc8, 0x21, 0x4e, 0x8d, 0xef, 0x6f, 0x63, 0xbb, 0x69, 0x47, 0xf7, 0x1c, 0xe4, 0x2b, 0xf7, 0xf0, -0xf5, 0x63, 0x4c, 0xb3, 0x3f, 0x3d, 0x16, 0x0b, 0xbf, 0x98, 0x9d, 0x3d, 0xec, 0x74, 0x8d, 0x95, -0xe4, 0xa8, 0xad, 0xdb, 0xd9, 0x69, 0x1d, 0x73, 0x6f, 0x67, 0x6d, 0x96, 0x0d, 0x0c, 0x39, 0xa0, -0xa3, 0x95, 0x2f, 0x9b, 0x45, 0xb6, 0x5e, 0x7a, 0xcf, 0x29, 0x8a, 0x2b, 0x3a, 0x31, 0xad, 0x7d, -0x43, 0xc4, 0xa8, 0xea, 0xed, 0xa4, 0x93, 0xfd, 0x38, 0x26, 0x61, 0xbc, 0x0d, 0x9d, 0x36, 0x38, -0x82, 0x50, 0xd8, 0x38, 0xf9, 0x3c, 0xbe, 0x77, 0xcb, 0xd6, 0x28, 0x2b, 0x53, 0xb0, 0xa9, 0x58, -0x3e, 0x9d, 0x4a, 0x3e, 0xb4, 0xf7, 0xc3, 0x3e, 0xb9, 0x01, 0xcc, 0x60, 0x65, 0x3a, 0x9f, 0x05, -0x25, 0x1d, 0xcc, 0x15, 0x21, 0xb1, 0x63, 0xbe, 0x66, 0xba, 0x41, 0x91, 0x4a, 0x41, 0x28, 0xac, -0x3b, 0xc3, 0x0b, 0x75, 0xa4, 0x47, 0x82, 0x55, 0x54, 0xc7, 0xef, 0xe9, 0xc2, 0x31, 0x0b, 0x71, -0xa6, 0x66, 0xeb, 0xd0, 0x8b, 0x84, 0xc5, 0xca, 0xbe, 0xa8, 0x5a, 0xe7, 0x36, 0x94, 0x6b, 0x9f, -0x81, 0x74, 0x7c, 0xb4, 0xf8, 0x64, 0x32, 0xbd, 0xdc, 0xee, 0xdc, 0x80, 0xe1, 0x6a, 0x7c, 0x74, -0x77, 0x75, 0xe0, 0x20, 0x08, 0x40, 0x77, 0x51, 0x0b, 0xf8, 0x98, 0xf1, 0xb1, 0xe2, 0x63, 0xc7, -0xa7, 0x00, 0x9f, 0xa2, 0x92, 0xb3, 0x49, 0xf6, 0xbb, 0xca, 0xa1, 0x11, 0x9f, 0x4a, 0x7c, 0x2a, -0xee, 0x72, 0xdc, 0x31, 0x10, 0x94, 0xf0, 0x77, 0xff, 0xb8, 0x93, 0x33, 0x24, 0x57, 0xb3, 0x7d, -0x67, 0x6c, 0x77, 0x49, 0x6d, 0xfc, 0x3c, 0x49, 0x8d, 0xbc, 0xcf, 0xa8, 0x0d, 0xc4, 0x34, 0x13, -0x7f, 0xb6, 0xd3, 0xd7, 0x19, 0xb4, 0xf5, 0xd2, 0x9e, 0xe0, 0x9b, 0xf7, 0x47, 0x02, 0xc9, 0x02, -0x7f, 0xbf, 0x7c, 0xff, 0x72, 0x1e, 0xd6, 0x2b, 0x3f, 0x90, 0xb9, 0xab, 0x07, 0x8c, 0x81, 0xb4, -0x78, 0x1b, 0xc9, 0x3b, 0xa6, 0xf2, 0x2b, 0xd7, 0x23, 0x6e, 0xb4, 0x58, 0x5f, 0xda, 0x11, 0x93, -0x4e, 0xf3, 0x46, 0x22, 0x48, 0xe9, 0xb1, 0x3d, 0x61, 0xdf, 0xa3, 0x7b, 0x5e, 0xc9, 0xb2, 0x97, -0x1e, 0xa9, 0x27, 0x53, 0xd9, 0x0d, 0xb6, 0x56, 0xde, 0x21, 0x05, 0x5d, 0xc1, 0x82, 0xde, 0xe7, -0x21, 0xdb, 0xbf, 0x8c, 0xc1, 0xd2, 0x8e, 0xb9, 0xd1, 0x0e, 0x3a, 0xc1, 0xaf, 0x9b, 0x1c, 0xdb, -0x1f, 0xd5, 0xc3, 0xac, 0x43, 0x1b, 0xfd, 0xda, 0xc9, 0xca, 0xfe, 0x28, 0x77, 0xfb, 0x1d, 0x87, -0xd8, 0x2a, 0xb6, 0xbc, 0x6b, 0x0b, 0xe9, 0xc4, 0x14, 0xdb, 0xad, 0x54, 0x84, 0xad, 0x91, 0xed, -0xdc, 0x8e, 0xad, 0x69, 0x63, 0x7a, 0x41, 0xbf, 0xa4, 0x65, 0xf6, 0x65, 0x4c, 0xcc, 0x4a, 0x09, -0xdb, 0xe3, 0x85, 0x52, 0xb9, 0x3e, 0xb6, 0xcf, 0x8b, 0xee, 0x34, 0x11, 0x93, 0x47, 0x77, 0xee, -0xd0, 0x29, 0x28, 0x76, 0xa7, 0xa8, 0x8d, 0xd9, 0xad, 0x26, 0xab, 0x46, 0x37, 0x33, 0x89, 0xbe, -0x5f, 0x2a, 0x52, 0xec, 0x44, 0xa8, 0xe4, 0xdb, 0x9a, 0xc8, 0x2a, 0x34, 0xab, 0x89, 0x3b, 0x7e, -0x82, 0x69, 0x86, 0x27, 0xd2, 0x98, 0x1c, 0x6b, 0x15, 0xd1, 0x1a, 0xd4, 0xf7, 0x46, 0x9a, 0x2c, -0x26, 0x33, 0x14, 0x19, 0xb9, 0xa1, 0x4e, 0x7d, 0x11, 0x08, 0xbd, 0xd1, 0xfa, 0x2c, 0xba, 0x61, -0xe8, 0xfd, 0x6d, 0x55, 0xe1, 0x81, 0xe7, 0x21, 0xfd, 0x83, 0x6d, 0x87, 0x31, 0xf6, 0x5d, 0x4e, -0x28, 0x0a, 0xca, 0x67, 0xb0, 0xee, 0x34, 0xdd, 0xc9, 0x2c, 0x4f, 0xed, 0x27, 0xdb, 0xb8, 0x74, -0x4f, 0xa2, 0xbc, 0xf7, 0xe7, 0x56, 0xa3, 0xb1, 0x31, 0xb6, 0x3b, 0xf0, 0xd6, 0x4c, 0xcf, 0x0e, -0xea, 0x0f, 0xb7, 0xea, 0x3d, 0x5b, 0xfc, 0x5a, 0x74, 0xab, 0xfd, 0x70, 0xab, 0x3a, 0x98, 0xd2, -0xbb, 0xc9, 0xaf, 0x0e, 0xe9, 0x8c, 0x11, 0x83, 0x15, 0x74, 0x16, 0x2b, 0xf6, 0xd1, 0xea, 0x9c, -0x46, 0x50, 0x4b, 0xe7, 0x4d, 0x16, 0x28, 0x30, 0x5a, 0xa0, 0x28, 0x37, 0xc9, 0x3c, 0x55, 0x3a, -0xdf, 0x01, 0xc5, 0xe7, 0x92, 0xec, 0x39, 0x6e, 0xe9, 0x78, 0xf1, 0x39, 0xfe, 0x22, 0xbe, 0x4f, -0x14, 0x9f, 0x83, 0x46, 0x7c, 0x9f, 0xc2, 0x77, 0x35, 0xbe, 0x2f, 0xe2, 0x3b, 0x88, 0xef, 0x4b, -0xf8, 0xae, 0xc1, 0xf7, 0x95, 0x9c, 0x62, 0xe9, 0x40, 0x70, 0x52, 0xef, 0xa6, 0x7a, 0x48, 0xfb, -0xb9, 0x90, 0x36, 0x18, 0xb6, 0x7f, 0x47, 0x2b, 0x5b, 0x4d, 0x9d, 0x0f, 0x3e, 0xde, 0xcc, 0x6f, -0x53, 0x19, 0x55, 0x3b, 0xd4, 0x0e, 0xf5, 0xf1, 0xa4, 0x56, 0x70, 0x6b, 0xe6, 0x69, 0x9e, 0xd4, -0xf4, 0x4c, 0x58, 0x34, 0x61, 0x70, 0xc2, 0x10, 0xcc, 0xd0, 0x76, 0x4f, 0x0c, 0xea, 0x04, 0x9d, -0xf1, 0xa6, 0x83, 0xa9, 0x99, 0x37, 0xbb, 0x6f, 0xde, 0xa0, 0xcf, 0xd4, 0xe7, 0xe9, 0xaf, 0xdc, -0xb2, 0xe0, 0x96, 0xb9, 0xb7, 0xbc, 0x8d, 0xf2, 0x6f, 0x93, 0x74, 0x40, 0x84, 0x09, 0x67, 0x62, -0xae, 0xa4, 0x57, 0x63, 0x2e, 0xce, 0x4b, 0xfb, 0x7b, 0x50, 0x8a, 0x41, 0x9f, 0x30, 0x4b, 0xcc, -0x0a, 0x21, 0x2d, 0xc1, 0x39, 0xb2, 0x04, 0x75, 0x8b, 0x50, 0xd5, 0xe5, 0xeb, 0x46, 0xad, 0xe1, -0xd6, 0xd3, 0xdb, 0x8e, 0x86, 0x2b, 0xa3, 0x26, 0x77, 0xf0, 0xe6, 0xde, 0x68, 0xdd, 0xa9, 0x9c, -0x72, 0xe9, 0x00, 0x4a, 0x94, 0x5c, 0x80, 0x59, 0x84, 0x58, 0x73, 0xa7, 0x7f, 0x86, 0xbc, 0x8f, -0x55, 0xb6, 0xac, 0xe1, 0x25, 0xdb, 0x9b, 0x99, 0x77, 0x74, 0xc0, 0x9d, 0xd2, 0xd5, 0x3b, 0x3a, -0xa4, 0x35, 0xd2, 0x35, 0x66, 0xab, 0x4a, 0xbe, 0xff, 0x89, 0x7d, 0x0b, 0x71, 0xc6, 0x08, 0xed, -0x5e, 0x6a, 0x45, 0xfe, 0x89, 0x74, 0x4b, 0x27, 0x12, 0xc8, 0x9a, 0x87, 0xbc, 0x1b, 0x4b, 0x43, -0x7d, 0x09, 0xec, 0x5a, 0x0b, 0xca, 0x8f, 0x29, 0x01, 0xa3, 0xa0, 0x7a, 0xaf, 0x5b, 0x39, 0xa9, -0xac, 0x3a, 0xb1, 0x8a, 0x4e, 0xb3, 0x08, 0x0e, 0x77, 0x30, 0x13, 0x62, 0x5a, 0x0a, 0xd9, 0x28, -0x9f, 0xd2, 0x01, 0xa7, 0x06, 0xda, 0xe9, 0xb4, 0x95, 0x3e, 0x3d, 0x78, 0xf3, 0x40, 0xa7, 0x6c, -0xfd, 0x11, 0xd6, 0x9e, 0x5d, 0x43, 0xbe, 0x4a, 0xda, 0x23, 0x6c, 0xf4, 0xd3, 0xe9, 0x3c, 0xa3, -0x98, 0xb1, 0x33, 0x5c, 0x97, 0xf6, 0xbd, 0x28, 0x4b, 0x81, 0x94, 0x1f, 0xfa, 0xba, 0x31, 0x22, -0xc2, 0xc8, 0x86, 0x10, 0xf7, 0xde, 0x33, 0x63, 0x77, 0xf8, 0x3f, 0xd4, 0x4d, 0x90, 0x4e, 0x51, -0x4e, 0x17, 0x68, 0x55, 0x30, 0x31, 0xa0, 0x0e, 0x4e, 0x44, 0xaa, 0x49, 0x31, 0x86, 0x5b, 0x01, -0xfb, 0x2e, 0x8c, 0xcc, 0x23, 0x1c, 0xe9, 0x35, 0x88, 0xa3, 0x30, 0x8e, 0x06, 0xb7, 0x9e, 0x7e, -0xe6, 0x68, 0x04, 0x71, 0xe4, 0x40, 0xb9, 0x9e, 0x70, 0xe4, 0x96, 0x0e, 0x60, 0x1f, 0xd5, 0xeb, -0x54, 0x74, 0xcf, 0x3a, 0x2b, 0x6f, 0x3d, 0x41, 0x78, 0x73, 0x48, 0x60, 0x67, 0xa2, 0x4f, 0x80, -0x12, 0xba, 0x97, 0x42, 0xa5, 0xf6, 0x78, 0xfd, 0x93, 0x05, 0xd5, 0x89, 0xee, 0x10, 0xb7, 0x2f, -0x2c, 0x44, 0x10, 0x07, 0x1c, 0xa4, 0x05, 0x8c, 0x77, 0x94, 0x48, 0x57, 0x4f, 0xac, 0xc1, 0xdf, -0x51, 0x4c, 0x5a, 0x20, 0x53, 0x3e, 0x87, 0x40, 0x50, 0xb2, 0x53, 0x38, 0xbc, 0xb1, 0x13, 0xf1, -0xa9, 0x52, 0x5a, 0x35, 0x9d, 0x60, 0xbb, 0xb9, 0xe1, 0x3a, 0xd8, 0xee, 0x8c, 0xc1, 0x16, 0x2f, -0x4f, 0x7d, 0x57, 0x09, 0xa8, 0x95, 0x92, 0x0a, 0xa9, 0x24, 0x2a, 0xff, 0x0e, 0x87, 0x74, 0x4d, -0x50, 0xd1, 0x58, 0x4b, 0xf7, 0x53, 0xc8, 0xa3, 0x1c, 0x7e, 0x93, 0x98, 0x35, 0xcd, 0x1b, 0x97, -0xaf, 0xba, 0xbe, 0xfc, 0xd4, 0x73, 0x5f, 0x8e, 0x9b, 0x78, 0xf9, 0x19, 0x41, 0x28, 0x83, 0x81, -0xce, 0xbb, 0x68, 0x57, 0x1b, 0x9d, 0xed, 0xc1, 0xd2, 0xd1, 0xad, 0xfb, 0x47, 0xea, 0x1e, 0x52, -0x1b, 0x23, 0xd4, 0x26, 0x98, 0x86, 0xc7, 0x34, 0x8b, 0xc6, 0xc0, 0xe0, 0xff, 0xca, 0xf6, 0x71, -0x8c, 0xc1, 0x43, 0xba, 0x52, 0xea, 0xf4, 0xbf, 0xa7, 0x54, 0x71, 0x94, 0x66, 0x89, 0x0b, 0xe9, -0x45, 0xba, 0xdb, 0x1b, 0x82, 0x49, 0xc6, 0xb0, 0x02, 0x07, 0xf2, 0x5a, 0xe4, 0xe1, 0x0e, 0xab, -0xab, 0xb7, 0xab, 0x8e, 0xb7, 0x3a, 0xd8, 0x9d, 0xbb, 0x8b, 0xe8, 0xfc, 0x12, 0x1b, 0x91, 0xa6, -0xe3, 0x88, 0x24, 0x73, 0x34, 0xba, 0xc1, 0x39, 0x7d, 0x53, 0x58, 0xe0, 0xf0, 0x9d, 0x59, 0x72, -0x59, 0x0b, 0xb4, 0xf3, 0x7f, 0x53, 0x58, 0xe4, 0x0d, 0xa9, 0x38, 0x12, 0xa6, 0xb8, 0x83, 0xf2, -0x0e, 0x99, 0x7b, 0x4e, 0x31, 0x4a, 0x94, 0x21, 0xcc, 0xb0, 0xc9, 0x56, 0xd0, 0xc6, 0xc1, 0xf4, -0xf8, 0xba, 0x3f, 0xbc, 0x21, 0xa4, 0x6e, 0xec, 0x01, 0x07, 0x72, 0x70, 0x87, 0x1f, 0x6e, 0xaa, -0xc5, 0xbe, 0xe5, 0x08, 0x69, 0x8c, 0x44, 0x4b, 0x2a, 0x4c, 0xb7, 0x9c, 0x70, 0x72, 0x53, 0x85, -0x61, 0xd6, 0xcf, 0xde, 0x30, 0xa4, 0xdc, 0xf1, 0x3d, 0x69, 0x90, 0xdd, 0x19, 0x33, 0x98, 0xe3, -0x90, 0x86, 0x7c, 0xeb, 0xe2, 0xf5, 0xa1, 0x1b, 0x18, 0xe5, 0xb3, 0x97, 0x64, 0x61, 0xc4, 0xd1, -0x8b, 0x23, 0x61, 0x9d, 0xee, 0x6b, 0xcf, 0x4a, 0x83, 0xca, 0x7a, 0x85, 0xc3, 0xf3, 0xac, 0x34, -0x14, 0x50, 0xf7, 0xad, 0xf3, 0xef, 0x31, 0x15, 0x27, 0x40, 0xc4, 0xdd, 0x18, 0x22, 0x16, 0x1b, -0xb5, 0x52, 0xdd, 0xd0, 0x28, 0xb6, 0xd9, 0x28, 0x4c, 0xb0, 0x4d, 0x60, 0xb0, 0xa9, 0x63, 0xb0, -0xe9, 0x7a, 0xff, 0x0e, 0xd8, 0x8c, 0x63, 0x60, 0x33, 0xff, 0x8f, 0xc0, 0x56, 0x30, 0x06, 0x36, -0x63, 0x48, 0x8b, 0xbc, 0xdd, 0x02, 0x7a, 0xe4, 0x73, 0x13, 0x03, 0x65, 0x0a, 0x6f, 0x64, 0x14, -0xa5, 0x4b, 0xfe, 0x72, 0xae, 0x48, 0x3b, 0xd3, 0x65, 0x6e, 0xd5, 0xdb, 0xa9, 0xf4, 0xef, 0x3f, -0x50, 0xff, 0xfe, 0xe2, 0x71, 0xa2, 0x8d, 0x78, 0x09, 0x99, 0xc1, 0x89, 0x27, 0xfe, 0x85, 0x46, -0xa6, 0x81, 0x08, 0xd2, 0xba, 0x95, 0xc2, 0x43, 0xdc, 0x5d, 0xc5, 0x28, 0x63, 0x24, 0x9c, 0x30, -0x8a, 0xf1, 0x1f, 0xe2, 0x38, 0x22, 0xf0, 0x7a, 0x2a, 0x3b, 0xe5, 0xf1, 0x2f, 0xef, 0xd1, 0x06, -0x95, 0x6c, 0x79, 0x59, 0xee, 0xb7, 0x27, 0xdc, 0x47, 0xc2, 0xd4, 0x97, 0x64, 0x19, 0x73, 0x30, -0xc2, 0xe6, 0x40, 0xe1, 0xbd, 0x35, 0x83, 0x9d, 0xb1, 0x7c, 0xdb, 0x92, 0xe5, 0x1e, 0xeb, 0xa1, -0x53, 0x5d, 0x82, 0x61, 0xaa, 0x74, 0x60, 0x4a, 0x31, 0xe8, 0xa6, 0x94, 0x82, 0xde, 0xbc, 0x66, -0x8a, 0x0b, 0xd4, 0xd8, 0x3b, 0x0a, 0x50, 0xc2, 0x28, 0xea, 0xe0, 0x11, 0x3b, 0x99, 0x37, 0xe2, -0x8c, 0x04, 0x19, 0x3b, 0x39, 0x37, 0x15, 0x74, 0xdf, 0x0f, 0x93, 0x75, 0xa2, 0x3a, 0x48, 0xbe, -0xe8, 0xa1, 0x53, 0x57, 0x5a, 0xa5, 0x0f, 0x1a, 0x83, 0x13, 0x06, 0xa2, 0x27, 0xb6, 0x07, 0xaf, -0xec, 0x0f, 0x87, 0xb2, 0x48, 0xaa, 0xa5, 0x5a, 0x24, 0x1f, 0xb9, 0xae, 0x16, 0x7c, 0xac, 0x16, -0x41, 0x6e, 0x80, 0x20, 0x54, 0x1b, 0x54, 0x27, 0x57, 0x09, 0xc5, 0x41, 0xd5, 0x40, 0x84, 0x9d, -0xac, 0xa8, 0x40, 0x29, 0x9c, 0x6e, 0xe0, 0xf4, 0xc8, 0x27, 0xe9, 0x03, 0xea, 0xb6, 0x9b, 0xc4, -0x42, 0x94, 0x4f, 0x4e, 0xbd, 0x58, 0x00, 0x15, 0xc1, 0x89, 0x98, 0xa2, 0x9a, 0x7c, 0xbf, 0x2d, -0x80, 0xca, 0x50, 0x12, 0x72, 0xf2, 0x1a, 0xc4, 0xee, 0xad, 0xc6, 0x30, 0xc6, 0xd6, 0xec, 0x7c, -0x16, 0xeb, 0x37, 0x89, 0xea, 0x77, 0x66, 0xcd, 0x03, 0x51, 0x11, 0x92, 0xe7, 0xb6, 0xe9, 0x8d, -0x9d, 0xa2, 0xdc, 0x3a, 0x1f, 0xa1, 0xfc, 0xf7, 0x75, 0x63, 0xd8, 0xa4, 0x3d, 0xc5, 0xbe, 0x5d, -0x59, 0x29, 0xc3, 0x1b, 0xba, 0xb2, 0x3f, 0x92, 0xc8, 0x45, 0x92, 0x85, 0xaf, 0xc2, 0xbb, 0xb2, -0x53, 0x8e, 0xe1, 0xbd, 0xcc, 0xd1, 0x1b, 0x51, 0x5a, 0x9e, 0x6e, 0x58, 0x87, 0x89, 0x51, 0x84, -0xc6, 0x11, 0x4a, 0x35, 0x46, 0xda, 0x34, 0xbb, 0x9f, 0x25, 0x49, 0x62, 0xe2, 0x93, 0x84, 0xf5, -0xe0, 0xcd, 0xc6, 0x30, 0xd1, 0x6f, 0x00, 0x92, 0x0e, 0x59, 0x4b, 0x7b, 0x57, 0x10, 0x87, 0xe8, -0x5b, 0x87, 0xbf, 0x2e, 0xf9, 0x6e, 0xee, 0x89, 0xdb, 0x58, 0x0f, 0x47, 0xa8, 0xe5, 0xbe, 0x4f, -0xb4, 0xfa, 0xc4, 0x3a, 0x43, 0xea, 0x9b, 0xcf, 0x4a, 0x07, 0x36, 0x63, 0xbf, 0x91, 0x57, 0x41, -0x3e, 0x3f, 0x4a, 0xd0, 0x4d, 0x8c, 0x5e, 0x07, 0xdd, 0x4d, 0x31, 0xe8, 0x10, 0x03, 0x77, 0xee, -0xeb, 0x34, 0x14, 0x97, 0x7c, 0xc8, 0x71, 0x93, 0xcb, 0x41, 0x3c, 0xb7, 0x26, 0x78, 0xe7, 0x40, -0x27, 0xeb, 0x29, 0x75, 0xe7, 0xd6, 0x84, 0x6e, 0xde, 0xd7, 0x29, 0x14, 0xd7, 0x74, 0x4f, 0x76, -0xc3, 0xfc, 0xb3, 0x6b, 0x42, 0x9f, 0x0e, 0x45, 0x76, 0x5e, 0xe5, 0x26, 0xd5, 0x6a, 0x42, 0x93, -0xb0, 0x2d, 0x59, 0x2d, 0x5e, 0xbe, 0x83, 0x6a, 0xa1, 0xdd, 0x83, 0x7d, 0x75, 0x51, 0xe8, 0x16, -0xec, 0x13, 0x0d, 0x30, 0x9f, 0x34, 0xa0, 0xdf, 0xf6, 0x59, 0x5d, 0xa2, 0x5b, 0x86, 0x55, 0x3b, -0x54, 0xb5, 0xce, 0x17, 0xc1, 0x01, 0xf8, 0xd6, 0xd3, 0x3b, 0x8e, 0x76, 0x61, 0xf9, 0xc5, 0xed, -0x7c, 0x5f, 0xb4, 0xee, 0x24, 0xed, 0x65, 0xcb, 0x53, 0xce, 0x20, 0x49, 0x52, 0x66, 0x11, 0x14, -0x1c, 0xe9, 0x3a, 0x12, 0x29, 0x50, 0xf1, 0x2e, 0x98, 0x70, 0x4f, 0x57, 0xa6, 0xdc, 0x5f, 0x17, -0x51, 0xab, 0x20, 0x26, 0x16, 0xbd, 0x38, 0xb0, 0xd0, 0x64, 0x48, 0x11, 0xf7, 0xb1, 0x54, 0xd3, -0x62, 0xa9, 0x84, 0xe2, 0xe2, 0xb3, 0x50, 0x70, 0xf8, 0x80, 0x33, 0xb8, 0x4d, 0x89, 0x2f, 0xea, -0xcc, 0xa9, 0x25, 0x32, 0x04, 0x53, 0x59, 0x8f, 0x5b, 0x14, 0x4a, 0x43, 0x68, 0x0f, 0xe4, 0x94, -0x21, 0x47, 0x6f, 0x92, 0x8e, 0x43, 0x23, 0xfb, 0xad, 0xa0, 0x35, 0x3f, 0xa8, 0x46, 0x0c, 0x9e, -0xc0, 0xe7, 0x22, 0x3e, 0xa7, 0x90, 0x97, 0xdf, 0x8a, 0xef, 0x4b, 0x32, 0x1d, 0xaf, 0x73, 0x2b, -0x37, 0x26, 0xca, 0xf5, 0xbc, 0x97, 0xea, 0xf9, 0x39, 0x9d, 0x24, 0x5b, 0x14, 0x4c, 0x33, 0x92, -0xcc, 0x50, 0x87, 0x5a, 0x8a, 0x88, 0xf2, 0xd8, 0xa0, 0xa1, 0xd4, 0x5a, 0x86, 0x72, 0xd2, 0xf1, -0x9c, 0x06, 0xa8, 0x90, 0x86, 0x82, 0x9c, 0xc5, 0x02, 0xd5, 0x1f, 0x6d, 0x63, 0xf7, 0xa0, 0x1f, -0x33, 0xa4, 0x20, 0x96, 0xcf, 0x9a, 0x8a, 0x85, 0xa9, 0xd2, 0xb1, 0x81, 0x4e, 0xb6, 0xe7, 0x04, -0x39, 0x8a, 0xe0, 0xc8, 0x36, 0x03, 0x57, 0x68, 0x06, 0xd4, 0x44, 0xf4, 0x9a, 0x5d, 0xe1, 0xba, -0x0c, 0x6a, 0xa7, 0x09, 0x3b, 0xb1, 0x9d, 0x22, 0xa3, 0x9c, 0x43, 0x3c, 0x80, 0x14, 0x76, 0x56, -0x57, 0x0a, 0x37, 0xd7, 0x7a, 0xbf, 0x53, 0x2a, 0x0d, 0x59, 0xb4, 0x82, 0x43, 0x94, 0x63, 0xae, -0xa4, 0x98, 0x6c, 0xff, 0x84, 0x12, 0x57, 0xe0, 0x5e, 0xd8, 0x57, 0x7b, 0x2a, 0x6f, 0xaa, 0x34, -0x64, 0x72, 0x08, 0x5a, 0xa1, 0x94, 0x5f, 0x49, 0xab, 0x00, 0xe7, 0xb7, 0x6f, 0x09, 0x07, 0x0b, -0x68, 0x9f, 0xea, 0x3d, 0x74, 0x12, 0x8b, 0xda, 0x71, 0x11, 0x42, 0x9a, 0x87, 0x79, 0xea, 0xfd, -0x0b, 0x50, 0x31, 0x82, 0xea, 0x95, 0x08, 0xdf, 0x90, 0xa9, 0x54, 0xc9, 0x37, 0x97, 0xf2, 0x65, -0x16, 0x98, 0xf4, 0xb1, 0x7c, 0xf7, 0x44, 0x6b, 0x4f, 0x21, 0x1c, 0x43, 0x86, 0x14, 0xcc, 0x39, -0xe9, 0x24, 0xe6, 0xa8, 0x68, 0x0c, 0xfd, 0xc1, 0x6f, 0x51, 0xce, 0xf6, 0xbc, 0x98, 0xad, 0x9b, -0x10, 0x6a, 0xf0, 0x73, 0x23, 0xa7, 0xd6, 0xcc, 0x89, 0xd2, 0xed, 0x44, 0x58, 0xc6, 0x2d, 0x81, -0x54, 0x2a, 0x63, 0x41, 0xac, 0x8c, 0x1a, 0xf2, 0xcd, 0x1d, 0x53, 0xa2, 0x66, 0xcf, 0xdf, 0x2e, -0x31, 0x34, 0x81, 0xf2, 0x3d, 0xb3, 0x66, 0xd9, 0x35, 0x31, 0x9f, 0xa5, 0xe9, 0xfe, 0x3b, 0xd2, -0x3c, 0xbc, 0xaf, 0x73, 0x59, 0xca, 0x91, 0x15, 0x9f, 0xac, 0x59, 0xf6, 0xd7, 0x27, 0xc2, 0x43, -0x2b, 0x82, 0x40, 0xe7, 0xf9, 0x5f, 0xf8, 0x58, 0x1a, 0x5c, 0x98, 0x66, 0x99, 0x68, 0x4d, 0x65, -0x6d, 0x5a, 0x23, 0xf7, 0x6e, 0xd1, 0xce, 0x28, 0xa5, 0x01, 0x16, 0x2d, 0x2b, 0x78, 0xbb, 0xfb, -0xed, 0x15, 0xf7, 0x84, 0x6b, 0x14, 0x5c, 0x55, 0x45, 0xfc, 0x67, 0x89, 0x6e, 0xe8, 0x1b, 0xa5, -0xad, 0x87, 0x91, 0x6c, 0x4a, 0x1d, 0xfa, 0xfa, 0xce, 0x4d, 0x01, 0xb8, 0xd4, 0xee, 0x69, 0xe0, -0x83, 0x7e, 0x99, 0x3e, 0x42, 0x44, 0x1f, 0x9f, 0x1d, 0x19, 0x43, 0x61, 0x13, 0xc7, 0x53, 0x18, -0x8e, 0x31, 0x22, 0x51, 0x18, 0x69, 0x4b, 0x24, 0x0d, 0xaf, 0x73, 0x7b, 0xb7, 0x8e, 0xa1, 0xb2, -0x7f, 0x62, 0xb9, 0xac, 0x46, 0xad, 0xb6, 0x11, 0x2a, 0x83, 0x24, 0x93, 0xd6, 0x28, 0xe9, 0xaf, -0x28, 0xe9, 0xeb, 0x90, 0x73, 0x15, 0xa0, 0x9e, 0x2b, 0x0e, 0x86, 0xdd, 0x21, 0x2d, 0x30, 0x1b, -0x9f, 0x63, 0xf3, 0x78, 0x91, 0xe5, 0x51, 0x16, 0x44, 0xfe, 0x16, 0x62, 0xdc, 0x0d, 0x79, 0xc8, -0xb2, 0x60, 0x3a, 0xfa, 0x92, 0x76, 0x76, 0xd5, 0xcd, 0xa5, 0x5d, 0x39, 0x1c, 0xb7, 0xd0, 0x3b, -0x05, 0xb9, 0xd7, 0x8d, 0xf8, 0xb9, 0x6d, 0x82, 0x8d, 0xac, 0xea, 0x9d, 0xde, 0x54, 0x87, 0x1a, -0x8b, 0x4e, 0x3a, 0x20, 0x6b, 0x2f, 0x66, 0x2b, 0xed, 0xc7, 0x96, 0x75, 0x97, 0xca, 0xf5, 0x4c, -0xbf, 0x81, 0xbf, 0xb4, 0x87, 0xa4, 0xc9, 0xc5, 0x77, 0xec, 0x17, 0xe1, 0x2f, 0xcd, 0xce, 0x9e, -0x3b, 0xf6, 0xc7, 0xe8, 0x1f, 0xfb, 0x46, 0xf5, 0xfb, 0xdb, 0xac, 0x8e, 0xaa, 0x75, 0x86, 0x59, -0xa6, 0x72, 0x21, 0x95, 0xe8, 0x9e, 0x9d, 0x92, 0xfb, 0x58, 0x1a, 0xba, 0xa3, 0x52, 0x3a, 0x4b, -0x96, 0xff, 0xbf, 0xb3, 0x08, 0x78, 0x69, 0x10, 0x79, 0x12, 0x08, 0xc5, 0xbb, 0xba, 0x65, 0xfa, -0x57, 0x0f, 0x61, 0xbb, 0xae, 0x4a, 0xa0, 0xff, 0x7d, 0x56, 0xb7, 0xdd, 0x91, 0xe3, 0x95, 0x0e, -0x79, 0xa6, 0x4a, 0x67, 0x91, 0xe2, 0xd6, 0xb1, 0x11, 0xff, 0xac, 0x15, 0x65, 0xb4, 0x32, 0x1c, -0x1b, 0xfd, 0x1d, 0x7f, 0xfa, 0x58, 0x3a, 0x44, 0x1c, 0x5f, 0x48, 0x7d, 0xef, 0x19, 0x76, 0x3f, -0xec, 0xb1, 0x10, 0xe4, 0x91, 0x4c, 0x50, 0x2c, 0x9d, 0xc5, 0x1e, 0x77, 0xc8, 0x54, 0x8e, 0x7c, -0xfd, 0xd8, 0xbe, 0xce, 0x13, 0xcf, 0x1c, 0x79, 0x16, 0xd3, 0x15, 0xff, 0xe9, 0xe5, 0x3f, 0xbd, -0xf1, 0x27, 0x82, 0x62, 0x2e, 0xa6, 0xcb, 0x05, 0xce, 0x5e, 0xfc, 0x9d, 0x66, 0x82, 0x43, 0x3e, -0xbb, 0x68, 0x2d, 0x9e, 0x8d, 0xd2, 0xd5, 0xae, 0x75, 0x0a, 0x34, 0x65, 0x04, 0xcd, 0x28, 0xd7, -0x14, 0x77, 0xde, 0xd1, 0x24, 0x1d, 0x92, 0xce, 0x9e, 0xc0, 0x1e, 0x30, 0x19, 0xb5, 0xf9, 0x3c, -0x2d, 0x42, 0xc3, 0x91, 0xef, 0x30, 0xd6, 0xdd, 0x8e, 0xa5, 0x32, 0xe9, 0x02, 0xe1, 0xf3, 0x6b, -0x82, 0xb7, 0x8b, 0xa0, 0xea, 0x21, 0xfb, 0xf5, 0xd2, 0x59, 0x94, 0x10, 0x92, 0x02, 0x3a, 0x19, -0x53, 0x41, 0xba, 0x3d, 0x64, 0x13, 0x86, 0x68, 0x94, 0xb6, 0x7a, 0x8d, 0xda, 0xea, 0x2f, 0x4f, -0xa0, 0x1e, 0x42, 0xe7, 0x26, 0xdc, 0xa1, 0xdb, 0x8c, 0x64, 0x45, 0xc9, 0x1d, 0x98, 0x61, 0x48, -0x61, 0x32, 0x85, 0x43, 0x1e, 0x5f, 0x54, 0xbb, 0xc7, 0x72, 0x06, 0x53, 0x31, 0xf6, 0xf6, 0x33, -0x4c, 0xa2, 0xd0, 0x92, 0x6e, 0x52, 0x15, 0xd9, 0xd7, 0xf9, 0x26, 0x72, 0x7d, 0x84, 0xa6, 0x9b, -0xa0, 0x41, 0xfa, 0x71, 0xdc, 0x71, 0x20, 0x98, 0x61, 0x0c, 0x63, 0x9b, 0x54, 0x2a, 0x6d, 0x52, -0x23, 0xb7, 0x49, 0x4e, 0xa9, 0x74, 0x4c, 0xc0, 0x5e, 0x62, 0x48, 0xdd, 0xd7, 0x79, 0x24, 0xc2, -0xce, 0x65, 0x22, 0x46, 0xb2, 0xf4, 0x79, 0xa5, 0x69, 0xf1, 0x76, 0x59, 0x06, 0x59, 0x9c, 0x50, -0x1a, 0x6b, 0x17, 0x95, 0x71, 0xec, 0xf8, 0x21, 0xee, 0xb3, 0x20, 0x56, 0xef, 0x40, 0x1c, 0x63, -0x4f, 0x3e, 0x24, 0xcc, 0xb2, 0x4f, 0x54, 0xec, 0x2a, 0xc5, 0xda, 0x65, 0xf9, 0x57, 0xb5, 0x0b, -0x96, 0xbf, 0x9f, 0xb5, 0x8d, 0xfb, 0xc6, 0x6d, 0x93, 0x95, 0x81, 0x90, 0x60, 0xdb, 0xc8, 0x2d, -0x43, 0x90, 0x58, 0x4b, 0x13, 0xdb, 0x85, 0x7f, 0x8a, 0xe4, 0xab, 0x04, 0x68, 0x76, 0x23, 0x34, -0xfb, 0x09, 0x9a, 0x58, 0x5b, 0xc8, 0x78, 0x47, 0x4e, 0x15, 0x79, 0x13, 0x7d, 0x79, 0x13, 0xa9, -0x9d, 0xb4, 0x10, 0xc7, 0xf9, 0x69, 0xc2, 0x39, 0xed, 0xc8, 0x23, 0x88, 0x70, 0xf4, 0x75, 0xe1, -0x28, 0x47, 0xf6, 0xe4, 0xdc, 0xc1, 0xaf, 0xb1, 0x31, 0xf7, 0x3a, 0xec, 0xf3, 0x05, 0x7f, 0x17, -0xf6, 0x5d, 0x31, 0xec, 0x87, 0x32, 0x8d, 0x11, 0xcf, 0x0a, 0x4c, 0xa7, 0x36, 0x4c, 0xd8, 0xb4, -0x02, 0x73, 0x74, 0xe1, 0xf8, 0x53, 0xb8, 0x21, 0xd2, 0xdb, 0x03, 0xd6, 0x85, 0x69, 0x9e, 0x9e, -0x3b, 0x06, 0x14, 0x48, 0xbe, 0x20, 0x48, 0x38, 0xb2, 0x9d, 0x61, 0x7f, 0x71, 0xa0, 0x4e, 0xb3, -0x61, 0x15, 0xba, 0xcc, 0x9b, 0x07, 0xde, 0x3c, 0x07, 0xf9, 0xd8, 0x5e, 0x0e, 0x4c, 0x95, 0x2a, -0x70, 0x62, 0x32, 0xc1, 0xb2, 0x99, 0x2c, 0x09, 0x38, 0xfa, 0xc9, 0x4a, 0x66, 0xd2, 0x13, 0x61, -0x92, 0xe0, 0x0d, 0x40, 0xf2, 0x87, 0xd5, 0xad, 0xff, 0x23, 0x72, 0xa9, 0x61, 0xec, 0x25, 0x07, -0x0e, 0xe3, 0xd8, 0x2f, 0xcb, 0xf5, 0x17, 0xde, 0x41, 0xec, 0xa7, 0x8b, 0xf0, 0x67, 0x27, 0xc1, -0xc1, 0x75, 0x50, 0x4c, 0x1f, 0x7e, 0xd5, 0x9f, 0x83, 0x92, 0xaa, 0x15, 0x41, 0xfc, 0xc2, 0xd1, -0x99, 0x20, 0x2d, 0x3b, 0xc7, 0x9f, 0x20, 0xc7, 0x70, 0x35, 0x5f, 0x2e, 0xc7, 0xfc, 0x7c, 0xc5, -0xbb, 0x3b, 0x20, 0xfd, 0xdd, 0x1e, 0xc8, 0xf6, 0x3c, 0x12, 0xc8, 0xdb, 0xf8, 0xbf, 0x99, 0x4d, -0x16, 0x3d, 0x72, 0x0b, 0xed, 0xa8, 0xe4, 0x2c, 0xa6, 0x26, 0xfa, 0x65, 0x9b, 0x3b, 0x31, 0x69, -0x90, 0xe2, 0xfb, 0xad, 0xb2, 0x76, 0x4b, 0xb3, 0x9a, 0xb9, 0xaa, 0xf7, 0xee, 0x73, 0xcf, 0x74, -0xce, 0x34, 0xa8, 0xe4, 0xb9, 0xcf, 0x77, 0x22, 0xa4, 0xc1, 0x2b, 0x73, 0x9f, 0x8f, 0x1c, 0x21, -0xfd, 0x46, 0xb5, 0xb3, 0x87, 0xce, 0x30, 0x11, 0xae, 0xf6, 0xdd, 0x2e, 0xf3, 0xea, 0xdc, 0x24, -0x11, 0x2e, 0x40, 0x6e, 0x12, 0xc9, 0xcb, 0xa1, 0x3b, 0x8c, 0x11, 0x56, 0x0b, 0x2f, 0x83, 0xc5, -0x9d, 0x58, 0x13, 0x58, 0xf7, 0xe5, 0x35, 0xd9, 0x8d, 0x75, 0x08, 0xe8, 0x59, 0xae, 0xb9, 0xca, -0x08, 0x00, 0x9f, 0xec, 0x20, 0x09, 0x90, 0x69, 0xee, 0x6a, 0x72, 0x05, 0xb3, 0x31, 0x54, 0x47, -0xae, 0x8e, 0x6b, 0xa2, 0x93, 0xbd, 0x39, 0xb1, 0x30, 0x1e, 0xc7, 0x6e, 0x4e, 0x15, 0x8d, 0xd8, -0x87, 0xd0, 0x4f, 0xe3, 0x81, 0xc8, 0xe4, 0x63, 0xea, 0x15, 0x62, 0x86, 0xe2, 0xda, 0x8f, 0xa9, -0x27, 0x8a, 0x5a, 0xf2, 0x61, 0x4d, 0xb4, 0x37, 0x96, 0x9d, 0xd9, 0x1c, 0xaa, 0x2e, 0x74, 0xfb, -0xce, 0x4d, 0xf5, 0x93, 0xf6, 0x92, 0xed, 0x90, 0x4c, 0xc6, 0x7d, 0xfb, 0xcf, 0x35, 0xb3, 0x99, -0x8b, 0xe4, 0xb6, 0x49, 0xc6, 0xce, 0x8e, 0xab, 0x38, 0x9a, 0xf6, 0x19, 0xa7, 0x4a, 0xe7, 0xb7, -0xec, 0x00, 0xf5, 0xcf, 0x31, 0xd6, 0x5b, 0x3b, 0x40, 0x1b, 0x6f, 0x0b, 0xaa, 0x7f, 0x21, 0xb6, -0xc8, 0x74, 0xc1, 0x0a, 0xba, 0x0d, 0x8f, 0xc4, 0x5b, 0x05, 0xc6, 0xb5, 0x0a, 0xdc, 0xb8, 0x55, -0x70, 0x64, 0x23, 0x28, 0xd4, 0x01, 0x75, 0x90, 0x6e, 0x00, 0xc0, 0x51, 0x52, 0x0b, 0x42, 0x5a, -0x7b, 0x4a, 0xe8, 0xe1, 0x32, 0xae, 0x2f, 0x1c, 0xe0, 0x43, 0x70, 0xf8, 0x65, 0x66, 0x7b, 0x13, -0x96, 0xdd, 0xda, 0x1f, 0x0e, 0xe8, 0xda, 0x52, 0x77, 0x2b, 0xa7, 0xb6, 0x69, 0x55, 0x72, 0x8a, -0x1b, 0xac, 0x9e, 0xa8, 0x5f, 0x8d, 0xe5, 0x6b, 0xdb, 0xd5, 0x7d, 0x24, 0x49, 0xeb, 0x3c, 0x2b, -0x03, 0x1a, 0x51, 0xd3, 0x31, 0x22, 0xf2, 0x1d, 0x5f, 0x08, 0x1a, 0x76, 0xcb, 0xc9, 0x93, 0x64, -0xa5, 0x98, 0xcd, 0x38, 0x6a, 0xd9, 0xac, 0x59, 0x11, 0x59, 0xa5, 0x61, 0x5a, 0x2e, 0xd9, 0x91, -0x32, 0x32, 0x79, 0xc2, 0x2c, 0x4c, 0x81, 0xfc, 0x40, 0xb2, 0x7c, 0x16, 0xf4, 0x4b, 0xcf, 0x81, -0x2a, 0xb6, 0x91, 0xd8, 0x29, 0x3d, 0xba, 0xd3, 0x2c, 0xd3, 0xac, 0x58, 0x30, 0x53, 0xec, 0x6c, -0x3d, 0x95, 0x60, 0x67, 0x6b, 0x0b, 0xc3, 0x8d, 0x36, 0x98, 0x4c, 0x63, 0x15, 0xac, 0x64, 0x6f, -0x41, 0xd6, 0x53, 0x64, 0xeb, 0xae, 0xde, 0xc7, 0xd8, 0x5e, 0x0e, 0x60, 0xbb, 0xa8, 0x32, 0x99, -0xad, 0x9d, 0x5a, 0x5b, 0x8e, 0x7c, 0x8a, 0xf8, 0xec, 0x79, 0xd6, 0x02, 0xda, 0xe0, 0x24, 0x63, -0x38, 0x78, 0x55, 0xac, 0x60, 0x73, 0xd9, 0xd1, 0xba, 0xac, 0x2d, 0x61, 0x1b, 0xb8, 0x5b, 0xcd, -0x30, 0x3a, 0x93, 0x2d, 0xcf, 0x40, 0x8b, 0x19, 0x1b, 0xa2, 0x94, 0xdb, 0x20, 0xcd, 0x5c, 0x43, -0xdc, 0x02, 0x97, 0x55, 0x3e, 0xcf, 0x83, 0xd8, 0xd6, 0x39, 0x63, 0xa7, 0xdb, 0xae, 0x55, 0xbc, -0x5b, 0xa4, 0x9c, 0x6e, 0xa3, 0xdb, 0x9a, 0x59, 0xed, 0x27, 0xc5, 0x67, 0x2d, 0xd3, 0x99, 0x7d, -0xe8, 0x94, 0x80, 0xfe, 0xae, 0x72, 0x10, 0x9c, 0xcf, 0xa0, 0x16, 0x95, 0x30, 0x6b, 0xac, 0xdc, -0x26, 0x6f, 0x37, 0x35, 0x81, 0x56, 0xa9, 0xf1, 0xfe, 0x84, 0x1a, 0xf7, 0xc9, 0x16, 0x24, 0x82, -0x13, 0xb0, 0x2e, 0x45, 0x75, 0x00, 0x3b, 0x90, 0xe6, 0x37, 0x05, 0xe6, 0x31, 0x4d, 0xb5, 0xa8, -0x75, 0xc2, 0x7e, 0x1a, 0x5b, 0x0a, 0x4e, 0xd3, 0x5c, 0x7d, 0x41, 0xf0, 0x0a, 0x1b, 0x71, 0x8a, -0x8a, 0x3f, 0x96, 0xae, 0x22, 0x56, 0x33, 0x90, 0x33, 0x7c, 0xc7, 0x47, 0x52, 0x6d, 0xc1, 0x89, -0x55, 0xc8, 0x0b, 0x0b, 0xee, 0x8f, 0x12, 0x7d, 0xd2, 0x68, 0x1f, 0x9a, 0xb0, 0x33, 0x5a, 0x7f, -0x82, 0xe4, 0x5e, 0x1b, 0xb0, 0x7b, 0xb7, 0x50, 0x16, 0xf2, 0xf6, 0x7f, 0xd0, 0xc5, 0xac, 0x78, -0xe4, 0x80, 0xda, 0x76, 0xab, 0x12, 0x12, 0xda, 0x88, 0xa5, 0x1f, 0xde, 0x6c, 0x84, 0xa1, 0xed, -0xa0, 0xbd, 0xdb, 0x29, 0x5b, 0x94, 0x0d, 0xaa, 0x11, 0x96, 0x45, 0x7e, 0xa3, 0x29, 0x07, 0xd2, -0x19, 0x5e, 0xd7, 0xd1, 0x97, 0xbb, 0x4b, 0x20, 0x3d, 0x94, 0x62, 0x8c, 0xd4, 0x50, 0x8b, 0xca, -0x67, 0xb2, 0xbf, 0x60, 0x98, 0xf9, 0x58, 0xa7, 0x93, 0xce, 0x33, 0x9b, 0xd6, 0x31, 0x8b, 0x54, -0x09, 0x98, 0x09, 0xde, 0xd4, 0xbb, 0xc1, 0x9f, 0xe6, 0xd9, 0x06, 0x45, 0xb1, 0x7d, 0x2a, 0x0a, -0x66, 0x40, 0xa6, 0x07, 0x8b, 0x42, 0x0f, 0xfd, 0x8a, 0x65, 0x31, 0xe5, 0xa4, 0x66, 0xaa, 0xa9, -0x51, 0x99, 0xad, 0x20, 0x5b, 0x75, 0x8d, 0xb1, 0x53, 0x9d, 0x70, 0xd9, 0xb3, 0x83, 0x59, 0x32, -0xf9, 0x24, 0x3e, 0x7f, 0x6d, 0x25, 0xca, 0x1b, 0x3d, 0x69, 0x0b, 0xc7, 0x10, 0x9f, 0xf9, 0x81, -0x3c, 0x65, 0x35, 0x24, 0x47, 0x59, 0x0d, 0xc1, 0x58, 0x94, 0x0b, 0xed, 0x4c, 0x61, 0xfb, 0x5b, -0xd2, 0x6d, 0xc9, 0x4a, 0x18, 0x3b, 0xbf, 0x4c, 0x16, 0xc2, 0x5b, 0x81, 0x9d, 0x0e, 0xd5, 0xd9, -0x6e, 0x8a, 0xad, 0x61, 0x50, 0x19, 0x6c, 0xbf, 0x10, 0x9d, 0x5b, 0xaf, 0x28, 0xfe, 0x28, 0x89, -0xe6, 0x0d, 0x33, 0x5f, 0x18, 0xa8, 0xcd, 0x2d, 0xf9, 0xe8, 0x8e, 0x3d, 0x2f, 0x0e, 0xd4, 0x9b, -0x36, 0x74, 0x87, 0xae, 0x0e, 0x44, 0xd8, 0x49, 0x24, 0xfb, 0xe0, 0x6a, 0x6c, 0x9b, 0x0a, 0x8c, -0x59, 0xb9, 0xa1, 0x7b, 0x4c, 0x58, 0x25, 0x86, 0x35, 0x5e, 0x17, 0xb3, 0xd1, 0x13, 0x0d, 0x64, -0x25, 0x40, 0x98, 0x43, 0xb7, 0x91, 0x8c, 0xce, 0x09, 0x61, 0x4b, 0xe6, 0xe7, 0x78, 0x20, 0x3b, -0xf1, 0x7c, 0x65, 0x8c, 0x02, 0x65, 0xcc, 0xc6, 0x71, 0x9c, 0x1a, 0xe4, 0xd8, 0x7a, 0xc5, 0xb5, -0x51, 0x9a, 0x93, 0x77, 0x0a, 0x04, 0x25, 0xd4, 0x5c, 0x29, 0x46, 0x7e, 0x3c, 0xae, 0x45, 0x30, -0xdf, 0xb1, 0x9f, 0xf6, 0x17, 0x18, 0xf4, 0xad, 0x37, 0xef, 0x8a, 0xf8, 0x35, 0x06, 0x33, 0x38, -0xc4, 0xb4, 0xd6, 0x4c, 0x74, 0x27, 0x1b, 0xcc, 0x77, 0x1c, 0xd8, 0xb4, 0x0d, 0xfd, 0xc8, 0x41, -0x64, 0xeb, 0xdc, 0x6c, 0x3f, 0xd1, 0x06, 0xda, 0xc1, 0x6f, 0xb5, 0xc1, 0x53, 0x26, 0x1b, 0x6c, -0x43, 0xea, 0xdf, 0x81, 0x3c, 0x61, 0x57, 0xf1, 0x05, 0x98, 0x3f, 0xfb, 0x02, 0x74, 0x38, 0x6b, -0xfe, 0xe3, 0x80, 0x7f, 0x18, 0x5b, 0xf1, 0x69, 0x61, 0x36, 0xc2, 0x4a, 0x56, 0x93, 0x33, 0x8f, -0x44, 0x7c, 0x3f, 0xca, 0x9c, 0x4f, 0xab, 0x56, 0xfe, 0x8b, 0x08, 0x47, 0xaf, 0x51, 0x3f, 0x13, -0x63, 0xda, 0x3b, 0xe0, 0x66, 0xcf, 0xc2, 0x00, 0xeb, 0x3b, 0x7e, 0x9d, 0x98, 0x5e, 0xd5, 0xcd, -0x5c, 0xe7, 0xc5, 0xe4, 0xf2, 0x0b, 0xb0, 0xc0, 0x54, 0x11, 0xe4, 0xc4, 0x02, 0xe1, 0x7e, 0xfd, -0x1e, 0x70, 0xdc, 0x42, 0x96, 0xfc, 0x39, 0x3a, 0xb3, 0x88, 0x2e, 0x07, 0xa8, 0x99, 0x3f, 0x09, -0xfd, 0x9a, 0xca, 0x6e, 0x43, 0x77, 0x90, 0xa3, 0x3c, 0x85, 0xb0, 0x93, 0x4e, 0x09, 0xb5, 0x7a, -0xbe, 0xef, 0xd7, 0xf8, 0xc2, 0x2f, 0x0c, 0xf8, 0x2f, 0x9b, 0x2a, 0x42, 0xdc, 0x11, 0xd4, 0x58, -0x0b, 0xee, 0xd8, 0xd4, 0xf5, 0x10, 0xa8, 0xaa, 0xff, 0xe3, 0x75, 0xff, 0x45, 0x4f, 0x24, 0x90, -0x8a, 0xbc, 0x0d, 0x54, 0x65, 0x21, 0x6e, 0x67, 0xb7, 0x1f, 0x54, 0x33, 0x9c, 0x2d, 0xb0, 0x1c, -0xa1, 0x59, 0x6e, 0xb8, 0x99, 0xd6, 0xf7, 0xe0, 0x89, 0x82, 0x3b, 0x8e, 0xcd, 0x9f, 0xde, 0xb5, -0x73, 0x8d, 0xff, 0x72, 0x08, 0x44, 0x43, 0xc1, 0xd7, 0x03, 0xd9, 0x3c, 0xed, 0xf5, 0x91, 0x8e, -0x75, 0xcd, 0xfc, 0xdc, 0xdd, 0x51, 0x70, 0xeb, 0x32, 0x28, 0x54, 0xa3, 0x76, 0x41, 0x96, 0x73, -0x5d, 0xd3, 0x51, 0xa2, 0xd8, 0x1d, 0xf1, 0xbf, 0x8d, 0x39, 0x16, 0xb4, 0x73, 0x7d, 0x2b, 0xfd, -0x59, 0xb6, 0x0e, 0xe2, 0xb2, 0x50, 0x88, 0xef, 0x53, 0xfd, 0xab, 0xa1, 0x8c, 0xbd, 0x75, 0xe0, -0x14, 0x4d, 0x21, 0xc9, 0x56, 0x2c, 0x87, 0xef, 0x39, 0x28, 0x87, 0xef, 0xa9, 0xc0, 0xf0, 0x54, -0x9b, 0x07, 0x7d, 0x1e, 0x70, 0xb6, 0xdf, 0x6a, 0x73, 0x41, 0xa1, 0x41, 0x8b, 0xf2, 0x1a, 0x6f, -0xe0, 0xcd, 0xb0, 0x33, 0xbc, 0x90, 0x37, 0x73, 0xb9, 0xb7, 0xb4, 0x72, 0x1f, 0xf6, 0x18, 0xf8, -0xaa, 0x08, 0xa6, 0xae, 0x46, 0x98, 0x57, 0xfa, 0x75, 0xb4, 0xa3, 0x47, 0x55, 0xb5, 0x30, 0x19, -0xe5, 0x9f, 0xae, 0x10, 0xbf, 0x73, 0x65, 0x20, 0x0b, 0xd3, 0x7b, 0x2d, 0xea, 0x82, 0x0e, 0xd4, -0xde, 0x70, 0x5c, 0xa3, 0x1b, 0x4f, 0xac, 0x2e, 0x5b, 0x19, 0xe4, 0x89, 0x7a, 0x76, 0xd6, 0xff, -0xbe, 0x85, 0xef, 0x60, 0xdc, 0x1a, 0xb3, 0xce, 0xec, 0xca, 0x84, 0xc7, 0x55, 0x77, 0xba, 0xa0, -0x0a, 0xb9, 0xae, 0xb7, 0xfa, 0x79, 0xf0, 0x16, 0x7e, 0x1f, 0xf1, 0x73, 0x53, 0xdf, 0xf3, 0x50, -0xd8, 0x94, 0xd9, 0x92, 0x7d, 0xac, 0x0b, 0xdb, 0xad, 0xec, 0xce, 0xa5, 0x6e, 0x0e, 0x7c, 0x18, -0xc3, 0x59, 0xb8, 0xc4, 0x0d, 0x62, 0xaa, 0xd3, 0x06, 0x3e, 0x51, 0xfb, 0xd3, 0xdf, 0xdf, 0xd9, -0x81, 0x08, 0xf6, 0x99, 0x1c, 0xff, 0xf4, 0x8a, 0x39, 0xd9, 0x9a, 0xf2, 0xf1, 0x0e, 0x84, 0xd7, -0x63, 0x4e, 0xfe, 0x88, 0xde, 0x44, 0x0d, 0x1e, 0xd7, 0x4a, 0x53, 0xd9, 0x1f, 0x5e, 0xfd, 0xc3, -0xeb, 0xb6, 0x59, 0x50, 0x63, 0xe6, 0xce, 0xec, 0x30, 0xb9, 0xfe, 0x70, 0x01, 0x66, 0xfc, 0xd3, -0x05, 0xf0, 0xd0, 0x3d, 0x25, 0x33, 0xff, 0xd2, 0x0e, 0xb6, 0x16, 0x98, 0x01, 0xd3, 0x6d, 0x0e, -0xc8, 0xcd, 0xc4, 0x3c, 0xad, 0x74, 0x87, 0x2a, 0xa6, 0xdb, 0xf8, 0x3c, 0x4c, 0xcf, 0xe8, 0xfa, -0x5a, 0x0b, 0x54, 0x01, 0xf7, 0xad, 0xd9, 0xc0, 0x63, 0xaa, 0x1a, 0x0f, 0x86, 0xf9, 0x4f, 0xe2, -0xd7, 0x5c, 0xaa, 0x87, 0x19, 0xaa, 0xba, 0xac, 0xc9, 0x1f, 0x3e, 0x67, 0xd6, 0x60, 0xda, 0xe9, -0x94, 0x4e, 0xe4, 0x4f, 0xae, 0x15, 0xd4, 0x28, 0xa5, 0x5e, 0xc1, 0x38, 0xd3, 0x29, 0x0e, 0xca, -0x0b, 0xa9, 0x26, 0x57, 0xd5, 0x1a, 0x6b, 0xca, 0xa1, 0x88, 0x41, 0x73, 0xa4, 0x8b, 0x68, 0x96, -0x56, 0xb1, 0xb1, 0xd5, 0xe6, 0x17, 0xdc, 0x5a, 0x85, 0x6d, 0xe5, 0x9f, 0xf4, 0xc2, 0x00, 0x72, -0x8f, 0x3c, 0xaa, 0x3b, 0x9d, 0x12, 0x19, 0x0c, 0x13, 0x95, 0xda, 0xef, 0x89, 0x69, 0xbe, 0xff, -0x31, 0x50, 0x07, 0x23, 0xc7, 0xcd, 0x36, 0xa8, 0x3e, 0x10, 0xf9, 0xf7, 0xfd, 0x01, 0x18, 0x39, -0xe2, 0xe9, 0xf4, 0xf3, 0x26, 0xd4, 0x7e, 0x9f, 0xe8, 0xb4, 0x26, 0x7f, 0xf4, 0x9c, 0xb9, 0xec, -0x9f, 0x5e, 0xb7, 0xc2, 0xf1, 0xf0, 0x2c, 0xa4, 0xf4, 0xff, 0x7c, 0xd5, 0x36, 0x9b, 0xd5, 0xa4, -0x86, 0x41, 0x93, 0x89, 0x39, 0x4d, 0xc7, 0x3c, 0xef, 0xe9, 0x83, 0x9f, 0x0c, 0x54, 0xaf, 0x21, -0x9e, 0xd5, 0xa2, 0xf3, 0xad, 0xf8, 0xe3, 0x21, 0x4b, 0xe9, 0x7f, 0xbe, 0xf2, 0xc2, 0xef, 0x6b, -0x4f, 0x08, 0x74, 0xd7, 0x24, 0x42, 0x49, 0xf9, 0x0c, 0xad, 0xec, 0xe0, 0xf6, 0x3c, 0x0f, 0x79, -0xf1, 0x96, 0xcc, 0x40, 0x6e, 0xd3, 0xdf, 0xc1, 0xb3, 0xb0, 0x64, 0xb9, 0xc5, 0x6a, 0x01, 0xb6, -0x21, 0x9c, 0x33, 0x08, 0x73, 0xef, 0xac, 0xa1, 0x13, 0xc9, 0x7f, 0x78, 0xdd, 0x7c, 0xff, 0xed, -0x2b, 0xfa, 0xc0, 0x7c, 0x7f, 0x51, 0xea, 0xed, 0x2b, 0xfb, 0x38, 0xcb, 0xfd, 0xe6, 0x99, 0x3f, -0xf9, 0xbd, 0x55, 0x77, 0x6a, 0xe5, 0x77, 0x56, 0xf6, 0xf1, 0x22, 0x8c, 0x18, 0x3d, 0x9d, 0x81, -0x74, 0x0b, 0x42, 0x7f, 0x30, 0xf2, 0xef, 0xbf, 0x0b, 0x24, 0xe7, 0xde, 0x42, 0xed, 0x2c, 0xa8, -0xdb, 0xc0, 0xc2, 0x9d, 0x79, 0xf6, 0xed, 0x15, 0x42, 0xe9, 0xe1, 0xdf, 0x15, 0x5f, 0x6c, 0x07, -0xd6, 0x9f, 0x18, 0xae, 0xa9, 0x3f, 0xd1, 0x7d, 0x95, 0x04, 0x93, 0x45, 0x83, 0x18, 0x7d, 0xd4, -0x9a, 0x74, 0x08, 0x31, 0x8a, 0xd2, 0x66, 0x86, 0x35, 0xa9, 0x6a, 0x25, 0xc3, 0xe3, 0x0a, 0x51, -0x63, 0x4e, 0x25, 0x8a, 0xf2, 0x44, 0xfc, 0x3f, 0x1f, 0x8a, 0x0e, 0x45, 0xdf, 0xda, 0xc8, 0x7a, -0x5b, 0x17, 0xe3, 0x43, 0x52, 0xc2, 0x7d, 0x43, 0x41, 0xb6, 0x7b, 0x68, 0x48, 0xb9, 0x1f, 0x78, -0x3e, 0x8d, 0x68, 0x86, 0xaa, 0xaa, 0x55, 0x64, 0xfd, 0xfc, 0xfb, 0xe1, 0xc1, 0x55, 0x74, 0xfe, -0x52, 0x78, 0x08, 0x74, 0x55, 0xdd, 0x18, 0xa2, 0x37, 0xc0, 0xa6, 0xe7, 0x41, 0x3c, 0xd2, 0x8d, -0x54, 0xed, 0xa2, 0xdd, 0x6c, 0x23, 0xd2, 0x60, 0x37, 0xc6, 0xb0, 0xdb, 0x68, 0x1c, 0xce, 0xc7, -0x5f, 0x2b, 0xb8, 0x51, 0x53, 0x25, 0x7f, 0x3e, 0x90, 0x6d, 0xb0, 0x02, 0x1c, 0xf5, 0x8a, 0xd0, -0x57, 0xc1, 0x7e, 0x2b, 0xc1, 0xd1, 0xca, 0x99, 0x79, 0x36, 0x47, 0xb3, 0xa3, 0xaa, 0x0b, 0x29, -0xb0, 0xc2, 0x8c, 0xba, 0xd1, 0x87, 0x3d, 0x55, 0x51, 0x9b, 0x13, 0x2a, 0x97, 0x73, 0xd8, 0x2a, -0x05, 0x55, 0x2b, 0x11, 0x1b, 0xf9, 0x6f, 0x77, 0xda, 0x4a, 0xa1, 0xba, 0x35, 0x75, 0x57, 0xb8, -0x7e, 0x52, 0x3b, 0x8a, 0x4b, 0xc0, 0xbd, 0xb7, 0xa3, 0x15, 0xd2, 0xa7, 0x50, 0xdd, 0x2b, 0x57, -0x7c, 0xd4, 0x33, 0xd4, 0x75, 0x24, 0xda, 0xae, 0x1f, 0xec, 0xaa, 0x5e, 0x85, 0x12, 0x48, 0xc5, -0xfe, 0xc8, 0x50, 0xd4, 0xec, 0xfc, 0xe3, 0xbe, 0x3f, 0x5e, 0x80, 0xa2, 0xcc, 0xf4, 0x2c, 0x2b, -0x70, 0xf9, 0x56, 0xe0, 0x65, 0xfb, 0xbb, 0xe7, 0x9e, 0xd9, 0xb0, 0x82, 0x78, 0x01, 0x48, 0x7e, -0xed, 0x2d, 0x4e, 0xe0, 0xe8, 0xfe, 0x0d, 0xad, 0x9a, 0x6c, 0xbb, 0xf3, 0x65, 0xf2, 0xfe, 0xbd, -0x65, 0x37, 0x1f, 0x58, 0x11, 0x10, 0xfa, 0xc2, 0x0b, 0x53, 0x51, 0xe3, 0xa1, 0x92, 0x9e, 0x3d, -0xb2, 0xa2, 0x32, 0xec, 0x5b, 0x65, 0x99, 0xf0, 0xe1, 0xb3, 0x55, 0x2b, 0x0e, 0x46, 0x86, 0x56, -0x9c, 0x7d, 0x66, 0x43, 0x57, 0x7b, 0x6a, 0x5f, 0xb8, 0xde, 0x10, 0x8b, 0x61, 0x29, 0x65, 0x50, -0xf1, 0x66, 0x47, 0xe5, 0x5a, 0x8b, 0xee, 0xa3, 0x1d, 0xc7, 0x1e, 0x3d, 0xd2, 0x25, 0xc3, 0x83, -0x94, 0x58, 0x79, 0x20, 0x72, 0xac, 0xcb, 0xec, 0xfa, 0xe3, 0x7e, 0x84, 0xc7, 0x91, 0x95, 0x9e, -0x89, 0xf0, 0x14, 0x34, 0x22, 0x3c, 0x0c, 0x0a, 0xca, 0x4b, 0x86, 0x4c, 0x9b, 0xc4, 0x2c, 0xcc, -0x6f, 0xb5, 0x38, 0xb0, 0x37, 0x63, 0x2f, 0x6f, 0xbf, 0xf9, 0x60, 0x57, 0x7f, 0x78, 0xa1, 0x31, -0x56, 0xdf, 0x23, 0x5d, 0x95, 0xe1, 0xfe, 0x70, 0xad, 0xda, 0xb7, 0x4a, 0xd4, 0xcb, 0xa5, 0x51, -0x58, 0x50, 0x3f, 0xf8, 0x28, 0x96, 0x32, 0x81, 0x30, 0x88, 0xe5, 0xac, 0xa5, 0xfa, 0x99, 0xdd, -0x3f, 0xb9, 0x00, 0xae, 0x7f, 0xdf, 0x8f, 0x72, 0xc7, 0x15, 0x8b, 0xeb, 0xa7, 0x87, 0x7e, 0x7b, -0x01, 0xdc, 0x0b, 0x33, 0x98, 0xb6, 0xa3, 0xbf, 0x9b, 0x64, 0xed, 0x52, 0xc8, 0x5c, 0xf6, 0x75, -0xe3, 0x0a, 0xac, 0xfb, 0x56, 0x73, 0x19, 0xf6, 0x0f, 0x13, 0x8e, 0xd5, 0xf9, 0x3f, 0xf9, 0x7d, -0xf9, 0xa5, 0x45, 0xb0, 0xeb, 0xd1, 0x85, 0xe9, 0x5b, 0x1e, 0x5d, 0x06, 0xb7, 0xec, 0xaa, 0xe1, -0x6a, 0x38, 0xdf, 0x8a, 0xfe, 0x47, 0xfd, 0x97, 0xc4, 0x45, 0x66, 0xaf, 0xc5, 0x2d, 0x2e, 0xff, -0xed, 0x2b, 0x0b, 0x9d, 0xd6, 0x16, 0xa8, 0xfe, 0xd9, 0xef, 0x67, 0x5f, 0x5e, 0x04, 0x3f, 0x7d, -0x05, 0xe3, 0x9e, 0x61, 0x71, 0x77, 0x8f, 0xc6, 0x3d, 0xfc, 0xfb, 0x5d, 0x9d, 0x0b, 0x8f, 0x6c, -0xe9, 0x34, 0xbb, 0xb1, 0x37, 0x15, 0x58, 0x54, 0xb7, 0xff, 0x2f, 0xe0, 0xaa, 0x56, 0xf8, 0xd6, -0xfa, 0x2f, 0x1f, 0x7e, 0x05, 0xe1, 0xda, 0x2f, 0xee, 0x36, 0x97, 0xc4, 0x4b, 0xea, 0x19, 0x5f, -0xd2, 0xe1, 0xdf, 0x8b, 0x6f, 0xdf, 0xd1, 0x48, 0xe3, 0x04, 0xfe, 0xf2, 0xc0, 0xe3, 0xaf, 0x0a, -0x54, 0x0f, 0x44, 0xe7, 0x3e, 0x3a, 0x77, 0xad, 0x30, 0x9b, 0xe6, 0x2a, 0xeb, 0x4f, 0x90, 0x35, -0x29, 0x18, 0x94, 0x63, 0xf5, 0x45, 0xc9, 0xc6, 0x24, 0xf6, 0xbc, 0x81, 0xe2, 0x8f, 0x59, 0x6c, -0x9e, 0xee, 0x9a, 0x84, 0x9d, 0x58, 0xba, 0xfb, 0xa7, 0xfb, 0xcd, 0x37, 0x59, 0x2b, 0x6e, 0x6f, -0xa2, 0x78, 0xf8, 0x8b, 0x5f, 0x30, 0x8f, 0x8a, 0xaf, 0x37, 0xc5, 0x72, 0x5c, 0xc6, 0xf7, 0x47, -0xeb, 0x8f, 0xb3, 0xdc, 0xa2, 0x82, 0xeb, 0xeb, 0x74, 0x62, 0x5b, 0xdd, 0x8f, 0xf9, 0x15, 0x7f, -0x02, 0x6a, 0xb1, 0x19, 0x7f, 0x93, 0xcc, 0xae, 0xaf, 0x37, 0x42, 0x12, 0x24, 0x89, 0x22, 0xb6, -0x8d, 0xc6, 0x9f, 0x19, 0xc3, 0x32, 0x8e, 0x1e, 0xba, 0x63, 0x2b, 0x58, 0x8b, 0x1e, 0xc2, 0x3e, -0x6b, 0x61, 0x38, 0x5d, 0x08, 0x99, 0xad, 0x5f, 0x17, 0x8d, 0x48, 0x4b, 0x1a, 0x7f, 0x06, 0xd1, -0x8a, 0x39, 0x89, 0xe2, 0xca, 0x34, 0x35, 0xd4, 0x25, 0xc2, 0xb5, 0x46, 0xfc, 0x96, 0x14, 0xd0, -0xb4, 0xa6, 0x18, 0xa3, 0x62, 0x36, 0x4b, 0xf3, 0x63, 0xc8, 0x6c, 0xff, 0xba, 0xb1, 0x4b, 0x4c, -0x7d, 0xf1, 0x02, 0x58, 0xeb, 0xb4, 0x2f, 0x5c, 0x00, 0x7b, 0x3d, 0x5c, 0xcb, 0x32, 0xc2, 0x99, -0xd5, 0x9b, 0xf7, 0x7d, 0xb0, 0x7a, 0x43, 0xb4, 0x95, 0x7b, 0x0f, 0x7b, 0x43, 0xf9, 0x87, 0xc0, -0x99, 0xd6, 0x96, 0x9f, 0x05, 0xee, 0xee, 0x0a, 0xd0, 0xe1, 0x78, 0x6d, 0xdd, 0xba, 0x6a, 0x5e, -0x27, 0x4a, 0x6e, 0x6a, 0xba, 0x87, 0x62, 0x6b, 0xb7, 0x7c, 0x92, 0x0d, 0xfd, 0xfa, 0xfd, 0x11, -0x94, 0x30, 0x0a, 0x48, 0x9a, 0x54, 0xfa, 0xb3, 0x95, 0x9d, 0xd4, 0xa3, 0x73, 0x37, 0x46, 0xec, -0xcf, 0x66, 0x93, 0x72, 0x8a, 0x02, 0x7b, 0x56, 0x7e, 0x90, 0xfb, 0x90, 0xdd, 0x68, 0x1e, 0x62, -0xf7, 0x99, 0x6f, 0x44, 0x6d, 0x4a, 0xac, 0x43, 0x0d, 0x22, 0x7f, 0xd9, 0x84, 0xfe, 0x70, 0x93, -0xf6, 0xbd, 0x55, 0xd1, 0xac, 0xaa, 0xce, 0xca, 0xf0, 0xfd, 0x61, 0x0b, 0x77, 0xe2, 0x59, 0x4f, -0x52, 0x93, 0x16, 0xfb, 0x5b, 0x92, 0x2f, 0x2a, 0xa6, 0xeb, 0x92, 0xa4, 0xf0, 0xc2, 0x42, 0x99, -0x66, 0xed, 0x1d, 0x1c, 0xb7, 0xf1, 0x77, 0x22, 0xef, 0xeb, 0xee, 0x0b, 0xb7, 0xc4, 0xd3, 0x6c, -0xe8, 0xa2, 0x34, 0x07, 0x27, 0x64, 0xfc, 0xce, 0xb7, 0x4a, 0x96, 0x07, 0x02, 0xea, 0x3d, 0xab, -0x70, 0xdc, 0x8e, 0x06, 0xf8, 0xaa, 0x28, 0xd2, 0x9b, 0x96, 0xf6, 0xe2, 0xf5, 0x85, 0x9b, 0x31, -0xb4, 0x79, 0x2d, 0xbb, 0x99, 0x7c, 0x33, 0x7e, 0x97, 0x77, 0xd6, 0xb0, 0xb3, 0x85, 0x33, 0xc8, -0x5a, 0x42, 0x11, 0x42, 0xe9, 0x4e, 0xb7, 0xa0, 0xc4, 0x47, 0xb7, 0x87, 0x6b, 0xde, 0xa3, 0x99, -0x06, 0x0b, 0x4c, 0x10, 0x1c, 0xe5, 0x17, 0x33, 0x39, 0xb6, 0x5e, 0xc4, 0xd3, 0x9a, 0x24, 0x7e, -0xd3, 0x2a, 0xdf, 0x26, 0xb2, 0xdb, 0xbc, 0x39, 0x3a, 0xd1, 0x3e, 0xf3, 0xd2, 0x31, 0x10, 0x52, -0x12, 0xef, 0x8c, 0x34, 0x91, 0xd4, 0xd9, 0xd0, 0xee, 0x3d, 0xf6, 0x3c, 0x58, 0x6d, 0x1a, 0x76, -0x0f, 0x32, 0xdd, 0x53, 0x7e, 0x3a, 0x79, 0xba, 0x7c, 0x87, 0xbc, 0x50, 0xe6, 0x5e, 0xc4, 0x1b, -0x28, 0xe4, 0xa6, 0x34, 0xab, 0x03, 0xf9, 0xa3, 0xdb, 0x50, 0x22, 0xa4, 0xd0, 0x6d, 0xc5, 0x24, -0x1f, 0xfe, 0x66, 0xc0, 0x8f, 0x03, 0x32, 0xb5, 0x26, 0x48, 0x26, 0xa7, 0x6f, 0x8d, 0x52, 0xbe, -0xbd, 0xf8, 0x2f, 0x7d, 0x60, 0xd1, 0xbe, 0xbd, 0x66, 0xec, 0xdd, 0xc4, 0x74, 0x3b, 0x32, 0x8c, -0x60, 0x29, 0x49, 0xa3, 0xa5, 0xb0, 0xf3, 0x19, 0x7c, 0x2b, 0xb0, 0x3b, 0xc8, 0xbf, 0xc5, 0x6e, -0x1f, 0xff, 0x8e, 0x50, 0xec, 0x5e, 0x04, 0x9c, 0xe0, 0xa0, 0xdf, 0xd8, 0x6e, 0x66, 0xcb, 0x98, -0xbb, 0x7b, 0xad, 0xf2, 0xad, 0x6d, 0x3b, 0xaf, 0xcf, 0xcb, 0x43, 0x77, 0x8a, 0xa4, 0xd1, 0x6e, -0xcc, 0xd8, 0xfd, 0x8a, 0x6c, 0xa5, 0x21, 0xd3, 0x96, 0x24, 0xdf, 0xb6, 0x4e, 0xf7, 0xfb, 0xda, -0x52, 0x6d, 0x2a, 0x6f, 0xff, 0xb5, 0x11, 0xb2, 0xa5, 0xa5, 0x40, 0x3c, 0xb7, 0xfc, 0x52, 0x01, -0x60, 0x5a, 0x75, 0x60, 0x92, 0x68, 0xca, 0x4c, 0xcf, 0x40, 0x6e, 0x94, 0x66, 0xa5, 0xbe, 0xa1, -0xef, 0xba, 0xa5, 0x04, 0xb8, 0x5b, 0x8a, 0xd1, 0xdd, 0xed, 0x0b, 0x8b, 0x6a, 0xc1, 0x19, 0x84, -0xdf, 0x0c, 0xd4, 0x1e, 0x17, 0x8d, 0x54, 0x47, 0x77, 0xb0, 0x0f, 0x62, 0xb7, 0x4e, 0x92, 0x5e, -0x7c, 0xad, 0x87, 0xd9, 0xe7, 0x52, 0x34, 0xd0, 0xfd, 0x61, 0xba, 0x35, 0x5e, 0x58, 0x47, 0xf7, -0x41, 0x0b, 0xd1, 0xf8, 0x5d, 0xd2, 0x1d, 0xde, 0xa5, 0x70, 0xfa, 0xc9, 0x74, 0x38, 0xfd, 0xd3, -0x8b, 0xf8, 0x9c, 0xc5, 0xe7, 0x3c, 0x9c, 0xee, 0xc7, 0xe7, 0x85, 0x02, 0x38, 0xfd, 0xeb, 0x6a, -0x38, 0xfd, 0x0b, 0x2b, 0x9c, 0xde, 0xe9, 0x80, 0xd3, 0xff, 0xdc, 0x8a, 0x61, 0x1b, 0xe0, 0xf4, -0xbf, 0x2c, 0xc7, 0xf7, 0x25, 0x38, 0xfd, 0x1b, 0x0c, 0xff, 0x8d, 0x0b, 0x4e, 0x6f, 0xc7, 0x6f, -0xff, 0x7a, 0x0a, 0xdd, 0xdd, 0x18, 0x77, 0x07, 0xc6, 0xed, 0x43, 0xff, 0x09, 0x38, 0xfd, 0x74, -0x18, 0xe3, 0x55, 0xc0, 0xe9, 0xdd, 0xf3, 0xf1, 0x79, 0x0a, 0x4e, 0xbf, 0x88, 0xf9, 0xfd, 0xeb, -0x59, 0x89, 0x0e, 0x7a, 0xfc, 0x77, 0xff, 0x8c, 0x73, 0x4b, 0x7d, 0x85, 0xc2, 0x8f, 0x5a, 0x42, -0x0f, 0xd5, 0xd6, 0x37, 0x2f, 0x5c, 0x94, 0xdb, 0xb8, 0xb8, 0x36, 0xf4, 0x60, 0xe8, 0xc7, 0x42, -0xfe, 0x3d, 0xb9, 0x79, 0x82, 0x39, 0x2f, 0x17, 0x5f, 0xf6, 0x69, 0x79, 0x53, 0x6e, 0x4a, 0x86, -0xeb, 0xe2, 0x00, 0x78, 0xae, 0xc2, 0xe9, 0x9f, 0x20, 0x3c, 0xfb, 0xae, 0x84, 0xa7, 0x4e, 0x44, -0x98, 0x7f, 0xf2, 0x28, 0x3e, 0x8b, 0xf1, 0x19, 0x88, 0x65, 0xcf, 0x59, 0xe0, 0xf4, 0xe3, 0x3b, -0x99, 0xf3, 0xf4, 0x93, 0xee, 0x07, 0x62, 0x59, 0x08, 0xee, 0x07, 0x9b, 0xeb, 0x1a, 0xeb, 0x43, -0x00, 0xdf, 0x0f, 0xd4, 0xb7, 0x36, 0xd7, 0xb7, 0xb7, 0x3e, 0x18, 0x0c, 0x2e, 0x5e, 0xd8, 0xd2, -0xfc, 0xbf, 0x04, 0xc5, 0x21, 0xf8, 0x5b, 0x96, 0x36, 0xd7, 0x15, 0x0a, 0x93, 0x97, 0x08, 0xc9, -0x50, 0x72, 0x9f, 0xb7, 0xd0, 0x86, 0x7f, 0xf7, 0x2d, 0x6d, 0x0d, 0x2e, 0x6d, 0x15, 0x1e, 0x58, -0xdc, 0x5c, 0xd7, 0xf2, 0x23, 0x5b, 0x49, 0xc5, 0x7d, 0x55, 0xa5, 0xb6, 0xe2, 0x39, 0xd5, 0xf7, -0xd9, 0x1e, 0x28, 0x2e, 0xaf, 0x06, 0x03, 0x08, 0x06, 0x28, 0xa9, 0x28, 0x87, 0xea, 0xfb, 0xee, -0xab, 0xa8, 0xf4, 0x95, 0x43, 0xee, 0xe2, 0x66, 0x7f, 0x0b, 0xd8, 0x0a, 0xe1, 0xfe, 0xa5, 0x2d, -0xad, 0xf5, 0xf1, 0xc2, 0xcd, 0xf6, 0xf6, 0xc9, 0xf6, 0x82, 0xf6, 0x29, 0xc9, 0x50, 0xd5, 0xfa, -0x60, 0xa8, 0x35, 0x1e, 0x5e, 0x28, 0x04, 0x5b, 0x43, 0xc2, 0x77, 0x85, 0xc9, 0xc1, 0x64, 0x60, -0x81, 0x2d, 0x2d, 0x0f, 0x5d, 0x17, 0xc5, 0x75, 0x5f, 0x95, 0xf3, 0xc1, 0x25, 0xf5, 0x2c, 0x9a, -0x55, 0xa8, 0xaa, 0x0f, 0x34, 0xd5, 0x37, 0xb7, 0x26, 0x26, 0xa2, 0x68, 0xf0, 0x80, 0xb3, 0xa4, -0xa5, 0xd9, 0xbf, 0x38, 0x60, 0x9e, 0x22, 0x34, 0xb7, 0xb4, 0x0a, 0x8b, 0x9b, 0x82, 0x8d, 0xf5, -0x14, 0xb1, 0xbe, 0x2e, 0x57, 0xa8, 0x9c, 0xf6, 0x5d, 0x2a, 0x5e, 0xa8, 0xcc, 0x63, 0x6f, 0x4c, -0x56, 0xec, 0x75, 0x95, 0xfa, 0xb0, 0x19, 0xaa, 0x5b, 0x5a, 0x1a, 0x97, 0xd8, 0xca, 0x09, 0xe8, -0x71, 0x61, 0xae, 0xc5, 0x4b, 0x1e, 0x62, 0xe1, 0x9e, 0xa9, 0x73, 0x8a, 0x4b, 0x85, 0xd2, 0xf6, -0xfa, 0x85, 0x4b, 0x5b, 0xeb, 0x61, 0x4e, 0xb0, 0xee, 0xc1, 0xc4, 0x8a, 0x19, 0x26, 0x2f, 0x31, -0x58, 0x85, 0x8a, 0xfb, 0x4a, 0x66, 0x31, 0xe8, 0xe2, 0xf5, 0x8c, 0xc7, 0xb0, 0x15, 0xd7, 0xd5, -0xb9, 0x17, 0xd7, 0xd5, 0xd5, 0x37, 0xbb, 0xea, 0xdb, 0x16, 0x2f, 0xac, 0x2f, 0x14, 0x66, 0x22, -0x78, 0xde, 0x39, 0x15, 0x15, 0x42, 0xb0, 0x65, 0x31, 0xc2, 0x17, 0x5a, 0x72, 0x57, 0x62, 0x74, -0x5f, 0x7d, 0x53, 0x4b, 0x5b, 0xfd, 0xdf, 0x4e, 0x91, 0xf8, 0xc7, 0xc1, 0xe9, 0x9f, 0x9d, 0x4f, -0x70, 0xe7, 0x29, 0x6e, 0x2b, 0x51, 0xdb, 0x38, 0xb7, 0xe2, 0x67, 0x33, 0x0d, 0x74, 0x6e, 0x22, -0xb5, 0xaa, 0x19, 0x04, 0x5b, 0x2a, 0x59, 0x4a, 0x92, 0x24, 0xf7, 0x8f, 0x91, 0x92, 0x88, 0x43, -0x49, 0x45, 0xf3, 0x89, 0x03, 0x04, 0x81, 0x6e, 0x7c, 0xc4, 0x3e, 0xce, 0x6e, 0xa7, 0x64, 0x0f, -0xc6, 0xf8, 0xe9, 0xce, 0xd1, 0x18, 0xb4, 0xe7, 0xc6, 0x87, 0x39, 0xf0, 0xb9, 0xd2, 0xe7, 0x90, -0x2a, 0xf2, 0x3f, 0x7b, 0x43, 0x48, 0xb5, 0xb2, 0x39, 0x1b, 0xc8, 0x33, 0x3a, 0xee, 0xa1, 0x1b, -0xc8, 0x32, 0x30, 0x8d, 0x54, 0xe4, 0x63, 0x69, 0x2a, 0x6a, 0x68, 0xa6, 0x45, 0x4c, 0xcc, 0xed, -0x27, 0xf3, 0x66, 0xa2, 0xde, 0xfc, 0x9d, 0xb3, 0x6c, 0x37, 0x38, 0xe9, 0xe2, 0xce, 0x04, 0x58, -0x3c, 0xde, 0xcd, 0xec, 0xde, 0xd6, 0xd1, 0xb2, 0xf7, 0x52, 0xec, 0xa2, 0xf9, 0x2c, 0x76, 0xb6, -0x27, 0xec, 0xaf, 0xb3, 0x25, 0x27, 0xc4, 0xcf, 0x93, 0xf7, 0x94, 0x33, 0xbb, 0x4f, 0x72, 0xee, -0xce, 0x58, 0xee, 0x09, 0xb1, 0x7c, 0xde, 0xcd, 0x09, 0x30, 0x55, 0x32, 0xab, 0x18, 0x7a, 0x3a, -0xa5, 0x0b, 0x69, 0x06, 0xcf, 0xe6, 0x81, 0xc1, 0xc8, 0xe8, 0x9d, 0x8b, 0x54, 0xca, 0x63, 0x07, -0xe9, 0x06, 0xc8, 0x0a, 0x90, 0xef, 0xc9, 0xa4, 0x79, 0x1c, 0x94, 0x51, 0x74, 0x74, 0xb7, 0xba, -0x82, 0x1d, 0x76, 0x73, 0xa6, 0xb3, 0x81, 0xcb, 0x28, 0x3e, 0x07, 0x6d, 0x93, 0xdd, 0xb0, 0xdc, -0xd9, 0x03, 0xcb, 0xd0, 0xbd, 0x0c, 0xdd, 0x6d, 0xf8, 0xee, 0xc2, 0xf7, 0x5a, 0x0c, 0xeb, 0x46, -0x37, 0xad, 0x35, 0x75, 0xc9, 0x96, 0x91, 0xe0, 0x09, 0x0c, 0xdb, 0x8a, 0xee, 0xad, 0xe8, 0xde, -0x84, 0xef, 0xa7, 0xf1, 0xbd, 0x03, 0xc3, 0xb6, 0xa1, 0x7b, 0x1b, 0xba, 0x9f, 0xc6, 0xb7, 0x3b, -0x7e, 0x4f, 0xe3, 0x11, 0xf4, 0xf5, 0x8f, 0xf1, 0x9d, 0x1d, 0xf5, 0xdd, 0x86, 0x5a, 0x32, 0x4c, -0xc3, 0xb4, 0x79, 0xb7, 0xb1, 0x5b, 0xdf, 0xf0, 0xeb, 0x74, 0xcc, 0x61, 0x06, 0x86, 0x14, 0xa2, -0xbb, 0x10, 0xdd, 0xd3, 0x95, 0x3b, 0xcf, 0x77, 0x06, 0x39, 0xf9, 0x26, 0x4f, 0x94, 0xc3, 0x8f, -0x61, 0x3b, 0xd1, 0x48, 0xe8, 0x98, 0x89, 0x79, 0x0b, 0xb3, 0x46, 0x6f, 0x1d, 0xa6, 0x59, 0xb3, -0x3d, 0x4f, 0x96, 0x9f, 0x03, 0x01, 0x65, 0x38, 0x4b, 0x70, 0x42, 0xec, 0xcb, 0xd5, 0xa3, 0x93, -0x1d, 0x5c, 0x16, 0x8e, 0x73, 0x93, 0x82, 0xea, 0x31, 0x61, 0x93, 0x02, 0x65, 0x41, 0xd5, 0x98, -0x10, 0x43, 0xc0, 0x18, 0x4c, 0x1a, 0x13, 0x62, 0xf2, 0xd3, 0x1d, 0x40, 0xdf, 0xa6, 0x10, 0x9b, -0x85, 0x33, 0x78, 0xfb, 0x47, 0x76, 0x56, 0xae, 0x8f, 0xfb, 0x27, 0xa1, 0xff, 0x17, 0x09, 0xfe, -0x2c, 0xf4, 0x6f, 0x62, 0x73, 0x2c, 0x3b, 0x6d, 0xc9, 0x82, 0xc3, 0x66, 0x26, 0xfb, 0x53, 0x28, -0x79, 0x3c, 0x85, 0x71, 0x3a, 0xc2, 0xa0, 0xfa, 0x08, 0xd2, 0x51, 0x3f, 0x3e, 0xbd, 0xb7, 0x15, -0x32, 0x99, 0xff, 0x12, 0x64, 0x93, 0xff, 0x27, 0x83, 0x48, 0xcf, 0xe8, 0x57, 0xf3, 0x60, 0x44, -0x8d, 0xd7, 0xcc, 0xbe, 0xfd, 0x05, 0x47, 0x64, 0xac, 0xfd, 0x9d, 0x2f, 0xcb, 0xf7, 0x9c, 0xe1, -0x53, 0x10, 0x4a, 0x3f, 0xb2, 0xde, 0xda, 0x80, 0xa5, 0x3e, 0x37, 0x92, 0x4a, 0xf3, 0xaf, 0xbe, -0x6a, 0xa4, 0x56, 0x8e, 0xcb, 0x10, 0x0b, 0xe3, 0x10, 0x98, 0xca, 0x87, 0x47, 0xf4, 0xde, 0x2d, -0x09, 0x10, 0x6f, 0x49, 0x80, 0x76, 0x4b, 0x02, 0xa4, 0x64, 0x91, 0x50, 0x10, 0xb5, 0x1e, 0xa4, -0x01, 0xd2, 0x08, 0x13, 0x30, 0xf9, 0xaa, 0xdd, 0xc2, 0x65, 0xb8, 0x07, 0x70, 0xac, 0xa2, 0x19, -0x24, 0xb3, 0x77, 0xa9, 0x52, 0x66, 0x3a, 0xbb, 0xa9, 0xcd, 0x2c, 0x82, 0x94, 0xcf, 0xce, 0x2a, -0x14, 0x9a, 0x51, 0x03, 0xb3, 0x6a, 0x8d, 0x13, 0x8d, 0x5e, 0x5b, 0x85, 0xb2, 0xab, 0x05, 0xb8, -0xb5, 0x24, 0x3d, 0x72, 0x2b, 0x3d, 0xdb, 0x01, 0xf3, 0xe5, 0x96, 0x07, 0xf3, 0x43, 0x9c, 0xbb, -0x38, 0x9e, 0x77, 0xb5, 0xd9, 0xc1, 0x64, 0x8e, 0x45, 0x53, 0x5c, 0xf2, 0x8c, 0xf3, 0x94, 0x32, -0xb0, 0x4e, 0x71, 0x42, 0x7a, 0x90, 0x9f, 0xe2, 0x00, 0xcc, 0x1b, 0x2e, 0x0b, 0x7a, 0x4d, 0xf8, -0x61, 0xe9, 0x07, 0x12, 0x9d, 0xd0, 0xac, 0x07, 0x38, 0x93, 0xb0, 0x8b, 0x30, 0x9b, 0x74, 0x28, -0x28, 0x83, 0x1a, 0xa8, 0x85, 0x46, 0x58, 0x06, 0xdd, 0xb0, 0x15, 0x9e, 0x86, 0x9d, 0x30, 0x00, -0x6f, 0xd0, 0x9d, 0x4e, 0x34, 0xc7, 0x18, 0xe4, 0xc5, 0x0c, 0xc5, 0xbd, 0x23, 0xa4, 0x16, 0xb3, -0x15, 0xf7, 0x53, 0x41, 0x6d, 0x64, 0x07, 0xcb, 0x7f, 0xab, 0x12, 0xb2, 0x2e, 0xa4, 0xef, 0x94, -0x43, 0xba, 0x58, 0x48, 0x47, 0x50, 0x10, 0x8f, 0x33, 0x57, 0x28, 0xe4, 0x10, 0x4f, 0x31, 0xd7, -0x22, 0x2c, 0x25, 0x0c, 0x16, 0x51, 0x64, 0xbe, 0x79, 0xd0, 0xc8, 0x01, 0xfa, 0xd8, 0xfd, 0x51, -0x81, 0x0a, 0x68, 0xe4, 0xc9, 0xe7, 0x62, 0xbe, 0x19, 0xd0, 0xa8, 0x26, 0xdf, 0x74, 0xe6, 0xb3, -0xd3, 0xbd, 0x3c, 0xe8, 0x33, 0x33, 0x9f, 0x01, 0x1a, 0xf5, 0xe4, 0xcb, 0xf2, 0xec, 0x00, 0x7b, -0x20, 0x7d, 0x0a, 0x49, 0xd5, 0x76, 0x51, 0xc7, 0xbe, 0x69, 0xa0, 0x51, 0xc0, 0x6f, 0xc5, 0x17, -0xc0, 0x88, 0x58, 0xce, 0xc2, 0xfe, 0x3b, 0x28, 0xd0, 0x1d, 0xa6, 0x30, 0x32, 0x3c, 0x65, 0x16, -0x64, 0x22, 0x8d, 0x9f, 0x4d, 0xa4, 0x71, 0xea, 0x99, 0x86, 0xf8, 0x1d, 0xd8, 0x52, 0x72, 0x62, -0xab, 0xd9, 0x92, 0x63, 0x7b, 0x5c, 0x9e, 0xee, 0x8a, 0xdd, 0x96, 0x45, 0x77, 0xaf, 0xce, 0x67, -0xfb, 0xb2, 0x69, 0x3f, 0xb6, 0x50, 0x68, 0xa6, 0x93, 0x32, 0x2d, 0xc8, 0x85, 0xd2, 0x03, 0x45, -0xa5, 0x1f, 0x61, 0xde, 0x9e, 0xd1, 0xbc, 0x51, 0x87, 0xdd, 0x24, 0xa6, 0x0a, 0x8b, 0xc0, 0x9c, -0xa6, 0x0f, 0xa8, 0x77, 0xa6, 0x07, 0x90, 0x82, 0x05, 0xbd, 0xff, 0x13, 0xa7, 0x93, 0xee, 0x9a, -0x4f, 0x88, 0xf9, 0x2a, 0x4a, 0x32, 0x4e, 0x3b, 0x8f, 0x39, 0xab, 0xe5, 0x53, 0x2b, 0x45, 0x28, -0x47, 0x1a, 0x39, 0xb3, 0xd6, 0x42, 0x94, 0x30, 0x0b, 0x84, 0xa0, 0x75, 0x6c, 0x9b, 0xb3, 0xfb, -0x62, 0x97, 0xa1, 0x2c, 0xae, 0xbb, 0xdb, 0x09, 0xfa, 0xbb, 0x5d, 0x90, 0x79, 0x77, 0x29, 0xa4, -0x97, 0x0f, 0x4b, 0xcd, 0xa2, 0x59, 0x70, 0xe8, 0x36, 0x84, 0xe1, 0xa9, 0x9b, 0xfd, 0x93, 0xc8, -0xde, 0x23, 0x9d, 0x1e, 0x67, 0xf6, 0xbc, 0x1d, 0x81, 0x64, 0xb2, 0x6f, 0xf8, 0x93, 0x93, 0xd8, -0x42, 0x6a, 0x4c, 0x65, 0x46, 0x0c, 0x09, 0x31, 0x0c, 0x21, 0x7e, 0x0e, 0x94, 0x13, 0x66, 0x2a, -0xc6, 0x60, 0x66, 0x93, 0x61, 0x56, 0x02, 0x66, 0x12, 0x6e, 0x0a, 0x17, 0x52, 0x10, 0xd6, 0x22, -0xf9, 0x06, 0x9e, 0x22, 0x46, 0xb5, 0x26, 0xa4, 0x5a, 0x93, 0xd7, 0xd3, 0x19, 0x40, 0xe9, 0x3e, -0x20, 0x06, 0xa7, 0x8f, 0x85, 0xd7, 0x48, 0xf0, 0x56, 0x4c, 0x46, 0x0a, 0x9d, 0x8c, 0x14, 0x3a, -0xb9, 0x04, 0x32, 0x51, 0x83, 0x48, 0x77, 0xa3, 0x06, 0x4f, 0xdc, 0x97, 0x6f, 0x2c, 0xff, 0x68, -0x5c, 0xd9, 0x1f, 0x41, 0x9b, 0xc1, 0x73, 0xe3, 0xb2, 0xe9, 0x74, 0xa0, 0xcc, 0x8d, 0xe7, 0x17, -0xc9, 0xd8, 0xb2, 0x17, 0x9a, 0xdd, 0x84, 0x2f, 0x93, 0xd7, 0x56, 0x0e, 0x99, 0x41, 0xcb, 0x0d, -0xca, 0xc6, 0x21, 0x11, 0x4b, 0x4d, 0xc5, 0x52, 0xd3, 0xd8, 0x2d, 0x8f, 0x72, 0x8f, 0x38, 0x43, -0xa7, 0xc8, 0xc9, 0xbe, 0x67, 0x42, 0x8f, 0x48, 0x87, 0x2c, 0xec, 0x13, 0xb9, 0x50, 0x04, 0x4e, -0xa8, 0x84, 0xb9, 0x50, 0x07, 0xeb, 0x9c, 0x0d, 0x30, 0x49, 0xd4, 0xb0, 0x71, 0x6c, 0xd2, 0x3d, -0x8b, 0x40, 0x03, 0x19, 0x62, 0x10, 0xc3, 0x04, 0x16, 0xa6, 0x06, 0x81, 0x85, 0x65, 0x8a, 0xf3, -0x31, 0xcc, 0xc0, 0xc2, 0x92, 0xc0, 0xc0, 0xc2, 0xb2, 0x44, 0x37, 0x86, 0x19, 0x59, 0x98, 0x06, -0x8c, 0x2c, 0x2c, 0x5b, 0xcc, 0xa7, 0xfc, 0x28, 0x3d, 0xc5, 0xa7, 0xef, 0x48, 0x21, 0xf2, 0xbc, -0x6c, 0x96, 0xa0, 0x37, 0xc8, 0xf7, 0x47, 0x64, 0x4c, 0x2e, 0xc6, 0xd4, 0xc9, 0x74, 0xe3, 0x6d, -0x80, 0xfc, 0x26, 0x6c, 0xad, 0x4c, 0xeb, 0x43, 0x89, 0xf4, 0x2c, 0x15, 0xcd, 0xfc, 0x68, 0x1c, -0x2d, 0x9f, 0x07, 0xf3, 0x18, 0xac, 0x25, 0xd0, 0x32, 0xc3, 0x97, 0x4e, 0xa6, 0x5b, 0xa7, 0xc3, -0xbb, 0x94, 0x1e, 0xa4, 0x5f, 0x83, 0x71, 0xa2, 0xa1, 0x19, 0xd6, 0x96, 0x7e, 0x02, 0x5d, 0xbf, -0x7e, 0x2d, 0x50, 0xf7, 0xc2, 0x87, 0x90, 0x19, 0x58, 0x60, 0x6c, 0xc6, 0x1e, 0xbc, 0xc9, 0xaf, -0xde, 0xfc, 0x9a, 0xc8, 0x1b, 0x3c, 0x14, 0xe6, 0x2f, 0x32, 0xde, 0xcf, 0xd6, 0x1c, 0x52, 0x3d, -0x9b, 0xe6, 0x32, 0x59, 0xdc, 0x90, 0xbc, 0x2f, 0x6c, 0x2c, 0xb6, 0x59, 0xc0, 0xca, 0x46, 0xd3, -0xf7, 0xa9, 0x1d, 0x27, 0x6a, 0xc8, 0x2f, 0xcf, 0x44, 0x7f, 0x9b, 0x2c, 0x22, 0x64, 0x32, 0x6d, -0x44, 0x6f, 0xb8, 0x5f, 0xb6, 0xfd, 0xe6, 0xd9, 0xe8, 0xdf, 0x29, 0x6a, 0x49, 0xff, 0x72, 0x21, -0x9d, 0x8f, 0x89, 0x8b, 0x25, 0xd2, 0x8d, 0x76, 0xc8, 0xe9, 0x4f, 0xca, 0xf0, 0x91, 0xec, 0x40, -0xeb, 0x3d, 0x9e, 0xe7, 0x21, 0xdd, 0xdf, 0x1c, 0xe4, 0x7a, 0x9f, 0x07, 0x7d, 0xbd, 0xdf, 0x96, -0xc2, 0x6e, 0x6f, 0xc5, 0x1e, 0xb9, 0xaf, 0xd7, 0x28, 0xdf, 0x04, 0x5d, 0x68, 0x4b, 0x61, 0x23, -0x3d, 0x9d, 0x53, 0x3c, 0xbd, 0x97, 0x57, 0xe4, 0x07, 0xa3, 0xe0, 0x70, 0x6e, 0x83, 0xcc, 0x90, -0xf6, 0xae, 0x62, 0xc8, 0xa6, 0xb5, 0x2f, 0xa4, 0x28, 0xc3, 0x28, 0x6e, 0x46, 0x36, 0xa1, 0xf6, -0x90, 0x45, 0x29, 0x59, 0x2a, 0x23, 0x9b, 0xa9, 0xa7, 0x5c, 0xdf, 0x66, 0x92, 0x83, 0x43, 0x1e, -0xe9, 0x13, 0xc7, 0xf9, 0x6b, 0x5e, 0x79, 0x9c, 0xa7, 0x1d, 0xeb, 0xb4, 0xff, 0x1c, 0x43, 0xf5, -0x88, 0xe3, 0x93, 0x4a, 0x68, 0x3c, 0x9e, 0x34, 0x28, 0x87, 0xd0, 0xbd, 0x1c, 0x4a, 0xc8, 0x2f, -0xaf, 0x0b, 0x89, 0x8e, 0xa6, 0x32, 0x8c, 0xe6, 0xf5, 0x54, 0xec, 0x66, 0xed, 0x7b, 0x67, 0xa0, -0x06, 0xed, 0xc0, 0x11, 0xd9, 0x25, 0x43, 0xf5, 0x1f, 0x2b, 0x4d, 0x0e, 0x92, 0x99, 0xc8, 0xa2, -0xb9, 0x32, 0x72, 0xe4, 0x89, 0x74, 0x07, 0x72, 0xb2, 0x0c, 0xff, 0xbe, 0x5e, 0x33, 0xc3, 0xc5, -0xb8, 0xef, 0x73, 0xd9, 0xbd, 0x33, 0x51, 0x1a, 0x9b, 0x50, 0x7b, 0x2b, 0xa2, 0x11, 0x70, 0xd6, -0xb0, 0x34, 0xc3, 0xfb, 0x98, 0x11, 0x12, 0xc2, 0x3e, 0xf3, 0x3e, 0x66, 0x91, 0xed, 0x56, 0xd2, -0xba, 0x5e, 0x38, 0x50, 0x89, 0x23, 0xb8, 0xcc, 0x15, 0xf6, 0xe2, 0xf8, 0x91, 0x8d, 0xbd, 0x59, -0x23, 0x38, 0x0d, 0xa8, 0x53, 0x86, 0x38, 0x83, 0xc3, 0x10, 0x11, 0x1a, 0x21, 0xdb, 0xe0, 0xbc, -0x6b, 0x31, 0xcd, 0x63, 0x90, 0x9b, 0xad, 0xbd, 0xa8, 0x85, 0xdb, 0x68, 0x76, 0x8f, 0xed, 0xd9, -0xc5, 0xb0, 0xbb, 0xc8, 0x46, 0x9d, 0x8e, 0x5c, 0xb4, 0x0f, 0x76, 0xd6, 0x05, 0xb0, 0xe7, 0xa8, -0x82, 0x1c, 0x59, 0xc4, 0x6c, 0x85, 0xd9, 0xc3, 0x23, 0x47, 0x90, 0x47, 0xe9, 0x75, 0x61, 0xe4, -0x51, 0xfa, 0x40, 0x32, 0x7b, 0xdf, 0xe2, 0xcf, 0x10, 0x35, 0xc4, 0xad, 0xc4, 0x54, 0x84, 0x42, -0xc3, 0xf8, 0xb8, 0xda, 0xb7, 0x9d, 0xd6, 0x03, 0x11, 0xce, 0x9b, 0xbc, 0x5b, 0x05, 0xb9, 0x7e, -0x07, 0x84, 0x1c, 0xc8, 0xfe, 0xa0, 0x3b, 0xb1, 0x7f, 0x4b, 0x85, 0x16, 0xb9, 0x7f, 0x4f, 0xc2, -0xfc, 0x8d, 0x88, 0xe3, 0x02, 0x19, 0x03, 0xd2, 0x53, 0x16, 0x0a, 0x75, 0x20, 0xff, 0x43, 0x5c, -0xd2, 0xde, 0x9b, 0x3d, 0x73, 0xbd, 0x5b, 0x73, 0x1c, 0xa0, 0x66, 0xf7, 0xd9, 0x9a, 0xdb, 0xad, -0xc7, 0xd6, 0x0b, 0x2e, 0xa1, 0xb3, 0x8d, 0x5b, 0x06, 0xb9, 0x45, 0x70, 0xfa, 0xdf, 0xec, 0x62, -0xf0, 0x3a, 0xa8, 0x16, 0x88, 0x1a, 0x0b, 0x41, 0x35, 0xd7, 0xb3, 0x42, 0x81, 0xaa, 0xc2, 0x8a, -0x7e, 0xa3, 0xea, 0x83, 0xd5, 0x9e, 0x15, 0x81, 0x74, 0x43, 0x52, 0xac, 0xac, 0x9c, 0xb0, 0x19, -0xfc, 0x74, 0x8b, 0xcf, 0xa0, 0xf3, 0xd7, 0x66, 0x1c, 0x23, 0x3e, 0xe8, 0xf6, 0xac, 0x0c, 0x64, -0xcd, 0xfe, 0x4c, 0x0b, 0x58, 0xbe, 0x86, 0xda, 0x68, 0xcf, 0xdc, 0xa9, 0xac, 0x6c, 0x16, 0xab, -0xc7, 0xf9, 0x6b, 0xad, 0xda, 0xd7, 0xc9, 0x6a, 0xa7, 0x36, 0xcc, 0xf4, 0x6e, 0x54, 0xea, 0x07, -0xd2, 0x72, 0xa4, 0xf7, 0xfc, 0xc0, 0x3c, 0xac, 0x47, 0xbe, 0x92, 0x77, 0x03, 0xd6, 0x2b, 0x53, -0x74, 0x0b, 0x19, 0x01, 0x1d, 0x49, 0x1c, 0x36, 0xa0, 0x9b, 0xcb, 0x2a, 0xd7, 0x0b, 0xb9, 0x64, -0x1f, 0x5e, 0x91, 0x3e, 0xc0, 0x50, 0xe2, 0xdd, 0x58, 0xb9, 0xde, 0x17, 0xad, 0x5c, 0x47, 0x18, -0xea, 0x8d, 0x36, 0x0f, 0x1a, 0x66, 0x7f, 0xd0, 0x3d, 0x2a, 0xc1, 0x3a, 0xb7, 0xb3, 0x53, 0x19, -0x46, 0xd1, 0x41, 0x63, 0x20, 0x72, 0x76, 0xc3, 0xe8, 0x98, 0xc7, 0xfa, 0x02, 0xca, 0xaf, 0xf2, -0x2e, 0xa0, 0x7d, 0x6f, 0x57, 0xae, 0x67, 0x5a, 0x35, 0xbb, 0x5f, 0xcd, 0x3a, 0xbb, 0x15, 0xe8, -0x5e, 0xb5, 0x7f, 0x73, 0xd2, 0xbd, 0x6a, 0xff, 0xa6, 0x15, 0x9f, 0xc2, 0x78, 0x29, 0x8c, 0x26, -0xb7, 0x2a, 0x77, 0xdc, 0xbe, 0x2a, 0x0e, 0xd2, 0x4d, 0xed, 0x74, 0xb2, 0xb4, 0x75, 0x44, 0xa1, -0xe4, 0x1d, 0xc6, 0x3b, 0x15, 0xd9, 0xb2, 0x4f, 0xa1, 0xe6, 0x0e, 0xa4, 0xe6, 0xb0, 0xad, 0x01, -0x25, 0x8b, 0x7c, 0x03, 0xe6, 0xf4, 0x84, 0x96, 0xee, 0x82, 0x54, 0x7d, 0xac, 0xd4, 0xf1, 0x24, -0xcd, 0xe7, 0x06, 0x80, 0xdf, 0x86, 0xb4, 0xd2, 0x9a, 0xa3, 0xc2, 0x16, 0x6b, 0x97, 0xef, 0xe1, -0xae, 0x59, 0x6f, 0x72, 0xcc, 0x5d, 0xe3, 0x74, 0x96, 0x0f, 0x5f, 0x1d, 0xa0, 0x56, 0xda, 0x66, -0xb7, 0xe2, 0xef, 0x6f, 0x8f, 0xcc, 0x1e, 0xbe, 0xfa, 0x73, 0x5b, 0x09, 0x14, 0x88, 0xcb, 0xb1, -0x0d, 0xc7, 0xb7, 0x5a, 0x83, 0xa8, 0x15, 0x5c, 0x8c, 0x9a, 0x44, 0xa4, 0xde, 0xf9, 0x0c, 0x6b, -0x38, 0x06, 0x9a, 0x88, 0xea, 0x27, 0x09, 0x2e, 0x94, 0x21, 0xd5, 0x64, 0x91, 0xcf, 0xcc, 0x6e, -0xb3, 0x0d, 0xe4, 0x61, 0x8d, 0x40, 0x28, 0xf3, 0x6e, 0x60, 0x37, 0x1d, 0x67, 0xc9, 0x6b, 0xb9, -0xdf, 0xde, 0x3f, 0xf3, 0x2f, 0x5a, 0x55, 0xee, 0xbf, 0x33, 0xec, 0x26, 0x79, 0xfb, 0xbf, 0xb8, -0x4c, 0xeb, 0xd3, 0x98, 0x8f, 0xda, 0xbb, 0x55, 0x71, 0xb1, 0x93, 0xc5, 0x0a, 0x7d, 0xf6, 0x7f, -0x31, 0x62, 0xc6, 0xd4, 0xd8, 0x7e, 0x21, 0xac, 0x6b, 0x81, 0x90, 0x12, 0x82, 0x71, 0x63, 0x35, -0xc0, 0x45, 0xe7, 0xad, 0xc4, 0x29, 0x9f, 0xc8, 0xb5, 0x01, 0xad, 0x11, 0x7e, 0xbb, 0x15, 0x65, -0x47, 0x1b, 0xe2, 0x24, 0xc5, 0xbb, 0x45, 0x09, 0x47, 0x17, 0xd6, 0x7f, 0x6d, 0x8e, 0x4a, 0x3e, -0x0b, 0x31, 0x7b, 0xf8, 0x8b, 0x43, 0xb9, 0xac, 0xb6, 0x56, 0xd6, 0x02, 0x58, 0x5f, 0x2b, 0xed, -0xb3, 0x13, 0xd2, 0xc7, 0xd5, 0x77, 0x39, 0xf6, 0x1d, 0x2b, 0xd6, 0xb6, 0x0d, 0x6b, 0x1b, 0x52, -0x6a, 0xbb, 0x55, 0xae, 0xad, 0xcd, 0x4a, 0xb7, 0x09, 0x8f, 0x88, 0x4a, 0x5d, 0x3d, 0xac, 0xae, -0x33, 0x95, 0xba, 0xda, 0x59, 0xb9, 0x76, 0x5b, 0x4a, 0x1c, 0x9e, 0xa4, 0xb1, 0xd0, 0x28, 0xd4, -0x85, 0xf5, 0x1f, 0xbe, 0x4c, 0xb2, 0xad, 0x8c, 0x01, 0xc2, 0x55, 0x1c, 0x07, 0x5b, 0x47, 0x71, -0x30, 0x3c, 0x6c, 0x8e, 0x51, 0xf1, 0x02, 0x71, 0x0c, 0x27, 0x82, 0xe3, 0x34, 0x23, 0x18, 0x70, -0x24, 0x72, 0x22, 0x8c, 0xbf, 0x4b, 0xe1, 0xd5, 0x5a, 0x94, 0xeb, 0x65, 0x4b, 0x96, 0x89, 0x5c, -0xa9, 0x7f, 0x78, 0xcb, 0xe8, 0x77, 0x1a, 0x07, 0x69, 0xb7, 0x02, 0xe5, 0x49, 0xb2, 0x3c, 0x7c, -0x03, 0x8a, 0xd8, 0x19, 0x5e, 0x07, 0xf3, 0xdd, 0x85, 0x9c, 0xb2, 0x05, 0xec, 0xe0, 0x66, 0x3e, -0x03, 0x54, 0xa0, 0x6c, 0x5f, 0xc9, 0xdc, 0x26, 0xa8, 0x46, 0x77, 0x8d, 0x22, 0xff, 0xcf, 0xc7, -0x58, 0xf9, 0x20, 0x32, 0xdf, 0x67, 0x50, 0x87, 0x54, 0xb7, 0x08, 0xbf, 0x36, 0x1a, 0x52, 0x5a, -0x8b, 0x86, 0xd6, 0x63, 0x5b, 0xfd, 0x22, 0x24, 0xed, 0x0c, 0x07, 0xac, 0x4a, 0xbd, 0x53, 0xbc, -0xfd, 0x7f, 0x1d, 0xa9, 0x5c, 0x8f, 0xbd, 0x43, 0x9f, 0x10, 0x72, 0x3e, 0xd6, 0x3f, 0x10, 0x3a, -0xb7, 0x77, 0x29, 0xd9, 0x94, 0x55, 0xa8, 0xf8, 0x38, 0x3b, 0x45, 0x3f, 0x24, 0x9e, 0xf0, 0xce, -0x91, 0x76, 0xd0, 0x09, 0x22, 0x93, 0xd6, 0x8c, 0xf2, 0x5b, 0xd0, 0x92, 0xe3, 0x90, 0xae, 0x58, -0x9b, 0x39, 0x53, 0x0e, 0x96, 0xbb, 0xc1, 0x26, 0x9d, 0x72, 0x3e, 0x2b, 0x9d, 0x65, 0xee, 0x69, -0xd2, 0xf9, 0x92, 0x8f, 0xa5, 0x2b, 0x39, 0xe5, 0xd2, 0x45, 0x0c, 0xbb, 0x84, 0xee, 0x53, 0x98, -0x4f, 0x85, 0xc9, 0x41, 0x3d, 0xac, 0xef, 0x55, 0x94, 0xd9, 0x4c, 0xd8, 0x62, 0x6c, 0x64, 0xeb, -0x3b, 0xc5, 0x64, 0xb8, 0x0c, 0xf2, 0xcb, 0xf3, 0x73, 0xfd, 0x5e, 0xc2, 0x4f, 0x2b, 0x27, 0x42, -0xd2, 0x32, 0x59, 0x53, 0x50, 0xbf, 0xa3, 0xcf, 0x01, 0x7b, 0x15, 0xe8, 0x10, 0xd6, 0x5a, 0x50, -0x0f, 0xc8, 0xbb, 0xb4, 0x12, 0x64, 0x9b, 0x64, 0xfc, 0xb7, 0x8e, 0x7b, 0x07, 0x92, 0x65, 0x7d, -0x3a, 0x71, 0xec, 0x08, 0x94, 0xc9, 0x3a, 0x34, 0xf0, 0xf2, 0x38, 0x6a, 0x75, 0xc8, 0xab, 0xdd, -0x01, 0x7b, 0x0c, 0x82, 0x3d, 0x73, 0x59, 0x3c, 0x61, 0x2a, 0xed, 0x24, 0xf1, 0x5e, 0xcf, 0x45, -0x08, 0x12, 0xb5, 0xb7, 0x15, 0x64, 0x5c, 0xe1, 0xc8, 0xd4, 0x7f, 0x65, 0x80, 0x49, 0x9f, 0xf2, -0x08, 0x1b, 0xe7, 0x2f, 0x44, 0xdd, 0x18, 0xd3, 0x60, 0x9c, 0x2a, 0x5d, 0xb1, 0xe4, 0x40, 0x9e, -0x9f, 0xb7, 0xa8, 0x46, 0xcb, 0xc8, 0xc5, 0xe6, 0x93, 0xf1, 0x79, 0x75, 0x0b, 0x8e, 0xe1, 0xfa, -0xca, 0xf5, 0xec, 0xde, 0xb9, 0x11, 0xd2, 0xc4, 0x18, 0x65, 0x7e, 0xd3, 0x96, 0x03, 0xd3, 0x31, -0xef, 0x7d, 0xf1, 0x5b, 0xc4, 0x4f, 0x32, 0x5a, 0x9c, 0x80, 0xbd, 0xb0, 0x5d, 0xa9, 0x0b, 0xdd, -0x3d, 0x63, 0x81, 0x9d, 0xd6, 0x1c, 0xf0, 0xf4, 0xae, 0x5c, 0xc8, 0x5b, 0x01, 0xb1, 0x7b, 0x35, -0x9e, 0xc3, 0xb7, 0x94, 0x1c, 0xc2, 0xb1, 0x1b, 0xb8, 0x0d, 0x60, 0xbc, 0xe9, 0x7b, 0x51, 0xa5, -0xd4, 0xc1, 0x60, 0xb8, 0x17, 0x63, 0xb7, 0xa8, 0xb1, 0xd5, 0xae, 0x06, 0x1f, 0x26, 0x77, 0x23, -0x73, 0xe7, 0x30, 0x1a, 0x92, 0x76, 0xe5, 0x94, 0x49, 0x7d, 0xcc, 0xfd, 0x99, 0xb4, 0x27, 0xa7, -0x49, 0xba, 0x2a, 0x0d, 0x04, 0x79, 0xfc, 0xbe, 0x3f, 0xc7, 0x25, 0x1d, 0xc0, 0x72, 0x0e, 0xe1, -0x33, 0xe8, 0xe9, 0xf2, 0x6b, 0x69, 0x3f, 0x3f, 0x85, 0x1b, 0x54, 0x4a, 0xce, 0x4f, 0xd8, 0x92, -0x67, 0x7f, 0x2c, 0xed, 0xb2, 0xa5, 0xb2, 0x39, 0x53, 0xec, 0x55, 0x57, 0xd2, 0xf3, 0x09, 0xc7, -0xe9, 0x7e, 0x3d, 0xd6, 0x3f, 0x95, 0xf5, 0xb3, 0x37, 0x58, 0x88, 0xcc, 0xe9, 0x75, 0xde, 0xfe, -0xcf, 0xfb, 0x50, 0x22, 0xa2, 0xfd, 0x06, 0x72, 0x2f, 0xec, 0x95, 0xbf, 0x92, 0xb6, 0xa0, 0x50, -0x24, 0xd6, 0xfa, 0xf3, 0x79, 0xa4, 0x1f, 0xf3, 0x43, 0xa8, 0x6d, 0xe4, 0xc9, 0x3b, 0x1d, 0xf8, -0x57, 0x3d, 0x7a, 0xfc, 0x1d, 0x50, 0xfa, 0x68, 0xff, 0xb0, 0xc8, 0xfa, 0x7b, 0x6a, 0x0c, 0xb3, -0x52, 0xae, 0x15, 0xc4, 0x45, 0xb2, 0x65, 0x07, 0xe2, 0xb1, 0xf3, 0xc2, 0x89, 0xfc, 0xca, 0xcc, -0xf8, 0x15, 0x1f, 0x75, 0xa6, 0x23, 0xa5, 0xc1, 0x6c, 0x99, 0x37, 0x6c, 0x65, 0x98, 0xbb, 0x17, -0x61, 0xda, 0x1a, 0x83, 0x6d, 0x38, 0xd9, 0x22, 0xef, 0x42, 0x1d, 0x9b, 0x2f, 0xdf, 0xa1, 0x50, -0x00, 0xc5, 0xb9, 0xbc, 0x17, 0xdb, 0x63, 0x25, 0xe6, 0x46, 0xf7, 0x93, 0xec, 0x34, 0x3f, 0x84, -0xed, 0xb1, 0x76, 0x21, 0x6f, 0x76, 0xdc, 0xa8, 0x3d, 0x2e, 0x5f, 0xfc, 0x2f, 0xb6, 0x47, 0xc5, -0xf8, 0xf6, 0x20, 0xdf, 0x53, 0x7a, 0x6c, 0x91, 0x32, 0xe9, 0x00, 0x73, 0xdf, 0x22, 0x1d, 0x1a, -0x6d, 0x05, 0x4c, 0x3b, 0xc8, 0x5a, 0x6c, 0x08, 0x5b, 0xec, 0x18, 0x42, 0x72, 0x1c, 0x9f, 0x13, -0x09, 0x2d, 0x36, 0x34, 0x9e, 0xd6, 0x2e, 0xcf, 0x8d, 0xd1, 0x1a, 0xe7, 0x60, 0xb5, 0x47, 0xaa, -0x45, 0x4e, 0x90, 0x4c, 0x3c, 0x3f, 0x90, 0x3f, 0x5a, 0x7b, 0xd4, 0xc3, 0xcd, 0x06, 0xfc, 0x36, -0xda, 0xde, 0xee, 0x26, 0x6c, 0x6f, 0xa0, 0x9b, 0x8b, 0x31, 0x17, 0x93, 0xdc, 0xda, 0xcb, 0x39, -0xba, 0x99, 0xc9, 0x39, 0x13, 0xdb, 0x90, 0xb5, 0x4f, 0xf9, 0xf0, 0x67, 0x47, 0x90, 0xd7, 0xca, -0xa3, 0x0b, 0xbb, 0xd5, 0xc0, 0x33, 0x13, 0xa9, 0xfa, 0x2c, 0x83, 0xa0, 0x94, 0x95, 0x85, 0xed, -0xf4, 0x9d, 0x22, 0x99, 0xb7, 0xc2, 0xe0, 0xe8, 0xdc, 0x01, 0xb3, 0xef, 0xef, 0x20, 0x9b, 0x8f, -0x7f, 0x3c, 0xf4, 0xc7, 0x43, 0x66, 0x36, 0x3e, 0x2e, 0xdf, 0xf5, 0xce, 0xa3, 0x6c, 0xac, 0x76, -0xd2, 0x8d, 0xb3, 0xa3, 0x63, 0xc0, 0x67, 0xb4, 0x3b, 0xbd, 0xd7, 0x80, 0xee, 0x98, 0xcc, 0x62, -0x8d, 0xd7, 0xc5, 0xe0, 0xf2, 0x6e, 0x54, 0xe6, 0xf1, 0xa6, 0x23, 0xad, 0x4d, 0xa0, 0x30, 0x9a, -0x0d, 0xc4, 0x14, 0x3b, 0x30, 0x65, 0x73, 0x3e, 0x1b, 0x4b, 0x0c, 0x53, 0xa5, 0x1d, 0x36, 0x8e, -0xee, 0x28, 0x65, 0xe9, 0x52, 0x49, 0xe6, 0x20, 0x4b, 0x38, 0x3f, 0x7b, 0x43, 0x54, 0x17, 0x75, -0xd0, 0x69, 0x50, 0x0c, 0x9d, 0x2a, 0xf5, 0x62, 0x8a, 0x74, 0x73, 0x35, 0x41, 0x44, 0xbc, 0xb3, -0xd7, 0xeb, 0x67, 0x16, 0xd4, 0x71, 0x54, 0x68, 0x15, 0xd3, 0x18, 0x25, 0x33, 0xec, 0x7d, 0x7e, -0x2a, 0x81, 0xd2, 0x35, 0xe5, 0xc3, 0x97, 0xde, 0x50, 0x70, 0x90, 0x24, 0xe3, 0x80, 0x68, 0x1c, -0xf5, 0x97, 0x06, 0x54, 0xea, 0x50, 0x82, 0xa6, 0x59, 0x06, 0x05, 0x1f, 0xaa, 0x04, 0x6c, 0x2c, -0x4f, 0xc0, 0x45, 0x48, 0x70, 0x98, 0x10, 0x13, 0xb4, 0x0a, 0x4e, 0xf2, 0xc2, 0xa5, 0x0d, 0xf2, -0xa8, 0x29, 0xfa, 0x94, 0x5a, 0x22, 0x6e, 0x73, 0x21, 0xd6, 0x23, 0x3e, 0xf7, 0x5a, 0xe4, 0x11, -0x31, 0x5b, 0x28, 0x31, 0xb8, 0xac, 0x1e, 0xc2, 0x87, 0x5c, 0x4b, 0x5b, 0x92, 0xa1, 0x8c, 0x64, -0x29, 0x67, 0x29, 0x59, 0xf9, 0x57, 0x38, 0xcb, 0x16, 0x53, 0x15, 0xe5, 0x5b, 0xb9, 0x5e, 0x57, -0x0a, 0x9c, 0x3f, 0x99, 0xf1, 0xf9, 0x6d, 0x8a, 0xce, 0x4e, 0xfb, 0xdd, 0xba, 0x68, 0x07, 0x93, -0xf7, 0x87, 0x36, 0x60, 0x30, 0xba, 0x65, 0x5d, 0x88, 0x6a, 0xcf, 0x74, 0xac, 0x42, 0xa3, 0xd6, -0xe8, 0x0d, 0xe4, 0xce, 0xfc, 0x04, 0xdc, 0x89, 0xda, 0x9a, 0xa7, 0x07, 0x5c, 0x7e, 0x3a, 0xb3, -0xeb, 0x6a, 0xe5, 0x94, 0xda, 0xde, 0x70, 0x3e, 0x80, 0x9d, 0xfb, 0xe6, 0x8d, 0x5a, 0x13, 0xca, -0xc6, 0x01, 0xaf, 0x39, 0x95, 0x59, 0xd2, 0x38, 0x2b, 0xb8, 0x46, 0x73, 0x32, 0x38, 0xe3, 0x92, -0x9e, 0x3a, 0x21, 0xfc, 0xd5, 0xd1, 0xf0, 0x6b, 0x5e, 0xa2, 0xc1, 0x18, 0xcf, 0x97, 0x67, 0x33, -0x62, 0xeb, 0x27, 0x8e, 0x6c, 0xb9, 0x0c, 0x3b, 0x96, 0x11, 0x28, 0x32, 0xa5, 0x32, 0xab, 0x1f, -0x67, 0x85, 0x92, 0x2f, 0xc9, 0xbf, 0xe4, 0xc6, 0xf9, 0xc7, 0x73, 0x63, 0xb7, 0xe7, 0xd9, 0xf3, -0x8c, 0x6e, 0x53, 0xaa, 0x7c, 0xbe, 0xda, 0x98, 0xaa, 0x89, 0xb2, 0x1c, 0x47, 0x63, 0x1f, 0x9a, -0x79, 0x0e, 0xcc, 0x62, 0x16, 0xed, 0x7e, 0xa5, 0xbb, 0xe2, 0x98, 0x3e, 0x39, 0x71, 0x5f, 0xd8, -0x50, 0x2c, 0x78, 0xac, 0x25, 0x58, 0x4a, 0xf7, 0x6f, 0xce, 0x81, 0xdd, 0x7f, 0x22, 0x41, 0x97, -0x55, 0x27, 0xa4, 0x7e, 0x75, 0x34, 0x7c, 0xb4, 0xdc, 0x0a, 0x9d, 0x8c, 0x6b, 0xb3, 0x9b, 0x66, -0xcf, 0xe4, 0xd5, 0x40, 0xd2, 0x68, 0x42, 0xad, 0xe2, 0x7c, 0xc4, 0xfc, 0x18, 0x3d, 0xd9, 0xd0, -0x88, 0xa5, 0x6b, 0x76, 0xad, 0x0a, 0x68, 0x0d, 0x0e, 0xe1, 0x16, 0xff, 0x65, 0xd1, 0x92, 0x50, -0xce, 0xac, 0x2f, 0xab, 0x9f, 0xdc, 0x1a, 0x89, 0xdf, 0x43, 0x79, 0x65, 0x5c, 0x4c, 0xca, 0x71, -0x3a, 0xc4, 0x77, 0x50, 0xde, 0x3d, 0x41, 0xf2, 0xae, 0xc5, 0x8d, 0x94, 0x56, 0x0e, 0xb9, 0x28, -0x9f, 0x14, 0xd8, 0x68, 0x87, 0x7d, 0x09, 0xca, 0x29, 0x2e, 0x94, 0x51, 0x4a, 0xc1, 0x6d, 0xf2, -0x32, 0x6d, 0xe5, 0x64, 0x31, 0xc2, 0x64, 0x73, 0xa3, 0x94, 0x1f, 0xcb, 0x6d, 0x1e, 0xcd, 0x79, -0xbc, 0xf0, 0x11, 0x2c, 0xc7, 0xaf, 0x3b, 0x8d, 0x39, 0xd0, 0x16, 0x9c, 0x7b, 0xfd, 0x3c, 0x86, -0x5f, 0x2f, 0x02, 0xb7, 0xe5, 0xb7, 0x67, 0x51, 0x23, 0xe7, 0xcd, 0x6e, 0xc1, 0x21, 0xaa, 0x7f, -0x72, 0x48, 0x70, 0x0a, 0xfa, 0x80, 0x7c, 0x52, 0xf9, 0x8c, 0xa8, 0x9c, 0x58, 0xe6, 0x44, 0x61, -0xc2, 0x58, 0x3d, 0x09, 0xf9, 0x3a, 0x85, 0xbb, 0x2d, 0x0e, 0x67, 0x0b, 0xe4, 0x2d, 0x23, 0x3b, -0x02, 0xb9, 0x06, 0xbd, 0xf5, 0xa1, 0x18, 0x4f, 0x44, 0x99, 0x18, 0x43, 0x6a, 0x9e, 0x87, 0x5c, -0x63, 0xa6, 0x81, 0x57, 0xc2, 0xb7, 0xd0, 0xac, 0x8d, 0x15, 0x9e, 0x8c, 0x0a, 0x1a, 0x5f, 0x78, -0xdc, 0x0c, 0x14, 0xa0, 0xe4, 0xac, 0x89, 0xd9, 0x47, 0xfa, 0x8e, 0xd6, 0xa0, 0x42, 0xe9, 0x9f, -0xa5, 0x92, 0x76, 0x58, 0xd8, 0xc8, 0xea, 0xd7, 0xdc, 0x4b, 0x7b, 0xaf, 0xf2, 0x0c, 0xa3, 0x14, -0xe3, 0xad, 0x7c, 0xd4, 0xb7, 0x62, 0xef, 0x0a, 0x7f, 0xd4, 0x83, 0x30, 0x20, 0x2f, 0xdb, 0x84, -0x72, 0x6b, 0xfa, 0xe4, 0x99, 0x30, 0x69, 0xb2, 0x0b, 0x0c, 0x93, 0x1b, 0x51, 0x70, 0xc9, 0xc2, -0x5f, 0x3d, 0x64, 0xdc, 0xd3, 0x01, 0x13, 0x20, 0x9d, 0xe6, 0x62, 0xc1, 0x64, 0xb7, 0x41, 0xe1, -0x3d, 0x0e, 0x30, 0xdb, 0x5b, 0x60, 0xc6, 0x3d, 0x6e, 0xb0, 0xa0, 0xdf, 0x89, 0x7e, 0xeb, 0x64, -0xd4, 0x8f, 0x21, 0x77, 0x32, 0xd9, 0xa6, 0xca, 0x8b, 0x97, 0xe0, 0x47, 0xb8, 0x0a, 0x51, 0xdf, -0x4f, 0x45, 0x9d, 0x35, 0x41, 0xdb, 0x1f, 0xa5, 0xda, 0x91, 0x70, 0x82, 0x7b, 0x6d, 0x02, 0x35, -0x8b, 0x72, 0x2f, 0x34, 0xbb, 0xda, 0xc0, 0x90, 0x1e, 0xd0, 0x2a, 0x75, 0xf9, 0x65, 0xe5, 0x5a, -0x5f, 0xe7, 0xde, 0x4e, 0xff, 0x79, 0xc3, 0x68, 0xbf, 0xf2, 0x52, 0xbc, 0x44, 0x1a, 0x64, 0xbd, -0xb7, 0x25, 0xa1, 0x2d, 0xe3, 0xfd, 0x97, 0x49, 0x89, 0x82, 0xb2, 0x17, 0x6e, 0x00, 0xfb, 0x85, -0xc1, 0xe8, 0xb5, 0xb1, 0x35, 0x89, 0x27, 0x44, 0x99, 0x4b, 0xc4, 0x29, 0xaf, 0x03, 0x39, 0x5a, -0x03, 0x97, 0x89, 0x58, 0xd9, 0xcf, 0x34, 0xa4, 0x65, 0xad, 0xd0, 0xa6, 0x50, 0xd7, 0xd5, 0x4b, -0xb2, 0x14, 0x4c, 0x36, 0x48, 0x69, 0x6d, 0xd7, 0xc4, 0x1f, 0x8d, 0x1e, 0xed, 0xa4, 0xbb, 0x5f, -0xb9, 0x49, 0x2c, 0xaf, 0x4e, 0x39, 0x2f, 0x36, 0x4a, 0xb1, 0x9d, 0x06, 0xca, 0xdc, 0xb8, 0x1e, -0x29, 0x2f, 0x9d, 0xb9, 0x3f, 0x87, 0xcc, 0xa0, 0x84, 0xf2, 0x6e, 0x36, 0xf3, 0x5d, 0x06, 0x01, -0xe5, 0x5e, 0x23, 0x73, 0x7f, 0x0a, 0x66, 0xb2, 0xea, 0xa5, 0xcc, 0x9e, 0xdb, 0x69, 0xf6, 0xfc, -0x09, 0xd4, 0x41, 0x99, 0x7f, 0x18, 0x0a, 0x82, 0x1c, 0xa6, 0x2a, 0x52, 0x24, 0x66, 0x07, 0xba, -0x5d, 0x18, 0xdb, 0x8d, 0x4f, 0x45, 0x48, 0x3f, 0x66, 0xee, 0x5c, 0xc7, 0x66, 0xce, 0x33, 0x69, -0xff, 0x0f, 0xcd, 0xcf, 0xc5, 0xeb, 0xd5, 0x66, 0x4f, 0xae, 0x78, 0xd7, 0x45, 0xb7, 0x7f, 0x38, -0x62, 0x73, 0xa6, 0x37, 0xe6, 0x87, 0xbb, 0x18, 0x3f, 0x74, 0xf6, 0xfc, 0x3d, 0xfc, 0x10, 0xf9, -0x8b, 0xd6, 0xc4, 0xc9, 0x2b, 0x52, 0x63, 0x66, 0x83, 0x7c, 0xf2, 0x2a, 0x56, 0x6c, 0x36, 0x28, -0x6e, 0x97, 0xc0, 0x49, 0x3a, 0xaa, 0x2c, 0x61, 0x92, 0x3e, 0x4d, 0xda, 0xcf, 0xdd, 0x25, 0x90, -0x3d, 0x99, 0xb4, 0xe1, 0x4f, 0xae, 0x9b, 0x19, 0x4a, 0xa5, 0xb3, 0x76, 0xb2, 0xdc, 0x2a, 0x4b, -0xfb, 0xc4, 0x5d, 0x68, 0x8d, 0x27, 0xa6, 0x21, 0xb3, 0x11, 0xe0, 0x6d, 0xf1, 0x14, 0xf2, 0x7c, -0x4e, 0xe1, 0xfa, 0xff, 0x3e, 0xda, 0x06, 0x34, 0x7f, 0x85, 0xed, 0x7d, 0x1e, 0x53, 0x30, 0x49, -0x04, 0x65, 0x21, 0x37, 0x68, 0x99, 0xfb, 0x16, 0x1c, 0xf1, 0xca, 0x41, 0x8f, 0xf8, 0x4b, 0x27, -0xab, 0x68, 0x4f, 0x0c, 0x7b, 0x6e, 0x09, 0x68, 0x98, 0xeb, 0x4c, 0xc9, 0x05, 0x86, 0xaf, 0xa7, -0xac, 0x3f, 0x20, 0x29, 0x81, 0xea, 0xc9, 0xe6, 0x36, 0x67, 0x18, 0xbd, 0xa8, 0x15, 0x0a, 0x39, -0x13, 0x8d, 0xa4, 0x0b, 0xb6, 0xd3, 0xed, 0x7b, 0xbf, 0xd5, 0xd1, 0x08, 0xbf, 0x67, 0x64, 0x26, -0x5b, 0x9f, 0x11, 0x69, 0x4f, 0xbf, 0xac, 0x03, 0x67, 0x04, 0x96, 0xd5, 0x66, 0x30, 0x57, 0x7a, -0x60, 0x6e, 0xed, 0x02, 0xe6, 0xba, 0x15, 0x29, 0xea, 0x49, 0xd1, 0xcc, 0xdc, 0x53, 0x03, 0x8d, -0xb5, 0x3a, 0xe6, 0xb2, 0xd2, 0x0e, 0x69, 0xb1, 0x9a, 0xb9, 0x6d, 0x81, 0x3a, 0xf6, 0xb6, 0xfb, -0x43, 0x62, 0x83, 0x15, 0x35, 0x31, 0x76, 0x8a, 0x4f, 0x87, 0x63, 0xb5, 0x05, 0x9e, 0xf2, 0x6e, -0xb6, 0x86, 0x45, 0x47, 0xcc, 0x2d, 0x92, 0x7c, 0x40, 0xfa, 0x73, 0x89, 0x68, 0x89, 0xcf, 0x5a, -0x16, 0x09, 0x3d, 0xb0, 0x53, 0x9c, 0x3e, 0x99, 0x74, 0xb8, 0x9d, 0x62, 0xae, 0x1c, 0xc3, 0xbb, -0x45, 0x4c, 0x56, 0xe2, 0x3a, 0xd9, 0x2e, 0xd9, 0x8c, 0x78, 0x7c, 0x1d, 0xc6, 0xdf, 0x2d, 0x6a, -0x58, 0xfc, 0xdd, 0xc2, 0xec, 0xb1, 0xb3, 0xf4, 0xd2, 0x74, 0xb6, 0x4b, 0x4c, 0x27, 0xcf, 0x2d, -0xe3, 0x98, 0x64, 0x83, 0xf4, 0x80, 0x45, 0x99, 0x27, 0xdc, 0x4f, 0x77, 0x51, 0x09, 0x18, 0x12, -0x5f, 0x51, 0x4a, 0x36, 0x41, 0x6e, 0x54, 0xd1, 0xd9, 0x7b, 0xe9, 0x4e, 0x25, 0x79, 0x86, 0xde, -0xc1, 0xda, 0xab, 0x04, 0xf1, 0xf3, 0xd3, 0xb4, 0x78, 0xcb, 0x2e, 0xf3, 0x84, 0x69, 0xac, 0x71, -0x39, 0x62, 0xf3, 0x6c, 0x05, 0x06, 0xb2, 0x89, 0xcf, 0xee, 0xb2, 0x1d, 0x33, 0x1b, 0x81, 0x9c, -0xd2, 0x6d, 0x80, 0xfc, 0x22, 0x48, 0x1f, 0x5a, 0xdf, 0x16, 0x93, 0x97, 0x8e, 0xd2, 0x3b, 0xa4, -0xde, 0x19, 0xf6, 0x9b, 0x3c, 0x08, 0x81, 0x5f, 0xc0, 0xdf, 0xdb, 0xfc, 0x59, 0x3a, 0x1b, 0xa8, -0x20, 0xc3, 0x9f, 0xa6, 0xb3, 0x49, 0x7f, 0x81, 0xaf, 0xf9, 0x93, 0x0d, 0xd4, 0x86, 0xc7, 0x91, -0x86, 0xb4, 0xb2, 0x8b, 0xa8, 0xc7, 0x95, 0x4d, 0xb5, 0x91, 0x67, 0xf6, 0x72, 0xe9, 0xa6, 0xfa, -0x16, 0x28, 0x62, 0xb3, 0x62, 0x36, 0x28, 0x68, 0x45, 0x89, 0xd9, 0x17, 0x45, 0x2c, 0x34, 0xc6, -0x67, 0xe2, 0x2f, 0xb2, 0x3e, 0xbc, 0xd7, 0x5e, 0x34, 0x61, 0x70, 0x2c, 0xcf, 0xb5, 0xd0, 0x7e, -0x8f, 0x5f, 0x1a, 0x78, 0xc4, 0xc1, 0x84, 0x0f, 0x56, 0x8d, 0xe2, 0xc0, 0x0c, 0x26, 0x87, 0x7f, -0xae, 0xd8, 0x21, 0xa4, 0x8d, 0x9b, 0x19, 0xa8, 0x10, 0x2d, 0x64, 0x27, 0xc7, 0x98, 0x84, 0xf4, -0x02, 0x13, 0x06, 0xb1, 0x0c, 0xea, 0xad, 0xcd, 0x14, 0x26, 0xbb, 0xa5, 0x5f, 0x9a, 0xf6, 0x50, -0x0a, 0x5b, 0x92, 0xa8, 0x31, 0x85, 0xb1, 0x8d, 0x49, 0xa3, 0x78, 0xec, 0x6e, 0x36, 0x53, 0xe5, -0x5b, 0x59, 0xb9, 0x46, 0xd4, 0x74, 0x70, 0xb3, 0x86, 0x47, 0xda, 0x8d, 0x9a, 0xaa, 0x68, 0xf1, -0x05, 0x28, 0x88, 0x41, 0xc9, 0xc6, 0xa2, 0x0d, 0x1f, 0xac, 0x16, 0x5c, 0x87, 0xf7, 0xc9, 0x96, -0x52, 0x0c, 0xa5, 0x89, 0xfc, 0xb0, 0x1d, 0x04, 0x75, 0x6c, 0x0e, 0x89, 0x66, 0x99, 0x85, 0x22, -0xda, 0x1f, 0x45, 0xe7, 0x0a, 0xb4, 0x40, 0xb8, 0x56, 0x8f, 0xea, 0x1b, 0x6e, 0x23, 0x04, 0x5a, -0x43, 0xc2, 0x68, 0x6d, 0x8c, 0x0e, 0x94, 0x89, 0xb2, 0x6d, 0x36, 0xc8, 0x64, 0x36, 0x44, 0x78, -0x6f, 0xff, 0xc8, 0xab, 0x34, 0x83, 0xcb, 0x6e, 0xee, 0x41, 0xdf, 0xb5, 0x73, 0x64, 0x73, 0x72, -0x94, 0x6f, 0x8e, 0x6f, 0x65, 0xea, 0x3d, 0xb2, 0x8f, 0x56, 0xf4, 0x04, 0x87, 0xc1, 0x43, 0xbd, -0x5a, 0xd4, 0x20, 0x1d, 0x3e, 0x77, 0x6d, 0x54, 0x92, 0x69, 0x53, 0x66, 0xa1, 0xe1, 0xcd, 0xd7, -0xdc, 0x3f, 0x7c, 0x1c, 0x6c, 0x5a, 0xb6, 0xb2, 0x2c, 0xc4, 0x7b, 0xb1, 0x9e, 0xa4, 0x37, 0x45, -0x2e, 0xb2, 0x31, 0x9b, 0x3b, 0xe9, 0xd8, 0x2e, 0x6a, 0xba, 0x31, 0x93, 0x78, 0xe4, 0x4f, 0xdd, -0xa0, 0x67, 0x74, 0xf6, 0x57, 0x8a, 0xcf, 0x64, 0xa6, 0xa7, 0x51, 0x96, 0x8c, 0xe7, 0x3f, 0x72, -0x1e, 0x31, 0x44, 0xf7, 0x6b, 0xa5, 0x8e, 0x9d, 0xad, 0x34, 0x90, 0x76, 0xa5, 0xff, 0x86, 0x13, -0x92, 0x47, 0xc7, 0x1e, 0x29, 0x39, 0x46, 0xb1, 0x36, 0x9e, 0xe6, 0x83, 0xc9, 0xc6, 0x0f, 0x9b, -0x31, 0xd7, 0xb0, 0x5d, 0xce, 0x72, 0x79, 0x3f, 0x02, 0x1d, 0x9b, 0x55, 0x63, 0xe5, 0x15, 0x9f, -0x85, 0xa7, 0x47, 0x4b, 0x42, 0x0c, 0x66, 0x1a, 0x1c, 0xa3, 0x32, 0x4c, 0xa2, 0xdc, 0x22, 0xcf, -0xc4, 0xb9, 0x3f, 0x98, 0x61, 0xb0, 0x22, 0xfe, 0x68, 0x87, 0x56, 0x3b, 0xdd, 0xa1, 0x02, 0x3c, -0x88, 0x95, 0x89, 0x63, 0x9a, 0x90, 0x34, 0x46, 0x07, 0x64, 0x3a, 0x0d, 0xcd, 0xa3, 0x1b, 0x34, -0x46, 0x30, 0x25, 0x11, 0xd5, 0x78, 0x1c, 0x7e, 0xa3, 0xd2, 0x17, 0x3a, 0xd8, 0x2d, 0x3c, 0x93, -0x34, 0x2b, 0x58, 0x3e, 0xda, 0x50, 0x80, 0xcd, 0xf3, 0x68, 0x50, 0x87, 0xda, 0x21, 0xee, 0xa6, -0x96, 0x77, 0x75, 0x78, 0x97, 0x26, 0xe6, 0xde, 0x0e, 0xe2, 0x59, 0x92, 0x62, 0x09, 0x8b, 0x28, -0x37, 0xc4, 0x35, 0x4f, 0x33, 0xf8, 0xba, 0x04, 0xf5, 0xe8, 0x4e, 0x24, 0x94, 0x72, 0x68, 0x77, -0x7a, 0x09, 0xca, 0x65, 0xf1, 0x95, 0xe5, 0x6b, 0x1b, 0x68, 0xcc, 0x23, 0x6b, 0x90, 0x8e, 0xec, -0xd1, 0xdb, 0x9a, 0x2c, 0xd8, 0x73, 0x49, 0x26, 0x6f, 0x85, 0x9f, 0x1c, 0x12, 0x67, 0x04, 0xb5, -0x89, 0xd0, 0xb3, 0x15, 0x1f, 0xbb, 0x73, 0x13, 0xea, 0x62, 0x6a, 0x6b, 0x93, 0xac, 0xed, 0xd0, -0x19, 0x72, 0x21, 0xf9, 0x54, 0x37, 0x93, 0x8f, 0xd4, 0xe6, 0xb0, 0xc8, 0x63, 0xbd, 0x98, 0x54, -0x6f, 0xf6, 0x30, 0x6e, 0xbe, 0x87, 0x4a, 0xa0, 0x5b, 0x88, 0xb0, 0x84, 0xbc, 0x98, 0x05, 0xe9, -0xb7, 0x0e, 0xbe, 0x75, 0x50, 0x14, 0x8c, 0x69, 0xb4, 0x9b, 0x95, 0xf5, 0x1a, 0x45, 0x2a, 0x48, -0x1c, 0xfd, 0x8d, 0xce, 0x5d, 0x6c, 0x34, 0xc0, 0x51, 0x42, 0x2d, 0xb7, 0xa1, 0x91, 0xec, 0x7e, -0xf2, 0x06, 0x46, 0xf3, 0xa3, 0x2d, 0x4f, 0xb7, 0x55, 0xb0, 0xbb, 0x60, 0xd2, 0xe4, 0x36, 0x91, -0x57, 0x17, 0x58, 0x3b, 0xeb, 0x83, 0x60, 0x9f, 0x02, 0x69, 0xa3, 0xf3, 0xb5, 0xec, 0xbb, 0x0d, -0xd4, 0x38, 0x92, 0x99, 0xbd, 0xfd, 0xd2, 0x8e, 0xca, 0xf5, 0x8a, 0x26, 0xa1, 0x9c, 0x78, 0x60, -0x6b, 0x31, 0xd5, 0x74, 0x03, 0x36, 0xf2, 0x0f, 0xa3, 0xe1, 0x56, 0x94, 0x57, 0x94, 0xfe, 0x6c, -0x78, 0x48, 0xb1, 0x70, 0x94, 0x3c, 0x0a, 0xa1, 0x2f, 0x5a, 0xb9, 0x06, 0xf5, 0xef, 0xec, 0xde, -0x68, 0xed, 0x10, 0xca, 0xdc, 0xc6, 0xc4, 0x99, 0x61, 0x5b, 0x05, 0xf6, 0x35, 0x0f, 0x64, 0xd2, -0xd8, 0x2a, 0x82, 0xd4, 0x28, 0x8f, 0xb1, 0x8a, 0xed, 0x1d, 0x23, 0x96, 0x6d, 0x67, 0xe3, 0x6a, -0xaa, 0xe0, 0xb8, 0xab, 0x05, 0xbb, 0x6d, 0x3a, 0xbb, 0x25, 0x3c, 0x55, 0x59, 0x3b, 0x42, 0x3a, -0x25, 0xfe, 0xbc, 0x4b, 0xb6, 0x5f, 0x61, 0x81, 0x74, 0x76, 0x36, 0x5f, 0x2b, 0x9f, 0xcd, 0xf7, -0xd3, 0x5d, 0xd4, 0x99, 0xe3, 0x61, 0x41, 0x79, 0x38, 0x1d, 0xcb, 0xd3, 0x53, 0xef, 0x13, 0x61, -0xe4, 0xaa, 0xdc, 0x0b, 0xbd, 0x3f, 0xf4, 0xce, 0x91, 0xd6, 0xd2, 0x9c, 0x99, 0x31, 0x75, 0xf3, -0x6b, 0x48, 0x4d, 0x6f, 0xa3, 0xb4, 0xb3, 0x08, 0xe8, 0xce, 0x2d, 0x23, 0x8e, 0xe7, 0x4d, 0xd2, -0x71, 0xf9, 0x76, 0xc3, 0x90, 0xa2, 0x6b, 0x5f, 0xbb, 0x3a, 0x2a, 0xf1, 0xa1, 0x96, 0x7a, 0x4a, -0xb1, 0x51, 0xb5, 0x6f, 0x4c, 0xe8, 0x79, 0x0c, 0xe9, 0x1d, 0x0d, 0x11, 0x1c, 0x18, 0x76, 0x09, -0xc3, 0x9e, 0x2c, 0x39, 0x07, 0x86, 0x9c, 0x72, 0xe4, 0xd2, 0xb4, 0x83, 0x6d, 0x5a, 0x88, 0x23, -0x3b, 0xb7, 0x82, 0x2a, 0xa7, 0x44, 0x3a, 0x61, 0x68, 0x92, 0x4e, 0xb5, 0x41, 0xc6, 0x14, 0xb8, -0xd9, 0xcc, 0x7d, 0xb0, 0x23, 0xc7, 0x25, 0x9d, 0xc5, 0x90, 0xf3, 0xe4, 0xb7, 0x70, 0x1f, 0x3c, -0x6b, 0x4a, 0xca, 0x29, 0x95, 0x2e, 0x2e, 0x83, 0x2c, 0x33, 0xdc, 0xfc, 0xd1, 0x33, 0x39, 0xc5, -0xd2, 0x95, 0x70, 0x57, 0xb8, 0x33, 0x1c, 0xa1, 0xd9, 0x88, 0xcd, 0xaf, 0xc5, 0xfb, 0xe3, 0xdb, -0x48, 0x6b, 0x79, 0x4e, 0x0b, 0xd8, 0x4d, 0x6c, 0x1e, 0x04, 0xbf, 0x94, 0x50, 0x28, 0xd2, 0x74, -0x11, 0x59, 0x92, 0x62, 0xbe, 0x3d, 0x42, 0x93, 0x74, 0x09, 0xeb, 0x62, 0xa0, 0x9e, 0x45, 0xb3, -0xbc, 0x7b, 0x79, 0x11, 0x54, 0xe9, 0x1b, 0x0f, 0xc4, 0xc2, 0xe4, 0x1d, 0x1c, 0xb4, 0x97, 0x83, -0x62, 0xf6, 0x8e, 0xc5, 0xa2, 0x88, 0x61, 0xe7, 0x6f, 0x10, 0x76, 0x4a, 0x99, 0xff, 0x39, 0x35, -0x1a, 0x2a, 0x02, 0x7f, 0x54, 0x40, 0x29, 0x3b, 0xa0, 0x23, 0x7b, 0x0c, 0x7e, 0xe0, 0xa2, 0xa8, -0x41, 0xf8, 0x4d, 0x8d, 0x90, 0x89, 0xb2, 0x77, 0x36, 0x59, 0x90, 0xa2, 0x15, 0x8d, 0x9c, 0x4a, -0x69, 0x43, 0x4e, 0x03, 0xec, 0x94, 0x68, 0xaf, 0x41, 0x99, 0xc0, 0x66, 0x68, 0x51, 0xe3, 0x92, -0x47, 0xe6, 0x93, 0xb2, 0xf4, 0x99, 0x83, 0xe3, 0xb5, 0xb4, 0x96, 0x7d, 0xfb, 0x6c, 0xec, 0x37, -0x83, 0xc3, 0x32, 0x85, 0xe6, 0x67, 0x51, 0xab, 0x88, 0x85, 0xef, 0x64, 0x3e, 0xcc, 0x1d, 0x75, -0x0c, 0x99, 0x67, 0x44, 0x8d, 0xe0, 0xd9, 0x4e, 0xf7, 0xd8, 0x1b, 0x34, 0x89, 0x2b, 0x1b, 0x14, -0x86, 0x6d, 0xf2, 0x9c, 0x61, 0xaa, 0xb4, 0x21, 0x36, 0x33, 0xc1, 0x66, 0x36, 0x9e, 0x64, 0x73, -0x3a, 0x1f, 0x4a, 0x5b, 0x72, 0x1e, 0x82, 0x4c, 0xe9, 0x71, 0xe6, 0xbb, 0x24, 0x3d, 0x99, 0x53, -0x26, 0x3d, 0xc5, 0xdc, 0x57, 0xa4, 0xa7, 0x11, 0xef, 0xdb, 0x94, 0x59, 0xa0, 0x1d, 0x39, 0x4d, -0xd2, 0x5a, 0xa9, 0x57, 0x99, 0x07, 0xda, 0x85, 0xed, 0x24, 0xcf, 0x09, 0x9d, 0x97, 0xf6, 0x38, -0x9f, 0x95, 0x67, 0x84, 0x54, 0x1f, 0x4b, 0xfb, 0xd1, 0xcd, 0x66, 0x84, 0x54, 0x9f, 0xca, 0xf3, -0x74, 0xf8, 0x0c, 0xe1, 0x73, 0x2c, 0xb4, 0xe5, 0xc8, 0xa3, 0x09, 0xb2, 0x6c, 0x81, 0xbd, 0x03, -0xe6, 0x1f, 0x1e, 0xb8, 0xdb, 0x0d, 0xe9, 0x77, 0x23, 0x56, 0x21, 0x75, 0x74, 0x1d, 0x1c, 0x47, -0x92, 0x2c, 0xe4, 0x2b, 0x99, 0xd8, 0xe3, 0x64, 0x68, 0xeb, 0x12, 0x57, 0x44, 0x50, 0x73, 0x52, -0x6a, 0x2b, 0x66, 0xa2, 0x96, 0x99, 0xf9, 0x0d, 0x6c, 0x27, 0xd4, 0x45, 0x1a, 0xc0, 0x35, 0x9a, -0x3e, 0x71, 0xa5, 0x45, 0xe4, 0x4d, 0x3c, 0xb6, 0xdb, 0x71, 0x46, 0x13, 0x6b, 0xcd, 0xf2, 0x3e, -0x05, 0x9f, 0x51, 0x25, 0xa8, 0x07, 0x9e, 0x95, 0xce, 0xfa, 0x27, 0x89, 0x56, 0xdd, 0x14, 0xd4, -0x84, 0xb4, 0x7e, 0x5a, 0x9f, 0x99, 0x18, 0x2b, 0x45, 0xd4, 0x58, 0x71, 0x2c, 0x1b, 0x59, 0x49, -0x2d, 0xce, 0x5c, 0x6b, 0x69, 0x54, 0xf1, 0x0f, 0xb1, 0x54, 0x17, 0xfd, 0x79, 0xa2, 0x43, 0x97, -0xc3, 0x52, 0x09, 0x41, 0xae, 0x77, 0x3b, 0xca, 0x2a, 0xc9, 0xc8, 0x15, 0x04, 0x39, 0x4d, 0x0c, -0x5a, 0x92, 0x6c, 0x51, 0x46, 0x99, 0x15, 0xcf, 0xe9, 0xbc, 0x9c, 0x13, 0xad, 0x56, 0xf8, 0x07, -0x0e, 0x3c, 0x2b, 0x5d, 0x21, 0x7b, 0x35, 0x62, 0x50, 0xb7, 0x1d, 0xe9, 0x10, 0x30, 0x8f, 0x79, -0x76, 0xac, 0xb5, 0xce, 0x01, 0x5c, 0x40, 0x8b, 0xbf, 0xbc, 0xdf, 0xc3, 0xd6, 0x8c, 0xa6, 0x4a, -0xe7, 0x9d, 0xbf, 0xa2, 0x15, 0x05, 0x36, 0x4b, 0x89, 0x3e, 0x92, 0xc8, 0xe5, 0x15, 0xad, 0xbb, -0x66, 0x81, 0xa0, 0x48, 0xdf, 0x93, 0x08, 0x03, 0xf2, 0xc9, 0xa3, 0xd1, 0x71, 0x6a, 0x64, 0x93, -0xee, 0x21, 0xcc, 0x3b, 0x33, 0xa0, 0x4b, 0xc0, 0xee, 0x4a, 0xd6, 0x2f, 0x46, 0x21, 0x09, 0x0b, -0x53, 0xa5, 0xab, 0xcc, 0xbf, 0xcf, 0x0c, 0x58, 0xbb, 0x13, 0x88, 0x9f, 0x37, 0x90, 0x6f, 0x9c, -0x08, 0xa6, 0xb3, 0x99, 0x97, 0x3a, 0x76, 0xd2, 0x30, 0x35, 0x28, 0xdc, 0x80, 0xdb, 0x22, 0xcf, -0x9a, 0xd6, 0x01, 0x02, 0xa4, 0x31, 0x9e, 0x95, 0x3e, 0x8e, 0xe7, 0xea, 0x82, 0xc2, 0x58, 0x7e, -0xeb, 0xfd, 0x21, 0xed, 0x85, 0x83, 0xd3, 0xfb, 0x05, 0x38, 0xfd, 0xca, 0x55, 0x7c, 0x2e, 0xe1, -0x73, 0x05, 0x4e, 0xff, 0xef, 0xc7, 0xe1, 0xf4, 0x81, 0x3e, 0x38, 0xfd, 0x3b, 0x1d, 0x3e, 0x0e, -0x7c, 0xaa, 0xe1, 0xf4, 0xc1, 0xf9, 0xf8, 0xee, 0xc2, 0xf7, 0x93, 0x70, 0xfa, 0xb5, 0x3a, 0x38, -0xfd, 0xea, 0x36, 0x8c, 0x83, 0xe9, 0x5e, 0xed, 0xfa, 0x1f, 0xdc, 0x1d, 0xda, 0xf4, 0x60, 0xeb, -0x22, 0xbf, 0x3f, 0x38, 0xba, 0x37, 0x74, 0x5a, 0xee, 0xb4, 0xb1, 0x7b, 0x43, 0xc7, 0xc5, 0x90, -0x77, 0x86, 0xbe, 0xd2, 0x8f, 0x70, 0xed, 0x0f, 0x4f, 0xa1, 0x9d, 0xa1, 0xaf, 0x3c, 0x83, 0xcf, -0x23, 0xf8, 0xbc, 0x1d, 0xcf, 0xdb, 0x80, 0x94, 0x77, 0x55, 0xde, 0x19, 0xba, 0xbf, 0x9a, 0xbd, -0xef, 0xfa, 0xea, 0xbd, 0x80, 0xaf, 0x38, 0xfe, 0xd6, 0x5e, 0xc0, 0x57, 0xdc, 0xff, 0xc0, 0x5e, -0x40, 0x0e, 0x32, 0xc6, 0xa4, 0x6d, 0xff, 0xf2, 0x9d, 0x7f, 0xaf, 0x2c, 0x1a, 0xbf, 0xf3, 0xef, -0x95, 0x9a, 0x71, 0x3b, 0xff, 0x6a, 0x12, 0x77, 0xfe, 0xbd, 0x52, 0x39, 0x7e, 0xe7, 0xdf, 0x2b, -0xe2, 0xf5, 0x3b, 0xff, 0x5e, 0x09, 0x7a, 0x37, 0xff, 0x8d, 0xdd, 0x7e, 0x99, 0xa3, 0xbb, 0xfd, -0x70, 0x9c, 0x03, 0xe4, 0x5c, 0x5c, 0x83, 0xc6, 0xc3, 0x37, 0xf0, 0xaf, 0x38, 0x83, 0xd2, 0x2e, -0xae, 0x39, 0x23, 0xc8, 0xed, 0xe2, 0x9a, 0x10, 0x1b, 0xbb, 0x22, 0x81, 0x64, 0x0c, 0x89, 0x34, -0xab, 0x31, 0x84, 0xac, 0x2b, 0xaa, 0x65, 0x3a, 0xf2, 0x70, 0x18, 0xce, 0x61, 0x2a, 0x75, 0x50, -0xf2, 0x30, 0x39, 0xd2, 0x36, 0xc1, 0x39, 0xd3, 0xdb, 0x0f, 0xc9, 0x79, 0x33, 0x73, 0xef, 0xbc, -0x77, 0xa2, 0xf7, 0x47, 0xb4, 0x5a, 0x9f, 0x37, 0x81, 0x2f, 0x96, 0xfe, 0x3c, 0x83, 0x83, 0x99, -0x94, 0x2e, 0x14, 0xa6, 0xb3, 0xf4, 0xfc, 0x4c, 0xe9, 0xcf, 0x37, 0x8a, 0x8f, 0x12, 0x1c, 0x14, -0x4d, 0xe0, 0xcb, 0x30, 0xbe, 0xa6, 0x5d, 0x22, 0x3b, 0x96, 0x6d, 0x52, 0x99, 0xea, 0xd5, 0x70, -0x3a, 0xc7, 0xf3, 0xf0, 0xb0, 0xdd, 0x99, 0x0e, 0xf4, 0x2e, 0xd4, 0x3e, 0xc1, 0x7b, 0x92, 0x5a, -0xb2, 0x74, 0x49, 0x30, 0xa9, 0x59, 0xe7, 0x5e, 0x91, 0x57, 0x6a, 0x99, 0xe8, 0x5b, 0x71, 0x6e, -0x3b, 0xe9, 0x45, 0x27, 0xd7, 0xe6, 0x6b, 0xc5, 0x4c, 0x5d, 0x92, 0x74, 0xb2, 0x29, 0xd5, 0xbd, -0x02, 0x39, 0x1c, 0xb7, 0xe1, 0x77, 0x16, 0xed, 0xb9, 0x1d, 0x24, 0xad, 0x9f, 0x5c, 0xe3, 0xe3, -0x5f, 0x0c, 0x7b, 0xa0, 0x29, 0x5b, 0x50, 0x0d, 0x76, 0x79, 0xc2, 0x2d, 0xea, 0x2a, 0x7e, 0x30, -0x4c, 0xbc, 0xbd, 0xed, 0x61, 0xb2, 0xd3, 0x29, 0x3a, 0x67, 0x68, 0xc4, 0x5c, 0x0f, 0xd7, 0xa8, -0x11, 0x54, 0x1b, 0xba, 0x44, 0xb5, 0xa0, 0xde, 0xd0, 0xe9, 0x09, 0x37, 0xa6, 0xba, 0xc2, 0x33, -0x34, 0x08, 0xbd, 0x96, 0x4e, 0x0f, 0xd3, 0x29, 0x2a, 0xac, 0x55, 0xba, 0x7d, 0x02, 0xef, 0x40, -0x28, 0x81, 0x6a, 0x15, 0x04, 0x31, 0x77, 0x30, 0x5c, 0xc5, 0x7b, 0xc2, 0xcd, 0x57, 0x3c, 0x7c, -0xa3, 0xfc, 0xed, 0xaf, 0xec, 0x1b, 0x1f, 0x0c, 0x97, 0x41, 0x38, 0x22, 0xa6, 0x52, 0x3d, 0x06, -0x70, 0x14, 0x75, 0x47, 0xdd, 0xfb, 0xc2, 0x51, 0xc4, 0x61, 0xc7, 0x8d, 0xea, 0x6f, 0x4b, 0x4d, -0x76, 0x40, 0x98, 0x24, 0x1c, 0x7a, 0xcb, 0xfd, 0xf5, 0x46, 0x38, 0x22, 0xbc, 0x26, 0x42, 0x20, -0xea, 0x3d, 0x11, 0x7f, 0x75, 0x42, 0x08, 0xca, 0x92, 0xa8, 0x31, 0xef, 0x10, 0x4a, 0x37, 0xee, -0x27, 0x8e, 0xd4, 0x94, 0xd5, 0xd5, 0x69, 0xd1, 0x8a, 0xea, 0xb7, 0x57, 0x9c, 0x5c, 0xe3, 0x59, -0xd1, 0x7c, 0x45, 0x54, 0x1f, 0xeb, 0x3a, 0xda, 0xe9, 0xe9, 0x22, 0xd7, 0xc9, 0xb5, 0x27, 0xd7, -0x74, 0xdc, 0xbb, 0xa7, 0xb3, 0xde, 0x9c, 0x01, 0xbc, 0x0a, 0x1e, 0xd6, 0xa8, 0xa0, 0x38, 0x93, -0xe3, 0xd5, 0xf0, 0xf0, 0x56, 0xb5, 0x38, 0x69, 0x99, 0x54, 0x96, 0x74, 0x30, 0x2c, 0xb7, 0x85, -0xa9, 0x88, 0x96, 0xda, 0x5a, 0xc1, 0xb3, 0xc2, 0xff, 0x4b, 0xf1, 0xc8, 0x50, 0xb4, 0x4a, 0xe5, -0x89, 0xb2, 0x1a, 0x6b, 0x68, 0xee, 0x93, 0x03, 0x16, 0x2b, 0xda, 0xfa, 0xf0, 0xfe, 0xce, 0x17, -0x22, 0xc1, 0x87, 0xcb, 0x60, 0x5f, 0xb8, 0x2b, 0xd2, 0xd5, 0x85, 0xdf, 0x75, 0x09, 0x90, 0x69, -0x3d, 0xaa, 0xc6, 0xb4, 0x44, 0x48, 0x3b, 0xc2, 0x65, 0x9a, 0xae, 0x95, 0x24, 0x97, 0x7e, 0x09, -0x4e, 0x78, 0x03, 0x60, 0x9e, 0xe1, 0xa0, 0xd8, 0x1b, 0x6d, 0xcc, 0x4c, 0x4c, 0x29, 0x30, 0x78, -0x3c, 0x91, 0x46, 0x8f, 0xe8, 0xd5, 0xf0, 0xd2, 0x80, 0x87, 0x6f, 0x49, 0x0f, 0x4a, 0x65, 0x30, -0x80, 0x58, 0xc6, 0x96, 0x17, 0x36, 0xec, 0x33, 0x6a, 0x4f, 0x6d, 0xf3, 0xeb, 0xc7, 0xb5, 0x95, -0x81, 0xf4, 0x46, 0xe2, 0xd2, 0xd8, 0xd2, 0x19, 0xae, 0x70, 0x02, 0x7d, 0x6a, 0x51, 0x7f, 0x2a, -0xa2, 0xfb, 0xa6, 0xe9, 0x64, 0xe7, 0xf5, 0x78, 0xb7, 0xf3, 0x69, 0x04, 0x49, 0x44, 0x70, 0xb6, -0x39, 0x76, 0x47, 0x9b, 0x84, 0x58, 0xbe, 0x98, 0x8f, 0x8e, 0x52, 0x33, 0x78, 0x5e, 0x16, 0x6b, -0x94, 0x72, 0x2a, 0x8b, 0xcf, 0x4a, 0x2f, 0x19, 0x19, 0x8c, 0x26, 0xed, 0x99, 0x5f, 0x90, 0x2d, -0xd8, 0xae, 0x4e, 0x0f, 0x34, 0x9a, 0x0c, 0x7c, 0x59, 0x64, 0x1f, 0x8e, 0x17, 0x06, 0x90, 0x53, -0xd0, 0x2e, 0x94, 0xd0, 0xc3, 0xfb, 0xc2, 0xad, 0x2f, 0x1d, 0x89, 0xca, 0xf1, 0x4f, 0xfe, 0x82, -0xc5, 0xd4, 0x25, 0xc2, 0x36, 0x10, 0x55, 0xf4, 0xa7, 0xeb, 0xe0, 0x2a, 0x20, 0x7a, 0x18, 0x5f, -0xcb, 0x0e, 0xa4, 0x5c, 0xad, 0x2b, 0x4c, 0x94, 0x4d, 0xfd, 0x22, 0x24, 0x39, 0x79, 0x51, 0xed, -0xe3, 0xc9, 0x62, 0xee, 0x81, 0xb0, 0xff, 0xb2, 0x87, 0x0f, 0x64, 0xa4, 0xf1, 0xee, 0x08, 0xc3, -0xd3, 0xcb, 0x06, 0xed, 0xfb, 0xdb, 0x0c, 0x40, 0x25, 0x8a, 0xea, 0x10, 0x88, 0x1a, 0x76, 0x73, -0x3a, 0x68, 0x78, 0x70, 0xe8, 0x79, 0x9a, 0xb7, 0x0e, 0x77, 0x12, 0xfd, 0xee, 0x43, 0xfa, 0x1d, -0x0f, 0x95, 0x8e, 0x87, 0xef, 0xb5, 0xe8, 0xb5, 0x03, 0x70, 0x67, 0x42, 0x28, 0x2f, 0x5b, 0x60, -0xbd, 0x21, 0xed, 0xce, 0x30, 0x73, 0x26, 0xc8, 0xe2, 0xf8, 0x24, 0x78, 0x18, 0x87, 0xdc, 0x87, -0xdf, 0x86, 0xf4, 0x24, 0x6c, 0xbb, 0x97, 0x64, 0x1b, 0xb7, 0x67, 0xdd, 0x16, 0x87, 0x6c, 0x39, -0xe1, 0x6c, 0xb9, 0xb9, 0x58, 0x50, 0xcb, 0x96, 0xbc, 0x6e, 0x96, 0x4c, 0x0e, 0xab, 0xea, 0xc4, -0x3a, 0xb2, 0xfe, 0x73, 0xb3, 0x44, 0xf6, 0xc1, 0xbf, 0x5b, 0x67, 0xbb, 0xc9, 0xa6, 0x21, 0xeb, -0xd8, 0x67, 0xbb, 0xad, 0x0e, 0xba, 0xb3, 0x40, 0x76, 0xff, 0x69, 0x00, 0xc3, 0x75, 0xe4, 0x7e, -0xaf, 0xbb, 0xfc, 0xb2, 0x16, 0x6c, 0x29, 0x72, 0x2c, 0xca, 0x7b, 0x70, 0x6d, 0x48, 0x22, 0xde, -0xd3, 0xa2, 0x1e, 0x0c, 0x8b, 0x1a, 0x56, 0xea, 0xc0, 0x78, 0xfe, 0x24, 0x3a, 0xfe, 0xbd, 0x93, -0x7a, 0xf9, 0xab, 0x91, 0x95, 0x61, 0x0f, 0xdf, 0xa4, 0xc1, 0xda, 0x3d, 0x3c, 0xa6, 0xaf, 0xcb, -0xfd, 0xb9, 0x53, 0xcc, 0x44, 0x0a, 0xe3, 0x09, 0x2f, 0xe3, 0xf1, 0x21, 0x9f, 0xd4, 0xf8, 0xdb, -0x7c, 0x90, 0xfa, 0x37, 0xa6, 0x4d, 0x0c, 0xd5, 0x7a, 0x97, 0x7e, 0x19, 0x5f, 0x64, 0xfa, 0x16, -0x87, 0xf4, 0xc2, 0x2b, 0xfc, 0x61, 0xaf, 0xac, 0x5d, 0xc9, 0x63, 0xf9, 0x21, 0x35, 0x9c, 0x7e, -0xfd, 0x04, 0x3e, 0xc7, 0xf0, 0x39, 0x0e, 0xa7, 0x0f, 0x67, 0xc2, 0xe9, 0x23, 0x41, 0x38, 0xfd, -0x7f, 0x9e, 0x82, 0xd3, 0x43, 0xbd, 0x70, 0xfa, 0x0d, 0x3b, 0xbe, 0x5d, 0xf8, 0xc6, 0xf1, 0x7c, -0x68, 0x03, 0x9c, 0x7e, 0xd3, 0x88, 0xdf, 0x70, 0xcc, 0x3f, 0x3c, 0x80, 0xef, 0x45, 0xff, 0xc3, -0x63, 0xf9, 0xe2, 0xfa, 0xfa, 0xfa, 0x25, 0x8b, 0x9b, 0x03, 0xb5, 0x0f, 0x2e, 0x19, 0x1d, 0xd3, -0xed, 0xb9, 0xdf, 0xbc, 0x7e, 0x4c, 0xbf, 0x41, 0x4c, 0x79, 0x6c, 0x7f, 0x7d, 0x2b, 0xc2, 0x79, -0x31, 0x62, 0x9e, 0x88, 0xa3, 0xf7, 0xeb, 0xff, 0x2f, 0x3e, 0x55, 0xf8, 0xec, 0x4e, 0x1c, 0xdb, -0x0f, 0x1e, 0x90, 0xc7, 0xf6, 0x43, 0x05, 0xb1, 0x93, 0x00, 0xbf, 0x17, 0x63, 0x9f, 0xbf, 0x7c, -0x8c, 0x7f, 0x5d, 0xf7, 0xb7, 0xc6, 0xf8, 0xd7, 0xd3, 0xff, 0x81, 0x31, 0x5e, 0x35, 0x76, 0x8c, -0x7f, 0xdd, 0xf5, 0xe5, 0x63, 0xfc, 0xeb, 0xf9, 0xe3, 0xc7, 0xf8, 0xd7, 0x0f, 0x7c, 0xd5, 0x18, -0xff, 0x7a, 0xf6, 0xf8, 0x31, 0xfe, 0x75, 0xeb, 0xf5, 0x63, 0xfc, 0xeb, 0x45, 0xff, 0xc8, 0x18, -0xff, 0x29, 0xb8, 0xe0, 0x53, 0xce, 0xf5, 0x8d, 0x4f, 0xa1, 0x8e, 0xa8, 0x06, 0x14, 0xbf, 0x30, -0xce, 0x6f, 0x18, 0xe7, 0x37, 0x27, 0xf8, 0xb3, 0x12, 0xdc, 0x99, 0x63, 0xe2, 0xe1, 0x68, 0x23, -0xbb, 0x1d, 0x20, 0x87, 0xd3, 0xf9, 0x01, 0x79, 0x8e, 0x40, 0x86, 0x07, 0xe1, 0xcc, 0xe5, 0xcc, -0xa1, 0xe0, 0x40, 0x84, 0x76, 0x58, 0x1b, 0x9c, 0xf6, 0x0e, 0xe9, 0x24, 0x6a, 0x8a, 0xa7, 0x7f, -0xef, 0x46, 0xa9, 0x77, 0x3e, 0xf3, 0x1f, 0x67, 0xfe, 0xea, 0xb8, 0x94, 0x2c, 0x87, 0x1e, 0x64, -0xa1, 0x45, 0xe3, 0x42, 0xf7, 0xb3, 0x50, 0xfb, 0xb8, 0xd0, 0xbd, 0x2c, 0x54, 0x3f, 0x2e, 0xb4, -0x8f, 0x85, 0x0a, 0xe3, 0x42, 0x77, 0x52, 0xe8, 0xa1, 0x8b, 0xe3, 0x42, 0x77, 0xb0, 0xb8, 0x30, -0x1a, 0x1a, 0xe4, 0xe4, 0x9e, 0xf6, 0xf7, 0xc8, 0x36, 0xda, 0x30, 0xdc, 0x29, 0xf7, 0xe0, 0xaf, -0x92, 0x6b, 0xcc, 0xc0, 0x77, 0x3d, 0x8c, 0x5c, 0xcd, 0xc8, 0xf1, 0x51, 0x7a, 0x0b, 0x4e, 0x8b, -0xfa, 0x89, 0xa8, 0xbb, 0xf4, 0x93, 0x52, 0xf7, 0xef, 0x90, 0x6a, 0x32, 0x94, 0xd1, 0x29, 0xd5, -0x44, 0x37, 0xb8, 0xe0, 0x60, 0xa4, 0x7d, 0x05, 0xbe, 0x46, 0x1c, 0xdc, 0x13, 0xc1, 0x6f, 0x11, -0xf9, 0x1b, 0xa5, 0x65, 0xdf, 0xf6, 0xd1, 0x37, 0x1a, 0x91, 0x5b, 0xd4, 0xe7, 0x7e, 0x21, 0x6a, -0x5c, 0x2b, 0xce, 0xfd, 0xab, 0x59, 0xfb, 0x42, 0xa4, 0x29, 0x8b, 0x67, 0xb9, 0x18, 0x54, 0x47, -0xa2, 0x5a, 0x0e, 0xb5, 0x0f, 0xbf, 0xa6, 0x8b, 0xcc, 0x3b, 0x9f, 0x8c, 0x88, 0xf3, 0x71, 0x5c, -0xd0, 0x18, 0xf8, 0x4d, 0x9d, 0xa2, 0xda, 0xa0, 0xda, 0x14, 0xc5, 0xd1, 0x53, 0xef, 0x8a, 0xc8, -0xf2, 0x8d, 0x3c, 0x9e, 0x8a, 0x59, 0x58, 0x12, 0x8d, 0x20, 0x69, 0x2c, 0x54, 0xdd, 0x0e, 0x62, -0xde, 0x91, 0x88, 0xa6, 0x4b, 0xc2, 0x8f, 0x98, 0xd7, 0xd7, 0x02, 0x9f, 0x7a, 0xba, 0x1a, 0x33, -0x58, 0xcd, 0xff, 0x2a, 0x73, 0x7b, 0x33, 0xea, 0x50, 0x34, 0x6a, 0x8a, 0xc9, 0x7c, 0x84, 0xa0, -0xea, 0x8e, 0x74, 0x87, 0x69, 0x7e, 0xec, 0xcb, 0x64, 0x1c, 0x5d, 0xf8, 0xe1, 0x6e, 0xb2, 0x07, -0xa9, 0x61, 0x30, 0x92, 0xb4, 0x43, 0x32, 0x98, 0xec, 0x63, 0xfb, 0x9f, 0x6e, 0x88, 0xef, 0x9d, -0xd7, 0x8d, 0x71, 0xde, 0xa5, 0x58, 0x97, 0x74, 0xac, 0x41, 0xba, 0x2b, 0xec, 0x8a, 0xec, 0x0c, -0x37, 0xea, 0x08, 0xfb, 0x34, 0xa3, 0xb9, 0x33, 0xdc, 0x92, 0x18, 0x57, 0x1b, 0x94, 0x64, 0xde, -0x4a, 0xdf, 0x6e, 0xd4, 0x36, 0x28, 0xfb, 0x46, 0xfc, 0x16, 0x1c, 0xfb, 0x11, 0x2e, 0x36, 0x2f, -0x7d, 0x39, 0xb1, 0x24, 0x81, 0x97, 0xb1, 0x09, 0x61, 0x6a, 0x2f, 0x91, 0x2c, 0x68, 0x84, 0xfd, -0xe2, 0x18, 0x49, 0x84, 0x93, 0x63, 0xb0, 0x55, 0x0a, 0xd7, 0xc6, 0x57, 0x64, 0x99, 0x2b, 0xbc, -0xc2, 0xac, 0x25, 0x49, 0xeb, 0xe4, 0xa3, 0xb2, 0xa4, 0x75, 0xb4, 0xf3, 0xed, 0x15, 0x9e, 0x4e, -0x26, 0x73, 0xad, 0x39, 0xf9, 0x28, 0xca, 0x5c, 0x2b, 0xea, 0x67, 0x98, 0x78, 0xbe, 0x93, 0x72, -0x35, 0x73, 0x32, 0x55, 0x6c, 0xed, 0xd2, 0x74, 0xde, 0x4b, 0xa5, 0xe4, 0x11, 0x9d, 0xb0, 0x36, -0xde, 0x0f, 0x5f, 0x7b, 0x6f, 0xad, 0x89, 0x1b, 0xa5, 0x86, 0xf7, 0xd6, 0x58, 0x58, 0x4b, 0xa1, -0x04, 0xde, 0xe5, 0xdf, 0x20, 0xee, 0x19, 0x0c, 0x6b, 0x3a, 0xa9, 0x75, 0x50, 0xfe, 0xbc, 0x84, -0x63, 0x8a, 0x86, 0xdd, 0x9f, 0x03, 0x27, 0xc2, 0x38, 0x76, 0x62, 0x8a, 0x70, 0xe7, 0x8b, 0x51, -0x3e, 0x4a, 0xf1, 0xc3, 0xd1, 0xb1, 0x63, 0x95, 0xa7, 0x53, 0xf1, 0x7f, 0x16, 0x1f, 0xb5, 0x6f, -0x30, 0x76, 0x91, 0x2d, 0x6a, 0x03, 0x62, 0x48, 0xa6, 0x56, 0x1d, 0x59, 0xc1, 0x83, 0x96, 0x49, -0x37, 0x92, 0xc3, 0x9a, 0xfc, 0xb2, 0xf4, 0x24, 0x2e, 0xa0, 0xf6, 0x94, 0xe9, 0xf8, 0x3a, 0xb9, -0xc4, 0xe9, 0x76, 0x7e, 0xe2, 0x74, 0xef, 0xc3, 0xbe, 0x16, 0x3d, 0xbc, 0x4f, 0x86, 0x70, 0xba, -0x16, 0xe5, 0x87, 0xaf, 0xe9, 0x54, 0x90, 0xd9, 0x92, 0x4c, 0xb7, 0xb2, 0x48, 0x0d, 0xa7, 0xb7, -0x89, 0xda, 0xb6, 0xc5, 0x65, 0x2a, 0xba, 0x81, 0x12, 0xdb, 0x37, 0x75, 0xac, 0x94, 0x26, 0x5b, -0xb0, 0xbe, 0x91, 0x7c, 0x66, 0x00, 0x85, 0xb6, 0x00, 0x56, 0x8f, 0x42, 0x7c, 0x2f, 0x96, 0xd1, -0x3c, 0x2a, 0xad, 0x45, 0x64, 0x69, 0xcd, 0x50, 0xf4, 0x12, 0xe1, 0x59, 0x24, 0xb8, 0x50, 0xe6, -0xa9, 0x89, 0xc3, 0xb5, 0xea, 0xf0, 0xbe, 0x51, 0xa9, 0x0d, 0x29, 0xac, 0xc8, 0xc4, 0x97, 0x75, -0xbe, 0x1a, 0x0e, 0x98, 0xe5, 0x14, 0x34, 0xfa, 0x1a, 0x80, 0x67, 0xb4, 0xe0, 0x76, 0x7c, 0xe2, -0x70, 0x0f, 0xb4, 0xae, 0x1a, 0x54, 0xe4, 0xb6, 0x13, 0xbf, 0xa0, 0xdc, 0x13, 0x29, 0x6f, 0x5f, -0x54, 0xe0, 0x6e, 0x2c, 0xb7, 0x11, 0x5e, 0x91, 0x8e, 0xd2, 0xc6, 0xe1, 0x07, 0x60, 0x25, 0x96, -0x99, 0xec, 0x0a, 0xcb, 0x39, 0x52, 0xef, 0x0e, 0x49, 0x1b, 0x0f, 0xa0, 0xec, 0xd6, 0x7d, 0x24, -0x62, 0xe2, 0x5e, 0x45, 0xd9, 0x2d, 0x74, 0xfb, 0xce, 0xee, 0xc6, 0xd4, 0xd0, 0x07, 0x47, 0xba, -0xe5, 0xfe, 0x76, 0xf2, 0x29, 0x51, 0x13, 0xba, 0x7d, 0x53, 0xf7, 0xfb, 0xdb, 0xd8, 0xad, 0x6d, -0x3a, 0x5f, 0x58, 0x17, 0xa6, 0xe9, 0x0c, 0x3f, 0xef, 0xeb, 0x3e, 0x19, 0x0e, 0x2d, 0x3f, 0xd2, -0x7d, 0x81, 0xd9, 0x48, 0x55, 0xe8, 0x21, 0x42, 0x74, 0x90, 0x3f, 0x81, 0x77, 0x62, 0xa9, 0x3c, -0x93, 0xe1, 0x22, 0x15, 0x61, 0xb2, 0xcf, 0x90, 0x28, 0xc1, 0x7d, 0x19, 0x8e, 0x67, 0x14, 0x19, -0xc1, 0xc4, 0x61, 0xfb, 0xaa, 0xb1, 0xc7, 0x64, 0x8d, 0xed, 0x25, 0xbf, 0x09, 0xc7, 0x7b, 0xc1, -0x49, 0x0b, 0xf0, 0x2b, 0x40, 0xba, 0x08, 0x41, 0xdd, 0x89, 0x7f, 0x83, 0x52, 0x2d, 0xa3, 0x6f, -0xf2, 0x9f, 0x78, 0x1a, 0x5c, 0x5a, 0x10, 0xf8, 0x98, 0x5c, 0x47, 0x3d, 0x87, 0x5c, 0x66, 0x87, -0x95, 0xe7, 0x57, 0x32, 0x7e, 0xc8, 0xc9, 0xb8, 0x3d, 0x1e, 0x56, 0x24, 0x3d, 0xe5, 0x1e, 0x94, -0xf7, 0xba, 0x2d, 0x0e, 0xb6, 0xa3, 0x8c, 0x49, 0x7a, 0x96, 0x9b, 0xde, 0x0e, 0xa3, 0x74, 0xa7, -0x8b, 0x49, 0x77, 0xcc, 0xa7, 0x96, 0xbf, 0xbd, 0x1d, 0x16, 0x34, 0xc8, 0x11, 0x93, 0x35, 0xe1, -0x01, 0xcc, 0xe7, 0xed, 0x15, 0x28, 0xcf, 0x86, 0x5f, 0x26, 0x0a, 0x4d, 0xc2, 0xbe, 0xb1, 0x82, -0xf5, 0x8d, 0x15, 0x08, 0x1d, 0xe2, 0xe2, 0x37, 0x4a, 0xcf, 0x58, 0x1d, 0x45, 0x9c, 0x67, 0x8f, -0xa1, 0xe9, 0xa4, 0x31, 0x7d, 0x5e, 0x1f, 0x5e, 0x31, 0x5e, 0xce, 0x2b, 0xba, 0x41, 0x5f, 0xa1, -0xfb, 0x8e, 0x58, 0x5f, 0x18, 0xa5, 0xff, 0xb1, 0x7a, 0x5a, 0x06, 0x51, 0x73, 0x22, 0x7d, 0x88, -0x6a, 0xe2, 0x4b, 0xc2, 0x0d, 0xf8, 0x92, 0x2d, 0x55, 0xce, 0x8b, 0xe8, 0x8d, 0xc9, 0x2a, 0xd7, -0x8d, 0x3f, 0x8d, 0xd7, 0xf1, 0x38, 0xcf, 0x0d, 0x78, 0x64, 0x8c, 0xef, 0x31, 0x59, 0xf1, 0xef, -0x93, 0xe3, 0x16, 0xd6, 0x85, 0x5a, 0x9a, 0x72, 0x17, 0xc9, 0xc7, 0x68, 0x85, 0x69, 0xb9, 0xd3, -0xc7, 0x0a, 0x6f, 0xec, 0xf3, 0x54, 0xe5, 0x33, 0x93, 0xd8, 0xde, 0x72, 0xc3, 0x99, 0xd2, 0x4b, -0x1c, 0xa7, 0x95, 0xd0, 0x5d, 0x88, 0xcf, 0x1d, 0x70, 0xfa, 0xc4, 0x1b, 0x72, 0x96, 0xba, 0x12, -0x57, 0xd9, 0xe2, 0xc6, 0xfa, 0xaa, 0x1f, 0x2f, 0x69, 0xad, 0x6f, 0x42, 0xff, 0x4d, 0x63, 0x93, -0x43, 0x58, 0x99, 0x9b, 0x61, 0x7b, 0x5a, 0xe5, 0xf7, 0x37, 0x98, 0x4c, 0xa7, 0xfc, 0xed, 0xff, -0xdd, 0xff, 0x7e, 0xed, 0xf0, 0xd1, 0xe3, 0xef, 0x9d, 0x38, 0x79, 0xea, 0xfd, 0xd3, 0x1f, 0x7c, -0x78, 0xf6, 0xdc, 0x47, 0x1f, 0x9f, 0xff, 0xe4, 0xc2, 0x9f, 0xff, 0xf2, 0xe9, 0xa5, 0xcb, 0x9f, -0x0d, 0xff, 0xf5, 0x8b, 0xab, 0x2f, 0xf5, 0xfe, 0xe2, 0x5f, 0x7f, 0xf5, 0x9b, 0xdd, 0xef, 0x3e, -0xf7, 0xcc, 0x4b, 0xbb, 0xb6, 0xbd, 0xf4, 0xea, 0xb1, 0x97, 0x5e, 0x78, 0xe9, 0xa5, 0x7f, 0xfb, -0xf5, 0xc5, 0x97, 0xf0, 0xaf, 0xa7, 0xff, 0xa5, 0x33, 0x57, 0x5e, 0xfa, 0x97, 0x1d, 0xe4, 0xde, -0xfe, 0xdb, 0x97, 0x9e, 0x1a, 0x78, 0xe5, 0xad, 0x97, 0x5e, 0x7a, 0x76, 0xaa, 0xc1, 0x20, 0xee, -0xfa, 0xfc, 0x25, 0xe9, 0x25, 0xdb, 0xd3, 0xf4, 0xe1, 0xa5, 0xdc, 0xbe, 0x97, 0x5e, 0xda, 0x77, -0xf0, 0xe5, 0xd7, 0x0f, 0xfc, 0xfe, 0x8d, 0xff, 0x73, 0xe8, 0xcd, 0xa1, 0x97, 0x8e, 0xbc, 0xfd, -0x9f, 0x7f, 0x7c, 0x69, 0xc1, 0xf2, 0x67, 0x5f, 0xfa, 0x4d, 0xef, 0x4b, 0x86, 0xdc, 0x97, 0xe0, -0xf4, 0xb5, 0x2d, 0x70, 0x66, 0xe2, 0x1e, 0x38, 0xa3, 0x7b, 0x12, 0xce, 0xa4, 0xf4, 0xa0, 0xbf, -0x17, 0xce, 0x00, 0xca, 0xdb, 0x92, 0x16, 0xce, 0x68, 0xd6, 0xa2, 0xff, 0x14, 0x9c, 0x1e, 0x41, -0xa9, 0x74, 0x64, 0x13, 0x3e, 0x58, 0xfb, 0x11, 0x2f, 0x7e, 0xd7, 0xe1, 0x7b, 0x08, 0x9f, 0x65, -0xf8, 0x84, 0xe0, 0xcc, 0xad, 0xd9, 0x70, 0xe6, 0x8e, 0x01, 0x38, 0x73, 0xe7, 0x5c, 0x38, 0x33, -0x29, 0x8c, 0xfe, 0x02, 0x38, 0x73, 0x5b, 0x19, 0x9c, 0x31, 0xe6, 0xc1, 0x99, 0xbb, 0x9e, 0x42, -0x7f, 0x14, 0xce, 0xa4, 0xab, 0xf1, 0xa9, 0x86, 0x33, 0x93, 0xf1, 0x49, 0xdf, 0x0f, 0x67, 0xbe, -0x36, 0x1d, 0xdf, 0x27, 0x31, 0x5e, 0x3a, 0xbe, 0x8f, 0xb0, 0xbd, 0x0e, 0x67, 0x1c, 0xbd, 0x6c, -0x07, 0xc3, 0xe9, 0x77, 0x82, 0x6c, 0xaf, 0x2f, 0xe8, 0x13, 0x5b, 0x2f, 0x5d, 0x96, 0x8a, 0xdf, -0x79, 0x4f, 0x79, 0x7f, 0x36, 0xf6, 0xec, 0xec, 0xd7, 0x7f, 0x50, 0x09, 0xf2, 0x15, 0x6b, 0xca, -0xef, 0xa4, 0x7f, 0xff, 0xf3, 0x45, 0x00, 0xfb, 0x85, 0x9b, 0x33, 0x01, 0x72, 0x7b, 0x3e, 0x3d, -0x8b, 0xbf, 0x9f, 0x5c, 0xee, 0xc3, 0xdf, 0xed, 0x59, 0xf8, 0x3d, 0xf7, 0x99, 0x73, 0x7d, 0xec, -0x17, 0xc3, 0xed, 0x3d, 0x77, 0x60, 0x9c, 0x3b, 0xbf, 0x4d, 0xf1, 0xaf, 0xff, 0x53, 0x49, 0xdb, -0x37, 0xea, 0xe1, 0x66, 0xf5, 0x5b, 0x8b, 0xed, 0x2e, 0x7b, 0x4f, 0xcf, 0x9a, 0xa7, 0xc1, 0x51, -0x3d, 0x54, 0xed, 0xa8, 0xde, 0x96, 0xbc, 0x6d, 0x5b, 0xc7, 0xc4, 0x39, 0xae, 0xb7, 0xaa, 0xdd, -0xbe, 0x9e, 0xa7, 0x2c, 0xe1, 0x74, 0x43, 0xcf, 0xaf, 0x86, 0xa0, 0xb6, 0x92, 0x9b, 0xdd, 0xd0, -0x33, 0xd4, 0xd3, 0x33, 0xe1, 0xdd, 0x39, 0x1e, 0x5f, 0x65, 0xb7, 0x6d, 0x64, 0xa8, 0x2f, 0xe9, -0x81, 0xaf, 0x5d, 0x1b, 0x9e, 0x63, 0x79, 0x2e, 0xe5, 0x8b, 0xa1, 0x0b, 0x8f, 0xcd, 0x2f, 0x7d, -0xff, 0x93, 0xff, 0x55, 0xdb, 0x97, 0x7c, 0xe7, 0x7c, 0xe9, 0x4f, 0x73, 0xe6, 0x7c, 0x31, 0xf2, -0xa3, 0x1f, 0x7d, 0xfe, 0xa3, 0x3f, 0xb4, 0x49, 0x23, 0xd2, 0xc8, 0xc3, 0x23, 0xa4, 0xad, 0x48, -0x23, 0x63, 0x8b, 0x4f, 0xbf, 0x49, 0x0f, 0xd5, 0x73, 0x1c, 0xa0, 0xae, 0x96, 0xa9, 0x66, 0x4e, -0x71, 0xa3, 0x3a, 0xa9, 0xba, 0x7b, 0xbd, 0xfe, 0xe2, 0x89, 0xee, 0x39, 0xdf, 0x9f, 0x93, 0x74, -0x5b, 0x75, 0xcf, 0xc6, 0x5b, 0x7e, 0xc8, 0xf7, 0xcc, 0xb9, 0xbf, 0xfa, 0xf4, 0x9c, 0xea, 0x4f, -0x0e, 0xcf, 0x79, 0xac, 0xec, 0x93, 0x39, 0xdf, 0xaf, 0xbe, 0xed, 0xb6, 0x6a, 0xe9, 0xff, 0xcc, -0x39, 0xf5, 0xc1, 0xc8, 0x1c, 0x07, 0xc5, 0x97, 0x73, 0xfe, 0x13, 0xfd, 0x1d, 0x97, 0xdd, 0xd2, -0xd5, 0x39, 0x23, 0xcd, 0x9f, 0x48, 0x97, 0x9f, 0xfb, 0xe2, 0x9d, 0x4f, 0x7e, 0xfb, 0xcf, 0xd2, -0xe7, 0x4b, 0xe7, 0x49, 0xd2, 0xde, 0x4f, 0x9e, 0xdf, 0xdb, 0x23, 0x7d, 0xfe, 0xa7, 0x1f, 0xec, -0xfb, 0x5c, 0x1a, 0xee, 0x97, 0x76, 0x3f, 0x23, 0x49, 0x9f, 0x4b, 0xe7, 0xde, 0x9d, 0x53, 0x73, -0xaf, 0xb4, 0xa7, 0xa7, 0x67, 0xf7, 0xbb, 0x52, 0x4f, 0xd5, 0x67, 0x5f, 0xf4, 0xf4, 0x0c, 0x6d, -0xbf, 0xf0, 0xf0, 0xa5, 0x24, 0x4f, 0xe9, 0x17, 0xd7, 0x86, 0xf9, 0xfd, 0xdb, 0xdf, 0xfd, 0xeb, -0xb5, 0x9b, 0x2c, 0xfa, 0x0b, 0x9f, 0xee, 0xed, 0xd7, 0xff, 0xe2, 0x4f, 0xa7, 0x3f, 0x3f, 0xf7, -0x0b, 0xb8, 0x75, 0x78, 0xbb, 0x1b, 0xba, 0x1f, 0xd1, 0xae, 0x76, 0xe3, 0x68, 0x35, 0x98, 0x1c, -0x56, 0x6a, 0xa2, 0x94, 0x2b, 0xff, 0x8e, 0x9c, 0x7c, 0xea, 0x79, 0x84, 0xe1, 0x61, 0x06, 0x09, -0xfb, 0x3d, 0x51, 0x96, 0x7a, 0xf3, 0x88, 0x34, 0x58, 0x9a, 0xf4, 0xb5, 0x11, 0x69, 0xc0, 0xa5, -0x9b, 0x30, 0x22, 0xed, 0x77, 0xe9, 0x66, 0xe2, 0x6f, 0x69, 0x3a, 0x62, 0x66, 0x7f, 0x99, 0x1a, -0xdd, 0x03, 0x65, 0x6a, 0x0c, 0x1f, 0x74, 0xdd, 0x86, 0x71, 0x4e, 0xbc, 0x4a, 0xf1, 0x13, 0xf3, -0x8c, 0xfd, 0x6e, 0xa7, 0xdf, 0xfb, 0xdf, 0xc2, 0x54, 0x17, 0x61, 0xdb, 0x9a, 0xbd, 0xd2, 0x40, -0xf1, 0xe1, 0xea, 0xe5, 0xd2, 0x36, 0xed, 0x2f, 0xb6, 0x2d, 0x97, 0xe6, 0x94, 0xfe, 0xae, 0x7a, -0xf9, 0x08, 0xb5, 0xd7, 0x8c, 0x91, 0x9e, 0xa7, 0xab, 0x61, 0xf9, 0xb5, 0x39, 0xb3, 0x7a, 0x7a, -0x46, 0x46, 0x92, 0xd5, 0x3f, 0x98, 0x33, 0x63, 0x44, 0xbf, 0xcd, 0x36, 0xb2, 0x77, 0x44, 0xad, -0x7a, 0xe0, 0xda, 0x8c, 0x11, 0x41, 0xb3, 0x7d, 0x78, 0xb9, 0xa4, 0xbf, 0x69, 0xce, 0xa9, 0x11, -0xe9, 0x17, 0x59, 0x3d, 0xb7, 0x8c, 0x48, 0x1f, 0xcf, 0x99, 0xf3, 0xc8, 0x88, 0x74, 0x45, 0xba, -0x7a, 0x2f, 0xe6, 0x0f, 0x5c, 0xac, 0xc4, 0x51, 0x06, 0x90, 0x1b, 0xaa, 0x5f, 0xd2, 0xb2, 0x34, -0xb4, 0xb0, 0xfe, 0xef, 0x63, 0x35, 0x8b, 0x9b, 0x83, 0x4b, 0x5b, 0x73, 0xeb, 0xd8, 0xe9, 0x70, -0x98, 0x30, 0xa7, 0xb9, 0xf9, 0xc1, 0xa6, 0x7a, 0x54, 0x2f, 0xca, 0x2b, 0x0a, 0xa1, 0xe4, 0xc1, -0x66, 0x3a, 0xfe, 0x1e, 0xac, 0x0f, 0xf9, 0x5b, 0x42, 0x4d, 0x42, 0xb0, 0xf1, 0xc1, 0x1f, 0x0b, -0x0f, 0x2e, 0xad, 0x5b, 0xdc, 0x22, 0x2c, 0x6c, 0x69, 0x6a, 0xc2, 0x0c, 0xef, 0x82, 0xc5, 0x8d, -0x8d, 0xf5, 0x81, 0x07, 0x1b, 0x7f, 0xd0, 0xb8, 0xb8, 0xf9, 0x21, 0x28, 0x71, 0x4d, 0x75, 0x15, -0x43, 0x5d, 0xcb, 0xa8, 0xb2, 0xb9, 0xb4, 0x75, 0x71, 0xe3, 0xe2, 0xd6, 0x1f, 0xc7, 0xfd, 0xad, -0x8b, 0x9b, 0xea, 0x43, 0xb1, 0xc2, 0x0a, 0xa1, 0x38, 0x18, 0x6c, 0xac, 0xff, 0x81, 0xbb, 0xac, -0x0a, 0x72, 0x43, 0x4b, 0x42, 0x0b, 0x31, 0xa4, 0xc4, 0x65, 0xb7, 0x4f, 0xc3, 0x5f, 0xdf, 0x7d, -0xb3, 0xf1, 0xb7, 0x7a, 0x2e, 0x14, 0xcf, 0x2e, 0x9f, 0x59, 0x0c, 0x25, 0x15, 0xe8, 0x2b, 0xab, -0x12, 0x4a, 0xb0, 0x1a, 0x81, 0xfa, 0xf2, 0xe6, 0x56, 0xb8, 0x6f, 0x69, 0xab, 0xd0, 0xe2, 0x17, -0x9a, 0xea, 0x9b, 0x5a, 0x42, 0x3f, 0xc6, 0x4a, 0xca, 0xa0, 0x3e, 0xd8, 0xd8, 0xd8, 0xb2, 0xf0, -0xc1, 0xd6, 0x7a, 0xa1, 0x76, 0xa9, 0xdf, 0x5f, 0x1f, 0x5a, 0x92, 0x6c, 0xae, 0x46, 0xe5, 0x78, -0x21, 0xa5, 0x42, 0x35, 0x58, 0x70, 0x2e, 0xf5, 0xcf, 0xae, 0x6f, 0xaa, 0xfe, 0x71, 0xb0, 0x5e, -0x68, 0x09, 0xb6, 0x2e, 0x6e, 0x69, 0xce, 0x9d, 0x12, 0xab, 0x64, 0x4b, 0xb0, 0xbe, 0x59, 0x68, -0x5d, 0x54, 0x8f, 0x39, 0x2e, 0x59, 0xf2, 0x60, 0xa0, 0x5e, 0x08, 0xb6, 0x84, 0x5a, 0x73, 0xaf, -0xfb, 0x5a, 0x6e, 0xbb, 0x4f, 0x08, 0xd5, 0xff, 0x70, 0x69, 0xfd, 0x92, 0x56, 0x61, 0x49, 0x6b, -0x68, 0xe9, 0xc2, 0xd6, 0xa5, 0xa1, 0xfa, 0xb1, 0xd1, 0xe8, 0x14, 0xbf, 0xb0, 0xb4, 0x79, 0x71, -0xab, 0x30, 0xb9, 0xb1, 0x2e, 0xf6, 0xe5, 0xc1, 0x85, 0x0b, 0x31, 0x5f, 0x81, 0x55, 0x4c, 0xa8, -0x0b, 0x2d, 0x6e, 0xab, 0x2f, 0x14, 0x14, 0xdc, 0x09, 0xb5, 0x08, 0xf3, 0x43, 0x4b, 0x16, 0x2f, -0xc3, 0x7c, 0xea, 0x10, 0xd1, 0x0f, 0x41, 0x88, 0xfd, 0xfa, 0x4a, 0xab, 0x7d, 0xdf, 0xb3, 0x55, -0x59, 0x2b, 0xbe, 0x5b, 0x71, 0xdf, 0x03, 0xa5, 0xbe, 0x92, 0xe2, 0xaa, 0x52, 0xf4, 0xcd, 0xae, -0xf8, 0xee, 0xec, 0xe2, 0xef, 0x39, 0x4b, 0x13, 0xc3, 0x7c, 0xdf, 0xf5, 0xdd, 0x57, 0x32, 0xcb, -0x57, 0xee, 0x9a, 0x49, 0x3e, 0xcf, 0x77, 0x3d, 0xf7, 0x55, 0x94, 0x97, 0x56, 0x53, 0xe4, 0x72, -0x8c, 0x5c, 0x52, 0x7d, 0x5f, 0x79, 0xd5, 0x7d, 0xe8, 0x2b, 0xa9, 0xfa, 0x6e, 0xc9, 0x7d, 0x5e, -0xa4, 0x89, 0xea, 0xaa, 0xca, 0xe2, 0x92, 0xd2, 0x2a, 0x0c, 0xaa, 0x9a, 0xfb, 0xdd, 0x2a, 0xf7, -0x7d, 0x0f, 0x60, 0x58, 0x55, 0xf9, 0x7d, 0x5e, 0x0c, 0x70, 0x97, 0x7d, 0x17, 0x9b, 0xa3, 0xac, -0xdc, 0x57, 0x45, 0xe9, 0xcb, 0x9c, 0xdf, 0x2d, 0x2b, 0xaf, 0x28, 0x75, 0xce, 0x29, 0x2b, 0xc3, -0x18, 0xb6, 0x59, 0x36, 0xaf, 0xd5, 0x55, 0xfa, 0x5d, 0x57, 0x71, 0x75, 0x71, 0x69, 0x4d, 0xb5, -0x6d, 0x96, 0xd5, 0x57, 0xfa, 0x5d, 0x5f, 0x69, 0xd5, 0x7d, 0x73, 0x7c, 0x25, 0xa5, 0x72, 0x40, -0x55, 0xf9, 0x77, 0xab, 0x4a, 0x8a, 0xbd, 0xe5, 0xde, 0xea, 0x52, 0xdf, 0xdc, 0xe2, 0x0a, 0x96, -0xa2, 0xb2, 0xe4, 0xbb, 0x95, 0x15, 0xc5, 0xdf, 0x2b, 0x71, 0xb9, 0x8a, 0x31, 0x46, 0xcd, 0x77, -0x6b, 0x2a, 0xef, 0x93, 0xb3, 0xfa, 0xde, 0x77, 0xbf, 0x17, 0x73, 0xc2, 0x7d, 0xac, 0x39, 0x96, -0x08, 0x15, 0x02, 0x92, 0x95, 0x30, 0x1b, 0x5f, 0x21, 0x6c, 0x8a, 0xa5, 0xad, 0x4b, 0xb1, 0x45, -0x7f, 0x2c, 0xd4, 0xb7, 0x2f, 0x6c, 0x5c, 0xba, 0x04, 0x91, 0x76, 0x17, 0x94, 0x2b, 0x48, 0x6b, -0x5e, 0xda, 0x54, 0x8b, 0xe4, 0x8c, 0x24, 0xe0, 0x47, 0xca, 0x8f, 0xb5, 0x77, 0x21, 0xc3, 0x79, -0xac, 0xb8, 0x18, 0x99, 0x0a, 0x44, 0xd3, 0x42, 0x6b, 0x4b, 0x8b, 0xd0, 0xd8, 0xd2, 0x8c, 0x82, -0x6b, 0x69, 0x28, 0xd4, 0x12, 0x12, 0x7e, 0xb4, 0x88, 0x12, 0x06, 0x1f, 0x0c, 0xd1, 0x0c, 0x89, -0x60, 0x28, 0x69, 0x69, 0x6e, 0x0d, 0xb5, 0x34, 0x1a, 0x30, 0xbf, 0xfa, 0xc6, 0x3a, 0x61, 0x71, -0xb3, 0x30, 0xbb, 0x65, 0x69, 0x73, 0x6b, 0xe3, 0xe2, 0x25, 0xad, 0x85, 0xc9, 0x93, 0x97, 0x8c, -0x25, 0x38, 0x70, 0x95, 0x97, 0xc2, 0x7d, 0x95, 0xa5, 0xde, 0xa9, 0xbe, 0x07, 0xe4, 0xf7, 0x7d, -0x15, 0x2e, 0xd9, 0xe1, 0x2d, 0x7d, 0x00, 0x9b, 0xae, 0xd8, 0x05, 0x0f, 0xf8, 0xca, 0xab, 0x4b, -0x81, 0x59, 0xb9, 0x80, 0xaa, 0xd2, 0xd2, 0x59, 0x50, 0x5a, 0x83, 0xc4, 0xec, 0x2d, 0x15, 0xbc, -0x88, 0xab, 0xb8, 0xe7, 0x3e, 0xa7, 0x07, 0xca, 0xbd, 0x65, 0xf7, 0x61, 0x8e, 0x55, 0xb3, 0x04, -0xe6, 0xaa, 0x2c, 0xf6, 0x95, 0x7a, 0xab, 0x5d, 0xe5, 0x3e, 0x70, 0x95, 0x56, 0x94, 0x52, 0x1e, -0x98, 0x5f, 0x75, 0x29, 0x05, 0x90, 0x6d, 0x08, 0x70, 0xcd, 0xa9, 0x64, 0xef, 0x32, 0x5f, 0x69, -0x29, 0x73, 0x54, 0x95, 0x56, 0x57, 0xfa, 0xee, 0xab, 0x2e, 0x2d, 0xa9, 0x26, 0x67, 0xc9, 0x7d, -0xb3, 0x67, 0x63, 0x7a, 0x04, 0xc2, 0x5b, 0x3c, 0xbb, 0x14, 0x33, 0x77, 0x97, 0x3b, 0xcb, 0x63, -0x5e, 0x81, 0x8a, 0x81, 0xd9, 0xf7, 0xf9, 0x4a, 0x85, 0x92, 0xe2, 0x12, 0x77, 0x29, 0x90, 0xe9, -0x0d, 0xa1, 0xec, 0x3e, 0x9f, 0x50, 0xe2, 0x2e, 0xf6, 0x41, 0x59, 0xc5, 0x9c, 0x2a, 0x37, 0x54, -0x61, 0x81, 0xa5, 0xde, 0xd9, 0xf7, 0xb9, 0x30, 0x75, 0xd5, 0x0f, 0x88, 0x02, 0xaa, 0xbe, 0x57, -0x55, 0x5d, 0x3a, 0x1b, 0xaa, 0x30, 0x87, 0x1f, 0xb0, 0x22, 0x4b, 0xee, 0xab, 0xfc, 0xde, 0x0f, -0x10, 0xa2, 0x1f, 0x94, 0xb9, 0x15, 0x78, 0xc9, 0xa5, 0x54, 0x8a, 0x9c, 0x65, 0xee, 0x1f, 0x94, -0x21, 0xad, 0x2b, 0xb1, 0xe7, 0xf8, 0x58, 0x94, 0xb9, 0xf7, 0x55, 0xcc, 0x41, 0x90, 0x08, 0x3d, -0x42, 0x45, 0xb9, 0x17, 0x01, 0x29, 0x9e, 0x55, 0x2a, 0xbb, 0xe6, 0x54, 0x95, 0xfa, 0x60, 0x6a, -0xec, 0x6f, 0x8e, 0x77, 0x96, 0xf7, 0xbe, 0x07, 0xbc, 0x8a, 0x0f, 0xbc, 0xb3, 0xa1, 0xb8, 0x0a, -0x2a, 0x6b, 0xa0, 0xaa, 0x02, 0x6c, 0xb0, 0xe4, 0xc7, 0x4b, 0x0a, 0x89, 0x79, 0xc4, 0x38, 0x43, -0x65, 0x45, 0x9c, 0x6d, 0xcc, 0x25, 0x26, 0x11, 0x0c, 0xd5, 0xfb, 0x97, 0x08, 0x4d, 0x2d, 0xd8, -0x05, 0x5b, 0x42, 0xb0, 0xb0, 0xa5, 0xae, 0x7e, 0x49, 0x7d, 0xeb, 0x28, 0x4f, 0x9a, 0x53, 0x5d, -0x36, 0x75, 0xda, 0x74, 0xe4, 0x7b, 0xad, 0x4b, 0x17, 0x33, 0x1e, 0x10, 0xfb, 0x70, 0xbd, 0x85, -0x14, 0xb2, 0x64, 0x12, 0xf7, 0xd4, 0x37, 0xb7, 0x15, 0x2e, 0xac, 0xab, 0x7b, 0x10, 0xa0, 0x1c, -0xbb, 0x11, 0xc3, 0xad, 0xdc, 0x9d, 0x15, 0x63, 0x28, 0x02, 0x23, 0x2b, 0x28, 0xae, 0x45, 0xc6, -0x01, 0x55, 0x8b, 0x5a, 0x7e, 0xf4, 0x03, 0xa2, 0xc1, 0x1f, 0x94, 0x93, 0x35, 0x94, 0x85, 0x48, -0xc6, 0xf5, 0x75, 0x42, 0xeb, 0x8f, 0x90, 0xef, 0xdd, 0x75, 0x9d, 0x44, 0x88, 0xcf, 0xe4, 0x04, -0x8b, 0x1a, 0x71, 0xcb, 0x1a, 0xb6, 0x02, 0x60, 0x27, 0x74, 0x2e, 0xe5, 0xd1, 0xfe, 0xa7, 0x0d, -0x1b, 0xbc, 0x73, 0xc8, 0xd6, 0x59, 0x41, 0x61, 0x7c, 0x37, 0xc3, 0x90, 0xbc, 0x9b, 0x81, 0x66, -0x54, 0xde, 0x5a, 0x74, 0xaa, 0x9b, 0xec, 0xc6, 0xe7, 0x74, 0xc0, 0xe9, 0x77, 0x1d, 0xd2, 0xc9, -0x9c, 0x0e, 0xc2, 0x86, 0x74, 0x86, 0x7d, 0x6b, 0x67, 0xdf, 0xce, 0xdd, 0xd1, 0x01, 0xc9, 0xd2, -0x05, 0x25, 0xc6, 0x25, 0xe7, 0xb3, 0xd2, 0x15, 0x3a, 0x3f, 0x41, 0xfb, 0x9e, 0xfe, 0xd8, 0x18, -0x9f, 0x8f, 0x49, 0x8d, 0x59, 0xb1, 0xe4, 0x34, 0x33, 0x3f, 0x96, 0xfe, 0xc4, 0xce, 0xed, 0x49, -0xaa, 0x43, 0x05, 0x1d, 0x90, 0xf6, 0xc7, 0x81, 0xe0, 0x8c, 0xb1, 0xbb, 0x90, 0xe4, 0x33, 0xd1, -0xff, 0x3f, 0xf6, 0xfe, 0x3d, 0xbe, 0xa9, 0xeb, 0x4a, 0x14, 0xc7, 0xf7, 0x91, 0x65, 0x21, 0x84, -0xe2, 0x28, 0x8e, 0xe2, 0x71, 0xa9, 0x2f, 0x3d, 0xa8, 0x42, 0x11, 0xb6, 0xec, 0xe3, 0x38, 0x0e, -0xe3, 0x52, 0x0f, 0x91, 0xe5, 0x07, 0xb2, 0x30, 0xc2, 0x91, 0x0d, 0xf1, 0xe4, 0xd2, 0xf4, 0x18, -0x6c, 0xc9, 0x06, 0x3f, 0x54, 0x59, 0x10, 0xc2, 0xf8, 0xdb, 0x91, 0x8d, 0x43, 0x9d, 0x84, 0xc6, -0x04, 0x08, 0x65, 0x7a, 0xf3, 0xed, 0x64, 0x72, 0x73, 0x53, 0x86, 0x90, 0x84, 0x52, 0x26, 0x97, -0xcb, 0x65, 0x32, 0x2e, 0x4d, 0x33, 0x84, 0x52, 0x0a, 0x84, 0x52, 0x4a, 0x99, 0x94, 0xa6, 0x8c, -0x93, 0x92, 0x07, 0x94, 0xd2, 0x34, 0x35, 0x46, 0xe7, 0xb7, 0xd6, 0xda, 0xe7, 0xe8, 0x61, 0x4c, -0x4a, 0xe7, 0xf7, 0xfb, 0xe3, 0xf7, 0x87, 0xce, 0xc7, 0xf2, 0x39, 0xfb, 0xfd, 0x5a, 0x7b, 0xed, -0xb5, 0xd6, 0xde, 0x7b, 0x2d, 0x76, 0xce, 0x56, 0xac, 0x5c, 0x15, 0x8b, 0x95, 0x77, 0xd7, 0x32, -0xd9, 0xb0, 0x67, 0x20, 0x64, 0x5c, 0x2b, 0xec, 0xdb, 0xd0, 0xf3, 0x09, 0x3f, 0x45, 0x77, 0x7c, -0xc3, 0xf1, 0xd8, 0xe2, 0x3f, 0x18, 0x3f, 0xf5, 0x6d, 0x0f, 0x5a, 0xf1, 0x46, 0x23, 0xba, 0xa5, -0xfb, 0x8c, 0xef, 0xe2, 0xfd, 0x43, 0x57, 0xac, 0x65, 0x04, 0x6d, 0xc7, 0x89, 0xf7, 0x55, 0x7c, -0x1a, 0xb4, 0xda, 0x7c, 0x96, 0x4a, 0xb6, 0x20, 0x29, 0x5d, 0x03, 0x2e, 0x67, 0x10, 0x6d, 0x45, -0xfd, 0x22, 0xc6, 0x4c, 0x77, 0xad, 0x86, 0xd5, 0x6e, 0xfa, 0x9c, 0xd5, 0x28, 0x29, 0x9c, 0x83, -0xbb, 0x7f, 0x06, 0x96, 0x8b, 0x3a, 0x28, 0x84, 0x9d, 0x2c, 0xcf, 0x56, 0xc4, 0x84, 0x90, 0x99, -0x5c, 0xfb, 0xe9, 0xc6, 0x73, 0x21, 0xc4, 0xbb, 0xc6, 0x1c, 0xb9, 0x77, 0x7a, 0x07, 0x4a, 0xab, -0xe6, 0x78, 0x59, 0xc9, 0x1c, 0x37, 0x9b, 0x17, 0x56, 0xe0, 0xff, 0xfc, 0xe4, 0x79, 0x2f, 0xb1, -0x21, 0xe5, 0xb4, 0xe6, 0x95, 0xe4, 0x79, 0xae, 0xc0, 0xe0, 0xc2, 0x0f, 0x58, 0x2e, 0x5a, 0x96, -0x0d, 0x32, 0xc5, 0xd2, 0xf0, 0xd1, 0xf2, 0x02, 0x65, 0x3f, 0xd7, 0x43, 0x2b, 0xe9, 0xec, 0xec, -0x06, 0xfd, 0x23, 0x95, 0xa9, 0x32, 0xc7, 0x9f, 0x99, 0x6b, 0xb9, 0x0c, 0x71, 0x8b, 0xb6, 0x63, -0x9d, 0x94, 0x25, 0x9e, 0x9a, 0xf0, 0x6f, 0xf1, 0x1f, 0x88, 0x57, 0x92, 0x65, 0x0b, 0x1d, 0xb7, -0x19, 0x9e, 0x94, 0x3e, 0x9e, 0xba, 0xaa, 0xa5, 0x4c, 0xa6, 0xf8, 0x19, 0x70, 0x5b, 0xa9, 0xba, -0x45, 0x50, 0x8e, 0x19, 0x65, 0xf2, 0x21, 0x29, 0xc7, 0xd5, 0xcb, 0x8c, 0xd8, 0x86, 0xe4, 0x5e, -0x74, 0xba, 0x16, 0x91, 0xe4, 0x3d, 0xe2, 0xeb, 0x72, 0x42, 0xa2, 0xda, 0x4b, 0xb6, 0xab, 0xf5, -0x36, 0xd4, 0xb3, 0x68, 0x09, 0x2f, 0x3f, 0xfe, 0x12, 0x43, 0x2b, 0x5b, 0xfa, 0x2f, 0xfa, 0x98, -0xc9, 0xf3, 0xb4, 0xe7, 0x9f, 0x99, 0x3e, 0xb9, 0xa3, 0x9e, 0xd8, 0xb3, 0xb4, 0xe1, 0x19, 0x32, -0x4c, 0x79, 0xe2, 0xf0, 0x89, 0xc3, 0x51, 0x66, 0xcd, 0xb7, 0xf9, 0x44, 0x5d, 0xf2, 0x44, 0x95, -0xa7, 0xcc, 0xa9, 0xdd, 0xc2, 0xe6, 0xb7, 0x90, 0x3b, 0x58, 0xf3, 0xbd, 0xfd, 0x6c, 0x3a, 0x2b, -0xc0, 0x2f, 0xb2, 0x80, 0x26, 0xe2, 0x17, 0xe4, 0x6e, 0xc7, 0x77, 0xa2, 0x84, 0x32, 0x5e, 0xab, -0x8a, 0x05, 0x85, 0xbd, 0xcc, 0x6e, 0x47, 0x5d, 0x5f, 0xbd, 0xcc, 0x05, 0x35, 0x2e, 0xb5, 0x17, -0x01, 0x9f, 0xb5, 0x6a, 0xcf, 0x60, 0x97, 0x2e, 0xba, 0x0a, 0xb5, 0xd2, 0x86, 0x8c, 0x91, 0x2c, -0x18, 0x51, 0xbc, 0xd1, 0xbb, 0x35, 0xa4, 0x0f, 0xeb, 0x50, 0xdb, 0x2b, 0xd6, 0x1a, 0xad, 0x00, -0x07, 0x2b, 0xcc, 0x45, 0x80, 0x08, 0xcc, 0xc1, 0x52, 0x3a, 0x95, 0xd5, 0xcd, 0xca, 0x2d, 0x16, -0x2b, 0xc3, 0xfd, 0xbf, 0xbb, 0xdc, 0xcc, 0x58, 0x7f, 0x91, 0x4d, 0x97, 0x74, 0xb6, 0x62, 0x56, -0x1e, 0x18, 0x90, 0x04, 0x3a, 0x2b, 0xa1, 0x7c, 0x99, 0x74, 0xcb, 0xca, 0xeb, 0x7c, 0x2f, 0xb3, -0x73, 0xa1, 0x1c, 0x39, 0x1f, 0xf8, 0xf8, 0x7b, 0xd9, 0x97, 0x8d, 0x33, 0x82, 0x7a, 0xd9, 0x14, -0x06, 0xe6, 0x68, 0x5f, 0xac, 0xe7, 0x43, 0x59, 0x67, 0x17, 0xee, 0xf2, 0x68, 0xe9, 0xbd, 0xab, -0x99, 0x39, 0x35, 0xad, 0xaf, 0x9b, 0x9d, 0x0c, 0x19, 0xa1, 0xf4, 0x57, 0x98, 0x31, 0xe4, 0x04, -0xd7, 0xf1, 0x50, 0xa1, 0xef, 0x15, 0x96, 0x1f, 0x2a, 0x90, 0x6d, 0x62, 0xb5, 0xc5, 0x82, 0x7b, -0x39, 0xae, 0x6e, 0xba, 0x9d, 0xdd, 0x20, 0x56, 0x07, 0x36, 0x58, 0x46, 0x03, 0x43, 0xb2, 0xde, -0x61, 0x5e, 0xc7, 0xf6, 0x0d, 0xf5, 0xbc, 0xe3, 0x29, 0x77, 0xb2, 0x39, 0x30, 0x06, 0x6c, 0xdd, -0x9c, 0xd5, 0x82, 0x95, 0x45, 0xe1, 0xbf, 0x85, 0xf5, 0x8b, 0x45, 0x82, 0x25, 0x32, 0xe3, 0x5d, -0xd4, 0xaf, 0x1b, 0x5b, 0x84, 0x1c, 0xf9, 0xb0, 0x54, 0xc9, 0x84, 0x07, 0x62, 0x52, 0x91, 0x60, -0xf6, 0x3f, 0xd3, 0x38, 0x02, 0xfe, 0x43, 0xf5, 0x9a, 0xcd, 0x56, 0xcd, 0x7f, 0x5b, 0xe3, 0x08, -0xc0, 0x4e, 0x25, 0x6a, 0x21, 0xa6, 0x18, 0xc3, 0xe4, 0x52, 0x43, 0xd0, 0xd6, 0xc5, 0xc9, 0xd8, -0x7b, 0x8f, 0x1f, 0x1f, 0x38, 0x8e, 0xb6, 0x2d, 0x36, 0xd9, 0x8b, 0x84, 0xfc, 0xb0, 0x9f, 0x7a, -0xd5, 0x0f, 0x6d, 0xdb, 0x5c, 0x7b, 0x91, 0x3d, 0x8d, 0x6d, 0x13, 0x0a, 0xe8, 0x2c, 0x32, 0xb4, -0x0d, 0x47, 0x12, 0xdb, 0xd7, 0xf0, 0xab, 0xfe, 0x82, 0xf4, 0x53, 0x59, 0x92, 0x8e, 0x9f, 0x57, -0xbe, 0x26, 0x46, 0x4c, 0xae, 0x55, 0x08, 0x77, 0xd7, 0x23, 0x74, 0x96, 0x6b, 0x16, 0x9e, 0x52, -0x21, 0xb7, 0x9c, 0xf8, 0xf2, 0x24, 0xe2, 0x74, 0x71, 0xb8, 0x58, 0x72, 0x49, 0x79, 0x1f, 0x4f, -0xc2, 0x25, 0xcf, 0x4f, 0x91, 0xb6, 0xb1, 0xed, 0xa2, 0x3b, 0x9c, 0x90, 0x2d, 0x5f, 0x8f, 0x10, -0x1e, 0x89, 0xe0, 0xf9, 0xe5, 0x5f, 0xfc, 0x2f, 0x18, 0x07, 0x5f, 0xf2, 0x14, 0x5e, 0xbc, 0x06, -0x38, 0xee, 0x86, 0x85, 0x97, 0x58, 0x2e, 0xb4, 0x2f, 0xcf, 0xf3, 0x5d, 0x3a, 0x75, 0x02, 0x38, -0x8f, 0xc6, 0xe2, 0x55, 0xe6, 0x7a, 0x70, 0xd4, 0x00, 0x2c, 0xda, 0x17, 0xdc, 0x74, 0xd6, 0x7f, -0x06, 0x9d, 0xc4, 0x76, 0x86, 0xf3, 0xd0, 0x26, 0x57, 0xca, 0xec, 0xae, 0x48, 0xf9, 0x5e, 0x90, -0xa2, 0x2f, 0xa3, 0x4b, 0xbd, 0x61, 0xa6, 0xf3, 0x1f, 0x98, 0x38, 0xda, 0x38, 0x82, 0x27, 0xef, -0x50, 0xa2, 0xaf, 0xe9, 0x9c, 0x86, 0xd9, 0xe2, 0x9c, 0xdd, 0xc1, 0x5c, 0xac, 0x94, 0x7a, 0x60, -0xac, 0xf6, 0x09, 0x98, 0xf1, 0xbb, 0x58, 0x43, 0xc8, 0x23, 0x15, 0xb2, 0x52, 0xf4, 0xb9, 0x7d, -0x3e, 0xc4, 0x71, 0x81, 0xef, 0x4e, 0x56, 0x10, 0x14, 0xe1, 0xbf, 0x18, 0x9c, 0x09, 0x61, 0x0d, -0x68, 0xb1, 0x2e, 0x7e, 0x10, 0x35, 0x13, 0x60, 0xac, 0x9c, 0xab, 0x04, 0x75, 0x98, 0x5f, 0x83, -0x67, 0x27, 0xc3, 0xb3, 0xe9, 0x0d, 0x78, 0x93, 0x2b, 0x8e, 0xd6, 0x0c, 0x21, 0x35, 0xd7, 0x4b, -0xcd, 0xe6, 0xd3, 0x69, 0xc1, 0x40, 0xd8, 0x9a, 0x7e, 0x06, 0x05, 0x6f, 0xd2, 0x41, 0x4a, 0x4b, -0x00, 0xca, 0xe0, 0xf5, 0xc8, 0x2d, 0x9c, 0x0b, 0xf0, 0xee, 0x7c, 0x22, 0x1c, 0x87, 0xb7, 0x91, -0xcf, 0x64, 0xf8, 0x32, 0xa3, 0x86, 0xe0, 0x0b, 0xc3, 0xf0, 0x65, 0xe1, 0x27, 0x83, 0xfe, 0x78, -0xa8, 0x71, 0x44, 0x84, 0x11, 0x5d, 0x8e, 0x7b, 0x35, 0xb8, 0x53, 0x60, 0x84, 0x3e, 0x9c, 0xcf, -0xcf, 0x40, 0xdf, 0xcb, 0x68, 0x0c, 0x0d, 0x9b, 0x07, 0x03, 0x31, 0x94, 0x08, 0xe3, 0x7e, 0x2c, -0x8c, 0xd5, 0x39, 0x3a, 0x29, 0x8e, 0x1a, 0x03, 0x0a, 0x49, 0xa7, 0xc6, 0x58, 0x49, 0x09, 0x61, -0x39, 0x6e, 0x9b, 0x7b, 0xac, 0xe6, 0xfd, 0x64, 0x9f, 0xb4, 0x8c, 0x94, 0xae, 0x62, 0xc7, 0x24, -0x23, 0xfc, 0x3f, 0x4a, 0xba, 0xdb, 0x29, 0xfe, 0x6d, 0x71, 0xe8, 0x7b, 0x17, 0x3f, 0x47, 0x27, -0x7c, 0x42, 0x1a, 0xac, 0xcf, 0xa7, 0xf4, 0xa3, 0xda, 0x23, 0xb7, 0xa3, 0x2e, 0x05, 0xc8, 0x01, -0xe2, 0x9c, 0x84, 0x3a, 0x89, 0x30, 0xbe, 0x5f, 0x24, 0xbb, 0x53, 0x14, 0x9a, 0x5b, 0x50, 0xb8, -0x8a, 0x95, 0xab, 0xf7, 0x89, 0xdf, 0xf0, 0x6f, 0x9b, 0x19, 0x2b, 0x79, 0xd2, 0xbf, 0x4d, 0x5c, -0x64, 0x03, 0xdf, 0xc0, 0xe3, 0x49, 0xec, 0x83, 0x6e, 0xda, 0x47, 0xba, 0x23, 0x98, 0x4b, 0xb0, -0xb3, 0x37, 0x6c, 0x4c, 0x86, 0x42, 0xa9, 0xe5, 0x38, 0x1f, 0x3d, 0xa5, 0x4c, 0xc0, 0x51, 0xf2, -0xad, 0x52, 0x67, 0x2e, 0x8c, 0x40, 0xc8, 0x06, 0xae, 0xe3, 0xa1, 0x52, 0x18, 0xb1, 0xfc, 0x50, -0x9e, 0xec, 0xfc, 0xf9, 0x0f, 0x2d, 0x77, 0xd2, 0xcc, 0x5d, 0xc5, 0x67, 0x6e, 0x5e, 0x8c, 0xaf, -0x5d, 0x0e, 0x2c, 0x71, 0x03, 0x5f, 0x47, 0xbe, 0x37, 0xda, 0x73, 0x06, 0xdc, 0x2e, 0x3e, 0x1b, -0x3e, 0x3d, 0x8a, 0x7a, 0x08, 0x92, 0xee, 0xf1, 0x46, 0x70, 0x8b, 0x5a, 0x0b, 0xee, 0x78, 0xdf, -0xc1, 0xd0, 0xce, 0x62, 0x20, 0x26, 0x31, 0x75, 0xf6, 0x70, 0xdb, 0x86, 0x78, 0xc3, 0xcc, 0xc9, -0xa1, 0xce, 0x7f, 0x60, 0xbc, 0x02, 0xa0, 0xb5, 0x01, 0xc6, 0x6f, 0x17, 0xab, 0x84, 0xd4, 0xc6, -0xe4, 0x1a, 0xd4, 0x82, 0x9a, 0x8a, 0xbe, 0x6d, 0xc3, 0x1c, 0x06, 0xa2, 0xda, 0xdc, 0xf2, 0x3a, -0xdc, 0xa8, 0xdd, 0x39, 0x19, 0xff, 0xee, 0x7e, 0x64, 0x8a, 0x98, 0x98, 0x86, 0x33, 0xb2, 0x10, -0x1f, 0x40, 0xa8, 0x25, 0x0d, 0x63, 0x64, 0xa5, 0xe3, 0x0b, 0x08, 0xb7, 0x92, 0x2b, 0x6b, 0x32, -0xb6, 0xc0, 0xb3, 0x74, 0xb6, 0x19, 0x6a, 0x89, 0x0f, 0x25, 0xda, 0xa0, 0xea, 0xb5, 0x18, 0x3f, -0x48, 0xab, 0x17, 0xb4, 0x7a, 0x36, 0xea, 0x45, 0xb5, 0x27, 0x47, 0x96, 0x6e, 0x50, 0x1c, 0x98, -0xc8, 0x6d, 0x19, 0xc1, 0x53, 0xf7, 0x78, 0x9f, 0x4f, 0x5d, 0x31, 0x61, 0x15, 0x82, 0x39, 0x73, -0x3e, 0xe8, 0xd4, 0x20, 0xc4, 0xe1, 0x68, 0x19, 0x89, 0xfe, 0xb7, 0x3a, 0x1d, 0xf4, 0x44, 0x09, -0x87, 0x0f, 0x9c, 0x2d, 0xd7, 0x87, 0xd4, 0xb9, 0x35, 0x13, 0x73, 0x8f, 0xce, 0xaa, 0xd3, 0xf1, -0x33, 0xfe, 0x30, 0x42, 0xe6, 0x84, 0xd6, 0x3e, 0x75, 0xd5, 0xd4, 0xb4, 0x64, 0x25, 0x73, 0xc4, -0x7a, 0xb4, 0x8c, 0xd8, 0x9c, 0xcc, 0xb5, 0x77, 0x27, 0x2b, 0x0d, 0x35, 0xe3, 0x0d, 0x44, 0x9e, -0x37, 0xe5, 0x69, 0xc4, 0x12, 0x26, 0x60, 0xa6, 0x45, 0xca, 0x78, 0xcb, 0x94, 0xf9, 0x5a, 0xda, -0x42, 0x5d, 0xcb, 0x88, 0xe4, 0x63, 0x66, 0xd4, 0x62, 0x25, 0xb3, 0x89, 0x38, 0xcc, 0xc8, 0xf3, -0x9e, 0x42, 0xa1, 0x1c, 0x53, 0x5c, 0x1b, 0x4f, 0x85, 0x76, 0x4d, 0xcf, 0xd5, 0x04, 0xe9, 0x9b, -0xb5, 0xf7, 0x66, 0x2d, 0x77, 0x48, 0x59, 0xb2, 0x98, 0x35, 0xba, 0x8b, 0xc9, 0x21, 0x2b, 0x6a, -0xe4, 0x0f, 0xe5, 0xc0, 0xff, 0x43, 0x41, 0x2a, 0x4d, 0x59, 0xde, 0x32, 0x42, 0x61, 0x2d, 0xa1, -0x7e, 0xc8, 0xa5, 0x31, 0xe5, 0xae, 0x50, 0x21, 0xeb, 0x22, 0x8b, 0x43, 0x5d, 0xdc, 0x12, 0x2a, -0x49, 0x94, 0x73, 0x70, 0xcd, 0xe7, 0x73, 0xac, 0xcc, 0xdb, 0x38, 0x42, 0xb9, 0x55, 0xfa, 0x76, -0x09, 0xeb, 0x42, 0x26, 0x6d, 0xe6, 0x51, 0xff, 0xb4, 0xf5, 0x3a, 0xc8, 0x32, 0x11, 0x9e, 0xc1, -0xcc, 0x4b, 0x96, 0x16, 0xff, 0xb8, 0x65, 0x04, 0xd6, 0x95, 0x36, 0xd6, 0x21, 0x1b, 0x9a, 0xc8, -0x9a, 0x11, 0xfa, 0x7e, 0xda, 0xc5, 0xeb, 0x20, 0x44, 0x83, 0x8c, 0x3d, 0x05, 0x10, 0xf5, 0x06, -0xce, 0x35, 0xa2, 0x2c, 0x86, 0xd1, 0x0e, 0x76, 0xca, 0x29, 0xf3, 0x8d, 0x84, 0x4f, 0x0b, 0xd9, -0x85, 0x90, 0x03, 0x6f, 0x0d, 0xfd, 0xe2, 0xff, 0x6a, 0x37, 0x19, 0xa8, 0xb7, 0x50, 0xaf, 0xc2, -0x7c, 0x9b, 0xc1, 0xae, 0x57, 0xe1, 0xe2, 0x79, 0xb9, 0xcd, 0x07, 0x7d, 0x14, 0x4a, 0x8c, 0x80, -0x0b, 0xca, 0xa5, 0xef, 0x67, 0x48, 0xbf, 0x48, 0xae, 0x94, 0x8d, 0xa5, 0xfc, 0x62, 0x14, 0xf5, -0x96, 0x13, 0xee, 0x2b, 0xc7, 0xf8, 0x0f, 0x8e, 0xd6, 0xb0, 0xbb, 0xdc, 0x42, 0xb9, 0xec, 0x58, -0x37, 0xef, 0xcc, 0xc8, 0x42, 0xd2, 0x70, 0x5e, 0x78, 0x3b, 0xca, 0x8b, 0xb3, 0x96, 0x01, 0xb4, -0x8e, 0xd5, 0x04, 0x01, 0x92, 0xc7, 0x4a, 0x06, 0x5d, 0x26, 0x03, 0x5a, 0x21, 0xba, 0x20, 0xae, -0x12, 0x92, 0x74, 0xe9, 0x26, 0x3b, 0xde, 0xfd, 0x74, 0xbf, 0xb9, 0x8b, 0xd5, 0x84, 0xd8, 0xf4, -0x17, 0xbf, 0x2e, 0xe0, 0x3d, 0xd5, 0xf7, 0xf1, 0x0c, 0xfa, 0x7f, 0xfe, 0xa7, 0x6b, 0xed, 0xbc, -0xd3, 0x23, 0xf5, 0x97, 0x74, 0xcb, 0x0a, 0x7d, 0x32, 0x9b, 0x6e, 0xa7, 0x1b, 0x9c, 0xa6, 0xb0, -0x72, 0x37, 0x6a, 0xcf, 0x47, 0x7b, 0xb2, 0x40, 0x53, 0xc0, 0x8a, 0xef, 0x0c, 0xce, 0x8c, 0x64, -0xef, 0x45, 0x7a, 0x75, 0xb7, 0x7d, 0x31, 0xf8, 0x9b, 0xef, 0x06, 0x8a, 0x91, 0x9d, 0x64, 0x16, -0xe8, 0x99, 0x4d, 0x10, 0x7e, 0x28, 0x54, 0x18, 0xcd, 0xdd, 0x87, 0xe1, 0x9b, 0xba, 0xf5, 0x91, -0x6c, 0xd9, 0x18, 0xfd, 0x1c, 0xb8, 0xbe, 0x1e, 0xf9, 0x02, 0xa4, 0x59, 0x97, 0x92, 0xe2, 0xd7, -0x90, 0xe2, 0x21, 0x88, 0xdf, 0x10, 0x5c, 0x41, 0x31, 0x96, 0x77, 0x5b, 0x23, 0xb7, 0x43, 0x9c, -0x66, 0x6b, 0x25, 0xc3, 0xf4, 0x68, 0x53, 0x2c, 0x5b, 0x36, 0x45, 0xbf, 0x00, 0xdf, 0xee, 0x6e, -0x63, 0xe4, 0xf3, 0x30, 0x56, 0xb9, 0xf2, 0x3c, 0x73, 0x0c, 0x1a, 0x92, 0x15, 0x2a, 0xc1, 0xb7, -0x51, 0x17, 0x72, 0xf0, 0x1c, 0x21, 0x9f, 0xf3, 0x08, 0xdf, 0xa5, 0xfd, 0xec, 0xd7, 0x9b, 0xf1, -0xa4, 0xa8, 0x85, 0xe6, 0xda, 0x81, 0x4f, 0xfc, 0x78, 0x1b, 0xdb, 0xf8, 0x7a, 0xe4, 0xbf, 0x61, -0x8d, 0xf5, 0xb9, 0xdd, 0x30, 0x82, 0xd1, 0x3b, 0xb1, 0x76, 0xd9, 0xe5, 0xdd, 0x6e, 0x28, 0x61, -0x3a, 0xfa, 0x1b, 0x5f, 0xe9, 0x2e, 0x80, 0x52, 0xa7, 0x91, 0xff, 0x27, 0xdd, 0x4c, 0x1f, 0xc1, -0xb2, 0xf1, 0x7c, 0xae, 0xf1, 0x59, 0x48, 0xbd, 0x3b, 0x7a, 0x3b, 0x85, 0xf8, 0x7b, 0x98, 0x71, -0x53, 0xe4, 0x8e, 0xbd, 0xb1, 0x6e, 0x66, 0x1c, 0x02, 0xff, 0x75, 0xd1, 0x7c, 0xf4, 0xd7, 0x35, -0x77, 0xe7, 0x45, 0xee, 0xda, 0x1b, 0x83, 0xd0, 0x1e, 0xc8, 0x25, 0x6f, 0x5f, 0xac, 0x8b, 0x19, -0x97, 0xcb, 0x4c, 0xf7, 0xed, 0xc8, 0x4c, 0xcc, 0x5d, 0x77, 0xa5, 0x87, 0xe9, 0xae, 0x46, 0x3f, -0x8f, 0x71, 0xa7, 0xbd, 0x86, 0xf6, 0x8a, 0x29, 0x67, 0x0f, 0xe4, 0x40, 0xad, 0xc9, 0xba, 0x04, -0xf8, 0xfb, 0x3b, 0x3d, 0x0f, 0x45, 0x03, 0x18, 0x43, 0x90, 0xbb, 0xc5, 0x88, 0x8d, 0x6a, 0x95, -0x0f, 0xb9, 0x39, 0xd1, 0xcf, 0x60, 0x46, 0x3b, 0x61, 0x94, 0xca, 0x2c, 0xb3, 0xec, 0xb5, 0x94, -0xea, 0x43, 0xa8, 0xd1, 0xc1, 0x1e, 0x73, 0xf4, 0xc1, 0x7d, 0xe0, 0x3f, 0xed, 0xaa, 0xcc, 0xa6, -0xbd, 0x4f, 0xfe, 0x1f, 0x41, 0xcf, 0x0f, 0xd3, 0xd7, 0xc7, 0xe0, 0x7f, 0x0e, 0xe2, 0x6f, 0xa7, -0x3e, 0x63, 0x98, 0x4f, 0x4f, 0x01, 0x85, 0x5c, 0x86, 0x72, 0x1e, 0x46, 0xed, 0xcd, 0x13, 0x59, -0x38, 0x07, 0xda, 0xa1, 0xe9, 0x90, 0x7e, 0x27, 0xc5, 0x9b, 0x06, 0x35, 0xbe, 0xd8, 0x93, 0xc3, -0xfb, 0x19, 0x72, 0xf8, 0x36, 0x84, 0x30, 0x72, 0x99, 0x20, 0xd5, 0x9b, 0xbc, 0xdf, 0xc1, 0x7f, -0x50, 0x2a, 0x82, 0x95, 0xb4, 0x88, 0xe5, 0x4b, 0x68, 0x5b, 0xe0, 0x36, 0x84, 0xdf, 0x79, 0xfe, -0x32, 0x7e, 0x8f, 0x97, 0x19, 0x8e, 0xc9, 0xcc, 0x30, 0x2a, 0xdd, 0x86, 0xdc, 0x49, 0x19, 0x6b, -0x19, 0x09, 0x32, 0xc3, 0x5e, 0x71, 0x35, 0xcb, 0x47, 0xfa, 0x97, 0xdf, 0x06, 0xb5, 0x37, 0xca, -0x7a, 0x7b, 0x37, 0x2b, 0x2d, 0xab, 0x64, 0x67, 0x61, 0x05, 0xb2, 0x7c, 0xff, 0x23, 0xe6, 0x82, -0x58, 0x9b, 0x24, 0xb4, 0x6a, 0x50, 0xe0, 0x3f, 0x70, 0xf5, 0x08, 0xde, 0x58, 0xff, 0x74, 0x73, -0xcb, 0x88, 0x37, 0x6a, 0xe4, 0xd8, 0x7f, 0xcc, 0xa2, 0x9d, 0x77, 0x60, 0x86, 0x32, 0x48, 0xf7, -0x5b, 0xd1, 0x0d, 0x78, 0xcd, 0x08, 0xa9, 0x96, 0xe5, 0x56, 0x2a, 0xa7, 0x50, 0x23, 0x0c, 0x7c, -0xfb, 0x80, 0x82, 0x75, 0xc1, 0x2a, 0x2f, 0x42, 0x79, 0x40, 0x6f, 0xcf, 0x8e, 0x0d, 0xdb, 0xe9, -0x46, 0xd2, 0x7f, 0xfe, 0xc9, 0x0b, 0x7d, 0xf1, 0x09, 0xfa, 0x02, 0x24, 0xe7, 0xdb, 0x56, 0xb3, -0x02, 0x2c, 0xdb, 0xee, 0x64, 0x96, 0x7d, 0x2f, 0x53, 0xd9, 0x16, 0x69, 0x3a, 0xe0, 0x68, 0x23, -0xad, 0xac, 0x32, 0x42, 0x3d, 0xb7, 0xe2, 0x66, 0xd0, 0xd9, 0x21, 0x0d, 0xc6, 0x45, 0xfa, 0xe1, -0x7b, 0x54, 0xcf, 0xec, 0x0b, 0x1c, 0x93, 0xff, 0xe9, 0x08, 0xaf, 0x19, 0x50, 0x30, 0x50, 0x6a, -0x13, 0x94, 0x8a, 0xf0, 0x96, 0x7d, 0xfc, 0xe6, 0xa5, 0x64, 0xef, 0xba, 0xbb, 0x83, 0x59, 0x01, -0xeb, 0x26, 0xca, 0xca, 0x25, 0x5e, 0x06, 0x62, 0xfd, 0x12, 0x5b, 0x96, 0xfd, 0x04, 0xa4, 0xdf, -0x0c, 0xf4, 0x7b, 0x3e, 0xaf, 0xff, 0x54, 0xfd, 0x95, 0x52, 0x8f, 0xe5, 0xd4, 0x72, 0xb4, 0x20, -0xc2, 0xb2, 0x1b, 0xf1, 0x5e, 0x04, 0xd0, 0x99, 0x59, 0x6a, 0x9d, 0x86, 0xd4, 0x7c, 0xdf, 0xa7, -0x7c, 0xcb, 0x00, 0xb3, 0x58, 0x70, 0x2f, 0x4f, 0x0e, 0xb8, 0x56, 0x93, 0xb5, 0x69, 0xab, 0x3a, -0xaa, 0xb9, 0x78, 0xaf, 0x62, 0x1f, 0x2f, 0x25, 0x30, 0xd5, 0xa8, 0xe8, 0x3f, 0xf9, 0x8f, 0x63, -0xff, 0x71, 0xcc, 0xb3, 0x3d, 0x91, 0x33, 0xa7, 0x5c, 0x59, 0xf6, 0x46, 0x35, 0xcf, 0x1c, 0xd4, -0x38, 0xf2, 0xfb, 0x75, 0x74, 0x53, 0x9c, 0xe9, 0x4f, 0x42, 0xde, 0xf9, 0x90, 0x0f, 0x94, 0x80, -0x39, 0x73, 0x3e, 0x9b, 0x53, 0xc8, 0x15, 0x05, 0xa5, 0xdd, 0x6c, 0x14, 0x78, 0x49, 0x3d, 0x61, -0x4a, 0xc4, 0x16, 0xa6, 0x39, 0xfd, 0x9e, 0xa5, 0x4d, 0x7f, 0x0b, 0x29, 0x3a, 0xa4, 0xdb, 0xf0, -0xee, 0x7b, 0xcb, 0x88, 0x99, 0x8e, 0x96, 0x05, 0x8d, 0xc4, 0x6b, 0xe6, 0xcb, 0x3e, 0xc0, 0x85, -0x65, 0x73, 0xfa, 0x6b, 0x96, 0x34, 0x31, 0x80, 0xb6, 0x62, 0x95, 0xba, 0x61, 0x68, 0xd5, 0x23, -0xe1, 0xca, 0xc1, 0x5b, 0x48, 0x62, 0x31, 0x52, 0x6e, 0x68, 0xf3, 0x18, 0xf5, 0x34, 0x40, 0xbe, -0x55, 0x35, 0x90, 0x02, 0xd6, 0x22, 0xe2, 0x6a, 0x61, 0x85, 0xb0, 0x46, 0x1a, 0x81, 0x0b, 0x32, -0x02, 0x8e, 0x37, 0x53, 0x4d, 0x9d, 0xa9, 0x10, 0xaa, 0xb7, 0x60, 0x8d, 0xa1, 0x3f, 0x7f, 0xc2, -0xed, 0x79, 0xe8, 0x99, 0xf9, 0x25, 0x9c, 0x0f, 0x40, 0xe7, 0xfc, 0xd9, 0x1e, 0xca, 0x3a, 0xa5, -0x42, 0xa8, 0x8f, 0xe8, 0x3c, 0x23, 0xe2, 0x4b, 0x99, 0x09, 0x2a, 0xbd, 0x67, 0xc9, 0x69, 0xe1, -0xda, 0x02, 0xc6, 0x21, 0xd5, 0x4f, 0x50, 0xaf, 0xc1, 0x9e, 0x97, 0x85, 0x0e, 0x48, 0xf5, 0x1d, -0x98, 0xd7, 0x21, 0x99, 0x65, 0x6d, 0xe7, 0x2d, 0xe7, 0xf5, 0xc8, 0x1a, 0xfe, 0x8c, 0x91, 0x87, -0xfe, 0xde, 0x43, 0x70, 0x94, 0xb5, 0x82, 0x66, 0x4a, 0xbe, 0xff, 0xc0, 0xef, 0x9e, 0xc3, 0x99, -0xf2, 0x87, 0x60, 0xcb, 0x48, 0xd5, 0xa5, 0x2c, 0xf9, 0xc4, 0x28, 0x8c, 0x8d, 0x33, 0x1e, 0x0f, -0x9a, 0xd5, 0xb1, 0xda, 0x0e, 0x54, 0x50, 0x4e, 0xea, 0x1c, 0xa2, 0xb1, 0xcb, 0x4f, 0x9d, 0x3f, -0x59, 0x79, 0x12, 0xb3, 0xd5, 0xfa, 0x9f, 0x86, 0x1a, 0x1b, 0xc4, 0x62, 0xa1, 0x03, 0x61, 0x31, -0xaa, 0x23, 0xdc, 0x36, 0x01, 0xfd, 0x71, 0x12, 0xf0, 0x90, 0x1e, 0xf0, 0x19, 0xea, 0x7b, 0xb2, -0x86, 0x16, 0x70, 0x6b, 0x62, 0xbc, 0x6e, 0x22, 0xd4, 0x4d, 0xd4, 0x7a, 0xa3, 0x43, 0xeb, 0x0d, -0xdd, 0x9b, 0xea, 0x2c, 0xda, 0x4e, 0xbd, 0xc1, 0xb2, 0xda, 0x24, 0x26, 0xd6, 0xfa, 0x37, 0xc3, -0x0a, 0xf1, 0x22, 0x62, 0x6b, 0xc8, 0xeb, 0x15, 0x17, 0xe4, 0x75, 0x6e, 0xe3, 0xb9, 0x8d, 0xb6, -0x3a, 0xfb, 0x1d, 0xa2, 0xc7, 0xd5, 0xc8, 0xf5, 0x32, 0x7d, 0x1a, 0xb0, 0x79, 0xd0, 0xf2, 0x2a, -0xcc, 0xa4, 0x02, 0x3b, 0xbc, 0x5b, 0x46, 0xfe, 0xe5, 0x63, 0xe6, 0x0a, 0xd5, 0x01, 0x84, 0x17, -0x04, 0xdd, 0x64, 0x09, 0x7b, 0xbe, 0x46, 0xf7, 0x5d, 0x76, 0x03, 0xf4, 0xd9, 0xa5, 0x1c, 0xff, -0x81, 0x2b, 0x3b, 0x92, 0x34, 0x1f, 0xd1, 0xe5, 0x30, 0x1f, 0x79, 0x6b, 0x73, 0xd0, 0x9a, 0xe0, -0x81, 0x2b, 0x87, 0x48, 0xcb, 0x89, 0x49, 0x0b, 0x03, 0x1a, 0xa7, 0x2e, 0xe5, 0x7e, 0x1c, 0xd3, -0x89, 0xd4, 0xb2, 0x1c, 0x8e, 0x27, 0xc6, 0xb7, 0x5f, 0x18, 0x86, 0x9e, 0x38, 0xcc, 0xa1, 0x09, -0xf1, 0x00, 0xb8, 0xe2, 0xc0, 0x45, 0x5b, 0x43, 0xce, 0x00, 0x40, 0x2c, 0xae, 0x59, 0x40, 0x0b, -0x21, 0xc4, 0x8b, 0x40, 0xf5, 0xdc, 0xc6, 0x79, 0x1a, 0xe8, 0x05, 0x67, 0x38, 0x8e, 0xb6, 0x91, -0x21, 0xf6, 0x66, 0x48, 0x7b, 0x28, 0x64, 0x40, 0x1b, 0x84, 0x14, 0xff, 0x50, 0x90, 0x09, 0x07, -0x3d, 0xb0, 0x46, 0x61, 0xaa, 0x4f, 0x30, 0xf7, 0x1e, 0x0d, 0xcf, 0x5d, 0x7a, 0x17, 0x47, 0xef, -0xf7, 0x3b, 0xd5, 0xb9, 0x7a, 0x9a, 0x64, 0x46, 0x1b, 0x61, 0x24, 0x5b, 0x4e, 0x8c, 0xd2, 0xdc, -0x86, 0xb1, 0x04, 0x9f, 0x28, 0x7c, 0x9f, 0x86, 0x74, 0x5d, 0xe9, 0xb0, 0x21, 0x5a, 0xa0, 0xff, -0x8b, 0x59, 0x69, 0x3a, 0x6e, 0xb5, 0x59, 0xd0, 0x8a, 0x12, 0xf0, 0x09, 0x02, 0xb5, 0x68, 0xec, -0x8e, 0x43, 0x38, 0xe6, 0x78, 0xdb, 0xb2, 0xd4, 0x0d, 0x6b, 0x23, 0xb6, 0xa7, 0x64, 0x12, 0x8c, -0x41, 0x0a, 0x3b, 0xa4, 0x40, 0xdd, 0xff, 0x80, 0x1d, 0x44, 0x1a, 0x4f, 0x8f, 0xad, 0x53, 0x1b, -0x51, 0x76, 0xd5, 0x85, 0x98, 0xde, 0x00, 0x7d, 0x19, 0x07, 0x6a, 0xc8, 0xed, 0x0d, 0x77, 0x30, -0xde, 0x9b, 0x96, 0xe5, 0x76, 0xd4, 0xbb, 0xc1, 0xd8, 0x73, 0xde, 0x75, 0x02, 0x43, 0x1d, 0x25, -0xe8, 0xfb, 0x37, 0x7a, 0x55, 0x72, 0x53, 0x22, 0x65, 0x55, 0x11, 0xff, 0x21, 0x79, 0x59, 0x99, -0x7f, 0x33, 0x59, 0x81, 0x40, 0x59, 0xc2, 0xc6, 0x92, 0x8d, 0x62, 0x2f, 0xfa, 0xc0, 0x58, 0xc0, -0xbb, 0xea, 0x77, 0x46, 0xe1, 0x5f, 0x0f, 0xaf, 0xc8, 0xf7, 0xf6, 0x70, 0x99, 0xcd, 0x2f, 0x7e, -0xa3, 0x71, 0xd4, 0x84, 0x83, 0xed, 0x66, 0x89, 0xcd, 0x67, 0xf3, 0x82, 0x39, 0x92, 0x81, 0xfb, -0xf3, 0xdb, 0xa5, 0x9e, 0x5c, 0x15, 0x23, 0x29, 0x5f, 0x8a, 0x36, 0x8e, 0x78, 0xca, 0xde, 0x57, -0xd2, 0x46, 0x9f, 0xee, 0xb4, 0xe1, 0xf8, 0xc1, 0x0c, 0xa8, 0x54, 0xe1, 0xfa, 0x64, 0x54, 0x0f, -0x70, 0x6d, 0xc7, 0x59, 0x0e, 0x50, 0x6d, 0x80, 0xef, 0x7c, 0x5c, 0x01, 0xa1, 0xfe, 0xa3, 0x65, -0x95, 0xc2, 0x62, 0xf0, 0x9b, 0x0e, 0xeb, 0xa9, 0x1e, 0x67, 0x07, 0x42, 0x6a, 0x69, 0x15, 0xd2, -0x12, 0xe1, 0xec, 0x3d, 0x2f, 0xa1, 0x9d, 0x68, 0xa0, 0x29, 0x60, 0xfc, 0x3e, 0x1a, 0x87, 0xb2, -0xf5, 0x45, 0x8b, 0x98, 0x97, 0xee, 0xa5, 0x7c, 0xc4, 0x92, 0x67, 0xbe, 0x36, 0xe1, 0x2c, 0xff, -0xe4, 0xb0, 0x6f, 0x5a, 0xd0, 0x17, 0x69, 0x73, 0x75, 0xab, 0x34, 0xb2, 0x0a, 0xaf, 0x1f, 0x41, -0x5b, 0x91, 0x7e, 0x0a, 0x95, 0x01, 0xac, 0x54, 0x56, 0xbf, 0xcf, 0xa2, 0xdf, 0x7f, 0x9f, 0x85, -0x83, 0x79, 0xb8, 0x72, 0x70, 0x7d, 0x83, 0xc4, 0xff, 0xa2, 0x66, 0x33, 0x31, 0x94, 0x93, 0x84, -0x68, 0xd4, 0xa9, 0x80, 0x5a, 0xfa, 0xf0, 0xf6, 0x7a, 0x96, 0xcb, 0xbf, 0x06, 0xa1, 0x44, 0x66, -0xca, 0x0a, 0x78, 0x9f, 0x80, 0xf7, 0x43, 0x11, 0x05, 0xfe, 0x37, 0x47, 0x00, 0x8f, 0x28, 0x7e, -0xcf, 0x34, 0xf8, 0x1f, 0xa0, 0x3b, 0x73, 0x12, 0xe0, 0x43, 0xbc, 0x59, 0x38, 0x4b, 0xe5, 0x83, -0x3d, 0x09, 0x49, 0x23, 0x59, 0x8e, 0xff, 0xc5, 0x65, 0x56, 0x81, 0x14, 0xfa, 0xd6, 0xb7, 0xe8, -0x3e, 0x07, 0xde, 0x92, 0xaa, 0x24, 0x19, 0xe6, 0x27, 0xe1, 0x39, 0xe8, 0x73, 0xfd, 0x0c, 0xf8, -0x18, 0xd1, 0xe7, 0xac, 0x2e, 0xc5, 0xc7, 0x8c, 0x96, 0xa0, 0xc8, 0x15, 0x9c, 0xe3, 0xd6, 0x19, -0x88, 0x07, 0xdf, 0x25, 0x00, 0xbd, 0xaf, 0xd3, 0x51, 0x6f, 0x5c, 0x84, 0xde, 0xc0, 0xfc, 0x62, -0x69, 0xae, 0x4d, 0x9c, 0x96, 0x04, 0x98, 0x2b, 0x40, 0x98, 0x03, 0xfc, 0xef, 0xe6, 0xfc, 0x17, -0xea, 0xa8, 0xe3, 0x33, 0xd5, 0xb3, 0x8f, 0x28, 0x73, 0xbc, 0x37, 0x76, 0x5e, 0xb5, 0x8d, 0x76, -0xc6, 0xb7, 0x4b, 0x67, 0x40, 0xbd, 0xff, 0x1c, 0xba, 0xbd, 0xe1, 0x61, 0x96, 0x42, 0xdb, 0xe3, -0x98, 0xbd, 0x16, 0x51, 0xee, 0xae, 0xe2, 0xd4, 0x29, 0xd4, 0xe4, 0x50, 0x58, 0xa1, 0xd2, 0x5e, -0x43, 0x3e, 0x07, 0xea, 0xba, 0x5c, 0xb5, 0x1b, 0x2e, 0x43, 0x58, 0x4b, 0x52, 0x72, 0x82, 0x76, -0x7c, 0x20, 0xed, 0xbb, 0xa2, 0x3b, 0xec, 0x4c, 0xca, 0x4e, 0x6c, 0xc8, 0x15, 0x36, 0x87, 0x1a, -0x91, 0x03, 0x3e, 0x9b, 0x1b, 0x16, 0x26, 0xc9, 0x4e, 0x0a, 0x91, 0xfb, 0x88, 0xb0, 0x5c, 0x27, -0xbb, 0x9d, 0xdb, 0xac, 0x27, 0xdb, 0x90, 0x40, 0x61, 0x7e, 0xe8, 0xe7, 0x1c, 0x03, 0x94, 0xd1, -0x45, 0xfc, 0xe6, 0x13, 0x10, 0xb3, 0xf9, 0x06, 0xd9, 0x48, 0x21, 0x6b, 0xf4, 0x1f, 0xf8, 0xe0, -0x15, 0x80, 0x9c, 0x0e, 0x8d, 0x02, 0x16, 0x16, 0x93, 0x5d, 0x75, 0xd4, 0x8c, 0x68, 0xe4, 0xd4, -0xea, 0x07, 0xcf, 0xa1, 0x0c, 0xe5, 0x83, 0x0e, 0x9a, 0x3b, 0xd4, 0x07, 0xc2, 0x4e, 0x95, 0x6f, -0x29, 0x10, 0x0b, 0x75, 0x06, 0xe0, 0xf4, 0x4d, 0xa4, 0xe3, 0xe1, 0xc0, 0x07, 0x6d, 0x8d, 0x23, -0xb0, 0x16, 0x98, 0x13, 0x6e, 0x4f, 0xe3, 0x08, 0x7c, 0x15, 0x02, 0xc4, 0x1d, 0xf8, 0x60, 0x1e, -0xd2, 0x20, 0x42, 0x0f, 0x9e, 0x6c, 0x4f, 0x8e, 0xfd, 0xf5, 0x66, 0xa8, 0x71, 0x39, 0xda, 0x1b, -0xa3, 0x56, 0xac, 0x0e, 0xf3, 0x36, 0xd4, 0xa8, 0x25, 0x3b, 0x78, 0x39, 0x55, 0x65, 0xc8, 0xb9, -0xa9, 0xe5, 0x3b, 0x39, 0xc7, 0xf7, 0xbb, 0x58, 0xcb, 0xc8, 0xc2, 0xf1, 0x2b, 0x7e, 0x28, 0xaf, -0x25, 0x06, 0x7c, 0x43, 0x0c, 0x38, 0x21, 0x78, 0xcb, 0xfc, 0x1e, 0x10, 0x71, 0xe6, 0x5b, 0x49, -0xff, 0xcb, 0x3b, 0x3e, 0xe4, 0xd3, 0x1e, 0xb2, 0xa5, 0xb4, 0x3f, 0xee, 0xc2, 0xd3, 0x87, 0x69, -0x3e, 0x62, 0x9a, 0xcb, 0x91, 0xe6, 0x5a, 0x70, 0xf3, 0xbe, 0xbb, 0x18, 0x51, 0xf9, 0x39, 0xaa, -0xd3, 0x47, 0x2f, 0x02, 0xde, 0x58, 0xc5, 0xca, 0xa9, 0x65, 0x58, 0x33, 0x27, 0xda, 0x2e, 0x23, -0x2e, 0xf6, 0x42, 0x0b, 0xf6, 0xcc, 0x72, 0xd2, 0x1d, 0xc6, 0x6f, 0x66, 0xed, 0xd1, 0xfa, 0x10, -0x72, 0xf2, 0x62, 0xea, 0x8b, 0x15, 0x6a, 0x6b, 0x9f, 0xc2, 0x3e, 0xd3, 0x01, 0x56, 0xbb, 0x68, -0xc5, 0x1b, 0x99, 0xa4, 0x3f, 0x49, 0xed, 0xd1, 0xdf, 0x5e, 0x56, 0x7b, 0xd4, 0xbc, 0x70, 0xfc, -0xb7, 0x17, 0xfc, 0x5b, 0xd5, 0xde, 0xdd, 0x6a, 0xf3, 0xf1, 0x59, 0x95, 0x76, 0x7a, 0xd5, 0x82, -0xf3, 0x93, 0xdf, 0x37, 0x45, 0x29, 0xb2, 0x28, 0x25, 0xb4, 0x48, 0x96, 0xa8, 0x72, 0xe3, 0x05, -0xa8, 0x99, 0xb6, 0xb0, 0xd9, 0xb1, 0x34, 0x6c, 0x49, 0xb3, 0x19, 0x80, 0xf3, 0x71, 0x15, 0x50, -0x47, 0xc5, 0xdc, 0x3a, 0xdc, 0xb5, 0xa3, 0x38, 0xeb, 0x60, 0x35, 0x22, 0x79, 0x01, 0xc7, 0x61, -0xa8, 0xeb, 0x23, 0x99, 0x02, 0x65, 0xb4, 0xa4, 0xcf, 0x23, 0x8f, 0xf7, 0x0e, 0x50, 0x57, 0x16, -0xe2, 0x94, 0x89, 0xf7, 0x94, 0x67, 0xd9, 0x8a, 0x54, 0x49, 0xad, 0x7a, 0x0b, 0xdf, 0xbe, 0x69, -0xce, 0x6a, 0xe1, 0x13, 0x80, 0x38, 0x9f, 0xf0, 0x09, 0xca, 0xe6, 0xfa, 0xb9, 0x44, 0xba, 0x14, -0xa5, 0xd7, 0x62, 0x93, 0xad, 0xd1, 0xde, 0x29, 0x7c, 0xf2, 0xf4, 0x61, 0xf9, 0xa1, 0xff, 0x7d, -0x32, 0xd8, 0x88, 0x10, 0x45, 0x98, 0xc8, 0x80, 0x36, 0xde, 0x65, 0xfd, 0x17, 0xdd, 0xc2, 0x27, -0xd4, 0x6a, 0xa8, 0xd9, 0xc4, 0x2a, 0x7b, 0x21, 0xc9, 0xf8, 0xa8, 0x4e, 0x5c, 0x17, 0x1f, 0xc9, -0x34, 0x74, 0x0b, 0xc7, 0x15, 0x80, 0x80, 0xb4, 0xda, 0xd0, 0x59, 0x61, 0xd9, 0x2c, 0xfa, 0xec, -0x40, 0x69, 0xd1, 0x7d, 0xdc, 0xe7, 0x1a, 0x7e, 0x65, 0x26, 0x39, 0x66, 0xfc, 0x14, 0xca, 0xc6, -0x1c, 0xbd, 0x42, 0x83, 0x1d, 0xea, 0x15, 0xe5, 0x1a, 0xad, 0x36, 0xaf, 0x2d, 0x38, 0x3d, 0x82, -0xfa, 0xad, 0x27, 0x5e, 0x47, 0x0e, 0xd6, 0xb2, 0x5c, 0xc6, 0xb5, 0x5d, 0x9f, 0xe8, 0x87, 0xed, -0x04, 0x5f, 0xce, 0xc0, 0x20, 0xac, 0x31, 0x2e, 0xd4, 0xb4, 0x81, 0x7a, 0xa7, 0xd5, 0x15, 0xa6, -0x00, 0xdc, 0x45, 0xac, 0x94, 0xb4, 0xea, 0xc6, 0x60, 0x45, 0x0c, 0x88, 0xb1, 0x44, 0xa9, 0x07, -0xe8, 0x16, 0x31, 0xd0, 0xf1, 0x82, 0x8b, 0xcb, 0x06, 0x9d, 0x28, 0x1b, 0x6c, 0x9e, 0x62, 0x0c, -0x1e, 0x4e, 0xef, 0xf3, 0x96, 0x91, 0xf4, 0x5e, 0xb7, 0xc7, 0x26, 0xf7, 0x77, 0x3c, 0x8f, 0xfa, -0xdb, 0x31, 0xb9, 0xbf, 0xe7, 0x34, 0x30, 0xfd, 0x9c, 0xd5, 0xac, 0x01, 0xa8, 0xcc, 0xd5, 0xc2, -0x15, 0xea, 0xf7, 0x2b, 0xd8, 0xef, 0xcb, 0x19, 0x87, 0x03, 0xb4, 0x92, 0xe6, 0x58, 0x0a, 0x6d, -0xbf, 0xf2, 0x0f, 0x47, 0x79, 0xdb, 0xe5, 0x15, 0xff, 0xf7, 0x22, 0x70, 0x2e, 0xcb, 0xa4, 0xdc, -0x49, 0xed, 0xad, 0xc1, 0xf1, 0xa0, 0x1b, 0xd2, 0x86, 0xb9, 0x34, 0x1e, 0x77, 0xbb, 0x85, 0x2b, -0x8e, 0x00, 0x97, 0xdd, 0xa6, 0x8d, 0xc1, 0x8c, 0x85, 0xe3, 0xd7, 0x37, 0x4e, 0x31, 0x06, 0xf9, -0xb2, 0xd9, 0x99, 0x1c, 0x83, 0x1d, 0x89, 0xd1, 0xaf, 0x80, 0xd1, 0xb7, 0x62, 0x1d, 0xa2, 0x5c, -0xfb, 0xe1, 0x66, 0xd9, 0x96, 0x52, 0x3a, 0xf5, 0x64, 0xd0, 0x1c, 0x18, 0xc4, 0x7d, 0x8e, 0xd9, -0xab, 0x99, 0x8b, 0x59, 0x12, 0x79, 0x9c, 0xc1, 0x1e, 0x2d, 0x80, 0x91, 0x04, 0x38, 0xd7, 0x8b, -0x0f, 0x88, 0x1d, 0xc2, 0x15, 0xd9, 0x02, 0xeb, 0x98, 0x3e, 0x68, 0x10, 0x51, 0x1b, 0xf8, 0x1a, -0xb1, 0x83, 0xc3, 0x50, 0xf0, 0x22, 0xb7, 0x0b, 0x57, 0x4a, 0x7a, 0x63, 0x1d, 0x40, 0x00, 0x86, -0xcd, 0x37, 0xf4, 0xfa, 0x82, 0x39, 0xbd, 0xac, 0x00, 0xa0, 0x2a, 0x71, 0x03, 0xdd, 0xce, 0xa0, -0x54, 0x5d, 0x7a, 0xcf, 0xd3, 0xfd, 0xf3, 0x94, 0xdd, 0x12, 0xe8, 0xd7, 0x71, 0x66, 0x84, 0x7e, -0x1d, 0x4f, 0xe8, 0x19, 0x2a, 0xb5, 0x21, 0x34, 0xc3, 0x8a, 0x07, 0xd0, 0x3c, 0x0e, 0xd0, 0xdc, -0xb8, 0x07, 0xad, 0x9c, 0x63, 0xff, 0x19, 0x13, 0xf0, 0x6c, 0x24, 0x78, 0x1e, 0xb7, 0xe7, 0x4e, -0x0d, 0xc3, 0x13, 0x75, 0x29, 0xfd, 0x67, 0x4e, 0xf6, 0x1f, 0xc1, 0x30, 0xd9, 0x4d, 0x0c, 0xee, -0xe2, 0x30, 0x8c, 0xab, 0x2b, 0xf5, 0x9f, 0x84, 0x5c, 0x94, 0x30, 0x2e, 0xcf, 0x14, 0x81, 0x6a, -0x05, 0xaa, 0x09, 0x65, 0x9e, 0x0f, 0x43, 0xcf, 0x19, 0xa0, 0x5c, 0xbd, 0x6c, 0x4e, 0xa4, 0x3b, -0xaf, 0x61, 0x07, 0xff, 0xd7, 0xa0, 0x8e, 0xfa, 0xd0, 0x2c, 0xdf, 0xab, 0x80, 0xdb, 0x0d, 0xa4, -0x47, 0x11, 0x6d, 0x4a, 0x1b, 0x02, 0x9b, 0xa1, 0xd7, 0xb8, 0x35, 0xb5, 0xab, 0x09, 0x7b, 0x7a, -0x36, 0x5c, 0xc1, 0xa7, 0xe8, 0xb3, 0x40, 0x58, 0xb0, 0xc7, 0xb4, 0x36, 0x4c, 0x86, 0x53, 0xc4, -0x0e, 0xea, 0x0e, 0xa0, 0x39, 0x89, 0xa1, 0x9e, 0x39, 0x22, 0x17, 0x68, 0xba, 0x81, 0xbe, 0xb4, -0x07, 0xb0, 0x8d, 0x84, 0x94, 0xa7, 0x12, 0x45, 0x5c, 0x83, 0xd8, 0x0b, 0x4f, 0xde, 0xd7, 0xe8, -0x55, 0x4d, 0x51, 0x30, 0x5a, 0x0b, 0x89, 0x62, 0xa3, 0xba, 0xeb, 0xe5, 0x0a, 0xbb, 0x07, 0x66, -0xbe, 0x51, 0xcc, 0x6d, 0x8a, 0xc1, 0x2c, 0x70, 0x38, 0x0a, 0x69, 0xbc, 0xb6, 0x02, 0xfe, 0xad, -0x0e, 0xc4, 0x92, 0x65, 0xd8, 0x7c, 0xe1, 0x94, 0x12, 0x7d, 0x83, 0xc1, 0xc3, 0xda, 0xe8, 0x94, -0x2e, 0x40, 0x0b, 0x91, 0x30, 0xf3, 0xec, 0xc1, 0x5c, 0xa4, 0xed, 0xce, 0x7e, 0x81, 0xef, 0x04, -0x11, 0x0d, 0xb7, 0xde, 0xe1, 0x41, 0x1d, 0x35, 0x8b, 0x38, 0x8d, 0x88, 0x7a, 0xc1, 0x9e, 0x69, -0x19, 0xa9, 0xbd, 0x62, 0x14, 0x1c, 0xab, 0xb9, 0x8d, 0xc5, 0xe0, 0xc5, 0x7f, 0xb9, 0xc4, 0x9c, -0x3d, 0xcb, 0x1c, 0x1e, 0x1e, 0xc7, 0x51, 0x44, 0xe5, 0x43, 0x2c, 0x9b, 0x69, 0x0b, 0xc0, 0x46, -0xf5, 0xd5, 0x7c, 0x25, 0x09, 0x1b, 0x55, 0x57, 0x77, 0x2a, 0xfb, 0x9e, 0x0c, 0xea, 0x3d, 0x78, -0x3e, 0x5b, 0xb2, 0xc4, 0xb4, 0x1c, 0xeb, 0x62, 0x90, 0x27, 0x4b, 0xe4, 0x79, 0x20, 0xff, 0x20, -0x9b, 0x9f, 0xa0, 0xab, 0xcc, 0x37, 0xc3, 0xdb, 0x49, 0x9d, 0xc0, 0x10, 0x62, 0x81, 0x10, 0x2b, -0x96, 0x41, 0x21, 0x1a, 0xa4, 0xec, 0x42, 0xed, 0xc3, 0x12, 0x70, 0xf7, 0xd0, 0x9f, 0x24, 0xd5, -0x85, 0x30, 0x58, 0x51, 0x1d, 0xe8, 0xab, 0xc5, 0x79, 0x0e, 0x29, 0xfd, 0xda, 0x71, 0xe5, 0x59, -0xff, 0x96, 0x84, 0x9f, 0x88, 0x37, 0x81, 0x10, 0xc2, 0xec, 0x5f, 0x75, 0x90, 0xfe, 0x13, 0x29, -0x27, 0xfc, 0xd5, 0xba, 0x34, 0x2b, 0x30, 0xa8, 0xdd, 0x31, 0x25, 0x0f, 0x46, 0x3a, 0x38, 0x80, -0xcb, 0x85, 0x92, 0x3a, 0x68, 0xd4, 0x00, 0x96, 0x5c, 0x5f, 0xc5, 0x3d, 0x6d, 0xb4, 0x24, 0x88, -0x76, 0x01, 0x49, 0x2a, 0xaf, 0x4f, 0x5a, 0x67, 0x54, 0xfd, 0x2d, 0x00, 0x67, 0x3a, 0x43, 0x2c, -0x7a, 0xcc, 0x92, 0xee, 0x67, 0x8d, 0x4c, 0x7f, 0x77, 0x67, 0x04, 0x8d, 0xb4, 0xe5, 0x6a, 0xf8, -0x0b, 0x6d, 0xd1, 0x40, 0x1c, 0xd2, 0x48, 0x91, 0xcc, 0xd7, 0xb7, 0x39, 0x84, 0xb3, 0xbb, 0x19, -0x7c, 0x9c, 0xec, 0x61, 0xd5, 0x76, 0x26, 0xf8, 0x5b, 0xe6, 0xb2, 0xf9, 0xd8, 0x43, 0x64, 0x93, -0xd0, 0xc9, 0xe6, 0x07, 0xed, 0x66, 0x20, 0x6b, 0x82, 0x66, 0xe0, 0x1b, 0xdc, 0x80, 0x13, 0xdc, -0x0f, 0x8e, 0xca, 0x26, 0xf8, 0xf6, 0xc3, 0xb7, 0x3f, 0xc5, 0x66, 0x24, 0xd3, 0x76, 0x86, 0x48, -0x6e, 0x51, 0x90, 0xca, 0x39, 0x07, 0x4d, 0x80, 0x73, 0x0a, 0x44, 0xb4, 0x64, 0x68, 0x0e, 0x33, -0xda, 0xeb, 0x41, 0x97, 0x9f, 0xe4, 0xd5, 0x6a, 0xbf, 0xe2, 0x8e, 0x1a, 0x50, 0x29, 0x7a, 0xfb, -0x4b, 0xb4, 0x42, 0x14, 0x34, 0x26, 0xb0, 0x36, 0xc2, 0xb3, 0xaa, 0x25, 0x96, 0x79, 0x57, 0xd1, -0x4e, 0x0e, 0x0f, 0x3d, 0x10, 0xe7, 0xd6, 0x73, 0xb6, 0x84, 0x72, 0x80, 0x5a, 0xb5, 0x20, 0x1d, -0x0a, 0xb9, 0xd6, 0xc8, 0xb3, 0xf0, 0x0b, 0x5a, 0x67, 0x9c, 0xd3, 0xc1, 0x9a, 0x05, 0x0b, 0x69, -0xc1, 0x79, 0x38, 0x11, 0x1e, 0xe4, 0x7d, 0x36, 0xc7, 0x2d, 0x98, 0xd1, 0x3e, 0x03, 0x8e, 0x93, -0xaa, 0x4d, 0x02, 0xea, 0x1e, 0x61, 0x48, 0x1b, 0xff, 0x6c, 0xa7, 0x3c, 0xcf, 0x62, 0xe9, 0x32, -0x73, 0xdd, 0x9e, 0x96, 0xef, 0x19, 0x63, 0xb2, 0x0d, 0xfa, 0x60, 0x7e, 0xd0, 0x60, 0x39, 0xc8, -0x4a, 0xe4, 0x3c, 0xf8, 0x96, 0xe8, 0xbb, 0x58, 0x36, 0xc1, 0xf7, 0x17, 0x56, 0xe8, 0x2d, 0x07, -0x95, 0x7f, 0x0b, 0x0c, 0x04, 0x86, 0xf7, 0x0d, 0xf4, 0xbc, 0x49, 0xb7, 0xf7, 0x50, 0xc7, 0x88, -0x91, 0x72, 0xad, 0x47, 0x4b, 0xa0, 0xb9, 0xf9, 0x66, 0x01, 0xe8, 0x7f, 0x83, 0x59, 0x50, 0x9e, -0x0b, 0x1a, 0xee, 0x3c, 0xc8, 0xbe, 0x6a, 0x64, 0x81, 0xd8, 0xbe, 0x58, 0xcf, 0x18, 0xc6, 0x46, -0x5c, 0xa7, 0xed, 0x25, 0x3b, 0x1a, 0x71, 0x1c, 0xc3, 0xcc, 0xe2, 0x64, 0x76, 0xc4, 0x45, 0x4d, -0x83, 0xb8, 0x33, 0x69, 0xd7, 0xf4, 0x3d, 0xea, 0x24, 0x93, 0xb7, 0x83, 0xcd, 0xf1, 0x1f, 0xb8, -0x3e, 0x5f, 0xdd, 0x95, 0xb4, 0xf8, 0x5e, 0x12, 0x64, 0xa2, 0x6f, 0x90, 0x5e, 0x00, 0x2a, 0x11, -0xdc, 0x6d, 0x21, 0x4b, 0x52, 0x07, 0x84, 0x19, 0x75, 0x4e, 0x84, 0x39, 0x96, 0xd3, 0x76, 0x1d, -0x50, 0xdb, 0x8a, 0xa8, 0xbb, 0x30, 0xac, 0xee, 0xc0, 0x8c, 0x15, 0x3e, 0x4f, 0xeb, 0x6c, 0x6e, -0x38, 0xeb, 0x8d, 0x18, 0x60, 0x99, 0xe9, 0xbf, 0xde, 0x85, 0xd8, 0xee, 0xf8, 0x20, 0xdf, 0xfd, -0xa2, 0x71, 0xd2, 0xa9, 0x30, 0x61, 0x89, 0xb2, 0x72, 0x27, 0x2b, 0x38, 0xb5, 0x93, 0x3d, 0xaf, -0x41, 0x1b, 0x41, 0xb1, 0x45, 0x83, 0xb4, 0xe3, 0x83, 0xbc, 0x4d, 0xb8, 0x0f, 0xc0, 0x4a, 0x9d, -0x01, 0x1a, 0x6d, 0x4b, 0x08, 0xb5, 0x3c, 0x37, 0xcb, 0x7a, 0xf8, 0xff, 0x30, 0x60, 0x1e, 0xeb, -0x81, 0x41, 0x3a, 0x1b, 0xb1, 0x8a, 0x59, 0x1c, 0x9d, 0xa4, 0x45, 0xc6, 0x18, 0x86, 0xc8, 0x6c, -0x48, 0x36, 0xd0, 0x7b, 0x33, 0xe4, 0x39, 0x1d, 0xda, 0xf3, 0x44, 0xe3, 0x08, 0x94, 0xb0, 0xeb, -0x54, 0xcc, 0x29, 0xb1, 0x8a, 0xb5, 0x48, 0x57, 0x40, 0x5d, 0x17, 0x8d, 0x4f, 0x54, 0xa2, 0xb6, -0x42, 0xb5, 0x05, 0x33, 0xd4, 0x95, 0xd5, 0xdc, 0xaf, 0x9b, 0x5b, 0x27, 0x74, 0xac, 0x55, 0xd0, -0x3a, 0x02, 0x6a, 0xca, 0xb0, 0x31, 0xb4, 0x7c, 0x2c, 0x28, 0x62, 0x95, 0x2b, 0xfb, 0xd9, 0x58, -0x89, 0xfe, 0xe0, 0x50, 0x97, 0xae, 0xc4, 0xc0, 0x35, 0x44, 0x6c, 0x1e, 0xb6, 0xe9, 0xfa, 0xa7, -0x7f, 0xf4, 0xcf, 0x18, 0xe3, 0xef, 0x95, 0xcd, 0x03, 0x7b, 0xbe, 0x01, 0x61, 0x5a, 0x2f, 0x4f, -0x83, 0xd1, 0xab, 0xf4, 0x7e, 0xad, 0x82, 0x85, 0xb3, 0x46, 0x07, 0x23, 0xd3, 0x7f, 0xb3, 0x13, -0x35, 0x7e, 0xbc, 0x3d, 0xea, 0xfd, 0xda, 0x30, 0xf3, 0x3f, 0x73, 0xfa, 0x1b, 0xe2, 0x34, 0xe0, -0x72, 0xac, 0x28, 0x9b, 0xc2, 0xfe, 0x3f, 0x10, 0x5b, 0x69, 0xdd, 0xf1, 0x8d, 0x7e, 0xf7, 0xa9, -0x8d, 0xe1, 0xd1, 0x37, 0x62, 0xbe, 0xa1, 0x20, 0x53, 0x3a, 0x34, 0x1d, 0x49, 0xfd, 0x64, 0x03, -0xab, 0xa2, 0x02, 0x56, 0xca, 0x02, 0xb2, 0x86, 0x9a, 0x55, 0x3b, 0x1e, 0xef, 0xf7, 0x6f, 0x11, -0x35, 0x1d, 0xaa, 0xcf, 0x9a, 0x2d, 0xac, 0x11, 0x38, 0xf1, 0x6d, 0x66, 0x27, 0x5b, 0x0c, 0xb3, -0x0c, 0x38, 0x0d, 0xa7, 0x93, 0xe9, 0xa3, 0xcc, 0xe9, 0xa3, 0x3d, 0x80, 0x83, 0x72, 0x34, 0x40, -0xd2, 0x3f, 0xff, 0x36, 0x55, 0xfb, 0x56, 0x87, 0x39, 0x17, 0x52, 0xac, 0x30, 0x17, 0x52, 0xfc, -0x87, 0x20, 0xd7, 0xe9, 0x84, 0x7f, 0x67, 0xc3, 0xdc, 0x28, 0xd5, 0x6e, 0x7f, 0x05, 0x17, 0x20, -0x76, 0x6f, 0xe6, 0x29, 0x0f, 0xc4, 0x4d, 0x94, 0xb2, 0x44, 0x74, 0x43, 0x69, 0x9e, 0xa0, 0x03, -0xca, 0xaa, 0x81, 0xb4, 0xb3, 0x12, 0x78, 0xe8, 0x79, 0x18, 0x3f, 0x27, 0xce, 0xa8, 0xf1, 0x0b, -0x24, 0xed, 0x33, 0xec, 0x1f, 0xec, 0x19, 0x8e, 0x2a, 0x44, 0x15, 0x14, 0x90, 0x85, 0xdc, 0xe5, -0xde, 0x6e, 0xe5, 0x61, 0xa0, 0x67, 0x8d, 0x5c, 0x5b, 0x09, 0xd1, 0xe1, 0x66, 0xe0, 0x71, 0xcd, -0x4b, 0x63, 0x62, 0x8c, 0xe3, 0x5c, 0x3a, 0x07, 0x82, 0x50, 0xa2, 0x42, 0xc8, 0xd2, 0xc1, 0x34, -0x6c, 0xb4, 0x3d, 0x15, 0x1b, 0x1d, 0x1f, 0x3c, 0xfe, 0x2a, 0xe0, 0x52, 0x84, 0x1b, 0xb4, 0x40, -0xb5, 0x8a, 0xea, 0x57, 0x90, 0xa8, 0x8f, 0x0b, 0xd7, 0x32, 0xaa, 0x4f, 0x33, 0xd7, 0x12, 0xa4, -0xed, 0xc2, 0xe2, 0x0d, 0x00, 0x17, 0xd4, 0x15, 0xd6, 0x1d, 0x17, 0x42, 0x17, 0x5a, 0x14, 0x84, -0xb5, 0xcb, 0x1a, 0x9e, 0x7e, 0xfe, 0x25, 0x87, 0x2f, 0xca, 0xd6, 0x31, 0xda, 0xef, 0x6b, 0x93, -0x75, 0x4e, 0x06, 0x70, 0x54, 0xc4, 0x76, 0x90, 0xec, 0xe2, 0x19, 0x28, 0x71, 0x68, 0xcf, 0x63, -0x2b, 0x72, 0x03, 0x83, 0x2d, 0x4f, 0x46, 0xb2, 0xf6, 0x0e, 0xf2, 0xd5, 0x1b, 0xcf, 0xd0, 0xd3, -0x0d, 0xb6, 0x82, 0xaa, 0xab, 0xc6, 0xf8, 0xd9, 0x61, 0xb2, 0xa7, 0x78, 0x08, 0xdc, 0xdb, 0x51, -0x9f, 0xa8, 0x56, 0xd7, 0xb3, 0xb1, 0x6f, 0x0f, 0x49, 0xb5, 0x50, 0xa7, 0x3a, 0xe6, 0xc4, 0x34, -0x32, 0x9b, 0x38, 0xa0, 0xe2, 0x4a, 0x0b, 0xd4, 0xd3, 0x28, 0x4d, 0x17, 0xe7, 0xb2, 0xe7, 0x9b, -0x91, 0xe2, 0x40, 0x9d, 0x5c, 0x07, 0x14, 0x92, 0x67, 0xab, 0x7d, 0x61, 0xb6, 0x49, 0x38, 0x9b, -0xeb, 0xd8, 0xe6, 0x81, 0xe3, 0xb1, 0xb2, 0xb0, 0x91, 0x59, 0x4a, 0x77, 0x30, 0x6f, 0xac, 0xfa, -0x77, 0x4c, 0x10, 0xa7, 0xd3, 0xee, 0x96, 0x0e, 0x68, 0x15, 0x6a, 0x77, 0x54, 0xa8, 0xd3, 0x6d, -0x1b, 0xb0, 0xe9, 0x4e, 0x0e, 0x96, 0x85, 0xf3, 0xd9, 0xd6, 0x51, 0x69, 0x3a, 0xce, 0x2a, 0x2f, -0xa4, 0xf1, 0x1f, 0xf8, 0x53, 0x03, 0xe6, 0xa9, 0xe2, 0x8a, 0x4a, 0xa2, 0x51, 0x80, 0xc6, 0x92, -0x72, 0x89, 0x4e, 0x8f, 0xfa, 0xb7, 0x26, 0x74, 0xf2, 0x3e, 0x07, 0xb5, 0xd7, 0x07, 0xdc, 0xf7, -0x01, 0xc5, 0xb0, 0xa7, 0x8b, 0x99, 0x82, 0x33, 0x45, 0x2b, 0xdd, 0x46, 0x21, 0x7a, 0x28, 0x11, -0x6f, 0x9d, 0x67, 0x15, 0xdd, 0x89, 0x2b, 0xc4, 0xbb, 0x27, 0x75, 0x02, 0xac, 0xb8, 0xc2, 0xf1, -0x81, 0xf9, 0x28, 0x4d, 0xd4, 0x46, 0x20, 0x07, 0xa0, 0xc9, 0x20, 0x01, 0x97, 0xf4, 0xe9, 0x49, -0xff, 0xd6, 0xaa, 0xab, 0x67, 0xd4, 0x10, 0xdc, 0x33, 0x2e, 0x73, 0x7b, 0x3b, 0x99, 0x00, 0xe1, -0xeb, 0x25, 0x23, 0xc1, 0x9b, 0xc8, 0x73, 0x42, 0x8d, 0xbb, 0xe0, 0x8b, 0x2b, 0x19, 0x69, 0x68, -0x03, 0x08, 0x9d, 0xc5, 0x62, 0x2b, 0x2d, 0x77, 0xf5, 0xe3, 0xdb, 0x53, 0xc8, 0xfe, 0x51, 0xd6, -0x93, 0xad, 0x69, 0x81, 0x5b, 0xca, 0x05, 0xba, 0xb9, 0x12, 0xe9, 0x12, 0x68, 0x85, 0x84, 0x12, -0xcf, 0xf8, 0x6e, 0x87, 0x1b, 0xad, 0x51, 0x93, 0x9e, 0x65, 0x79, 0x52, 0xdd, 0xfa, 0x6e, 0xa8, -0xdb, 0x8c, 0xfa, 0xf1, 0x4f, 0xe7, 0xf9, 0xb7, 0x55, 0xfd, 0xfe, 0xa6, 0x75, 0xdb, 0x96, 0x56, -0xb7, 0x19, 0xbc, 0x6e, 0xf1, 0x55, 0x5c, 0x2f, 0x27, 0xd4, 0x81, 0x53, 0xb2, 0xc8, 0xc3, 0x91, -0xce, 0x26, 0x98, 0xa3, 0x4e, 0x47, 0xb3, 0xd8, 0x05, 0xfd, 0xec, 0x64, 0x2f, 0xa2, 0x6d, 0xb4, -0x45, 0xe3, 0xf1, 0x7c, 0xb9, 0xc6, 0x52, 0xc2, 0x8c, 0x41, 0x17, 0xc0, 0x70, 0x09, 0x33, 0x55, -0x7f, 0xac, 0x63, 0x51, 0x05, 0x31, 0x7a, 0x69, 0x6b, 0xd5, 0x27, 0xc3, 0xcc, 0x67, 0x09, 0x99, -0x5e, 0xdb, 0xc9, 0x74, 0x2b, 0xad, 0x90, 0xc6, 0x11, 0x88, 0xed, 0x05, 0x8c, 0x2e, 0x1b, 0xcd, -0x4c, 0x51, 0x82, 0x51, 0x39, 0x3f, 0xac, 0xec, 0x19, 0x0c, 0x75, 0x91, 0x95, 0xb5, 0x67, 0x5c, -0x5c, 0x6f, 0xf7, 0xde, 0xb0, 0x4e, 0xee, 0xb1, 0x0f, 0x62, 0xff, 0x4f, 0x6a, 0x4f, 0xce, 0xa2, -0xf1, 0x3f, 0x06, 0xfd, 0xcf, 0xa8, 0x6d, 0x29, 0x01, 0xdf, 0x58, 0x29, 0x59, 0x93, 0xc3, 0xd6, -0x78, 0x7b, 0x58, 0x0e, 0xf1, 0x46, 0x05, 0x9e, 0x6f, 0x49, 0x39, 0xbc, 0x25, 0xd7, 0x9f, 0xc3, -0x96, 0x2c, 0x1a, 0xbf, 0xfe, 0x31, 0xe0, 0xba, 0xfe, 0xd7, 0x62, 0xa1, 0x59, 0x6d, 0xfa, 0xb0, -0x49, 0xb6, 0x90, 0xee, 0x93, 0x67, 0xa8, 0xb4, 0x31, 0xc0, 0xe5, 0x26, 0xe0, 0x2f, 0x3a, 0x80, -0x72, 0xb2, 0xaa, 0xe3, 0x61, 0x4a, 0x8e, 0x07, 0xd7, 0x02, 0xa7, 0xce, 0x6f, 0xd4, 0xa5, 0xdd, -0x0d, 0x6b, 0x16, 0xcc, 0xe9, 0x92, 0x62, 0x58, 0x7e, 0x9a, 0xec, 0xb7, 0xd1, 0x6d, 0xa8, 0x87, -0x0b, 0x2b, 0xd9, 0x98, 0xbe, 0xc2, 0x09, 0xff, 0xb3, 0x75, 0x8b, 0xc7, 0xe3, 0xc7, 0xc4, 0x85, -0x0e, 0x4b, 0x10, 0xf7, 0x61, 0x0a, 0x00, 0xde, 0xdd, 0xd0, 0xba, 0x22, 0x80, 0xf6, 0xed, 0x89, -0x93, 0x71, 0xdb, 0xf3, 0x2a, 0x59, 0x96, 0xdc, 0x2c, 0x66, 0x9d, 0xc7, 0x73, 0x75, 0x0f, 0x97, -0x66, 0xe9, 0xdc, 0xec, 0xfe, 0x2f, 0xbb, 0x95, 0x15, 0xe1, 0xfb, 0xeb, 0xd8, 0x9b, 0xb1, 0x0f, -0x9f, 0xf4, 0x55, 0x07, 0xad, 0x3c, 0x15, 0xd7, 0xb2, 0x0f, 0xf5, 0x74, 0xc8, 0x4c, 0x78, 0x98, -0xfb, 0xa1, 0xc4, 0x9a, 0xc3, 0xb2, 0xd0, 0x40, 0x2b, 0x76, 0xb1, 0x72, 0x16, 0xe8, 0x1f, 0x77, -0x90, 0x09, 0x95, 0x96, 0x62, 0x25, 0x82, 0xb4, 0x48, 0x68, 0x26, 0xfc, 0xd7, 0x05, 0x0b, 0x7c, -0xd5, 0x21, 0x83, 0xef, 0x65, 0x65, 0x53, 0x30, 0x07, 0xfe, 0x6f, 0x0f, 0x99, 0xd7, 0x0a, 0xb2, -0x69, 0xad, 0x4e, 0x36, 0x78, 0xaa, 0x01, 0xff, 0x66, 0xf5, 0xb3, 0xca, 0x62, 0x65, 0x85, 0xad, -0x58, 0x79, 0xf8, 0xd7, 0x8f, 0x8b, 0x75, 0x27, 0x7e, 0x50, 0x96, 0xe5, 0xfd, 0xc1, 0x47, 0x8f, -0x9f, 0xf8, 0x81, 0x6d, 0xa1, 0x6d, 0xd8, 0x5c, 0xcd, 0xb2, 0x42, 0x4c, 0x99, 0x87, 0x14, 0x07, -0xe6, 0x48, 0xbb, 0x8c, 0x6e, 0xfb, 0x70, 0xcd, 0x16, 0x58, 0x79, 0x8b, 0x95, 0x77, 0x90, 0xe6, -0x58, 0x78, 0x51, 0xa3, 0xf6, 0x08, 0x7a, 0xba, 0x95, 0x5f, 0xf9, 0x0f, 0xfc, 0xe1, 0x0d, 0x5a, -0x71, 0x77, 0xc3, 0x8a, 0x8b, 0xfb, 0xbb, 0x46, 0xd4, 0x56, 0x8e, 0x27, 0x49, 0xc0, 0xa7, 0x2d, -0xe9, 0xf3, 0xa9, 0x0e, 0x7c, 0xb6, 0x84, 0x4c, 0x44, 0x95, 0x14, 0x2b, 0xfd, 0x72, 0x0f, 0xa7, -0xbd, 0xa3, 0xe6, 0x53, 0xbb, 0x80, 0x3e, 0xaa, 0x0e, 0xba, 0xea, 0x3f, 0x14, 0x16, 0xc0, 0x28, -0x6d, 0x4d, 0xd0, 0x35, 0x11, 0x27, 0x23, 0x79, 0x7f, 0x1b, 0xfa, 0xb6, 0x8c, 0x9c, 0x80, 0x78, -0x73, 0xba, 0x95, 0x4d, 0x40, 0xbd, 0x14, 0x42, 0xdc, 0x25, 0x53, 0xc6, 0xad, 0x48, 0x8b, 0xbb, -0x5d, 0xb0, 0x10, 0xfd, 0x58, 0xac, 0x7c, 0x27, 0x49, 0xe1, 0x78, 0x76, 0xe9, 0x0a, 0x54, 0x8a, -0x18, 0x35, 0xb9, 0x94, 0x93, 0x0e, 0x5d, 0x3a, 0x29, 0x29, 0x96, 0xd9, 0x71, 0xb4, 0x8b, 0x99, -0xd9, 0x11, 0xf0, 0x15, 0x09, 0x0b, 0x82, 0xf9, 0xf0, 0x7f, 0x89, 0x4a, 0xcb, 0x17, 0x79, 0x57, -0x0b, 0x4b, 0x34, 0x6a, 0x1e, 0xe5, 0x8a, 0xa7, 0x9d, 0x30, 0x67, 0x96, 0xa6, 0x53, 0xb2, 0xd0, -0x47, 0x96, 0xa0, 0x19, 0xe5, 0x66, 0x2a, 0x84, 0xad, 0x13, 0xdd, 0xb3, 0x3d, 0x80, 0x09, 0x07, -0x49, 0xaa, 0x02, 0x98, 0xf0, 0x8f, 0x5b, 0xf8, 0xba, 0x93, 0xb2, 0xce, 0xe0, 0xce, 0x12, 0xe0, -0xb3, 0xab, 0xfd, 0x78, 0x42, 0x93, 0x5c, 0x6a, 0xdc, 0x3f, 0xbd, 0x89, 0xb3, 0x15, 0x60, 0xc1, -0x06, 0x39, 0xea, 0x30, 0xc7, 0x24, 0x35, 0x8e, 0xf1, 0x20, 0x4d, 0x19, 0xcd, 0x5c, 0x26, 0xa3, -0x7c, 0xcd, 0x32, 0x1b, 0x75, 0x06, 0xbd, 0x48, 0xe7, 0x18, 0xf2, 0x1b, 0x3e, 0x6a, 0xd0, 0x2b, -0x6f, 0x60, 0xdb, 0x54, 0x8b, 0x26, 0x96, 0x1b, 0x75, 0xd5, 0x90, 0x36, 0x3d, 0x63, 0x98, 0xea, -0x2a, 0xcf, 0xb3, 0x3f, 0x89, 0x74, 0xf9, 0xe4, 0x38, 0xb8, 0xc7, 0x14, 0xcc, 0x4f, 0xa1, 0xe6, -0x81, 0xa2, 0xfa, 0x3d, 0xd1, 0xff, 0xc0, 0x6b, 0xe9, 0xec, 0x4f, 0x6a, 0x77, 0x99, 0x13, 0xbc, -0xc0, 0x9d, 0x80, 0xeb, 0x9e, 0xb2, 0x93, 0xdd, 0x90, 0x50, 0x19, 0xd5, 0x45, 0x3f, 0x67, 0x11, -0xc9, 0xff, 0x0a, 0x80, 0x37, 0xd5, 0x53, 0x5f, 0xde, 0x83, 0x32, 0xa8, 0x04, 0x35, 0xbb, 0x07, -0xc3, 0xc2, 0x3a, 0x08, 0x05, 0x7c, 0x20, 0x9a, 0x38, 0xfd, 0x09, 0x23, 0xe2, 0xc2, 0xf9, 0xe7, -0x84, 0x11, 0x71, 0xe2, 0x88, 0xc0, 0xfc, 0xb3, 0x37, 0x4b, 0x59, 0xea, 0x0c, 0x74, 0x71, 0x3b, -0x8d, 0xd7, 0x9a, 0x13, 0x73, 0x4c, 0x5e, 0xf8, 0x91, 0x72, 0x0c, 0x77, 0xf7, 0xaf, 0xaf, 0xe7, -0xe7, 0x01, 0x84, 0x05, 0x25, 0x26, 0xc3, 0x37, 0xe0, 0xbd, 0xc4, 0x5a, 0xac, 0xb8, 0x2d, 0x3a, -0xd2, 0x4f, 0x2f, 0xac, 0x60, 0x6c, 0xff, 0x6b, 0x2f, 0x2b, 0x3b, 0x43, 0xa6, 0xb0, 0x61, 0x0e, -0xb6, 0x9b, 0x09, 0x0e, 0xde, 0x3a, 0x82, 0xf2, 0xdd, 0x2a, 0x5c, 0xbf, 0x8c, 0xbb, 0x38, 0xdc, -0xc7, 0x73, 0x9f, 0xf1, 0x18, 0x41, 0xf8, 0x2e, 0xa2, 0x29, 0x91, 0xb6, 0x3a, 0x70, 0xf5, 0x5d, -0x94, 0xd1, 0x21, 0x4d, 0x99, 0x4c, 0x05, 0xd0, 0x37, 0xab, 0x71, 0xc4, 0xac, 0x03, 0x2a, 0x22, -0x57, 0xac, 0xb1, 0x2d, 0x52, 0xcf, 0x06, 0x21, 0x9f, 0x5c, 0x23, 0x3f, 0x8c, 0x36, 0x39, 0xb9, -0xfc, 0x3e, 0x35, 0x8c, 0x5b, 0x92, 0x49, 0x96, 0x23, 0x4d, 0xbb, 0x69, 0xac, 0x99, 0x50, 0x2b, -0x17, 0xb6, 0xf9, 0x4f, 0xb9, 0xaa, 0xb5, 0x83, 0x42, 0x79, 0x55, 0x54, 0xb7, 0x4e, 0x90, 0xf5, -0xf0, 0x9f, 0x71, 0x49, 0x0d, 0xf6, 0x3b, 0xd6, 0x80, 0xcf, 0x5d, 0xdc, 0x7d, 0xac, 0x81, 0xd9, -0x3c, 0xa7, 0x81, 0xf7, 0xbf, 0x38, 0x44, 0xa3, 0x50, 0x0d, 0xa3, 0xd0, 0xad, 0x1c, 0x4b, 0x1f, -0x83, 0xc4, 0x08, 0x07, 0xc3, 0xf3, 0x81, 0x92, 0x03, 0x4a, 0x03, 0xe2, 0xb8, 0xfd, 0x07, 0x7e, -0x37, 0x46, 0xd2, 0x01, 0x6e, 0xf9, 0x08, 0xe7, 0x8b, 0x5e, 0x9d, 0x2f, 0x2e, 0x94, 0xae, 0xe0, -0x7c, 0x71, 0x04, 0x54, 0xde, 0x45, 0x8f, 0x5a, 0xd8, 0x82, 0x39, 0x1c, 0x32, 0xaf, 0x5f, 0x26, -0x19, 0xf1, 0xa8, 0xc4, 0x52, 0x46, 0x8c, 0x42, 0xfe, 0xf4, 0x5c, 0xc2, 0xee, 0xfd, 0x73, 0xb0, -0x5e, 0xd5, 0x50, 0xea, 0x62, 0x65, 0x27, 0x72, 0x74, 0x21, 0x53, 0xc4, 0x74, 0x77, 0x15, 0x8e, -0x0a, 0x1b, 0x32, 0x17, 0xb3, 0x2c, 0xc5, 0x1d, 0xec, 0x48, 0x19, 0x1d, 0xbf, 0xc4, 0xea, 0x61, -0x94, 0x61, 0x4d, 0xed, 0x56, 0x96, 0x40, 0xdd, 0x7c, 0xdc, 0x37, 0x31, 0x42, 0x2f, 0xa9, 0x23, -0x84, 0xfb, 0x4c, 0x6e, 0x95, 0xea, 0xcf, 0xd5, 0x52, 0x62, 0x9b, 0xc1, 0x7f, 0x7d, 0xe3, 0x88, -0x54, 0xac, 0xf8, 0xd0, 0xa5, 0xd6, 0x94, 0xf0, 0xb4, 0x6c, 0x55, 0xeb, 0xb7, 0x4d, 0xed, 0xdd, -0x55, 0x1c, 0x43, 0x14, 0xe8, 0x95, 0x02, 0x6c, 0xb1, 0xc6, 0x09, 0x4a, 0x73, 0x01, 0xbf, 0x4b, -0x1a, 0x27, 0x7c, 0xfd, 0x21, 0xce, 0x09, 0x6b, 0xb6, 0xf9, 0x26, 0xf3, 0xd5, 0x4b, 0x2e, 0xc5, -0xcf, 0x00, 0xad, 0x5b, 0xea, 0x90, 0x04, 0xb7, 0xbd, 0x57, 0x68, 0x74, 0xf4, 0x0a, 0xcd, 0x61, -0x8b, 0x23, 0xe6, 0x7b, 0x55, 0xa8, 0x09, 0xb9, 0xa5, 0x6a, 0x96, 0x8f, 0xb8, 0x02, 0xf5, 0xe3, -0x92, 0x2c, 0x2b, 0xd7, 0xf3, 0xdd, 0xa8, 0x78, 0x6a, 0x84, 0xef, 0xed, 0x7c, 0xee, 0xa4, 0x24, -0x09, 0xcb, 0xf9, 0xf7, 0x97, 0x4a, 0x00, 0xbf, 0x21, 0xed, 0x54, 0x29, 0x36, 0xfa, 0x37, 0x93, -0x7e, 0x82, 0xa1, 0xa0, 0x08, 0xb9, 0x78, 0x43, 0xb3, 0x60, 0xe6, 0xe5, 0x12, 0x65, 0x36, 0x76, -0xff, 0x29, 0x95, 0xd2, 0xcd, 0xc1, 0x5c, 0x65, 0x53, 0x38, 0x0b, 0x38, 0x07, 0xc4, 0x74, 0xd9, -0xc0, 0xe9, 0x14, 0x2c, 0xb9, 0x24, 0x38, 0x89, 0x5a, 0x44, 0x7b, 0xb9, 0x22, 0x90, 0xb6, 0x76, -0xa0, 0x14, 0x9d, 0x40, 0x37, 0xb9, 0x1c, 0xaa, 0xcd, 0x5c, 0xc0, 0x7a, 0x2f, 0x09, 0xb1, 0x90, -0x45, 0x3d, 0xc1, 0x39, 0xa6, 0xdb, 0x4d, 0x7d, 0xf1, 0xb0, 0xb6, 0x1b, 0x9e, 0xef, 0xe0, 0x96, -0x18, 0x80, 0xea, 0x2b, 0x87, 0xba, 0x97, 0x02, 0x3f, 0xe5, 0x02, 0x2a, 0xd0, 0x29, 0xd5, 0x90, -0xb5, 0x3b, 0x11, 0x4a, 0x01, 0x4a, 0x50, 0x51, 0xf7, 0x63, 0x3f, 0xb7, 0x89, 0xf8, 0xdc, 0x7c, -0xcc, 0x33, 0x98, 0x37, 0x29, 0x4f, 0x13, 0xd4, 0x4e, 0x87, 0x7c, 0x0d, 0xd4, 0x4e, 0x8f, 0xe9, -0xe8, 0x34, 0xe1, 0x55, 0xef, 0x7b, 0x95, 0xc8, 0x21, 0x95, 0x43, 0xad, 0x90, 0x3f, 0xa8, 0x04, -0xd8, 0x02, 0xce, 0x44, 0x70, 0x4e, 0xc6, 0x4a, 0xa4, 0xb1, 0xcc, 0xa4, 0x62, 0x2e, 0xc6, 0xf6, -0x38, 0x9f, 0x9c, 0xeb, 0x63, 0x7a, 0xcf, 0x6e, 0xa0, 0x05, 0x76, 0x33, 0x71, 0xbd, 0xeb, 0xec, -0x88, 0x94, 0x8d, 0x96, 0x76, 0x24, 0xfd, 0xa2, 0x4b, 0x50, 0xc7, 0xdb, 0xf0, 0x34, 0x80, 0x64, -0x02, 0xba, 0x10, 0xe8, 0xbd, 0xb9, 0x5c, 0x16, 0x94, 0x0f, 0x75, 0xca, 0x96, 0xf4, 0x5a, 0x58, -0xd2, 0x5f, 0x74, 0x01, 0xcf, 0x9b, 0x05, 0xb4, 0x7c, 0x5e, 0xbb, 0x21, 0x97, 0xfa, 0x11, 0xb5, -0xaf, 0x86, 0x6c, 0xea, 0x49, 0x19, 0xa4, 0xc3, 0x93, 0x3f, 0x33, 0x1f, 0x29, 0xe2, 0x10, 0x72, -0xc0, 0xc7, 0xce, 0x7d, 0x8c, 0xeb, 0xa9, 0x95, 0x09, 0x49, 0xaa, 0xe0, 0x24, 0xab, 0xb2, 0xe7, -0x70, 0x7c, 0xfe, 0xe1, 0x28, 0x9e, 0xb1, 0xec, 0xaf, 0x54, 0x65, 0x28, 0xda, 0xc9, 0x51, 0xe8, -0x35, 0x1c, 0xdb, 0x94, 0x14, 0x26, 0xd5, 0x0e, 0xad, 0x05, 0x79, 0x4d, 0x15, 0xfe, 0xcc, 0x92, -0x51, 0x04, 0xde, 0x10, 0x77, 0x13, 0xb9, 0x5e, 0x47, 0xb4, 0x36, 0xa5, 0xe5, 0x02, 0xf0, 0x9b, -0xcf, 0x25, 0xd8, 0x2d, 0x23, 0xb8, 0x1e, 0xa0, 0x84, 0x12, 0xc6, 0x05, 0x4f, 0x59, 0x63, 0x1e, -0x27, 0x34, 0x0a, 0xdd, 0xd6, 0xc9, 0x50, 0x72, 0x61, 0xbd, 0xc1, 0x27, 0xff, 0x06, 0x9f, 0x02, -0xff, 0x89, 0xe4, 0xfa, 0x71, 0x83, 0x84, 0xae, 0x59, 0x5c, 0x64, 0x73, 0x27, 0xf5, 0x99, 0x5d, -0xdf, 0x0c, 0xd4, 0x09, 0x2f, 0xb5, 0x08, 0xe6, 0x74, 0x07, 0x13, 0xfd, 0x9b, 0x71, 0xfd, 0x68, -0x19, 0x99, 0xbc, 0x82, 0x4c, 0x9c, 0x54, 0x57, 0x10, 0x80, 0x78, 0xda, 0xdb, 0xd7, 0x76, 0x04, -0xf2, 0x71, 0x05, 0x48, 0x5f, 0x51, 0x12, 0x79, 0xce, 0xc0, 0xff, 0xfe, 0xcd, 0xea, 0xda, 0x62, -0x25, 0xde, 0xf1, 0x86, 0xb4, 0x7c, 0xf5, 0x98, 0xd4, 0x0a, 0xbb, 0xff, 0x04, 0x40, 0x17, 0x43, -0xe8, 0x12, 0x7b, 0x05, 0x27, 0xcc, 0x42, 0x97, 0xab, 0xb1, 0x10, 0xc2, 0xcd, 0x77, 0xb2, 0xf9, -0xc1, 0x59, 0xc8, 0xb3, 0x49, 0xb7, 0xa1, 0x9e, 0xe0, 0x44, 0xee, 0x7a, 0xa0, 0x82, 0xf2, 0x03, -0x4f, 0xc2, 0xea, 0x80, 0x67, 0x57, 0x0e, 0xc4, 0x27, 0xb8, 0x3f, 0xf0, 0xa2, 0x97, 0xc3, 0x42, -0x31, 0x5f, 0x37, 0x8c, 0x28, 0xf3, 0x08, 0x19, 0x6d, 0x8b, 0xd0, 0xe6, 0x9f, 0xec, 0x87, 0xf1, -0xab, 0x55, 0xc7, 0x05, 0xd6, 0x16, 0x1e, 0x87, 0xbd, 0x4b, 0x79, 0x9b, 0x78, 0xcd, 0x9d, 0x3c, -0x6f, 0xc6, 0x8e, 0x52, 0xdd, 0x61, 0xb4, 0x90, 0xda, 0x9b, 0x8b, 0x3a, 0x66, 0x4d, 0xa8, 0xad, -0x38, 0xf0, 0x24, 0x3f, 0x87, 0xc3, 0x86, 0x2d, 0xa3, 0x8e, 0x7a, 0xcb, 0xe7, 0x42, 0x06, 0x92, -0xaa, 0x5c, 0xf1, 0x58, 0x7c, 0xc8, 0x13, 0x3d, 0x89, 0x79, 0x79, 0x81, 0x2a, 0xa7, 0xfc, 0x8c, -0x98, 0x1f, 0xcd, 0x47, 0x3f, 0xf9, 0x61, 0x6e, 0xd5, 0xa9, 0xb9, 0x11, 0x2e, 0xb8, 0x33, 0x34, -0xdf, 0xb7, 0x9b, 0x19, 0x43, 0x16, 0xaa, 0x87, 0x19, 0x65, 0x15, 0xb0, 0xae, 0x4d, 0x97, 0xad, -0xe0, 0xab, 0x57, 0x5b, 0xae, 0xf9, 0xf2, 0x3a, 0x1b, 0x08, 0xee, 0xf6, 0x00, 0xf6, 0xb6, 0xdb, -0x1b, 0xe4, 0x7c, 0xa4, 0x74, 0x2d, 0x3e, 0x3c, 0x3b, 0x77, 0xed, 0xa8, 0xbd, 0x12, 0x77, 0x9c, -0x51, 0x07, 0xf4, 0xb5, 0xab, 0x96, 0x3b, 0x01, 0x47, 0x32, 0xcd, 0x22, 0x1e, 0x42, 0xb3, 0x40, -0xd2, 0x2e, 0x4d, 0x8e, 0x68, 0x87, 0x3c, 0xff, 0xe5, 0xb7, 0x48, 0x0d, 0xa1, 0x44, 0x1d, 0x35, -0xee, 0x23, 0x04, 0x02, 0xc7, 0x9a, 0x02, 0xcb, 0x30, 0x32, 0x2e, 0xd2, 0x89, 0xa7, 0xc3, 0x90, -0x34, 0xff, 0xd2, 0x04, 0x24, 0x92, 0x8c, 0x2d, 0xcd, 0x55, 0x7e, 0x03, 0x94, 0x56, 0x20, 0x94, -0x96, 0x22, 0x5e, 0x23, 0x59, 0x35, 0x4a, 0x16, 0x68, 0x55, 0xe2, 0x70, 0x83, 0xbd, 0x55, 0x49, -0x23, 0x83, 0x52, 0x38, 0x7d, 0xd8, 0x28, 0xcf, 0xf4, 0x6d, 0x08, 0xcd, 0x8a, 0x08, 0x7b, 0x37, -0x84, 0xdc, 0xc0, 0xb5, 0x6f, 0x08, 0xfa, 0x7c, 0x83, 0xdd, 0xfa, 0x3d, 0x83, 0x6d, 0x0d, 0xe1, -0x69, 0x2a, 0xdd, 0xe6, 0xf5, 0x0d, 0x76, 0x99, 0x45, 0x5d, 0x4d, 0x6c, 0xcf, 0x2e, 0x66, 0x5d, -0x69, 0x45, 0xfb, 0x60, 0xa1, 0x1c, 0xe0, 0x43, 0xc1, 0xb5, 0x67, 0xa0, 0x4d, 0x1f, 0x99, 0x26, -0xe7, 0x03, 0xdd, 0x6a, 0x85, 0x9c, 0x06, 0x7b, 0x8e, 0xd8, 0x74, 0x35, 0x03, 0x7b, 0x06, 0xda, -0x0f, 0x9d, 0x8a, 0x01, 0xae, 0x30, 0xe2, 0xfa, 0x05, 0x78, 0xcd, 0x80, 0x96, 0x06, 0x91, 0x9b, -0x30, 0x9b, 0x79, 0xcb, 0xa4, 0x0e, 0x96, 0x0f, 0x10, 0x46, 0x7b, 0x3f, 0x37, 0x5b, 0x2f, 0xfe, -0xbc, 0x1c, 0xd6, 0x68, 0xb8, 0xb9, 0x1c, 0x96, 0x78, 0x83, 0xc6, 0xc4, 0x7a, 0x69, 0xc1, 0x73, -0x57, 0xb5, 0xe3, 0xca, 0xf6, 0x14, 0x69, 0xac, 0x91, 0xce, 0x62, 0xdc, 0x28, 0x9d, 0xb5, 0xf3, -0x79, 0x93, 0x98, 0xeb, 0xc6, 0x1b, 0xf7, 0x8d, 0x52, 0xf2, 0x20, 0x6a, 0x47, 0x69, 0x16, 0x9b, -0xb0, 0x94, 0xf4, 0x3d, 0x0c, 0xc4, 0x57, 0x29, 0xb3, 0x9d, 0x9f, 0x6d, 0xb5, 0xaa, 0xb3, 0x7d, -0xa6, 0xd8, 0xc4, 0x43, 0x22, 0x2c, 0xd7, 0x82, 0xb2, 0x0f, 0x9c, 0x5b, 0x8a, 0x59, 0x93, 0xcc, -0xe3, 0xac, 0xc7, 0xdd, 0x16, 0xdf, 0x3f, 0xc3, 0x38, 0xe1, 0xe9, 0x18, 0x68, 0x0d, 0x49, 0xfd, -0x0c, 0xbf, 0xf6, 0x7a, 0xdd, 0x1e, 0x37, 0xed, 0xe7, 0x4e, 0x43, 0xbd, 0x09, 0x83, 0x31, 0xf2, -0x37, 0xfe, 0x7a, 0x38, 0x36, 0x10, 0x73, 0xb2, 0xe9, 0x78, 0x92, 0x06, 0xa1, 0x18, 0x68, 0x88, -0xe7, 0x27, 0xc9, 0x5f, 0x35, 0x19, 0x1d, 0xe4, 0x45, 0xe9, 0x0d, 0xbf, 0x26, 0xcd, 0x0b, 0x94, -0x7e, 0x1a, 0xe6, 0x1a, 0x1b, 0x20, 0x7f, 0xb4, 0xef, 0x1e, 0x1b, 0xc4, 0xbc, 0xb0, 0x27, 0x3b, -0x26, 0x97, 0x1d, 0x65, 0x56, 0x8c, 0xef, 0xf1, 0x78, 0x86, 0x92, 0x65, 0x0f, 0x62, 0xd9, 0x7b, -0x06, 0xb4, 0x12, 0x51, 0x16, 0x91, 0x22, 0x75, 0x6e, 0x4e, 0xba, 0x48, 0x7e, 0x37, 0x98, 0x94, -0x33, 0xdf, 0x6a, 0xbb, 0x6e, 0x48, 0x91, 0x93, 0x92, 0xe2, 0xf6, 0x94, 0x14, 0x16, 0x35, 0xc5, -0x1d, 0x49, 0x29, 0x23, 0x69, 0xfc, 0x0e, 0x14, 0xa2, 0x34, 0xb1, 0x1b, 0x66, 0xcb, 0x2a, 0xba, -0xcd, 0x73, 0xcb, 0xf9, 0xec, 0x79, 0x1c, 0x68, 0xea, 0x40, 0x61, 0x37, 0xb3, 0x94, 0x17, 0x1b, -0xf5, 0x6b, 0x59, 0x9e, 0x93, 0x09, 0xeb, 0x58, 0x3e, 0xd6, 0xb9, 0xc1, 0x5b, 0xe3, 0xa9, 0x49, -0xa9, 0xf3, 0x50, 0x7a, 0x9d, 0x8f, 0x6f, 0xf0, 0x79, 0x42, 0xd6, 0x32, 0x9d, 0xf7, 0x07, 0xfd, -0xc2, 0x6f, 0x5e, 0x69, 0xda, 0x78, 0x34, 0xb6, 0x76, 0xc6, 0xf6, 0x81, 0xf7, 0x5e, 0x41, 0x0b, -0x3d, 0xe7, 0x1e, 0x77, 0x18, 0x22, 0x33, 0xde, 0x7d, 0xc9, 0x7b, 0xe8, 0xc2, 0xce, 0xd3, 0x31, -0xd4, 0x1e, 0x36, 0x4d, 0x29, 0x24, 0xd9, 0xe3, 0xb7, 0x37, 0x8a, 0x59, 0xbf, 0xd9, 0x89, 0xd2, -0xe5, 0xbf, 0x57, 0xbe, 0x4d, 0x92, 0xcd, 0x68, 0x52, 0xb2, 0x79, 0x11, 0x70, 0xe2, 0xeb, 0xb0, -0x4e, 0x27, 0xa4, 0x9a, 0x6b, 0x75, 0x73, 0xab, 0x85, 0x8e, 0x28, 0x4a, 0x35, 0xf7, 0xec, 0x7f, -0xac, 0x4b, 0x57, 0xa8, 0xff, 0x4b, 0xda, 0xb6, 0x19, 0x67, 0x31, 0xa6, 0xd2, 0x64, 0x9b, 0xd9, -0xe2, 0x42, 0x6f, 0xd8, 0xc9, 0xce, 0xbd, 0x04, 0xdf, 0x06, 0xff, 0x33, 0xa7, 0x1e, 0xb3, 0xd5, -0xbe, 0x7d, 0x91, 0x59, 0xe7, 0xd4, 0xff, 0x65, 0x7d, 0x86, 0x70, 0xbc, 0xe7, 0xf1, 0x95, 0x05, -0x3b, 0x1e, 0x0b, 0x5b, 0x4e, 0xc7, 0x22, 0x97, 0xdf, 0x1c, 0xe0, 0x6d, 0xeb, 0x67, 0x24, 0x01, -0x75, 0x6b, 0xfa, 0xa4, 0x51, 0x02, 0xca, 0xe1, 0x12, 0xad, 0xd7, 0x85, 0x9d, 0xc7, 0x77, 0x32, -0x4b, 0x34, 0x7b, 0x1f, 0x9e, 0x50, 0xcb, 0xa3, 0x39, 0x89, 0x33, 0x03, 0x65, 0xc7, 0x63, 0x6e, -0x92, 0x9b, 0xc9, 0xa9, 0xab, 0x27, 0x4a, 0x0c, 0x0f, 0x5c, 0x3b, 0x43, 0x32, 0x40, 0x11, 0x21, -0x0e, 0x68, 0xf1, 0xf3, 0x24, 0xc3, 0x06, 0x5c, 0x0e, 0xbc, 0xab, 0x85, 0xce, 0x6c, 0x77, 0x83, -0x1f, 0x97, 0x4c, 0xee, 0xa0, 0x35, 0xc5, 0x64, 0xbe, 0x8f, 0x89, 0xc6, 0x5f, 0x05, 0x0d, 0x4d, -0x31, 0xe8, 0xbf, 0x2b, 0x7b, 0x00, 0xdf, 0x35, 0x0d, 0xa2, 0x2e, 0x6a, 0xdf, 0x60, 0x6f, 0x5e, -0x8a, 0x1c, 0x1d, 0xd2, 0x41, 0xee, 0xeb, 0x49, 0xd3, 0x55, 0x99, 0x93, 0xd9, 0x8b, 0x95, 0x33, -0x76, 0xd4, 0x82, 0xfc, 0x15, 0xda, 0xb9, 0x99, 0x41, 0xf8, 0xdd, 0xa2, 0x69, 0xa9, 0xc6, 0x5d, -0x3d, 0xa2, 0x94, 0xec, 0x2a, 0x6d, 0x54, 0x4e, 0x9a, 0x8d, 0x45, 0x55, 0xb2, 0x34, 0x3b, 0xad, -0x0d, 0x95, 0x24, 0xbf, 0x84, 0x1c, 0xf8, 0x89, 0xb9, 0x2f, 0x1b, 0xf8, 0x09, 0xd7, 0x1e, 0xbb, -0x9a, 0x26, 0x29, 0x55, 0xc0, 0x94, 0x6e, 0x94, 0x7e, 0x8d, 0x5f, 0x51, 0x77, 0x7f, 0x8c, 0x9e, -0x7b, 0x8d, 0x0c, 0x31, 0x14, 0xd9, 0x11, 0x5d, 0xaa, 0x4c, 0xa0, 0xed, 0x55, 0xe2, 0x3d, 0x70, -0x45, 0xec, 0x56, 0x26, 0x38, 0x6d, 0x59, 0xbc, 0x02, 0x4f, 0x68, 0x75, 0xb9, 0x3d, 0x5b, 0xd5, -0x9d, 0xe1, 0xa4, 0x14, 0x9f, 0x09, 0x76, 0xf0, 0xa3, 0x53, 0xe6, 0x67, 0xef, 0x45, 0x39, 0xbe, -0xb6, 0x03, 0x3e, 0x5f, 0xa5, 0x99, 0xb5, 0x39, 0x0c, 0x10, 0x35, 0x41, 0x6b, 0xf4, 0x55, 0xf5, -0x0e, 0xc3, 0x58, 0xe9, 0xb3, 0x94, 0x43, 0x79, 0xd8, 0x72, 0x7c, 0xeb, 0xa4, 0xbd, 0x01, 0xf1, -0xb3, 0xf3, 0x0c, 0x79, 0x9b, 0x06, 0xb9, 0xcd, 0x0c, 0x0e, 0xc9, 0xb8, 0x03, 0x3d, 0xff, 0x94, -0x08, 0xf5, 0x15, 0xc3, 0x15, 0xcc, 0x31, 0xec, 0xed, 0xa0, 0x5a, 0x6e, 0xe7, 0x12, 0x81, 0x29, -0xf2, 0x52, 0x2d, 0xd1, 0x05, 0x73, 0x6d, 0x90, 0x26, 0xcd, 0xf6, 0xcc, 0xb2, 0xbf, 0xdd, 0xf0, -0xc0, 0x11, 0xe5, 0x35, 0x8f, 0xa7, 0x69, 0xb0, 0xed, 0x95, 0xf4, 0xd0, 0x1b, 0xda, 0xee, 0xfc, -0xec, 0x5a, 0x06, 0x8d, 0x9e, 0xad, 0xc4, 0x2f, 0x70, 0x89, 0x88, 0x59, 0xb9, 0xc0, 0x6f, 0x2f, -0x22, 0x45, 0xf9, 0x19, 0x79, 0x7d, 0x29, 0x3c, 0x1d, 0xf8, 0x44, 0xfd, 0x4d, 0x7a, 0x51, 0xc7, -0x57, 0x7a, 0x4d, 0x77, 0xb8, 0x23, 0x40, 0x12, 0x93, 0x2e, 0xc0, 0xac, 0xa8, 0x8b, 0xdf, 0x70, -0x83, 0xcc, 0x24, 0x27, 0x45, 0x66, 0xc2, 0x04, 0xdc, 0x8b, 0xb1, 0x9f, 0x7a, 0x95, 0x89, 0xf5, -0xd4, 0x6f, 0xaa, 0x3c, 0x84, 0x73, 0x66, 0xc6, 0x88, 0x8e, 0x38, 0xc4, 0x0e, 0xdc, 0xb3, 0x47, -0x9a, 0xcd, 0x62, 0xc9, 0x65, 0x4d, 0x82, 0x19, 0xf8, 0x83, 0x15, 0xee, 0xc4, 0x2a, 0xc9, 0x48, -0x8e, 0x02, 0xf0, 0xff, 0xe9, 0x2b, 0x24, 0x19, 0xe9, 0x65, 0x2e, 0x23, 0xc3, 0x2f, 0x84, 0x28, -0xc4, 0xc5, 0x66, 0xb7, 0x8e, 0x85, 0x6a, 0xcc, 0x6e, 0x3d, 0x7b, 0x90, 0x6c, 0x33, 0xdc, 0xe3, -0x36, 0xea, 0xe5, 0xf9, 0x28, 0xa5, 0x0c, 0x19, 0xcd, 0x83, 0x8c, 0x65, 0xbd, 0xdf, 0x2b, 0x86, -0xb3, 0x52, 0x65, 0x2e, 0x46, 0x03, 0xe7, 0x17, 0x3f, 0xad, 0x53, 0x65, 0x2e, 0x6d, 0x81, 0x41, -0xe0, 0x76, 0xda, 0xee, 0xe9, 0x67, 0x3a, 0xa3, 0x1e, 0x77, 0xe0, 0x69, 0x2e, 0xb8, 0xf9, 0x5c, -0x08, 0x55, 0xd8, 0x21, 0x76, 0xe3, 0x20, 0xf4, 0x17, 0x97, 0x79, 0xdc, 0x2f, 0xe9, 0x16, 0xd2, -0xf8, 0x27, 0xb4, 0xd1, 0xe5, 0x25, 0xfa, 0xb2, 0x06, 0xe5, 0xd0, 0xda, 0x68, 0x70, 0xf9, 0x8d, -0x8c, 0x27, 0xce, 0xf2, 0x35, 0xeb, 0x3f, 0x78, 0xa2, 0x03, 0x77, 0xe2, 0xff, 0x8c, 0x0c, 0x67, -0xad, 0xfd, 0xc9, 0xf4, 0x95, 0xdb, 0xe9, 0x26, 0xf9, 0x4d, 0x5e, 0x3a, 0xf5, 0xfd, 0x47, 0x6e, -0x55, 0xba, 0x0e, 0x66, 0x56, 0x7e, 0x5a, 0xec, 0x18, 0x62, 0x3b, 0xdf, 0xe6, 0x60, 0x09, 0xcf, -0x2f, 0x65, 0x15, 0x2f, 0x64, 0x05, 0x0b, 0xc7, 0xff, 0xd8, 0x90, 0x72, 0x72, 0x40, 0xd4, 0x4e, -0x0e, 0xa8, 0x36, 0x91, 0x55, 0x8a, 0x1d, 0x77, 0xd2, 0xb0, 0x9f, 0x09, 0x33, 0x3e, 0x0b, 0xf3, -0x25, 0x17, 0x70, 0x90, 0xc7, 0xc1, 0x29, 0xd5, 0x32, 0xb2, 0xc6, 0xaa, 0xbf, 0xdb, 0x07, 0xd8, -0xe5, 0x25, 0xc2, 0xad, 0x96, 0x04, 0xb5, 0x42, 0xb1, 0xf1, 0x14, 0xb9, 0x74, 0x07, 0xcc, 0x8b, -0x67, 0xfd, 0x07, 0x3e, 0xb9, 0x4a, 0xb3, 0x7f, 0x06, 0xa7, 0x4c, 0x38, 0xfd, 0x5e, 0x3a, 0xdf, -0xd9, 0x2b, 0x14, 0x00, 0x27, 0x6d, 0x77, 0x34, 0xe3, 0x29, 0x4c, 0x3c, 0x4d, 0x03, 0xeb, 0x82, -0xc4, 0xf9, 0xab, 0x6b, 0x0f, 0xdb, 0x99, 0x58, 0x6d, 0xf3, 0xa9, 0x27, 0x14, 0x5a, 0x38, 0x86, -0x09, 0x1a, 0x7c, 0x80, 0xc9, 0x42, 0xfe, 0x70, 0xd6, 0x9e, 0xdd, 0xa8, 0x9b, 0xba, 0xea, 0x92, -0x90, 0x7f, 0xe2, 0x90, 0xd9, 0xc9, 0xbe, 0x1c, 0x8f, 0x07, 0x2b, 0xe1, 0x7d, 0x4f, 0x5c, 0x09, -0x96, 0xcb, 0x46, 0xf3, 0x5f, 0xb3, 0x2f, 0x3b, 0xf3, 0x43, 0x86, 0xa6, 0xc1, 0x55, 0x57, 0x65, -0x3b, 0xe6, 0x23, 0xea, 0xb4, 0x9c, 0x70, 0x0e, 0x62, 0x2e, 0x09, 0xf8, 0x36, 0x68, 0x7b, 0xea, -0xcb, 0xcd, 0x9c, 0xf2, 0xd5, 0xe8, 0x4f, 0xec, 0x53, 0x3b, 0xd1, 0x9f, 0x36, 0xdd, 0xda, 0x19, -0x63, 0xff, 0x8c, 0x6d, 0x5c, 0xcb, 0xe6, 0x39, 0x8d, 0xfa, 0xb1, 0x9d, 0x62, 0x15, 0xee, 0x5c, -0x10, 0x2c, 0x27, 0x66, 0x14, 0x49, 0x0b, 0x75, 0x2a, 0xe4, 0x57, 0x20, 0x4c, 0xeb, 0x06, 0x71, -0x55, 0x44, 0xc8, 0x3e, 0x71, 0x08, 0xe9, 0x2b, 0x3c, 0xc3, 0xac, 0x61, 0x47, 0xb4, 0x5c, 0x8d, -0x50, 0xfd, 0x07, 0xc2, 0xff, 0xb2, 0xde, 0x53, 0xc8, 0x9c, 0xb0, 0x7e, 0x3c, 0xc1, 0xa9, 0x4c, -0x58, 0xf9, 0xf1, 0xbc, 0x8b, 0x13, 0xf8, 0x7a, 0x97, 0xeb, 0x4e, 0xe4, 0x9b, 0x0e, 0x00, 0x3d, -0x14, 0x34, 0x36, 0xfc, 0xaa, 0x60, 0x42, 0x66, 0xf1, 0x15, 0xc0, 0x6b, 0x65, 0x4b, 0x33, 0x80, -0x22, 0x6c, 0x4e, 0xdc, 0x37, 0x66, 0x82, 0x4e, 0x74, 0xab, 0xb4, 0x22, 0x5a, 0xe1, 0xdc, 0x22, -0xba, 0x13, 0xd2, 0x99, 0xf7, 0x6f, 0x46, 0x2f, 0x11, 0x35, 0x60, 0xfc, 0xf5, 0x93, 0x1b, 0x63, -0x1b, 0x61, 0xbd, 0xa7, 0x58, 0x39, 0x29, 0xb1, 0x6e, 0xe7, 0xb1, 0x88, 0x62, 0xb2, 0xfc, 0xfa, -0x89, 0xa1, 0xd8, 0x10, 0xac, 0x8d, 0xeb, 0x98, 0xd3, 0xb7, 0x6f, 0x68, 0x25, 0x63, 0x5b, 0x80, -0xe7, 0xc6, 0x95, 0x7c, 0x9b, 0x5d, 0x2b, 0xe9, 0xeb, 0xb3, 0x72, 0x83, 0x66, 0x5d, 0xcd, 0xa7, -0x0c, 0x2d, 0x8c, 0x19, 0x99, 0x7c, 0x86, 0x56, 0x84, 0x24, 0x6d, 0x54, 0x98, 0x42, 0x1b, 0x15, -0xaa, 0x74, 0x46, 0x21, 0x95, 0x3b, 0xed, 0x00, 0x70, 0x6a, 0x67, 0x06, 0xe4, 0x17, 0x61, 0x55, -0x34, 0x00, 0x57, 0x79, 0x56, 0xe5, 0x88, 0x00, 0x7e, 0xf1, 0xc6, 0xe3, 0xdc, 0x45, 0x00, 0x67, -0xbb, 0x99, 0x35, 0x01, 0x63, 0xb9, 0x12, 0x43, 0xeb, 0xc0, 0x12, 0x9d, 0x6b, 0xba, 0xaa, 0xda, -0x7b, 0xe3, 0xfc, 0x78, 0xc1, 0x44, 0xf2, 0xbc, 0x10, 0xed, 0x95, 0xe3, 0x5d, 0xe2, 0x32, 0xb1, -0x91, 0x5a, 0x21, 0xdc, 0x1a, 0xb5, 0x06, 0xf4, 0xbf, 0x1e, 0xed, 0xbf, 0x42, 0x3f, 0x93, 0xdc, -0xbe, 0x7e, 0xfc, 0xfa, 0xc5, 0x94, 0x76, 0xf6, 0x50, 0x9e, 0xe5, 0xbc, 0x1e, 0xea, 0x1e, 0x41, -0x32, 0xb4, 0x11, 0xc7, 0x0b, 0x60, 0x14, 0xa9, 0x00, 0x8b, 0xb6, 0x4a, 0xde, 0xff, 0x1d, 0x6c, -0x4f, 0x97, 0xe3, 0xd6, 0x7a, 0x04, 0x72, 0x2d, 0x22, 0xa9, 0xd4, 0xa7, 0x78, 0x66, 0x18, 0xa1, -0xb3, 0x80, 0x70, 0x47, 0x25, 0xee, 0xe7, 0x10, 0x54, 0x14, 0xe2, 0x5e, 0x0e, 0xd0, 0x33, 0x44, -0xc9, 0xdd, 0x62, 0xab, 0xce, 0xc4, 0x6e, 0x6d, 0x84, 0xa1, 0xd5, 0x7a, 0xc9, 0xc5, 0x2c, 0xb5, -0xe3, 0x13, 0x57, 0x53, 0xe0, 0xab, 0x46, 0x74, 0x03, 0xbc, 0xe0, 0xdd, 0x09, 0x0a, 0x4d, 0x09, -0x29, 0xe4, 0x90, 0x77, 0x3a, 0xb6, 0x78, 0x7c, 0xc2, 0xb6, 0x6f, 0xc3, 0x0a, 0xe0, 0x9a, 0x8b, -0x38, 0x67, 0x9d, 0x12, 0xdb, 0x91, 0x84, 0xc7, 0x71, 0xdf, 0x9d, 0x00, 0x27, 0xd5, 0x00, 0x27, -0x1b, 0x08, 0x4e, 0x8e, 0x1a, 0x8b, 0x98, 0x8e, 0x7d, 0x0e, 0x6f, 0x8f, 0x41, 0xcb, 0x5d, 0xc9, -0x1d, 0x17, 0xc0, 0x87, 0xcc, 0x72, 0xe7, 0xe9, 0x98, 0xbc, 0x0b, 0x77, 0xae, 0x00, 0x2b, 0x63, -0x9f, 0xda, 0x00, 0x3b, 0xf1, 0x3e, 0xa5, 0x9d, 0xd5, 0xee, 0x5c, 0xa0, 0x31, 0x5c, 0x12, 0x5a, -0xfd, 0x72, 0x22, 0xff, 0x2a, 0xb3, 0x09, 0x9c, 0x6d, 0x77, 0x42, 0x4e, 0x68, 0x53, 0x76, 0xb3, -0x5d, 0xdb, 0x3d, 0xdc, 0x08, 0xbe, 0x45, 0xec, 0x73, 0x11, 0xdd, 0xa1, 0x18, 0xde, 0x2b, 0xc7, -0xb3, 0xa6, 0x50, 0x2e, 0x83, 0x72, 0xa1, 0x87, 0xf1, 0x9c, 0x30, 0x96, 0xa1, 0x8e, 0x9b, 0x88, -0x67, 0x31, 0xb4, 0x72, 0x2a, 0xc3, 0x6a, 0xcd, 0x4d, 0x11, 0x01, 0xef, 0x62, 0xe0, 0xbe, 0x4a, -0x02, 0x12, 0xa1, 0x1c, 0xc4, 0xb5, 0x00, 0x89, 0xc0, 0x49, 0x5d, 0x31, 0x91, 0xf5, 0x31, 0x3c, -0xeb, 0x61, 0xe5, 0x92, 0x66, 0xe0, 0xcd, 0xcd, 0x24, 0xab, 0xad, 0x41, 0xfb, 0x06, 0x1a, 0x8f, -0x4d, 0x58, 0xf0, 0xb2, 0x7a, 0x9b, 0xb1, 0x00, 0x28, 0x31, 0xd1, 0xe3, 0x86, 0xd1, 0xf8, 0xab, -0xfb, 0xdd, 0xcc, 0x44, 0x5f, 0x79, 0xf7, 0xe3, 0xb9, 0x65, 0xfc, 0xba, 0x0b, 0xbe, 0x72, 0xe8, -0xcb, 0x0a, 0x5f, 0x16, 0x4f, 0x2f, 0xcb, 0x23, 0xd7, 0x9d, 0xe0, 0xca, 0xa5, 0xaf, 0x5c, 0x83, -0x7b, 0x5a, 0x17, 0xb8, 0xac, 0x55, 0x97, 0x98, 0x49, 0x95, 0x34, 0xf7, 0xa3, 0xf6, 0xfa, 0x14, -0x37, 0x3f, 0xeb, 0xf0, 0x55, 0xb2, 0x0c, 0x65, 0x49, 0xdf, 0x19, 0x2c, 0x04, 0x88, 0x72, 0x35, -0xa3, 0x14, 0x21, 0x64, 0x20, 0x09, 0x83, 0x39, 0x6c, 0x2c, 0x56, 0xd7, 0x6f, 0x5d, 0x9b, 0xef, -0x99, 0x20, 0x63, 0xbb, 0x38, 0xac, 0x79, 0xbe, 0xfb, 0x97, 0xcc, 0x21, 0xd1, 0x43, 0x38, 0x12, -0x46, 0x73, 0xe1, 0xf8, 0xf8, 0xee, 0xc4, 0x5a, 0xc9, 0x74, 0x39, 0x22, 0xf2, 0x60, 0x16, 0x9e, -0xa7, 0xa4, 0xe3, 0x1c, 0xc9, 0x2d, 0xe6, 0x59, 0xad, 0xe5, 0x99, 0xcc, 0x4f, 0x78, 0x9d, 0x43, -0xdf, 0xf1, 0xc1, 0xc2, 0x18, 0xca, 0x35, 0x0a, 0x0e, 0xf2, 0x9c, 0x6d, 0x4b, 0x6f, 0x8d, 0xd6, -0xff, 0xfe, 0x68, 0x1b, 0x13, 0xd6, 0x4b, 0xd3, 0xff, 0x6b, 0xf5, 0x40, 0xf9, 0x4c, 0x12, 0xb2, -0x85, 0x32, 0xcb, 0x9d, 0xc1, 0x5c, 0xf1, 0x2e, 0x9d, 0x1b, 0x60, 0x1b, 0x6f, 0x9d, 0xb1, 0xc2, -0x18, 0x9e, 0x4f, 0xe1, 0x67, 0x6d, 0x4e, 0x3c, 0xa3, 0xc2, 0x39, 0x53, 0x1e, 0xc6, 0x35, 0x4f, -0x85, 0x31, 0x17, 0xed, 0xff, 0x74, 0x69, 0x27, 0xdb, 0x26, 0xc3, 0xa5, 0x60, 0x4d, 0x87, 0x4b, -0xc1, 0x7a, 0x13, 0xb8, 0xd4, 0x7b, 0xb6, 0xc8, 0x95, 0x69, 0x71, 0x91, 0x22, 0xf1, 0x25, 0x66, -0x8b, 0x5f, 0xb3, 0x86, 0x8c, 0xf0, 0x1b, 0x11, 0xe4, 0x1c, 0x7c, 0x27, 0xe7, 0x84, 0x7d, 0x80, -0xbe, 0x93, 0xfd, 0x55, 0x94, 0xd2, 0x5f, 0x45, 0x6a, 0x7f, 0x15, 0xb1, 0x3b, 0xa0, 0x46, 0x78, -0x53, 0x31, 0x07, 0xb0, 0x53, 0x25, 0xee, 0xc2, 0x61, 0x89, 0x8d, 0x23, 0x6a, 0x99, 0x76, 0xde, -0x2e, 0xa1, 0x20, 0xb5, 0x9e, 0x5f, 0xde, 0xce, 0xef, 0x3f, 0xf7, 0xe2, 0x3e, 0x4d, 0x3e, 0xac, -0x75, 0xbb, 0x84, 0xfc, 0x39, 0x8b, 0x12, 0x7b, 0x77, 0xb4, 0x4b, 0xab, 0x9d, 0xef, 0xc5, 0x95, -0x17, 0x67, 0xd2, 0xa5, 0x43, 0x2d, 0x23, 0x89, 0x7b, 0xc2, 0xc6, 0xbb, 0xfa, 0x51, 0xdb, 0x83, -0x3d, 0x86, 0x7b, 0x8e, 0x84, 0x19, 0xe9, 0xa6, 0x35, 0xdf, 0x03, 0x14, 0xac, 0x98, 0x1f, 0xed, -0x51, 0xbc, 0x88, 0xf8, 0xde, 0x6e, 0x49, 0xf4, 0x2d, 0xc7, 0xcc, 0x07, 0x7e, 0x6f, 0xc1, 0x3c, -0xf0, 0xec, 0xd5, 0x9c, 0xd5, 0x30, 0x24, 0x7a, 0x2e, 0x5d, 0xb9, 0x35, 0xe8, 0xc0, 0xd6, 0xd2, -0x6e, 0xb0, 0x05, 0xf7, 0xc3, 0x26, 0x7c, 0x58, 0x26, 0xe4, 0x62, 0x16, 0x70, 0x6d, 0x41, 0x1a, -0x34, 0x7f, 0xca, 0x96, 0xeb, 0x6e, 0xde, 0x72, 0x92, 0x24, 0xe9, 0xd3, 0xcf, 0x65, 0x01, 0x0d, -0x9a, 0x6f, 0x73, 0xbf, 0x3d, 0xfa, 0xf6, 0x5b, 0xc7, 0x1f, 0xc7, 0xb7, 0x25, 0x9f, 0x4e, 0x51, -0x1c, 0x17, 0xa7, 0x07, 0x06, 0xf6, 0x0d, 0xf4, 0x5c, 0x50, 0xef, 0xe8, 0x5f, 0x46, 0xea, 0x51, -0x44, 0xbd, 0x19, 0x8d, 0xce, 0x0e, 0xe2, 0x0f, 0x75, 0xde, 0xae, 0xac, 0x2f, 0x2d, 0x1c, 0x57, -0xf6, 0xe1, 0x79, 0x76, 0xc4, 0x08, 0xaa, 0xdf, 0x5f, 0xab, 0x6e, 0xab, 0xea, 0xbe, 0x4f, 0x75, -0xe7, 0xa9, 0xee, 0x7b, 0x55, 0x77, 0x3e, 0xe0, 0x93, 0x59, 0xaa, 0xdf, 0x3d, 0xaa, 0xdf, 0x4c, -0xa2, 0x74, 0xbb, 0xb2, 0x8a, 0x55, 0x77, 0x01, 0xe0, 0x91, 0xdc, 0x49, 0x78, 0x25, 0x37, 0x15, -0xaf, 0x20, 0xcd, 0xa8, 0x9e, 0x0a, 0x49, 0xd1, 0x48, 0x72, 0xdd, 0xaf, 0xca, 0xc1, 0xea, 0x6d, -0x9d, 0xac, 0x12, 0x38, 0x4c, 0x39, 0x71, 0x66, 0xfe, 0x60, 0x42, 0x43, 0xb4, 0x46, 0x65, 0xd6, -0x00, 0xed, 0x7d, 0x1b, 0x2b, 0xb0, 0xa5, 0xda, 0x39, 0xa9, 0x00, 0xfc, 0x8f, 0xa7, 0xff, 0x6b, -0xe6, 0x74, 0x30, 0x91, 0xb9, 0x20, 0x46, 0xce, 0x14, 0x31, 0x72, 0x31, 0x06, 0xde, 0x3f, 0x49, -0xe7, 0x58, 0xf8, 0x19, 0x76, 0xb1, 0x02, 0x79, 0x16, 0x3c, 0x95, 0x4a, 0x16, 0x44, 0xb7, 0x03, -0x45, 0xa6, 0x28, 0x4a, 0x3d, 0xdd, 0x9a, 0xf7, 0xae, 0xbb, 0x63, 0x1b, 0x5a, 0x75, 0x6f, 0x1c, -0xb1, 0xc6, 0x16, 0xd2, 0x8d, 0x79, 0xd5, 0x07, 0x5a, 0x6d, 0x67, 0xd0, 0x07, 0x8b, 0xf8, 0xb9, -0xe2, 0xbb, 0xdc, 0xa4, 0xe5, 0x65, 0x11, 0x0f, 0x01, 0x97, 0x7a, 0x9a, 0x38, 0xa5, 0xf6, 0x1d, -0x74, 0x62, 0x77, 0x7e, 0x38, 0x6f, 0xb6, 0x9b, 0x6e, 0xc6, 0x77, 0x54, 0x5f, 0x64, 0x5d, 0xb3, -0xeb, 0x99, 0x13, 0xbf, 0xa1, 0xde, 0x77, 0x51, 0xbd, 0x3b, 0x92, 0xf5, 0x4e, 0xdc, 0x12, 0xe8, -0xf0, 0x1f, 0x88, 0x1f, 0x45, 0xbb, 0x8d, 0x2c, 0x18, 0xca, 0x49, 0x6b, 0xdb, 0x82, 0x84, 0xc5, -0x93, 0xa4, 0x85, 0x9e, 0x2e, 0xbc, 0x7b, 0x71, 0x83, 0xd5, 0x9e, 0x42, 0x56, 0x11, 0xca, 0xd1, -0xe8, 0x4a, 0xc8, 0xaf, 0x9f, 0xee, 0x59, 0x94, 0xa7, 0xf9, 0x75, 0x90, 0x9f, 0x31, 0xcd, 0xaf, -0x99, 0xfc, 0x2c, 0x69, 0x7e, 0x6e, 0xf5, 0x8e, 0x46, 0xaa, 0x9f, 0xab, 0x71, 0x44, 0x75, 0xe1, -0xce, 0xe4, 0xac, 0xc6, 0x11, 0xad, 0x77, 0x2b, 0x50, 0xc2, 0x58, 0xe0, 0x00, 0x0e, 0xcf, 0xa9, -0xee, 0x3f, 0x85, 0xff, 0x9f, 0x3a, 0x66, 0xd3, 0xb3, 0x81, 0x74, 0x2d, 0x16, 0x5c, 0x57, 0x90, -0x70, 0xce, 0xfe, 0xe4, 0x7d, 0x1e, 0x56, 0x28, 0xea, 0x22, 0xb7, 0xff, 0x66, 0xe7, 0xf1, 0x01, -0xdc, 0x91, 0x19, 0x1c, 0x4a, 0xc6, 0xc2, 0x15, 0x18, 0x62, 0xbd, 0x46, 0x7c, 0x25, 0xe4, 0x92, -0x16, 0x62, 0x81, 0x90, 0x67, 0xf1, 0x04, 0x53, 0xea, 0x49, 0x6b, 0x0a, 0xc1, 0x1b, 0x27, 0x37, -0xfa, 0x96, 0x87, 0xf0, 0xde, 0x99, 0x6e, 0xb2, 0x3e, 0x0d, 0x08, 0xa9, 0x40, 0x69, 0x18, 0xf4, -0xa3, 0x31, 0x7c, 0x3b, 0x70, 0xbd, 0xe6, 0xe8, 0xe5, 0x37, 0x62, 0x22, 0x9e, 0x1a, 0x2f, 0x0f, -0x2b, 0x62, 0x2c, 0x8c, 0x78, 0x51, 0x44, 0x57, 0x54, 0x99, 0x3d, 0x48, 0x7c, 0xa6, 0xd1, 0x5e, -0x6a, 0x9c, 0x40, 0xe8, 0x89, 0x31, 0xf4, 0x09, 0x0c, 0xb4, 0xc4, 0x4a, 0x57, 0xb1, 0xc2, 0xef, -0xfd, 0xa0, 0xe7, 0x4c, 0xda, 0xfd, 0x1c, 0x37, 0xd2, 0x35, 0xb0, 0x12, 0x55, 0x4c, 0xba, 0x9f, -0x53, 0x43, 0xf7, 0x76, 0x60, 0xad, 0x15, 0xb3, 0x26, 0xdd, 0xcf, 0x61, 0xec, 0x08, 0x59, 0x33, -0x09, 0x02, 0x35, 0xd9, 0xd6, 0x15, 0x01, 0xee, 0xa1, 0x62, 0x52, 0x2b, 0x3a, 0xd0, 0x5a, 0x1f, -0xc2, 0x81, 0x2d, 0x35, 0xdf, 0xcd, 0x64, 0xd9, 0x29, 0x8a, 0x7c, 0xf8, 0xd9, 0xc5, 0x6c, 0xed, -0x9c, 0x45, 0x6c, 0x3d, 0x7c, 0x8f, 0x39, 0x4c, 0xec, 0xeb, 0x08, 0x6f, 0x37, 0x85, 0x42, 0xeb, -0x24, 0x28, 0x2c, 0x53, 0xe7, 0x5d, 0xf6, 0xe4, 0x59, 0x45, 0x77, 0x58, 0x5d, 0x91, 0x38, 0xac, -0x29, 0xa8, 0xdd, 0xc1, 0xa4, 0x9e, 0x16, 0xbb, 0x40, 0x7a, 0x24, 0xf8, 0x9d, 0x15, 0x65, 0x41, -0x4d, 0xe3, 0x08, 0xda, 0x54, 0x85, 0x35, 0xa4, 0x12, 0xed, 0x34, 0x02, 0x6e, 0xbc, 0xdc, 0x32, -0xa2, 0x6a, 0x44, 0x2f, 0xd0, 0xa4, 0x62, 0x84, 0xd9, 0x72, 0x6c, 0x1d, 0xd8, 0x9f, 0x5f, 0x1c, -0xcc, 0x67, 0x81, 0x58, 0xcb, 0x40, 0x59, 0x07, 0x2b, 0xfc, 0xfe, 0x68, 0xcf, 0x45, 0xf5, 0xbc, -0x17, 0x69, 0x9b, 0x41, 0x0b, 0x8a, 0xc0, 0x6f, 0x61, 0xcf, 0xd7, 0x44, 0x67, 0xfc, 0xe7, 0x4e, -0xb5, 0x05, 0x35, 0xc0, 0xed, 0x5b, 0xa9, 0xfe, 0x35, 0xa2, 0x40, 0xbe, 0x2e, 0xfc, 0x46, 0x1b, -0x06, 0x17, 0xeb, 0x67, 0x57, 0xf1, 0xf8, 0x74, 0xf7, 0x4c, 0x1f, 0xce, 0x87, 0x79, 0xaf, 0xbb, -0xc7, 0x7d, 0x23, 0x86, 0x40, 0x3b, 0x94, 0xc0, 0xb9, 0x86, 0x5b, 0x46, 0xb4, 0xf3, 0x59, 0xfc, -0xdc, 0x78, 0x05, 0xe2, 0x06, 0x84, 0x5e, 0xd1, 0x11, 0x28, 0x83, 0x11, 0x7d, 0xfa, 0x70, 0x98, -0x45, 0x2e, 0x1f, 0xda, 0x20, 0x37, 0xdb, 0x8d, 0x2d, 0x83, 0x4e, 0x80, 0x81, 0xbd, 0xfb, 0x86, -0x59, 0xc8, 0x10, 0x88, 0x89, 0x1e, 0xd9, 0x6d, 0x23, 0x88, 0x79, 0x33, 0x16, 0x99, 0xf1, 0x9b, -0x97, 0x4e, 0x7f, 0x6f, 0x98, 0xcd, 0xa9, 0x06, 0xae, 0xee, 0x22, 0xab, 0x68, 0xde, 0xfc, 0xf4, -0x61, 0xa0, 0x94, 0x72, 0x21, 0xbc, 0xe2, 0xed, 0xc3, 0xb6, 0x3b, 0x42, 0xfa, 0xa6, 0x01, 0xdb, -0x00, 0xb4, 0x73, 0x18, 0xf3, 0x84, 0x76, 0x8e, 0xc1, 0x2a, 0xc7, 0xd8, 0x01, 0xf8, 0xda, 0x19, -0x66, 0x51, 0x88, 0x89, 0xd0, 0x65, 0x2b, 0x35, 0xb2, 0x96, 0xd8, 0x3a, 0x65, 0xff, 0x00, 0xe4, -0x3f, 0xf8, 0xfd, 0x43, 0x3d, 0x17, 0x9d, 0xba, 0xef, 0x1f, 0x0a, 0x3a, 0xe4, 0x3c, 0xcc, 0xc7, -0xf6, 0xb5, 0x7c, 0xf6, 0xbd, 0xb7, 0x56, 0xea, 0xc5, 0x7a, 0x3b, 0xf5, 0x98, 0x6c, 0x8a, 0xb0, -0xd2, 0x7e, 0x45, 0x89, 0x42, 0x6f, 0xee, 0x8f, 0xf5, 0x9c, 0x5b, 0x77, 0xf9, 0xf0, 0x06, 0xb1, -0x88, 0xb9, 0x42, 0x79, 0xfc, 0xfe, 0x50, 0x2e, 0xe3, 0x37, 0x78, 0x37, 0x0f, 0xa1, 0x36, 0x82, -0x2e, 0x5d, 0xd8, 0x42, 0xb7, 0xaa, 0x99, 0x44, 0xf2, 0x13, 0x84, 0x61, 0xa9, 0xd4, 0xc9, 0xcf, -0x15, 0x6c, 0xd6, 0x34, 0x91, 0x60, 0x2d, 0x66, 0x03, 0xb1, 0x8f, 0xa1, 0xeb, 0x6e, 0x7f, 0x73, -0x88, 0xda, 0xb5, 0xc7, 0x49, 0xed, 0x02, 0xbf, 0x8a, 0xd9, 0x07, 0x51, 0x72, 0x82, 0x3a, 0x9e, -0x0a, 0x0a, 0x12, 0x5a, 0xa4, 0x2c, 0x30, 0xa6, 0xd4, 0xbf, 0xe1, 0x59, 0x5f, 0x44, 0x3d, 0x3b, -0xf0, 0xb5, 0xf0, 0x22, 0xf3, 0x7e, 0x71, 0x11, 0x73, 0xe2, 0xf7, 0xbd, 0xfd, 0xac, 0x80, 0x15, -0xcc, 0xc1, 0x31, 0xf3, 0xc2, 0xff, 0x7c, 0xd6, 0x00, 0xcc, 0xe8, 0xdd, 0xa8, 0x11, 0x15, 0xb0, -0xe6, 0xf2, 0x6a, 0x2e, 0x87, 0x7d, 0xf8, 0x3e, 0x84, 0xc4, 0x15, 0x9e, 0x55, 0xac, 0x6d, 0x8e, -0x97, 0x35, 0xdf, 0xd7, 0xcb, 0x6c, 0xac, 0xa5, 0x14, 0xb8, 0x5f, 0xef, 0xe8, 0x07, 0xc3, 0x03, -0x40, 0x81, 0xdd, 0x80, 0xe1, 0x0d, 0xbe, 0x42, 0xf6, 0x15, 0x3e, 0x8a, 0xd7, 0x77, 0x25, 0x47, -0x11, 0xf7, 0x18, 0xfc, 0x4b, 0x49, 0x93, 0xd9, 0xb8, 0xa7, 0x5b, 0x89, 0x7f, 0xbe, 0x9f, 0x7d, -0x5e, 0x19, 0x57, 0x75, 0x72, 0x19, 0xbc, 0xdd, 0xe0, 0xfb, 0x5d, 0xba, 0xa5, 0x84, 0xb2, 0x53, -0x37, 0x69, 0xf7, 0xe1, 0xe7, 0x1d, 0xae, 0x92, 0x0c, 0xa6, 0x9b, 0x19, 0xeb, 0x3f, 0x52, 0x3e, -0x41, 0x88, 0x86, 0x58, 0x66, 0x7e, 0xd3, 0xdb, 0x0e, 0x6b, 0x3a, 0xe4, 0x53, 0xad, 0x7c, 0x02, -0xff, 0xf5, 0x4a, 0x5c, 0xcd, 0xcd, 0x24, 0xa1, 0x2d, 0x3b, 0x3d, 0x59, 0xbe, 0x3a, 0x10, 0x47, -0x69, 0x86, 0x1d, 0xfa, 0x30, 0x8c, 0xfc, 0x1f, 0xd0, 0x09, 0x85, 0x4c, 0x68, 0x06, 0xb8, 0xd8, -0x1b, 0x6b, 0xb7, 0x12, 0x17, 0x97, 0x45, 0x7c, 0x9d, 0x6e, 0xf3, 0xc0, 0x7b, 0xc3, 0x11, 0xeb, -0xf1, 0x01, 0xd2, 0x3e, 0x00, 0x0d, 0xb6, 0xb1, 0xf3, 0x8f, 0x7f, 0xbe, 0x4a, 0xb9, 0xfe, 0x79, -0x77, 0x32, 0x5f, 0xa8, 0xe5, 0x27, 0x28, 0x89, 0xa4, 0x7c, 0x9f, 0xc5, 0x3a, 0xa2, 0x8c, 0x40, -0xf4, 0xd9, 0xba, 0x99, 0x39, 0x9c, 0x62, 0xbf, 0x50, 0x34, 0xb5, 0xc4, 0x54, 0xa9, 0x1e, 0xe3, -0x52, 0x3d, 0x4d, 0x76, 0x9a, 0x90, 0x9b, 0xf2, 0x76, 0xda, 0xb4, 0x93, 0x92, 0xf3, 0x8a, 0x95, -0x89, 0xb1, 0x45, 0xba, 0x0d, 0xa8, 0xf7, 0xd4, 0xee, 0x46, 0x0a, 0x19, 0x60, 0x2f, 0xcf, 0xec, -0x64, 0x2b, 0x99, 0x6e, 0x85, 0xc9, 0xe8, 0x04, 0x0c, 0x22, 0x84, 0x74, 0x81, 0xc1, 0x40, 0xac, -0x71, 0xf8, 0xb5, 0x58, 0xcf, 0x98, 0x6f, 0x30, 0x04, 0xf8, 0xf2, 0xf8, 0xe0, 0xf1, 0x58, 0x2a, -0x0e, 0x72, 0xc4, 0x42, 0xcd, 0x4f, 0x1f, 0xde, 0xfa, 0x96, 0xec, 0x35, 0x17, 0x52, 0xca, 0x4a, -0x63, 0x21, 0xa5, 0xe4, 0xf2, 0x61, 0x7d, 0x0a, 0x1f, 0x9b, 0x9d, 0xc2, 0xc7, 0x1a, 0x90, 0x7a, -0x72, 0x36, 0xd9, 0x8c, 0x27, 0x87, 0x4f, 0x22, 0x3f, 0x3b, 0x6d, 0x6e, 0x0c, 0xe6, 0xfe, 0x70, -0xe0, 0xf1, 0xc6, 0x27, 0x5e, 0x7b, 0xbc, 0x67, 0x9f, 0xac, 0xa3, 0xd3, 0xb7, 0x09, 0x09, 0x25, -0xb6, 0x45, 0xd2, 0x25, 0x5b, 0x11, 0xe7, 0xf7, 0xbd, 0xcb, 0xca, 0xb0, 0x0d, 0xf5, 0x51, 0x56, -0x2e, 0x88, 0x50, 0x86, 0x3c, 0x0b, 0xe8, 0x32, 0x9d, 0x99, 0xb1, 0x95, 0x2b, 0x2c, 0xbc, 0xfe, -0x41, 0x23, 0xa7, 0xab, 0x65, 0x53, 0x60, 0xa0, 0x11, 0x4f, 0xa7, 0xbf, 0x13, 0x46, 0x39, 0xf7, -0xa7, 0x6a, 0x9e, 0x40, 0x2d, 0x55, 0x88, 0xf6, 0x62, 0x92, 0x7d, 0x9a, 0x48, 0x6b, 0xde, 0x15, -0x3e, 0xca, 0x30, 0xb6, 0x0b, 0x95, 0x2b, 0x54, 0x1e, 0x5a, 0x03, 0xfd, 0xd8, 0xa6, 0xe9, 0xe7, -0x61, 0xec, 0x58, 0x29, 0x96, 0x09, 0x09, 0x2a, 0x98, 0x58, 0x0f, 0x65, 0xd6, 0xa8, 0x3d, 0x56, -0xa1, 0x96, 0x58, 0x4a, 0x5c, 0x82, 0xfe, 0xd7, 0x8b, 0xbc, 0xd5, 0x9e, 0x6a, 0xa2, 0x14, 0xb3, -0x89, 0x83, 0xde, 0x40, 0xfe, 0x06, 0x55, 0x92, 0x32, 0x2d, 0xac, 0xec, 0xd9, 0x00, 0xf8, 0x7d, -0x93, 0xdc, 0x8f, 0x35, 0xdb, 0x3f, 0xd0, 0xb3, 0x5f, 0x8e, 0x98, 0x2d, 0x5a, 0xcd, 0x15, 0x25, -0x68, 0x54, 0xfd, 0x2f, 0xbe, 0xf7, 0x38, 0x70, 0xf0, 0xf7, 0xe4, 0xeb, 0xf9, 0x5e, 0x0c, 0xe4, -0x78, 0x4f, 0x3e, 0xcf, 0x71, 0x88, 0xfc, 0x0d, 0xbf, 0xde, 0x34, 0x1c, 0x1b, 0xbe, 0x27, 0x7f, -0x1a, 0xd4, 0xf6, 0x0f, 0x78, 0xbe, 0xfa, 0x8f, 0x2e, 0xff, 0x16, 0xf8, 0xfe, 0x54, 0xac, 0xf1, -0x76, 0x28, 0x0a, 0x7c, 0x27, 0x21, 0xe9, 0x0a, 0xc1, 0x3b, 0x6a, 0xb4, 0x0a, 0x40, 0x7b, 0x9c, -0x1c, 0x5e, 0xf4, 0x05, 0xca, 0x79, 0x3a, 0xf5, 0x22, 0xbc, 0x37, 0x5c, 0xf5, 0x3b, 0xa3, 0x0e, -0xb8, 0x91, 0x75, 0x38, 0x6b, 0x88, 0x7a, 0x81, 0x39, 0x90, 0x32, 0x7b, 0x72, 0x95, 0x71, 0xf8, -0x2f, 0x27, 0xa0, 0x93, 0xe6, 0x10, 0xbc, 0x65, 0x92, 0xc0, 0x92, 0x56, 0x9c, 0x04, 0x84, 0xae, -0x02, 0x9c, 0x8d, 0x30, 0x6a, 0x4f, 0xc2, 0xa8, 0x7a, 0x8e, 0xb9, 0x5b, 0xb9, 0xec, 0xea, 0x56, -0xae, 0xaa, 0x63, 0xf0, 0x61, 0xca, 0x59, 0x3c, 0x8b, 0x56, 0xd6, 0xc2, 0x8f, 0x94, 0x8f, 0xf1, -0xc6, 0x52, 0x52, 0xa7, 0x17, 0x94, 0x7b, 0x17, 0x95, 0x6e, 0x51, 0xae, 0x91, 0xae, 0x42, 0xac, -0x8f, 0x51, 0xf9, 0xdd, 0xe7, 0xbb, 0xd9, 0xed, 0xca, 0x15, 0x51, 0xe7, 0x75, 0x7b, 0x47, 0x61, -0xde, 0xfc, 0x51, 0xd4, 0x9d, 0x8f, 0xc1, 0xfb, 0xd3, 0xcf, 0x7b, 0x94, 0x3f, 0x91, 0x56, 0x28, -0x4b, 0xf2, 0x06, 0xcf, 0xf5, 0xcd, 0xa4, 0x53, 0x4f, 0xab, 0xb5, 0x39, 0x51, 0xeb, 0x1a, 0x9c, -0xaf, 0x74, 0x8a, 0x8e, 0x76, 0x3f, 0xf8, 0xe9, 0x14, 0x56, 0x89, 0xfc, 0x2f, 0xd0, 0x2f, 0xf6, -0x45, 0x5c, 0xc3, 0x18, 0x62, 0x81, 0xdb, 0x54, 0x2c, 0x00, 0x1c, 0xcd, 0x17, 0x00, 0x0b, 0xb0, -0x59, 0x5f, 0xc0, 0xf5, 0x59, 0xf4, 0x6c, 0x85, 0xb7, 0x99, 0x39, 0x12, 0xd8, 0xe0, 0x36, 0x7e, -0xdf, 0x0a, 0x25, 0x95, 0xe3, 0x63, 0x2a, 0x36, 0x58, 0x40, 0x90, 0x9f, 0x1d, 0xc9, 0x42, 0x3b, -0x38, 0x40, 0xdb, 0x58, 0xf7, 0xc6, 0x82, 0x25, 0xaa, 0x54, 0x27, 0x39, 0x4b, 0xa6, 0xe3, 0x2c, -0x21, 0x19, 0xcf, 0x0c, 0x72, 0x9b, 0x7e, 0xfd, 0x78, 0x6c, 0xc0, 0x11, 0x4b, 0x39, 0x3b, 0xcc, -0xb4, 0x73, 0x48, 0x0f, 0x8c, 0xa8, 0x52, 0x58, 0x2b, 0xe0, 0xd8, 0x30, 0xb4, 0xe6, 0x0c, 0xfc, -0xf0, 0x54, 0xe1, 0x9b, 0x40, 0x7f, 0x8c, 0x4a, 0x46, 0x6d, 0x57, 0xe3, 0xee, 0x0b, 0xb0, 0x5a, -0x3b, 0xe9, 0x1e, 0x68, 0x89, 0xc4, 0x80, 0x92, 0x1d, 0x73, 0x38, 0xf0, 0xe4, 0x24, 0x5a, 0xd2, -0x22, 0xcd, 0x3c, 0xf4, 0xbd, 0x2c, 0x49, 0x1d, 0x93, 0x76, 0x24, 0xbc, 0x61, 0x00, 0x54, 0xe7, -0x91, 0xd0, 0x4c, 0xb1, 0x50, 0x98, 0x47, 0xf7, 0xc9, 0x2d, 0x50, 0xeb, 0x54, 0xeb, 0x9b, 0x51, -0x0c, 0x69, 0x8a, 0xe1, 0x99, 0x99, 0xf6, 0xae, 0xe3, 0xb1, 0xd2, 0x2f, 0x1b, 0x0d, 0xfe, 0x6b, -0x30, 0x0b, 0x4c, 0x2c, 0x0f, 0x70, 0x76, 0x09, 0xab, 0xf3, 0xe2, 0xbe, 0x02, 0xf2, 0x98, 0xcb, -0xe5, 0xf9, 0x89, 0xef, 0xff, 0x25, 0x97, 0x24, 0xbe, 0x7f, 0x28, 0xdb, 0xa4, 0x45, 0xcc, 0x48, -0xf5, 0xf5, 0xd2, 0x89, 0x07, 0xee, 0x7f, 0x51, 0x36, 0x69, 0xdf, 0xbf, 0xd4, 0xab, 0x37, 0x5d, -0x83, 0x24, 0xc9, 0xd6, 0xab, 0x50, 0xf4, 0x55, 0xc7, 0x57, 0x1b, 0x69, 0x87, 0x28, 0x3e, 0xea, -0x7d, 0xaf, 0x92, 0x76, 0x88, 0x9c, 0xdd, 0x64, 0x51, 0xd4, 0x4d, 0x33, 0xf9, 0x60, 0x52, 0x17, -0x1c, 0xcc, 0xb5, 0x4d, 0x21, 0x96, 0x75, 0x1c, 0xf8, 0x50, 0x3d, 0xde, 0xd4, 0x86, 0x79, 0x63, -0x89, 0x2c, 0xd9, 0x3b, 0xd4, 0xce, 0xb2, 0x0e, 0x3a, 0xba, 0x98, 0x11, 0x2d, 0xb4, 0x06, 0x86, -0x61, 0xf5, 0x09, 0xa7, 0x5a, 0x84, 0xf5, 0x94, 0x79, 0xc3, 0xf7, 0x75, 0x41, 0x6b, 0x46, 0xe7, -0xe0, 0x6d, 0xc1, 0x53, 0xf4, 0xff, 0x0c, 0xfc, 0x2f, 0x65, 0x6f, 0xc2, 0xda, 0x74, 0x04, 0x7e, -0x27, 0x89, 0x3a, 0x3b, 0x4e, 0xff, 0x8f, 0xd2, 0xff, 0x63, 0x40, 0xed, 0x9c, 0x03, 0x1e, 0x2e, -0x56, 0x7f, 0x51, 0x58, 0x40, 0xb5, 0x2f, 0x93, 0xcc, 0x74, 0x23, 0x72, 0x8f, 0x7f, 0xbb, 0xd3, -0x84, 0x52, 0x4f, 0x61, 0x09, 0xf9, 0x57, 0x48, 0x7a, 0xff, 0x76, 0x88, 0x29, 0xc3, 0xaf, 0x2d, -0x9c, 0x05, 0x3d, 0xde, 0xe6, 0x29, 0x64, 0x17, 0xe6, 0xf4, 0x23, 0xc2, 0x12, 0x2e, 0xaa, 0xef, -0x8f, 0x81, 0x87, 0xf4, 0xd2, 0x5e, 0x23, 0x69, 0xef, 0xc8, 0xd2, 0x61, 0xfd, 0xd7, 0xb3, 0x99, -0x16, 0xf3, 0x63, 0x10, 0xfc, 0xa7, 0x95, 0xfa, 0xf5, 0x86, 0xba, 0x6c, 0xa8, 0xfb, 0x47, 0xf1, -0x43, 0x62, 0x76, 0xca, 0x8d, 0xb1, 0x3f, 0xb4, 0x30, 0x8f, 0x33, 0x7e, 0x08, 0xfd, 0x9f, 0x3e, -0x2c, 0x17, 0x58, 0x3e, 0x07, 0x58, 0x51, 0x0c, 0xe5, 0xc2, 0x7f, 0x5b, 0x30, 0xb7, 0xea, 0x0f, -0xc3, 0xec, 0x8e, 0x7e, 0x26, 0xc6, 0x0f, 0xc9, 0x86, 0xc0, 0xf0, 0x81, 0xe1, 0x9e, 0xf3, 0x62, -0x76, 0x53, 0xac, 0x0a, 0xe2, 0xca, 0xf6, 0x5c, 0xa0, 0x3b, 0xe8, 0xae, 0x0e, 0xde, 0xd8, 0xb1, -0x05, 0x4d, 0x55, 0x7f, 0x30, 0xaa, 0x71, 0xc3, 0x8c, 0x62, 0x2c, 0x80, 0xf1, 0x56, 0x60, 0xec, -0x4f, 0xcb, 0x1f, 0x57, 0x43, 0x58, 0xee, 0xdc, 0xf8, 0x21, 0x88, 0x59, 0x14, 0xb4, 0xa1, 0xdd, -0xec, 0x03, 0x03, 0xbd, 0xd6, 0xea, 0x3f, 0xe4, 0x33, 0xf3, 0x5c, 0x56, 0x14, 0x3f, 0x14, 0x34, -0x5a, 0x26, 0x58, 0x91, 0x28, 0xc8, 0xf8, 0x16, 0x65, 0x9d, 0xe5, 0x07, 0x81, 0xd8, 0x81, 0x58, -0xcf, 0x61, 0xcb, 0x41, 0x98, 0x4b, 0xb0, 0x8e, 0x47, 0xb2, 0xa3, 0x4c, 0xd5, 0x22, 0x55, 0xe0, -0x20, 0x0e, 0x40, 0x67, 0x0a, 0xeb, 0x07, 0x5e, 0x02, 0x7e, 0x12, 0x4a, 0x72, 0x0c, 0x13, 0x87, -0xac, 0xe9, 0x3b, 0xd0, 0x7b, 0x5e, 0x42, 0xab, 0x11, 0xd0, 0x73, 0x0b, 0xa2, 0x07, 0x4f, 0x7d, -0xd3, 0xa1, 0xea, 0x21, 0x9b, 0x78, 0x97, 0x38, 0x87, 0x98, 0xef, 0x65, 0xe5, 0x20, 0x42, 0x30, -0x50, 0x9c, 0x47, 0x6a, 0x60, 0x74, 0xc0, 0x3d, 0xba, 0xec, 0x07, 0xde, 0x81, 0x9a, 0xaa, 0xfb, -0xaa, 0xd8, 0x49, 0x70, 0xbd, 0xc1, 0xed, 0x72, 0x43, 0xf8, 0x71, 0x5f, 0x55, 0x68, 0x96, 0xcf, -0x4d, 0xa7, 0x2c, 0x27, 0x70, 0x2c, 0xce, 0x15, 0xa5, 0x42, 0xd8, 0x7a, 0x98, 0x67, 0xeb, 0x05, -0x48, 0x71, 0x58, 0xcd, 0xef, 0x28, 0xe4, 0x77, 0x14, 0xdc, 0x47, 0x55, 0xf7, 0x31, 0x70, 0x1f, -0x03, 0xf7, 0x99, 0x65, 0xda, 0xc9, 0xcb, 0x73, 0x35, 0x30, 0xea, 0xe0, 0x73, 0x4e, 0xf3, 0x11, -0x62, 0x35, 0x00, 0x03, 0x62, 0xb7, 0x72, 0x9e, 0xc6, 0xcd, 0x2e, 0xa2, 0x7c, 0xe1, 0x4c, 0x4f, -0x81, 0xb8, 0x78, 0x36, 0xce, 0x50, 0x82, 0xeb, 0x73, 0xcd, 0xe9, 0xa5, 0x8a, 0xc5, 0xca, 0x85, -0x90, 0x99, 0x4e, 0x34, 0xaa, 0x27, 0x8f, 0xc1, 0xe7, 0x7d, 0xf2, 0xd1, 0x6b, 0x3e, 0x50, 0xc6, -0xf1, 0x44, 0x19, 0x32, 0x94, 0x21, 0x83, 0xcf, 0xa9, 0x84, 0x4f, 0x1b, 0xf8, 0xb4, 0x25, 0xec, -0xb6, 0xea, 0xe7, 0x34, 0xb2, 0x36, 0x67, 0xb1, 0x72, 0x39, 0x54, 0xa1, 0xe6, 0x00, 0x3d, 0x09, -0x70, 0x1f, 0x6b, 0x4b, 0xb6, 0x7c, 0xdd, 0xa4, 0x96, 0xe7, 0x00, 0x45, 0xb8, 0x8a, 0x5d, 0x48, -0xd4, 0x40, 0xb3, 0x0b, 0x0b, 0x79, 0x09, 0x17, 0xc1, 0xf5, 0x69, 0xc2, 0xf5, 0xb1, 0xa6, 0x09, -0x6e, 0xe2, 0x45, 0xd9, 0x5d, 0x08, 0x38, 0xcc, 0x55, 0x8b, 0xdc, 0xbf, 0x0d, 0x6d, 0x6f, 0xff, -0xe7, 0xb9, 0x6f, 0x39, 0x6e, 0x33, 0x6c, 0x50, 0x94, 0xf8, 0xa1, 0x75, 0xd9, 0x75, 0x7a, 0x0c, -0x89, 0xbb, 0xc4, 0xc5, 0xcd, 0x1b, 0x66, 0x67, 0xa9, 0x6d, 0xdf, 0x91, 0x5e, 0x6e, 0x24, 0xdb, -0xae, 0xe6, 0xa6, 0xe4, 0xf9, 0x1e, 0x0b, 0xce, 0x94, 0x6d, 0x89, 0x1a, 0xfe, 0x24, 0x6d, 0xf6, -0x13, 0x1f, 0x71, 0xcd, 0xd8, 0x32, 0xa2, 0xd2, 0x3a, 0x95, 0xf1, 0xe7, 0x12, 0xf7, 0x6e, 0xe8, -0x2c, 0x0d, 0xde, 0x37, 0x41, 0xfe, 0x30, 0xeb, 0xbd, 0xa8, 0x61, 0xdf, 0xe3, 0xed, 0xfe, 0xb7, -0xdf, 0x2a, 0xfd, 0xf2, 0x0e, 0x8e, 0x95, 0x72, 0x80, 0xaa, 0x9c, 0xc9, 0x44, 0xe6, 0x80, 0x79, -0x5c, 0x7e, 0x0f, 0x40, 0x85, 0x5c, 0x32, 0xbb, 0x4a, 0x90, 0x65, 0x27, 0xfc, 0x6f, 0x93, 0x6d, -0xc0, 0x2d, 0x9c, 0x93, 0x0b, 0xe0, 0x3b, 0x26, 0xe7, 0x49, 0x82, 0xb7, 0x43, 0x58, 0x20, 0x1b, -0xe8, 0x9d, 0x38, 0x09, 0xce, 0xef, 0xe0, 0x48, 0x3a, 0x28, 0xc3, 0x88, 0xba, 0x73, 0xff, 0xe3, -0xaf, 0xa3, 0xff, 0x6d, 0xdf, 0x00, 0x40, 0xad, 0xa7, 0x9b, 0x09, 0x26, 0xf2, 0x79, 0xd0, 0x5a, -0xc9, 0xee, 0x24, 0xbf, 0x92, 0xee, 0xb5, 0xe4, 0xf3, 0x4d, 0xd2, 0xbe, 0x81, 0x3e, 0x05, 0xdd, -0x85, 0xe8, 0xf3, 0xce, 0x74, 0xd2, 0xca, 0x85, 0x3e, 0x3c, 0x4d, 0x60, 0xdf, 0x00, 0xa4, 0x8f, -0xe3, 0xf7, 0xb9, 0x5f, 0x5a, 0x51, 0x3f, 0x98, 0x96, 0x5b, 0x55, 0xd4, 0x82, 0xf1, 0x84, 0x77, -0xbb, 0x73, 0xc8, 0xfd, 0x55, 0x08, 0xbd, 0x1d, 0xf0, 0xf2, 0x87, 0xe4, 0xfa, 0x7a, 0xf4, 0x0e, -0x0a, 0x25, 0x6b, 0x4c, 0xff, 0xf1, 0x0f, 0xa8, 0x61, 0x4c, 0x46, 0xbd, 0x12, 0xe8, 0xba, 0x3d, -0x9a, 0x4f, 0x61, 0x3b, 0xbb, 0xe7, 0x93, 0xbb, 0x03, 0x42, 0xef, 0x22, 0x9f, 0xed, 0xe4, 0x7e, -0x01, 0x68, 0x21, 0x26, 0x3c, 0x41, 0xdf, 0x5e, 0xd2, 0xef, 0x85, 0x61, 0xeb, 0xc9, 0x8d, 0x5a, -0xc3, 0xfe, 0x0a, 0x2d, 0xa1, 0x90, 0xcb, 0x19, 0x9d, 0x49, 0x61, 0x0f, 0x93, 0xab, 0x98, 0xd2, -0x05, 0xe8, 0x7b, 0x2f, 0xc4, 0xfb, 0x3c, 0x85, 0x79, 0xc8, 0xdd, 0x07, 0xee, 0x02, 0xd9, 0x4f, -0xdf, 0x7a, 0xf3, 0x80, 0xaa, 0x03, 0xcc, 0xd1, 0xc3, 0xd8, 0x66, 0x6a, 0x5b, 0x3c, 0xfa, 0x20, -0xc5, 0xb6, 0x76, 0x97, 0x53, 0x9c, 0x13, 0xa4, 0x09, 0x6c, 0x80, 0xf6, 0xa5, 0x30, 0xfc, 0x4f, -0xe0, 0x0e, 0xa0, 0x9b, 0x5d, 0xa1, 0xf0, 0xc7, 0xc0, 0xfd, 0x85, 0x7d, 0x03, 0x40, 0x25, 0x9d, -0x83, 0xda, 0xbc, 0x43, 0x71, 0x7e, 0x45, 0xf9, 0xa2, 0xd5, 0xe5, 0x63, 0x3d, 0x56, 0x8a, 0xb5, -0x9f, 0x7c, 0xde, 0x85, 0x58, 0xaf, 0x41, 0x2c, 0xb2, 0x36, 0x75, 0xee, 0x3d, 0xf2, 0x43, 0x9d, -0x61, 0x3b, 0xc9, 0x7d, 0x99, 0xdc, 0x1f, 0x43, 0x9c, 0x2d, 0x10, 0x67, 0x1b, 0xa5, 0xfb, 0x21, -0xfa, 0xe9, 0xb3, 0xd0, 0x02, 0x6d, 0xcf, 0x02, 0x1a, 0x17, 0x1b, 0xc5, 0xba, 0x1e, 0x8a, 0xf4, -0x58, 0x28, 0x86, 0x89, 0xdc, 0x97, 0x83, 0xcb, 0x65, 0x99, 0xc2, 0xf3, 0x29, 0x05, 0x0b, 0xf1, -0xd6, 0x4f, 0x90, 0x4b, 0x17, 0x5c, 0x20, 0xf3, 0xd6, 0x53, 0x99, 0xfa, 0x69, 0xa1, 0x72, 0x35, -0xf5, 0x2f, 0xc9, 0x6d, 0x08, 0xce, 0x92, 0x6d, 0xe4, 0xfe, 0x1d, 0xb9, 0x4d, 0x21, 0xaa, 0xf5, -0x3b, 0x2e, 0x74, 0x19, 0x75, 0x21, 0x03, 0xb9, 0xee, 0xa1, 0xb3, 0x1d, 0x5f, 0xbb, 0xf9, 0x89, -0x30, 0x3c, 0x19, 0xe4, 0xf9, 0x2e, 0xdd, 0xb8, 0x9a, 0xcb, 0x9e, 0xe7, 0x92, 0xc3, 0x82, 0x83, -0xaa, 0xb4, 0x36, 0x28, 0x72, 0xe9, 0xa4, 0x68, 0xab, 0xaa, 0xfa, 0x2d, 0x9b, 0x6d, 0x33, 0x1a, -0x05, 0x9c, 0xa3, 0xf0, 0x6d, 0xb3, 0x61, 0xc8, 0x1d, 0x7b, 0x87, 0x7b, 0x3d, 0x55, 0x97, 0x01, -0xaf, 0x5b, 0x58, 0x53, 0xb0, 0x02, 0xe8, 0xd5, 0x46, 0xa4, 0x53, 0xe1, 0x3d, 0x8d, 0xe9, 0x82, -0x4e, 0x78, 0x0b, 0x2c, 0x2b, 0x28, 0x9a, 0x9d, 0xca, 0xeb, 0x4c, 0x1f, 0xcc, 0x0f, 0x33, 0xf8, -0xba, 0xc4, 0xb2, 0x83, 0xb9, 0x28, 0xe7, 0xa6, 0x13, 0x55, 0x31, 0xcd, 0x82, 0x89, 0x46, 0x1b, -0xdd, 0x8f, 0xf6, 0xd1, 0x2b, 0x21, 0xcc, 0x0d, 0x34, 0x52, 0x8d, 0x5d, 0x62, 0x8d, 0xb4, 0xaf, -0x08, 0xdc, 0x37, 0xa4, 0x11, 0xed, 0x6e, 0x58, 0x4b, 0x67, 0x3b, 0xa6, 0x1b, 0xb3, 0xb0, 0x1e, -0x68, 0x09, 0x1b, 0xb9, 0xa6, 0xc2, 0xe9, 0x67, 0x77, 0x19, 0x99, 0xcb, 0xb8, 0xae, 0xf4, 0xcc, -0x48, 0xed, 0xb8, 0x62, 0x5d, 0x7c, 0x89, 0xb9, 0x16, 0xd1, 0x9e, 0x3f, 0x8c, 0xc9, 0x79, 0xb1, -0x0e, 0x6a, 0x5a, 0xda, 0xa2, 0x3b, 0xf1, 0x23, 0x8b, 0xe5, 0xeb, 0x6c, 0x16, 0xcb, 0xb3, 0x7a, -0x37, 0x94, 0x55, 0x7f, 0xff, 0xdf, 0x83, 0x1e, 0x5b, 0x1d, 0xb8, 0xef, 0x69, 0x11, 0xf2, 0x5c, -0x40, 0x5b, 0x71, 0xbf, 0x12, 0xe0, 0x45, 0xf0, 0x4c, 0x8b, 0x7a, 0x9a, 0x7f, 0xef, 0xab, 0xac, -0xb1, 0x57, 0x0f, 0xb3, 0xb2, 0x51, 0x12, 0x24, 0xfc, 0x8f, 0x1c, 0xc2, 0x3e, 0xf5, 0xe6, 0x1c, -0x8c, 0x39, 0xac, 0x7a, 0xd5, 0xc1, 0x55, 0x62, 0x9d, 0xb9, 0x94, 0xd5, 0xb6, 0x08, 0xc1, 0x70, -0x62, 0x5f, 0x5b, 0x0f, 0xd8, 0x2e, 0xdc, 0x62, 0x4c, 0x39, 0x23, 0xa7, 0x07, 0xaa, 0xa3, 0xc1, -0x56, 0xe7, 0xfd, 0x5a, 0x0b, 0xdf, 0xbd, 0x2a, 0xe0, 0xb7, 0x4e, 0x28, 0x6e, 0x8e, 0x58, 0x07, -0xb1, 0xf3, 0x21, 0xb6, 0xc4, 0xdc, 0xfc, 0x0e, 0xb6, 0x4a, 0xed, 0xba, 0x60, 0x95, 0xd6, 0xa3, -0x8d, 0x6b, 0xbc, 0x8f, 0x27, 0xe3, 0x2a, 0xdb, 0x14, 0x34, 0xd9, 0xea, 0xcc, 0xf7, 0xb0, 0xe6, -0x16, 0x21, 0x94, 0x73, 0x76, 0x40, 0xcc, 0x5e, 0x16, 0xdb, 0xf3, 0x2a, 0x73, 0xb5, 0x33, 0x25, -0x5f, 0xd3, 0x7a, 0x83, 0x34, 0x1c, 0xf4, 0xa6, 0x13, 0x7b, 0xb3, 0xb0, 0x57, 0x30, 0x3a, 0x7b, -0x05, 0x73, 0xa1, 0x24, 0x58, 0x1c, 0x92, 0x60, 0xc5, 0x9b, 0x7c, 0xfd, 0xc5, 0xe7, 0x46, 0x16, -0x8e, 0xc7, 0x37, 0x97, 0x18, 0x1e, 0xfa, 0x46, 0xed, 0xf8, 0xf5, 0x0b, 0xc8, 0xab, 0xb3, 0x9f, -0x4b, 0x06, 0xc4, 0x8a, 0xef, 0xd4, 0x4b, 0x66, 0xa0, 0x45, 0xb7, 0xaa, 0xe5, 0xe3, 0xad, 0x02, -0x58, 0x26, 0xfe, 0x7b, 0xcc, 0x55, 0xbd, 0x67, 0x43, 0x97, 0xce, 0xe5, 0x3e, 0x88, 0x58, 0x3a, -0x57, 0x95, 0xc9, 0xe5, 0x48, 0xd9, 0xd2, 0x34, 0x6a, 0x8d, 0xe5, 0xd4, 0x53, 0x46, 0x09, 0xfc, -0xee, 0x09, 0x99, 0xce, 0x3e, 0xb5, 0xfd, 0xa9, 0xc0, 0x90, 0xbc, 0x8b, 0xdf, 0x72, 0xa4, 0xfa, -0x9c, 0xa1, 0xfa, 0x88, 0x58, 0x9f, 0x12, 0x49, 0xc8, 0x87, 0xba, 0x14, 0x40, 0x5d, 0x44, 0xac, -0x4b, 0xed, 0x25, 0x76, 0xcf, 0xe2, 0xf1, 0xb8, 0xbe, 0xfe, 0x22, 0xcb, 0x76, 0xdd, 0x4e, 0x37, -0x2e, 0x8c, 0x0b, 0xc7, 0xaf, 0x37, 0x2e, 0x42, 0x3d, 0xc8, 0xbc, 0x5e, 0x26, 0xaa, 0x57, 0x83, -0x24, 0x09, 0x76, 0xfc, 0xd1, 0xfe, 0x1c, 0xd6, 0x6d, 0x1d, 0x95, 0x78, 0x5f, 0xc8, 0x96, 0xd2, -0xeb, 0x06, 0xbc, 0xb9, 0x13, 0x1e, 0x1f, 0x7d, 0x55, 0xc8, 0x17, 0x17, 0x8a, 0x74, 0x8e, 0xd0, -0xb6, 0x58, 0xd6, 0xd9, 0x1a, 0x20, 0xae, 0x00, 0x71, 0x6b, 0x2c, 0x77, 0xe0, 0x8a, 0xd6, 0x34, -0xfc, 0xda, 0x70, 0x97, 0x4e, 0xac, 0xa6, 0x35, 0x47, 0xbd, 0x1d, 0x09, 0x54, 0x6d, 0x36, 0xde, -0x71, 0x03, 0x6a, 0xb1, 0x92, 0x5b, 0xe9, 0x03, 0x28, 0x74, 0x9d, 0x1a, 0x86, 0x94, 0x3a, 0x48, -0x69, 0x3e, 0x3b, 0xbc, 0x7d, 0x18, 0xda, 0xc5, 0x94, 0x55, 0x29, 0x2d, 0x3b, 0x4f, 0x9c, 0xc6, -0x39, 0xe2, 0x67, 0xb8, 0x55, 0x3f, 0x3b, 0xda, 0x7b, 0xa7, 0x1a, 0x2f, 0x01, 0x8e, 0xd2, 0xcc, -0xb9, 0xca, 0xeb, 0x76, 0xb5, 0xce, 0xcb, 0x3d, 0x5b, 0x70, 0x35, 0x36, 0x32, 0x66, 0x08, 0xea, -0x23, 0x3a, 0xfb, 0x00, 0x7c, 0x19, 0xe1, 0xcb, 0xb8, 0x61, 0x4b, 0xcd, 0xe8, 0x2a, 0x03, 0x5b, -0xa5, 0x63, 0x4c, 0x07, 0x7e, 0xd9, 0x21, 0xf8, 0x36, 0xf2, 0x6f, 0x86, 0xdf, 0x22, 0x7c, 0xd7, -0x8c, 0x06, 0xe1, 0x0b, 0xa8, 0x37, 0xb4, 0xb2, 0x94, 0x75, 0x99, 0xb4, 0x0c, 0x3e, 0xc7, 0xd2, -0x64, 0xcf, 0xdd, 0xca, 0x19, 0xce, 0x67, 0x5c, 0x7b, 0x1f, 0x7b, 0xdb, 0xd9, 0xab, 0xf7, 0xba, -0x24, 0x7d, 0xa3, 0x47, 0x62, 0x65, 0x51, 0x56, 0x72, 0x3b, 0xde, 0x64, 0xd1, 0xd5, 0x40, 0x9f, -0x97, 0x11, 0xe5, 0xf8, 0x06, 0xce, 0x12, 0x4b, 0x8e, 0xe3, 0x76, 0xdc, 0x0b, 0xcd, 0xaa, 0x01, -0x3e, 0x18, 0x75, 0x52, 0x4d, 0xa3, 0xda, 0x07, 0xd4, 0x3d, 0x6e, 0xda, 0x21, 0x9a, 0x68, 0xe3, -0xf5, 0x0f, 0xe6, 0xf8, 0x06, 0x13, 0xd4, 0x3c, 0x13, 0xce, 0xce, 0xeb, 0x67, 0xd9, 0x78, 0xf6, -0x88, 0xeb, 0xa0, 0x13, 0xd8, 0x0a, 0x58, 0x33, 0x7c, 0x83, 0x80, 0x0d, 0xdf, 0x09, 0x67, 0xef, -0x79, 0x12, 0xde, 0xa7, 0x11, 0x7e, 0x74, 0xf5, 0x50, 0xf3, 0x65, 0x78, 0x77, 0xae, 0x90, 0x91, -0xf6, 0xdd, 0xe7, 0xf0, 0xe6, 0xa8, 0x93, 0x7f, 0x6f, 0x4b, 0xd5, 0x83, 0x95, 0x7b, 0x36, 0xb1, -0x9b, 0xd5, 0x2f, 0x65, 0x17, 0xd2, 0x49, 0x61, 0x3c, 0x0f, 0x2d, 0xe9, 0xf1, 0xf6, 0x1a, 0xde, -0x20, 0x40, 0xbd, 0xf0, 0x78, 0xaf, 0x85, 0x4e, 0x26, 0x5b, 0x64, 0x19, 0x7a, 0x8d, 0xd6, 0xfd, -0x77, 0x1e, 0x94, 0xcd, 0xd0, 0x57, 0xfa, 0x90, 0x85, 0x5c, 0xcb, 0x35, 0x3d, 0x57, 0x72, 0x23, -0x96, 0xab, 0x96, 0xe5, 0xbc, 0x49, 0x59, 0x16, 0xa2, 0x62, 0x50, 0x0f, 0xd6, 0xe4, 0x12, 0xcc, -0x3e, 0x89, 0xdd, 0x1b, 0xca, 0xa1, 0x3c, 0x97, 0x4a, 0x26, 0xd4, 0x3a, 0x07, 0xb4, 0x12, 0xf4, -0x66, 0xc8, 0xc5, 0xdb, 0x5d, 0x75, 0x49, 0x5f, 0x73, 0x62, 0xd4, 0xe2, 0xbc, 0xf6, 0x11, 0xde, -0x63, 0x0f, 0xd1, 0x0d, 0x76, 0xb5, 0x0e, 0x4b, 0x93, 0xba, 0xb6, 0x28, 0xd6, 0x8f, 0x81, 0xff, -0xce, 0x8e, 0x33, 0x35, 0xf4, 0xe1, 0x64, 0x28, 0xe6, 0x54, 0xc8, 0x38, 0x3e, 0xa8, 0xbe, 0xa4, -0xaf, 0xaf, 0xfa, 0xdd, 0x7e, 0x86, 0xfc, 0x7d, 0x9c, 0xe1, 0x9d, 0xb4, 0x16, 0xe6, 0xed, 0x5b, -0x87, 0xfa, 0xf0, 0xc7, 0xbe, 0x64, 0x05, 0xd8, 0x5c, 0x80, 0x75, 0x00, 0xc8, 0x5c, 0x80, 0x98, -0x39, 0xce, 0x20, 0xe7, 0xe6, 0x13, 0x3f, 0x3a, 0xf1, 0x03, 0x8f, 0xf3, 0xda, 0xc7, 0x0b, 0x7f, -0x9f, 0xaf, 0xa3, 0xfe, 0x5e, 0x46, 0x74, 0xfd, 0x93, 0x3d, 0x2c, 0xde, 0x86, 0x73, 0x44, 0xe7, -0x45, 0x49, 0x9f, 0xcc, 0xe2, 0xea, 0xf9, 0x38, 0xc0, 0x36, 0xc0, 0xbf, 0x4b, 0x92, 0xbe, 0x99, -0xb7, 0x48, 0xec, 0xd5, 0x2f, 0xf7, 0x94, 0x76, 0x28, 0xc9, 0x1b, 0xc1, 0x1c, 0xba, 0xf5, 0xf9, -0xa8, 0x2b, 0x9e, 0x38, 0x7b, 0xd4, 0xa5, 0xa0, 0xfe, 0x80, 0xef, 0x5c, 0xc6, 0xf5, 0x55, 0xa3, -0x3c, 0x8b, 0x60, 0x1e, 0xa5, 0x40, 0x57, 0xa9, 0x55, 0x6d, 0x49, 0x98, 0x1f, 0x2f, 0x55, 0x61, -0xde, 0x80, 0x56, 0xd0, 0x21, 0x57, 0x45, 0x93, 0x81, 0x4d, 0x4a, 0x13, 0x4a, 0xa6, 0xf9, 0xd3, -0xc4, 0x94, 0x69, 0xbe, 0x06, 0x9c, 0x3c, 0xee, 0x19, 0x17, 0xa0, 0x66, 0x8c, 0xf2, 0x7e, 0x76, -0x87, 0x7a, 0xa6, 0x93, 0x4e, 0x42, 0xa9, 0xb7, 0xf6, 0xf8, 0xf9, 0xb7, 0x65, 0xc0, 0x75, 0xe9, -0xb5, 0x13, 0x51, 0xef, 0xac, 0xf2, 0xae, 0x66, 0x82, 0xa6, 0xf9, 0x26, 0x38, 0xdf, 0x72, 0x27, -0x9d, 0xcc, 0x2a, 0xa3, 0x3b, 0x8e, 0x4e, 0xf3, 0xea, 0x39, 0x12, 0x6b, 0x09, 0x8a, 0x96, 0x22, -0xf6, 0x10, 0xf8, 0xb8, 0x43, 0x66, 0xc4, 0xe6, 0x74, 0x5a, 0xbe, 0x36, 0x88, 0x27, 0x14, 0xed, -0xe2, 0x13, 0xd0, 0x1b, 0x86, 0xc0, 0x13, 0xf2, 0xb3, 0xd4, 0x23, 0x5c, 0x72, 0xcb, 0x70, 0x47, -0xc7, 0x01, 0xfd, 0x00, 0xbc, 0x9e, 0xc4, 0xbe, 0x40, 0xe7, 0x50, 0x74, 0xa4, 0x21, 0x04, 0xb5, -0x72, 0xcd, 0xc4, 0x3e, 0x24, 0x2e, 0xc6, 0x66, 0xab, 0x16, 0x3d, 0x68, 0x6d, 0xd1, 0x67, 0x09, -0x1a, 0x60, 0x0d, 0x45, 0x0b, 0xd3, 0x5f, 0xcd, 0x05, 0x3e, 0xa5, 0x79, 0x18, 0x35, 0x1f, 0xef, -0x1f, 0xe8, 0x19, 0xe3, 0xd6, 0x74, 0x51, 0xbe, 0xb9, 0xf5, 0xad, 0x84, 0xd4, 0xf1, 0x2c, 0xb4, -0x6f, 0xf9, 0xcf, 0x46, 0x93, 0xfa, 0xc2, 0xe3, 0xb1, 0x94, 0xef, 0x4d, 0x36, 0xb7, 0xbd, 0x93, -0x99, 0x92, 0x1a, 0x74, 0x91, 0xe7, 0xae, 0x3a, 0x87, 0xa7, 0xa8, 0x90, 0x36, 0x2d, 0x4d, 0x4a, -0xf9, 0x0f, 0xb5, 0x8c, 0xc0, 0x7c, 0x30, 0x87, 0x2e, 0xa4, 0xd8, 0x1e, 0x58, 0xa5, 0x33, 0x54, -0x5f, 0xd4, 0x99, 0x26, 0x6b, 0xdc, 0xd7, 0x76, 0x93, 0x90, 0x07, 0x3a, 0xbd, 0x87, 0x53, 0xcb, -0xf1, 0x9c, 0x39, 0x6e, 0x21, 0x1e, 0x9a, 0x3f, 0x07, 0xd2, 0xe8, 0xf2, 0xe7, 0xf8, 0x74, 0x56, -0xd2, 0x50, 0x36, 0x9a, 0x9e, 0x1e, 0x73, 0x4c, 0xa9, 0x67, 0xaa, 0x6b, 0x13, 0xdf, 0xa9, 0x49, -0xe4, 0xbd, 0x4a, 0x88, 0xd3, 0x29, 0xfd, 0x79, 0x58, 0x4f, 0x4b, 0xb2, 0x9e, 0x07, 0x3f, 0x2b, -0x8f, 0x48, 0x9b, 0xa6, 0x39, 0x39, 0x3d, 0x37, 0xd2, 0x6f, 0x58, 0x88, 0x1a, 0x25, 0xde, 0x79, -0x2c, 0x9c, 0xc8, 0x8b, 0x34, 0xae, 0x15, 0x84, 0x48, 0x2b, 0xf7, 0x3b, 0xdb, 0xa1, 0x4f, 0xdd, -0x90, 0xf2, 0xdb, 0x73, 0xdc, 0x3a, 0x9d, 0xa6, 0x45, 0x99, 0xee, 0x67, 0xa2, 0xd4, 0xbf, 0x32, -0x57, 0x62, 0x8b, 0xc2, 0x8a, 0x84, 0x3a, 0xbe, 0x0a, 0x75, 0xba, 0x50, 0x8f, 0xd4, 0x1f, 0x7f, -0x4b, 0xb8, 0x06, 0x70, 0x88, 0x7a, 0xcc, 0xf1, 0xfb, 0x13, 0x66, 0x95, 0x80, 0x0a, 0x81, 0x41, -0x46, 0xd7, 0x1f, 0x58, 0x01, 0xcc, 0x2c, 0xbc, 0x63, 0x25, 0x92, 0x7b, 0x9c, 0xd9, 0xc3, 0xe5, -0xc7, 0x47, 0x24, 0xdc, 0x85, 0x80, 0xd5, 0xb7, 0x0a, 0x20, 0x0c, 0x6a, 0x5a, 0x80, 0xf7, 0xec, -0xec, 0x2c, 0x24, 0x8a, 0x6e, 0xa0, 0xb5, 0x6a, 0x80, 0xd6, 0x2a, 0x4f, 0x91, 0xa3, 0x7a, 0xa0, -0x46, 0x3c, 0xce, 0x8b, 0x18, 0x82, 0x7b, 0x01, 0x00, 0x2d, 0x2e, 0xd5, 0xa6, 0x2a, 0xb5, 0x8b, -0x5a, 0xf4, 0xff, 0x86, 0xe7, 0xa4, 0xb5, 0xc8, 0x42, 0xbe, 0xaf, 0x4e, 0xf2, 0xcd, 0x27, 0xdf, -0x1f, 0x4c, 0xf2, 0xb5, 0x86, 0x2c, 0xd4, 0xfa, 0x63, 0xd4, 0xf6, 0xbd, 0x30, 0x86, 0xfd, 0x50, -0xa6, 0x95, 0x56, 0x6d, 0xb3, 0xb8, 0x4a, 0xe8, 0x27, 0xad, 0x39, 0x40, 0xcb, 0x4f, 0x96, 0x06, -0x78, 0x56, 0x09, 0x43, 0xf0, 0xdb, 0x78, 0x5f, 0x3f, 0x93, 0x84, 0x61, 0xf8, 0x6f, 0x17, 0x9e, -0x40, 0x5b, 0xb8, 0xc2, 0x26, 0x3a, 0x73, 0x79, 0x41, 0x78, 0xaa, 0xf1, 0xa2, 0xb0, 0xc5, 0x53, -0x28, 0x6c, 0xf5, 0xec, 0x12, 0xb6, 0xdd, 0xd7, 0xff, 0x1b, 0x8b, 0xf0, 0x2c, 0xca, 0x25, 0x84, -0xef, 0x80, 0xfb, 0x39, 0x48, 0xf9, 0x02, 0xfc, 0x5e, 0xa4, 0xd4, 0x3b, 0xe1, 0xff, 0x1c, 0x61, -0x17, 0xfc, 0xd7, 0x0b, 0xbb, 0x29, 0x8f, 0x57, 0x28, 0xe6, 0x9e, 0xaa, 0x8b, 0xc2, 0x10, 0xf0, -0x92, 0x7b, 0x21, 0xc5, 0x6b, 0xf0, 0x3b, 0x00, 0xbf, 0xd7, 0xe1, 0x77, 0x08, 0x52, 0xbe, 0x09, -0xef, 0xc3, 0x90, 0xfb, 0x51, 0x2c, 0xed, 0x9d, 0x9f, 0x0b, 0xc7, 0x20, 0xee, 0x0e, 0x88, 0x7b, -0x52, 0xad, 0xdf, 0x69, 0xf5, 0x7d, 0x16, 0xe2, 0xbd, 0x03, 0xbf, 0x77, 0xe1, 0x37, 0x06, 0x71, -0x9e, 0x85, 0x38, 0xfd, 0x72, 0x9e, 0xd8, 0xc1, 0xe6, 0x51, 0x7f, 0x9c, 0x81, 0x56, 0x3f, 0x87, -0x37, 0x6f, 0x70, 0xb7, 0x0d, 0xe2, 0x74, 0xc1, 0x2f, 0x0a, 0xbf, 0xf0, 0x64, 0x68, 0x64, 0xf9, -0x7b, 0xd3, 0xf6, 0x32, 0xe3, 0x2b, 0xf0, 0x6c, 0xfb, 0x14, 0x7e, 0x96, 0xc9, 0x7e, 0x09, 0x58, -0xfa, 0x10, 0x67, 0x2e, 0xac, 0xa5, 0x28, 0x19, 0xb2, 0x22, 0xbe, 0x39, 0x7d, 0x9c, 0xe3, 0xf4, -0xfb, 0x2e, 0x00, 0xf6, 0x28, 0x75, 0x75, 0xd0, 0x1e, 0xbd, 0xf9, 0x20, 0xd7, 0x55, 0xf8, 0x0a, -0xab, 0x0c, 0x21, 0x44, 0x39, 0x59, 0xfe, 0xd3, 0x87, 0x6d, 0xbe, 0x67, 0x8e, 0xa0, 0xed, 0x09, -0x18, 0xb5, 0x7d, 0x38, 0x07, 0x51, 0x06, 0x9c, 0xd4, 0x77, 0x15, 0x66, 0x11, 0x26, 0x76, 0xb3, -0x0a, 0x5b, 0xb7, 0xd0, 0x05, 0xf1, 0xba, 0x85, 0xfe, 0x7f, 0x38, 0xea, 0xea, 0x06, 0x8c, 0xfb, -0x8a, 0xf2, 0x46, 0x91, 0x5b, 0x08, 0x73, 0xbd, 0x54, 0x24, 0xb9, 0x56, 0x25, 0xa9, 0x30, 0x1f, -0x50, 0x1b, 0xc1, 0x10, 0xbc, 0xf3, 0x43, 0xfd, 0x3e, 0x68, 0x6f, 0x28, 0x0f, 0xf0, 0x6b, 0x9c, -0xb0, 0xe0, 0x35, 0xda, 0x83, 0x6a, 0x24, 0x2e, 0x57, 0x46, 0x18, 0x98, 0xbd, 0x4a, 0xb8, 0xc8, -0xe6, 0xab, 0x5f, 0x1f, 0x27, 0x6d, 0x9f, 0xe0, 0x5e, 0xa2, 0xd0, 0x15, 0xaa, 0x54, 0xa9, 0xfe, -0xdb, 0xb9, 0xce, 0x3b, 0x21, 0x4a, 0xe9, 0xdb, 0xf0, 0xe6, 0x8b, 0x10, 0x0e, 0xce, 0x4c, 0xd5, -0x8f, 0x7d, 0x1d, 0x65, 0x4c, 0x5d, 0x28, 0xd5, 0x13, 0xd6, 0xd1, 0x09, 0x83, 0x75, 0x40, 0x81, -0x5c, 0x75, 0x75, 0x73, 0x39, 0xb8, 0xd6, 0xdb, 0xe8, 0x4f, 0x35, 0x0c, 0x00, 0x2c, 0xe6, 0x53, -0x7f, 0x78, 0x21, 0x97, 0x30, 0xe7, 0xf8, 0xd1, 0x0e, 0x22, 0xe4, 0xdc, 0x15, 0x34, 0xca, 0x0e, -0x9b, 0x1b, 0x71, 0x5a, 0xba, 0x06, 0x6e, 0xfe, 0x05, 0xf8, 0xfb, 0x5d, 0xf4, 0xd7, 0xca, 0x4c, -0x1f, 0x57, 0xe4, 0x20, 0xfe, 0x4b, 0xf6, 0xae, 0xb9, 0xb1, 0xb2, 0xbe, 0x8e, 0xf6, 0xae, 0x2e, -0xd5, 0x6c, 0x53, 0x5f, 0xc2, 0x92, 0x99, 0x58, 0x7e, 0x4f, 0xc9, 0x3d, 0xe9, 0x66, 0xcb, 0xa6, -0x8e, 0x48, 0xd6, 0xad, 0xc7, 0xea, 0xa2, 0x6c, 0x6c, 0xa8, 0x43, 0x3f, 0xd7, 0xf8, 0x18, 0x7c, -0x2f, 0x87, 0xdf, 0xbd, 0x6c, 0xac, 0x71, 0x48, 0x2d, 0x67, 0xcc, 0xdb, 0xcf, 0xc6, 0x9a, 0x1f, -0xc6, 0xfd, 0x28, 0xf8, 0xfe, 0x47, 0xf8, 0x1d, 0x62, 0x63, 0x4b, 0x8d, 0x64, 0x0f, 0x71, 0xcc, -0x0b, 0x2b, 0x87, 0xf7, 0x0f, 0x6c, 0x6c, 0xd9, 0x79, 0xd5, 0xfd, 0x3b, 0x36, 0x56, 0x3f, 0x97, -0x8d, 0xfd, 0xad, 0x13, 0xdc, 0xd9, 0xf0, 0x6d, 0x80, 0x5f, 0x09, 0x1b, 0xfb, 0xef, 0x7b, 0x79, -0x78, 0xbd, 0x17, 0x7e, 0xcb, 0xd8, 0xd8, 0xf2, 0x1a, 0xd5, 0xbd, 0x14, 0x7e, 0x7f, 0xc7, 0xc6, -0xbe, 0xe2, 0x56, 0xdd, 0xeb, 0xe1, 0xf7, 0x14, 0xb8, 0x27, 0x54, 0xf7, 0x37, 0xe1, 0xf7, 0x02, -0x1b, 0x7b, 0x78, 0xbf, 0xea, 0xfe, 0x9f, 0x6c, 0xcc, 0xf7, 0x00, 0x1b, 0x5b, 0xf9, 0x0e, 0xaf, -0x8f, 0x6f, 0x01, 0xfc, 0xda, 0xd9, 0x58, 0xdb, 0x26, 0x1e, 0xee, 0xfb, 0x29, 0xfc, 0xae, 0xb2, -0xb1, 0x76, 0xd5, 0xbd, 0xe8, 0x21, 0xf8, 0x7d, 0x8d, 0x8d, 0x85, 0x22, 0xe0, 0x36, 0xc1, 0x77, -0x0c, 0x7e, 0x63, 0x6c, 0xac, 0xf3, 0xa8, 0x1a, 0xfe, 0x9f, 0x6c, 0xac, 0x21, 0x17, 0x7e, 0xf7, -0xc1, 0x32, 0x0a, 0x6d, 0x6d, 0x30, 0xb2, 0xb1, 0x55, 0xc3, 0x68, 0x3f, 0x10, 0xc2, 0x3e, 0x01, -0x77, 0x2d, 0x1b, 0xeb, 0xdd, 0x02, 0xee, 0x69, 0xf0, 0xdd, 0x0b, 0xbf, 0xd7, 0xd9, 0x58, 0xb8, -0x81, 0xa7, 0x6d, 0xf8, 0xdf, 0xf0, 0x3b, 0xcd, 0xc6, 0xbe, 0xa6, 0x57, 0xdd, 0x27, 0xd8, 0xd8, -0x62, 0x91, 0x8d, 0x45, 0x1e, 0x56, 0xe3, 0xbf, 0x07, 0xee, 0xef, 0xb2, 0xb1, 0x47, 0xec, 0xbc, -0xae, 0xfe, 0x06, 0xf8, 0x3d, 0xc1, 0xc6, 0xd6, 0xbf, 0xa9, 0xba, 0xa1, 0x5f, 0xfd, 0xaf, 0xb1, -0xb1, 0xfe, 0xa3, 0xbc, 0x3c, 0xff, 0x3f, 0xc1, 0xef, 0x5f, 0xd9, 0xd8, 0xd7, 0x5f, 0x51, 0xc3, -0xcf, 0xc2, 0x6f, 0x9c, 0x8d, 0xfd, 0xbd, 0x5a, 0x9e, 0xff, 0xf7, 0x6c, 0x6c, 0xc9, 0x57, 0xd8, -0xd8, 0x80, 0x81, 0xbb, 0x97, 0xb4, 0xc0, 0x6f, 0x90, 0x8d, 0x0d, 0x5e, 0xe1, 0xf1, 0x97, 0xac, -0x85, 0xdf, 0x0e, 0x36, 0xb6, 0x61, 0x87, 0x1a, 0xfe, 0xad, 0xc9, 0xd6, 0xe4, 0x52, 0x2d, 0xcd, -0xf9, 0xdb, 0x1f, 0x69, 0x42, 0x90, 0xc0, 0x8f, 0xea, 0x86, 0x7a, 0x56, 0xd5, 0xd5, 0xd9, 0xda, -0xc7, 0xe6, 0xf4, 0x99, 0xd8, 0x9c, 0xe2, 0xb2, 0xd2, 0xbe, 0xe9, 0xf4, 0xdf, 0x94, 0x9e, 0xa4, -0x6a, 0x71, 0xad, 0xab, 0xa9, 0x39, 0x50, 0xef, 0x5f, 0x28, 0xd5, 0xa5, 0x85, 0x34, 0x06, 0x96, -0x2c, 0x6e, 0x6c, 0x96, 0xaa, 0x58, 0x55, 0xdf, 0xea, 0x1b, 0x6c, 0xd8, 0xcd, 0xe9, 0x13, 0xd9, -0xa3, 0xac, 0x87, 0xf5, 0xf4, 0xb2, 0x47, 0xdb, 0xfb, 0xd2, 0xd2, 0xa1, 0x89, 0xae, 0xea, 0x1a, -0x96, 0x5e, 0x8c, 0xb4, 0xd8, 0xe5, 0x5f, 0xd2, 0x50, 0xef, 0x47, 0xdb, 0x6c, 0xdc, 0xb0, 0x1a, -0x5a, 0x3c, 0x6b, 0xa8, 0xf5, 0xd3, 0xbb, 0x79, 0x89, 0xb4, 0x88, 0xd5, 0xae, 0xec, 0xe8, 0x65, -0xb5, 0x5d, 0x7d, 0xed, 0xac, 0xbe, 0xce, 0x55, 0xeb, 0xaf, 0xa9, 0x4f, 0xaf, 0x4e, 0xba, 0xa3, -0xb6, 0xa7, 0x0d, 0x1b, 0xd8, 0xdc, 0xda, 0xb7, 0x1a, 0xad, 0x9d, 0x89, 0xed, 0x3d, 0x6d, 0x9d, -0x3d, 0x21, 0xd3, 0x0d, 0x91, 0xea, 0x83, 0x37, 0x78, 0xf1, 0x1e, 0xba, 0xc1, 0x77, 0x75, 0x67, -0x18, 0x3e, 0x5a, 0x6a, 0xab, 0x97, 0x36, 0xd7, 0x92, 0x29, 0xbd, 0xbb, 0x55, 0x53, 0x76, 0xd8, -0x7d, 0xcd, 0xf3, 0xd9, 0xfc, 0x66, 0x09, 0x5a, 0xdd, 0xdc, 0x1d, 0x9e, 0xd3, 0xb5, 0x26, 0xf9, -0xd7, 0x96, 0x4c, 0xd2, 0x9e, 0x62, 0x50, 0x6d, 0x65, 0xa4, 0xbd, 0x35, 0x8a, 0x16, 0xd5, 0xa2, -0xed, 0xdd, 0xe1, 0x5e, 0x32, 0x4e, 0x8f, 0x16, 0xda, 0x4c, 0xc9, 0xd8, 0xd5, 0x54, 0x40, 0x67, -0xcf, 0xaa, 0xf6, 0x95, 0xd1, 0x84, 0x89, 0xb6, 0xae, 0xce, 0x9e, 0xf6, 0x1b, 0x87, 0x47, 0xaa, -0x72, 0x55, 0x05, 0x16, 0x2e, 0x45, 0x7b, 0x66, 0x4d, 0x30, 0x46, 0xb5, 0xeb, 0xda, 0x57, 0xae, -0x89, 0xb6, 0xa7, 0x45, 0xab, 0x6b, 0xed, 0xec, 0xaa, 0x8a, 0xaa, 0xaf, 0xf9, 0x62, 0x53, 0x7b, -0x94, 0x0c, 0xf5, 0x45, 0xda, 0xa3, 0x6b, 0x22, 0x3d, 0x22, 0x5a, 0xff, 0x12, 0x83, 0x10, 0xb6, -0x26, 0xd2, 0x0e, 0x65, 0x74, 0x77, 0x92, 0x11, 0x37, 0x8c, 0xb0, 0x72, 0x4d, 0x24, 0xd2, 0xde, -0x13, 0x15, 0xfb, 0x56, 0x46, 0x3a, 0xc3, 0x51, 0x53, 0x00, 0xfa, 0x74, 0xb1, 0xe4, 0x9f, 0xde, -0x0c, 0x41, 0x3d, 0xed, 0x8f, 0xa4, 0xa5, 0xa7, 0x74, 0x26, 0xa6, 0x46, 0xa1, 0xa2, 0xb8, 0x1f, -0x99, 0x9b, 0x33, 0x4d, 0xaa, 0xce, 0x9a, 0xae, 0x28, 0xff, 0x3f, 0x5f, 0xac, 0xe9, 0xec, 0x23, -0xa3, 0x89, 0xdc, 0xae, 0x60, 0x6b, 0x0f, 0x76, 0x0b, 0x14, 0xdf, 0x2a, 0xd6, 0x2c, 0x69, 0x52, -0x3b, 0x0d, 0x0b, 0x30, 0xf9, 0x97, 0x2e, 0xf6, 0xa0, 0x81, 0x3d, 0xbf, 0xb4, 0x98, 0x2a, 0xc0, -0x83, 0xb8, 0x89, 0xbb, 0x3e, 0xf1, 0xd1, 0xde, 0x35, 0xe2, 0x23, 0x9d, 0x7d, 0x1d, 0x62, 0xb4, -0x57, 0xfc, 0xda, 0x9a, 0xf6, 0xc8, 0xa3, 0x26, 0x96, 0x92, 0x80, 0x97, 0x45, 0x76, 0xef, 0xd8, -0xa4, 0x21, 0xf7, 0x2f, 0x41, 0x23, 0x7e, 0x0f, 0x56, 0x05, 0xd0, 0xb2, 0x5f, 0x6d, 0x20, 0xb0, -0x24, 0x80, 0x20, 0x58, 0x55, 0xdf, 0x00, 0x2f, 0x57, 0xed, 0x03, 0xd2, 0x22, 0xd7, 0x42, 0x34, -0xda, 0xb7, 0xb0, 0x16, 0xfe, 0xa1, 0xb5, 0x3e, 0x88, 0xd4, 0x52, 0xdf, 0x04, 0x3d, 0xbd, 0xe8, -0x06, 0xa0, 0x47, 0xb8, 0x6c, 0x68, 0xaa, 0x9d, 0x0a, 0x38, 0x1b, 0x5a, 0x57, 0xa4, 0x79, 0x3c, -0x58, 0xef, 0xaf, 0x59, 0xf2, 0xa0, 0x0b, 0xad, 0xbf, 0xc1, 0xec, 0xaa, 0xaa, 0x5e, 0x94, 0x9c, -0x9b, 0xac, 0x7a, 0x89, 0x7f, 0xfe, 0x3d, 0xa5, 0xd2, 0x7d, 0xa5, 0xd2, 0xbc, 0xf2, 0x52, 0xa9, -0xbc, 0xa2, 0x54, 0xaa, 0x0a, 0x2c, 0x69, 0x2a, 0xa6, 0x50, 0x49, 0x35, 0x95, 0x37, 0x9f, 0x5c, -0xc5, 0x4d, 0xd1, 0xd6, 0x48, 0x14, 0x96, 0x93, 0xc6, 0xd6, 0x68, 0x07, 0xab, 0x56, 0x07, 0xab, -0xa6, 0x33, 0x02, 0x40, 0xd3, 0x8b, 0x5d, 0x60, 0x62, 0xd5, 0xf3, 0xd3, 0xbb, 0xbe, 0xb1, 0xaa, -0xd9, 0x0b, 0x93, 0xad, 0xaa, 0xa6, 0x06, 0x2d, 0x1b, 0x7a, 0x97, 0x3c, 0x88, 0xa6, 0x11, 0x6b, -0x9b, 0xc8, 0x12, 0x62, 0xa0, 0x76, 0xf1, 0x92, 0x65, 0x38, 0x03, 0x1f, 0x58, 0xca, 0x4d, 0x23, -0x7a, 0x6b, 0xab, 0x20, 0x1a, 0x9b, 0xe3, 0x2f, 0x99, 0xd3, 0xb4, 0x40, 0x9c, 0x62, 0xf6, 0xb3, -0xc6, 0x48, 0x6f, 0x77, 0x38, 0x9a, 0x16, 0x12, 0xa8, 0x86, 0xe1, 0x7f, 0x60, 0x4d, 0x67, 0xf4, -0x46, 0x3c, 0x82, 0x56, 0xf2, 0x92, 0xa5, 0xf0, 0x3a, 0x04, 0x6a, 0x1b, 0x1b, 0xaa, 0xaa, 0xd1, -0xdd, 0xb8, 0x34, 0x50, 0xfb, 0x37, 0x75, 0x4b, 0x02, 0xe4, 0xe0, 0xc6, 0xf4, 0xa0, 0xf0, 0x40, -0x7b, 0x5f, 0x67, 0x1b, 0x34, 0x8b, 0x45, 0xb4, 0x8f, 0x95, 0x5d, 0x9d, 0x94, 0x9d, 0x78, 0xf3, -0x67, 0x69, 0x53, 0x6d, 0xf5, 0x92, 0xa5, 0xfe, 0x66, 0x13, 0x62, 0xb6, 0x7b, 0x4b, 0xfb, 0x44, -0x9e, 0x9d, 0xe6, 0x22, 0xd3, 0x8b, 0xfe, 0xaa, 0x06, 0xcd, 0x5d, 0x53, 0xdf, 0x54, 0xe5, 0x69, -0xa8, 0xad, 0xd1, 0xdc, 0x73, 0x8a, 0x11, 0x62, 0xd3, 0x5b, 0xb5, 0xa6, 0x07, 0x7f, 0x30, 0x77, -0xb0, 0xcb, 0x01, 0x3a, 0xc3, 0x91, 0xde, 0x50, 0xa4, 0xb5, 0x5b, 0x6c, 0xed, 0x03, 0xc7, 0x8a, -0xd6, 0x95, 0xab, 0x43, 0x91, 0xde, 0x35, 0x30, 0x47, 0xc1, 0x1f, 0xad, 0x58, 0x9a, 0x4c, 0x6a, -0x27, 0x4e, 0x9f, 0x5e, 0xd3, 0x8b, 0x53, 0x39, 0x1c, 0xe9, 0xec, 0xe1, 0xb3, 0x2e, 0x25, 0x32, -0x4c, 0x96, 0xbb, 0xfb, 0x54, 0x18, 0x36, 0xa1, 0x4d, 0xc2, 0x2a, 0x7f, 0x8d, 0x54, 0x47, 0xe0, -0xad, 0xe5, 0xef, 0x84, 0x76, 0x87, 0x4b, 0xd4, 0x19, 0x38, 0x17, 0xc1, 0x3b, 0xb2, 0xa6, 0x47, -0x74, 0xb6, 0x46, 0x42, 0x6b, 0xba, 0xa1, 0x37, 0xfa, 0xc8, 0x9c, 0xe7, 0x23, 0xed, 0x6d, 0x73, -0xa1, 0xad, 0xda, 0xb8, 0x25, 0x72, 0xe2, 0x26, 0x4a, 0x6f, 0x11, 0xb9, 0x03, 0x56, 0x60, 0xb5, -0xfe, 0x65, 0xf3, 0xd9, 0x54, 0x91, 0xaa, 0x68, 0xc8, 0x52, 0xe3, 0xb6, 0xf7, 0xac, 0x65, 0x84, -0x15, 0x1b, 0xaa, 0x3c, 0x08, 0xf2, 0x4d, 0x8b, 0xea, 0x1b, 0xd3, 0x12, 0x82, 0x7f, 0x6d, 0x83, -0xcb, 0x03, 0xc0, 0x0d, 0xc3, 0x98, 0x1a, 0xd0, 0x54, 0xff, 0x50, 0x2d, 0xc0, 0x08, 0xf4, 0xe4, -0xca, 0xd5, 0x09, 0xa8, 0xed, 0x43, 0x97, 0x88, 0x16, 0x3e, 0xc5, 0xce, 0x3e, 0xc2, 0xd9, 0x2b, -0x1e, 0x8d, 0xb6, 0x43, 0x85, 0x03, 0xdc, 0x92, 0x68, 0x7b, 0x5b, 0x22, 0x10, 0x8d, 0x54, 0xf6, -0x75, 0x43, 0xbb, 0x4b, 0xfe, 0xcc, 0xc2, 0xc5, 0x96, 0xf6, 0xf4, 0xfd, 0xd9, 0x46, 0x41, 0x24, -0x68, 0x4d, 0x2d, 0xb4, 0x26, 0x6d, 0xc6, 0x3e, 0xd8, 0xf1, 0x28, 0xc3, 0x71, 0xe8, 0x6a, 0xed, -0x4b, 0x22, 0xe0, 0xb6, 0xce, 0x36, 0x11, 0x2d, 0x95, 0x42, 0xae, 0x30, 0xea, 0x1c, 0xfd, 0x15, -0xaf, 0x6d, 0xed, 0x5a, 0x03, 0x68, 0xf9, 0x86, 0xc8, 0x88, 0x51, 0xdb, 0xdb, 0x5c, 0x10, 0xad, -0xb5, 0xaf, 0xb7, 0x67, 0x0a, 0x6a, 0x0e, 0xd6, 0xeb, 0x07, 0x76, 0xa8, 0xdf, 0x9f, 0x07, 0x0a, -0x6c, 0x1b, 0xfc, 0x80, 0xee, 0xa9, 0xdb, 0x07, 0xbf, 0x37, 0xe0, 0x77, 0x0a, 0x7e, 0x17, 0xe0, -0x07, 0xb4, 0xcd, 0x42, 0x3d, 0xfc, 0xac, 0xf0, 0xb3, 0xc3, 0xaf, 0x1c, 0x7e, 0x35, 0xf0, 0x6b, -0x86, 0x5f, 0x1b, 0xfc, 0x80, 0xbe, 0x59, 0xb8, 0x19, 0x7e, 0xcf, 0xc1, 0x6f, 0x0f, 0xfc, 0x46, -0xe1, 0x77, 0x1c, 0x7e, 0xe7, 0xe1, 0x77, 0x19, 0xe8, 0x33, 0xa4, 0xe7, 0x2c, 0xf0, 0x03, 0x3a, -0xc5, 0x5b, 0x0a, 0x3f, 0xb7, 0x5a, 0xa6, 0x66, 0x4f, 0x91, 0x21, 0x67, 0x10, 0x2e, 0x9b, 0x7c, -0xcb, 0x8a, 0xef, 0x44, 0xb2, 0x8f, 0xff, 0xaa, 0x9f, 0x19, 0x99, 0xf1, 0xaf, 0xfa, 0x95, 0xc7, -0xd8, 0xf4, 0xbb, 0xfb, 0x89, 0x5a, 0x34, 0x89, 0x6e, 0xe0, 0x5f, 0xc6, 0x6a, 0x3f, 0x7d, 0xe6, -0x48, 0x22, 0xfe, 0x8b, 0x37, 0x58, 0xfd, 0x93, 0x53, 0xac, 0xfe, 0x8d, 0xd5, 0xd9, 0x27, 0x59, -0xfd, 0xf3, 0x24, 0x6c, 0xf8, 0x8d, 0xd5, 0x59, 0xfd, 0x5b, 0xa4, 0x19, 0xa9, 0xb1, 0x97, 0x7c, -0x8a, 0xb1, 0x2b, 0x97, 0x73, 0xd9, 0x33, 0x50, 0xd3, 0xcb, 0xa4, 0x19, 0xc9, 0xf8, 0xb5, 0x13, -0x5c, 0x8a, 0x9b, 0xb0, 0x0c, 0x38, 0x56, 0x67, 0xbe, 0xc1, 0x32, 0xe0, 0x58, 0x5d, 0x41, 0xba, -0x65, 0x40, 0xdb, 0xa2, 0x70, 0x59, 0x9a, 0x5e, 0xe7, 0x02, 0xd9, 0x62, 0x5b, 0x94, 0xa0, 0xdc, -0x67, 0x8a, 0x33, 0xb8, 0x2c, 0x89, 0x4e, 0x4b, 0x7d, 0xcd, 0xfb, 0xde, 0x02, 0xbc, 0x51, 0xec, -0x72, 0x55, 0x02, 0x5d, 0x6c, 0x14, 0xeb, 0xd6, 0x09, 0xb2, 0x2e, 0x30, 0xe4, 0xdb, 0x11, 0x1c, -0x6f, 0x1a, 0x0a, 0x31, 0x41, 0x8f, 0xed, 0xf7, 0x36, 0xa6, 0x72, 0xf3, 0x85, 0x68, 0xb3, 0xed, -0x43, 0xf2, 0x97, 0x27, 0x71, 0xf9, 0x25, 0xdc, 0x15, 0xd4, 0xdb, 0x6a, 0xe5, 0xf2, 0x39, 0x35, -0xcc, 0x26, 0xea, 0x8f, 0x0f, 0x1d, 0x8f, 0xd1, 0x2f, 0x16, 0x61, 0xea, 0x8d, 0x40, 0x07, 0x5a, -0x20, 0x02, 0x1e, 0xae, 0x24, 0x85, 0xa3, 0xab, 0x4d, 0x7e, 0xcb, 0x10, 0x5a, 0xb8, 0x8a, 0x39, -0x7e, 0x79, 0xd4, 0xf3, 0x8c, 0xe7, 0x65, 0xa6, 0x2f, 0x6a, 0x62, 0x96, 0x2f, 0xf7, 0xfb, 0xff, -0xc4, 0x8c, 0x45, 0xab, 0x99, 0x9e, 0x99, 0xaa, 0x3e, 0x62, 0xc6, 0xb0, 0xc1, 0x86, 0x67, 0x42, -0x93, 0x16, 0xbe, 0xbe, 0xee, 0xbc, 0xad, 0x65, 0xe8, 0xc2, 0x26, 0xdb, 0x9d, 0x76, 0xfd, 0xda, -0x38, 0xf0, 0x33, 0x25, 0xfe, 0x57, 0x26, 0xc6, 0xc5, 0x26, 0xaa, 0x65, 0x17, 0xed, 0x54, 0xa2, -0xae, 0x1e, 0x0b, 0xa4, 0x1a, 0xf3, 0xae, 0x21, 0xdb, 0x45, 0x14, 0xa3, 0xfe, 0x43, 0x66, 0xa5, -0x5b, 0x42, 0x75, 0x2d, 0x1b, 0x1d, 0x2d, 0xa4, 0x55, 0x75, 0x28, 0xb5, 0x2e, 0x09, 0xb9, 0x5b, -0x3f, 0x97, 0x07, 0xa4, 0xdb, 0x5a, 0xa4, 0x9d, 0x41, 0x33, 0xde, 0x30, 0xf0, 0xf6, 0xf3, 0x9b, -0xfe, 0x71, 0x87, 0xfd, 0x0b, 0x2e, 0x4d, 0xc3, 0xa6, 0x85, 0xf4, 0xe1, 0x41, 0x8a, 0x30, 0x93, -0x67, 0xe6, 0x7e, 0x2e, 0x10, 0x33, 0x0b, 0xac, 0x10, 0x75, 0x62, 0xb2, 0xcf, 0x93, 0x36, 0xcd, -0x42, 0x59, 0x67, 0x41, 0x1d, 0x9a, 0xb1, 0x9e, 0x77, 0xf9, 0x69, 0xee, 0xb8, 0x15, 0xb5, 0x22, -0x89, 0xbd, 0xba, 0xfc, 0x42, 0x49, 0x27, 0xda, 0x2c, 0x41, 0x13, 0x59, 0x83, 0x59, 0x8e, 0xfa, -0xd8, 0xe9, 0x2b, 0xd0, 0xef, 0x3c, 0x37, 0x62, 0x37, 0xac, 0xfd, 0x6a, 0x5d, 0x96, 0x13, 0xb5, -0x9b, 0x0a, 0xd8, 0xb2, 0x89, 0xb5, 0x3e, 0x77, 0x30, 0x5f, 0xca, 0x06, 0x6e, 0x50, 0xc6, 0xdb, -0x32, 0xf0, 0xa6, 0xbd, 0xd3, 0x70, 0x36, 0xee, 0xa2, 0x49, 0x75, 0x3a, 0xa3, 0xe7, 0x55, 0x9d, -0x99, 0x5a, 0x3e, 0x68, 0xbf, 0x1d, 0xcf, 0xad, 0xea, 0x68, 0xef, 0x76, 0xa2, 0x0e, 0xc2, 0x0f, -0xe2, 0x9d, 0xa6, 0xb5, 0x4a, 0x4a, 0x6e, 0xfd, 0x90, 0x1b, 0x63, 0x2f, 0x50, 0x7e, 0x16, 0x35, -0x3f, 0xd2, 0x12, 0x1d, 0x36, 0xe1, 0xc8, 0x6c, 0x7d, 0xcb, 0xd5, 0xab, 0x2b, 0x40, 0x89, 0x98, -0xe8, 0xb6, 0x77, 0xb0, 0xe3, 0x7c, 0x77, 0x80, 0x1d, 0xe6, 0x52, 0x6c, 0xa1, 0x63, 0xe1, 0xb8, -0xa2, 0x97, 0x65, 0x73, 0x21, 0xcc, 0x31, 0x63, 0x70, 0x99, 0xad, 0x90, 0x99, 0x6e, 0xac, 0xaf, -0xd3, 0x4d, 0x27, 0x34, 0x2a, 0x24, 0xb3, 0x34, 0x4d, 0x32, 0xf8, 0xb7, 0x56, 0x5d, 0xd2, 0x89, -0xbf, 0x38, 0xec, 0x71, 0x29, 0xcd, 0xd2, 0x2a, 0x66, 0xd2, 0x59, 0xa5, 0x85, 0xba, 0x7c, 0xa8, -0x73, 0x01, 0xd5, 0x79, 0xa3, 0x5a, 0x67, 0x2b, 0xaf, 0x33, 0xd6, 0xc4, 0x1e, 0xf0, 0x6d, 0x09, -0x92, 0xf4, 0x6f, 0xf9, 0xc4, 0x92, 0x4b, 0xc2, 0x87, 0xfc, 0xd4, 0x9f, 0xf7, 0xbd, 0x0a, 0x5d, -0x8a, 0x1d, 0xd3, 0x31, 0xef, 0xd6, 0x54, 0xe8, 0x74, 0xb2, 0x60, 0x5e, 0xaa, 0x3c, 0x2f, 0xb2, -0x5e, 0x74, 0xcf, 0xae, 0x62, 0xdb, 0xe4, 0x87, 0xa9, 0x94, 0x7f, 0xb4, 0xdf, 0xf6, 0xc0, 0xe0, -0x5a, 0x86, 0xf2, 0x99, 0x89, 0x77, 0x1d, 0x0c, 0xfa, 0x53, 0xef, 0x3f, 0x10, 0xb7, 0x48, 0xfc, -0xbc, 0x33, 0xb5, 0xdf, 0x37, 0x14, 0xb4, 0xc9, 0xa5, 0x92, 0xa6, 0xc7, 0x0e, 0xb9, 0xe9, 0x03, -0xf1, 0x06, 0x3b, 0xb3, 0x65, 0xb9, 0x6a, 0x70, 0x57, 0x9c, 0x38, 0x79, 0x5d, 0xd4, 0x6a, 0xab, -0x49, 0x81, 0x65, 0x70, 0xe3, 0xb9, 0x36, 0x77, 0x81, 0xf2, 0x3e, 0x97, 0x99, 0x2e, 0xb9, 0xa4, -0xec, 0xc0, 0x3d, 0x00, 0xcf, 0xab, 0x6c, 0x33, 0xd5, 0xf2, 0xe5, 0x49, 0xb5, 0xcc, 0x9f, 0xb2, -0x96, 0x4c, 0x68, 0xa3, 0x7a, 0xfe, 0x1f, 0xde, 0x1b, 0x6c, 0xb3, 0x56, 0xd7, 0x12, 0x16, 0x9c, -0x85, 0xe5, 0xab, 0x3b, 0xf1, 0xc0, 0xc1, 0xa2, 0x2b, 0xee, 0xc0, 0x5b, 0xe9, 0xc2, 0x2c, 0x48, -0xe7, 0x72, 0x51, 0x7d, 0xa9, 0xac, 0x37, 0xc3, 0x73, 0x5c, 0x75, 0x89, 0x39, 0x7c, 0xa5, 0x96, -0xef, 0xc8, 0x29, 0x5f, 0x7a, 0x83, 0xf2, 0x3e, 0xad, 0xe5, 0x4d, 0xed, 0xa9, 0xa3, 0x5c, 0xdf, -0xb0, 0x31, 0xca, 0x6f, 0x07, 0xb9, 0x8e, 0x38, 0x7d, 0x50, 0x8a, 0x69, 0x6d, 0x1b, 0xf9, 0xed, -0xd9, 0xf3, 0x04, 0x40, 0xca, 0x73, 0x8e, 0x06, 0x8b, 0x35, 0xb0, 0x89, 0xce, 0x9b, 0x5c, 0x85, -0xff, 0xd3, 0x43, 0x1f, 0x4b, 0x33, 0x50, 0x5b, 0x71, 0xd5, 0xef, 0x8d, 0x4c, 0xd6, 0xe1, 0x9d, -0xf4, 0xd0, 0xfa, 0x5c, 0x91, 0xce, 0x98, 0x5c, 0x81, 0xff, 0xd3, 0x43, 0x1f, 0xc2, 0x7f, 0x53, -0x68, 0x0c, 0xa0, 0xe9, 0x39, 0x71, 0x11, 0xd5, 0xeb, 0x6c, 0x98, 0x20, 0x03, 0xef, 0x62, 0x86, -0xbc, 0xaa, 0xdf, 0x39, 0x98, 0x7b, 0x16, 0xd2, 0x3a, 0x95, 0xaf, 0xfa, 0xbc, 0x13, 0xd6, 0x25, -0x62, 0x39, 0x65, 0xa6, 0x34, 0xe0, 0x9d, 0xdc, 0x20, 0x53, 0x6a, 0xd4, 0xf0, 0x5f, 0x87, 0xb3, -0xb4, 0x70, 0xf0, 0x2d, 0x29, 0xef, 0x67, 0xd9, 0x78, 0xbf, 0x0a, 0xe6, 0x73, 0x1d, 0x8d, 0x85, -0x1e, 0x7c, 0xac, 0xb6, 0x69, 0x7c, 0xb4, 0x54, 0x57, 0xea, 0x58, 0x91, 0x0f, 0xdd, 0xc6, 0x42, -0x79, 0x77, 0x87, 0x7f, 0x0d, 0x59, 0x56, 0x63, 0x0a, 0xea, 0x3d, 0x6a, 0xb9, 0xc1, 0xce, 0xaa, -0x94, 0xb0, 0xb3, 0x4a, 0xf6, 0x4b, 0x1f, 0x18, 0x51, 0x47, 0xb5, 0x94, 0xea, 0xf2, 0x9f, 0xb7, -0x36, 0xaa, 0x3a, 0x03, 0xf5, 0xfc, 0xef, 0xa2, 0xa5, 0xa7, 0x46, 0xb4, 0x11, 0xc5, 0x5d, 0xd5, -0xa0, 0x88, 0xf0, 0xa7, 0x6c, 0x52, 0xc7, 0xf4, 0x0f, 0x7c, 0x4c, 0x61, 0xb5, 0xc1, 0x51, 0x3d, -0x04, 0xa3, 0x7a, 0xac, 0x90, 0x46, 0x15, 0x6a, 0x51, 0xea, 0xc3, 0x1d, 0xf4, 0xf3, 0xd1, 0x38, -0x8d, 0xd0, 0xee, 0x12, 0x86, 0xbb, 0x34, 0x11, 0x5d, 0x94, 0xc6, 0x4d, 0x29, 0x50, 0xad, 0xf2, -0xbe, 0x68, 0x9b, 0x66, 0xe7, 0x3e, 0xdf, 0x26, 0x37, 0xca, 0xa4, 0xf4, 0xbd, 0x61, 0xde, 0x1b, -0xca, 0xa0, 0xd3, 0x3d, 0xaf, 0x5f, 0x60, 0x8b, 0xc6, 0x15, 0x58, 0x1d, 0x22, 0x0c, 0x7b, 0xf1, -0x7a, 0xb3, 0x8b, 0x05, 0x73, 0x69, 0xaf, 0x2f, 0x84, 0x98, 0xa0, 0x71, 0xa4, 0xa0, 0x92, 0x99, -0x64, 0x3f, 0xe6, 0xe3, 0x98, 0x41, 0xf5, 0xe9, 0xf1, 0xb9, 0x43, 0x56, 0x9b, 0x01, 0xbf, 0xaf, -0x9f, 0xb4, 0xd5, 0x51, 0x2a, 0x60, 0xfc, 0xe5, 0x42, 0xed, 0x5b, 0x22, 0xad, 0xd5, 0x91, 0x75, -0xd0, 0x8b, 0xd6, 0x85, 0x1f, 0x08, 0x4c, 0x7e, 0x9e, 0xf2, 0x3b, 0x05, 0xf3, 0x66, 0xb4, 0x71, -0xc4, 0xb9, 0xb0, 0xdf, 0x14, 0xd1, 0xd9, 0x4d, 0x54, 0x83, 0xbc, 0x12, 0x33, 0x9d, 0x45, 0xa1, -0xd2, 0xe2, 0xcf, 0x37, 0x8e, 0xf4, 0x9b, 0xd4, 0xba, 0xbd, 0x88, 0xb7, 0x78, 0x22, 0xbc, 0xee, -0x83, 0x76, 0xb7, 0x0b, 0x75, 0x46, 0xb1, 0x85, 0xe3, 0xf1, 0xb0, 0x68, 0xd0, 0x6a, 0x0a, 0x73, -0x20, 0x99, 0x36, 0xd8, 0x38, 0x22, 0xaf, 0xb2, 0x99, 0xa0, 0x96, 0x86, 0x44, 0x2d, 0x2b, 0x35, -0x58, 0xb6, 0x53, 0x9e, 0xf1, 0x5d, 0xbe, 0x58, 0x77, 0x41, 0xc2, 0x0f, 0x7b, 0xf8, 0xd3, 0x84, -0xbf, 0x1e, 0x5a, 0xa0, 0x83, 0xd2, 0x17, 0xf2, 0x36, 0xc8, 0xa2, 0xf6, 0x85, 0x56, 0xf2, 0xd4, -0xd6, 0x70, 0x1d, 0x74, 0x0c, 0xe0, 0xa2, 0x1f, 0x62, 0xf2, 0x16, 0x0c, 0xfa, 0x36, 0x86, 0x66, -0x62, 0x4a, 0x1c, 0x39, 0xe8, 0x8f, 0x49, 0x23, 0x67, 0xc3, 0x7b, 0xbb, 0x1c, 0xf2, 0x74, 0xfd, -0x93, 0x70, 0x44, 0xbf, 0x55, 0x34, 0x20, 0xd4, 0xf1, 0xf3, 0x6d, 0x28, 0xc1, 0xbc, 0x1f, 0xed, -0x3a, 0x5b, 0xe9, 0x5c, 0xdb, 0x87, 0xfc, 0x5c, 0x1b, 0x41, 0xd5, 0x78, 0x3a, 0x54, 0x91, 0x05, -0x85, 0x9b, 0xe1, 0x0b, 0x3f, 0x42, 0x56, 0xbd, 0x21, 0xfa, 0xe1, 0xa9, 0x6f, 0x26, 0x71, 0x85, -0x0b, 0x6f, 0x19, 0x14, 0x24, 0xb1, 0x45, 0xfd, 0xdc, 0x14, 0x6c, 0x81, 0x16, 0x75, 0x48, 0x9a, -0xe9, 0x60, 0xc9, 0x93, 0x3f, 0x85, 0x16, 0x59, 0xb7, 0x5e, 0xb1, 0x15, 0x2b, 0x13, 0xa1, 0x5c, -0xb2, 0x03, 0xf8, 0x31, 0xb5, 0x16, 0x70, 0x24, 0x40, 0xd1, 0x0b, 0xf5, 0x1f, 0x29, 0x1f, 0xda, -0x9b, 0x49, 0xc7, 0xfa, 0x2a, 0x39, 0xea, 0xcb, 0x0f, 0x4e, 0x3c, 0xfd, 0x63, 0xd1, 0xd8, 0x14, -0x13, 0xbb, 0x54, 0x9d, 0xf5, 0x56, 0x9b, 0x25, 0x64, 0x69, 0x1a, 0xd8, 0x33, 0xb0, 0x52, 0xff, -0xf3, 0x1f, 0xc8, 0x8e, 0x85, 0xbf, 0x37, 0x2a, 0xb2, 0x78, 0x20, 0xd6, 0x56, 0xb0, 0xf9, 0xb1, -0x9f, 0x8f, 0xca, 0x79, 0xb6, 0x2c, 0xbc, 0x11, 0xcd, 0x14, 0xaa, 0xc5, 0xe1, 0xc0, 0x46, 0x5f, -0xac, 0x4b, 0x2f, 0x37, 0xf4, 0xb3, 0x03, 0x1b, 0x43, 0x7a, 0xeb, 0xe7, 0x83, 0xe7, 0x49, 0xab, -0x4f, 0x8e, 0x2d, 0x2b, 0x2a, 0xf2, 0x18, 0x30, 0x3e, 0x25, 0x2d, 0x4f, 0x38, 0x02, 0xaf, 0x71, -0xbb, 0x41, 0x8b, 0xe4, 0x4d, 0xbe, 0x6e, 0xe5, 0x72, 0x10, 0x63, 0x98, 0x12, 0x31, 0xcc, 0x1c, -0x23, 0xc7, 0x77, 0xa0, 0x86, 0xb2, 0x54, 0xdc, 0xa8, 0xb5, 0x76, 0xbd, 0x09, 0xda, 0xc4, 0x7c, -0xb0, 0x4e, 0x84, 0xcc, 0xbe, 0x0d, 0x21, 0x23, 0x8f, 0xaf, 0x9c, 0x4b, 0xe0, 0x06, 0xdd, 0xfa, -0x49, 0x23, 0xb4, 0xde, 0x2a, 0x66, 0x93, 0x86, 0xbc, 0x37, 0x54, 0x09, 0x6a, 0x62, 0xe5, 0xaf, -0x2f, 0x49, 0x5f, 0xf9, 0xf9, 0x5d, 0xf6, 0x05, 0x3a, 0xa7, 0x24, 0x10, 0x84, 0xc5, 0xf9, 0x29, -0xe2, 0x67, 0x45, 0xb7, 0xcd, 0xc9, 0xc4, 0xbd, 0x3b, 0x59, 0x01, 0xb8, 0x9e, 0xa2, 0x90, 0xb3, -0xeb, 0x85, 0x7e, 0x16, 0xc9, 0x3f, 0x39, 0x62, 0x27, 0x98, 0x5e, 0x4b, 0x30, 0x3e, 0x71, 0x9a, -0x74, 0x0d, 0x3f, 0x84, 0xa7, 0xdc, 0xf7, 0x6e, 0x0c, 0xba, 0xe4, 0x46, 0x1a, 0xc7, 0x7b, 0xa3, -0xf9, 0xa7, 0x46, 0x28, 0xfc, 0x1c, 0x9e, 0xeb, 0x27, 0xcc, 0x64, 0x91, 0xf5, 0x81, 0xc7, 0x64, -0x53, 0xd3, 0x63, 0x0f, 0x1e, 0xf2, 0x0e, 0xd6, 0x78, 0x64, 0x9d, 0xc7, 0xc3, 0xb1, 0xb4, 0x8a, -0xb3, 0x8f, 0xb9, 0x58, 0xd8, 0xb4, 0x67, 0x63, 0xc8, 0x00, 0x39, 0x6e, 0x0c, 0x5e, 0xf0, 0x79, -0x42, 0x5b, 0x80, 0x12, 0x99, 0x85, 0x33, 0xe5, 0x6e, 0xd4, 0x30, 0x34, 0xbf, 0x71, 0x24, 0x6c, -0xe5, 0xb3, 0xee, 0xee, 0x3b, 0xc0, 0x5d, 0x08, 0x6e, 0xc0, 0x7e, 0xee, 0x7e, 0x7e, 0xeb, 0xfd, -0x6f, 0x47, 0x68, 0x45, 0x7d, 0x95, 0x76, 0x3a, 0xc6, 0xea, 0x2b, 0x6f, 0x69, 0x35, 0xe5, 0xb5, -0xf5, 0x46, 0x2d, 0x49, 0x7c, 0x06, 0xab, 0x69, 0x1e, 0x1f, 0x05, 0x75, 0x35, 0x45, 0xfd, 0xa1, -0x43, 0xc1, 0x3c, 0xd9, 0x4e, 0x6b, 0xec, 0xf1, 0xe4, 0x0a, 0x8a, 0xa7, 0xbc, 0xa6, 0x5c, 0x3f, -0x7f, 0xe5, 0x2e, 0x40, 0xed, 0x20, 0x88, 0x63, 0x2b, 0x1d, 0x50, 0x23, 0x9a, 0x0d, 0xf5, 0xf5, -0xb7, 0x86, 0x63, 0xd9, 0x2b, 0x54, 0xa7, 0xa5, 0xd1, 0x82, 0x64, 0x9d, 0x0a, 0x59, 0x70, 0x66, -0x1a, 0x64, 0x2c, 0x4b, 0xcc, 0x83, 0x1e, 0xb9, 0xdf, 0x4e, 0xb8, 0x95, 0x8f, 0x5e, 0x21, 0xe2, -0xcf, 0xb5, 0x62, 0x31, 0x03, 0x4c, 0xfa, 0xb3, 0xd1, 0x9f, 0x1d, 0xb1, 0x15, 0xc3, 0x3a, 0x66, -0xd9, 0x33, 0x10, 0x32, 0x73, 0x98, 0x29, 0xea, 0x66, 0x05, 0x4c, 0x0c, 0x2b, 0x45, 0x80, 0xb5, -0xf1, 0x8e, 0x2f, 0xd9, 0x46, 0xaa, 0xd3, 0xec, 0x11, 0x2d, 0xba, 0xc4, 0xec, 0xa2, 0xbb, 0xc8, -0xc9, 0x36, 0xa5, 0x62, 0x9b, 0xfa, 0xaf, 0x38, 0x6e, 0xa3, 0xdc, 0xbf, 0x23, 0x17, 0x4c, 0x09, -0x69, 0xbf, 0x6a, 0xab, 0x44, 0x5c, 0x60, 0xcb, 0xe6, 0xfd, 0xb2, 0x9e, 0xc9, 0x67, 0x27, 0x8d, -0x46, 0xcf, 0x2d, 0x8d, 0xc6, 0x3a, 0x6a, 0xf9, 0xfa, 0x49, 0xa3, 0x91, 0xde, 0xf2, 0xbf, 0x4b, -0xb4, 0x7c, 0xbe, 0xec, 0x4d, 0x40, 0xac, 0x39, 0x09, 0xaf, 0xc1, 0x3c, 0xa4, 0xb5, 0xef, 0xbe, -0x23, 0x35, 0x76, 0xd4, 0x84, 0xfa, 0x6e, 0xb4, 0x71, 0xfb, 0xec, 0x51, 0xf3, 0x7f, 0x8d, 0xea, -0x6e, 0x83, 0xba, 0x5b, 0xa9, 0xee, 0x03, 0xb7, 0x54, 0xf7, 0x1e, 0xaa, 0xfb, 0x37, 0xa3, 0xd6, -0x64, 0xdd, 0xed, 0x93, 0xeb, 0xfe, 0x54, 0xa2, 0xee, 0xa5, 0xf2, 0x02, 0x5e, 0x77, 0x1b, 0x59, -0xe4, 0x10, 0x3b, 0x99, 0x78, 0xe2, 0xb0, 0xbd, 0x93, 0x55, 0xfc, 0xec, 0x08, 0x59, 0x1e, 0x77, -0xd9, 0x4a, 0x87, 0xad, 0x81, 0x81, 0xd9, 0x03, 0xc3, 0x16, 0xcf, 0xde, 0x9d, 0x16, 0xb9, 0x60, -0xea, 0x1a, 0xd7, 0x50, 0x8d, 0x6d, 0x3a, 0xde, 0xae, 0xe8, 0x8d, 0xfd, 0xfe, 0xad, 0xbf, 0xa0, -0xdf, 0xff, 0xe7, 0x67, 0xf6, 0xfb, 0x0b, 0x7f, 0x51, 0xbf, 0xbf, 0xf0, 0x5f, 0xe9, 0xf7, 0x54, -0x2a, 0x45, 0x39, 0xc7, 0xe9, 0x96, 0x29, 0x39, 0x98, 0xc4, 0xe9, 0x33, 0x0d, 0x8b, 0xf9, 0x97, -0xc6, 0x2f, 0x90, 0x86, 0xd6, 0x62, 0x48, 0x5f, 0xcc, 0xcc, 0x85, 0xc5, 0x10, 0x03, 0x4f, 0x75, -0x5a, 0xed, 0x6e, 0xb1, 0xa6, 0x04, 0x78, 0x06, 0x68, 0x37, 0x52, 0x55, 0x67, 0x8b, 0xdc, 0xf1, -0xf7, 0xb9, 0xa5, 0xc1, 0xac, 0x3d, 0xbe, 0x6f, 0x04, 0x0d, 0x25, 0x58, 0xdb, 0xdd, 0x44, 0x87, -0x1d, 0xe1, 0x77, 0xec, 0xf9, 0x37, 0x72, 0x80, 0x10, 0xf7, 0x43, 0x87, 0x5b, 0x2c, 0x62, 0x96, -0xde, 0x1e, 0x47, 0x11, 0xb3, 0xf6, 0x76, 0x6c, 0x8f, 0xf9, 0x36, 0xf4, 0xae, 0x90, 0xa6, 0x69, -0xa7, 0x55, 0x1d, 0xee, 0xaa, 0x0f, 0x98, 0x50, 0xe4, 0x8d, 0x5f, 0xb0, 0x1b, 0x4f, 0x6d, 0x10, -0x75, 0x01, 0xe0, 0x1a, 0x89, 0x62, 0x6d, 0x46, 0xad, 0x90, 0xa1, 0xf9, 0xe2, 0x42, 0x9b, 0x5b, -0x9c, 0x41, 0x3e, 0x9b, 0x3f, 0x77, 0x90, 0x99, 0xf6, 0x33, 0x47, 0x77, 0xfc, 0x43, 0x71, 0x35, -0x33, 0xe3, 0x39, 0xe9, 0x13, 0x1f, 0xe0, 0x1d, 0x84, 0xf8, 0x85, 0xb7, 0x8f, 0x8a, 0x59, 0x3c, -0x0e, 0xda, 0x58, 0x07, 0xca, 0x02, 0x39, 0xbc, 0x1a, 0x9b, 0x45, 0xb5, 0x63, 0x5b, 0xcb, 0xd7, -0xaf, 0x60, 0xb9, 0x6d, 0xb1, 0xa3, 0xe6, 0x8b, 0x77, 0x42, 0x0e, 0xef, 0xdb, 0x8a, 0xd8, 0x79, -0xea, 0xe7, 0x97, 0x1d, 0xd3, 0xa9, 0x9d, 0xdf, 0x41, 0xfe, 0x27, 0x7e, 0x52, 0xca, 0xf6, 0x7c, -0x97, 0x70, 0xd6, 0x69, 0x6e, 0x15, 0x32, 0x2b, 0x07, 0x35, 0xab, 0xee, 0x41, 0x0b, 0x7e, 0xc6, -0x39, 0xd5, 0x4c, 0x04, 0x0a, 0x2e, 0x5f, 0xeb, 0x09, 0x87, 0x3b, 0x72, 0xf9, 0xe4, 0x37, 0x29, -0x77, 0x37, 0x70, 0xaa, 0xfb, 0xe3, 0x17, 0xc8, 0xae, 0xd7, 0x7e, 0x82, 0x85, 0x1f, 0x01, 0x7d, -0x86, 0x21, 0xbb, 0xed, 0xec, 0x6e, 0xa8, 0x21, 0xdb, 0x2f, 0xde, 0xf6, 0xb7, 0x31, 0xdf, 0x60, -0x28, 0x1f, 0x39, 0xf8, 0xfa, 0x1f, 0x69, 0x9a, 0x5a, 0x6d, 0x9c, 0xc2, 0x7d, 0x51, 0xce, 0x21, -0xff, 0xc3, 0x9a, 0x7f, 0xe3, 0x88, 0xe7, 0xe5, 0xf8, 0x85, 0x00, 0xfc, 0xf0, 0x36, 0x8b, 0xa3, -0x5b, 0xb9, 0x5a, 0x04, 0xeb, 0x5e, 0xfc, 0x43, 0xad, 0x6c, 0xa9, 0x38, 0x7e, 0x41, 0xd2, 0x49, -0x33, 0xe0, 0xfd, 0xa1, 0xe8, 0x96, 0x00, 0xdf, 0xa8, 0xe7, 0x69, 0xc7, 0xea, 0x8f, 0x7a, 0xbb, -0xe3, 0x97, 0x31, 0x17, 0x5d, 0xcc, 0x76, 0x9b, 0x61, 0x40, 0x51, 0xe2, 0x97, 0xd5, 0x75, 0x9c, -0xfa, 0x41, 0xd5, 0x42, 0x6c, 0xc5, 0xf6, 0x5e, 0x7f, 0x57, 0xb5, 0x5a, 0x79, 0x24, 0x84, 0x14, -0xc4, 0x65, 0x87, 0xdb, 0x46, 0x14, 0x75, 0xfc, 0x18, 0xad, 0x49, 0x16, 0xdb, 0x0c, 0x3b, 0x51, -0x5c, 0xf1, 0xc3, 0x74, 0x96, 0xe2, 0x5d, 0x4a, 0xf3, 0x0a, 0x8c, 0xea, 0x05, 0xe0, 0x13, 0xb3, -0xe0, 0x9b, 0x9f, 0xcd, 0x81, 0x5a, 0x86, 0x66, 0x89, 0xd8, 0xab, 0x4e, 0xb5, 0x57, 0xcf, 0x53, -0xaa, 0x5d, 0xd4, 0x9b, 0x50, 0x53, 0x58, 0x25, 0x66, 0xc0, 0x7a, 0x4d, 0x39, 0x01, 0x87, 0x28, -0x7e, 0x46, 0x19, 0xe7, 0xa9, 0x0c, 0x9f, 0x03, 0x4f, 0x0a, 0x55, 0xde, 0x34, 0x4f, 0x2c, 0xbb, -0x9c, 0x74, 0x9c, 0x1c, 0xb8, 0x6e, 0xd6, 0x5a, 0x49, 0xed, 0xdb, 0x8f, 0x7b, 0xb8, 0xd0, 0x96, -0x65, 0x10, 0x0a, 0x25, 0xf9, 0x0f, 0x4c, 0x7c, 0x28, 0xae, 0x62, 0x76, 0x84, 0x16, 0x58, 0x85, -0x2c, 0x21, 0x93, 0xcd, 0x18, 0x18, 0xe0, 0x31, 0xb5, 0x7e, 0x22, 0x38, 0x64, 0x36, 0x88, 0xf5, -0xf6, 0x5b, 0x55, 0x1f, 0xc5, 0x2f, 0x57, 0xff, 0x6e, 0x87, 0xc0, 0xa1, 0x49, 0x4b, 0x69, 0xd9, -0xe0, 0x29, 0xad, 0x10, 0xe6, 0x2c, 0x62, 0x22, 0xb4, 0x83, 0xad, 0x55, 0x28, 0xfd, 0xeb, 0xb2, -0xd9, 0xd6, 0x40, 0xf1, 0xfc, 0xb0, 0xe6, 0x3c, 0x6f, 0xab, 0x91, 0xee, 0xe0, 0xb9, 0xe1, 0xcd, -0x18, 0x4c, 0x55, 0xfd, 0x3e, 0x13, 0x2c, 0x31, 0xcf, 0x3d, 0x46, 0xe6, 0xa8, 0x11, 0x9b, 0x78, -0x8e, 0x25, 0xdf, 0x48, 0x42, 0x3e, 0xf4, 0x44, 0x01, 0xb5, 0x69, 0x47, 0x3d, 0xcc, 0x01, 0x74, -0x41, 0xde, 0xcc, 0x69, 0x26, 0xbf, 0x2d, 0x30, 0x46, 0xf3, 0x50, 0x6b, 0x04, 0xe6, 0xe4, 0xd9, -0xc9, 0x2c, 0xb3, 0x1b, 0x98, 0x15, 0xf8, 0x6f, 0x33, 0xda, 0xf4, 0x84, 0x59, 0xe1, 0xd3, 0x66, -0xc5, 0x5d, 0x34, 0x2b, 0x38, 0x65, 0x1c, 0x3f, 0x8b, 0xeb, 0x7d, 0x2a, 0x7c, 0xfb, 0x72, 0xd6, -0xf2, 0x90, 0xef, 0xc8, 0xa8, 0x3b, 0x5d, 0x17, 0xb6, 0x22, 0x55, 0x13, 0x3f, 0x48, 0x54, 0x0d, -0xf4, 0xf4, 0xb5, 0xf3, 0x4e, 0x96, 0x36, 0x1f, 0x52, 0x7b, 0x19, 0x56, 0xeb, 0x6b, 0xc7, 0xf8, -0x48, 0x5f, 0x43, 0x6e, 0x37, 0x7f, 0x3f, 0x9d, 0x5a, 0x50, 0x4c, 0xf2, 0xfe, 0xa9, 0xf8, 0x6f, -0x5f, 0xd9, 0x2d, 0xe1, 0x4a, 0xe2, 0x6b, 0x7d, 0x0b, 0x26, 0xf1, 0xdf, 0xb3, 0xa8, 0xb4, 0x80, -0x84, 0xfa, 0x95, 0xc6, 0x7c, 0x0f, 0x90, 0x5e, 0xb4, 0x00, 0xe9, 0xcf, 0x98, 0x82, 0x0b, 0xbf, -0x16, 0xf8, 0xcb, 0xb8, 0x70, 0xc4, 0xe9, 0x95, 0xb8, 0x1e, 0xe5, 0x53, 0x3d, 0xff, 0xf6, 0x56, -0xe9, 0x08, 0xba, 0xbf, 0xe0, 0xd6, 0xb8, 0xaa, 0x74, 0xda, 0xd2, 0xd7, 0xce, 0x31, 0x34, 0x9e, -0xa3, 0xc6, 0xbb, 0xb7, 0xbe, 0x2e, 0x96, 0x4f, 0x2d, 0xfb, 0x29, 0x52, 0x6e, 0x0e, 0x4e, 0xdb, -0x21, 0xdd, 0x51, 0x30, 0x55, 0x2a, 0xa2, 0xa0, 0x17, 0xc8, 0xbe, 0xc4, 0x3a, 0xe0, 0x10, 0x7b, -0x59, 0x3e, 0x9d, 0x0a, 0xc9, 0xa5, 0x5c, 0x7e, 0x0e, 0xeb, 0x60, 0x8c, 0xf3, 0xe5, 0xb2, 0xc1, -0xe6, 0xfe, 0x62, 0x23, 0xb3, 0xae, 0x05, 0x3e, 0x65, 0xad, 0x55, 0xa3, 0x11, 0xf0, 0x3b, 0x92, -0xad, 0x71, 0x53, 0xe8, 0xf2, 0x0d, 0x85, 0xcc, 0xa9, 0xbd, 0x80, 0xf6, 0x39, 0x6a, 0x2a, 0x35, -0x3a, 0x6a, 0x41, 0x19, 0xb4, 0x5f, 0xa4, 0xf6, 0xbf, 0x7f, 0x8b, 0xed, 0x7f, 0xf3, 0x33, 0xdb, -0x7f, 0x35, 0xd1, 0xfe, 0xef, 0x50, 0xfb, 0xc7, 0x79, 0xfb, 0x17, 0x3d, 0x84, 0x5a, 0x8f, 0xb5, -0xf6, 0xbb, 0x26, 0xb7, 0xff, 0x6a, 0x4a, 0xfb, 0x97, 0xc9, 0x2b, 0x1c, 0xbd, 0x4c, 0x24, 0x29, -0x5c, 0x89, 0x5c, 0x5e, 0x68, 0x91, 0x6a, 0x99, 0x3d, 0x95, 0x6e, 0x5a, 0x14, 0x5c, 0x6b, 0x3f, -0x3d, 0xc2, 0x29, 0x27, 0x5b, 0x36, 0xf9, 0x84, 0x79, 0x7a, 0xf1, 0xbf, 0x53, 0x5f, 0x1d, 0xe5, -0x7c, 0x62, 0xbc, 0x8c, 0x73, 0xa5, 0x44, 0x39, 0x01, 0x45, 0x95, 0xda, 0x2f, 0xeb, 0x6f, 0xec, -0x17, 0xa0, 0xb7, 0x1a, 0xfa, 0x1b, 0x35, 0xfa, 0x12, 0x57, 0x44, 0x4d, 0x83, 0x72, 0x69, 0x9e, -0xc4, 0x8a, 0x88, 0xbf, 0x7e, 0x0a, 0x52, 0x31, 0x36, 0xec, 0x7b, 0x95, 0xb9, 0x42, 0x3e, 0xa4, -0x49, 0x48, 0x1a, 0x75, 0xdc, 0xa6, 0x27, 0xba, 0x9c, 0xbe, 0xcd, 0x59, 0x4c, 0x08, 0xe5, 0xc1, -0x7f, 0x5d, 0xa8, 0xc0, 0x97, 0x15, 0x7c, 0x08, 0x2d, 0x79, 0xed, 0x01, 0x18, 0x7b, 0x70, 0x54, -0x5e, 0xa0, 0x7d, 0x3f, 0x3c, 0x2a, 0x97, 0x69, 0xdf, 0xcb, 0x47, 0x65, 0x87, 0x58, 0x05, 0x35, -0xe9, 0x65, 0xe5, 0x28, 0x9f, 0xa4, 0xf4, 0x16, 0x4a, 0x6f, 0x85, 0xf4, 0x33, 0x51, 0xe3, 0x9a, -0xac, 0xf7, 0xc5, 0x1e, 0xa6, 0x7b, 0x2c, 0xb2, 0xb9, 0x0e, 0x56, 0xd0, 0xa7, 0x63, 0x78, 0xa2, -0xd4, 0xe3, 0x86, 0x35, 0x9e, 0x28, 0xc4, 0x54, 0x4e, 0x64, 0xd1, 0xd7, 0xd2, 0x39, 0x11, 0x58, -0xc3, 0xcf, 0xa8, 0x9c, 0xa4, 0x93, 0x38, 0xc9, 0x33, 0x49, 0x4e, 0x72, 0x51, 0xf4, 0xd6, 0x39, -0x49, 0x9d, 0x9e, 0xc6, 0x31, 0x16, 0x3d, 0x93, 0xe4, 0x24, 0x49, 0x47, 0xf3, 0xcc, 0x54, 0xaa, -0x5e, 0x59, 0xdb, 0xc8, 0xa5, 0x13, 0x6f, 0x02, 0xb6, 0x3d, 0xe9, 0x78, 0x34, 0x49, 0x41, 0xdb, -0x49, 0x86, 0xbe, 0xe8, 0xff, 0x86, 0xef, 0x76, 0x2d, 0xc2, 0xd2, 0x48, 0x42, 0xb1, 0x8d, 0xd3, -0x0c, 0x42, 0x10, 0xf0, 0xac, 0xf8, 0xfd, 0x8b, 0xc8, 0x15, 0x09, 0x0f, 0x55, 0x7d, 0xa4, 0x9c, -0xf1, 0x75, 0x90, 0x1e, 0x57, 0xbd, 0x3c, 0x0b, 0xbe, 0x8c, 0x21, 0x4b, 0x64, 0xfa, 0xde, 0x5d, -0xcc, 0xfc, 0x15, 0xce, 0xe1, 0xa0, 0xdc, 0xa2, 0x03, 0xed, 0x45, 0x86, 0xef, 0xdc, 0x43, 0xbe, -0xf2, 0xfb, 0x68, 0x73, 0x25, 0x94, 0x23, 0x4d, 0x93, 0xf4, 0x65, 0x1d, 0x4c, 0x94, 0xa6, 0x7b, -0xbe, 0x2b, 0x17, 0x82, 0x5f, 0x7e, 0xc8, 0x92, 0xf4, 0x43, 0xe9, 0xb9, 0x6c, 0x05, 0xdf, 0x82, -0x90, 0x98, 0xe6, 0xab, 0x23, 0x1b, 0x26, 0xc0, 0x0b, 0xc5, 0x0d, 0xe5, 0x8c, 0x74, 0xa1, 0xdb, -0x60, 0x7d, 0xb1, 0x87, 0x66, 0x6a, 0xd2, 0x14, 0x5f, 0x6c, 0x19, 0x95, 0xcc, 0x39, 0x2a, 0x58, -0x97, 0x81, 0xc7, 0x02, 0x8e, 0xf3, 0x4c, 0xc8, 0xe8, 0xf3, 0x70, 0xae, 0xcb, 0xe7, 0x09, 0x32, -0x76, 0x80, 0x56, 0xb1, 0x04, 0x4f, 0xa7, 0xae, 0x40, 0x67, 0xa6, 0xe0, 0xeb, 0xba, 0x54, 0xbe, -0x6e, 0x81, 0xbc, 0x82, 0x7a, 0xf5, 0xc7, 0x5c, 0x83, 0x7a, 0xfc, 0x0c, 0xe7, 0xed, 0xd2, 0x6e, -0xdd, 0xa1, 0x7e, 0xb3, 0x3c, 0xe0, 0xf0, 0x72, 0xc3, 0xc2, 0x1e, 0xe0, 0xf1, 0x64, 0xfd, 0x67, -0x71, 0x7a, 0x11, 0x13, 0x5a, 0x8a, 0x0c, 0x2b, 0x7b, 0x38, 0xa7, 0x87, 0x52, 0x2b, 0x1b, 0xe7, -0xf4, 0x64, 0x6b, 0xba, 0x24, 0x4f, 0xe3, 0xf7, 0xae, 0xbf, 0xd1, 0x38, 0x62, 0x5b, 0x88, 0x63, -0x12, 0x5f, 0x01, 0x94, 0x2e, 0xe2, 0x4c, 0xf3, 0x67, 0xd2, 0x95, 0xb8, 0x52, 0xec, 0xd1, 0xf0, -0x67, 0x92, 0x26, 0x5e, 0xf4, 0x8b, 0x5b, 0xa7, 0x89, 0x17, 0xfd, 0xe7, 0x67, 0xd1, 0xc4, 0x8b, -0xc6, 0xfe, 0x12, 0x9a, 0x58, 0x8b, 0xfd, 0x97, 0xd1, 0xc4, 0xb0, 0x52, 0xed, 0x46, 0xfe, 0x9c, -0xce, 0xba, 0xc2, 0xda, 0xb2, 0x30, 0x8a, 0x27, 0x5e, 0xf9, 0xf9, 0x30, 0x6a, 0xcd, 0xc5, 0xbf, -0x40, 0xc6, 0x32, 0x8f, 0xda, 0xf4, 0x49, 0xf4, 0x6a, 0x72, 0x66, 0xb8, 0x18, 0x8c, 0x5a, 0x9a, -0x44, 0xb6, 0xc1, 0x98, 0x94, 0xb1, 0xb0, 0xab, 0xa8, 0x75, 0xda, 0x06, 0x34, 0x9c, 0x4a, 0x8b, -0x92, 0x2c, 0xa5, 0x10, 0x7d, 0xae, 0x6a, 0x72, 0x15, 0x3c, 0x63, 0x8b, 0x54, 0xd8, 0xfd, 0xca, -0x0a, 0xb2, 0xdd, 0xe4, 0x66, 0xbe, 0x0d, 0x68, 0xd3, 0xa6, 0x08, 0xcf, 0xda, 0x7d, 0x51, 0xd9, -0x1d, 0x11, 0x8a, 0xaa, 0x94, 0x3d, 0xe4, 0x72, 0x29, 0xfb, 0x60, 0xb5, 0xdd, 0x4f, 0xdf, 0xb3, -0x95, 0x83, 0x45, 0xd5, 0xca, 0x28, 0x7d, 0xdb, 0x94, 0x37, 0xc0, 0xff, 0x30, 0x7d, 0x3b, 0x94, -0xa3, 0xf0, 0x7d, 0x9c, 0xbe, 0x8b, 0x94, 0x53, 0x45, 0xb5, 0xca, 0x19, 0xfa, 0xb6, 0x03, 0xef, -0x5a, 0xa5, 0x9c, 0xc7, 0xef, 0xac, 0xdf, 0x2b, 0x17, 0x8a, 0xdc, 0xca, 0xfb, 0x10, 0xef, 0x43, -0xf8, 0x5d, 0xc6, 0x56, 0x35, 0xdc, 0x11, 0xdd, 0x7d, 0xea, 0x9b, 0x24, 0xdb, 0x7b, 0xde, 0xce, -0xc8, 0xb2, 0xcb, 0xcc, 0xb5, 0x0c, 0xf0, 0x69, 0xde, 0x54, 0x6d, 0x83, 0x3e, 0xd7, 0x64, 0x28, -0xd9, 0xea, 0xdb, 0xf0, 0xd9, 0xb0, 0xe4, 0xee, 0x57, 0xb6, 0x71, 0x59, 0x4a, 0x0a, 0x8f, 0xf2, -0xe2, 0x67, 0x73, 0x25, 0xa9, 0x71, 0x27, 0x1a, 0xb8, 0xc6, 0x91, 0x4a, 0xd4, 0x42, 0x20, 0x02, -0xae, 0xb6, 0xa3, 0x76, 0x3c, 0x87, 0xc4, 0x5c, 0x84, 0x59, 0x7a, 0xc8, 0xf2, 0x6c, 0x87, 0xef, -0xb1, 0x50, 0x9b, 0x2d, 0x1b, 0x66, 0x73, 0x35, 0xce, 0x66, 0x27, 0x0b, 0x79, 0xd0, 0x9e, 0x21, -0xd2, 0x4c, 0xd0, 0x12, 0x3b, 0xda, 0x02, 0xb5, 0xe9, 0x31, 0x2c, 0xbe, 0x1c, 0x75, 0xce, 0x93, -0x54, 0xc9, 0xea, 0x78, 0x4c, 0xb6, 0x88, 0xb9, 0xc7, 0x63, 0x85, 0x26, 0xe4, 0xf8, 0x69, 0x65, -0x3a, 0x8d, 0x3a, 0xcb, 0x50, 0x2b, 0x72, 0xe3, 0x08, 0xb4, 0xbf, 0x9a, 0xb0, 0x5e, 0x96, 0xba, -0x37, 0x12, 0xe0, 0xfa, 0x8f, 0x49, 0xcb, 0x05, 0x69, 0xf1, 0xfa, 0xe3, 0x65, 0xae, 0xa5, 0xd7, -0xe8, 0x76, 0x49, 0xc6, 0x1a, 0xa7, 0x64, 0x54, 0x21, 0xd9, 0x41, 0x38, 0x93, 0x53, 0x34, 0x0d, -0xb5, 0xaa, 0xcc, 0xc5, 0xaa, 0xed, 0xac, 0xe8, 0x3a, 0x7c, 0xab, 0x00, 0xb3, 0xcd, 0x2b, 0x5c, -0xcd, 0x8c, 0xbf, 0xfc, 0xc9, 0x2f, 0x7f, 0x52, 0x3f, 0x1e, 0x1f, 0x03, 0xda, 0xed, 0xae, 0xd3, -0x1b, 0x4e, 0x6f, 0x00, 0x0c, 0x5b, 0x8c, 0x3a, 0x32, 0x6d, 0x4b, 0xdf, 0x7e, 0xeb, 0xed, 0xb7, -0x38, 0x8d, 0xd9, 0x38, 0x52, 0x58, 0x7d, 0x00, 0xeb, 0x76, 0x0e, 0xef, 0x49, 0x3a, 0x03, 0xfb, -0x39, 0x3e, 0xdd, 0xe5, 0xdb, 0x06, 0xff, 0x5f, 0x80, 0xbc, 0x2c, 0xa1, 0x36, 0xcc, 0x31, 0xf8, -0xf0, 0xa2, 0x4b, 0xc6, 0x4a, 0xcf, 0xff, 0x72, 0xc0, 0x68, 0x75, 0x2d, 0xc3, 0xb3, 0xfb, 0x5d, -0xf9, 0xb2, 0x87, 0x74, 0xe3, 0x33, 0x69, 0x06, 0x6a, 0x15, 0x77, 0xb9, 0xb9, 0x2e, 0xc5, 0x90, -0x4b, 0xec, 0x35, 0x56, 0x88, 0x79, 0xaa, 0x4d, 0xee, 0x18, 0x5a, 0xea, 0x64, 0x46, 0xb1, 0x04, -0x2d, 0x37, 0x20, 0x8e, 0xc7, 0x13, 0xff, 0x80, 0x31, 0xfc, 0xbc, 0x7c, 0xb1, 0x20, 0x78, 0x00, -0x60, 0xd9, 0xb7, 0xe8, 0x03, 0x66, 0x84, 0x72, 0xf2, 0x83, 0x66, 0xd9, 0x00, 0x7d, 0xe6, 0xfe, -0xe5, 0xa8, 0x78, 0x57, 0xf0, 0x13, 0xa9, 0x81, 0xb9, 0x4a, 0x4c, 0xa8, 0x47, 0x5d, 0x42, 0x8d, -0x79, 0xa4, 0x53, 0x3a, 0xde, 0xac, 0xea, 0x6c, 0xc4, 0xfb, 0x5e, 0xbd, 0xcc, 0x25, 0x75, 0x28, -0x13, 0xac, 0xd4, 0x52, 0x89, 0x3a, 0x41, 0x38, 0x8f, 0x67, 0x77, 0xe3, 0xc9, 0x5f, 0x94, 0x69, -0x6b, 0xf8, 0xb7, 0x90, 0x85, 0xba, 0x92, 0xb2, 0x6c, 0xa7, 0x1b, 0x56, 0xfd, 0xa4, 0x14, 0x3b, -0x20, 0xba, 0xd8, 0x3a, 0x1b, 0x6b, 0x1a, 0x88, 0x66, 0xed, 0x1b, 0x68, 0x9f, 0xb7, 0x2f, 0x16, -0x2c, 0x51, 0xa1, 0xef, 0x39, 0x07, 0x0b, 0x39, 0x54, 0x7c, 0xb7, 0x11, 0xb5, 0x61, 0xa9, 0xf8, -0xfb, 0x9c, 0x8c, 0x3b, 0x3a, 0xc8, 0x2d, 0x3c, 0x81, 0xd6, 0xaf, 0xd7, 0x0a, 0x80, 0x49, 0xab, -0x23, 0x3a, 0xbb, 0x59, 0xa3, 0x0e, 0x3c, 0xd5, 0x04, 0x3d, 0x79, 0x00, 0x37, 0x95, 0xbe, 0xea, -0x50, 0xde, 0x9c, 0x5a, 0xa6, 0xb7, 0x3f, 0x23, 0x9a, 0x2e, 0x0c, 0x17, 0xc6, 0xe4, 0x79, 0xe0, -0x5b, 0xe6, 0xab, 0x46, 0xa9, 0xb8, 0x24, 0xb1, 0x72, 0x2e, 0xc9, 0xbe, 0x4e, 0xe3, 0x0f, 0x3e, -0xc8, 0xa7, 0x94, 0x37, 0x8e, 0x50, 0x7a, 0xb3, 0xcd, 0xc7, 0x7b, 0x09, 0x70, 0x64, 0x79, 0x21, -0xac, 0xef, 0xd8, 0xde, 0x16, 0xa0, 0x1d, 0xc4, 0xfc, 0x20, 0x8b, 0x7f, 0x6c, 0x5f, 0x28, 0x5b, -0x70, 0x6c, 0x1e, 0xe4, 0xf7, 0x4b, 0x8d, 0x35, 0xab, 0xa8, 0x0f, 0x8d, 0x21, 0x59, 0x85, 0x0e, -0x5f, 0xfd, 0xf8, 0x75, 0xab, 0x7f, 0x9b, 0x7d, 0x35, 0x87, 0xd5, 0xc6, 0x91, 0xf5, 0x15, 0x67, -0x47, 0x1c, 0x0d, 0xb2, 0x0b, 0xd6, 0x19, 0xbd, 0x3d, 0xdb, 0x41, 0xfa, 0x70, 0xb8, 0x74, 0x9b, -0x4a, 0xde, 0xaa, 0xa6, 0xfb, 0x8a, 0x7f, 0xab, 0x3d, 0x80, 0x29, 0xb0, 0xa7, 0x09, 0x72, 0x8f, -0xa9, 0x21, 0x5f, 0x05, 0xce, 0xe7, 0x10, 0xde, 0x68, 0xe4, 0xbb, 0x1b, 0x46, 0x0b, 0x49, 0x9a, -0x2f, 0x20, 0x1e, 0x87, 0x76, 0x14, 0x10, 0x7d, 0x70, 0x21, 0x49, 0x1f, 0x34, 0xac, 0x9c, 0x02, -0x0b, 0x7e, 0x06, 0xfd, 0xde, 0xd0, 0x1b, 0xbd, 0x90, 0xc4, 0x81, 0x8e, 0xc4, 0x9e, 0x94, 0x06, -0xed, 0x38, 0x53, 0x26, 0x9c, 0x53, 0xee, 0xa2, 0x5d, 0x80, 0x90, 0xa3, 0xb7, 0x4c, 0xbf, 0x9f, -0x4a, 0xae, 0x3f, 0x12, 0x50, 0x99, 0x0d, 0xff, 0x93, 0xaf, 0x41, 0x0d, 0x2f, 0xdd, 0xd2, 0x1a, -0x14, 0xa1, 0xba, 0xfe, 0xef, 0xcf, 0x5a, 0x83, 0x1a, 0x5e, 0x4f, 0x60, 0xeb, 0x72, 0xd9, 0x83, -0xb7, 0x4b, 0x09, 0x07, 0x1e, 0xc0, 0x3d, 0xd6, 0xa9, 0xe2, 0xfd, 0x25, 0xab, 0x4f, 0xfa, 0xba, -0xd9, 0xf0, 0xa3, 0x5b, 0xa4, 0xbb, 0xb7, 0x51, 0xad, 0x4f, 0x7c, 0x66, 0xad, 0x4f, 0x27, 0x6a, -0xdd, 0x2c, 0xaf, 0x48, 0x72, 0x11, 0x36, 0xb7, 0xef, 0x9f, 0x99, 0x33, 0x38, 0x8b, 0xcb, 0xc3, -0x44, 0x94, 0x81, 0xc5, 0x66, 0xc7, 0x86, 0x71, 0x67, 0x9a, 0xdf, 0x30, 0x9f, 0x69, 0xb7, 0xc8, -0xf9, 0xc9, 0x35, 0x55, 0xcb, 0x27, 0x6a, 0xfd, 0xcb, 0xe4, 0x4c, 0x37, 0xdb, 0x1b, 0x53, 0xda, -0xa6, 0xde, 0x2d, 0xfb, 0x2c, 0x1c, 0x3f, 0x39, 0x64, 0xa2, 0x4e, 0x0b, 0x49, 0x2f, 0x45, 0x75, -0xad, 0xe5, 0xb4, 0x2e, 0xde, 0x21, 0x20, 0x5a, 0xb7, 0x60, 0x32, 0xad, 0xdb, 0xf0, 0xcb, 0xd4, -0x7e, 0xd6, 0x74, 0x72, 0xde, 0xac, 0xb7, 0xf5, 0x5d, 0xd4, 0xdb, 0xef, 0xa5, 0x52, 0xbb, 0xb0, -0x36, 0x9e, 0x0a, 0xda, 0xe9, 0xbc, 0x75, 0x1e, 0xdd, 0x7b, 0x1b, 0x5b, 0x2c, 0x12, 0xee, 0x9f, -0x9f, 0x98, 0x67, 0x30, 0x2d, 0x21, 0x6d, 0xa9, 0x93, 0xa0, 0xba, 0xa4, 0x18, 0xd6, 0xbf, 0x62, -0xa0, 0x65, 0xbf, 0x11, 0x34, 0xfa, 0x06, 0x82, 0x46, 0xc0, 0xee, 0x75, 0x2e, 0x41, 0x36, 0xbb, -0x7c, 0x90, 0xdb, 0xb7, 0x5d, 0x0c, 0xc2, 0xcf, 0x48, 0x26, 0xcf, 0x77, 0x01, 0x27, 0x8e, 0x01, -0xd5, 0xdc, 0xad, 0x9c, 0x0f, 0xad, 0xa7, 0xf5, 0x65, 0x96, 0xcd, 0x00, 0x3c, 0xbf, 0x40, 0xf1, -0xae, 0x3a, 0xb8, 0x55, 0x8a, 0x3c, 0x0a, 0xc9, 0x85, 0x72, 0xd7, 0xb1, 0x9f, 0xa8, 0xf7, 0x1c, -0xcd, 0x72, 0x21, 0x60, 0x34, 0x8c, 0xf5, 0x31, 0x52, 0x1b, 0xe1, 0xf8, 0x9e, 0x97, 0x98, 0x3e, -0x68, 0xba, 0xbb, 0x5f, 0x51, 0x26, 0x3e, 0x87, 0x56, 0x7b, 0x29, 0xf6, 0x11, 0x88, 0xbd, 0x11, -0xef, 0x31, 0x2d, 0x1c, 0x8f, 0x3f, 0xcc, 0x75, 0x3e, 0x84, 0x58, 0x56, 0x8f, 0x9d, 0x4a, 0x07, -0x9c, 0x61, 0x92, 0x74, 0x00, 0x5d, 0x47, 0xa1, 0xfc, 0xf7, 0x43, 0x0b, 0x48, 0x16, 0xff, 0x9d, -0xd4, 0xf2, 0x29, 0xfe, 0x2c, 0xd1, 0x6d, 0xde, 0xc9, 0x73, 0x0d, 0xe6, 0x46, 0xe2, 0xd0, 0x47, -0x7a, 0x8a, 0x39, 0x88, 0xda, 0xf5, 0xb2, 0xb8, 0x04, 0x7f, 0x6d, 0x0b, 0xb6, 0xe1, 0x42, 0xd0, -0xf0, 0xe5, 0x7e, 0x26, 0x28, 0xef, 0xc3, 0xf7, 0x87, 0xc1, 0x00, 0x61, 0x6d, 0x5f, 0xe2, 0xa6, -0xbf, 0xc7, 0x36, 0x0d, 0x70, 0xba, 0x4f, 0xc5, 0xe9, 0x50, 0x7b, 0xfb, 0x0c, 0x72, 0x21, 0x1e, -0xb7, 0x1a, 0x8b, 0x58, 0x36, 0x7b, 0x24, 0xc8, 0x6b, 0x8d, 0x38, 0xf5, 0x38, 0xac, 0x33, 0xd9, -0x14, 0xfe, 0x22, 0x60, 0x67, 0x1e, 0x33, 0x8f, 0xb4, 0xfd, 0x6c, 0xa7, 0x3e, 0x31, 0xdb, 0xa6, -0x91, 0xdf, 0x2a, 0x94, 0xe3, 0x93, 0xff, 0xd7, 0xa1, 0x35, 0xd3, 0x70, 0x4c, 0xae, 0x23, 0x06, -0xb1, 0x00, 0xfc, 0x32, 0xdd, 0x46, 0x6a, 0xd9, 0x0a, 0xda, 0x8f, 0x7b, 0x83, 0x5a, 0xc6, 0x52, -0x7b, 0x36, 0xe4, 0x25, 0x9d, 0xad, 0x0e, 0x0a, 0xdf, 0x8b, 0xe9, 0x79, 0x9f, 0x5d, 0x6f, 0x83, -0x6f, 0xc4, 0xe6, 0x15, 0xc8, 0x11, 0x58, 0x2b, 0x51, 0x7e, 0xa4, 0x9b, 0x0f, 0x7e, 0x45, 0x74, -0x67, 0xd0, 0x76, 0x77, 0x2d, 0x33, 0x52, 0x9a, 0xaf, 0x73, 0x8b, 0x1e, 0xba, 0x02, 0x82, 0x88, -0xb9, 0x92, 0x01, 0x75, 0xc6, 0x55, 0x3c, 0xc7, 0xed, 0xc8, 0xd3, 0x7d, 0xb2, 0xb1, 0xc5, 0x65, -0x78, 0xbe, 0x81, 0x74, 0x01, 0x17, 0x68, 0xad, 0x9b, 0xb8, 0xc2, 0xf3, 0x9f, 0x20, 0x3d, 0xbf, -0x51, 0x01, 0x56, 0xc9, 0x73, 0xb8, 0x8b, 0xb5, 0xec, 0x87, 0xde, 0x0d, 0xde, 0x1f, 0xda, 0x0c, -0x76, 0x6a, 0xf9, 0xc4, 0x38, 0x9e, 0xc3, 0x10, 0x46, 0xd5, 0xb8, 0xbb, 0x21, 0xd6, 0x0e, 0x71, -0x15, 0xb3, 0x39, 0x3a, 0x58, 0x3e, 0xea, 0xaf, 0x00, 0x5e, 0xe9, 0x6a, 0x91, 0x57, 0x99, 0x40, -0x89, 0x0b, 0x7c, 0x7f, 0x0a, 0xdf, 0x57, 0x39, 0x4c, 0x4d, 0x6c, 0xc1, 0xda, 0x4d, 0x9c, 0x74, -0xae, 0x66, 0x96, 0x5f, 0x1c, 0xfd, 0xc5, 0x51, 0xac, 0xa5, 0x03, 0x6f, 0xcf, 0xbd, 0x21, 0xaf, -0xb3, 0xbb, 0x98, 0x3e, 0x6c, 0xe1, 0x5c, 0xf2, 0xf5, 0x66, 0x1a, 0x99, 0x65, 0x5f, 0x37, 0xbf, -0xb3, 0x29, 0x3c, 0x71, 0x2c, 0x16, 0xf8, 0x86, 0x34, 0x0d, 0xe9, 0x81, 0x96, 0x11, 0x17, 0x0b, -0x6c, 0xa4, 0xdd, 0x55, 0x8a, 0x55, 0x88, 0x77, 0x54, 0x50, 0xee, 0xca, 0x77, 0x7a, 0x37, 0x63, -0xfb, 0x43, 0xf9, 0x77, 0x7b, 0x98, 0x19, 0xeb, 0x60, 0x5b, 0x44, 0x78, 0xc8, 0xe4, 0x6c, 0xc6, -0xb2, 0xe4, 0x3c, 0xee, 0xbe, 0xee, 0xa7, 0xd6, 0x86, 0xa0, 0x1e, 0x7a, 0x58, 0x69, 0x0d, 0x24, -0x29, 0x1a, 0xa4, 0x7a, 0x79, 0x11, 0x1e, 0xaf, 0x1d, 0xd3, 0x7a, 0x89, 0x43, 0x22, 0x9f, 0x53, -0x32, 0x8b, 0x2f, 0xc0, 0xd9, 0xb7, 0x78, 0x1e, 0xf5, 0x40, 0x83, 0xc7, 0x53, 0x3f, 0x7e, 0xed, -0xb2, 0xfc, 0xf5, 0x30, 0x5a, 0x2e, 0xc3, 0xdb, 0x49, 0xc4, 0xeb, 0xe0, 0xfd, 0xa9, 0xe0, 0x32, -0xe0, 0xbb, 0x02, 0x62, 0x11, 0xd4, 0x01, 0xe8, 0x0f, 0x92, 0x14, 0xa2, 0xf6, 0x15, 0x23, 0xe5, -0x23, 0xcb, 0xa5, 0x91, 0x78, 0x9a, 0x4f, 0x8f, 0x3c, 0xcb, 0x1c, 0x43, 0x28, 0x4e, 0xf1, 0xfb, -0x3a, 0xea, 0x16, 0x50, 0xbf, 0x9f, 0xe2, 0xda, 0xd8, 0x01, 0xaf, 0x09, 0x36, 0x58, 0x73, 0x79, -0x0b, 0xb4, 0x96, 0x60, 0x2b, 0xa9, 0xe4, 0x38, 0x51, 0x70, 0x4c, 0x89, 0x00, 0x7f, 0xe5, 0xc0, -0xf6, 0x09, 0xa5, 0xfe, 0x03, 0xd7, 0x08, 0x2f, 0x8c, 0xc7, 0x53, 0xf1, 0xc2, 0x35, 0x1b, 0xf1, -0x92, 0xec, 0xfa, 0xfa, 0x28, 0x52, 0xf6, 0xa7, 0xa8, 0x35, 0x1c, 0x8b, 0xfa, 0xa6, 0xe2, 0xaa, -0x94, 0xdd, 0x89, 0xb3, 0x21, 0x7b, 0xd4, 0x53, 0x04, 0x51, 0xf8, 0xad, 0x43, 0xec, 0xb5, 0xf8, -0x7f, 0xdc, 0xe2, 0x49, 0x82, 0xb6, 0xa4, 0x74, 0xa6, 0xf0, 0x06, 0xe9, 0xcc, 0xe2, 0xef, 0x6a, -0xd2, 0x19, 0x5d, 0x65, 0x11, 0xac, 0x9b, 0x8b, 0x5f, 0xe2, 0xd2, 0x19, 0x7f, 0x43, 0x34, 0x9a, -0x94, 0xce, 0x00, 0xf5, 0x55, 0x1a, 0x14, 0xa7, 0x4a, 0x47, 0x94, 0x26, 0x13, 0xae, 0x00, 0x14, -0x4e, 0x38, 0x52, 0x76, 0xc7, 0x90, 0x5e, 0x83, 0xfa, 0x54, 0x93, 0x0c, 0xda, 0xcd, 0xdc, 0x40, -0x83, 0xaf, 0x23, 0xf9, 0x0d, 0xce, 0x85, 0xb1, 0xc5, 0xdf, 0xa6, 0x32, 0x1e, 0x4e, 0xe5, 0x75, -0xf0, 0x74, 0x03, 0xe7, 0x5d, 0x8f, 0xc7, 0x90, 0xbe, 0x46, 0xdb, 0xb8, 0xbd, 0x11, 0x57, 0x21, -0xb3, 0xf4, 0x76, 0x6d, 0xdb, 0xe8, 0x1b, 0xec, 0x0d, 0x6a, 0x96, 0xe1, 0x5b, 0x46, 0x0a, 0x99, -0x04, 0x54, 0x12, 0xab, 0x10, 0xdd, 0x81, 0x61, 0xbc, 0xff, 0x5b, 0x62, 0x7c, 0x67, 0xd0, 0xbe, -0x30, 0xf0, 0x84, 0x68, 0x02, 0xd8, 0xac, 0xd6, 0x6c, 0x45, 0x85, 0x90, 0xba, 0x5a, 0x07, 0xf0, -0x99, 0x8d, 0x7e, 0x7c, 0x5f, 0xa0, 0x85, 0x81, 0x5f, 0x05, 0xed, 0x09, 0xbc, 0x89, 0xb6, 0x6d, -0xdf, 0x3e, 0x2a, 0xea, 0x78, 0xa8, 0xa7, 0x7c, 0x1d, 0x03, 0x4a, 0x4a, 0xf7, 0xcc, 0x91, 0x34, -0xae, 0x78, 0x93, 0x46, 0x2d, 0x42, 0x8e, 0xbd, 0x2c, 0x1a, 0x74, 0xf9, 0x80, 0x72, 0x0b, 0xe1, -0x7d, 0xc3, 0x72, 0x1b, 0xda, 0x71, 0x36, 0xe2, 0xdd, 0x77, 0x94, 0x3d, 0xfb, 0x06, 0x42, 0x96, -0xf4, 0x14, 0x72, 0xee, 0x8d, 0xad, 0x2c, 0x64, 0xbe, 0x3b, 0x81, 0x67, 0xfb, 0x8e, 0x44, 0x5c, -0x17, 0xab, 0x91, 0x80, 0xfe, 0x63, 0x5e, 0x72, 0xcd, 0x66, 0x0d, 0xe4, 0x6a, 0x24, 0x97, 0x8d, -0x35, 0x03, 0xad, 0xdc, 0x42, 0xdf, 0x0e, 0xb6, 0x1c, 0x7a, 0x47, 0xa6, 0xef, 0x62, 0xd6, 0x46, -0xf7, 0xe0, 0x3a, 0x00, 0x0e, 0xba, 0xe0, 0x17, 0xb6, 0xcd, 0x88, 0xd6, 0xf0, 0x1d, 0xe0, 0xeb, -0xcf, 0x13, 0xbc, 0xbb, 0xa7, 0x1a, 0x27, 0xed, 0x94, 0x01, 0xac, 0x3f, 0xe6, 0x74, 0x7e, 0x0c, -0x57, 0xa9, 0xde, 0x59, 0xb6, 0x45, 0xa2, 0x89, 0x7a, 0xae, 0x44, 0xce, 0x25, 0x1f, 0x4b, 0x8a, -0x8f, 0x7e, 0xad, 0x15, 0xed, 0xf8, 0x22, 0xfd, 0x9d, 0x26, 0x53, 0xbc, 0xed, 0xb3, 0x65, 0x8a, -0x74, 0x5a, 0xa6, 0x91, 0xc3, 0x6f, 0x7c, 0x1f, 0x72, 0x64, 0x62, 0xaf, 0xd0, 0x55, 0x28, 0x09, -0xd1, 0xc4, 0x09, 0x36, 0xc6, 0xf6, 0xcb, 0x22, 0x9e, 0x34, 0x83, 0x3e, 0x79, 0x45, 0x3d, 0x6d, -0xc6, 0xb4, 0xd3, 0x66, 0xd8, 0x4f, 0xa8, 0x7b, 0x08, 0x4f, 0x96, 0x09, 0xe1, 0xe4, 0xc9, 0xb2, -0x85, 0x97, 0xd8, 0x41, 0x79, 0xbd, 0xaf, 0x90, 0x19, 0x83, 0x11, 0x3c, 0x47, 0x46, 0xfb, 0xb7, -0xda, 0x49, 0x32, 0x9e, 0x7a, 0x2d, 0xbf, 0xd3, 0x29, 0x07, 0xac, 0x7f, 0x9d, 0x5f, 0x60, 0xd6, -0xd1, 0xe9, 0x3a, 0x1d, 0xfb, 0x7c, 0xd0, 0xf8, 0x57, 0x07, 0x59, 0x61, 0x3e, 0x93, 0xf5, 0x7f, -0x85, 0x1a, 0x06, 0x07, 0x64, 0x5d, 0x84, 0xed, 0x19, 0xe8, 0x39, 0x5b, 0x75, 0x49, 0xe8, 0x38, -0x31, 0xea, 0x71, 0xf2, 0x73, 0x66, 0xc2, 0x72, 0x69, 0x91, 0x20, 0x7b, 0x5e, 0xe5, 0x27, 0xab, -0xfc, 0x2b, 0xf9, 0xe9, 0x27, 0x61, 0x39, 0x3f, 0x67, 0x46, 0x67, 0xcc, 0x06, 0x49, 0x07, 0x13, -0x71, 0x76, 0x4b, 0x2e, 0x09, 0x0d, 0x53, 0x9f, 0x33, 0xf3, 0x87, 0x6f, 0x89, 0xf6, 0x94, 0xa9, -0x94, 0xfe, 0x49, 0x72, 0xee, 0x34, 0x2a, 0xce, 0xff, 0x44, 0x82, 0x8a, 0xbb, 0xf1, 0xa4, 0xd9, -0x0b, 0x7f, 0x99, 0x8c, 0xfb, 0x2f, 0xd8, 0xe9, 0x3b, 0x48, 0x5c, 0x74, 0x37, 0x33, 0x16, 0x16, -0x33, 0x73, 0x64, 0xf3, 0xc9, 0x6f, 0x46, 0xe9, 0xc4, 0xe4, 0xf5, 0x51, 0x5b, 0x2e, 0x8c, 0x1f, -0xf0, 0xd1, 0x30, 0xf3, 0x75, 0x72, 0x18, 0x2d, 0x2c, 0xc3, 0x58, 0x7d, 0xea, 0x24, 0xa9, 0x16, -0xb7, 0xb7, 0x54, 0x51, 0x79, 0x87, 0xba, 0xff, 0xa1, 0x9e, 0x1b, 0x3c, 0x1b, 0xd9, 0x54, 0x27, -0x44, 0x99, 0xaa, 0x0d, 0xe6, 0xf5, 0x75, 0xc5, 0x9a, 0x36, 0x18, 0xc7, 0xe2, 0xbb, 0x73, 0x69, -0x9f, 0x04, 0x65, 0xb9, 0x59, 0x8e, 0x19, 0xc9, 0x5d, 0x36, 0x65, 0x99, 0x94, 0x0d, 0x6d, 0xdc, -0x4c, 0x14, 0x15, 0xe9, 0xf5, 0xa7, 0x93, 0x86, 0x5b, 0xa8, 0xbf, 0x9e, 0xd2, 0xf6, 0xcd, 0x80, -0x77, 0x5f, 0x41, 0x34, 0x45, 0x6d, 0xe2, 0x54, 0x93, 0xd7, 0xa6, 0xe7, 0x7b, 0x45, 0x48, 0x45, -0x04, 0x67, 0xc9, 0x25, 0x58, 0xa7, 0xae, 0x99, 0x36, 0xca, 0x7b, 0xa2, 0x81, 0xd2, 0x6f, 0xe5, -0xdf, 0xb2, 0x7e, 0xe1, 0x45, 0x66, 0x84, 0xf8, 0xb4, 0xeb, 0xa4, 0x6c, 0x83, 0xf8, 0x27, 0xe9, -0xec, 0x11, 0xba, 0xf2, 0x6c, 0x7a, 0x75, 0xd7, 0x6d, 0x26, 0xed, 0xfa, 0xbd, 0x99, 0xac, 0x4f, -0xfc, 0x30, 0xd5, 0xc7, 0xca, 0xb5, 0xcf, 0x34, 0xa8, 0xda, 0x67, 0xb8, 0xc6, 0x40, 0x82, 0x82, -0xab, 0x69, 0x90, 0xf0, 0xcc, 0x2d, 0x41, 0xc2, 0x72, 0xaa, 0xd9, 0x3f, 0xa5, 0x4a, 0x8d, 0xb4, -0x1d, 0x8f, 0xb8, 0x8f, 0x73, 0x4c, 0xfe, 0xd7, 0xa8, 0x74, 0x9f, 0xba, 0xe3, 0x31, 0x53, 0x76, -0x4a, 0x7a, 0x92, 0x53, 0x1d, 0x88, 0x37, 0x26, 0xe1, 0xa0, 0x71, 0xe4, 0x33, 0xa0, 0x80, 0xeb, -0xd1, 0xfb, 0x5a, 0xaa, 0x84, 0xd8, 0xff, 0xaf, 0x53, 0x9d, 0x55, 0xa9, 0xb4, 0xd9, 0x7b, 0x85, -0x02, 0xa7, 0x24, 0x88, 0x53, 0x4a, 0xdc, 0x4c, 0x5c, 0x5e, 0x08, 0x23, 0xc2, 0x79, 0x83, 0xb3, -0xc0, 0xa9, 0xea, 0x43, 0x62, 0x9a, 0xfc, 0x71, 0x87, 0xe6, 0xa2, 0xdd, 0x30, 0xfc, 0x7e, 0xdd, -0x53, 0x7b, 0x93, 0x93, 0x2d, 0x6b, 0x21, 0x7f, 0x1f, 0xf5, 0xc0, 0xa1, 0xf2, 0x4a, 0x96, 0x7a, -0xaa, 0xc5, 0x8c, 0xd2, 0x4f, 0x55, 0xc2, 0x59, 0xea, 0xdb, 0x12, 0xb2, 0xdf, 0x98, 0x83, 0x2d, -0x77, 0x52, 0x1a, 0xbd, 0xc7, 0x23, 0xeb, 0xa3, 0xc2, 0x7a, 0x21, 0x5d, 0x1e, 0xca, 0xa5, 0xa1, -0x84, 0x1d, 0xc6, 0x48, 0x1a, 0x1a, 0xf5, 0xd5, 0x06, 0x67, 0x41, 0x9e, 0x33, 0x23, 0x65, 0x75, -0x02, 0xdf, 0x23, 0xa0, 0x13, 0x63, 0x48, 0x51, 0xbf, 0x43, 0xe7, 0x60, 0xe8, 0x9c, 0x6f, 0x8d, -0x6a, 0xeb, 0x6c, 0xca, 0x79, 0x7e, 0xec, 0x96, 0x46, 0xb7, 0x99, 0xda, 0x76, 0x76, 0xd2, 0x3c, -0x4f, 0x3f, 0x01, 0xd3, 0x45, 0xb2, 0x72, 0x6d, 0x54, 0x71, 0x76, 0xaf, 0xbd, 0xc5, 0x51, 0xa5, -0xb9, 0x8d, 0xfb, 0x14, 0x15, 0x06, 0xed, 0x3c, 0x85, 0xff, 0xbd, 0x5b, 0xe4, 0x23, 0x77, 0x51, -0xcd, 0x7e, 0x9f, 0x7a, 0xa2, 0xe2, 0x06, 0x0c, 0x34, 0x9e, 0xc0, 0x40, 0xab, 0xe4, 0x75, 0x09, -0x78, 0x08, 0xc0, 0xea, 0x67, 0xa5, 0x1d, 0x16, 0x51, 0x74, 0x8b, 0x4e, 0x56, 0x7e, 0x3c, 0xb6, -0xe8, 0x12, 0x2b, 0x38, 0x1e, 0x2b, 0x42, 0xca, 0x6c, 0x6c, 0x09, 0xe3, 0x6b, 0xc4, 0x44, 0x9d, -0x6c, 0xb5, 0x59, 0x48, 0xd3, 0x0d, 0xeb, 0xcd, 0x59, 0x36, 0x70, 0xe1, 0x71, 0x2a, 0xbb, 0x1c, -0x75, 0x9c, 0x52, 0xbc, 0xd9, 0x14, 0xab, 0x81, 0x78, 0x66, 0xeb, 0x9f, 0xe3, 0x2e, 0xe5, 0x02, -0xdc, 0xe1, 0xd0, 0xd6, 0x14, 0x5c, 0x4f, 0x70, 0x5d, 0xb1, 0x59, 0x42, 0x79, 0xf6, 0xe4, 0x0a, -0x10, 0xa6, 0x33, 0x06, 0xff, 0x7f, 0xb0, 0x7e, 0x2c, 0xb9, 0xff, 0xa6, 0xeb, 0x87, 0x35, 0x6d, -0xfd, 0x98, 0x50, 0xe1, 0x8a, 0x60, 0x6a, 0x49, 0xc3, 0xad, 0xaf, 0x1d, 0x4b, 0x5a, 0xec, 0xb7, -0xfd, 0xed, 0x4d, 0xd7, 0x8e, 0x25, 0x5f, 0xb9, 0xc9, 0xda, 0x31, 0x01, 0xd0, 0x75, 0xf0, 0x96, -0xd7, 0x8e, 0x0f, 0xff, 0x7f, 0xb7, 0x76, 0x84, 0xda, 0xca, 0x2b, 0xb5, 0x75, 0xa2, 0x1c, 0xd6, -0x09, 0x75, 0xbc, 0xfe, 0xab, 0xab, 0x44, 0x57, 0xca, 0x2a, 0xd1, 0x93, 0xbe, 0x4a, 0x2c, 0x59, -0xa9, 0xad, 0x12, 0x8e, 0xa9, 0x56, 0x89, 0xac, 0x3f, 0xb7, 0x4a, 0x2c, 0xe9, 0x48, 0x5b, 0x25, -0xb2, 0x6e, 0xb2, 0x4a, 0x64, 0xa5, 0xad, 0x12, 0xe7, 0x52, 0x56, 0x89, 0x77, 0x6e, 0xb2, 0x4a, -0xdc, 0x80, 0x43, 0x96, 0xac, 0xba, 0xf5, 0x15, 0x62, 0xc9, 0xda, 0xa9, 0xf6, 0xc4, 0xe3, 0x6d, -0x7c, 0x85, 0x58, 0x32, 0x48, 0x25, 0xb7, 0x4d, 0x5a, 0x21, 0x10, 0x97, 0xac, 0xfa, 0x4b, 0x70, -0x49, 0xba, 0x4c, 0x6a, 0xc9, 0x93, 0xb7, 0x88, 0x4b, 0x9e, 0xa2, 0x1a, 0x7e, 0xeb, 0xb3, 0x64, -0x52, 0x4b, 0x76, 0x24, 0x20, 0xd2, 0x2f, 0x2f, 0x4f, 0xe0, 0x92, 0x79, 0xb0, 0xb6, 0x58, 0x80, -0x2a, 0x34, 0x87, 0xf4, 0xbe, 0x01, 0x7e, 0x23, 0x63, 0xc9, 0xb3, 0x5c, 0xc2, 0x0b, 0xf8, 0x63, -0x26, 0xa5, 0x7c, 0x8b, 0xa7, 0xd4, 0x76, 0x73, 0xd5, 0xdd, 0xa9, 0x5b, 0x92, 0x46, 0xfd, 0x7f, -0x79, 0xe7, 0xfc, 0x91, 0xde, 0xc8, 0xea, 0x15, 0xbd, 0xbd, 0xab, 0x53, 0xae, 0x9b, 0x97, 0x97, -0x94, 0xa6, 0x5f, 0x37, 0xbf, 0x21, 0x0e, 0xbf, 0x69, 0x3e, 0xf4, 0x0e, 0x1b, 0xfb, 0x37, 0xa3, -0xde, 0x85, 0x37, 0xcd, 0x87, 0x7e, 0x0c, 0xbf, 0xef, 0xb2, 0xb1, 0x27, 0xcd, 0x3c, 0x73, 0xa0, -0xe8, 0xf9, 0xcd, 0x65, 0xfc, 0xce, 0xb2, 0x4c, 0x1f, 0xf5, 0x00, 0x0a, 0x52, 0x1f, 0xd5, 0x9d, -0x95, 0xbc, 0x2e, 0xc5, 0xc6, 0x1e, 0xaf, 0x4d, 0xaf, 0x9c, 0x0e, 0xfd, 0xfc, 0xf0, 0x7b, 0x10, -0xd8, 0xe0, 0x54, 0xbf, 0xbf, 0x85, 0x5f, 0x6b, 0xc2, 0x4f, 0x20, 0xbf, 0x95, 0xf0, 0xeb, 0x4c, -0x26, 0x25, 0xbf, 0xd5, 0xf4, 0xad, 0xc5, 0xcb, 0xd2, 0xb1, 0x1b, 0xfb, 0x88, 0xe2, 0x45, 0xe1, -0xf7, 0x68, 0xc2, 0x4b, 0x4f, 0x7e, 0x7f, 0x97, 0x16, 0x2d, 0x9b, 0xea, 0x37, 0x34, 0x45, 0xda, -0x27, 0xe1, 0xb7, 0x3d, 0x51, 0x86, 0x95, 0xfc, 0x76, 0xc0, 0xef, 0x85, 0x44, 0xb4, 0xbb, 0xc8, -0xef, 0xc5, 0xb4, 0xba, 0xe4, 0x91, 0xdf, 0xcb, 0xf0, 0xfb, 0xd7, 0x84, 0xdf, 0x5f, 0x91, 0xdf, -0xbf, 0xa5, 0xc5, 0xcb, 0x27, 0xbf, 0xa3, 0xe9, 0xe5, 0x66, 0x25, 0xeb, 0xa2, 0xc5, 0x73, 0x92, -0xdf, 0xcf, 0xd2, 0xfc, 0xe6, 0x52, 0xda, 0x5f, 0x4c, 0x91, 0x16, 0xc6, 0xec, 0xf1, 0xdf, 0x0a, -0x82, 0xea, 0x55, 0x4c, 0x7e, 0x1f, 0xc0, 0xef, 0x0f, 0x4c, 0xf3, 0x2b, 0xa1, 0xb4, 0x7f, 0x9c, -0x22, 0xad, 0xc2, 0xc6, 0x9e, 0xd0, 0x0b, 0x77, 0xa8, 0x5e, 0x65, 0xe8, 0xf7, 0x84, 0x81, 0xbe, -0x35, 0xbf, 0x7b, 0xb1, 0xaf, 0x9e, 0xc8, 0xb9, 0xb1, 0xaf, 0x9e, 0xb0, 0xc2, 0xef, 0x73, 0x09, -0xaf, 0x4a, 0xf2, 0xfb, 0x3c, 0xfc, 0xc4, 0x44, 0x9d, 0xff, 0x86, 0xfc, 0x6c, 0xf0, 0x73, 0x25, -0xfc, 0x16, 0x90, 0x5f, 0x09, 0xfc, 0xfe, 0x26, 0x91, 0xf6, 0xfe, 0x9b, 0x8e, 0xe5, 0x51, 0x88, -0x77, 0x7f, 0x22, 0xad, 0x9b, 0xd2, 0x56, 0xc1, 0xaf, 0x21, 0xe1, 0x57, 0x45, 0x7e, 0x00, 0x57, -0x4f, 0xb4, 0x24, 0xfc, 0x3c, 0xe4, 0xf7, 0x10, 0xfc, 0x56, 0x26, 0xfc, 0xaa, 0x6f, 0x56, 0xc6, -0x13, 0xed, 0x69, 0xfd, 0x5c, 0x47, 0x7e, 0xbd, 0x69, 0x7e, 0x0b, 0xc9, 0xef, 0xd1, 0x34, 0x3f, -0xef, 0x54, 0x13, 0x30, 0xc6, 0x36, 0xd7, 0x21, 0x0c, 0xc3, 0xbb, 0x49, 0x7d, 0x2f, 0x4c, 0x0d, -0x4f, 0xbb, 0x57, 0xac, 0x4e, 0x41, 0x3e, 0x17, 0xdb, 0x7b, 0x56, 0x76, 0x4c, 0xa9, 0x08, 0xa0, -0xb3, 0x27, 0xba, 0xa6, 0x33, 0xda, 0xd9, 0xdb, 0x93, 0xf0, 0x99, 0x7c, 0x97, 0x39, 0xd4, 0xda, -0x16, 0xed, 0xed, 0xed, 0x4a, 0x49, 0xb2, 0x32, 0x25, 0x76, 0x28, 0xd2, 0x1a, 0xee, 0xe8, 0x5c, -0x99, 0x0c, 0xed, 0x6a, 0x7d, 0xb4, 0x3d, 0x92, 0x74, 0x46, 0x7a, 0x7b, 0xa3, 0x2b, 0xbb, 0x5a, -0xfb, 0xfa, 0x58, 0x5b, 0x67, 0xdf, 0xea, 0x92, 0xce, 0x9e, 0x60, 0x2f, 0x53, 0xff, 0xe3, 0xed, -0xd7, 0xb6, 0x48, 0x6f, 0x98, 0xcd, 0x67, 0x61, 0x78, 0x85, 0x78, 0xb4, 0x44, 0xc5, 0xf1, 0xe6, -0x67, 0x09, 0xde, 0xfe, 0x14, 0xab, 0x3b, 0x3a, 0xc3, 0x74, 0x77, 0x7c, 0xb5, 0x4b, 0xac, 0x6b, -0xed, 0x8b, 0x6a, 0xdf, 0x55, 0x3d, 0x8f, 0xf2, 0xcf, 0x94, 0x52, 0x12, 0xcd, 0xf6, 0x68, 0xb9, -0x7b, 0x12, 0xf7, 0xe0, 0x6b, 0x19, 0xbf, 0x57, 0xfd, 0x20, 0xab, 0x5a, 0xd1, 0xbb, 0x26, 0x5a, -0x52, 0x52, 0xc2, 0x6f, 0x27, 0x3f, 0x00, 0xfe, 0x6b, 0xa2, 0x6d, 0xbd, 0x8f, 0xf4, 0xb0, 0x07, -0x3b, 0x7b, 0xe0, 0x8d, 0x57, 0xb0, 0xc5, 0xb6, 0x48, 0xeb, 0x23, 0xed, 0x11, 0xe6, 0x67, 0x4b, -0xf0, 0x6e, 0x7f, 0xb8, 0x15, 0xef, 0xa6, 0xb2, 0x45, 0x6c, 0x69, 0xb8, 0xad, 0x15, 0xf2, 0x6a, -0x6a, 0xef, 0xe2, 0xf7, 0xf1, 0x7b, 0xa2, 0x78, 0xf7, 0x96, 0x55, 0xd1, 0x0d, 0x53, 0xf2, 0x6b, -0x85, 0x22, 0x9a, 0x7a, 0x5a, 0xc3, 0x7d, 0x1d, 0xbd, 0x51, 0x56, 0x85, 0x8e, 0x0e, 0xc8, 0x72, -0x49, 0x4f, 0xd7, 0xa3, 0x22, 0x76, 0x5d, 0x1f, 0x2b, 0x46, 0x5f, 0xba, 0xe6, 0xdf, 0xc7, 0x8a, -0xd8, 0xb2, 0x4e, 0x28, 0x6c, 0xc5, 0xa3, 0xac, 0x1e, 0xc2, 0xd8, 0x3d, 0xac, 0xa6, 0x3d, 0xda, -0xda, 0xd9, 0xd5, 0x47, 0xce, 0x3e, 0x2a, 0x9b, 0x2d, 0x61, 0xd5, 0xbd, 0xe1, 0x47, 0x59, 0x35, -0x0b, 0xb4, 0xf7, 0xb4, 0x76, 0xb7, 0x63, 0xbd, 0x03, 0xac, 0x1e, 0xfa, 0x30, 0xd2, 0xdd, 0x4a, -0x43, 0x07, 0x1e, 0xf5, 0x0c, 0xaf, 0xaf, 0xf6, 0x69, 0xc5, 0x2e, 0x65, 0x0d, 0xed, 0xad, 0x6b, -0xdb, 0x45, 0x68, 0x26, 0x6b, 0x60, 0x8d, 0x6b, 0xa0, 0x56, 0x8f, 0xb4, 0x3e, 0xca, 0x1a, 0x21, -0xfb, 0xae, 0xf6, 0x28, 0x65, 0x51, 0x47, 0xc9, 0xf1, 0xab, 0xb6, 0x3b, 0x1c, 0x7d, 0x54, 0x8c, -0x46, 0x5a, 0xfb, 0x3a, 0x70, 0xb4, 0x43, 0xed, 0x6a, 0x5f, 0xe2, 0xd5, 0x64, 0x6d, 0x58, 0xee, -0xbf, 0xff, 0xfe, 0xb4, 0xb0, 0x29, 0xef, 0xb0, 0x6e, 0x12, 0x35, 0x2c, 0x01, 0x3f, 0x17, 0xfc, -0xee, 0x4e, 0xbd, 0x5b, 0xaa, 0xba, 0xf1, 0x7b, 0xb6, 0xea, 0x76, 0xa9, 0x6e, 0x2d, 0xdc, 0x9e, -0x76, 0x0f, 0xd5, 0x76, 0xab, 0xf7, 0x50, 0x61, 0x2d, 0x51, 0xef, 0xa1, 0x0e, 0x75, 0xdd, 0xfa, -0x3d, 0xd4, 0xa1, 0x1d, 0x37, 0xbf, 0x87, 0x3a, 0x34, 0x3c, 0xf9, 0x1e, 0xea, 0x13, 0x07, 0x3f, -0xeb, 0x1e, 0xea, 0x50, 0x78, 0xf2, 0x3d, 0xd4, 0xa1, 0xd8, 0x8d, 0xf7, 0x50, 0x87, 0x36, 0xdf, -0x70, 0x0f, 0xd5, 0xf6, 0x97, 0xdc, 0x43, 0xad, 0xd0, 0x61, 0x1b, 0x87, 0x3d, 0xe9, 0x14, 0x48, -0xa8, 0x0c, 0xf3, 0xfe, 0x66, 0x1e, 0xe6, 0x99, 0x75, 0x94, 0xda, 0x49, 0x34, 0xc3, 0xb0, 0xdf, -0xce, 0xd6, 0xd2, 0x2e, 0xf1, 0xc4, 0x78, 0x2a, 0x35, 0xa0, 0xdd, 0xd8, 0x74, 0x17, 0x68, 0x16, -0x97, 0x55, 0xdb, 0x33, 0xf3, 0xd4, 0x9d, 0xa8, 0x84, 0x4f, 0x7c, 0x45, 0xd2, 0x27, 0x69, 0xab, -0xf9, 0xfa, 0x19, 0xed, 0x36, 0x57, 0x85, 0xcd, 0x5e, 0x81, 0x96, 0x53, 0xa1, 0x85, 0x50, 0x83, -0xe1, 0x07, 0x6b, 0xc7, 0x95, 0x53, 0x92, 0x97, 0x89, 0xfe, 0x2d, 0x0e, 0x96, 0xf0, 0xed, 0xf4, -0x6f, 0xa1, 0xdd, 0xd1, 0x7c, 0xe4, 0x90, 0x7c, 0x1b, 0xf0, 0xcc, 0x4e, 0xc8, 0x5c, 0x0d, 0x6d, -0xf5, 0xfc, 0x13, 0x49, 0xd5, 0x9e, 0x93, 0x74, 0x92, 0x1e, 0x52, 0x62, 0x8f, 0xeb, 0xa4, 0x2c, -0xde, 0x8f, 0xc4, 0x69, 0xaa, 0xdc, 0x0d, 0x4a, 0x12, 0xc4, 0xb2, 0x70, 0x65, 0x44, 0xf0, 0x56, -0xa5, 0x68, 0xd9, 0xe7, 0xda, 0x91, 0x55, 0x8b, 0xf1, 0x5a, 0x59, 0x90, 0x4f, 0xc0, 0xbf, 0xc5, -0xce, 0x50, 0x3b, 0x32, 0x8e, 0x2a, 0xc4, 0xe8, 0x4f, 0x8b, 0xb1, 0x06, 0xea, 0x16, 0x53, 0x43, -0x56, 0xa4, 0x85, 0x7c, 0xc3, 0xbf, 0xe5, 0x6e, 0x6e, 0x4d, 0x0a, 0xc3, 0xea, 0xd2, 0xc2, 0xbe, -0x45, 0x61, 0x66, 0x35, 0xac, 0x30, 0xa1, 0xb7, 0xd1, 0x45, 0xa1, 0x3b, 0x29, 0xd4, 0xa2, 0x86, -0x9a, 0x27, 0x85, 0x3e, 0x48, 0xa1, 0x56, 0x1e, 0x2a, 0x7c, 0x9c, 0x96, 0xef, 0xbf, 0x50, 0x58, -0xbe, 0x1a, 0x76, 0x32, 0x2d, 0xec, 0x4d, 0x0a, 0x2b, 0x50, 0xc3, 0x5e, 0xf3, 0xae, 0x8f, 0x3f, -0xc5, 0x47, 0x18, 0x7c, 0x2b, 0x48, 0x2b, 0xe0, 0xf3, 0x40, 0xfd, 0x79, 0xa0, 0x2f, 0x26, 0x48, -0x1e, 0x3c, 0xf6, 0xad, 0x32, 0x08, 0x11, 0x31, 0x84, 0x6d, 0xe4, 0x3e, 0x2f, 0x1f, 0x06, 0x1f, -0x3b, 0xf8, 0x44, 0xb9, 0x7b, 0x9f, 0x08, 0x6e, 0x27, 0xb8, 0xdb, 0xb8, 0xfb, 0xff, 0xe0, 0xf9, -0x85, 0x52, 0x70, 0x37, 0x73, 0xf7, 0xeb, 0x6f, 0x82, 0xdb, 0x05, 0xee, 0x1a, 0x57, 0x53, 0x2d, -0x8e, 0xd0, 0xf3, 0xe2, 0x6a, 0x26, 0x6e, 0x7d, 0x0b, 0xca, 0x18, 0xb2, 0xbb, 0xef, 0x46, 0x0b, -0x31, 0x85, 0x52, 0xff, 0xa8, 0x1b, 0xa8, 0x01, 0x0b, 0xf2, 0xd6, 0xe2, 0x2a, 0x65, 0xc2, 0xe6, -0x64, 0x46, 0x18, 0x4d, 0x8b, 0x77, 0x3d, 0x33, 0x48, 0x82, 0x7f, 0x0d, 0xa4, 0x28, 0x77, 0x35, -0xe1, 0x7d, 0x63, 0xb2, 0xb6, 0x61, 0x92, 0xee, 0xa4, 0x3d, 0xa7, 0x1d, 0x8d, 0x23, 0xe0, 0x2e, -0x4d, 0xb8, 0x87, 0xc9, 0xed, 0x4c, 0xb8, 0xd7, 0x91, 0xdb, 0x9e, 0x70, 0x77, 0x90, 0x5b, 0x4c, -0xb8, 0x5b, 0x1a, 0x47, 0x6c, 0x45, 0xac, 0x02, 0xdb, 0xab, 0xb4, 0x01, 0xb5, 0xcb, 0xd8, 0x8b, -0x49, 0x6b, 0x3b, 0xd7, 0x1b, 0x28, 0x76, 0x7e, 0xaa, 0x05, 0x9e, 0xeb, 0x15, 0xe4, 0x67, 0x4d, -0xf3, 0xb3, 0x93, 0x5f, 0x9a, 0xf5, 0x9e, 0xeb, 0x16, 0xf2, 0x4b, 0xb3, 0xde, 0x33, 0x31, 0xd1, -0x38, 0xe2, 0xdb, 0x1a, 0x52, 0xad, 0x73, 0x4a, 0x10, 0x0a, 0x7e, 0xef, 0x53, 0x3c, 0x7d, 0x5a, -0xbc, 0x53, 0x50, 0xab, 0x45, 0x49, 0xdb, 0xb3, 0x40, 0x67, 0x9b, 0x90, 0xce, 0x6e, 0xd0, 0x73, -0x5d, 0xa6, 0xe0, 0x2a, 0x62, 0x05, 0x41, 0xa6, 0x2c, 0x93, 0x99, 0x22, 0xa7, 0xcd, 0x35, 0x39, -0x69, 0xef, 0x5c, 0xf5, 0xf9, 0xfa, 0x0d, 0x3e, 0xc1, 0xc4, 0x3c, 0x9b, 0x27, 0xf2, 0x93, 0x3b, -0xa5, 0xc0, 0xb5, 0xdb, 0xc9, 0x9a, 0x36, 0x6a, 0xe1, 0x77, 0xfd, 0x7c, 0x54, 0x5a, 0x8d, 0x16, -0x6a, 0xf0, 0x0e, 0x8d, 0xe7, 0x7f, 0x89, 0x95, 0xa3, 0x55, 0x2c, 0x0b, 0x2d, 0x6c, 0xd9, 0x16, -0xbb, 0x02, 0x68, 0x4b, 0xe7, 0xb5, 0x57, 0x99, 0x18, 0xb4, 0xd9, 0xa1, 0xc5, 0x72, 0x29, 0x9e, -0x65, 0x55, 0x63, 0x78, 0xd2, 0xc2, 0x4d, 0xb2, 0x75, 0x5d, 0xc1, 0x99, 0x91, 0x85, 0xe3, 0xca, -0x90, 0x94, 0x8b, 0x37, 0xf8, 0xd0, 0x8a, 0x70, 0xf0, 0x38, 0xb6, 0xa3, 0x4b, 0x9b, 0x81, 0x07, -0x55, 0xfd, 0xb6, 0x51, 0x67, 0x2f, 0x5b, 0x07, 0xb5, 0xeb, 0x17, 0xf3, 0x48, 0x6f, 0xe6, 0x74, -0x80, 0x77, 0xe7, 0x0a, 0xfe, 0x2d, 0x84, 0x1c, 0xf4, 0xd6, 0x05, 0x99, 0x61, 0x9e, 0xcc, 0x84, -0x0e, 0x72, 0x99, 0x50, 0x17, 0xb4, 0x39, 0x86, 0x30, 0x03, 0xfe, 0xb3, 0x64, 0xa6, 0x7b, 0xb8, -0x70, 0x35, 0xb3, 0xf3, 0xb3, 0x38, 0x86, 0x32, 0xa8, 0x2d, 0xd9, 0x51, 0xb6, 0x37, 0xd8, 0xfc, -0x04, 0x41, 0x80, 0xe9, 0xec, 0x18, 0x32, 0x13, 0x5a, 0x09, 0xe3, 0xef, 0x74, 0xff, 0xe2, 0x50, -0xd5, 0x87, 0xcc, 0x3a, 0xd7, 0x0b, 0xd0, 0xb8, 0x9b, 0xe5, 0x57, 0x7f, 0xc8, 0xf2, 0xe7, 0xd6, -0xe3, 0xbd, 0x3f, 0xcf, 0x77, 0x11, 0xbf, 0xea, 0x98, 0x7f, 0xcb, 0x5c, 0x98, 0xb5, 0x50, 0x63, -0x9b, 0xd4, 0x4f, 0xe4, 0xbd, 0x9c, 0xc8, 0xd3, 0x03, 0x70, 0x29, 0x6b, 0xb9, 0xca, 0x2c, 0xfb, -0x0d, 0x4c, 0x05, 0xd8, 0x28, 0x06, 0xb1, 0xcb, 0xd4, 0x51, 0x74, 0x91, 0xed, 0x8c, 0xa0, 0x9a, -0xb6, 0x23, 0x2d, 0x6d, 0x87, 0x96, 0x16, 0x78, 0x44, 0x96, 0xbd, 0x11, 0x6f, 0xec, 0x91, 0xc5, -0x8a, 0xdb, 0x23, 0x82, 0x53, 0x78, 0x6f, 0xf7, 0xe3, 0xbb, 0x99, 0x99, 0xac, 0xe8, 0x81, 0xcf, -0xaf, 0xff, 0x79, 0xc3, 0x6e, 0xa6, 0x77, 0x2d, 0x85, 0xd9, 0x51, 0x05, 0x6b, 0x56, 0x05, 0xf4, -0x76, 0x25, 0x7d, 0xeb, 0x98, 0x5b, 0x6a, 0x66, 0x35, 0xe0, 0xf6, 0x8a, 0xdd, 0xcc, 0xbe, 0xf5, -0x2d, 0x98, 0x57, 0x15, 0x38, 0x9f, 0xe6, 0xa2, 0xdd, 0x5f, 0x96, 0xad, 0xd5, 0xc3, 0x5a, 0x3b, -0x7e, 0xfd, 0xbc, 0xa6, 0x75, 0x97, 0x6a, 0xb5, 0x45, 0xad, 0x53, 0x38, 0xad, 0x4e, 0x61, 0xad, -0x4e, 0xfc, 0xb6, 0x85, 0xfe, 0xb2, 0xa3, 0x88, 0x20, 0x02, 0xfa, 0x6a, 0xd1, 0x55, 0x23, 0x8b, -0x76, 0x9d, 0x1a, 0xb1, 0x79, 0x6c, 0x2f, 0x33, 0x2b, 0xea, 0xdd, 0xdc, 0xac, 0xc7, 0xd3, 0x4c, -0x23, 0x57, 0x80, 0xf3, 0xc5, 0xbc, 0x0c, 0xd0, 0x37, 0xc9, 0x19, 0x2b, 0x27, 0x66, 0x6c, 0xb5, -0x64, 0x91, 0xcc, 0xa8, 0xa7, 0x14, 0x20, 0x1c, 0xbf, 0x75, 0xa8, 0x5b, 0x93, 0x5b, 0x80, 0x0c, -0xbe, 0x49, 0x3e, 0xc5, 0x64, 0x57, 0x33, 0xa0, 0xd6, 0xae, 0x98, 0x19, 0xa1, 0xb6, 0x65, 0x89, -0xda, 0xde, 0x45, 0x38, 0x3b, 0x9f, 0x8f, 0xa9, 0xfe, 0xe1, 0xa9, 0xc6, 0x54, 0x9e, 0xc7, 0xeb, -0x48, 0xf5, 0xc8, 0x66, 0x72, 0xfd, 0x55, 0xa3, 0x55, 0x6a, 0x60, 0x6d, 0xf6, 0x1e, 0xa6, 0xe7, -0xe7, 0x5c, 0xf5, 0x0e, 0xac, 0x9b, 0x98, 0x5a, 0x37, 0x82, 0x05, 0x68, 0x63, 0x8e, 0x56, 0xfb, -0x64, 0xec, 0xac, 0x4f, 0xa7, 0x8a, 0x2d, 0x1f, 0x77, 0xa5, 0xf5, 0x46, 0x84, 0xd9, 0xea, 0x5c, -0x9d, 0xb4, 0xba, 0x0e, 0x42, 0xef, 0x1b, 0xc9, 0x65, 0xc5, 0x13, 0x11, 0xb8, 0xa7, 0x92, 0xb5, -0x0f, 0x6f, 0xe2, 0x6c, 0xce, 0x13, 0x8b, 0x99, 0x3e, 0xf6, 0x32, 0x33, 0x27, 0x35, 0x50, 0x3a, -0xd8, 0xe8, 0xcb, 0x84, 0x75, 0x9d, 0x98, 0x2a, 0x45, 0x33, 0x24, 0x23, 0xd9, 0x9e, 0x95, 0xce, -0xa0, 0x06, 0x56, 0x98, 0xd7, 0xe9, 0xf6, 0xe3, 0x59, 0xad, 0x4f, 0x00, 0x1b, 0x0d, 0xbb, 0x56, -0x6b, 0x25, 0x4b, 0x51, 0xa3, 0x95, 0x75, 0xc9, 0x05, 0x38, 0xfe, 0xd8, 0xd6, 0xa9, 0xfa, 0x5c, -0xca, 0xf3, 0xf6, 0xb2, 0x30, 0x60, 0x10, 0x8b, 0xda, 0xcf, 0x27, 0xf1, 0xf4, 0xfc, 0x4d, 0xf2, -0xd0, 0x7f, 0x76, 0x1e, 0xd7, 0x8e, 0x26, 0xf2, 0x58, 0x25, 0x7a, 0xf0, 0x64, 0x2f, 0x8c, 0x80, -0x3d, 0xc2, 0xca, 0x20, 0x1f, 0x57, 0xa3, 0x0a, 0x85, 0x0d, 0x52, 0x34, 0x9f, 0xb1, 0x46, 0x15, -0x3e, 0x9b, 0x25, 0x37, 0x6b, 0x01, 0x98, 0x5c, 0x2e, 0x76, 0xa8, 0x30, 0xd9, 0x80, 0x30, 0x89, -0xb7, 0xc6, 0xa9, 0xaf, 0xa7, 0x33, 0x19, 0x62, 0xb4, 0xd1, 0x88, 0xe6, 0x89, 0x5d, 0xbc, 0xa7, -0xed, 0x0d, 0xa9, 0x7d, 0x6d, 0xf3, 0x24, 0x75, 0x79, 0xbe, 0xf9, 0x32, 0xee, 0x5b, 0xc5, 0xf7, -0x8b, 0x4b, 0xa9, 0x87, 0xf1, 0x54, 0xcb, 0x7e, 0xa7, 0xda, 0x57, 0x5c, 0xbf, 0x2e, 0xac, 0x49, -0x7b, 0x56, 0x98, 0xe8, 0xae, 0x3a, 0x13, 0xb6, 0xc9, 0x84, 0x1b, 0x74, 0x2c, 0x94, 0x03, 0x6f, -0x37, 0xed, 0x9b, 0xa2, 0x56, 0x5e, 0xb4, 0x5c, 0x6c, 0x17, 0x6b, 0x24, 0x27, 0x73, 0x49, 0x66, -0x69, 0x86, 0x6d, 0x21, 0x40, 0x21, 0x53, 0xd7, 0x3f, 0x99, 0xea, 0x65, 0xfa, 0xf3, 0xf5, 0x92, -0xf2, 0xd0, 0x9a, 0xcb, 0x38, 0xca, 0x75, 0xd0, 0xc6, 0x6a, 0x7a, 0x6e, 0xee, 0x14, 0xcd, 0xb9, -0xd8, 0xb3, 0xc2, 0xd4, 0x3d, 0x0b, 0x63, 0x71, 0x59, 0xac, 0x29, 0x87, 0x9e, 0x94, 0x3a, 0x80, -0x46, 0x2d, 0x05, 0x2c, 0x6b, 0x67, 0xe5, 0x12, 0xe0, 0x5f, 0x2d, 0xa7, 0x42, 0xaa, 0x97, 0xa7, -0x1a, 0xf5, 0x4e, 0xe0, 0xfd, 0x5c, 0x45, 0x01, 0x1a, 0xa9, 0x54, 0xec, 0x64, 0x05, 0xa2, 0x0e, -0xbe, 0xca, 0x5d, 0x0f, 0x40, 0x1f, 0x84, 0x71, 0x27, 0xd7, 0xf7, 0x58, 0xc8, 0x45, 0x65, 0xe9, -0x78, 0xdd, 0x25, 0x0f, 0xeb, 0xb0, 0xd5, 0x8a, 0x9d, 0x6a, 0xdd, 0x6b, 0x53, 0xeb, 0xee, 0x73, -0x07, 0xcb, 0xf0, 0x1c, 0x1c, 0x84, 0xd8, 0xd0, 0x82, 0x48, 0xc8, 0xa6, 0x5a, 0x96, 0x2f, 0x48, -0x52, 0x7c, 0xd7, 0xae, 0x84, 0x85, 0xe4, 0xb7, 0xac, 0x5b, 0x2b, 0x60, 0x0a, 0xa8, 0xab, 0x68, -0xf6, 0x28, 0x0a, 0xee, 0xbd, 0xcb, 0xe5, 0x5a, 0x9b, 0xc5, 0x85, 0xfe, 0xcd, 0x89, 0x36, 0x73, -0x58, 0xca, 0x9a, 0xba, 0xc5, 0x9e, 0x6a, 0x5b, 0x8d, 0x58, 0xe7, 0xea, 0xa0, 0xb1, 0xdb, 0xeb, -0xab, 0x0e, 0xb1, 0x89, 0x8b, 0x49, 0x68, 0x5c, 0x08, 0x78, 0xe7, 0xee, 0x72, 0xa3, 0xd5, 0x41, -0x38, 0xc5, 0xc9, 0x71, 0x4a, 0x59, 0x62, 0x44, 0x3c, 0x7f, 0x7e, 0x44, 0xb8, 0xfe, 0x61, 0xf8, -0xa2, 0xf3, 0x94, 0xb4, 0xc2, 0x8c, 0xa6, 0xcd, 0xc8, 0xb0, 0xec, 0xa0, 0xb3, 0xa5, 0xb3, 0x28, -0xa7, 0xfc, 0x29, 0x71, 0x08, 0xbb, 0x76, 0x25, 0xca, 0x12, 0x1a, 0xac, 0x6b, 0xb8, 0x06, 0x5a, -0xb4, 0x7f, 0xf9, 0xf4, 0x61, 0xa2, 0x8b, 0x7f, 0xf6, 0xcc, 0x91, 0xb0, 0x08, 0x34, 0x11, 0x52, -0x1f, 0x0f, 0x41, 0x8b, 0x67, 0x8a, 0xee, 0xd9, 0xfd, 0xb0, 0x46, 0x34, 0x33, 0x23, 0xbc, 0xc7, -0x36, 0xef, 0x80, 0x11, 0xc3, 0x7b, 0x41, 0x8b, 0x98, 0x5d, 0xa3, 0xa9, 0xa7, 0xb2, 0xbd, 0x38, -0xc5, 0x69, 0x5b, 0x93, 0xaa, 0xa7, 0x84, 0x2c, 0x6d, 0x42, 0x58, 0x3e, 0x51, 0x44, 0x5f, 0xfd, -0xac, 0x35, 0x1c, 0x75, 0xd6, 0xab, 0xf4, 0xf2, 0x3a, 0xd5, 0x17, 0x6d, 0x24, 0xa8, 0xf9, 0xa8, -0x9a, 0xec, 0x23, 0x53, 0xc5, 0x9f, 0x38, 0xae, 0x9e, 0xd7, 0x6a, 0x41, 0x2b, 0x2e, 0xd8, 0x4b, -0xf6, 0x6e, 0x66, 0x76, 0x26, 0x56, 0xfe, 0x85, 0x57, 0x8c, 0x0c, 0xfa, 0xc7, 0xa8, 0x49, 0x4d, -0xf3, 0x9d, 0x6c, 0x9e, 0x77, 0x08, 0xd6, 0xa5, 0xbf, 0xf6, 0x6e, 0xb0, 0x3a, 0x59, 0x85, 0x77, -0xf0, 0x54, 0x0d, 0xc4, 0x33, 0x6e, 0xf6, 0x94, 0xe3, 0xda, 0xf4, 0x25, 0x6f, 0xac, 0xd2, 0x7d, -0xee, 0x87, 0xa5, 0x1d, 0xcc, 0xb4, 0xf9, 0x98, 0x68, 0x2d, 0xea, 0x8f, 0x65, 0xb1, 0x2c, 0x65, -0x8f, 0xf7, 0x87, 0x45, 0xd5, 0xca, 0x3e, 0x72, 0x09, 0xca, 0x7e, 0xef, 0x1b, 0x45, 0x35, 0xca, -0x41, 0x72, 0x65, 0x2b, 0xa3, 0xde, 0x43, 0x45, 0x1e, 0xe5, 0x0d, 0x72, 0x4d, 0x53, 0x0e, 0x57, -0x7a, 0x8b, 0xfc, 0xfc, 0x84, 0xb4, 0xc4, 0xbc, 0xdd, 0xca, 0x1e, 0xa0, 0x87, 0xf2, 0x71, 0x5d, -0xf9, 0xd6, 0x61, 0x3c, 0xef, 0x6a, 0xa3, 0x1c, 0x2d, 0x46, 0xa5, 0x05, 0xd2, 0x2c, 0x57, 0xf3, -0x93, 0x21, 0xb7, 0x36, 0xfa, 0xd6, 0x2b, 0xb8, 0xa6, 0x1a, 0x79, 0x3d, 0xbc, 0xa3, 0xeb, 0x74, -0x3b, 0x62, 0x10, 0xd6, 0xa5, 0x96, 0x14, 0x86, 0x34, 0x51, 0xb5, 0x9c, 0x75, 0x0f, 0xc6, 0x8a, -0xdc, 0x4a, 0x3f, 0x94, 0x13, 0x93, 0x04, 0x28, 0xa7, 0x05, 0xed, 0x90, 0xa6, 0x95, 0x30, 0x04, -0xf5, 0x18, 0xa6, 0xd8, 0x3a, 0x65, 0x93, 0x9a, 0x6b, 0x05, 0xe6, 0x1a, 0xd5, 0x6d, 0x8b, 0x41, -0x4e, 0x9b, 0xd5, 0xb6, 0x6d, 0x83, 0x96, 0xed, 0x50, 0x4b, 0x78, 0x96, 0x72, 0x7d, 0x4e, 0x2d, -0xe3, 0x05, 0xc8, 0x61, 0x27, 0x94, 0xb0, 0x9b, 0x4a, 0x18, 0x82, 0x12, 0xac, 0x58, 0x02, 0xde, -0xf0, 0x2b, 0xd9, 0x86, 0xb2, 0x61, 0xf0, 0x29, 0x90, 0x2a, 0x31, 0xe5, 0xe2, 0xf1, 0xb8, 0xdf, -0xbf, 0x5d, 0xb2, 0x92, 0xc5, 0x2b, 0xcd, 0x77, 0x9a, 0x7f, 0x7b, 0x51, 0xff, 0xa8, 0x07, 0x5a, -0x75, 0xaa, 0x08, 0x62, 0xe3, 0x39, 0x71, 0x70, 0x65, 0xe3, 0x1d, 0x67, 0x65, 0x42, 0x39, 0x0f, -0x39, 0x5f, 0x28, 0xc2, 0x59, 0x61, 0x54, 0xde, 0xaf, 0xfa, 0x08, 0xe2, 0x78, 0xf9, 0x69, 0x71, -0xdc, 0x05, 0x4d, 0xac, 0x57, 0x1f, 0x29, 0xef, 0xa7, 0xac, 0xe1, 0x22, 0x5a, 0xec, 0x50, 0x2a, -0x34, 0x39, 0x73, 0x29, 0x5a, 0x10, 0x10, 0x0b, 0x13, 0x63, 0x8d, 0xda, 0x9c, 0x4f, 0x8c, 0x3a, -0x3a, 0xb2, 0x5d, 0x51, 0xb6, 0x36, 0xff, 0xf4, 0x48, 0xfd, 0xf8, 0xf5, 0xfd, 0x32, 0x52, 0x13, -0xf9, 0xd2, 0x5d, 0x52, 0x16, 0x9e, 0xb7, 0xa2, 0x7a, 0xdd, 0x49, 0xa7, 0x73, 0x2c, 0x3e, 0xf0, -0x0f, 0xd9, 0xf1, 0x4c, 0x2c, 0x3f, 0xa3, 0x9b, 0xb2, 0x46, 0x3a, 0x13, 0xb3, 0x08, 0x78, 0xbf, -0xa1, 0x98, 0xa3, 0xc9, 0xb7, 0x35, 0xb8, 0x1f, 0xe7, 0x52, 0xa5, 0x19, 0x65, 0xc2, 0x30, 0x93, -0x2a, 0xec, 0xab, 0x18, 0xc9, 0xcd, 0x87, 0x7f, 0x25, 0x99, 0xea, 0xf9, 0x39, 0xad, 0x6d, 0x74, -0x02, 0xc9, 0xab, 0x6a, 0xfc, 0x46, 0x5b, 0x29, 0x80, 0x95, 0xba, 0x0a, 0x00, 0x02, 0xaf, 0x51, -0xcc, 0xdf, 0xa2, 0x25, 0x73, 0x5a, 0x7b, 0x8c, 0x9e, 0x3b, 0x2d, 0xc0, 0xad, 0xcb, 0xb3, 0xc8, -0xff, 0x12, 0x4f, 0x51, 0xf1, 0x5c, 0x63, 0xba, 0x15, 0x25, 0xb4, 0x8c, 0x87, 0x18, 0x01, 0x6d, -0x34, 0xa5, 0x94, 0x96, 0x76, 0x2a, 0xcc, 0x35, 0xb9, 0xb4, 0xda, 0x64, 0x69, 0x26, 0xf5, 0xa4, -0x98, 0xd1, 0x93, 0x4b, 0xa5, 0xa9, 0x56, 0x8f, 0xb4, 0x9d, 0x04, 0x56, 0x46, 0xb3, 0x05, 0x7a, -0x4f, 0x9b, 0x1b, 0x52, 0x2e, 0x8d, 0x2a, 0xea, 0xe9, 0xae, 0x1c, 0xad, 0x61, 0x59, 0x0b, 0xc7, -0x27, 0xd6, 0xf9, 0xb7, 0x92, 0x2f, 0xda, 0x4d, 0xb3, 0x70, 0x5f, 0xff, 0x56, 0xd4, 0xe6, 0x60, -0x03, 0x3f, 0x1c, 0x91, 0xef, 0x1f, 0x0e, 0xf1, 0x13, 0xde, 0x5c, 0xab, 0x6e, 0xae, 0xaa, 0xc9, -0xf9, 0x61, 0xd9, 0x14, 0x66, 0xb2, 0x81, 0xb8, 0x67, 0xa5, 0xe1, 0xa3, 0x06, 0xc6, 0x77, 0x82, -0x80, 0x3a, 0x47, 0xca, 0xd8, 0x0e, 0x98, 0x81, 0xac, 0x79, 0x3a, 0x01, 0x6b, 0xce, 0x03, 0x9c, -0x19, 0x36, 0x27, 0x2d, 0x57, 0x2a, 0xf3, 0xe9, 0x8e, 0x7c, 0x19, 0xb7, 0x2c, 0x77, 0xfa, 0x89, -0x22, 0x0f, 0x60, 0x82, 0x6a, 0x17, 0x8c, 0xea, 0x33, 0x47, 0x10, 0x9b, 0xfe, 0x8f, 0x4a, 0xd9, -0x8d, 0x54, 0x95, 0x54, 0x02, 0xbf, 0x19, 0x09, 0x0d, 0xee, 0xb1, 0xa0, 0x05, 0x68, 0x47, 0x27, -0xe0, 0x57, 0xc0, 0x57, 0xfd, 0x05, 0x80, 0xff, 0xb6, 0x4d, 0x15, 0xab, 0xdb, 0x68, 0xf7, 0xbb, -0x96, 0xf9, 0xb6, 0x07, 0x0f, 0x8a, 0xd5, 0x55, 0xef, 0x67, 0xbb, 0x80, 0xba, 0xd7, 0xca, 0xcd, -0xc3, 0x74, 0xb4, 0x0b, 0x35, 0x8c, 0x67, 0x3f, 0xd1, 0x7e, 0x5f, 0x11, 0xd4, 0x2f, 0xbe, 0xb9, -0x9f, 0x55, 0x42, 0x1d, 0xcf, 0x01, 0x95, 0x23, 0x76, 0xc7, 0x37, 0x3b, 0x2c, 0xb5, 0x08, 0x95, -0xea, 0x7d, 0x8f, 0xa1, 0xb8, 0xa6, 0x0d, 0x18, 0xb5, 0xca, 0xdb, 0xea, 0xa4, 0xb9, 0x48, 0x23, -0x5f, 0x7b, 0x08, 0x69, 0xbc, 0xfa, 0xf1, 0x6b, 0xc0, 0x4b, 0x24, 0x61, 0x39, 0xfe, 0xac, 0x06, -0x57, 0x98, 0x0f, 0x50, 0x8a, 0x50, 0x37, 0xff, 0x36, 0x9b, 0x3f, 0x69, 0x61, 0x4c, 0x29, 0x01, -0x1e, 0x09, 0xb0, 0x7c, 0xb6, 0x4b, 0xcc, 0x0b, 0x39, 0x45, 0xa0, 0xe0, 0xc4, 0x98, 0xb8, 0x6c, -0x36, 0xbc, 0x99, 0x9e, 0xe6, 0x8a, 0x29, 0xfe, 0x6c, 0x51, 0x0f, 0x33, 0xc6, 0x9f, 0xb3, 0xc3, -0xea, 0x49, 0x27, 0x45, 0x9f, 0x93, 0xf7, 0x02, 0x0c, 0xdb, 0x7d, 0xff, 0x8c, 0xe7, 0x62, 0x84, -0xf5, 0xeb, 0x58, 0x05, 0xd4, 0xf5, 0x0c, 0xd4, 0x35, 0x32, 0x1d, 0xc6, 0x82, 0xac, 0x84, 0xd2, -0x19, 0xf9, 0x5d, 0xb0, 0xfa, 0x9e, 0xb1, 0x79, 0x60, 0xd5, 0x75, 0xe2, 0x39, 0x26, 0xa0, 0xc4, -0xf3, 0x6d, 0x0d, 0x49, 0xbd, 0xd5, 0x5a, 0x08, 0xf8, 0x97, 0x0e, 0xb3, 0x2a, 0x5c, 0x21, 0xfe, -0x54, 0x0d, 0x54, 0x61, 0x58, 0x97, 0xa2, 0xdb, 0x3a, 0x17, 0x66, 0x70, 0x0d, 0x60, 0xac, 0x67, -0x8b, 0x1a, 0x10, 0x4b, 0x20, 0x34, 0x28, 0x2f, 0x68, 0x29, 0xab, 0x2e, 0x0f, 0x0b, 0x30, 0x87, -0x77, 0x92, 0xbf, 0x5e, 0xd9, 0x0d, 0x6b, 0x64, 0x27, 0xf4, 0x60, 0x07, 0x2b, 0x51, 0xf6, 0x00, -0x74, 0xed, 0x93, 0x18, 0xdd, 0xfa, 0x2c, 0x84, 0x15, 0x7b, 0x21, 0xd7, 0xeb, 0x4f, 0x14, 0x14, -0x23, 0x78, 0x9b, 0x61, 0xab, 0xf6, 0x3f, 0x4d, 0x7b, 0x89, 0x79, 0xf5, 0xd0, 0x4f, 0xeb, 0x9f, -0x3d, 0xfb, 0x4d, 0xa4, 0x37, 0xbf, 0xb5, 0x03, 0x57, 0xd1, 0xff, 0xf1, 0x9a, 0x9d, 0xd9, 0x74, -0x51, 0xa3, 0xda, 0x1e, 0xbf, 0x1d, 0x6f, 0x89, 0xce, 0x4b, 0xb4, 0xaf, 0xcb, 0x9e, 0x58, 0x7b, -0xd1, 0x82, 0xd7, 0x2f, 0x46, 0xd7, 0xb2, 0xe8, 0xa9, 0x53, 0xdf, 0x74, 0x52, 0xfa, 0x42, 0x4a, -0x2f, 0xfb, 0xd4, 0xba, 0xeb, 0x00, 0xcf, 0x54, 0x13, 0x26, 0xc2, 0x3a, 0x9e, 0x43, 0x2e, 0x85, -0x6a, 0x48, 0xd8, 0x48, 0x22, 0x39, 0x0c, 0xd5, 0xb0, 0x26, 0x51, 0x43, 0x4b, 0xa2, 0x86, 0xb5, -0xbc, 0x86, 0x62, 0x35, 0x8e, 0x24, 0xea, 0xdb, 0x46, 0x38, 0x77, 0xb0, 0xe0, 0x0b, 0x78, 0x96, -0xb2, 0x62, 0x35, 0x72, 0x8c, 0x68, 0xdf, 0x25, 0x09, 0xc9, 0xd7, 0x9b, 0x9d, 0xa4, 0x3d, 0x07, -0xea, 0x66, 0xe6, 0x35, 0xb3, 0xb9, 0x98, 0xde, 0xae, 0x77, 0x50, 0x3c, 0x5e, 0x7b, 0xd4, 0x27, -0x13, 0xd4, 0xb8, 0x64, 0xbd, 0xff, 0xc0, 0xa7, 0xcf, 0xc2, 0xca, 0x9f, 0xb0, 0xb6, 0x54, 0xe4, -0x8e, 0x6f, 0xa3, 0x5c, 0x9d, 0xe9, 0xf2, 0x1c, 0xf0, 0xdf, 0x84, 0x96, 0x70, 0x22, 0x42, 0x54, -0xcd, 0x47, 0x29, 0x28, 0x21, 0x1d, 0x4c, 0x45, 0x5d, 0x4c, 0x8c, 0xbf, 0xe0, 0x79, 0x39, 0xbe, -0xb3, 0xc8, 0x17, 0xdf, 0x8d, 0x35, 0x85, 0x75, 0xbd, 0x9e, 0x99, 0x8b, 0xea, 0xe2, 0x3b, 0x8a, -0x6a, 0xe2, 0xc3, 0xae, 0x19, 0x54, 0x87, 0xe2, 0xf8, 0x26, 0xaa, 0x85, 0x73, 0x9d, 0x50, 0x38, -0x4d, 0xad, 0x49, 0xe3, 0x7c, 0xbc, 0xab, 0xbb, 0xc9, 0xa3, 0x27, 0xdb, 0x3d, 0xdd, 0xf1, 0x61, -0x5b, 0x77, 0x7c, 0x9b, 0xa7, 0x74, 0x07, 0xb3, 0x19, 0x81, 0x2b, 0x4e, 0xab, 0xf5, 0xc4, 0x53, -0xc0, 0x13, 0x2c, 0x4f, 0xc0, 0xc3, 0xfe, 0x22, 0x88, 0x8d, 0x2b, 0x22, 0x41, 0xc4, 0x28, 0xea, -0x55, 0xc3, 0x15, 0x91, 0xfa, 0xf8, 0x70, 0xa2, 0x8f, 0x93, 0xab, 0xe2, 0x7e, 0xde, 0xcb, 0xfe, -0x03, 0x7f, 0x3c, 0x39, 0xa9, 0x97, 0x0d, 0x30, 0x77, 0xce, 0x61, 0x2f, 0x07, 0x86, 0x1c, 0x4d, -0xe2, 0xc2, 0xfd, 0x9b, 0xdb, 0x19, 0xf0, 0x1f, 0xb5, 0x30, 0xde, 0x3e, 0x67, 0x71, 0x7c, 0xd8, -0x51, 0xe7, 0x2a, 0x8e, 0xef, 0x88, 0x08, 0x76, 0xb5, 0xce, 0x4a, 0x9e, 0xc6, 0x65, 0xc5, 0x37, -0x41, 0x6e, 0x72, 0xc2, 0x8e, 0x30, 0xf4, 0xe4, 0x1f, 0x03, 0x38, 0x97, 0x9c, 0x30, 0x97, 0xe4, -0x52, 0x9a, 0x3b, 0xd3, 0x61, 0xee, 0x74, 0xe1, 0xdc, 0x11, 0xeb, 0x00, 0xeb, 0xd1, 0xec, 0x09, -0x59, 0xa7, 0x9a, 0x9d, 0xce, 0x66, 0xdf, 0xb6, 0xe0, 0x51, 0x3e, 0xea, 0x90, 0xcf, 0x0b, 0xd0, -0x0f, 0x9b, 0xc5, 0x3b, 0xe8, 0x96, 0xd3, 0x8e, 0xe4, 0x09, 0x1d, 0x6a, 0xc9, 0x55, 0xb1, 0x0e, -0xe8, 0x47, 0x98, 0xf1, 0x7f, 0xec, 0xc0, 0x9b, 0xe1, 0x74, 0xa7, 0x4d, 0x56, 0x31, 0x5d, 0x19, -0xd9, 0x32, 0x05, 0xfc, 0x5a, 0x01, 0x6b, 0x13, 0xf0, 0xdf, 0x63, 0x8f, 0x15, 0x46, 0x95, 0xb5, -0x4a, 0x58, 0x79, 0xfa, 0xb0, 0x1c, 0x5d, 0x78, 0x79, 0x98, 0xfd, 0xfc, 0xc7, 0x3f, 0x3f, 0x8c, -0x67, 0x6f, 0x7f, 0x3e, 0x81, 0x61, 0xb9, 0x77, 0x9a, 0x05, 0x96, 0x15, 0x72, 0xad, 0xc8, 0x81, -0x37, 0xde, 0xfc, 0x14, 0x98, 0x2e, 0x28, 0xca, 0xf0, 0x56, 0x06, 0x43, 0x16, 0xf8, 0xbf, 0x21, -0x98, 0x2b, 0xe7, 0x04, 0x62, 0x98, 0x87, 0x6c, 0x0c, 0x6c, 0x88, 0x2a, 0xb2, 0x2e, 0x30, 0x58, -0x7b, 0x11, 0x38, 0xac, 0xbb, 0xf6, 0xbe, 0x04, 0xfc, 0xf1, 0x2c, 0xa0, 0x7f, 0x67, 0xfc, 0x66, -0x97, 0xce, 0xcd, 0xbe, 0x10, 0xf3, 0xc0, 0xf7, 0xfd, 0x6f, 0x0e, 0x7c, 0xf0, 0x64, 0xac, 0xda, -0xec, 0x06, 0x4a, 0xd7, 0x8c, 0x96, 0xda, 0x7c, 0xb9, 0xc1, 0x61, 0x8f, 0x5b, 0x9e, 0x09, 0xdc, -0x8e, 0x9e, 0xec, 0x05, 0x87, 0xf3, 0xc9, 0xbe, 0xa5, 0xa2, 0x10, 0x05, 0xde, 0x40, 0x36, 0x4f, -0x39, 0x06, 0x6c, 0x44, 0x6a, 0xca, 0x51, 0xac, 0x52, 0x53, 0x80, 0xfb, 0xc5, 0x6a, 0xa4, 0xa9, -0x38, 0x3f, 0x69, 0xc8, 0x05, 0x4e, 0x88, 0x28, 0x4e, 0x5b, 0x8d, 0xd6, 0x67, 0xa8, 0x01, 0x2c, -0x7b, 0x42, 0xac, 0x56, 0xe5, 0x2d, 0xb5, 0x3f, 0x1f, 0xad, 0xfe, 0x20, 0xdb, 0x75, 0x77, 0x7d, -0x76, 0xb9, 0xe7, 0xa5, 0xec, 0xd2, 0xaa, 0x0f, 0xb2, 0x4b, 0xef, 0xf6, 0x82, 0x1b, 0x28, 0xcb, -0x6f, 0x5f, 0x54, 0x65, 0x2b, 0x02, 0x70, 0x9c, 0x88, 0x23, 0xf4, 0xae, 0x2e, 0x5a, 0x33, 0xce, -0xd1, 0x2d, 0x60, 0xa3, 0xe7, 0x25, 0xa6, 0xf7, 0x6c, 0x95, 0x17, 0xd8, 0x58, 0x34, 0x0e, 0x21, -0x38, 0xca, 0xbb, 0x51, 0x42, 0x09, 0xf9, 0x17, 0x26, 0x57, 0x3b, 0xd2, 0xe4, 0x90, 0x6a, 0x45, -0x94, 0x65, 0xe3, 0x59, 0xdc, 0x84, 0x7e, 0x03, 0xd1, 0x8a, 0x74, 0x04, 0x1f, 0x23, 0x80, 0x36, -0xe0, 0x4b, 0xfc, 0x07, 0xfe, 0xd0, 0xa6, 0xca, 0x08, 0x2d, 0xb0, 0x9e, 0x33, 0xf6, 0xac, 0xab, -0x99, 0xc6, 0x74, 0x95, 0xe2, 0x82, 0xb8, 0xa5, 0xf4, 0xfd, 0x98, 0x52, 0x1e, 0x16, 0x80, 0x06, -0xaa, 0x20, 0xd7, 0x93, 0x4a, 0x25, 0x7c, 0xbb, 0xe9, 0x7b, 0x58, 0xa9, 0x81, 0x6f, 0x2f, 0x7d, -0x3f, 0xae, 0x34, 0xc0, 0x77, 0x23, 0x7d, 0x7f, 0x53, 0x81, 0xd9, 0x08, 0xf4, 0x1c, 0x7e, 0x6f, -0x05, 0x9a, 0xce, 0x0d, 0xf4, 0x1c, 0x7e, 0x3f, 0xaa, 0xb4, 0x41, 0xae, 0x1d, 0x11, 0x5d, 0x51, -0x95, 0xd2, 0x25, 0xd6, 0xc0, 0x0c, 0xd0, 0x2b, 0x61, 0xa0, 0xbd, 0x3f, 0x52, 0x50, 0x1f, 0xfc, -0xf3, 0x22, 0x4a, 0x08, 0x8d, 0x00, 0x1d, 0x25, 0x96, 0xb9, 0x6c, 0x56, 0x80, 0xdd, 0xe1, 0x66, -0x7f, 0x6d, 0xef, 0x67, 0x6e, 0xd4, 0x02, 0x25, 0x0c, 0x53, 0x0e, 0x6d, 0xca, 0xfe, 0x88, 0x1b, -0x52, 0x1f, 0x24, 0x57, 0x3b, 0xcc, 0xab, 0x2a, 0xa2, 0x33, 0x01, 0xe9, 0xe3, 0x5d, 0x3c, 0xd4, -0x92, 0xa7, 0x1c, 0x25, 0x77, 0x08, 0xef, 0xe3, 0xa1, 0xf5, 0x71, 0xe5, 0x54, 0x58, 0x07, 0x35, -0x38, 0xa3, 0x96, 0x77, 0x4e, 0x6c, 0x82, 0x1e, 0xb4, 0xe0, 0x1e, 0x3a, 0xd7, 0xdb, 0x95, 0xf5, -0xbe, 0xb8, 0x8a, 0x79, 0x68, 0xbd, 0xb6, 0x50, 0xcc, 0xfd, 0xb6, 0x9a, 0x22, 0x18, 0x01, 0xe5, -0xa0, 0xac, 0x7b, 0xfa, 0xb0, 0xd6, 0x1f, 0xf1, 0x46, 0xc0, 0x1f, 0xfc, 0x3b, 0x12, 0x6f, 0x09, -0xb7, 0x01, 0xb6, 0x59, 0x4e, 0xae, 0xbe, 0xb8, 0x0c, 0xdf, 0x6d, 0xf4, 0x1d, 0x8d, 0x77, 0x44, -0x94, 0xa2, 0xaa, 0x78, 0x17, 0xb9, 0xd6, 0xc4, 0xc3, 0xf0, 0x1d, 0xe5, 0x7d, 0x18, 0x5f, 0x07, -0xe9, 0xfb, 0x79, 0x0f, 0xc6, 0x63, 0x48, 0x7b, 0x40, 0xaa, 0x21, 0x72, 0xf7, 0xc4, 0x87, 0x8b, -0x9a, 0xe2, 0x9b, 0x78, 0xcf, 0xc5, 0x37, 0x23, 0x7e, 0xa3, 0xef, 0x01, 0xc0, 0x4e, 0x6e, 0x98, -0x9f, 0xf8, 0x3d, 0x18, 0x7f, 0x0e, 0xbe, 0x5f, 0xa0, 0xef, 0x0d, 0x80, 0xc7, 0xdc, 0xf1, 0xdd, -0xf4, 0x3d, 0x14, 0xdf, 0x03, 0xdf, 0xfb, 0xf8, 0x08, 0xc4, 0xf7, 0xc3, 0x37, 0xef, 0x99, 0xad, -0xf1, 0x51, 0xf8, 0xe6, 0x3d, 0xb3, 0x39, 0x7e, 0x18, 0xbe, 0x79, 0xaf, 0x3c, 0x1a, 0x3f, 0x0e, -0xf5, 0x38, 0x85, 0x23, 0x10, 0x3f, 0x03, 0xfd, 0xbe, 0xbf, 0xa8, 0x3e, 0x7e, 0x0e, 0xe6, 0x79, -0x23, 0xf6, 0x3f, 0xf6, 0x7e, 0x28, 0x47, 0x74, 0xdf, 0xd1, 0xcf, 0x2c, 0xec, 0x4b, 0xf4, 0xbf, -0x42, 0xf4, 0xa9, 0xbd, 0xf5, 0x22, 0x8e, 0x44, 0x96, 0xce, 0xf7, 0x12, 0x9e, 0x50, 0xd4, 0xed, -0x23, 0x68, 0xd5, 0x4d, 0x86, 0x56, 0xb4, 0x53, 0x1f, 0x11, 0x36, 0xbc, 0x04, 0x5c, 0x38, 0xd0, -0x90, 0xb3, 0xdd, 0x6c, 0x19, 0xbe, 0x45, 0x93, 0xab, 0x19, 0x6f, 0x12, 0x60, 0x5f, 0x02, 0xb5, -0x2b, 0x28, 0xe7, 0x01, 0x1b, 0x16, 0x28, 0x17, 0x00, 0x16, 0xde, 0x97, 0x72, 0x00, 0x1a, 0xcf, -0x13, 0x34, 0x3a, 0xfd, 0x07, 0xae, 0x9c, 0x46, 0x69, 0x36, 0xa6, 0xb1, 0xb9, 0xc3, 0xa8, 0xcb, -0xf2, 0x34, 0xf5, 0x7f, 0x16, 0xcb, 0x8f, 0x9f, 0x47, 0x18, 0x8c, 0x03, 0x75, 0x1c, 0xd3, 0x33, -0x21, 0xfe, 0x7e, 0x51, 0x6d, 0xfc, 0x43, 0xfa, 0xd6, 0xc5, 0x2f, 0xe3, 0x69, 0xeb, 0xc7, 0x66, -0xc6, 0xaf, 0x12, 0x95, 0x2f, 0xc4, 0x3f, 0x8d, 0xe8, 0xa1, 0x75, 0x13, 0xe4, 0x32, 0x29, 0x0c, -0x46, 0x54, 0x4f, 0xdf, 0x3a, 0xc5, 0x08, 0xdf, 0x66, 0xfa, 0x9e, 0xa6, 0x58, 0xe0, 0x5b, 0xe3, -0x0b, 0xf2, 0xe1, 0xbb, 0x80, 0xbe, 0xa7, 0x2b, 0x22, 0xd4, 0x0a, 0xa9, 0x3f, 0x27, 0xd6, 0x2c, -0x7e, 0x9e, 0xe8, 0xc6, 0x6b, 0x78, 0xe6, 0xff, 0xca, 0x7c, 0x94, 0xc2, 0xdf, 0x50, 0x37, 0xa8, -0x0d, 0x70, 0x20, 0xb5, 0xca, 0x3a, 0x5e, 0x1b, 0xa5, 0x9f, 0x6a, 0x63, 0x52, 0x62, 0xbc, 0x36, -0xca, 0x10, 0xc1, 0xd4, 0xb0, 0x5a, 0x9b, 0x4d, 0x74, 0xb3, 0x74, 0xb3, 0x5a, 0x9f, 0x6d, 0xf0, -0xbd, 0x43, 0xad, 0xcf, 0xb3, 0xf0, 0xfd, 0x9c, 0x5a, 0x9f, 0x17, 0xe0, 0x7b, 0xa7, 0x5a, 0x9f, -0xdd, 0x50, 0x17, 0xa2, 0x15, 0xc8, 0x72, 0xd6, 0x53, 0xd0, 0x5b, 0xd1, 0x64, 0x9d, 0x7e, 0xf7, -0x22, 0xee, 0x1b, 0xa4, 0xd6, 0xa9, 0x88, 0x78, 0x74, 0x80, 0xe1, 0x54, 0x09, 0x01, 0x8c, 0xb3, -0x86, 0x93, 0xaa, 0x08, 0xe7, 0x6e, 0x7d, 0x0b, 0x46, 0x0c, 0xf9, 0xd3, 0xe3, 0xea, 0xae, 0x84, -0x05, 0xf5, 0xdb, 0xa1, 0x1f, 0x62, 0x72, 0x1a, 0x33, 0x98, 0x85, 0x90, 0xee, 0x53, 0xd2, 0x5c, -0xc7, 0x30, 0xc4, 0xbe, 0x98, 0xa4, 0xf9, 0x66, 0xb4, 0x54, 0xa0, 0xbc, 0x2e, 0xd6, 0xa8, 0x39, -0xf4, 0x53, 0xe9, 0xe0, 0x8f, 0x63, 0x1c, 0xff, 0xd4, 0x86, 0x12, 0x6e, 0xb3, 0x8a, 0xa3, 0x4a, -0xf0, 0xc6, 0x27, 0xd7, 0x66, 0x31, 0xae, 0x97, 0x4d, 0x30, 0xc6, 0x24, 0xf5, 0xbe, 0xfc, 0x0e, -0xe2, 0x22, 0xa8, 0x69, 0x35, 0xf4, 0x1d, 0x6a, 0x96, 0x31, 0x96, 0x75, 0x30, 0x63, 0x2e, 0x72, -0xa1, 0x03, 0xf9, 0xc8, 0x91, 0x0d, 0x95, 0xd6, 0x54, 0x5d, 0xb6, 0xb0, 0xad, 0x87, 0x8b, 0xea, -0x95, 0xcb, 0x84, 0xaf, 0x3e, 0x44, 0x0e, 0x0a, 0x52, 0x8e, 0xe1, 0xdd, 0x01, 0x80, 0xb8, 0x05, -0xcf, 0x1c, 0x21, 0x98, 0xb2, 0xf1, 0xdc, 0xff, 0x20, 0x73, 0x1d, 0x24, 0xec, 0xa9, 0xe4, 0xe9, -0x7f, 0x45, 0x6f, 0xf3, 0xa5, 0x52, 0x91, 0xf6, 0xd5, 0xd9, 0x2e, 0xdf, 0x96, 0xe0, 0x3b, 0x28, -0x51, 0x0f, 0x99, 0x24, 0x2b, 0xd5, 0x64, 0x08, 0x6a, 0xb2, 0x5a, 0xd5, 0xa3, 0x66, 0xa0, 0x1c, -0xf7, 0x8b, 0x77, 0xa6, 0x4a, 0xe8, 0x2f, 0x8b, 0xaa, 0xd4, 0xde, 0x9c, 0xa8, 0x3d, 0xf8, 0xd0, -0xda, 0xa9, 0x83, 0x35, 0xfb, 0x65, 0xe5, 0xa0, 0xad, 0x1a, 0xea, 0x93, 0x7f, 0x63, 0x4f, 0xaf, -0x67, 0xa4, 0xcf, 0xac, 0x32, 0x5e, 0xaa, 0x9e, 0x54, 0xda, 0xad, 0xd9, 0x54, 0xb5, 0xab, 0xda, -0x7e, 0xc4, 0x5a, 0xd1, 0x42, 0xd2, 0x2d, 0x98, 0x51, 0xc2, 0xa1, 0x15, 0xb3, 0xb8, 0xf4, 0x3b, -0xd4, 0x40, 0x6f, 0xc0, 0xed, 0x42, 0x33, 0x97, 0x8b, 0x07, 0x59, 0xf6, 0xeb, 0xb2, 0xcd, 0x1c, -0x43, 0x19, 0x10, 0xe0, 0xab, 0x02, 0xfa, 0xca, 0x02, 0xec, 0xce, 0xe8, 0x0b, 0xc3, 0xbf, 0x23, -0x33, 0xdd, 0xd7, 0xa1, 0x2f, 0x74, 0x78, 0x53, 0xe2, 0x4f, 0xcd, 0x5c, 0xea, 0x25, 0xb3, 0xec, -0x5d, 0x8e, 0x42, 0xa2, 0x03, 0x0b, 0x61, 0xfd, 0xf1, 0xfc, 0x7c, 0x94, 0xc6, 0xaa, 0x9a, 0x56, -0xb6, 0x23, 0x34, 0x96, 0xd5, 0xaa, 0xb4, 0xed, 0x88, 0xb1, 0x08, 0x77, 0x57, 0x43, 0xfd, 0x29, -0x36, 0x73, 0x38, 0x14, 0x2c, 0x83, 0x35, 0xce, 0x2a, 0xdb, 0x45, 0x17, 0x73, 0xed, 0x81, 0xb9, -0x1f, 0x4c, 0xa1, 0x90, 0xa1, 0x87, 0x1b, 0x92, 0x32, 0x3c, 0x67, 0x8d, 0xd3, 0x1a, 0x3c, 0x43, -0x72, 0x85, 0x9d, 0x7c, 0xde, 0x87, 0x99, 0x5a, 0xd6, 0xaa, 0x44, 0x8a, 0xb5, 0xf2, 0xcc, 0xf4, -0xf4, 0xa9, 0x23, 0xe4, 0xc4, 0x11, 0xda, 0x06, 0x23, 0x94, 0xac, 0xe5, 0x7e, 0x92, 0x1e, 0xd3, -0xd8, 0x7f, 0x7c, 0x46, 0xbc, 0xb3, 0x71, 0x24, 0x75, 0x6c, 0x3e, 0x1e, 0xd2, 0x76, 0x54, 0x6c, -0xd5, 0xc0, 0x63, 0x70, 0xbf, 0x41, 0xe0, 0xef, 0x06, 0x43, 0x4c, 0xff, 0x0a, 0x60, 0x75, 0x55, -0xea, 0x6d, 0xab, 0x4d, 0xf0, 0xae, 0xcd, 0xbc, 0x2f, 0x44, 0x0f, 0xf0, 0xc4, 0xb5, 0x98, 0x16, -0x7b, 0x10, 0x28, 0x0b, 0x13, 0xbd, 0xb3, 0x82, 0x33, 0x65, 0x84, 0x65, 0xa3, 0x6d, 0xb3, 0x6c, -0x72, 0xd4, 0xd2, 0xd7, 0x4e, 0x66, 0xc4, 0xfb, 0x43, 0x7a, 0x99, 0x72, 0x6d, 0x99, 0x2a, 0x57, -0x92, 0x31, 0xbb, 0x9d, 0xab, 0x52, 0x7b, 0x1a, 0xf5, 0x0e, 0xdd, 0x24, 0xae, 0x2e, 0xca, 0x80, -0x3a, 0xcf, 0x4f, 0xa7, 0xb5, 0x52, 0xea, 0x48, 0xfc, 0xb5, 0x58, 0x4b, 0xab, 0xd5, 0xa7, 0x6b, -0x8f, 0x9e, 0xfe, 0x66, 0xed, 0xf8, 0x47, 0x1f, 0xaf, 0x1b, 0x3d, 0xf3, 0x4d, 0x79, 0x05, 0xc2, -0x0b, 0x4a, 0x0f, 0x42, 0x79, 0x2b, 0x4c, 0xf4, 0xa5, 0x6b, 0xf7, 0xcb, 0x3e, 0xfa, 0xca, 0x0e, -0xd6, 0xc8, 0xb3, 0xb8, 0x74, 0x06, 0xb0, 0xc9, 0x51, 0x4a, 0x0d, 0xb8, 0x5e, 0x39, 0x25, 0x31, -0xe2, 0xf3, 0x2d, 0x72, 0x41, 0x22, 0x74, 0x94, 0x42, 0xe9, 0xfe, 0x3a, 0x5a, 0x42, 0x45, 0x29, -0x06, 0xdf, 0xc3, 0x8e, 0x0a, 0x78, 0xcf, 0x49, 0xc5, 0xe6, 0xc7, 0x45, 0xa4, 0x3d, 0x36, 0x61, -0xbb, 0xb3, 0x56, 0xd8, 0x6a, 0x8d, 0x73, 0xa1, 0xdf, 0x6f, 0x0f, 0xb2, 0xac, 0x65, 0x93, 0xe7, -0xa0, 0xcc, 0xb2, 0x3c, 0xe9, 0xad, 0x4f, 0xcc, 0xee, 0xcb, 0xe9, 0xb3, 0x3b, 0x0f, 0x67, 0xf7, -0x86, 0xd2, 0xea, 0xc4, 0xec, 0xe6, 0xd4, 0xc8, 0x65, 0x3e, 0xc2, 0x1f, 0x19, 0x39, 0xfc, 0x7e, -0x54, 0x87, 0xa9, 0x08, 0x9f, 0x7c, 0x27, 0xf1, 0x55, 0x31, 0xb9, 0x54, 0x82, 0x30, 0x81, 0xc2, -0xb6, 0xf0, 0xd9, 0xaf, 0x3b, 0xe0, 0x48, 0xd4, 0xc2, 0xe9, 0xf9, 0xc5, 0x28, 0x40, 0xaf, 0x9e, -0x24, 0xa1, 0xf7, 0xef, 0x45, 0x89, 0xed, 0xba, 0xf6, 0x3a, 0xa0, 0x00, 0x4b, 0xf0, 0x9b, 0x1d, -0x69, 0x17, 0xe1, 0xfb, 0x2e, 0xf8, 0xee, 0x81, 0x77, 0x31, 0xf9, 0xed, 0xe6, 0x3a, 0x21, 0x80, -0x63, 0xfc, 0x36, 0x60, 0x92, 0xd7, 0x23, 0x7f, 0x43, 0xa9, 0xca, 0xda, 0x99, 0x30, 0x0f, 0x42, -0x2a, 0x29, 0x04, 0xa5, 0xcc, 0xf9, 0x91, 0x6a, 0x0a, 0xf1, 0xb6, 0xe7, 0x82, 0x7f, 0x15, 0x7d, -0xbb, 0x20, 0x56, 0x29, 0x84, 0x15, 0x44, 0x16, 0x92, 0xbb, 0x12, 0x42, 0xbc, 0xf4, 0x35, 0x1f, -0xbe, 0xea, 0x28, 0x6d, 0x0d, 0x86, 0x23, 0xa7, 0x81, 0xe1, 0xae, 0xd5, 0x2a, 0x56, 0x72, 0xd7, -0x7f, 0xc8, 0x5c, 0x36, 0x66, 0x37, 0xab, 0xbc, 0xc4, 0x6a, 0x8d, 0x03, 0x0a, 0xe5, 0xc0, 0xb7, -0xd5, 0xb6, 0xd8, 0xf3, 0x4f, 0x62, 0x03, 0xed, 0x72, 0x03, 0xb4, 0x62, 0xef, 0x7c, 0xf0, 0x9c, -0x3c, 0x73, 0xae, 0x4a, 0x33, 0xca, 0x46, 0xfa, 0xea, 0x67, 0x22, 0xef, 0xb9, 0xcb, 0x2d, 0x28, -0xb5, 0x66, 0xef, 0xd8, 0xef, 0x04, 0x7e, 0xfc, 0xc2, 0x14, 0xfc, 0x38, 0xc4, 0xe2, 0x3b, 0x56, -0x1f, 0x1c, 0xc5, 0x9a, 0xa8, 0xb5, 0x18, 0xb4, 0xbb, 0x71, 0xbf, 0xff, 0x71, 0x7e, 0x7f, 0x8f, -0xfb, 0xd9, 0x6c, 0x26, 0x2d, 0x54, 0xbc, 0x53, 0xa5, 0xf3, 0xcf, 0x00, 0xc4, 0x9c, 0x83, 0xdf, -0x79, 0x1a, 0xb5, 0x33, 0x6a, 0x4e, 0x83, 0x68, 0x8b, 0x5b, 0xee, 0x40, 0x49, 0x88, 0x20, 0xc8, -0x7e, 0x7a, 0xeb, 0xe4, 0x3a, 0x7a, 0x67, 0xc9, 0x0b, 0xe8, 0xad, 0x97, 0xe7, 0xd1, 0x3b, 0x5b, -0x2e, 0xa1, 0xb7, 0x41, 0x76, 0xd0, 0x7b, 0x9a, 0x3c, 0x8b, 0xde, 0x46, 0x39, 0x8f, 0xde, 0xd3, -0xe5, 0x1c, 0x7a, 0x9b, 0x64, 0x03, 0xbd, 0x67, 0xa8, 0x10, 0xe1, 0x20, 0x7c, 0x66, 0x00, 0x4a, -0x5d, 0x17, 0x16, 0xca, 0x99, 0xf7, 0x10, 0xb4, 0xf2, 0x58, 0x12, 0xb7, 0xe1, 0x68, 0xfb, 0x76, -0x33, 0x67, 0x70, 0x1d, 0x51, 0xaa, 0xb4, 0x66, 0x46, 0x12, 0x5c, 0xba, 0xe2, 0x8c, 0x98, 0xde, -0x05, 0x9a, 0x49, 0xd9, 0x07, 0x63, 0xa1, 0xbf, 0xc1, 0x77, 0xbf, 0x47, 0xb8, 0xc1, 0xef, 0xe0, -0xc2, 0x0f, 0xf5, 0x2e, 0x5c, 0x2b, 0x1f, 0x9f, 0x06, 0x38, 0x7d, 0x77, 0xf2, 0x4c, 0xc8, 0xf5, -0x4f, 0x90, 0x77, 0x2b, 0xeb, 0x57, 0x14, 0xfb, 0x22, 0x47, 0x35, 0x4a, 0x8a, 0xe3, 0x1f, 0x02, -0x7e, 0x80, 0x39, 0x8d, 0x36, 0xca, 0x01, 0x4b, 0x3a, 0x03, 0x31, 0x4e, 0x71, 0x2f, 0xb0, 0x36, -0x8e, 0xcc, 0x75, 0x33, 0xa7, 0xcc, 0x39, 0x84, 0x82, 0x9b, 0x61, 0x04, 0x99, 0x5d, 0x1b, 0x25, -0xa9, 0x34, 0xca, 0xf1, 0x36, 0x71, 0x3e, 0x29, 0x55, 0x2a, 0xfd, 0xf8, 0x97, 0x9f, 0x39, 0x82, -0xfc, 0x6e, 0x76, 0xc5, 0xcd, 0x25, 0xd3, 0xdf, 0x7d, 0x76, 0xb2, 0x64, 0x9a, 0x5b, 0x69, 0x2a, -0x9d, 0x8f, 0xf6, 0x98, 0xec, 0xbd, 0xac, 0xbc, 0x4c, 0x62, 0xf3, 0x4b, 0x25, 0xb6, 0xc0, 0x01, -0x1c, 0x4b, 0x94, 0xa1, 0xb4, 0xbf, 0xfa, 0x8a, 0x93, 0xed, 0xed, 0x04, 0x8c, 0x6e, 0xde, 0xd3, -0xc9, 0x4c, 0xcb, 0x54, 0xad, 0x27, 0x51, 0xe1, 0xde, 0x2a, 0x66, 0xbc, 0xd7, 0xcd, 0x4c, 0x95, -0xab, 0x98, 0xb1, 0x02, 0x68, 0xbb, 0xd2, 0xaa, 0xcd, 0xc7, 0xbe, 0x77, 0xb4, 0x2b, 0x77, 0x8b, -0xbf, 0x5c, 0xa8, 0xf3, 0xac, 0xbd, 0x7d, 0x6c, 0xc5, 0x21, 0x0f, 0xc4, 0xd1, 0x47, 0x85, 0xb2, -0x42, 0x88, 0xd5, 0xc9, 0x0c, 0xa5, 0xee, 0xcd, 0x3f, 0xf8, 0xde, 0xb1, 0x2e, 0xeb, 0xe6, 0xaa, -0x32, 0x56, 0x57, 0x15, 0xbd, 0xfd, 0x42, 0xeb, 0x68, 0x15, 0xe4, 0x60, 0xb0, 0x02, 0x95, 0x2b, -0x3e, 0x40, 0x6b, 0xeb, 0x3c, 0x57, 0x93, 0x44, 0xb2, 0x55, 0x96, 0x3f, 0x6f, 0x15, 0x33, 0x6c, -0xff, 0x2d, 0xb4, 0x7d, 0x11, 0x2b, 0x20, 0x3f, 0x81, 0x89, 0xe5, 0xc0, 0xb9, 0x6e, 0xfb, 0x2d, -0xc0, 0xb7, 0x8f, 0xd9, 0x3d, 0xaf, 0x32, 0x67, 0xf5, 0x25, 0x92, 0x90, 0xaf, 0x2b, 0xd5, 0x35, -0xfc, 0x6a, 0xb9, 0x99, 0xdb, 0x88, 0x82, 0x16, 0x5d, 0x86, 0x16, 0x21, 0x07, 0xe9, 0xb4, 0xf5, -0x32, 0x17, 0xb4, 0xa6, 0x0c, 0x5a, 0x35, 0xcf, 0x9e, 0x68, 0x51, 0xd5, 0xef, 0x00, 0xc9, 0x40, -0xef, 0x96, 0xcf, 0x65, 0xc6, 0x79, 0xee, 0xca, 0xea, 0x67, 0x0f, 0xfd, 0xeb, 0x8f, 0xbb, 0x72, -0x4a, 0xb3, 0x50, 0x8e, 0xcd, 0x6b, 0x3e, 0xea, 0x81, 0x70, 0x13, 0x84, 0x9b, 0xe6, 0x55, 0x69, -0xe1, 0x65, 0x59, 0x5b, 0x3c, 0xc9, 0x96, 0x41, 0x3e, 0x86, 0x3d, 0x1d, 0xa8, 0x5f, 0x7d, 0x5f, -0x55, 0xc8, 0x7d, 0x0f, 0xf0, 0x58, 0xf7, 0x54, 0x31, 0x83, 0xd8, 0x48, 0xad, 0x28, 0x77, 0x05, -0xd4, 0x56, 0x58, 0xcb, 0xa1, 0xdd, 0xdb, 0x7e, 0x00, 0xf5, 0xcd, 0x57, 0xdb, 0x50, 0x50, 0x06, -0x7d, 0xb5, 0x65, 0x54, 0xaa, 0x87, 0x9e, 0xbd, 0x44, 0xb2, 0x79, 0xb4, 0x0b, 0xe5, 0xe6, 0xf6, -0xe5, 0x1b, 0x88, 0xc6, 0xa2, 0x36, 0x9c, 0x03, 0x2a, 0x00, 0x2d, 0xfa, 0x35, 0xc0, 0x08, 0x37, -0xba, 0x7a, 0x59, 0xb3, 0x98, 0x47, 0x3b, 0x35, 0x2c, 0xeb, 0xf5, 0x76, 0x07, 0xc0, 0x27, 0xee, -0x0c, 0x32, 0xdd, 0x43, 0x2b, 0x58, 0x56, 0xae, 0xaa, 0xa3, 0x86, 0x65, 0xb5, 0xa8, 0xb6, 0xe1, -0x61, 0xb9, 0x02, 0x5c, 0x7b, 0x90, 0xa8, 0x02, 0xb4, 0xb2, 0x7b, 0x75, 0x85, 0x59, 0xa3, 0x10, -0xb2, 0xae, 0xc8, 0x79, 0x2a, 0xdd, 0xc0, 0xf7, 0xcd, 0x8d, 0xe0, 0xf7, 0x0e, 0xda, 0x2e, 0xe6, -0xbb, 0xaa, 0x59, 0x9f, 0xbc, 0xc6, 0xdf, 0x1f, 0x03, 0xfc, 0x72, 0x18, 0x5c, 0x94, 0xbe, 0x63, -0x9e, 0x75, 0x9a, 0xf6, 0x63, 0xb2, 0x98, 0x5d, 0x42, 0xd9, 0x9a, 0x13, 0xfe, 0x1b, 0x01, 0x33, -0xb9, 0x13, 0x74, 0x24, 0xee, 0x1e, 0xdb, 0x93, 0x50, 0x9b, 0xf5, 0x22, 0xcc, 0x3d, 0x17, 0xb4, -0xf6, 0xf7, 0x46, 0x86, 0x1a, 0x2c, 0x0c, 0xb1, 0xfb, 0xff, 0x55, 0x51, 0xc8, 0x6e, 0xfd, 0x7c, -0xb2, 0x5b, 0x6f, 0x12, 0x21, 0x07, 0xd5, 0x76, 0xbd, 0x85, 0xe5, 0xb1, 0x02, 0x66, 0x13, 0x9f, -0x06, 0x2c, 0x5d, 0x8e, 0x3d, 0x25, 0x5b, 0xe0, 0xbf, 0x41, 0x36, 0xc1, 0x7f, 0xa3, 0xac, 0x87, -0xff, 0x26, 0xf1, 0x71, 0xd4, 0xf4, 0xa7, 0xd6, 0xd2, 0x3b, 0x55, 0x2d, 0x21, 0xdc, 0xeb, 0x70, -0xd1, 0x9c, 0x87, 0x72, 0x17, 0x41, 0xb9, 0xaf, 0xf1, 0xbd, 0x9e, 0x29, 0x5b, 0x84, 0x73, 0xd2, -0xbc, 0x9d, 0x7a, 0xc2, 0x64, 0x2c, 0xe1, 0x6b, 0x97, 0xee, 0x0a, 0xb5, 0xad, 0x12, 0xe5, 0x60, -0xaf, 0xbc, 0x83, 0x72, 0xb0, 0x57, 0xa0, 0x47, 0xd9, 0x29, 0x6c, 0x25, 0xd3, 0x97, 0x19, 0xc5, -0x3b, 0xf8, 0xaa, 0x8a, 0xda, 0x9b, 0x57, 0x88, 0xe6, 0x18, 0x4a, 0xec, 0xe1, 0x7b, 0x07, 0xf9, -0x0a, 0x21, 0x3b, 0xf9, 0x64, 0x03, 0x9f, 0x8c, 0xf6, 0x75, 0x07, 0xd5, 0xb5, 0xb8, 0xa7, 0xbd, -0x41, 0x5d, 0x81, 0x19, 0x7b, 0x42, 0x5e, 0xfe, 0xbd, 0x9f, 0x41, 0x8a, 0xc1, 0xc2, 0x61, 0x80, -0x63, 0x37, 0xfc, 0x6a, 0x44, 0xda, 0x0d, 0x80, 0xbe, 0x73, 0xdb, 0xab, 0xf9, 0xa9, 0x09, 0xf2, -0x99, 0x26, 0x2e, 0x05, 0xbf, 0x1a, 0xee, 0x53, 0xda, 0xcb, 0xea, 0x24, 0x63, 0x19, 0xfc, 0x97, -0xcb, 0x4b, 0xbd, 0xf0, 0xd5, 0x0d, 0x3d, 0x64, 0x2c, 0xed, 0x86, 0xb6, 0x18, 0xcb, 0xaa, 0xa4, -0xe9, 0xd2, 0x0c, 0xc9, 0x6c, 0xaf, 0x91, 0xc5, 0x52, 0xaf, 0x9c, 0x03, 0xbe, 0x26, 0xf4, 0x95, -0x4d, 0xea, 0x17, 0x50, 0x94, 0x6a, 0x8c, 0x5a, 0xff, 0x16, 0xef, 0xe8, 0x10, 0xd9, 0x7e, 0xad, -0xba, 0xc4, 0x2a, 0x89, 0xba, 0xa3, 0x95, 0x9c, 0xee, 0xd4, 0x16, 0xc0, 0xfa, 0x73, 0xa5, 0xb0, -0x8b, 0xd9, 0xd7, 0xb2, 0x79, 0xd0, 0x7f, 0xa7, 0x9f, 0x74, 0x42, 0x5f, 0xd8, 0xab, 0x7d, 0x5b, -0x60, 0x3d, 0x3a, 0xa3, 0xea, 0x36, 0x39, 0xce, 0xad, 0xad, 0x5d, 0x9f, 0x40, 0x88, 0x60, 0x4f, -0x94, 0xc1, 0x9a, 0x73, 0x7f, 0x15, 0xb3, 0x97, 0x16, 0x31, 0xc3, 0xfd, 0x6e, 0xe6, 0x38, 0x09, -0x6b, 0x6e, 0x53, 0x15, 0xf8, 0x38, 0x8f, 0xaf, 0x66, 0xa6, 0x26, 0x37, 0xf8, 0x15, 0x8a, 0x04, -0x17, 0x3c, 0x5d, 0x5c, 0x07, 0x63, 0x61, 0xb1, 0x79, 0xc0, 0x85, 0x1a, 0x90, 0x03, 0x30, 0x29, -0x81, 0x13, 0xb0, 0x05, 0xc2, 0xcc, 0xb5, 0x14, 0xb9, 0x13, 0x31, 0x60, 0x03, 0xb7, 0xbd, 0x8b, -0x56, 0xee, 0xa5, 0x28, 0x5f, 0xc3, 0x70, 0x7b, 0xb5, 0x2d, 0x40, 0xe1, 0x05, 0x94, 0xba, 0x46, -0x4b, 0x2d, 0x7a, 0xd4, 0xda, 0x5c, 0xa4, 0x1b, 0xdc, 0xf3, 0xf8, 0xb8, 0xff, 0x7c, 0xb4, 0x1e, -0xe1, 0x10, 0xd6, 0x36, 0x29, 0x87, 0xdb, 0x75, 0xbf, 0xef, 0x82, 0xbd, 0x09, 0xd7, 0x07, 0x55, -0xdf, 0x95, 0x19, 0x6a, 0xab, 0x3f, 0x01, 0x18, 0x02, 0x6a, 0x6f, 0x78, 0xbb, 0x97, 0x95, 0x24, -0x68, 0xac, 0x86, 0x54, 0x8a, 0x8d, 0x8d, 0x4d, 0xca, 0x2f, 0x3f, 0x99, 0x9f, 0x9a, 0x83, 0x5b, -0xcd, 0xc1, 0x93, 0x9a, 0x3f, 0xdb, 0x7d, 0x63, 0x7e, 0xf2, 0x2b, 0x3c, 0x2f, 0x7b, 0x9f, 0x91, -0xa9, 0xb1, 0x36, 0x26, 0x62, 0x25, 0xe1, 0x77, 0xf8, 0xbf, 0x54, 0xe2, 0xfc, 0x29, 0xca, 0x83, -0xe5, 0x85, 0x46, 0x6c, 0xd6, 0xcd, 0x67, 0x00, 0xc4, 0x99, 0xa9, 0xee, 0x76, 0x56, 0xe2, 0x0a, -0x3d, 0x79, 0x5d, 0x79, 0xe2, 0xb1, 0x67, 0x8e, 0xd0, 0x1e, 0xc3, 0x4d, 0xd6, 0x94, 0x57, 0x9f, -0x9f, 0x62, 0x4d, 0xb9, 0x80, 0xd8, 0xab, 0xb0, 0x97, 0xd5, 0x40, 0x3e, 0x5e, 0xe0, 0x61, 0x10, -0xf3, 0x16, 0x33, 0xf1, 0xd4, 0x93, 0xa2, 0x07, 0xf8, 0x04, 0x8b, 0xec, 0x52, 0xf7, 0x74, 0x2b, -0x24, 0x18, 0x63, 0x56, 0xf9, 0x1a, 0xdf, 0x45, 0xea, 0xd6, 0x6a, 0x07, 0x90, 0x52, 0x91, 0x26, -0x51, 0x3c, 0x5e, 0x0a, 0x34, 0xc6, 0xbc, 0x22, 0x66, 0x3a, 0xbd, 0x9a, 0x19, 0x6c, 0x1e, 0x67, -0x27, 0xe4, 0xb1, 0x1e, 0xe1, 0xa3, 0xa2, 0x10, 0x56, 0xd9, 0x9a, 0xc5, 0xbf, 0x8b, 0x31, 0x9b, -0xa7, 0xf4, 0x0e, 0xef, 0xe8, 0x9e, 0xa7, 0x7a, 0xcc, 0xa9, 0x71, 0xcf, 0x78, 0x6d, 0xb5, 0xae, -0x07, 0x54, 0xdc, 0x6b, 0x87, 0x39, 0xe3, 0x05, 0x8c, 0xc5, 0x71, 0xb3, 0xab, 0xb4, 0x1a, 0x5c, -0x78, 0x5e, 0xa9, 0x5c, 0xf4, 0x21, 0x6c, 0x22, 0x2e, 0x56, 0x4f, 0x25, 0x54, 0x00, 0xc6, 0xae, -0xbc, 0x59, 0x7d, 0x4a, 0x6b, 0xa0, 0x46, 0x83, 0x6a, 0x7f, 0x15, 0xa8, 0x3a, 0x0c, 0x71, 0x6f, -0xc6, 0x65, 0x97, 0x58, 0x29, 0xe0, 0xec, 0xf2, 0xc2, 0x22, 0x66, 0x57, 0x77, 0x13, 0x06, 0x69, -0x3d, 0x4f, 0x9c, 0xac, 0x49, 0x8e, 0x8d, 0x03, 0x75, 0x06, 0x32, 0xf3, 0x36, 0xc2, 0x3c, 0x46, -0xa3, 0x8b, 0x30, 0xcf, 0xfc, 0x45, 0x97, 0x98, 0xb3, 0x08, 0x28, 0xae, 0xfa, 0xf1, 0xf8, 0x01, -0xa0, 0xc4, 0xdd, 0xe6, 0xcd, 0x48, 0x1f, 0x07, 0x73, 0x6d, 0x35, 0x65, 0x3b, 0x21, 0x9d, 0x0e, -0xf7, 0xc1, 0xc2, 0xc2, 0xc6, 0x18, 0x70, 0x34, 0x8b, 0xa1, 0x65, 0xc9, 0x79, 0x7b, 0x8a, 0xee, -0xff, 0x56, 0xf2, 0x3d, 0xb6, 0x0a, 0x5c, 0x39, 0x48, 0x0b, 0x53, 0x21, 0xee, 0xf2, 0xdf, 0xa5, -0xad, 0x04, 0x42, 0xff, 0x8a, 0x7c, 0xf5, 0x0c, 0x95, 0x67, 0x05, 0x63, 0x7b, 0xb9, 0x56, 0x7d, -0xdd, 0x61, 0xc0, 0x98, 0xfd, 0x09, 0x0e, 0xb3, 0x65, 0x45, 0x0e, 0x5f, 0x21, 0x20, 0xe4, 0x15, -0x98, 0x4f, 0x7a, 0xed, 0x04, 0x96, 0x10, 0xe0, 0x27, 0xad, 0xc0, 0x7f, 0x3b, 0xf8, 0xef, 0x05, -0xfa, 0xdf, 0xce, 0xf1, 0xb0, 0x6e, 0x67, 0x0a, 0x64, 0x2d, 0x4e, 0xb6, 0x10, 0xcf, 0x4d, 0xaa, -0x10, 0xef, 0xfe, 0xd9, 0x0f, 0xc5, 0x4a, 0x6c, 0x0b, 0x59, 0x6e, 0xd4, 0xbb, 0x7a, 0xb8, 0x24, -0xa8, 0x3c, 0x56, 0x75, 0x91, 0xe9, 0xe6, 0x78, 0x99, 0xc9, 0xb3, 0x8b, 0x19, 0xe0, 0xdb, 0x00, -0xdf, 0x3a, 0x78, 0x5b, 0xe0, 0x9d, 0x8f, 0x5a, 0x9c, 0xe1, 0xdb, 0x0a, 0xdf, 0x16, 0xa8, 0x63, -0x0d, 0x40, 0x91, 0x8b, 0x43, 0x11, 0xac, 0xe6, 0x3a, 0xb9, 0xe0, 0x33, 0xb8, 0xf8, 0x6a, 0x47, -0x6e, 0xf0, 0x3c, 0xc5, 0xb3, 0x7c, 0x66, 0x3c, 0x8f, 0x1d, 0xe2, 0xf1, 0x56, 0x08, 0xef, 0x4e, -0xd5, 0x0a, 0x68, 0xe9, 0x0b, 0xd8, 0x02, 0xf3, 0xcb, 0x58, 0x7b, 0x58, 0xf1, 0x11, 0x4e, 0x55, -0xd9, 0xef, 0x3c, 0x98, 0xc7, 0xe2, 0x93, 0x6b, 0x11, 0xeb, 0xec, 0x54, 0xf3, 0xf8, 0xce, 0x4d, -0xf2, 0x90, 0xa5, 0xc5, 0xcc, 0x05, 0xb4, 0x8c, 0x53, 0x6a, 0xd0, 0x76, 0xd9, 0xae, 0x1f, 0x06, -0x2e, 0x5f, 0xaf, 0xb5, 0x29, 0x7d, 0x1f, 0xcf, 0xe6, 0xfe, 0xa2, 0x8f, 0x19, 0x81, 0x66, 0x55, -0x6d, 0xbd, 0x9a, 0x57, 0x29, 0x0a, 0xac, 0x21, 0x06, 0x92, 0x48, 0x1b, 0x4b, 0xfb, 0x99, 0xe5, -0xc4, 0x21, 0x59, 0x2f, 0x7a, 0x9a, 0x87, 0x21, 0xb6, 0x85, 0xca, 0x9e, 0x39, 0xf5, 0x18, 0xa0, -0xd6, 0x9a, 0xb5, 0xf8, 0xff, 0x29, 0x67, 0x71, 0xb2, 0xb4, 0x1b, 0xf0, 0xc1, 0xe2, 0x74, 0xb8, -0x54, 0x7b, 0xd8, 0xb6, 0x1f, 0xef, 0x1c, 0xcf, 0xfc, 0x8c, 0xfe, 0x5b, 0x5c, 0x18, 0x20, 0x8d, -0x04, 0xa7, 0xd5, 0xbe, 0xfe, 0xf3, 0x29, 0xb0, 0xc7, 0xcf, 0xe2, 0x3a, 0xe4, 0x3f, 0x70, 0xed, -0x34, 0xf0, 0x21, 0x5d, 0x88, 0xcb, 0xbc, 0x3f, 0x40, 0xcc, 0xe6, 0x1d, 0xad, 0x84, 0x95, 0xa3, -0x1c, 0xd6, 0x0c, 0xa8, 0x99, 0xdd, 0x06, 0xfd, 0xbc, 0xf8, 0x13, 0xa3, 0x62, 0xcf, 0xa9, 0xbd, -0x92, 0xaf, 0x38, 0x4c, 0xae, 0x0e, 0xc4, 0xf2, 0x13, 0xa7, 0x6f, 0x52, 0x6b, 0x7e, 0xd6, 0xaf, -0x40, 0xc5, 0x25, 0x53, 0x8d, 0xc2, 0x59, 0x68, 0x57, 0x16, 0xdf, 0xa9, 0x9c, 0x84, 0xe3, 0x9e, -0x06, 0x1c, 0x37, 0xeb, 0xe6, 0x38, 0xee, 0x5f, 0xce, 0x4f, 0xc6, 0x71, 0x78, 0x46, 0xda, 0x21, -0x31, 0x6b, 0xa8, 0x4c, 0xca, 0xd2, 0xe4, 0xea, 0x4e, 0x16, 0x18, 0x12, 0xf5, 0xa9, 0xb2, 0x75, -0x3b, 0x72, 0xee, 0xd5, 0x40, 0x35, 0xe8, 0x93, 0x3b, 0x81, 0x48, 0x6f, 0xf0, 0x3b, 0x52, 0x9a, -0xbd, 0xdd, 0x8a, 0x05, 0x40, 0xab, 0x36, 0x42, 0x6e, 0xcd, 0x76, 0xa7, 0xb6, 0x1f, 0xef, 0xcc, -0x3a, 0x13, 0x83, 0x51, 0x6e, 0xb6, 0xd5, 0x9c, 0xf8, 0x2d, 0x83, 0x35, 0xdd, 0x06, 0x74, 0x07, -0xea, 0x4b, 0x5b, 0x08, 0xb4, 0x40, 0x3d, 0xee, 0x30, 0xda, 0x0a, 0x71, 0xd5, 0x43, 0x89, 0x6b, -0x0b, 0x50, 0xb7, 0xde, 0x40, 0xd5, 0x16, 0xc0, 0xb6, 0x40, 0xeb, 0xfa, 0x02, 0xee, 0xcd, 0x40, -0x1f, 0xe0, 0x09, 0x41, 0x4e, 0x33, 0x73, 0xc9, 0xab, 0xad, 0x83, 0xcd, 0xff, 0xfe, 0x04, 0x2a, -0x14, 0x0e, 0xea, 0x91, 0x2b, 0x01, 0xfa, 0xd3, 0xae, 0xe2, 0x41, 0x27, 0xf0, 0xbf, 0x0b, 0xbe, -0xa7, 0x86, 0x95, 0x62, 0x98, 0x17, 0x20, 0x95, 0x4e, 0x35, 0xb0, 0x52, 0xdd, 0x00, 0xc2, 0xb9, -0x54, 0xc5, 0xca, 0xc9, 0x67, 0x1a, 0xab, 0xe0, 0x90, 0x2f, 0xb9, 0x59, 0x25, 0x52, 0x2e, 0x62, -0x35, 0xe0, 0x46, 0x11, 0x31, 0x27, 0xf6, 0x2b, 0xb7, 0xd6, 0x0b, 0xad, 0x3a, 0x0a, 0x14, 0x38, -0xe2, 0xa0, 0x66, 0xe8, 0xe3, 0x16, 0xc0, 0x41, 0xcb, 0x55, 0x1c, 0x04, 0x3c, 0xad, 0xae, 0x65, -0x45, 0x25, 0x5a, 0x0b, 0x01, 0xea, 0x6d, 0xa8, 0x3d, 0x2f, 0x2a, 0xec, 0x43, 0x3a, 0xf6, 0x3b, -0x1a, 0x4f, 0x9d, 0xf5, 0x29, 0xcc, 0xf3, 0x53, 0x2a, 0x8e, 0x6a, 0x56, 0x25, 0x5d, 0x4c, 0x78, -0x3d, 0xaa, 0xdf, 0x87, 0xa1, 0x67, 0xe5, 0x0a, 0xa0, 0xa1, 0x80, 0x5f, 0x44, 0x3c, 0x86, 0xfc, -0x63, 0x1b, 0xcb, 0xba, 0x48, 0x5f, 0x48, 0xdb, 0x1e, 0x04, 0x6a, 0xb3, 0x91, 0x5c, 0x50, 0x4e, -0xd6, 0x66, 0xfa, 0x9a, 0x01, 0x14, 0xf2, 0x0b, 0xe0, 0xff, 0x46, 0x79, 0x3f, 0xc0, 0x33, 0x50, -0xcf, 0x76, 0x97, 0x86, 0xb5, 0xb2, 0xf6, 0x4c, 0x05, 0x25, 0xaa, 0xb4, 0x7f, 0x3b, 0xc7, 0x5b, -0x78, 0x06, 0xc6, 0xb3, 0x55, 0xc4, 0xdd, 0x7b, 0x1d, 0xc7, 0x5c, 0x40, 0xb5, 0x70, 0xac, 0x7b, -0x0e, 0x77, 0x56, 0x28, 0x44, 0x3f, 0x45, 0x88, 0x19, 0x70, 0xbe, 0x9e, 0xb8, 0x81, 0x02, 0xe8, -0xdf, 0x59, 0xc8, 0x37, 0x3f, 0xf1, 0xff, 0xee, 0xe1, 0x6b, 0xfe, 0x53, 0x36, 0x27, 0x33, 0x03, -0x15, 0xb8, 0x51, 0xee, 0xa7, 0xf4, 0xc2, 0xe4, 0xf4, 0x64, 0xd1, 0x61, 0x07, 0x3f, 0xcf, 0xec, -0x88, 0xd1, 0x49, 0xeb, 0x27, 0x54, 0xab, 0xec, 0xa8, 0x99, 0xfa, 0x4e, 0xa0, 0x78, 0x3a, 0x68, -0x2f, 0xf1, 0xdb, 0x0e, 0x46, 0xa9, 0x2c, 0xa8, 0xa9, 0x62, 0x73, 0x2d, 0xab, 0x91, 0x56, 0x33, -0x33, 0xd7, 0x6e, 0xb1, 0x59, 0x62, 0x0d, 0x30, 0x42, 0x8d, 0xf0, 0x6b, 0x16, 0x9b, 0x90, 0x86, -0xc4, 0x7d, 0x2a, 0xac, 0x73, 0xe3, 0x48, 0x68, 0xbe, 0x2d, 0x4b, 0x36, 0xf0, 0x3a, 0x51, 0x0d, -0xb2, 0xd2, 0xcb, 0xa7, 0x92, 0x67, 0xa1, 0x9c, 0xbf, 0x05, 0x25, 0x69, 0x26, 0x9c, 0xab, 0xd7, -0x51, 0xe3, 0x1e, 0xd3, 0x7d, 0xdd, 0xd6, 0x94, 0x6e, 0xef, 0xf7, 0xba, 0x5f, 0x3d, 0x3f, 0x5a, -0xa0, 0xf5, 0x26, 0x9e, 0xb9, 0x4f, 0xc1, 0x7c, 0x3a, 0x7b, 0x82, 0x16, 0xaf, 0x05, 0x5a, 0xdc, -0x16, 0xa0, 0xf4, 0xb3, 0x92, 0xe9, 0x81, 0xdb, 0xe5, 0x3d, 0x65, 0xe2, 0x6d, 0xc1, 0x5d, 0x04, -0x1b, 0xc0, 0xfa, 0xe4, 0x72, 0x54, 0x0c, 0x3b, 0x3e, 0xe5, 0xdc, 0x6e, 0xe6, 0x25, 0xa0, 0xa5, -0x1b, 0x3c, 0x67, 0x89, 0x63, 0xaf, 0xca, 0xeb, 0x6a, 0x54, 0x79, 0x5d, 0x37, 0xc9, 0xeb, 0xf8, -0x7b, 0x27, 0x60, 0x99, 0x7e, 0x86, 0x78, 0xfb, 0x15, 0x35, 0xd7, 0x17, 0xa6, 0x86, 0x05, 0x88, -0xb1, 0x29, 0x59, 0x77, 0x5f, 0x11, 0xbb, 0x0d, 0xf5, 0x9f, 0x7a, 0x0f, 0xd5, 0x0c, 0x3a, 0x01, -0x43, 0xd1, 0xc9, 0xb2, 0x55, 0x7c, 0x66, 0x72, 0xfc, 0xc5, 0x71, 0xd9, 0x42, 0x9a, 0xa1, 0xea, -0x8e, 0xc8, 0xc3, 0x90, 0x47, 0x1d, 0xae, 0x95, 0x3c, 0x9f, 0x7a, 0xc8, 0xc7, 0xb4, 0x9a, 0xc5, -0x98, 0x39, 0x8c, 0xd6, 0xb2, 0x0b, 0xb0, 0xe7, 0xf1, 0x2e, 0x83, 0xd4, 0x01, 0x23, 0x47, 0x5c, -0xad, 0xb8, 0x5a, 0xe5, 0xa4, 0x16, 0xa5, 0xf6, 0x24, 0x96, 0xe5, 0x70, 0xb2, 0x5c, 0xc0, 0x11, -0x39, 0x36, 0x17, 0xb3, 0x8a, 0x2e, 0x66, 0x71, 0x2d, 0xc3, 0xbb, 0xb4, 0x54, 0x0b, 0xf0, 0x85, -0x90, 0xdc, 0xb9, 0x55, 0xcc, 0x32, 0xd7, 0xc3, 0xac, 0xa4, 0xcb, 0xe3, 0xb8, 0xd4, 0x8f, 0x33, -0x03, 0xca, 0x98, 0x32, 0x47, 0xa0, 0xfc, 0x82, 0x98, 0x16, 0x42, 0xf4, 0xba, 0x98, 0x02, 0xb3, -0xda, 0x1c, 0xd3, 0x31, 0xf6, 0x3e, 0x40, 0xe6, 0x76, 0xe8, 0x1d, 0xdc, 0xcb, 0xde, 0x2c, 0x26, -0xea, 0x8d, 0x30, 0x95, 0xf5, 0x5b, 0xe0, 0xc5, 0x3b, 0x58, 0x85, 0xea, 0xba, 0x0e, 0x38, 0x04, -0x56, 0x40, 0xa2, 0xa8, 0x60, 0x1e, 0x32, 0x17, 0xda, 0xdc, 0x41, 0x7a, 0x0a, 0x7e, 0x15, 0x91, -0x82, 0x93, 0x23, 0x1c, 0x4a, 0xe3, 0x39, 0x32, 0x8b, 0x6f, 0xe1, 0xb9, 0x60, 0xaf, 0x3d, 0x7d, -0xd8, 0x06, 0xa9, 0x9e, 0x39, 0x02, 0x7d, 0x82, 0xe7, 0x00, 0x5e, 0x2c, 0x77, 0xcb, 0x8e, 0x9b, -0x50, 0xa9, 0x29, 0x2b, 0x68, 0x3c, 0xca, 0x35, 0x3b, 0xf6, 0x23, 0x8f, 0x5c, 0x7e, 0x03, 0x06, -0xff, 0x27, 0xc0, 0xe0, 0xf9, 0x37, 0xc7, 0xe0, 0x07, 0xe4, 0x1b, 0xcf, 0xe4, 0xe1, 0xfd, 0xd4, -0xe4, 0xa5, 0xb5, 0x28, 0x1a, 0x6e, 0x2d, 0x2f, 0x45, 0x83, 0xc6, 0xa5, 0x7f, 0x5d, 0x52, 0xaa, -0xde, 0x31, 0x35, 0xb1, 0xf4, 0x18, 0x53, 0xdd, 0x56, 0xe5, 0x77, 0x4e, 0xff, 0x2d, 0xc0, 0xc6, -0x46, 0x2d, 0xcc, 0x29, 0x3c, 0x06, 0xdf, 0x25, 0xf0, 0x33, 0xc3, 0xaf, 0x0b, 0x23, 0x84, 0x99, -0x4c, 0xf7, 0x0e, 0xc3, 0x82, 0x4c, 0x77, 0x12, 0xc3, 0x3a, 0x9c, 0x5f, 0x38, 0xb7, 0xa0, 0x16, -0x6b, 0xd0, 0xde, 0x7a, 0xda, 0xcd, 0x5e, 0xdd, 0xde, 0x57, 0x99, 0x25, 0x68, 0xfb, 0x6c, 0x2b, -0xf7, 0x9c, 0x6f, 0x0d, 0x27, 0x66, 0xc7, 0xc4, 0x69, 0x17, 0xe2, 0x2d, 0xb2, 0x8c, 0x8d, 0x1c, -0x54, 0xb9, 0xdb, 0xe6, 0x4f, 0xbd, 0x97, 0xfb, 0xcc, 0x11, 0xa0, 0x43, 0xcd, 0xa9, 0x67, 0x69, -0xb1, 0x2f, 0x6b, 0xf4, 0xa4, 0x87, 0x75, 0x0d, 0xd6, 0x7f, 0x34, 0x97, 0x8d, 0x9d, 0xe9, 0x10, -0xe6, 0xb2, 0xb7, 0xd9, 0xd8, 0xa1, 0x31, 0xf8, 0x41, 0xaf, 0x9e, 0x1e, 0x4d, 0xdc, 0x99, 0xd5, -0xb1, 0xb1, 0x37, 0xff, 0x10, 0x23, 0x0b, 0xc2, 0xff, 0x9e, 0x17, 0x43, 0x11, 0xe4, 0xd8, 0xbf, -0xdf, 0x1b, 0x23, 0xeb, 0xcb, 0xff, 0xbe, 0x10, 0xde, 0x06, 0x78, 0xb7, 0xc4, 0xc8, 0x22, 0xf1, -0xbf, 0xf7, 0xc4, 0x50, 0xed, 0xc0, 0xd8, 0xbf, 0x6f, 0x84, 0xf7, 0x74, 0x78, 0xff, 0x53, 0x8c, -0xac, 0x22, 0xff, 0xfb, 0xcb, 0xf0, 0x9e, 0x01, 0xef, 0x1f, 0xc3, 0x3b, 0x07, 0xde, 0x57, 0xe1, -0x9d, 0xcf, 0xc6, 0x0e, 0xdf, 0xc6, 0x2d, 0x40, 0x1f, 0x76, 0xf0, 0xdb, 0x5d, 0x87, 0x2b, 0xb8, -0xa5, 0xe1, 0xc3, 0x75, 0xdc, 0x62, 0xf1, 0xe1, 0x16, 0x46, 0xe5, 0x1d, 0xee, 0xe0, 0xd6, 0x9e, -0x0f, 0xff, 0x1d, 0xb7, 0x7c, 0x7c, 0xf8, 0x71, 0x46, 0xe5, 0x1c, 0x06, 0xee, 0x1d, 0xcb, 0x39, -0xfc, 0x1d, 0x6e, 0x7d, 0xf9, 0xf0, 0x6e, 0x46, 0xe5, 0x1c, 0xfe, 0x37, 0xba, 0xe7, 0x38, 0x76, -0xf8, 0x04, 0xdd, 0x03, 0x1d, 0x3b, 0xfc, 0x2b, 0x78, 0x43, 0x2b, 0x0f, 0x5f, 0x82, 0xf7, 0x9d, -0x6c, 0xec, 0x2d, 0xba, 0x1b, 0x0b, 0x6f, 0xbc, 0x23, 0x7a, 0x17, 0xbc, 0xbf, 0x08, 0x6f, 0x11, -0xde, 0xf7, 0xd0, 0xcd, 0xb1, 0xb1, 0xb7, 0xee, 0x67, 0xa8, 0x15, 0x68, 0xec, 0x2d, 0x3f, 0xbc, -0x4b, 0xe1, 0xfd, 0x15, 0x78, 0xdf, 0x03, 0x6f, 0xac, 0x47, 0x19, 0xbc, 0xf1, 0x76, 0xda, 0xbd, -0xf0, 0xfe, 0x7f, 0xe0, 0x5d, 0x0e, 0xef, 0x6f, 0xe0, 0xdd, 0x4e, 0x78, 0x6f, 0xc6, 0xfb, 0x9c, -0xf0, 0xc6, 0x7a, 0x79, 0xe0, 0xfd, 0x3f, 0x78, 0xfb, 0xde, 0xfa, 0x27, 0xde, 0xbe, 0xb7, 0x76, -0xf1, 0xf6, 0xbd, 0xf5, 0x7f, 0x78, 0xfb, 0xde, 0x3a, 0xc1, 0xdb, 0xf7, 0xd6, 0x6f, 0x79, 0xfb, -0x8e, 0x60, 0x6c, 0xe8, 0xcf, 0x23, 0x9f, 0xe3, 0xed, 0x3c, 0xe2, 0xe4, 0xed, 0x3c, 0x52, 0xc9, -0xdb, 0x79, 0xa4, 0x99, 0xb7, 0xf3, 0x48, 0x0f, 0x6f, 0xe7, 0x91, 0x6f, 0xf0, 0xfc, 0x8f, 0xbc, -0xc8, 0xc6, 0x7e, 0x08, 0xed, 0xf9, 0x61, 0x01, 0xfc, 0x9e, 0x65, 0x63, 0x6f, 0x40, 0x9e, 0x6f, -0x80, 0xfb, 0x8d, 0x17, 0xb8, 0xff, 0x1b, 0xbb, 0xd9, 0xd8, 0x8f, 0xec, 0xf0, 0x83, 0xba, 0xfe, -0x08, 0x70, 0xff, 0x8f, 0x1a, 0xe0, 0xd7, 0x0c, 0xbf, 0xe5, 0x6a, 0x3a, 0xf8, 0xfd, 0xa8, 0x0d, -0x7e, 0x5d, 0xf0, 0x83, 0x39, 0xf3, 0xa3, 0x21, 0xf8, 0x6d, 0x82, 0xdf, 0xb3, 0xc9, 0xf0, 0x3f, -0xf7, 0xfb, 0xd1, 0x3e, 0xf8, 0x1d, 0x84, 0xdf, 0xa9, 0x5b, 0x4f, 0x93, 0x96, 0xfe, 0x1c, 0xfc, -0x3e, 0x04, 0x58, 0x83, 0x36, 0xbc, 0x69, 0xff, 0xcb, 0xd3, 0xbf, 0xe9, 0x82, 0x1f, 0xb4, 0xef, -0xcd, 0xca, 0xd6, 0xae, 0xf6, 0x48, 0xb4, 0xa4, 0xa3, 0xb7, 0x77, 0xf5, 0x6d, 0x26, 0xf5, 0x46, -0x79, 0xd2, 0x0b, 0x2d, 0x97, 0x57, 0x88, 0xc9, 0x79, 0xae, 0xda, 0x20, 0x3f, 0x72, 0x50, 0xa0, -0x11, 0x3a, 0x72, 0x44, 0xa0, 0x11, 0x3a, 0x72, 0x51, 0xa0, 0x11, 0x3a, 0x32, 0x31, 0x40, 0x23, -0xf3, 0xe3, 0xbb, 0x06, 0x68, 0x64, 0x7e, 0x5c, 0x26, 0xd0, 0xc8, 0xfc, 0x38, 0x20, 0xd0, 0xc8, -0xfc, 0xb8, 0x47, 0xa0, 0x91, 0xf9, 0xf1, 0xa6, 0x01, 0x1a, 0x99, 0x1f, 0xff, 0xa3, 0x40, 0x23, -0xf3, 0xe3, 0x7f, 0x85, 0x37, 0xe0, 0x81, 0x1f, 0xff, 0x0a, 0xde, 0xb7, 0xb1, 0xb1, 0xa3, 0x3a, -0x81, 0x20, 0xff, 0xe8, 0xdd, 0xf0, 0xbe, 0x1d, 0xde, 0x1e, 0x81, 0x20, 0xf4, 0xe8, 0x72, 0x5e, -0xfe, 0xd1, 0xc7, 0x06, 0x05, 0x7a, 0x3f, 0x07, 0x6f, 0xa8, 0xc7, 0xd1, 0xff, 0x0d, 0x6f, 0x28, -0xef, 0xe8, 0x2f, 0xe0, 0x0d, 0xe5, 0x1d, 0xbd, 0x02, 0x6f, 0x28, 0xe7, 0x27, 0x66, 0x78, 0x43, -0x39, 0x3f, 0x99, 0x0d, 0x6f, 0x28, 0xe7, 0x27, 0x5f, 0x82, 0x37, 0x40, 0xe8, 0x4f, 0xfc, 0x3a, -0x2a, 0xef, 0x27, 0x41, 0x1d, 0x95, 0xf7, 0x93, 0x75, 0x83, 0x42, 0x2e, 0xf4, 0xc6, 0x4f, 0x9e, -0xd4, 0x31, 0x3d, 0xe4, 0xf7, 0x93, 0x5d, 0xbc, 0x9c, 0x9f, 0x1c, 0xdd, 0x40, 0xe5, 0xfc, 0xe4, -0x03, 0xd5, 0x7d, 0x7d, 0x88, 0xda, 0x7d, 0x6c, 0xe6, 0x90, 0x80, 0xed, 0x3e, 0xf6, 0x25, 0x88, -0x0d, 0xed, 0x3e, 0xb6, 0x12, 0xde, 0x00, 0x45, 0xc7, 0xfe, 0x0e, 0xfc, 0xa1, 0xfd, 0xc7, 0xb6, -0x0f, 0x51, 0xfb, 0x8f, 0xbd, 0x3c, 0x44, 0xf5, 0x39, 0xf6, 0xef, 0xf0, 0x86, 0xf6, 0x1f, 0x7b, -0x77, 0x88, 0xda, 0xff, 0x53, 0xfd, 0x10, 0xd5, 0xeb, 0xa7, 0xb6, 0x21, 0xaa, 0xd7, 0x4f, 0x2b, -0x87, 0xa8, 0x3e, 0x3f, 0x7d, 0x70, 0x88, 0xea, 0xf3, 0xd3, 0xbf, 0x1b, 0xa2, 0xf6, 0xff, 0xf4, -0x1f, 0x86, 0xa8, 0xfd, 0x3f, 0x3d, 0xa8, 0xa7, 0xf6, 0xff, 0xf4, 0x3f, 0xf4, 0x34, 0x43, 0x8f, -0x67, 0xf3, 0xfa, 0x1c, 0x2f, 0x51, 0xdf, 0xfe, 0x69, 0xd4, 0x0f, 0xc7, 0x3b, 0xa7, 0xd1, 0x78, -0x1c, 0xff, 0xfa, 0x34, 0x1a, 0x8f, 0xe3, 0xdf, 0x9a, 0x46, 0x33, 0xe6, 0xf8, 0x0b, 0xd3, 0x68, -0x5c, 0x8e, 0xff, 0x70, 0x1a, 0xd5, 0xeb, 0xf8, 0xc9, 0x69, 0x34, 0x2e, 0xc7, 0x3f, 0x9c, 0x46, -0xe3, 0x72, 0x02, 0x1c, 0x58, 0xaf, 0x13, 0x79, 0xd3, 0x68, 0x5c, 0x4e, 0x38, 0xa7, 0xd1, 0xb8, -0x9c, 0xb8, 0x77, 0x1a, 0xd5, 0xeb, 0x44, 0xfd, 0x34, 0xaa, 0xd7, 0x89, 0xa5, 0xd3, 0xa8, 0x5e, -0x27, 0x06, 0x78, 0xb9, 0x27, 0x9e, 0x37, 0x52, 0x7f, 0x9c, 0x38, 0xa8, 0xba, 0x8f, 0xab, 0xef, -0x8f, 0x4c, 0xe4, 0x7f, 0xd2, 0xc8, 0xdd, 0x27, 0x25, 0xf5, 0xbd, 0x44, 0x7d, 0xf7, 0xa8, 0xef, -0x4d, 0xea, 0xfb, 0x9f, 0xee, 0xe0, 0xf1, 0xd5, 0x7c, 0x4e, 0xbe, 0xa3, 0xbe, 0xaf, 0xf1, 0xf7, -0xdb, 0x9f, 0xb3, 0x52, 0xf8, 0xdb, 0x7f, 0xad, 0xba, 0x97, 0xdd, 0xc5, 0xdd, 0x6b, 0xee, 0xa2, -0xf6, 0xbe, 0xad, 0xce, 0xec, 0xb7, 0xbf, 0xab, 0xbe, 0x0f, 0xcd, 0xe6, 0xe1, 0xff, 0x31, 0x9b, -0x87, 0x5f, 0xe7, 0xfe, 0xa7, 0x0a, 0xd4, 0x77, 0x45, 0x29, 0x85, 0x9f, 0x6a, 0x56, 0xdd, 0xe1, -0xef, 0x71, 0xf7, 0xf0, 0x3d, 0xfc, 0xfd, 0x8f, 0xf7, 0x50, 0xba, 0x53, 0x3f, 0xbc, 0x87, 0xfa, -0xf1, 0xd4, 0x7b, 0xdf, 0x23, 0x78, 0xfa, 0x99, 0x9e, 0xc7, 0xff, 0x99, 0x5d, 0x7d, 0x57, 0xaa, -0xef, 0x26, 0xf5, 0x1d, 0x51, 0xdf, 0xdf, 0x54, 0xdf, 0xdf, 0x2d, 0x2e, 0xa6, 0xf5, 0x12, 0x2d, -0xd3, 0x06, 0xd1, 0xae, 0x70, 0x71, 0x31, 0xab, 0xb8, 0xdd, 0x0f, 0xae, 0xda, 0x9e, 0xde, 0x35, -0xa1, 0x0e, 0x71, 0x71, 0x7b, 0x77, 0x6f, 0xe4, 0xd1, 0xd9, 0x22, 0xf8, 0x36, 0xf5, 0x06, 0xa3, -0x8f, 0xb4, 0x46, 0xda, 0xc5, 0x3a, 0x6e, 0xef, 0x9b, 0x3c, 0x03, 0xed, 0x2b, 0x7b, 0xd7, 0xb6, -0x47, 0x5a, 0x57, 0x74, 0xb5, 0x8b, 0x55, 0x38, 0x2d, 0xc1, 0x57, 0x68, 0xbc, 0xbd, 0x31, 0xd2, -0xde, 0xd7, 0x27, 0x76, 0xf7, 0xae, 0xe9, 0x6b, 0x17, 0x57, 0xac, 0x89, 0x46, 0x7b, 0x7b, 0xd0, -0xfc, 0x30, 0x5e, 0x7e, 0xee, 0xec, 0x59, 0xd3, 0x5e, 0xc2, 0x76, 0x16, 0xa2, 0x7d, 0xf5, 0xf9, -0xa2, 0x28, 0xce, 0x29, 0xad, 0xe8, 0x5a, 0x27, 0x16, 0x8b, 0x6c, 0x56, 0x2d, 0x59, 0xe5, 0x06, -0x8f, 0xf2, 0x75, 0xfc, 0x1f, 0x78, 0xde, 0x78, 0xdb, 0xdc, 0xdb, 0x1a, 0x69, 0xa3, 0x5a, 0xac, -0x58, 0xd3, 0x27, 0x06, 0xd1, 0x36, 0xb7, 0xd4, 0xda, 0xd6, 0x46, 0xc5, 0x91, 0x59, 0x6f, 0x56, -0xdf, 0xd5, 0xd5, 0x1e, 0x6a, 0xed, 0x12, 0x35, 0xdf, 0xd6, 0x95, 0x68, 0x54, 0x59, 0x74, 0xf6, -0xb6, 0xb5, 0xcd, 0x4d, 0x04, 0x76, 0xf6, 0xf4, 0x45, 0x23, 0x6b, 0x56, 0x62, 0xce, 0xac, 0xa6, -0x73, 0x6d, 0x67, 0x1f, 0x7c, 0x88, 0x2b, 0x1e, 0x15, 0xd7, 0xb7, 0x47, 0x7a, 0x59, 0xb5, 0x77, -0x51, 0x6a, 0x04, 0x35, 0xdf, 0xe6, 0x40, 0x55, 0xe3, 0xb2, 0x29, 0xfc, 0x1b, 0x23, 0x90, 0xbe, -0xab, 0xbd, 0x2d, 0xd4, 0x2e, 0xae, 0xed, 0xec, 0xed, 0x6a, 0x4d, 0x4d, 0x12, 0x69, 0x5d, 0xa9, -0x5a, 0x1b, 0x67, 0x0d, 0x9d, 0x3d, 0xed, 0xe2, 0x3d, 0xa5, 0xf7, 0x94, 0x8a, 0xce, 0xaa, 0xb9, -0x62, 0xad, 0xd8, 0xbd, 0x06, 0xa2, 0x42, 0x7b, 0x53, 0x43, 0xe1, 0x11, 0x9d, 0x75, 0x10, 0xaa, -0x06, 0x4a, 0xd5, 0xbd, 0xaa, 0x4d, 0xe8, 0x44, 0x44, 0xb2, 0x7c, 0x2c, 0x06, 0x23, 0xad, 0xdd, -0xed, 0x22, 0xbf, 0xcf, 0xad, 0x05, 0x84, 0xd7, 0x44, 0x3a, 0xa1, 0xbf, 0xa1, 0x86, 0x51, 0xf0, -0x59, 0x13, 0xd6, 0x02, 0x96, 0xf6, 0xac, 0xee, 0xe9, 0x7d, 0xa4, 0x47, 0xac, 0x6e, 0x5c, 0xaa, -0xfa, 0xb4, 0xaf, 0x6b, 0x5f, 0xa9, 0xf5, 0xa7, 0x78, 0xc3, 0x85, 0x7c, 0x71, 0xd2, 0x8d, 0xfc, -0x29, 0x06, 0x41, 0x64, 0x50, 0x6e, 0x47, 0xd2, 0x95, 0xa2, 0x1f, 0x40, 0x64, 0x50, 0x35, 0xf8, -0x16, 0xd3, 0x6e, 0xfd, 0x8b, 0x50, 0x66, 0xb8, 0xb5, 0xa7, 0x2f, 0x2d, 0x0f, 0xbc, 0xdf, 0x1f, -0x04, 0x88, 0x48, 0xfa, 0xb4, 0xae, 0x69, 0xeb, 0xec, 0x2d, 0x69, 0x6b, 0x5f, 0xdb, 0x09, 0xdd, -0xc6, 0xf0, 0x3e, 0x7b, 0x6f, 0x57, 0x7b, 0xc2, 0x1d, 0x82, 0x36, 0x87, 0x7b, 0x01, 0xf1, 0x6b, -0x1e, 0xab, 0xdb, 0x1f, 0x5d, 0xd1, 0x0b, 0xe0, 0x90, 0xf0, 0x88, 0x46, 0xf0, 0x0e, 0x3f, 0xaa, -0x0d, 0x48, 0xf8, 0x74, 0x76, 0xb7, 0x47, 0x92, 0x39, 0x76, 0xb6, 0x26, 0x95, 0x90, 0x70, 0xfd, -0x02, 0x49, 0x67, 0x77, 0x67, 0xdf, 0xca, 0x14, 0xe7, 0x8a, 0xde, 0xde, 0x28, 0x0c, 0x75, 0x6b, -0x58, 0x4c, 0x52, 0x8e, 0x3c, 0xcd, 0xca, 0xde, 0x30, 0x76, 0x9b, 0xaa, 0xe5, 0x40, 0xd4, 0xf4, -0x1f, 0x40, 0xf5, 0x23, 0xbd, 0xe0, 0xec, 0xed, 0x85, 0x24, 0x1d, 0x9d, 0x6d, 0x6d, 0x10, 0xa2, -0x76, 0x3d, 0xeb, 0xe9, 0x15, 0xbb, 0x69, 0x22, 0xe1, 0x98, 0x61, 0xcb, 0xd6, 0x74, 0x71, 0x6b, -0xd0, 0xdd, 0xad, 0xab, 0xdb, 0xc5, 0x44, 0xfb, 0x93, 0xfe, 0xbd, 0xa8, 0x42, 0xe0, 0x66, 0xfe, -0xc9, 0x0e, 0x4a, 0xf3, 0x4e, 0xd6, 0xbd, 0x7e, 0x89, 0x6a, 0xe2, 0xfe, 0x91, 0xce, 0x68, 0x07, -0x95, 0xde, 0xd7, 0x19, 0xea, 0x01, 0xb0, 0x87, 0xd2, 0xa5, 0x60, 0xa4, 0xb7, 0x1b, 0x9a, 0xd7, -0xda, 0x86, 0x2a, 0x0a, 0xa0, 0x4b, 0x01, 0x5a, 0x52, 0xfc, 0x57, 0x76, 0xf5, 0xf6, 0x25, 0x6b, -0x94, 0x9a, 0x0b, 0x0f, 0x51, 0xcb, 0x4e, 0x0d, 0x50, 0x41, 0x54, 0x5c, 0x19, 0x69, 0x07, 0xe0, -0xef, 0x09, 0x91, 0xf5, 0x6a, 0xc0, 0x0f, 0x6a, 0xb0, 0xd6, 0x09, 0x10, 0x0d, 0x90, 0x44, 0xf7, -0x24, 0x5f, 0x0e, 0x91, 0x8b, 0xab, 0xe7, 0x55, 0xac, 0x16, 0x6b, 0xd7, 0xad, 0x6c, 0x0f, 0xd3, -0xf4, 0x59, 0x4b, 0x56, 0xe8, 0xc5, 0x95, 0x1d, 0xed, 0x2b, 0x57, 0xf7, 0xad, 0xe9, 0x26, 0x85, -0x0c, 0x9e, 0x56, 0x28, 0x3e, 0xe1, 0xd3, 0xa0, 0xd6, 0x50, 0xf3, 0xd0, 0x0a, 0x65, 0xd5, 0xbd, -0x1c, 0xf8, 0xd5, 0xfe, 0xee, 0xea, 0xec, 0x8b, 0x42, 0xa5, 0xa3, 0x90, 0x61, 0x7b, 0x1b, 0xf3, -0xa7, 0x8d, 0x43, 0x72, 0xa6, 0xf4, 0xb5, 0x47, 0x00, 0x89, 0xf5, 0x31, 0x67, 0xef, 0x8a, 0xbe, -0xb9, 0x62, 0x7d, 0x4f, 0x67, 0xb4, 0x89, 0x66, 0xb9, 0xd8, 0x1b, 0x14, 0x5b, 0x7b, 0xc4, 0xaa, -0xc6, 0xe6, 0x00, 0x6b, 0x6a, 0xef, 0x86, 0x89, 0xd2, 0x0b, 0xed, 0xea, 0xec, 0x41, 0xcf, 0x4e, -0x15, 0x95, 0xf4, 0x45, 0x51, 0xbd, 0xc3, 0x62, 0x35, 0xdb, 0x48, 0x7b, 0x7b, 0x9b, 0x18, 0x7d, -0x04, 0xfa, 0x28, 0x81, 0x6b, 0xba, 0x57, 0x62, 0xe3, 0xda, 0x13, 0x8d, 0x8b, 0xc2, 0x98, 0xf7, -0xb0, 0xaa, 0x68, 0xb4, 0xbd, 0x1b, 0x8a, 0x46, 0xab, 0xec, 0xed, 0x88, 0x26, 0x5b, 0x01, 0xa9, -0xac, 0x6d, 0x17, 0xeb, 0x97, 0xa8, 0x56, 0xcb, 0x59, 0x53, 0x6b, 0x0f, 0x82, 0x15, 0xb5, 0x50, -0x84, 0x74, 0xa9, 0x2d, 0xe2, 0x06, 0xc2, 0x53, 0x33, 0xc1, 0x2c, 0x12, 0x69, 0xc5, 0xd6, 0x20, -0x0e, 0x2b, 0x0d, 0x99, 0x8a, 0x32, 0xda, 0xd7, 0x45, 0xdb, 0x7b, 0xda, 0xfa, 0x50, 0xc1, 0x03, -0xb6, 0x2a, 0xd2, 0xda, 0x13, 0x4a, 0xd4, 0xba, 0xa3, 0xbd, 0xb5, 0x0d, 0xa2, 0x23, 0x24, 0x75, -0xf5, 0xae, 0x6c, 0x8d, 0xde, 0x98, 0x33, 0x1a, 0x9f, 0xef, 0x05, 0x60, 0xeb, 0x86, 0x81, 0x6e, -0x05, 0x4c, 0xd7, 0xa7, 0x75, 0x46, 0x72, 0x20, 0x53, 0x91, 0x0a, 0x1f, 0xd5, 0x85, 0x2a, 0x66, -0xd1, 0xca, 0xe4, 0x0d, 0x48, 0x19, 0x04, 0xc8, 0x1c, 0x4d, 0xd0, 0x63, 0x89, 0xe2, 0xe2, 0x5e, -0x68, 0x6d, 0x6f, 0xa4, 0x29, 0xdc, 0xbe, 0x72, 0xd2, 0x30, 0x75, 0xf5, 0x22, 0x4c, 0x21, 0xa8, -0x4e, 0x0a, 0xe8, 0x83, 0x0a, 0x44, 0xd5, 0x90, 0xc5, 0x69, 0x21, 0xcd, 0xdd, 0xe1, 0x40, 0x6b, -0xdf, 0xa4, 0xe8, 0x9e, 0xae, 0xa8, 0xa7, 0x33, 0xba, 0xb8, 0x35, 0x3c, 0xc9, 0x3f, 0xd0, 0x1e, -0xc2, 0x65, 0x20, 0xdd, 0x73, 0x31, 0x0c, 0xd2, 0xb2, 0x46, 0xc8, 0x9f, 0xf1, 0x65, 0x09, 0xc6, -0x7c, 0x61, 0x70, 0x9d, 0xbf, 0xfd, 0x11, 0xe7, 0xdc, 0x34, 0x9f, 0x3a, 0x18, 0x70, 0xf4, 0x02, -0x34, 0x13, 0x02, 0x14, 0xf1, 0xa8, 0x96, 0x07, 0xf6, 0x65, 0xeb, 0x5a, 0x18, 0x25, 0x5c, 0x19, -0x51, 0xd1, 0xc6, 0x9a, 0x30, 0xe2, 0x2e, 0x00, 0x0e, 0x44, 0x79, 0x00, 0x91, 0x7d, 0x2b, 0x23, -0x9d, 0x1c, 0x1e, 0xa0, 0x7f, 0xdb, 0x12, 0xdd, 0x78, 0x03, 0x36, 0xe6, 0x5d, 0xc9, 0x51, 0xf2, -0x7c, 0x31, 0x81, 0x48, 0x12, 0x09, 0x26, 0x21, 0x6b, 0x1e, 0x3d, 0x81, 0xb1, 0xe7, 0x8b, 0x89, -0x8c, 0x49, 0x17, 0x87, 0x18, 0x7d, 0x34, 0xdc, 0x9e, 0x0c, 0x16, 0x09, 0x85, 0xf4, 0xdc, 0x1d, -0xe5, 0x93, 0xb7, 0x5d, 0xc4, 0x3a, 0xba, 0x52, 0x4a, 0x49, 0x47, 0x5c, 0xdd, 0xed, 0x3d, 0x6b, -0xc4, 0x4e, 0x00, 0x8c, 0xa9, 0xfc, 0xfb, 0xd6, 0xac, 0x98, 0x22, 0x08, 0xfc, 0xc2, 0x5d, 0xad, -0x3d, 0xed, 0x2c, 0x0a, 0x68, 0x11, 0x60, 0x00, 0xa3, 0x88, 0x2b, 0x7a, 0xd7, 0x89, 0x95, 0xd0, -0xef, 0x5d, 0x0f, 0xe1, 0x72, 0x9b, 0x9e, 0x00, 0x15, 0x98, 0x34, 0x41, 0x6d, 0xda, 0x7b, 0xa0, -0x5b, 0x6f, 0x1e, 0x04, 0x00, 0xdc, 0x07, 0x20, 0x9e, 0xe8, 0x06, 0x6c, 0x17, 0xe6, 0xdf, 0xf7, -0x68, 0x1f, 0x96, 0xd0, 0x47, 0xd1, 0x18, 0xd0, 0x00, 0x62, 0xd3, 0x83, 0x6a, 0xdb, 0xfb, 0x6e, -0xde, 0x30, 0xcc, 0x99, 0x6b, 0x72, 0x81, 0x42, 0x11, 0x35, 0xd2, 0xa4, 0x86, 0x89, 0x19, 0x5d, -0x13, 0x01, 0xd0, 0x46, 0x3c, 0x81, 0x88, 0x2d, 0xd1, 0x6f, 0x14, 0x47, 0x9b, 0x0b, 0x91, 0xf6, -0x95, 0xed, 0x30, 0x73, 0xdb, 0x90, 0x7e, 0xa8, 0xaf, 0xa9, 0x5e, 0xdc, 0xc8, 0x1e, 0x69, 0xef, -0x8c, 0xb4, 0x89, 0xed, 0x2b, 0x3b, 0x80, 0xe4, 0x69, 0x5d, 0xd3, 0xc7, 0x93, 0xae, 0xec, 0xed, -0x0e, 0x47, 0xda, 0x3b, 0xda, 0x69, 0x15, 0x64, 0x89, 0x8e, 0x27, 0xd4, 0x8d, 0xd3, 0x2b, 0x7d, -0xb9, 0x4b, 0x19, 0xa3, 0xbe, 0xd5, 0x9d, 0xe1, 0x30, 0x64, 0xdf, 0xbb, 0x22, 0xda, 0xda, 0xd9, -0x83, 0x99, 0xb5, 0xa6, 0xcc, 0xbf, 0x64, 0xbc, 0x10, 0x82, 0x5c, 0x32, 0x04, 0x01, 0xf4, 0x91, -0x08, 0xce, 0x9d, 0xde, 0x48, 0x5b, 0x4a, 0x4f, 0xdd, 0xb8, 0x9a, 0x73, 0x98, 0xd1, 0xc2, 0x71, -0x69, 0x4f, 0x5f, 0x00, 0x52, 0x3a, 0x0b, 0xc8, 0x0d, 0xe8, 0x9a, 0x48, 0x74, 0x4d, 0x98, 0xd5, -0xf6, 0xb4, 0x21, 0x0d, 0x27, 0xb6, 0x75, 0xf2, 0x35, 0x08, 0xb0, 0x8b, 0x48, 0x92, 0x95, 0x07, -0x1a, 0x57, 0x47, 0x13, 0xe8, 0x78, 0x4d, 0x0f, 0xac, 0xfc, 0x84, 0x7c, 0xc5, 0x9a, 0x25, 0x4d, -0xb0, 0xe4, 0xac, 0x5c, 0x0d, 0x50, 0xa8, 0x75, 0x19, 0x43, 0x7c, 0x09, 0xc8, 0x5e, 0xc3, 0x67, -0xb8, 0xbc, 0x8a, 0x2b, 0x00, 0x23, 0xac, 0x86, 0x76, 0x00, 0x26, 0xeb, 0x49, 0x90, 0x4f, 0x3c, -0xa4, 0x33, 0x0a, 0x8d, 0x83, 0x9e, 0x22, 0xac, 0xcd, 0xfd, 0x80, 0x08, 0x00, 0x24, 0x02, 0xd0, -0xdb, 0xc6, 0xb1, 0x2f, 0xf7, 0x4d, 0x2c, 0x0b, 0x30, 0x50, 0xdc, 0x27, 0x25, 0x1b, 0x4c, 0x92, -0x86, 0x06, 0x71, 0x34, 0x91, 0x8a, 0x85, 0xb9, 0x04, 0xfd, 0xb9, 0xb6, 0xb5, 0x0b, 0x9a, 0x04, -0x3d, 0x1d, 0xed, 0x84, 0xaf, 0xf5, 0x9c, 0xa0, 0x53, 0x2b, 0x8e, 0xc0, 0xb2, 0xb2, 0xab, 0x53, -0xea, 0x23, 0xbd, 0x40, 0xa8, 0x91, 0xa7, 0xa3, 0xb5, 0xa7, 0x0d, 0x68, 0x5f, 0x42, 0xb5, 0x00, -0x13, 0xd8, 0xf1, 0x51, 0xf0, 0x03, 0x84, 0xbd, 0x32, 0x89, 0x1c, 0x53, 0x09, 0x24, 0x5e, 0x11, -0x2c, 0x52, 0xf3, 0xe9, 0x6b, 0x0f, 0x21, 0x52, 0x4f, 0xc4, 0xe6, 0x14, 0x94, 0xd4, 0xd5, 0xd6, -0x06, 0x9d, 0xde, 0x33, 0x69, 0x78, 0xd2, 0xc8, 0x2a, 0x8d, 0x9e, 0x53, 0x69, 0x2b, 0xea, 0x00, -0x04, 0x90, 0x08, 0xa1, 0xb4, 0xb4, 0x7e, 0x69, 0x4b, 0xc1, 0xd4, 0x93, 0x49, 0xb1, 0xf4, 0x12, -0x6e, 0xa0, 0xcb, 0xd2, 0x83, 0x27, 0xa9, 0x7b, 0x9a, 0x14, 0x0a, 0x7d, 0x8b, 0x43, 0x94, 0xee, -0x99, 0x46, 0xd7, 0xf1, 0xa0, 0x95, 0xad, 0x09, 0xe0, 0x57, 0x7b, 0x5a, 0x9b, 0x00, 0x40, 0x20, -0x90, 0x4a, 0x25, 0x2d, 0xf1, 0x24, 0x32, 0x30, 0x3d, 0xe7, 0xc9, 0x34, 0xe1, 0x0d, 0x95, 0x49, -0x23, 0x10, 0x79, 0x68, 0x82, 0x4a, 0x84, 0xc9, 0x49, 0x8d, 0x88, 0xe2, 0x7a, 0xd6, 0xbe, 0x7a, -0x52, 0xe2, 0x1b, 0x88, 0xc9, 0xe4, 0xc0, 0x11, 0x55, 0x09, 0x9d, 0xcc, 0xd7, 0xe9, 0xa4, 0x4f, -0xb8, 0xf7, 0x11, 0xc0, 0xc5, 0x80, 0xe9, 0xbb, 0xa8, 0xcf, 0x09, 0x80, 0x93, 0x98, 0x3a, 0x8d, -0x16, 0x4d, 0x2f, 0x0b, 0x08, 0xd3, 0x24, 0xf9, 0xc6, 0x83, 0x10, 0x59, 0x53, 0x25, 0xd7, 0x40, -0xf7, 0xb8, 0x12, 0x43, 0xd9, 0xd1, 0xda, 0x47, 0xde, 0x1c, 0x92, 0x13, 0x14, 0x0c, 0xa1, 0x36, -0x95, 0x82, 0xc0, 0x04, 0x69, 0x83, 0x59, 0x32, 0x29, 0xeb, 0xc4, 0x4c, 0x4f, 0xa3, 0x78, 0xd5, -0xe6, 0x01, 0xd9, 0x0b, 0x5d, 0xde, 0xa6, 0x21, 0x3f, 0x80, 0xe9, 0xd6, 0xc9, 0x20, 0x98, 0x24, -0x8d, 0x13, 0xe8, 0x01, 0xe1, 0xa5, 0x8f, 0x66, 0x47, 0x82, 0x58, 0xd6, 0xf0, 0x28, 0x22, 0x8b, -0x04, 0xae, 0xbc, 0xe7, 0x16, 0xe2, 0x94, 0x4d, 0x11, 0x07, 0x28, 0x5a, 0x2d, 0x38, 0x3d, 0x30, -0x85, 0x10, 0x85, 0xd9, 0x4b, 0xb3, 0x1a, 0x59, 0x4d, 0x24, 0xcc, 0x71, 0x55, 0x4a, 0xd4, 0x39, -0x49, 0xc3, 0xdf, 0x08, 0xec, 0x44, 0xd0, 0x4f, 0x86, 0xab, 0x74, 0x1d, 0x66, 0x93, 0x01, 0x3a, -0xd2, 0x7b, 0xb3, 0x20, 0x20, 0xff, 0x6f, 0x12, 0xe2, 0x45, 0x9e, 0x40, 0x5d, 0x9f, 0x78, 0x88, -0xa6, 0xe1, 0x0a, 0x1e, 0x69, 0x86, 0xd8, 0x64, 0x89, 0x05, 0xb6, 0xe2, 0xdd, 0x54, 0xb1, 0x97, -0xe9, 0x51, 0x7b, 0x12, 0xde, 0x34, 0x97, 0xf5, 0x96, 0x1f, 0x34, 0xc5, 0x50, 0x2b, 0x6f, 0xee, -0xe7, 0x82, 0x57, 0x45, 0x63, 0x20, 0xe6, 0xc9, 0xf7, 0xaf, 0xb1, 0x49, 0x4c, 0x4f, 0x3a, 0x96, -0x7a, 0x51, 0xf3, 0x68, 0xe3, 0xb0, 0x68, 0x09, 0xe9, 0xbf, 0x3f, 0x1a, 0xfc, 0x84, 0xf4, 0x9b, -0x9b, 0xa5, 0x0e, 0xa6, 0x67, 0x46, 0xa9, 0x8a, 0xe9, 0xe5, 0x7d, 0xde, 0xf7, 0x4a, 0x45, 0xd4, -0x32, 0x8a, 0x16, 0xf2, 0x6c, 0x3a, 0xdd, 0xc0, 0xdf, 0xb3, 0x18, 0x0b, 0x92, 0x86, 0xfe, 0xd1, -0x32, 0xb9, 0xcb, 0xe7, 0xe9, 0x6a, 0xa4, 0xef, 0x6f, 0x63, 0x18, 0x63, 0x7f, 0xaf, 0x48, 0x82, -0xc4, 0x6a, 0xc7, 0x95, 0xe7, 0x48, 0xef, 0xd4, 0xd8, 0x0f, 0xd6, 0xdb, 0x74, 0x9e, 0x2a, 0x6f, -0xd5, 0x5a, 0x56, 0x97, 0xf5, 0xe6, 0x80, 0x94, 0xd5, 0x84, 0x67, 0x1d, 0xb7, 0xf0, 0x14, 0x1e, -0x8f, 0xd7, 0x73, 0xde, 0x17, 0xf9, 0xfb, 0x43, 0x83, 0x92, 0xc0, 0xfd, 0xe9, 0x5c, 0xa8, 0x9d, -0x97, 0xc2, 0x18, 0xa6, 0xfb, 0xb0, 0x1e, 0xcf, 0x54, 0xfe, 0xe0, 0xac, 0x54, 0x9a, 0xcf, 0x24, -0x92, 0x96, 0x2b, 0x75, 0x78, 0xce, 0xa5, 0xe1, 0x57, 0x7a, 0x33, 0xe9, 0xa1, 0x9d, 0xf0, 0xbe, -0x27, 0x2e, 0x70, 0xfa, 0xc5, 0x12, 0x9d, 0x8e, 0x34, 0x19, 0x33, 0x61, 0xa3, 0x47, 0x62, 0xf9, -0xa4, 0xa5, 0x58, 0x08, 0x0c, 0x4a, 0x1e, 0x21, 0xdf, 0xc8, 0x98, 0x25, 0x94, 0xab, 0x69, 0xc4, -0x7a, 0xf3, 0x41, 0xb1, 0xca, 0xdb, 0x81, 0xf7, 0x86, 0x03, 0x03, 0xbe, 0x58, 0x97, 0x39, 0xe1, -0xdf, 0x2d, 0x9b, 0x12, 0xdf, 0x50, 0x23, 0xff, 0x81, 0xf8, 0x01, 0xc9, 0x2d, 0xd8, 0xe9, 0xb6, -0x62, 0xaf, 0x90, 0x6f, 0x99, 0x60, 0x82, 0xe4, 0x15, 0xf2, 0x13, 0x71, 0x76, 0x48, 0xa8, 0xc7, -0x65, 0xbb, 0xe8, 0xb6, 0x1c, 0x64, 0x82, 0xc7, 0xc9, 0x84, 0xe6, 0x18, 0xc6, 0x17, 0xbb, 0x74, -0x06, 0x8b, 0x93, 0x6b, 0x75, 0x32, 0x33, 0x26, 0x84, 0xcc, 0x8b, 0xa0, 0x05, 0x6f, 0xd6, 0xc0, -0xf7, 0x6d, 0x41, 0x4b, 0x61, 0x07, 0x33, 0xd1, 0x2e, 0xb9, 0x81, 0xfb, 0xa2, 0x66, 0xcd, 0x9f, -0x1d, 0xc5, 0x36, 0xbe, 0xf9, 0x7f, 0xab, 0x3f, 0xd4, 0x19, 0xec, 0x9e, 0x85, 0x97, 0x84, 0x7c, -0x17, 0xea, 0xc6, 0xf8, 0xc4, 0xbb, 0x8e, 0xcd, 0x92, 0x6e, 0x13, 0x25, 0x41, 0xa4, 0xde, 0x39, -0x10, 0x2f, 0x2c, 0x74, 0xcf, 0xc4, 0xb2, 0x8a, 0x99, 0x50, 0xf5, 0x11, 0xcb, 0x82, 0xda, 0xd8, -0x29, 0xe5, 0x31, 0x48, 0xa9, 0xa3, 0x94, 0x76, 0x9e, 0x12, 0xd2, 0xd8, 0x31, 0x8d, 0xe4, 0xd2, -0xe9, 0x20, 0xdd, 0x02, 0xd1, 0x8d, 0xa3, 0x0e, 0xb5, 0x73, 0x95, 0xdd, 0xb6, 0x85, 0x59, 0x04, -0x03, 0x63, 0xcd, 0xc7, 0xd9, 0x71, 0xf6, 0x79, 0x37, 0x23, 0xfd, 0x5e, 0x6f, 0xfe, 0x26, 0xcc, -0x28, 0xe5, 0x99, 0x42, 0xd4, 0xdd, 0x80, 0x1a, 0x41, 0x2b, 0x44, 0x48, 0xab, 0x8b, 0xe1, 0x5e, -0xb0, 0xb9, 0x9b, 0x39, 0x98, 0x75, 0x65, 0x6e, 0xd5, 0x25, 0xe8, 0xd7, 0x8a, 0xb2, 0x7e, 0xe1, -0xaa, 0x6b, 0xb1, 0xff, 0x95, 0x89, 0x23, 0xb2, 0x99, 0xfb, 0xa0, 0x4b, 0x79, 0xd1, 0xb6, 0x18, -0x73, 0x88, 0xaf, 0x88, 0x2a, 0x73, 0x3d, 0x3a, 0xba, 0x77, 0xdd, 0xaf, 0x5f, 0x72, 0x49, 0x50, -0xf7, 0x15, 0x94, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, -0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, -0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, -0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, -0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, -0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, -0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, -0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, -0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, -0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, -0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, -0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, -0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, -0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, -0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xf9, 0xff, 0xb0, 0x67, 0xf5, 0xc1, 0x6d, 0x55, 0xd9, 0xfd, -0xbc, 0x67, 0x59, 0x7e, 0x11, 0x8a, 0x51, 0x82, 0xcb, 0x98, 0xe0, 0x26, 0xd7, 0x42, 0x15, 0x42, -0x92, 0x25, 0xd9, 0xc9, 0x7a, 0x4d, 0xd6, 0x9b, 0x95, 0x64, 0x5b, 0x91, 0x1d, 0xe7, 0x45, 0xeb, -0x84, 0xad, 0x77, 0xf8, 0x7a, 0xb2, 0xfd, 0x24, 0x3b, 0xd1, 0x57, 0x64, 0x39, 0x38, 0xc1, 0x03, -0xb2, 0x13, 0x52, 0x37, 0x64, 0x6b, 0x27, 0x71, 0x20, 0xbb, 0xcd, 0x0e, 0x0c, 0x43, 0x4b, 0xc8, -0x00, 0xcd, 0x06, 0xca, 0xb2, 0x99, 0xcc, 0x22, 0x42, 0x66, 0x87, 0x05, 0x96, 0x86, 0x0c, 0xed, -0xd0, 0x96, 0xa9, 0x0d, 0xb3, 0xdb, 0xa4, 0x0c, 0x1f, 0x86, 0xa6, 0xd4, 0x9b, 0x75, 0xfc, 0x7a, -0xee, 0x7d, 0x92, 0x31, 0x5b, 0x76, 0xff, 0x68, 0xff, 0xbd, 0x3f, 0xcf, 0xbb, 0x1f, 0xe7, 0x9e, -0x7b, 0xee, 0xb9, 0xf7, 0x9e, 0x7b, 0xee, 0xb9, 0x32, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, -0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, -0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, -0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, -0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, -0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, -0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, -0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, -0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, -0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, -0x07, 0xc7, 0xff, 0x01, 0x60, 0xef, 0xd0, 0x40, 0x02, 0x80, 0x6a, 0xb8, 0x09, 0x56, 0xc1, 0xcd, -0x50, 0x03, 0x7f, 0x0a, 0xab, 0x35, 0x6d, 0xc5, 0x0a, 0xf9, 0xb7, 0x30, 0x87, 0x7f, 0x80, 0x3c, -0x1e, 0x30, 0xd1, 0x8f, 0xf2, 0x07, 0xba, 0xb6, 0x6c, 0x25, 0x5d, 0x5b, 0x36, 0x93, 0x2d, 0x19, -0x35, 0x1b, 0xcd, 0x0d, 0xa4, 0xe2, 0x64, 0xeb, 0xee, 0xc1, 0x9c, 0x9a, 0x24, 0xd1, 0x54, 0x1f, -0xe9, 0x1c, 0xe8, 0xc9, 0x46, 0xb3, 0x03, 0xea, 0x20, 0xb4, 0xa4, 0x33, 0xbb, 0xb3, 0x03, 0xf1, -0xfe, 0x1c, 0x79, 0x9a, 0x34, 0xf8, 0xea, 0xeb, 0x09, 0x6c, 0xeb, 0x57, 0x09, 0xeb, 0xdd, 0xaa, -0xee, 0x52, 0x13, 0xe9, 0x4c, 0x52, 0x4d, 0xe5, 0xc8, 0x36, 0x35, 0x9a, 0x74, 0x13, 0x08, 0x24, -0x12, 0xa4, 0x8b, 0x72, 0x0f, 0x92, 0x2e, 0x75, 0x50, 0xcd, 0xee, 0x52, 0xfb, 0x3c, 0xe0, 0x6b, -0xf0, 0xf8, 0xbe, 0xe1, 0xc1, 0xce, 0x0d, 0xf0, 0xff, 0x87, 0x9c, 0x91, 0x77, 0xb6, 0x45, 0xb3, -0x89, 0xdd, 0xa4, 0x6d, 0xb8, 0x57, 0xcd, 0xe4, 0x06, 0xd2, 0xa9, 0x5a, 0x53, 0xa4, 0x05, 0xbe, -0xa7, 0xf6, 0xe6, 0xd2, 0x59, 0x08, 0xf4, 0xf5, 0x65, 0xd5, 0xc1, 0x41, 0x00, 0x05, 0xc0, 0x88, -0x5f, 0x57, 0x80, 0xce, 0x1e, 0x48, 0x33, 0x88, 0x00, 0x59, 0xb8, 0x78, 0xac, 0x4f, 0xec, 0x1a, -0xdd, 0x9a, 0x8f, 0x7d, 0x81, 0xf4, 0x59, 0x00, 0x9f, 0xc5, 0xec, 0x5f, 0xb1, 0x22, 0xb6, 0xaa, -0xe5, 0x2a, 0xf2, 0x2c, 0x0b, 0xfa, 0x7f, 0x52, 0x88, 0x57, 0x6e, 0xf9, 0x2d, 0x18, 0x00, 0x36, -0x5d, 0x05, 0xa3, 0x7c, 0x19, 0xc4, 0x0c, 0xdc, 0x50, 0x80, 0x97, 0x67, 0x84, 0x4c, 0x19, 0xcd, -0x3f, 0x10, 0xb0, 0xdf, 0xf4, 0x2c, 0xf8, 0x9a, 0x1f, 0xd4, 0xea, 0xfd, 0xf0, 0x23, 0xfc, 0x8e, -0xe3, 0xf7, 0x48, 0xfd, 0x88, 0x90, 0x83, 0x86, 0xfa, 0x11, 0x11, 0x04, 0xa8, 0x1f, 0x01, 0x10, -0x2c, 0x48, 0x59, 0x21, 0xe4, 0x51, 0x16, 0x58, 0x60, 0x13, 0xa6, 0x12, 0xfc, 0xf8, 0x2d, 0xf9, -0x67, 0x30, 0xd7, 0x33, 0x32, 0x02, 0x1d, 0x10, 0x37, 0x8d, 0x08, 0x37, 0xcc, 0x23, 0xf3, 0xbf, -0xe4, 0x21, 0x1c, 0x72, 0x6c, 0xde, 0xf4, 0x31, 0x58, 0x48, 0x27, 0x6d, 0x2f, 0x7b, 0xb7, 0xd9, -0x0d, 0xa2, 0x64, 0x04, 0x31, 0xb6, 0x1a, 0x53, 0x21, 0xbe, 0x9a, 0x8c, 0xd0, 0x6d, 0xb5, 0xb2, -0x14, 0xe7, 0x61, 0x01, 0x88, 0x02, 0x1c, 0xd8, 0x61, 0x84, 0x84, 0x1f, 0x40, 0x24, 0x23, 0x50, -0xa0, 0xad, 0xf0, 0x2e, 0x8e, 0x61, 0x04, 0x4b, 0xcc, 0x88, 0xe5, 0xf7, 0x18, 0xa7, 0x81, 0x71, -0x2a, 0x87, 0x5e, 0x43, 0x0a, 0x59, 0x42, 0x91, 0xe3, 0x00, 0xab, 0x82, 0x3f, 0x0e, 0x1e, 0xd5, -0xf5, 0xf2, 0x2e, 0xa7, 0xa3, 0x7b, 0x97, 0xd3, 0xd1, 0x2b, 0x2b, 0xd7, 0xce, 0xe3, 0xba, 0x4c, -0x7f, 0x96, 0x97, 0x77, 0x2a, 0xf3, 0xe1, 0x4b, 0xcd, 0xeb, 0xbe, 0x73, 0x3b, 0xce, 0xb7, 0xe6, -0xbb, 0x13, 0xce, 0x2d, 0xd1, 0xaa, 0xc8, 0x44, 0xc3, 0x1a, 0x08, 0xe4, 0x61, 0xed, 0x2b, 0x48, -0xfb, 0x51, 0xe7, 0xb4, 0xbb, 0x59, 0x1e, 0x72, 0x82, 0x73, 0x9c, 0x2c, 0x9b, 0x1c, 0xb7, 0x4a, -0xe2, 0xa8, 0x86, 0x1a, 0xc6, 0xb7, 0x59, 0x03, 0xb6, 0x26, 0x00, 0x7b, 0x93, 0x00, 0xd6, 0xe6, -0x85, 0xd7, 0x67, 0x97, 0xd7, 0xbe, 0x82, 0x43, 0xee, 0x0c, 0x05, 0x6a, 0x5f, 0x11, 0x20, 0x14, -0x90, 0x77, 0x9e, 0x3e, 0x14, 0x73, 0x58, 0x9b, 0x5f, 0x5f, 0xb8, 0xf0, 0x75, 0x2d, 0x95, 0xb5, -0xe7, 0x00, 0x6a, 0x5f, 0x15, 0x20, 0xab, 0xe1, 0xee, 0xbd, 0x5e, 0xaa, 0x05, 0x47, 0x4f, 0xe7, -0x13, 0x00, 0xa7, 0x6d, 0x92, 0x38, 0x46, 0x47, 0x89, 0x59, 0xd7, 0xce, 0x3f, 0xa8, 0x51, 0x2d, -0xe4, 0x9d, 0x1d, 0x99, 0xea, 0x9a, 0xd8, 0xca, 0xb5, 0xf3, 0xb8, 0x0c, 0x5f, 0xd6, 0x01, 0xf6, -0xdb, 0xc2, 0xff, 0xf8, 0xca, 0xdf, 0xcf, 0xc3, 0x9c, 0xa8, 0xa8, 0x12, 0xcd, 0xcb, 0x0e, 0xa8, -0xdb, 0xed, 0xbe, 0x6a, 0xb0, 0x45, 0xc8, 0x59, 0xaa, 0x97, 0xbc, 0xd3, 0xa6, 0x6b, 0x31, 0x56, -0x8d, 0x5a, 0x74, 0x8c, 0xc6, 0xa5, 0x17, 0x26, 0x63, 0x06, 0x72, 0x40, 0xe9, 0x08, 0x8d, 0xd9, -0x33, 0xd5, 0x06, 0xa4, 0x1b, 0x42, 0x63, 0xf2, 0x4e, 0x07, 0xf6, 0xa9, 0x7d, 0xb8, 0xda, 0xf0, -0xc2, 0xbe, 0x98, 0xaf, 0x75, 0x4c, 0xe7, 0xfe, 0x83, 0x1c, 0x95, 0xa1, 0xb1, 0xda, 0xbd, 0xd5, -0x40, 0x0e, 0x5c, 0x7c, 0x48, 0x01, 0xad, 0x13, 0xa5, 0x1a, 0xba, 0x7f, 0xe0, 0x7c, 0x85, 0x08, -0xf2, 0x10, 0x8c, 0x54, 0x40, 0xf8, 0xd2, 0xcc, 0x4c, 0x1b, 0x5a, 0xe4, 0xcd, 0x3d, 0x5e, 0x2f, -0xac, 0x0a, 0xdf, 0x2f, 0x64, 0x34, 0xed, 0x5a, 0xa3, 0x7c, 0x38, 0x32, 0x91, 0x01, 0x9f, 0x17, -0x56, 0x7b, 0x61, 0x29, 0x0d, 0x79, 0x48, 0xb1, 0x5e, 0x47, 0xeb, 0x9d, 0xd3, 0x15, 0x15, 0xf4, -0x34, 0xdf, 0x54, 0x0d, 0x60, 0x0b, 0x07, 0x4f, 0x82, 0x01, 0xed, 0xf6, 0xdd, 0xda, 0x5f, 0x82, -0x05, 0xf3, 0x46, 0xcc, 0xdd, 0xb8, 0xbb, 0xeb, 0xd6, 0xd1, 0x3d, 0x36, 0x87, 0x83, 0xeb, 0x20, -0x1c, 0xb4, 0x8d, 0xc9, 0x43, 0xd6, 0x2d, 0x5b, 0x3e, 0xd5, 0xce, 0x93, 0x2d, 0xc1, 0xc8, 0xe7, -0x79, 0x80, 0xff, 0xb4, 0xf8, 0x9a, 0xf3, 0x60, 0x71, 0x80, 0xe0, 0x69, 0x97, 0x87, 0x3c, 0xed, -0x19, 0xa0, 0x1c, 0x98, 0xee, 0xa9, 0x16, 0x7c, 0xcd, 0x20, 0xc8, 0x7b, 0xd0, 0xa6, 0x9a, 0x01, -0xf2, 0x20, 0xdf, 0x0f, 0x22, 0xad, 0x75, 0xf8, 0x77, 0x38, 0x29, 0x45, 0x10, 0x4a, 0x94, 0x2c, -0xb6, 0x59, 0x44, 0xb4, 0x47, 0x29, 0x26, 0x61, 0x9f, 0x32, 0x7a, 0xce, 0x30, 0xaf, 0xc0, 0xbc, -0x23, 0xc3, 0xfa, 0x5d, 0xe9, 0xc6, 0xb4, 0x9c, 0xf6, 0x9a, 0xf1, 0x63, 0xc9, 0x88, 0x25, 0x6d, -0x86, 0xb6, 0x54, 0xe0, 0x67, 0x40, 0xde, 0xeb, 0x71, 0x3c, 0x29, 0x03, 0xe6, 0x80, 0x11, 0xfa, -0x0c, 0x52, 0x01, 0xca, 0xe5, 0xfb, 0x25, 0x49, 0xde, 0x23, 0x49, 0x7f, 0xe6, 0x67, 0xed, 0x13, -0x54, 0x3b, 0x92, 0x82, 0xc6, 0xcc, 0x55, 0xc9, 0x83, 0x63, 0xdf, 0x86, 0x36, 0x6b, 0xb8, 0x23, -0xdf, 0x32, 0x2b, 0x41, 0xfd, 0x63, 0x12, 0x6c, 0xcb, 0xc7, 0x40, 0x9b, 0x43, 0x9e, 0xc1, 0xad, -0x5b, 0x09, 0x49, 0xa4, 0xef, 0x53, 0xb3, 0x40, 0x4b, 0x43, 0x99, 0x0c, 0x2d, 0xe5, 0xb2, 0xd1, -0x54, 0x5c, 0xf5, 0x90, 0x96, 0x68, 0xea, 0xd6, 0x1c, 0x89, 0x26, 0x12, 0xe9, 0xde, 0x68, 0x4e, -0x25, 0x51, 0x92, 0x52, 0xef, 0x23, 0x83, 0xba, 0x9b, 0x1b, 0xcc, 0x45, 0x7b, 0x77, 0x98, 0x80, -0xba, 0xc0, 0x4e, 0xda, 0x8c, 0x8e, 0x04, 0x08, 0x21, 0xdf, 0x53, 0xb3, 0x83, 0x7a, 0xb1, 0x4b, -0xdd, 0x35, 0x50, 0x2a, 0x22, 0xd3, 0xb6, 0xdd, 0x19, 0x75, 0x3d, 0x41, 0x07, 0x4a, 0x16, 0x5d, -0x22, 0x56, 0x59, 0xd3, 0xe6, 0x74, 0x9f, 0x9a, 0xc0, 0x8a, 0x93, 0x40, 0x73, 0x2a, 0x4d, 0x52, -0xd1, 0xa4, 0xba, 0x01, 0x48, 0x2d, 0x98, 0xb6, 0xe6, 0xa2, 0xd9, 0x1c, 0x21, 0xd0, 0x86, 0x2e, -0x15, 0x01, 0x5b, 0x07, 0xf6, 0xa8, 0x34, 0x4f, 0x46, 0xe3, 0x03, 0xbd, 0x24, 0x16, 0x1d, 0xcc, -0x91, 0xa4, 0x9a, 0x4c, 0x67, 0x77, 0x43, 0x6f, 0xff, 0x40, 0xa6, 0x54, 0x2e, 0x66, 0x99, 0x6c, -0x3a, 0x87, 0x4e, 0x6d, 0xd3, 0x40, 0xef, 0x0e, 0x88, 0xe8, 0x65, 0x9c, 0x23, 0x84, 0x06, 0xb2, -0x83, 0x54, 0x66, 0x70, 0x77, 0x4e, 0x1d, 0xc4, 0x9c, 0xb6, 0x6f, 0xa6, 0x6e, 0x5b, 0x9f, 0x25, -0x2a, 0x4c, 0x32, 0xfd, 0xd1, 0x41, 0x95, 0x34, 0x78, 0x1b, 0x4c, 0xcc, 0x1f, 0x42, 0xa7, 0x9a, -0x82, 0xba, 0x0d, 0x24, 0x50, 0x5c, 0x87, 0x3e, 0x13, 0xdc, 0xd9, 0x92, 0x4e, 0xf4, 0xb5, 0x44, -0x33, 0xb9, 0xa1, 0xac, 0x7a, 0x37, 0x69, 0x8f, 0xa7, 0xd2, 0x59, 0x7a, 0x03, 0x04, 0xb6, 0x6c, -0xad, 0xdb, 0xc0, 0x7c, 0x3b, 0xae, 0x60, 0x32, 0x93, 0x4e, 0x0c, 0xa4, 0x54, 0x13, 0xe0, 0x82, -0xf5, 0xa9, 0x3d, 0x43, 0xf1, 0x6f, 0xb7, 0xa7, 0x06, 0x72, 0x2d, 0x38, 0x57, 0xb8, 0x13, 0x7d, -0xac, 0x9a, 0xbb, 0xdb, 0x04, 0x2d, 0x91, 0x3b, 0x70, 0xde, 0x8d, 0x4d, 0xbe, 0x46, 0x1f, 0x4d, -0xd7, 0xb1, 0x74, 0x2d, 0x4b, 0x1b, 0x68, 0xda, 0xd6, 0xa2, 0xe7, 0xbe, 0x7a, 0x96, 0xfa, 0x7c, -0x40, 0x42, 0xac, 0x4b, 0x1d, 0x56, 0x9b, 0x9a, 0x1a, 0x58, 0x5a, 0x0f, 0x91, 0x96, 0x2e, 0xb8, -0x13, 0xaf, 0x9f, 0x20, 0xea, 0x7d, 0x37, 0xb9, 0x2f, 0x3a, 0x48, 0xa2, 0xb9, 0x25, 0x84, 0x58, -0x74, 0x87, 0xda, 0x43, 0xa7, 0xf4, 0x15, 0xea, 0x40, 0x6a, 0x57, 0x34, 0x31, 0xd0, 0xf7, 0x55, -0xe2, 0x0e, 0x35, 0x9b, 0x52, 0x13, 0xa4, 0x37, 0x9d, 0x4c, 0xe2, 0x3d, 0x46, 0xf5, 0x27, 0xb7, -0xc2, 0xad, 0xb8, 0xcd, 0x81, 0xcd, 0x45, 0x33, 0xa1, 0x25, 0xdd, 0x4c, 0x3a, 0x71, 0xfd, 0x03, -0x09, 0x15, 0x77, 0x88, 0xa5, 0x4b, 0xea, 0x64, 0x5b, 0x74, 0x70, 0x07, 0xe8, 0xd6, 0xd3, 0x9b, -0x55, 0xa9, 0xed, 0x0c, 0xe0, 0xdc, 0x07, 0xa2, 0x89, 0xe2, 0x1e, 0x91, 0x7e, 0x35, 0xda, 0xa7, -0x66, 0x6b, 0x4d, 0x8b, 0x43, 0xa3, 0x1a, 0x77, 0xb3, 0xbd, 0x18, 0x64, 0x7b, 0x8e, 0x66, 0xc1, -0x46, 0xa2, 0xeb, 0x8f, 0xd3, 0xa5, 0x45, 0xba, 0xf9, 0x58, 0xbc, 0x93, 0x31, 0xe0, 0xa2, 0x17, -0x17, 0xd3, 0xd1, 0xb5, 0x2d, 0x74, 0xef, 0xd6, 0x76, 0x79, 0x63, 0x67, 0xdb, 0xb6, 0xc0, 0xd6, -0x4d, 0x6e, 0xe2, 0xbb, 0xcd, 0xf4, 0x87, 0x37, 0xb5, 0x9e, 0x6e, 0x6a, 0xb1, 0x35, 0x92, 0xcb, -0xd2, 0x6d, 0x1d, 0x4a, 0x45, 0x77, 0x45, 0x07, 0x12, 0xd1, 0x9e, 0x84, 0xfa, 0x65, 0xc7, 0x18, -0x52, 0x54, 0x5c, 0x9b, 0xd4, 0x12, 0x11, 0x1e, 0x13, 0xbb, 0x9f, 0x4b, 0x2c, 0x29, 0x1c, 0x7c, -0x70, 0xf1, 0x70, 0xf4, 0x91, 0xc1, 0xa1, 0xde, 0x5e, 0x75, 0x30, 0x36, 0x94, 0x48, 0xec, 0x46, -0xce, 0x3b, 0x8b, 0x6c, 0x77, 0x93, 0x96, 0x7e, 0x15, 0x67, 0x35, 0x94, 0x24, 0xc9, 0x81, 0xc1, -0x64, 0x34, 0xd7, 0xdb, 0xaf, 0x4f, 0xba, 0x87, 0xad, 0x77, 0x2a, 0x7d, 0x1f, 0xdd, 0x80, 0xaf, -0x3f, 0x68, 0xf4, 0x84, 0x91, 0x58, 0x3a, 0x8b, 0x57, 0xb5, 0xda, 0xeb, 0xf1, 0x78, 0x48, 0xe9, -0x60, 0x9a, 0x00, 0x3d, 0x61, 0xa1, 0x40, 0x6f, 0x9c, 0xa3, 0xe3, 0x9d, 0xd3, 0x65, 0x65, 0xf2, -0x90, 0x3c, 0x54, 0xa2, 0x1c, 0xa9, 0xfe, 0x7d, 0xca, 0xf1, 0xf7, 0xfe, 0x17, 0xcf, 0x7c, 0x89, -0x42, 0x6b, 0x4f, 0x34, 0x87, 0xf3, 0xe1, 0x42, 0xa9, 0x76, 0xdf, 0x5c, 0xa9, 0x16, 0xbe, 0x44, -0x1a, 0x48, 0x1a, 0xaa, 0x4e, 0xcd, 0xe3, 0xbd, 0x64, 0xb6, 0x39, 0x40, 0x8a, 0x1b, 0x6d, 0xfd, -0x60, 0x56, 0xba, 0xa8, 0x67, 0x22, 0x90, 0x2d, 0x0f, 0x07, 0xdc, 0xbb, 0xf1, 0x3a, 0x31, 0xc8, -0xcf, 0x69, 0xeb, 0x6d, 0xb0, 0x6e, 0x84, 0x40, 0xbc, 0x51, 0x44, 0x2f, 0x79, 0xbd, 0x16, 0xf7, -0x58, 0x83, 0xc4, 0xb4, 0xd8, 0xea, 0xa1, 0x3d, 0xbc, 0xda, 0xef, 0xf7, 0x30, 0x8e, 0x51, 0x5e, -0x31, 0x38, 0x0b, 0x5e, 0x31, 0xbc, 0x1b, 0xe6, 0x0c, 0x33, 0x1b, 0x99, 0x77, 0x97, 0x8f, 0x84, -0xb3, 0x0e, 0x8d, 0x51, 0x3e, 0x94, 0x8f, 0x6c, 0xf9, 0x14, 0x2c, 0x1d, 0x63, 0xb1, 0x1a, 0x56, -0xbf, 0x42, 0x75, 0x5c, 0xf5, 0x84, 0x17, 0xbd, 0x30, 0xb0, 0xb9, 0x54, 0x77, 0x47, 0x26, 0x14, -0x37, 0x61, 0x52, 0x6b, 0x83, 0xb0, 0xfe, 0x9d, 0x03, 0x98, 0x36, 0xd2, 0x96, 0x01, 0xa2, 0x8f, -0x85, 0x63, 0xcf, 0x19, 0xce, 0x7a, 0x97, 0x3b, 0xfd, 0x38, 0xea, 0x07, 0xce, 0x7b, 0x33, 0x42, -0x16, 0x16, 0xb5, 0x78, 0x29, 0x03, 0x9d, 0xd3, 0x9d, 0x06, 0x3a, 0x5b, 0x68, 0x72, 0xa4, 0x71, -0xa4, 0x04, 0xfa, 0x65, 0x80, 0xcf, 0xcd, 0x09, 0x8c, 0xf8, 0x4c, 0x58, 0xba, 0xec, 0x73, 0x83, -0xe5, 0x54, 0x02, 0xcc, 0x58, 0x7e, 0x0f, 0xcb, 0x2b, 0xb1, 0x5c, 0x89, 0xe5, 0x0b, 0x8c, 0xa3, -0x0a, 0x4b, 0xbf, 0x60, 0xa5, 0x1b, 0xb1, 0x74, 0xd6, 0x6b, 0xa6, 0x5a, 0x96, 0x13, 0x3a, 0xfe, -0xcd, 0x3d, 0x78, 0x2b, 0xb9, 0xc1, 0x8c, 0xb7, 0x12, 0xa5, 0xd5, 0xd1, 0x9b, 0x6b, 0xd5, 0x79, -0xf9, 0x30, 0xa3, 0x56, 0x16, 0xa9, 0x4d, 0xf2, 0xe1, 0xf6, 0x8f, 0xa0, 0x9a, 0x95, 0x5b, 0x18, -0xc7, 0x13, 0xf2, 0x61, 0xaf, 0x59, 0x3e, 0x8c, 0xb3, 0xae, 0xf1, 0x9c, 0x45, 0x6a, 0x84, 0xd6, -0x71, 0x5d, 0xb4, 0xdb, 0xcf, 0xcb, 0x47, 0xda, 0xaf, 0x48, 0x02, 0xa3, 0x76, 0xe9, 0x5c, 0xf8, -0xe9, 0xb4, 0x83, 0x5f, 0x2d, 0x33, 0x79, 0x11, 0x9d, 0xb6, 0xb1, 0xd4, 0xe7, 0x5e, 0xac, 0x5f, -0xc7, 0x24, 0x13, 0xef, 0x08, 0x6d, 0x07, 0x4b, 0xe7, 0x74, 0x0d, 0xc8, 0x6c, 0x54, 0x56, 0x1a, -0x22, 0x5e, 0x30, 0xc4, 0xdd, 0x56, 0x10, 0x47, 0x71, 0x7d, 0x85, 0x98, 0xd5, 0x0a, 0xa1, 0x51, -0xe2, 0x3f, 0x7d, 0x02, 0xec, 0xb1, 0x55, 0x5e, 0xa0, 0xb3, 0xea, 0x7f, 0xad, 0x7b, 0xc2, 0xec, -0xd7, 0xb4, 0x3f, 0x2f, 0x84, 0xf3, 0xad, 0x7e, 0x79, 0x28, 0x58, 0xfc, 0xc2, 0x97, 0x9a, 0x9a, -0x6c, 0x78, 0xe3, 0xda, 0xd3, 0x60, 0xb3, 0x7b, 0xc1, 0x61, 0xdb, 0x74, 0xf4, 0x9c, 0xd7, 0xe4, -0x15, 0xf1, 0x16, 0xb6, 0xd1, 0x7e, 0x37, 0x65, 0x1d, 0xfa, 0x8c, 0x13, 0xed, 0xfa, 0x2c, 0xa7, -0xd8, 0xbe, 0xee, 0x8d, 0x1b, 0xbc, 0x65, 0x8a, 0x91, 0xb5, 0xa4, 0xe5, 0xa9, 0xee, 0x89, 0x0e, -0x8c, 0x02, 0x58, 0x6d, 0xb7, 0xbe, 0xd3, 0xdd, 0x13, 0xba, 0x6d, 0x94, 0x8f, 0xb4, 0xeb, 0xb6, -0x31, 0x15, 0xde, 0xa1, 0x31, 0xdb, 0x28, 0x7f, 0x48, 0x9e, 0xf2, 0x9a, 0x58, 0xe9, 0x07, 0x4c, -0x5a, 0x35, 0x31, 0xe0, 0x2c, 0x6a, 0xe4, 0xa1, 0xef, 0x4f, 0x84, 0x2f, 0x7d, 0x67, 0x83, 0x2d, -0x0d, 0xeb, 0x70, 0x3e, 0x4d, 0xa8, 0x51, 0xb3, 0x33, 0x0d, 0xfe, 0x06, 0x2f, 0x84, 0xcc, 0x79, -0x1a, 0xc9, 0xf7, 0x82, 0xb0, 0xad, 0x23, 0x10, 0x77, 0xd8, 0x4c, 0x7a, 0x3c, 0x64, 0x45, 0xeb, -0x14, 0xcb, 0x3b, 0xc6, 0xe2, 0x86, 0x86, 0x66, 0x28, 0xf7, 0x0a, 0x5e, 0x40, 0xb9, 0xc3, 0xda, -0x1c, 0x93, 0x7d, 0x54, 0x09, 0x62, 0xfc, 0xf3, 0xb2, 0xa6, 0xf5, 0x54, 0x85, 0x87, 0x2b, 0xca, -0x8a, 0x6d, 0x5f, 0xb0, 0xb6, 0xa7, 0x14, 0xfb, 0x52, 0x19, 0x15, 0x45, 0x19, 0xe5, 0x5f, 0xca, -0xf8, 0x1d, 0xe3, 0x7b, 0x1e, 0xe7, 0xb2, 0xe0, 0x8d, 0xa0, 0x8e, 0x55, 0x4e, 0x93, 0xed, 0x4f, -0xbc, 0xd7, 0x31, 0xea, 0x19, 0xdd, 0x4a, 0x22, 0x13, 0x2f, 0xd0, 0x13, 0x96, 0xdb, 0x05, 0x0f, -0x08, 0x9b, 0xaf, 0x2e, 0xbc, 0xa4, 0xdc, 0x65, 0x4d, 0x60, 0x44, 0x99, 0x80, 0x2a, 0x70, 0x67, -0xd6, 0x9c, 0xda, 0x9b, 0x5c, 0xef, 0xae, 0xb8, 0xf4, 0x9c, 0xd5, 0x78, 0x6e, 0x2c, 0xee, 0x23, -0xcb, 0xb2, 0x0b, 0x85, 0xd1, 0x53, 0x27, 0xa1, 0x4a, 0xb5, 0x59, 0xbd, 0xe0, 0xbe, 0x98, 0x3f, -0x7d, 0x12, 0xaa, 0x7b, 0xaa, 0xbd, 0x2e, 0x30, 0xe9, 0x63, 0xca, 0x8f, 0xb0, 0x75, 0xcd, 0xc7, -0x0d, 0xa1, 0xfd, 0xe7, 0xf7, 0x77, 0xed, 0xeb, 0xda, 0x1b, 0x39, 0x88, 0x16, 0xe7, 0x82, 0xca, -0x53, 0xfb, 0x52, 0x7f, 0x6b, 0xdf, 0xfa, 0x22, 0x1d, 0xcb, 0xe8, 0xd8, 0x34, 0x0c, 0xca, 0x65, -0xe7, 0x58, 0x71, 0xfd, 0x7e, 0xb1, 0x78, 0xee, 0x68, 0xed, 0x2d, 0x4c, 0x31, 0x50, 0xa6, 0xa9, -0x44, 0x25, 0x9e, 0x59, 0xb0, 0x79, 0x9d, 0x60, 0x61, 0x6d, 0x6f, 0xb3, 0xf3, 0x48, 0xc8, 0x76, -0xd4, 0xd0, 0x01, 0x06, 0x46, 0xfb, 0x67, 0xf9, 0x08, 0x9e, 0x41, 0x71, 0x0f, 0x90, 0xf2, 0xce, -0xe9, 0x91, 0xf9, 0xee, 0x09, 0x66, 0x0d, 0x1b, 0xf4, 0x33, 0x69, 0xeb, 0x2f, 0x5b, 0xc5, 0xb8, -0xde, 0xdf, 0xa4, 0xef, 0xfb, 0xd1, 0xee, 0x09, 0x7d, 0x27, 0x37, 0x63, 0x7a, 0xce, 0xa7, 0x74, -0xd8, 0x5d, 0x18, 0x50, 0xb9, 0xa0, 0xca, 0x5b, 0xc6, 0xf8, 0x34, 0xdc, 0x55, 0x26, 0xd7, 0x68, -0xc0, 0xd2, 0xed, 0x54, 0x86, 0x17, 0x6d, 0x84, 0xcd, 0xab, 0x06, 0xe7, 0xc5, 0x34, 0x36, 0x4a, -0x54, 0x4e, 0xd7, 0x58, 0xe4, 0x61, 0x9c, 0x9b, 0x13, 0xe7, 0x36, 0x96, 0x7a, 0xc9, 0xd6, 0xc5, -0xd6, 0xd1, 0x68, 0xef, 0xc8, 0xe1, 0xdc, 0x50, 0x93, 0x45, 0x4b, 0xb0, 0xea, 0x7e, 0x60, 0x00, -0x9c, 0xde, 0x30, 0xb8, 0xe3, 0x3e, 0xf3, 0x89, 0x50, 0x60, 0x53, 0x1b, 0x18, 0x62, 0x6c, 0x4e, -0xc6, 0x1b, 0x4b, 0x96, 0xa6, 0xdc, 0x18, 0x7c, 0x1a, 0xc3, 0x90, 0x34, 0xb8, 0x75, 0xff, 0xe0, -0xc4, 0x53, 0x52, 0x69, 0x94, 0x2f, 0x94, 0x66, 0x25, 0xdf, 0xa1, 0xed, 0x43, 0x79, 0xeb, 0xed, -0x49, 0x8c, 0x10, 0x87, 0x81, 0x04, 0x9f, 0x0a, 0x27, 0xb5, 0x67, 0xb0, 0xb7, 0xd6, 0x54, 0xe3, -0x1a, 0xd9, 0x7b, 0x01, 0xcc, 0xda, 0x33, 0x2e, 0xec, 0x63, 0x6c, 0xd1, 0x4e, 0xb1, 0xfa, 0x2a, -0xed, 0x05, 0xac, 0xe3, 0x2a, 0x6a, 0x2f, 0xb1, 0xfa, 0xcd, 0xda, 0x59, 0xea, 0x09, 0x2d, 0x60, -0xc8, 0x53, 0xaa, 0xcb, 0xaf, 0x15, 0x82, 0xcf, 0x6a, 0xf3, 0xb6, 0x61, 0xf4, 0x45, 0x54, 0x07, -0x1b, 0xce, 0xd1, 0xec, 0x1b, 0x01, 0x29, 0x23, 0x5a, 0x93, 0x20, 0x65, 0xd7, 0x9c, 0xce, 0xc7, -0x8d, 0xe4, 0x2c, 0x8d, 0xbe, 0xbb, 0xf2, 0xdd, 0xe3, 0x0f, 0xf8, 0x7f, 0x9e, 0x8f, 0x7d, 0xe8, -0x6a, 0x07, 0x49, 0xe7, 0x66, 0xda, 0xdf, 0x51, 0xf2, 0x88, 0xf4, 0xa5, 0xd6, 0x7e, 0xf5, 0x77, -0x4d, 0xb8, 0x6a, 0xcd, 0x30, 0x83, 0x6f, 0x03, 0x9a, 0xcf, 0xd2, 0x9c, 0xdc, 0xb0, 0x1e, 0xb2, -0x83, 0x21, 0xe1, 0xdc, 0x43, 0xd4, 0x36, 0xe2, 0x06, 0x68, 0xf3, 0x83, 0x15, 0x82, 0x01, 0x8c, -0xaf, 0xed, 0xd0, 0x96, 0x87, 0xec, 0x7d, 0xb4, 0x2d, 0x6e, 0x84, 0x36, 0xf0, 0x2b, 0x55, 0x41, -0x7f, 0xd8, 0x6f, 0x06, 0x58, 0xd3, 0x43, 0xeb, 0x16, 0x05, 0xb9, 0xc1, 0xc7, 0x46, 0xba, 0xa7, -0x74, 0x72, 0x77, 0x41, 0x63, 0x79, 0xee, 0xc1, 0x90, 0x78, 0x7e, 0x6f, 0xf7, 0x44, 0x5c, 0x62, -0x6d, 0x7d, 0x4a, 0xb8, 0xf5, 0xd5, 0xed, 0x7a, 0x79, 0xbb, 0xd2, 0xdc, 0xfa, 0x6a, 0x4c, 0x2f, -0x67, 0x14, 0x9f, 0x54, 0x86, 0xef, 0xb0, 0x1b, 0x31, 0xad, 0x2c, 0xf2, 0xee, 0x52, 0x98, 0x2f, -0x37, 0x8e, 0x28, 0x55, 0x48, 0x85, 0x22, 0x75, 0x9f, 0xee, 0x05, 0x8c, 0x07, 0xe4, 0x29, 0xea, -0xad, 0x8c, 0x93, 0xa5, 0xd1, 0xba, 0x27, 0x90, 0xcb, 0x18, 0xaf, 0xc6, 0xb3, 0x55, 0x1a, 0xcb, -0x83, 0x63, 0xd9, 0x8a, 0x63, 0x59, 0xb1, 0xb5, 0xbc, 0xd8, 0xf2, 0x43, 0x26, 0xd1, 0x50, 0xac, -0x3d, 0x56, 0x94, 0xf8, 0xa8, 0x2e, 0x11, 0xfd, 0x21, 0x5b, 0x29, 0xe2, 0x02, 0x03, 0xea, 0x6d, -0xd1, 0x3d, 0xb0, 0xf1, 0x6f, 0x4a, 0xa7, 0x10, 0x2d, 0x9d, 0xfa, 0xb7, 0x99, 0x75, 0xc0, 0x5a, -0x75, 0x3b, 0x7b, 0x5a, 0x6f, 0x55, 0xfc, 0xf4, 0x1c, 0x5c, 0xfd, 0x80, 0xb6, 0x05, 0x98, 0xf5, -0xc6, 0x6d, 0x45, 0x8e, 0x33, 0xf2, 0xa4, 0x7d, 0x3b, 0x84, 0x22, 0x13, 0xec, 0x64, 0x11, 0xf3, -0x91, 0xcd, 0x8d, 0x4d, 0x62, 0x1c, 0x2a, 0x66, 0x1e, 0x7d, 0x43, 0x59, 0x59, 0xe4, 0xb9, 0x20, -0x4f, 0x46, 0x26, 0x1e, 0x7d, 0x23, 0x18, 0x52, 0x0c, 0xf8, 0xd4, 0x15, 0x36, 0x7f, 0xac, 0x3d, -0x63, 0x7e, 0x84, 0xda, 0x4b, 0x8c, 0xb0, 0xf6, 0xdf, 0x94, 0xe6, 0xea, 0xf5, 0xa0, 0x25, 0x4c, -0x51, 0x5a, 0x85, 0x81, 0xf9, 0x34, 0x73, 0x47, 0x30, 0x6e, 0x77, 0x6d, 0x07, 0xa7, 0x36, 0x85, -0xa9, 0x47, 0x3b, 0x86, 0x69, 0x83, 0x76, 0xdc, 0xe1, 0x14, 0xad, 0xae, 0xed, 0xa2, 0x5d, 0x7b, -0x1c, 0x53, 0xa7, 0xf6, 0xe4, 0xd1, 0xd7, 0xd1, 0x76, 0x9f, 0xd5, 0x9e, 0xc4, 0xef, 0xf1, 0x61, -0xc0, 0xf4, 0x38, 0x7e, 0xc7, 0xf0, 0x9b, 0x62, 0x5a, 0x55, 0xe3, 0x9c, 0x2d, 0xf1, 0x95, 0x04, -0x6d, 0xaa, 0xd6, 0xaf, 0xcd, 0xd5, 0xee, 0x80, 0x2a, 0x6d, 0xfe, 0xbb, 0xcf, 0x82, 0xe4, 0x40, -0x0a, 0xe9, 0xcc, 0x80, 0xd5, 0xac, 0x88, 0xdb, 0xf2, 0x91, 0xf1, 0x8e, 0x13, 0x78, 0x2a, 0xbe, -0x70, 0x05, 0x40, 0xb2, 0xc2, 0xc5, 0xfc, 0xc5, 0xd1, 0x8e, 0x50, 0xcc, 0x80, 0x7b, 0x59, 0x49, -0xad, 0xf1, 0x96, 0xb3, 0xd4, 0x72, 0xab, 0x41, 0x31, 0x33, 0x39, 0x58, 0x33, 0x60, 0xcd, 0x0a, -0x5d, 0xa3, 0x17, 0xf1, 0xef, 0x42, 0xfe, 0x42, 0x9e, 0x72, 0x91, 0x7a, 0x09, 0x0e, 0xfd, 0x04, -0xdf, 0x70, 0xed, 0x9e, 0x66, 0xba, 0x4e, 0x64, 0x99, 0xd5, 0xec, 0x68, 0xb1, 0x9b, 0x94, 0xf5, -0xb6, 0x88, 0xbe, 0x1a, 0x15, 0x15, 0x68, 0xf7, 0xfb, 0x5c, 0x01, 0xed, 0xa0, 0x2b, 0xac, 0x4d, -0x5a, 0x37, 0xca, 0x87, 0xc2, 0xd9, 0x7e, 0xe6, 0xd1, 0x2b, 0x56, 0xd0, 0x1a, 0x49, 0x6a, 0x93, -0x91, 0x71, 0x6a, 0xa9, 0xd6, 0x3a, 0xed, 0x20, 0xa9, 0xd3, 0xf6, 0xb9, 0xd1, 0xd3, 0xc4, 0x0a, -0xb6, 0x16, 0xbb, 0xd9, 0x11, 0x70, 0xf9, 0x41, 0xa2, 0x67, 0x0c, 0xfd, 0xf8, 0x9b, 0x98, 0x6b, -0x9b, 0xb7, 0x69, 0x17, 0x30, 0x47, 0x3b, 0xd7, 0xde, 0x29, 0xd2, 0xdf, 0xc5, 0x1c, 0xed, 0x5f, -0x7b, 0x0f, 0xf3, 0x7f, 0x7f, 0x77, 0xbb, 0x36, 0x93, 0xd1, 0x70, 0xc4, 0x5f, 0xe3, 0x77, 0x99, -0x84, 0x88, 0xc5, 0x9c, 0x0f, 0xb7, 0x75, 0x46, 0x62, 0xad, 0x04, 0xdf, 0xd8, 0x48, 0xfb, 0xc8, -0xd3, 0x24, 0x18, 0x5c, 0x1b, 0xb5, 0x59, 0x6b, 0x93, 0x20, 0xa1, 0x56, 0x57, 0x30, 0x37, 0x63, -0x3e, 0xa7, 0xdb, 0x47, 0xc5, 0xcd, 0x6e, 0x36, 0x0f, 0x6b, 0x48, 0x3e, 0xe4, 0xad, 0x60, 0x14, -0x17, 0x09, 0xc9, 0x93, 0x54, 0x3f, 0xa5, 0x92, 0x49, 0xfe, 0x08, 0xd7, 0x79, 0x16, 0xbf, 0x2b, -0x59, 0xa0, 0x6f, 0x72, 0xdd, 0x6f, 0xea, 0xf1, 0x8c, 0xde, 0x97, 0xf2, 0x53, 0xea, 0xf5, 0xc5, -0x98, 0x86, 0xca, 0x0a, 0x0f, 0x2f, 0xfb, 0x21, 0x8b, 0x5f, 0xd6, 0xd1, 0x5b, 0x81, 0xb4, 0x66, -0xc1, 0x53, 0x07, 0x92, 0x62, 0x7f, 0x60, 0xcd, 0xcf, 0xf3, 0x49, 0x69, 0x35, 0xbe, 0x25, 0xdf, -0xff, 0xbb, 0x83, 0x7f, 0xd1, 0xf5, 0x97, 0x5d, 0xf9, 0xe7, 0x3f, 0xd6, 0x4e, 0x24, 0x2f, 0x7b, -0xea, 0xb4, 0xf1, 0x8b, 0xcf, 0x6a, 0x27, 0x5c, 0x21, 0x6d, 0x9e, 0x44, 0x58, 0x4c, 0x56, 0x8d, -0xbe, 0xcf, 0x01, 0x95, 0xa8, 0xc1, 0x09, 0x77, 0x1d, 0x52, 0x85, 0x23, 0xbf, 0xc4, 0x79, 0x8c, -0x2b, 0x6f, 0xb9, 0x36, 0x82, 0xc4, 0xf6, 0x7d, 0xa5, 0x75, 0x07, 0x58, 0xc8, 0xc6, 0xe7, 0x2f, -0xd0, 0xdb, 0x3a, 0x5c, 0x68, 0xcd, 0x2b, 0x22, 0xf6, 0xf1, 0x7b, 0x25, 0xf4, 0x5b, 0xf3, 0x5e, -0x03, 0xdd, 0x2f, 0xef, 0x6d, 0xe8, 0x5f, 0x57, 0xc8, 0x67, 0xe6, 0xde, 0x74, 0x03, 0xd5, 0x24, -0xc6, 0xbc, 0x75, 0xc5, 0xb7, 0x16, 0xe3, 0x2c, 0x01, 0xa0, 0x14, 0x67, 0x85, 0x87, 0x85, 0x15, -0xba, 0xce, 0xde, 0x4a, 0xaf, 0x11, 0x65, 0xbc, 0x49, 0xef, 0xb5, 0x6f, 0x9e, 0xd4, 0x6f, 0x9c, -0x58, 0x25, 0x72, 0x8b, 0x79, 0x41, 0xe7, 0xc6, 0x7b, 0x9b, 0xf9, 0x6e, 0x26, 0x4d, 0xd1, 0x4f, -0x91, 0xee, 0x87, 0x6f, 0x91, 0xcb, 0x56, 0x93, 0x01, 0xa1, 0xaa, 0x96, 0x79, 0x46, 0x58, 0x5f, -0x2a, 0x5b, 0x00, 0x36, 0x44, 0x26, 0xd0, 0xde, 0x5b, 0x6f, 0x49, 0x6a, 0x53, 0xe0, 0xc4, 0xf4, -0x18, 0x78, 0x30, 0x3d, 0x0e, 0x0d, 0xc1, 0x01, 0xe8, 0xf2, 0x2e, 0x73, 0xb5, 0x6b, 0x93, 0x7a, -0x0c, 0x62, 0x45, 0x1b, 0x09, 0xf9, 0xd7, 0xfa, 0xa1, 0xab, 0x18, 0xf9, 0xb5, 0x8a, 0xd6, 0xda, -0xa4, 0xf6, 0xb8, 0x68, 0xc7, 0xf4, 0x49, 0xd1, 0xd9, 0x3d, 0x51, 0xa4, 0xeb, 0x72, 0x1b, 0x4b, -0x63, 0x61, 0xeb, 0x47, 0xa2, 0x88, 0xe9, 0xac, 0x68, 0xc4, 0xf4, 0x8a, 0x68, 0xc2, 0x74, 0x4e, -0xac, 0xac, 0x6f, 0x13, 0x1c, 0xba, 0x2f, 0xaa, 0x1f, 0x09, 0x16, 0xae, 0xcd, 0x2a, 0xc6, 0xfa, -0x11, 0x3f, 0xe6, 0xf5, 0x23, 0xf2, 0xd0, 0xb5, 0xcf, 0x31, 0xdd, 0x79, 0xed, 0xca, 0xa2, 0xc4, -0x39, 0xe9, 0x98, 0x36, 0xbc, 0xa4, 0x76, 0xf2, 0xda, 0x5b, 0x4b, 0x6a, 0x67, 0xaf, 0xbd, 0xb6, -0xa4, 0xf6, 0xd6, 0xb5, 0xbb, 0x96, 0xd4, 0x66, 0x16, 0xfe, 0x69, 0x49, 0xed, 0x93, 0x85, 0x97, -0xd0, 0x43, 0x6b, 0x9a, 0xa6, 0xfb, 0x6e, 0xb6, 0x52, 0x49, 0xbc, 0x15, 0x17, 0xbc, 0x2f, 0xca, -0x8f, 0x20, 0xed, 0x12, 0x6b, 0x99, 0x29, 0xb5, 0xb0, 0x1b, 0xb0, 0xda, 0xc9, 0x2c, 0xca, 0xbd, -0xfc, 0xfb, 0xfb, 0xe9, 0xf9, 0xba, 0xee, 0xc5, 0x46, 0x51, 0x01, 0x18, 0x73, 0x61, 0xd4, 0xaa, -0x4d, 0x79, 0xeb, 0x34, 0xdd, 0x77, 0xdc, 0x4f, 0xda, 0xe4, 0x49, 0x3d, 0x6e, 0xaa, 0xd8, 0x6f, -0x6d, 0x93, 0x0f, 0x05, 0x9f, 0xf2, 0x1a, 0xf1, 0x16, 0x15, 0x29, 0x07, 0xd9, 0x28, 0x4f, 0xea, -0xf7, 0x5b, 0xe0, 0x13, 0x21, 0x68, 0xc5, 0xa8, 0x78, 0xe1, 0x73, 0x94, 0x6c, 0x33, 0x3f, 0x0b, -0x6b, 0x50, 0x99, 0xa9, 0x9e, 0x2a, 0x1a, 0x97, 0x6b, 0x9a, 0xae, 0x69, 0x30, 0x88, 0xf1, 0xf4, -0x06, 0xa5, 0x06, 0x5b, 0xff, 0x81, 0xb5, 0xae, 0xc4, 0xd6, 0xc2, 0x57, 0x5a, 0xe5, 0xc8, 0x41, -0x9b, 0x9b, 0xc6, 0xc7, 0xda, 0x9e, 0x8e, 0x96, 0xb8, 0x01, 0x6d, 0xe9, 0x80, 0x1e, 0x7f, 0xd7, -0xce, 0xc3, 0x5c, 0xdf, 0x29, 0x20, 0x59, 0xc3, 0x62, 0xbc, 0xed, 0x40, 0x6b, 0x3d, 0x8e, 0x11, -0xb8, 0x50, 0xa2, 0x5c, 0x1b, 0x5e, 0x2c, 0xed, 0x63, 0xfa, 0x1e, 0xd2, 0x2d, 0x2f, 0x23, 0x2e, -0x8d, 0xd2, 0xbb, 0xf5, 0x18, 0x89, 0x79, 0xe1, 0xff, 0xba, 0x0b, 0xa3, 0x44, 0x7f, 0x7c, 0x5d, -0x71, 0x25, 0xd1, 0x37, 0x82, 0x13, 0x53, 0x0f, 0x78, 0x30, 0x6d, 0x80, 0x86, 0xda, 0xed, 0xa2, -0x15, 0xad, 0x01, 0xbd, 0x23, 0x5a, 0x03, 0x7a, 0x47, 0xd1, 0x29, 0x9f, 0xf9, 0xef, 0xb9, 0xa5, -0x2f, 0x02, 0x9b, 0x47, 0x74, 0xc6, 0x41, 0xd8, 0x80, 0x63, 0x1e, 0xd7, 0x3d, 0xef, 0xa9, 0xb1, -0x18, 0x08, 0xfa, 0x7a, 0xbd, 0x28, 0x4f, 0x15, 0xb9, 0x52, 0xa2, 0xd5, 0x8e, 0xe7, 0xaa, 0xe8, -0xb5, 0xde, 0xd1, 0xfd, 0x19, 0xf5, 0x50, 0xd4, 0x2f, 0x7f, 0x6b, 0x04, 0x04, 0xed, 0x58, 0x0e, -0x46, 0x04, 0xc7, 0x75, 0xb8, 0x03, 0x93, 0x0e, 0x3c, 0x69, 0x2e, 0xea, 0x57, 0xa7, 0x30, 0x66, -0x1b, 0x4b, 0x4a, 0xc4, 0xf8, 0x9b, 0x13, 0x85, 0xbd, 0xf1, 0x7b, 0x8a, 0x2f, 0x02, 0x8d, 0xae, -0x7a, 0x69, 0x7f, 0x8c, 0x06, 0x2a, 0xc5, 0xda, 0xe9, 0x46, 0x8b, 0x45, 0x1d, 0x3e, 0x2c, 0x9e, -0x9f, 0x2a, 0x36, 0xce, 0x74, 0x29, 0x1a, 0x09, 0xa2, 0xfd, 0x2b, 0xab, 0xb1, 0xcf, 0xe3, 0xb4, -0x1f, 0x46, 0xf2, 0x3f, 0xa3, 0xf1, 0x12, 0xbb, 0x13, 0xf2, 0xf1, 0x66, 0x2a, 0x7f, 0x7f, 0xbe, -0xeb, 0xa1, 0x25, 0x31, 0xd0, 0x43, 0x29, 0xdc, 0x01, 0x2a, 0xb3, 0x18, 0x09, 0x99, 0xec, 0x1d, -0x7b, 0xc0, 0x25, 0x6b, 0x8f, 0x2b, 0xff, 0x66, 0x6f, 0x75, 0xb5, 0x68, 0xf3, 0x1d, 0x28, 0x31, -0x86, 0x9e, 0xde, 0xde, 0xca, 0x46, 0xfa, 0x54, 0xbf, 0x1f, 0xa5, 0x4a, 0x7d, 0x44, 0x65, 0x25, -0xab, 0x61, 0xfc, 0x50, 0xdc, 0xdb, 0x13, 0xa2, 0xbd, 0x7b, 0x42, 0x5f, 0x8b, 0x3a, 0x5c, 0x8b, -0xb2, 0x55, 0xc1, 0xe7, 0x44, 0x2b, 0x5d, 0xb3, 0x3a, 0xbf, 0xe8, 0x5c, 0xba, 0xa7, 0xe8, 0xa7, -0x8f, 0x1b, 0x47, 0xe9, 0xef, 0xa3, 0xa7, 0xf3, 0x7d, 0x11, 0xfd, 0x94, 0xbb, 0xdb, 0xe9, 0xcc, -0x24, 0xfa, 0x8a, 0xa8, 0x22, 0xcc, 0x13, 0x18, 0xf3, 0xf4, 0x47, 0x49, 0x8c, 0xc0, 0xef, 0xc5, -0x58, 0xda, 0xa9, 0x7b, 0x07, 0x3a, 0xf2, 0x3d, 0xe4, 0x96, 0x02, 0xf3, 0x0b, 0x2c, 0xd5, 0xbd, -0xae, 0x74, 0x87, 0xee, 0x31, 0xe8, 0x6c, 0x17, 0x39, 0x17, 0x6a, 0x52, 0x25, 0x8b, 0xca, 0x08, -0x61, 0xff, 0x97, 0x36, 0xa4, 0xad, 0x47, 0x8b, 0xc8, 0xeb, 0x2f, 0x44, 0x29, 0xf6, 0xb5, 0x2f, -0x44, 0xbf, 0x3e, 0x27, 0x6b, 0xbf, 0x50, 0x65, 0x05, 0xd4, 0x15, 0xbd, 0xda, 0x2d, 0x01, 0xd8, -0x40, 0xb0, 0x5e, 0xeb, 0x47, 0x1f, 0xe4, 0x7f, 0x1b, 0x57, 0x4c, 0xbb, 0xd2, 0x72, 0xf5, 0x33, -0x13, 0xdc, 0x0e, 0x22, 0xfd, 0xcd, 0x5a, 0x56, 0x42, 0x48, 0xc3, 0x58, 0x7d, 0x0f, 0x8e, 0xf1, -0x36, 0x93, 0xf7, 0x66, 0xc9, 0xb7, 0x29, 0x0b, 0xee, 0x1d, 0xc0, 0xee, 0x72, 0x05, 0xe6, 0x1a, -0xd9, 0x2f, 0xea, 0xf7, 0xea, 0x3f, 0x83, 0x00, 0xac, 0x9d, 0x17, 0x01, 0xa6, 0x3f, 0xc3, 0x1c, -0x68, 0x6e, 0x61, 0xbf, 0x4d, 0x1a, 0xf5, 0x77, 0xf1, 0xda, 0x02, 0xfb, 0x75, 0x98, 0xc5, 0xa5, -0x4d, 0x04, 0xdf, 0x4b, 0xd5, 0x92, 0x88, 0xf1, 0x8a, 0x61, 0xf8, 0x7a, 0x45, 0x1c, 0xae, 0x20, -0xe2, 0xaf, 0xc7, 0xf1, 0x0d, 0xa8, 0x7d, 0xbb, 0x2f, 0x2b, 0x9c, 0xcb, 0x63, 0x3c, 0x6f, 0xa0, -0xbf, 0x5b, 0xda, 0xe1, 0xfd, 0x87, 0x33, 0x42, 0x61, 0x0c, 0xa3, 0x7b, 0x56, 0xdf, 0x9f, 0x27, -0xe2, 0x07, 0xe3, 0x4b, 0x39, 0xfe, 0x63, 0x3c, 0x0b, 0x21, 0xa1, 0x30, 0xba, 0x3f, 0xaf, 0x9f, -0xf9, 0x6a, 0x7b, 0x29, 0xa6, 0x69, 0xbb, 0xaa, 0x65, 0x31, 0x76, 0xc6, 0x37, 0xa7, 0xd7, 0x0f, -0x55, 0xa8, 0xb7, 0x09, 0x5f, 0x44, 0x96, 0xae, 0x3c, 0xd6, 0x2c, 0xb4, 0x84, 0xbb, 0x21, 0xec, -0x7f, 0x2c, 0xfd, 0x61, 0xf0, 0x29, 0xf9, 0x70, 0x16, 0xbc, 0x81, 0x3f, 0xc6, 0xd3, 0x31, 0x96, -0x7c, 0xa1, 0x73, 0xda, 0x50, 0x43, 0x23, 0x61, 0xaa, 0x7f, 0xe1, 0x1c, 0x5d, 0x13, 0x73, 0x41, -0x3e, 0xa3, 0x55, 0xea, 0x3b, 0xd1, 0x3d, 0x71, 0x96, 0xda, 0x9d, 0x94, 0x01, 0xdc, 0x93, 0xbf, -0x52, 0xcc, 0x6c, 0xcd, 0x04, 0x6c, 0x5f, 0xd9, 0x3d, 0x91, 0x01, 0xc5, 0x88, 0xd2, 0xaa, 0x98, -0xdc, 0x2a, 0x5a, 0x2a, 0xc9, 0xa5, 0xba, 0xde, 0xd5, 0xd4, 0x39, 0xdd, 0x52, 0x86, 0x92, 0x07, -0xc3, 0x97, 0x48, 0x33, 0xbe, 0xdc, 0xaa, 0xf1, 0x75, 0x53, 0x83, 0x91, 0x38, 0x39, 0x4d, 0xdf, -0x3a, 0x59, 0x22, 0x5c, 0x18, 0x3f, 0x45, 0x5f, 0x3a, 0xfd, 0x99, 0x8a, 0xc2, 0x68, 0x60, 0x56, -0xaa, 0x20, 0x52, 0x6e, 0xae, 0x30, 0x76, 0x7e, 0xd4, 0x1a, 0xdc, 0xf8, 0x99, 0x04, 0xed, 0x1f, -0xa2, 0xae, 0xf8, 0x26, 0x51, 0x36, 0x38, 0xc3, 0xff, 0x7a, 0x19, 0x0c, 0x3f, 0xfd, 0x55, 0x8f, -0xef, 0xf9, 0xd7, 0x54, 0xf7, 0x4f, 0x7f, 0x15, 0xb7, 0xd8, 0x27, 0x75, 0xda, 0x5f, 0xbf, 0x71, -0xeb, 0x66, 0x7c, 0x05, 0x3c, 0xfc, 0xfc, 0x6b, 0x71, 0x93, 0x75, 0xd9, 0xe1, 0xf1, 0xda, 0x00, -0x18, 0x14, 0xd1, 0x71, 0xe8, 0xd0, 0x49, 0x1c, 0x69, 0x99, 0x62, 0x71, 0x84, 0xf5, 0x7b, 0x35, -0x76, 0x16, 0x75, 0x15, 0x33, 0x42, 0xe7, 0x74, 0xb3, 0x41, 0x1e, 0x5a, 0x4f, 0xc0, 0x57, 0xdf, -0xb0, 0x76, 0xdd, 0x37, 0x1a, 0xbf, 0xd9, 0x74, 0xfb, 0x92, 0x62, 0xb4, 0xa7, 0xb7, 0x4f, 0x8d, -0xd1, 0xff, 0xa9, 0xdc, 0x30, 0xaf, 0x15, 0xe0, 0xe5, 0x8b, 0x98, 0x63, 0xe5, 0xe5, 0x0b, 0x74, -0xdf, 0x57, 0xc3, 0xf4, 0x6c, 0x83, 0x3c, 0xe4, 0x15, 0x71, 0x87, 0xa5, 0x8c, 0x09, 0xbd, 0x0b, -0xbe, 0x05, 0x61, 0x39, 0xae, 0xc4, 0x27, 0xdd, 0x13, 0xbe, 0xff, 0x61, 0xef, 0xef, 0x03, 0xa3, -0xaa, 0xae, 0x85, 0x71, 0x78, 0xcd, 0x64, 0x08, 0xc3, 0x30, 0xc6, 0x31, 0x8e, 0xe9, 0x94, 0xa6, -0x78, 0x38, 0x4e, 0xc6, 0x21, 0x99, 0x64, 0x42, 0x8c, 0x88, 0x69, 0xc4, 0xc9, 0xe4, 0x83, 0xc9, -0x10, 0x86, 0x38, 0x89, 0x36, 0xb5, 0x54, 0x4f, 0x42, 0x32, 0x93, 0xc0, 0x24, 0x19, 0x27, 0x13, -0x8c, 0xdc, 0x3c, 0x76, 0x12, 0x22, 0x06, 0xa4, 0x82, 0x82, 0xd4, 0xf6, 0x7a, 0x7b, 0x6d, 0x1f, -0x9f, 0x5e, 0x6a, 0xd5, 0x52, 0x2f, 0xb5, 0x94, 0x97, 0x5f, 0x9f, 0x48, 0xb9, 0x5e, 0xb4, 0xdc, -0x3e, 0x80, 0x68, 0xb9, 0x5e, 0xae, 0x5a, 0x2f, 0x56, 0x44, 0x54, 0x4a, 0xa9, 0x0d, 0x18, 0x72, -0xde, 0xb5, 0xd6, 0x3e, 0xf3, 0x91, 0x80, 0xad, 0xfd, 0x3d, 0xf7, 0xfd, 0xef, 0x0d, 0x9c, 0x39, -0xfb, 0xec, 0xef, 0xbd, 0xf6, 0xda, 0x6b, 0xaf, 0xb5, 0xf6, 0xde, 0x6b, 0xd3, 0x9a, 0x80, 0x0d, -0x47, 0xc6, 0x15, 0xe1, 0x73, 0x37, 0xd0, 0x2a, 0xc6, 0x5b, 0x67, 0x9e, 0xd0, 0x7b, 0x41, 0x05, -0xaf, 0x0e, 0x6e, 0xd8, 0x87, 0x5f, 0xa5, 0x51, 0x9d, 0xfd, 0xda, 0x40, 0x7f, 0x2a, 0x5e, 0x4e, -0x38, 0x4f, 0xb8, 0x09, 0x87, 0x40, 0xbd, 0x61, 0xc2, 0x48, 0xba, 0xfa, 0x27, 0x02, 0xfd, 0x51, -0x15, 0xcb, 0x98, 0xed, 0x36, 0x21, 0xbc, 0xcc, 0x4b, 0x2e, 0xa8, 0x8f, 0x2a, 0x26, 0x5f, 0x82, -0x66, 0xf7, 0xc0, 0xd6, 0x96, 0xcd, 0x96, 0x39, 0xa1, 0xb3, 0xf6, 0xbb, 0x1d, 0x77, 0x93, 0x2c, -0x56, 0xb9, 0x18, 0xeb, 0xe1, 0x42, 0x49, 0xdc, 0x89, 0xf8, 0x70, 0x48, 0x68, 0x07, 0xe6, 0xe8, -0x09, 0x73, 0xfc, 0xc3, 0x21, 0x92, 0x64, 0x4a, 0xb1, 0x66, 0xcd, 0xd8, 0xf3, 0xed, 0x03, 0x26, -0x47, 0xe5, 0x57, 0xbe, 0xfb, 0x0a, 0x2c, 0x23, 0x2c, 0x1c, 0x65, 0x89, 0x6d, 0x06, 0xa6, 0x59, -0x54, 0xcf, 0x58, 0x49, 0x5a, 0x88, 0x5b, 0x4e, 0x60, 0x1a, 0x23, 0xa7, 0x79, 0x54, 0x91, 0xdd, -0x59, 0x6e, 0x7d, 0x60, 0x7b, 0xe3, 0xe6, 0x42, 0xe4, 0x46, 0x2c, 0x37, 0x22, 0xd7, 0x23, 0xca, -0x7f, 0x14, 0xfd, 0x67, 0x04, 0xb6, 0x35, 0x6e, 0xde, 0x96, 0x68, 0x41, 0xae, 0x01, 0x65, 0xd3, -0x2c, 0x92, 0x11, 0x1d, 0xd0, 0x34, 0x12, 0x1a, 0x8b, 0x9a, 0x10, 0x03, 0x9c, 0x28, 0x53, 0x55, -0x2a, 0x30, 0xf9, 0xa6, 0xef, 0xbd, 0xd2, 0x52, 0x07, 0x8e, 0x03, 0xac, 0x9d, 0x15, 0x4b, 0x2a, -0xcb, 0xac, 0x5d, 0x3c, 0x9f, 0xe4, 0xd2, 0x39, 0x96, 0xda, 0x0b, 0x93, 0x2f, 0x48, 0x59, 0x27, -0x76, 0xc4, 0xae, 0x1c, 0x1b, 0xb2, 0xdc, 0x90, 0x2e, 0xe5, 0x6b, 0xc3, 0x88, 0x57, 0x13, 0x08, -0xdd, 0x77, 0x62, 0x26, 0xc2, 0xdd, 0x86, 0xb7, 0xcc, 0x66, 0xcc, 0x73, 0xa3, 0x96, 0xa7, 0x35, -0x23, 0xfd, 0x9a, 0xbf, 0x92, 0x5e, 0xca, 0x48, 0xef, 0x0f, 0x76, 0x74, 0xb7, 0x46, 0xa3, 0x1d, -0xed, 0x52, 0x41, 0xbb, 0xd4, 0x76, 0x5f, 0xbc, 0x43, 0xaa, 0x26, 0xfd, 0x72, 0xac, 0x23, 0x4c, -0x9a, 0xc4, 0x78, 0xaf, 0x54, 0xd7, 0xda, 0x17, 0x77, 0x49, 0x05, 0x51, 0xa9, 0x98, 0x7f, 0x16, -0xa7, 0x9c, 0xce, 0x82, 0xbe, 0xf9, 0x2e, 0x29, 0x14, 0x69, 0x0d, 0xf7, 0x49, 0x05, 0xa5, 0x8b, -0x06, 0x4c, 0x49, 0xd5, 0x73, 0x46, 0x5e, 0x5a, 0x36, 0x99, 0x49, 0xa4, 0xfe, 0x3e, 0xd2, 0x1f, -0x67, 0xa6, 0x13, 0x9a, 0xd8, 0x92, 0x58, 0x47, 0x5f, 0x6f, 0x7f, 0x6c, 0x65, 0x07, 0xf4, 0xf4, -0x76, 0x77, 0xf7, 0x03, 0x2b, 0x92, 0xc9, 0x11, 0xa5, 0x1f, 0x7a, 0x96, 0x2d, 0xbb, 0x3d, 0xa9, -0x5c, 0xed, 0x5a, 0x2b, 0x54, 0x9d, 0x42, 0x79, 0x69, 0x82, 0xfa, 0xa4, 0x37, 0xe5, 0x4d, 0xf1, -0xfa, 0x3a, 0xe2, 0xfd, 0x51, 0x13, 0xdc, 0xe1, 0x0d, 0x62, 0xc1, 0x26, 0xb8, 0xb3, 0x23, 0xd6, -0xdb, 0xd8, 0x1a, 0xee, 0x80, 0xa6, 0xa6, 0xbb, 0x9b, 0x48, 0xd9, 0x48, 0xda, 0x7c, 0xf0, 0x23, -0x85, 0xcd, 0x3f, 0x0b, 0xe3, 0x5f, 0xde, 0xa1, 0x9b, 0x0f, 0xed, 0xf8, 0xce, 0xc5, 0x27, 0x0f, -0xc6, 0xe7, 0x0e, 0x8b, 0x15, 0x44, 0xad, 0x60, 0xa9, 0x7c, 0x41, 0xc9, 0x02, 0x13, 0xb8, 0x73, -0x70, 0x8c, 0x1a, 0x71, 0x34, 0x9b, 0x71, 0xbc, 0x5a, 0x5c, 0xbd, 0x60, 0xc5, 0x91, 0x3f, 0xec, -0x62, 0xac, 0x2b, 0xd5, 0x3b, 0x88, 0x8e, 0xac, 0x8b, 0x9a, 0x7f, 0xf7, 0x63, 0x29, 0x4b, 0xae, -0x84, 0x19, 0x60, 0xc8, 0xd4, 0xfe, 0x85, 0xbd, 0xa9, 0xaf, 0x41, 0xd9, 0x2b, 0x65, 0xa5, 0xb5, -0x85, 0x42, 0x2f, 0x28, 0x65, 0xe1, 0x8c, 0xa1, 0x9e, 0x01, 0xd2, 0x0f, 0xca, 0xe9, 0xb8, 0xe5, -0xf6, 0x34, 0x5f, 0xb0, 0x46, 0xd2, 0x37, 0xbc, 0xe5, 0x31, 0x0b, 0x6d, 0xe5, 0xe2, 0x32, 0xa7, -0x1b, 0xec, 0x2e, 0xd2, 0x3d, 0xa1, 0x04, 0x8f, 0x65, 0x97, 0x16, 0xba, 0xa1, 0xdc, 0x9e, 0x95, -0xa1, 0x65, 0x34, 0x20, 0x1f, 0xa4, 0x27, 0x1e, 0x42, 0xf5, 0xc9, 0xfe, 0x14, 0xdf, 0xc1, 0xf3, -0x2f, 0xcd, 0x54, 0xe1, 0xbb, 0x24, 0x7d, 0xcc, 0xfc, 0xce, 0x0e, 0x37, 0x60, 0x0c, 0x8f, 0xc3, -0x43, 0xb3, 0x4a, 0xd8, 0x2f, 0xf9, 0x65, 0x4f, 0xba, 0x76, 0x17, 0xb7, 0x48, 0x59, 0x4d, 0x09, -0xf7, 0x0c, 0xe4, 0x7f, 0xfb, 0x8c, 0x34, 0x3b, 0xc4, 0x48, 0x47, 0x22, 0x74, 0x17, 0x5f, 0xfa, -0x84, 0x74, 0x01, 0xb3, 0xb2, 0x31, 0xc5, 0x52, 0x49, 0x2f, 0xcf, 0x70, 0xd5, 0x60, 0x1d, 0x9f, -0x24, 0x7d, 0x49, 0xc3, 0x5b, 0x0d, 0xc8, 0x49, 0x72, 0xaa, 0xd8, 0x22, 0x35, 0x19, 0x3f, 0xbf, -0x4a, 0xc4, 0x27, 0xbe, 0xce, 0x5d, 0x83, 0xd3, 0x44, 0x2d, 0x8e, 0x52, 0x2f, 0x38, 0xdd, 0x7e, -0xb0, 0x53, 0x0a, 0xc4, 0xc5, 0x27, 0x6f, 0x13, 0xba, 0xac, 0x80, 0xb1, 0x04, 0x74, 0xb4, 0x8e, -0x63, 0xf0, 0x57, 0x23, 0x4e, 0xe7, 0xdf, 0x87, 0x5c, 0x5b, 0x0e, 0xc2, 0x10, 0x0c, 0x15, 0x2e, -0xd2, 0x6b, 0xfe, 0xd2, 0x0d, 0xd8, 0xb6, 0x4a, 0x92, 0x29, 0x39, 0xcf, 0x1d, 0x0e, 0xe2, 0xe6, -0xcd, 0xe1, 0x00, 0x97, 0xb3, 0xc1, 0x0d, 0x34, 0x76, 0xbf, 0xb2, 0x8d, 0x46, 0x21, 0xce, 0x94, -0x60, 0x60, 0xbe, 0x3c, 0x7f, 0xb3, 0x18, 0x97, 0xe4, 0x93, 0x35, 0xc1, 0x3e, 0x8f, 0x67, 0xf8, -0x9c, 0x65, 0x9f, 0x7f, 0xc8, 0xf0, 0x39, 0x21, 0xa0, 0x80, 0x33, 0x5a, 0x89, 0xce, 0x59, 0x33, -0x86, 0x3e, 0x6f, 0xd4, 0x8c, 0xad, 0x86, 0xac, 0xa3, 0x81, 0xe7, 0x26, 0x0e, 0x71, 0x8c, 0x57, -0xe4, 0xc1, 0x99, 0x2a, 0x40, 0x1a, 0xb6, 0xde, 0x1a, 0x6f, 0x2d, 0x42, 0x11, 0xe9, 0xa9, 0xb1, -0x10, 0xb2, 0x74, 0xf3, 0x43, 0xd9, 0xc8, 0xbb, 0x41, 0xd6, 0x08, 0xd2, 0x0d, 0x9c, 0xd1, 0x9d, -0x07, 0x59, 0x9e, 0x46, 0x18, 0xf8, 0x3d, 0x42, 0xef, 0x97, 0xff, 0xfd, 0xc0, 0x16, 0xa4, 0x44, -0x90, 0xd5, 0xc6, 0x5f, 0x7b, 0x91, 0x57, 0xf5, 0x63, 0xfb, 0x46, 0x91, 0x8a, 0xe0, 0x4c, 0x72, -0xf1, 0x69, 0x07, 0x34, 0x6e, 0x0e, 0xb7, 0x3f, 0x72, 0x00, 0xfb, 0x84, 0x35, 0x29, 0x14, 0x7a, -0x71, 0x8b, 0xbb, 0x1a, 0x4a, 0x11, 0x0b, 0x4b, 0x5d, 0x03, 0x60, 0x58, 0x7a, 0x01, 0x8c, 0xa4, -0xe9, 0x55, 0xb2, 0x03, 0x7f, 0x67, 0xd4, 0x05, 0xfa, 0x34, 0x58, 0x1f, 0x15, 0xb0, 0xc6, 0x96, -0xd4, 0x86, 0x0c, 0xfe, 0x9a, 0xb0, 0xe4, 0xf5, 0x98, 0x3d, 0xd8, 0xe7, 0x96, 0x18, 0x32, 0x8d, -0x52, 0xd5, 0xe1, 0x17, 0xe7, 0xed, 0x7d, 0xf3, 0xd9, 0x33, 0x57, 0x8c, 0x42, 0x90, 0xfc, 0x3d, -0xa1, 0x77, 0x28, 0xff, 0x2c, 0x09, 0xb9, 0x0c, 0x2a, 0xa1, 0xd9, 0xe9, 0xc1, 0x56, 0x80, 0xfe, -0x20, 0xd7, 0x66, 0x50, 0x5a, 0x85, 0x9c, 0x73, 0x03, 0xca, 0xf3, 0x16, 0x79, 0x07, 0x58, 0xaf, -0xeb, 0x44, 0x41, 0xd8, 0x10, 0xac, 0x93, 0x1a, 0x1b, 0x37, 0xf8, 0xb7, 0x84, 0xb3, 0xcd, 0x75, -0xd0, 0x1e, 0xfa, 0x3d, 0xc7, 0x5c, 0xe3, 0x68, 0xf0, 0xf6, 0x42, 0x89, 0xd2, 0x50, 0x72, 0xb5, -0x7e, 0xc9, 0x19, 0x70, 0x14, 0x21, 0x1f, 0xb4, 0x8e, 0xf0, 0x71, 0xfb, 0x83, 0xfa, 0x6a, 0xc4, -0xeb, 0x25, 0xd5, 0xef, 0x4b, 0xa2, 0x0d, 0xcc, 0x2b, 0x85, 0x8d, 0x38, 0x83, 0x0f, 0xcc, 0xd4, -0x29, 0x26, 0x84, 0x6e, 0x2e, 0xbb, 0x01, 0x69, 0xe9, 0xcc, 0xc0, 0x9e, 0x09, 0xd6, 0xeb, 0x05, -0x31, 0xaf, 0xc6, 0x87, 0xf6, 0xe2, 0x6f, 0xe8, 0x39, 0xe4, 0x1f, 0x29, 0x5d, 0x80, 0x7e, 0x09, -0xfa, 0xe1, 0x52, 0x2d, 0x7e, 0x25, 0x78, 0x80, 0x7e, 0x91, 0xdb, 0x5a, 0x72, 0x61, 0xe2, 0xae, -0xc0, 0x56, 0xf2, 0xcf, 0xd2, 0xb9, 0x69, 0x04, 0x92, 0xff, 0x93, 0x28, 0xd1, 0xb1, 0x16, 0xcf, -0x5f, 0x1b, 0xb6, 0xba, 0xf5, 0xde, 0x7f, 0xf2, 0x0d, 0x58, 0x10, 0x7b, 0xb0, 0x8c, 0x32, 0x96, -0x6a, 0xe7, 0x22, 0x74, 0x64, 0x94, 0xf5, 0x40, 0xf8, 0x33, 0xf4, 0x8e, 0x63, 0x7f, 0xed, 0x99, -0x78, 0x82, 0x65, 0x55, 0x84, 0xcb, 0x6c, 0x50, 0xe6, 0x70, 0xae, 0x90, 0x4c, 0xfb, 0xe9, 0x27, -0x94, 0x96, 0x61, 0x06, 0x72, 0x21, 0x54, 0xb8, 0x41, 0x2a, 0x84, 0x85, 0x5b, 0x86, 0x90, 0x6b, -0xd1, 0x71, 0x0e, 0xef, 0x72, 0x0e, 0x77, 0x46, 0xb3, 0xb9, 0xbe, 0xaf, 0x33, 0x7e, 0x5a, 0xbf, -0x73, 0x70, 0xc9, 0x85, 0x4f, 0xf7, 0x2a, 0xf9, 0x46, 0x17, 0xd6, 0xcd, 0x12, 0xb2, 0x6a, 0x35, -0x75, 0x81, 0x1d, 0x1f, 0x49, 0xe8, 0xfe, 0xa5, 0x86, 0xa8, 0x1a, 0x53, 0x5d, 0xd5, 0x24, 0x07, -0x50, 0x2f, 0x84, 0x8e, 0xc8, 0xd5, 0x94, 0xc7, 0x64, 0x5b, 0xaa, 0x5d, 0x46, 0x6e, 0xd7, 0x19, -0x6a, 0xef, 0xa7, 0x3d, 0xa2, 0xbd, 0x33, 0x20, 0xe5, 0xff, 0xb6, 0xd6, 0xde, 0xfc, 0x92, 0xe1, -0x29, 0xfe, 0xe3, 0xe4, 0x2f, 0xf8, 0x42, 0x47, 0x67, 0xd6, 0x1c, 0x2a, 0xab, 0xfe, 0xc2, 0xa7, -0xbb, 0x95, 0x35, 0x1a, 0xaf, 0xe8, 0xd4, 0xb9, 0x10, 0xd3, 0xb3, 0x9c, 0xd0, 0x3c, 0xf2, 0xde, -0xa6, 0xf7, 0x46, 0x97, 0xfd, 0xd1, 0x68, 0x55, 0xbc, 0xfe, 0x44, 0xc4, 0x28, 0x83, 0x71, 0x08, -0xae, 0x55, 0x16, 0xb6, 0x0c, 0x49, 0x1e, 0xa3, 0x13, 0x6b, 0x6e, 0x0a, 0x17, 0x4a, 0x7d, 0x3e, -0xf8, 0xe9, 0x58, 0x9b, 0x2c, 0xdf, 0x51, 0x68, 0x7c, 0x63, 0xc3, 0x9e, 0xc4, 0x4a, 0x1b, 0x97, -0x35, 0xcb, 0xcd, 0xba, 0xa8, 0xfc, 0x8f, 0xb0, 0xf5, 0xa4, 0xcf, 0xb1, 0x2a, 0x26, 0xff, 0x50, -0x38, 0x5b, 0xaa, 0x92, 0x2c, 0xa1, 0x5d, 0xc1, 0x6a, 0x45, 0xef, 0xad, 0x7e, 0x61, 0x35, 0xe4, -0x74, 0x6c, 0x12, 0x9a, 0xd9, 0xd0, 0x19, 0x84, 0x5a, 0x00, 0x39, 0xa3, 0xdf, 0x22, 0x8f, 0x4c, -0xeb, 0xbe, 0xc7, 0x00, 0x44, 0x2b, 0x65, 0x6e, 0xc7, 0xa3, 0xc4, 0xf3, 0x61, 0x2b, 0x2f, 0x8c, -0x26, 0x7b, 0x95, 0xe0, 0x8f, 0x6d, 0x41, 0xbe, 0x23, 0xdd, 0xc6, 0xb4, 0xef, 0xdb, 0xe8, 0xcb, -0x58, 0xa2, 0x8d, 0xb7, 0xf9, 0x8b, 0x18, 0x2b, 0x87, 0xa9, 0x26, 0xb4, 0xf2, 0x31, 0x38, 0xd1, -0x88, 0xdc, 0x9c, 0xb7, 0x66, 0x2d, 0xf2, 0xb1, 0x13, 0x77, 0x0d, 0xe8, 0xb0, 0x3e, 0x38, 0x5e, -0xd1, 0x1d, 0xa4, 0xb7, 0xd7, 0x83, 0x2e, 0x3f, 0xca, 0xdb, 0x15, 0xf8, 0xd4, 0xc1, 0xf8, 0xed, -0xcf, 0x88, 0xa7, 0x7d, 0x5b, 0x6a, 0x43, 0xc9, 0xf8, 0xf7, 0x0d, 0xe2, 0x3d, 0x6a, 0xc3, 0xe7, -0x10, 0x8c, 0x6f, 0xda, 0x02, 0xe3, 0x0f, 0x1f, 0x84, 0xf1, 0x47, 0x4e, 0xe0, 0x63, 0x86, 0xf1, -0x0d, 0xe7, 0x60, 0xfc, 0x5b, 0x8d, 0x30, 0x7e, 0x4f, 0x1b, 0x8c, 0x27, 0xa2, 0x30, 0xfe, 0x0d, -0x4c, 0xff, 0x8d, 0xbd, 0xf8, 0x1c, 0xa3, 0xd5, 0x2b, 0x18, 0x5f, 0xf9, 0x24, 0xe6, 0x17, 0xc7, -0x07, 0xbf, 0xbf, 0xbf, 0x09, 0xc6, 0xbb, 0x3d, 0x30, 0xfe, 0xbd, 0x08, 0x8c, 0xdf, 0xb7, 0x1b, -0xc6, 0xfb, 0x77, 0xc0, 0xf8, 0xfd, 0x46, 0x18, 0x5f, 0xe3, 0x43, 0x77, 0x39, 0x8c, 0x3f, 0x84, -0xf1, 0xee, 0xc3, 0x39, 0x69, 0x8d, 0x15, 0xdd, 0x8b, 0x60, 0x7c, 0xcb, 0x01, 0x8c, 0xef, 0x82, -0xf1, 0x5e, 0x2c, 0xef, 0x1f, 0xb1, 0xac, 0xef, 0xb5, 0xe0, 0x1b, 0x25, 0xeb, 0xd1, 0xa7, 0xb0, -0x5c, 0xcc, 0xa7, 0xf7, 0x24, 0x7e, 0x3f, 0x01, 0xe3, 0x1b, 0x3b, 0x69, 0x95, 0x0b, 0x1f, 0x8c, -0xf3, 0xfd, 0x1a, 0x18, 0x7f, 0xea, 0x34, 0xba, 0x47, 0x69, 0xad, 0x0b, 0xeb, 0x8b, 0x7e, 0x03, -0xf9, 0xf8, 0x76, 0xc2, 0x78, 0x0f, 0xd6, 0xe5, 0x1f, 0xd1, 0xbd, 0xfd, 0x0c, 0x7e, 0x63, 0x1d, -0x9e, 0xc4, 0xef, 0xff, 0xb5, 0x13, 0xf3, 0xc2, 0x77, 0x37, 0xc6, 0xff, 0xde, 0x2e, 0x18, 0xdf, -0x56, 0x0a, 0xe3, 0x83, 0xd8, 0xc6, 0x95, 0x65, 0x30, 0xfe, 0x3f, 0xb1, 0x2e, 0x11, 0xcc, 0xe3, -0x7b, 0x58, 0x87, 0x6d, 0x98, 0xff, 0x20, 0x96, 0x3f, 0x8a, 0x6d, 0xfd, 0xbe, 0x1d, 0xc6, 0xd7, -0x62, 0x1b, 0xff, 0x57, 0x33, 0x86, 0xbf, 0x8d, 0xf9, 0x1e, 0xc7, 0x7c, 0x31, 0xfc, 0x31, 0x14, -0x16, 0x9e, 0xc0, 0xf6, 0x3f, 0x81, 0x79, 0x3e, 0x31, 0x86, 0x0f, 0xe6, 0xf3, 0x0d, 0x0c, 0x7f, -0x0a, 0xeb, 0xfc, 0xd8, 0x7e, 0x7c, 0x63, 0x39, 0xdb, 0x30, 0xdd, 0xc3, 0x4f, 0xd2, 0x3a, 0x1e, -0xad, 0xdc, 0x61, 0xdd, 0xb0, 0x2e, 0x5b, 0x31, 0xdf, 0xef, 0x61, 0x3d, 0x37, 0xe2, 0xbb, 0x97, -0xea, 0xb8, 0x02, 0xcb, 0x46, 0xb8, 0xf4, 0x60, 0x5d, 0x56, 0x20, 0x6c, 0x56, 0x60, 0x3b, 0x5b, -0xb0, 0x1e, 0x2d, 0x0d, 0x30, 0x7e, 0xa7, 0x05, 0xeb, 0x81, 0x79, 0x3f, 0x88, 0x75, 0x1b, 0xc4, -0xb4, 0x0f, 0x0e, 0xd2, 0x7a, 0x1f, 0xe6, 0x83, 0x30, 0xda, 0x84, 0xe9, 0xff, 0x07, 0xd6, 0xe9, -0x41, 0xcc, 0xe3, 0x5e, 0x4c, 0xff, 0x10, 0xc2, 0xfc, 0x3e, 0xca, 0x03, 0x61, 0xd2, 0x8e, 0xed, -0x5f, 0x8b, 0xdf, 0x7f, 0x87, 0xb0, 0xfd, 0x3b, 0x84, 0xd9, 0xdf, 0x61, 0x9a, 0xaf, 0x63, 0xfa, -0x3b, 0xb1, 0x4f, 0x7b, 0x0c, 0x58, 0x3e, 0xd6, 0x53, 0x31, 0xa4, 0xfb, 0xfd, 0x6e, 0xac, 0xef, -0xff, 0x3c, 0x43, 0x3b, 0x72, 0x60, 0xfc, 0x27, 0xd8, 0x57, 0x3b, 0x10, 0xa6, 0x3f, 0xc3, 0xb6, -0xbf, 0x60, 0x11, 0xe1, 0x3f, 0xc2, 0xbe, 0xfe, 0xf1, 0x1c, 0x18, 0x7f, 0xee, 0x4e, 0x7c, 0x46, -0xf0, 0xd9, 0x83, 0xcf, 0x9b, 0x18, 0x57, 0xc2, 0x07, 0xcb, 0xfb, 0xc9, 0x7a, 0x7c, 0xbe, 0x27, -0xe2, 0x3e, 0x3f, 0xfa, 0x37, 0x6f, 0x64, 0x1a, 0xdf, 0x88, 0xe5, 0x3f, 0x8f, 0x75, 0x7e, 0x1e, -0xe1, 0xfa, 0xbf, 0x10, 0xd7, 0x7e, 0x68, 0x4e, 0x87, 0xad, 0xc4, 0xb0, 0x1f, 0x4a, 0xc2, 0xfd, -0x43, 0xac, 0xe3, 0x0b, 0x18, 0xe7, 0x85, 0x11, 0xda, 0xb7, 0x15, 0xf8, 0xe8, 0xe2, 0x44, 0x70, -0x6b, 0xa0, 0x3f, 0x6f, 0x2c, 0xd0, 0x3f, 0x3d, 0x4b, 0xe2, 0x7c, 0x0a, 0xb0, 0x15, 0xaf, 0x45, -0x74, 0xc5, 0xb3, 0x06, 0x60, 0xdc, 0x81, 0x10, 0x77, 0x5c, 0x8b, 0x90, 0x39, 0x29, 0xc2, 0x3b, -0x68, 0x19, 0x36, 0xc2, 0x5b, 0xbb, 0xee, 0x03, 0xfb, 0x1d, 0xb5, 0xc1, 0x0a, 0x29, 0xd3, 0x4b, -0x6a, 0xed, 0xee, 0x0a, 0xb7, 0x16, 0x77, 0x2f, 0x5c, 0xb4, 0x5a, 0x2a, 0xbf, 0xb1, 0xa4, 0x54, -0x72, 0x96, 0x95, 0x88, 0x7d, 0x5b, 0xf3, 0xaf, 0x30, 0xa5, 0x37, 0x60, 0xe1, 0x93, 0x8f, 0xcf, -0x1c, 0x64, 0xe5, 0xf5, 0x30, 0xbe, 0xe0, 0x3f, 0x13, 0x44, 0x30, 0xc7, 0x17, 0x4c, 0x26, 0x48, -0x9d, 0x3a, 0x5e, 0x76, 0x0d, 0xbe, 0x67, 0xe0, 0x7b, 0x3e, 0xbe, 0xb3, 0xf1, 0x5d, 0x81, 0xef, -0x99, 0xf8, 0x6e, 0xe4, 0x05, 0x83, 0xf1, 0xb2, 0x4e, 0x7c, 0xcf, 0xc2, 0xf7, 0x3a, 0x7c, 0x9b, -0xf0, 0xbd, 0x39, 0x41, 0xc4, 0x78, 0xbc, 0xec, 0x59, 0x7c, 0xe7, 0xe0, 0xfb, 0xf5, 0x04, 0xed, -0x61, 0x1b, 0x2f, 0xfb, 0x58, 0xb4, 0xfe, 0x06, 0xda, 0xf6, 0xa4, 0xc3, 0xf7, 0x1c, 0xe0, 0xf2, -0x6e, 0x70, 0x02, 0x97, 0x77, 0x43, 0x05, 0x70, 0x79, 0x37, 0xf8, 0x81, 0xcb, 0xbb, 0xe1, 0x1b, -0xc0, 0xe5, 0xdc, 0xb0, 0x1a, 0xb8, 0x9c, 0x1b, 0x06, 0x80, 0xcb, 0xb9, 0x81, 0x24, 0x0e, 0x2c, -0xe7, 0x86, 0x87, 0x81, 0xcb, 0xb9, 0xe1, 0xfb, 0x40, 0x93, 0xee, 0xf8, 0x0d, 0xff, 0x8c, 0xef, -0xab, 0xf0, 0xfd, 0x22, 0xbe, 0x91, 0x43, 0xbc, 0xe1, 0x30, 0x09, 0x42, 0xf8, 0x7e, 0x07, 0xdf, -0x88, 0x41, 0x37, 0xfc, 0x11, 0xdf, 0xd7, 0xc0, 0x78, 0xf9, 0x0c, 0xda, 0x76, 0x85, 0xef, 0xab, -0xf1, 0x3d, 0x0f, 0xdf, 0xf3, 0x68, 0xa9, 0x0c, 0xdf, 0xa5, 0xf8, 0x46, 0xcc, 0x2b, 0xbf, 0x15, -0xdf, 0x0b, 0xf0, 0x4d, 0xf5, 0xc0, 0x11, 0x55, 0x7e, 0x3b, 0x09, 0xd0, 0xf8, 0xbe, 0x1b, 0xdf, -0x38, 0xe2, 0xcb, 0xbb, 0xf0, 0x8d, 0x23, 0xb9, 0x3c, 0x86, 0xef, 0x2a, 0x7c, 0x53, 0xbd, 0xbc, -0xf8, 0xfe, 0x1f, 0xf8, 0xae, 0xc6, 0xf7, 0x3a, 0xd1, 0xce, 0xf2, 0xed, 0xa2, 0x9d, 0xe5, 0xff, -0x28, 0xda, 0x59, 0xfe, 0x9c, 0x68, 0x67, 0xf9, 0x4b, 0xa2, 0x9d, 0xe5, 0x6f, 0x8a, 0x76, 0x96, -0xff, 0x09, 0x18, 0xae, 0x37, 0xe6, 0x88, 0xf6, 0xde, 0xf8, 0x65, 0xd1, 0xde, 0x1b, 0x17, 0x88, -0xf6, 0xde, 0x58, 0x2f, 0xda, 0x7b, 0xe3, 0x4a, 0xd1, 0xde, 0x1b, 0x07, 0x45, 0xfe, 0x37, 0xfe, -0x3d, 0x8c, 0xcf, 0xc7, 0x91, 0x3b, 0x1f, 0x29, 0x40, 0x21, 0xd6, 0xab, 0x10, 0x47, 0x48, 0x21, -0x7e, 0x17, 0x55, 0x0a, 0xff, 0x22, 0xc4, 0xe8, 0x22, 0x1c, 0xb9, 0x45, 0x38, 0xca, 0x8a, 0x8e, -0xe2, 0x83, 0x18, 0x59, 0x84, 0xb8, 0x54, 0x74, 0x4e, 0x4b, 0x47, 0x71, 0x10, 0xbf, 0x5c, 0x58, -0x17, 0x17, 0xc2, 0xc7, 0x85, 0x54, 0xc6, 0x85, 0x54, 0xc2, 0x55, 0x9e, 0x0e, 0xff, 0x6b, 0x8f, -0x0b, 0x47, 0xb7, 0x0b, 0x47, 0xaf, 0x2b, 0xf2, 0xf9, 0xd3, 0x4c, 0x49, 0x8f, 0xd4, 0xd3, 0x85, -0x23, 0xd1, 0x85, 0x6d, 0x70, 0xed, 0xfd, 0x7f, 0x91, 0x1e, 0x47, 0x95, 0x0b, 0xdb, 0xe7, 0xc2, -0xf6, 0xb9, 0x8e, 0xd3, 0x1e, 0x0f, 0xa9, 0x42, 0x2a, 0x1d, 0x28, 0x68, 0x24, 0x41, 0xa6, 0x0f, -0x4c, 0xb5, 0xb1, 0x58, 0x6f, 0x8c, 0x7d, 0x4a, 0x17, 0x45, 0x06, 0xd0, 0x13, 0x4c, 0x8d, 0xd5, -0x92, 0xa4, 0x45, 0xe2, 0xed, 0x3c, 0x2b, 0x57, 0xa7, 0x52, 0x08, 0xbf, 0x65, 0xbd, 0xed, 0xfd, -0x91, 0x0e, 0x4c, 0x2e, 0x35, 0x75, 0x84, 0x79, 0x2b, 0x64, 0x41, 0xa4, 0x9f, 0x3e, 0x9d, 0x14, -0x3e, 0x5f, 0x5a, 0x1e, 0x0a, 0xa1, 0xd4, 0xa2, 0x45, 0xae, 0xeb, 0xef, 0x59, 0xc9, 0x12, 0xce, -0xe5, 0xc3, 0xb5, 0x9e, 0xfa, 0xa9, 0x8e, 0x31, 0xe1, 0xc6, 0xff, 0xad, 0x63, 0x4c, 0xb8, 0xf1, -0x2d, 0x1d, 0x63, 0xc2, 0x8d, 0x7f, 0x18, 0x62, 0x0c, 0x58, 0x68, 0x1a, 0x62, 0x0c, 0x58, 0x78, -0xbd, 0x8e, 0x31, 0x60, 0xe1, 0x12, 0x1d, 0x63, 0xc0, 0xc2, 0x95, 0x3a, 0xc6, 0x80, 0x85, 0x43, -0x43, 0x8c, 0x01, 0x0b, 0xb7, 0xe9, 0x18, 0x03, 0x16, 0x3e, 0x8f, 0x6f, 0xa4, 0x04, 0x0b, 0x8f, -0xe2, 0xfb, 0x0a, 0x7c, 0xff, 0x59, 0xc7, 0x23, 0xed, 0xa6, 0x7c, 0x7c, 0x5f, 0x89, 0xef, 0x9b, -0x74, 0x3c, 0x22, 0x6e, 0xba, 0x4d, 0x94, 0x7f, 0xd3, 0xda, 0x61, 0x1d, 0xbf, 0x1f, 0xc3, 0x37, -0xd6, 0xe3, 0xa6, 0x67, 0xf0, 0x8d, 0xe5, 0xdd, 0xf4, 0x1b, 0x7c, 0x63, 0x79, 0x37, 0xbd, 0x87, -0x6f, 0x2c, 0x67, 0x91, 0x0e, 0xdf, 0x58, 0xce, 0xa2, 0x3c, 0x7c, 0x63, 0x39, 0x8b, 0x4a, 0xf0, -0x8d, 0x23, 0x62, 0x51, 0xb5, 0x9e, 0xcb, 0x5b, 0xf4, 0x75, 0x3d, 0x97, 0xb7, 0xa8, 0x7b, 0x58, -0x97, 0x8b, 0x58, 0xb2, 0x28, 0xa1, 0x07, 0x03, 0xe6, 0xb7, 0xe8, 0x1f, 0x45, 0x39, 0x8b, 0x5e, -0x5c, 0xc7, 0xe5, 0x2c, 0x7a, 0x5b, 0xfb, 0x3e, 0x3b, 0xc2, 0xed, 0xbe, 0xf9, 0xca, 0x11, 0x1d, -0xb5, 0xfb, 0xe6, 0x12, 0x8c, 0x8d, 0xed, 0xbe, 0xb9, 0x05, 0xdf, 0x88, 0x75, 0x37, 0x47, 0xd1, -0x1f, 0xdb, 0x7f, 0xf3, 0x43, 0x23, 0xdc, 0xfe, 0x9b, 0x7f, 0x30, 0xc2, 0xf5, 0xb9, 0x79, 0x2f, -0xbe, 0xb1, 0xfd, 0x37, 0xff, 0x76, 0x84, 0xdb, 0x7f, 0xf3, 0xf9, 0x11, 0xae, 0x57, 0xc5, 0x17, -0x46, 0xb8, 0x5e, 0x15, 0x0b, 0x46, 0xb8, 0x3e, 0x15, 0x0d, 0x23, 0x5c, 0x9f, 0x8a, 0xe8, 0x08, -0xb7, 0xbf, 0xe2, 0xe1, 0x11, 0x6e, 0x7f, 0xc5, 0x4f, 0x0d, 0xdc, 0xfe, 0x8a, 0x23, 0x06, 0xa6, -0x08, 0x15, 0x17, 0x44, 0x7d, 0xbe, 0x72, 0x9d, 0xf6, 0xae, 0x9e, 0xc9, 0x70, 0xf8, 0xca, 0x5d, -0x33, 0xb9, 0x3f, 0xbe, 0xd2, 0x37, 0x93, 0xfb, 0xe3, 0x2b, 0x9b, 0x66, 0xf2, 0xc8, 0xfc, 0xca, -0x77, 0x66, 0x72, 0xbf, 0x7c, 0x65, 0xf7, 0x4c, 0xae, 0xd7, 0x57, 0xfe, 0x75, 0x26, 0xf7, 0xcb, -0x57, 0x7e, 0x37, 0x93, 0xfb, 0xe5, 0x2b, 0x7f, 0x9a, 0xc9, 0xf5, 0xaa, 0x9c, 0x3d, 0x93, 0xfb, -0xa5, 0xf2, 0xcb, 0x33, 0xb9, 0x5f, 0x2a, 0x9d, 0x33, 0xb9, 0x5e, 0x95, 0x8b, 0x67, 0x72, 0xbd, -0x2a, 0xfd, 0x33, 0xb9, 0x5e, 0x95, 0x6b, 0x44, 0xb9, 0x95, 0xdf, 0x36, 0x32, 0x3c, 0x2a, 0x7f, -0xaa, 0x7d, 0xff, 0x8b, 0xf6, 0x7e, 0xc7, 0x24, 0xfc, 0x2f, 0x8a, 0xef, 0x5b, 0xec, 0xda, 0xbb, -0x46, 0x7b, 0xaf, 0xd4, 0xde, 0x43, 0xda, 0x7b, 0xfb, 0x55, 0x1c, 0xff, 0x16, 0x2d, 0x9f, 0x5b, -0x5e, 0xd5, 0xde, 0x67, 0xc4, 0x7b, 0x71, 0x8e, 0x95, 0xc3, 0x17, 0xbb, 0xb4, 0xef, 0xa5, 0xd7, -0x88, 0xef, 0x55, 0xd7, 0x70, 0x7b, 0x17, 0x6b, 0x14, 0x64, 0xf1, 0x13, 0xda, 0xfb, 0xe7, 0xf3, -0x44, 0xf8, 0x91, 0x79, 0x22, 0xfc, 0xac, 0xf0, 0xbf, 0xf5, 0x2a, 0xed, 0x5d, 0x5c, 0xca, 0xe1, -0xb7, 0xd6, 0x6b, 0xdf, 0x1d, 0x3f, 0x15, 0xdf, 0xff, 0x63, 0x81, 0x78, 0x6f, 0x5b, 0xc0, 0xe9, -0x6e, 0xdd, 0xbd, 0x80, 0xe1, 0x78, 0xeb, 0xf1, 0x9f, 0x32, 0x3e, 0xdd, 0x7a, 0x5e, 0xc4, 0xf7, -0x7c, 0x51, 0x7b, 0x2f, 0xd0, 0xde, 0x3e, 0xed, 0x1d, 0xd6, 0xde, 0xc3, 0xda, 0x5b, 0xab, 0x8f, -0xe7, 0x85, 0xb4, 0x4e, 0xab, 0xca, 0x5b, 0x5d, 0x53, 0x5b, 0x47, 0xbe, 0x4b, 0x7f, 0x81, 0xcf, -0x2b, 0xf8, 0xfc, 0x3b, 0x3e, 0x1f, 0xe0, 0xf3, 0x67, 0x18, 0x6f, 0xc0, 0xde, 0x6a, 0xc8, 0xc3, -0xc7, 0x81, 0xcf, 0x8d, 0xf8, 0x20, 0x47, 0xd8, 0x80, 0x1c, 0x45, 0xc3, 0xfd, 0xf8, 0x3c, 0x86, -0xcf, 0x3f, 0xe3, 0xf3, 0x5b, 0x7c, 0x70, 0x96, 0x6f, 0xf8, 0xa0, 0x31, 0xd6, 0x1b, 0x8e, 0xb5, -0x76, 0xa7, 0xb4, 0x11, 0xa6, 0xaf, 0xb6, 0x76, 0xc5, 0x79, 0x3b, 0x53, 0x7b, 0x17, 0x52, 0x8e, -0x56, 0x1c, 0xc9, 0x6b, 0xba, 0xe2, 0xf7, 0x91, 0x3a, 0x25, 0xd4, 0xd5, 0xd3, 0xd5, 0xd7, 0x59, -0x02, 0xcb, 0x7a, 0x63, 0x1d, 0x25, 0x25, 0x25, 0x83, 0x4d, 0xfd, 0x7d, 0xd1, 0x8e, 0x9e, 0xf6, -0xc1, 0x60, 0x47, 0x5b, 0x6f, 0x6f, 0x7c, 0xb0, 0x91, 0x36, 0x9e, 0x49, 0xbd, 0xa1, 0x50, 0x2a, -0x42, 0x75, 0x6f, 0x4f, 0xbc, 0xab, 0xa7, 0xbf, 0x03, 0x1a, 0x7a, 0xc3, 0x9f, 0x1d, 0x9b, 0x02, -0x53, 0x31, 0x4d, 0x4c, 0x76, 0x90, 0x70, 0x64, 0x12, 0x91, 0x22, 0x8d, 0xb0, 0x24, 0xc3, 0xa6, -0xd1, 0xa0, 0x29, 0xc1, 0xda, 0xd6, 0x68, 0xa9, 0xa7, 0x97, 0x5a, 0xd1, 0xdf, 0xd3, 0xae, 0xf9, -0xd7, 0x6b, 0xfb, 0xe8, 0xb4, 0xed, 0x5a, 0xd8, 0xe4, 0x0e, 0xa9, 0x55, 0xdb, 0x46, 0x8d, 0x28, -0x64, 0x26, 0xaa, 0x23, 0x28, 0x4b, 0x33, 0x72, 0xa5, 0xcd, 0x3f, 0xc5, 0x67, 0x0f, 0xef, 0x38, -0x1f, 0x6f, 0xfe, 0x57, 0x7c, 0x5e, 0xc3, 0xe7, 0x77, 0xf8, 0x20, 0x97, 0xd2, 0x8c, 0x1c, 0x1c, -0x4e, 0x7f, 0xe3, 0xb7, 0x23, 0xd6, 0xdf, 0x8e, 0x73, 0xc4, 0xed, 0x38, 0x6f, 0xde, 0x5e, 0x82, -0xcf, 0xcd, 0xf8, 0xdc, 0x72, 0xd9, 0x5d, 0xeb, 0xe3, 0xb7, 0xd7, 0x68, 0xef, 0x65, 0xf8, 0x7c, -0x0d, 0x9f, 0x56, 0xed, 0x7b, 0x35, 0x3e, 0x71, 0xcd, 0x4d, 0x73, 0x38, 0x34, 0x21, 0xbb, 0xd2, -0x7c, 0x0b, 0x48, 0x4d, 0xf8, 0x2c, 0xc3, 0xa7, 0x05, 0x9f, 0x00, 0x3e, 0x77, 0xe2, 0x73, 0x07, -0x3e, 0xd5, 0xf8, 0xd4, 0x2f, 0xab, 0x6a, 0x5a, 0x7a, 0x0b, 0x5c, 0x82, 0x10, 0x4b, 0x3a, 0xe2, -0xd5, 0xd5, 0xbc, 0x73, 0x3d, 0x94, 0x86, 0x9e, 0x73, 0xbe, 0xd4, 0x25, 0xc0, 0xd1, 0xd5, 0x1d, -0x8d, 0x74, 0x10, 0xe0, 0x3a, 0xda, 0x4b, 0x4c, 0xd0, 0xdf, 0xda, 0x91, 0x56, 0x5b, 0xe1, 0x07, -0xb2, 0x47, 0x77, 0xb7, 0x77, 0x74, 0xf7, 0x0f, 0x4c, 0x61, 0xa0, 0x58, 0x69, 0x05, 0xb5, 0xc1, -0xe0, 0x72, 0xac, 0x57, 0x75, 0x6f, 0x7f, 0xa4, 0x9d, 0xb3, 0x4a, 0xed, 0x81, 0x0b, 0xc5, 0x3a, -0x3a, 0xa4, 0xbe, 0x08, 0x7a, 0xd1, 0x46, 0xbb, 0x79, 0x10, 0x40, 0x57, 0x47, 0x4f, 0x6f, 0x7f, -0xb8, 0x33, 0xb9, 0x87, 0x90, 0x50, 0x29, 0xc4, 0xbb, 0x39, 0xe3, 0xb4, 0xdd, 0xd0, 0x8b, 0x9d, -0x2f, 0x36, 0x1e, 0x26, 0x33, 0x6d, 0xed, 0xe1, 0xca, 0xf5, 0x60, 0xcf, 0x44, 0x22, 0xd8, 0x4f, -0xf1, 0x8e, 0x58, 0xac, 0x3f, 0x1a, 0xc7, 0x5e, 0x8e, 0xad, 0xe9, 0x88, 0xf5, 0xcd, 0x03, 0x6d, -0xc2, 0x9a, 0x16, 0xb1, 0xa9, 0x37, 0x14, 0xc7, 0xc8, 0x92, 0x8f, 0x76, 0x40, 0xf2, 0x26, 0xc5, -0xa6, 0xaf, 0x66, 0xa4, 0xae, 0xe9, 0xea, 0x8b, 0xd2, 0x36, 0xbe, 0x8e, 0x18, 0xd0, 0xbe, 0x3c, -0xa9, 0xb3, 0xb7, 0xbf, 0xaf, 0x63, 0x75, 0x47, 0x07, 0x6d, 0x89, 0xac, 0x13, 0xdb, 0x06, 0x11, -0xa5, 0xc5, 0x36, 0xc6, 0xfe, 0xa8, 0x44, 0xbb, 0xf8, 0xbb, 0x56, 0x76, 0x88, 0x3a, 0x56, 0x63, -0xfe, 0xa4, 0x8c, 0xab, 0xee, 0xed, 0x8d, 0x68, 0xdb, 0x47, 0xa5, 0x56, 0x9e, 0xbd, 0xa2, 0x70, -0x7b, 0x4f, 0x5f, 0x7f, 0x34, 0xda, 0x1b, 0x23, 0x55, 0x61, 0x0a, 0xca, 0x18, 0xd8, 0x2b, 0x66, -0xb8, 0x62, 0x8c, 0xd4, 0x89, 0x75, 0x44, 0xc0, 0x9b, 0xa0, 0xbb, 0xbf, 0x27, 0x7c, 0x2f, 0xe6, -0x05, 0x8c, 0x74, 0x7d, 0x3d, 0xbd, 0xbd, 0xd1, 0xf4, 0x36, 0x53, 0xa1, 0x24, 0x4c, 0x31, 0xaa, -0x88, 0xc7, 0x88, 0x8e, 0x1d, 0xed, 0x2e, 0x89, 0xf7, 0x80, 0x72, 0x59, 0xd3, 0x95, 0x8b, 0x8d, -0xbd, 0x7d, 0xf1, 0x62, 0x6d, 0xef, 0x27, 0xf7, 0xcb, 0x32, 0x01, 0xe2, 0x68, 0x6b, 0x18, 0x3b, -0x81, 0x37, 0x5e, 0xe2, 0x90, 0x80, 0xaf, 0x53, 0x07, 0x7e, 0x43, 0x5a, 0xa6, 0x95, 0x8e, 0xfd, -0x41, 0xbb, 0x26, 0xdb, 0x79, 0x9b, 0x2c, 0xb3, 0x03, 0x34, 0x29, 0x47, 0x25, 0xa7, 0x5c, 0xd0, -0x27, 0xcf, 0x77, 0x71, 0x51, 0xe2, 0x77, 0x3e, 0x77, 0x5f, 0xad, 0xe8, 0x3e, 0x91, 0xf7, 0x3c, -0x20, 0x38, 0xdf, 0xdb, 0x8a, 0x10, 0x20, 0xa8, 0x21, 0x24, 0xe6, 0x41, 0xb0, 0x63, 0x65, 0x2f, -0xf6, 0x0c, 0x65, 0x2a, 0xf6, 0x94, 0xce, 0x83, 0xe2, 0x62, 0x86, 0x5c, 0x7a, 0xd4, 0x49, 0xe8, -0x03, 0xc5, 0x52, 0x7f, 0xcf, 0xea, 0x9e, 0xde, 0x7b, 0x7b, 0xa4, 0x62, 0x30, 0xa5, 0x77, 0x8d, -0x26, 0x77, 0x6a, 0x56, 0x48, 0x0d, 0x48, 0x04, 0xfa, 0xe2, 0x5a, 0x0d, 0xbc, 0xc9, 0x76, 0xbb, -0x24, 0x5f, 0x57, 0xb8, 0x33, 0x19, 0x60, 0x02, 0x5f, 0x6b, 0xac, 0x9d, 0x6b, 0xd0, 0xd6, 0xdf, -0x87, 0x74, 0xaa, 0x3f, 0x12, 0x77, 0x6b, 0x23, 0x57, 0xea, 0x20, 0xd4, 0x80, 0xfa, 0x48, 0xa4, -0x23, 0xdc, 0x1a, 0x49, 0x8e, 0x67, 0x24, 0x5a, 0x2b, 0x69, 0x58, 0x27, 0xbd, 0x09, 0x63, 0x62, -0xfd, 0xdc, 0x53, 0x50, 0xd3, 0x25, 0xb6, 0x3b, 0x4b, 0x6d, 0xf7, 0x49, 0x6b, 0x3b, 0x62, 0xbd, -0x50, 0xed, 0x5b, 0x9a, 0x19, 0x41, 0xcb, 0xb1, 0x39, 0x58, 0xd5, 0x78, 0xc7, 0x65, 0xfc, 0x1b, -0x63, 0x98, 0x1e, 0x61, 0x89, 0xf0, 0x5e, 0xd3, 0xd5, 0x1b, 0x69, 0xcd, 0x4c, 0x12, 0x6b, 0x45, -0xfc, 0x11, 0xee, 0x06, 0xda, 0x91, 0xbb, 0xa0, 0x74, 0x01, 0x0a, 0x17, 0x55, 0xf3, 0xa5, 0x5a, -0xa9, 0xbb, 0x1f, 0xa3, 0xe2, 0x38, 0xc8, 0x0c, 0xc5, 0x3f, 0xc9, 0x59, 0x87, 0xa1, 0x5a, 0xa0, -0xbb, 0xba, 0x37, 0x1a, 0xeb, 0xa5, 0x8a, 0xa7, 0x22, 0x36, 0x65, 0xd0, 0x2a, 0x1c, 0x46, 0xdd, -0x88, 0x66, 0x5a, 0x40, 0xb4, 0x3f, 0xd6, 0x85, 0x08, 0x8d, 0x35, 0x4c, 0xe2, 0xbb, 0x08, 0xb8, -0x5d, 0x83, 0x77, 0x75, 0xe3, 0xed, 0x9a, 0xcf, 0x94, 0xc1, 0x0c, 0x48, 0xea, 0xa3, 0x9d, 0x5d, -0x2b, 0xfb, 0xd2, 0x3e, 0x91, 0xd6, 0xfb, 0x70, 0x90, 0xa5, 0xbf, 0x31, 0xc7, 0xfe, 0x2e, 0xde, -0x47, 0x9b, 0xf2, 0xc2, 0x72, 0x3b, 0xd3, 0x5f, 0xed, 0xbd, 0x19, 0xb1, 0xb1, 0x6a, 0xe8, 0xc6, -0x54, 0x2b, 0x33, 0x13, 0x74, 0x0c, 0x44, 0x5b, 0x7b, 0xfa, 0xa6, 0xe4, 0x41, 0x93, 0x49, 0x08, -0x89, 0x7c, 0xda, 0xa7, 0xb5, 0xbf, 0xbd, 0xab, 0xb7, 0xa4, 0xbd, 0x83, 0x87, 0x1d, 0x60, 0xfa, -0xbe, 0xde, 0x48, 0x47, 0xea, 0x3b, 0x8c, 0x6d, 0xa6, 0x51, 0x96, 0xf2, 0x58, 0xdd, 0x71, 0x5f, -0x5b, 0x2f, 0x22, 0x42, 0xca, 0x23, 0x8e, 0xf0, 0x5e, 0x4d, 0xd9, 0xa6, 0x7d, 0xba, 0xba, 0x3b, -0x62, 0xe9, 0x1c, 0xbb, 0x5a, 0x53, 0x23, 0x47, 0x94, 0x9f, 0xf1, 0xd9, 0xdd, 0xd5, 0xb7, 0x32, -0xe3, 0x93, 0x66, 0x24, 0xec, 0xea, 0xd6, 0xa8, 0x04, 0xf7, 0xf6, 0xc6, 0x56, 0xb7, 0x75, 0xf4, -0xac, 0xec, 0x14, 0x69, 0x56, 0xf6, 0x46, 0x09, 0x6c, 0xad, 0xed, 0x71, 0xa4, 0x05, 0x7d, 0x12, -0xf4, 0xc7, 0xbb, 0x22, 0x34, 0x1d, 0x42, 0x6b, 0xac, 0x17, 0x3f, 0x71, 0x44, 0x4b, 0xd0, 0xd9, -0xd5, 0xde, 0x2e, 0x41, 0x14, 0x51, 0x7b, 0x1a, 0xe0, 0x92, 0xd8, 0x0f, 0x3d, 0xbd, 0x99, 0xd4, -0x10, 0x1b, 0x9b, 0xa4, 0xa3, 0xdd, 0xad, 0xab, 0x3b, 0xa4, 0x54, 0xfc, 0xb4, 0x7f, 0x2f, 0x4e, -0x95, 0x9f, 0xe9, 0x9f, 0x86, 0xd9, 0x14, 0xef, 0x74, 0x73, 0xea, 0x97, 0x8b, 0xce, 0x97, 0xee, -0xed, 0x8a, 0x77, 0x72, 0xe9, 0x7d, 0x5d, 0xe1, 0x1e, 0x1c, 0x09, 0x58, 0xba, 0x3b, 0x14, 0xeb, -0xed, 0xc6, 0x16, 0xb7, 0xb6, 0x23, 0xd9, 0x20, 0xcc, 0x42, 0x04, 0xca, 0xf0, 0x5f, 0x19, 0xe9, -0xed, 0x4b, 0xd7, 0x28, 0x33, 0x17, 0x11, 0xa2, 0x95, 0x9d, 0x19, 0xa0, 0x61, 0xad, 0xd8, 0x42, -0xce, 0xeb, 0x23, 0x82, 0x50, 0x68, 0xc1, 0x49, 0x20, 0x60, 0x34, 0x24, 0x18, 0xdd, 0xd3, 0x7c, -0x05, 0x92, 0x2e, 0xab, 0x26, 0x69, 0x3c, 0x75, 0xd4, 0x49, 0x5a, 0xc3, 0xc7, 0x9c, 0xa4, 0x95, -0xda, 0x9e, 0x6c, 0xa6, 0xe0, 0x4c, 0x1e, 0x52, 0x3e, 0x0d, 0x5a, 0x0d, 0x93, 0x1e, 0xc9, 0x42, -0xa1, 0xba, 0x57, 0x8c, 0x07, 0x0d, 0xde, 0x91, 0x2e, 0x24, 0x23, 0xed, 0x1d, 0x62, 0x6d, 0x07, -0xc9, 0x5b, 0x66, 0x3f, 0xa4, 0x07, 0x4f, 0x9f, 0x98, 0x6a, 0xc0, 0xd9, 0xdb, 0xd6, 0x37, 0x9f, -0xf7, 0xac, 0x37, 0xf1, 0xc0, 0x47, 0xaa, 0x4e, 0x9b, 0xcb, 0xab, 0x1a, 0x9b, 0x83, 0xd0, 0x44, -0x8b, 0x4d, 0x9d, 0xc8, 0xd9, 0x10, 0x75, 0x47, 0xcf, 0x2e, 0x8d, 0xba, 0x20, 0x4d, 0x8b, 0x77, -0x24, 0x29, 0x31, 0x4d, 0x87, 0x38, 0xb1, 0xdc, 0x8b, 0x30, 0x4a, 0x91, 0x9f, 0xee, 0x95, 0xd4, -0xb8, 0x8e, 0x54, 0xe3, 0xe2, 0xd8, 0xe7, 0x3d, 0x50, 0x15, 0x8f, 0x77, 0x74, 0x63, 0xd1, 0x38, -0x09, 0xc5, 0x3a, 0xfa, 0x69, 0x67, 0x3d, 0x71, 0x5a, 0x1d, 0x52, 0xfd, 0xf2, 0x60, 0xc7, 0x3d, -0xfd, 0x48, 0xfc, 0xa0, 0xa9, 0xb5, 0x87, 0x30, 0x8d, 0x5b, 0x28, 0x61, 0xba, 0xcc, 0x16, 0x09, -0x6e, 0x2d, 0x33, 0x13, 0xca, 0x22, 0x95, 0x56, 0x6a, 0x0d, 0x51, 0xb7, 0x72, 0x97, 0x69, 0x54, -0xa4, 0x63, 0x20, 0x8e, 0xdc, 0x57, 0x9f, 0xd4, 0xdb, 0xcf, 0xad, 0xe2, 0x1d, 0xea, 0xc9, 0x5a, -0x8b, 0x6d, 0xfe, 0x8c, 0x49, 0xda, 0x36, 0xf9, 0xe9, 0x39, 0xc7, 0x91, 0xa7, 0xe8, 0x45, 0x64, -0xeb, 0xc6, 0x8e, 0xe6, 0xc9, 0x26, 0x09, 0x8c, 0x74, 0x47, 0x66, 0xd2, 0x19, 0xd1, 0xab, 0x4b, -0x34, 0x62, 0x93, 0x2c, 0x53, 0x3b, 0xf1, 0x91, 0xee, 0x04, 0xcc, 0x3c, 0xc5, 0x48, 0x2c, 0xeb, -0xc5, 0xd6, 0xf6, 0xc6, 0x9a, 0xa2, 0x1d, 0x2b, 0xa7, 0x75, 0x53, 0xa4, 0x97, 0x70, 0x8a, 0x50, -0x75, 0x5a, 0x40, 0x1f, 0x56, 0x20, 0xae, 0x85, 0x2c, 0x9b, 0x12, 0xd2, 0xdc, 0x1d, 0x0d, 0xb6, -0xf6, 0x4d, 0x8b, 0xee, 0x8d, 0xc4, 0xbd, 0x5d, 0xf1, 0x65, 0xad, 0xd1, 0x69, 0xfe, 0x41, 0x5e, -0xe8, 0x9b, 0xe6, 0xb9, 0x0c, 0x3b, 0xe9, 0x8e, 0x46, 0xcc, 0x5f, 0x70, 0x1f, 0xd4, 0xe7, 0x4b, -0x42, 0x03, 0x81, 0x8e, 0x7b, 0x9d, 0xf3, 0xa7, 0xf8, 0xd4, 0x61, 0x87, 0x93, 0x17, 0x52, 0x9e, -0x30, 0x52, 0x8d, 0xfb, 0x92, 0x79, 0x30, 0x93, 0x94, 0x3c, 0xb0, 0x30, 0x95, 0x69, 0x40, 0x2a, -0x88, 0x18, 0xd9, 0xb7, 0x32, 0xd6, 0x25, 0xf0, 0x01, 0xe1, 0xdb, 0x9e, 0x02, 0xe3, 0x25, 0x04, -0x5a, 0x80, 0x52, 0x50, 0xe9, 0x0a, 0x29, 0x45, 0x48, 0x52, 0x09, 0xa6, 0xd1, 0x6f, 0x11, 0x3d, -0x45, 0xc4, 0x2b, 0x52, 0x33, 0x30, 0x92, 0xb0, 0x30, 0xf2, 0x27, 0xf1, 0xfb, 0xa2, 0x1d, 0xe9, -0x60, 0x89, 0x49, 0x48, 0xc6, 0xf9, 0x0f, 0xaa, 0xa3, 0x2b, 0xa3, 0x94, 0xa9, 0x84, 0x0b, 0x79, -0xc7, 0x7e, 0xa9, 0x0b, 0x11, 0xe3, 0x72, 0xfe, 0x7d, 0xfd, 0x6d, 0x97, 0x09, 0x42, 0xbf, 0x68, -0xa4, 0xb5, 0xa7, 0x03, 0xe2, 0x48, 0x29, 0x11, 0x07, 0x28, 0x8a, 0xd4, 0xd6, 0x3b, 0x20, 0x55, -0x22, 0xdc, 0x23, 0xb4, 0xb4, 0x39, 0x2d, 0xc1, 0x72, 0x24, 0x65, 0x4d, 0x58, 0x9b, 0x8e, 0x1e, -0x04, 0xeb, 0x67, 0x07, 0x21, 0x02, 0xf7, 0x21, 0x8a, 0xa7, 0xc0, 0x40, 0xed, 0xa2, 0xfc, 0x93, -0xc7, 0x9e, 0x38, 0x1a, 0x20, 0x43, 0x20, 0x21, 0x57, 0x28, 0xda, 0xde, 0xf7, 0xd9, 0x0d, 0xa3, -0x9c, 0xbf, 0xda, 0xd5, 0xd3, 0xde, 0x4b, 0xdd, 0x4b, 0xa4, 0x91, 0x07, 0x35, 0x0e, 0x4c, 0x64, -0xfd, 0x10, 0xb5, 0x89, 0x4e, 0x10, 0x61, 0x4b, 0xc1, 0x8d, 0xe3, 0x24, 0xc7, 0x42, 0xac, 0x63, -0x65, 0x07, 0x8e, 0x5c, 0x5a, 0x36, 0x96, 0xea, 0x6b, 0xaa, 0x97, 0x35, 0xc2, 0xbd, 0x1d, 0x5d, -0xb1, 0x76, 0xa9, 0x63, 0x65, 0x67, 0xaf, 0xb4, 0xb2, 0x55, 0xac, 0x19, 0x77, 0xf5, 0xac, 0xec, -0xed, 0x8e, 0xc6, 0x3a, 0x3a, 0x3b, 0x78, 0x62, 0x84, 0x14, 0xe0, 0x99, 0x74, 0xd3, 0xf0, 0x9a, -0x3a, 0x03, 0x66, 0xf4, 0x51, 0xdf, 0xea, 0x2e, 0x5e, 0xe4, 0xee, 0x6d, 0x8b, 0xb7, 0x22, 0xd7, -0x87, 0x99, 0xb5, 0x66, 0x8c, 0xbf, 0x74, 0xbc, 0x30, 0xa1, 0x5c, 0x3a, 0x84, 0x10, 0xf4, 0xde, -0x18, 0x8d, 0x9d, 0xde, 0x58, 0x7b, 0x06, 0xa4, 0x2e, 0x9d, 0xe0, 0x05, 0xce, 0x24, 0xc3, 0x69, -0xb6, 0x9f, 0x3a, 0x01, 0x64, 0x00, 0x0b, 0x39, 0x10, 0xe6, 0xe1, 0xfa, 0xa3, 0x74, 0xda, 0x8b, -0x99, 0xc9, 0xf6, 0x2e, 0x31, 0x07, 0x21, 0x75, 0x11, 0xdc, 0xf3, 0x6d, 0x8d, 0xab, 0xe3, 0x29, -0x72, 0xdc, 0xdf, 0x83, 0xcc, 0x80, 0x58, 0x58, 0xaf, 0x59, 0xde, 0x84, 0x53, 0xce, 0xca, 0xd5, -0x88, 0x85, 0x49, 0x90, 0x01, 0xd1, 0x4b, 0x24, 0xf6, 0x49, 0x7a, 0xc6, 0x22, 0x67, 0x1b, 0x52, -0x84, 0xd5, 0xd8, 0x0e, 0xa4, 0x64, 0x3d, 0x29, 0x8e, 0x4a, 0x84, 0x74, 0xc5, 0xb1, 0x71, 0x08, -0x29, 0xa6, 0xda, 0xc2, 0x0f, 0xf9, 0x02, 0x24, 0x22, 0x88, 0xbd, 0xed, 0x82, 0xfa, 0x0a, 0xdf, -0xd4, 0xb4, 0x80, 0x1d, 0x25, 0x7c, 0x32, 0xb2, 0xa1, 0x24, 0x53, 0xc8, 0x20, 0xf5, 0x26, 0x71, -0xb4, 0x38, 0x96, 0x20, 0x79, 0xde, 0x6a, 0xda, 0x62, 0xbd, 0x56, 0x71, 0x42, 0x96, 0x95, 0x91, -0x2e, 0x77, 0x5f, 0x67, 0x07, 0xb2, 0xf5, 0x21, 0xac, 0x74, 0x27, 0x8b, 0x1f, 0x82, 0xd4, 0x22, -0x4e, 0x10, 0xe0, 0xe3, 0xe8, 0x87, 0x04, 0x7b, 0x65, 0x9a, 0x38, 0x66, 0xf2, 0x4c, 0xa2, 0x22, -0x54, 0x64, 0xd2, 0xa7, 0xaf, 0x23, 0x4c, 0x44, 0x3d, 0x15, 0x5b, 0x30, 0x55, 0xee, 0x08, 0x8a, -0x03, 0xdd, 0x29, 0xf6, 0x32, 0xd5, 0x7d, 0x2b, 0x2f, 0xe9, 0xb9, 0x14, 0xbb, 0xc5, 0x00, 0x20, -0x04, 0xd1, 0xf6, 0x2e, 0x64, 0xc2, 0xa5, 0x3d, 0x83, 0x52, 0x4f, 0xe7, 0xce, 0xa6, 0x96, 0x70, -0x09, 0xab, 0x36, 0x35, 0x58, 0xe3, 0x80, 0x3e, 0x23, 0x14, 0x61, 0x4b, 0x5d, 0x34, 0xd5, 0x73, -0x0a, 0xab, 0x27, 0x82, 0x56, 0xb6, 0xa6, 0x90, 0x3f, 0x79, 0xe6, 0x4c, 0x1b, 0x00, 0xc8, 0x20, -0xd0, 0x40, 0x4c, 0x25, 0x9e, 0xc6, 0x19, 0x4e, 0xcd, 0x79, 0x3a, 0x9b, 0x78, 0x49, 0x65, 0xa6, -0xf0, 0x8c, 0x22, 0x34, 0xc5, 0x38, 0xe2, 0xe0, 0xe4, 0x46, 0xc4, 0x69, 0x3e, 0xeb, 0x58, 0x3d, -0x2d, 0xf1, 0x25, 0xfc, 0x65, 0xba, 0xe3, 0x98, 0xd1, 0x44, 0x20, 0x8b, 0x79, 0x3a, 0xed, 0x13, -0x25, 0x9d, 0x06, 0x51, 0xfa, 0x08, 0xc3, 0x9c, 0x11, 0x38, 0x4d, 0xa9, 0xa7, 0xb0, 0xa7, 0x53, -0xcb, 0x42, 0x5e, 0x35, 0xcd, 0xbe, 0x89, 0x20, 0x22, 0xd6, 0x5c, 0xc9, 0x7e, 0x04, 0x8f, 0x2b, -0xd5, 0x95, 0x9d, 0xad, 0x7d, 0xec, 0x2d, 0x30, 0x39, 0xc5, 0xc1, 0x30, 0x69, 0xd3, 0x38, 0x08, -0x4a, 0x30, 0xa5, 0x33, 0x4b, 0xa6, 0x65, 0x9d, 0x1a, 0xe9, 0x53, 0x98, 0x60, 0xad, 0x79, 0x24, -0x9e, 0xaf, 0x44, 0x51, 0x5e, 0x23, 0x7e, 0xe2, 0x74, 0xdd, 0xd4, 0x74, 0x69, 0x6e, 0x39, 0x45, -0x1e, 0x08, 0x5f, 0xfa, 0x78, 0x74, 0xa4, 0xf8, 0xe7, 0x24, 0x1d, 0x25, 0x62, 0x91, 0xa2, 0x95, -0x0b, 0x3e, 0x47, 0x9c, 0xb2, 0xcb, 0xc4, 0x41, 0x8e, 0x36, 0x19, 0x3c, 0x35, 0x30, 0x83, 0x11, -0xc5, 0xd1, 0xcb, 0xa3, 0x9a, 0xb6, 0xfe, 0x10, 0xaf, 0x4e, 0xb3, 0x52, 0xaa, 0xce, 0x69, 0xb6, -0xfe, 0x52, 0x64, 0x67, 0x1e, 0x7f, 0x3a, 0x5e, 0x09, 0x86, 0xff, 0x33, 0xb0, 0x9c, 0x98, 0xff, -0xcf, 0x08, 0x42, 0x89, 0xe0, 0x33, 0x42, 0x7c, 0x24, 0x26, 0x68, 0xf3, 0xd3, 0xd4, 0x90, 0x4b, -0x45, 0x07, 0x11, 0xce, 0x47, 0x59, 0xab, 0xda, 0xfa, 0x20, 0x79, 0xa6, 0x55, 0x38, 0x90, 0x6b, -0x13, 0x8e, 0x46, 0xac, 0x62, 0x9a, 0x57, 0x4b, 0x31, 0xa8, 0x97, 0x78, 0x34, 0x75, 0xa2, 0xf4, -0x8c, 0xf1, 0x88, 0x1f, 0xa1, 0xc4, 0xd5, 0x3c, 0xd9, 0x53, 0x6a, 0xa8, 0xe9, 0x48, 0x72, 0x60, -0xf0, 0xf5, 0x65, 0xcb, 0xbe, 0xa1, 0x49, 0xfd, 0x49, 0xb6, 0x2c, 0x29, 0x89, 0x9a, 0x44, 0x60, -0x06, 0x53, 0xc8, 0x7a, 0x9f, 0x82, 0x7e, 0xde, 0x2a, 0xd5, 0x97, 0x54, 0x8e, 0x48, 0x2c, 0x43, -0x60, 0x16, 0x3e, 0xc1, 0x50, 0x0a, 0xf1, 0x9d, 0x93, 0x7a, 0x99, 0xa8, 0xb7, 0xf7, 0x76, 0x68, -0x9a, 0xb9, 0x2e, 0x52, 0xe4, 0x60, 0x3e, 0xe9, 0xc8, 0x42, 0x29, 0x51, 0x2c, 0x14, 0x11, 0x26, -0x68, 0xaa, 0xaa, 0x71, 0x16, 0xb4, 0xbb, 0x0a, 0xda, 0xe7, 0x2f, 0x86, 0x60, 0x2d, 0x54, 0x69, -0x7f, 0x10, 0x6c, 0x82, 0x3a, 0xed, 0x0f, 0xea, 0x96, 0x43, 0x63, 0x2d, 0xd4, 0xd4, 0x43, 0x73, -0x3d, 0x54, 0x09, 0xe4, 0x67, 0x2d, 0x84, 0x13, 0x33, 0xba, 0x45, 0xba, 0xbe, 0xa0, 0xef, 0xfa, -0xf9, 0x15, 0xa6, 0xf8, 0xca, 0xbb, 0x03, 0x88, 0xcf, 0x25, 0x91, 0x9e, 0xbb, 0x51, 0x7a, 0x47, -0xff, 0x82, 0x76, 0xf2, 0x6b, 0xea, 0x0a, 0x33, 0x0c, 0xc9, 0xa3, 0xb4, 0xbc, 0xa4, 0x3c, 0x32, -0xc0, 0xbe, 0x8d, 0x0d, 0xac, 0x97, 0xbc, 0x85, 0x76, 0x5e, 0xf1, 0xf7, 0xed, 0x74, 0x88, 0x36, -0xf5, 0x5d, 0xc7, 0x5b, 0xbf, 0xd2, 0xa1, 0xc8, 0x3b, 0x8a, 0x2f, 0x08, 0xd6, 0xb3, 0xf2, 0x24, -0x43, 0xc7, 0xc6, 0x98, 0xd8, 0xd9, 0xd5, 0x27, 0x21, 0x03, 0x14, 0x27, 0xf1, 0xbd, 0xc4, 0x04, -0xb5, 0x01, 0x68, 0x6a, 0x10, 0x1d, 0xc1, 0xea, 0x93, 0x48, 0xd2, 0x02, 0x45, 0x85, 0x09, 0xb8, -0xfd, 0x15, 0xac, 0x38, 0x6a, 0xba, 0x24, 0x33, 0xf4, 0x0b, 0x66, 0xa4, 0x4b, 0x8e, 0x5a, 0x4a, -0xd7, 0x54, 0x93, 0x11, 0x20, 0xc8, 0x0b, 0x7b, 0x37, 0x03, 0xcf, 0xcf, 0x0d, 0x38, 0xb5, 0x24, -0x73, 0x6f, 0xa6, 0xdd, 0x6d, 0x54, 0x00, 0x7f, 0x05, 0xa7, 0x7c, 0x7d, 0x35, 0xf9, 0x55, 0xcf, -0xf3, 0x19, 0x62, 0x80, 0xd8, 0x0c, 0x47, 0x64, 0x0b, 0x7d, 0x7d, 0xb5, 0xd4, 0x25, 0x92, 0xaf, -0x23, 0x12, 0xc5, 0xdc, 0x82, 0xb5, 0x52, 0xb2, 0x47, 0xb0, 0xcb, 0x62, 0xac, 0xd2, 0xed, 0x13, -0xf6, 0x32, 0x8a, 0x25, 0x3a, 0x75, 0x2d, 0xb4, 0xbc, 0xce, 0xf9, 0xa6, 0x60, 0x93, 0x94, 0xec, -0x2f, 0x0c, 0x0a, 0xd6, 0x36, 0xd5, 0x36, 0x9b, 0xea, 0x96, 0xa3, 0xb3, 0xae, 0x37, 0xd6, 0xd6, -0xd5, 0x8e, 0x31, 0x1a, 0x6b, 0xf1, 0xab, 0xb1, 0x23, 0xd6, 0xdd, 0x45, 0xf1, 0x6b, 0xea, 0xf1, -0xab, 0xa6, 0xab, 0x8f, 0x5a, 0x83, 0x9f, 0xb5, 0x01, 0xfc, 0xac, 0xed, 0xd1, 0xbe, 0x9a, 0x28, -0xb0, 0xa9, 0xb3, 0xf7, 0x5e, 0xa9, 0x3e, 0x78, 0x9b, 0x44, 0xe7, 0x9e, 0xfb, 0x98, 0x55, 0xeb, -0xef, 0x33, 0x35, 0xa7, 0x82, 0x32, 0x31, 0xa1, 0xab, 0x27, 0xd4, 0x6b, 0x0a, 0xa6, 0x82, 0x68, -0x5e, 0x24, 0xb6, 0x91, 0x14, 0x27, 0x7d, 0x5d, 0xed, 0x22, 0xd2, 0xf5, 0x7d, 0x34, 0xc7, 0xc4, -0x51, 0x40, 0x32, 0x55, 0x2d, 0x93, 0x06, 0xb4, 0x3f, 0xe9, 0x3e, 0xed, 0x0f, 0xd3, 0x32, 0xa2, -0xdc, 0x81, 0x6c, 0x4a, 0x31, 0x6b, 0xd9, 0x6e, 0x49, 0xc6, 0x71, 0xf1, 0x1c, 0xd0, 0x45, 0x3d, -0xd4, 0x77, 0x4b, 0x32, 0xbe, 0xa9, 0x2e, 0x23, 0x13, 0x6c, 0x26, 0x0e, 0x14, 0x4a, 0xca, 0x43, -0x23, 0xe9, 0x6f, 0x0a, 0x7a, 0x33, 0xe3, 0x10, 0x69, 0x17, 0x9b, 0x0e, 0xa7, 0xc5, 0xfa, 0xea, -0x25, 0xb1, 0x90, 0x8e, 0xb5, 0x4f, 0x8f, 0xd5, 0x70, 0x49, 0x2c, 0x4d, 0x64, 0xca, 0x8c, 0xf5, -0xd5, 0x8c, 0x12, 0xdb, 0xda, 0x30, 0xe2, 0xbd, 0x31, 0xe4, 0xc5, 0x45, 0xa9, 0xf8, 0x8d, 0x23, -0x38, 0x1d, 0x35, 0xa3, 0xd8, 0x7b, 0xf1, 0x2f, 0x15, 0x99, 0x0b, 0x67, 0x9f, 0x29, 0xd1, 0x33, -0xca, 0x8f, 0x68, 0x7f, 0xa9, 0x24, 0x5c, 0x93, 0x94, 0x6f, 0x66, 0xb2, 0x60, 0x55, 0x3a, 0x59, -0x9f, 0xf6, 0x97, 0xac, 0x7f, 0x6b, 0x2c, 0xd6, 0x7a, 0x9f, 0x33, 0xe5, 0x2b, 0x88, 0x0c, 0x65, -0x35, 0x7f, 0x7a, 0xdb, 0xab, 0xff, 0x42, 0x26, 0x7d, 0x2b, 0xbb, 0xba, 0xa4, 0xcf, 0x93, 0xcb, -0x6d, 0xcd, 0x52, 0xa9, 0xf6, 0x87, 0x89, 0xb1, 0x47, 0xe3, 0x12, 0xe2, 0xba, 0xa9, 0xa9, 0x81, -0x3a, 0x9c, 0xf0, 0x86, 0xb4, 0xa8, 0xad, 0x97, 0x0e, 0x5a, 0xc9, 0x89, 0x4e, 0x56, 0xd7, 0x56, -0x90, 0x27, 0x59, 0x44, 0x40, 0x1c, 0x0d, 0x5e, 0x3e, 0x55, 0x6a, 0xc8, 0x4a, 0x4e, 0x74, 0x6a, -0xa9, 0xd0, 0xa5, 0xa5, 0xaa, 0xb9, 0x7c, 0x2a, 0x6d, 0x3c, 0x4b, 0x4e, 0x74, 0x68, 0x69, 0xd0, -0xa5, 0xa5, 0x69, 0x4e, 0xa6, 0x21, 0x34, 0xc6, 0x38, 0xf4, 0x4d, 0x14, 0xc7, 0x25, 0x05, 0x35, -0x20, 0xdc, 0xe7, 0xc2, 0x71, 0x8d, 0x7d, 0xd1, 0xda, 0x15, 0x9f, 0x6f, 0xf2, 0xd5, 0x6a, 0xe1, -0x28, 0xf0, 0x47, 0xa2, 0x74, 0x4e, 0x7e, 0x59, 0x6a, 0x66, 0x69, 0x4f, 0xd2, 0x70, 0x13, 0xd4, -0x2d, 0x83, 0x3a, 0x56, 0x63, 0xa4, 0x7c, 0x82, 0x5e, 0xb6, 0xc3, 0x90, 0xf4, 0x40, 0x1a, 0x55, -0x5a, 0xd6, 0x82, 0xde, 0x5f, 0x85, 0xaf, 0x12, 0x46, 0x64, 0x78, 0x97, 0x93, 0x77, 0x03, 0x34, -0x50, 0xaf, 0x67, 0x78, 0x2f, 0x42, 0xef, 0xaf, 0x7a, 0xe1, 0xab, 0x98, 0xa0, 0x01, 0x82, 0x55, -0x50, 0x45, 0xfd, 0x2b, 0x3a, 0x41, 0xa8, 0xa2, 0x79, 0x58, 0x89, 0x15, 0xe9, 0x16, 0xa4, 0xd9, -0x40, 0x05, 0x90, 0x15, 0x8a, 0x60, 0x35, 0x54, 0x35, 0x55, 0xd7, 0xd7, 0x5f, 0x12, 0x97, 0xf2, -0xa4, 0x88, 0x92, 0x09, 0x6e, 0x6b, 0x86, 0x64, 0xef, 0xc1, 0x6d, 0xd8, 0x77, 0xc2, 0xca, 0x4f, -0x55, 0x4d, 0x49, 0x09, 0x36, 0xf1, 0xd6, 0x5b, 0xd9, 0xa4, 0x85, 0x84, 0x6d, 0x27, 0xc6, 0x81, -0x1a, 0x6e, 0xc2, 0x49, 0x2f, 0xd2, 0xa1, 0xcd, 0x7f, 0x75, 0xc8, 0x6c, 0x06, 0x3b, 0x88, 0x16, -0xf4, 0xc4, 0x85, 0x42, 0x1c, 0xea, 0x58, 0x7f, 0x9d, 0xd4, 0xf7, 0x07, 0x52, 0xeb, 0x48, 0x04, -0x14, 0x9a, 0x3d, 0xe9, 0xad, 0xcd, 0xbc, 0x2c, 0x19, 0xa6, 0x6d, 0x1c, 0x50, 0x03, 0xca, 0x22, -0x48, 0x16, 0x0a, 0x22, 0xed, 0xf3, 0x61, 0xa5, 0xb6, 0x8a, 0x40, 0xc1, 0xc9, 0x22, 0x70, 0x6a, -0x8a, 0xb4, 0x4b, 0x1c, 0x4b, 0x12, 0xa5, 0x45, 0x3a, 0x5a, 0x49, 0xeb, 0x73, 0xf9, 0x2c, 0xa6, -0x24, 0x6d, 0x43, 0xe2, 0xd5, 0x23, 0x65, 0xa8, 0xee, 0x39, 0x38, 0x96, 0x0c, 0x26, 0x03, 0x0b, -0x55, 0xb7, 0x37, 0x2f, 0xaf, 0x0f, 0xd4, 0x37, 0x4f, 0x0d, 0x99, 0x77, 0x49, 0x50, 0x2a, 0x4f, -0x12, 0xda, 0xa6, 0x2c, 0x06, 0x60, 0xa2, 0xfe, 0x88, 0xd6, 0xf4, 0xb4, 0x1e, 0xcc, 0x99, 0x5e, -0x23, 0xa0, 0x9a, 0xf5, 0xcf, 0x07, 0xd2, 0x8f, 0x24, 0x97, 0xe8, 0xfa, 0xa6, 0x04, 0x8b, 0x85, -0x04, 0xc1, 0x62, 0xb4, 0xf3, 0x12, 0x9d, 0xd0, 0xe6, 0xf5, 0x71, 0x1a, 0x4d, 0x6f, 0x57, 0x91, -0x5a, 0x3b, 0xe9, 0x43, 0xe4, 0x25, 0x44, 0x6f, 0x4d, 0x2e, 0x03, 0xb4, 0xb7, 0xc6, 0x5b, 0x99, -0xcc, 0xd2, 0xb2, 0x15, 0x2d, 0x67, 0x34, 0x73, 0x38, 0x91, 0x68, 0x14, 0x7f, 0xd9, 0x0b, 0x6b, -0x49, 0xaa, 0xf7, 0x35, 0x1d, 0xda, 0xaa, 0x4b, 0xdf, 0xe5, 0xe2, 0xb4, 0xb6, 0xa1, 0xd8, 0xd0, -0xcf, 0x3a, 0x0d, 0x66, 0x93, 0xfb, 0x32, 0x70, 0x5d, 0xd3, 0x2f, 0x4e, 0x2b, 0x39, 0xb3, 0xd0, -0xe4, 0x12, 0x10, 0x09, 0x27, 0xe9, 0x75, 0x1e, 0x06, 0x4b, 0xb2, 0x69, 0x49, 0x5e, 0x8d, 0x3d, -0x97, 0xb3, 0x70, 0x9e, 0x66, 0xc1, 0x4c, 0xa6, 0xb4, 0x0f, 0xcf, 0xc0, 0x92, 0xf8, 0xc6, 0x74, -0x28, 0xfa, 0x23, 0xe4, 0x93, 0x66, 0x26, 0x88, 0x1d, 0x99, 0x9e, 0x5a, 0xe3, 0xd7, 0x32, 0x05, -0x06, 0x94, 0x4b, 0xa3, 0xfd, 0x49, 0x31, 0x07, 0x48, 0x5f, 0xa1, 0x41, 0x92, 0x3b, 0x4e, 0x43, -0x17, 0xcd, 0xaa, 0x4b, 0x3a, 0x6f, 0x67, 0x27, 0x21, 0x17, 0x86, 0xb9, 0x90, 0x04, 0xf4, 0x88, -0xfe, 0xc0, 0x78, 0x97, 0x4f, 0xce, 0x8c, 0x0c, 0x40, 0x10, 0x07, 0x07, 0x12, 0x9a, 0x74, 0x53, -0x82, 0x1d, 0xdd, 0x97, 0xac, 0x1a, 0xcd, 0x27, 0xdf, 0xde, 0x35, 0x0c, 0xa1, 0x78, 0x5f, 0x47, -0x24, 0x04, 0xd5, 0x98, 0x8a, 0x95, 0x13, 0xc8, 0xc9, 0xd7, 0x72, 0xfc, 0x8e, 0xf8, 0x2d, 0x98, -0x5f, 0x13, 0xa2, 0x18, 0x79, 0x23, 0xaf, 0x17, 0x6e, 0x8d, 0xb5, 0x11, 0x07, 0xdf, 0xdd, 0xda, -0x03, 0x4d, 0xfd, 0x62, 0x8d, 0x66, 0xba, 0xbe, 0x6b, 0xda, 0x7a, 0xc4, 0xa5, 0xcb, 0x11, 0x99, -0xeb, 0x0f, 0x53, 0x96, 0x1d, 0x2e, 0x5d, 0x75, 0x80, 0x69, 0xa2, 0x2a, 0x08, 0xe1, 0x34, 0xf5, -0x39, 0x9d, 0xc9, 0x4f, 0xeb, 0xfe, 0x53, 0x3e, 0xc2, 0x7e, 0x58, 0x47, 0x5f, 0x47, 0x6b, 0x0c, -0xc1, 0x79, 0x89, 0x11, 0x31, 0x27, 0x85, 0xcf, 0x9f, 0x62, 0x3d, 0x6c, 0xc1, 0xcd, 0x37, 0xdf, -0x58, 0x8c, 0x3f, 0x37, 0x49, 0xa0, 0xb1, 0x43, 0x29, 0x4b, 0x62, 0xe9, 0x7c, 0x9a, 0x24, 0x09, -0x96, 0xc7, 0x3b, 0x49, 0x64, 0x44, 0xd6, 0xbf, 0x0f, 0x93, 0xb5, 0xdd, 0x47, 0x43, 0x8f, 0x34, -0x25, 0x8c, 0xd6, 0xf7, 0xf6, 0x10, 0x10, 0xa0, 0xaa, 0xa1, 0xd1, 0x57, 0x25, 0x4d, 0xdd, 0xd1, -0x46, 0x1f, 0xbc, 0xab, 0x7f, 0x81, 0xe4, 0x2c, 0xbb, 0xa9, 0xa4, 0xf4, 0xe6, 0x12, 0x2c, 0x6d, -0x11, 0xed, 0x5d, 0x4b, 0x09, 0x9a, 0xa4, 0x85, 0x09, 0x74, 0xdc, 0xfb, 0x39, 0x96, 0xfb, 0xd2, -0x91, 0x90, 0xb2, 0xd5, 0xf6, 0xc4, 0x35, 0x65, 0x70, 0x85, 0x46, 0xfb, 0x52, 0xc1, 0x15, 0x92, -0xc6, 0x19, 0x8b, 0x10, 0x49, 0xe3, 0x8b, 0x53, 0x5f, 0x5a, 0x02, 0x6c, 0xe1, 0xca, 0xce, 0x8e, -0xf6, 0x7e, 0x1a, 0x3a, 0x4c, 0x7e, 0xab, 0x68, 0x49, 0x53, 0xb0, 0x62, 0x1c, 0xb3, 0xa0, 0x1d, -0x0a, 0x0b, 0x0b, 0xa5, 0x86, 0xde, 0x70, 0x98, 0x26, 0x18, 0x5a, 0x3c, 0xac, 0x30, 0x11, 0xd3, -0x79, 0x69, 0x3f, 0x57, 0x06, 0x6e, 0x6f, 0x68, 0x58, 0x4c, 0x75, 0x10, 0x03, 0x8e, 0xaa, 0x51, -0x55, 0xc1, 0x66, 0x87, 0x68, 0x1b, 0xd3, 0x74, 0xff, 0xf4, 0x9a, 0x6e, 0x86, 0x7d, 0x96, 0xf4, -0xb2, 0x87, 0xb4, 0xac, 0x2f, 0xcc, 0xea, 0x5c, 0x13, 0x2d, 0x8d, 0x69, 0xfc, 0x1e, 0xce, 0x1f, -0xa6, 0xd4, 0x2a, 0x29, 0xd1, 0x1d, 0xf6, 0x10, 0x12, 0x10, 0x22, 0x29, 0xe2, 0x6a, 0x2c, 0xe5, -0x2d, 0xb4, 0xe8, 0xa4, 0x14, 0xe8, 0xa8, 0x98, 0xb2, 0xb0, 0xb9, 0xba, 0x6b, 0xe5, 0xea, 0x6e, -0x12, 0x8b, 0x62, 0xb7, 0x70, 0x13, 0xe9, 0x3b, 0xde, 0x1a, 0x9e, 0xf2, 0x9d, 0x54, 0x47, 0x69, -0x53, 0xdc, 0x00, 0x1b, 0xb0, 0xc1, 0x48, 0x69, 0x3d, 0x55, 0x9a, 0x1c, 0x50, 0xf8, 0xbc, 0x5b, -0xd2, 0xd1, 0xb0, 0x3e, 0x44, 0x40, 0xb4, 0x7e, 0x0b, 0xf4, 0x73, 0x37, 0x91, 0xc4, 0x80, 0xe2, -0x17, 0x48, 0x45, 0xbc, 0xe1, 0x41, 0x0b, 0x6c, 0xe8, 0xe8, 0x21, 0xcf, 0xcb, 0x98, 0xd5, 0xd1, -0xf4, 0x6b, 0x29, 0xba, 0xdf, 0xcd, 0xfb, 0xb9, 0xfa, 0xb4, 0x75, 0x02, 0x4a, 0xd0, 0x4c, 0x82, -0x0d, 0x6b, 0xb1, 0x2b, 0xa0, 0x48, 0xe2, 0x69, 0xbb, 0x5c, 0x4c, 0x55, 0x03, 0x52, 0xc1, 0x0d, -0xe8, 0x22, 0xf4, 0xa1, 0xc3, 0x2a, 0x08, 0x7c, 0x97, 0xa6, 0xa3, 0x9b, 0x4a, 0x39, 0x89, 0x6c, -0x6a, 0xc1, 0xa9, 0x6f, 0x93, 0xb6, 0x1c, 0x83, 0x3d, 0x83, 0x35, 0xaa, 0xee, 0x44, 0xb0, 0x69, -0xf3, 0x4d, 0x0f, 0xc2, 0x7f, 0x5a, 0xea, 0xf9, 0x60, 0x6a, 0x8c, 0x21, 0x81, 0xa3, 0x85, 0xcd, -0xcf, 0x15, 0x7b, 0xaa, 0xa4, 0x39, 0x55, 0x82, 0x04, 0x53, 0xb1, 0x74, 0x3b, 0x76, 0x3e, 0x62, -0x00, 0x29, 0xdd, 0x79, 0x03, 0xc2, 0x4a, 0xce, 0x31, 0xb9, 0x4a, 0xec, 0xbc, 0x5c, 0x3c, 0xde, -0xce, 0x10, 0xa5, 0x95, 0x5c, 0x41, 0xa6, 0xd3, 0x91, 0xea, 0x32, 0xb2, 0x10, 0xbe, 0x38, 0x23, -0x47, 0x90, 0xf9, 0x62, 0x83, 0x4b, 0xa9, 0xbd, 0x24, 0x26, 0xc1, 0xf2, 0x4f, 0xc9, 0x04, 0xa9, -0x8c, 0x14, 0x69, 0x45, 0xd0, 0xd2, 0xf4, 0xdf, 0xef, 0x9a, 0x52, 0x1b, 0xcc, 0x69, 0x00, 0x0b, -0x60, 0x21, 0x59, 0xb4, 0xf8, 0xff, 0x47, 0xb2, 0xb7, 0x50, 0x70, 0x46, 0xfb, 0x84, 0xb2, 0x64, -0x65, 0x06, 0x70, 0x93, 0x59, 0xcd, 0xd7, 0xe2, 0x13, 0x73, 0x93, 0xc2, 0xff, 0xbf, 0xa5, 0x0e, -0x5a, 0x34, 0x22, 0x78, 0x22, 0xff, 0x94, 0xbc, 0x4f, 0x90, 0x12, 0x93, 0x40, 0x2b, 0xce, 0xc7, -0xbd, 0x11, 0xd3, 0xdf, 0xd4, 0xe0, 0xd4, 0x88, 0xa6, 0x79, 0xfd, 0xf3, 0xb6, 0x7a, 0x19, 0xca, -0x90, 0x5a, 0xaf, 0x6a, 0xfd, 0x1e, 0xff, 0x8c, 0xf6, 0x2e, 0x17, 0x90, 0x89, 0x12, 0x61, 0xe7, -0xa8, 0x7d, 0xd3, 0x23, 0xb2, 0xb5, 0xc8, 0xcb, 0x27, 0xfe, 0x1b, 0x60, 0xd2, 0x36, 0x55, 0x07, -0x92, 0x01, 0x93, 0x9e, 0xfb, 0xd2, 0x6d, 0xf8, 0x4b, 0xa0, 0x21, 0x9d, 0xfe, 0xf4, 0xc6, 0xfe, -0x95, 0x11, 0x69, 0x4a, 0x73, 0x3d, 0x62, 0x25, 0xa2, 0xa0, 0x4f, 0x02, 0x9c, 0x6d, 0xd2, 0x34, -0x99, 0x4e, 0xb6, 0x41, 0x8a, 0xdf, 0x35, 0x2d, 0xbb, 0x3d, 0xb0, 0xe4, 0xab, 0x55, 0x0d, 0x0d, -0x77, 0xfb, 0x6a, 0xab, 0x6a, 0x6a, 0x83, 0x77, 0xd7, 0xd7, 0xa4, 0x88, 0x13, 0x98, 0x34, 0x1e, -0x38, 0x95, 0x7d, 0x46, 0x10, 0x0e, 0xdd, 0x62, 0x26, 0xa4, 0x6d, 0xb1, 0xde, 0xd5, 0x1d, 0x3d, -0x29, 0x70, 0x17, 0x6b, 0xf9, 0xf2, 0xe6, 0x95, 0xbf, 0x10, 0x01, 0xeb, 0xa5, 0x29, 0x1d, 0xb0, -0x91, 0x7d, 0xfd, 0x51, 0xda, 0x90, 0x43, 0x5b, 0x21, 0xba, 0x69, 0x5f, 0xd1, 0xbc, 0x79, 0xa6, -0x3e, 0x2c, 0xf6, 0x16, 0x91, 0x82, 0xeb, 0x7e, 0x4b, 0xba, 0xf6, 0x26, 0x53, 0x46, 0x6a, 0xd2, -0x7b, 0x8b, 0xed, 0x4e, 0x3d, 0x42, 0x81, 0x4f, 0x46, 0xbf, 0x92, 0xcc, 0xcc, 0x5f, 0xcf, 0xa8, -0x29, 0x63, 0x23, 0x90, 0x50, 0x4d, 0x12, 0xe4, 0xa2, 0x82, 0xdf, 0xc1, 0xb9, 0x44, 0xd3, 0xfa, -0xf2, 0x9c, 0x92, 0x86, 0x61, 0x65, 0x41, 0xdf, 0x62, 0x16, 0x0c, 0xf8, 0x0c, 0x5f, 0x06, 0xc5, -0x06, 0xda, 0xfe, 0xf3, 0xf5, 0x82, 0xbe, 0x6f, 0x48, 0x53, 0x18, 0x6f, 0x48, 0x19, 0x99, 0xcb, -0x14, 0x40, 0x34, 0xd6, 0x52, 0x63, 0xcd, 0xb0, 0x2a, 0xf1, 0x24, 0x8b, 0x4d, 0xd3, 0x5d, 0xe6, -0x27, 0x1d, 0x74, 0x0c, 0xb6, 0x76, 0x27, 0x77, 0xf4, 0x24, 0x79, 0x34, 0xda, 0x01, 0xc6, 0xf3, -0x61, 0x3c, 0x1e, 0xa3, 0xe4, 0x29, 0xb7, 0x58, 0x5a, 0xd7, 0xb6, 0x4a, 0x51, 0xaa, 0x9a, 0xde, -0x3e, 0xd2, 0x8a, 0x41, 0x63, 0x75, 0x3d, 0x60, 0x46, 0x58, 0x24, 0x2d, 0x06, 0xd3, 0x1e, 0x96, -0xd5, 0xb4, 0x21, 0xaf, 0x96, 0x57, 0x8b, 0x71, 0xc6, 0x68, 0xe8, 0x6d, 0x6d, 0x6f, 0xea, 0x08, -0xc3, 0xed, 0x3d, 0x11, 0xcd, 0x55, 0xbd, 0xa4, 0xa5, 0x86, 0x76, 0x2e, 0x61, 0x13, 0xd6, 0xa4, -0x8e, 0x26, 0x52, 0x73, 0x2e, 0xb3, 0xfb, 0x5f, 0x07, 0xe3, 0xdf, 0x38, 0xa8, 0xb9, 0xed, 0x49, -0x4f, 0xb2, 0xc5, 0xb8, 0xfc, 0x63, 0xf5, 0x8c, 0xef, 0xbd, 0x4a, 0x3a, 0x41, 0xbc, 0xa8, 0xbc, -0x10, 0x7c, 0x0e, 0xbf, 0xd4, 0x0b, 0xe5, 0x6b, 0xc8, 0x86, 0xe8, 0xf8, 0x3d, 0x07, 0xe8, 0xac, -0x7f, 0xc9, 0x9f, 0xae, 0x1d, 0x84, 0x1a, 0x90, 0x2c, 0x59, 0xd9, 0x00, 0xa5, 0xd7, 0x7a, 0x60, -0x1e, 0x7e, 0x57, 0x80, 0x7c, 0x2d, 0x59, 0xf9, 0xbc, 0xce, 0xeb, 0x06, 0xbb, 0xaf, 0x17, 0x24, -0xb7, 0x31, 0xf0, 0x98, 0xe4, 0x71, 0x7e, 0xa9, 0x71, 0xb3, 0xec, 0x89, 0xe6, 0xcb, 0x86, 0xb7, -0x7f, 0xb4, 0xf6, 0xca, 0x7d, 0x0f, 0xe4, 0x9e, 0xb3, 0xc1, 0xd7, 0x12, 0xb1, 0x89, 0xe7, 0x13, -0xa1, 0xd3, 0xd1, 0xac, 0xb1, 0x75, 0x73, 0x2a, 0x21, 0x6b, 0x4f, 0x22, 0x64, 0xbc, 0x6a, 0x10, -0x45, 0x4a, 0xa3, 0x92, 0x7d, 0x15, 0xe5, 0x61, 0xac, 0x3a, 0x09, 0xb3, 0x82, 0xeb, 0xa2, 0xc6, -0x9d, 0xeb, 0x42, 0xdb, 0xd6, 0x40, 0x3d, 0x97, 0xbc, 0x24, 0x59, 0x72, 0x15, 0x48, 0xb9, 0x59, -0xd9, 0x3a, 0x2c, 0xb9, 0xea, 0x33, 0x4b, 0xde, 0x86, 0x25, 0x17, 0x82, 0x34, 0xad, 0xec, 0x3f, -0x7e, 0xfe, 0xb2, 0x5b, 0x36, 0x72, 0xe9, 0x64, 0x73, 0x64, 0xbc, 0xe4, 0x15, 0xb7, 0x71, 0x09, -0xd7, 0x21, 0xb0, 0xb5, 0x4c, 0xbf, 0x26, 0xe7, 0xf7, 0x5d, 0x6b, 0xb3, 0xf6, 0x3d, 0x50, 0xcb, -0xf5, 0x91, 0x3c, 0xc1, 0x84, 0xe5, 0xac, 0x8d, 0x4f, 0xdc, 0x97, 0x1c, 0x76, 0x03, 0xc5, 0xc8, -0xab, 0x84, 0x2b, 0x7e, 0xdf, 0x85, 0xb9, 0xeb, 0xf6, 0x3d, 0x30, 0x25, 0xfc, 0x35, 0x11, 0x7e, -0xaa, 0x7e, 0x9a, 0xff, 0xbf, 0x0b, 0xff, 0x93, 0x19, 0xfe, 0x49, 0xdb, 0x65, 0x25, 0xff, 0x29, -0xc2, 0x7e, 0x3f, 0x3d, 0xcd, 0xef, 0x84, 0xff, 0x89, 0xe9, 0xfe, 0xef, 0x0a, 0xff, 0x77, 0xa6, -0xfb, 0xbf, 0x4f, 0xfe, 0x31, 0xdd, 0xbe, 0xe1, 0x4b, 0x4a, 0xf8, 0x90, 0x42, 0x24, 0xcf, 0xdb, -0xfe, 0xe8, 0xcc, 0xfd, 0x09, 0xcb, 0xf3, 0x4e, 0x60, 0x78, 0xe8, 0xbc, 0x4e, 0xd0, 0x37, 0x6e, -0x96, 0x8c, 0xcd, 0x89, 0x86, 0xb7, 0x2a, 0x2b, 0xe9, 0x64, 0x57, 0xa0, 0x9f, 0xf0, 0x23, 0xd0, -0x2f, 0x2f, 0x63, 0xdb, 0xb4, 0x1f, 0xa9, 0xef, 0xe8, 0xab, 0x8c, 0xc6, 0x70, 0x0e, 0xd9, 0x15, -0x25, 0xab, 0x9c, 0x89, 0x2a, 0xb2, 0xbc, 0x59, 0x58, 0x1f, 0xe8, 0x4b, 0xc7, 0x28, 0xac, 0x37, -0x27, 0xc8, 0x7c, 0x48, 0x5b, 0xa9, 0xec, 0x3d, 0x34, 0x6a, 0x37, 0xd2, 0x19, 0x52, 0xc9, 0x6b, -0x9f, 0x65, 0xd4, 0x41, 0x56, 0x28, 0x27, 0x70, 0xcf, 0xb9, 0x68, 0xd5, 0x49, 0x0b, 0xec, 0x1c, -0x6d, 0x3b, 0xa7, 0x98, 0xf1, 0xeb, 0x4c, 0xf2, 0x2b, 0xd0, 0xc7, 0x31, 0xb2, 0xd1, 0x6f, 0x20, -0xd0, 0x87, 0xbf, 0xe3, 0xf4, 0x8b, 0x78, 0x29, 0x3b, 0x8d, 0x0e, 0xb0, 0xeb, 0xec, 0x01, 0x7f, -0x0f, 0x48, 0xe1, 0x00, 0x9d, 0x6b, 0x14, 0x67, 0x29, 0xd9, 0x02, 0x53, 0x82, 0x6c, 0x7b, 0x7c, -0xf5, 0x9c, 0x7f, 0x28, 0x94, 0xcb, 0xae, 0x43, 0x7c, 0x22, 0x30, 0x9b, 0xdd, 0x47, 0xa4, 0x1a, -0x29, 0x4b, 0xd6, 0xfb, 0xd6, 0x42, 0xb6, 0x7b, 0x06, 0xb6, 0xc2, 0x5f, 0x3a, 0x78, 0xf1, 0x7e, -0x69, 0x06, 0x9f, 0x83, 0x5b, 0x21, 0xce, 0x74, 0x35, 0xbc, 0x55, 0x53, 0x89, 0x2d, 0xbc, 0x87, -0x4e, 0xb6, 0xa4, 0xdb, 0x90, 0x6c, 0x1f, 0x78, 0x8c, 0xc6, 0x64, 0x0b, 0xb5, 0xf0, 0x5c, 0x0e, -0x17, 0x6e, 0x23, 0xb9, 0xa9, 0xa6, 0x14, 0x4e, 0x75, 0x85, 0x32, 0xad, 0x96, 0x75, 0xe9, 0x5a, -0x12, 0x1e, 0xb5, 0x9c, 0xf0, 0x43, 0x37, 0x9f, 0xab, 0x6e, 0x39, 0x56, 0x33, 0xb6, 0x3a, 0x97, -0x5d, 0xbb, 0x44, 0x4d, 0xd9, 0xbd, 0x3b, 0xb0, 0x95, 0x6b, 0x37, 0x22, 0xcd, 0x9e, 0x5a, 0xbb, -0x06, 0x10, 0x7d, 0x90, 0x09, 0x5f, 0xdf, 0x7b, 0xa5, 0x40, 0x35, 0xb4, 0x73, 0x1d, 0x1d, 0xb0, -0x7f, 0xa8, 0x6e, 0xe8, 0xa5, 0xa1, 0xf5, 0xc3, 0x50, 0x4d, 0xb5, 0x2d, 0xd5, 0x37, 0xbc, 0x05, -0xe6, 0x54, 0x7d, 0x33, 0xd2, 0xd8, 0x41, 0x3f, 0x44, 0x36, 0x55, 0xf5, 0xc3, 0xf4, 0x6b, 0x1c, -0x22, 0xbb, 0x5f, 0x30, 0x24, 0x25, 0x12, 0x60, 0x1c, 0x66, 0xf7, 0x30, 0xbb, 0x87, 0xc0, 0x18, -0x36, 0x18, 0x5f, 0x84, 0x6b, 0xd1, 0x97, 0x5c, 0xfb, 0xe0, 0xda, 0x24, 0x3c, 0xd2, 0x65, 0x71, -0xff, 0xdc, 0x43, 0xa5, 0xc9, 0x48, 0x43, 0xb0, 0xe7, 0xae, 0x0c, 0x1b, 0xc0, 0x03, 0x57, 0xa1, -0xeb, 0x5a, 0xcc, 0x09, 0xf3, 0xb9, 0x0a, 0x44, 0x3d, 0x08, 0x2e, 0xa5, 0xb2, 0xe8, 0x41, 0x82, -0x4a, 0x0c, 0xca, 0x10, 0x2a, 0x64, 0x5f, 0xf0, 0x6b, 0xa3, 0x35, 0x2f, 0xae, 0xce, 0x65, 0x57, -0x23, 0xa6, 0x43, 0x58, 0xb0, 0xbb, 0x99, 0x21, 0x31, 0x90, 0x09, 0x07, 0xea, 0x45, 0x3e, 0x91, -0x37, 0x80, 0xfd, 0x65, 0x4e, 0xf6, 0x17, 0xc2, 0x4f, 0x1f, 0x32, 0x69, 0x3d, 0xf1, 0x1c, 0xf6, -0x44, 0x7f, 0x61, 0x7d, 0xb2, 0xa6, 0xc6, 0x31, 0x98, 0xcd, 0xb6, 0x63, 0xfb, 0xc8, 0xee, 0x23, -0x58, 0x31, 0x6e, 0x56, 0xc8, 0x2e, 0x1b, 0x87, 0x1f, 0xd1, 0x57, 0x61, 0x5d, 0xe7, 0x38, 0x7a, -0xf4, 0x67, 0x1d, 0xab, 0xcd, 0x6f, 0xfa, 0xb7, 0x86, 0x73, 0xa4, 0xab, 0x62, 0x3a, 0xa2, 0x75, -0x5f, 0xef, 0xa1, 0x5c, 0xc8, 0x26, 0x9d, 0x11, 0xa4, 0xab, 0xb0, 0xb4, 0xfb, 0x1b, 0xde, 0x72, -0x02, 0xdb, 0x65, 0x23, 0x1c, 0x9c, 0x65, 0x87, 0xe9, 0x2d, 0xb8, 0x73, 0x0b, 0xb6, 0xc0, 0xc2, -0xae, 0xf6, 0x9a, 0x17, 0x43, 0x5c, 0xff, 0x3b, 0x3b, 0xb9, 0xfe, 0x30, 0xa5, 0xfe, 0x35, 0x72, -0xb5, 0x24, 0x5a, 0x80, 0x50, 0xa9, 0xc9, 0x0f, 0xf4, 0x4b, 0x46, 0xb6, 0x9e, 0xb8, 0x8d, 0x6d, -0x7d, 0x38, 0xb9, 0x76, 0x72, 0xaa, 0x76, 0xb6, 0x8c, 0xda, 0x99, 0xb1, 0x76, 0x64, 0x19, 0x7a, -0xce, 0xa5, 0x75, 0x43, 0x46, 0x41, 0xe4, 0xf2, 0x24, 0xb5, 0xfa, 0xb1, 0x57, 0x5a, 0x01, 0x72, -0x0e, 0x8f, 0xe1, 0xaf, 0xb1, 0xe1, 0xad, 0x19, 0x40, 0x56, 0x21, 0xce, 0x8c, 0xd9, 0x75, 0x92, -0x51, 0xef, 0xc1, 0x3c, 0x4b, 0xe8, 0x7d, 0x06, 0x76, 0x6e, 0x0c, 0xdb, 0xed, 0x1e, 0xc9, 0x8f, -0xb1, 0xec, 0x77, 0x8c, 0x5a, 0xe8, 0x04, 0x77, 0x76, 0x28, 0xd7, 0x98, 0x80, 0x19, 0x7e, 0x7d, -0x98, 0xad, 0xe2, 0xfe, 0xc9, 0x66, 0x49, 0x9c, 0xeb, 0x6c, 0x78, 0x2b, 0xeb, 0x4a, 0xc4, 0xba, -0x26, 0xd9, 0xf8, 0xfe, 0x8b, 0x30, 0x53, 0x5a, 0x60, 0x00, 0x2f, 0xc8, 0x9e, 0xf7, 0x5f, 0xd4, -0xfd, 0x6b, 0xda, 0x9d, 0xb5, 0xbe, 0xea, 0x0f, 0x86, 0xcb, 0xc0, 0x87, 0xa0, 0xf0, 0x75, 0xbb, -0xb1, 0x84, 0x4e, 0x2e, 0x8b, 0x3e, 0xfd, 0xba, 0x93, 0x61, 0x92, 0xfd, 0x19, 0x30, 0xc9, 0x16, -0x30, 0x09, 0xdc, 0x23, 0xd1, 0xbe, 0x7f, 0x7d, 0x20, 0x1a, 0x38, 0xa4, 0x4c, 0x06, 0xee, 0xf9, -0x5a, 0x62, 0xa5, 0x53, 0x26, 0xba, 0x81, 0xb8, 0x99, 0x7b, 0x8c, 0x6c, 0x68, 0x0b, 0x2c, 0x29, -0x3b, 0x76, 0x7b, 0xa2, 0x23, 0x42, 0x56, 0x09, 0x61, 0xa2, 0x3d, 0x47, 0x3e, 0xf6, 0x35, 0x4f, -0xdb, 0x85, 0xd0, 0x0a, 0x79, 0x0b, 0xe1, 0x44, 0x6c, 0x70, 0xcb, 0x50, 0xcb, 0x90, 0x7c, 0xec, -0xff, 0xee, 0xdf, 0x96, 0xa1, 0xf6, 0xbd, 0x87, 0x86, 0xbe, 0x96, 0xe8, 0xc8, 0xa6, 0xdc, 0xdb, -0x2f, 0xf0, 0x48, 0xd5, 0x97, 0x1d, 0xa3, 0x83, 0x61, 0x21, 0x03, 0x95, 0x93, 0x8b, 0xa5, 0x95, -0x01, 0xf6, 0x56, 0x56, 0x38, 0x9f, 0x2c, 0x84, 0xba, 0xc5, 0xa9, 0xd5, 0xb5, 0x30, 0x92, 0x3a, -0x9d, 0x6e, 0x21, 0x7b, 0xa1, 0xd8, 0x06, 0x8b, 0x56, 0x53, 0x1b, 0xe5, 0x7c, 0x9b, 0xa7, 0x6d, -0x3c, 0xac, 0x47, 0xc8, 0x62, 0x7a, 0x51, 0xf3, 0x40, 0xff, 0x7f, 0x67, 0x9d, 0x43, 0x4f, 0x07, -0xfa, 0x49, 0x03, 0x82, 0xfc, 0xc3, 0x6d, 0xfd, 0x28, 0x49, 0x3a, 0x91, 0xff, 0xa4, 0xff, 0xa5, -0x8b, 0x06, 0xe6, 0x93, 0xd9, 0x56, 0x8d, 0x09, 0x27, 0x96, 0xd1, 0x04, 0x38, 0x8c, 0x6e, 0x98, -0xf0, 0xb0, 0x0d, 0xeb, 0x60, 0x89, 0xce, 0x41, 0x3d, 0xd0, 0x84, 0xef, 0x88, 0x31, 0x65, 0xd9, -0xba, 0xff, 0xba, 0x8f, 0xc9, 0x42, 0x0d, 0x18, 0xa2, 0xba, 0x40, 0x3f, 0xc6, 0xb9, 0x9e, 0xe2, -0xd0, 0xec, 0xe2, 0x66, 0x2b, 0x38, 0x6e, 0x73, 0xf2, 0x7c, 0x38, 0x59, 0xd5, 0x40, 0xae, 0xc1, -0x20, 0x37, 0xfa, 0x1f, 0x09, 0x59, 0xe6, 0xf9, 0xc0, 0xe8, 0xdd, 0x01, 0x86, 0xea, 0x93, 0x60, -0x90, 0x36, 0x60, 0x2e, 0x3e, 0xb2, 0x22, 0x03, 0xc6, 0x96, 0x51, 0x79, 0x34, 0xd0, 0x2f, 0x4e, -0xe7, 0x3b, 0x91, 0xdb, 0x70, 0xf0, 0x99, 0xe1, 0xdd, 0x64, 0xff, 0x64, 0x8e, 0xc3, 0x05, 0x85, -0x4e, 0x17, 0x94, 0x14, 0xba, 0xa0, 0xcc, 0xe5, 0xd2, 0xcb, 0x25, 0x2e, 0xbd, 0xa3, 0x30, 0xa2, -0x2f, 0x54, 0xcc, 0x7f, 0xff, 0x6f, 0xf7, 0xc3, 0x20, 0xac, 0x85, 0x01, 0x58, 0x03, 0xf2, 0x52, -0xd7, 0x52, 0xc4, 0x1e, 0x43, 0x1c, 0xca, 0x8b, 0xc0, 0xc2, 0x36, 0x1a, 0x73, 0x8f, 0x26, 0x24, -0x3d, 0x8d, 0x0c, 0x43, 0xda, 0xc6, 0x41, 0x05, 0x8e, 0x51, 0x0c, 0xb7, 0x7b, 0x5e, 0x7b, 0x51, -0xd2, 0xd5, 0x24, 0xaa, 0xfe, 0x68, 0x84, 0xea, 0xb3, 0x38, 0x72, 0xf4, 0x69, 0x8b, 0x04, 0xcb, -0x4e, 0xe9, 0xd6, 0xba, 0x73, 0x02, 0x7b, 0x54, 0xbf, 0x14, 0x48, 0xdb, 0x35, 0x50, 0x4d, 0xbe, -0x55, 0x3a, 0xef, 0xb2, 0x0b, 0x6a, 0x79, 0x60, 0x3b, 0xba, 0x1a, 0xf9, 0xf7, 0x2e, 0xfe, 0x8d, -0xf0, 0xef, 0x68, 0x60, 0x7b, 0xd5, 0x29, 0xdd, 0x76, 0xb7, 0xd1, 0xed, 0x03, 0x1f, 0xfb, 0x3c, -0xc5, 0x36, 0xa6, 0x24, 0xdf, 0x2a, 0xbd, 0x95, 0xbe, 0xf5, 0x9d, 0x81, 0xed, 0xc4, 0x3f, 0x21, -0x4f, 0x42, 0xfe, 0xe6, 0x28, 0xc8, 0xf0, 0xfe, 0x86, 0x6c, 0xa2, 0xbc, 0xcf, 0xfb, 0x62, 0x36, -0x58, 0x76, 0x61, 0xf2, 0x98, 0xdb, 0x43, 0xd6, 0x43, 0x26, 0x0f, 0xd1, 0xe9, 0xfb, 0x60, 0xa2, -0x65, 0x73, 0x6c, 0x06, 0x72, 0x28, 0xc7, 0x30, 0xed, 0x20, 0xe7, 0xb0, 0x91, 0xca, 0xd0, 0x6f, -0x4f, 0xd5, 0xf5, 0x08, 0x7e, 0xed, 0x4f, 0x7f, 0x5d, 0xf7, 0x0a, 0xdb, 0xfc, 0x59, 0xad, 0x9f, -0x84, 0x45, 0xd1, 0xc9, 0x17, 0x9f, 0xd6, 0x4f, 0x32, 0x1c, 0x2c, 0xf2, 0xd2, 0xad, 0x63, 0x62, -0x44, 0xa9, 0x25, 0x9a, 0x9d, 0x27, 0x84, 0xb1, 0x7e, 0xb2, 0x71, 0x33, 0x43, 0xd8, 0x36, 0xaf, -0x1a, 0x0a, 0xe7, 0xd5, 0x40, 0xc9, 0xbc, 0x5a, 0x28, 0x9b, 0x57, 0xa7, 0x97, 0xe7, 0x2d, 0xd1, -0x3b, 0xe6, 0x2d, 0xd3, 0x17, 0x0a, 0x2b, 0x4f, 0xc2, 0xde, 0x50, 0xf2, 0x74, 0x33, 0x52, 0x15, -0x9b, 0xc3, 0xe7, 0x24, 0x7b, 0x44, 0x64, 0xc7, 0x32, 0x1f, 0x1f, 0x1b, 0x3e, 0x56, 0xb2, 0x69, -0x89, 0x8f, 0x19, 0x1f, 0x23, 0x3e, 0x06, 0x77, 0x2e, 0x9f, 0xd0, 0x96, 0x9c, 0x1e, 0x69, 0x29, -0xc5, 0x95, 0xcc, 0x0d, 0x6f, 0xd9, 0xa6, 0xcc, 0x57, 0x44, 0x9b, 0x0a, 0xeb, 0xb7, 0xbe, 0xac, -0xd9, 0xd4, 0x36, 0x04, 0xd6, 0x3e, 0xae, 0xa3, 0x13, 0xef, 0x7a, 0xe4, 0xcc, 0xcc, 0x1e, 0x1d, -0x84, 0x73, 0xe4, 0x05, 0x38, 0xaa, 0xce, 0x5e, 0x37, 0x0a, 0x70, 0x62, 0x34, 0xd0, 0x17, 0x05, -0xe5, 0x02, 0x52, 0x02, 0xb2, 0xfe, 0x6d, 0xc5, 0xb9, 0xaf, 0x02, 0x9f, 0x32, 0xb6, 0x22, 0x79, -0x9c, 0xac, 0x48, 0x92, 0xed, 0x3d, 0x7b, 0x37, 0x58, 0x53, 0x96, 0x24, 0xdf, 0x16, 0x96, 0x24, -0x1d, 0x11, 0x58, 0x48, 0xd0, 0x36, 0xba, 0x80, 0x6c, 0x26, 0x82, 0x6e, 0x8f, 0xd4, 0x0d, 0x36, -0x57, 0xa7, 0xfe, 0x2c, 0x42, 0x63, 0x9b, 0xec, 0x91, 0x22, 0x20, 0xcf, 0xf3, 0x40, 0x1b, 0x86, -0x3c, 0xe9, 0xc2, 0x54, 0x45, 0xdd, 0xea, 0x09, 0xf5, 0x78, 0x49, 0xb1, 0x7a, 0xd2, 0x55, 0xac, -0x9e, 0x2e, 0x2c, 0x56, 0xcf, 0x38, 0x8b, 0xd5, 0x73, 0x8e, 0x62, 0x75, 0xdc, 0x5e, 0xac, 0x4e, -0x78, 0xab, 0x14, 0x80, 0x49, 0x29, 0xf8, 0xd3, 0x89, 0x84, 0x05, 0x72, 0xc3, 0x00, 0xdb, 0xdb, -0x4a, 0xa3, 0x59, 0x3b, 0x47, 0xc3, 0xa1, 0x0e, 0x61, 0xd9, 0x17, 0xe0, 0xa4, 0xa5, 0x12, 0xf4, -0x3b, 0x47, 0x43, 0x00, 0xbf, 0x51, 0x7c, 0x1c, 0xcf, 0x12, 0x16, 0xf1, 0xaf, 0x42, 0xbf, 0x3d, -0x8a, 0x70, 0x5f, 0x83, 0x31, 0x47, 0xda, 0xac, 0xec, 0xbe, 0x3a, 0xbc, 0x82, 0xdf, 0x64, 0xfd, -0xf6, 0xbb, 0xca, 0x5d, 0xec, 0xce, 0x0b, 0xc7, 0xf8, 0xfd, 0x05, 0xb2, 0x1e, 0xaf, 0xc4, 0xed, -0xab, 0xc0, 0x80, 0x25, 0x8f, 0x48, 0x08, 0xd9, 0xf7, 0x46, 0x5f, 0x1b, 0x53, 0xa2, 0x2e, 0xf4, -0xf1, 0x57, 0x85, 0x7a, 0xd0, 0xf7, 0x5c, 0x11, 0xba, 0xd5, 0xe3, 0xe6, 0x2a, 0xd0, 0xf5, 0xdc, -0x85, 0xdf, 0xa7, 0x4a, 0x30, 0x16, 0x7e, 0xe9, 0x7b, 0x11, 0x70, 0x4a, 0x83, 0x4b, 0x7c, 0x65, -0xe1, 0xd7, 0x71, 0x65, 0x71, 0xa1, 0xf8, 0x32, 0xe0, 0xd7, 0x51, 0xa5, 0xd4, 0x29, 0xbe, 0x66, -0xe0, 0xd7, 0x41, 0x45, 0x76, 0x88, 0xaf, 0x6c, 0xfc, 0xda, 0xaf, 0x58, 0xed, 0xe2, 0x6b, 0x26, -0x7e, 0xed, 0x55, 0xb2, 0xd9, 0x06, 0x96, 0xbe, 0x71, 0x23, 0xbd, 0x43, 0x30, 0x39, 0x59, 0xaa, -0x2b, 0x0a, 0x30, 0xb4, 0x8e, 0xab, 0x27, 0x8a, 0x96, 0xa8, 0x27, 0x8b, 0xea, 0xd4, 0xd3, 0x45, -0xb5, 0xea, 0x99, 0xa2, 0x1a, 0xf5, 0x5c, 0x51, 0xb5, 0x3a, 0x5e, 0xe4, 0x55, 0x27, 0xfc, 0x55, -0xe1, 0x42, 0xd7, 0xd2, 0x47, 0x0e, 0x94, 0x57, 0xbd, 0xf6, 0xca, 0x6b, 0xaf, 0xd4, 0xfe, 0x69, -0xc7, 0xdb, 0x4a, 0x76, 0x53, 0x55, 0x71, 0xd9, 0x28, 0x7c, 0x6d, 0x14, 0xeb, 0x7e, 0x4e, 0xcf, -0xf6, 0x63, 0x6b, 0x12, 0x64, 0xed, 0xf0, 0xb7, 0x63, 0x55, 0x1f, 0xa8, 0x13, 0xd7, 0x77, 0x83, -0x45, 0x9d, 0xb8, 0xae, 0x1b, 0xcc, 0xe0, 0x47, 0xda, 0x50, 0xe9, 0xed, 0x02, 0xdf, 0x7c, 0x1f, -0x2c, 0x8c, 0xd2, 0x59, 0x7a, 0x4f, 0xc3, 0x87, 0x2b, 0x26, 0xd4, 0x5d, 0x81, 0x6f, 0x20, 0x65, -0xd4, 0x29, 0xa0, 0xc6, 0x63, 0x7a, 0xfc, 0xed, 0x89, 0x65, 0xe1, 0x6f, 0x67, 0x0c, 0xe1, 0xa3, -0xb6, 0xc5, 0x66, 0xe0, 0xef, 0x8a, 0x58, 0x36, 0xfe, 0xde, 0x11, 0x9b, 0x89, 0xbf, 0x8d, 0x31, -0x23, 0xfe, 0xfa, 0x11, 0x6f, 0x72, 0xc2, 0xb9, 0xee, 0x2b, 0x10, 0xf7, 0x4c, 0xc2, 0x6e, 0xb1, -0xb0, 0x81, 0x8f, 0xf3, 0xca, 0x9b, 0x16, 0xba, 0xb1, 0x80, 0xee, 0x51, 0x98, 0x0f, 0xf9, 0x0b, -0x06, 0xbf, 0xa9, 0xc2, 0x77, 0xfd, 0x5d, 0x90, 0x1f, 0x9a, 0xbb, 0x60, 0x30, 0xa1, 0x13, 0xee, -0x70, 0xee, 0x0d, 0xec, 0x0f, 0x9e, 0x04, 0xdc, 0xe0, 0x81, 0xef, 0x7a, 0x13, 0xca, 0x5c, 0xbf, -0xf3, 0x0c, 0x78, 0x13, 0xb1, 0x99, 0x16, 0xb2, 0xe3, 0x68, 0xf9, 0x2f, 0xdf, 0x6d, 0x2f, 0xab, -0x17, 0xde, 0xf6, 0x99, 0xb1, 0x41, 0x21, 0x3d, 0xce, 0x82, 0x39, 0x48, 0xcb, 0xfb, 0x98, 0x26, -0x22, 0xef, 0x87, 0x34, 0x68, 0xbc, 0xe0, 0x50, 0x54, 0x87, 0x73, 0xec, 0x1c, 0x76, 0x1f, 0xdb, -0xb9, 0xb1, 0xcd, 0xc2, 0xae, 0xa3, 0x8c, 0x2d, 0x1b, 0xc3, 0x7a, 0xd9, 0x24, 0x95, 0x64, 0xe5, -0xd9, 0xab, 0x98, 0x27, 0xc5, 0x71, 0x22, 0x38, 0x3c, 0xe2, 0x72, 0xed, 0xf5, 0xcc, 0xe7, 0xe6, -0xf8, 0x6b, 0x22, 0x46, 0x18, 0x51, 0x55, 0x00, 0x25, 0x5b, 0x3f, 0x42, 0x90, 0xdb, 0xb5, 0x31, -0x94, 0x6b, 0x46, 0x9f, 0x8b, 0x9f, 0x84, 0x4c, 0x05, 0xd5, 0x59, 0x79, 0x0e, 0xcc, 0xb1, 0xed, -0x9c, 0xcb, 0x4b, 0x36, 0x35, 0xa0, 0x10, 0x07, 0x52, 0x4e, 0xf5, 0x59, 0x1f, 0x54, 0xbd, 0x8f, -0x7c, 0xaa, 0xa5, 0x6c, 0x6f, 0xe0, 0xbc, 0xb4, 0x8e, 0xc2, 0x2e, 0x8e, 0x70, 0x8c, 0x35, 0x48, -0xdb, 0xf0, 0x3d, 0x79, 0x07, 0xd9, 0x99, 0x15, 0xbc, 0xae, 0xef, 0x3d, 0x89, 0xec, 0x7d, 0x98, -0x09, 0x42, 0x0d, 0x6f, 0x49, 0x38, 0x9f, 0x95, 0x7f, 0x61, 0xac, 0xaa, 0xae, 0xea, 0x57, 0x5f, -0x1d, 0xfa, 0x2a, 0x52, 0x12, 0x6a, 0xd1, 0x3d, 0xee, 0x1c, 0x7f, 0x22, 0x6c, 0x8c, 0xe9, 0x90, -0x2e, 0x05, 0x95, 0x06, 0xb2, 0x9e, 0xe2, 0xbe, 0x81, 0xac, 0xa7, 0xa0, 0xaf, 0x4d, 0x86, 0x6f, -0x0c, 0x91, 0x3d, 0x4f, 0xb7, 0xc7, 0xe5, 0xe1, 0x76, 0xe0, 0xdc, 0xe0, 0x4f, 0x84, 0xe6, 0x20, -0x05, 0x39, 0xa3, 0x2a, 0xfa, 0x84, 0x8a, 0x75, 0x36, 0x27, 0x9e, 0xc4, 0x76, 0x85, 0xf2, 0x70, -0x1c, 0xa3, 0x1f, 0xd9, 0x71, 0x92, 0x3c, 0x6c, 0xa3, 0x64, 0x12, 0x6b, 0x56, 0x18, 0x55, 0xc9, -0xda, 0x8d, 0x7c, 0xad, 0x3b, 0x87, 0x6c, 0x8f, 0xc8, 0x3d, 0x3a, 0xab, 0xa4, 0xf3, 0xbd, 0x97, -0x18, 0x23, 0xee, 0x01, 0x67, 0x4d, 0x9d, 0xeb, 0x6e, 0x79, 0x3e, 0x54, 0x5c, 0xd7, 0x08, 0x15, -0xd2, 0x8b, 0xe8, 0x5a, 0x8c, 0xae, 0xc5, 0xe8, 0xba, 0xb2, 0xa4, 0x51, 0x1a, 0xc2, 0x78, 0x7a, -0x4a, 0x25, 0xf8, 0x63, 0x8f, 0x8e, 0xa0, 0x88, 0xfd, 0x7e, 0x45, 0x8a, 0xd7, 0xf5, 0x18, 0xbf, -0x00, 0x33, 0x70, 0xdc, 0x65, 0x23, 0xdf, 0xdc, 0x27, 0x5d, 0x19, 0xe8, 0xa5, 0x70, 0x18, 0x44, -0x41, 0x4f, 0xa3, 0x40, 0xb7, 0x56, 0x22, 0xb5, 0xc6, 0x7a, 0x7b, 0xde, 0x0b, 0xbc, 0x46, 0x73, -0xb9, 0xf9, 0x27, 0x6c, 0x9d, 0x01, 0x79, 0x49, 0xb2, 0xf0, 0xdc, 0xfe, 0x0c, 0x72, 0x20, 0xaf, -0x95, 0x90, 0x15, 0x2e, 0xa3, 0x56, 0xce, 0xb6, 0xc0, 0x05, 0x15, 0xf9, 0x11, 0xb2, 0xd5, 0x82, -0xdf, 0xfd, 0x81, 0x70, 0x89, 0x87, 0x60, 0x84, 0x72, 0xf3, 0x51, 0xdf, 0x7b, 0x0b, 0xca, 0xc8, -0x7e, 0x57, 0xc8, 0x82, 0x33, 0x02, 0xdb, 0x7c, 0xec, 0xaa, 0x6b, 0x24, 0x4b, 0x2c, 0x2e, 0x9e, -0x1f, 0x97, 0xb9, 0x2b, 0x71, 0x7e, 0x85, 0xb4, 0xdd, 0xb6, 0xc3, 0x8a, 0x3b, 0x87, 0x6c, 0x87, -0x00, 0xdb, 0xf7, 0x28, 0x38, 0x4e, 0xd4, 0xab, 0x72, 0x45, 0xd4, 0x8c, 0x58, 0x82, 0xbc, 0x4d, -0x7a, 0xfe, 0x92, 0x3d, 0xc2, 0x72, 0xaf, 0xb0, 0x08, 0xeb, 0xbe, 0x5b, 0x69, 0x8b, 0xde, 0x74, -0x9d, 0x07, 0x6b, 0xa4, 0xd9, 0x20, 0xcc, 0x22, 0xfc, 0xb6, 0x44, 0x57, 0x4c, 0x4f, 0x67, 0xf7, -0x38, 0x20, 0x6a, 0x9b, 0xee, 0xeb, 0xd0, 0x2c, 0xb9, 0x25, 0xe9, 0xa1, 0x1d, 0xfc, 0xeb, 0xc2, -0x26, 0xb6, 0x76, 0x69, 0xc0, 0x32, 0x64, 0x2e, 0x63, 0xc3, 0xa5, 0x75, 0x15, 0xf3, 0x97, 0x02, -0xfa, 0xbb, 0xaa, 0x4e, 0x81, 0xbf, 0xc0, 0x07, 0x41, 0xef, 0xd3, 0x10, 0xa8, 0x3e, 0x05, 0x81, -0x82, 0x7a, 0xfc, 0x46, 0x68, 0xb9, 0x9f, 0x06, 0xd3, 0x35, 0x83, 0x58, 0x9a, 0xd1, 0x5b, 0x08, -0xb3, 0xd0, 0xa5, 0x87, 0x2b, 0xd1, 0x9f, 0x6e, 0x7e, 0xc9, 0xc5, 0xb8, 0x15, 0x51, 0xb5, 0xc0, -0x03, 0x8b, 0x6f, 0xa2, 0x18, 0x39, 0xd7, 0xfb, 0x71, 0xc6, 0x5e, 0x71, 0xbd, 0x07, 0xac, 0x38, -0x8b, 0x27, 0xeb, 0x66, 0xd1, 0xac, 0x15, 0xb3, 0x1d, 0xd9, 0x23, 0x66, 0x69, 0x15, 0xc8, 0x8d, -0x9b, 0x05, 0x8d, 0x55, 0x57, 0xcd, 0xf3, 0x42, 0x9b, 0x36, 0x93, 0xf9, 0x75, 0xd6, 0x05, 0x9d, -0x3a, 0x49, 0x27, 0xc7, 0xc9, 0x2a, 0x0f, 0xd6, 0x4d, 0xb3, 0xaa, 0xa3, 0xdf, 0x39, 0x1c, 0x8e, -0xe3, 0xe8, 0x72, 0x88, 0x36, 0x0b, 0x18, 0x60, 0x9b, 0x9c, 0xdc, 0xa6, 0x5d, 0x53, 0xda, 0xb4, -0xb5, 0xa4, 0x92, 0xce, 0x31, 0xa7, 0xca, 0x66, 0x5b, 0xb1, 0xd8, 0xb2, 0xbc, 0xe8, 0x0c, 0xb2, -0x36, 0x46, 0xed, 0xd9, 0xab, 0x40, 0xae, 0x62, 0x64, 0x97, 0x13, 0x72, 0xb1, 0xc5, 0x39, 0x14, -0x8e, 0xef, 0xb9, 0xd8, 0x9a, 0x39, 0xd8, 0xf2, 0x39, 0xd8, 0xf2, 0x3c, 0x49, 0xaf, 0xdc, 0x19, -0xcd, 0xbb, 0x6c, 0x89, 0xff, 0xf9, 0xd7, 0x4b, 0x64, 0x28, 0x31, 0xbc, 0xa8, 0x9c, 0xd2, 0x19, -0x60, 0xc2, 0xbc, 0x73, 0xc8, 0xbd, 0x36, 0x1f, 0x72, 0xa3, 0xfa, 0x0c, 0x6e, 0xe4, 0xae, 0xe0, -0x70, 0xd4, 0x42, 0x76, 0x16, 0xd5, 0xdc, 0xb4, 0xfd, 0xa6, 0x94, 0x6b, 0xd8, 0x3d, 0x88, 0x73, -0x47, 0x36, 0xce, 0xcc, 0x94, 0xcf, 0x97, 0x71, 0x96, 0xa6, 0x6f, 0x64, 0x73, 0xa2, 0xdf, 0x44, -0x0e, 0xc3, 0xce, 0x5f, 0x7a, 0x70, 0x52, 0xe8, 0x6f, 0xb6, 0x80, 0x8b, 0xbf, 0xbf, 0x08, 0xa5, -0x29, 0x1c, 0xd2, 0x23, 0x0f, 0x53, 0xce, 0xbe, 0x16, 0x58, 0xe4, 0x0e, 0x20, 0x1d, 0xfe, 0x09, -0x78, 0xaa, 0x3e, 0x06, 0x5b, 0xe0, 0xb9, 0x89, 0x55, 0xd8, 0x22, 0xb6, 0xe1, 0x58, 0x5a, 0xa2, -0xc0, 0xc5, 0xdf, 0x6b, 0x76, 0x49, 0x09, 0x6f, 0x35, 0xdc, 0xbd, 0x7d, 0x9b, 0xc0, 0x5d, 0xd1, -0x3f, 0x92, 0x13, 0x4a, 0xd8, 0x4e, 0xb2, 0x4b, 0xd8, 0x22, 0x2c, 0x0d, 0x68, 0x70, 0x30, 0x0a, -0x4c, 0xd2, 0xac, 0xca, 0x97, 0x40, 0x49, 0x92, 0xf2, 0xb1, 0x95, 0x1a, 0x8d, 0xe7, 0x68, 0xd8, -0x84, 0x5f, 0xae, 0x40, 0xbf, 0x3b, 0x27, 0x48, 0x77, 0x5f, 0xe4, 0x10, 0x75, 0x70, 0xe7, 0x34, -0xa1, 0x3b, 0x0a, 0xe4, 0x26, 0x7a, 0x24, 0x72, 0x20, 0x5a, 0x81, 0x74, 0xe8, 0x6d, 0xf2, 0x95, -0x7a, 0xd5, 0x09, 0xb7, 0x13, 0x4c, 0xc4, 0x77, 0x96, 0x3a, 0xd5, 0x49, 0xdf, 0x58, 0x44, 0x5f, -0x93, 0xd0, 0xca, 0x5f, 0x95, 0xe2, 0xc3, 0xcd, 0x94, 0x17, 0x59, 0xdc, 0x8a, 0x5a, 0x53, 0x90, -0xab, 0x93, 0x3c, 0xf3, 0x06, 0x29, 0x9c, 0xad, 0x8a, 0xaa, 0xb3, 0x56, 0x80, 0x91, 0xde, 0x86, -0xfd, 0x60, 0xf6, 0x6e, 0x41, 0xce, 0xd5, 0xc2, 0xf4, 0x09, 0xf3, 0x45, 0xaa, 0x2a, 0x7b, 0x3d, -0xd5, 0xef, 0x43, 0x50, 0xd1, 0x1f, 0x6a, 0xf9, 0xe7, 0x03, 0xed, 0x17, 0x34, 0x7b, 0xef, 0x65, -0x29, 0x7b, 0xef, 0xce, 0x0c, 0x7b, 0xef, 0xf9, 0xe6, 0x4e, 0x28, 0x06, 0x39, 0x64, 0x63, 0x6b, -0x58, 0x63, 0x97, 0xb7, 0xfa, 0xee, 0x36, 0xd9, 0x05, 0x34, 0x4c, 0x75, 0x09, 0x1c, 0x1d, 0x0e, -0xef, 0x2a, 0x08, 0xb2, 0x7d, 0x2d, 0xa4, 0x8f, 0x75, 0x9e, 0x1b, 0x3d, 0x10, 0xb4, 0xb3, 0x2d, -0xb0, 0x5b, 0x2b, 0x1c, 0xbd, 0xe0, 0x72, 0x72, 0x5c, 0xe4, 0xb4, 0xf7, 0xa8, 0xa3, 0x6c, 0xc3, -0xf3, 0xb2, 0x9c, 0xb2, 0x93, 0x39, 0xe5, 0xef, 0x1c, 0x4c, 0x73, 0xca, 0x44, 0xa1, 0xaf, 0x43, -0x3e, 0x59, 0xd1, 0xaf, 0x18, 0x8e, 0xaa, 0x3b, 0x1f, 0x0f, 0x8d, 0xdf, 0x31, 0x1c, 0x9b, 0xd8, -0x3f, 0xe4, 0xfd, 0x27, 0xb2, 0x79, 0x45, 0xb6, 0x1c, 0x25, 0xaf, 0xaf, 0x73, 0xb6, 0xec, 0x9e, -0x4d, 0x3d, 0xf4, 0xbf, 0x2f, 0x90, 0x75, 0x1b, 0xb2, 0xd6, 0x94, 0x65, 0x93, 0x3c, 0x87, 0xf7, -0x5d, 0x77, 0x80, 0x4a, 0xad, 0xe6, 0x3c, 0x1e, 0x7b, 0xc5, 0xe5, 0x23, 0x29, 0xee, 0x11, 0x73, -0xb2, 0xef, 0x44, 0x9f, 0x5f, 0x35, 0x08, 0xb3, 0xc0, 0x78, 0xd5, 0xa0, 0xfa, 0x04, 0xcc, 0x9a, -0x47, 0xd4, 0x0c, 0x67, 0x5d, 0x7e, 0x4f, 0x82, 0x6d, 0xc1, 0x20, 0xc2, 0xc1, 0xea, 0xed, 0x84, -0xbc, 0x05, 0x34, 0xf6, 0xa5, 0x05, 0x5e, 0xb0, 0x2c, 0x18, 0x9c, 0x2d, 0x43, 0x2e, 0xa6, 0xca, -0xc6, 0x19, 0xeb, 0xa4, 0xce, 0x3b, 0xaf, 0x5e, 0xe7, 0xf7, 0xee, 0xd0, 0xd5, 0xa1, 0xbb, 0x0e, -0xdd, 0x5e, 0xd2, 0x42, 0xe9, 0x02, 0xf8, 0xd5, 0x88, 0x5f, 0x2d, 0x18, 0xd2, 0x8c, 0xee, 0x66, -0x74, 0x37, 0x62, 0x88, 0x51, 0xb7, 0x02, 0xbf, 0xee, 0xc2, 0xaf, 0x10, 0x86, 0xb4, 0xa1, 0xbb, -0x0d, 0xdd, 0x77, 0x61, 0x48, 0x96, 0x6e, 0x15, 0x7e, 0x45, 0xf0, 0x2b, 0x8e, 0x21, 0x51, 0x74, -0x47, 0xd1, 0x1d, 0xc1, 0x10, 0xbd, 0x6e, 0x00, 0x7d, 0xee, 0x97, 0x8c, 0xd9, 0xd4, 0x51, 0x6b, -0xa9, 0xbe, 0xba, 0xf5, 0x32, 0xb4, 0x0c, 0x49, 0x43, 0xc8, 0x0b, 0x1a, 0xe6, 0xf9, 0x74, 0xc3, -0xf8, 0xac, 0x15, 0xad, 0xc1, 0x74, 0xa3, 0x98, 0x0e, 0x7b, 0x5f, 0xb7, 0x09, 0xdd, 0x9b, 0xd0, -0x3d, 0x8a, 0x29, 0x0c, 0xba, 0x6d, 0xf8, 0xb5, 0x1d, 0xbf, 0xbe, 0x87, 0x21, 0xdf, 0x45, 0xf7, -0x77, 0xd1, 0xbd, 0x1d, 0x43, 0x74, 0xba, 0x1f, 0xe0, 0xd7, 0x53, 0xf8, 0xf5, 0x0c, 0x86, 0xec, -0x40, 0xf7, 0x0e, 0x74, 0x3f, 0x55, 0x7d, 0x52, 0x6f, 0x9d, 0x57, 0xaf, 0xcf, 0xf7, 0xee, 0xd0, -0xdb, 0xd0, 0x6d, 0x43, 0xb7, 0x15, 0x63, 0xe7, 0xe8, 0x76, 0xe2, 0x57, 0x27, 0x7e, 0x45, 0x31, -0x24, 0x82, 0x6e, 0xac, 0xb1, 0xbe, 0x53, 0x48, 0x07, 0x52, 0x55, 0xd5, 0x49, 0xdd, 0xf3, 0x87, -0xcf, 0x33, 0xa5, 0x9b, 0x22, 0x3b, 0x69, 0x63, 0xf5, 0x13, 0x1b, 0x70, 0x7b, 0x7e, 0x19, 0x4c, -0xb0, 0xac, 0xf0, 0x4a, 0xd5, 0x47, 0xfa, 0xc1, 0x62, 0x9f, 0x7e, 0xc4, 0xfb, 0x9c, 0x3e, 0x51, -0xfd, 0x91, 0x3e, 0x51, 0x5c, 0xaf, 0x1f, 0x44, 0xbf, 0x8d, 0xe8, 0xf7, 0x28, 0xfa, 0x3d, 0x8c, -0x7e, 0x0f, 0xa3, 0xdf, 0x46, 0xf4, 0xdb, 0x4e, 0x32, 0x43, 0x72, 0xcc, 0xeb, 0xf7, 0xd3, 0x97, -0x68, 0x31, 0xf7, 0x91, 0xbc, 0x80, 0xda, 0x28, 0x91, 0x6d, 0xdd, 0xff, 0xe3, 0xd3, 0x95, 0x62, -0x4b, 0xca, 0xc9, 0xdd, 0xd9, 0xac, 0x5b, 0x34, 0x8f, 0xe9, 0xb8, 0xae, 0xd2, 0xdb, 0xa9, 0xf3, -0xb8, 0x51, 0x52, 0x99, 0x6a, 0x2b, 0xcd, 0x2e, 0x6c, 0xa5, 0xc5, 0x78, 0xb4, 0x6d, 0xe7, 0xb9, -0x4f, 0x5d, 0x74, 0x82, 0x6c, 0x9e, 0x85, 0xcd, 0x22, 0xff, 0xa8, 0x6e, 0x9e, 0x47, 0x3f, 0xc9, -0xe1, 0xff, 0xc8, 0x96, 0x94, 0xa6, 0x85, 0xc7, 0xf4, 0xf3, 0xaa, 0xb4, 0xf0, 0xa7, 0xa7, 0x84, -0xcf, 0x15, 0xb5, 0x65, 0x2d, 0xa6, 0x5f, 0xf2, 0xf8, 0x3a, 0x61, 0x16, 0xe1, 0xe8, 0x21, 0x4f, -0xb1, 0x47, 0xdf, 0xde, 0x98, 0x61, 0xa5, 0xd8, 0xf0, 0x7a, 0x56, 0x76, 0xf5, 0xc9, 0x2c, 0xd3, -0xbc, 0xfa, 0xac, 0x5c, 0xef, 0x8e, 0x2c, 0xc4, 0xaa, 0xac, 0x1c, 0x74, 0x9b, 0xc8, 0xea, 0x96, -0x66, 0xa3, 0x6a, 0x87, 0xce, 0x4b, 0xb8, 0x76, 0x7d, 0x3d, 0xdb, 0x31, 0xf5, 0x5e, 0xb7, 0x14, -0x53, 0x2e, 0xd5, 0x69, 0x96, 0xf1, 0x8a, 0x51, 0x22, 0x2a, 0x46, 0x89, 0xa8, 0x18, 0x25, 0xa2, -0x62, 0x94, 0x88, 0x8a, 0x51, 0x22, 0x2a, 0x6e, 0xd0, 0x17, 0xe2, 0x98, 0xd8, 0xf3, 0xe9, 0x41, -0x2c, 0x6d, 0x40, 0x50, 0x28, 0xe4, 0x5b, 0xf4, 0x64, 0xf9, 0x69, 0xc5, 0x84, 0x46, 0x8b, 0xba, -0xc0, 0x5a, 0xf5, 0x11, 0x4a, 0x24, 0x34, 0x1e, 0x8c, 0x81, 0x7e, 0x41, 0xa3, 0x88, 0x07, 0x74, -0xd4, 0xdb, 0x03, 0x57, 0x23, 0x4e, 0x22, 0x15, 0x9e, 0x4f, 0x9c, 0x19, 0x71, 0x5e, 0xc4, 0xa7, -0xa1, 0xcc, 0x78, 0x17, 0xce, 0x7a, 0xa4, 0xff, 0x38, 0x2b, 0x6c, 0x9c, 0x09, 0xce, 0xcf, 0x6d, -0x92, 0xb7, 0x90, 0x74, 0x6c, 0x6f, 0xc4, 0x79, 0x05, 0xfb, 0x5b, 0x8c, 0xfc, 0x52, 0xd9, 0x0e, -0x8e, 0x59, 0x9a, 0x36, 0x45, 0x7f, 0x68, 0x18, 0xff, 0x25, 0x70, 0x54, 0x8e, 0x49, 0x6b, 0x46, -0x9b, 0xe5, 0x6a, 0xca, 0x23, 0x7a, 0xc5, 0xce, 0xe1, 0x0e, 0x0b, 0xce, 0x7b, 0xba, 0x77, 0x77, -0x30, 0xbf, 0x3a, 0x46, 0xf2, 0x7a, 0x4a, 0xa7, 0x69, 0x4e, 0xd6, 0xc7, 0x5e, 0xef, 0xa0, 0xfa, -0xcc, 0xba, 0xa4, 0x3e, 0x1f, 0xe8, 0xd6, 0xe2, 0x3c, 0xb3, 0x94, 0xeb, 0x43, 0x12, 0xf5, 0x1a, -0xee, 0x87, 0x5d, 0x28, 0xd3, 0xd1, 0x4c, 0xac, 0xde, 0xbc, 0x85, 0xad, 0xd7, 0x95, 0x56, 0x9d, -0x52, 0x2f, 0xb8, 0xfc, 0xc9, 0x76, 0x5e, 0xef, 0xd1, 0x7f, 0xe2, 0x06, 0x8a, 0xc3, 0xb1, 0xf7, -0x69, 0x34, 0x7e, 0x76, 0x8a, 0x5b, 0xb0, 0x4a, 0x90, 0xe4, 0x68, 0xa5, 0x32, 0x3b, 0xb6, 0x60, -0x09, 0x62, 0x1c, 0x4b, 0x86, 0x07, 0x11, 0xf7, 0x3a, 0x65, 0xe2, 0x44, 0xcf, 0x4a, 0x0c, 0x87, -0x8b, 0x2f, 0x89, 0x3b, 0x44, 0x98, 0x1f, 0x2d, 0xb3, 0xfb, 0x1c, 0x81, 0xc3, 0x63, 0x34, 0xef, -0x77, 0x67, 0x43, 0x95, 0x05, 0x14, 0x83, 0xbe, 0xea, 0x63, 0xf5, 0x1a, 0xd6, 0xd3, 0x5f, 0xe3, -0xc5, 0x99, 0xb2, 0x1e, 0x4c, 0x37, 0x56, 0x21, 0xdd, 0x38, 0x05, 0x12, 0xba, 0x2d, 0x38, 0x63, -0x4a, 0xa5, 0x83, 0xea, 0xdb, 0x87, 0xc7, 0x70, 0x6e, 0xb6, 0xa3, 0x8f, 0xf5, 0xd0, 0x46, 0xa4, -0xa5, 0x36, 0xfc, 0xca, 0xe7, 0xf6, 0x50, 0x0b, 0xbd, 0x53, 0x5b, 0x98, 0x2e, 0x2f, 0x05, 0x17, -0x03, 0x18, 0x91, 0xc2, 0x5b, 0xb1, 0x07, 0xf2, 0xbd, 0x3f, 0x02, 0x1b, 0xba, 0x6d, 0xe8, 0xb6, -0x72, 0xfa, 0x8f, 0x74, 0xa3, 0xb2, 0x7f, 0x4a, 0x6a, 0xb1, 0x56, 0x72, 0x0e, 0xd3, 0x57, 0x20, -0xb7, 0x4e, 0xe9, 0x8d, 0xac, 0x79, 0xa4, 0xb8, 0x8d, 0x5a, 0xdc, 0x86, 0x14, 0x2c, 0x5f, 0x9f, -0x06, 0xcb, 0xfb, 0xe7, 0xfb, 0xf5, 0x6c, 0x1d, 0xb0, 0xf4, 0xf7, 0x1a, 0xdc, 0xcc, 0xda, 0xdc, -0x18, 0xd1, 0x9f, 0x75, 0x0f, 0x8e, 0x90, 0x6a, 0x2f, 0xbf, 0xea, 0xb4, 0xfe, 0x02, 0xce, 0xca, -0x12, 0xce, 0xc4, 0xf6, 0x28, 0xe0, 0x5c, 0x9c, 0x8f, 0xf9, 0x79, 0xdc, 0x2e, 0xfd, 0x05, 0x4e, -0xf9, 0xe7, 0xa9, 0x29, 0x99, 0x47, 0x7c, 0x46, 0x7f, 0x21, 0x94, 0x1d, 0x35, 0xce, 0xf7, 0xe8, -0x2f, 0xa0, 0xf4, 0x8b, 0xe4, 0x30, 0x6c, 0x25, 0xda, 0xbf, 0xe0, 0x8a, 0xad, 0x2f, 0x97, 0x23, -0x95, 0xfa, 0xf6, 0xaf, 0xa9, 0x4e, 0x17, 0x3f, 0x41, 0xec, 0x05, 0x31, 0x1b, 0x22, 0xbc, 0x65, -0xea, 0x1b, 0x89, 0xa4, 0xfb, 0x23, 0x02, 0x3b, 0xf5, 0x56, 0xd9, 0x3b, 0x15, 0x3b, 0x6b, 0x18, -0x56, 0x6e, 0x53, 0x2d, 0xd2, 0x21, 0x79, 0xe3, 0x75, 0x9d, 0x58, 0x3b, 0x83, 0x1d, 0x7f, 0xed, -0x1b, 0xe6, 0xd5, 0xe3, 0xef, 0xdd, 0xc2, 0x9e, 0x2d, 0x54, 0x90, 0x2d, 0x55, 0xf7, 0x7c, 0x30, -0xb9, 0x67, 0x51, 0x0d, 0x17, 0x38, 0xc8, 0x06, 0x9e, 0x3b, 0xc7, 0x5d, 0x8f, 0xf3, 0x39, 0xd7, -0x11, 0x67, 0x51, 0xd7, 0x77, 0x0e, 0x06, 0x9e, 0xfb, 0xf4, 0x6d, 0xaa, 0x2d, 0xd5, 0x42, 0xdc, -0x75, 0x71, 0xeb, 0x62, 0xb2, 0x36, 0x59, 0xe2, 0x86, 0x72, 0x64, 0x19, 0xe8, 0x16, 0x14, 0x0f, -0xce, 0x76, 0x35, 0x38, 0x71, 0xde, 0x6a, 0x5f, 0xad, 0xb3, 0xba, 0x56, 0x33, 0xa7, 0xfa, 0x7c, -0x21, 0xec, 0x12, 0xf2, 0xf6, 0x2e, 0xb2, 0x84, 0x48, 0x92, 0x3d, 0x3c, 0x6d, 0x2e, 0xc4, 0x19, -0xe4, 0x4a, 0x74, 0x3d, 0x89, 0xf2, 0xb2, 0x6c, 0x29, 0x84, 0x6f, 0xb2, 0x7e, 0xce, 0x84, 0xf2, -0x70, 0x02, 0xa5, 0xe0, 0x11, 0xa5, 0xcc, 0xff, 0x40, 0x78, 0xae, 0x9c, 0x45, 0xf6, 0xe6, 0xcc, -0x43, 0x64, 0x79, 0x26, 0x44, 0x76, 0x6e, 0xdb, 0x4a, 0x9c, 0xe0, 0x77, 0x39, 0xa1, 0xdc, 0x6e, -0x1c, 0x20, 0x2b, 0x30, 0xfa, 0x6b, 0x3c, 0xf0, 0xcd, 0x82, 0x25, 0x90, 0x28, 0xa8, 0x83, 0x11, -0xff, 0x70, 0xb8, 0x04, 0x4b, 0x00, 0xf8, 0x66, 0xc8, 0x71, 0x4d, 0x0d, 0xdc, 0x1f, 0x05, 0x8b, -0xc1, 0xe9, 0xf9, 0xf7, 0xb1, 0xc2, 0x86, 0xff, 0x98, 0x80, 0x71, 0x87, 0x5f, 0xf2, 0x22, 0xe6, -0x8d, 0x4a, 0x37, 0x1e, 0x00, 0xc2, 0x86, 0x8b, 0x5b, 0x14, 0xb3, 0xad, 0x10, 0xee, 0xb7, 0x9b, -0xc8, 0x4e, 0x26, 0x8c, 0xfa, 0x1f, 0x08, 0x59, 0x11, 0x0e, 0x59, 0xd4, 0xe2, 0x9d, 0x51, 0xb2, -0xb6, 0x18, 0x32, 0x28, 0x0d, 0x8f, 0xbd, 0xe2, 0x37, 0xdc, 0xc1, 0x36, 0xe4, 0xf7, 0x27, 0x18, -0x87, 0x46, 0x31, 0x8e, 0x9e, 0x64, 0x3a, 0x50, 0xdd, 0x06, 0x77, 0xb6, 0x7b, 0xa6, 0x48, 0xf1, -0x0b, 0x23, 0x87, 0x92, 0x7d, 0x39, 0x9b, 0x7f, 0x5d, 0x24, 0x87, 0x4b, 0x28, 0x8c, 0xea, 0xe8, -0xfd, 0xe9, 0x59, 0x6e, 0x3f, 0x71, 0x8b, 0xf7, 0xe3, 0xf3, 0x4d, 0xd2, 0xcf, 0x10, 0x3f, 0x83, -0x69, 0x73, 0x68, 0x26, 0x47, 0x9a, 0x4c, 0x76, 0x60, 0x67, 0x06, 0xf6, 0x4c, 0x3e, 0x47, 0xe9, -0x4b, 0xae, 0x15, 0xb4, 0x88, 0xf8, 0x1d, 0x19, 0xf9, 0x14, 0xb6, 0xb9, 0xa7, 0x6f, 0x1c, 0x95, -0x2c, 0x61, 0xa3, 0x31, 0x01, 0xd7, 0xe2, 0xdc, 0x71, 0x16, 0x79, 0x35, 0x71, 0x77, 0x0f, 0xdf, -0x54, 0x44, 0x76, 0x83, 0x11, 0xf2, 0xf9, 0xd5, 0x1f, 0x83, 0xe4, 0xea, 0x05, 0x0b, 0xf2, 0x7e, -0xaf, 0x08, 0x5c, 0x27, 0x3e, 0x87, 0xf2, 0x51, 0xb2, 0x65, 0x4f, 0x30, 0x91, 0xfb, 0x62, 0xae, -0x2d, 0xf4, 0x09, 0xd9, 0xe7, 0xc5, 0x7c, 0x8d, 0x76, 0x5a, 0x45, 0x50, 0xf9, 0x86, 0xbf, 0xf1, -0x05, 0x3e, 0xf3, 0x30, 0xf1, 0x13, 0x61, 0xd6, 0x84, 0x2f, 0xe8, 0xf6, 0x0f, 0x45, 0x58, 0xeb, -0xbb, 0xe0, 0xeb, 0x64, 0x91, 0x97, 0xec, 0xca, 0x62, 0xef, 0x5a, 0xc9, 0x5e, 0xad, 0xa4, 0xd7, -0x27, 0xbe, 0x09, 0x09, 0x10, 0x9c, 0xa5, 0xe3, 0x4e, 0xd2, 0x75, 0xf8, 0xbd, 0x91, 0x10, 0x7f, -0xed, 0xa3, 0x50, 0xec, 0x00, 0x95, 0x6c, 0xf5, 0xa9, 0x1e, 0xb2, 0xc7, 0x5b, 0x92, 0x70, 0x67, -0xd5, 0x5e, 0x50, 0x07, 0x02, 0x8f, 0x3a, 0x98, 0xab, 0xbb, 0xfe, 0x69, 0x49, 0x4f, 0x37, 0x6d, -0x90, 0xe5, 0x66, 0xb2, 0xe4, 0x9c, 0x8c, 0x93, 0x0c, 0x77, 0xec, 0xf3, 0x7a, 0x7d, 0xde, 0xb7, -0xfd, 0xd1, 0x6f, 0x92, 0xe5, 0xe7, 0x74, 0x28, 0x41, 0x46, 0x29, 0x14, 0xa5, 0x03, 0x50, 0x0e, -0xa7, 0x7d, 0x34, 0x46, 0x9c, 0x26, 0x77, 0xa9, 0x11, 0xc8, 0xc6, 0xe2, 0xe4, 0x21, 0x2d, 0xee, -0x1e, 0xd5, 0x84, 0x33, 0x8c, 0xc7, 0x6b, 0x21, 0xbb, 0xb6, 0x44, 0x9f, 0xdd, 0x7a, 0x3b, 0x41, -0x89, 0xa0, 0xac, 0x17, 0x52, 0xca, 0x6b, 0xb9, 0x8d, 0x9b, 0x49, 0xaa, 0x5f, 0x90, 0x40, 0x6e, -0xcc, 0x20, 0x17, 0xf2, 0x2d, 0x32, 0x26, 0xb2, 0xc5, 0xcb, 0xbd, 0x21, 0x71, 0x7e, 0x3f, 0xa0, -0x32, 0x9b, 0x12, 0xf6, 0x6b, 0x69, 0xa4, 0x20, 0xd5, 0xd8, 0x45, 0x32, 0x3e, 0xc2, 0x20, 0x8a, -0xb9, 0xc5, 0xdd, 0x59, 0x18, 0x2f, 0xc2, 0xb1, 0x07, 0xf8, 0xae, 0x98, 0xb8, 0x1d, 0x9a, 0x86, -0x5d, 0xab, 0xf4, 0x64, 0x0f, 0xd2, 0xba, 0x57, 0x60, 0xfc, 0xdb, 0xee, 0xc1, 0x75, 0x6f, 0x23, -0x5c, 0x6d, 0x48, 0x05, 0x1a, 0x90, 0x26, 0xe4, 0xf3, 0xb7, 0x01, 0x79, 0x62, 0xe5, 0xd0, 0x66, -0xc1, 0xdf, 0xe3, 0x37, 0xf2, 0xf7, 0x18, 0xde, 0x48, 0x77, 0xb4, 0xf0, 0xf7, 0x0c, 0x28, 0xc5, -0xef, 0x16, 0xc1, 0xd9, 0xe3, 0xf7, 0x4c, 0x58, 0x84, 0xdf, 0xcd, 0xf8, 0x5d, 0xc9, 0xdf, 0x46, -0xf0, 0x44, 0x57, 0x70, 0xfa, 0x1a, 0xa4, 0x31, 0x3e, 0xa9, 0xba, 0x9a, 0xf9, 0x7d, 0xf5, 0x75, -0xe2, 0xfd, 0xe0, 0x37, 0xfe, 0x9f, 0x40, 0x63, 0xc8, 0x48, 0x12, 0xc3, 0x82, 0xed, 0xd0, 0x88, -0x18, 0xd0, 0x22, 0x67, 0x09, 0xfb, 0x89, 0x58, 0xd7, 0x16, 0xaa, 0x35, 0x3e, 0x2b, 0xd8, 0xfe, -0x25, 0xc2, 0x7b, 0xfe, 0xdd, 0x54, 0xfb, 0x8b, 0x2f, 0x50, 0xed, 0x31, 0x6e, 0x82, 0x2c, 0xe2, -0x87, 0x69, 0x3c, 0xfc, 0x04, 0x9a, 0x53, 0xb9, 0x34, 0x6f, 0x47, 0xb8, 0x72, 0xfa, 0x74, 0xba, -0x4d, 0x4a, 0x33, 0xb6, 0xf6, 0x2c, 0xb7, 0xb4, 0x85, 0x2c, 0xb1, 0x3a, 0x20, 0xdc, 0x98, 0xb2, -0xc6, 0xaa, 0x27, 0x4b, 0xca, 0xb3, 0x76, 0x04, 0xb6, 0x3b, 0xc1, 0x9d, 0xa5, 0xf9, 0xe9, 0x02, -0xdb, 0x0b, 0xd3, 0x5f, 0xe2, 0x66, 0x1b, 0xa9, 0x84, 0x6c, 0xca, 0x1a, 0x92, 0xb9, 0x2e, 0xf8, -0x01, 0xd7, 0xc6, 0x49, 0xb5, 0x21, 0x5a, 0x43, 0x76, 0x6e, 0x6b, 0x68, 0x1d, 0xb3, 0x81, 0x35, -0x2c, 0x12, 0x42, 0x3f, 0x1f, 0xa1, 0x2f, 0x91, 0xc5, 0x5b, 0xb2, 0xed, 0x3c, 0xc7, 0x0d, 0x45, -0xd4, 0xa7, 0x5c, 0xa3, 0x39, 0x7c, 0xe7, 0xd2, 0x9e, 0x49, 0x0b, 0xd5, 0x55, 0xab, 0x65, 0x11, -0x5b, 0xdf, 0x3c, 0x46, 0xad, 0x6a, 0x42, 0xb9, 0x82, 0xb0, 0xe3, 0x62, 0x19, 0xe1, 0x46, 0x23, -0xdd, 0xb8, 0x94, 0x6d, 0x9e, 0x41, 0x76, 0xda, 0x31, 0x07, 0xe6, 0x54, 0xe6, 0x2f, 0x26, 0x9e, -0x7f, 0x32, 0x8f, 0xed, 0xe2, 0xae, 0x43, 0xca, 0xb3, 0x8e, 0x29, 0xcf, 0x5c, 0x9c, 0x05, 0x16, -0xbb, 0xd9, 0xb6, 0xa7, 0x96, 0xeb, 0x52, 0xce, 0x75, 0xb8, 0x89, 0xa0, 0x65, 0x6b, 0x78, 0xcb, -0x20, 0xd6, 0x1f, 0x6f, 0xe7, 0x79, 0xa5, 0xcc, 0xee, 0xa1, 0xfb, 0x38, 0x3c, 0xaf, 0xab, 0xe7, -0x8a, 0xba, 0xc1, 0xa0, 0x8e, 0xd3, 0x4d, 0x37, 0xd8, 0x33, 0x75, 0x8e, 0x7a, 0xd2, 0x5e, 0x20, -0x6d, 0x37, 0x2d, 0x79, 0x5f, 0xdd, 0x8d, 0x32, 0x69, 0xa7, 0xa2, 0x97, 0x3c, 0x48, 0x07, 0x8c, -0x62, 0xf6, 0xdd, 0x57, 0xea, 0xce, 0xf1, 0x75, 0xab, 0xe7, 0x04, 0x67, 0x5f, 0xfb, 0xc7, 0x1d, -0xf0, 0xd8, 0x98, 0xdb, 0x84, 0xd0, 0x62, 0x9d, 0xc4, 0x2b, 0x8b, 0xa8, 0x0d, 0xcc, 0xc3, 0x7c, -0xd8, 0x00, 0xea, 0x49, 0xd2, 0xad, 0x89, 0x32, 0x31, 0x07, 0xbd, 0x1d, 0xb8, 0xcc, 0xb7, 0xa6, -0x95, 0x59, 0xb9, 0x73, 0x07, 0xe4, 0xb7, 0x2d, 0x14, 0xf9, 0x52, 0x4e, 0x42, 0x96, 0x13, 0x92, -0x82, 0x56, 0x9b, 0x39, 0x18, 0x2f, 0xef, 0xc4, 0x46, 0xc9, 0xa3, 0x18, 0xa5, 0x89, 0xb1, 0x37, -0xff, 0xe3, 0xd9, 0xa6, 0x61, 0xff, 0x70, 0xe8, 0x1c, 0x95, 0x64, 0x2f, 0x56, 0x4f, 0xbb, 0xba, -0xd5, 0x33, 0xa2, 0xac, 0xaf, 0x6d, 0xa6, 0x92, 0x10, 0xd7, 0x70, 0xbe, 0xfc, 0xf4, 0x34, 0xa6, -0xb2, 0x44, 0xf2, 0x24, 0xb2, 0xc1, 0x9b, 0x2f, 0xb1, 0xbd, 0x73, 0x85, 0xec, 0x21, 0x1b, 0x8d, -0x63, 0x70, 0xad, 0x1d, 0x29, 0x18, 0xdf, 0x1b, 0x44, 0xf5, 0x3b, 0xe1, 0x7b, 0x6f, 0x31, 0x4a, -0xd7, 0x76, 0x1d, 0xd7, 0xf0, 0xe4, 0xb4, 0x1a, 0x02, 0x3c, 0xac, 0xd5, 0x23, 0x7b, 0x09, 0x43, -0xc4, 0xe1, 0x29, 0xea, 0xd1, 0x77, 0xaa, 0x27, 0x8a, 0x96, 0xaa, 0x27, 0x8b, 0xbc, 0xe2, 0x8e, -0x91, 0xb5, 0xe7, 0xde, 0xf8, 0x96, 0x13, 0x47, 0xeb, 0xbf, 0xbc, 0x34, 0x78, 0xe2, 0xf8, 0xb7, -0x68, 0x67, 0xc1, 0xbf, 0xc8, 0x58, 0x97, 0x19, 0xd8, 0x6f, 0xb3, 0xa5, 0x9a, 0xc0, 0x16, 0xb6, -0xa9, 0x6a, 0x09, 0xe5, 0xd0, 0xed, 0x1c, 0x64, 0x7d, 0x9b, 0x74, 0x5e, 0xe1, 0x37, 0x35, 0x68, -0xea, 0x19, 0x86, 0x59, 0x02, 0x86, 0xcc, 0xf1, 0xda, 0x42, 0x73, 0xb6, 0xbe, 0x8c, 0xf3, 0xe4, -0x1b, 0x92, 0xc7, 0xec, 0x84, 0x2b, 0xc0, 0x18, 0x32, 0xc5, 0xc2, 0xf3, 0xaa, 0x60, 0x9b, 0xa2, -0x8f, 0x03, 0x62, 0xdc, 0x87, 0x2b, 0x06, 0xd5, 0xb1, 0x4c, 0xf8, 0x72, 0xcd, 0xff, 0x90, 0x59, -0x73, 0x2d, 0x6f, 0x27, 0x8e, 0x58, 0x0d, 0xa6, 0xfb, 0x0e, 0x11, 0x4c, 0x93, 0xd0, 0x42, 0x8a, -0x59, 0x86, 0x14, 0xd9, 0x86, 0xb8, 0x9a, 0x8f, 0x38, 0x2b, 0x49, 0x45, 0x90, 0x4b, 0xb3, 0x40, -0xa4, 0xdd, 0x0e, 0xc1, 0x61, 0x92, 0x36, 0xf7, 0x0f, 0x61, 0xdb, 0xd7, 0xcb, 0x7a, 0xbe, 0x8d, -0x28, 0x1b, 0x67, 0x79, 0x8b, 0xa2, 0x7f, 0xec, 0x15, 0x59, 0x4f, 0xf7, 0xa1, 0xaa, 0x10, 0x36, -0xc4, 0x8c, 0x8a, 0x3e, 0x06, 0xaf, 0xbd, 0x48, 0x3e, 0x67, 0xf0, 0x0f, 0x7d, 0x0c, 0x69, 0x9f, -0x83, 0xf8, 0x87, 0x3e, 0xfa, 0xb4, 0xcf, 0xd3, 0xf8, 0x77, 0xc7, 0x8b, 0xbe, 0xa1, 0x6d, 0x2f, -0x2a, 0xe6, 0xb8, 0x4e, 0x36, 0xfd, 0xd7, 0xd3, 0xb2, 0x7e, 0x5f, 0x22, 0x24, 0x27, 0x86, 0xaf, -0xf7, 0x40, 0x6e, 0xdd, 0xf0, 0xbf, 0xfc, 0x18, 0xe6, 0xe2, 0x93, 0xc7, 0xf6, 0x64, 0x47, 0xd1, -0x35, 0x87, 0x5d, 0xc3, 0x8a, 0xa1, 0x7c, 0x50, 0x55, 0x25, 0x13, 0xce, 0x17, 0x66, 0x61, 0xbd, -0xda, 0x0e, 0x02, 0x3a, 0xd8, 0xc6, 0xe1, 0x52, 0x2f, 0xeb, 0xc4, 0xf6, 0xa8, 0x7c, 0xff, 0x82, -0xb0, 0x39, 0xcd, 0xbc, 0xad, 0x27, 0x09, 0xc1, 0x28, 0xdd, 0x0a, 0x9a, 0x13, 0x33, 0x8e, 0x0d, -0x85, 0x4d, 0x72, 0x27, 0xc8, 0xe5, 0xf3, 0xc1, 0x89, 0x79, 0x3a, 0x41, 0xe6, 0xf6, 0xde, 0x51, -0xa6, 0x0f, 0x56, 0xd5, 0x79, 0xf7, 0x79, 0xc3, 0xab, 0xe2, 0x50, 0xae, 0x73, 0xe8, 0xf5, 0xeb, -0x80, 0xda, 0x47, 0x2d, 0x36, 0x52, 0x8b, 0x85, 0x0f, 0xb6, 0x2f, 0xbb, 0x6c, 0x90, 0xec, 0xd2, -0x6f, 0x7d, 0xf9, 0xb5, 0x97, 0x85, 0x1f, 0xb6, 0x90, 0xfc, 0xf4, 0xc2, 0x8f, 0x56, 0xbc, 0xb1, -0x85, 0xfb, 0x7c, 0xc3, 0xdb, 0xf6, 0x29, 0xa6, 0x98, 0xce, 0x61, 0x7a, 0xef, 0x47, 0xfb, 0xab, -0x42, 0x24, 0xef, 0x9a, 0x24, 0x2c, 0x77, 0x5d, 0x27, 0x96, 0x6b, 0xc2, 0x5f, 0x39, 0xdd, 0x22, -0xc1, 0x43, 0x8b, 0xf1, 0xd1, 0x32, 0x2c, 0xe9, 0x49, 0xcf, 0x43, 0x3a, 0x51, 0xc9, 0xd3, 0x92, -0x90, 0xf6, 0x31, 0x86, 0x6b, 0x73, 0xad, 0x18, 0xbb, 0xd8, 0x76, 0xbe, 0x63, 0xc7, 0x73, 0x31, -0xb3, 0xaf, 0x53, 0xd0, 0xa0, 0x1e, 0x07, 0x96, 0x72, 0xc6, 0x7f, 0x63, 0xe3, 0xd5, 0xc1, 0x0f, -0x3d, 0x66, 0x6d, 0x24, 0xa6, 0xf0, 0xa4, 0x2a, 0xe7, 0x52, 0x3c, 0x41, 0xfc, 0x33, 0xa6, 0x53, -0xa5, 0x46, 0xd4, 0xed, 0xea, 0x19, 0xae, 0x1b, 0x8f, 0x8c, 0xaa, 0x82, 0xa9, 0xe9, 0xdc, 0x7c, -0x9f, 0xcc, 0x01, 0x67, 0xe3, 0x66, 0xa3, 0x1e, 0x2c, 0xe1, 0x39, 0xc9, 0x9c, 0x8a, 0x3c, 0x98, -0x1a, 0x43, 0x0e, 0xf6, 0x50, 0x8f, 0x48, 0xc5, 0xea, 0x19, 0x3b, 0xad, 0x80, 0x74, 0xab, 0xa7, -0x05, 0xde, 0x11, 0x5f, 0xeb, 0x60, 0xa9, 0x03, 0x79, 0xac, 0xd9, 0x60, 0x0c, 0xd7, 0x20, 0x77, -0x35, 0xcb, 0x97, 0x88, 0x49, 0x87, 0x86, 0xf8, 0x2e, 0x86, 0x33, 0x92, 0x87, 0x24, 0xd5, 0xaa, -0x4f, 0x46, 0x81, 0xe4, 0x53, 0xfb, 0x86, 0x02, 0xe6, 0x0b, 0x69, 0x6d, 0x4f, 0xde, 0x38, 0xcf, -0x8f, 0xbc, 0xfa, 0x20, 0xa5, 0x83, 0x1e, 0x90, 0x74, 0xf6, 0x1b, 0x26, 0x12, 0x06, 0xb2, 0xb9, -0x2f, 0xb8, 0x1b, 0xe2, 0xfc, 0xa8, 0xde, 0xb4, 0x1e, 0x8f, 0xfc, 0x7e, 0xe0, 0x86, 0x09, 0xa0, -0xd0, 0xef, 0x6a, 0xef, 0x27, 0x4a, 0x4b, 0x74, 0x76, 0xe4, 0xe3, 0x66, 0x84, 0x57, 0xe9, 0x3d, -0xea, 0x5b, 0xb7, 0x78, 0x74, 0xf6, 0xb8, 0x41, 0x09, 0xd2, 0x2c, 0x81, 0xa9, 0x5f, 0xb1, 0xe8, -0x89, 0x8f, 0x7a, 0x7f, 0x94, 0x25, 0xf9, 0xe7, 0xab, 0xce, 0x1a, 0xc5, 0xfa, 0xfa, 0xa4, 0x83, -0x2c, 0x4c, 0x17, 0x7e, 0x81, 0x35, 0x6a, 0x5a, 0xdc, 0xfd, 0x34, 0x5e, 0xe4, 0xd5, 0x90, 0xe3, -0xf2, 0xd3, 0xfd, 0x85, 0x49, 0x9d, 0x45, 0xe1, 0xdd, 0x98, 0xdf, 0xce, 0x26, 0xbd, 0x5f, 0x1f, -0x79, 0x3a, 0x19, 0x53, 0xab, 0xe1, 0x77, 0x59, 0x32, 0xe0, 0x31, 0x2b, 0xcd, 0x32, 0xce, 0x47, -0x16, 0x61, 0x6e, 0x28, 0xc7, 0x3c, 0x1f, 0xe7, 0x52, 0x23, 0x8d, 0x0a, 0xdf, 0x8b, 0x63, 0x43, -0x42, 0x6e, 0x28, 0xd5, 0x93, 0x86, 0x9e, 0x38, 0x66, 0x84, 0x31, 0x53, 0x85, 0xc3, 0xcf, 0xb0, -0x6d, 0xed, 0x5c, 0xba, 0x11, 0x46, 0xa5, 0xbb, 0x62, 0xd8, 0xf7, 0xd5, 0x15, 0x8d, 0x9b, 0x85, -0xf6, 0x5d, 0xb3, 0xb4, 0x9e, 0xdc, 0x03, 0x91, 0x93, 0xc4, 0x7c, 0xa3, 0x93, 0xb9, 0xd9, 0x4e, -0xe4, 0xa8, 0x19, 0xd7, 0xc3, 0x77, 0x51, 0xae, 0xfe, 0x75, 0x21, 0x07, 0x72, 0xaa, 0xf9, 0x4a, -0xb6, 0x77, 0x07, 0xca, 0x52, 0x1e, 0xc9, 0x12, 0xfa, 0x04, 0x69, 0x7d, 0x3e, 0xc9, 0x38, 0x24, -0xf1, 0x54, 0x91, 0xf4, 0x83, 0x9c, 0x80, 0x92, 0x9f, 0x2c, 0xe9, 0xf0, 0x33, 0xb2, 0x87, 0x65, -0x66, 0x2b, 0xca, 0x2f, 0x56, 0x2e, 0xd3, 0x20, 0x4a, 0x8e, 0x82, 0x62, 0xd6, 0x5c, 0x7a, 0x71, -0x33, 0x43, 0x8d, 0x59, 0x5b, 0xab, 0x07, 0xc7, 0xf4, 0x7a, 0x2c, 0xa6, 0x7a, 0x08, 0x1b, 0xdd, -0x98, 0xbb, 0x71, 0xf7, 0x0e, 0xb0, 0xe1, 0xc8, 0xa0, 0xf2, 0xcf, 0xc5, 0x31, 0x75, 0xdc, 0x80, -0xfe, 0x3e, 0xcd, 0xdf, 0x28, 0xfc, 0xd1, 0x37, 0x8b, 0xa9, 0xc0, 0x1a, 0x74, 0xe9, 0x78, 0xae, -0xcd, 0xd7, 0x68, 0xd7, 0xa5, 0xed, 0xac, 0x70, 0x68, 0xf9, 0xdb, 0x57, 0x63, 0x3e, 0x66, 0xff, -0xba, 0xf0, 0xdc, 0x17, 0x9e, 0xc6, 0xbc, 0x6c, 0x76, 0x8f, 0x94, 0x1b, 0x3a, 0x13, 0xd3, 0xf3, -0x1a, 0xc5, 0x6f, 0xa2, 0xe2, 0xbd, 0x4f, 0x39, 0x26, 0x6a, 0x2e, 0x99, 0x44, 0xcd, 0x1b, 0x34, -0x18, 0xa2, 0xdc, 0x52, 0x2f, 0xe0, 0xef, 0x5a, 0xa5, 0xf1, 0x49, 0x24, 0x87, 0x9f, 0x93, 0x53, -0x12, 0x2a, 0xeb, 0x9b, 0xad, 0x5a, 0x6a, 0x10, 0x52, 0x4c, 0x32, 0xdd, 0xf3, 0xbc, 0x0a, 0x2a, -0xe4, 0x1d, 0xf5, 0x5c, 0x5a, 0xaa, 0x9d, 0x1a, 0x5b, 0xf4, 0xb3, 0xdd, 0xe8, 0x00, 0x94, 0x09, -0xe6, 0xa4, 0x75, 0xbc, 0x08, 0xe3, 0x1c, 0xc9, 0x33, 0xcf, 0x0b, 0x39, 0x0b, 0xaa, 0x21, 0x57, -0xe8, 0x03, 0x3c, 0x29, 0x39, 0xdb, 0x11, 0x88, 0xca, 0x53, 0xf5, 0xc1, 0x61, 0x6f, 0x54, 0xc5, -0xb6, 0xbc, 0x60, 0x06, 0x55, 0x0d, 0x17, 0x22, 0xef, 0x9e, 0x73, 0x8d, 0x90, 0x37, 0x4f, 0x81, -0x95, 0xfa, 0x10, 0xfb, 0xd3, 0x86, 0x6e, 0x92, 0x58, 0xad, 0x28, 0x89, 0x5c, 0x59, 0x80, 0x52, -0x0f, 0xd2, 0x71, 0xb3, 0xec, 0x8f, 0xca, 0x3c, 0x62, 0x4a, 0x1e, 0x7b, 0x85, 0x29, 0x2b, 0xa4, -0x69, 0xcc, 0xa2, 0x0a, 0x07, 0x38, 0x02, 0x3c, 0xe2, 0x4b, 0x32, 0x47, 0xbc, 0x54, 0xa2, 0xbf, -0xd0, 0x94, 0x10, 0x73, 0x61, 0xc8, 0x58, 0x3a, 0x08, 0xf6, 0xc3, 0x2f, 0x2a, 0xd9, 0xa4, 0x55, -0x82, 0x4d, 0x76, 0xe3, 0xd1, 0x44, 0x5d, 0x62, 0x7f, 0xc2, 0x3d, 0x9b, 0x69, 0x50, 0x96, 0xa0, -0x41, 0xfb, 0x2a, 0x9d, 0x1e, 0xed, 0xce, 0xc3, 0x06, 0x67, 0x16, 0xca, 0x24, 0x16, 0x5a, 0x0b, -0x88, 0x7a, 0xb1, 0x5d, 0x56, 0xa9, 0x81, 0xcb, 0xaf, 0xb3, 0x7b, 0x10, 0x96, 0x46, 0xba, 0xf3, -0x19, 0xeb, 0x69, 0xb0, 0x8f, 0x16, 0x54, 0x83, 0xb9, 0xc0, 0x8b, 0x69, 0x46, 0xc2, 0x26, 0x6a, -0x05, 0xcb, 0x29, 0x47, 0xe6, 0xfb, 0xc1, 0x24, 0xf9, 0x65, 0x91, 0xc6, 0x24, 0x99, 0x71, 0x06, -0xcc, 0x57, 0x8f, 0x25, 0xe9, 0x1a, 0xad, 0x8f, 0xd8, 0x7d, 0xf6, 0x59, 0x0e, 0xe6, 0x31, 0xaa, -0x6e, 0x9e, 0x36, 0x83, 0xaf, 0x42, 0x18, 0x87, 0xfe, 0xf9, 0x24, 0x58, 0x3b, 0x72, 0xe4, 0x59, -0x47, 0x12, 0x28, 0x99, 0xd8, 0x82, 0x89, 0x9d, 0x43, 0xed, 0x95, 0xc4, 0x29, 0x55, 0xd5, 0x2c, -0x61, 0x2b, 0xf7, 0x81, 0xad, 0x7c, 0x27, 0x26, 0x5b, 0xa4, 0xaf, 0x6a, 0xc5, 0x2f, 0x6d, 0x2d, -0x9a, 0xbf, 0x9f, 0x20, 0x1d, 0x3b, 0x59, 0x15, 0xd5, 0xb4, 0xeb, 0x92, 0x92, 0xa7, 0x51, 0xdb, -0x2c, 0xda, 0x91, 0x41, 0x6d, 0x1d, 0x3b, 0x4e, 0xb3, 0x2b, 0x72, 0x3e, 0x9b, 0xd4, 0xe3, 0x54, -0x2f, 0x77, 0x0e, 0xce, 0x3b, 0x6e, 0x98, 0x8d, 0xd2, 0x8e, 0x19, 0x5b, 0x30, 0x21, 0x74, 0xc9, -0x38, 0x7f, 0x18, 0xfc, 0xba, 0x70, 0x9e, 0x64, 0xcc, 0xb5, 0x99, 0x75, 0x20, 0xa1, 0x9c, 0xe4, -0x09, 0x8e, 0x4a, 0x46, 0xb3, 0x05, 0xa4, 0xf0, 0x27, 0x2c, 0x73, 0xd1, 0xcd, 0x24, 0x3c, 0xa6, -0x26, 0xf5, 0x31, 0x15, 0xb9, 0x84, 0x73, 0x62, 0x06, 0x40, 0xde, 0x72, 0x91, 0xf3, 0x3e, 0x50, -0xf3, 0xc7, 0x1d, 0xf4, 0x3b, 0x81, 0x12, 0xaf, 0xf4, 0xc8, 0x01, 0x6f, 0xc2, 0x3b, 0x64, 0xfb, -0xa2, 0x6f, 0xa4, 0xbc, 0x86, 0x56, 0x45, 0xe7, 0x94, 0xef, 0xc8, 0xb2, 0xcd, 0x10, 0x5f, 0xc6, -0x1b, 0xc0, 0xb0, 0x43, 0x17, 0x2e, 0xb7, 0xcd, 0xc8, 0x36, 0xa8, 0x87, 0xcc, 0x06, 0x98, 0xd5, -0xab, 0xbf, 0xdb, 0x50, 0xa8, 0x8b, 0xe7, 0x9f, 0x78, 0xd6, 0x0e, 0xef, 0x6f, 0x1c, 0x79, 0xc0, -0xa1, 0x7b, 0xff, 0xa1, 0x5c, 0x03, 0x51, 0x1e, 0x49, 0xf7, 0xf5, 0xb1, 0x23, 0xeb, 0x0e, 0x0f, -0x07, 0x47, 0x07, 0x2c, 0xbb, 0x47, 0x43, 0xcf, 0x35, 0xbc, 0x95, 0x5f, 0xc9, 0xa3, 0x6c, 0x11, -0x97, 0x35, 0x6e, 0xe7, 0x12, 0xb1, 0xf6, 0xb6, 0x18, 0x44, 0xc1, 0x6a, 0xf3, 0x0d, 0x97, 0x79, -0x5f, 0x7d, 0xf9, 0xd5, 0x97, 0xf3, 0x6e, 0x78, 0x3c, 0xcb, 0x9a, 0x25, 0xbe, 0x8c, 0x65, 0x60, -0x78, 0x5c, 0x17, 0x96, 0xac, 0x59, 0xd9, 0x7a, 0x2c, 0x4f, 0xcf, 0xe5, 0xe9, 0xdf, 0x1f, 0xe5, -0xd0, 0x31, 0x69, 0x56, 0x70, 0x28, 0x6e, 0xdc, 0x35, 0x14, 0xda, 0x87, 0x79, 0x8b, 0x19, 0xba, -0x74, 0x5a, 0xde, 0xd6, 0x18, 0xca, 0x4c, 0x7f, 0x4b, 0xde, 0x0b, 0xe1, 0xfd, 0xa5, 0x44, 0xb1, -0x0f, 0x55, 0x63, 0xde, 0x06, 0x91, 0xb7, 0xf9, 0xb3, 0xf3, 0xfe, 0xcb, 0xf5, 0x9e, 0x33, 0xad, -0xde, 0xc6, 0x43, 0x7a, 0xcc, 0x55, 0x8f, 0xb9, 0x1e, 0x10, 0xb9, 0xa2, 0x74, 0x95, 0x60, 0x7d, -0x42, 0xc0, 0xd5, 0xc3, 0x74, 0x9d, 0xc6, 0x2a, 0x64, 0x1f, 0x61, 0xdd, 0x8f, 0xd1, 0x5b, 0x53, -0xcb, 0x58, 0x44, 0x3b, 0x02, 0xef, 0x7f, 0x9d, 0xd6, 0x4e, 0xef, 0x7f, 0x72, 0xe9, 0xc7, 0xe0, -0xb2, 0x93, 0x6b, 0x17, 0xdd, 0xd1, 0x72, 0xf3, 0x16, 0x4b, 0x91, 0xce, 0x21, 0xee, 0x37, 0x41, -0xd7, 0xf5, 0xbe, 0x44, 0x99, 0x47, 0x68, 0x33, 0xaa, 0x8e, 0xb0, 0xec, 0x68, 0x1e, 0x04, 0xb2, -0xf1, 0x8e, 0xfc, 0x62, 0x6d, 0x60, 0xcb, 0x5c, 0x68, 0xd9, 0x6c, 0x06, 0x30, 0x85, 0xb2, 0xfd, -0x35, 0xa1, 0xa0, 0xb2, 0x02, 0xdd, 0xb3, 0xc2, 0x7e, 0x33, 0xdd, 0x4c, 0x13, 0x30, 0xd3, 0xfd, -0xe4, 0x85, 0xfe, 0xf5, 0xe1, 0x23, 0x38, 0xda, 0x06, 0x70, 0x4e, 0xac, 0x0e, 0x3c, 0xc2, 0x2e, -0x49, 0xaa, 0x0e, 0x6c, 0x49, 0xfb, 0x35, 0xad, 0x67, 0x89, 0xd4, 0xea, 0x9e, 0x8d, 0x98, 0x38, -0x13, 0x59, 0x3c, 0x0c, 0xbd, 0xf6, 0xc1, 0xce, 0xf2, 0xe0, 0xfa, 0xc6, 0xcd, 0xd1, 0xfb, 0x77, -0xae, 0x8f, 0x3c, 0xea, 0xad, 0x51, 0xf4, 0x03, 0x3a, 0xef, 0x4d, 0x9d, 0x2e, 0x4e, 0x65, 0xe2, -0xf4, 0x57, 0xc8, 0xde, 0xc0, 0x23, 0x2e, 0xf0, 0xba, 0xa1, 0x82, 0xf6, 0x71, 0x56, 0xbd, 0xe9, -0xbe, 0x42, 0xbb, 0x11, 0x36, 0x11, 0xe2, 0xdb, 0x70, 0xab, 0x7e, 0x27, 0x78, 0x58, 0x5a, 0x37, -0x14, 0x5a, 0x04, 0xa5, 0x90, 0xfd, 0x4f, 0x51, 0x4c, 0xf6, 0x9f, 0xcb, 0xdf, 0x1f, 0xa6, 0xe2, -0xe5, 0x90, 0x0e, 0x51, 0x68, 0x1a, 0x14, 0x98, 0xe4, 0xdb, 0x5b, 0xab, 0x3e, 0x49, 0xc5, 0x16, -0x9a, 0x89, 0x41, 0xe5, 0x04, 0xfb, 0x9f, 0x9f, 0xe6, 0xbf, 0x46, 0x39, 0xc8, 0xfe, 0x13, 0xd3, -0xfc, 0x47, 0x95, 0x5d, 0xec, 0xaf, 0xa6, 0xfc, 0x2b, 0x25, 0xa4, 0x6e, 0xc8, 0xf1, 0x2e, 0x14, -0x1c, 0x1f, 0x72, 0x42, 0x4e, 0x94, 0x8a, 0x9c, 0x28, 0x15, 0x39, 0x21, 0x17, 0x7d, 0x66, 0x09, -0x98, 0xd3, 0x6a, 0x8e, 0xb0, 0xfd, 0xef, 0xd5, 0x33, 0xe4, 0xed, 0x58, 0xa7, 0x76, 0xfe, 0x1e, -0x4e, 0xe5, 0xc5, 0xf2, 0x9a, 0xf7, 0x01, 0x05, 0x0c, 0x27, 0xd9, 0xb5, 0x23, 0x1d, 0x22, 0x38, -0x0d, 0x05, 0xd4, 0x85, 0x1c, 0xf2, 0xe3, 0x54, 0x88, 0x8f, 0xbf, 0x9f, 0x0b, 0x3c, 0xea, 0x5a, -0xad, 0x5b, 0xdb, 0xb2, 0xd9, 0xbf, 0x5d, 0xe8, 0x65, 0xe4, 0x9c, 0x7d, 0x09, 0x57, 0x95, 0x22, -0xb9, 0x4b, 0xb0, 0x5c, 0xbe, 0x49, 0xc3, 0xbb, 0x1f, 0xe3, 0xdc, 0x41, 0x7d, 0xce, 0xb3, 0x4b, -0xb6, 0x7f, 0x7b, 0x18, 0x2e, 0xbe, 0xc3, 0x2b, 0xbc, 0x6f, 0x28, 0x70, 0xf1, 0x18, 0xc7, 0xf9, -0x3f, 0xd3, 0xea, 0x72, 0x04, 0xeb, 0xb2, 0x82, 0x5d, 0xff, 0x35, 0xad, 0xc4, 0xdf, 0x73, 0x89, -0x8d, 0x7f, 0x73, 0x89, 0xd1, 0x54, 0x89, 0xac, 0x1b, 0xf1, 0x4e, 0x4c, 0xcb, 0x57, 0xe5, 0x7c, -0xef, 0xfa, 0x9b, 0xf3, 0xb5, 0xa5, 0xf2, 0xe5, 0x38, 0xd5, 0x57, 0xa7, 0xf2, 0x05, 0xd8, 0xc3, -0x3e, 0x79, 0x81, 0x47, 0xb5, 0xbe, 0x32, 0x65, 0xf4, 0x0b, 0xf7, 0x49, 0xb5, 0xcc, 0xa5, 0x6e, -0xe7, 0x95, 0xa2, 0xa9, 0xe5, 0x3a, 0xa9, 0x5c, 0x4b, 0x09, 0xc5, 0xa7, 0x51, 0x24, 0x6a, 0x50, -0x5d, 0xaa, 0xd5, 0xc0, 0xb2, 0x57, 0xac, 0x34, 0x6f, 0x0f, 0x67, 0x73, 0xf9, 0x47, 0x30, 0x97, -0xa7, 0x3e, 0x57, 0x0e, 0x8b, 0x3f, 0x2b, 0x07, 0x77, 0x91, 0x8e, 0x31, 0xbe, 0xba, 0x41, 0x69, -0xe1, 0x77, 0x5b, 0xaa, 0x25, 0x7c, 0x23, 0x5b, 0x75, 0x87, 0xb8, 0x13, 0xa9, 0x3a, 0x1a, 0x78, -0x54, 0x61, 0x0c, 0x5a, 0xb2, 0x30, 0x15, 0xa3, 0xd0, 0x9d, 0xbd, 0xec, 0xc2, 0x85, 0xbd, 0x81, -0xed, 0x25, 0x50, 0xb2, 0x9e, 0xc6, 0x54, 0x49, 0x22, 0xb0, 0x5d, 0x06, 0x69, 0x26, 0x8f, 0x99, -0xe6, 0x92, 0x04, 0xc7, 0xbf, 0x19, 0x53, 0xf2, 0xe8, 0x59, 0xd2, 0x90, 0x4a, 0x29, 0xe1, 0xb8, -0xd9, 0x73, 0x61, 0xd8, 0x05, 0x5a, 0x9c, 0xe5, 0x81, 0x47, 0xe5, 0x3a, 0x4e, 0x15, 0xa0, 0x55, -0xff, 0x4f, 0x77, 0xb3, 0xef, 0x5d, 0xa9, 0xf8, 0x36, 0x8e, 0x1f, 0x94, 0x3c, 0x31, 0x44, 0xf3, -0x92, 0x21, 0xb1, 0x36, 0xb9, 0xa4, 0x55, 0xf1, 0xf3, 0xbb, 0x7f, 0x5a, 0xbc, 0x42, 0x19, 0xe3, -0x95, 0x5d, 0x95, 0x8a, 0x37, 0xa0, 0xf0, 0xca, 0xfc, 0x92, 0x4d, 0xd3, 0xe2, 0xa1, 0xe4, 0x5f, -0xb2, 0x45, 0x8b, 0xb3, 0x19, 0x6b, 0x09, 0xb0, 0x93, 0xdd, 0xff, 0x33, 0xb3, 0x85, 0x81, 0x3d, -0xe7, 0xdf, 0x70, 0x79, 0x52, 0xed, 0xdb, 0x73, 0x61, 0x24, 0x1f, 0x67, 0x08, 0x4b, 0x76, 0x49, -0x42, 0xc0, 0x76, 0x49, 0x6b, 0xe0, 0xd1, 0xfc, 0xf5, 0x4a, 0x9c, 0xdd, 0x3f, 0x9c, 0x96, 0xf2, -0x49, 0x4a, 0x29, 0x79, 0x03, 0x5b, 0x28, 0xe5, 0xf9, 0x8f, 0x5a, 0x36, 0x57, 0xc2, 0xad, 0xe0, -0x0d, 0x6b, 0x29, 0x07, 0x02, 0x8f, 0x56, 0xae, 0x57, 0x2a, 0xd8, 0xfd, 0xa3, 0x54, 0xca, 0x32, -0x77, 0x36, 0xdd, 0xf6, 0xf7, 0x4d, 0xbe, 0xed, 0x2f, 0x9d, 0x9e, 0xbf, 0x20, 0x55, 0x2a, 0xd6, -0xd7, 0x45, 0xd4, 0xcf, 0xac, 0xc0, 0x85, 0x8d, 0xec, 0xf3, 0x4c, 0x2a, 0x07, 0x25, 0x99, 0x03, -0xdf, 0xb6, 0x98, 0xaa, 0x3b, 0x7d, 0x95, 0xa4, 0x73, 0xf8, 0x89, 0x46, 0x93, 0x75, 0x8a, 0x8c, -0xed, 0x99, 0xab, 0xc1, 0xe1, 0x50, 0xe0, 0xd1, 0xe8, 0x95, 0x63, 0x48, 0x3f, 0xc5, 0x98, 0x5c, -0xf2, 0x7a, 0xe0, 0xd1, 0x96, 0xcd, 0xc1, 0xf5, 0xbf, 0x5c, 0xdf, 0xfe, 0x86, 0xf8, 0x46, 0x28, -0x89, 0xde, 0x39, 0x96, 0x2a, 0xaf, 0xf3, 0xb3, 0x6b, 0x9c, 0x51, 0xde, 0x7f, 0xa4, 0xca, 0x73, -0x71, 0x79, 0xb3, 0x05, 0xbd, 0x46, 0xaa, 0x5c, 0x87, 0xb0, 0xfa, 0x05, 0xa8, 0x8b, 0xad, 0x1a, -0x0d, 0x16, 0x25, 0x9f, 0x4f, 0x95, 0x7c, 0x48, 0x7c, 0x2b, 0x8b, 0xf9, 0x9d, 0x1e, 0xc3, 0xbc, -0x53, 0x60, 0x89, 0x9a, 0xa2, 0xc1, 0x8c, 0xc9, 0x3e, 0xa3, 0x58, 0xb1, 0xd6, 0x34, 0xdf, 0xe5, -0x2d, 0x9b, 0x15, 0x2e, 0xdf, 0xf7, 0x45, 0xca, 0x4f, 0x81, 0xf3, 0x2b, 0x48, 0xf7, 0x8b, 0x25, -0x25, 0x84, 0x5c, 0x2a, 0x6e, 0x98, 0x97, 0x7d, 0x7c, 0x9f, 0x69, 0x2e, 0xf1, 0x8b, 0x82, 0x17, -0x41, 0x5e, 0xd7, 0xc7, 0x61, 0xb9, 0x4c, 0x6b, 0x91, 0x2f, 0x9a, 0xdc, 0x49, 0x3c, 0x25, 0xc5, -0xd0, 0x38, 0x5c, 0xe6, 0xcb, 0xa4, 0x0a, 0x2d, 0xde, 0x0a, 0xe2, 0xcc, 0x7c, 0x25, 0x53, 0x25, -0xc8, 0x25, 0x1f, 0x22, 0x07, 0x35, 0xdb, 0xd7, 0x09, 0x92, 0x90, 0x17, 0x91, 0xff, 0x97, 0x08, -0x0a, 0xa4, 0x3f, 0xd9, 0xf7, 0x9c, 0x92, 0xfb, 0xb3, 0x03, 0x61, 0x33, 0x72, 0x44, 0xb3, 0xe9, -0xe4, 0x05, 0xcb, 0x92, 0x5e, 0xbb, 0x25, 0x74, 0x4a, 0xe3, 0xbc, 0x58, 0x4b, 0xba, 0xef, 0x39, -0x96, 0xfa, 0x3f, 0x5c, 0x61, 0x50, 0xdf, 0x16, 0xb2, 0x15, 0xc6, 0x37, 0xc9, 0x3d, 0x59, 0xfa, -0x9f, 0xbe, 0x8f, 0x32, 0xa9, 0x4c, 0x12, 0x87, 0x7d, 0x15, 0x1c, 0xfb, 0xd9, 0x47, 0x59, 0xd9, -0x11, 0x2b, 0x6b, 0xb2, 0x78, 0x95, 0x6f, 0x3b, 0xe9, 0xc5, 0xcc, 0x5e, 0x0f, 0x71, 0xfe, 0xf6, -0xbb, 0x53, 0x6d, 0x4a, 0xf2, 0xef, 0x15, 0x57, 0xd3, 0x7a, 0xf2, 0x5c, 0xef, 0x7c, 0x94, 0xf7, -0xba, 0x34, 0x19, 0xc0, 0x81, 0x32, 0xc0, 0x3b, 0x49, 0x6e, 0x9e, 0xb5, 0xf8, 0x73, 0x43, 0x46, -0x6d, 0xdf, 0x93, 0x03, 0x25, 0xd8, 0x6b, 0x89, 0xa6, 0x28, 0x86, 0x52, 0x92, 0xec, 0x8d, 0x02, -0x06, 0x6e, 0x93, 0xd4, 0xa8, 0x98, 0x73, 0xe7, 0xc3, 0xac, 0xe7, 0x91, 0xca, 0xf5, 0x64, 0xb3, -0x4c, 0x73, 0xe6, 0xba, 0x4e, 0xe4, 0xd0, 0x0d, 0xf2, 0x28, 0xd6, 0xcd, 0xc0, 0xeb, 0x1c, 0x06, -0xb1, 0x1e, 0xb7, 0x08, 0xf9, 0x7b, 0x21, 0xd1, 0xd8, 0x3d, 0xfa, 0x42, 0xf5, 0x2d, 0xc8, 0xc9, -0x2b, 0xd1, 0x39, 0xbc, 0xf8, 0x28, 0x8b, 0x7e, 0x46, 0x6b, 0xf8, 0x73, 0x7f, 0x36, 0x54, 0x50, -0x05, 0x73, 0xc4, 0xfc, 0x23, 0x17, 0x42, 0x61, 0x78, 0x8e, 0xb3, 0x10, 0xe6, 0xca, 0xab, 0xc0, -0x21, 0xe9, 0x5d, 0x4b, 0x93, 0xbb, 0xa4, 0x12, 0x23, 0x14, 0x57, 0xcc, 0x91, 0x12, 0x85, 0x17, -0xc2, 0x1c, 0xbb, 0x6e, 0x7f, 0x22, 0xb4, 0xe7, 0x0b, 0xd5, 0x3a, 0x07, 0xf2, 0xfa, 0xf9, 0x9a, -0x9c, 0x53, 0x6a, 0x9f, 0xc5, 0xb7, 0xea, 0x99, 0xc4, 0x2a, 0x26, 0xca, 0xdc, 0xa3, 0xf6, 0x46, -0xff, 0xa3, 0x1a, 0xc5, 0x34, 0xed, 0x4b, 0xd8, 0xab, 0xf8, 0x76, 0xfb, 0x2d, 0xca, 0x5c, 0xcc, -0xc7, 0x84, 0x7d, 0xa1, 0x27, 0x7d, 0x37, 0x4b, 0x82, 0x79, 0xda, 0x4d, 0x96, 0x39, 0xfe, 0x47, -0xc3, 0x46, 0xde, 0xc7, 0x77, 0x9c, 0x74, 0x25, 0x24, 0x4b, 0x98, 0xc5, 0x9a, 0x4e, 0x0e, 0xad, -0x6d, 0x61, 0x6b, 0x4e, 0x27, 0xd7, 0x2d, 0x4b, 0x49, 0x37, 0x6a, 0x21, 0x2d, 0x7d, 0x2d, 0xe7, -0x1a, 0x92, 0x14, 0x07, 0xdd, 0xd9, 0x63, 0xa7, 0x93, 0x01, 0xd7, 0x2a, 0xb9, 0xee, 0x2c, 0xc9, -0x83, 0x33, 0x42, 0x0e, 0xdf, 0x7e, 0x97, 0x08, 0x9b, 0x5a, 0x86, 0x25, 0x2f, 0xc2, 0xeb, 0x38, -0x6b, 0xbc, 0xde, 0x32, 0x98, 0x93, 0xeb, 0x7d, 0x82, 0x6b, 0xf2, 0xdd, 0x8c, 0x63, 0xc3, 0xe0, -0xce, 0xa9, 0xe5, 0x7d, 0x3a, 0x81, 0x47, 0xdd, 0x25, 0x3a, 0x17, 0xe9, 0x3c, 0xd5, 0xc7, 0x1d, -0x1e, 0x5e, 0xe3, 0x48, 0x84, 0x6d, 0xee, 0xab, 0x39, 0x66, 0x83, 0x88, 0x89, 0x73, 0xce, 0xd5, -0x7c, 0x8b, 0x12, 0xf3, 0xf4, 0xbe, 0x3b, 0x93, 0xbe, 0x62, 0xff, 0x51, 0x72, 0xdd, 0x8e, 0xea, -0xad, 0xb7, 0x66, 0xd6, 0x5b, 0xe2, 0xf5, 0x56, 0xc2, 0x8b, 0x50, 0xb6, 0xbd, 0x44, 0x67, 0x55, -0x48, 0x0a, 0x1f, 0xc5, 0xd6, 0x6d, 0x97, 0x89, 0xf7, 0x3b, 0x6d, 0x87, 0x90, 0xb3, 0xea, 0x94, -0xee, 0x29, 0x6d, 0xe5, 0x95, 0xbe, 0x6d, 0xd2, 0x2a, 0x9d, 0x55, 0xee, 0x04, 0x13, 0x72, 0xfb, -0x10, 0x36, 0x5a, 0xbe, 0xb8, 0xf3, 0x4b, 0xe1, 0x4f, 0x14, 0x94, 0xf7, 0xb4, 0x5d, 0xe9, 0x7a, -0x51, 0x9a, 0x3b, 0x47, 0xea, 0xd1, 0x89, 0xbd, 0x9e, 0x36, 0x4d, 0x86, 0xb5, 0x90, 0x86, 0x8a, -0x71, 0x30, 0x7b, 0xe7, 0x8f, 0x50, 0x76, 0xf5, 0x63, 0x8c, 0xed, 0xca, 0x9c, 0xcf, 0x08, 0x75, -0x49, 0x55, 0xb2, 0x25, 0xf4, 0x0e, 0xc6, 0x79, 0xea, 0x33, 0xe3, 0x18, 0x45, 0x9c, 0x47, 0x0e, -0x48, 0x46, 0xed, 0xf6, 0xb7, 0x32, 0x87, 0xcf, 0x91, 0x63, 0xf7, 0xc5, 0x41, 0xb1, 0x20, 0xee, -0x18, 0xb1, 0x6f, 0xcd, 0x2c, 0x63, 0x97, 0x04, 0x87, 0xc5, 0x7d, 0xf4, 0x8d, 0x1b, 0x77, 0x0e, -0xb7, 0x9d, 0x68, 0x4e, 0xc8, 0x4b, 0xdf, 0x1b, 0x15, 0x21, 0x42, 0x3a, 0xd6, 0xd6, 0x25, 0xcb, -0xec, 0x1e, 0xd2, 0xba, 0xfb, 0xda, 0xc1, 0xec, 0x46, 0x99, 0x00, 0x2c, 0xde, 0x9f, 0xf0, 0xae, -0x8e, 0x0a, 0x2e, 0xb5, 0x1c, 0xc7, 0x35, 0x42, 0x99, 0x28, 0x98, 0x18, 0x6b, 0xbf, 0xbe, 0xc0, -0xda, 0x6a, 0xa1, 0x43, 0x35, 0xd4, 0x9e, 0x82, 0x4e, 0x1e, 0xd3, 0x26, 0xa1, 0x35, 0xde, 0xb7, -0x50, 0xec, 0x62, 0x6f, 0xd0, 0xd6, 0x0d, 0xd3, 0x7a, 0x2a, 0x5f, 0xe4, 0x32, 0xfa, 0x4c, 0x2d, -0xcf, 0xfd, 0xf6, 0x4c, 0x3d, 0x95, 0x3b, 0x87, 0x25, 0x25, 0x86, 0x66, 0x6e, 0xa5, 0x3a, 0xf9, -0xbb, 0x5f, 0xfc, 0x6a, 0x07, 0xe4, 0x26, 0xf7, 0xf4, 0x70, 0x98, 0x9d, 0xc2, 0x92, 0x10, 0x22, -0x6d, 0x9c, 0x16, 0x8f, 0x74, 0x72, 0xc6, 0x98, 0x70, 0xc9, 0x62, 0x47, 0x90, 0x80, 0x9d, 0x34, -0x2f, 0x49, 0xed, 0x84, 0x5e, 0x05, 0xe5, 0xcb, 0x1c, 0xee, 0xf7, 0x53, 0xb4, 0x72, 0x3b, 0x39, -0xe9, 0x00, 0x96, 0xe8, 0x87, 0xa5, 0xac, 0x94, 0xce, 0x03, 0xe5, 0x66, 0xa7, 0xce, 0x1e, 0xa0, -0x75, 0x0c, 0xc6, 0xb0, 0x7b, 0x11, 0xc3, 0xf4, 0xee, 0x9c, 0xf4, 0xba, 0x75, 0x54, 0xb7, 0x73, -0x5d, 0xc8, 0x24, 0x7c, 0xf6, 0x48, 0x2d, 0x9b, 0xed, 0x85, 0x3a, 0x97, 0xd8, 0x67, 0x16, 0x6a, -0x56, 0x56, 0xd0, 0xfe, 0x69, 0x1c, 0x0d, 0x66, 0x1e, 0x0d, 0x35, 0x2d, 0xd8, 0x17, 0x16, 0x17, -0xcc, 0xde, 0x9d, 0x68, 0x5b, 0xc4, 0x2e, 0x93, 0x0c, 0xfb, 0xd6, 0x85, 0x5d, 0x6e, 0x17, 0x71, -0xb6, 0xf8, 0x7d, 0x85, 0xe0, 0x61, 0xb8, 0xa4, 0x6d, 0x5c, 0x92, 0x29, 0xb0, 0x55, 0x6e, 0x88, -0xb1, 0xce, 0x4a, 0xfd, 0x2e, 0x8d, 0x01, 0xc9, 0xeb, 0x6c, 0xa4, 0x5c, 0x43, 0x4f, 0xb9, 0x0d, -0x42, 0xb2, 0xf5, 0xed, 0xd1, 0x62, 0xa6, 0xea, 0xd4, 0xf0, 0xd6, 0x0a, 0x8d, 0x1e, 0x2c, 0x5a, -0xec, 0xac, 0xc7, 0xfa, 0xe7, 0xb8, 0xe7, 0x63, 0x09, 0x62, 0x8c, 0xfd, 0x96, 0xf6, 0x61, 0xa5, -0xc7, 0x18, 0xc5, 0x37, 0x37, 0xfb, 0x27, 0x42, 0xa0, 0xcb, 0x73, 0x44, 0x40, 0xff, 0x8b, 0x5f, -0xa3, 0xcb, 0xec, 0x2f, 0x02, 0x53, 0x04, 0x39, 0xbb, 0xc2, 0xd5, 0x90, 0xc7, 0xa9, 0x3e, 0x11, -0xa9, 0x70, 0xbc, 0x61, 0xef, 0xd1, 0x4d, 0xd6, 0x48, 0x17, 0xae, 0x91, 0x69, 0x47, 0xd4, 0x33, -0x92, 0x47, 0xbb, 0xfd, 0x0e, 0x60, 0xd7, 0x55, 0xab, 0xc1, 0x0c, 0xc6, 0x79, 0xab, 0x21, 0x07, -0x4c, 0x5e, 0x8f, 0xa5, 0x08, 0x66, 0x2f, 0xf0, 0x80, 0x15, 0xbf, 0x73, 0xc1, 0x26, 0xf6, 0xef, -0x18, 0x8b, 0xf0, 0xd7, 0x14, 0xce, 0x5e, 0xb0, 0x1a, 0xe6, 0x40, 0x9e, 0x5c, 0x8c, 0xe9, 0x72, -0x25, 0xa3, 0x54, 0xe3, 0xf2, 0x26, 0x69, 0x9d, 0x03, 0xc2, 0xab, 0x30, 0xa5, 0x99, 0x64, 0xa2, -0xb0, 0xab, 0xcd, 0x68, 0xa6, 0x33, 0x2e, 0x2d, 0x4a, 0x0e, 0xcb, 0x4b, 0xb9, 0xf8, 0x6b, 0x0d, -0xf9, 0x15, 0x93, 0x5c, 0xcd, 0x54, 0xba, 0x51, 0xc9, 0xd5, 0x5c, 0x71, 0xc5, 0xa8, 0xb9, 0xe6, -0x08, 0xee, 0xab, 0xde, 0x92, 0xac, 0xb3, 0xec, 0x82, 0x3c, 0xae, 0xa1, 0x25, 0x0a, 0x52, 0x4d, -0xba, 0x1c, 0x45, 0xbf, 0x86, 0xee, 0x7b, 0x23, 0xe8, 0xf3, 0xbd, 0xc1, 0xf5, 0x45, 0x9c, 0x42, -0x9f, 0x82, 0xa4, 0x8d, 0x62, 0x10, 0x36, 0x0c, 0x32, 0x3c, 0xab, 0x4f, 0x62, 0x5b, 0x68, 0x0f, -0xc1, 0x0e, 0xb0, 0xa2, 0xdb, 0x82, 0x6e, 0x6a, 0xd5, 0x95, 0x60, 0xf4, 0x76, 0x42, 0x0e, 0xfa, -0x3a, 0x17, 0xe0, 0x4c, 0x41, 0xfb, 0xd1, 0x08, 0xf6, 0xb7, 0x96, 0x91, 0xf6, 0xc2, 0x4d, 0xf7, -0x15, 0x32, 0xe4, 0xeb, 0x6f, 0xc7, 0xdc, 0x2d, 0x49, 0xdc, 0xb9, 0x35, 0xcb, 0x1b, 0xf6, 0xfe, -0x13, 0xf7, 0x9a, 0xba, 0x28, 0x9f, 0x24, 0x16, 0x87, 0x69, 0x2d, 0x28, 0xa0, 0xdb, 0x95, 0x6b, -0x38, 0x3d, 0x2b, 0x9a, 0xb5, 0x2f, 0x61, 0x31, 0x9c, 0x34, 0x0e, 0x66, 0x8d, 0xad, 0xbf, 0xff, -0xca, 0x03, 0x0f, 0xe6, 0x57, 0x82, 0x7e, 0xef, 0x50, 0xd8, 0x3c, 0xb7, 0x12, 0xb2, 0x7e, 0x39, -0x14, 0xb6, 0x04, 0x87, 0x15, 0xc4, 0x84, 0xb5, 0x30, 0xc7, 0x09, 0xba, 0xe6, 0x61, 0xc5, 0x2c, -0x7b, 0x5b, 0x86, 0x0b, 0xbf, 0xa8, 0x7f, 0x80, 0xee, 0xb7, 0x1e, 0xd4, 0xed, 0x4d, 0x84, 0xcd, -0xf7, 0x67, 0xfd, 0x32, 0x11, 0xce, 0x25, 0x1e, 0x41, 0x31, 0x07, 0x87, 0xef, 0x9f, 0xdc, 0xff, -0x60, 0x70, 0xdd, 0x4b, 0x0f, 0x2a, 0xa6, 0xe0, 0xf0, 0xe0, 0xe4, 0xfe, 0xf5, 0xe8, 0x5e, 0x7f, -0xbf, 0xee, 0x97, 0xb4, 0x1a, 0xf0, 0x83, 0x1e, 0x83, 0xc3, 0xf4, 0xfa, 0x03, 0x31, 0x3d, 0x8e, -0xa8, 0xba, 0xc1, 0x2c, 0x4c, 0xdb, 0x7e, 0xbf, 0x4e, 0xae, 0x96, 0xbc, 0x98, 0x3e, 0x5f, 0x32, -0xc8, 0xc7, 0x9a, 0x12, 0xab, 0x2e, 0x48, 0x86, 0xba, 0xc4, 0xa1, 0xc4, 0x23, 0x89, 0x03, 0x89, -0xe0, 0x88, 0x54, 0x73, 0x78, 0xff, 0xe1, 0x03, 0x4a, 0xb9, 0x64, 0x28, 0xbb, 0x6c, 0x98, 0x32, -0x47, 0xf6, 0x4a, 0xd5, 0x92, 0xc1, 0xf2, 0xef, 0x53, 0x43, 0xa5, 0x9a, 0xe0, 0xe8, 0xeb, 0xa3, -0x55, 0x67, 0x9c, 0x74, 0x55, 0xde, 0x4b, 0x54, 0x82, 0x64, 0x70, 0xd9, 0x4a, 0x6c, 0xf2, 0x4b, -0xf2, 0xbf, 0x62, 0xcc, 0x73, 0x99, 0xf9, 0xbc, 0xb7, 0xe9, 0xf5, 0x11, 0xc9, 0x8b, 0x79, 0x01, -0x3c, 0x71, 0xbf, 0x1e, 0x6b, 0xd2, 0x10, 0xcb, 0xc2, 0xfa, 0x75, 0x0e, 0xea, 0x24, 0x2f, 0xd6, -0x70, 0xae, 0x6c, 0xc3, 0xf4, 0x06, 0xf9, 0x45, 0x2a, 0xc1, 0x6e, 0xa8, 0x1b, 0x3e, 0x3a, 0xfc, -0xd8, 0xf0, 0x81, 0xe1, 0xe0, 0xc8, 0x31, 0xfc, 0xa7, 0x84, 0xca, 0x38, 0xb4, 0x6c, 0x5a, 0xa8, -0x5c, 0xfd, 0xea, 0xfe, 0xea, 0x3f, 0xf8, 0xf4, 0x38, 0xf3, 0x79, 0x73, 0x39, 0x46, 0xee, 0x25, -0x31, 0x30, 0x5c, 0xe7, 0x98, 0xa5, 0x38, 0xb0, 0x6e, 0x36, 0xd9, 0xe6, 0xa8, 0x96, 0x6b, 0x1c, -0x63, 0x8e, 0x17, 0x9b, 0x36, 0x10, 0xfd, 0x88, 0x9c, 0xcb, 0x2c, 0x89, 0x6a, 0x68, 0x37, 0x22, -0x75, 0x9d, 0xdc, 0x9f, 0x90, 0xbc, 0x36, 0x4b, 0x08, 0x26, 0x7d, 0x48, 0xf1, 0xc4, 0x3e, 0x1f, -0x13, 0x52, 0xf1, 0x5c, 0xa4, 0xda, 0x89, 0xeb, 0xfc, 0x60, 0x90, 0x82, 0xcc, 0x0f, 0x6c, 0x50, -0x1c, 0x97, 0xdf, 0x11, 0xa1, 0xe4, 0x5c, 0xba, 0x93, 0x87, 0xe7, 0xa8, 0x0a, 0xbb, 0xd1, 0x59, -0xef, 0x08, 0x10, 0xfe, 0x08, 0x9a, 0x50, 0x7f, 0x4f, 0x26, 0x06, 0x09, 0x6a, 0x10, 0xd5, 0xf1, -0x4c, 0xed, 0x50, 0x1a, 0x16, 0x0c, 0x06, 0xce, 0xab, 0x17, 0x64, 0xf8, 0xdd, 0x06, 0x18, 0x1a, -0xfb, 0x10, 0x74, 0xf3, 0xaa, 0xd4, 0x89, 0xb2, 0xfc, 0xb0, 0xb1, 0xfa, 0xac, 0x05, 0xe6, 0xd5, -0xab, 0x13, 0xc1, 0xc4, 0x37, 0x46, 0xcd, 0xcd, 0xaa, 0x1a, 0x7a, 0x5d, 0x71, 0x5c, 0x2e, 0xae, -0x9c, 0x1f, 0x36, 0xd0, 0x9b, 0xe2, 0x21, 0x7d, 0xdd, 0x16, 0x7a, 0x43, 0x86, 0x23, 0x89, 0x43, -0x43, 0x87, 0xb0, 0x7d, 0x8f, 0x8c, 0x6d, 0x1b, 0x15, 0x67, 0x65, 0x8c, 0x28, 0xa9, 0x9b, 0x8b, -0x68, 0x5f, 0x50, 0xd8, 0x42, 0xbb, 0xfc, 0x5a, 0x1a, 0x78, 0x3c, 0xcd, 0x0a, 0xf4, 0x2b, 0x74, -0xc6, 0xe4, 0x7e, 0x71, 0x27, 0x72, 0xfd, 0x23, 0x5c, 0xd3, 0xf4, 0xfe, 0x1e, 0x0b, 0xcd, 0x8f, -0x2b, 0x0c, 0x62, 0x77, 0xa2, 0xd3, 0xe7, 0x9a, 0xe5, 0x34, 0x15, 0x42, 0x09, 0x51, 0x26, 0xd0, -0xda, 0xf6, 0xbf, 0xa6, 0xb5, 0xcd, 0xca, 0x75, 0x9d, 0x5b, 0x75, 0x1a, 0x70, 0x0c, 0x2a, 0xfa, -0xe0, 0x3a, 0x73, 0x0b, 0x7e, 0x8f, 0x0b, 0x9a, 0x57, 0x7f, 0x5c, 0xc9, 0x0b, 0xae, 0x53, 0x0c, -0x52, 0xc3, 0x1a, 0xe0, 0x3d, 0x8a, 0x67, 0x85, 0xbf, 0x1f, 0x38, 0x17, 0x7d, 0x46, 0xb9, 0xd5, -0x87, 0x7f, 0x75, 0xf8, 0x57, 0x55, 0x67, 0x46, 0xb3, 0x1c, 0xc6, 0xe8, 0xc4, 0x4b, 0x09, 0x29, -0xeb, 0xd0, 0x03, 0xda, 0x2e, 0x67, 0xaf, 0xd8, 0xe1, 0x4c, 0xeb, 0xb6, 0x9c, 0xb6, 0x60, 0x5a, -0x5a, 0x2b, 0xef, 0x73, 0x56, 0x7e, 0xfb, 0x2b, 0x69, 0x29, 0xd7, 0xc5, 0x58, 0x8d, 0x75, 0xb1, -0x37, 0x28, 0x06, 0xb9, 0xe1, 0xb1, 0x57, 0x38, 0xf5, 0x0f, 0x6f, 0xaa, 0x06, 0xcb, 0x4d, 0xb5, -0x90, 0xeb, 0x5f, 0x8f, 0x1c, 0x75, 0x9d, 0x7d, 0x69, 0x54, 0xcc, 0x20, 0xcf, 0xfb, 0x47, 0xc2, -0x4e, 0xb1, 0xba, 0xeb, 0xbf, 0x2d, 0x33, 0x57, 0x69, 0xb6, 0xb4, 0x44, 0xa3, 0x74, 0x08, 0x0b, -0xe6, 0x6a, 0x10, 0x4a, 0x1c, 0x2f, 0x72, 0x49, 0xcd, 0x67, 0x27, 0xf7, 0x8d, 0x4d, 0x5d, 0x27, -0xf2, 0x0f, 0xfd, 0xb5, 0x75, 0xa2, 0x7f, 0xbb, 0x7f, 0xea, 0x3a, 0x91, 0xef, 0xbd, 0x9b, 0x91, -0x3f, 0x48, 0xea, 0xd6, 0x9d, 0xc0, 0xfa, 0xf4, 0x26, 0x6f, 0xb5, 0xb2, 0xa8, 0xb4, 0x10, 0x5c, -0x41, 0xda, 0x39, 0xea, 0x0a, 0xcb, 0xbb, 0x9f, 0x06, 0x67, 0x38, 0xaf, 0xa0, 0x06, 0xec, 0x38, -0x1f, 0x5a, 0xaa, 0x4f, 0x41, 0x3e, 0xb7, 0xc5, 0x14, 0xac, 0x56, 0x72, 0x82, 0xab, 0x20, 0x47, -0x31, 0xd2, 0x2f, 0x86, 0x3b, 0xed, 0x41, 0xff, 0xa3, 0xa1, 0xfd, 0xfe, 0xea, 0xf0, 0x62, 0x7b, -0x93, 0x62, 0xe5, 0x74, 0xa6, 0xa8, 0x45, 0xd3, 0xc0, 0x1b, 0x9a, 0xaa, 0x59, 0x37, 0x7f, 0x12, -0xc3, 0xe7, 0x96, 0x56, 0x8b, 0xde, 0xf5, 0x3f, 0x22, 0x64, 0x14, 0xd6, 0xb8, 0x72, 0x4c, 0x75, -0x5b, 0x7a, 0xa5, 0xa3, 0xe1, 0x89, 0x4c, 0x1e, 0xc1, 0xff, 0xbf, 0x3f, 0x7b, 0x2d, 0x4b, 0xb4, -0x2c, 0xcd, 0x23, 0xd0, 0xdd, 0xd7, 0x17, 0x8f, 0xb9, 0x34, 0x5e, 0xdb, 0x09, 0xf6, 0x7a, 0x87, -0xce, 0x11, 0x20, 0x0d, 0x9d, 0xff, 0x35, 0xe6, 0xc1, 0x72, 0xd8, 0xfd, 0x0e, 0xce, 0xd2, 0xa3, -0x61, 0xe2, 0xd5, 0x58, 0x2b, 0xc5, 0x1a, 0xf4, 0x0f, 0x74, 0x77, 0xc9, 0x5e, 0xd6, 0xf4, 0x9d, -0x76, 0x91, 0xbe, 0xda, 0x1a, 0x96, 0xbd, 0xc8, 0xf1, 0xa3, 0x44, 0x70, 0x41, 0xf6, 0x23, 0x6d, -0xc9, 0x4a, 0xca, 0x05, 0x7e, 0xf4, 0x0d, 0xd3, 0x4e, 0x6b, 0xab, 0x62, 0x68, 0x3c, 0x05, 0xd7, -0x0a, 0x0d, 0x96, 0x90, 0x0e, 0x7c, 0x63, 0x69, 0xde, 0x1b, 0x79, 0xb0, 0x59, 0x76, 0xc0, 0xf1, -0x0a, 0x82, 0xde, 0xfb, 0x3f, 0x76, 0xe3, 0x78, 0x49, 0x40, 0x12, 0xa7, 0xb5, 0xfd, 0x5e, 0x6b, -0x79, 0x1f, 0xde, 0x69, 0xbb, 0x47, 0xdb, 0x37, 0x5b, 0xc9, 0xf7, 0xc9, 0x5b, 0x77, 0x25, 0xda, -0xac, 0xb4, 0x67, 0x8e, 0xce, 0x61, 0x25, 0x4b, 0xb6, 0x7b, 0x94, 0xb9, 0xc4, 0x9f, 0x53, 0x6e, -0x4b, 0xb3, 0xb5, 0xdc, 0x32, 0xf6, 0xcc, 0x21, 0x16, 0x72, 0x5d, 0xd2, 0x5a, 0xee, 0xa5, 0x25, -0x97, 0xc4, 0xb2, 0x25, 0x57, 0x59, 0xb5, 0x75, 0x10, 0xb1, 0x3b, 0x50, 0xec, 0x3c, 0xf3, 0x0a, -0xde, 0x56, 0xec, 0xdc, 0xe2, 0x95, 0x18, 0x43, 0x52, 0xde, 0xb2, 0x07, 0x9a, 0x4a, 0x74, 0xd7, -0xfb, 0xf1, 0x89, 0x38, 0xfc, 0x74, 0xb6, 0x4f, 0xc2, 0xdf, 0xa2, 0xc8, 0x1c, 0xd2, 0x94, 0xb2, -0xec, 0x64, 0x61, 0x3c, 0x27, 0xcd, 0x9d, 0x58, 0x13, 0x3b, 0x9e, 0x92, 0xb9, 0x08, 0xd7, 0x50, -0xea, 0xba, 0x61, 0x10, 0xf9, 0xc8, 0x5c, 0x84, 0xfc, 0x8f, 0x48, 0xe7, 0x49, 0xab, 0x4c, 0x8a, -0x49, 0x60, 0x60, 0x6a, 0xa5, 0x65, 0xb0, 0xac, 0x08, 0xf1, 0xaf, 0xea, 0xa6, 0x2a, 0x70, 0x21, -0xc7, 0x6a, 0xf5, 0x57, 0x85, 0xb2, 0xaf, 0xf7, 0x20, 0xf7, 0x96, 0xbd, 0xf3, 0xc7, 0xe0, 0x0c, -0xe5, 0x06, 0x91, 0x8f, 0x28, 0x58, 0x0a, 0x56, 0x4d, 0x22, 0x5b, 0xaf, 0xcc, 0xf1, 0x27, 0xbe, -0xca, 0x92, 0x4c, 0x0d, 0xc9, 0x4e, 0xc6, 0xaa, 0x0f, 0xc0, 0x22, 0xc2, 0x54, 0x53, 0x72, 0xed, -0x2a, 0xcd, 0xf3, 0xf3, 0x5d, 0xc9, 0x9d, 0x60, 0x61, 0x3c, 0x90, 0x64, 0x94, 0x75, 0xc3, 0x73, -0x90, 0x8f, 0xce, 0xa1, 0xfb, 0x93, 0x69, 0xbf, 0x92, 0xfb, 0x8a, 0xc2, 0xaa, 0x24, 0x2f, 0x50, -0x98, 0x96, 0x17, 0x7b, 0x59, 0x9e, 0xa1, 0x15, 0x16, 0xab, 0xdc, 0xab, 0xd5, 0xd3, 0x84, 0x3c, -0xb5, 0x85, 0x79, 0xc8, 0x3a, 0xe4, 0xdb, 0x0a, 0x21, 0x27, 0x36, 0x73, 0x6c, 0x28, 0x17, 0xa9, -0x08, 0xce, 0x49, 0x12, 0xbe, 0x69, 0x6e, 0x92, 0x48, 0x3e, 0x8f, 0x41, 0x6e, 0x21, 0x5c, 0x49, -0x9a, 0xd1, 0xff, 0xda, 0xc1, 0x75, 0xde, 0xab, 0x88, 0x1c, 0x1a, 0x14, 0xb3, 0x64, 0xd2, 0x46, -0xfe, 0x2c, 0x3a, 0xbd, 0xa3, 0xad, 0x2f, 0xd1, 0xfe, 0xc5, 0x7a, 0xe4, 0x61, 0xf5, 0xc8, 0xc3, -0x92, 0x5c, 0x4c, 0x2b, 0x0f, 0x7b, 0xd4, 0x1a, 0x85, 0x56, 0x9b, 0x46, 0xbf, 0x30, 0x48, 0x2b, -0x89, 0x82, 0xb3, 0x46, 0xdf, 0x36, 0x6d, 0xaf, 0x97, 0x39, 0xdd, 0xc6, 0x4b, 0xd7, 0x23, 0x90, -0x9f, 0x3f, 0x49, 0x3a, 0xed, 0x42, 0x44, 0x1b, 0xf4, 0x6f, 0x70, 0xf6, 0x42, 0x23, 0xb6, 0xa9, -0x45, 0x01, 0xc3, 0x01, 0xe4, 0x9d, 0x0a, 0x42, 0x60, 0x88, 0x4a, 0xb5, 0x66, 0x27, 0x14, 0xd3, -0xfd, 0xb7, 0xc1, 0x51, 0xe4, 0xf3, 0x17, 0x2a, 0x26, 0xa9, 0xb6, 0x79, 0x34, 0x5a, 0xec, 0xf6, -0xc0, 0x42, 0xb3, 0x05, 0x4a, 0x43, 0xd9, 0xc1, 0xd1, 0x81, 0x52, 0x45, 0x3f, 0x40, 0xbb, 0x09, -0xcb, 0x62, 0xa0, 0xe4, 0xc9, 0x55, 0xaf, 0xbe, 0xf8, 0xea, 0xcb, 0xaf, 0xbe, 0x58, 0xfd, 0x87, -0xc7, 0x0f, 0x89, 0x7b, 0xd1, 0x69, 0xd5, 0xa5, 0xd0, 0x68, 0xb1, 0x59, 0x21, 0xa9, 0x63, 0x5f, -0xf9, 0x86, 0xbb, 0x0a, 0xca, 0xe4, 0x5a, 0x2c, 0xa5, 0x24, 0x54, 0x81, 0x61, 0xf3, 0x41, 0x97, -0x0d, 0x18, 0x86, 0x7c, 0x5b, 0x5b, 0x61, 0x0c, 0x82, 0x1b, 0x0a, 0xab, 0xfe, 0xe3, 0xc5, 0xff, -0xf8, 0xb7, 0xff, 0x78, 0x71, 0xe9, 0x9f, 0x8e, 0x1d, 0xc2, 0x9a, 0xdb, 0xe4, 0x2b, 0x38, 0x8f, -0x8c, 0x78, 0x2b, 0xdf, 0x50, 0xf4, 0x31, 0x55, 0xaa, 0xb5, 0x5a, 0x30, 0xc7, 0xae, 0x70, 0x36, -0xfe, 0x46, 0x42, 0x26, 0x5a, 0x85, 0x07, 0x35, 0xf8, 0x80, 0xa2, 0x8f, 0x77, 0x4a, 0xb5, 0x16, -0x0b, 0xc6, 0x5c, 0x19, 0x06, 0xdd, 0x33, 0x6d, 0x0b, 0xd1, 0x75, 0x3b, 0xba, 0xca, 0xdb, 0xe6, -0xa0, 0xab, 0x06, 0xb9, 0x99, 0xb3, 0xf8, 0x6e, 0xc4, 0xf7, 0xf3, 0x28, 0xa3, 0x81, 0x6e, 0x2f, -0xf2, 0x53, 0x63, 0xe8, 0xd3, 0x82, 0x3e, 0x8f, 0xe3, 0xbb, 0x0d, 0x79, 0xdb, 0x9d, 0x8a, 0x0b, -0x5d, 0x7d, 0xe1, 0x60, 0x1b, 0xf1, 0x92, 0xed, 0x18, 0xf2, 0x4b, 0x7c, 0x47, 0x31, 0x64, 0xbb, -0xb2, 0x16, 0x5d, 0xfd, 0xe8, 0x73, 0x02, 0xdf, 0x03, 0xe8, 0x33, 0xa2, 0x28, 0xbb, 0x84, 0xe4, -0x90, 0xdb, 0xb2, 0x51, 0xd1, 0x4b, 0x73, 0xe9, 0xb4, 0xf7, 0x52, 0x3f, 0xef, 0x76, 0x3f, 0x2e, -0x76, 0xd6, 0x2e, 0x3d, 0x09, 0xba, 0x35, 0x90, 0x67, 0xc1, 0x92, 0xee, 0x14, 0x71, 0x0b, 0x83, -0x14, 0xb7, 0xf0, 0xae, 0x3d, 0x2c, 0x5d, 0x8a, 0x14, 0xee, 0x2b, 0x08, 0x36, 0xbc, 0xa7, 0x73, -0x7f, 0xcb, 0x66, 0x07, 0xc4, 0x41, 0x76, 0x43, 0x09, 0xa6, 0x71, 0x46, 0xbb, 0x76, 0x0e, 0x87, -0xcc, 0x8a, 0x25, 0x6a, 0x44, 0xe8, 0x97, 0x21, 0xd4, 0xb3, 0xa3, 0x11, 0xf4, 0xc9, 0xe1, 0xbc, -0x0c, 0xae, 0x5c, 0x25, 0xd7, 0x35, 0x57, 0xc9, 0xe3, 0x2f, 0xb3, 0x2b, 0x57, 0xbf, 0x9e, 0x76, -0x56, 0x63, 0xfe, 0x86, 0x41, 0xa8, 0x9c, 0x7b, 0xbf, 0x45, 0x59, 0x45, 0xe9, 0xc3, 0xd3, 0xd3, -0xe4, 0x60, 0x9a, 0x5c, 0xb1, 0xff, 0xcf, 0x95, 0xeb, 0x7b, 0x89, 0xe2, 0x57, 0xce, 0xf5, 0xbd, -0xe4, 0x5f, 0x1f, 0x59, 0x54, 0xb3, 0xfe, 0x7e, 0x53, 0x5c, 0xa7, 0x94, 0x5f, 0x36, 0xdd, 0x5f, -0x2a, 0xcb, 0x14, 0x87, 0xa5, 0x1f, 0x43, 0x0d, 0x72, 0xcc, 0x33, 0xdd, 0xd9, 0xd8, 0x9a, 0x85, -0x42, 0x83, 0xd5, 0x48, 0x37, 0x4a, 0x8f, 0xbb, 0x4e, 0x7c, 0x89, 0xf6, 0xc3, 0xcd, 0x14, 0x7a, -0xad, 0x5b, 0x46, 0x91, 0xb6, 0x43, 0x70, 0x1d, 0xb5, 0x11, 0x47, 0xc5, 0x6f, 0x14, 0x4f, 0x46, -0x69, 0xa6, 0x5d, 0x42, 0x3f, 0x91, 0xaa, 0x21, 0x8e, 0xa7, 0x2c, 0x2a, 0xa5, 0x74, 0xae, 0x6f, -0xec, 0x5a, 0x0f, 0x54, 0x60, 0x29, 0x15, 0x8a, 0xa9, 0xe9, 0x81, 0xbf, 0xff, 0x37, 0x05, 0xa7, -0xfe, 0xc2, 0xda, 0x35, 0xba, 0x38, 0x3c, 0xbf, 0xae, 0x5d, 0xef, 0xd0, 0x05, 0x1f, 0xf0, 0x0f, -0x87, 0x1b, 0x63, 0xd2, 0xf3, 0x23, 0x61, 0x3f, 0xd2, 0x95, 0x4d, 0xe1, 0xdc, 0x36, 0x13, 0x8e, -0x3e, 0xfd, 0xf3, 0x9b, 0x42, 0xf9, 0x4a, 0x5e, 0xde, 0x04, 0x14, 0x2b, 0x65, 0xa9, 0xf3, 0x26, -0xc5, 0x81, 0x3d, 0x13, 0x6f, 0x2b, 0xd6, 0xe0, 0x56, 0x65, 0xae, 0xd0, 0x6a, 0x90, 0x1f, 0xd2, -0xc5, 0x6d, 0x0e, 0x4f, 0xe3, 0x66, 0xc5, 0x14, 0x2d, 0xe6, 0xb1, 0x88, 0x74, 0xd1, 0x8f, 0x23, -0x20, 0xd4, 0xec, 0xd2, 0x1f, 0x5f, 0x77, 0x3f, 0xcc, 0x35, 0x28, 0x35, 0x9c, 0x73, 0x4e, 0x9b, -0x31, 0x46, 0xf9, 0xda, 0x94, 0xdc, 0xbc, 0xfd, 0x4a, 0x89, 0x76, 0xd6, 0x88, 0x6e, 0x86, 0xde, -0xa4, 0xe4, 0x62, 0x9e, 0xf9, 0x02, 0x4a, 0xd8, 0xe2, 0x54, 0x8e, 0x92, 0x21, 0x99, 0x63, 0x70, -0xfd, 0x5e, 0x1c, 0x37, 0x1d, 0x2f, 0x50, 0x6d, 0xa3, 0xd2, 0xce, 0x91, 0x90, 0x3f, 0xa6, 0x7b, -0x9e, 0x6b, 0xcb, 0xa7, 0xf9, 0x3e, 0xab, 0xb6, 0x65, 0x9f, 0xa7, 0xb6, 0x83, 0xa0, 0x04, 0x38, -0x37, 0x4b, 0x9b, 0x31, 0x4a, 0x79, 0xcd, 0x55, 0x6c, 0x96, 0x6b, 0xf2, 0xc6, 0x94, 0x72, 0x91, -0x17, 0x8e, 0xab, 0x6b, 0x68, 0xef, 0xcc, 0xa7, 0x27, 0x90, 0x43, 0xc2, 0xdc, 0xe8, 0x5b, 0xab, -0x2b, 0xa4, 0xf2, 0x33, 0xa6, 0x6a, 0xfa, 0xad, 0xe0, 0xfa, 0x17, 0xd6, 0x87, 0x9e, 0x23, 0x18, -0x20, 0xde, 0xff, 0xf0, 0xe8, 0x7a, 0xc4, 0x65, 0x84, 0x01, 0x97, 0x90, 0xa3, 0x95, 0x30, 0x15, -0x06, 0x59, 0x98, 0xf7, 0xe8, 0x14, 0x18, 0x64, 0x5d, 0x16, 0x06, 0xc3, 0xbb, 0x18, 0x06, 0x4a, -0xa3, 0x56, 0xdb, 0x64, 0x4f, 0x61, 0x7d, 0xb1, 0xb6, 0x8b, 0x44, 0x6e, 0x82, 0x96, 0x70, 0x7d, -0xcb, 0x15, 0x1b, 0xe6, 0x29, 0x09, 0x9f, 0xbf, 0x50, 0xe3, 0x07, 0x88, 0x02, 0x84, 0xe0, 0xd3, -0x72, 0xee, 0x27, 0x8b, 0xd6, 0x4f, 0x73, 0x14, 0x2b, 0x42, 0x14, 0x94, 0x52, 0x91, 0x2f, 0xdd, -0x91, 0x7d, 0xe1, 0x1d, 0xae, 0xa5, 0x80, 0xa7, 0x19, 0x39, 0x88, 0x64, 0x5e, 0xe6, 0x28, 0x24, -0x73, 0x53, 0x8c, 0xe2, 0xdc, 0xaa, 0x6b, 0xa9, 0x94, 0xa3, 0x69, 0x49, 0x6d, 0x81, 0xfe, 0x35, -0x38, 0x3e, 0x15, 0xb8, 0xf8, 0x28, 0xd1, 0x5d, 0x4a, 0x27, 0x38, 0x70, 0xcc, 0xf1, 0x29, 0x9a, -0x75, 0xed, 0x77, 0x3b, 0x88, 0x43, 0x17, 0xfb, 0xf9, 0xc5, 0xba, 0x61, 0x7b, 0xea, 0xac, 0x51, -0x72, 0x76, 0x34, 0x93, 0x8e, 0x88, 0x66, 0x2a, 0x0c, 0x5d, 0xc5, 0xa1, 0xe9, 0x35, 0x6d, 0xe6, -0x72, 0x96, 0x2e, 0xbd, 0x94, 0x8b, 0xe3, 0x9d, 0x69, 0x93, 0xbc, 0x3f, 0x4c, 0xec, 0x53, 0x3e, -0x9b, 0xa9, 0x17, 0x3d, 0x78, 0x94, 0x68, 0x3f, 0xdd, 0xe7, 0x0e, 0x6f, 0xd0, 0xdc, 0x89, 0x5c, -0x43, 0x4e, 0x13, 0xf1, 0x6e, 0x39, 0x65, 0xc8, 0xc5, 0x35, 0x55, 0xdd, 0x88, 0xb3, 0xa8, 0xdf, -0x13, 0xc2, 0x5e, 0xf4, 0x57, 0x75, 0x03, 0x6c, 0x73, 0xe0, 0x9c, 0xe5, 0xdf, 0x8a, 0xb1, 0x37, -0xa2, 0xcc, 0x0d, 0x30, 0x3b, 0xec, 0x43, 0x1e, 0xc6, 0xa9, 0x54, 0x6a, 0x5f, 0x65, 0xf2, 0x52, -0xb1, 0xeb, 0x23, 0x3a, 0xf9, 0xe2, 0x8f, 0x81, 0x79, 0x3b, 0x79, 0x35, 0x18, 0x79, 0x96, 0x4b, -0x72, 0x73, 0x7b, 0x15, 0xf3, 0xf5, 0x7e, 0x3e, 0x75, 0xc7, 0xf3, 0xaf, 0xa3, 0xda, 0x71, 0x75, -0x68, 0x4c, 0x69, 0x4e, 0xa6, 0xa4, 0x34, 0x52, 0x11, 0x4a, 0x02, 0xb9, 0x38, 0x1b, 0x3b, 0x29, -0x75, 0x2a, 0x5d, 0x69, 0xc1, 0x6a, 0xb0, 0x82, 0x33, 0x33, 0xb5, 0x42, 0x3b, 0x17, 0x9c, 0x37, -0xb2, 0x84, 0xac, 0x58, 0xfc, 0x9e, 0x88, 0x99, 0xb9, 0x41, 0xa3, 0xe0, 0x06, 0x35, 0x5e, 0x30, -0xb5, 0xd6, 0xce, 0x73, 0x71, 0x8e, 0xbd, 0x11, 0x71, 0x8a, 0x67, 0xf8, 0x8b, 0x2f, 0x31, 0xd7, -0x79, 0x36, 0xbd, 0xd7, 0x22, 0xbd, 0xa7, 0x03, 0xf9, 0xa6, 0x8f, 0x70, 0x76, 0xfd, 0xcc, 0x7d, -0x19, 0x72, 0xa3, 0x74, 0x15, 0xf2, 0xe7, 0x1e, 0x92, 0xb2, 0x24, 0x8b, 0xec, 0x91, 0x1e, 0x99, -0x7e, 0x56, 0x82, 0x78, 0x32, 0xd5, 0x30, 0xe5, 0xc4, 0x44, 0x6c, 0xb4, 0x99, 0xcf, 0x4a, 0xe4, -0xfe, 0xf4, 0x24, 0x18, 0x43, 0x66, 0x71, 0x62, 0xe2, 0xd2, 0xd3, 0x12, 0x7f, 0x4b, 0x3d, 0x90, -0x47, 0xd5, 0x3b, 0x67, 0xd9, 0x73, 0x1c, 0x39, 0x74, 0x2b, 0xbd, 0x7e, 0xbf, 0x54, 0x4d, 0xe7, -0x1b, 0xe4, 0x1a, 0x2e, 0xbb, 0x5a, 0xb4, 0xb2, 0xe1, 0x2d, 0x8f, 0xb0, 0x68, 0xd1, 0x85, 0x75, -0x7d, 0x44, 0xba, 0x6d, 0x5e, 0x17, 0x69, 0x96, 0xc5, 0x1e, 0x39, 0xac, 0x2d, 0x97, 0x23, 0x6a, -0x7b, 0xc9, 0x3e, 0xa1, 0xff, 0xab, 0x70, 0x89, 0x76, 0x62, 0x75, 0x82, 0xe1, 0x79, 0xb1, 0x3a, -0xb0, 0x45, 0x6e, 0x14, 0x3a, 0x6d, 0x45, 0x4f, 0x5a, 0x46, 0x6e, 0x67, 0x45, 0x4a, 0x67, 0x6a, -0x70, 0xf4, 0xe8, 0xac, 0xee, 0x22, 0x30, 0x09, 0xd9, 0x65, 0xe9, 0x0a, 0xdf, 0x80, 0x1e, 0x92, -0x1a, 0x28, 0x86, 0xce, 0x20, 0x8d, 0x94, 0x9f, 0x9f, 0xd2, 0x59, 0xbf, 0xba, 0xcf, 0x37, 0x5c, -0xe3, 0x0d, 0xf3, 0x4a, 0xc5, 0xd2, 0x58, 0x66, 0x3c, 0x5e, 0xcb, 0x31, 0x0a, 0x0d, 0xab, 0x6a, -0xf8, 0x02, 0x69, 0x87, 0xae, 0x44, 0xdc, 0x24, 0x6d, 0x9e, 0xcd, 0xb9, 0x1a, 0x64, 0xb6, 0x3d, -0x60, 0x91, 0x22, 0xd0, 0xa6, 0x71, 0x98, 0x0f, 0x2b, 0xfa, 0xef, 0x1c, 0x14, 0x9a, 0x9a, 0xa5, -0xc3, 0x22, 0xa7, 0x7a, 0xa1, 0xc5, 0xda, 0x86, 0x23, 0x94, 0x39, 0xde, 0x57, 0x79, 0x65, 0x68, -0xe9, 0x77, 0xb5, 0x72, 0x78, 0x5f, 0x47, 0xc9, 0x46, 0x1c, 0xc1, 0x85, 0x59, 0xfa, 0xf4, 0x1a, -0x81, 0xdf, 0x1b, 0xce, 0xe5, 0x52, 0x47, 0x1b, 0x4f, 0xe9, 0xae, 0xd7, 0x72, 0x3f, 0x29, 0xb8, -0x60, 0x4e, 0xff, 0xd3, 0xe9, 0xf5, 0x4c, 0xca, 0xae, 0xa2, 0xaf, 0xb1, 0x6f, 0xc4, 0x2a, 0xca, -0x1c, 0x8d, 0x73, 0xcb, 0xd5, 0x38, 0x37, 0x2a, 0xa1, 0x81, 0xdb, 0x55, 0xca, 0xd0, 0x25, 0x5d, -0x7d, 0x4e, 0x88, 0xf6, 0xb6, 0x65, 0xa3, 0x9c, 0x9f, 0x87, 0xef, 0x99, 0xc8, 0xcf, 0xe9, 0x93, -0x7a, 0x52, 0x51, 0x1b, 0xa1, 0x73, 0x4c, 0xf3, 0xde, 0xd0, 0x03, 0x09, 0x5d, 0x21, 0x73, 0xde, -0x39, 0xcc, 0x79, 0x1b, 0x35, 0x2a, 0x73, 0x5c, 0xe8, 0x32, 0xbd, 0xf3, 0xd3, 0xab, 0x18, 0x99, -0xeb, 0x17, 0x49, 0xbd, 0x66, 0xa5, 0x5c, 0x48, 0x3a, 0xcb, 0x9c, 0xe4, 0xba, 0x03, 0xd5, 0xc3, -0x51, 0x08, 0x73, 0x49, 0xbf, 0x32, 0xb6, 0xee, 0xc0, 0x03, 0x62, 0x2d, 0x61, 0xec, 0x69, 0x98, -0x13, 0x36, 0x43, 0x21, 0x48, 0x90, 0xc3, 0x35, 0x38, 0x94, 0xa1, 0xfb, 0xac, 0x14, 0xf2, 0x14, -0x8e, 0x0f, 0xec, 0x71, 0x3a, 0x29, 0xdb, 0x9e, 0x2b, 0xe9, 0xbf, 0x91, 0x88, 0x65, 0x3f, 0x9f, -0x68, 0xfe, 0x95, 0x6f, 0x9d, 0xef, 0x57, 0x35, 0xeb, 0x14, 0xfd, 0x1a, 0x9d, 0x80, 0xa1, 0xe4, -0x3d, 0xbc, 0x4f, 0x32, 0xd2, 0xb8, 0x91, 0x3d, 0xaf, 0x8e, 0x39, 0xcb, 0x1e, 0x5f, 0xe1, 0xaf, -0x0e, 0xe1, 0x3c, 0x84, 0xfc, 0xd2, 0xec, 0xc3, 0xfb, 0x0e, 0x1f, 0x38, 0x7c, 0xa0, 0xea, 0xec, -0x28, 0xcc, 0xf3, 0xc0, 0x8a, 0xea, 0x93, 0xd0, 0xfc, 0x82, 0xc0, 0xaf, 0x1f, 0x43, 0x0e, 0x6b, -0x05, 0x5b, 0x14, 0x63, 0x54, 0x95, 0x13, 0x18, 0xda, 0xa2, 0xe9, 0xd1, 0x0d, 0x42, 0xa2, 0xd2, -0xf6, 0x9b, 0xe9, 0xb8, 0x04, 0xc4, 0x36, 0xbb, 0x13, 0xe6, 0x48, 0x59, 0xd8, 0x82, 0xe1, 0x97, -0x46, 0x12, 0xeb, 0x30, 0xfe, 0x9c, 0xa4, 0xd6, 0xbd, 0x26, 0x2d, 0x7f, 0xd5, 0x3b, 0x34, 0x4b, -0x32, 0xd6, 0x22, 0x98, 0xf5, 0x85, 0x6a, 0x98, 0x65, 0x29, 0x82, 0x2b, 0x91, 0x97, 0x33, 0x84, -0xe7, 0xb2, 0x16, 0x31, 0x57, 0x66, 0x1b, 0x20, 0x64, 0x87, 0x63, 0xca, 0x99, 0xaa, 0x43, 0xa2, -0x6c, 0x8b, 0x3e, 0xb9, 0x1f, 0x15, 0xf9, 0xf2, 0x7a, 0x92, 0xe5, 0x28, 0xaf, 0x11, 0x84, 0x54, -0x81, 0x17, 0x4b, 0xa7, 0x75, 0x17, 0xfd, 0xbe, 0x44, 0x38, 0x47, 0x40, 0xcd, 0x4c, 0x27, 0xe8, -0xaf, 0x0c, 0x7b, 0xf0, 0x6d, 0x80, 0x2b, 0x43, 0x8b, 0x13, 0x4f, 0x43, 0xde, 0xd8, 0x70, 0x78, -0xe1, 0x35, 0x74, 0x8a, 0xeb, 0x4a, 0x71, 0x82, 0x08, 0xcb, 0xfa, 0x00, 0xcb, 0xd2, 0x4e, 0x13, -0xd1, 0xfa, 0x38, 0xed, 0x8b, 0xdc, 0xe9, 0x84, 0x59, 0xbd, 0x39, 0x66, 0xc2, 0x9d, 0x2b, 0x43, -0xd9, 0x1c, 0xef, 0x50, 0x72, 0xaf, 0x63, 0x83, 0x36, 0xd6, 0xe5, 0x12, 0xbd, 0xc3, 0x5b, 0x1d, -0x05, 0xff, 0x50, 0xc8, 0xaa, 0xd8, 0x0e, 0x0d, 0xfb, 0x87, 0x23, 0x46, 0x59, 0xcf, 0xa7, 0x32, -0x0c, 0x2d, 0x43, 0x6b, 0x74, 0x52, 0x95, 0xdd, 0x12, 0x3a, 0x29, 0xf5, 0xe8, 0x65, 0x5e, 0xef, -0xb1, 0x28, 0xd6, 0x43, 0xdf, 0x69, 0xd2, 0x85, 0x2e, 0x48, 0x8d, 0x8c, 0x99, 0x26, 0xd9, 0x17, -0xcb, 0x56, 0x4e, 0xa3, 0x0c, 0x9e, 0x8d, 0x1c, 0x98, 0x3e, 0xaa, 0xa6, 0xe9, 0xc0, 0xcd, 0x29, -0x7a, 0xa5, 0xc9, 0x32, 0x33, 0x58, 0x96, 0x31, 0x3c, 0x9f, 0x08, 0x29, 0x36, 0xfc, 0xb6, 0x90, -0xdd, 0x16, 0x9d, 0x1e, 0xd4, 0x8b, 0xd7, 0x78, 0x34, 0xdc, 0x58, 0xc3, 0x32, 0xaa, 0x85, 0x76, -0x4f, 0x92, 0x2e, 0xe6, 0xf5, 0xc7, 0x7f, 0x76, 0xa0, 0xed, 0x82, 0x90, 0xe0, 0x28, 0x07, 0x8c, -0x3b, 0x49, 0x71, 0xd9, 0x26, 0xd1, 0x5e, 0xa3, 0x01, 0x7f, 0x73, 0x5f, 0x78, 0x1a, 0xf2, 0xc3, -0x66, 0x3e, 0xc5, 0x9c, 0x25, 0x28, 0x7c, 0x41, 0xb5, 0xa6, 0x51, 0xa0, 0x33, 0x42, 0x4f, 0xa4, -0xe8, 0x61, 0x8e, 0x3f, 0xd1, 0x7b, 0x17, 0x9f, 0x03, 0x40, 0x3c, 0x92, 0x7d, 0xaf, 0xd2, 0xbd, -0xdd, 0x9f, 0xc8, 0xf7, 0x8c, 0x82, 0x90, 0xed, 0x1d, 0x40, 0x54, 0xd9, 0xbf, 0x2e, 0xd4, 0x7c, -0x28, 0xc1, 0x9c, 0xe6, 0x27, 0x72, 0xd4, 0x48, 0x1a, 0x8c, 0x27, 0x71, 0xb6, 0xf4, 0xd0, 0xba, -0xb7, 0x8b, 0xe8, 0xe7, 0x77, 0x2f, 0x4d, 0x4d, 0xfe, 0x94, 0x9e, 0xa4, 0xc6, 0xb0, 0xb5, 0x8e, -0xa9, 0xba, 0x88, 0x51, 0x3c, 0xd7, 0xb1, 0x60, 0x14, 0x92, 0xba, 0x5d, 0x41, 0x6f, 0xdd, 0xb4, -0x8f, 0x9b, 0xd7, 0x21, 0x7e, 0x59, 0x22, 0xd6, 0xaa, 0x68, 0x97, 0x71, 0xa9, 0x13, 0x72, 0x68, -0xc7, 0x5e, 0x7a, 0xdd, 0x88, 0xe4, 0x35, 0x01, 0x3d, 0xef, 0x8f, 0x71, 0x6e, 0xc3, 0x39, 0x56, -0x99, 0xf3, 0xf3, 0x97, 0x43, 0xda, 0x0e, 0xca, 0xa6, 0x55, 0xe0, 0x4a, 0xcd, 0x77, 0x39, 0x38, -0xd3, 0x5c, 0x15, 0x7a, 0x27, 0x39, 0x7f, 0xa5, 0xb4, 0x1d, 0xc9, 0xbd, 0x82, 0x15, 0x64, 0xf7, -0x48, 0x8c, 0x52, 0x07, 0x8f, 0xd2, 0xfa, 0x53, 0xba, 0xa7, 0x14, 0xd7, 0xf5, 0x5e, 0xc8, 0xfb, -0xc2, 0x2a, 0xdd, 0xf5, 0x70, 0x15, 0x51, 0xa7, 0x2f, 0xd0, 0xde, 0xbf, 0x2b, 0xa5, 0x86, 0x14, -0xbe, 0x0a, 0x6a, 0xf5, 0xce, 0x35, 0xab, 0xe1, 0x2a, 0xdd, 0xf5, 0x38, 0xfb, 0xce, 0x71, 0xc0, -0x4b, 0xc3, 0xe1, 0x57, 0xea, 0x86, 0xc7, 0x68, 0xcf, 0xf5, 0x9c, 0xa4, 0xdd, 0x2b, 0xa4, 0x58, -0xa9, 0xfd, 0xa3, 0xd4, 0xdf, 0x6b, 0x74, 0x4a, 0x9e, 0x84, 0xf3, 0xb5, 0x58, 0xdb, 0x95, 0xb3, -0x7e, 0xf7, 0x23, 0x49, 0x27, 0x34, 0x36, 0xc9, 0x75, 0x4f, 0xc4, 0x63, 0x94, 0x36, 0xc3, 0x6f, -0xe0, 0x1b, 0xa9, 0x94, 0xd6, 0xa2, 0x51, 0x4d, 0xbe, 0x16, 0xb3, 0xc5, 0x70, 0x5a, 0xeb, 0x21, -0xe6, 0xbe, 0x52, 0x82, 0x47, 0xce, 0x92, 0x93, 0x60, 0x45, 0x99, 0x22, 0x97, 0xf1, 0xe9, 0x4a, -0x59, 0xcf, 0x79, 0x93, 0x96, 0x63, 0xdf, 0xcf, 0x4f, 0x21, 0x16, 0x9c, 0x24, 0xd9, 0x3e, 0xa9, -0x83, 0xa0, 0xdd, 0x70, 0xb4, 0x8e, 0x67, 0xd7, 0xb5, 0x0c, 0x4b, 0x1e, 0xda, 0x1d, 0x7d, 0xb1, -0x52, 0x40, 0x7b, 0xea, 0xee, 0x68, 0x94, 0xdf, 0x3d, 0xfe, 0xa1, 0xb0, 0x51, 0xae, 0xa2, 0x55, -0x9b, 0x8b, 0x0b, 0xb5, 0xfd, 0x72, 0x8b, 0x9d, 0x08, 0xff, 0xc2, 0x9c, 0x35, 0xb0, 0x10, 0x7b, -0xa6, 0x79, 0xdd, 0x7b, 0x0f, 0x49, 0x59, 0xb1, 0xf4, 0x49, 0x7a, 0xcb, 0x0b, 0xe2, 0x04, 0xcc, -0xf7, 0xa2, 0x3a, 0x47, 0x42, 0x01, 0xd8, 0x7e, 0x63, 0x04, 0x72, 0x20, 0xc7, 0x5b, 0x28, 0x4e, -0xcd, 0x23, 0xff, 0x61, 0x2a, 0x6c, 0x70, 0x12, 0x77, 0xd7, 0x29, 0x15, 0x83, 0x35, 0x1c, 0x90, -0x8b, 0xc1, 0xe2, 0xaa, 0xa5, 0xf4, 0x52, 0x0d, 0xd2, 0x14, 0x4b, 0xc8, 0xcb, 0x39, 0x98, 0x24, -0x7d, 0x73, 0xe2, 0xbd, 0x51, 0xc7, 0x2e, 0xb2, 0xfc, 0xf3, 0xde, 0xe8, 0x92, 0xb3, 0x46, 0x94, -0xd0, 0x9a, 0x86, 0xe5, 0xd5, 0xea, 0x84, 0x74, 0x35, 0xc7, 0x2f, 0xb9, 0xed, 0x21, 0xff, 0x70, -0xe8, 0xb4, 0xec, 0x97, 0xb2, 0xc4, 0xf7, 0x63, 0xaf, 0x28, 0x0e, 0xa9, 0x86, 0x4e, 0x80, 0x63, -0x4e, 0xdd, 0xc8, 0xfb, 0x58, 0x83, 0xc3, 0x8d, 0xdf, 0x6a, 0x1c, 0x41, 0x1c, 0x72, 0xe1, 0x6c, -0x31, 0xdc, 0xf6, 0x30, 0xe7, 0xac, 0xf7, 0x6e, 0x25, 0x7d, 0xcc, 0x60, 0xd2, 0x9e, 0xc6, 0xe2, -0xc2, 0x7a, 0xbb, 0xc9, 0x1e, 0xf0, 0x93, 0x8e, 0xc4, 0x78, 0x1d, 0xf2, 0x85, 0xcb, 0x66, 0xd0, -0xac, 0x8a, 0x73, 0x44, 0x31, 0xbe, 0xaf, 0xa0, 0xd9, 0x68, 0x59, 0x2e, 0x9f, 0x8c, 0x33, 0x65, -0x9c, 0xdc, 0x7b, 0x16, 0xfc, 0x21, 0x6b, 0xd5, 0x87, 0xe0, 0x2f, 0x22, 0xcb, 0x0a, 0xcf, 0x42, -0x00, 0xdd, 0x01, 0x74, 0xfb, 0xb1, 0x55, 0x7e, 0x84, 0xdb, 0x96, 0xe4, 0xee, 0x63, 0xa1, 0x3b, -0x5a, 0x76, 0xd3, 0xb4, 0x1c, 0x2c, 0xfe, 0x62, 0xec, 0xe1, 0xec, 0x2f, 0xb1, 0xfd, 0x85, 0xc6, -0x0f, 0xc1, 0x82, 0xcf, 0x55, 0xfc, 0x75, 0xa5, 0xb7, 0x18, 0xe1, 0xf5, 0x2c, 0xe4, 0xe1, 0x33, -0x07, 0x9f, 0xb9, 0x58, 0x56, 0x6e, 0x28, 0xbb, 0x68, 0x95, 0xae, 0x12, 0x72, 0xd1, 0x5d, 0xc6, -0xee, 0x52, 0x28, 0x43, 0x77, 0x21, 0xbb, 0xcb, 0xa1, 0x10, 0x31, 0x48, 0x47, 0x67, 0x29, 0x30, -0x07, 0x0b, 0xe4, 0xe0, 0xec, 0x76, 0x85, 0xb0, 0xc9, 0x80, 0xe3, 0xe8, 0x59, 0x90, 0x51, 0x0e, -0x37, 0xe1, 0x7b, 0x21, 0xc6, 0xee, 0x86, 0xc5, 0xb0, 0x10, 0x5b, 0x46, 0xcf, 0x62, 0x7c, 0x78, -0x27, 0xc8, 0xb2, 0x3b, 0xa6, 0xd5, 0xce, 0x66, 0x2c, 0x46, 0x9c, 0xcf, 0x09, 0x5b, 0xa5, 0x6e, -0xa8, 0x88, 0x9e, 0x39, 0x84, 0x69, 0x15, 0x83, 0x65, 0x42, 0xfd, 0xdd, 0xce, 0xd1, 0xf6, 0xf1, -0x17, 0x04, 0xff, 0xb1, 0x4a, 0xb7, 0x08, 0xcb, 0x31, 0x33, 0xa4, 0xb8, 0x34, 0xa5, 0x99, 0xf5, -0x69, 0x9e, 0x90, 0x25, 0x59, 0xfe, 0xab, 0x1b, 0x69, 0x67, 0x0d, 0x3c, 0x8c, 0x65, 0x7b, 0xc3, -0xd9, 0x50, 0x0c, 0x48, 0xa1, 0xd0, 0x5d, 0x47, 0x6e, 0x35, 0x41, 0xbb, 0xbc, 0x09, 0xbf, 0xbf, -0xc4, 0xd4, 0x9a, 0x67, 0x84, 0x65, 0x62, 0x84, 0xd1, 0x3a, 0xaf, 0xa5, 0x58, 0xa3, 0xd2, 0x76, -0x8d, 0x4a, 0xe7, 0x73, 0x4d, 0x1f, 0xcc, 0xac, 0xa9, 0x98, 0x39, 0x78, 0x06, 0x17, 0xb3, 0x47, -0x21, 0xed, 0x00, 0xe4, 0x3d, 0x48, 0xa2, 0xdf, 0x1e, 0x9f, 0xd6, 0x2e, 0xab, 0xa2, 0xff, 0xfb, -0x7f, 0x93, 0xae, 0xc0, 0xde, 0x47, 0x0a, 0x30, 0xdd, 0xd2, 0x15, 0xaf, 0xdd, 0xf7, 0x82, 0x85, -0x74, 0x4e, 0x92, 0x1b, 0x6c, 0x76, 0x38, 0x9a, 0x38, 0x3a, 0x2c, 0xdd, 0xe3, 0x04, 0x7f, 0xe2, -0xab, 0xdc, 0x9b, 0x35, 0x43, 0x47, 0x86, 0x1c, 0x55, 0xbf, 0x7d, 0xf1, 0xba, 0x9d, 0xbb, 0x01, -0x67, 0xc6, 0xbe, 0x51, 0x10, 0x76, 0x38, 0xae, 0xaf, 0x07, 0xe3, 0x91, 0xa1, 0x79, 0x1b, 0x6c, -0x70, 0x28, 0xe1, 0xf0, 0xfc, 0x76, 0xac, 0x00, 0xc3, 0x6d, 0x99, 0xe1, 0x7e, 0x30, 0x1e, 0x4a, -0xcc, 0xdb, 0x68, 0x04, 0xe4, 0x7f, 0x8d, 0x05, 0xf8, 0xd0, 0x5e, 0x06, 0xb3, 0x38, 0xc9, 0x57, -0xc9, 0xe3, 0xa9, 0x91, 0x75, 0x15, 0x79, 0xce, 0x0d, 0xde, 0x1f, 0x61, 0xad, 0x7e, 0x84, 0xf2, -0xd3, 0x23, 0xf8, 0x6b, 0x56, 0x40, 0x97, 0x28, 0xf4, 0x49, 0xcb, 0x64, 0xb1, 0x0f, 0xc1, 0x44, -0xd6, 0x5a, 0xb0, 0x37, 0x23, 0xb4, 0x4a, 0x53, 0x93, 0xa0, 0xd5, 0x81, 0x23, 0x43, 0x52, 0xbf, -0x0d, 0x78, 0x06, 0x7a, 0xfd, 0xfa, 0x65, 0x60, 0x2c, 0x7a, 0xc8, 0x06, 0x48, 0x17, 0x0d, 0xde, -0xad, 0xf8, 0x6b, 0xb6, 0x2f, 0x93, 0x3d, 0x55, 0x7f, 0x30, 0xaa, 0x87, 0x3f, 0x04, 0x33, 0xcf, -0x4a, 0x16, 0xe4, 0x25, 0x46, 0xc3, 0x96, 0xd8, 0xe4, 0xf3, 0xa3, 0x21, 0xd0, 0x65, 0x2b, 0x03, -0x88, 0x61, 0x66, 0x25, 0x52, 0xd8, 0x0d, 0x46, 0x94, 0x56, 0x0c, 0x51, 0x75, 0x27, 0xa6, 0x0a, -0x95, 0x08, 0x99, 0x2b, 0xb0, 0x67, 0xf2, 0x34, 0x52, 0x08, 0x27, 0x98, 0x09, 0xc6, 0x6c, 0x51, -0x06, 0x63, 0x28, 0x51, 0x5a, 0xfb, 0x25, 0xab, 0x47, 0x38, 0x9a, 0xcd, 0x51, 0x9d, 0xb2, 0xa6, -0xa0, 0x09, 0x21, 0xd8, 0xc4, 0xf9, 0x1b, 0xe8, 0x24, 0x81, 0x63, 0x23, 0xf6, 0xfa, 0xa6, 0x9f, -0x7d, 0x08, 0x86, 0xa4, 0xae, 0x90, 0xec, 0x07, 0x15, 0x8d, 0x1a, 0x61, 0x1e, 0xd6, 0x90, 0xb4, -0x0a, 0xf0, 0x34, 0x97, 0x18, 0xc4, 0x3c, 0xa9, 0x3c, 0x1f, 0xaf, 0xfa, 0x89, 0x12, 0xd7, 0x66, -0x94, 0x48, 0xe5, 0x60, 0x09, 0xc8, 0x2d, 0x99, 0xa9, 0x35, 0xca, 0x1c, 0xae, 0x83, 0x99, 0xcb, -0x55, 0x91, 0xd6, 0x22, 0xf7, 0x4a, 0xfe, 0xf4, 0x8d, 0x3d, 0x69, 0x56, 0xec, 0x76, 0x6c, 0xb9, -0xb4, 0x1a, 0x0c, 0xe9, 0xba, 0x20, 0xec, 0x0d, 0x05, 0x4b, 0x21, 0x15, 0x4f, 0x5a, 0xca, 0x90, -0x06, 0xb5, 0xcd, 0x39, 0x8a, 0x69, 0x8c, 0xca, 0x5c, 0x1c, 0xb5, 0x66, 0xaa, 0xcd, 0x1e, 0x86, -0x4f, 0x66, 0xad, 0x15, 0x98, 0x1c, 0x23, 0x6c, 0xa9, 0x14, 0xa7, 0xa2, 0x17, 0x93, 0x56, 0x15, -0xe7, 0x93, 0x15, 0xd2, 0x7c, 0x30, 0x38, 0xbb, 0x70, 0xfc, 0x3a, 0x78, 0x1d, 0x38, 0xdb, 0xbb, -0x45, 0x81, 0x2c, 0xdb, 0x3f, 0x9f, 0xc6, 0x94, 0x1a, 0x9e, 0x48, 0x3a, 0x5a, 0xb5, 0xf1, 0x22, -0xf5, 0xc2, 0x1e, 0x34, 0xef, 0x16, 0xfa, 0x96, 0x04, 0x49, 0x14, 0x0a, 0xe8, 0x0f, 0x64, 0xc6, -0xb4, 0xeb, 0x8e, 0x0e, 0x1d, 0x1d, 0x9e, 0x9f, 0x70, 0x02, 0x87, 0x96, 0x22, 0x1d, 0x32, 0x84, -0xca, 0x28, 0x77, 0x4e, 0x65, 0xc4, 0x54, 0xb7, 0x61, 0x9a, 0x6d, 0x9f, 0x91, 0xe6, 0xb6, 0x79, -0x0d, 0xd8, 0x06, 0x80, 0x1d, 0x52, 0x7d, 0xd2, 0x42, 0xc6, 0x04, 0xd9, 0x53, 0x45, 0x59, 0xe2, -0x67, 0x07, 0x43, 0x79, 0xf3, 0x22, 0xbc, 0x2b, 0x26, 0xa2, 0x49, 0x15, 0x01, 0xb2, 0x43, 0xa3, -0xf8, 0x76, 0x3e, 0x33, 0xbd, 0xa6, 0xf3, 0xb7, 0x18, 0x41, 0x6e, 0x14, 0x6b, 0xf4, 0xbc, 0x3a, -0x66, 0x94, 0x1e, 0x95, 0x83, 0xfc, 0x6d, 0x20, 0x9c, 0x9d, 0xb7, 0x8a, 0xf3, 0x59, 0xa5, 0xe5, -0x63, 0x22, 0x3f, 0xc5, 0xe0, 0xf4, 0xc5, 0x00, 0x43, 0xcc, 0x60, 0xc6, 0x5f, 0x4c, 0x43, 0xfb, -0x1e, 0x34, 0xe9, 0x64, 0x54, 0xb1, 0xfe, 0xec, 0xfd, 0xa9, 0xfd, 0x7f, 0x1d, 0xf6, 0x3f, 0xad, -0x05, 0xec, 0x98, 0xa8, 0x19, 0x92, 0xab, 0xaa, 0xfe, 0x60, 0xd3, 0x1d, 0x3e, 0x8d, 0xfd, 0x61, -0x6c, 0x4e, 0xc4, 0x90, 0xf3, 0xe9, 0xb8, 0x70, 0x28, 0x51, 0xfa, 0x15, 0x63, 0x76, 0xe0, 0x53, -0x1c, 0xed, 0x2f, 0x21, 0x7f, 0x67, 0xc2, 0xa7, 0xcc, 0xfb, 0x0c, 0xc6, 0x88, 0x80, 0x51, 0x58, -0x95, 0xd1, 0xed, 0xfa, 0xc5, 0xc9, 0x74, 0xcd, 0x9d, 0x3e, 0xe5, 0x85, 0xf9, 0x3e, 0x1e, 0x23, -0x4f, 0xb8, 0x30, 0x4e, 0x21, 0xb6, 0x52, 0xa2, 0xd5, 0x6c, 0x0b, 0x9f, 0x03, 0x73, 0x09, 0x2c, -0xd5, 0x35, 0x2a, 0x35, 0xf3, 0x6f, 0xc7, 0x90, 0xdb, 0x35, 0x9c, 0x40, 0x78, 0x15, 0x6e, 0x9a, -0x8f, 0x78, 0x18, 0xd5, 0xcd, 0xf7, 0x10, 0x8e, 0xd1, 0x2c, 0x75, 0xf9, 0x18, 0x54, 0x3a, 0x8f, -0x0f, 0x80, 0x97, 0x70, 0x44, 0x5c, 0xe1, 0x36, 0xd3, 0x2e, 0xb3, 0x69, 0x23, 0x22, 0x3b, 0x4a, -0x39, 0x1c, 0x88, 0xa9, 0x14, 0x9b, 0xc7, 0xc5, 0x51, 0x1c, 0x13, 0xe8, 0xc3, 0x75, 0x6a, 0xe6, -0x1a, 0xe5, 0x72, 0x8d, 0x00, 0x46, 0xb4, 0x91, 0xb3, 0x57, 0x09, 0x3a, 0x9f, 0xc5, 0x12, 0xbb, -0x53, 0x98, 0x8a, 0x65, 0x16, 0x35, 0x80, 0x81, 0xeb, 0xa5, 0x72, 0xbd, 0x74, 0x45, 0x55, 0x62, -0xff, 0x67, 0xc8, 0xe4, 0xf8, 0x16, 0xd6, 0x82, 0x7a, 0x79, 0xd7, 0x2f, 0x3e, 0x9a, 0x0a, 0xd3, -0xe2, 0x6f, 0x19, 0xa1, 0x28, 0xc0, 0x61, 0x8f, 0x7f, 0x76, 0x8e, 0xd4, 0x06, 0x86, 0xe4, 0x32, -0xc5, 0xcb, 0x23, 0xed, 0xd2, 0x96, 0x50, 0xbd, 0x34, 0x88, 0x28, 0x58, 0x5b, 0xad, 0x2d, 0x58, -0x97, 0x22, 0xf2, 0x31, 0x70, 0x0e, 0x34, 0xc2, 0x50, 0x16, 0xe5, 0x3a, 0x19, 0x1d, 0x62, 0xf4, -0x48, 0x5c, 0xa3, 0x29, 0xb8, 0x54, 0x4c, 0xe3, 0x1c, 0xeb, 0xe4, 0x0c, 0xe0, 0xf8, 0xc9, 0xe3, -0xb9, 0x56, 0x3b, 0xb3, 0xec, 0xf0, 0x49, 0x8d, 0x29, 0x2c, 0xfd, 0x2e, 0x9f, 0xca, 0x58, 0x2a, -0x7b, 0x52, 0x3e, 0x3f, 0x4c, 0xd9, 0x1f, 0x28, 0xb5, 0xcf, 0x72, 0xf8, 0x94, 0x9c, 0xd8, 0x97, -0xdf, 0xd9, 0x41, 0x7c, 0xf1, 0xd8, 0x90, 0xa3, 0xcf, 0x28, 0x68, 0xa9, 0x05, 0x53, 0x78, 0xd3, -0xb4, 0x30, 0x74, 0x9c, 0xd6, 0xe8, 0x88, 0x92, 0x4a, 0x96, 0x90, 0x41, 0xc9, 0x91, 0x74, 0x92, -0x07, 0x85, 0x16, 0x03, 0x9d, 0x76, 0xe6, 0xd6, 0x19, 0x91, 0x7f, 0xf1, 0xfc, 0x14, 0x31, 0x31, -0x74, 0x46, 0x3b, 0xcf, 0x8c, 0x39, 0x23, 0x07, 0x6d, 0xf5, 0x27, 0x22, 0x7a, 0xc7, 0xec, 0xcb, -0x94, 0x90, 0x3b, 0xad, 0x84, 0xd7, 0x15, 0xbd, 0xa3, 0x9a, 0x4b, 0x41, 0xee, 0x89, 0xce, 0x5f, -0x63, 0x39, 0x66, 0x2e, 0xc7, 0x12, 0x1a, 0x9f, 0x5e, 0x4a, 0xf8, 0x92, 0x52, 0x7a, 0xff, 0x5f, -0x94, 0x22, 0xd6, 0xcd, 0x24, 0x23, 0xca, 0x6f, 0xa9, 0x72, 0xc8, 0x92, 0xac, 0xa0, 0xe0, 0x29, -0x7f, 0xad, 0x9d, 0x14, 0xa2, 0x69, 0xc8, 0x84, 0xb6, 0x8c, 0xa5, 0xe0, 0x6f, 0xd7, 0x64, 0x68, -0xca, 0xee, 0xf9, 0xeb, 0x27, 0xc6, 0x91, 0xb3, 0xab, 0x70, 0xf6, 0x8a, 0xd3, 0xb5, 0x0b, 0xdd, -0x50, 0xf8, 0xc8, 0x01, 0xb9, 0x21, 0x0a, 0xdf, 0xfe, 0x35, 0x73, 0xce, 0xcf, 0x39, 0x21, 0xec, -0xaf, 0xbd, 0xa0, 0xee, 0x91, 0x6a, 0xb6, 0xbe, 0x1c, 0x65, 0xae, 0xf5, 0xe2, 0x8e, 0x42, 0x40, -0xd9, 0xc6, 0xce, 0x63, 0x60, 0xae, 0xdb, 0x85, 0xf8, 0x91, 0xb2, 0x8d, 0xb5, 0xec, 0xc7, 0x9a, -0x0d, 0x25, 0xde, 0xdb, 0xa2, 0xbc, 0x82, 0xb3, 0x4d, 0x22, 0xbc, 0x9f, 0x76, 0x98, 0xe0, 0xec, -0xbe, 0x49, 0xd1, 0xaf, 0x55, 0xc9, 0xa2, 0xd9, 0x8a, 0x4a, 0xd6, 0xc9, 0x9d, 0xa6, 0x92, 0xed, -0xc5, 0x6c, 0x1b, 0xd0, 0x8c, 0x5c, 0x85, 0x58, 0xf3, 0x05, 0xdd, 0xa3, 0x48, 0xc7, 0x65, 0xe4, -0x94, 0xc9, 0x42, 0x00, 0xa0, 0xf4, 0x38, 0x3c, 0x02, 0x30, 0x2b, 0x64, 0x44, 0x29, 0x74, 0x2d, -0x8e, 0xf8, 0xb8, 0x7e, 0x98, 0xd4, 0x94, 0x23, 0x3b, 0xf8, 0x2b, 0x44, 0xf2, 0xd2, 0x55, 0x1e, -0xf8, 0xe6, 0x3c, 0x2f, 0xac, 0x15, 0x31, 0x31, 0x87, 0x46, 0x5a, 0x1d, 0x5f, 0xf6, 0x62, 0xd4, -0xce, 0x36, 0x2b, 0x8e, 0x39, 0x29, 0xd7, 0x4a, 0x89, 0xed, 0xb0, 0x6a, 0xfb, 0x79, 0x2a, 0x0a, -0x89, 0x57, 0x3d, 0x4d, 0xba, 0x8e, 0xa8, 0xb5, 0xc8, 0x23, 0x4e, 0x9d, 0xe2, 0x73, 0xae, 0xa8, -0x56, 0x68, 0x05, 0xa9, 0x35, 0xc5, 0x15, 0xee, 0x19, 0xcb, 0x84, 0x45, 0xe9, 0xed, 0x6e, 0x53, -0x0c, 0x72, 0x5d, 0x70, 0xbf, 0x5b, 0x87, 0x2d, 0x4e, 0x30, 0xef, 0xc3, 0x7a, 0x84, 0xf8, 0x36, -0x5e, 0x49, 0x66, 0x1b, 0xcd, 0xc5, 0x7e, 0xf4, 0xdb, 0x4e, 0x67, 0x8d, 0xc5, 0x5a, 0xf0, 0x3d, -0x6f, 0x62, 0xce, 0xe7, 0x78, 0xa7, 0x25, 0x52, 0xbf, 0xe2, 0x87, 0x51, 0x8e, 0xe4, 0x33, 0xf6, -0xc5, 0xdd, 0xe8, 0x3f, 0xe1, 0x36, 0xb0, 0x2d, 0xc4, 0xd3, 0x38, 0xf3, 0xdd, 0x2f, 0x76, 0xf1, -0xf0, 0x7e, 0xa6, 0x3a, 0xb7, 0xc9, 0x17, 0x81, 0x51, 0xde, 0xa3, 0x74, 0xbf, 0x1b, 0xb0, 0xb4, -0x11, 0xa1, 0x5f, 0xf9, 0xb9, 0x9e, 0x6d, 0x75, 0x50, 0xfa, 0xbd, 0xa9, 0x9c, 0xfe, 0x51, 0xe4, -0xc4, 0xf0, 0x17, 0x79, 0x95, 0x89, 0xbc, 0xe4, 0x5a, 0xd1, 0x5e, 0x61, 0x59, 0x12, 0xe5, 0x2d, -0x55, 0xae, 0x61, 0x1e, 0xab, 0x0d, 0x67, 0xfa, 0x75, 0x61, 0x17, 0xe6, 0xe0, 0xf0, 0xaf, 0x0b, -0x1b, 0xa3, 0x59, 0x58, 0xa6, 0x55, 0x21, 0x9d, 0x01, 0xef, 0xa6, 0x63, 0x1b, 0x06, 0x7e, 0x3a, -0x59, 0x10, 0x15, 0xa7, 0xf5, 0xf6, 0x69, 0x27, 0x64, 0x2b, 0xd5, 0x83, 0x62, 0xdd, 0x57, 0xf6, -0x91, 0x1d, 0x1b, 0xb6, 0x67, 0xa2, 0x4b, 0xea, 0x5e, 0x65, 0x5f, 0xca, 0x4a, 0x93, 0x21, 0xc3, -0xae, 0x0a, 0xe2, 0x99, 0xd8, 0x37, 0x69, 0x5f, 0xad, 0x1f, 0x54, 0x48, 0x8a, 0xcf, 0xc5, 0x99, -0x22, 0xc7, 0xb5, 0x74, 0xea, 0x19, 0x3f, 0xd6, 0x2e, 0xbe, 0xa3, 0x9d, 0x9a, 0xba, 0x5d, 0xdd, -0x2f, 0xf6, 0x29, 0xd8, 0x49, 0x0f, 0x5f, 0xca, 0x30, 0x3a, 0x28, 0x76, 0xea, 0x7c, 0x65, 0x10, -0xf4, 0xea, 0x1b, 0x45, 0xc4, 0x2b, 0xeb, 0xd4, 0xe3, 0xd1, 0x15, 0xd8, 0xf6, 0xb7, 0xf9, 0x0b, -0xd4, 0x13, 0xf8, 0x46, 0x26, 0x53, 0x3d, 0xa9, 0x85, 0x9e, 0x26, 0x2a, 0xaa, 0x9e, 0xb3, 0x54, -0x82, 0x8c, 0xb1, 0xc6, 0x8b, 0x96, 0xa9, 0xfb, 0xbf, 0xf6, 0xac, 0xba, 0x5f, 0xea, 0xc6, 0x67, -0x93, 0xa3, 0x47, 0x47, 0x67, 0xab, 0xcd, 0x64, 0x77, 0x09, 0xfb, 0xfa, 0xc0, 0x1a, 0xb6, 0xbe, -0xf4, 0xd8, 0x2b, 0x74, 0x82, 0xfd, 0x66, 0xda, 0xf7, 0x72, 0x40, 0xb2, 0x64, 0x27, 0xbe, 0x79, -0x06, 0x20, 0x96, 0x8f, 0xf3, 0x13, 0xc0, 0xee, 0x8c, 0x19, 0xaa, 0x02, 0x9e, 0xc1, 0x82, 0xea, -0xa0, 0x01, 0xdf, 0x2b, 0x30, 0x83, 0x11, 0x7c, 0xff, 0xe5, 0x7f, 0x1b, 0xe1, 0x7b, 0xf8, 0xfb, -0x94, 0x13, 0x47, 0x2d, 0xf2, 0x5b, 0xf4, 0x1b, 0x72, 0x74, 0xe2, 0xaf, 0x42, 0x34, 0xe5, 0x8e, -0x44, 0x6c, 0x62, 0x5f, 0x02, 0xeb, 0x7a, 0x52, 0x69, 0x74, 0x38, 0x59, 0xc7, 0xbf, 0xbd, 0x65, -0x73, 0x30, 0x41, 0xa7, 0x3e, 0xcd, 0xdd, 0xd4, 0xde, 0xb6, 0x45, 0xd8, 0xee, 0x2c, 0xf5, 0x0d, -0xa5, 0xb4, 0x08, 0x53, 0xa9, 0x07, 0x14, 0xa7, 0x8b, 0xf2, 0xa0, 0xbd, 0xb8, 0x06, 0x8c, 0x81, -0x21, 0x6d, 0x79, 0x18, 0xc3, 0x80, 0x31, 0x72, 0x4a, 0x28, 0xc4, 0x48, 0xf9, 0x1e, 0x7e, 0x56, -0x7d, 0xdb, 0x5d, 0xac, 0xee, 0xe7, 0xb5, 0xff, 0x43, 0x28, 0xe1, 0xf1, 0x79, 0x01, 0xd5, 0x59, -0x54, 0xad, 0xee, 0x0f, 0x65, 0xd3, 0x89, 0x9a, 0x65, 0xaf, 0x8a, 0x75, 0xeb, 0x65, 0x6f, 0x30, -0xaf, 0xac, 0xed, 0x7e, 0xa8, 0xfa, 0x50, 0x3d, 0xb8, 0xf5, 0x65, 0x1a, 0xaf, 0x9f, 0x9e, 0x16, -0xa7, 0xac, 0x71, 0xec, 0xa0, 0x3c, 0xe8, 0xea, 0x04, 0xc9, 0x8f, 0x10, 0x0c, 0xe7, 0x50, 0xae, -0xbc, 0xae, 0xae, 0xde, 0xbc, 0xb3, 0x71, 0xb3, 0x5c, 0x5d, 0xd4, 0x05, 0x16, 0x01, 0xd9, 0xab, -0x58, 0xa6, 0xb9, 0xaa, 0x0e, 0x66, 0xe1, 0x2c, 0x60, 0x32, 0x93, 0x86, 0xfd, 0x8d, 0x50, 0x8f, -0xab, 0x0b, 0x9c, 0xb2, 0x77, 0x5e, 0x17, 0x49, 0x31, 0x6e, 0xbd, 0x6f, 0x40, 0x55, 0x05, 0x9d, -0xba, 0xd7, 0x93, 0x9a, 0x7f, 0xe6, 0x70, 0x3d, 0xce, 0x66, 0xd6, 0x43, 0xec, 0x36, 0x87, 0x4d, -0xde, 0x12, 0xc8, 0xf9, 0xb2, 0x38, 0x83, 0xf7, 0x11, 0x58, 0x8b, 0xe9, 0x0c, 0xde, 0x73, 0x60, -0xab, 0xfe, 0x08, 0x6c, 0xc5, 0xf5, 0x60, 0xfd, 0xb2, 0x07, 0xae, 0x2c, 0xc6, 0x92, 0xc1, 0x22, -0xd6, 0x12, 0xec, 0x0f, 0x73, 0x3d, 0x96, 0x40, 0xce, 0xbc, 0x6e, 0xf5, 0x00, 0xb4, 0xc8, 0xd5, -0xc8, 0xb1, 0xd9, 0x0e, 0x3d, 0xab, 0x9e, 0x44, 0x09, 0x73, 0xe1, 0xbc, 0x2e, 0x64, 0xce, 0x2b, -0xd0, 0xb5, 0xb8, 0x74, 0x10, 0xfc, 0x87, 0x3f, 0x54, 0xf7, 0xcb, 0x18, 0xfb, 0x3a, 0x92, 0xe3, -0x7e, 0x04, 0x64, 0xc0, 0x78, 0x03, 0x72, 0x49, 0x7e, 0xb1, 0x93, 0x4d, 0xb5, 0x50, 0x98, 0xbd, -0x96, 0x21, 0xf1, 0x36, 0xc2, 0xce, 0x2c, 0xb4, 0xc4, 0x6a, 0x3e, 0x62, 0xcc, 0x7e, 0xff, 0x48, -0xd8, 0x42, 0xd0, 0xa0, 0x19, 0xb9, 0xcc, 0x23, 0xd5, 0x48, 0x1b, 0x6a, 0xb6, 0x48, 0x08, 0x17, -0xb6, 0x82, 0xf9, 0x84, 0xd0, 0xa1, 0xcf, 0x2b, 0xb3, 0x07, 0x1c, 0x3d, 0x59, 0x26, 0xff, 0xd6, -0x90, 0xd0, 0xc5, 0x90, 0xed, 0xc6, 0x6d, 0xdf, 0xfe, 0xb5, 0xbd, 0x08, 0x79, 0x2c, 0x7d, 0x90, -0x67, 0xf1, 0x9d, 0x4f, 0x67, 0x65, 0xaf, 0xb4, 0x21, 0xbc, 0xfd, 0xbc, 0x93, 0x44, 0xd3, 0x4d, -0x1e, 0x0d, 0x35, 0x92, 0xcd, 0xb0, 0x55, 0x1a, 0x67, 0x1d, 0xf1, 0x6f, 0x09, 0x77, 0x26, 0x75, -0xb5, 0xf2, 0xd2, 0xa8, 0x90, 0x79, 0x4a, 0x84, 0xae, 0x17, 0x25, 0xa6, 0xed, 0xac, 0x3b, 0x4f, -0x28, 0xb9, 0xda, 0x7e, 0x4c, 0xd2, 0x25, 0xcb, 0xde, 0x9f, 0xa2, 0xfc, 0xdc, 0xe8, 0xdf, 0x12, -0x3a, 0x85, 0x31, 0x9e, 0xfa, 0xac, 0x30, 0xa1, 0x77, 0xd5, 0x4e, 0xc1, 0xbf, 0xd5, 0x30, 0x12, -0xe8, 0x0f, 0xfe, 0x18, 0xe7, 0xf6, 0xb3, 0x9a, 0x8e, 0x1f, 0x92, 0x36, 0x0e, 0x85, 0x75, 0x43, -0xb2, 0x02, 0x75, 0x9d, 0x97, 0x7a, 0x42, 0x58, 0x32, 0xcc, 0xd0, 0xad, 0xcb, 0xce, 0xd4, 0xe9, -0x51, 0xda, 0x23, 0xee, 0x28, 0x84, 0x63, 0x29, 0xed, 0x00, 0x84, 0xf3, 0xc9, 0x8e, 0xbf, 0xe4, -0x97, 0xbd, 0xc8, 0x0b, 0x67, 0xb1, 0x6e, 0x68, 0x23, 0x62, 0xa9, 0x70, 0x6d, 0xc9, 0xd4, 0x23, -0x2e, 0x22, 0x9d, 0x86, 0x31, 0xa9, 0x3f, 0x75, 0x78, 0x90, 0x42, 0x91, 0x76, 0x66, 0x90, 0xf2, -0x73, 0x20, 0xad, 0x76, 0x16, 0x61, 0xbe, 0xd5, 0xbb, 0xd7, 0xb5, 0xeb, 0xa5, 0x9a, 0xe8, 0x77, -0x0f, 0x8d, 0x86, 0xc9, 0xd2, 0x5f, 0xa8, 0xfa, 0x03, 0x08, 0xf1, 0xcc, 0xb4, 0xe5, 0xfa, 0x1a, -0x38, 0xc6, 0x7a, 0x01, 0x2f, 0x43, 0x28, 0xa9, 0xf5, 0xc9, 0xff, 0x3c, 0x96, 0x53, 0x96, 0x7f, -0xac, 0xee, 0xa4, 0xd5, 0x7b, 0xb2, 0x89, 0xe1, 0x70, 0xc3, 0x08, 0xce, 0x87, 0x9b, 0x30, 0xf6, -0x96, 0x5c, 0x37, 0x3c, 0x64, 0xd6, 0x81, 0x3e, 0xec, 0xc4, 0xdf, 0xac, 0xf0, 0x62, 0xfc, 0xd5, -0x85, 0xee, 0x20, 0x8c, 0x0d, 0x14, 0x8a, 0xfe, 0xba, 0xe7, 0x00, 0xef, 0x02, 0x61, 0xf7, 0xed, -0x3b, 0x15, 0x3e, 0xc7, 0x14, 0xb8, 0xf9, 0xd2, 0xb0, 0x57, 0xc6, 0x15, 0xc6, 0xf4, 0x80, 0xff, -0xd2, 0xb0, 0x5f, 0x6e, 0x61, 0x19, 0x7a, 0x1d, 0x8e, 0x36, 0x3e, 0xdd, 0x11, 0x68, 0x4d, 0xc6, -0xb1, 0x43, 0xe3, 0xe6, 0x01, 0x53, 0xfd, 0xc7, 0xa0, 0xd0, 0x7a, 0xf6, 0x57, 0x0f, 0x2e, 0xb9, -0xa0, 0x96, 0xaf, 0x6d, 0x7f, 0x63, 0xf3, 0xe0, 0xc0, 0x71, 0x1c, 0x7d, 0x4c, 0xb3, 0x4f, 0xb1, -0x6c, 0x98, 0xe7, 0xfd, 0x09, 0x28, 0x28, 0x97, 0x67, 0x05, 0x1e, 0x73, 0x00, 0xd9, 0x25, 0x69, -0xdc, 0xac, 0x59, 0x25, 0x39, 0xa1, 0x59, 0x25, 0x71, 0xb9, 0x6b, 0xa1, 0x54, 0xb3, 0x48, 0x52, -0xee, 0xae, 0x83, 0x45, 0x9a, 0x35, 0x92, 0xca, 0xaa, 0x8f, 0xa1, 0xd3, 0xed, 0x03, 0x8f, 0x66, -0x8d, 0xa4, 0x06, 0xbf, 0xa3, 0x64, 0x2b, 0x59, 0xb3, 0x46, 0xd2, 0x80, 0xdf, 0x11, 0xfc, 0x6e, -0xd4, 0xac, 0x91, 0x34, 0x47, 0xe3, 0x6c, 0x8d, 0xa4, 0x05, 0x4b, 0x5c, 0x81, 0x50, 0x55, 0xaa, -0xc9, 0x12, 0xa0, 0xb0, 0x47, 0xb2, 0x46, 0x76, 0x43, 0x1c, 0x61, 0xa8, 0xf8, 0x87, 0xc2, 0x65, -0xfe, 0x9f, 0x40, 0x44, 0xd8, 0x14, 0x09, 0xf4, 0x42, 0xa4, 0x04, 0xbe, 0x37, 0xe4, 0x9e, 0xe9, -0x76, 0x63, 0xde, 0x64, 0x93, 0x04, 0x92, 0x36, 0x40, 0x8a, 0x5f, 0xa6, 0xbd, 0xb6, 0x7c, 0x0e, -0xb4, 0x13, 0x53, 0x74, 0xa6, 0x52, 0x74, 0xca, 0xf0, 0xe8, 0x4f, 0x30, 0xb6, 0x4e, 0xb3, 0x61, -0x92, 0xe0, 0xb4, 0xe9, 0x74, 0xef, 0x6a, 0xe9, 0xec, 0x4a, 0x29, 0x86, 0x28, 0x49, 0xff, 0x12, -0x83, 0xe6, 0x6f, 0x55, 0x6c, 0x74, 0x76, 0x56, 0xf3, 0xcd, 0x67, 0x4b, 0x23, 0xe3, 0xec, 0x9f, -0x43, 0xb6, 0x34, 0x49, 0xf3, 0xd9, 0x34, 0x12, 0x82, 0xc9, 0x3d, 0xda, 0xfa, 0x63, 0xa3, 0xa6, -0x57, 0x73, 0xb3, 0x1d, 0x07, 0xd7, 0x1a, 0xc8, 0x73, 0xc3, 0xf5, 0xc9, 0xb9, 0x7c, 0xc9, 0xa9, -0x2c, 0xd9, 0xad, 0xed, 0xee, 0xb9, 0xe7, 0x00, 0xdf, 0xcf, 0x30, 0x01, 0x26, 0xec, 0x41, 0xb2, -0x0b, 0x53, 0xea, 0x2e, 0xd4, 0x59, 0xd3, 0x3c, 0x81, 0xb6, 0xf6, 0x81, 0x1c, 0x15, 0x87, 0xba, -0x84, 0xff, 0xcf, 0xf5, 0x92, 0x5e, 0x5a, 0xaa, 0x69, 0x11, 0x4b, 0xc4, 0x6e, 0x61, 0xd2, 0xcc, -0x09, 0xeb, 0x3c, 0x38, 0x03, 0x5b, 0x32, 0x35, 0xcd, 0xc1, 0x44, 0xcb, 0x10, 0x6b, 0x9a, 0x4f, -0x09, 0x8b, 0x3c, 0x12, 0xdd, 0xf5, 0x61, 0x43, 0x4e, 0x2d, 0x1f, 0xeb, 0x27, 0x11, 0x2e, 0x6c, -0xd8, 0xa9, 0x94, 0x12, 0xcf, 0x14, 0x31, 0x49, 0xb3, 0xc9, 0x4e, 0x90, 0xdd, 0xa3, 0x48, 0x58, -0x87, 0x22, 0xc8, 0xa1, 0x3b, 0x3d, 0x84, 0xd5, 0x36, 0xb9, 0xd1, 0x32, 0x1f, 0x66, 0xef, 0x2c, -0x82, 0xd9, 0x1d, 0x79, 0xce, 0x23, 0x2d, 0x1b, 0x1d, 0x41, 0xd6, 0xe2, 0x1c, 0xf0, 0x6e, 0x23, -0xab, 0xcf, 0x95, 0xc4, 0x3f, 0x3f, 0xaa, 0x9c, 0xfc, 0x3c, 0x5c, 0xe2, 0xa2, 0xc5, 0x76, 0xe2, -0x12, 0x0b, 0xf5, 0x85, 0x8c, 0x73, 0x4f, 0x30, 0x8e, 0xc9, 0x58, 0x5e, 0xa1, 0xde, 0x21, 0x4e, -0xdd, 0x04, 0xfe, 0x4e, 0xec, 0x86, 0x16, 0x7b, 0xb0, 0xb9, 0x07, 0x6c, 0x7c, 0xf6, 0xa4, 0x74, -0xd7, 0x3a, 0xb2, 0xfc, 0x94, 0xdc, 0x29, 0x15, 0xd8, 0x99, 0xdc, 0x5f, 0xed, 0x7d, 0x5a, 0x2f, -0xe3, 0xe3, 0xc0, 0xa7, 0x90, 0xfb, 0x05, 0x74, 0x8f, 0xd3, 0x0d, 0x0c, 0xb4, 0x27, 0x9b, 0x63, -0xfe, 0x36, 0x19, 0x93, 0x66, 0x22, 0xaf, 0x57, 0x09, 0xae, 0x81, 0x85, 0x7a, 0x29, 0xeb, 0xbd, -0xd1, 0xa5, 0x9f, 0x18, 0xad, 0xee, 0x6b, 0x48, 0x0b, 0xe9, 0x5e, 0xb8, 0x48, 0xc4, 0x1d, 0x4f, -0xc6, 0xc5, 0x3e, 0xb9, 0x86, 0x7c, 0xc5, 0x1a, 0x94, 0x5f, 0x9b, 0x5f, 0x96, 0x5f, 0x31, 0x6d, -0xaf, 0x36, 0xc9, 0x8f, 0x85, 0x41, 0xef, 0xae, 0x1e, 0xc8, 0xe9, 0xd8, 0xe1, 0xba, 0x83, 0xa5, -0x9b, 0x61, 0xfb, 0x2a, 0xbd, 0x43, 0x58, 0xaf, 0xd2, 0x69, 0xd6, 0x2b, 0xe9, 0x24, 0xc4, 0x92, -0x0b, 0x93, 0x2b, 0x02, 0x5b, 0xed, 0x50, 0xb2, 0x91, 0xec, 0x13, 0x91, 0xed, 0x72, 0x41, 0xbf, -0x05, 0x85, 0x73, 0x79, 0x78, 0xf5, 0xf8, 0x4d, 0xb2, 0xb7, 0x22, 0xce, 0x7e, 0xb8, 0x9d, 0x9c, -0xa6, 0x21, 0xb0, 0x35, 0xfd, 0x4d, 0xbb, 0x91, 0xb1, 0x6e, 0x39, 0x64, 0xaf, 0x86, 0x38, 0xc6, -0x18, 0xac, 0xd1, 0x35, 0x25, 0x94, 0x52, 0xa9, 0xea, 0xf0, 0x8b, 0x87, 0x0f, 0x90, 0x75, 0x06, -0x47, 0x63, 0x70, 0xc8, 0x5e, 0xf5, 0xda, 0x8b, 0xaf, 0xbd, 0x52, 0xfb, 0xc9, 0x0e, 0x90, 0x83, -0xb6, 0x22, 0xb8, 0x62, 0xf7, 0x7c, 0xb8, 0x22, 0x62, 0xb6, 0x3f, 0x24, 0x6d, 0xf0, 0x56, 0x2b, -0x06, 0x4a, 0xb3, 0x73, 0xa8, 0xe7, 0x20, 0xf2, 0xdf, 0xe7, 0x34, 0x8b, 0x7a, 0x01, 0x9d, 0x0b, -0x69, 0xbb, 0x4e, 0x1f, 0x0e, 0xf3, 0x69, 0xc6, 0xe5, 0xd7, 0x73, 0x2b, 0x8d, 0xe9, 0x56, 0x3e, -0xf6, 0x0a, 0xd6, 0x44, 0x52, 0x2a, 0xa4, 0xbb, 0xe8, 0x34, 0x08, 0xeb, 0xa0, 0x67, 0xbb, 0xe9, -0xd7, 0xc4, 0xbf, 0x57, 0x24, 0x4f, 0x0b, 0xa6, 0xb9, 0xf8, 0xe5, 0x81, 0xa4, 0x25, 0xd4, 0xe0, -0x46, 0x1a, 0x5d, 0xbb, 0x36, 0xf6, 0xec, 0x4b, 0xee, 0xc3, 0x16, 0xb6, 0x20, 0x4a, 0x65, 0xa2, -0xd2, 0xf6, 0xdb, 0x94, 0x7c, 0xe2, 0xe9, 0xa4, 0x6a, 0xe6, 0xea, 0xbc, 0x97, 0xe1, 0xea, 0xde, -0x66, 0x6d, 0xf5, 0x37, 0x84, 0x0d, 0x09, 0xd2, 0x3f, 0x4b, 0xd7, 0x94, 0x97, 0xe8, 0xe4, 0xb0, -0xb5, 0xc9, 0x7b, 0x8b, 0x57, 0x27, 0x87, 0xcc, 0xd0, 0x23, 0x81, 0xce, 0x2e, 0xd6, 0xdd, 0x48, -0x47, 0xb0, 0xd7, 0x99, 0xca, 0x45, 0xcf, 0xb9, 0x90, 0x46, 0x5a, 0x9c, 0x4b, 0x3f, 0x41, 0x63, -0x19, 0xe5, 0x5c, 0xa3, 0xdc, 0x0d, 0xb6, 0xdc, 0x62, 0xb8, 0x12, 0xf9, 0x1c, 0x4b, 0x7c, 0xe6, -0xfe, 0x44, 0x28, 0x1f, 0x65, 0x83, 0xfc, 0x35, 0x33, 0x5f, 0x1a, 0x0e, 0xe5, 0x62, 0x4f, 0x74, -0xee, 0xdc, 0x01, 0xd6, 0x0e, 0xe3, 0xa1, 0x61, 0x7c, 0xdb, 0x56, 0xde, 0xc9, 0x7a, 0x8b, 0x96, -0x22, 0x9f, 0xfa, 0x7b, 0x9c, 0xb9, 0x4f, 0xe1, 0xf3, 0x51, 0xd1, 0x6d, 0xea, 0xd9, 0x22, 0xb2, -0x66, 0xfd, 0x09, 0xfe, 0x5a, 0xd5, 0x0b, 0x5f, 0xaa, 0x52, 0x27, 0xdd, 0xc5, 0x90, 0x8f, 0x9c, -0xe6, 0xef, 0x11, 0x06, 0x59, 0xee, 0xf9, 0x60, 0xc4, 0x87, 0xf6, 0x73, 0xe8, 0xd2, 0x2b, 0x17, -0x25, 0x8b, 0xdd, 0x0b, 0x46, 0x79, 0x1c, 0x47, 0xed, 0xbc, 0x3f, 0xdd, 0x20, 0x2c, 0x5f, 0xdb, -0x8b, 0xd5, 0xe3, 0x8e, 0x62, 0xed, 0xbc, 0x14, 0x5b, 0xbf, 0x59, 0x54, 0x4a, 0xb5, 0x74, 0xa0, -0xfc, 0x8f, 0x92, 0x0d, 0xf2, 0x11, 0x20, 0x59, 0x8b, 0xe1, 0x0b, 0x92, 0x25, 0x36, 0x73, 0x5f, -0x22, 0x54, 0x48, 0xd2, 0x5b, 0xd8, 0x3e, 0x30, 0xf3, 0xc0, 0x50, 0x68, 0xae, 0xb3, 0x10, 0x6c, -0x4b, 0xce, 0xd8, 0xe0, 0xe7, 0xfb, 0xdb, 0xa8, 0xe6, 0x6b, 0xd0, 0x6d, 0xfc, 0xf9, 0x58, 0x5b, -0xf6, 0x6d, 0x23, 0xbb, 0x13, 0xed, 0x9d, 0x5c, 0xf3, 0x50, 0x91, 0x5f, 0xfd, 0x3d, 0xd6, 0xfe, -0x54, 0xed, 0x29, 0xb0, 0xfc, 0xec, 0x57, 0xe2, 0x34, 0xd1, 0x4b, 0x09, 0xe4, 0xe3, 0x92, 0xed, -0xb0, 0x71, 0x3b, 0xf2, 0xb1, 0x1d, 0x5e, 0x6e, 0x87, 0xfd, 0x32, 0xed, 0xd0, 0xff, 0xf5, 0x76, -0x34, 0x7c, 0x68, 0xce, 0x57, 0x0f, 0x69, 0x36, 0x45, 0xfe, 0x2a, 0x35, 0x90, 0xca, 0xd8, 0x3e, -0x18, 0xc6, 0xa0, 0xb3, 0x6f, 0x3c, 0xcf, 0xf8, 0xb4, 0x5d, 0x89, 0x1e, 0xb1, 0xd3, 0x33, 0xaa, -0xb3, 0xaf, 0xd6, 0x79, 0x95, 0x39, 0xbb, 0x9e, 0xc6, 0xde, 0xc8, 0xc5, 0x5f, 0x5b, 0xbb, 0x19, -0xdb, 0x38, 0x47, 0x3b, 0x85, 0x9c, 0x6b, 0xaf, 0x92, 0x73, 0x43, 0xef, 0xa0, 0x8f, 0x58, 0x85, -0x5b, 0xa3, 0x59, 0x4e, 0x30, 0x90, 0x5c, 0xab, 0xec, 0x27, 0x59, 0x1a, 0x67, 0x11, 0xae, 0x03, -0x96, 0x94, 0x2f, 0x17, 0xd2, 0xf9, 0x33, 0xb6, 0x66, 0xaf, 0x63, 0x5b, 0xf6, 0x9a, 0x65, 0xa6, -0xe5, 0x5d, 0x7c, 0x4a, 0x29, 0xc0, 0x96, 0x99, 0xf2, 0x95, 0xb9, 0x9a, 0xbd, 0xfb, 0x74, 0xf8, -0x28, 0x87, 0x97, 0x08, 0xcb, 0x4d, 0xd2, 0x2a, 0x4d, 0x4b, 0x52, 0xe7, 0x26, 0x5e, 0x9b, 0xed, -0x3f, 0x6b, 0xf1, 0x1e, 0x77, 0xeb, 0x71, 0x66, 0xcd, 0x0e, 0x6c, 0x6d, 0x4a, 0x60, 0x2c, 0x23, -0xe5, 0xc6, 0x31, 0xf3, 0x2f, 0x89, 0xf9, 0xaf, 0x98, 0xe3, 0x56, 0x51, 0x9e, 0x14, 0xc4, 0x50, -0x1b, 0x3e, 0xd6, 0x8c, 0xf0, 0x3f, 0x51, 0x4e, 0x93, 0x7b, 0x39, 0xa7, 0x20, 0xf6, 0xb6, 0x05, -0x31, 0x73, 0x88, 0x62, 0x87, 0xf3, 0xe8, 0x2c, 0x8b, 0x88, 0xd5, 0x78, 0x75, 0x2a, 0x17, 0x2b, -0xc7, 0x22, 0xfc, 0x1d, 0x0a, 0xdb, 0x32, 0x62, 0x7c, 0x85, 0x6d, 0x92, 0xc5, 0x33, 0xe2, 0x58, -0xc2, 0x0d, 0xcf, 0x23, 0x6e, 0xb7, 0x67, 0xc6, 0x52, 0x38, 0x56, 0x20, 0x15, 0xab, 0x13, 0x31, -0x0e, 0x73, 0xab, 0xfd, 0x83, 0x0d, 0x7e, 0x76, 0x12, 0xf1, 0x7f, 0x0e, 0x8e, 0xed, 0x74, 0xec, -0x8d, 0x1c, 0x5b, 0x4a, 0xda, 0xb1, 0x12, 0xe7, 0xfb, 0x6f, 0x5d, 0x8c, 0xfd, 0x58, 0xea, 0x74, -0x43, 0x39, 0xf2, 0x3d, 0x8b, 0x90, 0xa9, 0xa9, 0x44, 0x62, 0xe5, 0xb1, 0x1b, 0xee, 0x1a, 0x8e, -0x8e, 0xef, 0x4f, 0xb8, 0xb3, 0xc9, 0x5e, 0x17, 0x5b, 0xad, 0x9b, 0x1d, 0xd8, 0x33, 0x31, 0xc0, -0xa7, 0xc1, 0x68, 0x27, 0xcc, 0x93, 0x4b, 0x3f, 0x40, 0x02, 0xb2, 0x1a, 0x2c, 0x28, 0x39, 0x5d, -0xb8, 0x98, 0x5d, 0x92, 0xa5, 0x7f, 0x90, 0xee, 0x9d, 0x50, 0x0a, 0x33, 0x53, 0x90, 0xc6, 0x49, -0xd8, 0xfd, 0xc2, 0x34, 0x91, 0x5d, 0xcf, 0x80, 0xa1, 0x2d, 0xdb, 0xbe, 0xcc, 0xff, 0x60, 0x98, -0x56, 0x83, 0x9a, 0x59, 0xd3, 0x79, 0x88, 0xe9, 0x6d, 0x50, 0x0a, 0x92, 0xdc, 0xb2, 0x2b, 0x11, -0xca, 0xb6, 0x6f, 0xb1, 0xfb, 0x14, 0xbb, 0x31, 0x0b, 0x72, 0xc3, 0xd9, 0x5b, 0x86, 0x0f, 0x8d, -0x2a, 0xc6, 0xea, 0x33, 0x4e, 0xb0, 0x6f, 0x90, 0x8c, 0x72, 0x50, 0xde, 0x42, 0xe3, 0xe7, 0xd1, -0xe1, 0xeb, 0xaa, 0xc0, 0x60, 0xf7, 0x3c, 0xf6, 0x63, 0xc8, 0xc7, 0x78, 0x96, 0xb0, 0x95, 0x66, -0xf9, 0x8c, 0x13, 0x1d, 0xe6, 0xe4, 0xe9, 0x39, 0xb2, 0xbc, 0xf7, 0xb5, 0xe4, 0xdd, 0x15, 0xdc, -0x3e, 0xa7, 0xd6, 0x3e, 0xc4, 0xe8, 0x1a, 0xb2, 0x1f, 0xc5, 0x67, 0x79, 0x48, 0x37, 0x66, 0x0e, -0xec, 0xf9, 0xf4, 0xbb, 0xc9, 0xd6, 0xe9, 0x6c, 0xd1, 0x99, 0xc8, 0xb3, 0xd6, 0x54, 0x9d, 0x31, -0xce, 0xb4, 0x1b, 0x09, 0x0e, 0x63, 0xeb, 0x1c, 0x1e, 0x7b, 0x04, 0x2c, 0x55, 0x7f, 0x74, 0xb2, -0x7d, 0xc3, 0x50, 0xce, 0xf5, 0x5e, 0xd2, 0xb6, 0xcf, 0xf7, 0x80, 0x05, 0x25, 0x95, 0x13, 0x6b, -0x2d, 0x6f, 0x6c, 0x2a, 0xac, 0xa5, 0xb3, 0xa9, 0xff, 0x4f, 0x9d, 0xa2, 0xb7, 0x7b, 0xa6, 0xe6, -0x8d, 0x70, 0x30, 0x21, 0x07, 0xd5, 0x40, 0xe7, 0x54, 0x09, 0x1a, 0x38, 0xbe, 0x5c, 0x0c, 0xc5, -0x9d, 0x3f, 0x7f, 0xa5, 0xad, 0xf4, 0x67, 0x07, 0xda, 0xcb, 0xb9, 0x7f, 0x5e, 0x5c, 0x2a, 0xac, -0x67, 0x3c, 0x26, 0xd6, 0x57, 0xd8, 0xef, 0x3f, 0xf1, 0x8b, 0x6e, 0x6d, 0xe0, 0x93, 0xaa, 0xb7, -0xd9, 0x02, 0x8f, 0x29, 0x1e, 0x29, 0xb7, 0xd0, 0x1f, 0x7a, 0xe2, 0xb1, 0x57, 0xf6, 0x7c, 0x2b, -0xec, 0x93, 0x97, 0xbd, 0xfa, 0x21, 0x18, 0x7e, 0xfe, 0x72, 0x7b, 0x85, 0xc8, 0x41, 0x58, 0x4e, -0x08, 0x3c, 0x3a, 0x25, 0x87, 0x47, 0x91, 0x2e, 0x18, 0xc4, 0xda, 0x08, 0xe6, 0xf0, 0x28, 0xef, -0xfe, 0x99, 0x95, 0xb2, 0xbe, 0x51, 0xf8, 0xf3, 0x97, 0xc3, 0x86, 0xc2, 0x87, 0x14, 0xbd, 0x63, -0xd9, 0xcf, 0x0e, 0x84, 0xc4, 0xae, 0x5d, 0xa3, 0xbd, 0xf1, 0xf0, 0x49, 0xda, 0x83, 0x82, 0x1c, -0xf9, 0xc6, 0x47, 0x7e, 0x7d, 0xbd, 0x0f, 0x0c, 0xaf, 0x3d, 0x43, 0xb6, 0x20, 0x07, 0x27, 0xd8, -0xd2, 0x17, 0xce, 0xeb, 0x2f, 0x55, 0xd2, 0xef, 0xbf, 0xae, 0x27, 0xbd, 0x9d, 0x43, 0xec, 0xdd, -0x25, 0x1b, 0x37, 0xf4, 0x4b, 0x0f, 0x73, 0x4a, 0xff, 0xf2, 0x92, 0x3d, 0x69, 0xb3, 0xc4, 0xcb, -0xfc, 0xd1, 0x9e, 0x4f, 0xf7, 0x2f, 0xf9, 0x40, 0x7d, 0x5b, 0x58, 0x09, 0x95, 0x3c, 0xd7, 0x74, -0xc2, 0x2c, 0x98, 0x75, 0x63, 0x27, 0xad, 0x15, 0x6a, 0x96, 0x72, 0xac, 0xd5, 0x67, 0x76, 0x43, -0x41, 0x3d, 0x5b, 0x59, 0xb1, 0x14, 0x2c, 0x65, 0xab, 0x2b, 0x12, 0xbe, 0xed, 0x8d, 0x9b, 0x93, -0xe7, 0x21, 0xc9, 0xf2, 0x07, 0x96, 0x61, 0xa6, 0x87, 0xec, 0x8f, 0x6c, 0x19, 0x4d, 0x5a, 0xe5, -0xfa, 0xd7, 0xf5, 0xe2, 0x0e, 0xac, 0x74, 0x9f, 0x4b, 0x74, 0x67, 0x89, 0xd6, 0xe7, 0x64, 0xad, -0x72, 0xad, 0xf4, 0xc6, 0x26, 0xa7, 0xb1, 0x65, 0x84, 0xf6, 0x62, 0xd1, 0xca, 0x59, 0x3c, 0x72, -0x74, 0x14, 0x5b, 0x69, 0x30, 0xba, 0x10, 0x7b, 0x8b, 0xc3, 0xa6, 0xaa, 0xd3, 0x50, 0xce, 0xa7, -0xc3, 0x0f, 0x62, 0x6f, 0x4b, 0xd4, 0x9f, 0xff, 0xfb, 0x02, 0xfa, 0x49, 0x64, 0xad, 0x0f, 0xe3, -0x11, 0xd5, 0xf2, 0x49, 0x2e, 0x28, 0x15, 0x96, 0x4c, 0x7f, 0xba, 0xaf, 0xdd, 0x22, 0x17, 0xe9, -0x2f, 0x48, 0xde, 0xaa, 0x33, 0xb6, 0x6b, 0x25, 0x63, 0xcd, 0xd0, 0xd8, 0x10, 0xc2, 0x3d, 0x9b, -0x4e, 0x36, 0xe0, 0x48, 0xfb, 0x7d, 0xaa, 0xf5, 0x00, 0x23, 0x05, 0xb5, 0x6c, 0xf7, 0xda, 0x25, -0x7b, 0xc4, 0x9e, 0x04, 0x5a, 0xb5, 0xa5, 0x9d, 0x64, 0x75, 0x09, 0xda, 0x79, 0x37, 0x13, 0xf1, -0x2d, 0xf4, 0xa4, 0x96, 0x16, 0xf9, 0x14, 0x3a, 0x41, 0x5d, 0x98, 0xdc, 0xa9, 0xee, 0xf1, 0x3f, -0x8d, 0xb3, 0x86, 0x37, 0x2a, 0xed, 0x7c, 0x1a, 0xf2, 0xdb, 0x2b, 0x92, 0x3b, 0x1c, 0x24, 0xac, -0xa1, 0x62, 0xce, 0x2d, 0x14, 0x27, 0x62, 0x23, 0xda, 0x89, 0xd8, 0x02, 0xde, 0x3d, 0x64, 0x1f, -0xa5, 0x3d, 0x45, 0x6c, 0xe1, 0xc9, 0xa0, 0x18, 0xe5, 0x5c, 0x05, 0xd4, 0x9a, 0xbf, 0xff, 0xb7, -0x4b, 0x5a, 0xf9, 0x12, 0xaf, 0x7e, 0xcc, 0xd1, 0xca, 0x35, 0xe0, 0xc8, 0xbd, 0x42, 0x58, 0x4e, -0x2b, 0xf4, 0x14, 0xbe, 0xc2, 0x34, 0xf3, 0x8a, 0x64, 0x9f, 0xfb, 0xde, 0x5b, 0xb0, 0x18, 0x47, -0x8d, 0x1d, 0xa1, 0xea, 0x44, 0x88, 0xba, 0x90, 0x36, 0x97, 0x6a, 0x12, 0xc6, 0x9b, 0xbb, 0xc5, -0xfb, 0xf5, 0xa5, 0xa7, 0xc1, 0xe0, 0xe8, 0x51, 0x27, 0x98, 0x2f, 0xbe, 0xc2, 0x87, 0x2e, 0x71, -0x66, 0x91, 0xed, 0xb0, 0x59, 0x68, 0xbd, 0x9b, 0x4e, 0x2d, 0x62, 0xac, 0x88, 0xb9, 0x88, 0x30, -0x20, 0x64, 0xd9, 0xf5, 0x63, 0x9c, 0x1f, 0x4c, 0x28, 0xc3, 0x7e, 0x6b, 0xe7, 0x8f, 0x91, 0x5e, -0xf1, 0x38, 0xb8, 0xcd, 0x97, 0xb2, 0x22, 0xa3, 0x9d, 0x0f, 0xbb, 0xad, 0x35, 0xb0, 0x95, 0xdf, -0xa3, 0x49, 0xdb, 0x31, 0x2c, 0xbb, 0x6e, 0x63, 0xae, 0xf1, 0x2e, 0xa4, 0x42, 0x26, 0x6e, 0xd9, -0x15, 0xdc, 0x32, 0x2b, 0x73, 0xa8, 0x07, 0x5d, 0xab, 0xc1, 0xf6, 0x0f, 0x1f, 0x20, 0x6d, 0xe6, -0xba, 0x90, 0xed, 0x38, 0xc4, 0x3e, 0xd2, 0xc7, 0x59, 0xff, 0x9f, 0x0f, 0x20, 0x3f, 0x94, 0x97, -0x94, 0xa9, 0x39, 0x1c, 0xc3, 0x2e, 0x3e, 0xad, 0xdd, 0x46, 0x32, 0x35, 0x9f, 0x97, 0xb0, 0xfd, -0x9b, 0xb4, 0x5d, 0x39, 0x1a, 0xf7, 0x8d, 0xbd, 0x61, 0xec, 0xbe, 0xc3, 0xa1, 0x4f, 0xee, 0x25, -0x63, 0xe9, 0xf3, 0xa0, 0xc3, 0x2f, 0x7f, 0x5d, 0x29, 0x97, 0xe6, 0x03, 0xe9, 0x78, 0xbb, 0x88, -0x23, 0x4a, 0x72, 0x43, 0xac, 0x2b, 0xb5, 0xac, 0xa3, 0x55, 0x28, 0x6d, 0xaf, 0x19, 0xce, 0xb9, -0x36, 0xba, 0x07, 0x06, 0x79, 0x84, 0x11, 0xb9, 0xc6, 0x79, 0x55, 0xe8, 0x40, 0x2a, 0x04, 0x92, -0xe7, 0x1a, 0xc8, 0x62, 0x68, 0x89, 0xb6, 0x63, 0x9e, 0xda, 0x5a, 0xa2, 0xad, 0xce, 0xe3, 0x37, -0x5b, 0xb0, 0x9d, 0xf2, 0xb5, 0xc6, 0xa5, 0x59, 0x77, 0xad, 0x24, 0x6c, 0x27, 0x6d, 0xae, 0x13, -0x29, 0xb9, 0x8b, 0x29, 0x3b, 0xdb, 0x2f, 0x9d, 0x49, 0xfb, 0x65, 0xf7, 0xa8, 0xfb, 0x68, 0x56, -0x6e, 0xd9, 0x4c, 0x7c, 0xf9, 0xff, 0xbe, 0xa0, 0x38, 0x04, 0xfe, 0x8d, 0x8d, 0x84, 0xe6, 0xd0, -0xae, 0x91, 0x36, 0xb2, 0x88, 0x4a, 0x56, 0xf6, 0xb2, 0xb4, 0x1d, 0x5c, 0x56, 0x3a, 0x65, 0x60, -0x0f, 0x46, 0x01, 0x79, 0xb9, 0xa3, 0x18, 0xe6, 0x01, 0x09, 0xf3, 0xd8, 0xd4, 0xb2, 0x19, 0xe7, -0xe6, 0x7c, 0xb2, 0x6b, 0x23, 0xf0, 0xa2, 0x94, 0xec, 0xc2, 0x4a, 0x24, 0x1f, 0x14, 0x22, 0x6e, -0xd8, 0xb3, 0x8e, 0x6e, 0x44, 0x2c, 0xda, 0xa3, 0xde, 0xe1, 0xe8, 0xa6, 0xb2, 0x94, 0x9c, 0x17, -0xa8, 0x8f, 0xb3, 0x77, 0x51, 0xff, 0x9a, 0x1c, 0x1e, 0xe9, 0xea, 0xd0, 0x47, 0xc8, 0x7b, 0xeb, -0x89, 0xc2, 0xd6, 0x9e, 0x45, 0xfa, 0x6a, 0x12, 0xf4, 0xd5, 0xe9, 0xa9, 0x3a, 0xe7, 0x04, 0x94, -0xe6, 0x2d, 0xf6, 0xd5, 0x4c, 0x53, 0x8f, 0xe1, 0xac, 0x6f, 0x90, 0x4c, 0x89, 0xa1, 0x35, 0x18, -0x33, 0xbc, 0xc8, 0xff, 0xac, 0x7e, 0x00, 0x71, 0xec, 0x15, 0xc6, 0x83, 0xe7, 0x97, 0x09, 0x0c, -0xd9, 0x8e, 0xb5, 0x32, 0x0b, 0x3a, 0x77, 0xdb, 0x6f, 0xf0, 0x2b, 0x45, 0x29, 0x83, 0x39, 0x62, -0xde, 0x51, 0xfc, 0x52, 0xee, 0x91, 0x8d, 0x38, 0x86, 0x82, 0xcf, 0x27, 0x3a, 0x02, 0x5a, 0x1e, -0xeb, 0xff, 0x52, 0x1e, 0x3c, 0xab, 0x1b, 0xdc, 0xc6, 0x8c, 0xbc, 0x16, 0x71, 0x5e, 0xc8, 0x9b, -0xba, 0x85, 0x26, 0x67, 0xcf, 0x64, 0x7b, 0xe3, 0x66, 0x65, 0xf1, 0x4f, 0x5f, 0x6c, 0x2b, 0xf9, -0xc5, 0x2b, 0x1d, 0x85, 0x3f, 0x7d, 0x31, 0x6c, 0x91, 0x12, 0x2e, 0xff, 0x7f, 0x9e, 0x02, 0xc3, -0x3f, 0x1c, 0x98, 0x17, 0xa0, 0xd1, 0xf7, 0x8b, 0x57, 0xc2, 0x26, 0xc9, 0xbc, 0x85, 0x2c, 0x1c, -0x23, 0x15, 0x95, 0xb7, 0xd1, 0x5c, 0xa5, 0xe4, 0xc8, 0x7e, 0xbb, 0x47, 0xdc, 0xd3, 0xa2, 0xda, -0xbf, 0x73, 0x90, 0xa0, 0x34, 0xb9, 0x18, 0xa1, 0x89, 0xb2, 0xd8, 0xa0, 0x38, 0xf5, 0x5a, 0x4a, -0x36, 0x57, 0x89, 0x92, 0x62, 0xcf, 0x31, 0x44, 0xa9, 0xb6, 0xce, 0xac, 0x63, 0xc3, 0xbc, 0x46, -0x6a, 0x90, 0x56, 0x31, 0x44, 0x4b, 0x5e, 0x20, 0x1e, 0xd7, 0x41, 0xb6, 0xbd, 0xda, 0x24, 0xb7, -0xd8, 0xb5, 0x90, 0x95, 0x69, 0x39, 0xc9, 0xed, 0xe7, 0xf9, 0x3d, 0x5f, 0x81, 0x8b, 0x6f, 0x32, -0x55, 0xf8, 0x0d, 0x4b, 0xbf, 0x47, 0x44, 0xbb, 0x53, 0xa3, 0x2b, 0x4b, 0xb4, 0x3a, 0xd8, 0x2f, -0x46, 0x57, 0xf0, 0x09, 0x21, 0xb5, 0x61, 0xea, 0x7c, 0xf7, 0x20, 0x8d, 0xb2, 0x54, 0x2e, 0x71, -0x7a, 0x8b, 0x7d, 0x20, 0x58, 0x43, 0x27, 0xd2, 0x00, 0x57, 0x61, 0x96, 0xfe, 0x01, 0xc6, 0x2b, -0x84, 0xc7, 0xc5, 0x55, 0x8e, 0x08, 0xd5, 0x2c, 0x0e, 0x6c, 0x99, 0x4a, 0x8f, 0xe3, 0x62, 0x1d, -0x5d, 0xf6, 0x26, 0xe6, 0x33, 0xe4, 0x0f, 0xca, 0xb1, 0x3f, 0x9f, 0x17, 0xe7, 0xa1, 0x11, 0xdf, -0x1e, 0x08, 0x01, 0xfc, 0xc0, 0x3f, 0x42, 0x76, 0x47, 0xb9, 0xaf, 0x07, 0xb0, 0x97, 0x91, 0xc2, -0xd1, 0xd9, 0x8e, 0xb0, 0x43, 0xec, 0x6c, 0x0c, 0xfe, 0x5b, 0xe6, 0xbc, 0x87, 0xbd, 0x49, 0x73, -0xa2, 0x80, 0xfe, 0x76, 0xe6, 0xbd, 0x72, 0xc3, 0x0b, 0x25, 0xff, 0x61, 0x84, 0xf8, 0x4f, 0xc7, -0x3a, 0x5c, 0xc9, 0x14, 0x97, 0xed, 0xbb, 0xa9, 0x29, 0x25, 0xba, 0xa9, 0x67, 0xe7, 0xf0, 0x4a, -0xbd, 0x1d, 0xc4, 0xa9, 0xfb, 0xd0, 0xb0, 0x42, 0x9a, 0x17, 0xb3, 0x54, 0x84, 0x33, 0x09, 0x62, -0xea, 0xd1, 0x84, 0x62, 0x38, 0x8a, 0xbd, 0xe5, 0x68, 0xf2, 0x6f, 0xc5, 0x7e, 0x6a, 0xa0, 0xf6, -0x4d, 0x3c, 0x8e, 0xbd, 0xa4, 0x17, 0xbb, 0x47, 0xfe, 0x3a, 0x7f, 0x2c, 0xe4, 0x00, 0x89, 0xe5, -0x00, 0x49, 0x93, 0x03, 0xcc, 0x3b, 0xe6, 0xbc, 0xb9, 0xf7, 0xfb, 0x60, 0x0c, 0x67, 0xb3, 0x75, -0x7d, 0xe2, 0x85, 0x73, 0x51, 0x42, 0xc9, 0x09, 0x9b, 0x69, 0xfd, 0x41, 0xf8, 0xd1, 0x7a, 0x9b, -0x7a, 0xba, 0xfa, 0x24, 0x38, 0x97, 0x9c, 0x04, 0x1f, 0x59, 0x87, 0x52, 0x2c, 0xe6, 0xab, 0xd4, -0xff, 0x08, 0x1b, 0xe5, 0x59, 0xb4, 0x97, 0x4c, 0x9a, 0x15, 0xdc, 0xf0, 0xf3, 0x97, 0x43, 0xa7, -0x49, 0xb7, 0x4d, 0x1a, 0xe2, 0x64, 0x5e, 0x65, 0x83, 0xe0, 0x7b, 0xf5, 0x24, 0xe4, 0x54, 0x9f, -0x79, 0x1c, 0x28, 0x55, 0x5c, 0xba, 0x34, 0xdd, 0x6d, 0xaf, 0xa8, 0x1f, 0x79, 0xbd, 0x4d, 0xc3, -0xed, 0xbf, 0xc7, 0xd4, 0x13, 0xa4, 0x15, 0x4f, 0xd5, 0xa4, 0x13, 0xcc, 0x61, 0x17, 0xca, 0x18, -0x27, 0x8a, 0x82, 0xea, 0x49, 0xe4, 0x14, 0xac, 0x28, 0x41, 0x9c, 0x60, 0x39, 0x32, 0x79, 0x63, -0x14, 0x51, 0x5c, 0x73, 0x5a, 0x66, 0x40, 0x59, 0xc1, 0x20, 0xec, 0x85, 0xf1, 0x59, 0x49, 0xc1, -0xa3, 0x4b, 0x3c, 0x2f, 0x20, 0x5e, 0x68, 0x33, 0x2b, 0xc0, 0x13, 0x9a, 0x1d, 0x68, 0x3a, 0x4f, -0x4d, 0x2b, 0xfd, 0xff, 0x91, 0xe4, 0xd0, 0x0a, 0x06, 0x05, 0x2c, 0xbc, 0xab, 0xd8, 0x3a, 0x59, -0x4e, 0x01, 0xa6, 0x84, 0xdc, 0x82, 0x66, 0xc8, 0xdb, 0xfa, 0x32, 0xcf, 0x8d, 0x74, 0x4e, 0x69, -0x4e, 0x01, 0xad, 0x61, 0xcf, 0xad, 0x3f, 0x05, 0x3e, 0x5e, 0x43, 0x41, 0xaa, 0x86, 0x08, 0x65, -0x09, 0x59, 0x25, 0xfd, 0x89, 0x51, 0xa9, 0x21, 0x65, 0xbd, 0x34, 0x81, 0x2d, 0x3c, 0x47, 0xf6, -0x9a, 0xa8, 0x04, 0x5f, 0xdc, 0x29, 0xac, 0xda, 0xa7, 0x2c, 0x8a, 0xeb, 0x37, 0x6a, 0xb3, 0xa5, -0x58, 0x8b, 0x58, 0x43, 0x79, 0xd9, 0x1b, 0x88, 0x93, 0xd0, 0xf6, 0x95, 0x96, 0x26, 0x6d, 0x05, -0x33, 0xee, 0xe4, 0xf8, 0x3a, 0xc1, 0xc7, 0x6d, 0xc6, 0x31, 0x28, 0xb8, 0xe6, 0xe0, 0xa7, 0xcc, -0xd1, 0xa3, 0xf4, 0xce, 0x31, 0xf2, 0xc8, 0xae, 0xac, 0x08, 0x69, 0x9a, 0x43, 0x5c, 0x3c, 0xdd, -0x83, 0x51, 0x32, 0xcc, 0x61, 0xac, 0x69, 0x68, 0x72, 0x53, 0x0c, 0x82, 0x56, 0xec, 0x20, 0x4a, -0xac, 0xe4, 0xcf, 0x16, 0x9c, 0x9a, 0xaa, 0x84, 0x6f, 0x5f, 0xae, 0x14, 0x24, 0x3c, 0x4c, 0x61, -0x84, 0x35, 0x95, 0x9f, 0x3f, 0x25, 0x15, 0x58, 0x90, 0xf6, 0x19, 0x33, 0xe5, 0x81, 0xa6, 0x30, -0xf1, 0xee, 0x17, 0x47, 0x04, 0xa7, 0x8f, 0xa1, 0xe6, 0x70, 0x3e, 0xdf, 0xec, 0x95, 0x8e, 0x31, -0xcc, 0x31, 0xda, 0x04, 0x77, 0x8f, 0x31, 0xac, 0x61, 0x71, 0x07, 0x58, 0x3a, 0xc6, 0x0f, 0x38, -0x86, 0x27, 0xc5, 0xff, 0x0b, 0x08, 0x54, 0xd0, 0xae, 0x17, 0xec, 0x39, 0xbb, 0xd6, 0x73, 0x77, -0x92, 0x54, 0x7d, 0xf4, 0x27, 0x90, 0x1f, 0x1b, 0xdf, 0x97, 0x70, 0x56, 0xd5, 0x9e, 0x56, 0x77, -0x0b, 0x68, 0x26, 0xf9, 0x0e, 0x01, 0x49, 0x6f, 0x44, 0xdd, 0x8f, 0x94, 0x07, 0xfb, 0x85, 0xad, -0x2c, 0xef, 0xb9, 0x68, 0xa2, 0x5d, 0x96, 0x54, 0x77, 0x6d, 0x17, 0xbd, 0xe5, 0xc4, 0x46, 0xc5, -0xe8, 0x9c, 0x78, 0xf3, 0xd9, 0x5f, 0x7e, 0x2c, 0x6c, 0xcc, 0xa6, 0xa1, 0xbe, 0xa8, 0x82, 0x31, -0x06, 0xd3, 0x62, 0xb9, 0x4e, 0xad, 0xdc, 0x3a, 0x51, 0x8a, 0x7d, 0xb5, 0x7e, 0x63, 0xfd, 0x85, -0x89, 0xbd, 0x8a, 0xcb, 0x3f, 0x1c, 0x26, 0xc9, 0x31, 0x37, 0x64, 0x4e, 0x96, 0x4c, 0x18, 0xe3, -0xc7, 0x27, 0x44, 0x27, 0xb3, 0x0c, 0xcc, 0xf3, 0xb3, 0x35, 0x2d, 0x7b, 0xb5, 0x23, 0x37, 0x74, -0x28, 0x69, 0xf5, 0x3d, 0x79, 0x06, 0x1f, 0x08, 0x37, 0xad, 0x4e, 0x6d, 0x9c, 0xa6, 0x24, 0xd5, -0x0a, 0x21, 0xa9, 0x86, 0xcb, 0x92, 0xd8, 0xc6, 0x96, 0x32, 0x4c, 0x7c, 0x5e, 0x9c, 0xad, 0x59, -0x34, 0xfd, 0x4a, 0x9c, 0x99, 0x74, 0xcf, 0x4e, 0xd9, 0xeb, 0x2e, 0x27, 0x3b, 0x60, 0x0a, 0xed, -0x38, 0xbd, 0x92, 0xf6, 0x6f, 0x21, 0x07, 0x60, 0x0d, 0x7b, 0x3e, 0x2b, 0x7d, 0xb3, 0xee, 0xd2, -0xf4, 0x3c, 0x86, 0x8c, 0xa9, 0x31, 0xe4, 0x12, 0xd6, 0x52, 0x84, 0x85, 0x4d, 0x61, 0x09, 0xa2, -0x94, 0xf8, 0x0b, 0x3b, 0x51, 0x57, 0x84, 0x4d, 0xa9, 0x58, 0x85, 0x61, 0x2d, 0x78, 0x22, 0xdc, -0x63, 0x2e, 0x62, 0x88, 0x86, 0x98, 0xbf, 0x2e, 0xe5, 0x33, 0x69, 0xb2, 0x76, 0x26, 0x21, 0x28, -0x76, 0x83, 0xa6, 0xcf, 0x93, 0x86, 0xb2, 0x0b, 0xaa, 0xc1, 0xa9, 0x98, 0x91, 0xce, 0x39, 0x7f, -0x3e, 0x16, 0x36, 0xbc, 0x80, 0x32, 0x15, 0x9f, 0x22, 0x95, 0xdd, 0xc8, 0x4d, 0xeb, 0x7f, 0xac, -0xaa, 0xea, 0xc7, 0x30, 0x87, 0x4f, 0x9a, 0x7e, 0x9c, 0x3c, 0x65, 0x97, 0x3c, 0x43, 0x9a, 0xd2, -0x99, 0x9b, 0x93, 0x76, 0xe7, 0x17, 0xc9, 0x4c, 0xe7, 0xdc, 0xcc, 0xf9, 0xd8, 0x93, 0xb5, 0x72, -0x02, 0xd7, 0xc4, 0xce, 0xb3, 0xd2, 0xe3, 0x5a, 0x4d, 0x16, 0xa7, 0x6b, 0x52, 0x06, 0x41, 0x3e, -0x15, 0x91, 0xac, 0x0b, 0x6d, 0x8c, 0xde, 0x3d, 0x84, 0x75, 0x19, 0x0a, 0x99, 0xa8, 0x2e, 0x64, -0xe5, 0x5e, 0xc9, 0xa6, 0xda, 0x6a, 0xe7, 0x79, 0xd7, 0x24, 0x25, 0xb6, 0xe4, 0x5a, 0x80, 0x44, -0xfa, 0x46, 0xde, 0xfb, 0xd5, 0xec, 0xd7, 0x2c, 0xe8, 0x67, 0x6a, 0x16, 0xcd, 0xa4, 0x01, 0x3d, -0x1a, 0xaa, 0x3f, 0xa5, 0xdb, 0xae, 0x44, 0xcc, 0x25, 0x04, 0x9d, 0x50, 0x43, 0xda, 0x92, 0x56, -0x73, 0x9b, 0xb6, 0x8f, 0x7c, 0xab, 0xd4, 0x03, 0x41, 0xef, 0x16, 0x57, 0x0f, 0xf8, 0x99, 0x57, -0x94, 0xec, 0x79, 0x5a, 0x8c, 0x07, 0x52, 0x31, 0x02, 0xcc, 0x07, 0xe6, 0xbb, 0xbc, 0x49, 0xab, -0x55, 0xa1, 0x37, 0x14, 0x9b, 0x9b, 0x2c, 0x4b, 0x3c, 0xf6, 0x65, 0xde, 0xa3, 0x26, 0x35, 0xc8, -0x01, 0xb1, 0x43, 0x0d, 0x65, 0x90, 0x55, 0x59, 0x7c, 0x5f, 0xdf, 0xe4, 0x26, 0xd2, 0xfb, 0x85, -0x46, 0x52, 0xdf, 0x09, 0xe5, 0x04, 0xf2, 0x6c, 0x95, 0x74, 0x43, 0xb3, 0xef, 0x3d, 0x55, 0x0d, -0x90, 0x46, 0xbd, 0x12, 0x47, 0x56, 0x8d, 0xfb, 0x4a, 0x92, 0x05, 0xa0, 0xae, 0x71, 0x73, 0xc3, -0x5b, 0xb7, 0xaa, 0x38, 0x53, 0x18, 0x02, 0x21, 0xb2, 0x97, 0xdc, 0xb8, 0x39, 0xd0, 0x47, 0x3c, -0x1e, 0xc2, 0x54, 0x5b, 0x3d, 0x9d, 0x7c, 0x43, 0xf6, 0x48, 0x5d, 0x20, 0xeb, 0x9d, 0xea, 0x24, -0x7c, 0xb3, 0xc4, 0x09, 0x6b, 0xd3, 0xb7, 0x10, 0x25, 0xb9, 0x3f, 0xb7, 0x89, 0xf6, 0xaa, 0x69, -0x77, 0xf3, 0xd0, 0x2d, 0x5c, 0xc8, 0x21, 0x92, 0x0d, 0x66, 0x96, 0xda, 0x9a, 0xb5, 0x75, 0x9e, -0x06, 0x6d, 0x04, 0xd6, 0xd0, 0x7a, 0x0f, 0x5b, 0x47, 0xfd, 0x66, 0x38, 0x1b, 0x39, 0xd3, 0xb5, -0x4a, 0x19, 0xdb, 0xe2, 0xb9, 0x9f, 0xef, 0xbb, 0xf8, 0xe6, 0x75, 0x1e, 0x58, 0x7b, 0xdd, 0x2a, -0xf0, 0x43, 0x02, 0x7f, 0xcb, 0x61, 0x44, 0xf2, 0x57, 0xbf, 0x0f, 0xa3, 0xd1, 0x00, 0xad, 0xa5, -0xd0, 0xdd, 0x46, 0xff, 0x67, 0x00, 0xfc, 0x4a, 0x3e, 0x95, 0xc9, 0x52, 0x6c, 0x21, 0x62, 0x71, -0x21, 0x68, 0xab, 0x17, 0x62, 0x26, 0x10, 0x27, 0x4f, 0xd9, 0xe6, 0x02, 0xf5, 0x57, 0xa9, 0x39, -0x17, 0x64, 0xc4, 0xb6, 0x8d, 0x83, 0xa4, 0x53, 0xca, 0x8e, 0x43, 0x21, 0xdb, 0x0c, 0x24, 0x8b, -0x7d, 0x15, 0x89, 0xfb, 0x75, 0xca, 0xfd, 0x88, 0x75, 0x3a, 0x87, 0x2f, 0xcf, 0x12, 0x1c, 0xb5, -0x64, 0x91, 0xe6, 0xf1, 0xd5, 0x97, 0x8d, 0x37, 0x82, 0xfe, 0x71, 0x5d, 0xe8, 0x14, 0x69, 0xac, -0xb8, 0x5f, 0xbe, 0xab, 0x8d, 0x69, 0x9a, 0x21, 0xdb, 0x10, 0x5a, 0xe5, 0x6b, 0x41, 0x71, 0x46, -0xd5, 0x9d, 0x23, 0x61, 0xc9, 0x6d, 0x10, 0xe7, 0xf8, 0x4a, 0x12, 0x6e, 0x43, 0x3a, 0x56, 0xc8, -0x28, 0xcd, 0xfc, 0x60, 0xc7, 0x48, 0x42, 0xc9, 0x0e, 0x3e, 0xe0, 0x9c, 0x1b, 0x3a, 0xea, 0xcf, -0x0e, 0x9b, 0xcd, 0x59, 0x20, 0x87, 0x1d, 0xfe, 0xac, 0xd0, 0x27, 0x8a, 0x84, 0x6e, 0x57, 0x68, -0x4e, 0xed, 0x07, 0xa0, 0xb3, 0xe4, 0xd2, 0x2e, 0xc1, 0xc3, 0x07, 0xa8, 0xcc, 0x51, 0x1d, 0xce, -0xed, 0x31, 0x45, 0x1f, 0x57, 0x79, 0x5e, 0x9f, 0xd0, 0x38, 0x7c, 0xb7, 0xb0, 0xdf, 0x2c, 0xf7, -0xd2, 0x5d, 0x0e, 0x8a, 0x3c, 0xa0, 0x22, 0xd6, 0xda, 0x74, 0x59, 0xe2, 0x7e, 0x86, 0xe6, 0xef, -0x69, 0xb7, 0x33, 0x10, 0xa7, 0xfe, 0x89, 0x62, 0x0c, 0x26, 0x5a, 0x36, 0xc8, 0x57, 0x85, 0xde, -0x40, 0x6e, 0xc0, 0x29, 0x42, 0xe8, 0xe6, 0x04, 0x0a, 0x9d, 0x78, 0x25, 0xca, 0xe7, 0x62, 0x2f, -0x4e, 0x68, 0xdc, 0xfc, 0xed, 0x00, 0x49, 0x6e, 0x60, 0x6c, 0x87, 0xbe, 0x3d, 0x3c, 0xc7, 0xd7, -0x8d, 0x5c, 0x5a, 0x31, 0x58, 0xc4, 0x8d, 0x29, 0x2c, 0xbf, 0xee, 0x51, 0xe9, 0x8c, 0xb5, 0x55, -0xac, 0xb3, 0x7f, 0x36, 0x97, 0xcf, 0xe7, 0xd1, 0xdd, 0x60, 0xc1, 0x7a, 0x5a, 0x11, 0x77, 0xaa, -0xa7, 0x58, 0x6d, 0x5d, 0x94, 0xf6, 0x49, 0x59, 0xae, 0xb1, 0x23, 0x4e, 0xe5, 0x2b, 0xc6, 0x5d, -0x64, 0x09, 0x76, 0x8e, 0xb0, 0x04, 0x8b, 0x3e, 0x3e, 0xcd, 0x47, 0xb3, 0x0d, 0x4b, 0x67, 0x4d, -0x92, 0xf6, 0x9e, 0x61, 0x71, 0x92, 0x66, 0x26, 0x29, 0x5c, 0xa1, 0x47, 0x2a, 0xca, 0xca, 0xd6, -0x4e, 0xef, 0x2f, 0x15, 0xbb, 0x7e, 0xe7, 0x7b, 0x78, 0x87, 0x69, 0x3e, 0xb8, 0x90, 0xd3, 0xcb, -0x29, 0x58, 0x9d, 0x95, 0x0d, 0xc7, 0x58, 0x9a, 0x94, 0x5c, 0xdd, 0x20, 0x57, 0x7d, 0x04, 0xc7, -0xe5, 0x08, 0xc8, 0x88, 0x51, 0xc7, 0xa5, 0x12, 0x38, 0x96, 0x9d, 0x40, 0xba, 0x63, 0x17, 0x37, -0x31, 0x14, 0x2c, 0x03, 0x6b, 0xa6, 0x8d, 0x5c, 0xed, 0x86, 0x90, 0x7c, 0x6f, 0x21, 0x78, 0xd9, -0xe2, 0x6a, 0x25, 0x86, 0xfa, 0x30, 0xb4, 0x11, 0x43, 0x1b, 0x30, 0xb4, 0x01, 0x43, 0x7d, 0x05, -0x0d, 0x50, 0xc3, 0xf7, 0x96, 0x55, 0xdf, 0xb8, 0x5a, 0xe7, 0x01, 0x27, 0xce, 0x05, 0x7c, 0xeb, -0xcb, 0xe4, 0x51, 0xe4, 0x88, 0xcb, 0xa5, 0x22, 0xbd, 0x27, 0x98, 0xb8, 0xde, 0xa3, 0xf7, 0x84, -0x8c, 0xd7, 0xd3, 0x3d, 0x33, 0xa0, 0xf7, 0x68, 0x56, 0x9b, 0x8a, 0x84, 0x6b, 0x82, 0xee, 0x66, -0xcb, 0x2e, 0x58, 0xad, 0xf7, 0x80, 0x4d, 0xec, 0xf9, 0xf7, 0x93, 0x3d, 0xdb, 0x97, 0x38, 0x8f, -0xef, 0x49, 0xab, 0xc0, 0xda, 0x22, 0x6e, 0x31, 0xf3, 0x69, 0xb0, 0xf4, 0x70, 0xc8, 0x1a, 0x11, -0xa2, 0xf9, 0x65, 0x93, 0xb5, 0x1b, 0xda, 0x0d, 0x65, 0xdf, 0x81, 0x9c, 0xdf, 0x49, 0x6c, 0x03, -0xdf, 0x52, 0x03, 0xf9, 0x64, 0x6f, 0x62, 0x1e, 0xf1, 0xcd, 0x4b, 0x69, 0x66, 0x1d, 0x04, 0x05, -0x26, 0xfd, 0xf4, 0x9e, 0x72, 0xb6, 0x99, 0x76, 0xad, 0x97, 0x8a, 0xdd, 0x76, 0x8c, 0x1d, 0x01, -0xd9, 0x8f, 0x54, 0x5a, 0x58, 0xce, 0x2d, 0x49, 0x9e, 0x4c, 0x2e, 0xa5, 0x3b, 0xa4, 0x58, 0xce, -0xd4, 0xce, 0xe4, 0x00, 0xa0, 0xd4, 0xa6, 0xd9, 0x1c, 0x06, 0x78, 0x81, 0xe7, 0xf0, 0xb7, 0xc9, -0xba, 0x2f, 0xca, 0x71, 0x17, 0xd4, 0x1f, 0x28, 0xb4, 0x8a, 0x48, 0xb7, 0xa9, 0x57, 0x37, 0x6e, -0x76, 0x58, 0x42, 0x67, 0xa9, 0xbe, 0x58, 0x8e, 0xd0, 0x5f, 0x46, 0xa6, 0xd4, 0x5b, 0x7e, 0xe4, -0x80, 0x32, 0x17, 0xc7, 0xba, 0x15, 0xac, 0xf5, 0x27, 0x11, 0xcb, 0x37, 0x5d, 0xd7, 0x09, 0x76, -0x30, 0x38, 0xf1, 0xd7, 0x49, 0x16, 0x31, 0xec, 0xbc, 0x6f, 0xfe, 0x4d, 0x4e, 0xb9, 0x90, 0x76, -0xfd, 0xc9, 0x8f, 0xca, 0xc1, 0xeb, 0x78, 0x0f, 0x20, 0xce, 0x40, 0x64, 0x39, 0x9d, 0xea, 0x64, -0x80, 0x17, 0xc3, 0xb6, 0xaa, 0x93, 0x50, 0xae, 0x9d, 0x0e, 0x7f, 0x54, 0x61, 0x4b, 0xc6, 0x9c, -0xf6, 0x13, 0xc1, 0x0b, 0xa8, 0xe6, 0xc6, 0xcd, 0x6e, 0x2f, 0xdf, 0x1d, 0x62, 0x46, 0xe9, 0xc1, -0x23, 0xf6, 0xc4, 0x93, 0xa4, 0x88, 0x12, 0xa2, 0x44, 0xbc, 0x46, 0x12, 0xb3, 0xec, 0xe0, 0x44, -0x6c, 0x71, 0xb8, 0xe0, 0xd8, 0xa5, 0x18, 0x86, 0x14, 0x20, 0xba, 0xeb, 0x5b, 0x21, 0x23, 0x6b, -0x1e, 0x3f, 0x42, 0x0e, 0xbc, 0x81, 0x57, 0x77, 0x09, 0x87, 0x36, 0x92, 0xd5, 0x63, 0xb2, 0x94, -0x40, 0x16, 0x3e, 0xa4, 0x08, 0xd8, 0x09, 0x97, 0x08, 0x8f, 0xa4, 0x0d, 0x04, 0x19, 0x74, 0xf9, -0xb4, 0x90, 0x46, 0xc2, 0x23, 0xc2, 0x21, 0x69, 0x83, 0xc0, 0xd1, 0x22, 0x3f, 0xc2, 0x32, 0x99, -0xeb, 0x0f, 0x5b, 0x36, 0xcb, 0x0d, 0x22, 0x4f, 0xb5, 0x44, 0xd3, 0x84, 0xb3, 0x2c, 0xc6, 0xb7, -0x48, 0x20, 0x6d, 0xa5, 0x9e, 0x0b, 0x7b, 0xa9, 0x4d, 0x13, 0x91, 0x96, 0xcd, 0xbb, 0x9e, 0xd6, -0x59, 0x71, 0x0c, 0xad, 0xc2, 0x59, 0x27, 0xfb, 0xa7, 0xfb, 0x50, 0xea, 0x63, 0x7b, 0xcf, 0x62, -0x8d, 0xfd, 0xa7, 0xfb, 0x42, 0x66, 0x8e, 0x17, 0x6c, 0xd9, 0x8c, 0x39, 0x89, 0xb0, 0x53, 0xec, -0xe3, 0x69, 0xd9, 0xec, 0xf5, 0x88, 0x7b, 0x25, 0x02, 0xf7, 0xd0, 0xbe, 0x2d, 0x18, 0x7f, 0x7d, -0x13, 0x3e, 0x9d, 0xf8, 0x28, 0xf8, 0xb4, 0xc3, 0xf8, 0x6f, 0x77, 0xe3, 0xf8, 0x50, 0xe1, 0xff, -0xf6, 0xcf, 0x7e, 0x47, 0x6d, 0xb0, 0x42, 0x6a, 0x8d, 0xf5, 0xf6, 0x95, 0x44, 0xba, 0xda, 0x62, -0xad, 0xb1, 0xfb, 0xa4, 0xf2, 0x05, 0x25, 0x65, 0x92, 0xb3, 0xac, 0xe4, 0xc6, 0x92, 0xb2, 0xd2, -0x05, 0x65, 0xf3, 0xaf, 0x30, 0x41, 0x66, 0x30, 0x80, 0x7f, 0x02, 0xc6, 0x5f, 0xc3, 0xe7, 0xd8, -0xce, 0xa1, 0xf9, 0xb3, 0x3a, 0xd0, 0xfd, 0x11, 0x3e, 0xff, 0x07, 0x6b, 0x95, 0x9f, 0xca, 0xd5, -0x81, 0x3e, 0x51, 0x76, 0x8d, 0xbf, 0x3e, 0xb6, 0xba, 0x23, 0xd6, 0xd3, 0x11, 0x29, 0x89, 0x75, -0xf4, 0xf5, 0xf6, 0xc7, 0x56, 0x76, 0xc0, 0xb2, 0xd6, 0xfb, 0x24, 0xe9, 0x26, 0x89, 0x32, 0xcf, -0xac, 0x89, 0x0e, 0xdb, 0xf4, 0x78, 0xb2, 0x56, 0x51, 0xed, 0x4e, 0x74, 0x71, 0x43, 0x9c, 0xb8, -0x4f, 0x51, 0x55, 0x89, 0xf6, 0xbd, 0x36, 0x2a, 0xee, 0xa4, 0xa3, 0xb9, 0x57, 0x9c, 0xf6, 0xa0, -0xf3, 0x20, 0x99, 0xb7, 0xd6, 0xbd, 0xb6, 0x25, 0x1d, 0x83, 0xd6, 0x34, 0xe9, 0xbe, 0x39, 0x7d, -0x89, 0xfa, 0x67, 0x3a, 0x1f, 0xf2, 0x0f, 0xbf, 0x11, 0x37, 0xcf, 0x09, 0x3b, 0x5a, 0x37, 0x92, -0x4d, 0x71, 0xb2, 0x9a, 0xa4, 0x56, 0x06, 0x39, 0x4d, 0x03, 0xed, 0x7b, 0x09, 0x2b, 0x53, 0x72, -0x1b, 0x23, 0xe9, 0xf7, 0x2b, 0x27, 0x05, 0x17, 0x41, 0x7a, 0xc9, 0x8c, 0xba, 0xec, 0xa4, 0xd5, -0xc3, 0xcc, 0xd8, 0xaf, 0x37, 0x52, 0xec, 0xca, 0x15, 0x1c, 0x9b, 0xe8, 0x47, 0x3b, 0xed, 0xb4, -0x4b, 0xc5, 0x7f, 0x5c, 0x5b, 0x99, 0x4c, 0xad, 0x9d, 0xbd, 0xb6, 0x23, 0x99, 0x7b, 0x46, 0xac, -0xdd, 0x2c, 0x5d, 0x27, 0xeb, 0xd4, 0x28, 0x4e, 0xf4, 0xc4, 0xa0, 0x8c, 0xf6, 0x43, 0xf9, 0xb7, -0x8e, 0x1d, 0x1a, 0x4a, 0xcd, 0xf2, 0xb4, 0x2a, 0x9c, 0x9f, 0x69, 0x43, 0xda, 0x9d, 0x43, 0x7b, -0xd9, 0x5e, 0x77, 0xa5, 0x38, 0x04, 0xb6, 0xad, 0x30, 0x0f, 0x29, 0xaf, 0xd8, 0x7d, 0xc5, 0x1a, -0x9f, 0x32, 0xba, 0x69, 0xc4, 0x11, 0x88, 0xce, 0x4c, 0xed, 0xa8, 0x7c, 0xdd, 0x41, 0x94, 0xe2, -0x37, 0xb4, 0xaf, 0x89, 0xce, 0xd3, 0xc2, 0x53, 0xc1, 0x11, 0x29, 0xd7, 0x9c, 0x48, 0xd0, 0x79, -0xac, 0xe6, 0x36, 0x5e, 0x07, 0xe1, 0x2f, 0x7d, 0xb8, 0xb2, 0xcd, 0xc3, 0x2e, 0x5d, 0x28, 0xa6, -0xb8, 0xd8, 0x35, 0x33, 0xec, 0xa7, 0xf0, 0x36, 0x13, 0x7f, 0xcd, 0x08, 0xdd, 0xa9, 0x94, 0xb0, -0xcb, 0x18, 0xa6, 0xb7, 0x0e, 0xf4, 0x21, 0x9f, 0x77, 0x8b, 0xd2, 0x18, 0x9d, 0x4f, 0xfc, 0xab, -0x94, 0x50, 0xea, 0xa2, 0x66, 0x65, 0x9c, 0x52, 0x48, 0x7b, 0x01, 0xbe, 0x3c, 0xaa, 0x2c, 0xc4, -0xf7, 0xf8, 0xeb, 0x95, 0x4a, 0x49, 0x54, 0x55, 0xde, 0x76, 0x21, 0xdd, 0x12, 0xa7, 0x72, 0xa5, -0xca, 0x75, 0x67, 0x80, 0x4e, 0x0f, 0x05, 0x0b, 0x81, 0x63, 0x3f, 0xa0, 0xd0, 0xcd, 0x91, 0x06, -0xef, 0x16, 0x94, 0x0c, 0xf4, 0x76, 0x03, 0xdd, 0x9b, 0xc4, 0xd6, 0xd1, 0x0e, 0xf1, 0x79, 0x12, -0x50, 0x03, 0x72, 0x75, 0xaa, 0xd5, 0x6d, 0x49, 0x7b, 0xe5, 0x0d, 0x95, 0xe2, 0x9e, 0x09, 0x1e, -0x43, 0xe7, 0xad, 0x4e, 0x7c, 0xca, 0x61, 0xfc, 0xa3, 0x03, 0xfc, 0x9c, 0x5f, 0x9d, 0x0f, 0xe7, -0xed, 0x27, 0xe1, 0x7c, 0xf7, 0x69, 0x38, 0xff, 0x7d, 0x1b, 0x9c, 0xff, 0x1a, 0xbe, 0x23, 0xe8, -0x37, 0xfc, 0x38, 0x9c, 0xaf, 0xb0, 0xc3, 0xf9, 0xc1, 0x0b, 0x70, 0x5e, 0x09, 0xc1, 0xf9, 0xef, -0xfa, 0xe0, 0xfc, 0x62, 0x05, 0xce, 0xd7, 0x1e, 0x83, 0xf3, 0x4b, 0xda, 0x31, 0x9e, 0x07, 0xce, -0x17, 0x8c, 0xc0, 0xf9, 0x72, 0x7c, 0xee, 0xdc, 0x01, 0xe7, 0x6f, 0x78, 0x12, 0xce, 0x5b, 0x22, -0x70, 0xfe, 0xeb, 0x98, 0xd7, 0x77, 0xd3, 0x48, 0x7d, 0xfe, 0x2b, 0x87, 0xe0, 0xfc, 0xba, 0xa3, -0x70, 0xfe, 0xc1, 0x16, 0x8c, 0x8b, 0xf1, 0x6e, 0x6e, 0x80, 0xf3, 0x4f, 0x36, 0x62, 0x19, 0xe5, -0x18, 0xf7, 0x09, 0x38, 0x5f, 0x37, 0x06, 0xe7, 0xf3, 0xde, 0x86, 0xf3, 0x81, 0x33, 0x70, 0xfe, -0x16, 0x2c, 0x6b, 0x1d, 0x96, 0xfb, 0xe4, 0x38, 0x9c, 0x4f, 0x60, 0xd9, 0x56, 0x2c, 0xa3, 0x15, -0xe3, 0xb5, 0x46, 0xe1, 0xfc, 0xdf, 0xe3, 0xf7, 0xdf, 0x63, 0xf9, 0xeb, 0xb0, 0xfe, 0xeb, 0x30, -0x0f, 0xdf, 0x39, 0x38, 0xbf, 0x0c, 0xfd, 0xbe, 0xb3, 0x1b, 0xdf, 0x98, 0xe6, 0xb6, 0x3c, 0x38, -0x5f, 0x7f, 0x10, 0xdd, 0x58, 0xce, 0x3f, 0x58, 0x30, 0xee, 0x4b, 0x70, 0xbe, 0xa1, 0x06, 0xce, -0x6f, 0xfc, 0x08, 0xeb, 0xbd, 0x05, 0xdb, 0x39, 0x88, 0x65, 0xae, 0xc0, 0xf2, 0x30, 0xaf, 0x11, -0x4c, 0x1b, 0xc6, 0x3c, 0x42, 0x58, 0xf6, 0x26, 0x6c, 0xf3, 0x10, 0xd6, 0xe3, 0x01, 0xac, 0x43, -0x35, 0x86, 0xff, 0x5d, 0x33, 0x9c, 0x6f, 0xc3, 0x3c, 0xe6, 0x9a, 0xd1, 0x0f, 0xdf, 0x0f, 0xec, -0xc4, 0xf6, 0x4e, 0x20, 0x7c, 0x72, 0xe0, 0xfc, 0xad, 0xcf, 0xc3, 0xf9, 0x4a, 0x2b, 0x86, 0x61, -0xfc, 0xf9, 0xbf, 0xc7, 0x3a, 0x62, 0x3b, 0x6e, 0xc3, 0x36, 0x8f, 0x24, 0xe0, 0xfc, 0x1d, 0x95, -0x18, 0x77, 0x13, 0x7e, 0x63, 0xfa, 0x75, 0x98, 0xc6, 0x8f, 0x75, 0x09, 0x61, 0xb9, 0x23, 0x4f, -0xa1, 0x1f, 0xbe, 0xd7, 0xbf, 0x83, 0x71, 0x30, 0xee, 0x83, 0x46, 0x7c, 0x1f, 0xc7, 0x6f, 0xac, -0xc7, 0x1d, 0x18, 0xf7, 0x51, 0x84, 0xd7, 0x9c, 0x13, 0x70, 0xfe, 0x8b, 0x98, 0xf7, 0x97, 0x30, -0xce, 0x17, 0xb1, 0x3e, 0x7f, 0x87, 0xf9, 0x05, 0xfd, 0x08, 0x93, 0x4e, 0x84, 0x3d, 0xc2, 0xf5, -0xbb, 0x08, 0xc3, 0x2f, 0x63, 0xb9, 0x83, 0xd8, 0x07, 0x56, 0xcc, 0x7b, 0x29, 0xba, 0xc3, 0xf8, -0x6e, 0xdd, 0x8b, 0x71, 0xb0, 0xed, 0x77, 0xbe, 0x8e, 0x6d, 0xc5, 0xb6, 0xac, 0xc5, 0xbe, 0xfb, -0x1a, 0xf6, 0x87, 0x15, 0xdb, 0x5d, 0x80, 0xb0, 0xba, 0x71, 0x11, 0x9c, 0x7f, 0xf8, 0x7e, 0x38, -0xff, 0xcb, 0x6d, 0x18, 0xc7, 0x80, 0x69, 0xb0, 0x2e, 0xd7, 0x60, 0x3b, 0x97, 0xe2, 0xf7, 0x20, -0xc2, 0x63, 0x2e, 0xb6, 0xb7, 0x07, 0xcb, 0xf0, 0x63, 0x3b, 0x07, 0xb0, 0xcc, 0x47, 0xb1, 0x5f, -0x57, 0x62, 0xbc, 0x95, 0x03, 0x08, 0x83, 0xfd, 0x08, 0xaf, 0x51, 0x6c, 0x43, 0xb3, 0xe8, 0xc7, -0x65, 0x9f, 0x88, 0xb7, 0x1f, 0xcb, 0x8e, 0x20, 0xde, 0x5c, 0x83, 0x7d, 0xb3, 0x09, 0xf3, 0x5e, -0x8c, 0x75, 0x7f, 0x10, 0xcb, 0x6e, 0xc1, 0xef, 0x0a, 0x8c, 0xbf, 0x14, 0xfb, 0xf1, 0xba, 0x17, -0x10, 0xa7, 0xd0, 0xcf, 0x8e, 0xfd, 0xfe, 0x7d, 0xcc, 0xbf, 0x1b, 0xf3, 0x7a, 0x52, 0xc3, 0x87, -0x08, 0xe2, 0x40, 0x28, 0x8e, 0xe9, 0x24, 0x84, 0x3b, 0x86, 0xd5, 0x62, 0xfd, 0xd7, 0x9b, 0xd3, -0xf8, 0x32, 0x2c, 0x11, 0x4d, 0xf7, 0x56, 0x37, 0x36, 0x48, 0x05, 0x7d, 0x2e, 0xa9, 0x66, 0xc1, -0x2d, 0x05, 0x51, 0xa9, 0xa6, 0x8c, 0x7f, 0x6f, 0xe0, 0xdf, 0x72, 0xfc, 0x75, 0x49, 0x4b, 0xee, -0x90, 0x0a, 0xa2, 0x26, 0x9c, 0xbb, 0xf0, 0x2f, 0x15, 0x71, 0xfa, 0xb7, 0x54, 0xdf, 0x5b, 0x1b, -0x8b, 0x71, 0x40, 0xdf, 0x7d, 0x7d, 0xc1, 0x8e, 0x7b, 0xfa, 0x3b, 0xfa, 0xe2, 0x70, 0x5b, 0x7f, -0x47, 0x7f, 0x47, 0x63, 0xeb, 0xca, 0xd5, 0x1d, 0x71, 0xe8, 0x6e, 0x5d, 0xdd, 0xb1, 0xe4, 0x8e, -0xd6, 0x58, 0x47, 0x2b, 0x44, 0x7a, 0x7b, 0xc2, 0xab, 0xfa, 0xbb, 0xa3, 0xb0, 0x12, 0xbf, 0xe2, -0x1d, 0x2b, 0x7b, 0xa1, 0xbd, 0x23, 0xd2, 0xc1, 0x8e, 0x95, 0xad, 0x91, 0x08, 0xbd, 0x7a, 0xef, -0x6d, 0xed, 0x8a, 0x03, 0x52, 0xf1, 0xfe, 0x6e, 0xf2, 0xee, 0xec, 0x8d, 0xb4, 0x37, 0xb7, 0xf6, -0xad, 0xa6, 0xcc, 0xe3, 0x1d, 0xdd, 0xc9, 0xfc, 0xe3, 0x5d, 0xed, 0xf7, 0x21, 0xe5, 0xfe, 0x2a, -0xc6, 0xad, 0xeb, 0x8d, 0x55, 0x77, 0xb6, 0xc6, 0x20, 0x8e, 0xb1, 0x28, 0xed, 0xdd, 0x0b, 0x6e, -0x2e, 0xc5, 0x6c, 0xba, 0xa3, 0x58, 0x62, 0x73, 0x57, 0x77, 0x07, 0xdd, 0xcf, 0x05, 0x33, 0xa0, -0xe0, 0x6f, 0x9a, 0xaf, 0xc6, 0x3f, 0xb6, 0xe3, 0x13, 0xc1, 0x67, 0x60, 0x9a, 0xff, 0x0e, 0x7c, -0x90, 0x92, 0x7c, 0x7c, 0x08, 0x9f, 0x13, 0xf8, 0x8c, 0x0b, 0xff, 0x33, 0x66, 0x7c, 0x9a, 0xf1, -0xc1, 0xb9, 0xf3, 0x0c, 0xca, 0x28, 0x67, 0xb6, 0xe0, 0xf3, 0x14, 0x3e, 0xbb, 0xf1, 0x39, 0x88, -0xcf, 0xdb, 0xf8, 0x9c, 0x83, 0xf1, 0x3f, 0x18, 0xf1, 0xc9, 0xc7, 0xa7, 0x14, 0x9f, 0x1a, 0x91, -0xf6, 0x0f, 0x2d, 0xe9, 0xfc, 0xff, 0x80, 0x65, 0xfe, 0x21, 0x81, 0x0f, 0x75, 0xe6, 0x83, 0x9a, -0x1f, 0x96, 0xf7, 0x87, 0x63, 0xf8, 0x60, 0x1e, 0x7f, 0x38, 0x8d, 0xcf, 0x84, 0xf0, 0x3f, 0x6b, -0xc3, 0x07, 0xe9, 0xcc, 0xd9, 0x86, 0x74, 0xfa, 0xb3, 0x98, 0xfe, 0xec, 0x2e, 0x7c, 0x8e, 0xe2, -0x83, 0xf5, 0x3b, 0x7b, 0x06, 0x9f, 0x71, 0x18, 0xff, 0xa3, 0x01, 0x1f, 0x27, 0x3e, 0x51, 0x7c, -0xb0, 0x6e, 0x7f, 0xdc, 0x89, 0x0f, 0xfa, 0x9f, 0xf3, 0xe0, 0x33, 0x8a, 0x0f, 0xb6, 0xe7, 0x4f, -0x98, 0xdf, 0x9f, 0xb0, 0x5e, 0x7f, 0x6a, 0xc4, 0x07, 0xf3, 0xf9, 0xd3, 0x33, 0xf8, 0x20, 0x0d, -0xfb, 0x13, 0xc6, 0xfb, 0x13, 0xce, 0xc4, 0x9f, 0x58, 0xf0, 0xa9, 0xc4, 0x07, 0xc3, 0x3e, 0x19, -0xc1, 0xe7, 0x71, 0x7c, 0xb0, 0x7d, 0x9f, 0x60, 0xda, 0x4f, 0x4e, 0xc2, 0xf8, 0x9f, 0xb1, 0x6d, -0x7f, 0xc6, 0xf4, 0x7f, 0x46, 0x38, 0xfc, 0xf9, 0x09, 0x7c, 0xb0, 0x8c, 0x3f, 0xa3, 0xff, 0x38, -0x96, 0x3d, 0x8e, 0x70, 0x19, 0xc7, 0xf8, 0xe3, 0xd8, 0x86, 0xf3, 0x18, 0xe7, 0x7c, 0x03, 0x3e, -0xe8, 0x77, 0x1e, 0xf3, 0x39, 0x8f, 0x30, 0x3d, 0x8f, 0x30, 0x3a, 0x8f, 0x6d, 0xbb, 0x80, 0x70, -0xbc, 0x20, 0xe1, 0x83, 0xed, 0xba, 0x80, 0xf9, 0x5c, 0x88, 0xe3, 0x83, 0xf5, 0xbb, 0x80, 0xf9, -0x7d, 0x8a, 0xe9, 0x3e, 0xc5, 0xfa, 0x7c, 0x8a, 0x79, 0x7c, 0x8a, 0xf5, 0x99, 0xb0, 0xe2, 0xe3, -0x82, 0xf3, 0xe6, 0x15, 0xf8, 0xc6, 0x76, 0x4c, 0xb4, 0xe0, 0x83, 0xf9, 0x4d, 0x60, 0xbb, 0x27, -0x30, 0xfc, 0x22, 0xc6, 0xbf, 0x88, 0x65, 0x5e, 0xdc, 0x25, 0x60, 0x73, 0x11, 0xd3, 0x4e, 0x62, -0x1b, 0x26, 0x6b, 0xf0, 0xc1, 0x34, 0x93, 0xd8, 0x3f, 0x93, 0xfb, 0xf1, 0xc1, 0xf8, 0x1a, 0x8b, -0x33, 0xae, 0x2e, 0xc2, 0x07, 0xeb, 0xa6, 0xb6, 0x5f, 0x8a, 0x13, 0x2a, 0xf6, 0xab, 0x8a, 0xf1, -0x55, 0xec, 0x0b, 0x15, 0xe9, 0x1b, 0x20, 0x1d, 0x01, 0x1c, 0xff, 0x80, 0x63, 0x1b, 0xa7, 0xb4, -0xf3, 0xb0, 0x0b, 0x1f, 0xa4, 0x23, 0x80, 0xe3, 0x15, 0x70, 0x8c, 0xea, 0x70, 0xac, 0xe9, 0x70, -0x0c, 0xea, 0x90, 0xbe, 0xea, 0x9a, 0x2f, 0x8b, 0x67, 0xe7, 0x75, 0x71, 0xed, 0x8d, 0x74, 0x4d, -0x87, 0xe3, 0x56, 0x87, 0x74, 0x4b, 0x87, 0xb4, 0x19, 0xa5, 0x81, 0xf3, 0xfa, 0xce, 0x4b, 0xe3, -0xeb, 0x91, 0x26, 0x65, 0x95, 0x4f, 0xf7, 0x26, 0x5e, 0xe9, 0x2d, 0xa4, 0xda, 0x87, 0x3a, 0xa1, -0x6c, 0x16, 0x42, 0xeb, 0xbd, 0x0f, 0xf0, 0x3b, 0x00, 0xe7, 0xaf, 0xda, 0x9d, 0xc9, 0x7e, 0xb5, -0x67, 0x70, 0x5f, 0x37, 0x96, 0x96, 0x2c, 0x2c, 0x9f, 0xca, 0x7e, 0x41, 0x02, 0x66, 0x1e, 0x21, -0x5b, 0x1b, 0xf8, 0x7e, 0x55, 0x7b, 0x1f, 0xd5, 0xde, 0xaf, 0xd1, 0x3b, 0x0d, 0x89, 0x93, 0x67, -0xf1, 0xb9, 0x00, 0xe3, 0xef, 0x67, 0xe1, 0x33, 0x0b, 0x9f, 0xab, 0xf1, 0x99, 0x83, 0xcf, 0x3c, -0x7c, 0xe6, 0xe3, 0x73, 0x03, 0x3e, 0x88, 0x29, 0xef, 0x57, 0xe3, 0x83, 0xd0, 0x7c, 0x1f, 0x31, -0xea, 0x7d, 0xec, 0xcd, 0xf7, 0xb1, 0x87, 0xde, 0x47, 0xc8, 0xbf, 0x8f, 0xdc, 0xe5, 0xfb, 0xc8, -0x5d, 0xbe, 0x8f, 0x18, 0xf0, 0x3e, 0x62, 0xd3, 0xfb, 0x88, 0x95, 0xef, 0x63, 0x4f, 0xbf, 0x9f, -0x1c, 0x6d, 0xd7, 0xe2, 0x43, 0x3a, 0x8b, 0xaf, 0xe3, 0x43, 0xb3, 0x2d, 0x71, 0x6c, 0x2f, 0xe0, -0x43, 0xf5, 0x38, 0x87, 0x6c, 0x41, 0x2e, 0x3e, 0x0b, 0xf0, 0x59, 0x8e, 0x69, 0xb0, 0x57, 0xde, -0x1f, 0xc6, 0x67, 0x54, 0x4b, 0x4b, 0x1b, 0xf4, 0x89, 0xda, 0x59, 0xf0, 0xb1, 0xe2, 0x23, 0x11, -0x00, 0xf0, 0x71, 0xd6, 0xf4, 0xf6, 0xdd, 0xbd, 0xe0, 0xa6, 0xbb, 0x6b, 0x07, 0x5a, 0xbb, 0xbb, -0x7a, 0x3a, 0x80, 0x3f, 0x17, 0xe1, 0x67, 0xa0, 0x63, 0x20, 0x9e, 0x6a, 0x9b, 0x41, 0x4b, 0x69, -0xd4, 0xde, 0x38, 0xcf, 0x7d, 0x1d, 0xfb, 0xf5, 0xeb, 0x48, 0x67, 0xbf, 0xfe, 0x26, 0x3e, 0x2f, -0x7d, 0x56, 0xbc, 0x44, 0xd2, 0x17, 0x3c, 0x20, 0x65, 0xd1, 0xbb, 0xca, 0x2b, 0xa2, 0x26, 0x20, -0xeb, 0x7d, 0x7c, 0x4e, 0xe1, 0xf3, 0x01, 0x3e, 0xa7, 0xf1, 0xf9, 0x10, 0x9f, 0x8f, 0xf0, 0xf9, -0x18, 0x1f, 0x1c, 0xee, 0x59, 0xe3, 0xf8, 0x5c, 0xc0, 0xe7, 0x22, 0x3e, 0x08, 0x6f, 0x83, 0x9e, -0xd2, 0x71, 0x05, 0x6f, 0xbc, 0xfb, 0xf6, 0x9e, 0x86, 0xde, 0x95, 0xab, 0x21, 0xbf, 0xa7, 0x37, -0x2e, 0x75, 0xf4, 0xf4, 0xf6, 0x87, 0x3b, 0xa5, 0xee, 0x8e, 0xee, 0x5e, 0xec, 0xc4, 0xd6, 0x35, -0xad, 0x5d, 0x91, 0xd6, 0xb6, 0x48, 0x07, 0x5c, 0x1d, 0x8d, 0xf5, 0xae, 0xec, 0xe8, 0xeb, 0x93, -0xe2, 0xf4, 0x29, 0x85, 0xfa, 0x23, 0x11, 0xb8, 0xa2, 0xad, 0xb5, 0x5d, 0x42, 0x9a, 0x19, 0x8d, -0x20, 0xa9, 0x85, 0xd9, 0xf4, 0xd5, 0xd3, 0xdf, 0xdd, 0xd6, 0x11, 0x83, 0x39, 0x31, 0x24, 0xa3, -0x5d, 0xb1, 0x8e, 0x76, 0xe4, 0xc8, 0xc3, 0x48, 0x67, 0x7b, 0xe2, 0x52, 0x77, 0x57, 0x5f, 0x5f, -0x57, 0x4f, 0x18, 0xf2, 0xd7, 0xb4, 0x46, 0xfa, 0x3b, 0xa4, 0xd6, 0x50, 0xbc, 0x23, 0x26, 0xad, -0xee, 0xb8, 0xef, 0xde, 0xde, 0x58, 0x7b, 0x2a, 0x70, 0xce, 0xbd, 0x31, 0x24, 0xe0, 0x5a, 0x2e, -0x52, 0x6f, 0x28, 0x95, 0xbc, 0x0f, 0xae, 0xea, 0xef, 0xe9, 0x6e, 0x8d, 0xaf, 0xec, 0xc4, 0x3c, -0xef, 0xe9, 0xef, 0x8d, 0x77, 0xf4, 0x81, 0x9c, 0xca, 0x3b, 0x82, 0xd0, 0x96, 0xba, 0x7a, 0x30, -0xe7, 0xae, 0x76, 0xa9, 0x37, 0x26, 0xc5, 0x7b, 0x7b, 0x25, 0x9a, 0x09, 0xe0, 0x0b, 0xa1, 0x2e, -0xac, 0x6c, 0x57, 0x9f, 0xc4, 0x4d, 0x1b, 0xe8, 0x58, 0xd9, 0xcf, 0xd5, 0x87, 0x2f, 0x26, 0x23, -0xe3, 0x34, 0xd0, 0xd5, 0x2e, 0xb2, 0x10, 0x52, 0xc1, 0x35, 0x3d, 0xbd, 0x52, 0x7b, 0x47, 0xa8, -0xb5, 0x3f, 0x12, 0x97, 0xda, 0xb1, 0x05, 0x2b, 0xe3, 0x08, 0x07, 0xb8, 0xaa, 0xb7, 0x6d, 0x15, -0x3a, 0x29, 0xa7, 0xae, 0x1e, 0xa9, 0xbf, 0xaf, 0x03, 0xf2, 0x34, 0x9f, 0xd6, 0x08, 0x4e, 0x34, -0xed, 0xf7, 0x61, 0xe6, 0x5d, 0x7d, 0x58, 0x4b, 0x6b, 0x2a, 0x0d, 0x17, 0x19, 0xea, 0xed, 0xef, -0x69, 0x4f, 0xa5, 0x4e, 0xfb, 0x7c, 0x29, 0x59, 0xfe, 0xbd, 0x5d, 0x3d, 0xed, 0xbd, 0xf7, 0x62, -0x89, 0x7d, 0x2b, 0x63, 0x5d, 0xd1, 0x78, 0x57, 0x6f, 0x4f, 0x2a, 0x36, 0x37, 0x02, 0x9b, 0xd8, -0x01, 0xd7, 0x52, 0x2b, 0xc4, 0xf4, 0x24, 0xb5, 0xae, 0xa4, 0x48, 0x52, 0xfc, 0xbe, 0x68, 0x87, -0xd4, 0xdf, 0xb3, 0xba, 0xa7, 0xf7, 0xde, 0x1e, 0xb0, 0x26, 0xf3, 0x6f, 0xed, 0x4e, 0x81, 0x01, -0xac, 0x29, 0x78, 0x88, 0xc0, 0x08, 0x75, 0xf1, 0xb5, 0xe9, 0x76, 0x50, 0x65, 0x10, 0xc0, 0xa9, -0x8e, 0xa2, 0x1c, 0xe1, 0xea, 0xf6, 0xae, 0xbe, 0xd5, 0x1c, 0xc4, 0x69, 0xb1, 0x5b, 0xdb, 0xc1, -0xc6, 0x7e, 0x98, 0xe2, 0xde, 0x58, 0x57, 0xbc, 0xa3, 0x18, 0xf1, 0x00, 0xa7, 0x53, 0x0a, 0xc0, -0xb4, 0x5c, 0x62, 0xeb, 0x4a, 0x14, 0xab, 0xfa, 0xb0, 0x0d, 0x6b, 0xba, 0x10, 0x43, 0xa4, 0xd6, -0x38, 0xa1, 0x04, 0x45, 0x98, 0x06, 0x0c, 0xf2, 0xbd, 0x0f, 0x2c, 0xd4, 0xae, 0xee, 0xd6, 0x9e, -0xfb, 0xa4, 0x48, 0xc7, 0x9a, 0x8e, 0x08, 0x76, 0xa3, 0x48, 0x28, 0x39, 0xb1, 0xe3, 0xd6, 0xf4, -0x46, 0xb0, 0x47, 0xe7, 0x27, 0xeb, 0xd7, 0x8d, 0xc0, 0xa2, 0x8c, 0xae, 0xe8, 0xeb, 0xe8, 0x58, -0x2d, 0x85, 0x10, 0x17, 0xfb, 0x63, 0x1d, 0x60, 0xc5, 0xb9, 0x97, 0xbb, 0x1d, 0x63, 0xa5, 0x7a, -0xfa, 0x8a, 0x64, 0x2d, 0x19, 0x33, 0xe5, 0x74, 0x3b, 0x53, 0xf5, 0x95, 0x42, 0xb1, 0xde, 0x6e, -0x89, 0xd9, 0x01, 0x02, 0xb3, 0x2d, 0x89, 0x1a, 0xdc, 0xac, 0x74, 0xb4, 0x34, 0xce, 0x50, 0xc7, -0x66, 0xf8, 0x5f, 0x43, 0x35, 0x6a, 0x15, 0x80, 0x91, 0x6a, 0x96, 0x37, 0x49, 0x54, 0x22, 0x5c, -0x45, 0xf8, 0xc2, 0x45, 0xf7, 0x48, 0xed, 0xb1, 0xae, 0x35, 0x1d, 0xf0, 0x65, 0xf4, 0xc1, 0xc1, -0xd3, 0x81, 0x43, 0x29, 0x1e, 0xeb, 0xea, 0x60, 0x8c, 0x49, 0x63, 0x92, 0x35, 0x5d, 0xb3, 0xbe, -0xde, 0x10, 0xa3, 0xee, 0xea, 0x4c, 0xf4, 0xa2, 0x6f, 0x2c, 0x2c, 0x97, 0x06, 0x53, 0xa4, 0xb7, -0xb5, 0x9d, 0x2b, 0xd3, 0x89, 0x3d, 0x0d, 0x5f, 0x0c, 0xf5, 0xf7, 0x88, 0xce, 0xa7, 0x8a, 0x74, -0xe1, 0xa8, 0xeb, 0x20, 0x28, 0x50, 0x64, 0xcc, 0x9c, 0x46, 0x11, 0xf9, 0x53, 0x37, 0xa3, 0x57, -0x9e, 0xe6, 0x45, 0x9f, 0xd2, 0xca, 0xde, 0x48, 0xa4, 0xab, 0x8f, 0x1a, 0x6d, 0xcd, 0xf4, 0x8e, -0x23, 0xef, 0xd2, 0xdb, 0x1f, 0x4f, 0x79, 0xf6, 0xf7, 0xb0, 0x77, 0x47, 0x2c, 0xd6, 0x1b, 0x03, -0x4b, 0x5b, 0x7f, 0x28, 0x44, 0x63, 0x70, 0x4d, 0x47, 0x2c, 0x14, 0xe9, 0xbd, 0x17, 0x66, 0x15, -0x16, 0x16, 0x7a, 0x11, 0x24, 0xab, 0xc1, 0xca, 0x75, 0x9a, 0x36, 0xa2, 0xbe, 0x7c, 0x07, 0x77, -0x9d, 0x24, 0x17, 0xf4, 0xc9, 0xc9, 0xee, 0x4b, 0xe3, 0xd0, 0xb5, 0xd3, 0x42, 0xa7, 0xc3, 0xfc, -0xfa, 0xc6, 0x48, 0x47, 0x6b, 0x1f, 0x21, 0x6f, 0x5f, 0x47, 0x2c, 0xae, 0xa1, 0x81, 0x16, 0xbb, -0x47, 0x22, 0x64, 0x11, 0xb0, 0x75, 0x6a, 0xf1, 0x62, 0x1d, 0x48, 0x73, 0x10, 0x67, 0x3e, 0x33, -0xe2, 0x75, 0x7f, 0x39, 0x22, 0xbd, 0xc1, 0x3a, 0xad, 0x52, 0x8c, 0x39, 0x5f, 0x08, 0x70, 0x2f, -0x27, 0xfb, 0x37, 0x15, 0xd9, 0x16, 0xd0, 0xfa, 0x39, 0x8a, 0x24, 0x83, 0x91, 0x4f, 0x0b, 0x70, -0x7c, 0xad, 0xb7, 0x5f, 0x5a, 0x76, 0x7b, 0x53, 0xf3, 0x5f, 0x2a, 0x6b, 0x1e, 0x5c, 0x97, 0x59, -0x58, 0x67, 0x2b, 0x0e, 0x13, 0xc6, 0x2f, 0xb7, 0x80, 0x84, 0x80, 0x79, 0x76, 0xb0, 0x23, 0x8e, -0x28, 0x32, 0xb3, 0xba, 0xb5, 0x67, 0x65, 0x47, 0x04, 0xae, 0x6a, 0x12, 0x43, 0x3e, 0x26, 0x58, -0x52, 0x22, 0xab, 0x84, 0x5a, 0x44, 0x04, 0x91, 0x56, 0x4a, 0xb5, 0x11, 0x6c, 0x1f, 0x8e, 0x99, -0xda, 0x9e, 0xf6, 0xfa, 0x10, 0x54, 0xc4, 0x3b, 0xb1, 0x09, 0x34, 0x32, 0x5a, 0x7b, 0xda, 0x19, -0xbb, 0xfa, 0xa3, 0xd1, 0xde, 0x3e, 0x1a, 0xd8, 0xbd, 0x52, 0x5b, 0x07, 0xd1, 0xac, 0x76, 0xaa, -0x4d, 0x32, 0x06, 0x93, 0x14, 0xa9, 0xb7, 0x27, 0x82, 0x23, 0x12, 0x29, 0x52, 0x47, 0x08, 0x49, -0x68, 0xbb, 0x56, 0x0f, 0xfa, 0x0b, 0x6b, 0x4f, 0x97, 0xf6, 0x90, 0xef, 0x5a, 0x7c, 0x5e, 0xc6, -0xe7, 0xff, 0xe0, 0x73, 0x18, 0x9f, 0x77, 0xf0, 0x39, 0x89, 0xcf, 0x69, 0x7c, 0x50, 0xc6, 0x85, -0x3f, 0xe2, 0x7c, 0xe9, 0x16, 0xf3, 0xe6, 0x95, 0xc8, 0x5d, 0x5e, 0xf9, 0x23, 0x80, 0xab, 0x71, -0xce, 0xbc, 0x7a, 0x23, 0xc0, 0xf5, 0x38, 0x83, 0x5d, 0x7f, 0x55, 0x72, 0x0a, 0xfc, 0x66, 0x6d, -0x43, 0x1d, 0x9c, 0x3f, 0x70, 0x16, 0x20, 0xeb, 0x8f, 0x70, 0x7e, 0x2c, 0x7b, 0x39, 0x56, 0x43, -0xaa, 0x0a, 0x22, 0xcc, 0xbb, 0x17, 0x2e, 0x5a, 0x2d, 0x35, 0x75, 0xc4, 0x1b, 0xa9, 0x95, 0xa9, -0x66, 0xc4, 0x10, 0x47, 0x4a, 0x90, 0xfd, 0xef, 0x88, 0x47, 0xc9, 0x1f, 0x52, 0x11, 0x28, 0x4d, -0x31, 0xa5, 0x81, 0x58, 0x3c, 0x9c, 0xd2, 0xec, 0x64, 0xb0, 0x21, 0x50, 0xd0, 0x57, 0x21, 0x41, -0x41, 0x1b, 0xfe, 0x64, 0xfa, 0x12, 0xea, 0xc7, 0x4a, 0x04, 0xe1, 0x41, 0x09, 0xa1, 0xad, 0x3f, -0x9d, 0x18, 0xb9, 0xfa, 0x78, 0x17, 0x0d, 0xb3, 0x94, 0x4f, 0x1d, 0x82, 0x4a, 0x74, 0x45, 0x5a, -0xf7, 0xd3, 0xf4, 0xb5, 0xa6, 0x8a, 0x29, 0x39, 0x76, 0x0c, 0x44, 0x5b, 0x7b, 0xfa, 0x3e, 0x47, -0x32, 0xa8, 0xe6, 0xc4, 0xd5, 0xd0, 0x50, 0xef, 0x6d, 0x62, 0x67, 0x43, 0x57, 0x5b, 0x1f, 0xd4, -0xd4, 0xde, 0x21, 0xbe, 0x6a, 0x3a, 0xd6, 0xf4, 0x41, 0x83, 0x08, 0x00, 0xe1, 0xd5, 0x04, 0x75, -0xcb, 0x03, 0xcd, 0xc2, 0x5d, 0xd7, 0x4b, 0x93, 0x61, 0x6d, 0xe0, 0x8e, 0xaa, 0xa0, 0xc8, 0xa8, -0x31, 0xd6, 0x11, 0xea, 0x73, 0xd7, 0xf6, 0xac, 0x29, 0xae, 0x8a, 0x21, 0x62, 0x20, 0xee, 0x7b, -0x7b, 0x11, 0x85, 0x97, 0x11, 0xe9, 0x04, 0x08, 0x74, 0xdc, 0x2b, 0x35, 0x8a, 0x99, 0x1b, 0xda, -0x8b, 0x97, 0x15, 0x63, 0xb5, 0xfa, 0xe3, 0x44, 0x44, 0xa1, 0xb9, 0x17, 0x89, 0x54, 0x0c, 0x07, -0x76, 0x73, 0x6f, 0x7b, 0xeb, 0x7d, 0xf0, 0x35, 0xc6, 0x30, 0x72, 0x35, 0x21, 0x3a, 0xe0, 0x6b, -0x59, 0x2f, 0xbf, 0x9a, 0x11, 0xf5, 0xe8, 0xfd, 0xd5, 0x8e, 0xf6, 0x1e, 0xe1, 0x6a, 0xee, 0xec, -0x8f, 0xb1, 0xa3, 0x2e, 0xd6, 0xc5, 0xf1, 0x5b, 0x31, 0x43, 0x72, 0xf8, 0x5b, 0x7b, 0xa0, 0xae, -0xa3, 0x0d, 0x96, 0xa1, 0xac, 0x54, 0x15, 0x8d, 0x91, 0x7e, 0x0c, 0xfc, 0xfd, 0x3d, 0xf8, 0x44, -0xa0, 0xaa, 0x3f, 0x8c, 0xbd, 0x16, 0x85, 0xe5, 0x2b, 0xe3, 0x10, 0xe8, 0x5d, 0x03, 0x35, 0x1d, -0x2b, 0xe1, 0x3e, 0xac, 0x4f, 0x3b, 0x74, 0x17, 0xb7, 0x63, 0xad, 0xda, 0x8b, 0xbb, 0xf1, 0x57, -0x34, 0xab, 0x02, 0xba, 0x7a, 0xe2, 0xfd, 0x53, 0xfb, 0x60, 0x10, 0xa6, 0x23, 0xe9, 0xad, 0xb7, -0xde, 0x0a, 0xee, 0xce, 0xde, 0xee, 0x0e, 0x77, 0xfc, 0x5e, 0x84, 0x74, 0x8f, 0x9b, 0x94, 0x7b, -0x6e, 0x24, 0xf1, 0x6e, 0xec, 0x16, 0x77, 0x89, 0xbb, 0x43, 0x30, 0x61, 0x25, 0x2b, 0x11, 0x05, -0x9c, 0xf3, 0x25, 0x92, 0xfe, 0x3a, 0x68, 0xbe, 0x8d, 0x77, 0xe2, 0xd0, 0x6b, 0xeb, 0x0d, 0xf7, -0xf7, 0x49, 0xd4, 0x43, 0xc4, 0xf9, 0xcc, 0x93, 0xe8, 0xf7, 0x96, 0x82, 0x01, 0xa9, 0xae, 0x81, -0x7e, 0xab, 0x56, 0x32, 0xa7, 0x53, 0xd0, 0x8e, 0x42, 0xa8, 0x9b, 0xfe, 0xb7, 0x9b, 0x20, 0xd8, -0xdf, 0x23, 0x21, 0x30, 0x9b, 0x3a, 0x3b, 0x90, 0x48, 0xfc, 0xe5, 0x72, 0x7b, 0x90, 0xdb, 0xfb, -0xef, 0x2a, 0xb6, 0x96, 0xdb, 0xda, 0x18, 0x5c, 0xbe, 0xa4, 0xa6, 0x3e, 0x58, 0xf1, 0x17, 0x0b, -0x0e, 0x77, 0xc4, 0x05, 0x42, 0x13, 0xa7, 0xc6, 0xe5, 0x57, 0x14, 0xb4, 0x57, 0x48, 0xc8, 0xe3, -0x35, 0x20, 0x6b, 0xc2, 0xb3, 0xd1, 0x7d, 0x52, 0xe9, 0x00, 0x0a, 0xd4, 0x44, 0x7e, 0x34, 0xde, -0x41, 0x30, 0x12, 0x05, 0xed, 0x25, 0x84, 0x25, 0x6d, 0x48, 0xc9, 0xef, 0xa3, 0x6a, 0xf6, 0x87, -0x5d, 0x44, 0xcd, 0x70, 0xdc, 0x49, 0x5d, 0xf1, 0x79, 0x26, 0x12, 0xc7, 0x97, 0x74, 0xc4, 0x6b, -0x38, 0x77, 0xc2, 0xa6, 0x74, 0xc3, 0x42, 0x48, 0x80, 0xae, 0x2f, 0xe8, 0xbb, 0xde, 0x44, 0x7d, -0x57, 0x91, 0xea, 0xc0, 0xea, 0xe5, 0x81, 0xa6, 0xe5, 0x0d, 0xb5, 0x15, 0x50, 0x48, 0xce, 0x0a, -0x08, 0x56, 0x7d, 0xb5, 0x02, 0xea, 0xd1, 0xd1, 0xd4, 0x5c, 0x43, 0xaf, 0xe5, 0xb7, 0x37, 0xb3, -0x9b, 0xdf, 0xb5, 0xc1, 0x20, 0x7f, 0xf0, 0x5b, 0x8c, 0xac, 0x40, 0x7d, 0xc3, 0x94, 0x4c, 0x70, -0xf8, 0x9a, 0xe8, 0x27, 0x55, 0x80, 0xc0, 0x97, 0xa9, 0x18, 0x44, 0xd8, 0x0d, 0xa2, 0x83, 0xaa, -0x1b, 0xea, 0xa1, 0xba, 0xbf, 0x2f, 0x8e, 0x13, 0xbe, 0xf0, 0xe0, 0x0c, 0xff, 0x12, 0xf4, 0xc4, -0xe4, 0xf7, 0xdf, 0xd5, 0x6d, 0x58, 0x58, 0x60, 0x79, 0xf5, 0xf2, 0x65, 0x8d, 0xcb, 0x9b, 0xea, -0x9b, 0xeb, 0x97, 0x07, 0x50, 0xf6, 0x59, 0x1e, 0x68, 0xf8, 0xda, 0x14, 0x1f, 0x1a, 0xf1, 0x15, -0x82, 0xab, 0x2b, 0x5e, 0xd9, 0xdb, 0x13, 0xea, 0x0a, 0xf7, 0xc7, 0x5a, 0x99, 0x35, 0xa9, 0xae, -0x20, 0xba, 0x86, 0x03, 0xb0, 0x26, 0x86, 0xb4, 0x20, 0x09, 0x8b, 0x0a, 0x37, 0xfe, 0x51, 0x80, -0xbb, 0xea, 0xf6, 0xe6, 0xe5, 0xee, 0xea, 0x86, 0xe5, 0x4d, 0xb5, 0xee, 0xa6, 0x65, 0x55, 0xc1, -0x66, 0x40, 0x12, 0x11, 0x47, 0xb2, 0xd5, 0x1f, 0x2d, 0x6e, 0xa2, 0xb9, 0x02, 0x67, 0x0f, 0xa8, -0xef, 0xc1, 0x01, 0xd4, 0x1a, 0x91, 0x18, 0x12, 0xbd, 0xd1, 0xfb, 0x62, 0x5d, 0xe1, 0xce, 0xb8, -0xf4, 0x23, 0x69, 0xc1, 0xcd, 0x37, 0xdf, 0x58, 0x4c, 0x02, 0x99, 0x4b, 0x6a, 0xee, 0xec, 0x10, -0x44, 0xb7, 0x86, 0x18, 0xb1, 0xde, 0x28, 0xf3, 0x54, 0xcd, 0x1d, 0xad, 0xdd, 0x25, 0xa6, 0x06, -0xec, 0xe8, 0x1e, 0x9a, 0x31, 0x68, 0xd4, 0x21, 0x3f, 0x9d, 0x8c, 0xd9, 0xd8, 0xdf, 0x16, 0xe9, -0x5a, 0x29, 0x69, 0xc1, 0x25, 0xa6, 0x3b, 0x3a, 0x62, 0x44, 0xf3, 0xa4, 0xa6, 0x3b, 0x02, 0xe5, -0xe5, 0x37, 0xdd, 0x78, 0x93, 0x0b, 0x71, 0xa7, 0x0b, 0x39, 0x67, 0xf4, 0xa2, 0x32, 0x8a, 0x4b, -0x6f, 0x2c, 0x2e, 0xbd, 0x09, 0x29, 0x37, 0x37, 0xa8, 0xa4, 0x0d, 0x09, 0x13, 0x30, 0xb5, 0x2e, -0x14, 0xad, 0x2a, 0x08, 0x2c, 0x96, 0x44, 0x87, 0x37, 0x54, 0x70, 0x3f, 0x61, 0xfd, 0xc3, 0xdc, -0x79, 0x0d, 0x15, 0xb7, 0x23, 0x27, 0x90, 0xf6, 0xeb, 0xe3, 0x5e, 0xf4, 0xdd, 0x1e, 0x58, 0x7a, -0x77, 0xb0, 0xb6, 0x61, 0x79, 0xf5, 0x82, 0x85, 0xd3, 0xb9, 0x20, 0x53, 0x46, 0xe8, 0xa2, 0xcf, -0x08, 0x0c, 0x54, 0x2d, 0xab, 0xfd, 0x8c, 0xa0, 0xda, 0x96, 0xe6, 0xcb, 0x84, 0xe0, 0x28, 0x11, -0x23, 0x04, 0xc7, 0x4d, 0xe9, 0xc2, 0xc8, 0xc0, 0xa5, 0x51, 0x4a, 0x96, 0xd5, 0x2e, 0xab, 0xbb, -0xbb, 0xda, 0x57, 0xdf, 0xa8, 0x39, 0xb1, 0xf8, 0xaa, 0x06, 0xcd, 0xbd, 0xb4, 0xbe, 0x7a, 0xa9, -0xe6, 0xac, 0xab, 0x6a, 0x6a, 0xd6, 0x9c, 0x8d, 0xb7, 0x7b, 0x1b, 0xea, 0x91, 0x78, 0xdf, 0xd7, -0xe7, 0x45, 0x16, 0x45, 0x5b, 0x33, 0x38, 0x3f, 0xa3, 0x22, 0xb5, 0x7e, 0x70, 0x3e, 0xeb, 0x88, -0xe6, 0xbe, 0x1e, 0x9f, 0x02, 0x4d, 0xba, 0x4c, 0xad, 0x74, 0x64, 0xb8, 0x53, 0x61, 0xa4, 0x17, -0x76, 0xdc, 0xed, 0xfb, 0xc3, 0x1c, 0x30, 0x9e, 0x7b, 0x75, 0xcc, 0x77, 0x18, 0xe6, 0x06, 0x8e, -0x2a, 0x7a, 0xc5, 0xe6, 0x7b, 0x0f, 0xc6, 0xdc, 0x7a, 0xbe, 0x63, 0x55, 0xbd, 0xa5, 0xbd, 0x71, -0xb3, 0x0c, 0x0d, 0x6f, 0x65, 0xf1, 0xda, 0x5c, 0xda, 0x7f, 0x71, 0x8d, 0x9d, 0xf7, 0x0e, 0xdd, -0x72, 0x42, 0x06, 0x5a, 0xab, 0xa7, 0xf0, 0x86, 0xf7, 0x4d, 0xa0, 0x9e, 0x73, 0x76, 0xa9, 0x13, -0x81, 0x57, 0xc5, 0x89, 0x1b, 0xa9, 0x53, 0x67, 0x95, 0x9c, 0xb0, 0xad, 0xc0, 0xa3, 0x36, 0x3f, -0x72, 0xc0, 0xf7, 0x9e, 0x67, 0xcc, 0x6d, 0xa2, 0x7d, 0xde, 0x94, 0x8b, 0x1b, 0x25, 0xf1, 0xff, -0x78, 0x8e, 0x7f, 0x57, 0x60, 0x4e, 0xe7, 0xcd, 0x56, 0xb1, 0x0f, 0x84, 0xb4, 0xfa, 0x98, 0x9f, -0xde, 0x9b, 0x90, 0x21, 0xf0, 0xba, 0xa4, 0x7b, 0x77, 0x34, 0xc8, 0x2e, 0xda, 0x29, 0xa0, 0xc0, -0xbb, 0x1b, 0x25, 0x7d, 0x70, 0xd8, 0x5b, 0x6a, 0x84, 0xab, 0x76, 0x3a, 0xc1, 0x06, 0xfe, 0x52, -0x1b, 0xb1, 0x1c, 0x39, 0xc1, 0xa1, 0xe0, 0x70, 0xf3, 0x4e, 0x23, 0x04, 0x2e, 0xa8, 0x27, 0x1b, -0xde, 0x82, 0x6c, 0x4a, 0x81, 0xf5, 0xdd, 0xe7, 0x5a, 0xa5, 0xa7, 0xb5, 0x02, 0xb9, 0xe1, 0xad, -0x6a, 0x98, 0xe6, 0xe7, 0xbc, 0x8c, 0x9f, 0xe7, 0x32, 0x7e, 0x75, 0x97, 0xf1, 0x6b, 0x48, 0xfa, -0x7d, 0xce, 0x76, 0xfe, 0xe2, 0xaf, 0xb5, 0xd3, 0x3f, 0xbc, 0xda, 0xfc, 0xee, 0x06, 0xef, 0x4e, -0x1b, 0xb4, 0x0c, 0xdd, 0xf6, 0x8a, 0x3a, 0x3e, 0xad, 0xbc, 0x55, 0x97, 0xa9, 0xc3, 0x9a, 0xcb, -0xf8, 0x0d, 0x5e, 0xc6, 0x6f, 0xf8, 0x32, 0x7e, 0xa3, 0x97, 0xf1, 0x7b, 0xf8, 0x32, 0x7e, 0xdb, -0x2e, 0xe3, 0xf7, 0xdd, 0xcb, 0xf8, 0x3d, 0x73, 0x19, 0xbf, 0xe7, 0x2f, 0xe3, 0xb7, 0xfb, 0x32, -0x7e, 0xbf, 0xbc, 0x8c, 0xdf, 0xa1, 0xcb, 0xf8, 0xbd, 0x9e, 0xf6, 0x2b, 0x1d, 0xf3, 0xaf, 0x5b, -0x9d, 0xf3, 0xee, 0x06, 0xa9, 0xea, 0xdd, 0x8d, 0xb2, 0x57, 0x3e, 0x76, 0xdb, 0xaf, 0xd5, 0x09, -0x84, 0xa5, 0x39, 0x89, 0x27, 0xa9, 0x34, 0xef, 0x24, 0xd3, 0x10, 0xe4, 0x4d, 0x7a, 0x00, 0xb1, -0x4a, 0xb2, 0xf5, 0x65, 0xbb, 0x4e, 0xac, 0xfb, 0x4b, 0x9d, 0xb0, 0x73, 0xf9, 0x49, 0x75, 0x42, -0xd2, 0x07, 0xfa, 0x03, 0xcf, 0x82, 0x85, 0xe3, 0x3e, 0x0b, 0xb9, 0xf6, 0xf9, 0x60, 0x48, 0xba, -0x25, 0x7d, 0xf2, 0x0b, 0xe0, 0xdd, 0x0d, 0x0b, 0x86, 0x6d, 0xf9, 0x52, 0xd6, 0xbb, 0xa3, 0xf3, -0x12, 0x36, 0xe7, 0xbc, 0x11, 0x9b, 0x7d, 0xde, 0x8f, 0xc0, 0x62, 0x73, 0x89, 0x7a, 0x49, 0x38, -0xa6, 0x7e, 0x37, 0x6a, 0x41, 0x9c, 0x0c, 0x0e, 0x35, 0xe9, 0x43, 0xe7, 0x10, 0x13, 0x0d, 0xc9, -0x3a, 0x95, 0xc2, 0xef, 0xfe, 0xfe, 0xaa, 0x75, 0x19, 0x21, 0xe6, 0xcc, 0xf6, 0xf9, 0xe9, 0x8e, -0x0b, 0xa3, 0xac, 0xc7, 0x5a, 0x95, 0x65, 0xf6, 0xe3, 0xe7, 0xc4, 0xaf, 0x7f, 0xf9, 0x6b, 0xf8, -0xc5, 0xe5, 0x68, 0x6d, 0xa7, 0x96, 0xd3, 0x3d, 0xc3, 0xb0, 0x22, 0x59, 0x0a, 0xb5, 0xeb, 0x08, -0xdd, 0xfa, 0x82, 0x35, 0x4f, 0x7f, 0x53, 0x6d, 0xb9, 0x0e, 0xf3, 0xd5, 0x73, 0xf4, 0x96, 0xab, -0x78, 0x6c, 0x9f, 0x71, 0x82, 0x06, 0x63, 0x51, 0x37, 0x5d, 0x4b, 0xe2, 0xdd, 0x51, 0x59, 0x6f, -0x7c, 0x91, 0x76, 0x75, 0x5e, 0x6c, 0x3e, 0x31, 0xfa, 0x37, 0xd6, 0xfd, 0xd0, 0xe7, 0xaf, 0xfb, -0xbb, 0x1b, 0xe4, 0x2a, 0xac, 0xfd, 0x22, 0x61, 0xdb, 0x2d, 0x59, 0x77, 0x0a, 0x7f, 0x77, 0x43, -0x1c, 0xe6, 0x0d, 0xdb, 0x4c, 0x72, 0x55, 0x6a, 0x1d, 0xac, 0xec, 0x6f, 0xac, 0xc7, 0xbf, 0xff, -0x55, 0x5a, 0xf4, 0xf9, 0xf2, 0x79, 0xe7, 0xbf, 0x29, 0x9f, 0x0f, 0xfe, 0x9b, 0xf2, 0x39, 0xfb, -0xdf, 0x94, 0xcf, 0xf9, 0xcf, 0xd1, 0x4f, 0x94, 0x86, 0xe6, 0x87, 0xf3, 0xc6, 0xa7, 0xc4, 0xac, -0x30, 0xb5, 0xff, 0x24, 0x5d, 0x10, 0x71, 0x85, 0x4e, 0x82, 0x66, 0xe2, 0xc9, 0xf4, 0xfe, 0xbd, -0x18, 0xc8, 0xec, 0x5b, 0x43, 0x2a, 0xac, 0x50, 0x27, 0x70, 0xf7, 0xdd, 0x8d, 0xc1, 0x61, 0xc9, -0x2b, 0xd7, 0x0a, 0x1c, 0xbe, 0xce, 0x03, 0x39, 0xb2, 0x41, 0xca, 0xc2, 0x90, 0x9a, 0x98, 0xea, -0x87, 0xb0, 0x3e, 0x06, 0x92, 0x0e, 0x73, 0x90, 0x2e, 0x8b, 0x3b, 0x8b, 0xa7, 0xe2, 0x0d, 0x8d, -0x3d, 0x77, 0xd6, 0xbb, 0x1b, 0xdd, 0xfa, 0x77, 0x37, 0xb8, 0x75, 0xb2, 0x21, 0x6a, 0x68, 0x85, -0x2b, 0x56, 0xb9, 0x75, 0x6c, 0xb5, 0xe1, 0xbc, 0xe9, 0x80, 0x38, 0x79, 0xac, 0xd1, 0x90, 0x0b, -0x9f, 0xee, 0xcb, 0xa0, 0x2d, 0x25, 0x97, 0xd6, 0x3f, 0x7b, 0x88, 0x74, 0xae, 0x72, 0xd4, 0x06, -0x92, 0xfe, 0x77, 0xa3, 0xef, 0x8f, 0xd2, 0x59, 0x95, 0x33, 0x40, 0x96, 0x86, 0xd3, 0x71, 0x25, -0x2d, 0xae, 0x37, 0xf1, 0xbb, 0x0d, 0xef, 0x6f, 0xd0, 0x0f, 0x51, 0x0c, 0xa6, 0x46, 0xbf, 0x89, -0xc1, 0xd8, 0x70, 0x98, 0xec, 0xca, 0x53, 0xed, 0x53, 0x74, 0x43, 0xa7, 0xc5, 0x2f, 0xd1, 0x69, -0xf4, 0x58, 0xf4, 0x59, 0xa1, 0xde, 0xc0, 0xed, 0x97, 0x25, 0x9c, 0x0b, 0x4f, 0x8c, 0x8a, 0xbc, -0xa3, 0x5c, 0x37, 0x87, 0x9e, 0xf2, 0x53, 0x5f, 0x91, 0x41, 0xa3, 0x9a, 0x39, 0x97, 0xd0, 0x45, -0x43, 0x1a, 0xfa, 0x19, 0xfe, 0xd8, 0xe2, 0xec, 0xc7, 0x33, 0xfd, 0x4b, 0x33, 0xf3, 0xdb, 0xcf, -0xf9, 0x11, 0x65, 0x4e, 0xd1, 0xd9, 0xd2, 0xb1, 0x24, 0x0d, 0x8e, 0x83, 0xd5, 0x09, 0x59, 0x92, -0xfe, 0x84, 0x4f, 0xb6, 0xe5, 0xbe, 0x88, 0x33, 0xd8, 0x85, 0x29, 0xf4, 0x38, 0x15, 0x0f, 0x69, -0x8c, 0x25, 0x06, 0xb9, 0x36, 0xf9, 0xc5, 0xdb, 0x0e, 0x70, 0x1c, 0xad, 0xac, 0xcf, 0x87, 0x83, -0xc7, 0xf5, 0x9f, 0x8b, 0x56, 0x88, 0x36, 0x56, 0x64, 0xf6, 0x8f, 0x7b, 0x3e, 0xb8, 0xf0, 0x71, -0xe2, 0x63, 0xc7, 0x47, 0xc2, 0x27, 0x1f, 0x1f, 0x1b, 0x3e, 0x56, 0xce, 0x9f, 0x76, 0x9b, 0x9e, -0xaf, 0xa4, 0x13, 0xef, 0x29, 0xbe, 0x00, 0x69, 0x72, 0x6e, 0x32, 0xbf, 0x77, 0x37, 0xd0, 0xcd, -0x5b, 0x97, 0xc2, 0xcc, 0xd5, 0x03, 0x5e, 0xb1, 0x8f, 0xd1, 0x5d, 0x49, 0xeb, 0x97, 0xee, 0x4a, -0xec, 0x94, 0x2d, 0x6e, 0x23, 0xbf, 0xef, 0xc3, 0xdc, 0x2d, 0xec, 0xea, 0xc1, 0x56, 0xd0, 0x3b, -0x8c, 0x65, 0xd1, 0x9b, 0xf6, 0xa6, 0xd2, 0xbb, 0x83, 0xda, 0x85, 0xef, 0x76, 0x79, 0x39, 0xe2, -0xfd, 0x0f, 0xb0, 0xf4, 0xca, 0xcc, 0x32, 0x6c, 0xfb, 0x1c, 0xba, 0x4c, 0xaa, 0x2d, 0x79, 0x9c, -0x4e, 0x78, 0x9c, 0xce, 0xe3, 0x53, 0xd9, 0x34, 0x5b, 0x08, 0x4b, 0xb4, 0xd5, 0xb6, 0xcf, 0x3f, -0x8e, 0x8f, 0xcf, 0xfe, 0xeb, 0x30, 0x5c, 0x04, 0x0e, 0xdd, 0xbb, 0x0f, 0x79, 0x47, 0x6c, 0xa5, -0x8b, 0x80, 0x4f, 0x1e, 0xe4, 0x2b, 0x00, 0xd6, 0xe0, 0xba, 0xa6, 0xe1, 0xa8, 0xc5, 0x3b, 0x94, -0x8b, 0xbe, 0xce, 0x55, 0xf0, 0x76, 0xe0, 0xb1, 0xdb, 0x0e, 0xaa, 0xa7, 0xfd, 0xc3, 0xbd, 0x40, -0xa7, 0xd1, 0xc1, 0x1c, 0xb5, 0xc6, 0x24, 0xcd, 0xff, 0x15, 0x95, 0x66, 0xb8, 0xfc, 0x4b, 0xf0, -0x8e, 0x71, 0x72, 0xf2, 0x37, 0x99, 0x6d, 0x94, 0x32, 0xc2, 0xe2, 0x74, 0xa3, 0xf8, 0xbe, 0x24, -0xf6, 0x27, 0xc3, 0xd2, 0xd8, 0x37, 0x79, 0x20, 0x1d, 0x36, 0x1d, 0xd7, 0xdf, 0xdd, 0xf8, 0xee, -0x43, 0x84, 0xef, 0x27, 0x12, 0x49, 0x8c, 0xc7, 0x76, 0x70, 0x1c, 0xa7, 0x7e, 0x0d, 0xe6, 0xf1, -0xee, 0xc6, 0x54, 0x2e, 0x2f, 0x60, 0x8c, 0xfc, 0x74, 0xf9, 0x51, 0x5d, 0x2b, 0xcc, 0x5a, 0xc3, -0x25, 0x61, 0x4f, 0x66, 0x7d, 0xa8, 0xf1, 0x0d, 0xa9, 0x3a, 0x70, 0xf8, 0x1d, 0xa9, 0xf0, 0x8f, -0xa6, 0x86, 0x27, 0xdb, 0x36, 0xf9, 0xc6, 0xa5, 0x3c, 0xcb, 0xe4, 0xd1, 0xcb, 0xf0, 0x31, 0x62, -0x5c, 0x1e, 0x8f, 0xc1, 0xe5, 0xd3, 0x68, 0xe3, 0x4c, 0x84, 0x5f, 0x36, 0xfd, 0xe5, 0xd2, 0xa4, -0xfd, 0x6e, 0x4d, 0xc5, 0x73, 0xc1, 0x00, 0xac, 0x85, 0x35, 0xa6, 0xfb, 0x41, 0xce, 0x26, 0xa8, -0xdb, 0xc1, 0xac, 0x07, 0x29, 0x7c, 0x96, 0x6e, 0xc1, 0x08, 0x9f, 0xc6, 0x5f, 0x53, 0xf8, 0xf7, -0xf8, 0x5b, 0x14, 0x2e, 0xc1, 0xdf, 0xe2, 0x90, 0x61, 0xad, 0x4e, 0xb1, 0xa3, 0xab, 0xb4, 0xa3, -0x10, 0x7f, 0x6f, 0x6e, 0xb3, 0xd3, 0x19, 0xb7, 0xa4, 0x0c, 0xe0, 0xa4, 0xbb, 0x55, 0xf5, 0x06, -0x80, 0xd2, 0x63, 0x89, 0xfb, 0x75, 0xc9, 0xfc, 0x94, 0x43, 0xec, 0xda, 0x87, 0x74, 0x77, 0x26, -0xd1, 0x5d, 0x9a, 0x75, 0xfd, 0x33, 0xc2, 0xfa, 0x9a, 0x11, 0xc6, 0xca, 0x09, 0x01, 0xe3, 0x98, -0x29, 0x70, 0x61, 0xb2, 0x1c, 0x6b, 0x06, 0xae, 0xac, 0x42, 0xbd, 0x43, 0x77, 0xbf, 0xc0, 0x29, -0x8b, 0x7f, 0x5d, 0x04, 0xc0, 0x64, 0xfc, 0x57, 0xb8, 0xb6, 0x66, 0x5d, 0xd3, 0x03, 0xde, 0x11, -0xef, 0x12, 0x39, 0xcb, 0x9e, 0x4d, 0x1c, 0x97, 0x43, 0x27, 0xeb, 0xcd, 0x3a, 0x30, 0x75, 0x23, -0x3e, 0xdf, 0xa5, 0xcb, 0xd6, 0x41, 0xe9, 0xd5, 0x43, 0xd1, 0xfc, 0xe0, 0x92, 0xa6, 0x07, 0xfc, -0xeb, 0x7a, 0xde, 0x20, 0x5c, 0x8c, 0x49, 0x66, 0xba, 0x9f, 0x4d, 0x1f, 0x2b, 0x8d, 0x56, 0x0a, -0x9c, 0x6b, 0x7a, 0x60, 0xd5, 0x29, 0xe3, 0x4c, 0xba, 0x03, 0x27, 0x56, 0x9c, 0xf2, 0x5b, 0xb2, -0x3a, 0x17, 0xf1, 0x75, 0x41, 0x34, 0x3f, 0xe9, 0x83, 0xf2, 0xc1, 0x69, 0xc4, 0xcc, 0x09, 0x01, -0x2b, 0x1b, 0x44, 0xad, 0x6b, 0x4c, 0x03, 0x6a, 0xfd, 0x05, 0xb5, 0x2d, 0xf0, 0x18, 0xfa, 0xdb, -0x92, 0xf8, 0x8f, 0x78, 0x3e, 0xac, 0x85, 0xf8, 0x38, 0x24, 0x85, 0x2f, 0x9c, 0xc6, 0xe2, 0x1d, -0xc1, 0x90, 0x92, 0xcc, 0x34, 0xec, 0x6f, 0x64, 0xff, 0xbc, 0xb4, 0xbf, 0x5b, 0xef, 0xc5, 0x31, -0x83, 0x65, 0x1f, 0x0d, 0x3c, 0x66, 0xbf, 0x56, 0xa3, 0x75, 0x3a, 0x33, 0x40, 0x6b, 0x87, 0x09, -0x7f, 0xd7, 0xb6, 0x19, 0x8c, 0x09, 0x98, 0xa1, 0xf9, 0xeb, 0xa7, 0xfb, 0x23, 0x0c, 0xe8, 0x5b, -0xc7, 0xdf, 0x43, 0x30, 0xe3, 0x57, 0x9e, 0x2d, 0x43, 0xc9, 0x7a, 0x44, 0x53, 0x34, 0xd5, 0x6a, -0xcb, 0xfb, 0x62, 0x14, 0xfc, 0xfa, 0xf0, 0x42, 0x7f, 0x56, 0xb8, 0xac, 0x49, 0xdf, 0x94, 0x45, -0xb7, 0x96, 0x4c, 0xcf, 0x0b, 0xa9, 0xee, 0x17, 0xa7, 0xe7, 0xb7, 0x65, 0x28, 0x7c, 0x40, 0x31, -0xbf, 0xa0, 0x0f, 0x1b, 0xa3, 0x2a, 0xa6, 0xe7, 0x3d, 0xf6, 0x59, 0x39, 0x53, 0x70, 0x8b, 0xe6, -0x84, 0xfd, 0x53, 0xe6, 0x84, 0x77, 0x04, 0x3d, 0x24, 0xfb, 0x0b, 0xde, 0xdc, 0x77, 0x37, 0x36, -0x0d, 0xaf, 0x01, 0xda, 0x45, 0x25, 0xf9, 0xe3, 0x6a, 0xd0, 0xeb, 0xb7, 0x85, 0x40, 0xbd, 0x70, -0x8d, 0x57, 0x55, 0x1b, 0xde, 0x5a, 0x92, 0x9e, 0x27, 0x26, 0x05, 0x15, 0x2b, 0xc4, 0x94, 0x6b, -0x90, 0xb7, 0xb4, 0x63, 0xbd, 0x1d, 0x34, 0x17, 0xe4, 0x62, 0xad, 0xae, 0x3e, 0x34, 0xd4, 0x9c, -0x10, 0x3c, 0x81, 0x93, 0x76, 0x31, 0x3a, 0xa5, 0x06, 0xd9, 0x68, 0x99, 0x13, 0xce, 0xb6, 0xbc, -0xd1, 0x04, 0xca, 0xb8, 0xd7, 0x66, 0x37, 0x5a, 0xbe, 0x84, 0x5f, 0xff, 0x21, 0xbe, 0x7e, 0x1d, -0xc0, 0xd2, 0x8e, 0xff, 0x3a, 0xe0, 0x00, 0xb9, 0x81, 0x78, 0x05, 0xb2, 0x21, 0xfc, 0xcd, 0x29, -0xbc, 0x34, 0x8d, 0xd7, 0x19, 0x3f, 0xcc, 0x94, 0x9a, 0xa6, 0xd0, 0xa0, 0xf6, 0xbf, 0x8d, 0x2f, -0x3c, 0xfe, 0xc5, 0xbf, 0x4e, 0x2f, 0xa5, 0x74, 0xb9, 0x25, 0x71, 0xb2, 0x07, 0xed, 0xb3, 0x43, -0x38, 0x57, 0xd6, 0x9f, 0x40, 0x9a, 0x73, 0xf1, 0x4e, 0x19, 0x42, 0x38, 0x4a, 0x2e, 0x7a, 0x85, -0xe5, 0xa0, 0x34, 0xdd, 0x78, 0x77, 0x43, 0x52, 0xea, 0xfc, 0x5b, 0x79, 0xe6, 0xe3, 0xd2, 0xe7, -0xa8, 0xd3, 0x59, 0x01, 0x73, 0x47, 0x7d, 0xb9, 0xae, 0xe1, 0x83, 0x99, 0x59, 0xc8, 0x13, 0xbf, -0x40, 0x36, 0xfe, 0x97, 0xa7, 0xca, 0xcf, 0xdc, 0x4b, 0xcf, 0x16, 0xfa, 0x12, 0x53, 0xe1, 0x45, -0xed, 0x31, 0xdc, 0x35, 0x5d, 0x72, 0x63, 0x9a, 0xf9, 0x4e, 0xb2, 0xbd, 0x86, 0xc5, 0xcb, 0x3f, -0x56, 0xc1, 0xbe, 0x5c, 0xf6, 0x4b, 0x55, 0xb9, 0xc7, 0x42, 0x13, 0xb2, 0x9e, 0x7d, 0x9d, 0x76, -0x9d, 0x4c, 0x76, 0x8f, 0x9e, 0x5f, 0xfe, 0xb1, 0x0e, 0xcb, 0x5c, 0x32, 0x8d, 0x56, 0xaa, 0xc7, -0x93, 0xb9, 0x91, 0x84, 0xf4, 0xee, 0x86, 0xa3, 0xc3, 0x47, 0x87, 0xa2, 0x50, 0x5a, 0xea, 0x84, -0xa4, 0xc4, 0x94, 0xf6, 0x5f, 0xb0, 0x2e, 0xed, 0xfb, 0xb9, 0xf9, 0x04, 0xd7, 0x5f, 0x82, 0x4f, -0xe0, 0xc2, 0x27, 0x9f, 0xfc, 0x25, 0xdd, 0x00, 0xb5, 0x20, 0x2b, 0x44, 0xbb, 0xef, 0xa6, 0xe1, -0x4f, 0x95, 0x34, 0x1f, 0x65, 0xb4, 0xf9, 0x60, 0x96, 0xba, 0x90, 0xcb, 0xeb, 0x02, 0x6b, 0xe0, -0x05, 0xaa, 0x5b, 0xe6, 0x5c, 0x86, 0x3c, 0x43, 0x4e, 0x1c, 0x34, 0xea, 0xef, 0x40, 0x6c, 0x66, -0x9b, 0xe6, 0x19, 0x73, 0xc5, 0x94, 0xd9, 0x1c, 0xdb, 0xf0, 0xd4, 0xb4, 0x32, 0xa6, 0x87, 0xef, -0xc8, 0x0c, 0x1f, 0xe4, 0xfa, 0x35, 0x8d, 0xc8, 0x59, 0xc4, 0xa7, 0xea, 0xf7, 0x39, 0xae, 0x7a, -0xf7, 0xa1, 0xe0, 0xba, 0xb5, 0x73, 0x69, 0xd7, 0x9f, 0x54, 0x1d, 0x53, 0x83, 0x55, 0x62, 0xfc, -0x49, 0xd5, 0x57, 0x55, 0xa9, 0x6a, 0x90, 0xfa, 0x73, 0xf1, 0xd4, 0x79, 0x96, 0xda, 0xa6, 0xdf, -0x18, 0x9f, 0xd4, 0x64, 0xf6, 0xe9, 0xfd, 0xf2, 0xc3, 0x64, 0x69, 0x24, 0xff, 0x49, 0x9a, 0x34, -0x98, 0x74, 0xcf, 0xd3, 0xe4, 0xc1, 0x14, 0xdf, 0x9c, 0xa3, 0x69, 0x83, 0xce, 0x7f, 0xff, 0x29, -0x71, 0xfb, 0xc0, 0x25, 0xf3, 0xd2, 0x93, 0x99, 0x7e, 0xce, 0x2c, 0x9a, 0xad, 0x93, 0x9a, 0x0a, -0xac, 0xb3, 0x94, 0x6e, 0x1b, 0xf1, 0xdf, 0xef, 0x6e, 0x14, 0x12, 0xe8, 0x55, 0x3b, 0x6d, 0xe0, -0x04, 0xd2, 0xe8, 0x20, 0x8f, 0x78, 0x4e, 0x50, 0x4d, 0x1e, 0x2f, 0x38, 0xc3, 0x6b, 0x90, 0x35, -0x4e, 0xe1, 0xa7, 0xb5, 0x76, 0xe9, 0x9e, 0x9f, 0xde, 0xae, 0xd2, 0x74, 0xd8, 0x76, 0xb7, 0x2e, -0xf6, 0x65, 0x1c, 0x85, 0x31, 0x19, 0xec, 0xd7, 0xae, 0x21, 0x57, 0xb3, 0x1b, 0xd8, 0x27, 0x22, -0x5d, 0xcb, 0xe3, 0xef, 0x12, 0x1a, 0xa2, 0x6b, 0xcb, 0xd4, 0x94, 0x7c, 0x6e, 0xdc, 0xbb, 0xf9, -0xf3, 0xf0, 0xa8, 0x44, 0xb7, 0x6f, 0xa8, 0x82, 0xfc, 0xeb, 0xaa, 0x41, 0xba, 0xae, 0x06, 0xec, -0xa9, 0x91, 0xb8, 0x88, 0xf1, 0x05, 0x92, 0x3c, 0xbe, 0xbd, 0xd4, 0x58, 0xf1, 0xee, 0x06, 0x07, -0x42, 0xe5, 0xa5, 0x89, 0x19, 0x4f, 0xbe, 0xbe, 0xd3, 0x66, 0x70, 0x66, 0xbd, 0x34, 0x01, 0x95, -0x6f, 0x6f, 0x7a, 0x7b, 0xd3, 0x01, 0x7c, 0xff, 0x6e, 0xd3, 0xef, 0x36, 0xbd, 0x3e, 0xe2, 0x2c, -0xb5, 0x19, 0x47, 0x27, 0xa0, 0xcc, 0xb7, 0xff, 0xf5, 0x91, 0x01, 0x38, 0xb1, 0x31, 0x36, 0x9b, -0xe6, 0x1c, 0xdd, 0x44, 0xe0, 0x31, 0x8d, 0x8f, 0x2d, 0x44, 0x9a, 0x5b, 0x6a, 0x33, 0xfb, 0x87, -0xc3, 0x46, 0x3b, 0xf2, 0xa9, 0x13, 0x77, 0x29, 0xd9, 0xfc, 0x6e, 0xa1, 0xba, 0x48, 0x55, 0x0c, -0xd5, 0x29, 0xb8, 0xfc, 0xee, 0x86, 0x79, 0x7b, 0x49, 0xaf, 0x68, 0x33, 0xe2, 0x8c, 0xf9, 0x1b, -0xf1, 0x4d, 0xfc, 0x2d, 0x7f, 0xbf, 0x94, 0xfa, 0x9e, 0xe4, 0xef, 0x17, 0x52, 0xdf, 0x17, 0xf9, -0xfb, 0x87, 0xa9, 0xef, 0x09, 0xfe, 0xde, 0x9e, 0x49, 0x7f, 0x27, 0xad, 0x99, 0x92, 0x5f, 0x62, -0xec, 0x91, 0x03, 0x34, 0x97, 0x78, 0xff, 0xe9, 0xda, 0xa8, 0x4d, 0x85, 0x2c, 0xb7, 0xee, 0xdd, -0x51, 0xdf, 0x3d, 0x46, 0xd6, 0x2d, 0xde, 0x78, 0x42, 0xba, 0xbb, 0x65, 0xb3, 0x7c, 0xed, 0x55, -0x58, 0x13, 0xc4, 0x3c, 0xec, 0xf3, 0x2c, 0x1d, 0xed, 0x67, 0xe5, 0x7d, 0xbc, 0xfa, 0xc2, 0x45, -0x80, 0xd2, 0x1a, 0x59, 0x35, 0x9f, 0x78, 0xdd, 0x09, 0xe1, 0x32, 0x97, 0x87, 0xf2, 0xc6, 0x11, -0x27, 0x49, 0x1e, 0xff, 0x0e, 0x70, 0x86, 0x6d, 0x6c, 0x71, 0x1f, 0xb9, 0x29, 0xb2, 0x95, 0xf3, -0xde, 0xfa, 0x35, 0x79, 0xaf, 0x6f, 0x26, 0x9f, 0xc9, 0xef, 0xc9, 0x35, 0x94, 0x6a, 0xb2, 0x2d, -0x3a, 0xa3, 0xe1, 0x2d, 0x8f, 0x76, 0x2a, 0x7b, 0x11, 0x9d, 0x7e, 0x93, 0xc8, 0x0e, 0xa4, 0xfe, -0x60, 0x4c, 0x97, 0xda, 0x63, 0x5c, 0xc1, 0x27, 0xca, 0x40, 0xe7, 0xa1, 0x13, 0x2d, 0xc7, 0x1b, -0x64, 0x8f, 0x88, 0x91, 0x0c, 0xbf, 0xb8, 0xa5, 0xfe, 0x03, 0xd8, 0x79, 0xbd, 0x5f, 0xbf, 0x2b, -0x95, 0x62, 0xf0, 0x46, 0xba, 0xb3, 0xf2, 0x64, 0xc1, 0x20, 0x9c, 0xb7, 0x58, 0xd5, 0x53, 0x1c, -0x7f, 0x7d, 0x66, 0x8e, 0xb2, 0xc7, 0xe1, 0xb7, 0x9b, 0xbc, 0x5e, 0x9f, 0x37, 0xf6, 0xa1, 0xb9, -0x0a, 0x74, 0x2b, 0x6b, 0x1c, 0x45, 0xea, 0x89, 0xeb, 0xeb, 0xd5, 0x13, 0x65, 0x7b, 0xdd, 0x39, -0x37, 0x0c, 0x2e, 0x3b, 0x0f, 0xfa, 0x1b, 0xbc, 0x60, 0xb8, 0xc1, 0x0f, 0xd9, 0x37, 0x0c, 0x22, -0x1c, 0x8c, 0xce, 0x2c, 0x6f, 0x8d, 0xaf, 0xe6, 0x86, 0x1a, 0x30, 0xdd, 0x50, 0x0d, 0xe6, 0x1b, -0x06, 0x5d, 0x77, 0x03, 0xc6, 0x93, 0x91, 0x83, 0xc2, 0xf0, 0x7e, 0xc8, 0xad, 0x7e, 0x1f, 0x79, -0xf3, 0xaa, 0x6f, 0x3c, 0x84, 0xb9, 0xe5, 0x84, 0x9e, 0x91, 0x0b, 0xd5, 0x48, 0x41, 0xbd, 0x1a, -0xb9, 0x5c, 0x6e, 0xd8, 0x0a, 0xa3, 0x5d, 0x47, 0x65, 0xa3, 0x9f, 0x09, 0xf1, 0xcf, 0xcc, 0x25, -0xe4, 0xc8, 0x95, 0x70, 0x7e, 0xc6, 0x9a, 0x54, 0x88, 0x05, 0x43, 0x72, 0xb9, 0x1c, 0x2b, 0x97, -0x93, 0xc7, 0xe5, 0xd8, 0x24, 0xd1, 0xfa, 0xf5, 0xda, 0xfd, 0x9a, 0x49, 0x18, 0xdc, 0x4f, 0xa7, -0x9f, 0x3e, 0x3a, 0x08, 0x25, 0xf4, 0xfe, 0xd8, 0x06, 0x65, 0x05, 0x0d, 0xe0, 0x48, 0xb5, 0x77, -0x0d, 0x9d, 0x13, 0xa0, 0x73, 0xfa, 0x74, 0xce, 0x50, 0x3b, 0x91, 0x65, 0x96, 0x57, 0xa9, 0x27, -0x44, 0x5e, 0xe9, 0xdd, 0xdc, 0x74, 0x97, 0x78, 0xf5, 0xfb, 0x6a, 0xe3, 0x54, 0x08, 0xd3, 0x39, -0x83, 0xe4, 0x8d, 0x7d, 0x8b, 0x2b, 0x5c, 0x3a, 0xa7, 0xb1, 0x30, 0xc7, 0x3f, 0x14, 0xca, 0xc5, -0x58, 0xe7, 0xff, 0xf5, 0xe9, 0xa4, 0xcd, 0x00, 0xe4, 0x08, 0x3f, 0x21, 0x6b, 0xb9, 0x76, 0xb6, -0x6e, 0xf5, 0xde, 0xb3, 0x6e, 0x20, 0xcb, 0x1e, 0x8b, 0x9e, 0x14, 0xf7, 0x79, 0x87, 0x00, 0x7e, -0x29, 0x67, 0x27, 0x6f, 0xb3, 0x74, 0xf2, 0x6e, 0x6f, 0x61, 0x83, 0xbc, 0xea, 0x03, 0x1c, 0xcf, -0x45, 0xea, 0xc4, 0xd7, 0x12, 0x87, 0x1e, 0xb2, 0xc3, 0xd7, 0x87, 0x95, 0x80, 0xd9, 0x02, 0xf6, -0x50, 0x9d, 0xd9, 0x09, 0x77, 0x80, 0x2e, 0xb4, 0x18, 0xdf, 0xb5, 0xa0, 0x0f, 0x2d, 0xc4, 0x77, -0x10, 0xa7, 0x84, 0x12, 0x7c, 0x57, 0x80, 0x21, 0x44, 0x37, 0xa4, 0xce, 0x70, 0xfa, 0xe5, 0x86, -0x9d, 0x9b, 0xc2, 0xa6, 0xe0, 0x26, 0xff, 0x55, 0xa1, 0x73, 0xf2, 0x2c, 0x45, 0x2f, 0xc3, 0xcf, -0x5e, 0xd4, 0x6e, 0x24, 0xb7, 0x28, 0x65, 0x52, 0x55, 0x70, 0x74, 0xd7, 0x68, 0xdb, 0x73, 0xd2, -0xd5, 0xa1, 0x47, 0x15, 0xfb, 0xd6, 0x57, 0xa2, 0xb9, 0x3b, 0x37, 0x44, 0xf2, 0x7d, 0x03, 0x90, -0xcb, 0x75, 0x7c, 0xc1, 0xd7, 0x09, 0x7c, 0x0b, 0xd9, 0x8d, 0x7b, 0xb5, 0xbd, 0xf5, 0x8b, 0x64, -0xc6, 0x66, 0xb5, 0xdd, 0xb7, 0xf6, 0xe2, 0x5c, 0x0a, 0xc9, 0x3a, 0xe8, 0x84, 0x96, 0xcd, 0x8a, -0xc4, 0xf1, 0x5f, 0x76, 0xeb, 0xb5, 0xdb, 0xc9, 0x73, 0x32, 0xdb, 0xa2, 0xe8, 0x07, 0x80, 0x78, -0xed, 0x15, 0x83, 0x04, 0xdd, 0x23, 0x43, 0x74, 0x03, 0x9e, 0x74, 0xdb, 0xbc, 0x7a, 0x30, 0x49, -0xb7, 0x2d, 0x18, 0x04, 0x2b, 0xe4, 0x92, 0xc5, 0x6c, 0xf9, 0xb6, 0x14, 0x7d, 0x79, 0x34, 0xaa, -0x6a, 0xf7, 0xef, 0x9d, 0xe6, 0xfb, 0xf7, 0xb2, 0x9c, 0x39, 0xc2, 0x5e, 0x3b, 0xd2, 0xde, 0xab, -0x83, 0x89, 0x18, 0xa4, 0xfa, 0xb5, 0x99, 0xf7, 0x96, 0x9b, 0x62, 0x61, 0x1e, 0x35, 0x65, 0x4a, -0x8f, 0xb4, 0x94, 0xf8, 0x4a, 0x3a, 0x7d, 0x25, 0xce, 0x26, 0xdf, 0x78, 0x82, 0xd2, 0x78, 0xcb, -0x8c, 0x6c, 0x45, 0x55, 0xf2, 0xdf, 0xaf, 0x53, 0xe8, 0x16, 0x64, 0x57, 0x48, 0x1f, 0x7c, 0xd0, -0x62, 0x0b, 0x9d, 0x73, 0xe9, 0x8f, 0x0f, 0x1f, 0x5f, 0x2f, 0xd5, 0x1e, 0xfe, 0x17, 0x5f, 0x74, -0x14, 0xbc, 0xff, 0x24, 0x6e, 0x5d, 0x5b, 0x94, 0x2f, 0x9b, 0xec, 0xd9, 0x6b, 0xf8, 0xde, 0x8b, -0x89, 0x77, 0xdc, 0x1e, 0x60, 0xfb, 0xa2, 0xfe, 0x9f, 0x60, 0xba, 0x5c, 0xd9, 0x9f, 0x2a, 0x3d, -0x10, 0x25, 0xab, 0xe0, 0x25, 0xf6, 0x99, 0x4e, 0xff, 0xfd, 0x28, 0x7b, 0xfc, 0xfd, 0xbf, 0xb9, -0x6b, 0xa0, 0xdc, 0x69, 0x72, 0x2f, 0x85, 0xca, 0x5c, 0x2b, 0x72, 0xb0, 0xae, 0x70, 0xae, 0xd4, -0xf0, 0xc8, 0x7e, 0xb9, 0x17, 0x2a, 0xd7, 0x40, 0xde, 0x55, 0x2f, 0x8c, 0xf6, 0x00, 0x3c, 0xe9, -0x7f, 0x10, 0xfb, 0xfa, 0x61, 0xe9, 0x8a, 0x43, 0xdf, 0x22, 0x1b, 0x4e, 0x87, 0x5f, 0x72, 0xfb, -0xa0, 0xd4, 0xd5, 0xc8, 0x7b, 0xea, 0xd7, 0x68, 0x76, 0x38, 0xf9, 0x5e, 0x3b, 0x19, 0x67, 0x17, -0x69, 0xc6, 0x96, 0x61, 0xb6, 0x2b, 0x39, 0xd4, 0x93, 0x6f, 0xaf, 0x21, 0x8b, 0x3e, 0xc9, 0x96, -0xca, 0x6e, 0x70, 0x71, 0xed, 0x7e, 0xa8, 0x80, 0xda, 0x23, 0x2c, 0x46, 0x1e, 0x5a, 0x2f, 0xc3, -0x89, 0x0d, 0xee, 0x2a, 0x58, 0x44, 0x36, 0x48, 0x1d, 0x55, 0x74, 0x42, 0x0e, 0x69, 0x7e, 0x4e, -0x12, 0x12, 0x79, 0xeb, 0xbc, 0x65, 0x8b, 0x40, 0xc2, 0xda, 0x48, 0x3f, 0x81, 0x9a, 0x3b, 0xd7, -0x9d, 0x78, 0xe8, 0xe8, 0x3a, 0x6a, 0x97, 0xd9, 0x8a, 0xed, 0xf2, 0x04, 0xbf, 0x85, 0xad, 0x29, -0x47, 0x68, 0xe6, 0x60, 0xcd, 0xdd, 0xa1, 0xc2, 0xfb, 0x81, 0xee, 0x69, 0x52, 0x64, 0xac, 0x6f, -0x7e, 0xf4, 0xda, 0xb1, 0xa1, 0x58, 0xce, 0xf3, 0x89, 0xb0, 0x25, 0xb7, 0x12, 0xae, 0xc6, 0xb7, -0x11, 0xdf, 0xd6, 0xe7, 0x13, 0x21, 0xfd, 0xfd, 0xba, 0xa8, 0x2e, 0xb8, 0x09, 0xeb, 0x60, 0x11, -0xf5, 0xcb, 0x84, 0x4e, 0xba, 0x8e, 0xe2, 0x66, 0x91, 0xc9, 0x32, 0x71, 0x32, 0x8f, 0xcf, 0xc4, -0xf1, 0x19, 0x43, 0x1d, 0x9d, 0x90, 0x65, 0xab, 0x53, 0xda, 0x59, 0xa8, 0xe7, 0xa3, 0xea, 0xce, -0x8d, 0xa1, 0x16, 0x7b, 0x13, 0x7e, 0x3f, 0xb8, 0xd2, 0x50, 0x3e, 0x08, 0x0f, 0x0a, 0xaa, 0x56, -0xfd, 0x81, 0xda, 0x18, 0x5d, 0x5e, 0x97, 0xee, 0xf9, 0x2d, 0x74, 0x8e, 0xe2, 0x3f, 0x0d, 0xd8, -0xdf, 0x7a, 0xc5, 0x2c, 0x7f, 0x91, 0xee, 0xdb, 0x05, 0x3a, 0xbf, 0x37, 0xfa, 0xb3, 0xb1, 0xb6, -0x33, 0x14, 0xf6, 0xde, 0x6b, 0xd1, 0x74, 0xec, 0x63, 0xd7, 0x7b, 0xf4, 0x06, 0x25, 0x18, 0x9d, -0xdc, 0xb9, 0x31, 0xdc, 0xf0, 0xda, 0x2b, 0xaf, 0xbd, 0x82, 0xa3, 0x7b, 0xe2, 0x9f, 0x4f, 0x81, -0xa1, 0xdd, 0x52, 0x52, 0x39, 0x13, 0xc0, 0x9c, 0x3e, 0x97, 0x49, 0x67, 0x18, 0x92, 0x37, 0xed, -0x28, 0xb9, 0xb2, 0x53, 0x1d, 0x3f, 0x32, 0x74, 0x64, 0xa8, 0xfa, 0xac, 0xd1, 0x70, 0xfd, 0x06, -0x1b, 0xdc, 0x36, 0x2a, 0x39, 0xd5, 0x89, 0xd0, 0x49, 0xcd, 0xd2, 0xc0, 0x2e, 0x9a, 0x09, 0x1b, -0x12, 0xc2, 0xaa, 0x3c, 0x9d, 0x6f, 0x75, 0xac, 0x82, 0xc4, 0x6f, 0x7f, 0xfd, 0xdb, 0x5f, 0x27, -0xa9, 0xb4, 0xaf, 0x2a, 0x4d, 0x55, 0xe9, 0x84, 0xb2, 0xd3, 0x53, 0x7f, 0x1a, 0x76, 0x4a, 0x9e, -0x79, 0x83, 0xbc, 0x4b, 0x79, 0xe7, 0x52, 0x1c, 0xdd, 0x71, 0x58, 0x76, 0x61, 0xf2, 0x9c, 0x42, -0x77, 0x30, 0x7c, 0x39, 0xb0, 0x3d, 0x38, 0xdc, 0xb8, 0x79, 0xd7, 0xd6, 0x8e, 0xb3, 0x48, 0xa1, -0x46, 0x53, 0xe7, 0x97, 0x34, 0xbb, 0xdb, 0x7c, 0xab, 0xc1, 0x2a, 0x18, 0x75, 0x74, 0xe9, 0x0d, -0x97, 0xa3, 0x43, 0x05, 0xab, 0xc1, 0x01, 0xa3, 0xe2, 0xac, 0x09, 0xcf, 0x40, 0x8b, 0x33, 0xf9, -0xe7, 0x42, 0x4f, 0xed, 0x87, 0xb0, 0x42, 0x4a, 0xf5, 0xd0, 0x64, 0x22, 0xc3, 0xbd, 0x49, 0xf2, -0xd8, 0xe9, 0xcc, 0x33, 0xd9, 0xf9, 0x28, 0x6f, 0xd9, 0xec, 0xf7, 0x84, 0xe6, 0xe0, 0x4c, 0xdc, -0x82, 0xb4, 0x80, 0xef, 0xd6, 0x66, 0xab, 0x89, 0xe7, 0xbf, 0x79, 0x86, 0x4e, 0xc7, 0x28, 0xde, -0xc2, 0x62, 0xd8, 0x69, 0xef, 0x86, 0x51, 0x94, 0x1e, 0x36, 0xc4, 0x61, 0x0d, 0xca, 0xf0, 0x72, -0x37, 0x54, 0x2c, 0xf9, 0x10, 0x76, 0x3a, 0xe9, 0x24, 0x08, 0xd2, 0xbd, 0x2b, 0xdf, 0x49, 0xd2, -0xbd, 0xa2, 0x5a, 0xd8, 0xe9, 0xbe, 0x02, 0xc7, 0x90, 0x13, 0x73, 0xae, 0x64, 0x4b, 0x23, 0x76, -0xa4, 0xb6, 0x61, 0xb2, 0xbd, 0x40, 0xf3, 0x1a, 0x8e, 0x0e, 0x03, 0x8e, 0xff, 0x04, 0xc1, 0xdc, -0xbc, 0x03, 0xe0, 0xc7, 0xff, 0x46, 0xe7, 0xb1, 0xe7, 0x75, 0xc1, 0x28, 0xdd, 0x1f, 0x87, 0x34, -0x60, 0x9b, 0xd6, 0xf2, 0x91, 0xcc, 0xb6, 0xb8, 0x07, 0x13, 0x90, 0x75, 0x0e, 0xcc, 0xee, 0x5e, -0x48, 0x80, 0x85, 0xbf, 0xc8, 0x32, 0xcc, 0x20, 0xaf, 0xa0, 0xd8, 0xf8, 0xfb, 0x34, 0xe4, 0x7b, -0x7f, 0x02, 0x12, 0xbb, 0x3f, 0x04, 0x3b, 0xba, 0x9d, 0xec, 0x3e, 0x03, 0x2e, 0x74, 0x97, 0xb2, -0xfb, 0x23, 0x28, 0x47, 0xf7, 0x22, 0x76, 0x7f, 0x0c, 0x95, 0xe8, 0xf6, 0xb0, 0xfb, 0x0f, 0x50, -0x83, 0x6e, 0x1f, 0xbb, 0xff, 0x08, 0x0d, 0x58, 0xca, 0x28, 0x59, 0xcb, 0xc4, 0xaf, 0x3f, 0x43, -0xb3, 0xe4, 0x71, 0x77, 0xc2, 0x6e, 0x68, 0xe1, 0xef, 0xb3, 0xb0, 0x82, 0xed, 0x74, 0x92, 0xfb, -0x02, 0xb4, 0x47, 0x75, 0xd8, 0xd2, 0x4e, 0xfe, 0x1a, 0x87, 0x08, 0x86, 0x44, 0xf1, 0x89, 0xc7, -0xcc, 0x47, 0x36, 0xbb, 0x7a, 0x81, 0xf8, 0xc9, 0x1c, 0x9e, 0xad, 0x3b, 0xe5, 0xd5, 0x90, 0x78, -0xf5, 0xe5, 0x57, 0x5f, 0x96, 0x6e, 0xfb, 0xe9, 0x91, 0xf6, 0xf2, 0xf4, 0x98, 0x91, 0x72, 0x85, -0x25, 0x42, 0xed, 0xdc, 0x5c, 0x8a, 0xce, 0xc9, 0x1e, 0x19, 0xa9, 0xe2, 0x75, 0x1e, 0x30, 0x58, -0x2a, 0xd5, 0x49, 0xb2, 0xfe, 0x2f, 0x5f, 0x95, 0x3d, 0x74, 0x2b, 0x72, 0x37, 0x47, 0x86, 0xaa, -0x4e, 0x81, 0x19, 0xe7, 0x57, 0x33, 0x59, 0x6d, 0x4f, 0x8f, 0x8f, 0xe8, 0x8a, 0x43, 0x0f, 0x89, -0x59, 0xad, 0x81, 0x68, 0x5f, 0x84, 0x68, 0xef, 0x25, 0x27, 0x93, 0x9f, 0x21, 0xa8, 0xf3, 0xe9, -0xc0, 0x6c, 0xe4, 0x47, 0x2a, 0x43, 0x66, 0xf7, 0x7c, 0x60, 0x2b, 0x1b, 0xef, 0xfd, 0x0e, 0xf1, -0xd1, 0x29, 0x4e, 0xb3, 0xbe, 0xf7, 0x7b, 0xc1, 0x21, 0x36, 0x6e, 0x4e, 0x9d, 0x0d, 0x06, 0x97, -0xee, 0xdd, 0x87, 0xbd, 0x0f, 0xcc, 0x29, 0xed, 0x04, 0x7f, 0x2d, 0xf2, 0x1e, 0x76, 0xef, 0x48, -0x70, 0xbd, 0xf7, 0xc1, 0xb9, 0xf8, 0x6d, 0x9e, 0x49, 0x37, 0xa3, 0xc2, 0x64, 0x70, 0x7d, 0xd3, -0x03, 0xc9, 0x6f, 0x1c, 0xd9, 0x1f, 0x19, 0x1f, 0x84, 0x19, 0xe8, 0x6e, 0xc2, 0x30, 0x6b, 0xcb, -0x88, 0xbc, 0xc0, 0x07, 0xd1, 0x01, 0xe4, 0xff, 0xec, 0xa4, 0xef, 0x80, 0x37, 0x31, 0xa4, 0x19, -0x43, 0x24, 0x4a, 0x25, 0x42, 0x29, 0x6d, 0x60, 0x0f, 0x1c, 0xa2, 0x58, 0xa4, 0x99, 0xc0, 0x58, -0xbb, 0x31, 0x56, 0xf5, 0xd4, 0xf4, 0x42, 0x5f, 0x02, 0xdf, 0xc3, 0x90, 0xe5, 0xc9, 0xf4, 0x5a, -0xca, 0xed, 0x19, 0xa5, 0x48, 0x1c, 0x6b, 0x00, 0x63, 0xb5, 0x4c, 0x8b, 0x15, 0xcd, 0x88, 0x95, -0xcf, 0xb1, 0x82, 0x18, 0xab, 0x7e, 0x5a, 0x2c, 0x7f, 0x46, 0x2c, 0x2b, 0xc7, 0x72, 0x61, 0xac, -0x00, 0xc6, 0xca, 0x4b, 0x86, 0x78, 0x87, 0x53, 0x61, 0x16, 0x79, 0x66, 0x46, 0xdd, 0xf4, 0x4d, -0x0f, 0x84, 0x60, 0xf2, 0x1d, 0xd2, 0xe8, 0x04, 0x5e, 0xf7, 0x0e, 0x5b, 0x67, 0x1a, 0xf4, 0x50, -0xda, 0x0d, 0x30, 0x87, 0x74, 0x5c, 0xa4, 0x97, 0xc4, 0xef, 0x99, 0xf8, 0x6d, 0xc2, 0xef, 0xeb, -0x7a, 0x49, 0xeb, 0x3e, 0x9c, 0x3e, 0x13, 0xcc, 0xe3, 0x8e, 0x67, 0x84, 0xe6, 0x29, 0xf3, 0x9e, -0x03, 0xc2, 0x73, 0x93, 0x61, 0x52, 0xb5, 0x65, 0xac, 0x64, 0x98, 0xb5, 0xc3, 0xea, 0xcd, 0x3b, -0xa5, 0xac, 0x13, 0xa3, 0x8d, 0x9b, 0x45, 0xcf, 0x6b, 0xa7, 0x7f, 0x99, 0x6e, 0x10, 0xd5, 0x23, -0x6d, 0xc6, 0xd4, 0xf9, 0x93, 0xb1, 0x71, 0xae, 0xe4, 0x4f, 0xcd, 0x9a, 0xb3, 0x53, 0xb3, 0x66, -0xae, 0xf7, 0x06, 0x6d, 0xd6, 0x9c, 0x2d, 0x28, 0x8a, 0x9b, 0xac, 0x5d, 0x19, 0x71, 0xbc, 0x9a, -0x09, 0x6b, 0x48, 0x4b, 0x6e, 0xf7, 0xf8, 0x56, 0x81, 0xee, 0xd5, 0x97, 0x7d, 0xf7, 0x3c, 0x2e, -0xec, 0x75, 0x69, 0x9c, 0x02, 0x9d, 0x8b, 0xcc, 0x3c, 0x6f, 0x49, 0x65, 0xa7, 0x5b, 0x12, 0x83, -0xdc, 0x5c, 0x9c, 0x3b, 0xac, 0x6e, 0xa0, 0xd4, 0xc2, 0x5f, 0xa4, 0xa3, 0x13, 0x68, 0xe2, 0x54, -0x25, 0xc9, 0x2a, 0x94, 0xda, 0x31, 0x05, 0x06, 0xaf, 0xaf, 0xa3, 0x3b, 0xc8, 0x31, 0xbd, 0x45, -0x4b, 0xdf, 0x99, 0x4c, 0x5f, 0x91, 0x48, 0xa7, 0x77, 0xb0, 0x7d, 0xd5, 0x52, 0x89, 0xe0, 0x47, -0xf3, 0x4b, 0x9e, 0x1b, 0xbe, 0x44, 0x35, 0x78, 0x21, 0xb7, 0xcd, 0x31, 0xa5, 0x16, 0x59, 0xcf, -0x27, 0xda, 0xac, 0x6e, 0x5d, 0xba, 0x16, 0xe9, 0x5c, 0x1a, 0xde, 0x32, 0x24, 0xcf, 0x8c, 0xf6, -0x12, 0xdf, 0x10, 0x07, 0xab, 0x8d, 0x34, 0xf0, 0x62, 0x2e, 0xbd, 0x09, 0xbc, 0x65, 0x4e, 0x86, -0x8d, 0x56, 0x5b, 0xaa, 0xab, 0x51, 0xf2, 0x62, 0x7d, 0xe8, 0xd4, 0xf7, 0x2b, 0x2d, 0x9b, 0xb3, -0xe9, 0x9e, 0xdd, 0x2d, 0x6e, 0x2f, 0xf2, 0xb2, 0xd7, 0x2a, 0xbb, 0xc5, 0x79, 0xfa, 0xb5, 0x30, -0x08, 0x25, 0xb3, 0x6a, 0x1e, 0x5c, 0xfa, 0xe7, 0x01, 0x70, 0x5f, 0xe1, 0xd8, 0x5c, 0x62, 0xf4, -0x3f, 0x88, 0x23, 0xc3, 0x4a, 0x96, 0x0f, 0x3e, 0x3a, 0x48, 0x96, 0xe9, 0x3f, 0xb6, 0x05, 0xb6, -0x21, 0x9f, 0x38, 0x17, 0x69, 0xe7, 0x1c, 0xb7, 0xd9, 0xfb, 0xa0, 0xb4, 0x44, 0x5e, 0x62, 0x5f, -0xe2, 0x58, 0xe2, 0x5c, 0x52, 0xb8, 0x44, 0xeb, 0xb3, 0xfe, 0x96, 0xcd, 0xc9, 0xd3, 0xed, 0xb7, -0x2e, 0xce, 0xcc, 0xed, 0x91, 0x03, 0x99, 0xf9, 0x44, 0xcd, 0x44, 0x7f, 0x03, 0x8f, 0xb5, 0x6c, -0x16, 0xf1, 0x25, 0x9d, 0x48, 0xe1, 0x02, 0x5a, 0xa1, 0xca, 0x9c, 0x13, 0xcc, 0xc5, 0x7c, 0x0e, -0xb8, 0xb4, 0x44, 0xa3, 0xe9, 0x52, 0xf6, 0xa1, 0xf5, 0x48, 0x7f, 0x66, 0xa4, 0x28, 0x7a, 0xcc, -0x08, 0xd3, 0x28, 0xfa, 0x12, 0xd8, 0x29, 0xf0, 0x6b, 0x70, 0x42, 0xbb, 0x1f, 0xba, 0x92, 0xce, -0xda, 0x24, 0xc3, 0xb5, 0xf3, 0x9b, 0x8b, 0xe8, 0xd4, 0x33, 0xd9, 0x7c, 0x94, 0x68, 0xd6, 0x5a, -0x0d, 0x15, 0xf6, 0xd5, 0x30, 0xba, 0x04, 0x65, 0x11, 0x3a, 0x8b, 0x4e, 0xdc, 0xfc, 0x95, 0x5b, -0x92, 0x77, 0x46, 0x37, 0xbc, 0x95, 0x9f, 0xb4, 0x42, 0x49, 0x77, 0xf6, 0xac, 0x02, 0xd9, 0xd1, -0x09, 0x36, 0x9a, 0x47, 0xfd, 0x3f, 0x46, 0x5e, 0x16, 0xe0, 0x84, 0x7f, 0x15, 0x48, 0xf8, 0x3e, -0x9e, 0x3c, 0xcd, 0x29, 0x4e, 0x62, 0x7e, 0x34, 0x32, 0xe5, 0x24, 0x29, 0xc0, 0x5e, 0x9c, 0x1d, -0xeb, 0xd2, 0xa7, 0x0c, 0xf1, 0xcb, 0x3b, 0xe5, 0x6b, 0xf1, 0x94, 0xaf, 0x0a, 0x3e, 0xb9, 0x6d, -0x4b, 0xf9, 0x2d, 0xc6, 0x92, 0x2b, 0x52, 0x63, 0x23, 0x82, 0x75, 0xb6, 0x10, 0x8d, 0x56, 0xcc, -0xf6, 0xab, 0x8e, 0x0e, 0x1f, 0x1d, 0x66, 0x9e, 0x46, 0xcb, 0x8f, 0x6f, 0x47, 0x39, 0x29, 0x2f, -0x8d, 0xb6, 0xd6, 0x91, 0x26, 0xbc, 0x84, 0xea, 0x2c, 0x37, 0x52, 0xec, 0x68, 0x73, 0x7a, 0x3e, -0xf6, 0x3f, 0x1a, 0x36, 0xa7, 0x39, 0x22, 0xd5, 0xf0, 0x97, 0x4e, 0x8a, 0x26, 0xef, 0xab, 0x5b, -0x54, 0xe1, 0x08, 0xd0, 0xdd, 0xe6, 0xcc, 0xc3, 0x7c, 0x40, 0xb7, 0x8a, 0x3b, 0x21, 0x04, 0xfa, -0x72, 0xe2, 0x83, 0x8e, 0xed, 0xda, 0xfa, 0xf2, 0x63, 0xaf, 0x44, 0xab, 0xeb, 0x80, 0xf4, 0xd8, -0xea, 0x33, 0x76, 0x0f, 0x49, 0x0a, 0xfa, 0x72, 0x92, 0x6a, 0xde, 0xfb, 0x00, 0x4c, 0xd7, 0x0c, -0xc2, 0x2c, 0x30, 0x5e, 0x33, 0xa8, 0x8e, 0xc2, 0xac, 0x1b, 0x07, 0xa1, 0x0c, 0xac, 0xf8, 0xeb, -0x81, 0x3c, 0x0a, 0x7f, 0x2b, 0x00, 0x36, 0xbe, 0x3d, 0x91, 0xec, 0xf2, 0x35, 0x14, 0xf8, 0x40, -0xae, 0x3e, 0x05, 0xbb, 0x0a, 0xea, 0x61, 0x21, 0xa7, 0xce, 0x43, 0x37, 0xbe, 0x7f, 0x67, 0x86, -0xdd, 0xd4, 0xa6, 0xcc, 0x73, 0xdb, 0x4e, 0x61, 0x0f, 0xf7, 0x1d, 0x6a, 0xe3, 0x89, 0xd1, 0x79, -0x1e, 0xb0, 0x45, 0x9b, 0x99, 0xb3, 0x59, 0xaa, 0x71, 0x35, 0x00, 0x2f, 0xc5, 0xac, 0x28, 0x79, -0x0d, 0x89, 0x18, 0x12, 0x59, 0xdc, 0x94, 0xab, 0x4f, 0x82, 0x84, 0x3c, 0xbe, 0xd3, 0xbb, 0x03, -0xec, 0xe8, 0xb6, 0xa3, 0x5b, 0x2a, 0x1d, 0x84, 0x45, 0x87, 0x4f, 0x81, 0xcc, 0x27, 0xbe, 0x8f, -0xb0, 0x45, 0xb6, 0xa4, 0xcb, 0x9b, 0x72, 0x45, 0x85, 0x2b, 0x3a, 0x93, 0xcf, 0xf8, 0xbf, 0x5e, -0xe0, 0x81, 0xc5, 0xe1, 0xf6, 0x68, 0x56, 0xea, 0xcb, 0x2b, 0x0d, 0x8e, 0xbd, 0xb9, 0xe7, 0x50, -0xd4, 0xc9, 0xf1, 0x62, 0x32, 0xdd, 0x38, 0x5f, 0x11, 0xf6, 0x12, 0x7c, 0xde, 0xfb, 0x73, 0x54, -0x87, 0xd4, 0x8d, 0xce, 0xa1, 0xd7, 0x60, 0xbd, 0x2c, 0xdc, 0x9f, 0x14, 0x2b, 0xe2, 0x7d, 0x1a, -0x2a, 0x94, 0xb9, 0x53, 0xcf, 0x02, 0x7f, 0x34, 0xe5, 0x1c, 0x72, 0x28, 0xdb, 0x6d, 0xc2, 0xb1, -0xf7, 0x0e, 0xc1, 0xfd, 0x24, 0xf6, 0x14, 0xa7, 0x3b, 0x86, 0x79, 0xd7, 0x69, 0x77, 0x0e, 0xc6, -0x39, 0x24, 0x17, 0x6b, 0x92, 0xe2, 0x2a, 0xc9, 0xe6, 0x13, 0xc9, 0xf4, 0x6a, 0x54, 0x0e, 0xa4, -0x31, 0x8b, 0xe3, 0xa5, 0xb5, 0x25, 0x39, 0x18, 0x2b, 0xce, 0xb3, 0x6d, 0xee, 0xd6, 0x97, 0x15, -0xc9, 0xef, 0x84, 0x2f, 0x46, 0x6c, 0xb2, 0x13, 0x16, 0x86, 0x73, 0xcd, 0x3b, 0x6a, 0x96, 0x37, -0xe9, 0x20, 0x27, 0xcc, 0x37, 0xa2, 0x87, 0xf4, 0x72, 0x95, 0xe4, 0xb5, 0x5b, 0x42, 0xc7, 0xe5, -0x59, 0x04, 0x41, 0xe4, 0x68, 0xf3, 0xf9, 0x06, 0xa0, 0x5c, 0xa5, 0x34, 0x7a, 0x6f, 0x1d, 0x8c, -0x3d, 0x03, 0x79, 0x66, 0x5a, 0x4f, 0x1d, 0x0d, 0xcd, 0x95, 0x5c, 0xe0, 0x08, 0xdb, 0xec, 0x2e, -0xca, 0x85, 0xe4, 0x88, 0xaa, 0x33, 0xa3, 0x3a, 0xd9, 0xb8, 0x46, 0x25, 0xcb, 0x25, 0x13, 0x17, -0x9c, 0xcd, 0xfe, 0x6d, 0xa1, 0x83, 0x8f, 0x1c, 0x60, 0xee, 0xbb, 0x9d, 0x2c, 0x6a, 0x68, 0xa7, -0xf3, 0xdf, 0x46, 0x89, 0x8c, 0x6d, 0x5f, 0xa5, 0xa5, 0x5d, 0x3a, 0x7d, 0x2d, 0xce, 0x5c, 0x8b, -0xb3, 0xdc, 0xda, 0x0d, 0x7d, 0x49, 0x3b, 0xf0, 0x7a, 0x47, 0x0e, 0x6b, 0x8b, 0xef, 0xe7, 0xd3, -0xfb, 0x01, 0xac, 0x97, 0x39, 0xc5, 0x2f, 0x18, 0xc2, 0x56, 0xd9, 0x44, 0x67, 0x7c, 0x2f, 0x0e, -0xc4, 0x0a, 0xea, 0xc4, 0x3d, 0x75, 0x65, 0x4a, 0xa1, 0xb0, 0x91, 0xa3, 0x59, 0xca, 0xa1, 0xbb, -0x2c, 0x72, 0xdd, 0xb9, 0xde, 0x7f, 0x12, 0x6b, 0x97, 0x4e, 0x20, 0x9d, 0xeb, 0x45, 0xb2, 0x3a, -0xea, 0x4c, 0xca, 0x85, 0x35, 0xf9, 0x1a, 0xff, 0x5c, 0xe5, 0x08, 0xf8, 0x87, 0xc2, 0x6b, 0x84, -0x0e, 0xcc, 0x0e, 0x31, 0x99, 0xde, 0x51, 0xfd, 0x4e, 0xb2, 0x95, 0x58, 0xe2, 0xf4, 0x22, 0x7d, -0x3b, 0x9f, 0xd3, 0xec, 0x6c, 0xfe, 0xf7, 0x83, 0xff, 0x7e, 0x90, 0xed, 0x13, 0xce, 0xc1, 0xb0, -0x67, 0x30, 0xec, 0xb4, 0xbb, 0x10, 0x79, 0x3b, 0x17, 0x72, 0x98, 0x8f, 0x91, 0xa5, 0xfd, 0xd0, -0x71, 0x65, 0x2e, 0xdd, 0x39, 0x22, 0x21, 0x0d, 0xa1, 0x99, 0xca, 0xbe, 0x83, 0xac, 0xce, 0x31, -0xe6, 0xa2, 0x44, 0xa1, 0xaa, 0x64, 0x99, 0x26, 0x26, 0x70, 0x30, 0x12, 0xfb, 0xb2, 0x78, 0x2b, -0x1c, 0x92, 0xbc, 0xe3, 0x46, 0xdc, 0xfd, 0xe9, 0x24, 0x4c, 0xa9, 0x70, 0xeb, 0x49, 0x4e, 0xbf, -0x01, 0x34, 0xc9, 0x36, 0x6f, 0x57, 0x22, 0x54, 0xc1, 0xfe, 0x06, 0xf2, 0x61, 0xf9, 0xd3, 0xa5, -0x38, 0x93, 0x96, 0x4c, 0x5a, 0x36, 0xdb, 0x6b, 0x5e, 0x1b, 0xf3, 0x27, 0x7a, 0x6d, 0x96, 0x42, -0x55, 0x45, 0x49, 0xb3, 0x22, 0x9c, 0x83, 0xbf, 0xee, 0x3b, 0xfe, 0xc5, 0xf7, 0x40, 0x4d, 0xad, -0x62, 0xb0, 0xd7, 0x78, 0x6b, 0xd3, 0x73, 0x50, 0x69, 0x6d, 0xf5, 0x19, 0xa3, 0x4e, 0xf2, 0x3f, -0xb2, 0x5f, 0x9a, 0x75, 0x68, 0xf4, 0x85, 0x44, 0x87, 0x0d, 0xb9, 0x29, 0x83, 0x75, 0x02, 0xdc, -0x6e, 0x61, 0xd9, 0x9a, 0xef, 0x64, 0x88, 0xaa, 0x8a, 0x31, 0x36, 0x40, 0xb0, 0x25, 0x59, 0xa0, -0x46, 0xbb, 0xef, 0xee, 0xd6, 0x32, 0x97, 0xae, 0x44, 0x5f, 0x98, 0x65, 0x0f, 0x88, 0xdd, 0x6e, -0x94, 0x9f, 0x13, 0xd2, 0x3a, 0x1e, 0x39, 0x3b, 0x0e, 0xbe, 0x5f, 0x31, 0x3e, 0x9c, 0x13, 0xbe, -0x64, 0x39, 0x3b, 0x9a, 0x73, 0x68, 0x24, 0x79, 0x07, 0x80, 0x98, 0xfd, 0x43, 0x39, 0x69, 0x3d, -0x88, 0xd7, 0xa3, 0xd4, 0x05, 0x47, 0x08, 0xf7, 0xec, 0x08, 0x3b, 0x9a, 0x33, 0xaf, 0xaf, 0x05, -0xc3, 0xf5, 0x4b, 0x70, 0x6e, 0xab, 0xab, 0xfe, 0x00, 0xae, 0x90, 0x0c, 0x69, 0xfe, 0xb2, 0xc9, -0xf0, 0x85, 0x1a, 0x9c, 0x9f, 0x9f, 0x06, 0x8b, 0x34, 0xfb, 0xc4, 0x28, 0x8e, 0x13, 0x4b, 0xa6, -0x3e, 0x05, 0xa9, 0x59, 0x72, 0x6e, 0xc0, 0x99, 0x51, 0x4e, 0x59, 0x3d, 0xbc, 0xd8, 0x2c, 0x30, -0x0d, 0xb9, 0x08, 0x23, 0xfa, 0x98, 0x89, 0xa6, 0xb2, 0x8f, 0xb8, 0x11, 0x9b, 0x6a, 0x06, 0x08, -0xdd, 0x1a, 0x9c, 0x45, 0x5f, 0x92, 0x3c, 0x9a, 0xd6, 0x21, 0x07, 0x7b, 0xce, 0x1a, 0xb5, 0x1e, -0xa2, 0x1e, 0x34, 0x09, 0xbb, 0x03, 0x28, 0x17, 0x1c, 0x13, 0xb4, 0x32, 0x3a, 0x63, 0xe7, 0x50, -0x07, 0xe8, 0x3e, 0x3a, 0x32, 0x54, 0xfa, 0x15, 0x9b, 0xb8, 0xd3, 0xc3, 0x0c, 0xcd, 0x50, 0x01, -0x0d, 0x10, 0xd5, 0xfd, 0x66, 0x5a, 0xbe, 0xe5, 0x98, 0x6f, 0x8f, 0x96, 0x2b, 0xe8, 0xf6, 0xc5, -0x54, 0x94, 0xc4, 0xaa, 0xc0, 0x82, 0x0f, 0xd9, 0x2a, 0x7f, 0x7e, 0x6a, 0x6c, 0x9d, 0x41, 0xb1, -0x61, 0xfc, 0x10, 0x59, 0x31, 0x9f, 0x96, 0x8f, 0x15, 0xfd, 0x1d, 0x9a, 0xcd, 0xf1, 0xc1, 0xfa, -0x8f, 0x81, 0x74, 0x26, 0x4e, 0xa2, 0x29, 0x6f, 0xf5, 0xb8, 0xcd, 0x82, 0x83, 0xba, 0xb4, 0x45, -0x93, 0xe7, 0xd8, 0x7a, 0xa8, 0x8d, 0x29, 0xe6, 0xa9, 0xa8, 0x09, 0x61, 0x66, 0x8d, 0xa9, 0x05, -0x55, 0xe0, 0x92, 0x1a, 0x70, 0x5e, 0xe9, 0x81, 0xc5, 0xb4, 0x93, 0x2f, 0x23, 0x9d, 0x0e, 0x61, -0xe7, 0x0c, 0x26, 0xdc, 0x50, 0x7f, 0x61, 0x72, 0x77, 0x60, 0x9b, 0xe0, 0x38, 0xb0, 0xde, 0x56, -0x92, 0xef, 0xa5, 0x2a, 0xaf, 0xc5, 0xeb, 0x04, 0x1d, 0xc3, 0xde, 0x30, 0x2d, 0x55, 0x29, 0xa5, -0x0a, 0x6c, 0x73, 0x68, 0x29, 0xe0, 0xe4, 0x25, 0x29, 0x2c, 0xd3, 0x52, 0x2c, 0x12, 0x29, 0xec, -0xc9, 0x14, 0xbb, 0x2f, 0x49, 0x61, 0x9f, 0x96, 0xc2, 0x23, 0x52, 0x24, 0xa1, 0x09, 0xeb, 0x2f, -0x49, 0x61, 0x93, 0x4c, 0xca, 0x0a, 0x21, 0x1f, 0x6a, 0x69, 0x0d, 0xb5, 0x17, 0x26, 0x71, 0xdc, -0xa4, 0xee, 0x3f, 0x4f, 0xba, 0xf4, 0x49, 0x17, 0xd2, 0x89, 0x47, 0x63, 0x61, 0xa6, 0x55, 0x65, -0x6c, 0xed, 0x71, 0xce, 0x34, 0x38, 0x4a, 0x0a, 0x4c, 0x8e, 0xc4, 0xfa, 0x28, 0x5c, 0xd0, 0x30, -0xa2, 0x24, 0x81, 0xfe, 0x38, 0xdf, 0xa6, 0x1a, 0x4f, 0x96, 0x43, 0xd6, 0xcb, 0x9e, 0x40, 0x2e, -0x78, 0xd4, 0x9d, 0x13, 0xcb, 0x15, 0xb6, 0x76, 0x2e, 0x46, 0xb4, 0x7b, 0x2f, 0x65, 0x87, 0xae, -0x90, 0xee, 0x4a, 0x1d, 0x0e, 0xc7, 0x62, 0xb9, 0x9a, 0xb6, 0x3d, 0x6b, 0x8d, 0x25, 0xa9, 0x4d, -0x0a, 0x1b, 0xa3, 0x3a, 0xa6, 0x38, 0x66, 0xa2, 0x95, 0xea, 0x58, 0xac, 0xa8, 0x4e, 0xa7, 0xcc, -0x8d, 0x1a, 0xa7, 0x4b, 0x64, 0x38, 0x72, 0x72, 0x39, 0xc6, 0xf7, 0x92, 0x3a, 0x19, 0xd2, 0x83, -0x21, 0x3e, 0xe1, 0x88, 0xa9, 0x3d, 0x45, 0x37, 0x14, 0xb2, 0x6d, 0xd9, 0x0b, 0xf6, 0x04, 0xc7, -0x1a, 0x68, 0xa1, 0x71, 0xac, 0x4f, 0x8e, 0x60, 0x1c, 0x01, 0xee, 0xd4, 0x08, 0xf0, 0x6a, 0xba, -0x43, 0x1c, 0xd1, 0x0e, 0xac, 0x59, 0x3c, 0x8b, 0x57, 0xe7, 0x84, 0x56, 0xd7, 0x22, 0x55, 0xfb, -0x6d, 0xa1, 0x89, 0x47, 0x7e, 0x55, 0x68, 0x0c, 0x3e, 0x20, 0xcd, 0x98, 0x5e, 0x0b, 0x3b, 0x84, -0xf2, 0xd8, 0x76, 0xd2, 0x1e, 0xf5, 0xb9, 0x64, 0x3d, 0xf8, 0xae, 0xc6, 0x37, 0xa4, 0x6a, 0x9c, -0x73, 0x66, 0xa4, 0xc7, 0x6b, 0x81, 0x17, 0x39, 0x8f, 0xb9, 0x7c, 0x47, 0x07, 0xb5, 0x38, 0x7b, -0x4d, 0x3e, 0xbb, 0x05, 0x0d, 0x30, 0x23, 0x1d, 0xa7, 0xaf, 0x3b, 0x31, 0xe5, 0xa3, 0x52, 0x11, -0x18, 0x62, 0xfa, 0xe7, 0x13, 0x61, 0xa2, 0x18, 0x0e, 0xba, 0x97, 0x35, 0x2d, 0x9f, 0x6a, 0x65, -0x79, 0x63, 0xe5, 0x48, 0xef, 0xb5, 0xd2, 0xbc, 0x5e, 0xe5, 0x2e, 0x79, 0x36, 0xa7, 0x57, 0x92, -0xf9, 0xc8, 0x45, 0x38, 0xe2, 0x49, 0xb7, 0xfd, 0x43, 0xe4, 0xfa, 0xac, 0xac, 0x2b, 0x31, 0x28, -0x73, 0xed, 0x5e, 0xb2, 0x00, 0xaa, 0xf9, 0x4f, 0xd1, 0xa4, 0xf9, 0x87, 0x43, 0xef, 0x10, 0xbf, -0x35, 0xa5, 0x24, 0xb2, 0xd6, 0x73, 0xac, 0x71, 0x73, 0x5c, 0xd5, 0xea, 0x1d, 0x41, 0xf8, 0x79, -0x4b, 0xc9, 0x6a, 0xc4, 0xa0, 0x46, 0xa3, 0xcb, 0x0a, 0x19, 0x62, 0xd8, 0x97, 0x73, 0xe3, 0xba, -0x34, 0xd4, 0xe0, 0x15, 0x92, 0x13, 0x0a, 0xa2, 0xa3, 0x66, 0x30, 0x16, 0x54, 0x0b, 0xeb, 0xd1, -0x19, 0x6d, 0x9f, 0xf1, 0x99, 0x6d, 0x1f, 0xa6, 0xb6, 0x93, 0x0d, 0x73, 0x6a, 0x7f, 0x28, 0x4f, -0x0b, 0xc9, 0x68, 0xad, 0xb7, 0xfa, 0xf2, 0x6d, 0x0d, 0x67, 0x5f, 0xa6, 0xb5, 0xd5, 0xe9, 0xd6, -0x3a, 0xa6, 0xb6, 0x76, 0xdd, 0xf4, 0xd6, 0x6a, 0x79, 0x7a, 0xd7, 0xa4, 0xda, 0x5a, 0x9a, 0xe5, -0x1b, 0xd3, 0xe4, 0xf7, 0xbf, 0x86, 0x2f, 0x86, 0xff, 0x3f, 0xbe, 0x7c, 0x4e, 0x7c, 0xc1, 0xb1, -0x2f, 0xf5, 0xa4, 0x67, 0x37, 0xbb, 0xa9, 0x65, 0x38, 0x9a, 0x35, 0x36, 0xd4, 0x94, 0x20, 0x8b, -0xbe, 0x1d, 0x88, 0x37, 0xd1, 0xc4, 0xd8, 0x3a, 0x94, 0x33, 0xf6, 0x59, 0x2a, 0x21, 0x7f, 0x6c, -0x5d, 0xd8, 0x81, 0xbc, 0xb2, 0x55, 0x94, 0x61, 0xcc, 0x02, 0x5d, 0x98, 0xd6, 0xc8, 0xc7, 0x14, -0x2a, 0x0f, 0x19, 0x79, 0x61, 0xbb, 0x7f, 0x7f, 0x42, 0xd1, 0xaf, 0x05, 0x0c, 0x9d, 0x11, 0xd6, -0x56, 0x14, 0x30, 0x8d, 0x77, 0x7a, 0x6c, 0x67, 0x46, 0xec, 0x01, 0x8a, 0x9d, 0x1d, 0x96, 0x52, -0xb1, 0xa3, 0xd3, 0x63, 0xa3, 0x74, 0x6f, 0xa4, 0x3b, 0x95, 0xb1, 0x95, 0x8b, 0xfc, 0x0f, 0xf0, -0xad, 0x38, 0xd6, 0x54, 0x4b, 0x5f, 0xf2, 0x8f, 0xb0, 0x8f, 0x37, 0xc3, 0x67, 0x1d, 0xfb, 0x44, -0xd3, 0x3e, 0x62, 0x1d, 0x3f, 0xc9, 0x2b, 0x94, 0xa2, 0x44, 0xbb, 0x73, 0xa8, 0xdd, 0x24, 0xe8, -0x26, 0xce, 0xf2, 0xe5, 0x74, 0xc7, 0xf3, 0xe1, 0x03, 0xfe, 0xa1, 0x50, 0x36, 0xdd, 0x1c, 0xa8, -0x18, 0xe8, 0xee, 0xbb, 0x14, 0xcf, 0xc6, 0xeb, 0x84, 0xbe, 0x01, 0x83, 0x81, 0xec, 0x4c, 0x66, -0xee, 0x39, 0xf3, 0xa4, 0xef, 0x41, 0x9e, 0x22, 0x45, 0xda, 0x53, 0x77, 0xff, 0xf1, 0xfd, 0xe8, -0x73, 0x24, 0x3d, 0xdd, 0x8f, 0x4e, 0x36, 0x3f, 0x53, 0xfe, 0xc3, 0x52, 0xd6, 0xd8, 0xb0, 0xb8, -0xeb, 0x78, 0xaa, 0x1e, 0x4a, 0xf2, 0x98, 0x9d, 0x2c, 0x81, 0x9a, 0xb0, 0x0e, 0xcf, 0x90, 0xee, -0x2b, 0x79, 0x4b, 0x74, 0x52, 0xa7, 0xea, 0xd4, 0x2c, 0x4c, 0x69, 0xf7, 0x78, 0xdc, 0xe9, 0x7f, -0x1a, 0x9c, 0xf8, 0x0e, 0xc6, 0x66, 0x08, 0x09, 0xa0, 0xd0, 0xa3, 0x18, 0x7e, 0xf6, 0x6f, 0x61, -0x8b, 0x7c, 0x45, 0x9c, 0x2d, 0x59, 0x5e, 0x0c, 0x14, 0x12, 0x8e, 0x9e, 0x4e, 0xf2, 0x76, 0x6c, -0xc3, 0x8c, 0x2c, 0xb5, 0x19, 0x71, 0xb6, 0x66, 0xce, 0x90, 0x2c, 0xea, 0x93, 0xcd, 0x67, 0xec, -0xe9, 0x23, 0xf8, 0x26, 0xc9, 0xf2, 0x15, 0xb2, 0x3f, 0x95, 0xd2, 0x86, 0x01, 0xec, 0x41, 0xee, -0xd1, 0x98, 0xf1, 0xfd, 0x34, 0xd6, 0xce, 0x13, 0xb2, 0x62, 0x6c, 0x4b, 0x28, 0x07, 0xe7, 0x6c, -0x29, 0xaa, 0xd2, 0x9c, 0x88, 0xf8, 0xbf, 0x45, 0xb3, 0x95, 0x3d, 0x2a, 0x47, 0x20, 0xf7, 0x91, -0x03, 0x8a, 0x7d, 0xe7, 0x8f, 0x20, 0x27, 0x94, 0x1f, 0xef, 0xaf, 0xd3, 0xef, 0xff, 0x11, 0xe4, -0x85, 0x73, 0xc5, 0x2d, 0xe2, 0xf6, 0xf9, 0x90, 0xbb, 0x6b, 0x07, 0xe4, 0xae, 0xd4, 0x4b, 0xf5, -0x72, 0x95, 0x7c, 0x55, 0xe8, 0x18, 0xfb, 0x37, 0x16, 0x74, 0xc2, 0x42, 0x90, 0xe8, 0xce, 0x0f, -0xf8, 0x62, 0x38, 0x1b, 0xbf, 0xe6, 0x82, 0xd1, 0x48, 0x37, 0xe5, 0x8a, 0x2f, 0x19, 0xcc, 0xf8, -0x65, 0xc0, 0x2f, 0x53, 0x74, 0x62, 0x6c, 0x07, 0x14, 0x12, 0xd7, 0x80, 0x3e, 0x33, 0xb4, 0xf0, -0x12, 0xb0, 0x19, 0x69, 0xb3, 0xb3, 0x8d, 0xbf, 0x2a, 0xc0, 0xce, 0x35, 0x24, 0x7b, 0x96, 0x52, -0xb8, 0x04, 0x47, 0x17, 0x41, 0xe0, 0x4e, 0xa4, 0x0c, 0x32, 0xd9, 0xae, 0x64, 0x9e, 0x52, 0x5b, -0x09, 0x27, 0x2a, 0x27, 0x15, 0x22, 0x4c, 0x4c, 0x5a, 0x2c, 0x85, 0x25, 0x7a, 0x03, 0xaf, 0x80, -0xe9, 0x63, 0x59, 0xf6, 0xb4, 0xa5, 0xea, 0xbc, 0xe4, 0x3d, 0xd2, 0x7c, 0xb3, 0x8d, 0x39, 0x3e, -0xa9, 0xf9, 0x3f, 0x23, 0xfc, 0xc9, 0x1e, 0x1a, 0xfa, 0xd8, 0x30, 0x1c, 0xa5, 0xfd, 0xda, 0x0b, -0xea, 0x31, 0x6d, 0x4d, 0xcb, 0x22, 0x2c, 0x33, 0x9e, 0x5c, 0xa4, 0xf1, 0xce, 0x26, 0x99, 0x6e, -0x80, 0x20, 0x69, 0xe2, 0x09, 0x61, 0x1b, 0x0d, 0xb9, 0xb8, 0x33, 0xa4, 0x95, 0xc8, 0xc4, 0x87, -0xd8, 0x8a, 0x23, 0x09, 0x37, 0xf1, 0x44, 0x55, 0x19, 0x7a, 0x6a, 0xb2, 0xc2, 0x97, 0xa1, 0xa9, -0x76, 0x77, 0x82, 0x09, 0x4a, 0x59, 0xce, 0xba, 0x25, 0x53, 0xcb, 0x2f, 0x6e, 0xae, 0x2e, 0xa9, -0x4c, 0x64, 0x25, 0x66, 0xa6, 0x35, 0xfa, 0x1c, 0xaf, 0x3e, 0x33, 0x9e, 0x90, 0x68, 0xf5, 0x21, -0x0e, 0xf9, 0x7a, 0x5a, 0x52, 0x73, 0x7b, 0xa0, 0x5c, 0x8a, 0x80, 0xdf, 0xbf, 0x85, 0xe6, 0x10, -0x47, 0x27, 0xd0, 0x0d, 0xc8, 0xc8, 0x1b, 0xb1, 0x35, 0xf1, 0x58, 0x8a, 0x37, 0xda, 0x89, 0x38, -0xe4, 0x3c, 0x7c, 0x60, 0x00, 0x6c, 0xa5, 0xa3, 0x28, 0xc1, 0x4c, 0xd5, 0xcc, 0x15, 0x8a, 0x19, -0x68, 0x93, 0x88, 0xc3, 0x72, 0x99, 0x27, 0x93, 0x6f, 0xfe, 0xd2, 0x5e, 0xa8, 0xf0, 0x81, 0xf7, -0x46, 0x9f, 0x8e, 0x6f, 0x57, 0xde, 0x33, 0xf9, 0xb4, 0x13, 0x1a, 0x37, 0x87, 0xed, 0x6e, 0x71, -0xbf, 0xf1, 0xf9, 0x1f, 0x3e, 0xce, 0x32, 0x4c, 0x85, 0x6c, 0x60, 0x2b, 0x96, 0x3f, 0x74, 0xd3, -0x4a, 0xc1, 0x51, 0x58, 0x84, 0xb8, 0xbb, 0x5f, 0xdc, 0x11, 0x46, 0xeb, 0x51, 0xf8, 0xf5, 0x02, -0xd2, 0x50, 0xb2, 0x67, 0xae, 0x78, 0x7f, 0xcc, 0x1c, 0xf6, 0x22, 0xb6, 0x5a, 0x59, 0x36, 0x00, -0xf2, 0xb2, 0x0c, 0x3a, 0x39, 0x12, 0xaa, 0x10, 0xa9, 0xec, 0x20, 0x37, 0x64, 0x68, 0x3f, 0xd2, -0x9a, 0xff, 0x36, 0xbe, 0x6b, 0x81, 0x2c, 0x9a, 0xba, 0xa1, 0x32, 0x43, 0xcb, 0x8f, 0x42, 0x32, -0xe6, 0x5a, 0x1a, 0x57, 0xd7, 0x88, 0x9b, 0x03, 0x27, 0x91, 0xb2, 0xcb, 0x52, 0xcd, 0xe1, 0xfd, -0xd7, 0xd1, 0xbc, 0xea, 0x62, 0x8d, 0x07, 0x0a, 0x1c, 0x5c, 0x87, 0x33, 0x38, 0xcf, 0x8c, 0x9f, -0xec, 0xb5, 0x1b, 0xc4, 0x5d, 0x42, 0xc2, 0x52, 0x33, 0xf6, 0xfb, 0x9e, 0x8b, 0x07, 0x05, 0x26, -0x94, 0x54, 0x3e, 0x68, 0x84, 0xb4, 0x74, 0xb2, 0x4d, 0x8b, 0xd1, 0xc7, 0xbf, 0xfd, 0x4b, 0x2e, -0x5c, 0xdc, 0xcb, 0x96, 0xba, 0xe8, 0xeb, 0xef, 0xf8, 0x37, 0x91, 0xfa, 0xde, 0xc0, 0xbf, 0x0f, -0x8b, 0x1b, 0xa5, 0x4a, 0x36, 0xf2, 0xd7, 0xb7, 0xf9, 0xf7, 0x3b, 0xa9, 0x38, 0xff, 0xc8, 0xbf, -0xdf, 0x4f, 0x7d, 0xb3, 0x75, 0xdc, 0x93, 0xcf, 0x06, 0xb6, 0x72, 0xbd, 0x7e, 0x4e, 0xab, 0xeb, -0x27, 0x7f, 0xc9, 0x75, 0xdb, 0x8e, 0x32, 0xf3, 0x22, 0x9b, 0x0b, 0x5b, 0x12, 0x61, 0x0b, 0xa2, -0xf6, 0xa5, 0x17, 0x3e, 0x7d, 0x5c, 0xc9, 0xd5, 0xfa, 0xd9, 0x89, 0x78, 0xfd, 0x98, 0xb4, 0x94, -0xfa, 0xd9, 0xd1, 0xc8, 0x37, 0x2b, 0xfd, 0x3e, 0x13, 0x6a, 0x51, 0x43, 0xba, 0xa7, 0xd5, 0xdd, -0x64, 0x85, 0x1d, 0x54, 0x9c, 0x77, 0x84, 0xac, 0x76, 0xfe, 0x29, 0x39, 0x13, 0xaa, 0x94, 0x47, -0x9c, 0x78, 0xd2, 0xb5, 0xa9, 0x55, 0x2f, 0x4b, 0xa0, 0x5f, 0xd6, 0xc7, 0x67, 0xac, 0xe1, 0x3d, -0x8f, 0x83, 0x70, 0xbf, 0xb8, 0xcd, 0x91, 0x74, 0x0f, 0x30, 0x59, 0x8e, 0x7c, 0x6d, 0x25, 0x49, -0x75, 0x76, 0x5f, 0x61, 0x0e, 0xdf, 0x02, 0x9d, 0x1b, 0xcb, 0x22, 0xc9, 0x5b, 0xcd, 0x77, 0xf1, -0x9d, 0x5f, 0x76, 0x8f, 0xa2, 0x1f, 0x4c, 0xe3, 0x59, 0xa8, 0x04, 0x90, 0x1a, 0xad, 0x27, 0x3c, -0x75, 0xcf, 0x70, 0x67, 0xa3, 0x54, 0xef, 0xe7, 0x79, 0x7c, 0xaf, 0x6f, 0xed, 0xc4, 0xd3, 0x62, -0x65, 0xd6, 0xe1, 0xe1, 0xd6, 0x1f, 0x8d, 0x83, 0x03, 0x9c, 0x95, 0x64, 0x5d, 0x83, 0xd7, 0x6e, -0xd7, 0xf0, 0xdd, 0x81, 0x76, 0x69, 0x49, 0x2a, 0x2f, 0x05, 0xf3, 0x31, 0x69, 0xb9, 0x18, 0x1a, -0x37, 0x23, 0x5e, 0xf1, 0x1a, 0xaf, 0xd2, 0x43, 0xf7, 0x2c, 0x17, 0x0c, 0xf2, 0x49, 0x68, 0x8b, -0x6c, 0xb2, 0x83, 0x63, 0x26, 0x87, 0x98, 0xd2, 0x69, 0x71, 0x6c, 0xa6, 0xdd, 0x9b, 0x92, 0x29, -0x1d, 0xab, 0xc0, 0x6c, 0x47, 0x3e, 0x20, 0x9d, 0xef, 0xa7, 0xcf, 0x34, 0x6e, 0xce, 0x2c, 0x31, -0xaa, 0xee, 0x7c, 0x28, 0x9c, 0x2b, 0xe6, 0xf9, 0xf2, 0x41, 0x68, 0x47, 0x49, 0x21, 0x3b, 0x1a, -0xd6, 0xf8, 0x9d, 0x09, 0x61, 0x33, 0x4e, 0xec, 0x77, 0x7e, 0x7a, 0x7b, 0x72, 0xdd, 0xe1, 0x72, -0x7e, 0xbe, 0xf7, 0x6e, 0xc6, 0xb9, 0xc8, 0x91, 0xe3, 0x1f, 0x0a, 0xb7, 0x89, 0xbb, 0x96, 0x30, -0x67, 0xa2, 0xe8, 0x62, 0x5d, 0x2f, 0x2d, 0xdb, 0x6e, 0xf3, 0x3f, 0x4a, 0x77, 0x71, 0xb1, 0x8e, -0xe2, 0xf1, 0x29, 0x1a, 0x8a, 0x42, 0xb0, 0xfb, 0x06, 0xb2, 0x3e, 0x26, 0xdb, 0xd8, 0xc9, 0xd9, -0x6e, 0x11, 0x30, 0x75, 0x97, 0x62, 0x60, 0x67, 0xfd, 0x86, 0x9a, 0xa7, 0xe9, 0x2b, 0x74, 0xa5, -0xa4, 0xaf, 0x78, 0x82, 0x34, 0xbe, 0x52, 0x95, 0xec, 0x95, 0xae, 0xda, 0xb2, 0x25, 0x94, 0x4b, -0xb7, 0x48, 0x6f, 0xd9, 0x01, 0x86, 0x90, 0x91, 0xf6, 0x5e, 0xa1, 0xcb, 0x48, 0x37, 0x7c, 0x05, -0xee, 0xa1, 0xf5, 0x6b, 0x5a, 0x7d, 0xad, 0x45, 0x4c, 0xa0, 0x33, 0x07, 0x62, 0xbf, 0xfe, 0x9e, -0x85, 0x9a, 0x75, 0xdd, 0xca, 0x8c, 0x3a, 0xb8, 0x41, 0xa2, 0x7b, 0xc5, 0x50, 0xbe, 0xc9, 0x23, -0x7b, 0xc0, 0x19, 0xb3, 0xae, 0xbd, 0x64, 0xa3, 0x9b, 0xe8, 0x92, 0x85, 0x7c, 0xfe, 0x3f, 0x77, -0x36, 0xd2, 0xfa, 0x99, 0x91, 0xe0, 0x44, 0x3b, 0x0e, 0xc4, 0x4a, 0xaa, 0x90, 0xa6, 0xa5, 0x34, -0xbd, 0x2e, 0xf9, 0x0c, 0x19, 0x3b, 0x83, 0x87, 0x54, 0x8f, 0x5f, 0xe2, 0xf3, 0xc3, 0x24, 0x8d, -0x8f, 0x41, 0x1c, 0x34, 0xbf, 0x7c, 0xbe, 0xdb, 0xd7, 0x43, 0x37, 0x04, 0xd3, 0x0d, 0xeb, 0x27, -0x46, 0xb9, 0xe4, 0x24, 0xd5, 0xaf, 0x90, 0xc8, 0x52, 0x78, 0x27, 0x1c, 0xaa, 0xbf, 0xa0, 0x0e, -0x2e, 0xb9, 0xa0, 0x3e, 0xac, 0xb8, 0x34, 0xf9, 0x4b, 0xdc, 0xda, 0x63, 0x09, 0x6c, 0xcb, 0xd4, -0x7e, 0xa6, 0x64, 0x33, 0xbe, 0xcb, 0xcd, 0xee, 0xb5, 0xe7, 0x86, 0x0e, 0x09, 0xfb, 0xd1, 0xb4, -0x56, 0xc9, 0xd6, 0x92, 0xd9, 0x56, 0x2b, 0x71, 0x66, 0x4b, 0xc8, 0xb6, 0x6f, 0x59, 0xd4, 0x98, -0xb9, 0x82, 0x4a, 0xdc, 0x6b, 0xd8, 0x7e, 0x62, 0xd4, 0x91, 0x60, 0xae, 0x90, 0xfa, 0xe5, 0x49, -0xc9, 0x4b, 0x5a, 0x9d, 0x70, 0x8e, 0x3d, 0x48, 0xa9, 0x1c, 0xde, 0x5d, 0xe2, 0x36, 0xb4, 0xad, -0xa4, 0x77, 0x26, 0xab, 0xc7, 0xb4, 0xc2, 0x98, 0xdc, 0xd1, 0xa1, 0x98, 0xa3, 0x29, 0x7e, 0x71, -0x72, 0x9f, 0xb1, 0x10, 0xb2, 0xe0, 0xc5, 0xd0, 0x69, 0xb1, 0x73, 0xc3, 0xcd, 0x76, 0xf8, 0xa6, -0xdb, 0x04, 0x95, 0x3b, 0x71, 0xae, 0xfd, 0x11, 0xc5, 0xcb, 0x48, 0xb9, 0x57, 0xb4, 0xfe, 0x56, -0x79, 0x2a, 0x07, 0x84, 0x7c, 0xcf, 0xc1, 0x30, 0xdd, 0xd6, 0xa7, 0xe9, 0x62, 0x18, 0x52, 0x85, -0xf0, 0x84, 0xb3, 0x10, 0x9e, 0x2c, 0x2c, 0x04, 0xb2, 0xef, 0xb9, 0x0d, 0xc7, 0xd3, 0x36, 0xac, -0x7b, 0x82, 0xc7, 0x77, 0x0e, 0xdd, 0x14, 0x26, 0x21, 0x2d, 0xe5, 0x59, 0x82, 0x6e, 0xad, 0x30, -0xe2, 0x1c, 0x40, 0xe9, 0xcf, 0x5b, 0x12, 0x2e, 0xc0, 0xfc, 0xf6, 0xf3, 0x7d, 0x9d, 0x16, 0x29, -0x1b, 0xd3, 0x1c, 0x90, 0xaa, 0x31, 0x54, 0x17, 0xd8, 0xd2, 0xb8, 0x39, 0x6a, 0xc8, 0xb4, 0x0b, -0x78, 0xe9, 0x7c, 0xc7, 0x36, 0x9c, 0xdb, 0x5a, 0x36, 0x73, 0x0b, 0x7f, 0x15, 0xa6, 0xdb, 0x30, -0xe8, 0x96, 0x20, 0x7d, 0x23, 0xf9, 0x18, 0x34, 0x1f, 0x94, 0x49, 0x2f, 0x9e, 0x61, 0x9f, 0x6c, -0xcd, 0x67, 0x06, 0xfa, 0xbc, 0xc9, 0x3e, 0x33, 0xd0, 0xc7, 0x92, 0xea, 0xc9, 0x83, 0xe8, 0xbf, -0x8b, 0xfd, 0x01, 0xfd, 0xe7, 0x60, 0x3b, 0x12, 0x29, 0xbe, 0xc8, 0x8c, 0x33, 0x00, 0xc9, 0x3e, -0xd4, 0x17, 0xed, 0xc8, 0x4d, 0x24, 0xc2, 0x56, 0x91, 0x8e, 0x74, 0x92, 0xb4, 0xa3, 0x02, 0xd3, -0x0e, 0x70, 0x5a, 0x1d, 0xa6, 0x45, 0xe8, 0x60, 0x7e, 0x8f, 0xa3, 0xdf, 0x68, 0xe3, 0x66, 0x76, -0xef, 0x45, 0xf7, 0x20, 0x87, 0xeb, 0x31, 0x5c, 0x42, 0x78, 0x3d, 0x43, 0x9a, 0xf6, 0x98, 0xe8, -0xdd, 0x3c, 0xbe, 0xb7, 0x02, 0xe1, 0xf1, 0xdc, 0x41, 0x84, 0xdc, 0x33, 0x5a, 0xbc, 0x17, 0xb9, -0xb6, 0xd4, 0xc6, 0x06, 0xad, 0x45, 0x2f, 0x26, 0x79, 0x69, 0x6e, 0x31, 0xf5, 0xdf, 0xaa, 0x74, -0xff, 0x45, 0xe9, 0xbc, 0xda, 0xde, 0x4c, 0xdb, 0x83, 0x38, 0x82, 0x27, 0x84, 0x5d, 0x56, 0xec, -0xf3, 0x7c, 0x8d, 0xfb, 0x04, 0xd8, 0xc1, 0x98, 0xcc, 0x77, 0xc6, 0x12, 0x16, 0xd2, 0x5d, 0x20, -0x70, 0x08, 0x29, 0xea, 0x46, 0xac, 0xa7, 0x29, 0xb0, 0xad, 0x65, 0x73, 0xfc, 0x8b, 0x74, 0x53, -0xdc, 0x74, 0x89, 0x4a, 0xd8, 0xf3, 0x96, 0xfc, 0x38, 0xcb, 0xeb, 0xd3, 0xb3, 0x7c, 0xd5, 0x07, -0x60, 0xbb, 0xde, 0x07, 0x26, 0x89, 0xac, 0xb6, 0x2f, 0xcc, 0xdc, 0x5b, 0x75, 0x3d, 0x8e, 0xe5, -0x50, 0x12, 0xba, 0x64, 0xb1, 0xb4, 0x05, 0xe9, 0x36, 0xad, 0x1f, 0x58, 0x30, 0x87, 0xc2, 0x0c, -0x3e, 0x7f, 0x0b, 0x4a, 0x64, 0x4b, 0x53, 0xe9, 0x4c, 0x7c, 0xff, 0x1a, 0xa8, 0xf1, 0xe4, 0x9e, -0x00, 0xb2, 0xbf, 0x1a, 0xb8, 0x5d, 0x35, 0xd0, 0xed, 0xba, 0x2e, 0x5d, 0x51, 0x40, 0x35, 0x64, -0xe2, 0xa3, 0x03, 0x8a, 0x68, 0x0d, 0xfa, 0x7d, 0xd5, 0xe5, 0x7d, 0x56, 0x2d, 0x65, 0xf7, 0x07, -0x6a, 0x39, 0xba, 0x17, 0xb1, 0xfb, 0xb4, 0x5a, 0x49, 0x37, 0x82, 0xab, 0x1e, 0xfe, 0xfa, 0x48, -0xad, 0xe1, 0xfb, 0x75, 0x7d, 0xfc, 0xf5, 0xa1, 0xda, 0x80, 0x21, 0x8d, 0xec, 0xfe, 0x58, 0x6d, -0x46, 0xff, 0x16, 0x76, 0x9f, 0x51, 0xe9, 0x86, 0x5e, 0x85, 0xdd, 0x7f, 0x50, 0xdb, 0xd1, 0xbf, -0x93, 0xdd, 0x67, 0xd5, 0x08, 0xfa, 0x47, 0xd9, 0xfd, 0x47, 0x35, 0xae, 0xdd, 0xdc, 0x3b, 0xc0, -0xdf, 0xe7, 0xd4, 0x41, 0xfc, 0x1e, 0x3f, 0xf9, 0xb6, 0x9a, 0xe0, 0xef, 0x3f, 0xa9, 0x23, 0x52, -0xb5, 0xc5, 0x09, 0xb3, 0xc8, 0x56, 0x74, 0x51, 0xbd, 0x3a, 0xca, 0xbe, 0x17, 0xd5, 0x4d, 0x5c, -0x9b, 0x2d, 0xfc, 0x75, 0x41, 0xdd, 0x86, 0xf5, 0x7c, 0x9c, 0xdc, 0x06, 0xbd, 0xfa, 0x04, 0xba, -0x9f, 0x64, 0x37, 0xa8, 0x4f, 0xa1, 0x7b, 0x07, 0xbb, 0x75, 0xea, 0x33, 0xe8, 0xde, 0xc9, 0xf1, -0xff, 0xac, 0xee, 0x42, 0xf7, 0x6e, 0x76, 0x9f, 0x57, 0xf7, 0x62, 0xbd, 0xc6, 0xd8, 0xad, 0xaa, -0xfb, 0xe9, 0x36, 0x60, 0x76, 0x9f, 0x52, 0x0f, 0xa2, 0xff, 0x21, 0x76, 0x8f, 0xab, 0x47, 0xb1, -0xac, 0x63, 0xec, 0xfe, 0x54, 0x3d, 0x2e, 0x6e, 0x1d, 0x46, 0xf7, 0xa4, 0x7a, 0x02, 0xe3, 0x9f, -0x64, 0xf7, 0x27, 0xea, 0x69, 0xba, 0x8f, 0x81, 0x6e, 0x90, 0xc6, 0x67, 0x5c, 0xc3, 0x11, 0xd9, -0xd5, 0xad, 0x1a, 0xb4, 0x1d, 0x7c, 0x79, 0xbc, 0xf3, 0xb5, 0x9c, 0xe4, 0x15, 0xd2, 0xc9, 0x7b, -0xa0, 0xd7, 0x80, 0x29, 0x06, 0xaa, 0x3e, 0x54, 0x5d, 0x72, 0x9d, 0x1d, 0xe3, 0xb9, 0x56, 0x09, -0x7d, 0x5e, 0xf4, 0x4b, 0xa9, 0xd5, 0x94, 0x14, 0x0e, 0x08, 0xfe, 0x33, 0xdb, 0x5a, 0x75, 0x1a, -0x0e, 0xcd, 0xf7, 0xc1, 0x31, 0xef, 0x33, 0x70, 0xb4, 0xfa, 0x34, 0x1c, 0x9d, 0x5f, 0x0f, 0x87, -0xa4, 0x62, 0x75, 0x60, 0xbe, 0x07, 0x46, 0x28, 0xd7, 0x5b, 0xd5, 0x1e, 0xe3, 0x7c, 0x86, 0x27, -0x8c, 0x48, 0x2e, 0x18, 0xc9, 0xc4, 0x23, 0x2c, 0x4d, 0x0a, 0xc3, 0xcc, 0x15, 0xee, 0x62, 0x35, -0x91, 0xa4, 0x39, 0x7c, 0xcf, 0xb0, 0x7d, 0x5a, 0xac, 0x7c, 0x8c, 0xd5, 0x50, 0x58, 0xac, 0x6e, -0xc1, 0x99, 0xf1, 0x81, 0x70, 0x8d, 0xff, 0x81, 0x50, 0x76, 0x21, 0xf1, 0x05, 0x6f, 0xe1, 0x88, -0xd7, 0xd2, 0x61, 0x2c, 0xa7, 0x13, 0x82, 0x23, 0x92, 0x21, 0x96, 0x81, 0xd9, 0xe8, 0x6b, 0xc3, -0xb4, 0x73, 0xa5, 0xda, 0xa9, 0x1c, 0xac, 0x62, 0x44, 0x98, 0x38, 0xf1, 0xb1, 0x45, 0x9d, 0x19, -0xfc, 0x10, 0xdf, 0xc1, 0x9d, 0x7d, 0xc1, 0x8f, 0x7d, 0x47, 0xbb, 0xd7, 0x62, 0x06, 0x7b, 0xb6, -0x80, 0x97, 0x9a, 0x4f, 0xab, 0x54, 0xd9, 0xe3, 0xd4, 0x82, 0x3b, 0x12, 0x27, 0x46, 0xa5, 0x1a, -0xa4, 0xd9, 0xe5, 0x72, 0xb5, 0x79, 0x3e, 0x43, 0x75, 0x6d, 0x12, 0xaa, 0xac, 0xc1, 0x08, 0xe2, -0x48, 0xb0, 0x1d, 0x3e, 0x10, 0x07, 0x2b, 0xf1, 0xd6, 0x95, 0x64, 0x41, 0x2d, 0x06, 0x75, 0x3a, -0xa9, 0x4e, 0x26, 0x98, 0x76, 0x31, 0x4c, 0x8f, 0xbb, 0x0a, 0xe9, 0x1c, 0xea, 0xce, 0xa1, 0x88, -0x5e, 0x06, 0x89, 0x6c, 0xa2, 0xdb, 0x5e, 0x7d, 0x59, 0xa4, 0x3b, 0x7c, 0x00, 0x5d, 0xba, 0x60, -0x22, 0xa3, 0xb6, 0xc8, 0x35, 0x49, 0x38, 0x73, 0x21, 0x4c, 0x9f, 0x41, 0x58, 0x19, 0x58, 0x3f, -0x7b, 0xfe, 0xd9, 0x43, 0xb4, 0x46, 0x8e, 0x21, 0xc5, 0xea, 0xdb, 0x74, 0x67, 0x31, 0xca, 0x87, -0x54, 0x2b, 0xa3, 0x92, 0xc7, 0x71, 0x90, 0x63, 0x39, 0x1f, 0x91, 0x6b, 0x68, 0x9f, 0x05, 0xc5, -0x1b, 0x40, 0x7e, 0x60, 0xe7, 0xb3, 0xaa, 0x27, 0x64, 0xa3, 0xd0, 0xc0, 0x9e, 0xf1, 0x37, 0x10, -0x36, 0xd6, 0x96, 0xcd, 0x61, 0x30, 0x6c, 0xa7, 0x51, 0xc4, 0xf7, 0x7c, 0x58, 0x31, 0x9f, 0x67, -0xd5, 0xc6, 0x54, 0x9c, 0x17, 0x30, 0xc4, 0xc2, 0x71, 0x46, 0x68, 0x3c, 0x71, 0x1c, 0x0b, 0xe7, -0xa3, 0xa4, 0xe2, 0x3c, 0x8a, 0x21, 0x66, 0x8e, 0xd3, 0x43, 0x63, 0x8b, 0xe3, 0x98, 0x39, 0x9f, -0x68, 0xa8, 0x54, 0xaa, 0x4e, 0xe2, 0x9d, 0x7f, 0x07, 0x3c, 0x1e, 0xce, 0x67, 0x6e, 0xee, 0x2d, -0x94, 0xbe, 0x04, 0x54, 0x9f, 0x29, 0x41, 0xa8, 0x1a, 0x3c, 0x34, 0xf6, 0x94, 0x6c, 0x4c, 0x17, -0xbd, 0x5f, 0xd4, 0xf2, 0x58, 0x88, 0xfa, 0xe6, 0x58, 0x2a, 0xf5, 0x1c, 0xa4, 0xd1, 0x7b, 0xc3, -0x56, 0x2d, 0xd5, 0x93, 0xc4, 0x4d, 0x1a, 0x72, 0x69, 0x04, 0x70, 0xfb, 0xbb, 0xd5, 0x04, 0x42, -0x36, 0x1f, 0xe1, 0x60, 0x4f, 0xc3, 0xec, 0x8b, 0x83, 0x94, 0x72, 0x3e, 0xfa, 0x83, 0xe9, 0x8b, -0xdd, 0xea, 0x43, 0x30, 0x0b, 0xdd, 0x12, 0x54, 0x60, 0x2c, 0xe9, 0xd0, 0x33, 0x30, 0x82, 0xb0, -0x5c, 0x8c, 0xb8, 0xeb, 0x9f, 0x4f, 0x77, 0x2d, 0x3f, 0x03, 0x01, 0xc4, 0xdd, 0x00, 0xe2, 0xae, -0xdf, 0x5e, 0x7b, 0x23, 0xd9, 0xa1, 0xcf, 0x29, 0x68, 0x00, 0x0b, 0xf3, 0x8d, 0x27, 0xc0, 0x5a, -0x40, 0x29, 0x6d, 0x05, 0x11, 0x18, 0x81, 0xfc, 0x02, 0xca, 0x51, 0xc2, 0x5f, 0x3b, 0xd8, 0xe5, -0xda, 0x14, 0xe6, 0x58, 0xbe, 0x48, 0x36, 0xc2, 0xdb, 0xbd, 0x2e, 0x58, 0x85, 0x2e, 0x23, 0xac, -0x9e, 0xdf, 0x00, 0x11, 0x5a, 0x09, 0xc4, 0xfc, 0x07, 0x30, 0xff, 0x38, 0xe6, 0x1f, 0xc7, 0xfc, -0xa3, 0xe8, 0x4e, 0xd0, 0xd8, 0x9a, 0xbf, 0x8a, 0xf6, 0x39, 0x21, 0x3e, 0x2d, 0xe6, 0x7e, 0xdd, -0x82, 0xfe, 0xdb, 0xb0, 0x86, 0x51, 0x78, 0x1c, 0x7f, 0x3d, 0xf0, 0x04, 0xfe, 0x36, 0xc2, 0x93, -0xf8, 0xab, 0xc0, 0xdb, 0xf8, 0xfb, 0x24, 0xb4, 0x60, 0xcd, 0xcf, 0x70, 0x3f, 0x67, 0x63, 0xfc, -0xa7, 0x14, 0x4b, 0x0a, 0x3a, 0xd9, 0xf3, 0x3b, 0xe1, 0x29, 0x78, 0x2a, 0x85, 0x8d, 0xc6, 0xf9, -0x5d, 0xb0, 0x03, 0x76, 0x28, 0x39, 0x54, 0x0e, 0xcd, 0x23, 0x18, 0xee, 0x82, 0x1d, 0x8c, 0x15, -0xc5, 0x6a, 0x3e, 0xaf, 0xf3, 0x9c, 0x5f, 0xbf, 0x0d, 0x4b, 0xdc, 0x85, 0x39, 0xef, 0x86, 0xdd, -0xf8, 0x7b, 0x0c, 0xc4, 0xfe, 0xc8, 0x67, 0x55, 0x5f, 0xd8, 0x10, 0x43, 0xee, 0x2c, 0x06, 0xe8, -0x6e, 0x09, 0x1b, 0xe2, 0x16, 0xd2, 0x49, 0xa3, 0xbb, 0x33, 0x9c, 0x5d, 0x3a, 0x08, 0x1e, 0x9a, -0x93, 0xf0, 0x2b, 0x1a, 0xce, 0x2e, 0x1b, 0x04, 0xbd, 0xa2, 0xdf, 0xfa, 0x32, 0x8f, 0x96, 0x6c, -0xe4, 0x80, 0x0d, 0xa4, 0xa3, 0x74, 0x10, 0x1c, 0x28, 0xfe, 0x81, 0x90, 0xfe, 0xdb, 0xbf, 0xc6, -0xf7, 0x21, 0xa1, 0x35, 0xaa, 0x49, 0x24, 0x86, 0x12, 0xc3, 0xb2, 0x31, 0x31, 0x24, 0xcf, 0xc2, -0xc7, 0x84, 0xcf, 0xec, 0xc4, 0x50, 0xcc, 0xe2, 0xab, 0xc2, 0x38, 0x27, 0x43, 0x58, 0xde, 0x70, -0x02, 0x5d, 0xb6, 0xb0, 0x21, 0x2a, 0x11, 0xdf, 0x31, 0x9c, 0x98, 0x5f, 0x05, 0x63, 0x58, 0xb3, -0x1d, 0xb0, 0x1f, 0x7f, 0x77, 0xc2, 0x01, 0xfc, 0xb5, 0xc1, 0x41, 0x7f, 0xb7, 0xba, 0x2f, 0x2c, -0x30, 0x9c, 0x38, 0x95, 0x3d, 0xe3, 0x13, 0x1a, 0x2f, 0x0a, 0x59, 0x0a, 0xb6, 0xe8, 0x38, 0x95, -0x1c, 0x96, 0xa4, 0x6a, 0xe3, 0x49, 0xe6, 0x79, 0x20, 0x96, 0xe6, 0x7a, 0x7e, 0x13, 0xb3, 0xf0, -0xbd, 0xe6, 0x46, 0xc6, 0x51, 0x23, 0x42, 0xa7, 0xd4, 0xd1, 0xad, 0x2e, 0x62, 0x7e, 0xcb, 0x2a, -0x76, 0x8d, 0x64, 0x1d, 0xb4, 0x7b, 0xa2, 0xba, 0xa1, 0x67, 0x60, 0x8c, 0xef, 0x88, 0xa2, 0x10, -0x63, 0xd5, 0xd9, 0x1d, 0xb0, 0x04, 0xb9, 0x9b, 0x68, 0xfe, 0x54, 0x4e, 0x4e, 0x12, 0x12, 0xf8, -0x47, 0xb1, 0x6c, 0x69, 0x28, 0xaa, 0x12, 0x0f, 0x17, 0x9b, 0xa4, 0x1d, 0x7c, 0xf3, 0xfc, 0x60, -0x96, 0x8c, 0xdc, 0xab, 0x09, 0xec, 0xdf, 0x83, 0x88, 0xf5, 0x2e, 0x78, 0x42, 0xab, 0x73, 0xb1, -0xea, 0x64, 0x1e, 0x08, 0x7b, 0xe0, 0x21, 0x5a, 0xc5, 0xb1, 0x88, 0xb1, 0x6c, 0x7a, 0x7a, 0xfe, -0x52, 0xe4, 0xab, 0x1a, 0x6a, 0x2f, 0x7c, 0xb2, 0xea, 0xdb, 0xbf, 0x4e, 0xd5, 0xf8, 0xf7, 0x6c, -0x2b, 0x1a, 0xf4, 0x1b, 0x8d, 0x2e, 0xe6, 0x1a, 0x40, 0x9f, 0x83, 0x35, 0x9f, 0xa0, 0xfc, 0xb4, -0xb1, 0xe0, 0xc4, 0xf0, 0x0a, 0x7b, 0x04, 0x9e, 0x20, 0xde, 0x31, 0xcd, 0x8d, 0xfb, 0x22, 0xb0, -0x42, 0x93, 0x0a, 0xfe, 0x8b, 0xa4, 0x02, 0x5f, 0x37, 0xdf, 0x7a, 0xa6, 0x69, 0xc1, 0x68, 0x35, -0x95, 0xf2, 0xa1, 0xfe, 0xe2, 0x5a, 0x21, 0x1c, 0xff, 0xf4, 0xbd, 0xc6, 0xcd, 0x9a, 0x76, 0xea, -0x69, 0x67, 0xb1, 0x3a, 0x81, 0xef, 0x1f, 0xd0, 0x7d, 0x2f, 0x7c, 0x16, 0xef, 0xbf, 0x90, 0x93, -0xb3, 0x6b, 0xf2, 0x9e, 0x28, 0x97, 0x64, 0xeb, 0xe1, 0xe9, 0x7c, 0xd2, 0xb9, 0x46, 0xa4, 0x34, -0x34, 0x72, 0x8d, 0x24, 0x1d, 0xe2, 0xdb, 0x4e, 0x14, 0x16, 0x1f, 0xba, 0xa1, 0x5c, 0xa2, 0xd4, -0x44, 0x1b, 0x88, 0x86, 0x10, 0xad, 0x49, 0xe1, 0x2f, 0xed, 0x7d, 0x15, 0xf4, 0xb3, 0x8c, 0xee, -0x35, 0x3a, 0xb7, 0x0a, 0x61, 0xbf, 0x90, 0x72, 0xc9, 0x4c, 0xa1, 0xd8, 0x33, 0x7d, 0x94, 0xbc, -0xe4, 0x97, 0x62, 0x16, 0x2e, 0xd1, 0xa7, 0xfe, 0x91, 0xb0, 0x19, 0xa9, 0xb6, 0x41, 0xab, 0x65, -0x1e, 0x4a, 0x6f, 0xe6, 0x24, 0x35, 0xfc, 0xe3, 0xeb, 0x28, 0xc7, 0x3f, 0xa8, 0x7d, 0xcf, 0xc4, -0xef, 0x97, 0xf0, 0x1b, 0x73, 0xe6, 0xfb, 0xe3, 0xa9, 0x67, 0x2c, 0xe8, 0xf7, 0x24, 0xfb, 0x59, -0x53, 0x7e, 0x56, 0xf4, 0xdb, 0xc4, 0x7e, 0xe6, 0x94, 0x1f, 0xd6, 0xf1, 0x8f, 0x03, 0xec, 0x67, -0x4b, 0xf1, 0x98, 0xc5, 0xaa, 0x0d, 0x7d, 0xb1, 0xfd, 0xfe, 0x07, 0x92, 0xfc, 0x23, 0xad, 0xa7, -0x11, 0x47, 0xfa, 0x47, 0xbb, 0x36, 0xb2, 0xe8, 0xb6, 0xcd, 0x64, 0x6c, 0x3b, 0x8d, 0x44, 0x0c, -0x33, 0x6a, 0x61, 0x52, 0x2a, 0x0c, 0x67, 0x18, 0x0c, 0x93, 0x02, 0x7b, 0xce, 0x9e, 0xa6, 0x30, -0xd6, 0xcc, 0xe5, 0xa5, 0x72, 0x3c, 0x41, 0x10, 0x3a, 0x7b, 0x84, 0x42, 0xbe, 0x73, 0x90, 0x71, -0xdd, 0x12, 0xb5, 0xc8, 0xc5, 0xaa, 0x31, 0x8d, 0xe5, 0x92, 0x99, 0xee, 0x7c, 0x9f, 0x3c, 0x4e, -0x77, 0x36, 0x5c, 0xae, 0x2f, 0x94, 0xb9, 0x19, 0xbe, 0x36, 0xc5, 0x92, 0xfc, 0x62, 0x0a, 0x8c, -0xae, 0xe9, 0xfd, 0xa4, 0x98, 0xc8, 0x5f, 0x39, 0x49, 0xbf, 0x88, 0xcf, 0x88, 0x8f, 0x93, 0x75, -0x28, 0xe9, 0x1b, 0x50, 0x36, 0x7c, 0xdc, 0xf7, 0xde, 0x62, 0x7d, 0xa1, 0xce, 0x75, 0x79, 0x6d, -0x28, 0xe9, 0x65, 0x77, 0xd3, 0x58, 0xe6, 0xbd, 0x84, 0xef, 0x83, 0xcd, 0x5d, 0x4d, 0x77, 0x78, -0x11, 0x2f, 0x03, 0x92, 0xf7, 0x27, 0x60, 0xd7, 0xf6, 0x26, 0x3a, 0xdd, 0x35, 0xe0, 0xd2, 0x76, -0x43, 0x96, 0xba, 0x6b, 0xa1, 0x9c, 0xdd, 0x7f, 0x82, 0x45, 0x6e, 0x2f, 0x54, 0x6a, 0x3b, 0x16, -0x3d, 0x28, 0x3f, 0xd6, 0x68, 0xbb, 0x15, 0x7d, 0x98, 0xb6, 0x41, 0xdb, 0x9f, 0xd8, 0x88, 0xee, -0x66, 0x6d, 0xaf, 0x24, 0xdf, 0xfd, 0xad, 0xed, 0x95, 0x54, 0xd0, 0xdd, 0xae, 0xed, 0x8f, 0xec, -0x44, 0x77, 0x44, 0xdb, 0x1f, 0xc9, 0x7b, 0x19, 0xf1, 0x19, 0xc0, 0x67, 0x30, 0x66, 0x3b, 0xb2, -0xd9, 0x55, 0xa7, 0xed, 0x6f, 0xc8, 0x8e, 0xad, 0x38, 0x34, 0xa4, 0xed, 0x39, 0x1b, 0x44, 0xf8, -0x76, 0x6a, 0xf2, 0xba, 0x7e, 0xaa, 0x9e, 0x98, 0x79, 0xa6, 0xc7, 0xe7, 0x79, 0xe1, 0x71, 0x21, -0x43, 0x06, 0xee, 0xb9, 0x6d, 0x33, 0xdf, 0x38, 0x55, 0x25, 0xf7, 0x40, 0x45, 0x15, 0xdd, 0x5e, -0x43, 0x27, 0x96, 0x9e, 0x53, 0x7f, 0x49, 0x56, 0xd7, 0x6f, 0x19, 0xa5, 0x55, 0xbf, 0xdb, 0xe8, -0x96, 0x70, 0x5b, 0x60, 0x6b, 0xe3, 0x66, 0x7b, 0x82, 0xb8, 0xf3, 0xc5, 0xd6, 0x0c, 0xdf, 0x6d, -0xe8, 0x4b, 0xab, 0x82, 0x95, 0x6e, 0xa0, 0x18, 0xb4, 0x12, 0xca, 0x5f, 0x7a, 0x11, 0x12, 0x9b, -0xf5, 0x5f, 0x4f, 0xcb, 0xfa, 0x0f, 0x36, 0x3c, 0x3a, 0x6c, 0xd7, 0x1d, 0x4d, 0xc8, 0xfa, 0x0f, -0xd1, 0x75, 0x68, 0xc8, 0x37, 0x10, 0x90, 0x0e, 0xfd, 0x04, 0xa1, 0x99, 0x4c, 0x63, 0x14, 0xf7, -0x18, 0x35, 0x6e, 0x4e, 0xef, 0x39, 0x77, 0x54, 0xd9, 0xaf, 0x76, 0x14, 0x81, 0xa1, 0xb0, 0x08, -0x8c, 0xfe, 0xe1, 0x6e, 0x84, 0x90, 0x19, 0xe5, 0x81, 0x19, 0xff, 0xd8, 0x06, 0x59, 0xef, 0x98, -0x1f, 0x00, 0x98, 0xfd, 0x73, 0x74, 0x1d, 0xb3, 0xaf, 0x86, 0x1c, 0x1e, 0xf7, 0x48, 0x2b, 0x60, -0xa6, 0x58, 0xd7, 0x5f, 0x5c, 0x83, 0x32, 0x7a, 0xea, 0x76, 0xde, 0xb7, 0x7e, 0x28, 0xdd, 0x33, -0x0a, 0x16, 0x9b, 0x75, 0x2c, 0x74, 0x01, 0x63, 0xe7, 0x0a, 0x2a, 0xa1, 0x3f, 0x48, 0x2d, 0xb9, -0xe5, 0x84, 0x53, 0x6f, 0x1e, 0x06, 0x78, 0xee, 0xca, 0x9e, 0x60, 0xf6, 0x08, 0x80, 0xfe, 0x3f, -0x7c, 0x03, 0x33, 0x7e, 0x86, 0x33, 0x0c, 0xd7, 0x9d, 0x76, 0x90, 0xe9, 0x3e, 0x22, 0x69, 0x88, -0xee, 0x5c, 0x5b, 0x5c, 0xa3, 0x85, 0x3d, 0xd6, 0xb8, 0x99, 0x38, 0x43, 0x5d, 0x77, 0x2f, 0xc0, -0xb1, 0x12, 0x68, 0x7a, 0xd0, 0x37, 0xa0, 0xeb, 0xc6, 0x11, 0x89, 0x69, 0x8e, 0x26, 0x34, 0xf7, -0x63, 0x74, 0x37, 0x5b, 0xf6, 0x88, 0xaa, 0xbe, 0xfd, 0x0f, 0x08, 0x2b, 0x7d, 0xc5, 0x4f, 0x93, -0x79, 0x1e, 0x4d, 0x1c, 0x4d, 0xbc, 0xb7, 0xf1, 0x68, 0xe2, 0xfd, 0x8d, 0x94, 0xfb, 0xcc, 0x43, -0x22, 0xe7, 0x54, 0x9c, 0x74, 0xde, 0x83, 0x94, 0x33, 0x9d, 0x19, 0x7f, 0xf8, 0x19, 0x91, 0xb7, -0x0c, 0x47, 0x12, 0x47, 0x12, 0x4e, 0xdd, 0x07, 0x9b, 0x8e, 0x8c, 0x1c, 0x1a, 0x3a, 0x9a, 0x48, -0x85, 0x25, 0xd3, 0x44, 0x7a, 0x3d, 0x25, 0x10, 0x7c, 0x90, 0x6b, 0xc9, 0x29, 0x88, 0x33, 0xa6, -0x1a, 0xf1, 0x77, 0x3a, 0x67, 0xf9, 0xb3, 0xea, 0xdc, 0xb8, 0x39, 0x56, 0xf1, 0x7c, 0x22, 0xa2, -0x0f, 0x26, 0x68, 0x27, 0xcf, 0xdb, 0xf2, 0xc0, 0x6c, 0x59, 0x7a, 0x3e, 0xd1, 0xb6, 0x88, 0x6e, -0x99, 0x0f, 0x3e, 0xe8, 0x32, 0x04, 0xd7, 0xbb, 0xeb, 0xa0, 0xc4, 0x52, 0x04, 0xe6, 0x26, 0xa0, -0xdb, 0x0e, 0x4f, 0x9e, 0x36, 0x23, 0xc8, 0xda, 0xf2, 0xc9, 0x7e, 0x01, 0xa8, 0x69, 0x88, 0xbf, -0x2d, 0x3b, 0x11, 0xe2, 0x8a, 0xa1, 0x69, 0x44, 0xf9, 0x25, 0xdd, 0x43, 0x05, 0x57, 0x84, 0x3b, -0x63, 0xe5, 0x47, 0x36, 0xd3, 0x19, 0x46, 0xc9, 0x0d, 0xe5, 0x5b, 0xb6, 0x92, 0x96, 0x37, 0x36, -0xf3, 0xf9, 0x44, 0x77, 0xa3, 0xe4, 0x09, 0x8e, 0x0e, 0xea, 0xf7, 0x8e, 0x76, 0xe4, 0x04, 0x47, -0x0f, 0x1f, 0xd0, 0x7a, 0x6c, 0xbb, 0xe2, 0x60, 0x4e, 0xeb, 0xec, 0xa0, 0xba, 0x37, 0xd1, 0x33, -0x97, 0x7b, 0xf6, 0xea, 0xcb, 0xf5, 0xac, 0xbc, 0x00, 0x39, 0xd4, 0x2a, 0xd1, 0xb7, 0x5c, 0xa3, -0xf3, 0x7e, 0x2b, 0x72, 0xbe, 0x67, 0x96, 0x72, 0xdf, 0x62, 0x3a, 0xda, 0x35, 0x8d, 0xed, 0x5a, -0xa6, 0xf5, 0x1f, 0xdd, 0x28, 0x15, 0xd8, 0xde, 0xb8, 0x39, 0x1b, 0xa0, 0xf4, 0x5a, 0x0f, 0x94, -0x69, 0x31, 0xd2, 0x3e, 0x37, 0xb0, 0x8f, 0x1b, 0xca, 0x28, 0x55, 0x3a, 0xbe, 0x15, 0xb2, 0xf5, -0x50, 0x9a, 0x0a, 0x43, 0x9f, 0x7c, 0xc8, 0xce, 0xd6, 0x7c, 0x66, 0x4e, 0x8d, 0x4b, 0x39, 0x55, -0x78, 0xb4, 0x10, 0xed, 0x9b, 0xe0, 0xf9, 0xd6, 0xbe, 0x63, 0x23, 0xc7, 0x46, 0x94, 0x06, 0xb3, -0x0e, 0xda, 0xc3, 0x8b, 0xda, 0x8c, 0xf8, 0x5e, 0x16, 0xaa, 0x54, 0x1c, 0xf8, 0xee, 0x0e, 0xe7, -0xe2, 0xef, 0x7d, 0xa1, 0x12, 0xeb, 0x4f, 0xa0, 0xec, 0x9a, 0x5e, 0xb8, 0x01, 0x74, 0xca, 0x5c, -0x39, 0xea, 0x03, 0x45, 0x6f, 0x7d, 0x31, 0xf7, 0x8b, 0xa1, 0x0b, 0x4a, 0x9e, 0x75, 0xf8, 0x9a, -0x3a, 0xf4, 0x35, 0x96, 0x5d, 0x61, 0x1d, 0xba, 0xc6, 0x03, 0xba, 0xe6, 0x8d, 0x1c, 0x96, 0x1f, -0xda, 0xe9, 0xcd, 0x75, 0xae, 0x86, 0x3c, 0x6d, 0x05, 0xe4, 0x60, 0xad, 0xd6, 0x72, 0x7d, 0x0b, -0xad, 0xed, 0x8b, 0xd2, 0x6d, 0x89, 0x42, 0x8c, 0xc1, 0xa3, 0x92, 0xfd, 0xea, 0x33, 0xa1, 0xb1, -0x4d, 0xc4, 0xf9, 0x12, 0xe6, 0x29, 0x61, 0xac, 0xab, 0x06, 0xa1, 0x02, 0xf4, 0x5a, 0x7c, 0x93, -0x88, 0x8f, 0xae, 0xec, 0x29, 0x31, 0xb3, 0x32, 0xc2, 0xd3, 0xbe, 0x86, 0x54, 0xfa, 0x19, 0x22, -0x5c, 0x77, 0x0e, 0xe7, 0x8f, 0x47, 0x53, 0xe1, 0xd9, 0x5a, 0xaa, 0x32, 0xe1, 0x7b, 0x49, 0xf9, -0x33, 0x29, 0xbd, 0xd7, 0x09, 0xc4, 0xdf, 0xd0, 0x4d, 0x5e, 0x6a, 0xc6, 0x49, 0x85, 0xdb, 0xd5, -0x5d, 0x7c, 0xe7, 0x8b, 0xce, 0x1e, 0xc0, 0x74, 0x32, 0x72, 0x08, 0xdd, 0xea, 0x9b, 0xe2, 0x9c, -0xc8, 0x97, 0x90, 0x63, 0x53, 0x7f, 0xcf, 0xbf, 0x1f, 0x66, 0x52, 0x3a, 0xe4, 0xaf, 0x3f, 0x42, -0x59, 0xf0, 0x6c, 0x91, 0x4f, 0xbd, 0x80, 0xb4, 0xff, 0x13, 0x74, 0x7f, 0x82, 0x6e, 0xba, 0xcb, -0xa5, 0xa2, 0xfa, 0x43, 0xf5, 0x85, 0xa8, 0x33, 0x63, 0x45, 0x60, 0x10, 0x66, 0xaa, 0xbf, 0xc4, -0x18, 0x6f, 0x62, 0x8c, 0xfd, 0x5f, 0x19, 0x84, 0x59, 0xea, 0x11, 0xae, 0x29, 0xd3, 0x93, 0x5b, -0x46, 0x1b, 0x49, 0x3e, 0x7b, 0x3d, 0xed, 0xb3, 0xd8, 0xca, 0x23, 0x79, 0x58, 0x50, 0xb6, 0x23, -0x09, 0xda, 0xf7, 0x8d, 0xa3, 0x6d, 0xe8, 0x83, 0x51, 0x8c, 0xf7, 0xc6, 0x54, 0xae, 0x8d, 0xca, -0x4a, 0x9f, 0xdb, 0x63, 0x4b, 0x21, 0x1f, 0xd6, 0x18, 0xd4, 0x1d, 0x34, 0xbf, 0x89, 0xd5, 0x17, -0x49, 0xfe, 0x0c, 0xfd, 0xe4, 0xc2, 0xcb, 0xea, 0x27, 0x2d, 0x99, 0xfa, 0x49, 0x5e, 0x11, 0x61, -0x0d, 0x65, 0x52, 0x3b, 0x49, 0xfc, 0x2e, 0xad, 0xb8, 0xd6, 0x18, 0x84, 0xbe, 0x1b, 0x61, 0x07, -0xa4, 0x2b, 0x73, 0x89, 0x3d, 0x17, 0x43, 0xc8, 0x19, 0x39, 0x8d, 0x7a, 0x9c, 0xdf, 0x3c, 0x71, -0xa8, 0xd3, 0xef, 0x7f, 0x20, 0xf0, 0xdc, 0xc4, 0x2a, 0x96, 0xfb, 0x4a, 0x69, 0xdd, 0x38, 0x53, -0xff, 0xa1, 0x96, 0x64, 0xea, 0x0e, 0xa7, 0x9c, 0xba, 0x51, 0xe9, 0x7e, 0x66, 0x69, 0x06, 0x8d, -0x7c, 0xfd, 0x37, 0x43, 0x00, 0xaf, 0x17, 0x0d, 0x92, 0x95, 0x3e, 0x95, 0x66, 0x5e, 0xa2, 0xff, -0xe3, 0xdc, 0x43, 0x46, 0xed, 0x24, 0xcf, 0x15, 0xd9, 0x43, 0x74, 0x11, 0x8b, 0x3d, 0xdb, 0x51, -0x49, 0x46, 0xc8, 0x78, 0x4f, 0xdc, 0xc3, 0x49, 0xdf, 0xb8, 0xca, 0xab, 0xcb, 0xcf, 0x68, 0x2b, -0x62, 0x73, 0x64, 0x10, 0xab, 0xcd, 0xc9, 0x70, 0xfe, 0xda, 0xbd, 0x18, 0xc7, 0x82, 0x77, 0x89, -0x71, 0x06, 0x98, 0xc3, 0x2b, 0xbc, 0xc5, 0x2a, 0xa4, 0xf2, 0x24, 0x4b, 0xdd, 0x0f, 0x5f, 0x2e, -0x5f, 0x7b, 0xf6, 0xe5, 0xcb, 0xc1, 0x32, 0x1c, 0x97, 0x2f, 0x03, 0x21, 0x6e, 0xf6, 0x2f, 0x49, -0xf2, 0xfb, 0x3c, 0x97, 0x7e, 0x58, 0x33, 0x31, 0x29, 0xee, 0xa1, 0xa7, 0xbd, 0x78, 0xa9, 0x9d, -0x78, 0xcc, 0x3b, 0x3b, 0x79, 0xd5, 0x6f, 0x76, 0xc8, 0x68, 0xb7, 0xa0, 0xe8, 0x6e, 0x50, 0xb2, -0x07, 0x0a, 0xea, 0x0c, 0x71, 0x90, 0x8d, 0x62, 0x3f, 0x9e, 0x6c, 0xd0, 0x76, 0xe3, 0xe9, 0xc5, -0x4a, 0xb0, 0x87, 0xef, 0xac, 0x52, 0x3b, 0x49, 0xeb, 0x65, 0x37, 0x3a, 0xc0, 0x51, 0x6f, 0x0f, -0x64, 0xe2, 0xab, 0xd3, 0x53, 0x54, 0xad, 0x4e, 0x44, 0xad, 0x88, 0x41, 0xc4, 0xab, 0x9c, 0xa6, -0xf3, 0x73, 0x57, 0x6f, 0xe4, 0xdd, 0x63, 0x25, 0xa4, 0x09, 0x29, 0xf2, 0xaa, 0xe7, 0x10, 0x43, -0x3b, 0x11, 0x43, 0xc7, 0x1d, 0x2e, 0xd8, 0x8d, 0x92, 0xe6, 0x3a, 0xba, 0x03, 0xd9, 0xff, 0x34, -0x78, 0x43, 0x79, 0xb4, 0x8e, 0xf6, 0xfe, 0xf6, 0x68, 0x41, 0x7a, 0x85, 0x8d, 0xf6, 0x69, 0xda, -0x0b, 0xc1, 0x1b, 0x56, 0x38, 0xa7, 0x51, 0x91, 0x93, 0x1b, 0xea, 0x31, 0x0f, 0xb1, 0x43, 0xea, -0xe6, 0x9d, 0xb4, 0x46, 0xf3, 0xfe, 0x0e, 0xed, 0x2b, 0xce, 0xf1, 0x36, 0x24, 0xe3, 0x61, 0xff, -0x75, 0x0a, 0x7f, 0xa9, 0x1a, 0x71, 0xf8, 0x64, 0xed, 0x87, 0xea, 0x04, 0xdf, 0xb0, 0xb4, 0x4b, -0xec, 0xa0, 0xfa, 0x6a, 0x1a, 0x4e, 0x3a, 0xe4, 0xd8, 0xcc, 0x6a, 0x63, 0x12, 0x4e, 0xf3, 0xf8, -0x46, 0x22, 0xed, 0x6e, 0xbb, 0x8c, 0xf6, 0xf9, 0x87, 0xe9, 0x3e, 0x63, 0xc2, 0xd3, 0xbc, 0x9d, -0xda, 0x2e, 0x91, 0x83, 0x66, 0x97, 0xe0, 0xb5, 0x96, 0x9c, 0x86, 0x15, 0xca, 0xdc, 0xf4, 0xda, -0x8a, 0xd8, 0x17, 0x27, 0x74, 0x8f, 0x81, 0x37, 0x5a, 0x68, 0x5d, 0xe5, 0x49, 0xbe, 0xd3, 0xd2, -0x88, 0xbf, 0x2e, 0x94, 0x69, 0x7b, 0xa1, 0x14, 0x65, 0xda, 0x5e, 0x28, 0x47, 0x99, 0xb6, 0x17, -0x16, 0xa1, 0x4c, 0xdb, 0x0b, 0x95, 0x60, 0xc7, 0x5f, 0x0f, 0x38, 0xf1, 0x17, 0x79, 0x32, 0x5a, -0x3b, 0xc1, 0xc7, 0xc2, 0x77, 0xb9, 0x72, 0x4e, 0xeb, 0xa2, 0x2c, 0x27, 0x9d, 0x7f, 0x72, 0x84, -0xc6, 0xc6, 0xce, 0x8d, 0x61, 0xb1, 0x46, 0x61, 0x48, 0x6b, 0x6e, 0x11, 0x62, 0x66, 0x5e, 0xad, -0x36, 0x14, 0x62, 0x4a, 0xad, 0x76, 0x46, 0x94, 0x76, 0x2d, 0xb0, 0x4d, 0x31, 0x4b, 0x4b, 0xd3, -0xeb, 0x27, 0x19, 0x75, 0xcb, 0x8e, 0xeb, 0x92, 0xbd, 0x3c, 0x38, 0xc2, 0x9a, 0x69, 0xe0, 0x31, -0x3b, 0x53, 0xdc, 0xdb, 0x2e, 0x56, 0xf3, 0x71, 0xc4, 0xee, 0x99, 0x3c, 0x21, 0x56, 0xf1, 0x41, -0x68, 0x3f, 0xf5, 0x52, 0x0f, 0x2c, 0xa4, 0x3b, 0xa5, 0xa5, 0x46, 0xc9, 0x62, 0x27, 0x1c, 0xa2, -0x13, 0x5d, 0xd9, 0xd2, 0xac, 0x60, 0x42, 0x99, 0x43, 0xe7, 0xd5, 0xaa, 0xff, 0xb0, 0x48, 0x17, -0x4c, 0xec, 0x4a, 0x44, 0x4e, 0x36, 0x8e, 0xfa, 0xb7, 0x84, 0xde, 0xa0, 0x5d, 0xde, 0xef, 0x3f, -0x2d, 0x76, 0x01, 0xe0, 0x48, 0x76, 0x4e, 0x59, 0x45, 0xa1, 0xbd, 0x92, 0x57, 0x93, 0x46, 0xdb, -0x5d, 0x3a, 0x6a, 0xce, 0xdc, 0x35, 0x90, 0xbc, 0x27, 0x08, 0x53, 0xf8, 0x8e, 0x0c, 0xb1, 0xce, -0x1b, 0xe1, 0x18, 0xb2, 0x59, 0x2a, 0xc1, 0x3a, 0x5d, 0x2f, 0x76, 0x62, 0x54, 0x71, 0x4c, 0xc9, -0xd5, 0x49, 0x52, 0x98, 0x21, 0x7b, 0xea, 0x3e, 0x84, 0x8c, 0xfd, 0x01, 0x65, 0xf6, 0xaa, 0xe9, -0xb5, 0xb0, 0xd0, 0x2d, 0xa7, 0xae, 0x64, 0x7c, 0xba, 0xf3, 0x8a, 0xd2, 0xfc, 0xf3, 0x91, 0xb0, -0x29, 0xe3, 0x94, 0x0d, 0xc2, 0x99, 0xcc, 0xcf, 0x87, 0x63, 0x35, 0x63, 0xab, 0xb3, 0x79, 0x3f, -0x41, 0xa7, 0x03, 0xa1, 0x6c, 0x4c, 0xc0, 0xb5, 0x88, 0xb9, 0xe6, 0x8c, 0xdd, 0x0c, 0xab, 0xc1, -0xaa, 0x2c, 0x36, 0xff, 0x98, 0xee, 0x2b, 0x04, 0x6b, 0xa8, 0xcc, 0xbc, 0x3a, 0xb7, 0x1c, 0x6c, -0xa1, 0xc2, 0x9f, 0x7d, 0x00, 0x73, 0x42, 0xf6, 0x0c, 0xfd, 0xac, 0x21, 0xed, 0x9e, 0x5c, 0x4f, -0x37, 0x35, 0x36, 0x25, 0x30, 0x27, 0x67, 0x38, 0xdb, 0xe1, 0xb5, 0x5f, 0x1d, 0xfa, 0x65, 0x7a, -0x1f, 0x84, 0xd8, 0xe7, 0x9d, 0xb9, 0xf2, 0x32, 0xc1, 0xeb, 0x35, 0x38, 0x3a, 0x5b, 0x48, 0x97, -0x5b, 0xa2, 0xb3, 0x57, 0x4f, 0x95, 0x09, 0x68, 0x97, 0xe2, 0xf3, 0x3b, 0x60, 0x77, 0x28, 0x5b, -0x9e, 0xa9, 0x80, 0xfe, 0x4d, 0xa4, 0x40, 0x9d, 0x66, 0xba, 0xe1, 0xe2, 0x3f, 0x11, 0x87, 0x8f, -0xf6, 0xe4, 0xb3, 0xfb, 0xf5, 0x70, 0x23, 0xbf, 0xdf, 0x08, 0x07, 0xf9, 0xfd, 0x5a, 0x08, 0xb2, -0xbc, 0x4a, 0x19, 0xbb, 0xdf, 0xa1, 0x9d, 0xf1, 0x3d, 0x39, 0xec, 0xfe, 0x1d, 0xfa, 0x17, 0xd2, -0x0d, 0x42, 0xf4, 0xa5, 0x93, 0x30, 0x64, 0x8c, 0x5d, 0x4e, 0xf4, 0xcf, 0x45, 0xff, 0x43, 0xee, -0x6c, 0xdf, 0xc0, 0x95, 0x4f, 0xa2, 0xeb, 0x20, 0xbb, 0xbe, 0x8f, 0xae, 0x7d, 0x51, 0xc3, 0xce, -0xe1, 0x90, 0x9d, 0xbf, 0x7f, 0x10, 0xd8, 0xa3, 0xd6, 0x20, 0x45, 0xb8, 0x0b, 0x67, 0xa5, 0x41, -0xb2, 0xd0, 0xaf, 0xde, 0xf9, 0xed, 0x5f, 0xe3, 0x9c, 0xa5, 0x53, 0xdb, 0x50, 0xaa, 0x3d, 0x50, -0x75, 0x41, 0x75, 0xf8, 0x93, 0x71, 0x9f, 0x0a, 0x6c, 0x99, 0x1a, 0x73, 0x21, 0xc6, 0x4b, 0xc6, -0x85, 0x1f, 0x72, 0x9c, 0xff, 0x39, 0x3d, 0x8e, 0xa2, 0xb0, 0xff, 0xff, 0x52, 0xfc, 0xfc, 0xfe, -0xa1, 0x92, 0xcd, 0x6f, 0xc2, 0xdf, 0x83, 0x22, 0x26, 0xd2, 0x27, 0xce, 0xc9, 0xdb, 0x8d, 0xf9, -0x54, 0x70, 0xe8, 0x0e, 0x0c, 0x7d, 0xee, 0xd2, 0xb2, 0x94, 0x3c, 0x0e, 0xfd, 0x11, 0x86, 0x6e, -0x49, 0xa7, 0x4d, 0xd6, 0x37, 0xa6, 0x7f, 0x7e, 0x38, 0x1c, 0xed, 0x46, 0xfe, 0x3e, 0x6c, 0x43, -0xb8, 0x5a, 0xa3, 0x59, 0x3b, 0x89, 0x46, 0x9c, 0x8a, 0x19, 0x9e, 0x1f, 0x0e, 0x81, 0xde, 0x80, -0x75, 0x1c, 0xd7, 0xa4, 0xfa, 0x71, 0xd2, 0x10, 0x14, 0xad, 0x02, 0xa3, 0xda, 0x7e, 0xe9, 0xda, -0x21, 0xf2, 0x87, 0xc5, 0xe4, 0x2f, 0x30, 0xee, 0x50, 0x82, 0x78, 0x44, 0xc2, 0x39, 0xb1, 0x73, -0x44, 0x97, 0x23, 0x75, 0xd2, 0x4e, 0x80, 0xfa, 0x33, 0xa3, 0x3a, 0xba, 0x25, 0x3b, 0x86, 0x63, -0x95, 0xe4, 0x26, 0x35, 0xdf, 0x4e, 0xa1, 0xdf, 0x63, 0x0d, 0x4a, 0x76, 0x51, 0x8d, 0xda, 0xae, -0x98, 0x48, 0x5b, 0x52, 0x14, 0x1d, 0x35, 0x67, 0x96, 0x42, 0xb7, 0xe3, 0xd2, 0xde, 0x00, 0x2c, -0xe7, 0x0b, 0x99, 0xe5, 0x08, 0x5d, 0x44, 0xd8, 0x2e, 0x4e, 0xe6, 0x5d, 0xd9, 0x83, 0xe1, 0xdf, -0x14, 0x27, 0x50, 0x92, 0xb4, 0xf3, 0x2b, 0x46, 0xc4, 0x94, 0xf7, 0x88, 0xd6, 0xc4, 0xf4, 0x5c, -0x62, 0x9e, 0x1f, 0x31, 0x07, 0xcb, 0x2c, 0x24, 0x2a, 0xac, 0xac, 0xd1, 0xda, 0x96, 0x8f, 0x3c, -0x89, 0x56, 0x3f, 0xd1, 0x42, 0x65, 0x85, 0x16, 0xa2, 0xc7, 0x9c, 0x4e, 0x22, 0x67, 0x90, 0x3d, -0x85, 0x2f, 0x40, 0x08, 0x15, 0x75, 0xab, 0xa7, 0xd5, 0x76, 0xd9, 0x14, 0xaf, 0x70, 0x5c, 0x91, -0xbd, 0x0e, 0xe7, 0xb0, 0x4e, 0x94, 0x81, 0xbf, 0xc9, 0xd2, 0x60, 0x1b, 0x6b, 0xd9, 0x0c, 0x4e, -0xbf, 0x62, 0xa0, 0x52, 0x38, 0x87, 0xec, 0x34, 0x77, 0xf0, 0x9d, 0x83, 0xa5, 0xb3, 0xc3, 0x21, -0xae, 0xcd, 0xa0, 0x13, 0x64, 0xb3, 0x80, 0x85, 0xd8, 0x5d, 0x1e, 0x32, 0xe3, 0xac, 0x55, 0xc7, -0xb3, 0x16, 0xed, 0x26, 0xfd, 0x32, 0x87, 0xc4, 0x24, 0x8f, 0x92, 0x2d, 0x35, 0xa6, 0x56, 0x9c, -0x72, 0x69, 0xdf, 0x79, 0xe8, 0x23, 0x94, 0xda, 0xdb, 0x71, 0x4c, 0x18, 0x43, 0x27, 0x94, 0x10, -0xcf, 0xc2, 0x7b, 0xb4, 0xf8, 0x11, 0xd9, 0xc4, 0xef, 0x01, 0xd6, 0xbc, 0x21, 0x86, 0x84, 0x73, -0x8a, 0x1a, 0xd4, 0x71, 0x2c, 0x35, 0x07, 0xe7, 0xb0, 0x09, 0xe4, 0x61, 0x67, 0x87, 0x0d, 0xe8, -0x1a, 0x97, 0xba, 0xd5, 0xbb, 0xa4, 0x62, 0xf5, 0x4e, 0x9c, 0x5d, 0xc6, 0xb9, 0xd4, 0x39, 0x76, -0x90, 0x67, 0x8a, 0xf2, 0xfd, 0xc3, 0x34, 0x0f, 0x33, 0x17, 0xf8, 0xe1, 0x8a, 0x09, 0xb5, 0x94, -0xe6, 0x16, 0xa4, 0x90, 0xce, 0xe0, 0xb0, 0xf2, 0x78, 0xe0, 0x1e, 0x1c, 0xa9, 0xe3, 0x62, 0xd5, -0xa5, 0x44, 0x8f, 0xfd, 0x36, 0xee, 0xa8, 0x2d, 0x64, 0xcd, 0x92, 0xff, 0xc7, 0x60, 0x09, 0x9b, -0x08, 0xff, 0xe0, 0x30, 0x96, 0x54, 0xca, 0x18, 0x32, 0x3b, 0x49, 0x81, 0x91, 0x8e, 0xcd, 0x4a, -0xd2, 0xc7, 0xe9, 0x1a, 0xa5, 0x30, 0xe9, 0x5f, 0x26, 0xb0, 0x36, 0x13, 0xbc, 0xbf, 0xff, 0x74, -0xd8, 0xc4, 0xef, 0xc3, 0x21, 0xd0, 0xed, 0x7a, 0xfd, 0xc1, 0x64, 0xde, 0xa1, 0x5c, 0xc6, 0x1d, -0x5a, 0x61, 0xcf, 0xa7, 0x55, 0x24, 0xec, 0xa1, 0x51, 0xef, 0x56, 0x3e, 0x21, 0xe3, 0x94, 0xb3, -0xed, 0x45, 0x60, 0xe1, 0xb0, 0xef, 0xf2, 0x3e, 0xc0, 0x1e, 0xe4, 0x67, 0x2d, 0x04, 0xab, 0x1e, -0x33, 0xd7, 0xe8, 0x28, 0xd6, 0x08, 0x74, 0x6d, 0xd1, 0x99, 0x3b, 0x9f, 0x55, 0xc7, 0xbb, 0xcd, -0xce, 0x25, 0x4e, 0x84, 0xda, 0xdb, 0x25, 0xe8, 0x57, 0x16, 0xeb, 0xa3, 0x1b, 0xa4, 0xd1, 0x55, -0x23, 0xa3, 0xb4, 0x1b, 0xce, 0xa5, 0x9c, 0x1a, 0x87, 0xd9, 0x6a, 0x41, 0x39, 0xf5, 0xb7, 0xce, -0x88, 0xb0, 0x1a, 0x97, 0x8d, 0x47, 0x46, 0x89, 0xd3, 0x94, 0x3d, 0xd2, 0x02, 0x1f, 0x1c, 0xda, -0xf4, 0x02, 0xed, 0x97, 0xfb, 0x5e, 0x7c, 0xe6, 0xae, 0x51, 0x7c, 0xff, 0xb2, 0x8c, 0xf7, 0x5e, -0x5b, 0xf4, 0xf0, 0x0c, 0x0c, 0x42, 0x0c, 0x3a, 0xe1, 0x2e, 0x9c, 0x09, 0xed, 0xc8, 0xd1, 0x61, -0x2d, 0x6e, 0xee, 0x84, 0xb7, 0xc1, 0xae, 0xb9, 0xde, 0x01, 0xc7, 0x7c, 0x0f, 0x48, 0xb4, 0x77, -0xaf, 0xfa, 0x7d, 0xd8, 0x22, 0x79, 0x5e, 0x18, 0x0d, 0xdf, 0x91, 0xfb, 0x45, 0xcb, 0x8b, 0x92, -0xd1, 0xaf, 0x0b, 0x9d, 0xa5, 0x58, 0xf3, 0x3b, 0x61, 0x04, 0xac, 0x9a, 0x6b, 0x14, 0x6c, 0x9a, -0x6b, 0x13, 0xe4, 0x6b, 0xae, 0xb8, 0xc8, 0x17, 0x5d, 0x83, 0x60, 0xd6, 0x5c, 0x06, 0x30, 0x62, -0xbe, 0x06, 0xca, 0xb7, 0x71, 0x03, 0xe5, 0xda, 0x96, 0xf7, 0x8b, 0x7f, 0x0d, 0x19, 0xa9, 0xed, -0x3a, 0x37, 0xc2, 0x16, 0xfd, 0x25, 0x84, 0x94, 0x72, 0x57, 0xaa, 0xac, 0xe3, 0xc1, 0x44, 0x6c, -0x72, 0x5f, 0xc2, 0x39, 0x84, 0x61, 0xe2, 0x4c, 0x43, 0x1e, 0xcd, 0x4c, 0xf6, 0x06, 0xc2, 0x88, -0xe4, 0x59, 0x26, 0xda, 0x0f, 0x2c, 0x59, 0x83, 0x5b, 0x4b, 0xcc, 0x4e, 0x0f, 0xe5, 0x71, 0x7d, -0x23, 0x96, 0x91, 0x86, 0xf5, 0x36, 0xde, 0xbb, 0xf1, 0x0a, 0xbb, 0x07, 0x91, 0xc2, 0x4c, 0x48, -0x4b, 0xbc, 0x5b, 0x10, 0x37, 0x27, 0xd8, 0x7a, 0x43, 0x99, 0x1f, 0x7b, 0x8e, 0x38, 0x15, 0xc6, -0xa2, 0x43, 0xe2, 0x7e, 0xed, 0x4a, 0x90, 0x6a, 0xb1, 0x5f, 0x2c, 0x21, 0x9e, 0x3f, 0xd3, 0x33, -0x34, 0xe2, 0xc7, 0xec, 0xcb, 0xcd, 0x9f, 0x28, 0x8f, 0x60, 0x2f, 0xe2, 0xac, 0x5d, 0x99, 0xb4, -0x2b, 0x51, 0x2a, 0x39, 0x74, 0x62, 0xaf, 0x03, 0x8f, 0xd3, 0xc5, 0xb4, 0x8b, 0x2b, 0x36, 0x89, -0xa3, 0xae, 0x3c, 0xb7, 0x52, 0xa5, 0xd1, 0x47, 0x7c, 0x7a, 0x15, 0x71, 0x57, 0x6f, 0x07, 0x98, -0xc7, 0xfa, 0x25, 0xdf, 0x64, 0x9c, 0x95, 0xe1, 0x73, 0x22, 0x65, 0xf3, 0x43, 0xba, 0x84, 0xd2, -0x64, 0x31, 0xa5, 0xc1, 0x19, 0x72, 0x1a, 0xa5, 0xc9, 0xc5, 0x5a, 0x6a, 0xfb, 0x10, 0xae, 0xec, -0xe1, 0x73, 0xbc, 0x66, 0x3a, 0x25, 0x27, 0xee, 0x6f, 0xfb, 0xda, 0x66, 0xb7, 0x5e, 0xcc, 0xee, -0x97, 0xe4, 0x27, 0xe6, 0x70, 0x3a, 0x4d, 0x6a, 0x9c, 0x92, 0xa3, 0x47, 0xcb, 0xd1, 0x98, 0x91, -0xa3, 0xc1, 0x7e, 0xad, 0xc8, 0x0f, 0x65, 0x93, 0x43, 0x7c, 0x57, 0x71, 0x95, 0x33, 0x87, 0xb4, -0x4f, 0xc4, 0x75, 0xf1, 0xd9, 0x5a, 0x3e, 0xdb, 0x0b, 0xd7, 0xa5, 0xcf, 0xf6, 0xc2, 0x3c, 0xb0, -0xbb, 0xbd, 0xe2, 0x6c, 0x2f, 0x20, 0x6b, 0xed, 0xae, 0x16, 0x67, 0x7b, 0xc1, 0x21, 0xce, 0xf6, -0xe2, 0xc3, 0xe7, 0x7a, 0x91, 0xff, 0x30, 0xf8, 0x73, 0x43, 0x73, 0x64, 0x3d, 0xf3, 0xdb, 0xd4, -0x22, 0xa3, 0x7f, 0x5d, 0xc8, 0x80, 0x61, 0xe2, 0xf4, 0x39, 0x85, 0xe6, 0xe0, 0xdc, 0x65, 0x42, -0xdf, 0x6c, 0x94, 0x64, 0xc7, 0x4f, 0xcd, 0x47, 0x0a, 0x67, 0x3d, 0xca, 0x16, 0x39, 0x2e, 0xfe, -0x40, 0xf0, 0x9c, 0x74, 0x5a, 0x05, 0x6b, 0x5f, 0xfa, 0x37, 0xf5, 0x05, 0xc3, 0xfc, 0xed, 0x6f, -0xd0, 0xef, 0xa9, 0x85, 0x19, 0x7d, 0x21, 0x7c, 0xbe, 0xfe, 0x57, 0xfa, 0xc2, 0xf6, 0xb7, 0xf6, -0x85, 0xb8, 0x7d, 0x7a, 0xf1, 0xe2, 0x42, 0x9d, 0x4b, 0x27, 0x79, 0xed, 0xd5, 0x21, 0xa3, 0x37, -0x17, 0x65, 0x5a, 0xe4, 0x11, 0x9a, 0x46, 0xa8, 0x7d, 0xdf, 0xfe, 0xb5, 0x22, 0xe5, 0x8e, 0x05, -0x1f, 0x52, 0x0c, 0x72, 0xf5, 0xb7, 0x7f, 0xbd, 0xfb, 0xa1, 0x5e, 0x83, 0xc5, 0x16, 0xfa, 0xe8, -0x9a, 0xbd, 0x50, 0xb1, 0x1b, 0xbe, 0xb0, 0x17, 0xa4, 0x1d, 0xba, 0xe6, 0x87, 0xe4, 0x19, 0xc4, -0x97, 0x90, 0xe6, 0xe0, 0xd4, 0x93, 0xa4, 0xf1, 0x56, 0xf2, 0xbf, 0x30, 0xb4, 0x03, 0x82, 0x0f, -0x61, 0x6c, 0x5a, 0x8b, 0xf4, 0x04, 0x13, 0xb9, 0xb6, 0xd0, 0x69, 0x65, 0xe0, 0x0b, 0x09, 0xcd, -0x97, 0xf2, 0x38, 0xeb, 0x7f, 0x20, 0x62, 0x76, 0xcd, 0xa8, 0x59, 0x8f, 0x79, 0x15, 0xef, 0x46, -0x7f, 0xaf, 0x1b, 0x6e, 0x58, 0x6b, 0x12, 0x5a, 0x26, 0xa1, 0xf1, 0x8a, 0x83, 0x75, 0x06, 0xcb, -0xde, 0xd9, 0xa4, 0xb7, 0x60, 0xbd, 0x47, 0xc2, 0xe9, 0x6c, 0x4a, 0xfa, 0xa1, 0x3c, 0xee, 0x82, -0x10, 0xca, 0xb0, 0x96, 0x19, 0xd7, 0xee, 0xa5, 0x5d, 0x91, 0x8a, 0x51, 0x94, 0x10, 0x9c, 0x81, -0x65, 0x98, 0xc8, 0xdf, 0x72, 0x93, 0xd1, 0x19, 0x3a, 0xe5, 0x2d, 0xdb, 0x0d, 0xa5, 0x86, 0xa0, -0x67, 0xcb, 0x52, 0xe4, 0x7a, 0x07, 0x93, 0x77, 0x5b, 0x2f, 0x26, 0x39, 0x33, 0x27, 0xa3, 0x3f, -0x00, 0xf6, 0xf8, 0x1f, 0x8d, 0x2c, 0x54, 0xe6, 0x12, 0x67, 0x4d, 0xba, 0xb4, 0xa3, 0x23, 0x72, -0xf6, 0xf6, 0x11, 0x1e, 0xaf, 0x87, 0xfc, 0x89, 0x6e, 0x80, 0xef, 0x1e, 0xe3, 0x1d, 0xb9, 0x8e, -0x42, 0xb0, 0xbc, 0x30, 0x12, 0x3a, 0x66, 0x7c, 0x14, 0x66, 0x22, 0xd7, 0x6e, 0x25, 0xce, 0x5d, -0x2e, 0x14, 0x12, 0xe9, 0xce, 0xa1, 0x9e, 0xc6, 0xee, 0x28, 0x72, 0x89, 0xe6, 0x50, 0x1e, 0xf2, -0x97, 0x90, 0xdc, 0x47, 0xb9, 0x71, 0xa3, 0x26, 0x35, 0x36, 0x53, 0xee, 0x6b, 0xdc, 0x75, 0x59, -0xbb, 0x9e, 0x86, 0xd2, 0x90, 0x01, 0xf3, 0x72, 0x51, 0x59, 0x72, 0x36, 0x97, 0xf3, 0xba, 0x0c, -0x75, 0x43, 0x47, 0x86, 0xb6, 0x0e, 0xed, 0x4b, 0x50, 0xae, 0x05, 0x55, 0x60, 0x0d, 0xcb, 0x7c, -0xdf, 0x78, 0xbe, 0x56, 0x82, 0x59, 0xf0, 0x0c, 0xc2, 0xb2, 0x50, 0x70, 0x08, 0x63, 0x58, 0x84, -0x06, 0xa2, 0x46, 0xdb, 0xb7, 0xbc, 0x58, 0x2e, 0xd4, 0xd9, 0xbd, 0xce, 0x1c, 0x57, 0x56, 0xd3, -0xfa, 0x35, 0x20, 0xcf, 0xe0, 0x9d, 0xd4, 0xbf, 0xa1, 0x99, 0x36, 0x94, 0x8d, 0xd8, 0x6a, 0x55, -0x6c, 0x92, 0x37, 0x38, 0x6c, 0x19, 0x0b, 0xae, 0xdb, 0xbb, 0x6e, 0x65, 0x76, 0xcc, 0x84, 0xfe, -0x6f, 0x90, 0xad, 0x87, 0xd4, 0x1d, 0xdc, 0x9c, 0x8f, 0xdb, 0x64, 0xaf, 0x92, 0xaa, 0x70, 0x1c, -0x94, 0xfb, 0x73, 0xc3, 0xa5, 0xe9, 0x53, 0x43, 0x55, 0x67, 0x8d, 0xaa, 0xa2, 0x6f, 0x1a, 0xb5, -0x58, 0xe8, 0xbc, 0x52, 0xc8, 0x10, 0x1c, 0x55, 0xc8, 0x26, 0x9b, 0x3b, 0x6c, 0xf8, 0xd9, 0x81, -0xd0, 0x49, 0xb3, 0x05, 0xdc, 0x21, 0x7d, 0x70, 0x54, 0x32, 0xda, 0xc5, 0xf9, 0x89, 0x8a, 0x42, -0xbd, 0x23, 0x10, 0x07, 0x87, 0xce, 0x59, 0x6b, 0xaf, 0xb6, 0xe4, 0x23, 0x27, 0x9f, 0x1b, 0x6e, -0xc6, 0xf8, 0xb7, 0x84, 0x03, 0x9c, 0xca, 0xc7, 0xf6, 0x35, 0xec, 0x8a, 0x47, 0x68, 0xe6, 0x5c, -0xab, 0x79, 0xcd, 0xb6, 0xc1, 0x09, 0xc1, 0x75, 0x74, 0xaa, 0x38, 0xf9, 0xbd, 0x1b, 0xc2, 0x63, -0xb2, 0xc9, 0x32, 0x27, 0x9c, 0x47, 0x69, 0x43, 0x06, 0xd9, 0xa4, 0x3c, 0xc3, 0x29, 0x4f, 0x91, -0x55, 0x25, 0xe5, 0x49, 0x71, 0x8f, 0xf3, 0x8a, 0x4a, 0x8d, 0xcf, 0xd7, 0xd9, 0x7b, 0x40, 0x5e, -0x72, 0x0a, 0x16, 0x65, 0x48, 0x41, 0x77, 0x22, 0xe7, 0x22, 0x29, 0x66, 0x7b, 0x27, 0xe4, 0x20, -0xe4, 0x37, 0x69, 0x37, 0x1f, 0x9f, 0xc1, 0x36, 0xa7, 0xe3, 0xbc, 0xc4, 0x77, 0x6f, 0x26, 0xcf, -0x74, 0x2d, 0x42, 0x08, 0x78, 0x11, 0x02, 0xab, 0x9c, 0x7a, 0xd9, 0xe7, 0xb7, 0x85, 0x2e, 0xd8, -0x0d, 0xdb, 0x46, 0xeb, 0x86, 0x71, 0xbe, 0x9d, 0x0f, 0x15, 0xaa, 0x1a, 0xd2, 0x37, 0x0d, 0x93, -0x26, 0xef, 0xed, 0xc8, 0x5a, 0x98, 0xa3, 0x5f, 0x72, 0x1e, 0x47, 0x17, 0x88, 0x9d, 0x45, 0x8c, -0x4d, 0xe5, 0xd8, 0x57, 0x06, 0x71, 0x3e, 0x5f, 0x2a, 0x37, 0xc2, 0xd8, 0xba, 0xf0, 0x3b, 0x48, -0xbf, 0xe9, 0xec, 0x99, 0x41, 0xbb, 0x7d, 0xd4, 0x13, 0x3a, 0x44, 0xbc, 0xbf, 0xe8, 0x4f, 0x7f, -0xa9, 0x53, 0x17, 0x1a, 0xa3, 0xf2, 0xf3, 0xb5, 0x7d, 0xd8, 0x8b, 0xca, 0x9c, 0x3a, 0x47, 0x80, -0x76, 0xa0, 0xd3, 0xd9, 0x34, 0xe4, 0x3b, 0xb3, 0x71, 0x7c, 0x36, 0x2a, 0x25, 0x87, 0x0f, 0xd8, -0xa3, 0xa3, 0x16, 0xc5, 0xe1, 0xaf, 0xe6, 0x9d, 0xbb, 0x86, 0xee, 0x39, 0x51, 0xf3, 0xa1, 0x8d, -0xb1, 0x89, 0x31, 0x9c, 0x6d, 0x83, 0x1b, 0xa4, 0x1a, 0x0d, 0x66, 0x77, 0xd1, 0x6d, 0xa9, 0xe9, -0xfa, 0x60, 0x59, 0x26, 0xed, 0x36, 0x6a, 0xda, 0x93, 0x5d, 0x86, 0x94, 0x28, 0xa0, 0xa7, 0x73, -0xc7, 0x2a, 0xb6, 0x70, 0xd1, 0x54, 0xbd, 0xbb, 0xa3, 0x13, 0x0e, 0x29, 0x12, 0xc2, 0x1f, 0x67, -0xf8, 0x5d, 0x89, 0x90, 0x55, 0xaa, 0xc6, 0x99, 0xd2, 0xa4, 0xed, 0x51, 0xa0, 0x7c, 0x4d, 0xdd, -0xd9, 0x8e, 0x26, 0xff, 0xd6, 0xd0, 0xf1, 0x6f, 0xff, 0x9a, 0xcf, 0x7b, 0x9b, 0xc5, 0xbe, 0xa9, -0x23, 0x43, 0x34, 0x9a, 0xb8, 0xf5, 0x77, 0x49, 0xb9, 0x11, 0x27, 0x4a, 0x4d, 0xba, 0xb0, 0x55, -0xdc, 0xe7, 0x9a, 0x1c, 0x07, 0xbf, 0x88, 0xf2, 0x5a, 0x9c, 0x26, 0x2f, 0xff, 0xe2, 0x18, 0xf2, -0x79, 0x8b, 0xd2, 0x63, 0xa7, 0xb7, 0x30, 0x39, 0x9e, 0xe8, 0x96, 0xd8, 0x47, 0x13, 0x6e, 0x5d, -0x32, 0x55, 0x1d, 0xc2, 0xf1, 0x91, 0x44, 0x4d, 0x82, 0x77, 0x9b, 0x66, 0xd3, 0xe9, 0x98, 0xa4, -0x1d, 0x1d, 0xa6, 0x61, 0x67, 0x68, 0x9f, 0x79, 0xed, 0xc7, 0xbc, 0x07, 0x57, 0x9f, 0xd2, 0x4e, -0x1d, 0xe7, 0xd3, 0x9a, 0x53, 0xb5, 0x53, 0x59, 0x6e, 0x37, 0x38, 0x7d, 0x03, 0x59, 0x13, 0xb4, -0x8b, 0x35, 0x49, 0x29, 0x1d, 0xd3, 0x74, 0x53, 0xa5, 0x59, 0xc4, 0x7f, 0xf2, 0xf9, 0x1b, 0xb3, -0xd0, 0x4d, 0x11, 0xfd, 0x96, 0xb2, 0x97, 0xa2, 0xfb, 0x4b, 0x7a, 0xd1, 0x22, 0xf7, 0x15, 0x62, -0x75, 0xb1, 0x91, 0x63, 0xd0, 0x99, 0x80, 0xb0, 0x76, 0x9f, 0xb8, 0x62, 0x10, 0xb4, 0x95, 0xac, -0x3a, 0x39, 0x74, 0x21, 0x73, 0xac, 0xac, 0x4e, 0xc7, 0x67, 0x90, 0x54, 0xc5, 0x9e, 0x3c, 0xcf, -0x57, 0x08, 0x25, 0x0f, 0x23, 0xcd, 0xd6, 0x8b, 0x3d, 0x5c, 0x22, 0x8f, 0x3d, 0x09, 0xa1, 0xd1, -0x21, 0x2b, 0x4e, 0xc9, 0x73, 0x7b, 0x8e, 0xaa, 0x92, 0x1c, 0x61, 0x87, 0xd2, 0xee, 0x1d, 0xa4, -0xb5, 0xa3, 0x39, 0xf2, 0x6c, 0xd7, 0x12, 0x1a, 0xd1, 0x48, 0x91, 0xf2, 0xac, 0x63, 0x52, 0xb6, -0x0b, 0x9a, 0xd6, 0x23, 0xd5, 0x3d, 0x19, 0x7c, 0x60, 0xf7, 0x03, 0x61, 0x83, 0x94, 0xa5, 0x7c, -0xe4, 0x7f, 0x20, 0x64, 0x78, 0x61, 0x3d, 0xba, 0x67, 0x08, 0xca, 0x20, 0xf6, 0x48, 0x5e, 0xb2, -0xc3, 0x6f, 0x36, 0x8d, 0x71, 0xec, 0x7d, 0x25, 0x75, 0x4e, 0xd3, 0xab, 0xad, 0x8c, 0x59, 0x96, -0x5c, 0x40, 0x0e, 0x64, 0xab, 0xb6, 0xea, 0x88, 0xa1, 0x38, 0x1f, 0x1b, 0xa6, 0x7d, 0x1b, 0x93, -0xdf, 0x34, 0xe3, 0x04, 0xb6, 0x92, 0x06, 0x83, 0x66, 0x25, 0xc4, 0xc8, 0xfc, 0x48, 0x4e, 0xfa, -0x64, 0x95, 0x3a, 0xda, 0xb8, 0xd9, 0x7e, 0xb7, 0x23, 0xb9, 0x27, 0x53, 0x94, 0x38, 0x97, 0xf7, -0x87, 0xcd, 0x0e, 0x1b, 0x69, 0x6f, 0x1e, 0x6b, 0xb7, 0xfc, 0xe9, 0x3d, 0x73, 0x6a, 0x49, 0xb2, -0x5f, 0xd3, 0xf1, 0x51, 0x32, 0x77, 0xd2, 0x79, 0xe9, 0x8c, 0x33, 0x30, 0x19, 0x3a, 0xbe, 0x74, -0xfc, 0xcb, 0x9f, 0x14, 0x8c, 0x9e, 0x3e, 0xf4, 0x13, 0x30, 0x22, 0x87, 0xb6, 0x47, 0x7d, 0xb3, -0x71, 0xb3, 0xd8, 0xcd, 0x65, 0xf7, 0x3a, 0xe8, 0x24, 0x10, 0xe8, 0x4c, 0xda, 0x99, 0x40, 0xfd, -0x94, 0x33, 0x81, 0x15, 0x70, 0x12, 0x4a, 0xa0, 0x01, 0xde, 0xe0, 0x3d, 0x63, 0x59, 0x24, 0x3b, -0xd3, 0xed, 0xdd, 0x6c, 0x85, 0xa3, 0x30, 0xbd, 0xbf, 0x5c, 0x2d, 0x51, 0xe6, 0xd0, 0x7e, 0x39, -0xf5, 0x71, 0xd6, 0xfb, 0xfc, 0x12, 0x69, 0x3b, 0x72, 0xda, 0xb0, 0x23, 0x46, 0x96, 0x6c, 0xf3, -0xd0, 0xe7, 0x7b, 0x0e, 0x94, 0x92, 0xe8, 0x6c, 0x7a, 0x0a, 0x76, 0x86, 0xc3, 0x07, 0x68, 0x0d, -0xb7, 0xfe, 0x82, 0x1a, 0x0c, 0x6c, 0x4b, 0xf9, 0x5a, 0x84, 0x6f, 0x86, 0x8f, 0xfd, 0x12, 0x1f, -0x5b, 0xd2, 0x87, 0xac, 0xaf, 0x95, 0xfc, 0x42, 0x3b, 0x0b, 0x47, 0x6b, 0x35, 0x0d, 0x38, 0x67, -0x5d, 0xcd, 0xb3, 0x48, 0x91, 0xb6, 0xd7, 0xf1, 0xff, 0x4b, 0xdb, 0xfb, 0xc0, 0x47, 0x51, 0x9d, -0x7b, 0xe3, 0xcf, 0x6c, 0x36, 0xcb, 0xb2, 0x2c, 0xeb, 0x12, 0xd7, 0x34, 0xd2, 0x14, 0x87, 0x71, -0x58, 0x96, 0xcd, 0x92, 0x5d, 0xd3, 0x94, 0xe6, 0x62, 0x8a, 0x9b, 0xcd, 0x26, 0x6c, 0x96, 0x90, -0xa6, 0x1b, 0xa4, 0x29, 0xe5, 0xda, 0x31, 0x24, 0xb3, 0x10, 0x12, 0xb2, 0x8d, 0x31, 0x4d, 0xb9, -0x79, 0x71, 0x93, 0x00, 0x46, 0x44, 0x88, 0x80, 0x96, 0xf6, 0xda, 0xbe, 0xde, 0x5b, 0x6b, 0x11, -0xff, 0x45, 0x4a, 0x29, 0xa5, 0xd4, 0xa6, 0x94, 0xeb, 0x45, 0xca, 0xf5, 0x06, 0xa4, 0x14, 0x2d, -0x55, 0xa4, 0x54, 0x11, 0x51, 0x29, 0xa5, 0x16, 0x62, 0xc8, 0xfc, 0x9e, 0xe7, 0x9c, 0xd9, 0x3f, -0x09, 0x60, 0xdb, 0xfb, 0xde, 0x1f, 0x7c, 0x26, 0x33, 0x7b, 0xe6, 0xcc, 0xf9, 0x7f, 0x9e, 0xf3, -0x9c, 0xe7, 0x3c, 0xcf, 0xf7, 0x79, 0x32, 0xa9, 0x33, 0xb6, 0xc9, 0x19, 0xa8, 0xde, 0xc8, 0xce, -0xd7, 0x4f, 0x28, 0x64, 0xc7, 0x60, 0x8d, 0x32, 0x54, 0xf6, 0xe1, 0x27, 0x95, 0xb4, 0x5e, 0x1a, -0x79, 0x89, 0xd0, 0xad, 0xb9, 0x97, 0xee, 0x39, 0xb3, 0xdd, 0x38, 0x43, 0x5c, 0xa4, 0x45, 0xef, -0x05, 0x1f, 0xe1, 0xf4, 0xc8, 0x65, 0xbf, 0xf9, 0x8f, 0xdf, 0x1c, 0x0c, 0x6f, 0x6a, 0xa6, 0xb5, -0x8b, 0xcf, 0xd4, 0xee, 0x96, 0x5c, 0x29, 0x73, 0x4b, 0x9c, 0xa3, 0x1e, 0x69, 0x2f, 0x86, 0xe3, -0x4d, 0xd6, 0xc4, 0xcc, 0x25, 0xbd, 0x62, 0xb6, 0xfe, 0xe5, 0x5c, 0x73, 0xfd, 0xc3, 0x36, 0x31, -0x1f, 0x61, 0xeb, 0xa6, 0x7d, 0x5a, 0x23, 0x71, 0x6a, 0x4c, 0x0f, 0x2f, 0x43, 0x35, 0x39, 0x2b, -0xdb, 0x40, 0x59, 0x49, 0x16, 0x09, 0x51, 0xab, 0xbe, 0x6a, 0x6d, 0x25, 0x6d, 0x39, 0x29, 0x53, -0xb6, 0x3a, 0xb9, 0xc5, 0xd4, 0xa0, 0x0c, 0x8a, 0x82, 0xf9, 0xdb, 0xfb, 0x31, 0xaf, 0xe6, 0xf4, -0x58, 0x21, 0x0a, 0xc5, 0xd1, 0x64, 0xe5, 0x7c, 0xe5, 0xa4, 0x7f, 0x35, 0x43, 0x84, 0x64, 0x2a, -0x76, 0xa6, 0x05, 0x98, 0x11, 0x15, 0xed, 0x85, 0x2e, 0x72, 0x57, 0x68, 0x89, 0xd2, 0x6a, 0x35, -0x11, 0xf9, 0x37, 0x50, 0xd3, 0xbf, 0x37, 0x47, 0xba, 0xf7, 0x76, 0xab, 0x4f, 0x28, 0xfa, 0x0c, -0x26, 0xf4, 0x29, 0x92, 0x44, 0xd3, 0x89, 0x2b, 0x9f, 0x7d, 0xab, 0xa0, 0x6c, 0x68, 0xe4, 0x34, -0xc9, 0x08, 0x18, 0x07, 0x9e, 0x59, 0xb5, 0x89, 0x66, 0xec, 0x2e, 0xdc, 0x87, 0x1e, 0xed, 0x89, -0xdc, 0xbf, 0xfb, 0x7e, 0xf5, 0x6d, 0x71, 0x9c, 0xbe, 0x0e, 0xeb, 0xb6, 0xac, 0x57, 0x9d, 0x65, -0x1e, 0xe2, 0xba, 0xa3, 0x57, 0x9d, 0xe0, 0x0a, 0xb8, 0x8f, 0xa2, 0x13, 0xdc, 0x27, 0x52, 0xb2, -0xaa, 0xa2, 0x02, 0xb9, 0x84, 0xac, 0xb5, 0xae, 0x8f, 0xc1, 0xa2, 0xda, 0xa5, 0x19, 0xb0, 0x55, -0x66, 0x16, 0x51, 0x23, 0x2b, 0x66, 0x81, 0x32, 0x0b, 0xa9, 0xb6, 0x91, 0x46, 0x5a, 0xc9, 0x7b, -0x20, 0x20, 0x23, 0x78, 0x63, 0x4d, 0xcf, 0xae, 0xd5, 0x75, 0xd6, 0x58, 0xc7, 0xad, 0x7e, 0xd8, -0xe2, 0xca, 0x08, 0x94, 0x2a, 0x86, 0x76, 0x4d, 0x0a, 0xa7, 0xeb, 0x66, 0x05, 0x0a, 0x42, 0xe0, -0xcb, 0xe0, 0xab, 0x42, 0xba, 0x8c, 0x69, 0xa4, 0x80, 0x97, 0x14, 0x77, 0xc9, 0x69, 0xd6, 0x90, -0x7c, 0x76, 0xe1, 0x3c, 0xe5, 0xda, 0xbe, 0xf9, 0x63, 0xe2, 0xb4, 0xea, 0x28, 0x5c, 0x27, 0x19, -0x37, 0x59, 0x82, 0xf3, 0xab, 0xea, 0x2a, 0x99, 0x6a, 0x95, 0xab, 0x51, 0x3f, 0x67, 0x2f, 0x8a, -0x09, 0x64, 0x8d, 0xad, 0x9a, 0x99, 0xb6, 0xe7, 0x04, 0xd5, 0xa5, 0x53, 0x04, 0x0b, 0xd3, 0xd6, -0x9d, 0x97, 0x36, 0x82, 0x89, 0x86, 0xac, 0xf5, 0x4e, 0x40, 0x8a, 0x7b, 0x46, 0x01, 0x83, 0x8f, -0xb4, 0x20, 0xb5, 0x75, 0x34, 0xdb, 0x84, 0x60, 0xcc, 0x3e, 0x1a, 0x33, 0x89, 0x5b, 0x74, 0xb0, -0xb8, 0x51, 0x8c, 0x95, 0x4f, 0x3a, 0xee, 0x19, 0x61, 0x71, 0x3e, 0x49, 0x9c, 0xcf, 0x3e, 0x19, -0x33, 0xeb, 0x2b, 0x63, 0x2d, 0xc6, 0x9a, 0x2d, 0x7a, 0x60, 0xaf, 0x6a, 0xc2, 0xbf, 0x5b, 0xa3, -0xb9, 0x0c, 0x5b, 0x8b, 0x2c, 0xbf, 0xad, 0x74, 0x26, 0x8c, 0x3d, 0x61, 0xa7, 0x55, 0x9b, 0x64, -0x7b, 0x4a, 0x07, 0x59, 0x00, 0xe1, 0x1b, 0x92, 0xd0, 0x1a, 0x89, 0xc6, 0x29, 0xaa, 0x34, 0xb1, -0x6d, 0x76, 0xbb, 0xeb, 0xd8, 0xc6, 0x0e, 0x58, 0x79, 0x0b, 0xb3, 0x3d, 0xad, 0x23, 0xda, 0xdf, -0xbc, 0xf0, 0x6f, 0xa6, 0x65, 0x1f, 0x9b, 0x96, 0xf5, 0x26, 0xe4, 0xa0, 0xb2, 0x53, 0x56, 0xf2, -0xcc, 0xba, 0x0a, 0xc7, 0x00, 0x7d, 0x89, 0xef, 0xcd, 0x58, 0xdf, 0xf5, 0xee, 0x62, 0xb8, 0x1c, -0x99, 0xed, 0xa1, 0xbf, 0xd9, 0xde, 0x09, 0x62, 0x59, 0x55, 0x9f, 0x04, 0x6d, 0x9e, 0xa3, 0x1b, -0xdb, 0x73, 0x99, 0x1d, 0xce, 0x02, 0x97, 0x9f, 0x69, 0xe8, 0xcf, 0xc2, 0x77, 0xe5, 0x55, 0x7d, -0x64, 0x59, 0xdf, 0x66, 0xcc, 0x2e, 0x06, 0x0f, 0x95, 0x8f, 0x95, 0x4e, 0xac, 0xdd, 0x68, 0xf5, -0x23, 0xb7, 0xb2, 0x2f, 0x6d, 0xb6, 0xcf, 0xaa, 0xde, 0xf8, 0xc8, 0x41, 0x4c, 0x3d, 0x1f, 0xcb, -0x6c, 0x6c, 0xcd, 0x40, 0x0e, 0x70, 0xa9, 0xe4, 0x01, 0x7b, 0xdb, 0x08, 0x6b, 0xf9, 0x67, 0xdc, -0xc0, 0xac, 0xe3, 0xa0, 0x96, 0x74, 0x2c, 0x0e, 0xb4, 0xba, 0x8e, 0x6c, 0x94, 0xb9, 0xf5, 0xd4, -0x63, 0x84, 0x9f, 0x26, 0x65, 0xf2, 0xfe, 0x51, 0x9e, 0x63, 0x96, 0x2e, 0x23, 0xa3, 0xcb, 0xc3, -0xf5, 0x68, 0x60, 0xaf, 0xe8, 0xc7, 0x9a, 0x9a, 0xa7, 0x2d, 0xc5, 0x49, 0xc7, 0xea, 0xc2, 0x5a, -0x00, 0xd9, 0x80, 0x56, 0x23, 0xe6, 0xe6, 0x4a, 0xcf, 0x8d, 0x5a, 0x4c, 0xee, 0xef, 0x65, 0xed, -0x15, 0x13, 0xe8, 0x84, 0x7d, 0x5a, 0x25, 0xae, 0x30, 0x13, 0x30, 0x76, 0x36, 0xf1, 0x1a, 0xcc, -0xba, 0x12, 0xa9, 0x86, 0xb2, 0xd8, 0xed, 0x01, 0xb3, 0xda, 0xc9, 0x72, 0xad, 0xc7, 0xd5, 0x6b, -0x22, 0xd7, 0xe8, 0xf9, 0xb7, 0x27, 0xdc, 0xb4, 0x7a, 0xdb, 0xd5, 0x29, 0x69, 0xf6, 0xbc, 0x0b, -0xd8, 0x28, 0x78, 0x1d, 0x9f, 0x5c, 0xdc, 0x3e, 0x45, 0xb3, 0xb3, 0xef, 0xaa, 0x71, 0xe4, 0xcc, -0x66, 0xad, 0x94, 0xe1, 0xb4, 0x26, 0x5a, 0x08, 0x39, 0x31, 0x4b, 0xf8, 0x19, 0x9c, 0x85, 0x6f, -0xe3, 0xfa, 0x9a, 0xcb, 0xe2, 0x19, 0xd3, 0xd2, 0x32, 0xf3, 0xb4, 0x90, 0xae, 0xbd, 0x84, 0xed, -0x65, 0x8e, 0x1a, 0xdc, 0x20, 0xaf, 0xd1, 0xfb, 0x90, 0x95, 0x55, 0x69, 0x64, 0xab, 0x7f, 0x80, -0x69, 0xe8, 0x1e, 0x4c, 0x7d, 0x39, 0xfc, 0x0a, 0x96, 0x11, 0x5b, 0xd8, 0x6b, 0x0d, 0x75, 0x08, -0x5f, 0x62, 0xfb, 0xb7, 0xe7, 0xd9, 0xdf, 0xdf, 0xa5, 0x76, 0x71, 0xf9, 0x0f, 0x62, 0xda, 0xf7, -0x60, 0xdc, 0xb8, 0x02, 0x23, 0x8d, 0x0c, 0xbf, 0xc0, 0x1c, 0x95, 0x65, 0x2c, 0xcd, 0xb4, 0x26, -0x6a, 0x3b, 0x4a, 0x1f, 0xcb, 0xe6, 0x50, 0xf9, 0xb8, 0x30, 0xb3, 0x3c, 0x54, 0xac, 0x45, 0x8c, -0xf8, 0x4b, 0xb1, 0x09, 0x69, 0xf1, 0x33, 0x48, 0x6b, 0x8d, 0x4a, 0xa1, 0x58, 0xcd, 0x46, 0x91, -0xb9, 0x9f, 0x64, 0x5e, 0x17, 0x94, 0xc5, 0x2c, 0x66, 0x71, 0x5a, 0x69, 0xfc, 0x7c, 0x16, 0xe1, -0x93, 0x83, 0xce, 0xf6, 0x14, 0xb8, 0x32, 0x3c, 0x8d, 0x64, 0x21, 0xfa, 0xaa, 0x44, 0x7d, 0xd0, -0x6a, 0xc0, 0xfd, 0x84, 0xde, 0xfe, 0x55, 0x7b, 0x3e, 0x1e, 0x21, 0x3b, 0x30, 0xbc, 0x9f, 0x66, -0xc8, 0x3e, 0x16, 0x7d, 0xf7, 0x24, 0x56, 0xdd, 0xcb, 0xf3, 0x52, 0x07, 0x94, 0xef, 0x5c, 0x83, -0xce, 0x6d, 0xbb, 0x16, 0x9d, 0xc3, 0x70, 0x5d, 0x17, 0xde, 0x87, 0xb4, 0xed, 0x13, 0xe8, 0x9a, -0x2d, 0x90, 0x75, 0x2b, 0xb7, 0x62, 0xda, 0x12, 0x08, 0x30, 0xaa, 0x66, 0x4f, 0x50, 0xb5, 0x76, -0xc8, 0xbe, 0xb1, 0xa6, 0x7b, 0x67, 0x4f, 0x82, 0xaa, 0x39, 0x0d, 0x18, 0x03, 0x29, 0x36, 0x52, -0xb5, 0x8c, 0x74, 0xaa, 0x56, 0xc4, 0x4e, 0x15, 0x2b, 0x13, 0xf6, 0x87, 0x9f, 0x9c, 0x5f, 0x56, -0xb8, 0xbb, 0xc5, 0x70, 0x55, 0x9e, 0x39, 0xff, 0x2f, 0x79, 0x5e, 0x4d, 0x4b, 0xbf, 0xf8, 0xe1, -0x95, 0x61, 0x92, 0x02, 0xca, 0x2d, 0x86, 0x22, 0x8f, 0xd7, 0x50, 0xec, 0x6a, 0x31, 0xf8, 0x5d, -0x5e, 0x43, 0x10, 0xc7, 0x05, 0xc1, 0x37, 0x14, 0xb9, 0x6f, 0x30, 0xad, 0x41, 0x66, 0xb9, 0x90, -0x6b, 0xd9, 0xde, 0x6e, 0x0e, 0x78, 0x0d, 0x9f, 0xc7, 0x75, 0x0f, 0x63, 0x8e, 0x3a, 0x2f, 0xcc, -0xe4, 0x78, 0xee, 0x6c, 0x2d, 0x3c, 0xe5, 0xe6, 0x16, 0x66, 0x6d, 0x12, 0x14, 0x16, 0x83, 0x8b, -0x4b, 0x1e, 0x46, 0x56, 0x22, 0xb7, 0x5b, 0x97, 0xef, 0x85, 0x27, 0x9c, 0x61, 0x8c, 0x6d, 0xd1, -0xd7, 0xcd, 0x63, 0xb2, 0xbe, 0x0f, 0xd4, 0x4e, 0x88, 0x74, 0x96, 0x61, 0x89, 0x9a, 0x94, 0x29, -0x11, 0x76, 0x6e, 0x68, 0xfd, 0x34, 0xfe, 0x32, 0xee, 0x8c, 0xaf, 0x38, 0xbf, 0x37, 0x8e, 0x3b, -0x9a, 0x38, 0xa1, 0x1f, 0xe2, 0x2a, 0x9b, 0xc5, 0xe2, 0x4d, 0x50, 0x2d, 0xb8, 0x2a, 0xe2, 0x3e, -0x87, 0x10, 0x8c, 0xbc, 0x4c, 0x97, 0x4b, 0x93, 0xd9, 0xb9, 0x2d, 0x5f, 0x25, 0x87, 0xbf, 0xf8, -0xa1, 0x81, 0xe1, 0xd0, 0xcc, 0x21, 0x1d, 0x98, 0x80, 0xdb, 0x86, 0xfb, 0x4b, 0x0b, 0xe3, 0x8e, -0xef, 0x51, 0xe8, 0xbc, 0x8f, 0x7c, 0xc0, 0x1c, 0xf0, 0x18, 0xf0, 0xef, 0x3e, 0xb3, 0x11, 0xe7, -0x6e, 0x87, 0x4c, 0x76, 0x08, 0x8d, 0xcc, 0xea, 0xad, 0xc9, 0xd9, 0x0c, 0x8e, 0x5d, 0x0f, 0xd6, -0x1b, 0x9c, 0xa5, 0xae, 0x79, 0x62, 0x33, 0xae, 0xde, 0x61, 0x71, 0x42, 0xaa, 0x45, 0x31, 0x3e, -0x95, 0x52, 0xd4, 0x4b, 0x39, 0x99, 0x4a, 0xf9, 0x93, 0x81, 0x15, 0xe7, 0x77, 0xb1, 0x52, 0x8a, -0xe5, 0xe4, 0x31, 0xc9, 0x09, 0x4a, 0x0e, 0xc6, 0x9b, 0xa0, 0xda, 0x77, 0x3d, 0xa8, 0x1a, 0x2b, -0xde, 0xd3, 0xb4, 0x40, 0xc1, 0x01, 0x70, 0x22, 0x0d, 0x75, 0x4e, 0xc0, 0xbd, 0xd6, 0x4c, 0x42, -0x5e, 0x18, 0x69, 0xc3, 0xf2, 0x2e, 0x10, 0x8d, 0xec, 0xfc, 0x57, 0x53, 0x8b, 0x74, 0x19, 0x1a, -0xb3, 0xfc, 0x7a, 0x2f, 0xec, 0x9d, 0x50, 0x31, 0x34, 0x52, 0xcf, 0x38, 0xaa, 0x1c, 0xe4, 0x61, -0xdc, 0xa3, 0xde, 0x7e, 0x11, 0xe7, 0x40, 0xe2, 0x8d, 0xdd, 0x4b, 0x52, 0x87, 0xff, 0xc2, 0xf4, -0xb0, 0xfe, 0xed, 0xb8, 0xfb, 0x70, 0x02, 0xe1, 0x74, 0x77, 0x76, 0x26, 0x6c, 0x66, 0x9d, 0x02, -0xf1, 0x1d, 0x87, 0x0f, 0x9c, 0x5e, 0x97, 0x46, 0xcb, 0xa9, 0x26, 0x1f, 0xa5, 0xed, 0x3d, 0x0c, -0x4c, 0x46, 0x33, 0xf9, 0x5a, 0x96, 0xb2, 0x5c, 0x97, 0x48, 0xd4, 0xf7, 0x30, 0x74, 0x3a, 0x35, -0x66, 0x0f, 0x53, 0x34, 0xea, 0x2c, 0xc1, 0x80, 0xe9, 0xdc, 0x92, 0xbe, 0x83, 0x49, 0xb3, 0xfe, -0x71, 0xa4, 0x59, 0xff, 0x58, 0xb9, 0x9e, 0x15, 0x3b, 0x61, 0x77, 0x5c, 0x87, 0x2f, 0x79, 0x4c, -0x5f, 0xb9, 0x2f, 0xf2, 0xbd, 0xb3, 0xb3, 0x2a, 0xf0, 0x3c, 0xd8, 0xf1, 0x72, 0x78, 0x2b, 0xb0, -0xee, 0x5d, 0xd1, 0x95, 0x9e, 0x15, 0x50, 0xbe, 0x97, 0xd7, 0xaa, 0x84, 0xc6, 0x90, 0x1c, 0xf8, -0xcd, 0xbe, 0xdf, 0x1c, 0xb4, 0x6e, 0xd7, 0xf1, 0xf7, 0x8a, 0xc4, 0x3c, 0x70, 0x22, 0xdd, 0xca, -0x51, 0xf3, 0x89, 0x03, 0x63, 0x54, 0xfd, 0x04, 0x59, 0xf4, 0xcc, 0xc7, 0x3c, 0xbd, 0x36, 0xda, -0x19, 0xff, 0x62, 0x47, 0xd5, 0x66, 0xa4, 0x32, 0x0e, 0xce, 0xc1, 0x62, 0xcd, 0x68, 0x07, 0x6c, -0x9f, 0x8b, 0x57, 0x19, 0x7b, 0x7b, 0xb4, 0x9b, 0x6c, 0x8c, 0x65, 0x3b, 0xc3, 0x14, 0x23, 0xfb, -0xcf, 0x6e, 0xf5, 0x5c, 0x02, 0x01, 0xa1, 0xd2, 0xc8, 0x25, 0x36, 0xd7, 0x2c, 0xfb, 0x96, 0x94, -0x3d, 0x0e, 0x61, 0x8d, 0xe9, 0x36, 0x4d, 0x77, 0x25, 0x4f, 0xfc, 0x70, 0x97, 0xeb, 0xcd, 0x87, -0x39, 0xac, 0x3f, 0xbf, 0xec, 0x15, 0x70, 0x5f, 0x73, 0x54, 0xdf, 0x7d, 0x13, 0xbd, 0x4e, 0xbc, -0x51, 0x90, 0x8f, 0x4e, 0x84, 0x7a, 0x92, 0xa1, 0x75, 0x69, 0xa1, 0xd9, 0xc9, 0xd0, 0x68, 0x2a, -0x54, 0xb5, 0xd1, 0xce, 0x8e, 0x5b, 0x52, 0x06, 0xfc, 0x4a, 0x95, 0x64, 0xe0, 0x67, 0xee, 0xcc, -0xca, 0xa3, 0x50, 0xbc, 0x31, 0x2a, 0xa7, 0xf7, 0x59, 0xe0, 0x87, 0xa1, 0x0e, 0x63, 0x46, 0xaa, -0xef, 0x99, 0x3e, 0x84, 0x8b, 0x4e, 0x1e, 0x74, 0xdb, 0xcc, 0x0e, 0xc5, 0x92, 0xd8, 0x29, 0x72, -0xbd, 0x08, 0x92, 0x44, 0x70, 0x7e, 0x36, 0x39, 0xa6, 0x8c, 0xfc, 0x84, 0x94, 0x9f, 0xf1, 0xbb, -0x32, 0xda, 0x05, 0xee, 0x8b, 0xc5, 0x9f, 0xcb, 0x4f, 0x69, 0xb9, 0xf7, 0x29, 0x3f, 0xdb, 0x8f, -0x13, 0x47, 0xc4, 0x5b, 0x27, 0xc1, 0xad, 0x55, 0xdd, 0x49, 0x63, 0x6c, 0x8e, 0xe4, 0xa6, 0x19, -0xca, 0xd0, 0xfa, 0x4e, 0xae, 0x0e, 0x35, 0x6b, 0xe7, 0xf3, 0x4a, 0xb4, 0x73, 0x1c, 0x87, 0x44, -0x9a, 0xa9, 0x9d, 0x4b, 0xf9, 0x8c, 0xf0, 0x70, 0x0a, 0x13, 0x94, 0x20, 0x10, 0x68, 0x17, 0xc8, -0x2a, 0xd0, 0x4e, 0xbc, 0xf0, 0x26, 0xd1, 0xf4, 0xf0, 0x81, 0xd2, 0xf7, 0xb5, 0xf3, 0x8f, 0x30, -0x59, 0xf6, 0x15, 0xab, 0xcc, 0xcf, 0x19, 0x3a, 0x9d, 0x80, 0xb4, 0xd4, 0xa2, 0x4b, 0xb2, 0x4e, -0x28, 0x86, 0x60, 0xb7, 0x94, 0xc1, 0x65, 0xdb, 0xfa, 0x99, 0xf3, 0xfb, 0xc1, 0x4e, 0x2e, 0xd9, -0xbe, 0x16, 0x8d, 0xbc, 0x5e, 0x2f, 0x16, 0xcd, 0xa1, 0xf3, 0x79, 0xa7, 0xbe, 0x27, 0x71, 0xb6, -0x80, 0x4f, 0x6e, 0x81, 0xc2, 0xd1, 0xb8, 0x64, 0x38, 0xda, 0x78, 0xef, 0x34, 0x79, 0x0d, 0xf3, -0x87, 0xb4, 0x5d, 0x55, 0x8f, 0x26, 0xfb, 0x2d, 0xf1, 0x26, 0x46, 0xda, 0x53, 0x7a, 0xbf, 0x59, -0x63, 0x23, 0xfd, 0x3d, 0x6a, 0x87, 0x6b, 0x26, 0x3c, 0xa6, 0x18, 0x3a, 0xb4, 0x64, 0x9c, 0x6f, -0xb0, 0xaf, 0x3b, 0xae, 0xf1, 0x75, 0x67, 0xda, 0xd7, 0x16, 0xd2, 0x67, 0x50, 0x67, 0xe3, 0xd7, -0x8f, 0x27, 0xdf, 0xaf, 0x66, 0x5f, 0xce, 0xb9, 0xc6, 0x97, 0x0f, 0xa4, 0x7d, 0x99, 0xc5, 0x34, -0x21, 0xcc, 0xec, 0x7c, 0xee, 0xa0, 0xe2, 0xc0, 0x14, 0x4e, 0x62, 0xc8, 0xea, 0xe8, 0xac, 0xf0, -0x6a, 0xe4, 0x5b, 0x2d, 0x3a, 0x85, 0x79, 0x3b, 0xb0, 0x19, 0x69, 0xd6, 0x14, 0x6e, 0xd3, 0x3b, -0xb2, 0xde, 0x45, 0xa7, 0x0a, 0xc8, 0x23, 0x4d, 0xed, 0xe9, 0x35, 0x87, 0xb7, 0x90, 0x84, 0xc0, -0xe7, 0x77, 0xa6, 0xd0, 0x3e, 0x59, 0xcf, 0xdf, 0x51, 0x40, 0x7b, 0x36, 0xdc, 0xaf, 0x79, 0x90, -0xf6, 0xfb, 0x9c, 0xb4, 0x67, 0x63, 0xeb, 0x06, 0xcd, 0xae, 0xfe, 0xc6, 0x6b, 0xdb, 0x21, 0xa9, -0x36, 0x46, 0x8d, 0xa2, 0x3a, 0x8d, 0x2c, 0x66, 0xfb, 0x1a, 0xe0, 0x9a, 0x00, 0x6c, 0x77, 0x93, -0xc3, 0x64, 0xd3, 0x16, 0x2e, 0x9b, 0x56, 0x73, 0x15, 0xd3, 0xd1, 0xee, 0x0e, 0x81, 0xe4, 0x9f, -0xa9, 0xd3, 0x6b, 0x66, 0x33, 0xfc, 0xb8, 0x2e, 0x05, 0x1a, 0x4e, 0x48, 0x49, 0xb0, 0x1f, 0x1d, -0x64, 0xe3, 0x4d, 0xd2, 0x92, 0xc0, 0x0f, 0x68, 0x3d, 0xd0, 0x46, 0x58, 0x5b, 0x3c, 0x4c, 0x72, -0x04, 0xaf, 0xdd, 0x3b, 0x91, 0x66, 0xc0, 0xf3, 0x95, 0x6c, 0x06, 0xe4, 0xa8, 0x0c, 0xf1, 0x87, -0x59, 0xfd, 0xa7, 0x64, 0x27, 0x77, 0x6a, 0x6c, 0xbd, 0x74, 0xce, 0xc4, 0x31, 0x32, 0x13, 0xac, -0xee, 0x99, 0x60, 0x97, 0x9b, 0x21, 0x67, 0x94, 0xd5, 0x92, 0x9f, 0x9d, 0x75, 0x3d, 0x8b, 0xbc, -0x51, 0x16, 0x6b, 0xbb, 0xd7, 0x90, 0x57, 0xdb, 0x5e, 0xbd, 0x91, 0xe1, 0xec, 0xae, 0xc3, 0x90, -0x66, 0x6d, 0x98, 0xec, 0x49, 0x49, 0xe7, 0xfa, 0xca, 0x1e, 0xa2, 0x7f, 0xc8, 0xe7, 0x81, 0xd0, -0xc4, 0xf0, 0x98, 0x98, 0xe5, 0xdd, 0x67, 0x81, 0xd9, 0x1b, 0x87, 0xf2, 0xf3, 0x60, 0xab, 0x38, -0xae, 0x26, 0xde, 0x7a, 0x65, 0x47, 0xbc, 0xc1, 0x2a, 0xce, 0x3d, 0xfc, 0x9f, 0xa2, 0xaf, 0xd7, -0x2a, 0x8d, 0x53, 0x2c, 0xa4, 0xd3, 0x8f, 0xb3, 0xce, 0xd3, 0x4a, 0x72, 0x78, 0xda, 0xf9, 0x09, -0xd8, 0x42, 0x99, 0xbc, 0xf4, 0x2e, 0x0a, 0x23, 0x9b, 0x35, 0x3a, 0xeb, 0x14, 0x71, 0xef, 0xaa, -0x90, 0x4e, 0x63, 0x1b, 0xe9, 0x1b, 0xe2, 0x5b, 0x1c, 0xf9, 0x61, 0x76, 0x56, 0x09, 0xaa, 0x85, -0xdb, 0x54, 0xbb, 0x40, 0x11, 0x59, 0x2a, 0xe3, 0x44, 0xbf, 0xde, 0x0e, 0x99, 0x3a, 0x4e, 0x4f, -0x0e, 0x3b, 0xc1, 0xfb, 0xaf, 0xe8, 0x41, 0x2b, 0x59, 0x09, 0x9f, 0xc1, 0xdd, 0x69, 0xb7, 0x6a, -0x9f, 0x4e, 0x1c, 0xc9, 0x7f, 0xc1, 0x96, 0x8e, 0x82, 0x72, 0x3a, 0x5d, 0xde, 0xb4, 0x0a, 0xd8, -0xdb, 0x77, 0x91, 0x17, 0x5e, 0xeb, 0x65, 0x76, 0x7a, 0xb4, 0x1e, 0x8f, 0x18, 0x99, 0xec, 0xca, -0x1e, 0x5d, 0x8a, 0xfb, 0x2b, 0x87, 0x73, 0x39, 0x6c, 0x65, 0xf8, 0xab, 0x7b, 0x46, 0xda, 0xc9, -0x52, 0x5c, 0x0d, 0x2a, 0x86, 0x6f, 0xfd, 0xda, 0x6b, 0xc1, 0xf5, 0xd5, 0x11, 0x5a, 0xaa, 0x69, -0x89, 0xf6, 0x18, 0x79, 0x9c, 0xce, 0x9f, 0xa8, 0x4d, 0xd2, 0x4a, 0x87, 0x3d, 0x4b, 0x72, 0x82, -0xa8, 0x9d, 0xd3, 0x23, 0xad, 0x5b, 0xe2, 0x36, 0xc7, 0x4f, 0xa6, 0xec, 0xe1, 0xae, 0x54, 0x29, -0xe6, 0x44, 0x7c, 0xc9, 0xc0, 0xa9, 0x56, 0x78, 0x75, 0x94, 0xa4, 0x6e, 0x84, 0x15, 0x46, 0xf6, -0x63, 0xc3, 0x38, 0x96, 0x4c, 0xcc, 0x42, 0x8b, 0x9d, 0x51, 0xb2, 0xd3, 0xac, 0xa3, 0x6c, 0xce, -0x63, 0x9f, 0x92, 0x96, 0x2f, 0xae, 0x28, 0xa2, 0x97, 0x53, 0x20, 0xea, 0x21, 0x42, 0xdc, 0xdf, -0x33, 0x62, 0x67, 0xfd, 0x43, 0x28, 0x03, 0x33, 0x49, 0x5b, 0x3e, 0x06, 0xf2, 0x4c, 0xed, 0xa2, -0xa7, 0x59, 0xbb, 0xc4, 0xcf, 0xc1, 0x48, 0x9f, 0x2e, 0x81, 0xc5, 0x91, 0x86, 0xc1, 0xd1, 0x1a, -0x8b, 0x0f, 0x74, 0xab, 0x4d, 0x24, 0xe3, 0x64, 0x18, 0x1c, 0xdd, 0xd1, 0xc9, 0x69, 0x18, 0x1c, -0x06, 0x1d, 0x27, 0xe3, 0x10, 0x5b, 0x87, 0x17, 0xe1, 0xef, 0xcc, 0xe8, 0xe4, 0x34, 0xd4, 0x8d, -0xab, 0xdf, 0x9b, 0xd2, 0xde, 0xc7, 0xc6, 0xbe, 0x17, 0x2d, 0xb5, 0xf1, 0xc4, 0x6a, 0xca, 0xcf, -0xe6, 0xb0, 0x26, 0x9e, 0xd4, 0x39, 0x56, 0xf2, 0x74, 0x8e, 0x9d, 0x61, 0x8d, 0x3b, 0x3e, 0xf6, -0x0c, 0x8b, 0xcf, 0x57, 0x28, 0xe6, 0xf3, 0x35, 0x5f, 0xc0, 0x1d, 0x7e, 0xc0, 0x63, 0x53, 0x3c, -0x2e, 0x5c, 0x33, 0x9d, 0xa4, 0xff, 0x8f, 0xfc, 0xbc, 0x7b, 0x02, 0x3b, 0x53, 0xbe, 0x80, 0x23, -0xd5, 0xee, 0x8c, 0xe8, 0x27, 0xcc, 0x27, 0xe5, 0x07, 0x71, 0x75, 0xb1, 0x97, 0x9d, 0x45, 0x1e, -0x29, 0x8b, 0xeb, 0xef, 0xa9, 0x07, 0x13, 0x72, 0x3d, 0x1d, 0xa3, 0xc8, 0x96, 0x8e, 0xeb, 0x15, -0xf3, 0x5c, 0x85, 0xe4, 0x42, 0x2b, 0xd2, 0x5d, 0x84, 0x3e, 0x70, 0x15, 0x56, 0x2c, 0x9c, 0x7e, -0x00, 0x79, 0x7e, 0x3a, 0x27, 0x72, 0xb2, 0xf1, 0xa5, 0x2d, 0x31, 0x54, 0xef, 0x17, 0xfd, 0xf6, -0xfd, 0xfc, 0x04, 0x1d, 0x6b, 0xa4, 0x63, 0x85, 0x4e, 0x0b, 0x80, 0x11, 0xfb, 0x56, 0x6c, 0x8d, -0x72, 0x9a, 0x9e, 0x2e, 0x81, 0xc3, 0xdd, 0xa4, 0x39, 0x11, 0xce, 0xce, 0x10, 0x8a, 0x13, 0x36, -0xcd, 0x1c, 0xff, 0xa3, 0x8c, 0x38, 0x81, 0xeb, 0x5a, 0x35, 0xb3, 0x56, 0x43, 0xfa, 0x45, 0xfc, -0x4c, 0xa8, 0x23, 0xe3, 0x0a, 0x59, 0xd7, 0x5f, 0x83, 0xaf, 0xc9, 0x49, 0xe3, 0x6b, 0xec, 0x7a, -0x4f, 0x58, 0x53, 0xf8, 0xd0, 0xbe, 0xd9, 0xc8, 0x83, 0xda, 0xe4, 0x1a, 0x9a, 0x7f, 0x3f, 0xdc, -0xa3, 0xa3, 0xc2, 0xe4, 0xca, 0xa5, 0xce, 0x2c, 0xb2, 0xae, 0x88, 0x9a, 0x48, 0x23, 0x4c, 0x7b, -0x92, 0xe9, 0x57, 0x6d, 0xc1, 0x79, 0xdf, 0xa3, 0x9e, 0x0e, 0x3c, 0x8d, 0x7b, 0xb8, 0xcd, 0x49, -0xeb, 0xc8, 0x61, 0x76, 0x86, 0x18, 0x70, 0xd9, 0x02, 0xc8, 0xbb, 0x04, 0x36, 0xd1, 0x0e, 0x0f, -0xc7, 0x69, 0x62, 0x8c, 0x62, 0xde, 0x3f, 0x7c, 0x85, 0xcf, 0x35, 0x35, 0x8b, 0x46, 0x29, 0xed, -0x57, 0xe5, 0x38, 0x93, 0xa5, 0xed, 0x77, 0x02, 0xce, 0x77, 0x8e, 0x5a, 0x9d, 0x81, 0xab, 0x5c, -0xae, 0x76, 0x86, 0xc6, 0xed, 0x28, 0x8b, 0xe9, 0x6e, 0xbe, 0xc6, 0x71, 0x69, 0x89, 0xd6, 0xa9, -0xdb, 0x05, 0x23, 0xdf, 0xec, 0xb4, 0xc9, 0xcb, 0x29, 0xa7, 0xc0, 0x0f, 0x2b, 0x86, 0xb4, 0x57, -0xaa, 0xb6, 0x78, 0x90, 0x3f, 0x22, 0x6d, 0x53, 0x7b, 0x1e, 0xd8, 0x0d, 0xa0, 0xfd, 0xf5, 0x53, -0x7e, 0xa0, 0xd9, 0x61, 0x0f, 0x0e, 0xa8, 0x41, 0x92, 0x96, 0x08, 0xf6, 0x68, 0x31, 0x49, 0xc9, -0x5a, 0x66, 0x85, 0x37, 0xa9, 0x05, 0x5c, 0x16, 0xcd, 0x4a, 0xf7, 0x1d, 0x39, 0x5e, 0xbd, 0x91, -0xbc, 0x05, 0x4c, 0x0d, 0x63, 0xc9, 0x22, 0xd3, 0xf1, 0xef, 0x4d, 0x9d, 0x5a, 0x5c, 0x98, 0x14, -0x70, 0x0b, 0x59, 0x84, 0xf6, 0x28, 0xd8, 0x57, 0x0a, 0x8a, 0x25, 0x50, 0xa6, 0x98, 0xe4, 0x10, -0xee, 0xfe, 0x0d, 0x98, 0xdf, 0x5d, 0xf9, 0xc5, 0xd4, 0xb7, 0xec, 0x2c, 0xdf, 0x46, 0x92, 0xc3, -0xe1, 0x33, 0xd3, 0x71, 0xa7, 0x8e, 0x74, 0x72, 0xc8, 0xee, 0x16, 0xec, 0x24, 0x8d, 0x26, 0x29, -0x3e, 0xd2, 0x9c, 0x61, 0xda, 0x25, 0xb2, 0x31, 0x51, 0x88, 0xfd, 0x45, 0xf2, 0x5f, 0xb2, 0x4e, -0xc6, 0x11, 0x21, 0x96, 0x90, 0x76, 0x21, 0x96, 0xca, 0x14, 0x73, 0x1c, 0x89, 0x2b, 0x26, 0xf2, -0x19, 0x27, 0x4c, 0xc2, 0xdd, 0x3d, 0xc9, 0x21, 0x9f, 0xa1, 0x3d, 0xab, 0x6a, 0x57, 0x16, 0x4b, -0xdc, 0xee, 0xf7, 0x71, 0xfa, 0x1d, 0xad, 0x62, 0xf6, 0xbc, 0x66, 0xea, 0x07, 0x92, 0xfb, 0xe0, -0xb7, 0x74, 0xba, 0x65, 0x6e, 0xb3, 0x1e, 0x5d, 0xc7, 0x62, 0x91, 0x56, 0x82, 0x1b, 0xdc, 0x60, -0x10, 0x48, 0x9a, 0xb8, 0x61, 0xde, 0x59, 0x61, 0x92, 0x34, 0x31, 0x91, 0xa2, 0x0b, 0xd4, 0x29, -0xe6, 0x3c, 0x1c, 0xc5, 0x98, 0x23, 0x9d, 0x7f, 0xa8, 0x31, 0x46, 0xd1, 0x9e, 0x24, 0x6c, 0xf9, -0x95, 0xa4, 0x35, 0x53, 0x29, 0x41, 0x2a, 0x25, 0x37, 0x48, 0xba, 0x44, 0x34, 0xbc, 0x06, 0xd7, -0x09, 0x8a, 0xd9, 0x49, 0x31, 0x27, 0x13, 0x5e, 0x39, 0x08, 0x62, 0xd8, 0x2d, 0x4c, 0x52, 0xad, -0xde, 0x89, 0x21, 0xe4, 0x4e, 0xc5, 0xb9, 0x64, 0x31, 0xcd, 0xf3, 0x0d, 0x6f, 0x8a, 0x32, 0xfc, -0x96, 0x26, 0x9b, 0x62, 0x27, 0xed, 0xaf, 0x2f, 0xef, 0x0f, 0xad, 0x0e, 0x06, 0x15, 0x73, 0x20, -0x48, 0x96, 0xfd, 0x2b, 0x85, 0xab, 0x6a, 0x50, 0x3d, 0xaa, 0x06, 0x5b, 0x48, 0xeb, 0x52, 0xb2, -0xe8, 0x6d, 0xe1, 0xe0, 0xa1, 0x5c, 0x43, 0x62, 0x64, 0x0b, 0xa6, 0x0d, 0xb0, 0x8e, 0xa5, 0x3e, -0x99, 0x10, 0xca, 0xd8, 0x0a, 0xf5, 0x36, 0x95, 0x8a, 0xad, 0x03, 0x67, 0xa2, 0x66, 0xd2, 0x69, -0x09, 0x07, 0x99, 0x7d, 0x23, 0x6f, 0xf3, 0xd6, 0xb4, 0x36, 0x37, 0xf3, 0xfa, 0x90, 0xf4, 0xc1, -0xe0, 0xd6, 0xae, 0x08, 0x84, 0x5c, 0x69, 0x9c, 0x1e, 0xa2, 0xbe, 0x20, 0x59, 0x2a, 0x96, 0x05, -0x46, 0xc4, 0x40, 0x5f, 0xc2, 0x1e, 0xfa, 0x87, 0x7b, 0x00, 0x7b, 0x17, 0xec, 0xd5, 0xd4, 0x3a, -0x59, 0x1c, 0x8b, 0x3c, 0x6a, 0xa1, 0xd1, 0x41, 0xad, 0x35, 0x42, 0xab, 0x1a, 0xd3, 0x34, 0xdc, -0x6e, 0xa0, 0x15, 0x43, 0xb1, 0x12, 0x9f, 0x27, 0xf8, 0x14, 0x63, 0xc7, 0xa7, 0xca, 0x89, 0x9e, -0x99, 0xb0, 0x6c, 0x45, 0xfa, 0x58, 0xfc, 0x98, 0xc6, 0x22, 0xce, 0x9d, 0xb2, 0xa8, 0x09, 0xcb, -0xe9, 0x57, 0x8c, 0x18, 0xf6, 0x0b, 0x0a, 0x4b, 0x68, 0x90, 0x12, 0x42, 0x63, 0x02, 0xe7, 0xd5, -0x9b, 0x38, 0x27, 0xd1, 0x67, 0xcf, 0x0b, 0x8d, 0x34, 0x8a, 0x13, 0xb6, 0x1c, 0xfc, 0x3d, 0xdb, -0x13, 0x5d, 0xf5, 0x16, 0x39, 0xc1, 0x15, 0x09, 0x84, 0x54, 0x71, 0xd2, 0xc3, 0x07, 0x98, 0x3d, -0x41, 0x57, 0xe9, 0x9f, 0x72, 0x70, 0x8d, 0xaa, 0x89, 0x93, 0xb4, 0xf6, 0x2b, 0xbd, 0xe1, 0x17, -0x7a, 0x8d, 0xea, 0x85, 0x24, 0xc6, 0x34, 0xd2, 0x53, 0x67, 0x40, 0x2e, 0x75, 0xd9, 0x5a, 0x0d, -0x1c, 0x07, 0xc3, 0x0d, 0xd1, 0xbb, 0xa4, 0x71, 0x84, 0x39, 0xe1, 0x81, 0x68, 0x81, 0x04, 0xf2, -0x04, 0x2e, 0x29, 0xc5, 0x1e, 0x90, 0xa5, 0x71, 0x72, 0x66, 0x72, 0xb7, 0x9c, 0x2d, 0x4d, 0xa8, -0xee, 0x76, 0x5a, 0xf8, 0x0e, 0x3b, 0xec, 0x5f, 0xf8, 0xab, 0x50, 0x4f, 0xb0, 0x14, 0x69, 0x75, -0x29, 0xdb, 0x2f, 0x77, 0xe6, 0x43, 0xab, 0x81, 0xc7, 0x66, 0x36, 0x4e, 0x36, 0x49, 0xc7, 0xee, -0x52, 0x8c, 0xab, 0xa2, 0x81, 0x52, 0xa4, 0xd0, 0x6c, 0xd6, 0x33, 0x29, 0xea, 0x70, 0xe2, 0xcc, -0x27, 0xdc, 0xa5, 0x3a, 0x63, 0x99, 0xfd, 0x3d, 0x4d, 0xd9, 0x74, 0x26, 0xfe, 0xde, 0x26, 0x29, -0x85, 0xbe, 0xd4, 0xd7, 0xa6, 0x29, 0x6e, 0x1d, 0x9f, 0x31, 0xa0, 0x88, 0x34, 0x23, 0xdc, 0xa0, -0x73, 0x5e, 0xfc, 0xec, 0x69, 0x7d, 0x21, 0xd0, 0x79, 0xba, 0xf6, 0x24, 0xb5, 0x07, 0xed, 0x02, -0xf8, 0x59, 0x10, 0xe3, 0xe2, 0x1b, 0xf5, 0xb6, 0x33, 0x88, 0x25, 0x24, 0xd3, 0x3c, 0xb9, 0x25, -0x5d, 0xd7, 0x89, 0x76, 0x07, 0xfa, 0x79, 0xe3, 0x6d, 0x66, 0xf2, 0xbc, 0x78, 0x4a, 0xd4, 0xb1, -0x25, 0x46, 0x53, 0x9d, 0xab, 0x39, 0xef, 0x84, 0x8e, 0x12, 0xf2, 0xa3, 0x66, 0xe4, 0xb4, 0xac, -0xb8, 0x33, 0xb7, 0xe7, 0xe3, 0xee, 0x79, 0x2c, 0xc7, 0xe5, 0x22, 0x8e, 0xeb, 0x52, 0xf8, 0x7e, -0xdc, 0xe3, 0x33, 0x7e, 0x0b, 0x69, 0xc8, 0x41, 0xb2, 0x6f, 0xc9, 0x78, 0x3f, 0x6a, 0x63, 0xf7, -0x0f, 0xbe, 0xcc, 0xb8, 0x53, 0xc5, 0xe8, 0xeb, 0xd4, 0x46, 0x18, 0x07, 0x76, 0x89, 0xd1, 0x4f, -0x33, 0xb7, 0x84, 0x5c, 0xfc, 0x18, 0xe7, 0xc2, 0xa2, 0x4b, 0x45, 0x66, 0xf7, 0x66, 0xd8, 0xc4, -0x64, 0x7f, 0xc8, 0x6b, 0x45, 0x3d, 0x69, 0x7b, 0x5b, 0x20, 0x8c, 0x48, 0x2f, 0xe0, 0x6e, 0xc9, -0x40, 0x68, 0x33, 0x7c, 0x1d, 0x60, 0xd2, 0x0e, 0x17, 0x7e, 0x53, 0xaf, 0x98, 0x88, 0x6e, 0xaf, -0xd4, 0xa6, 0x07, 0x70, 0xb7, 0x30, 0xe1, 0xf4, 0x03, 0xa4, 0xd3, 0x14, 0x35, 0x31, 0x4c, 0x3f, -0x23, 0xfe, 0x45, 0x7e, 0x9e, 0xf1, 0xcd, 0x9b, 0xb0, 0x74, 0x45, 0x62, 0x90, 0xda, 0xe9, 0xbd, -0x6f, 0xa5, 0xce, 0x2e, 0xd5, 0x6c, 0xda, 0x5d, 0x23, 0x15, 0x18, 0x22, 0x24, 0x1c, 0x4a, 0x89, -0xa4, 0xc4, 0x06, 0xab, 0x5e, 0x0f, 0x89, 0xd7, 0x23, 0x6a, 0x66, 0xf7, 0x73, 0x6a, 0xae, 0xec, -0x81, 0xc7, 0x45, 0x0f, 0x9c, 0x54, 0x0d, 0xa2, 0x81, 0x78, 0x1a, 0xc5, 0x81, 0x21, 0x8f, 0x31, -0xed, 0x30, 0xde, 0x0a, 0xe7, 0x08, 0x6b, 0x47, 0xcf, 0xe7, 0xb1, 0xb4, 0x7c, 0x2c, 0xcc, 0x8b, -0x4e, 0xa6, 0xd7, 0xa0, 0x4c, 0xd1, 0xdf, 0xfe, 0x20, 0xed, 0xad, 0xa8, 0xbf, 0xc5, 0x76, 0xf0, -0x7a, 0xe0, 0x09, 0x3e, 0x03, 0x9f, 0x1f, 0x60, 0xeb, 0x4b, 0x0e, 0xd1, 0x30, 0x1d, 0x35, 0x34, -0xc5, 0xa5, 0xce, 0xf1, 0x78, 0x90, 0x4b, 0x35, 0xe9, 0x5c, 0xaa, 0x45, 0x2c, 0x3f, 0xfc, 0x12, -0x71, 0xa9, 0x29, 0x1e, 0xb5, 0x13, 0xf4, 0x34, 0x4d, 0x5e, 0x18, 0x9d, 0x1e, 0xf2, 0xa6, 0x8b, -0x3c, 0x10, 0x59, 0xdb, 0x06, 0x7c, 0x4f, 0xc1, 0xb8, 0x52, 0x2b, 0x93, 0x6d, 0xbe, 0xed, 0x24, -0x8f, 0x1c, 0x3e, 0xc6, 0x97, 0x66, 0x26, 0xf9, 0xd2, 0x51, 0x5f, 0x73, 0xde, 0x54, 0xe5, 0x2d, -0xf4, 0x81, 0xba, 0x97, 0xb4, 0x31, 0xc9, 0xbe, 0x09, 0xe9, 0x14, 0xc0, 0xd6, 0x4e, 0x60, 0xcf, -0xc4, 0x95, 0xf6, 0xb1, 0xfc, 0x0d, 0x5c, 0x83, 0xef, 0x9f, 0x07, 0x5c, 0x29, 0xbe, 0x34, 0x9b, -0xca, 0x9e, 0xf0, 0x0b, 0x70, 0x57, 0xd8, 0x49, 0x9c, 0x69, 0x80, 0x2c, 0x8a, 0x91, 0x33, 0x9d, -0xcb, 0xf8, 0x52, 0x92, 0xd7, 0x10, 0xca, 0x44, 0x3b, 0xb6, 0xf1, 0x25, 0xc6, 0x97, 0xf2, 0xf2, -0x95, 0xb3, 0xf2, 0x11, 0xba, 0xd9, 0x5a, 0xe4, 0x4b, 0x4d, 0x63, 0xf8, 0xd2, 0x60, 0x1a, 0x5f, -0x6a, 0x67, 0xf1, 0xb3, 0x59, 0x7c, 0x63, 0x7b, 0x41, 0x79, 0x46, 0x92, 0x3f, 0xed, 0x51, 0xa7, -0xc8, 0x13, 0x4e, 0xaf, 0xe3, 0xbf, 0x99, 0x2e, 0x4f, 0x2e, 0xed, 0xd4, 0x93, 0xe3, 0xc4, 0x46, -0xdc, 0x34, 0x72, 0xaf, 0x67, 0x90, 0x42, 0x22, 0x85, 0x59, 0xa9, 0x89, 0x99, 0xa3, 0x74, 0xb0, -0x0c, 0x2e, 0xc1, 0x6d, 0x60, 0xa8, 0x31, 0x21, 0x42, 0x3b, 0xd1, 0xb5, 0x31, 0x7d, 0x9c, 0x87, -0xa5, 0xfd, 0x00, 0xe3, 0x7d, 0xf7, 0x26, 0x39, 0x58, 0xc3, 0xe9, 0x5e, 0xe4, 0xf4, 0x6d, 0x18, -0xd6, 0xeb, 0xe2, 0xd8, 0xcb, 0xd9, 0x54, 0x87, 0x8e, 0x28, 0x47, 0xd2, 0x18, 0x8e, 0x57, 0x33, -0x44, 0xdd, 0xc4, 0x19, 0xef, 0x1c, 0x03, 0xf1, 0x6f, 0x4c, 0x56, 0xb6, 0x3e, 0x91, 0x3e, 0xd2, -0xac, 0x0e, 0xa9, 0xf4, 0xd5, 0x5f, 0xbd, 0xfa, 0xb2, 0x3c, 0x03, 0x57, 0x63, 0x07, 0x43, 0x55, -0x31, 0xc6, 0xd2, 0xec, 0x1d, 0xb8, 0xc6, 0x60, 0x82, 0x7f, 0xba, 0x7a, 0xbe, 0xe8, 0xd6, 0xa7, -0x96, 0x56, 0x90, 0x4d, 0xec, 0x2c, 0x32, 0x5f, 0x2c, 0x9f, 0x4a, 0x33, 0xc6, 0x84, 0x33, 0x66, -0xdb, 0x55, 0x33, 0xa6, 0x8c, 0xef, 0xeb, 0xb1, 0xe4, 0xc8, 0xc7, 0x25, 0xf0, 0x32, 0xfd, 0x9d, -0xd7, 0x94, 0xe3, 0x3e, 0x4e, 0x34, 0xe3, 0x2a, 0x7d, 0xee, 0xcf, 0x5c, 0x5b, 0x9f, 0x7b, 0xac, -0x9e, 0x57, 0x52, 0x4f, 0x7b, 0xdc, 0x58, 0xfe, 0x98, 0x4b, 0x30, 0xf4, 0x35, 0x23, 0x23, 0xb1, -0x2e, 0xec, 0x5a, 0xcb, 0x3d, 0xd6, 0x72, 0x74, 0x7a, 0x1f, 0x5f, 0x33, 0xae, 0xf9, 0xb6, 0xea, -0xeb, 0x62, 0x89, 0xdd, 0x1e, 0xe9, 0x62, 0x7a, 0x25, 0x17, 0xa5, 0x90, 0x92, 0xc5, 0x9e, 0x2c, -0x4c, 0x4f, 0xc5, 0x24, 0x56, 0x28, 0x84, 0xc2, 0x33, 0xde, 0x7e, 0xb3, 0x7a, 0x46, 0x34, 0xa7, -0xf0, 0xc9, 0x08, 0xf7, 0x1d, 0x69, 0xa1, 0x03, 0x6b, 0xb7, 0x9d, 0xaf, 0x3e, 0xc8, 0xb5, 0xf6, -0x33, 0x59, 0x6d, 0x49, 0xbe, 0xc1, 0x3d, 0xa6, 0xf6, 0x1e, 0xac, 0xbd, 0x64, 0xc1, 0x36, 0xa3, -0xf3, 0x9f, 0x6a, 0xd6, 0x6a, 0x9e, 0x0a, 0x2c, 0x3b, 0x5b, 0x53, 0x95, 0xf0, 0xfd, 0x38, 0x2a, -0x32, 0x69, 0x07, 0x3d, 0x77, 0x48, 0x7b, 0x3c, 0x29, 0x25, 0xaa, 0xf4, 0x66, 0xb2, 0xdd, 0x2f, -0xf9, 0x8b, 0x49, 0x84, 0x91, 0x1c, 0xd2, 0xea, 0x35, 0x29, 0x16, 0x7e, 0xc7, 0xf8, 0xb1, 0xe4, -0xbb, 0x5c, 0x3d, 0xfe, 0xf6, 0x54, 0xfc, 0x2f, 0xbf, 0x14, 0x5a, 0xab, 0x98, 0x3a, 0x49, 0x22, -0x56, 0x2e, 0x59, 0x38, 0x9f, 0xed, 0x33, 0x71, 0x09, 0x2c, 0x54, 0x27, 0x64, 0x90, 0x84, 0x6d, -0x34, 0xba, 0xbc, 0x12, 0xf5, 0x16, 0xad, 0xcc, 0xdb, 0xd3, 0xf0, 0xf8, 0x0c, 0x29, 0x99, 0x92, -0x6a, 0x6d, 0xf5, 0x24, 0x75, 0x13, 0x3c, 0xa4, 0xd1, 0x98, 0x92, 0x59, 0xa5, 0xf6, 0x32, 0x10, -0xb9, 0x5a, 0xa7, 0x3e, 0x91, 0xde, 0xb5, 0x90, 0x83, 0xae, 0xdf, 0xb2, 0x23, 0x7b, 0x89, 0xe7, -0xf5, 0x96, 0xc0, 0x42, 0x6f, 0x00, 0xee, 0xf2, 0x96, 0xc2, 0xac, 0xd1, 0xa7, 0x84, 0xc8, 0xe5, -0x13, 0xde, 0xe5, 0x94, 0x98, 0x38, 0xda, 0x02, 0x1c, 0xc3, 0x67, 0x91, 0x14, 0xc4, 0x7c, 0x06, -0xc6, 0x41, 0x6e, 0xcc, 0x76, 0xd5, 0xdb, 0x48, 0xf8, 0x79, 0x8c, 0x01, 0xe6, 0x39, 0x74, 0xfa, -0x64, 0x2e, 0x12, 0x5b, 0x60, 0x56, 0xb8, 0x2f, 0x8a, 0x7c, 0x6e, 0xa0, 0x54, 0x51, 0x98, 0x44, -0xf2, 0xa0, 0x13, 0x02, 0x5e, 0x58, 0x12, 0x5b, 0x32, 0xb8, 0xd1, 0xeb, 0x17, 0xea, 0x25, 0x86, -0x11, 0xce, 0xa8, 0x81, 0x9d, 0xf0, 0x3f, 0x0f, 0x1f, 0xc0, 0xb6, 0xb2, 0xef, 0xd8, 0x06, 0x8e, -0x68, 0x96, 0x94, 0x21, 0x7b, 0x85, 0x7a, 0x26, 0x79, 0x67, 0xa8, 0xe6, 0x23, 0xfd, 0x12, 0xfe, -0x16, 0x05, 0xd2, 0x64, 0x0b, 0xdb, 0xd5, 0x4b, 0x0f, 0xff, 0xd2, 0x1b, 0x12, 0x96, 0x06, 0x9e, -0x17, 0x9a, 0xda, 0x71, 0x67, 0x83, 0x6f, 0x30, 0x37, 0x86, 0xc2, 0x77, 0x8b, 0x0a, 0x06, 0x86, -0x42, 0x29, 0x45, 0x5e, 0x3d, 0x0b, 0x66, 0xc5, 0xc4, 0xce, 0xa0, 0xcd, 0x62, 0x05, 0x69, 0xfa, -0xed, 0x88, 0xb7, 0x80, 0x41, 0x76, 0xdc, 0xcc, 0x7c, 0x96, 0xbe, 0xcd, 0x7c, 0x96, 0x9e, 0xb4, -0xda, 0xe1, 0x0e, 0xfc, 0xc6, 0x96, 0x88, 0x87, 0x5f, 0x74, 0xe3, 0x3e, 0xcb, 0xec, 0x0a, 0xc9, -0xf4, 0x45, 0x77, 0x8b, 0x8d, 0xf9, 0xbd, 0x14, 0xa3, 0x67, 0xf0, 0xef, 0xf8, 0xe8, 0x29, 0xbb, -0x83, 0x9d, 0x61, 0x9b, 0xc2, 0x80, 0x1c, 0xfa, 0x71, 0x5e, 0x2f, 0x99, 0x9d, 0x62, 0x69, 0xfb, -0xdd, 0x40, 0xb9, 0x10, 0x1a, 0x6d, 0x13, 0x79, 0xe9, 0xb1, 0xa8, 0x7a, 0xee, 0x48, 0x5b, 0xbd, -0xb0, 0xc8, 0x9b, 0x59, 0x31, 0x34, 0xa2, 0x26, 0x10, 0x78, 0x71, 0xfd, 0x99, 0xc0, 0xc6, 0xd8, -0x33, 0x24, 0x83, 0x48, 0x48, 0xc5, 0xf8, 0xc9, 0x1e, 0x9d, 0x87, 0xab, 0x76, 0xac, 0x53, 0x55, -0xbe, 0x0b, 0xb6, 0x28, 0x60, 0x3a, 0xd7, 0x01, 0x4a, 0x5b, 0x4c, 0xeb, 0x84, 0x0e, 0x08, 0x3c, -0x0f, 0x05, 0x98, 0xce, 0x94, 0x79, 0x43, 0x23, 0x66, 0xa6, 0x39, 0xb6, 0x18, 0xe3, 0x15, 0x04, -0x7c, 0x21, 0x90, 0x42, 0x0f, 0x1f, 0x08, 0x08, 0x4a, 0x91, 0xfd, 0x66, 0x56, 0xde, 0xfc, 0x3a, -0x3b, 0x2b, 0xb1, 0x93, 0xca, 0xab, 0xc2, 0xb8, 0x1d, 0x0a, 0xfd, 0xc6, 0xba, 0x8e, 0xdb, 0x16, -0x2e, 0x89, 0xda, 0x14, 0x18, 0xf7, 0x78, 0xb8, 0x04, 0xd7, 0x8c, 0xfd, 0xf8, 0xf4, 0x68, 0xab, -0x10, 0xe9, 0xdd, 0xdd, 0xbb, 0x62, 0x3f, 0xbe, 0x81, 0x71, 0xbd, 0xe1, 0xd5, 0x18, 0xfe, 0x0c, -0x86, 0xaf, 0xda, 0xbb, 0xba, 0x2e, 0x68, 0x5a, 0x4b, 0x72, 0x2c, 0xd1, 0x94, 0x8e, 0x9a, 0x47, -0x58, 0x16, 0x26, 0x15, 0x7b, 0xbc, 0x00, 0xb9, 0x1e, 0xcc, 0x7f, 0x14, 0xe2, 0xc8, 0x3a, 0xfd, -0xc4, 0xcb, 0x0b, 0xb3, 0x48, 0x6b, 0xd0, 0x3b, 0x17, 0x0a, 0xc2, 0xa5, 0xb8, 0x76, 0x18, 0x58, -0xdd, 0xb8, 0x1e, 0x5c, 0x81, 0x22, 0xe9, 0xc8, 0xef, 0x05, 0xc4, 0x4f, 0xef, 0xa0, 0x36, 0xb3, -0x8b, 0x91, 0x34, 0x9d, 0x3a, 0xb3, 0x62, 0x4b, 0xb4, 0x80, 0x0a, 0x99, 0xc3, 0x31, 0x8d, 0x3c, -0x2c, 0xad, 0x12, 0x5e, 0xec, 0x6a, 0x30, 0xc4, 0xc8, 0xb3, 0x45, 0xc1, 0xa4, 0x78, 0x08, 0x22, -0xab, 0x91, 0x7f, 0x1e, 0xa2, 0xde, 0xc7, 0x99, 0x93, 0x13, 0x35, 0x61, 0x4b, 0x83, 0x62, 0x4a, -0xb4, 0x77, 0xb2, 0x5d, 0xa5, 0x6b, 0xb4, 0xb5, 0x2d, 0xad, 0xad, 0x61, 0xe4, 0xf1, 0x54, 0x6b, -0x67, 0xf6, 0x51, 0x1b, 0xe7, 0x93, 0xee, 0xd8, 0xfd, 0xe2, 0xb8, 0xf4, 0x5a, 0x7b, 0x09, 0xdb, -0x1e, 0x32, 0xdb, 0x31, 0xee, 0xc2, 0x98, 0x20, 0x41, 0xd2, 0x37, 0x55, 0x17, 0xf9, 0xa6, 0xc2, -0x39, 0x15, 0x76, 0x09, 0x1c, 0x95, 0x25, 0x7d, 0x6e, 0xe0, 0xa8, 0x30, 0x0e, 0xae, 0x1e, 0x8c, -0x8f, 0x09, 0x25, 0x2b, 0xef, 0x45, 0xe1, 0x35, 0x98, 0x5e, 0x3e, 0xcd, 0x98, 0x4c, 0x97, 0xcb, -0x0b, 0x0b, 0x5d, 0x65, 0x4e, 0xd2, 0xf3, 0x7e, 0x46, 0x06, 0x77, 0x50, 0x99, 0xcd, 0x52, 0x37, -0x46, 0xd6, 0x2b, 0xf9, 0x44, 0x47, 0x55, 0x17, 0xb6, 0xce, 0x4c, 0x10, 0xf4, 0x33, 0xf4, 0x48, -0x16, 0x98, 0x04, 0xed, 0x17, 0x56, 0x01, 0x6e, 0xae, 0xb3, 0xe9, 0x56, 0xb5, 0xa5, 0x76, 0x9f, -0xf9, 0x17, 0x5d, 0x8e, 0xc8, 0x43, 0xf6, 0x9b, 0xd4, 0x7d, 0xee, 0xc0, 0xcd, 0x9d, 0x20, 0x22, -0x25, 0x6f, 0x81, 0x39, 0x30, 0xbb, 0x93, 0x46, 0x4e, 0xa0, 0x03, 0xbe, 0x7d, 0xc8, 0x5b, 0x06, -0xe5, 0xde, 0x4a, 0xc8, 0x77, 0xcd, 0x23, 0x7f, 0x16, 0x86, 0x7a, 0x67, 0x79, 0xe4, 0x41, 0xac, -0x51, 0xb9, 0xd9, 0x07, 0xa6, 0xa5, 0xe4, 0xbb, 0x20, 0xc4, 0x7d, 0x4a, 0x84, 0x7f, 0x6c, 0xa6, -0x5f, 0xb3, 0x91, 0x92, 0xcc, 0x96, 0xc7, 0x21, 0x7f, 0x5e, 0x49, 0x08, 0x56, 0x24, 0xf5, 0xc1, -0xd1, 0xb1, 0x83, 0x46, 0x7a, 0x24, 0x4e, 0x63, 0x1d, 0x7b, 0x47, 0xa5, 0x51, 0x8e, 0x2d, 0x77, -0xd7, 0x9e, 0xe7, 0x21, 0x5c, 0x0f, 0x99, 0x8d, 0x62, 0xe6, 0xe0, 0x9a, 0x44, 0x0a, 0x99, 0x34, -0x42, 0xcb, 0xa9, 0x67, 0x6b, 0xa1, 0x75, 0x1c, 0x49, 0x8e, 0xda, 0x84, 0x9d, 0x71, 0x8c, 0x15, -0x1a, 0x9d, 0x72, 0xbb, 0xb0, 0x2b, 0xae, 0x32, 0x49, 0x41, 0xa4, 0x8b, 0xc6, 0x83, 0x3a, 0x8b, -0x8d, 0x02, 0x1f, 0xc9, 0x40, 0x55, 0xf7, 0xe8, 0xb8, 0x94, 0x82, 0xea, 0x4a, 0x2f, 0x83, 0x71, -0x88, 0x97, 0xc1, 0x78, 0x41, 0x82, 0x9a, 0x2e, 0x4c, 0xab, 0xab, 0x01, 0x32, 0x5e, 0x77, 0x96, -0x63, 0xc8, 0x69, 0x67, 0xb9, 0x27, 0x93, 0x49, 0x52, 0x21, 0xe3, 0x68, 0x9b, 0x46, 0xfa, 0x74, -0x6e, 0x2f, 0x94, 0xbb, 0x5a, 0x20, 0x3f, 0xd5, 0xeb, 0x19, 0x67, 0x99, 0x1e, 0xfe, 0x42, 0x2a, -0x2b, 0xa1, 0xd9, 0x2c, 0xc5, 0xb2, 0xee, 0xeb, 0x6e, 0x37, 0xee, 0xea, 0xc2, 0xda, 0xf6, 0xba, -0xcd, 0xce, 0x4a, 0x8a, 0x4f, 0x27, 0xe1, 0x5f, 0xfe, 0x65, 0xa8, 0x2b, 0x58, 0x72, 0x62, 0xed, -0x89, 0xb5, 0x79, 0xcf, 0xc3, 0xec, 0xa5, 0x20, 0x62, 0xc9, 0x70, 0x57, 0x74, 0x3f, 0xa7, 0x4d, -0x51, 0x63, 0xf8, 0xfe, 0x15, 0x17, 0xa4, 0x08, 0x95, 0xcd, 0x7a, 0x1b, 0x58, 0xcc, 0x10, 0x35, -0x31, 0xdb, 0x22, 0x33, 0xa3, 0x47, 0xb9, 0x9c, 0xba, 0xe0, 0x3c, 0x33, 0x5b, 0x67, 0x80, 0xa4, -0x69, 0x51, 0xb3, 0xfd, 0x5d, 0x4d, 0xab, 0xb9, 0x1f, 0xd7, 0x95, 0x12, 0xa2, 0x38, 0x3b, 0xd9, -0x4c, 0xc0, 0xf2, 0xdf, 0xdf, 0x64, 0xb1, 0xdf, 0x1c, 0x35, 0xb1, 0xd9, 0x7b, 0x30, 0x40, 0xbb, -0xf0, 0xfd, 0x4c, 0x7e, 0xd6, 0xbe, 0x1b, 0xfb, 0xb1, 0xa1, 0x32, 0x66, 0x3f, 0x8c, 0x77, 0x2c, -0x6d, 0xe0, 0xf0, 0x01, 0xd1, 0x3c, 0xd8, 0x3b, 0xca, 0xcb, 0x1a, 0xd9, 0xac, 0x7f, 0x44, 0xa3, -0x0e, 0xdf, 0xe7, 0x4b, 0x81, 0xc1, 0xf8, 0x35, 0xe6, 0x66, 0x41, 0xd5, 0x9e, 0xcb, 0x2f, 0xe1, -0xec, 0x0c, 0x60, 0x2b, 0xb0, 0xf1, 0x49, 0x71, 0xa7, 0x62, 0x8d, 0xcc, 0x84, 0x2c, 0xd4, 0x02, -0xb3, 0x6b, 0xee, 0x27, 0x8d, 0x4b, 0x6f, 0x08, 0x66, 0x63, 0x2b, 0xba, 0x6a, 0xba, 0x4e, 0xac, -0x8d, 0x09, 0x27, 0xd6, 0xf6, 0x77, 0x35, 0x98, 0x5b, 0xb5, 0xbc, 0xae, 0xa5, 0xa0, 0x38, 0xf4, -0xfa, 0x8f, 0x8a, 0x9b, 0xac, 0x83, 0xc5, 0x33, 0xe1, 0x27, 0x1f, 0x42, 0x78, 0x09, 0x5c, 0xf9, -0x0e, 0xb5, 0x36, 0x6f, 0x3f, 0xa9, 0xec, 0x55, 0x0c, 0xc3, 0x16, 0x0b, 0xff, 0xb1, 0xb7, 0xe4, -0x2f, 0xe6, 0x61, 0xc5, 0x67, 0x9f, 0xda, 0xe4, 0x0e, 0xf7, 0xa9, 0x4e, 0x3e, 0x82, 0x71, 0x9f, -0x9f, 0xa9, 0x4e, 0xc6, 0xbf, 0x26, 0xa2, 0xe3, 0xe4, 0xd3, 0xd9, 0x50, 0x54, 0xb3, 0x5a, 0x2f, -0xdf, 0x4e, 0x33, 0x7c, 0xa5, 0x77, 0xcf, 0x03, 0xea, 0x21, 0xb1, 0xac, 0x13, 0x08, 0xe9, 0xcb, -0x9e, 0x43, 0xf1, 0xa3, 0xab, 0xc2, 0xd0, 0x64, 0x66, 0x71, 0xad, 0x8a, 0x11, 0xef, 0xf5, 0xac, -0x85, 0xca, 0xdb, 0xed, 0xbf, 0xbd, 0x6e, 0x0b, 0x39, 0xc9, 0x5e, 0xe6, 0x1c, 0x6b, 0xa1, 0x4a, -0xa9, 0xf4, 0x1a, 0xed, 0x63, 0xad, 0xda, 0x73, 0x69, 0x5b, 0xf5, 0x46, 0x57, 0x29, 0xcf, 0x3b, -0xb0, 0x93, 0xb5, 0x0a, 0x9b, 0x17, 0x79, 0xeb, 0xcd, 0x58, 0x77, 0xea, 0xff, 0xc0, 0x8f, 0xb1, -0x15, 0x6c, 0x91, 0xb5, 0x7b, 0x71, 0xd4, 0xab, 0xa0, 0xb5, 0x22, 0xdd, 0x94, 0x9c, 0xc6, 0x63, -0xab, 0x3d, 0x19, 0x27, 0x7a, 0xf2, 0x4d, 0x6f, 0xac, 0x45, 0xca, 0x37, 0xbb, 0x03, 0xe4, 0x32, -0xef, 0x7c, 0xc8, 0x77, 0x4f, 0x70, 0xb7, 0xc0, 0x5d, 0xb8, 0xaf, 0xb0, 0xb2, 0xd8, 0xc7, 0xc9, -0xba, 0x03, 0xcb, 0xb6, 0x88, 0xe3, 0x56, 0x92, 0xbf, 0x0e, 0x9c, 0x21, 0x05, 0x21, 0x60, 0x35, -0x02, 0x58, 0xed, 0x7e, 0x90, 0xff, 0xa6, 0x19, 0xd3, 0x96, 0xb1, 0x93, 0xe6, 0xdc, 0xc1, 0x5d, -0x58, 0x9f, 0x25, 0xb3, 0x69, 0xbc, 0x05, 0x84, 0xd1, 0xbd, 0x2d, 0x4c, 0x16, 0xc9, 0x93, 0xa4, -0xe9, 0x5a, 0xf5, 0xf8, 0xeb, 0x49, 0xec, 0xe5, 0x52, 0x08, 0xb8, 0x02, 0xee, 0xf5, 0xf9, 0xd6, -0x37, 0xd6, 0x3a, 0x2b, 0x95, 0x5c, 0x99, 0x21, 0x43, 0x0e, 0x0f, 0x86, 0x71, 0x45, 0x84, 0x33, -0x62, 0x4d, 0xd8, 0x47, 0x33, 0x15, 0xde, 0x70, 0xfe, 0x67, 0xed, 0xfd, 0xd2, 0x8d, 0xea, 0x49, -0x6c, 0xdd, 0xc5, 0xab, 0xc6, 0x0d, 0xdc, 0x4f, 0xba, 0x22, 0x0d, 0x00, 0xd5, 0x83, 0x71, 0xdf, -0xed, 0x66, 0xae, 0x99, 0x67, 0xc1, 0xff, 0x36, 0x98, 0x0c, 0x16, 0xf7, 0x83, 0xca, 0xac, 0xf0, -0x23, 0x7c, 0xbf, 0xe9, 0xee, 0x55, 0xdc, 0xd2, 0x04, 0xe4, 0x37, 0x16, 0xa5, 0xa5, 0xdb, 0x17, -0xfe, 0x2c, 0x4b, 0xb5, 0xd7, 0xfd, 0x3c, 0x2c, 0x52, 0x2c, 0xe6, 0x02, 0x9c, 0xf2, 0x10, 0x35, -0x04, 0x1e, 0x89, 0xac, 0xae, 0x7d, 0xa8, 0x16, 0xc3, 0x76, 0xb3, 0x76, 0x1b, 0x19, 0x72, 0x5b, -0xb0, 0x6d, 0xf2, 0x57, 0x81, 0x52, 0xbf, 0x2a, 0xfa, 0xaf, 0xff, 0xf5, 0xed, 0x43, 0x44, 0x7f, -0xf1, 0x9a, 0x83, 0x7b, 0x81, 0x08, 0x0f, 0x51, 0xce, 0xeb, 0xf7, 0x73, 0xab, 0xa2, 0xf8, 0xb7, -0x38, 0x31, 0x7f, 0x57, 0xdd, 0xab, 0xf8, 0x92, 0xcf, 0xad, 0x8a, 0x9c, 0x78, 0x56, 0x6c, 0xab, -0xda, 0x94, 0xec, 0x55, 0xed, 0x4a, 0x96, 0x9e, 0x76, 0x54, 0x31, 0xeb, 0x4f, 0xf7, 0xa4, 0x56, -0xa7, 0xb2, 0xa1, 0x8f, 0xf6, 0x27, 0x31, 0xed, 0x75, 0x7d, 0x32, 0xa4, 0x89, 0x77, 0x31, 0x4e, -0x26, 0x9b, 0x71, 0x30, 0xdb, 0x20, 0xb7, 0xc9, 0xaa, 0xc7, 0x30, 0xd3, 0xb9, 0x68, 0xf2, 0xeb, -0x85, 0xf8, 0xf5, 0xda, 0xe4, 0xd7, 0x13, 0x93, 0x4f, 0x5e, 0x88, 0x24, 0x9f, 0xad, 0x55, 0x9b, -0x30, 0x95, 0x15, 0x53, 0xe7, 0xc2, 0x16, 0x66, 0x2f, 0x80, 0xe9, 0x2a, 0x93, 0x29, 0xdd, 0xa9, -0x2d, 0x10, 0x01, 0x2b, 0x3e, 0x45, 0xc4, 0x87, 0xa6, 0x12, 0x7d, 0x36, 0x4e, 0xad, 0x64, 0x98, -0x90, 0xb3, 0xb8, 0x1d, 0xbb, 0x10, 0xac, 0xba, 0x57, 0xc6, 0x56, 0x98, 0x16, 0x4c, 0xe8, 0x21, -0x5d, 0x8e, 0x21, 0x05, 0x5c, 0x88, 0x2d, 0x3c, 0x9b, 0x51, 0xc0, 0x13, 0x6e, 0x68, 0x82, 0xa1, -0x4d, 0x6e, 0x93, 0x62, 0x70, 0x96, 0xc7, 0x04, 0x4f, 0xa6, 0x02, 0x1f, 0x3b, 0xd3, 0xe4, 0x0c, -0x07, 0xaf, 0x92, 0x33, 0xbc, 0x32, 0x0a, 0x13, 0x58, 0xe3, 0x27, 0x7c, 0x23, 0xfb, 0x12, 0xe8, -0x90, 0x3e, 0xf2, 0xe7, 0x51, 0x4a, 0x7b, 0x20, 0xc3, 0x42, 0x57, 0x20, 0xdc, 0xad, 0x9a, 0x02, -0x59, 0xb8, 0x2b, 0x0f, 0xe3, 0x7a, 0x74, 0xb9, 0x23, 0x34, 0x6f, 0x48, 0xdb, 0xc9, 0xc6, 0xe9, -0x64, 0x92, 0x53, 0xee, 0xc0, 0x3d, 0x7b, 0x53, 0xb1, 0x58, 0x93, 0x58, 0xad, 0xa7, 0x13, 0x9d, -0xb6, 0x7b, 0x6d, 0x62, 0x69, 0x55, 0x1f, 0x93, 0x9c, 0x3e, 0x42, 0x6b, 0x6c, 0xab, 0x88, 0x14, -0xf7, 0x60, 0x56, 0x31, 0x8c, 0xc7, 0xfb, 0x3e, 0xb2, 0xd6, 0xc6, 0x67, 0xe4, 0x58, 0xa2, 0x59, -0x8a, 0x11, 0x79, 0x5d, 0x2b, 0xc7, 0x77, 0x6a, 0xbd, 0x1d, 0xa9, 0x7b, 0x7e, 0x20, 0x8b, 0xfd, -0x02, 0xe1, 0x75, 0x96, 0x8b, 0xb9, 0xe6, 0x69, 0x86, 0xfe, 0x7c, 0x88, 0xf6, 0x70, 0x9a, 0x87, -0xa5, 0xb9, 0x47, 0x0b, 0xea, 0x1e, 0x1c, 0x76, 0xb5, 0x7e, 0x61, 0x07, 0xa1, 0xfa, 0x64, 0xc5, -0x46, 0xf0, 0xd7, 0xf6, 0x56, 0x89, 0x56, 0x24, 0xc1, 0xa8, 0x98, 0x03, 0x6e, 0x4d, 0xc3, 0x90, -0x47, 0xe5, 0x44, 0x99, 0xf9, 0x69, 0x4a, 0x6e, 0xb2, 0xcc, 0xb8, 0x5b, 0xbe, 0x46, 0xa9, 0x03, -0xa3, 0x4a, 0xed, 0xc6, 0xd4, 0x94, 0x31, 0x75, 0x55, 0xfe, 0xd6, 0x57, 0x58, 0xbb, 0x62, 0xe2, -0xc6, 0xa2, 0xb3, 0x58, 0x3d, 0x7c, 0xad, 0x2b, 0xf0, 0xef, 0x22, 0xac, 0x6f, 0x15, 0xde, 0x23, -0x78, 0x6f, 0xc0, 0x7b, 0x15, 0xde, 0xcb, 0x30, 0xf5, 0x90, 0x42, 0xde, 0x6e, 0xac, 0x2c, 0xbe, -0x89, 0x71, 0x43, 0x12, 0xcb, 0xcf, 0xc4, 0x6a, 0x9d, 0x45, 0x75, 0x1e, 0x29, 0xe2, 0x75, 0x1e, -0xa9, 0xa6, 0xd4, 0xb1, 0x27, 0x66, 0xb3, 0x5a, 0xda, 0xb0, 0xce, 0x06, 0x9c, 0x9b, 0xbb, 0x62, -0x16, 0xdc, 0x01, 0x7c, 0xba, 0x66, 0xbd, 0x63, 0x80, 0x74, 0xf9, 0x90, 0xf6, 0xe4, 0x28, 0xa0, -0x19, 0x5c, 0xe1, 0x9c, 0x81, 0xa3, 0xeb, 0xca, 0x86, 0xae, 0x0c, 0x21, 0x77, 0x68, 0xdc, 0xb9, -0x5e, 0xb5, 0x04, 0x3c, 0x9a, 0xc6, 0xec, 0xef, 0x57, 0x8f, 0xa9, 0x51, 0xf9, 0x98, 0x1a, 0xd9, -0x30, 0xd7, 0x4d, 0xa3, 0xea, 0x23, 0xb3, 0xfe, 0x2b, 0xd6, 0xfb, 0xaf, 0x50, 0xef, 0x3b, 0x1b, -0xde, 0xb1, 0xf5, 0xf1, 0x2d, 0x95, 0x5b, 0x1e, 0x5b, 0xee, 0x2b, 0x71, 0x5e, 0xee, 0x2b, 0x5b, -0x59, 0xb9, 0x1d, 0x31, 0x41, 0x31, 0xe7, 0x0c, 0x28, 0x84, 0x83, 0x48, 0x68, 0xd5, 0xd6, 0xd4, -0x99, 0x84, 0x78, 0x7d, 0x5d, 0xf1, 0xd9, 0xa3, 0xf6, 0xaa, 0x4c, 0x57, 0x1c, 0xc6, 0xff, 0xe3, -0x9a, 0x16, 0x74, 0x3e, 0xa4, 0xa7, 0xa1, 0x9f, 0x0b, 0xe1, 0x9e, 0x17, 0x98, 0x6d, 0x75, 0x9a, -0xe6, 0x07, 0x24, 0x64, 0x00, 0xb3, 0x39, 0xe6, 0x01, 0xf7, 0x31, 0xe1, 0x24, 0xfb, 0x9b, 0xf5, -0x84, 0x6d, 0x4f, 0x48, 0xf7, 0xba, 0xac, 0x72, 0x31, 0x72, 0x8a, 0x2b, 0x52, 0xc8, 0xf7, 0x6c, -0xc7, 0x69, 0x9d, 0x1e, 0x01, 0xc7, 0xf4, 0x46, 0x30, 0x62, 0xee, 0x73, 0x92, 0x28, 0xf9, 0xba, -0x77, 0x80, 0x95, 0x9a, 0xb2, 0x98, 0xf6, 0x22, 0x89, 0xef, 0xa5, 0x2c, 0x42, 0xdc, 0x67, 0x3d, -0x66, 0x9a, 0x4e, 0x3e, 0x4c, 0x0c, 0xae, 0xae, 0x14, 0x62, 0x7e, 0xfa, 0x69, 0x8e, 0xb2, 0xdf, -0x15, 0x96, 0x4b, 0xc8, 0xfe, 0x92, 0x9d, 0xa2, 0xec, 0x41, 0xda, 0x6a, 0x6a, 0xb7, 0xa7, 0x21, -0xfa, 0x83, 0x56, 0x1f, 0x28, 0x6b, 0xcd, 0xd2, 0x7d, 0x0f, 0x64, 0x92, 0xc6, 0x3a, 0xd7, 0x98, -0x15, 0x25, 0xb9, 0x44, 0x26, 0x59, 0x86, 0xd8, 0x3a, 0x85, 0xdb, 0x63, 0x8a, 0x4c, 0xff, 0xf1, -0xc7, 0x03, 0xea, 0x45, 0x71, 0x53, 0xeb, 0x14, 0x66, 0x95, 0xdf, 0x94, 0xf0, 0xa0, 0x1b, 0x4c, -0x78, 0xaa, 0x2c, 0xe1, 0x5e, 0x34, 0x1a, 0x16, 0x90, 0xdc, 0x37, 0xa1, 0x7d, 0x45, 0x16, 0x74, -0x24, 0xdd, 0xdc, 0xfc, 0xb2, 0x32, 0xeb, 0xc7, 0x07, 0x90, 0xdf, 0xca, 0x62, 0x1e, 0xb8, 0x8c, -0x52, 0x5c, 0x31, 0x92, 0x45, 0x23, 0xf1, 0x6a, 0x84, 0x24, 0x3a, 0x06, 0xed, 0x21, 0x8b, 0x72, -0x94, 0x42, 0x24, 0x59, 0x64, 0x3b, 0xdc, 0xfd, 0xdc, 0xab, 0xe1, 0x58, 0x9d, 0x83, 0x2b, 0x1d, -0x5c, 0xf2, 0x79, 0xe5, 0x84, 0x6e, 0x47, 0x8d, 0x2b, 0xd4, 0x68, 0x4b, 0xea, 0x3c, 0xff, 0x95, -0x13, 0xd2, 0xb8, 0xb6, 0xd9, 0xed, 0x27, 0x8f, 0x3d, 0xc4, 0x74, 0x3d, 0x99, 0xc5, 0x2a, 0xae, -0x2d, 0xc5, 0x18, 0x3a, 0xc2, 0xac, 0x52, 0x9f, 0xe1, 0xde, 0x94, 0xe1, 0x7b, 0x12, 0xc8, 0x13, -0x4d, 0xdd, 0x9a, 0x76, 0xe5, 0x64, 0x3b, 0x94, 0x67, 0xb0, 0x98, 0x24, 0x69, 0x36, 0xe7, 0x4f, -0x34, 0xdd, 0x4f, 0xa1, 0x12, 0x3b, 0xd7, 0xd3, 0x9e, 0x54, 0x5a, 0xc5, 0x66, 0x4c, 0xd5, 0x05, -0x5b, 0xaf, 0x19, 0x7f, 0x81, 0x77, 0xdc, 0x5c, 0x86, 0x29, 0x5a, 0xb5, 0xb9, 0x96, 0xb0, 0x8a, -0x9a, 0xaf, 0x9c, 0xa4, 0x27, 0x09, 0x8e, 0x74, 0x5b, 0xbb, 0xb0, 0x5c, 0x23, 0x75, 0x05, 0xc8, -0xb7, 0x00, 0x79, 0xed, 0xbd, 0xf2, 0x66, 0xd4, 0x3c, 0xa9, 0x13, 0xbc, 0x57, 0x4e, 0x46, 0xe2, -0xe2, 0xdc, 0xd2, 0xf7, 0xaf, 0x9c, 0x7c, 0x75, 0x40, 0x34, 0xa4, 0x63, 0x19, 0x26, 0xf3, 0xb6, -0x8c, 0xad, 0x83, 0xc7, 0xcf, 0x73, 0x1f, 0x39, 0xc9, 0x56, 0xca, 0x17, 0x75, 0xc9, 0x1c, 0xa1, -0x2c, 0x74, 0x90, 0x3a, 0x1a, 0xd3, 0x41, 0x6b, 0xd3, 0x3d, 0x5d, 0xd9, 0xe6, 0x7e, 0xe4, 0x82, -0xf9, 0x7f, 0x39, 0x03, 0x81, 0xfc, 0x91, 0x93, 0x8a, 0xd1, 0xe9, 0x0f, 0x7c, 0x9a, 0x63, 0x51, -0x8c, 0x9c, 0x4c, 0xb4, 0x02, 0xf3, 0x40, 0x7c, 0x32, 0xd1, 0x06, 0x23, 0x63, 0xea, 0xc4, 0xad, -0x7e, 0x47, 0x4e, 0x7a, 0x33, 0xe6, 0xf3, 0xba, 0x3d, 0x2a, 0xc3, 0xb7, 0x7e, 0xf5, 0x9b, 0x5f, -0xe7, 0xaf, 0xab, 0x7a, 0x14, 0xeb, 0x66, 0x38, 0x12, 0xd7, 0xeb, 0xe6, 0x2e, 0xf9, 0x8b, 0x8b, -0xd5, 0x6d, 0x44, 0xaf, 0xdb, 0xc8, 0xc9, 0x48, 0xb7, 0x18, 0x96, 0x4a, 0x5f, 0xdd, 0x97, 0x5e, -0xaf, 0x8a, 0xf7, 0x47, 0x4e, 0x72, 0xdb, 0x5f, 0x6c, 0xcf, 0xa5, 0x89, 0xf6, 0x1c, 0x95, 0x67, -0xc4, 0x6b, 0x49, 0xb4, 0xa3, 0x0c, 0x89, 0xfc, 0xf3, 0x7b, 0xc6, 0xb4, 0xa5, 0x27, 0xd1, 0x96, -0x69, 0xf9, 0xc5, 0x59, 0x7e, 0x63, 0x5a, 0x92, 0xe5, 0x38, 0x2e, 0xdd, 0xfa, 0x38, 0x6a, 0x93, -0xac, 0xfc, 0x17, 0xf7, 0x70, 0xe1, 0x35, 0x31, 0xe9, 0xe3, 0xe3, 0xd5, 0x1b, 0x15, 0x59, 0xcc, -0xea, 0xdf, 0x1c, 0x95, 0x28, 0x04, 0x69, 0xe1, 0x06, 0xa4, 0x6b, 0x26, 0xd2, 0x69, 0x6a, 0x75, -0x95, 0x0b, 0xdc, 0x5e, 0x98, 0xda, 0x15, 0xb9, 0x8d, 0x26, 0xaf, 0x15, 0xdb, 0xe3, 0xf2, 0xc4, -0x81, 0xaa, 0x47, 0x5d, 0x7e, 0xc2, 0xdf, 0x91, 0x13, 0xf4, 0xc2, 0xea, 0xcd, 0xc3, 0xd5, 0x1b, -0xbc, 0x6e, 0x86, 0x4f, 0x35, 0x29, 0xe5, 0x0f, 0x2b, 0x1f, 0xa4, 0xc0, 0xab, 0xfb, 0xd2, 0xad, -0x20, 0x4a, 0x2f, 0x1e, 0x80, 0xf4, 0xdf, 0x98, 0xb6, 0x27, 0x7f, 0x2d, 0xcb, 0xd9, 0x91, 0xc8, -0x99, 0xf2, 0x13, 0xc7, 0x91, 0x44, 0xf3, 0xca, 0xce, 0x84, 0xee, 0x0d, 0xc7, 0x38, 0xa6, 0x73, -0x23, 0x29, 0x72, 0x6b, 0x18, 0x2c, 0xd3, 0x70, 0x3d, 0x06, 0x23, 0xfe, 0x75, 0x80, 0x15, 0xff, -0xe6, 0xa4, 0x7c, 0x65, 0x8c, 0x6c, 0x4a, 0x78, 0xab, 0x2e, 0x32, 0xb8, 0x46, 0xe1, 0x73, 0x11, -0x4d, 0x63, 0xf8, 0xfb, 0x02, 0xf3, 0x59, 0x43, 0xa8, 0x28, 0x76, 0xae, 0x89, 0xc4, 0xed, 0x31, -0x69, 0x56, 0xb9, 0x33, 0x3c, 0xc6, 0xd1, 0x32, 0x29, 0xa7, 0x9f, 0x50, 0xac, 0xee, 0xd0, 0xea, -0x4c, 0x32, 0x43, 0x19, 0x17, 0x0d, 0xe9, 0xa8, 0xa0, 0x6c, 0x24, 0x1d, 0x42, 0xca, 0x1a, 0x1a, -0xec, 0xc6, 0xbf, 0x95, 0x78, 0x55, 0xbb, 0x96, 0xc3, 0xa1, 0xe9, 0x65, 0x70, 0x88, 0x9d, 0x7a, -0x1d, 0xa4, 0x13, 0x29, 0xa4, 0xa8, 0xc0, 0x71, 0xfd, 0xc4, 0x3c, 0xe8, 0xc7, 0x38, 0xf5, 0xb8, -0xab, 0x2c, 0xf2, 0x96, 0x43, 0x31, 0xe9, 0x6e, 0x30, 0x7c, 0xe4, 0x10, 0xf8, 0xbd, 0xf3, 0x20, -0x29, 0x1f, 0xfe, 0xf8, 0x75, 0x0f, 0x94, 0x7c, 0x08, 0xb5, 0xa5, 0x97, 0x09, 0x2f, 0x19, 0x69, -0x7f, 0x51, 0x12, 0x15, 0x19, 0x79, 0x19, 0x31, 0xe9, 0x05, 0xf0, 0xe3, 0xa3, 0x48, 0xc9, 0xeb, -0x91, 0xba, 0xf4, 0x4f, 0xaf, 0xe4, 0x39, 0x8e, 0x38, 0x74, 0x7f, 0x81, 0x32, 0xff, 0xc5, 0x64, -0x80, 0x22, 0x2f, 0x4b, 0xff, 0x5a, 0xd5, 0xc6, 0x9f, 0x24, 0xe0, 0x58, 0xe1, 0x52, 0x30, 0x85, -0xeb, 0xab, 0xe5, 0xeb, 0xb2, 0x64, 0x2e, 0xa5, 0xf3, 0x11, 0x0e, 0x38, 0x21, 0x61, 0x84, 0xbb, -0xa3, 0x32, 0xf7, 0x6b, 0xcd, 0xb5, 0xde, 0xc4, 0x19, 0x60, 0xef, 0x27, 0x1b, 0x5f, 0x9b, 0xb4, -0x0c, 0xac, 0x3f, 0x3a, 0x03, 0xd6, 0x2f, 0x33, 0x7b, 0xf2, 0x80, 0x9f, 0x9d, 0xde, 0xb0, 0x73, -0xe9, 0xe2, 0xd9, 0x2e, 0xc1, 0x49, 0x27, 0xcd, 0x64, 0x09, 0x5b, 0x2f, 0x07, 0x7f, 0xb3, 0x3f, -0x1d, 0x83, 0x10, 0x57, 0x31, 0x8e, 0x81, 0xe7, 0x86, 0xab, 0xac, 0xc5, 0xd5, 0x02, 0xeb, 0xb3, -0x64, 0x25, 0xae, 0x0d, 0xab, 0x9e, 0x63, 0xdd, 0xce, 0xd2, 0xdf, 0xfe, 0x8a, 0xdb, 0x33, 0x30, -0x2b, 0x0a, 0xb2, 0x13, 0xcf, 0x96, 0x71, 0x14, 0xfc, 0xf8, 0x3d, 0x30, 0x26, 0xd1, 0x64, 0x4c, -0x31, 0xd0, 0xad, 0xd9, 0x8b, 0xb5, 0x13, 0x3a, 0xf6, 0xcf, 0x19, 0xf2, 0x9f, 0xe5, 0x12, 0x5c, -0x55, 0xb1, 0x1c, 0x6c, 0xef, 0x5c, 0xdc, 0xb7, 0x89, 0xe9, 0xbd, 0xca, 0x50, 0x7a, 0x02, 0xba, -0xe5, 0xd8, 0xac, 0x30, 0xae, 0xf3, 0x6a, 0xbe, 0x77, 0x39, 0xf2, 0xea, 0x2e, 0xfc, 0x6b, 0x07, -0x0f, 0xfe, 0x75, 0x90, 0xa5, 0x2d, 0x5c, 0x7a, 0xef, 0x79, 0x90, 0xc5, 0xa0, 0x5c, 0x5a, 0xfa, -0x21, 0xe4, 0x7a, 0x9a, 0x98, 0x2c, 0xe1, 0x3b, 0x64, 0x33, 0xca, 0xec, 0xc9, 0x5e, 0x4a, 0x7a, -0x69, 0xca, 0x49, 0xda, 0xc0, 0xd9, 0x52, 0x56, 0x65, 0xaa, 0x25, 0x21, 0xad, 0x54, 0x9a, 0xc4, -0xac, 0x84, 0x75, 0x19, 0x6b, 0x81, 0x34, 0xdb, 0x32, 0x25, 0xc2, 0xf4, 0x35, 0xd3, 0x2c, 0xcc, -0xbe, 0xf5, 0x6b, 0x65, 0x8a, 0x53, 0x47, 0x0c, 0xea, 0x7f, 0xb0, 0x85, 0x59, 0xf2, 0x7e, 0x6b, -0x80, 0x34, 0x63, 0x92, 0xd6, 0x66, 0xb8, 0x42, 0x87, 0xee, 0x71, 0x41, 0x7a, 0x3a, 0x1c, 0x9b, -0x80, 0xf9, 0xc5, 0xd5, 0x12, 0x36, 0x12, 0xd7, 0xc4, 0xa8, 0x7b, 0x6c, 0x6a, 0x00, 0x1e, 0x4b, -0x3f, 0xd7, 0xbc, 0x46, 0x9c, 0xc7, 0x31, 0xce, 0xe3, 0xa9, 0x38, 0x3a, 0x06, 0xbb, 0x9d, 0x7c, -0xf4, 0x8a, 0x5f, 0x9a, 0xea, 0x07, 0x92, 0x36, 0x59, 0xd3, 0xbd, 0x9a, 0x7b, 0x74, 0xbf, 0xa6, -0xba, 0xac, 0x7b, 0x8f, 0x76, 0x88, 0x7b, 0x10, 0x25, 0x7f, 0xa5, 0xd7, 0xc9, 0xe3, 0x10, 0xe6, -0x71, 0x28, 0x91, 0x07, 0x8e, 0x9b, 0xf3, 0x7c, 0xce, 0x3a, 0x6d, 0x69, 0x7e, 0x4c, 0xab, 0x77, -0xc4, 0xeb, 0x49, 0xa3, 0xeb, 0x04, 0x6b, 0xc5, 0x76, 0xd2, 0xfe, 0xc3, 0xba, 0x8f, 0xd6, 0xca, -0x50, 0xf8, 0x39, 0xcd, 0xc4, 0x01, 0x3a, 0x91, 0x4e, 0xf0, 0x43, 0x48, 0x8f, 0x66, 0x62, 0xdc, -0x99, 0x1a, 0xe1, 0x25, 0x75, 0xe0, 0x08, 0x98, 0xa9, 0x5d, 0x4c, 0x69, 0x32, 0x4a, 0xc1, 0x57, -0xf7, 0x8f, 0xa1, 0x43, 0xae, 0xc4, 0x49, 0x42, 0x1b, 0xb0, 0x5c, 0x32, 0xd2, 0x51, 0x9f, 0x48, -0x17, 0xd0, 0x9f, 0xab, 0x9d, 0x4c, 0xd2, 0xa3, 0x6b, 0xd5, 0xe7, 0x09, 0xac, 0xcf, 0x13, 0xa3, -0xdb, 0x95, 0x66, 0xa0, 0x44, 0xf4, 0x77, 0x96, 0x18, 0x60, 0x9e, 0x8b, 0xf6, 0x89, 0xe6, 0x1a, -0x86, 0xa9, 0x0c, 0x5a, 0x9d, 0x44, 0x9e, 0xe1, 0x89, 0x63, 0x28, 0x3d, 0x03, 0x82, 0x3d, 0x1e, -0xb8, 0xcd, 0x8c, 0x9b, 0x9e, 0x34, 0x1f, 0xc7, 0x1a, 0x9f, 0x53, 0xe9, 0x36, 0x83, 0x7f, 0x0b, -0xcf, 0x8a, 0xe9, 0xa5, 0xe4, 0x12, 0x17, 0xc8, 0x6a, 0x2d, 0xfd, 0x63, 0x78, 0x56, 0xd4, 0x77, -0xa3, 0xcf, 0x3f, 0x52, 0x32, 0xf5, 0x8c, 0x91, 0xb1, 0xe7, 0x1f, 0x9f, 0xd8, 0xb7, 0xdb, 0xb0, -0x2d, 0xb6, 0x7d, 0xd2, 0x18, 0x4b, 0xf3, 0x8b, 0xb3, 0x05, 0xe3, 0x6e, 0x49, 0x61, 0xef, 0xd3, -0x79, 0xf1, 0x58, 0xdd, 0xe1, 0x8c, 0x53, 0xfa, 0x69, 0xcd, 0x98, 0x12, 0xfc, 0xbd, 0x38, 0x5f, -0xa3, 0xdb, 0xc5, 0x68, 0xfd, 0x07, 0xdb, 0xe5, 0xda, 0x75, 0xdc, 0x8b, 0xe5, 0xde, 0x9b, 0x56, -0x47, 0xbe, 0x46, 0xe1, 0xca, 0xc4, 0xed, 0x69, 0xa5, 0x50, 0xf8, 0x66, 0x75, 0x78, 0xf3, 0x01, -0x71, 0x7c, 0xb2, 0xc7, 0x45, 0xf2, 0x1b, 0x41, 0xda, 0x5f, 0xa5, 0x67, 0x41, 0x70, 0xb0, 0x1e, -0x4f, 0xeb, 0x6f, 0xa6, 0x21, 0x99, 0x58, 0xbd, 0x7c, 0xfa, 0xe8, 0x61, 0x7a, 0x07, 0xb4, 0x9f, -0x7b, 0x9c, 0xd7, 0x68, 0x21, 0xb3, 0xd3, 0x4f, 0x9c, 0x65, 0xfc, 0x5d, 0x63, 0x2c, 0xe7, 0x1f, -0x18, 0x63, 0xe9, 0x7b, 0x8d, 0xeb, 0x69, 0x3f, 0x19, 0x12, 0x88, 0x69, 0x6c, 0x8c, 0xdd, 0xf4, -0x3f, 0xd0, 0xea, 0xbe, 0x73, 0xa4, 0x93, 0x63, 0x8c, 0xb8, 0x0d, 0xf9, 0x19, 0xcc, 0x2f, 0x26, -0x18, 0x16, 0x91, 0x75, 0xa3, 0x61, 0x01, 0xd3, 0xbb, 0x07, 0x21, 0xcd, 0xef, 0x63, 0x9e, 0x7f, -0xa4, 0x53, 0x32, 0x71, 0x4d, 0x7c, 0x97, 0x3f, 0xe1, 0xed, 0x31, 0x6a, 0x97, 0x9a, 0x90, 0x42, -0x7a, 0x18, 0xa2, 0x66, 0x3e, 0xee, 0x3f, 0x8e, 0xc6, 0x6e, 0x1e, 0x7c, 0x16, 0x63, 0x26, 0xfd, -0x3f, 0xca, 0x7e, 0xdd, 0xb7, 0xeb, 0x9e, 0x51, 0xbe, 0x0c, 0x00, 0xa9, 0xbe, 0x0b, 0x06, 0x6f, -0x0a, 0x82, 0x19, 0x7b, 0x21, 0x67, 0x5a, 0x05, 0x58, 0xc4, 0x72, 0x71, 0xe6, 0x48, 0x67, 0xaa, -0x55, 0x7c, 0x46, 0x83, 0xdf, 0x0a, 0x9f, 0x23, 0x2a, 0x17, 0x28, 0x39, 0x03, 0x47, 0x5f, 0xf8, -0x55, 0xd4, 0x81, 0x6b, 0x6e, 0xa9, 0xb4, 0x02, 0x2c, 0x29, 0x6b, 0xe5, 0x26, 0x07, 0x7b, 0x3b, -0x98, 0x86, 0xe4, 0x66, 0x57, 0x2a, 0xc5, 0x00, 0xa5, 0xae, 0xe4, 0x5c, 0x1d, 0xbf, 0xd9, 0x22, -0x96, 0x3a, 0xed, 0x52, 0x69, 0xf8, 0x61, 0xf5, 0x94, 0xc8, 0x6d, 0x24, 0xd9, 0xf7, 0x18, 0x2f, -0x1c, 0x7e, 0x34, 0x6a, 0x95, 0x57, 0xe0, 0xde, 0xc6, 0xcf, 0xce, 0x3e, 0x4d, 0xec, 0x4e, 0x7a, -0xbb, 0xf7, 0xab, 0xf6, 0x14, 0x92, 0xf9, 0x0c, 0x6c, 0x55, 0xc5, 0x38, 0x63, 0x2e, 0x38, 0xa8, -0xde, 0xe9, 0x48, 0xe8, 0xf8, 0xc6, 0xce, 0x90, 0xcc, 0x3d, 0xe9, 0x18, 0xfb, 0xd8, 0x96, 0xe3, -0x69, 0xaf, 0xcf, 0xef, 0x70, 0x89, 0x23, 0xc9, 0x8d, 0xc4, 0x03, 0xcf, 0x8e, 0xac, 0x0e, 0x75, -0x08, 0x1d, 0x84, 0x24, 0x37, 0xd2, 0x9b, 0x8e, 0x24, 0x37, 0x12, 0xd7, 0x91, 0xe4, 0xe2, 0xcc, -0x23, 0xed, 0x86, 0x64, 0x28, 0xe9, 0x58, 0x7f, 0xc0, 0xce, 0x6d, 0x4e, 0xc9, 0xfe, 0xa4, 0x65, -0xe4, 0x93, 0xac, 0x84, 0x59, 0xa9, 0x12, 0x4a, 0x16, 0x39, 0xd3, 0x09, 0x8a, 0x89, 0xdd, 0x99, -0x8f, 0x5b, 0x6d, 0x90, 0x7b, 0x60, 0xd2, 0x4e, 0x60, 0x29, 0xac, 0xd1, 0x76, 0xa6, 0x61, 0xd2, -0x5f, 0xfa, 0xfe, 0x48, 0x3c, 0x66, 0x4e, 0x95, 0xf4, 0xef, 0xcf, 0x1d, 0x39, 0xae, 0x82, 0xab, -0x72, 0x35, 0xea, 0xb9, 0x1a, 0xd3, 0x72, 0xe5, 0x56, 0x79, 0x27, 0x92, 0x88, 0x87, 0x84, 0x7c, -0xbb, 0x60, 0x0c, 0x3f, 0x99, 0xc5, 0x70, 0xb2, 0x7c, 0xf8, 0xd7, 0x18, 0xcd, 0x96, 0x1a, 0xc1, -0x7a, 0xb5, 0xbd, 0xac, 0x8e, 0x74, 0xc6, 0x56, 0x5d, 0xbc, 0xc8, 0x16, 0xce, 0x17, 0xfb, 0xe0, -0x97, 0x49, 0x2e, 0xd3, 0x27, 0x31, 0xaf, 0xce, 0x5e, 0xc8, 0x91, 0x91, 0xc2, 0x10, 0xaf, 0x08, -0xff, 0x5d, 0x67, 0x6c, 0xf3, 0x96, 0x1b, 0x90, 0x4b, 0x98, 0x32, 0x9a, 0x5b, 0xd4, 0x75, 0x17, -0x7d, 0x4c, 0x5e, 0x30, 0x49, 0x31, 0xb4, 0x0a, 0xd3, 0x02, 0xe0, 0xe9, 0xde, 0x24, 0x77, 0x39, -0xe1, 0xf4, 0x83, 0xe4, 0xcb, 0x8f, 0x72, 0x61, 0x68, 0x0a, 0xdd, 0x84, 0xa4, 0xc0, 0x3d, 0x8a, -0xe1, 0xaa, 0x28, 0xa6, 0x59, 0xaa, 0x2b, 0xb1, 0xe1, 0x81, 0xee, 0xfe, 0x6e, 0xb5, 0x16, 0xf7, -0xa0, 0x3d, 0x51, 0x47, 0xab, 0x61, 0x07, 0xfe, 0x45, 0x0e, 0x21, 0x14, 0xfb, 0xf3, 0xc0, 0xa6, -0xac, 0x62, 0x30, 0x2a, 0xd6, 0xd8, 0x9f, 0x7f, 0xb9, 0x49, 0xb1, 0xd0, 0xef, 0x56, 0x73, 0x77, -0x5c, 0xee, 0x0a, 0xaf, 0x6e, 0xf6, 0x61, 0xad, 0x7c, 0xfd, 0x64, 0xe5, 0x6a, 0x66, 0x16, 0x75, -0x23, 0xb5, 0x1b, 0x75, 0xdf, 0x3e, 0x7b, 0xb4, 0x62, 0xfd, 0xcc, 0x96, 0xeb, 0xc2, 0x98, 0x7d, -0xcc, 0x8b, 0xec, 0xc3, 0x07, 0x44, 0x73, 0xe5, 0x9b, 0xc6, 0x5c, 0x5d, 0x47, 0x9a, 0xd7, 0xb2, -0x85, 0xd7, 0x52, 0x47, 0x9f, 0xe8, 0x66, 0x7a, 0x3c, 0x2b, 0x89, 0x9e, 0xe9, 0x2d, 0x59, 0xc0, -0xea, 0x3f, 0x58, 0x37, 0x39, 0xd9, 0x96, 0x69, 0x5e, 0x23, 0x98, 0xad, 0x6d, 0x39, 0x6b, 0x6b, -0xf2, 0x1c, 0x61, 0xed, 0x27, 0x3c, 0x89, 0x62, 0xa4, 0x33, 0x21, 0xa4, 0xb1, 0x7b, 0x46, 0x9a, -0x98, 0xa7, 0x26, 0x2a, 0x1b, 0xe3, 0xcc, 0x89, 0xbf, 0xc0, 0x76, 0x12, 0xe9, 0x2b, 0xa4, 0x0c, -0xb6, 0xd1, 0x1e, 0x28, 0xb0, 0xdd, 0x1c, 0x7a, 0xcf, 0x0a, 0x44, 0x57, 0x92, 0xf6, 0xeb, 0xa2, -0x58, 0x8a, 0x9c, 0xea, 0x7e, 0xc5, 0x68, 0x1f, 0x88, 0xac, 0x96, 0x2b, 0xec, 0x37, 0xb7, 0x42, -0x16, 0xec, 0xec, 0x8a, 0x9a, 0xc3, 0xb8, 0x13, 0xaf, 0x59, 0xa3, 0x9e, 0x09, 0xd8, 0x09, 0xa7, -0x61, 0x27, 0x61, 0xc1, 0x19, 0x23, 0x1c, 0x05, 0xe9, 0x4d, 0xe3, 0x58, 0x1f, 0x84, 0x1d, 0x49, -0x6f, 0x31, 0x86, 0xab, 0x3d, 0x85, 0x21, 0xa7, 0x22, 0xf3, 0xf3, 0x76, 0xb7, 0x0d, 0x4b, 0xe7, -0x22, 0xbd, 0x4b, 0x29, 0x2b, 0xcd, 0x92, 0x02, 0x84, 0x1d, 0xd3, 0x6a, 0xc0, 0x43, 0xb6, 0xcd, -0x24, 0xcf, 0x95, 0x22, 0x25, 0xef, 0x6b, 0x9b, 0x15, 0x83, 0x7d, 0x80, 0x9d, 0x35, 0xce, 0x56, -0x3f, 0xb2, 0xef, 0x85, 0xd9, 0xe4, 0x47, 0x34, 0x85, 0x78, 0xa4, 0x53, 0xaa, 0xe3, 0xad, 0x9b, -0x8f, 0x3c, 0x84, 0xbb, 0x54, 0x0a, 0x7b, 0xc6, 0x03, 0x58, 0x6b, 0x90, 0xad, 0x09, 0xdc, 0x23, -0x35, 0x87, 0xce, 0xde, 0xb1, 0xbf, 0x96, 0xe2, 0x9d, 0xac, 0x4a, 0xab, 0x74, 0x4f, 0x56, 0xc1, -0xd2, 0x73, 0x60, 0xc6, 0x3c, 0x9c, 0x3c, 0x0f, 0x75, 0x28, 0x91, 0xbe, 0x1e, 0xbf, 0x08, 0x57, -0x34, 0x07, 0xdf, 0xeb, 0x6a, 0xce, 0xf6, 0x66, 0x7d, 0xcf, 0xd9, 0xd8, 0x49, 0x7c, 0x8e, 0x33, -0xa9, 0x85, 0xeb, 0x4f, 0xec, 0x2e, 0xb5, 0x69, 0x7c, 0x77, 0xa9, 0x39, 0x23, 0xeb, 0x5d, 0x59, -0x62, 0xd0, 0x9e, 0x13, 0x35, 0xf3, 0x72, 0xbb, 0xcc, 0x69, 0x9e, 0x80, 0xa1, 0xe4, 0xa2, 0x59, -0x10, 0xcd, 0xe9, 0x3e, 0x15, 0x9c, 0xa0, 0x4a, 0x09, 0xad, 0xda, 0xf0, 0xda, 0xa8, 0x59, 0xb7, -0xac, 0x78, 0x92, 0x97, 0x77, 0xe4, 0x7b, 0xcc, 0x87, 0xd3, 0xa3, 0x54, 0x52, 0xec, 0x4d, 0x6b, -0x9a, 0x2f, 0x90, 0x60, 0xe9, 0xc5, 0x22, 0x18, 0xbd, 0x87, 0xc5, 0xd9, 0x60, 0xcc, 0x2f, 0x86, -0xcb, 0xfd, 0xe7, 0x98, 0x86, 0xd0, 0x04, 0xd2, 0xbc, 0xa9, 0xea, 0x73, 0xf9, 0xf5, 0xdd, 0x8d, -0x43, 0x82, 0x36, 0x43, 0x3b, 0xb8, 0x68, 0xae, 0x96, 0x71, 0x9b, 0xc8, 0xe8, 0xb1, 0x6b, 0xe4, -0xe9, 0xae, 0xde, 0xc8, 0xec, 0x77, 0x25, 0xc2, 0xca, 0xfb, 0xd1, 0x91, 0xa8, 0x2d, 0xc5, 0xf3, -0xb1, 0x7e, 0xb3, 0xf2, 0xd2, 0xa6, 0xd1, 0x88, 0xe1, 0x14, 0x8f, 0x37, 0x5a, 0x2b, 0x60, 0x78, -0x30, 0xd9, 0xff, 0xa7, 0x99, 0xf6, 0x59, 0x89, 0xb3, 0x4a, 0x6e, 0x4a, 0xa0, 0x1e, 0x67, 0x18, -0x5b, 0x4f, 0x1f, 0x79, 0x88, 0x70, 0x78, 0xc9, 0xaf, 0x06, 0xa1, 0x76, 0xbd, 0xf9, 0xa8, 0x8b, -0x74, 0x55, 0xf7, 0x2b, 0x4e, 0xa6, 0xe3, 0xe6, 0x77, 0xfa, 0x90, 0x5f, 0xcf, 0x10, 0x83, 0x55, -0x7d, 0xb5, 0x1b, 0x71, 0x94, 0x86, 0x53, 0xd6, 0xbd, 0x51, 0x5b, 0x04, 0xbf, 0x11, 0x91, 0x43, -0xa5, 0x13, 0xb3, 0x26, 0xf2, 0x92, 0x71, 0x71, 0x65, 0xc6, 0x1e, 0x5a, 0xe3, 0x66, 0x6a, 0xa7, -0x23, 0x5d, 0x9b, 0x08, 0x9b, 0xfe, 0xbc, 0x02, 0x86, 0xc7, 0x92, 0x69, 0x3f, 0xf9, 0x3f, 0x48, -0xdb, 0x44, 0x69, 0x7b, 0x9a, 0x31, 0xed, 0x71, 0x7b, 0x36, 0x44, 0xc3, 0x72, 0xb3, 0x76, 0x3a, -0x2f, 0x8c, 0xdc, 0x13, 0x61, 0xbc, 0x59, 0x92, 0x18, 0xc0, 0x55, 0x0f, 0x0f, 0x98, 0x3d, 0xb8, -0x86, 0x4e, 0x8c, 0x32, 0x2b, 0xdf, 0x15, 0xd6, 0x92, 0x0b, 0xbd, 0xe3, 0x14, 0x07, 0x3d, 0x37, -0x59, 0x7e, 0x73, 0x80, 0xbe, 0xc0, 0x92, 0x64, 0x61, 0xe8, 0xe5, 0xbc, 0x10, 0x7b, 0x36, 0xd9, -0x3d, 0xd8, 0x4e, 0x58, 0xaa, 0xf7, 0xf6, 0x13, 0x6a, 0x71, 0x74, 0x0a, 0x7b, 0xde, 0x8d, 0xcf, -0x19, 0xd1, 0x2c, 0xf6, 0xfc, 0xa2, 0x95, 0xf6, 0x3e, 0x26, 0xf6, 0x7c, 0x90, 0xce, 0x6c, 0xdf, -0xdc, 0xc7, 0xcb, 0xef, 0x99, 0xf8, 0xa5, 0xb5, 0xf9, 0x13, 0xbf, 0x72, 0x3f, 0x8e, 0x8b, 0x8f, -0x30, 0x4e, 0x7d, 0xb4, 0xb1, 0x8e, 0xf4, 0x5f, 0xe6, 0xd3, 0xe9, 0x8a, 0x12, 0xc0, 0xa7, 0xe6, -0x68, 0x3b, 0xfe, 0xfd, 0x26, 0xfe, 0x7e, 0x05, 0xc7, 0x00, 0x93, 0x5a, 0x8c, 0xa8, 0x79, 0x7e, -0xed, 0x22, 0x93, 0x3e, 0x33, 0x29, 0xb8, 0x21, 0x8c, 0xad, 0x74, 0x69, 0xe5, 0x92, 0x3d, 0x5d, -0xcd, 0x00, 0x4f, 0x90, 0x06, 0xeb, 0xb8, 0x26, 0x6c, 0xaf, 0x4b, 0x34, 0xd6, 0xf0, 0x9b, 0x71, -0xec, 0x9b, 0x82, 0xf4, 0x6f, 0xd4, 0x4e, 0x42, 0xc4, 0xf3, 0x4e, 0x60, 0x7c, 0x3e, 0xbd, 0x75, -0x24, 0xde, 0xae, 0xd4, 0xf6, 0xc4, 0x55, 0x3a, 0x77, 0xfa, 0x88, 0x5a, 0x3a, 0xd1, 0xba, 0x9e, -0x58, 0x11, 0x78, 0x6d, 0x7a, 0xeb, 0x56, 0x5d, 0xa7, 0x75, 0x27, 0x24, 0x7b, 0xce, 0xba, 0x87, -0x68, 0xc0, 0x4e, 0x3a, 0x81, 0x27, 0xec, 0x31, 0x9e, 0x86, 0xd7, 0x87, 0x23, 0x9c, 0xa5, 0xf0, -0x9b, 0x01, 0xc5, 0xdc, 0x9f, 0x85, 0xeb, 0xf2, 0xa6, 0xc8, 0x3a, 0x86, 0x6c, 0x93, 0xa3, 0x82, -0x66, 0xf4, 0xe0, 0x6e, 0xa5, 0x66, 0xad, 0x8c, 0x35, 0x21, 0x1a, 0x3a, 0xee, 0xa7, 0x2d, 0x48, -0x1e, 0xca, 0x74, 0x34, 0x61, 0xa1, 0x8f, 0x7c, 0x08, 0x33, 0x2f, 0x83, 0xb9, 0xb1, 0x8c, 0x81, -0x6e, 0x75, 0x32, 0xf6, 0x59, 0x7d, 0x22, 0x8c, 0x34, 0x40, 0x43, 0xbf, 0x0a, 0xf6, 0x28, 0xa6, -0x76, 0x81, 0x34, 0xcf, 0x5c, 0x86, 0x9a, 0xd5, 0x84, 0xdc, 0xe6, 0x9e, 0xa9, 0x0d, 0x8b, 0x86, -0x77, 0x7a, 0x07, 0xbb, 0xdf, 0xe9, 0x25, 0xdf, 0x3e, 0x83, 0xdd, 0x84, 0x59, 0x8d, 0x54, 0xe0, -0xe2, 0xc7, 0xaf, 0x1c, 0x5d, 0xeb, 0x31, 0x9e, 0x5e, 0x9b, 0x40, 0x34, 0xd6, 0x1e, 0xe3, 0xfe, -0xbe, 0x4f, 0xc4, 0x59, 0x5e, 0xfa, 0xb3, 0x69, 0x2d, 0xae, 0xbd, 0x53, 0x8f, 0xae, 0x15, 0xcb, -0x6a, 0x52, 0xf8, 0xd1, 0x17, 0x8e, 0xbe, 0xd0, 0x0b, 0x79, 0x01, 0xed, 0x7c, 0xb8, 0x54, 0xb5, -0xc6, 0x0c, 0xfd, 0x6b, 0x9a, 0x4c, 0x35, 0xdd, 0xf4, 0xdb, 0xf5, 0xac, 0x76, 0xde, 0xe9, 0x81, -0x6c, 0xa4, 0x62, 0xbb, 0xbc, 0x13, 0xe6, 0xbf, 0xaf, 0x5d, 0xc4, 0x19, 0x94, 0x51, 0x36, 0x34, -0xbc, 0x9b, 0x49, 0x74, 0xf4, 0xbe, 0x82, 0xef, 0x91, 0x9d, 0x04, 0xf6, 0xd3, 0xa3, 0x2b, 0x3f, -0xb5, 0xa7, 0x1b, 0xef, 0x1b, 0xc4, 0xd2, 0xc3, 0x03, 0x56, 0x3b, 0x52, 0x17, 0x5c, 0x4f, 0x9c, -0xe6, 0x48, 0x0f, 0xf6, 0x98, 0x8d, 0xb0, 0x91, 0x93, 0xdf, 0x34, 0xe2, 0x38, 0xbd, 0x48, 0x73, -0xac, 0x59, 0x99, 0x5c, 0x0c, 0xb7, 0xef, 0x59, 0xd7, 0x5c, 0x4b, 0xdf, 0xd8, 0xed, 0xd1, 0x59, -0x8c, 0x2a, 0x85, 0x59, 0x3f, 0x5e, 0x0c, 0x2d, 0x45, 0xae, 0x6f, 0xcf, 0x70, 0x38, 0xf9, 0x5d, -0x01, 0xf5, 0x45, 0xb3, 0x67, 0x4f, 0xbc, 0xd9, 0xc5, 0xf1, 0xbd, 0xdf, 0x79, 0x80, 0x2c, 0x11, -0x88, 0x13, 0x65, 0xc8, 0x13, 0x86, 0x77, 0x09, 0x5f, 0x78, 0xdd, 0x8c, 0x12, 0x30, 0x22, 0xf7, -0x64, 0xd6, 0xad, 0xf7, 0x48, 0x8f, 0x6e, 0x2f, 0xd7, 0xa3, 0xf3, 0xf9, 0xc4, 0x12, 0xa9, 0xc4, -0x3e, 0x89, 0x69, 0x68, 0x89, 0xd1, 0x8b, 0x4c, 0x3f, 0xe4, 0x03, 0xfc, 0x9b, 0xc7, 0xce, 0x99, -0x67, 0xaa, 0x16, 0x7e, 0x0a, 0x1b, 0x79, 0x80, 0xd2, 0xcc, 0x9a, 0x64, 0x12, 0xb4, 0x41, 0xab, -0x00, 0xe3, 0x97, 0x98, 0xc5, 0x40, 0x80, 0x38, 0xeb, 0xd9, 0x72, 0x45, 0x2b, 0x38, 0x4b, 0x7e, -0xfb, 0xcb, 0xdf, 0xfe, 0xfa, 0xc8, 0x83, 0x74, 0x6f, 0x87, 0xec, 0xc9, 0x73, 0xff, 0x5c, 0x34, -0x28, 0x4d, 0xc8, 0x9e, 0x01, 0x82, 0x29, 0x43, 0x1b, 0x8c, 0x3c, 0x60, 0xcd, 0xc0, 0x2f, 0x5e, -0x6f, 0x9f, 0x49, 0x76, 0xa2, 0xc1, 0x2e, 0x29, 0x20, 0x75, 0x89, 0x96, 0xbe, 0xde, 0xca, 0x37, -0xad, 0x5c, 0xc7, 0xdf, 0xce, 0x29, 0x0d, 0xb6, 0x70, 0xe1, 0x68, 0x4c, 0x5b, 0x1c, 0xb1, 0x59, -0x79, 0xcd, 0x5a, 0xa1, 0x76, 0x89, 0x69, 0x09, 0x1e, 0xc4, 0xdf, 0xd9, 0xec, 0x69, 0x3f, 0xf9, -0xce, 0xf9, 0xd6, 0xaf, 0xdb, 0x85, 0x40, 0x20, 0xd0, 0xac, 0xe5, 0x76, 0x0a, 0x2b, 0x85, 0x55, -0x09, 0x94, 0x7f, 0xb7, 0x6b, 0xa6, 0x46, 0x38, 0x98, 0x1b, 0x44, 0xbb, 0x29, 0x7e, 0x9f, 0xa6, -0xbd, 0xd9, 0x6a, 0xdd, 0x11, 0x6f, 0x58, 0x95, 0x76, 0x5e, 0x29, 0x81, 0x1b, 0x6a, 0x21, 0x04, -0xb3, 0xa1, 0x00, 0xda, 0xf4, 0xff, 0x93, 0xa1, 0x1e, 0x62, 0x79, 0x4b, 0xc1, 0xa8, 0xb9, 0x95, -0x08, 0xbb, 0x67, 0x2b, 0x61, 0x76, 0x17, 0x95, 0x00, 0xbb, 0xcb, 0xca, 0xec, 0x7c, 0x17, 0x18, -0x19, 0xf2, 0x64, 0x6e, 0xa0, 0x4c, 0xf1, 0x90, 0xc6, 0x1e, 0xe9, 0x80, 0x05, 0xcb, 0xa9, 0x0c, -0x4a, 0x2e, 0xfb, 0xbd, 0x2f, 0xd4, 0x1d, 0x09, 0x28, 0x0c, 0xb7, 0xef, 0xcb, 0x38, 0x66, 0x23, -0xa5, 0x8a, 0x91, 0x30, 0x20, 0x4a, 0x08, 0xa3, 0x90, 0x6b, 0x9a, 0x0e, 0x8a, 0x5c, 0x5a, 0x5f, -0x87, 0xe3, 0x37, 0xcb, 0x35, 0xe1, 0xf6, 0x80, 0x36, 0xf9, 0xf6, 0x32, 0xad, 0x40, 0x9c, 0x50, -0x1b, 0x6f, 0xcd, 0xa4, 0xb3, 0xd5, 0xcc, 0xfe, 0xb4, 0xb2, 0x16, 0xe0, 0xd2, 0x6e, 0xc5, 0x2b, -0x1b, 0x0a, 0x30, 0x97, 0xc9, 0x4a, 0xbe, 0x6b, 0x02, 0xe6, 0x54, 0x1a, 0xb5, 0x86, 0x03, 0xd1, -0x5c, 0xfa, 0xb6, 0xe3, 0x8a, 0x32, 0x19, 0x9f, 0x1d, 0xec, 0x59, 0x50, 0x6c, 0xac, 0x7c, 0x93, -0x15, 0x53, 0xc7, 0x88, 0x62, 0xe8, 0x18, 0x46, 0xfe, 0xe9, 0x59, 0x2d, 0x5b, 0xcd, 0xe1, 0xed, -0xc7, 0x75, 0x34, 0x47, 0xd6, 0xeb, 0xf7, 0xb5, 0x4a, 0x4e, 0x98, 0xde, 0x4a, 0x84, 0x96, 0xfe, -0xde, 0x19, 0xdd, 0x8e, 0x99, 0x62, 0x9e, 0xa2, 0x96, 0x8e, 0x42, 0xa6, 0x93, 0xa5, 0x96, 0x8f, -0x5c, 0x48, 0xb3, 0x96, 0xdf, 0x2a, 0xec, 0xc0, 0xd6, 0x6d, 0x30, 0x61, 0x8f, 0x64, 0x6b, 0x6e, -0x96, 0xb2, 0xa8, 0x3a, 0x79, 0x7f, 0x8c, 0x4d, 0x99, 0xfb, 0x36, 0x32, 0x7e, 0x8f, 0x7d, 0xef, -0x63, 0xdf, 0xfb, 0xd8, 0xf7, 0xb2, 0xea, 0x14, 0x9b, 0xb5, 0x2c, 0xc9, 0x05, 0x27, 0xaf, 0xfa, -0x42, 0xc6, 0x2f, 0x3a, 0xd8, 0x17, 0x2e, 0xf6, 0x85, 0x8b, 0x9f, 0x8b, 0x10, 0x9e, 0xd3, 0x7b, -0x83, 0x3a, 0xca, 0x30, 0x5b, 0x95, 0xa3, 0x4b, 0xad, 0x85, 0x60, 0x31, 0x6b, 0x51, 0xdf, 0x68, -0xcf, 0x9d, 0x4e, 0x3f, 0x3b, 0xf3, 0x4e, 0xe3, 0xa1, 0x3e, 0xb5, 0x17, 0x2c, 0x2e, 0x88, 0x74, -0x07, 0x3e, 0xeb, 0x02, 0xd7, 0x3c, 0x6e, 0x77, 0x85, 0x1c, 0x21, 0x79, 0xc1, 0x70, 0x73, 0x69, -0x65, 0x21, 0xd3, 0x88, 0xdd, 0xc5, 0x7d, 0xa1, 0xa5, 0xdb, 0xd0, 0x05, 0x70, 0xbd, 0xbb, 0x10, -0xc6, 0x9e, 0x55, 0x0b, 0x7c, 0xe5, 0xe1, 0xb2, 0x68, 0x36, 0xf9, 0x77, 0xa3, 0x6f, 0x5e, 0x9c, -0x2c, 0x43, 0xf5, 0x46, 0xa2, 0xf0, 0xef, 0xfd, 0x56, 0x09, 0x27, 0x43, 0x17, 0x26, 0x43, 0x0f, -0x2b, 0x85, 0xe1, 0xfb, 0xa3, 0xb3, 0x92, 0x3c, 0x71, 0x27, 0xc9, 0xa9, 0xdb, 0x99, 0x4d, 0xea, -0xf0, 0x45, 0x86, 0x47, 0xe8, 0x97, 0x09, 0xa7, 0x9c, 0x38, 0xa3, 0x44, 0x9c, 0x76, 0xe7, 0xb8, -0x70, 0xb7, 0xea, 0x52, 0x4c, 0x2c, 0x85, 0xdf, 0x61, 0x7e, 0x90, 0xd1, 0xe6, 0xb5, 0xf8, 0xca, -0xd3, 0x53, 0x67, 0x5e, 0x5e, 0x9a, 0xb5, 0x02, 0x1c, 0x5f, 0x65, 0x51, 0x2b, 0x8d, 0x1a, 0x42, -0xa2, 0xb0, 0x18, 0xc8, 0x7f, 0x31, 0xb6, 0x6a, 0xa1, 0x3e, 0xc2, 0x76, 0x73, 0x9f, 0x51, 0x19, -0x85, 0xba, 0xc7, 0xae, 0x22, 0x6a, 0x71, 0xee, 0xb3, 0xcb, 0xe7, 0xc7, 0xf5, 0xac, 0x58, 0xf7, -0xec, 0x45, 0x88, 0xd1, 0x41, 0xdd, 0x9b, 0x58, 0x08, 0x67, 0x4e, 0xa5, 0xee, 0x3d, 0xac, 0x1a, -0x9f, 0x17, 0xe8, 0x1e, 0xc3, 0x6a, 0xb1, 0xb7, 0x65, 0x6d, 0xb1, 0xee, 0x65, 0x4c, 0xc1, 0x37, -0xf5, 0xba, 0x5f, 0xb1, 0xa5, 0xf8, 0xdc, 0xa4, 0xfb, 0x12, 0x8b, 0x61, 0x3b, 0x4d, 0x56, 0x4d, -0xbe, 0x66, 0xea, 0x39, 0x1f, 0xf6, 0x20, 0xe6, 0xd2, 0xa6, 0xfb, 0x02, 0xeb, 0xc0, 0x91, 0xb2, -0xfa, 0xcb, 0xbf, 0x0a, 0x66, 0x20, 0x4f, 0x9a, 0x81, 0x25, 0xeb, 0xd4, 0x7d, 0x7e, 0xc5, 0xd9, -0x37, 0x16, 0x2a, 0x5b, 0xc2, 0x53, 0x06, 0xbe, 0x5d, 0xad, 0x7b, 0x3d, 0xeb, 0x45, 0x6a, 0xb0, -0x5e, 0xf7, 0xfc, 0xd5, 0x87, 0x39, 0x6d, 0xd1, 0x3d, 0x82, 0x6d, 0xc5, 0xe7, 0xc7, 0x74, 0x6f, -0x68, 0x8f, 0xe7, 0x95, 0x69, 0x4f, 0xe8, 0x1e, 0xcc, 0xb6, 0x61, 0xf8, 0x33, 0xba, 0xe7, 0xaf, -0x7e, 0x7c, 0x66, 0x1e, 0xc5, 0xf0, 0xda, 0x3b, 0xf7, 0x7d, 0x6d, 0x00, 0x57, 0x92, 0x22, 0x66, -0x59, 0xfb, 0x12, 0xf7, 0x73, 0xf3, 0xb9, 0xd3, 0x98, 0x6b, 0xae, 0x34, 0x2f, 0x26, 0xe8, 0x2d, -0xf6, 0x78, 0x8c, 0xf4, 0xc8, 0x77, 0x63, 0x5d, 0x73, 0xb5, 0xbd, 0xe4, 0xb5, 0x93, 0x8d, 0xea, -0x5c, 0x67, 0x72, 0x17, 0x28, 0xec, 0xd7, 0xb1, 0xbe, 0xb9, 0x8f, 0x56, 0x1b, 0xd3, 0xb0, 0xd8, -0xc2, 0x6c, 0x1d, 0xb1, 0x3f, 0xa2, 0x91, 0xda, 0xd5, 0x38, 0x77, 0x57, 0x37, 0x80, 0x30, 0x70, -0x7c, 0xb5, 0xef, 0xf6, 0x10, 0x9f, 0xbb, 0x85, 0x48, 0x67, 0x44, 0xc8, 0x16, 0x76, 0x82, 0x75, -0x7a, 0x27, 0x5c, 0x36, 0x9c, 0xc6, 0x3e, 0xf7, 0xb0, 0xa7, 0x8b, 0xf8, 0x24, 0xd1, 0x53, 0x86, -0x11, 0x9f, 0x72, 0xd8, 0x93, 0x83, 0xce, 0x5c, 0xd9, 0x93, 0x4c, 0x18, 0xf6, 0xd3, 0x83, 0x4c, -0x13, 0xde, 0x3e, 0x1d, 0x67, 0x1b, 0xe4, 0x4c, 0x27, 0x1f, 0x4c, 0xb9, 0xf8, 0x17, 0x53, 0x0c, -0x67, 0x44, 0xc5, 0x98, 0x40, 0x16, 0x41, 0xfa, 0x4c, 0xda, 0x1a, 0xe5, 0xf6, 0x7f, 0x8f, 0x53, -0x1b, 0x4e, 0xa7, 0xfd, 0xf3, 0x1c, 0xfc, 0x92, 0xbd, 0x4d, 0x48, 0xa0, 0x58, 0xa9, 0x1d, 0xdc, -0xfb, 0x23, 0xc5, 0xb8, 0xce, 0x97, 0x32, 0x4b, 0xd7, 0xc5, 0x7a, 0x86, 0x38, 0x8e, 0xec, 0xa4, -0x76, 0x76, 0xb1, 0x0b, 0xcb, 0xf1, 0xda, 0xa1, 0xd7, 0x0e, 0xa5, 0x21, 0x1c, 0x12, 0x56, 0xed, -0x62, 0xaf, 0x47, 0xf7, 0xb3, 0xe3, 0xb9, 0xbe, 0x9f, 0x9d, 0x6f, 0x1f, 0x92, 0x26, 0xc4, 0x16, -0x1f, 0x8d, 0xb7, 0x2f, 0x3e, 0xf6, 0xac, 0x96, 0xc5, 0xd2, 0xe4, 0x16, 0x8e, 0xc6, 0xfe, 0x07, -0x75, 0x0c, 0xed, 0x8c, 0x14, 0x86, 0x36, 0xe3, 0x65, 0x45, 0xe6, 0x85, 0x67, 0xb2, 0xe4, 0x49, -0xfa, 0xe0, 0xf1, 0x24, 0x7d, 0xf0, 0x30, 0x9f, 0xab, 0xae, 0x3c, 0xb0, 0x4a, 0x84, 0xe2, 0xc9, -0x2c, 0xbd, 0xf9, 0xf8, 0x53, 0xec, 0x1d, 0x9a, 0x62, 0x25, 0xca, 0x41, 0xf4, 0x86, 0xd1, 0xac, -0x0c, 0x99, 0xdb, 0x4d, 0x66, 0x93, 0x4d, 0x31, 0xf5, 0xba, 0xde, 0xe3, 0x3b, 0x94, 0xec, 0x0e, -0x2d, 0x11, 0x53, 0xb1, 0xf0, 0x67, 0x8a, 0x83, 0x29, 0xe5, 0x47, 0x2d, 0xc9, 0xba, 0x9f, 0xc0, -0xdf, 0x3e, 0xf6, 0x5b, 0x4c, 0xfe, 0x76, 0xe1, 0x9e, 0x85, 0xbc, 0x6d, 0x85, 0xb9, 0x45, 0x35, -0xa6, 0x6b, 0x64, 0x5c, 0xf5, 0x19, 0x7d, 0x4d, 0x95, 0x9c, 0x63, 0x7c, 0x6b, 0x1f, 0xeb, 0x21, -0x6d, 0xd6, 0x70, 0x5f, 0x33, 0xed, 0x95, 0xb5, 0x1d, 0xdd, 0xaa, 0x15, 0xd7, 0x07, 0x87, 0x6a, -0x8a, 0x6c, 0xc3, 0xbd, 0x0d, 0x21, 0x78, 0xdb, 0x77, 0x30, 0xbd, 0x5f, 0xe6, 0x71, 0xeb, 0x77, -0xb0, 0x25, 0x06, 0x8a, 0x58, 0xf3, 0xc0, 0xd4, 0x0a, 0x26, 0xef, 0xee, 0xc6, 0x7d, 0x80, 0x2b, -0x81, 0xa1, 0x74, 0x63, 0x77, 0x2f, 0xf9, 0x14, 0xe7, 0x3b, 0x42, 0x6b, 0xd2, 0x06, 0x45, 0xc7, -0xfd, 0x09, 0x77, 0x45, 0x2d, 0xa5, 0x43, 0xda, 0x07, 0x48, 0xbf, 0x4c, 0xb4, 0xd2, 0xb3, 0x50, -0x0b, 0xc9, 0xcf, 0xfe, 0x26, 0xc2, 0xe5, 0xe7, 0xd9, 0xfc, 0xe0, 0x16, 0xc1, 0xef, 0x33, 0x84, -0x4b, 0x43, 0x2a, 0xe4, 0x5c, 0x56, 0x0a, 0x1b, 0x05, 0xf7, 0xa9, 0x9e, 0xab, 0x50, 0x0f, 0x6e, -0xb8, 0x1a, 0xe1, 0x92, 0x64, 0x78, 0x41, 0x3f, 0x97, 0xbc, 0xc9, 0x5f, 0x1b, 0x6b, 0x2f, 0x4a, -0xfb, 0xe9, 0x58, 0xee, 0x40, 0xd7, 0x58, 0xcf, 0xe8, 0x4c, 0x9f, 0x6d, 0x8c, 0x6f, 0x74, 0x66, -0x03, 0x3a, 0xc6, 0x3b, 0x3a, 0x3f, 0xa7, 0x26, 0xc9, 0xed, 0x68, 0x7b, 0xcf, 0xd1, 0xf2, 0xdc, -0x71, 0xaf, 0x5d, 0xcb, 0xde, 0x93, 0xcb, 0x74, 0x13, 0xd8, 0xa4, 0x4a, 0x4e, 0xc2, 0xce, 0x93, -0x9d, 0xc8, 0xbf, 0xcd, 0x70, 0x79, 0x46, 0xdb, 0x75, 0xbe, 0xc1, 0x10, 0xa4, 0x98, 0x4d, 0xb7, -0x48, 0xe8, 0x87, 0x66, 0xb2, 0x6e, 0x69, 0x9e, 0x12, 0x26, 0xed, 0x89, 0x1b, 0xdb, 0xc0, 0x41, -0x67, 0x37, 0x07, 0xc2, 0xf1, 0x26, 0xe4, 0xaf, 0x70, 0xf6, 0x18, 0x15, 0x63, 0xe4, 0x69, 0xc2, -0x7b, 0x0d, 0x19, 0x13, 0x08, 0x0e, 0xbe, 0x02, 0x6f, 0x09, 0x38, 0x08, 0xa7, 0xd4, 0x5b, 0x05, -0xb9, 0x62, 0x40, 0x2a, 0x2d, 0x1b, 0xd2, 0x76, 0x92, 0x87, 0xd4, 0x64, 0x8d, 0x3e, 0x22, 0xe9, -0x0a, 0x61, 0x95, 0xa4, 0x70, 0x15, 0xae, 0xd2, 0xd8, 0x3e, 0x90, 0xd0, 0xcc, 0x29, 0x9a, 0x43, -0x96, 0xf7, 0xf8, 0xc6, 0x53, 0xe4, 0x05, 0xf2, 0xba, 0x2a, 0x33, 0x0f, 0x25, 0x0e, 0xe6, 0xb7, -0xa4, 0xd7, 0x15, 0x66, 0xfe, 0x42, 0x1f, 0xad, 0xde, 0x38, 0xf7, 0xac, 0xa6, 0xb5, 0x8e, 0xdf, -0x11, 0x6f, 0x36, 0x11, 0x4e, 0xa7, 0x62, 0xc4, 0xbf, 0x9f, 0xbf, 0x89, 0x59, 0x36, 0x91, 0x16, -0xae, 0x0c, 0xea, 0xd1, 0x70, 0x30, 0x6a, 0x99, 0x7b, 0x4e, 0x1b, 0xb9, 0xb9, 0x13, 0x66, 0x6a, -0x23, 0x64, 0x31, 0xde, 0xc9, 0xfd, 0x0c, 0x60, 0xa9, 0x8b, 0x8a, 0xa4, 0x66, 0x30, 0x8b, 0xcd, -0xb8, 0x61, 0x9e, 0x09, 0x0e, 0xe7, 0x4c, 0xc8, 0x09, 0xcc, 0xd4, 0x34, 0x71, 0x12, 0xf1, 0xfc, -0x52, 0x97, 0xe4, 0x47, 0x7a, 0x8e, 0x1c, 0x9e, 0xcb, 0x5f, 0x71, 0x4e, 0x1b, 0x94, 0xec, 0x52, -0x89, 0x38, 0xa9, 0xb6, 0x4b, 0xec, 0xc2, 0x76, 0x30, 0x05, 0xe3, 0xad, 0x24, 0xe7, 0x2d, 0xf1, -0x66, 0xf8, 0x4a, 0x98, 0x4f, 0xd4, 0x99, 0xcc, 0xae, 0x58, 0x23, 0x8d, 0x1d, 0x26, 0x59, 0x73, -0xb4, 0xc1, 0xdc, 0x21, 0x6d, 0x8a, 0x32, 0xd9, 0x4b, 0xab, 0x42, 0x16, 0xc6, 0x30, 0x56, 0x6d, -0x8e, 0x74, 0x33, 0x6a, 0xeb, 0xa6, 0x5d, 0x54, 0x64, 0xdd, 0x4f, 0xf7, 0xad, 0x38, 0x45, 0x27, -0x12, 0xb9, 0xb9, 0xc9, 0xf3, 0xae, 0x93, 0xa4, 0xa7, 0xee, 0x12, 0xbc, 0x01, 0x08, 0xce, 0xfb, -0x10, 0x2a, 0xf3, 0x32, 0x02, 0x73, 0xdb, 0x08, 0x01, 0xec, 0xd8, 0xca, 0xe0, 0xeb, 0x1b, 0x31, -0xbd, 0x70, 0x67, 0xe9, 0x89, 0x8d, 0x15, 0x43, 0x23, 0x27, 0xef, 0x98, 0x0b, 0x05, 0xb4, 0x93, -0x44, 0x0e, 0x76, 0x9a, 0x0a, 0x86, 0x36, 0x92, 0x0b, 0x7b, 0x2b, 0x20, 0x88, 0x6b, 0xa0, 0x80, -0x61, 0xb5, 0x48, 0xbb, 0xdb, 0xeb, 0x6a, 0xf1, 0xe9, 0x8b, 0xf8, 0x54, 0x57, 0x57, 0x88, 0x4f, -0x15, 0xf8, 0xd4, 0x54, 0x37, 0x05, 0x9f, 0x4a, 0xf1, 0xa9, 0xa0, 0x0e, 0x0c, 0x73, 0xc2, 0xa4, -0x33, 0x49, 0x88, 0x98, 0x32, 0xa6, 0xe1, 0xc3, 0xf4, 0x48, 0x6f, 0xba, 0x0a, 0x9f, 0x65, 0xdc, -0x3b, 0xd1, 0xd7, 0x0b, 0x90, 0xd7, 0x7f, 0x14, 0xef, 0x77, 0x12, 0x0a, 0x38, 0xde, 0x6b, 0xf0, -0x9d, 0x59, 0xa9, 0xc4, 0xa7, 0x16, 0xc2, 0xb0, 0xab, 0xcb, 0xc5, 0xa7, 0x65, 0xf8, 0x44, 0xfa, -0xe1, 0x2b, 0xf0, 0x2e, 0xe3, 0x7d, 0x09, 0xee, 0x89, 0x4e, 0x13, 0x4a, 0x3b, 0x3e, 0xb7, 0x45, -0x17, 0xb2, 0x9d, 0xe0, 0x3d, 0x18, 0x36, 0xa8, 0x50, 0xac, 0x7b, 0x31, 0x16, 0x21, 0x71, 0x76, -0x60, 0xc8, 0x8b, 0x14, 0x0b, 0x47, 0x45, 0x08, 0x77, 0xbe, 0xf6, 0xda, 0x38, 0x9d, 0xbf, 0x86, -0x7b, 0x54, 0xb2, 0x43, 0x3a, 0xe6, 0xd5, 0xb5, 0x7b, 0x59, 0xbb, 0x6d, 0xe2, 0xed, 0x26, 0x95, -0x46, 0x7a, 0xec, 0x37, 0xab, 0x98, 0xb6, 0xf0, 0x38, 0xd6, 0xd7, 0x40, 0xf5, 0x5d, 0x05, 0x53, -0x5c, 0x60, 0x88, 0x0d, 0xbe, 0x41, 0x9a, 0x9c, 0x21, 0xae, 0xf5, 0x81, 0x39, 0x3c, 0xda, 0x0e, -0x8a, 0xc3, 0x6b, 0xc3, 0x96, 0xbf, 0xad, 0x48, 0xd0, 0xd3, 0xe8, 0x61, 0x68, 0x42, 0x19, 0x83, -0xdd, 0x14, 0x93, 0x5b, 0xf9, 0xb5, 0x22, 0xbf, 0xbf, 0xa3, 0x67, 0xc5, 0xb1, 0xda, 0x5e, 0x6f, -0x08, 0x42, 0x84, 0x3f, 0xc3, 0xec, 0x40, 0x44, 0x9e, 0x27, 0xff, 0xe2, 0xc5, 0x9e, 0x15, 0x67, -0x31, 0xc7, 0x7c, 0x86, 0x13, 0x51, 0x29, 0xda, 0x89, 0xc3, 0x60, 0x96, 0x65, 0x18, 0xa3, 0xf6, -0x79, 0x58, 0x80, 0xef, 0x4c, 0x38, 0x92, 0xe9, 0x24, 0x94, 0xe9, 0x03, 0xb1, 0x27, 0xbb, 0x62, -0xd6, 0x9f, 0x2c, 0xde, 0x89, 0xde, 0xcc, 0xaa, 0xcd, 0x47, 0xe3, 0x1c, 0xfb, 0x08, 0xde, 0xc6, -0x11, 0x1f, 0xe2, 0x23, 0x09, 0x67, 0x4c, 0x28, 0x7d, 0x2c, 0x05, 0xbc, 0x50, 0xea, 0xb5, 0xf1, -0xf1, 0x94, 0xc0, 0x9a, 0x65, 0xb6, 0x50, 0x0e, 0xaa, 0xcb, 0x27, 0xb5, 0x07, 0xf4, 0x25, 0xda, -0x03, 0x6b, 0x8c, 0xed, 0xe1, 0xeb, 0xd4, 0x06, 0x0f, 0x0f, 0x60, 0x9d, 0x0a, 0xa9, 0x75, 0x25, -0xbf, 0x34, 0x89, 0xb7, 0x2e, 0xb3, 0x62, 0x11, 0x12, 0x69, 0xe7, 0x83, 0xc8, 0x46, 0x2a, 0xb6, -0x95, 0xcc, 0xda, 0x2a, 0x87, 0x52, 0x27, 0x7d, 0xd6, 0x44, 0x0e, 0x4c, 0x93, 0x76, 0x6e, 0x18, -0xdb, 0x30, 0xea, 0x89, 0xf4, 0xec, 0x7a, 0x1e, 0x0a, 0x9b, 0x8f, 0x29, 0x12, 0xd6, 0x3a, 0xa4, -0xe4, 0x5e, 0xab, 0x44, 0x8a, 0xe9, 0x0e, 0xe4, 0x8c, 0xa0, 0x20, 0xf2, 0x3c, 0x04, 0xf1, 0xdb, -0x20, 0xee, 0xee, 0xac, 0xe1, 0x16, 0x28, 0x88, 0xc2, 0x95, 0xda, 0x04, 0x7a, 0x0f, 0xf3, 0x58, -0x23, 0xa6, 0x30, 0x80, 0x8b, 0x0a, 0x9c, 0x82, 0x6b, 0x8c, 0xfd, 0x88, 0x77, 0x29, 0x3c, 0x8e, -0x73, 0x91, 0xfc, 0x5f, 0x05, 0x81, 0x64, 0x81, 0x01, 0x42, 0x94, 0xf8, 0xd7, 0x2d, 0x48, 0x4f, -0x72, 0x46, 0xd1, 0x93, 0x5c, 0x3a, 0x21, 0x4d, 0xd2, 0x13, 0xc3, 0x55, 0x1e, 0x1f, 0x88, 0x72, -0x3b, 0xae, 0x75, 0xe6, 0xc4, 0xcf, 0xa9, 0x74, 0x9a, 0xdd, 0x02, 0xf6, 0x6b, 0x9e, 0x6a, 0x15, -0x89, 0x4b, 0x61, 0x27, 0x93, 0x8e, 0x26, 0xfd, 0xbc, 0x30, 0xcc, 0x6d, 0x33, 0x61, 0x6e, 0xab, -0x1e, 0x25, 0x07, 0xdb, 0xcc, 0x0d, 0x37, 0x48, 0x86, 0xb7, 0x9e, 0x12, 0x85, 0x94, 0xd7, 0x66, -0xac, 0xa9, 0x20, 0xa6, 0xbc, 0xac, 0xaf, 0x47, 0xde, 0xe2, 0x18, 0x3b, 0x69, 0xb2, 0xe8, 0x34, -0x7d, 0xb4, 0xe7, 0x04, 0xa6, 0xcb, 0x80, 0x74, 0xa3, 0xbd, 0x36, 0xe9, 0x2f, 0xfc, 0x7f, 0x60, -0x2b, 0xf3, 0xe5, 0xb1, 0xb6, 0x32, 0x84, 0x13, 0x94, 0xb0, 0xbd, 0x99, 0x43, 0xeb, 0x80, 0xc1, -0x4d, 0xeb, 0xe8, 0x7e, 0x0f, 0xd9, 0x5f, 0x65, 0x3b, 0x26, 0x4b, 0x26, 0x8e, 0xc3, 0xca, 0x24, -0x67, 0x07, 0xe8, 0x5c, 0x23, 0xd2, 0xb3, 0xbb, 0x47, 0x7d, 0x5b, 0xcc, 0x48, 0xc7, 0xf5, 0xc5, -0x3e, 0x3a, 0x14, 0x7a, 0xa7, 0x78, 0x0e, 0xb6, 0xd1, 0x62, 0xb7, 0x17, 0x14, 0x97, 0x17, 0xea, -0x39, 0x6e, 0xe4, 0xdc, 0xf3, 0xbd, 0x42, 0x98, 0xbc, 0x98, 0x17, 0xa6, 0xed, 0x02, 0x26, 0xb0, -0x5d, 0x00, 0xd9, 0xb4, 0x5e, 0x74, 0xf9, 0x9d, 0x69, 0xbc, 0x7f, 0xb8, 0x27, 0x4a, 0xa8, 0x77, -0x66, 0x1d, 0x67, 0x4e, 0x64, 0x5f, 0x5a, 0xb9, 0xce, 0x98, 0xd6, 0x98, 0x0c, 0x29, 0xe6, 0x21, -0xc3, 0xdf, 0x71, 0x42, 0xd4, 0x47, 0x7b, 0xb6, 0x73, 0x5f, 0x6e, 0x1b, 0x49, 0x7a, 0xa5, 0x99, -0xa2, 0x7b, 0xa5, 0xe9, 0x76, 0xfa, 0xb9, 0xdd, 0x3b, 0xff, 0x52, 0x4f, 0xa5, 0x9b, 0x52, 0xc0, -0xb9, 0xff, 0x44, 0x78, 0x4d, 0x54, 0x3f, 0x55, 0xc8, 0x88, 0x93, 0x5d, 0x9e, 0x4a, 0x73, 0x74, -0x83, 0xab, 0x11, 0x5c, 0xc4, 0xdd, 0xad, 0x84, 0xc9, 0x0e, 0x31, 0x73, 0x61, 0x7c, 0xb4, 0xc4, -0xf3, 0xf4, 0x83, 0xf8, 0x65, 0x23, 0x52, 0x87, 0x1e, 0xb7, 0xff, 0x77, 0x03, 0x73, 0xdf, 0x07, -0xa1, 0xe4, 0x1c, 0x08, 0xd2, 0x3c, 0x31, 0x73, 0xd4, 0x4e, 0x6b, 0x76, 0x2d, 0x44, 0xd6, 0x4c, -0x5e, 0x13, 0xf8, 0x6c, 0x2d, 0x59, 0xbd, 0xc8, 0x0b, 0xc8, 0x0f, 0x18, 0xee, 0x4e, 0x18, 0x2a, -0x04, 0x59, 0x44, 0x8a, 0xba, 0x9f, 0x6c, 0xc6, 0xbd, 0x83, 0x8c, 0x73, 0xc9, 0xa5, 0xfb, 0xc6, -0xf3, 0x78, 0xf1, 0x2d, 0x47, 0xfd, 0xce, 0x38, 0xcb, 0x51, 0xbf, 0x75, 0x8f, 0x78, 0xc5, 0xdc, -0xb7, 0x01, 0x7e, 0x27, 0x30, 0xfd, 0x11, 0xee, 0x33, 0x2f, 0x88, 0xf1, 0x1d, 0x38, 0x63, 0xb9, -0xa7, 0xbc, 0x4a, 0xfc, 0x95, 0xc3, 0x7d, 0xe1, 0xb5, 0xca, 0x47, 0x38, 0xe6, 0x96, 0x2d, 0x71, -0x8a, 0x46, 0xde, 0x60, 0xdc, 0x10, 0xcd, 0x65, 0x5c, 0x7d, 0x90, 0x73, 0xf5, 0xec, 0xd4, 0xa2, -0x2c, 0xe5, 0x8b, 0xe5, 0x58, 0x0f, 0xd9, 0xf5, 0xa5, 0xe9, 0xda, 0x75, 0x4e, 0x2f, 0x65, 0x3a, -0x7c, 0xb9, 0x90, 0x23, 0x5a, 0x4e, 0xf7, 0xe2, 0xaa, 0x9e, 0x3b, 0xbd, 0x0c, 0x77, 0xf1, 0xe7, -0x60, 0xb1, 0x54, 0x93, 0xd2, 0x07, 0x48, 0xa5, 0x31, 0x12, 0x4f, 0x7b, 0x5e, 0xff, 0x49, 0x69, -0x23, 0xef, 0x60, 0x55, 0x4d, 0xa4, 0xc1, 0xfb, 0xed, 0x43, 0x8c, 0x3b, 0x65, 0x56, 0xcc, 0x8c, -0xe7, 0x35, 0xc5, 0x16, 0x0f, 0xae, 0xe7, 0xa7, 0x88, 0x9d, 0x74, 0x5e, 0x51, 0x78, 0x6d, 0x3e, -0x40, 0x3b, 0x95, 0x90, 0xd1, 0x8e, 0x30, 0x19, 0xad, 0x7b, 0x26, 0x98, 0xf3, 0x67, 0x82, 0xd5, -0x3e, 0x13, 0x6e, 0x2c, 0xf2, 0x13, 0x26, 0x56, 0xc6, 0xfb, 0x8c, 0x6b, 0xfb, 0x17, 0x9c, 0x37, -0xfb, 0x74, 0xbc, 0xa0, 0x48, 0x52, 0x13, 0xec, 0x74, 0xfb, 0xa7, 0xca, 0x33, 0x38, 0xae, 0xb5, -0x13, 0x12, 0xb8, 0x40, 0xdc, 0x76, 0x54, 0xf5, 0xc4, 0x32, 0xd2, 0x3d, 0x93, 0x47, 0xed, 0x25, -0xef, 0x8f, 0x9c, 0x8e, 0x7d, 0xaa, 0x1c, 0x5a, 0xb9, 0x2e, 0xcd, 0x28, 0x2f, 0xdc, 0x31, 0xd3, -0xc0, 0xfd, 0x24, 0x6f, 0x25, 0x8b, 0x53, 0x36, 0x1a, 0x1f, 0x61, 0x69, 0x35, 0x92, 0x7f, 0x5a, -0x58, 0x4b, 0xfb, 0xd8, 0x73, 0x8b, 0x82, 0xff, 0x19, 0xcd, 0x62, 0x4f, 0xcb, 0xcc, 0xe3, 0x68, -0x5d, 0x67, 0xcf, 0x8d, 0x69, 0x65, 0xfc, 0x3e, 0x96, 0x91, 0x46, 0x6e, 0x19, 0xe7, 0x94, 0xd9, -0x9b, 0x0f, 0x92, 0x6f, 0x8c, 0xfa, 0x9b, 0xa3, 0x4e, 0x7f, 0xc2, 0x2f, 0xbb, 0xa4, 0xeb, 0x28, -0xb9, 0xf8, 0x1b, 0xb3, 0x6e, 0x79, 0xf7, 0x3a, 0x8e, 0x73, 0x16, 0x53, 0xaf, 0x51, 0x3d, 0xe1, -0xb1, 0xa6, 0xe5, 0x43, 0xfe, 0x45, 0x76, 0xa5, 0x4e, 0xf5, 0x04, 0x51, 0x4f, 0x79, 0xbd, 0x7e, -0x5f, 0xeb, 0xa1, 0x55, 0xa5, 0x9b, 0xc5, 0xfd, 0x63, 0xa8, 0x79, 0xe4, 0x34, 0xdf, 0x27, 0xb2, -0xf8, 0x6b, 0xa3, 0x04, 0x07, 0x8a, 0x9b, 0x14, 0x3a, 0x9d, 0x48, 0xa6, 0xf8, 0x12, 0xa6, 0x58, -0x9f, 0xcf, 0x5a, 0x57, 0x31, 0xac, 0x02, 0xd1, 0x2a, 0x99, 0xc8, 0x4a, 0x21, 0x5a, 0x40, 0xb3, -0xbc, 0xe3, 0xff, 0x94, 0x1b, 0xb9, 0xfd, 0x26, 0x8e, 0xb5, 0x7c, 0x2c, 0xb3, 0xde, 0xf6, 0x2c, -0x6c, 0xbb, 0x64, 0x6a, 0x83, 0x40, 0x46, 0xc2, 0xc2, 0x53, 0xb1, 0x8d, 0x7e, 0xab, 0xef, 0xce, -0x0f, 0x91, 0xdf, 0xed, 0x73, 0xaf, 0x71, 0x9f, 0xd7, 0xe0, 0xd1, 0x8e, 0x92, 0x4f, 0x60, 0xf6, -0x7c, 0xab, 0x76, 0x02, 0x9f, 0x99, 0xcf, 0x6b, 0x98, 0xca, 0xe4, 0xdb, 0xcc, 0xe7, 0x35, 0x48, -0xda, 0xb9, 0xbc, 0x72, 0xed, 0x3c, 0x7b, 0xce, 0xd3, 0x2e, 0xe6, 0xcd, 0xd5, 0x2e, 0xd1, 0xfe, -0xab, 0x15, 0xda, 0x0e, 0x1d, 0x7d, 0x88, 0xa1, 0x42, 0xfd, 0x3b, 0x93, 0x0c, 0xe3, 0x8e, 0xab, -0x1f, 0x3b, 0x31, 0xb5, 0xe3, 0xe2, 0x6d, 0xa8, 0x9d, 0x48, 0xa2, 0x44, 0x61, 0x8c, 0x49, 0x90, -0xe6, 0xd7, 0x67, 0x0b, 0xdb, 0xdf, 0xe8, 0x32, 0xc3, 0x2f, 0x14, 0x20, 0x9d, 0x93, 0x25, 0xc2, -0x36, 0x62, 0x94, 0x85, 0xfa, 0xfe, 0xfd, 0xe8, 0x68, 0x14, 0x3c, 0x1a, 0x13, 0xad, 0x86, 0x40, -0x80, 0xcf, 0x38, 0xa6, 0x9d, 0xb7, 0x52, 0xca, 0x94, 0x21, 0x69, 0xe1, 0xbf, 0x08, 0xb9, 0xee, -0x4e, 0x31, 0x23, 0x12, 0x4f, 0x3f, 0x3b, 0x64, 0x33, 0x13, 0xf3, 0xbe, 0x5f, 0x18, 0x55, 0xba, -0x4c, 0x7d, 0x96, 0x1c, 0x0b, 0xc7, 0x5b, 0xa4, 0xc0, 0x67, 0xcd, 0x40, 0xed, 0xff, 0x7e, 0x2b, -0xdf, 0xcb, 0xdf, 0xbe, 0x85, 0x59, 0x62, 0xdb, 0x5a, 0xf3, 0xca, 0x05, 0x6e, 0xf7, 0xcf, 0x50, -0x55, 0x85, 0x56, 0x03, 0xc7, 0x61, 0xa5, 0x9d, 0x5f, 0xa0, 0x34, 0x81, 0xb4, 0x47, 0x6f, 0x18, -0x2e, 0xc0, 0x5e, 0x1d, 0x4f, 0xbd, 0x05, 0xcc, 0xfc, 0x5c, 0x80, 0x69, 0xe2, 0x20, 0xa5, 0x6a, -0xca, 0x25, 0x34, 0x75, 0x86, 0x99, 0x9e, 0x65, 0x2f, 0x30, 0x8f, 0x30, 0x7b, 0x55, 0x76, 0x36, -0x14, 0x35, 0x04, 0xec, 0x32, 0x47, 0x42, 0xf0, 0x82, 0xd9, 0x44, 0xde, 0x10, 0xb3, 0xc6, 0x22, -0xb7, 0xa4, 0x30, 0x59, 0x53, 0x33, 0x9e, 0xc2, 0xc8, 0x4b, 0xe6, 0x1d, 0x84, 0x99, 0x55, 0xe4, -0xf1, 0xb2, 0xd5, 0xdf, 0x1f, 0xe8, 0x4b, 0x69, 0x00, 0x45, 0x46, 0xd1, 0x5b, 0x6a, 0x3d, 0x61, -0x2f, 0xd3, 0x88, 0x60, 0xfa, 0x9f, 0xe4, 0x45, 0x55, 0x5b, 0xc8, 0x6c, 0xcf, 0x33, 0xb9, 0xed, -0xb9, 0x6e, 0xd5, 0x6c, 0x21, 0xef, 0x87, 0xb2, 0xbf, 0x4d, 0x50, 0x4c, 0x62, 0x99, 0x5c, 0xd6, -0x96, 0xe1, 0xca, 0x44, 0x1a, 0x98, 0xbf, 0x0a, 0x68, 0x1f, 0xf0, 0x4f, 0xfd, 0x8a, 0x35, 0xb2, -0x4e, 0x0c, 0xbb, 0x2c, 0xde, 0x79, 0x90, 0xdf, 0x96, 0xc1, 0xb0, 0xe1, 0xbd, 0xaa, 0xc3, 0x1a, -0x80, 0x8c, 0xa8, 0x8a, 0x7f, 0x05, 0xf6, 0xd7, 0x10, 0x6d, 0x52, 0x94, 0x30, 0xa8, 0x36, 0x16, -0xbe, 0x88, 0xc2, 0xd5, 0x45, 0xca, 0x22, 0x8c, 0x7b, 0x2b, 0x93, 0x3d, 0xaf, 0x8a, 0xfa, 0xf0, -0xef, 0x57, 0xa3, 0x6e, 0xfc, 0xfb, 0xcf, 0x51, 0xe2, 0x60, 0xef, 0x88, 0x12, 0x97, 0xec, 0x8e, -0x92, 0x0d, 0xa4, 0x2b, 0x4a, 0xf6, 0xbc, 0x33, 0xa2, 0x56, 0xfc, 0xdb, 0xc9, 0x24, 0xc6, 0xd3, -0xd4, 0x2c, 0x96, 0x76, 0x4e, 0x9b, 0x41, 0x31, 0xcb, 0x21, 0xf2, 0x6c, 0x25, 0x87, 0x22, 0xbd, -0x4a, 0x3c, 0xf1, 0x2c, 0x86, 0x1f, 0xde, 0xef, 0x34, 0xb3, 0x9c, 0x8d, 0x0b, 0x7a, 0x14, 0xe3, -0xc2, 0x9e, 0x63, 0x3d, 0x3a, 0xfe, 0xd1, 0x36, 0xa7, 0xbf, 0x9a, 0x23, 0x95, 0x5e, 0xa8, 0x78, -0x4f, 0x98, 0xc4, 0xca, 0x32, 0x39, 0x9c, 0x15, 0x75, 0x39, 0x70, 0x4f, 0x10, 0xc0, 0xcb, 0x4b, -0xf6, 0x13, 0x8f, 0xdc, 0x84, 0xe1, 0xd5, 0x1b, 0x95, 0xa5, 0xe1, 0x2c, 0x35, 0x5b, 0x32, 0xca, -0x4c, 0xe7, 0x73, 0x78, 0x76, 0x21, 0xa8, 0xf9, 0xfc, 0xbd, 0x72, 0xea, 0x96, 0x46, 0xec, 0x95, -0xcf, 0xd2, 0x17, 0xa3, 0xde, 0x9b, 0xf9, 0xfb, 0xea, 0x8d, 0xdc, 0x47, 0xa2, 0x35, 0x80, 0x3b, -0x3d, 0x1b, 0xd3, 0xc7, 0xdc, 0x33, 0x52, 0x59, 0xbd, 0xb1, 0xad, 0x55, 0x59, 0x19, 0x0e, 0x44, -0xed, 0x90, 0x47, 0x78, 0x2e, 0x22, 0xf9, 0x03, 0x23, 0xfb, 0x51, 0x7b, 0x68, 0xb9, 0x30, 0xa9, -0x6a, 0xcf, 0x95, 0xa3, 0xb5, 0x1b, 0xc3, 0xd8, 0xba, 0x51, 0xc6, 0xf7, 0x89, 0x0f, 0x12, 0xb6, -0x87, 0x62, 0xc8, 0x9f, 0x80, 0xa5, 0x80, 0x91, 0xad, 0x6d, 0xa0, 0xcc, 0xa1, 0x5e, 0x15, 0xef, -0x57, 0xdc, 0xab, 0x90, 0xb1, 0xd7, 0xbf, 0xb6, 0x33, 0xeb, 0x91, 0x1c, 0x71, 0x6e, 0xd9, 0xd0, -0x95, 0xb3, 0xc8, 0x75, 0x94, 0x3a, 0xed, 0x5e, 0x13, 0xb7, 0x1a, 0x41, 0x5e, 0xfe, 0x3c, 0xe7, -0xf8, 0x08, 0xfd, 0xba, 0x2d, 0x9a, 0xf2, 0xa6, 0x8d, 0x6b, 0x44, 0x77, 0x74, 0x87, 0xb2, 0x97, -0x34, 0x0c, 0x69, 0x6f, 0xe7, 0x66, 0xfa, 0xee, 0x82, 0x31, 0x66, 0x1d, 0x24, 0xf4, 0x1b, 0x20, -0x54, 0x94, 0x34, 0xea, 0xd4, 0x08, 0x59, 0xd1, 0x70, 0xc0, 0x2d, 0xe4, 0x38, 0x23, 0x1d, 0x50, -0x71, 0x56, 0xc8, 0x51, 0x7c, 0xb3, 0xdc, 0x90, 0x15, 0xfa, 0x15, 0xf9, 0xce, 0x24, 0x04, 0x98, -0x92, 0xf7, 0xe8, 0x1c, 0xb9, 0x04, 0x5b, 0x54, 0xb2, 0xca, 0x66, 0x66, 0x8d, 0xb3, 0x21, 0xec, -0x57, 0xcd, 0x1c, 0x1f, 0xce, 0x05, 0xce, 0x1a, 0x6e, 0x61, 0x11, 0x5e, 0x1d, 0x7d, 0x89, 0xf0, -0xa6, 0x08, 0x2f, 0x64, 0x71, 0xf1, 0xb5, 0xf1, 0xe0, 0xbe, 0xc2, 0xc6, 0xb1, 0xb3, 0x05, 0x0a, -0xb1, 0x54, 0x45, 0xa3, 0xf1, 0xde, 0xf2, 0xf3, 0xc0, 0x1c, 0x13, 0xfa, 0xef, 0x6f, 0x52, 0xbd, -0xcd, 0xd0, 0x0f, 0x1e, 0xcf, 0x44, 0xb2, 0x13, 0x85, 0x7e, 0xc2, 0x83, 0x20, 0xbb, 0xf6, 0x0e, -0xc0, 0xfd, 0xe4, 0x6c, 0xb9, 0x19, 0x7a, 0x9d, 0xe5, 0xae, 0xb9, 0x62, 0x31, 0x5c, 0xbe, 0xe1, -0x54, 0xc2, 0x4b, 0x0b, 0x9d, 0x0d, 0xb7, 0x48, 0xbc, 0x44, 0x52, 0x5a, 0xbc, 0xd1, 0xb1, 0xbe, -0x7d, 0x28, 0x8f, 0xbc, 0xb7, 0xf5, 0x7b, 0xac, 0xb8, 0x1b, 0x7b, 0x92, 0x51, 0x4b, 0xe6, 0x73, -0x5e, 0x0d, 0xb4, 0x1a, 0x13, 0xa7, 0xcc, 0xec, 0xf7, 0x64, 0x69, 0x42, 0x3b, 0x3f, 0xa3, 0x1d, -0xf1, 0x66, 0x7a, 0x27, 0xe2, 0xfc, 0x99, 0x55, 0xbd, 0x91, 0x2c, 0xc4, 0x0c, 0xb1, 0xd3, 0xbd, -0x79, 0x7e, 0x78, 0xa6, 0xd5, 0xd8, 0xf3, 0x2c, 0x0c, 0xb0, 0x77, 0xba, 0x2f, 0x79, 0x29, 0x0f, -0xe7, 0x14, 0xae, 0xcd, 0x51, 0xe3, 0xb7, 0x0f, 0x29, 0x16, 0x57, 0xc9, 0x6b, 0xbf, 0x7c, 0xed, -0x10, 0x86, 0xc9, 0x2c, 0xd5, 0x6e, 0xd2, 0xc5, 0x31, 0xcf, 0xc4, 0x51, 0xf5, 0xab, 0xa8, 0x99, -0xaf, 0x18, 0xda, 0x93, 0xce, 0x3c, 0xc8, 0x91, 0xf3, 0x20, 0xd7, 0x95, 0x87, 0xfc, 0x19, 0x5b, -0xd5, 0xf1, 0xaf, 0x4b, 0x35, 0x62, 0x3e, 0x86, 0x4e, 0x03, 0xf9, 0x20, 0xc1, 0x16, 0x2d, 0x77, -0x1a, 0x39, 0xde, 0x1e, 0x93, 0xa2, 0xd9, 0x48, 0x0e, 0x24, 0x21, 0xb7, 0xcd, 0xa8, 0xf1, 0xb0, -0x68, 0x50, 0x8b, 0x58, 0x29, 0x0d, 0x8c, 0x86, 0x7e, 0x03, 0x4b, 0x6e, 0x62, 0x4f, 0xdf, 0xd4, -0xb5, 0x41, 0xe8, 0xbb, 0x53, 0x0c, 0x15, 0x8e, 0xd5, 0x62, 0x24, 0x46, 0xa7, 0xcb, 0xc2, 0xd6, -0x56, 0x61, 0x7d, 0x57, 0x78, 0xb5, 0x6a, 0x70, 0x65, 0x4c, 0xc3, 0x1d, 0xc0, 0xb4, 0x52, 0xc8, -0x45, 0x4e, 0xcf, 0x8f, 0x97, 0x0f, 0xaf, 0x22, 0x71, 0x26, 0x9c, 0x8c, 0x1a, 0x29, 0x24, 0x2d, -0x67, 0x42, 0xd1, 0x9c, 0xe8, 0x75, 0x43, 0x2e, 0xd5, 0xb7, 0x9f, 0x7c, 0x5b, 0xe7, 0xb2, 0x3e, -0xd1, 0xd7, 0x20, 0x1a, 0x49, 0x6c, 0x77, 0xe2, 0x51, 0x8c, 0x01, 0x6c, 0x63, 0x7c, 0x5f, 0x94, -0xfc, 0xd6, 0xa5, 0x7f, 0x5b, 0x94, 0xfc, 0xb6, 0x68, 0xec, 0xb7, 0xd9, 0x84, 0xdc, 0x83, 0x74, -0x76, 0x37, 0x97, 0x30, 0x35, 0x91, 0x3e, 0x16, 0xf1, 0x6c, 0x12, 0xaf, 0xe9, 0x1e, 0x0c, 0x31, -0x8e, 0x0a, 0x39, 0x32, 0xad, 0x09, 0x0a, 0xa1, 0x10, 0x53, 0xf6, 0x70, 0xff, 0x31, 0xce, 0xe7, -0xc8, 0x22, 0x92, 0xb0, 0xac, 0x58, 0x0b, 0xac, 0xe2, 0xdf, 0xb1, 0xe7, 0x1e, 0xfd, 0x8b, 0x4e, -0xc2, 0x3a, 0xc4, 0x5d, 0x1b, 0xc3, 0x61, 0x3f, 0x7c, 0x20, 0x60, 0xa7, 0xf3, 0x7f, 0xce, 0x6f, -0x27, 0x7e, 0xc5, 0x2c, 0x98, 0x0a, 0xe9, 0xb1, 0x14, 0x87, 0x4b, 0xa3, 0x16, 0x1f, 0xd6, 0xa4, -0x26, 0xe4, 0x0b, 0x31, 0xec, 0x13, 0x6d, 0x5a, 0x08, 0xf9, 0xcc, 0x4c, 0xc2, 0x19, 0xb9, 0xe2, -0xc2, 0xf9, 0x47, 0x7d, 0x6d, 0x7a, 0xa9, 0x85, 0xec, 0x69, 0xcd, 0x2f, 0xc1, 0x2d, 0xb5, 0xf7, -0xb7, 0x66, 0xee, 0xb8, 0xbf, 0x61, 0xf6, 0x1b, 0xf7, 0xfb, 0x6e, 0xef, 0xe0, 0xf2, 0x5b, 0x19, -0xac, 0x60, 0x43, 0x1e, 0xd0, 0x07, 0x9e, 0xce, 0xf1, 0xb0, 0x36, 0x0e, 0x3a, 0x16, 0xb2, 0x47, -0x71, 0xb4, 0x0a, 0xd3, 0x4a, 0xf0, 0x6e, 0x66, 0xa1, 0x06, 0x85, 0xfa, 0xdc, 0x18, 0x5e, 0xdb, -0x4c, 0x68, 0xd2, 0xc6, 0x51, 0x1c, 0xa2, 0x89, 0x66, 0x78, 0x2d, 0xc3, 0xb7, 0x17, 0xe7, 0xb8, -0x5a, 0x80, 0xb0, 0x4b, 0x9e, 0xa1, 0xb3, 0x39, 0x91, 0x7c, 0x1c, 0x2e, 0x05, 0x09, 0xa9, 0xdd, -0x89, 0x58, 0x56, 0xeb, 0x18, 0x1c, 0x40, 0x0c, 0x7d, 0x69, 0x1e, 0xf9, 0xca, 0x98, 0x9f, 0x0c, -0x3f, 0x34, 0xbd, 0x12, 0x6c, 0x52, 0x40, 0x5c, 0x46, 0xf5, 0xa5, 0x96, 0x44, 0x0a, 0x64, 0x29, -0x39, 0x0b, 0xb2, 0xb3, 0x17, 0x39, 0x55, 0x17, 0x43, 0x0c, 0x76, 0x89, 0x0f, 0x4e, 0x9b, 0x07, -0x2e, 0x67, 0x84, 0xd9, 0x6a, 0xcc, 0x93, 0x73, 0x62, 0x82, 0xe2, 0x90, 0x42, 0xe1, 0xad, 0xaa, -0x95, 0xf1, 0xae, 0xe4, 0x95, 0x7d, 0xbd, 0x72, 0x17, 0xf9, 0x04, 0xac, 0x3f, 0x23, 0x1a, 0x16, -0x30, 0x64, 0x9a, 0x51, 0xda, 0x3b, 0x86, 0x48, 0x17, 0xee, 0x88, 0xbb, 0xc4, 0x79, 0x05, 0x38, -0x1a, 0x3c, 0xfe, 0xef, 0xfe, 0x5a, 0x31, 0xcd, 0xec, 0xeb, 0x85, 0xc8, 0x03, 0xb5, 0xbd, 0x3b, -0x1f, 0xa8, 0xbf, 0xc8, 0xf1, 0x54, 0x4b, 0x31, 0xad, 0xa9, 0x0f, 0x98, 0x61, 0x46, 0x09, 0xac, -0x3f, 0xdd, 0x2b, 0xc7, 0x71, 0x27, 0x60, 0x4e, 0x69, 0x13, 0xa5, 0x95, 0xf9, 0x25, 0xac, 0xbd, -0x91, 0xd7, 0x1d, 0x69, 0x46, 0x2e, 0xd5, 0xd9, 0x85, 0x75, 0xb6, 0xe6, 0xb1, 0x1d, 0x64, 0x1d, -0xf6, 0xc1, 0x33, 0xd1, 0xc5, 0xf3, 0xce, 0x8d, 0xae, 0xa7, 0xdc, 0x04, 0xa2, 0x22, 0xfe, 0xe4, -0x2c, 0xd8, 0xd4, 0x9c, 0xeb, 0x79, 0x10, 0x95, 0x03, 0x72, 0x96, 0x7a, 0x42, 0x74, 0x70, 0x3f, -0x1d, 0x62, 0x1e, 0xac, 0x1f, 0x8c, 0x4b, 0xfe, 0x57, 0x07, 0x02, 0x2f, 0xf4, 0xc2, 0xd5, 0xf9, -0x73, 0x7d, 0x6d, 0xdc, 0xcb, 0x36, 0x03, 0x93, 0x48, 0x33, 0x14, 0x5a, 0xa6, 0x4d, 0x2b, 0x93, -0x36, 0x6d, 0x30, 0xb9, 0x63, 0x9c, 0x09, 0x39, 0xba, 0xb4, 0xaa, 0x03, 0xf9, 0x82, 0x99, 0xe9, -0x9a, 0xdb, 0x58, 0xcb, 0x31, 0x7a, 0xfe, 0x4c, 0xce, 0xb9, 0x49, 0xb5, 0x30, 0x74, 0x3c, 0x53, -0x2c, 0xaa, 0x7b, 0xfc, 0x34, 0x6a, 0xe7, 0x13, 0xc8, 0x7a, 0x4c, 0xc6, 0x88, 0x79, 0xca, 0x84, -0xdf, 0x83, 0x79, 0x32, 0xef, 0xf5, 0x19, 0x74, 0x8e, 0x30, 0xec, 0x88, 0xdd, 0x58, 0x0e, 0x1d, -0x86, 0xdd, 0x5d, 0x0d, 0xed, 0xe1, 0x6e, 0x35, 0x1b, 0xfb, 0xa0, 0x19, 0xe7, 0x26, 0x71, 0x2f, -0xdb, 0xe9, 0x9c, 0x96, 0x70, 0xcc, 0x94, 0x45, 0x54, 0x9e, 0x34, 0xad, 0xdf, 0xf2, 0x14, 0x1a, -0x0f, 0x95, 0x91, 0x76, 0x26, 0x5e, 0x26, 0xcd, 0x4b, 0x95, 0xd2, 0x79, 0x95, 0xd6, 0x2f, 0xd9, -0x16, 0xb3, 0x92, 0xf6, 0x5c, 0x55, 0x52, 0x1d, 0x11, 0x8d, 0xd0, 0x54, 0x90, 0x33, 0xc9, 0xc1, -0xde, 0xc9, 0x45, 0x9e, 0x22, 0x70, 0x78, 0x9f, 0x44, 0x18, 0x36, 0x26, 0x89, 0xf9, 0x94, 0x74, -0x7a, 0xb1, 0xcf, 0xbc, 0x7c, 0x15, 0xc2, 0x95, 0xc0, 0x83, 0x65, 0x0c, 0x73, 0x9c, 0x94, 0xaf, -0x6c, 0xf4, 0x4e, 0x24, 0x0d, 0xa6, 0x79, 0x1f, 0x62, 0xab, 0xfe, 0x80, 0xcd, 0xc1, 0x74, 0x1b, -0x2d, 0x59, 0xd7, 0xa9, 0xfd, 0x03, 0xc9, 0x60, 0x39, 0x9d, 0x4d, 0x9e, 0x0b, 0x98, 0xc8, 0x53, -0x14, 0x95, 0xc2, 0xfd, 0x35, 0x9a, 0x1b, 0xa3, 0x53, 0x1a, 0x25, 0xa3, 0x30, 0x87, 0x3a, 0xec, -0x02, 0xa6, 0xe0, 0xf9, 0xe4, 0x14, 0x68, 0xad, 0x12, 0x53, 0xb8, 0x6e, 0x91, 0x6b, 0x63, 0x2a, -0x61, 0x1c, 0xa4, 0xab, 0x99, 0x66, 0x6c, 0x6d, 0x6e, 0x13, 0x39, 0x9b, 0x23, 0x60, 0x0c, 0x5d, -0x22, 0xb4, 0x64, 0x57, 0x4b, 0x66, 0xa1, 0xbb, 0x25, 0xb3, 0x48, 0x6e, 0xc9, 0xf4, 0x23, 0xab, -0x35, 0x07, 0x79, 0x29, 0x0f, 0x5e, 0xae, 0x36, 0x98, 0x8b, 0x79, 0xce, 0x1f, 0xd2, 0x48, 0x9f, -0xe3, 0xf2, 0x0b, 0x3e, 0xc2, 0x7b, 0xd0, 0x56, 0x47, 0x21, 0xa3, 0xb1, 0x0e, 0x79, 0x23, 0x8d, -0xf4, 0x3a, 0x03, 0x75, 0x59, 0x24, 0x2d, 0xcc, 0xb8, 0x0b, 0x7f, 0xc7, 0x55, 0xc8, 0x20, 0x1c, -0xf7, 0x4b, 0xf8, 0x4c, 0xbe, 0x2c, 0xd6, 0xe2, 0xbd, 0x07, 0xc3, 0x76, 0x21, 0xe5, 0xa6, 0x30, -0xb2, 0xb0, 0x8f, 0xd7, 0x51, 0x1a, 0x6b, 0x48, 0x8f, 0x00, 0xef, 0x6b, 0xf1, 0xed, 0x56, 0x7c, -0x9b, 0x8b, 0xcf, 0x0f, 0x44, 0xb3, 0x1a, 0x40, 0x18, 0xc6, 0xa7, 0x75, 0x18, 0xda, 0x2d, 0x56, -0xe2, 0x0c, 0x8e, 0x31, 0x8d, 0x33, 0xdc, 0xb3, 0x86, 0x37, 0xab, 0xd9, 0xdc, 0x8e, 0xb4, 0xea, -0x51, 0x67, 0x1c, 0x47, 0x04, 0x76, 0x8f, 0xe8, 0x9f, 0x3a, 0x0f, 0x6f, 0x35, 0x6d, 0xba, 0x1d, -0x0a, 0x5d, 0xa5, 0x7f, 0xde, 0x0a, 0x81, 0x19, 0x60, 0xa6, 0x5d, 0x7a, 0xa4, 0x9b, 0x6b, 0x45, -0xd0, 0x35, 0xbd, 0xd7, 0x0c, 0xb7, 0xce, 0x07, 0x5b, 0x4c, 0xc8, 0xca, 0x71, 0x85, 0xac, 0x82, -0xf6, 0x80, 0x4a, 0xfa, 0x61, 0x17, 0xf0, 0x69, 0x9d, 0x7a, 0xae, 0x26, 0xae, 0x9e, 0x51, 0x40, -0x93, 0xc4, 0xca, 0x8a, 0x33, 0x9a, 0x96, 0xe5, 0xd2, 0x34, 0x16, 0x4e, 0x31, 0xce, 0xb1, 0xb8, -0x6f, 0x63, 0x8c, 0x53, 0x18, 0x03, 0x22, 0xeb, 0x9d, 0xd6, 0x98, 0x40, 0x12, 0xb6, 0xac, 0x9b, -0xf1, 0xcd, 0x1a, 0x16, 0xe7, 0x3c, 0x3e, 0xad, 0x55, 0xcf, 0x62, 0x9c, 0xb7, 0xaf, 0x5f, 0xde, -0x8c, 0xf6, 0x54, 0x79, 0x69, 0xa4, 0xe1, 0xa8, 0xc1, 0xab, 0xe4, 0xcf, 0xbd, 0x30, 0x89, 0x56, -0x1f, 0xf3, 0xa8, 0xd2, 0xf6, 0x98, 0x61, 0x2a, 0x96, 0x56, 0x81, 0x91, 0x0d, 0xa2, 0x41, 0x9c, -0x57, 0x13, 0x6f, 0x34, 0x89, 0x4b, 0x91, 0x06, 0xdf, 0x47, 0x33, 0x1d, 0x6b, 0x8a, 0x57, 0xe9, -0xf9, 0xad, 0x10, 0xc6, 0x9a, 0x46, 0x4f, 0x85, 0x6f, 0x8a, 0x66, 0x45, 0x1e, 0x2a, 0x79, 0x17, -0x6c, 0x3f, 0x1b, 0x5c, 0x02, 0x86, 0x26, 0xf1, 0x21, 0xec, 0x03, 0x55, 0x06, 0x27, 0xa1, 0xea, -0xdd, 0x15, 0x59, 0xef, 0xb1, 0xb6, 0x0b, 0x62, 0x79, 0x64, 0x2d, 0x61, 0x77, 0x68, 0xdd, 0x58, -0xe2, 0x1e, 0x2c, 0x31, 0xf5, 0xcc, 0x02, 0xd2, 0x31, 0x54, 0x4f, 0x5f, 0xbf, 0xcc, 0x86, 0x7d, -0xd7, 0x2b, 0x33, 0x79, 0x9b, 0x1e, 0x55, 0xe2, 0xb5, 0x7a, 0x89, 0x1f, 0xa5, 0x11, 0xa2, 0xf6, -0xd5, 0xf4, 0xa8, 0xeb, 0x15, 0xb8, 0x32, 0x48, 0xfd, 0x90, 0x6c, 0xf3, 0xee, 0x64, 0x9b, 0xaf, -0x4e, 0xb4, 0xf9, 0x95, 0xe7, 0xb0, 0xf4, 0x20, 0xec, 0xc6, 0x31, 0xf0, 0x0c, 0xc5, 0x45, 0x4e, -0xb1, 0x32, 0xd7, 0x6e, 0x35, 0x69, 0xbd, 0x18, 0x6a, 0xb7, 0xba, 0x00, 0x39, 0x8f, 0xa8, 0xb9, -0xe2, 0x0c, 0x08, 0xd9, 0x26, 0xc5, 0x8e, 0x77, 0x43, 0x36, 0x72, 0xa6, 0xd6, 0x0c, 0xad, 0x57, -0x35, 0x54, 0xff, 0x2a, 0x5c, 0x16, 0x35, 0xda, 0x6f, 0x52, 0xec, 0x84, 0x6e, 0x1b, 0x03, 0xfb, -0x4d, 0x5e, 0xa6, 0x83, 0x53, 0xbd, 0x71, 0x2f, 0xd4, 0xed, 0xde, 0x05, 0x0d, 0x3b, 0x23, 0x0f, -0x89, 0x95, 0x76, 0xca, 0x1b, 0x30, 0xfe, 0x47, 0x98, 0x9b, 0x9f, 0xe5, 0x16, 0x4e, 0xe4, 0xe4, -0x0a, 0xe5, 0xe6, 0xea, 0x79, 0xf9, 0x78, 0x5e, 0xea, 0xe8, 0x3c, 0xcc, 0x8a, 0x11, 0xf3, 0xfd, -0x3b, 0x72, 0x52, 0x00, 0x2e, 0x62, 0xda, 0xd5, 0xd7, 0x6f, 0x4b, 0xa1, 0xfd, 0xef, 0x6e, 0xcb, -0xf5, 0x66, 0x28, 0x7d, 0x1f, 0x84, 0xa9, 0x15, 0x60, 0x8b, 0x60, 0x2b, 0x0e, 0xaf, 0x63, 0xa5, -0xf6, 0xd4, 0x74, 0x37, 0xda, 0x9c, 0xb8, 0xca, 0x72, 0x1b, 0x79, 0x41, 0x6a, 0xbb, 0x8f, 0x74, -0xea, 0x38, 0x1a, 0x1d, 0x9d, 0xd6, 0xb8, 0xee, 0x31, 0x8f, 0x49, 0xd9, 0xbd, 0x14, 0x6c, 0x61, -0x92, 0x0c, 0xc2, 0x70, 0x39, 0xa5, 0x31, 0xec, 0xd7, 0xcb, 0x07, 0xf0, 0x1c, 0x96, 0x10, 0xe0, -0x89, 0xd1, 0x65, 0x84, 0x23, 0xbc, 0x8c, 0x84, 0x27, 0x70, 0xbd, 0x1a, 0xf7, 0x3b, 0x54, 0x73, -0x64, 0x7d, 0x04, 0xc7, 0xd8, 0xc7, 0x17, 0x46, 0x97, 0x08, 0xfa, 0xfe, 0x91, 0x12, 0x7d, 0xbc, -0x93, 0x4a, 0xf4, 0xf1, 0x73, 0x7a, 0x89, 0x72, 0xb1, 0x3c, 0x8e, 0x51, 0xa5, 0x09, 0x4a, 0xfe, -0x5b, 0xff, 0xde, 0xf9, 0x92, 0xd6, 0x62, 0x58, 0xae, 0x45, 0xed, 0x80, 0x3b, 0x2e, 0x73, 0x3b, -0x72, 0xa3, 0xed, 0xd1, 0x40, 0x00, 0xf7, 0xa4, 0x2e, 0xc5, 0xe1, 0x9a, 0xc4, 0x29, 0x60, 0x9a, -0x8f, 0xee, 0x20, 0x3b, 0x7b, 0x7c, 0x9b, 0xe3, 0x6d, 0x0d, 0x1d, 0xaa, 0xde, 0x48, 0x56, 0x01, -0xe4, 0x53, 0x20, 0xd3, 0xcc, 0xcf, 0x9a, 0x90, 0x32, 0xcb, 0xb8, 0x0f, 0x21, 0xa4, 0xe7, 0x42, -0x3a, 0x6f, 0xf2, 0x84, 0x7f, 0xff, 0x21, 0x78, 0xc2, 0x76, 0x15, 0x0c, 0xeb, 0x7e, 0x7e, 0x10, -0xe7, 0xda, 0x13, 0x81, 0xac, 0x36, 0xe2, 0xad, 0x9f, 0x9b, 0x77, 0x86, 0x9d, 0xaf, 0xcc, 0xc0, -0x7e, 0xc9, 0xaf, 0x73, 0xd1, 0x6e, 0x10, 0x67, 0x4f, 0x1d, 0x3b, 0xe3, 0xb8, 0x15, 0x63, 0x8b, -0x4a, 0x10, 0x9f, 0xa6, 0xe3, 0xdb, 0x57, 0x68, 0xef, 0x48, 0x18, 0x3b, 0xe4, 0x97, 0x86, 0xed, -0x2f, 0x41, 0x98, 0x42, 0x34, 0x11, 0xf7, 0x95, 0x20, 0xac, 0xe3, 0xa8, 0x34, 0xc2, 0x79, 0x42, -0xd8, 0x65, 0x3b, 0x4b, 0x00, 0xf2, 0x2c, 0xb6, 0x0a, 0xc3, 0x4e, 0x28, 0xb3, 0xf5, 0x53, 0x1c, -0xcc, 0xc5, 0x30, 0x85, 0xed, 0x47, 0xcd, 0xec, 0xa4, 0x26, 0x4b, 0xb1, 0xfd, 0x84, 0x4a, 0x93, -0x8d, 0xa5, 0x30, 0xe0, 0x4c, 0x5a, 0xc8, 0x7e, 0x99, 0x1d, 0xc3, 0xda, 0x03, 0x9f, 0xea, 0xd4, -0xd6, 0x69, 0x9a, 0x52, 0x4c, 0x5f, 0x32, 0xec, 0xa9, 0x19, 0xaa, 0x88, 0x31, 0x4e, 0x52, 0x0c, -0xe1, 0xed, 0x70, 0x50, 0xb5, 0x22, 0x17, 0x3a, 0x07, 0xd7, 0xfc, 0x55, 0x18, 0xba, 0x29, 0xc6, -0xfe, 0xb2, 0x77, 0x07, 0xf1, 0xeb, 0x35, 0xf8, 0xf5, 0x5a, 0x4d, 0xab, 0x79, 0xb0, 0x8d, 0xb0, -0x29, 0xb7, 0xb0, 0xf0, 0x1d, 0x18, 0xde, 0xa5, 0x7c, 0xc0, 0x9e, 0x9f, 0xc4, 0xe7, 0x6e, 0x8c, -0xb3, 0x9a, 0xe2, 0x60, 0x8c, 0xd6, 0x9f, 0xff, 0x5a, 0xc5, 0x7a, 0x09, 0xdd, 0xec, 0x6d, 0xaf, -0x63, 0x20, 0xf2, 0xa0, 0xfd, 0x46, 0xb6, 0x62, 0x18, 0xf1, 0xcd, 0x59, 0x16, 0xda, 0x8a, 0xdf, -0xf4, 0x28, 0xcf, 0xbd, 0x40, 0xcf, 0xaa, 0x63, 0x40, 0x9c, 0xf7, 0xf3, 0x5f, 0x63, 0xbd, 0xab, -0xed, 0x9f, 0x66, 0x74, 0x03, 0x29, 0x82, 0xd0, 0x88, 0x31, 0x56, 0xcf, 0xc5, 0xf6, 0x14, 0xe7, -0x29, 0x9c, 0x06, 0xac, 0xa2, 0x79, 0xc9, 0xbe, 0x2e, 0xa4, 0x1a, 0xe2, 0xfb, 0xfb, 0x15, 0x0b, -0xfb, 0x2d, 0xe3, 0x73, 0xaf, 0x9d, 0x66, 0x87, 0x2d, 0xf2, 0x90, 0x4c, 0xf5, 0x9b, 0xae, 0x1a, -0xec, 0x9f, 0x61, 0xef, 0xcc, 0x58, 0xbb, 0x2c, 0xfd, 0x2c, 0x02, 0xeb, 0x88, 0xe3, 0xb7, 0x94, -0xc6, 0xaf, 0x63, 0x80, 0xe2, 0xc3, 0x1b, 0x91, 0x87, 0x68, 0x5f, 0xaf, 0x1e, 0xa4, 0xb8, 0x70, -0x42, 0x0c, 0x4c, 0xea, 0xd4, 0x7a, 0x41, 0x28, 0xc3, 0xf4, 0xb1, 0xb6, 0xab, 0x91, 0x6b, 0x97, -0x98, 0x97, 0xf2, 0xc2, 0xa8, 0x95, 0xc5, 0xd8, 0x83, 0x39, 0xc5, 0x95, 0xd3, 0xec, 0xf9, 0x39, -0xc7, 0x30, 0xb8, 0x71, 0x35, 0x50, 0xf4, 0xfe, 0xb8, 0x23, 0x3a, 0x9b, 0x9d, 0x78, 0x4d, 0x8b, -0x16, 0xd4, 0x99, 0x59, 0x8f, 0xe7, 0x2b, 0x2e, 0x13, 0x68, 0xaf, 0x91, 0x8e, 0x64, 0x9d, 0xa4, -0xe4, 0x32, 0x09, 0x42, 0x36, 0x7b, 0xf7, 0x55, 0x35, 0x4b, 0x49, 0xc9, 0x0c, 0x56, 0xa9, 0x46, -0xaa, 0x91, 0x7d, 0xa6, 0xa6, 0x61, 0xca, 0x0b, 0xae, 0x57, 0x62, 0x5c, 0x07, 0x2e, 0xe2, 0xfb, -0x42, 0xc7, 0x80, 0x33, 0xf4, 0xf3, 0x03, 0x51, 0x33, 0xa3, 0xe4, 0x48, 0x43, 0xc5, 0xf9, 0x8a, -0x85, 0xf9, 0xb3, 0xe3, 0xab, 0x33, 0x8e, 0xcb, 0x2b, 0x1d, 0xd8, 0x9e, 0x66, 0xf2, 0xf0, 0x01, -0xad, 0xd4, 0x46, 0x75, 0x76, 0xe6, 0xed, 0xc3, 0x5b, 0xb5, 0xe7, 0xaf, 0xe7, 0x70, 0x9f, 0x4f, -0x5a, 0x70, 0x59, 0x6c, 0xef, 0x9d, 0x5b, 0x75, 0xef, 0x0b, 0x07, 0xeb, 0x60, 0x64, 0x8b, 0xf2, -0x06, 0xdf, 0xd9, 0x12, 0x8a, 0x79, 0x3e, 0xee, 0x6c, 0x71, 0xac, 0x17, 0x7b, 0xbc, 0xe0, 0x47, -0x8e, 0xc4, 0x17, 0xf8, 0x01, 0xa1, 0xe5, 0x17, 0x5f, 0x4a, 0xf2, 0x24, 0x56, 0xef, 0x38, 0xee, -0x37, 0x38, 0xe3, 0x3c, 0xe1, 0x8d, 0x22, 0x67, 0xb2, 0x99, 0x23, 0x21, 0xc6, 0xb4, 0xfe, 0x35, -0xaa, 0x03, 0xb9, 0x0e, 0x0f, 0x96, 0xc6, 0xd2, 0xc1, 0x6c, 0x53, 0x99, 0xd6, 0xee, 0x7e, 0xb2, -0x38, 0x4c, 0xec, 0x03, 0xe6, 0xd0, 0x99, 0x8a, 0xe8, 0x21, 0x9e, 0xca, 0x72, 0xfa, 0xa1, 0x0e, -0x50, 0xa4, 0x34, 0xdf, 0x86, 0x99, 0x8f, 0xae, 0x66, 0x56, 0xb4, 0x83, 0x74, 0x9e, 0x4c, 0xbe, -0x0c, 0x63, 0xa0, 0xd8, 0x8f, 0xc7, 0xb9, 0x77, 0xc3, 0x15, 0xc7, 0x48, 0x53, 0x9c, 0x9d, 0xfd, -0x77, 0x5e, 0xdb, 0x76, 0x9a, 0x21, 0xee, 0xd2, 0x2e, 0x03, 0x9b, 0x8d, 0x64, 0x07, 0x4c, 0x6a, -0x64, 0x48, 0x43, 0x2c, 0xac, 0x1c, 0x8d, 0x1d, 0x99, 0xb0, 0x2a, 0x93, 0x08, 0xc7, 0xb0, 0xa4, -0xa6, 0xb7, 0x76, 0x63, 0xdb, 0x95, 0x9d, 0xbd, 0x0d, 0x76, 0xe2, 0xf3, 0xa7, 0xc5, 0x7a, 0xc9, -0xd7, 0x09, 0xc7, 0x5d, 0x5a, 0x0e, 0xd2, 0xb4, 0xa5, 0xb8, 0xf7, 0x66, 0xd8, 0x13, 0x64, 0x2f, -0x20, 0xc7, 0x15, 0x4f, 0xe2, 0x6b, 0xe4, 0x3a, 0x49, 0x97, 0x89, 0x7c, 0xcd, 0xac, 0x62, 0xbe, -0x66, 0xb2, 0xe5, 0x1e, 0xd1, 0x3f, 0xad, 0x1a, 0xbf, 0x66, 0x7e, 0x5d, 0xc9, 0xcf, 0x4c, 0x02, -0x1b, 0x9d, 0xfb, 0xb3, 0x2a, 0x92, 0x90, 0xaf, 0xcc, 0x71, 0xe9, 0xa5, 0xc4, 0x5a, 0xe0, 0x6e, -0x94, 0xf9, 0xbd, 0x5f, 0x45, 0x71, 0xa3, 0xd5, 0xcc, 0x1f, 0x88, 0xee, 0x81, 0x87, 0x21, 0xe3, -0xd9, 0x90, 0xcf, 0x25, 0x0b, 0x21, 0x1b, 0xf9, 0x89, 0x51, 0x5c, 0xd3, 0xbe, 0xa4, 0x97, 0x64, -0x13, 0xee, 0xb1, 0x9d, 0x1c, 0xc9, 0x12, 0xb9, 0x79, 0xa4, 0x98, 0x6a, 0x0e, 0x43, 0x81, 0xb5, -0xe2, 0x6e, 0xf9, 0x54, 0x6b, 0x94, 0x23, 0xa0, 0x56, 0x6f, 0x4c, 0x6a, 0xd1, 0x73, 0x8b, 0x41, -0x92, 0xfb, 0x31, 0xbf, 0x8d, 0x51, 0xb2, 0x92, 0xb2, 0x32, 0x5c, 0x85, 0x9d, 0xd5, 0x1b, 0xa5, -0xc8, 0x68, 0x7f, 0x66, 0x09, 0x1f, 0x66, 0x5f, 0x4a, 0x8c, 0x0d, 0x92, 0xde, 0x15, 0x63, 0xfb, -0xfa, 0x71, 0x7c, 0x04, 0x91, 0x37, 0xf4, 0xd1, 0x7e, 0x77, 0x85, 0xb1, 0xb5, 0x43, 0xb1, 0x33, -0x3d, 0xf7, 0x30, 0xc7, 0x21, 0x54, 0x6d, 0x98, 0x73, 0xc2, 0x03, 0x01, 0x08, 0xa4, 0x27, 0xce, -0xb0, 0x21, 0xf3, 0x89, 0xaf, 0x36, 0x13, 0x36, 0x64, 0x3e, 0x72, 0xb4, 0x25, 0x7f, 0x3e, 0x00, -0xc4, 0x69, 0x05, 0x90, 0xd3, 0x62, 0xde, 0x42, 0x71, 0x67, 0xe9, 0x29, 0x9f, 0xdd, 0x49, 0x9e, -0xa2, 0xdc, 0x86, 0xea, 0x35, 0xa2, 0xa1, 0x70, 0xa2, 0xdb, 0xaf, 0x18, 0x3d, 0xc1, 0x40, 0x60, -0x14, 0x67, 0xed, 0x67, 0xe7, 0xb0, 0x9f, 0xf2, 0x8e, 0x1b, 0xe3, 0x53, 0xd4, 0x37, 0x8a, 0x73, -0xa6, 0x38, 0x9f, 0xf1, 0x8e, 0x0b, 0xb5, 0xc0, 0x02, 0x1e, 0x8b, 0x61, 0x3f, 0xba, 0x54, 0x5b, -0x38, 0xa0, 0x5a, 0xb0, 0xf5, 0x7d, 0x09, 0x5d, 0xda, 0xbd, 0x1b, 0xa2, 0x36, 0xe6, 0x49, 0xc2, -0x2c, 0xd9, 0x38, 0x86, 0x23, 0xee, 0x15, 0xea, 0x39, 0xbf, 0xcd, 0x7c, 0x93, 0x96, 0x21, 0x97, -0x50, 0x41, 0x67, 0xe8, 0x48, 0xf3, 0x3f, 0x0a, 0xaf, 0x56, 0xad, 0x3f, 0x39, 0x54, 0x2f, 0xdf, -0xdc, 0x49, 0xfe, 0x16, 0x15, 0x4a, 0xad, 0x16, 0x7f, 0x3b, 0x6e, 0x26, 0x6d, 0x7a, 0xad, 0x66, -0xbd, 0x12, 0xbe, 0x51, 0x74, 0x55, 0xec, 0xe9, 0x6d, 0xb8, 0xa4, 0x54, 0xc9, 0x13, 0xdb, 0x3b, -0x94, 0xdc, 0x56, 0xaf, 0x3d, 0x97, 0xc9, 0x1e, 0x4d, 0x56, 0x01, 0x66, 0x47, 0xcf, 0x67, 0x93, -0x67, 0xaf, 0x07, 0xb3, 0x40, 0x39, 0x23, 0x4f, 0x6c, 0xe5, 0xf8, 0x8f, 0xd9, 0x1c, 0x99, 0x7d, -0xa4, 0x20, 0xdc, 0xc3, 0x7d, 0xb4, 0x72, 0xa9, 0x98, 0x98, 0xd9, 0xd7, 0x3b, 0xb8, 0xbe, 0xff, -0xc1, 0x86, 0x5d, 0x52, 0xa5, 0xb2, 0x9d, 0x30, 0xc8, 0x46, 0x2e, 0xca, 0x13, 0x03, 0x82, 0xf2, -0x1c, 0xef, 0x93, 0xa2, 0x02, 0x92, 0x44, 0xe1, 0x2e, 0xb2, 0x3c, 0xda, 0x49, 0xeb, 0x9a, 0x01, -0xc6, 0xd8, 0x2d, 0xab, 0x38, 0xb2, 0x64, 0x99, 0x28, 0x03, 0xbe, 0x63, 0xd8, 0x5e, 0x4b, 0x71, -0x36, 0xce, 0xf1, 0x92, 0x14, 0x29, 0x07, 0xff, 0xfa, 0x20, 0x57, 0x0a, 0xda, 0x6f, 0x16, 0x2b, -0xd4, 0x21, 0xf2, 0x9f, 0xb9, 0xbb, 0xb7, 0xde, 0x6e, 0x27, 0xbe, 0x97, 0xa4, 0xbd, 0x26, 0x56, -0xe6, 0xb3, 0xb4, 0x6e, 0xc6, 0x08, 0x2b, 0x3b, 0xc7, 0xb3, 0x1c, 0x68, 0x66, 0x9e, 0x92, 0x82, -0x3c, 0xaf, 0xd4, 0x1a, 0x4a, 0xe7, 0xac, 0xdc, 0x87, 0xdd, 0x1c, 0x03, 0x8e, 0x90, 0x5c, 0xdc, -0x2b, 0xc9, 0x69, 0xe7, 0x7e, 0x26, 0x76, 0xee, 0x57, 0xa6, 0x6b, 0xff, 0xd9, 0x44, 0x3f, 0xf3, -0xea, 0x6c, 0x72, 0x31, 0x1d, 0xc0, 0x8e, 0xf4, 0x73, 0xc0, 0xd5, 0xea, 0x64, 0x2c, 0xb1, 0xc8, -0xcf, 0x51, 0x5c, 0xa4, 0x91, 0x68, 0x92, 0xa1, 0x9d, 0xc9, 0x59, 0x86, 0x87, 0x48, 0x2e, 0xc7, -0xd0, 0x1f, 0x99, 0x5d, 0x4f, 0xb8, 0x85, 0xfc, 0xa6, 0xe9, 0x38, 0xa3, 0x46, 0xac, 0x28, 0xf3, -0x8f, 0xf2, 0x7e, 0x2f, 0xfb, 0xbb, 0x05, 0x67, 0x4a, 0x9b, 0x7e, 0xd6, 0xc1, 0xc6, 0xdb, 0x54, -0xc2, 0xc5, 0xfe, 0xda, 0x35, 0xbf, 0xf5, 0x25, 0xbf, 0xdd, 0xca, 0xfe, 0x6e, 0x23, 0x6b, 0x8a, -0x31, 0xdf, 0xfa, 0xe4, 0xaf, 0x25, 0xfc, 0xe5, 0x16, 0x17, 0xb8, 0xc1, 0x59, 0xe1, 0xb2, 0xe1, -0xdb, 0x5a, 0x71, 0x92, 0x94, 0xd9, 0x96, 0x7b, 0x74, 0x63, 0xbb, 0x31, 0x21, 0xa1, 0x63, 0x9e, -0xa4, 0xfc, 0x74, 0xf6, 0x6c, 0x8d, 0xdf, 0x57, 0x56, 0x59, 0x1e, 0xb5, 0x92, 0x8d, 0x5e, 0xc6, -0x9f, 0x55, 0x0f, 0x9b, 0xff, 0xc0, 0xe9, 0xfa, 0x3b, 0xbd, 0xb8, 0x6b, 0x1f, 0x86, 0x4b, 0xef, -0xb4, 0x7b, 0x8d, 0xc8, 0x77, 0x4c, 0x20, 0x3c, 0x0e, 0xe2, 0xec, 0xab, 0xfa, 0xd8, 0x79, 0x7e, -0x16, 0xce, 0x69, 0xab, 0x44, 0x36, 0x52, 0xb7, 0x71, 0x89, 0x3e, 0x43, 0x8b, 0x28, 0xe6, 0xd4, -0xf3, 0x0e, 0x29, 0x9f, 0xef, 0x46, 0x3d, 0x58, 0x13, 0x1f, 0xb6, 0x76, 0x21, 0x52, 0x11, 0x97, -0x32, 0x5b, 0xcc, 0x92, 0xc6, 0xc9, 0x46, 0x67, 0xa6, 0xa7, 0x3c, 0xe5, 0xf9, 0x19, 0xf9, 0xa9, -0xb5, 0x51, 0xd7, 0xe8, 0xd3, 0xeb, 0xa9, 0xa4, 0x63, 0xf5, 0x1e, 0x6c, 0x51, 0xec, 0xe1, 0x78, -0xb3, 0xf5, 0x78, 0xfc, 0x3b, 0xf1, 0xf0, 0x1a, 0x75, 0x1f, 0xb3, 0xae, 0x16, 0xb8, 0x9f, 0x38, -0x66, 0x71, 0xe8, 0xe5, 0xd6, 0x39, 0x54, 0x2a, 0x91, 0xce, 0xdf, 0x1c, 0x63, 0x4f, 0xb8, 0x49, -0x8b, 0xb3, 0x36, 0x2e, 0xee, 0x4b, 0xd9, 0x74, 0x32, 0xb9, 0xbf, 0x95, 0xe1, 0x61, 0x4c, 0x11, -0x67, 0x68, 0xc3, 0xd1, 0x1c, 0xe6, 0x3b, 0x03, 0x7b, 0xf9, 0x2b, 0x0f, 0xa4, 0x7d, 0x2d, 0x54, -0xdd, 0x9b, 0xb4, 0xdd, 0x1f, 0xe5, 0x2b, 0xe4, 0xda, 0xde, 0x41, 0x46, 0x0e, 0x25, 0x50, 0x80, -0x65, 0xdc, 0xf3, 0x93, 0x16, 0x8e, 0xdc, 0x0c, 0x56, 0xd2, 0x9f, 0x8a, 0x3a, 0x46, 0xdb, 0xf0, -0xcf, 0xa5, 0x5a, 0x19, 0xe7, 0xbe, 0xaf, 0x5d, 0x9a, 0xff, 0xbe, 0x76, 0x9a, 0x10, 0xd7, 0x7f, -0x91, 0xed, 0x9e, 0x68, 0x5a, 0xa3, 0x69, 0x23, 0x6f, 0x71, 0xac, 0x13, 0x42, 0x34, 0x47, 0x5a, -0xb9, 0x85, 0x9f, 0x1f, 0xa8, 0x30, 0xce, 0x28, 0xce, 0xd4, 0x4e, 0x47, 0x45, 0x92, 0x02, 0xe5, -0xf9, 0xb5, 0xd3, 0x3a, 0xe6, 0x71, 0x66, 0x2a, 0x4e, 0xf4, 0x25, 0x05, 0x4c, 0x6f, 0x24, 0xbe, -0xe6, 0x96, 0xc9, 0x44, 0x17, 0x7e, 0x91, 0x9d, 0x48, 0xc3, 0x34, 0x20, 0x62, 0x28, 0xb3, 0x04, -0x77, 0x79, 0xe9, 0x34, 0x04, 0x16, 0xf4, 0xea, 0x1e, 0x65, 0xd8, 0xea, 0xf0, 0x8b, 0x95, 0x89, -0x53, 0x37, 0xd5, 0x1c, 0x8b, 0x3a, 0xe3, 0x98, 0xde, 0xbe, 0xb4, 0xf4, 0xce, 0x78, 0x8d, 0xf3, -0x59, 0x49, 0x99, 0x3f, 0x0e, 0x9e, 0xe2, 0x8a, 0xfc, 0x99, 0x18, 0x9e, 0x8a, 0x73, 0x0e, 0xf3, -0x4c, 0xbd, 0xad, 0xf6, 0xe0, 0x5b, 0x57, 0xf9, 0x6b, 0x2f, 0xbd, 0x76, 0xa8, 0xe2, 0xc2, 0x01, -0x58, 0x09, 0x79, 0xfe, 0x91, 0x41, 0xe4, 0x14, 0xdf, 0xd8, 0xfb, 0xac, 0x76, 0x6e, 0x89, 0x29, -0xb0, 0x45, 0x21, 0x3b, 0x8a, 0xd4, 0xd7, 0xa7, 0x47, 0x7d, 0x4d, 0x28, 0xf1, 0xa7, 0x25, 0x30, -0x74, 0x81, 0xa6, 0x69, 0x79, 0x25, 0xda, 0xe9, 0x3c, 0xe2, 0xa3, 0x05, 0xed, 0xa2, 0x21, 0xae, -0x61, 0x53, 0x5a, 0xe3, 0x7e, 0xb2, 0xf1, 0xc2, 0xd1, 0x4b, 0x03, 0x95, 0xbc, 0xb8, 0x8b, 0x78, -0x57, 0x7d, 0x8a, 0x83, 0xc5, 0xcb, 0xd4, 0x2e, 0x2a, 0x32, 0x7b, 0xca, 0xc0, 0xa7, 0xc9, 0x69, -0xb9, 0x5c, 0x4c, 0xcf, 0x25, 0xf3, 0x19, 0xd2, 0xcb, 0x07, 0xbf, 0x1d, 0xbc, 0xa4, 0x97, 0x7b, -0x7a, 0x6c, 0x8b, 0x24, 0xda, 0xa3, 0x35, 0xea, 0xec, 0x52, 0x20, 0x73, 0xd5, 0xe9, 0x5e, 0x17, -0x8d, 0x42, 0x83, 0x1b, 0xc2, 0xcf, 0x8e, 0x0c, 0xe2, 0xcc, 0x6c, 0x1e, 0x19, 0x3c, 0x7c, 0x60, -0x6a, 0xbc, 0x17, 0xf2, 0x16, 0x8c, 0x0c, 0x46, 0xd6, 0xd6, 0xae, 0xc7, 0xba, 0x9d, 0x5f, 0x02, -0xda, 0x94, 0xef, 0xbe, 0xc2, 0xfb, 0xd5, 0x33, 0xf1, 0x2b, 0x6b, 0xf3, 0xe6, 0x8d, 0x0c, 0x3a, -0xcb, 0x14, 0x30, 0x2e, 0x94, 0x66, 0x6a, 0x27, 0x79, 0x8d, 0x44, 0xc1, 0x14, 0xd7, 0xb4, 0xe1, -0x9b, 0x57, 0xde, 0xb4, 0x27, 0xde, 0x80, 0xdb, 0x86, 0x34, 0x4d, 0xf2, 0xd6, 0x0c, 0x09, 0x76, -0xd2, 0x7f, 0xa1, 0x29, 0xc3, 0x92, 0x91, 0x9d, 0x91, 0x0f, 0x55, 0x19, 0x61, 0xc3, 0x25, 0xe3, -0x64, 0xe3, 0xe4, 0x8c, 0xf5, 0x46, 0xa3, 0xc1, 0x4e, 0x4f, 0xf4, 0xdf, 0x60, 0x27, 0x3e, 0x26, -0x9a, 0x9b, 0x1c, 0x33, 0x26, 0x1a, 0x0f, 0x35, 0x6b, 0xf4, 0x11, 0x71, 0x0a, 0x73, 0x3c, 0x34, -0xa6, 0x7d, 0x93, 0x23, 0x2a, 0xe3, 0xa0, 0x1b, 0xdb, 0x57, 0x7d, 0x51, 0x81, 0x8c, 0x81, 0xeb, -0xc5, 0x31, 0x6e, 0xa0, 0x3e, 0x18, 0x3d, 0xe6, 0x42, 0xcd, 0x38, 0x46, 0x53, 0xa3, 0x0e, 0x32, -0xba, 0x31, 0x17, 0xf5, 0xba, 0x29, 0x54, 0x8a, 0x54, 0xe3, 0xf4, 0x1e, 0x9b, 0x3c, 0xa6, 0xc7, -0xf2, 0x71, 0x45, 0x36, 0x62, 0xff, 0x5e, 0x54, 0x5c, 0x2b, 0x0d, 0x79, 0x65, 0x78, 0x17, 0xc7, -0xf4, 0x56, 0x22, 0x2f, 0x33, 0x96, 0x75, 0x38, 0xc0, 0x2d, 0x5c, 0x30, 0x4d, 0x6a, 0x45, 0x46, -0xb3, 0xde, 0x8b, 0xfa, 0xd8, 0xec, 0x70, 0xd3, 0x77, 0x24, 0x65, 0xa4, 0x1e, 0x14, 0xc7, 0x0d, -0xde, 0x3f, 0x18, 0x17, 0x5b, 0xcd, 0xc0, 0x7a, 0xd4, 0x38, 0xaa, 0xee, 0xbb, 0x3c, 0x73, 0x23, -0xf7, 0xe3, 0x3e, 0xe8, 0x25, 0xd1, 0x36, 0xb8, 0x81, 0xf9, 0x1c, 0x3c, 0x98, 0x17, 0x1a, 0x39, -0xaa, 0x18, 0x9c, 0x25, 0xd7, 0x6d, 0xaf, 0x6e, 0x6a, 0x2f, 0x42, 0xdd, 0xbe, 0x6e, 0x0c, 0x45, -0x9a, 0xa0, 0x84, 0xd3, 0xfb, 0x22, 0xaf, 0x64, 0xe4, 0x10, 0x7f, 0x2f, 0xcd, 0x1c, 0x39, 0xc4, -0xe2, 0x14, 0x4b, 0xcd, 0x23, 0x47, 0xc5, 0x2f, 0x1d, 0x3e, 0x20, 0x35, 0x6b, 0xc3, 0xaf, 0x1e, -0x48, 0xb4, 0xaf, 0x58, 0x60, 0x86, 0xc1, 0x38, 0x52, 0x86, 0x3f, 0x9b, 0x8d, 0xe2, 0x84, 0xc3, -0xfd, 0x5b, 0x8d, 0x35, 0x6b, 0xc2, 0x6b, 0x5a, 0x40, 0x8b, 0x29, 0xcf, 0x8d, 0x2e, 0x23, 0xce, -0xa2, 0xaa, 0x91, 0x13, 0x9e, 0xb9, 0xf9, 0x13, 0xc8, 0x47, 0x19, 0xd9, 0xf4, 0x8c, 0x1c, 0xd7, -0xf3, 0x34, 0xf0, 0xfe, 0x4f, 0x94, 0xc7, 0xf0, 0x4a, 0x21, 0xe6, 0xe1, 0xb3, 0x44, 0x3b, 0xae, -0xf3, 0xfe, 0xb9, 0x18, 0xf8, 0x66, 0x6a, 0xc3, 0xd4, 0xb7, 0x3e, 0x8b, 0x58, 0x56, 0x76, 0xde, -0x6c, 0x58, 0xb0, 0x46, 0x09, 0x5c, 0x27, 0x76, 0x3c, 0xb2, 0x86, 0xc7, 0x4f, 0xd4, 0x00, 0xeb, -0x80, 0xa5, 0x3f, 0xd2, 0x75, 0xa4, 0x4b, 0xba, 0x27, 0x07, 0x5e, 0x7d, 0xb9, 0xf4, 0x4f, 0x5b, -0x8d, 0xd2, 0xf8, 0x57, 0xfb, 0xcd, 0xc6, 0x1f, 0xff, 0x47, 0x14, 0xb4, 0x7a, 0x65, 0x97, 0x3c, -0xcf, 0x39, 0x37, 0xdf, 0xe6, 0x69, 0x1e, 0x39, 0x61, 0x9e, 0x09, 0x30, 0xf2, 0x3b, 0xd2, 0x99, -0x1b, 0x95, 0x7a, 0x92, 0x3e, 0x21, 0xef, 0x35, 0x1b, 0x79, 0x19, 0xdc, 0x31, 0xbd, 0x48, 0xb4, -0x01, 0x04, 0x0f, 0x79, 0x3b, 0x74, 0xe2, 0xec, 0x62, 0x2b, 0xdd, 0x73, 0x8a, 0x94, 0x7c, 0x3e, -0xa4, 0x64, 0x27, 0x9f, 0xdf, 0xc5, 0xfd, 0x84, 0xfe, 0xfc, 0x81, 0x91, 0x6b, 0xbe, 0x3a, 0xf7, -0xd2, 0xaa, 0xc1, 0x3c, 0x5c, 0x0e, 0x5e, 0xaf, 0xa7, 0x84, 0x5d, 0xd4, 0x97, 0xc8, 0x47, 0xac, -0x21, 0x0c, 0x4f, 0x18, 0x18, 0x3d, 0x7f, 0x52, 0xb3, 0x47, 0xd8, 0xe0, 0x9e, 0x40, 0xe9, 0x87, -0x9f, 0x05, 0xab, 0xda, 0x31, 0x3a, 0x35, 0x3e, 0xbb, 0xd3, 0xd2, 0xac, 0xa3, 0xbe, 0xe4, 0x72, -0x7a, 0x36, 0x5b, 0x90, 0xc2, 0x12, 0x55, 0x49, 0x50, 0x12, 0xae, 0xdd, 0x91, 0xa0, 0xac, 0x02, -0x79, 0x81, 0x30, 0x50, 0xfb, 0x7d, 0xa5, 0xcb, 0xcb, 0x35, 0xfb, 0x52, 0x29, 0xe5, 0x28, 0x55, -0x69, 0xf9, 0xfa, 0x79, 0x8d, 0xf0, 0x1b, 0xa0, 0x30, 0xaf, 0xc0, 0x6a, 0x3b, 0x85, 0xd7, 0x96, -0x2c, 0xcd, 0xd3, 0xca, 0x75, 0x32, 0x7d, 0x66, 0x7e, 0xbc, 0x85, 0xa7, 0xd2, 0x09, 0x22, 0x5b, -0x7b, 0xac, 0x4b, 0xe1, 0x56, 0x70, 0x2c, 0x09, 0x3a, 0x91, 0x2a, 0x7f, 0xfb, 0x10, 0xe9, 0x08, -0xd1, 0xa8, 0x2a, 0xb9, 0xd0, 0x0b, 0xf9, 0x66, 0x45, 0x12, 0xdb, 0x3a, 0x80, 0xfa, 0x54, 0x74, -0xe1, 0x7a, 0x68, 0xa7, 0x35, 0xdd, 0x9c, 0x3a, 0x19, 0x5f, 0x15, 0xe9, 0xa9, 0x5d, 0xbf, 0x0b, -0x29, 0x5b, 0xbd, 0x69, 0x17, 0xf5, 0xcf, 0x11, 0x56, 0x32, 0x80, 0x27, 0xc4, 0x08, 0x8e, 0x02, -0x5f, 0x2f, 0xf9, 0xaa, 0x39, 0xd3, 0x8f, 0x6f, 0xea, 0x0b, 0xdb, 0xc7, 0xed, 0xea, 0xaa, 0xcf, -0x67, 0x63, 0x9a, 0xcd, 0xbd, 0xc3, 0x07, 0xac, 0xdb, 0x74, 0x4f, 0x67, 0x39, 0x53, 0x83, 0x60, -0x9d, 0x5a, 0xce, 0xe5, 0xe1, 0xc8, 0xab, 0x38, 0xdc, 0xe6, 0xd3, 0x0f, 0x05, 0xd7, 0x28, 0x8b, -0x4b, 0x98, 0x17, 0x33, 0xc2, 0x28, 0xc7, 0x1e, 0x30, 0x54, 0xf5, 0xf1, 0x1a, 0x93, 0x37, 0x05, -0x86, 0xad, 0xd4, 0x47, 0x5e, 0xae, 0xe5, 0x79, 0x4c, 0x27, 0x3a, 0xdf, 0x19, 0x6e, 0x67, 0x3e, -0x82, 0x7e, 0xb1, 0x43, 0xb1, 0x8b, 0x5f, 0x4d, 0x52, 0xeb, 0x2d, 0x91, 0x9e, 0xea, 0x8d, 0x54, -0xc2, 0x86, 0xb3, 0x09, 0xa4, 0xf4, 0x5f, 0xec, 0x20, 0x44, 0x72, 0x8e, 0x46, 0x3e, 0xf2, 0x84, -0x2e, 0xe9, 0x67, 0x9e, 0xae, 0x71, 0x5d, 0xb8, 0xfc, 0x8b, 0x93, 0xa4, 0x7f, 0x81, 0xf7, 0x0b, -0xda, 0x45, 0x76, 0x1f, 0xd6, 0x2e, 0x79, 0x6d, 0x65, 0xef, 0x93, 0x0d, 0x9e, 0xde, 0x9a, 0xc3, -0x1c, 0x75, 0x23, 0xb9, 0x82, 0x4e, 0x21, 0x2c, 0x98, 0x8c, 0x3f, 0x6b, 0xc3, 0x2a, 0xc3, 0x4d, -0x61, 0xf6, 0x29, 0x19, 0x55, 0x7b, 0x2e, 0x99, 0xd8, 0x08, 0xe6, 0x92, 0x7a, 0x2b, 0x47, 0xe5, -0xb8, 0x5a, 0xa2, 0xcd, 0xfc, 0xe1, 0x22, 0x3f, 0x84, 0x3c, 0x11, 0xf3, 0x0c, 0x4c, 0xfb, 0x57, -0xe4, 0x87, 0x8a, 0x68, 0x6f, 0x43, 0xbe, 0x0a, 0xc1, 0x85, 0xdc, 0x63, 0x30, 0xc5, 0x11, 0x35, -0x4f, 0xf1, 0x06, 0xa1, 0xd0, 0x1b, 0x06, 0x9f, 0xb7, 0x1c, 0x3c, 0xde, 0xb9, 0xe0, 0xf2, 0x96, -0x81, 0xcc, 0xf8, 0x1e, 0x36, 0xf2, 0x12, 0x3c, 0x10, 0x3b, 0xb9, 0xd0, 0x77, 0x67, 0xa4, 0x6b, -0x4c, 0xa8, 0x44, 0x29, 0x3b, 0xef, 0x04, 0x17, 0x84, 0x1c, 0xea, 0x2c, 0xf2, 0x68, 0xc1, 0xb8, -0x06, 0x2c, 0x01, 0x5d, 0xc8, 0x3d, 0x36, 0x71, 0xff, 0x7c, 0x51, 0x27, 0xa1, 0x81, 0xa5, 0xd0, -0x77, 0x12, 0xdc, 0x0f, 0xee, 0x78, 0xad, 0x09, 0x2f, 0x57, 0xe4, 0x0f, 0x96, 0xf8, 0xda, 0x20, -0xd7, 0x3a, 0x6e, 0x63, 0x88, 0x09, 0xc8, 0xeb, 0xb8, 0x9a, 0xc1, 0x2e, 0x93, 0xc6, 0xf1, 0xb3, -0xcc, 0xd3, 0x0b, 0xed, 0xe4, 0x0b, 0xb1, 0xed, 0x1e, 0xc7, 0xf6, 0x31, 0x95, 0x0d, 0x69, 0x16, -0xee, 0x0b, 0x8b, 0xf1, 0x30, 0x2e, 0xeb, 0xb3, 0xc4, 0x69, 0x6a, 0x8f, 0xab, 0x0b, 0x71, 0xbc, -0x3c, 0x41, 0xab, 0x82, 0x86, 0xab, 0x02, 0x2e, 0xea, 0xa0, 0x06, 0xad, 0xcd, 0xb8, 0xb6, 0xf7, -0xab, 0xc5, 0xd6, 0x99, 0x60, 0xd0, 0x7e, 0xa0, 0x16, 0xe2, 0x6f, 0xa3, 0xb6, 0x43, 0x45, 0x3a, -0x60, 0xa2, 0xd1, 0x35, 0x10, 0x95, 0xf4, 0xd4, 0x5d, 0x98, 0xfa, 0x51, 0xac, 0x85, 0x29, 0x95, -0xb2, 0xe9, 0x15, 0x17, 0x8e, 0x3f, 0x35, 0x9b, 0xe6, 0x81, 0x70, 0x1b, 0xee, 0x10, 0xbb, 0xe9, -0xf4, 0xd5, 0xb4, 0xdb, 0xb0, 0x1a, 0x59, 0x58, 0x8d, 0xbe, 0x63, 0x94, 0xeb, 0x15, 0x36, 0xcf, -0x70, 0xde, 0x7c, 0xa1, 0xbe, 0x76, 0x63, 0x7e, 0xdc, 0x8b, 0xa9, 0x7a, 0x4d, 0xf3, 0x87, 0x46, -0x5e, 0xac, 0x7a, 0x94, 0xd9, 0x8f, 0xb0, 0x59, 0x63, 0xea, 0x96, 0xfd, 0xed, 0xc0, 0x6c, 0xd4, -0xb6, 0x90, 0x8f, 0x50, 0x09, 0xee, 0xec, 0x5a, 0x29, 0xec, 0xe9, 0xaa, 0x37, 0xb5, 0x66, 0x21, -0xc7, 0x3c, 0x87, 0xd9, 0x24, 0xb9, 0xc1, 0x41, 0x1e, 0xfa, 0xb0, 0x0c, 0x8f, 0xd2, 0x2e, 0x98, -0xbe, 0x8d, 0x42, 0x26, 0x8b, 0x4f, 0x96, 0xb2, 0xaa, 0x39, 0x7c, 0xbf, 0xea, 0xc8, 0xb7, 0xe0, -0xca, 0x46, 0xdf, 0x58, 0xc2, 0x98, 0x96, 0x6a, 0xcc, 0x0b, 0x6b, 0x38, 0x4a, 0xcb, 0xce, 0x82, -0x6b, 0x77, 0x8f, 0xfa, 0x44, 0xd9, 0x7b, 0x60, 0x2d, 0x79, 0x5f, 0x1b, 0x0e, 0x34, 0x6b, 0xeb, -0x31, 0xaf, 0x3e, 0x37, 0x59, 0xa0, 0xf6, 0xe5, 0x85, 0xb4, 0xad, 0x79, 0xe5, 0xda, 0x63, 0x4e, -0x83, 0xa7, 0x51, 0xbb, 0x24, 0xda, 0xee, 0x8c, 0x77, 0x0a, 0x7b, 0xe3, 0xf5, 0x20, 0x9c, 0x8d, -0x65, 0xf5, 0x6f, 0x40, 0xfa, 0x79, 0x4a, 0x72, 0x6b, 0xc3, 0x66, 0x6c, 0x32, 0x7c, 0x3e, 0x46, -0x78, 0xad, 0x24, 0xa3, 0xcb, 0x2d, 0x06, 0xe3, 0xbe, 0xb5, 0x51, 0x13, 0xb3, 0xc8, 0x5a, 0x1f, -0xbe, 0x1f, 0x39, 0xde, 0xb9, 0x09, 0x6f, 0xb8, 0xd5, 0xdd, 0x61, 0xcc, 0x21, 0x6a, 0x39, 0xba, -0x1d, 0xeb, 0xd7, 0x15, 0x35, 0x2c, 0xee, 0x66, 0x67, 0x96, 0x6b, 0xb1, 0x25, 0xf3, 0x07, 0xb7, -0xe3, 0xfa, 0x0a, 0x1c, 0xaf, 0xac, 0x7a, 0xa3, 0x07, 0xa2, 0x2b, 0x18, 0x6d, 0x29, 0xf1, 0x82, -0x54, 0x56, 0xf5, 0x30, 0xd3, 0xf0, 0x50, 0x58, 0x48, 0xa5, 0xd7, 0x44, 0xbe, 0x73, 0x71, 0xdf, -0xcd, 0xfc, 0xa2, 0x61, 0x78, 0x15, 0x0b, 0xaf, 0xf5, 0x9a, 0x78, 0x4c, 0x0a, 0x37, 0x52, 0xf8, -0x2c, 0x16, 0xbe, 0x24, 0x11, 0x1f, 0x43, 0x24, 0x16, 0xb2, 0x22, 0x11, 0x33, 0xcc, 0x30, 0x78, -0x43, 0xbf, 0x0c, 0x76, 0x29, 0x96, 0x56, 0x50, 0x4c, 0xad, 0x06, 0xc5, 0xd0, 0x4a, 0x9e, 0x58, -0x8d, 0x31, 0xb3, 0x44, 0xfc, 0x1a, 0x60, 0x3d, 0x0d, 0x9b, 0x5f, 0xee, 0x14, 0xba, 0xd7, 0xe2, -0x78, 0x1c, 0xdf, 0xbd, 0x76, 0xf4, 0x48, 0x16, 0xf9, 0x99, 0xeb, 0xc1, 0x00, 0xee, 0xa5, 0xf0, -0xca, 0xc4, 0xcb, 0x84, 0xd7, 0x38, 0xd1, 0x10, 0xf0, 0x87, 0xfc, 0x27, 0x43, 0xf6, 0x38, 0x7f, -0x9a, 0xe4, 0x07, 0x41, 0x34, 0x9c, 0xec, 0xc5, 0xbb, 0x61, 0x52, 0x00, 0x32, 0x58, 0x2b, 0xcc, -0x22, 0x7f, 0xd6, 0x9a, 0x16, 0xcd, 0x25, 0x2c, 0xa3, 0xd2, 0xf3, 0xe6, 0x89, 0xd2, 0xf8, 0x60, -0x7c, 0x5f, 0x5c, 0xee, 0xba, 0xad, 0x13, 0x67, 0x95, 0x79, 0x6a, 0x04, 0x2c, 0x4a, 0x8e, 0xfe, -0x6e, 0x5c, 0xe2, 0x9d, 0x62, 0xc2, 0x1d, 0xb5, 0x59, 0x7e, 0x40, 0x36, 0xd7, 0x76, 0xd3, 0xee, -0x5f, 0x82, 0x40, 0x49, 0xa8, 0xe4, 0x64, 0x05, 0xf2, 0x8b, 0x5b, 0xed, 0x5d, 0xfc, 0xd7, 0xa4, -0x12, 0x10, 0x24, 0x38, 0xf9, 0x00, 0xde, 0x0d, 0x98, 0x63, 0x46, 0xcc, 0xdc, 0xbf, 0x5d, 0xbb, -0x14, 0xcd, 0xc7, 0x39, 0x67, 0x65, 0x92, 0xa7, 0x2c, 0xc2, 0x23, 0xc3, 0x11, 0xf7, 0x58, 0xd5, -0x9e, 0x8f, 0x3f, 0xd2, 0x67, 0x9d, 0x1d, 0xf9, 0x99, 0xbb, 0xe4, 0x0c, 0x3e, 0xc3, 0x90, 0x1b, -0x39, 0x9b, 0x17, 0xd0, 0xb6, 0x46, 0x70, 0x2c, 0xb0, 0x31, 0x82, 0x77, 0x15, 0xae, 0x0c, 0x21, -0x0f, 0xfd, 0x98, 0x9c, 0x21, 0xcf, 0x6b, 0x07, 0xdc, 0xb1, 0x31, 0xb4, 0xe4, 0x0c, 0x23, 0x96, -0x30, 0x97, 0x38, 0x9f, 0x11, 0xad, 0xce, 0x9a, 0x90, 0x5e, 0xbf, 0xd3, 0xab, 0xb0, 0x30, 0x4d, -0x5b, 0x92, 0x95, 0x0a, 0x23, 0x1e, 0xf3, 0x38, 0xed, 0x98, 0x20, 0xfc, 0x23, 0xb3, 0x15, 0xb9, -0x97, 0x03, 0x63, 0xc6, 0xef, 0x9e, 0x8f, 0x07, 0x3c, 0xfe, 0xd4, 0x18, 0x36, 0x0c, 0x62, 0xda, -0x39, 0xff, 0x68, 0xda, 0x83, 0x0f, 0xe2, 0x8a, 0xd7, 0xfb, 0x3f, 0x29, 0x15, 0xfb, 0x72, 0x3d, -0xb6, 0x64, 0x6f, 0xde, 0x52, 0xb0, 0x6a, 0x7d, 0x92, 0xdf, 0x3c, 0x83, 0x3c, 0x5a, 0x63, 0x49, -0x08, 0xc1, 0x4d, 0xa6, 0x92, 0xb2, 0x19, 0xdb, 0x5b, 0xbd, 0x11, 0x63, 0x6e, 0xad, 0xde, 0xb0, -0x8a, 0xf6, 0x11, 0x55, 0x5a, 0x07, 0xce, 0xa6, 0x36, 0xc9, 0xea, 0x2a, 0xf7, 0x64, 0x88, 0x01, -0x5c, 0x1b, 0x5f, 0x94, 0x9b, 0xb5, 0x0e, 0xd9, 0x4d, 0x36, 0xc6, 0x27, 0x7b, 0x9d, 0xf0, 0xee, -0x83, 0x9e, 0x66, 0xad, 0xef, 0xf7, 0xbf, 0x42, 0x2e, 0x6b, 0x7d, 0xde, 0x32, 0x4c, 0xb9, 0x33, -0x0f, 0xe7, 0x93, 0xf6, 0x58, 0xc1, 0x0a, 0xb0, 0xb5, 0x6b, 0xbb, 0x2a, 0xa2, 0x26, 0xa4, 0x08, -0xe3, 0x95, 0xc9, 0x34, 0x33, 0x71, 0x06, 0xa9, 0x74, 0x4e, 0x85, 0x29, 0xd0, 0x0c, 0xb6, 0x0e, -0x3e, 0x40, 0x1e, 0x60, 0x58, 0xa9, 0xff, 0x14, 0x75, 0xb0, 0xfb, 0x05, 0x8c, 0x13, 0x20, 0x4a, -0x03, 0xbd, 0x98, 0x57, 0x11, 0xce, 0xee, 0x46, 0x4c, 0xb9, 0x57, 0x9c, 0x91, 0xd6, 0x56, 0xec, -0xa4, 0x6b, 0xf0, 0x81, 0x51, 0x35, 0x4e, 0x86, 0xa5, 0x6a, 0x4c, 0xe7, 0xd5, 0x6c, 0x46, 0xfc, -0x8b, 0xf8, 0x59, 0xb3, 0x75, 0xf0, 0x51, 0x2f, 0x20, 0xef, 0xbb, 0x1a, 0xe7, 0x7d, 0x9c, 0xea, -0x39, 0xfb, 0x28, 0xd3, 0x88, 0x9f, 0xa9, 0xad, 0xc6, 0x36, 0x21, 0x5f, 0x3d, 0x26, 0xc5, 0xf6, -0xf3, 0xff, 0x54, 0x2d, 0x24, 0xc7, 0x00, 0x63, 0xbe, 0x4d, 0x99, 0x23, 0xe6, 0x83, 0x51, 0x29, -0xfa, 0x47, 0x73, 0x65, 0x79, 0x3d, 0x87, 0xd4, 0xac, 0x59, 0x7b, 0xec, 0xd5, 0xf7, 0xb5, 0x4e, -0xc2, 0xfb, 0xdb, 0xdf, 0x93, 0x5d, 0x0c, 0xa6, 0x5d, 0xdd, 0x0d, 0xea, 0xd1, 0xee, 0xc2, 0xdb, -0x5d, 0xb8, 0xf7, 0x10, 0x0d, 0x80, 0xed, 0x03, 0x39, 0x20, 0x83, 0x0f, 0xe6, 0x40, 0x25, 0xb5, -0xe9, 0xe0, 0x26, 0x29, 0xae, 0x2c, 0x64, 0xad, 0x9b, 0x35, 0x18, 0x28, 0x88, 0x2b, 0x61, 0xfd, -0xd9, 0x90, 0x15, 0x57, 0xe6, 0xd0, 0xb3, 0x27, 0xf2, 0xdd, 0x97, 0x7f, 0x3f, 0x20, 0x6d, 0x50, -0x7c, 0xfc, 0xcd, 0x96, 0x8a, 0xa3, 0xfe, 0x82, 0x6e, 0x45, 0xe2, 0xbf, 0x66, 0x8d, 0xdf, 0x92, -0x71, 0x14, 0xb2, 0xba, 0x95, 0x2c, 0x57, 0x89, 0x6c, 0xa6, 0x53, 0x62, 0x78, 0x0f, 0xd7, 0xcc, -0x93, 0x48, 0xa1, 0xeb, 0x90, 0xa3, 0xb4, 0x1e, 0x7e, 0x56, 0xeb, 0xd8, 0xf3, 0xac, 0xb6, 0x55, -0x85, 0x91, 0x39, 0x4e, 0x13, 0x7e, 0xd3, 0xe6, 0xb1, 0x52, 0x4c, 0xb2, 0x27, 0x23, 0xdc, 0x0e, -0x9a, 0x8d, 0xa3, 0x57, 0x25, 0x92, 0x69, 0x26, 0xe9, 0x28, 0x0c, 0x9f, 0xc5, 0x11, 0x4d, 0x36, -0xd7, 0x8f, 0x33, 0x6f, 0x30, 0xcc, 0x7b, 0xca, 0xcf, 0x45, 0x6e, 0x6d, 0x20, 0x67, 0x48, 0xc4, -0xaf, 0x36, 0xe1, 0x4a, 0x4c, 0xc8, 0x99, 0x26, 0x5a, 0xa3, 0xd2, 0x79, 0xa1, 0x3a, 0x93, 0x3c, -0xaf, 0x0d, 0x14, 0x0f, 0xe6, 0x3a, 0xac, 0x4c, 0xa1, 0x9d, 0x7a, 0xc9, 0x59, 0x5c, 0x3d, 0x71, -0x14, 0x8d, 0xe5, 0x7f, 0xb8, 0xdf, 0x27, 0xf5, 0x84, 0xf2, 0x0a, 0xd1, 0xf8, 0x3b, 0xb9, 0xff, -0x3c, 0x91, 0xca, 0xc7, 0xa4, 0x08, 0xd9, 0x54, 0xda, 0xab, 0x4b, 0x1a, 0xe9, 0x66, 0xa5, 0xec, -0x56, 0x0f, 0x3a, 0xf1, 0x7d, 0x72, 0x0d, 0x32, 0xf0, 0x35, 0x08, 0xa9, 0xe6, 0xbc, 0xb4, 0xf8, -0x19, 0x48, 0xdb, 0x74, 0xef, 0x7d, 0xcc, 0xee, 0xbb, 0x92, 0xf8, 0x88, 0xa2, 0x99, 0xda, 0x60, -0x14, 0x2e, 0x83, 0x02, 0x97, 0x0b, 0xc9, 0x73, 0x29, 0x5c, 0x3e, 0x82, 0x8f, 0x47, 0x8a, 0xf1, -0x2a, 0xc4, 0xab, 0x08, 0x2e, 0x9f, 0x88, 0xe1, 0x75, 0x1a, 0x2e, 0xff, 0x7e, 0x0b, 0x5e, 0xbd, -0x70, 0xf9, 0x77, 0x2e, 0xbc, 0xcb, 0x70, 0xf9, 0x18, 0xc0, 0xe5, 0xd7, 0x30, 0xfc, 0xc4, 0x21, -0xb8, 0xfc, 0xa6, 0x1d, 0x2e, 0x9f, 0xdc, 0x8f, 0xef, 0xf0, 0xfd, 0x6b, 0x95, 0x90, 0xf8, 0x77, -0xf9, 0xb7, 0x7e, 0xb8, 0xfc, 0xba, 0x0f, 0xc3, 0x30, 0xcd, 0xa3, 0x21, 0x7e, 0xbd, 0xda, 0x86, -0xd7, 0x79, 0x8c, 0x8f, 0xe9, 0x9f, 0xc4, 0xe7, 0xb7, 0x8c, 0x78, 0x3f, 0x0e, 0x97, 0x8f, 0x9f, -0xe0, 0xdf, 0xbc, 0xba, 0x17, 0xe3, 0x75, 0x60, 0x1e, 0x98, 0xf6, 0x5b, 0xf8, 0xed, 0x6f, 0x30, -0xce, 0x31, 0x11, 0xd3, 0xc0, 0xe7, 0xdf, 0xe1, 0x77, 0x27, 0xe2, 0xf8, 0x0e, 0xdf, 0xbf, 0x59, -0x8d, 0x17, 0x96, 0xe9, 0xc4, 0x25, 0xdc, 0xa6, 0x69, 0xf0, 0xff, 0xfa, 0x4f, 0x5e, 0x58, 0x16, -0x99, 0x2d, 0xde, 0xdb, 0xb6, 0xac, 0x69, 0x59, 0xdb, 0x37, 0xf3, 0x9b, 0x96, 0xd5, 0xb5, 0xde, -0xdd, 0xfa, 0x4d, 0xb1, 0xf0, 0xb6, 0xfc, 0xdb, 0x0a, 0x45, 0x57, 0x41, 0xfe, 0xe7, 0xf2, 0x0b, -0x7c, 0xb7, 0x15, 0xcc, 0x98, 0x68, 0x81, 0x31, 0x51, 0x20, 0x3c, 0x0c, 0x97, 0x0f, 0x7f, 0x0f, -0x2e, 0x9f, 0x3a, 0xda, 0x35, 0x63, 0x3c, 0x36, 0xe5, 0xe1, 0x0d, 0x78, 0x2d, 0xc7, 0xeb, 0xc5, -0x64, 0xda, 0x2a, 0x5c, 0x1e, 0x6c, 0xe2, 0xb5, 0x3b, 0xb2, 0x45, 0x0f, 0xbb, 0x05, 0x2f, 0x9a, -0x73, 0x5f, 0xc5, 0x8b, 0xfa, 0x68, 0x2b, 0x5e, 0xbb, 0xf0, 0xfa, 0x0d, 0x5e, 0x17, 0x49, 0x9f, -0x94, 0x64, 0x5e, 0x78, 0x7d, 0x91, 0xc5, 0xbd, 0x1d, 0x16, 0x41, 0x07, 0x7c, 0x0b, 0x7e, 0x0c, -0x47, 0xe1, 0xcf, 0xc2, 0x24, 0xc1, 0x27, 0x54, 0x25, 0x53, 0x17, 0xb0, 0xbd, 0x9e, 0xd0, 0x9f, -0xa7, 0xe3, 0x35, 0x8d, 0x6a, 0x43, 0x7d, 0x49, 0x97, 0xd7, 0x56, 0xb3, 0x02, 0x44, 0xe2, 0x26, -0x43, 0x1d, 0x9a, 0x86, 0x74, 0xe1, 0xf2, 0x61, 0x99, 0x46, 0x47, 0xf1, 0x62, 0xb2, 0x75, 0x8e, -0x81, 0x8e, 0xfc, 0xc2, 0xbc, 0xba, 0xb0, 0x8b, 0x62, 0x78, 0x52, 0x31, 0x08, 0x8b, 0x38, 0x82, -0x29, 0x18, 0xf2, 0xb5, 0xbf, 0x82, 0x4d, 0x31, 0x7c, 0xf7, 0x15, 0xd1, 0xc6, 0xb9, 0x4d, 0x28, -0x90, 0xfd, 0x9f, 0xeb, 0xc4, 0xd9, 0x9c, 0x8d, 0xdf, 0x68, 0xc5, 0x11, 0xf6, 0x4d, 0x65, 0x2d, -0x5f, 0xd3, 0xd3, 0x53, 0x5b, 0x4c, 0x58, 0x9f, 0xb7, 0x9f, 0x49, 0xf9, 0xf5, 0x4d, 0x2b, 0x4b, -0x65, 0xd5, 0x66, 0xc6, 0x0d, 0x27, 0x63, 0x1f, 0xc9, 0xa5, 0xd8, 0xc5, 0x8b, 0x59, 0xec, 0x5c, -0xa4, 0x88, 0xf5, 0xe4, 0x0f, 0x2a, 0x19, 0xbf, 0x90, 0x7b, 0x26, 0x66, 0x48, 0x5c, 0x3c, 0xf5, -0x60, 0x22, 0xf5, 0xb4, 0x58, 0x0b, 0xaa, 0x36, 0xa7, 0x95, 0xa9, 0x1a, 0xe7, 0x05, 0xae, 0x45, -0xad, 0x50, 0xe0, 0x86, 0x2c, 0x29, 0xbc, 0x79, 0x60, 0xb0, 0x2b, 0x25, 0xaf, 0xa5, 0x5c, 0x1e, -0x39, 0x48, 0x3e, 0x11, 0x39, 0x06, 0x6d, 0x65, 0x89, 0x19, 0xe7, 0x15, 0x20, 0xa7, 0xd1, 0x38, -0x25, 0x18, 0x0f, 0x77, 0x35, 0x5a, 0x83, 0x5d, 0x34, 0xe3, 0x5f, 0x3d, 0x8f, 0xf7, 0x7b, 0x13, -0x4f, 0xc1, 0x38, 0x72, 0xd0, 0x5d, 0x8d, 0x34, 0xea, 0x16, 0x26, 0xdf, 0xc7, 0xd9, 0xf7, 0x82, -0x99, 0xa7, 0x03, 0xb9, 0x34, 0x9b, 0x70, 0x2e, 0xb6, 0x51, 0x5a, 0xc6, 0x60, 0x3c, 0xd2, 0x8d, -0x5f, 0x18, 0x83, 0x5d, 0x35, 0xdd, 0x14, 0xff, 0x68, 0x07, 0x69, 0xed, 0xb6, 0x41, 0x79, 0xbc, -0xbc, 0x2b, 0xd2, 0x75, 0xb8, 0x9b, 0x6c, 0x6c, 0x2a, 0x71, 0x8d, 0xa7, 0x6f, 0x70, 0x07, 0x01, -0x84, 0x81, 0xaa, 0x69, 0x75, 0x53, 0x9c, 0x42, 0xc8, 0x3f, 0x0b, 0xa2, 0xc6, 0xb5, 0xbf, 0xf4, -0x65, 0xd0, 0x13, 0xbb, 0x97, 0x16, 0x64, 0x54, 0xbe, 0x49, 0xb6, 0x3c, 0x4e, 0x81, 0x71, 0x07, -0xfe, 0x50, 0x49, 0xc0, 0xdf, 0x76, 0xc3, 0x60, 0xfc, 0xd5, 0xae, 0x5d, 0x5d, 0x75, 0xc6, 0x4d, -0x3d, 0x11, 0xff, 0x97, 0x0e, 0x6a, 0x17, 0x78, 0x1c, 0x2a, 0x13, 0x40, 0x22, 0x5d, 0xd2, 0xd6, -0x9b, 0x85, 0x69, 0xbe, 0x34, 0x10, 0xf2, 0x17, 0x42, 0xa8, 0x64, 0xff, 0x2f, 0x8f, 0xf6, 0x84, -0x02, 0x81, 0x40, 0xa8, 0x64, 0xe0, 0x97, 0x83, 0xdd, 0xfc, 0x8b, 0x4a, 0xb2, 0x63, 0x64, 0xf1, -0x8b, 0x91, 0x50, 0x3b, 0x05, 0x17, 0xb8, 0x85, 0x50, 0x20, 0x54, 0xba, 0xef, 0x3f, 0x30, 0xd6, -0xaf, 0x0e, 0xec, 0x3b, 0xf8, 0xab, 0xe3, 0x6b, 0x8e, 0x04, 0x43, 0xc1, 0xc3, 0xc1, 0x50, 0x49, -0x02, 0x23, 0x39, 0x81, 0x31, 0x85, 0xb4, 0x53, 0x46, 0x1a, 0x97, 0xb4, 0x75, 0xb9, 0x72, 0x04, -0x7f, 0xb9, 0xa6, 0x85, 0xc0, 0x47, 0x68, 0x52, 0xf8, 0xec, 0xc1, 0x67, 0x17, 0xd3, 0x9d, 0xab, -0xd3, 0xfd, 0x80, 0xe6, 0x83, 0x20, 0xcc, 0x20, 0x8e, 0x51, 0x0a, 0xfb, 0x3a, 0xb5, 0x76, 0xd2, -0xf3, 0x7c, 0xf5, 0x19, 0x86, 0x88, 0x4c, 0xbf, 0x63, 0xf4, 0xfb, 0x68, 0xd2, 0x82, 0x43, 0x0f, -0x6d, 0x64, 0xb1, 0x9a, 0xc6, 0x84, 0xd6, 0xb3, 0xd0, 0x33, 0xa9, 0x50, 0x1d, 0x3d, 0x2d, 0x5f, -0x98, 0xd1, 0xec, 0x64, 0x31, 0x66, 0xb3, 0x18, 0x3b, 0x93, 0x5f, 0x14, 0xb2, 0xd4, 0x63, 0xa9, -0x2f, 0x62, 0x42, 0x02, 0xe9, 0x4a, 0x9c, 0xed, 0xac, 0x90, 0x6d, 0x8c, 0xfa, 0xb6, 0x61, 0xed, -0x98, 0x66, 0xe2, 0xa9, 0xc5, 0xb2, 0x9f, 0xe9, 0x0b, 0x66, 0xa9, 0x4a, 0xc5, 0x59, 0x5c, 0x3b, -0x2a, 0x53, 0xba, 0x6a, 0xe4, 0x67, 0x10, 0xbe, 0x10, 0x9d, 0x42, 0x3e, 0x0f, 0xa3, 0x39, 0xb8, -0x66, 0xe4, 0x81, 0x0d, 0xb9, 0x32, 0x86, 0x58, 0x79, 0x2a, 0x81, 0xd6, 0x3b, 0x59, 0x0c, 0x97, -0xbe, 0x07, 0x49, 0x6f, 0x28, 0x23, 0x17, 0xa6, 0x87, 0x21, 0xab, 0xb0, 0x93, 0xb4, 0x2f, 0x70, -0x14, 0xa6, 0x52, 0x7b, 0x89, 0x7e, 0xfb, 0x70, 0x54, 0x2e, 0x66, 0x76, 0x50, 0x84, 0x00, 0xf4, -0x4e, 0xef, 0x58, 0x0d, 0x73, 0xa2, 0xe4, 0xfa, 0x49, 0x5f, 0x81, 0x33, 0xe4, 0x1c, 0x2f, 0xdb, -0xfa, 0xb9, 0x26, 0x84, 0x59, 0xf7, 0x09, 0x4a, 0x7a, 0xec, 0xb7, 0x0e, 0x76, 0x5d, 0xd3, 0xdb, -0x28, 0xc0, 0x29, 0xec, 0x0d, 0x09, 0x7b, 0xc3, 0xe6, 0x9d, 0x90, 0xf0, 0x21, 0x4a, 0x5c, 0xc0, -0x0d, 0xff, 0xde, 0x0a, 0x62, 0x29, 0xf3, 0xc6, 0x79, 0xe2, 0x26, 0x3f, 0x4c, 0x0c, 0x34, 0xc2, -0x14, 0xbc, 0x44, 0xf6, 0xee, 0xf1, 0xd4, 0x3b, 0xc6, 0x7b, 0x47, 0x62, 0x73, 0x46, 0xa7, 0x4e, -0x9a, 0xfb, 0xd8, 0xb7, 0xd9, 0x51, 0x85, 0xc5, 0xff, 0x7e, 0x2a, 0xfe, 0x74, 0x3f, 0xcc, 0xf6, -0x75, 0x82, 0xf5, 0xf0, 0x59, 0xc8, 0x4e, 0x8d, 0x0e, 0xdc, 0x4d, 0x66, 0x4f, 0x0d, 0x81, 0x99, -0xfc, 0x67, 0x21, 0x17, 0x6c, 0x14, 0x1f, 0x60, 0xdf, 0xfd, 0x5b, 0xea, 0x3b, 0xb6, 0x7b, 0x1c, -0x5b, 0x03, 0xdc, 0xf3, 0x88, 0x61, 0xf6, 0x1e, 0xf9, 0xe9, 0xcf, 0x11, 0x57, 0x2f, 0x2a, 0x26, -0x2a, 0x65, 0x60, 0x13, 0xfb, 0x35, 0x45, 0xb4, 0x70, 0xeb, 0x99, 0x4a, 0x2b, 0xd7, 0x39, 0x94, -0x41, 0x0e, 0xcd, 0x67, 0x36, 0xb1, 0x24, 0x37, 0xf9, 0x52, 0x1c, 0x77, 0x25, 0x8f, 0x56, 0x6f, -0x74, 0xf9, 0xe7, 0xea, 0x98, 0x33, 0x30, 0x0e, 0x43, 0x36, 0x57, 0x6f, 0xfc, 0x1c, 0x72, 0xaa, -0xf3, 0x98, 0x05, 0x2d, 0x86, 0x15, 0x73, 0xeb, 0xd8, 0xc2, 0xb8, 0xfe, 0xfc, 0x28, 0x59, 0xca, -0xb2, 0x67, 0xa0, 0x70, 0x8c, 0x6b, 0x48, 0xbd, 0xc1, 0xa7, 0x9c, 0x64, 0xb8, 0xf1, 0xa7, 0xd8, -0x13, 0xcf, 0xdd, 0xb0, 0xa2, 0xba, 0xe2, 0x9c, 0xe1, 0x77, 0xf3, 0x75, 0xdc, 0x99, 0xcc, 0x1f, -0x7b, 0xad, 0x3c, 0x0d, 0x53, 0x37, 0x92, 0xed, 0x0f, 0xe8, 0x9c, 0x57, 0x0f, 0xc5, 0x9c, 0x89, -0xbb, 0x12, 0x9a, 0x5b, 0x00, 0xf6, 0xb9, 0xfd, 0x35, 0x0f, 0xe1, 0x3e, 0xb3, 0xd9, 0x3b, 0x91, -0x62, 0x1f, 0x8d, 0xeb, 0xcf, 0x9b, 0x15, 0x80, 0xc7, 0xb0, 0xf4, 0x86, 0xd9, 0x2f, 0x84, 0x9a, -0x4e, 0x7e, 0x97, 0xbe, 0x21, 0xdd, 0xe0, 0x71, 0x83, 0xc9, 0x2f, 0x7b, 0xe9, 0xcb, 0x0a, 0x96, -0x1b, 0xc6, 0x83, 0x0d, 0xcf, 0xe0, 0x57, 0x5b, 0xaa, 0x37, 0x72, 0x3c, 0x18, 0x59, 0x78, 0x6f, -0xdd, 0xd1, 0x2e, 0x42, 0xc4, 0xa1, 0x6f, 0x92, 0xef, 0x13, 0x39, 0x37, 0xb5, 0xf8, 0xdd, 0xfe, -0xc8, 0x43, 0xac, 0x3c, 0xec, 0x2b, 0x92, 0xb0, 0x50, 0xde, 0xec, 0x77, 0xaa, 0x7c, 0x52, 0x5a, -0xe9, 0xb6, 0xa4, 0x97, 0xae, 0x7a, 0x63, 0xeb, 0xec, 0x1d, 0xf1, 0x26, 0x43, 0x24, 0x4e, 0x28, -0xbe, 0x87, 0x47, 0x5a, 0x27, 0x88, 0x77, 0xbf, 0x30, 0x50, 0x97, 0xd3, 0xd7, 0x1b, 0x29, 0xf9, -0x5c, 0x09, 0x98, 0x23, 0x7e, 0x6c, 0x17, 0xd3, 0xe7, 0x02, 0x64, 0xdd, 0x47, 0x9a, 0x98, 0x35, -0x5d, 0xca, 0x1b, 0xcc, 0x86, 0x4f, 0x92, 0xd9, 0xd8, 0x15, 0xb3, 0x88, 0xe7, 0x89, 0x16, 0xd5, -0xcd, 0xce, 0xc2, 0x3a, 0x72, 0xcf, 0xd6, 0x90, 0x81, 0xbb, 0xdb, 0x2c, 0xc5, 0x44, 0x18, 0xb8, -0xca, 0x1b, 0xc4, 0x19, 0xbd, 0xd3, 0xfb, 0x9b, 0x01, 0xc5, 0xa1, 0x8f, 0x8d, 0x53, 0xfc, 0xec, -0x85, 0x9d, 0x2c, 0x1b, 0xab, 0xd7, 0x29, 0x7b, 0xb9, 0x25, 0xbc, 0xd7, 0x86, 0xdc, 0x17, 0x8e, -0x81, 0x3a, 0xcb, 0xe6, 0x97, 0x71, 0x8e, 0x5d, 0xe2, 0x78, 0xe6, 0x3a, 0x6e, 0x25, 0x21, 0x70, -0x9a, 0x13, 0x52, 0x10, 0x59, 0xc7, 0xb2, 0xb4, 0x56, 0x43, 0x71, 0x5d, 0x3b, 0x7e, 0x75, 0x3b, -0x18, 0xea, 0x56, 0xe0, 0xfd, 0x53, 0x60, 0xac, 0x53, 0xad, 0x4b, 0xc7, 0xfd, 0x14, 0x2c, 0x4b, -0xee, 0xc2, 0xdf, 0x26, 0xb0, 0xd6, 0x2d, 0xf4, 0xe1, 0x4e, 0x30, 0x5a, 0x5d, 0x80, 0xdf, 0xd7, -0x94, 0x58, 0x4b, 0x60, 0x42, 0x5d, 0xd0, 0xc0, 0xa8, 0xf4, 0x91, 0xae, 0x82, 0xdb, 0x73, 0x90, -0xbb, 0xb5, 0x1b, 0x40, 0x04, 0x17, 0x5e, 0x39, 0xfa, 0x95, 0x7c, 0xb2, 0xfa, 0x61, 0xca, 0x12, -0xbb, 0xe2, 0xc0, 0xfb, 0x2d, 0x4b, 0xcc, 0x8a, 0x15, 0xef, 0x9f, 0xa9, 0x23, 0xbf, 0x6f, 0xdd, -0x89, 0x92, 0xd1, 0x79, 0x5a, 0x91, 0xc9, 0x65, 0x76, 0xda, 0xc2, 0xab, 0xa3, 0x93, 0xe7, 0xe1, -0xfe, 0x2d, 0xcf, 0x4c, 0x56, 0x12, 0x91, 0x6e, 0x71, 0x3e, 0xc3, 0x30, 0x1e, 0x44, 0xea, 0x71, -0x81, 0x59, 0x4c, 0x1a, 0xd8, 0xef, 0x17, 0x65, 0x20, 0xab, 0x0f, 0x29, 0xc8, 0xbd, 0xae, 0x32, -0xdf, 0xdc, 0xb9, 0x29, 0x5c, 0x38, 0x39, 0x54, 0xe8, 0x02, 0x0b, 0xae, 0x7c, 0xf6, 0x22, 0xdc, -0xc7, 0x1e, 0x18, 0xb6, 0xd9, 0xb1, 0xdc, 0x86, 0x7d, 0xc3, 0x50, 0x7c, 0xbc, 0xeb, 0x78, 0x7c, -0x16, 0xd6, 0xc1, 0x67, 0x30, 0xf9, 0x2f, 0x95, 0x7b, 0x8b, 0x85, 0xb7, 0x3e, 0x1b, 0xbf, 0x03, -0x02, 0xd1, 0x04, 0xcf, 0x38, 0xb8, 0xba, 0x03, 0x8a, 0xdc, 0x60, 0xc2, 0xf5, 0x32, 0x83, 0xf4, -0x00, 0x18, 0x12, 0x12, 0xf6, 0x67, 0xc1, 0x6d, 0xbd, 0x20, 0x05, 0x4b, 0xfe, 0x94, 0xa3, 0xb9, -0xcd, 0xaf, 0xf7, 0xbe, 0xde, 0xfb, 0xe1, 0x43, 0x52, 0xe6, 0xbb, 0x0f, 0x6c, 0x5a, 0xe3, 0x16, -0xde, 0x7d, 0xe8, 0x3b, 0x5d, 0x83, 0x6b, 0x8a, 0x0c, 0x5c, 0x1a, 0xd2, 0x3b, 0x2c, 0xf4, 0x49, -0xc6, 0x50, 0x49, 0xb8, 0x24, 0x9a, 0x5b, 0x60, 0x30, 0x94, 0x40, 0x86, 0x2a, 0x16, 0x19, 0x56, -0xd6, 0xeb, 0x6f, 0xff, 0x43, 0x7f, 0x67, 0xb5, 0x96, 0x82, 0x61, 0x89, 0xc9, 0x14, 0xa7, 0xd9, -0x58, 0x13, 0x28, 0x30, 0x9c, 0xae, 0x38, 0x13, 0xde, 0x3f, 0x6c, 0x99, 0x83, 0x6b, 0x51, 0xe0, -0x68, 0x89, 0x29, 0x30, 0x32, 0x75, 0xdf, 0xb0, 0xe3, 0x5f, 0x68, 0xef, 0x7b, 0xaa, 0x62, 0x4b, -0x09, 0xd9, 0x60, 0x6a, 0x9a, 0x64, 0x38, 0xd2, 0x7d, 0xb4, 0xeb, 0xc3, 0x75, 0x1c, 0xcd, 0x48, -0x16, 0xde, 0x5d, 0xb7, 0xa5, 0x8b, 0x56, 0x2d, 0x63, 0x71, 0xe2, 0x4c, 0xb2, 0x48, 0xf2, 0x86, -0xc0, 0x21, 0x8f, 0x2f, 0x02, 0x6c, 0xc9, 0xee, 0x68, 0x80, 0x59, 0x86, 0x7a, 0xe8, 0x4c, 0x50, -0x0c, 0xb0, 0x96, 0x3a, 0xc5, 0xfc, 0x0b, 0xe2, 0x48, 0x12, 0xfd, 0x3b, 0x90, 0xe6, 0xa8, 0x26, -0xa4, 0xf8, 0x71, 0xc5, 0x12, 0x0e, 0x46, 0x4d, 0xa2, 0x7f, 0x6a, 0x09, 0x18, 0x4b, 0xc8, 0x16, -0x9f, 0xb5, 0x38, 0xb3, 0x1f, 0x20, 0x7c, 0x01, 0xbd, 0x5d, 0xd9, 0x99, 0x27, 0xa5, 0x9f, 0xe3, -0x1c, 0xef, 0x06, 0x97, 0xad, 0x0d, 0x18, 0xbd, 0x2d, 0x0f, 0xf7, 0xa8, 0x05, 0x8a, 0x3f, 0xbc, -0x46, 0xb5, 0x63, 0x2e, 0xdc, 0x2f, 0xe9, 0x93, 0xe4, 0xb9, 0x54, 0x99, 0x1c, 0x13, 0xfa, 0xd7, -0xa8, 0xd9, 0xa3, 0x42, 0x79, 0x7e, 0xd8, 0xaf, 0x25, 0x74, 0x8e, 0x1c, 0x4c, 0xe6, 0x33, 0x40, -0x3d, 0x18, 0xd4, 0x4f, 0x36, 0x7d, 0xb3, 0xe5, 0xf1, 0x4e, 0x5b, 0x6a, 0xd5, 0x71, 0xfa, 0x2b, -0xde, 0x1b, 0xbd, 0xda, 0x20, 0xf5, 0xed, 0x8e, 0xe6, 0x33, 0x89, 0xa5, 0x89, 0xe6, 0x85, 0x62, -0x10, 0x6f, 0xd4, 0xcf, 0xec, 0x26, 0xa4, 0xaf, 0x38, 0xd1, 0xc9, 0xa2, 0x3f, 0xb2, 0x14, 0xa6, -0x90, 0xcd, 0x36, 0x8f, 0x4d, 0xf8, 0x06, 0x38, 0xa3, 0x6e, 0x64, 0x38, 0xbf, 0x69, 0x2b, 0x0e, -0xe5, 0xbf, 0x98, 0xdb, 0x07, 0x9b, 0xb9, 0xcc, 0x66, 0x7c, 0x5b, 0xf5, 0xc6, 0xe4, 0xda, 0x1e, -0x62, 0x75, 0x9d, 0x2d, 0x55, 0xb3, 0x15, 0xd1, 0x1e, 0x5e, 0x0a, 0x62, 0xd4, 0x92, 0xd2, 0x8f, -0xc0, 0x9d, 0x4a, 0x36, 0x7b, 0x63, 0x8d, 0xcd, 0x49, 0xd3, 0x28, 0x0b, 0x8f, 0xd5, 0xa0, 0xf0, -0xf2, 0x35, 0xca, 0x2a, 0x85, 0x46, 0x5b, 0x45, 0x61, 0x9e, 0x82, 0x9e, 0xeb, 0xb6, 0x84, 0x9d, -0x32, 0xd3, 0xd3, 0xae, 0x4a, 0xa6, 0xd6, 0x8b, 0x25, 0x97, 0x99, 0x87, 0xa4, 0xd4, 0x89, 0x3a, -0xf3, 0x49, 0x4f, 0xb6, 0xc2, 0xac, 0xef, 0x9d, 0x38, 0x6f, 0x72, 0xf3, 0xcc, 0xce, 0xf1, 0x2e, -0x90, 0x6d, 0x8a, 0x2b, 0xdc, 0x13, 0xcd, 0x65, 0x6d, 0x9f, 0xa0, 0x15, 0x36, 0x66, 0x5d, 0x6c, -0x54, 0xad, 0x76, 0xb2, 0x51, 0x30, 0x85, 0x57, 0xab, 0x46, 0xea, 0x0d, 0x9c, 0x61, 0x81, 0x64, -0x3f, 0x1c, 0xac, 0x7c, 0xb3, 0x5e, 0xef, 0x6f, 0xae, 0x73, 0x82, 0x5f, 0xd8, 0x74, 0x5e, 0x9a, -0xad, 0x92, 0xe3, 0x07, 0xb9, 0x9e, 0x32, 0xe5, 0x27, 0x83, 0x0b, 0xfb, 0x89, 0xe7, 0x4a, 0xc8, -0xf2, 0x62, 0x30, 0x39, 0xc6, 0xb2, 0x45, 0x3f, 0xf3, 0x7e, 0x4c, 0xf4, 0xc6, 0x58, 0x1e, 0xdf, -0x1f, 0x57, 0x8c, 0xab, 0x71, 0xbc, 0x25, 0x66, 0x33, 0xcb, 0xeb, 0x15, 0x2a, 0x3d, 0xcf, 0x8d, -0x69, 0x95, 0x98, 0x3d, 0x16, 0xb7, 0x4d, 0xae, 0x70, 0x2f, 0x6a, 0x87, 0x0e, 0xd2, 0x30, 0x33, -0x33, 0x1b, 0x3d, 0x8b, 0x1b, 0xa9, 0x5f, 0xed, 0x3a, 0xc2, 0x8c, 0x33, 0x03, 0x7c, 0x46, 0x05, -0xf8, 0x80, 0xe4, 0x4f, 0x74, 0x7e, 0x9e, 0xa1, 0x0d, 0x3e, 0x24, 0x96, 0x73, 0xdb, 0x10, 0x89, -0xaf, 0xea, 0x47, 0xa4, 0xac, 0x7c, 0xc1, 0x70, 0x3f, 0xc0, 0x49, 0x88, 0x4d, 0x3c, 0xf9, 0xbc, -0x6b, 0x2e, 0xff, 0x75, 0x8b, 0x26, 0xce, 0x2d, 0x39, 0x8f, 0xc4, 0x49, 0x30, 0xc4, 0x73, 0xd9, -0x59, 0x19, 0xfd, 0x55, 0x6d, 0x73, 0xac, 0x31, 0xb0, 0x8f, 0x0b, 0x77, 0xe1, 0xf6, 0x64, 0xbd, -0xd2, 0xc9, 0xe5, 0x4e, 0xb1, 0x68, 0x39, 0xec, 0x8b, 0xaf, 0xca, 0x79, 0xb1, 0x2b, 0x5a, 0xdd, -0x90, 0x8d, 0x6d, 0x65, 0xee, 0xef, 0x8a, 0xce, 0x9e, 0x52, 0x0c, 0x76, 0x0c, 0xf1, 0x84, 0xbb, -0xa2, 0x85, 0x8a, 0xca, 0x30, 0xfa, 0x7b, 0xa3, 0x72, 0x9d, 0x85, 0x3d, 0xc5, 0xd5, 0x05, 0xca, -0x14, 0xf6, 0xd4, 0x17, 0xe5, 0x21, 0x5b, 0xd5, 0x80, 0x22, 0x8a, 0x4f, 0xe1, 0x58, 0x2b, 0xf6, -0x3d, 0x05, 0x26, 0x65, 0x96, 0xfd, 0x29, 0x18, 0xa7, 0xf8, 0x0a, 0x28, 0x3f, 0x21, 0xfc, 0x14, -0xe9, 0xf1, 0x28, 0x39, 0x7a, 0xee, 0xf4, 0xcb, 0x2a, 0x19, 0xc9, 0x3a, 0xbc, 0x1c, 0x7e, 0x69, -0x57, 0x2c, 0xf9, 0xc6, 0xb7, 0x9e, 0xdf, 0x68, 0x57, 0x0c, 0x35, 0x3d, 0x91, 0x9e, 0xda, 0x75, -0x22, 0xd9, 0x55, 0x7d, 0x44, 0x76, 0xda, 0xdc, 0x77, 0x31, 0x43, 0xe8, 0x2c, 0x90, 0x43, 0xde, -0x0a, 0xb0, 0xcb, 0x36, 0x36, 0xaa, 0x65, 0xa6, 0xb9, 0x68, 0x0f, 0xf4, 0x29, 0x93, 0x9d, 0x7e, -0xb1, 0x46, 0x5a, 0x0e, 0x46, 0xf9, 0x80, 0xfc, 0x32, 0xce, 0x31, 0x3b, 0xef, 0x5b, 0x6c, 0xed, -0xb7, 0x91, 0x1b, 0x30, 0xea, 0xf6, 0x17, 0xb8, 0xe6, 0xe8, 0xdc, 0x92, 0x2f, 0xa5, 0x9d, 0x81, -0xbb, 0x84, 0x29, 0x35, 0xb4, 0x4a, 0x4d, 0x51, 0xed, 0xd8, 0x77, 0x93, 0x91, 0xbe, 0x86, 0x37, -0xbf, 0x4c, 0xdf, 0x8f, 0x5c, 0x4a, 0x69, 0x66, 0x24, 0xfc, 0x62, 0x88, 0xb3, 0x71, 0xdd, 0xaa, -0xe0, 0x1c, 0x17, 0xac, 0x73, 0x2d, 0x85, 0x2c, 0x66, 0xf1, 0xb2, 0x4a, 0x1e, 0x9f, 0x4a, 0x11, -0xe7, 0x28, 0xd9, 0x6b, 0x4f, 0x56, 0xc9, 0x9f, 0xb3, 0x65, 0xda, 0x3c, 0x98, 0xac, 0xd8, 0x03, -0x4f, 0x83, 0x25, 0x85, 0x2e, 0x35, 0xb2, 0x36, 0x4d, 0xe7, 0x03, 0x39, 0x2d, 0x75, 0xce, 0xdc, -0x73, 0x38, 0xd3, 0x53, 0xe8, 0x53, 0x87, 0x4a, 0xcf, 0xa6, 0xf8, 0x45, 0xcd, 0x88, 0xf3, 0x6c, -0x32, 0x9b, 0x67, 0x96, 0x54, 0x0a, 0x69, 0xb1, 0x5f, 0xe2, 0x1c, 0x23, 0x5b, 0x57, 0x91, 0x27, -0x94, 0x2b, 0x9c, 0x84, 0x57, 0xf0, 0x69, 0x36, 0xe6, 0x2a, 0x1d, 0x80, 0xcf, 0x93, 0xf9, 0x73, -0xbf, 0x41, 0x35, 0x85, 0x0d, 0xea, 0x29, 0xbb, 0x81, 0x5b, 0xb7, 0x13, 0x6e, 0xa8, 0x68, 0xe8, -0xeb, 0xe2, 0x1c, 0x13, 0xc7, 0x76, 0x77, 0x02, 0xd3, 0xed, 0x28, 0xa2, 0x74, 0x58, 0x2a, 0xc1, -0xb4, 0x54, 0x82, 0x7a, 0x2a, 0x96, 0xb0, 0x21, 0x6a, 0xac, 0xe9, 0x51, 0xdf, 0x48, 0xa4, 0xc4, -0xf5, 0x3a, 0xb6, 0xc4, 0x75, 0x1c, 0x71, 0x86, 0xcc, 0x5e, 0xf5, 0x75, 0xc5, 0x88, 0x63, 0xc8, -0x2c, 0xe5, 0xa8, 0x97, 0x02, 0x7e, 0x9c, 0x4d, 0x02, 0xc7, 0x21, 0x40, 0x0e, 0xfc, 0x17, 0x87, -0x07, 0x5a, 0x6f, 0xde, 0xd1, 0x5b, 0x9f, 0x2d, 0x01, 0x43, 0x55, 0xf2, 0xb7, 0x4d, 0xd9, 0xd9, -0xd5, 0xc0, 0x74, 0x45, 0xe0, 0xb7, 0x51, 0xc2, 0x29, 0x11, 0x69, 0x6f, 0xc4, 0xe2, 0xfe, 0xdf, -0x31, 0x71, 0xc5, 0x36, 0x5b, 0x32, 0xee, 0x3b, 0x14, 0x57, 0x3b, 0xc9, 0xb1, 0x0a, 0xe6, 0x14, -0xc8, 0x66, 0x97, 0xcd, 0x59, 0xe1, 0xfe, 0x74, 0x3b, 0x90, 0x57, 0x2d, 0x7d, 0x1e, 0xe5, 0xe1, -0x3c, 0x7a, 0x10, 0xe7, 0xd1, 0x10, 0xce, 0xa3, 0x29, 0x38, 0x8f, 0x2e, 0xa4, 0xcd, 0xa3, 0x35, -0xc8, 0x4f, 0x32, 0x8b, 0x55, 0x5d, 0xfe, 0x7b, 0x4c, 0xba, 0x91, 0xe6, 0x0a, 0xcd, 0xa3, 0xce, -0x89, 0xe7, 0xb6, 0x79, 0x04, 0xc3, 0x5a, 0x9a, 0x45, 0x52, 0xe0, 0xd5, 0x97, 0x0c, 0x5d, 0xb4, -0x59, 0xb7, 0x76, 0xe5, 0xd0, 0x29, 0x73, 0x6b, 0x5d, 0x8e, 0xb5, 0x8b, 0xa1, 0xc1, 0xce, 0xb2, -0x76, 0xd9, 0xe9, 0x1e, 0x60, 0x33, 0x04, 0x67, 0x82, 0xb5, 0xab, 0x97, 0x7e, 0xcf, 0xa6, 0x39, -0x42, 0x45, 0x54, 0x3b, 0x15, 0x8c, 0xd3, 0x47, 0x61, 0x38, 0x57, 0x28, 0x0d, 0xb5, 0x51, 0xa9, -0x64, 0x7a, 0xec, 0xe0, 0x9b, 0xa4, 0x2c, 0xe2, 0x4f, 0xf6, 0x49, 0x4a, 0x35, 0xd3, 0x35, 0x79, -0x58, 0xa9, 0xa2, 0x7b, 0xc1, 0x97, 0x14, 0x0b, 0xdd, 0xed, 0x93, 0x42, 0xf1, 0x02, 0xbf, 0xf8, -0x80, 0x52, 0x44, 0x68, 0x1c, 0xba, 0x4f, 0x3f, 0x0c, 0x17, 0x84, 0x2f, 0x33, 0xcf, 0x00, 0x91, -0xb8, 0x92, 0x73, 0xed, 0x37, 0xc1, 0xb8, 0x18, 0xd7, 0xe7, 0xd2, 0x83, 0xe2, 0x8d, 0x38, 0x97, -0x2e, 0xd0, 0x5c, 0xaa, 0x64, 0x7a, 0x83, 0x62, 0x8b, 0xee, 0xc1, 0x9c, 0xe8, 0x5c, 0x36, 0xf6, -0x8c, 0x6b, 0xf0, 0x79, 0x30, 0xeb, 0xa7, 0x3e, 0x2d, 0x90, 0x9b, 0xb0, 0xf9, 0x20, 0x2c, 0x5c, -0xb3, 0x0b, 0xb9, 0xaa, 0x2f, 0x44, 0xdd, 0xcc, 0x2f, 0x45, 0xca, 0xfa, 0xfb, 0x1c, 0xae, 0x2d, -0xb9, 0x62, 0x29, 0x8e, 0x4c, 0x6e, 0x65, 0x4b, 0xfe, 0x93, 0x0d, 0xb2, 0x45, 0x8e, 0xd0, 0x08, -0x08, 0x6f, 0x52, 0x4f, 0xe3, 0x2c, 0x30, 0x89, 0x86, 0xaf, 0xc4, 0x75, 0x54, 0x6c, 0x36, 0x1e, -0xb8, 0xac, 0xe9, 0x6d, 0x19, 0x2f, 0x80, 0xcb, 0x7f, 0xbc, 0x84, 0x17, 0x72, 0x19, 0x67, 0x5d, -0x78, 0xf5, 0xc1, 0xe5, 0x77, 0xf1, 0xf7, 0x99, 0x7a, 0xb8, 0x7c, 0xce, 0x8f, 0xf7, 0xc7, 0xf1, -0xbe, 0x7a, 0x94, 0xac, 0xe6, 0xf2, 0xbb, 0x6d, 0x78, 0xe1, 0xb7, 0xe7, 0xf6, 0xc2, 0xe5, 0xf7, -0x3a, 0xf1, 0xbe, 0x00, 0xef, 0x07, 0x30, 0x0c, 0xaf, 0x33, 0xa7, 0xff, 0x17, 0xe5, 0x41, 0x2d, -0x2d, 0xb1, 0x94, 0x2c, 0xa8, 0x20, 0xff, 0xb6, 0xd1, 0xa2, 0xa0, 0xb4, 0xb7, 0xc0, 0xe4, 0x40, -0x7f, 0x78, 0x12, 0x86, 0xc6, 0x15, 0x75, 0xb9, 0xc7, 0xdf, 0x85, 0xcf, 0xdf, 0xc6, 0xeb, 0x5f, -0xf0, 0x7a, 0x29, 0x91, 0xa4, 0x01, 0x6b, 0x74, 0xea, 0x38, 0xaf, 0xc1, 0xdb, 0xb5, 0x70, 0xf9, -0x82, 0xca, 0x9f, 0xff, 0x64, 0xe4, 0x52, 0x9c, 0x0b, 0x59, 0x78, 0xcf, 0xc4, 0xdf, 0xf9, 0x14, -0x19, 0xef, 0xa4, 0x9f, 0x94, 0x91, 0xaa, 0xf5, 0x69, 0x37, 0xb6, 0x92, 0x9f, 0xc7, 0x3d, 0x3d, -0x1b, 0xaf, 0xed, 0x2c, 0xfe, 0xa8, 0x96, 0xf9, 0xcb, 0xb9, 0xd1, 0xbf, 0x2f, 0x2d, 0xd6, 0xef, -0xb3, 0xf9, 0x77, 0x1f, 0x3d, 0xc6, 0xf3, 0xf8, 0xe8, 0x14, 0xcf, 0xe3, 0xaf, 0x6a, 0x7a, 0x1e, -0x91, 0x96, 0x96, 0x36, 0x98, 0xdf, 0xd0, 0x76, 0x37, 0x7f, 0xba, 0xd6, 0x1f, 0xf6, 0xf6, 0x9e, -0x65, 0xcd, 0x78, 0x5b, 0xd2, 0x74, 0xf7, 0x3d, 0xf7, 0x40, 0x73, 0xda, 0x33, 0x7b, 0xf9, 0xd5, -0x2f, 0x7e, 0xb1, 0x5a, 0x4c, 0x86, 0xfd, 0xb3, 0x78, 0xe7, 0x8a, 0x65, 0xcd, 0xb1, 0xa6, 0x86, -0xe6, 0x86, 0x15, 0x6d, 0x0d, 0xf5, 0xf4, 0x62, 0x69, 0x4b, 0xbd, 0xe8, 0xeb, 0x98, 0xe6, 0x2b, -0xaa, 0x15, 0x97, 0xdc, 0xdd, 0xd4, 0x84, 0x81, 0x2d, 0x2b, 0x44, 0x16, 0x99, 0x82, 0x63, 0xa2, -0x6b, 0xda, 0x3d, 0x33, 0x2c, 0x57, 0x25, 0x53, 0x81, 0x9f, 0xb7, 0xaa, 0x77, 0x2f, 0x69, 0x10, -0x2b, 0x82, 0xe2, 0xb4, 0x7b, 0xae, 0x8e, 0xf0, 0xc5, 0xba, 0xc6, 0x86, 0x25, 0x6d, 0x2c, 0x09, -0xcb, 0xa8, 0x52, 0x8d, 0x29, 0xfc, 0xcc, 0x99, 0x62, 0xac, 0x75, 0x59, 0xfb, 0xdd, 0x6d, 0x0d, -0x7a, 0xa6, 0x18, 0x00, 0x65, 0xad, 0xad, 0x2d, 0xad, 0xb3, 0xc5, 0xba, 0xbb, 0xef, 0x69, 0xa0, -0x0f, 0xbf, 0xb6, 0xa4, 0xa5, 0xa1, 0x75, 0x49, 0x83, 0x5e, 0xd8, 0x68, 0x4b, 0x5b, 0xa2, 0xdc, -0x54, 0x60, 0xb1, 0xad, 0x45, 0xbc, 0x77, 0xc5, 0xf2, 0x15, 0x2d, 0xdf, 0x58, 0x21, 0x2e, 0x4b, -0x96, 0x6a, 0x5a, 0xbd, 0x05, 0x12, 0xe9, 0x52, 0x32, 0xa9, 0xa2, 0x41, 0x2b, 0xe6, 0x9d, 0x56, -0x14, 0x56, 0x8a, 0xa4, 0xec, 0xee, 0x1d, 0x5f, 0xda, 0x73, 0x38, 0x31, 0xfa, 0xe8, 0xcf, 0xf5, -0x65, 0x78, 0x7f, 0x28, 0xfc, 0x5b, 0x32, 0xbc, 0x3f, 0x14, 0xff, 0x03, 0x32, 0x3c, 0xe1, 0x6f, -0xc9, 0xf0, 0xfe, 0xd0, 0x74, 0x7d, 0x19, 0xde, 0x1f, 0x16, 0x8f, 0x95, 0xe1, 0xfd, 0xf1, 0xf4, -0x27, 0xc9, 0xf0, 0xfe, 0x78, 0x7c, 0xac, 0x0c, 0xef, 0x0f, 0x0b, 0xae, 0x96, 0xe1, 0xfd, 0xa1, -0xfe, 0x7f, 0x2e, 0xc3, 0x63, 0x08, 0x44, 0x66, 0x69, 0xa9, 0x21, 0x98, 0x86, 0x50, 0x21, 0xe8, -0x58, 0xc6, 0x67, 0x18, 0x37, 0xdb, 0x0c, 0xe6, 0xd8, 0xb8, 0x14, 0xbe, 0xc5, 0x34, 0xbf, 0x21, -0x88, 0x34, 0xff, 0x6c, 0xc9, 0x59, 0xa8, 0x9e, 0x16, 0x82, 0xda, 0xc0, 0x76, 0x58, 0x80, 0xcf, -0x0b, 0xf0, 0xb9, 0x9a, 0xa4, 0x24, 0xa3, 0xa4, 0x59, 0xeb, 0x30, 0x74, 0x13, 0xc6, 0xd8, 0x80, -0xcf, 0x1b, 0xf0, 0x79, 0x1d, 0xde, 0x17, 0xa7, 0xc7, 0x10, 0x3e, 0x4a, 0xfd, 0x62, 0x2d, 0x43, -0x52, 0x82, 0x5b, 0x88, 0x2b, 0x7f, 0xff, 0xc8, 0x34, 0xbf, 0x70, 0x81, 0xa1, 0x70, 0x74, 0x92, -0x4e, 0xc0, 0xe9, 0x46, 0xed, 0x4c, 0xc9, 0x59, 0x83, 0x27, 0x2f, 0xa4, 0x9d, 0x63, 0xbf, 0x5b, -0xb4, 0xf3, 0xf8, 0xdb, 0x87, 0xbf, 0x2f, 0x06, 0x9e, 0xe5, 0x98, 0x0d, 0x98, 0x42, 0xb3, 0x76, -0x06, 0xbf, 0x1e, 0xca, 0xb0, 0x23, 0xd7, 0xef, 0x8f, 0x06, 0x98, 0x4c, 0x69, 0xc8, 0xa0, 0xd6, -0xd2, 0xaf, 0x42, 0xfe, 0x4b, 0x28, 0x60, 0xbf, 0x9c, 0x5c, 0xde, 0xf4, 0xf1, 0x45, 0xf6, 0x2b, -0x87, 0xff, 0xfa, 0x8b, 0x11, 0x73, 0x7d, 0xa3, 0x76, 0x63, 0xd2, 0x83, 0x0c, 0xe9, 0x29, 0x36, -0x6b, 0x27, 0x3d, 0xcd, 0xda, 0x69, 0x3a, 0x03, 0xa0, 0xd5, 0x98, 0x71, 0x54, 0x66, 0x67, 0x55, -0xd4, 0x53, 0xf6, 0x01, 0x48, 0x29, 0x54, 0x9e, 0x2b, 0x87, 0x4a, 0xde, 0x83, 0x6a, 0x29, 0x89, -0xc1, 0xa6, 0x59, 0xd2, 0xde, 0xbd, 0x44, 0x1c, 0x55, 0x9a, 0x4d, 0x65, 0x48, 0x36, 0x93, 0xa6, -0xc5, 0xe9, 0x36, 0x4c, 0xf1, 0x39, 0xed, 0x58, 0x9e, 0x5f, 0x1b, 0x46, 0xda, 0x3f, 0x59, 0x6c, -0xd4, 0x86, 0x6b, 0xb6, 0x41, 0x3e, 0xdd, 0x99, 0xd6, 0x03, 0xad, 0x67, 0x93, 0xe9, 0xf4, 0x36, -0x65, 0x23, 0x99, 0xc8, 0x7f, 0x4c, 0xee, 0x8b, 0x46, 0xe7, 0x3e, 0x72, 0x0e, 0xb9, 0xbb, 0xb4, -0xfc, 0x09, 0xa5, 0x8c, 0x95, 0xe0, 0xeb, 0x1c, 0xa7, 0x4c, 0x9c, 0x8d, 0xbc, 0xca, 0x78, 0x57, -0x55, 0xf8, 0x39, 0x43, 0xa5, 0x6a, 0x67, 0x65, 0xf9, 0x66, 0x2c, 0x83, 0xca, 0x32, 0xd3, 0x6f, -0xa8, 0xcc, 0x6b, 0x32, 0x54, 0x6a, 0x17, 0xf3, 0x02, 0xda, 0xa5, 0xbc, 0xb0, 0x36, 0x2c, 0x2e, -0x67, 0xa5, 0xb9, 0xe8, 0x9d, 0x90, 0x2a, 0xcd, 0x62, 0x63, 0xc2, 0xe7, 0x09, 0xe3, 0xef, 0xcc, -0x72, 0x95, 0x6b, 0x85, 0x70, 0x61, 0xee, 0x07, 0xc2, 0x47, 0xe9, 0x1c, 0x19, 0xc7, 0x0d, 0xa5, -0x13, 0x65, 0xa6, 0xa5, 0x4a, 0xf3, 0xc1, 0xca, 0x70, 0x3c, 0xad, 0x31, 0xcb, 0x5b, 0xdb, 0x19, -0xdf, 0x33, 0x6f, 0xcc, 0xbe, 0xca, 0x98, 0xdc, 0x47, 0x55, 0x90, 0x0f, 0x3c, 0xaf, 0x8b, 0x59, -0x69, 0x0e, 0x99, 0xde, 0xd6, 0xbf, 0xc7, 0x9d, 0xbc, 0x4c, 0xbb, 0x03, 0x3b, 0xeb, 0x9b, 0xaf, -0xa5, 0xf9, 0x11, 0x01, 0x09, 0x4b, 0x40, 0x3b, 0x41, 0xef, 0x78, 0xf2, 0x9f, 0x92, 0xcc, 0x11, -0xbf, 0x38, 0xba, 0x0d, 0xcc, 0xa2, 0x81, 0x50, 0x88, 0x92, 0x48, 0xdd, 0x97, 0x78, 0x1b, 0x88, -0x15, 0xb2, 0x6d, 0x17, 0xe3, 0x88, 0x19, 0xaf, 0x48, 0xde, 0x15, 0x3a, 0x99, 0x2d, 0xf1, 0x2c, -0xdc, 0x47, 0xe6, 0x47, 0xb6, 0xb0, 0x96, 0x59, 0x85, 0x94, 0x23, 0xa0, 0xf7, 0x13, 0x6b, 0x11, -0x6c, 0x8d, 0x4b, 0xde, 0x09, 0xd8, 0x1e, 0xcb, 0x61, 0x4a, 0x22, 0x1f, 0xd5, 0x54, 0xb3, 0x45, -0x3f, 0x31, 0x32, 0xf2, 0xd1, 0xc2, 0xda, 0x66, 0x0e, 0xf5, 0x15, 0xb5, 0xcd, 0x3c, 0x6a, 0x9b, -0x34, 0x8b, 0x5d, 0xfc, 0x3e, 0xd9, 0x36, 0x49, 0x8c, 0x15, 0x31, 0xa6, 0x31, 0x2c, 0x7e, 0x9b, -0x98, 0x67, 0x70, 0xd1, 0x59, 0x70, 0x24, 0x3e, 0xdd, 0x6f, 0x70, 0x91, 0xad, 0x03, 0x6b, 0xb1, -0x95, 0x31, 0x47, 0xba, 0xff, 0x63, 0x6d, 0x36, 0x93, 0x50, 0x36, 0x8e, 0x42, 0xc5, 0x48, 0xc3, -0x76, 0x25, 0x8b, 0x58, 0x1c, 0xf7, 0x49, 0x54, 0x0c, 0x19, 0x53, 0x8d, 0x74, 0x4f, 0x0f, 0x60, -0xda, 0x01, 0x9e, 0x22, 0xb3, 0x9a, 0x25, 0xcf, 0xda, 0x16, 0x86, 0x15, 0x7b, 0xf9, 0x83, 0x57, -0xb8, 0x36, 0xb1, 0x14, 0x8e, 0x39, 0x52, 0x74, 0xa3, 0x0d, 0x14, 0x6b, 0xb8, 0x5b, 0xc5, 0xdd, -0x70, 0x9b, 0x16, 0xd9, 0x0e, 0xf6, 0x74, 0x6b, 0x61, 0x66, 0x13, 0x62, 0xd4, 0x65, 0xab, 0x66, -0xd9, 0x26, 0x87, 0x14, 0x9f, 0x13, 0xf9, 0x1e, 0x2e, 0x93, 0x74, 0xc6, 0x89, 0x07, 0x0a, 0xf7, -0xa9, 0x93, 0x15, 0x13, 0x3e, 0x59, 0x03, 0x7d, 0xc8, 0xe5, 0x9b, 0xd5, 0x8b, 0xfa, 0x5e, 0x73, -0x43, 0xc0, 0xaf, 0x58, 0xab, 0xd7, 0x89, 0x11, 0x26, 0x7d, 0x38, 0x40, 0x9a, 0x34, 0x95, 0xba, -0x67, 0x83, 0x36, 0x71, 0x67, 0xbc, 0xa1, 0x0e, 0x77, 0x77, 0x0b, 0x9c, 0x06, 0x43, 0xe9, 0x30, -0xec, 0xe8, 0x51, 0x43, 0xc4, 0x37, 0x67, 0x68, 0xfd, 0xdd, 0x4b, 0xfc, 0x4e, 0xc3, 0xb1, 0xee, -0x63, 0x3d, 0xb7, 0xe2, 0x48, 0x28, 0x02, 0xa7, 0xf1, 0x8f, 0x4f, 0xdf, 0xbf, 0x49, 0x71, 0xb7, -0x1b, 0x76, 0x75, 0x47, 0x6d, 0xd9, 0xc5, 0x90, 0x81, 0xf7, 0x2c, 0x9c, 0x4f, 0x2e, 0x25, 0x9b, -0xb8, 0x3b, 0x96, 0xb6, 0x4d, 0x99, 0x4c, 0x96, 0xb9, 0x91, 0xee, 0x77, 0xd6, 0x1d, 0xde, 0x57, -0xdd, 0x2b, 0xdb, 0xdb, 0x31, 0x56, 0xc3, 0x13, 0xca, 0xc1, 0x84, 0x0f, 0x3f, 0x23, 0xb7, 0x72, -0xe0, 0x92, 0x84, 0x21, 0xe3, 0xce, 0xea, 0x24, 0x76, 0x16, 0xdf, 0x03, 0x29, 0xe4, 0x07, 0xc2, -0x18, 0x7e, 0x38, 0x6a, 0x65, 0x25, 0x3f, 0x48, 0xf5, 0x0a, 0xf4, 0x25, 0xcb, 0x7e, 0x8a, 0xef, -0x76, 0xf4, 0xf8, 0xe6, 0xa8, 0x6b, 0x2c, 0x75, 0x48, 0xa3, 0x0c, 0xc6, 0xd1, 0x94, 0x21, 0x98, -0x98, 0x97, 0x34, 0x26, 0x69, 0x2f, 0x32, 0x5e, 0xa6, 0x79, 0x19, 0xd2, 0xe7, 0x65, 0x4f, 0xcc, -0xa0, 0xcf, 0xcb, 0x50, 0x5e, 0xa3, 0x21, 0x84, 0x23, 0x30, 0x90, 0x9c, 0x93, 0x97, 0xd2, 0xe7, -0x64, 0xa5, 0x91, 0xdb, 0x26, 0x93, 0xec, 0x0e, 0xe7, 0x43, 0x0b, 0xc7, 0x3f, 0x22, 0xbb, 0x0e, -0x3e, 0x3e, 0xe6, 0x38, 0xaa, 0x37, 0x92, 0x9e, 0x99, 0x14, 0x79, 0xf5, 0x80, 0x78, 0x5b, 0x2f, -0x20, 0xb7, 0xec, 0xdf, 0x49, 0x76, 0x22, 0x26, 0x91, 0x24, 0xee, 0x17, 0x38, 0xe6, 0x24, 0xf1, -0xb9, 0x5e, 0x9c, 0xa1, 0x64, 0xe3, 0x91, 0xf8, 0x8a, 0x76, 0x15, 0xa4, 0xd9, 0xdd, 0x0a, 0x64, -0x59, 0xc3, 0x77, 0x2f, 0x83, 0xdd, 0x91, 0xae, 0xb6, 0x82, 0x9d, 0x5d, 0x51, 0xa3, 0x23, 0x47, -0x3d, 0xa7, 0x6b, 0x6d, 0x5b, 0x23, 0x5d, 0x03, 0x5d, 0x3a, 0x0a, 0x1a, 0xe9, 0x55, 0xd9, 0xb1, -0x04, 0x0e, 0xdd, 0x9b, 0xc4, 0x8b, 0xa9, 0xdc, 0xe5, 0xaf, 0xf7, 0x02, 0xf3, 0x6b, 0xd7, 0xa7, -0xd8, 0xf1, 0xad, 0x1b, 0x5b, 0x62, 0x33, 0x93, 0x92, 0x9b, 0xf5, 0xd3, 0xdd, 0xb3, 0xb4, 0x46, -0x59, 0xd9, 0xa8, 0x2a, 0x26, 0xab, 0x97, 0x5c, 0x87, 0x17, 0x6e, 0x8d, 0x65, 0xa5, 0x5b, 0x2a, -0xb0, 0x91, 0xdf, 0x11, 0xbb, 0x65, 0xa5, 0x90, 0x03, 0x52, 0xe6, 0x5b, 0x4f, 0xed, 0xeb, 0x59, -0x78, 0x40, 0xfb, 0x48, 0x35, 0x07, 0xfc, 0x35, 0xf1, 0xc6, 0x73, 0xd5, 0xfb, 0x23, 0xc6, 0xd0, -0xea, 0xd0, 0xfe, 0x76, 0xe1, 0xdd, 0xa7, 0x6b, 0x7a, 0xc4, 0x8c, 0x77, 0x7a, 0x07, 0x7b, 0xc6, -0xfa, 0x0e, 0x97, 0xe3, 0x35, 0x3d, 0xe4, 0x5b, 0xe3, 0xa6, 0x00, 0xd8, 0xad, 0x06, 0xb2, 0x16, -0xc5, 0xbf, 0x06, 0x55, 0x56, 0xb2, 0xa6, 0xe1, 0x0a, 0xf3, 0xbe, 0x19, 0x8c, 0xec, 0x1e, 0x24, -0x4f, 0xa5, 0xec, 0x69, 0x9d, 0x1e, 0xb2, 0x08, 0xa9, 0x09, 0x21, 0xaf, 0x15, 0xb3, 0x91, 0x4a, -0x78, 0x23, 0xa2, 0x4b, 0xd7, 0xf9, 0xfa, 0xd6, 0xaf, 0xdb, 0x88, 0xc7, 0xff, 0xfa, 0x6e, 0x9c, -0x31, 0x2e, 0xbb, 0x37, 0x03, 0x47, 0xd3, 0x16, 0x31, 0x58, 0xbd, 0x91, 0x8d, 0x91, 0x0f, 0x22, -0xdd, 0xb8, 0xaf, 0x70, 0xd3, 0xac, 0x96, 0x22, 0xfd, 0xdd, 0x75, 0xc7, 0xd3, 0xa4, 0x42, 0xe1, -0x58, 0x56, 0xba, 0x6d, 0xc4, 0x62, 0x1a, 0x8d, 0x13, 0xf8, 0x49, 0x91, 0x13, 0xdb, 0x91, 0x79, -0xd2, 0x23, 0xeb, 0x03, 0x73, 0x55, 0x1f, 0xd3, 0xe8, 0x8b, 0x38, 0xfb, 0xcd, 0x20, 0x46, 0xa6, -0x3e, 0x68, 0x86, 0xea, 0x8d, 0xf2, 0xd7, 0x9c, 0x8c, 0x4b, 0x99, 0x43, 0xf6, 0x57, 0x2e, 0x8c, -0xef, 0x71, 0xb7, 0x00, 0x79, 0xf4, 0x65, 0x7a, 0x6d, 0xed, 0xd0, 0x06, 0x15, 0x43, 0xda, 0x0e, -0xc5, 0x27, 0xd6, 0xc8, 0xb1, 0x22, 0x50, 0xa6, 0x78, 0x8d, 0xde, 0x4c, 0xec, 0x93, 0x84, 0x8f, -0x52, 0xa7, 0xd7, 0xc8, 0xb4, 0xb8, 0xb6, 0xc8, 0x11, 0x0a, 0xe1, 0xe7, 0xeb, 0x58, 0xd6, 0x1e, -0x31, 0x8f, 0xca, 0x8a, 0x25, 0x7d, 0x29, 0x61, 0x89, 0x54, 0xdc, 0xf9, 0xb7, 0xca, 0x25, 0xc6, -0xa8, 0x44, 0x9b, 0x5f, 0x56, 0x72, 0x7f, 0x72, 0x40, 0x75, 0x48, 0x9c, 0xae, 0x9a, 0xa4, 0xae, -0x40, 0x9f, 0x62, 0x92, 0x22, 0xb7, 0xe2, 0x0e, 0x50, 0x0a, 0x89, 0xd5, 0xac, 0x3d, 0xde, 0xe0, -0xe5, 0x66, 0xba, 0xc2, 0x2d, 0xc4, 0xb3, 0xe0, 0xe8, 0xca, 0x95, 0xe1, 0xfd, 0x75, 0x5b, 0xe2, -0x21, 0x7f, 0xc0, 0x3f, 0xd8, 0x6d, 0xe8, 0x61, 0x23, 0xad, 0x27, 0x31, 0xd2, 0xb2, 0x73, 0xd4, -0x93, 0xcc, 0xbf, 0x58, 0x72, 0xa4, 0x31, 0x4f, 0x53, 0xff, 0xe0, 0xd8, 0xf4, 0x1a, 0x08, 0x6b, -0x48, 0x9e, 0x81, 0x21, 0xdd, 0xec, 0x2b, 0x87, 0xf8, 0x25, 0x31, 0x96, 0x03, 0x8a, 0x41, 0x2f, -0xd7, 0xa5, 0x48, 0xbc, 0xb6, 0x6b, 0x67, 0xbc, 0xee, 0x0c, 0x1f, 0xc9, 0xbc, 0x87, 0x9d, 0x64, -0xcd, 0xd9, 0x08, 0x36, 0xd9, 0xc3, 0x38, 0xa0, 0x4d, 0xa2, 0xc7, 0xe0, 0x5b, 0x84, 0xd4, 0x96, -0xd0, 0x2b, 0x74, 0x5a, 0x07, 0x14, 0xb6, 0x78, 0x54, 0x98, 0x8b, 0x85, 0xdd, 0x35, 0x2a, 0x4c, -0x06, 0x6c, 0x41, 0xec, 0x27, 0xd6, 0x6e, 0x52, 0x72, 0x9d, 0xf2, 0x13, 0xfa, 0x09, 0xd9, 0xe3, -0xfd, 0x89, 0xac, 0x76, 0x4c, 0x64, 0x37, 0xff, 0xa7, 0x63, 0x84, 0x73, 0xc0, 0xec, 0xba, 0x9c, -0xe4, 0x8d, 0xf7, 0x4f, 0x17, 0x7e, 0x7c, 0x46, 0x1b, 0x8e, 0x1a, 0x91, 0x92, 0x49, 0xa2, 0x7f, -0x6a, 0x29, 0x4c, 0x9e, 0x1a, 0x84, 0x29, 0x53, 0x03, 0x20, 0x71, 0x1a, 0xb6, 0x38, 0xcd, 0x52, -0x0b, 0xa9, 0x95, 0x7f, 0x94, 0xd4, 0xb1, 0xf8, 0x2a, 0x09, 0x23, 0xf6, 0xa3, 0xd4, 0xc2, 0x6c, -0x36, 0x1c, 0x32, 0xed, 0xa3, 0xb3, 0xfa, 0x9f, 0x82, 0xa2, 0xfa, 0x7c, 0xd9, 0xff, 0x9b, 0x01, -0xfc, 0x7f, 0x10, 0xff, 0xbf, 0x0b, 0xc5, 0xce, 0xa5, 0x60, 0x76, 0x6e, 0xc2, 0xbf, 0x56, 0xe7, -0x76, 0xd2, 0xc8, 0x00, 0x33, 0xce, 0xa5, 0xa7, 0xc0, 0x4f, 0x94, 0x35, 0xd2, 0xc7, 0x57, 0x61, -0x27, 0xa7, 0x1b, 0x56, 0x92, 0xe0, 0xbd, 0xd3, 0x4b, 0xed, 0x3d, 0xb8, 0x0d, 0xfc, 0x9c, 0x96, -0x60, 0xfb, 0x52, 0x7f, 0x19, 0x77, 0xc4, 0x97, 0x18, 0x44, 0xa1, 0xba, 0x17, 0xd7, 0x82, 0xf3, -0x64, 0x53, 0xc3, 0xfa, 0x80, 0xbe, 0x59, 0x86, 0xd4, 0x2c, 0x0b, 0xbf, 0x5a, 0x0a, 0x48, 0x1d, -0x90, 0x72, 0x8d, 0xf7, 0x12, 0x2e, 0x47, 0x35, 0x6f, 0x17, 0xa2, 0x48, 0x64, 0x21, 0x22, 0x4e, -0x62, 0xe9, 0x1a, 0xf5, 0x58, 0xec, 0x1c, 0x43, 0xaa, 0xae, 0x3a, 0x2c, 0x71, 0xcf, 0x5a, 0x14, -0xee, 0x64, 0x71, 0xc6, 0xbc, 0x67, 0x2b, 0x30, 0xf6, 0x1e, 0xce, 0x07, 0xf9, 0xdb, 0x87, 0x70, -0x47, 0xc1, 0xa9, 0x4e, 0x3e, 0xae, 0x50, 0xc5, 0xbf, 0x3d, 0xe4, 0xbd, 0xd1, 0x3b, 0x93, 0xac, -0x86, 0xab, 0x37, 0x56, 0x9c, 0x63, 0x6b, 0xb8, 0x43, 0x24, 0xf4, 0xd6, 0xa7, 0x31, 0xbd, 0x3c, -0x56, 0xcf, 0xed, 0xe0, 0x57, 0x2c, 0x91, 0xee, 0x9d, 0xdb, 0xa1, 0xa8, 0xe1, 0x10, 0xc3, 0x98, -0x33, 0x26, 0xbc, 0x08, 0xde, 0x41, 0x36, 0xbe, 0x21, 0x4c, 0xb7, 0x1a, 0x73, 0xb3, 0x81, 0x07, -0x29, 0x40, 0xe5, 0x6b, 0x67, 0x20, 0x8b, 0x38, 0x66, 0x27, 0xa6, 0x4a, 0x78, 0x7c, 0x6d, 0xf0, -0xad, 0x5f, 0xaf, 0x2a, 0x7a, 0x63, 0xa3, 0xa7, 0x18, 0x39, 0x18, 0x0f, 0xd7, 0x2b, 0x54, 0x0a, -0xb1, 0xef, 0x8b, 0xbd, 0xf9, 0x98, 0x87, 0xae, 0x97, 0xa7, 0x3a, 0xc8, 0xef, 0xe4, 0xc8, 0xd1, -0xda, 0x8d, 0xfd, 0xcf, 0x83, 0xbf, 0xc1, 0x14, 0x21, 0x64, 0x4d, 0xff, 0xfc, 0x0f, 0xc0, 0xea, -0xca, 0x56, 0x8f, 0xfc, 0xf6, 0x43, 0xf0, 0x47, 0xba, 0x43, 0x2d, 0xe0, 0xa7, 0xcb, 0x3b, 0xce, -0x9b, 0x21, 0x96, 0xb3, 0xb6, 0xa1, 0xdd, 0x8a, 0xdb, 0x13, 0x56, 0x5e, 0xc7, 0xb9, 0x4c, 0x1a, -0x6d, 0xcc, 0xcb, 0x87, 0xce, 0x8b, 0x58, 0xbd, 0x59, 0xe4, 0x93, 0x74, 0xee, 0x9f, 0xcd, 0x02, -0xd3, 0x7c, 0xb1, 0x2a, 0xb6, 0x95, 0xfe, 0xd7, 0x37, 0xba, 0xa8, 0x1c, 0xeb, 0xe7, 0x0f, 0x8d, -0x2c, 0x0d, 0x6f, 0x52, 0x0f, 0x10, 0xfa, 0x28, 0x8e, 0x9d, 0x22, 0x71, 0xc2, 0x3b, 0xbd, 0xa3, -0x29, 0xa3, 0x13, 0x66, 0x10, 0xe7, 0x00, 0xc2, 0x36, 0x66, 0x29, 0xdd, 0xcd, 0x10, 0x4f, 0x46, -0xd3, 0x4e, 0xbf, 0x8b, 0x10, 0xe1, 0x56, 0x62, 0x2d, 0x8b, 0x9d, 0x58, 0xe3, 0x36, 0xe8, 0x28, -0x3a, 0xbe, 0x71, 0x65, 0xe1, 0xeb, 0x1b, 0x3b, 0x8b, 0x4f, 0x6c, 0xcc, 0x67, 0xf5, 0x55, 0x3a, -0x44, 0xbf, 0x54, 0x2a, 0x22, 0x05, 0x7a, 0xa7, 0x37, 0x85, 0x79, 0x28, 0x3f, 0x0f, 0x85, 0x1e, -0xfc, 0xc2, 0x3b, 0x1f, 0x29, 0x54, 0xa5, 0x6b, 0x9e, 0x33, 0xa0, 0x90, 0x0e, 0x6c, 0x21, 0xb5, -0x08, 0xe3, 0x52, 0x12, 0x6d, 0x62, 0xa8, 0xda, 0x73, 0x65, 0x80, 0xb5, 0x49, 0x91, 0xde, 0x26, -0x45, 0xd4, 0x26, 0x72, 0xb6, 0x3a, 0x28, 0x4f, 0x70, 0x56, 0xba, 0xe6, 0x13, 0x8d, 0xa3, 0xd4, -0x89, 0xcb, 0x21, 0xc4, 0x8e, 0xa3, 0xf1, 0x77, 0x7a, 0x8f, 0xc5, 0xa9, 0xb6, 0x8c, 0xbe, 0x99, -0xa8, 0x6f, 0xc9, 0x37, 0x8c, 0x7e, 0xa2, 0x0c, 0x5a, 0xab, 0x02, 0xb0, 0x15, 0x5b, 0x90, 0x68, -0x16, 0xbd, 0x2b, 0x4f, 0xb6, 0x17, 0xf9, 0x49, 0xf7, 0xcb, 0xd8, 0xef, 0xde, 0x1b, 0xa9, 0x57, -0x88, 0x8f, 0x4a, 0xa4, 0xca, 0x74, 0x74, 0x8d, 0xec, 0x94, 0xda, 0x48, 0x56, 0xb5, 0xba, 0x77, -0xe5, 0xd6, 0xef, 0xbe, 0xa2, 0x18, 0x3c, 0x21, 0x71, 0x81, 0xd7, 0x77, 0x06, 0xe8, 0x5d, 0xa2, -0xec, 0x25, 0x1f, 0xb0, 0x14, 0x4f, 0x8b, 0x35, 0x8a, 0x28, 0x2d, 0xa0, 0x19, 0x31, 0xf8, 0xc2, -0x19, 0x1c, 0x4b, 0x12, 0x72, 0x7a, 0x8c, 0xfa, 0xd1, 0xfd, 0x79, 0xa8, 0x34, 0x1b, 0xab, 0x7b, -0x25, 0xbb, 0x7a, 0x62, 0xee, 0x7b, 0xd8, 0x3b, 0x93, 0x93, 0xa3, 0x64, 0x3d, 0xa1, 0xd3, 0xff, -0xa9, 0xaf, 0xc3, 0x7f, 0x9c, 0x70, 0xf1, 0x87, 0x32, 0xb6, 0x92, 0xb5, 0xbd, 0x46, 0x88, 0x16, -0xb9, 0xd2, 0x82, 0xb4, 0xf9, 0xdc, 0x94, 0x92, 0x75, 0x5e, 0xa9, 0x22, 0xca, 0xcc, 0x50, 0x50, -0x73, 0xd8, 0xe8, 0x6c, 0xa3, 0xfd, 0x2a, 0xd2, 0xab, 0xc7, 0xbc, 0xb8, 0x5a, 0x9d, 0x5f, 0x00, -0xbd, 0x58, 0xbb, 0xf5, 0x78, 0xf5, 0xe1, 0xb5, 0x85, 0xfc, 0xe1, 0xe1, 0x2e, 0xcb, 0xc7, 0xf6, -0x8e, 0xc7, 0x38, 0x8e, 0xdb, 0xe7, 0x4e, 0x97, 0x7c, 0x08, 0x4f, 0x94, 0x9c, 0xd1, 0xce, 0x7b, -0x43, 0x10, 0xa3, 0xaf, 0x4e, 0xf7, 0x02, 0xee, 0x4d, 0xb0, 0xcd, 0x3b, 0xbc, 0x61, 0xe8, 0x64, -0x21, 0x0f, 0x41, 0xbc, 0x35, 0xd3, 0x5b, 0x02, 0xab, 0x31, 0x95, 0x64, 0x8a, 0xc8, 0xa7, 0xfa, -0x24, 0x58, 0xc8, 0x90, 0x67, 0x71, 0x07, 0x32, 0x84, 0xdf, 0x57, 0xde, 0x49, 0xbf, 0xaa, 0x31, -0xc5, 0x18, 0xfe, 0x5a, 0x10, 0xa1, 0x5f, 0xb5, 0x2c, 0x85, 0x4d, 0xb0, 0x98, 0xa1, 0xc6, 0x2a, -0x31, 0x33, 0xf9, 0x3a, 0xc5, 0xef, 0x97, 0xe2, 0xd5, 0xf4, 0xf0, 0x01, 0x3a, 0x07, 0x3d, 0xfd, -0x3d, 0x2c, 0x59, 0x68, 0x8c, 0x27, 0x31, 0xeb, 0xb4, 0x79, 0x90, 0x2d, 0xfa, 0xb9, 0xe7, 0x2e, -0xbe, 0x6f, 0xc5, 0x37, 0xeb, 0x75, 0xb9, 0x2b, 0x61, 0x03, 0xc9, 0x38, 0x0a, 0x3c, 0xce, 0x26, -0xb0, 0x39, 0xf3, 0x0c, 0x41, 0xef, 0x44, 0xd6, 0x5b, 0xc4, 0x55, 0x4b, 0x69, 0x5c, 0x75, 0x27, -0x95, 0x92, 0xd1, 0xea, 0x66, 0x6c, 0xb5, 0x52, 0x4e, 0x83, 0x29, 0x6c, 0xf1, 0xa8, 0x30, 0x17, -0x0b, 0xbb, 0x6b, 0x54, 0x18, 0x79, 0x70, 0x27, 0xca, 0xfb, 0xf1, 0x89, 0x04, 0x4d, 0xfe, 0xd8, -0xc1, 0xb4, 0x13, 0x1a, 0xc1, 0xc9, 0xa4, 0x81, 0x76, 0xd2, 0x8b, 0xf8, 0xf8, 0x95, 0x9f, 0x32, -0xba, 0x8c, 0xbd, 0x2d, 0x61, 0x89, 0x6d, 0x38, 0x6e, 0x26, 0x4f, 0x43, 0xca, 0x8c, 0x63, 0x48, -0xa2, 0x52, 0x77, 0xa6, 0xe8, 0x32, 0xf9, 0xca, 0xb2, 0x7a, 0x90, 0x62, 0x10, 0xff, 0x18, 0x03, -0xe2, 0xec, 0x68, 0xed, 0x43, 0xba, 0x55, 0xcc, 0xf6, 0x3b, 0x66, 0x6e, 0xd3, 0x47, 0x2b, 0x2a, -0xd2, 0xfd, 0xa7, 0xc0, 0xce, 0x50, 0x73, 0x67, 0x10, 0x25, 0xd4, 0x2d, 0xe0, 0x8a, 0x90, 0xe6, -0x91, 0x94, 0x51, 0x44, 0x9a, 0x5c, 0x2c, 0x2f, 0x23, 0x1f, 0x53, 0xa2, 0x40, 0xf2, 0xd9, 0x22, -0x98, 0x25, 0xc8, 0xb4, 0x62, 0x77, 0x2b, 0x32, 0xd9, 0x22, 0xbb, 0x6a, 0x5e, 0x3b, 0x20, 0xb6, -0xf5, 0x42, 0xa0, 0x44, 0xb1, 0xee, 0xf6, 0x37, 0xe4, 0xee, 0x2a, 0x59, 0x92, 0x23, 0x56, 0x47, -0x4a, 0x74, 0x5e, 0xc4, 0xdf, 0x0a, 0x05, 0xb0, 0xb3, 0xab, 0xee, 0x28, 0x52, 0x68, 0x27, 0xad, -0xb7, 0xfc, 0x8c, 0x96, 0x2c, 0x5f, 0x72, 0x04, 0xf9, 0x41, 0x4c, 0xd9, 0x8c, 0x3b, 0x2d, 0x33, -0xf9, 0x72, 0x95, 0xb6, 0x61, 0x09, 0x71, 0x05, 0xad, 0x7c, 0x33, 0x37, 0x57, 0x5f, 0x3f, 0x99, -0x3f, 0x43, 0x1a, 0xdd, 0x32, 0x18, 0x02, 0xc3, 0x20, 0x19, 0xf6, 0x3d, 0x05, 0x41, 0xca, 0x15, -0xe3, 0xfb, 0x91, 0xbf, 0x44, 0x0e, 0x8f, 0xb5, 0x4f, 0x0e, 0x71, 0x98, 0xaa, 0x8d, 0xcb, 0x8e, -0x91, 0xa2, 0x6e, 0x23, 0x4c, 0x5f, 0xb1, 0x5a, 0x39, 0x95, 0x86, 0x96, 0xeb, 0x85, 0x1c, 0xdc, -0xd7, 0x8c, 0xe5, 0xed, 0x66, 0x93, 0x8f, 0x9a, 0xd1, 0x54, 0x87, 0xd9, 0x39, 0x67, 0x31, 0xef, -0xbe, 0x46, 0xe6, 0xe9, 0xd7, 0x8c, 0x2d, 0x6d, 0x57, 0xec, 0xa3, 0x77, 0x2b, 0x5c, 0xc2, 0xc1, -0x71, 0x71, 0x39, 0xa7, 0x42, 0xda, 0x81, 0xa3, 0x78, 0xad, 0xb4, 0xd8, 0xbc, 0x5d, 0x19, 0x8f, -0x40, 0x9c, 0xef, 0x32, 0xa4, 0xe5, 0x56, 0x1a, 0xad, 0x97, 0x30, 0x75, 0xa4, 0xec, 0xc5, 0x18, -0x0b, 0x47, 0xe7, 0x07, 0xad, 0x09, 0x2c, 0x6d, 0x4c, 0x6f, 0x01, 0x8e, 0xbb, 0x5a, 0xfc, 0xa2, -0x1a, 0xd7, 0x61, 0x1b, 0x8e, 0x3d, 0xb3, 0x1b, 0x67, 0xe3, 0x1e, 0xaa, 0xed, 0x42, 0xa4, 0xfc, -0x45, 0x1d, 0x21, 0xa4, 0x84, 0x9e, 0xd7, 0x37, 0x2a, 0xb3, 0x19, 0xff, 0xbe, 0x3d, 0x96, 0xc9, -0x77, 0x8f, 0x64, 0xab, 0xec, 0x45, 0x2e, 0x00, 0x7c, 0x64, 0x4f, 0x20, 0xd2, 0xfe, 0x9e, 0x30, -0xc2, 0xa8, 0xc7, 0x53, 0xbb, 0x48, 0x43, 0xa4, 0x87, 0x28, 0x02, 0xce, 0xfa, 0x7d, 0x8a, 0x8d, -0x3f, 0x93, 0xbd, 0x31, 0xfe, 0xbe, 0x80, 0xbc, 0x6a, 0x11, 0xb3, 0x2f, 0x11, 0xb8, 0x35, 0x04, -0xc9, 0x48, 0x80, 0xf9, 0x68, 0x43, 0x4a, 0xfc, 0x11, 0x3b, 0xdd, 0xb7, 0x42, 0x30, 0xfc, 0x0c, -0x51, 0x6e, 0xd8, 0x8f, 0x33, 0x2b, 0xa8, 0xe7, 0x6f, 0x48, 0xe5, 0x1f, 0x0b, 0x0e, 0x6e, 0xc4, -0xbb, 0x0f, 0x67, 0x67, 0x31, 0xa1, 0x39, 0xe3, 0xdd, 0x8f, 0xf7, 0xa2, 0x79, 0x1f, 0x82, 0xa7, -0x3d, 0x74, 0x8c, 0xad, 0x10, 0xc6, 0x36, 0xa2, 0x41, 0x7f, 0xdd, 0x81, 0xf4, 0x08, 0xf7, 0x83, -0x98, 0x4e, 0x88, 0xa8, 0x0d, 0xad, 0xd3, 0x58, 0xda, 0xf1, 0x89, 0xf2, 0x72, 0x14, 0xcf, 0xe8, -0x22, 0xe6, 0xd9, 0x95, 0xf0, 0x19, 0x13, 0xab, 0x8f, 0x1f, 0x4b, 0xb3, 0x94, 0x59, 0x5c, 0x7b, -0xa1, 0x92, 0xbd, 0x41, 0x8a, 0x9a, 0xe6, 0x15, 0xa2, 0x52, 0x9c, 0x2b, 0x2d, 0xc7, 0xf1, 0x83, -0x31, 0xd2, 0xd7, 0x05, 0xd2, 0x1d, 0xc5, 0x75, 0xac, 0x38, 0x41, 0x95, 0x95, 0xb5, 0x2e, 0x6c, -0x59, 0x2c, 0x57, 0xe8, 0xea, 0x32, 0x11, 0x66, 0x0a, 0xc6, 0x9f, 0xe8, 0xf5, 0x60, 0xb9, 0xd2, -0xf2, 0x85, 0xf3, 0xe2, 0x82, 0x76, 0xda, 0xd7, 0xb8, 0xb4, 0xe1, 0xfe, 0x9e, 0x25, 0x06, 0x27, -0x20, 0xbf, 0xb1, 0x4d, 0xbb, 0x84, 0xa3, 0xbd, 0x07, 0x67, 0x54, 0x31, 0xf3, 0x50, 0x59, 0x99, -0x98, 0x63, 0x89, 0x32, 0xa9, 0x1e, 0x56, 0x83, 0x4a, 0x96, 0xda, 0xa8, 0xb2, 0xc2, 0xe3, 0xec, -0x9c, 0x38, 0xbd, 0x54, 0xc1, 0x5d, 0x4f, 0x83, 0x7d, 0xc9, 0x1c, 0xda, 0x51, 0x8c, 0x5d, 0x33, -0xa3, 0x31, 0xe4, 0x1a, 0x08, 0xcd, 0xcc, 0x2a, 0x95, 0xa6, 0xd7, 0x8c, 0x6a, 0x9b, 0x1a, 0x7d, -0xd3, 0x71, 0xc7, 0xf1, 0xf0, 0x01, 0x45, 0xc4, 0x39, 0x6d, 0xa4, 0x37, 0xef, 0xf4, 0xb2, 0x55, -0x61, 0x01, 0xee, 0xc8, 0x8c, 0x22, 0xfb, 0x3d, 0x75, 0x9d, 0x19, 0x57, 0x1a, 0x69, 0xc1, 0xab, -0x07, 0xa4, 0x49, 0x4e, 0x73, 0x75, 0x4f, 0xb8, 0x4b, 0x3d, 0xc2, 0xf8, 0x93, 0x2d, 0xb8, 0x12, -0x10, 0xcf, 0x58, 0x3c, 0xad, 0x1a, 0xfc, 0xb8, 0x22, 0x4c, 0x46, 0x6e, 0xac, 0x38, 0x9a, 0x85, -0x63, 0x62, 0xe5, 0x95, 0x6c, 0xee, 0x49, 0x9a, 0xc6, 0x29, 0xee, 0xb2, 0xfd, 0x29, 0x54, 0xec, -0xd0, 0x3b, 0xb7, 0xcd, 0x66, 0xb8, 0x69, 0x5e, 0x90, 0x71, 0xdc, 0xba, 0x44, 0x87, 0x13, 0x68, -0x3f, 0x2d, 0x65, 0xec, 0xdb, 0x06, 0x41, 0xf2, 0xde, 0x8c, 0xbc, 0x9f, 0xff, 0x37, 0x2f, 0xcb, -0xad, 0x5b, 0x41, 0xe9, 0xdc, 0x45, 0x27, 0xb1, 0x6d, 0x7c, 0xb6, 0xf6, 0xe3, 0x4e, 0xbf, 0xde, -0x29, 0xc1, 0x3b, 0x0f, 0x20, 0xb7, 0x64, 0xfd, 0xed, 0x2f, 0xa5, 0x1a, 0xc6, 0xcb, 0x3b, 0xbc, -0x95, 0xc8, 0xbb, 0x06, 0x40, 0x66, 0x63, 0x59, 0x44, 0xae, 0x73, 0x7d, 0xd5, 0x61, 0xe4, 0xd9, -0x2c, 0x0c, 0x65, 0x1c, 0x57, 0x95, 0xd3, 0xcf, 0xd3, 0xde, 0x6e, 0xbc, 0xa9, 0x6a, 0x33, 0xe9, -0xdb, 0xb3, 0x90, 0x8f, 0xf0, 0xd9, 0xc0, 0x64, 0x9a, 0x9f, 0xaa, 0xda, 0x9c, 0x5f, 0x5c, 0x32, -0x0a, 0x49, 0x95, 0xca, 0xa9, 0x58, 0xf4, 0x9d, 0x1f, 0x68, 0xab, 0x18, 0x27, 0xbb, 0x5e, 0xdf, -0x89, 0x22, 0x5f, 0x47, 0xa8, 0x32, 0xda, 0x6c, 0xf6, 0xcb, 0x8b, 0x73, 0xd2, 0xcc, 0x64, 0x42, -0x7b, 0x34, 0x97, 0x7e, 0xfa, 0x7d, 0x27, 0xf3, 0x28, 0x65, 0x21, 0x9e, 0xa2, 0xec, 0x03, 0x61, -0x13, 0xae, 0xbf, 0x43, 0x33, 0x43, 0xc2, 0xee, 0x99, 0x55, 0xc2, 0xe3, 0x79, 0xb4, 0x5b, 0xa6, -0x95, 0xc7, 0xa4, 0x0d, 0xe3, 0xef, 0x6d, 0x33, 0x57, 0x08, 0xb9, 0xc2, 0x4e, 0x26, 0xcb, 0xb2, -0xd0, 0x9e, 0x74, 0xd8, 0xa3, 0x8f, 0x9c, 0xe0, 0x4c, 0x8c, 0xf5, 0xc7, 0x42, 0xe1, 0xb1, 0x58, -0xf1, 0x4c, 0xbf, 0xf0, 0x04, 0xfd, 0xfa, 0xf8, 0x84, 0xf0, 0x0c, 0xbb, 0x3b, 0x84, 0x7e, 0x7b, -0x31, 0xd8, 0x31, 0x7c, 0x7f, 0xe0, 0x39, 0x61, 0x2f, 0x5e, 0x03, 0xf8, 0xdb, 0x80, 0xbf, 0x5f, -0x9f, 0x19, 0x16, 0x36, 0x88, 0x64, 0x8b, 0x3f, 0xa8, 0xfb, 0x68, 0x6d, 0xd6, 0xce, 0x79, 0x9a, -0x13, 0x72, 0x3a, 0xb6, 0x06, 0xd3, 0x0e, 0x89, 0xef, 0x92, 0x90, 0xa3, 0xac, 0xda, 0xf3, 0xb1, -0x3d, 0xb9, 0x2a, 0xe5, 0x24, 0x47, 0x4b, 0x23, 0xf5, 0x7a, 0x9a, 0xd7, 0xbb, 0xa4, 0x7c, 0x16, -0xa9, 0xbd, 0x8f, 0x76, 0xbf, 0xc4, 0xc1, 0x32, 0x1f, 0x8b, 0x48, 0x6f, 0x5c, 0xe4, 0x4d, 0x9d, -0x5a, 0xb2, 0xcc, 0x6b, 0xe4, 0x7b, 0x68, 0xbe, 0x77, 0x56, 0xe9, 0xb4, 0xc9, 0x8c, 0x25, 0x33, -0x8a, 0x71, 0xd1, 0x40, 0x48, 0xab, 0x30, 0xd4, 0x4f, 0xf8, 0x65, 0xec, 0x59, 0x98, 0xa3, 0xcc, -0xd6, 0x43, 0x8f, 0x29, 0x6c, 0xed, 0xff, 0x63, 0xd8, 0xab, 0xef, 0xba, 0xc9, 0x1b, 0x65, 0x32, -0x7e, 0x96, 0x1e, 0xff, 0x2e, 0x4a, 0xad, 0xd5, 0x24, 0x76, 0xf1, 0x9d, 0x85, 0x35, 0x37, 0xe1, -0x97, 0x61, 0x0e, 0xa1, 0xd2, 0x15, 0x61, 0x89, 0x8a, 0x71, 0xad, 0xb1, 0xb9, 0xc2, 0xaf, 0xbd, -0x07, 0x59, 0x84, 0xf8, 0xa5, 0x23, 0x7f, 0xf9, 0x90, 0x56, 0x58, 0xd8, 0x38, 0xf1, 0xa4, 0x61, -0x43, 0x8b, 0x6c, 0x86, 0xf9, 0x70, 0x3c, 0x38, 0x99, 0xc5, 0x2f, 0xcd, 0x3a, 0x37, 0x9b, 0x8d, -0x3e, 0xd2, 0x03, 0x53, 0xa6, 0xb4, 0xfb, 0x8e, 0x6d, 0xec, 0xf4, 0x9c, 0xd8, 0xb8, 0xd2, 0xa5, -0x73, 0xa9, 0x1e, 0xe4, 0xd4, 0x91, 0x1b, 0x9a, 0x77, 0x99, 0x64, 0x31, 0xba, 0xaf, 0x74, 0x8b, -0x3e, 0xd7, 0x89, 0x9b, 0x7b, 0x2e, 0xdc, 0x04, 0xb3, 0xa2, 0x16, 0x2e, 0xd3, 0xcd, 0x3c, 0x5d, -0xbb, 0x91, 0x51, 0x1c, 0x0b, 0x93, 0xc9, 0xe9, 0x7b, 0x2a, 0x8e, 0xc8, 0xa3, 0x8f, 0x91, 0x4b, -0xba, 0x95, 0x94, 0x9d, 0x38, 0x7c, 0x1c, 0xf1, 0x36, 0xb7, 0xdb, 0x10, 0x94, 0xca, 0xf3, 0x70, -0xfd, 0xd4, 0x2e, 0xb5, 0x69, 0xdf, 0x3e, 0x44, 0x6b, 0xfb, 0x1f, 0xbf, 0xf8, 0xad, 0x5f, 0x23, -0xfd, 0xf0, 0x23, 0xdf, 0x6a, 0xdf, 0xb4, 0xdd, 0xe0, 0x5b, 0x35, 0xee, 0xc5, 0xae, 0x86, 0x82, -0x29, 0xd8, 0xa6, 0x78, 0x77, 0x33, 0xed, 0x25, 0xa6, 0xa5, 0xc0, 0x34, 0x98, 0x2c, 0xb8, 0x52, -0x90, 0x8f, 0xa9, 0xc9, 0x4e, 0xbf, 0x62, 0x73, 0x22, 0xd5, 0x71, 0x81, 0x62, 0x72, 0xf9, 0x15, -0x83, 0x0c, 0xcc, 0x73, 0x55, 0x99, 0x7e, 0x9a, 0xbe, 0x23, 0xa6, 0xf5, 0x13, 0xa6, 0x19, 0x84, -0x7b, 0x90, 0xa2, 0x0c, 0x31, 0xff, 0x4c, 0x53, 0x18, 0xee, 0x51, 0x0e, 0x49, 0xd1, 0xd3, 0x4e, -0xb8, 0xcf, 0xe9, 0xde, 0x1e, 0x8f, 0x31, 0xde, 0xd5, 0x8a, 0x97, 0x99, 0x79, 0x93, 0x58, 0x46, -0x35, 0x4a, 0xa3, 0x4a, 0xbb, 0x89, 0xae, 0xff, 0xb1, 0x2c, 0xc6, 0xbc, 0x23, 0x71, 0xe9, 0xb1, -0x3c, 0x8f, 0xea, 0xf5, 0x1b, 0xdc, 0x7f, 0x90, 0x9e, 0x9d, 0xee, 0x47, 0x5c, 0x2b, 0xca, 0x9d, -0x56, 0x05, 0x36, 0x66, 0xf9, 0x32, 0x81, 0xb5, 0xd3, 0x7a, 0x66, 0xef, 0xe2, 0x8f, 0x2e, 0x62, -0x67, 0x19, 0xb3, 0x52, 0x5e, 0x1b, 0xaf, 0x92, 0x1b, 0x5a, 0xa2, 0xb3, 0xd8, 0x29, 0xbd, 0x4d, -0xf2, 0x40, 0xc1, 0x91, 0x67, 0x20, 0x6b, 0x5a, 0x09, 0x64, 0x29, 0x84, 0x1f, 0x92, 0x85, 0x97, -0x1b, 0xaf, 0xfc, 0x69, 0x95, 0xe0, 0xc4, 0xf5, 0xb7, 0x80, 0xa4, 0x07, 0x5c, 0xbe, 0x88, 0x3d, -0x39, 0x99, 0xc9, 0xad, 0x27, 0xa4, 0x95, 0x5d, 0x5f, 0xdb, 0xbe, 0xf5, 0x6b, 0x71, 0x02, 0xd3, -0xa6, 0x1f, 0x64, 0x56, 0x79, 0x96, 0x04, 0x0f, 0x41, 0x68, 0xc2, 0x32, 0xee, 0xab, 0x45, 0x0b, -0x1b, 0x83, 0xdf, 0xe9, 0x7f, 0x40, 0x75, 0x49, 0x4b, 0x49, 0xd2, 0xa6, 0xb6, 0x96, 0x9e, 0x85, -0x63, 0xd8, 0x57, 0xd6, 0x98, 0x51, 0x8e, 0xe3, 0xdd, 0x2c, 0xef, 0xa5, 0x7a, 0x13, 0xf5, 0x6e, -0x15, 0x70, 0x64, 0x2e, 0x40, 0x5e, 0x7f, 0xe8, 0xc7, 0x2f, 0xab, 0x61, 0xbe, 0x7b, 0x8d, 0x9a, -0x49, 0x2f, 0x4e, 0x2d, 0x50, 0x72, 0x4a, 0xdf, 0x85, 0xe0, 0xd5, 0xdf, 0x29, 0x93, 0x31, 0xbc, -0x9e, 0xc2, 0x5b, 0x4d, 0x72, 0x57, 0x32, 0x3c, 0xac, 0x18, 0x36, 0xbf, 0x9c, 0xd8, 0xcd, 0xe2, -0xd3, 0x78, 0xee, 0x79, 0xe5, 0x9f, 0x0c, 0x34, 0xf3, 0x24, 0x7d, 0xe6, 0xe1, 0x0e, 0xd6, 0x26, -0x4e, 0x42, 0x5e, 0x87, 0x49, 0x20, 0x3b, 0x2c, 0x67, 0xb6, 0x45, 0x2d, 0x39, 0xc5, 0x20, 0xec, -0x8e, 0xab, 0xf9, 0x8a, 0xe5, 0x9d, 0x75, 0x4c, 0x4f, 0x71, 0x8e, 0x62, 0xd6, 0x9f, 0xee, 0x42, -0x4e, 0x68, 0x9f, 0xb7, 0x02, 0x44, 0x6f, 0x29, 0xe4, 0xb2, 0xdd, 0x68, 0x8e, 0x54, 0x5d, 0xf9, -0xa6, 0xff, 0x31, 0xa4, 0x94, 0x8c, 0x46, 0xfe, 0xb1, 0x9e, 0x5b, 0x8d, 0x8e, 0xa5, 0x85, 0xd5, -0x1b, 0x69, 0xb6, 0x61, 0xbc, 0x7b, 0xaf, 0xa2, 0x77, 0x2b, 0xf8, 0x58, 0x66, 0xd2, 0x0e, 0x33, -0xa1, 0x9b, 0xd3, 0xde, 0x9d, 0x28, 0x82, 0x3e, 0x7b, 0xbf, 0xd3, 0xbf, 0x0d, 0x9c, 0x6a, 0xae, -0x38, 0xa9, 0x3a, 0x4e, 0xf6, 0x26, 0x18, 0xf2, 0xa8, 0x18, 0xd0, 0xf7, 0xc2, 0x66, 0xa9, 0x1a, -0xb9, 0xad, 0xc3, 0xa4, 0x07, 0x82, 0xdc, 0xb8, 0x15, 0x57, 0x7c, 0xb3, 0x7c, 0x0b, 0x52, 0xd5, -0xc9, 0x84, 0x22, 0x88, 0xf3, 0x0a, 0x53, 0x9a, 0x47, 0xeb, 0xc6, 0x0f, 0x4a, 0xcf, 0xc0, 0xd0, -0xd4, 0x0a, 0xf8, 0x68, 0x2a, 0xd1, 0xc3, 0xed, 0x82, 0x71, 0x6a, 0x48, 0x30, 0x07, 0xb6, 0x09, -0x56, 0xbc, 0xdb, 0x31, 0x6c, 0x08, 0x4e, 0x0b, 0xb9, 0xec, 0x1e, 0x16, 0x72, 0xd8, 0xfd, 0x90, -0xe0, 0x28, 0x3b, 0x03, 0xdf, 0x99, 0x1a, 0x16, 0x44, 0x8c, 0x27, 0xe3, 0xe5, 0x8a, 0x15, 0x4f, -0xf5, 0x0b, 0x9e, 0x56, 0xc3, 0xd4, 0x12, 0xa1, 0x40, 0x64, 0x98, 0xcf, 0xf0, 0x51, 0x56, 0x31, -0x84, 0x8e, 0xc4, 0x31, 0x64, 0x56, 0xeb, 0x52, 0x76, 0x9f, 0x4d, 0x39, 0x8c, 0xe4, 0x08, 0x73, -0xe8, 0x7e, 0xe5, 0x2e, 0xa1, 0x7c, 0x6a, 0x85, 0x10, 0xc0, 0x2b, 0x8c, 0x29, 0xdc, 0x85, 0x97, -0x4a, 0xe1, 0xc3, 0x83, 0xc2, 0x5a, 0xba, 0x6b, 0xdb, 0x85, 0x15, 0xf8, 0xae, 0x0e, 0xaf, 0x46, -0xbc, 0xd6, 0xe1, 0xd5, 0x8a, 0xed, 0x32, 0x91, 0xd3, 0x31, 0x26, 0xaf, 0x6d, 0xe3, 0xd2, 0x02, -0x8e, 0x6c, 0x98, 0x86, 0x56, 0x93, 0x85, 0x7b, 0xf8, 0x82, 0xda, 0x31, 0xbb, 0x57, 0x7e, 0x0e, -0x51, 0x1b, 0x17, 0x0f, 0x46, 0x70, 0x1c, 0xa7, 0x4e, 0x12, 0x38, 0x1a, 0x85, 0x78, 0x37, 0x9d, -0xc1, 0x8c, 0xd6, 0xba, 0xd2, 0x71, 0x2d, 0xcc, 0x81, 0x3e, 0xdd, 0xef, 0xad, 0xd3, 0x83, 0xa3, -0x02, 0xdb, 0xcc, 0x11, 0xf8, 0x41, 0xd9, 0x07, 0xf0, 0x1d, 0xbe, 0xea, 0xc0, 0xa3, 0x6c, 0x1d, -0xf9, 0x25, 0x3c, 0x31, 0xb3, 0x0a, 0xb6, 0x05, 0x9e, 0x83, 0x67, 0xf0, 0xde, 0x3f, 0x93, 0xb5, -0x1b, 0xec, 0x65, 0xf7, 0x30, 0xec, 0x66, 0xf7, 0x43, 0xb0, 0x13, 0xdf, 0x0f, 0xe0, 0x85, 0xab, -0x0a, 0x1c, 0xc0, 0xeb, 0x50, 0x4c, 0x98, 0xe9, 0x87, 0x23, 0xf4, 0xd6, 0x60, 0x86, 0x63, 0x33, -0xc3, 0xf0, 0x3a, 0x7b, 0xf6, 0xc3, 0x1b, 0xf8, 0x7c, 0x8a, 0x3d, 0x2f, 0x82, 0x0f, 0xf0, 0x99, -0x4e, 0x39, 0x78, 0xdd, 0x7f, 0xcd, 0xeb, 0x5e, 0xc8, 0x79, 0x31, 0x13, 0x5f, 0x8b, 0x08, 0x8b, -0xac, 0x3e, 0xa1, 0xbf, 0x43, 0x9e, 0x6e, 0x1c, 0xc4, 0x61, 0x2b, 0xd9, 0x57, 0x4b, 0xe5, 0xa3, -0xb6, 0x94, 0xfc, 0x3a, 0x21, 0xe1, 0xab, 0x34, 0x72, 0x6c, 0x49, 0x8e, 0x2b, 0xc9, 0x76, 0x54, -0x0e, 0xba, 0xd8, 0x29, 0xcc, 0x7a, 0x4e, 0x83, 0xb8, 0x9f, 0xa2, 0x14, 0x0e, 0xe5, 0xf5, 0xe3, -0xf2, 0x38, 0xb4, 0x57, 0x23, 0xfe, 0x83, 0x24, 0xa4, 0x2e, 0xdc, 0xa1, 0xe1, 0x0a, 0xe2, 0x73, -0x2d, 0x17, 0x2e, 0xcc, 0x7b, 0xef, 0xef, 0x38, 0x13, 0x71, 0xb0, 0x33, 0x11, 0xb3, 0x6a, 0x44, -0xfe, 0xd7, 0x2c, 0x06, 0x45, 0x7c, 0x56, 0x16, 0x5d, 0x63, 0xbf, 0xa0, 0x7c, 0xe2, 0x29, 0x88, -0x27, 0x75, 0x0a, 0xa2, 0xa7, 0xd3, 0xc3, 0xce, 0x3e, 0xac, 0x63, 0xcf, 0x3e, 0xda, 0x84, 0xb1, -0xfb, 0x89, 0x40, 0x80, 0xce, 0x3c, 0xb0, 0x75, 0x02, 0xe9, 0xe7, 0x1e, 0x3e, 0x1d, 0x0b, 0x8b, -0x24, 0xdd, 0x4e, 0x6a, 0x63, 0x5a, 0x9f, 0xdd, 0x06, 0x99, 0x70, 0xec, 0xa6, 0xf9, 0x0d, 0x32, -0x9d, 0xae, 0xd0, 0x7a, 0xc4, 0x3d, 0xcc, 0x57, 0xed, 0x19, 0x19, 0xd6, 0x25, 0x07, 0xe6, 0x9d, -0x9b, 0xa3, 0xc6, 0x9a, 0xed, 0x06, 0x39, 0x21, 0xe1, 0x06, 0x92, 0x2f, 0xe6, 0x38, 0x1b, 0x85, -0x0b, 0x15, 0x67, 0xb1, 0x3d, 0x2a, 0x47, 0x9d, 0x9f, 0x61, 0xcf, 0xb1, 0x35, 0x2d, 0xbd, 0x45, -0x0a, 0x71, 0x5c, 0xdb, 0x6b, 0x48, 0x42, 0x61, 0x57, 0x5d, 0x94, 0x07, 0x95, 0xfe, 0x43, 0x95, -0xce, 0x27, 0xae, 0xb7, 0xcb, 0xa9, 0xde, 0x98, 0xae, 0xc1, 0x88, 0xfc, 0x15, 0xa4, 0x72, 0x76, -0x61, 0xce, 0x73, 0xcf, 0x5e, 0x75, 0x72, 0x47, 0x39, 0xeb, 0x7d, 0x21, 0xfa, 0xc9, 0xeb, 0x56, -0xfa, 0x59, 0x1d, 0x5f, 0x5f, 0x17, 0xb3, 0x33, 0x77, 0xb6, 0x1a, 0x0d, 0xa6, 0x21, 0x89, 0x1e, -0xd3, 0xcf, 0xd8, 0x2e, 0x52, 0xdb, 0x92, 0x74, 0x88, 0x4e, 0x2b, 0x68, 0xcd, 0x0d, 0x6f, 0x37, -0x54, 0xab, 0x36, 0x3a, 0xe3, 0x46, 0x7a, 0x76, 0x00, 0x5b, 0xa9, 0xba, 0x7a, 0x63, 0x5e, 0xa3, -0xa1, 0x5a, 0xbb, 0x98, 0xd7, 0x0c, 0x56, 0xe4, 0xd5, 0x9a, 0xc1, 0x7e, 0xad, 0xf3, 0x46, 0xe2, -0xab, 0x9c, 0x3a, 0x5f, 0x45, 0xb3, 0x0f, 0x0a, 0xa9, 0xc5, 0xd3, 0x52, 0x5d, 0xa0, 0xda, 0xf9, -0xc9, 0x3a, 0xa6, 0x1b, 0xc3, 0x74, 0x17, 0x54, 0x6f, 0xc4, 0x31, 0x69, 0xcf, 0x73, 0x1b, 0x16, -0x50, 0x2c, 0x1c, 0x99, 0xa9, 0x73, 0x92, 0x37, 0x3d, 0xc0, 0xb4, 0x16, 0xef, 0xd4, 0xce, 0x5f, -0xa3, 0x7c, 0xb5, 0x7a, 0x4a, 0x06, 0x4c, 0xc9, 0x89, 0x29, 0xd5, 0xb2, 0x12, 0xd6, 0x6a, 0xe7, -0x59, 0x09, 0x2f, 0xb2, 0x12, 0x52, 0x39, 0x1d, 0xc9, 0x72, 0x9e, 0x1f, 0x55, 0xce, 0x33, 0x58, -0xce, 0x73, 0xba, 0x85, 0xfb, 0xb5, 0xea, 0xbf, 0x58, 0x4f, 0x3f, 0x13, 0x47, 0xc4, 0x4b, 0x98, -0xfe, 0x62, 0x96, 0xfe, 0xe2, 0x7f, 0xa4, 0x05, 0x88, 0x9b, 0x49, 0xa4, 0x2c, 0x63, 0x7c, 0x4c, -0x55, 0xd1, 0x53, 0x25, 0x44, 0x78, 0xaa, 0xbf, 0xc2, 0x52, 0x55, 0x58, 0x7a, 0xd6, 0x6b, 0x9d, -0x16, 0x61, 0x7a, 0xe7, 0x31, 0xbd, 0x8b, 0xfc, 0xbc, 0x88, 0xe9, 0x18, 0x0d, 0x4d, 0x08, 0xe2, -0x25, 0xe2, 0x95, 0x83, 0x57, 0x2e, 0x0c, 0x65, 0x1b, 0x61, 0xc8, 0xb1, 0x1f, 0xef, 0x45, 0x30, -0x64, 0x5d, 0x80, 0xf7, 0x6a, 0xbc, 0xaf, 0x87, 0xa1, 0x1b, 0x1e, 0xc3, 0xe7, 0xa5, 0x78, 0xd1, -0xbb, 0x13, 0x78, 0x5d, 0x84, 0xa1, 0x2c, 0x3f, 0x5e, 0xbb, 0x60, 0x28, 0xe7, 0x71, 0xfc, 0xc6, -0x8e, 0xf7, 0x0e, 0xbc, 0x30, 0x6e, 0x0e, 0xc6, 0xf9, 0x94, 0x15, 0x2f, 0x0f, 0xc6, 0xf3, 0x30, -0x8d, 0x8d, 0x21, 0x47, 0xe8, 0x7f, 0x51, 0xef, 0xa8, 0xa1, 0x23, 0x76, 0xf7, 0x8a, 0x7b, 0x96, -0xb5, 0xac, 0x48, 0x6a, 0x1f, 0xdd, 0xdd, 0xbc, 0x2c, 0x7a, 0xf7, 0xcc, 0xe6, 0x59, 0x45, 0xcb, -0x99, 0x51, 0xda, 0x68, 0x45, 0xa4, 0xab, 0xa2, 0x93, 0x36, 0xd2, 0x90, 0xb9, 0x10, 0x4b, 0x7a, -0xa9, 0x7b, 0xc6, 0xf8, 0x15, 0xf8, 0x2c, 0xc1, 0xd0, 0xb8, 0x3f, 0xe3, 0x7d, 0x41, 0x32, 0x27, -0xd2, 0x55, 0x2a, 0xe6, 0x65, 0x9f, 0xd0, 0x51, 0xda, 0xb2, 0x42, 0x5d, 0x16, 0xbd, 0xb7, 0x75, -0xd9, 0x8a, 0xa8, 0x58, 0xd7, 0x72, 0x77, 0x6b, 0xfd, 0x6c, 0x71, 0x49, 0xfd, 0x17, 0xa6, 0xc5, -0xc4, 0x66, 0x35, 0xfa, 0x85, 0x69, 0xf5, 0x62, 0xac, 0xb5, 0xa5, 0x9e, 0xee, 0xf7, 0x2c, 0x5b, -0xd9, 0xf0, 0x85, 0x69, 0xbe, 0xa2, 0x0e, 0xb1, 0xed, 0x9b, 0x31, 0x7a, 0x2a, 0xe8, 0xb0, 0x00, -0x0f, 0xa4, 0x48, 0x0d, 0xed, 0x74, 0x5f, 0xd1, 0xf0, 0x0d, 0xba, 0x35, 0xac, 0xa0, 0x4f, 0x2c, -0x30, 0x73, 0x8e, 0xb8, 0x44, 0x4f, 0xbe, 0xa1, 0xde, 0x23, 0x62, 0xa2, 0x33, 0x45, 0xd2, 0xd1, -0x49, 0xe4, 0x79, 0x77, 0x1b, 0x96, 0x5c, 0x54, 0xef, 0x5e, 0xd6, 0xd4, 0x50, 0x3f, 0xd5, 0x02, -0x3c, 0xee, 0x92, 0xa5, 0x77, 0x2f, 0x5b, 0x31, 0xea, 0x87, 0x58, 0xdf, 0xb2, 0xa2, 0x21, 0xbd, -0xae, 0xcd, 0x0d, 0xcd, 0x2d, 0x58, 0xd5, 0xf9, 0x81, 0x48, 0xc9, 0x7c, 0xd1, 0x4f, 0x85, 0xf2, -0xb0, 0xf2, 0x89, 0xf4, 0x68, 0x81, 0xbb, 0xeb, 0xeb, 0xa9, 0x36, 0xad, 0x77, 0x37, 0xf3, 0x1a, -0xdd, 0xc3, 0x0b, 0x5a, 0xb7, 0xac, 0xed, 0x9e, 0x2f, 0x4c, 0xe3, 0xef, 0x5b, 0xbf, 0x30, 0xad, -0xa9, 0x43, 0xaf, 0x13, 0x3e, 0x34, 0xdf, 0xdd, 0x91, 0x78, 0xb6, 0x40, 0xf2, 0x3b, 0xf1, 0xee, -0x36, 0x71, 0x4c, 0xe2, 0x18, 0xd4, 0xd6, 0xaa, 0x67, 0x53, 0x7e, 0xf7, 0x3d, 0x6d, 0xe2, 0x7c, -0x5e, 0x94, 0x54, 0x5e, 0x7a, 0x61, 0xcb, 0x5b, 0xee, 0x5d, 0x51, 0xaf, 0x27, 0x33, 0x2d, 0x36, -0xfb, 0xfa, 0xad, 0x79, 0x4f, 0x43, 0xeb, 0xb2, 0xbb, 0x9b, 0xf8, 0x73, 0xfd, 0xb2, 0xbb, 0x31, -0x16, 0x36, 0x50, 0x7d, 0xcb, 0x3d, 0xc9, 0x0e, 0x2d, 0x69, 0x6a, 0x6a, 0x59, 0x12, 0xa0, 0x84, -0x30, 0x2f, 0x58, 0xb0, 0xb4, 0x41, 0x54, 0xef, 0x5d, 0xb1, 0x84, 0xb5, 0xdc, 0xb4, 0x7b, 0x5c, -0x33, 0xc4, 0x65, 0xf7, 0x88, 0x2b, 0x5a, 0xda, 0xc4, 0x34, 0x55, 0xab, 0x7c, 0x0b, 0xff, 0xa8, -0x2c, 0xd1, 0x60, 0xff, 0xc0, 0x87, 0xe5, 0xad, 0x0d, 0x0d, 0xff, 0x68, 0x66, 0xf4, 0xcd, 0xff, -0x24, 0xaf, 0xf9, 0x77, 0x2f, 0x6f, 0x08, 0xb6, 0xdc, 0x53, 0xd5, 0x52, 0xdf, 0x20, 0x4e, 0x9f, -0x76, 0xcf, 0x74, 0xf6, 0xc7, 0x02, 0x69, 0xf6, 0x8d, 0x43, 0xe4, 0x10, 0x2c, 0xa9, 0x17, 0x35, -0xf5, 0x6f, 0xea, 0x47, 0x0d, 0x8d, 0x7b, 0xe6, 0x6f, 0xe8, 0x47, 0x0d, 0x8d, 0xdb, 0xf9, 0xf7, -0xea, 0x47, 0xe1, 0x5e, 0x43, 0xfe, 0x3b, 0x74, 0xa4, 0x86, 0xc6, 0x9d, 0xbe, 0xae, 0x8e, 0xd4, -0xd0, 0xb8, 0xa3, 0x63, 0x74, 0xa4, 0x86, 0x2c, 0xc3, 0x9f, 0xa0, 0x23, 0x35, 0x34, 0x6e, 0xef, -0x18, 0x1d, 0xa9, 0xa1, 0x71, 0x87, 0xae, 0xd2, 0x91, 0x1a, 0x1a, 0x77, 0xe2, 0xff, 0x45, 0x47, -0x2a, 0x16, 0x64, 0x56, 0x55, 0x06, 0xcf, 0x0a, 0x90, 0x13, 0x68, 0x63, 0x14, 0xce, 0xe5, 0xa5, -0x56, 0xd0, 0x06, 0x54, 0x73, 0x2c, 0x8b, 0xb4, 0x19, 0x14, 0x53, 0x6c, 0x12, 0xe9, 0x75, 0x72, -0x84, 0x6c, 0xed, 0x1c, 0xf3, 0xbd, 0x67, 0x76, 0x56, 0x30, 0xaf, 0x7f, 0xf6, 0xc9, 0x60, 0xc8, -0xd4, 0x06, 0xe4, 0x19, 0x20, 0x93, 0xe5, 0x31, 0x86, 0x4c, 0xc2, 0xed, 0xef, 0x0c, 0xe4, 0x98, -0xc0, 0x3b, 0x9e, 0x4a, 0x69, 0xd6, 0xf7, 0x04, 0xab, 0x60, 0x4a, 0x1e, 0xf6, 0x86, 0xf8, 0x0a, -0x79, 0x78, 0xcb, 0xb1, 0x66, 0x12, 0x3a, 0x36, 0xec, 0xc0, 0x7d, 0x05, 0x52, 0x4d, 0xb2, 0xf9, -0x38, 0x19, 0x0e, 0xaf, 0x80, 0x27, 0x54, 0xd3, 0x17, 0x3a, 0xc1, 0x0f, 0x4f, 0x14, 0xe4, 0xc3, -0x13, 0xb3, 0x0d, 0xc1, 0x32, 0x9f, 0x50, 0xe3, 0x1f, 0x0c, 0x1c, 0xf4, 0xb7, 0xc3, 0xac, 0xcc, -0x4e, 0x28, 0x26, 0x39, 0xa1, 0xe6, 0xcd, 0xb8, 0x43, 0x08, 0x44, 0xbd, 0x26, 0x96, 0xfa, 0xbf, -0xf1, 0xd4, 0x4f, 0x90, 0x0f, 0x3a, 0x87, 0x95, 0xbc, 0x4c, 0x68, 0x2b, 0xc0, 0x50, 0xf8, 0xd6, -0xbc, 0x50, 0x69, 0xa0, 0x74, 0x7a, 0x29, 0x88, 0x9f, 0xc7, 0x54, 0xc1, 0xf5, 0xf9, 0x00, 0xb8, -0x21, 0x0f, 0x0c, 0x60, 0x7b, 0x3d, 0xf0, 0x85, 0x32, 0x78, 0x42, 0x0c, 0xc6, 0xee, 0x2b, 0x07, -0x29, 0x83, 0x34, 0xde, 0x4b, 0x87, 0x34, 0x0b, 0xb3, 0x08, 0x1a, 0x8f, 0x1c, 0xf1, 0x72, 0x90, -0x6b, 0x7a, 0x43, 0xe4, 0x01, 0x3d, 0x83, 0xa5, 0x3f, 0x90, 0xf4, 0x77, 0x69, 0x55, 0x40, 0x18, -0x08, 0x98, 0x24, 0x43, 0x0d, 0xc9, 0xfe, 0x8b, 0x5d, 0xc1, 0xd9, 0x65, 0xf2, 0x5c, 0xb1, 0x13, -0xfe, 0xaf, 0xa6, 0xb5, 0x8b, 0xa1, 0xd2, 0xb0, 0x49, 0x9d, 0x62, 0xed, 0x86, 0x71, 0x9a, 0x56, -0x07, 0xc2, 0x36, 0x2e, 0xf5, 0x11, 0x1e, 0xc7, 0xf7, 0x1f, 0x6a, 0x9a, 0xb3, 0x18, 0xde, 0x05, -0x70, 0x9b, 0x03, 0x65, 0xa1, 0xb2, 0xb7, 0xe7, 0x7b, 0xcb, 0xa0, 0x10, 0xd3, 0x5a, 0xe5, 0xca, -0x08, 0x04, 0x43, 0xc1, 0xb7, 0x2b, 0xdd, 0x19, 0x14, 0x6e, 0xcf, 0x24, 0xdf, 0x4a, 0x05, 0xc6, -0xd2, 0x8f, 0x72, 0x00, 0xdb, 0x6a, 0x06, 0xac, 0xcd, 0x02, 0x83, 0x00, 0xe3, 0x6e, 0x29, 0x81, -0xa2, 0xd6, 0x71, 0xfb, 0xe2, 0x52, 0x49, 0xc6, 0x38, 0x4c, 0x31, 0x80, 0x79, 0xdc, 0x81, 0x79, -0x90, 0xa4, 0xb1, 0x78, 0x80, 0x10, 0x8d, 0x7c, 0x8a, 0xc3, 0xda, 0x03, 0x22, 0xee, 0x6a, 0x0b, -0xf0, 0xae, 0xb0, 0x7c, 0x73, 0x15, 0xa7, 0x68, 0xd0, 0x4b, 0x33, 0x25, 0xc7, 0x8b, 0x29, 0x00, -0xee, 0x92, 0x8a, 0x30, 0x67, 0x42, 0x7a, 0xf1, 0x29, 0xc5, 0xa6, 0xb8, 0x76, 0x09, 0x40, 0x61, -0x48, 0x2e, 0x73, 0x8c, 0x6f, 0x94, 0x90, 0x8d, 0x80, 0xa6, 0x95, 0x7e, 0xd4, 0x41, 0x18, 0xda, -0x6b, 0xd5, 0xa0, 0x6e, 0xeb, 0x5f, 0x1e, 0xe9, 0x7a, 0xf1, 0x79, 0x28, 0x5c, 0x42, 0xa8, 0x6a, -0x07, 0xc8, 0xda, 0x1f, 0xa0, 0xc6, 0x88, 0xbb, 0x89, 0xa2, 0xcd, 0xbf, 0x74, 0x63, 0x37, 0xe7, -0x8f, 0xbf, 0x21, 0x53, 0x75, 0xe8, 0x71, 0xc5, 0x48, 0x97, 0xd5, 0xa8, 0x69, 0xea, 0x71, 0xb2, -0x53, 0x23, 0x54, 0x3e, 0x1e, 0x5e, 0x07, 0xb0, 0xc1, 0x65, 0x95, 0x32, 0x15, 0x13, 0xfe, 0xc5, -0xd0, 0xd9, 0x13, 0xa9, 0x57, 0x78, 0x5f, 0x7c, 0xbe, 0x04, 0x5c, 0x1c, 0x4d, 0xe3, 0xf3, 0x7e, -0x70, 0x63, 0x9f, 0xdc, 0x51, 0x0e, 0x03, 0x6b, 0x4a, 0x87, 0xae, 0xac, 0xfc, 0x5b, 0xfd, 0x21, -0xe6, 0x81, 0x98, 0x9d, 0x07, 0x53, 0xcb, 0x33, 0x98, 0x07, 0x74, 0xa0, 0x34, 0xde, 0x0e, 0xfd, -0x7e, 0x20, 0x36, 0xee, 0xa5, 0xb8, 0x62, 0x17, 0x33, 0xfa, 0xba, 0x84, 0x0f, 0x60, 0x2d, 0xf9, -0x52, 0x02, 0xc0, 0x72, 0x31, 0xeb, 0xa1, 0xba, 0x33, 0xb8, 0x1b, 0x08, 0x9a, 0x7a, 0x08, 0x03, -0xe4, 0x85, 0x5f, 0xd5, 0xc1, 0x48, 0x3c, 0x62, 0xb2, 0x9a, 0xc0, 0xa0, 0xc2, 0xc8, 0x6c, 0x97, -0x95, 0xa5, 0x7e, 0x9c, 0xa7, 0x6e, 0xcf, 0x03, 0x5b, 0xed, 0x46, 0xf2, 0xe1, 0xa4, 0x92, 0x4e, -0xae, 0xf0, 0x29, 0x3f, 0xee, 0x47, 0x83, 0xb1, 0x1b, 0x5b, 0x81, 0x6b, 0xf7, 0xe8, 0x72, 0x48, -0x07, 0xd3, 0x4e, 0x98, 0x23, 0x57, 0x89, 0x38, 0x87, 0x8a, 0x5c, 0x82, 0xcb, 0x10, 0xf4, 0x03, -0x4b, 0xe7, 0x43, 0x9e, 0x4e, 0xed, 0xc6, 0x76, 0x20, 0xb4, 0x7d, 0x26, 0xd1, 0x18, 0x74, 0x42, -0x74, 0x41, 0x38, 0x18, 0xcd, 0x11, 0x3b, 0x89, 0x4d, 0x90, 0x4a, 0x59, 0xe8, 0x77, 0xf8, 0xaf, -0xb0, 0x5f, 0x95, 0x70, 0xac, 0x9c, 0x49, 0x85, 0x63, 0x88, 0x45, 0xe4, 0xcf, 0xcf, 0x28, 0xb9, -0xa3, 0xde, 0xed, 0x47, 0x7e, 0x7b, 0x9b, 0xfe, 0xee, 0x94, 0xf2, 0xef, 0x2c, 0xc7, 0x61, 0xbd, -0x5d, 0x1a, 0xc9, 0xf6, 0xdb, 0x87, 0x65, 0x61, 0xe5, 0x17, 0xc8, 0xa7, 0x04, 0xc9, 0x3d, 0xfd, -0x86, 0x56, 0x03, 0xf3, 0xcf, 0xf5, 0x8a, 0xd8, 0x49, 0xda, 0xea, 0x52, 0xe7, 0x7d, 0x44, 0x41, -0xed, 0x21, 0x3f, 0xf9, 0xd5, 0x30, 0x14, 0x27, 0x10, 0x05, 0x9c, 0xd0, 0x0c, 0xb0, 0x3d, 0x5a, -0x48, 0xf8, 0x04, 0x99, 0x99, 0x6d, 0x2e, 0x1e, 0xbb, 0xf4, 0x32, 0x0c, 0x8d, 0xb7, 0x79, 0x1a, -0x89, 0x52, 0x5c, 0x79, 0xd4, 0x9b, 0xe1, 0x2d, 0xa6, 0x50, 0xca, 0x77, 0xfc, 0x2d, 0xa9, 0xf9, -0xe1, 0x64, 0xa1, 0x6e, 0x96, 0x9e, 0x2b, 0xc3, 0xb4, 0x5a, 0x3b, 0x0f, 0x20, 0x06, 0xa5, 0x52, -0xca, 0x85, 0xa5, 0x9f, 0x49, 0xb8, 0x43, 0x2d, 0x56, 0xeb, 0x6a, 0x81, 0x74, 0xe0, 0xad, 0x4e, -0xa3, 0x72, 0xdc, 0xda, 0xc3, 0x75, 0xe7, 0x5d, 0xec, 0xdb, 0xad, 0x3d, 0xa2, 0x51, 0xcf, 0x79, -0x8a, 0x58, 0x3a, 0x26, 0x57, 0x23, 0x1f, 0x01, 0xe9, 0x39, 0xb2, 0xdf, 0x9f, 0xaf, 0xe0, 0x72, -0xd9, 0x2d, 0x74, 0xfa, 0x5d, 0xcb, 0xfc, 0x6e, 0x1b, 0x8a, 0x3b, 0x84, 0x50, 0x10, 0xc7, 0xe1, -0x59, 0x73, 0x1e, 0x64, 0x82, 0x9d, 0xf0, 0x8d, 0x91, 0x5a, 0x61, 0xaf, 0xb6, 0x8e, 0x1f, 0xe8, -0x42, 0xba, 0x33, 0xe8, 0xce, 0x03, 0xd9, 0xbd, 0x1c, 0xc4, 0x9f, 0x0d, 0x13, 0xfd, 0x59, 0xd2, -0xee, 0xc8, 0x83, 0x2c, 0x7b, 0x31, 0xdc, 0x30, 0xd0, 0x1d, 0x6d, 0x33, 0x18, 0xe0, 0x86, 0x4e, -0xc8, 0x35, 0x70, 0x0a, 0x33, 0x3e, 0x4c, 0x76, 0x8e, 0x56, 0x03, 0x4c, 0xc4, 0x91, 0xbc, 0xc9, -0x6e, 0xb8, 0x13, 0xac, 0x38, 0x2e, 0xea, 0xcc, 0x77, 0xae, 0x75, 0x1b, 0xdf, 0x7f, 0x56, 0x29, -0xc7, 0x37, 0xe6, 0x25, 0x56, 0xb7, 0xe9, 0x9f, 0xd7, 0xbc, 0x37, 0x3f, 0x54, 0x16, 0x28, 0x53, -0x0a, 0xc5, 0xf9, 0xa5, 0x7f, 0xa9, 0x85, 0x98, 0x59, 0xaf, 0x75, 0x46, 0xd5, 0xbd, 0x32, 0x21, -0x29, 0x02, 0xdb, 0xdd, 0x0e, 0x8d, 0xff, 0x32, 0x43, 0xd0, 0xb2, 0xbb, 0x0d, 0x8a, 0xa5, 0x0d, -0x3c, 0x58, 0x5b, 0x53, 0xa6, 0x62, 0x6e, 0x73, 0xd0, 0x93, 0x31, 0x33, 0xbc, 0x26, 0xea, 0xd9, -0xf3, 0x34, 0xc8, 0x75, 0x4e, 0x26, 0x1b, 0xe4, 0x5f, 0xb4, 0x57, 0x6d, 0x11, 0x33, 0x25, 0x13, -0xa6, 0x4b, 0x2d, 0xf2, 0xbd, 0x44, 0x8b, 0x50, 0x2a, 0x38, 0x8f, 0xcc, 0x60, 0x73, 0xd6, 0xb0, -0xf3, 0x54, 0x07, 0x8b, 0xbd, 0x3d, 0x31, 0xf6, 0x48, 0x52, 0xc8, 0xf5, 0xa6, 0xb8, 0x47, 0x0c, -0xd1, 0xcc, 0x71, 0xf2, 0xa2, 0x26, 0x5f, 0xb1, 0x40, 0xa8, 0x1d, 0x06, 0x03, 0x9b, 0xa1, 0x65, -0x7f, 0x32, 0x43, 0xd9, 0xf9, 0x6d, 0x90, 0x95, 0x75, 0xf8, 0x65, 0xbb, 0xfd, 0xcc, 0x78, 0x03, -0x68, 0xe7, 0xe3, 0x82, 0xfc, 0xb5, 0x84, 0x1d, 0x88, 0x4b, 0x97, 0xd5, 0x3a, 0x69, 0xaf, 0x1b, -0x6e, 0xc3, 0x3e, 0xd5, 0x6d, 0x10, 0x1f, 0x2f, 0x87, 0xec, 0x81, 0x48, 0x77, 0xcc, 0xde, 0xdf, -0xad, 0x9e, 0xd5, 0x6d, 0x9f, 0x1e, 0x2f, 0xcf, 0xe2, 0x36, 0x1f, 0xb8, 0x52, 0x9c, 0x67, 0x3b, -0x64, 0xb3, 0x5c, 0x51, 0xf1, 0x2e, 0xd8, 0x71, 0x05, 0xb6, 0x7a, 0xcd, 0xb8, 0xff, 0x78, 0x4e, -0xf7, 0xed, 0x7a, 0x23, 0xd2, 0x29, 0x17, 0xae, 0x58, 0x8e, 0x1a, 0xbf, 0xd5, 0xaf, 0x5d, 0x41, -0xaa, 0x39, 0x99, 0xf9, 0x89, 0xb4, 0xb7, 0xde, 0x51, 0x2e, 0x0c, 0x74, 0x91, 0x05, 0x28, 0xb3, -0xec, 0x20, 0xc4, 0x32, 0x68, 0x9f, 0x30, 0xf7, 0x43, 0x10, 0x49, 0x86, 0x9a, 0xd5, 0x49, 0xf6, -0xb9, 0x9f, 0xdb, 0xeb, 0x25, 0xbb, 0x65, 0x03, 0xc9, 0x4e, 0xc9, 0x8f, 0x28, 0x93, 0x05, 0x3e, -0x92, 0xc0, 0x6b, 0x82, 0xc1, 0x9a, 0x0c, 0xf5, 0x8d, 0x6c, 0x37, 0xad, 0xfe, 0xf6, 0x0c, 0x4a, -0x6f, 0x5f, 0x5c, 0xb7, 0x53, 0xca, 0x31, 0xbb, 0x71, 0x44, 0x64, 0x45, 0xed, 0x59, 0xc5, 0x80, -0x54, 0x55, 0x2c, 0xa6, 0xb1, 0xf8, 0x87, 0x6d, 0x8a, 0x6c, 0xc8, 0x80, 0x71, 0x62, 0x31, 0x60, -0x8e, 0xe1, 0x8c, 0xa8, 0x8d, 0xeb, 0xe8, 0x90, 0x2d, 0x72, 0x1c, 0xde, 0xd9, 0xa6, 0x7f, 0x3b, -0x27, 0x0b, 0x57, 0x56, 0xa4, 0xc9, 0x37, 0x64, 0x0b, 0x77, 0x66, 0x58, 0x33, 0x20, 0xb3, 0x2e, -0x8b, 0x56, 0x4b, 0xd0, 0x9c, 0xc2, 0x9d, 0x3d, 0x24, 0x8b, 0x79, 0xe7, 0x29, 0xa4, 0xc5, 0x48, -0xb3, 0x97, 0x38, 0x78, 0xf8, 0x3f, 0x77, 0xbd, 0x57, 0x11, 0x2a, 0x09, 0x94, 0xec, 0x88, 0xd7, -0x1b, 0x44, 0xb2, 0x79, 0x97, 0xa7, 0x05, 0x40, 0x64, 0x2b, 0xf4, 0x64, 0xaf, 0xe0, 0x75, 0x43, -0xb6, 0x17, 0x58, 0x9d, 0x69, 0xcd, 0x74, 0xb3, 0x35, 0xd3, 0xc0, 0xfa, 0xf0, 0x67, 0xc9, 0x31, -0x9e, 0x9b, 0x90, 0x60, 0x74, 0x92, 0xff, 0x4e, 0xfb, 0x3f, 0xd2, 0x9f, 0x76, 0xe1, 0x5d, 0xb3, -0x23, 0x8e, 0x7d, 0xda, 0xc5, 0xfb, 0x52, 0xf2, 0x47, 0x1e, 0x20, 0x54, 0x63, 0xf2, 0x94, 0x90, -0xd5, 0x45, 0xda, 0x0f, 0x87, 0x07, 0x7c, 0x5d, 0x3a, 0x9f, 0xd3, 0x02, 0xf6, 0x92, 0xb3, 0x10, -0x9e, 0x16, 0x82, 0x48, 0x60, 0x3b, 0x54, 0xe1, 0x73, 0x15, 0x3e, 0x87, 0xf1, 0x5e, 0x8c, 0xf7, -0x20, 0x86, 0xf9, 0xf1, 0xd9, 0x8f, 0xcf, 0xc5, 0x73, 0xcf, 0x42, 0x2d, 0xa1, 0x3b, 0x05, 0x7e, -0xc8, 0xfd, 0xae, 0x15, 0xe5, 0xe2, 0x1e, 0x9a, 0x8f, 0xc9, 0x23, 0x9c, 0x4e, 0x31, 0xca, 0xf4, -0x22, 0xf5, 0x33, 0xd3, 0x7d, 0x04, 0x2e, 0x2b, 0x71, 0x11, 0x96, 0x40, 0xc8, 0x59, 0x21, 0x57, -0xe9, 0x76, 0xea, 0x12, 0x1b, 0xcf, 0x97, 0x91, 0x43, 0x63, 0x3c, 0xc8, 0x95, 0xe3, 0x32, 0x10, -0x02, 0x0e, 0xd2, 0xb0, 0x30, 0xf5, 0x71, 0xd1, 0xe3, 0x8a, 0x2c, 0x35, 0x81, 0xeb, 0xd5, 0x97, -0x43, 0x5f, 0xdf, 0x2a, 0xe0, 0x1e, 0x8f, 0xce, 0x93, 0x5d, 0x0c, 0x91, 0x4d, 0x20, 0xf9, 0x3a, -0x93, 0x1a, 0xbf, 0x21, 0x06, 0x64, 0xbb, 0x7a, 0x3c, 0xe6, 0xd0, 0x6d, 0xc4, 0x1b, 0x39, 0x37, -0xe3, 0xe6, 0x32, 0xe7, 0x81, 0xbc, 0x79, 0x60, 0xf9, 0x74, 0x27, 0x9d, 0xa9, 0x7e, 0x3a, 0x08, -0xe3, 0x6f, 0x2f, 0x05, 0x5b, 0x5e, 0x25, 0xd8, 0xf5, 0x58, 0x9d, 0x54, 0x63, 0x69, 0x3e, 0xff, -0x35, 0x72, 0x41, 0x0f, 0x6d, 0x6f, 0x17, 0x90, 0x72, 0xf4, 0x4a, 0x56, 0x8f, 0x9f, 0x34, 0x90, -0x49, 0x13, 0xd5, 0x9c, 0x81, 0xe5, 0x55, 0xc4, 0x26, 0xca, 0x3d, 0xdb, 0xd7, 0x8b, 0x63, 0x8a, -0x34, 0xa9, 0x17, 0x90, 0x3c, 0x86, 0xd7, 0x7b, 0x81, 0xd3, 0x4f, 0x61, 0x4c, 0xfe, 0x5d, 0x3c, -0xdb, 0xcf, 0x63, 0x32, 0x1f, 0x47, 0xf3, 0xc4, 0x89, 0x7a, 0x1c, 0xe6, 0x17, 0xf3, 0x38, 0x44, -0x32, 0x42, 0x3d, 0x81, 0xcf, 0xfa, 0x40, 0x9a, 0xc0, 0xa4, 0x56, 0x11, 0x29, 0xd1, 0x76, 0x55, -0xed, 0xcc, 0x6f, 0x92, 0x14, 0xd0, 0xcb, 0x53, 0x47, 0xbf, 0xc8, 0x43, 0x9d, 0x2e, 0x8f, 0x91, -0x48, 0x1f, 0x39, 0x9a, 0x43, 0x96, 0x90, 0x25, 0x1f, 0x40, 0x31, 0xc6, 0xe3, 0x9c, 0x1b, 0x5f, -0x5d, 0xba, 0x53, 0x3e, 0x53, 0x49, 0x16, 0xc6, 0xf8, 0x57, 0xe2, 0x33, 0x33, 0xd9, 0xdf, 0x1b, -0xf9, 0x78, 0xe2, 0xf6, 0x9c, 0x2c, 0x64, 0x36, 0xfb, 0x5b, 0x99, 0x08, 0x8f, 0xf1, 0x3e, 0x2a, -0x90, 0x43, 0x2e, 0x33, 0x61, 0x3e, 0x38, 0xab, 0x28, 0x1f, 0xd2, 0x0e, 0x90, 0x57, 0x40, 0xb1, -0x62, 0xd0, 0xcf, 0xb1, 0x64, 0xc5, 0xc5, 0xfc, 0x90, 0x5b, 0xd8, 0x18, 0x76, 0xec, 0xec, 0x52, -0xc9, 0x2f, 0x79, 0x4f, 0x34, 0xab, 0x15, 0x70, 0x6e, 0x4c, 0xda, 0xd5, 0x15, 0x35, 0xcb, 0x7e, -0x31, 0x4b, 0x7d, 0xfd, 0x91, 0x83, 0x4c, 0xbb, 0xa1, 0x9b, 0x71, 0x9c, 0xb9, 0x7a, 0x59, 0xee, -0x61, 0x7f, 0xe3, 0xe9, 0x65, 0x49, 0xd9, 0x83, 0xc6, 0x82, 0x7a, 0x7d, 0xf2, 0x93, 0x65, 0xff, -0x21, 0xfb, 0xbb, 0x7b, 0x74, 0x7c, 0x29, 0xd4, 0x6a, 0xa7, 0xf9, 0x14, 0xb3, 0x63, 0x2b, 0x78, -0xf4, 0x91, 0xd3, 0x17, 0xb3, 0x27, 0xf4, 0x5a, 0xef, 0x98, 0xe3, 0x0c, 0xb9, 0x12, 0x23, 0xac, -0x90, 0xb4, 0xae, 0xbc, 0x76, 0x96, 0xce, 0x9b, 0x3c, 0x1d, 0xa4, 0xfa, 0xf6, 0xc8, 0x43, 0xbf, -0xfb, 0xaf, 0xdf, 0xfd, 0x97, 0xf7, 0xc6, 0x32, 0x3a, 0x69, 0xda, 0x5f, 0xb5, 0xc9, 0x0d, 0x4e, -0x58, 0xd4, 0x13, 0x1b, 0x7e, 0x29, 0x8e, 0x7c, 0x85, 0x91, 0xe6, 0x59, 0xd4, 0xe2, 0x85, 0xaa, -0x4d, 0xb5, 0x1b, 0x65, 0x20, 0x7d, 0xee, 0x92, 0xbf, 0x14, 0x15, 0x97, 0x9c, 0x77, 0x65, 0x88, -0x66, 0x7d, 0x94, 0x35, 0xf1, 0x5e, 0xd7, 0x91, 0x14, 0x06, 0x57, 0x79, 0xde, 0x88, 0x77, 0x16, -0x9f, 0x88, 0xbb, 0x4c, 0xc7, 0x1f, 0x2a, 0x79, 0x0f, 0xec, 0x52, 0x39, 0xf6, 0x3a, 0x8f, 0xd3, -0x77, 0x6c, 0xf5, 0xe9, 0x07, 0x45, 0xe3, 0xe9, 0xde, 0xd6, 0xe1, 0x03, 0x5d, 0xee, 0x60, 0xe4, -0x21, 0x69, 0xfe, 0xc3, 0x07, 0x14, 0xb3, 0xab, 0x26, 0xeb, 0xfc, 0x01, 0x88, 0xf4, 0xee, 0xe9, -0x5d, 0x71, 0x51, 0xca, 0x38, 0xd2, 0x43, 0x5e, 0xc6, 0x4a, 0xcf, 0x61, 0xca, 0x15, 0xf8, 0xd6, -0x22, 0x61, 0x29, 0x72, 0xcf, 0xe7, 0xe0, 0xfb, 0x9d, 0xbd, 0x2b, 0x2e, 0x58, 0xd7, 0x10, 0x2d, -0x69, 0x31, 0xae, 0x84, 0xf2, 0x4c, 0x31, 0x68, 0x5f, 0x13, 0xf8, 0x5c, 0x2d, 0x30, 0x2f, 0x11, -0x23, 0x2b, 0x4c, 0x59, 0x86, 0x08, 0x8e, 0x9a, 0xea, 0x5f, 0xe6, 0x74, 0xf9, 0x3a, 0x41, 0xd3, -0x43, 0x8d, 0x62, 0x20, 0xd2, 0x1b, 0xb8, 0xad, 0x17, 0xa6, 0x2d, 0xc7, 0xd5, 0xc1, 0x33, 0xad, -0x14, 0x7c, 0xa7, 0x37, 0x4c, 0x2b, 0x87, 0x42, 0xfc, 0x6d, 0x85, 0xa2, 0xd3, 0x1b, 0xa7, 0xcd, -0x85, 0x5c, 0x9c, 0xd1, 0xe4, 0x19, 0xcc, 0xc5, 0xfc, 0x64, 0xe5, 0x90, 0x47, 0xad, 0x1b, 0x1e, -0x27, 0x94, 0x41, 0xbe, 0x4b, 0xe8, 0x64, 0xe8, 0xc7, 0xd8, 0xc2, 0xb5, 0x7a, 0x0b, 0x1f, 0x4a, -0xec, 0x0f, 0xd2, 0xc2, 0x5e, 0x4a, 0xd3, 0x25, 0xa6, 0xb1, 0x49, 0x1e, 0x49, 0x7b, 0x93, 0xe3, -0xd2, 0x98, 0x3e, 0x2e, 0x59, 0x1c, 0xa0, 0x95, 0xa2, 0xde, 0xd0, 0x66, 0x2f, 0xc3, 0x9e, 0x93, -0xc2, 0xa2, 0x21, 0xd1, 0x7b, 0x8a, 0x29, 0x50, 0xe0, 0x02, 0x7d, 0x25, 0xb9, 0x98, 0xd0, 0x1d, -0xe6, 0xf2, 0x9b, 0x5b, 0x0b, 0x60, 0x48, 0xba, 0x88, 0x77, 0x15, 0xef, 0xe7, 0x61, 0x68, 0xda, -0x6a, 0x18, 0x72, 0x5e, 0x82, 0xa1, 0xe9, 0x9d, 0x30, 0xe4, 0xca, 0xc1, 0xab, 0x16, 0x2f, 0x0c, -0x9b, 0x61, 0xc6, 0x0b, 0xd7, 0x87, 0x19, 0x4b, 0xf1, 0xc2, 0xf7, 0x6e, 0x0f, 0x0c, 0xe5, 0x9d, -0x83, 0x21, 0x8f, 0x8c, 0x97, 0x1f, 0xaf, 0xc5, 0x78, 0x3d, 0x8e, 0xd7, 0x51, 0xbc, 0xce, 0xc0, -0xd0, 0x4c, 0x0c, 0x9f, 0x89, 0xcf, 0xf9, 0x98, 0x4e, 0xfe, 0x99, 0xff, 0x45, 0xd9, 0x4d, 0xec, -0xee, 0xd6, 0xb6, 0x65, 0x6d, 0xe9, 0xb2, 0x9b, 0xcf, 0x8e, 0x95, 0xd7, 0x5c, 0x15, 0x85, 0xc9, -0x6b, 0x6e, 0x3e, 0x0d, 0x43, 0x0d, 0xd6, 0xae, 0x8c, 0xf1, 0x2e, 0x7c, 0x3e, 0x82, 0xd7, 0xf3, -0x30, 0x34, 0xd9, 0x98, 0x4c, 0x7d, 0x05, 0x0c, 0xe5, 0x0c, 0x73, 0x79, 0x8d, 0x9c, 0x0c, 0xa4, -0x43, 0x4d, 0xe2, 0x50, 0xc9, 0xf7, 0x98, 0x7e, 0x17, 0xf5, 0xfb, 0x34, 0xfd, 0xee, 0x04, 0x1e, -0x47, 0xdf, 0x4c, 0x97, 0x97, 0x70, 0x11, 0x90, 0x31, 0xf9, 0x64, 0x4a, 0x3e, 0x8d, 0x83, 0xaa, -0x05, 0xe5, 0x35, 0xf4, 0x34, 0x21, 0x19, 0x66, 0xe5, 0x4f, 0x43, 0x9f, 0xae, 0xb6, 0x25, 0xc3, -0x3c, 0x10, 0xfc, 0x22, 0x8b, 0x06, 0x33, 0xe9, 0x89, 0xa5, 0x9e, 0x4f, 0x4f, 0xcc, 0x92, 0xcc, -0x0b, 0x35, 0x3c, 0x11, 0x2c, 0xdd, 0xfc, 0xaa, 0x5a, 0xf6, 0xd4, 0x45, 0x4f, 0x2c, 0x5e, 0x0f, -0x94, 0xd5, 0x2e, 0xa0, 0xb2, 0xc2, 0x06, 0xa8, 0x5c, 0x38, 0x9f, 0xbd, 0xfd, 0xbf, 0x10, 0xa8, -0x09, 0xb2, 0xa7, 0x1f, 0xd0, 0x13, 0xee, 0xf8, 0x3f, 0xad, 0x24, 0x9f, 0x62, 0xc9, 0xa7, 0xf8, -0x93, 0xf4, 0xc4, 0xbe, 0x7d, 0x1e, 0x42, 0xe5, 0x35, 0x79, 0x18, 0xd6, 0xf7, 0x3b, 0x28, 0xad, -0x9e, 0xcf, 0xc2, 0xde, 0x83, 0x40, 0x19, 0xcf, 0xf8, 0x1c, 0xd4, 0xcc, 0xfb, 0x0a, 0x4b, 0xef, -0x0a, 0x44, 0x4a, 0x2a, 0x82, 0xa3, 0xbb, 0xe9, 0x97, 0xee, 0x7b, 0x5c, 0x97, 0x6e, 0x99, 0x74, -0x64, 0xcf, 0x3c, 0x78, 0xfc, 0xe5, 0x39, 0x2f, 0xdf, 0xde, 0xf3, 0xf3, 0xe5, 0xdf, 0xbd, 0xaf, -0x64, 0xd2, 0x89, 0x17, 0x27, 0xc0, 0x4d, 0xca, 0xee, 0x2f, 0xde, 0xf0, 0xa5, 0x15, 0x9d, 0x3b, -0x57, 0xfc, 0xf7, 0xa4, 0x63, 0x1b, 0x2f, 0x81, 0x61, 0xe6, 0xf8, 0xaf, 0xe7, 0x55, 0x5c, 0x7c, -0x68, 0xd1, 0x0b, 0xb6, 0x49, 0x27, 0x7e, 0xfa, 0xaf, 0x70, 0xf3, 0xe1, 0xfb, 0x1f, 0x0d, 0x85, -0x58, 0x26, 0x93, 0xb6, 0x6f, 0x9f, 0x04, 0xbe, 0x86, 0xd2, 0x73, 0xcf, 0xc0, 0xd0, 0x67, 0x44, -0xbc, 0x76, 0xc2, 0x50, 0x6e, 0x07, 0x96, 0xe8, 0x28, 0xcb, 0xe4, 0xad, 0xeb, 0xff, 0x3b, 0xf6, -0xd6, 0xef, 0x80, 0x59, 0xdd, 0x0d, 0x49, 0x5b, 0x60, 0xa8, 0x20, 0x1b, 0x86, 0x8a, 0x8c, 0x78, -0xc7, 0x31, 0x5e, 0xd8, 0x08, 0x43, 0x9f, 0xc5, 0xde, 0x9f, 0x85, 0xe3, 0xf7, 0xb3, 0x21, 0xbc, -0x62, 0xbc, 0xbf, 0x3f, 0xdb, 0x87, 0xd7, 0x07, 0x98, 0x3e, 0x8e, 0xf7, 0xdc, 0x22, 0x7c, 0x9f, -0x33, 0xa6, 0xef, 0x13, 0x7d, 0x9e, 0x91, 0xde, 0xd7, 0x69, 0xef, 0x29, 0x3c, 0x43, 0x1f, 0x23, -0x19, 0x69, 0xf1, 0x8d, 0x9f, 0x34, 0x56, 0x98, 0x85, 0xe0, 0x90, 0xf4, 0xaf, 0x30, 0xe4, 0xaf, -0x86, 0xa1, 0x39, 0x56, 0x18, 0x9a, 0x8d, 0xbf, 0x67, 0x2f, 0xc4, 0x67, 0xac, 0x73, 0x29, 0xce, -0x9d, 0xe2, 0x26, 0xfc, 0xbd, 0x8e, 0x97, 0x71, 0xf6, 0x7e, 0x18, 0x0a, 0xd8, 0xb1, 0x7c, 0x7b, -0xf1, 0x3a, 0x81, 0xef, 0xb2, 0xae, 0x53, 0xc6, 0xa9, 0x7f, 0xa3, 0x8c, 0xa2, 0x7e, 0x9f, 0xaa, -0xdf, 0xaf, 0x5d, 0xb6, 0xa1, 0x0a, 0x07, 0x0c, 0x85, 0x71, 0x1e, 0xcf, 0x7d, 0x8c, 0xcb, 0x88, -0xa4, 0x7f, 0x87, 0xa1, 0xf2, 0xe3, 0x30, 0xf4, 0x25, 0x2c, 0xd3, 0x82, 0x29, 0x30, 0x74, 0xa7, -0x82, 0xef, 0x5e, 0x81, 0xa1, 0xf9, 0x16, 0xfc, 0x9d, 0x0b, 0x43, 0xa1, 0x33, 0xfc, 0xbb, 0xf0, -0x64, 0x18, 0x9a, 0x37, 0x80, 0xfd, 0xf5, 0x18, 0x5e, 0xf5, 0xf8, 0xbb, 0x1b, 0xd3, 0xda, 0x34, -0x66, 0x1e, 0x65, 0xa4, 0x95, 0x47, 0xd2, 0xef, 0xb7, 0xea, 0x77, 0x39, 0xdd, 0x62, 0x72, 0x6c, -0xfd, 0xd2, 0xda, 0x0e, 0xfb, 0x54, 0xc2, 0x19, 0x5c, 0x37, 0x07, 0x86, 0xee, 0x8e, 0xc1, 0xd0, -0x97, 0xb1, 0xaf, 0xbf, 0x52, 0x7e, 0x4d, 0xba, 0x31, 0xb4, 0x78, 0x10, 0x86, 0xbe, 0xda, 0x0b, -0x43, 0x53, 0xb0, 0x7f, 0xa7, 0xb8, 0xd2, 0x5f, 0xfd, 0x2c, 0x5a, 0xfe, 0x1f, 0xdb, 0xc3, 0x7f, -0x31, 0x1c, 0x14, 0x36, 0xdc, 0x35, 0xf6, 0xb3, 0x44, 0xde, 0x7f, 0xa3, 0x2d, 0x85, 0xeb, 0xd5, -0xe1, 0x13, 0xfa, 0x1d, 0xbe, 0x31, 0xce, 0xf7, 0xe8, 0x07, 0xb6, 0xbb, 0x3d, 0xdf, 0x1e, 0xff, -0xa5, 0x3d, 0xe3, 0x9a, 0xf7, 0xdf, 0x1c, 0x6b, 0xbc, 0xb8, 0xf1, 0xdd, 0x25, 0x3f, 0xf8, 0xdc, -0xf7, 0xea, 0x1f, 0xf9, 0xbe, 0xed, 0x77, 0xbd, 0x05, 0xdf, 0x3c, 0xb1, 0xfb, 0x89, 0x93, 0xbf, -0x79, 0x77, 0xca, 0xb7, 0x8e, 0xbc, 0xd6, 0x3b, 0x7e, 0x57, 0x65, 0xde, 0xaa, 0x17, 0x3a, 0x7f, -0xfe, 0xce, 0xee, 0x99, 0xe3, 0xfa, 0x7e, 0xf1, 0x99, 0x87, 0x3f, 0xf3, 0x13, 0x7b, 0x7d, 0x63, -0xbf, 0x78, 0xe1, 0xcf, 0x3f, 0xfd, 0x7a, 0x68, 0xf5, 0x8b, 0x25, 0x6f, 0x4c, 0x7e, 0xfd, 0xe8, -0xff, 0x69, 0xfe, 0xfd, 0xe9, 0xf7, 0x2e, 0x1e, 0xfd, 0xf1, 0x97, 0x7a, 0x5e, 0x5d, 0xf3, 0x9f, -0x37, 0x36, 0x6d, 0x5d, 0x58, 0xbf, 0x7c, 0xdb, 0xc0, 0x95, 0xba, 0xcb, 0x2b, 0xd7, 0x35, 0xbc, -0x7c, 0xce, 0x21, 0x2c, 0xfe, 0xe2, 0x12, 0x53, 0xd3, 0x6b, 0x43, 0x37, 0x7c, 0x61, 0xc9, 0x43, -0xe6, 0x89, 0x7f, 0xb9, 0x7d, 0x85, 0x78, 0xa0, 0x72, 0x99, 0xfd, 0xae, 0xdf, 0x28, 0x25, 0xa7, -0xff, 0x3d, 0xfa, 0xf5, 0xd6, 0xe2, 0x8c, 0xd3, 0x87, 0xe7, 0x19, 0x8f, 0xce, 0x3d, 0x32, 0x71, -0xcd, 0x95, 0x1f, 0x58, 0x7e, 0xbc, 0xfc, 0x73, 0x3f, 0xde, 0x36, 0x14, 0xd8, 0xb1, 0xb5, 0xe9, -0x77, 0x3f, 0x7b, 0xf9, 0xd8, 0x33, 0x7b, 0x2f, 0xfb, 0x0b, 0x8e, 0x37, 0xfd, 0xa1, 0xec, 0xcd, -0xc5, 0xf7, 0x9e, 0x38, 0x36, 0xf1, 0xbf, 0x9f, 0x3e, 0xfc, 0x85, 0xaf, 0x38, 0x5f, 0xf3, 0x3d, -0xf3, 0xa5, 0x37, 0x60, 0xf6, 0x81, 0xdf, 0x7e, 0x29, 0xfe, 0x8b, 0xc1, 0xbb, 0xb3, 0xa7, 0xee, -0xbc, 0xf8, 0xe3, 0x85, 0x3f, 0xda, 0x7f, 0xeb, 0x7f, 0xef, 0x79, 0xe4, 0xdb, 0xbb, 0x7f, 0xfe, -0x83, 0x1b, 0x5c, 0x86, 0xdd, 0xdf, 0xfb, 0x5a, 0x66, 0xaf, 0xf9, 0x25, 0xeb, 0x6b, 0x3b, 0x5e, -0x98, 0xf0, 0xae, 0xec, 0x6d, 0xe9, 0xbc, 0xbf, 0x76, 0x69, 0xe5, 0xa4, 0x5f, 0xde, 0xfd, 0x99, -0xa7, 0x77, 0xa9, 0x33, 0xbf, 0xd0, 0x7e, 0xa2, 0xa4, 0x4f, 0xf8, 0xdd, 0xd7, 0x4d, 0x5b, 0x8f, -0x88, 0x7b, 0x3f, 0xfc, 0x8d, 0xdd, 0xfd, 0xf5, 0x17, 0xd6, 0x3c, 0x60, 0xda, 0xf5, 0xe3, 0x5b, -0xfe, 0xef, 0x2f, 0x4e, 0xff, 0xe0, 0xcc, 0xee, 0xa3, 0x9f, 0xed, 0x18, 0xf7, 0xf2, 0xbf, 0xdf, -0x00, 0x97, 0x0b, 0x1f, 0x1d, 0xbf, 0x6d, 0xc3, 0x5b, 0xb6, 0xad, 0x39, 0xf7, 0x35, 0x4e, 0xfc, -0x99, 0xb9, 0xf9, 0x0b, 0x33, 0x1f, 0xae, 0x6f, 0xfa, 0xd6, 0xdb, 0x4b, 0x16, 0x0b, 0xcb, 0x97, -0x7f, 0xe9, 0x62, 0x6e, 0xd3, 0xdd, 0x75, 0x6b, 0x1a, 0x7c, 0xc7, 0x2f, 0xd4, 0x41, 0x55, 0x93, -0xe9, 0x91, 0xf7, 0x3f, 0x2d, 0xfc, 0xe0, 0x5f, 0xba, 0xcd, 0x17, 0x7f, 0xf9, 0x97, 0x1b, 0xf6, -0x7f, 0xb9, 0xa1, 0xff, 0xb5, 0x97, 0xb2, 0x7e, 0xf2, 0x6e, 0xf5, 0x83, 0x2f, 0xee, 0x3e, 0x3b, -0xfc, 0xd3, 0xde, 0xce, 0xba, 0xdf, 0x7f, 0xe6, 0xcd, 0x9b, 0x5e, 0x9f, 0x59, 0xb1, 0xfe, 0xd5, -0xce, 0x3f, 0x7f, 0x7c, 0xb4, 0xb2, 0x61, 0xfe, 0x8e, 0xbb, 0x6b, 0x67, 0xff, 0xf8, 0x4b, 0xaf, -0x7c, 0x7f, 0x2f, 0xb4, 0x1d, 0xfd, 0x99, 0xef, 0x54, 0xf8, 0xcd, 0x1f, 0x94, 0x7c, 0xe1, 0xf8, -0x23, 0xbf, 0x7d, 0xe2, 0xf0, 0xfe, 0xe6, 0x57, 0x8f, 0x5d, 0xfc, 0xb8, 0x74, 0xd9, 0xbb, 0x8d, -0x85, 0x2b, 0x5e, 0x1b, 0x7e, 0x36, 0xda, 0x5b, 0xfe, 0xba, 0xb2, 0x7b, 0x30, 0x68, 0x9c, 0x79, -0xcf, 0x67, 0x33, 0x3e, 0xf3, 0xc7, 0xed, 0x96, 0xca, 0xaf, 0xfd, 0x7e, 0x62, 0xe7, 0xcb, 0xd5, -0x99, 0x5f, 0x2f, 0x9e, 0x6e, 0x28, 0xd9, 0xfe, 0xe2, 0x04, 0xbb, 0xfd, 0x65, 0xab, 0xb8, 0xf6, -0xcb, 0x4b, 0x7f, 0x3c, 0x4d, 0x6c, 0x59, 0xf3, 0xa3, 0x9f, 0xaa, 0x47, 0xc7, 0xbf, 0x72, 0xf7, -0xe9, 0xff, 0x7b, 0xd7, 0x1b, 0x97, 0x6d, 0x33, 0x5e, 0x7b, 0x79, 0x6b, 0xff, 0xe0, 0x56, 0xe9, -0x3f, 0x7f, 0xbb, 0x6d, 0xe7, 0x57, 0x7e, 0xf4, 0x85, 0x4f, 0xe5, 0xef, 0x9c, 0xd8, 0xf5, 0x93, -0x9f, 0x2f, 0xbe, 0x7d, 0x60, 0x4f, 0xd3, 0xb3, 0xef, 0xef, 0xee, 0x11, 0xbf, 0xf3, 0x8b, 0x1f, -0xed, 0xca, 0xd8, 0x75, 0xca, 0xda, 0xf6, 0xc2, 0x91, 0xef, 0x9c, 0xfd, 0xcd, 0xdc, 0x7f, 0xfa, -0xee, 0x91, 0x6f, 0x3c, 0x6f, 0xfc, 0x9d, 0xf3, 0xa6, 0x7b, 0x4e, 0x64, 0xf7, 0xfc, 0x61, 0xc9, -0x84, 0xac, 0x2d, 0xf5, 0xb7, 0xaf, 0x9e, 0xd8, 0xdc, 0x38, 0x67, 0x65, 0xe3, 0xa2, 0x6d, 0xa7, -0x6d, 0xff, 0x3d, 0x61, 0xf3, 0x78, 0xed, 0xbb, 0x16, 0x78, 0x6e, 0xfa, 0xff, 0x19, 0xf7, 0xbd, -0x17, 0xce, 0xdf, 0xb0, 0x39, 0x78, 0xbf, 0xf9, 0xfb, 0x47, 0xa6, 0x08, 0x17, 0x96, 0x2e, 0x33, -0xed, 0x1b, 0xf9, 0x6b, 0xdd, 0x97, 0xff, 0x39, 0xde, 0x10, 0xfd, 0xf5, 0xcd, 0x4d, 0xb3, 0xbe, -0xbe, 0x62, 0xb9, 0xe9, 0x9d, 0x91, 0xa3, 0x9f, 0x6e, 0x7f, 0xe0, 0xd5, 0xbc, 0x93, 0xf6, 0xd7, -0x57, 0x2e, 0x8a, 0xfe, 0x3e, 0x7c, 0xe8, 0xf2, 0x4f, 0xdf, 0x6c, 0xd9, 0xf0, 0xe2, 0x87, 0x97, -0x3f, 0xf5, 0x93, 0x17, 0x4b, 0x95, 0xfe, 0x0d, 0xbf, 0x39, 0x76, 0xec, 0xfb, 0x67, 0xfe, 0xed, -0xf0, 0xe6, 0x55, 0x45, 0xc7, 0xf7, 0xed, 0xff, 0xe2, 0x9b, 0x17, 0x22, 0x87, 0x7f, 0x16, 0xfd, -0xd3, 0x93, 0x7b, 0xbf, 0x1c, 0xbd, 0xe3, 0xc7, 0xa6, 0xdf, 0x87, 0x76, 0xcc, 0x9a, 0x77, 0x7c, -0x62, 0xde, 0xeb, 0xcf, 0x5b, 0x3e, 0x5d, 0x39, 0x2b, 0x23, 0xfc, 0x51, 0x89, 0x71, 0xa5, 0xf2, -0xa6, 0xf2, 0xe1, 0xaf, 0xb6, 0x45, 0xdf, 0xbc, 0xf3, 0xb6, 0x15, 0x1b, 0x3e, 0x2c, 0x5f, 0xf6, -0xe2, 0x37, 0x7f, 0x7d, 0xf7, 0x8f, 0xd6, 0xef, 0x55, 0x7b, 0x26, 0x4f, 0x6b, 0x39, 0xf2, 0x78, -0x64, 0xe9, 0xa9, 0x59, 0x87, 0xac, 0xdf, 0x78, 0xe4, 0x67, 0x13, 0xe6, 0x66, 0x48, 0x86, 0xec, -0x9f, 0xde, 0x99, 0xe9, 0xf4, 0xfe, 0xc7, 0x9e, 0xdb, 0x5f, 0xdc, 0xf1, 0xf3, 0x09, 0xae, 0xbc, -0x9d, 0x8b, 0x36, 0x2d, 0xfe, 0x51, 0xa3, 0x71, 0xdf, 0x6f, 0xb5, 0x1f, 0xfe, 0x78, 0xf0, 0xbf, -0x6f, 0xf3, 0xbc, 0xf6, 0xbd, 0x07, 0xbf, 0xfa, 0xc6, 0x73, 0x9f, 0xf9, 0xd7, 0xfa, 0x7d, 0xfd, -0xe7, 0x96, 0x5c, 0x70, 0xde, 0xdb, 0xf8, 0xfd, 0xc7, 0x0c, 0xcd, 0x9b, 0x2d, 0x8f, 0x8d, 0x37, -0x3d, 0xf5, 0x9e, 0x6d, 0xd6, 0x1d, 0xad, 0xe3, 0xa2, 0x6b, 0x32, 0xe1, 0xcb, 0x37, 0x3e, 0xf2, -0x8b, 0x70, 0xf7, 0xa9, 0xdd, 0x2b, 0x1d, 0xff, 0xf2, 0x42, 0xde, 0x73, 0xd6, 0x5d, 0x9f, 0x2e, -0xda, 0x74, 0x64, 0xc3, 0xbf, 0xfe, 0xf1, 0x37, 0x2f, 0x4e, 0xec, 0x3c, 0xf1, 0xe1, 0x4f, 0x26, -0xfc, 0xee, 0xcd, 0xa9, 0x6b, 0x5f, 0x3d, 0x72, 0xf4, 0x4f, 0x47, 0x4f, 0x05, 0x96, 0xfe, 0xfe, -0x47, 0x97, 0x6e, 0x79, 0xbd, 0x67, 0x45, 0xd7, 0x8b, 0xd9, 0xff, 0xf5, 0xd1, 0x4f, 0x9d, 0x5f, -0x6d, 0xe9, 0xff, 0xc6, 0x5b, 0x39, 0x3f, 0x99, 0xfb, 0x8d, 0x5e, 0xf3, 0xa2, 0xb7, 0xb5, 0x1b, -0x1a, 0x63, 0xaa, 0xe9, 0xf6, 0x83, 0x93, 0x84, 0x09, 0x8b, 0x37, 0x36, 0x7c, 0x4f, 0xbb, 0x54, -0xf7, 0xdc, 0xb2, 0xbb, 0x97, 0x6b, 0xaf, 0x66, 0x37, 0xfd, 0x77, 0xd9, 0xe3, 0x96, 0x53, 0x1d, -0xbf, 0x9d, 0x78, 0xe4, 0x83, 0x2a, 0x63, 0xcf, 0x82, 0x7f, 0xca, 0xf8, 0xd1, 0xbe, 0x1f, 0x46, -0x9d, 0x77, 0x0f, 0x2a, 0xd9, 0x7f, 0xad, 0x58, 0x36, 0x77, 0xfe, 0x9c, 0x15, 0xdf, 0xf8, 0xdd, -0x73, 0x87, 0x1b, 0xc3, 0xaf, 0x1d, 0x5b, 0x74, 0xc2, 0xff, 0xe6, 0x04, 0xf5, 0xf3, 0xc7, 0x6f, -0x3f, 0xff, 0xd4, 0xde, 0xe7, 0x6a, 0xde, 0xf8, 0xd9, 0xf7, 0xfe, 0x63, 0xee, 0x8e, 0xff, 0xbe, -0xcf, 0xf7, 0x63, 0xed, 0xdd, 0x9f, 0xff, 0xfc, 0x42, 0xee, 0xc1, 0x3d, 0xfb, 0xd6, 0xd5, 0xfc, -0x68, 0xb3, 0x4f, 0xde, 0xf9, 0xfd, 0x27, 0xf7, 0x0c, 0xce, 0xca, 0xfc, 0xaf, 0xdf, 0x9a, 0x36, -0x2f, 0x78, 0xe3, 0xcb, 0x33, 0x6e, 0x7d, 0x2d, 0xfa, 0x8b, 0x1f, 0xa9, 0x2b, 0xf3, 0xf7, 0xdf, -0x1d, 0xde, 0xfd, 0xcf, 0x4b, 0x3f, 0x6d, 0x70, 0xb7, 0xe4, 0x6d, 0xd9, 0x39, 0xe1, 0xc5, 0xcf, -0xff, 0xca, 0xba, 0xe1, 0xdf, 0x16, 0x65, 0xbe, 0xf9, 0xe9, 0x99, 0x86, 0x0f, 0x1f, 0x4a, 0x3f, -0x76, 0xb8, 0xde, 0x73, 0x75, 0xe9, 0xcc, 0xb2, 0x40, 0x84, 0x6e, 0xf3, 0xf1, 0x16, 0x09, 0x06, -0xa0, 0xac, 0xbc, 0x42, 0xac, 0x2e, 0x89, 0x2c, 0x80, 0xb9, 0xd5, 0x0b, 0xa0, 0x7c, 0x59, 0x53, -0x43, 0xcd, 0x37, 0xef, 0x69, 0x6b, 0x68, 0xce, 0x6f, 0x6d, 0xb8, 0xa7, 0xe5, 0xde, 0xd6, 0x25, -0x0d, 0xe9, 0xf2, 0xfc, 0x69, 0xb3, 0x53, 0xcf, 0xf2, 0x89, 0x74, 0x9b, 0xe7, 0x84, 0x5c, 0x9f, -0x74, 0x1d, 0xc6, 0x4a, 0xf5, 0x6f, 0x5e, 0x9a, 0x26, 0xb3, 0xc7, 0x77, 0xaa, 0xdd, 0x9c, 0x8f, -0x94, 0xce, 0x16, 0x35, 0x8b, 0xe4, 0x25, 0xe3, 0x83, 0x74, 0x8d, 0x87, 0xd1, 0xd2, 0xfe, 0x9b, -0x63, 0x7f, 0x8f, 0xb4, 0x5f, 0x2c, 0x90, 0xab, 0x58, 0xba, 0xab, 0xe4, 0x7c, 0x70, 0x26, 0x52, -0xe0, 0x79, 0x4b, 0x87, 0x46, 0xa5, 0xb0, 0x58, 0x4a, 0xe1, 0xd2, 0x18, 0x53, 0x52, 0xfa, 0x9b, -0x7b, 0xaf, 0x96, 0xd2, 0xdf, 0xbc, 0xf5, 0x1f, 0x93, 0xd2, 0x2b, 0x66, 0x70, 0x93, 0x4c, 0x47, -0x47, 0xcf, 0x30, 0x8e, 0xb6, 0xd3, 0xc6, 0xfd, 0xb7, 0xf3, 0x93, 0xcf, 0x21, 0x6e, 0x7e, 0xfc, -0xfa, 0xe7, 0x10, 0x37, 0xf7, 0x8d, 0x3d, 0x87, 0x90, 0x8e, 0x7f, 0xd2, 0x39, 0x04, 0xd6, 0x7a, -0xcc, 0x39, 0xc4, 0xff, 0x46, 0x0d, 0x47, 0x9f, 0x43, 0x70, 0x5d, 0xe6, 0xd1, 0xd6, 0xd8, 0xd0, -0x18, 0x2d, 0xc6, 0x1d, 0xc9, 0xd0, 0xa7, 0x1f, 0x07, 0x29, 0xd4, 0x08, 0x6e, 0x4a, 0xd7, 0xd0, -0x84, 0xbb, 0xf5, 0xa2, 0x94, 0x65, 0x35, 0xc9, 0x0e, 0xa4, 0x58, 0x2c, 0x89, 0x05, 0x74, 0xe5, -0x38, 0x7e, 0xa7, 0xd6, 0x6e, 0xe4, 0x96, 0x8f, 0xc9, 0x71, 0xc0, 0x52, 0xc7, 0x2f, 0xdd, 0x2f, -0x9c, 0x85, 0x02, 0xd5, 0x2d, 0x35, 0x82, 0x3a, 0x06, 0x3f, 0xa5, 0x0e, 0xc3, 0x1a, 0x39, 0xaa, -0x51, 0x2a, 0x4c, 0x31, 0x72, 0x3f, 0x30, 0x09, 0x5b, 0x5c, 0x86, 0x87, 0x32, 0xde, 0x25, 0xc8, -0x36, 0xd2, 0x77, 0x13, 0x16, 0x93, 0x64, 0xc8, 0xbe, 0x69, 0x2c, 0xf6, 0x1d, 0xdf, 0x0f, 0x0a, -0xfe, 0x98, 0xbd, 0x35, 0x2d, 0x14, 0xcb, 0x95, 0x85, 0xa1, 0xd9, 0xad, 0x06, 0x86, 0x30, 0x45, -0x9e, 0x74, 0xb2, 0x62, 0x19, 0x53, 0xfd, 0x60, 0x75, 0xe2, 0x53, 0xb2, 0xfc, 0xaa, 0x33, 0x4e, -0xbf, 0xc5, 0x1a, 0x1d, 0x53, 0xe6, 0x58, 0x2c, 0x55, 0xdb, 0xd6, 0xe9, 0x7e, 0xe6, 0xd5, 0x37, -0x8b, 0x74, 0xc8, 0x76, 0xf0, 0xf7, 0x4f, 0x8a, 0xa5, 0xa2, 0x31, 0xa5, 0x11, 0x32, 0x12, 0xc4, -0xde, 0x5b, 0x15, 0x22, 0x4f, 0x3e, 0x18, 0x8f, 0xed, 0x7b, 0x49, 0x73, 0x64, 0xc8, 0x1b, 0xd3, -0x35, 0x13, 0xab, 0xad, 0x24, 0xf9, 0x9a, 0x13, 0x0d, 0x89, 0x6e, 0x90, 0x4e, 0xf7, 0x62, 0xa9, -0xca, 0xa7, 0x35, 0x42, 0x01, 0x54, 0xe1, 0xdf, 0x59, 0xb0, 0x50, 0x72, 0x83, 0xbb, 0xa6, 0x6b, -0x5a, 0x09, 0x34, 0xe2, 0xef, 0xd9, 0xd0, 0x1a, 0xb3, 0x62, 0x8c, 0x00, 0xf3, 0x6e, 0x1c, 0xb1, -0x17, 0x83, 0x03, 0x7f, 0xad, 0xd0, 0x91, 0xef, 0x87, 0xbc, 0x8f, 0x56, 0x6f, 0x54, 0x6a, 0x13, -0xe5, 0x49, 0x96, 0x60, 0x0e, 0x85, 0x88, 0x69, 0x21, 0x57, 0x9a, 0x58, 0x48, 0x75, 0xf2, 0xb7, -0x22, 0x51, 0xdd, 0xed, 0xe9, 0x08, 0x51, 0xbc, 0x25, 0xc7, 0xea, 0xb9, 0x57, 0x26, 0x6c, 0x0b, -0x2a, 0xc4, 0x65, 0x30, 0x99, 0xb5, 0x08, 0x59, 0xbd, 0x52, 0xea, 0x76, 0xf6, 0xcb, 0xec, 0x1d, -0xef, 0xb5, 0xd1, 0x99, 0xff, 0xff, 0x3f, 0xa5, 0x48, 0xf5, 0xbb, 0x38, 0x5b, 0xae, 0x90, 0x6d, -0x15, 0x97, 0x69, 0x34, 0x2a, 0xed, 0xd4, 0x02, 0xa4, 0x31, 0xa5, 0x63, 0x8f, 0xab, 0xb1, 0xc9, -0x63, 0xc7, 0x80, 0x48, 0xf8, 0x87, 0x93, 0xa3, 0x95, 0x84, 0x66, 0x38, 0xb5, 0x02, 0xac, 0x81, -0x6d, 0x60, 0x26, 0x7c, 0x6f, 0x7c, 0xa6, 0x1e, 0x9c, 0x2c, 0xd5, 0x88, 0x0f, 0xd3, 0x7d, 0x6a, -0x0d, 0xf5, 0xb5, 0x9e, 0x9e, 0xb5, 0xaa, 0x4f, 0x86, 0xea, 0x8d, 0x51, 0x89, 0xf0, 0x7d, 0x62, -0x93, 0xd3, 0xb4, 0x74, 0xb6, 0xc3, 0x64, 0xc5, 0xea, 0xac, 0x14, 0x17, 0x33, 0x7d, 0xa6, 0x38, -0xe1, 0xbf, 0x8d, 0xb6, 0x27, 0x4f, 0xb6, 0x8f, 0xfb, 0xda, 0xed, 0x73, 0xad, 0x14, 0x13, 0xb3, -0x83, 0xbe, 0x8d, 0xe5, 0x97, 0xc3, 0xa8, 0xf6, 0x75, 0x8c, 0xfe, 0x3e, 0xd1, 0x0e, 0xbe, 0x02, -0x6c, 0x07, 0xc1, 0x69, 0x2b, 0x65, 0x2d, 0xc1, 0x50, 0x8d, 0xea, 0x94, 0x85, 0x3b, 0xfb, 0xd4, -0x48, 0x78, 0x1b, 0xe4, 0x44, 0x17, 0x5e, 0xdd, 0x12, 0xac, 0x1d, 0xe6, 0x88, 0x7e, 0xb1, 0x7b, -0x54, 0x7d, 0x33, 0x30, 0x8f, 0x9c, 0xbf, 0x51, 0xdf, 0x0a, 0xf1, 0x2b, 0xac, 0xbe, 0x8f, 0xf3, -0xfa, 0x72, 0x4c, 0x22, 0xaa, 0x6f, 0xb2, 0xb6, 0xb9, 0x7a, 0x69, 0x73, 0xd9, 0x2f, 0x1b, 0xb3, -0xb0, 0xb3, 0xe9, 0xda, 0xec, 0xa3, 0x6c, 0xe8, 0xf1, 0x0b, 0x2e, 0x63, 0x9a, 0x4c, 0x5a, 0x22, -0xfa, 0x57, 0xe2, 0xb5, 0xea, 0xc8, 0x74, 0x70, 0xe6, 0x38, 0x2b, 0xbc, 0x61, 0x70, 0xc8, 0x55, -0xc9, 0x9c, 0x9a, 0x08, 0xdb, 0x49, 0xa9, 0x16, 0x9b, 0x40, 0xe6, 0xb6, 0x31, 0xa4, 0x77, 0xe3, -0xb5, 0x24, 0x6d, 0x1b, 0x66, 0x89, 0x37, 0x31, 0x8f, 0x33, 0x19, 0x51, 0x67, 0x9d, 0x85, 0x3d, -0x09, 0xaa, 0xa4, 0xd8, 0x4c, 0xf1, 0xfb, 0x34, 0xed, 0x24, 0xc3, 0x71, 0x76, 0x28, 0x56, 0xb2, -0xbd, 0x91, 0x96, 0x63, 0xfe, 0x0f, 0x2b, 0x26, 0x7a, 0x0e, 0xf4, 0x31, 0x9c, 0x39, 0xa4, 0x3c, -0x74, 0x32, 0x44, 0xd2, 0x4a, 0xf5, 0x7b, 0x09, 0x9b, 0xed, 0x4e, 0xa8, 0xdd, 0x78, 0xdd, 0xfa, -0xba, 0xae, 0x59, 0xdf, 0x24, 0x9d, 0x62, 0xb8, 0x64, 0xbc, 0x0e, 0xa2, 0xbb, 0x2a, 0x59, 0x77, -0x7b, 0xa2, 0xee, 0x58, 0x17, 0xf2, 0x7c, 0xb2, 0xf4, 0xdb, 0x87, 0xf0, 0x6f, 0x1d, 0xd3, 0x85, -0xcd, 0x62, 0x92, 0xf4, 0x89, 0xec, 0x54, 0xc2, 0xca, 0xfc, 0x83, 0xdc, 0x25, 0x66, 0xb3, 0x7a, -0x4c, 0x45, 0x2a, 0xb3, 0xa1, 0xae, 0x40, 0xaf, 0x5d, 0x7b, 0x9d, 0x83, 0xd7, 0x2e, 0x5a, 0xc9, -0xee, 0x06, 0xf2, 0xa6, 0xa2, 0x84, 0xd9, 0xb3, 0x31, 0x5a, 0xcf, 0xee, 0x22, 0x86, 0x89, 0x4a, -0x1d, 0x7b, 0x96, 0xeb, 0xac, 0xec, 0x7e, 0x6b, 0x7d, 0x48, 0x01, 0x58, 0xcf, 0x9e, 0xa7, 0x31, -0xff, 0x9d, 0xf4, 0xe4, 0x54, 0x01, 0x3e, 0xc2, 0xf0, 0x3d, 0x62, 0xa9, 0xb4, 0x02, 0x8c, 0x31, -0x51, 0x31, 0x8b, 0x41, 0xf6, 0x94, 0x9a, 0xa7, 0x7d, 0x0a, 0x79, 0x60, 0xc5, 0xb0, 0x00, 0xf6, -0x18, 0x3e, 0xbf, 0xc4, 0x9e, 0x29, 0x74, 0xaf, 0xb8, 0x5c, 0xaf, 0x99, 0xa8, 0xd7, 0x8c, 0xe8, -0xb5, 0xed, 0x27, 0x07, 0x54, 0x13, 0xc5, 0x51, 0x72, 0x22, 0x71, 0xb1, 0x44, 0xb2, 0xab, 0xc8, -0x13, 0x3c, 0x7c, 0xe0, 0x27, 0x07, 0x08, 0xa1, 0x8b, 0xc2, 0x63, 0x9a, 0x18, 0x57, 0x56, 0x89, -0x79, 0x60, 0x89, 0xe6, 0x12, 0x26, 0x87, 0x17, 0x98, 0xc5, 0x62, 0xa0, 0xaa, 0x8f, 0xa5, 0xec, -0x82, 0x5b, 0x58, 0x7b, 0x2e, 0x66, 0xbf, 0xec, 0xca, 0x02, 0xcf, 0x0a, 0xa6, 0xe1, 0xae, 0xe2, -0x55, 0x45, 0xd2, 0xc0, 0xfc, 0xa7, 0x61, 0x21, 0xc9, 0x05, 0xc9, 0x37, 0xbd, 0xfe, 0xae, 0x0a, -0xaf, 0x85, 0x14, 0x22, 0xe5, 0x41, 0x63, 0x84, 0xf9, 0x5a, 0xa1, 0x5f, 0x35, 0x71, 0x4f, 0x5c, -0x71, 0x90, 0x7c, 0xf1, 0x0b, 0xf5, 0x72, 0x31, 0xae, 0x98, 0xe6, 0x76, 0xe9, 0xd8, 0x83, 0x1d, -0x81, 0xe3, 0x0f, 0x62, 0xbf, 0x8b, 0x9e, 0x66, 0xde, 0xef, 0x1e, 0xea, 0x77, 0x18, 0x59, 0x49, -0x32, 0xde, 0x51, 0x7d, 0x3e, 0xba, 0x6e, 0xd4, 0xef, 0xbe, 0x4f, 0xee, 0x77, 0x1a, 0x27, 0x48, -0xc3, 0x86, 0x26, 0xeb, 0xb3, 0x97, 0x7d, 0xe5, 0x82, 0xc2, 0x51, 0xef, 0x72, 0x47, 0xbd, 0x2b, -0xe2, 0xe3, 0x85, 0x50, 0x26, 0x92, 0xa3, 0xcc, 0xa5, 0xe7, 0x56, 0xcc, 0x67, 0x0c, 0xe5, 0x45, -0xda, 0xb5, 0x7c, 0xb6, 0x92, 0x6d, 0xab, 0x4a, 0xbe, 0xb2, 0x07, 0x39, 0x0e, 0x25, 0xa1, 0x4e, -0x24, 0xf4, 0x52, 0xaf, 0x1a, 0xa7, 0xfe, 0xbf, 0x67, 0x5e, 0xd2, 0x3b, 0xb2, 0x89, 0xe5, 0x33, -0x30, 0x31, 0xff, 0x18, 0xfa, 0xa5, 0x45, 0xae, 0x72, 0x61, 0x0c, 0xc5, 0x4e, 0x88, 0x86, 0x98, -0x7e, 0x12, 0x6d, 0x43, 0x9c, 0x9f, 0x98, 0x35, 0xd8, 0x76, 0xa7, 0x12, 0xb3, 0x85, 0xb4, 0xfe, -0xe8, 0x64, 0xa1, 0xe2, 0x03, 0x28, 0x4a, 0xd7, 0x35, 0x44, 0x3a, 0xa5, 0xaa, 0xd9, 0x8c, 0x57, -0xe8, 0x1c, 0xcb, 0x2b, 0xe8, 0xe8, 0xc0, 0x18, 0x23, 0xea, 0x10, 0x2b, 0x49, 0x9e, 0xc9, 0xe6, -0x35, 0xae, 0x6f, 0x4b, 0x9e, 0xc0, 0x1e, 0x5e, 0x18, 0x5e, 0x0e, 0x59, 0x6a, 0x80, 0xec, 0xf3, -0x89, 0x9a, 0x11, 0xbe, 0x9e, 0x6a, 0x4f, 0xd7, 0x37, 0x8c, 0x45, 0x95, 0x82, 0x5b, 0x97, 0x83, -0x05, 0x2c, 0x37, 0x2e, 0x87, 0xf1, 0x30, 0xfe, 0xd6, 0x79, 0x60, 0xfb, 0x3c, 0x71, 0x69, 0x59, -0xc4, 0x6f, 0xa4, 0x30, 0x7e, 0x47, 0x7d, 0x03, 0x09, 0x2d, 0x45, 0x9c, 0xa5, 0x55, 0xac, 0x5c, -0xbd, 0xe9, 0xe5, 0x92, 0x01, 0x57, 0x7a, 0x35, 0xba, 0xaa, 0xe2, 0xbd, 0xd1, 0xf5, 0x90, 0x97, -0x83, 0xbb, 0x03, 0xc8, 0x6e, 0x60, 0xc9, 0x13, 0x8a, 0xdf, 0xeb, 0x26, 0xd4, 0x5e, 0x7e, 0x06, -0xa2, 0xa6, 0xa1, 0x2c, 0x6a, 0xb4, 0xc2, 0xd8, 0x70, 0x35, 0xb4, 0x79, 0x49, 0x47, 0x1d, 0x57, -0xa9, 0xd1, 0x16, 0xf8, 0xb5, 0x1b, 0x15, 0x83, 0x0b, 0xe4, 0x52, 0x67, 0x96, 0xba, 0x37, 0xbd, -0x54, 0x69, 0x08, 0x2b, 0x75, 0x22, 0xf9, 0x52, 0x5f, 0xc9, 0x4f, 0x1d, 0x88, 0xee, 0xcf, 0xc9, -0x27, 0x7c, 0x56, 0x0f, 0xb8, 0x04, 0xb7, 0x81, 0xa3, 0x48, 0xf8, 0x16, 0xba, 0xfd, 0xdf, 0x3e, -0x84, 0x5c, 0x44, 0x39, 0x9d, 0x21, 0x79, 0x21, 0xf0, 0x43, 0xd1, 0x2a, 0x4d, 0x3c, 0xb2, 0xe6, -0xf0, 0xea, 0x04, 0x86, 0xe3, 0x9c, 0xb6, 0xc4, 0xaa, 0xfc, 0xd9, 0xa5, 0xd8, 0x3e, 0xb9, 0xb7, -0x96, 0x83, 0x7c, 0x6b, 0x29, 0xb8, 0x6e, 0x2d, 0x01, 0xcf, 0xad, 0x7e, 0x1c, 0xff, 0x89, 0xdc, -0xc8, 0xbb, 0xa0, 0xa3, 0xf2, 0xcd, 0xb6, 0xce, 0xff, 0xa5, 0xbc, 0x6c, 0x7f, 0x6f, 0x5e, 0x59, -0x5e, 0x18, 0x57, 0x82, 0xad, 0x39, 0xb9, 0x52, 0x31, 0xef, 0xb0, 0x47, 0x2d, 0x25, 0x67, 0x80, -0x6c, 0x20, 0x0c, 0xea, 0x85, 0x84, 0xbe, 0xf4, 0x67, 0x3b, 0x21, 0x1b, 0x53, 0x23, 0x7b, 0x3c, -0x57, 0x4c, 0xc4, 0x94, 0xe4, 0x54, 0x4a, 0xba, 0x26, 0xcc, 0x79, 0xc6, 0x1d, 0xb4, 0x80, 0x87, -0x4a, 0xe0, 0xc4, 0x12, 0x30, 0xec, 0xdd, 0x7a, 0xec, 0x9d, 0x46, 0xbc, 0xaa, 0xaa, 0xb6, 0x20, -0xc5, 0xd8, 0xce, 0x28, 0x06, 0xa1, 0xf0, 0x62, 0x1d, 0xc8, 0x97, 0x55, 0xdb, 0xf8, 0xd3, 0x4f, -0xb1, 0xb2, 0x6f, 0x61, 0x98, 0xba, 0x48, 0x0a, 0x97, 0x34, 0x06, 0x9e, 0x87, 0x1c, 0xbc, 0x1c, -0x9f, 0xef, 0xf4, 0x03, 0xe4, 0xd2, 0xca, 0x30, 0x9d, 0x50, 0xb2, 0xed, 0x38, 0x16, 0xe4, 0x34, -0x4b, 0x8a, 0x22, 0xec, 0xed, 0x39, 0xa4, 0xf9, 0x20, 0x41, 0x4d, 0x97, 0xa3, 0x18, 0x6e, 0xd8, -0xd9, 0xd5, 0x90, 0xdf, 0x8f, 0xdf, 0xaa, 0x2e, 0xb2, 0x85, 0x52, 0xa6, 0x58, 0xfd, 0x03, 0xa0, -0x92, 0xe5, 0x4d, 0xd6, 0xad, 0x9d, 0x00, 0x03, 0xc0, 0x3c, 0x1c, 0xf0, 0x67, 0x01, 0xac, 0xbe, -0x1c, 0xf5, 0x0d, 0xe2, 0x1d, 0xf8, 0x39, 0x62, 0x02, 0xcb, 0xa2, 0x8d, 0x61, 0x56, 0x7c, 0xa1, -0x5e, 0xc9, 0xc5, 0x32, 0xab, 0x78, 0x2d, 0xac, 0xda, 0xcc, 0xca, 0x5d, 0xc5, 0x11, 0x91, 0x8f, -0xc6, 0xc9, 0x8e, 0x81, 0x9d, 0xfe, 0xbc, 0x41, 0x6b, 0x31, 0x69, 0xf7, 0x7a, 0xc9, 0x0f, 0xa2, -0x39, 0x36, 0xa5, 0x1c, 0x38, 0x5a, 0x1f, 0xb5, 0xe4, 0xa7, 0x77, 0xc6, 0xc0, 0xee, 0xcb, 0x81, -0x04, 0xba, 0x80, 0xb3, 0x25, 0xe5, 0x33, 0x88, 0xb4, 0xa3, 0x89, 0x4e, 0x32, 0x3a, 0xaa, 0xe3, -0xcc, 0xca, 0xc0, 0x6c, 0x4a, 0x71, 0x8e, 0xe1, 0x7c, 0x79, 0x0f, 0x02, 0xa5, 0x67, 0x21, 0x90, -0x4e, 0xfb, 0x19, 0x32, 0xb3, 0x83, 0x79, 0x40, 0xe2, 0xf6, 0x3c, 0x56, 0x7c, 0x4e, 0x20, 0x6a, -0xf8, 0x18, 0x82, 0x78, 0x95, 0x8c, 0xa5, 0xfd, 0xc4, 0x78, 0x66, 0x16, 0x6f, 0x61, 0x9b, 0x10, -0x70, 0xc3, 0x9c, 0xc4, 0x28, 0x22, 0xfb, 0x55, 0xe4, 0x71, 0xab, 0xa0, 0x00, 0xff, 0x2e, 0x84, -0x59, 0x15, 0x1c, 0x17, 0x9a, 0xbe, 0xc2, 0x3e, 0x61, 0xf8, 0xd5, 0xee, 0x69, 0x01, 0xc8, 0xc7, -0xb7, 0xad, 0xe4, 0x33, 0x17, 0x53, 0xc6, 0x70, 0xa2, 0x18, 0x73, 0xff, 0x6c, 0xd6, 0xb0, 0xd4, -0x8d, 0xb1, 0x09, 0xfd, 0xdb, 0x21, 0xd0, 0x40, 0x76, 0x49, 0x8c, 0x4b, 0xe6, 0x18, 0x05, 0xcc, -0x62, 0x1f, 0xdb, 0xa5, 0xd5, 0x2e, 0x76, 0x65, 0x21, 0x2f, 0x84, 0xbc, 0xbe, 0x1d, 0xb9, 0x7c, -0xf2, 0x33, 0x49, 0x72, 0xb8, 0xc2, 0xa9, 0x9d, 0xc8, 0x11, 0x8c, 0x40, 0x91, 0x35, 0x4e, 0x92, -0xf2, 0x68, 0x76, 0x9d, 0xd5, 0x14, 0xff, 0x59, 0xff, 0xb3, 0x80, 0x1c, 0x42, 0x8e, 0x62, 0xb6, -0xc6, 0x49, 0x6a, 0xae, 0xda, 0x62, 0x37, 0x8a, 0x71, 0xb2, 0x32, 0x80, 0x1c, 0xbc, 0x2a, 0xf5, -0x33, 0x2f, 0xa4, 0xbc, 0x98, 0xb2, 0xd5, 0x83, 0xfd, 0x95, 0x38, 0x21, 0xfb, 0xe2, 0x87, 0x1f, -0x1e, 0x62, 0xe8, 0x34, 0x5e, 0x7b, 0xa5, 0xb3, 0xc5, 0x5e, 0xed, 0xed, 0xa4, 0x55, 0xda, 0x5e, -0x54, 0xf2, 0xa1, 0x3d, 0x54, 0x72, 0x46, 0x7b, 0xc5, 0x1b, 0xb2, 0x17, 0x07, 0x9e, 0xb7, 0xfb, -0xf1, 0x0a, 0xe2, 0x98, 0x61, 0x35, 0xa7, 0xf3, 0x74, 0x3b, 0xd4, 0x2d, 0x10, 0xe7, 0x95, 0x7e, -0x08, 0xd9, 0xad, 0xc0, 0x3d, 0xed, 0x6a, 0x8d, 0xd8, 0x6a, 0x7e, 0x6b, 0xcb, 0x9d, 0xdb, 0x0d, -0x0e, 0xb5, 0x28, 0xfc, 0x34, 0xee, 0xa8, 0x0b, 0xa4, 0x79, 0x65, 0x1f, 0xda, 0x8b, 0xd8, 0xdb, -0x27, 0x69, 0xad, 0xa5, 0x95, 0x28, 0x66, 0xe8, 0xef, 0x53, 0x73, 0xec, 0x5e, 0x7b, 0xb6, 0x15, -0x20, 0x33, 0x9a, 0x85, 0x7f, 0x6f, 0x48, 0x20, 0x0c, 0x2a, 0xa6, 0x84, 0xdf, 0xcc, 0x4a, 0xeb, -0x17, 0x3f, 0xb4, 0x17, 0x26, 0x4f, 0x95, 0x1d, 0x48, 0x9d, 0x78, 0xa9, 0x07, 0xb9, 0x37, 0x73, -0x5c, 0x77, 0x6d, 0x38, 0xca, 0xa6, 0xcc, 0x1d, 0xd2, 0x5c, 0xb8, 0x1b, 0xd5, 0xc3, 0xec, 0x9b, -0x90, 0xf2, 0xd2, 0x5e, 0x33, 0x27, 0x71, 0x5e, 0x8c, 0xbb, 0x71, 0x2f, 0x38, 0x70, 0x14, 0xe5, -0x94, 0x0d, 0x69, 0x3b, 0x15, 0x33, 0xf3, 0x6b, 0x81, 0x2b, 0x2b, 0x96, 0x66, 0x72, 0x6d, 0xd2, -0xae, 0x6c, 0xe4, 0x12, 0x59, 0xa5, 0xf3, 0x7d, 0x32, 0x59, 0x90, 0x50, 0x39, 0xaf, 0xc5, 0x79, -0xf3, 0xf3, 0x4d, 0x1f, 0x59, 0xbf, 0x30, 0xf4, 0x96, 0x74, 0xdc, 0x1a, 0x6f, 0x00, 0x1c, 0xde, -0x52, 0xb0, 0x57, 0xbe, 0xe9, 0xb7, 0x2a, 0xa0, 0x85, 0xc8, 0x2a, 0xc2, 0xda, 0x47, 0xad, 0xa9, -0x12, 0xdf, 0x64, 0x64, 0xad, 0xff, 0x14, 0x2c, 0x24, 0x9c, 0x2c, 0x26, 0x9b, 0x60, 0x96, 0x25, -0x44, 0x23, 0xa4, 0x65, 0x30, 0x45, 0xb4, 0xeb, 0x9c, 0x8d, 0xc4, 0xf9, 0x9a, 0xa8, 0xcc, 0xf9, -0x25, 0xd5, 0x47, 0xf6, 0x3b, 0x8e, 0x87, 0x29, 0x85, 0xdb, 0x38, 0x42, 0x39, 0xe3, 0x53, 0x44, -0x42, 0x43, 0x65, 0xe9, 0x8a, 0x33, 0xc0, 0x34, 0xf8, 0x14, 0x58, 0x6a, 0xe2, 0x62, 0x3c, 0xb1, -0x6b, 0xd5, 0xd1, 0xca, 0x75, 0x8d, 0x0b, 0x77, 0x23, 0x4c, 0x29, 0xc3, 0x79, 0x41, 0xbb, 0x0f, -0x2f, 0xa1, 0xa4, 0x0d, 0xdd, 0xb6, 0x4d, 0xf1, 0xeb, 0x39, 0x1a, 0xa2, 0x16, 0x3d, 0xa7, 0x7c, -0xc5, 0xc1, 0xca, 0x19, 0x1e, 0xc5, 0x3b, 0xe5, 0xe8, 0x78, 0x92, 0xf6, 0xc9, 0x84, 0x76, 0xbe, -0x05, 0xdb, 0x8f, 0xb7, 0xb0, 0x15, 0xe9, 0x8b, 0x8c, 0xf5, 0x5f, 0xc6, 0x57, 0x51, 0xc2, 0xbb, -0x54, 0x9f, 0x49, 0x62, 0x40, 0x9c, 0xa7, 0x13, 0x54, 0xb7, 0x17, 0xfc, 0xd8, 0xf2, 0xc9, 0x71, -0x73, 0x9d, 0x7d, 0x6e, 0x2b, 0xe3, 0x68, 0x97, 0x81, 0xd1, 0x35, 0xbe, 0x7a, 0xf5, 0xee, 0x5e, -0xd5, 0x77, 0x53, 0x27, 0xdc, 0x29, 0x8c, 0xdc, 0xd4, 0xa9, 0x6d, 0x17, 0xb4, 0xc4, 0xb7, 0xe2, -0x3c, 0x29, 0xcc, 0x46, 0x1a, 0x59, 0x8e, 0xd5, 0x87, 0xe3, 0x0b, 0x7f, 0x15, 0xea, 0x09, 0xfd, -0x2a, 0xd8, 0x83, 0xfc, 0x67, 0x36, 0x52, 0xed, 0x29, 0x81, 0xa7, 0xc0, 0xc0, 0x3c, 0xae, 0x21, -0x55, 0x28, 0x3d, 0x2b, 0xbc, 0x88, 0xfc, 0x46, 0x21, 0x61, 0x06, 0xf8, 0x77, 0xe0, 0xaf, 0x57, -0x48, 0x6b, 0x4d, 0x31, 0xe0, 0x9a, 0x8f, 0x31, 0xdd, 0x84, 0x49, 0xa1, 0x82, 0x2f, 0xdf, 0x85, -0x33, 0xdf, 0x85, 0xd4, 0x24, 0x1f, 0x0c, 0xde, 0x71, 0x38, 0x3f, 0x43, 0xc8, 0xcb, 0xe0, 0x0c, -0xc5, 0x5e, 0xf1, 0x49, 0x2e, 0xe2, 0xc2, 0x36, 0x3d, 0x0f, 0x85, 0x9c, 0xc6, 0x32, 0x3f, 0x5c, -0x5e, 0x28, 0xf2, 0x8e, 0x63, 0xcf, 0xdd, 0x69, 0x61, 0x7e, 0xef, 0x04, 0xb2, 0x7f, 0x0d, 0xb8, -0x85, 0x17, 0x6f, 0x5a, 0x28, 0xec, 0xa3, 0xd5, 0x61, 0xf7, 0x43, 0x51, 0x1f, 0x72, 0xe7, 0x53, -0x30, 0x75, 0x43, 0x92, 0xb7, 0xdb, 0x92, 0xe0, 0xed, 0x36, 0x3d, 0x8d, 0xf4, 0x51, 0xa7, 0xdc, -0x7d, 0xdd, 0x58, 0xd7, 0x4c, 0xe1, 0x88, 0x62, 0xc6, 0xef, 0x8f, 0xc4, 0xb0, 0x7e, 0x81, 0x1f, -0xd2, 0x08, 0x25, 0xcb, 0x60, 0xef, 0x04, 0xa9, 0xbc, 0xea, 0x61, 0x0c, 0x7f, 0xe5, 0xfa, 0xed, -0x21, 0x63, 0xd9, 0x79, 0x8b, 0xe8, 0x7e, 0xc1, 0x0c, 0xed, 0xc2, 0xee, 0x87, 0x54, 0xd0, 0xb2, -0xf9, 0x8c, 0xc0, 0x51, 0x5e, 0xae, 0xfb, 0x9e, 0xb3, 0x54, 0xed, 0xf9, 0x78, 0x84, 0xf3, 0x4f, -0xed, 0x02, 0x47, 0xc1, 0x4d, 0x52, 0x70, 0x36, 0x47, 0xc8, 0xda, 0x61, 0xee, 0xd0, 0x15, 0x49, -0x9f, 0x23, 0x9b, 0xd9, 0x9e, 0x38, 0x7d, 0x8e, 0x8c, 0xd0, 0x1c, 0x61, 0x7b, 0xf7, 0x3d, 0x23, -0x53, 0xb8, 0x2d, 0x16, 0x97, 0x2b, 0x15, 0x15, 0x24, 0xec, 0x57, 0x72, 0xbc, 0x70, 0xeb, 0x27, -0xc8, 0x34, 0x9a, 0x62, 0xb6, 0xd6, 0x51, 0x18, 0xff, 0x24, 0x57, 0xca, 0x5e, 0x3d, 0x9d, 0xbc, -0x27, 0x1b, 0xa6, 0x07, 0xc0, 0x34, 0xbd, 0x14, 0xe8, 0x1c, 0x79, 0x0a, 0xc3, 0xa0, 0x26, 0x2b, -0x0b, 0x17, 0x5b, 0xbd, 0x77, 0xe0, 0xf8, 0xbb, 0x91, 0xad, 0xd3, 0x38, 0x7e, 0xbd, 0x10, 0x6a, -0x84, 0x00, 0x3d, 0xdf, 0xb6, 0x8d, 0x49, 0xba, 0xb2, 0x47, 0xcd, 0xfe, 0x3d, 0x1f, 0xe7, 0x50, -0x2d, 0x53, 0xfb, 0xff, 0xd0, 0x3b, 0xc5, 0x84, 0x85, 0xc0, 0x90, 0x7f, 0xb0, 0x9c, 0x3e, 0xb1, -0x98, 0x46, 0xbd, 0x18, 0xf0, 0x34, 0xb1, 0x91, 0x7b, 0x8a, 0x9d, 0xbd, 0xaf, 0x17, 0xfd, 0xcc, -0x4e, 0x8e, 0xde, 0x65, 0xa4, 0xbf, 0x53, 0x57, 0x2a, 0x2b, 0x08, 0x37, 0xfe, 0xe7, 0x07, 0x91, -0x8f, 0xe5, 0x2b, 0xdb, 0x98, 0x15, 0xf9, 0x67, 0x03, 0x4b, 0xde, 0x90, 0x69, 0x55, 0x32, 0x84, -0x9a, 0x35, 0x8d, 0x7b, 0x81, 0xd2, 0xc7, 0x48, 0xca, 0x87, 0x5b, 0x86, 0x77, 0xa2, 0x58, 0x46, -0xb3, 0x88, 0x21, 0x6b, 0xef, 0x19, 0x39, 0x24, 0x03, 0xa7, 0x40, 0x52, 0x12, 0x87, 0x46, 0xe3, -0x1e, 0x26, 0x75, 0xbc, 0xdb, 0xce, 0x62, 0xf2, 0x21, 0xe6, 0x26, 0x0c, 0x01, 0x37, 0xc8, 0x2e, -0x37, 0x58, 0x9d, 0x6e, 0x70, 0xe8, 0x9c, 0x01, 0x5b, 0x63, 0x30, 0xdd, 0x1e, 0x5e, 0x02, 0xb7, -0x9f, 0xb4, 0xda, 0x74, 0xee, 0xc0, 0x85, 0x23, 0xac, 0x3b, 0x31, 0xbe, 0x9c, 0xe0, 0xc1, 0x5c, -0xe4, 0x15, 0x60, 0xad, 0xdd, 0x80, 0x34, 0xa9, 0x98, 0x56, 0x54, 0xf2, 0x91, 0xee, 0x24, 0x94, -0x04, 0x7d, 0x24, 0xb5, 0x5e, 0x3d, 0x23, 0x17, 0x51, 0xd9, 0xae, 0x45, 0xff, 0x70, 0x86, 0x0d, -0x8d, 0xd8, 0xc7, 0x8c, 0xc1, 0x0c, 0x86, 0xd7, 0xda, 0xc8, 0xf6, 0x7c, 0x06, 0xd2, 0x43, 0x12, -0x46, 0xde, 0xea, 0x8d, 0xbb, 0x05, 0xad, 0x00, 0xde, 0xaa, 0x38, 0xd9, 0xdb, 0xed, 0xb7, 0x96, -0x6c, 0xbf, 0x13, 0xf7, 0x69, 0x6f, 0xb3, 0x77, 0x07, 0xdf, 0x0a, 0x11, 0x9e, 0x02, 0x69, 0x7a, -0x08, 0xbf, 0x26, 0xad, 0xa6, 0xee, 0x38, 0x0b, 0x3f, 0x84, 0xdf, 0x74, 0xe1, 0x57, 0xff, 0xa5, -0xfb, 0x2d, 0xfb, 0xca, 0xc9, 0x5a, 0x19, 0xc8, 0xa7, 0xc8, 0xea, 0x92, 0x70, 0x77, 0x54, 0x65, -0x71, 0x5e, 0x4a, 0xfb, 0xf6, 0x3f, 0xd3, 0xbe, 0x3d, 0xa0, 0x7f, 0xfb, 0x32, 0xff, 0x96, 0x46, -0x0f, 0x7d, 0x4f, 0x71, 0xe3, 0x25, 0x62, 0x69, 0x28, 0x66, 0x66, 0xfa, 0x51, 0xc2, 0x3e, 0xd6, -0xfa, 0x09, 0xcf, 0x93, 0xd9, 0x63, 0x7b, 0x60, 0xe4, 0x42, 0x1b, 0xe9, 0x69, 0x08, 0x2c, 0xfd, -0x63, 0x6f, 0x31, 0x9d, 0x2b, 0xf6, 0xdd, 0x6f, 0x59, 0x4a, 0x5d, 0xed, 0x90, 0xed, 0x16, 0x8e, -0xbf, 0xf5, 0xe0, 0xda, 0xf8, 0x5a, 0xb7, 0xf0, 0x9a, 0x98, 0xc1, 0x3c, 0xb9, 0xd5, 0x9e, 0xfc, -0x2a, 0xe9, 0x08, 0xaf, 0x25, 0x84, 0x22, 0x37, 0x7d, 0x7d, 0xad, 0x99, 0x77, 0x69, 0x35, 0x9f, -0x79, 0xba, 0xdc, 0x05, 0x47, 0x25, 0xd6, 0x09, 0x46, 0x76, 0x2b, 0x83, 0xd7, 0x5b, 0x97, 0x71, -0x47, 0x83, 0x3c, 0x00, 0xc3, 0xc3, 0xe0, 0xa1, 0xa7, 0x92, 0xba, 0xe4, 0xd7, 0x5e, 0x0d, 0x4d, -0xfa, 0x6a, 0xb8, 0xe3, 0x6f, 0xaf, 0x86, 0x7c, 0xa6, 0x27, 0x57, 0xc3, 0xab, 0x67, 0x3a, 0x5b, -0x0d, 0xf5, 0x7a, 0x34, 0x26, 0xea, 0x41, 0x71, 0xbc, 0x84, 0xee, 0xbb, 0x47, 0xab, 0xe2, 0x16, -0x4e, 0x95, 0x1c, 0x45, 0x82, 0xe1, 0x53, 0x21, 0x0d, 0x9e, 0x8c, 0xeb, 0x58, 0x36, 0x72, 0xbf, -0x7c, 0x54, 0x11, 0xad, 0xe6, 0x16, 0x4f, 0xf5, 0xdc, 0x26, 0x8e, 0xd6, 0x77, 0x8e, 0x30, 0xc8, -0xec, 0x05, 0xf9, 0xea, 0x23, 0xea, 0xab, 0xcf, 0x54, 0x55, 0x54, 0xae, 0x5a, 0x25, 0xd9, 0xca, -0x63, 0x14, 0xe3, 0x84, 0xb3, 0xce, 0xd7, 0x4c, 0x5c, 0x7b, 0x45, 0x8c, 0x41, 0x7e, 0xb0, 0x69, -0xad, 0x9a, 0x22, 0x4e, 0xd2, 0x25, 0x0c, 0x0b, 0x74, 0xa9, 0x42, 0x86, 0xbe, 0x7e, 0x92, 0x04, -0x61, 0xb2, 0x92, 0xaf, 0xaf, 0xa9, 0xd5, 0x09, 0x59, 0x81, 0x40, 0x9e, 0x48, 0x57, 0xcb, 0xd5, -0xb4, 0xda, 0xd8, 0x09, 0xb1, 0x69, 0x59, 0x72, 0x55, 0xc5, 0xf1, 0x89, 0xe5, 0xa7, 0x95, 0x0e, -0xe7, 0x9c, 0x14, 0x57, 0x08, 0xbb, 0x79, 0x19, 0x61, 0x2d, 0xd9, 0xed, 0xa1, 0x78, 0xeb, 0x0d, -0xa7, 0xb6, 0x11, 0x2f, 0xb6, 0x2f, 0x2e, 0x75, 0x31, 0xb9, 0x41, 0x35, 0x8b, 0x67, 0x4e, 0x8e, -0x47, 0x17, 0x8c, 0x4f, 0x8e, 0x47, 0x17, 0x58, 0xd8, 0x78, 0x74, 0xc1, 0x04, 0x3e, 0x1e, 0x29, -0x97, 0xb4, 0xf1, 0x18, 0x57, 0x56, 0x8a, 0xd5, 0xec, 0x1b, 0x73, 0x72, 0x8c, 0xd1, 0xf7, 0x6c, -0x8c, 0xb1, 0x70, 0xcb, 0x5b, 0x0f, 0x74, 0xc7, 0xbb, 0xf1, 0x7b, 0xa7, 0x10, 0x28, 0x0d, 0x95, -0xb2, 0xf7, 0x56, 0x9e, 0x57, 0x1b, 0x38, 0x5c, 0x30, 0x91, 0xcd, 0x0b, 0x9e, 0x97, 0x0d, 0xf3, -0xea, 0xc6, 0xbc, 0x6e, 0x90, 0x81, 0xf4, 0xdf, 0x59, 0x5e, 0x5f, 0x3d, 0xf9, 0x15, 0x56, 0x9a, -0xd2, 0x93, 0x8b, 0xf4, 0x5c, 0x03, 0x52, 0x49, 0xe9, 0x9f, 0xcc, 0x9a, 0xf8, 0x40, 0x12, 0xd1, -0xcf, 0x9a, 0xb4, 0x80, 0xcc, 0xa1, 0x9e, 0xc5, 0x7d, 0x47, 0x36, 0x8e, 0x22, 0x7f, 0xe0, 0x87, -0xa1, 0xe5, 0xc2, 0x8b, 0x5c, 0x1f, 0x2f, 0x90, 0x27, 0x8c, 0xe0, 0xa5, 0x31, 0x79, 0x23, 0xbe, -0x4f, 0x70, 0xbe, 0x62, 0x58, 0xef, 0x5d, 0x51, 0x5f, 0x79, 0xac, 0xa9, 0x1e, 0x4e, 0xac, 0x09, -0x0c, 0xb9, 0xc4, 0xce, 0x30, 0x5d, 0x90, 0xfb, 0x20, 0xdd, 0x4a, 0x5c, 0xd9, 0xec, 0x3c, 0xdd, -0xf4, 0x9d, 0x26, 0x7d, 0x4d, 0x92, 0x32, 0xe4, 0x9e, 0xec, 0xa4, 0xb1, 0xa3, 0xc0, 0x95, 0x5c, -0x9d, 0xef, 0x77, 0x39, 0xbc, 0x30, 0x9d, 0xe9, 0xdb, 0xa6, 0xda, 0x39, 0x2f, 0xad, 0x9d, 0xf3, -0xf4, 0x76, 0xce, 0x83, 0x09, 0x8c, 0x86, 0x0f, 0x7f, 0x92, 0x34, 0x1d, 0x4e, 0xc6, 0x4c, 0xe9, -0x94, 0x4e, 0xb7, 0x26, 0xdf, 0xe9, 0x7a, 0xf0, 0xe6, 0x00, 0xd3, 0x60, 0x9a, 0x22, 0x2e, 0x60, -0x6d, 0x6f, 0x4d, 0xeb, 0x93, 0x89, 0xc9, 0x79, 0x4f, 0xed, 0x4c, 0xf3, 0x1e, 0xdb, 0x99, 0xeb, -0xdb, 0xff, 0x7d, 0xfd, 0xc7, 0xb1, 0x67, 0x4e, 0x2e, 0xd6, 0x69, 0x44, 0xd0, 0x9b, 0x81, 0xf4, -0x82, 0xf7, 0x8d, 0x1f, 0x69, 0xb4, 0x85, 0xf9, 0x37, 0x65, 0x2b, 0x9c, 0xb8, 0x80, 0x8f, 0xbc, -0x6b, 0xad, 0x72, 0xb1, 0x8c, 0x3e, 0xc3, 0x4d, 0x7e, 0x18, 0x7f, 0xcd, 0xd5, 0x6e, 0x5f, 0x6a, -0xb5, 0xd3, 0x11, 0xce, 0x0c, 0x3a, 0xfa, 0x0c, 0xe7, 0xb9, 0xb0, 0x07, 0xd2, 0xe6, 0x62, 0x23, -0x9f, 0x81, 0xfa, 0x8e, 0x33, 0x37, 0xd1, 0xa3, 0x57, 0xad, 0xca, 0xed, 0xc4, 0xe7, 0x61, 0xe9, -0xc4, 0xa4, 0xa6, 0x6d, 0x5c, 0x0d, 0x31, 0xf9, 0xeb, 0x3c, 0xc8, 0x26, 0xc4, 0xbc, 0x91, 0xc5, -0xa2, 0xe1, 0x5d, 0x66, 0x49, 0x2d, 0xbc, 0x18, 0xba, 0xc7, 0x0c, 0x0c, 0xc7, 0x50, 0x97, 0xfd, -0x45, 0xb3, 0x38, 0x3d, 0x49, 0xa7, 0xac, 0x91, 0xee, 0x98, 0xb1, 0xbf, 0x5b, 0x3d, 0x18, 0x00, -0xdc, 0x21, 0x8e, 0xa1, 0x2c, 0xb4, 0x22, 0x0e, 0x0d, 0x25, 0xf4, 0x3c, 0x17, 0x1b, 0x53, 0x74, -0xee, 0xba, 0xe5, 0x6b, 0xd5, 0xcb, 0x97, 0x83, 0xe5, 0xb3, 0xe9, 0xe5, 0x0b, 0x26, 0xca, 0x37, -0x76, 0x1c, 0x7f, 0x8a, 0xf1, 0x4f, 0x9f, 0xe2, 0xfc, 0x53, 0xe3, 0xb5, 0x57, 0x36, 0x96, 0xfb, -0xf5, 0xca, 0x76, 0xd7, 0x68, 0x1d, 0x54, 0x1f, 0xed, 0x48, 0x73, 0x74, 0x2b, 0x50, 0x56, 0x86, -0x91, 0x75, 0x09, 0xa9, 0x27, 0x9c, 0x60, 0x9a, 0xb8, 0x13, 0x68, 0x05, 0x04, 0x6b, 0x62, 0x05, -0x8c, 0x81, 0x4f, 0xb0, 0x32, 0xa5, 0x90, 0xa8, 0x68, 0x65, 0x0a, 0x33, 0x51, 0xe6, 0x91, 0xd1, -0x0c, 0x51, 0x3b, 0xdf, 0x4d, 0x2d, 0xdc, 0x17, 0xea, 0x0e, 0xed, 0x0b, 0x76, 0xd3, 0xfa, 0xcf, -0xb4, 0x20, 0x27, 0x3a, 0x85, 0x9a, 0x9e, 0x97, 0xba, 0x54, 0x6b, 0xb8, 0x2b, 0x6a, 0xe6, 0x9a, -0xc3, 0x4b, 0x68, 0x75, 0x11, 0x12, 0x7c, 0x05, 0xdb, 0xf7, 0x0b, 0xb8, 0xef, 0xc7, 0x50, 0xab, -0x5b, 0xfb, 0x10, 0x6e, 0x5a, 0x62, 0xc4, 0x55, 0x45, 0xb9, 0xee, 0x0a, 0xec, 0xc7, 0xf0, 0x17, -0x5b, 0x6f, 0xd8, 0x17, 0x8f, 0x1a, 0xc3, 0xd0, 0x54, 0x80, 0xbf, 0x5e, 0x49, 0xfe, 0x92, 0xf1, -0xd7, 0x1b, 0xc9, 0x5f, 0xd9, 0x0e, 0xb7, 0xf0, 0x41, 0x8c, 0xb4, 0xd8, 0xed, 0x54, 0xaa, 0xa3, -0xdd, 0x8f, 0x74, 0x63, 0xc9, 0x4c, 0x7c, 0x75, 0xa4, 0x15, 0x8c, 0xa8, 0x07, 0xb3, 0xf4, 0x26, -0x74, 0xf7, 0x9c, 0xf0, 0x76, 0xb0, 0xa9, 0xa1, 0x64, 0x5f, 0xa5, 0xdb, 0x1e, 0x43, 0xd4, 0xa7, -0xf7, 0x14, 0x59, 0xf9, 0xbe, 0x74, 0x55, 0xeb, 0x1a, 0xbc, 0x7e, 0x90, 0x71, 0x7d, 0x64, 0xf8, -0x5c, 0xb4, 0x06, 0xea, 0xe8, 0xee, 0xba, 0x85, 0x76, 0x71, 0x31, 0x71, 0x2a, 0x32, 0xa1, 0x0b, -0x26, 0xb8, 0x37, 0x6b, 0x1f, 0x72, 0xe5, 0x29, 0x1e, 0x81, 0xd3, 0xd4, 0x84, 0xaf, 0xd3, 0x9b, -0x4a, 0xc0, 0xcc, 0x9f, 0xf1, 0x69, 0x3c, 0x79, 0x3a, 0xc5, 0xbb, 0x05, 0xe7, 0xce, 0x04, 0xc9, -0xc0, 0xbf, 0xf0, 0x19, 0xae, 0xf1, 0x8d, 0x35, 0xf9, 0xcd, 0x44, 0xfd, 0x1b, 0x1b, 0x7e, 0x73, -0xc3, 0x3c, 0xbe, 0xa3, 0x27, 0xde, 0xce, 0x4a, 0x52, 0x32, 0x17, 0xb8, 0x89, 0x9b, 0xcf, 0xe4, -0xfe, 0x99, 0x9c, 0xcc, 0xf7, 0x66, 0x86, 0x56, 0x57, 0xc8, 0x3d, 0x3d, 0x61, 0xb8, 0x91, 0xc2, -0xf1, 0x4b, 0xc1, 0x95, 0x41, 0x7e, 0x6a, 0x32, 0xe0, 0xf4, 0xfa, 0xd4, 0xd7, 0x11, 0x88, 0x1b, -0xf1, 0x9d, 0xe1, 0xa6, 0x52, 0xc8, 0x50, 0x6c, 0xc8, 0xcd, 0x8f, 0x80, 0x50, 0x7d, 0x16, 0x0c, -0x78, 0x65, 0xcc, 0xbb, 0xe8, 0xd2, 0x2a, 0x52, 0xb9, 0x4d, 0xe4, 0xbc, 0x9b, 0x8b, 0x72, 0x33, -0x72, 0x4e, 0x4e, 0x4e, 0xe6, 0x56, 0xc1, 0x73, 0xd3, 0x39, 0x3e, 0x4c, 0x31, 0xd3, 0x69, 0x20, -0x3d, 0x73, 0xcc, 0xed, 0xc1, 0xd4, 0xd7, 0x98, 0x5b, 0x06, 0xbe, 0x33, 0xdd, 0x14, 0x80, 0x71, -0x7a, 0x6e, 0x99, 0x98, 0x93, 0x09, 0xaf, 0x71, 0x95, 0x6f, 0x16, 0x17, 0xf3, 0xfe, 0xbb, 0x63, -0x8e, 0xc7, 0xcb, 0xec, 0x85, 0x8b, 0xe4, 0xe5, 0x30, 0x85, 0x30, 0xd5, 0xbc, 0x0b, 0xda, 0x02, -0x47, 0x1f, 0x24, 0x0d, 0xf9, 0xdb, 0xb6, 0x11, 0x26, 0x5f, 0x51, 0xee, 0x3c, 0x2e, 0xd7, 0x01, -0xa1, 0x5d, 0x4c, 0xac, 0xb1, 0x00, 0x7d, 0xba, 0x54, 0x9e, 0xa4, 0xf7, 0x77, 0x29, 0x39, 0xfa, -0x5a, 0x0e, 0xf0, 0x98, 0xbe, 0x9a, 0x83, 0x10, 0xc2, 0x2f, 0x0a, 0x48, 0xde, 0x2a, 0x8d, 0x92, -0xc7, 0xb8, 0x30, 0xc4, 0xdb, 0x04, 0x32, 0x78, 0x90, 0xc7, 0xb6, 0xe6, 0x7b, 0xc0, 0x81, 0xeb, -0x82, 0x0d, 0xf7, 0x55, 0xd8, 0x42, 0x92, 0x87, 0x71, 0xaf, 0xcf, 0x83, 0x8f, 0x8d, 0xf2, 0x47, -0xf4, 0x1d, 0x56, 0xa1, 0xd7, 0xc6, 0x9e, 0xef, 0x4f, 0x86, 0x65, 0x91, 0x57, 0xb4, 0xaa, 0x3d, -0x57, 0x4e, 0x72, 0x9f, 0xec, 0x70, 0x42, 0x8c, 0x10, 0x0a, 0xd3, 0xa4, 0x2f, 0xe1, 0xd8, 0x8a, -0x24, 0xe8, 0x28, 0xe1, 0xd1, 0x11, 0x7f, 0x23, 0x05, 0xab, 0x1e, 0xc6, 0x38, 0x8f, 0x8b, 0x1e, -0x30, 0xb2, 0x99, 0x65, 0x64, 0x16, 0x2c, 0xdb, 0x12, 0xf2, 0x08, 0xe2, 0x32, 0x14, 0x92, 0x35, -0x4f, 0x59, 0x05, 0x53, 0xf0, 0xcb, 0x17, 0xe3, 0x4c, 0xce, 0x4f, 0x72, 0xff, 0xb3, 0x37, 0xf9, -0x19, 0x27, 0xc7, 0xe2, 0x71, 0x8f, 0x08, 0x09, 0x9a, 0xe7, 0xc2, 0xf5, 0xf0, 0xb5, 0x01, 0xcc, -0xb7, 0x32, 0x75, 0x02, 0x78, 0xa5, 0x4f, 0x5f, 0xe7, 0xb2, 0x08, 0x29, 0x49, 0x5e, 0x8f, 0x74, -0x1b, 0x73, 0xfb, 0x14, 0x52, 0xee, 0x94, 0xf4, 0x4d, 0x4b, 0xa6, 0x87, 0xf4, 0x31, 0x25, 0x93, -0x63, 0x68, 0xde, 0x58, 0x8a, 0x08, 0x43, 0xa8, 0x32, 0x81, 0x5d, 0x8b, 0x2b, 0x46, 0x83, 0x1d, -0xee, 0x23, 0x2c, 0x2a, 0xa9, 0x3c, 0xb1, 0xcb, 0x76, 0x71, 0x49, 0x7f, 0x07, 0xed, 0xde, 0x12, -0xd8, 0x01, 0x1e, 0x92, 0x8e, 0xe9, 0x33, 0x04, 0xf7, 0xb2, 0x8d, 0x5e, 0xab, 0x97, 0xed, 0x70, -0xca, 0x86, 0xfe, 0xb2, 0x97, 0xf9, 0x9e, 0xe6, 0xc8, 0x52, 0x55, 0xb8, 0x9b, 0xc0, 0x9a, 0xa6, -0xc5, 0x10, 0x93, 0x6f, 0xcd, 0x92, 0xbf, 0x70, 0x06, 0x98, 0x14, 0x1f, 0x71, 0xc4, 0x58, 0xb6, -0xec, 0x18, 0x48, 0xf0, 0xee, 0x03, 0xa6, 0x2e, 0xaa, 0x69, 0xd8, 0x97, 0x63, 0x8c, 0x1a, 0xdb, -0x34, 0xc5, 0x50, 0x08, 0xad, 0x19, 0x64, 0x4f, 0x11, 0x89, 0x5b, 0x03, 0x9a, 0x16, 0x3d, 0xa1, -0x98, 0xd9, 0x1d, 0xe0, 0x02, 0x7d, 0xe7, 0x33, 0x84, 0x06, 0xde, 0xed, 0x95, 0xfd, 0x65, 0xb8, -0xfb, 0xfe, 0xcd, 0x19, 0xc8, 0x4e, 0xcb, 0x69, 0x6a, 0xd5, 0x9e, 0xbf, 0xf8, 0x92, 0x6b, 0x83, -0x3f, 0x4c, 0xb8, 0xba, 0xc6, 0x58, 0x5c, 0x31, 0x04, 0xc0, 0x41, 0x7f, 0xb3, 0xd2, 0xe2, 0x66, -0x60, 0x5c, 0x63, 0x02, 0xe1, 0x8e, 0xa1, 0x7b, 0x1a, 0x6f, 0xaa, 0xc6, 0x1e, 0x32, 0x06, 0xb0, -0x2d, 0x5d, 0x33, 0xb1, 0xae, 0x33, 0x91, 0x27, 0x6e, 0xa6, 0x71, 0xa3, 0xef, 0x86, 0x32, 0x70, -0x7c, 0xd0, 0xde, 0x67, 0x26, 0x1b, 0x3d, 0xab, 0xd3, 0x76, 0xec, 0x6c, 0x8e, 0xe0, 0xd3, 0x86, -0x64, 0x08, 0xe1, 0x01, 0xec, 0xf9, 0x78, 0x9b, 0xd7, 0xc2, 0xb1, 0x50, 0x09, 0x57, 0xab, 0x6a, -0xcf, 0x5f, 0xfb, 0x64, 0xc2, 0x88, 0x10, 0xa3, 0x8e, 0xab, 0x77, 0x04, 0x4a, 0xb6, 0xde, 0xa7, -0x3a, 0x66, 0x8c, 0xce, 0xc7, 0xf3, 0x3d, 0x5a, 0xee, 0xf5, 0xe5, 0x6a, 0x3a, 0x7a, 0x7c, 0x0b, -0xc3, 0xf2, 0xb2, 0xe3, 0x1b, 0x07, 0x8d, 0x8f, 0x24, 0x8e, 0x86, 0x8e, 0x06, 0xa0, 0x7b, 0x2d, -0xba, 0x26, 0xaf, 0x7f, 0x8d, 0x95, 0x3c, 0xa7, 0x95, 0xcc, 0x23, 0x1d, 0xa3, 0xd7, 0xf2, 0xbf, -0x19, 0xaf, 0x3e, 0xb1, 0xe6, 0x17, 0xfb, 0xe4, 0x92, 0x95, 0x80, 0x9c, 0x7f, 0xbd, 0xa2, 0x12, -0xc6, 0x05, 0xee, 0x2a, 0xcd, 0x62, 0xc6, 0x60, 0xef, 0xee, 0x78, 0xbd, 0x69, 0x6b, 0x6f, 0xd4, -0xa5, 0x18, 0x5c, 0x19, 0x9c, 0x42, 0x13, 0xa6, 0x23, 0xf3, 0x6a, 0x9b, 0xd5, 0x3a, 0xfe, 0x0f, -0xdb, 0xa4, 0x65, 0x82, 0xe3, 0xd5, 0x81, 0x50, 0x6c, 0xab, 0x83, 0xeb, 0x71, 0xbc, 0xbe, 0x5a, -0x34, 0x0e, 0x72, 0xbd, 0x6f, 0xe3, 0xa3, 0xab, 0x8f, 0xae, 0x66, 0x08, 0x14, 0x0e, 0xd2, 0x04, -0x17, 0xb3, 0x22, 0x71, 0x99, 0xf0, 0x33, 0xac, 0xfd, 0xdb, 0x84, 0x1c, 0x5c, 0x4b, 0x7a, 0x56, -0x3c, 0x2a, 0x66, 0x56, 0xbe, 0x69, 0x2d, 0xd6, 0x91, 0x6c, 0x4b, 0x08, 0x21, 0x28, 0xdc, 0x13, -0xcd, 0x69, 0x15, 0x76, 0xf4, 0x44, 0xc9, 0x33, 0x51, 0x8f, 0x3a, 0x85, 0x61, 0xa0, 0x9a, 0xc9, -0x13, 0x97, 0x62, 0x38, 0x1a, 0x0f, 0x77, 0x37, 0x5b, 0x77, 0xe2, 0xca, 0x5c, 0x6f, 0x9a, 0x1a, -0x20, 0x8f, 0x54, 0x84, 0x4b, 0x4e, 0x48, 0xb6, 0x24, 0x17, 0xa5, 0x96, 0x8b, 0xe1, 0xfa, 0xa8, -0x18, 0x07, 0xb7, 0x46, 0xba, 0x7e, 0xf4, 0x4b, 0xf5, 0x12, 0x93, 0x36, 0x1d, 0x62, 0xbe, 0xae, -0xbc, 0x50, 0x8d, 0xf3, 0x60, 0x41, 0xc5, 0x7b, 0xb0, 0x89, 0x4b, 0x31, 0xa1, 0x18, 0x67, 0xcf, -0x64, 0x6f, 0x08, 0xb9, 0x81, 0xe7, 0x21, 0x48, 0x58, 0x6d, 0x63, 0x24, 0x98, 0x9d, 0x4c, 0x4a, -0x99, 0x4f, 0x52, 0x4a, 0x28, 0x66, 0x76, 0x14, 0x49, 0x29, 0xa5, 0x68, 0xd7, 0xbd, 0xe7, 0xd6, -0xe2, 0x96, 0x7d, 0xb2, 0x15, 0xc0, 0x17, 0x35, 0xe1, 0xdf, 0x76, 0x35, 0xd4, 0x0e, 0x65, 0x43, -0x23, 0xf5, 0x38, 0x5a, 0x33, 0xc8, 0x72, 0x88, 0xcd, 0x21, 0xc2, 0x5c, 0xf2, 0x59, 0x9f, 0x8e, -0x04, 0x6b, 0xe6, 0xc1, 0xa6, 0xa8, 0x2d, 0xd2, 0x43, 0x98, 0x58, 0xfd, 0x3d, 0xea, 0xeb, 0xc8, -0xed, 0x4c, 0x46, 0x5a, 0xf5, 0x28, 0xae, 0x00, 0x7b, 0x34, 0x3f, 0xf3, 0x2a, 0x9e, 0x86, 0x9e, -0x4f, 0x9e, 0xb2, 0xf0, 0xeb, 0x42, 0x92, 0x05, 0x12, 0xd2, 0x8f, 0xe8, 0x16, 0x1c, 0x51, 0x9b, -0xde, 0x03, 0x80, 0xf4, 0xed, 0x58, 0xf5, 0xc6, 0x04, 0xb7, 0x27, 0xe4, 0x12, 0xb7, 0x77, 0x65, -0x4b, 0x02, 0xf7, 0x35, 0xc9, 0x21, 0x91, 0xa7, 0xf3, 0x29, 0x57, 0x7b, 0x4f, 0x64, 0xdc, 0xed, -0x07, 0xb8, 0x26, 0xe7, 0xf3, 0xda, 0x82, 0xb6, 0xe4, 0xa3, 0x04, 0x7f, 0xe4, 0xdc, 0x4b, 0x25, -0x6d, 0xf5, 0x4f, 0x2f, 0x01, 0xe3, 0xf4, 0x46, 0x9c, 0xea, 0xf6, 0x56, 0x0d, 0x9f, 0x73, 0xf0, -0xca, 0xc5, 0x4b, 0xc4, 0x4b, 0xc6, 0xcb, 0x85, 0x97, 0x07, 0x2f, 0x1f, 0x5e, 0x85, 0x78, 0x15, -0xe1, 0x55, 0x4c, 0xfa, 0x1d, 0x78, 0xf7, 0x4f, 0x27, 0x6d, 0x8f, 0xe0, 0x74, 0xd2, 0xfc, 0x08, -0xe1, 0xef, 0x6a, 0xbc, 0x14, 0xbc, 0xea, 0x5b, 0x05, 0xfc, 0x1b, 0xa7, 0x93, 0x05, 0xbc, 0xaf, -0xc6, 0x3d, 0x69, 0xbe, 0xce, 0xaf, 0xf4, 0x56, 0x6f, 0x9c, 0xee, 0x07, 0xf2, 0xbe, 0xed, 0xae, -0x89, 0xe3, 0xd3, 0x7a, 0xfc, 0x36, 0x1f, 0xfa, 0x90, 0x37, 0x13, 0x04, 0x28, 0x79, 0x4f, 0x30, -0x4c, 0x0f, 0x09, 0x96, 0xc0, 0xd3, 0x82, 0xa9, 0xf4, 0x3d, 0xc1, 0x34, 0xbd, 0x42, 0x30, 0x60, -0x98, 0x1d, 0xc3, 0x72, 0x30, 0xcc, 0x81, 0x61, 0x0e, 0x0c, 0xb3, 0x5f, 0x8f, 0x7b, 0x4b, 0x4a, -0x8d, 0x81, 0xef, 0x2e, 0x69, 0x9c, 0xe0, 0xee, 0x8d, 0xed, 0x48, 0x99, 0x0c, 0x56, 0x54, 0x13, -0xb2, 0xd2, 0xd5, 0x11, 0x26, 0x27, 0xe5, 0xfb, 0x49, 0x8e, 0x5b, 0x28, 0x4a, 0xba, 0xcc, 0x4f, -0x8d, 0x2a, 0xde, 0x4e, 0x18, 0x2a, 0x07, 0x1c, 0xf9, 0xac, 0xdd, 0xc9, 0xc7, 0xa2, 0xa6, 0x69, -0xb3, 0x69, 0x77, 0x42, 0x76, 0xab, 0x5a, 0x3e, 0xf2, 0x2b, 0x0e, 0x16, 0x27, 0xce, 0xce, 0x5a, -0x72, 0xf1, 0x12, 0xf1, 0x37, 0x08, 0xe7, 0x70, 0xca, 0xb5, 0x40, 0x21, 0xb8, 0xc8, 0xa7, 0xd0, -0x15, 0x6b, 0x2c, 0x77, 0x70, 0xe3, 0xc3, 0x07, 0x4a, 0x19, 0x6f, 0xfe, 0xdd, 0x57, 0x12, 0x76, -0x91, 0x09, 0xee, 0x26, 0x81, 0x3e, 0x07, 0x24, 0x99, 0xca, 0x71, 0x72, 0x1c, 0x25, 0x3a, 0xf3, -0x9c, 0xec, 0x41, 0xea, 0xeb, 0xf5, 0x20, 0x35, 0x9c, 0xc0, 0xa8, 0xa1, 0x50, 0x36, 0xf4, 0xf1, -0xa9, 0xaa, 0x4d, 0x6e, 0x7f, 0x5a, 0x18, 0x8e, 0x39, 0xa7, 0x5f, 0x5e, 0x21, 0x10, 0xfa, 0x65, -0x8e, 0x8e, 0xd9, 0xeb, 0x61, 0x08, 0x8b, 0x16, 0x6c, 0xdd, 0xc2, 0xfe, 0x67, 0xc1, 0xa8, 0x4e, -0xde, 0xc5, 0x75, 0x0c, 0xf2, 0x70, 0xec, 0x34, 0xc2, 0x00, 0xa1, 0xf8, 0xe2, 0x18, 0x35, 0x8a, -0x16, 0xc5, 0x2a, 0x57, 0xba, 0x22, 0x0c, 0x67, 0x8b, 0x63, 0xf6, 0x82, 0x3e, 0xfa, 0x18, 0xde, -0x14, 0xce, 0xf9, 0x84, 0x24, 0xfa, 0x56, 0x5d, 0x02, 0x2d, 0x47, 0xdd, 0xba, 0x7c, 0x78, 0x36, -0x9d, 0x8e, 0x49, 0xdb, 0xa1, 0x5b, 0x97, 0x45, 0x1b, 0x71, 0xd7, 0x2c, 0xb1, 0x3d, 0xba, 0x30, -0xf0, 0x14, 0x8e, 0xc4, 0x38, 0x97, 0x1f, 0x33, 0xcf, 0xe8, 0x9f, 0xa2, 0x71, 0x4e, 0x7e, 0x86, -0x82, 0x7d, 0xe9, 0x32, 0x69, 0x86, 0x8d, 0x96, 0xe4, 0xea, 0xf5, 0x59, 0x58, 0x9e, 0xd8, 0x7f, -0x56, 0x9c, 0xc5, 0x99, 0x9b, 0x18, 0xef, 0xc0, 0x6c, 0xf1, 0xf6, 0x0c, 0xed, 0x46, 0xba, 0xb2, -0xc9, 0x4b, 0x1e, 0xbe, 0xf2, 0x30, 0x0c, 0xf4, 0x3d, 0xd3, 0x9e, 0x8f, 0x2d, 0xd4, 0x86, 0xa9, -0x7d, 0x27, 0x6f, 0xd9, 0x5c, 0x48, 0xa2, 0x55, 0x5a, 0x75, 0xd9, 0x80, 0x21, 0xea, 0xd6, 0x79, -0x15, 0x01, 0xb9, 0xf3, 0xd5, 0x4a, 0x96, 0xce, 0xc3, 0x88, 0x5c, 0xe3, 0x40, 0x8d, 0x29, 0x75, -0xb4, 0xcf, 0x97, 0xb6, 0x41, 0xa1, 0xa2, 0xd0, 0x53, 0xc9, 0x19, 0x18, 0x90, 0x7a, 0x95, 0x05, -0xf4, 0x1c, 0x98, 0x01, 0xe3, 0x6f, 0x5d, 0x8a, 0xbd, 0x6a, 0xc3, 0xbf, 0x45, 0x90, 0x75, 0x2b, -0x61, 0x5e, 0x66, 0xe3, 0x5f, 0x3f, 0x4c, 0xc6, 0xbf, 0x41, 0x98, 0x82, 0x7f, 0x43, 0x20, 0xe1, -0xdf, 0x4a, 0x70, 0xe2, 0xdf, 0x6a, 0x70, 0xe3, 0xdf, 0x05, 0x90, 0x8f, 0x7f, 0x6b, 0xa1, 0x00, -0xff, 0x2a, 0x30, 0x5b, 0x31, 0xeb, 0x39, 0x14, 0x25, 0xc6, 0x9d, 0xa4, 0xa3, 0x54, 0xe9, 0x18, -0xd0, 0x46, 0xe9, 0x78, 0x24, 0xbe, 0x23, 0x4e, 0xd4, 0xec, 0xfa, 0x6f, 0xbe, 0xb4, 0x51, 0x97, -0xa9, 0x17, 0x39, 0x09, 0x5f, 0x0e, 0xf9, 0x35, 0xd2, 0x08, 0xf8, 0xa7, 0xfd, 0xf3, 0xce, 0xc2, -0x34, 0xa4, 0x79, 0x01, 0xa7, 0xc5, 0x44, 0xd6, 0x86, 0xf1, 0x0e, 0xdf, 0xf1, 0x8d, 0xc8, 0xef, -0x8c, 0xe8, 0xfd, 0x28, 0x21, 0x1d, 0xe8, 0xd5, 0xa5, 0x23, 0x86, 0xe4, 0xa9, 0x02, 0xc0, 0x1b, -0xba, 0xce, 0xc5, 0xad, 0xf8, 0xbe, 0x9f, 0xf7, 0x34, 0x86, 0x1e, 0xc0, 0x2f, 0xfb, 0x3d, 0xc4, -0x27, 0x70, 0x4e, 0x7d, 0x61, 0xa4, 0x57, 0xe7, 0xd4, 0xad, 0xb8, 0xca, 0xee, 0xb9, 0xec, 0x16, -0xb3, 0x23, 0x71, 0xec, 0x05, 0x5a, 0x73, 0xf7, 0x68, 0x0b, 0xd8, 0x8e, 0x14, 0x52, 0xbd, 0xc6, -0x56, 0x0e, 0xc2, 0x80, 0xdb, 0x73, 0x19, 0x08, 0xc3, 0x12, 0xe7, 0x79, 0x37, 0xae, 0x12, 0x03, -0x44, 0x23, 0x95, 0x46, 0x0f, 0xf1, 0x65, 0x26, 0xd2, 0x93, 0xc8, 0x07, 0x8f, 0x3f, 0xb2, 0x21, -0xff, 0xa7, 0x8c, 0xd2, 0xd9, 0x70, 0x94, 0x5a, 0xbc, 0xa6, 0x92, 0xa1, 0x4b, 0x87, 0x90, 0x56, -0x17, 0x23, 0xd7, 0xc6, 0x29, 0xe0, 0x38, 0xef, 0x44, 0x8c, 0xdd, 0x02, 0x95, 0x55, 0x7d, 0x81, -0x82, 0x33, 0xf2, 0x4d, 0x73, 0x41, 0x66, 0x68, 0x88, 0x92, 0xce, 0x3f, 0x08, 0x8a, 0x23, 0x36, -0xa2, 0x98, 0xd9, 0x2f, 0x73, 0xec, 0xca, 0x2f, 0xb7, 0x23, 0x2f, 0x68, 0x8a, 0x19, 0xba, 0xf0, -0x4e, 0xc8, 0x9d, 0x52, 0xd9, 0xa8, 0xb3, 0x09, 0x18, 0x39, 0x4f, 0x5c, 0x53, 0x35, 0x47, 0x7e, -0x9a, 0x4d, 0xf3, 0x8e, 0x76, 0xc0, 0xb8, 0x6a, 0x88, 0x6c, 0x6e, 0x19, 0xf4, 0xb9, 0xb5, 0xe7, -0x52, 0x6b, 0x92, 0x67, 0x72, 0x5f, 0x5b, 0xa2, 0xc0, 0xa9, 0xab, 0x60, 0x8b, 0x89, 0x63, 0x3d, -0xca, 0x4e, 0x27, 0x6c, 0x38, 0xb2, 0x26, 0x24, 0xaa, 0x0c, 0x63, 0xbf, 0x63, 0x34, 0x79, 0xc7, -0xf4, 0x30, 0xd8, 0x90, 0xf6, 0x65, 0x41, 0xd6, 0x74, 0x92, 0x3a, 0xf8, 0xc5, 0xbd, 0xa4, 0xef, -0xda, 0xca, 0xbc, 0x46, 0x32, 0x9c, 0x4f, 0x5c, 0x2b, 0x46, 0x1c, 0xba, 0xcc, 0x85, 0x71, 0x42, -0xb8, 0x3e, 0xe6, 0x81, 0xba, 0xe3, 0x29, 0x50, 0x1b, 0x2c, 0xc8, 0x11, 0x4d, 0x52, 0xcf, 0x13, -0x56, 0x33, 0xa1, 0xdb, 0xf2, 0xb4, 0x89, 0x93, 0x64, 0xfe, 0x82, 0xc9, 0x17, 0x68, 0xb6, 0x42, -0x79, 0xd9, 0x47, 0xd7, 0xe9, 0xaf, 0xdf, 0xd3, 0xf7, 0xa7, 0xb5, 0x81, 0x3c, 0x98, 0x93, 0x58, -0x05, 0x31, 0x7f, 0x69, 0xfa, 0x72, 0x3a, 0xc1, 0xc4, 0xbf, 0x0b, 0x61, 0x96, 0x48, 0xe7, 0x13, -0xf1, 0xbe, 0xa7, 0x41, 0xc5, 0x37, 0x6e, 0x0c, 0x6b, 0xc5, 0xb1, 0xeb, 0xd4, 0x7b, 0x03, 0xfb, -0x08, 0xd3, 0x09, 0xa6, 0x56, 0x24, 0xfb, 0x26, 0xc6, 0x3b, 0x19, 0x92, 0xf8, 0x75, 0x6c, 0xe7, -0x9e, 0xce, 0xd5, 0x6a, 0x16, 0x05, 0xb4, 0x0e, 0x7d, 0xa5, 0xca, 0xb1, 0x6e, 0x0a, 0x94, 0x04, -0x03, 0x6a, 0x90, 0xe1, 0x71, 0x93, 0x4c, 0xd4, 0xc7, 0x68, 0x52, 0xa1, 0xaf, 0xd8, 0x60, 0xbb, -0x66, 0x0b, 0xe7, 0x26, 0x72, 0x32, 0x40, 0x08, 0x57, 0x65, 0xfa, 0xe6, 0xa3, 0xed, 0x6c, 0x24, -0x19, 0x78, 0x7e, 0x7c, 0x37, 0xce, 0x68, 0x68, 0x2e, 0xd1, 0x50, 0xeb, 0x66, 0x6a, 0x49, 0xdc, -0x7b, 0x4c, 0x61, 0x98, 0x92, 0x54, 0xba, 0x43, 0x2c, 0x0f, 0x10, 0xac, 0xbe, 0xe2, 0xeb, 0x4a, -0x86, 0x2e, 0x5c, 0xdd, 0x8f, 0xd3, 0x78, 0x3f, 0xee, 0xe3, 0xfd, 0x98, 0x2e, 0x7d, 0xd0, 0x2d, -0x42, 0xb7, 0xa6, 0xd1, 0x29, 0xf0, 0x4e, 0x98, 0x3b, 0xf4, 0x91, 0xbd, 0x6a, 0xf3, 0xb4, 0x4a, -0xb0, 0x4d, 0x6b, 0xa2, 0x9e, 0x9d, 0x36, 0x1f, 0xa6, 0xf0, 0x18, 0x48, 0xb7, 0x66, 0x32, 0x4c, -0x0b, 0x37, 0x58, 0x42, 0xcd, 0x30, 0xad, 0x6a, 0x33, 0x0f, 0xc1, 0xfe, 0xb5, 0x04, 0x7c, 0x66, -0xc6, 0x77, 0x8a, 0x33, 0x21, 0x4e, 0xb3, 0x8a, 0x24, 0x3e, 0x18, 0x27, 0x8e, 0xd4, 0xed, 0xe4, -0x27, 0x9d, 0x34, 0x63, 0x38, 0xf5, 0xd3, 0x76, 0x50, 0xd9, 0x19, 0x33, 0x3b, 0x5f, 0x66, 0xe3, -0x24, 0xd1, 0x57, 0x6e, 0xea, 0xab, 0xbf, 0x6c, 0x1d, 0xd5, 0x57, 0x14, 0xb2, 0x30, 0x25, 0x2b, -0xea, 0x84, 0x24, 0x0f, 0x81, 0x3d, 0x53, 0x5e, 0x13, 0x0a, 0xaa, 0xb5, 0x89, 0x9e, 0xf9, 0x88, -0xaf, 0x16, 0x21, 0x5f, 0xb1, 0x90, 0x7b, 0xcd, 0x9e, 0xf1, 0xa5, 0x6a, 0x8f, 0x3d, 0xe3, 0x60, -0x69, 0xdb, 0x4b, 0xde, 0x83, 0x81, 0xe9, 0x21, 0xac, 0x55, 0x1e, 0x8c, 0x27, 0xab, 0xba, 0xcf, -0x38, 0xc0, 0x76, 0x75, 0x6f, 0x15, 0x15, 0x91, 0x1d, 0x38, 0xf9, 0x83, 0xa3, 0x5d, 0xbd, 0x48, -0xe7, 0x10, 0x2e, 0x58, 0x4c, 0x12, 0xa5, 0xbf, 0xd8, 0xb1, 0x15, 0x73, 0x95, 0x7c, 0xa4, 0xf0, -0x44, 0x5f, 0x8c, 0xdc, 0xbe, 0x1d, 0xcb, 0x21, 0x5b, 0x37, 0x55, 0xd6, 0x94, 0xcd, 0x55, 0x73, -0xf5, 0xf2, 0xf1, 0xf3, 0x79, 0x5b, 0xa4, 0x9b, 0x90, 0xbe, 0x98, 0x4f, 0xbe, 0x43, 0x09, 0x8e, -0x3c, 0x37, 0x37, 0x79, 0x1e, 0x95, 0xc8, 0x43, 0xe6, 0xde, 0x04, 0x88, 0xfb, 0x44, 0x8a, 0x15, -0xd7, 0x35, 0xaf, 0x6b, 0xa7, 0xf9, 0x85, 0x1c, 0xe2, 0x6d, 0x49, 0xaa, 0x9b, 0xde, 0xef, 0xc8, -0x81, 0x15, 0x63, 0xba, 0x8b, 0x3b, 0x90, 0x4f, 0xbe, 0xb8, 0x4a, 0x71, 0x4b, 0xc8, 0x93, 0x1d, -0x61, 0x7b, 0x0a, 0x96, 0xc2, 0x66, 0xc9, 0x48, 0xbb, 0x22, 0x03, 0xe8, 0x65, 0x43, 0x8e, 0x44, -0x70, 0x88, 0xbe, 0x90, 0xdd, 0x25, 0xb0, 0x92, 0x0c, 0x26, 0xce, 0x9c, 0xe6, 0xcc, 0x71, 0xea, -0x58, 0x6e, 0x57, 0x9f, 0xb3, 0x5c, 0x59, 0x20, 0x43, 0x14, 0x0c, 0xd9, 0x9c, 0x77, 0xbb, 0xc6, -0xf9, 0xcb, 0x07, 0x1d, 0x30, 0x6f, 0xe8, 0x22, 0xb6, 0xc9, 0x9f, 0xf7, 0xd0, 0x59, 0x0f, 0xd2, -0x84, 0x0c, 0x66, 0x95, 0xce, 0x90, 0xda, 0x85, 0xc1, 0xb4, 0xb1, 0x47, 0xa7, 0x71, 0xac, 0x9d, -0xac, 0x9b, 0x88, 0xa7, 0x8b, 0x5a, 0x23, 0xab, 0x63, 0xf6, 0xfe, 0xd5, 0x2a, 0xd2, 0x71, 0xe1, -0xc5, 0x9b, 0x82, 0x02, 0x5c, 0xef, 0x24, 0xc7, 0x65, 0x31, 0xad, 0xc6, 0xdc, 0x0d, 0xd3, 0x82, -0xc8, 0x75, 0x6d, 0x17, 0x4c, 0xa2, 0xb1, 0x16, 0xc7, 0x99, 0x60, 0x70, 0x5b, 0x4c, 0x6b, 0x30, -0xdc, 0x3e, 0xad, 0x0c, 0x39, 0xaf, 0xed, 0x82, 0x43, 0xca, 0xac, 0xed, 0x9a, 0x56, 0x22, 0x10, -0x16, 0xeb, 0xe4, 0xa9, 0x61, 0xc8, 0x46, 0xca, 0x65, 0x07, 0xc9, 0xe3, 0x46, 0xda, 0x5e, 0x0e, -0xd8, 0x3a, 0xc8, 0x03, 0x96, 0xb0, 0x11, 0x19, 0x42, 0x9a, 0x51, 0xa0, 0xef, 0xc8, 0xf4, 0xd3, -0x27, 0x0c, 0xc9, 0xf7, 0x9a, 0x92, 0xcf, 0x4e, 0x8c, 0x95, 0x33, 0x6f, 0xe8, 0xcf, 0x2e, 0x3a, -0x97, 0xad, 0xea, 0x50, 0x8a, 0xb8, 0x9f, 0xd9, 0xb4, 0xba, 0x79, 0x18, 0xfd, 0x63, 0x18, 0xfe, -0xae, 0x14, 0x12, 0x6c, 0x30, 0xed, 0x8c, 0xcc, 0x82, 0xbb, 0xf8, 0x29, 0xac, 0xa5, 0xf7, 0x61, -0x6a, 0xb9, 0xf3, 0x86, 0x2e, 0xbc, 0x4e, 0xb2, 0x8a, 0xaa, 0x63, 0x8a, 0xff, 0xaa, 0xd4, 0x0a, -0xf5, 0xd4, 0x82, 0x69, 0xa9, 0x89, 0x57, 0x9d, 0xba, 0x91, 0x4e, 0xd8, 0x14, 0x1c, 0x83, 0x7c, -0x24, 0xed, 0xc1, 0x54, 0xc5, 0x8a, 0xa1, 0x0b, 0xab, 0xe7, 0x0d, 0x0d, 0x9f, 0xa2, 0x94, 0xab, -0xcf, 0x28, 0xe5, 0xc9, 0x94, 0x13, 0x23, 0x72, 0x36, 0x4f, 0xb9, 0xea, 0x91, 0x24, 0xea, 0x9c, -0x4b, 0x2c, 0x4b, 0x4f, 0x93, 0x9d, 0x5e, 0xea, 0x79, 0x63, 0x8a, 0xb4, 0x6e, 0xf1, 0xf4, 0x77, -0xea, 0x33, 0x14, 0xc7, 0xe2, 0x9f, 0x2e, 0xd1, 0x19, 0xaa, 0x62, 0x4f, 0x0b, 0x79, 0x1b, 0x43, -0x04, 0x8e, 0xb7, 0x90, 0xec, 0xe3, 0x29, 0x34, 0xbb, 0xfe, 0xf4, 0x18, 0x9b, 0xdf, 0x47, 0xaf, -0x3e, 0xff, 0x49, 0x97, 0xa5, 0xa7, 0x8d, 0x0b, 0x76, 0x16, 0xf4, 0x27, 0x35, 0x71, 0x16, 0xc4, -0x29, 0xc2, 0x9f, 0xd6, 0x5e, 0x75, 0x32, 0x24, 0xf2, 0x79, 0xa9, 0x3c, 0xc9, 0x34, 0x73, 0xbd, -0x7c, 0x4d, 0xc4, 0x1d, 0xe2, 0xd6, 0x4f, 0x3e, 0x1b, 0xa2, 0x30, 0xd9, 0x85, 0x3b, 0x09, 0x03, -0xf1, 0x1c, 0x82, 0xa1, 0x6c, 0xe8, 0xfc, 0x90, 0x92, 0x95, 0xa4, 0xd7, 0x36, 0xd2, 0x5e, 0x64, -0x5a, 0x76, 0xa5, 0xa3, 0xbe, 0x7b, 0x43, 0xb1, 0xe3, 0x5a, 0xbc, 0x14, 0xb2, 0x54, 0x07, 0xb7, -0x8b, 0x56, 0xac, 0x7a, 0x0a, 0xf6, 0xb2, 0xa1, 0x0b, 0xc3, 0x63, 0x62, 0x1f, 0x4d, 0x6b, 0x03, -0x6c, 0x9d, 0xf3, 0x5b, 0xf5, 0x53, 0x27, 0x2b, 0x9f, 0x5f, 0x84, 0x0d, 0xe3, 0xf1, 0x02, 0xe1, -0x0b, 0x32, 0x4f, 0x2e, 0xb2, 0x31, 0x8c, 0x3b, 0x05, 0x75, 0xb1, 0xb2, 0x42, 0x5c, 0x2e, 0x38, -0x0e, 0x1f, 0x8c, 0xf4, 0xf4, 0xf7, 0x44, 0x4d, 0xb8, 0xbf, 0x5d, 0x4d, 0x7b, 0xc8, 0xa9, 0x7e, -0xc2, 0x13, 0x16, 0x1c, 0x81, 0xfe, 0x6d, 0x66, 0x17, 0xde, 0x5f, 0x3b, 0x48, 0x88, 0xd6, 0xdc, -0x93, 0x7a, 0x30, 0x3e, 0xc3, 0x0f, 0x66, 0x57, 0x20, 0xb2, 0x5e, 0xcc, 0x13, 0x1c, 0x83, 0xeb, -0xd8, 0x09, 0x3c, 0xe1, 0x8c, 0x3c, 0x52, 0x76, 0x96, 0xcf, 0x74, 0x99, 0xfa, 0xd8, 0xa6, 0x38, -0x1e, 0x39, 0xd8, 0x0e, 0xf3, 0x87, 0xfe, 0xd4, 0x3e, 0x6f, 0xe8, 0xfc, 0x3a, 0x8c, 0x9b, 0x83, -0x7b, 0xbc, 0x4d, 0x4c, 0x12, 0xd0, 0xc9, 0x7d, 0xef, 0xe2, 0x9c, 0xf7, 0xe1, 0x6a, 0x54, 0x88, -0xa3, 0x34, 0x9d, 0xc3, 0x05, 0x83, 0x0d, 0x47, 0xd9, 0x64, 0x19, 0x79, 0xdc, 0x0e, 0xc8, 0x71, -0x0b, 0x20, 0x1b, 0x23, 0xdd, 0xf3, 0xce, 0x21, 0xdf, 0x44, 0xe7, 0xfd, 0x13, 0xb9, 0x64, 0xc1, -0xd9, 0x28, 0xb0, 0xb5, 0x34, 0xbc, 0x39, 0x3a, 0x79, 0x5a, 0x00, 0x72, 0x16, 0xac, 0x26, 0x4f, -0x11, 0xe5, 0x03, 0x34, 0x5b, 0xca, 0x56, 0xb8, 0xe9, 0xef, 0x71, 0x65, 0x21, 0xc3, 0x65, 0xcc, -0x51, 0x4e, 0x85, 0xfb, 0xa2, 0x46, 0xa6, 0x63, 0xa7, 0x11, 0x17, 0x11, 0x78, 0x1a, 0xb2, 0xe7, -0xbf, 0x07, 0xc4, 0x49, 0x65, 0x79, 0x6d, 0xe4, 0xd7, 0x81, 0x6a, 0x85, 0x6f, 0xb2, 0x53, 0x6b, -0x28, 0x72, 0x53, 0x36, 0x9a, 0x59, 0x78, 0x37, 0xd0, 0xee, 0x95, 0xa1, 0x79, 0xd7, 0x44, 0xe8, -0x64, 0x52, 0x94, 0x8d, 0x35, 0xdd, 0xdc, 0x62, 0x40, 0x7d, 0x92, 0x4a, 0x4a, 0x1c, 0x60, 0xf8, -0xd1, 0xa8, 0x09, 0xcb, 0x91, 0xab, 0xdc, 0xc5, 0xf2, 0xcc, 0x55, 0x16, 0x3a, 0x57, 0xc0, 0x14, -0xcc, 0xd7, 0x44, 0x28, 0x8e, 0x7a, 0xce, 0xe4, 0x87, 0xd6, 0xcc, 0x57, 0x5b, 0x4a, 0x5b, 0xcf, -0xd5, 0x9c, 0x36, 0x12, 0x09, 0x5d, 0x10, 0x73, 0xca, 0x37, 0x44, 0xee, 0x4f, 0xe6, 0x8c, 0xb3, -0xc2, 0xb3, 0x90, 0xe5, 0x3b, 0x4e, 0xc9, 0xf2, 0xb0, 0x5a, 0xb2, 0xfa, 0xad, 0x70, 0xb1, 0x5a, -0x8a, 0x0b, 0x59, 0x49, 0xfa, 0xb0, 0x45, 0xec, 0xd8, 0x1a, 0x54, 0x0a, 0x51, 0x69, 0x62, 0xa5, -0x10, 0x95, 0x7a, 0xca, 0x1d, 0xf3, 0x58, 0xcc, 0xe6, 0x24, 0xa5, 0x86, 0xb5, 0x75, 0x81, 0x58, -0xc3, 0xe6, 0x66, 0x9f, 0xca, 0xcb, 0x25, 0x63, 0xb9, 0x72, 0xd3, 0x4b, 0x41, 0xeb, 0x14, 0xab, -0x7d, 0x1e, 0xe4, 0xd0, 0x59, 0x3c, 0x2f, 0x2b, 0xf6, 0xfb, 0x77, 0x12, 0xa5, 0xaa, 0x7a, 0xd4, -0x59, 0xc3, 0xdb, 0x42, 0xc9, 0xa6, 0x96, 0x5f, 0x70, 0x28, 0xd5, 0xf2, 0xe5, 0x03, 0xf3, 0x87, -0x3e, 0x20, 0x6f, 0x13, 0xdd, 0x35, 0xe4, 0x39, 0x7a, 0x2b, 0xee, 0x49, 0xcc, 0x89, 0xd5, 0xf2, -0xc3, 0xa5, 0x94, 0xd2, 0xb4, 0xb1, 0xb5, 0xc6, 0x37, 0xef, 0x0f, 0x7b, 0x27, 0x32, 0x69, 0x3c, -0xf1, 0x08, 0x94, 0xc3, 0x9e, 0x0f, 0x88, 0x63, 0x16, 0xd9, 0xbe, 0x6b, 0x38, 0x69, 0xf3, 0xce, -0xcf, 0xc8, 0x18, 0xb7, 0xa7, 0x98, 0x18, 0x3a, 0x65, 0x40, 0x9e, 0xc4, 0x67, 0x82, 0x7a, 0x9e, -0xf3, 0x00, 0x89, 0x13, 0xb8, 0xc1, 0x38, 0xf7, 0x80, 0x44, 0x96, 0xed, 0x63, 0xf6, 0x03, 0x2d, -0xe0, 0x77, 0xb7, 0x40, 0x10, 0x67, 0x44, 0x08, 0x47, 0x61, 0x25, 0x21, 0xf0, 0xe3, 0xac, 0xa8, -0xc5, 0x39, 0xbd, 0x18, 0x69, 0x85, 0xc2, 0x4f, 0xab, 0x25, 0x93, 0x2e, 0x37, 0xbf, 0x2b, 0x54, -0x1e, 0x28, 0x5f, 0x5f, 0x72, 0xb2, 0xb6, 0xc8, 0xef, 0xcb, 0x38, 0x59, 0x2b, 0x01, 0x9d, 0x49, -0xcd, 0xb1, 0x76, 0xcf, 0xf5, 0xe2, 0x9e, 0x3f, 0x06, 0x84, 0x82, 0x8f, 0xfc, 0xbb, 0x07, 0x77, -0x22, 0xbe, 0xee, 0xb5, 0xcc, 0xb2, 0xbf, 0x04, 0xf7, 0xa7, 0x5e, 0x58, 0xc0, 0x52, 0x31, 0xf3, -0x54, 0x8a, 0xcd, 0xa9, 0x74, 0x7c, 0xfe, 0x39, 0x5e, 0x58, 0x78, 0xf2, 0x6b, 0xe2, 0x38, 0x92, -0xae, 0x17, 0x98, 0xe3, 0x25, 0x84, 0xa8, 0xbf, 0x0a, 0x08, 0x27, 0x6a, 0x54, 0x4a, 0x22, 0xa6, -0x24, 0x73, 0xb4, 0x26, 0xc9, 0xa8, 0xa7, 0x63, 0x1c, 0x95, 0x8e, 0xe1, 0xef, 0x48, 0x25, 0x84, -0xa9, 0x54, 0x06, 0xb6, 0x33, 0x14, 0x5b, 0xeb, 0xd8, 0xd3, 0x00, 0xda, 0x25, 0x06, 0x7e, 0xc8, -0x34, 0x70, 0x95, 0xb1, 0xef, 0x08, 0x17, 0x54, 0x9c, 0x27, 0xcd, 0x17, 0x6d, 0x92, 0x31, 0xa9, -0x39, 0x43, 0x9c, 0x71, 0xf6, 0x55, 0x5a, 0x0d, 0xec, 0x2d, 0x79, 0x56, 0xd1, 0xf7, 0x0d, 0x97, -0x61, 0xc8, 0xb7, 0x89, 0xb7, 0x3a, 0x21, 0x7c, 0x27, 0x76, 0xad, 0xf8, 0x5d, 0x35, 0xcf, 0x45, -0xce, 0x83, 0x05, 0x4e, 0x03, 0x9d, 0xd8, 0x9e, 0xfc, 0xea, 0xc9, 0x45, 0xec, 0x8c, 0xb6, 0x74, -0x54, 0xa9, 0x0c, 0x89, 0x93, 0x1b, 0xb7, 0x3f, 0xc1, 0xdb, 0x95, 0xfc, 0xc5, 0xac, 0x39, 0xcd, -0xc1, 0xf8, 0x4b, 0x71, 0x31, 0x63, 0xb4, 0xf7, 0x3a, 0x17, 0x59, 0xe7, 0xbc, 0x44, 0xb9, 0xb8, -0x70, 0x64, 0xb8, 0x41, 0xc9, 0x29, 0x39, 0x67, 0xdf, 0x23, 0x95, 0x89, 0x9e, 0x94, 0x85, 0xc9, -0x95, 0xbe, 0xd7, 0xbb, 0x5d, 0x0b, 0xc2, 0x5b, 0xd4, 0xd3, 0x38, 0xe2, 0x8c, 0xd7, 0xab, 0x33, -0xce, 0x87, 0x5a, 0xcc, 0xcf, 0x59, 0x13, 0xcf, 0x87, 0x4e, 0xe2, 0x63, 0x4a, 0x99, 0x44, 0xac, -0x58, 0x34, 0x49, 0xe3, 0x70, 0x7c, 0x14, 0x6f, 0x7a, 0x1e, 0xfc, 0x0f, 0x33, 0x9d, 0x11, 0xb2, -0xcf, 0x42, 0x8a, 0x34, 0x0e, 0xa9, 0x9f, 0x91, 0x61, 0xbf, 0x7a, 0xa1, 0xa9, 0x62, 0xe8, 0xca, -0xa3, 0x55, 0x5b, 0x98, 0x84, 0xb4, 0x48, 0x95, 0xbd, 0x19, 0x84, 0xff, 0xc9, 0xe3, 0xe8, 0xb1, -0x13, 0x31, 0x15, 0x3d, 0x96, 0x47, 0x0a, 0x8a, 0x19, 0x29, 0x6d, 0x61, 0xe4, 0xcd, 0xa2, 0x8c, -0x46, 0xb2, 0xbd, 0x17, 0xed, 0x6b, 0xad, 0x4b, 0xa3, 0x3f, 0xc3, 0xb1, 0xed, 0xb6, 0x2e, 0xfd, -0x8f, 0x72, 0x30, 0xa9, 0x4e, 0x4c, 0x87, 0x90, 0xf0, 0x87, 0xa6, 0x40, 0x88, 0x6c, 0x62, 0xc8, -0xe7, 0xca, 0x5e, 0xde, 0x2b, 0x5f, 0x66, 0x58, 0xba, 0x55, 0xf7, 0x06, 0xf4, 0x8b, 0xb4, 0xda, -0x88, 0xdb, 0x27, 0xad, 0x36, 0xe6, 0x37, 0x6d, 0x47, 0xed, 0xc6, 0xb9, 0x4c, 0xff, 0x36, 0xec, -0x8f, 0xae, 0x92, 0xb3, 0xf8, 0xb8, 0x3a, 0x59, 0xab, 0xb7, 0x3e, 0xb5, 0xf2, 0x55, 0x67, 0x45, -0xa1, 0x78, 0xa1, 0x1f, 0xa9, 0xc8, 0x72, 0x30, 0x31, 0xdd, 0xf2, 0x80, 0x98, 0x35, 0x36, 0x46, -0x7f, 0x9f, 0xea, 0xf1, 0xe1, 0xec, 0x3e, 0x59, 0xdb, 0x8f, 0x2d, 0xaf, 0x8a, 0xf8, 0x6c, 0x62, -0xcf, 0x26, 0xd5, 0xc1, 0xca, 0x8a, 0xa5, 0xa4, 0x33, 0x09, 0x7d, 0xed, 0xcf, 0x9e, 0xfb, 0x1e, -0x58, 0x14, 0xcb, 0xfc, 0xb3, 0x60, 0xe6, 0x98, 0x42, 0x38, 0x0e, 0x0c, 0xea, 0xf7, 0x1e, 0x39, -0x48, 0x74, 0x85, 0x9f, 0xe0, 0xce, 0x08, 0x43, 0x31, 0xa1, 0xab, 0x72, 0x5f, 0x80, 0xc5, 0x34, -0x6b, 0x5d, 0xa4, 0xf1, 0x5b, 0x71, 0xd6, 0xbe, 0xe7, 0x5b, 0xbf, 0x96, 0x2d, 0x84, 0x8b, 0x6d, -0x7f, 0x14, 0x57, 0x84, 0x22, 0xa7, 0xb5, 0xba, 0xa7, 0x23, 0x70, 0x9c, 0xfc, 0xb4, 0xbf, 0x9e, -0xdc, 0xc1, 0x3b, 0x75, 0x09, 0x06, 0xed, 0xdb, 0xf7, 0x2b, 0xa1, 0xe4, 0xbe, 0x7d, 0x57, 0x72, -0xdf, 0xfe, 0x1c, 0xed, 0xc2, 0x3d, 0x01, 0x2c, 0x9d, 0x9c, 0xb4, 0xd9, 0xd2, 0x6e, 0x37, 0xf3, -0x53, 0xcd, 0x4f, 0x3f, 0x6a, 0x86, 0xc0, 0xe7, 0xcc, 0x42, 0x78, 0x0a, 0x7e, 0xb3, 0x7a, 0x41, -0xbc, 0x35, 0x84, 0x9c, 0xc8, 0x59, 0xa5, 0x83, 0xa4, 0x35, 0xd6, 0xa5, 0xb8, 0x40, 0x89, 0x6a, -0x93, 0x68, 0xbf, 0x7a, 0xa6, 0xd8, 0xf7, 0xf8, 0x30, 0x2d, 0x76, 0x86, 0x18, 0xea, 0xf6, 0x7f, -0xae, 0xc4, 0xfe, 0x22, 0xfe, 0x36, 0xa5, 0xfd, 0x1e, 0x48, 0xb6, 0x46, 0x06, 0xf7, 0x94, 0x83, -0x54, 0x8e, 0xbc, 0x35, 0x2d, 0x62, 0xe7, 0x32, 0x39, 0x7c, 0x67, 0x6e, 0x68, 0xd4, 0xee, 0xb3, -0x9f, 0x57, 0x2c, 0xd0, 0x08, 0x71, 0xbc, 0x1b, 0x9c, 0x21, 0xdc, 0x9d, 0xfb, 0xc6, 0xee, 0xce, -0x35, 0x07, 0x93, 0x58, 0x49, 0xa1, 0x46, 0xfb, 0x9e, 0xaa, 0x3d, 0x57, 0x5e, 0x67, 0x9e, 0x47, -0x1d, 0xe1, 0xa7, 0xd9, 0xde, 0xde, 0xde, 0xb5, 0xdd, 0xfe, 0x81, 0x62, 0x6a, 0xfd, 0xf0, 0x57, -0x78, 0x67, 0xd4, 0xb3, 0x38, 0xe9, 0x69, 0xcd, 0xce, 0xd0, 0x6e, 0x6f, 0xd4, 0x65, 0x55, 0x00, -0xbb, 0x93, 0x9a, 0x20, 0x5c, 0xd6, 0x71, 0x2b, 0xb6, 0xce, 0x59, 0xa5, 0x2d, 0x69, 0x37, 0xb2, -0x27, 0x69, 0x37, 0x72, 0x14, 0xdb, 0x6c, 0x07, 0xa1, 0x07, 0x8b, 0x6e, 0x9c, 0x57, 0x63, 0x6a, -0x2f, 0xc6, 0x7d, 0x6e, 0xfb, 0x8b, 0x89, 0xba, 0xde, 0x86, 0x7b, 0x73, 0xfc, 0x3d, 0x90, 0xf6, -0xdb, 0xc4, 0xea, 0xde, 0x68, 0xdf, 0x97, 0x1c, 0xb3, 0xa7, 0x29, 0xad, 0xdb, 0x08, 0x25, 0x48, -0x64, 0xdc, 0xda, 0x0a, 0xbd, 0x2e, 0xb6, 0x5a, 0xd2, 0x36, 0x35, 0x62, 0x7d, 0xb2, 0x31, 0xa7, -0x0f, 0x4e, 0xd6, 0x9a, 0x01, 0xac, 0x0b, 0x93, 0xf2, 0x31, 0xa5, 0x3c, 0xd0, 0xa7, 0x04, 0xe8, -0x8d, 0xae, 0x2d, 0xb2, 0x3c, 0x5d, 0x5b, 0xa4, 0x1c, 0x69, 0xc4, 0xc3, 0xf1, 0x60, 0x5c, 0x99, -0x82, 0x31, 0xde, 0x50, 0xa8, 0xac, 0x6f, 0x5f, 0x2b, 0x5e, 0x4a, 0xf7, 0x93, 0x7b, 0xbb, 0xbb, -0x83, 0x64, 0x9a, 0x6c, 0x8c, 0xb9, 0xbc, 0xdc, 0xdb, 0x5d, 0xf2, 0x7c, 0x80, 0xa8, 0x5b, 0x26, -0x9d, 0x1a, 0x25, 0xb4, 0xb6, 0xe0, 0x49, 0x0f, 0xd7, 0x2f, 0xcb, 0x91, 0x91, 0xa7, 0x4e, 0xcc, -0x46, 0xe9, 0x49, 0xdd, 0xff, 0x91, 0x3e, 0x17, 0xd5, 0x55, 0xa2, 0x49, 0x9f, 0x5d, 0x9c, 0x5a, -0xfb, 0x63, 0x5f, 0xed, 0x5f, 0x5b, 0xbf, 0x34, 0xdf, 0x10, 0x98, 0x1b, 0x9a, 0x3b, 0x56, 0x1b, -0xea, 0xe4, 0xd7, 0xf8, 0x1c, 0x14, 0x0d, 0xf1, 0xb9, 0xad, 0xd0, 0xdd, 0x43, 0x68, 0x40, 0x8f, -0xae, 0x79, 0x64, 0xb5, 0x5a, 0xe4, 0xc2, 0x5d, 0x9b, 0x68, 0xd4, 0x63, 0x2f, 0x0e, 0x05, 0x03, -0xc1, 0x5e, 0x3f, 0x51, 0x72, 0xa4, 0x39, 0x49, 0xaa, 0x4d, 0x39, 0xee, 0x66, 0xb2, 0x3d, 0x5f, -0x27, 0x08, 0x7d, 0x03, 0xa2, 0x59, 0x97, 0x9c, 0x0e, 0x33, 0x99, 0xed, 0x09, 0x86, 0x1d, 0xd9, -0x02, 0xb5, 0xd8, 0xf7, 0x8b, 0x91, 0xf2, 0xd4, 0xb3, 0x8b, 0xb8, 0x01, 0xbc, 0x23, 0x55, 0x20, -0x3e, 0xca, 0x51, 0xd8, 0x09, 0x1a, 0x47, 0xab, 0x33, 0x34, 0xe2, 0xf3, 0x5b, 0xb4, 0xd3, 0xc3, -0x71, 0x0f, 0x86, 0xc5, 0x2e, 0xa4, 0xd8, 0x63, 0x4b, 0xe0, 0x44, 0xda, 0x3d, 0xb6, 0x0e, 0xec, -0xfc, 0x28, 0x45, 0xb1, 0x3d, 0x29, 0x8a, 0xed, 0x41, 0x8a, 0x7d, 0x28, 0x2e, 0x9a, 0xd2, 0xcf, -0xba, 0xdd, 0x84, 0x14, 0x34, 0x9c, 0x9f, 0x07, 0x21, 0x9c, 0xff, 0x95, 0x05, 0x06, 0xd2, 0xc6, -0xf1, 0x8d, 0xa3, 0xb6, 0xc1, 0xb6, 0xe0, 0xbd, 0x34, 0xf7, 0xe4, 0x22, 0x5d, 0xfb, 0x23, 0x20, -0x96, 0x6c, 0x7e, 0x59, 0x32, 0xcb, 0xe3, 0x57, 0xc7, 0xc5, 0x4a, 0xa4, 0xe9, 0x26, 0xec, 0x8f, -0x05, 0x49, 0x2d, 0xba, 0x27, 0x31, 0x85, 0xda, 0xb1, 0xb4, 0x0c, 0x29, 0x7c, 0x66, 0x7a, 0xfb, -0x50, 0xfd, 0x76, 0x52, 0xec, 0x0e, 0xdc, 0xeb, 0x45, 0xf0, 0x0b, 0x31, 0x9f, 0xa3, 0xd1, 0xb9, -0xbc, 0xcb, 0xc1, 0x03, 0x21, 0x3a, 0xb7, 0x62, 0x54, 0xd5, 0xcc, 0xf1, 0xb5, 0x12, 0xfd, 0x88, -0xa5, 0x9c, 0x82, 0x6b, 0x69, 0xe5, 0x58, 0x9f, 0x65, 0xec, 0x8d, 0x4b, 0x1c, 0x47, 0xb9, 0x7a, -0xfc, 0xfc, 0xbc, 0x1c, 0xe3, 0x85, 0xd8, 0x4a, 0xed, 0x17, 0x27, 0xd2, 0x5d, 0xf4, 0xe3, 0x88, -0xe3, 0xe5, 0x29, 0xf1, 0xd9, 0xb0, 0x6c, 0x5f, 0x0b, 0xcd, 0x0d, 0xcc, 0xdd, 0xe0, 0xa7, 0xf5, -0xb9, 0x15, 0x90, 0x77, 0x28, 0xc4, 0x2f, 0x7c, 0xb8, 0x4a, 0x17, 0x76, 0x77, 0xd3, 0xca, 0x49, -0x08, 0x97, 0x3e, 0xf3, 0xc9, 0xda, 0x82, 0x89, 0x27, 0xbf, 0x92, 0x2f, 0xf0, 0xb8, 0xbe, 0xf1, -0x27, 0x6b, 0x0b, 0xbd, 0x10, 0x4e, 0xd6, 0x2b, 0x00, 0x7e, 0xf6, 0x6d, 0x90, 0x24, 0x86, 0xf8, -0x6d, 0xb0, 0xfb, 0x7e, 0xd1, 0x2f, 0x95, 0x88, 0xe3, 0x23, 0x71, 0xfc, 0x55, 0xdc, 0xd7, 0x85, -0x2b, 0x27, 0xf7, 0x5f, 0x61, 0xe5, 0xba, 0x32, 0xde, 0x09, 0x4c, 0x37, 0x66, 0xcf, 0xe5, 0x0b, -0xe2, 0xbc, 0x52, 0xa4, 0xa0, 0xa9, 0xd5, 0xe6, 0x4a, 0xdf, 0xbc, 0xf7, 0xa0, 0xa8, 0xe4, 0xac, -0x9d, 0x50, 0xed, 0x72, 0xa4, 0x50, 0x0c, 0xb2, 0xfe, 0x62, 0x86, 0xa8, 0x59, 0xa7, 0x79, 0x17, -0xa6, 0x85, 0xc0, 0x32, 0xad, 0xd4, 0xbe, 0x89, 0x78, 0x5c, 0xda, 0x09, 0xcb, 0x0f, 0x30, 0xbf, -0x40, 0x46, 0xe4, 0xad, 0xac, 0xd2, 0x3a, 0xdc, 0xdf, 0x5a, 0x7f, 0xfb, 0xab, 0xc8, 0xf3, 0xe0, -0x51, 0xb2, 0x9c, 0x65, 0xe4, 0xb3, 0x43, 0xcc, 0xa0, 0xd3, 0x5e, 0xfb, 0x1e, 0xac, 0x4b, 0xe5, -0x6e, 0xfc, 0xad, 0xc2, 0xc8, 0xd6, 0x47, 0x0e, 0x2a, 0x46, 0x6c, 0xfb, 0x28, 0xeb, 0xb5, 0xd4, -0x2a, 0xc7, 0xc2, 0x38, 0xe6, 0x11, 0xe6, 0x2d, 0xeb, 0xe7, 0xeb, 0xb4, 0xa7, 0xf2, 0xe0, 0x2c, -0x24, 0xaf, 0xaf, 0x93, 0xaf, 0xa5, 0x21, 0x41, 0x3c, 0x3a, 0xad, 0xf1, 0x38, 0x3b, 0xb3, 0xe9, -0x5c, 0x5d, 0x5f, 0x53, 0xd9, 0xce, 0x7e, 0xee, 0xd0, 0x15, 0x7e, 0xe2, 0xe6, 0xe0, 0x27, 0x38, -0x6a, 0x84, 0xc5, 0x5c, 0xca, 0xb4, 0xec, 0x44, 0xc9, 0x05, 0x32, 0xd7, 0x0f, 0x73, 0x01, 0x69, -0x24, 0x9d, 0x5c, 0xac, 0x8f, 0xb2, 0x60, 0x42, 0xff, 0xcb, 0x25, 0xf4, 0x96, 0xae, 0x04, 0x8f, -0x31, 0x3f, 0x73, 0x43, 0x9c, 0xad, 0xe9, 0x66, 0x26, 0x2f, 0x48, 0x4b, 0x31, 0x6a, 0x22, 0x39, -0x9b, 0x62, 0x24, 0x1b, 0x0c, 0xe6, 0x8f, 0xd8, 0x4f, 0xb2, 0xf5, 0xbf, 0x34, 0xe2, 0xae, 0xcf, -0x0b, 0x32, 0xce, 0xb9, 0x28, 0xee, 0xb7, 0xf4, 0x93, 0xe6, 0xe2, 0xd9, 0x84, 0xdc, 0x47, 0x52, -0x1b, 0xa6, 0xef, 0x01, 0x82, 0xe9, 0x5a, 0xf5, 0xd1, 0x4f, 0x9e, 0xce, 0xb2, 0x1a, 0xd0, 0xec, -0x19, 0xba, 0x23, 0x94, 0xf4, 0xcd, 0xb1, 0xd7, 0x9a, 0xa7, 0x7d, 0x20, 0xec, 0x23, 0xc4, 0x56, -0x26, 0xcf, 0x4f, 0xe9, 0x73, 0xe6, 0xa5, 0xe9, 0x73, 0xe6, 0xe9, 0xfa, 0x9c, 0x79, 0x09, 0x7d, -0xce, 0x14, 0x95, 0x63, 0x3e, 0x2c, 0xda, 0xf4, 0x36, 0x22, 0xae, 0x23, 0xa3, 0x62, 0xe8, 0x63, -0x87, 0xce, 0x77, 0x24, 0x5a, 0x69, 0x21, 0xb3, 0x6d, 0xc1, 0xb9, 0x20, 0x0b, 0x34, 0x07, 0xaf, -0x6a, 0x9d, 0x45, 0xc9, 0xd6, 0x09, 0xac, 0x04, 0xc9, 0x28, 0x67, 0xae, 0x8e, 0x63, 0xcd, 0x05, -0x9e, 0xde, 0xe8, 0xb4, 0xf8, 0xe9, 0xc2, 0xfe, 0x38, 0x93, 0x2f, 0xb1, 0xda, 0x4a, 0xf3, 0x06, -0xe3, 0xa3, 0x78, 0x1b, 0x26, 0x77, 0x5a, 0x5c, 0xac, 0xeb, 0x05, 0x79, 0x99, 0x16, 0x8b, 0xbd, -0x9c, 0xe9, 0x5d, 0x3d, 0x7c, 0xa0, 0x0c, 0x79, 0x93, 0x29, 0x31, 0x25, 0xd7, 0x09, 0x27, 0x1f, -0xc4, 0x5a, 0xde, 0xfc, 0x42, 0x57, 0x0c, 0xca, 0x61, 0x5f, 0x9c, 0x2c, 0x78, 0xc4, 0x82, 0x1c, -0xf8, 0x49, 0x9c, 0xb0, 0xb9, 0xd4, 0x93, 0xe5, 0x71, 0xae, 0x53, 0x83, 0xb4, 0xed, 0x38, 0xa6, -0x33, 0x07, 0x39, 0x79, 0xc6, 0xc5, 0xcb, 0x33, 0x41, 0x65, 0xd6, 0x5d, 0x3f, 0x4a, 0xee, 0x8c, -0x6d, 0x5c, 0x73, 0x4d, 0x70, 0xb3, 0x33, 0x4e, 0x01, 0x72, 0x63, 0xc5, 0xcc, 0x6b, 0x95, 0xc8, -0x7e, 0x1b, 0x41, 0x8e, 0xf9, 0xd9, 0x6f, 0xe6, 0x73, 0x46, 0x2a, 0x2d, 0xfb, 0x10, 0x72, 0x3d, -0xf3, 0x09, 0xa5, 0x2e, 0x59, 0xea, 0x4e, 0x5c, 0x19, 0x68, 0x9e, 0x15, 0x3b, 0x9b, 0x20, 0x4b, -0xb1, 0xed, 0x78, 0x1a, 0x7b, 0xd3, 0xf4, 0xc2, 0x7b, 0x90, 0xb5, 0xc4, 0xec, 0xf4, 0x8b, 0x37, -0xaa, 0x1f, 0x7c, 0xeb, 0xd7, 0xc9, 0xb8, 0xed, 0xb1, 0xc2, 0x72, 0x60, 0x3e, 0xa0, 0x01, 0xf6, -0xd9, 0x8b, 0x61, 0xce, 0x58, 0x49, 0xa9, 0xde, 0xdf, 0x8f, 0xeb, 0x27, 0xae, 0x3e, 0xcc, 0xb9, -0x90, 0xbc, 0x3b, 0xb2, 0x9c, 0x7d, 0x3c, 0x67, 0xa9, 0x94, 0xdd, 0xbb, 0x71, 0xac, 0xcf, 0x8a, -0x2e, 0x4d, 0x95, 0x03, 0xcb, 0xe0, 0x27, 0xfc, 0x59, 0x37, 0x2b, 0x47, 0xff, 0xb3, 0x54, 0x8e, -0x1d, 0xcf, 0x62, 0x39, 0x72, 0xdc, 0xa5, 0xce, 0x9b, 0xd4, 0x0f, 0x4a, 0xce, 0x41, 0x56, 0x9a, -0x34, 0xd9, 0xee, 0x2e, 0x4d, 0x95, 0x8b, 0x9d, 0x77, 0x79, 0xb0, 0x97, 0x67, 0xb1, 0x73, 0xdb, -0xfa, 0x54, 0xbc, 0x2b, 0x55, 0x54, 0x66, 0xdc, 0x57, 0x52, 0x78, 0xa7, 0x62, 0x89, 0xad, 0x54, -0x4c, 0xb1, 0xa8, 0x6e, 0x13, 0x4b, 0xe7, 0xad, 0x2e, 0x7e, 0x06, 0x03, 0x43, 0x2a, 0xee, 0xec, -0xd4, 0x1c, 0xbc, 0xec, 0x78, 0x39, 0x60, 0x68, 0x29, 0xc0, 0x50, 0xe3, 0x56, 0x18, 0x5a, 0x5e, -0xfb, 0xbf, 0x88, 0xe3, 0x55, 0xdf, 0x50, 0x77, 0x6f, 0x34, 0x89, 0xe1, 0x75, 0x5b, 0xbe, 0x6f, -0x34, 0x86, 0xd7, 0xa8, 0xd7, 0x0c, 0xbf, 0xab, 0xe1, 0x09, 0x18, 0x5a, 0xb1, 0xa5, 0x4b, 0x18, -0xaf, 0xe2, 0xf3, 0xa3, 0x78, 0x7d, 0x03, 0xaf, 0xfd, 0xc9, 0x54, 0x97, 0xe2, 0x2f, 0x3b, 0xc7, -0xfb, 0x51, 0x63, 0xcb, 0x1b, 0x5a, 0x57, 0x34, 0x34, 0xa5, 0xc0, 0x31, 0xee, 0x6d, 0x5b, 0xd6, -0xb4, 0xac, 0xed, 0x9b, 0xc9, 0xf4, 0xc6, 0xfc, 0x13, 0x60, 0x28, 0x9a, 0x40, 0xb1, 0x92, 0xaf, -0x8f, 0x7b, 0xdd, 0xe0, 0xfb, 0x5b, 0xb8, 0xd7, 0x0d, 0x45, 0x7f, 0x2f, 0xee, 0x75, 0xa0, 0xf1, -0x6f, 0x21, 0x5e, 0x37, 0x2c, 0xbd, 0x3e, 0xd2, 0x44, 0x43, 0xed, 0x58, 0xa4, 0x09, 0x15, 0x3e, -0x09, 0x69, 0xa2, 0xc1, 0x3f, 0x16, 0x69, 0xa2, 0xa1, 0xfa, 0x6a, 0xa4, 0x89, 0x06, 0xe5, 0x7f, -0x8a, 0x34, 0x91, 0x40, 0x82, 0xa0, 0x39, 0xd9, 0x70, 0x34, 0x35, 0x27, 0x71, 0x57, 0xa9, 0x44, -0x17, 0xb3, 0xd0, 0xd3, 0x31, 0x18, 0x65, 0x1f, 0x5a, 0x1f, 0x0d, 0x96, 0x9c, 0x05, 0x09, 0x57, -0x1e, 0xf2, 0x0b, 0xe4, 0xc4, 0x67, 0x27, 0x3e, 0x4b, 0x78, 0x2f, 0x48, 0xa1, 0x50, 0x78, 0x1a, -0x71, 0xf7, 0xf4, 0x9c, 0xf6, 0xa2, 0xe8, 0x17, 0x8b, 0x7b, 0x06, 0xe1, 0x26, 0x86, 0x08, 0x59, -0x4f, 0x08, 0x8c, 0x98, 0x42, 0x7e, 0x3a, 0x16, 0x45, 0x52, 0x66, 0x40, 0x3b, 0x5f, 0xc7, 0x18, -0x99, 0x32, 0xc9, 0x11, 0x48, 0x67, 0x06, 0xdf, 0xa4, 0x79, 0xcc, 0x32, 0x70, 0x79, 0x01, 0xd7, -0xf7, 0x92, 0xcd, 0xee, 0xf1, 0xae, 0xaa, 0x56, 0xce, 0x09, 0xad, 0x72, 0x46, 0xdc, 0x8d, 0xb8, -0x5b, 0x30, 0x27, 0x7c, 0x83, 0xb4, 0x66, 0x0f, 0x76, 0x8d, 0x9d, 0xe1, 0x9c, 0x33, 0x30, 0x44, -0x3a, 0xa1, 0x38, 0x0f, 0x7c, 0xed, 0x30, 0x2b, 0x0f, 0x0a, 0xc2, 0x6b, 0x55, 0xa3, 0x67, 0x26, -0x10, 0x62, 0x34, 0x68, 0x9a, 0x6a, 0x74, 0xce, 0x84, 0x1c, 0x7a, 0x1e, 0xd1, 0x96, 0x64, 0xf1, -0xb0, 0x25, 0x66, 0x53, 0x0f, 0x4d, 0x22, 0xf2, 0xcf, 0xe7, 0x35, 0xe0, 0x7a, 0xed, 0xe0, 0xfe, -0x45, 0xc4, 0x0c, 0xf2, 0x35, 0x3d, 0xd8, 0xf3, 0x4e, 0x2f, 0xf2, 0x51, 0x50, 0xbd, 0x31, 0x96, -0xd1, 0x4f, 0x3e, 0x10, 0x2d, 0x0c, 0xd3, 0xd5, 0x29, 0xc7, 0x6b, 0x37, 0xca, 0x13, 0x9d, 0xf3, -0x3b, 0x60, 0x55, 0xc1, 0x1b, 0xeb, 0x2b, 0xce, 0x81, 0xe4, 0xad, 0x24, 0x4b, 0x73, 0xd8, 0x89, -0x3b, 0x01, 0x07, 0xa1, 0x55, 0xb4, 0x66, 0x20, 0xbd, 0x32, 0xaa, 0xd9, 0xbb, 0x56, 0x47, 0xb3, -0xe8, 0xcc, 0x4b, 0x65, 0xa7, 0xc4, 0x23, 0xe7, 0x48, 0x17, 0x05, 0xc7, 0xd6, 0x1a, 0x8c, 0xd3, -0x6d, 0xce, 0xc3, 0x1a, 0x4c, 0x88, 0x76, 0xc4, 0xc4, 0xab, 0x34, 0x7e, 0x17, 0xcf, 0x20, 0xec, -0x42, 0x2b, 0xae, 0x10, 0x8e, 0x9a, 0xf8, 0xe0, 0xd3, 0x60, 0x9d, 0xe1, 0x07, 0xfb, 0x8c, 0x32, -0x30, 0xe3, 0x0e, 0xcd, 0x31, 0x23, 0x08, 0xb9, 0xe4, 0x29, 0x69, 0x70, 0xf3, 0x0c, 0x92, 0xb1, -0x19, 0x03, 0xcf, 0x40, 0x4e, 0x64, 0x3b, 0x98, 0xc5, 0xb9, 0x29, 0x0b, 0x5a, 0xa4, 0x9d, 0x1e, -0xa9, 0x32, 0x4d, 0x7a, 0x3c, 0x37, 0xcd, 0xdb, 0x7b, 0xd9, 0xe1, 0xff, 0x70, 0xfb, 0x7a, 0x21, -0xb2, 0x1a, 0x77, 0x84, 0xae, 0xbd, 0xab, 0x71, 0x57, 0x13, 0x66, 0x1e, 0xdd, 0x41, 0xb0, 0x90, -0xff, 0x91, 0xd1, 0x88, 0x21, 0x57, 0xaa, 0xa4, 0xc8, 0x55, 0x21, 0xe1, 0x34, 0xbf, 0x60, 0x00, -0x6f, 0x38, 0x5d, 0xe4, 0xbf, 0x10, 0xf6, 0x23, 0x1f, 0x4b, 0xad, 0x84, 0xbb, 0x17, 0xd9, 0x05, -0x8e, 0x33, 0xeb, 0x52, 0x9e, 0x67, 0x47, 0x9f, 0x5f, 0x30, 0xd4, 0x08, 0xfa, 0xe2, 0x09, 0xa9, -0xb4, 0x95, 0x40, 0xbc, 0xbb, 0x63, 0x84, 0xa2, 0x6e, 0xc3, 0x9a, 0xc7, 0x18, 0x8e, 0xf6, 0x85, -0xe8, 0x52, 0x8e, 0xa7, 0x1d, 0x55, 0xd8, 0xfd, 0x4f, 0xaa, 0xc9, 0xb9, 0x0c, 0x8c, 0x8a, 0xec, -0x84, 0x63, 0xf1, 0x63, 0x3d, 0xd4, 0x2f, 0x15, 0xd8, 0x2f, 0xb8, 0x32, 0x58, 0xd9, 0x7e, 0x6c, -0xb6, 0xd9, 0xc3, 0xda, 0xb2, 0xe0, 0xb7, 0xef, 0x32, 0xff, 0xc6, 0xc6, 0xa8, 0x69, 0xf0, 0x61, -0x91, 0x74, 0xb6, 0xfa, 0xa6, 0xce, 0x63, 0xfa, 0x14, 0xe6, 0xa8, 0x85, 0xec, 0x19, 0xf1, 0x97, -0x19, 0x5b, 0x6c, 0x1b, 0x98, 0xc9, 0x1f, 0x4c, 0xc9, 0x19, 0xf2, 0x28, 0x5d, 0xfa, 0x2e, 0xd8, -0x77, 0x76, 0x61, 0x2b, 0x74, 0x2a, 0x59, 0x91, 0x38, 0x86, 0xb9, 0x08, 0x0f, 0x45, 0x0c, 0xec, -0xa5, 0xfd, 0x9e, 0x33, 0xa5, 0xc3, 0x26, 0xd2, 0xa8, 0x24, 0x9b, 0xeb, 0x82, 0x74, 0x5b, 0x65, -0x2c, 0xfd, 0x06, 0xb9, 0x19, 0x24, 0x65, 0xe5, 0x4e, 0x6a, 0xc3, 0x56, 0xe4, 0xa0, 0x1c, 0xa3, -0x6c, 0x94, 0xf3, 0xc0, 0xcc, 0x34, 0x49, 0xcc, 0x6a, 0x39, 0xf9, 0x0a, 0xbc, 0xaa, 0x2d, 0x97, -0x5f, 0xa3, 0xc5, 0x6b, 0xae, 0x0a, 0x99, 0x37, 0xca, 0x2b, 0x8c, 0x98, 0xb6, 0xb6, 0x9b, 0x18, -0x06, 0x69, 0xb7, 0x18, 0x38, 0xbc, 0x4f, 0xc6, 0x5e, 0x0d, 0x77, 0x63, 0xa9, 0x63, 0xa3, 0x3d, -0xc5, 0xe8, 0xd6, 0x6e, 0xdc, 0xf7, 0xa5, 0xd9, 0x59, 0xe5, 0xad, 0x00, 0xd2, 0x0f, 0xfa, 0x10, -0x82, 0xde, 0x30, 0xf8, 0x5d, 0x16, 0x77, 0x18, 0xef, 0xc5, 0x78, 0x15, 0xb9, 0xe8, 0xa9, 0xd0, -0x6d, 0x51, 0x16, 0x93, 0xff, 0x34, 0x53, 0x57, 0xe7, 0x2d, 0x9a, 0xd6, 0x69, 0xde, 0xdb, 0xd5, -0x50, 0x39, 0xc6, 0x73, 0x1a, 0x79, 0x4d, 0xcb, 0x05, 0x09, 0x9c, 0xc8, 0xc3, 0x17, 0xc0, 0x2c, -0xc0, 0x7d, 0x85, 0xe2, 0xa2, 0x55, 0x55, 0x91, 0xc8, 0xf3, 0xb1, 0x92, 0x2b, 0xfb, 0x95, 0x1c, -0xe2, 0xad, 0x95, 0x2c, 0xfc, 0x5b, 0xac, 0x58, 0x5d, 0x7e, 0xc5, 0xe4, 0xf6, 0x93, 0x45, 0xb6, -0xd3, 0x50, 0x42, 0x5e, 0x62, 0x97, 0x33, 0xca, 0x41, 0x76, 0xed, 0x5b, 0xf0, 0x99, 0xe8, 0xca, -0x0e, 0x0f, 0xa8, 0xb6, 0x92, 0xf7, 0xd2, 0x28, 0x0e, 0x59, 0xf8, 0x48, 0x84, 0x4f, 0xbb, 0x73, -0x1b, 0x58, 0x1b, 0x56, 0xe1, 0x5f, 0x7b, 0x5d, 0xc7, 0x2a, 0xc7, 0x1b, 0xdb, 0xb0, 0x8d, 0xcb, -0xa4, 0xfb, 0x71, 0x37, 0x52, 0xe8, 0xd9, 0x86, 0x1c, 0x34, 0x71, 0x0a, 0xdb, 0x98, 0xaf, 0xd3, -0x5c, 0x0c, 0x2b, 0xc2, 0x30, 0xd2, 0xad, 0x29, 0x26, 0x9f, 0xa7, 0xc8, 0x33, 0x3b, 0xc4, 0x65, -0x48, 0xb1, 0x7b, 0xa2, 0x61, 0x69, 0x19, 0xad, 0x14, 0x8a, 0x8b, 0xf4, 0xb8, 0x54, 0x23, 0x79, -0xb4, 0xde, 0x85, 0xe3, 0xb5, 0x21, 0x6b, 0x57, 0x57, 0x9d, 0xcd, 0xd5, 0xe7, 0xc6, 0x67, 0x4f, -0x10, 0xbf, 0x35, 0x2b, 0x22, 0x1b, 0x07, 0xd6, 0x1f, 0x0d, 0xa8, 0x47, 0x03, 0x5b, 0x02, 0x8f, -0x88, 0x41, 0xdc, 0xfb, 0x5a, 0x91, 0xea, 0xd9, 0xb1, 0x6d, 0xdb, 0xdb, 0x89, 0x5a, 0x08, 0x48, -0x5b, 0x46, 0x97, 0xf5, 0xa5, 0x30, 0xe1, 0xd3, 0xbf, 0x84, 0xfd, 0x99, 0x8f, 0x3b, 0x9d, 0x9d, -0xd6, 0x65, 0x38, 0x22, 0x69, 0x4e, 0x6d, 0xc3, 0x91, 0xcb, 0x50, 0x0e, 0x90, 0x72, 0x23, 0x65, -0xc2, 0x91, 0x4e, 0x94, 0xa9, 0x8b, 0xe5, 0xaf, 0xa3, 0xc9, 0xab, 0xe4, 0x75, 0x96, 0x69, 0x5a, -0x33, 0xca, 0x14, 0xd7, 0x29, 0x53, 0x9c, 0x53, 0xa6, 0x18, 0x38, 0x43, 0x9d, 0xe0, 0x0d, 0x21, -0x85, 0x59, 0x85, 0x2d, 0x65, 0xdd, 0x4b, 0x63, 0x63, 0x05, 0xee, 0xa2, 0x1c, 0xd1, 0xa5, 0x3b, -0x37, 0x34, 0xd4, 0x97, 0x7c, 0xd4, 0xa1, 0xe5, 0x9b, 0x77, 0xf6, 0xd6, 0x2d, 0xf2, 0x96, 0x83, -0x8f, 0x66, 0xbe, 0xb7, 0x0a, 0x3c, 0x7c, 0xa6, 0x1c, 0x8b, 0xbf, 0xf3, 0xe0, 0xb1, 0xde, 0xce, -0x0c, 0x4f, 0xe9, 0xde, 0xe7, 0x70, 0x66, 0x9a, 0x9d, 0xf9, 0x60, 0x3d, 0xb6, 0x99, 0xa8, 0x9d, -0xb3, 0xcc, 0xf9, 0x14, 0x18, 0xe9, 0x54, 0xc2, 0xd9, 0x83, 0x7f, 0xfd, 0x81, 0xcd, 0xf2, 0xf3, -0xec, 0x94, 0xa2, 0xc8, 0xf9, 0x3c, 0x3b, 0x11, 0x2c, 0x76, 0xde, 0xef, 0x0c, 0xc9, 0xa1, 0x95, -0xb0, 0xf9, 0x65, 0xc5, 0x19, 0x59, 0x4b, 0xb4, 0x62, 0xc7, 0x5a, 0xf2, 0xed, 0x88, 0xfd, 0x71, -0xb4, 0x3d, 0x83, 0x79, 0x99, 0x34, 0xf7, 0x3f, 0x10, 0x35, 0xba, 0x71, 0x57, 0x1e, 0x79, 0xa0, -0xec, 0x2c, 0xbe, 0x7f, 0x40, 0x7d, 0xbb, 0x9d, 0xe6, 0xf3, 0x13, 0xf2, 0x72, 0xee, 0x83, 0x9e, -0xbc, 0xac, 0x77, 0x1a, 0xf6, 0x3e, 0xcd, 0xa8, 0x42, 0x2f, 0x95, 0xf9, 0xcc, 0xc6, 0x80, 0x09, -0xf7, 0x61, 0x45, 0x4a, 0x2b, 0x5b, 0xcf, 0x68, 0xce, 0xd7, 0xe9, 0x73, 0x7e, 0x91, 0x3e, 0xe7, -0x23, 0x48, 0x1f, 0x2d, 0xf9, 0x99, 0x6f, 0x6c, 0xc2, 0x78, 0x85, 0x0a, 0x79, 0xe1, 0x2e, 0x24, -0xba, 0xc4, 0x29, 0x41, 0xd4, 0xe6, 0xf1, 0xff, 0x7e, 0xe0, 0xf7, 0xaf, 0x0c, 0x6e, 0x78, 0xa7, -0xf7, 0xd5, 0xf3, 0x66, 0x2b, 0x79, 0x33, 0x8f, 0x9a, 0xe7, 0x93, 0xd5, 0x88, 0x4d, 0x31, 0x8a, -0xe3, 0xbf, 0xfb, 0xca, 0xce, 0x07, 0x1a, 0xec, 0x3b, 0xe3, 0x75, 0x56, 0x17, 0x7e, 0xe7, 0x7e, -0x40, 0x0c, 0x8a, 0x1b, 0x94, 0xfc, 0xc8, 0x5a, 0x2c, 0x9f, 0x7d, 0x2f, 0x72, 0x7c, 0x6a, 0x2f, -0xf3, 0xc8, 0xea, 0xda, 0x81, 0xbd, 0xa5, 0x2d, 0xa2, 0xde, 0x95, 0x82, 0x81, 0x87, 0x15, 0xab, -0xf4, 0xa5, 0x1d, 0x8c, 0x7f, 0x1c, 0x09, 0x8d, 0xb2, 0x3c, 0x14, 0x53, 0xd8, 0xac, 0xb1, 0x18, -0x5e, 0x2e, 0xbc, 0x44, 0xbc, 0x64, 0x18, 0xba, 0x07, 0x79, 0xb1, 0xaf, 0xef, 0x84, 0xa1, 0x55, -0xc7, 0x61, 0xe8, 0x3e, 0x0c, 0xbf, 0x0f, 0x79, 0x9d, 0x7f, 0xa9, 0x87, 0xa1, 0x7b, 0x2b, 0xff, -0x57, 0xf8, 0xb2, 0x6b, 0xf3, 0x69, 0x6d, 0xcb, 0x9a, 0x1b, 0x5a, 0xf3, 0xeb, 0x1b, 0xda, 0x97, -0x2d, 0x69, 0xf8, 0x64, 0x37, 0x39, 0xe9, 0x31, 0x19, 0xc7, 0xd6, 0xb2, 0x10, 0xcb, 0xd8, 0xd9, -0x35, 0x23, 0xa3, 0x00, 0x9f, 0x2b, 0xf0, 0xba, 0x05, 0xaf, 0xf6, 0x64, 0xfa, 0x17, 0x90, 0x9f, -0xdb, 0xca, 0x39, 0xb6, 0xd8, 0x1b, 0x60, 0x81, 0x09, 0x30, 0xde, 0x8f, 0x3f, 0xea, 0xee, 0x6e, -0x6b, 0x5b, 0xd2, 0xd4, 0xb2, 0x64, 0x79, 0x8a, 0x7d, 0x1b, 0x55, 0x86, 0x85, 0x81, 0xa6, 0xbb, -0x57, 0x2c, 0x87, 0x25, 0xcb, 0xee, 0xbe, 0xfb, 0x3a, 0x31, 0x9a, 0x97, 0x2d, 0x69, 0x6d, 0x59, -0xba, 0x72, 0x74, 0x60, 0x03, 0x4b, 0xf3, 0x2a, 0xbe, 0xef, 0x5f, 0x8e, 0xa5, 0x3d, 0xf7, 0xa7, -0x9e, 0x3b, 0xf3, 0xd3, 0xf1, 0xd2, 0x38, 0x3f, 0x18, 0xf8, 0x21, 0xee, 0xae, 0xc6, 0x8f, 0x46, -0x2e, 0x5b, 0x71, 0x80, 0xf1, 0x4a, 0x07, 0x39, 0xd7, 0x15, 0xcd, 0x1d, 0xcb, 0x33, 0xae, 0x38, -0x3e, 0x96, 0x67, 0xc4, 0x7d, 0x8c, 0x24, 0x57, 0x90, 0xdc, 0x67, 0x34, 0xef, 0xb8, 0xe2, 0xe4, -0x28, 0xde, 0x71, 0x96, 0x6e, 0xeb, 0x39, 0x2a, 0x4e, 0xcc, 0x38, 0x2a, 0xb7, 0xac, 0x14, 0x7f, -0x79, 0x53, 0x27, 0x8c, 0x43, 0x3a, 0x62, 0x09, 0xbb, 0xe1, 0x96, 0x66, 0x63, 0xf5, 0x59, 0xb8, -0x05, 0xb9, 0x1b, 0xeb, 0x68, 0x74, 0xb3, 0x4f, 0xe6, 0x37, 0x5b, 0xec, 0xd7, 0xe7, 0x37, 0x5b, -0x60, 0x2c, 0xbf, 0x19, 0xb3, 0x7f, 0x12, 0xbf, 0xd9, 0x72, 0x69, 0x2c, 0xbf, 0xb9, 0xe2, 0xd2, -0xd5, 0xfc, 0x66, 0x8b, 0xf9, 0x7f, 0xca, 0x6f, 0x92, 0xa6, 0x12, 0xe1, 0x91, 0x24, 0xdf, 0xf7, -0x5a, 0xf3, 0xa8, 0xfe, 0x51, 0x92, 0xf7, 0xe4, 0x7c, 0x8a, 0xb4, 0xfa, 0x6f, 0x49, 0xd7, 0x2d, -0x47, 0x6e, 0xaa, 0x3b, 0x4a, 0x78, 0x02, 0x42, 0x7f, 0xb7, 0x4a, 0x48, 0xec, 0x73, 0x5e, 0x38, -0x0b, 0xe5, 0xaa, 0x03, 0xb9, 0xf0, 0xb7, 0x15, 0x1b, 0xf1, 0x9c, 0xf8, 0x7b, 0xb6, 0x6a, 0xc4, -0xdf, 0xfb, 0xd2, 0xb4, 0xcf, 0xd7, 0x72, 0x99, 0x86, 0xa6, 0x25, 0x53, 0x62, 0x88, 0xdb, 0x09, -0x7c, 0x28, 0xa4, 0xfc, 0x84, 0xd7, 0xd2, 0xcb, 0x77, 0x02, 0xfa, 0xaf, 0x6e, 0xdd, 0xe3, 0x36, -0x79, 0x3c, 0x25, 0xdf, 0xb9, 0x9e, 0x42, 0x2f, 0xb8, 0xb1, 0x66, 0x06, 0x09, 0x8e, 0xc4, 0xc5, -0x92, 0xc3, 0x03, 0x87, 0x0f, 0xcc, 0x3b, 0xdf, 0x5b, 0x30, 0xef, 0xcf, 0xc7, 0xc1, 0x1a, 0x00, -0x41, 0x75, 0x97, 0x9d, 0x03, 0x31, 0xb4, 0x1c, 0x5e, 0xe7, 0xd8, 0x28, 0xdf, 0x38, 0x5f, 0x4d, -0x12, 0x5e, 0xdd, 0x47, 0xe9, 0x37, 0xf6, 0xd4, 0x6e, 0x4c, 0x3d, 0xc9, 0x77, 0x76, 0x08, 0xed, -0xe2, 0xb1, 0xf5, 0x8a, 0x07, 0x4b, 0x2c, 0xe2, 0xee, 0x91, 0x30, 0xc0, 0x0f, 0x86, 0xe3, 0x4d, -0x39, 0xe2, 0x7c, 0xa9, 0x52, 0x4e, 0xf3, 0xe4, 0xa6, 0x65, 0x87, 0x83, 0xaa, 0x55, 0x29, 0x90, -0x23, 0x81, 0x60, 0x78, 0x93, 0x3a, 0xa8, 0xe4, 0x18, 0x98, 0x8f, 0x0e, 0x6f, 0x00, 0x5c, 0xde, -0x79, 0x20, 0x33, 0x1d, 0x6d, 0xe4, 0xca, 0x3b, 0xce, 0xd0, 0x97, 0x69, 0x7a, 0x49, 0xc7, 0x13, -0x78, 0xe8, 0x30, 0x5b, 0xae, 0x70, 0x56, 0xdd, 0xd8, 0x09, 0x99, 0x60, 0x0e, 0xcc, 0xc0, 0xd6, -0x9c, 0x01, 0x39, 0xc8, 0x31, 0xe5, 0x5a, 0x49, 0x03, 0x68, 0x71, 0x9d, 0x15, 0xef, 0xb8, 0x11, -0x13, 0x4e, 0x11, 0x2f, 0x85, 0xcf, 0x13, 0xa2, 0x0b, 0xac, 0x7e, 0x3f, 0xf9, 0x46, 0x19, 0xc4, -0x75, 0xc8, 0x4b, 0x7b, 0xe6, 0xd8, 0x0d, 0xfd, 0x4f, 0x81, 0xdc, 0x60, 0xb9, 0xa9, 0x53, 0x1b, -0x86, 0x5b, 0x70, 0x85, 0x3a, 0x81, 0x6b, 0x92, 0x2b, 0xd0, 0x17, 0x23, 0xd4, 0x06, 0x92, 0x07, -0x1b, 0x30, 0xe5, 0xa5, 0x60, 0x21, 0x8f, 0x90, 0x2d, 0x6b, 0xc1, 0x4a, 0x68, 0x22, 0x18, 0x6b, -0x57, 0xc9, 0xbb, 0xcc, 0x7e, 0xee, 0x45, 0x7c, 0xfe, 0x77, 0x7e, 0x72, 0x88, 0x7c, 0xec, 0x96, -0x99, 0x8d, 0x20, 0x82, 0x84, 0x7f, 0x71, 0xe2, 0x24, 0x43, 0xd7, 0x57, 0x6f, 0xc4, 0x58, 0x6d, -0x31, 0x63, 0x7f, 0x57, 0x03, 0x08, 0x0b, 0x8f, 0x74, 0xf9, 0x90, 0x63, 0x28, 0x19, 0x1a, 0x51, -0xab, 0x3e, 0xc6, 0xd4, 0x5b, 0xe1, 0x31, 0x38, 0x0b, 0x16, 0x61, 0x4a, 0x05, 0xa6, 0xc8, 0x3c, -0x60, 0x93, 0xae, 0x1e, 0xb5, 0xa5, 0x35, 0x99, 0x42, 0xb1, 0xd7, 0x1a, 0x5a, 0x01, 0xaf, 0x53, -0x68, 0x87, 0x83, 0xfb, 0x39, 0x55, 0x1d, 0xc9, 0xb7, 0x9e, 0x00, 0xce, 0xa6, 0x5a, 0xca, 0x43, -0xf7, 0x14, 0x47, 0xda, 0x7d, 0x23, 0x72, 0xf2, 0xbd, 0xd5, 0xe0, 0xc6, 0x91, 0x36, 0x85, 0x69, -0xf3, 0x00, 0x0c, 0x53, 0x3e, 0x48, 0x21, 0xae, 0xca, 0xe5, 0xca, 0xb1, 0x44, 0x58, 0x47, 0x3b, -0xcd, 0x12, 0x25, 0xff, 0xea, 0x12, 0x51, 0x29, 0xb8, 0x1c, 0xef, 0x1b, 0xaf, 0x24, 0xbf, 0xfb, -0x9e, 0x9e, 0x2b, 0x72, 0xf2, 0x57, 0xc8, 0xda, 0x4c, 0xe4, 0x9a, 0x81, 0xf8, 0x6b, 0x13, 0xcf, -0x99, 0xca, 0x06, 0xab, 0xf5, 0xf8, 0x7d, 0xb8, 0x9b, 0x10, 0xd3, 0xf3, 0xa1, 0xd2, 0x5e, 0x69, -0x4f, 0xa6, 0x76, 0x57, 0xb2, 0xb4, 0xb9, 0x4a, 0x55, 0xe2, 0x9b, 0x64, 0xbc, 0xaa, 0x64, 0xbc, -0x59, 0xc9, 0x78, 0x0e, 0xc5, 0x89, 0xbd, 0x77, 0x05, 0x7b, 0xcf, 0x96, 0xe2, 0x30, 0x47, 0xd6, -0x2a, 0x76, 0xdc, 0xb1, 0x89, 0x78, 0x21, 0x7b, 0x8a, 0x61, 0x53, 0xa2, 0xa7, 0x38, 0xea, 0x0e, -0xed, 0xc1, 0x8a, 0x0b, 0x70, 0x0d, 0x4f, 0x9b, 0x97, 0x4e, 0x37, 0x74, 0xf3, 0x11, 0xfc, 0xcd, -0xa5, 0x72, 0x4a, 0x1e, 0xd6, 0xed, 0xdc, 0x0e, 0xd2, 0xd1, 0x1e, 0x5c, 0xc9, 0xcf, 0x74, 0x90, -0xf7, 0x0e, 0xa3, 0xd7, 0xc0, 0x64, 0xb8, 0xda, 0x9c, 0xb6, 0x02, 0x08, 0x95, 0x90, 0x06, 0x36, -0xae, 0xb3, 0x1f, 0xc8, 0x70, 0x74, 0x3b, 0xb8, 0xa9, 0x24, 0x3b, 0xba, 0x97, 0x98, 0x30, 0xc7, -0x0f, 0x14, 0x13, 0x79, 0x4a, 0x84, 0x0f, 0xa6, 0xd5, 0x80, 0x7b, 0x1a, 0xf9, 0x92, 0xce, 0xa7, -0x78, 0xb8, 0x63, 0x31, 0x12, 0x86, 0x1f, 0xae, 0xd8, 0x37, 0x04, 0xee, 0x58, 0x62, 0x45, 0x4e, -0xe6, 0xfc, 0xcf, 0x07, 0x28, 0x24, 0xb2, 0x19, 0x29, 0x46, 0xb1, 0x8e, 0x31, 0xc8, 0xac, 0xb2, -0x52, 0x65, 0xfb, 0xec, 0x30, 0x2e, 0xf0, 0x6f, 0x9e, 0x77, 0x7f, 0x76, 0xd8, 0x80, 0xf7, 0x3f, -0x81, 0xef, 0x9f, 0xf0, 0x97, 0xe9, 0x64, 0xa8, 0x80, 0xdf, 0x2b, 0x76, 0xf8, 0xa3, 0x17, 0xd9, -0xb3, 0x91, 0xbf, 0x69, 0x1b, 0xb7, 0xaf, 0xfb, 0xad, 0x07, 0x4e, 0x86, 0xe2, 0x25, 0xea, 0xd1, -0xc2, 0x62, 0xe1, 0xe1, 0x40, 0x89, 0x52, 0x90, 0xf8, 0x26, 0x10, 0xcc, 0x81, 0x59, 0xfc, 0x79, -0xde, 0xae, 0x60, 0xf4, 0x22, 0x7b, 0x36, 0x46, 0xc0, 0xe0, 0x07, 0xad, 0x63, 0xdc, 0x4b, 0xab, -0xdf, 0x7a, 0x30, 0x5e, 0xda, 0x5f, 0xb2, 0xc4, 0x50, 0x00, 0x35, 0x01, 0xf5, 0xa0, 0xb5, 0x44, -0xf0, 0x2c, 0x31, 0xb6, 0x1b, 0x69, 0xe5, 0x2f, 0x62, 0x31, 0x0d, 0xc1, 0xfb, 0xc0, 0x6c, 0x04, -0xab, 0x6a, 0x84, 0x52, 0xb0, 0x5b, 0x83, 0xb7, 0x68, 0x91, 0x7d, 0x41, 0x03, 0x4b, 0xbd, 0x93, -0xd2, 0xf8, 0x2c, 0x61, 0x93, 0xbf, 0xf9, 0xa7, 0x61, 0x56, 0x9e, 0xce, 0x1d, 0xa0, 0x66, 0xe3, -0xac, 0x1b, 0x56, 0x4d, 0x38, 0xce, 0x0d, 0x8a, 0x05, 0x9f, 0x2f, 0xe1, 0x97, 0x38, 0xa3, 0x52, -0x2d, 0x6c, 0x0d, 0x4e, 0xd5, 0x96, 0x58, 0x30, 0xcc, 0x88, 0x6b, 0x43, 0x06, 0xbc, 0xff, 0xb9, -0x52, 0x78, 0xe5, 0xa6, 0x00, 0x9c, 0x13, 0x59, 0x8c, 0xe0, 0xaf, 0x54, 0x63, 0xac, 0x00, 0x79, -0xbd, 0xe2, 0x49, 0x7e, 0x43, 0x16, 0xae, 0x15, 0x3a, 0x1e, 0xd1, 0x1d, 0x74, 0x6a, 0xce, 0xce, -0x47, 0xc8, 0xaa, 0xac, 0x5d, 0xd8, 0xd5, 0xad, 0x16, 0x30, 0x0e, 0xf2, 0x94, 0x37, 0x2b, 0x65, -0x61, 0x27, 0x03, 0x0b, 0x3b, 0xcd, 0xf4, 0xf7, 0x8c, 0x09, 0x3d, 0xf6, 0xc0, 0xa6, 0x41, 0xd2, -0x6a, 0x35, 0x2a, 0x0a, 0xee, 0x09, 0x16, 0x4b, 0x91, 0x87, 0x0f, 0x48, 0x79, 0xb0, 0x2a, 0xc6, -0xd0, 0x27, 0xe6, 0xb4, 0x31, 0x5d, 0xb1, 0xf1, 0xb8, 0x9f, 0x65, 0xda, 0x42, 0xb4, 0xfe, 0xe5, -0xe3, 0xb7, 0x9d, 0xb0, 0x12, 0x66, 0xe7, 0xc1, 0x39, 0x7d, 0x14, 0x8c, 0xf3, 0x9a, 0xf8, 0x7b, -0x0f, 0xfc, 0xa1, 0x8a, 0x4e, 0x53, 0xdc, 0xc2, 0xaa, 0x1b, 0x3e, 0x78, 0x76, 0xdd, 0x5a, 0x17, -0x7c, 0xf0, 0xc4, 0xb1, 0x35, 0xbf, 0x59, 0x2d, 0x77, 0x4f, 0x2b, 0x05, 0x63, 0xe5, 0x9b, 0xb9, -0xc3, 0x3a, 0x22, 0x0c, 0xf2, 0xd4, 0x91, 0x38, 0x51, 0x14, 0xd5, 0x10, 0xe9, 0x4b, 0x59, 0x43, -0x10, 0xaf, 0x2d, 0x0a, 0x83, 0xc8, 0x71, 0xd2, 0xbb, 0xfe, 0xae, 0x7a, 0x7c, 0x2b, 0x4e, 0x3a, -0xdc, 0xc7, 0x34, 0x89, 0x8d, 0x0c, 0xcb, 0x64, 0x52, 0x7f, 0x9f, 0x9a, 0x45, 0x1a, 0xc8, 0x3f, -0x3a, 0x03, 0xc6, 0x84, 0xfd, 0x41, 0x52, 0x0f, 0x99, 0xc5, 0x91, 0x26, 0x89, 0x76, 0xa4, 0x2d, -0xd9, 0xaa, 0x3d, 0x11, 0x6f, 0x41, 0xda, 0xc9, 0x2b, 0x69, 0x2d, 0xa7, 0x52, 0x93, 0xec, 0x3b, -0xe2, 0xaa, 0x85, 0x3c, 0xb4, 0xf7, 0x21, 0x5f, 0x5f, 0x75, 0x6f, 0xa4, 0x6b, 0x07, 0xe9, 0xc1, -0x91, 0xc7, 0x76, 0x17, 0xd9, 0x56, 0x35, 0x98, 0xfb, 0xba, 0xf0, 0x1b, 0x8d, 0x5f, 0x09, 0x7c, -0x20, 0x3a, 0xa5, 0xc3, 0x79, 0xbb, 0x8b, 0xe6, 0xb8, 0x16, 0x44, 0xda, 0x8f, 0x2b, 0x50, 0xb4, -0x2a, 0xb9, 0x22, 0x99, 0x68, 0x45, 0x52, 0x08, 0x73, 0xf1, 0x51, 0xe4, 0x48, 0x37, 0xd9, 0xed, -0x59, 0x93, 0x1c, 0xf6, 0x9d, 0xa0, 0x7e, 0xf4, 0x56, 0xc8, 0x50, 0x02, 0x5a, 0xbc, 0x44, 0x72, -0xc3, 0x8e, 0x36, 0x28, 0x84, 0x1d, 0xdd, 0x0d, 0x86, 0x4d, 0x7e, 0xf2, 0xaf, 0xc0, 0x3d, 0x8c, -0x1d, 0x89, 0xd3, 0x1c, 0x22, 0x4f, 0x0e, 0x34, 0x03, 0x18, 0xaa, 0x10, 0xb3, 0xbc, 0xf1, 0x79, -0xc1, 0x86, 0xa3, 0x45, 0x50, 0xcd, 0xcc, 0xbe, 0xfb, 0x6d, 0xa5, 0x1e, 0x29, 0x9e, 0x12, 0x5e, -0x0a, 0xfb, 0x54, 0x2b, 0x0b, 0xd9, 0x87, 0x7b, 0xd5, 0x1d, 0xca, 0x2c, 0xdc, 0xc5, 0x6c, 0xb0, -0x4f, 0xc2, 0x79, 0xe1, 0xcf, 0x8a, 0xf3, 0x67, 0x1c, 0x35, 0x66, 0xf6, 0xfc, 0xa8, 0x7d, 0x12, -0xfe, 0xdd, 0x94, 0x35, 0x29, 0x51, 0x06, 0xee, 0x17, 0xe5, 0x61, 0xfc, 0x0e, 0xd7, 0x6e, 0x17, -0xf4, 0xc7, 0x84, 0x3f, 0x6c, 0x6b, 0xbd, 0xaf, 0x5c, 0x88, 0x77, 0x79, 0x96, 0xc2, 0x5a, 0x1c, -0x8b, 0x67, 0x92, 0x7c, 0x0f, 0xd7, 0xe9, 0x58, 0x84, 0x75, 0x59, 0xe8, 0xb0, 0x67, 0x4f, 0xb2, -0xdb, 0xfb, 0x0d, 0xea, 0x47, 0x31, 0x92, 0xea, 0x90, 0x37, 0x83, 0x33, 0xa1, 0x01, 0xb6, 0xfa, -0xb7, 0x65, 0x40, 0x34, 0xe7, 0x1a, 0xf1, 0x84, 0x90, 0x9f, 0x76, 0x27, 0x26, 0x66, 0xdf, 0xc9, -0x2d, 0x95, 0xde, 0x5a, 0xb7, 0x3a, 0xa3, 0xaf, 0x9b, 0xf3, 0x3a, 0x55, 0x77, 0x02, 0xe0, 0x3a, -0xb5, 0x52, 0x14, 0x78, 0x0c, 0x5c, 0x51, 0x56, 0x62, 0xcf, 0x1b, 0x23, 0x4f, 0x41, 0x3b, 0xf6, -0x43, 0x77, 0x32, 0xb4, 0x1b, 0x63, 0xad, 0xda, 0x11, 0xaf, 0xb3, 0xf4, 0x75, 0xd1, 0x2f, 0x7c, -0x2f, 0x61, 0xaf, 0xff, 0x33, 0x4f, 0x81, 0xac, 0xac, 0x09, 0x93, 0x32, 0xbc, 0x0c, 0x7b, 0x02, -0x60, 0x37, 0xc6, 0xdd, 0xc3, 0x46, 0xd2, 0x0e, 0x8c, 0xbb, 0x47, 0x4f, 0x6f, 0x17, 0x93, 0xa2, -0xf6, 0xe2, 0xde, 0xbb, 0xa0, 0xe2, 0x2c, 0xec, 0x22, 0xfd, 0x9c, 0x0e, 0x87, 0x92, 0x8f, 0xeb, -0xb8, 0xe8, 0xb5, 0x92, 0x1e, 0x0f, 0x5b, 0xc5, 0x25, 0xe4, 0x25, 0x02, 0x0c, 0xc3, 0xf6, 0x69, -0xa6, 0x79, 0x23, 0x06, 0xf2, 0x18, 0x5f, 0x12, 0x20, 0x2a, 0xea, 0x2c, 0x75, 0xde, 0xa8, 0xbe, -0x82, 0xb5, 0x2c, 0x08, 0xf7, 0x45, 0xcb, 0x69, 0x0c, 0x84, 0x96, 0x92, 0x5d, 0xf1, 0x95, 0xe7, -0x98, 0x05, 0x2b, 0xed, 0xc8, 0x8c, 0x31, 0x28, 0x27, 0xc9, 0xc5, 0x0e, 0x8c, 0xb5, 0x21, 0xcb, -0x6e, 0x10, 0xc0, 0x6f, 0xef, 0xe2, 0xcf, 0xb4, 0xd7, 0x63, 0xcf, 0x9b, 0xec, 0xa4, 0x05, 0xf3, -0xe8, 0xc9, 0x5e, 0x7b, 0x5c, 0x61, 0xfc, 0x0b, 0xcb, 0xb1, 0x3b, 0x06, 0x95, 0xef, 0x2f, 0xce, -0xd5, 0x4e, 0xa7, 0xd7, 0xca, 0xc9, 0x6b, 0xf5, 0x76, 0xb4, 0x0e, 0xd7, 0x1f, 0x5a, 0x6d, 0xf6, -0x0c, 0xbf, 0x48, 0xb5, 0xc0, 0xbd, 0xd3, 0x9c, 0xda, 0x8d, 0xc9, 0x3a, 0x34, 0x8e, 0xa9, 0x43, -0x58, 0xaf, 0x03, 0xd2, 0x7b, 0x46, 0xf7, 0x71, 0x4d, 0xe4, 0x61, 0x23, 0x6b, 0x19, 0xd6, 0xd9, -0x2b, 0xb8, 0x2b, 0x9d, 0xf3, 0xc2, 0x7b, 0xc8, 0x4f, 0x19, 0x03, 0xcb, 0xe1, 0xed, 0x6b, 0xe4, -0xcf, 0xf1, 0x2d, 0x43, 0xce, 0xb4, 0x75, 0x01, 0xf9, 0xb4, 0x95, 0xd3, 0x02, 0x60, 0x94, 0x9f, -0x86, 0x76, 0xee, 0x67, 0xfc, 0x9b, 0x4b, 0x9d, 0x69, 0xeb, 0xc3, 0x31, 0xb2, 0xa3, 0x2a, 0x25, -0xd9, 0xd5, 0xae, 0x6e, 0x1c, 0xc3, 0x9b, 0x70, 0x64, 0xaf, 0xe2, 0x3a, 0x6e, 0xa2, 0x6e, 0x55, -0xd6, 0x4a, 0x73, 0xca, 0x4e, 0xa8, 0x82, 0x38, 0xc3, 0x73, 0xa6, 0xe2, 0x3c, 0xc4, 0xf5, 0xca, -0x58, 0x7d, 0x06, 0x6e, 0xa1, 0x79, 0x99, 0x90, 0x48, 0xa6, 0x72, 0x8c, 0x65, 0x96, 0x9e, 0x85, -0xfd, 0xc9, 0xdf, 0x11, 0xc6, 0x6d, 0xf6, 0x63, 0xd8, 0x77, 0x70, 0xf4, 0xd1, 0x28, 0xbd, 0xc8, -0x42, 0xda, 0x30, 0xe4, 0x2e, 0x7d, 0x3c, 0x5e, 0x4c, 0x95, 0x27, 0x81, 0x05, 0x18, 0x7a, 0x67, -0x2a, 0xd3, 0x0d, 0x8e, 0x09, 0x29, 0x44, 0x5d, 0xa7, 0x9f, 0x5b, 0xa7, 0xdf, 0x7b, 0x06, 0x79, -0xb4, 0x62, 0xb0, 0x9c, 0x5b, 0x63, 0xc6, 0x79, 0x08, 0xff, 0x1d, 0x35, 0x16, 0x16, 0xbf, 0x9a, -0x81, 0xb5, 0x5c, 0x65, 0x26, 0x7f, 0x6c, 0xf8, 0x9b, 0x53, 0xdc, 0xcf, 0xf9, 0xe1, 0x54, 0xeb, -0x9c, 0x7d, 0x71, 0xa4, 0x88, 0xc5, 0xb8, 0x5e, 0xf9, 0x19, 0xfd, 0x3c, 0x5d, 0xbd, 0x11, 0xc3, -0x4f, 0xf3, 0x54, 0x67, 0x06, 0x0c, 0x45, 0x22, 0x72, 0xab, 0x0d, 0x8f, 0x26, 0x52, 0xf2, 0x15, -0x2f, 0x7d, 0x0b, 0x47, 0xc2, 0x19, 0x5f, 0xf1, 0x57, 0xbf, 0x9f, 0x0a, 0x5b, 0xf4, 0x5f, 0xf8, -0xcd, 0x39, 0x69, 0x1e, 0x21, 0xcb, 0x91, 0x94, 0xb5, 0xa5, 0x2f, 0x25, 0x7b, 0x45, 0x0e, 0xde, -0x42, 0x3e, 0x76, 0xb4, 0x8b, 0xa4, 0x27, 0x4d, 0x3c, 0xef, 0xb4, 0x10, 0x94, 0x63, 0x0f, 0x06, -0xf0, 0x39, 0x80, 0xcf, 0x73, 0x88, 0xca, 0xe0, 0x7d, 0x36, 0x86, 0xcd, 0xc2, 0xe7, 0x59, 0xf8, -0x5c, 0x40, 0xb8, 0xc0, 0x2b, 0x4f, 0xc1, 0xb1, 0x69, 0x61, 0x38, 0x42, 0xcf, 0x2d, 0xdf, 0x07, -0xc2, 0xd9, 0x71, 0xc0, 0x7f, 0xdd, 0x44, 0x1c, 0xdb, 0xa1, 0x31, 0xad, 0x58, 0x8b, 0x71, 0x7e, -0x71, 0x52, 0x80, 0x75, 0x74, 0xff, 0x40, 0x80, 0x0d, 0x74, 0x3f, 0x2d, 0xc0, 0x26, 0xba, 0xff, -0x51, 0x80, 0x47, 0x71, 0x44, 0xf6, 0xb3, 0x92, 0xfd, 0x64, 0x94, 0x54, 0x78, 0xad, 0x6a, 0xcf, -0x2f, 0x8e, 0x67, 0xc6, 0x53, 0x72, 0xa5, 0x2d, 0x38, 0xae, 0xbe, 0xcf, 0xf2, 0xf8, 0x77, 0x96, -0xef, 0x7f, 0xc0, 0x13, 0xac, 0x2c, 0x56, 0x78, 0x06, 0xcb, 0xb2, 0x2d, 0xad, 0x1f, 0xc7, 0xf6, -0xdb, 0x10, 0xd6, 0x94, 0x52, 0x13, 0xd2, 0x53, 0xa3, 0x59, 0x62, 0xdf, 0x0b, 0x66, 0x46, 0x4f, -0x18, 0x45, 0xd2, 0x63, 0x9f, 0x49, 0xf5, 0xa9, 0x5e, 0xf6, 0x2a, 0xba, 0x7f, 0x28, 0x40, 0x84, -0xee, 0x6f, 0x0b, 0xb0, 0x90, 0xee, 0xef, 0x08, 0xc0, 0xfd, 0xdd, 0xb7, 0x5d, 0xa3, 0xf4, 0xe1, -0x6b, 0x96, 0x3e, 0xca, 0x4a, 0xaf, 0xb2, 0xd2, 0xbf, 0x0e, 0x4b, 0xe9, 0xfe, 0xcd, 0x83, 0x10, -0xc3, 0xd2, 0x37, 0x8d, 0x29, 0x7d, 0xfa, 0x18, 0xbb, 0x5e, 0xe9, 0x23, 0x58, 0x7a, 0xc2, 0x16, -0x59, 0x68, 0xdf, 0xab, 0x91, 0x75, 0xfe, 0x22, 0xfd, 0x1e, 0xb1, 0xd3, 0x29, 0x87, 0x9d, 0xcd, -0x7a, 0xfe, 0x2c, 0xd8, 0xe3, 0xe9, 0xe3, 0x14, 0x67, 0xc9, 0x6a, 0x86, 0x4b, 0x89, 0x2b, 0xcf, -0x61, 0x5c, 0x89, 0x68, 0xd5, 0x53, 0xac, 0x91, 0x3e, 0xce, 0x13, 0xd1, 0x6a, 0x48, 0x6b, 0x26, -0xe7, 0x94, 0xea, 0xce, 0xe0, 0x0a, 0x66, 0xc7, 0x95, 0xb0, 0x2b, 0xb5, 0x72, 0x29, 0x86, 0xbe, -0xae, 0x70, 0xbc, 0xd9, 0xb2, 0x30, 0xb5, 0x22, 0x6a, 0x94, 0x1e, 0xa6, 0xf1, 0x30, 0x4f, 0xe3, -0x56, 0x3f, 0x93, 0x70, 0x26, 0xd3, 0xb8, 0x7e, 0xea, 0xb8, 0x03, 0x30, 0xd6, 0x23, 0x37, 0x46, -0xa3, 0x9c, 0xde, 0xd5, 0xf4, 0xd1, 0x77, 0x0f, 0xb3, 0x52, 0x3d, 0xdc, 0x97, 0x38, 0x6f, 0xea, -0xf2, 0xc0, 0x50, 0xfc, 0x34, 0x5e, 0x27, 0xf0, 0x3a, 0x09, 0x43, 0x3d, 0xf9, 0x78, 0xed, 0xc1, -0x6b, 0xe0, 0xff, 0x47, 0xb9, 0xc6, 0xb2, 0x15, 0xb1, 0x7b, 0xdb, 0x12, 0xc2, 0x81, 0xc2, 0xdb, -0xf2, 0x3f, 0x3b, 0x5a, 0x98, 0x91, 0xfe, 0x1a, 0x98, 0x34, 0x23, 0x2e, 0xc3, 0xd0, 0x86, 0x50, -0xd7, 0x8c, 0x8c, 0x29, 0xf8, 0x9c, 0x0d, 0x43, 0xf7, 0xfd, 0x15, 0xef, 0x29, 0xdf, 0x27, 0xb5, -0x18, 0x12, 0xe7, 0xd2, 0x8c, 0xae, 0xef, 0xc0, 0x78, 0x26, 0xcf, 0xc8, 0x01, 0x2b, 0x4c, 0x24, -0x99, 0xc6, 0xa8, 0xd4, 0x46, 0xc9, 0x49, 0x96, 0x37, 0x7c, 0x93, 0xf9, 0xaf, 0x4d, 0xfc, 0x1e, -0x55, 0xac, 0xd6, 0x86, 0x7b, 0x1a, 0xda, 0xc4, 0xa5, 0x77, 0xaf, 0xa8, 0x6f, 0x6a, 0x68, 0x85, -0xe8, 0xdd, 0xcd, 0x0d, 0xb1, 0x96, 0xd6, 0x54, 0xa9, 0xd2, 0xe5, 0x18, 0x3d, 0xee, 0xd4, 0x73, -0x77, 0xec, 0xef, 0x93, 0x5d, 0xdc, 0xf7, 0xf8, 0x27, 0xcb, 0x2e, 0xee, 0xeb, 0xff, 0x7b, 0x65, -0x17, 0xf7, 0xed, 0xfe, 0xdb, 0xb2, 0x8b, 0xf8, 0xc0, 0xff, 0x58, 0x76, 0x91, 0xf1, 0xb7, 0x64, -0x17, 0xf7, 0x9d, 0xb9, 0xbe, 0xec, 0xe2, 0xbe, 0xe3, 0x63, 0x65, 0x17, 0xf1, 0x43, 0x9f, 0x24, -0xbb, 0xb8, 0x6f, 0x60, 0xac, 0xec, 0xe2, 0xbe, 0xc1, 0xab, 0x65, 0x17, 0xf7, 0x9d, 0xfc, 0x9f, -0xca, 0x2e, 0xc8, 0x2e, 0x57, 0x5f, 0x9d, 0xc8, 0xe7, 0x5b, 0x3e, 0x52, 0xdd, 0x59, 0x48, 0x81, -0x0b, 0x74, 0x6a, 0x4c, 0x18, 0xcd, 0x01, 0xa4, 0x1d, 0xe3, 0xfe, 0x4d, 0x64, 0xd4, 0x3a, 0x4c, -0xbe, 0xa3, 0x1e, 0xf3, 0x43, 0x95, 0xb7, 0x33, 0x6e, 0x07, 0x13, 0x98, 0xc9, 0xca, 0x32, 0x5e, -0x0f, 0x56, 0xf6, 0xdb, 0x8c, 0x3d, 0xe3, 0xe0, 0xb6, 0x97, 0xf8, 0xcb, 0x08, 0x39, 0x64, 0x73, -0xb9, 0x14, 0x20, 0x97, 0xfd, 0xbe, 0x19, 0x44, 0xc2, 0x4a, 0xf5, 0x86, 0x40, 0x66, 0xbf, 0x0d, -0xb8, 0xfb, 0xc7, 0xaf, 0x57, 0xb7, 0x82, 0x87, 0xfd, 0xb6, 0x83, 0x8f, 0xa4, 0xef, 0x74, 0x2e, -0x5d, 0xf2, 0x61, 0x6a, 0xef, 0x30, 0xdc, 0x88, 0x34, 0xce, 0x99, 0xc4, 0x26, 0xc2, 0x75, 0x8f, -0x5b, 0xe3, 0xf2, 0x75, 0x95, 0xcb, 0x04, 0x74, 0x59, 0x40, 0x4e, 0xb4, 0xae, 0xce, 0x6a, 0xf2, -0x6b, 0x7f, 0xc5, 0x67, 0x63, 0x5d, 0x91, 0xc2, 0xa5, 0x00, 0x3e, 0xbe, 0xf7, 0xaf, 0xf7, 0xf0, -0x1d, 0x3f, 0x59, 0xfd, 0xea, 0x7b, 0x7e, 0x63, 0x6a, 0xcf, 0x1f, 0x5f, 0xc0, 0xf7, 0xfc, 0x01, -0x50, 0x4c, 0xb1, 0x2b, 0xc4, 0xd7, 0xdd, 0xe8, 0x87, 0x5b, 0xcc, 0x33, 0x68, 0x47, 0xa9, 0x8a, -0x69, 0xbb, 0x4d, 0x87, 0x61, 0x06, 0xed, 0x47, 0xc5, 0x15, 0x69, 0xa8, 0xaf, 0x9b, 0x68, 0x34, -0xc6, 0x74, 0x8c, 0x7b, 0x5f, 0x3e, 0x2c, 0x4c, 0xe2, 0xc8, 0x8b, 0x55, 0x9b, 0x2a, 0xdf, 0x34, -0x72, 0xc4, 0x97, 0x71, 0xf9, 0x29, 0xeb, 0xf3, 0x2d, 0xf9, 0xb7, 0x8c, 0xb5, 0x32, 0x1f, 0x29, -0x48, 0x59, 0xa4, 0xeb, 0x36, 0xe1, 0x2f, 0x72, 0x2f, 0xf4, 0x00, 0x18, 0x3a, 0x03, 0x22, 0x51, -0x1b, 0xf2, 0xfd, 0xce, 0x64, 0xae, 0x7b, 0xf1, 0xed, 0x3f, 0x73, 0xde, 0x1d, 0xf9, 0x76, 0x3b, -0xe7, 0x5b, 0x1e, 0xda, 0xca, 0xc6, 0xa3, 0xec, 0x5c, 0x0e, 0xf9, 0xb8, 0xfa, 0x0f, 0xf5, 0x1c, -0x52, 0x1c, 0xa2, 0x5f, 0x5a, 0x0e, 0x36, 0xe4, 0xab, 0xb2, 0x98, 0x85, 0xab, 0xa1, 0xea, 0x5e, -0xe6, 0x43, 0xf2, 0x0c, 0xe7, 0xc4, 0xab, 0xee, 0xd4, 0x42, 0xb8, 0xd3, 0x9a, 0x2d, 0x37, 0x83, -0xf9, 0x76, 0x1c, 0xdd, 0xda, 0x47, 0xb7, 0x77, 0x4e, 0xbf, 0x41, 0xbb, 0x14, 0x68, 0xd6, 0x86, -0xf0, 0x1a, 0xfe, 0x34, 0xae, 0x3b, 0x29, 0x99, 0xd3, 0x15, 0x35, 0xcf, 0xaf, 0x2d, 0x4e, 0xed, -0x9d, 0xd9, 0xef, 0x05, 0xe1, 0xee, 0xa8, 0x11, 0x47, 0xae, 0x6e, 0x5b, 0xe0, 0x2d, 0xfe, 0x31, -0x72, 0xb6, 0xb8, 0x83, 0xb0, 0x56, 0x6f, 0x14, 0x9b, 0xb5, 0xc5, 0x31, 0x57, 0x0a, 0xdb, 0xde, -0x05, 0x18, 0xb2, 0x60, 0x54, 0x88, 0x3f, 0xbc, 0xfa, 0x5a, 0x5f, 0x8f, 0xbc, 0x52, 0xbd, 0x91, -0xb0, 0x46, 0xe3, 0x5f, 0x8f, 0x09, 0x52, 0x70, 0x34, 0xf6, 0x7d, 0x34, 0x15, 0xd7, 0xc8, 0xe2, -0xfe, 0x3b, 0xe6, 0x14, 0xcc, 0x5b, 0x0a, 0x0e, 0xad, 0x1a, 0xe7, 0x89, 0xcb, 0x6b, 0x64, 0xd2, -0x0b, 0xed, 0x73, 0xa7, 0x67, 0x60, 0x6e, 0x60, 0x1b, 0x55, 0x5a, 0xa6, 0x97, 0x75, 0x55, 0x6e, -0x0a, 0x2b, 0xab, 0x12, 0xf3, 0xa5, 0x4a, 0x86, 0x71, 0x2b, 0xaf, 0x8a, 0x57, 0xa4, 0x97, 0x0a, -0x77, 0x92, 0x52, 0xb3, 0x56, 0xf9, 0x37, 0xca, 0x65, 0xa9, 0xde, 0x18, 0x4b, 0xb6, 0xdd, 0xc8, -0x2e, 0x1a, 0xc3, 0xad, 0xc2, 0x5b, 0x4f, 0x11, 0xce, 0x7e, 0x1e, 0x8d, 0xba, 0x0d, 0xda, 0x51, -0x6c, 0x5f, 0x83, 0x76, 0xe4, 0xd3, 0x9d, 0x5a, 0x5c, 0x7b, 0x95, 0xc2, 0x56, 0x67, 0x69, 0x27, -0xf2, 0xc2, 0xda, 0x71, 0x4a, 0xfd, 0xb3, 0x9d, 0x48, 0xb7, 0x73, 0x4b, 0xde, 0xd7, 0x0e, 0xde, -0x1a, 0x02, 0x57, 0x0a, 0x1b, 0x36, 0x96, 0x3d, 0xd6, 0xe2, 0xcb, 0x03, 0x63, 0x4b, 0x7a, 0x65, -0x43, 0xf5, 0xc6, 0x51, 0xf5, 0xae, 0xbf, 0x2a, 0x46, 0x13, 0xab, 0x73, 0x7d, 0x7a, 0x9d, 0x49, -0x53, 0xe4, 0xaa, 0x78, 0x41, 0xbd, 0xce, 0x4f, 0x61, 0x9d, 0xff, 0x3f, 0xf2, 0xfe, 0x3e, 0xb0, -0xa9, 0xeb, 0x48, 0x18, 0x87, 0xe7, 0x4a, 0xb2, 0x10, 0x42, 0x18, 0xc5, 0x11, 0x8e, 0xe3, 0xb8, -0x70, 0x51, 0x85, 0x22, 0x64, 0x61, 0x09, 0x61, 0x1c, 0xc7, 0xf5, 0x3a, 0xd2, 0xb5, 0x6c, 0x64, -0x61, 0x84, 0x2b, 0x3b, 0xc4, 0x9b, 0x65, 0x93, 0x8b, 0xb1, 0x25, 0xdb, 0xf8, 0x43, 0x15, 0x82, -0x52, 0x1e, 0xff, 0xa8, 0x6c, 0x48, 0xea, 0x90, 0x34, 0x76, 0x09, 0xa1, 0x34, 0xcd, 0x66, 0xd9, -0x3e, 0xf9, 0xa5, 0xae, 0x43, 0x13, 0x87, 0x52, 0x4a, 0x59, 0x9a, 0x3a, 0x84, 0xa6, 0x84, 0xa6, -0x59, 0x42, 0x48, 0x36, 0x4f, 0x96, 0xcd, 0x07, 0xa1, 0x29, 0x21, 0x24, 0x21, 0x29, 0xcd, 0x87, -0x6d, 0xac, 0x77, 0xe6, 0xdc, 0xab, 0x0f, 0x9b, 0x8f, 0x90, 0xf6, 0xd9, 0xf7, 0xfd, 0xe3, 0xc5, -0x5c, 0xdd, 0x7b, 0xcf, 0x99, 0x7b, 0x3e, 0xe7, 0xcc, 0x99, 0x39, 0x67, 0xce, 0xcc, 0x92, 0x2b, -0xd7, 0xf8, 0x42, 0x4e, 0x4d, 0xdf, 0x4d, 0xac, 0xd4, 0xe5, 0x1f, 0xc4, 0xe3, 0x37, 0x56, 0x81, -0x25, 0xcc, 0x4d, 0xb6, 0x6c, 0x8b, 0xf1, 0xd3, 0x59, 0xad, 0x3e, 0x65, 0x96, 0x6f, 0x35, 0x93, -0xe3, 0x2f, 0xae, 0x9d, 0xe9, 0xa2, 0xda, 0x8d, 0x0d, 0xb1, 0xb2, 0x57, 0xe3, 0x28, 0x9e, 0x0a, -0x79, 0x73, 0x2a, 0x31, 0x9d, 0x6c, 0x1c, 0xd5, 0xf2, 0x6a, 0x98, 0x5d, 0xb3, 0x74, 0x64, 0xec, -0x51, 0xff, 0xf6, 0x9b, 0x58, 0xec, 0x8d, 0x02, 0x58, 0x22, 0xd9, 0x74, 0x5e, 0x5e, 0x8e, 0x9d, -0xe6, 0xdf, 0xce, 0x7b, 0xa4, 0x2f, 0x51, 0xbe, 0xe4, 0x71, 0xfc, 0x73, 0x77, 0xef, 0x4c, 0xc6, -0xaa, 0x30, 0xb6, 0x15, 0xac, 0xcc, 0x46, 0xd4, 0x8c, 0x30, 0x67, 0x86, 0x77, 0x1e, 0xcf, 0x2f, -0x8f, 0xb7, 0x11, 0x76, 0x50, 0x88, 0xfc, 0x1e, 0xa6, 0x96, 0x4b, 0x7b, 0x8f, 0x12, 0xa6, 0xa7, -0xbd, 0xaf, 0x27, 0x3c, 0xa7, 0xf7, 0x77, 0x06, 0xb0, 0xed, 0xeb, 0x69, 0x35, 0x4f, 0x98, 0x62, -0x9e, 0x1f, 0x6f, 0xbb, 0xfb, 0xe7, 0xf1, 0x30, 0xc6, 0x93, 0x3f, 0xca, 0x82, 0x7c, 0x6f, 0x3c, -0x66, 0x55, 0x61, 0x68, 0xb5, 0x65, 0x9a, 0x59, 0xe0, 0xe7, 0xc7, 0xbb, 0x62, 0x83, 0x10, 0x88, -0xfd, 0x3c, 0x1e, 0xc5, 0x6b, 0x3d, 0x5e, 0xf5, 0xc9, 0x56, 0x39, 0x48, 0xd8, 0x88, 0x10, 0xeb, -0x87, 0x7f, 0x1e, 0xaf, 0x0e, 0x51, 0x69, 0x56, 0x24, 0xe3, 0xee, 0x13, 0x7e, 0x1e, 0xdf, 0x8c, -0x78, 0xa4, 0x8e, 0xf7, 0x0a, 0xf3, 0xe3, 0xf7, 0xe0, 0xa8, 0xdd, 0xf2, 0x0d, 0xe4, 0xd5, 0xe2, -0x14, 0x7e, 0xbf, 0x7d, 0x3e, 0x8e, 0x89, 0xf6, 0xf8, 0x56, 0xff, 0xfe, 0xd1, 0x47, 0x71, 0xe6, -0x69, 0x8f, 0x6f, 0x66, 0x74, 0x62, 0x90, 0xd9, 0xa5, 0x3a, 0x64, 0xac, 0x58, 0x28, 0xb5, 0xc3, -0xcf, 0x80, 0xff, 0xfa, 0xc4, 0x76, 0xc8, 0xc0, 0x78, 0x1a, 0x2b, 0x79, 0x98, 0x6b, 0x1b, 0xcb, -0x15, 0x14, 0x4e, 0x11, 0x14, 0x06, 0x47, 0x3e, 0xe4, 0xc9, 0x54, 0x76, 0x46, 0x03, 0x70, 0x9f, -0x4a, 0x12, 0xf7, 0xd1, 0x98, 0xe3, 0x1b, 0x1a, 0x35, 0x5b, 0xeb, 0xe4, 0xa1, 0x8c, 0xdb, 0xc1, -0x1d, 0xe4, 0x8e, 0x73, 0xa7, 0x2e, 0xfe, 0x83, 0x94, 0x9d, 0x99, 0xcd, 0x58, 0x8b, 0x18, 0xd2, -0x26, 0x4b, 0x9a, 0x25, 0x8f, 0xcc, 0xf4, 0xf7, 0xb8, 0x4a, 0x04, 0x6e, 0xbb, 0x0d, 0x43, 0x70, -0x54, 0x67, 0xdb, 0xf3, 0xc1, 0x94, 0x58, 0xdd, 0xc1, 0xd6, 0x68, 0x5e, 0xd4, 0x81, 0x33, 0xce, -0xf2, 0x7c, 0x7f, 0x9c, 0xac, 0xd8, 0x64, 0x61, 0x5a, 0x5e, 0xb2, 0x29, 0x93, 0x05, 0xb5, 0x9c, -0x0e, 0xb1, 0xa7, 0x01, 0xe0, 0xbc, 0xd0, 0xaf, 0x93, 0x4e, 0x94, 0x3f, 0x41, 0x7e, 0x92, 0x41, -0x2d, 0x49, 0x46, 0xf7, 0x67, 0x92, 0xde, 0x32, 0x86, 0xee, 0xf0, 0x4d, 0x09, 0x15, 0xa7, 0x56, -0x9c, 0xc7, 0x6d, 0x64, 0x51, 0x38, 0xed, 0x9d, 0x4f, 0x7b, 0x36, 0x23, 0xee, 0xcf, 0x4f, 0xeb, -0x8f, 0x17, 0x71, 0x7c, 0x7a, 0xd9, 0xbe, 0xbd, 0xda, 0x07, 0xed, 0x3e, 0x39, 0x65, 0x33, 0xd3, -0x88, 0x2e, 0x65, 0xa5, 0x9d, 0x8f, 0x74, 0xb5, 0x3d, 0xbe, 0x47, 0xa2, 0x43, 0x37, 0xb3, 0x56, -0xe6, 0xad, 0x20, 0x90, 0x6d, 0xe8, 0x79, 0x38, 0xd3, 0xcc, 0x4b, 0xe1, 0x23, 0xca, 0xbe, 0x5f, -0x7c, 0x4a, 0xeb, 0x8a, 0x1b, 0xc9, 0x2b, 0xe8, 0x94, 0x52, 0xec, 0x3b, 0xaa, 0x8d, 0xd3, 0x02, -0x9a, 0xdd, 0xfe, 0xa0, 0x8e, 0x7a, 0x6a, 0x24, 0x77, 0x91, 0x1f, 0x96, 0xd7, 0xf7, 0x51, 0x6f, -0x52, 0xce, 0xde, 0x16, 0xb2, 0xad, 0xf3, 0xc5, 0x31, 0xe4, 0x6b, 0x30, 0x1f, 0xa9, 0x47, 0x89, -0x4f, 0xa8, 0xfd, 0x79, 0xbc, 0x39, 0x9c, 0xfd, 0xd2, 0xcf, 0xe3, 0x5e, 0x1f, 0x3e, 0x05, 0x61, -0xfc, 0x0c, 0x7d, 0xfd, 0xc5, 0x89, 0xfa, 0x3e, 0xb1, 0x9a, 0x5f, 0x4d, 0xf3, 0x1f, 0xc3, 0x87, -0x66, 0xf6, 0xf5, 0x36, 0xfc, 0x3a, 0x5f, 0xb2, 0xde, 0x29, 0xe1, 0xc3, 0x17, 0x7b, 0xd8, 0x3a, -0xab, 0x11, 0x21, 0x79, 0xec, 0x07, 0x13, 0x72, 0x00, 0xc2, 0xdc, 0x2a, 0xa8, 0x14, 0xf5, 0x09, -0x6d, 0x3d, 0x92, 0x37, 0x90, 0x7a, 0xf9, 0xd3, 0xf7, 0x25, 0x44, 0x85, 0x69, 0x1a, 0x8d, 0x98, -0x14, 0x3e, 0x32, 0x2a, 0x02, 0x17, 0x5e, 0x63, 0x38, 0x5d, 0xcf, 0x70, 0x27, 0x42, 0xe3, 0x21, -0x05, 0x41, 0x2d, 0x44, 0xad, 0x83, 0xd7, 0x5b, 0x52, 0x0b, 0x21, 0xae, 0xbe, 0x05, 0xed, 0x0a, -0x88, 0x9f, 0x96, 0x31, 0xf6, 0x43, 0xff, 0xfe, 0xcf, 0x3f, 0x61, 0x18, 0xfb, 0x56, 0x5a, 0x09, -0xb3, 0xe4, 0x96, 0x44, 0x79, 0xc5, 0xd8, 0x0a, 0xfe, 0x79, 0x5e, 0x6c, 0xc9, 0x2a, 0x76, 0x76, -0x2f, 0x4f, 0x3e, 0xa9, 0x8e, 0xad, 0xf9, 0xf9, 0x40, 0x4d, 0xdf, 0x46, 0x05, 0xe6, 0x1d, 0x96, -0xf0, 0x96, 0x2b, 0xa0, 0xd1, 0x9b, 0xca, 0xdd, 0x58, 0xee, 0x9b, 0x07, 0xb3, 0x83, 0x30, 0x76, -0x3f, 0xf2, 0x49, 0xcb, 0x15, 0xae, 0x71, 0x17, 0x4a, 0xae, 0xcb, 0xf9, 0x4a, 0x6a, 0x71, 0x85, -0x9b, 0xfb, 0x2d, 0xe9, 0xcd, 0xc3, 0x72, 0x07, 0xbd, 0xb9, 0xfa, 0xe2, 0x0b, 0x5c, 0xa0, 0x71, -0x12, 0x9c, 0x3b, 0x0c, 0x4c, 0xab, 0x9c, 0x34, 0x34, 0xd5, 0x52, 0x99, 0x8c, 0x95, 0x12, 0x0e, -0x24, 0x30, 0x8b, 0x71, 0x7c, 0x84, 0x5b, 0xdb, 0xfe, 0x1e, 0xdc, 0xe2, 0x2b, 0x25, 0x7c, 0x45, -0xcc, 0xf2, 0x4e, 0xc0, 0xac, 0x12, 0x86, 0x59, 0xea, 0xab, 0xc7, 0x2b, 0x76, 0xa6, 0x5c, 0xc6, -0x2b, 0x6a, 0xbf, 0xcf, 0x8e, 0xf1, 0xe5, 0x97, 0xa1, 0x99, 0x4a, 0x8c, 0x65, 0xfe, 0x63, 0xb0, -0xdd, 0xa2, 0x52, 0xbb, 0xc1, 0x00, 0x51, 0xb9, 0x54, 0xbb, 0xf1, 0x1e, 0x9f, 0x85, 0xda, 0x6d, -0x74, 0xb9, 0xd4, 0x6e, 0x7d, 0x71, 0x6a, 0x37, 0x67, 0x3e, 0xb5, 0x1a, 0xb5, 0x0d, 0x6b, 0x35, -0x7a, 0xc3, 0x16, 0xbd, 0x29, 0xd9, 0x6a, 0xd4, 0x9e, 0x37, 0x51, 0xab, 0x51, 0xbf, 0xae, 0x26, -0xcc, 0xfb, 0x2c, 0xb7, 0xa6, 0x4f, 0x97, 0x0f, 0xd9, 0xa0, 0x0a, 0x66, 0x91, 0x6d, 0x11, 0xd2, -0xdb, 0xa7, 0xf4, 0xb8, 0xdf, 0xd2, 0x57, 0xcc, 0xfe, 0x4f, 0xb2, 0xc7, 0x3f, 0xe3, 0x13, 0xb4, -0x7a, 0xce, 0x92, 0x49, 0x25, 0x56, 0xf9, 0xf7, 0x7f, 0x4a, 0x9e, 0x87, 0x0d, 0x58, 0xe2, 0xea, -0x61, 0xa4, 0x9c, 0x21, 0x18, 0x39, 0x80, 0x2d, 0xe4, 0xb0, 0x2b, 0x65, 0x3a, 0x87, 0x2d, 0x94, -0xbe, 0x36, 0x82, 0x1c, 0x6c, 0x20, 0x65, 0xb5, 0x28, 0x65, 0x07, 0x1f, 0xf9, 0x9e, 0xe9, 0xf1, -0x9d, 0x34, 0xcf, 0x22, 0x45, 0xde, 0x85, 0x33, 0xd7, 0xe6, 0xd4, 0x6c, 0x24, 0xc2, 0x48, 0x33, -0xca, 0xaf, 0xd2, 0xea, 0x6e, 0x09, 0xce, 0x17, 0x74, 0x95, 0xc9, 0x96, 0xa1, 0x99, 0x0d, 0x0b, -0xc6, 0x25, 0xce, 0x0d, 0x39, 0x74, 0x16, 0x5a, 0xdf, 0x0e, 0x5a, 0x10, 0x8b, 0xd4, 0x0e, 0x4e, -0xe1, 0x8a, 0x7f, 0x17, 0x29, 0x64, 0x73, 0x48, 0x83, 0xbf, 0x2d, 0x41, 0x8d, 0xa8, 0x0a, 0xb7, -0x20, 0x5f, 0xd9, 0xac, 0x70, 0x43, 0x2c, 0xe6, 0x46, 0x9c, 0x52, 0xfb, 0x7e, 0x46, 0x6b, 0xaa, -0x38, 0xb3, 0x97, 0x88, 0x5a, 0x53, 0x0b, 0x94, 0x99, 0x7a, 0x45, 0x05, 0xd3, 0xb2, 0x18, 0xc1, -0xb0, 0x32, 0xb2, 0xc5, 0xe1, 0xb0, 0x83, 0x9a, 0xd2, 0x41, 0x6a, 0xbb, 0x13, 0x53, 0x99, 0x52, -0x2b, 0xaf, 0xf7, 0x26, 0xc2, 0x8d, 0xc0, 0xd6, 0x57, 0xbf, 0x6b, 0xe7, 0x90, 0xdb, 0x3a, 0x4e, -0x18, 0x92, 0x38, 0x8b, 0x23, 0xc9, 0xb2, 0x7d, 0xc7, 0xf1, 0xba, 0x0f, 0xaf, 0xcd, 0x78, 0xf5, -0xc2, 0xc8, 0xf6, 0x3d, 0x30, 0xb2, 0x23, 0xfc, 0x3f, 0x28, 0xc7, 0x4e, 0x12, 0x20, 0x2f, 0xb1, -0x2f, 0x3f, 0x59, 0xc4, 0x64, 0xd2, 0xec, 0xfd, 0x9f, 0x60, 0xb9, 0x4e, 0xa3, 0x34, 0x8b, 0xb2, -0xf7, 0xfd, 0x6f, 0xe3, 0xf5, 0x5b, 0x2c, 0x6f, 0x56, 0x32, 0xed, 0x5d, 0x18, 0x52, 0x2d, 0x49, -0xb3, 0xfd, 0x02, 0xf2, 0xfb, 0xd3, 0x48, 0x92, 0x45, 0x99, 0x96, 0xed, 0xd0, 0x77, 0x76, 0x86, -0x93, 0x9a, 0x94, 0xcd, 0x2d, 0x8d, 0x8d, 0x05, 0xab, 0x1b, 0x1a, 0x53, 0xb9, 0x50, 0xc8, 0x44, -0xd9, 0xf4, 0x81, 0x59, 0xa9, 0xe7, 0x1f, 0x3c, 0x91, 0xf6, 0x5c, 0x73, 0x75, 0x72, 0x6a, 0xdf, -0x8a, 0x2b, 0xcb, 0xa9, 0xf7, 0xaf, 0xbf, 0x5a, 0x39, 0xf5, 0xfe, 0xd8, 0x97, 0xcb, 0xa9, 0x7d, -0xcd, 0x7f, 0x9b, 0x9c, 0x4a, 0xeb, 0x44, 0x7d, 0xce, 0x49, 0x5a, 0x8e, 0xdb, 0x70, 0x44, 0x1f, -0xbe, 0x9a, 0xdd, 0xf7, 0xfb, 0x87, 0x2e, 0x2f, 0xc1, 0xde, 0xbf, 0x73, 0xb2, 0x04, 0xdb, 0x17, -0xbd, 0x92, 0x04, 0x7b, 0x7f, 0xef, 0x64, 0x09, 0xf6, 0xfe, 0x1d, 0x17, 0x4b, 0xb0, 0xf7, 0x0f, -0xfc, 0x3d, 0x7e, 0xc5, 0x2e, 0xbf, 0xf7, 0x9d, 0x58, 0x79, 0xc5, 0x91, 0xbf, 0x63, 0xa2, 0x36, -0x27, 0xbe, 0x89, 0x38, 0xbf, 0x35, 0x63, 0x4c, 0x23, 0x3e, 0x37, 0xe2, 0xb3, 0x28, 0xeb, 0x7d, -0x92, 0xd4, 0x6b, 0x25, 0x59, 0x95, 0x3c, 0xb0, 0xe1, 0x7d, 0x27, 0xde, 0x07, 0x30, 0xec, 0x51, -0x7c, 0x7e, 0x14, 0x9f, 0x77, 0x26, 0xd6, 0x5f, 0x51, 0x7a, 0x3e, 0xcd, 0x76, 0xff, 0x3b, 0xa5, -0x13, 0xc5, 0xa6, 0x7c, 0xd8, 0xa6, 0x6b, 0x63, 0x3b, 0xce, 0xc0, 0x69, 0x7c, 0x8f, 0xc3, 0xe6, -0x60, 0xb6, 0x6c, 0x9d, 0x62, 0xe2, 0x69, 0x82, 0xcd, 0x14, 0x87, 0xbd, 0x71, 0x2a, 0x6c, 0x98, -0x78, 0x9e, 0x90, 0x74, 0x1a, 0x43, 0x85, 0x18, 0x7b, 0x5f, 0x30, 0x9b, 0x34, 0x23, 0xd3, 0xe3, -0xc8, 0x1e, 0x53, 0x28, 0x07, 0xe3, 0x76, 0x04, 0x73, 0x89, 0x1f, 0xef, 0x2b, 0x63, 0xab, 0xdb, -0x27, 0x30, 0x7c, 0x47, 0x50, 0x53, 0x73, 0x96, 0xf6, 0xb5, 0xe1, 0xf8, 0x75, 0xb4, 0xee, 0x17, -0x15, 0xf2, 0x61, 0xed, 0x8d, 0x4b, 0x60, 0x03, 0xd9, 0x78, 0xd8, 0x5e, 0x0f, 0x1b, 0xf1, 0x2b, -0x63, 0xb0, 0x83, 0x61, 0xc5, 0xe2, 0x74, 0xac, 0x20, 0xeb, 0x22, 0xa1, 0xe5, 0x15, 0x48, 0x43, -0xb1, 0x77, 0x72, 0x52, 0x16, 0xd4, 0x70, 0xbe, 0xdf, 0x21, 0xe9, 0xab, 0xc3, 0xc8, 0x83, 0xbb, -0xc0, 0x14, 0x88, 0x91, 0xb6, 0xba, 0x7d, 0x09, 0xd8, 0x7e, 0x70, 0xb8, 0x3c, 0x95, 0xf7, 0x49, -0xfc, 0xbe, 0x5f, 0x92, 0xa7, 0x90, 0x5f, 0x30, 0xa6, 0x28, 0xaa, 0x80, 0xf9, 0xb1, 0x3c, 0x59, -0xb9, 0xc2, 0x20, 0x96, 0x48, 0x25, 0xc6, 0xbc, 0xe9, 0xbb, 0x57, 0xf1, 0xbb, 0x87, 0x53, 0x3a, -0xe6, 0xee, 0xf7, 0x61, 0xa7, 0xb1, 0x2d, 0x6d, 0x37, 0x54, 0x9b, 0xa6, 0xdb, 0xce, 0xc9, 0x7e, -0x2c, 0x72, 0x24, 0xdc, 0xa6, 0x3d, 0xaa, 0x09, 0x5a, 0xf2, 0x7a, 0x53, 0x33, 0xec, 0x14, 0x4d, -0xbf, 0x7c, 0x1f, 0x72, 0x82, 0x13, 0xac, 0xd6, 0x1a, 0x7d, 0x61, 0xc3, 0x45, 0x9a, 0x82, 0xaf, -0x4d, 0x4c, 0x59, 0xd2, 0xdf, 0x60, 0x67, 0x45, 0x59, 0x0f, 0x9a, 0x5b, 0x65, 0x5e, 0xd3, 0x9a, -0xe2, 0x35, 0x69, 0xe6, 0x96, 0xf4, 0x06, 0xa2, 0x1c, 0xf2, 0xbf, 0x0a, 0xda, 0x73, 0x10, 0x3c, -0x0f, 0x3c, 0xbf, 0x81, 0xa3, 0x73, 0x72, 0xc8, 0x89, 0xe4, 0x10, 0xdf, 0x10, 0x85, 0x42, 0xce, -0xda, 0x06, 0x9b, 0xff, 0xeb, 0x60, 0xe1, 0x22, 0x0b, 0x04, 0xdc, 0x0b, 0x24, 0xef, 0x6f, 0x39, -0xba, 0x66, 0x88, 0x91, 0xbe, 0x9d, 0xd0, 0x8c, 0xf3, 0xa1, 0x02, 0xa9, 0xff, 0x77, 0xd7, 0x41, -0x91, 0xa2, 0x2b, 0x56, 0xa9, 0x7e, 0x61, 0x93, 0xb5, 0x72, 0xc9, 0x07, 0xf1, 0x9d, 0x5d, 0x53, -0x0e, 0x7c, 0xbf, 0xa9, 0xd2, 0xa7, 0x6c, 0xe3, 0x75, 0x6e, 0x68, 0x08, 0xd1, 0x99, 0xd5, 0x1c, -0x84, 0xe1, 0xba, 0x76, 0xbe, 0x7a, 0xb7, 0x2d, 0xe3, 0xcf, 0x4f, 0x98, 0xd5, 0x95, 0xe5, 0xbf, -0x6f, 0x06, 0xad, 0x68, 0x64, 0xe9, 0x21, 0x4c, 0x50, 0xa3, 0x6d, 0x06, 0x15, 0x86, 0xe8, 0xd3, -0xe1, 0xbe, 0x8f, 0x30, 0xd2, 0x6c, 0x8a, 0xbd, 0x9f, 0x71, 0x93, 0x00, 0x6a, 0x82, 0x2f, 0xb5, -0x80, 0xb6, 0x8c, 0x53, 0x2f, 0x8e, 0xbf, 0x53, 0x54, 0xca, 0x81, 0x6e, 0x31, 0x28, 0x56, 0xdd, -0x81, 0x69, 0xcc, 0x0f, 0xd5, 0xe3, 0x6f, 0x41, 0x28, 0x80, 0xbf, 0xf6, 0x50, 0x35, 0xfe, 0xfe, -0x43, 0xa8, 0x12, 0x7f, 0xcb, 0x42, 0x2e, 0xfc, 0xbd, 0x25, 0x54, 0x82, 0xbf, 0x33, 0x42, 0x85, -0xf8, 0x5b, 0x1a, 0x2a, 0xc0, 0xdf, 0xf2, 0x90, 0x05, 0x7f, 0x7d, 0x21, 0x23, 0xfe, 0xde, 0x1e, -0xca, 0xc3, 0xdf, 0x7f, 0x0a, 0x65, 0xe3, 0xef, 0x8a, 0x90, 0x1e, 0x7f, 0xff, 0x39, 0xa4, 0xc5, -0xdf, 0x3b, 0x6e, 0x7b, 0xc6, 0xdb, 0xfd, 0x9c, 0xfb, 0xee, 0xca, 0x9b, 0xca, 0xa5, 0xba, 0x5f, -0xd7, 0x4c, 0x74, 0x5a, 0x7e, 0xca, 0x84, 0x69, 0xf2, 0xd3, 0x35, 0xc8, 0x63, 0x48, 0x4f, 0x59, -0x30, 0x1d, 0x31, 0x25, 0x13, 0xaf, 0x2c, 0x9f, 0xa2, 0xdd, 0x16, 0x99, 0xb2, 0xfb, 0xfb, 0x8d, -0x66, 0x8a, 0x5b, 0x40, 0x27, 0x7e, 0xc8, 0x92, 0x58, 0xce, 0x35, 0xf4, 0x65, 0x16, 0x0b, 0x13, -0xa4, 0xef, 0x30, 0x64, 0x1a, 0x64, 0xea, 0x04, 0x58, 0x1f, 0x54, 0xac, 0xe7, 0x58, 0x1d, 0x6d, -0xd0, 0x7b, 0x00, 0xdb, 0x37, 0x44, 0xde, 0x45, 0xb2, 0xcd, 0xbd, 0x81, 0x7b, 0x86, 0xee, 0xe9, -0x80, 0xf1, 0xc6, 0x28, 0xf1, 0x3d, 0x82, 0xf0, 0x80, 0xcf, 0x13, 0xf2, 0xf9, 0xda, 0x60, 0x4b, -0xd0, 0x73, 0x33, 0xb5, 0xcf, 0x16, 0xf7, 0x59, 0x10, 0x9f, 0x3a, 0x8b, 0x73, 0xb3, 0xd5, 0xd4, -0x06, 0x22, 0x9d, 0xda, 0x43, 0x2a, 0xd3, 0x9a, 0x58, 0x27, 0xb0, 0x4f, 0xb7, 0xba, 0xd8, 0x4a, -0x09, 0xe2, 0x86, 0xf5, 0x4e, 0x53, 0xc0, 0xb7, 0x35, 0xf8, 0x86, 0x98, 0xd2, 0x46, 0xb5, 0x3a, -0x14, 0xd2, 0xc9, 0xf0, 0xc4, 0x1e, 0xbe, 0xd9, 0x0e, 0x79, 0xc5, 0xca, 0x84, 0xc6, 0xc2, 0x68, -0x04, 0x29, 0x57, 0x2f, 0xed, 0x82, 0x62, 0xc9, 0x36, 0xbf, 0x74, 0x70, 0xc1, 0x26, 0xc4, 0x06, -0xe2, 0x2f, 0x7b, 0xeb, 0xfb, 0x70, 0x0e, 0x8f, 0x31, 0xbd, 0x9e, 0x5e, 0xa4, 0x6c, 0x2a, 0x9e, -0x63, 0x92, 0x13, 0x9c, 0x8c, 0x45, 0xbf, 0x7b, 0xa8, 0x3b, 0xd6, 0x23, 0x9d, 0x66, 0xe9, 0xc8, -0x33, 0xc1, 0xbb, 0x5b, 0xd6, 0x4d, 0x19, 0xde, 0x84, 0xdf, 0xdf, 0xf7, 0xd2, 0x41, 0x1f, 0xd7, -0xa6, 0xe2, 0xfa, 0x45, 0x35, 0xad, 0x1b, 0x6c, 0x22, 0x6d, 0x21, 0xf3, 0x53, 0x28, 0x39, 0x86, -0x66, 0x25, 0x30, 0x1d, 0x65, 0x65, 0x1c, 0xe1, 0x61, 0x48, 0x96, 0x9a, 0xa3, 0x52, 0xdb, 0x59, -0x1c, 0xd9, 0x14, 0xf7, 0xe4, 0x21, 0x07, 0x73, 0x56, 0xda, 0x75, 0x2b, 0x65, 0xbb, 0x6e, 0x55, -0xef, 0x81, 0x19, 0xf9, 0x0d, 0x33, 0x9d, 0x99, 0x7f, 0x20, 0x2a, 0x1a, 0x99, 0xcf, 0xa5, 0x0a, -0x7f, 0x7f, 0x11, 0x24, 0x76, 0xd7, 0x12, 0x3b, 0x6a, 0x88, 0xfb, 0xe5, 0x21, 0xb5, 0xc9, 0x63, -0xc9, 0x0a, 0xbe, 0xfe, 0xeb, 0xf7, 0xa1, 0x20, 0xc8, 0xfa, 0x52, 0x61, 0x89, 0x8f, 0xc3, 0xb5, -0xd5, 0x1f, 0xac, 0x28, 0x45, 0xce, 0xfc, 0x9f, 0x65, 0x1b, 0xb3, 0x45, 0x13, 0x35, 0x74, 0xe4, -0x15, 0xb9, 0x69, 0xa1, 0x70, 0x03, 0xe9, 0x06, 0x4c, 0x45, 0x1e, 0x3c, 0x17, 0x25, 0xb2, 0x4f, -0xf0, 0x39, 0x23, 0x88, 0xc2, 0x99, 0xe8, 0xc3, 0xa7, 0xe9, 0x64, 0x8b, 0xb4, 0x29, 0x2c, 0xeb, -0xea, 0xf8, 0x13, 0x3a, 0x3a, 0xd7, 0x26, 0x74, 0x74, 0x04, 0x69, 0xc5, 0x2e, 0xa2, 0x27, 0xab, -0x4b, 0x0b, 0x68, 0xe5, 0x35, 0xb9, 0x5e, 0xd7, 0x67, 0x04, 0xdd, 0xd7, 0xdd, 0x4c, 0x47, 0x27, -0x0f, 0xa1, 0x72, 0x16, 0x74, 0x40, 0x2f, 0xce, 0x86, 0xc0, 0x65, 0x26, 0xfa, 0xe1, 0x8b, 0x33, -0xee, 0x0f, 0x81, 0xbc, 0xff, 0xa5, 0x49, 0x97, 0x81, 0xd5, 0xd0, 0x93, 0xb0, 0x1e, 0x8c, 0x10, -0x87, 0xd3, 0x63, 0xe3, 0xaa, 0x5a, 0x8c, 0x4d, 0xc6, 0xed, 0x17, 0x5d, 0xba, 0x0e, 0xc2, 0x15, -0xe4, 0xe5, 0xf7, 0x38, 0x0a, 0xa0, 0xa7, 0xd6, 0xf5, 0x0f, 0x2e, 0xe8, 0xc1, 0xb7, 0x5d, 0x7c, -0x07, 0xf4, 0x93, 0xdf, 0x2a, 0xbe, 0x00, 0x1e, 0xae, 0x8b, 0xe5, 0x83, 0xb1, 0x39, 0x3e, 0x66, -0x9f, 0xce, 0xbc, 0x30, 0xe5, 0xfa, 0xfb, 0x53, 0x78, 0x52, 0xd3, 0x27, 0x6e, 0xe4, 0xe7, 0x81, -0x29, 0xc2, 0xd3, 0xce, 0x77, 0x98, 0xa7, 0x73, 0xf5, 0x28, 0x59, 0xdd, 0x97, 0x9e, 0xeb, 0x85, -0x7e, 0xf1, 0xf6, 0x64, 0x9e, 0xc5, 0xd4, 0xba, 0xf5, 0x7d, 0x98, 0x5b, 0xef, 0x10, 0x62, 0x73, -0x90, 0x97, 0x74, 0x5f, 0xc0, 0x82, 0xe5, 0xb8, 0x16, 0x6b, 0x63, 0x4e, 0xa3, 0x6e, 0x5a, 0xc4, -0x6d, 0x9d, 0x9d, 0xd9, 0x5b, 0x1a, 0x75, 0xd5, 0xf4, 0x09, 0x42, 0x32, 0x15, 0x40, 0x59, 0x4f, -0x23, 0x69, 0xca, 0x08, 0x82, 0xa4, 0x13, 0x13, 0xd4, 0xfb, 0x04, 0x94, 0x3e, 0xd2, 0xb4, 0x66, -0xaa, 0xdf, 0x6c, 0x93, 0xad, 0xf7, 0x22, 0xb7, 0x50, 0x95, 0xf8, 0xf6, 0xf3, 0xbd, 0x52, 0x09, -0x34, 0xe4, 0x97, 0xfa, 0xda, 0x50, 0x19, 0xf3, 0x22, 0xa9, 0x09, 0x16, 0x99, 0xfd, 0x13, 0xe9, -0x6a, 0x2a, 0x1d, 0x66, 0xb3, 0x76, 0x36, 0x8e, 0x3a, 0xf3, 0x53, 0x84, 0x1f, 0x59, 0x29, 0xfc, -0x10, 0xd5, 0xa4, 0xab, 0x26, 0x2a, 0x1e, 0x3c, 0x92, 0x4c, 0x3d, 0x58, 0xdf, 0x97, 0x98, 0xb5, -0x25, 0xfe, 0xf4, 0x5f, 0x2c, 0x30, 0xf2, 0xf0, 0x5b, 0x78, 0xbd, 0x86, 0xd7, 0x09, 0x18, 0xf9, -0xb7, 0x7a, 0x18, 0xf9, 0x49, 0x23, 0x5e, 0xc7, 0x60, 0xe4, 0xff, 0x3d, 0x0d, 0x23, 0x8f, 0xc5, -0xf0, 0x8e, 0xfc, 0xe1, 0x63, 0x08, 0xf3, 0xd3, 0xbc, 0xff, 0x41, 0xbe, 0x75, 0x55, 0x67, 0xc7, -0x9a, 0xce, 0xb6, 0xa6, 0xcb, 0xef, 0xc0, 0x4c, 0x04, 0x90, 0xb8, 0xd6, 0x1f, 0x0d, 0xc0, 0xc8, -0xb9, 0x62, 0xe4, 0x5a, 0x55, 0xf8, 0xbc, 0x03, 0xaf, 0x6f, 0xe3, 0x75, 0x38, 0x99, 0x32, 0x42, -0xec, 0x38, 0x2b, 0x71, 0xad, 0xff, 0xb2, 0x1d, 0xe7, 0x64, 0x25, 0x71, 0xab, 0x7a, 0x7c, 0x7b, -0xe8, 0x80, 0x12, 0x49, 0x20, 0xde, 0x7f, 0xab, 0x84, 0xf9, 0x74, 0x3f, 0xa8, 0x84, 0x02, 0xba, -0xff, 0x4e, 0x09, 0xf9, 0x74, 0x3f, 0xac, 0x04, 0x1b, 0xdd, 0xff, 0xa0, 0x44, 0x02, 0x89, 0xf7, -0x17, 0x15, 0x70, 0x23, 0xdd, 0x8f, 0xca, 0xf7, 0x63, 0x4a, 0x44, 0x09, 0xbc, 0xbf, 0xa2, 0x24, -0x67, 0xde, 0x23, 0x0f, 0xbd, 0xa6, 0x90, 0xee, 0xaf, 0x2b, 0xe1, 0x5a, 0xce, 0xc0, 0xcd, 0xe4, -0xb2, 0xb9, 0xeb, 0xb8, 0x1c, 0xee, 0x7a, 0x2e, 0x0e, 0xb9, 0x8a, 0x1b, 0xb8, 0x3c, 0xf8, 0x1a, -0x22, 0xd1, 0x6c, 0xa4, 0x34, 0x71, 0xe0, 0x39, 0xfa, 0x9d, 0xc3, 0x19, 0xd9, 0xfd, 0xeb, 0xec, -0xd7, 0xc4, 0x7e, 0xbf, 0xec, 0x6f, 0xae, 0x3e, 0xfd, 0xcd, 0xce, 0x39, 0xd8, 0x7d, 0x01, 0xe7, -0xc4, 0xaf, 0xe7, 0x61, 0x9c, 0x55, 0xef, 0x74, 0x34, 0x3b, 0x1d, 0x6d, 0x65, 0x0b, 0x9a, 0xcb, -0x16, 0xb4, 0x95, 0xdd, 0xd4, 0x5c, 0x76, 0x53, 0x5b, 0x51, 0x07, 0x1f, 0x5e, 0xc0, 0x87, 0x1d, -0x7c, 0x98, 0xff, 0x96, 0x83, 0xff, 0xd6, 0xc4, 0x96, 0xaf, 0x81, 0x1b, 0x52, 0xbe, 0xd5, 0xbf, -0xe4, 0xdf, 0x2c, 0xb8, 0x76, 0xa2, 0xcf, 0xf2, 0x34, 0x8e, 0xfe, 0xea, 0x61, 0x15, 0xec, 0xf7, -0x6b, 0x71, 0xf9, 0xdf, 0xd5, 0xa2, 0xc8, 0xa4, 0xbe, 0x9f, 0x84, 0x2b, 0x55, 0xb4, 0x47, 0xe6, -0x95, 0x77, 0xc5, 0xe6, 0x36, 0xda, 0xe7, 0xae, 0xe2, 0x51, 0x34, 0x89, 0x74, 0x76, 0x46, 0x57, -0xb5, 0xad, 0x5c, 0xb3, 0x06, 0x7e, 0xbc, 0xe0, 0x1b, 0x0b, 0xbe, 0x31, 0xb7, 0x11, 0xff, 0xf3, -0x11, 0xf8, 0x31, 0x7b, 0x08, 0x40, 0x38, 0xd2, 0x19, 0x0e, 0x49, 0xf1, 0x6b, 0xbe, 0xb3, 0xa6, -0x45, 0x7a, 0x2a, 0xef, 0xec, 0x28, 0x6f, 0x6b, 0x09, 0x17, 0x44, 0x9a, 0x3a, 0x1a, 0x9b, 0x36, -0xac, 0xeb, 0x5c, 0x7b, 0xc9, 0xa0, 0x1f, 0x3b, 0xf8, 0x75, 0x13, 0xb7, 0xf0, 0xe6, 0xcc, 0x99, -0xc3, 0xdf, 0xea, 0x5f, 0xe2, 0x5f, 0x76, 0x9b, 0x9f, 0x2f, 0x5f, 0xb6, 0x74, 0xa9, 0xdb, 0xef, -0xe1, 0x03, 0x15, 0xe5, 0x15, 0x55, 0xcb, 0x2b, 0x3c, 0xbc, 0xf0, 0x8f, 0x18, 0xe6, 0xaf, 0x5d, -0x56, 0x5d, 0xc1, 0xd7, 0xb9, 0x6b, 0x97, 0xf0, 0x08, 0xac, 0x65, 0x5f, 0xd4, 0x79, 0xab, 0x6a, -0xf9, 0x5a, 0xef, 0xb2, 0x5b, 0xab, 0x3d, 0xbc, 0xbf, 0x02, 0x47, 0x01, 0xef, 0x75, 0xd7, 0xd4, -0x54, 0xf8, 0x25, 0x88, 0x94, 0x5c, 0xb4, 0xf3, 0xdd, 0xd4, 0xf3, 0x23, 0x3b, 0xd2, 0x9e, 0xdb, -0x52, 0xcf, 0xff, 0xda, 0x9c, 0xe6, 0xd7, 0x39, 0x71, 0xcd, 0x91, 0xc3, 0x6e, 0xfc, 0x72, 0x99, -0xea, 0xe1, 0xfb, 0xae, 0x2c, 0x53, 0xfd, 0xc8, 0x71, 0xb5, 0x32, 0xd5, 0x8f, 0x8a, 0xbf, 0x5c, -0xa6, 0x7a, 0x78, 0xc7, 0xff, 0xdc, 0xde, 0xdf, 0x8f, 0xae, 0x70, 0x4e, 0xee, 0x47, 0x17, 0x9d, -0x93, 0x7b, 0x78, 0xe8, 0x4a, 0x92, 0xd3, 0xc3, 0x8f, 0x4e, 0x96, 0x9c, 0x7e, 0x74, 0x89, 0x73, -0x72, 0x3f, 0xfa, 0xbb, 0xcf, 0xc9, 0xe1, 0x7c, 0x74, 0x7e, 0x82, 0x87, 0xe4, 0xcf, 0x53, 0x6f, -0x13, 0x25, 0x1d, 0x28, 0x4b, 0x48, 0x3a, 0xbc, 0x1d, 0x8a, 0x99, 0xad, 0x2c, 0xdd, 0xbc, 0x25, -0x60, 0x98, 0xe7, 0x86, 0x1c, 0xb2, 0x76, 0x28, 0x9f, 0x76, 0x35, 0x24, 0x6d, 0xae, 0xb6, 0x21, -0xa1, 0x22, 0x2b, 0xc2, 0xd8, 0xca, 0x0d, 0xda, 0xac, 0x52, 0x50, 0xd2, 0xc9, 0x60, 0x51, 0x87, -0xb3, 0xe0, 0x63, 0xa2, 0x16, 0x7f, 0x07, 0x45, 0xb2, 0xb4, 0xfd, 0xc4, 0x03, 0xcf, 0x93, 0x04, -0x62, 0x5b, 0x0d, 0xe7, 0x69, 0x55, 0x98, 0xc9, 0x40, 0xfe, 0x25, 0x38, 0x9f, 0xf0, 0x4b, 0x53, -0x27, 0x8d, 0x98, 0xfd, 0xd6, 0x0c, 0x30, 0x2d, 0x7e, 0x1f, 0x8c, 0x28, 0x87, 0x58, 0x90, 0x73, -0xcb, 0x61, 0x67, 0x2c, 0x0c, 0x7c, 0x6b, 0x7c, 0x8c, 0x47, 0x0e, 0xbc, 0xfc, 0x23, 0x30, 0x25, -0xf8, 0xb6, 0xb4, 0x2f, 0x9f, 0x0b, 0x73, 0xa2, 0x5a, 0x92, 0x42, 0xc8, 0xa2, 0x9e, 0x24, 0x49, -0x48, 0xf6, 0x88, 0x39, 0xe2, 0xdf, 0x3c, 0x61, 0xe5, 0x04, 0x7f, 0xd4, 0xe7, 0x91, 0x57, 0xa9, -0x0b, 0x6b, 0x26, 0x84, 0x7d, 0x1e, 0xcc, 0x9a, 0xd8, 0x4a, 0xc8, 0x69, 0x38, 0x2e, 0x73, 0x62, -0xf0, 0x34, 0xde, 0xcf, 0x61, 0xd8, 0x59, 0x7c, 0x3e, 0x8b, 0xcf, 0xa7, 0x69, 0xa5, 0x7f, 0x82, -0xdc, 0xb9, 0x62, 0xc2, 0xdb, 0xfe, 0xd4, 0x1b, 0x7e, 0xb5, 0x1b, 0xaf, 0xbd, 0x92, 0x8e, 0xea, -0x9e, 0x42, 0xcc, 0xf9, 0x27, 0xd2, 0xf3, 0x1f, 0xea, 0xf1, 0x59, 0xb2, 0xf5, 0x30, 0x72, 0x6a, -0x0c, 0x9f, 0x07, 0xa5, 0xe7, 0xf7, 0x28, 0xfc, 0x09, 0x86, 0xed, 0x83, 0xf0, 0x93, 0x10, 0xfd, -0x3e, 0x16, 0xd2, 0xe2, 0xef, 0x20, 0xdb, 0x53, 0xd3, 0x17, 0x94, 0xfe, 0x00, 0x69, 0x61, 0x4a, -0x97, 0x43, 0xde, 0xb7, 0xd5, 0x91, 0x5c, 0xf7, 0xe3, 0x6d, 0xa0, 0x97, 0xf7, 0x6d, 0x0d, 0x61, -0x2d, 0xca, 0x77, 0x39, 0xf2, 0xbe, 0x6d, 0x1e, 0xb5, 0xb5, 0x4b, 0xc5, 0x4e, 0x2b, 0xd3, 0xbe, -0xad, 0xc9, 0x4d, 0x36, 0x5f, 0xbd, 0xb4, 0x5f, 0xcb, 0xf6, 0x6d, 0x6d, 0xf4, 0xf5, 0xfb, 0x8f, -0x82, 0x43, 0xde, 0xb7, 0x2d, 0xa4, 0xb3, 0x53, 0x64, 0xab, 0xc6, 0xfd, 0x51, 0x4a, 0xc7, 0x89, -0xed, 0xdb, 0xde, 0x3f, 0xd1, 0xf2, 0xab, 0x27, 0x26, 0xed, 0xdd, 0x4a, 0xde, 0x3f, 0x13, 0x16, -0x21, 0x51, 0xd6, 0xcc, 0xa9, 0x8d, 0x45, 0x2e, 0xec, 0x8e, 0x35, 0xf9, 0x59, 0x2f, 0xab, 0xc1, -0xb0, 0xe4, 0xec, 0xc4, 0xde, 0x37, 0xad, 0xbe, 0x44, 0x6f, 0x1b, 0x2e, 0xd5, 0xdb, 0x88, 0x4f, -0x39, 0xb6, 0x36, 0x86, 0x49, 0x1b, 0x99, 0x9d, 0x36, 0xd9, 0x67, 0x28, 0xd1, 0x8b, 0x09, 0xbb, -0xc5, 0xc8, 0x93, 0xc2, 0xdd, 0x0d, 0x59, 0xf8, 0xa4, 0xc0, 0xa7, 0x63, 0x78, 0x27, 0xcb, 0x2d, -0x8f, 0x89, 0x65, 0x8c, 0x6f, 0x8d, 0x4a, 0x5c, 0x29, 0x6c, 0x97, 0x77, 0x8f, 0x01, 0xfa, 0x27, -0x71, 0xa3, 0xea, 0x14, 0x37, 0xfa, 0xa3, 0xd7, 0x24, 0x6e, 0x54, 0x00, 0xb1, 0x83, 0x71, 0x7c, -0x6c, 0x64, 0xd8, 0xe7, 0xb1, 0xb5, 0x75, 0x76, 0x66, 0x13, 0xc7, 0x1a, 0x69, 0xa7, 0x5a, 0xf0, -0xca, 0xa1, 0x7e, 0xfb, 0x29, 0x59, 0xaf, 0xe4, 0x99, 0xae, 0x76, 0x51, 0x78, 0x36, 0xcb, 0xc1, -0x29, 0x6a, 0x22, 0xb3, 0x77, 0xd3, 0x93, 0xc5, 0xc4, 0x38, 0x26, 0x33, 0xc2, 0xdb, 0x3a, 0xe0, -0x73, 0x92, 0xf1, 0x79, 0x97, 0xb1, 0x3c, 0xcc, 0x13, 0x57, 0x8e, 0x1c, 0xa3, 0x2a, 0x7c, 0x41, -0xf6, 0xc1, 0x37, 0x36, 0x93, 0x76, 0xa9, 0x25, 0x1e, 0xcf, 0x38, 0x41, 0x2b, 0x3a, 0xb5, 0x4f, -0xbd, 0x35, 0xb5, 0x4f, 0x9d, 0xa4, 0x66, 0x25, 0xa6, 0xaa, 0xc5, 0x1f, 0xc2, 0x0a, 0x3e, 0x75, -0xae, 0xee, 0x05, 0xe4, 0xf5, 0xe8, 0xcc, 0x82, 0x51, 0xe2, 0xe8, 0x2e, 0xc7, 0xef, 0x25, 0xce, -0x20, 0xa4, 0x7d, 0xf9, 0x1c, 0x3b, 0x85, 0x00, 0x89, 0xdd, 0xec, 0xc9, 0x36, 0xd6, 0xa5, 0x13, -0xad, 0x16, 0x8d, 0xa5, 0xca, 0x3c, 0x0f, 0x74, 0x66, 0x6f, 0x57, 0xce, 0x89, 0x4d, 0x05, 0xa5, -0xb4, 0x32, 0x8b, 0x63, 0xe8, 0x0e, 0x7d, 0x3e, 0xa8, 0xd8, 0x1e, 0x8d, 0xd6, 0x97, 0x0f, 0x53, -0xda, 0x1c, 0x18, 0xe6, 0xc5, 0x77, 0x5d, 0xc8, 0x8c, 0xbf, 0xd3, 0x42, 0x3c, 0xfe, 0x4e, 0x0f, -0x91, 0x65, 0xef, 0x29, 0x21, 0x03, 0xfe, 0x6a, 0x42, 0x99, 0x3a, 0xb2, 0x90, 0xab, 0xc1, 0x5f, -0x35, 0xca, 0x0c, 0x79, 0xa6, 0x3a, 0x2b, 0x8e, 0x4b, 0x9e, 0x3c, 0xa1, 0xd7, 0x30, 0x7b, 0x64, -0x9f, 0x47, 0x0b, 0x8e, 0x6f, 0xe1, 0x85, 0xd4, 0x19, 0x3a, 0x9c, 0x2f, 0x96, 0xd2, 0x88, 0xb5, -0xce, 0x47, 0xaa, 0xe5, 0x62, 0xcf, 0x2b, 0xec, 0x64, 0x4f, 0xdb, 0x26, 0x66, 0xee, 0x1f, 0xa4, -0x15, 0x8a, 0x30, 0xd7, 0x3d, 0xc8, 0x59, 0x44, 0x3d, 0x62, 0xaf, 0x8d, 0xe2, 0x2f, 0x04, 0xe9, -0x34, 0x6d, 0xf0, 0x64, 0x5a, 0x2a, 0xcf, 0xc9, 0xa7, 0xb9, 0x76, 0xf1, 0xe5, 0x73, 0x7c, 0x6c, -0xad, 0x24, 0x1b, 0xa5, 0x26, 0x35, 0x59, 0x35, 0xb3, 0xd6, 0x99, 0xe6, 0xc3, 0xf9, 0x25, 0x1f, -0x4c, 0xc4, 0xd7, 0xf0, 0xf8, 0x30, 0xa6, 0x39, 0xd7, 0xc5, 0x59, 0x68, 0x1e, 0xd0, 0x90, 0x27, -0x65, 0x93, 0x8c, 0xdb, 0xb6, 0x34, 0x0c, 0xb6, 0x25, 0x31, 0x98, 0x49, 0x5c, 0x17, 0x36, 0x4e, -0xc0, 0xe4, 0x72, 0x13, 0xca, 0xbe, 0x0f, 0x3c, 0x9f, 0x6c, 0xfd, 0xd7, 0x99, 0x5d, 0x2c, 0xf2, -0xd6, 0x90, 0xb2, 0xc1, 0xb7, 0x95, 0x4f, 0xf5, 0x4e, 0x2c, 0xed, 0xf9, 0x3e, 0x73, 0xad, 0x64, -0x11, 0x60, 0xfc, 0x11, 0x5e, 0x95, 0x3a, 0xc5, 0x09, 0x25, 0x17, 0xef, 0xae, 0xca, 0xd6, 0x01, -0xc6, 0xc2, 0xfa, 0xcb, 0xd8, 0x5e, 0x7d, 0x21, 0xb5, 0x8f, 0x4c, 0x1a, 0xd5, 0x74, 0xc2, 0x37, -0x5c, 0x30, 0x19, 0x96, 0x9d, 0xdc, 0xdd, 0x18, 0x36, 0x5e, 0xec, 0x23, 0x1d, 0xc3, 0x6b, 0x04, -0x0b, 0x64, 0x5e, 0x43, 0xa3, 0x6f, 0x46, 0xf9, 0x69, 0x30, 0xcc, 0xa9, 0x62, 0x3b, 0xaf, 0x39, -0xf8, 0x9c, 0x83, 0xcf, 0xe4, 0x6f, 0x5e, 0x33, 0xb7, 0x9a, 0x9d, 0xf3, 0xcd, 0x44, 0x09, 0xbd, -0x00, 0xb2, 0x68, 0xdd, 0x0a, 0xa5, 0x80, 0x2c, 0xb2, 0xc3, 0x7b, 0x5d, 0x17, 0x38, 0x25, 0x6b, -0xa5, 0x3f, 0xfe, 0xdf, 0xa0, 0x35, 0x3d, 0x09, 0x86, 0xc4, 0x89, 0x01, 0xec, 0x87, 0x02, 0x1c, -0x51, 0x3a, 0xff, 0xfe, 0x0b, 0xcc, 0x77, 0x17, 0x9f, 0x76, 0xea, 0xe4, 0x82, 0x98, 0x84, 0xd1, -0x33, 0xab, 0xec, 0x0d, 0xcc, 0x8b, 0x51, 0x22, 0x2c, 0x9b, 0x9d, 0x63, 0xf0, 0xa7, 0xd9, 0xc5, -0x05, 0x79, 0x64, 0x74, 0x82, 0xc1, 0xdc, 0x0a, 0x99, 0x49, 0x48, 0xa3, 0x3d, 0x1f, 0x34, 0x55, -0x23, 0x17, 0x8c, 0xfe, 0x6d, 0x69, 0xb9, 0xe6, 0x63, 0xae, 0xdb, 0xc8, 0xba, 0xcf, 0x25, 0xf3, -0xb3, 0x42, 0x26, 0xd3, 0x1c, 0x97, 0xcf, 0x48, 0xb0, 0xfc, 0x64, 0xcf, 0x3b, 0x89, 0xb1, 0x62, -0xd7, 0xca, 0x63, 0xfb, 0x55, 0xef, 0x70, 0x42, 0x9b, 0xd3, 0xe1, 0x34, 0x6b, 0x4c, 0x7e, 0x1c, -0x99, 0xfb, 0xd3, 0x47, 0x26, 0xce, 0x3c, 0xbb, 0x79, 0x2b, 0xec, 0x9d, 0xe0, 0x39, 0x7d, 0xaf, -0x6f, 0x53, 0xa8, 0x44, 0xb2, 0x7c, 0x43, 0xf4, 0xc5, 0x04, 0x21, 0x5b, 0x64, 0xa2, 0x3f, 0xf6, -0xdd, 0xa1, 0x5c, 0xbe, 0xdc, 0xe8, 0xe2, 0x15, 0x29, 0x59, 0x73, 0xae, 0x00, 0x7b, 0x0b, 0xbb, -0x80, 0x23, 0xa9, 0x6c, 0xf2, 0x08, 0x96, 0xfc, 0xae, 0x33, 0x9f, 0x43, 0x17, 0x95, 0x00, 0xe7, -0x93, 0xdd, 0x21, 0x3a, 0xdb, 0xb0, 0x37, 0x10, 0x9b, 0x64, 0x91, 0x46, 0xd2, 0x8d, 0xde, 0xcd, -0xce, 0xb3, 0xef, 0x4d, 0x93, 0x6a, 0xc9, 0xe6, 0x46, 0x7a, 0x0e, 0x8a, 0x84, 0xcf, 0x20, 0xde, -0x49, 0x67, 0x70, 0x2b, 0x28, 0x87, 0xd4, 0x39, 0xea, 0x17, 0x50, 0x82, 0x3c, 0x9d, 0xe6, 0xa7, -0x53, 0x9b, 0x16, 0xf7, 0x9c, 0xe4, 0xad, 0x8a, 0xe9, 0xed, 0x2a, 0xb0, 0x7d, 0x32, 0xc9, 0x0e, -0x17, 0x7e, 0x2d, 0xa4, 0xb5, 0x50, 0x79, 0xda, 0x89, 0x63, 0x21, 0xfd, 0x4b, 0x97, 0x64, 0xaf, -0xa3, 0x57, 0xb6, 0x45, 0x34, 0x60, 0xb1, 0xc3, 0x90, 0xdd, 0xc3, 0xbc, 0xa9, 0xec, 0x12, 0x14, -0x22, 0xa8, 0x2a, 0xf5, 0xd7, 0xea, 0x20, 0xfe, 0xe3, 0xa0, 0x16, 0xf9, 0x0d, 0xce, 0xaa, 0xaa, -0xbd, 0x4b, 0x34, 0x22, 0xbf, 0xb2, 0xb9, 0x0d, 0x14, 0x51, 0xa4, 0x31, 0x37, 0x04, 0x41, 0xd1, -0xa6, 0xcb, 0x87, 0x7f, 0xa2, 0x5d, 0x64, 0x45, 0x03, 0xc2, 0x28, 0xac, 0xaa, 0x5b, 0xef, 0x22, -0x8b, 0x21, 0x3f, 0x7a, 0x57, 0x9f, 0xe5, 0x8d, 0x95, 0xba, 0xf6, 0xdf, 0xdf, 0x6e, 0xc4, 0xde, -0xb4, 0xd2, 0x1a, 0x00, 0xf5, 0x46, 0xc9, 0x71, 0xd9, 0x12, 0x93, 0xee, 0xbf, 0x5e, 0x34, 0x58, -0xe3, 0x23, 0x74, 0xce, 0x4b, 0x54, 0x08, 0xae, 0x5f, 0xa2, 0x3c, 0xf8, 0x50, 0x59, 0x48, 0x5b, -0xb3, 0xc5, 0xe7, 0x0a, 0x1d, 0x12, 0x41, 0xa1, 0x33, 0x2d, 0xa5, 0x9d, 0x42, 0x05, 0x61, 0xc7, -0x1c, 0xe4, 0xe7, 0x3a, 0xa1, 0x3b, 0xe5, 0xbd, 0x42, 0x50, 0x0a, 0x76, 0x58, 0x58, 0x73, 0xf0, -0x81, 0xe7, 0xc9, 0xb6, 0x92, 0x30, 0x45, 0xe0, 0xba, 0x38, 0xe4, 0x7a, 0x0a, 0x4a, 0x05, 0xdf, -0x5d, 0x9d, 0x58, 0x18, 0xfd, 0x4c, 0x2c, 0x5d, 0x5d, 0x43, 0x0d, 0xfe, 0xd6, 0xe2, 0xdc, 0xd4, -0x8b, 0xf7, 0xca, 0x06, 0x2b, 0xfe, 0xba, 0x1a, 0x37, 0x90, 0x1f, 0x84, 0x26, 0xe0, 0x8a, 0xf0, -0x7e, 0xf3, 0x2a, 0x80, 0x23, 0x78, 0xff, 0x06, 0x79, 0xd1, 0xc2, 0x7b, 0x19, 0xd9, 0x5d, 0x16, -0xc9, 0x26, 0x19, 0x80, 0x17, 0x61, 0xc8, 0xaf, 0xeb, 0xd2, 0x55, 0x44, 0x71, 0x6b, 0x30, 0x46, -0x85, 0x73, 0x1f, 0xc0, 0xda, 0x86, 0x3c, 0xfc, 0x8d, 0x36, 0x3a, 0xf1, 0xf7, 0xf6, 0x90, 0x0d, -0x7f, 0xdb, 0x19, 0x35, 0xbe, 0x0d, 0x67, 0xc3, 0x93, 0x22, 0xc5, 0xad, 0x47, 0x01, 0xf8, 0x35, -0xbc, 0x7f, 0x67, 0x15, 0x51, 0xe3, 0xff, 0xc5, 0xa8, 0xf1, 0xff, 0x43, 0x56, 0xcf, 0xd4, 0x10, -0x1f, 0x96, 0x3c, 0xb0, 0x98, 0xe0, 0x78, 0x8c, 0x6c, 0xbe, 0x3d, 0xe4, 0x36, 0x2c, 0xb4, 0x80, -0xaf, 0x92, 0x68, 0xc6, 0x1e, 0x0e, 0xbf, 0xdb, 0xb9, 0x67, 0x4a, 0x83, 0xce, 0x37, 0x85, 0x66, -0x56, 0x9f, 0x02, 0x7f, 0xfb, 0x8f, 0x4a, 0x70, 0x2e, 0xfd, 0x42, 0x0d, 0x94, 0xba, 0xf8, 0xe9, -0xfd, 0x5b, 0x02, 0x30, 0xdb, 0x05, 0x0b, 0xb3, 0x39, 0x31, 0xe2, 0xd0, 0x84, 0x3a, 0x02, 0x53, -0x1e, 0x78, 0x5e, 0xa8, 0xfc, 0xc1, 0x61, 0xf1, 0x8e, 0xc2, 0xa9, 0x41, 0xa3, 0x81, 0x0b, 0x28, -0x74, 0x0a, 0xd0, 0x37, 0xd4, 0x75, 0x41, 0x1e, 0x9d, 0xa4, 0x7e, 0xf4, 0xa5, 0xe7, 0xdc, 0xe7, -0x9a, 0xc7, 0xaf, 0x71, 0xc7, 0x5f, 0x15, 0x2c, 0xf1, 0xff, 0xcc, 0x42, 0xbc, 0x33, 0x70, 0x2c, -0xfc, 0xa0, 0xfb, 0x9c, 0xe5, 0x95, 0x3c, 0xbd, 0x41, 0x7d, 0x5c, 0x7d, 0x5c, 0x41, 0x97, 0xbe, -0x87, 0xb5, 0x80, 0xea, 0x76, 0x85, 0xa8, 0x56, 0x2b, 0xe2, 0x47, 0x8f, 0xcf, 0xd4, 0xf7, 0x38, -0xb1, 0x75, 0xbb, 0x38, 0xd6, 0xc6, 0x2e, 0x51, 0x95, 0xa5, 0x08, 0x73, 0x81, 0xef, 0xd7, 0xde, -0x85, 0x3d, 0x04, 0xe3, 0x3b, 0x10, 0x47, 0x0a, 0x0a, 0x33, 0x75, 0x8a, 0x78, 0x3c, 0x14, 0xd4, -0x63, 0x6f, 0x78, 0x63, 0x4b, 0x3e, 0x01, 0x60, 0x3c, 0xae, 0x06, 0x1e, 0x9a, 0x2d, 0xc0, 0x23, -0x98, 0x4f, 0x31, 0xf2, 0x45, 0x3b, 0xc9, 0x52, 0x7f, 0x28, 0x9b, 0x6f, 0x93, 0xe8, 0xba, 0xa9, -0x1a, 0x29, 0xfb, 0x43, 0x09, 0xca, 0x8e, 0x30, 0x1b, 0x90, 0x2f, 0xc8, 0x8e, 0x40, 0x96, 0x9e, -0x2c, 0xca, 0xac, 0x87, 0x1c, 0x0b, 0x70, 0xf6, 0xcd, 0x39, 0xc5, 0x01, 0xa8, 0xeb, 0xdd, 0x0b, -0xc1, 0x77, 0x11, 0x3b, 0x94, 0xe6, 0xa5, 0x38, 0xf3, 0x15, 0x12, 0x2e, 0xe2, 0x7c, 0xb7, 0xae, -0x81, 0xda, 0x7b, 0x6a, 0x68, 0x79, 0x83, 0x81, 0xcd, 0x7c, 0xc0, 0xed, 0x6f, 0xf0, 0xf8, 0xc8, -0x72, 0xd5, 0x13, 0x08, 0xb5, 0x8f, 0xcd, 0x8c, 0x95, 0x0d, 0x3e, 0xb1, 0x14, 0x31, 0x77, 0x73, -0x48, 0x6c, 0x60, 0xde, 0x79, 0x43, 0xd5, 0x4d, 0x1e, 0x09, 0x63, 0xb9, 0xed, 0x62, 0x25, 0xc6, -0xf4, 0x86, 0x02, 0xf8, 0xfb, 0x7d, 0xf6, 0x7b, 0x17, 0x86, 0xc6, 0xc4, 0xd2, 0x28, 0xe9, 0x53, -0x84, 0xa3, 0x19, 0xf8, 0xdb, 0x1a, 0x55, 0xe3, 0x6f, 0x63, 0x74, 0x0a, 0xcd, 0xc2, 0x51, 0x5a, -0x39, 0xab, 0x8f, 0x4e, 0x25, 0x1b, 0x55, 0xd1, 0x69, 0xf8, 0x5b, 0x1d, 0xd5, 0xe2, 0x6f, 0x65, -0x14, 0x47, 0x08, 0xe7, 0x8a, 0xea, 0xf0, 0xb7, 0x24, 0x3a, 0x9d, 0x4a, 0x18, 0xcd, 0xc4, 0xdf, -0x82, 0xe8, 0x0c, 0x91, 0xac, 0x50, 0x2d, 0xa9, 0xdd, 0x1c, 0xb8, 0x37, 0x14, 0xd6, 0x63, 0x7d, -0x68, 0x0c, 0x85, 0xc4, 0x28, 0xb7, 0x67, 0x73, 0x1b, 0x79, 0xe0, 0xb8, 0x21, 0x54, 0x87, 0xe5, -0xad, 0x61, 0xa5, 0xf7, 0xb1, 0x79, 0xdb, 0xc3, 0x6a, 0x44, 0xf8, 0xa5, 0x0d, 0x15, 0xb3, 0x19, -0xde, 0xc9, 0xea, 0x4a, 0xf8, 0x95, 0xc9, 0xf0, 0x6b, 0x06, 0x9b, 0xed, 0x6f, 0xa0, 0xd9, 0x1e, -0x6b, 0x65, 0x60, 0x35, 0xc8, 0xa4, 0x1a, 0xa4, 0x79, 0xe3, 0xe0, 0xb0, 0x67, 0x7a, 0xf9, 0x69, -0xfd, 0xdd, 0x74, 0xaa, 0x7e, 0x9d, 0x22, 0xba, 0x90, 0xf5, 0x86, 0x16, 0x1e, 0xba, 0x52, 0x0f, -0xc8, 0x56, 0x6f, 0x58, 0x8f, 0xcd, 0x2e, 0x87, 0x7f, 0xbd, 0x9a, 0x5e, 0x63, 0xdf, 0x4c, 0xbd, -0x72, 0xba, 0x48, 0x4b, 0x76, 0xed, 0xb8, 0xf7, 0xb5, 0x27, 0xa1, 0xd0, 0xb7, 0x39, 0x08, 0xa3, -0xfb, 0xb0, 0x5c, 0x4f, 0xc2, 0x2e, 0xf9, 0xe4, 0xf4, 0x7a, 0xff, 0x5a, 0xa4, 0x2f, 0x8a, 0xa8, -0x32, 0x70, 0xaf, 0xa0, 0x14, 0x21, 0x5e, 0x6f, 0x9c, 0x86, 0xe3, 0xb7, 0x58, 0x84, 0xf1, 0x23, -0x89, 0xd3, 0x36, 0xe4, 0xfd, 0x85, 0xe4, 0xb9, 0xa9, 0x6a, 0x31, 0x3b, 0x0c, 0xfa, 0x5c, 0xe4, -0x10, 0x81, 0x24, 0xba, 0x1f, 0xff, 0xd6, 0xff, 0x40, 0x6d, 0x0f, 0xa3, 0x22, 0x3d, 0xc1, 0x77, -0x19, 0xa7, 0xfe, 0x1c, 0xf9, 0xdd, 0xd3, 0xa9, 0xfc, 0x0c, 0x5a, 0xf2, 0xdc, 0x5b, 0x4a, 0xb6, -0x0c, 0x7c, 0x96, 0x2a, 0xd9, 0x83, 0x42, 0x46, 0x08, 0x14, 0x8e, 0x86, 0xdc, 0x84, 0xef, 0x27, -0x65, 0xa0, 0x01, 0xb8, 0x43, 0xb4, 0xa2, 0xcc, 0x21, 0xe5, 0x52, 0xef, 0x12, 0xcd, 0x2c, 0x06, -0x71, 0x49, 0xf1, 0x62, 0x13, 0x28, 0x9a, 0xd9, 0x9b, 0x26, 0x04, 0x19, 0x77, 0xb0, 0x27, 0x1d, -0xc2, 0xf4, 0x8a, 0x90, 0x71, 0x2a, 0x3c, 0x25, 0x25, 0xf7, 0xd8, 0x24, 0x1b, 0x46, 0xeb, 0x98, -0xbf, 0x55, 0x2e, 0x02, 0xc4, 0x79, 0x10, 0x2f, 0x6a, 0x75, 0x19, 0xfd, 0x29, 0x49, 0x88, 0xd9, -0xf8, 0x01, 0xae, 0x86, 0x7c, 0x65, 0x72, 0x3e, 0x89, 0x4f, 0xe2, 0x04, 0x23, 0xad, 0xdd, 0xe6, -0x50, 0x9b, 0x19, 0xab, 0x13, 0xed, 0x25, 0x5b, 0xe4, 0xb7, 0x98, 0xda, 0xc1, 0x69, 0x13, 0x50, -0x4e, 0x2d, 0x00, 0xbe, 0xea, 0x2f, 0x1a, 0xf0, 0xae, 0x57, 0xba, 0xe8, 0xa4, 0xa2, 0x44, 0xfd, -0xe6, 0x2d, 0x05, 0xda, 0xe7, 0x28, 0x2c, 0x42, 0xc9, 0xf1, 0xe6, 0x72, 0xe4, 0xaa, 0xf0, 0xb9, -0xd0, 0x02, 0x86, 0x9b, 0x05, 0x70, 0x38, 0xdb, 0x41, 0xa3, 0x9f, 0x0f, 0x45, 0xde, 0x58, 0xd6, -0x7c, 0x28, 0xf6, 0x76, 0x3b, 0xdc, 0xee, 0x73, 0x00, 0x15, 0x64, 0xcf, 0xfa, 0x54, 0x69, 0xb9, -0x3d, 0xf3, 0x81, 0xc3, 0xf6, 0xa9, 0xe4, 0x37, 0xba, 0x18, 0x6a, 0x3d, 0x37, 0x7b, 0xc0, 0x8a, -0xf0, 0x5a, 0x84, 0xbf, 0x89, 0xc1, 0xdf, 0x9c, 0x80, 0x2f, 0x15, 0x12, 0x90, 0xb5, 0xae, 0x9b, -0x5d, 0x60, 0x23, 0x0d, 0x02, 0xcd, 0x7c, 0x94, 0x6b, 0x72, 0x83, 0x9a, 0x5c, 0x4a, 0xfd, 0x2e, -0x1c, 0x91, 0x15, 0x37, 0x57, 0x80, 0x33, 0x11, 0x9a, 0x45, 0x69, 0x74, 0x63, 0xa8, 0xfb, 0x66, -0x37, 0x14, 0x06, 0x3c, 0xcf, 0x3f, 0x5b, 0xeb, 0x79, 0xad, 0x02, 0x73, 0x28, 0x0a, 0xb8, 0x9e, -0x39, 0x58, 0xeb, 0x3a, 0xea, 0xc6, 0x74, 0x8a, 0x85, 0x36, 0x30, 0xe3, 0x65, 0xc1, 0xab, 0x0c, -0x2f, 0x17, 0x5f, 0x2d, 0xb8, 0x16, 0xb8, 0xa0, 0xa1, 0xc6, 0x55, 0xd7, 0xab, 0x73, 0x29, 0xd6, -0x07, 0x3f, 0xb9, 0x19, 0x39, 0x67, 0x0e, 0x84, 0xc7, 0x39, 0x8b, 0xf0, 0xb8, 0xd2, 0xe6, 0x7e, -0x5f, 0xe9, 0xb8, 0xd1, 0xab, 0x2c, 0xc6, 0xe7, 0xc2, 0xf2, 0xf7, 0x95, 0x85, 0x37, 0x56, 0x29, -0x1d, 0x90, 0x0f, 0x28, 0x72, 0x4b, 0xd6, 0xd8, 0xb1, 0x3f, 0x72, 0x0a, 0xad, 0x50, 0xb6, 0xad, -0x05, 0x54, 0xc8, 0xe3, 0xab, 0x39, 0x53, 0x30, 0x53, 0x2c, 0x73, 0xe6, 0x83, 0x35, 0xe0, 0x3e, -0xee, 0x0e, 0xb8, 0x68, 0x56, 0xf1, 0x09, 0xed, 0x1f, 0xde, 0x24, 0x40, 0x19, 0x5e, 0x66, 0x86, -0xb3, 0x6a, 0x30, 0xdf, 0xe2, 0x02, 0x2b, 0xbf, 0x5a, 0xc6, 0x58, 0xf2, 0xfe, 0x6d, 0x4e, 0xf4, -0x80, 0x78, 0xbb, 0x43, 0x51, 0xe9, 0x8a, 0xcc, 0x38, 0x29, 0x1e, 0x72, 0x89, 0xcb, 0x29, 0xed, -0xe3, 0x2d, 0x4c, 0xf7, 0xc2, 0x2a, 0xa5, 0x1f, 0x2a, 0x2d, 0x82, 0xca, 0x72, 0xc1, 0x2d, 0xaa, -0x8e, 0x97, 0x07, 0xdc, 0x43, 0x42, 0xfb, 0xe7, 0x13, 0xd2, 0x9e, 0x82, 0x69, 0xbb, 0x2f, 0x9b, -0xb6, 0x7a, 0x48, 0x68, 0x53, 0x14, 0x42, 0xe2, 0x0b, 0x9c, 0x5b, 0xeb, 0x31, 0x65, 0x57, 0x3f, -0xe6, 0xb0, 0xc8, 0x05, 0x2e, 0x44, 0x9e, 0x59, 0x98, 0x4b, 0x06, 0xe6, 0x22, 0xd0, 0x68, 0x26, -0xeb, 0xb5, 0x42, 0x2b, 0xb6, 0x56, 0x2b, 0xb8, 0xe4, 0x11, 0x6a, 0x9e, 0xdd, 0x85, 0x7c, 0xb9, -0x75, 0x36, 0xed, 0xd1, 0xe4, 0xaf, 0x73, 0xbc, 0xda, 0x67, 0x2f, 0x9f, 0xc0, 0x2d, 0xa7, 0xf2, -0x0a, 0xd2, 0x57, 0x22, 0x28, 0x5f, 0x70, 0x62, 0x0e, 0xc7, 0x28, 0x07, 0x37, 0xb8, 0x30, 0x37, -0xdb, 0x90, 0xbb, 0x0d, 0x94, 0x7b, 0xe5, 0x7c, 0x3c, 0x0e, 0x77, 0xff, 0x30, 0x8e, 0x74, 0x07, -0xe6, 0x6f, 0xa1, 0x32, 0xa4, 0xe5, 0x33, 0x27, 0x91, 0x4f, 0xd8, 0xc1, 0x2c, 0x71, 0x5d, 0x3a, -0x1f, 0x50, 0xb6, 0xd2, 0x77, 0x78, 0x6f, 0xd0, 0xcf, 0x63, 0x92, 0x8a, 0x15, 0x47, 0x50, 0x5e, -0x07, 0xd1, 0xab, 0x6b, 0x42, 0x42, 0x87, 0x16, 0xef, 0xfa, 0x20, 0x28, 0x3b, 0x44, 0xa2, 0x63, -0x73, 0x11, 0xbb, 0x89, 0x6b, 0x98, 0x87, 0x21, 0x2b, 0x90, 0x42, 0xee, 0xc2, 0x67, 0x5b, 0xc8, -0xd3, 0x4e, 0xf4, 0x6e, 0x7e, 0x68, 0x16, 0xfe, 0x16, 0x60, 0x8c, 0x20, 0xce, 0x02, 0x2b, 0xe8, -0xb1, 0x97, 0x41, 0x49, 0xa7, 0x5b, 0x3f, 0x62, 0x4f, 0x36, 0x0c, 0xe3, 0xd9, 0x93, 0x11, 0xc3, -0xde, 0x64, 0x4f, 0x39, 0x18, 0xe6, 0x62, 0x4f, 0x99, 0x18, 0xf6, 0x5b, 0xf6, 0x44, 0xde, 0xd1, -0x80, 0x77, 0xbf, 0xf4, 0x8c, 0xb1, 0x0d, 0xd4, 0x2f, 0x1f, 0xce, 0x5a, 0xd0, 0xab, 0xd4, 0x71, -0xb0, 0xa0, 0x01, 0xe0, 0x53, 0x9a, 0xf9, 0x8e, 0xf7, 0x38, 0xfe, 0x97, 0x45, 0xed, 0x1f, 0x8d, -0x29, 0xa0, 0x11, 0xa2, 0xf0, 0x2e, 0x74, 0xc1, 0x66, 0xfc, 0x7d, 0x17, 0xee, 0x83, 0x6d, 0xec, -0x7e, 0xe9, 0xbf, 0x87, 0xe1, 0x51, 0xd8, 0xc5, 0x9e, 0xf6, 0xc0, 0x01, 0xfc, 0x3d, 0x34, 0xe9, -0xef, 0x5d, 0x78, 0x11, 0x5e, 0x9d, 0xf4, 0xf7, 0x2e, 0xbc, 0xc5, 0xfc, 0x02, 0x29, 0x85, 0x7c, -0x4e, 0x85, 0xd7, 0xf5, 0x62, 0x04, 0xb1, 0x57, 0x81, 0xf7, 0x56, 0xbc, 0xab, 0xf0, 0xde, 0x80, -0x77, 0x0e, 0xef, 0xb7, 0xe3, 0x5d, 0x83, 0xf7, 0x00, 0xde, 0xf5, 0x78, 0xf7, 0x29, 0xf2, 0xe3, -0x17, 0xf0, 0x2e, 0xe0, 0x7d, 0x14, 0xef, 0x25, 0x78, 0x1f, 0xc7, 0xbb, 0x13, 0xef, 0x9f, 0xe1, -0xdd, 0x8a, 0xf7, 0x8f, 0xf0, 0x6e, 0x54, 0x73, 0xf1, 0x93, 0xd7, 0xb9, 0x39, 0xa5, 0x98, 0x23, -0xe5, 0x24, 0xea, 0x31, 0xe4, 0x35, 0x0c, 0x51, 0x89, 0x6a, 0x16, 0xa2, 0x0a, 0x00, 0xf9, 0x27, -0x1b, 0xb2, 0x41, 0x46, 0x13, 0x8c, 0xbf, 0x8b, 0x6d, 0x7e, 0xea, 0x92, 0xed, 0x93, 0xdd, 0x90, -0x9b, 0xcd, 0xbd, 0x3b, 0x8d, 0x3c, 0xf0, 0x41, 0xdc, 0xfd, 0x97, 0x62, 0x58, 0x37, 0xe5, 0xe0, -0x26, 0xb3, 0xe2, 0x9d, 0xc7, 0xbf, 0x67, 0xe1, 0xe6, 0x62, 0x1a, 0x2a, 0x01, 0xa2, 0x1c, 0x4b, -0x65, 0x18, 0xd3, 0xd8, 0x79, 0x99, 0x34, 0x66, 0x5d, 0x3a, 0x0d, 0xa3, 0xb2, 0x92, 0x7b, 0x76, -0x72, 0x3a, 0x07, 0x68, 0x46, 0x95, 0x71, 0xc6, 0xd8, 0x61, 0xc4, 0x5f, 0xbe, 0xad, 0x01, 0x7f, -0x73, 0x43, 0x25, 0x0c, 0x6b, 0xae, 0x6d, 0x07, 0xae, 0x58, 0xe4, 0xe5, 0x19, 0xbb, 0x80, 0x66, -0x6c, 0x30, 0x85, 0x96, 0xb7, 0xd3, 0x6c, 0x69, 0x67, 0x1c, 0x95, 0x13, 0xc3, 0x71, 0xe6, 0x01, -0x75, 0x98, 0xe3, 0x63, 0xc8, 0x41, 0x00, 0x47, 0x76, 0x54, 0xd4, 0x34, 0xa6, 0xbc, 0xc3, 0xe4, -0x1f, 0x49, 0x7e, 0x2b, 0xa3, 0x37, 0xd2, 0x68, 0x27, 0xef, 0xb8, 0x04, 0x1f, 0xe1, 0xf8, 0x6e, -0x66, 0x99, 0x16, 0xe3, 0x85, 0x7e, 0x7c, 0x3a, 0x4a, 0x4f, 0xeb, 0x38, 0x7e, 0x13, 0x3e, 0x1f, -0x62, 0x9a, 0x65, 0xfc, 0xe2, 0x4f, 0x34, 0x60, 0x59, 0x0d, 0xc6, 0xd2, 0xd5, 0xe0, 0x2c, 0xce, -0x87, 0x02, 0x47, 0x1b, 0x52, 0x56, 0x1b, 0xd2, 0xd4, 0x58, 0xff, 0xb0, 0x44, 0x4f, 0x9d, 0x1e, -0xfb, 0xd4, 0xfe, 0x17, 0xed, 0x1a, 0xa2, 0xa7, 0x85, 0x50, 0x2b, 0xe0, 0x98, 0xb6, 0x96, 0xac, -0x46, 0xba, 0x9c, 0x0f, 0x0e, 0x84, 0xd6, 0x22, 0xf4, 0xcd, 0x04, 0xed, 0x2c, 0x47, 0xb8, 0x3f, -0x4a, 0x70, 0xb5, 0xa4, 0xf5, 0x65, 0xab, 0xf5, 0x3b, 0x15, 0x01, 0xf7, 0xb3, 0x87, 0x4e, 0x3c, -0x73, 0x93, 0x1f, 0x8a, 0x6a, 0x97, 0x3a, 0x01, 0xdf, 0x9e, 0x7d, 0xfd, 0x99, 0x9b, 0x96, 0x42, -0xf1, 0x9e, 0xd5, 0x50, 0xd6, 0xa6, 0x22, 0x1a, 0x31, 0xb4, 0x1a, 0x69, 0x82, 0x0a, 0xe1, 0x5d, -0x37, 0x61, 0x18, 0x98, 0xf1, 0x17, 0x47, 0xa9, 0x68, 0xc4, 0x79, 0x64, 0x16, 0xb3, 0x6a, 0x94, -0x63, 0x13, 0xf8, 0x0e, 0x69, 0x0e, 0x31, 0x2d, 0x49, 0xcd, 0x22, 0xb2, 0x8d, 0xb8, 0x52, 0xc9, -0x2f, 0x3a, 0xce, 0x85, 0xe7, 0x51, 0x6a, 0x23, 0x0f, 0x94, 0x3c, 0xf2, 0xf7, 0x26, 0x6b, 0x27, -0x58, 0x1c, 0x06, 0xa2, 0x91, 0xbb, 0x5d, 0x6d, 0x1e, 0x99, 0x6a, 0xe9, 0x1d, 0x6e, 0xbb, 0xc6, -0xe1, 0x92, 0x2c, 0x68, 0xd1, 0xd9, 0x36, 0xa4, 0x90, 0x86, 0x09, 0x54, 0x4c, 0x9f, 0x48, 0xdd, -0xb1, 0x1a, 0xac, 0x08, 0x5b, 0x27, 0xc1, 0x96, 0x79, 0x44, 0xaf, 0xcf, 0xd5, 0xe6, 0x95, 0x29, -0xab, 0xde, 0x3b, 0x4c, 0x29, 0x21, 0xed, 0x82, 0xaf, 0x9e, 0x12, 0xce, 0x4a, 0x31, 0xc7, 0x4c, -0x2c, 0x99, 0x0d, 0x4b, 0xa6, 0x2a, 0xe9, 0x16, 0xcb, 0x30, 0xe5, 0x12, 0x0f, 0xf1, 0xba, 0x37, -0xc8, 0x74, 0x49, 0xcf, 0xe8, 0x9f, 0x81, 0xd1, 0xa5, 0x99, 0xe1, 0x1b, 0x18, 0x5d, 0xca, 0xbe, -0x74, 0xea, 0xc2, 0xad, 0xd5, 0x6f, 0x96, 0xd2, 0x5a, 0xa6, 0x2e, 0xa9, 0x15, 0xa1, 0x97, 0x34, -0x33, 0x7e, 0x7c, 0x18, 0x65, 0xbb, 0x52, 0x4c, 0xce, 0x15, 0x01, 0x79, 0x45, 0xf5, 0x76, 0xc9, -0xa3, 0x1f, 0xad, 0x54, 0xed, 0x32, 0x81, 0x06, 0x25, 0x6f, 0xdd, 0x1c, 0x66, 0x77, 0xa1, 0x1a, -0x12, 0x72, 0x95, 0x91, 0x6c, 0x95, 0x21, 0x3f, 0x62, 0x24, 0xef, 0x02, 0xb2, 0x5f, 0x0e, 0xc9, -0xfa, 0xec, 0xf8, 0x8b, 0x92, 0x14, 0x35, 0x79, 0x75, 0x67, 0x7c, 0x30, 0x75, 0x82, 0x21, 0x2d, -0xf4, 0x11, 0xd9, 0x8b, 0x9d, 0x82, 0x79, 0x80, 0xc6, 0x94, 0x8c, 0xe4, 0xe1, 0x43, 0xf6, 0x3c, -0x8f, 0x1c, 0x93, 0xcd, 0x6a, 0x07, 0x07, 0x59, 0x2e, 0x42, 0xd8, 0x28, 0xa6, 0x5c, 0x2a, 0x95, -0x9f, 0x7c, 0x45, 0x9b, 0x24, 0x2f, 0x5b, 0x79, 0x58, 0x4f, 0x5e, 0x4a, 0x6d, 0xec, 0x48, 0xd2, -0x9b, 0xab, 0x82, 0xd2, 0x22, 0x3f, 0x40, 0x59, 0x8a, 0x75, 0x28, 0x4c, 0xc3, 0x0d, 0x1a, 0x25, -0x59, 0xe0, 0xf1, 0x3c, 0xdb, 0xaa, 0x46, 0x7e, 0x56, 0xa5, 0x57, 0x44, 0x39, 0xe9, 0x0c, 0x2e, -0x69, 0xc4, 0xe1, 0x2f, 0x93, 0x42, 0xc8, 0xbe, 0xa3, 0x9c, 0x52, 0x8f, 0x54, 0x0b, 0x4a, 0x89, -0x42, 0xb0, 0x34, 0x06, 0x9e, 0x4e, 0x4e, 0x82, 0xde, 0xc2, 0xa9, 0xec, 0xf4, 0xab, 0xb4, 0x03, -0xf9, 0x6d, 0xe6, 0xae, 0xb7, 0x2b, 0x64, 0xcf, 0x49, 0x5b, 0x8c, 0xe5, 0xbc, 0x22, 0x32, 0x85, -0x3c, 0xce, 0x11, 0x8f, 0x90, 0x94, 0x26, 0x5f, 0x90, 0x35, 0x46, 0x1a, 0xb1, 0xb4, 0xcd, 0x98, -0x47, 0x9b, 0x39, 0x1f, 0x79, 0x96, 0x72, 0x4b, 0x33, 0x38, 0xad, 0x38, 0xd2, 0xd8, 0x0a, 0x3c, -0xbf, 0x14, 0x39, 0x1b, 0x53, 0x01, 0x68, 0x74, 0xf3, 0x60, 0x21, 0xa8, 0x1a, 0x40, 0x4f, 0x9e, -0xd5, 0x91, 0x1e, 0xa4, 0xf4, 0xa4, 0xf5, 0xef, 0x42, 0xb3, 0xfe, 0xb8, 0xfe, 0x5d, 0xc5, 0x63, -0xaa, 0x41, 0xb5, 0x63, 0x8a, 0x9e, 0x3b, 0xa9, 0xf1, 0xe0, 0xfb, 0x71, 0xcd, 0x7d, 0x9a, 0x3d, -0xfa, 0xe3, 0x53, 0x81, 0x9e, 0xf5, 0x3b, 0xa6, 0x09, 0x53, 0xf4, 0x53, 0xde, 0x52, 0x76, 0x28, -0xb5, 0x53, 0xa2, 0xea, 0x47, 0xa7, 0x5a, 0x32, 0xca, 0xb4, 0x77, 0x4c, 0x7d, 0x54, 0x97, 0xa3, -0x7b, 0x5d, 0x79, 0x6c, 0xfa, 0x23, 0x99, 0xa2, 0xfe, 0x78, 0x46, 0x0c, 0xe1, 0xba, 0x66, 0x98, -0x66, 0xd4, 0xb3, 0x2f, 0x12, 0x7f, 0xb9, 0xf4, 0x3b, 0x63, 0x0b, 0x97, 0x23, 0xf3, 0xc8, 0xce, -0x09, 0x98, 0xe4, 0x4c, 0x72, 0xba, 0x64, 0x91, 0x57, 0xe1, 0xdf, 0x3f, 0xfe, 0xae, 0x03, 0xe9, -0xc0, 0x33, 0xef, 0x43, 0xd9, 0x51, 0xa4, 0x09, 0x48, 0x47, 0x0a, 0x11, 0x57, 0x0b, 0x8f, 0x35, -0x43, 0x2e, 0x8d, 0xf8, 0xdf, 0xbf, 0x8f, 0xf3, 0x6c, 0x39, 0x8e, 0xc2, 0x61, 0xef, 0x33, 0x4c, -0x47, 0x40, 0x3f, 0xbb, 0x1d, 0x31, 0xb6, 0xd9, 0x58, 0x8d, 0xdc, 0x74, 0x73, 0x98, 0x63, 0x61, -0x87, 0x58, 0x4e, 0x19, 0x50, 0x76, 0x0b, 0x61, 0xb0, 0x30, 0x21, 0xbf, 0xb2, 0x49, 0x9c, 0x75, -0xd9, 0xa5, 0x63, 0x91, 0xca, 0xf5, 0x5e, 0x65, 0x79, 0x8b, 0xcc, 0xf3, 0x41, 0x65, 0x99, 0xc9, -0xac, 0x38, 0x87, 0xb1, 0xec, 0x65, 0x34, 0xe2, 0x02, 0xbd, 0xfd, 0xc3, 0xd6, 0xf2, 0xa7, 0x9e, -0x6d, 0x54, 0x58, 0xbd, 0x58, 0x97, 0x82, 0xc9, 0x75, 0x29, 0xc1, 0xba, 0xfc, 0x81, 0xea, 0x52, -0x91, 0x5e, 0x17, 0x63, 0x35, 0xef, 0xe1, 0xa7, 0x4f, 0xa8, 0x83, 0xf3, 0x96, 0xa5, 0x50, 0x74, -0xe9, 0x12, 0x6c, 0xff, 0xfe, 0x6b, 0xdf, 0xf7, 0x6d, 0x0a, 0xde, 0x27, 0xd7, 0xe4, 0x32, 0xe5, -0x14, 0x61, 0x86, 0x1a, 0x31, 0xd5, 0x06, 0xd7, 0x0b, 0x4f, 0x42, 0x00, 0xaf, 0xe5, 0x5f, 0x52, -0x2f, 0x85, 0x1e, 0xe7, 0x51, 0xb2, 0x7b, 0x4e, 0x36, 0x74, 0x2b, 0x46, 0xc6, 0xfa, 0xfd, 0x5b, -0xed, 0x0a, 0xac, 0x53, 0xb1, 0x5d, 0xe3, 0x5c, 0x0d, 0x45, 0xf6, 0xa9, 0xf8, 0x5c, 0xc8, 0x9e, -0x9d, 0xf6, 0xa9, 0xec, 0xbc, 0xb4, 0x97, 0xad, 0x30, 0xf5, 0x20, 0xb6, 0xea, 0xfc, 0x09, 0x6f, -0x8a, 0x65, 0x48, 0x3d, 0x72, 0x41, 0x98, 0x4d, 0x5a, 0x60, 0x64, 0xdd, 0xf3, 0x0e, 0xbb, 0x0f, -0x3c, 0x7f, 0x4b, 0x4f, 0xb0, 0x76, 0x85, 0x4c, 0xe1, 0x4b, 0x4a, 0x2d, 0xd9, 0x33, 0x75, 0xb2, -0x1e, 0x2f, 0xba, 0x02, 0xcc, 0x15, 0xda, 0x69, 0xfa, 0x1b, 0x57, 0x99, 0x47, 0x3b, 0xd6, 0xe9, -0x6f, 0xcd, 0x63, 0xc3, 0x55, 0xe4, 0x91, 0xf1, 0x77, 0xe6, 0x91, 0x2d, 0xf5, 0xf7, 0xd5, 0xf5, -0x33, 0xcd, 0x47, 0xd4, 0xcf, 0x23, 0x03, 0xfe, 0xad, 0x88, 0x95, 0x85, 0xde, 0xdf, 0x95, 0xe5, -0x83, 0x85, 0xac, 0x37, 0x26, 0xe6, 0xe4, 0x12, 0xcf, 0x2d, 0xab, 0xc1, 0x0c, 0xa5, 0x88, 0x05, -0x53, 0xbc, 0xc3, 0x6e, 0xe6, 0xb5, 0xc7, 0x59, 0x69, 0x9f, 0x6a, 0x74, 0x79, 0x5b, 0x80, 0x43, -0xbe, 0x96, 0x9d, 0x8a, 0x37, 0x56, 0x78, 0xbf, 0xa5, 0x01, 0x27, 0xcd, 0x36, 0xd3, 0x29, 0x1c, -0xa9, 0x9a, 0x97, 0xc2, 0xbd, 0xeb, 0x34, 0xf1, 0x3f, 0xfe, 0x9e, 0xaf, 0xf0, 0x86, 0x9b, 0xe1, -0xf9, 0x8f, 0xa0, 0xda, 0xbb, 0xce, 0xcb, 0xfc, 0x98, 0x10, 0xe6, 0x8c, 0xd0, 0xb9, 0x0e, 0xcb, -0x04, 0xcc, 0xb9, 0xc2, 0x88, 0xbc, 0xf0, 0x69, 0x21, 0xf9, 0x23, 0x5b, 0x12, 0x06, 0xa7, 0x60, -0x71, 0x39, 0x2d, 0xd0, 0xa0, 0x73, 0x93, 0x47, 0x59, 0x9d, 0x39, 0x10, 0xab, 0xeb, 0x95, 0x2c, -0x3c, 0xfc, 0xe2, 0x99, 0xb6, 0x53, 0x57, 0xd7, 0xc2, 0x55, 0x67, 0x61, 0xc1, 0xff, 0x79, 0xa1, -0x38, 0xba, 0x0f, 0x76, 0x1c, 0xbc, 0xa5, 0xfa, 0x6f, 0x6d, 0xeb, 0x69, 0x83, 0x96, 0x99, 0x51, -0x58, 0xb7, 0x02, 0x65, 0x04, 0x09, 0xef, 0x03, 0xb3, 0x69, 0x75, 0x79, 0xb9, 0x60, 0x87, 0xdb, -0x50, 0x6a, 0xa8, 0x9f, 0xf0, 0x5d, 0x20, 0xf1, 0x5d, 0xa0, 0xc7, 0xa1, 0xea, 0x17, 0x7c, 0xae, -0x8e, 0x23, 0x98, 0x42, 0xb3, 0x79, 0xe6, 0x95, 0x4b, 0x1c, 0x25, 0x8b, 0x75, 0x58, 0x6f, 0xc1, -0xe5, 0x74, 0x8b, 0x8a, 0x80, 0xab, 0x98, 0x6a, 0xee, 0xc1, 0x9a, 0xeb, 0xb0, 0xd6, 0x9b, 0x59, -0xad, 0x0f, 0x75, 0x9c, 0xae, 0x75, 0xe9, 0x5c, 0x18, 0x56, 0xe4, 0x70, 0xb9, 0x4f, 0xc3, 0x82, -0x97, 0x0e, 0x3b, 0x1c, 0xfb, 0x80, 0x85, 0x98, 0x12, 0x78, 0xbb, 0xd5, 0x75, 0x8b, 0xfb, 0x72, -0xf5, 0xc4, 0x12, 0x29, 0x59, 0x89, 0xb6, 0x7d, 0x59, 0x8d, 0xb5, 0xfb, 0xae, 0xa2, 0x7d, 0xa7, -0x5c, 0x79, 0x24, 0xd2, 0x59, 0x7d, 0x94, 0x8b, 0x34, 0x02, 0xe2, 0x15, 0x5e, 0x65, 0x5f, 0x9a, -0xa7, 0xe7, 0xca, 0x79, 0x4e, 0x48, 0x47, 0xfd, 0xf7, 0x51, 0x81, 0xa9, 0xaf, 0x5d, 0x45, 0xfd, -0xfe, 0xde, 0x3c, 0xa2, 0x5f, 0xa1, 0x3e, 0x53, 0xfe, 0xce, 0xbc, 0x34, 0x7f, 0x7f, 0x7f, 0x7d, -0x59, 0x1e, 0x9a, 0x47, 0xbf, 0x42, 0x7d, 0xae, 0x94, 0xce, 0x8a, 0xab, 0x29, 0x0d, 0xc2, 0x15, -0x5e, 0x75, 0xa9, 0x89, 0x5e, 0x13, 0xf5, 0xba, 0x6c, 0x5a, 0x53, 0x4e, 0x5f, 0x4d, 0x8f, 0x22, -0xdc, 0xb0, 0x69, 0x66, 0xad, 0x50, 0x34, 0x1f, 0xd4, 0xb5, 0xe5, 0xab, 0x75, 0x38, 0xcf, 0x5b, -0x87, 0xca, 0xdb, 0xd4, 0x45, 0x24, 0xf7, 0x95, 0xfb, 0x84, 0x76, 0x0a, 0xb1, 0x0d, 0x09, 0x6d, -0xea, 0x42, 0x0a, 0xf9, 0x92, 0xd9, 0xea, 0xa6, 0x72, 0x94, 0x33, 0xca, 0xd9, 0xfa, 0x84, 0x05, -0x2f, 0xd7, 0x97, 0xb5, 0xcb, 0x14, 0xcf, 0x57, 0xa1, 0xe8, 0x4e, 0x17, 0xcd, 0xcb, 0x15, 0x23, -0xe7, 0x5f, 0xa5, 0x99, 0x5b, 0xb2, 0xa8, 0xe5, 0xdf, 0x7f, 0xfe, 0x0d, 0x92, 0x9a, 0x90, 0xc2, -0x5b, 0x90, 0xa6, 0x3b, 0x90, 0xc6, 0x9b, 0x91, 0xc6, 0x17, 0x20, 0x4d, 0xaf, 0x20, 0x09, 0xcb, -0xdb, 0x0c, 0x5c, 0xc2, 0x8e, 0x91, 0x77, 0xad, 0x26, 0xee, 0xa0, 0x99, 0x5e, 0xf3, 0xfc, 0xef, -0xbc, 0x6b, 0xbd, 0x80, 0xcf, 0xce, 0x3f, 0xfe, 0x9e, 0xe8, 0x37, 0x4b, 0x87, 0xfc, 0x75, 0xd8, -0xae, 0x96, 0x66, 0x7f, 0x2e, 0x84, 0x39, 0x94, 0x1e, 0x56, 0xa4, 0x95, 0x5f, 0xa2, 0x91, 0x5f, -0x83, 0xe5, 0x4c, 0xbe, 0xb8, 0x4d, 0x5f, 0x0a, 0x2b, 0x98, 0x84, 0x71, 0x19, 0x5a, 0xf9, 0xd5, -0x66, 0xb1, 0xbf, 0x9c, 0x4c, 0xaf, 0xf3, 0x5f, 0xce, 0xd8, 0x15, 0x4e, 0xe2, 0x5c, 0xa6, 0x4a, -0xf5, 0xa1, 0x16, 0xc0, 0x27, 0x0b, 0x86, 0x39, 0x2e, 0xaa, 0x33, 0xab, 0x27, 0xa5, 0x82, 0xdf, -0xad, 0xfb, 0x2a, 0x75, 0xfc, 0xec, 0x8e, 0xbf, 0xa5, 0x77, 0xfe, 0x52, 0xec, 0xdf, 0x8a, 0x33, -0x6c, 0x61, 0x62, 0xb6, 0xc5, 0xb2, 0x39, 0xb1, 0x77, 0x0a, 0x8a, 0x33, 0xbc, 0x87, 0xae, 0x66, -0xbe, 0xc5, 0x79, 0x55, 0x9a, 0x6d, 0x55, 0x13, 0x66, 0xdb, 0xb5, 0x34, 0xdb, 0x7a, 0xd7, 0x35, -0xc3, 0x1f, 0x68, 0xae, 0x5d, 0x5b, 0x8f, 0x73, 0xad, 0x67, 0x33, 0x3b, 0x87, 0xbc, 0xff, 0x93, -0x4f, 0xbe, 0xca, 0x6c, 0xfb, 0x69, 0xef, 0x57, 0xa9, 0x55, 0x82, 0x5b, 0xfc, 0xa4, 0x41, 0xaa, -0x15, 0xf1, 0xb7, 0x54, 0x13, 0xaa, 0x15, 0xd5, 0x90, 0x71, 0x90, 0x36, 0x5b, 0x29, 0xf3, 0xf8, -0xa7, 0xa2, 0x96, 0x97, 0x3c, 0x80, 0x11, 0x77, 0x40, 0xfc, 0x32, 0xd6, 0xa4, 0x40, 0xea, 0x11, -0x39, 0x1c, 0xeb, 0xf1, 0x07, 0xac, 0x47, 0x3d, 0xd8, 0xa7, 0x53, 0xf9, 0xd9, 0xba, 0xec, 0xfe, -0x4f, 0x1c, 0x5f, 0xa5, 0x06, 0x7f, 0x7d, 0xee, 0x6f, 0xe9, 0x97, 0x8f, 0x77, 0xfa, 0xb7, 0x16, -0x13, 0x1f, 0x74, 0x88, 0xea, 0x50, 0x52, 0x51, 0x7a, 0xa9, 0x1a, 0x4c, 0x4f, 0x95, 0x14, 0x7b, -0xe5, 0x5b, 0xde, 0x4b, 0xd7, 0x61, 0x1d, 0xd5, 0xc1, 0xe8, 0xf1, 0x7e, 0x0b, 0x6b, 0x91, 0x69, -0x9f, 0x2e, 0xd5, 0xe1, 0xe3, 0xb6, 0xaf, 0x54, 0x07, 0xc5, 0x57, 0xef, 0x85, 0xa5, 0x23, 0xe7, -0x4e, 0xf8, 0xb7, 0x97, 0x52, 0x1d, 0x9e, 0xc3, 0x3a, 0x38, 0xbd, 0xbf, 0x93, 0xca, 0x4e, 0xe3, -0xde, 0x7b, 0xa8, 0xe2, 0x8b, 0x54, 0x1f, 0xd0, 0x5a, 0x09, 0xef, 0xc2, 0x91, 0x3d, 0xa9, 0xfc, -0x89, 0xf0, 0xfa, 0x38, 0x79, 0xb6, 0xb3, 0xcf, 0xb4, 0xab, 0xc8, 0xff, 0x5e, 0x41, 0x4c, 0xaa, -0xc1, 0xb9, 0xc1, 0xb4, 0x1a, 0x6c, 0xff, 0xb2, 0x1a, 0x9c, 0x77, 0x7d, 0xf5, 0x5e, 0xc0, 0x1a, -0xe4, 0x26, 0x6a, 0x20, 0x95, 0x3a, 0xbd, 0x1e, 0x7f, 0x4b, 0x0d, 0x08, 0x87, 0xd2, 0xeb, 0xf0, -0xd1, 0xbb, 0x5f, 0xa5, 0x0e, 0x7f, 0xe9, 0xf2, 0x75, 0x30, 0x3d, 0x8f, 0x03, 0xff, 0x40, 0x34, -0x4b, 0x5d, 0xdb, 0x01, 0xaa, 0x2f, 0xa3, 0xd9, 0x5c, 0x3f, 0x7d, 0x13, 0xfa, 0x52, 0x39, 0x52, -0x40, 0xa8, 0x40, 0x07, 0xad, 0x9a, 0x71, 0x77, 0x5c, 0x19, 0x92, 0xbf, 0xf5, 0x26, 0x2f, 0x14, -0x9a, 0xca, 0x9d, 0xad, 0xa0, 0xd5, 0x5b, 0x69, 0xd5, 0xab, 0xd0, 0xe5, 0xf0, 0xba, 0xcf, 0x0d, -0x40, 0x21, 0xd1, 0x33, 0x2d, 0xdb, 0x4b, 0x90, 0xd7, 0x83, 0xa4, 0x15, 0xb0, 0x2b, 0x97, 0x91, -0xc5, 0xea, 0x2e, 0x5f, 0x03, 0x78, 0xf1, 0x4b, 0x66, 0xb1, 0x76, 0x49, 0x07, 0xeb, 0xef, 0xc8, -0xa3, 0x55, 0x5a, 0x9d, 0xc2, 0x7e, 0xb3, 0xd9, 0xa7, 0x56, 0x7d, 0x04, 0x25, 0x76, 0x9d, 0xf0, -0x53, 0xb6, 0xf7, 0x74, 0x4c, 0xcc, 0xc5, 0x38, 0x33, 0x8b, 0xb3, 0x4c, 0x8a, 0x7b, 0x33, 0xa1, -0xc9, 0xfd, 0xa1, 0x9f, 0xb4, 0x0f, 0xc9, 0xf7, 0xb7, 0x7c, 0x4e, 0x66, 0xe4, 0xcc, 0x69, 0xea, -0x57, 0x91, 0xe9, 0x7f, 0x4b, 0xf9, 0x25, 0xf2, 0x92, 0xf7, 0xc3, 0x0a, 0x13, 0xbe, 0xf0, 0x2c, -0x5e, 0xb3, 0xcf, 0x9a, 0xd8, 0xb5, 0xa2, 0x73, 0x01, 0xe1, 0x06, 0x9e, 0xed, 0x53, 0x91, 0x16, -0xd6, 0x78, 0x62, 0xff, 0x8a, 0xab, 0x4e, 0xec, 0x5d, 0xa9, 0x72, 0xc5, 0x3c, 0x16, 0x3a, 0x8d, -0x3c, 0xf7, 0x34, 0x01, 0x17, 0x49, 0xec, 0x58, 0xa9, 0x40, 0x04, 0x05, 0xf3, 0x42, 0x48, 0x5e, -0x4b, 0x64, 0x0d, 0x9d, 0x3d, 0x7c, 0xb3, 0x54, 0x82, 0x44, 0xfe, 0x26, 0x17, 0xf9, 0x71, 0x85, -0x47, 0xc2, 0xe0, 0xb0, 0x49, 0xeb, 0x9e, 0x4c, 0x0f, 0x07, 0x5b, 0x10, 0x67, 0x2b, 0x1d, 0x79, -0x28, 0x91, 0xf6, 0x9d, 0xd2, 0xcf, 0x89, 0x92, 0xbd, 0x72, 0x92, 0x7f, 0x43, 0xe4, 0xcb, 0xc5, -0x68, 0x6c, 0x03, 0x13, 0xa6, 0x5a, 0x60, 0x6b, 0x61, 0xab, 0x69, 0x7e, 0x73, 0x2c, 0x54, 0x62, -0x74, 0xf1, 0x2d, 0xa0, 0x9a, 0xd9, 0x0c, 0x33, 0x38, 0x15, 0x5f, 0x4b, 0x3e, 0xba, 0xf0, 0x39, -0x83, 0x53, 0xde, 0xc4, 0xf0, 0x14, 0xdb, 0xba, 0xf0, 0xeb, 0xb4, 0x6b, 0x36, 0x35, 0xb1, 0xab, -0x90, 0x6c, 0x79, 0x03, 0x6f, 0x03, 0x0d, 0x5f, 0x9d, 0xae, 0xfb, 0x43, 0xde, 0x49, 0x44, 0x50, -0x2e, 0x97, 0x56, 0x66, 0x5f, 0x19, 0x36, 0xb6, 0x82, 0x66, 0xa2, 0x05, 0xf4, 0xf1, 0x06, 0xd9, -0x0a, 0xbd, 0x81, 0x2c, 0x82, 0x9b, 0x12, 0xe5, 0x69, 0x65, 0xe5, 0xf1, 0xb2, 0xd5, 0x52, 0x50, -0x1a, 0xf8, 0xb6, 0xe4, 0x6a, 0xe9, 0xd2, 0x14, 0x36, 0x29, 0xc6, 0x70, 0x64, 0x33, 0xcb, 0xfd, -0x1f, 0x54, 0x32, 0x5f, 0x5a, 0x58, 0x23, 0x93, 0x05, 0x9c, 0x52, 0x7b, 0xb8, 0xb1, 0x3d, 0xcc, -0xf8, 0x0d, 0xf9, 0x10, 0x0b, 0xd0, 0x6e, 0x95, 0xca, 0xd7, 0x4c, 0xa3, 0x47, 0xf1, 0x1c, 0xb3, -0xcb, 0x07, 0x8a, 0xa7, 0xc5, 0x82, 0xcb, 0x7f, 0x51, 0x9b, 0xfe, 0xc5, 0x36, 0xa6, 0xcd, 0x70, -0xbf, 0xe4, 0x7b, 0xce, 0xae, 0xa8, 0x18, 0x79, 0xff, 0x94, 0x7f, 0x2b, 0xd9, 0xfc, 0x76, 0xd2, -0xec, 0x9f, 0x0f, 0xae, 0x67, 0x9e, 0x79, 0x79, 0x98, 0xd6, 0x98, 0x1c, 0x92, 0x7c, 0x5b, 0xf6, -0xfc, 0xf0, 0x4b, 0x87, 0x10, 0xfa, 0x5b, 0x7a, 0x3a, 0x48, 0x1f, 0x27, 0x6b, 0x8c, 0xb4, 0xae, -0xf3, 0x7e, 0x84, 0xad, 0x6a, 0x6c, 0x62, 0xbc, 0x84, 0x42, 0xf2, 0x50, 0x8a, 0xb5, 0x28, 0xba, -0x74, 0x29, 0xec, 0x4a, 0xbe, 0x86, 0x5a, 0x1f, 0x4b, 0x93, 0xc9, 0x7c, 0xf7, 0xed, 0x7f, 0xbf, -0xde, 0xae, 0xc4, 0x5e, 0xa5, 0xa7, 0x46, 0xa7, 0x15, 0x73, 0x6f, 0xc5, 0xdc, 0x91, 0x7b, 0x64, -0xb9, 0x5b, 0x31, 0xf7, 0x56, 0xcc, 0x7d, 0x3e, 0xa8, 0x2e, 0x9d, 0xfb, 0x99, 0xf3, 0x64, 0xe9, -0x75, 0x62, 0x5e, 0x4b, 0x28, 0xaf, 0xf9, 0xa0, 0x29, 0xb5, 0x82, 0xb5, 0xcc, 0x8a, 0xf4, 0xdc, -0x0a, 0xe6, 0x12, 0x2b, 0x58, 0x12, 0xed, 0x9d, 0x5c, 0xf1, 0xc5, 0xf8, 0x03, 0xae, 0xce, 0x86, -0x52, 0x08, 0x54, 0xfe, 0xf1, 0x0c, 0x14, 0x9c, 0xa0, 0x9c, 0x30, 0xf7, 0xd2, 0xca, 0x5a, 0x3f, -0xed, 0x4d, 0x51, 0x69, 0x0e, 0xf8, 0x3b, 0x84, 0xc2, 0xea, 0x5b, 0x7d, 0x01, 0x6c, 0x8d, 0xe3, -0xc3, 0x0e, 0xdd, 0x90, 0xaf, 0xc3, 0x99, 0x28, 0xef, 0x99, 0x47, 0x58, 0xdb, 0x71, 0xec, 0x79, -0xc0, 0xae, 0x2c, 0xf4, 0xd9, 0xb5, 0xa5, 0x7e, 0x7b, 0x66, 0x71, 0xb5, 0x5d, 0xe7, 0xa8, 0x94, -0xcb, 0x47, 0xbe, 0x29, 0x1d, 0x48, 0xa1, 0x6d, 0x4f, 0x57, 0x76, 0x76, 0x14, 0x63, 0x4b, 0xd2, -0xac, 0x4f, 0x7c, 0x15, 0x61, 0x46, 0x19, 0x96, 0xa6, 0x76, 0xb1, 0xde, 0x42, 0xeb, 0xf8, 0x8f, -0xb8, 0x0a, 0x9b, 0x91, 0x5e, 0x59, 0xe0, 0xe6, 0xa7, 0xab, 0xdb, 0x3d, 0x81, 0x4a, 0xe7, 0xd4, -0x3f, 0x3e, 0x73, 0xc2, 0x5f, 0xeb, 0xf3, 0xc6, 0xb6, 0x0d, 0x1f, 0x48, 0xcf, 0xd5, 0x92, 0x96, -0xab, 0x53, 0xca, 0xd5, 0xb1, 0x18, 0xc7, 0x3f, 0x72, 0x3e, 0x94, 0x33, 0x85, 0xbf, 0xf7, 0x06, -0xe5, 0xba, 0x0f, 0xe9, 0x42, 0x50, 0xb3, 0x1f, 0xe9, 0x02, 0x69, 0x73, 0x24, 0xbe, 0x7f, 0xef, -0x74, 0xea, 0xfb, 0xf7, 0x3e, 0xc1, 0x12, 0x15, 0x16, 0x12, 0x3f, 0xa7, 0xa4, 0x19, 0x63, 0xa9, -0xc4, 0x43, 0xa5, 0xb8, 0xbe, 0xed, 0x38, 0x3b, 0x47, 0x27, 0x73, 0x1e, 0x2c, 0x34, 0xa2, 0x21, -0x7a, 0xa2, 0x65, 0xa9, 0x84, 0x6b, 0xdb, 0x41, 0x85, 0x23, 0xa4, 0x51, 0x1e, 0x43, 0x49, 0x1a, -0x96, 0xb6, 0x36, 0xe5, 0x10, 0x8d, 0x6c, 0x6f, 0x3e, 0x6f, 0xaf, 0xbc, 0x43, 0x7f, 0x09, 0xdc, -0x97, 0x76, 0x0a, 0x64, 0x6f, 0xf2, 0x89, 0x35, 0xf2, 0x07, 0x9e, 0x37, 0xad, 0x86, 0x9f, 0x84, -0x75, 0x97, 0x5a, 0x1d, 0x7f, 0xee, 0xc4, 0xe4, 0xd5, 0xf1, 0x74, 0x7b, 0x3c, 0x17, 0x36, 0xa6, -0x2c, 0xf4, 0xd0, 0xb9, 0x6f, 0xf2, 0x21, 0x84, 0x31, 0x06, 0xd2, 0x77, 0x92, 0x57, 0xbd, 0x49, -0x7b, 0xcc, 0x44, 0x3e, 0xdd, 0xa4, 0x35, 0xe0, 0xc5, 0xe7, 0x18, 0x96, 0x1a, 0xad, 0xf9, 0xa0, -0x2f, 0xb6, 0xe0, 0x88, 0x3f, 0xb4, 0xef, 0xae, 0x46, 0x17, 0x9f, 0x51, 0x1b, 0xeb, 0xdf, 0x1c, -0x2a, 0x36, 0xe6, 0x83, 0xc1, 0xc4, 0x91, 0x7f, 0x2d, 0xe6, 0x91, 0xb9, 0xd7, 0x0e, 0xdb, 0xba, -0xc9, 0x53, 0x34, 0x59, 0x34, 0xe5, 0x55, 0xe4, 0x07, 0xc9, 0x9e, 0xd1, 0xbf, 0x59, 0xf2, 0xcc, -0x6c, 0x01, 0x1d, 0xb3, 0x99, 0xdc, 0xa0, 0x15, 0x75, 0x51, 0x58, 0x0f, 0x95, 0x1e, 0x51, 0x15, -0x85, 0x4a, 0x01, 0x7b, 0xbd, 0xd4, 0xd8, 0x4c, 0x16, 0x23, 0x1d, 0xd7, 0x98, 0x5b, 0xc1, 0x64, -0x2c, 0x7f, 0xf0, 0x48, 0x04, 0x2a, 0xdd, 0x66, 0x6e, 0x03, 0x27, 0xd5, 0x6f, 0xdc, 0x26, 0x79, -0x3e, 0x62, 0xa7, 0xb4, 0x48, 0xef, 0x80, 0xad, 0xef, 0xd3, 0x7a, 0x7b, 0x6a, 0x27, 0xc8, 0xb7, -0x1a, 0xf2, 0x82, 0x85, 0xf2, 0xac, 0xa3, 0xbb, 0x48, 0xcf, 0x56, 0x97, 0x9c, 0x79, 0x88, 0xba, -0xe5, 0xdd, 0xb8, 0x1a, 0x0c, 0xa0, 0xbb, 0x91, 0xec, 0xdd, 0xd2, 0x19, 0x57, 0x55, 0x30, 0x4b, -0x34, 0x92, 0x75, 0xdb, 0xda, 0xc7, 0xc1, 0x10, 0x78, 0x1c, 0x0a, 0x02, 0x74, 0xf6, 0xb3, 0x27, -0x94, 0xc9, 0xbc, 0xf6, 0x11, 0x95, 0xe8, 0x21, 0xaf, 0xc2, 0xa4, 0xbf, 0x20, 0x7b, 0x92, 0x28, -0x65, 0xde, 0x21, 0xed, 0xc0, 0x4b, 0x2b, 0xf0, 0x54, 0x8a, 0x8a, 0xf3, 0xd8, 0x52, 0xad, 0xa0, -0x62, 0x3a, 0x8b, 0x4e, 0x3a, 0x23, 0x40, 0xb3, 0xca, 0x9f, 0x4e, 0x99, 0x5d, 0x26, 0xb2, 0xb0, -0xab, 0x0a, 0x73, 0xa4, 0xfb, 0x58, 0xd3, 0x27, 0x66, 0xfb, 0x1e, 0x20, 0x6f, 0x22, 0x18, 0xff, -0x20, 0xf9, 0xb0, 0xa8, 0xe9, 0x33, 0xd7, 0xd6, 0xf6, 0x88, 0xea, 0x25, 0x5f, 0x10, 0xb4, 0xaf, -0x27, 0xf8, 0x96, 0xd8, 0x50, 0x4b, 0x5f, 0xe8, 0x6b, 0x07, 0xc1, 0xc0, 0x5b, 0xc1, 0x69, 0xc4, -0xd1, 0xba, 0x3b, 0x16, 0xe4, 0x9f, 0x1a, 0x0e, 0x96, 0xf1, 0x7a, 0xb2, 0x25, 0x85, 0x97, 0x53, -0x18, 0x84, 0x59, 0x74, 0xca, 0x17, 0xd3, 0x30, 0xe2, 0x55, 0x20, 0x1a, 0x77, 0xf7, 0x06, 0x33, -0xe7, 0xd6, 0x80, 0x99, 0x42, 0x28, 0x56, 0xd4, 0x0f, 0xf5, 0x06, 0x75, 0x18, 0xe2, 0xa4, 0x78, -0x82, 0x45, 0x1a, 0xfa, 0x20, 0xf9, 0x3e, 0x91, 0x73, 0xf3, 0x91, 0x67, 0x73, 0x47, 0x1b, 0xd8, -0x5e, 0x3a, 0x03, 0x39, 0x4f, 0x0d, 0x37, 0x6a, 0xf8, 0xc0, 0x53, 0x67, 0xb0, 0x35, 0x62, 0xa4, -0x4d, 0x58, 0x2a, 0xf9, 0x9c, 0x38, 0x24, 0xeb, 0x9d, 0xb5, 0x21, 0xee, 0x85, 0x2d, 0x76, 0x88, -0xd2, 0x28, 0xb5, 0x36, 0x23, 0x67, 0x8b, 0x74, 0x85, 0x57, 0x49, 0x7e, 0x03, 0x0f, 0xc7, 0x68, -0xac, 0xd8, 0x3b, 0xb1, 0x5b, 0x9d, 0x4f, 0xe1, 0x2c, 0xdd, 0xa6, 0x42, 0x59, 0xc3, 0xb9, 0xef, -0x49, 0x70, 0x76, 0x80, 0x72, 0x48, 0xf1, 0x3d, 0xea, 0xf7, 0x37, 0xee, 0xc5, 0x7e, 0x68, 0x66, -0xe3, 0x41, 0x7b, 0xf1, 0x78, 0x60, 0xde, 0x3d, 0x91, 0xbb, 0x1a, 0x7f, 0xd4, 0xe4, 0x2a, 0x95, -0x64, 0x2d, 0x07, 0xd2, 0x0b, 0xc9, 0x16, 0x6e, 0xe3, 0x7f, 0x0f, 0xf3, 0xed, 0x50, 0xc8, 0xac, -0xa1, 0xe6, 0xfe, 0xf7, 0x33, 0x76, 0x3f, 0xdc, 0x61, 0x5c, 0x6c, 0x6f, 0x01, 0x23, 0xf8, 0x8c, -0xf3, 0xa0, 0x80, 0xd9, 0x4f, 0x98, 0x07, 0x56, 0xeb, 0x3c, 0x98, 0xb5, 0xfb, 0x49, 0x28, 0x0a, -0xe6, 0xda, 0x2b, 0xa0, 0x64, 0xe8, 0x2e, 0x2c, 0x85, 0x8b, 0xee, 0x9d, 0x0a, 0x2b, 0x60, 0xd9, -0x8a, 0x40, 0x10, 0x79, 0x8a, 0xef, 0xd4, 0x51, 0xbc, 0x95, 0x7c, 0xc1, 0x09, 0x62, 0x26, 0xc1, -0x48, 0xb1, 0xf8, 0x5e, 0x54, 0xf3, 0x11, 0x7c, 0xd3, 0xbe, 0x18, 0x44, 0x9a, 0x97, 0xed, 0xad, -0xc8, 0x7f, 0xd4, 0x49, 0x6b, 0xf2, 0x58, 0x9f, 0xb2, 0x28, 0x14, 0x62, 0x9d, 0x8d, 0x4b, 0xc9, -0xff, 0x83, 0x77, 0xd8, 0x69, 0x47, 0x29, 0xe9, 0x19, 0xdb, 0x1a, 0x8b, 0x87, 0xd6, 0xdf, 0xa3, -0xb4, 0xbb, 0x49, 0x14, 0x5e, 0x9f, 0x85, 0xc8, 0x30, 0xdb, 0x0d, 0x95, 0x38, 0x07, 0x1a, 0xf2, -0x16, 0xe0, 0x73, 0x25, 0xd4, 0x62, 0x4b, 0x14, 0xad, 0x52, 0xe3, 0xaf, 0xd0, 0x44, 0xad, 0x52, -0x14, 0xcc, 0xc6, 0x91, 0x57, 0x42, 0xef, 0x41, 0xf5, 0x50, 0x4f, 0x43, 0xb6, 0xa8, 0x1b, 0xea, -0x59, 0x95, 0x23, 0x66, 0xb2, 0x10, 0x03, 0x9f, 0xb1, 0xbf, 0x67, 0x55, 0xa6, 0xa8, 0x12, 0xca, -0x45, 0xfd, 0x3a, 0x4e, 0xd4, 0xad, 0x23, 0xed, 0xbb, 0x72, 0xbe, 0x14, 0x76, 0x6c, 0xff, 0xee, -0x9e, 0x58, 0x50, 0x11, 0x88, 0xf9, 0xca, 0x43, 0x1a, 0x4c, 0xb7, 0x12, 0xf3, 0xa9, 0x35, 0x2b, -0x36, 0x92, 0x1f, 0xdd, 0x02, 0x51, 0x15, 0xf8, 0x5e, 0x60, 0xd3, 0xde, 0x27, 0xa1, 0x3e, 0x44, -0xbb, 0x53, 0x75, 0xbe, 0xa2, 0x62, 0x08, 0x99, 0x9f, 0x7e, 0x12, 0xca, 0x42, 0xfc, 0x6e, 0x47, -0x31, 0x04, 0x73, 0x0f, 0x2c, 0xc0, 0x5f, 0x03, 0xce, 0xb9, 0x39, 0xfa, 0x22, 0x0b, 0x0c, 0x61, -0x7c, 0x50, 0x8d, 0xf0, 0x05, 0x4d, 0xcf, 0x85, 0x41, 0x6f, 0x87, 0x5a, 0x3b, 0xfd, 0xfa, 0xec, -0x74, 0xea, 0x33, 0x47, 0x8f, 0xb5, 0xc0, 0xd9, 0x68, 0x3a, 0xcd, 0x1e, 0xf6, 0x85, 0x1a, 0x0f, -0xe1, 0xf2, 0x2f, 0xb3, 0x13, 0x31, 0xa4, 0xcd, 0x94, 0x65, 0x87, 0xa6, 0xa7, 0xba, 0xbb, 0xa6, -0x1c, 0xbc, 0x9b, 0xda, 0x3f, 0x94, 0xd5, 0x05, 0xa5, 0xac, 0x75, 0x22, 0x53, 0x6c, 0x6b, 0x9a, -0xa9, 0x4d, 0x1e, 0x23, 0xe8, 0xd9, 0x61, 0x0b, 0xc0, 0x37, 0xb1, 0xe7, 0x58, 0x1c, 0x8e, 0x96, -0x15, 0x3c, 0xc6, 0xe7, 0x50, 0xfc, 0xa1, 0x7f, 0xc5, 0xb2, 0x99, 0x94, 0xd8, 0xca, 0x1a, 0xa8, -0xdf, 0x83, 0xe5, 0x6e, 0xcc, 0xf6, 0x51, 0x69, 0xf5, 0x08, 0x55, 0xf7, 0xd2, 0x41, 0x6c, 0xf1, -0x15, 0x3e, 0x7d, 0x10, 0xc6, 0x77, 0x49, 0xfc, 0x3d, 0xb3, 0x65, 0xcb, 0x52, 0x91, 0xbe, 0x1f, -0x1f, 0x24, 0x3c, 0xb1, 0xa9, 0x02, 0x77, 0x97, 0x11, 0x9f, 0xff, 0x7b, 0x73, 0x66, 0xed, 0x26, -0x66, 0xef, 0x58, 0x96, 0xcb, 0x5f, 0x8d, 0xb1, 0x7d, 0x86, 0x2a, 0xb6, 0xab, 0x52, 0x80, 0xa9, -0x55, 0x62, 0xac, 0x2a, 0x11, 0xbb, 0xf4, 0x53, 0x0d, 0x32, 0x87, 0x18, 0xa6, 0x4a, 0x79, 0xcb, -0xc5, 0xf1, 0x5c, 0x56, 0x00, 0x6f, 0xf4, 0x38, 0x24, 0xd9, 0x38, 0x4d, 0xc6, 0x37, 0xba, 0xca, -0x3f, 0xb6, 0xc4, 0x4d, 0x53, 0xd7, 0x43, 0xb1, 0x54, 0x8f, 0x29, 0xc6, 0x4c, 0xdb, 0x1a, 0x2f, -0x95, 0xe2, 0x45, 0xc2, 0x54, 0x5e, 0xf3, 0xd2, 0x93, 0xe0, 0xf3, 0x6d, 0x0d, 0xe6, 0x1d, 0x40, -0x9c, 0x6f, 0xc8, 0x4e, 0x78, 0x98, 0xfc, 0xd3, 0x29, 0x53, 0x0c, 0x6b, 0xd3, 0x1c, 0x18, 0xa0, -0x71, 0x6e, 0x0a, 0x58, 0xd4, 0x8c, 0x32, 0x69, 0x68, 0x64, 0xac, 0x82, 0x0b, 0x3b, 0xe9, 0xde, -0x18, 0xb9, 0x5c, 0xfd, 0x8a, 0x48, 0x8a, 0x79, 0x96, 0xe6, 0x22, 0x92, 0xf2, 0xbd, 0xcf, 0x49, -0x73, 0x11, 0xf9, 0xcc, 0xa5, 0xf9, 0xc6, 0x0a, 0xaf, 0x6f, 0xba, 0x78, 0x16, 0x42, 0xae, 0x22, -0x6e, 0xd2, 0x20, 0x8c, 0x1d, 0x8a, 0xe8, 0xfd, 0xd5, 0x58, 0xb2, 0xcc, 0x5a, 0x63, 0x46, 0xa2, -0xcc, 0xc9, 0x91, 0x78, 0x89, 0x99, 0x49, 0xe6, 0x76, 0xc9, 0xf3, 0x29, 0x3b, 0x5b, 0x43, 0xe7, -0xd3, 0x91, 0x03, 0xb1, 0x11, 0x97, 0xda, 0xa9, 0x2e, 0x3f, 0x1d, 0x8f, 0x8b, 0x99, 0xce, 0x2a, -0xc6, 0xb3, 0xaa, 0xdd, 0x1f, 0xf7, 0x22, 0x6e, 0xfe, 0xe0, 0x30, 0xe3, 0x3d, 0xc8, 0x37, 0xaf, -0xc1, 0xbf, 0x7f, 0xf4, 0x05, 0x66, 0x8f, 0x5a, 0xd6, 0x9b, 0xe7, 0x8b, 0x2f, 0xa6, 0x94, 0x8b, -0x91, 0x52, 0x56, 0x48, 0xd4, 0x8e, 0x68, 0x6f, 0x01, 0xf2, 0x74, 0x0f, 0x31, 0xcf, 0xa5, 0xfd, -0x48, 0x17, 0x35, 0xd8, 0x72, 0x5b, 0x91, 0xfe, 0x62, 0x7b, 0x51, 0xd8, 0x8d, 0x35, 0xc8, 0xd5, -0x21, 0x55, 0x46, 0xca, 0x5c, 0x80, 0x97, 0x11, 0x29, 0x71, 0x4f, 0xf0, 0x18, 0xc6, 0xe8, 0x6b, -0x7b, 0xfb, 0xcf, 0x82, 0xed, 0xa9, 0xf7, 0xc1, 0xd0, 0x50, 0x4a, 0xd4, 0x3f, 0x54, 0x44, 0xe7, -0x29, 0xe4, 0x5a, 0x25, 0xb5, 0xdd, 0xd2, 0xd6, 0x11, 0xf3, 0x44, 0x43, 0x6d, 0xf7, 0x8d, 0x6e, -0xfc, 0x12, 0xd3, 0x23, 0xbf, 0xf0, 0x66, 0x46, 0x09, 0x59, 0x49, 0x7c, 0x38, 0x93, 0x49, 0x94, -0xf0, 0x7d, 0xa4, 0x84, 0xcf, 0x20, 0x25, 0xbc, 0x76, 0x88, 0xca, 0xf6, 0x62, 0xf5, 0x9b, 0x79, -0x32, 0xcd, 0x2f, 0x25, 0x4b, 0xde, 0x6c, 0x0f, 0x98, 0xf6, 0x7f, 0x11, 0x77, 0x0a, 0xb1, 0xbe, -0x36, 0xa4, 0x5a, 0x18, 0xe2, 0xdf, 0xff, 0xc5, 0x59, 0xe4, 0xd2, 0xad, 0xc8, 0x17, 0xab, 0x8e, -0x6e, 0x22, 0x7e, 0x0f, 0xc7, 0xb3, 0x8e, 0x7c, 0x13, 0x12, 0x16, 0xbc, 0x5b, 0x58, 0xd3, 0x67, -0x57, 0x61, 0x2f, 0x2b, 0xa5, 0xd5, 0x26, 0xa2, 0xba, 0x47, 0x37, 0xd9, 0x99, 0x1d, 0xef, 0xe2, -0x3c, 0xff, 0x36, 0x16, 0xa7, 0x4a, 0xc6, 0x19, 0x28, 0x8e, 0x42, 0x99, 0x8f, 0xc2, 0xeb, 0xed, -0xe4, 0x11, 0x30, 0x47, 0x0a, 0x63, 0x7c, 0xe5, 0x66, 0x7b, 0x06, 0x79, 0xa3, 0x66, 0x21, 0xcc, -0x3e, 0x0c, 0xe5, 0xb7, 0xb7, 0x67, 0x55, 0xc3, 0x76, 0x94, 0x49, 0x27, 0xe5, 0xd2, 0xc3, 0x52, -0x52, 0x4e, 0x4a, 0x5f, 0x0e, 0x9d, 0x90, 0x7e, 0x8f, 0x9c, 0xbe, 0xc9, 0x5e, 0x8e, 0x73, 0x3f, -0x8f, 0x14, 0xc5, 0x74, 0x7c, 0x10, 0x74, 0x76, 0x01, 0x78, 0x6c, 0x83, 0x52, 0x3f, 0x2b, 0x2b, -0x7b, 0x62, 0x3a, 0xe6, 0xcc, 0x1b, 0xae, 0xd4, 0xa3, 0xf9, 0x38, 0xf7, 0x21, 0x97, 0x80, 0x3c, -0xac, 0x11, 0x69, 0x5e, 0x29, 0xe3, 0xf2, 0xbb, 0x18, 0x7e, 0xcc, 0xb2, 0xac, 0x06, 0x93, 0xcf, -0x0a, 0x25, 0x28, 0x07, 0xb0, 0xf3, 0x2c, 0xf1, 0x3c, 0x51, 0x1b, 0x56, 0x4a, 0xcf, 0xe3, 0x1e, -0x3e, 0x11, 0x6b, 0xb0, 0x37, 0xc3, 0x79, 0xc8, 0x41, 0x4a, 0x50, 0x4a, 0x7b, 0xd4, 0x2b, 0x90, -0x96, 0x7e, 0xe6, 0xb3, 0x5b, 0xd8, 0xa9, 0x88, 0x52, 0xbc, 0x3f, 0x51, 0x35, 0xf2, 0x59, 0x09, -0xd3, 0x55, 0x37, 0xa5, 0x85, 0xee, 0xf6, 0x6f, 0xa3, 0xfc, 0xc2, 0x55, 0x95, 0x30, 0xe1, 0x7c, -0x98, 0x3e, 0xa1, 0x09, 0x8f, 0xf3, 0x16, 0xf6, 0x12, 0xe2, 0x70, 0x31, 0x79, 0x9f, 0x36, 0x4b, -0x5e, 0x00, 0x1d, 0x93, 0x7d, 0xa9, 0xc2, 0xd3, 0x16, 0x8f, 0xd9, 0xb5, 0x64, 0xe4, 0xd3, 0x33, -0x36, 0xe5, 0xc3, 0x3d, 0xbc, 0xda, 0x13, 0xb3, 0xb9, 0x10, 0x23, 0x77, 0x22, 0x3f, 0xa6, 0x63, -0xb5, 0xd8, 0xb8, 0xef, 0xbe, 0x60, 0xe5, 0x2f, 0x5f, 0x08, 0x1a, 0x0b, 0xd4, 0x6d, 0x8a, 0x02, -0x59, 0xab, 0x1e, 0x69, 0xc9, 0x34, 0x5e, 0xb9, 0x67, 0x53, 0xa3, 0x82, 0x57, 0x78, 0xc3, 0x1a, -0xf0, 0x3f, 0xf8, 0x9f, 0xbf, 0x17, 0x0b, 0xa5, 0x38, 0x92, 0x8f, 0xfa, 0x7b, 0xc8, 0x6f, 0xbc, -0x17, 0xa9, 0x9f, 0xff, 0x41, 0xe9, 0xfd, 0x3f, 0x87, 0xc5, 0x02, 0x4c, 0x25, 0x3b, 0x61, 0xab, -0x08, 0x31, 0x07, 0x67, 0xe3, 0xff, 0x7c, 0x96, 0x9d, 0xa0, 0x99, 0x25, 0x87, 0x22, 0xa4, 0x1c, -0x7e, 0x96, 0xc9, 0x6f, 0x7a, 0x51, 0x8b, 0xdf, 0xa8, 0xf7, 0x92, 0x67, 0x2a, 0x43, 0xf6, 0x01, -0x98, 0xfe, 0xcb, 0x17, 0x42, 0xba, 0xc0, 0xbd, 0x96, 0xba, 0x7d, 0xec, 0x64, 0x44, 0x7c, 0x05, -0x9f, 0x21, 0xfb, 0x78, 0xbf, 0x75, 0xfc, 0x34, 0xd9, 0x40, 0x24, 0xd9, 0xb4, 0x60, 0xaa, 0x2c, -0x9b, 0xa2, 0xbc, 0x39, 0x65, 0x77, 0x4a, 0x36, 0x55, 0xe9, 0x12, 0xb2, 0xa9, 0x2a, 0x29, 0x9b, -0xce, 0xe0, 0x65, 0xd9, 0x74, 0x3a, 0xc2, 0x7e, 0xde, 0x04, 0x53, 0x1e, 0x63, 0x6f, 0x99, 0x18, -0xa3, 0x16, 0x41, 0xf7, 0xe8, 0x04, 0xbb, 0xcc, 0x24, 0xa3, 0x0d, 0xef, 0x93, 0x64, 0xb5, 0x5d, -0x92, 0xb4, 0xaa, 0x7c, 0x34, 0xc1, 0xb7, 0x1a, 0x17, 0x27, 0xe5, 0x55, 0x0a, 0xbf, 0x4f, 0x92, -0x3c, 0x4c, 0xc2, 0x2b, 0xe4, 0xbd, 0xd9, 0x9b, 0xb2, 0xcb, 0x41, 0xf6, 0x37, 0x39, 0xec, 0xed, -0xb9, 0xe5, 0xe0, 0xd9, 0x00, 0x25, 0x08, 0xf3, 0x7a, 0x0f, 0x2f, 0xe4, 0x23, 0xf6, 0x8c, 0x9f, -0x25, 0x4c, 0x36, 0xb6, 0x8f, 0x9f, 0x65, 0xf6, 0x88, 0x72, 0x51, 0x5a, 0x56, 0x60, 0xea, 0x26, -0x1b, 0x62, 0x47, 0x7e, 0x57, 0x4c, 0x09, 0xca, 0xf1, 0xf3, 0xc2, 0xcf, 0xc7, 0x3f, 0x67, 0xcf, -0xdc, 0xf8, 0x98, 0x63, 0x1e, 0x4a, 0x2e, 0xc3, 0x91, 0x4f, 0x8f, 0xc5, 0xf2, 0xdd, 0x71, 0x60, -0xa1, 0x19, 0x71, 0x55, 0x58, 0x9b, 0xef, 0x8a, 0x6b, 0xd8, 0xdb, 0x94, 0xb8, 0xce, 0xd1, 0x02, -0xda, 0x7c, 0x6f, 0x5c, 0xcf, 0xde, 0xb3, 0xe3, 0x06, 0xd2, 0x65, 0xc7, 0xf8, 0x1c, 0xf6, 0x7e, -0x5d, 0x3c, 0x0f, 0x9f, 0x79, 0xf6, 0x3c, 0x33, 0x6e, 0xc2, 0x67, 0x0b, 0x3d, 0xeb, 0x33, 0xe2, -0xb6, 0xfc, 0x2e, 0xe2, 0x59, 0xe2, 0x0e, 0xf6, 0xae, 0x8e, 0x17, 0xca, 0xef, 0xc5, 0xec, 0x9d, -0x8b, 0x97, 0x46, 0x54, 0x98, 0xa7, 0x8b, 0xbd, 0x69, 0xe3, 0x1e, 0xfc, 0xd2, 0x2b, 0xfc, 0x3c, -0x5e, 0x2d, 0xeb, 0xaf, 0xfc, 0xb9, 0xe2, 0x83, 0x71, 0x76, 0x0e, 0xd0, 0x8c, 0x43, 0x63, 0x8e, -0x0b, 0x4a, 0x43, 0x36, 0x33, 0x49, 0xbc, 0x58, 0x33, 0xa3, 0x2b, 0x0c, 0x11, 0xee, 0xc1, 0x23, -0x32, 0x67, 0xeb, 0x63, 0xe1, 0xe5, 0x54, 0xe7, 0x70, 0x82, 0xdb, 0xad, 0x31, 0x56, 0x5c, 0x4b, -0x5c, 0x6a, 0x09, 0xf2, 0x20, 0x75, 0xa6, 0x0a, 0x01, 0x47, 0x08, 0xe1, 0x78, 0x64, 0xc2, 0x79, -0x97, 0xb9, 0x94, 0x2a, 0x28, 0x0a, 0x93, 0x27, 0x36, 0xf6, 0x4a, 0x9a, 0xb7, 0x0f, 0xbd, 0xe1, -0xdf, 0x7f, 0x9e, 0xbf, 0x89, 0x56, 0xc9, 0x37, 0x93, 0xd4, 0x6f, 0xc2, 0x94, 0x71, 0xbc, 0x24, -0x25, 0x7f, 0x1b, 0xa4, 0xb5, 0xa8, 0x02, 0xa6, 0xc7, 0xdf, 0x0a, 0x2b, 0xb0, 0xf4, 0xa7, 0xd8, -0x5b, 0x4e, 0xfc, 0x74, 0x7e, 0x65, 0xfc, 0x2c, 0xd6, 0xe4, 0x9c, 0x5c, 0x93, 0x4f, 0x2a, 0x3e, -0x88, 0xbf, 0x45, 0x35, 0x91, 0x4f, 0xa3, 0x02, 0x77, 0x1f, 0xef, 0x42, 0xe6, 0x41, 0x85, 0x72, -0x9a, 0x9a, 0x52, 0xa2, 0xf1, 0x88, 0x7d, 0xbe, 0xff, 0x2f, 0x0f, 0x4d, 0x4a, 0xf7, 0x85, 0xf0, -0x34, 0x4c, 0xf7, 0xa8, 0x9c, 0xee, 0x71, 0x4c, 0xf7, 0x35, 0x4c, 0xf7, 0x44, 0x5a, 0xba, 0x2f, -0x50, 0xba, 0xc8, 0x75, 0x3f, 0x51, 0xd3, 0x87, 0xe9, 0x16, 0xe2, 0x53, 0x07, 0x5e, 0xad, 0xbc, -0xab, 0x44, 0x4e, 0x3b, 0x2d, 0xb5, 0x7d, 0xe1, 0xe9, 0x98, 0xda, 0x01, 0x39, 0xb5, 0x61, 0x4c, -0xed, 0x10, 0xa6, 0x76, 0x38, 0x2d, 0xb5, 0x7d, 0x72, 0x6a, 0xbb, 0x71, 0x44, 0xbf, 0x5a, 0xac, -0x3c, 0x55, 0x8d, 0xcf, 0x02, 0x5e, 0x65, 0xb4, 0xd6, 0x40, 0xed, 0xcb, 0xb7, 0x40, 0x81, 0xb1, -0x32, 0xb1, 0xe2, 0xe0, 0xc8, 0xf0, 0xb8, 0x8e, 0xba, 0xa8, 0x75, 0xb2, 0xac, 0xa4, 0x19, 0xdb, -0xef, 0xbe, 0xd5, 0xd5, 0xbf, 0xf8, 0x26, 0x17, 0x5b, 0x1f, 0xbb, 0xc9, 0x1b, 0x0b, 0xd0, 0x2a, -0x98, 0xda, 0xa1, 0xac, 0x73, 0xf5, 0x7b, 0xfa, 0x3d, 0x64, 0xd3, 0x6b, 0x47, 0xf9, 0x4d, 0x1e, -0xe2, 0xe2, 0xfb, 0xcb, 0xf1, 0xcd, 0x81, 0xd7, 0x8a, 0x9b, 0xca, 0x41, 0xc4, 0xab, 0xf0, 0xa6, -0x0a, 0x68, 0xc0, 0xab, 0xe8, 0x8d, 0x0a, 0x8c, 0x5d, 0x5c, 0x06, 0x18, 0xe7, 0x7c, 0xa4, 0xe2, -0xa6, 0xc5, 0x70, 0x87, 0xfb, 0x7d, 0x78, 0xe8, 0x46, 0x2f, 0x64, 0x95, 0xbf, 0x0f, 0x9b, 0x6f, -0xac, 0x02, 0x63, 0xc5, 0xfb, 0x50, 0x6f, 0xde, 0x82, 0xa1, 0x36, 0x0c, 0xad, 0xb7, 0x25, 0x70, -0x62, 0x09, 0xe2, 0x84, 0x12, 0x71, 0xa2, 0x43, 0xc2, 0x09, 0x0b, 0x85, 0x2f, 0x61, 0x38, 0x91, -0xa0, 0x95, 0x35, 0x62, 0x71, 0xb2, 0xb5, 0xf3, 0xe1, 0x09, 0xff, 0xfe, 0x4f, 0xac, 0xc8, 0x95, -0x2c, 0x99, 0x48, 0xfb, 0x2e, 0x5d, 0x53, 0x31, 0x33, 0xed, 0xac, 0x55, 0x83, 0xb4, 0x52, 0x33, -0xcd, 0x9f, 0x58, 0xa9, 0xb1, 0x67, 0x31, 0x3e, 0xe5, 0x05, 0x89, 0xfb, 0x1e, 0x31, 0x23, 0x45, -0xf5, 0xa4, 0xa0, 0xd9, 0xcc, 0xc2, 0xc6, 0xf9, 0xb4, 0xdc, 0x34, 0xf9, 0x74, 0x71, 0xda, 0xfe, -0xea, 0x1b, 0xfc, 0x62, 0x93, 0x85, 0x69, 0x0c, 0x21, 0x6a, 0x2d, 0x25, 0x9d, 0xbc, 0x02, 0xd0, -0x9b, 0x0b, 0xc0, 0xe0, 0xeb, 0xc0, 0x39, 0xd9, 0x2f, 0xe0, 0x2f, 0x5f, 0x00, 0xba, 0xf9, 0x2e, -0x30, 0x18, 0x95, 0x5b, 0x63, 0x2f, 0x3f, 0x01, 0x46, 0xbc, 0x0a, 0xe6, 0x93, 0xe5, 0x43, 0x5a, -0x9b, 0xd7, 0x32, 0x1b, 0x6f, 0xdb, 0xf3, 0xd9, 0x5a, 0x60, 0xfc, 0x3c, 0xe5, 0x38, 0x49, 0x7a, -0xfb, 0x20, 0x7e, 0x3e, 0xb9, 0x8e, 0x49, 0x2b, 0x03, 0xa4, 0x8f, 0xc8, 0x63, 0x2f, 0xbf, 0xd5, -0x91, 0xcb, 0xf4, 0xf2, 0x01, 0xb6, 0x92, 0x36, 0x22, 0xe2, 0x50, 0xa5, 0x64, 0x2b, 0x51, 0xd1, -0x2b, 0x66, 0x93, 0xce, 0x22, 0x79, 0x93, 0x6c, 0x07, 0x05, 0x69, 0x2e, 0x2e, 0xc4, 0xd0, 0x88, -0xe8, 0x90, 0xa4, 0x7c, 0x69, 0x5d, 0xb0, 0x90, 0xd6, 0x08, 0xb5, 0x52, 0xbd, 0x3f, 0x37, 0x5e, -0xb2, 0x76, 0x0e, 0x5e, 0x60, 0x5e, 0xee, 0xf5, 0x17, 0x7f, 0xf1, 0xd9, 0xb9, 0x4b, 0x7d, 0x41, -0x27, 0x73, 0x71, 0xd4, 0x1a, 0x65, 0xda, 0xb7, 0x46, 0xa3, 0x22, 0x0b, 0xb6, 0xef, 0x16, 0x8a, -0xb4, 0x4a, 0xa7, 0xe5, 0x05, 0x7f, 0xbf, 0x29, 0x50, 0xd3, 0x47, 0xf5, 0x0b, 0x7e, 0x28, 0xb5, -0x2b, 0xf7, 0xe9, 0xa5, 0xdb, 0x95, 0x7b, 0xa3, 0x30, 0x1f, 0xcc, 0x52, 0xbe, 0x52, 0x8e, 0x1f, -0x6f, 0x31, 0xba, 0xe4, 0x13, 0xd9, 0x1e, 0x87, 0x40, 0x1e, 0x11, 0x87, 0x7a, 0x57, 0x95, 0x54, -0x9c, 0x06, 0x6e, 0x68, 0x4b, 0x83, 0xd6, 0xd8, 0x02, 0x3a, 0x61, 0x41, 0x2f, 0x88, 0x16, 0x8c, -0xd1, 0x5f, 0xb3, 0x5b, 0x83, 0xcd, 0x8b, 0x4f, 0x86, 0xe4, 0x53, 0x8e, 0xf4, 0x44, 0x70, 0xd7, -0x3e, 0x35, 0x00, 0xbd, 0x70, 0x99, 0x7c, 0x83, 0x54, 0x4b, 0xda, 0xe9, 0xb2, 0x6b, 0xe4, 0x7c, -0xb3, 0x4c, 0xc0, 0xd6, 0x0a, 0xd9, 0x7a, 0xe2, 0x53, 0x47, 0x56, 0x01, 0xec, 0x27, 0x6e, 0x53, -0xb2, 0xea, 0xf7, 0x6e, 0x21, 0xd3, 0x93, 0xd7, 0xdb, 0xb4, 0x81, 0xbb, 0xa9, 0x4c, 0xb5, 0xb1, -0xfe, 0x2d, 0x48, 0x89, 0xc2, 0x03, 0x40, 0xbb, 0x7e, 0xd6, 0x52, 0x88, 0xdf, 0x04, 0x64, 0x99, -0x85, 0x41, 0x19, 0x2e, 0x86, 0x48, 0xc6, 0xe5, 0x10, 0x6f, 0x73, 0x85, 0x78, 0xdd, 0x15, 0xe2, -0xf4, 0xd7, 0x3c, 0xce, 0x29, 0x07, 0x80, 0x72, 0xc0, 0x27, 0x15, 0x7b, 0xca, 0xc1, 0xa7, 0xeb, -0xd9, 0x93, 0xee, 0x9a, 0x03, 0xc0, 0x0f, 0xb0, 0x53, 0xd3, 0x97, 0xac, 0x73, 0xc4, 0x24, 0xd8, -0xb3, 0xa4, 0xba, 0xfe, 0xd5, 0x9f, 0xc4, 0xf8, 0x15, 0x97, 0x84, 0xad, 0x44, 0x8c, 0xd0, 0x4b, -0xb0, 0x1f, 0x45, 0x92, 0xb0, 0x8e, 0x4b, 0xc2, 0xe6, 0xee, 0x95, 0xf0, 0xf8, 0x12, 0x71, 0xfb, -0x9e, 0x00, 0x7d, 0x50, 0xb3, 0xf7, 0x09, 0xf2, 0x35, 0x3a, 0x65, 0x58, 0x4a, 0xef, 0xc3, 0xcd, -0xe4, 0x7d, 0x69, 0xca, 0x6e, 0x69, 0x35, 0x78, 0xca, 0xa0, 0x34, 0xbf, 0x4e, 0xf9, 0xc9, 0xe4, -0xd5, 0x60, 0x84, 0x69, 0x95, 0x46, 0x2f, 0x8d, 0xb6, 0x42, 0x5a, 0xc5, 0x9b, 0x04, 0xe1, 0x7b, -0x82, 0x4e, 0x38, 0x4e, 0x69, 0x66, 0xda, 0xe4, 0x42, 0x5b, 0x96, 0x43, 0xe8, 0x1f, 0x66, 0xfc, -0x39, 0xed, 0xc1, 0xb6, 0xb1, 0xb3, 0x59, 0x3f, 0x95, 0xf2, 0x3c, 0x3f, 0x4b, 0x04, 0x55, 0x9d, -0x71, 0x31, 0xad, 0x04, 0xd3, 0xc8, 0x92, 0x24, 0x90, 0x57, 0x9e, 0xa1, 0x13, 0xaa, 0x38, 0x62, -0xb4, 0x64, 0x11, 0xab, 0xb4, 0x05, 0x32, 0xcb, 0xe6, 0x81, 0x4e, 0x63, 0xa1, 0xf3, 0xc2, 0x41, -0x9d, 0xd0, 0x0a, 0x45, 0x78, 0x15, 0x63, 0x39, 0xd4, 0xa5, 0x7e, 0xef, 0xef, 0x7d, 0xf8, 0x1e, -0x04, 0xf8, 0x04, 0xef, 0xc5, 0x41, 0x50, 0x7f, 0x52, 0x48, 0xd2, 0xf1, 0xc1, 0x3d, 0xf7, 0x77, -0x00, 0x1c, 0x9f, 0x24, 0x9f, 0x24, 0xa5, 0x29, 0x37, 0x4a, 0x53, 0x4f, 0xbd, 0xd8, 0x0e, 0xb0, -0xbb, 0x90, 0x64, 0x9c, 0x83, 0x7b, 0xbe, 0x87, 0xd0, 0x8f, 0xd1, 0x1a, 0xc2, 0xc5, 0xfb, 0xab, -0x32, 0xf4, 0xef, 0x11, 0x7a, 0x33, 0x72, 0xaa, 0x05, 0xc8, 0x65, 0x1b, 0xcd, 0x8a, 0xa1, 0x9e, -0x36, 0x85, 0x19, 0x86, 0x7a, 0x3a, 0x15, 0x26, 0x60, 0xf6, 0xe0, 0x58, 0x99, 0x2c, 0xb4, 0xc7, -0x76, 0x8a, 0xc9, 0x7b, 0x9a, 0x87, 0xdf, 0x47, 0xe9, 0x2f, 0xd3, 0xe8, 0xf1, 0xff, 0xa0, 0xa6, -0x0f, 0x67, 0xcb, 0x59, 0xd2, 0x8a, 0x82, 0x71, 0xf1, 0xd6, 0xf7, 0x91, 0x73, 0x9f, 0x2a, 0xf9, -0xe3, 0x20, 0x4f, 0x0e, 0xc4, 0xa7, 0xb1, 0xf6, 0xb7, 0xb2, 0x95, 0x95, 0x56, 0x98, 0x05, 0xd6, -0xb9, 0x74, 0xba, 0xb6, 0x80, 0x69, 0x51, 0x4a, 0x71, 0x9f, 0x33, 0x2f, 0x4f, 0xa0, 0x36, 0xb0, -0xbc, 0xb0, 0xee, 0x6a, 0x2d, 0xf9, 0xa7, 0xf5, 0x3e, 0xbb, 0x17, 0xeb, 0x99, 0x31, 0x4e, 0xbb, -0xaf, 0xde, 0xdf, 0x51, 0x6d, 0x2d, 0xd2, 0x2e, 0x5f, 0x06, 0xd5, 0x40, 0xca, 0x9b, 0xca, 0x5f, -0xcc, 0x6a, 0x9b, 0xf1, 0x6a, 0xaa, 0xb6, 0x19, 0x47, 0x26, 0xd6, 0x56, 0x2a, 0x4f, 0xaa, 0xae, -0x19, 0x83, 0x36, 0x2b, 0x58, 0xb1, 0xae, 0x05, 0x52, 0x9d, 0xec, 0x19, 0xff, 0xf2, 0xac, 0x3d, -0x33, 0x59, 0x6a, 0xab, 0xf4, 0x25, 0xbf, 0xb8, 0x9f, 0x6a, 0xa3, 0x49, 0xd6, 0xb2, 0x20, 0x51, -0x9b, 0x0f, 0x56, 0xd0, 0x1a, 0x11, 0xf5, 0xf5, 0x81, 0x41, 0xb0, 0x06, 0x35, 0x7b, 0x06, 0xa1, -0x20, 0x04, 0x19, 0x75, 0x46, 0x2b, 0xf3, 0xf0, 0x64, 0xe4, 0xdd, 0x7b, 0xba, 0x3b, 0x15, 0xbc, -0x30, 0xd4, 0x8b, 0xbf, 0x28, 0x17, 0xec, 0xe9, 0x6e, 0x53, 0x18, 0x15, 0x43, 0xf4, 0x0b, 0xcc, -0x47, 0x39, 0xd5, 0x5a, 0x21, 0x79, 0xe2, 0xca, 0x20, 0xbd, 0x7f, 0x4d, 0x50, 0x23, 0x0c, 0xd2, -0x39, 0x82, 0x0c, 0x3d, 0x9d, 0x89, 0x0a, 0xce, 0x42, 0x8c, 0xd3, 0x32, 0xff, 0xbe, 0xaa, 0x70, -0xbd, 0xa8, 0x89, 0x28, 0xf0, 0x49, 0x1d, 0xb6, 0x1d, 0x1d, 0x84, 0x52, 0xcc, 0x99, 0xce, 0x52, -0xba, 0x88, 0x4f, 0x7f, 0x6a, 0x38, 0x08, 0xdc, 0x08, 0xc9, 0x22, 0xb4, 0x53, 0xf3, 0x8b, 0xe1, -0x46, 0x35, 0x8e, 0xe1, 0x7b, 0x68, 0x5d, 0x93, 0xe4, 0x05, 0xb6, 0xa2, 0xa3, 0xb2, 0x73, 0x09, -0x4f, 0x48, 0xf5, 0x7d, 0x05, 0x07, 0x88, 0xcf, 0x52, 0xe3, 0x64, 0xf0, 0xdd, 0xb8, 0x1c, 0xda, -0x5b, 0xd3, 0x37, 0x34, 0x48, 0x23, 0x45, 0xb5, 0x5d, 0xc2, 0xcf, 0xa5, 0x7f, 0xc9, 0x01, 0x5a, -0x85, 0x42, 0x9e, 0xd1, 0x39, 0x7e, 0xd6, 0x86, 0x73, 0x8d, 0x49, 0xbd, 0x0d, 0x79, 0x13, 0xd5, -0x3a, 0x36, 0x8b, 0x68, 0xe3, 0xe7, 0xd3, 0xf6, 0x8c, 0xd2, 0x66, 0x0f, 0x5f, 0x4f, 0xa7, 0x0e, -0xfb, 0x94, 0xd5, 0xed, 0xfd, 0x3d, 0xa2, 0xce, 0xd3, 0x93, 0x78, 0xfb, 0x78, 0x39, 0xb5, 0xd4, -0xc3, 0x38, 0x1e, 0x79, 0xe4, 0xf1, 0x3d, 0x6c, 0x35, 0xeb, 0xa9, 0xe1, 0x36, 0x5b, 0x62, 0x9c, -0x9c, 0xfb, 0x34, 0x31, 0x3f, 0x5d, 0x3a, 0x65, 0xb2, 0xda, 0x34, 0x49, 0x8a, 0xc7, 0x79, 0x58, -0x96, 0xe3, 0x1f, 0xdd, 0x08, 0xb4, 0x56, 0x26, 0x8d, 0x8b, 0xe2, 0x7c, 0xb0, 0x7a, 0x0f, 0x11, -0x86, 0xe6, 0x7b, 0xc7, 0xcf, 0x25, 0x25, 0x7c, 0x1b, 0xed, 0x18, 0x7b, 0x7f, 0xe7, 0xbb, 0xbb, -0xd3, 0x97, 0x90, 0xf2, 0xf9, 0x0c, 0xa6, 0xa5, 0x8d, 0x32, 0xbc, 0x7d, 0xfe, 0xf8, 0x39, 0xde, -0x43, 0x58, 0x92, 0xef, 0x1a, 0x3f, 0x4d, 0x21, 0xd2, 0x7a, 0x84, 0x65, 0x2a, 0xe2, 0x59, 0xab, -0x24, 0xf7, 0x9b, 0x5c, 0x15, 0x9f, 0x14, 0xc7, 0xad, 0x5a, 0xc6, 0x35, 0x80, 0x71, 0xfe, 0xf8, -0x69, 0xd1, 0x97, 0x4c, 0x43, 0x1e, 0x49, 0x36, 0x57, 0x2a, 0xa5, 0x89, 0x2b, 0x1b, 0xc9, 0x94, -0x12, 0x2b, 0x21, 0x13, 0x53, 0xcb, 0xb4, 0xad, 0x59, 0x4f, 0x35, 0x89, 0xda, 0xd5, 0x32, 0xed, -0x7b, 0xf7, 0xca, 0xed, 0x21, 0xef, 0x78, 0xbc, 0x5b, 0x7e, 0x9a, 0xfa, 0x3c, 0x68, 0xa4, 0xf6, -0x7c, 0xe9, 0x0c, 0x5b, 0xcd, 0xd4, 0xd7, 0xc6, 0x70, 0xde, 0x02, 0xc5, 0x11, 0xc9, 0x13, 0x1b, -0x4b, 0xed, 0x35, 0x91, 0x77, 0x9f, 0x86, 0x7a, 0xc2, 0x15, 0x05, 0x9d, 0x13, 0x56, 0x0d, 0x6d, -0xc5, 0xb9, 0x7b, 0x20, 0x05, 0x71, 0x46, 0x9d, 0xe8, 0x89, 0x8f, 0xda, 0xa4, 0xfb, 0x7b, 0xd4, -0x63, 0x3c, 0xe6, 0xd1, 0x93, 0x5a, 0x03, 0x46, 0x6a, 0x65, 0x36, 0x61, 0x2b, 0xf3, 0xf9, 0x30, -0x0b, 0xf1, 0xc3, 0x8a, 0x32, 0xbd, 0x71, 0xf7, 0xe3, 0x50, 0xd0, 0xa6, 0x35, 0x4e, 0x35, 0x0a, -0xc8, 0x8b, 0x6b, 0x44, 0x95, 0x51, 0x61, 0xd6, 0xf0, 0xee, 0x28, 0x58, 0x60, 0xc7, 0x26, 0x9b, -0xca, 0x73, 0xb7, 0x28, 0xf8, 0x06, 0x40, 0x17, 0xb2, 0xee, 0xee, 0x0d, 0xe6, 0xfc, 0xe2, 0x70, -0x50, 0x6b, 0x55, 0xb5, 0x29, 0xac, 0xea, 0xe3, 0x77, 0x89, 0x79, 0x56, 0xac, 0xd5, 0x43, 0x9b, -0xf0, 0x89, 0xc2, 0x55, 0xc7, 0x63, 0xa2, 0xf6, 0x38, 0x79, 0x96, 0xd5, 0xe2, 0x9b, 0x7a, 0xe8, -0x67, 0x38, 0x1e, 0x32, 0x03, 0x3d, 0xbf, 0x38, 0x1c, 0xd2, 0xc8, 0xa7, 0xf6, 0xf7, 0xe1, 0xc8, -0x53, 0xe2, 0x5c, 0xcd, 0x76, 0x11, 0x3e, 0x26, 0xce, 0x1f, 0xb9, 0x31, 0xac, 0x3f, 0xed, 0x2a, -0x1a, 0x7e, 0x71, 0x1a, 0xce, 0x21, 0x8d, 0x3c, 0xc1, 0xb8, 0xd5, 0xb1, 0x24, 0x7f, 0xb5, 0xc1, -0x42, 0xf2, 0xe7, 0x73, 0x37, 0x74, 0x81, 0x2a, 0xbe, 0x19, 0xf9, 0xd9, 0xbb, 0x85, 0xf9, 0xf1, -0xbb, 0xf0, 0xda, 0xc2, 0x42, 0xee, 0x4d, 0x3f, 0x37, 0x8f, 0xdc, 0xef, 0x7d, 0xde, 0xf6, 0x78, -0x3f, 0xf5, 0x90, 0xa2, 0x0d, 0xe3, 0x33, 0xe2, 0x8f, 0xb9, 0x3f, 0x88, 0x77, 0x91, 0xb5, 0xd7, -0x6f, 0x74, 0x41, 0x6e, 0x7c, 0x08, 0x7f, 0xcb, 0xe3, 0x7b, 0xb1, 0x17, 0x6a, 0xf2, 0xab, 0xe2, -0xbb, 0x31, 0xb5, 0x9a, 0xfc, 0xf2, 0x78, 0x3d, 0xde, 0x57, 0xe0, 0xd5, 0xc8, 0x62, 0x9b, 0xf1, -0xa9, 0x03, 0xaf, 0x08, 0x5e, 0xeb, 0x30, 0x44, 0x1b, 0xdf, 0x20, 0xb4, 0xc7, 0x5b, 0xbf, 0x21, -0xc4, 0xdb, 0x90, 0x03, 0xd5, 0xa7, 0x59, 0xef, 0xf5, 0x60, 0x3a, 0x8f, 0xa4, 0x4e, 0xe8, 0x53, -0x4e, 0xa9, 0x33, 0xfa, 0xa4, 0x53, 0x9e, 0xe2, 0x3a, 0x99, 0xcf, 0xbc, 0x31, 0xaa, 0x2d, 0xf6, -0xe1, 0xfe, 0x34, 0x0f, 0xd6, 0xc4, 0x8d, 0x36, 0xc3, 0x6e, 0xc4, 0x8e, 0xb4, 0x73, 0xdf, 0x14, -0x3a, 0xa7, 0x1c, 0x43, 0xf1, 0x8e, 0x2d, 0xbf, 0x3b, 0xa4, 0x9e, 0x23, 0xc0, 0x5e, 0xe6, 0xd1, -0x79, 0x6f, 0xa2, 0xc5, 0xa8, 0xb5, 0x42, 0x11, 0xfa, 0x2e, 0xd4, 0x86, 0x25, 0x3d, 0x8f, 0x75, -0xff, 0x7c, 0xf2, 0xa9, 0x6d, 0x0c, 0x1b, 0x0b, 0xc9, 0x67, 0xe8, 0xed, 0xf3, 0xe3, 0x9f, 0xdb, -0x41, 0xe6, 0x8f, 0x77, 0xfb, 0xf7, 0xff, 0x99, 0xa7, 0x67, 0x73, 0x33, 0x6b, 0x7b, 0xbd, 0x98, -0x4d, 0x1e, 0x9c, 0xf9, 0x25, 0x0f, 0x1e, 0x49, 0xc7, 0x50, 0xe6, 0x3f, 0xe0, 0x5d, 0x63, 0x7b, -0x7c, 0x2c, 0xe5, 0x97, 0xf9, 0xa2, 0x3a, 0x3c, 0x77, 0xd9, 0x1d, 0x9a, 0xc5, 0x13, 0x76, 0x68, -0x3e, 0x58, 0x31, 0x36, 0x3e, 0x2c, 0x79, 0x32, 0x98, 0xb0, 0x47, 0xf3, 0x58, 0xd8, 0x7b, 0xa9, -0x3d, 0x9a, 0x57, 0xd6, 0x5d, 0xbc, 0x47, 0x73, 0x29, 0xbb, 0x13, 0xb4, 0x97, 0x44, 0x2b, 0x70, -0x8c, 0x13, 0x68, 0x35, 0x65, 0x19, 0xc9, 0x53, 0x6e, 0x35, 0xad, 0xfd, 0x24, 0x6d, 0xd6, 0x13, -0xe5, 0xdc, 0x1f, 0x3f, 0xc8, 0x2c, 0x07, 0xe0, 0xd8, 0x0a, 0xc9, 0xbe, 0x16, 0xed, 0x08, 0xc9, -0x62, 0x06, 0xe4, 0x18, 0xc3, 0x45, 0x31, 0xf7, 0x4f, 0xb0, 0x25, 0x90, 0x47, 0xf6, 0x05, 0xe2, -0x1b, 0xd8, 0xb8, 0xa5, 0x73, 0xef, 0x0a, 0xd3, 0x6c, 0x13, 0x2b, 0x01, 0x96, 0x49, 0x53, 0x31, -0x12, 0x5f, 0x47, 0xeb, 0x65, 0x64, 0x2b, 0x28, 0xf8, 0xa9, 0xe9, 0xce, 0x54, 0x3d, 0xc9, 0xd2, -0x40, 0x38, 0x2f, 0x7d, 0x45, 0x85, 0x77, 0xf1, 0xf7, 0xce, 0xf1, 0x49, 0xbb, 0x20, 0x21, 0xe6, -0x43, 0x90, 0x95, 0x5e, 0x61, 0xea, 0xa5, 0x1a, 0xe3, 0xa5, 0xc7, 0xcb, 0x40, 0x96, 0x13, 0xc8, -0x87, 0x37, 0xaf, 0x49, 0xda, 0xaf, 0x24, 0x3b, 0x36, 0x26, 0x13, 0xad, 0xae, 0x61, 0xfd, 0x2c, -0x58, 0x17, 0x9c, 0xff, 0x0c, 0x05, 0x56, 0xc8, 0x31, 0x63, 0x89, 0xe9, 0x64, 0x26, 0xec, 0xe0, -0x15, 0xe9, 0x39, 0x31, 0x0f, 0xe4, 0x7a, 0xf2, 0x73, 0x28, 0x51, 0x38, 0xe9, 0xd4, 0xf9, 0x45, -0x30, 0xfa, 0xab, 0x80, 0x31, 0x5c, 0x05, 0x4c, 0xce, 0xc5, 0x30, 0x73, 0x05, 0xa4, 0x07, 0x06, -0x9c, 0x15, 0xc9, 0x36, 0x2b, 0xf9, 0x70, 0xa4, 0xe7, 0x1c, 0xbc, 0x34, 0xbe, 0xbb, 0x10, 0x5b, -0xac, 0xac, 0x7c, 0x4a, 0x7b, 0x46, 0xfa, 0x3a, 0x9d, 0x6f, 0x33, 0x8b, 0xd1, 0xb3, 0x18, 0xd5, -0x84, 0x98, 0xbb, 0x59, 0x8c, 0x81, 0xc5, 0xa8, 0x27, 0xc4, 0x7c, 0x8f, 0xc5, 0xe4, 0xb0, 0x98, -0x29, 0x13, 0x62, 0xee, 0x4a, 0x62, 0x82, 0x92, 0xac, 0xdd, 0x5f, 0xd8, 0x27, 0xe7, 0x91, 0x0a, -0x25, 0x0f, 0x94, 0x3f, 0x91, 0xd3, 0x4f, 0x85, 0xaa, 0x31, 0xf4, 0x3e, 0x39, 0xed, 0x54, 0xe8, -0x14, 0xf2, 0x6f, 0x29, 0x59, 0x78, 0xf0, 0x8c, 0x25, 0x6c, 0x29, 0x98, 0xbd, 0x26, 0x6d, 0xf2, -0x8c, 0xae, 0x12, 0xfb, 0x61, 0x5b, 0x83, 0x41, 0x5a, 0x3d, 0x0a, 0x99, 0xa4, 0x95, 0x25, 0x9c, -0xe1, 0x4b, 0xc5, 0x15, 0xd2, 0xba, 0x11, 0xc5, 0xb3, 0xa7, 0x19, 0x18, 0x6a, 0x46, 0xca, 0x30, -0xc0, 0xf8, 0xd9, 0x22, 0xec, 0x41, 0xe7, 0x64, 0x3e, 0x95, 0xd9, 0xdb, 0x98, 0x25, 0xad, 0x20, -0x22, 0x0e, 0x6a, 0x84, 0x9f, 0x7a, 0xa3, 0x9a, 0xb4, 0xf6, 0x15, 0x15, 0x3f, 0x7a, 0x81, 0xa7, -0x93, 0xdb, 0x20, 0x6b, 0x48, 0x7c, 0xca, 0xf0, 0xe0, 0xdc, 0x45, 0x1c, 0x71, 0x99, 0x1c, 0xff, -0x2a, 0x8b, 0x3f, 0x7a, 0x51, 0xfc, 0x2c, 0x39, 0x7e, 0x2f, 0x8b, 0x1f, 0xba, 0x98, 0xa3, 0x86, -0x87, 0x31, 0x2c, 0x49, 0x7b, 0x82, 0x06, 0xa2, 0xd3, 0x0f, 0xcf, 0x48, 0xd1, 0x69, 0x2c, 0x67, -0x4e, 0xd2, 0xa6, 0x95, 0x11, 0xb9, 0x86, 0xfc, 0x84, 0xce, 0x88, 0x58, 0x42, 0xab, 0x92, 0x93, -0x28, 0x9f, 0xb4, 0x4e, 0xb9, 0x97, 0xa8, 0x11, 0xd3, 0x5b, 0x60, 0x90, 0x17, 0xc1, 0x3d, 0xc7, -0xa8, 0x13, 0xcf, 0x46, 0x4a, 0x2e, 0x96, 0x2c, 0x9b, 0xec, 0xfe, 0x30, 0xfa, 0x22, 0x4c, 0x3e, -0x2b, 0x26, 0xd9, 0x9d, 0x98, 0x40, 0x5b, 0x06, 0xc3, 0x9a, 0x4b, 0xd1, 0x96, 0x3f, 0xbf, 0x30, -0x99, 0xb6, 0x30, 0xcb, 0x5f, 0x74, 0x5e, 0xa8, 0x15, 0x72, 0x90, 0x82, 0x98, 0xf8, 0x7c, 0xa5, -0x8d, 0xac, 0x39, 0xf2, 0xb4, 0x1f, 0xc9, 0xbb, 0xdf, 0xe7, 0x6c, 0x13, 0xad, 0x39, 0x1a, 0x29, -0x7e, 0x10, 0x4c, 0xab, 0x4c, 0x5b, 0x07, 0x81, 0xbf, 0xd1, 0xad, 0xb4, 0x85, 0x41, 0xcc, 0x72, -0xff, 0x05, 0xe7, 0x57, 0xef, 0xcb, 0x67, 0x80, 0xbf, 0xa6, 0x85, 0xb3, 0x71, 0xb6, 0x40, 0x0c, -0xf9, 0xbd, 0x33, 0x48, 0xb7, 0x1f, 0x57, 0xda, 0x64, 0x0f, 0x76, 0x69, 0x96, 0x19, 0x93, 0x3e, -0x85, 0xe9, 0x04, 0x15, 0xad, 0xff, 0x37, 0xc3, 0xf6, 0x2a, 0xa4, 0x22, 0x22, 0xff, 0xab, 0x33, -0x90, 0x13, 0xcc, 0xf1, 0xe1, 0x57, 0xa1, 0xac, 0x74, 0x0b, 0x3d, 0x64, 0x5b, 0xa4, 0xbe, 0xcf, -0x24, 0x98, 0xb2, 0x82, 0x27, 0xd2, 0xec, 0x6c, 0x30, 0x4b, 0x26, 0x4a, 0x87, 0xef, 0x01, 0xb2, -0x74, 0x64, 0x6c, 0x55, 0xda, 0xf8, 0x56, 0x65, 0x29, 0x9d, 0x0d, 0x53, 0x40, 0xff, 0x3d, 0x38, -0xd7, 0xeb, 0xb7, 0xf5, 0x0e, 0xf5, 0x34, 0xa2, 0x0c, 0x50, 0xfe, 0x1e, 0x47, 0x6b, 0xf7, 0xba, -0xf2, 0x4f, 0x76, 0x40, 0xba, 0xbd, 0x90, 0x57, 0x06, 0x95, 0x36, 0xa3, 0xe2, 0xd8, 0xa0, 0xb2, -0x74, 0xae, 0x1b, 0xbf, 0xc4, 0x2f, 0x86, 0xba, 0x1b, 0x6c, 0xc8, 0x29, 0xa4, 0x3c, 0xd9, 0x15, -0xa4, 0x7b, 0x36, 0x36, 0x2e, 0x49, 0xb7, 0xb8, 0x2b, 0xe0, 0x77, 0x76, 0x3b, 0xe4, 0x30, 0xea, -0xe8, 0x40, 0xf9, 0x8c, 0xd1, 0x46, 0xc9, 0x9a, 0x87, 0xf7, 0xcf, 0x0e, 0xb2, 0x25, 0xc6, 0x5b, -0xe5, 0x5d, 0x01, 0xa4, 0x5d, 0xb6, 0xaa, 0xf7, 0x61, 0x05, 0x5f, 0x9d, 0x66, 0x75, 0x64, 0x53, -0xa8, 0x03, 0x7b, 0xb6, 0x35, 0x6c, 0x48, 0xa7, 0x26, 0xcc, 0x26, 0xcd, 0x72, 0x5f, 0x4f, 0x9b, -0x2e, 0xdd, 0xfa, 0xc9, 0xc5, 0xd4, 0x4d, 0x7a, 0x0b, 0x99, 0x24, 0x1b, 0x28, 0xb2, 0xf5, 0x13, -0xfd, 0xdc, 0xa5, 0xa0, 0x71, 0x7f, 0xa0, 0x74, 0xa4, 0x5b, 0xd2, 0x14, 0x35, 0x64, 0x29, 0x98, -0xcd, 0xaf, 0xa9, 0xdc, 0xc9, 0x93, 0xfd, 0xfd, 0xd4, 0x56, 0x7c, 0xca, 0xdf, 0xc9, 0x81, 0xea, -0x37, 0xbb, 0xa4, 0x13, 0x60, 0x31, 0x5a, 0x1f, 0xc7, 0xf2, 0x0f, 0xa5, 0x2c, 0xe3, 0xd0, 0xfa, -0x2e, 0x6c, 0xe1, 0x5d, 0xe9, 0xde, 0x54, 0x58, 0x59, 0x1b, 0xc9, 0xf2, 0xf1, 0xc3, 0x37, 0x86, -0xe3, 0x46, 0xdf, 0x44, 0xdf, 0x29, 0xc1, 0x12, 0xc9, 0xce, 0xfd, 0xa3, 0x77, 0x20, 0xa5, 0xdf, -0x52, 0xdf, 0x17, 0xca, 0x9d, 0x4b, 0xe7, 0x94, 0x99, 0xad, 0xfb, 0x34, 0x8c, 0x28, 0x96, 0xac, -0xd8, 0xa6, 0x85, 0x94, 0xd1, 0x7b, 0x9a, 0x85, 0x94, 0x36, 0xf6, 0x5e, 0x9e, 0xb2, 0x44, 0x43, -0xef, 0xd6, 0x69, 0xea, 0xbb, 0xf0, 0x7d, 0xfb, 0x8d, 0x15, 0xf0, 0x88, 0xf0, 0x38, 0x3c, 0xc4, -0x67, 0xd4, 0xc7, 0x30, 0x9f, 0xed, 0x3e, 0x81, 0x59, 0x05, 0x53, 0xc5, 0x16, 0xa5, 0x79, 0x78, -0x5b, 0x8d, 0x25, 0x6f, 0x86, 0x4c, 0x1b, 0xf9, 0x29, 0xad, 0x4c, 0x78, 0x3e, 0x29, 0x80, 0x77, -0x9e, 0xc4, 0x98, 0xad, 0x92, 0x17, 0x13, 0x3a, 0x23, 0x6d, 0x86, 0xbb, 0xbf, 0x07, 0xe5, 0x0e, -0x70, 0x63, 0x4f, 0xd1, 0xb9, 0x6a, 0xbc, 0xd3, 0xde, 0x60, 0x21, 0xaf, 0x4c, 0xf9, 0x29, 0xc1, -0x21, 0xc8, 0xb4, 0xb3, 0x94, 0x0d, 0x88, 0xbb, 0xa9, 0xb6, 0x78, 0x41, 0xa3, 0x82, 0xe9, 0x41, -0xa3, 0x58, 0xc0, 0x74, 0xc6, 0x72, 0xfc, 0x0f, 0x92, 0x5d, 0xe5, 0x90, 0x96, 0xed, 0xe4, 0x6f, -0x43, 0xdc, 0xd0, 0x93, 0x9d, 0xdd, 0x90, 0x5e, 0x7c, 0x6b, 0xc9, 0xc8, 0x05, 0x4f, 0xd5, 0xc8, -0x05, 0xc0, 0x51, 0xba, 0x5d, 0x3c, 0xcb, 0x4f, 0x19, 0xde, 0xbc, 0x64, 0x64, 0xec, 0x13, 0xe4, -0x6d, 0xa3, 0xc8, 0xaf, 0x6e, 0x36, 0xb5, 0xb1, 0x9d, 0x93, 0xc2, 0x94, 0x7d, 0x27, 0x3b, 0xca, -0x32, 0x30, 0x20, 0x08, 0xa2, 0xe6, 0x97, 0xc3, 0xb7, 0x1d, 0xf4, 0xf6, 0x78, 0x04, 0xf7, 0x47, -0x30, 0x20, 0x8f, 0xed, 0x20, 0xe6, 0xa1, 0xf6, 0x09, 0xa1, 0x53, 0x51, 0x6e, 0xc2, 0x57, 0xcf, -0x61, 0x18, 0x28, 0xb2, 0xf5, 0x36, 0xc8, 0x93, 0xfd, 0x85, 0xe8, 0x1a, 0x40, 0xa1, 0x96, 0xce, -0x0e, 0x1e, 0xeb, 0x76, 0x7e, 0x23, 0x47, 0xed, 0x1f, 0xd5, 0x2b, 0x20, 0x97, 0x7b, 0x84, 0x3b, -0xcf, 0xfe, 0x1e, 0x61, 0x7f, 0xf8, 0x84, 0x61, 0x2f, 0x72, 0x2f, 0xa2, 0x94, 0x32, 0xab, 0x90, -0x53, 0x0b, 0xf1, 0xbb, 0xc9, 0x6f, 0x76, 0x03, 0xf9, 0x9d, 0x76, 0xc3, 0x06, 0xb2, 0x76, 0x46, -0xb6, 0x44, 0xd8, 0xa9, 0xf3, 0x6d, 0xb3, 0xc9, 0x9a, 0xe0, 0xfd, 0x4c, 0xab, 0x62, 0x3a, 0xec, -0xc4, 0x52, 0x6d, 0xc1, 0xd0, 0x47, 0xa9, 0x06, 0x17, 0x69, 0x58, 0xec, 0x4c, 0x50, 0x2c, 0xfc, -0x46, 0x73, 0x85, 0x6f, 0x30, 0xab, 0x4b, 0x7d, 0x85, 0x54, 0x9e, 0xce, 0x0d, 0x4f, 0x0b, 0x6a, -0xf1, 0xfb, 0x3c, 0xb8, 0x99, 0x56, 0xc0, 0xdc, 0x67, 0x21, 0x07, 0x61, 0x6e, 0x8e, 0xd4, 0x3c, -0x78, 0x84, 0xf9, 0xe6, 0x3e, 0x6a, 0x02, 0x5d, 0x1b, 0xc4, 0x80, 0x0f, 0x6e, 0x64, 0x92, 0xe7, -0x7a, 0xbd, 0x1d, 0x6e, 0xc6, 0xaf, 0x56, 0x85, 0xe8, 0x3c, 0xf2, 0x3a, 0x9c, 0x71, 0x06, 0x45, -0x49, 0xab, 0x30, 0x13, 0x76, 0xa6, 0x72, 0xc4, 0x19, 0xe3, 0x92, 0x39, 0x82, 0x74, 0x5e, 0x63, -0x46, 0x1a, 0xec, 0x25, 0x6b, 0x84, 0x7c, 0x9f, 0xc1, 0x37, 0x80, 0x14, 0x8b, 0x74, 0x86, 0xa6, -0xd9, 0x35, 0x28, 0x33, 0xc4, 0x3a, 0x01, 0x1e, 0xa2, 0xaf, 0x18, 0x4d, 0x92, 0xe9, 0x51, 0x8a, -0x12, 0x61, 0xad, 0x6f, 0x9e, 0x4c, 0x89, 0x28, 0x95, 0x57, 0x30, 0x15, 0x4c, 0xc1, 0x06, 0x06, -0xc2, 0x1e, 0x71, 0x79, 0xb2, 0x95, 0xb0, 0xa6, 0x13, 0x5a, 0xa9, 0xf4, 0x92, 0x25, 0x36, 0xcb, -0x3a, 0x91, 0x5f, 0x52, 0xde, 0x34, 0xbf, 0x1c, 0x77, 0xf3, 0x95, 0x29, 0x7b, 0x5a, 0x16, 0xc9, -0xa7, 0x49, 0xec, 0xf0, 0x93, 0x60, 0x0b, 0xfa, 0xc4, 0x56, 0x2c, 0x49, 0x01, 0xe2, 0x31, 0xe2, -0xae, 0xae, 0x03, 0x2b, 0x90, 0x17, 0x34, 0xd2, 0x69, 0x65, 0x56, 0x53, 0x8d, 0x3d, 0xd3, 0xff, -0x20, 0x72, 0xf6, 0x4e, 0xbe, 0x22, 0x65, 0x29, 0x03, 0xe9, 0x8c, 0x91, 0xcd, 0x80, 0x85, 0xfe, -0xad, 0xec, 0x1e, 0x24, 0x5d, 0x59, 0x31, 0xb3, 0x6a, 0x64, 0xa4, 0xae, 0x82, 0xd9, 0xf5, 0x58, -0x32, 0xf2, 0xc5, 0x56, 0x1a, 0x6f, 0xa9, 0x3c, 0xc9, 0x02, 0x47, 0x70, 0xfb, 0x84, 0x71, 0xf4, -0x9c, 0x08, 0x63, 0x5b, 0xc9, 0x0e, 0xf9, 0xf8, 0xb0, 0xbc, 0xd7, 0x1c, 0x23, 0x5e, 0x43, 0xb2, -0xa7, 0xfb, 0x49, 0x31, 0x8c, 0x7c, 0x7c, 0x0e, 0xaf, 0xd3, 0x78, 0x9d, 0x85, 0x91, 0x0b, 0xfb, -0x60, 0x64, 0x3c, 0xf3, 0x7f, 0xd0, 0x6e, 0x6e, 0x34, 0xb2, 0x72, 0xd5, 0xea, 0xc6, 0x96, 0x35, -0xab, 0xd3, 0x2c, 0xe7, 0x3a, 0x27, 0x5a, 0xce, 0x9d, 0x0c, 0x22, 0xd9, 0xce, 0x3d, 0x77, 0x0a, -0x46, 0x67, 0x9e, 0xef, 0x9e, 0xa7, 0xfc, 0x3a, 0x3e, 0x1f, 0xc3, 0xeb, 0x49, 0x2c, 0xb1, 0x2a, -0x69, 0x76, 0x34, 0x0b, 0x43, 0x4a, 0x25, 0xdb, 0xb9, 0x9f, 0x3c, 0xf6, 0xd9, 0x47, 0x6f, 0xfe, -0xf6, 0xa2, 0x54, 0x26, 0xf8, 0x2d, 0xbc, 0xa8, 0x18, 0xf4, 0xcc, 0x37, 0xb6, 0xaf, 0xe4, 0x1b, -0x3b, 0x3b, 0x9a, 0xc0, 0x53, 0x39, 0xb7, 0x91, 0x0f, 0xae, 0x6c, 0x69, 0x6b, 0x6a, 0xe4, 0xa3, -0x9d, 0x7c, 0xa4, 0x69, 0xd5, 0x4a, 0xe6, 0x31, 0x22, 0xda, 0x34, 0xe7, 0x16, 0x2d, 0xb0, 0xef, -0x22, 0x4d, 0x6b, 0x3a, 0xd7, 0x46, 0x30, 0xa9, 0x3a, 0xcf, 0x9d, 0x95, 0xd5, 0xb7, 0xd6, 0x7a, -0xa5, 0x24, 0x9a, 0x22, 0x91, 0xce, 0x88, 0x54, 0x4b, 0x7e, 0x6e, 0xa3, 0x8d, 0xff, 0x76, 0xa4, -0x25, 0x1a, 0x6d, 0xea, 0xe0, 0x1b, 0x57, 0x46, 0x57, 0xf2, 0xdf, 0x5e, 0xb9, 0x86, 0x6f, 0xeb, -0x5c, 0x13, 0x4d, 0x99, 0x4b, 0x25, 0x5b, 0xa8, 0xe7, 0xd3, 0x7c, 0x1f, 0xfe, 0xe5, 0x64, 0xea, -0x39, 0xce, 0xa7, 0xd9, 0x48, 0x9d, 0x73, 0x65, 0x7b, 0xa8, 0x1f, 0x1f, 0xb8, 0xb2, 0x3d, 0xd4, -0x73, 0xcd, 0x57, 0x6b, 0x0f, 0xf5, 0x5c, 0xf8, 0xcb, 0xed, 0xa1, 0x7e, 0x7c, 0xf8, 0x6f, 0xb6, -0x87, 0xaa, 0xf8, 0x32, 0x7b, 0xa8, 0xe7, 0x76, 0x5e, 0xde, 0x1e, 0xea, 0xb9, 0xfe, 0xc9, 0xf6, -0x50, 0x3f, 0x3e, 0x7e, 0x25, 0x7b, 0xa8, 0xe7, 0xd6, 0x4f, 0xb6, 0x87, 0x7a, 0xae, 0xf7, 0x62, -0x7b, 0xa8, 0xe7, 0x76, 0xfc, 0x1d, 0xf6, 0x50, 0x2f, 0xe9, 0xa3, 0x4f, 0xf6, 0x27, 0xd1, 0x35, -0xe1, 0x6d, 0x9d, 0xd4, 0xea, 0x12, 0x97, 0x65, 0xb2, 0x42, 0xe5, 0xe2, 0x33, 0xe0, 0xab, 0x38, -0x03, 0x3b, 0x45, 0x5d, 0xba, 0x45, 0x3e, 0xd9, 0xe7, 0xf2, 0x87, 0x58, 0xf3, 0xd3, 0x12, 0xe7, -0x93, 0xf4, 0xd1, 0x8d, 0x39, 0x91, 0x7f, 0xe0, 0x88, 0x72, 0x77, 0xac, 0xc9, 0x44, 0x56, 0xf0, -0x8e, 0xc6, 0x8e, 0xc6, 0x8c, 0xdf, 0xd2, 0x98, 0x99, 0x0e, 0x40, 0x96, 0xaf, 0x05, 0x96, 0x07, -0x75, 0x18, 0x9e, 0x13, 0x68, 0x01, 0x13, 0x79, 0x16, 0x26, 0xdf, 0x3b, 0x29, 0xcf, 0xe0, 0x2c, -0x0d, 0xe4, 0xc5, 0x6b, 0x91, 0xf7, 0x26, 0x5f, 0x88, 0xb2, 0x9f, 0xc0, 0x2a, 0x63, 0x0b, 0x9c, -0x0a, 0x73, 0x46, 0x0b, 0x07, 0xef, 0x0c, 0xa4, 0x38, 0x17, 0x86, 0x25, 0xff, 0x3c, 0x51, 0xf6, -0xf4, 0x75, 0x42, 0x6e, 0xa8, 0x94, 0x59, 0x8f, 0x5c, 0x24, 0xcd, 0xc4, 0xd4, 0x86, 0xe2, 0x2c, -0x6c, 0xaf, 0x22, 0xd2, 0xfe, 0x5d, 0xa5, 0x93, 0x3c, 0x7b, 0xdd, 0x1a, 0x3b, 0xc9, 0x6c, 0x2f, -0x11, 0x84, 0xac, 0x95, 0x31, 0x3a, 0x7d, 0x37, 0xf5, 0x04, 0x59, 0x8e, 0xa7, 0xb7, 0xcc, 0xc7, -0x70, 0x36, 0xa7, 0xb9, 0xa2, 0x17, 0xe7, 0xdd, 0xca, 0x44, 0xa8, 0xee, 0x58, 0x18, 0xf4, 0x56, -0xf0, 0x93, 0xcd, 0x20, 0xf2, 0x22, 0x3d, 0x88, 0xff, 0xa8, 0xfc, 0x8b, 0x5c, 0x38, 0xca, 0x5a, -0xa1, 0x2e, 0x01, 0x97, 0xb5, 0x7b, 0x26, 0xad, 0x0b, 0x2f, 0x0b, 0x0c, 0x42, 0x69, 0xf2, 0xdb, -0xe1, 0x99, 0x2e, 0xf8, 0x66, 0x42, 0xdf, 0x7c, 0xbc, 0xcb, 0xd4, 0x0a, 0x2e, 0xe6, 0x9b, 0x4a, -0x3f, 0xc1, 0x66, 0x7b, 0x35, 0xb3, 0xce, 0x7f, 0x56, 0xb6, 0x76, 0xaf, 0xa7, 0x7e, 0x44, 0xca, -0xb8, 0x22, 0xc5, 0x43, 0x5b, 0x64, 0x9b, 0x02, 0x64, 0x2d, 0x96, 0x2c, 0xfe, 0x8d, 0xfb, 0xeb, -0xfb, 0x1c, 0x36, 0x66, 0xff, 0x33, 0x0b, 0x39, 0x80, 0xcf, 0x1b, 0x82, 0x92, 0x25, 0x50, 0x85, -0xa2, 0xc1, 0x4a, 0x16, 0x40, 0xc9, 0x57, 0x54, 0x83, 0x8e, 0x6c, 0x82, 0x22, 0x07, 0xd3, 0x4a, -0x16, 0x35, 0x74, 0x92, 0xc5, 0xc3, 0x11, 0xc9, 0x72, 0xbd, 0x72, 0x39, 0x49, 0x65, 0x92, 0xed, -0x7a, 0xce, 0x85, 0xb2, 0x9c, 0x0b, 0xb4, 0xf8, 0xf5, 0x49, 0xb2, 0x19, 0x8a, 0xb1, 0xc5, 0x38, -0xf3, 0x6e, 0xc3, 0x67, 0x94, 0xe4, 0x38, 0x1b, 0xf9, 0x47, 0xc3, 0x30, 0x13, 0xf9, 0x8c, 0xd0, -0xb9, 0x62, 0x24, 0xfd, 0x3d, 0xd7, 0xe0, 0xc0, 0xd0, 0x99, 0x18, 0x3b, 0xc2, 0xbe, 0xbd, 0x16, -0xbf, 0xbd, 0x1b, 0xef, 0x06, 0xe4, 0x6f, 0xc6, 0x30, 0xe5, 0x83, 0xf8, 0x9c, 0x1d, 0x92, 0xe0, -0x69, 0x0f, 0xe1, 0xb4, 0x58, 0x8f, 0x4f, 0xa4, 0x25, 0xbf, 0xbc, 0x41, 0x8f, 0x4f, 0xaa, 0x50, -0x23, 0xfe, 0x62, 0x39, 0x14, 0x2f, 0x8a, 0xf8, 0x7d, 0x8c, 0xf2, 0xae, 0xc3, 0x3b, 0xe6, 0xad, -0x20, 0x8b, 0x23, 0x3a, 0xde, 0x06, 0x8e, 0x21, 0x6c, 0x47, 0xe4, 0x66, 0x92, 0xfd, 0x90, 0x79, -0x84, 0xf1, 0x99, 0xa3, 0x99, 0xfb, 0x50, 0xd6, 0x08, 0x08, 0x36, 0xe6, 0x27, 0x64, 0xdc, 0x88, -0x90, 0xbb, 0x25, 0xc8, 0x3c, 0x82, 0x64, 0xf6, 0x97, 0x46, 0xaf, 0xc5, 0x54, 0xe0, 0x0d, 0x9c, -0x6d, 0x1d, 0x4f, 0x9d, 0x61, 0x71, 0x90, 0x4a, 0xe5, 0x7a, 0x17, 0xb3, 0xca, 0x2f, 0xa6, 0xf2, -0xe0, 0x4e, 0xa6, 0xbe, 0x9c, 0x71, 0x1a, 0xbf, 0x7c, 0x34, 0xd1, 0x63, 0x63, 0x47, 0xdc, 0x67, -0xc0, 0x95, 0x9a, 0x4b, 0xe3, 0xda, 0x64, 0xcc, 0xd3, 0x64, 0xad, 0x9e, 0xfc, 0xc8, 0xcd, 0x23, -0x8d, 0x15, 0xb2, 0xe0, 0x7f, 0x5f, 0x22, 0x0f, 0xed, 0x7a, 0xc4, 0x23, 0x2b, 0x2c, 0x0b, 0x66, -0xb2, 0xbd, 0x4d, 0xb2, 0xd0, 0x58, 0x43, 0x74, 0x43, 0x67, 0x25, 0xfc, 0x40, 0x0e, 0x25, 0x30, -0x11, 0xe3, 0xc8, 0xdf, 0x84, 0xc3, 0x4d, 0x3e, 0xc0, 0x3c, 0xbb, 0x80, 0xf7, 0xc1, 0xf2, 0x61, -0x0f, 0x20, 0xde, 0x2c, 0xc3, 0x34, 0x8b, 0x53, 0xf5, 0xe3, 0x4a, 0x53, 0xa5, 0xbc, 0xe6, 0x0e, -0xaa, 0x85, 0xb4, 0xc2, 0xca, 0xf5, 0xa7, 0xea, 0xc9, 0xe5, 0x50, 0xbb, 0x60, 0xcd, 0x4c, 0x21, -0x0d, 0xe3, 0x8e, 0x3c, 0x92, 0x5f, 0x04, 0xa9, 0x54, 0xe9, 0x2d, 0x29, 0xe3, 0xe7, 0x16, 0xfc, -0xde, 0x93, 0x82, 0x90, 0x57, 0x5b, 0xd9, 0xdb, 0x34, 0x0d, 0xc3, 0x54, 0xe0, 0x1c, 0xd7, 0x93, -0xaf, 0x6a, 0x6a, 0x33, 0x33, 0x1b, 0x09, 0xdf, 0xc4, 0x16, 0xda, 0x9a, 0xf4, 0x13, 0x31, 0x90, -0xd6, 0x3a, 0xaa, 0x64, 0xe8, 0x4e, 0xda, 0xc7, 0x42, 0x59, 0x1d, 0xc7, 0xc7, 0x6d, 0xc3, 0x75, -0x80, 0xad, 0xb1, 0x22, 0xa8, 0x7e, 0x66, 0x0c, 0xa6, 0x89, 0x2a, 0x4c, 0xa1, 0x1e, 0x4b, 0x6c, -0xe1, 0x0f, 0x10, 0xc7, 0x14, 0xa9, 0x99, 0xe3, 0x06, 0x4d, 0x56, 0x29, 0x28, 0xf0, 0xae, 0xa7, -0x13, 0x3c, 0x44, 0x43, 0x5e, 0x7e, 0x1e, 0x7f, 0x75, 0xfc, 0xd4, 0xa3, 0xf7, 0x20, 0x35, 0xb9, -0xe7, 0xbd, 0xde, 0x39, 0x4c, 0x77, 0x96, 0x7c, 0x92, 0x23, 0x05, 0xc9, 0xbb, 0x86, 0xc6, 0xd9, -0xd7, 0xc4, 0x5c, 0x4a, 0x3d, 0xa4, 0x0a, 0x2b, 0x69, 0x54, 0x93, 0xcf, 0x30, 0x51, 0x33, 0xaf, -0x0b, 0xf3, 0xdf, 0x09, 0x3c, 0xc3, 0x8e, 0x75, 0x89, 0xb6, 0x5b, 0xa5, 0xb9, 0x9e, 0x74, 0x21, -0x66, 0x8b, 0x8d, 0x13, 0xca, 0xa3, 0x29, 0x84, 0xdf, 0xb1, 0x12, 0x19, 0xb0, 0x44, 0xa9, 0x36, -0xc0, 0xd6, 0xb3, 0x45, 0xb4, 0x27, 0x07, 0xbc, 0x3d, 0x0e, 0xc1, 0xae, 0x49, 0xec, 0x3f, 0xd4, -0xf7, 0x15, 0xdc, 0x1b, 0xe1, 0xc8, 0xbf, 0xf8, 0x49, 0x4d, 0xe4, 0xbb, 0xcc, 0xcf, 0xb8, 0x4c, -0x41, 0xe4, 0x9e, 0xc8, 0x11, 0xd5, 0xd7, 0x33, 0x6f, 0x05, 0xd1, 0x64, 0x0b, 0x6a, 0x5f, 0x25, -0x3a, 0x42, 0xfe, 0xb1, 0x6b, 0xfa, 0x1c, 0xb2, 0xe5, 0x48, 0xc9, 0xd2, 0x0b, 0xb3, 0xbb, 0xe1, -0x32, 0x23, 0xbd, 0x4d, 0x5f, 0xdf, 0x35, 0x01, 0x62, 0xdb, 0xab, 0x73, 0xbd, 0xf0, 0x86, 0x30, -0x08, 0xaf, 0xe3, 0xf3, 0xeb, 0xf8, 0xfc, 0xea, 0x4c, 0xf2, 0xf0, 0x7a, 0x04, 0x71, 0xfe, 0x28, -0x3e, 0xcd, 0x80, 0x97, 0x50, 0xba, 0x62, 0x5e, 0xc4, 0x3f, 0xce, 0x81, 0x17, 0x26, 0x7a, 0xe5, -0x74, 0xb8, 0xe6, 0x7a, 0x39, 0x98, 0x60, 0xe5, 0xb4, 0x6c, 0xc2, 0x9b, 0xc0, 0xb7, 0x42, 0x59, -0xba, 0xd7, 0x52, 0x0c, 0x23, 0x7d, 0x55, 0x61, 0x52, 0x58, 0x49, 0x38, 0x3e, 0x34, 0xc8, 0xa5, -0x79, 0xab, 0x8c, 0x4d, 0x89, 0x19, 0xfc, 0xfb, 0xbf, 0x20, 0x6c, 0x1d, 0x84, 0x32, 0xa4, 0xea, -0x83, 0x20, 0x84, 0x74, 0xf8, 0x5b, 0x84, 0x72, 0xc9, 0x20, 0x94, 0xa4, 0x41, 0x72, 0x0c, 0xb2, -0x4b, 0xf2, 0xb5, 0xf9, 0xf1, 0x3c, 0xa4, 0xe1, 0xad, 0x50, 0x74, 0x39, 0x6f, 0x9b, 0x31, 0x15, -0x83, 0xf6, 0x27, 0xa1, 0x01, 0xa1, 0x4b, 0xbe, 0x04, 0x9a, 0x47, 0xe8, 0x33, 0xb0, 0x07, 0xdb, -0xe6, 0x00, 0xb6, 0xd3, 0x3e, 0x7c, 0xde, 0x87, 0xcf, 0x7b, 0x64, 0x0f, 0x47, 0xf5, 0xe9, 0x6d, -0x82, 0xa3, 0xe8, 0x49, 0x94, 0x97, 0x4f, 0xe1, 0x35, 0x34, 0xd1, 0x9b, 0xf8, 0xc7, 0x45, 0x92, -0x37, 0xf1, 0xf3, 0x25, 0x92, 0x37, 0xf1, 0x9a, 0x33, 0x9c, 0x76, 0x11, 0xd9, 0x35, 0xd3, 0x58, -0x7c, 0x51, 0x58, 0x32, 0xf2, 0xf9, 0x59, 0x4b, 0x29, 0x61, 0x83, 0xb5, 0x94, 0x46, 0x89, 0x8d, -0x7e, 0x8f, 0x15, 0x94, 0xd2, 0x88, 0x35, 0xfb, 0x90, 0x0a, 0x9b, 0x65, 0xa9, 0x62, 0x27, 0x8e, -0xee, 0x07, 0x99, 0xe7, 0x11, 0x8f, 0xbf, 0x3f, 0xe1, 0x81, 0x84, 0xdd, 0x2b, 0xfd, 0xfd, 0x6c, -0xf6, 0x97, 0x7d, 0x99, 0x91, 0x87, 0x39, 0x5a, 0x3d, 0x64, 0xfc, 0xc1, 0xad, 0x84, 0x53, 0x53, -0xd5, 0x35, 0x7d, 0x0c, 0x72, 0x31, 0xed, 0xe7, 0xa5, 0x46, 0xfd, 0xc4, 0xb9, 0x03, 0xa5, 0x87, -0x72, 0xf2, 0x50, 0x94, 0x3e, 0xf3, 0xb0, 0xd4, 0x08, 0xf3, 0xb3, 0x11, 0xf3, 0xa7, 0x21, 0x54, -0x3d, 0xd6, 0x6d, 0xc5, 0xa5, 0xb0, 0x2e, 0xd0, 0x53, 0x7f, 0x5f, 0x58, 0x35, 0xd4, 0x13, 0x04, -0x9c, 0x63, 0x96, 0x90, 0xae, 0x1f, 0xbc, 0x14, 0xe5, 0xcc, 0x8a, 0xb7, 0x1f, 0x47, 0x0e, 0xbd, -0x4c, 0x8f, 0x12, 0xf1, 0xdb, 0x83, 0x38, 0x93, 0xb3, 0xd5, 0x94, 0x58, 0xda, 0x0a, 0x01, 0xc6, -0x16, 0x49, 0xde, 0xea, 0xe8, 0x29, 0xac, 0x98, 0x23, 0xf9, 0xfc, 0x28, 0x9a, 0x23, 0xf9, 0x50, -0x36, 0x19, 0xf1, 0x39, 0x09, 0xed, 0xe4, 0x15, 0xb1, 0x4d, 0x24, 0x57, 0xa3, 0x1c, 0x7d, 0x50, -0x96, 0xa7, 0xf5, 0x4c, 0x9e, 0xb6, 0x83, 0x2d, 0x5d, 0xa2, 0xe6, 0x95, 0xc3, 0x9b, 0x83, 0x79, -0x28, 0x9d, 0x69, 0x69, 0x9d, 0xf2, 0x0b, 0x4b, 0x0d, 0xf9, 0x02, 0xd4, 0x19, 0x2b, 0xd2, 0x24, -0x95, 0x34, 0x19, 0x61, 0xfc, 0x3e, 0x2b, 0x04, 0x8f, 0x1f, 0xee, 0x09, 0xed, 0x23, 0x0c, 0x4a, -0x79, 0x19, 0xb4, 0xfa, 0x58, 0xcf, 0xbc, 0x4a, 0x7e, 0x5f, 0xce, 0x8b, 0x36, 0xd6, 0x27, 0xac, -0x67, 0x8e, 0x60, 0xcf, 0xb4, 0x27, 0x7b, 0xe6, 0x0c, 0x8e, 0xf5, 0xe5, 0x64, 0xeb, 0x93, 0xe8, -0xef, 0x67, 0xb3, 0x52, 0xe3, 0x9b, 0xa8, 0x26, 0xd2, 0xa0, 0x65, 0x4c, 0x5e, 0x64, 0x5e, 0x35, -0x45, 0x03, 0xa3, 0x7b, 0x48, 0xa9, 0xa9, 0xf7, 0x24, 0xaa, 0x0a, 0x3b, 0x12, 0xbd, 0x48, 0x7d, -0x13, 0xdc, 0x98, 0xa2, 0x98, 0x29, 0xbe, 0x00, 0x5b, 0x7d, 0xd9, 0x4c, 0xf2, 0x12, 0x5b, 0x2f, -0x20, 0x5d, 0xa1, 0x3e, 0xa0, 0xb9, 0x5f, 0xe2, 0x16, 0xb2, 0xf2, 0x39, 0x2d, 0x51, 0x75, 0xe2, -0x2f, 0x9e, 0x1a, 0x0e, 0x6a, 0x13, 0x73, 0x57, 0x7d, 0x5f, 0x82, 0x46, 0x7e, 0xda, 0x61, 0x41, -0x6e, 0x00, 0xe5, 0x2b, 0xbd, 0xb1, 0x2d, 0x9d, 0x17, 0xb0, 0xd4, 0xf9, 0xb6, 0x21, 0x2f, 0x90, -0x80, 0x5a, 0x8e, 0x10, 0xda, 0x14, 0x9e, 0x24, 0x70, 0x2d, 0xd5, 0xc7, 0xf5, 0xdf, 0xff, 0xf7, -0x8f, 0xa0, 0x10, 0x7b, 0x58, 0x65, 0x5a, 0x42, 0xbd, 0x9a, 0xe6, 0xe7, 0xf0, 0x2b, 0xf5, 0x22, -0x72, 0x1c, 0x35, 0x09, 0x4f, 0xd4, 0x59, 0xf3, 0x60, 0x96, 0x86, 0xc3, 0x76, 0xb4, 0xca, 0x56, -0xc6, 0x67, 0x84, 0x0c, 0x0d, 0xe4, 0x01, 0x70, 0x7a, 0x30, 0x47, 0xd4, 0xaa, 0x5d, 0xf1, 0x0f, -0x99, 0x6f, 0x6a, 0xf2, 0xdc, 0x32, 0x15, 0x5b, 0xf7, 0x0e, 0x3a, 0xd1, 0xa0, 0xe0, 0xe2, 0xe3, -0xd7, 0xba, 0x61, 0x96, 0xfb, 0x43, 0x38, 0x38, 0xc9, 0xa7, 0xf4, 0x05, 0x46, 0xf7, 0x8e, 0x23, -0xb4, 0x42, 0xb6, 0xbd, 0xce, 0x3c, 0x6e, 0x7f, 0x91, 0x2b, 0x7b, 0xdc, 0x56, 0x93, 0x05, 0x77, -0x46, 0xd1, 0x0c, 0xb2, 0x25, 0xf7, 0x9c, 0x70, 0x06, 0x62, 0x54, 0x9e, 0x6c, 0x99, 0x9d, 0x97, -0x2c, 0x89, 0x23, 0xad, 0x24, 0x7f, 0x3e, 0xaf, 0x93, 0x5e, 0x2a, 0x8b, 0xb9, 0x06, 0x2c, 0xf6, -0x4e, 0x28, 0x06, 0x9b, 0xf0, 0x24, 0x62, 0x1d, 0x79, 0xdb, 0x16, 0xc8, 0x62, 0x3b, 0xd2, 0x0c, -0xc3, 0x24, 0x8c, 0x3e, 0x18, 0xe6, 0x68, 0x15, 0xd5, 0x34, 0x9b, 0xf9, 0xdd, 0xb6, 0x31, 0xae, -0xca, 0x68, 0xb2, 0x4b, 0x1c, 0x24, 0x8e, 0xb1, 0x56, 0xd6, 0x9a, 0x23, 0x88, 0x8f, 0xb7, 0x87, -0xef, 0xb8, 0xa4, 0xed, 0x67, 0x0f, 0xce, 0x3c, 0xcb, 0xc2, 0x4a, 0x6c, 0x43, 0x9b, 0xbe, 0x14, -0x66, 0xe0, 0xdd, 0x71, 0x0d, 0x79, 0x52, 0x28, 0xc4, 0x37, 0x0a, 0x2d, 0xbe, 0x46, 0x00, 0x7f, -0xf9, 0x69, 0xa0, 0xf9, 0xcb, 0x2b, 0x0c, 0x80, 0x07, 0x9f, 0x3d, 0xf8, 0xec, 0x3a, 0xde, 0x73, -0xbc, 0x67, 0x6e, 0xaf, 0xc5, 0x4c, 0x3a, 0xd2, 0xb4, 0xd7, 0xe1, 0x91, 0x66, 0x81, 0xfb, 0x98, -0xed, 0xcb, 0x4e, 0x78, 0x58, 0x68, 0xe5, 0xd4, 0xb4, 0xd6, 0xfc, 0xf1, 0x9a, 0x64, 0x69, 0x33, -0x2d, 0xe9, 0xb4, 0x37, 0x83, 0xa8, 0xde, 0x79, 0x6b, 0x4d, 0xdf, 0x5c, 0x0f, 0x54, 0x22, 0xcd, -0xfa, 0xed, 0x5b, 0x1c, 0x7c, 0x4e, 0xf7, 0xa3, 0x00, 0x63, 0x78, 0x7f, 0xf3, 0x1c, 0xc0, 0xf9, -0xc5, 0x1f, 0xc1, 0x66, 0xcb, 0x12, 0x41, 0x49, 0x6b, 0x93, 0x36, 0xd2, 0xac, 0x3f, 0x69, 0x19, -0x26, 0xfb, 0xed, 0x21, 0x45, 0x40, 0x19, 0xe8, 0x61, 0x34, 0xe0, 0x5d, 0x1f, 0xf1, 0x85, 0x0f, -0x61, 0x79, 0xd5, 0xe9, 0xfa, 0x9c, 0x69, 0x39, 0x29, 0x29, 0xa7, 0xbf, 0x0c, 0xd7, 0xf4, 0x51, -0xeb, 0x2d, 0x2a, 0x8b, 0x28, 0x26, 0xac, 0x45, 0x9e, 0xa6, 0xd0, 0x6c, 0x98, 0xb4, 0x42, 0x79, -0x16, 0xe9, 0xff, 0xe9, 0x89, 0x9e, 0xaf, 0xa5, 0x39, 0xe0, 0x2f, 0xc8, 0x05, 0x49, 0xb4, 0x74, -0x7c, 0x9b, 0xb0, 0x0b, 0xcc, 0x58, 0x9a, 0x1f, 0x87, 0x34, 0xec, 0x6c, 0xd4, 0x83, 0x69, 0x94, -0xe9, 0x14, 0xb3, 0x6a, 0x7d, 0xb2, 0xbe, 0xaf, 0x08, 0x31, 0x8f, 0xce, 0x04, 0x55, 0x7d, 0x04, -0xa6, 0x25, 0x4c, 0xd3, 0x98, 0x8f, 0x58, 0xcc, 0xf2, 0xaa, 0xfd, 0x21, 0x5f, 0x33, 0x1b, 0xcd, -0x07, 0xb0, 0x97, 0x37, 0x5b, 0xe9, 0x5c, 0x42, 0x97, 0xa7, 0xd2, 0x01, 0xb0, 0x0d, 0x47, 0xae, -0xc8, 0xce, 0xe4, 0x3e, 0xf8, 0x7f, 0xec, 0xf0, 0x13, 0x8c, 0xdd, 0x49, 0x14, 0x48, 0xc6, 0xa6, -0x42, 0xbb, 0x07, 0x8a, 0xc3, 0xd7, 0xda, 0x99, 0xcd, 0x44, 0x20, 0x84, 0xf0, 0x44, 0x14, 0x76, -0x37, 0x54, 0x93, 0x06, 0x28, 0x86, 0x4a, 0x5c, 0xd9, 0x5d, 0x44, 0x57, 0x83, 0x6a, 0x0c, 0x63, -0xf4, 0x14, 0xc3, 0xbd, 0x12, 0x54, 0x78, 0x19, 0xd9, 0x1e, 0x40, 0xde, 0x44, 0x8b, 0x6f, 0xa2, -0xfc, 0x4d, 0x23, 0xa6, 0x44, 0x32, 0x70, 0xb3, 0xbd, 0xeb, 0xbb, 0xf1, 0xf8, 0x38, 0xb4, 0xd9, -0x97, 0x40, 0x98, 0xf8, 0x17, 0x84, 0x89, 0xf1, 0xd5, 0x8c, 0x5a, 0x87, 0x19, 0xc6, 0x64, 0x22, -0xfd, 0x0b, 0x47, 0x00, 0xb1, 0x96, 0xc2, 0x4e, 0x04, 0x36, 0xd7, 0xf7, 0x2c, 0x7e, 0x3f, 0xfe, -0x69, 0x58, 0xcf, 0xe8, 0xb1, 0x29, 0x5d, 0x23, 0x4f, 0xc2, 0x4e, 0xd9, 0x1e, 0x5c, 0x54, 0x96, -0x83, 0x11, 0x33, 0x0b, 0xed, 0x90, 0x4b, 0xf3, 0xf3, 0x3a, 0xc8, 0xa6, 0xb5, 0x4c, 0x88, 0x70, -0x7f, 0xfe, 0x59, 0xda, 0x0e, 0x2d, 0xce, 0x95, 0x0b, 0x12, 0x7e, 0x64, 0x4b, 0x1c, 0x8a, 0x77, -0xbd, 0xc3, 0x63, 0xfc, 0xef, 0x04, 0x97, 0xd7, 0x75, 0xda, 0x4b, 0x3c, 0x0a, 0x72, 0x54, 0x3c, -0xc5, 0x3c, 0x33, 0xa6, 0x3c, 0xbd, 0xcd, 0x75, 0x08, 0x7f, 0xe7, 0x08, 0x38, 0xea, 0x31, 0x24, -0x35, 0xea, 0x25, 0x49, 0x58, 0x3e, 0x0d, 0xd6, 0x9c, 0x16, 0x63, 0x66, 0x72, 0xa2, 0x02, 0xc7, -0x88, 0x06, 0x65, 0x4f, 0x7b, 0xe2, 0x5c, 0x62, 0x3c, 0x88, 0x34, 0x48, 0x00, 0x8d, 0x69, 0xb6, -0x78, 0x84, 0x2c, 0x7d, 0x27, 0xac, 0x9d, 0x61, 0x49, 0x8d, 0xbe, 0x41, 0x2e, 0x33, 0xb8, 0x5c, -0x5a, 0x09, 0x9b, 0x88, 0x25, 0x5c, 0x66, 0xa8, 0x38, 0x0c, 0x4e, 0x78, 0xbb, 0xca, 0xd1, 0x05, -0x9a, 0x22, 0xee, 0x9d, 0x25, 0x3e, 0x77, 0x9b, 0xda, 0x59, 0xaa, 0x9f, 0x43, 0xd6, 0x48, 0x7f, -0xe5, 0xae, 0xed, 0x65, 0xfb, 0xe7, 0xef, 0xf2, 0xad, 0x5c, 0xe6, 0x4b, 0xc3, 0x0b, 0xba, 0x35, -0x10, 0x88, 0xb1, 0x7d, 0x25, 0x08, 0x1e, 0xa1, 0x54, 0x43, 0xd6, 0x70, 0x5c, 0xe4, 0x23, 0x90, -0x75, 0x43, 0x11, 0xbc, 0xb5, 0x84, 0x6c, 0x17, 0xc6, 0xe3, 0xbf, 0xea, 0x66, 0xd0, 0xcf, 0xbc, -0xed, 0x75, 0x3a, 0x72, 0xe0, 0x17, 0xae, 0x5a, 0xc1, 0x27, 0x04, 0x4f, 0x90, 0x35, 0x51, 0xc9, -0x0a, 0xb8, 0x5d, 0xc1, 0x64, 0x4b, 0xbd, 0xd1, 0x55, 0x78, 0x4d, 0x5d, 0x8c, 0x8f, 0x45, 0x34, -0x02, 0x9c, 0xd4, 0x68, 0x14, 0xb4, 0x27, 0x89, 0xdf, 0xc7, 0x4e, 0xf9, 0x6a, 0xb9, 0xe0, 0x87, -0xa6, 0xd9, 0xcc, 0x77, 0xfc, 0x6b, 0xa4, 0x37, 0x6d, 0x6b, 0xc7, 0x7a, 0xb5, 0x83, 0x2e, 0xbf, -0x15, 0xce, 0xc6, 0x4f, 0xdf, 0xd0, 0x15, 0xff, 0xb7, 0xf8, 0xa7, 0xec, 0xf7, 0xaf, 0xec, 0xf7, -0x3c, 0xfe, 0x8e, 0xc6, 0x3f, 0x43, 0x8c, 0x53, 0x79, 0xdb, 0xe3, 0xe7, 0x09, 0x6f, 0xc7, 0xc7, -0xbf, 0xe1, 0x8a, 0x9f, 0x75, 0x58, 0x39, 0x4d, 0x16, 0x28, 0x90, 0x66, 0xdc, 0xe0, 0x8e, 0x7f, -0x58, 0x0a, 0x1b, 0x67, 0x7c, 0xd8, 0x71, 0xc2, 0x75, 0xd2, 0x8f, 0xf4, 0xfd, 0x74, 0x7e, 0x75, -0x7c, 0x8c, 0xed, 0x25, 0xb2, 0x11, 0xe5, 0xeb, 0xa0, 0x79, 0xdb, 0x51, 0xda, 0xda, 0xf5, 0x7f, -0x86, 0x6b, 0x9e, 0x75, 0x9f, 0x8d, 0x9f, 0xcb, 0xf7, 0xc6, 0xcf, 0x99, 0xa6, 0xff, 0x63, 0xcf, -0xe2, 0x91, 0x78, 0x8d, 0x55, 0xa7, 0xbe, 0x2b, 0x1e, 0x1f, 0x03, 0xa3, 0x1f, 0x79, 0xed, 0xa3, -0xfc, 0xfc, 0xf8, 0x18, 0xca, 0x27, 0xa7, 0x83, 0x99, 0x22, 0xff, 0xeb, 0xe1, 0x55, 0xc0, 0xbd, -0x5a, 0x17, 0xa3, 0x1d, 0x6f, 0x0a, 0xe7, 0x5d, 0xba, 0x1a, 0xcf, 0x3d, 0xc1, 0xd3, 0xa2, 0xfa, -0xa2, 0x30, 0xd5, 0xaf, 0x87, 0x1b, 0xce, 0x0c, 0xfd, 0x3c, 0x7e, 0xae, 0x11, 0xb8, 0x47, 0xed, -0x8a, 0xfc, 0xaa, 0xf8, 0x6b, 0xfe, 0x07, 0xea, 0xfb, 0x8c, 0xed, 0xf1, 0xd7, 0x74, 0x10, 0x1f, -0xc7, 0x31, 0xf4, 0x34, 0xf6, 0xe3, 0x03, 0xa5, 0x2e, 0xfa, 0xbd, 0xc1, 0x15, 0x7f, 0x87, 0xee, -0xd9, 0xd4, 0xb7, 0x0f, 0xe4, 0xb0, 0xdf, 0x2c, 0xfc, 0xcd, 0x77, 0xc7, 0x4f, 0xb1, 0xd8, 0x8f, -0x92, 0x35, 0x4f, 0xb4, 0x02, 0xb5, 0xc8, 0x78, 0xfc, 0x33, 0x47, 0x26, 0xc6, 0x7e, 0x7e, 0x43, -0x7b, 0xfc, 0x9d, 0xf8, 0x17, 0x37, 0x94, 0xc7, 0x47, 0x6e, 0xf0, 0xc4, 0x47, 0x69, 0xff, 0x2e, -0xd1, 0x32, 0x17, 0x4e, 0x19, 0xe7, 0xc7, 0x4f, 0xbd, 0x5d, 0x25, 0x2c, 0x9e, 0x35, 0x3f, 0xfe, -0x51, 0xcf, 0x62, 0x3a, 0x55, 0x40, 0x65, 0xd8, 0x4d, 0x5e, 0x85, 0x3f, 0x71, 0x64, 0x1e, 0x20, -0xaf, 0x14, 0x67, 0xb2, 0xe6, 0xc7, 0xdf, 0xd9, 0x3d, 0x3f, 0xfe, 0x21, 0x3e, 0xbf, 0xa1, 0x53, -0x91, 0xb4, 0x0a, 0xaf, 0xfa, 0x94, 0x9d, 0x00, 0x47, 0xf5, 0xec, 0x04, 0x03, 0xb3, 0x35, 0x57, -0x3f, 0xd4, 0xdb, 0x8e, 0xa5, 0xae, 0x55, 0xe2, 0xac, 0xbc, 0x1f, 0xeb, 0x30, 0x8a, 0x50, 0xbb, -0x75, 0x4a, 0xb2, 0xdd, 0x04, 0x83, 0xfb, 0x7f, 0x1e, 0x1f, 0x23, 0x6d, 0xc4, 0x59, 0x4a, 0xef, -0xf7, 0xbc, 0xbf, 0xe7, 0xa7, 0x44, 0xa6, 0xbe, 0x33, 0x60, 0x6b, 0x8f, 0x9f, 0xfe, 0xef, 0x61, -0xde, 0x2f, 0x78, 0xb0, 0x26, 0xde, 0xf8, 0x29, 0xa9, 0x0d, 0xf8, 0xf6, 0xf8, 0x29, 0xfd, 0x70, -0xc0, 0x23, 0xb7, 0x85, 0x07, 0x19, 0xc1, 0xb7, 0x08, 0xa3, 0x2f, 0xbc, 0xc6, 0xea, 0xbd, 0xff, -0xc2, 0x51, 0xa7, 0xea, 0xed, 0x2a, 0x85, 0x0b, 0xe2, 0x3d, 0x2e, 0xe4, 0xd7, 0xe7, 0x63, 0xbf, -0x76, 0x29, 0xb8, 0x6f, 0xb8, 0xe3, 0x6f, 0x11, 0x3c, 0xa6, 0x71, 0x42, 0x9c, 0xb5, 0x1e, 0x72, -0x66, 0x39, 0xe1, 0xad, 0x2a, 0xa7, 0x3b, 0x02, 0xce, 0xa9, 0xbf, 0xd8, 0x6c, 0x44, 0x0c, 0x7c, -0xf9, 0xd0, 0xdb, 0xde, 0xe2, 0x05, 0x5e, 0xf8, 0xb5, 0xab, 0xd6, 0xeb, 0xd4, 0x04, 0x4f, 0x38, -0xe7, 0xb3, 0x2f, 0x4e, 0x60, 0x4d, 0xb5, 0x61, 0xee, 0xa3, 0x81, 0xee, 0x41, 0x38, 0x57, 0xf3, -0x2c, 0xe2, 0x2e, 0xd6, 0x24, 0xcc, 0xbd, 0x33, 0x50, 0x1b, 0xc3, 0x5e, 0x3d, 0x17, 0x84, 0x71, -0xf2, 0xb3, 0xa1, 0x08, 0xe7, 0x92, 0xe6, 0x40, 0x7c, 0x48, 0x5a, 0xd5, 0x60, 0xa7, 0xec, 0xe8, -0x74, 0x63, 0x21, 0xce, 0x48, 0xa4, 0xb3, 0x7d, 0xda, 0x2c, 0xe1, 0x4d, 0x1b, 0xe1, 0x4d, 0x11, -0xe2, 0xcd, 0xab, 0xbd, 0x02, 0xac, 0xe7, 0x10, 0x3f, 0xda, 0x50, 0xe2, 0x3b, 0x1d, 0xd4, 0x1a, -0xbd, 0xa2, 0x7e, 0x6f, 0xef, 0xaa, 0x59, 0x75, 0xbd, 0xac, 0xf7, 0xcf, 0x8b, 0x1f, 0xd6, 0xdd, -0xa3, 0xfb, 0x26, 0xe1, 0xc1, 0xde, 0x7b, 0x1a, 0xce, 0xbb, 0xdf, 0x53, 0xb9, 0x9e, 0x7a, 0xb6, -0x49, 0xcb, 0xac, 0x6e, 0xa3, 0xcc, 0xcf, 0xd5, 0x99, 0xae, 0x51, 0xf4, 0xdc, 0x8a, 0xff, 0x8c, -0xf3, 0x40, 0xa5, 0xe8, 0xa6, 0x27, 0xab, 0xdb, 0xa8, 0x38, 0xd6, 0x63, 0x9b, 0xde, 0x73, 0xb7, -0xfb, 0x3d, 0x9c, 0x41, 0x39, 0xc5, 0xdd, 0xe4, 0xcd, 0xef, 0xad, 0xfb, 0xf7, 0xab, 0x11, 0xe7, -0xc0, 0xca, 0x29, 0xee, 0xa2, 0x65, 0x57, 0x1d, 0xfb, 0xc5, 0x96, 0xff, 0x30, 0x57, 0xad, 0xa0, -0x1d, 0x99, 0xb8, 0xb9, 0xc2, 0xaa, 0xb2, 0x4d, 0xfb, 0xe0, 0xe7, 0x2f, 0xde, 0x15, 0xd2, 0x60, -0x3e, 0x25, 0xb4, 0x96, 0x6e, 0x9b, 0xfe, 0x9b, 0x9e, 0x25, 0xef, 0x41, 0x4e, 0x81, 0x05, 0xf4, -0x36, 0xfd, 0x6f, 0xbe, 0xa7, 0xf8, 0x1e, 0xe5, 0xf0, 0xdb, 0x9e, 0xfa, 0xde, 0x7f, 0x3f, 0x1c, -0x3c, 0x83, 0xe9, 0x3b, 0x0a, 0xe6, 0x81, 0x45, 0x0a, 0x7d, 0xe3, 0x7b, 0xb6, 0x79, 0x60, 0x53, -0xdc, 0x4d, 0xcf, 0xf7, 0xdf, 0xbd, 0xe7, 0x7b, 0x98, 0xf6, 0xfd, 0x8a, 0x6e, 0xcc, 0x1a, 0x04, -0xb7, 0xd7, 0x5d, 0xd2, 0xca, 0x69, 0xfe, 0xfd, 0x99, 0xe0, 0x46, 0xd3, 0x3c, 0x70, 0x48, 0x25, -0x3e, 0xde, 0x83, 0x65, 0x2e, 0x94, 0xca, 0xbc, 0xb9, 0x1b, 0xd3, 0x2a, 0x36, 0x4e, 0xeb, 0x9a, -0xfa, 0xc1, 0xcf, 0x16, 0x7f, 0x9a, 0x03, 0xe5, 0xef, 0x29, 0x8a, 0x45, 0x97, 0x51, 0x2f, 0xc5, -0x16, 0x58, 0x14, 0x20, 0xe5, 0x61, 0xe3, 0x7e, 0x7b, 0xf7, 0x6f, 0x7a, 0x8e, 0x75, 0xf7, 0x7c, -0xaf, 0xbe, 0xb7, 0x80, 0x13, 0x16, 0x7b, 0x17, 0xbf, 0xb5, 0x2c, 0xfb, 0x7b, 0xd2, 0xd3, 0x75, -0x8b, 0x81, 0x2b, 0xe0, 0xde, 0xea, 0xc3, 0xbb, 0xe2, 0x3a, 0x37, 0x28, 0xeb, 0xef, 0xfd, 0xc5, -0xe1, 0xe0, 0x01, 0x5f, 0x4f, 0x30, 0xf3, 0x5e, 0xec, 0x1f, 0x51, 0x1b, 0x46, 0x89, 0x2e, 0x7c, -0x03, 0xf6, 0xd0, 0xf5, 0x05, 0x56, 0x38, 0x97, 0x6b, 0x83, 0x7a, 0xec, 0xc3, 0x0c, 0x93, 0xea, -0x9d, 0x41, 0xa3, 0xa2, 0xb6, 0x7b, 0x37, 0x96, 0x77, 0x7c, 0x23, 0xeb, 0xbf, 0x84, 0x17, 0x45, -0xa0, 0x53, 0x52, 0x48, 0x07, 0xb3, 0xcd, 0x96, 0xf8, 0x98, 0x68, 0x49, 0x94, 0x86, 0xe7, 0x4e, -0xf6, 0x5a, 0xb8, 0xd7, 0xba, 0x63, 0x9b, 0xd7, 0xcf, 0x7e, 0xef, 0xf1, 0xd8, 0xa6, 0xca, 0x98, -0x82, 0x71, 0xf2, 0xb1, 0x6e, 0x7e, 0xb8, 0x56, 0x30, 0x73, 0x48, 0xb5, 0x8e, 0x57, 0xbf, 0x09, -0x79, 0x94, 0x46, 0x19, 0x59, 0x00, 0xb5, 0x20, 0x0e, 0xd8, 0x2c, 0x36, 0x38, 0x8b, 0x72, 0xc6, -0x69, 0x67, 0x29, 0xf6, 0xfe, 0x6a, 0xea, 0x7d, 0x27, 0xf6, 0xbe, 0xe0, 0x42, 0x0e, 0xbe, 0xfe, -0x99, 0xb1, 0xd1, 0xe1, 0xa3, 0xee, 0x53, 0x5e, 0x69, 0x5d, 0xcb, 0x08, 0xb5, 0xdd, 0x82, 0x4b, -0xd4, 0x98, 0xc6, 0x28, 0xd5, 0x80, 0x8b, 0x7c, 0x36, 0xee, 0xee, 0xe9, 0x38, 0x27, 0x28, 0x96, -0x8c, 0xc4, 0x69, 0xed, 0xe7, 0x08, 0xad, 0x8d, 0xe1, 0x68, 0xd1, 0x98, 0x0e, 0x58, 0x11, 0x42, -0x54, 0x9b, 0x0e, 0x10, 0xe4, 0xdc, 0x2e, 0xcf, 0x3d, 0x9e, 0x7b, 0x40, 0x85, 0x73, 0x8b, 0xc2, -0x61, 0xe3, 0x34, 0xde, 0x61, 0x3a, 0xab, 0x0b, 0x31, 0xea, 0x67, 0xa3, 0xf2, 0xed, 0x7b, 0x62, -0xdd, 0x58, 0x5f, 0xcc, 0x6d, 0xeb, 0xa6, 0x58, 0xb7, 0x11, 0x4e, 0xde, 0x23, 0xd5, 0x46, 0x11, -0xa3, 0xdf, 0xb9, 0x28, 0xb3, 0xd3, 0xee, 0xe4, 0x2f, 0x62, 0x28, 0x75, 0xe9, 0xd7, 0xa9, 0x84, -0x1d, 0x81, 0x72, 0x5d, 0x39, 0xe8, 0x82, 0x9f, 0x1a, 0x3d, 0xb4, 0x62, 0x52, 0x52, 0x0a, 0x31, -0x9c, 0x01, 0xae, 0x37, 0xab, 0x4f, 0xde, 0xab, 0xd8, 0xc4, 0xbe, 0x63, 0xfd, 0xcc, 0x3f, 0x3b, -0xa7, 0x92, 0x1b, 0xfb, 0xcd, 0xa6, 0x5f, 0x75, 0xd7, 0x56, 0x04, 0xdf, 0x32, 0xc3, 0xc9, 0x7b, -0xe7, 0x96, 0x83, 0x03, 0x53, 0x2a, 0xa4, 0x56, 0xc2, 0x7b, 0x31, 0xa6, 0x5c, 0xea, 0x5d, 0xcf, -0x65, 0x7a, 0x5b, 0x41, 0xe3, 0x7f, 0x50, 0xbd, 0x99, 0xe6, 0x92, 0x8a, 0x33, 0x2a, 0x57, 0x40, -0x51, 0xd3, 0xb7, 0x07, 0x4b, 0xd3, 0x04, 0x71, 0xa7, 0xb0, 0x95, 0x59, 0x05, 0xb2, 0xd9, 0x7d, -0x60, 0xa9, 0x7e, 0xb3, 0xb4, 0x0b, 0x39, 0xd7, 0x1e, 0x59, 0x4f, 0x46, 0x6f, 0xb0, 0xc3, 0x0c, -0x1c, 0x37, 0x63, 0x7a, 0x0b, 0x07, 0x3e, 0x45, 0x48, 0x4d, 0xfe, 0xd2, 0x44, 0x95, 0x02, 0xe2, -0x17, 0xae, 0x71, 0x71, 0xb0, 0xc7, 0xca, 0x4d, 0x0b, 0xe9, 0x91, 0x4e, 0x65, 0x31, 0x2f, 0xec, -0xc6, 0x99, 0x02, 0x37, 0xad, 0xa6, 0x4f, 0xd2, 0x73, 0x21, 0xdf, 0xd8, 0x58, 0x63, 0x3b, 0x4c, -0xc3, 0x79, 0x70, 0x4c, 0x3f, 0x8f, 0xc3, 0x9c, 0x91, 0xa3, 0xc5, 0xaf, 0x12, 0xef, 0xb4, 0x02, -0x4e, 0xef, 0x3c, 0xe5, 0xae, 0x11, 0xe1, 0xf3, 0x93, 0xd8, 0xeb, 0xc5, 0x26, 0xc9, 0xff, 0x8f, -0x25, 0xdb, 0x0e, 0x5f, 0x2f, 0xb6, 0x43, 0x01, 0x72, 0xd8, 0x63, 0x3e, 0x3b, 0xdc, 0x18, 0x34, -0x50, 0x19, 0x68, 0x0e, 0xa4, 0x9c, 0xa1, 0x95, 0xf4, 0x53, 0xc5, 0x2c, 0x0a, 0xc3, 0x74, 0x47, -0x29, 0x4c, 0xd1, 0x8a, 0xfc, 0x43, 0x11, 0xad, 0x53, 0x9e, 0xf4, 0x0a, 0x82, 0x41, 0xb9, 0xc7, -0x15, 0xda, 0xd8, 0xa4, 0x25, 0xca, 0x76, 0x1b, 0xca, 0x82, 0xd2, 0x5a, 0xa5, 0x64, 0x01, 0x94, -0x69, 0xeb, 0xcc, 0xaa, 0xe9, 0xab, 0x1a, 0x89, 0xdf, 0x2e, 0x16, 0x32, 0x09, 0xc3, 0x4e, 0x5a, -0x9e, 0xfe, 0x6d, 0xf4, 0xb5, 0x13, 0x4e, 0x56, 0x61, 0xeb, 0xb8, 0x1b, 0xb5, 0x6c, 0xbd, 0x53, -0x75, 0xab, 0x4b, 0x54, 0xef, 0x71, 0xaf, 0x52, 0xd7, 0x91, 0x9c, 0x58, 0xc4, 0x28, 0xa5, 0x56, -0xca, 0x65, 0x48, 0x08, 0x1e, 0x64, 0x2b, 0xc9, 0x4e, 0xf6, 0xf5, 0xfe, 0xcf, 0x76, 0xa0, 0x74, -0xe3, 0x09, 0x6a, 0xd8, 0xf3, 0x58, 0x7d, 0x9f, 0x80, 0x3c, 0x48, 0x5e, 0x5e, 0xd2, 0xa7, 0x16, -0x9d, 0xc2, 0xd4, 0x21, 0xe7, 0x55, 0x87, 0x52, 0x3e, 0x72, 0xa9, 0x21, 0x0d, 0xf1, 0x7a, 0x38, -0x4e, 0xb7, 0x22, 0x0f, 0x71, 0x5a, 0x9a, 0xd1, 0xd2, 0x76, 0xd0, 0x89, 0x62, 0x31, 0x0e, 0x31, -0x4d, 0xd3, 0x0b, 0xdf, 0x5b, 0xbb, 0x2e, 0xc5, 0x47, 0xda, 0x2e, 0xe2, 0x23, 0x29, 0x4d, 0xb6, -0x66, 0x4c, 0xbc, 0xa4, 0x45, 0xfa, 0xf2, 0xe2, 0xd4, 0x6d, 0x69, 0xa9, 0x23, 0xd7, 0xa4, 0x21, -0x5d, 0x5c, 0x4e, 0x2d, 0xb8, 0x24, 0xdf, 0x23, 0x29, 0x6f, 0xe6, 0x58, 0xea, 0xdb, 0x83, 0xbe, -0x05, 0xb4, 0x52, 0x74, 0xbb, 0xa9, 0x05, 0xfb, 0xcf, 0xca, 0x91, 0x17, 0x42, 0x0e, 0xd6, 0xcf, -0x74, 0x23, 0x66, 0x58, 0xa0, 0x26, 0xa4, 0xd1, 0x73, 0xc8, 0x0c, 0x7c, 0x57, 0x24, 0x6e, 0xe0, -0x73, 0x82, 0x99, 0xe9, 0x22, 0x0f, 0xc7, 0x59, 0x16, 0xf0, 0xb3, 0xd5, 0x08, 0xc3, 0x30, 0xf2, -0x15, 0x3c, 0x86, 0x53, 0x5f, 0x11, 0x86, 0x24, 0xd6, 0xbc, 0x7d, 0x2d, 0x70, 0x7b, 0xc8, 0x28, -0xe0, 0x6f, 0x02, 0x33, 0xa4, 0x94, 0xaf, 0x75, 0x53, 0x7f, 0xc7, 0x3f, 0xe7, 0x9b, 0xa5, 0x6f, -0x18, 0x1f, 0xc7, 0x27, 0x6c, 0xe4, 0x17, 0x21, 0x2f, 0xe7, 0xb3, 0x42, 0x4d, 0xd0, 0xc9, 0xd6, -0x89, 0x6b, 0x68, 0x07, 0x03, 0x7b, 0x75, 0x97, 0x7c, 0xaf, 0x64, 0x7b, 0x1b, 0xe5, 0x21, 0x83, -0x5d, 0x3a, 0x1b, 0x65, 0x40, 0x2e, 0x4b, 0x5f, 0xfd, 0xa6, 0x0a, 0x65, 0xd1, 0x4f, 0x37, 0xd0, -0x9d, 0xd1, 0x18, 0x5a, 0xf5, 0xa6, 0x14, 0x4d, 0x88, 0x6d, 0xb3, 0x1d, 0xa5, 0x0f, 0xfd, 0xab, -0x44, 0x1b, 0x1c, 0xa5, 0xbf, 0x2c, 0x2b, 0x2c, 0x75, 0x81, 0x4f, 0x19, 0x54, 0x08, 0xc2, 0x66, -0x57, 0x42, 0x9e, 0xc5, 0x74, 0x37, 0x12, 0xd7, 0x68, 0xc1, 0xda, 0xbf, 0x37, 0x91, 0x73, 0x3c, -0xbf, 0xa0, 0x0b, 0x07, 0xc7, 0x23, 0xf4, 0x44, 0xfc, 0x89, 0xa3, 0xf4, 0x41, 0xfc, 0x9a, 0x52, -0xfa, 0x01, 0x2c, 0x70, 0x49, 0xe1, 0x0b, 0x68, 0xb5, 0xe4, 0x61, 0xe9, 0x29, 0xa6, 0x80, 0x87, -0xe4, 0x27, 0x3d, 0x6c, 0xa7, 0x27, 0xde, 0x0a, 0xa7, 0x99, 0x44, 0x49, 0xa1, 0xc8, 0x57, 0x26, -0xef, 0x64, 0xb5, 0xf7, 0x74, 0xa2, 0x5c, 0x53, 0x8e, 0xb2, 0xb5, 0xf6, 0xfd, 0x7f, 0x2d, 0x88, -0x70, 0x3c, 0x67, 0xc2, 0x72, 0xfc, 0x69, 0x80, 0x38, 0x5a, 0xb2, 0x51, 0x0b, 0x33, 0xfe, 0xf4, -0xb3, 0x58, 0x77, 0x4a, 0x46, 0x93, 0xd2, 0x77, 0x81, 0x9c, 0x16, 0xe5, 0xfe, 0x10, 0xca, 0x10, -0xf8, 0xcd, 0x54, 0x08, 0x65, 0x4d, 0xe0, 0x5b, 0x79, 0xe6, 0x95, 0x20, 0x7b, 0x42, 0x18, 0x79, -0xdc, 0xfd, 0x5c, 0xaf, 0xf7, 0x0c, 0x87, 0x14, 0xd1, 0xaf, 0xe9, 0x49, 0x43, 0x23, 0x2f, 0xa5, -0x3f, 0x47, 0xb2, 0x1e, 0xb5, 0x7e, 0x68, 0x16, 0xca, 0xe9, 0x72, 0xdb, 0x8f, 0x3b, 0x18, 0x2f, -0xab, 0x47, 0x3a, 0xa2, 0x23, 0x1a, 0x20, 0xc2, 0x85, 0xe1, 0x24, 0x2d, 0xa0, 0x5d, 0x09, 0x96, -0xda, 0xed, 0x38, 0x16, 0x99, 0xbc, 0x48, 0x67, 0x3f, 0x99, 0x75, 0x5f, 0x79, 0x4d, 0x77, 0x5b, -0x82, 0xce, 0x24, 0xc7, 0xf8, 0x6a, 0x1a, 0xe3, 0x4c, 0x97, 0xa9, 0x84, 0x6a, 0x5d, 0x35, 0x72, -0x7e, 0xd8, 0xbf, 0x4d, 0x2a, 0x15, 0xf5, 0xae, 0x06, 0xe1, 0x82, 0x66, 0x76, 0x2e, 0x78, 0xff, -0x68, 0x0d, 0x83, 0x73, 0xb2, 0xd6, 0xd9, 0xc6, 0x56, 0x66, 0xbe, 0x21, 0xb5, 0xd4, 0x28, 0xad, -0x50, 0xe4, 0xa4, 0x62, 0x31, 0x95, 0x0d, 0xfe, 0x6d, 0xd2, 0x0e, 0x13, 0xc6, 0xe6, 0xa4, 0x7f, -0x47, 0x90, 0xd1, 0x95, 0x55, 0x23, 0xa3, 0x1e, 0x31, 0xab, 0x56, 0x11, 0x72, 0xa6, 0xa5, 0xb3, -0x0d, 0xa5, 0x38, 0x96, 0x33, 0xcb, 0xf5, 0x64, 0xda, 0x57, 0x28, 0x4b, 0x0a, 0x28, 0xf9, 0xd7, -0xf4, 0x85, 0x39, 0x89, 0x5b, 0xce, 0x43, 0x89, 0x14, 0x65, 0x28, 0x3b, 0xd9, 0x52, 0xd0, 0xdb, -0xe1, 0x3a, 0xbb, 0xfc, 0x2b, 0x9f, 0xe5, 0x25, 0x3d, 0x2c, 0x03, 0x6b, 0x01, 0x47, 0xa2, 0x05, -0x90, 0xca, 0x5e, 0x8b, 0x23, 0x4a, 0x2b, 0xf3, 0x68, 0xf9, 0xe0, 0x27, 0x2b, 0x03, 0x0e, 0x9c, -0xb3, 0xf1, 0x4d, 0x31, 0xd4, 0x1b, 0x52, 0x09, 0x38, 0x87, 0xce, 0x5c, 0x0d, 0x7e, 0x4e, 0x8b, -0x73, 0x96, 0x62, 0x91, 0x8b, 0xd3, 0x48, 0xad, 0x36, 0x76, 0x87, 0x1d, 0xb9, 0xa2, 0xe1, 0x1e, -0x3b, 0x9c, 0xd4, 0x86, 0xbf, 0x3b, 0xdc, 0x23, 0xd1, 0xa1, 0x38, 0xd1, 0x6f, 0xd2, 0xa1, 0xd8, -0x7f, 0x81, 0x72, 0x33, 0x21, 0xbf, 0xa2, 0xa6, 0x14, 0x44, 0x27, 0xa6, 0xbd, 0x82, 0xad, 0xd3, -0x50, 0x2f, 0x19, 0x50, 0xd6, 0x62, 0x1e, 0x24, 0x70, 0x4c, 0x1c, 0x67, 0xe7, 0x13, 0x26, 0x85, -0x9e, 0x2f, 0xa2, 0xf9, 0x58, 0x47, 0x9a, 0x39, 0x34, 0x02, 0x2e, 0x53, 0xa3, 0x11, 0x9f, 0x54, -0xa3, 0xf4, 0x5e, 0xbe, 0x8d, 0xf5, 0x32, 0xcd, 0x01, 0x35, 0xa7, 0xb1, 0xcc, 0x03, 0x70, 0x4e, -0x68, 0xe6, 0xd8, 0x98, 0x2b, 0xa5, 0x39, 0xd9, 0x84, 0xb5, 0xb6, 0x5c, 0x54, 0x63, 0xb6, 0xc2, -0xcd, 0xe9, 0x90, 0x0f, 0xfd, 0x50, 0xaa, 0xdd, 0x68, 0x8c, 0x64, 0x01, 0xbb, 0x56, 0x5e, 0x29, -0x76, 0x31, 0xbb, 0x72, 0xb4, 0x5f, 0xf3, 0x13, 0x9c, 0x65, 0xf3, 0xa1, 0x30, 0xb0, 0xe9, 0xcf, -0x4b, 0xa8, 0xcf, 0x04, 0xd5, 0x06, 0x6e, 0xc9, 0xc8, 0x85, 0x5d, 0x55, 0x23, 0xe3, 0x83, 0x62, -0xb3, 0x43, 0x59, 0xeb, 0x42, 0xbe, 0x73, 0x4a, 0x30, 0x97, 0xa5, 0x42, 0x3a, 0x25, 0xae, 0x60, -0xa6, 0x80, 0x29, 0xd3, 0xaa, 0x64, 0x94, 0x3c, 0xdd, 0xf4, 0x53, 0x0c, 0xd1, 0x7d, 0x6e, 0x2a, -0x9d, 0xd1, 0x35, 0x30, 0x9b, 0xd9, 0x41, 0x85, 0x41, 0x55, 0x5b, 0xee, 0x2b, 0xef, 0x30, 0x51, -0xcb, 0xdb, 0x35, 0x6c, 0x6d, 0xb1, 0x5b, 0x5a, 0x5b, 0x4c, 0x7c, 0x8d, 0x69, 0x29, 0x82, 0x35, -0x51, 0x83, 0x58, 0x9d, 0xa3, 0x60, 0xe5, 0xae, 0x37, 0x66, 0xbc, 0xfd, 0x33, 0x9e, 0x93, 0xb9, -0xd0, 0xcd, 0xba, 0x7c, 0xc4, 0xd9, 0x15, 0x41, 0xad, 0x54, 0xfe, 0xcf, 0x36, 0xe2, 0x88, 0xc0, -0x27, 0x19, 0xd7, 0xfa, 0x0d, 0xc0, 0xac, 0xe0, 0x20, 0xce, 0x7c, 0xfc, 0x29, 0xa5, 0xc8, 0x76, -0x04, 0x14, 0x82, 0x82, 0x46, 0x57, 0x69, 0x69, 0x6a, 0x35, 0x1b, 0x39, 0x16, 0x6a, 0x25, 0x17, -0xf9, 0x21, 0xf4, 0xe5, 0xc3, 0x32, 0x66, 0xf9, 0x48, 0x4a, 0x19, 0xb8, 0xca, 0xc4, 0xb8, 0xc4, -0x29, 0xb0, 0x44, 0xca, 0xe7, 0x8b, 0x9d, 0xac, 0x8e, 0xc0, 0x19, 0x85, 0x5d, 0xc0, 0x5b, 0x91, -0xa8, 0xdb, 0x6c, 0x60, 0xb2, 0xb6, 0x81, 0x65, 0x23, 0xf1, 0xb6, 0x72, 0x49, 0x89, 0x97, 0xc7, -0x3e, 0xcb, 0x48, 0x9c, 0x00, 0x30, 0xc0, 0x15, 0x71, 0x2e, 0x4f, 0x4a, 0x7b, 0xdc, 0x4f, 0xf5, -0x26, 0xec, 0x61, 0x6d, 0x40, 0xab, 0x77, 0x00, 0x87, 0x24, 0x5c, 0x54, 0x08, 0x10, 0x5f, 0x24, -0x70, 0x1a, 0xec, 0x8b, 0x7a, 0xa4, 0x40, 0x4a, 0x3e, 0x23, 0x32, 0xf5, 0xe4, 0x00, 0x52, 0x03, -0xb6, 0xca, 0x5f, 0x66, 0x40, 0x6a, 0xa3, 0xc6, 0x90, 0x5d, 0x59, 0x70, 0x4c, 0xb5, 0x97, 0x6b, -0x52, 0xef, 0xd9, 0xdc, 0xa4, 0xc8, 0xe6, 0x0c, 0xca, 0x6d, 0x30, 0x5b, 0x80, 0x85, 0x39, 0x64, -0x59, 0x1b, 0x90, 0x62, 0x14, 0xda, 0x2b, 0xa0, 0x40, 0x2c, 0xc5, 0x37, 0x15, 0xaf, 0xe8, 0x7f, -0x12, 0x0a, 0x37, 0x4c, 0x7d, 0x7f, 0xc0, 0xa8, 0x78, 0xff, 0x67, 0x46, 0xb7, 0xfb, 0xaf, 0x1a, -0x78, 0xf9, 0x8c, 0x34, 0x57, 0x29, 0x20, 0x4d, 0xf3, 0x63, 0xca, 0x9f, 0x98, 0x24, 0xc0, 0xe6, -0x2b, 0x5d, 0x40, 0xb5, 0x57, 0xd5, 0x30, 0x6c, 0x45, 0x6e, 0x81, 0x71, 0x1c, 0x0b, 0x79, 0x2e, -0x3a, 0xf5, 0x4f, 0x03, 0xff, 0x35, 0xfc, 0x7a, 0xec, 0xe1, 0xd8, 0x4b, 0xb4, 0x07, 0x74, 0x37, -0x72, 0x97, 0x63, 0x28, 0x1f, 0x68, 0xc3, 0xb3, 0x91, 0x0b, 0xfd, 0x1a, 0xf2, 0x02, 0x79, 0xb2, -0x9e, 0x84, 0x2e, 0x25, 0x27, 0x60, 0x8b, 0xb3, 0x93, 0xcd, 0x72, 0x8b, 0x3b, 0xd3, 0xda, 0xd9, -0x2a, 0xd3, 0x28, 0x41, 0xba, 0x7f, 0xee, 0x60, 0xb3, 0x0b, 0xb5, 0xb8, 0x26, 0xd9, 0x2f, 0x6a, -0x6a, 0x7b, 0x93, 0x8d, 0xf1, 0x9a, 0x26, 0xec, 0x03, 0xcb, 0x12, 0x66, 0xbf, 0xc5, 0xc6, 0xd6, -0xbd, 0x69, 0x45, 0x95, 0x3b, 0x8c, 0x98, 0xb7, 0x8f, 0xc9, 0xfd, 0x88, 0x93, 0x66, 0x60, 0x2b, -0xa4, 0x95, 0xfe, 0x7e, 0x09, 0x27, 0x68, 0x3d, 0x92, 0x8d, 0xe5, 0x4d, 0x76, 0xe0, 0x95, 0x27, -0x63, 0xd2, 0x48, 0x1e, 0xdd, 0x27, 0xf5, 0x1d, 0x5f, 0x41, 0x33, 0x36, 0x93, 0xc6, 0x92, 0x6d, -0x20, 0xf1, 0x93, 0x92, 0x0c, 0x84, 0x33, 0xbe, 0x4c, 0x1f, 0x16, 0x95, 0x73, 0xb4, 0xd3, 0xc4, -0x4f, 0xc4, 0xc4, 0xf3, 0xe7, 0xd3, 0x31, 0xf1, 0x0b, 0x75, 0x7a, 0x9f, 0xb2, 0x3d, 0x78, 0x08, -0x56, 0xa6, 0xb0, 0xe4, 0xf5, 0xd8, 0x71, 0xd6, 0x6e, 0x52, 0xc8, 0x3b, 0x03, 0x3b, 0x62, 0xa9, -0xb8, 0xa1, 0xcd, 0xab, 0x20, 0x5e, 0x9a, 0xc0, 0xe3, 0x8f, 0x0a, 0x6a, 0xfa, 0x2e, 0x6e, 0x57, -0x89, 0xba, 0x31, 0x0d, 0x49, 0xa4, 0x70, 0x6c, 0x85, 0x77, 0xff, 0xa7, 0x63, 0x6c, 0x7d, 0x3a, -0x97, 0xcd, 0xd6, 0x2b, 0xe4, 0xbd, 0xa6, 0xe4, 0x8a, 0x3b, 0xb6, 0x0c, 0xad, 0xff, 0xae, 0x10, -0x1e, 0x87, 0x73, 0xd7, 0xb5, 0x32, 0x3a, 0xb7, 0x9a, 0xd3, 0x48, 0x5f, 0x7e, 0xb6, 0x81, 0x68, -0x19, 0x3b, 0xed, 0xbc, 0x7f, 0x84, 0xb4, 0xaf, 0x73, 0x26, 0x7f, 0x4d, 0x70, 0x44, 0xed, 0x3e, -0x2f, 0x90, 0xeb, 0xd2, 0x28, 0x7d, 0xf9, 0xf1, 0x38, 0xdb, 0x81, 0xae, 0xf1, 0x61, 0xaa, 0x41, -0x9f, 0xfc, 0x55, 0x16, 0x7e, 0x35, 0x35, 0xf1, 0x15, 0xd6, 0x20, 0x60, 0xcc, 0x47, 0x89, 0x92, -0x6a, 0xa1, 0x0a, 0x20, 0x5f, 0xee, 0xeb, 0x0e, 0x7e, 0x4e, 0x78, 0x49, 0xfb, 0x6a, 0x27, 0x35, -0xb2, 0xc5, 0x78, 0x08, 0x74, 0xef, 0xee, 0x69, 0xcb, 0x64, 0xfb, 0x1d, 0x2b, 0x44, 0xb5, 0x5c, -0x07, 0xda, 0xf5, 0xba, 0x4c, 0x7d, 0xa8, 0x1e, 0x12, 0xe5, 0x94, 0xfc, 0xf2, 0x30, 0x0c, 0x73, -0x61, 0x6b, 0x78, 0xb0, 0x55, 0xbc, 0x12, 0x86, 0x29, 0x74, 0x52, 0xdf, 0xfc, 0xf5, 0xa4, 0x34, -0x7a, 0x15, 0x80, 0xe1, 0xc9, 0x1e, 0x1b, 0xa7, 0x1d, 0x51, 0xec, 0x83, 0x02, 0xc4, 0x28, 0x2b, -0xe9, 0xe1, 0x93, 0xd7, 0x54, 0xa7, 0x44, 0xf7, 0xfe, 0xbc, 0xe4, 0x8e, 0x72, 0xc1, 0x0e, 0x45, -0x82, 0xc2, 0x42, 0xfe, 0x97, 0x1e, 0x33, 0x60, 0xdf, 0x20, 0x8f, 0x5c, 0x44, 0xeb, 0x81, 0xfe, -0xfd, 0x1f, 0xf4, 0xd4, 0xf7, 0x39, 0x94, 0x8c, 0x02, 0xea, 0x65, 0x7c, 0xdd, 0xca, 0xda, 0x1e, -0xb8, 0xde, 0xf0, 0xd4, 0xb7, 0x07, 0x15, 0x3d, 0xc0, 0x8d, 0x23, 0x16, 0xda, 0xa7, 0x24, 0x28, -0x41, 0x89, 0x6b, 0x03, 0xe4, 0x5e, 0x4c, 0x0d, 0x34, 0x44, 0x0d, 0xf6, 0xf7, 0x86, 0x66, 0x49, -0xa9, 0x8c, 0x78, 0x0c, 0x70, 0x31, 0x2d, 0xe0, 0x8a, 0x2e, 0xfb, 0x5d, 0x16, 0x3b, 0xd9, 0x49, -0x7b, 0x13, 0x06, 0x89, 0xc2, 0x12, 0xad, 0x23, 0x9c, 0xc5, 0xdc, 0x38, 0x5b, 0x05, 0x3f, 0xa5, -0x6b, 0xea, 0xd9, 0x01, 0xe6, 0x03, 0xd3, 0x0d, 0x45, 0x09, 0x8a, 0x91, 0x0b, 0xbc, 0xea, 0xec, -0x40, 0x5e, 0xc6, 0x09, 0x3a, 0x46, 0x56, 0xb0, 0x5b, 0xdd, 0xa4, 0xfa, 0xcd, 0x70, 0x63, 0x81, -0x63, 0x7a, 0x00, 0x74, 0x10, 0xff, 0xd7, 0x06, 0x3e, 0x39, 0x1b, 0x68, 0xba, 0xbe, 0xfb, 0x42, -0x8c, 0x4e, 0xcf, 0x60, 0xfa, 0x74, 0xaa, 0x56, 0xcf, 0x2c, 0x98, 0x16, 0xe5, 0x61, 0xfa, 0x7a, -0x75, 0x7f, 0xc6, 0x6c, 0x17, 0xdc, 0xf4, 0xe3, 0x3f, 0x92, 0x8c, 0x89, 0xa9, 0x17, 0x3b, 0xa6, -0x5b, 0x3d, 0xb7, 0x94, 0x83, 0x2d, 0x1b, 0xc4, 0x12, 0x2c, 0x67, 0x46, 0x84, 0x7b, 0xfb, 0x67, -0x07, 0xb1, 0x1e, 0x21, 0xab, 0x05, 0x10, 0xab, 0x77, 0xf1, 0x1e, 0xa4, 0x3b, 0xc5, 0xef, 0x0c, -0xbc, 0x84, 0xb4, 0x06, 0xf9, 0x52, 0xe7, 0xcb, 0xc3, 0x93, 0x29, 0x4e, 0x40, 0x19, 0xc8, 0x38, -0x90, 0xd1, 0x70, 0x50, 0xaf, 0x44, 0xce, 0xd3, 0x66, 0x99, 0x3e, 0x64, 0x87, 0x9b, 0x1a, 0xb3, -0xa8, 0x3d, 0x70, 0xce, 0x20, 0xda, 0x3f, 0x4b, 0x51, 0x1e, 0xff, 0x5c, 0xcc, 0x61, 0x5e, 0x42, -0x38, 0xa2, 0x60, 0x2f, 0x3d, 0x09, 0xce, 0x37, 0x62, 0x3b, 0xd8, 0x48, 0x12, 0x14, 0xbe, 0xcd, -0x21, 0xad, 0xaf, 0xbc, 0x0d, 0xc6, 0xeb, 0x90, 0xd3, 0x9a, 0xc5, 0x7a, 0x8b, 0x79, 0x20, 0x7c, -0xff, 0x38, 0x59, 0xcc, 0x88, 0xe2, 0xd8, 0x89, 0xce, 0xa6, 0x79, 0x80, 0x51, 0x25, 0xbd, 0xec, -0x0b, 0x7d, 0xf4, 0xba, 0x9d, 0x78, 0xd5, 0xe3, 0x55, 0x83, 0x57, 0x1d, 0x8c, 0xce, 0x2a, 0x80, -0xd1, 0xd9, 0x9f, 0xfc, 0x0f, 0xea, 0x6e, 0x85, 0x56, 0xb6, 0x37, 0x85, 0x3b, 0x23, 0xd1, 0x34, -0xd5, 0xad, 0x05, 0x13, 0x55, 0xb7, 0x26, 0x41, 0x30, 0xcd, 0xad, 0xd1, 0xec, 0x47, 0x60, 0x94, -0x6f, 0xee, 0x9e, 0xa7, 0xb4, 0xe1, 0xf3, 0xf7, 0xf1, 0x5a, 0x8d, 0xd7, 0xd3, 0xc9, 0xb4, 0x5f, -0x84, 0xd1, 0x99, 0x9f, 0xb3, 0xa7, 0xd1, 0x9c, 0xcc, 0xe6, 0x96, 0x56, 0xb2, 0xf9, 0xad, 0x85, -0x69, 0xd8, 0xa5, 0xd3, 0x61, 0x2a, 0x79, 0x40, 0x5f, 0x2c, 0x27, 0xca, 0x2f, 0x17, 0xda, 0x56, -0x76, 0xac, 0xe6, 0xd7, 0x34, 0x45, 0xd6, 0x35, 0x45, 0xa0, 0xb3, 0x33, 0x5c, 0xc0, 0x94, 0xb2, -0x22, 0xdf, 0x81, 0xe6, 0x96, 0xc6, 0xc6, 0x82, 0xf6, 0xce, 0xb5, 0x6b, 0x9a, 0x80, 0xfd, 0x16, -0x50, 0xc0, 0x25, 0x3c, 0x7f, 0x8f, 0x5e, 0xbf, 0x3e, 0xf5, 0x9c, 0xf7, 0x7a, 0xea, 0x39, 0xe7, -0x54, 0x02, 0xe8, 0x8a, 0x7a, 0x56, 0xa3, 0xd7, 0x59, 0xae, 0xa8, 0x67, 0x35, 0x9a, 0x6d, 0xba, -0x4a, 0x3d, 0xab, 0xd1, 0x6c, 0xdb, 0x97, 0xea, 0x59, 0x8d, 0x5e, 0x57, 0xf8, 0x37, 0xeb, 0x59, -0x71, 0x5f, 0xa2, 0x67, 0x35, 0x9a, 0xbd, 0xe2, 0xb2, 0x7a, 0x56, 0xa3, 0xd9, 0xd5, 0x93, 0xf4, -0xac, 0x46, 0xaf, 0x73, 0x5d, 0x41, 0xcf, 0x6a, 0x34, 0xbb, 0x70, 0x92, 0x9e, 0xd5, 0x68, 0xb6, -0xe7, 0x22, 0x3d, 0xab, 0xd1, 0xec, 0xba, 0xbf, 0xd7, 0xef, 0x34, 0x52, 0x17, 0xda, 0x9d, 0x3f, -0x8c, 0xd7, 0xf3, 0xee, 0x33, 0xe0, 0x9c, 0xe0, 0x15, 0x59, 0x9c, 0xf0, 0x46, 0xbe, 0x95, 0x99, -0x0d, 0x2e, 0x7c, 0xb6, 0xe2, 0xb3, 0x99, 0xd1, 0xe7, 0xed, 0xf8, 0xe5, 0x0f, 0xe7, 0xfa, 0xe0, -0xe1, 0xb9, 0x5d, 0xd8, 0xff, 0xb7, 0xc3, 0x4e, 0x76, 0x3f, 0x04, 0x7b, 0x11, 0x6a, 0x18, 0xa1, -0x76, 0xd3, 0x7b, 0xf6, 0x49, 0x78, 0x02, 0xe1, 0x7e, 0xce, 0xbe, 0xd8, 0x15, 0xce, 0x28, 0x3f, -0x03, 0x8f, 0x26, 0x4b, 0x56, 0x9f, 0xf0, 0x6f, 0xcd, 0xd6, 0xf1, 0x75, 0x28, 0x95, 0xe6, 0xa4, -0x6b, 0xb0, 0x87, 0xb9, 0x74, 0x2d, 0x2f, 0xd2, 0xc7, 0x77, 0x5c, 0x4b, 0xf6, 0xde, 0x41, 0xd1, -0x60, 0x90, 0xd6, 0x90, 0x50, 0xde, 0x1d, 0xcd, 0x7e, 0x51, 0x10, 0x0c, 0x0e, 0x0d, 0xb3, 0x3f, -0x8d, 0xb2, 0x82, 0x9a, 0x79, 0x14, 0xce, 0x61, 0xda, 0x44, 0x3a, 0x66, 0x45, 0x51, 0x0f, 0x02, -0xc4, 0x44, 0x6d, 0x61, 0x29, 0x8c, 0x8b, 0x2a, 0xfc, 0x4d, 0xee, 0xb3, 0xc7, 0x7b, 0xb1, 0xcd, -0x9e, 0xc6, 0x36, 0x23, 0xab, 0x51, 0xfb, 0x5f, 0x7a, 0x66, 0x41, 0x4f, 0x0e, 0x90, 0xb7, 0x9c, -0x45, 0x6e, 0x78, 0x5a, 0xb2, 0xab, 0x2f, 0x87, 0x3f, 0x0e, 0x0a, 0x8a, 0xa9, 0xbb, 0x54, 0x8c, -0x8a, 0x62, 0x96, 0x5f, 0x2a, 0x46, 0x93, 0x03, 0xf5, 0xb4, 0x92, 0xf1, 0xb4, 0xce, 0xc5, 0xf5, -0x07, 0x55, 0x42, 0x2b, 0x3c, 0x4d, 0x6d, 0xf9, 0xd4, 0x19, 0x28, 0x08, 0xcd, 0x4a, 0xe8, 0x93, -0x1b, 0x4b, 0xa9, 0xed, 0xc2, 0x60, 0x9f, 0x6e, 0x75, 0x31, 0x1d, 0x58, 0xce, 0xbf, 0xd6, 0x7a, -0x67, 0xb2, 0x84, 0x3d, 0x09, 0x7d, 0xfd, 0xb2, 0x52, 0x93, 0xbc, 0xc2, 0x46, 0x3e, 0xc0, 0x85, -0x3a, 0xe6, 0xd3, 0x54, 0xb2, 0xfe, 0xc9, 0x66, 0x16, 0xc4, 0x22, 0xc4, 0xe3, 0xf8, 0x18, 0xcc, -0x66, 0x1e, 0x2f, 0x81, 0xdb, 0xc2, 0x93, 0x77, 0x2f, 0xc4, 0xe8, 0x0d, 0xa4, 0x9b, 0x90, 0x53, -0x78, 0x0d, 0xd6, 0x53, 0x61, 0x5d, 0x0d, 0xfb, 0xff, 0xeb, 0x19, 0xe7, 0xa2, 0x1c, 0x08, 0x08, -0xce, 0x1e, 0x29, 0x7c, 0x1d, 0x14, 0x49, 0xe1, 0xcf, 0x16, 0x2d, 0x2a, 0x4e, 0x0b, 0x5f, 0x0f, -0xc5, 0x52, 0xf8, 0xa1, 0xe2, 0x45, 0xde, 0xb4, 0xf0, 0x2e, 0x28, 0x95, 0xc2, 0x9f, 0x2b, 0x5d, -0xd4, 0x9c, 0x0c, 0xd7, 0xb9, 0xe1, 0x74, 0xa8, 0xa0, 0xc1, 0x80, 0xf7, 0x96, 0x50, 0x19, 0xfe, -0xb6, 0x86, 0x2c, 0xf8, 0xdb, 0x1c, 0x6c, 0x13, 0xf5, 0x78, 0x3f, 0x13, 0x32, 0x36, 0x39, 0xf0, -0x3e, 0x1e, 0x5c, 0x21, 0x3a, 0xa0, 0xc5, 0x45, 0xab, 0x5b, 0x01, 0x45, 0xcb, 0x6f, 0xe3, 0x78, -0xf7, 0x41, 0x8b, 0x9e, 0xde, 0x05, 0x45, 0xcb, 0x47, 0xf4, 0x5e, 0x02, 0x2d, 0x3c, 0xbd, 0x3b, -0x15, 0x2d, 0x6f, 0xd2, 0xbb, 0xd5, 0xe7, 0x69, 0xcf, 0x0c, 0x1a, 0x7c, 0xe5, 0xed, 0x39, 0x28, -0x05, 0x97, 0x47, 0xfe, 0x1f, 0xd1, 0x20, 0x78, 0xf0, 0xbe, 0x41, 0xd4, 0xb1, 0xfb, 0xff, 0x22, -0x6b, 0x63, 0x91, 0x2e, 0x59, 0x4f, 0x9f, 0xca, 0xf2, 0x4d, 0x6c, 0x6f, 0x85, 0xf0, 0x4d, 0x5d, -0x1d, 0xf6, 0xbe, 0x8a, 0xaf, 0x11, 0x55, 0xc5, 0x07, 0x80, 0xf3, 0x09, 0x21, 0x55, 0x14, 0xf9, -0x86, 0xa8, 0xe2, 0x1a, 0x01, 0x54, 0x82, 0x05, 0x32, 0x16, 0xb8, 0x41, 0x4d, 0xf0, 0xce, 0x79, -0xa0, 0xc0, 0x67, 0x8d, 0x46, 0x4d, 0xf6, 0xad, 0xc0, 0x1d, 0x03, 0x7a, 0x5b, 0x50, 0x0e, 0xda, -0x05, 0x1e, 0xe6, 0x9f, 0x3d, 0x67, 0x61, 0x39, 0x68, 0xd8, 0xdd, 0x03, 0xda, 0x39, 0xab, 0x61, -0x18, 0x32, 0x51, 0xd2, 0xca, 0x42, 0xde, 0x63, 0xb8, 0xfc, 0x34, 0x64, 0xf3, 0xf7, 0xb0, 0x54, -0xf2, 0xe1, 0xe9, 0xdd, 0xdf, 0x0c, 0xe9, 0x02, 0x77, 0x0d, 0xdd, 0xd5, 0x01, 0xe3, 0xf7, 0x49, -0x52, 0xaa, 0xd0, 0x4f, 0x2b, 0x7d, 0x6c, 0xaf, 0x66, 0x0c, 0x7b, 0xb1, 0xc4, 0x5c, 0x65, 0xca, -0xac, 0x7a, 0x0f, 0xcc, 0xa6, 0x16, 0x30, 0x5b, 0xa7, 0xdf, 0x7a, 0x17, 0x71, 0xad, 0xb9, 0x3b, -0x44, 0xd2, 0xac, 0xce, 0x90, 0xf6, 0xed, 0x8b, 0xd8, 0x0c, 0xee, 0x6b, 0x8f, 0x8f, 0x87, 0xf4, -0x46, 0xe6, 0x97, 0x98, 0xf9, 0x80, 0xa6, 0x1d, 0xe4, 0xbb, 0x7d, 0xe5, 0x21, 0xb5, 0xc9, 0x63, -0xc9, 0x0a, 0x1e, 0xfd, 0xf5, 0xfb, 0x50, 0x10, 0xd4, 0x92, 0x95, 0x32, 0x85, 0x25, 0x3e, 0x0e, -0xea, 0xea, 0x0f, 0x56, 0x74, 0xc5, 0x5f, 0xa3, 0xd5, 0x78, 0xd2, 0x44, 0xe4, 0xaf, 0x61, 0x7b, -0xa8, 0xaa, 0x40, 0xcc, 0x88, 0x1c, 0x25, 0x85, 0x4a, 0x1e, 0xe4, 0xd9, 0xa9, 0x16, 0xe6, 0x41, -0xde, 0x64, 0x87, 0xe2, 0x30, 0x37, 0xd4, 0xd3, 0xa8, 0x25, 0xdf, 0xec, 0xcc, 0xbf, 0x95, 0x45, -0xd7, 0x06, 0x76, 0xc8, 0x5a, 0x05, 0x9c, 0x01, 0xf9, 0xb8, 0xfd, 0xc1, 0x6c, 0x9a, 0x99, 0xd5, -0xae, 0xf4, 0xf5, 0xae, 0x1b, 0x5d, 0xb0, 0x9f, 0xe2, 0x48, 0x2f, 0x3d, 0x6c, 0x48, 0x3f, 0xd5, -0x18, 0x2f, 0x21, 0xbf, 0xf1, 0x41, 0x0d, 0xa5, 0x86, 0x3c, 0xe6, 0x09, 0xde, 0xb5, 0x00, 0x5b, -0xb9, 0x9c, 0xc6, 0xe7, 0x17, 0xe1, 0xd4, 0xec, 0xfe, 0x1a, 0xb3, 0x06, 0xbb, 0x07, 0xd3, 0x38, -0x12, 0x34, 0xd3, 0xe8, 0xbd, 0x2e, 0xc3, 0xe6, 0xa2, 0x5d, 0x46, 0x4c, 0xf9, 0x48, 0xd0, 0x40, -0x5f, 0xa7, 0xfc, 0xd0, 0x92, 0x9f, 0x77, 0xb8, 0x0f, 0x61, 0x8d, 0xc1, 0x0e, 0x4a, 0xe9, 0x3a, -0x7d, 0x7a, 0x4a, 0xf8, 0x85, 0x31, 0xb4, 0x9c, 0x3c, 0xd7, 0xe3, 0x58, 0xc8, 0x49, 0xd9, 0xe8, -0xe1, 0xf3, 0xe1, 0x88, 0xdd, 0x45, 0xde, 0xd3, 0x71, 0x86, 0xda, 0x06, 0xa6, 0x00, 0xf9, 0xba, -0xb3, 0xa0, 0xac, 0x6d, 0x63, 0x16, 0x57, 0x28, 0x47, 0x6a, 0xd3, 0x93, 0xf8, 0xfd, 0x21, 0x26, -0x8d, 0x66, 0x91, 0xa5, 0x80, 0x54, 0x9e, 0xd8, 0xab, 0xc6, 0xf4, 0x32, 0xb0, 0xfc, 0x35, 0x92, -0x07, 0x7b, 0x5a, 0xdb, 0x24, 0x7d, 0x28, 0xc9, 0x8b, 0xbd, 0xd4, 0xa7, 0x7c, 0x89, 0xa9, 0xca, -0xec, 0x97, 0xf4, 0x0f, 0x84, 0x79, 0x30, 0x5b, 0xd6, 0x3c, 0x98, 0x86, 0xf5, 0xdc, 0xce, 0xb4, -0x0c, 0x49, 0x7f, 0x30, 0xab, 0xe1, 0x76, 0x49, 0x83, 0x91, 0x0b, 0x8a, 0x1e, 0x49, 0x7f, 0x11, -0x5e, 0xc5, 0x29, 0x7d, 0x48, 0xf2, 0x73, 0xce, 0xd5, 0x24, 0xfd, 0x9c, 0x1f, 0x9e, 0xe4, 0xe7, -0x9c, 0x4b, 0xfa, 0x39, 0x1f, 0xcd, 0x3e, 0x26, 0xf9, 0x39, 0x27, 0x8d, 0x36, 0xb2, 0x12, 0xe1, -0x78, 0x02, 0x9e, 0xc6, 0xe7, 0x5c, 0x1f, 0x7e, 0x89, 0xe9, 0xdd, 0x5f, 0xf5, 0x21, 0x88, 0x69, -0x67, 0x68, 0x6e, 0x27, 0x0a, 0x40, 0x98, 0x89, 0x73, 0xc3, 0x3c, 0x50, 0xfd, 0xe7, 0xb0, 0xfe, -0x71, 0x38, 0x2c, 0xda, 0xb0, 0xd7, 0x11, 0x3e, 0x78, 0xc7, 0x24, 0xe8, 0x17, 0x26, 0x43, 0x23, -0x27, 0x74, 0x38, 0xfd, 0x44, 0x0e, 0xf6, 0xc5, 0x50, 0x44, 0x43, 0x1e, 0xd2, 0x83, 0x46, 0x2a, -0xa3, 0x91, 0x3c, 0x4c, 0xce, 0xc3, 0xf1, 0x31, 0x0f, 0xf4, 0x3c, 0xed, 0xd9, 0x92, 0x07, 0xb4, -0xfb, 0x25, 0x88, 0x90, 0x46, 0xa2, 0x45, 0x62, 0x17, 0x95, 0x13, 0x21, 0x2d, 0xfc, 0x35, 0xb4, -0x73, 0x33, 0xc7, 0x05, 0x3a, 0xd2, 0x97, 0x13, 0x1b, 0x53, 0x34, 0x98, 0x4f, 0x8c, 0x9d, 0x9a, -0x50, 0x36, 0xca, 0x4d, 0x88, 0xf7, 0x6c, 0x35, 0x29, 0x33, 0x31, 0x0a, 0x82, 0x26, 0x85, 0x95, -0xf9, 0x52, 0x47, 0x38, 0xe4, 0xcc, 0x39, 0x50, 0xbb, 0xdf, 0x07, 0x73, 0xfa, 0x09, 0x22, 0x69, -0xe4, 0xa7, 0x68, 0xa6, 0x48, 0xb9, 0x5f, 0x40, 0xac, 0x16, 0x64, 0xdf, 0xec, 0x7a, 0x9f, 0x10, -0xd4, 0x4d, 0x38, 0xe5, 0xf5, 0xc1, 0x0a, 0x55, 0xfc, 0x74, 0x42, 0x23, 0x97, 0xfa, 0x6f, 0x62, -0x79, 0x34, 0x16, 0x7c, 0x53, 0x87, 0x4a, 0x75, 0x56, 0xea, 0xd5, 0x60, 0xe1, 0xe5, 0xfc, 0xb1, -0x4b, 0xde, 0xda, 0xa9, 0x3c, 0x4f, 0xd1, 0x78, 0xcc, 0x4a, 0x8d, 0x47, 0x51, 0x4d, 0x7e, 0xda, -0xc9, 0xd3, 0x73, 0xaa, 0x5c, 0x89, 0x19, 0x58, 0x3e, 0x2f, 0x30, 0x3a, 0xe7, 0x28, 0x5e, 0xbd, -0x78, 0xc5, 0xf0, 0xda, 0x0c, 0xa3, 0x37, 0x22, 0xdf, 0x59, 0x00, 0xff, 0x83, 0x3c, 0xe7, 0xca, -0xb5, 0x8d, 0x2d, 0x9d, 0x97, 0x3f, 0x2b, 0x90, 0x1e, 0x2d, 0x71, 0x9b, 0x73, 0x74, 0x30, 0xea, -0xbc, 0x2f, 0x36, 0x4f, 0x89, 0xa5, 0xe4, 0xc7, 0xf1, 0x7a, 0x13, 0xc3, 0x6c, 0xc9, 0x54, 0x3f, -0xc4, 0x90, 0x36, 0x89, 0xdb, 0x34, 0x96, 0x11, 0xeb, 0xa7, 0xc0, 0x4b, 0x29, 0xdf, 0x59, 0x6a, -0x17, 0xf1, 0x8c, 0x73, 0x83, 0xa9, 0x67, 0x93, 0x3f, 0xf5, 0x6c, 0xde, 0xf8, 0xe5, 0xfc, 0xe2, -0x9c, 0x15, 0x57, 0xe6, 0x17, 0xf9, 0x1d, 0x57, 0xcb, 0x2f, 0xf2, 0x3b, 0xbf, 0x9c, 0x5f, 0x9c, -0xd3, 0xfc, 0x3f, 0xa6, 0x97, 0x3f, 0xca, 0x1f, 0xbd, 0x3c, 0xbf, 0xc8, 0x0f, 0x4f, 0xe6, 0x17, -0xe7, 0x44, 0xaf, 0xc4, 0x2f, 0xf2, 0x03, 0x93, 0xf9, 0x45, 0x7e, 0xdf, 0xc5, 0xfc, 0x22, 0x7f, -0xf8, 0x6f, 0xe7, 0x17, 0x65, 0x9d, 0xfb, 0xde, 0x09, 0x1a, 0xf8, 0x3d, 0x13, 0xad, 0xf1, 0xca, -0x5a, 0xfb, 0x5a, 0xa9, 0xd5, 0xd9, 0x9e, 0xa2, 0x81, 0xad, 0x95, 0xdf, 0x50, 0x64, 0x41, 0xa9, -0x6c, 0x00, 0xa9, 0x40, 0x27, 0xf5, 0x4a, 0x84, 0xe3, 0x14, 0xa1, 0xcc, 0xbd, 0x2d, 0xb0, 0x3d, -0xa8, 0xb1, 0x70, 0x6f, 0xef, 0xba, 0x07, 0x63, 0x02, 0xb1, 0xba, 0x7b, 0xd6, 0xab, 0xf6, 0xc5, -0x82, 0xa7, 0x7c, 0xf8, 0x16, 0x54, 0x5f, 0xd3, 0x15, 0xff, 0x14, 0xa9, 0x2d, 0x97, 0xd8, 0x5d, -0x2c, 0x75, 0xe0, 0xb7, 0x64, 0x33, 0x97, 0x27, 0x3d, 0x7c, 0x1c, 0xad, 0x55, 0x61, 0x10, 0x14, -0x11, 0xce, 0xb7, 0x1a, 0x53, 0x51, 0x9b, 0xb9, 0xb7, 0x1f, 0xdf, 0xac, 0xc4, 0x34, 0xee, 0x5d, -0xa7, 0xda, 0x1b, 0x0b, 0x9e, 0x31, 0x5b, 0xc0, 0x1c, 0x01, 0xb1, 0xd5, 0xdc, 0x0c, 0x46, 0xfd, -0xc2, 0x1c, 0x08, 0x69, 0x03, 0xdd, 0x39, 0x70, 0x58, 0x31, 0xa4, 0x0a, 0x2e, 0xcf, 0xb1, 0xc0, -0x54, 0x94, 0xec, 0xc9, 0x72, 0x07, 0x2f, 0x6a, 0x71, 0xde, 0xff, 0x49, 0xc0, 0xbd, 0xd0, 0x0d, -0x3f, 0xf1, 0xb9, 0x43, 0x9f, 0x44, 0x21, 0x03, 0x39, 0xc6, 0xc5, 0x1f, 0x5b, 0xe0, 0x3a, 0x0f, -0x3c, 0x82, 0xfc, 0xdc, 0xf6, 0x40, 0x4f, 0xdd, 0x96, 0x0d, 0xaa, 0xfd, 0x3d, 0xc1, 0x77, 0x91, -0x1f, 0xe0, 0xa5, 0x15, 0x0a, 0xd2, 0xe5, 0x25, 0x5b, 0x09, 0xa4, 0x15, 0xb7, 0x20, 0x8b, 0xad, -0x45, 0x67, 0xed, 0xed, 0x0e, 0xa9, 0xc3, 0xfa, 0xa1, 0xee, 0xe0, 0x7d, 0x58, 0xf2, 0xbf, 0x22, -0xdd, 0x71, 0x55, 0xbf, 0xa9, 0x2b, 0x95, 0xd7, 0xf0, 0xed, 0xa0, 0xa3, 0xf5, 0x19, 0xe2, 0xc4, -0xe8, 0x84, 0x35, 0x4a, 0xb0, 0xe6, 0x50, 0xa6, 0x64, 0x69, 0x39, 0x6e, 0x9e, 0x2b, 0x80, 0x81, -0xe9, 0x5c, 0x27, 0x4f, 0x16, 0xc8, 0x67, 0xd7, 0x33, 0xd9, 0x8e, 0x10, 0xfb, 0x92, 0xed, 0x9a, -0xdd, 0x10, 0x99, 0x31, 0xdc, 0x4d, 0xb3, 0xd7, 0x9c, 0x52, 0xfd, 0x02, 0x0d, 0x24, 0x56, 0x4b, -0x8e, 0xc5, 0xf0, 0xaf, 0xdb, 0xe8, 0x7e, 0xf9, 0x99, 0xf2, 0x73, 0x3b, 0xc8, 0x3e, 0xd2, 0xa3, -0x11, 0xf8, 0xe5, 0x4b, 0xc1, 0x4c, 0xac, 0xdf, 0x59, 0x8e, 0x23, 0xfd, 0x6c, 0xef, 0x33, 0x9e, -0x6e, 0xac, 0x5d, 0x16, 0xc9, 0xe1, 0xb7, 0x70, 0x42, 0x88, 0x9d, 0xe8, 0x1d, 0x2d, 0x88, 0xb1, -0x55, 0x76, 0x15, 0xbf, 0x95, 0x0f, 0xcc, 0xc1, 0x3b, 0xa8, 0x24, 0x4a, 0x96, 0x4e, 0xdb, 0x24, -0xce, 0x3c, 0xb1, 0xbe, 0x14, 0x25, 0xb3, 0x93, 0xd7, 0x25, 0xb4, 0xfb, 0x2e, 0x9c, 0xad, 0xef, -0xe3, 0x15, 0x94, 0xff, 0xd1, 0x6e, 0x3a, 0x37, 0x61, 0x02, 0xe6, 0x15, 0xfe, 0xd1, 0xc5, 0x23, -0xf1, 0x4a, 0x51, 0x43, 0xf6, 0x7a, 0xfc, 0x0f, 0x60, 0x0e, 0x11, 0x0b, 0xf8, 0xfa, 0x83, 0xe7, -0x52, 0xe7, 0x03, 0x68, 0xad, 0xfb, 0xc2, 0xd3, 0x88, 0x1f, 0x64, 0xd1, 0x90, 0x67, 0xeb, 0xd3, -0xe5, 0xa4, 0x69, 0x15, 0x7f, 0x68, 0x3d, 0x57, 0xf5, 0x05, 0xb5, 0x28, 0x62, 0xe5, 0xf6, 0xa1, -0xd5, 0xc0, 0x07, 0x73, 0xc9, 0x82, 0x8d, 0xff, 0x41, 0xe4, 0x9a, 0xb7, 0xf3, 0xaa, 0x3f, 0x0d, -0xdc, 0x02, 0x58, 0x76, 0x25, 0xdb, 0x39, 0xd0, 0x53, 0xbf, 0x30, 0x1d, 0xac, 0x63, 0x38, 0x57, -0xe7, 0x84, 0xe3, 0x38, 0x93, 0x1b, 0x08, 0x5b, 0x4a, 0xa5, 0xbd, 0xe8, 0x62, 0x4c, 0x9b, 0xad, -0x7b, 0x6f, 0x80, 0x5c, 0x6c, 0xb9, 0x52, 0x2b, 0xe2, 0x0d, 0xb6, 0xbc, 0x19, 0x73, 0xaa, 0x1a, -0x89, 0x3b, 0xd6, 0x73, 0x19, 0x19, 0xa1, 0xec, 0x03, 0x84, 0x3b, 0x7a, 0x96, 0xc7, 0x36, 0x4a, -0xbf, 0x1b, 0x21, 0x48, 0xbb, 0xab, 0xee, 0x5e, 0x96, 0xf2, 0x09, 0xec, 0x27, 0xc4, 0xc4, 0x99, -0x49, 0x4c, 0xcc, 0xeb, 0x62, 0x78, 0xcd, 0x2c, 0x38, 0xd3, 0x1e, 0x56, 0x52, 0x9f, 0xfe, 0x24, -0xb6, 0xe3, 0xf1, 0xfa, 0xbe, 0xc5, 0x23, 0xe3, 0xd5, 0x22, 0x29, 0x78, 0xe5, 0x19, 0x2d, 0x90, -0x53, 0x0c, 0x6a, 0x4f, 0xfc, 0xaf, 0x3a, 0x0f, 0x70, 0xab, 0x48, 0x1e, 0xc9, 0x0c, 0x66, 0xea, -0x95, 0xc3, 0x5c, 0x28, 0xd5, 0x32, 0x82, 0x49, 0x1f, 0x3c, 0x26, 0xb7, 0x4b, 0x0e, 0xb6, 0x4b, -0x9e, 0x08, 0x63, 0x8f, 0x25, 0x24, 0x33, 0x94, 0x12, 0x1e, 0x45, 0xf9, 0x69, 0x17, 0x96, 0x7a, -0x00, 0x9f, 0x07, 0xf0, 0xf9, 0x51, 0xbc, 0x0f, 0xe1, 0x7d, 0x1f, 0x86, 0xed, 0x91, 0xb5, 0x88, -0x87, 0xf0, 0x7e, 0x00, 0xef, 0x87, 0x30, 0x6c, 0x58, 0x96, 0xb9, 0x0e, 0xe0, 0xfd, 0x30, 0xde, -0x8f, 0x62, 0xd8, 0x0b, 0xf8, 0xfc, 0x02, 0x3e, 0x1f, 0xc6, 0xfb, 0x71, 0xbc, 0x9f, 0xc0, 0xb0, -0xd7, 0xf0, 0xf9, 0x35, 0x7c, 0x3e, 0x1e, 0x56, 0x30, 0x6d, 0xc1, 0x89, 0x3b, 0x9c, 0x5b, 0x17, -0x75, 0xdd, 0x0e, 0xf0, 0x13, 0x49, 0x4f, 0xd4, 0x69, 0xae, 0xef, 0x4b, 0xca, 0x67, 0x0a, 0x27, -0x72, 0x86, 0x6c, 0x4f, 0x62, 0x06, 0xf9, 0x96, 0x3f, 0xda, 0x73, 0x34, 0xc6, 0xbb, 0x5e, 0x1a, -0x7e, 0xe9, 0x23, 0xb6, 0x13, 0xf1, 0x28, 0xaf, 0x0f, 0x19, 0x10, 0xcb, 0x32, 0x79, 0x97, 0xaf, -0x7f, 0x39, 0xc3, 0xba, 0xe1, 0x6e, 0x51, 0xc1, 0x6b, 0x48, 0x4b, 0x29, 0xa9, 0x39, 0x7e, 0x11, -0x97, 0xc4, 0x64, 0xb9, 0xd9, 0x0d, 0xa0, 0xae, 0x97, 0xa4, 0xb9, 0x94, 0x6f, 0x46, 0xf0, 0x71, -0xeb, 0xb8, 0x23, 0xb0, 0x13, 0x76, 0x72, 0x06, 0x18, 0x02, 0x97, 0xe2, 0x43, 0xe5, 0xeb, 0x19, -0x1b, 0x54, 0x3f, 0x51, 0xde, 0xa7, 0x32, 0xab, 0x2b, 0xbf, 0xec, 0x4f, 0xf1, 0x22, 0xcd, 0x1c, -0x88, 0xa5, 0xe7, 0xc5, 0x3b, 0x90, 0x35, 0x9c, 0x07, 0x37, 0x94, 0xcc, 0x43, 0x1c, 0xf8, 0x19, -0xe4, 0x58, 0xfc, 0x51, 0x58, 0x3a, 0x72, 0xe1, 0xc4, 0x3a, 0x6e, 0x09, 0xc3, 0xb6, 0x0c, 0x55, -0xc8, 0xbc, 0xbf, 0x0d, 0x31, 0x81, 0x67, 0x2b, 0x6f, 0xdb, 0x6d, 0xca, 0x3f, 0x3d, 0x71, 0x8b, -0x1a, 0x31, 0x6d, 0x9a, 0xff, 0xc1, 0xef, 0x23, 0x06, 0x54, 0x56, 0xfe, 0x71, 0x35, 0x9c, 0x95, -0x71, 0x4e, 0xd2, 0xfb, 0x7b, 0x41, 0x04, 0xe5, 0x3a, 0x29, 0xfd, 0xd1, 0x9c, 0x42, 0xa0, 0xf3, -0x02, 0x19, 0x3b, 0x11, 0xd3, 0x30, 0x97, 0x52, 0x39, 0x17, 0xde, 0x8f, 0xf4, 0xc9, 0xbd, 0x9e, -0xe3, 0x32, 0x42, 0xe6, 0x03, 0xcd, 0x94, 0x7a, 0x51, 0x3e, 0x9c, 0x8d, 0x42, 0xa1, 0x12, 0x69, -0x9f, 0xc1, 0xa4, 0x7a, 0x7b, 0xb0, 0x4c, 0x51, 0xb9, 0xf8, 0xc5, 0xf2, 0x9b, 0x16, 0xc3, 0xd9, -0x1e, 0xe1, 0xae, 0x41, 0x46, 0x01, 0x7b, 0xa3, 0xaa, 0x3d, 0xb1, 0xe0, 0x0b, 0x84, 0x77, 0x21, -0x50, 0xe6, 0xb1, 0xb1, 0xca, 0x74, 0x6f, 0x17, 0x84, 0x59, 0x1e, 0xae, 0x4b, 0xe4, 0x21, 0xb0, -0x3c, 0x0c, 0x2c, 0x8f, 0x4c, 0xa3, 0xea, 0xed, 0x9f, 0x6d, 0xc2, 0xd2, 0x6e, 0x76, 0x6f, 0x92, -0x53, 0x64, 0xf4, 0xf0, 0x0d, 0x29, 0x45, 0xc5, 0x91, 0x5b, 0x14, 0x89, 0x14, 0x0b, 0x62, 0x92, -0xaf, 0x4e, 0xb2, 0x20, 0x84, 0xad, 0x64, 0x95, 0x2c, 0x25, 0xa9, 0xde, 0x60, 0xba, 0x3e, 0x37, -0x14, 0xa6, 0xe5, 0xc0, 0x71, 0x21, 0xc7, 0x1e, 0x4a, 0xdd, 0x4a, 0xf4, 0x63, 0xae, 0x1b, 0x72, -0x22, 0xe4, 0x95, 0xed, 0x2c, 0x59, 0xdf, 0x54, 0x84, 0xd9, 0x79, 0x24, 0x4a, 0xe1, 0x24, 0xb3, -0x28, 0x81, 0xfc, 0xb8, 0x08, 0x8a, 0xdb, 0x29, 0x67, 0x46, 0xcd, 0x0f, 0xe2, 0x5b, 0x35, 0x52, -0x5b, 0x4c, 0xb3, 0x58, 0x4e, 0x33, 0x31, 0x6a, 0xbe, 0xd8, 0xc5, 0xfb, 0xeb, 0xfb, 0xa2, 0xc0, -0x2b, 0x73, 0x15, 0x19, 0x10, 0x0a, 0xee, 0xa3, 0x3c, 0xc4, 0xf5, 0xdc, 0x9f, 0x76, 0xdd, 0x33, -0xc8, 0x78, 0x79, 0x2c, 0x59, 0xd5, 0xc8, 0x85, 0x2d, 0x6c, 0xbc, 0xe3, 0xfc, 0x78, 0xdb, 0xb3, -0xde, 0x4d, 0x9e, 0x72, 0xc9, 0x02, 0x1e, 0x69, 0x0f, 0xc8, 0xa1, 0xec, 0xbc, 0xb1, 0xac, 0xbd, -0xa9, 0xa5, 0xd5, 0xc6, 0x14, 0x45, 0x22, 0x2b, 0x4c, 0xf0, 0xa8, 0x77, 0x8d, 0x06, 0x30, 0xb7, -0xdb, 0xd9, 0x9a, 0x68, 0x16, 0xf6, 0x61, 0x6f, 0x44, 0xb5, 0xbb, 0x27, 0x88, 0x54, 0x5d, 0x10, -0x84, 0x72, 0xc1, 0xc3, 0x46, 0xb9, 0x56, 0x1a, 0xe5, 0xc8, 0x45, 0x56, 0x3a, 0x54, 0xc3, 0xd8, -0x82, 0xc1, 0x52, 0x94, 0xb3, 0xf4, 0xb7, 0xa8, 0x26, 0xf4, 0x80, 0x05, 0xe5, 0x47, 0x93, 0xa4, -0x41, 0xc4, 0xca, 0x91, 0xc1, 0x76, 0x05, 0x4f, 0xd7, 0xf4, 0x15, 0xdc, 0xc5, 0x5a, 0x81, 0xda, -0x75, 0x07, 0xb3, 0x4f, 0x26, 0x24, 0x6a, 0xf9, 0x39, 0xad, 0x38, 0x82, 0xb2, 0x47, 0xc2, 0x96, -0x2f, 0x8a, 0x25, 0x4a, 0x8f, 0xbd, 0x1b, 0x25, 0x7f, 0xdf, 0xc8, 0x97, 0x4a, 0x67, 0x9c, 0x5e, -0x9d, 0xd8, 0xb3, 0x84, 0xa3, 0xeb, 0xb9, 0xa5, 0x23, 0xa3, 0x5b, 0x65, 0x1c, 0xcd, 0x08, 0x59, -0x0e, 0x10, 0x8e, 0x1a, 0xcd, 0xaa, 0x3f, 0x3d, 0x8e, 0xb5, 0x54, 0xb2, 0xfc, 0xb6, 0x0b, 0x18, -0x76, 0x8b, 0x52, 0xc2, 0xd5, 0xef, 0x0d, 0x32, 0x1b, 0x74, 0x0c, 0x4b, 0xb1, 0xd7, 0x7b, 0x48, -0xfb, 0x90, 0x7a, 0x1d, 0x8e, 0xa3, 0xa4, 0x7e, 0xbc, 0x6a, 0xe4, 0xf3, 0x03, 0xa2, 0x43, 0xd7, -0x0e, 0x3c, 0xe4, 0x05, 0xcd, 0xf6, 0xe9, 0xd4, 0x82, 0xd2, 0x1e, 0x01, 0xdf, 0x8e, 0x73, 0xc0, -0x83, 0xfc, 0xad, 0x73, 0xda, 0x69, 0x0e, 0x48, 0xa7, 0xfe, 0x56, 0xc1, 0x34, 0x93, 0x70, 0x5d, -0x71, 0x18, 0x29, 0x3f, 0x96, 0xae, 0x28, 0x0d, 0x2b, 0xe4, 0x39, 0xbc, 0x39, 0x39, 0x87, 0xcb, -0xf8, 0x26, 0xcf, 0xe1, 0x94, 0xf3, 0xed, 0x89, 0x5e, 0xf1, 0x62, 0xfe, 0xfe, 0xfd, 0x9f, 0xbd, -0x26, 0x5b, 0x55, 0xea, 0xbf, 0x4c, 0x6a, 0x39, 0x2c, 0xb5, 0xac, 0xf2, 0xbf, 0x68, 0xe0, 0xda, -0x56, 0x98, 0x0a, 0x8f, 0x5c, 0x94, 0xee, 0xeb, 0xac, 0xaf, 0x40, 0x51, 0x2c, 0xf5, 0x16, 0xa6, -0x55, 0x70, 0x31, 0xbe, 0x66, 0x13, 0xc6, 0xd6, 0x31, 0x8c, 0xf5, 0x47, 0x39, 0xa3, 0x62, 0x12, -0xce, 0x7a, 0x12, 0x18, 0x3b, 0xea, 0x90, 0xf9, 0x2e, 0xe7, 0xa4, 0x72, 0x3a, 0xea, 0x95, 0x92, -0x87, 0xe9, 0x3f, 0x0f, 0xde, 0x25, 0xb5, 0xa9, 0x8e, 0x4e, 0x4b, 0x71, 0x03, 0xc9, 0xf1, 0xf4, -0x30, 0x9d, 0xfe, 0xe5, 0x76, 0x48, 0x7d, 0x76, 0x4b, 0x0b, 0xb6, 0xa9, 0x33, 0x1d, 0xb3, 0x3f, -0x3d, 0x66, 0x41, 0xcc, 0x5e, 0x07, 0x51, 0x4e, 0xf0, 0xd8, 0x2b, 0xa0, 0x70, 0x03, 0x47, 0x3b, -0x52, 0x37, 0xe6, 0x90, 0x9c, 0x6f, 0x37, 0x2c, 0xfd, 0x10, 0x8e, 0x2f, 0x19, 0xf9, 0xf4, 0x88, -0xd1, 0x0e, 0x85, 0x53, 0x38, 0xec, 0x9f, 0x1e, 0xa4, 0xab, 0xce, 0xdd, 0xd4, 0xbb, 0xeb, 0xf8, -0x8c, 0x3f, 0xb3, 0x59, 0x08, 0xcb, 0xa8, 0xb4, 0x4f, 0xa3, 0x5d, 0x2a, 0xb9, 0x8c, 0x0e, 0xf2, -0xa7, 0x0e, 0xb3, 0x42, 0x16, 0x9f, 0x27, 0x98, 0xb0, 0x1a, 0xa4, 0xa5, 0x33, 0xce, 0xbc, 0xb2, -0x3e, 0x46, 0xbb, 0xa2, 0x9b, 0xe4, 0x92, 0xe6, 0x20, 0x45, 0xc7, 0xd2, 0xda, 0x90, 0x5f, 0x98, -0xc5, 0x34, 0x3b, 0xf4, 0x33, 0xdd, 0x30, 0x0b, 0x53, 0xa3, 0xdd, 0x01, 0x17, 0x94, 0xd0, 0xea, -0x02, 0xd9, 0x6e, 0x9f, 0xe9, 0x82, 0x59, 0xd2, 0x2e, 0xc1, 0x7a, 0x2e, 0xb0, 0x89, 0xd1, 0xb5, -0x4d, 0x41, 0x88, 0xb7, 0x21, 0x2e, 0xee, 0xb9, 0x5c, 0xbd, 0xfe, 0x3a, 0x72, 0xf9, 0x7a, 0xcd, -0xcd, 0x92, 0xea, 0xf5, 0xd7, 0x4f, 0xe4, 0x7a, 0x35, 0x24, 0x6b, 0x55, 0x7f, 0x55, 0xb5, 0x72, -0x5c, 0x45, 0xad, 0x32, 0xd9, 0xf7, 0xec, 0x5c, 0xc3, 0x84, 0x72, 0xdf, 0x97, 0x2c, 0x61, 0xb0, -0xbe, 0x8f, 0xe1, 0x88, 0x5e, 0xc6, 0x10, 0x59, 0x0a, 0x14, 0x55, 0x38, 0x72, 0xb3, 0x65, 0x49, -0xd0, 0x90, 0x8e, 0xe3, 0xa2, 0x5a, 0x92, 0x2c, 0xd3, 0x77, 0x28, 0x79, 0x94, 0x06, 0x69, 0x7e, -0x4a, 0xa6, 0xaa, 0x20, 0x3a, 0xb5, 0x78, 0xe4, 0xd3, 0x0e, 0x5e, 0x81, 0xb3, 0x5e, 0x4f, 0x8a, -0xb6, 0xf0, 0xeb, 0x34, 0x20, 0xea, 0x7f, 0x79, 0x98, 0xed, 0x23, 0x65, 0xd2, 0xac, 0x2e, 0xaa, -0x79, 0x17, 0xaf, 0x0f, 0x9e, 0x95, 0xf5, 0xd6, 0x5f, 0xe4, 0x3b, 0xe0, 0xb8, 0x98, 0x85, 0x10, -0x3a, 0x3b, 0x9d, 0x49, 0xdf, 0xff, 0xa9, 0x35, 0x09, 0x73, 0x26, 0x91, 0xfe, 0xf9, 0x21, 0x9c, -0x65, 0x41, 0x5a, 0xe5, 0xf3, 0x7f, 0x0b, 0xdb, 0x4f, 0xe3, 0xe0, 0x42, 0x99, 0x0b, 0x9f, 0x81, -0x37, 0xcf, 0x6d, 0xff, 0xc8, 0xbb, 0x70, 0x18, 0xef, 0x0f, 0x31, 0x39, 0xc6, 0x41, 0x1c, 0xb5, -0x51, 0xf2, 0x99, 0x8c, 0xfc, 0x47, 0x51, 0x17, 0x84, 0xff, 0x73, 0xf8, 0x3f, 0xff, 0xa0, 0x5b, -0x03, 0x5c, 0x2f, 0x04, 0xeb, 0x4c, 0x4c, 0x9f, 0x3e, 0xa2, 0x3d, 0x86, 0xbc, 0xd8, 0x7b, 0x5b, -0x98, 0x3e, 0x92, 0xd1, 0x3c, 0x0f, 0x8c, 0xef, 0xdd, 0x33, 0x77, 0x53, 0x0e, 0xa0, 0xec, 0x6d, -0x3e, 0x79, 0x8f, 0x49, 0x78, 0x65, 0x0c, 0xa1, 0x1e, 0x2d, 0xec, 0x5e, 0xf0, 0x33, 0x28, 0xd8, -0x07, 0x62, 0xb6, 0xb1, 0x19, 0xb6, 0x22, 0xc4, 0x3d, 0x08, 0x21, 0xbc, 0xcc, 0xe2, 0x9c, 0x07, -0x80, 0x8b, 0x8c, 0xbf, 0xfd, 0xeb, 0x67, 0x9b, 0xe1, 0x34, 0xf2, 0x25, 0x3a, 0x59, 0x37, 0x49, -0x87, 0x79, 0x5e, 0xcb, 0x74, 0xda, 0x6d, 0x28, 0x1b, 0xab, 0xb0, 0xdf, 0x4c, 0x12, 0x0f, 0x8a, -0x9c, 0xa6, 0xf5, 0xbd, 0x5e, 0xa3, 0x8b, 0x7d, 0x0d, 0x15, 0xef, 0xc1, 0x63, 0x85, 0xdd, 0xc8, -0x05, 0xd9, 0xca, 0xdf, 0x83, 0x01, 0x67, 0x8c, 0x78, 0x59, 0x5a, 0x8f, 0xa2, 0x95, 0x2f, 0x36, -0xf2, 0xaf, 0x33, 0xb5, 0xc8, 0xf4, 0x5d, 0x4b, 0xfc, 0xde, 0x8d, 0x39, 0xfe, 0x6d, 0x66, 0xd7, -0x3a, 0xee, 0x4f, 0x8f, 0xcb, 0x58, 0x91, 0x89, 0xf3, 0xb5, 0x92, 0xc9, 0x26, 0x67, 0x87, 0x37, -0x87, 0x0c, 0xd2, 0x58, 0x24, 0x0c, 0xf6, 0xef, 0x1f, 0x3f, 0x45, 0xf3, 0x20, 0xd7, 0x88, 0x71, -0x67, 0x8c, 0xaa, 0x83, 0xb1, 0x60, 0x99, 0xa2, 0x1c, 0xe2, 0x77, 0xbb, 0x16, 0x95, 0xc3, 0x19, -0x5f, 0x3e, 0xcc, 0x6a, 0xcb, 0x2c, 0x7f, 0x3f, 0xed, 0x14, 0xce, 0xdd, 0xf2, 0x6c, 0xc1, 0x78, -0x99, 0x1b, 0x73, 0x68, 0xaf, 0x9c, 0xa5, 0xb2, 0x57, 0xb2, 0x73, 0xca, 0xe5, 0x25, 0xe3, 0xb7, -0x59, 0x5c, 0x98, 0xe6, 0x69, 0x4a, 0x93, 0xad, 0x07, 0x39, 0x05, 0x77, 0x96, 0xb2, 0xc7, 0x85, -0x12, 0xc0, 0x69, 0x8c, 0xd7, 0xb1, 0xaf, 0x18, 0x7e, 0x30, 0x7b, 0x5a, 0x06, 0x9f, 0x8d, 0xe5, -0x75, 0x36, 0x3d, 0x2f, 0x07, 0xf6, 0xc6, 0x4b, 0x07, 0xc9, 0xfb, 0xe8, 0x00, 0xb0, 0x35, 0xe7, -0x62, 0xe6, 0x7d, 0xe3, 0x01, 0xbe, 0x76, 0xce, 0x6a, 0x46, 0x59, 0x97, 0x7c, 0x69, 0xb9, 0x66, -0xb1, 0x72, 0x69, 0x91, 0x2a, 0xab, 0x6b, 0x5d, 0x0b, 0x62, 0x03, 0x60, 0x43, 0xbe, 0xd2, 0xaa, -0x7a, 0xef, 0xfb, 0x39, 0xca, 0xf7, 0x74, 0x95, 0xaa, 0xaa, 0x91, 0xf1, 0xf5, 0xe2, 0x1d, 0xce, -0x02, 0xc8, 0xb3, 0x15, 0x40, 0x8e, 0x83, 0x53, 0xbb, 0x90, 0xbf, 0x74, 0x31, 0xfe, 0xd2, 0x8d, -0xfc, 0xa5, 0x80, 0xfc, 0xa5, 0x3a, 0x44, 0x67, 0x78, 0xd4, 0xc3, 0x77, 0x85, 0xb2, 0x30, 0x4c, -0x17, 0x24, 0x7b, 0x81, 0x99, 0xb2, 0xb6, 0x8d, 0x4e, 0xaf, 0x1a, 0x56, 0x9f, 0xd6, 0x04, 0x73, -0x11, 0x27, 0x55, 0xfc, 0x76, 0x7e, 0xf9, 0x9c, 0x0e, 0x56, 0x2e, 0x7f, 0xaa, 0x5c, 0xb6, 0x25, -0xe6, 0xe5, 0xcc, 0xff, 0xc7, 0x43, 0xcc, 0x2a, 0x58, 0x57, 0xfc, 0x04, 0xad, 0x8f, 0x90, 0x64, -0x8c, 0x58, 0xa9, 0x77, 0x70, 0xc8, 0xbf, 0x70, 0x66, 0xc5, 0x7b, 0xf7, 0xde, 0xed, 0x5e, 0xf8, -0x2c, 0xf6, 0xf5, 0x23, 0x13, 0x71, 0x94, 0xfd, 0x3e, 0x1c, 0x26, 0x5b, 0xdd, 0x79, 0x46, 0x78, -0xef, 0x1e, 0xde, 0xfd, 0x12, 0xc3, 0x88, 0xf2, 0xd3, 0x88, 0x07, 0x07, 0x00, 0xdc, 0xa7, 0xe1, -0x31, 0xc7, 0x01, 0x68, 0x0c, 0xc4, 0x70, 0x06, 0x8e, 0x05, 0x5f, 0x33, 0xcd, 0x36, 0xcf, 0x96, -0xac, 0xec, 0xb3, 0x33, 0x85, 0x85, 0x65, 0x48, 0x97, 0xc8, 0x4f, 0x94, 0xd9, 0x17, 0x05, 0xa1, -0x5c, 0xf2, 0xba, 0x21, 0x61, 0x48, 0x17, 0xce, 0x85, 0x17, 0x50, 0x46, 0xb8, 0xb0, 0x3e, 0x63, -0x4a, 0xa8, 0x5a, 0xc2, 0x9d, 0x04, 0x07, 0x10, 0x2a, 0xb5, 0xaa, 0xff, 0xf4, 0xf3, 0xe2, 0x8c, -0xbb, 0x2b, 0x12, 0xe1, 0xcc, 0x47, 0xca, 0x5b, 0x52, 0xab, 0x22, 0xcd, 0xf3, 0xf8, 0xb7, 0xdb, -0xc9, 0x77, 0xb9, 0x97, 0xb5, 0xf2, 0x83, 0x95, 0x15, 0x7f, 0x68, 0x85, 0x33, 0xf7, 0xb4, 0x32, -0xeb, 0x6a, 0xa6, 0x24, 0xb7, 0xff, 0x18, 0xce, 0xf7, 0x46, 0x87, 0x52, 0xae, 0xcb, 0xc3, 0xf4, -0x04, 0xae, 0x18, 0x48, 0x35, 0x83, 0x72, 0x7c, 0xa2, 0x1a, 0x6f, 0x27, 0x3a, 0x21, 0xfb, 0x50, -0xa1, 0x53, 0x0e, 0xa4, 0x8f, 0x39, 0x83, 0xf5, 0xdd, 0x89, 0x1a, 0xa4, 0x11, 0xa4, 0x8d, 0x7c, -0xac, 0x9b, 0xe7, 0xfe, 0xdc, 0xdb, 0xdf, 0x5d, 0xfe, 0x89, 0xc6, 0xf8, 0xf5, 0x2e, 0xa4, 0xf8, -0x75, 0x90, 0xf5, 0xf5, 0x2a, 0xc8, 0xa4, 0xe7, 0x39, 0xd5, 0xa0, 0xbd, 0x96, 0xd6, 0x06, 0x34, -0x0b, 0x05, 0xc8, 0xfe, 0xba, 0x0f, 0x67, 0x2c, 0xc5, 0x1d, 0xb1, 0x24, 0xff, 0x7d, 0x87, 0x4c, -0x35, 0xf6, 0x49, 0x27, 0x6d, 0x12, 0x6b, 0x44, 0xae, 0xcf, 0xf1, 0x1a, 0xc2, 0x6b, 0x00, 0xaf, -0x5d, 0x30, 0x7a, 0xdf, 0x16, 0x18, 0xfd, 0x3e, 0x8f, 0x97, 0x09, 0x2f, 0xcb, 0xff, 0xe4, 0x5a, -0x51, 0x74, 0x65, 0x62, 0xa5, 0x68, 0x65, 0x7b, 0x4b, 0x68, 0xe5, 0xfc, 0xf6, 0xa2, 0xe2, 0xd5, -0x6c, 0xd1, 0x68, 0xf2, 0xaa, 0x51, 0x12, 0x50, 0x5a, 0x33, 0x5a, 0xe8, 0x82, 0xd1, 0x1f, 0x3e, -0xdc, 0x3d, 0x4f, 0xa9, 0xc2, 0xe7, 0x42, 0xbc, 0xa6, 0xe1, 0x25, 0x26, 0x53, 0xf7, 0xa1, 0x64, -0xd1, 0x2f, 0xad, 0x19, 0xb9, 0x83, 0x30, 0xea, 0x7b, 0x1d, 0x46, 0x85, 0x4f, 0xf0, 0x3a, 0x87, -0x17, 0xce, 0x25, 0x42, 0x47, 0xea, 0xee, 0xd1, 0xc1, 0x68, 0x79, 0xc3, 0x97, 0xc0, 0xe4, 0x4a, -0x30, 0xe5, 0x46, 0xbc, 0x3c, 0x32, 0xcc, 0x4e, 0xbc, 0x0e, 0xa7, 0xee, 0x9e, 0x84, 0x4d, 0x08, -0x03, 0x5e, 0x33, 0xf1, 0xfa, 0x9a, 0x7c, 0x9f, 0x89, 0xcd, 0x77, 0x41, 0x7e, 0xcf, 0x93, 0xe3, -0xd9, 0x15, 0xa7, 0x13, 0x32, 0xa9, 0xf7, 0x99, 0xec, 0x4e, 0xcb, 0x5a, 0x4a, 0x1c, 0x35, 0x19, -0xc8, 0xbb, 0x4d, 0x01, 0x0d, 0x72, 0x29, 0x89, 0x9d, 0xd5, 0x4c, 0x98, 0x01, 0xd7, 0x22, 0xc4, -0x4c, 0x64, 0x40, 0xae, 0x83, 0x1c, 0xb8, 0x1e, 0x72, 0xe1, 0x06, 0x4c, 0x31, 0xcb, 0x05, 0xc3, -0x30, 0xcc, 0x0d, 0x2b, 0x86, 0x95, 0x54, 0xdf, 0x4d, 0xd8, 0x87, 0x9b, 0xf6, 0xc0, 0xe8, 0x16, -0xec, 0xd3, 0x2d, 0x02, 0x8c, 0x6e, 0xce, 0x94, 0xde, 0x93, 0xd7, 0xd3, 0xa9, 0x67, 0x16, 0xaf, -0xc7, 0xab, 0x00, 0xaf, 0x32, 0xbc, 0x6e, 0x97, 0xbf, 0x1f, 0x90, 0xda, 0x6e, 0x73, 0x04, 0xaf, -0x1e, 0xbc, 0x9e, 0xc3, 0xeb, 0x53, 0x18, 0xbd, 0x1b, 0xdb, 0xb2, 0xb7, 0x1f, 0xef, 0x6f, 0x48, -0xdf, 0xd3, 0xfd, 0xee, 0x6d, 0x30, 0x7a, 0xd7, 0x1b, 0x93, 0xc3, 0xdd, 0x75, 0xf3, 0xab, 0x3c, -0x15, 0xe0, 0x69, 0x8a, 0x36, 0xad, 0x8a, 0x36, 0x35, 0xf2, 0x35, 0xe5, 0x4b, 0xcb, 0xab, 0xdc, -0x3c, 0x86, 0x15, 0xf0, 0xe5, 0x9d, 0x1d, 0xc1, 0x96, 0x90, 0xb0, 0x72, 0x4d, 0xd3, 0x3f, 0xcc, -0x75, 0x14, 0xaf, 0xe7, 0x03, 0x4b, 0x57, 0xae, 0x59, 0xcd, 0x1e, 0xb5, 0x30, 0x77, 0x0d, 0x8f, -0x15, 0xfe, 0x27, 0x77, 0x9d, 0xfb, 0x9f, 0xf9, 0xc5, 0x2b, 0xbf, 0xd3, 0xd6, 0x84, 0x9f, 0x60, -0x94, 0x73, 0x7d, 0x01, 0x5f, 0xd3, 0xb9, 0x66, 0x4d, 0x4b, 0x03, 0x0b, 0xa9, 0xe0, 0x69, 0x77, -0x99, 0x7d, 0x52, 0x90, 0x80, 0xae, 0x8d, 0xae, 0x8c, 0xae, 0x5d, 0xc3, 0x60, 0x6d, 0xf4, 0x93, -0x08, 0xf7, 0x44, 0x5a, 0xd6, 0x35, 0xad, 0xe1, 0x3b, 0x3a, 0xa3, 0x7c, 0xa3, 0x5c, 0x9a, 0x44, -0x14, 0x25, 0xd4, 0xd8, 0xb9, 0x16, 0xd3, 0x8c, 0xf0, 0xab, 0x9a, 0x9b, 0x56, 0xad, 0xe6, 0x2d, -0xf8, 0x65, 0xbd, 0x8d, 0xa7, 0xdf, 0x79, 0xfc, 0x3f, 0xf0, 0x73, 0x93, 0xa0, 0xee, 0xc6, 0xc6, -0x96, 0x8e, 0x10, 0xbf, 0xa6, 0x69, 0x55, 0x67, 0x47, 0xe3, 0xca, 0xc8, 0x77, 0xf8, 0x86, 0xb5, -0x6b, 0xb4, 0xb0, 0x6a, 0x65, 0xa4, 0x31, 0x65, 0x56, 0x44, 0x82, 0xac, 0x68, 0x5f, 0xdb, 0xb6, -0x32, 0x4a, 0xc0, 0x18, 0xd1, 0x14, 0x4d, 0x16, 0x2f, 0xbc, 0x36, 0xd2, 0xd2, 0xb9, 0x76, 0x0d, -0xdf, 0xd2, 0x11, 0x6d, 0x8a, 0x44, 0xd6, 0x86, 0xa3, 0x25, 0x2c, 0x1b, 0xf6, 0xa3, 0x05, 0x84, -0xf9, 0xa7, 0x9a, 0x2a, 0x04, 0x5b, 0xdb, 0xb0, 0xe6, 0x3b, 0x6b, 0xa2, 0x4d, 0xed, 0x14, 0x52, -0xd0, 0xb8, 0xb2, 0xa9, 0xbd, 0xb3, 0x03, 0x1a, 0x3a, 0x3b, 0xa3, 0x6d, 0x9d, 0x2b, 0x1b, 0x9b, -0x22, 0xa9, 0xcc, 0x30, 0xfa, 0x1f, 0x60, 0xa1, 0xb3, 0xa1, 0x25, 0x0a, 0x1d, 0x9d, 0x98, 0x65, -0xb4, 0x05, 0xef, 0x8d, 0xed, 0x2b, 0x21, 0xdc, 0xd9, 0xd6, 0x06, 0x4d, 0xeb, 0xc3, 0x2b, 0x3b, -0xd6, 0xb4, 0x74, 0x76, 0x24, 0xf7, 0xdb, 0xd3, 0x06, 0x10, 0x15, 0x08, 0x73, 0x6d, 0x6b, 0xfc, -0x67, 0xbe, 0xdc, 0x5d, 0x5d, 0x5d, 0xe1, 0xe1, 0x6b, 0xeb, 0x6e, 0x15, 0xf8, 0xca, 0x5b, 0xfd, -0xe5, 0x75, 0x55, 0xcb, 0xfc, 0x05, 0x7c, 0x9d, 0xb7, 0xaa, 0x96, 0x5f, 0x56, 0x53, 0x11, 0x70, -0xd3, 0x3b, 0x8f, 0x2f, 0xfe, 0x65, 0x75, 0x7c, 0xed, 0xad, 0x35, 0x35, 0xcb, 0x02, 0x75, 0x08, -0x2e, 0xfc, 0x23, 0xef, 0xa9, 0x58, 0x5e, 0x55, 0x5e, 0xa1, 0xfd, 0xb2, 0xb4, 0x78, 0xcb, 0xe2, -0x0a, 0x7f, 0x45, 0xa0, 0xaa, 0x7c, 0xde, 0xff, 0xd5, 0x54, 0xe7, 0xcf, 0xe7, 0xab, 0x96, 0xf1, -0xee, 0xf2, 0xf2, 0x8a, 0xda, 0x5a, 0xbe, 0x6e, 0x19, 0x2f, 0x54, 0x2f, 0x2b, 0x5f, 0x82, 0x2d, -0x59, 0xdc, 0xb6, 0xbe, 0x84, 0xfd, 0xda, 0xf8, 0xea, 0x0a, 0xff, 0xe2, 0x3a, 0xaf, 0x14, 0xf6, -0x7f, 0xb7, 0x46, 0x55, 0xcb, 0x16, 0x3a, 0xff, 0xe6, 0xea, 0xd4, 0x56, 0x2d, 0x16, 0x02, 0x15, -0xee, 0x25, 0x95, 0x77, 0x96, 0xd7, 0x05, 0xaa, 0xef, 0x2c, 0x67, 0x06, 0x66, 0x56, 0xb6, 0x45, -0x9a, 0x56, 0x36, 0x7e, 0x07, 0xb1, 0x2b, 0x4a, 0xc6, 0x6a, 0xd2, 0xc0, 0xeb, 0x5a, 0xda, 0x9b, -0x3a, 0xd7, 0x46, 0xf9, 0x6f, 0x37, 0xb7, 0x20, 0xe2, 0x7f, 0x7b, 0x65, 0x0b, 0x43, 0xac, 0x60, -0x67, 0x84, 0x97, 0xa9, 0x66, 0xb4, 0x93, 0x5f, 0xd5, 0xd9, 0x1e, 0x6e, 0x43, 0xcc, 0xe6, 0x3b, -0xc3, 0x4d, 0x11, 0xc4, 0xbc, 0xce, 0x8e, 0x09, 0x49, 0x78, 0x24, 0xc0, 0x35, 0xd1, 0x96, 0xb6, -0x36, 0xc2, 0xda, 0xef, 0xf0, 0x2b, 0x83, 0x88, 0x81, 0x7c, 0x54, 0x4a, 0xba, 0x80, 0x77, 0x37, -0xe0, 0x58, 0xc2, 0x64, 0x27, 0x7c, 0x85, 0x89, 0x22, 0xe6, 0xdd, 0x59, 0xdb, 0x14, 0x15, 0x9a, -0xd6, 0x44, 0xeb, 0x83, 0x4d, 0x91, 0xa5, 0x9d, 0x8d, 0x4d, 0x25, 0x7c, 0x45, 0x20, 0xb0, 0x0c, -0xe9, 0xb6, 0x9c, 0x7b, 0x47, 0xd3, 0x3a, 0x4c, 0x29, 0xc2, 0x74, 0x3d, 0x70, 0x90, 0xaf, 0xec, -0xf8, 0x0e, 0xbf, 0x6e, 0x65, 0x5b, 0x4b, 0x23, 0xbf, 0x1e, 0x3f, 0xe0, 0xdb, 0xf1, 0x8b, 0x35, -0x05, 0xfc, 0xb7, 0x29, 0x63, 0x1c, 0x36, 0x98, 0xc7, 0x5a, 0x24, 0xf3, 0x34, 0x0c, 0x83, 0x2b, -0x11, 0x61, 0xa5, 0xfc, 0x08, 0xe9, 0xab, 0x02, 0xdf, 0x2c, 0xe1, 0xcb, 0x03, 0x55, 0x75, 0x55, -0xd8, 0xe2, 0x73, 0xf8, 0xa5, 0xcb, 0x02, 0x15, 0xbc, 0x07, 0xe3, 0xf8, 0x40, 0xc5, 0x37, 0x6f, -0xad, 0xa8, 0xa5, 0xd6, 0xac, 0xf3, 0xba, 0xfd, 0xd8, 0x11, 0xcb, 0x02, 0xee, 0xc5, 0x15, 0xd8, -0x2f, 0x7e, 0x7e, 0x71, 0xd5, 0xf2, 0x0a, 0x1c, 0x41, 0x6d, 0x8d, 0x7c, 0xc3, 0x77, 0xa2, 0x38, -0xbe, 0xd7, 0xad, 0x49, 0x7b, 0x69, 0x6b, 0x0a, 0x92, 0xc5, 0x9e, 0x2f, 0x4d, 0x7f, 0x59, 0x65, -0x65, 0x45, 0xe0, 0x52, 0xa9, 0xd7, 0xb9, 0x97, 0x5c, 0x55, 0xea, 0x72, 0x6b, 0xb1, 0x0c, 0x10, -0x23, 0xd7, 0x30, 0x1a, 0x44, 0x43, 0x9a, 0x50, 0xd0, 0xb3, 0xd4, 0x3d, 0x21, 0xe4, 0xe2, 0x4f, -0x58, 0x6b, 0xa6, 0x47, 0xf2, 0xbc, 0x1c, 0x43, 0xdf, 0x56, 0x32, 0x6b, 0x46, 0x05, 0x13, 0x3e, -0xc3, 0x61, 0x7c, 0x67, 0xd3, 0xfa, 0xa6, 0x55, 0x77, 0xae, 0x6a, 0x6f, 0x4c, 0xf6, 0x46, 0x5d, -0x04, 0x07, 0x3b, 0xb5, 0x78, 0x5b, 0x53, 0x47, 0x28, 0xda, 0x8c, 0x54, 0xac, 0xad, 0x71, 0x1e, -0xdf, 0xb4, 0x7e, 0x55, 0x53, 0x53, 0xe3, 0x1a, 0xde, 0xb9, 0xa8, 0x88, 0xe8, 0x56, 0xb4, 0x33, -0xb2, 0x26, 0xd5, 0xd9, 0x7f, 0x77, 0xaa, 0x45, 0x8b, 0x16, 0x2d, 0xfc, 0xdb, 0xd2, 0xad, 0xea, -0x90, 0x70, 0x24, 0x9a, 0x48, 0x9f, 0x51, 0xaf, 0x70, 0x5b, 0x0b, 0x92, 0x37, 0xbe, 0xb6, 0xb9, -0x73, 0x2d, 0x35, 0x34, 0x43, 0x94, 0xb6, 0xa6, 0x95, 0x6b, 0xa2, 0x34, 0x2a, 0x08, 0xcd, 0x17, -0xf0, 0x96, 0x55, 0x9d, 0x91, 0x08, 0x66, 0x88, 0xd9, 0xcc, 0xbb, 0xfa, 0x6c, 0x08, 0x93, 0x57, -0x76, 0x60, 0x76, 0xdf, 0x09, 0x37, 0x61, 0x27, 0xae, 0xbf, 0xba, 0xb2, 0xd6, 0x54, 0x2d, 0xbb, -0x2d, 0xd2, 0x82, 0x83, 0x6a, 0x3e, 0xce, 0x1c, 0x44, 0xc9, 0xc3, 0x9d, 0x1d, 0x6b, 0x9a, 0xf8, -0x60, 0xa4, 0xb3, 0x5d, 0x46, 0xfe, 0x02, 0x79, 0xc6, 0x91, 0x09, 0xf8, 0xd5, 0xa4, 0xd4, 0xb0, -0xb2, 0x51, 0x46, 0x88, 0x92, 0x2f, 0xfb, 0x4a, 0x1e, 0xb5, 0x2d, 0x88, 0x6d, 0x2b, 0x27, 0x97, -0xe2, 0xa2, 0xcf, 0xb0, 0x85, 0xd6, 0x86, 0xef, 0x5c, 0xdb, 0xd1, 0x82, 0x73, 0xca, 0x6d, 0xee, -0x80, 0xbf, 0xca, 0xbf, 0xb8, 0x84, 0x66, 0xd9, 0x68, 0x04, 0xe7, 0x02, 0x6c, 0xe0, 0xce, 0x8e, -0x36, 0x24, 0x2e, 0x6b, 0xc3, 0x34, 0x4c, 0xd7, 0x30, 0xd4, 0xea, 0xec, 0xc0, 0xff, 0x4d, 0x44, -0x0e, 0xa8, 0x9d, 0x57, 0x32, 0x62, 0x50, 0x40, 0x31, 0x89, 0x59, 0x74, 0x12, 0xb6, 0x52, 0x2e, -0x55, 0x8d, 0x4d, 0x38, 0x86, 0x83, 0xdf, 0x29, 0xe1, 0x6f, 0xc5, 0x9c, 0x70, 0x1e, 0x0b, 0x76, -0x62, 0x35, 0xd6, 0xf0, 0xf6, 0xc4, 0xcf, 0x55, 0x7e, 0xe1, 0xb8, 0xa9, 0x6d, 0x3d, 0xef, 0x2c, -0xc6, 0x99, 0x8b, 0xbe, 0x72, 0x14, 0x26, 0x68, 0x36, 0x5f, 0xc8, 0xc2, 0x56, 0x36, 0x36, 0x62, -0x45, 0xd7, 0xac, 0xa4, 0x99, 0xbe, 0xa1, 0xad, 0x73, 0xd5, 0x6a, 0x4c, 0xb7, 0xba, 0x76, 0xfe, -0x02, 0xa7, 0x03, 0x6e, 0xaf, 0xaa, 0xe1, 0x17, 0xa0, 0x8c, 0x9a, 0x1c, 0x2a, 0x94, 0x49, 0x00, -0x49, 0x67, 0x6d, 0x4b, 0xa8, 0x03, 0xcb, 0x1d, 0x41, 0x02, 0x55, 0xd9, 0xb9, 0x16, 0x3b, 0x7b, -0x4d, 0x22, 0x80, 0xd1, 0x4a, 0x82, 0x96, 0x3a, 0xcd, 0x86, 0x55, 0x8e, 0xf2, 0xc1, 0xb5, 0x91, -0x68, 0x33, 0xb6, 0x0b, 0x43, 0x10, 0x46, 0x31, 0x65, 0xcb, 0x61, 0x13, 0x49, 0x60, 0x7b, 0xe3, -0x9d, 0xac, 0xe7, 0x8a, 0x0a, 0x4b, 0xf8, 0x40, 0xd3, 0xb7, 0xd6, 0x22, 0x21, 0x44, 0x22, 0xc7, -0xca, 0x44, 0x83, 0x61, 0xfd, 0x37, 0xd8, 0x80, 0x40, 0x1a, 0xba, 0xa6, 0xa5, 0x51, 0x36, 0x47, -0x86, 0x28, 0x1d, 0x6a, 0x62, 0x91, 0xf3, 0xbe, 0x5a, 0x5a, 0x52, 0x13, 0x5c, 0x31, 0x45, 0x09, -0xe4, 0xe2, 0x74, 0xa9, 0x01, 0xfe, 0x2f, 0x15, 0xf1, 0x4a, 0x49, 0xfd, 0x1d, 0x25, 0x64, 0x35, -0x5f, 0xe8, 0xfc, 0xbf, 0x56, 0xc4, 0xbf, 0x35, 0xa9, 0x09, 0xf6, 0xe4, 0x12, 0x38, 0xd4, 0xde, -0xb2, 0x2a, 0xd2, 0xc9, 0xa6, 0x56, 0x7e, 0xed, 0x9a, 0xa6, 0x36, 0x44, 0xbd, 0x82, 0x14, 0x2d, -0x76, 0x87, 0xc3, 0x91, 0xce, 0xf5, 0x2d, 0xed, 0x34, 0x06, 0x3b, 0xd6, 0xb6, 0x37, 0xd0, 0x60, -0x0a, 0xf2, 0x58, 0x1b, 0x69, 0xa2, 0x5d, 0xc3, 0xe3, 0x94, 0xcb, 0x50, 0xb2, 0x63, 0x65, 0x47, -0xa7, 0xc4, 0x1c, 0xae, 0x61, 0xf3, 0x46, 0x2a, 0x89, 0xca, 0xa4, 0x4d, 0x3a, 0x9c, 0x9f, 0x3b, -0xf8, 0xf4, 0x32, 0xd8, 0x78, 0x1a, 0xb3, 0xfc, 0xd2, 0xaa, 0xf2, 0xc0, 0x32, 0xef, 0xed, 0x97, -0xfa, 0x64, 0x15, 0x32, 0x06, 0x98, 0x35, 0xfb, 0x48, 0xaa, 0xf0, 0x97, 0x41, 0x31, 0xce, 0x58, -0x3b, 0x59, 0xda, 0x52, 0xc2, 0xe8, 0x52, 0x94, 0x6d, 0x2a, 0xd7, 0xc1, 0x68, 0x75, 0x71, 0x6a, -0x3f, 0x7c, 0xe9, 0x89, 0xb4, 0xe7, 0x58, 0xba, 0x74, 0xf6, 0xa5, 0xf6, 0xeb, 0x46, 0x5d, 0x9b, -0xaf, 0xbc, 0x4f, 0xee, 0x3c, 0x74, 0xb5, 0xfb, 0xe4, 0xce, 0x17, 0xbe, 0x7c, 0x9f, 0xdc, 0xd5, -0xff, 0x37, 0xef, 0x93, 0x67, 0x7f, 0xd9, 0x3e, 0xb9, 0x73, 0xec, 0xf2, 0xfb, 0xe4, 0xce, 0xb3, -0x93, 0xf7, 0xc9, 0x5d, 0xe1, 0x2b, 0xed, 0x93, 0x3b, 0x8f, 0x4f, 0xde, 0x27, 0x77, 0x9e, 0xba, -0x78, 0x9f, 0xdc, 0x79, 0xfe, 0x6f, 0xde, 0x27, 0x67, 0xeb, 0x24, 0x92, 0xcd, 0x81, 0xe8, 0xd8, -0x70, 0x0f, 0x5b, 0xaf, 0x6b, 0x06, 0xcd, 0xcb, 0xc3, 0x27, 0xef, 0xa1, 0x5d, 0xf2, 0x30, 0x88, -0xea, 0xc2, 0x6b, 0x1c, 0x07, 0x99, 0xf5, 0xe1, 0x4f, 0x69, 0x67, 0xec, 0xaa, 0xbe, 0xc8, 0x71, -0xf6, 0x4c, 0xfe, 0x22, 0x01, 0x97, 0x84, 0xd2, 0x14, 0xce, 0x03, 0x8d, 0x9c, 0xf2, 0xf9, 0x2b, -0xc2, 0xe5, 0x2c, 0x14, 0x40, 0x93, 0x82, 0x63, 0xd6, 0x06, 0xec, 0xa0, 0x73, 0xda, 0x41, 0x1b, -0x8d, 0xef, 0x21, 0x7f, 0x18, 0x10, 0x99, 0x42, 0xe7, 0x81, 0x8f, 0x0e, 0x80, 0x46, 0xd2, 0x67, -0x3c, 0xd6, 0x7d, 0xac, 0x9b, 0x77, 0xbd, 0xf4, 0x8c, 0x5e, 0x4f, 0x5f, 0x64, 0xd9, 0x61, 0x0a, -0x96, 0x97, 0x9d, 0xd8, 0x0c, 0xaa, 0xf4, 0xa5, 0x30, 0x5d, 0xda, 0xbb, 0xa3, 0x35, 0xc2, 0x97, -0x86, 0xf5, 0xdd, 0xfe, 0xb5, 0x18, 0xab, 0xbe, 0x44, 0xac, 0x06, 0x63, 0xf5, 0xd2, 0x49, 0x25, -0xbe, 0x19, 0x44, 0xbe, 0xc6, 0xd7, 0x0c, 0x96, 0xa0, 0x9e, 0x6c, 0x57, 0xeb, 0xf5, 0x0a, 0x1a, -0x07, 0x00, 0x5d, 0xfa, 0x98, 0x84, 0x1d, 0xbc, 0xb4, 0xef, 0x6d, 0x87, 0xeb, 0x4c, 0x08, 0x6b, -0x0c, 0xcc, 0xf5, 0x82, 0x8a, 0x56, 0x5e, 0xbf, 0xbe, 0x45, 0x03, 0xbe, 0x16, 0x98, 0x15, 0xbc, -0x7d, 0x21, 0xad, 0xf3, 0xcc, 0xc2, 0x67, 0x4b, 0x48, 0x47, 0xab, 0x2b, 0x4b, 0xce, 0x41, 0xee, -0x0f, 0xff, 0x20, 0xb2, 0x95, 0x96, 0x6a, 0x2d, 0xe4, 0x9a, 0xbb, 0xe0, 0xf5, 0x9d, 0x70, 0x2d, -0x59, 0x00, 0xbb, 0x86, 0xad, 0xba, 0xe8, 0x29, 0xa6, 0xf0, 0x14, 0x5b, 0x8f, 0xc9, 0x0e, 0x2b, -0x6b, 0xee, 0x49, 0x69, 0xa1, 0x32, 0x2b, 0xd6, 0x1a, 0xfd, 0xb5, 0x64, 0x5d, 0x21, 0x3b, 0x96, -0xe8, 0x4f, 0x76, 0xb2, 0x4c, 0xe3, 0xdf, 0x1f, 0x0f, 0x33, 0x0f, 0xc6, 0xd2, 0xb9, 0x2c, 0x7a, -0x17, 0xe9, 0xdd, 0xae, 0x65, 0x56, 0xef, 0xe7, 0x81, 0x68, 0x72, 0xf1, 0x81, 0xb9, 0x55, 0x58, -0xab, 0x18, 0xd3, 0xd6, 0x0a, 0xd2, 0x9a, 0xe7, 0xb2, 0x8f, 0xc6, 0xc7, 0xbc, 0x7f, 0x2e, 0x75, -0x9a, 0x3a, 0x39, 0x93, 0xc9, 0x0a, 0x0d, 0xcc, 0x7f, 0x6e, 0x07, 0x79, 0x8f, 0xc3, 0x9a, 0xb6, -0x2e, 0x3e, 0xc3, 0x56, 0x04, 0x49, 0x0b, 0xed, 0x69, 0xe3, 0x92, 0x88, 0x96, 0x3d, 0x1d, 0x35, -0x2e, 0x71, 0x7f, 0x04, 0xb3, 0x22, 0x1c, 0x69, 0xdd, 0x71, 0xc0, 0xc2, 0xf6, 0xd1, 0x59, 0x02, -0x38, 0x4a, 0xe1, 0xe5, 0x67, 0x20, 0xc2, 0xc2, 0x76, 0x93, 0x27, 0x33, 0x38, 0xa0, 0xb3, 0xc2, -0x74, 0xd8, 0x40, 0x16, 0x05, 0x04, 0x3b, 0xf0, 0xf2, 0xb7, 0x73, 0x2e, 0xfa, 0x76, 0x9b, 0xce, -0x0e, 0x2a, 0xe0, 0x11, 0x6e, 0x8b, 0x0c, 0x63, 0x9c, 0x04, 0x13, 0x46, 0x08, 0x0e, 0x21, 0x9a, -0xd9, 0x7d, 0x4e, 0x50, 0x14, 0x5b, 0xd9, 0x37, 0xb3, 0x57, 0x2d, 0x37, 0x60, 0xca, 0xc5, 0x0a, -0x85, 0x07, 0x94, 0x01, 0x0f, 0x6f, 0x85, 0x56, 0xfc, 0xde, 0xb8, 0x0e, 0x04, 0xf7, 0x06, 0xc8, -0xcd, 0xf9, 0xf3, 0xcf, 0x63, 0x77, 0x05, 0xdc, 0x35, 0x9b, 0xf6, 0xb9, 0x3b, 0xce, 0x61, 0xdd, -0x5a, 0xdf, 0xa5, 0x33, 0x4a, 0x33, 0x02, 0x02, 0xc2, 0x75, 0x18, 0xbd, 0x11, 0x58, 0x07, 0xd9, -0xd7, 0xbf, 0xf3, 0x78, 0x6c, 0x53, 0x4d, 0x77, 0xd1, 0xd4, 0xed, 0xde, 0x3d, 0xe5, 0x1d, 0x1f, -0x52, 0x0b, 0x24, 0x4e, 0xee, 0x55, 0x97, 0x2e, 0xfb, 0x88, 0x23, 0x6b, 0x8c, 0x52, 0x99, 0x72, -0x27, 0x96, 0x29, 0x08, 0xf1, 0x8d, 0xe2, 0x6b, 0x52, 0x1b, 0x3a, 0xca, 0x12, 0x6d, 0x68, 0xc7, -0x94, 0xf1, 0x6a, 0xa5, 0x51, 0x5a, 0xf8, 0xbe, 0x74, 0x5a, 0x6c, 0x9d, 0xf5, 0xd5, 0x3e, 0xef, -0x7a, 0x8e, 0x6c, 0xdb, 0x2b, 0x25, 0xed, 0x3f, 0xa9, 0x6d, 0xf9, 0xf2, 0xc8, 0xcc, 0xf4, 0x34, -0xd9, 0x59, 0x16, 0x57, 0xa8, 0x52, 0x6e, 0x8d, 0x32, 0x31, 0xc7, 0xae, 0xa3, 0x74, 0x16, 0xe5, -0xf9, 0xb7, 0x93, 0x0d, 0x96, 0xaa, 0xf3, 0x1a, 0x8e, 0xed, 0x88, 0xe8, 0xab, 0xb0, 0x8e, 0x4b, -0x25, 0x7b, 0xb0, 0x5f, 0x90, 0x75, 0x6b, 0x9d, 0x21, 0x1e, 0x0f, 0x1e, 0x63, 0xb0, 0xbc, 0x94, -0x67, 0x7d, 0x1f, 0xa6, 0x6f, 0x85, 0x75, 0x2c, 0xe5, 0x23, 0x7c, 0x2b, 0x74, 0x91, 0x07, 0x74, -0x63, 0x2b, 0xb4, 0xae, 0xb8, 0x87, 0xb4, 0x30, 0xb2, 0x0e, 0x00, 0x69, 0xdc, 0xb6, 0xd6, 0x27, -0xde, 0x66, 0xd0, 0x5b, 0x5d, 0x32, 0xee, 0xa5, 0x33, 0xd0, 0xaa, 0x3f, 0x00, 0x6e, 0xb2, 0x66, -0x2d, 0xb5, 0x02, 0xd5, 0xd2, 0xd2, 0x09, 0x7c, 0xd8, 0x36, 0xd1, 0x82, 0xcf, 0x85, 0x3a, 0x33, -0xd9, 0x63, 0x01, 0xc5, 0xe9, 0xeb, 0x08, 0xb3, 0xac, 0xe9, 0xfe, 0x0c, 0xad, 0xae, 0x94, 0xc6, -0x5a, 0x32, 0xf4, 0xa8, 0x01, 0x42, 0xfa, 0x1b, 0x11, 0xf3, 0xfb, 0x71, 0x9e, 0x30, 0xe1, 0x1d, -0x40, 0xec, 0x72, 0xde, 0x0c, 0x6f, 0x9e, 0xcb, 0x5b, 0x38, 0xf6, 0xdd, 0x38, 0x5b, 0xa7, 0x1d, -0x1b, 0x06, 0xe9, 0x8e, 0xef, 0xff, 0xed, 0x7a, 0xc8, 0xc1, 0x62, 0x99, 0x16, 0x62, 0xee, 0xc5, -0x61, 0xa4, 0x95, 0x12, 0x70, 0x91, 0xd6, 0x63, 0xe2, 0x7b, 0xd2, 0x8e, 0x65, 0x2b, 0xbf, 0x0f, -0x61, 0x3f, 0xcd, 0xd2, 0xcc, 0x47, 0x84, 0x3e, 0x1b, 0xca, 0x66, 0xab, 0xae, 0x16, 0xcc, 0xf9, -0xbf, 0x91, 0x05, 0xa4, 0x9c, 0xff, 0x9b, 0x37, 0x4e, 0xd4, 0x7d, 0x33, 0x2e, 0x4d, 0x69, 0x54, -0xf2, 0x5a, 0xa4, 0x0a, 0x6f, 0xf2, 0x48, 0x78, 0x12, 0xfb, 0xd0, 0xac, 0x7d, 0x8d, 0x52, 0xfb, -0x26, 0xbd, 0xa8, 0x01, 0x97, 0x97, 0xaa, 0x23, 0x3b, 0xfd, 0x93, 0x63, 0xb0, 0x42, 0xde, 0x4c, -0xb2, 0xd1, 0x9c, 0x93, 0x2d, 0x3d, 0x01, 0xe4, 0xa4, 0xf2, 0x90, 0xf6, 0x46, 0xf5, 0x0a, 0xe6, -0x4d, 0x70, 0x74, 0x51, 0x8d, 0x94, 0xde, 0x66, 0xa5, 0x94, 0x4b, 0xf8, 0x96, 0x4a, 0x18, 0xee, -0x61, 0x96, 0x73, 0x68, 0x3e, 0x1d, 0x0e, 0xa9, 0xc3, 0x53, 0x0f, 0xc5, 0x42, 0x06, 0x06, 0xdb, -0x9c, 0xe8, 0xdb, 0x07, 0x8f, 0x90, 0x1d, 0x45, 0x5f, 0x3e, 0x58, 0x71, 0xf4, 0x3c, 0x3c, 0x21, -0x7f, 0xd0, 0xe7, 0x24, 0x4a, 0xc1, 0x9e, 0x14, 0xec, 0x57, 0x45, 0x65, 0x61, 0x4f, 0x52, 0xfc, -0x84, 0x12, 0xf9, 0x14, 0x41, 0x8d, 0x4e, 0x09, 0x8a, 0xa0, 0x49, 0xcc, 0xd5, 0x29, 0x90, 0x26, -0xd2, 0x9b, 0x2a, 0x98, 0x2d, 0xea, 0x74, 0x0a, 0xc4, 0xab, 0x4c, 0x3a, 0xe3, 0x1e, 0xd4, 0x5c, -0x47, 0xf4, 0xc9, 0x2a, 0xaa, 0x04, 0xcc, 0x95, 0x9d, 0xed, 0xb1, 0x62, 0xcb, 0xc8, 0x3b, 0x1f, -0x13, 0x5a, 0x68, 0x53, 0xb2, 0x85, 0xf4, 0x37, 0xfa, 0x80, 0x97, 0xf2, 0xd1, 0xe5, 0xd3, 0xd7, -0x48, 0xb9, 0xf3, 0xb0, 0x9f, 0x32, 0x25, 0x0c, 0x22, 0xdc, 0x61, 0xd6, 0xcf, 0x91, 0x02, 0xf8, -0x1e, 0x67, 0x1e, 0xe7, 0xee, 0xbb, 0x9e, 0x79, 0x7f, 0x32, 0xdd, 0x3b, 0x77, 0x35, 0xf0, 0xa0, -0xa1, 0x1a, 0x2e, 0x67, 0x3a, 0x47, 0xb4, 0xc3, 0x41, 0xa9, 0x2f, 0x0c, 0xd3, 0x59, 0x33, 0x36, -0x3b, 0x2a, 0xc0, 0xa5, 0x47, 0xe2, 0x2b, 0xfc, 0x94, 0x76, 0xa0, 0x6b, 0x9e, 0xf6, 0x3f, 0x28, -0x9f, 0x73, 0xa3, 0x7c, 0xee, 0x60, 0x25, 0x79, 0x42, 0x2a, 0xc9, 0xdc, 0x25, 0x90, 0xc9, 0xe7, -0x03, 0x4f, 0x3b, 0x62, 0x7a, 0xc0, 0x11, 0x9e, 0x8d, 0xe3, 0xaa, 0x15, 0x32, 0x59, 0x7a, 0xdb, -0x52, 0xe9, 0xd1, 0xec, 0x4a, 0x3e, 0xc3, 0x69, 0xd5, 0x5d, 0x4c, 0xb3, 0xae, 0x7e, 0xc1, 0x9f, -0xda, 0x19, 0xb9, 0xe0, 0x17, 0x04, 0x51, 0x11, 0xe5, 0x48, 0xcb, 0x69, 0xd1, 0x91, 0x94, 0x4d, -0x29, 0x69, 0x0c, 0xc0, 0xa7, 0x4c, 0x4f, 0xf8, 0x21, 0xb2, 0x02, 0x0d, 0x67, 0xf4, 0xa5, 0xf1, -0xfb, 0x27, 0x8f, 0x15, 0xb9, 0xbe, 0x2f, 0x62, 0x99, 0x1a, 0x98, 0xc5, 0x6d, 0xa2, 0x38, 0x5d, -0xd8, 0x23, 0x5a, 0x98, 0x35, 0xb7, 0x0d, 0x7f, 0x33, 0xdd, 0x67, 0x80, 0xc7, 0x99, 0x24, 0x17, -0xef, 0xd5, 0x78, 0xcf, 0xc2, 0x7b, 0x11, 0xde, 0xb3, 0xe7, 0xfa, 0xa0, 0x80, 0xce, 0x2a, 0xf8, -0x7e, 0x02, 0xce, 0x25, 0x44, 0x3f, 0x96, 0xb2, 0xef, 0x47, 0x30, 0xaf, 0x88, 0xfc, 0x7c, 0x9a, -0x9d, 0x89, 0xb3, 0xd6, 0xd3, 0xae, 0x79, 0x35, 0xd3, 0x4f, 0x6d, 0xc0, 0xaf, 0x62, 0x34, 0xfa, -0xe7, 0xe2, 0x0c, 0x0b, 0xbd, 0x52, 0xeb, 0xca, 0xd4, 0x40, 0xc3, 0x5a, 0x21, 0xc6, 0x5a, 0x61, -0x5f, 0x5a, 0x2b, 0x34, 0x83, 0x4e, 0xd2, 0xbf, 0xaa, 0x79, 0x9a, 0x5a, 0x02, 0xa9, 0x21, 0x2f, -0xa7, 0x7f, 0xd2, 0xb8, 0x14, 0x47, 0x37, 0x3d, 0x9d, 0x4f, 0x6f, 0x1d, 0xc1, 0xe5, 0x13, 0x82, -0x2a, 0xef, 0xb0, 0xa4, 0x77, 0x4c, 0xd6, 0xef, 0x99, 0x9d, 0x59, 0x85, 0x81, 0x66, 0xc1, 0xe6, -0x50, 0x36, 0xfe, 0x06, 0x43, 0xb9, 0xfc, 0x37, 0xc9, 0xd3, 0x1f, 0xa5, 0xbb, 0xe2, 0x45, 0xb2, -0xba, 0xe6, 0x39, 0x18, 0x54, 0xb3, 0xf9, 0xb1, 0x59, 0xaf, 0x30, 0xcd, 0x8f, 0x8f, 0x49, 0x7a, -0xae, 0xc8, 0x0a, 0xdb, 0x99, 0xf5, 0xf6, 0x3c, 0x13, 0xd2, 0x1a, 0x03, 0x1d, 0xaa, 0xce, 0x5d, -0x17, 0xdf, 0xdb, 0x1b, 0x0c, 0x18, 0xe4, 0x71, 0xe8, 0x6b, 0x05, 0x5d, 0xb0, 0x10, 0xbf, 0x76, -0x48, 0x7c, 0x13, 0xa8, 0xf1, 0x72, 0x2d, 0x1e, 0x89, 0x1f, 0x62, 0x3c, 0xd1, 0xe8, 0xa2, 0xd7, -0xa4, 0x5e, 0x97, 0x63, 0xa7, 0xe0, 0xd5, 0xcf, 0x78, 0x2a, 0x93, 0xe7, 0xa0, 0x6c, 0x59, 0x56, -0xe7, 0x69, 0x25, 0x4d, 0x0b, 0xa4, 0x71, 0x69, 0xdc, 0x03, 0xf2, 0x0e, 0xb1, 0xc4, 0x5e, 0xa2, -0x74, 0xaa, 0x9d, 0x0f, 0xb0, 0xbd, 0x44, 0x7d, 0xaa, 0xdc, 0x85, 0x80, 0x25, 0x27, 0x3b, 0xfa, -0xad, 0xa0, 0x62, 0x71, 0x99, 0xa9, 0xb8, 0xcd, 0x2e, 0x6c, 0x77, 0x21, 0x58, 0x8d, 0x71, 0x7c, -0x96, 0x05, 0xf2, 0x70, 0xee, 0x23, 0x4c, 0x54, 0xeb, 0x2d, 0x7a, 0xc4, 0x79, 0x01, 0xb0, 0xdc, -0xc4, 0x49, 0xb4, 0x82, 0xc9, 0xa0, 0x57, 0xd0, 0x1a, 0xbd, 0x02, 0x39, 0x89, 0x9e, 0x84, 0x05, -0x0a, 0x1c, 0x51, 0x9c, 0x4c, 0x11, 0x3e, 0x4a, 0x51, 0x18, 0x49, 0xcf, 0x8e, 0xe9, 0xca, 0xb7, -0x80, 0xc9, 0x57, 0xd3, 0xa6, 0x21, 0x8b, 0x70, 0x71, 0x91, 0x76, 0x63, 0x93, 0x5a, 0xf4, 0x14, -0xa3, 0x97, 0x63, 0x2a, 0x13, 0x31, 0xc4, 0x77, 0x0b, 0x2e, 0xe9, 0x92, 0xff, 0xbe, 0xb5, 0xec, -0xa3, 0xb8, 0x28, 0xdb, 0xbb, 0xdd, 0x37, 0xd1, 0x32, 0xe6, 0xe2, 0x8f, 0xe0, 0x76, 0x3e, 0x85, -0xe3, 0xc7, 0xc8, 0x06, 0x23, 0xb3, 0x43, 0x2a, 0xd9, 0x93, 0xcb, 0x26, 0x2d, 0xf5, 0xfb, 0x03, -0x90, 0x2b, 0xdb, 0x93, 0x9b, 0x45, 0xef, 0x45, 0x06, 0x30, 0xb2, 0x77, 0x15, 0x98, 0xc9, 0xaa, -0x82, 0x0b, 0x90, 0x22, 0x48, 0xf6, 0xe5, 0x0a, 0xc2, 0xb4, 0xab, 0xe5, 0x64, 0x6f, 0xd7, 0x43, -0x11, 0x61, 0xb0, 0xdd, 0x0b, 0x25, 0xb2, 0xbd, 0xb9, 0x32, 0xbb, 0x0f, 0x04, 0xd9, 0xc2, 0x5c, -0xa5, 0x1d, 0x1b, 0x86, 0x3d, 0x67, 0x81, 0xdf, 0xbe, 0x04, 0x02, 0xc2, 0x93, 0xb0, 0x1c, 0x67, -0xdb, 0x6c, 0xb2, 0x34, 0x47, 0x73, 0xa3, 0x3e, 0xcd, 0xca, 0x9c, 0x29, 0x20, 0x3d, 0xfb, 0xb6, -0xe2, 0xdc, 0x1b, 0xe4, 0x97, 0x30, 0x7d, 0xf0, 0x54, 0xa9, 0x9f, 0x93, 0x4b, 0xdb, 0x4b, 0xa5, -0xfb, 0x7e, 0x21, 0xdc, 0x27, 0x97, 0xb6, 0x9f, 0x95, 0xd6, 0x0c, 0xdb, 0xe4, 0xd2, 0xee, 0x90, -0x4b, 0xfb, 0xb0, 0x5c, 0xda, 0x9d, 0xe1, 0xa9, 0x58, 0xda, 0x47, 0xe5, 0xd2, 0x0d, 0xd8, 0xab, -0x61, 0x17, 0x96, 0x62, 0x08, 0x4b, 0x91, 0x9a, 0xb3, 0x5a, 0x93, 0x1a, 0xf5, 0x3b, 0x65, 0xaf, -0xdd, 0x4c, 0x9f, 0x94, 0xf8, 0xd7, 0x9a, 0xf7, 0x60, 0x36, 0xf6, 0xaa, 0x99, 0x6c, 0xac, 0x88, -0x5a, 0xbe, 0xa6, 0x36, 0xc6, 0x30, 0xc3, 0x81, 0xe3, 0xf2, 0x13, 0x5f, 0x7f, 0xc8, 0x42, 0x27, -0x5d, 0x86, 0x99, 0xb6, 0x8f, 0xfb, 0x9c, 0x66, 0x16, 0x86, 0xd0, 0xae, 0x9a, 0xe1, 0xeb, 0x35, -0x90, 0x43, 0x3b, 0xf8, 0x7c, 0x4d, 0x80, 0xd9, 0x66, 0x66, 0xf6, 0xf3, 0x24, 0x2b, 0x18, 0x1a, -0xd2, 0x46, 0x0f, 0xc7, 0xbf, 0xee, 0x4a, 0xd9, 0x6d, 0x66, 0xfa, 0xfb, 0xe4, 0xe9, 0xa3, 0x14, -0xdb, 0x8c, 0x33, 0x32, 0x8f, 0x13, 0xa6, 0x09, 0xad, 0x73, 0xc1, 0x4b, 0xf6, 0x48, 0x91, 0xb2, -0xbc, 0x2b, 0x58, 0xa1, 0x08, 0xaf, 0x9b, 0xf0, 0x2a, 0xc6, 0xeb, 0x66, 0x61, 0x10, 0x4a, 0x88, -0x5a, 0x15, 0x2d, 0x48, 0x51, 0x2b, 0x9b, 0x44, 0x85, 0x7e, 0xc2, 0x93, 0x2f, 0x6f, 0x95, 0x44, -0x45, 0xc8, 0xcb, 0x27, 0xef, 0xb2, 0xd4, 0x10, 0x5f, 0x51, 0xc2, 0x6c, 0x6c, 0x7f, 0x63, 0x9b, -0xb8, 0xc1, 0x64, 0x03, 0x2d, 0xb3, 0xc9, 0x85, 0x98, 0x59, 0x54, 0x61, 0x57, 0xf8, 0xb7, 0x4b, -0x32, 0x4e, 0xf0, 0x8e, 0xfa, 0x9e, 0xb9, 0x02, 0x94, 0xb0, 0x70, 0x1f, 0x59, 0xb6, 0x62, 0xbe, -0x1a, 0xa4, 0xb3, 0xb0, 0x45, 0x2c, 0xb4, 0x66, 0x52, 0xe8, 0x4d, 0x2c, 0xb4, 0x7e, 0x52, 0x68, -0x31, 0x0b, 0xbd, 0x63, 0x52, 0xe8, 0xcd, 0xcc, 0x4e, 0x63, 0xcf, 0xa5, 0x4e, 0x75, 0x25, 0xac, -0xb9, 0x91, 0xbd, 0x57, 0x69, 0xd7, 0x9e, 0x9d, 0x6d, 0xa8, 0x32, 0x4d, 0xad, 0xe9, 0xc1, 0xb2, -0x8f, 0x56, 0x17, 0x5a, 0x56, 0xc3, 0x2c, 0xb6, 0x0b, 0x6e, 0xf6, 0xed, 0x82, 0x82, 0x10, 0x8f, -0xbc, 0x13, 0xd9, 0xd4, 0x58, 0x81, 0x7c, 0x99, 0x68, 0xb7, 0x41, 0x01, 0xd5, 0x47, 0xf8, 0x29, -0x51, 0x40, 0xa6, 0xe7, 0x61, 0xa8, 0xbf, 0x77, 0xcf, 0xbd, 0xc1, 0x23, 0x49, 0x08, 0x2b, 0xdb, -0x33, 0x55, 0xd0, 0xc5, 0xd7, 0x30, 0x08, 0x3d, 0xd3, 0xc4, 0x3f, 0x2b, 0x9f, 0x50, 0x79, 0xd8, -0xfb, 0xe7, 0x62, 0xda, 0x59, 0xdd, 0x6c, 0xef, 0xf2, 0x7a, 0x1c, 0x00, 0x51, 0xd6, 0xba, 0xab, -0xd2, 0xac, 0xbc, 0xb2, 0xf3, 0x23, 0x9c, 0x2e, 0xc7, 0x0a, 0xaf, 0xe8, 0x54, 0x90, 0x11, 0x54, -0xcf, 0xee, 0x82, 0x72, 0x88, 0x9a, 0xad, 0xb0, 0x27, 0x3c, 0x75, 0x68, 0x53, 0x13, 0x9d, 0x05, -0xd1, 0x4a, 0xbc, 0x20, 0x9d, 0x71, 0x7d, 0xc9, 0x0e, 0xeb, 0x44, 0xad, 0x5e, 0xa9, 0x06, 0xb8, -0x69, 0xb6, 0x0b, 0xd6, 0x85, 0xa3, 0x47, 0xfb, 0x10, 0x23, 0x0d, 0x0c, 0x6f, 0xd7, 0x42, 0x8e, -0xbd, 0x1c, 0xf2, 0x98, 0x9d, 0x3d, 0x53, 0x04, 0xb2, 0xac, 0x70, 0xec, 0xd6, 0x6e, 0xc2, 0x29, -0xe6, 0x6d, 0xc3, 0xc2, 0xf4, 0x6e, 0x2b, 0xf1, 0xc9, 0xc1, 0xac, 0xf6, 0x48, 0xd6, 0x6b, 0x16, -0xe3, 0x53, 0x71, 0x58, 0x81, 0xbf, 0xa5, 0xf6, 0x4e, 0xe8, 0x02, 0x2f, 0xfe, 0xc6, 0x98, 0x5d, -0x3e, 0x1a, 0x97, 0x35, 0x84, 0xff, 0x7a, 0x0e, 0xea, 0x64, 0x5b, 0x7b, 0xf5, 0xb2, 0xad, 0xbd, -0x15, 0x3e, 0x55, 0x50, 0xc5, 0xac, 0x66, 0x11, 0x94, 0xc8, 0x97, 0x96, 0x7b, 0x96, 0x7b, 0x30, -0x4c, 0xcd, 0x97, 0x7a, 0x96, 0xd5, 0x32, 0xeb, 0x7c, 0x38, 0x2e, 0xda, 0x58, 0xba, 0x61, 0x1c, -0x1d, 0x06, 0xc6, 0x5b, 0x4a, 0xd6, 0xf8, 0xb2, 0x90, 0x6a, 0x8b, 0x11, 0x4e, 0xb2, 0x21, 0x19, -0x3f, 0x81, 0x7d, 0x94, 0x99, 0x7e, 0x3a, 0x85, 0xb8, 0x69, 0x0f, 0xd9, 0x9e, 0x68, 0x64, 0xfa, -0xa9, 0x65, 0x26, 0x3b, 0x38, 0xcc, 0x76, 0x28, 0x24, 0xab, 0x06, 0x38, 0x33, 0x97, 0x45, 0x92, -0x27, 0x2d, 0xc6, 0xb4, 0xd2, 0x0c, 0xc9, 0x79, 0x71, 0x86, 0xd4, 0xcc, 0xed, 0x04, 0x13, 0xe8, -0xf0, 0xd7, 0x02, 0xfa, 0x99, 0x9d, 0x80, 0x33, 0x03, 0x62, 0xf4, 0x4c, 0xbc, 0xb2, 0xf1, 0xba, -0x0e, 0xaf, 0x1c, 0xfc, 0xda, 0x39, 0xd3, 0x05, 0xd7, 0x07, 0xc8, 0x6f, 0x89, 0x33, 0x4c, 0xb3, -0x7b, 0x2e, 0x62, 0xcb, 0x2c, 0xbc, 0x8c, 0x78, 0x39, 0xf1, 0xaa, 0x9f, 0x4b, 0x56, 0x2c, 0x57, -0xe0, 0x6f, 0x29, 0x88, 0xbe, 0x9e, 0x50, 0x25, 0x72, 0x15, 0xc5, 0x41, 0x97, 0xa3, 0x94, 0x77, -0xd0, 0xec, 0xac, 0xe7, 0x26, 0x68, 0x97, 0x96, 0x84, 0x4c, 0x46, 0x90, 0x66, 0x85, 0xf5, 0x9c, -0xd7, 0xb3, 0xa3, 0x5b, 0xb7, 0x19, 0x5b, 0x6b, 0x46, 0x83, 0x5e, 0xcd, 0x64, 0x44, 0x81, 0xfc, -0x42, 0x97, 0x90, 0x97, 0x1a, 0x9a, 0x8b, 0x97, 0x69, 0xa1, 0x0e, 0x67, 0xd8, 0x1a, 0xc4, 0xcd, -0x64, 0x6d, 0xc7, 0xb2, 0x35, 0x4a, 0xe0, 0x42, 0x59, 0x0c, 0x9f, 0xb4, 0x88, 0x65, 0x79, 0xfe, -0x7e, 0xf2, 0x27, 0x59, 0xdf, 0x27, 0x69, 0x53, 0xf4, 0x18, 0xad, 0xbe, 0xfa, 0xbe, 0x1f, 0xbd, -0x10, 0xe6, 0x9e, 0x8b, 0x91, 0xad, 0xd5, 0xf6, 0x0e, 0x9d, 0x13, 0xb8, 0xc3, 0x33, 0x57, 0x95, -0xb0, 0x96, 0xb8, 0xbe, 0x32, 0xc5, 0x3f, 0x6b, 0xf3, 0x5d, 0x30, 0x8b, 0x77, 0xcd, 0x11, 0xa0, -0x80, 0x6f, 0xc7, 0xa7, 0x52, 0x0d, 0x6d, 0x4d, 0x6f, 0x0a, 0x22, 0xfe, 0xcf, 0x71, 0xc1, 0x3e, -0xe2, 0x89, 0x24, 0x7f, 0x95, 0x81, 0xfb, 0xea, 0xbf, 0x1f, 0x56, 0x0c, 0xdd, 0x17, 0xdc, 0x33, -0xf9, 0xd4, 0x09, 0xce, 0xc7, 0x79, 0x44, 0xfb, 0x51, 0xd6, 0x26, 0xca, 0x42, 0xb3, 0x1a, 0xd2, -0x2c, 0x23, 0x88, 0x99, 0xb5, 0x31, 0x13, 0x68, 0x05, 0xe0, 0xae, 0x79, 0x4a, 0x83, 0xcd, 0x8b, -0x23, 0xfa, 0x43, 0xe4, 0xed, 0x1c, 0x39, 0xe0, 0xeb, 0xee, 0xd4, 0xd6, 0x76, 0xeb, 0x1c, 0xc0, -0xe7, 0xc0, 0x2a, 0x66, 0xc1, 0x8f, 0xa4, 0x61, 0x94, 0xd0, 0x57, 0xe0, 0x5c, 0x27, 0xe2, 0xa5, -0xa3, 0x59, 0x95, 0xfc, 0x99, 0x4a, 0x5a, 0x52, 0x6c, 0x4c, 0xbc, 0x26, 0x6b, 0x60, 0x17, 0x63, -0xea, 0xa5, 0xd8, 0xbb, 0x2e, 0xc4, 0x78, 0x0b, 0x58, 0x51, 0xea, 0xcb, 0x37, 0x32, 0x8b, 0x63, -0x6f, 0x55, 0xcd, 0x76, 0x83, 0x4d, 0x7a, 0xc6, 0xa7, 0xf9, 0x46, 0x78, 0xeb, 0x1e, 0xbc, 0x17, -0x20, 0xbe, 0xdb, 0x11, 0xca, 0xc1, 0x2b, 0xde, 0xea, 0xc5, 0xe7, 0x05, 0xb3, 0x05, 0xec, 0x33, -0x3b, 0x2c, 0xc4, 0x19, 0x89, 0xf2, 0x99, 0x45, 0x5e, 0x09, 0x25, 0x99, 0x09, 0x31, 0x8e, 0x66, -0x11, 0xd3, 0x2d, 0xc4, 0x2b, 0x91, 0x65, 0xd2, 0x1a, 0xa6, 0x65, 0x84, 0xe3, 0xe1, 0xed, 0x41, -0x9c, 0x45, 0xf2, 0xd8, 0x79, 0x6f, 0x1b, 0xb3, 0xe0, 0xda, 0x0a, 0x8f, 0x4a, 0x23, 0x9b, 0x74, -0xb9, 0xf1, 0x6e, 0xb9, 0x6c, 0x19, 0xad, 0xff, 0xdf, 0x2d, 0xe3, 0x15, 0x4a, 0x77, 0xdc, 0xfb, -0x67, 0xa0, 0xd3, 0x93, 0x2e, 0x94, 0xed, 0xc8, 0x8b, 0x32, 0x79, 0x90, 0xd5, 0x49, 0x96, 0x3a, -0xfd, 0x0f, 0x62, 0x49, 0x6f, 0x80, 0x52, 0x56, 0xc3, 0x7f, 0x98, 0x4d, 0x7c, 0xb8, 0x0b, 0xf3, -0x9e, 0x95, 0xcc, 0xfb, 0x41, 0x9c, 0xb3, 0x8a, 0x30, 0x4f, 0x1d, 0x94, 0x30, 0x98, 0xb2, 0x09, -0xf9, 0xf0, 0xd5, 0x6f, 0x96, 0x42, 0xc2, 0x2e, 0x2b, 0xb3, 0x24, 0x62, 0x30, 0xad, 0x06, 0xeb, -0xaf, 0x90, 0xb6, 0x86, 0x3c, 0x69, 0x54, 0x8f, 0xea, 0xa2, 0x66, 0x9c, 0xfd, 0xcb, 0x28, 0x52, -0xcb, 0x94, 0x8f, 0x78, 0xeb, 0x1f, 0xac, 0xab, 0x1a, 0xb9, 0x30, 0x46, 0x7e, 0xed, 0x50, 0x8a, -0xed, 0xc7, 0xdc, 0x12, 0x9a, 0x2d, 0xd0, 0x7e, 0x06, 0x47, 0xa9, 0x99, 0x69, 0xb5, 0xcb, 0xf6, -0x5d, 0x10, 0x3f, 0xf6, 0x30, 0x8a, 0x1e, 0x4b, 0x58, 0x61, 0x26, 0xfb, 0xb4, 0x13, 0x62, 0x5e, -0x98, 0x10, 0x63, 0xc7, 0x99, 0xd4, 0x8e, 0x1c, 0x27, 0x19, 0x91, 0xe1, 0x48, 0xf3, 0x11, 0x29, -0x33, 0x59, 0x01, 0x92, 0xa1, 0x6f, 0x4a, 0xc9, 0x5b, 0x79, 0x93, 0x53, 0xba, 0xe9, 0x91, 0xf4, -0x94, 0x18, 0x5d, 0x41, 0x7a, 0x61, 0xed, 0x04, 0x47, 0x91, 0x1d, 0xac, 0xe6, 0x56, 0xb0, 0xf2, -0xab, 0x51, 0x86, 0xb0, 0xc0, 0xcd, 0xa4, 0x83, 0x7b, 0xa8, 0x13, 0xf9, 0x12, 0x30, 0x4e, 0xe4, -0x29, 0x5e, 0x24, 0x3f, 0x44, 0xa1, 0x2c, 0xac, 0x9b, 0x94, 0xe2, 0xc7, 0x89, 0x14, 0x93, 0x23, -0xa8, 0x0b, 0x5b, 0xc8, 0x2a, 0xd9, 0xc4, 0x9c, 0x53, 0x0e, 0xb9, 0xc9, 0xf0, 0x75, 0x14, 0xee, -0x13, 0x42, 0x99, 0x7a, 0x0b, 0xe4, 0x90, 0x84, 0xb2, 0x8e, 0x7b, 0xfb, 0x71, 0x51, 0xb1, 0x0e, -0xa0, 0x5c, 0x0f, 0x69, 0xa3, 0x85, 0xcd, 0x25, 0xa9, 0xd1, 0x42, 0x3e, 0x85, 0xe0, 0x80, 0x54, -0x0a, 0x1f, 0xf2, 0x8f, 0xe9, 0x5e, 0x91, 0x8c, 0xa0, 0xe1, 0x80, 0xec, 0xdd, 0x0c, 0x24, 0xca, -0x53, 0x2c, 0x4b, 0xf3, 0x29, 0x09, 0x0f, 0xe9, 0xd9, 0xab, 0x64, 0xbf, 0x1c, 0xaf, 0x37, 0xa8, -0x04, 0xc2, 0x00, 0xd4, 0xa7, 0x9d, 0x29, 0x2b, 0x08, 0xf4, 0x84, 0x67, 0x0c, 0xf7, 0x04, 0x8b, -0x2f, 0x59, 0xcf, 0xec, 0x64, 0xba, 0xab, 0x12, 0xf5, 0x44, 0x69, 0xa6, 0xc4, 0x9e, 0x2f, 0xf7, -0xac, 0x64, 0xd5, 0xc8, 0x7a, 0xf9, 0xd2, 0x8b, 0x9a, 0x28, 0x54, 0x31, 0x8c, 0xc0, 0xbe, 0xdf, -0x16, 0xe5, 0x26, 0xb6, 0x52, 0x98, 0xce, 0x9d, 0x4c, 0x6a, 0xa1, 0x4b, 0xd3, 0x8d, 0x1c, 0xe4, -0x77, 0x8d, 0xa9, 0x9a, 0xbf, 0x48, 0x69, 0xef, 0x67, 0x5e, 0x0c, 0x73, 0x37, 0x93, 0x2d, 0xf7, -0xae, 0xbc, 0x94, 0x75, 0x2f, 0x4a, 0x85, 0xe6, 0x6a, 0xec, 0xc7, 0xe2, 0x60, 0x91, 0x8f, 0xbc, -0xec, 0x3a, 0x88, 0xdf, 0x42, 0x4c, 0xb5, 0xc0, 0xc6, 0xb7, 0x7b, 0x89, 0x83, 0x9e, 0x02, 0x41, -0x3d, 0x7b, 0x1f, 0x92, 0xde, 0xbf, 0x0b, 0x21, 0x9d, 0xc6, 0x8a, 0x3c, 0xf6, 0xbe, 0x90, 0x26, -0x9c, 0x29, 0xaa, 0xc3, 0x2a, 0x9a, 0xd5, 0x70, 0xfe, 0x75, 0x4a, 0xfa, 0xb6, 0x07, 0x37, 0x85, -0x74, 0x92, 0x46, 0x1b, 0xd8, 0x6a, 0xfa, 0x44, 0xbe, 0x36, 0xd6, 0x7a, 0x3a, 0xd9, 0x36, 0x3f, -0x92, 0x6d, 0xfc, 0x30, 0x0b, 0x23, 0xa0, 0x63, 0xf3, 0xbf, 0x6c, 0x21, 0x4c, 0x2a, 0x11, 0xe2, -0xab, 0x81, 0xca, 0x11, 0xcc, 0x0c, 0xab, 0x86, 0xba, 0x1b, 0x35, 0x92, 0x1d, 0xb1, 0x78, 0x0d, -0x8f, 0xe9, 0x63, 0x3b, 0x5f, 0x13, 0x04, 0xae, 0x38, 0xaa, 0xda, 0xd3, 0xdd, 0x04, 0xf0, 0x82, -0xdc, 0x06, 0x1a, 0xdf, 0x3c, 0xb8, 0x09, 0x65, 0xc2, 0xc7, 0x30, 0x5e, 0x4f, 0x1a, 0x64, 0xd8, -0x7f, 0x27, 0xd3, 0xfb, 0x92, 0x4e, 0x4e, 0xfe, 0x63, 0x0e, 0xd4, 0x5f, 0xa2, 0xcd, 0x14, 0xc9, -0xda, 0xde, 0x89, 0xe3, 0xf2, 0x9b, 0xfe, 0xfe, 0x4b, 0xb5, 0x2b, 0x5e, 0xcf, 0x51, 0x1c, 0x8d, -0x13, 0xe1, 0x87, 0x6c, 0x1d, 0xb0, 0x94, 0x70, 0x96, 0xea, 0x30, 0xf6, 0x2e, 0xcd, 0x55, 0xcd, -0xc5, 0xd0, 0x4f, 0xf7, 0xd0, 0x1e, 0x60, 0xe7, 0x53, 0x7c, 0x56, 0x28, 0x6c, 0x03, 0xb8, 0x9f, -0x85, 0x15, 0xc0, 0x0e, 0xba, 0x07, 0x07, 0xe1, 0x61, 0x71, 0x03, 0x3d, 0xb5, 0x94, 0x48, 0xd0, -0xcd, 0xfb, 0x51, 0x36, 0x77, 0xb5, 0x05, 0xc5, 0x3a, 0xde, 0xfd, 0x4f, 0xbd, 0x26, 0x26, 0x83, -0xc5, 0x60, 0x9d, 0x62, 0x6f, 0x6f, 0xa3, 0xe6, 0x9b, 0xdd, 0xeb, 0xd4, 0x7b, 0xbb, 0x9b, 0xcc, -0x04, 0xd7, 0x64, 0x91, 0xe0, 0x1b, 0x07, 0x10, 0xbe, 0x27, 0x54, 0xc6, 0x9e, 0xcd, 0x52, 0xaa, -0xab, 0x1e, 0xc5, 0x54, 0x6d, 0x17, 0xa5, 0xda, 0x13, 0xd2, 0xb3, 0x3c, 0x2d, 0x12, 0x54, 0xd3, -0x00, 0x3c, 0xac, 0x19, 0xc4, 0x3e, 0x5b, 0x28, 0x6a, 0x34, 0xc3, 0x70, 0x2d, 0x79, 0x57, 0x96, -0xda, 0x5d, 0x3a, 0xbf, 0x15, 0x18, 0x80, 0x82, 0x2c, 0x1a, 0x6b, 0xdd, 0xde, 0x67, 0xb0, 0xf6, -0x4e, 0xb2, 0x74, 0x93, 0xb2, 0xa9, 0x6e, 0x93, 0x6d, 0x0c, 0xea, 0xed, 0x30, 0xad, 0xbd, 0xc0, -0x37, 0x00, 0x27, 0x83, 0x3a, 0x9a, 0x2d, 0x43, 0xea, 0xf0, 0x7c, 0xc4, 0xca, 0x93, 0x38, 0x4e, -0x5e, 0xc5, 0xeb, 0x75, 0xbc, 0xde, 0xc0, 0xaf, 0xad, 0xc2, 0xcf, 0x90, 0xef, 0xc1, 0x3b, 0xa8, -0xc4, 0x9d, 0x8c, 0x76, 0x50, 0xcf, 0x1a, 0xd8, 0xf9, 0xa1, 0x1b, 0xa8, 0x7d, 0xcd, 0x16, 0x76, -0xd2, 0x5f, 0x6a, 0x63, 0x65, 0x6a, 0x14, 0x20, 0xe6, 0x7e, 0x3b, 0xb1, 0x42, 0x13, 0xd4, 0xca, -0xd6, 0xe5, 0x7a, 0x6b, 0xfa, 0x98, 0xe5, 0x5b, 0x3d, 0xd2, 0xf8, 0x1c, 0xb2, 0x99, 0x85, 0xe5, -0xce, 0x43, 0x8c, 0x08, 0x87, 0xc9, 0x26, 0x3b, 0xc0, 0xe0, 0x84, 0x1e, 0xa3, 0xd4, 0x32, 0xa4, -0xd4, 0x0c, 0x70, 0x51, 0x8c, 0x4a, 0x8a, 0x91, 0x64, 0xdd, 0xb7, 0xb7, 0x6c, 0x06, 0xc4, 0xaa, -0x37, 0x68, 0x65, 0x70, 0xa8, 0xa7, 0x31, 0x87, 0xac, 0x05, 0x11, 0x8e, 0xde, 0x3c, 0x55, 0xc2, -0x51, 0x93, 0x14, 0xa7, 0xa3, 0x54, 0x58, 0x0a, 0x0a, 0xa6, 0x6b, 0x6f, 0x85, 0x57, 0x31, 0x64, -0xc8, 0xdf, 0xff, 0x0a, 0x62, 0x18, 0x7d, 0xdf, 0xdf, 0x83, 0xad, 0x49, 0x90, 0xfa, 0x60, 0xde, -0x64, 0xcc, 0xa3, 0x6f, 0x13, 0xd8, 0x47, 0xe5, 0x96, 0xf4, 0x1d, 0x8b, 0xe9, 0x6c, 0x52, 0xde, -0x3a, 0x20, 0xbb, 0x8b, 0x04, 0x61, 0xc2, 0xf6, 0x40, 0xee, 0xcf, 0x90, 0x2c, 0xab, 0xe2, 0xa2, -0x36, 0xd9, 0x24, 0xb7, 0x89, 0xa4, 0x07, 0x1b, 0xc5, 0x36, 0x51, 0x32, 0x09, 0x59, 0x7a, 0x6f, -0x64, 0x3e, 0x2b, 0x3e, 0xa4, 0x16, 0x61, 0x9e, 0xac, 0x01, 0x4e, 0x4e, 0xa8, 0xbb, 0x22, 0xd5, -0x2a, 0xd9, 0x70, 0x51, 0x8c, 0xdc, 0x2a, 0xc8, 0xff, 0x2a, 0xdf, 0xbe, 0xa7, 0x87, 0x2c, 0xc4, -0xd8, 0x92, 0xed, 0xd2, 0xdd, 0x88, 0x93, 0xb9, 0x9d, 0xed, 0x95, 0xdc, 0xdc, 0x22, 0xb5, 0x0b, -0xc5, 0xd1, 0xd9, 0xad, 0xed, 0x74, 0xaa, 0x9a, 0x97, 0xb4, 0xc8, 0xd7, 0x31, 0xdc, 0x65, 0x96, -0x0f, 0xa4, 0xb6, 0x22, 0xaf, 0x83, 0x0a, 0xb9, 0xad, 0x76, 0xf9, 0xfb, 0x97, 0xe0, 0x4c, 0xcc, -0xcf, 0x7d, 0x09, 0x5b, 0xe6, 0x07, 0xd8, 0x2a, 0x62, 0x4e, 0x02, 0x8e, 0xd9, 0x36, 0x52, 0xd8, -0xa7, 0x4b, 0x50, 0xb7, 0x6e, 0x62, 0x63, 0x67, 0x53, 0xc7, 0x5b, 0x48, 0x01, 0xde, 0xf8, 0xb2, -0xd6, 0x34, 0xe5, 0xc9, 0x9a, 0x98, 0x69, 0xa7, 0xd3, 0x26, 0xd4, 0xcd, 0xca, 0xa4, 0x91, 0x34, -0x0a, 0x4b, 0x78, 0x14, 0x54, 0x23, 0xe6, 0x72, 0x21, 0x31, 0xb1, 0x36, 0xc0, 0x4a, 0xc9, 0x68, -0xd3, 0xcd, 0xbf, 0x5f, 0xcc, 0x56, 0x7d, 0xfd, 0x0f, 0x5c, 0x82, 0x06, 0x70, 0x32, 0xe6, 0x24, -0xbe, 0x4a, 0x7c, 0x33, 0x22, 0xad, 0x7e, 0x14, 0x1c, 0x80, 0xd1, 0x92, 0xeb, 0xfc, 0x0f, 0x84, -0xe7, 0x21, 0x2e, 0x9c, 0xac, 0xef, 0x13, 0x35, 0x12, 0x26, 0x07, 0x09, 0x6b, 0x0d, 0x88, 0xb5, -0xf2, 0xc9, 0xb7, 0xb1, 0xfd, 0x92, 0xa5, 0xa2, 0xc4, 0x2a, 0x08, 0x2b, 0xf5, 0xb5, 0x9e, 0x83, -0xad, 0xae, 0x64, 0xcb, 0x59, 0xe1, 0x75, 0xe6, 0x13, 0x3a, 0x93, 0xe5, 0x22, 0xb7, 0x9f, 0x11, -0x43, 0x5f, 0x4e, 0xe0, 0x5b, 0x77, 0x02, 0xdf, 0x42, 0x5a, 0xec, 0x9f, 0x6c, 0x7c, 0x7b, 0x5d, -0xd4, 0x4f, 0xb4, 0x06, 0x38, 0x16, 0x90, 0x56, 0x37, 0x90, 0xaa, 0x16, 0x33, 0x3b, 0xd7, 0x48, -0xe5, 0xf6, 0x26, 0xbc, 0x8c, 0x22, 0xd7, 0x4e, 0xab, 0x64, 0xbe, 0xc7, 0x91, 0xda, 0xbb, 0x26, -0x4b, 0x66, 0xb4, 0x92, 0xcd, 0xc6, 0xce, 0xea, 0xb4, 0x36, 0xc8, 0x9f, 0xd4, 0x92, 0x39, 0x64, -0x75, 0x8e, 0xbc, 0x39, 0x88, 0xcc, 0x1a, 0xe9, 0x5f, 0x4b, 0x0d, 0xe0, 0x8d, 0x55, 0xba, 0x22, -0x33, 0x4e, 0x36, 0xb3, 0xf5, 0xb1, 0xb0, 0x39, 0x9f, 0xd2, 0x36, 0x62, 0x1a, 0xf8, 0xcd, 0x0a, -0x4b, 0x8d, 0x69, 0x1e, 0xe1, 0x9a, 0x3c, 0xd6, 0x59, 0x0e, 0x89, 0x37, 0x3a, 0x65, 0x9d, 0xb4, -0x14, 0xba, 0x8d, 0xd9, 0xf8, 0xfb, 0x90, 0x59, 0x30, 0xe2, 0x45, 0x03, 0x95, 0x0d, 0xa1, 0x79, -0x26, 0xf3, 0xab, 0x31, 0xae, 0xbf, 0xbe, 0x2f, 0x75, 0x6e, 0x09, 0x63, 0xeb, 0x89, 0x3f, 0x4f, -0xda, 0x02, 0x4c, 0x5a, 0xce, 0x26, 0x9e, 0x87, 0xec, 0x56, 0x22, 0xff, 0x93, 0xe3, 0xeb, 0x0e, -0x91, 0x77, 0xe6, 0x93, 0x73, 0x10, 0x47, 0xe0, 0x55, 0xa3, 0x6b, 0x4f, 0xac, 0x51, 0x61, 0x14, -0xe6, 0x54, 0xc1, 0xeb, 0x48, 0xb9, 0xde, 0xc0, 0xd4, 0xad, 0x73, 0xdc, 0x50, 0xcf, 0x76, 0xcc, -0xd8, 0xca, 0xc3, 0x15, 0xfa, 0x61, 0xe8, 0x72, 0xfd, 0x80, 0xbd, 0xa0, 0xa2, 0x5e, 0x90, 0xd6, -0x93, 0xc8, 0x22, 0x40, 0x71, 0xb1, 0xa9, 0x1d, 0x34, 0xe6, 0x76, 0xd0, 0x59, 0x68, 0x7c, 0xdb, -0x40, 0x87, 0x2d, 0xc2, 0x6c, 0x10, 0xfd, 0xf5, 0x75, 0xd6, 0x42, 0xa0, 0x1a, 0xa4, 0x55, 0x53, -0xf2, 0x74, 0x13, 0xca, 0x6c, 0x00, 0xe8, 0x25, 0x3b, 0xec, 0x38, 0x72, 0x1b, 0xc5, 0x5c, 0x0c, -0xd7, 0x49, 0x16, 0xc4, 0x57, 0x65, 0xa6, 0x30, 0xad, 0x64, 0x81, 0x98, 0x23, 0xc7, 0x70, 0x00, -0xab, 0xf2, 0xd2, 0x62, 0xbe, 0x97, 0x5a, 0xd3, 0x8a, 0x8e, 0x89, 0xa0, 0xba, 0x1d, 0x65, 0x30, -0x45, 0xb0, 0x30, 0x19, 0xff, 0xa6, 0x14, 0xcf, 0x76, 0x10, 0x14, 0x48, 0x29, 0x72, 0x53, 0xdf, -0x7e, 0xa3, 0x32, 0xf5, 0x2d, 0x7e, 0x99, 0x4b, 0xa7, 0x29, 0x91, 0x47, 0xe5, 0x42, 0xc6, 0x8b, -0xa8, 0x04, 0x97, 0xe8, 0x25, 0x79, 0x26, 0xd4, 0xa7, 0xca, 0x2f, 0x97, 0x1d, 0xb8, 0x53, 0x22, -0xad, 0x7b, 0x4c, 0xfe, 0x52, 0x8d, 0x3c, 0xfa, 0xcb, 0xf8, 0xad, 0x2b, 0x0b, 0x79, 0x21, 0x05, -0x07, 0x33, 0x62, 0x13, 0xd2, 0xba, 0x04, 0xa5, 0xca, 0x47, 0x99, 0x08, 0x61, 0x9d, 0xe0, 0x75, -0x4b, 0x6b, 0x77, 0x09, 0x38, 0xc2, 0x8b, 0x49, 0xb4, 0x4b, 0x86, 0xcd, 0x82, 0xb7, 0x7e, 0x34, -0x11, 0x76, 0x02, 0x9c, 0x92, 0xf1, 0xde, 0xd3, 0x44, 0xe0, 0x0c, 0x97, 0x2f, 0xdf, 0x95, 0x4b, -0xc5, 0x52, 0x50, 0x5f, 0xa9, 0x2c, 0x0c, 0x62, 0xca, 0x15, 0x4b, 0xa0, 0xb9, 0xc2, 0xf7, 0x57, -0xa8, 0xf7, 0xd5, 0xd6, 0xf9, 0xa2, 0x34, 0xe5, 0x7a, 0x5f, 0x26, 0x25, 0xc9, 0x5a, 0x61, 0xe6, -0x15, 0xbe, 0x97, 0x20, 0x66, 0xa4, 0x7a, 0x1d, 0xb9, 0xb2, 0xc7, 0x21, 0xaf, 0x09, 0xb8, 0x0f, -0xb1, 0x14, 0x79, 0x69, 0xe7, 0x35, 0x87, 0x41, 0x40, 0xb9, 0x6c, 0x3d, 0x6c, 0xc4, 0x92, 0x19, -0xd8, 0x57, 0x8a, 0xf5, 0x90, 0x83, 0xd2, 0x19, 0x51, 0xf1, 0xb9, 0xe5, 0xf0, 0xea, 0x7b, 0x03, -0x49, 0xbf, 0xbd, 0xaf, 0xcf, 0x75, 0xa7, 0xa8, 0x79, 0xcb, 0x59, 0x66, 0x93, 0xee, 0xe1, 0xaf, -0xfa, 0xdd, 0x8a, 0x20, 0x7e, 0xd7, 0x48, 0x98, 0x29, 0xd2, 0xee, 0x1f, 0x7e, 0xcd, 0x66, 0xc3, -0x5f, 0xc3, 0x68, 0xb5, 0x4d, 0xb2, 0x19, 0x48, 0xb6, 0x1c, 0x2f, 0x37, 0x87, 0xfc, 0xd3, 0x10, -0xf2, 0x28, 0x12, 0xb4, 0x13, 0xe9, 0xf5, 0x15, 0xe7, 0x9a, 0x8b, 0xda, 0x6d, 0x0a, 0x96, 0xf3, -0x5a, 0xa9, 0x4d, 0xec, 0x36, 0x99, 0xbf, 0xff, 0x35, 0x71, 0xee, 0x44, 0x1b, 0x71, 0x06, 0xc6, -0x16, 0x0a, 0xde, 0xee, 0x6d, 0xa7, 0x1d, 0x0f, 0x92, 0x23, 0x69, 0xdc, 0x7f, 0x42, 0xeb, 0xfd, -0x7a, 0x9c, 0x63, 0xe7, 0xc7, 0xe3, 0x3e, 0x57, 0x30, 0xd7, 0xce, 0x25, 0xc7, 0xe0, 0xbd, 0xe9, -0x63, 0x10, 0xb6, 0x7a, 0x9e, 0x69, 0xd5, 0xb2, 0xfd, 0x85, 0x30, 0x96, 0xcb, 0x20, 0xcd, 0xbd, -0xdf, 0x78, 0x25, 0x21, 0x53, 0x44, 0xe7, 0x8b, 0xeb, 0x65, 0xfd, 0x85, 0x44, 0xca, 0x8d, 0xb2, -0x85, 0xc4, 0xa4, 0x04, 0x52, 0x3a, 0x2d, 0x09, 0x3d, 0xc2, 0x7c, 0x44, 0xfd, 0x89, 0xfa, 0x8a, -0xfc, 0xdc, 0x05, 0x33, 0xe5, 0x3a, 0x17, 0xb2, 0x76, 0xd3, 0xb3, 0x93, 0x18, 0x96, 0x44, 0x98, -0xdc, 0x8a, 0x48, 0xa9, 0xd8, 0x3b, 0xb3, 0xbc, 0x28, 0x6a, 0x31, 0x0d, 0x75, 0xf4, 0x82, 0xa8, -0x88, 0x8e, 0xeb, 0x15, 0xd5, 0x1f, 0xe4, 0xe5, 0xc5, 0x4f, 0xc9, 0x16, 0xdf, 0xc9, 0xaa, 0xac, -0x05, 0x69, 0xa6, 0x8d, 0x7c, 0x9e, 0x77, 0x71, 0xde, 0xca, 0xb0, 0x62, 0x68, 0x10, 0xf8, 0x90, -0xda, 0xc6, 0xf6, 0x5d, 0x05, 0xa8, 0x1a, 0x19, 0xf9, 0x44, 0xf4, 0x58, 0x32, 0x0e, 0xdc, 0xd5, -0xa8, 0xb0, 0xa8, 0xe7, 0x7a, 0x40, 0xc7, 0xfa, 0xf7, 0x18, 0x9d, 0x53, 0xc5, 0x9e, 0x34, 0xb0, -0x13, 0xb7, 0xdb, 0xcc, 0xaa, 0x28, 0xfc, 0xe7, 0x20, 0x68, 0x0a, 0x90, 0x5f, 0x7c, 0xb3, 0x67, -0xee, 0x62, 0x66, 0xcb, 0x1a, 0xa1, 0x0a, 0x54, 0xef, 0x3c, 0xf9, 0xe6, 0x20, 0xe8, 0x1f, 0xda, -0x5c, 0xd3, 0xe7, 0xbb, 0x2b, 0xa4, 0x42, 0x89, 0x6e, 0x0f, 0x52, 0xf9, 0x31, 0x46, 0x63, 0x4f, -0xb0, 0x79, 0x9f, 0xbc, 0x1e, 0xcc, 0x07, 0x03, 0xd2, 0xd9, 0xbc, 0x1b, 0xba, 0x60, 0x51, 0xfc, -0x84, 0x30, 0x3f, 0xfe, 0xdf, 0xf8, 0xc4, 0xc5, 0xdf, 0xc0, 0xa7, 0x37, 0xf3, 0x91, 0xfe, 0xc6, -0xdf, 0xc2, 0x5f, 0x7d, 0xfc, 0x54, 0xbe, 0x10, 0x3f, 0x8d, 0x4f, 0x39, 0xf1, 0xb3, 0xd2, 0x9a, -0x01, 0x49, 0x2a, 0xf9, 0xee, 0xf8, 0x39, 0xe1, 0xe7, 0xf1, 0xf3, 0x61, 0x55, 0xbe, 0x2b, 0xfe, -0x79, 0x84, 0x7c, 0x07, 0x8c, 0x09, 0x0f, 0x60, 0xbf, 0x9d, 0x60, 0x9c, 0xe7, 0x2c, 0x66, 0x75, -0x4f, 0x2b, 0xad, 0x0b, 0xbe, 0x33, 0x68, 0xee, 0xa9, 0xfe, 0x40, 0xa7, 0x8a, 0x1f, 0x95, 0xf6, -0x06, 0x2e, 0x59, 0x82, 0xb9, 0x7f, 0x73, 0x09, 0x94, 0x97, 0x2a, 0xc1, 0xf8, 0xc3, 0x57, 0x5d, -0x02, 0x3d, 0x96, 0x20, 0xe7, 0x86, 0xae, 0xf8, 0x91, 0x4b, 0x96, 0xe0, 0x14, 0xe6, 0xf1, 0x96, -0x9c, 0xbf, 0xe1, 0x0a, 0x2d, 0xc0, 0x4d, 0xca, 0x3f, 0xef, 0x2b, 0xe7, 0x7f, 0xf8, 0x6f, 0xcc, -0x5f, 0x79, 0xa9, 0xfc, 0x2f, 0x3c, 0xfc, 0x95, 0x7b, 0xa0, 0xf0, 0x6f, 0xee, 0x01, 0x05, 0x95, -0x80, 0x3c, 0x52, 0xa4, 0xe5, 0x9f, 0xf7, 0x95, 0xf3, 0x37, 0xfd, 0xcd, 0xf9, 0x73, 0x97, 0xc2, -0x80, 0xb1, 0x87, 0xbe, 0x72, 0x09, 0x6e, 0x96, 0x4a, 0x40, 0x72, 0xed, 0x0d, 0xcd, 0x70, 0xe7, -0xdf, 0xdf, 0x0a, 0x63, 0xd9, 0x5f, 0xb9, 0x0c, 0xf3, 0xfe, 0xae, 0x32, 0x5c, 0xb2, 0x25, 0x46, -0xfb, 0xbf, 0x32, 0x2e, 0xfe, 0xee, 0xb2, 0xa5, 0xf8, 0x72, 0x7c, 0x54, 0x5c, 0x0a, 0x1f, 0x47, -0x75, 0x5f, 0xb9, 0x0c, 0x87, 0xfe, 0x8e, 0x32, 0x70, 0x17, 0xf7, 0xc5, 0xc8, 0x96, 0xaf, 0x5a, -0x02, 0x70, 0xfc, 0x8d, 0x23, 0xf2, 0x92, 0x2d, 0x30, 0xa2, 0xfd, 0xca, 0xf9, 0xf3, 0x7f, 0x63, -0xfe, 0x97, 0xa8, 0xfd, 0x17, 0xf7, 0x5d, 0x3e, 0xf7, 0x65, 0x1f, 0x11, 0x4c, 0xc5, 0x47, 0xa0, -0xc2, 0x99, 0xcd, 0x94, 0xb2, 0x05, 0x36, 0xbb, 0x2b, 0xfe, 0x01, 0x71, 0xde, 0x28, 0x91, 0x96, -0xa2, 0x6c, 0x41, 0xd6, 0x4b, 0x0d, 0x26, 0xf2, 0xa4, 0x65, 0x62, 0xeb, 0xa3, 0xb2, 0xdf, 0x04, -0x9c, 0x73, 0x51, 0x3a, 0xfb, 0xcb, 0x38, 0xca, 0xbe, 0x1a, 0x94, 0x6a, 0xf1, 0xf9, 0x23, 0x3d, -0xd6, 0xe7, 0x3c, 0x9d, 0x5a, 0xa5, 0xfa, 0xd8, 0x88, 0x93, 0x97, 0xeb, 0x54, 0x32, 0x1f, 0x66, -0x11, 0x57, 0xef, 0xab, 0x0d, 0x65, 0xb2, 0x75, 0xb0, 0x85, 0xcb, 0x25, 0x59, 0x08, 0xa5, 0x90, -0xa2, 0x98, 0xb4, 0xba, 0x4c, 0xbe, 0x64, 0x64, 0x5b, 0x64, 0xf2, 0x7a, 0x87, 0x3e, 0x9b, 0xe9, -0x9d, 0x00, 0xcc, 0x5e, 0x45, 0xde, 0xdb, 0xee, 0x5c, 0xa5, 0x89, 0x4c, 0x13, 0xd5, 0x91, 0x0c, -0x51, 0x11, 0x99, 0xaa, 0x83, 0xf8, 0xa3, 0x0d, 0x46, 0xfc, 0xfd, 0xdf, 0x8d, 0x2e, 0x8c, 0xb3, -0x86, 0x4a, 0x1a, 0x34, 0x78, 0xb7, 0x04, 0x1d, 0xa2, 0x43, 0x0d, 0xf1, 0x63, 0x64, 0x45, 0xbc, -0xc1, 0x24, 0x9a, 0x10, 0xe2, 0xe7, 0xa1, 0x59, 0x0d, 0x99, 0x78, 0x1f, 0x08, 0x65, 0xe3, 0xef, -0x60, 0x30, 0x53, 0xa4, 0xb7, 0x5f, 0x87, 0x10, 0x3e, 0xfe, 0x74, 0x48, 0x21, 0xd4, 0x1a, 0xfd, -0xee, 0x0f, 0xb0, 0xf5, 0x40, 0xff, 0x7f, 0x48, 0xc7, 0xaf, 0xed, 0x73, 0x6a, 0xb7, 0xf7, 0x82, -0x92, 0xcc, 0xa1, 0xe8, 0x49, 0x70, 0x32, 0xc6, 0x6f, 0x92, 0x06, 0x9e, 0xaf, 0x96, 0x3c, 0xf7, -0xd9, 0x10, 0x37, 0x7d, 0x05, 0xd0, 0xd5, 0xa6, 0xf2, 0x55, 0xa0, 0xac, 0x84, 0xdc, 0x54, 0x44, -0x45, 0x63, 0x39, 0xd0, 0xd3, 0x35, 0x7e, 0xe8, 0x6e, 0xbb, 0x86, 0xc9, 0x69, 0x5c, 0x8a, 0x67, -0xf7, 0xff, 0xe0, 0xe2, 0x75, 0x95, 0x30, 0x47, 0xd2, 0xee, 0x65, 0xf8, 0x48, 0x69, 0x4d, 0x46, -0xf1, 0x56, 0x6f, 0x04, 0x2a, 0x99, 0x3d, 0x59, 0x82, 0xba, 0x6a, 0x7e, 0x4b, 0x29, 0xaf, 0xc0, -0xed, 0x4c, 0xac, 0xc0, 0x15, 0xec, 0x4a, 0xe7, 0xb8, 0x84, 0x9f, 0x26, 0x57, 0xf0, 0xb8, 0x2e, -0x71, 0xf8, 0xee, 0x08, 0xbf, 0x3b, 0x96, 0xb0, 0xa4, 0x63, 0x87, 0x04, 0x8f, 0xf4, 0x9e, 0x0b, -0x79, 0x23, 0xab, 0x7f, 0xff, 0xbb, 0x5b, 0x29, 0x05, 0x66, 0x67, 0x7a, 0x03, 0x5b, 0x63, 0xee, -0x09, 0xe6, 0x5e, 0x6e, 0xb5, 0x50, 0xf4, 0x60, 0x0f, 0x5f, 0x32, 0x96, 0x78, 0x47, 0xd1, 0xcc, -0xf8, 0x53, 0x8f, 0x14, 0x33, 0x57, 0x80, 0x37, 0xb0, 0xf5, 0x98, 0x8d, 0xb6, 0x7f, 0x0c, 0x60, -0xac, 0x86, 0x9e, 0x6e, 0x17, 0xa1, 0x1e, 0xd3, 0xd0, 0xa6, 0xf8, 0xcc, 0xb4, 0x75, 0x0f, 0x5d, -0x42, 0xba, 0x24, 0x5c, 0x91, 0xa4, 0xcb, 0x89, 0xbc, 0x24, 0xc1, 0x26, 0xd6, 0xe4, 0x68, 0x3d, -0x8e, 0x56, 0xef, 0x59, 0x7d, 0x2c, 0x50, 0xc6, 0x20, 0xc8, 0xe6, 0x86, 0xc5, 0x17, 0x0b, 0x6d, -0xbc, 0xfc, 0xba, 0xf2, 0xe5, 0x57, 0x89, 0x89, 0x53, 0x65, 0x6b, 0x78, 0xc5, 0x97, 0x5f, 0xed, -0x38, 0x2d, 0xdb, 0x64, 0x26, 0x3b, 0x2f, 0x46, 0xef, 0xcb, 0x74, 0xb2, 0xf3, 0x44, 0xf6, 0x82, -0x5e, 0xa5, 0x6c, 0x5f, 0x58, 0xe9, 0xdd, 0xe4, 0x7d, 0x56, 0x54, 0xac, 0x1b, 0xc1, 0x3a, 0x1a, -0x13, 0x3c, 0xa4, 0xaf, 0x22, 0xd5, 0xfa, 0x28, 0xa5, 0xab, 0x52, 0x9c, 0xa4, 0x5e, 0x29, 0xaa, -0xc3, 0x23, 0xa2, 0x22, 0x3c, 0x9f, 0x9d, 0x2d, 0x3e, 0x2a, 0x71, 0x91, 0x3c, 0xf9, 0x85, 0x48, -0xac, 0x0d, 0xd2, 0xf9, 0xfa, 0x98, 0x69, 0x8d, 0x66, 0x96, 0xec, 0x09, 0xf1, 0xd0, 0xdc, 0x25, -0xd2, 0x3e, 0x03, 0x62, 0x6b, 0xd9, 0x24, 0x2b, 0xc1, 0xa5, 0x28, 0x0f, 0x98, 0x19, 0x3f, 0x79, -0xfd, 0xd1, 0x58, 0x8c, 0xd6, 0xe0, 0xf6, 0xbc, 0xb7, 0x05, 0x14, 0xf1, 0x9d, 0x33, 0x05, 0x78, -0xd9, 0x48, 0xdf, 0xac, 0x86, 0x15, 0xbe, 0x79, 0x50, 0x14, 0xca, 0xe6, 0x2d, 0x60, 0x08, 0xe9, -0x11, 0x62, 0x17, 0x85, 0xcd, 0x6d, 0x86, 0x1c, 0x18, 0x12, 0xf5, 0x78, 0xd7, 0x25, 0x43, 0xf4, -0x30, 0x34, 0x93, 0xfc, 0x91, 0x91, 0xad, 0xd3, 0x43, 0x73, 0xbd, 0xf0, 0x02, 0xf6, 0xea, 0x61, -0xd9, 0x92, 0xce, 0x21, 0x5a, 0x41, 0xad, 0x1b, 0x93, 0x56, 0x57, 0xeb, 0x5e, 0x90, 0x56, 0x54, -0xf1, 0x7d, 0x9b, 0xfc, 0xce, 0xac, 0x9f, 0xd6, 0xed, 0x96, 0xac, 0x9f, 0xd6, 0xed, 0x80, 0x47, -0xe5, 0xf7, 0x81, 0xa4, 0xae, 0xa3, 0xea, 0x4b, 0x6b, 0x7a, 0x96, 0xb0, 0xf4, 0x4f, 0x4f, 0xf3, -0x56, 0x28, 0xa8, 0xef, 0x0b, 0x2d, 0x9f, 0xd0, 0x27, 0x30, 0x69, 0x97, 0x03, 0xda, 0x8a, 0x2e, -0xbf, 0xce, 0x35, 0x79, 0x85, 0xaa, 0x54, 0x48, 0x4a, 0x17, 0x39, 0xa4, 0x29, 0x2e, 0xf9, 0xd7, -0xc0, 0x91, 0x50, 0x20, 0xcb, 0x48, 0x35, 0xfa, 0x85, 0x96, 0x99, 0xe4, 0x91, 0xa0, 0xa9, 0x12, -0x7f, 0x95, 0xab, 0xb4, 0x48, 0x71, 0x62, 0x8c, 0xe2, 0x14, 0x51, 0x3d, 0xbe, 0x95, 0x0d, 0x03, -0x13, 0x72, 0xcb, 0x97, 0xf0, 0x0b, 0xc7, 0x1d, 0x49, 0x3f, 0xb4, 0x13, 0x36, 0x20, 0xed, 0xb8, -0x21, 0x65, 0x46, 0x3a, 0x20, 0x1a, 0x13, 0xfd, 0x65, 0x24, 0xbd, 0x8d, 0x89, 0x7d, 0x56, 0x84, -0xad, 0x6a, 0x4e, 0xb4, 0x08, 0x69, 0x92, 0xcb, 0x36, 0x5f, 0xcd, 0x9a, 0x79, 0xa0, 0x82, 0xc7, -0x43, 0x7a, 0xcd, 0x69, 0x14, 0x1c, 0x16, 0xd2, 0xd8, 0xd9, 0x98, 0x03, 0x8f, 0x8a, 0x99, 0x18, -0xae, 0x80, 0x5d, 0x21, 0x35, 0x34, 0x63, 0xb5, 0x0a, 0xb1, 0x1f, 0xa5, 0x3d, 0x00, 0x0d, 0x86, -0x73, 0xd0, 0x10, 0xa2, 0xb5, 0xec, 0xac, 0x39, 0x2e, 0x70, 0x62, 0x3f, 0xdf, 0x19, 0x52, 0xe3, -0xd7, 0x00, 0x0b, 0xc3, 0x53, 0x62, 0x03, 0xe0, 0xa4, 0x50, 0x06, 0xb5, 0x3a, 0x34, 0x0b, 0xef, -0x00, 0xdd, 0x21, 0x4d, 0x44, 0xd3, 0x43, 0x56, 0x0a, 0xa5, 0xf0, 0xee, 0x90, 0x7a, 0x9d, 0xfe, -0x7b, 0x03, 0x49, 0xa8, 0x46, 0x06, 0xd5, 0x10, 0x22, 0x9c, 0xf9, 0x6e, 0xc8, 0x12, 0x86, 0x28, -0xc7, 0xac, 0x8b, 0x6c, 0x7c, 0xfb, 0x9e, 0x1e, 0x0c, 0xe1, 0xb8, 0x90, 0xce, 0x08, 0xb7, 0x77, -0x9b, 0x15, 0xef, 0x3c, 0x4e, 0x5f, 0x05, 0x62, 0x4c, 0x9e, 0x3a, 0x81, 0xd0, 0x4f, 0xa5, 0x41, -0x0f, 0x31, 0xe8, 0xa7, 0x24, 0xe8, 0x9a, 0x74, 0xe8, 0x29, 0x04, 0x2d, 0x9d, 0x79, 0xc7, 0xb9, -0xea, 0x05, 0xc4, 0x07, 0xda, 0x91, 0xac, 0x16, 0x9e, 0x04, 0x41, 0xe8, 0x84, 0xca, 0xaa, 0x8f, -0xc0, 0x89, 0xed, 0xaa, 0x4f, 0xdf, 0x99, 0x5c, 0x8c, 0x54, 0x34, 0xb5, 0x0f, 0x19, 0xbe, 0x9d, -0x69, 0x2e, 0x14, 0xdf, 0xd2, 0x05, 0x6a, 0x28, 0xb5, 0x57, 0x83, 0x80, 0x4f, 0x7a, 0xa8, 0x94, -0xf6, 0x2c, 0x53, 0xbb, 0x92, 0x7a, 0x3b, 0xd4, 0xcd, 0x74, 0xc1, 0x71, 0xa6, 0xb1, 0x87, 0xcd, -0x2f, 0xf9, 0x68, 0x36, 0x5a, 0x61, 0x9f, 0x86, 0x83, 0x59, 0xcb, 0x0f, 0x7a, 0x7b, 0x9c, 0x82, -0x49, 0xe3, 0xe9, 0x79, 0xea, 0xf9, 0x60, 0x0e, 0xd2, 0x3f, 0xb5, 0xe6, 0x19, 0x98, 0x25, 0xaa, -0x34, 0xdd, 0x30, 0x0b, 0x65, 0xb2, 0x7d, 0x9a, 0x33, 0x90, 0x01, 0xfb, 0x24, 0x2c, 0xaa, 0x7e, -0xb3, 0x94, 0xf6, 0x50, 0x0b, 0x13, 0x73, 0xfb, 0x2d, 0x6c, 0x2e, 0x64, 0xbb, 0x51, 0xdc, 0xf0, -0x20, 0xec, 0x11, 0x3c, 0x39, 0x0e, 0xcd, 0x4c, 0x85, 0x07, 0x62, 0x21, 0x55, 0xf8, 0xdf, 0x70, -0x64, 0x9f, 0xbd, 0xc1, 0x35, 0x79, 0xb6, 0xa7, 0x79, 0x1e, 0x2f, 0x9a, 0xef, 0x4f, 0xe7, 0x23, -0x46, 0xc4, 0xcf, 0xe6, 0x33, 0x1d, 0xe8, 0xf4, 0x59, 0x1e, 0x9f, 0xc6, 0x12, 0x73, 0xfc, 0xd9, -0x61, 0x66, 0x47, 0xde, 0xe3, 0xf3, 0x60, 0x9a, 0x67, 0x31, 0xcd, 0x7f, 0xa3, 0x34, 0x93, 0xb1, -0x3f, 0x91, 0x2c, 0xa1, 0x4f, 0xdb, 0x9f, 0x2a, 0x85, 0xd6, 0x11, 0xef, 0xd1, 0xcc, 0xbc, 0x54, -0xa9, 0xd2, 0xf6, 0x87, 0x8a, 0x42, 0x2e, 0x23, 0x9b, 0x27, 0x04, 0x77, 0xcf, 0xb7, 0x34, 0x8a, -0x7a, 0xe6, 0xa3, 0x4f, 0x01, 0xc1, 0x4f, 0x7c, 0xee, 0xa0, 0x99, 0x70, 0x7b, 0x6e, 0x0b, 0xa3, -0x06, 0xcd, 0x09, 0x6a, 0x90, 0xcc, 0xd1, 0x21, 0xe7, 0xe8, 0x95, 0xe7, 0x19, 0xfd, 0xdb, 0xbd, -0x31, 0x9c, 0x6b, 0xc8, 0x23, 0xe0, 0x5b, 0xbd, 0x3d, 0x2e, 0x07, 0xf7, 0x96, 0x57, 0x1f, 0xbb, -0xc6, 0x8d, 0x34, 0x33, 0x31, 0x0f, 0x29, 0x18, 0x84, 0x32, 0x1d, 0xe2, 0x1a, 0x17, 0x28, 0x10, -0x46, 0x99, 0x84, 0x51, 0x31, 0x98, 0x8c, 0x49, 0x30, 0x2a, 0x84, 0xc9, 0x48, 0xc2, 0xa8, 0x19, -0xcc, 0x94, 0x49, 0x30, 0x6a, 0x84, 0x99, 0x92, 0x84, 0xd1, 0x31, 0x98, 0xe9, 0x93, 0x60, 0x74, -0x08, 0x33, 0x3d, 0x09, 0x73, 0x07, 0x83, 0xb9, 0x73, 0x12, 0xcc, 0x1d, 0x08, 0x73, 0x67, 0x12, -0xa6, 0x81, 0xc1, 0xac, 0x9a, 0x04, 0xd3, 0x80, 0x30, 0xab, 0x92, 0x30, 0x8d, 0x0c, 0xa6, 0x69, -0x12, 0x4c, 0x23, 0xc2, 0x34, 0x25, 0x61, 0x82, 0x0c, 0x26, 0x34, 0x09, 0x26, 0x88, 0x30, 0xa1, -0x24, 0x4c, 0x2b, 0x83, 0x59, 0x3d, 0x09, 0xa6, 0x15, 0x61, 0x56, 0x27, 0x61, 0xda, 0x18, 0x4c, -0xfb, 0x24, 0x98, 0x36, 0x84, 0x69, 0x4f, 0xc2, 0x74, 0x30, 0x98, 0xce, 0x49, 0x30, 0x1d, 0x08, -0xd3, 0x99, 0x84, 0x09, 0x33, 0x98, 0x6f, 0x4d, 0x82, 0x09, 0x23, 0xcc, 0xb7, 0x92, 0x30, 0xeb, -0x18, 0xcc, 0xb7, 0x27, 0xc1, 0xac, 0x43, 0x98, 0x6f, 0xa7, 0xef, 0x85, 0x22, 0xcc, 0x77, 0x27, -0xc1, 0x6c, 0x44, 0x98, 0xef, 0x26, 0x61, 0x62, 0x0c, 0xa6, 0x7b, 0x12, 0x0c, 0xe1, 0x46, 0x77, -0x12, 0xa6, 0x87, 0xc1, 0x6c, 0x9a, 0x04, 0xd3, 0x83, 0x30, 0x9b, 0x92, 0x30, 0x9b, 0x19, 0xcc, -0x5d, 0x93, 0x60, 0x36, 0x23, 0xcc, 0x5d, 0x49, 0x98, 0xbb, 0x19, 0xcc, 0xf7, 0x26, 0xc1, 0xdc, -0x8d, 0x30, 0xdf, 0x4b, 0xc2, 0xf4, 0x32, 0x98, 0x7b, 0x26, 0xc1, 0xf4, 0x22, 0xcc, 0x3d, 0x49, -0x98, 0xed, 0x0c, 0xe6, 0x87, 0x93, 0x60, 0xb6, 0x23, 0xcc, 0x0f, 0x93, 0x30, 0x3b, 0x19, 0xcc, -0xbf, 0x4d, 0x82, 0xd9, 0x89, 0x30, 0xff, 0x96, 0x84, 0xf9, 0x09, 0x83, 0xf9, 0xdf, 0x93, 0x60, -0x7e, 0x82, 0x30, 0xff, 0x3b, 0x09, 0xf3, 0x28, 0x83, 0xf9, 0x7f, 0x27, 0xc1, 0x3c, 0x8a, 0x30, -0xff, 0x6f, 0x12, 0xe6, 0x31, 0x06, 0xf3, 0xd3, 0x49, 0x30, 0x8f, 0x21, 0x4c, 0x8a, 0xcf, 0x1b, -0x60, 0x30, 0x3f, 0x9b, 0x04, 0x33, 0x80, 0x30, 0x3f, 0x4b, 0xc2, 0x0c, 0x32, 0x98, 0xc7, 0x27, -0xc1, 0x0c, 0x22, 0xcc, 0xe3, 0x49, 0x98, 0x5d, 0x0c, 0xe6, 0xe7, 0x93, 0x60, 0x76, 0x21, 0xcc, -0xcf, 0x93, 0x30, 0x4f, 0x30, 0x98, 0x27, 0x27, 0xc1, 0x3c, 0x81, 0x30, 0x4f, 0x26, 0x61, 0x86, -0x18, 0xcc, 0x53, 0x93, 0x60, 0x86, 0x10, 0xe6, 0xa9, 0x24, 0xcc, 0x6e, 0x06, 0xf3, 0x8b, 0x49, -0x30, 0xbb, 0x11, 0xe6, 0x17, 0x49, 0x98, 0x3d, 0x0c, 0xe6, 0x97, 0x93, 0x60, 0xf6, 0x20, 0xcc, -0x2f, 0x93, 0x30, 0x7b, 0x19, 0xcc, 0xaf, 0x26, 0xc1, 0xec, 0x45, 0x98, 0x5f, 0x25, 0x61, 0xf6, -0x31, 0x98, 0x5f, 0x4f, 0x82, 0xd9, 0x87, 0x30, 0xbf, 0x4e, 0xc2, 0xec, 0x67, 0x30, 0xff, 0x3e, -0x09, 0x66, 0x3f, 0xc2, 0xfc, 0x7b, 0x12, 0xe6, 0x00, 0x83, 0xf9, 0xcd, 0x24, 0x98, 0x03, 0x08, -0xf3, 0x9b, 0x24, 0xcc, 0xd3, 0x0c, 0xe6, 0xb7, 0x93, 0x60, 0x9e, 0x46, 0x98, 0xdf, 0x26, 0x61, -0x86, 0x19, 0xcc, 0x33, 0x93, 0x60, 0x86, 0x11, 0xe6, 0x99, 0x24, 0xcc, 0x41, 0x06, 0xf3, 0xec, -0x24, 0x98, 0x83, 0x08, 0xf3, 0x6c, 0x12, 0xe6, 0x28, 0x83, 0x79, 0x69, 0x12, 0xcc, 0x51, 0x84, -0x79, 0x29, 0x09, 0x73, 0x9c, 0xc1, 0xbc, 0x32, 0x09, 0xe6, 0x38, 0xc2, 0xbc, 0x92, 0x84, 0x19, -0x67, 0x30, 0xf1, 0x49, 0x30, 0xe3, 0x08, 0x13, 0x4f, 0xc0, 0x70, 0x40, 0x30, 0x1c, 0x37, 0x11, -0x86, 0x83, 0x6b, 0xdc, 0x5c, 0x8a, 0xce, 0x9f, 0x79, 0xdb, 0x4b, 0x7e, 0x07, 0x99, 0xdf, 0xb5, -0xf7, 0xbd, 0x6e, 0x9c, 0x59, 0x62, 0x2c, 0xfc, 0x2c, 0x7e, 0xdb, 0x8d, 0x39, 0x7c, 0x20, 0x6b, -0x3e, 0xfd, 0xe3, 0x5b, 0xf5, 0x04, 0x17, 0x73, 0x27, 0x34, 0xa1, 0x30, 0xa7, 0x33, 0xd2, 0x33, -0x3e, 0xbd, 0x4f, 0x9a, 0x50, 0x78, 0x3f, 0x8b, 0x65, 0xf8, 0x20, 0x99, 0xf6, 0xfa, 0xb4, 0xb4, -0xbf, 0x93, 0x96, 0xf6, 0x06, 0x39, 0xed, 0xff, 0x75, 0x85, 0xb4, 0xd7, 0x27, 0xd3, 0xfe, 0x8e, -0x9c, 0xf6, 0x06, 0x4c, 0xfb, 0x7f, 0x25, 0xd3, 0x3e, 0x94, 0x96, 0xf6, 0xef, 0xd2, 0xd2, 0x7e, -0x4e, 0x4e, 0xfb, 0xf7, 0x57, 0x48, 0xfb, 0x50, 0x32, 0xed, 0xdf, 0xc9, 0x69, 0x3f, 0x87, 0x69, -0xff, 0x3e, 0x99, 0xf6, 0x0b, 0x69, 0x69, 0xff, 0x31, 0x2d, 0xed, 0x17, 0xe5, 0xb4, 0xff, 0x63, -0x03, 0xe4, 0x5a, 0xe0, 0xf0, 0xdb, 0x4b, 0xbd, 0x15, 0x42, 0x05, 0x83, 0x7a, 0x9e, 0x41, 0xdd, -0xc5, 0xc2, 0x8f, 0xbc, 0xfd, 0xfd, 0x2d, 0xdd, 0x5b, 0x2c, 0xf0, 0x07, 0x5b, 0x86, 0x50, 0xe9, -0xad, 0x2c, 0x00, 0xe6, 0xf7, 0xf2, 0xce, 0xb7, 0xea, 0x8d, 0x40, 0x50, 0x3c, 0x17, 0x5b, 0x1c, -0x81, 0xb7, 0xee, 0x78, 0xeb, 0x9f, 0xe9, 0xeb, 0x2d, 0x95, 0x3d, 0x77, 0x59, 0x39, 0xa1, 0xc2, -0x5b, 0xf1, 0xd6, 0xd2, 0x6b, 0x2a, 0xe0, 0x05, 0xe9, 0x19, 0x9f, 0xfe, 0x68, 0xe5, 0xde, 0xfa, -0x3e, 0xde, 0x5f, 0xc4, 0xd2, 0xfd, 0x47, 0x5a, 0xd9, 0x0f, 0x27, 0xcb, 0xfe, 0xbc, 0x5c, 0xf6, -0x23, 0x58, 0xf6, 0x3f, 0x20, 0xa7, 0xe1, 0x61, 0xbe, 0xd0, 0x8f, 0x11, 0xbf, 0x1b, 0xe8, 0x97, -0xf8, 0xfc, 0xda, 0x42, 0x89, 0xbf, 0x27, 0x3e, 0x94, 0xbd, 0x1f, 0x83, 0x9d, 0x12, 0x6f, 0x44, -0x75, 0xcd, 0xd5, 0x2b, 0x32, 0x60, 0xf6, 0xcc, 0x0a, 0x78, 0x65, 0x6e, 0x17, 0xdb, 0xc3, 0x74, -0x8a, 0x05, 0x92, 0xfc, 0x20, 0x58, 0x59, 0xd8, 0x04, 0x6d, 0x0c, 0xf6, 0xbe, 0x0f, 0x76, 0x92, -0xce, 0x24, 0x0c, 0x32, 0x43, 0x38, 0xfb, 0x16, 0x9f, 0x01, 0x2f, 0xf2, 0x76, 0x16, 0xfb, 0xb4, -0x70, 0xd1, 0x51, 0xe4, 0x8a, 0xed, 0x50, 0x35, 0xf2, 0x9f, 0xfb, 0xfc, 0xdb, 0x36, 0x6c, 0xc0, -0x50, 0x83, 0x37, 0x52, 0x0f, 0x11, 0xc3, 0x31, 0x0a, 0xe7, 0xfc, 0xdb, 0x96, 0x9e, 0x81, 0x6f, -0x91, 0x87, 0x5a, 0x7b, 0x66, 0xb8, 0x40, 0x82, 0x65, 0x3a, 0x62, 0x7c, 0xc1, 0xfd, 0x04, 0x87, -0x9c, 0x5f, 0x82, 0xd7, 0x1f, 0x48, 0x68, 0xe7, 0xfb, 0xf7, 0x9f, 0x27, 0x1b, 0x9e, 0xfb, 0x4f, -0xd0, 0x4e, 0xbb, 0x99, 0x9d, 0x85, 0x44, 0x9e, 0xa5, 0x4d, 0x8d, 0x35, 0x50, 0xc1, 0xbe, 0xab, -0xc3, 0x30, 0x94, 0x97, 0x8a, 0x58, 0xaf, 0xbc, 0x90, 0xd6, 0x5b, 0x7f, 0x4c, 0xeb, 0xad, 0x17, -0xe5, 0xde, 0xfa, 0x0f, 0x16, 0x73, 0xf8, 0xed, 0x2a, 0x8a, 0xeb, 0x82, 0x3c, 0xea, 0xd3, 0x4a, -0xa1, 0xf2, 0xbe, 0x6e, 0x16, 0x7e, 0x04, 0x39, 0xe2, 0xbb, 0x7b, 0xb0, 0x4f, 0x91, 0xbb, 0x2c, -0x99, 0x5b, 0x01, 0x65, 0xf6, 0x0c, 0x3b, 0x97, 0x26, 0x9f, 0xbc, 0x9e, 0x94, 0x4f, 0x0c, 0xd8, -0x13, 0x00, 0x8f, 0xe8, 0x49, 0xb3, 0x17, 0x20, 0xa3, 0x81, 0x56, 0x4b, 0x54, 0x8d, 0x28, 0xef, -0x84, 0x4c, 0xe2, 0x06, 0x7c, 0x9e, 0x12, 0x8c, 0x4a, 0xfd, 0xc4, 0xb4, 0x98, 0x2b, 0xf1, 0x77, -0x09, 0x2c, 0xa6, 0x13, 0x75, 0xd7, 0xd4, 0x83, 0x20, 0xd6, 0x4b, 0xed, 0x6f, 0x9f, 0x46, 0xa9, -0xfe, 0x83, 0x93, 0xf6, 0xf2, 0x6f, 0xee, 0x97, 0xf4, 0x9e, 0x83, 0xd9, 0xcc, 0xf7, 0x04, 0x7d, -0x91, 0x25, 0x7d, 0x91, 0x3b, 0x8c, 0x5f, 0x98, 0xbd, 0xad, 0x50, 0xc3, 0xa0, 0x6f, 0x96, 0xe1, -0x0c, 0xc9, 0x94, 0x5d, 0x12, 0x1c, 0xe6, 0x2a, 0xb0, 0xd6, 0xf4, 0x93, 0x1d, 0x47, 0x8e, 0x76, -0xcb, 0xcd, 0xeb, 0x21, 0x87, 0xda, 0xa4, 0xda, 0xeb, 0x11, 0x3c, 0xac, 0x1d, 0xfe, 0xc8, 0xb0, -0x71, 0x33, 0x0b, 0x7f, 0xf1, 0xed, 0xfb, 0x7a, 0xef, 0x32, 0xaa, 0xb0, 0xbe, 0xff, 0xc1, 0xde, -0x0f, 0xa7, 0xc1, 0x3d, 0x9f, 0x06, 0x77, 0x84, 0xe0, 0x78, 0x15, 0xb6, 0xf3, 0x1f, 0x84, 0xcd, -0xd6, 0x52, 0x18, 0x55, 0xc1, 0x43, 0xdd, 0x3f, 0x8a, 0x35, 0x39, 0xae, 0xae, 0x6f, 0x90, 0x7b, -0xc5, 0x2f, 0x56, 0x91, 0x56, 0xb9, 0x15, 0x4a, 0x90, 0xb7, 0x2f, 0xe3, 0xdd, 0x66, 0x2e, 0x0a, -0x16, 0x85, 0x55, 0x49, 0xe9, 0x34, 0xaa, 0x1c, 0x5d, 0xf1, 0x38, 0x86, 0x17, 0xf1, 0x9a, 0xdd, -0xbd, 0xab, 0x14, 0x3c, 0x87, 0x75, 0xba, 0x05, 0x16, 0x23, 0x16, 0xdd, 0x22, 0x79, 0x0c, 0x23, -0x8f, 0x11, 0xc8, 0x1e, 0x69, 0x50, 0x6e, 0x19, 0x3f, 0xb8, 0x79, 0x5f, 0x77, 0xd0, 0x40, 0xd6, -0xab, 0x6a, 0x63, 0x21, 0xdd, 0xc9, 0xfb, 0x4c, 0x9c, 0x78, 0xc6, 0x02, 0xf8, 0xab, 0x5e, 0xcc, -0xfc, 0x6a, 0xd1, 0x3e, 0x22, 0x4a, 0xf2, 0xd8, 0x46, 0x92, 0xbd, 0x61, 0x84, 0xce, 0x64, 0xb6, -0xae, 0x7a, 0x74, 0xdd, 0x24, 0x27, 0xac, 0x3a, 0x36, 0xd7, 0x03, 0x02, 0xca, 0xdd, 0x95, 0x62, -0x5e, 0x3a, 0xf7, 0x86, 0x18, 0x24, 0xcc, 0x6c, 0x06, 0x94, 0x6e, 0xf0, 0xf7, 0x5b, 0xb0, 0x98, -0xf4, 0x9f, 0x6b, 0x86, 0x99, 0xd7, 0xe0, 0x3d, 0x89, 0x35, 0x3b, 0xd9, 0x3b, 0x21, 0x69, 0x29, -0x24, 0xf4, 0x46, 0x95, 0x50, 0x20, 0xd8, 0x25, 0xad, 0x50, 0xbc, 0x16, 0xd0, 0x81, 0x8e, 0xf8, -0xf8, 0x6c, 0x97, 0xa4, 0x17, 0x8a, 0x72, 0x92, 0x5e, 0x96, 0x89, 0x74, 0xd2, 0x0a, 0x1b, 0x93, -0x89, 0x7b, 0x42, 0x01, 0x26, 0x49, 0x57, 0x93, 0xae, 0x85, 0xbc, 0x1a, 0xe5, 0x42, 0x69, 0xbb, -0xe0, 0x38, 0xf9, 0x49, 0xcc, 0x63, 0x32, 0x13, 0xcf, 0xf4, 0x37, 0x4d, 0x76, 0x9d, 0x7d, 0x1a, -0xca, 0xa8, 0x28, 0x29, 0xb1, 0x55, 0x47, 0xe2, 0xa0, 0xad, 0x30, 0x9d, 0xad, 0x29, 0x2a, 0xa2, -0x33, 0x0e, 0xf6, 0x50, 0x7b, 0xc7, 0xba, 0xc9, 0xc6, 0x20, 0x69, 0xc2, 0xe7, 0xa9, 0xa4, 0xb5, -0x42, 0xd9, 0xd2, 0xbf, 0xc3, 0x2c, 0x7b, 0xda, 0xe6, 0xb3, 0xb0, 0x75, 0x55, 0x42, 0x7b, 0x7c, -0x1c, 0x47, 0xb5, 0x46, 0x93, 0x4f, 0xeb, 0x80, 0xa1, 0x22, 0x5f, 0x77, 0xc8, 0xe9, 0x8b, 0x85, -0x0a, 0xbe, 0x41, 0xf2, 0xcf, 0x38, 0xb3, 0x38, 0x68, 0x08, 0xa9, 0x93, 0x7b, 0x94, 0x5c, 0xc2, -0x4e, 0x68, 0x62, 0x87, 0x32, 0xc8, 0x52, 0x60, 0xe5, 0x30, 0x44, 0xb8, 0xe1, 0x6e, 0xad, 0x0b, -0x38, 0xb6, 0x22, 0x34, 0x8e, 0xe3, 0x43, 0x65, 0x27, 0xdd, 0x49, 0x1d, 0x59, 0xab, 0x7c, 0x3f, -0xca, 0x74, 0x22, 0x72, 0x50, 0x96, 0xb5, 0x62, 0x1d, 0x0c, 0xa1, 0x6c, 0x76, 0x2a, 0x59, 0xda, -0xc9, 0xcf, 0x66, 0x3e, 0xac, 0xf6, 0x30, 0x1b, 0x6f, 0x0a, 0xb6, 0x22, 0x7a, 0x4e, 0x5a, 0x5b, -0x91, 0x3d, 0xbc, 0x26, 0xec, 0x2c, 0x63, 0x5a, 0xef, 0xdd, 0x8b, 0xe5, 0x74, 0x49, 0x27, 0xcb, -0x92, 0x9a, 0x1f, 0x6c, 0x0f, 0xdc, 0xae, 0x24, 0xad, 0xd4, 0xa4, 0x1e, 0x6a, 0x62, 0x05, 0x2a, -0x05, 0xa1, 0x92, 0xf4, 0x36, 0x72, 0xa8, 0x1c, 0xa6, 0x09, 0x31, 0x19, 0x52, 0x0c, 0xe5, 0x8f, -0xad, 0xa8, 0x22, 0x1d, 0x22, 0xc2, 0x8b, 0xd2, 0x67, 0xe9, 0xcc, 0x56, 0x78, 0x63, 0x25, 0x7b, -0x6b, 0xd9, 0x8e, 0x6f, 0x9f, 0xe8, 0x4b, 0xe3, 0x31, 0x7a, 0x33, 0xbc, 0x8f, 0x6f, 0xa7, 0x68, -0x64, 0xbd, 0x0c, 0x11, 0xae, 0x12, 0x6b, 0x5e, 0xdf, 0x87, 0x21, 0x2f, 0xf8, 0x6a, 0x83, 0xb3, -0x26, 0xa4, 0xcd, 0x4e, 0x18, 0x51, 0xc9, 0x8a, 0x0e, 0x00, 0x97, 0x38, 0xbb, 0x3d, 0xe5, 0x28, -0xb6, 0xa5, 0x35, 0x6d, 0x15, 0x4c, 0x5f, 0x35, 0x72, 0x8c, 0x2c, 0x9e, 0x63, 0x99, 0x45, 0x5d, -0xb2, 0x0e, 0x0f, 0x90, 0x1f, 0x36, 0xff, 0xb6, 0xfa, 0x3e, 0xd2, 0xa5, 0xbd, 0x54, 0x6d, 0xd9, -0x97, 0xec, 0xab, 0xc5, 0x23, 0xc7, 0xd6, 0x27, 0xbf, 0x23, 0x2d, 0x94, 0x07, 0x12, 0x3a, 0xb8, -0x13, 0xbe, 0xe3, 0xa4, 0x9a, 0x46, 0xbe, 0x3b, 0xdc, 0x4d, 0xf1, 0x59, 0xa5, 0x40, 0xfa, 0x0f, -0x39, 0x8c, 0x86, 0x08, 0x89, 0xf3, 0x83, 0xa2, 0x2a, 0x4c, 0x2b, 0x5d, 0xa4, 0xeb, 0xaf, 0x90, -0x7c, 0xd2, 0x4a, 0xb8, 0xe3, 0x90, 0x74, 0x42, 0xac, 0xa0, 0xa7, 0x9e, 0xa0, 0x7e, 0x9f, 0x58, -0x26, 0x3a, 0x69, 0x75, 0x85, 0x3e, 0x50, 0xca, 0xe7, 0x26, 0xd4, 0x72, 0xc9, 0x4d, 0x4c, 0x13, -0x51, 0x2b, 0xb5, 0x04, 0xab, 0xfb, 0x49, 0xa6, 0xb9, 0x34, 0x11, 0x3a, 0x71, 0xca, 0x82, 0xe9, -0x2d, 0xfa, 0x79, 0xb9, 0xdd, 0x1e, 0x90, 0x75, 0x14, 0x67, 0x86, 0x0a, 0xcc, 0xcc, 0xe7, 0x69, -0xd5, 0xc8, 0x4b, 0xeb, 0x13, 0x6d, 0xd5, 0x96, 0x4b, 0x6d, 0xac, 0x3c, 0x9d, 0x80, 0xad, 0x65, -0x5a, 0x59, 0xc1, 0xb7, 0xe8, 0x74, 0x00, 0x7e, 0x93, 0x8d, 0xfd, 0xf4, 0xf4, 0x45, 0x25, 0xaf, -0xb9, 0xb8, 0xe4, 0x84, 0xaf, 0xeb, 0x9c, 0x52, 0xc9, 0x26, 0xc0, 0x2b, 0x52, 0xf8, 0xc2, 0xfc, -0x63, 0x4e, 0xec, 0x71, 0xe5, 0xc4, 0xd8, 0x50, 0xf6, 0x25, 0x4b, 0xf3, 0x04, 0x2b, 0x49, 0xa1, -0x49, 0x2e, 0xfd, 0xd1, 0xfd, 0x52, 0x3e, 0x97, 0xad, 0x43, 0x4f, 0xb2, 0x0e, 0xd9, 0xac, 0xde, -0x06, 0x1a, 0x63, 0x92, 0x16, 0xea, 0xd8, 0x6b, 0x33, 0x5d, 0x30, 0x93, 0xf5, 0x37, 0xa5, 0x99, -0x4d, 0x31, 0x89, 0x55, 0xb2, 0xb1, 0x03, 0x18, 0xc7, 0x56, 0xee, 0xab, 0x3f, 0xc8, 0xd3, 0x25, -0xfc, 0x45, 0x48, 0x36, 0xc0, 0xa9, 0x17, 0xa9, 0xc6, 0x54, 0xdb, 0xbe, 0x01, 0x3a, 0x21, 0x94, -0x38, 0x3f, 0x41, 0x56, 0x52, 0x2f, 0x51, 0x6f, 0x35, 0xaf, 0x7c, 0xaf, 0x97, 0xf4, 0x4c, 0x22, -0x33, 0xe4, 0x75, 0x70, 0x6c, 0x33, 0xb6, 0x22, 0xd7, 0x98, 0xd6, 0x2f, 0xfc, 0xe5, 0xce, 0xca, -0x4c, 0x6c, 0x43, 0xbc, 0x6e, 0x95, 0xfb, 0x96, 0x9f, 0xd8, 0x7e, 0x78, 0x0d, 0x5e, 0x12, 0x7e, -0xf0, 0xb2, 0xf0, 0xb7, 0xfe, 0xfd, 0xe9, 0x27, 0xa8, 0xc3, 0x65, 0xfa, 0xd2, 0xa2, 0x53, 0xc1, -0xad, 0x41, 0x1d, 0xdb, 0xb3, 0x50, 0xcf, 0xc4, 0xb1, 0x5c, 0x3c, 0x33, 0xb0, 0x29, 0xac, 0x20, -0xab, 0xb3, 0xe3, 0xd2, 0x2e, 0xe3, 0x89, 0xfa, 0x3e, 0x7b, 0x2b, 0x94, 0x49, 0xb6, 0xd0, 0xfd, -0xd4, 0x7a, 0x25, 0x49, 0x4f, 0x03, 0x5d, 0x13, 0xfc, 0x0e, 0xac, 0x4b, 0xe8, 0xa3, 0x5e, 0xc3, -0xac, 0xbb, 0x4a, 0xcf, 0xc2, 0x00, 0xf0, 0x29, 0xab, 0xf9, 0x98, 0x6f, 0x8e, 0xa9, 0x19, 0xac, -0x09, 0x1b, 0xab, 0xf1, 0xbd, 0x38, 0x2e, 0xf5, 0xd7, 0x32, 0x0b, 0xf7, 0x29, 0x7b, 0x97, 0x58, -0xd6, 0xa2, 0xe4, 0xdb, 0x7d, 0x46, 0x17, 0x72, 0x00, 0x27, 0x64, 0x8b, 0xec, 0x3a, 0xb2, 0x7a, -0x2e, 0xde, 0x97, 0x3c, 0x9f, 0x91, 0xe3, 0xfb, 0x19, 0x0c, 0x87, 0x34, 0xd7, 0x74, 0x81, 0x91, -0x72, 0xfc, 0x7a, 0x33, 0xa0, 0x5c, 0x93, 0x8a, 0x9d, 0xd3, 0x02, 0x07, 0x28, 0xff, 0xc4, 0xbb, -0x66, 0x1e, 0xce, 0x37, 0xfb, 0x12, 0x2b, 0xe1, 0xe4, 0x6b, 0x38, 0x2d, 0xa5, 0x79, 0xf0, 0x0a, -0xed, 0x18, 0x39, 0x5d, 0x73, 0xaa, 0xd2, 0xc3, 0x31, 0x0d, 0x81, 0xde, 0x99, 0x6d, 0x0c, 0xf2, -0xe7, 0xd8, 0x9a, 0xb2, 0xbd, 0x3b, 0xfe, 0xa9, 0xfb, 0x7d, 0xe4, 0xbd, 0x53, 0x67, 0x4f, 0xf4, -0xc9, 0x98, 0x33, 0x92, 0x05, 0x5b, 0x45, 0x3e, 0xfe, 0x1a, 0x6b, 0xfa, 0x92, 0x1e, 0xbe, 0x98, -0xdf, 0x81, 0x24, 0xd4, 0xde, 0xd4, 0x89, 0xa1, 0xb8, 0x0a, 0x5b, 0x3a, 0x51, 0xcb, 0xd9, 0x58, -0x4b, 0x18, 0x7f, 0x2c, 0x71, 0x06, 0xce, 0x82, 0x79, 0x22, 0x47, 0x61, 0xa2, 0x5d, 0x94, 0x20, -0xc0, 0x00, 0x96, 0xc1, 0x82, 0x34, 0xdd, 0x06, 0xc7, 0x68, 0x07, 0xc2, 0x1c, 0xe3, 0x6d, 0xc8, -0x6d, 0xd8, 0xa0, 0xcc, 0x04, 0x9b, 0xbb, 0x43, 0xb3, 0x8c, 0xae, 0x1f, 0x1c, 0x26, 0xdd, 0xbc, -0xa0, 0x9a, 0x59, 0x9b, 0xd5, 0x30, 0x3b, 0xfc, 0x2a, 0x51, 0x77, 0x23, 0x79, 0x82, 0x51, 0xdf, -0xd8, 0x06, 0x45, 0xa0, 0xc2, 0x5f, 0x81, 0x2c, 0x4f, 0xe8, 0x6d, 0xb0, 0x98, 0xa5, 0x54, 0x49, -0xb3, 0x20, 0xe3, 0x40, 0x1a, 0x6b, 0xfa, 0x10, 0x5e, 0xc7, 0xe2, 0x2a, 0xf1, 0x49, 0x4f, 0x30, -0x64, 0xc9, 0x3f, 0xc2, 0x61, 0x0a, 0x39, 0xf8, 0xf6, 0xca, 0x75, 0x2e, 0xc8, 0x0b, 0xe9, 0x35, -0x36, 0xe2, 0x5a, 0x69, 0xaf, 0x0a, 0xdf, 0xbf, 0xc6, 0x4e, 0x49, 0x7f, 0x4d, 0x58, 0x0d, 0xb3, -0xa2, 0xfc, 0x5c, 0x6c, 0x31, 0xd1, 0xc4, 0xd6, 0xf2, 0x14, 0xc1, 0x6c, 0xbe, 0x0d, 0xcc, 0x46, -0xf2, 0x79, 0x95, 0x5a, 0x71, 0xde, 0xc2, 0x3c, 0x48, 0x1a, 0xc8, 0xee, 0xc8, 0x0a, 0x55, 0xca, -0xb2, 0x84, 0x89, 0xfa, 0x88, 0x66, 0xd2, 0x85, 0xa1, 0x0e, 0xbc, 0x63, 0xea, 0xa1, 0xa0, 0xb4, -0x83, 0x11, 0x6e, 0xac, 0xef, 0x63, 0x76, 0x89, 0xf7, 0x85, 0xea, 0x02, 0x83, 0x70, 0x20, 0xe9, -0xef, 0x20, 0x8a, 0x29, 0x0f, 0xd7, 0xf7, 0xb1, 0x9a, 0x6a, 0x93, 0x6d, 0x59, 0x8d, 0x2d, 0x74, -0x48, 0xd4, 0x1b, 0x57, 0x83, 0x25, 0x2d, 0xac, 0xd6, 0xf7, 0x40, 0xf0, 0xac, 0x66, 0x90, 0x52, -0x49, 0x79, 0x3e, 0xa8, 0x06, 0x11, 0x2e, 0x94, 0xca, 0xfd, 0x93, 0xe6, 0xdb, 0x99, 0x3c, 0xc6, -0xd8, 0x69, 0xc5, 0x7c, 0xa7, 0xbf, 0x1f, 0xa9, 0xcd, 0xec, 0xfa, 0x49, 0x9e, 0x9d, 0xe3, 0xd5, -0x49, 0xcd, 0xc4, 0x9c, 0xf0, 0x2c, 0xa4, 0x33, 0xbc, 0xc6, 0xc2, 0x4a, 0x9e, 0x89, 0xe3, 0xcc, -0xc2, 0xbe, 0x44, 0x5e, 0x46, 0xcc, 0x42, 0x0e, 0xff, 0x95, 0xa0, 0x41, 0x0a, 0xa3, 0x9a, 0x6c, -0x3d, 0x44, 0xa9, 0x91, 0xbd, 0xe1, 0x99, 0x5d, 0xf1, 0x51, 0x90, 0x4f, 0xbb, 0xc6, 0xcf, 0x92, -0xe6, 0x0e, 0x9b, 0x89, 0x5a, 0xd9, 0x09, 0xaf, 0x7d, 0x8a, 0x58, 0x0d, 0x16, 0x51, 0x17, 0xd3, -0xe3, 0x2f, 0x59, 0x42, 0x87, 0xaf, 0x91, 0x6d, 0x6d, 0x6e, 0xa3, 0x8d, 0xbc, 0x26, 0x7c, 0xef, -0xfe, 0x41, 0xb0, 0xe1, 0x9c, 0x65, 0x8a, 0x82, 0x21, 0x9f, 0xb0, 0xe0, 0x4f, 0x03, 0xb5, 0xc8, -0x2e, 0xad, 0x87, 0xc3, 0x77, 0x1f, 0xf9, 0xde, 0xf0, 0xa6, 0x2d, 0x31, 0xdf, 0xa6, 0xdb, 0x86, -0xb3, 0x80, 0xf6, 0xa8, 0x78, 0xee, 0x9f, 0x86, 0x3d, 0xdd, 0xae, 0x58, 0x6f, 0x6c, 0x4b, 0x37, -0x72, 0xb6, 0x77, 0x85, 0xb4, 0xb2, 0xf5, 0x65, 0xe0, 0x9c, 0xe4, 0x01, 0xd3, 0xae, 0xce, 0xf7, -0xc6, 0x3f, 0xcf, 0xaf, 0x92, 0x76, 0x46, 0xcb, 0xc8, 0xfe, 0xaa, 0xce, 0x02, 0x56, 0xee, 0xd4, -0xe3, 0x26, 0x25, 0xad, 0x00, 0xe7, 0x97, 0xc7, 0xcf, 0x75, 0x41, 0x7e, 0x65, 0xfc, 0xac, 0x6d, -0x7e, 0xfc, 0x6c, 0xc1, 0xfc, 0xf8, 0xb9, 0x37, 0xee, 0xfa, 0xef, 0xcd, 0xf4, 0x9e, 0xbf, 0x38, -0x7e, 0xce, 0x9c, 0x0f, 0x4e, 0xe4, 0x5b, 0x50, 0xd6, 0x12, 0x62, 0xc6, 0xd2, 0x19, 0xf1, 0xf8, -0xf8, 0x23, 0xdd, 0xff, 0x12, 0x6b, 0x68, 0xf5, 0x6d, 0x0a, 0xba, 0x30, 0xae, 0xc8, 0x58, 0xfe, -0x83, 0xc3, 0x89, 0xef, 0x78, 0x8d, 0x71, 0x2a, 0xc5, 0xae, 0x32, 0x33, 0x6b, 0x35, 0x19, 0x76, -0x95, 0x3d, 0x5f, 0x92, 0x36, 0xfe, 0xe1, 0x61, 0x69, 0x96, 0x96, 0x5a, 0x44, 0xb2, 0x03, 0x0c, -0xdb, 0x90, 0xe2, 0x8f, 0xb1, 0x76, 0x53, 0x18, 0x33, 0x14, 0xdd, 0x98, 0x76, 0x1c, 0x71, 0x94, -0x78, 0xc4, 0x6d, 0x52, 0x8f, 0x30, 0xdf, 0xc1, 0x41, 0xcc, 0xc9, 0x83, 0xed, 0x55, 0x62, 0xcc, -0x87, 0xb2, 0x44, 0x4e, 0x2c, 0x97, 0x82, 0xc4, 0xd9, 0x1a, 0xca, 0x0b, 0x7f, 0x55, 0x4c, 0x8f, -0x4a, 0xca, 0xef, 0xf4, 0xa4, 0xfc, 0x6c, 0xa2, 0x29, 0x95, 0x1b, 0x2b, 0x19, 0xe5, 0xf3, 0x70, -0x32, 0x9f, 0x9c, 0xb9, 0x18, 0x0b, 0x3c, 0xce, 0x36, 0x63, 0xf1, 0xc3, 0xf2, 0xae, 0xfa, 0xff, -0x5f, 0xf7, 0x58, 0x99, 0xeb, 0x2b, 0xf5, 0x58, 0xff, 0xdf, 0xdb, 0x63, 0x65, 0xf7, 0x5e, 0x55, -0x8f, 0xed, 0xb8, 0x62, 0x8f, 0x8d, 0xb1, 0x33, 0x0f, 0xd2, 0x5e, 0x49, 0x0e, 0x6f, 0xb9, 0x5c, -0x8f, 0x41, 0x0f, 0xd2, 0x5a, 0x9b, 0x51, 0xea, 0x2b, 0x0b, 0x1c, 0x23, 0x2b, 0xd8, 0xb5, 0x9b, -0x2c, 0x5c, 0x6f, 0xec, 0xb9, 0xcd, 0xa1, 0x84, 0xed, 0xf2, 0x15, 0xa7, 0x06, 0x4e, 0xfd, 0x8c, -0x5a, 0x5b, 0x1a, 0xf5, 0x41, 0xda, 0xd1, 0x28, 0x32, 0x71, 0xc7, 0x63, 0xbf, 0x38, 0xd8, 0x38, -0xcb, 0x3e, 0x95, 0xc9, 0x14, 0xf2, 0x99, 0xad, 0xb2, 0x93, 0xe9, 0x65, 0x17, 0x67, 0x25, 0xcb, -0x4d, 0x30, 0x44, 0x27, 0x64, 0x7c, 0x96, 0x4a, 0xcc, 0x4e, 0xc9, 0x7d, 0xa0, 0xca, 0x93, 0xce, -0xde, 0xfe, 0xff, 0xae, 0xd4, 0xb7, 0x14, 0x7c, 0x49, 0xa9, 0xfb, 0x2f, 0x5f, 0x6a, 0xa2, 0xa3, -0xbc, 0x7c, 0x56, 0x9c, 0x3c, 0x03, 0x91, 0xf7, 0x15, 0x9d, 0x0b, 0xb2, 0x42, 0x56, 0x66, 0xcf, -0xa4, 0x00, 0x73, 0xb5, 0x08, 0x3f, 0x08, 0xeb, 0xbf, 0x8e, 0xf3, 0xd2, 0x42, 0xc9, 0xf3, 0x48, -0x0b, 0x68, 0x99, 0x1d, 0xa0, 0x3c, 0xd0, 0xd1, 0xbc, 0x2c, 0x06, 0xe7, 0x74, 0xf9, 0x6b, 0xeb, -0xfe, 0x11, 0x9f, 0x56, 0xe0, 0x97, 0x5f, 0x4b, 0xf8, 0x95, 0x34, 0xba, 0x5e, 0x1e, 0x36, 0x55, -0xbd, 0x32, 0x86, 0x90, 0x2b, 0x44, 0x53, 0x21, 0xa8, 0x05, 0x9c, 0xaa, 0x04, 0x50, 0x36, 0x38, -0xa4, 0x78, 0x75, 0x2c, 0x1e, 0x77, 0x41, 0x1a, 0xd4, 0x71, 0x63, 0x64, 0x07, 0xec, 0x96, 0xec, -0x16, 0xb8, 0x91, 0x7e, 0x7b, 0x65, 0x0b, 0x03, 0x2f, 0x49, 0x5c, 0x8a, 0xa4, 0x8f, 0x8f, 0xe5, -0x54, 0x85, 0x67, 0x0f, 0x75, 0x37, 0x19, 0xa4, 0x53, 0xc6, 0x8a, 0x58, 0xec, 0x96, 0x8f, 0xdf, -0x91, 0x74, 0xe9, 0xfd, 0x6b, 0x49, 0x32, 0x1a, 0x56, 0x2c, 0x97, 0xdf, 0x24, 0x4b, 0xf4, 0xa6, -0x4c, 0x73, 0x0b, 0xe4, 0x48, 0x5e, 0x53, 0x52, 0x27, 0xd5, 0x98, 0xf4, 0x97, 0x87, 0xf3, 0xe8, -0xfe, 0xf8, 0x13, 0xf5, 0xf2, 0x79, 0x3a, 0x9f, 0x2b, 0x64, 0x06, 0x92, 0x43, 0x8d, 0x12, 0x47, -0xc0, 0xfc, 0x8d, 0xad, 0x66, 0xe7, 0xbb, 0x8a, 0xd2, 0x6c, 0xde, 0x6f, 0x15, 0x8b, 0x80, 0xfc, -0x55, 0x1b, 0x29, 0x5e, 0x3a, 0x63, 0x33, 0xbe, 0x3f, 0xc1, 0x3d, 0x24, 0x6c, 0xe4, 0xeb, 0x5a, -0x71, 0xce, 0xcc, 0x0b, 0x4d, 0xf4, 0x98, 0xc6, 0x76, 0x6d, 0x13, 0x76, 0xc7, 0xd8, 0x39, 0x7a, -0x92, 0xf5, 0x8f, 0x31, 0x39, 0x9e, 0xec, 0xbb, 0x93, 0x9d, 0x1e, 0x5b, 0x72, 0xe6, 0x0d, 0x5a, -0x41, 0x9a, 0x51, 0xfb, 0x06, 0x6c, 0x40, 0xe7, 0x0f, 0xc8, 0x8a, 0x7e, 0xd5, 0x99, 0xf8, 0x88, -0x28, 0xae, 0x87, 0x9c, 0x7c, 0xb8, 0xfe, 0xb5, 0xcd, 0xeb, 0xc0, 0xb7, 0xb0, 0x78, 0x66, 0x5b, -0x19, 0x5f, 0x11, 0x4e, 0x5a, 0x52, 0xbf, 0x10, 0x31, 0xba, 0x68, 0x77, 0x9c, 0x74, 0x0e, 0x98, -0xfd, 0x1e, 0xcb, 0xd1, 0xbe, 0x97, 0x86, 0xe7, 0x54, 0xc5, 0x61, 0x21, 0xe1, 0x5f, 0x1e, 0xaf, -0x8c, 0x6d, 0x8e, 0x80, 0xcd, 0xc7, 0x3c, 0x65, 0xea, 0xfc, 0x6b, 0x03, 0x3d, 0x61, 0xd7, 0x50, -0x4f, 0x48, 0x1b, 0xd8, 0x84, 0x2d, 0x4a, 0xfc, 0xe4, 0x2e, 0x36, 0xfb, 0x3e, 0xbc, 0x0e, 0xaa, -0x46, 0xfe, 0x3a, 0xbc, 0x64, 0xe4, 0xaf, 0x47, 0x68, 0x75, 0xe5, 0x07, 0x27, 0xe9, 0xbc, 0x4c, -0x30, 0x77, 0x31, 0x72, 0xa2, 0xeb, 0x41, 0xcc, 0x34, 0xfe, 0x53, 0xb2, 0x5e, 0xc5, 0x81, 0xcd, -0x7b, 0x36, 0x77, 0x7c, 0x28, 0xcf, 0xf3, 0xdb, 0xa4, 0x92, 0x8a, 0x16, 0xa4, 0x1b, 0xb9, 0xed, -0x3c, 0xfd, 0xd6, 0xd2, 0xe9, 0xe7, 0xdc, 0x36, 0x03, 0xce, 0xf1, 0xce, 0x49, 0x56, 0x13, 0x0e, -0xb0, 0xbc, 0x8e, 0xcb, 0xdf, 0x3e, 0x98, 0xdc, 0x5f, 0x57, 0xf3, 0x15, 0xfe, 0xfe, 0xc0, 0x26, -0x46, 0x85, 0xee, 0x4e, 0x9c, 0x9d, 0xb4, 0xd8, 0xc1, 0xc6, 0x7b, 0x52, 0xbe, 0xf9, 0x8c, 0x9d, -0x60, 0x99, 0x9c, 0xde, 0x44, 0x79, 0x22, 0xdd, 0x8e, 0x04, 0x9d, 0xd8, 0x0a, 0x27, 0xfd, 0x96, -0x8e, 0xef, 0xc5, 0x11, 0x91, 0x53, 0xdf, 0xd7, 0x46, 0xdc, 0x4d, 0x26, 0xe4, 0x4c, 0x3e, 0x0f, -0x4d, 0x9c, 0x2d, 0xeb, 0x9d, 0x19, 0x74, 0x72, 0xd2, 0xec, 0xa3, 0xb6, 0xa7, 0xd3, 0xa6, 0x1d, -0xf5, 0x24, 0xef, 0x2e, 0xeb, 0xb2, 0x21, 0xf7, 0xc4, 0xfa, 0xfe, 0x41, 0xe6, 0x05, 0xc4, 0xa8, -0x29, 0x60, 0x1c, 0x85, 0x9a, 0x6c, 0xc4, 0x89, 0x5a, 0x7b, 0x26, 0x5f, 0x00, 0x42, 0x6d, 0x8c, -0x28, 0xa4, 0x74, 0x1a, 0x55, 0x24, 0x3d, 0x26, 0x0d, 0xd2, 0x84, 0x32, 0x63, 0x66, 0xf2, 0x04, -0xb5, 0x4a, 0x78, 0x1c, 0x66, 0x09, 0x4e, 0xcb, 0xcc, 0x40, 0x4f, 0xfd, 0xbd, 0xc8, 0xcb, 0xf7, -0x04, 0x07, 0xd2, 0xea, 0xf7, 0xdc, 0xe2, 0x91, 0xb1, 0x86, 0xf4, 0x13, 0x98, 0x7a, 0x2b, 0x5c, -0x47, 0x1a, 0x27, 0xc1, 0x33, 0x64, 0xd3, 0x0e, 0xcb, 0x7f, 0x9d, 0x38, 0x8b, 0xea, 0x8b, 0xbd, -0x88, 0x92, 0xba, 0xae, 0x4d, 0xc6, 0xb8, 0xea, 0xcb, 0xf1, 0xe7, 0x16, 0xe2, 0xcf, 0x5f, 0x44, -0xdc, 0x1e, 0xc3, 0x2f, 0x1f, 0x43, 0x9c, 0x3b, 0x4b, 0x2d, 0x6b, 0xe9, 0x84, 0xe2, 0x14, 0xce, -0x31, 0xdb, 0x00, 0x2b, 0x78, 0x57, 0x9a, 0xbd, 0x80, 0x88, 0x7c, 0xe6, 0xdd, 0x4a, 0xbe, 0x26, -0x6f, 0xf9, 0x4e, 0x18, 0x8c, 0xbe, 0x94, 0x3f, 0xcb, 0x71, 0x0f, 0xb3, 0x26, 0x73, 0xde, 0xb7, -0x0b, 0x84, 0x20, 0xce, 0x7a, 0x38, 0x6f, 0x1a, 0xe6, 0x95, 0x83, 0x40, 0xa3, 0x93, 0xce, 0xfd, -0x93, 0x7c, 0x19, 0x03, 0xe6, 0x5d, 0xbe, 0xd1, 0x52, 0xca, 0x7c, 0xcc, 0x27, 0x4f, 0x65, 0xba, -0x51, 0x32, 0xb2, 0x95, 0x93, 0x05, 0xaf, 0xa2, 0x2e, 0xe0, 0x44, 0x13, 0xd2, 0x21, 0xb2, 0xaf, -0xe2, 0xb0, 0x83, 0x77, 0x4d, 0x2f, 0xf8, 0x1f, 0xac, 0xef, 0x2b, 0xb8, 0xb7, 0xff, 0x5e, 0x3b, -0x48, 0xa7, 0xc8, 0x29, 0xb5, 0xc0, 0xbd, 0x7b, 0xee, 0x6d, 0x78, 0x0d, 0xbf, 0xb3, 0x48, 0xdf, -0xa5, 0x4e, 0x73, 0x52, 0x58, 0x79, 0x22, 0xbd, 0xa3, 0xbe, 0x27, 0xc1, 0x12, 0xca, 0x62, 0xb4, -0xf1, 0xee, 0xe4, 0xaa, 0x02, 0xce, 0x7a, 0x98, 0x83, 0x6d, 0x68, 0xec, 0xc6, 0x19, 0x0d, 0xba, -0xe3, 0x3d, 0xba, 0x1e, 0xda, 0xa2, 0x5f, 0x05, 0xf1, 0x30, 0x2b, 0x5d, 0xaf, 0x5d, 0xe3, 0x0d, -0xef, 0x8b, 0x53, 0x7f, 0xd2, 0xaa, 0x40, 0x64, 0xea, 0x31, 0x94, 0x2f, 0xe9, 0xcd, 0x04, 0x92, -0xe5, 0x93, 0x5b, 0xfe, 0xb7, 0x94, 0xd2, 0x3c, 0x01, 0x2a, 0x91, 0x27, 0xac, 0x64, 0x61, 0xef, -0xca, 0x27, 0xba, 0x52, 0xf6, 0x66, 0xda, 0x44, 0x66, 0x15, 0xcb, 0x75, 0x7d, 0x22, 0x5f, 0x3e, -0x29, 0x37, 0x5c, 0x10, 0x45, 0x66, 0xd5, 0xc7, 0x75, 0x4b, 0xca, 0x52, 0x12, 0xcf, 0xce, 0xc0, -0x13, 0x9e, 0xa7, 0x6c, 0xe2, 0xb3, 0x75, 0x38, 0x0b, 0x4a, 0xc7, 0x99, 0x69, 0xd4, 0xa3, 0x2c, -0x3d, 0x8f, 0xf4, 0x34, 0x25, 0x5b, 0xf7, 0x74, 0x2a, 0x8e, 0xbc, 0x91, 0x62, 0x2b, 0xe9, 0x92, -0x6b, 0x8e, 0x8d, 0xd8, 0x0b, 0xab, 0x8e, 0x3e, 0x89, 0xdc, 0x31, 0x10, 0x86, 0x54, 0xb1, 0x5e, -0x90, 0xcf, 0x2f, 0x57, 0xd2, 0x1a, 0x38, 0xd6, 0xce, 0x25, 0x1a, 0xe5, 0x73, 0xf7, 0x3a, 0xac, -0x67, 0x04, 0xdb, 0x1d, 0xe5, 0xff, 0x82, 0x2d, 0xfd, 0x5b, 0xa4, 0x6f, 0x28, 0xbd, 0xda, 0x2d, -0x54, 0xa2, 0xe0, 0x6b, 0xd5, 0x6f, 0xe6, 0x81, 0x74, 0x62, 0xcc, 0x41, 0xe5, 0xa4, 0x73, 0x20, -0x99, 0xd2, 0x18, 0x89, 0x72, 0x6f, 0x0f, 0x2e, 0xa2, 0xd5, 0xe3, 0xbc, 0xb9, 0x98, 0x3a, 0xf0, -0xf8, 0x9b, 0x07, 0xa6, 0xb4, 0xd2, 0x3b, 0x31, 0x7d, 0x3e, 0xd6, 0x93, 0xc2, 0x65, 0x33, 0xf0, -0x8a, 0xe1, 0x4d, 0xc1, 0x34, 0x3b, 0x46, 0xe3, 0x36, 0xc4, 0xa4, 0x74, 0x7a, 0xc9, 0xa7, 0x3d, -0x9b, 0x11, 0xeb, 0x14, 0xa9, 0x13, 0xb9, 0xbc, 0xa2, 0x32, 0x36, 0xbc, 0x49, 0xb2, 0x84, 0xc8, -0xac, 0xe1, 0xd1, 0x39, 0x6d, 0x79, 0x9f, 0x42, 0xdf, 0x9d, 0xdc, 0xa5, 0xe0, 0xe4, 0x5d, 0x0a, -0xc5, 0x35, 0x2e, 0x50, 0x4a, 0x90, 0x4c, 0xff, 0x20, 0xb5, 0x36, 0xcc, 0x49, 0x6b, 0x95, 0xa4, -0x6d, 0xc0, 0xde, 0x15, 0x6f, 0xdf, 0x13, 0xeb, 0x66, 0x73, 0xf9, 0x6b, 0xde, 0x3f, 0x97, 0x96, -0x24, 0xce, 0x20, 0x31, 0x2d, 0x29, 0x83, 0x67, 0x38, 0xa4, 0x63, 0x67, 0xdf, 0xb4, 0x85, 0x48, -0xd5, 0x44, 0x75, 0x54, 0x25, 0x2a, 0xa2, 0x3c, 0xce, 0x10, 0x3a, 0x9a, 0xa7, 0xf5, 0x7a, 0x1d, -0xc0, 0xdc, 0x10, 0x28, 0xb7, 0x34, 0x14, 0xe1, 0x93, 0x36, 0x04, 0xf0, 0x79, 0x83, 0xde, 0x87, -0xe3, 0x49, 0x75, 0x07, 0xbe, 0x6b, 0x82, 0xa0, 0xd2, 0x8a, 0x01, 0x7c, 0xca, 0x0d, 0x81, 0xc2, -0x8f, 0xf7, 0xaf, 0x61, 0x8c, 0x07, 0xef, 0x59, 0x41, 0x50, 0x9e, 0x23, 0x6f, 0xc3, 0xf8, 0xbc, -0x08, 0xc3, 0x1c, 0x0d, 0x59, 0xa4, 0xbb, 0x18, 0x5a, 0x41, 0x9a, 0x8c, 0x18, 0x77, 0x1c, 0x31, -0xf7, 0x14, 0xd3, 0x58, 0x8c, 0x92, 0xf4, 0x8f, 0x23, 0x91, 0x56, 0xd5, 0x6f, 0xc2, 0x98, 0xfd, -0xf8, 0x55, 0x61, 0xba, 0xc6, 0x84, 0x54, 0xa7, 0x75, 0xb3, 0x0f, 0x6e, 0x92, 0xea, 0xc5, 0xde, -0x55, 0xbe, 0xee, 0xa0, 0xca, 0x59, 0xca, 0x01, 0xe3, 0x0b, 0xae, 0x25, 0xae, 0x40, 0x0c, 0x78, -0x9b, 0x41, 0x51, 0x35, 0x32, 0xfe, 0x21, 0xf2, 0xa7, 0xaf, 0x51, 0x8f, 0xdb, 0x5c, 0x7c, 0x3b, -0xd6, 0xb9, 0x19, 0x32, 0xe8, 0x4d, 0x82, 0x24, 0x7f, 0x71, 0xa2, 0x59, 0x86, 0x3c, 0x74, 0x11, -0xa4, 0x3a, 0x05, 0x89, 0x7c, 0x46, 0x26, 0xd3, 0x9e, 0xe9, 0xc7, 0xb2, 0xf6, 0xff, 0x5d, 0x25, -0x5a, 0x71, 0xd5, 0x25, 0x72, 0x5e, 0x55, 0x89, 0xb6, 0x49, 0xba, 0x55, 0xd8, 0x72, 0xf1, 0x20, -0x28, 0x5e, 0x17, 0x41, 0xb1, 0x19, 0x47, 0x06, 0xcf, 0x34, 0x4c, 0x4f, 0x48, 0xeb, 0xdf, 0x37, -0x74, 0x41, 0x38, 0x7e, 0x02, 0x7f, 0xf3, 0xe2, 0xa7, 0x31, 0xfe, 0x6e, 0x4b, 0x2d, 0x95, 0x59, -0xc3, 0x21, 0xce, 0x83, 0x62, 0x39, 0x4a, 0x85, 0x0a, 0xbc, 0xfb, 0x49, 0xe7, 0xe4, 0xcc, 0x54, -0x7c, 0xf2, 0x5c, 0x4f, 0x7b, 0x21, 0x0a, 0xf6, 0xab, 0xbc, 0x9e, 0xac, 0x94, 0xa8, 0xd8, 0xef, -0x14, 0xec, 0x95, 0xaf, 0x37, 0xc8, 0x1a, 0x7f, 0xa2, 0x22, 0x6c, 0x22, 0xdd, 0x5b, 0x93, 0xae, -0xa6, 0x07, 0xf3, 0x23, 0x4f, 0x29, 0xbc, 0x5d, 0x21, 0xe5, 0xb7, 0xf4, 0x0c, 0x78, 0xed, 0x99, -0xf4, 0x7c, 0xf3, 0x21, 0x76, 0xa6, 0x25, 0x87, 0xce, 0xe7, 0x84, 0x73, 0x78, 0x7f, 0x6a, 0x8d, -0xe1, 0x42, 0x7f, 0xc5, 0x19, 0xf8, 0x96, 0xa4, 0x83, 0x7b, 0xf3, 0xa1, 0xfa, 0x3e, 0xf2, 0x9b, -0x84, 0x30, 0x2a, 0xde, 0x57, 0x7e, 0x36, 0x65, 0x1d, 0xed, 0x02, 0xb6, 0x37, 0x37, 0x64, 0xab, -0xcd, 0xc6, 0x32, 0x2a, 0x94, 0x70, 0x0b, 0xe9, 0x70, 0xa2, 0xb8, 0xa0, 0x91, 0xf4, 0x7b, 0xd7, -0x73, 0xef, 0xec, 0xca, 0x3b, 0x00, 0x4a, 0x01, 0xe7, 0x26, 0xbc, 0x14, 0x78, 0x29, 0xab, 0x3e, -0xc4, 0xd6, 0x87, 0xa0, 0xe5, 0x6b, 0x64, 0x01, 0x4e, 0x89, 0xb3, 0x47, 0x91, 0x3d, 0x93, 0xe6, -0xf7, 0xad, 0x61, 0x9a, 0x71, 0x99, 0xbf, 0x2e, 0x1d, 0x3d, 0x21, 0x1c, 0x3b, 0x5b, 0xee, 0x53, -0x06, 0xb3, 0x05, 0x83, 0x60, 0x03, 0x8e, 0xd5, 0x51, 0x81, 0x4f, 0xca, 0xfa, 0x6c, 0xf2, 0x29, -0xac, 0x53, 0x82, 0x32, 0x58, 0x9c, 0x73, 0x80, 0xb5, 0x41, 0x0e, 0x8b, 0xe7, 0x30, 0x2f, 0x1b, -0x68, 0xaf, 0x6f, 0x85, 0xc5, 0x30, 0xcd, 0xa1, 0x7a, 0xcb, 0x7b, 0x3d, 0x52, 0x8f, 0xeb, 0x3d, -0x30, 0x9d, 0xc5, 0xcd, 0xb8, 0xbe, 0x2b, 0x1e, 0x03, 0x83, 0x3a, 0x1b, 0x25, 0x90, 0x6a, 0x66, -0xc3, 0x0d, 0x47, 0x08, 0x5f, 0xad, 0x1f, 0x03, 0x15, 0x96, 0x43, 0xb0, 0x6b, 0x4c, 0x52, 0x39, -0x04, 0x7f, 0xbf, 0x9c, 0x62, 0x2b, 0x54, 0x42, 0x06, 0xc5, 0x79, 0xdb, 0x60, 0xba, 0x1c, 0x3e, -0x13, 0x0c, 0x2c, 0x76, 0xa6, 0x1e, 0xcb, 0xf4, 0x52, 0x36, 0xd3, 0x8b, 0xc4, 0x7a, 0x1d, 0xcd, -0xce, 0x8b, 0x49, 0x2d, 0x1f, 0x88, 0x51, 0xbb, 0x63, 0x09, 0x77, 0xd8, 0x6a, 0x2d, 0x89, 0x59, -0x5c, 0x91, 0x36, 0xe6, 0x95, 0xc9, 0x31, 0x9f, 0x21, 0x61, 0x23, 0x8d, 0x79, 0xe6, 0xad, 0x56, -0x13, 0x54, 0x23, 0x0d, 0x6a, 0x10, 0x8b, 0x04, 0xc1, 0x60, 0x85, 0xc5, 0x82, 0x1b, 0x5b, 0xb1, -0xf2, 0x77, 0xcf, 0x48, 0x27, 0x73, 0x91, 0x4f, 0x76, 0x79, 0xc3, 0x16, 0x79, 0xef, 0x07, 0x69, -0x64, 0x4f, 0x6a, 0x15, 0x66, 0xe8, 0xbe, 0x46, 0x85, 0xc5, 0x65, 0xd7, 0xd9, 0x33, 0xab, 0x46, -0x46, 0xc3, 0xfe, 0x6d, 0x52, 0xfb, 0x4b, 0x3a, 0xa7, 0xde, 0x0e, 0xe2, 0x8a, 0xc2, 0x1a, 0x2a, -0x15, 0x5b, 0x7f, 0x27, 0x5c, 0xbf, 0x1c, 0x06, 0x66, 0xc4, 0xdf, 0x60, 0x67, 0x20, 0x98, 0xa4, -0x88, 0xdc, 0x32, 0xbf, 0x0a, 0x29, 0x8c, 0xfb, 0x83, 0xf8, 0x09, 0xe4, 0x9d, 0x68, 0xc7, 0x42, -0x91, 0xea, 0xf9, 0x9b, 0x04, 0xc8, 0x8b, 0x28, 0x44, 0x85, 0xc0, 0xd1, 0xae, 0x90, 0xc0, 0x5d, -0xe7, 0x86, 0x99, 0x41, 0xb5, 0x33, 0x1f, 0xf4, 0xf8, 0xe6, 0xbe, 0xc9, 0x0d, 0x59, 0x37, 0x12, -0xbf, 0xaf, 0xa9, 0xfe, 0x60, 0x45, 0x69, 0x7c, 0x1f, 0x93, 0x50, 0x98, 0x3f, 0x14, 0xf2, 0x2f, -0xf2, 0xc3, 0x9d, 0x30, 0xfa, 0x7b, 0xbd, 0x6a, 0xde, 0xf4, 0xcd, 0x30, 0xfa, 0xd0, 0x51, 0x7c, -0x3f, 0x0c, 0xa3, 0x0f, 0xcb, 0x9e, 0x64, 0xcb, 0x97, 0xf9, 0x21, 0xe0, 0xbe, 0x0d, 0x56, 0x75, -0x76, 0xcc, 0x6f, 0x5e, 0xd9, 0xd1, 0x48, 0x26, 0xb6, 0x0b, 0x17, 0x14, 0x2c, 0xe2, 0x2d, 0x8e, -0x9b, 0x0a, 0x1c, 0xb2, 0xcf, 0x12, 0x2d, 0xc0, 0x8f, 0x9d, 0x8e, 0x66, 0x82, 0x27, 0xff, 0x29, -0x9c, 0x6c, 0x58, 0x57, 0x7f, 0x5d, 0xd2, 0xc6, 0xee, 0xe8, 0x8f, 0xab, 0x93, 0xcf, 0x8d, 0x50, -0xf9, 0xdd, 0xf8, 0x77, 0xe3, 0x64, 0x87, 0xf7, 0x47, 0x0f, 0x33, 0xf7, 0xb6, 0xa3, 0x3f, 0xfa, -0x17, 0xbc, 0xab, 0xf0, 0xfe, 0x08, 0xf3, 0x09, 0x32, 0xfa, 0xa3, 0x7f, 0x25, 0x4b, 0x74, 0x78, -0xdf, 0x89, 0xbf, 0x53, 0xf0, 0xfe, 0x6f, 0xe4, 0xb5, 0x19, 0xef, 0x3f, 0xc1, 0x58, 0x35, 0xde, -0x1f, 0xc5, 0x7b, 0x06, 0xde, 0x1f, 0x23, 0x9f, 0x5c, 0x78, 0xff, 0x29, 0xbe, 0xcf, 0xc3, 0xfb, -0xcf, 0xf0, 0x7e, 0x0d, 0xde, 0x1f, 0xc7, 0x7b, 0x16, 0xde, 0x7f, 0x8e, 0xf7, 0x6b, 0xf1, 0xfe, -0x24, 0xde, 0x0d, 0x78, 0x7f, 0x0a, 0xef, 0x33, 0xf1, 0xfe, 0x0b, 0xb2, 0x14, 0x86, 0xf7, 0x5f, -0xe2, 0xfd, 0x3a, 0xbc, 0xff, 0x0a, 0xef, 0x39, 0x78, 0xff, 0x35, 0xde, 0xaf, 0xc7, 0xfb, 0xbf, -0xe3, 0x3d, 0x17, 0xef, 0xbf, 0xc1, 0xd2, 0xdd, 0x80, 0xf7, 0x61, 0xbc, 0xe7, 0xe1, 0xfd, 0x59, -0xbc, 0x7f, 0x0d, 0xef, 0xcf, 0xe1, 0x7d, 0x16, 0xde, 0x9f, 0xc7, 0xfb, 0x6c, 0xbc, 0xbf, 0x80, -0x77, 0x1e, 0xef, 0xff, 0x81, 0xf7, 0x39, 0x78, 0x3f, 0x46, 0x72, 0x03, 0xde, 0x5f, 0xc1, 0xfb, -0xd7, 0xf1, 0xfe, 0x1a, 0xde, 0x4d, 0x78, 0xff, 0x2f, 0xbc, 0xcf, 0xc5, 0xfb, 0x1b, 0x78, 0x37, -0xe3, 0xfd, 0x6d, 0xbc, 0xdf, 0x88, 0xf7, 0x53, 0x78, 0xb7, 0xe0, 0xfd, 0xcf, 0x78, 0xcf, 0xc7, -0xfb, 0x19, 0xbc, 0xdb, 0xf0, 0xfe, 0x01, 0xde, 0xe7, 0xe3, 0xfd, 0x1c, 0xed, 0xe2, 0xe1, 0xfd, -0x2f, 0x78, 0xb7, 0xe3, 0xfd, 0x53, 0xbc, 0x3b, 0xf0, 0xfe, 0x05, 0xde, 0x17, 0xe0, 0x7d, 0x0c, -0xef, 0x4e, 0xbc, 0xc7, 0x69, 0xdf, 0x0c, 0x7b, 0x91, 0x6c, 0xb6, 0x15, 0xe2, 0x3d, 0x03, 0xef, -0x8b, 0xf0, 0x8e, 0xa3, 0x1b, 0x8a, 0xf0, 0x3e, 0x0d, 0xef, 0xa5, 0x89, 0x8e, 0x70, 0x0b, 0xe5, -0x9e, 0xba, 0x5a, 0xde, 0xc5, 0xbb, 0x6f, 0xbf, 0x65, 0xa3, 0x63, 0xe3, 0x82, 0x8d, 0xce, 0x8d, -0x0b, 0x37, 0x16, 0x6e, 0x5c, 0xb4, 0xb1, 0x68, 0xe3, 0x4d, 0x1b, 0x8b, 0x37, 0xde, 0xbc, 0xd1, -0xe9, 0xd8, 0xe8, 0x5c, 0xb0, 0x71, 0x01, 0x46, 0xe1, 0xaf, 0x73, 0xe3, 0x82, 0x85, 0x1b, 0x17, -0x14, 0x6e, 0x5c, 0xb0, 0x68, 0xe3, 0x82, 0xa2, 0x8d, 0x0b, 0x6e, 0xda, 0xb8, 0xa0, 0x78, 0xe3, -0x82, 0x9b, 0x37, 0x2e, 0x74, 0x6c, 0x5c, 0xb8, 0x60, 0x63, 0xa1, 0x63, 0x63, 0x21, 0xfe, 0x3a, -0x37, 0x16, 0x2e, 0xdc, 0xb8, 0x08, 0x13, 0x29, 0xdc, 0x58, 0xb8, 0x68, 0xe3, 0x22, 0xc7, 0xc6, -0x45, 0x0b, 0x36, 0x2e, 0x72, 0x6e, 0x5c, 0x84, 0x89, 0x2e, 0xda, 0xe8, 0xe0, 0xd7, 0x2d, 0x5b, -0x0d, 0xe5, 0x2b, 0x3b, 0x56, 0x35, 0xb5, 0x41, 0x6d, 0x53, 0x5b, 0xd3, 0xaa, 0x28, 0x1f, 0x6c, -0x69, 0x6b, 0xea, 0x58, 0xd9, 0xde, 0x04, 0x84, 0x34, 0x49, 0xc4, 0xb9, 0xc2, 0xbf, 0x14, 0x4c, -0x9c, 0xe3, 0x38, 0xf8, 0x1f, 0xfb, 0x97, 0x9e, 0x76, 0x63, 0xe7, 0x9a, 0xa4, 0x6b, 0x91, 0xb4, -0x71, 0x40, 0xcf, 0x6b, 0x3a, 0xdb, 0x9a, 0x12, 0x46, 0xb6, 0x27, 0x58, 0xdc, 0x6e, 0xe9, 0x88, -0xae, 0x6d, 0x89, 0xa6, 0x3b, 0x25, 0x49, 0x4f, 0x65, 0x6d, 0xb4, 0xa5, 0xad, 0x25, 0xfa, 0x9d, -0xe4, 0x7b, 0x4b, 0x47, 0x78, 0x6d, 0x34, 0x69, 0xac, 0x1b, 0xc7, 0xdc, 0x3f, 0xf3, 0x6b, 0x3b, -0x56, 0x77, 0x74, 0x7e, 0xbb, 0x83, 0x5f, 0xb9, 0x8a, 0xd9, 0x6c, 0x27, 0xef, 0x2c, 0x18, 0x5e, -0x02, 0xb7, 0xb9, 0xab, 0xea, 0xa0, 0xbc, 0x7a, 0x59, 0x6d, 0x05, 0xf8, 0x97, 0x49, 0x77, 0xf7, -0xad, 0x75, 0xcb, 0xa0, 0xca, 0xef, 0x2e, 0xaf, 0xab, 0x5a, 0x4e, 0xa1, 0x9e, 0x8a, 0x9a, 0x3a, -0x2f, 0xde, 0x6b, 0xab, 0x6e, 0x67, 0xaf, 0x01, 0xf7, 0x62, 0xbc, 0x09, 0xcb, 0x02, 0x9e, 0x8a, -0x00, 0x32, 0x43, 0xe5, 0x4b, 0x3c, 0x81, 0x65, 0x35, 0x50, 0x5b, 0xb5, 0xb4, 0xa6, 0xba, 0x02, -0x6a, 0x97, 0xba, 0x03, 0x75, 0xe0, 0xae, 0xae, 0x83, 0xdb, 0xaa, 0xfc, 0x9e, 0x65, 0xb7, 0x41, -0x6d, 0x79, 0xa0, 0xa2, 0xc2, 0x0f, 0x73, 0x1b, 0xe7, 0xae, 0x82, 0xf2, 0xce, 0x8e, 0xf2, 0xb6, -0x96, 0x70, 0x41, 0xa4, 0xa9, 0xa3, 0xb1, 0x69, 0xc3, 0xba, 0xce, 0xb5, 0x6b, 0x10, 0xfb, 0x4a, -0x20, 0xb4, 0xb2, 0x31, 0xda, 0xd9, 0xd9, 0x96, 0xaa, 0x4f, 0x28, 0xb2, 0x32, 0xdc, 0xdc, 0xb2, -0x2a, 0x15, 0xb0, 0x72, 0x4d, 0x5b, 0xf2, 0x79, 0xa3, 0xe5, 0xeb, 0xb7, 0x14, 0x90, 0x3d, 0xfc, -0x79, 0xcc, 0x84, 0x17, 0xe2, 0xbf, 0x64, 0x73, 0x3b, 0xf1, 0xef, 0x46, 0xf9, 0x3d, 0x3d, 0xdc, -0x84, 0xf3, 0xf5, 0x94, 0x02, 0x7b, 0xd2, 0x0b, 0xf2, 0xb6, 0x82, 0xd9, 0x92, 0x55, 0xed, 0x52, -0xa3, 0x39, 0x93, 0x6c, 0x98, 0x3d, 0x74, 0x08, 0xa9, 0xd7, 0x13, 0x17, 0x5e, 0xb3, 0x40, 0x30, -0x13, 0x61, 0x4b, 0x41, 0x19, 0x9b, 0x82, 0xd2, 0xfb, 0x11, 0xe4, 0xd7, 0x91, 0xa7, 0xfe, 0xd7, -0x6a, 0xa2, 0xa4, 0xca, 0x17, 0xac, 0xc8, 0xa1, 0x06, 0xc9, 0xaa, 0x43, 0x69, 0x0c, 0xfb, 0x13, -0xe3, 0x07, 0x6b, 0xfa, 0x8c, 0x38, 0xaf, 0xfc, 0x70, 0x38, 0x0a, 0x36, 0x0f, 0x59, 0xa2, 0x23, -0x69, 0x66, 0x02, 0x44, 0x6f, 0x4d, 0xdf, 0x5c, 0xc9, 0xe6, 0x9e, 0x61, 0x6e, 0x05, 0xf3, 0x73, -0x9b, 0x17, 0xce, 0x40, 0x19, 0x30, 0x27, 0x1c, 0xc7, 0x5f, 0x93, 0x51, 0xcb, 0xbe, 0xbb, 0x3d, -0xf9, 0x15, 0xb0, 0xaf, 0x02, 0x72, 0xba, 0x87, 0x2e, 0x9b, 0xae, 0x63, 0x62, 0xba, 0xcc, 0x7e, -0x71, 0x1e, 0x72, 0xe4, 0x5f, 0x9a, 0xf6, 0xf8, 0xa7, 0x98, 0xb6, 0x87, 0x24, 0x99, 0xf1, 0x06, -0xda, 0x41, 0xf7, 0x94, 0x32, 0x1b, 0x59, 0x99, 0x64, 0x23, 0x0b, 0x5b, 0x47, 0x47, 0x56, 0x2d, -0x6d, 0x77, 0x26, 0xac, 0x46, 0x01, 0xc9, 0xc6, 0x2e, 0xde, 0x0a, 0xae, 0xe0, 0xed, 0x28, 0x9d, -0x93, 0xf5, 0x36, 0x4b, 0xca, 0xe6, 0x93, 0xbd, 0x0b, 0xd3, 0xfc, 0x0e, 0xf2, 0x1e, 0x74, 0xef, -0x07, 0x0b, 0x93, 0x10, 0x6c, 0xec, 0x6d, 0x3d, 0x4a, 0x5a, 0x74, 0xdf, 0x00, 0xc5, 0xcc, 0x16, -0x5b, 0x2b, 0xec, 0x80, 0x42, 0xf7, 0x19, 0x58, 0x61, 0x5c, 0x62, 0x6b, 0x35, 0x9e, 0xc1, 0x5c, -0x7e, 0x82, 0x65, 0x2c, 0x65, 0xd2, 0x2b, 0x9d, 0xce, 0x2f, 0xc5, 0x3c, 0x4a, 0x43, 0x1b, 0xf9, -0xc0, 0x1c, 0x17, 0xca, 0xdd, 0x81, 0x39, 0x64, 0xa7, 0xf5, 0x61, 0x30, 0x91, 0x54, 0xf8, 0xd0, -0x89, 0xb0, 0xd2, 0x18, 0x98, 0x24, 0x15, 0x8a, 0x55, 0x52, 0x69, 0x98, 0x75, 0xbe, 0x1f, 0x9e, -0x96, 0xb4, 0xb2, 0x17, 0x9d, 0xf2, 0x3f, 0x08, 0xad, 0x28, 0x12, 0xee, 0x33, 0xfb, 0xbc, 0x54, -0x82, 0x1b, 0x48, 0x33, 0x7b, 0x6e, 0x2b, 0x14, 0x43, 0xd6, 0x22, 0xd2, 0x5c, 0xe0, 0xe7, 0x56, -0x83, 0x2d, 0x4c, 0xf9, 0x59, 0xd2, 0x3c, 0xbe, 0x15, 0xd3, 0x3a, 0x21, 0xdb, 0x11, 0x0e, 0xa1, -0xbc, 0x04, 0x92, 0x5d, 0x2a, 0xe4, 0xee, 0x4a, 0xa5, 0x92, 0xc6, 0xf7, 0x85, 0x37, 0x88, 0xef, -0x26, 0xe4, 0x12, 0x93, 0x1d, 0x72, 0xcc, 0x76, 0xc8, 0xf3, 0xf5, 0x84, 0x0a, 0x8c, 0xc8, 0x93, -0xa6, 0x49, 0x14, 0xe9, 0x6f, 0x66, 0x7b, 0x39, 0x4a, 0x42, 0x02, 0xd9, 0x43, 0x41, 0x39, 0x02, -0x6b, 0xf1, 0xd3, 0xfd, 0x09, 0xdb, 0xea, 0x3c, 0xed, 0x1f, 0x19, 0x98, 0xf5, 0xea, 0x3c, 0x76, -0x92, 0xf5, 0x31, 0x53, 0x2b, 0xd4, 0x50, 0x4b, 0x2c, 0x66, 0x70, 0x62, 0x4e, 0xba, 0x37, 0x7b, -0xb6, 0xf7, 0xa8, 0xf5, 0x3f, 0x60, 0x12, 0x50, 0x9e, 0xca, 0x0a, 0x9e, 0x92, 0xb5, 0xf3, 0x65, -0x4f, 0xc4, 0x6c, 0x2f, 0xe4, 0xd7, 0xc1, 0x02, 0x3e, 0xb0, 0x80, 0x38, 0xc6, 0x3c, 0x3e, 0x50, -0x7e, 0x06, 0xf6, 0xcf, 0xa9, 0x4a, 0xb4, 0x21, 0x22, 0x8b, 0xc9, 0x18, 0x48, 0x49, 0x4a, 0xd8, -0x3a, 0x3c, 0xec, 0x93, 0x7c, 0x06, 0x7f, 0x93, 0xf9, 0x76, 0x4b, 0x5f, 0xc5, 0x20, 0x29, 0x78, -0xdd, 0x8a, 0x57, 0x63, 0x7c, 0x79, 0x32, 0x2c, 0xfd, 0xf9, 0x3e, 0xde, 0x65, 0x6e, 0x06, 0xad, -0x25, 0x1f, 0xf3, 0x41, 0xaa, 0x6f, 0x1c, 0xbf, 0xb4, 0x85, 0xd7, 0x29, 0x07, 0x53, 0x12, 0x3f, -0xb6, 0xf4, 0x7d, 0x13, 0xe5, 0x7d, 0x23, 0x59, 0x91, 0xeb, 0x67, 0xfd, 0xfa, 0x7e, 0x18, 0xd2, -0x7b, 0x95, 0x8d, 0xc3, 0xcf, 0xc3, 0xa9, 0xdd, 0xa1, 0xd7, 0xe6, 0xba, 0x8c, 0x67, 0x28, 0xf4, -0xc7, 0xda, 0x49, 0xa1, 0x9f, 0xb0, 0xd0, 0xec, 0x49, 0xa1, 0x23, 0x29, 0xe9, 0x5f, 0x7a, 0x72, -0x7f, 0xc8, 0xdd, 0xc1, 0x20, 0xcd, 0x98, 0xfe, 0x59, 0x84, 0x78, 0x37, 0x25, 0xd3, 0x5b, 0x57, -0x83, 0xe1, 0xbf, 0xfe, 0xf8, 0x5f, 0x7f, 0x44, 0x0e, 0x6e, 0x66, 0x20, 0x96, 0x2a, 0xc7, 0x85, -0x3a, 0x5a, 0xc9, 0x08, 0xcd, 0xe2, 0x97, 0x62, 0x0c, 0x59, 0x9d, 0xd1, 0x48, 0x9a, 0x2c, 0x8b, -0x4e, 0x11, 0xa4, 0x50, 0xa8, 0x01, 0xe6, 0x73, 0x14, 0xc4, 0x4c, 0x1d, 0x07, 0x25, 0x41, 0xb5, -0xc2, 0x85, 0xfc, 0x78, 0x66, 0x00, 0x6b, 0x92, 0x05, 0x59, 0x85, 0x39, 0x10, 0x3c, 0x1d, 0x8e, -0x3b, 0x5c, 0xe1, 0xf8, 0x50, 0x6f, 0x48, 0xe3, 0x3e, 0xdf, 0xcb, 0x99, 0x34, 0xa2, 0xc2, 0xa4, -0x9b, 0xb4, 0x56, 0xe4, 0xc1, 0x91, 0x50, 0x33, 0xd7, 0x0b, 0xf5, 0x48, 0x0f, 0xea, 0xb0, 0xc7, -0xea, 0xe6, 0x56, 0x41, 0x4d, 0xd8, 0x33, 0xb9, 0x3d, 0x11, 0xb2, 0x10, 0x25, 0xbd, 0xd3, 0xbc, -0xeb, 0x1a, 0xb2, 0x63, 0x4c, 0x2b, 0xbf, 0x85, 0x82, 0x05, 0x32, 0xad, 0x78, 0x4f, 0x5f, 0x6d, -0xba, 0xc1, 0x05, 0x33, 0x28, 0x6e, 0x4e, 0x2b, 0x78, 0xd8, 0x8e, 0x55, 0x61, 0xf9, 0x69, 0x30, -0x20, 0x16, 0xe4, 0x91, 0x5f, 0x77, 0x7c, 0xce, 0xc1, 0x67, 0x03, 0x8e, 0xb0, 0xc2, 0x88, 0xf1, -0x58, 0x6c, 0xae, 0x1b, 0x8a, 0xe5, 0x14, 0x69, 0x25, 0xaa, 0x58, 0x4e, 0xb1, 0xf8, 0x12, 0x29, -0x16, 0x27, 0x53, 0x2c, 0xbe, 0x64, 0x8a, 0x54, 0x8e, 0xb4, 0xb5, 0x41, 0x53, 0x2c, 0x54, 0xb2, -0x04, 0xc7, 0x38, 0x8d, 0x3d, 0x36, 0x2e, 0xcf, 0xda, 0xa7, 0x4b, 0x6d, 0x67, 0x9f, 0x9e, 0xf0, -0xa8, 0x38, 0xa0, 0x96, 0x6d, 0x7d, 0xeb, 0x99, 0x8f, 0xdd, 0x5f, 0x07, 0x35, 0xec, 0xec, 0xe6, -0xd6, 0xfa, 0x3e, 0xde, 0xf3, 0xd2, 0x21, 0xdf, 0x50, 0x6f, 0x5e, 0x48, 0x8d, 0x58, 0xaa, 0x87, -0x7d, 0xb2, 0xcf, 0x51, 0x1d, 0xd9, 0xf2, 0x25, 0xfb, 0xc4, 0xf6, 0x69, 0x55, 0x6c, 0x7c, 0x48, -0x3e, 0xc6, 0xa3, 0x40, 0x16, 0x04, 0xff, 0x55, 0x43, 0x5e, 0x4e, 0x9f, 0x7a, 0x98, 0x95, 0x84, -0xad, 0x16, 0x44, 0x38, 0x1b, 0xf7, 0xf6, 0x13, 0xf8, 0x7e, 0x1f, 0xbd, 0x59, 0xb9, 0xb7, 0x7f, -0xce, 0x67, 0xc4, 0xee, 0x36, 0xbb, 0x90, 0xbe, 0x91, 0xf6, 0xd6, 0x3c, 0x58, 0xfd, 0xf6, 0xcf, -0xf8, 0x69, 0xb1, 0xee, 0xd4, 0x6a, 0xc1, 0x91, 0x58, 0x28, 0x1b, 0x47, 0x73, 0x16, 0xdb, 0x6f, -0xc0, 0x16, 0xa7, 0x95, 0x8b, 0x28, 0x12, 0x35, 0xb0, 0xbd, 0x80, 0xd8, 0xac, 0x1c, 0xa2, 0xb4, -0x53, 0x63, 0x40, 0xd1, 0x1a, 0x7f, 0x13, 0xf6, 0x91, 0x05, 0x27, 0x56, 0x26, 0xb6, 0x42, 0x3b, -0x7a, 0x8a, 0x59, 0x22, 0x0a, 0x90, 0x35, 0x94, 0x45, 0x5e, 0x78, 0x4c, 0x68, 0x85, 0x47, 0x1d, -0xde, 0xf2, 0x4f, 0x7a, 0x41, 0x98, 0x07, 0xfb, 0xd9, 0x0e, 0xe6, 0xaf, 0x83, 0xb9, 0x62, 0xc9, -0xe2, 0x4f, 0x72, 0xa0, 0xfc, 0x13, 0x80, 0x6b, 0x57, 0xc3, 0x7e, 0xee, 0x40, 0xc0, 0xb5, 0xc8, -0x05, 0x83, 0x81, 0x6e, 0x51, 0x11, 0xa1, 0xf5, 0xe2, 0xc1, 0xa7, 0x9e, 0xe9, 0x24, 0xbb, 0xfc, -0xf1, 0xce, 0xd7, 0x30, 0x7c, 0x00, 0xaf, 0x5d, 0x28, 0x63, 0x2e, 0x26, 0xab, 0x2a, 0xa2, 0x5e, -0x6a, 0xbb, 0xdd, 0x6a, 0x3a, 0x29, 0x88, 0xb2, 0x7e, 0x97, 0x5d, 0x6b, 0xf4, 0xf8, 0x7f, 0x40, -0xeb, 0x86, 0x22, 0x28, 0x33, 0xa5, 0x71, 0x29, 0x3c, 0xce, 0xac, 0x7e, 0x68, 0x68, 0xbf, 0x55, -0xf9, 0x61, 0x47, 0x35, 0xbb, 0x9f, 0x6d, 0x03, 0x78, 0x2c, 0x12, 0xd8, 0x4d, 0x6b, 0x6c, 0x8e, -0xf6, 0x9c, 0xac, 0x52, 0x30, 0xb0, 0xe7, 0x37, 0xf0, 0xe9, 0x7a, 0xda, 0x45, 0x56, 0xec, 0x46, -0xa9, 0xb4, 0x8e, 0xc1, 0x9e, 0xc4, 0xf0, 0x36, 0xf6, 0xf4, 0x0e, 0x3e, 0x0d, 0x44, 0x6e, 0x63, -0xf1, 0x5b, 0x51, 0x0a, 0x64, 0x7b, 0xb8, 0x2a, 0x45, 0xc8, 0xd1, 0x91, 0xc3, 0xe2, 0x3f, 0x42, -0xac, 0x1c, 0x64, 0x4f, 0xe7, 0xc8, 0xcf, 0x34, 0x79, 0x95, 0x66, 0x10, 0xca, 0x10, 0x28, 0x54, -0xec, 0x49, 0x8d, 0xe1, 0xf5, 0xa2, 0x1f, 0x25, 0x8b, 0x9c, 0x97, 0x9f, 0x7f, 0xf9, 0xf9, 0xbd, -0x3f, 0x03, 0x5d, 0x50, 0xfd, 0xcb, 0xf7, 0x40, 0xc5, 0xf4, 0xad, 0xfe, 0x28, 0xfa, 0x6b, 0x5b, -0x61, 0x6f, 0xd8, 0x90, 0xf2, 0xd5, 0xc0, 0xe3, 0x78, 0x7c, 0xe9, 0xf0, 0x4b, 0x87, 0x99, 0x25, -0x35, 0xd5, 0x1c, 0x1f, 0x98, 0x02, 0x08, 0x41, 0x5e, 0x3a, 0xd9, 0x89, 0x0f, 0x2f, 0x96, 0xe2, -0x4c, 0xd8, 0x30, 0x71, 0x84, 0xc4, 0x4b, 0x70, 0x26, 0x20, 0x1b, 0xad, 0x21, 0xe1, 0xa7, 0x18, -0xff, 0x06, 0xfb, 0xc2, 0x35, 0xa7, 0x1c, 0x74, 0xf8, 0xbd, 0xea, 0x54, 0x2f, 0x4a, 0xfe, 0xc0, -0xed, 0xc3, 0xb6, 0xdd, 0x5b, 0x4b, 0x6d, 0xbd, 0xb7, 0x03, 0xb8, 0xc7, 0xd8, 0x99, 0xd0, 0x5f, -0x63, 0xbf, 0x96, 0x52, 0xdf, 0x19, 0x2b, 0xfc, 0x3f, 0xc0, 0xf8, 0x7d, 0x0a, 0xd7, 0x85, 0x71, -0x70, 0x29, 0x00, 0xa1, 0xf6, 0xd5, 0xb0, 0x56, 0xe5, 0xba, 0x7c, 0x83, 0x50, 0x1a, 0x64, 0xde, -0x45, 0x3f, 0x3f, 0x4f, 0x9e, 0x2f, 0x82, 0xdb, 0x53, 0xa5, 0x91, 0xac, 0x4f, 0xd2, 0xa9, 0x1e, -0x63, 0xa5, 0xff, 0x07, 0x08, 0x1d, 0x64, 0xd0, 0x99, 0x0c, 0xfa, 0x39, 0x06, 0x0d, 0xf1, 0xe6, -0x4b, 0xc1, 0x53, 0x3f, 0x0e, 0x0d, 0xd0, 0xda, 0x8a, 0xef, 0x71, 0x30, 0x84, 0x8a, 0x28, 0x77, -0x0d, 0xd6, 0x26, 0xc8, 0xe3, 0x64, 0xae, 0xa7, 0xfc, 0x31, 0x64, 0x97, 0x8c, 0x01, 0x83, 0x98, -0xfe, 0x62, 0xea, 0x67, 0x94, 0x38, 0xcf, 0x26, 0xe2, 0xf1, 0xf9, 0x2d, 0xc4, 0xc2, 0x8f, 0xd8, -0xd3, 0xab, 0x46, 0x2b, 0x78, 0xb1, 0xd7, 0x73, 0x42, 0x34, 0xab, 0x79, 0xed, 0x1c, 0x86, 0x1d, -0x4b, 0x2b, 0x4b, 0x89, 0x54, 0x96, 0xf1, 0x13, 0xbe, 0x56, 0xd8, 0xd5, 0xa9, 0x93, 0xc6, 0x11, -0x61, 0xb8, 0xe8, 0x37, 0xe5, 0xb3, 0x11, 0xdc, 0xbf, 0x80, 0xad, 0xad, 0xd9, 0xf0, 0x09, 0xf9, -0x9e, 0x19, 0x82, 0x4b, 0x5a, 0x49, 0xf8, 0x87, 0x53, 0x35, 0x7d, 0xf3, 0x5d, 0xc0, 0x4f, 0x0e, -0x2f, 0xf3, 0xb0, 0x70, 0xd3, 0x84, 0xd9, 0xce, 0x69, 0x9a, 0x26, 0xd5, 0x90, 0x95, 0xb4, 0x1f, -0x7b, 0xc3, 0x65, 0xc3, 0xfe, 0xfc, 0xef, 0x17, 0xff, 0xfb, 0x45, 0xf9, 0xbc, 0x6f, 0x66, 0x4a, -0x1b, 0x90, 0x2f, 0x25, 0x29, 0x50, 0x1a, 0x15, 0x21, 0x35, 0x5f, 0x4a, 0xf2, 0x20, 0xa6, 0x98, -0x33, 0x1f, 0x67, 0x5c, 0xc8, 0x9b, 0x1f, 0xa0, 0x53, 0x55, 0xc9, 0x52, 0x0a, 0xf8, 0xfd, 0x4b, -0xf2, 0xfb, 0x83, 0x8c, 0x5b, 0x70, 0x48, 0x2b, 0xa6, 0x3f, 0x5e, 0x28, 0xad, 0x73, 0x52, 0xbc, -0x74, 0x02, 0x8b, 0xad, 0xe7, 0x67, 0xd1, 0x3a, 0xfa, 0x4f, 0x47, 0x68, 0xd5, 0xe1, 0x91, 0x83, -0xe4, 0xfb, 0xf8, 0xd7, 0x85, 0xe9, 0x33, 0x18, 0xcd, 0x4f, 0xa3, 0xc7, 0x45, 0x18, 0x7b, 0x31, -0x6d, 0x56, 0xe4, 0xd3, 0x9e, 0x49, 0x43, 0xa1, 0x9f, 0xed, 0x13, 0xe5, 0xa4, 0xad, 0x8e, 0xa6, -0xd5, 0xf5, 0x42, 0x1b, 0xd1, 0x96, 0xd4, 0x0a, 0xa9, 0xcf, 0x0a, 0xbf, 0x6e, 0xd3, 0xa5, 0xa5, -0x40, 0xd0, 0xa5, 0xcc, 0x26, 0x92, 0x26, 0xc1, 0x3f, 0xf0, 0x81, 0xd4, 0xd7, 0x32, 0x55, 0x43, -0x5a, 0x5c, 0x35, 0xf2, 0xe9, 0x16, 0xff, 0x36, 0xa4, 0xca, 0x3b, 0x6a, 0xfa, 0x42, 0xb2, 0x2e, -0x88, 0xb4, 0x6e, 0x8a, 0x61, 0xdb, 0x42, 0x99, 0xc9, 0x90, 0xfd, 0x9f, 0x36, 0x20, 0xcf, 0xd6, -0x6a, 0x3c, 0xc9, 0xca, 0xa5, 0xa7, 0xb9, 0xd7, 0x05, 0xa9, 0x91, 0x83, 0x31, 0x67, 0x52, 0xf6, -0x66, 0xf1, 0xed, 0x93, 0x09, 0x6f, 0x1f, 0x4e, 0xd4, 0x89, 0x60, 0x61, 0x9f, 0x4e, 0x0e, 0x4b, -0xf8, 0x77, 0xf6, 0xef, 0xff, 0x2b, 0xf2, 0x87, 0xcc, 0x16, 0x95, 0x4e, 0xe6, 0xf3, 0x90, 0xe2, -0xd6, 0x30, 0x0f, 0xc8, 0x5d, 0x63, 0xe4, 0x57, 0x23, 0x0a, 0x3f, 0xfc, 0x83, 0x44, 0xf5, 0x3e, -0x2b, 0xaa, 0xe9, 0x93, 0xf9, 0x0f, 0x18, 0x47, 0x2a, 0x32, 0xfe, 0x1c, 0xf1, 0x91, 0xbc, 0x6c, -0x1f, 0x9a, 0x6c, 0xad, 0x22, 0x3f, 0x69, 0xa0, 0xd5, 0x04, 0x89, 0xd7, 0x96, 0xf8, 0x1e, 0x13, -0xf6, 0xbb, 0x39, 0x70, 0xa3, 0x0f, 0xb4, 0xe9, 0x73, 0x62, 0x64, 0x05, 0x9b, 0x97, 0x54, 0x6c, -0x85, 0x57, 0xc7, 0x0b, 0x69, 0xdc, 0xd9, 0x56, 0x89, 0xe3, 0xa1, 0xf5, 0xd5, 0x39, 0x98, 0x2e, -0xe8, 0xc5, 0x3d, 0xc4, 0xb7, 0x90, 0xad, 0x4b, 0xd2, 0x4c, 0xb5, 0xda, 0xa1, 0xd0, 0x54, 0x21, -0xb8, 0x7f, 0x70, 0x78, 0x3d, 0x47, 0x6b, 0xd0, 0x25, 0x31, 0xea, 0xf5, 0x9f, 0xee, 0x34, 0x56, -0x04, 0xee, 0xd2, 0x5f, 0xaf, 0x03, 0xb8, 0xb9, 0x01, 0x94, 0x65, 0x78, 0x77, 0x34, 0xd2, 0x7a, -0x69, 0x01, 0x3e, 0xd9, 0x83, 0xa0, 0xb4, 0x09, 0x8b, 0x45, 0x93, 0xce, 0x03, 0xaa, 0x0e, 0x50, -0x3a, 0xcb, 0xcf, 0xf5, 0xc2, 0xcb, 0xcf, 0xbb, 0x3f, 0xee, 0x85, 0x97, 0x0e, 0x4b, 0xeb, 0x3c, -0xee, 0x73, 0x9a, 0xa3, 0x48, 0x59, 0x73, 0x36, 0x72, 0x3e, 0x37, 0xd2, 0xb4, 0x0f, 0x6d, 0x15, -0xff, 0x72, 0xa4, 0x28, 0xb3, 0xb6, 0xdc, 0xa1, 0xaa, 0x75, 0x21, 0x8d, 0x56, 0x35, 0x74, 0x49, -0xfb, 0x8c, 0x69, 0x16, 0x76, 0xb4, 0x38, 0xce, 0x73, 0x90, 0xbb, 0xb2, 0x14, 0xf5, 0x22, 0x3d, -0x3c, 0x70, 0x93, 0x17, 0x14, 0x78, 0xdf, 0x83, 0x77, 0x15, 0xde, 0x77, 0xe1, 0x5d, 0x8d, 0xf7, -0x47, 0xc3, 0xe0, 0x50, 0x22, 0xbf, 0x91, 0x36, 0xcb, 0xe7, 0xbb, 0x60, 0x9b, 0x64, 0x65, 0x93, -0xf9, 0x92, 0xe8, 0x91, 0xfb, 0x82, 0xbc, 0xc8, 0x6b, 0x99, 0x47, 0xf0, 0x76, 0xd8, 0x26, 0x38, -0x8a, 0xe1, 0x46, 0xbc, 0x43, 0x2e, 0xa6, 0xb1, 0x22, 0x0a, 0x85, 0x4a, 0xc9, 0x1a, 0xde, 0x8f, -0xbf, 0x99, 0xf2, 0xb5, 0x1b, 0xd4, 0x42, 0x3b, 0x68, 0x88, 0x2a, 0x28, 0xca, 0xe4, 0xd8, 0xe5, -0x69, 0xb1, 0x3a, 0x94, 0x0e, 0x34, 0xdd, 0x8f, 0x43, 0x26, 0xc6, 0xcf, 0x92, 0xe3, 0x57, 0xa4, -0xc5, 0xab, 0x22, 0x9f, 0x89, 0xad, 0x72, 0x78, 0xe3, 0xa4, 0x54, 0x19, 0xd5, 0xe1, 0x4e, 0xcb, -0xb1, 0x2d, 0xe9, 0xb1, 0x8a, 0xd5, 0x1f, 0xc5, 0xb1, 0x4f, 0x80, 0x3b, 0x22, 0xc7, 0x46, 0xd2, -0xd3, 0x0c, 0x8f, 0x8a, 0x85, 0x72, 0xf8, 0x86, 0xf4, 0xaf, 0x22, 0xe3, 0xcf, 0xb2, 0x92, 0x70, -0xdb, 0xe4, 0xd8, 0xee, 0xf4, 0xd8, 0xf0, 0x85, 0x67, 0xa4, 0xd8, 0x75, 0x72, 0x6c, 0xef, 0x84, -0xf2, 0xac, 0x26, 0x4b, 0x92, 0x18, 0x5b, 0x2f, 0xc7, 0xfe, 0x20, 0x2d, 0xd6, 0x80, 0xb4, 0x30, -0x13, 0x5c, 0x1c, 0x44, 0xc6, 0x0e, 0xc6, 0x6e, 0x74, 0xb3, 0x54, 0x1c, 0x32, 0xdc, 0x43, 0x69, -0x7e, 0x89, 0x81, 0xcb, 0x95, 0x43, 0xff, 0x6d, 0x42, 0xa8, 0x4a, 0x0e, 0xfd, 0x69, 0x7a, 0x28, -0x7c, 0xc8, 0xf4, 0x28, 0x29, 0xfc, 0xf1, 0xb4, 0xbc, 0x00, 0x7a, 0x74, 0x56, 0x70, 0x80, 0x3a, -0xa8, 0xd7, 0x5b, 0xd9, 0x0a, 0xed, 0xfa, 0x10, 0xad, 0xd3, 0xd7, 0x87, 0xb4, 0x2b, 0xb6, 0x44, -0x20, 0x0c, 0x77, 0xfa, 0x45, 0x6f, 0xcd, 0x16, 0xec, 0x71, 0xdf, 0x9d, 0xde, 0xa3, 0x2f, 0x8a, -0xb9, 0xef, 0xf5, 0x66, 0x29, 0xd4, 0x5c, 0xfc, 0x28, 0x72, 0x8e, 0x53, 0x57, 0x69, 0xb3, 0x14, -0x0a, 0x2e, 0xfe, 0x26, 0xbe, 0x3f, 0x1f, 0xe3, 0x9c, 0x9a, 0xad, 0x3e, 0x9f, 0xbb, 0xd3, 0x6a, -0xc8, 0x0d, 0xbe, 0x2e, 0x9a, 0x68, 0x77, 0x15, 0xe7, 0xc2, 0x61, 0xf7, 0xb9, 0xde, 0xa3, 0xde, -0x1e, 0xf7, 0x39, 0x1e, 0x78, 0x4d, 0x61, 0xe6, 0x36, 0xb7, 0x4f, 0xe8, 0xd4, 0x18, 0x72, 0x03, -0xdd, 0x3e, 0x45, 0xf0, 0x04, 0x62, 0x8d, 0x4b, 0xac, 0x4b, 0x96, 0x6b, 0x77, 0x5a, 0xb9, 0xca, -0x24, 0x6c, 0xe2, 0x95, 0xff, 0x34, 0x19, 0xcf, 0x76, 0x84, 0x8c, 0x12, 0x76, 0xf1, 0xe5, 0xde, -0xe6, 0xf8, 0x08, 0x52, 0xd2, 0x56, 0x50, 0xd3, 0x0c, 0x86, 0x38, 0xb6, 0x43, 0x70, 0x58, 0x46, -0xd8, 0xaa, 0xec, 0xe2, 0x60, 0x76, 0xc0, 0x23, 0x8d, 0x29, 0xa4, 0x94, 0xfb, 0xd8, 0x28, 0xd1, -0x09, 0x2e, 0xd9, 0xc7, 0xc1, 0x98, 0x7f, 0x6d, 0x04, 0x67, 0x99, 0xb1, 0x9d, 0x92, 0xcc, 0xb8, -0x90, 0xc9, 0x55, 0x5f, 0xa7, 0x91, 0x69, 0xfb, 0x3a, 0x59, 0x71, 0xb3, 0xd4, 0xdf, 0x93, 0x92, -0xac, 0x6c, 0x92, 0x56, 0xd3, 0xe7, 0x76, 0x85, 0x71, 0x3e, 0xe8, 0x0c, 0x9c, 0x7e, 0x3e, 0x5c, -0x1b, 0x0a, 0xdc, 0xd0, 0x15, 0xff, 0x71, 0x7c, 0x84, 0x69, 0x97, 0x6a, 0x6e, 0x70, 0xc7, 0x47, -0xc3, 0x0a, 0xd1, 0x86, 0xfc, 0xb3, 0xc2, 0x9e, 0xb4, 0x62, 0xc0, 0xea, 0xf4, 0x6b, 0x6f, 0x7b, -0x7c, 0x94, 0xa8, 0xbc, 0xf3, 0x2d, 0x7c, 0x1a, 0x49, 0xae, 0x69, 0x1b, 0x98, 0x0e, 0xf6, 0x88, -0x7d, 0x3e, 0xf3, 0xf6, 0xb3, 0x81, 0x79, 0x0b, 0x98, 0x1f, 0x3f, 0x9f, 0xd0, 0x93, 0x60, 0xa9, -0x8f, 0xf9, 0xda, 0x21, 0x33, 0xa8, 0x63, 0x16, 0x36, 0x2e, 0x38, 0x50, 0x36, 0x12, 0x55, 0xf8, -0xcb, 0xdd, 0x70, 0x00, 0xf8, 0xde, 0x31, 0xfc, 0x0d, 0xf7, 0x5e, 0xa0, 0x95, 0x7e, 0xb6, 0x9e, -0x2f, 0xa5, 0xe3, 0x64, 0x16, 0x9d, 0xd3, 0xd3, 0x18, 0xc7, 0xaf, 0x6b, 0xe2, 0x71, 0xa6, 0x6f, -0x49, 0x3a, 0xdf, 0x12, 0x9c, 0xf6, 0x92, 0x70, 0x4b, 0x26, 0xc3, 0x8d, 0x9f, 0xbc, 0x24, 0x9c, -0xef, 0x22, 0xb8, 0xfd, 0x09, 0x38, 0xef, 0x9f, 0x8b, 0x49, 0xcb, 0x8f, 0x69, 0x83, 0x23, 0x0f, -0xf0, 0xd8, 0x10, 0x72, 0x91, 0x1d, 0x38, 0xdb, 0x18, 0x4f, 0xb2, 0xd9, 0xa4, 0xc1, 0x61, 0x35, -0xbe, 0x51, 0xdc, 0x6a, 0x7c, 0x6b, 0xa8, 0xba, 0x6d, 0x79, 0x71, 0xf5, 0x8e, 0xe1, 0x7d, 0x63, -0x10, 0x5f, 0xa5, 0x2a, 0xee, 0xe2, 0x80, 0xf8, 0xcd, 0x04, 0xb7, 0x8c, 0x3d, 0xba, 0xdf, 0x1b, -0x26, 0x49, 0x7f, 0x24, 0xba, 0xa8, 0x1a, 0x1e, 0xa3, 0xaf, 0x8e, 0x56, 0x2f, 0x72, 0x19, 0x25, -0x5b, 0x78, 0xf8, 0x7d, 0x7b, 0x0e, 0xcd, 0x25, 0x93, 0x67, 0x11, 0x61, 0xd0, 0x78, 0xb2, 0xd0, -0x0a, 0x8f, 0xee, 0x69, 0x85, 0xc7, 0xda, 0x80, 0x53, 0xbb, 0x3f, 0xe1, 0xd9, 0x49, 0xb4, 0x80, -0xb0, 0x48, 0x80, 0x47, 0x75, 0x64, 0x43, 0x77, 0x43, 0x83, 0x85, 0xf6, 0x9a, 0x42, 0x2b, 0x1a, -0x32, 0xb3, 0xe0, 0x36, 0x0e, 0xb1, 0x58, 0xd9, 0x80, 0x1c, 0x88, 0x48, 0x56, 0x31, 0xa6, 0x86, -0x0a, 0x69, 0x5f, 0x0a, 0xc7, 0xc4, 0x73, 0xc8, 0x01, 0xbc, 0x80, 0xcf, 0x79, 0xa1, 0x70, 0x03, -0x8d, 0x86, 0xe9, 0x21, 0x1f, 0xfe, 0xe6, 0x60, 0xcc, 0x2e, 0xf1, 0x76, 0x7c, 0xfa, 0x6e, 0x08, -0xa9, 0x71, 0xfc, 0xc7, 0xf8, 0xfe, 0xb0, 0xb8, 0x3e, 0x3c, 0x03, 0xa1, 0x77, 0x92, 0x0c, 0xa5, -0x46, 0xce, 0x9b, 0x76, 0x51, 0x71, 0xce, 0x7c, 0x17, 0xcb, 0xf3, 0x6a, 0x44, 0x39, 0xdc, 0x4d, -0x9a, 0x17, 0x18, 0xae, 0x15, 0xbb, 0xb2, 0x0f, 0x80, 0x2e, 0xdc, 0x24, 0x46, 0xc3, 0xd3, 0xc5, -0xf0, 0x25, 0x20, 0x74, 0xe2, 0xed, 0x61, 0xab, 0xb8, 0x3c, 0xfc, 0x0d, 0x31, 0x50, 0x94, 0x0f, -0x2a, 0x47, 0x39, 0x4a, 0x6d, 0x2a, 0xf9, 0x1c, 0x0e, 0xa3, 0x7d, 0x8e, 0x7c, 0x50, 0xbf, 0x2a, -0x2c, 0x2a, 0x87, 0x47, 0x45, 0x47, 0xcd, 0xbd, 0x62, 0x36, 0x49, 0xda, 0x3b, 0xf2, 0x1c, 0x82, -0xfb, 0x34, 0xec, 0xb7, 0x68, 0x5f, 0xeb, 0x65, 0x33, 0xc7, 0x71, 0xfe, 0xda, 0xe0, 0x30, 0xed, -0x6a, 0x8a, 0xba, 0xec, 0x58, 0xb8, 0x51, 0x54, 0x33, 0x9c, 0xcf, 0xac, 0x7e, 0x73, 0x45, 0x9a, -0x4d, 0x5e, 0x07, 0xf2, 0x51, 0x6e, 0xe2, 0xec, 0x2d, 0xdc, 0x81, 0x22, 0x2b, 0x0c, 0xb8, 0x3f, -0x71, 0x80, 0x0f, 0x9f, 0x91, 0x4a, 0x6c, 0xc1, 0xf6, 0x1b, 0x0a, 0x95, 0x60, 0xdf, 0xed, 0xae, -0x75, 0xb5, 0xaa, 0x1c, 0x8a, 0x5a, 0x97, 0x77, 0xd8, 0x08, 0x6f, 0xdf, 0x73, 0xb4, 0x9b, 0x2c, -0xa8, 0x2b, 0x9e, 0xf6, 0x46, 0x34, 0xe0, 0x28, 0x77, 0x9f, 0xe6, 0x0e, 0xb0, 0xbd, 0x50, 0xc2, -0xe7, 0x7e, 0x66, 0xf9, 0xdf, 0x8b, 0x02, 0xe5, 0xec, 0x0e, 0x35, 0x6b, 0xeb, 0xa1, 0x14, 0x04, -0xa5, 0x74, 0x71, 0x0a, 0xec, 0xbb, 0x21, 0x8a, 0x63, 0x12, 0xc4, 0xee, 0x9a, 0x3e, 0x9c, 0x91, -0x66, 0x77, 0xaa, 0x10, 0x0b, 0x76, 0x2f, 0xc2, 0x0b, 0xf6, 0x24, 0x6c, 0xf6, 0x4a, 0x9a, 0xd0, -0xc8, 0x30, 0xcd, 0x72, 0x52, 0xc9, 0x80, 0x6b, 0xa4, 0xb9, 0x2b, 0x14, 0xec, 0x20, 0xef, 0x60, -0x4a, 0xb2, 0xc9, 0x2b, 0x1a, 0xf1, 0x69, 0x4a, 0x88, 0xde, 0x35, 0xf8, 0xbe, 0x5d, 0xd4, 0x60, -0x2a, 0x7b, 0x68, 0x07, 0xa6, 0xd6, 0xbd, 0xc8, 0xcd, 0x9e, 0x7a, 0x30, 0xa7, 0x3d, 0x3a, 0x57, -0x3c, 0x1e, 0x32, 0x31, 0x2e, 0x7a, 0x4f, 0x9b, 0x4e, 0xe7, 0x06, 0x3e, 0xa8, 0x5e, 0xd4, 0x05, -0xb3, 0x61, 0x0f, 0x95, 0x03, 0x31, 0x75, 0x0f, 0xbd, 0xc7, 0xe3, 0x08, 0xd9, 0x4a, 0xbf, 0xb7, -0x3d, 0x2b, 0x0a, 0xd8, 0x1a, 0x52, 0xac, 0x10, 0xb2, 0xe9, 0x84, 0x78, 0x3c, 0xa8, 0x65, 0xdf, -0xa9, 0x28, 0x0d, 0x6c, 0xc5, 0x3d, 0xbc, 0x26, 0x10, 0x53, 0xc4, 0xb0, 0x5a, 0xb3, 0xdb, 0x34, -0xb5, 0xb1, 0xc8, 0x5b, 0xb1, 0xee, 0x40, 0x8c, 0xc5, 0xc9, 0x29, 0xde, 0xf6, 0xac, 0x77, 0x93, -0xa7, 0x5c, 0x54, 0x08, 0xe5, 0x58, 0xfa, 0x41, 0x0c, 0x1d, 0x18, 0x72, 0xb7, 0xe5, 0x6c, 0x65, -0x16, 0xea, 0x91, 0x46, 0x90, 0x85, 0x35, 0x0f, 0x93, 0xbe, 0x76, 0x52, 0x2f, 0x33, 0x2d, 0xe5, -0x0e, 0xcc, 0x73, 0x00, 0xdb, 0x70, 0x17, 0x5e, 0x83, 0xc8, 0xf9, 0x96, 0x07, 0xc3, 0x54, 0x7a, -0xef, 0xb0, 0x19, 0xde, 0xbe, 0xf7, 0xd5, 0x98, 0x7a, 0x13, 0xb5, 0xe1, 0xab, 0x5b, 0x24, 0xff, -0x03, 0xb4, 0xf3, 0x55, 0x0c, 0x4e, 0x97, 0x03, 0x47, 0x50, 0xff, 0xc1, 0xa7, 0x9e, 0x6f, 0x53, -0x17, 0x97, 0x72, 0x48, 0x06, 0x7d, 0x9e, 0xce, 0x92, 0x22, 0x8f, 0x3c, 0x9e, 0xa6, 0x11, 0x8e, -0x48, 0xbd, 0x81, 0x5f, 0xed, 0xff, 0x8c, 0xff, 0x3f, 0xd8, 0xff, 0x78, 0x0d, 0x62, 0x4c, 0x2b, -0xf6, 0x7e, 0x22, 0x8e, 0xac, 0xef, 0x9c, 0x23, 0x4d, 0x7e, 0xa6, 0x1f, 0x4d, 0x6d, 0xef, 0x64, -0xa7, 0x3b, 0x70, 0x3c, 0x5b, 0x90, 0x3b, 0x37, 0xd1, 0x9a, 0x49, 0x2b, 0xbe, 0x5b, 0xc0, 0x28, -0x6a, 0x23, 0x0a, 0xc4, 0xe1, 0x4f, 0x48, 0x7e, 0x49, 0xe0, 0xb2, 0x86, 0xc6, 0x49, 0xa6, 0x6f, -0x53, 0x48, 0x8b, 0xe3, 0xfd, 0xcc, 0xde, 0x01, 0x94, 0xfb, 0x5f, 0x27, 0xe9, 0x81, 0xc9, 0xb4, -0x99, 0x91, 0x29, 0xc3, 0xdd, 0x41, 0x2d, 0x6f, 0x01, 0x3d, 0xe3, 0xf2, 0xab, 0xc9, 0x72, 0x07, -0xcb, 0x71, 0x23, 0xc9, 0x7c, 0x64, 0x6d, 0x13, 0x79, 0x44, 0x6a, 0x05, 0x03, 0x51, 0xe8, 0x6a, -0x96, 0x3f, 0xb3, 0x5f, 0x90, 0x83, 0xf9, 0xe7, 0x11, 0xc6, 0x9a, 0xec, 0xc0, 0x3f, 0x75, 0xb0, -0x51, 0x61, 0xd2, 0x2c, 0x39, 0xc3, 0xc9, 0x5a, 0xb3, 0xf8, 0x1d, 0x96, 0xcc, 0x3e, 0x1d, 0xf9, -0x50, 0x9f, 0x7f, 0x9b, 0x14, 0x46, 0xb0, 0x3f, 0x38, 0x88, 0xa3, 0x67, 0x3a, 0xaf, 0x20, 0x8c, -0xa3, 0xda, 0x21, 0xc6, 0x6d, 0x7b, 0x10, 0xc3, 0xf1, 0x1a, 0xc4, 0x6b, 0x80, 0xf2, 0x24, 0xbd, -0x73, 0x66, 0xd5, 0x7d, 0x09, 0x69, 0x84, 0x97, 0x22, 0x87, 0xf3, 0x29, 0x9f, 0xd0, 0x52, 0x66, -0x5a, 0x4a, 0xbf, 0x0e, 0x79, 0xcc, 0xad, 0x50, 0x53, 0x35, 0x12, 0x5f, 0x27, 0x9a, 0x53, 0xdc, -0x5c, 0x5c, 0x85, 0xb5, 0xd2, 0xda, 0x2d, 0xf8, 0xa5, 0x26, 0x39, 0x63, 0xb5, 0x92, 0x0d, 0x09, -0xb3, 0x60, 0xba, 0x36, 0xf8, 0x2a, 0xad, 0x8b, 0x3c, 0x75, 0x06, 0xea, 0x83, 0x6a, 0x94, 0x70, -0xc6, 0x25, 0x59, 0x28, 0xa4, 0x85, 0x56, 0xd2, 0x01, 0x46, 0xdc, 0x78, 0x42, 0xd2, 0x13, 0x5e, -0xf6, 0x51, 0x3c, 0x2c, 0x69, 0x34, 0xc1, 0x01, 0xf3, 0x0c, 0xea, 0x55, 0xf8, 0x15, 0xad, 0x06, -0xec, 0x3a, 0xb1, 0x78, 0x64, 0xa4, 0xb5, 0x0a, 0xd3, 0x58, 0xf2, 0x11, 0x6c, 0x10, 0x41, 0xfd, -0x2e, 0x8e, 0x2b, 0x1d, 0xca, 0x7a, 0x9e, 0x0e, 0x3f, 0x3e, 0xa9, 0x71, 0x04, 0x18, 0x3b, 0x4c, -0xf8, 0x84, 0x5c, 0x1f, 0x3c, 0x47, 0xfa, 0x62, 0x48, 0xe9, 0x4a, 0xf0, 0xce, 0xe1, 0xe8, 0x7d, -0x08, 0xef, 0x8a, 0x20, 0xa8, 0x91, 0x93, 0x85, 0xd7, 0xf1, 0x79, 0x2a, 0x42, 0x17, 0xb4, 0x23, -0x9f, 0x80, 0xcf, 0x5a, 0x7c, 0xde, 0x83, 0xf7, 0x69, 0x18, 0x8f, 0xf2, 0xb0, 0xa2, 0x11, 0x9f, -0x17, 0xe0, 0x37, 0xc7, 0x3b, 0x1c, 0xf8, 0x34, 0x23, 0x04, 0x19, 0x35, 0x1d, 0x06, 0x7c, 0x9a, -0x1e, 0x02, 0x95, 0x13, 0xef, 0x99, 0x08, 0xd7, 0x2a, 0x82, 0xea, 0x28, 0x3e, 0x5b, 0x91, 0xa7, -0x3b, 0x81, 0x77, 0x07, 0x86, 0x2d, 0x17, 0xa9, 0x1c, 0xdf, 0xc0, 0x12, 0x9d, 0xe8, 0xa0, 0x1d, -0xb8, 0x9b, 0xda, 0x41, 0x2d, 0x20, 0xdc, 0x87, 0xf8, 0xdc, 0x88, 0xa1, 0x5a, 0xbc, 0x37, 0x21, -0xfc, 0x27, 0x78, 0x2f, 0x45, 0x78, 0xb3, 0x08, 0x19, 0x2a, 0x5a, 0x1b, 0xc0, 0xf1, 0x30, 0xd0, -0x09, 0xea, 0x6c, 0x36, 0x02, 0x07, 0x65, 0xfb, 0x82, 0x1e, 0xd1, 0x97, 0x36, 0x32, 0x20, 0xe3, -0xf3, 0x8b, 0xc7, 0xc6, 0xe7, 0x9b, 0x91, 0x22, 0x0c, 0xc0, 0xa0, 0x64, 0xbd, 0x30, 0xe3, 0x55, -0x39, 0xad, 0x5d, 0x08, 0x7d, 0x24, 0x90, 0x9e, 0x56, 0x39, 0x83, 0x5e, 0x2e, 0x32, 0x08, 0x4c, -0x75, 0xd7, 0x6e, 0x17, 0xd6, 0xea, 0xb1, 0x09, 0x29, 0x4a, 0x30, 0x4e, 0x4c, 0x71, 0x17, 0x0c, -0x8a, 0xbb, 0x1c, 0x82, 0x5d, 0x5a, 0xbb, 0xd9, 0x41, 0xf6, 0x8d, 0x33, 0x36, 0xb0, 0x72, 0x20, -0x8e, 0x60, 0xda, 0x1d, 0x89, 0x12, 0xda, 0xb5, 0x24, 0x89, 0x3d, 0xbe, 0x87, 0x76, 0x7d, 0x13, -0x29, 0x53, 0x59, 0x76, 0xbb, 0x82, 0xcc, 0x36, 0xed, 0xe7, 0xdb, 0x6a, 0x31, 0x35, 0xbc, 0x06, -0xb1, 0x15, 0x0c, 0xa5, 0xdc, 0xc3, 0x2e, 0x46, 0x77, 0x76, 0x49, 0xf5, 0xa4, 0x13, 0x20, 0xb4, -0x6f, 0xbb, 0x8b, 0x37, 0x0a, 0xfe, 0x1f, 0x94, 0x56, 0xda, 0x33, 0x11, 0x3f, 0x07, 0x71, 0xcc, -0xfd, 0x26, 0x31, 0xe6, 0x3e, 0xeb, 0x62, 0xa9, 0xf8, 0x15, 0x77, 0xb3, 0x52, 0xaa, 0xa5, 0x3c, -0x29, 0x37, 0xe4, 0xfb, 0xf8, 0xf4, 0xd6, 0x51, 0xbd, 0x7e, 0x71, 0xeb, 0x7c, 0x16, 0xa4, 0x32, -0x95, 0xc8, 0x65, 0xda, 0x4f, 0x16, 0x29, 0x1b, 0x1f, 0x72, 0xa5, 0x72, 0xa5, 0x5d, 0xe1, 0xd2, -0x8a, 0x64, 0xae, 0xc9, 0x91, 0xfe, 0x19, 0x9d, 0xe1, 0x7c, 0x40, 0x71, 0x17, 0x4b, 0x2d, 0x23, -0x99, 0x5a, 0x0e, 0x9d, 0xfb, 0x91, 0xce, 0xa6, 0x50, 0x79, 0x27, 0x7e, 0x97, 0x4e, 0x2d, 0x88, -0xfa, 0xdc, 0x44, 0xd4, 0x7d, 0xc0, 0x09, 0xc7, 0xb0, 0xfe, 0x5b, 0x11, 0x8e, 0x6a, 0x4d, 0x75, -0x66, 0x52, 0x2c, 0xa8, 0x6c, 0xa9, 0x7e, 0x40, 0xc1, 0x67, 0x96, 0xd4, 0x2a, 0xd8, 0x6a, 0xcc, -0xf6, 0xe4, 0x67, 0x77, 0x20, 0x0e, 0xbe, 0x5b, 0xc2, 0x5d, 0xa1, 0xac, 0xc9, 0x16, 0xfa, 0xf4, -0x76, 0xf6, 0x85, 0x6d, 0x72, 0x69, 0x3f, 0x6d, 0x9d, 0x58, 0x5a, 0xfa, 0xce, 0x9e, 0x59, 0xce, -0xbe, 0xdc, 0x01, 0x13, 0x4b, 0x2a, 0x42, 0xbc, 0x35, 0x85, 0x39, 0xca, 0x7e, 0x69, 0x6d, 0xca, -0xff, 0x00, 0x96, 0x42, 0xa4, 0x5a, 0x10, 0xd5, 0xe8, 0x1f, 0x26, 0x2e, 0xa5, 0x13, 0x94, 0x11, -0x6a, 0xf5, 0x4b, 0x53, 0xea, 0xbf, 0x7e, 0x2a, 0x53, 0xea, 0x07, 0xe8, 0x2b, 0x4a, 0x85, 0x6a, -0x8c, 0xa9, 0xe4, 0xb2, 0x72, 0x30, 0x6b, 0xd9, 0x7f, 0xc5, 0xf7, 0x0b, 0x01, 0x5d, 0x2b, 0xc4, -0x61, 0x17, 0xca, 0x66, 0xa6, 0xb4, 0x98, 0xfe, 0x89, 0xbd, 0x15, 0xcc, 0x71, 0x7f, 0x02, 0x70, -0x4d, 0x27, 0xfc, 0x2a, 0xb1, 0x96, 0x46, 0x29, 0x62, 0x6a, 0xe7, 0xae, 0xa6, 0x0f, 0xff, 0x2a, -0x4c, 0x6e, 0x91, 0xbf, 0xd6, 0x2f, 0x93, 0x2c, 0xba, 0x4c, 0x6e, 0x91, 0x03, 0x72, 0x8b, 0xfc, -0x66, 0x42, 0xdf, 0x0d, 0xca, 0xb9, 0xff, 0x21, 0xb9, 0x92, 0xd7, 0x4a, 0xb9, 0x8f, 0xbb, 0xe4, -0x15, 0x1d, 0xd2, 0xe6, 0xd8, 0x40, 0x92, 0x08, 0xad, 0xd9, 0xe0, 0xbb, 0x3a, 0x94, 0x9d, 0x5c, -0x19, 0xd0, 0x25, 0x56, 0x06, 0x84, 0x41, 0x28, 0x4d, 0xd4, 0x55, 0x51, 0xcc, 0x68, 0x83, 0x63, -0x36, 0x79, 0xd0, 0xf8, 0x55, 0xaa, 0xde, 0xe7, 0x77, 0xb0, 0x1e, 0x8c, 0x11, 0x2d, 0x64, 0x79, -0x62, 0xbc, 0x9c, 0x27, 0xb5, 0x84, 0x3e, 0x7d, 0xbd, 0x28, 0xc4, 0x46, 0xe4, 0xc8, 0x3a, 0xf2, -0x85, 0xc5, 0xd6, 0xb5, 0x88, 0x86, 0x73, 0xcc, 0x5e, 0x31, 0x17, 0x04, 0xee, 0x55, 0x3e, 0xa5, -0xbf, 0x37, 0x6e, 0x74, 0xf1, 0x2d, 0xa0, 0x65, 0xe5, 0x31, 0x08, 0x03, 0xcc, 0xb6, 0x0d, 0xf2, -0xa3, 0xe7, 0xea, 0x15, 0xad, 0xe3, 0x71, 0x5a, 0x05, 0xfb, 0x35, 0xd1, 0x61, 0xe0, 0x7e, 0x22, -0x51, 0x62, 0x1c, 0x4f, 0x3b, 0x12, 0x25, 0xe5, 0xee, 0x9f, 0x5c, 0xc6, 0xbf, 0x9c, 0x67, 0x38, -0x75, 0x22, 0x59, 0xc6, 0x4e, 0xf8, 0x7d, 0xa2, 0x8c, 0x89, 0xb2, 0x31, 0x7b, 0xa5, 0xc0, 0x05, -0x8c, 0xad, 0xe0, 0xdd, 0x2d, 0xf9, 0x0f, 0xac, 0x74, 0x08, 0xd1, 0x57, 0x8e, 0xf7, 0x92, 0x16, -0x7c, 0x4a, 0xcb, 0x12, 0x61, 0x0a, 0xa4, 0x75, 0xb2, 0x67, 0xce, 0xb0, 0x73, 0xbd, 0x3c, 0x5b, -0xc3, 0x4f, 0xea, 0xe3, 0x8d, 0x6f, 0x60, 0x7a, 0x84, 0xda, 0xd9, 0xb4, 0x82, 0xdd, 0x23, 0x3c, -0x09, 0x9b, 0x05, 0x3b, 0x6c, 0xc2, 0xab, 0x97, 0x85, 0xdc, 0x33, 0x69, 0x47, 0x63, 0x8b, 0xfb, -0x23, 0xd8, 0xe7, 0x3e, 0x1d, 0x7f, 0xd5, 0xee, 0x85, 0xed, 0x08, 0xbd, 0xb5, 0x1c, 0xdf, 0xcb, -0xdf, 0x8b, 0xbf, 0x6e, 0xaf, 0x02, 0xaa, 0x47, 0x06, 0xf2, 0xce, 0x4b, 0x61, 0xf0, 0x96, 0x2e, -0xc8, 0x85, 0x27, 0xf0, 0x77, 0x39, 0xec, 0x09, 0x5b, 0x99, 0x2d, 0x9f, 0x21, 0x84, 0xb6, 0x4a, -0x7c, 0x72, 0x84, 0xf3, 0xba, 0x53, 0xab, 0x8e, 0xe4, 0xe1, 0x0b, 0xe3, 0x8a, 0xf0, 0x2a, 0x63, -0x5f, 0x08, 0xf8, 0xe4, 0xc5, 0x8b, 0xec, 0x05, 0xd5, 0x30, 0x0f, 0x28, 0x75, 0x42, 0x27, 0x78, -0xc8, 0x72, 0xd0, 0x2d, 0x5d, 0x2e, 0x00, 0x11, 0xcb, 0xb0, 0x1c, 0xf3, 0x2f, 0x08, 0x43, 0x44, -0x9f, 0xa6, 0x69, 0x26, 0x60, 0x59, 0x1e, 0x4e, 0xad, 0x74, 0xf0, 0x29, 0x1f, 0x8c, 0xb1, 0xcb, -0xaf, 0xf7, 0xcc, 0xed, 0x04, 0xa7, 0xf1, 0xe4, 0x22, 0x4c, 0xdf, 0xf8, 0x96, 0xd0, 0x6a, 0x7c, -0x83, 0x7a, 0x80, 0x56, 0x83, 0x0b, 0xa1, 0xa6, 0x2f, 0x08, 0x5f, 0x64, 0x26, 0x25, 0xb5, 0x2e, -0x6c, 0xf1, 0xfe, 0xd4, 0x89, 0x25, 0x94, 0xd6, 0x0c, 0x12, 0x56, 0x78, 0x86, 0x83, 0x0e, 0x7e, -0x1e, 0xe4, 0x15, 0xb5, 0xc2, 0x13, 0x43, 0xf7, 0xb6, 0x29, 0xcc, 0x64, 0x9f, 0x68, 0x2a, 0xc3, -0xb2, 0xc3, 0x18, 0xff, 0x44, 0xff, 0x12, 0x9a, 0x6b, 0x99, 0x4d, 0xfb, 0x3a, 0xec, 0xfd, 0x51, -0xec, 0xfd, 0x6a, 0x0d, 0x71, 0xfe, 0xd9, 0xc2, 0xcf, 0x18, 0x9e, 0x4c, 0xf5, 0xef, 0xff, 0xd0, -0x91, 0xc0, 0x13, 0xd1, 0x41, 0xeb, 0x97, 0x88, 0x43, 0x14, 0xf7, 0x24, 0x4a, 0x67, 0x55, 0x89, -0xf3, 0x34, 0x1f, 0xea, 0x68, 0x3e, 0x37, 0x7e, 0x33, 0xe5, 0x93, 0x07, 0x67, 0x72, 0x0e, 0xf6, -0x25, 0x4e, 0x41, 0x19, 0xed, 0x89, 0x3d, 0xc7, 0x78, 0x8f, 0xb4, 0xe7, 0x38, 0x7e, 0x80, 0xd6, -0x76, 0x2c, 0x9d, 0x5c, 0xd4, 0xda, 0xc9, 0xad, 0xe7, 0x6f, 0xe5, 0x9b, 0xa1, 0x14, 0xaf, 0x02, -0x5b, 0x1b, 0xdb, 0x33, 0xf4, 0x5b, 0xb0, 0xe7, 0xd5, 0x8e, 0x54, 0x38, 0xf6, 0x75, 0x9b, 0xf1, -0x53, 0xa6, 0x2b, 0x4d, 0xfe, 0x8b, 0x20, 0x63, 0x0c, 0x5b, 0x74, 0x2f, 0x86, 0x7d, 0x48, 0xfd, -0x44, 0xcf, 0x26, 0xf2, 0xf3, 0xa2, 0x91, 0x43, 0x9e, 0xa6, 0x10, 0xb6, 0xf7, 0x94, 0x19, 0x56, -0xc8, 0x61, 0x47, 0x0a, 0x21, 0x19, 0x7a, 0x4d, 0x58, 0x9d, 0x08, 0xdd, 0xe3, 0xea, 0x54, 0x38, -0x14, 0x65, 0xa0, 0x5e, 0x0c, 0x7a, 0xb3, 0x87, 0xac, 0x66, 0x95, 0x58, 0xc0, 0x50, 0x94, 0xb1, -0xa2, 0xfc, 0x96, 0x72, 0x70, 0x3a, 0xe6, 0x43, 0x36, 0xf2, 0xcc, 0x33, 0x3a, 0x55, 0x28, 0xc1, -0x68, 0x88, 0x9b, 0xee, 0x50, 0x84, 0x55, 0xeb, 0xa0, 0x28, 0xc3, 0x5e, 0x0e, 0x05, 0xa5, 0x19, -0xea, 0x4a, 0xc8, 0x36, 0x2a, 0x03, 0xdd, 0xcf, 0x3c, 0x73, 0xc2, 0x55, 0x38, 0xa5, 0x46, 0x48, -0x95, 0xd8, 0xd9, 0x0c, 0x3a, 0xc7, 0xd4, 0x67, 0xc6, 0x6e, 0x5d, 0x2e, 0xb8, 0xbc, 0x2e, 0xe7, -0xd4, 0x75, 0x33, 0xde, 0x5d, 0xd9, 0xef, 0x3e, 0x2e, 0x0c, 0x09, 0x9d, 0x8a, 0x42, 0x28, 0xb2, -0x40, 0x16, 0x72, 0x7c, 0xa6, 0x22, 0xd7, 0xec, 0x66, 0x98, 0x0b, 0xb7, 0xdc, 0x42, 0xab, 0xc7, -0xf4, 0xfc, 0x75, 0x10, 0xf0, 0xd7, 0x0c, 0xe5, 0xee, 0x8f, 0xb8, 0x7a, 0xb9, 0xce, 0xf7, 0xdb, -0x5c, 0xa9, 0x74, 0xe9, 0x2b, 0x6f, 0xac, 0xde, 0x75, 0x8b, 0x8b, 0x2b, 0x31, 0x79, 0x70, 0x8c, -0x69, 0x1c, 0xf3, 0xc0, 0x70, 0xbb, 0x2b, 0xcb, 0x02, 0x5f, 0xf7, 0x76, 0x1f, 0x75, 0x63, 0x78, -0xa9, 0x43, 0xf1, 0x4d, 0x8a, 0x2f, 0x8b, 0x7c, 0xb8, 0xb5, 0xa2, 0x84, 0x7b, 0xbd, 0xf2, 0x96, -0x0a, 0xce, 0x25, 0x3c, 0xc9, 0x21, 0xf6, 0x72, 0x88, 0xa7, 0x48, 0x22, 0x7c, 0xf8, 0x54, 0x6d, -0xef, 0x84, 0x12, 0xae, 0x06, 0x9f, 0xea, 0x2a, 0x3e, 0xe2, 0x72, 0x25, 0x6d, 0xa2, 0x84, 0xbd, -0x46, 0x7b, 0x57, 0x4c, 0x03, 0x6a, 0xce, 0xec, 0xfe, 0x00, 0xf9, 0x47, 0x2f, 0x67, 0x65, 0xef, -0x8b, 0x70, 0xbc, 0xd2, 0xbd, 0x88, 0x2b, 0x0a, 0xab, 0x78, 0x7f, 0xf9, 0x47, 0x5c, 0xa5, 0x5c, -0xc2, 0x93, 0xd8, 0x2b, 0x42, 0x89, 0x9d, 0xab, 0x76, 0x54, 0x48, 0x65, 0x42, 0xfc, 0xc3, 0x52, -0x19, 0x5d, 0xde, 0x16, 0xe4, 0x0f, 0x9a, 0xe3, 0x63, 0x89, 0x95, 0xe6, 0x5b, 0x5c, 0x50, 0xf3, -0x7a, 0x27, 0xe7, 0xad, 0xaf, 0xc0, 0x32, 0x79, 0x6f, 0x59, 0xcc, 0xf9, 0x6e, 0xe9, 0x84, 0x32, -0x2c, 0x4b, 0x17, 0xf5, 0x15, 0xe7, 0xc7, 0xd2, 0x29, 0xb8, 0xe5, 0x61, 0x8e, 0xef, 0x04, 0x81, -0xd2, 0x7f, 0xf0, 0x48, 0x22, 0x07, 0xde, 0xe5, 0xb0, 0x73, 0x95, 0xdf, 0x74, 0xf5, 0x2f, 0x3e, -0x2a, 0x60, 0xdd, 0x2a, 0xd9, 0x17, 0xd7, 0xb0, 0x2f, 0x94, 0xf4, 0x45, 0x7a, 0x69, 0x12, 0xeb, -0x39, 0xca, 0xfd, 0x1b, 0x2a, 0x5f, 0x27, 0x4d, 0xdc, 0x30, 0xd6, 0x2c, 0x23, 0x6d, 0x2f, 0x3b, -0x0c, 0x01, 0xa9, 0x45, 0xed, 0xd8, 0xa2, 0x38, 0x62, 0x29, 0xac, 0x03, 0x6e, 0x67, 0x69, 0xe6, -0xc0, 0x1d, 0xec, 0x7d, 0x33, 0x79, 0x0b, 0xc6, 0x7a, 0x05, 0xd9, 0x5b, 0x0f, 0xb4, 0xe2, 0x73, -0x07, 0x7b, 0xde, 0x04, 0x11, 0x7c, 0x5e, 0xc7, 0x9e, 0xef, 0x81, 0x0d, 0xf8, 0xbc, 0x51, 0xde, -0x19, 0x27, 0xec, 0xbc, 0x9b, 0x3d, 0x37, 0xc2, 0x16, 0x87, 0xe0, 0x9c, 0xe6, 0xed, 0x2e, 0x3f, -0xa7, 0x27, 0xff, 0xc9, 0x4b, 0xbc, 0xb1, 0xf2, 0x8f, 0x01, 0xf8, 0xa9, 0xad, 0x8a, 0x40, 0xec, -0x64, 0x6c, 0xbb, 0xcb, 0x59, 0x4e, 0x74, 0x89, 0xc1, 0x36, 0xc1, 0x56, 0x67, 0x25, 0xc2, 0xf8, -0xbd, 0xb1, 0x0a, 0x84, 0x41, 0x5e, 0xbe, 0xa4, 0xe2, 0x2f, 0x03, 0x1c, 0x86, 0x2c, 0xc3, 0x10, -0xa4, 0xb2, 0xbc, 0x56, 0xfa, 0xca, 0x69, 0x87, 0xea, 0xad, 0xae, 0x42, 0xb7, 0xdd, 0x07, 0xdb, -0xd9, 0x97, 0xeb, 0xe0, 0x21, 0xa4, 0x36, 0x8f, 0xb0, 0xe7, 0x6f, 0xc3, 0x4f, 0x30, 0xc5, 0xc7, -0xd8, 0x33, 0xcd, 0x68, 0x5d, 0x20, 0xaa, 0xd7, 0xc3, 0x13, 0xec, 0xbd, 0x0d, 0x76, 0xdb, 0x3b, -0xb9, 0x46, 0xd8, 0xfb, 0x83, 0xc3, 0xc6, 0x0a, 0x79, 0x8c, 0xfd, 0xc4, 0xc6, 0x76, 0x38, 0x91, -0x0b, 0xdd, 0x86, 0xb8, 0xd6, 0x88, 0xed, 0xd7, 0x2c, 0xc5, 0xc4, 0x77, 0x59, 0x55, 0x96, 0xe9, -0xe6, 0x4a, 0x1c, 0x0b, 0xcb, 0x53, 0x74, 0x4a, 0x58, 0x8c, 0x54, 0xce, 0x49, 0xfb, 0x2c, 0xfc, -0x7c, 0x30, 0x48, 0x76, 0xbb, 0x90, 0x3a, 0x6f, 0x6f, 0xd0, 0x45, 0x5c, 0xcc, 0xea, 0xfc, 0x76, -0x3a, 0xaf, 0xc4, 0xf6, 0x84, 0x20, 0x64, 0xc4, 0x3b, 0x4f, 0x9a, 0x8f, 0x5c, 0x0c, 0x47, 0x50, -0x0e, 0x8e, 0x1b, 0xe4, 0x98, 0xb9, 0x08, 0xde, 0x6f, 0xc0, 0xb0, 0x36, 0x84, 0xbc, 0x83, 0xc2, -0xd5, 0xae, 0xf8, 0x3e, 0x0c, 0x5b, 0x98, 0x38, 0xcd, 0xc1, 0xc6, 0xa6, 0xc5, 0x80, 0x74, 0xc6, -0xdb, 0xc3, 0x9e, 0x57, 0x64, 0xd3, 0xf3, 0x26, 0x1c, 0x89, 0x85, 0xec, 0xbd, 0x5f, 0x7a, 0x47, -0xe9, 0xb5, 0x1c, 0x4b, 0x53, 0x28, 0x08, 0x88, 0x67, 0xf3, 0x21, 0x37, 0xa2, 0x3c, 0x18, 0x0b, -0xa9, 0x09, 0xb3, 0xa1, 0x30, 0x52, 0x3c, 0xdc, 0x1d, 0x52, 0xac, 0xe3, 0xc8, 0x0b, 0x11, 0x47, -0xa7, 0x5f, 0x73, 0x84, 0x9f, 0x7a, 0x3b, 0x39, 0x63, 0x1a, 0x5e, 0x17, 0x71, 0xcc, 0x22, 0x1e, -0xb7, 0x9e, 0xa8, 0x3f, 0x67, 0x8d, 0x70, 0x76, 0x37, 0x62, 0xb6, 0x9b, 0xa3, 0x33, 0x89, 0x82, -0x11, 0x71, 0x6e, 0xf1, 0x47, 0x9c, 0x59, 0xc6, 0xa5, 0x00, 0x62, 0x1d, 0x5b, 0x79, 0xf2, 0x95, -0x87, 0x34, 0xbc, 0xe7, 0x77, 0xa7, 0x21, 0x5b, 0xd4, 0xfa, 0x30, 0xef, 0x90, 0xea, 0x77, 0x1f, -0x81, 0xe7, 0xb8, 0xab, 0x55, 0x63, 0xf4, 0x14, 0xce, 0x83, 0xec, 0x5a, 0xc1, 0xe4, 0xd9, 0xd3, -0x0a, 0xd9, 0xff, 0x3c, 0xec, 0x8d, 0x1d, 0x72, 0x21, 0xcf, 0xec, 0xe5, 0x66, 0xb1, 0xdc, 0xfc, -0x9c, 0x11, 0x9f, 0xcd, 0x98, 0x76, 0x91, 0x9c, 0x76, 0xae, 0x9c, 0xf6, 0xab, 0xa2, 0xc8, 0xb7, -0xa3, 0xdc, 0x66, 0x01, 0x33, 0xb6, 0x82, 0x22, 0x54, 0x43, 0xf4, 0x25, 0x24, 0x30, 0x9f, 0xdd, -0x95, 0xd8, 0x27, 0x2b, 0xb0, 0x4f, 0xc4, 0x44, 0x9f, 0xf0, 0x76, 0xae, 0xd1, 0x68, 0xe7, 0x9a, -0x4d, 0x76, 0x6e, 0x85, 0xd9, 0x9e, 0x0c, 0x7f, 0xc8, 0xe7, 0x0a, 0x29, 0x36, 0x72, 0xd8, 0xbb, -0x2b, 0xb8, 0x46, 0xfc, 0x15, 0xb9, 0x66, 0x51, 0xcb, 0x5a, 0xc2, 0x29, 0x62, 0xb8, 0x71, 0xa9, -0x9c, 0xd7, 0x6e, 0xb9, 0x3f, 0xa5, 0xb7, 0x7d, 0x56, 0x17, 0xdb, 0x2d, 0x2a, 0xc2, 0x9a, 0x38, -0x83, 0x3a, 0xdf, 0xe2, 0x10, 0x8c, 0xeb, 0xad, 0x1e, 0x4b, 0x86, 0xa8, 0xa1, 0x5f, 0x7c, 0x0f, -0x2f, 0x96, 0x68, 0x82, 0x7e, 0x82, 0x16, 0xc8, 0x45, 0x6d, 0x97, 0x68, 0xb1, 0x44, 0x6b, 0x61, -0x7d, 0x54, 0xce, 0x4e, 0xa9, 0xc5, 0x70, 0x7e, 0x32, 0x0f, 0x55, 0x05, 0x67, 0x19, 0xa7, 0xab, -0x91, 0x3f, 0x54, 0xcd, 0x36, 0x59, 0x40, 0x6b, 0x96, 0x7c, 0x41, 0xb7, 0x91, 0x54, 0x3c, 0x76, -0x7f, 0x94, 0x13, 0xb5, 0x01, 0x17, 0xef, 0x36, 0xea, 0x83, 0xaf, 0x0a, 0x02, 0x5f, 0x29, 0xd7, -0x69, 0x1f, 0xf3, 0x3f, 0xda, 0x99, 0xa4, 0x7f, 0x27, 0x30, 0x97, 0x12, 0xf9, 0xb9, 0x8b, 0xc5, -0x25, 0xa9, 0xa1, 0xd1, 0x23, 0x63, 0xb3, 0x97, 0xc2, 0x99, 0x5f, 0xa5, 0xb1, 0x65, 0x1f, 0x71, -0x1e, 0x26, 0x19, 0xd3, 0xa9, 0x04, 0xe6, 0x63, 0x95, 0xaf, 0xb3, 0xfa, 0x8a, 0x9a, 0xe1, 0xd1, -0x1f, 0x1e, 0x41, 0x5e, 0x91, 0xf8, 0xdc, 0xe2, 0xa5, 0x9f, 0xec, 0x03, 0xa7, 0xeb, 0x81, 0x17, -0xed, 0x53, 0xf9, 0x4c, 0x92, 0x7f, 0x69, 0x2d, 0x4d, 0x03, 0xfc, 0xb4, 0xa3, 0xdf, 0x4f, 0x7b, -0x43, 0x8e, 0xf2, 0xbf, 0x8f, 0x7f, 0xed, 0x76, 0xd8, 0xcf, 0xd7, 0x05, 0x9a, 0xe1, 0x31, 0xb6, -0xa7, 0x55, 0x87, 0xbd, 0xf5, 0x18, 0xed, 0xde, 0x76, 0xa8, 0x7c, 0x5f, 0x0b, 0xe2, 0x0c, 0xd7, -0xc5, 0xce, 0xb3, 0x96, 0x96, 0x59, 0xed, 0x60, 0xc1, 0x91, 0x6b, 0xc3, 0xfc, 0x1c, 0xc5, 0x76, -0x28, 0x4a, 0x69, 0xdd, 0xfa, 0x3c, 0x77, 0x3c, 0xeb, 0xdd, 0x14, 0xb9, 0x66, 0x6b, 0x79, 0x11, -0xf7, 0xaa, 0xcb, 0xfb, 0x2c, 0xf6, 0x43, 0x56, 0xea, 0x44, 0xc6, 0x85, 0x52, 0x8b, 0xe4, 0xa9, -0x72, 0x4b, 0x34, 0xf3, 0x78, 0x8c, 0x4e, 0x52, 0x49, 0xeb, 0x3e, 0xf3, 0x50, 0x1a, 0xad, 0xe9, -0xd3, 0x79, 0x68, 0xed, 0x94, 0xad, 0x92, 0xbe, 0x24, 0xea, 0xf0, 0x4d, 0x11, 0xd4, 0xb3, 0xb7, -0x97, 0x65, 0xb8, 0x68, 0x4d, 0x9f, 0x75, 0x35, 0xa8, 0xd6, 0x83, 0x98, 0x8b, 0x5c, 0xc6, 0x07, -0x90, 0x69, 0xaa, 0x40, 0x9e, 0x73, 0x04, 0x5b, 0xea, 0x0e, 0x9f, 0xab, 0x5d, 0x1b, 0xe2, 0x2d, -0xd3, 0xad, 0xb7, 0xfa, 0x1e, 0x0c, 0x9e, 0x74, 0xbf, 0x0f, 0x2a, 0x63, 0xb5, 0x29, 0x79, 0x32, -0x24, 0x9e, 0x1d, 0x58, 0x8d, 0xb8, 0x9c, 0x45, 0xa5, 0x31, 0x56, 0xa7, 0x95, 0xa7, 0x08, 0xeb, -0x54, 0x8a, 0xb3, 0xf6, 0x34, 0xbb, 0x16, 0xeb, 0xa3, 0x97, 0x7a, 0x9f, 0xea, 0x61, 0x72, 0x91, -0x8e, 0xbf, 0xaf, 0x19, 0x72, 0x83, 0x46, 0xe6, 0xb9, 0x79, 0xbc, 0xc3, 0xe0, 0xc5, 0x79, 0xde, -0x3e, 0xcd, 0xbb, 0x1a, 0x38, 0x89, 0x5f, 0xa6, 0x36, 0xca, 0x3e, 0x00, 0x46, 0x51, 0xc1, 0xf4, -0xfd, 0xc7, 0x3a, 0x72, 0xf5, 0x0b, 0x07, 0x48, 0xd3, 0xdc, 0xce, 0x56, 0xcc, 0x4b, 0x42, 0xda, -0xeb, 0x30, 0x76, 0x80, 0x13, 0x16, 0x0e, 0x28, 0x4c, 0x77, 0x9a, 0xef, 0x4c, 0x58, 0x1f, 0xb9, -0xa5, 0x0c, 0xf3, 0xaa, 0xf3, 0x3d, 0x6e, 0xfc, 0x34, 0x98, 0xcd, 0xb8, 0xc0, 0x57, 0xc2, 0x37, -0xa6, 0x74, 0x3e, 0x6e, 0x74, 0x19, 0x3f, 0xc5, 0xb8, 0x0f, 0xe5, 0xb8, 0x77, 0x27, 0xc5, 0x7d, -0x88, 0x75, 0xa8, 0x66, 0xfc, 0x2d, 0xa8, 0x5e, 0xa4, 0x34, 0xf0, 0xfe, 0x9c, 0xce, 0x02, 0xd3, -0x99, 0xbe, 0xfc, 0x81, 0x30, 0xe7, 0x75, 0x91, 0xaf, 0x30, 0x15, 0x98, 0x52, 0xab, 0xe4, 0x5e, -0x33, 0x41, 0xef, 0xe4, 0x5d, 0x84, 0xcd, 0x19, 0x7c, 0xaa, 0x37, 0x98, 0x6e, 0x8b, 0x79, 0x6e, -0x39, 0xf6, 0x91, 0x8b, 0xff, 0x03, 0x3b, 0xc3, 0x1b, 0x57, 0xb4, 0xf1, 0x01, 0xec, 0x77, 0xe2, -0x6e, 0x73, 0xea, 0xfb, 0x22, 0x38, 0x35, 0x95, 0x9f, 0x43, 0x66, 0xaf, 0x98, 0x2f, 0x47, 0x09, -0x2e, 0x10, 0x70, 0x55, 0x7d, 0x9c, 0x03, 0x06, 0x1b, 0x77, 0x40, 0xa7, 0x00, 0x3e, 0x64, 0xc0, -0x5f, 0x63, 0x30, 0xd7, 0x57, 0x1e, 0x34, 0x10, 0x7c, 0x76, 0x29, 0x70, 0x22, 0x52, 0x8f, 0xa0, -0x86, 0xde, 0x68, 0x95, 0x2b, 0xd0, 0x3d, 0xd4, 0x0c, 0x83, 0xc1, 0xc3, 0x36, 0xad, 0x1a, 0xa5, -0x59, 0x2e, 0xaf, 0xd8, 0xe5, 0x6c, 0x85, 0x9c, 0x1f, 0x3d, 0x6f, 0xd7, 0x95, 0xbf, 0x87, 0x32, -0x48, 0x78, 0x07, 0xd8, 0xd5, 0x94, 0xeb, 0x37, 0x34, 0x46, 0xb5, 0x6d, 0x35, 0x1b, 0x29, 0x0f, -0x55, 0x9d, 0xa1, 0x73, 0x66, 0x92, 0x86, 0xca, 0xcd, 0x43, 0xc9, 0xf0, 0x6d, 0xbc, 0x4b, 0xd0, -0x2f, 0x2a, 0x87, 0x5c, 0x92, 0x26, 0x29, 0xcc, 0x67, 0xe5, 0xf2, 0x90, 0xc2, 0x2e, 0xf7, 0x59, -0x81, 0xee, 0x7e, 0xa6, 0xab, 0x50, 0x6d, 0xb4, 0xc0, 0x0e, 0xec, 0xf1, 0x9d, 0x56, 0xac, 0xb3, -0xf2, 0x11, 0x7b, 0xbe, 0xf1, 0x13, 0xb6, 0xdb, 0xd8, 0x6c, 0x03, 0xd6, 0x9e, 0x9f, 0x85, 0x4d, -0xa9, 0xf6, 0xb4, 0x20, 0x77, 0x89, 0xd8, 0x38, 0x26, 0xfb, 0xe8, 0xe3, 0x53, 0x16, 0x5e, 0xd8, -0xf8, 0x57, 0xe0, 0xb8, 0x0b, 0xe0, 0xac, 0x59, 0x0a, 0x2e, 0xf6, 0x5e, 0x00, 0x1e, 0x36, 0x4b, -0x7a, 0xd9, 0x9b, 0x16, 0xd8, 0x4c, 0xfe, 0xb0, 0x12, 0x6a, 0x04, 0x40, 0x19, 0xc4, 0x43, 0xe7, -0x68, 0xac, 0xae, 0xe4, 0xfe, 0xca, 0x43, 0xbc, 0x0b, 0x39, 0x39, 0x0a, 0x3d, 0x44, 0x96, 0x90, -0xa1, 0xa7, 0xea, 0x8c, 0x6a, 0x36, 0xad, 0x8f, 0x27, 0x6b, 0xa6, 0x33, 0xcd, 0x07, 0x95, 0x4c, -0x25, 0xa4, 0x3a, 0xde, 0x5f, 0xd3, 0xe7, 0xb3, 0xaa, 0x66, 0x87, 0xea, 0x98, 0xf6, 0x3b, 0x83, -0x5b, 0x08, 0x6c, 0x35, 0x55, 0x6b, 0x67, 0xab, 0x81, 0x17, 0x96, 0xd7, 0xf4, 0xc9, 0xdf, 0x23, -0x96, 0xba, 0x3f, 0xd1, 0x80, 0xde, 0xa2, 0x9a, 0xc5, 0x70, 0x2e, 0x9b, 0xe1, 0x1c, 0x1b, 0x31, -0x0f, 0x67, 0xca, 0x30, 0x51, 0x82, 0x66, 0xeb, 0x19, 0x6f, 0xd4, 0xf4, 0x21, 0x27, 0x4e, 0xa5, -0x39, 0x62, 0xf4, 0xa4, 0xed, 0x91, 0x52, 0xfb, 0xa8, 0x51, 0x4e, 0xf4, 0x1a, 0x33, 0xa4, 0x32, -0xc4, 0x1f, 0xa3, 0xb5, 0x20, 0xab, 0x56, 0x8d, 0x92, 0xa4, 0x22, 0x0f, 0xcb, 0x98, 0x41, 0x25, -0x54, 0x28, 0xb1, 0x74, 0x25, 0x6c, 0xc5, 0x14, 0x14, 0x5e, 0x9f, 0x2b, 0x98, 0xc7, 0xf2, 0x51, -0x26, 0xf2, 0x21, 0x38, 0xb9, 0x0e, 0x25, 0x6c, 0xed, 0x16, 0x25, 0x33, 0x05, 0x9f, 0xea, 0x11, -0x39, 0xed, 0x9d, 0x66, 0xe6, 0x61, 0x3d, 0xd1, 0x2b, 0xe7, 0x8f, 0x91, 0x6e, 0x0a, 0xd5, 0x19, -0x7b, 0xb2, 0x3e, 0xf2, 0x35, 0x09, 0xea, 0x42, 0xc4, 0xea, 0xa2, 0x95, 0xaf, 0xe1, 0x27, 0x44, -0x0b, 0xd2, 0x58, 0xcb, 0x4b, 0x87, 0xab, 0xce, 0xf5, 0x72, 0xc6, 0x0c, 0x13, 0xf2, 0xd4, 0x63, -0x85, 0xd8, 0x96, 0x59, 0xcc, 0x87, 0x93, 0x8e, 0x7c, 0x39, 0xd0, 0xfe, 0x3c, 0xc9, 0x60, 0xc6, -0xe9, 0xd1, 0x3c, 0xf9, 0x6b, 0xbf, 0xd5, 0xc5, 0xb0, 0x23, 0x16, 0x3c, 0x18, 0xf9, 0x1a, 0xed, -0x4e, 0x47, 0x14, 0x51, 0xb9, 0x7d, 0xe3, 0x79, 0x32, 0xfd, 0xe9, 0x31, 0xaa, 0xa3, 0xe3, 0x72, -0xd8, 0x2e, 0xe4, 0xbf, 0x1b, 0x8d, 0x60, 0xd2, 0xc9, 0xef, 0xe4, 0xed, 0xdb, 0x21, 0x62, 0x7b, -0x98, 0xa6, 0xcb, 0x35, 0xa2, 0x3c, 0x2d, 0xbe, 0x5d, 0xa0, 0xba, 0x23, 0x65, 0x67, 0x78, 0x3a, -0xcb, 0x7d, 0xb1, 0x94, 0xbb, 0xa8, 0x5d, 0x72, 0x16, 0x98, 0xd6, 0xce, 0xf0, 0x13, 0x46, 0x55, -0x32, 0xa5, 0x6d, 0x98, 0xd2, 0x3e, 0xa3, 0x2a, 0xd1, 0xae, 0x11, 0x45, 0x32, 0x26, 0x9b, 0xb5, -0x80, 0x1d, 0x1c, 0x28, 0x65, 0xbe, 0x68, 0x54, 0x26, 0x20, 0x6a, 0xfa, 0x08, 0x47, 0xbc, 0xeb, -0x39, 0x1c, 0x15, 0x52, 0xcb, 0x7e, 0x43, 0x83, 0xb2, 0x8b, 0x64, 0xc7, 0x9b, 0xda, 0xd4, 0x4c, -0x90, 0xb4, 0xdb, 0xcc, 0x0b, 0xbe, 0x7e, 0xc9, 0x93, 0xfa, 0xa1, 0x98, 0x51, 0x17, 0x46, 0x6a, -0x2a, 0xe1, 0x11, 0xe1, 0x90, 0x48, 0x3c, 0x08, 0xd7, 0x09, 0xb0, 0x93, 0x79, 0xbb, 0xd8, 0xff, -0x97, 0x8d, 0xec, 0xc4, 0x1d, 0xf2, 0x6c, 0x97, 0xc3, 0xaa, 0x51, 0x7c, 0xe3, 0x03, 0x85, 0x16, -0x18, 0xdc, 0x86, 0xa3, 0xd3, 0x7b, 0x90, 0xcd, 0x7a, 0xd0, 0xdf, 0x43, 0xa3, 0x50, 0x5a, 0x33, -0x55, 0xcd, 0xf2, 0x46, 0x34, 0x32, 0xdd, 0x63, 0x76, 0x36, 0x34, 0xc9, 0x91, 0x22, 0x63, 0x63, -0x02, 0x17, 0x69, 0xbd, 0xf8, 0xcb, 0xf1, 0xf1, 0x0b, 0x3f, 0xf3, 0x4d, 0x98, 0x95, 0x1c, 0x8b, -0x82, 0x34, 0x9b, 0x31, 0xbb, 0x47, 0x6b, 0xaf, 0x42, 0xf9, 0xd8, 0xb4, 0xbc, 0x22, 0x50, 0xc2, -0xaf, 0x0c, 0xae, 0x29, 0x48, 0x53, 0xb9, 0x5f, 0xc8, 0x5b, 0x9c, 0x05, 0xb2, 0xc2, 0xfd, 0x74, -0x2d, 0x60, 0x6c, 0x52, 0x11, 0x19, 0x48, 0x8b, 0xff, 0xf7, 0x41, 0x18, 0x2b, 0x3a, 0xcc, 0xcd, -0xd3, 0xc4, 0xf1, 0xf9, 0x1f, 0xf1, 0xfa, 0x06, 0x8c, 0xbe, 0x79, 0x7b, 0x22, 0x49, 0x6d, 0x65, -0x4b, 0x5b, 0x53, 0xed, 0x77, 0xd6, 0x44, 0x9b, 0xda, 0x61, 0xda, 0x84, 0x6f, 0xe1, 0x2b, 0xbf, -0x67, 0x56, 0xae, 0x5c, 0x13, 0xfd, 0xbf, 0x97, 0xde, 0xe8, 0x91, 0xdf, 0xe0, 0x75, 0x08, 0xaf, -0x97, 0xf0, 0x7a, 0x07, 0xaf, 0xbf, 0x4c, 0x68, 0x8d, 0xd1, 0x3f, 0x68, 0xe5, 0xbb, 0x41, 0xbe, -0xdb, 0xe4, 0xbb, 0x0f, 0x88, 0x79, 0x1d, 0xfd, 0xc3, 0x4a, 0xf9, 0x7d, 0x9d, 0xfc, 0xbe, 0x55, -0x7e, 0xdf, 0x2d, 0xbf, 0xff, 0x87, 0xfc, 0xfe, 0x39, 0xfe, 0x2a, 0x61, 0xf4, 0x85, 0xc7, 0xa4, -0xf7, 0x17, 0xfe, 0x9d, 0xd9, 0x92, 0x18, 0x7d, 0x61, 0x44, 0x0a, 0xff, 0x63, 0x14, 0x98, 0x02, -0x66, 0x22, 0xdf, 0x23, 0x63, 0x69, 0xa5, 0xa0, 0xa3, 0x96, 0x3a, 0x3a, 0xd4, 0x40, 0x36, 0xa8, -0x00, 0x98, 0x2a, 0x33, 0x69, 0x2b, 0x5b, 0x52, 0x0d, 0x51, 0x10, 0x69, 0x5a, 0xd3, 0xb9, 0x36, -0xb2, 0xaa, 0xe9, 0xaa, 0x3a, 0x30, 0x5d, 0x1f, 0x7c, 0x82, 0xea, 0x38, 0xd8, 0xa1, 0xbc, 0x73, -0x6d, 0x5b, 0x63, 0xc7, 0x8d, 0x51, 0x3e, 0xd2, 0xb4, 0xb2, 0x91, 0x6f, 0x68, 0x89, 0xb6, 0xaf, -0x0c, 0xf3, 0x0d, 0x6d, 0x9d, 0xab, 0x56, 0xf3, 0x73, 0xdb, 0xd6, 0x6a, 0x31, 0xba, 0x23, 0xca, -0xaf, 0x5d, 0xd3, 0xd4, 0x28, 0x05, 0xae, 0xe1, 0x83, 0x2b, 0xb1, 0x14, 0x8d, 0x73, 0x2e, 0xfd, -0x61, 0xd3, 0xfa, 0x68, 0x53, 0xc7, 0x1a, 0xd2, 0x22, 0xbf, 0xea, 0x24, 0xf8, 0x8e, 0xce, 0x8b, -0xd2, 0xc0, 0x04, 0x26, 0x26, 0x72, 0x05, 0xd8, 0xa6, 0xab, 0x04, 0x65, 0x00, 0x73, 0xe0, 0xb6, -0x48, 0x67, 0x47, 0x48, 0x0e, 0x63, 0x41, 0xad, 0x6b, 0xdb, 0xc3, 0x73, 0xe0, 0x1f, 0x3b, 0xd7, -0xf2, 0x4b, 0x6f, 0xad, 0xad, 0xc3, 0x4f, 0xe6, 0xb7, 0x74, 0xac, 0x69, 0x8a, 0x44, 0xf9, 0xa6, -0xd6, 0xa6, 0x55, 0x51, 0x2c, 0xf4, 0xba, 0xce, 0xb6, 0xb5, 0xed, 0x4d, 0xb0, 0xac, 0xd9, 0xc6, -0x77, 0x36, 0xd3, 0x3f, 0x1b, 0xff, 0xed, 0xe6, 0xa6, 0x48, 0x13, 0xdf, 0xb2, 0x86, 0x5f, 0xd9, -0xd6, 0xc6, 0x47, 0x9b, 0x9b, 0xf8, 0x55, 0x2b, 0x57, 0xe1, 0x6f, 0xa8, 0xb3, 0xa3, 0xe9, 0x16, -0x5e, 0xb8, 0x75, 0xf1, 0x9c, 0x39, 0x73, 0xe0, 0xd6, 0x8e, 0x48, 0x53, 0x5b, 0xd3, 0xca, 0x64, -0xb5, 0x4b, 0xa4, 0xc2, 0xb9, 0x2b, 0x2b, 0x6b, 0x2f, 0xa1, 0xb2, 0x2f, 0x9f, 0x55, 0x08, 0x34, -0x45, 0x23, 0xdf, 0xe9, 0x92, 0x5f, 0xca, 0x9b, 0x9b, 0xb0, 0x4a, 0x8d, 0x2d, 0x6b, 0x56, 0x27, -0x43, 0x3a, 0x3b, 0xa2, 0x2d, 0x1d, 0x6b, 0x9b, 0x26, 0xbf, 0x63, 0x66, 0x92, 0x0a, 0x7f, 0x53, -0x24, 0xd2, 0x19, 0x01, 0x7f, 0x27, 0xdf, 0xd2, 0x19, 0xee, 0x8c, 0x44, 0x53, 0x9d, 0xd4, 0x19, -0x6e, 0xea, 0xe0, 0xa5, 0x5e, 0xe7, 0xe7, 0xae, 0x49, 0x85, 0xaf, 0x6c, 0x6c, 0x64, 0x39, 0xf0, -0x2b, 0xd7, 0xf0, 0x88, 0x26, 0x4d, 0x1d, 0x98, 0x3f, 0x78, 0x28, 0x00, 0x6b, 0x47, 0x4d, 0xb8, -0x6e, 0x65, 0x5b, 0x4b, 0xe3, 0xca, 0x28, 0x75, 0x97, 0xd4, 0x74, 0xf8, 0xb2, 0x32, 0xd5, 0xda, -0x72, 0xe0, 0x2a, 0x2a, 0xea, 0x9a, 0xb5, 0xed, 0x7c, 0x7a, 0x4f, 0xc0, 0xd2, 0x96, 0x35, 0x6b, -0x5a, 0x30, 0x76, 0x4d, 0x67, 0x7b, 0x13, 0xdf, 0xde, 0x89, 0x4d, 0x96, 0xde, 0x17, 0x6b, 0x12, -0x7d, 0x41, 0x2f, 0xd1, 0xef, 0x84, 0x9b, 0x26, 0x7e, 0x1c, 0xc0, 0xbe, 0xb3, 0xdf, 0x16, 0x69, -0x89, 0x36, 0xf1, 0x15, 0x54, 0x2b, 0x0c, 0x6c, 0xe4, 0x57, 0xae, 0x5a, 0xd5, 0x24, 0xa5, 0x99, -0x02, 0xb4, 0x5a, 0xad, 0x7c, 0x5d, 0x33, 0x16, 0xb7, 0x7d, 0xe5, 0x77, 0xf8, 0x86, 0x26, 0x7e, -0x25, 0x96, 0xbb, 0x63, 0xbe, 0xbb, 0xb2, 0x96, 0x55, 0xac, 0x80, 0xc7, 0x78, 0xad, 0xbb, 0xe3, -0x3b, 0xfc, 0xca, 0x28, 0x0e, 0x9c, 0x70, 0x94, 0x8f, 0x76, 0xf2, 0xc1, 0x96, 0xf5, 0x7c, 0x4b, -0x94, 0x6f, 0xe9, 0xc0, 0xce, 0xc3, 0x0f, 0x57, 0x61, 0x2f, 0xb1, 0xaf, 0xd9, 0xe1, 0x83, 0x08, -0xeb, 0xd1, 0xce, 0x48, 0x4b, 0xa8, 0xa5, 0x63, 0x65, 0x9b, 0x96, 0xce, 0x8d, 0xf0, 0x6b, 0xd8, -0xa8, 0xc3, 0x0f, 0x58, 0x73, 0xd8, 0x78, 0x1c, 0x6a, 0x98, 0x00, 0x7e, 0x89, 0x1d, 0x80, 0x6d, -0xb6, 0x86, 0x5f, 0x8b, 0xbd, 0xbd, 0xaa, 0x73, 0x5d, 0x53, 0x64, 0x65, 0x43, 0x5b, 0x53, 0x81, -0x56, 0x5b, 0xc3, 0xba, 0x9e, 0x5f, 0x23, 0x9d, 0x3d, 0xf9, 0x76, 0xf3, 0x4a, 0x96, 0x6f, 0x23, -0x8a, 0x3e, 0x89, 0x72, 0x4b, 0x23, 0x22, 0xfa, 0x6d, 0x1a, 0x87, 0xa9, 0x40, 0x2c, 0x0d, 0x3e, -0x53, 0x7b, 0xf3, 0x9d, 0x6b, 0xa3, 0x6b, 0x5a, 0x1a, 0x9b, 0x64, 0xfc, 0xe3, 0xd7, 0xac, 0xc2, -0x3e, 0xd4, 0x52, 0xc6, 0xdf, 0x6e, 0x41, 0xac, 0xc3, 0x8a, 0x46, 0x9a, 0xda, 0x31, 0xc7, 0xc6, -0x02, 0x6c, 0xaa, 0xf0, 0xca, 0x96, 0x08, 0xb5, 0x0a, 0xeb, 0xca, 0x35, 0xd1, 0xc8, 0xda, 0x55, -0xd1, 0xb5, 0xd8, 0xdc, 0x0c, 0xb2, 0x8d, 0x06, 0x01, 0x65, 0x4e, 0x1d, 0xd7, 0xd6, 0xb9, 0x66, -0x4d, 0x81, 0xb6, 0x2a, 0x7a, 0xe3, 0x1a, 0x4c, 0x61, 0x0d, 0x2b, 0x54, 0xfb, 0xca, 0xd5, 0xd4, -0x68, 0x0d, 0x2b, 0x57, 0xad, 0x5e, 0x8b, 0x5d, 0xd3, 0x14, 0xa4, 0x8e, 0x0a, 0x47, 0x3a, 0x57, -0x35, 0x35, 0x35, 0x62, 0x9a, 0x57, 0xa8, 0x4c, 0x01, 0x2c, 0x67, 0x65, 0xd3, 0xce, 0x5d, 0xa3, -0xc5, 0x82, 0x7f, 0x9b, 0x75, 0x16, 0x7e, 0x19, 0x65, 0x03, 0x07, 0xdc, 0x52, 0x83, 0x37, 0xb1, -0xdc, 0x69, 0x28, 0xda, 0x25, 0x08, 0xa9, 0xeb, 0x12, 0xd5, 0x8b, 0xac, 0xec, 0x08, 0x35, 0xcd, -0xd1, 0x6a, 0xd9, 0x9d, 0x0d, 0x92, 0xf9, 0x78, 0xd9, 0xb0, 0x16, 0x2b, 0x23, 0x51, 0xf6, 0x6e, -0xc3, 0x66, 0x46, 0x12, 0xc2, 0x9e, 0x27, 0x9e, 0x5f, 0x21, 0x1c, 0x91, 0x70, 0x9e, 0x61, 0xc7, -0x04, 0xfc, 0x91, 0x50, 0xe7, 0x32, 0x91, 0xe9, 0x33, 0x60, 0xe2, 0x2c, 0x88, 0xff, 0xd6, 0xf1, -0xcf, 0xc9, 0x52, 0x7a, 0xfa, 0x1a, 0x71, 0xbe, 0x2b, 0x0e, 0xeb, 0x57, 0xbc, 0x16, 0x4b, 0x9d, -0x8e, 0x1f, 0x4f, 0x7f, 0xbe, 0x8f, 0x77, 0x99, 0x9a, 0x41, 0x1b, 0x6e, 0x9d, 0xb8, 0x06, 0x6c, -0x96, 0xa5, 0x33, 0xe2, 0x94, 0x9f, 0xcf, 0x4d, 0xd7, 0x44, 0xbf, 0xd1, 0x05, 0xd6, 0x50, 0x38, -0x3d, 0x07, 0x0c, 0x11, 0xae, 0xeb, 0x82, 0x19, 0xe0, 0x4e, 0x69, 0xc6, 0x63, 0x58, 0xc1, 0x64, -0xcd, 0x78, 0x0c, 0x6b, 0x08, 0x59, 0x68, 0x45, 0xe3, 0x79, 0x73, 0x98, 0x9b, 0x78, 0xe2, 0xe1, -0xff, 0x43, 0xdb, 0xdf, 0xc0, 0x37, 0x71, 0x5d, 0x09, 0xc3, 0xf8, 0x91, 0x2c, 0x0b, 0x61, 0x14, -0x47, 0x31, 0xaa, 0xab, 0xba, 0xae, 0x3b, 0x51, 0x84, 0x22, 0x64, 0x61, 0x29, 0xae, 0xe3, 0xba, -0xc6, 0x4b, 0x64, 0x59, 0x18, 0x21, 0x8c, 0xd7, 0x11, 0x34, 0x75, 0xb3, 0x6c, 0x76, 0x4a, 0x8c, -0x44, 0x8c, 0x0d, 0xaa, 0xeb, 0xf2, 0x7a, 0x79, 0xfc, 0x64, 0xe5, 0x0f, 0x88, 0x93, 0x90, 0xe0, -0x10, 0x4a, 0x69, 0x36, 0x4f, 0xdf, 0xfc, 0xbb, 0xd9, 0x96, 0x10, 0xd2, 0xb8, 0x84, 0x65, 0x59, -0x96, 0xcd, 0xdf, 0x21, 0x34, 0x75, 0x08, 0x61, 0x0d, 0xf1, 0x12, 0x42, 0x29, 0x25, 0x2c, 0x25, -0x84, 0x00, 0xa1, 0x09, 0x4d, 0x89, 0x23, 0x7b, 0xde, 0x73, 0xce, 0x9d, 0x91, 0x64, 0x03, 0x6d, -0xf6, 0xd9, 0xe7, 0x81, 0x9f, 0x35, 0x33, 0x77, 0xee, 0xdc, 0x8f, 0x73, 0xcf, 0x3d, 0xf7, 0x9c, -0x7b, 0xcf, 0x47, 0x0c, 0x6e, 0x6a, 0x40, 0x79, 0x66, 0x69, 0x5a, 0x93, 0x90, 0xe2, 0x37, 0x66, -0xc4, 0x99, 0x17, 0x7b, 0x74, 0x9f, 0xfd, 0xf6, 0x0c, 0x9d, 0xc6, 0xdd, 0xd4, 0x34, 0xa3, 0x55, -0xb9, 0xcc, 0x52, 0xba, 0x9a, 0x2a, 0x74, 0xf9, 0x4e, 0x39, 0x64, 0x30, 0x8f, 0xa3, 0xcc, 0xb7, -0xf8, 0xf6, 0x10, 0x2c, 0x09, 0x3c, 0x0f, 0x8d, 0x35, 0x1f, 0x40, 0xe3, 0xed, 0xf3, 0x61, 0x71, -0xda, 0xb2, 0x5f, 0x21, 0x7d, 0xef, 0xc2, 0xc3, 0x43, 0xb7, 0xf6, 0xf6, 0x99, 0x58, 0xf3, 0x52, -0x2d, 0x61, 0x8d, 0xf5, 0xf8, 0xfa, 0x33, 0x8f, 0x35, 0x6c, 0xa8, 0xbe, 0x00, 0x89, 0xe2, 0x90, -0x62, 0x70, 0xde, 0x74, 0x77, 0x8f, 0xbd, 0x55, 0x01, 0xa1, 0x55, 0xdd, 0xae, 0xf3, 0xe8, 0xdf, -0xfd, 0x39, 0xb6, 0x90, 0x76, 0x22, 0x6f, 0x7e, 0x77, 0x9b, 0x64, 0x4c, 0x74, 0x83, 0x3f, 0x91, -0xee, 0xc3, 0xbe, 0x12, 0xd8, 0x4f, 0x10, 0xdb, 0x1a, 0x1f, 0x1f, 0x7c, 0x1e, 0xa8, 0xff, 0x51, -0xb6, 0x77, 0xce, 0x15, 0x2d, 0x7b, 0xd7, 0xca, 0xba, 0xa3, 0x8f, 0x98, 0xb7, 0x07, 0xff, 0x72, -0x11, 0xe8, 0x0c, 0xd1, 0x07, 0xbd, 0xb3, 0x14, 0x8a, 0x4f, 0x91, 0x74, 0x25, 0x38, 0x3e, 0xca, -0x4a, 0xe4, 0x2a, 0xfd, 0x51, 0x33, 0xf9, 0x87, 0xa4, 0x54, 0xe9, 0x34, 0xf3, 0x47, 0xfc, 0xed, -0x85, 0x5c, 0xaf, 0x07, 0xae, 0x6a, 0x4f, 0x17, 0xf7, 0x79, 0x48, 0xb2, 0xb0, 0xb2, 0xd7, 0x84, -0xe9, 0xb1, 0x02, 0xee, 0x03, 0x68, 0x6f, 0x2f, 0x15, 0xc5, 0xc7, 0x5e, 0xf9, 0x39, 0x9f, 0x60, -0x93, 0xe7, 0x2a, 0x80, 0x47, 0x63, 0x56, 0xaa, 0x49, 0x94, 0x3a, 0x63, 0xa8, 0x6d, 0xfc, 0xd5, -0xed, 0xd0, 0x87, 0x1c, 0xdf, 0xbc, 0x96, 0x1c, 0x91, 0x76, 0xbb, 0xbe, 0x71, 0xc3, 0xc1, 0x87, -0x62, 0xa0, 0x58, 0x03, 0xad, 0xe3, 0xe3, 0xed, 0x8b, 0x47, 0xd6, 0xcb, 0x30, 0x6d, 0x3d, 0xf9, -0xc7, 0xc7, 0xbf, 0xab, 0x02, 0x3b, 0xa4, 0x62, 0xee, 0x0d, 0xc4, 0x72, 0xda, 0xf4, 0xdd, 0xa4, -0x77, 0x16, 0x95, 0x73, 0xd2, 0xfd, 0x92, 0xdc, 0x60, 0x6a, 0xfb, 0x2a, 0xe9, 0x5d, 0xe7, 0x6c, -0x6e, 0x2d, 0xca, 0xab, 0x82, 0x3c, 0xbc, 0xef, 0x10, 0x1a, 0xd8, 0x14, 0x5d, 0x02, 0xef, 0xb2, -0x79, 0xaf, 0xcc, 0x2d, 0x17, 0xaa, 0xfa, 0xd5, 0x21, 0x55, 0x9f, 0xba, 0xb2, 0xcd, 0xc5, 0x6f, -0x2c, 0x08, 0x9b, 0x73, 0x08, 0x81, 0x86, 0x68, 0xa1, 0x06, 0x01, 0x4f, 0x50, 0xf8, 0xe7, 0x6f, -0xd8, 0x30, 0xbb, 0x53, 0x51, 0xc6, 0xc7, 0x65, 0xc8, 0x39, 0x4d, 0xde, 0xfb, 0xe1, 0x80, 0x72, -0x45, 0x06, 0xe3, 0x25, 0xd2, 0xd2, 0x32, 0x92, 0xaf, 0x16, 0xab, 0x68, 0xc9, 0x1f, 0x97, 0xc6, -0x15, 0x2c, 0x65, 0x2f, 0xb6, 0xc6, 0x1a, 0x8b, 0x0e, 0x6f, 0x87, 0x13, 0x33, 0xfd, 0x70, 0x62, -0xa5, 0xb1, 0x4d, 0x37, 0xb3, 0x1a, 0x4e, 0xa4, 0x61, 0x99, 0xb6, 0xa2, 0x40, 0xa8, 0x1e, 0x13, -0xa9, 0x1f, 0x3c, 0x45, 0xf0, 0x5a, 0x88, 0x98, 0xf9, 0x81, 0x07, 0x53, 0x45, 0xee, 0xcd, 0xf8, -0xfd, 0x31, 0x3e, 0x25, 0xb0, 0x49, 0x98, 0x26, 0xf6, 0x22, 0xb9, 0xcc, 0x13, 0x71, 0x1d, 0x5d, -0xe5, 0x91, 0x36, 0xa5, 0xb8, 0x5a, 0xb9, 0x5a, 0xdc, 0x02, 0x27, 0xa8, 0x4d, 0x39, 0x01, 0xc4, -0x2c, 0xeb, 0xe1, 0xa1, 0x50, 0xbc, 0x4f, 0xc8, 0xac, 0x49, 0x9b, 0x93, 0x78, 0x6b, 0xd2, 0xe2, -0xf1, 0xf9, 0xc9, 0x9b, 0x11, 0xe6, 0x21, 0x7f, 0x83, 0xb6, 0xc3, 0x43, 0x5e, 0x5f, 0x9f, 0x41, -0xe4, 0xa6, 0x3b, 0xca, 0x7b, 0xf3, 0x15, 0xd1, 0x5b, 0x19, 0xa6, 0x8e, 0x0a, 0x68, 0x4e, 0x0d, -0xb5, 0x02, 0x3c, 0x8e, 0xd0, 0xfb, 0x02, 0x3d, 0x99, 0x76, 0xb7, 0xce, 0xc1, 0xfb, 0x9b, 0xe9, -0x3e, 0xcb, 0xca, 0xba, 0xee, 0x26, 0xd6, 0x75, 0x3f, 0x87, 0x77, 0x53, 0x09, 0x8a, 0x53, 0x77, -0xc9, 0x30, 0x25, 0xde, 0x76, 0x0b, 0xa5, 0x4e, 0xc9, 0x5f, 0x09, 0xa6, 0x1c, 0x7c, 0x33, 0x9d, -0xdf, 0x3c, 0x8d, 0x92, 0x5c, 0x27, 0xd9, 0x4a, 0xc7, 0x20, 0x5b, 0xe6, 0x6f, 0xf3, 0x39, 0xd7, -0x62, 0xbc, 0xfb, 0x22, 0xe7, 0x58, 0x83, 0x32, 0xbd, 0xb1, 0xad, 0x90, 0x6b, 0xa2, 0xef, 0xbe, -0xc2, 0x79, 0x9f, 0xc5, 0xbb, 0x02, 0x7e, 0x7f, 0x2f, 0x42, 0x5b, 0xe6, 0xd1, 0x4b, 0x62, 0x8e, -0xa1, 0x95, 0x01, 0xd2, 0x9f, 0xa7, 0x33, 0x7d, 0x2e, 0xcd, 0xce, 0xdf, 0x2d, 0xc1, 0xbb, 0x08, -0xe7, 0xf6, 0x90, 0x8e, 0xa8, 0xd0, 0xd0, 0x6f, 0x85, 0xa9, 0x45, 0x42, 0x67, 0x7f, 0xd5, 0x7d, -0x9a, 0x4e, 0xfd, 0x54, 0xb3, 0x0c, 0x59, 0x7a, 0xa1, 0x49, 0x8f, 0x3d, 0x38, 0xbd, 0x92, 0x77, -0x56, 0xb2, 0x50, 0xa2, 0x34, 0xed, 0x54, 0x75, 0xf1, 0x21, 0x4b, 0x68, 0xed, 0x8f, 0x47, 0xc1, -0x74, 0x12, 0x73, 0x1b, 0x39, 0x3d, 0x07, 0xd3, 0xb9, 0x15, 0x96, 0xe5, 0x98, 0x77, 0x25, 0xa7, -0x4d, 0xc1, 0x1c, 0x7b, 0xb1, 0xf5, 0x57, 0x3d, 0x08, 0x4f, 0x8f, 0x1b, 0x6c, 0x76, 0x37, 0x14, -0x52, 0x5c, 0x1b, 0x2f, 0xca, 0xa4, 0xc5, 0xd5, 0xe3, 0xa3, 0x4c, 0x19, 0xce, 0xd2, 0x48, 0xda, -0x67, 0x8d, 0x8f, 0x92, 0xfc, 0x63, 0xda, 0x72, 0x62, 0x9d, 0x54, 0x7b, 0xf8, 0x35, 0xf6, 0x1f, -0x67, 0xf0, 0xe8, 0x65, 0x83, 0xc7, 0x05, 0x86, 0x12, 0xc4, 0x63, 0xa9, 0xfa, 0xf0, 0x2b, 0x38, -0x7e, 0x3a, 0xfe, 0xe6, 0xf1, 0xc6, 0x0d, 0xe6, 0x87, 0xa8, 0xe5, 0x51, 0x2e, 0x0f, 0xa9, 0xcd, -0x14, 0x2f, 0xc9, 0x63, 0x8c, 0x33, 0x9f, 0x18, 0x79, 0x27, 0xd9, 0x26, 0xdb, 0xb8, 0xae, 0x8c, -0x37, 0x7f, 0xd8, 0xc9, 0x6f, 0xac, 0xe1, 0x75, 0xf7, 0xa4, 0x46, 0x1e, 0xeb, 0x74, 0x98, 0xb7, -0x51, 0x59, 0x60, 0x8a, 0xb9, 0xb5, 0x9c, 0xa7, 0x06, 0x08, 0x3f, 0x5a, 0x0b, 0x18, 0xaf, 0x47, -0xc4, 0x8c, 0xd3, 0xde, 0xfd, 0x71, 0xa9, 0x0c, 0x63, 0x1f, 0xfd, 0xe6, 0xd0, 0xac, 0x75, 0xe7, -0x90, 0xaa, 0x4d, 0x39, 0x8b, 0x3d, 0xb3, 0x7a, 0x48, 0x26, 0x53, 0x7b, 0x96, 0xee, 0x15, 0xf5, -0x68, 0xca, 0x6b, 0xd7, 0xeb, 0x11, 0xce, 0x85, 0xc2, 0x12, 0xf2, 0x52, 0x79, 0xb1, 0x6d, 0x1c, -0x47, 0xc8, 0x92, 0x57, 0xa5, 0x28, 0x3b, 0x12, 0xdf, 0xfa, 0x55, 0xe8, 0x21, 0x3d, 0xf7, 0xeb, -0x37, 0x87, 0x42, 0xab, 0xcf, 0xa5, 0xfa, 0x7a, 0xa3, 0x7e, 0x20, 0xcc, 0x13, 0x71, 0xeb, 0xc4, -0xf5, 0x41, 0xa2, 0xf5, 0xc1, 0x12, 0xe8, 0xbf, 0xb5, 0x16, 0x0c, 0xb7, 0x22, 0x3d, 0x05, 0x93, -0x4c, 0x21, 0xba, 0x53, 0x6d, 0xa7, 0x9e, 0xc4, 0x63, 0x88, 0xd1, 0x38, 0x2f, 0xc6, 0x3c, 0xd4, -0xf6, 0x1b, 0xb4, 0x3b, 0xb7, 0x6d, 0xfa, 0x8e, 0x6d, 0x60, 0x8a, 0xe6, 0xa7, 0xdb, 0x1f, 0x33, -0x4a, 0xd8, 0x76, 0xd9, 0x24, 0x61, 0x2f, 0x24, 0xf5, 0xcb, 0x50, 0x47, 0xd6, 0x45, 0x92, 0x1f, -0x5f, 0xff, 0x9a, 0xe6, 0xc5, 0x56, 0x6b, 0x5d, 0x14, 0xb2, 0x56, 0x23, 0xb6, 0x9d, 0xbc, 0x7e, -0xf9, 0xc6, 0x9f, 0x13, 0x56, 0x90, 0xa6, 0xfe, 0x5e, 0xde, 0x29, 0x33, 0x9e, 0xf5, 0x96, 0x80, -0x41, 0x6b, 0xa5, 0xbd, 0x3e, 0xd3, 0x46, 0x43, 0xcc, 0x66, 0x19, 0x92, 0x9d, 0x37, 0x28, 0x6b, -0x29, 0xa7, 0x93, 0xef, 0x23, 0xc4, 0xb2, 0x34, 0xe5, 0xb9, 0x7a, 0x1e, 0xe9, 0xce, 0x53, 0x37, -0xf8, 0xa6, 0xe4, 0xfa, 0xdf, 0x8c, 0xed, 0x90, 0xa3, 0xd7, 0xff, 0x22, 0x3b, 0x79, 0xfd, 0x2f, -0xc6, 0x7f, 0x2a, 0x97, 0xdd, 0xe0, 0x8b, 0x03, 0x99, 0x5f, 0x10, 0x55, 0xf1, 0xba, 0xc0, 0x21, -0xa8, 0x28, 0x18, 0x89, 0xaa, 0x08, 0xad, 0x8b, 0xec, 0x9f, 0xd8, 0x9b, 0x85, 0xbd, 0x8a, 0xa0, -0x3c, 0xb7, 0x3e, 0x07, 0x86, 0x3e, 0x47, 0x26, 0x04, 0x30, 0xcf, 0x83, 0x7f, 0x1a, 0xcf, 0xb2, -0xef, 0x8b, 0x7f, 0x71, 0xe0, 0x9a, 0xf1, 0xf2, 0xf0, 0x78, 0x31, 0xd6, 0xb9, 0x33, 0xa1, 0xad, -0xa3, 0x38, 0xa4, 0x49, 0xd5, 0x93, 0xee, 0x19, 0xbc, 0x37, 0xab, 0x18, 0x92, 0xbc, 0xe5, 0x28, -0xe1, 0x06, 0xcd, 0x1f, 0xa4, 0xfe, 0xf6, 0x9d, 0xeb, 0xa2, 0xa6, 0xb8, 0x6e, 0x16, 0xf9, 0x6f, -0x34, 0xce, 0x6a, 0x55, 0xac, 0x88, 0xb9, 0xb5, 0x9e, 0xad, 0x60, 0x78, 0x70, 0x2a, 0x7e, 0xb7, -0x02, 0xd7, 0x2f, 0x4b, 0x68, 0x75, 0x07, 0x20, 0xe7, 0xa0, 0xcc, 0x36, 0x15, 0x87, 0x70, 0x46, -0xf7, 0xd3, 0x33, 0x62, 0xb6, 0xf2, 0x8d, 0xfd, 0x64, 0x41, 0xf2, 0x15, 0x3f, 0x98, 0xf0, 0xbb, -0x42, 0x68, 0x9f, 0xb5, 0x12, 0x65, 0xd4, 0x0e, 0xfb, 0x2c, 0xc5, 0x36, 0xab, 0x1a, 0x3a, 0xed, -0xb5, 0xd2, 0x4c, 0x90, 0xec, 0x7e, 0xfc, 0xad, 0x2b, 0x49, 0xd8, 0xab, 0x43, 0xdf, 0x35, 0x29, -0xc2, 0x07, 0x01, 0xd6, 0x95, 0xc0, 0x2f, 0x24, 0xe8, 0xc5, 0x5f, 0x07, 0xf4, 0xe1, 0xaf, 0x0b, -0xd6, 0x4b, 0xb3, 0x14, 0xf2, 0x8d, 0x6c, 0x95, 0x5a, 0xc7, 0x47, 0x63, 0x76, 0x4f, 0x2e, 0xed, -0x54, 0xc2, 0x13, 0xd8, 0x86, 0xbf, 0xa4, 0x59, 0x51, 0xdf, 0xef, 0x35, 0xd2, 0x3e, 0x0f, 0xd6, -0x26, 0xf6, 0x7a, 0x0c, 0x81, 0x12, 0xe8, 0xff, 0x8b, 0x56, 0xc5, 0x07, 0xa7, 0xf0, 0xb7, 0x14, -0x4e, 0xe3, 0x1c, 0x58, 0xf7, 0xa7, 0xe1, 0x67, 0x28, 0x4a, 0x41, 0xa7, 0xea, 0x7a, 0x33, 0xd6, -0x9b, 0xab, 0x41, 0xc8, 0x3a, 0xac, 0x42, 0xc8, 0x1c, 0x33, 0xd1, 0x6c, 0x42, 0x1a, 0x78, 0x1a, -0xe1, 0x64, 0x14, 0x70, 0xd2, 0x70, 0x35, 0xeb, 0xd0, 0x8d, 0xe7, 0x56, 0xd6, 0x8e, 0xf8, 0x57, -0x78, 0xac, 0x72, 0xa8, 0x9e, 0x12, 0x5c, 0x67, 0x64, 0xa2, 0x71, 0x13, 0xe7, 0x53, 0x19, 0xce, -0xf8, 0x89, 0xf3, 0xc9, 0x49, 0xb5, 0x99, 0x5f, 0xc0, 0x9e, 0xbf, 0xa9, 0x5c, 0xc1, 0xd9, 0xd5, -0xa2, 0xe5, 0x20, 0x6a, 0x45, 0x31, 0x97, 0x31, 0xad, 0x51, 0x2e, 0xbd, 0x2e, 0x45, 0x70, 0x08, -0x8a, 0x10, 0x1f, 0xbf, 0x15, 0x47, 0xe4, 0xd6, 0x20, 0x98, 0x6f, 0x9d, 0x0b, 0x16, 0xc9, 0x74, -0xa6, 0x4f, 0x8d, 0xb4, 0x83, 0xd4, 0x20, 0xab, 0x70, 0x22, 0x95, 0x68, 0x8b, 0x61, 0x4f, 0x30, -0xfd, 0x53, 0xa3, 0xc0, 0xca, 0xc3, 0xc2, 0xab, 0xa7, 0x81, 0x67, 0x3f, 0x41, 0x04, 0x32, 0x69, -0x25, 0x7b, 0xc8, 0xbd, 0xa6, 0xaf, 0x51, 0x33, 0x53, 0xd0, 0x37, 0x55, 0x9e, 0x85, 0x57, 0xd8, -0xcc, 0x55, 0x58, 0xd0, 0xa1, 0xab, 0xed, 0x5a, 0x0d, 0x62, 0x1e, 0xd4, 0xfc, 0x7e, 0x8b, 0x0e, -0x47, 0x4a, 0xfa, 0xcd, 0xa1, 0x85, 0x9f, 0x9c, 0xd3, 0x15, 0xd7, 0x2b, 0xa6, 0x49, 0x63, 0x31, -0x95, 0x38, 0x82, 0x53, 0x8f, 0xd7, 0x6f, 0x2e, 0x81, 0x92, 0x17, 0x14, 0x13, 0x5e, 0x13, 0xe4, -0x97, 0x50, 0x8c, 0x4f, 0x4e, 0x9d, 0x0c, 0xba, 0x63, 0x6a, 0xfc, 0x34, 0xb1, 0xea, 0x23, 0x47, -0xa2, 0x3b, 0x75, 0x6d, 0x1d, 0xa2, 0xd4, 0x12, 0x2c, 0xb5, 0x84, 0x4b, 0xd5, 0xe8, 0xad, 0x07, -0x26, 0xc3, 0xd0, 0x43, 0x30, 0x0c, 0xaa, 0x6b, 0x8d, 0x51, 0x85, 0x7b, 0xf2, 0x66, 0x8e, 0x1b, -0x18, 0x46, 0xe8, 0x89, 0x68, 0x4a, 0x62, 0x3d, 0xd1, 0x8d, 0x04, 0x36, 0x13, 0x26, 0xc4, 0xc7, -0x67, 0x11, 0xf6, 0x23, 0xac, 0x67, 0x11, 0xac, 0x73, 0xcf, 0xf4, 0x61, 0x2b, 0x7e, 0x9a, 0x09, -0x59, 0xdd, 0xb6, 0x1b, 0xb5, 0x29, 0xdd, 0x53, 0xd1, 0x26, 0xec, 0x9f, 0xda, 0x3b, 0x43, 0x9c, -0xac, 0xaf, 0x04, 0x24, 0xf9, 0xbb, 0xc2, 0xc9, 0xf0, 0xba, 0x41, 0x09, 0x8f, 0xa7, 0xd6, 0x8f, -0x64, 0x56, 0x18, 0xcb, 0xd8, 0x75, 0x6d, 0x19, 0x88, 0x83, 0xd2, 0x0d, 0xbe, 0x7e, 0x28, 0xfd, -0xb5, 0x7e, 0xbf, 0x8a, 0xff, 0xc8, 0x1b, 0x7e, 0xb2, 0xf7, 0x7f, 0xbb, 0x94, 0x7b, 0xe4, 0x52, -0xa6, 0xa1, 0x2a, 0x57, 0x69, 0xdb, 0xae, 0xcd, 0x2a, 0x2c, 0x35, 0xaa, 0xd1, 0x4b, 0x31, 0x7a, -0x5a, 0x9e, 0x2f, 0x5d, 0xd6, 0x6a, 0xfe, 0x16, 0x7b, 0xca, 0x2d, 0x9e, 0x8f, 0x33, 0xad, 0x49, -0x1d, 0x15, 0x35, 0x4f, 0xe1, 0x7e, 0x95, 0xae, 0x5a, 0xe4, 0xb0, 0xdd, 0xcd, 0x7e, 0x6b, 0xad, -0xcc, 0xbf, 0x16, 0x79, 0x75, 0x3e, 0x3f, 0x59, 0xd5, 0xaa, 0x5c, 0xec, 0x4f, 0xd9, 0xe6, 0x00, -0xd7, 0x4a, 0xc6, 0xc1, 0x68, 0x8a, 0x83, 0x5d, 0x12, 0x07, 0x2a, 0x41, 0x26, 0xff, 0x47, 0x57, -0x39, 0xf5, 0x82, 0x72, 0x05, 0xa5, 0x9a, 0x2b, 0x60, 0x41, 0x7a, 0x77, 0x35, 0x2d, 0xed, 0x64, -0xca, 0x6a, 0x74, 0x7a, 0x79, 0x25, 0x1a, 0x46, 0x3e, 0x3d, 0x06, 0x1f, 0x37, 0x69, 0x32, 0x4f, -0xa6, 0x14, 0xc3, 0x3d, 0x0b, 0x22, 0x27, 0xfc, 0x13, 0x0d, 0x62, 0xd8, 0xee, 0xcb, 0x14, 0x87, -0xea, 0xad, 0xd7, 0x43, 0xdf, 0xdd, 0x42, 0x7e, 0x0f, 0xcd, 0x5e, 0x0b, 0x79, 0x46, 0x16, 0x7d, -0x56, 0xcf, 0x39, 0x93, 0xee, 0x66, 0x97, 0x9f, 0x23, 0x35, 0x60, 0x0d, 0x1f, 0x0d, 0xca, 0xf0, -0xd1, 0x33, 0xe4, 0x29, 0x7f, 0x9c, 0xe3, 0xe4, 0xf5, 0xf7, 0xd7, 0x7f, 0x53, 0x71, 0x90, 0x4f, -0x27, 0xa4, 0x84, 0x3b, 0xd9, 0xf7, 0x8a, 0x63, 0xae, 0x88, 0x12, 0xb6, 0x51, 0xaa, 0x82, 0xcf, -0x7e, 0xd5, 0xc7, 0xf3, 0xdb, 0x85, 0xbd, 0xf8, 0xec, 0x90, 0x5f, 0x29, 0x2d, 0xee, 0x24, 0x19, -0x47, 0x29, 0xe7, 0x77, 0x9b, 0xf8, 0x5d, 0xe5, 0x97, 0x3b, 0xe1, 0xff, 0x51, 0xe6, 0xe0, 0x6f, -0x8e, 0x72, 0x97, 0x9a, 0x2f, 0xc8, 0xf9, 0xf4, 0x4a, 0x88, 0xf3, 0x3d, 0xcb, 0xf9, 0xea, 0x30, -0x47, 0x87, 0xd2, 0xc0, 0xf9, 0xee, 0x56, 0xf3, 0xdd, 0xc3, 0xf9, 0x0c, 0xca, 0xbd, 0x9c, 0x6f, -0x27, 0xe7, 0xbb, 0x0f, 0x73, 0xfc, 0xad, 0xb2, 0x94, 0xf3, 0xdd, 0xaf, 0xe6, 0x5b, 0xce, 0xf9, -0x8c, 0x4a, 0x0b, 0xe7, 0xdb, 0xcf, 0xf9, 0xe2, 0x98, 0x63, 0x8d, 0xd2, 0xce, 0xf9, 0xbe, 0xaf, -0xe6, 0x5b, 0xc3, 0xef, 0x47, 0xf8, 0x7d, 0xb7, 0x9a, 0xb6, 0x9e, 0xbf, 0xd5, 0x29, 0xfd, 0xfc, -0xee, 0x0c, 0xbf, 0xdb, 0x84, 0x5f, 0x75, 0x2a, 0x5b, 0xf8, 0xdb, 0x1f, 0xa9, 0xf9, 0x7e, 0xcc, -0xf9, 0xb2, 0x94, 0x9f, 0x70, 0xbe, 0x2b, 0x9c, 0xef, 0xa7, 0x98, 0xe3, 0x7f, 0x2a, 0xdb, 0x38, -0xdf, 0xf3, 0x6a, 0xbe, 0x01, 0xce, 0x97, 0xad, 0xec, 0xa4, 0x7c, 0x43, 0x06, 0xce, 0xb7, 0x1b, -0x73, 0x3c, 0xa8, 0xec, 0xe5, 0x7c, 0xff, 0xa6, 0xe6, 0xdb, 0xc7, 0xf9, 0xa6, 0x28, 0xaf, 0x71, -0x3e, 0x2b, 0xe7, 0x3b, 0x80, 0x39, 0xfe, 0x4e, 0x39, 0xc4, 0xf9, 0xfe, 0x5d, 0xcd, 0x37, 0x22, -0x3c, 0x13, 0x20, 0xe4, 0x8f, 0xd5, 0x6f, 0x24, 0x99, 0x7c, 0xe8, 0x74, 0x0a, 0x2b, 0x72, 0xd9, -0xe2, 0x98, 0x24, 0x81, 0xbc, 0xea, 0x8b, 0x8a, 0x63, 0xde, 0x39, 0x98, 0xda, 0x0e, 0x6e, 0x53, -0x5b, 0xee, 0xf1, 0x2e, 0xd2, 0xfb, 0xcf, 0x3a, 0xb8, 0x3a, 0xef, 0x68, 0x22, 0x3e, 0x67, 0x22, -0xa5, 0x11, 0xb6, 0xec, 0x70, 0x4a, 0x9a, 0xdb, 0x01, 0xb2, 0xa5, 0xfa, 0x1c, 0xe4, 0xa1, 0x8c, -0x97, 0x3d, 0xb0, 0x55, 0xb9, 0x14, 0x33, 0xb2, 0x4f, 0xc2, 0x0b, 0x92, 0x61, 0xb8, 0x77, 0x38, -0xb1, 0xf0, 0x0f, 0xa6, 0x63, 0xe1, 0xcd, 0x28, 0x01, 0x19, 0xde, 0xeb, 0x1b, 0xee, 0x25, 0xcb, -0x9d, 0xea, 0x3f, 0x20, 0x5d, 0x75, 0x29, 0xa5, 0xf5, 0x9b, 0x3c, 0x28, 0xb9, 0x1e, 0xeb, 0x3d, -0xd6, 0x2b, 0xdd, 0x19, 0x3a, 0x16, 0xb5, 0xda, 0xc3, 0x96, 0x2a, 0x98, 0x93, 0xc9, 0x4b, 0x40, -0x37, 0xc5, 0x1e, 0x19, 0xfa, 0x04, 0x72, 0xbe, 0xb0, 0x42, 0x51, 0x60, 0xea, 0x8c, 0x15, 0xca, -0x1f, 0x21, 0x17, 0xd3, 0x66, 0x42, 0x16, 0xe4, 0x91, 0x7f, 0x07, 0xdd, 0x56, 0xc8, 0xb7, 0x17, -0xa3, 0x94, 0x6c, 0xe6, 0xa7, 0xdd, 0x90, 0x3f, 0xa3, 0x1a, 0xdc, 0x98, 0xef, 0x33, 0x70, 0xe6, -0x4d, 0x27, 0x5a, 0x37, 0x23, 0x04, 0x25, 0x14, 0x0b, 0x84, 0x7d, 0x3e, 0x54, 0xa6, 0x65, 0x37, -0xa9, 0x26, 0xc3, 0xc3, 0xd9, 0x47, 0x69, 0xbb, 0xf7, 0x48, 0xf7, 0xbc, 0x0f, 0x20, 0xaf, 0x2d, -0x67, 0x47, 0x77, 0x14, 0x14, 0x33, 0xfb, 0xef, 0x31, 0x68, 0xbe, 0x3a, 0x1d, 0x64, 0x77, 0xa3, -0x54, 0x45, 0x88, 0x03, 0xa8, 0xaa, 0x23, 0xcb, 0xd1, 0x58, 0x95, 0xaa, 0xc9, 0xcb, 0x71, 0xce, -0x7f, 0xe5, 0x21, 0xac, 0x9e, 0x7d, 0xae, 0x7e, 0xa3, 0x7a, 0x72, 0x57, 0x44, 0x1e, 0x15, 0x15, -0x85, 0xdf, 0x21, 0xae, 0xd7, 0xef, 0x49, 0x5e, 0xe5, 0xd3, 0x70, 0xbd, 0xf0, 0xa7, 0xa9, 0x46, -0x42, 0xa7, 0xb7, 0x56, 0xed, 0xcb, 0x8c, 0x2f, 0x1c, 0xf5, 0x1b, 0x33, 0xea, 0x23, 0x0f, 0x08, -0x85, 0xed, 0x20, 0xef, 0xfb, 0xef, 0x5a, 0x0a, 0x66, 0xf8, 0x46, 0x00, 0x78, 0x20, 0x56, 0x88, -0x14, 0x71, 0xe9, 0x04, 0x2f, 0x0d, 0x4b, 0x27, 0x58, 0x7b, 0x2e, 0x9d, 0x60, 0xb9, 0x99, 0xb9, -0xbf, 0xd2, 0x9c, 0xb9, 0xbf, 0x62, 0x0f, 0xc7, 0x9b, 0xd3, 0x63, 0x27, 0x3c, 0x28, 0x50, 0x84, -0x5a, 0xc9, 0x2f, 0xe7, 0x99, 0x75, 0xe0, 0x8d, 0xe5, 0x09, 0x7f, 0x00, 0xd2, 0xd4, 0x48, 0xa2, -0xfe, 0xfb, 0xf6, 0x50, 0x9e, 0x2d, 0x7a, 0x8e, 0x6d, 0x7f, 0x96, 0xab, 0x1c, 0x1e, 0x9d, 0x04, -0x91, 0x67, 0xdc, 0xe5, 0xde, 0x59, 0x48, 0x61, 0x66, 0xb1, 0x27, 0x49, 0xe4, 0xf2, 0x04, 0x6e, -0xe2, 0x77, 0xb3, 0x94, 0x38, 0xc5, 0xb4, 0xa0, 0xb1, 0xa0, 0x72, 0x59, 0xdf, 0x20, 0xc1, 0x5e, -0xa0, 0xd4, 0x1d, 0x90, 0x68, 0x1e, 0xd9, 0x56, 0x06, 0xfa, 0xd9, 0xa3, 0xde, 0x5e, 0x7c, 0x7b, -0xba, 0xfe, 0xfb, 0x71, 0x5d, 0xba, 0xbf, 0xd4, 0x7a, 0x61, 0xcb, 0x1b, 0xd7, 0x91, 0xef, 0xd4, -0xc0, 0x56, 0xb6, 0xd2, 0x4d, 0xf7, 0xaf, 0x94, 0xbd, 0x84, 0x44, 0x45, 0xdb, 0xeb, 0xbf, 0x4b, -0x76, 0x59, 0x48, 0xb3, 0x7c, 0x8e, 0x59, 0xc2, 0x0f, 0x9d, 0x73, 0x16, 0x58, 0x5c, 0xb3, 0x70, -0x25, 0xc8, 0xf2, 0x4e, 0x63, 0x2d, 0x82, 0xcf, 0x2e, 0xee, 0x73, 0xa8, 0x67, 0xb4, 0x51, 0x27, -0xcd, 0xb3, 0xd7, 0xcb, 0x91, 0x77, 0x58, 0x78, 0x6b, 0x96, 0xd7, 0x84, 0xa3, 0x48, 0xbc, 0x51, -0xb9, 0xc8, 0xf7, 0x21, 0x88, 0x55, 0x08, 0x7e, 0xce, 0x11, 0x31, 0x8a, 0x21, 0xc8, 0x3b, 0x2d, -0x67, 0x98, 0x1f, 0xa9, 0x94, 0x1f, 0x8c, 0x83, 0x4f, 0x37, 0x9c, 0x70, 0x36, 0x83, 0xf9, 0xed, -0x41, 0xe7, 0xd7, 0x4c, 0x10, 0x35, 0xe2, 0x7c, 0x92, 0x64, 0x5b, 0x5c, 0x19, 0xe8, 0x89, 0xe5, -0xb5, 0x4b, 0x71, 0x9d, 0x1b, 0x0e, 0xf4, 0x44, 0xf5, 0x91, 0xbe, 0xe1, 0xc4, 0xa2, 0xee, 0xe8, -0x47, 0x35, 0xef, 0x2b, 0xa7, 0x22, 0xd5, 0xb2, 0xd1, 0x1e, 0x7c, 0x62, 0xa8, 0x4d, 0x17, 0xff, -0xea, 0xc0, 0xc3, 0xcb, 0xf6, 0x0e, 0xf6, 0x9e, 0x5f, 0x1f, 0xa1, 0x7d, 0xb0, 0xb0, 0xbe, 0x97, -0x74, 0x82, 0x8e, 0xf5, 0x62, 0xdf, 0xcc, 0x6f, 0xed, 0x77, 0xdc, 0x11, 0xc2, 0x15, 0xee, 0xf0, -0xa0, 0x5c, 0xda, 0xa6, 0xec, 0xe8, 0x8e, 0x79, 0xda, 0x74, 0x4e, 0xdd, 0x6b, 0xdd, 0x54, 0xd6, -0x91, 0xae, 0x45, 0x89, 0xe8, 0x47, 0x72, 0x41, 0x9c, 0x39, 0xfc, 0xe2, 0x1a, 0x8e, 0x62, 0x78, -0x55, 0x6d, 0xf1, 0xee, 0x86, 0x0d, 0x4f, 0x0c, 0x49, 0xa6, 0xba, 0x8b, 0xe6, 0x2a, 0xe5, 0x94, -0x6a, 0xa5, 0x75, 0x95, 0xe2, 0x09, 0xbb, 0x67, 0x89, 0x08, 0x22, 0xed, 0x50, 0xe6, 0xd6, 0xf5, -0xe2, 0xaa, 0x75, 0xa5, 0xbf, 0xdb, 0x01, 0x4e, 0x37, 0x04, 0x8d, 0x3d, 0x53, 0x14, 0x45, 0xf9, -0xe0, 0x51, 0x67, 0x78, 0xe1, 0x79, 0x68, 0xea, 0x80, 0xf9, 0xa3, 0xe3, 0x2f, 0xef, 0xec, 0x69, -0xd2, 0x3b, 0xf5, 0x52, 0xb1, 0xce, 0x14, 0xcb, 0x13, 0x16, 0x9b, 0xde, 0xec, 0xfa, 0x4d, 0xc7, -0x12, 0x9b, 0x38, 0x0e, 0x42, 0xb8, 0x1b, 0x29, 0xc8, 0xa1, 0xc6, 0x47, 0xff, 0xed, 0x8d, 0xe8, -0x51, 0x8f, 0x5b, 0xd7, 0x42, 0xdc, 0xd2, 0xc5, 0x7d, 0xf8, 0xdd, 0x3a, 0xf2, 0x20, 0x86, 0x2b, -0x30, 0xe5, 0xde, 0xec, 0xd4, 0x60, 0xec, 0x60, 0x18, 0xaf, 0x62, 0x18, 0x1b, 0x53, 0x30, 0x5e, -0xc5, 0x1a, 0x6a, 0x1a, 0x8c, 0x1f, 0x8c, 0xeb, 0xba, 0x9e, 0x07, 0x4b, 0xa0, 0x56, 0xf6, 0x88, -0xba, 0x87, 0x13, 0xe4, 0x23, 0xf0, 0xf0, 0xa0, 0xe4, 0x33, 0xc1, 0x0d, 0xda, 0x60, 0x89, 0xd4, -0xe2, 0x08, 0x18, 0x71, 0x15, 0x0e, 0x2e, 0xea, 0xda, 0x91, 0x58, 0xfa, 0x5a, 0x7c, 0xfc, 0x95, -0xe7, 0xf9, 0x8d, 0x0f, 0x71, 0x26, 0xb8, 0xa8, 0x0f, 0xb9, 0x06, 0x2c, 0xe3, 0xad, 0x21, 0xcf, -0x1d, 0x7d, 0x10, 0x5e, 0x87, 0x74, 0x21, 0x8a, 0xef, 0xac, 0xf1, 0x29, 0x04, 0x37, 0x86, 0x59, -0xb6, 0x06, 0x33, 0xc9, 0xc0, 0xd1, 0x61, 0x47, 0x84, 0xbd, 0x5a, 0xd5, 0x1c, 0x97, 0x17, 0x5c, -0x88, 0x7b, 0x1e, 0xb1, 0xc2, 0x7a, 0x0d, 0x64, 0x57, 0x75, 0xb1, 0xaa, 0xfe, 0x49, 0x97, 0x1f, -0xdb, 0xb9, 0x9d, 0x63, 0x69, 0x5c, 0x8d, 0xb0, 0x1f, 0x5b, 0x8a, 0x50, 0xc3, 0x3d, 0xb5, 0xb5, -0x51, 0x1c, 0xd2, 0x9c, 0x35, 0xca, 0xad, 0x6b, 0x6d, 0x10, 0x49, 0x34, 0x76, 0x51, 0xfb, 0x91, -0x0b, 0x0f, 0x2e, 0xbb, 0x10, 0xe8, 0x77, 0xe3, 0xbd, 0xf7, 0x26, 0xc4, 0x22, 0x15, 0x83, 0x82, -0x09, 0x77, 0xe2, 0xc6, 0x23, 0xd1, 0xb0, 0xe1, 0xef, 0xdf, 0x24, 0x98, 0x5e, 0x2a, 0x12, 0xb0, -0xa8, 0xbe, 0x08, 0x01, 0x5a, 0xd1, 0x67, 0x3c, 0x0f, 0xa6, 0x3e, 0x10, 0x56, 0xe3, 0x5c, 0xf3, -0xe6, 0x08, 0xa6, 0x08, 0x78, 0xc4, 0xcc, 0x72, 0x91, 0x54, 0x7d, 0x78, 0x30, 0xb0, 0x55, 0x67, -0x92, 0x73, 0xe2, 0x60, 0xbf, 0xe9, 0xc8, 0x63, 0x47, 0xba, 0x8e, 0x3c, 0x12, 0x79, 0xac, 0x31, -0xb1, 0xe6, 0x4b, 0x7b, 0x1e, 0x8b, 0x9e, 0x8e, 0x3c, 0x16, 0xb7, 0x0d, 0x3c, 0xd6, 0xb4, 0x9d, -0x47, 0xef, 0x27, 0x33, 0x56, 0x80, 0x49, 0x8c, 0xdc, 0xa5, 0xa2, 0x99, 0x78, 0x4f, 0xfe, 0xef, -0xe2, 0x20, 0x9b, 0xa5, 0x16, 0x30, 0x07, 0x06, 0x44, 0x0f, 0xb8, 0xf5, 0x97, 0xd6, 0xc0, 0xdf, -0xbf, 0x29, 0x97, 0x6a, 0x18, 0x01, 0xa6, 0x08, 0x79, 0xa6, 0x35, 0x51, 0xbe, 0x5b, 0x13, 0x8d, -0x13, 0x5a, 0xb3, 0xa9, 0xa7, 0x71, 0xad, 0x3a, 0x36, 0x8e, 0xc8, 0x63, 0x12, 0x8d, 0x4b, 0x62, -0xe0, 0xb1, 0xa5, 0xfb, 0x09, 0xea, 0x1c, 0xcd, 0xb7, 0x85, 0x46, 0xc3, 0x4d, 0x65, 0xac, 0xbd, -0x6d, 0xad, 0xda, 0x13, 0x73, 0xba, 0x27, 0xe2, 0x5b, 0x1c, 0xa7, 0x38, 0x4a, 0x58, 0xdb, 0x74, -0x2d, 0x38, 0x9e, 0x08, 0x6b, 0x4b, 0x95, 0xa2, 0x08, 0x1d, 0x1d, 0x8e, 0xf3, 0xed, 0x05, 0x0b, -0x45, 0xb4, 0xc5, 0xd9, 0x78, 0xf5, 0xda, 0xf9, 0x1c, 0xab, 0xf7, 0x75, 0x2a, 0x87, 0x0e, 0x7f, -0x00, 0x41, 0xe6, 0x18, 0xb1, 0xb6, 0xdb, 0x5e, 0x04, 0x5b, 0x1f, 0xb0, 0xd7, 0xfd, 0xe9, 0x51, -0x1b, 0xc5, 0x8d, 0x21, 0xb9, 0x42, 0x7c, 0x77, 0xa9, 0x28, 0xae, 0xef, 0xda, 0x86, 0xd8, 0x67, -0x99, 0x94, 0xfe, 0x34, 0xb5, 0x24, 0xae, 0x88, 0x58, 0x3c, 0x66, 0x83, 0xba, 0x8a, 0x78, 0xc1, -0x4c, 0xfa, 0xc6, 0xd8, 0xb2, 0x0e, 0xfc, 0xeb, 0x24, 0x9d, 0x63, 0x5d, 0xef, 0x0c, 0xbf, 0xae, -0xdd, 0xeb, 0xd6, 0x99, 0x54, 0x4d, 0x26, 0x6c, 0x0b, 0xa6, 0xc4, 0x59, 0x7a, 0x73, 0xb4, 0xe9, -0x24, 0x7f, 0x8f, 0xd0, 0x40, 0xa7, 0xb7, 0x7b, 0x14, 0x6d, 0x46, 0xe4, 0x4a, 0xcd, 0xba, 0x38, -0xf6, 0x0e, 0xdf, 0xb1, 0x7f, 0x1e, 0x45, 0xac, 0x2b, 0x99, 0xb5, 0x50, 0x0e, 0xf6, 0x62, 0x3d, -0x9d, 0x3d, 0x78, 0xa4, 0xca, 0x17, 0x6d, 0x4b, 0x7f, 0xaf, 0x62, 0xa8, 0x5e, 0xb3, 0xcc, 0xd4, -0xca, 0x52, 0xa9, 0x60, 0xa5, 0x43, 0x9d, 0xf7, 0xae, 0x56, 0xf2, 0x05, 0x44, 0x2d, 0x46, 0x9a, -0x68, 0xf9, 0xe1, 0x60, 0x26, 0xbe, 0x11, 0x65, 0x64, 0x1f, 0x08, 0xd6, 0x86, 0x0d, 0xae, 0xc4, -0xf9, 0x3e, 0xa9, 0x15, 0xac, 0x91, 0x84, 0x94, 0x88, 0x7f, 0xf5, 0x95, 0x4d, 0x92, 0x5b, 0xd7, -0x3e, 0xf0, 0xe8, 0x52, 0xd3, 0x70, 0x0f, 0xfe, 0x02, 0xf6, 0x55, 0xcd, 0xcb, 0x91, 0x9c, 0xfc, -0x9f, 0xb7, 0x95, 0x88, 0x79, 0xeb, 0x97, 0x59, 0xaa, 0x2f, 0x08, 0x3c, 0xf6, 0xfa, 0xb6, 0x02, -0xf9, 0x73, 0x70, 0x36, 0xeb, 0x5a, 0x66, 0x2c, 0xd0, 0x75, 0x2c, 0xbc, 0xa0, 0xbc, 0xe7, 0x22, -0x6c, 0xe9, 0xf5, 0x1a, 0x84, 0x47, 0x05, 0x6a, 0x09, 0xc2, 0xb1, 0x93, 0x31, 0x4b, 0x4f, 0xb6, -0x36, 0x17, 0xf7, 0x91, 0xf5, 0x8b, 0x46, 0x53, 0x62, 0x16, 0x2d, 0xa7, 0x88, 0x28, 0x25, 0xc7, -0x99, 0xc6, 0xec, 0x60, 0x1a, 0xe3, 0xd6, 0x75, 0xa4, 0xa8, 0x0c, 0x59, 0x3d, 0x6d, 0x9d, 0x48, -0x0d, 0xbc, 0x77, 0x90, 0xa5, 0x84, 0x57, 0x9f, 0x59, 0x5e, 0x94, 0x79, 0xd8, 0xd7, 0x4f, 0xb2, -0x0c, 0x99, 0x91, 0xd7, 0xb1, 0x70, 0x06, 0xe7, 0x56, 0x4b, 0x3b, 0x29, 0xdf, 0xcb, 0xf3, 0xa6, -0x63, 0x51, 0x6f, 0xb8, 0x37, 0x8a, 0xe5, 0xea, 0x3a, 0x27, 0x97, 0x9a, 0xc6, 0x81, 0x86, 0x0d, -0x25, 0x3d, 0x42, 0xe7, 0x81, 0xbc, 0x1d, 0x12, 0x9e, 0x10, 0x3c, 0x58, 0x72, 0x61, 0x8a, 0x78, -0x60, 0x2a, 0x53, 0xa1, 0xa4, 0x28, 0xfb, 0xc0, 0xd4, 0xcc, 0x35, 0x07, 0xb1, 0x22, 0x07, 0x29, -0xcd, 0x56, 0xf2, 0x4b, 0x18, 0xd7, 0x31, 0x37, 0x73, 0x4c, 0xa3, 0xe6, 0x8c, 0x25, 0xad, 0x64, -0x1b, 0x8c, 0xa3, 0xdf, 0x2a, 0xca, 0x60, 0x4a, 0x24, 0xec, 0x6e, 0x4d, 0x2c, 0x33, 0x26, 0x62, -0x4b, 0xed, 0x58, 0x1b, 0xae, 0xbe, 0x49, 0xa4, 0xa4, 0x64, 0x77, 0xfd, 0x3e, 0xf6, 0xf3, 0x05, -0xb0, 0xc6, 0xdc, 0x88, 0x95, 0x28, 0x67, 0xbc, 0xfb, 0x5c, 0x4f, 0xff, 0xa2, 0x6d, 0x70, 0xd9, -0xee, 0xd6, 0x25, 0x70, 0xa6, 0x5e, 0x1d, 0xe8, 0xba, 0xdf, 0x38, 0xd0, 0x7d, 0x7f, 0x81, 0x6c, -0x18, 0xe8, 0x5e, 0x6a, 0xdb, 0xd1, 0x7d, 0xbf, 0x55, 0xce, 0x6d, 0x1b, 0xe7, 0x9c, 0xff, 0xf2, -0x6a, 0x7f, 0x04, 0x73, 0xce, 0x08, 0x60, 0x4e, 0x1a, 0x51, 0x3d, 0xb5, 0x4b, 0xcc, 0x0e, 0xc7, -0x2c, 0xe5, 0xb2, 0xa3, 0x35, 0x65, 0xa3, 0xcc, 0x67, 0x50, 0x2e, 0x75, 0xdd, 0xa5, 0xf6, 0x61, -0x3b, 0x51, 0x08, 0x4f, 0x63, 0x1a, 0xe9, 0xd2, 0x1a, 0x13, 0x7c, 0xdf, 0x67, 0xcf, 0xda, 0x98, -0x90, 0xf4, 0x3b, 0xba, 0x9b, 0xf4, 0x92, 0x6e, 0xe1, 0x45, 0x40, 0x0a, 0x21, 0x07, 0x71, 0x95, -0xb2, 0xda, 0x8b, 0x75, 0x71, 0xfb, 0xdc, 0xb7, 0x7e, 0xe9, 0xaa, 0xb6, 0x7b, 0xc0, 0x7c, 0xe4, -0x61, 0xcf, 0x1d, 0x36, 0x88, 0x15, 0x96, 0x76, 0x82, 0xd4, 0xa6, 0x2b, 0xd1, 0x1d, 0x42, 0x3a, -0x0e, 0x03, 0x47, 0xba, 0x22, 0x8f, 0x2c, 0x7a, 0x98, 0xec, 0x08, 0xa2, 0x17, 0x64, 0xc3, 0xdc, -0xf3, 0x20, 0x45, 0xd6, 0x16, 0xcf, 0x05, 0x6b, 0xf5, 0x39, 0xe5, 0x54, 0xdb, 0x57, 0x77, 0xf4, -0x2d, 0xdb, 0xc5, 0xfb, 0x53, 0x6e, 0x2e, 0x0b, 0xb1, 0xf9, 0xad, 0xd7, 0xb5, 0xd2, 0xdc, 0x58, -0x1a, 0xf9, 0xd2, 0x39, 0xb8, 0x36, 0xba, 0x9c, 0x4b, 0xe9, 0xe3, 0x11, 0xb9, 0xb4, 0x29, 0x11, -0xbb, 0x87, 0xd7, 0x84, 0x5c, 0xd2, 0x98, 0x41, 0x8a, 0xb4, 0x27, 0xf9, 0xb2, 0x0a, 0xc9, 0x39, -0x71, 0xdd, 0x00, 0x42, 0x2e, 0x6a, 0x44, 0x49, 0xfc, 0x6a, 0xac, 0x88, 0xc7, 0xce, 0x89, 0x30, -0xbf, 0x49, 0x1d, 0x39, 0xa7, 0x88, 0x37, 0x2e, 0x46, 0x4e, 0xd2, 0xef, 0xa2, 0x1e, 0x65, 0xb5, -0xe9, 0x8a, 0xab, 0x69, 0xef, 0x4d, 0x71, 0xb3, 0xbf, 0x62, 0x8a, 0x3e, 0x36, 0x9c, 0x01, 0x25, -0x9f, 0x53, 0x9d, 0x97, 0x0e, 0x84, 0x3f, 0x73, 0x52, 0xbc, 0x86, 0x63, 0xdd, 0x59, 0x58, 0x73, -0x50, 0xad, 0x19, 0x60, 0x88, 0x46, 0x30, 0xb6, 0x04, 0xb1, 0xf2, 0x8a, 0xdd, 0xb4, 0xb1, 0x3b, -0x16, 0x22, 0x38, 0x3c, 0x39, 0xb8, 0xe3, 0xe1, 0xa5, 0x46, 0xb7, 0xee, 0x78, 0x42, 0xd6, 0xaf, -0x91, 0xec, 0x38, 0x46, 0x38, 0x93, 0xe2, 0xf6, 0xea, 0xb7, 0x5e, 0x71, 0x22, 0x2e, 0xbe, 0xfd, -0x7a, 0xc9, 0xd7, 0xb6, 0x40, 0xa7, 0x4e, 0xce, 0x75, 0x19, 0xdf, 0xdd, 0x3e, 0xf4, 0x10, 0xc2, -0xab, 0x37, 0xd2, 0x1d, 0x49, 0xec, 0x49, 0x2c, 0xbd, 0x44, 0xfe, 0x34, 0x23, 0x5d, 0xb4, 0x83, -0xf4, 0x8b, 0x7d, 0x4b, 0x8d, 0x62, 0x05, 0xda, 0xb9, 0x0d, 0xae, 0x2e, 0x73, 0xd2, 0x3a, 0xb4, -0x28, 0x81, 0x2d, 0xc0, 0xd2, 0x58, 0xeb, 0x87, 0x5b, 0x32, 0xee, 0x71, 0x88, 0xbd, 0x21, 0xbf, -0xc8, 0x3b, 0xb9, 0xa5, 0x9f, 0x3d, 0xa5, 0xb6, 0xb4, 0x48, 0x7c, 0x49, 0x98, 0x94, 0xfe, 0x7a, -0xec, 0x92, 0xf8, 0x5a, 0xd6, 0xb7, 0x83, 0x44, 0x31, 0xc2, 0x92, 0x02, 0x8b, 0x43, 0xef, 0x55, -0x50, 0x38, 0x41, 0x0b, 0xae, 0xb2, 0x56, 0x9c, 0xc7, 0x54, 0xcf, 0x79, 0x07, 0xe9, 0xe1, 0x15, -0x50, 0x7c, 0x04, 0x91, 0x32, 0x96, 0x2f, 0xe4, 0x67, 0x4d, 0xc3, 0x09, 0xbf, 0xff, 0x2d, 0x50, -0x54, 0xab, 0xef, 0xaa, 0x7c, 0xb4, 0x0d, 0x29, 0x25, 0xd9, 0x9e, 0x06, 0xef, 0xc5, 0xd9, 0xea, -0xd5, 0xd3, 0xae, 0x8f, 0x36, 0xd7, 0x26, 0xfb, 0x9b, 0xc2, 0xf9, 0x5d, 0x24, 0xfb, 0xe6, 0x91, -0xa7, 0xa7, 0x05, 0x60, 0xc6, 0x75, 0x21, 0x48, 0x7b, 0xa1, 0x35, 0x1f, 0x6f, 0x01, 0xe9, 0xe1, -0x48, 0x97, 0x34, 0x5f, 0x36, 0x4a, 0xfe, 0x36, 0x58, 0xd4, 0xbd, 0xb3, 0x6b, 0xe9, 0x71, 0xd5, -0x1f, 0x94, 0x39, 0xd0, 0xaf, 0x71, 0xdd, 0xe4, 0xf5, 0x63, 0xa2, 0x5f, 0x11, 0xe1, 0x49, 0x4e, -0x8b, 0xcd, 0xa6, 0x51, 0x58, 0xe2, 0x11, 0x3e, 0x04, 0xb9, 0x54, 0x5d, 0x6b, 0x72, 0x29, 0x42, -0x1b, 0xfe, 0xe1, 0x4a, 0x86, 0xb3, 0xb8, 0x80, 0xb1, 0xe6, 0x2f, 0x32, 0xb0, 0xe6, 0x2f, 0x70, -0xbe, 0x73, 0x44, 0x2c, 0x07, 0xc7, 0x90, 0x8b, 0x0e, 0x65, 0xc6, 0x50, 0x93, 0x2a, 0xb0, 0x77, -0x56, 0x27, 0xf5, 0x72, 0x05, 0x1c, 0x43, 0x69, 0x2e, 0xe9, 0xd2, 0xcb, 0xee, 0x78, 0xd6, 0x20, -0x96, 0xd5, 0xa6, 0xdf, 0x91, 0x88, 0xd2, 0x8e, 0xaf, 0x99, 0xed, 0x94, 0xc8, 0x97, 0x39, 0xad, -0x5b, 0x9b, 0xe2, 0x63, 0xaf, 0x6c, 0xe3, 0xf3, 0x3f, 0xab, 0x5a, 0xe2, 0x30, 0xc5, 0x91, 0x4b, -0xc5, 0x01, 0x9b, 0xc0, 0x0f, 0x23, 0x6f, 0x72, 0x2c, 0xe0, 0xff, 0xc1, 0x01, 0xb9, 0x72, 0xd7, -0x56, 0x30, 0x45, 0x2d, 0xec, 0xc9, 0x75, 0x7a, 0xcc, 0xbe, 0xeb, 0x79, 0xb8, 0x1a, 0x75, 0xc8, -0xa4, 0x61, 0x8e, 0x73, 0x3c, 0x5a, 0xc0, 0x5e, 0xb5, 0x39, 0xe6, 0xdc, 0x8e, 0xad, 0x60, 0x58, -0x6a, 0x92, 0x4d, 0x8e, 0x10, 0xc5, 0x97, 0x77, 0x84, 0xa4, 0x06, 0xb1, 0x03, 0x1c, 0xf6, 0xc7, -0xf6, 0xc6, 0x75, 0x9c, 0xcf, 0xc7, 0x91, 0xe5, 0xb0, 0xd7, 0xc8, 0x25, 0x9c, 0x62, 0x2e, 0xe1, -0x14, 0xf2, 0xe5, 0x86, 0xf0, 0xf3, 0x70, 0x2a, 0x5a, 0x4f, 0x35, 0xca, 0x46, 0xe4, 0xdd, 0x0d, -0xe2, 0xcb, 0xe8, 0x15, 0xb9, 0x92, 0xdb, 0xbd, 0x47, 0xc9, 0x53, 0x39, 0xf3, 0x3d, 0xca, 0x3d, -0xbc, 0x8e, 0x5b, 0x69, 0xbc, 0x18, 0x5e, 0x7f, 0x93, 0x01, 0xaf, 0xbf, 0xc9, 0xa4, 0x8f, 0x34, -0xa3, 0xcc, 0x66, 0x35, 0x1a, 0x03, 0xad, 0x99, 0x64, 0x2d, 0x4c, 0xbf, 0xf8, 0x87, 0xe5, 0xe4, -0x4a, 0xfe, 0x5b, 0x03, 0x08, 0x7d, 0xac, 0x8d, 0xbd, 0x28, 0x7c, 0x55, 0x78, 0x85, 0xf3, 0x55, -0xa4, 0xa2, 0xd2, 0x61, 0x6b, 0xda, 0x6d, 0x23, 0xe4, 0xdd, 0x5b, 0x1b, 0x33, 0xea, 0xbf, 0x8b, -0x4e, 0x34, 0x07, 0x10, 0x06, 0x88, 0xcf, 0x54, 0xff, 0x06, 0xc4, 0x4f, 0x3f, 0xd8, 0xbc, 0x7a, -0xb5, 0x0d, 0x1b, 0x10, 0x33, 0x37, 0x4d, 0x18, 0xb3, 0xdf, 0x16, 0x9a, 0xc9, 0x7b, 0x0c, 0xe3, -0xb4, 0x84, 0xa5, 0x5b, 0x11, 0xa7, 0x19, 0x33, 0xd9, 0x96, 0x99, 0x30, 0xbb, 0x3b, 0xc5, 0x9b, -0xf8, 0xc2, 0xb4, 0x27, 0xeb, 0x9e, 0x81, 0x2d, 0x4b, 0x8d, 0x9e, 0xc8, 0x45, 0xa7, 0xb1, 0xeb, -0x44, 0xcf, 0x45, 0xf4, 0x26, 0x7b, 0xce, 0xbe, 0x84, 0xa3, 0x9a, 0xfc, 0x9c, 0x1b, 0x0a, 0x27, -0xe1, 0xc3, 0x2a, 0x28, 0x74, 0xad, 0x02, 0x09, 0x65, 0x8c, 0xf5, 0x31, 0xe7, 0x3b, 0x07, 0xdf, -0x39, 0x88, 0x73, 0x00, 0x39, 0xb6, 0x21, 0xc0, 0xb6, 0x9b, 0xe7, 0x5f, 0x31, 0x01, 0xce, 0xa0, -0xe2, 0x34, 0x9f, 0xe9, 0x4a, 0xb0, 0xdf, 0x1d, 0xee, 0x55, 0x34, 0x47, 0xc0, 0x79, 0xec, 0x99, -0x86, 0x0d, 0xd7, 0xe0, 0x0f, 0xc9, 0x63, 0xfa, 0x34, 0x0e, 0x09, 0xae, 0x8b, 0xf0, 0x87, 0xd6, -0x60, 0x92, 0x5b, 0xa9, 0x76, 0xac, 0xf5, 0xd1, 0x98, 0xfb, 0xed, 0x37, 0xde, 0x7e, 0x43, 0xd4, -0xba, 0x9b, 0x6b, 0x9d, 0xf7, 0x31, 0xd5, 0x2a, 0xad, 0xe2, 0xf3, 0x87, 0x54, 0xcd, 0x4e, 0xac, -0x59, 0xf0, 0x57, 0x42, 0xf3, 0x99, 0xa5, 0x4a, 0x94, 0xf4, 0x86, 0x13, 0xc3, 0x09, 0xbb, 0xe9, -0x48, 0x82, 0x38, 0x9f, 0xe1, 0x2d, 0x3b, 0xfa, 0x96, 0x8e, 0x32, 0x8e, 0x8e, 0xf0, 0xbc, 0x46, -0x19, 0xd2, 0x83, 0xfc, 0x09, 0xe2, 0x29, 0x79, 0x41, 0xe4, 0x18, 0x77, 0x43, 0x76, 0xa4, 0x38, -0x23, 0xaa, 0xaf, 0x3a, 0x2b, 0x52, 0xb0, 0x0b, 0x81, 0x17, 0x94, 0xcb, 0x8c, 0x1f, 0x3f, 0x15, -0xfb, 0xbe, 0xb4, 0xb3, 0x5e, 0xfc, 0xfd, 0x73, 0x23, 0x4a, 0x92, 0x76, 0x48, 0x0e, 0x3c, 0x6f, -0xa9, 0x82, 0x0c, 0x8d, 0x69, 0x8f, 0x06, 0x7f, 0x67, 0x71, 0x40, 0xb9, 0x1a, 0xfe, 0x39, 0x54, -0xc5, 0x72, 0x9f, 0x18, 0xaa, 0xb9, 0xa8, 0x5c, 0xf8, 0xc1, 0x01, 0x7c, 0xbf, 0x53, 0xf6, 0xd9, -0xfd, 0x69, 0x79, 0x58, 0x96, 0x48, 0xf6, 0x2e, 0xeb, 0x04, 0xdd, 0x0f, 0xdf, 0x48, 0x95, 0xf1, -0x49, 0x3c, 0x3d, 0xf7, 0x93, 0xc8, 0x13, 0x5e, 0xac, 0x33, 0x28, 0xfb, 0x05, 0xee, 0x91, 0xad, -0x17, 0x4b, 0xae, 0x96, 0xf6, 0x9b, 0x77, 0x26, 0x62, 0x65, 0x4d, 0x66, 0x8d, 0xf7, 0x38, 0x90, -0x94, 0x0b, 0x42, 0xcb, 0xc1, 0xf0, 0x5e, 0x1f, 0xae, 0xbf, 0x49, 0xec, 0xc7, 0x1c, 0xaf, 0x85, -0x74, 0x20, 0x86, 0x2a, 0xbd, 0x28, 0xd3, 0x78, 0x75, 0xaa, 0xcf, 0x0d, 0x0b, 0xaf, 0xa3, 0x88, -0xa1, 0x16, 0x2f, 0x4c, 0xc9, 0x23, 0x87, 0xf2, 0x3a, 0x98, 0xb6, 0xd4, 0x62, 0xd4, 0x29, 0xff, -0x2f, 0x4a, 0xde, 0x5f, 0x5a, 0xea, 0x34, 0x02, 0x4a, 0x72, 0xdf, 0x37, 0xea, 0x40, 0xc2, 0xe7, -0xa2, 0xa5, 0x46, 0x33, 0x28, 0x7f, 0x8c, 0x9a, 0xf3, 0x20, 0x95, 0xc3, 0x20, 0x72, 0x50, 0xbc, -0x1e, 0x0f, 0x79, 0x0d, 0x42, 0xb9, 0xc5, 0x56, 0x80, 0x38, 0xe2, 0x0a, 0xe8, 0xd7, 0x40, 0x81, -0x61, 0x35, 0xe4, 0x7b, 0xe1, 0x6b, 0xf3, 0x46, 0x95, 0x67, 0x2c, 0x85, 0x31, 0xc3, 0xde, 0xb5, -0x51, 0xc3, 0x6e, 0x7d, 0xcc, 0x19, 0xd1, 0x7b, 0xb3, 0x34, 0xaf, 0x24, 0xe4, 0xb3, 0xbe, 0x88, -0xf4, 0x1d, 0x0a, 0x48, 0xce, 0xa2, 0xa7, 0x81, 0x29, 0xb1, 0x23, 0xcc, 0x99, 0xea, 0x10, 0x07, -0x92, 0xec, 0xa5, 0x88, 0xbc, 0x1f, 0x19, 0x2c, 0x5f, 0x8a, 0x1a, 0xc2, 0x96, 0x98, 0x69, 0xc0, -0x16, 0xbb, 0xc2, 0x31, 0x39, 0x74, 0x82, 0x9a, 0x53, 0x24, 0x14, 0xb2, 0xc3, 0x23, 0xec, 0x97, -0xaa, 0x65, 0xc3, 0xf4, 0x1e, 0x97, 0xce, 0x67, 0xea, 0xaf, 0xce, 0xb7, 0xc5, 0x4c, 0xb8, 0x72, -0xc0, 0xee, 0xee, 0x95, 0x17, 0xf2, 0x12, 0x2a, 0x05, 0x57, 0x25, 0xd2, 0x4c, 0x7a, 0x84, 0xf4, -0xd3, 0x8a, 0x7c, 0x83, 0x0d, 0xb9, 0x54, 0x8a, 0xe5, 0x59, 0xac, 0x5b, 0xe7, 0x85, 0xf8, 0xd0, -0xf0, 0xf3, 0x10, 0xf4, 0x82, 0x98, 0x1f, 0xf9, 0x4f, 0x4b, 0x41, 0x89, 0x68, 0x8b, 0x7f, 0x49, -0x9f, 0xc6, 0xdb, 0x4b, 0xc8, 0x73, 0x09, 0x9b, 0x1e, 0xd8, 0x2c, 0xb8, 0x77, 0x21, 0x89, 0xd6, -0x6f, 0x76, 0xa4, 0x75, 0xb0, 0x37, 0x6b, 0xb2, 0x3b, 0xf9, 0x4f, 0xba, 0x74, 0x86, 0x3c, 0x0f, -0xb1, 0xfc, 0x5e, 0xa6, 0xca, 0xcf, 0xcd, 0x60, 0x9a, 0x2c, 0x41, 0xe3, 0x5b, 0xb3, 0x36, 0x27, -0xee, 0xc4, 0xe7, 0x78, 0x93, 0x2b, 0x81, 0xb4, 0x52, 0xec, 0x8b, 0x9b, 0xe3, 0xcc, 0x8f, 0x5e, -0x0e, 0x0e, 0xf4, 0x63, 0xe9, 0x9b, 0xe4, 0x7b, 0xd5, 0x76, 0xad, 0x80, 0xe0, 0xb7, 0x27, 0xb4, -0x2c, 0x6a, 0x72, 0xd1, 0x6e, 0xc6, 0x9b, 0xf2, 0x7e, 0x55, 0xb2, 0x48, 0xb5, 0x2a, 0x6a, 0xa2, -0x12, 0xb1, 0xbc, 0x75, 0x5a, 0xdb, 0xb4, 0x56, 0xa1, 0xec, 0xd3, 0x2c, 0xea, 0xc0, 0xd2, 0xcb, -0xc9, 0xb3, 0xd1, 0xe7, 0x6d, 0x23, 0xd7, 0x35, 0x82, 0xfc, 0x46, 0x23, 0xce, 0x9b, 0xaf, 0x6a, -0x30, 0x94, 0x88, 0xf7, 0x4a, 0xdc, 0xa5, 0x28, 0x17, 0x68, 0xd6, 0x0d, 0x6f, 0x23, 0xf4, 0xf2, -0x66, 0x11, 0xe7, 0xab, 0xee, 0x4e, 0x83, 0x12, 0x60, 0xee, 0x44, 0x95, 0x7d, 0x85, 0x0f, 0xff, -0xbb, 0x78, 0x6c, 0x4a, 0x70, 0x2e, 0x92, 0xac, 0xe0, 0xa1, 0xb1, 0x41, 0x3e, 0xce, 0x3e, 0x4f, -0x7a, 0x00, 0x71, 0x70, 0xab, 0xd0, 0x63, 0x89, 0xe5, 0x70, 0x8d, 0xef, 0xca, 0xa0, 0x2b, 0x92, -0x66, 0x82, 0xc1, 0x43, 0x1a, 0xd1, 0x33, 0xc9, 0x5f, 0xbb, 0x93, 0xb9, 0x75, 0x7b, 0x4d, 0xfd, -0x13, 0x19, 0xa3, 0xf0, 0x1a, 0xf5, 0x54, 0x94, 0x90, 0xa6, 0x11, 0x13, 0xc6, 0xe1, 0x9e, 0xeb, -0xf4, 0xd0, 0x22, 0xcd, 0xc3, 0xdc, 0xd2, 0xc4, 0x91, 0x40, 0xb8, 0x6d, 0x27, 0x18, 0xe1, 0x3a, -0x48, 0x23, 0x70, 0xb4, 0xd3, 0x54, 0x5c, 0x7b, 0x83, 0xef, 0x3b, 0x27, 0x7f, 0x2f, 0x37, 0x8b, -0x36, 0xd0, 0x28, 0xb1, 0xc7, 0xac, 0x72, 0x09, 0x5b, 0xf3, 0x2d, 0x82, 0x4d, 0x42, 0xba, 0xc3, -0x94, 0x1e, 0xb3, 0x10, 0x7b, 0xc8, 0xd4, 0x4b, 0x35, 0xf5, 0xfd, 0xa9, 0x51, 0x33, 0x72, 0xed, -0xed, 0x91, 0x47, 0xe5, 0x66, 0xfa, 0x6a, 0x51, 0xea, 0x2b, 0x3b, 0x2c, 0xea, 0xea, 0xd4, 0xed, -0xed, 0x5a, 0x66, 0x94, 0xa6, 0xd9, 0x83, 0x72, 0x5e, 0x9b, 0x61, 0x47, 0x22, 0x76, 0x45, 0x8c, -0x08, 0xe2, 0x4d, 0x20, 0xef, 0x15, 0xa7, 0x3f, 0x6f, 0x7a, 0x24, 0x11, 0xd6, 0xc5, 0x4c, 0xb4, -0xa7, 0x16, 0xbd, 0xe4, 0xf4, 0x07, 0x6e, 0x21, 0xcf, 0xe7, 0x24, 0xfb, 0x72, 0x3d, 0x73, 0xd5, -0x7a, 0x68, 0xcf, 0xcc, 0x2c, 0x5b, 0x3a, 0x8e, 0x1d, 0x7b, 0x8c, 0xb1, 0xec, 0x82, 0x65, 0x3a, -0xe2, 0x44, 0x9d, 0xca, 0x41, 0x0e, 0xf0, 0x2e, 0x9a, 0x88, 0xdc, 0x27, 0x49, 0xcf, 0x41, 0xc3, -0x6d, 0x21, 0x68, 0x48, 0x51, 0x68, 0x8a, 0xdd, 0x47, 0x3d, 0x73, 0xbc, 0xf4, 0x01, 0xf8, 0x51, -0xc6, 0x5c, 0x01, 0x0d, 0xff, 0x34, 0x14, 0xad, 0xba, 0xbd, 0x01, 0x1a, 0x64, 0x27, 0xf6, 0xba, -0x90, 0x64, 0x2f, 0x4c, 0x71, 0x4b, 0x79, 0x31, 0xd3, 0x99, 0xbe, 0xdb, 0xfc, 0x50, 0x28, 0xe7, -0x7a, 0xa7, 0xf2, 0x9a, 0x89, 0xf0, 0xb9, 0x75, 0x90, 0xf6, 0x8e, 0x64, 0xa4, 0x64, 0xff, 0x34, -0x18, 0x35, 0x48, 0x1b, 0x65, 0x9c, 0x6b, 0x82, 0x37, 0x16, 0xf4, 0x5b, 0xa5, 0x74, 0x74, 0x36, -0xd7, 0x20, 0xe7, 0x48, 0x7e, 0xe2, 0x08, 0x62, 0x46, 0x09, 0xb1, 0x28, 0xfa, 0x11, 0x5b, 0xe3, -0x56, 0x6a, 0x9e, 0x39, 0xe2, 0xae, 0xc9, 0xfe, 0x0c, 0x59, 0xe7, 0xfe, 0x1e, 0xde, 0x67, 0x30, -0xf0, 0x6f, 0xe1, 0x4c, 0x5c, 0xc3, 0xc0, 0xc4, 0xf7, 0x66, 0x9f, 0x1b, 0x6a, 0x8d, 0x7e, 0xe5, -0xcd, 0x6f, 0xf8, 0x51, 0x56, 0x6e, 0x81, 0xbc, 0xc0, 0x76, 0xb0, 0xa2, 0x1c, 0x7f, 0xf8, 0xf0, -0x79, 0x96, 0xe3, 0x59, 0xbe, 0x9a, 0xf9, 0xdd, 0x3e, 0x00, 0xdb, 0xcc, 0x30, 0x48, 0x33, 0x9b, -0xc1, 0x4f, 0xf1, 0x74, 0xc9, 0xe7, 0x6f, 0xe3, 0x06, 0x99, 0xda, 0xe4, 0x8a, 0xc7, 0xa4, 0x84, -0x64, 0xae, 0xfb, 0xed, 0x12, 0x48, 0xed, 0x12, 0x68, 0xab, 0xa5, 0x14, 0xd8, 0x88, 0x33, 0xcc, -0xc4, 0xfc, 0xc5, 0x1c, 0xc6, 0x8a, 0x22, 0xc9, 0x6f, 0x77, 0x81, 0x89, 0xe2, 0x1e, 0x65, 0x5d, -0x88, 0x89, 0xeb, 0xa5, 0xa8, 0xc9, 0x41, 0xe3, 0x75, 0x20, 0x0e, 0xe1, 0x8d, 0xd1, 0x22, 0x6f, -0x4e, 0xdc, 0x86, 0xd4, 0x87, 0x66, 0x8b, 0x97, 0x4e, 0xd4, 0x99, 0xbb, 0x70, 0x60, 0x09, 0x64, -0x79, 0x62, 0x13, 0x7b, 0x02, 0x2a, 0x5f, 0x25, 0x69, 0xfc, 0x1f, 0xd2, 0x31, 0x9b, 0x37, 0x4b, -0xf5, 0xbc, 0x64, 0x11, 0x32, 0x79, 0x72, 0x40, 0xe5, 0x8f, 0xf1, 0x8d, 0x97, 0xf6, 0x20, 0x29, -0x72, 0xae, 0xc4, 0x6d, 0xb9, 0x57, 0x70, 0xc6, 0xb4, 0x9a, 0x18, 0xcc, 0x82, 0xef, 0x13, 0xb3, -0x2f, 0x4d, 0x19, 0x51, 0x1a, 0xb2, 0x60, 0xa9, 0x56, 0x2c, 0xbd, 0x30, 0xb0, 0xd1, 0xdc, 0x43, -0xfa, 0x1c, 0x58, 0x52, 0x71, 0x0a, 0xa3, 0x4f, 0x31, 0xcd, 0x30, 0x72, 0xcb, 0x8f, 0x7a, 0x73, -0xe6, 0x5f, 0x54, 0x8e, 0x23, 0x56, 0x65, 0x6b, 0x74, 0x61, 0xea, 0xa0, 0xaa, 0x8f, 0xb2, 0x91, -0xa3, 0xcd, 0xb0, 0xc7, 0x2f, 0xc4, 0x0a, 0x09, 0xb1, 0x27, 0xb8, 0xe8, 0xe1, 0xb7, 0x5e, 0xf7, -0xf8, 0xa5, 0x12, 0x30, 0x0f, 0x3f, 0x4c, 0x38, 0xbc, 0x28, 0x41, 0x27, 0xbc, 0xcb, 0x68, 0xa6, -0xe6, 0x70, 0x1f, 0x8c, 0x58, 0x12, 0x43, 0x6d, 0xb4, 0xc1, 0xa5, 0x62, 0x66, 0xcc, 0x4e, 0x5f, -0x4b, 0xcb, 0x55, 0x09, 0x99, 0x77, 0x73, 0xe2, 0x63, 0x03, 0xbf, 0x40, 0x5a, 0x07, 0xf0, 0xb8, -0xcb, 0x03, 0x26, 0x59, 0xdf, 0xa1, 0x70, 0x3b, 0x2f, 0x45, 0xf3, 0xd2, 0xed, 0x30, 0xc4, 0x1d, -0x09, 0xde, 0x3f, 0x47, 0xbc, 0x63, 0x4b, 0xaa, 0x37, 0xa3, 0x4d, 0x6a, 0x2e, 0x3b, 0xcb, 0xad, -0x36, 0xaf, 0x11, 0xeb, 0x3c, 0x1e, 0xea, 0x50, 0xc6, 0xd2, 0xbd, 0x33, 0xd3, 0x49, 0x5c, 0xa1, -0x6c, 0xdb, 0x4d, 0xbc, 0x65, 0x19, 0xc7, 0x66, 0x93, 0x34, 0xf9, 0x3a, 0xb5, 0x4f, 0xbf, 0x91, -0x24, 0x0d, 0xe6, 0x78, 0x18, 0xaa, 0xe3, 0x06, 0x86, 0xaa, 0x18, 0xcb, 0x11, 0x82, 0x2d, 0x52, -0x36, 0x8e, 0xfa, 0xac, 0xc6, 0xa6, 0x54, 0xf9, 0x44, 0x1c, 0x99, 0x83, 0xf6, 0x40, 0x5a, 0x4b, -0x51, 0x29, 0x69, 0xd8, 0xe0, 0x50, 0x7d, 0x67, 0xdf, 0x35, 0x07, 0x57, 0x51, 0xf2, 0x30, 0x54, -0x56, 0xe2, 0x85, 0x0a, 0xb7, 0xf0, 0x13, 0x8d, 0x6b, 0x8c, 0xae, 0xca, 0xe9, 0xe6, 0xf8, 0xab, -0xda, 0x28, 0x1a, 0x45, 0x5b, 0x9c, 0x69, 0x2a, 0xf7, 0xb4, 0x94, 0xd5, 0xdf, 0x8d, 0x5c, 0x60, -0xd5, 0x00, 0xed, 0x96, 0x81, 0xd8, 0xd3, 0x6c, 0x87, 0xf9, 0xbc, 0x2a, 0x91, 0xaf, 0x4b, 0x73, -0x33, 0x64, 0x83, 0x65, 0x69, 0x58, 0x6a, 0x16, 0xa3, 0xf0, 0x4d, 0x1a, 0x05, 0xc4, 0xef, 0xdf, -0xbc, 0x3e, 0x63, 0xf5, 0x16, 0xc0, 0x99, 0xb0, 0x1c, 0x6a, 0x51, 0x86, 0x7d, 0xf3, 0xce, 0x10, -0x4a, 0xd8, 0xbc, 0x9b, 0xc9, 0x75, 0x17, 0xa4, 0x6a, 0xdc, 0x94, 0xaa, 0xad, 0x44, 0x94, 0xce, -0x96, 0xef, 0x16, 0x6d, 0xb7, 0x94, 0x39, 0x0b, 0x35, 0xa7, 0xb6, 0xd7, 0x24, 0xca, 0x89, 0x37, -0xb9, 0x13, 0xed, 0x8a, 0xdc, 0x21, 0xf9, 0x3d, 0xcb, 0x79, 0xc6, 0xe5, 0xb5, 0x41, 0x29, 0x54, -0x7f, 0x62, 0x03, 0xa4, 0x18, 0x52, 0x78, 0xa6, 0x6e, 0x5d, 0x34, 0xa7, 0xb2, 0x04, 0x72, 0xab, -0xcf, 0x81, 0x4d, 0x36, 0x55, 0xce, 0x84, 0xda, 0xe3, 0x73, 0x8f, 0xcf, 0x7d, 0x0a, 0xe5, 0xa2, -0xd2, 0xec, 0x5d, 0x5d, 0x4d, 0x39, 0x95, 0x59, 0xc3, 0x35, 0x77, 0xfa, 0x21, 0x8f, 0x3d, 0x29, -0xe5, 0x2d, 0x6a, 0x06, 0x4b, 0x07, 0x54, 0x64, 0xdb, 0xe7, 0xbd, 0xb5, 0x4f, 0x32, 0xa4, 0xe3, -0x2b, 0x6c, 0xee, 0x25, 0xef, 0x13, 0x8a, 0x32, 0xb2, 0x36, 0xdc, 0x83, 0x74, 0x2b, 0x4f, 0xd4, -0xad, 0xca, 0x7f, 0xec, 0x63, 0x4d, 0xec, 0xe9, 0xe3, 0x18, 0xd8, 0x52, 0x7f, 0x39, 0xf4, 0x8b, -0x63, 0xc7, 0x1c, 0x70, 0x9b, 0x82, 0xb4, 0xd3, 0x70, 0x78, 0x1b, 0x62, 0xbd, 0xf0, 0xae, 0xe8, -0xb3, 0xd3, 0x6e, 0x18, 0x9d, 0x9b, 0x60, 0xbb, 0xe3, 0x16, 0x47, 0x82, 0xae, 0x33, 0x96, 0x13, -0x25, 0x69, 0xd3, 0xcb, 0x39, 0x23, 0xdd, 0x23, 0xdd, 0x81, 0x1d, 0x2e, 0x88, 0x54, 0x23, 0x9f, -0xa1, 0xc3, 0x95, 0x08, 0xa9, 0x39, 0xe5, 0x18, 0xe8, 0x5e, 0x7a, 0x86, 0xe8, 0xf3, 0x8c, 0x17, -0xc1, 0x66, 0x02, 0xc7, 0x03, 0x08, 0xeb, 0x47, 0xfe, 0xe3, 0x80, 0x13, 0xdf, 0xbc, 0x7d, 0x20, -0xf0, 0xd2, 0x56, 0xb0, 0x3f, 0x20, 0xe6, 0x00, 0x62, 0xb3, 0xf9, 0xf0, 0xeb, 0xf1, 0xb1, 0x5b, -0x13, 0x5b, 0xd4, 0xbd, 0x3e, 0x6d, 0x97, 0x91, 0xea, 0xc4, 0xba, 0x6d, 0x48, 0xf7, 0xa4, 0xf8, -0xa1, 0xe1, 0xad, 0x10, 0xec, 0x7f, 0x11, 0x0a, 0xb1, 0x24, 0xda, 0xd5, 0x35, 0xdd, 0x4f, 0x1e, -0x8b, 0x4c, 0xe1, 0xae, 0x58, 0x9e, 0x63, 0xb9, 0x5a, 0xf6, 0x03, 0x54, 0xf6, 0xed, 0x5d, 0x5b, -0x21, 0x9e, 0x8d, 0x52, 0x43, 0xa1, 0x77, 0x3e, 0xf6, 0x2d, 0x84, 0xd8, 0x12, 0x20, 0xbf, 0x01, -0x58, 0x32, 0xed, 0xb5, 0x3e, 0x2d, 0xbc, 0x53, 0x63, 0xf9, 0x1c, 0x7b, 0xdc, 0xed, 0x85, 0x20, -0x62, 0x58, 0xc8, 0x2b, 0xa2, 0xfa, 0x22, 0x0e, 0x97, 0x88, 0xbd, 0xae, 0x79, 0x19, 0x7b, 0x5d, -0x38, 0xb7, 0xd5, 0xdd, 0xf1, 0x55, 0x50, 0xb2, 0x1a, 0x02, 0x2f, 0x82, 0x8f, 0x78, 0x99, 0x8b, -0x55, 0x32, 0x64, 0x55, 0x85, 0x71, 0x34, 0xa2, 0x4e, 0x81, 0x05, 0x84, 0x55, 0x6d, 0x6f, 0x1e, -0xc1, 0x96, 0x22, 0x0c, 0xf3, 0x22, 0xbc, 0xef, 0xa3, 0xee, 0x4e, 0x11, 0xf5, 0xf4, 0xa9, 0xd8, -0x27, 0x22, 0x29, 0xa7, 0xf0, 0xcf, 0x85, 0x39, 0xde, 0x79, 0xdd, 0x55, 0xb6, 0x05, 0x62, 0x45, -0x62, 0xbc, 0xbc, 0x06, 0xd1, 0x96, 0xcc, 0x56, 0x44, 0x9b, 0xe5, 0x7a, 0xa6, 0x07, 0x88, 0xf3, -0xe7, 0x2f, 0xb9, 0x90, 0xdf, 0x57, 0xeb, 0xf4, 0x23, 0x8f, 0xab, 0xc3, 0x99, 0xae, 0xd2, 0xb5, -0xf1, 0x7d, 0xa2, 0x0c, 0x3e, 0x53, 0xee, 0x8d, 0x1a, 0xe2, 0x31, 0xd9, 0x96, 0x2a, 0xaf, 0x36, -0xa3, 0x3c, 0x13, 0x61, 0x24, 0x72, 0x0f, 0xf5, 0x1c, 0x73, 0x9c, 0xb1, 0x16, 0xbf, 0xb6, 0x30, -0x9d, 0xc0, 0xd6, 0x4d, 0x98, 0x09, 0xdc, 0xfb, 0x19, 0x41, 0x94, 0x38, 0x56, 0x91, 0xaf, 0x89, -0x4c, 0x8c, 0xe7, 0xf3, 0x81, 0x20, 0x43, 0xc1, 0xce, 0xbd, 0xc2, 0x95, 0xf9, 0x48, 0xd7, 0x91, -0xae, 0x1d, 0x6b, 0x97, 0xe6, 0x85, 0x5d, 0xba, 0x75, 0x31, 0xb3, 0xba, 0x92, 0x63, 0xdd, 0xb2, -0x59, 0xa3, 0xbf, 0xa4, 0x3b, 0xe4, 0xd2, 0x5a, 0x02, 0x3a, 0x3a, 0xb3, 0xfc, 0x89, 0xda, 0x03, -0xb5, 0x7f, 0x0d, 0x1b, 0xa2, 0xf6, 0xc0, 0xcf, 0x44, 0x5d, 0xcc, 0xbf, 0xa9, 0xfd, 0x1b, 0x3b, -0xad, 0xce, 0xa7, 0x18, 0x79, 0x13, 0x9b, 0xd8, 0x96, 0x5b, 0x7b, 0x4d, 0x14, 0x89, 0x58, 0xa2, -0x7a, 0xa3, 0x95, 0x61, 0x1c, 0x27, 0xa4, 0x5b, 0x14, 0x9b, 0xcb, 0x24, 0x60, 0xa9, 0x8e, 0x67, -0x39, 0x7b, 0x28, 0x31, 0xdf, 0x1a, 0x04, 0x6d, 0xdf, 0x39, 0x55, 0xf3, 0x25, 0xb2, 0x9d, 0xb2, -0x64, 0xc2, 0x2b, 0xd5, 0x4a, 0xf7, 0x75, 0x5b, 0xb3, 0x38, 0x3d, 0xbb, 0x69, 0xf6, 0xac, 0x56, -0x64, 0x8a, 0x44, 0xa6, 0xb5, 0xa1, 0x9e, 0x76, 0xe9, 0xe3, 0x26, 0x5c, 0x1b, 0x69, 0xb7, 0x9e, -0xbc, 0x4d, 0x19, 0x3c, 0x2d, 0x2a, 0x7c, 0x5d, 0x50, 0xfb, 0xd7, 0xfe, 0x61, 0xfc, 0x4f, 0xf1, -0x81, 0xa4, 0x2c, 0xe4, 0x0d, 0xad, 0x6a, 0x6c, 0x96, 0xbe, 0x86, 0x0d, 0x91, 0xc4, 0x2c, 0x75, -0x8f, 0x1f, 0x65, 0x68, 0xb3, 0x7a, 0xb5, 0xb0, 0x9d, 0x75, 0x89, 0x46, 0x3b, 0x98, 0xfe, 0xbf, -0x42, 0x65, 0x55, 0x60, 0x59, 0xc7, 0x82, 0xc7, 0x82, 0x5c, 0xa7, 0xc9, 0x18, 0x54, 0xce, 0xd5, -0xbc, 0x0f, 0xb6, 0x2d, 0x44, 0x3b, 0x0c, 0x7b, 0x90, 0x76, 0x54, 0x64, 0x0f, 0xcf, 0x9d, 0x48, -0x3b, 0x10, 0x36, 0xfe, 0x98, 0x15, 0x67, 0x98, 0xff, 0xf0, 0xab, 0xd8, 0xab, 0x0c, 0x0a, 0x92, -0xa2, 0x46, 0xe4, 0x29, 0x28, 0x8f, 0x6a, 0x8e, 0x5a, 0x68, 0x56, 0x33, 0x17, 0x3b, 0x4a, 0x33, -0x5a, 0x36, 0x0b, 0xeb, 0xf9, 0x01, 0x6c, 0xd9, 0xfd, 0x39, 0xb7, 0x92, 0x97, 0x3c, 0x03, 0xef, -0x46, 0x66, 0x53, 0xa9, 0xd1, 0x9c, 0x54, 0xef, 0xad, 0xac, 0x1d, 0x3d, 0x09, 0xb6, 0xe2, 0x94, -0xed, 0xa9, 0xde, 0xa3, 0xbd, 0xe1, 0xb5, 0x51, 0x48, 0xee, 0x0b, 0x23, 0x46, 0xc5, 0xec, 0x02, -0xb2, 0x8c, 0x45, 0xfa, 0x48, 0x82, 0x77, 0xa1, 0x52, 0x30, 0xfe, 0xec, 0x32, 0x7b, 0x20, 0x13, -0xd4, 0x38, 0x4b, 0xf3, 0x17, 0x8b, 0x6b, 0xf5, 0x15, 0xf2, 0x0c, 0x86, 0xeb, 0x74, 0x6a, 0x7f, -0x9d, 0xbf, 0x98, 0x96, 0xb1, 0x32, 0x9b, 0x99, 0x07, 0x3c, 0x4a, 0x7e, 0x97, 0x61, 0x77, 0xea, -0xed, 0x67, 0xbf, 0x7b, 0xc6, 0x6b, 0x66, 0x6e, 0x40, 0xf0, 0x09, 0xd3, 0xb0, 0x8e, 0xf3, 0xbc, -0x53, 0x56, 0x88, 0xf2, 0x75, 0x77, 0xec, 0xc1, 0xff, 0xa0, 0xb1, 0x70, 0x83, 0x21, 0xfd, 0xc5, -0xc5, 0x7d, 0x1a, 0x1e, 0xc4, 0x64, 0x82, 0x09, 0x41, 0x29, 0xfe, 0xe6, 0xf0, 0x73, 0x10, 0x24, -0x88, 0xdc, 0x1a, 0x27, 0xcf, 0xa1, 0xa4, 0x89, 0x82, 0x94, 0xc9, 0x76, 0x7f, 0x21, 0xc5, 0x4a, -0x20, 0x28, 0xd0, 0x4a, 0x8d, 0x73, 0xe8, 0xb0, 0xb6, 0x56, 0xdf, 0x96, 0xe8, 0x83, 0xb6, 0x2b, -0x47, 0x1e, 0xc3, 0x15, 0xc7, 0x8d, 0x6b, 0x9e, 0x9f, 0x35, 0xaa, 0xcc, 0xe9, 0x56, 0xeb, 0x06, -0x18, 0xfb, 0x52, 0xb5, 0x9e, 0x35, 0x36, 0x6c, 0xa0, 0x7d, 0xbb, 0x25, 0x06, 0x71, 0x96, 0xc8, -0x6b, 0xe3, 0x2a, 0xb1, 0x36, 0xe2, 0x2a, 0x57, 0x81, 0x12, 0x7d, 0x15, 0xca, 0x99, 0x7e, 0xee, -0xe5, 0xaf, 0x99, 0x72, 0x3b, 0xc8, 0x57, 0x29, 0xd2, 0xfe, 0x9c, 0x00, 0x79, 0x00, 0xb6, 0x22, -0x36, 0x3a, 0x8f, 0x62, 0x6f, 0x64, 0xb3, 0xd0, 0x1f, 0xd3, 0xe5, 0xe3, 0x13, 0xb7, 0x0d, 0x29, -0x71, 0xb0, 0x6a, 0xda, 0x89, 0x05, 0x27, 0x6a, 0x79, 0xac, 0x0c, 0xc6, 0x5a, 0xe5, 0x1c, 0x79, -0xbb, 0x52, 0x14, 0x37, 0x47, 0xbc, 0x43, 0xfe, 0x83, 0xe5, 0x94, 0x86, 0x0d, 0x25, 0x50, 0x31, -0xad, 0x6c, 0x9a, 0x31, 0xa0, 0x0c, 0x89, 0x98, 0x42, 0x88, 0x5f, 0x6f, 0x52, 0x54, 0x84, 0x39, -0x56, 0x5c, 0xcb, 0x81, 0xa2, 0xcd, 0x6d, 0xf1, 0x53, 0xdc, 0x58, 0x91, 0xdb, 0x4d, 0x1a, 0x40, -0x59, 0x94, 0x3a, 0x07, 0xc2, 0x3d, 0x31, 0x6b, 0xd8, 0x1f, 0xa5, 0x35, 0xd2, 0x30, 0xef, 0x03, -0xe5, 0xcd, 0x7f, 0x46, 0xbe, 0x76, 0xd1, 0xda, 0x8e, 0x6c, 0x11, 0xeb, 0x0d, 0xf3, 0x61, 0x0b, -0xeb, 0x9f, 0x54, 0xa3, 0x12, 0x3d, 0x49, 0x51, 0xeb, 0x54, 0x0a, 0xa9, 0x5f, 0xd4, 0xbd, 0x73, -0xed, 0x52, 0x3a, 0x59, 0x34, 0xcb, 0xe5, 0xb4, 0xfb, 0x85, 0x23, 0x58, 0xe2, 0xd5, 0x31, 0x64, -0x72, 0x79, 0xd7, 0x8e, 0x46, 0x22, 0xa4, 0xc1, 0xf8, 0x9b, 0xc8, 0x0d, 0xb9, 0xfd, 0xf6, 0x56, -0x82, 0xb1, 0x1d, 0x25, 0xbf, 0x48, 0xb7, 0x6c, 0xe4, 0x13, 0xc3, 0x7d, 0x7b, 0xba, 0x63, 0xc6, -0x70, 0x57, 0x74, 0xbf, 0x5c, 0x88, 0x2b, 0x85, 0x4d, 0xc0, 0x64, 0x46, 0x35, 0x98, 0xef, 0xc4, -0xb9, 0x7f, 0xe7, 0x3c, 0xc8, 0x9b, 0x51, 0xc3, 0x3c, 0xa0, 0x22, 0xd6, 0x46, 0x81, 0x53, 0x15, -0x29, 0x9c, 0x72, 0xa8, 0xfc, 0xdf, 0x75, 0x71, 0x4b, 0xc8, 0x5f, 0x47, 0xc9, 0x47, 0xb7, 0x80, -0x3f, 0x9f, 0x3a, 0xdb, 0x10, 0xf6, 0x46, 0x86, 0x3c, 0x52, 0x4d, 0x8a, 0x73, 0xae, 0x0b, 0xe1, -0x93, 0x8d, 0xf8, 0x4c, 0xbb, 0x3e, 0xd8, 0x35, 0xd0, 0xd5, 0x0a, 0xba, 0xf2, 0x91, 0x84, 0xda, -0xf2, 0x06, 0xd9, 0xf6, 0x4f, 0x43, 0xb1, 0x3c, 0xe4, 0x08, 0x0c, 0xff, 0x76, 0x1e, 0x0c, 0x51, -0xd3, 0xce, 0xad, 0x60, 0x5d, 0x06, 0x3a, 0xab, 0xba, 0x47, 0x77, 0x9a, 0x22, 0x13, 0xee, 0x24, -0x9c, 0x6a, 0xf1, 0xf2, 0x6e, 0x11, 0x9f, 0x64, 0x21, 0xbe, 0x8e, 0x7d, 0x32, 0x11, 0x9b, 0x25, -0x7d, 0xff, 0x36, 0x8a, 0x98, 0xa7, 0xbd, 0xff, 0xb4, 0xc0, 0x45, 0xf8, 0xec, 0x29, 0xd9, 0x96, -0xc6, 0x25, 0x6a, 0x87, 0x5d, 0xbf, 0x31, 0xd1, 0xb0, 0x61, 0x47, 0xef, 0xfd, 0x7e, 0x87, 0xd5, -0x6b, 0x56, 0x2d, 0x18, 0xf8, 0x0b, 0xc5, 0xe0, 0xea, 0x16, 0xda, 0xaa, 0x28, 0xb1, 0x9b, 0x35, -0x1f, 0xf4, 0x5c, 0xd7, 0x23, 0x5e, 0xd5, 0x62, 0x61, 0x8a, 0x9b, 0xe6, 0xc8, 0xce, 0x9e, 0x55, -0x7a, 0xa7, 0x3e, 0xb0, 0xe9, 0x9a, 0x19, 0x22, 0xf6, 0x02, 0xfc, 0x33, 0x02, 0x93, 0xb1, 0xdf, -0xe3, 0xb7, 0xaf, 0x64, 0xfc, 0xef, 0xbe, 0x0e, 0xfe, 0x1b, 0xae, 0xc1, 0x7f, 0x51, 0x7b, 0x96, -0x5a, 0xbb, 0x59, 0xdd, 0xc1, 0x56, 0x78, 0x26, 0x14, 0x6a, 0x3b, 0xd8, 0x62, 0x47, 0x4e, 0x93, -0x78, 0x90, 0x92, 0x49, 0xa5, 0x9d, 0xca, 0xfb, 0x6f, 0x9d, 0xa7, 0xbd, 0x65, 0xb1, 0xa2, 0xce, -0xec, 0xdf, 0x02, 0x98, 0x76, 0x7e, 0x42, 0x1a, 0xca, 0x4c, 0x9c, 0xfa, 0xc1, 0xa4, 0x54, 0xd3, -0x16, 0xe0, 0xb5, 0x60, 0x5a, 0xfa, 0x04, 0x8d, 0xf6, 0xb6, 0xbf, 0xd5, 0x77, 0xfd, 0xf3, 0x25, -0xa1, 0xb1, 0x15, 0xcb, 0x67, 0x3e, 0x23, 0xac, 0x45, 0xe4, 0x28, 0x24, 0x1e, 0x23, 0xf9, 0x45, -0x6b, 0xbc, 0x29, 0xb5, 0xf3, 0x2b, 0x4e, 0x8b, 0x54, 0x09, 0x25, 0x45, 0x0b, 0x19, 0x87, 0xda, -0x66, 0xd6, 0xea, 0x48, 0x8f, 0x21, 0xb5, 0xa7, 0xaf, 0x49, 0x2d, 0x58, 0xc3, 0x47, 0x7d, 0xea, -0x3e, 0xac, 0xd1, 0x3e, 0x4b, 0x49, 0xca, 0xf9, 0x93, 0x64, 0x17, 0xbd, 0x5d, 0xec, 0xc2, 0xea, -0xae, 0x3d, 0xff, 0x49, 0xef, 0x87, 0x5f, 0xb7, 0xb6, 0xc5, 0x9f, 0xa3, 0x36, 0x5f, 0xc6, 0xe8, -0x0d, 0x1f, 0x1e, 0x72, 0xfa, 0x05, 0x04, 0x6e, 0x7b, 0x01, 0xac, 0x7d, 0x90, 0xb1, 0x5a, 0x62, -0x4f, 0xb9, 0x1d, 0x66, 0x49, 0xc7, 0x7b, 0xe7, 0x17, 0xd2, 0xad, 0xa8, 0xf0, 0x65, 0x48, 0x65, -0xd6, 0xeb, 0xb6, 0xa4, 0x2d, 0xed, 0x2d, 0xb3, 0xed, 0xb6, 0x5a, 0x5d, 0xc7, 0x5f, 0xee, 0x4e, -0x2c, 0xbb, 0xef, 0xfa, 0xad, 0x73, 0xfa, 0x27, 0xb4, 0xaf, 0x02, 0x47, 0xea, 0xaf, 0xb8, 0x8d, -0x2e, 0x75, 0x5d, 0x3a, 0xc2, 0xbb, 0x2b, 0x42, 0x5e, 0xa4, 0x52, 0x3f, 0xbb, 0xbc, 0x37, 0xb5, -0x7e, 0xa4, 0xdb, 0x69, 0xe3, 0x76, 0x16, 0x2a, 0x67, 0x04, 0x06, 0x01, 0xfb, 0xeb, 0x40, 0x0e, -0x53, 0x42, 0x0e, 0xd0, 0xe1, 0x6c, 0xc1, 0xfe, 0x7e, 0xa0, 0x24, 0x89, 0xbf, 0x94, 0xb0, 0xed, -0x76, 0xd3, 0x91, 0xbe, 0x23, 0x5d, 0x03, 0x3b, 0x6c, 0x10, 0xb3, 0x2d, 0x3c, 0x0f, 0x36, 0x5f, -0x27, 0x18, 0x91, 0xb7, 0x7b, 0x54, 0x36, 0x0e, 0xfc, 0x38, 0x66, 0x8c, 0xf4, 0xed, 0xe8, 0x6b, -0xfa, 0xe4, 0xdb, 0x8f, 0xbe, 0xfd, 0x86, 0x1b, 0xfb, 0xf8, 0xeb, 0x37, 0x58, 0x3b, 0xe0, 0x9f, -0x76, 0x43, 0x1f, 0x10, 0x67, 0x81, 0x6b, 0xb5, 0x95, 0xca, 0xc1, 0x1e, 0x78, 0xd2, 0xfb, 0xb1, -0xb8, 0x2a, 0x58, 0x1b, 0x36, 0x50, 0x24, 0x18, 0x86, 0xd2, 0xe5, 0xc9, 0x7b, 0x70, 0x13, 0xe5, -0x4a, 0x15, 0x4a, 0xa0, 0xef, 0x45, 0xa9, 0x32, 0xe9, 0x35, 0xbb, 0x6e, 0xba, 0x9b, 0x4e, 0x67, -0x79, 0xa7, 0x7e, 0xee, 0xa7, 0x04, 0x15, 0xd6, 0x96, 0x22, 0xa8, 0x98, 0x18, 0x2a, 0xa0, 0xbf, -0x17, 0xd7, 0x12, 0x35, 0x47, 0xfd, 0x46, 0x87, 0x9f, 0x77, 0x96, 0xb1, 0x4c, 0xaa, 0xff, 0xca, -0xb3, 0x84, 0xb1, 0x6d, 0x77, 0x52, 0x99, 0x51, 0xd0, 0xfb, 0x68, 0xff, 0x45, 0x93, 0x25, 0xe7, -0xe3, 0x28, 0xd3, 0x3e, 0x76, 0x5e, 0x95, 0x72, 0xd2, 0x74, 0x07, 0xc0, 0x50, 0x16, 0xe6, 0xc8, -0xc5, 0x54, 0x45, 0x32, 0x0f, 0xaf, 0x1f, 0x4e, 0xe4, 0x55, 0x81, 0x7e, 0xc7, 0x2f, 0x4c, 0x10, -0xb5, 0x11, 0x57, 0x11, 0x37, 0x12, 0x57, 0x28, 0x9b, 0xc2, 0x3f, 0x42, 0xda, 0x76, 0x2a, 0x92, -0xf8, 0xc5, 0x60, 0xd3, 0x15, 0xe4, 0x0f, 0xb7, 0xa9, 0xda, 0x93, 0xdc, 0x07, 0x6d, 0x17, 0x30, -0xc5, 0x3b, 0x91, 0x5f, 0xee, 0x6d, 0xec, 0xa5, 0x6d, 0x27, 0x42, 0x84, 0x6b, 0xa6, 0x5d, 0x28, -0xa7, 0xd8, 0x11, 0xac, 0x51, 0x77, 0x04, 0xf3, 0x71, 0x8d, 0xa7, 0xf3, 0x15, 0x63, 0x71, 0xb5, -0x72, 0xb9, 0xb8, 0x05, 0x4c, 0xac, 0x43, 0x5b, 0x24, 0x34, 0x3e, 0xbc, 0x64, 0x27, 0xaf, 0x49, -0x99, 0xc1, 0xb4, 0x2c, 0xfa, 0xbb, 0x67, 0x54, 0x2d, 0x86, 0xe2, 0x09, 0x7c, 0x86, 0x8b, 0x53, -0x55, 0x08, 0x78, 0xf5, 0xe4, 0xcb, 0xe0, 0x9c, 0x8b, 0x3c, 0x15, 0x4c, 0x90, 0xa0, 0x79, 0xaf, -0x90, 0xcf, 0x7b, 0x35, 0x29, 0xfa, 0x23, 0x77, 0xae, 0xa7, 0x86, 0xf2, 0x38, 0xb1, 0x7d, 0x9d, -0x6f, 0x9e, 0xe8, 0xf9, 0xdd, 0xa3, 0xc6, 0x1e, 0x45, 0x51, 0xca, 0xe4, 0x7c, 0x95, 0x5a, 0x72, -0x79, 0x54, 0xd2, 0xa2, 0x75, 0xe2, 0x8c, 0x1d, 0x39, 0xbc, 0xec, 0x81, 0x75, 0x4d, 0x39, 0x92, -0xaf, 0x02, 0xbe, 0xdd, 0x83, 0xbd, 0x3d, 0x6a, 0xa7, 0x3a, 0x90, 0x67, 0xfa, 0x26, 0xef, 0x50, -0x85, 0x07, 0x90, 0x43, 0x06, 0xd8, 0x22, 0x60, 0x30, 0xf1, 0x1d, 0xcb, 0x8b, 0x53, 0x33, 0xf6, -0x9f, 0x84, 0x9f, 0x72, 0xd6, 0xbb, 0xd0, 0xf6, 0x27, 0x35, 0x68, 0xd5, 0x6f, 0x66, 0x28, 0x95, -0xb0, 0x25, 0x99, 0x85, 0x77, 0xed, 0x2e, 0x93, 0x8e, 0xe9, 0x84, 0x1d, 0xb7, 0x48, 0x06, 0x16, -0xd1, 0x7e, 0x5b, 0xa0, 0x4d, 0xd7, 0xb3, 0x4d, 0xd5, 0x52, 0x48, 0x41, 0x43, 0xf3, 0xd8, 0x20, -0x03, 0x79, 0x41, 0xd0, 0xe0, 0x76, 0xd6, 0x28, 0xe0, 0x4f, 0x75, 0x23, 0xfe, 0x81, 0x6c, 0x6a, -0xbb, 0xbd, 0x56, 0x27, 0xeb, 0xdb, 0x9a, 0x68, 0xde, 0xa0, 0x1c, 0x7f, 0x90, 0xe6, 0x0d, 0xc5, -0x6c, 0xf5, 0x91, 0xfc, 0xe4, 0x40, 0xba, 0xeb, 0xca, 0x1c, 0x07, 0xbc, 0x37, 0x67, 0xee, 0x11, -0x38, 0xfc, 0x02, 0x2f, 0x56, 0x43, 0x79, 0xb1, 0x38, 0xd3, 0x08, 0xaf, 0x80, 0xbc, 0x98, 0x6d, -0x51, 0x8f, 0x6c, 0xcd, 0x84, 0x65, 0xfd, 0x26, 0x4c, 0x01, 0x78, 0x4d, 0x60, 0x0d, 0xc5, 0x59, -0xb8, 0x74, 0x86, 0x24, 0x76, 0x1c, 0x2f, 0x01, 0xdb, 0x9e, 0x26, 0x33, 0xf2, 0xc7, 0x3d, 0xc8, -0xe5, 0x23, 0xb4, 0xa2, 0xfb, 0xaf, 0x0b, 0xdd, 0x7e, 0xd1, 0xf6, 0xeb, 0x43, 0x37, 0x63, 0x3f, -0xba, 0x73, 0x02, 0x44, 0x7f, 0xc0, 0x30, 0x73, 0x2f, 0xf8, 0x10, 0xa4, 0x62, 0x8a, 0x37, 0x67, -0xa4, 0x78, 0x32, 0x19, 0xd0, 0xac, 0x9f, 0x04, 0xcd, 0x39, 0xa2, 0x47, 0x13, 0xa1, 0x59, 0xbf, -0x89, 0xca, 0x5b, 0xfd, 0xe6, 0x51, 0x94, 0xfb, 0x54, 0xa8, 0x86, 0xbc, 0x53, 0x27, 0xc2, 0x94, -0x22, 0x1d, 0x20, 0x0f, 0x80, 0xeb, 0x42, 0xa7, 0xb9, 0x51, 0x70, 0xaf, 0xa7, 0xd8, 0x2f, 0xb7, -0x76, 0x56, 0xdf, 0x0a, 0x16, 0xe4, 0x32, 0xac, 0xb4, 0x8b, 0xfd, 0xad, 0xd4, 0xde, 0xce, 0x6d, -0xdb, 0x48, 0xdf, 0x28, 0x73, 0x0f, 0x99, 0x24, 0x4a, 0xa7, 0xe9, 0xe8, 0x76, 0xec, 0x43, 0x0d, -0xc5, 0x11, 0xaa, 0xb9, 0xa8, 0x9c, 0x4a, 0xf3, 0xee, 0x9c, 0x66, 0x09, 0xdc, 0x69, 0x3a, 0x35, -0x71, 0x07, 0x1f, 0xb1, 0xe4, 0x94, 0xd8, 0xc3, 0x77, 0xc1, 0x92, 0x5e, 0x8a, 0x87, 0x33, 0x69, -0xff, 0xbe, 0x61, 0x60, 0x3b, 0x98, 0x9a, 0xc2, 0x37, 0xde, 0xc3, 0x77, 0x61, 0x1b, 0xbe, 0xdd, -0xeb, 0x34, 0x1c, 0xed, 0x3d, 0xda, 0x23, 0xe7, 0x4d, 0xde, 0x4f, 0x8f, 0x91, 0x7e, 0xbf, 0x99, -0xf0, 0x3f, 0x66, 0xa4, 0x92, 0x96, 0x9d, 0x24, 0xed, 0x54, 0x8f, 0xa0, 0x31, 0x62, 0x57, 0x5e, -0xf4, 0x67, 0x57, 0x88, 0x28, 0x24, 0xa6, 0xdf, 0x8a, 0xb9, 0x42, 0xa0, 0xca, 0x35, 0x56, 0x17, -0x5e, 0x79, 0x06, 0x07, 0x59, 0x1f, 0xea, 0x4c, 0xfd, 0xe6, 0x20, 0xd9, 0xfb, 0x59, 0xf9, 0x8c, -0x8b, 0xde, 0x37, 0x6b, 0xef, 0xb5, 0x37, 0xda, 0x19, 0x24, 0xf2, 0x03, 0xfb, 0xc5, 0xaa, 0x33, -0x4e, 0x7b, 0x81, 0x82, 0x73, 0x9b, 0x25, 0x60, 0x69, 0xd7, 0x0b, 0x3e, 0x23, 0xb9, 0xc9, 0xe1, -0x37, 0xe7, 0x81, 0x17, 0x25, 0x8b, 0x47, 0x9c, 0x39, 0x9b, 0xbb, 0xc9, 0x6f, 0xd1, 0x78, 0x32, -0xc3, 0x03, 0x51, 0x7f, 0xf5, 0x1f, 0x2a, 0x20, 0xe0, 0x1a, 0x4f, 0xaa, 0x3e, 0x8e, 0xf6, 0x8f, -0x24, 0x36, 0x3d, 0x22, 0x85, 0xed, 0x75, 0x52, 0x46, 0xe4, 0xca, 0x40, 0x99, 0x0b, 0x4a, 0x5e, -0x60, 0xeb, 0x12, 0x5c, 0xa1, 0xc6, 0x93, 0xac, 0x6d, 0x39, 0x2d, 0xbd, 0x7a, 0x62, 0x5b, 0xcc, -0xe3, 0x67, 0xd4, 0x15, 0xf0, 0xa0, 0x36, 0xb6, 0x2e, 0x5a, 0x87, 0x3d, 0xd7, 0xa5, 0xeb, 0xab, -0x9d, 0x37, 0x7d, 0xbb, 0xc7, 0x9b, 0xb5, 0xf0, 0xa2, 0x72, 0xc4, 0x9b, 0xcb, 0xeb, 0xbb, 0x99, -0xd7, 0xf6, 0x72, 0x6d, 0xb5, 0x8b, 0xd9, 0x5d, 0xb4, 0x6f, 0x9a, 0x95, 0x5a, 0x0f, 0xcd, 0xda, -0x7a, 0x98, 0x3a, 0xa5, 0xd5, 0x28, 0xbf, 0x5b, 0xa5, 0xc0, 0x59, 0xcc, 0x51, 0x4d, 0xf3, 0xe6, -0xa6, 0xea, 0xfc, 0xec, 0xf2, 0x05, 0x75, 0xef, 0xb0, 0x40, 0xf2, 0xe3, 0x7a, 0x69, 0xa2, 0xbd, -0x93, 0x98, 0xba, 0x27, 0xd5, 0x56, 0x56, 0x4b, 0x96, 0x13, 0x17, 0x70, 0x1c, 0x52, 0x7b, 0x92, -0xac, 0x4d, 0xf9, 0xfa, 0x6a, 0xfd, 0xae, 0x97, 0xb6, 0x40, 0x54, 0x16, 0xbb, 0xe3, 0x82, 0x97, -0xd6, 0xf8, 0xee, 0xa8, 0x5b, 0x6e, 0x62, 0xeb, 0x96, 0xdc, 0xd5, 0xe3, 0xbf, 0x22, 0x7a, 0x7d, -0x27, 0x97, 0xf2, 0x53, 0xaf, 0xa0, 0x64, 0x35, 0x9a, 0x9c, 0x1d, 0x35, 0xc8, 0x55, 0xce, 0x69, -0x38, 0xf2, 0x12, 0xae, 0x89, 0x8c, 0xd5, 0x4e, 0x3f, 0xef, 0xb5, 0x0d, 0x49, 0xe5, 0x7d, 0xa4, -0x83, 0x7f, 0x25, 0xba, 0x9b, 0xd7, 0x0c, 0x4f, 0xe6, 0x9a, 0xe1, 0xcc, 0xa4, 0x82, 0xbc, 0x66, -0xc0, 0x85, 0xd5, 0xba, 0x87, 0x9e, 0xe7, 0x15, 0x00, 0xd4, 0x7e, 0xed, 0xb9, 0x1a, 0x20, 0x0c, -0xd8, 0xfd, 0x3c, 0xf6, 0xc5, 0x8e, 0x6d, 0x14, 0xa9, 0x9b, 0xb5, 0x93, 0xc6, 0xa8, 0x45, 0xa5, -0x64, 0xcf, 0xf3, 0xf7, 0xdb, 0x3d, 0x0b, 0xa8, 0x87, 0xc4, 0x2d, 0xd0, 0x49, 0x01, 0x59, 0x1a, -0x0a, 0x7e, 0x94, 0x64, 0x85, 0x45, 0x5d, 0xab, 0x75, 0xbb, 0xba, 0x9a, 0xf2, 0xd2, 0x5f, 0xb4, -0x15, 0x53, 0x7f, 0xe0, 0x28, 0x9d, 0xe3, 0xfc, 0xae, 0xcf, 0xd7, 0xa9, 0x0c, 0x1c, 0x1e, 0x3c, -0x7c, 0x1e, 0xc7, 0xd1, 0x84, 0xd0, 0x3d, 0xa2, 0x72, 0x17, 0x39, 0x29, 0x18, 0xef, 0x49, 0x96, -0x49, 0x9a, 0x06, 0xbf, 0x59, 0x40, 0xe4, 0x57, 0x54, 0x6f, 0x99, 0xd0, 0x1f, 0x42, 0x8e, 0x3c, -0xd5, 0xbf, 0xdf, 0x39, 0x8b, 0x43, 0xca, 0xa1, 0xfa, 0xcd, 0xcc, 0x33, 0xb5, 0x2a, 0x87, 0xf0, -0x8b, 0xbc, 0xf4, 0x17, 0xbf, 0xc2, 0xdc, 0x6d, 0x4d, 0xf2, 0x92, 0x0c, 0xbd, 0x32, 0x93, 0xf8, -0x96, 0xd7, 0xc9, 0x22, 0x82, 0xac, 0xaa, 0xed, 0xc7, 0xa9, 0x2a, 0xa4, 0x25, 0x55, 0x03, 0x2d, -0x95, 0x96, 0xee, 0x09, 0xbf, 0x51, 0x61, 0xc3, 0xeb, 0x3f, 0x30, 0x25, 0x2f, 0x14, 0xe7, 0x18, -0x82, 0x07, 0xc1, 0x39, 0x93, 0xd6, 0x17, 0x62, 0x49, 0xc7, 0xd3, 0x4a, 0x71, 0xff, 0x78, 0xcd, -0xcd, 0xe5, 0x9d, 0x68, 0x33, 0x79, 0x02, 0x57, 0xf9, 0x2a, 0x0d, 0x9b, 0x72, 0xc5, 0x1a, 0xe5, -0x21, 0xc9, 0xe7, 0x0d, 0xd9, 0x16, 0xd8, 0xac, 0xe5, 0xf8, 0xdd, 0x33, 0x42, 0xf2, 0x16, 0xef, -0xe9, 0xd4, 0x4e, 0x37, 0xaa, 0xbd, 0x3b, 0xcf, 0xfa, 0x2f, 0x0d, 0x1b, 0xa2, 0x05, 0xe2, 0xad, -0x96, 0x7e, 0xd6, 0xc8, 0xe5, 0xfc, 0x06, 0x29, 0xec, 0x21, 0xa6, 0x2d, 0x9c, 0x7a, 0xb1, 0x2a, -0xb5, 0x22, 0xda, 0x26, 0xe7, 0x8f, 0x37, 0x79, 0x68, 0xef, 0xea, 0xc7, 0x02, 0xef, 0x89, 0x4e, -0x58, 0x90, 0x4b, 0x91, 0x44, 0x14, 0x5d, 0x33, 0xd1, 0xfe, 0x00, 0xae, 0x0b, 0x91, 0x17, 0x94, -0x24, 0xe9, 0xef, 0xe0, 0xaa, 0x10, 0x5c, 0xf8, 0xbe, 0x72, 0x8e, 0xf2, 0xfd, 0xdb, 0x60, 0xd3, -0xa9, 0x9a, 0xf7, 0x95, 0x61, 0xd2, 0x40, 0xb9, 0xf5, 0x05, 0x28, 0xdc, 0x02, 0x6d, 0x97, 0x8f, -0x3c, 0x26, 0xd5, 0xa0, 0x0c, 0xc6, 0x32, 0x09, 0x8e, 0xf7, 0xfb, 0x13, 0xf4, 0x17, 0x5f, 0x50, -0x2e, 0xf7, 0x01, 0xa6, 0x9e, 0x9f, 0x94, 0x7a, 0x85, 0x53, 0x3f, 0x98, 0x94, 0x7a, 0x95, 0xb4, -0x2a, 0xe1, 0xab, 0xd7, 0x3d, 0xf7, 0x13, 0xf3, 0x71, 0x6f, 0xfc, 0x0a, 0x51, 0x65, 0x35, 0xb2, -0xae, 0xf9, 0x3a, 0xad, 0xc5, 0x6f, 0xed, 0xd5, 0xdf, 0x7e, 0x98, 0x5a, 0xfb, 0xd2, 0xe0, 0xd2, -0x53, 0x92, 0x4e, 0x9c, 0x8f, 0x11, 0xcd, 0x34, 0x01, 0x51, 0xd4, 0x6f, 0xa6, 0x78, 0x97, 0x00, -0x72, 0x2d, 0x94, 0x92, 0xe6, 0x66, 0x90, 0x4b, 0xb7, 0xa8, 0x34, 0xb6, 0x99, 0xf6, 0x68, 0x55, -0xc8, 0x11, 0xf7, 0x44, 0xd0, 0xdb, 0xf3, 0xe9, 0x3a, 0xde, 0xe9, 0xb0, 0x44, 0x4b, 0x52, 0xab, -0x98, 0x0a, 0xd5, 0x73, 0x2e, 0x81, 0x39, 0xa4, 0x33, 0x93, 0x86, 0x34, 0x5b, 0xda, 0xc2, 0x78, -0x85, 0x8a, 0x65, 0x98, 0x3e, 0x9f, 0x75, 0x56, 0xeb, 0x37, 0xa9, 0x32, 0xe2, 0x34, 0x55, 0x27, -0xa3, 0xb0, 0xe4, 0xd1, 0xd4, 0xe8, 0xa8, 0x6b, 0x1e, 0x53, 0x68, 0xb3, 0x90, 0xd8, 0x84, 0xdf, -0x35, 0x96, 0xda, 0x78, 0xe7, 0xd5, 0x29, 0x76, 0x5d, 0x27, 0x9e, 0xa4, 0x98, 0x9c, 0x42, 0xa6, -0x6e, 0xf4, 0x4e, 0x9b, 0xff, 0x21, 0xe4, 0x7b, 0x69, 0x9f, 0x3a, 0x24, 0x4e, 0x72, 0x46, 0x8b, -0x54, 0xaa, 0x48, 0x5a, 0x2b, 0x94, 0x0a, 0x2c, 0x11, 0xeb, 0x53, 0x3b, 0x71, 0xa5, 0xaa, 0x4c, -0x56, 0xe0, 0x9d, 0x46, 0x36, 0x76, 0x99, 0xbb, 0x7a, 0x7f, 0xa8, 0x4b, 0x9d, 0xf5, 0xa0, 0x5c, -0xa6, 0x7a, 0x38, 0xfa, 0xae, 0x76, 0xa6, 0x6e, 0x7f, 0x00, 0x0c, 0x2f, 0x9d, 0x03, 0x83, 0xd0, -0x74, 0xe2, 0x88, 0x0c, 0x14, 0x05, 0xc8, 0x81, 0xad, 0x74, 0xa1, 0x84, 0xe0, 0xb1, 0x7b, 0xa1, -0x8c, 0x69, 0x46, 0xe8, 0x2d, 0xd2, 0x22, 0xd8, 0xe7, 0x0c, 0xbf, 0xfd, 0xfb, 0x3e, 0x70, 0xe6, -0x1c, 0x7d, 0x11, 0x7c, 0xec, 0xa5, 0xc9, 0xbb, 0xeb, 0x51, 0x94, 0xd9, 0x1f, 0xf7, 0x55, 0xc1, -0x94, 0x81, 0x2e, 0xbc, 0xeb, 0xf6, 0xcd, 0xee, 0xe3, 0xd8, 0x3d, 0xba, 0x95, 0xba, 0x22, 0x5d, -0x0e, 0x5c, 0x81, 0x93, 0xf0, 0x34, 0x94, 0x82, 0x05, 0xf1, 0xe5, 0xdf, 0x0f, 0x5f, 0x64, 0x7c, -0x69, 0xd1, 0xd6, 0x5f, 0x11, 0xf7, 0xfd, 0xce, 0x6a, 0x70, 0xdc, 0xe9, 0x07, 0x27, 0xad, 0x88, -0x38, 0x0f, 0x83, 0x92, 0x5e, 0x9c, 0x6e, 0xb6, 0xe9, 0x76, 0x10, 0x7f, 0x53, 0xff, 0xbb, 0x47, -0x8c, 0xdd, 0xc8, 0x85, 0x86, 0x46, 0xfa, 0xa4, 0x00, 0xad, 0xf1, 0xd5, 0x1f, 0x9b, 0x74, 0xa2, -0xee, 0x5f, 0xbc, 0xba, 0x14, 0x74, 0x79, 0x33, 0x16, 0x20, 0x7d, 0xa3, 0x37, 0xb6, 0xb4, 0xdd, -0x02, 0xf2, 0x03, 0x9c, 0x97, 0x24, 0xa5, 0x80, 0x8f, 0xfc, 0x0b, 0x5a, 0x2c, 0xf3, 0xf0, 0x3b, -0xd2, 0xed, 0x05, 0x89, 0xf1, 0x3c, 0xa3, 0x2d, 0x33, 0x68, 0x87, 0xda, 0xca, 0x78, 0x3e, 0x39, -0xd5, 0xc6, 0x78, 0x3e, 0x39, 0xb5, 0x10, 0x53, 0x87, 0xaf, 0x49, 0xb5, 0xf0, 0xb9, 0xe1, 0xe4, -0x54, 0xa4, 0x76, 0x99, 0x67, 0x56, 0x9c, 0x66, 0x42, 0x29, 0x6b, 0x02, 0x5f, 0x43, 0x5c, 0xc0, -0x3b, 0x43, 0xd8, 0x62, 0xeb, 0x84, 0xde, 0x95, 0x61, 0xdf, 0x0c, 0x52, 0xdd, 0xe4, 0xbe, 0x51, -0x3e, 0xec, 0x99, 0x81, 0x7a, 0x66, 0xb1, 0x52, 0xbf, 0xa4, 0x69, 0x91, 0x44, 0xdb, 0xf8, 0xbe, -0x84, 0xa3, 0x8b, 0xa3, 0x4a, 0x99, 0xd5, 0xd8, 0x1a, 0x5e, 0xb0, 0xb0, 0xf6, 0x0c, 0x9d, 0x22, -0x4c, 0x19, 0xe8, 0x59, 0x36, 0x27, 0xb5, 0x6f, 0x31, 0xf1, 0x2c, 0xcb, 0x8d, 0x92, 0x93, 0x97, -0xc2, 0xf3, 0xf1, 0x89, 0xa3, 0x86, 0x55, 0x57, 0x10, 0x4b, 0xaa, 0xa4, 0x6d, 0xac, 0xc7, 0x44, -0xb1, 0x3c, 0x8d, 0xf1, 0xef, 0x09, 0x3e, 0x8e, 0x22, 0x61, 0x20, 0x05, 0x3d, 0x41, 0x14, 0x34, -0x43, 0xc7, 0x97, 0x35, 0x67, 0xbc, 0xd6, 0xeb, 0x94, 0x0f, 0x70, 0xcc, 0x6e, 0xdd, 0x81, 0x25, -0x45, 0x8d, 0x6d, 0x46, 0x5c, 0x5f, 0xb6, 0x89, 0x5d, 0x68, 0xda, 0x49, 0x74, 0x22, 0xc7, 0x6a, -0xcf, 0xfa, 0x76, 0x17, 0x69, 0x10, 0xbe, 0xf5, 0x7a, 0x58, 0x48, 0x22, 0x8f, 0xfc, 0xee, 0xd1, -0xea, 0xcb, 0x15, 0x03, 0x4e, 0x93, 0xca, 0xe7, 0x9d, 0x4c, 0xf7, 0xdd, 0x43, 0x7c, 0x5e, 0x3e, -0xf2, 0x79, 0x27, 0x69, 0x6c, 0x2d, 0x2e, 0x95, 0xd7, 0xdb, 0xaa, 0xf2, 0x7a, 0x27, 0x05, 0xaf, -0x67, 0x87, 0xfb, 0xba, 0x9c, 0x5d, 0x94, 0xa3, 0xb4, 0x53, 0x79, 0xf3, 0xad, 0x73, 0xcc, 0x9d, -0x9a, 0xe3, 0x5f, 0xac, 0x85, 0x97, 0x5e, 0x59, 0x16, 0x61, 0x28, 0x98, 0x26, 0xb6, 0x31, 0x9a, -0x2f, 0x97, 0x66, 0xc8, 0xfe, 0x6f, 0xfe, 0xe2, 0x95, 0x98, 0x33, 0x82, 0x65, 0xd8, 0xa7, 0x13, -0xfe, 0x6b, 0xbb, 0x38, 0x12, 0x8e, 0x1e, 0xeb, 0x9e, 0x8d, 0xb8, 0xfa, 0x10, 0x22, 0xa6, 0x78, -0x93, 0x6c, 0xa0, 0x52, 0x79, 0xae, 0xef, 0xd7, 0x22, 0xd3, 0x68, 0x5a, 0x0c, 0x4e, 0x0d, 0x2e, -0xb3, 0xc0, 0xe6, 0x9e, 0x05, 0x85, 0xa4, 0xdb, 0x1c, 0xe8, 0xc7, 0x91, 0x58, 0x8b, 0x33, 0x25, -0x8c, 0x3c, 0x9d, 0x61, 0xa2, 0xcc, 0x98, 0xe6, 0x3a, 0x75, 0x3e, 0xe6, 0xb5, 0x56, 0x40, 0xa1, -0xd0, 0x9a, 0x1a, 0xdf, 0x28, 0x74, 0x26, 0x50, 0xee, 0xb4, 0x21, 0x7d, 0x35, 0x30, 0x27, 0x93, -0x9f, 0x92, 0x22, 0x32, 0xf9, 0xd5, 0x4f, 0x84, 0xd4, 0x23, 0xd5, 0x89, 0xd3, 0x1c, 0x4f, 0x15, -0x24, 0x2d, 0x66, 0xda, 0x03, 0xb6, 0xfb, 0xdf, 0x1a, 0x24, 0xbe, 0xf4, 0x37, 0xaf, 0x4b, 0xe5, -0x5b, 0x48, 0x6e, 0xf8, 0x89, 0xcb, 0x9c, 0x92, 0xe9, 0xe6, 0xd5, 0xf7, 0x7b, 0xae, 0xe5, 0x3e, -0xb6, 0x79, 0xb3, 0xf9, 0x84, 0x53, 0x95, 0x6d, 0xe8, 0x4c, 0x40, 0x5d, 0x03, 0x9d, 0xec, 0xff, -0xdc, 0x1b, 0xb5, 0xe2, 0x5a, 0x9e, 0xd4, 0xe8, 0xef, 0xed, 0x3c, 0x37, 0x02, 0xfe, 0xc0, 0x26, -0x55, 0xe6, 0x6d, 0x76, 0x2d, 0x96, 0x0c, 0xfd, 0xeb, 0x8f, 0x26, 0xae, 0xcd, 0xa5, 0xc9, 0xa2, -0xcc, 0x21, 0xaf, 0xd4, 0x28, 0x02, 0x6b, 0x7f, 0xf7, 0xb3, 0x2e, 0x4a, 0x93, 0x14, 0xcc, 0x58, -0xc3, 0xe8, 0x6c, 0xe9, 0x39, 0x3a, 0x5b, 0x6a, 0x02, 0xa5, 0x22, 0xa0, 0xae, 0xf3, 0x04, 0xf9, -0x14, 0x56, 0x92, 0x8e, 0xc2, 0x48, 0xa6, 0xd5, 0x89, 0x33, 0x43, 0xbe, 0x28, 0x8e, 0x88, 0xbd, -0x15, 0x5e, 0xd3, 0x79, 0x2d, 0x18, 0xf3, 0x3b, 0x80, 0xca, 0xe6, 0xd3, 0x61, 0xd6, 0xfc, 0x27, -0x4c, 0xe2, 0x7e, 0x66, 0x4d, 0xda, 0xf5, 0x06, 0x5d, 0xf3, 0xb5, 0x67, 0xcf, 0x3c, 0x8f, 0x0d, -0x5a, 0xfa, 0xe1, 0x24, 0xcd, 0x65, 0xda, 0x09, 0x39, 0x7c, 0x01, 0xf1, 0x0c, 0x29, 0x4f, 0xcd, -0x79, 0xb2, 0x56, 0xc8, 0xa0, 0x47, 0x2b, 0x32, 0xf7, 0x95, 0x32, 0xca, 0x68, 0x77, 0x22, 0x36, -0xce, 0xa8, 0x81, 0x8e, 0x8c, 0x1c, 0xa9, 0x5d, 0x73, 0x3b, 0xe6, 0x98, 0x31, 0x1f, 0x3a, 0x91, -0x77, 0x94, 0x3c, 0x25, 0x10, 0x5c, 0x33, 0x74, 0x9c, 0xed, 0xb7, 0x0f, 0x0f, 0x85, 0x4b, 0x68, -0xe7, 0x1a, 0xf3, 0x9e, 0x73, 0x89, 0x3d, 0x6b, 0x53, 0x28, 0xbe, 0x45, 0x21, 0xe9, 0xb6, 0x61, -0x83, 0xc7, 0xef, 0xcd, 0x0e, 0xad, 0x5e, 0xfe, 0x2b, 0xf1, 0x34, 0xfc, 0xf8, 0x0c, 0x3f, 0x24, -0x32, 0x4a, 0x7f, 0x7f, 0x42, 0xfd, 0xbd, 0x19, 0x6f, 0xce, 0x4f, 0x78, 0xd3, 0x97, 0xf1, 0xe6, -0x83, 0x09, 0x6f, 0xd6, 0xd3, 0xfe, 0x6e, 0xcc, 0x3d, 0xa1, 0xf7, 0x47, 0x26, 0xf5, 0xbe, 0xff, -0x06, 0xbd, 0xff, 0xf7, 0xeb, 0xae, 0x00, 0xa7, 0x70, 0x05, 0x38, 0x2d, 0xeb, 0xdb, 0x9b, 0x78, -0xa7, 0x53, 0xd3, 0x08, 0xfa, 0x2e, 0xd9, 0x52, 0xb9, 0xbc, 0x50, 0x58, 0xe0, 0x85, 0xdb, 0x59, -0xd3, 0x99, 0xf7, 0xcc, 0xca, 0x81, 0xa2, 0xf3, 0xdc, 0xaf, 0x5f, 0xfd, 0x55, 0x8a, 0xda, 0xe6, -0x08, 0x8a, 0xa8, 0x03, 0xc4, 0xa9, 0x5f, 0x36, 0xc8, 0x4e, 0xd6, 0x25, 0xcb, 0xa6, 0x5d, 0x75, -0xa1, 0x63, 0x66, 0xd7, 0x1f, 0xe9, 0xc6, 0xff, 0x5d, 0x47, 0xba, 0x46, 0xba, 0x46, 0x12, 0xb4, -0x8f, 0x3f, 0x45, 0x69, 0xd8, 0xe0, 0xcb, 0xe9, 0x0f, 0xee, 0xf2, 0x2f, 0x3d, 0xc2, 0x74, 0x4f, -0xaf, 0xe9, 0xfd, 0xd7, 0xfd, 0xd6, 0xcc, 0xb1, 0x9b, 0x71, 0xc5, 0xbe, 0xa2, 0xee, 0x92, 0xb1, -0xac, 0x4f, 0x7a, 0x6d, 0x6d, 0xd6, 0x23, 0x1b, 0x3c, 0x2d, 0x82, 0x53, 0x62, 0x59, 0xed, 0xe9, -0x05, 0x3c, 0x6f, 0xaf, 0xe1, 0x9a, 0x5e, 0xa4, 0xbd, 0xc2, 0x6b, 0xb8, 0x26, 0xb6, 0x05, 0xb9, -0x86, 0x6b, 0x7a, 0x11, 0x0a, 0x05, 0xc7, 0x42, 0x7c, 0x9a, 0x34, 0xf5, 0x5b, 0x69, 0xb9, 0xbe, -0x94, 0xf7, 0x64, 0x89, 0xeb, 0x30, 0xd7, 0x6f, 0x4e, 0xc9, 0xc6, 0xcd, 0xa9, 0xfd, 0x58, 0x4a, -0xff, 0x81, 0x23, 0x65, 0x3f, 0xab, 0xac, 0x91, 0x1b, 0x90, 0xb7, 0xfb, 0x84, 0x78, 0xbb, 0x54, -0x0b, 0xfe, 0x78, 0x6d, 0x0b, 0xa8, 0xa4, 0xbb, 0xfb, 0x26, 0xd6, 0x9f, 0x51, 0x53, 0xda, 0x02, -0x45, 0x93, 0xd9, 0x59, 0x4a, 0x4e, 0xe9, 0xf9, 0x98, 0xc9, 0x4f, 0x6d, 0xe0, 0xc9, 0xdb, 0x9b, -0xa1, 0x13, 0x0c, 0xf8, 0x7b, 0x86, 0xfd, 0x8f, 0xbb, 0x75, 0xbd, 0x76, 0x37, 0x5c, 0xd9, 0x48, -0x5e, 0x7a, 0xcc, 0x98, 0x7a, 0x19, 0x67, 0x94, 0x1b, 0xf1, 0xd3, 0x4c, 0x76, 0x38, 0xe2, 0xf4, -0x8c, 0xbd, 0x6a, 0xf0, 0x89, 0xd1, 0xed, 0x28, 0xc3, 0x86, 0x9a, 0x21, 0x91, 0xe1, 0x87, 0x28, -0x47, 0x72, 0xeb, 0x0c, 0x09, 0xfc, 0x82, 0xce, 0x23, 0x6e, 0xf7, 0xb3, 0x65, 0xb3, 0xff, 0x4c, -0x1f, 0xde, 0x15, 0xc6, 0x75, 0xb7, 0x93, 0xdd, 0x1d, 0x08, 0x3d, 0xa0, 0x09, 0x56, 0x2a, 0x6e, -0xb8, 0x10, 0xc6, 0x9e, 0xc6, 0x2a, 0xec, 0x10, 0xe9, 0x9a, 0x51, 0x8d, 0x4f, 0x89, 0x68, 0xd3, -0xa4, 0x92, 0x17, 0xab, 0x3b, 0xa9, 0x49, 0xe7, 0x5e, 0xd5, 0x12, 0x06, 0xef, 0xed, 0x62, 0xb7, -0xbf, 0x82, 0x34, 0xc0, 0x16, 0xd1, 0xde, 0xe4, 0x85, 0xa8, 0x87, 0xbe, 0x13, 0x6f, 0x1d, 0x09, -0xe4, 0xc7, 0x20, 0x66, 0xd5, 0x72, 0xbb, 0x36, 0xc6, 0x0d, 0xc8, 0x69, 0x1f, 0x44, 0x0e, 0xdd, -0xd8, 0xf6, 0x19, 0xd2, 0xb5, 0x83, 0xa4, 0x33, 0x29, 0x34, 0x04, 0x2a, 0xaa, 0x68, 0x6d, 0x75, -0x10, 0x96, 0x84, 0x17, 0x9c, 0x87, 0x26, 0xb1, 0x77, 0x23, 0x5b, 0xf9, 0x14, 0x8f, 0xf4, 0xd0, -0x37, 0x35, 0x3e, 0x4a, 0xd0, 0xfc, 0xd7, 0x37, 0x62, 0x46, 0xb2, 0x68, 0x8b, 0x9e, 0x75, 0xb8, -0x75, 0x2d, 0x02, 0x6f, 0xd4, 0xbc, 0x51, 0x55, 0x9f, 0xfd, 0x07, 0xa9, 0x33, 0xf7, 0x46, 0xf5, -0xc4, 0xfd, 0x67, 0xea, 0x1b, 0xd6, 0xfa, 0xed, 0x80, 0x76, 0x90, 0x0b, 0xec, 0xbe, 0x10, 0x34, -0xf6, 0x86, 0xbb, 0x62, 0xe4, 0x2b, 0x56, 0x27, 0xde, 0x46, 0xba, 0x79, 0x47, 0xc0, 0xad, 0x4a, -0x78, 0x28, 0x65, 0xee, 0xe8, 0x5e, 0x7a, 0x54, 0xf0, 0x50, 0x0e, 0xe4, 0x10, 0x34, 0xcb, 0xb4, -0xe8, 0xe6, 0xba, 0xdf, 0x56, 0x15, 0x32, 0x37, 0x9a, 0xc2, 0x6d, 0xe2, 0xf3, 0x18, 0x2e, 0x66, -0xcd, 0xca, 0x4c, 0x4a, 0x51, 0x3d, 0xfd, 0x33, 0x28, 0x17, 0x9b, 0xed, 0xc8, 0xe9, 0xd1, 0xf5, -0xb6, 0x66, 0xb8, 0x0a, 0xa6, 0xd4, 0xa9, 0x89, 0xc0, 0x94, 0x22, 0x5c, 0x49, 0xaf, 0xf2, 0x93, -0xb0, 0x43, 0x2b, 0xe4, 0xef, 0x96, 0x8b, 0xf6, 0x67, 0xce, 0x17, 0x6a, 0x55, 0x1c, 0x65, 0x14, -0xba, 0xb2, 0x1e, 0xb6, 0xb8, 0x9a, 0x38, 0x7d, 0x08, 0x65, 0x84, 0x20, 0x9d, 0xa5, 0xaa, 0xa9, -0x96, 0xb8, 0x51, 0xce, 0xa1, 0xf9, 0xca, 0xb6, 0x60, 0x7e, 0xd2, 0x99, 0xa7, 0x33, 0xdf, 0x05, -0xef, 0x2b, 0x6f, 0x52, 0x8e, 0x7f, 0x7d, 0xa5, 0xe9, 0x34, 0x62, 0xfa, 0x21, 0xc2, 0xf4, 0xb8, -0x42, 0xba, 0x13, 0x5a, 0x7b, 0xfe, 0x73, 0x7d, 0x29, 0x69, 0x73, 0x55, 0x2b, 0xff, 0x8e, 0x63, -0x55, 0x54, 0xda, 0x09, 0x77, 0x3c, 0x39, 0x54, 0xfd, 0x7b, 0x13, 0xdb, 0xfd, 0x0c, 0x27, 0x78, -0x27, 0x7f, 0xf0, 0xb6, 0x1d, 0x7d, 0x28, 0x1a, 0x44, 0xaa, 0xc9, 0x7e, 0x92, 0x4e, 0x39, 0x6a, -0xce, 0x29, 0xef, 0xbd, 0x34, 0xd8, 0x74, 0x84, 0x28, 0xa9, 0x76, 0xde, 0x71, 0xdb, 0x36, 0x5d, -0x0b, 0xcf, 0x9f, 0xf7, 0x33, 0xb5, 0xc0, 0x32, 0xe6, 0xf5, 0xc4, 0x54, 0x6d, 0x5e, 0x4f, 0x4c, -0x2d, 0x54, 0xa5, 0x21, 0xf7, 0x04, 0x69, 0x48, 0xd3, 0xeb, 0x2a, 0x13, 0xf2, 0x10, 0x7e, 0x77, -0x25, 0xf3, 0x3b, 0x92, 0x69, 0x30, 0xed, 0x0f, 0xd7, 0x49, 0xfb, 0x64, 0x52, 0xf9, 0x92, 0x3a, -0xc3, 0x27, 0xa6, 0x3a, 0x98, 0x9a, 0x88, 0x19, 0xae, 0xa5, 0xb9, 0x44, 0xda, 0xdf, 0xf4, 0x4d, -0xfc, 0x9a, 0xd2, 0xfe, 0xba, 0xef, 0xda, 0x6f, 0xff, 0xea, 0x3a, 0xdf, 0x7e, 0xbb, 0x2f, 0xb3, -0x35, 0x13, 0x4f, 0x87, 0xb4, 0x94, 0x6f, 0x5e, 0x93, 0x92, 0xb6, 0x65, 0x8a, 0xeb, 0xe8, 0xfc, -0x37, 0x75, 0xca, 0xa4, 0x62, 0x8f, 0xaa, 0xf1, 0xa1, 0x3e, 0xff, 0x8e, 0xa2, 0x6d, 0x49, 0x81, -0x1f, 0xa6, 0x70, 0x8a, 0xe5, 0x32, 0xbe, 0xdb, 0x93, 0xdc, 0xac, 0xa5, 0xb0, 0x54, 0x26, 0x4d, -0xa6, 0x4e, 0x02, 0xa7, 0xd9, 0x0b, 0x39, 0xd3, 0x6a, 0xa4, 0x11, 0x3e, 0x94, 0x63, 0xca, 0xd4, -0xaf, 0x52, 0xe7, 0x96, 0x6e, 0xed, 0xdc, 0x32, 0x5f, 0x60, 0xbd, 0xa0, 0x06, 0x99, 0x35, 0xaa, -0x3a, 0x55, 0x36, 0xa1, 0xb1, 0xa6, 0xed, 0x8a, 0x35, 0x6e, 0x20, 0xef, 0x58, 0x4d, 0x39, 0xf1, -0x0e, 0x77, 0x22, 0x00, 0xda, 0x0e, 0xc9, 0x75, 0xc7, 0x56, 0x95, 0x74, 0xdb, 0x1c, 0x69, 0xec, -0xbf, 0x0e, 0x26, 0x39, 0xae, 0x8b, 0x49, 0xae, 0xeb, 0x62, 0x92, 0xe7, 0xba, 0xe3, 0xef, 0xb8, -0xee, 0xf8, 0xbb, 0xae, 0x33, 0xfe, 0x9e, 0x6b, 0x21, 0x9f, 0xba, 0x4f, 0xda, 0x25, 0x3a, 0x31, -0xd0, 0xec, 0x0d, 0x3b, 0x0d, 0x2a, 0xb5, 0xe7, 0x38, 0x94, 0x22, 0x8e, 0x88, 0x16, 0x71, 0x12, -0xc0, 0x9b, 0x1b, 0xd7, 0x77, 0x3d, 0x07, 0x75, 0xb4, 0xa7, 0xd5, 0x06, 0x79, 0x2e, 0xa8, 0x46, -0xca, 0x10, 0xb0, 0x54, 0x81, 0xee, 0x3f, 0xb7, 0x52, 0x94, 0x19, 0xcc, 0x27, 0xf8, 0xaf, 0x0b, -0x64, 0x65, 0x44, 0x52, 0x41, 0xc9, 0x2c, 0xb0, 0x78, 0x66, 0x81, 0x55, 0x32, 0x0e, 0x3f, 0x84, -0x3c, 0xeb, 0x95, 0xa5, 0x00, 0x5b, 0x38, 0x3e, 0x72, 0x2b, 0x14, 0x41, 0xa1, 0x13, 0xef, 0xa8, -0xb5, 0x87, 0x87, 0xbc, 0xc6, 0x4c, 0x1b, 0x1a, 0xa4, 0xf8, 0x0e, 0xca, 0x75, 0x6b, 0x2b, 0xd8, -0xc0, 0xa5, 0xad, 0x1b, 0x74, 0x72, 0x3e, 0xa7, 0x9d, 0xcf, 0x79, 0xa7, 0x04, 0x7e, 0x26, 0xec, -0x57, 0x3c, 0x50, 0xa2, 0x73, 0xbb, 0xa1, 0xae, 0x83, 0x6c, 0x58, 0x93, 0xed, 0x80, 0xdc, 0xaa, -0x1e, 0xd7, 0x7e, 0x83, 0x78, 0x7b, 0xb2, 0xeb, 0x37, 0x09, 0x2e, 0x67, 0x1e, 0x78, 0xf8, 0x5a, -0x8b, 0x6b, 0xbd, 0x16, 0x2b, 0xb8, 0x9f, 0x34, 0x2a, 0x99, 0x57, 0xee, 0x43, 0x6a, 0x71, 0x0f, -0xe9, 0xf4, 0xbf, 0xf9, 0x84, 0x72, 0xc1, 0x85, 0xe5, 0x14, 0x07, 0x95, 0xcb, 0xc5, 0xcd, 0x3a, -0x50, 0xae, 0x38, 0xdc, 0x10, 0x22, 0x2b, 0xfb, 0xbf, 0x68, 0xa2, 0x53, 0xfe, 0xfa, 0x8d, 0xc8, -0x4d, 0xf5, 0x92, 0xc6, 0x30, 0x3e, 0x19, 0xe9, 0x89, 0x76, 0x32, 0xe8, 0x1c, 0x42, 0x68, 0xdd, -0xbf, 0xf9, 0x84, 0x6a, 0x83, 0xae, 0x59, 0xd2, 0xe9, 0xd8, 0xee, 0xe8, 0xa0, 0x7a, 0x6a, 0x5b, -0x9a, 0xf6, 0x54, 0x48, 0xd1, 0x76, 0xe0, 0xc7, 0x92, 0x7f, 0x42, 0xa4, 0x77, 0xd2, 0x53, 0xed, -0x24, 0x2d, 0xfd, 0x37, 0xcf, 0xc6, 0xc1, 0x1e, 0x9e, 0xe8, 0xab, 0x30, 0x7a, 0x0f, 0xc2, 0x39, -0x7f, 0xb2, 0x75, 0x11, 0x7b, 0x4c, 0xf4, 0x7d, 0x71, 0x15, 0x7c, 0x11, 0x0c, 0x77, 0x76, 0xc2, -0x34, 0x20, 0xfd, 0x0b, 0x57, 0x3c, 0x7f, 0x06, 0x69, 0xa9, 0xa6, 0xe2, 0x0f, 0x8f, 0x97, 0x66, -0x48, 0x8f, 0xf5, 0x0d, 0x1b, 0x32, 0xbc, 0x18, 0xcc, 0x91, 0xc2, 0x19, 0x51, 0x98, 0x03, 0xe9, -0x18, 0xcc, 0xc2, 0x02, 0x89, 0xe6, 0x14, 0x7b, 0xf5, 0x5f, 0xc5, 0x76, 0xef, 0xc8, 0xa1, 0xfc, -0xae, 0xcf, 0xe9, 0x9f, 0xf7, 0x81, 0x32, 0xf0, 0xf6, 0x39, 0xa4, 0xd5, 0xdb, 0xc0, 0x1a, 0xd7, -0x93, 0xc6, 0x07, 0x49, 0xd5, 0xf3, 0xdf, 0x57, 0xde, 0x7f, 0xe7, 0xa0, 0x1b, 0xd7, 0x8a, 0x5f, -0x1f, 0x9c, 0xf1, 0xfd, 0x21, 0x00, 0x07, 0xa6, 0x9c, 0x9f, 0x90, 0xe2, 0x42, 0xba, 0xfd, 0x81, -0xa6, 0xf7, 0x36, 0x23, 0xbe, 0x05, 0xc0, 0x83, 0x5f, 0xfa, 0x66, 0x34, 0xeb, 0x0c, 0x50, 0x86, -0xe3, 0x5c, 0x15, 0xb5, 0x61, 0x2f, 0xa5, 0xc9, 0xbd, 0x3c, 0xd3, 0x17, 0x2b, 0xb3, 0xc3, 0x91, -0x04, 0xc9, 0x88, 0xd5, 0xef, 0x83, 0x2e, 0xa0, 0x93, 0xcd, 0xed, 0x60, 0xd5, 0xdd, 0xf2, 0x92, -0x4b, 0xe7, 0x82, 0x88, 0xce, 0x3a, 0x7d, 0xa7, 0x6e, 0xe9, 0xa5, 0xbc, 0x6e, 0xc4, 0xc9, 0xe9, -0x01, 0x9f, 0x0d, 0xb0, 0x45, 0x55, 0x69, 0x8c, 0x66, 0xea, 0x70, 0x8a, 0x77, 0xfb, 0x50, 0x9e, -0xc5, 0xde, 0xf8, 0xc3, 0xdb, 0xc0, 0x8f, 0x52, 0xe6, 0x4e, 0x8a, 0x1d, 0x45, 0x6b, 0x43, 0xcd, -0x39, 0x2c, 0x13, 0x64, 0x33, 0x7e, 0x0f, 0x5f, 0xfd, 0x85, 0x0d, 0x6c, 0xb6, 0x08, 0xe4, 0x59, -0x76, 0xc0, 0xd2, 0x4b, 0x22, 0xda, 0x56, 0xe0, 0xeb, 0x36, 0x5b, 0x5b, 0x8e, 0xd8, 0x51, 0x1f, -0x8b, 0xd2, 0x28, 0xd9, 0x81, 0x2c, 0x78, 0x56, 0x9b, 0xd4, 0xb4, 0xc5, 0x2e, 0x7f, 0xea, 0x7d, -0x0b, 0xe9, 0x8c, 0x46, 0x43, 0x6d, 0xb6, 0x23, 0x1b, 0xda, 0xd5, 0x5d, 0xf8, 0xb1, 0x10, 0xeb, -0x20, 0x87, 0x27, 0xfb, 0x5c, 0x98, 0x59, 0x0d, 0xa6, 0x99, 0xcd, 0xe0, 0x00, 0x0b, 0xfe, 0xba, -0xc0, 0x8a, 0xbf, 0x1e, 0xb0, 0xd9, 0xcd, 0xea, 0x57, 0xf7, 0x22, 0x6c, 0x1a, 0x66, 0xd4, 0x81, -0x9f, 0x62, 0x43, 0xa0, 0xc4, 0xf2, 0x72, 0xe3, 0x06, 0xec, 0x95, 0x91, 0x6c, 0xa0, 0xa8, 0x67, -0x4b, 0x48, 0x3b, 0x40, 0xe2, 0x31, 0xb2, 0x13, 0x3f, 0x44, 0x3a, 0x01, 0x76, 0x3d, 0x4a, 0x78, -0xf4, 0xad, 0x9c, 0xba, 0x0b, 0xc4, 0x6f, 0xf6, 0xfa, 0x49, 0x0b, 0x30, 0x68, 0x90, 0x61, 0x6c, -0x4d, 0xca, 0xaf, 0x01, 0xeb, 0x57, 0xc7, 0x8a, 0x10, 0xea, 0x0d, 0xa4, 0x91, 0x7d, 0x2b, 0x69, -0x64, 0x93, 0xd6, 0x2d, 0x72, 0x57, 0x38, 0x33, 0xb6, 0x37, 0x6c, 0xc0, 0xda, 0xfd, 0xc4, 0xe5, -0xf0, 0xa9, 0x97, 0x81, 0xb5, 0x9a, 0x85, 0xd6, 0x64, 0x21, 0xcd, 0x32, 0x6c, 0xcf, 0x19, 0x95, -0x53, 0x28, 0x15, 0xcf, 0xe3, 0x4f, 0x31, 0x8d, 0x75, 0x2d, 0x40, 0xcc, 0xe7, 0x13, 0xa5, 0xac, -0xf4, 0x89, 0x92, 0xc8, 0xa1, 0xf4, 0xf2, 0xac, 0x68, 0xc2, 0x3e, 0xc4, 0x44, 0x1f, 0x24, 0x3e, -0x11, 0x52, 0xbd, 0x2d, 0x58, 0x58, 0x1b, 0x93, 0x6c, 0xa8, 0x96, 0x60, 0x49, 0xc4, 0xd9, 0xd9, -0x10, 0xe7, 0xaa, 0xd8, 0xfe, 0x2d, 0x97, 0x56, 0xfb, 0x34, 0x0e, 0xab, 0xfe, 0x16, 0x58, 0xd2, -0xf3, 0xe9, 0xd9, 0xaa, 0x0c, 0xa9, 0x4d, 0xbc, 0x22, 0x63, 0x36, 0x41, 0x2c, 0x20, 0xd5, 0x90, -0xcd, 0xa7, 0x3d, 0x60, 0x47, 0xf9, 0x7b, 0x82, 0xdf, 0x4f, 0x57, 0x5c, 0x3f, 0xc1, 0x7f, 0x81, -0x36, 0x6b, 0x77, 0x67, 0xcc, 0x80, 0x16, 0x8a, 0x59, 0x4f, 0xd2, 0x88, 0x5f, 0xb3, 0xf5, 0x52, -0x5b, 0x89, 0xd8, 0x63, 0x8d, 0x99, 0x6f, 0x34, 0x87, 0x54, 0x2f, 0x16, 0xb4, 0xbf, 0xb6, 0x1c, -0x2c, 0x5f, 0xeb, 0x84, 0x7c, 0x28, 0xa4, 0x3b, 0x8e, 0xe6, 0xeb, 0xa2, 0xbb, 0xb8, 0x74, 0x1b, -0xcd, 0x4e, 0xfe, 0x02, 0x4c, 0x5e, 0x8a, 0x46, 0x84, 0x23, 0x33, 0xfa, 0xb8, 0x56, 0xfe, 0x8c, -0x4e, 0x48, 0x16, 0x39, 0xc1, 0x3d, 0x23, 0x0c, 0x4e, 0xf2, 0x13, 0x74, 0x47, 0x27, 0x58, 0xd9, -0xda, 0xd0, 0x1a, 0x70, 0x01, 0x79, 0x72, 0xb4, 0xc6, 0xf3, 0x6f, 0x15, 0x14, 0xd2, 0x8a, 0x72, -0x96, 0xed, 0xd6, 0xf9, 0xe0, 0x52, 0xdf, 0x7e, 0xd5, 0x4e, 0xde, 0x08, 0x53, 0xbe, 0x29, 0x28, -0xd5, 0x82, 0xa9, 0xb4, 0xb7, 0x27, 0xda, 0x45, 0x54, 0x1d, 0xa9, 0xb7, 0x55, 0x8c, 0x7d, 0x18, -0xdf, 0x45, 0x6d, 0x58, 0xfe, 0x17, 0x70, 0x4c, 0xb5, 0xf6, 0xe0, 0x5b, 0x6a, 0xcf, 0xa7, 0xe3, -0xe2, 0xa4, 0x2e, 0x53, 0x87, 0x83, 0xce, 0xd2, 0x54, 0x6b, 0x72, 0x49, 0xdd, 0x2b, 0x28, 0x37, -0xcd, 0xc2, 0x09, 0x32, 0x16, 0x73, 0xf1, 0x6e, 0x2a, 0xed, 0xab, 0xe4, 0xb1, 0x3e, 0x29, 0xe1, -0xc3, 0xd2, 0x19, 0xe2, 0xb4, 0xca, 0x1a, 0xcb, 0x51, 0xbf, 0x2a, 0x6a, 0xd8, 0x30, 0x03, 0xcb, -0x80, 0x90, 0x63, 0x96, 0x72, 0xcc, 0xd1, 0xaa, 0x9c, 0x10, 0x5e, 0x52, 0x54, 0x8c, 0xb4, 0x60, -0x4b, 0x72, 0xb1, 0x25, 0x1a, 0x85, 0x46, 0x4c, 0xf8, 0xb4, 0x83, 0xd2, 0x11, 0x1b, 0xb6, 0x82, -0xf4, 0xad, 0xc1, 0x20, 0x08, 0x4b, 0xf5, 0x8c, 0xfc, 0x37, 0x4f, 0xca, 0x1f, 0xca, 0xcc, 0x1f, -0x4a, 0x04, 0x19, 0x83, 0x69, 0x34, 0x24, 0x17, 0x84, 0xd4, 0xb9, 0xa2, 0xee, 0x8a, 0xa5, 0xa9, -0x31, 0xb6, 0xd3, 0x1c, 0x8b, 0x66, 0xf4, 0x00, 0x18, 0xbf, 0x7f, 0x82, 0xe9, 0x7c, 0x76, 0x1b, -0xab, 0x42, 0xda, 0xaa, 0x87, 0x86, 0x3b, 0x29, 0x2e, 0x73, 0xe4, 0x4e, 0x8e, 0x45, 0xc6, 0xd4, -0xf6, 0x9e, 0x19, 0x01, 0x8a, 0x73, 0xc7, 0x7d, 0xab, 0x64, 0xa9, 0xc1, 0xc8, 0xb2, 0x42, 0x9d, -0x6a, 0x15, 0x3f, 0x88, 0x2b, 0x0b, 0xef, 0xd0, 0xa7, 0xe9, 0x2a, 0x5b, 0xe4, 0xe2, 0x5c, 0x9c, -0xd8, 0x16, 0x35, 0xff, 0x52, 0xd2, 0x9e, 0x6a, 0xd8, 0x10, 0xcb, 0x51, 0x5b, 0xf0, 0x38, 0xdb, -0xcf, 0x59, 0x52, 0xcf, 0x0f, 0xb2, 0xd7, 0x7a, 0xf3, 0xc0, 0x44, 0x8b, 0x50, 0x59, 0x94, 0x97, -0x81, 0x73, 0x53, 0x05, 0xce, 0x05, 0x9e, 0xbb, 0x16, 0xcf, 0xae, 0x3a, 0x91, 0x1a, 0x5e, 0xe6, -0x51, 0x25, 0xba, 0xae, 0xae, 0xad, 0x6d, 0x53, 0x4f, 0x6f, 0xc5, 0xb5, 0xee, 0xca, 0xc8, 0x36, -0x48, 0xb2, 0x66, 0x9b, 0xba, 0x12, 0x9b, 0x13, 0x80, 0x32, 0xf4, 0xfd, 0x00, 0x8f, 0x07, 0x5e, -0x44, 0x7a, 0xff, 0x22, 0xc2, 0x91, 0x56, 0x6f, 0x8a, 0xbf, 0x46, 0x18, 0xd9, 0x5f, 0xf3, 0x21, -0x98, 0x54, 0xfc, 0xeb, 0x8f, 0x5b, 0x6e, 0x4d, 0xaf, 0x3a, 0xbc, 0xbe, 0xfe, 0x71, 0x4f, 0xc3, -0x86, 0xb6, 0xb1, 0x1d, 0x89, 0x58, 0x3d, 0xbd, 0xc7, 0x11, 0x90, 0x48, 0x42, 0x69, 0xbf, 0x79, -0x67, 0xd7, 0xb2, 0xaa, 0x01, 0x2c, 0x2f, 0x5a, 0x4e, 0x7a, 0xce, 0xb2, 0xdb, 0xec, 0x1f, 0x04, -0x8e, 0x61, 0x3b, 0x7c, 0x67, 0xe7, 0xa0, 0x0e, 0x8e, 0x98, 0x1b, 0x06, 0xf5, 0x14, 0xfb, 0x76, -0x50, 0x0f, 0x23, 0x8b, 0xfb, 0xcc, 0x77, 0x0f, 0x66, 0xf1, 0x53, 0x16, 0x1c, 0xb5, 0x87, 0x7c, -0x96, 0xe8, 0x30, 0x49, 0x5f, 0x44, 0x49, 0x26, 0xca, 0x83, 0x9a, 0xce, 0xcc, 0x85, 0x5c, 0xd1, -0x46, 0xec, 0x75, 0xe1, 0x84, 0xd6, 0x78, 0xf0, 0x7a, 0x4c, 0xe4, 0xf9, 0x60, 0x27, 0xef, 0x69, -0x2a, 0x9a, 0x1c, 0x27, 0x51, 0x4c, 0x94, 0x42, 0xc7, 0x0a, 0x58, 0xec, 0xa8, 0x22, 0x09, 0x70, -0xe1, 0xa8, 0xf2, 0xd3, 0x05, 0xa3, 0xa3, 0x23, 0x6c, 0xfd, 0xba, 0x51, 0x6e, 0x64, 0xbb, 0xda, -0x7f, 0x8f, 0xd5, 0xe3, 0xdc, 0xbf, 0x10, 0x0d, 0xb1, 0xac, 0x38, 0x8d, 0x62, 0xd6, 0xf0, 0x98, -0xe7, 0x73, 0xaa, 0x89, 0x75, 0xb6, 0x36, 0x35, 0x6c, 0x10, 0xd2, 0xa2, 0x5c, 0xc8, 0xa9, 0x42, -0xc7, 0x72, 0x33, 0xff, 0xfe, 0x80, 0xa9, 0xdf, 0x67, 0xaf, 0x90, 0x04, 0x49, 0xb6, 0x8e, 0x07, -0x1d, 0x91, 0xf0, 0xc6, 0xe8, 0xb3, 0xa9, 0x35, 0xea, 0x0a, 0x59, 0xd1, 0xb9, 0x84, 0x15, 0x1d, -0x59, 0x8b, 0x56, 0x95, 0x78, 0xc1, 0xef, 0xf1, 0x42, 0x70, 0xfe, 0xe8, 0x27, 0xdb, 0xd7, 0xb8, -0x8e, 0x6f, 0x10, 0x56, 0xbe, 0xac, 0x2f, 0x3a, 0xcc, 0xde, 0xc6, 0xa6, 0xb0, 0xa6, 0x98, 0xa1, -0x7e, 0x13, 0x9f, 0x6b, 0xd8, 0x62, 0x6e, 0xb2, 0x1c, 0x7d, 0xf3, 0x63, 0x1c, 0x05, 0xe4, 0x02, -0xbc, 0x35, 0xe0, 0xe1, 0x48, 0x8c, 0xec, 0x2d, 0xe8, 0xcd, 0x8f, 0x35, 0xae, 0x88, 0xb4, 0x21, -0x63, 0x7b, 0x48, 0x27, 0xbe, 0x30, 0x99, 0xc9, 0x3d, 0xdf, 0xb0, 0x6e, 0xdf, 0xa4, 0xba, 0x8f, -0xdc, 0xb8, 0xee, 0x43, 0x37, 0x5f, 0xaf, 0xee, 0x43, 0x37, 0xdf, 0xb8, 0x6e, 0x3e, 0x8b, 0x30, -0x98, 0x5c, 0x38, 0xbf, 0xfe, 0xf2, 0x1e, 0x9e, 0xb1, 0xec, 0x05, 0xa5, 0x8a, 0xb4, 0x2c, 0x52, -0xd2, 0xa9, 0xba, 0x53, 0x1b, 0xd8, 0xa6, 0x33, 0x04, 0xdc, 0xba, 0x75, 0xea, 0xba, 0x93, 0x27, -0x76, 0x91, 0x9d, 0x96, 0x0e, 0xa5, 0xd6, 0x30, 0xd4, 0xb3, 0x46, 0x27, 0x1b, 0x03, 0x59, 0x1d, -0x10, 0x98, 0xab, 0xf2, 0xf3, 0x7a, 0x61, 0xfb, 0x90, 0x61, 0xb7, 0x40, 0x5a, 0x25, 0xc5, 0xac, -0x1d, 0x96, 0x61, 0x05, 0x16, 0x0d, 0x4d, 0x94, 0x55, 0x88, 0x9f, 0x65, 0x8d, 0x18, 0x5f, 0x78, -0x6e, 0x6c, 0xb1, 0xb9, 0x97, 0x6c, 0xce, 0x62, 0x65, 0x22, 0x86, 0x25, 0x69, 0x3c, 0x68, 0xb5, -0xc6, 0x95, 0x5a, 0x18, 0xec, 0xe1, 0xd8, 0x18, 0x09, 0xce, 0x83, 0x94, 0xbb, 0x9e, 0x1c, 0x7a, -0x19, 0xe2, 0x45, 0xb5, 0x28, 0x23, 0xe8, 0xcc, 0x5a, 0x3b, 0x44, 0xeb, 0xa5, 0x94, 0x07, 0x8e, -0x19, 0x9d, 0x81, 0xea, 0x20, 0x60, 0xbe, 0x26, 0x94, 0x24, 0xce, 0xce, 0xe8, 0x14, 0x56, 0x6d, -0x5f, 0xa8, 0xd1, 0xad, 0x13, 0xb2, 0xee, 0xbc, 0xdf, 0x6f, 0x81, 0xb7, 0xdf, 0x60, 0xbe, 0xe9, -0x8d, 0x5f, 0xbf, 0x32, 0xff, 0x23, 0x1b, 0xcc, 0x6c, 0x55, 0xaa, 0x74, 0xa6, 0xc6, 0xae, 0x78, -0xd3, 0x40, 0x57, 0xf4, 0xec, 0xbc, 0xf7, 0x95, 0x73, 0x6f, 0xbf, 0xe1, 0xc2, 0xf7, 0xef, 0xbc, -0x31, 0xa3, 0x7d, 0x37, 0xe8, 0x5a, 0x84, 0x3c, 0x2c, 0xf8, 0xaa, 0xf0, 0xc0, 0x16, 0x88, 0x12, -0x47, 0x76, 0x19, 0x7b, 0x72, 0x37, 0xd2, 0xb0, 0x33, 0xda, 0x4e, 0x06, 0xe9, 0x71, 0x4c, 0x6c, -0x93, 0xd3, 0xcf, 0x3e, 0x4b, 0x32, 0x64, 0x08, 0x6e, 0x23, 0xf6, 0x3e, 0x56, 0x2a, 0xa4, 0x78, -0x2d, 0xef, 0xe9, 0x7b, 0xb1, 0xa4, 0xcb, 0x19, 0xbb, 0x24, 0xac, 0xaf, 0x18, 0xf6, 0xc7, 0x0c, -0xf1, 0x08, 0xae, 0xe5, 0x0d, 0x5c, 0xcf, 0xb4, 0xd4, 0x0e, 0x8b, 0xb6, 0x3e, 0x18, 0x67, 0x34, -0xc3, 0x55, 0x5d, 0xa2, 0xee, 0xb7, 0x55, 0x55, 0xe2, 0x74, 0x89, 0xa2, 0x26, 0x3b, 0x85, 0x87, -0x9b, 0x32, 0x9c, 0x73, 0x15, 0xd1, 0x1c, 0x3e, 0xf7, 0x3a, 0x8d, 0xf0, 0xda, 0x9e, 0xd6, 0x8a, -0xe3, 0x38, 0xc9, 0x0f, 0x5f, 0xd7, 0x92, 0x0b, 0x74, 0x7d, 0x33, 0x91, 0x1b, 0x85, 0xdc, 0xea, -0x0b, 0x78, 0x17, 0xc2, 0xf6, 0x64, 0x89, 0xc8, 0x41, 0xdf, 0x18, 0xc0, 0xf4, 0x32, 0xe8, 0xc5, -0xdf, 0x0a, 0xe8, 0x53, 0x4f, 0x3a, 0x2c, 0x82, 0x92, 0xcd, 0xf4, 0x23, 0xef, 0x8a, 0x29, 0x44, -0xeb, 0xf0, 0xbe, 0x0e, 0x39, 0x2d, 0x0b, 0x84, 0x78, 0x3e, 0x4e, 0x1f, 0xd8, 0xd8, 0x64, 0xfa, -0x46, 0x33, 0xd4, 0xeb, 0x7a, 0x65, 0x23, 0x5e, 0x0b, 0xd8, 0x2f, 0x8e, 0x87, 0x7c, 0x2d, 0xf3, -0xce, 0xb7, 0xa0, 0x17, 0x1e, 0xcd, 0x2f, 0x33, 0xe2, 0xd0, 0x99, 0x50, 0x4b, 0x0a, 0x0a, 0x17, -0x58, 0x57, 0x06, 0x60, 0xef, 0x02, 0x21, 0x25, 0x08, 0x5b, 0x0a, 0x2b, 0x69, 0xd7, 0xd8, 0xdd, -0xe0, 0x8a, 0x74, 0x6d, 0xdc, 0x86, 0x33, 0x42, 0x47, 0xba, 0xc2, 0x8d, 0x1b, 0x4a, 0x48, 0x4f, -0x21, 0xa5, 0xe7, 0x8e, 0x25, 0x5e, 0x21, 0x2f, 0x7e, 0x8b, 0xba, 0x86, 0xbb, 0x4e, 0xf7, 0xe1, -0xd3, 0x55, 0xfc, 0x92, 0x4e, 0x5f, 0xcc, 0x6a, 0x5e, 0xab, 0xd0, 0x30, 0xc6, 0x37, 0xc9, 0x6b, -0xcb, 0x15, 0x65, 0x36, 0x6c, 0x58, 0x84, 0xfd, 0xd1, 0x69, 0xed, 0x4c, 0xce, 0xb8, 0x3c, 0xb3, -0x0e, 0xda, 0x1b, 0x36, 0x98, 0x3c, 0x38, 0x9f, 0xfe, 0x3d, 0x96, 0x2b, 0xf4, 0x2a, 0x92, 0x03, -0x64, 0x0f, 0x2d, 0xeb, 0x03, 0x4f, 0x4a, 0xd3, 0x55, 0x2b, 0xa8, 0x77, 0xa3, 0xe6, 0x99, 0x2d, -0x70, 0x15, 0x1a, 0xe5, 0xaa, 0x78, 0xcc, 0x99, 0x60, 0xaf, 0xd4, 0xa2, 0xa7, 0xc8, 0xc5, 0xc9, -0x86, 0xb6, 0x98, 0xb3, 0x2b, 0x3d, 0x1a, 0xf6, 0x3a, 0x31, 0x1e, 0x69, 0x8b, 0xa5, 0x1f, 0x1d, -0x94, 0x0d, 0xf4, 0x1d, 0xd9, 0xbd, 0x89, 0xd3, 0xa6, 0xf4, 0x5a, 0x96, 0x9a, 0x29, 0x2c, 0x5b, -0x23, 0x2c, 0x05, 0xdc, 0x52, 0xb2, 0x31, 0xd5, 0x90, 0xc6, 0xa3, 0x19, 0x1d, 0xd8, 0xaf, 0x84, -0xa8, 0xc9, 0x1e, 0x9e, 0x5c, 0x0f, 0x7d, 0x29, 0x56, 0x37, 0xaf, 0x9e, 0x2c, 0x9d, 0xed, 0xc8, -0x85, 0x86, 0x57, 0x41, 0x5e, 0xac, 0x28, 0x3e, 0xb3, 0x16, 0x3b, 0xba, 0x73, 0x2b, 0x9c, 0x89, -0x55, 0x84, 0xbb, 0x62, 0x39, 0xb7, 0x56, 0xc3, 0xb9, 0x5b, 0x03, 0x70, 0x46, 0x76, 0xc5, 0x1b, -0x64, 0xd2, 0xe8, 0x38, 0xc7, 0x7c, 0xa3, 0x35, 0x3e, 0x8b, 0xce, 0x7c, 0xa2, 0xd6, 0xf6, 0x08, -0xbd, 0x0d, 0x6c, 0x85, 0x73, 0xc8, 0x7d, 0x46, 0x70, 0xa5, 0x3a, 0x13, 0x60, 0xcb, 0x67, 0xe1, -0xb3, 0x0b, 0xb9, 0x47, 0x3a, 0x93, 0x33, 0xe3, 0x77, 0x86, 0x81, 0xe7, 0x74, 0xed, 0xcb, 0x8c, -0x03, 0xcf, 0xc1, 0x95, 0x65, 0x85, 0x6d, 0x66, 0xf6, 0xb5, 0xed, 0x57, 0xf9, 0x44, 0x8b, 0xa6, -0x1f, 0x25, 0xec, 0x93, 0x35, 0x1f, 0x6f, 0x12, 0x45, 0x02, 0x0d, 0x11, 0x57, 0xe2, 0x68, 0x06, -0x03, 0xae, 0xa3, 0x41, 0xf6, 0x67, 0x64, 0x18, 0xfe, 0x51, 0xa4, 0x6b, 0x67, 0x57, 0xf4, 0x2a, -0xe9, 0x0c, 0xd8, 0x91, 0xbf, 0xdf, 0x98, 0x90, 0x74, 0xb7, 0x56, 0x8b, 0xd3, 0x58, 0xd5, 0xeb, -0x8e, 0xe8, 0x15, 0xad, 0xdc, 0x0f, 0xe0, 0x97, 0x74, 0x16, 0x16, 0xba, 0xe6, 0xdb, 0x1c, 0xbb, -0x85, 0xbe, 0x94, 0xba, 0x34, 0x6b, 0x6d, 0x35, 0x4e, 0xb7, 0x67, 0x35, 0xb4, 0x83, 0xd8, 0x4b, -0xe4, 0x33, 0x80, 0x26, 0x37, 0xae, 0x5d, 0xb3, 0x3a, 0xe5, 0x7b, 0x89, 0x07, 0xf2, 0xfa, 0x2a, -0x40, 0x70, 0x33, 0xb4, 0xb3, 0x48, 0xba, 0xbe, 0x74, 0x62, 0xe8, 0x21, 0xdb, 0xd1, 0x75, 0x27, -0xf0, 0x3f, 0x52, 0x70, 0xbd, 0x38, 0x1f, 0xa0, 0x58, 0x9e, 0x87, 0x07, 0x6b, 0x2e, 0x80, 0x41, -0x32, 0xa6, 0x78, 0x8a, 0x47, 0xc8, 0x37, 0x12, 0x69, 0xe6, 0xa1, 0xc4, 0x8f, 0x54, 0x20, 0xd2, -0xdd, 0x48, 0x94, 0x8e, 0xf4, 0xb1, 0xad, 0xcb, 0x9e, 0xa1, 0x38, 0xa8, 0x3c, 0x9b, 0xd9, 0x17, -0x06, 0x95, 0x4b, 0x1a, 0xf5, 0x8b, 0x1e, 0x65, 0xdb, 0x7c, 0x17, 0x5c, 0xb9, 0x2f, 0x71, 0xb6, -0xcf, 0x3b, 0x2d, 0xf4, 0x3d, 0xcd, 0xef, 0x6d, 0xc3, 0x06, 0x27, 0xed, 0x57, 0xa7, 0xb8, 0x0a, -0x07, 0xa4, 0x65, 0xdb, 0xb1, 0xc5, 0x64, 0xcb, 0x74, 0xb4, 0xe7, 0x68, 0x0f, 0xf9, 0x2d, 0x49, -0x7b, 0x0b, 0xe4, 0x74, 0xcb, 0x75, 0xd2, 0x6c, 0xe4, 0xc9, 0x20, 0xe6, 0xc4, 0x5f, 0x4b, 0x4c, -0x62, 0x8b, 0xd5, 0x82, 0x45, 0xdd, 0xd4, 0x87, 0x86, 0xcb, 0x2e, 0x08, 0x77, 0x47, 0x3f, 0x22, -0xa9, 0x14, 0xff, 0x0a, 0x85, 0x77, 0x23, 0x94, 0x63, 0xcd, 0x69, 0x7f, 0x6e, 0x14, 0x2f, 0x73, -0xb2, 0x3f, 0x0d, 0x4c, 0xb3, 0x5c, 0x27, 0xcd, 0x36, 0x39, 0x4d, 0x70, 0xd0, 0x5e, 0x3d, 0xf3, -0xd0, 0xc8, 0x73, 0xe0, 0x2a, 0x60, 0x18, 0xd8, 0x8a, 0xb8, 0xe2, 0x1f, 0xd8, 0x0a, 0x57, 0x9a, -0x2a, 0xdb, 0xa0, 0xd4, 0xa5, 0xeb, 0x75, 0xc0, 0xa6, 0x2e, 0x49, 0x7f, 0xb6, 0x4f, 0x9f, 0xf8, -0xaa, 0xa2, 0x24, 0x31, 0x0f, 0xc2, 0xd6, 0x6e, 0x89, 0x7f, 0x75, 0x7f, 0x82, 0xd6, 0x95, 0xdf, -0x6d, 0x75, 0xc0, 0x7e, 0xc4, 0xd6, 0xda, 0xc4, 0x60, 0x97, 0x94, 0xe0, 0x33, 0x55, 0x92, 0xe6, -0xf4, 0x62, 0x54, 0x39, 0x32, 0x1b, 0x5b, 0x38, 0xb8, 0x49, 0xfb, 0xeb, 0x79, 0x70, 0xac, 0x06, -0x3a, 0xbf, 0x9b, 0x05, 0x34, 0xb2, 0xde, 0x12, 0x17, 0xdd, 0xcf, 0x51, 0xad, 0xb4, 0x56, 0x80, -0x01, 0x57, 0x80, 0xe0, 0xc2, 0x0b, 0xca, 0x9b, 0x92, 0xf9, 0x77, 0x7d, 0x2e, 0xff, 0xfc, 0x0b, -0x4a, 0xd9, 0xfc, 0x3f, 0x0c, 0x81, 0x1c, 0xa6, 0x98, 0xf7, 0x81, 0x4d, 0xaa, 0x7f, 0xa9, 0x72, -0x87, 0x15, 0x25, 0x34, 0x3d, 0xf2, 0x2b, 0x9a, 0x9d, 0xb7, 0x91, 0xf4, 0x45, 0x64, 0x8e, 0x71, -0x2f, 0xec, 0x16, 0x08, 0xc7, 0x44, 0xee, 0xc0, 0x26, 0xd9, 0x18, 0xc1, 0x7a, 0x65, 0xfd, 0x6a, -0xdd, 0xa2, 0xc7, 0xbf, 0xbd, 0x3e, 0x9e, 0x3d, 0xf0, 0xf8, 0xb2, 0x01, 0xe1, 0x55, 0x24, 0x66, -0x66, 0x2a, 0x34, 0x4d, 0xc5, 0x9a, 0x15, 0x6c, 0x8d, 0xab, 0x6a, 0x1b, 0x3a, 0xee, 0xa4, 0x93, -0xfa, 0xcc, 0x5a, 0x90, 0xf6, 0x64, 0x96, 0x5f, 0x38, 0x31, 0x7f, 0xe0, 0x9f, 0x4c, 0x20, 0x6a, -0x6c, 0x07, 0x39, 0x1f, 0x73, 0xd2, 0x59, 0xe8, 0x74, 0x3a, 0x85, 0x74, 0xf8, 0xa9, 0xef, 0x1c, -0xd3, 0x3a, 0xa3, 0x36, 0x2c, 0xc1, 0x28, 0xf2, 0xb3, 0x8f, 0x2e, 0x03, 0x4b, 0xf6, 0x49, 0x21, -0x9b, 0x4a, 0xc4, 0x27, 0x90, 0x3d, 0x8f, 0x8d, 0xf9, 0xe2, 0x26, 0xd2, 0xf4, 0x8a, 0xdd, 0x47, -0x6b, 0xa1, 0xdd, 0xd2, 0xae, 0xdf, 0xd9, 0x15, 0xf3, 0x5b, 0xab, 0xc0, 0x82, 0xd7, 0x0a, 0xc2, -0x54, 0x1c, 0xab, 0xab, 0xd1, 0x20, 0xfb, 0xdc, 0xb8, 0x39, 0x5a, 0x90, 0x92, 0x55, 0x73, 0x50, -0x56, 0xcd, 0xcb, 0xd0, 0x7e, 0x74, 0xb2, 0x76, 0x0d, 0x69, 0xd6, 0x64, 0xcb, 0x74, 0x2e, 0x4e, -0xbb, 0x28, 0x46, 0x61, 0x17, 0x1e, 0x9f, 0x22, 0xe7, 0xc6, 0xf5, 0x72, 0x4e, 0x3c, 0x1b, 0x47, -0xcf, 0x24, 0xe4, 0x58, 0x87, 0x81, 0xe5, 0xd8, 0x1c, 0x95, 0x07, 0xb7, 0xbe, 0xf5, 0xba, 0x03, -0xf9, 0xed, 0xff, 0x78, 0x7d, 0x06, 0x72, 0xb9, 0x5b, 0x20, 0xb2, 0x55, 0x58, 0x14, 0x0a, 0xad, -0xa3, 0xbb, 0x2a, 0x1d, 0xad, 0xcc, 0x47, 0xf3, 0xf8, 0x55, 0x5f, 0x50, 0xfe, 0x7d, 0xcd, 0x7b, -0xc7, 0xd7, 0xe3, 0xe8, 0x9d, 0x23, 0x2b, 0x0e, 0xb2, 0xe4, 0xe3, 0x71, 0x86, 0x85, 0xa3, 0x63, -0x9b, 0x70, 0xac, 0x93, 0x77, 0x84, 0xd9, 0xe2, 0x6e, 0x9f, 0x93, 0x3c, 0x32, 0x5f, 0x96, 0x4c, -0xc3, 0x7d, 0xec, 0x53, 0xe9, 0x8d, 0xe2, 0x90, 0x72, 0x45, 0x5e, 0x2c, 0x91, 0x2f, 0x60, 0xd2, -0x84, 0x27, 0x5b, 0x34, 0xb2, 0x45, 0xc9, 0x49, 0x41, 0x0c, 0xb9, 0x76, 0x7a, 0x56, 0x75, 0x67, -0x0b, 0xe2, 0xd3, 0x58, 0xe6, 0x0d, 0xa8, 0xb4, 0x2c, 0xd5, 0x5b, 0xb9, 0x99, 0xbf, 0x9a, 0x47, -0x5f, 0x45, 0x7a, 0x1a, 0xb1, 0x8e, 0x3d, 0x3d, 0x4d, 0x5b, 0x49, 0x2b, 0xda, 0x51, 0xb6, 0x1b, -0x62, 0xc1, 0x09, 0x65, 0x56, 0xa6, 0x4b, 0x8c, 0x12, 0x56, 0x31, 0x85, 0xa1, 0x31, 0x97, 0xfc, -0x64, 0xdf, 0xa8, 0xf5, 0xca, 0x6d, 0xfe, 0xe6, 0xda, 0x45, 0xeb, 0x9f, 0x18, 0x12, 0x3e, 0x6f, -0x95, 0x5a, 0xc6, 0xf4, 0xa9, 0x08, 0xab, 0x29, 0x7c, 0x4e, 0x3b, 0xa4, 0x69, 0xd3, 0xde, 0x45, -0x74, 0xac, 0x8c, 0xf4, 0x62, 0xb8, 0xdc, 0x3d, 0xa3, 0xed, 0xa2, 0xe5, 0xfa, 0x12, 0xad, 0xec, -0x34, 0x0f, 0xa7, 0x8e, 0x42, 0xae, 0xaa, 0xff, 0x07, 0x7a, 0xd6, 0x81, 0x48, 0x9d, 0xca, 0x32, -0xf7, 0xe2, 0xba, 0xa3, 0x0f, 0x98, 0x7f, 0xeb, 0x8d, 0x86, 0x89, 0x1b, 0xc1, 0xfc, 0xeb, 0x85, -0x6f, 0x03, 0xdd, 0x59, 0xad, 0x44, 0x2a, 0x4b, 0xfb, 0xb2, 0xfa, 0x1c, 0x72, 0x3f, 0xea, 0xb7, -0x6d, 0xca, 0x6d, 0x5d, 0x7d, 0xc0, 0xfc, 0x21, 0xb5, 0xc4, 0x25, 0x28, 0x1f, 0x7b, 0xe6, 0x36, -0xa4, 0x2c, 0x94, 0x0f, 0x69, 0x5f, 0xd2, 0x6e, 0x37, 0xfe, 0xff, 0x00, 0xb9, 0x9c, 0xfe, 0x98, -0x35, 0xd0, 0xaf, 0x7d, 0xf7, 0xe9, 0x65, 0xf1, 0x5d, 0xc3, 0x86, 0xd5, 0xb6, 0x35, 0x46, 0x1a, -0xbf, 0xd2, 0x0e, 0x31, 0x7e, 0x0b, 0x47, 0x3f, 0x1d, 0x21, 0x6a, 0xfd, 0xe1, 0x6e, 0x79, 0x35, -0x9d, 0x63, 0xb0, 0xce, 0xe8, 0x72, 0xea, 0x15, 0xc1, 0xde, 0xe5, 0xc7, 0x55, 0xc5, 0x34, 0xb0, -0x1e, 0xf9, 0x9b, 0xf2, 0x4c, 0xb8, 0x0a, 0xde, 0x95, 0xed, 0x90, 0xab, 0x78, 0x1e, 0xde, 0x1c, -0xcd, 0x8f, 0xdf, 0x84, 0x3c, 0xb6, 0x27, 0x84, 0x2b, 0x00, 0x51, 0x77, 0x01, 0x31, 0x1d, 0xb4, -0xe9, 0x7b, 0xb6, 0xa9, 0x67, 0x28, 0x03, 0x15, 0x5a, 0x3f, 0x36, 0x6b, 0xad, 0x89, 0xac, 0x6d, -0xec, 0xa1, 0xb6, 0xc7, 0xdf, 0x24, 0x5d, 0x89, 0x81, 0xb5, 0x4d, 0xa0, 0x74, 0xa2, 0x6c, 0xd6, -0x1b, 0x6d, 0x14, 0x70, 0xfa, 0xac, 0x3b, 0x05, 0x1f, 0x95, 0x33, 0xd4, 0x7a, 0x3a, 0xff, 0x9c, -0x72, 0x98, 0xb0, 0xe1, 0x9d, 0x0f, 0x78, 0x4e, 0x3a, 0x04, 0xb7, 0xf5, 0x17, 0x4d, 0x34, 0x8f, -0xe9, 0xcc, 0x67, 0x60, 0x53, 0x93, 0xd5, 0x95, 0xd0, 0xfa, 0x7f, 0x35, 0xd5, 0x7f, 0xed, 0xfb, -0xf4, 0xd9, 0x01, 0x9d, 0xf8, 0xc6, 0xee, 0x55, 0xc7, 0x51, 0x8f, 0xb2, 0x21, 0xc5, 0x92, 0xa8, -0xc5, 0xd6, 0xd7, 0xde, 0xa8, 0xee, 0x89, 0xe7, 0x0e, 0xa9, 0x3a, 0xd6, 0xa7, 0xc7, 0x26, 0x40, -0xde, 0xca, 0xa6, 0xa6, 0x67, 0x62, 0x67, 0x92, 0x66, 0xe2, 0xb7, 0x37, 0xa4, 0x76, 0x09, 0x0c, -0x5e, 0x17, 0x71, 0xbc, 0x28, 0x3d, 0x0b, 0xea, 0x47, 0x1c, 0xad, 0x9f, 0xbc, 0x95, 0x5d, 0xdd, -0xd3, 0xb8, 0x81, 0xfc, 0xc2, 0x38, 0xfe, 0x46, 0xd5, 0x4a, 0x3e, 0x46, 0x5e, 0x7a, 0xb4, 0xbd, -0x8e, 0xe2, 0xb0, 0x72, 0x02, 0xe7, 0xca, 0x31, 0x9c, 0x73, 0x67, 0xe6, 0x5f, 0x54, 0x8e, 0xd1, -0x29, 0xc4, 0xa7, 0xb9, 0xe4, 0xbf, 0x35, 0xea, 0xd4, 0x38, 0x1c, 0x94, 0x89, 0x92, 0xb6, 0xed, -0xf5, 0x4f, 0xd2, 0x3b, 0xe5, 0x71, 0x27, 0xa8, 0xb2, 0xca, 0x93, 0x6c, 0x3b, 0xae, 0x5f, 0x0d, -0xec, 0x39, 0x77, 0xcf, 0xa7, 0xbd, 0x93, 0x79, 0x6e, 0x1a, 0x23, 0xe6, 0x9e, 0x7b, 0x62, 0x79, -0xf1, 0x43, 0x74, 0xfa, 0xa5, 0xe9, 0xc1, 0xc5, 0xef, 0xc6, 0x5e, 0x44, 0x98, 0x97, 0x36, 0x89, -0xaf, 0xff, 0xf8, 0x4c, 0x8a, 0xfa, 0x09, 0x1b, 0xc0, 0x8b, 0x85, 0xaa, 0xa6, 0x09, 0xed, 0xa9, -0x91, 0xec, 0x4b, 0xde, 0xac, 0x78, 0x7f, 0x8d, 0x65, 0x5f, 0xe4, 0xf0, 0x6b, 0xf0, 0x39, 0x40, -0x9e, 0x87, 0x9c, 0x5f, 0xc5, 0xb9, 0xe7, 0x52, 0x7b, 0x56, 0x99, 0x61, 0x1b, 0x93, 0xd9, 0x1a, -0x94, 0x38, 0xde, 0x66, 0xed, 0x05, 0x5e, 0xbd, 0xfd, 0xb4, 0xaf, 0x2b, 0x2d, 0x20, 0xbd, 0x1b, -0xec, 0xf5, 0x3b, 0xe9, 0x08, 0x36, 0xac, 0x75, 0x34, 0x3d, 0x70, 0xa7, 0xe9, 0x1d, 0xc2, 0x47, -0x8a, 0x53, 0xc3, 0x12, 0xe1, 0xee, 0x78, 0xc3, 0xc0, 0x36, 0x38, 0x13, 0xcd, 0x6f, 0xcb, 0x65, -0x4e, 0xa9, 0x4e, 0x49, 0x72, 0x5b, 0x9e, 0x64, 0x58, 0x9f, 0x46, 0xee, 0xef, 0x4c, 0xdb, 0xdd, -0x3b, 0x12, 0x51, 0x57, 0xdc, 0x90, 0xf2, 0x7c, 0x99, 0xa9, 0x65, 0x5e, 0xa4, 0xee, 0x9e, 0x94, -0x89, 0x98, 0x25, 0xb2, 0xb1, 0x2d, 0xb2, 0x43, 0xf5, 0x43, 0x14, 0x4c, 0x08, 0x0f, 0x05, 0x4b, -0xcc, 0xca, 0xa0, 0xe0, 0xb4, 0x54, 0xea, 0x5a, 0xc8, 0xd4, 0xd5, 0x96, 0x41, 0x5d, 0x0b, 0x89, -0xba, 0x92, 0x4f, 0x98, 0x70, 0x12, 0x92, 0xe5, 0x07, 0x21, 0xf9, 0x40, 0x83, 0x41, 0x77, 0x53, -0x0f, 0xde, 0x5f, 0x80, 0xe4, 0xd7, 0xbf, 0x88, 0x7f, 0xfb, 0x45, 0xd0, 0xa2, 0xef, 0xb4, 0x2e, -0x5d, 0xd6, 0x36, 0xab, 0xed, 0x3b, 0xad, 0xa9, 0xe0, 0x76, 0x91, 0xea, 0x85, 0x98, 0x7e, 0xcb, -0xb5, 0x2f, 0xae, 0x49, 0x91, 0xee, 0x28, 0xf9, 0x86, 0xe4, 0xf2, 0x7d, 0xbd, 0xc4, 0xa7, 0x46, -0x88, 0xcb, 0x01, 0xfa, 0x5a, 0xa2, 0xa8, 0x5f, 0x1c, 0x7d, 0xce, 0x8c, 0x32, 0x85, 0x15, 0x24, -0x70, 0x64, 0xc6, 0x8d, 0xbb, 0x5e, 0xec, 0xb9, 0x6b, 0x2b, 0xcb, 0xfc, 0xe2, 0xfb, 0xed, 0x0f, -0xb4, 0x3c, 0xd0, 0xfe, 0xb7, 0xa9, 0xe7, 0x49, 0xff, 0x66, 0xa8, 0x71, 0x97, 0x6e, 0xcf, 0xb8, -0x87, 0xd0, 0x7b, 0x77, 0xd8, 0x6b, 0x10, 0x1b, 0xbf, 0x1e, 0xc9, 0x8c, 0xd7, 0xea, 0x04, 0x94, -0xa0, 0x92, 0xe5, 0xe3, 0xed, 0xe0, 0xf1, 0xd3, 0x2e, 0x34, 0x9d, 0x30, 0x44, 0x2d, 0x25, 0x55, -0x09, 0x1d, 0xa4, 0xf8, 0x2f, 0x65, 0x13, 0x4a, 0xe8, 0xc9, 0x6f, 0xd8, 0x68, 0x4e, 0x67, 0x1d, -0x74, 0x40, 0xe3, 0x86, 0x6b, 0x73, 0xd0, 0x8e, 0x24, 0x42, 0x92, 0x76, 0x26, 0xe1, 0x76, 0xec, -0xe3, 0x8c, 0x00, 0x48, 0xf1, 0x1c, 0xe2, 0xc5, 0xd8, 0x43, 0xb2, 0xc3, 0x9e, 0xe3, 0xa9, 0xa1, -0xfd, 0x6a, 0xb5, 0x74, 0xc8, 0xfc, 0x96, 0x5b, 0x75, 0x5f, 0xda, 0x6f, 0x34, 0x9f, 0x72, 0x34, -0xc5, 0xe7, 0xa4, 0x39, 0x40, 0xa5, 0xd2, 0x4e, 0x69, 0x0d, 0xb7, 0x61, 0x2d, 0x5f, 0x6f, 0x83, -0x9c, 0xc0, 0x4c, 0x98, 0x7a, 0x5b, 0x67, 0x35, 0x0d, 0x4c, 0xee, 0x6d, 0x64, 0xf5, 0x3b, 0x15, -0xf2, 0x6e, 0x23, 0x5f, 0xe5, 0xbb, 0x21, 0x5f, 0xc2, 0xfe, 0x7c, 0xdd, 0xc0, 0xfe, 0x43, 0x9c, -0x94, 0xe6, 0x07, 0x70, 0xc7, 0x3f, 0xc3, 0xa7, 0x92, 0xdb, 0x02, 0x50, 0x5e, 0x7d, 0x3e, 0x1d, -0xd1, 0x71, 0xfc, 0x23, 0xa2, 0x06, 0xc1, 0xf5, 0xe9, 0xfd, 0x71, 0xda, 0x6b, 0xb2, 0x5a, 0x62, -0xd6, 0x48, 0x5f, 0xcd, 0x79, 0x08, 0x23, 0x36, 0x67, 0x68, 0xb8, 0x93, 0x56, 0x08, 0x28, 0x81, -0x52, 0x57, 0x38, 0x1e, 0x1e, 0x7e, 0x44, 0xdb, 0x9f, 0xbb, 0x6b, 0x0e, 0x69, 0xe2, 0xe9, 0xef, -0xb9, 0x5e, 0x94, 0x2a, 0x53, 0x05, 0xf7, 0xac, 0x77, 0x62, 0x7c, 0x5c, 0xbd, 0xba, 0x13, 0x1c, -0xcd, 0xb5, 0x2f, 0xf0, 0x55, 0xe9, 0xef, 0x11, 0x3e, 0xa9, 0x4d, 0xe6, 0x27, 0x5f, 0xa7, 0x3d, -0x7f, 0x87, 0x7f, 0xc1, 0x79, 0x58, 0x22, 0x2d, 0xcc, 0x88, 0x89, 0xb5, 0x30, 0xd3, 0xcf, 0x7a, -0xcc, 0x24, 0xf9, 0x71, 0xf5, 0xcc, 0x91, 0xf5, 0x3f, 0x3a, 0xe8, 0xf0, 0x40, 0x21, 0xf9, 0x17, -0x90, 0x5a, 0x52, 0xd1, 0x7d, 0xc8, 0x52, 0xb1, 0x8c, 0xf6, 0xd4, 0xd5, 0xe8, 0x04, 0xc9, 0xea, -0x64, 0x25, 0x78, 0x56, 0xe8, 0xc3, 0xe4, 0x9b, 0x9a, 0xcf, 0x2c, 0xe7, 0x92, 0xaf, 0x7e, 0xfc, -0xc2, 0x60, 0x5f, 0x3c, 0x73, 0x21, 0x18, 0xaa, 0xaa, 0x67, 0xd6, 0x83, 0x19, 0xe5, 0x47, 0x4b, -0xda, 0x9f, 0x33, 0xf6, 0xdb, 0x4d, 0x91, 0xa5, 0xde, 0xdd, 0x86, 0x3c, 0x6e, 0x4b, 0x5a, 0xcb, -0x7f, 0x7c, 0x6f, 0x78, 0x6e, 0x14, 0xa6, 0x94, 0x12, 0x6d, 0xe2, 0xb3, 0xbd, 0x9b, 0xe3, 0xba, -0xff, 0xdc, 0xda, 0x9b, 0x90, 0x61, 0x4a, 0x91, 0xa4, 0xa7, 0x58, 0x53, 0x32, 0xed, 0x42, 0x4e, -0x13, 0x7c, 0x02, 0xe5, 0x9a, 0xe0, 0x21, 0xfe, 0x8c, 0x0c, 0xc6, 0xe1, 0x36, 0xb5, 0x35, 0xe3, -0xa5, 0x2e, 0x37, 0x98, 0xe2, 0x91, 0x81, 0x5e, 0x5c, 0xc9, 0x83, 0xad, 0x00, 0xfb, 0xe8, 0xec, -0x8a, 0x9e, 0xb2, 0xc2, 0xad, 0x32, 0xde, 0xdf, 0xcc, 0x6f, 0xf6, 0xb6, 0xfa, 0x2c, 0xa4, 0x37, -0x8a, 0xf7, 0xd9, 0x89, 0xd6, 0x5c, 0xe2, 0xb5, 0x70, 0xdd, 0x06, 0xe3, 0x62, 0x19, 0x74, 0xdd, -0xb8, 0x16, 0x52, 0x9e, 0xa5, 0x98, 0x3a, 0x95, 0x53, 0xe7, 0xc8, 0x60, 0x38, 0x1e, 0xbf, 0x85, -0x52, 0x0d, 0x6d, 0x2b, 0x21, 0xdb, 0x8e, 0x6f, 0xa6, 0x73, 0x9e, 0x47, 0xf0, 0xee, 0x0b, 0x9c, -0xa7, 0x40, 0x86, 0xac, 0x23, 0xf1, 0x2f, 0x73, 0x89, 0xa7, 0x5b, 0x9d, 0x98, 0x6e, 0xe3, 0x5a, -0x2b, 0x56, 0x82, 0x7e, 0x14, 0x9f, 0xbe, 0xc4, 0x4f, 0x4f, 0xe1, 0x5d, 0x01, 0xe5, 0xcf, 0x3e, -0x8f, 0xf9, 0xd7, 0xc5, 0xbf, 0xc2, 0xa5, 0x44, 0x57, 0x42, 0xd6, 0x7e, 0x7c, 0x63, 0xe7, 0x1a, -0x36, 0xe2, 0x9d, 0x8b, 0xf3, 0xbc, 0x26, 0x83, 0xbe, 0xdd, 0xdc, 0xcb, 0xb1, 0xd6, 0x21, 0xbb, -0x7e, 0xe5, 0x4a, 0xba, 0xcf, 0xfa, 0x90, 0xe2, 0x8c, 0xac, 0xf4, 0xf1, 0xfd, 0x05, 0xe4, 0xb4, -0xae, 0xac, 0x34, 0xc7, 0xbf, 0xc5, 0xf9, 0x29, 0x36, 0x7b, 0x94, 0xd3, 0x2f, 0x62, 0xfa, 0x09, -0xbe, 0xbb, 0x84, 0xe9, 0x0f, 0xca, 0xc8, 0x3d, 0xf0, 0xd3, 0x18, 0xc5, 0x4c, 0x5e, 0x99, 0xcb, -0xf7, 0x97, 0xf1, 0x4d, 0x13, 0x79, 0x22, 0xe0, 0xa7, 0x71, 0x2a, 0x95, 0xef, 0x14, 0x4c, 0xaf, -0x93, 0x21, 0xdb, 0xc0, 0x35, 0x4f, 0xc1, 0xf4, 0xe3, 0xa2, 0x36, 0x43, 0x56, 0xac, 0x53, 0x7c, -0x6b, 0xd0, 0x63, 0x1e, 0x17, 0xe9, 0xf8, 0xf3, 0x93, 0x01, 0x4b, 0xad, 0xe3, 0x3b, 0x23, 0xa6, -0x93, 0xbd, 0xd9, 0x3a, 0x7e, 0x9a, 0x86, 0x7d, 0x6b, 0x5f, 0x69, 0xe3, 0xfb, 0xa9, 0x78, 0x1f, -0xe0, 0xbb, 0x9c, 0x28, 0x18, 0x2e, 0x60, 0xcf, 0xb8, 0x7c, 0x8b, 0x0e, 0xbf, 0xdd, 0xc3, 0x77, -0x58, 0xa6, 0x61, 0x04, 0x21, 0xbd, 0x5b, 0x60, 0x58, 0xcd, 0x09, 0xd2, 0xa2, 0xa1, 0x7d, 0xb9, -0x0a, 0x7f, 0x25, 0x72, 0x72, 0x86, 0xd7, 0x28, 0x35, 0x58, 0x89, 0x77, 0xcf, 0x8a, 0x88, 0x66, -0x1a, 0x66, 0x26, 0x9f, 0xf2, 0x1a, 0xbc, 0x90, 0x8e, 0x82, 0x91, 0x11, 0x95, 0x8a, 0x4b, 0x0a, -0xe9, 0xf1, 0x9b, 0x9c, 0x1b, 0xbf, 0x0f, 0xce, 0xa9, 0xf0, 0x0b, 0x6e, 0xd1, 0xb0, 0x34, 0x15, -0x7f, 0x26, 0x39, 0xef, 0x1e, 0x7c, 0xae, 0xb8, 0x26, 0x2e, 0x4d, 0x32, 0xf8, 0x9a, 0x6c, 0xbd, -0x36, 0x75, 0xae, 0xcd, 0xe5, 0xc7, 0x11, 0x5d, 0x7a, 0x9d, 0x37, 0xeb, 0xe5, 0x33, 0xd7, 0xa6, -0xd6, 0x36, 0xc8, 0x87, 0x10, 0x53, 0x0b, 0x33, 0x62, 0x77, 0x90, 0x3d, 0xfc, 0xb0, 0xda, 0x93, -0x09, 0xed, 0xab, 0x1d, 0x3e, 0xd3, 0x27, 0x7c, 0xd1, 0x60, 0x0d, 0x83, 0x93, 0xdf, 0xce, 0xcb, -0xc3, 0xd4, 0xfe, 0xc9, 0xa9, 0xf3, 0xfb, 0xe5, 0x92, 0x74, 0x6d, 0xf3, 0xf7, 0xc8, 0xd2, 0x35, -0x39, 0x8e, 0xca, 0xe6, 0x74, 0x8e, 0x70, 0x39, 0xd5, 0x41, 0xd1, 0xb8, 0xb2, 0xee, 0xbb, 0x31, -0xa4, 0xc2, 0x08, 0x13, 0xfd, 0xf8, 0xa4, 0x36, 0x17, 0x5e, 0xdb, 0xe2, 0xf0, 0x6a, 0x8a, 0xca, -0xa1, 0xdf, 0x73, 0xe3, 0x92, 0x16, 0xe0, 0x4c, 0xd3, 0xef, 0xcc, 0x28, 0x29, 0xd5, 0x92, 0x05, -0x38, 0xef, 0xf5, 0x4f, 0x4d, 0xa8, 0x83, 0x52, 0xfb, 0x31, 0x75, 0x9b, 0xba, 0x4b, 0x25, 0x65, -0xc6, 0xfe, 0x99, 0x90, 0xeb, 0x04, 0xe2, 0x5e, 0xe7, 0x9f, 0xcd, 0x45, 0x31, 0x2a, 0x6c, 0x15, -0x9d, 0x8a, 0x82, 0x65, 0xc6, 0xa9, 0x26, 0xd9, 0x30, 0x39, 0x4f, 0xfd, 0x12, 0x7c, 0x57, 0x89, -0x23, 0x24, 0x4d, 0xc4, 0xb5, 0xd1, 0x92, 0x89, 0xb8, 0xa6, 0xe6, 0x1e, 0xc6, 0x7a, 0xa9, 0x0c, -0x89, 0x38, 0x73, 0x9b, 0x25, 0x96, 0x17, 0xe9, 0xb3, 0x93, 0xb6, 0x70, 0x86, 0x87, 0x07, 0xf2, -0xc0, 0x00, 0x4a, 0xf5, 0xc7, 0x21, 0x08, 0xb8, 0x74, 0xe1, 0x89, 0xa5, 0x7e, 0x7a, 0x8c, 0x74, -0x5d, 0x27, 0x97, 0xfa, 0x97, 0x21, 0xf2, 0xc1, 0xfe, 0x5f, 0x29, 0x95, 0x30, 0x8a, 0x23, 0x14, -0x4c, 0x18, 0xa1, 0x4f, 0xd7, 0x60, 0xe9, 0xd7, 0xc1, 0xab, 0x86, 0x2a, 0x2c, 0xff, 0xa3, 0x09, -0xa9, 0x7b, 0x3e, 0xad, 0xd7, 0x28, 0xfc, 0xdd, 0x4f, 0x09, 0xab, 0x3a, 0x5d, 0xf9, 0xb5, 0x50, -0xf8, 0xd4, 0x75, 0x3d, 0x28, 0x44, 0xf2, 0x04, 0x8e, 0x32, 0x24, 0x32, 0xea, 0xbf, 0x3a, 0x7a, -0x6d, 0xdd, 0x91, 0x1f, 0xab, 0x56, 0xef, 0x22, 0x22, 0x5d, 0x72, 0x51, 0x03, 0xe1, 0x1f, 0xc7, -0x0c, 0x3c, 0xe9, 0x9d, 0x38, 0x2f, 0x52, 0x98, 0xb1, 0xa8, 0x99, 0xe7, 0x29, 0x69, 0x07, 0xef, -0xa1, 0x9e, 0xba, 0x10, 0x32, 0x7c, 0xe2, 0x6d, 0xb8, 0xb6, 0xcf, 0x57, 0xd7, 0xb1, 0x55, 0xee, -0x35, 0xf5, 0x2e, 0xda, 0xcb, 0x1c, 0xb2, 0xfc, 0xa7, 0xf0, 0xe3, 0x9b, 0x12, 0xcf, 0x36, 0xab, -0x4c, 0xda, 0xda, 0x36, 0x5f, 0x33, 0xe4, 0x7b, 0x4d, 0xe2, 0xcd, 0x3d, 0x61, 0xa6, 0x13, 0x76, -0xbe, 0x7f, 0x56, 0x2e, 0x10, 0x6d, 0xf3, 0xd4, 0xd6, 0x6f, 0xce, 0x9c, 0x4b, 0xdf, 0xba, 0xa7, -0x21, 0x45, 0xb9, 0xe4, 0xdc, 0xb6, 0x92, 0x5a, 0x9d, 0xb6, 0x36, 0xfd, 0xe8, 0xa0, 0xb6, 0x66, -0x92, 0x74, 0x60, 0x8f, 0xcc, 0xc0, 0x95, 0x72, 0x46, 0x1d, 0x98, 0x67, 0x4c, 0x58, 0x27, 0x65, -0x23, 0xed, 0xbc, 0xdc, 0xb3, 0x75, 0xd2, 0x0a, 0x5d, 0x24, 0x62, 0x13, 0x0a, 0xdf, 0xa4, 0x32, -0x7c, 0x9a, 0x4b, 0x12, 0xde, 0xb2, 0xdd, 0xce, 0x69, 0xc6, 0x1e, 0x00, 0x9d, 0xba, 0xfa, 0x87, -0xe7, 0xc6, 0xe0, 0xea, 0x41, 0xbb, 0xa8, 0x6f, 0xa9, 0x68, 0xcf, 0xd2, 0xb2, 0x46, 0xb1, 0x6b, -0x68, 0x15, 0x3b, 0x17, 0xc8, 0x91, 0xdb, 0x55, 0xdd, 0x7c, 0x9b, 0xf0, 0x32, 0x18, 0xdd, 0x6b, -0x45, 0xee, 0x2b, 0x66, 0x95, 0x6a, 0x90, 0x3f, 0x59, 0x30, 0x91, 0x3f, 0xf9, 0x42, 0x00, 0x34, -0xce, 0x84, 0xcf, 0x4c, 0xbc, 0xb9, 0xaa, 0x05, 0x87, 0xd9, 0x83, 0x9c, 0x0d, 0xf6, 0x25, 0x87, -0xf7, 0xa6, 0x72, 0xf1, 0xc9, 0x44, 0x3d, 0x13, 0x4f, 0xe4, 0x35, 0x4d, 0xd5, 0xe1, 0x29, 0x9d, -0x9c, 0x92, 0x7c, 0x4a, 0x78, 0x9c, 0xaa, 0x28, 0x65, 0xaf, 0x9e, 0x5e, 0x70, 0x31, 0x3f, 0xd3, -0x1f, 0x9f, 0x91, 0xe6, 0x67, 0x58, 0xae, 0xdc, 0x33, 0xc3, 0xaf, 0xaf, 0x9f, 0x11, 0x04, 0x13, -0xf1, 0x89, 0x5f, 0xaf, 0xe2, 0x96, 0x0e, 0x2f, 0x4a, 0x9c, 0xed, 0x6b, 0xab, 0xe3, 0xa8, 0x11, -0x96, 0xb8, 0x1f, 0x21, 0x57, 0x48, 0xbc, 0x21, 0x72, 0x7e, 0x52, 0xa8, 0x19, 0x4a, 0x89, 0x97, -0xd4, 0xb7, 0x60, 0x0b, 0x3d, 0xb7, 0xe2, 0x77, 0x71, 0x5d, 0xc8, 0x8f, 0x7c, 0x28, 0x31, 0xc6, -0x55, 0x14, 0x9c, 0x39, 0x55, 0x7e, 0x08, 0xbf, 0x9b, 0xd3, 0xb0, 0x21, 0x9a, 0xeb, 0x75, 0x23, -0xa4, 0xf6, 0x28, 0x01, 0x27, 0xf6, 0x9f, 0xe4, 0xa6, 0x38, 0xf1, 0xad, 0xe4, 0x68, 0x8d, 0xbf, -0x9a, 0x90, 0x3f, 0x10, 0x35, 0xab, 0xb9, 0xad, 0x94, 0x5b, 0xe2, 0x13, 0x02, 0x3b, 0x97, 0x4b, -0xb9, 0x4d, 0x13, 0x73, 0xd7, 0x6a, 0xb9, 0xc7, 0xcf, 0x52, 0x6e, 0x8e, 0x18, 0xc1, 0xbd, 0xe0, -0xc8, 0x35, 0xc9, 0xe5, 0x47, 0x52, 0x16, 0x77, 0x5a, 0xbe, 0x97, 0x29, 0x1f, 0xf9, 0x8f, 0x82, -0xad, 0xb7, 0x63, 0xdb, 0xdb, 0x2c, 0x47, 0x1e, 0xf5, 0x34, 0x33, 0xb6, 0xf8, 0x6f, 0xe7, 0x73, -0x1a, 0x90, 0xec, 0xd3, 0x44, 0xca, 0xd8, 0xbd, 0x64, 0x9d, 0x81, 0xf7, 0x11, 0x8e, 0xac, 0x95, -0xf3, 0xc4, 0x10, 0xe6, 0x6a, 0x22, 0xae, 0x18, 0x61, 0xe0, 0x14, 0x30, 0x98, 0x78, 0xc6, 0xdc, -0x98, 0xea, 0xeb, 0xf8, 0x3d, 0x2c, 0x49, 0xfa, 0x53, 0xd1, 0x3c, 0x52, 0x6d, 0xba, 0x3f, 0x47, -0x68, 0xa4, 0xc7, 0xc8, 0xe6, 0x7a, 0x9c, 0x65, 0x65, 0x4c, 0xbd, 0x2f, 0x47, 0xb3, 0xee, 0x53, -0xbf, 0xcf, 0x17, 0xb0, 0x72, 0x02, 0x3d, 0xb3, 0xaf, 0xd7, 0x3c, 0xc4, 0xf7, 0x1e, 0x71, 0x82, -0x56, 0xf7, 0xdb, 0xba, 0xc2, 0xfa, 0xef, 0xaf, 0xd6, 0xc9, 0xa7, 0xd5, 0x73, 0x5e, 0xb3, 0x14, -0xa9, 0x39, 0x07, 0x96, 0xf6, 0x3b, 0x6b, 0xf5, 0x2f, 0x9d, 0x03, 0x5b, 0xd4, 0x83, 0x18, 0xe6, -0x7c, 0xe9, 0x3c, 0x94, 0x44, 0xed, 0x98, 0x1e, 0xc2, 0xb4, 0x86, 0xa8, 0x0d, 0xe5, 0x6d, 0x47, -0x5c, 0x37, 0xb0, 0x15, 0xac, 0x51, 0xb3, 0xa8, 0x95, 0x70, 0x36, 0xa0, 0xe7, 0x1a, 0xe8, 0xf4, -0x99, 0x62, 0x61, 0x75, 0xab, 0xa7, 0xea, 0xbc, 0x7b, 0x2d, 0x3c, 0x70, 0x02, 0xed, 0xe1, 0xd8, -0xc8, 0x2f, 0xac, 0x13, 0x39, 0x4f, 0x73, 0xb1, 0x32, 0x06, 0x53, 0xa3, 0xb5, 0x38, 0xb7, 0xe6, -0xc4, 0x53, 0x5a, 0x17, 0x63, 0x55, 0x6e, 0xe2, 0x9a, 0xed, 0xc5, 0x0b, 0xc0, 0x54, 0xbc, 0x02, -0x07, 0xcb, 0xa2, 0x9e, 0xcc, 0x42, 0xa8, 0x05, 0x0a, 0xb0, 0x6c, 0x1f, 0xf5, 0xef, 0x87, 0x6f, -0xd0, 0xaa, 0x4e, 0xfd, 0x1b, 0x2b, 0x77, 0x12, 0x1d, 0x32, 0xfe, 0xfd, 0x9b, 0xe5, 0x9d, 0x30, -0x82, 0x98, 0x54, 0x78, 0xeb, 0x42, 0x5a, 0x4f, 0xb0, 0x25, 0xe4, 0x17, 0xc3, 0xd9, 0xb0, 0x61, -0x17, 0xc2, 0xfc, 0x5b, 0x6a, 0x6f, 0xc9, 0xab, 0x40, 0xaa, 0xa7, 0xb4, 0x17, 0xbf, 0x1c, 0x4c, -0x26, 0x8a, 0xf7, 0x32, 0x3b, 0x2a, 0xa5, 0x3c, 0x7d, 0x71, 0x6c, 0x90, 0xc6, 0xad, 0x0e, 0x10, -0x35, 0x24, 0x47, 0x98, 0x8a, 0x19, 0xe3, 0x5f, 0xad, 0x85, 0x76, 0x85, 0x4b, 0x06, 0xf2, 0xcc, -0x46, 0x5e, 0x67, 0x52, 0xa7, 0xc2, 0x3e, 0x4d, 0x6e, 0xa0, 0x12, 0x9d, 0x0f, 0x80, 0x03, 0x4b, -0xd5, 0xc3, 0x6c, 0x82, 0x72, 0x9b, 0x54, 0xab, 0x1b, 0xec, 0x0a, 0x37, 0x83, 0x23, 0xea, 0xc3, -0x71, 0xf1, 0xb1, 0x5e, 0x0c, 0xfd, 0x99, 0x04, 0xec, 0xbe, 0xed, 0x4c, 0xd5, 0xd4, 0xcc, 0x3b, -0x56, 0xdd, 0xb1, 0xdc, 0xaf, 0x93, 0x34, 0x63, 0xc3, 0x3a, 0x67, 0x4e, 0xa8, 0xb3, 0x91, 0x3d, -0xdd, 0xa8, 0xfe, 0xbf, 0xaa, 0xaa, 0x58, 0x87, 0xd1, 0x0b, 0x1e, 0xc9, 0x0b, 0x3e, 0x84, 0xa8, -0xc9, 0xe5, 0x41, 0x8e, 0x5c, 0x41, 0x19, 0x3a, 0xc7, 0x81, 0x90, 0x5b, 0x03, 0xab, 0x41, 0x2e, -0x22, 0x8c, 0x75, 0xb4, 0x80, 0xc5, 0xe9, 0x01, 0xab, 0xdb, 0x20, 0xe7, 0xe2, 0x1b, 0x1b, 0xdb, -0x9a, 0xe7, 0xba, 0x8b, 0xa1, 0xf0, 0x78, 0xf7, 0x9e, 0xe7, 0xa1, 0xf0, 0xfe, 0x7c, 0xd2, 0xda, -0xf2, 0xba, 0xf4, 0x61, 0xc4, 0xb1, 0x5f, 0x93, 0x2f, 0xa1, 0x86, 0x0d, 0x1d, 0x8a, 0xdc, 0x18, -0xee, 0x6e, 0x25, 0xcf, 0x77, 0xd3, 0x16, 0xe0, 0x7c, 0x6f, 0x92, 0xea, 0x7f, 0x30, 0xd2, 0x23, -0xe7, 0x6c, 0x4a, 0x38, 0x22, 0xe2, 0x8c, 0xba, 0x61, 0xc3, 0x40, 0xf7, 0xb2, 0xcb, 0xb2, 0x33, -0xd8, 0x2d, 0x65, 0x89, 0x1c, 0x72, 0x2e, 0xbe, 0xa5, 0x7d, 0x94, 0xd4, 0xfb, 0xa5, 0x86, 0x70, -0x77, 0xf4, 0x3c, 0x45, 0x8e, 0x98, 0x19, 0x06, 0xcb, 0xcc, 0x00, 0x58, 0x67, 0xce, 0x45, 0xc8, -0x1b, 0x52, 0xa7, 0x7c, 0x3e, 0x6d, 0x47, 0x76, 0x12, 0xdc, 0x5e, 0x0d, 0xf5, 0xc4, 0xa5, 0x5a, -0x78, 0x2d, 0xc1, 0x70, 0xab, 0xc0, 0x79, 0x56, 0xc5, 0xfa, 0xf7, 0xf4, 0xa7, 0xc2, 0xed, 0xde, -0x80, 0xb0, 0xd1, 0x23, 0x6f, 0x44, 0xda, 0x6c, 0xf9, 0xcc, 0xc5, 0xd8, 0x9e, 0xa7, 0xc2, 0x2f, -0xa7, 0x5d, 0x59, 0x3d, 0xb3, 0x36, 0x8b, 0xfc, 0xa2, 0x68, 0xd8, 0xff, 0x99, 0x55, 0x85, 0xa1, -0x79, 0xc2, 0xbe, 0x88, 0x2d, 0xf0, 0xb3, 0xd4, 0xf8, 0xf3, 0x69, 0xd3, 0xdf, 0xec, 0x57, 0x7d, -0x8f, 0xe6, 0x7b, 0x6b, 0xd8, 0xbf, 0x72, 0x6a, 0xa7, 0x84, 0xbc, 0x97, 0xdc, 0x97, 0xc3, 0x77, -0x7c, 0x5a, 0xa0, 0x9e, 0xcb, 0x88, 0x93, 0x01, 0xb7, 0xe3, 0x01, 0x30, 0x2c, 0xc2, 0x99, 0x21, -0xcd, 0x04, 0xeb, 0xa2, 0x04, 0xca, 0x9b, 0xd6, 0x68, 0x3e, 0xce, 0x97, 0x5a, 0x94, 0x12, 0x9c, -0x29, 0x1c, 0x2f, 0x0f, 0x6c, 0xa3, 0x19, 0x24, 0xce, 0x09, 0x54, 0xcd, 0xb9, 0x42, 0x75, 0x5e, -0x98, 0xdc, 0x2b, 0xc0, 0x11, 0x6e, 0x05, 0x5b, 0xac, 0xbe, 0x7d, 0x66, 0xad, 0x9e, 0xfb, 0xbf, -0x32, 0xfe, 0xe1, 0x2b, 0xcf, 0x43, 0x85, 0xb5, 0x0a, 0x3c, 0x23, 0x8f, 0x92, 0xbe, 0x96, 0xa0, -0x33, 0xf6, 0x15, 0xe0, 0xc2, 0x37, 0xcf, 0x41, 0x85, 0x14, 0xa8, 0x79, 0x1f, 0x3c, 0xf1, 0xb4, -0xf6, 0x48, 0x3f, 0xef, 0x3c, 0x4d, 0x13, 0x90, 0x8a, 0x86, 0x38, 0xba, 0x68, 0x3a, 0xc6, 0xb0, -0x01, 0x65, 0xc3, 0x1c, 0xa2, 0xa3, 0x34, 0xf7, 0xec, 0x75, 0x19, 0xb3, 0xaf, 0x9c, 0x74, 0x99, -0xb4, 0x79, 0xfc, 0xe9, 0xb9, 0xf4, 0x3c, 0x16, 0xba, 0x07, 0xc2, 0x66, 0xa9, 0x8a, 0x34, 0x36, -0x4d, 0xe4, 0x05, 0x9f, 0xec, 0x95, 0x54, 0x1f, 0x89, 0x96, 0x54, 0x6b, 0x41, 0x57, 0x81, 0xd8, -0xa3, 0xef, 0x18, 0x67, 0x1b, 0x9a, 0x6c, 0xe1, 0xa5, 0x44, 0xc0, 0x94, 0xa9, 0xa8, 0x25, 0xfc, -0x82, 0x92, 0xd4, 0xe8, 0xd3, 0xa7, 0xab, 0x79, 0x27, 0x01, 0xb9, 0x10, 0xae, 0x35, 0x9b, 0x76, -0xc1, 0xdc, 0xd0, 0xb0, 0x81, 0x4b, 0x45, 0x79, 0x49, 0x97, 0xa3, 0x96, 0xbf, 0x9c, 0xe6, 0x71, -0xcc, 0x25, 0xd6, 0xc8, 0x25, 0xa3, 0x48, 0xd1, 0xfd, 0xec, 0x0f, 0x7c, 0xf6, 0x3d, 0xfb, 0x42, -0xdd, 0xf1, 0x5b, 0x6b, 0x61, 0x7f, 0x22, 0x5c, 0x0c, 0x53, 0x5b, 0x00, 0xce, 0x20, 0xce, 0xd5, -0x53, 0xe4, 0x30, 0x51, 0xeb, 0x77, 0x9e, 0x52, 0xa3, 0xf0, 0xa9, 0x38, 0xf2, 0xa9, 0x81, 0x29, -0x6a, 0x91, 0x77, 0x16, 0x45, 0x06, 0x52, 0xc6, 0xb0, 0x85, 0x2a, 0x3d, 0x15, 0xad, 0xa3, 0x7a, -0xa2, 0x79, 0x22, 0xef, 0xd5, 0x63, 0xd4, 0xba, 0x1f, 0xbe, 0x81, 0x25, 0x2e, 0xf5, 0x1a, 0xb4, -0x12, 0xef, 0xcb, 0x49, 0xad, 0x06, 0x6a, 0x2f, 0xae, 0x0e, 0x50, 0xbe, 0x98, 0x45, 0xae, 0x52, -0x5b, 0x6b, 0x14, 0x18, 0x88, 0x5f, 0xcc, 0x12, 0x3b, 0x91, 0x9f, 0xe9, 0xd5, 0x56, 0xd8, 0xd4, -0x2f, 0x1e, 0x74, 0x80, 0xd8, 0x4f, 0x1d, 0xdb, 0xcb, 0x5c, 0x8a, 0x3e, 0x0d, 0xf7, 0xab, 0xf1, -0x0c, 0xb8, 0x53, 0x8c, 0x1c, 0xb6, 0x98, 0xe7, 0x76, 0x91, 0xf5, 0x06, 0x28, 0xb5, 0xed, 0x65, -0xb5, 0x7a, 0x79, 0x98, 0xec, 0x32, 0x69, 0x75, 0x67, 0x2f, 0x48, 0x46, 0xe9, 0x6e, 0xa2, 0xcb, -0xbc, 0x16, 0x68, 0xd1, 0xe6, 0xd4, 0xd5, 0x00, 0x71, 0x0c, 0x53, 0x09, 0x4f, 0xf1, 0x8d, 0xd0, -0xdb, 0xcb, 0x78, 0x97, 0x49, 0x0f, 0xd5, 0x92, 0x22, 0x54, 0x12, 0x45, 0x61, 0x93, 0x5c, 0xe0, -0x8a, 0xd9, 0x27, 0xae, 0x2f, 0x3c, 0xeb, 0xcc, 0x1a, 0x84, 0xfe, 0xb8, 0x8b, 0xbc, 0x9b, 0xc6, -0xc9, 0xe6, 0x40, 0x1f, 0x07, 0x8d, 0x52, 0xfd, 0xf1, 0xe7, 0x19, 0xd4, 0x51, 0xad, 0x1b, 0xcb, -0x33, 0x61, 0xfd, 0xae, 0xc9, 0xf5, 0x93, 0x56, 0x07, 0xd1, 0x9e, 0xc0, 0xcf, 0xf0, 0xbb, 0xd5, -0x0d, 0xb4, 0xd3, 0x6a, 0x22, 0x9d, 0x9f, 0x6f, 0xa9, 0x3a, 0x1e, 0xaa, 0xee, 0x9e, 0x44, 0x38, -0xe7, 0x14, 0xd1, 0x24, 0x92, 0xec, 0xa7, 0xd4, 0xac, 0x61, 0x95, 0x66, 0xf1, 0x06, 0xfd, 0x0e, -0x8a, 0x43, 0xd0, 0x29, 0xb0, 0x90, 0x4e, 0xf6, 0xc5, 0x9c, 0xff, 0x63, 0xa9, 0x57, 0xcf, 0x56, -0xb0, 0x90, 0x1a, 0x69, 0xa1, 0x89, 0x12, 0xd1, 0xac, 0x14, 0x32, 0x7b, 0x16, 0x2b, 0x14, 0xcf, -0x4d, 0x55, 0x88, 0x43, 0x59, 0x19, 0x33, 0x88, 0x2c, 0x5d, 0x2a, 0x44, 0xaf, 0x3f, 0x19, 0xa4, -0x37, 0xb4, 0x4f, 0x49, 0x6f, 0x65, 0x1e, 0x5b, 0x8a, 0x42, 0x21, 0xab, 0xa3, 0xfb, 0xc9, 0x33, -0x08, 0x95, 0x9c, 0x78, 0x59, 0x2d, 0xc8, 0x06, 0xa6, 0xe1, 0x29, 0xc8, 0x7c, 0xb2, 0x49, 0x78, -0x2b, 0x33, 0xa8, 0xba, 0x82, 0xda, 0x18, 0xd2, 0x39, 0x61, 0xe6, 0x38, 0x22, 0xc5, 0x31, 0x7b, -0x97, 0xb3, 0x3e, 0xd6, 0x7c, 0x60, 0x8f, 0x49, 0x7f, 0x5d, 0x40, 0xf9, 0xbc, 0xe4, 0x53, 0xd2, -0x24, 0x9e, 0x11, 0x92, 0x26, 0xa6, 0x5b, 0x0c, 0xcf, 0xbf, 0x2e, 0xd0, 0x34, 0xb2, 0xf9, 0xac, -0x58, 0x72, 0x20, 0x16, 0xc4, 0xec, 0xf6, 0x40, 0x7a, 0xd6, 0xab, 0xa3, 0x30, 0xc7, 0x1e, 0xc8, -0xa0, 0x14, 0xe5, 0xc2, 0xa3, 0xe8, 0x5f, 0x7e, 0xa8, 0x9c, 0xa3, 0x7d, 0x2c, 0xf2, 0xf3, 0xe8, -0x5c, 0x05, 0x0d, 0x48, 0x13, 0x97, 0xc4, 0x8d, 0x38, 0x0e, 0x8d, 0xcb, 0xc8, 0xaf, 0x98, 0xbe, -0xfd, 0x7b, 0x52, 0x8d, 0x0b, 0xdb, 0xc3, 0xe7, 0x0b, 0x46, 0x5c, 0x51, 0x4c, 0x32, 0x51, 0x3d, -0xd2, 0xf0, 0x36, 0xd0, 0x09, 0x56, 0x27, 0x3c, 0x08, 0x6c, 0x1b, 0xf7, 0x91, 0xb7, 0x0e, 0xfc, -0xae, 0x3c, 0x9c, 0xb9, 0x9d, 0xd8, 0xa7, 0x46, 0xb2, 0x2e, 0xa9, 0x26, 0x7e, 0xb1, 0xf6, 0x2e, -0xf2, 0xff, 0xe6, 0xf1, 0x36, 0x43, 0x0e, 0x94, 0xa9, 0x76, 0x0d, 0xc8, 0x1f, 0xde, 0xe5, 0x07, -0x5c, 0xbf, 0xcd, 0x6e, 0x5c, 0x83, 0xa7, 0x46, 0x73, 0xc8, 0x16, 0x0e, 0xfb, 0xeb, 0x93, 0x8d, -0x98, 0xaf, 0x0a, 0x68, 0xad, 0xf4, 0xa5, 0xf2, 0x05, 0x2a, 0xbd, 0xe0, 0x3f, 0xbe, 0x0a, 0x7c, -0xc8, 0x1f, 0x67, 0x53, 0xcb, 0x9a, 0x0c, 0xf8, 0x34, 0x47, 0xaa, 0x21, 0x3f, 0xb9, 0xb1, 0x3c, -0xa4, 0xe4, 0x65, 0x9e, 0x56, 0xa2, 0x8c, 0xc9, 0x32, 0x8a, 0x2f, 0xaa, 0xb3, 0x44, 0xe6, 0x4a, -0xd9, 0xec, 0x85, 0x6f, 0x1c, 0xa1, 0x59, 0x81, 0x5f, 0x2c, 0x5e, 0x0a, 0x70, 0x21, 0xf0, 0xa4, -0x18, 0xd3, 0x25, 0xa3, 0x2e, 0xf2, 0xfd, 0x47, 0x9e, 0x0f, 0xab, 0xc1, 0xe7, 0x98, 0x36, 0xd2, -0xb5, 0x06, 0xa8, 0x06, 0x84, 0x52, 0x85, 0x3d, 0x20, 0x65, 0xa7, 0x69, 0xe9, 0xed, 0x01, 0x1c, -0x23, 0x84, 0x47, 0x23, 0xc7, 0x17, 0x6d, 0x6a, 0xce, 0x73, 0xc3, 0x54, 0x8a, 0xfe, 0x76, 0x7b, -0x08, 0xf9, 0x3e, 0xfd, 0x8e, 0x44, 0xac, 0xf1, 0xf6, 0x16, 0x28, 0x04, 0x73, 0x5e, 0x15, 0x64, -0xe1, 0x53, 0x18, 0x9f, 0x2a, 0xc0, 0x82, 0x4f, 0xe4, 0x61, 0xb9, 0x0a, 0x9f, 0x70, 0xed, 0xc5, -0x5f, 0x1f, 0xd8, 0xf0, 0xb7, 0x0c, 0x0a, 0x45, 0xc4, 0xf1, 0x18, 0xe9, 0x41, 0x78, 0x46, 0xd6, -0x8e, 0x3c, 0x8a, 0x35, 0xfa, 0x70, 0x4c, 0xb0, 0x21, 0xe9, 0x08, 0x75, 0x5c, 0xab, 0x64, 0xaf, -0x21, 0x0d, 0x22, 0x3e, 0xad, 0xcc, 0x9b, 0xfb, 0x21, 0x34, 0xda, 0x17, 0x60, 0x0f, 0xeb, 0x71, -0x2c, 0x9f, 0xc2, 0x1e, 0x96, 0x60, 0x9b, 0x2a, 0x86, 0x1f, 0x45, 0x4e, 0xbd, 0xe2, 0x49, 0xec, -0x5b, 0xe4, 0xa1, 0xf0, 0xba, 0x98, 0x24, 0xd5, 0x4a, 0x8f, 0xca, 0x05, 0xed, 0x5f, 0x44, 0xfa, -0x10, 0x25, 0xaf, 0x77, 0xed, 0xb1, 0x30, 0xc5, 0xd6, 0xd8, 0x22, 0x37, 0x3a, 0x82, 0x32, 0x8c, -0x2f, 0xf7, 0x4c, 0x73, 0x04, 0x9d, 0x7e, 0xbc, 0xbb, 0x4f, 0x6a, 0x45, 0xbe, 0x2b, 0x8d, 0x07, -0x55, 0xac, 0x33, 0x93, 0x9f, 0xe2, 0xb6, 0x5a, 0x91, 0x3b, 0xdf, 0xf3, 0x31, 0xdb, 0xbc, 0xca, -0xb9, 0xde, 0x59, 0x84, 0xd5, 0x1f, 0x1f, 0x60, 0x5a, 0x9d, 0x3b, 0x13, 0xf9, 0x5d, 0x7b, 0xcd, -0x6d, 0x75, 0xec, 0x71, 0xae, 0x80, 0x2d, 0x82, 0x97, 0xf0, 0xdf, 0x34, 0xfe, 0xbd, 0x09, 0x69, -0x1a, 0xef, 0x32, 0x4a, 0x35, 0xd2, 0x43, 0xf4, 0x25, 0xd1, 0xb4, 0x8f, 0x9f, 0x9e, 0xb0, 0x96, -0x90, 0x4e, 0x97, 0xad, 0xfe, 0xfb, 0x2c, 0x0f, 0x0e, 0x20, 0x45, 0x6b, 0x27, 0xcf, 0xcc, 0x14, -0x31, 0x89, 0x38, 0xc4, 0xc0, 0x46, 0xb2, 0xae, 0x0f, 0xe3, 0x3a, 0x18, 0x33, 0xc4, 0x1b, 0xd4, -0x73, 0x0e, 0x93, 0x0b, 0x79, 0x9a, 0x8c, 0xbd, 0x60, 0x17, 0x49, 0x16, 0xf3, 0xaf, 0x98, 0x74, -0x2c, 0x91, 0x31, 0xa7, 0x18, 0x37, 0x91, 0x1e, 0xa9, 0xd0, 0x92, 0x02, 0xb6, 0x7e, 0x3d, 0xd3, -0x47, 0x12, 0x47, 0x5c, 0x3f, 0xf0, 0x3c, 0xae, 0xc6, 0x1c, 0xed, 0x7a, 0x46, 0x88, 0xfc, 0x36, -0x08, 0x1f, 0xcc, 0x1a, 0xe5, 0xcb, 0x58, 0xfb, 0x27, 0x50, 0x94, 0x98, 0x2f, 0xb5, 0xa6, 0x95, -0x8a, 0x58, 0x70, 0x4b, 0x46, 0x25, 0xff, 0xad, 0xb8, 0x56, 0x43, 0x05, 0xaf, 0xaf, 0x90, 0x49, -0x1d, 0x02, 0x7a, 0x59, 0x95, 0x0d, 0x3e, 0xfa, 0x09, 0xc1, 0x49, 0xa3, 0xe6, 0x1f, 0xfd, 0x64, -0x32, 0x37, 0xcc, 0x11, 0x8f, 0x90, 0xe3, 0x72, 0x23, 0xee, 0x71, 0xdd, 0x8c, 0xe7, 0x93, 0xd6, -0xc8, 0x84, 0xb6, 0x5e, 0x7d, 0xb4, 0xd8, 0xc1, 0x1c, 0x3c, 0xd2, 0x90, 0x6c, 0x31, 0x17, 0x10, -0x0f, 0x1b, 0x10, 0x0f, 0x0d, 0xed, 0xb7, 0xd5, 0xea, 0xc9, 0xdb, 0x6f, 0xac, 0xdc, 0x35, 0x57, -0x2e, 0x09, 0x1b, 0x5a, 0xdd, 0x62, 0x7f, 0x01, 0xe1, 0xce, 0xd2, 0x06, 0x42, 0xa9, 0x8f, 0xfd, -0x93, 0xa7, 0x9f, 0x9f, 0xc1, 0x67, 0x43, 0xfb, 0xac, 0x5a, 0xbd, 0xad, 0x30, 0x7a, 0x88, 0x7b, -0x26, 0xe3, 0xac, 0x0d, 0x78, 0xb3, 0x43, 0x2b, 0x40, 0x95, 0x2b, 0x62, 0xcc, 0x61, 0x33, 0x1f, -0xa9, 0xae, 0x6e, 0xbf, 0x3f, 0xc2, 0xab, 0x5b, 0x8e, 0x5c, 0x70, 0xf8, 0x79, 0x90, 0x0e, 0x6f, -0x63, 0x8b, 0xb3, 0x09, 0xbc, 0x45, 0x7a, 0xed, 0xfa, 0xfd, 0xce, 0xcc, 0x71, 0x5e, 0x82, 0x5c, -0x1e, 0xc1, 0x50, 0x3e, 0xa5, 0x72, 0x0e, 0xa5, 0x2a, 0xe7, 0x40, 0xfc, 0x16, 0xf1, 0x05, 0x19, -0x54, 0x7c, 0x72, 0xbf, 0x7f, 0xbf, 0xc4, 0xc5, 0xfd, 0xee, 0x80, 0x14, 0x1f, 0x61, 0xd5, 0xf2, -0x0a, 0xce, 0x2f, 0x66, 0xfa, 0xe7, 0xc1, 0x98, 0xa1, 0xa3, 0xac, 0xd6, 0xc0, 0x1c, 0x85, 0x0a, -0xfd, 0xdf, 0x3b, 0xe8, 0x3b, 0xb2, 0x23, 0x96, 0xcd, 0xff, 0x3c, 0x14, 0x35, 0x74, 0x94, 0xd6, -0xd2, 0x09, 0xa1, 0x4b, 0x78, 0x09, 0x77, 0x1a, 0xd4, 0xd5, 0x61, 0x28, 0xdc, 0x8b, 0xbf, 0xcf, -0x6a, 0x5c, 0xc7, 0xef, 0x73, 0xbd, 0xa0, 0xf5, 0x69, 0x09, 0x7b, 0x42, 0x48, 0x73, 0x0c, 0x97, -0x8f, 0x50, 0x89, 0xd1, 0xd5, 0x88, 0x51, 0xae, 0x01, 0xac, 0x29, 0x56, 0x96, 0xb6, 0x92, 0x40, -0x5e, 0x4a, 0xcc, 0x98, 0x69, 0x71, 0xcb, 0x30, 0xbe, 0x23, 0x1a, 0x7f, 0x79, 0xfd, 0xed, 0x58, -0x3b, 0xae, 0x74, 0x5a, 0x79, 0x0e, 0xd6, 0x88, 0x79, 0x34, 0x66, 0xcf, 0x84, 0x9b, 0x76, 0xd7, -0xb4, 0x45, 0x5b, 0x6f, 0x68, 0x4e, 0x4c, 0x86, 0xac, 0x2b, 0x8b, 0x5b, 0x68, 0xc0, 0x52, 0xef, -0x45, 0xc8, 0xf6, 0x6a, 0x5c, 0x41, 0x9d, 0x1a, 0x39, 0xaf, 0x63, 0x66, 0xad, 0x41, 0x3e, 0xc1, -0xeb, 0x23, 0xf9, 0x56, 0xf7, 0x82, 0x35, 0x85, 0xb3, 0x21, 0x9c, 0x99, 0x79, 0x19, 0x3d, 0xca, -0xe0, 0x81, 0x2e, 0x03, 0xcf, 0x64, 0x27, 0xe6, 0x70, 0xb3, 0xe5, 0x07, 0xc9, 0xb8, 0xa6, 0x89, -0x79, 0x3e, 0x3c, 0x91, 0xc2, 0x3b, 0x75, 0x6c, 0x3f, 0x3c, 0x96, 0x39, 0xb6, 0x06, 0xa1, 0xcd, -0xc5, 0xd1, 0x22, 0x53, 0x75, 0xca, 0x8c, 0xcf, 0x82, 0x4f, 0x9f, 0x34, 0xae, 0x31, 0xbb, 0x36, -0x87, 0x9c, 0x44, 0x63, 0x1d, 0x35, 0x1f, 0x4c, 0xe4, 0x58, 0xb1, 0x2e, 0xad, 0xe6, 0xa5, 0xdc, -0x3a, 0xeb, 0xb5, 0x3c, 0x6c, 0x46, 0x5b, 0xea, 0x32, 0xdb, 0x42, 0x16, 0x28, 0x6c, 0x7d, 0x40, -0x1a, 0x1e, 0xb6, 0x05, 0x08, 0xed, 0xe2, 0x2a, 0x05, 0xff, 0x51, 0x5c, 0x16, 0x6c, 0x8b, 0x8b, -0xff, 0xc4, 0x2a, 0xbf, 0xdd, 0x29, 0xa2, 0xc6, 0x9b, 0x50, 0x6e, 0x78, 0x11, 0x71, 0x48, 0xad, -0xf3, 0xd2, 0x25, 0xad, 0xb7, 0xdc, 0x8f, 0x22, 0x9c, 0x15, 0x1e, 0xb1, 0xdb, 0x92, 0xc9, 0x6b, -0xc6, 0xca, 0xac, 0x55, 0xca, 0x49, 0x39, 0x8f, 0x71, 0x5a, 0xc5, 0xb7, 0x4b, 0x3b, 0x33, 0x67, -0xfb, 0xa5, 0x09, 0xf8, 0xef, 0x60, 0xab, 0x05, 0xee, 0x47, 0xd6, 0x24, 0x6e, 0xf4, 0x90, 0x3c, -0xc8, 0x27, 0xcf, 0x26, 0xfa, 0x92, 0x78, 0x9f, 0x4b, 0x6b, 0x58, 0x87, 0xdb, 0x90, 0xd2, 0xf6, -0xb2, 0x20, 0x7d, 0xb7, 0xe2, 0x8a, 0x43, 0xfa, 0xcf, 0x66, 0x95, 0x23, 0x33, 0xd1, 0x95, 0xe7, -0xa6, 0x99, 0x64, 0x74, 0x7c, 0x4b, 0xbe, 0x30, 0x8d, 0x14, 0xcf, 0xba, 0x1d, 0x98, 0x3f, 0x70, -0xa9, 0xed, 0xf0, 0x64, 0x52, 0x1d, 0x8d, 0x73, 0xaf, 0x60, 0x8d, 0x12, 0xd7, 0x2c, 0x11, 0x2f, -0x81, 0xb8, 0x77, 0x9e, 0x5b, 0x86, 0xc9, 0xdc, 0x14, 0xf1, 0x97, 0xe4, 0xe9, 0x80, 0xe7, 0x95, -0x0a, 0xa1, 0x8b, 0x07, 0x53, 0x10, 0xea, 0x89, 0xe6, 0xb9, 0x56, 0xa2, 0x04, 0xef, 0x61, 0x09, -0x3e, 0xb7, 0xbc, 0x93, 0xe6, 0x1a, 0xca, 0xdf, 0x59, 0xa4, 0xed, 0x87, 0x57, 0x92, 0xfa, 0x00, -0xb6, 0x12, 0x24, 0x63, 0x00, 0x2f, 0x23, 0xcc, 0x8e, 0x72, 0xcc, 0x45, 0x51, 0x4e, 0xaf, 0xe0, -0xf8, 0xa1, 0x0f, 0xcb, 0xf1, 0x4b, 0x2d, 0xc2, 0xbe, 0x24, 0x5a, 0x20, 0xe6, 0x11, 0x4a, 0xf9, -0x7e, 0xa4, 0x45, 0x16, 0xcc, 0x57, 0xcb, 0x5c, 0xd5, 0x02, 0x99, 0x6c, 0xd7, 0x07, 0xd5, 0xb7, -0x2b, 0x80, 0x3c, 0x39, 0xd3, 0x5b, 0x17, 0xaf, 0x4c, 0x3e, 0x6f, 0xee, 0x9f, 0xa2, 0x5c, 0x17, -0x6d, 0x5c, 0x57, 0xa1, 0x6c, 0xfa, 0xf3, 0x94, 0xeb, 0xc2, 0x68, 0x26, 0xd7, 0xbd, 0xa4, 0x50, -0xcc, 0x2f, 0xe2, 0x28, 0xb5, 0x19, 0x78, 0xe1, 0x3c, 0x7b, 0x72, 0x81, 0x09, 0xf2, 0x82, 0x8d, -0x6d, 0xaa, 0xcb, 0x71, 0x0d, 0xb3, 0x6b, 0x30, 0x56, 0x3d, 0xa3, 0xb2, 0x7f, 0x2d, 0x97, 0x0a, -0x63, 0x3e, 0xf1, 0xd7, 0xbc, 0x61, 0x21, 0x16, 0xaa, 0x11, 0xab, 0xf2, 0xbc, 0xc5, 0xd4, 0xce, -0x0b, 0x71, 0x27, 0xef, 0xe8, 0x21, 0x94, 0x1e, 0x59, 0x5d, 0x5c, 0x9b, 0x25, 0xf9, 0xcd, 0x2e, -0xe6, 0x88, 0x00, 0x8e, 0x90, 0xef, 0x01, 0xb5, 0x4f, 0xa2, 0xdd, 0x7b, 0xab, 0x3f, 0x32, 0x29, -0xc4, 0x75, 0xe3, 0x75, 0x5c, 0xd6, 0x2f, 0xea, 0xfb, 0xa7, 0xa1, 0x58, 0xae, 0xc5, 0x42, 0x91, -0x22, 0x62, 0x46, 0xfc, 0xad, 0x8c, 0x5e, 0x70, 0x9a, 0x36, 0x3f, 0x32, 0x21, 0x45, 0x1f, 0xe9, -0xd9, 0xdd, 0xb3, 0x6a, 0x29, 0xfb, 0xeb, 0xca, 0xca, 0xf4, 0xd7, 0x55, 0x01, 0x76, 0xb3, 0x14, -0x40, 0x92, 0x59, 0xe5, 0x34, 0x88, 0xdd, 0xce, 0xe4, 0xe3, 0x14, 0xb1, 0x5c, 0x2e, 0x17, 0x7e, -0x1b, 0x62, 0x65, 0x72, 0x3d, 0xc1, 0x80, 0x7d, 0xfe, 0xe6, 0xd9, 0xcd, 0x23, 0x8f, 0x64, 0xe6, -0x8b, 0xf9, 0x56, 0xab, 0x51, 0xcc, 0xa3, 0x7b, 0x19, 0x3b, 0x4c, 0x4e, 0xf6, 0x48, 0xd2, 0x3e, -0x4e, 0xfd, 0x22, 0xde, 0xfb, 0x83, 0x67, 0x55, 0xef, 0xbc, 0x2a, 0x3c, 0x57, 0x77, 0xb4, 0x2b, -0xf2, 0x69, 0x92, 0xbc, 0x35, 0x2d, 0x4d, 0xe4, 0x7a, 0xf2, 0xec, 0x0d, 0x31, 0x21, 0x3f, 0x22, -0x76, 0x47, 0x0b, 0x6e, 0xab, 0x86, 0x42, 0xb9, 0xc4, 0x39, 0x13, 0x0a, 0x63, 0x26, 0x5a, 0xab, -0x76, 0xf4, 0x44, 0x8d, 0x81, 0xe7, 0x30, 0xad, 0x40, 0xc3, 0xee, 0x0f, 0xea, 0x33, 0xb1, 0x9b, -0x24, 0xf1, 0x3b, 0xfc, 0xe0, 0x40, 0x6e, 0xe4, 0xa4, 0xd8, 0x69, 0x92, 0x52, 0x51, 0x1e, 0x78, -0x77, 0x69, 0x12, 0x97, 0xa3, 0x61, 0xf4, 0xf9, 0x51, 0xc6, 0x8e, 0xa6, 0x99, 0x0b, 0xc0, 0x64, -0x7a, 0x1e, 0xa6, 0x30, 0x27, 0x80, 0x5c, 0x03, 0x8d, 0xd5, 0x04, 0x3e, 0xc0, 0xa3, 0xd2, 0x78, -0x33, 0xfb, 0x11, 0x0f, 0xe1, 0x97, 0xdb, 0x08, 0x77, 0x4c, 0x98, 0x17, 0x6e, 0x46, 0xba, 0xa6, -0xce, 0x9d, 0x65, 0x8e, 0x86, 0x0d, 0xb2, 0x55, 0xcb, 0xcb, 0x7b, 0x7b, 0x7b, 0xce, 0x27, 0x26, -0x62, 0xd9, 0xf9, 0x4d, 0x13, 0xd6, 0x47, 0x43, 0xfa, 0xd4, 0xd9, 0xeb, 0xd5, 0xd6, 0xb7, 0x26, -0x94, 0x3a, 0xd3, 0xd1, 0x7e, 0x14, 0x03, 0x4b, 0xe9, 0x13, 0x78, 0xf6, 0x86, 0x0d, 0xc4, 0xc3, -0xb0, 0xb6, 0xeb, 0x0d, 0xf6, 0x77, 0xb5, 0x54, 0xa4, 0x21, 0x16, 0x7c, 0x63, 0x65, 0x8f, 0x28, -0x9f, 0x63, 0xe7, 0x97, 0xf5, 0x3f, 0x10, 0x6e, 0x4e, 0x61, 0xf3, 0x21, 0xb5, 0xe7, 0x8c, 0xbc, -0x08, 0x8e, 0x81, 0xee, 0x26, 0x3d, 0x47, 0xff, 0x2c, 0xdc, 0xd5, 0x7d, 0xbf, 0xc3, 0x91, 0x25, -0x4b, 0x8b, 0xba, 0xe3, 0x57, 0xf7, 0x27, 0x1a, 0x48, 0x9f, 0x32, 0x90, 0xe1, 0x01, 0x4e, 0xc0, -0xd7, 0x74, 0xfa, 0x11, 0xcc, 0x77, 0x42, 0xf6, 0xa4, 0xb8, 0x49, 0x9e, 0xd1, 0xca, 0x62, 0x9f, -0xde, 0xe8, 0x57, 0x3e, 0xf9, 0x06, 0x52, 0xab, 0xb3, 0x8f, 0xfc, 0x07, 0xce, 0x48, 0x9e, 0xe1, -0x14, 0x11, 0x83, 0xe4, 0x16, 0x37, 0xef, 0x3f, 0xfd, 0x06, 0xf3, 0x35, 0x37, 0x6c, 0x40, 0x4a, -0x72, 0x96, 0x7b, 0x91, 0xde, 0x5b, 0x71, 0x20, 0x87, 0x3c, 0x13, 0x39, 0xee, 0x9c, 0xe1, 0x2e, -0x3b, 0x9c, 0x7d, 0xf8, 0xc9, 0xad, 0x6c, 0x6d, 0x48, 0x14, 0x31, 0x6d, 0x8b, 0x55, 0x2e, 0xfa, -0x30, 0x87, 0xbc, 0x27, 0x39, 0x3c, 0x48, 0xf5, 0x9d, 0xcd, 0x1c, 0x07, 0x95, 0x34, 0xc0, 0xc8, -0xb2, 0xa7, 0xb0, 0x7f, 0x1b, 0xae, 0xa9, 0xc8, 0x77, 0x0f, 0xf4, 0x36, 0xe9, 0x5d, 0xe0, 0x36, -0xcc, 0x1f, 0x1d, 0x1f, 0x91, 0xcb, 0x78, 0x47, 0xcc, 0xb4, 0xb9, 0x3b, 0x9a, 0xe3, 0x5c, 0x24, -0xee, 0xdb, 0x61, 0x0f, 0x45, 0x47, 0xc8, 0x56, 0x7b, 0x90, 0xe5, 0x35, 0x86, 0xbe, 0xe7, 0xca, -0xa9, 0xdf, 0xf4, 0x54, 0xcf, 0x89, 0x9e, 0x11, 0x11, 0xdb, 0x75, 0x6d, 0x74, 0x68, 0xc6, 0x02, -0xb0, 0xcc, 0x08, 0x80, 0xf5, 0x9d, 0x6d, 0x62, 0x57, 0xab, 0xb0, 0x53, 0xc4, 0xf0, 0x62, 0x39, -0xaa, 0xc2, 0x45, 0x1e, 0x9c, 0x50, 0xa2, 0xc0, 0xfa, 0x82, 0xb4, 0xb3, 0xe3, 0x29, 0x86, 0x42, -0x77, 0x31, 0x48, 0x25, 0x1e, 0xe0, 0x3d, 0x39, 0x3b, 0xca, 0x05, 0x0e, 0xc3, 0x13, 0x43, 0x0b, -0x47, 0xc7, 0x9b, 0x71, 0xe6, 0xf7, 0xb1, 0xcd, 0x84, 0xa9, 0xbf, 0x2b, 0x1a, 0x64, 0x7b, 0x0f, -0x37, 0x52, 0x1b, 0x0f, 0x52, 0x74, 0xe4, 0xa7, 0xc7, 0x9b, 0x55, 0xbb, 0x84, 0x9c, 0xc0, 0x0a, -0xc8, 0x7d, 0x62, 0xc8, 0xe1, 0x57, 0x79, 0xf2, 0xcd, 0x12, 0xed, 0x7e, 0xea, 0x9f, 0x18, 0xa2, -0x2f, 0x99, 0x8e, 0xce, 0x11, 0x7e, 0xc7, 0xdb, 0x60, 0x67, 0xa2, 0x49, 0x2f, 0xe9, 0x53, 0x23, -0xd0, 0x66, 0xa3, 0x18, 0x14, 0x7e, 0xa4, 0x95, 0xd5, 0xe0, 0x47, 0x0e, 0xfd, 0x24, 0xf9, 0xc5, -0xde, 0x94, 0x38, 0x9a, 0x40, 0x0c, 0xf0, 0x1f, 0xe1, 0x9d, 0xe4, 0x27, 0x86, 0x64, 0x7d, 0x1b, -0x4a, 0x71, 0x31, 0x2e, 0x29, 0x06, 0x4a, 0xfc, 0x9f, 0x3e, 0x00, 0x5b, 0x34, 0x17, 0xdb, 0x55, -0x0c, 0xb9, 0x03, 0x5d, 0x4b, 0x0d, 0x5f, 0xaf, 0x86, 0xdc, 0x2d, 0xdd, 0x27, 0x7b, 0xf7, 0x3e, -0xd4, 0x64, 0xb8, 0x7d, 0x1e, 0x14, 0xce, 0x9c, 0x07, 0x66, 0xde, 0xd9, 0xab, 0x46, 0x08, 0x63, -0xcf, 0x86, 0x5f, 0x00, 0x4b, 0xff, 0xda, 0x62, 0xda, 0x2d, 0x23, 0xbe, 0xdf, 0x84, 0xf5, 0xfc, -0x98, 0xe3, 0xd6, 0xaa, 0xfe, 0xc8, 0x35, 0xcd, 0x55, 0x97, 0xaa, 0xcb, 0x47, 0x6d, 0x20, 0x59, -0x92, 0xbd, 0x72, 0x5b, 0x38, 0x12, 0x33, 0xc2, 0x46, 0x36, 0x21, 0xe6, 0x15, 0xa6, 0xbd, 0x41, -0xb7, 0x58, 0x89, 0x9a, 0x88, 0xbd, 0x49, 0xb2, 0x4a, 0x6d, 0x27, 0xff, 0xf1, 0xfd, 0x23, 0x09, -0x3a, 0x55, 0x72, 0x23, 0x8e, 0x7a, 0x68, 0xdf, 0x13, 0x4a, 0xdd, 0x90, 0x4b, 0xde, 0x9b, 0x25, -0x3f, 0x8e, 0x20, 0x4a, 0x84, 0x9b, 0xbb, 0x8e, 0xf6, 0xee, 0xee, 0x6e, 0x59, 0x52, 0xa2, 0xff, -0x71, 0x8f, 0x73, 0xca, 0xc6, 0x87, 0x16, 0x8c, 0x8e, 0x39, 0xe4, 0x42, 0xd5, 0x63, 0xf2, 0x0f, -0x54, 0x78, 0x5a, 0x25, 0xff, 0x83, 0x30, 0x07, 0x73, 0xdb, 0xb3, 0x36, 0x3f, 0x14, 0xee, 0x59, -0x79, 0x0a, 0xdb, 0x60, 0x17, 0x34, 0x39, 0x79, 0xd4, 0x29, 0x62, 0xbf, 0x1a, 0xc8, 0x2b, 0x18, -0x62, 0x25, 0xc7, 0x3b, 0xa4, 0xba, 0x61, 0xef, 0x9d, 0x08, 0x07, 0x8a, 0xd9, 0xb9, 0xb3, 0x37, -0x4a, 0xe7, 0xea, 0xcf, 0x88, 0x78, 0x8c, 0xf5, 0x3f, 0x90, 0x82, 0xa9, 0x33, 0xa0, 0xab, 0x1e, -0x3f, 0xc2, 0xad, 0x04, 0xdb, 0xc1, 0x14, 0x40, 0xce, 0xf9, 0x5f, 0x87, 0xb0, 0x05, 0x25, 0x1d, -0x96, 0x63, 0x8f, 0xec, 0xec, 0x69, 0x25, 0xed, 0x40, 0xdb, 0x9d, 0x24, 0xcb, 0xe7, 0xba, 0xf4, -0x5b, 0x7a, 0x66, 0xd4, 0x40, 0xa1, 0xea, 0xb9, 0xda, 0xac, 0x9d, 0x43, 0x33, 0xd7, 0xa0, 0xd6, -0x3d, 0x4e, 0xfa, 0x91, 0x12, 0x43, 0xa9, 0xc8, 0x6b, 0x08, 0xad, 0x84, 0x1c, 0x91, 0x3e, 0xb6, -0x49, 0xad, 0x59, 0xec, 0x52, 0x17, 0xa6, 0xa8, 0x4f, 0x2e, 0x52, 0x1f, 0x9c, 0x71, 0x9f, 0x71, -0xb4, 0xd5, 0x07, 0x95, 0x97, 0xbb, 0x63, 0x06, 0xc4, 0xd3, 0xc2, 0xd5, 0x14, 0x09, 0x4d, 0x1a, -0x7e, 0x9e, 0x46, 0xe9, 0x76, 0x1c, 0xa5, 0x99, 0xb5, 0x48, 0x37, 0x70, 0x95, 0xc6, 0xd5, 0xbc, -0x60, 0xe1, 0x25, 0x28, 0xa2, 0x7d, 0xdc, 0xb9, 0xeb, 0x65, 0x3b, 0xc1, 0x7f, 0x60, 0x3b, 0x98, -0x9b, 0x0c, 0x33, 0xfd, 0x60, 0x56, 0x3d, 0xe4, 0x99, 0xb9, 0xce, 0x1f, 0xb8, 0x16, 0x13, 0xae, -0xfc, 0xdb, 0xc1, 0xe8, 0x71, 0x8d, 0xc6, 0x7f, 0xb6, 0x47, 0xec, 0xa9, 0x8a, 0xc8, 0x19, 0xa4, -0xf5, 0xcc, 0xfb, 0x49, 0x0f, 0x40, 0x69, 0xcd, 0xfb, 0x50, 0x2e, 0x9b, 0xff, 0xe9, 0x1c, 0x98, -0xa2, 0x86, 0x5b, 0x23, 0x38, 0x03, 0x1b, 0x5e, 0x1a, 0x8a, 0x5e, 0x16, 0x32, 0xd0, 0x9c, 0x4a, -0xcd, 0x77, 0x18, 0x45, 0x32, 0xe1, 0x38, 0x25, 0x42, 0xb6, 0x69, 0xd9, 0x91, 0xf8, 0x26, 0xed, -0xe9, 0xcd, 0xa2, 0x3d, 0x3d, 0x17, 0xc9, 0x37, 0x95, 0xce, 0x5a, 0xb9, 0x34, 0x9c, 0xd5, 0x5a, -0xb2, 0x06, 0x0a, 0xb2, 0xa4, 0x20, 0xca, 0xe6, 0x69, 0xe9, 0x26, 0x3f, 0xe3, 0xf9, 0x19, 0xc2, -0x20, 0x73, 0x16, 0xae, 0x77, 0x2c, 0xe3, 0xe4, 0x7f, 0x39, 0x7a, 0x00, 0x39, 0x11, 0x17, 0xce, -0xdd, 0x16, 0x84, 0x98, 0xca, 0x23, 0x38, 0xd5, 0xdd, 0xf6, 0xd1, 0x4f, 0x54, 0x1f, 0x6f, 0xa6, -0xb7, 0xb7, 0x83, 0xf4, 0x36, 0x59, 0x5c, 0xa8, 0x34, 0x7a, 0xf4, 0xfc, 0x04, 0x1a, 0xdd, 0x29, -0x76, 0x69, 0xaa, 0xdf, 0x07, 0x7f, 0xf8, 0x39, 0x08, 0x46, 0x0d, 0x14, 0x57, 0x08, 0x69, 0x89, -0x21, 0x7a, 0x55, 0x6a, 0x88, 0x0f, 0x0e, 0xf7, 0x31, 0xd5, 0x24, 0x5f, 0x6d, 0xec, 0xdf, 0x83, -0xf7, 0xe9, 0x8c, 0xce, 0x88, 0x63, 0xba, 0x6c, 0x70, 0x14, 0xab, 0x71, 0xa8, 0x77, 0x59, 0x8a, -0x61, 0xaa, 0x2a, 0x7f, 0x1a, 0xf0, 0xaf, 0xc3, 0x59, 0x8c, 0x2d, 0xe2, 0x7d, 0xf3, 0xe8, 0x70, -0xfd, 0x0f, 0x16, 0xc1, 0x17, 0x90, 0x26, 0x8a, 0xb1, 0xd3, 0xe2, 0x9d, 0xe1, 0x08, 0x4e, 0xf5, -0x66, 0xcd, 0x1f, 0x1d, 0x2d, 0xab, 0xdf, 0x84, 0xb9, 0xab, 0x98, 0x6b, 0x2d, 0x31, 0x17, 0x13, -0x5f, 0x10, 0x73, 0x92, 0x1f, 0x10, 0xfe, 0xaa, 0xff, 0x9a, 0xaf, 0x9e, 0x50, 0x3d, 0x81, 0x58, -0x65, 0x43, 0xc0, 0x0d, 0xfd, 0x28, 0x1b, 0x4b, 0x64, 0x85, 0x46, 0x96, 0x87, 0x92, 0x7f, 0xc6, -0x72, 0xa8, 0x80, 0x76, 0xfc, 0x2d, 0x84, 0xce, 0x92, 0x7f, 0x61, 0x9e, 0xaa, 0x03, 0x68, 0xad, -0xea, 0xc5, 0x95, 0xcd, 0x53, 0xbf, 0xe7, 0xd3, 0xd7, 0x1c, 0xdd, 0xc2, 0x22, 0x5d, 0xa6, 0x7d, -0xf9, 0x42, 0xf5, 0x54, 0xe0, 0x1c, 0xbe, 0x19, 0x69, 0xd8, 0x10, 0x40, 0x78, 0x54, 0x99, 0xd3, -0x2b, 0xac, 0x43, 0xf0, 0xfa, 0x85, 0x88, 0xa1, 0x27, 0x1b, 0x37, 0xb0, 0xf5, 0x80, 0x83, 0x65, -0xfa, 0x3a, 0xc4, 0xef, 0xda, 0xb8, 0x73, 0xd2, 0xee, 0x82, 0x9b, 0xec, 0xf5, 0x71, 0xb5, 0x35, -0xcc, 0x0c, 0xb0, 0x3d, 0xb3, 0x09, 0xc8, 0xef, 0x0b, 0x4a, 0xe9, 0xa4, 0x79, 0xc4, 0xe7, 0x3b, -0x7c, 0x16, 0x86, 0x14, 0xad, 0x4c, 0xdd, 0xab, 0x8d, 0xd0, 0x6e, 0x3e, 0xd2, 0x04, 0x13, 0xc7, -0x17, 0x37, 0x20, 0x17, 0x54, 0x10, 0xbf, 0xb3, 0x16, 0x7e, 0x74, 0x50, 0xdb, 0x4f, 0xfb, 0x74, -0x0e, 0xe2, 0x9e, 0x59, 0xac, 0xa4, 0x91, 0xed, 0x60, 0x8d, 0x90, 0xa5, 0x39, 0xc8, 0xa7, 0xfe, -0xf2, 0x43, 0xa5, 0x5f, 0xa5, 0x36, 0xcf, 0xe0, 0xe8, 0x3d, 0x8b, 0x78, 0xb6, 0x15, 0x69, 0xf2, -0x76, 0x8b, 0x55, 0xaa, 0x93, 0x8d, 0x16, 0x17, 0xe8, 0x22, 0x7d, 0xc4, 0x19, 0xc5, 0x4c, 0x61, -0x88, 0x5e, 0xee, 0x00, 0xd9, 0xf8, 0xc4, 0x41, 0x97, 0x29, 0xd2, 0xbb, 0x43, 0xec, 0xc1, 0x2d, -0xb2, 0x23, 0x27, 0x42, 0x7b, 0xf9, 0x25, 0x6e, 0x70, 0x75, 0x92, 0x1f, 0x87, 0x47, 0xec, 0xe6, -0x76, 0xef, 0x6a, 0xef, 0xd1, 0x0d, 0x6b, 0x5a, 0xd4, 0xf3, 0xe1, 0xa5, 0x2e, 0x20, 0x67, 0xb0, -0x31, 0x7f, 0xd8, 0x0d, 0x53, 0x57, 0x85, 0x78, 0x2f, 0xf7, 0x58, 0xe3, 0x86, 0xd0, 0x2a, 0xf0, -0xb6, 0x59, 0x8e, 0x24, 0xbc, 0x3a, 0x31, 0x93, 0x63, 0x83, 0x2a, 0xad, 0xf1, 0xa4, 0xb8, 0x3a, -0x67, 0xf8, 0x45, 0x18, 0x88, 0x39, 0x10, 0xbe, 0x03, 0x52, 0xaf, 0x4c, 0xf1, 0x14, 0x7a, 0xd9, -0xbe, 0xda, 0x15, 0x95, 0xe4, 0x82, 0x07, 0xc9, 0xaa, 0xc3, 0x5a, 0x92, 0x23, 0x5b, 0xc4, 0x5f, -0x67, 0x7e, 0xad, 0x11, 0x29, 0x62, 0x8e, 0x6c, 0xe8, 0x2c, 0xad, 0x35, 0x3a, 0xfc, 0x08, 0x89, -0xde, 0x98, 0x31, 0xbc, 0x0e, 0xe9, 0xf3, 0xca, 0x3d, 0xc2, 0x72, 0x05, 0xbf, 0x8f, 0x9a, 0xcd, -0xeb, 0x10, 0xd6, 0xef, 0xc7, 0x0c, 0xee, 0x87, 0x64, 0x7d, 0xe0, 0x07, 0x3c, 0x37, 0x8d, 0xf5, -0x7b, 0xae, 0x16, 0xb1, 0x87, 0x41, 0xb1, 0xe3, 0x12, 0x9f, 0xb4, 0xe7, 0x51, 0x98, 0xfa, 0x23, -0x3d, 0xdb, 0x43, 0xda, 0x39, 0xd4, 0x1f, 0x4f, 0x10, 0x5f, 0xcb, 0xd6, 0x3f, 0xef, 0x0b, 0x7f, -0x7f, 0x83, 0xdd, 0x29, 0x3f, 0x36, 0x73, 0x9c, 0xaa, 0x37, 0x18, 0x3e, 0xd9, 0x06, 0x5d, 0xc2, -0x8a, 0xbd, 0xa7, 0xef, 0x93, 0x27, 0x1a, 0x37, 0xb8, 0xc8, 0x62, 0xde, 0x95, 0x69, 0xf3, 0xac, -0xa8, 0xda, 0x0f, 0x66, 0x3d, 0xca, 0xcd, 0x46, 0xb3, 0x1e, 0x67, 0xcd, 0x7d, 0x6e, 0xe4, 0xf1, -0x1d, 0x5f, 0xa8, 0x39, 0x8f, 0xeb, 0x10, 0xbe, 0xaf, 0xbe, 0xa8, 0x0c, 0xfe, 0xe2, 0x00, 0x72, -0xba, 0xe3, 0x52, 0x20, 0xdc, 0x1f, 0xb5, 0xca, 0xa5, 0xda, 0x9a, 0x45, 0x36, 0x74, 0xc2, 0xfb, -0xe3, 0x82, 0x8b, 0xca, 0x70, 0x7c, 0x78, 0x24, 0x31, 0x7f, 0xf4, 0x8f, 0x96, 0x8c, 0x73, 0xf6, -0x71, 0x9c, 0xef, 0x47, 0x70, 0x6c, 0xf6, 0x07, 0xb6, 0x83, 0x1f, 0xff, 0x82, 0xe4, 0xbd, 0x0c, -0x57, 0x7b, 0x3f, 0xce, 0xb8, 0xa7, 0xd8, 0xf3, 0xde, 0x3e, 0x41, 0x89, 0x17, 0x5c, 0x52, 0x06, -0x11, 0xc7, 0x73, 0x42, 0x2b, 0x95, 0x03, 0xc8, 0xa1, 0x26, 0xa3, 0x17, 0xc8, 0x07, 0xa8, 0x8b, -0x66, 0x4b, 0x15, 0xa6, 0x25, 0xe9, 0x69, 0xb8, 0x17, 0xe5, 0x03, 0xe9, 0x89, 0x9f, 0x2b, 0xa7, -0xa4, 0x95, 0xca, 0x39, 0x9c, 0xa3, 0x2e, 0xcd, 0x2f, 0x82, 0x90, 0x38, 0x3e, 0xd9, 0x8c, 0x25, -0x0e, 0x1e, 0x66, 0xaf, 0xf6, 0xbf, 0x78, 0x33, 0x6a, 0xd2, 0xea, 0xb4, 0x2f, 0x4c, 0xf7, 0xd5, -0xb1, 0x50, 0x2e, 0x2f, 0x45, 0x1e, 0x25, 0x56, 0x44, 0xfe, 0x00, 0x14, 0x45, 0x5a, 0x01, 0x81, -0x38, 0xf2, 0x2b, 0x69, 0xfe, 0x44, 0x36, 0xcc, 0x3f, 0x4f, 0x3e, 0xd7, 0xd2, 0xeb, 0x04, 0xe9, -0x34, 0x46, 0x0f, 0x04, 0x7e, 0x46, 0xed, 0xf3, 0x4e, 0x23, 0x3b, 0xd2, 0x98, 0xaf, 0x7e, 0x13, -0x3f, 0x57, 0x91, 0x9d, 0x28, 0x51, 0xec, 0x27, 0x9e, 0xe7, 0x68, 0xa8, 0x73, 0xec, 0xe1, 0xf8, -0x7d, 0xe9, 0xb2, 0x44, 0x94, 0xaf, 0x4e, 0x11, 0x7b, 0xd3, 0x47, 0xfe, 0x96, 0x48, 0x16, 0x47, -0x7e, 0x5a, 0x44, 0x44, 0x5d, 0x6a, 0x76, 0x83, 0x1e, 0xb1, 0xad, 0x80, 0xbd, 0x18, 0x58, 0xab, -0xb1, 0xde, 0x5f, 0x9c, 0x07, 0x1b, 0x9d, 0x97, 0x90, 0xcf, 0xea, 0xfd, 0x5d, 0x2c, 0xcb, 0x6d, -0x43, 0x8e, 0xbb, 0x0a, 0xa9, 0x64, 0x15, 0x72, 0xf3, 0x16, 0x35, 0x32, 0x42, 0x4a, 0x3a, 0xd2, -0x9e, 0x68, 0x8f, 0x82, 0xf5, 0x69, 0xec, 0x6a, 0xbc, 0x81, 0xab, 0xac, 0x3b, 0x82, 0x5c, 0x92, -0x6c, 0x20, 0x39, 0x94, 0xb1, 0x0d, 0x29, 0xe7, 0x1f, 0x06, 0x32, 0x29, 0xa7, 0x1a, 0xa7, 0x88, -0x77, 0x08, 0x04, 0xb6, 0xc0, 0x3e, 0x67, 0x84, 0xcf, 0x71, 0x0a, 0x91, 0x5b, 0x70, 0xb0, 0xa5, -0x57, 0x8e, 0xd0, 0x8a, 0x6a, 0xd8, 0xa0, 0x9e, 0x86, 0x20, 0xbf, 0x80, 0x23, 0x68, 0x88, 0xe5, -0x6b, 0xe7, 0x5c, 0x63, 0x32, 0x6b, 0xfc, 0xd3, 0x0e, 0xc5, 0xb3, 0xac, 0x2b, 0x5e, 0x9b, 0x82, -0x00, 0x9d, 0x5f, 0x05, 0x26, 0x3c, 0xcd, 0x99, 0xf0, 0x94, 0x61, 0x4d, 0xed, 0x70, 0xeb, 0x23, -0x31, 0xd6, 0x53, 0x11, 0x11, 0x61, 0x3d, 0x01, 0x1c, 0xaf, 0xa3, 0xe9, 0xdd, 0xf1, 0xf1, 0xa5, -0xf6, 0x66, 0x7d, 0xfd, 0x44, 0x4b, 0x1e, 0x4c, 0x0b, 0x0b, 0xbd, 0xce, 0xb4, 0x9d, 0x99, 0xe6, -0xed, 0x42, 0xcc, 0x03, 0xd2, 0x86, 0x40, 0xca, 0xe2, 0xa3, 0xb0, 0x03, 0xbc, 0x33, 0xce, 0x3e, -0x68, 0x3e, 0x3d, 0x42, 0x33, 0x81, 0xc6, 0x2b, 0x63, 0xb4, 0xaa, 0x58, 0x9f, 0x15, 0xf1, 0x33, -0x4e, 0xfa, 0x23, 0x12, 0xca, 0xa3, 0x96, 0x05, 0x38, 0x22, 0xc8, 0xdd, 0x31, 0xcd, 0xfb, 0x42, -0x00, 0xa6, 0xce, 0xa8, 0x03, 0xd7, 0x6a, 0xcf, 0xd1, 0x47, 0xec, 0x59, 0xaa, 0xde, 0x89, 0x1f, -0x71, 0x20, 0x24, 0xde, 0x37, 0x6c, 0xc0, 0x19, 0x34, 0x16, 0x55, 0xd7, 0x77, 0x4c, 0x5f, 0x4c, -0x7c, 0xe1, 0x15, 0x71, 0xaa, 0xd4, 0x1b, 0x93, 0xbc, 0xe2, 0xd4, 0x75, 0xcf, 0xd5, 0xad, 0xa9, -0x5d, 0x1c, 0xe6, 0x62, 0xae, 0x58, 0x34, 0xa9, 0x7d, 0xb7, 0x38, 0x3f, 0xd3, 0x70, 0xba, 0x85, -0x70, 0xfa, 0xe3, 0x7d, 0x6a, 0x79, 0xb4, 0x06, 0xb4, 0x00, 0xed, 0x78, 0xec, 0xf9, 0x78, 0x3f, -0xfb, 0x67, 0xea, 0x46, 0x79, 0x53, 0x8c, 0x7d, 0x15, 0x7e, 0x6f, 0x69, 0xb7, 0xd7, 0xaa, 0x91, -0x2e, 0x3e, 0x43, 0x4e, 0xee, 0x07, 0x07, 0xb4, 0x11, 0xff, 0xf8, 0x65, 0x95, 0xbe, 0x14, 0xa6, -0xcf, 0x32, 0xe2, 0xf0, 0x8b, 0xf7, 0x91, 0x6f, 0x34, 0x22, 0xb7, 0x9e, 0x5b, 0xff, 0x7d, 0x1f, -0x72, 0x57, 0xc2, 0xa2, 0x93, 0x57, 0xc8, 0x15, 0xe0, 0x6c, 0x77, 0x8f, 0x3c, 0x4a, 0x2b, 0xdf, -0xdf, 0xec, 0x97, 0x2b, 0x9d, 0x79, 0x81, 0x9f, 0x11, 0x6f, 0x4e, 0x67, 0x56, 0x24, 0x9b, 0x23, -0x7f, 0xa1, 0xed, 0x17, 0x15, 0x66, 0x52, 0x91, 0xea, 0x0b, 0x10, 0xca, 0x78, 0xce, 0x71, 0xd4, -0xec, 0x7c, 0x24, 0xba, 0x2f, 0xe5, 0xc1, 0xb2, 0x54, 0xb5, 0xca, 0x0e, 0xcd, 0xfb, 0x00, 0xea, -0xda, 0x9d, 0x28, 0xb3, 0xd8, 0xe4, 0x22, 0x67, 0x5e, 0x66, 0x09, 0x52, 0x60, 0xe2, 0xf7, 0xff, -0x7c, 0x20, 0x7a, 0x52, 0xb5, 0xf9, 0x42, 0xcc, 0x73, 0xae, 0x12, 0xb6, 0xe1, 0xd8, 0x06, 0xb7, -0xda, 0x92, 0x4c, 0x09, 0xd0, 0x54, 0xde, 0x09, 0xa1, 0xb7, 0x07, 0x65, 0x03, 0x96, 0xef, 0x94, -0xfe, 0x4a, 0xd6, 0x4b, 0x0d, 0xff, 0x3c, 0x14, 0x33, 0x11, 0x67, 0x13, 0x33, 0xc8, 0x1f, 0x3d, -0x31, 0x24, 0x99, 0x84, 0xdf, 0xb1, 0xd0, 0x7b, 0x40, 0x6d, 0xd1, 0x62, 0x81, 0x11, 0x27, 0x6b, -0x36, 0x61, 0xa5, 0xb1, 0x25, 0xc1, 0xc1, 0x66, 0x23, 0x51, 0xc7, 0x68, 0x08, 0x31, 0x63, 0xc2, -0xda, 0xc8, 0x5a, 0xcd, 0x8b, 0x6f, 0x5b, 0x01, 0x66, 0xc8, 0xfd, 0x5a, 0x27, 0x38, 0x21, 0xef, -0xb6, 0x30, 0x14, 0xdc, 0x46, 0xb6, 0xf3, 0x00, 0xd6, 0xaf, 0x75, 0xe6, 0x95, 0xb1, 0xd6, 0x53, -0x86, 0xce, 0x11, 0xae, 0x72, 0x2e, 0xd9, 0x6e, 0x1a, 0x84, 0xaf, 0x92, 0xb6, 0x88, 0x6c, 0x6b, -0x83, 0x3c, 0x94, 0x71, 0xc8, 0x3e, 0x8d, 0x74, 0x71, 0xd3, 0x9a, 0xba, 0xd8, 0x3f, 0x48, 0xb7, -0x89, 0x62, 0x9f, 0xe2, 0x9a, 0x56, 0x30, 0xa9, 0xfe, 0x72, 0x6c, 0x95, 0x21, 0xe6, 0x13, 0xa3, -0x3b, 0x7e, 0x85, 0xb5, 0xed, 0xed, 0x8b, 0xb0, 0x06, 0x8a, 0x2c, 0xd3, 0x62, 0x33, 0x75, 0x61, -0x2d, 0xd5, 0x48, 0x0b, 0xfc, 0x28, 0x9f, 0x2e, 0x20, 0xff, 0x20, 0x75, 0xb8, 0x1e, 0x2a, 0x36, -0xad, 0x6c, 0x11, 0x63, 0x24, 0x65, 0x55, 0x55, 0x88, 0xbd, 0x0e, 0xcd, 0x3f, 0x07, 0x75, 0xf3, -0x46, 0xc7, 0xaf, 0xc8, 0xc2, 0x9f, 0xc3, 0x93, 0x8e, 0x48, 0xc3, 0x86, 0x7f, 0x39, 0x10, 0xfd, -0x48, 0x44, 0xfc, 0xc8, 0x8c, 0x4b, 0x12, 0x5e, 0x05, 0x45, 0x31, 0x87, 0x76, 0x22, 0xe3, 0x20, -0x7b, 0x0e, 0x94, 0x68, 0xb8, 0x24, 0x8a, 0xae, 0x30, 0x32, 0x17, 0x57, 0x89, 0x79, 0xa3, 0xca, -0x53, 0xb8, 0x2a, 0x08, 0xfd, 0xff, 0x7e, 0xa4, 0x14, 0xe4, 0x03, 0x25, 0x15, 0x4d, 0x04, 0xdb, -0xd2, 0x19, 0x6a, 0x56, 0x06, 0xa9, 0x1e, 0xaf, 0x5b, 0x39, 0x27, 0xea, 0xa3, 0x71, 0xc3, 0x1a, -0xcf, 0xaa, 0x31, 0x46, 0xd8, 0x76, 0xdc, 0x6e, 0x92, 0x74, 0x91, 0x2e, 0x84, 0xf6, 0x2d, 0xd1, -0x4f, 0xfa, 0xfb, 0x38, 0x56, 0xa4, 0x21, 0x96, 0x27, 0x55, 0xdb, 0x43, 0x91, 0x3e, 0x4c, 0xbb, -0xfa, 0xe4, 0x2b, 0xd2, 0xd4, 0x48, 0x42, 0xd8, 0x07, 0x50, 0x74, 0x0e, 0x2d, 0x92, 0xb1, 0x73, -0x7a, 0x2c, 0x8f, 0x66, 0x86, 0x82, 0xdc, 0x29, 0x9d, 0x3a, 0x38, 0x28, 0x76, 0x0e, 0xce, 0x28, -0x57, 0x5e, 0xcc, 0x42, 0xfb, 0x42, 0xca, 0x6e, 0x91, 0x5e, 0x9b, 0x18, 0x49, 0x38, 0x7b, 0x1d, -0x3d, 0xac, 0x5f, 0xc0, 0x54, 0xb9, 0x8a, 0x68, 0x9f, 0xa4, 0x51, 0x0a, 0xce, 0xbb, 0xbe, 0x91, -0xac, 0x1a, 0xe9, 0x1c, 0xc9, 0x3d, 0x81, 0x7a, 0x55, 0x39, 0x21, 0x16, 0x92, 0x82, 0x76, 0x7f, -0xa6, 0x3f, 0xf5, 0x45, 0xdd, 0x67, 0x1f, 0xc1, 0xba, 0x0c, 0x64, 0xbf, 0xe9, 0x9e, 0x1e, 0xb3, -0xd3, 0x4e, 0xb5, 0x12, 0x46, 0xea, 0x42, 0x9a, 0x72, 0x01, 0xfb, 0xdc, 0xf4, 0x18, 0x2e, 0xea, -0x3d, 0xbb, 0xbe, 0xb6, 0x77, 0xa4, 0xd7, 0xd9, 0xd3, 0x86, 0xbc, 0x4c, 0x9b, 0xbd, 0x56, 0xd7, -0x0e, 0x82, 0x7e, 0x8e, 0x97, 0x52, 0x7b, 0xea, 0xaa, 0x84, 0x0e, 0x97, 0x53, 0xe8, 0x70, 0x39, -0xf8, 0x84, 0xb0, 0x61, 0x35, 0xc8, 0x0e, 0x47, 0x5e, 0xcc, 0x89, 0x98, 0x93, 0x23, 0xbc, 0xa7, -0xa0, 0x04, 0xb3, 0x82, 0x4f, 0x98, 0xee, 0xa3, 0x93, 0x02, 0x47, 0x40, 0x36, 0x38, 0x73, 0x64, -0x23, 0xc7, 0x91, 0x3e, 0x4a, 0x71, 0xa5, 0xea, 0x0a, 0xd3, 0xba, 0x60, 0x34, 0x9f, 0xa9, 0x2c, -0xb6, 0x96, 0xc7, 0xbe, 0x8d, 0x3f, 0x8d, 0x3c, 0x20, 0x2c, 0x4e, 0xb4, 0x65, 0x78, 0xe4, 0x71, -0xa0, 0xdc, 0x4e, 0x67, 0xe2, 0xa0, 0x2c, 0x35, 0x58, 0xb2, 0x64, 0x7d, 0xc3, 0xa0, 0x3d, 0x90, -0x37, 0x88, 0x3c, 0x7b, 0x56, 0xa6, 0xd7, 0x47, 0xd9, 0xac, 0xea, 0x34, 0x74, 0x3a, 0x21, 0x2a, -0x91, 0x5e, 0x03, 0x79, 0x71, 0x99, 0x6c, 0x57, 0x79, 0xe6, 0x91, 0xdb, 0x03, 0x48, 0x21, 0x01, -0xe9, 0xa3, 0xda, 0xb3, 0x70, 0xcf, 0xb7, 0x32, 0xf4, 0x98, 0x70, 0x35, 0xda, 0xaf, 0x45, 0x50, -0x8c, 0x15, 0xb1, 0x57, 0x3c, 0xc4, 0x32, 0x84, 0x58, 0x83, 0x3d, 0x10, 0xf7, 0x4c, 0xb4, 0x15, -0x16, 0xa7, 0x9e, 0xb4, 0x67, 0xcc, 0x73, 0xc3, 0x1a, 0xf7, 0x4c, 0xb6, 0x21, 0x67, 0x7a, 0xed, -0xe2, 0x53, 0x21, 0xa1, 0x51, 0x9f, 0xa3, 0x52, 0xd6, 0x1c, 0x4d, 0x2b, 0x90, 0x24, 0xd4, 0x19, -0x74, 0x1a, 0x64, 0x90, 0x4d, 0x5a, 0x1a, 0xc9, 0x94, 0xec, 0x21, 0xd1, 0xcf, 0x35, 0xb7, 0x11, -0xad, 0xa4, 0xb3, 0x5d, 0x7b, 0x4a, 0xe3, 0x9d, 0xa8, 0x65, 0x1d, 0xb0, 0x25, 0xd1, 0xf7, 0x21, -0xb9, 0x72, 0x98, 0x6d, 0x35, 0x92, 0x2b, 0xcb, 0xf0, 0x57, 0x87, 0xd7, 0x76, 0xbc, 0xea, 0x21, -0x19, 0xef, 0x20, 0xbf, 0x38, 0x29, 0x5b, 0x8e, 0x64, 0x4b, 0x11, 0x24, 0x57, 0x8c, 0x42, 0xb2, -0xf9, 0x04, 0xfe, 0x9d, 0xa2, 0xbd, 0x6d, 0xf8, 0x3f, 0xfd, 0xcf, 0x71, 0xcf, 0xdc, 0x48, 0xa5, -0xb4, 0xfc, 0x81, 0xa6, 0xa6, 0xfb, 0x5b, 0xbe, 0xf3, 0xbd, 0xef, 0x95, 0xd0, 0x9d, 0x74, 0x47, -0xc9, 0x1d, 0x92, 0xab, 0xb4, 0x44, 0x35, 0x64, 0xb9, 0x29, 0x07, 0x26, 0xbe, 0x07, 0xb2, 0xa3, -0x69, 0xb6, 0x42, 0xf2, 0xbb, 0x65, 0x5d, 0xba, 0xa9, 0x4b, 0xf0, 0x3e, 0x1b, 0x92, 0x0f, 0xfc, -0x0e, 0xaf, 0x65, 0xa9, 0x72, 0x5b, 0x30, 0x65, 0x8d, 0xda, 0x8b, 0xc8, 0xac, 0x59, 0xdf, 0x5f, -0xb9, 0x62, 0xe5, 0xaa, 0xff, 0x67, 0xa5, 0xd4, 0xb4, 0x6c, 0xf5, 0x03, 0xf7, 0x2f, 0x9b, 0x35, -0x0b, 0x16, 0x2e, 0x6b, 0xff, 0x0e, 0x44, 0x56, 0xad, 0x6a, 0x87, 0x36, 0xfc, 0xe1, 0xb2, 0xd3, -0xb5, 0xc0, 0xf7, 0x1e, 0x68, 0xc5, 0xf7, 0xe2, 0x7e, 0xd5, 0xaa, 0x78, 0xca, 0xd8, 0x65, 0xfe, -0xdf, 0x84, 0xa8, 0xfe, 0x6b, 0xfe, 0x21, 0x0c, 0x57, 0x1c, 0x4a, 0xdf, 0x37, 0x9f, 0x49, 0xdf, -0xb7, 0x8e, 0x67, 0xdc, 0x3f, 0xae, 0xf5, 0x5a, 0x5c, 0x38, 0x4e, 0x34, 0xf0, 0x39, 0xf8, 0x16, -0xd5, 0x03, 0x54, 0x2f, 0x4a, 0x6f, 0x4d, 0x74, 0x76, 0xdd, 0xfc, 0x2d, 0xe6, 0x16, 0x4e, 0x38, -0x61, 0x3e, 0x72, 0x3d, 0xb8, 0x56, 0xba, 0x48, 0x0f, 0xef, 0x81, 0x08, 0xef, 0x7c, 0x2a, 0x77, -0x9e, 0x99, 0xfb, 0x21, 0xb4, 0x53, 0x1c, 0x70, 0x75, 0xdf, 0x50, 0xa9, 0x28, 0xf4, 0xd6, 0xa1, -0xc4, 0xd5, 0x89, 0x5f, 0x2e, 0x81, 0xde, 0xb8, 0x01, 0x71, 0xa1, 0xcf, 0x5b, 0x03, 0x8d, 0x9c, -0xf2, 0x1d, 0x58, 0x42, 0xb8, 0x8f, 0x69, 0xb2, 0x37, 0x0c, 0x4d, 0xf7, 0xd0, 0xdd, 0xf2, 0x38, -0x9d, 0xf7, 0xb7, 0x48, 0x59, 0x8b, 0xe9, 0x29, 0xce, 0xf9, 0x56, 0x40, 0x7b, 0xe0, 0x45, 0xe8, -0xc0, 0x3f, 0x61, 0xb1, 0xd1, 0x13, 0x0b, 0x3c, 0x31, 0x44, 0x9a, 0x97, 0xcd, 0xdf, 0xc7, 0xfa, -0xfc, 0xdc, 0xa2, 0xd3, 0x8c, 0xa3, 0x96, 0x19, 0x0b, 0x20, 0xff, 0x76, 0xf2, 0x8b, 0x2d, 0x52, -0x87, 0x33, 0xda, 0x7c, 0x80, 0x66, 0xee, 0x3d, 0x99, 0x56, 0x52, 0xc2, 0x1b, 0xd4, 0xf2, 0x0c, -0x6f, 0x50, 0x6e, 0x68, 0x42, 0x6a, 0xe2, 0x64, 0x9a, 0x6b, 0xe1, 0xaf, 0x28, 0xf2, 0xa2, 0x93, -0xef, 0xf6, 0x6b, 0xbb, 0x8c, 0x8b, 0x56, 0x52, 0x54, 0x31, 0xd2, 0x42, 0x54, 0x14, 0xee, 0xfd, -0x8f, 0xa9, 0xa7, 0x55, 0x4b, 0x84, 0x5e, 0x84, 0xd8, 0x4b, 0xf4, 0xe6, 0xb2, 0x8e, 0xa2, 0xaa, -0xa7, 0xf8, 0xc0, 0x4f, 0xd3, 0x39, 0x28, 0x0e, 0x74, 0x04, 0x4b, 0xd0, 0x97, 0x28, 0x7f, 0x84, -0x5c, 0x59, 0xff, 0xbf, 0x0e, 0x49, 0xb9, 0x62, 0xa7, 0x0e, 0x70, 0x9e, 0x71, 0xaf, 0xba, 0xe2, -0x69, 0x8d, 0xcc, 0x63, 0xb8, 0xaa, 0x35, 0x21, 0x55, 0xb9, 0x7a, 0x27, 0x69, 0xd1, 0xe4, 0x63, -0x69, 0x4a, 0x55, 0x84, 0x4b, 0xab, 0x23, 0xdd, 0x9d, 0xd8, 0x1a, 0xe4, 0x5f, 0x32, 0x6a, 0x6a, -0xfe, 0x39, 0x79, 0x7c, 0xab, 0x5a, 0x22, 0x3c, 0x87, 0xe0, 0xfb, 0x7b, 0x27, 0xb4, 0xe3, 0x28, -0xf2, 0xd4, 0xca, 0xec, 0x73, 0x5a, 0xac, 0xd1, 0x58, 0x55, 0x46, 0x2f, 0x5e, 0xab, 0xdf, 0x34, -0xa9, 0xac, 0xd7, 0x84, 0x55, 0x1e, 0xf2, 0xe4, 0x58, 0x4b, 0x3a, 0x67, 0xf3, 0x1e, 0x51, 0x7a, -0x5a, 0x0f, 0xf3, 0x81, 0x97, 0xe7, 0x89, 0x72, 0x9f, 0xcc, 0x28, 0xef, 0x10, 0xae, 0x41, 0x99, -0x5f, 0xfd, 0x24, 0x05, 0x03, 0x47, 0xc9, 0xde, 0x54, 0x2f, 0x1a, 0x44, 0x24, 0x3f, 0xde, 0xb3, -0x42, 0x1e, 0xe5, 0xc9, 0xc1, 0xb4, 0x84, 0xa0, 0x94, 0x34, 0x6e, 0x10, 0x9e, 0x7f, 0xe8, 0x84, -0x9a, 0xf5, 0x77, 0xbd, 0x60, 0xb2, 0x7b, 0x85, 0x7e, 0x8e, 0xd8, 0xc9, 0x55, 0x4e, 0x08, 0xd8, -0xdd, 0xca, 0x7a, 0xc1, 0x34, 0x7e, 0xf1, 0x29, 0xda, 0xf7, 0xc9, 0xa3, 0x08, 0xbb, 0xe5, 0xb1, -0x30, 0x72, 0xfb, 0x6e, 0x94, 0x61, 0x4a, 0x03, 0xdb, 0xa0, 0x04, 0xef, 0x4b, 0xf0, 0xde, 0x8d, -0xd7, 0xf2, 0x14, 0x8c, 0x8f, 0x30, 0x96, 0x3c, 0x26, 0x30, 0x1b, 0xbf, 0xb1, 0x47, 0xf3, 0x4a, -0xaa, 0xfe, 0x09, 0x12, 0x77, 0xa6, 0x2d, 0xb2, 0x64, 0x83, 0xe6, 0x41, 0x2c, 0xd8, 0x9b, 0xb6, -0x8c, 0xf7, 0x34, 0x43, 0x13, 0x72, 0x0c, 0xf6, 0x58, 0xae, 0x28, 0x81, 0xb0, 0x0c, 0x6b, 0xb1, -0xe3, 0x1a, 0xb2, 0x3c, 0xcd, 0x39, 0x67, 0x68, 0xb7, 0x31, 0xff, 0xef, 0x14, 0xbb, 0x05, 0x85, -0x12, 0xf5, 0xf8, 0x7b, 0x26, 0xf3, 0x4b, 0x44, 0x37, 0x82, 0x99, 0xd4, 0x1d, 0xd7, 0xf3, 0x42, -0xe4, 0x2f, 0x6c, 0x38, 0x2b, 0x88, 0x93, 0xb1, 0x33, 0xa7, 0x7d, 0x98, 0x4f, 0xf5, 0xca, 0xd9, -0x03, 0x51, 0x33, 0xe4, 0x3b, 0x5c, 0xb0, 0x7c, 0xc1, 0x87, 0x1c, 0xc9, 0xcc, 0x55, 0x8c, 0x1c, -0x23, 0xad, 0xac, 0x6f, 0x9f, 0x87, 0x3c, 0xb6, 0x97, 0xc8, 0xb7, 0xfb, 0xed, 0xb7, 0x6c, 0xdc, -0x0a, 0xf6, 0xd5, 0x39, 0xbb, 0xba, 0x96, 0xe5, 0xe6, 0x57, 0x41, 0xf6, 0xae, 0xae, 0xa8, 0xf1, -0xeb, 0x0f, 0x80, 0x11, 0xf9, 0xa7, 0x85, 0x62, 0x6e, 0xe0, 0xb8, 0x8e, 0xd4, 0xfd, 0xb6, 0x45, -0x8b, 0x2f, 0x23, 0x62, 0xbc, 0xb7, 0x72, 0x0c, 0x12, 0xf2, 0xbf, 0x94, 0xef, 0xc4, 0x1a, 0x38, -0xee, 0x21, 0x79, 0x35, 0xc0, 0x56, 0x64, 0x46, 0x38, 0xd5, 0xb5, 0x38, 0x3c, 0xbc, 0x17, 0xac, -0x67, 0x9e, 0x35, 0x5f, 0x72, 0x81, 0x1d, 0xe7, 0x2f, 0xe0, 0xca, 0x77, 0xaf, 0x47, 0x9c, 0x48, -0x97, 0x09, 0xdf, 0x05, 0xe4, 0x0b, 0xc3, 0x05, 0x91, 0x5e, 0xc9, 0x90, 0xe9, 0xbf, 0xc0, 0x4d, -0xf2, 0xb2, 0x53, 0xaa, 0xc5, 0x35, 0x3e, 0xc3, 0x26, 0x40, 0x36, 0x92, 0xcd, 0x7e, 0x73, 0xd0, -0x35, 0xed, 0xd8, 0x36, 0xc8, 0x4b, 0x97, 0x8e, 0x1c, 0xb1, 0x7d, 0xe1, 0xe8, 0x38, 0xd4, 0x6f, -0x96, 0x82, 0xbe, 0xc4, 0xc4, 0x5a, 0x23, 0x54, 0x2b, 0xa6, 0xdf, 0xe1, 0x07, 0x3d, 0x47, 0x15, -0xe8, 0xc9, 0x7c, 0xbb, 0x58, 0x7d, 0x7b, 0xab, 0x1f, 0x0c, 0xb7, 0xce, 0xc5, 0x9e, 0xe0, 0xb7, -0x8c, 0x8d, 0x41, 0x2d, 0x47, 0x63, 0x3a, 0x87, 0x65, 0xe2, 0xf7, 0x28, 0xad, 0x22, 0x04, 0x53, -0x6f, 0xad, 0xfc, 0x2d, 0x62, 0xb3, 0xf6, 0xe5, 0x92, 0xf4, 0x97, 0x85, 0xd7, 0xd6, 0xdc, 0x90, -0x6e, 0x57, 0xc1, 0xc4, 0x16, 0xdf, 0x97, 0xfe, 0x4e, 0xba, 0x83, 0x75, 0xe3, 0x8a, 0x5b, 0xc0, -0xc0, 0xd1, 0x1d, 0x24, 0xb6, 0xf5, 0x14, 0x36, 0xd8, 0x79, 0x42, 0x17, 0xee, 0x87, 0x6f, 0x48, -0xd3, 0xd2, 0xde, 0x9d, 0x49, 0xba, 0x65, 0x6d, 0x5d, 0x95, 0x67, 0xb4, 0x2f, 0x87, 0x3c, 0xe7, -0x72, 0x2c, 0x17, 0x39, 0xf5, 0xfe, 0xe7, 0xc1, 0xde, 0x9e, 0xb3, 0x33, 0xb1, 0xac, 0xa3, 0xe6, -0xf7, 0x36, 0x58, 0x44, 0x5e, 0x1c, 0x4d, 0x6d, 0x53, 0x77, 0x24, 0x96, 0x15, 0x0d, 0x27, 0x7c, -0xb3, 0x4d, 0x1c, 0x61, 0x00, 0x0a, 0xc0, 0x8e, 0x1c, 0x63, 0x09, 0x94, 0x41, 0x15, 0x04, 0x20, -0x04, 0x11, 0x68, 0xc4, 0x19, 0x78, 0x8b, 0x5c, 0xc6, 0x27, 0x0a, 0x7a, 0xd9, 0x23, 0x3d, 0x87, -0x6b, 0x78, 0x1d, 0xfe, 0x9a, 0xe5, 0x5a, 0xfc, 0xb5, 0xc8, 0xfe, 0xd2, 0x07, 0x10, 0x67, 0x1e, -0x96, 0x2b, 0x24, 0x3a, 0x77, 0x2a, 0xc5, 0x5f, 0x49, 0xf6, 0x70, 0xee, 0x02, 0x29, 0x21, 0xdb, -0xf1, 0xd9, 0x24, 0x17, 0xe2, 0xaf, 0x55, 0xce, 0xe7, 0xc8, 0x76, 0xd5, 0x08, 0xa9, 0x10, 0xeb, -0x13, 0xdb, 0x59, 0xee, 0x3d, 0xac, 0x46, 0xdf, 0xfe, 0x2e, 0xad, 0x29, 0x90, 0xfc, 0x7d, 0xb7, -0x58, 0xff, 0x3e, 0x3a, 0xcd, 0xab, 0xcf, 0x58, 0x56, 0x3f, 0xaf, 0xee, 0x63, 0x59, 0x47, 0x79, -0xb5, 0x4f, 0xad, 0xf2, 0x1f, 0xdb, 0xc5, 0xea, 0xf4, 0xf1, 0xcf, 0xf1, 0x3a, 0x15, 0x92, 0x57, -0x6a, 0xf1, 0x6a, 0x86, 0xe4, 0x1f, 0x92, 0x9c, 0x3f, 0x79, 0xf5, 0x04, 0xfb, 0xe8, 0x4a, 0x7e, -0x36, 0xc2, 0x76, 0xa4, 0xc9, 0xf1, 0x9d, 0x78, 0xb5, 0x41, 0x52, 0xa1, 0x15, 0x2f, 0x1b, 0xc6, -0x28, 0x24, 0x0b, 0x4c, 0x49, 0x97, 0xf7, 0x81, 0x51, 0x5c, 0x2f, 0xac, 0x14, 0xe5, 0x5e, 0xd8, -0x3e, 0x91, 0xab, 0xb8, 0xd8, 0x2c, 0xd2, 0x2f, 0x8e, 0x8a, 0xfa, 0x2e, 0x3d, 0x2e, 0xea, 0xf9, -0x70, 0xaf, 0x28, 0xf7, 0x32, 0xe5, 0x2a, 0x48, 0xe7, 0xff, 0x7d, 0x91, 0x7a, 0xf5, 0xf0, 0x77, -0xda, 0xbf, 0xb1, 0xaf, 0xef, 0x11, 0xd7, 0xca, 0xfd, 0xa2, 0x7f, 0xb3, 0xef, 0x15, 0xfd, 0xfb, -0x0b, 0xcf, 0x84, 0xfe, 0x8d, 0x95, 0x36, 0xa8, 0xd7, 0xe1, 0x89, 0xed, 0xf8, 0x4f, 0x8b, 0x7a, -0x3d, 0x20, 0xda, 0x73, 0xa6, 0x68, 0xe2, 0xfb, 0x33, 0x62, 0xa1, 0x4f, 0x9e, 0x35, 0x8a, 0xf7, -0x67, 0xcb, 0x27, 0xc2, 0xed, 0x6c, 0x87, 0x7a, 0x3d, 0x29, 0xb8, 0xa7, 0xf7, 0xfa, 0x26, 0x7e, -0x7f, 0x2e, 0xa8, 0x5e, 0xdb, 0x27, 0xb4, 0x3b, 0xf9, 0x72, 0x89, 0xb8, 0x0e, 0x5e, 0x11, 0xe5, -0xbe, 0x52, 0x2f, 0xfa, 0xff, 0xee, 0xf1, 0x89, 0xe5, 0xef, 0xbb, 0x57, 0x5c, 0x5f, 0xb5, 0x8a, -0xf2, 0x5f, 0xa5, 0xf1, 0xc8, 0x81, 0xe4, 0xaf, 0x28, 0x75, 0x1a, 0x5e, 0xf5, 0x62, 0x9c, 0x7e, -0x45, 0xd6, 0xa7, 0x37, 0x41, 0xf2, 0x20, 0x7d, 0x9f, 0x8b, 0x57, 0x1a, 0xaf, 0x9b, 0xf1, 0x4a, -0xed, 0xb2, 0xe0, 0xf5, 0x14, 0x99, 0x10, 0xe3, 0x95, 0xf0, 0x20, 0x0f, 0xaf, 0xc4, 0x9d, 0x4c, -0xc7, 0xeb, 0x59, 0x92, 0xf4, 0x20, 0xf9, 0xef, 0x07, 0x45, 0xfd, 0x47, 0xaa, 0xc4, 0x38, 0x8f, -0xec, 0xe6, 0x71, 0x4d, 0xfe, 0x07, 0xe9, 0xf5, 0x18, 0x21, 0x79, 0x74, 0x90, 0xc7, 0x37, 0x79, -0xcc, 0x20, 0xc6, 0xe7, 0x1d, 0x7a, 0xfe, 0x12, 0x24, 0xdf, 0x4c, 0x08, 0x7c, 0x38, 0xde, 0xc8, -0xe3, 0x95, 0xfc, 0x35, 0xc1, 0xf7, 0x0b, 0x78, 0x3d, 0x82, 0xd7, 0x2f, 0xc3, 0x98, 0x61, 0x31, -0x5e, 0x0b, 0x61, 0xec, 0xa6, 0x10, 0x5e, 0xbf, 0x82, 0x57, 0xea, 0x6f, 0x11, 0x8c, 0xe5, 0x3e, -0x8b, 0xd7, 0xaf, 0xc2, 0xd8, 0xcd, 0x36, 0x20, 0x03, 0x8a, 0xb1, 0x9b, 0x09, 0x8e, 0xb7, 0xc2, -0x98, 0x85, 0xfa, 0x69, 0x87, 0xb1, 0x5b, 0x88, 0x6f, 0xbb, 0x0d, 0xc6, 0xa6, 0x0b, 0x4e, 0x69, -0xcc, 0xaa, 0x67, 0x5b, 0xe2, 0x31, 0xeb, 0x47, 0x78, 0x75, 0xc2, 0xd8, 0x17, 0xfa, 0xd9, 0xbe, -0x78, 0x2c, 0x9f, 0xc6, 0xd5, 0x85, 0xd7, 0xf3, 0x78, 0x9d, 0x09, 0x63, 0x5f, 0xa4, 0x76, 0xb8, -0xf1, 0x4a, 0xed, 0x28, 0x86, 0x31, 0xdb, 0x12, 0x32, 0xf5, 0xc5, 0x2b, 0xb5, 0x77, 0x16, 0x8c, -0x7d, 0x89, 0xb4, 0x29, 0x4a, 0xf0, 0x4a, 0xf8, 0xeb, 0x85, 0xb1, 0x2f, 0x3f, 0x85, 0x57, 0x1f, -0x8c, 0x7d, 0x85, 0xc6, 0xed, 0x0e, 0x18, 0x93, 0xa8, 0xfe, 0x52, 0x18, 0xb3, 0xe7, 0xe0, 0xf5, -0x6b, 0x30, 0x36, 0x83, 0x10, 0xb1, 0x0c, 0xc6, 0x66, 0x12, 0xfc, 0xee, 0x84, 0xb1, 0x92, 0xa5, -0x78, 0x2d, 0xc7, 0xfe, 0xd1, 0xfc, 0xf9, 0x3a, 0x5e, 0xa9, 0x3d, 0xf9, 0x90, 0xfc, 0x0d, 0xf5, -0xe7, 0x8b, 0x90, 0x3c, 0x49, 0xed, 0xae, 0xc0, 0xeb, 0x83, 0x78, 0xfd, 0x06, 0x5e, 0x09, 0x3e, -0x95, 0x90, 0x3c, 0x75, 0x0e, 0xaf, 0x48, 0x6d, 0xdf, 0xa5, 0xf9, 0xf0, 0x17, 0xe9, 0xf1, 0xfd, -0x45, 0xb9, 0xb8, 0xf6, 0x6f, 0x14, 0x78, 0xd0, 0x7f, 0x6a, 0x22, 0xfe, 0x3c, 0xb1, 0x55, 0xbd, -0x1e, 0x12, 0xef, 0x9f, 0xf8, 0x48, 0xe0, 0xc1, 0x0f, 0x1a, 0xc5, 0x78, 0xfd, 0xa0, 0x53, 0x8c, -0xd7, 0xe6, 0x26, 0x31, 0x5e, 0xcf, 0xfa, 0xc4, 0x78, 0x6c, 0xee, 0x14, 0xe3, 0xf6, 0xc3, 0xa0, -0x18, 0xb7, 0x67, 0xcb, 0xc4, 0x3c, 0xfb, 0xd1, 0x79, 0x81, 0x3f, 0x3f, 0xba, 0x2c, 0xf0, 0xe7, -0x47, 0x97, 0x04, 0xfe, 0xfc, 0xf0, 0xac, 0xc0, 0x9f, 0x1f, 0x9e, 0x17, 0xf8, 0xf3, 0xa3, 0x2b, -0x02, 0x7f, 0xfe, 0xdf, 0x11, 0x1e, 0xb7, 0xe4, 0x3f, 0x1c, 0x12, 0x78, 0xf4, 0xec, 0x7a, 0x81, -0x47, 0x3f, 0x3a, 0x2b, 0xf0, 0xe8, 0xd9, 0xfb, 0x04, 0x1e, 0xfd, 0xa3, 0x59, 0xe0, 0xd1, 0x3f, -0x5a, 0xc4, 0xf8, 0xff, 0xa3, 0x55, 0xc0, 0xe5, 0x1f, 0x6d, 0x02, 0x2e, 0xff, 0xd8, 0x26, 0xf0, -0xe6, 0x1f, 0x9f, 0x15, 0x78, 0xf3, 0x8f, 0x83, 0x02, 0x5f, 0xfe, 0x71, 0x3f, 0xe3, 0x49, 0xf2, -0x1f, 0x5f, 0x63, 0x3c, 0x49, 0xf5, 0xfb, 0xc1, 0xab, 0xf8, 0xb7, 0x07, 0x92, 0x7f, 0xe7, 0x81, -0xe4, 0xff, 0xac, 0xfd, 0xbf, 0x28, 0x75, 0xc4, 0xda, 0xbe, 0x13, 0x5f, 0xfe, 0xc0, 0xfd, 0x37, -0x12, 0x3a, 0x26, 0xbc, 0x66, 0x99, 0x63, 0x75, 0x1f, 0x8c, 0x85, 0x9e, 0x45, 0x99, 0x23, 0x80, -0xf7, 0x6b, 0xf0, 0xef, 0xaf, 0xf0, 0x6f, 0xab, 0x56, 0xa8, 0x11, 0x39, 0xe8, 0xef, 0x5f, 0x16, -0x7d, 0xf8, 0xbb, 0x4b, 0xd8, 0x63, 0x1b, 0x8e, 0x12, 0xb7, 0x3d, 0xfd, 0x63, 0xb2, 0xd8, 0xd2, -0xad, 0xc8, 0x62, 0xb8, 0x8a, 0x7c, 0xfc, 0x5e, 0x51, 0x73, 0x21, 0xb8, 0x2c, 0xa6, 0x74, 0x3e, -0x03, 0xe7, 0xa3, 0xff, 0x38, 0x13, 0xae, 0xd2, 0xa0, 0x9e, 0xe2, 0x19, 0x44, 0xc9, 0x5f, 0xf8, -0x72, 0x3a, 0x5f, 0xf6, 0xe7, 0xcc, 0x87, 0xf4, 0x4c, 0x97, 0xca, 0x47, 0xef, 0x29, 0xdf, 0x55, -0x7e, 0xf5, 0xe5, 0x2f, 0x58, 0xd2, 0xf9, 0xa6, 0x64, 0x96, 0xf7, 0x27, 0xf2, 0x99, 0xb8, 0xbc, -0x9b, 0xf1, 0x3f, 0xe6, 0x23, 0xe4, 0xcb, 0x4a, 0xd5, 0x7b, 0x4b, 0x7e, 0x46, 0xbd, 0x53, 0xb9, -0xbc, 0x3f, 0x9f, 0x2f, 0x27, 0xb3, 0x3c, 0x7a, 0x4f, 0xf9, 0x3a, 0x45, 0xbd, 0xf9, 0xb7, 0xa4, -0xf3, 0x4d, 0xcb, 0x2c, 0xef, 0x4f, 0xe4, 0x33, 0x73, 0x79, 0x12, 0xfe, 0x37, 0x64, 0x8e, 0x87, -0x32, 0x79, 0x3c, 0x6e, 0xe2, 0xf2, 0x44, 0xbe, 0x89, 0xc3, 0xa1, 0xe0, 0x70, 0xa4, 0x33, 0xe6, -0xa6, 0xf3, 0x4d, 0x1a, 0x5e, 0x65, 0x42, 0x81, 0x37, 0x67, 0x96, 0x97, 0x2e, 0x50, 0x99, 0x3c, -0xbe, 0x96, 0x14, 0x1e, 0x18, 0xfe, 0x24, 0xbe, 0xdc, 0x92, 0x91, 0x6f, 0x62, 0xfb, 0x20, 0xb3, -0x38, 0x9c, 0x9b, 0xa9, 0x7c, 0x93, 0x8a, 0xa3, 0x02, 0xd3, 0xf9, 0xa6, 0x67, 0x96, 0xf7, 0x27, -0xf0, 0xcf, 0xca, 0xf9, 0x4c, 0xf8, 0x5f, 0x07, 0xd7, 0x14, 0x08, 0xe9, 0xfb, 0x2f, 0x70, 0xdd, -0x3a, 0xfe, 0x7f, 0xfd, 0x7c, 0x37, 0xf3, 0x6f, 0x3e, 0xd3, 0xf9, 0xe4, 0xff, 0xd8, 0x8c, 0x7f, -0xcf, 0x43, 0x72, 0xcd, 0x3e, 0xbc, 0xd2, 0xdf, 0x3b, 0xf8, 0xf7, 0x21, 0xfe, 0x8d, 0x41, 0xb2, -0x13, 0xe9, 0x4b, 0xa7, 0x2f, 0x53, 0xf4, 0x66, 0x81, 0x3d, 0x53, 0x2e, 0x67, 0xe1, 0x9d, 0xa6, -0x66, 0x49, 0x6a, 0xa2, 0x2e, 0x7d, 0xa0, 0xbd, 0xf5, 0x3b, 0xf1, 0xeb, 0x26, 0x96, 0xdc, 0xbf, -0xfc, 0xfb, 0x2b, 0x57, 0xfc, 0xed, 0xd2, 0xd6, 0xeb, 0xbf, 0x8d, 0xb7, 0x7c, 0x67, 0xe5, 0x77, -0xda, 0xf0, 0xed, 0xc4, 0xdd, 0x80, 0x74, 0xbe, 0xfb, 0x57, 0xb5, 0xac, 0x6a, 0xbb, 0xb6, 0xf0, -0xd8, 0xfd, 0x93, 0x13, 0xd4, 0x9b, 0x8c, 0xcd, 0x84, 0x6b, 0xbe, 0x08, 0x2e, 0x8b, 0x7e, 0xe7, -0xfb, 0x2d, 0xed, 0x95, 0xe5, 0x65, 0xbe, 0x8e, 0xb2, 0x0a, 0x5f, 0xea, 0xb9, 0xc2, 0xe7, 0xeb, -0x28, 0xf7, 0xa5, 0x9f, 0xef, 0xf0, 0x95, 0x96, 0x75, 0x7c, 0xbd, 0xbc, 0x22, 0x9d, 0x70, 0xc7, -0x9d, 0xa5, 0x1d, 0x15, 0xe5, 0x65, 0xe9, 0x84, 0xd2, 0x0a, 0x5f, 0x07, 0x65, 0x4b, 0xa7, 0x60, -0x01, 0x1d, 0x77, 0x94, 0x66, 0x96, 0x42, 0x79, 0x2a, 0x32, 0x13, 0xca, 0xb0, 0xde, 0x6f, 0x64, -0x26, 0x94, 0x73, 0x29, 0x77, 0x66, 0xa4, 0x7c, 0xa3, 0x94, 0x52, 0x2a, 0x26, 0xa7, 0x50, 0xb9, -0x9f, 0x17, 0xee, 0x13, 0x20, 0xf1, 0x67, 0x01, 0xb9, 0x6a, 0xf5, 0xb2, 0xb6, 0x96, 0xef, 0xfc, -0xad, 0x9a, 0x1a, 0xed, 0x28, 0xf9, 0xde, 0xdf, 0xae, 0x9c, 0x0c, 0xdb, 0xf8, 0x03, 0x1d, 0xd1, -0xd6, 0xf6, 0x3f, 0x33, 0x80, 0xff, 0x95, 0xc1, 0x4f, 0xb5, 0x85, 0xfb, 0x74, 0xbd, 0x9f, 0x54, -0x56, 0x0d, 0x0d, 0x67, 0x7c, 0x5f, 0xbc, 0x10, 0x74, 0x2f, 0xf9, 0xa0, 0x0f, 0xff, 0x70, 0x4d, -0xfe, 0x9f, 0x23, 0xf8, 0xf7, 0x53, 0xfc, 0xeb, 0xc0, 0xbf, 0x30, 0xa6, 0xad, 0xc7, 0xbf, 0xfb, -0x52, 0xf4, 0x31, 0xd9, 0xb3, 0x09, 0x92, 0xbd, 0x32, 0x24, 0xd7, 0xe2, 0x9a, 0xb6, 0x0e, 0xff, -0x1e, 0xc2, 0xef, 0xfa, 0x90, 0x57, 0xe8, 0xba, 0x17, 0x92, 0xdd, 0x4b, 0xd5, 0x7c, 0x58, 0xce, -0xc3, 0x7e, 0x48, 0x3e, 0x7e, 0x39, 0xbd, 0x63, 0xf4, 0xf8, 0xc6, 0x89, 0x3b, 0x46, 0xe0, 0x10, -0x5a, 0x56, 0x42, 0x7b, 0x4a, 0x19, 0x4e, 0xeb, 0x5d, 0xa9, 0x29, 0xfb, 0xaf, 0x49, 0x79, 0xd9, -0xa3, 0x7a, 0x9f, 0xd1, 0x4e, 0x61, 0x51, 0x76, 0x77, 0xa3, 0x14, 0xb3, 0x29, 0x96, 0xcf, 0xbe, -0x74, 0xf7, 0x28, 0x47, 0xd8, 0xbf, 0xd1, 0x26, 0xbc, 0xdb, 0x45, 0xf2, 0xa4, 0xea, 0xfb, 0x6f, -0x62, 0xee, 0x2d, 0xa9, 0xdc, 0xcf, 0x72, 0xee, 0x2d, 0x78, 0xd7, 0x77, 0xc3, 0xdc, 0x4f, 0xa7, -0x72, 0xaf, 0xe6, 0xdc, 0x4f, 0xe3, 0xdd, 0xbd, 0x37, 0xcc, 0xfd, 0x4c, 0x2a, 0x77, 0x88, 0x73, -0x3f, 0x83, 0x77, 0x9e, 0x1b, 0xe6, 0x7e, 0x36, 0x95, 0xbb, 0x80, 0x73, 0x3f, 0x8b, 0x12, 0xdc, -0xf8, 0x0d, 0x73, 0x6f, 0xd5, 0x72, 0x8f, 0x5f, 0xe0, 0xdc, 0x5b, 0xf1, 0x6e, 0xf8, 0x86, 0xb9, -0xb7, 0xa7, 0x72, 0xbf, 0xcc, 0xb9, 0xb7, 0xe3, 0xdd, 0x4f, 0x6e, 0x98, 0x7b, 0x20, 0x95, 0xbb, -0x9f, 0x73, 0x0f, 0xe0, 0x5d, 0x7b, 0x46, 0xee, 0x5c, 0x6f, 0xce, 0xe4, 0x1d, 0xac, 0xd5, 0xd6, -0x8c, 0xfd, 0x29, 0x7c, 0x17, 0xb5, 0x98, 0x4a, 0x70, 0xf5, 0xcf, 0x8d, 0x99, 0xa4, 0x5c, 0x1c, -0xab, 0x4b, 0xec, 0x43, 0xf1, 0x6f, 0xae, 0xb7, 0xb3, 0xb5, 0xba, 0xf0, 0xf3, 0xec, 0x6c, 0x49, -0xa5, 0x8e, 0x7a, 0x2e, 0x17, 0xe0, 0xa7, 0x8e, 0x12, 0x28, 0xd1, 0xca, 0x10, 0xb5, 0x77, 0x5e, -0x9d, 0x50, 0x06, 0x40, 0xb7, 0xbd, 0x3e, 0x7d, 0x56, 0x95, 0xde, 0x65, 0x5a, 0x5d, 0x76, 0xed, -0x2e, 0xd3, 0xea, 0xe0, 0xc4, 0x5d, 0xa6, 0xce, 0x2d, 0xd7, 0xdf, 0x65, 0xb2, 0x37, 0x83, 0x3b, -0x63, 0x47, 0xe6, 0x4f, 0xee, 0x39, 0xc9, 0x26, 0xe4, 0xd7, 0x4d, 0x90, 0xcb, 0x9e, 0xcc, 0x35, -0x8f, 0xfe, 0x95, 0x0e, 0xbf, 0xc3, 0x44, 0xbb, 0x73, 0x7f, 0x9b, 0x9c, 0xb4, 0x3b, 0xe7, 0xc6, -0x16, 0x27, 0xc5, 0xee, 0xdc, 0x8c, 0x00, 0x94, 0xfc, 0xb9, 0x1d, 0xba, 0xce, 0xc1, 0x3f, 0xb5, -0x43, 0xb7, 0xba, 0xee, 0xc6, 0x3b, 0x74, 0xab, 0xab, 0x26, 0xef, 0xd0, 0x75, 0x9e, 0xbb, 0xfe, -0x0e, 0x1d, 0x42, 0x74, 0xd2, 0x0e, 0xdd, 0x7f, 0x07, 0x76, 0x9f, 0x6b, 0x87, 0x8e, 0x77, 0x46, -0x69, 0x17, 0x6c, 0x8d, 0x49, 0xd5, 0xaa, 0x3c, 0xa0, 0xe2, 0x4b, 0x8e, 0xd8, 0xab, 0x5d, 0x73, -0x93, 0x23, 0xad, 0x99, 0x79, 0x5a, 0xc3, 0xa6, 0x09, 0x5f, 0x9c, 0x50, 0xfd, 0xd3, 0x57, 0x85, -0xde, 0xab, 0xa8, 0x60, 0x1b, 0x37, 0xc4, 0x68, 0x3e, 0x6d, 0x3a, 0xe6, 0x80, 0xf9, 0x17, 0x95, -0xf5, 0xda, 0x7e, 0xf3, 0x77, 0x2b, 0x38, 0xf6, 0x8e, 0x72, 0xe7, 0x99, 0xfa, 0x27, 0x5d, 0x37, -0x19, 0x7b, 0x91, 0x19, 0xaf, 0xc2, 0x77, 0x0d, 0xfc, 0x4e, 0x26, 0xbf, 0xc9, 0xf3, 0x2e, 0x2a, -0x27, 0x30, 0xc5, 0xa1, 0x9e, 0x5e, 0x2a, 0x15, 0x85, 0xc5, 0x75, 0xca, 0x89, 0x62, 0xe4, 0x85, -0xd7, 0x7c, 0x49, 0x39, 0xc5, 0x7e, 0xb5, 0xce, 0x14, 0x07, 0x95, 0x73, 0x9c, 0x52, 0xa4, 0x5c, -0x20, 0x8f, 0x39, 0x14, 0x1f, 0xbb, 0x38, 0xa0, 0xec, 0x54, 0xd3, 0x76, 0x4b, 0xfa, 0x08, 0xc5, -0x07, 0xdd, 0x5b, 0xbc, 0x40, 0x19, 0xbc, 0x87, 0xee, 0xf6, 0xc7, 0xf3, 0xf0, 0x77, 0x48, 0xd2, -0x2f, 0xa6, 0xa7, 0x83, 0x9c, 0xef, 0x6b, 0xca, 0x70, 0xe0, 0x05, 0x65, 0x04, 0xff, 0xc8, 0x63, -0xab, 0x2b, 0xdc, 0x1d, 0xab, 0xe4, 0xa8, 0xba, 0x3b, 0xb1, 0xd5, 0x06, 0xa7, 0x9f, 0x4f, 0x10, -0xf3, 0x6e, 0x0f, 0x03, 0x45, 0x97, 0x18, 0x20, 0x5f, 0x19, 0xf5, 0x7b, 0x46, 0x47, 0x1a, 0x36, -0xb0, 0xf5, 0xf9, 0x70, 0x23, 0x5b, 0x64, 0x4f, 0xd8, 0x93, 0xbe, 0x58, 0x58, 0xa8, 0x38, 0xd4, -0x88, 0x20, 0x7e, 0x4d, 0x4b, 0x5d, 0x83, 0xc3, 0xf8, 0xb0, 0x03, 0x16, 0x5e, 0x54, 0x86, 0xb0, -0x67, 0x12, 0xf7, 0x75, 0xc0, 0x9b, 0x3b, 0x09, 0x0e, 0x14, 0xf7, 0xc0, 0xc7, 0xef, 0x86, 0x09, -0x0e, 0x08, 0xb5, 0x73, 0xb4, 0x1f, 0x4f, 0x29, 0x6d, 0xa4, 0x9f, 0x4c, 0x90, 0x89, 0x8b, 0x78, -0xe7, 0x6c, 0x71, 0xa3, 0x41, 0xa7, 0x5e, 0x89, 0xab, 0xd0, 0x69, 0x8f, 0x67, 0x61, 0xef, 0x3a, -0x10, 0x3a, 0x9d, 0x2a, 0x24, 0xc8, 0x0b, 0x67, 0x36, 0xa6, 0xf5, 0x22, 0x0c, 0xfb, 0x38, 0xed, -0x6e, 0x65, 0x3d, 0xf9, 0xc3, 0xc4, 0xb4, 0x7e, 0x84, 0xd8, 0x33, 0x6a, 0xbe, 0x67, 0x55, 0x88, -0x6d, 0x45, 0x88, 0x6d, 0x67, 0x88, 0x0d, 0x70, 0xd4, 0xf1, 0x9d, 0x2a, 0xc4, 0x76, 0xab, 0xdf, -0xee, 0x45, 0x68, 0x0d, 0xe2, 0xdf, 0x7e, 0xc6, 0x71, 0x0d, 0x62, 0x48, 0x5f, 0xc7, 0x8e, 0x4c, -0x82, 0xd8, 0x76, 0x01, 0xb1, 0x4f, 0x7f, 0x22, 0x20, 0x36, 0xf6, 0xe3, 0xeb, 0x41, 0x6c, 0x49, -0x1a, 0x62, 0xcf, 0xb0, 0x37, 0x3a, 0xd2, 0x39, 0x27, 0x88, 0x91, 0xfd, 0xfd, 0x8f, 0x9d, 0x84, -0x39, 0xcf, 0x68, 0x98, 0xd3, 0x66, 0xd3, 0x4e, 0x2a, 0xe6, 0xa9, 0x90, 0x99, 0x80, 0x21, 0xe7, -0x54, 0x18, 0x5c, 0x60, 0x0c, 0xb9, 0x5c, 0x5c, 0xa3, 0x0c, 0x71, 0xca, 0x2a, 0xe5, 0x20, 0x9d, -0x54, 0x60, 0xda, 0x30, 0xf6, 0x6d, 0x84, 0xfb, 0x76, 0x2c, 0xde, 0x80, 0xbf, 0x27, 0xb0, 0x1f, -0xa7, 0xc8, 0xdf, 0x1d, 0xcf, 0xc3, 0x1e, 0xf2, 0xf5, 0x88, 0x7d, 0x19, 0xc2, 0x9a, 0x8d, 0x93, -0xfa, 0xb2, 0x55, 0x50, 0xe5, 0xab, 0x47, 0xb1, 0x2f, 0xe4, 0x5f, 0xf8, 0xc8, 0x75, 0x47, 0xdf, -0xac, 0xac, 0x57, 0xfb, 0x32, 0x30, 0xb9, 0x2f, 0xc9, 0x23, 0xdc, 0x97, 0xe1, 0xd4, 0x78, 0xfa, -0x3f, 0x67, 0x5f, 0xf4, 0x6a, 0x5f, 0x06, 0xd4, 0xbe, 0xec, 0x54, 0xfb, 0xb2, 0x1b, 0xfb, 0xb2, -0x97, 0xfb, 0x32, 0x18, 0x2f, 0x23, 0xfc, 0xc6, 0x7e, 0x0c, 0xe1, 0xdf, 0xc1, 0x09, 0x7d, 0xc1, -0xf5, 0x23, 0x59, 0x39, 0xa9, 0x2f, 0xcf, 0xaa, 0x7d, 0xc9, 0x51, 0xfb, 0x62, 0xbc, 0x41, 0x5f, -0x9e, 0x56, 0xfb, 0xd2, 0xce, 0xba, 0xd4, 0x19, 0x98, 0x9c, 0x34, 0x32, 0x26, 0x0f, 0x6a, 0x98, -0xdc, 0xd6, 0x98, 0xc6, 0x64, 0xec, 0xe3, 0xa9, 0x54, 0x7a, 0x87, 0x8a, 0xb3, 0x4f, 0x4f, 0x9a, -0xcd, 0xf5, 0xca, 0xd3, 0x6a, 0xff, 0x9e, 0x61, 0x7c, 0x7d, 0x16, 0x7b, 0xbc, 0x95, 0x53, 0xfe, -0x56, 0xd9, 0x4e, 0x98, 0x87, 0x78, 0xd9, 0xae, 0xf6, 0xb7, 0x43, 0xc5, 0xcb, 0x4e, 0xec, 0x6f, -0x82, 0xfb, 0xdb, 0x1b, 0x37, 0xe1, 0x6f, 0x9f, 0x8a, 0x97, 0xeb, 0xd5, 0xef, 0xfa, 0xb1, 0xef, -0x9b, 0xf0, 0x6f, 0xcb, 0x84, 0x99, 0xdc, 0x5e, 0xbf, 0xe7, 0xb3, 0xc9, 0xfd, 0x7f, 0x46, 0xe0, -0xe5, 0x1f, 0x73, 0x04, 0x5e, 0x7e, 0x76, 0xdd, 0xfe, 0x2f, 0x31, 0x2b, 0x4b, 0xd4, 0xfe, 0x77, -0x4e, 0xee, 0xff, 0x67, 0xc6, 0x89, 0x33, 0xb9, 0x6d, 0xcb, 0x84, 0xfe, 0xa7, 0xe7, 0xec, 0x6e, -0xb5, 0xff, 0xcf, 0x5e, 0xd3, 0xff, 0x67, 0xd5, 0xfe, 0x6f, 0xe5, 0xfe, 0x6f, 0xc7, 0xfe, 0x8b, -0xf1, 0xed, 0x57, 0x76, 0xaa, 0x73, 0x73, 0x37, 0xc2, 0xa0, 0x53, 0x85, 0x41, 0x42, 0x85, 0x41, -0x2f, 0xc2, 0xa0, 0x8f, 0x61, 0xb0, 0x3e, 0x5e, 0x44, 0xf3, 0x57, 0x85, 0xc1, 0x26, 0xf5, 0xdb, -0x2d, 0xd8, 0xff, 0xa7, 0xf1, 0xef, 0x99, 0x09, 0x30, 0xe8, 0x44, 0xaa, 0x55, 0x3e, 0x09, 0x06, -0x4f, 0x0b, 0x18, 0x7c, 0x62, 0x14, 0x30, 0x18, 0xd5, 0xdf, 0x00, 0x06, 0x4d, 0x02, 0x06, 0x63, -0xdb, 0x27, 0x53, 0xf5, 0x51, 0xfd, 0x44, 0xaa, 0xde, 0x36, 0x3c, 0x99, 0xaa, 0xe3, 0x37, 0x1d, -0xba, 0x53, 0xfc, 0xee, 0xea, 0xff, 0x26, 0x55, 0x9f, 0x3d, 0x81, 0xaa, 0xaf, 0xba, 0x2e, 0x55, -0x0f, 0x5f, 0x43, 0xd5, 0x8b, 0x6e, 0x4c, 0xd5, 0x3f, 0x2d, 0x99, 0x04, 0x87, 0x2d, 0x02, 0x0e, -0x57, 0xc6, 0x05, 0x1c, 0xae, 0x8e, 0x5e, 0x9f, 0xaa, 0x8f, 0x6d, 0x52, 0xe3, 0xce, 0x3f, 0x3d, -0x19, 0x0e, 0x57, 0x47, 0x19, 0x0e, 0x29, 0x9c, 0x6f, 0x3f, 0x36, 0x19, 0x0e, 0xe3, 0x84, 0xfd, -0x57, 0xf9, 0x9d, 0x06, 0x87, 0xbd, 0xd7, 0xc0, 0x61, 0xaf, 0x0a, 0x87, 0x41, 0xc6, 0x87, 0xfd, -0x08, 0x07, 0x41, 0xbb, 0xfe, 0x7f, 0xca, 0x41, 0x84, 0x43, 0x11, 0xd3, 0xae, 0x80, 0x3a, 0xce, -0xbb, 0x95, 0x2d, 0x2a, 0x1c, 0x9e, 0x46, 0x38, 0x3c, 0xc3, 0x70, 0x78, 0x36, 0x7e, 0x0f, 0xd1, -0x6e, 0x15, 0x0e, 0xdb, 0xd5, 0x6f, 0x07, 0x10, 0x06, 0x3b, 0xf1, 0x6f, 0xf7, 0x04, 0x38, 0x20, -0x57, 0x7e, 0xd5, 0x39, 0x09, 0x0e, 0x9b, 0x04, 0x1c, 0x3e, 0xfe, 0x44, 0xc0, 0xe1, 0x8f, 0x1f, -0x5d, 0x1f, 0x0e, 0xe3, 0xbd, 0x19, 0x71, 0x61, 0x28, 0x1a, 0x92, 0xbd, 0xfa, 0x3c, 0x9c, 0x9e, -0x11, 0x82, 0xf3, 0x78, 0x7f, 0x16, 0xef, 0xcf, 0xe2, 0xfd, 0x69, 0xbc, 0x96, 0x66, 0x9c, 0xcf, -0x9d, 0x87, 0x9d, 0x99, 0x4f, 0xc6, 0xfa, 0xf4, 0xd3, 0x8c, 0x4e, 0x18, 0xfb, 0x8b, 0x01, 0xdd, -0x1a, 0xba, 0xce, 0x29, 0xd1, 0xed, 0xe3, 0xeb, 0x80, 0x3e, 0x87, 0xae, 0x77, 0x95, 0xe9, 0x23, -0x7c, 0xdd, 0xad, 0x7f, 0x8a, 0xae, 0xfe, 0x2a, 0xfd, 0x69, 0xbe, 0x0e, 0x1a, 0xc2, 0x74, 0xad, -0x2e, 0x33, 0x6c, 0xe4, 0xeb, 0x56, 0xc3, 0x71, 0xba, 0x06, 0x0a, 0xb2, 0xed, 0xe2, 0x7d, 0x76, -0xb3, 0x78, 0x9f, 0xbd, 0x43, 0xbc, 0xcf, 0x1e, 0x15, 0xef, 0x8d, 0x01, 0xba, 0xd6, 0xe8, 0x75, -0xfc, 0x7d, 0xcd, 0x23, 0x3a, 0xfe, 0x3e, 0x98, 0xa7, 0xe3, 0xef, 0x83, 0xab, 0xf5, 0xfc, 0x7d, -0xf0, 0xb8, 0x9e, 0xbf, 0x9f, 0xdb, 0xac, 0xe7, 0xef, 0xe7, 0x8e, 0x1a, 0x0a, 0xe8, 0x5a, 0xdb, -0x6b, 0x58, 0x4a, 0xd7, 0x79, 0x66, 0xc3, 0x36, 0xbe, 0x6e, 0x32, 0x7c, 0x24, 0xde, 0x67, 0x57, -0x8a, 0xf7, 0xd9, 0xdd, 0xe2, 0x7d, 0xf6, 0x01, 0xf1, 0xde, 0x98, 0xc7, 0xf5, 0xf6, 0x67, 0xff, -0x98, 0xae, 0xa1, 0x22, 0xfd, 0x1c, 0xed, 0x34, 0x51, 0xf3, 0x67, 0x24, 0xe4, 0xa9, 0xb1, 0x83, -0x93, 0x25, 0xac, 0xb1, 0xd7, 0x34, 0xfe, 0x4b, 0xb3, 0x1c, 0xe1, 0xf8, 0x2d, 0xab, 0xc0, 0x96, -0xc9, 0x7f, 0x5d, 0x2b, 0xa3, 0x5d, 0x37, 0xff, 0x33, 0xd7, 0xc9, 0x3f, 0xac, 0xda, 0xc8, 0x48, -0x6a, 0x1c, 0x25, 0x9b, 0x53, 0x7f, 0xf6, 0x51, 0xe6, 0x15, 0x0d, 0x1c, 0xad, 0xcf, 0xa6, 0x79, -0x2e, 0x97, 0x22, 0x87, 0x5f, 0xb5, 0xf8, 0x4c, 0x20, 0xf4, 0xb2, 0x6b, 0xbb, 0xdb, 0xa6, 0xec, -0xef, 0x3a, 0xf3, 0x8c, 0xde, 0x0f, 0x3a, 0xcd, 0x72, 0x52, 0xd8, 0xd9, 0x90, 0x1e, 0x8e, 0xb4, -0x9c, 0x4f, 0x36, 0xdd, 0xe9, 0x38, 0x5c, 0x4a, 0x01, 0xf2, 0xee, 0x25, 0x0d, 0x1b, 0x58, 0x03, -0xa6, 0x00, 0xe5, 0x9b, 0x52, 0xf2, 0xfb, 0x9a, 0xe6, 0x40, 0xe9, 0x54, 0x17, 0xff, 0x4a, 0xc3, -0xdb, 0xa0, 0x3c, 0x5a, 0x24, 0xd7, 0x4a, 0x77, 0xec, 0x86, 0x98, 0x85, 0xd7, 0xa7, 0x4d, 0x52, -0x33, 0x94, 0x07, 0x06, 0x76, 0x03, 0xfb, 0x68, 0x7e, 0x54, 0x36, 0xfd, 0xf0, 0x8d, 0xd5, 0x30, -0x7f, 0x54, 0xc9, 0xc1, 0x52, 0x2a, 0xb1, 0xd4, 0xf2, 0x81, 0x9e, 0xa5, 0xc3, 0xd7, 0x94, 0x46, -0x1e, 0x49, 0xe8, 0xed, 0x1c, 0xae, 0x31, 0x2f, 0x7d, 0x2a, 0x8b, 0xe9, 0x73, 0x02, 0xa4, 0x6b, -0xd4, 0x0c, 0xc1, 0xeb, 0xbc, 0x0b, 0xe2, 0xbb, 0x90, 0x1a, 0x39, 0x46, 0xf2, 0x86, 0xa1, 0x90, -0xf4, 0x0b, 0x64, 0x18, 0x6f, 0x11, 0xde, 0xcf, 0xf9, 0xdc, 0x7a, 0x7e, 0x1c, 0x64, 0x73, 0xbb, -0x4e, 0xea, 0xa6, 0x78, 0x8e, 0x91, 0x44, 0x43, 0xdf, 0x8e, 0x44, 0xf4, 0xf2, 0x7b, 0x7d, 0xd5, -0xbf, 0x27, 0xcf, 0xde, 0x52, 0x82, 0x52, 0x85, 0x57, 0xf3, 0x0a, 0x82, 0x88, 0x84, 0x25, 0x3a, -0xf0, 0xcf, 0x89, 0x7f, 0x2e, 0x29, 0xc2, 0x96, 0x08, 0x5b, 0xa1, 0x74, 0x99, 0x89, 0x3c, 0xb5, -0x47, 0xb6, 0x81, 0x84, 0x9c, 0x81, 0xb4, 0x73, 0x2b, 0x54, 0x2e, 0xf3, 0x90, 0xb5, 0x47, 0x44, -0x44, 0x00, 0xcf, 0x38, 0x65, 0xa5, 0x48, 0x09, 0x47, 0xba, 0x28, 0x16, 0x73, 0xf5, 0x65, 0xac, -0x41, 0x91, 0x12, 0x32, 0xe9, 0x9d, 0x62, 0x39, 0xf6, 0xc0, 0x5b, 0xfb, 0x9c, 0xcb, 0xa1, 0xe4, -0xed, 0xd7, 0x5d, 0xdf, 0xdb, 0x02, 0xf6, 0x9a, 0xb7, 0x5e, 0xc5, 0xa7, 0xf2, 0xb7, 0x5f, 0x77, -0xe2, 0x13, 0x9f, 0x73, 0x2e, 0x87, 0x20, 0xf2, 0x9b, 0x76, 0xa1, 0xe7, 0x13, 0x6b, 0x60, 0xf9, -0xc6, 0x25, 0x15, 0x83, 0x69, 0x60, 0x1b, 0x18, 0x96, 0xf9, 0x29, 0x96, 0xf2, 0xd2, 0x4a, 0x7c, -0xb6, 0xe0, 0x9d, 0x79, 0x99, 0x0f, 0x7f, 0x2d, 0x4b, 0xdd, 0x9c, 0x8b, 0x63, 0x2c, 0xb1, 0xfd, -0x4d, 0xae, 0x9c, 0x37, 0xb0, 0x1d, 0xa5, 0x3e, 0x23, 0xa7, 0x3b, 0x25, 0x5b, 0xf4, 0xb2, 0xac, -0xde, 0xb3, 0x3d, 0xa4, 0x15, 0x7f, 0x9d, 0xb1, 0x5c, 0xfc, 0x75, 0xc5, 0x4c, 0xd8, 0x1f, 0x5b, -0x87, 0x4e, 0xd6, 0x07, 0x82, 0x78, 0x27, 0xb4, 0xb0, 0x47, 0xc9, 0xa2, 0x87, 0xbc, 0xa2, 0x87, -0x83, 0xb1, 0x9c, 0x77, 0x1f, 0xe9, 0xed, 0xb9, 0x35, 0xa0, 0x24, 0xbf, 0xdd, 0x27, 0x99, 0x10, -0xb2, 0x85, 0xbc, 0xae, 0x0e, 0xb3, 0xfd, 0x78, 0xab, 0x88, 0x59, 0x4c, 0x1e, 0x31, 0xc8, 0xce, -0x50, 0x3d, 0x1d, 0x77, 0xab, 0xa7, 0xc8, 0xc4, 0xc3, 0x24, 0x25, 0x17, 0xc8, 0x74, 0x5e, 0xeb, -0xcd, 0x5a, 0x38, 0x3a, 0x56, 0x58, 0xbf, 0x99, 0x53, 0xaf, 0xaa, 0x67, 0xcb, 0x2d, 0xe4, 0xff, -0xa4, 0x7e, 0x33, 0x9d, 0xbf, 0xb6, 0xd3, 0xaa, 0x7c, 0x61, 0xcd, 0xf0, 0xf1, 0xc7, 0xe4, 0x06, -0x3b, 0x7e, 0x67, 0x77, 0x41, 0xff, 0xe2, 0xae, 0xe2, 0x6a, 0xa6, 0x9d, 0x23, 0xb8, 0xea, 0x1e, -0x93, 0x1e, 0x60, 0x0b, 0xec, 0xa9, 0x88, 0xa9, 0x05, 0xf5, 0xe4, 0xbd, 0x30, 0xbf, 0x78, 0x39, -0xf4, 0xe2, 0xfb, 0x7a, 0x7c, 0x1f, 0x40, 0xae, 0x50, 0x47, 0x5c, 0xa1, 0xd4, 0xc2, 0xb9, 0xcc, -0x22, 0x97, 0x1a, 0x6d, 0x14, 0xf3, 0xee, 0x7c, 0x41, 0xb9, 0xba, 0xec, 0xa7, 0xf6, 0xa0, 0x34, -0x13, 0x22, 0x6d, 0x37, 0x1f, 0xd9, 0x0a, 0x7d, 0x5c, 0x76, 0x0d, 0xae, 0x35, 0xad, 0xc8, 0x4b, -0xb6, 0x2a, 0x27, 0x91, 0x92, 0x9f, 0xc2, 0xeb, 0x19, 0xfc, 0x3b, 0x3b, 0xbb, 0x15, 0x0a, 0x94, -0x73, 0xf8, 0x5b, 0xa4, 0x9c, 0x27, 0x8e, 0x53, 0x5a, 0xc1, 0x7e, 0xc8, 0x87, 0xbd, 0xd3, 0x44, -0xb9, 0x0d, 0x1b, 0x70, 0x85, 0xad, 0x42, 0x0e, 0xed, 0xaf, 0x33, 0xac, 0xd5, 0x68, 0x17, 0xa0, -0x19, 0x4e, 0xcf, 0x1b, 0x4d, 0xda, 0x65, 0x33, 0x52, 0xeb, 0xe5, 0xca, 0x31, 0xf2, 0x2c, 0x2c, -0x05, 0x1c, 0x96, 0xe8, 0xe5, 0xf9, 0xe7, 0xc1, 0x4e, 0x1e, 0x98, 0xff, 0xf6, 0x58, 0x78, 0xa7, -0x6b, 0x4e, 0x2c, 0x47, 0xfa, 0x9e, 0x0b, 0xc8, 0x0f, 0xad, 0x72, 0xa0, 0xb1, 0x3b, 0xee, 0x18, -0xe8, 0x8e, 0x9e, 0xb3, 0x37, 0xa7, 0xbd, 0xf3, 0x90, 0xee, 0x82, 0xb0, 0x48, 0x43, 0x38, 0x93, -0x67, 0x1e, 0xd7, 0x3c, 0xfc, 0xde, 0x85, 0x35, 0x4c, 0xd2, 0xb2, 0x70, 0xc6, 0x40, 0x67, 0x9c, -0xcf, 0xe5, 0xba, 0xeb, 0xda, 0x61, 0x35, 0xac, 0xb1, 0x1f, 0x7f, 0x44, 0xfa, 0x6b, 0x4f, 0x90, -0xa4, 0x3a, 0x69, 0xee, 0xad, 0x09, 0xd7, 0x1c, 0xb2, 0xbb, 0x54, 0xeb, 0x38, 0xcb, 0xbe, 0xc2, -0x8e, 0x2e, 0x38, 0x0f, 0xbd, 0x28, 0x63, 0x2f, 0x41, 0x79, 0x9a, 0xf2, 0x1d, 0x75, 0x0f, 0xb2, -0x6d, 0xa7, 0x3e, 0xd2, 0xfd, 0x2f, 0x49, 0x2c, 0xe9, 0x5c, 0xf4, 0x0c, 0xdb, 0xce, 0xfe, 0x9c, -0x24, 0x3b, 0xd6, 0x01, 0xbf, 0x24, 0xd6, 0x3a, 0xd7, 0x02, 0xc2, 0xca, 0x05, 0xa3, 0x9f, 0x39, -0x9c, 0x55, 0xb4, 0x4a, 0xba, 0xa6, 0x19, 0xe9, 0x4c, 0x70, 0xd0, 0x5b, 0x4c, 0x3e, 0x40, 0xd8, -0x6e, 0xb1, 0xbb, 0xfe, 0x07, 0x1e, 0x4d, 0x77, 0x36, 0x24, 0xe9, 0x87, 0xbb, 0x71, 0x66, 0x74, -0xbf, 0xd7, 0x47, 0x9c, 0x86, 0x31, 0x81, 0x92, 0xef, 0x6e, 0xc4, 0x84, 0x5c, 0xd2, 0x74, 0x9f, -0x59, 0x0f, 0x07, 0xe3, 0xba, 0x59, 0x7e, 0xf0, 0x49, 0xc1, 0x9a, 0x4b, 0xe0, 0x4a, 0x6b, 0xc5, -0x46, 0xba, 0x1b, 0xd7, 0xb3, 0x0d, 0xad, 0x75, 0x47, 0x77, 0xf4, 0xd9, 0xb8, 0x4e, 0x96, 0x34, -0xc8, 0xce, 0x1d, 0x1d, 0x1d, 0x4a, 0x41, 0x76, 0xa3, 0x06, 0xd9, 0x80, 0x3f, 0x34, 0xa8, 0x7a, -0xd3, 0xae, 0x4a, 0x7b, 0xaa, 0x23, 0xba, 0x28, 0x79, 0xa1, 0x90, 0x74, 0x22, 0x23, 0xfe, 0x3b, -0xfd, 0x48, 0xd3, 0xf4, 0x77, 0x41, 0x20, 0xa6, 0xd1, 0xc6, 0x89, 0x91, 0x1a, 0x9c, 0xe0, 0x48, -0xc4, 0x4a, 0x52, 0x34, 0x14, 0x39, 0xaa, 0x12, 0x11, 0xf1, 0x03, 0xf3, 0xd2, 0x3d, 0xb6, 0x5f, -0x11, 0x11, 0x46, 0x2a, 0x0a, 0x39, 0x36, 0x3b, 0xcd, 0x17, 0xbf, 0xf0, 0x6f, 0xc7, 0xd2, 0x82, -0x6a, 0xe9, 0x49, 0xb6, 0x28, 0xaa, 0x06, 0x87, 0xdb, 0xb5, 0xe0, 0x9d, 0xf3, 0x38, 0x0b, 0x58, -0x1b, 0x7b, 0x74, 0xb3, 0xe4, 0x81, 0x08, 0xc7, 0xca, 0x12, 0x92, 0x28, 0x52, 0x46, 0x6f, 0x00, -0xa9, 0xd5, 0x02, 0x9c, 0x71, 0x61, 0xb0, 0x09, 0x5d, 0x93, 0x42, 0x73, 0xfd, 0x61, 0x61, 0xbf, -0x2b, 0x55, 0xd8, 0xd5, 0xb9, 0x25, 0x91, 0x0d, 0xef, 0x03, 0x90, 0x6f, 0xf7, 0x00, 0xf9, 0x75, -0xca, 0x73, 0xb5, 0x00, 0xc5, 0x0c, 0x30, 0xf4, 0xaf, 0x6f, 0xcf, 0xdd, 0x99, 0x58, 0xf6, 0xe0, -0xdc, 0x8f, 0xb7, 0x42, 0x86, 0x96, 0x81, 0x0b, 0xe2, 0xea, 0xff, 0x22, 0xbe, 0xf7, 0xf1, 0x7d, -0x23, 0xff, 0x46, 0xd9, 0x76, 0x1b, 0x69, 0xac, 0xdc, 0x48, 0x77, 0x81, 0x7e, 0xb9, 0x81, 0xb4, -0x83, 0xbd, 0x3a, 0x8e, 0xde, 0xde, 0x02, 0x46, 0xf6, 0xd3, 0xd8, 0xa1, 0x79, 0x47, 0x8a, 0x19, -0xe2, 0xd9, 0xbc, 0xff, 0x94, 0x90, 0x5d, 0x94, 0xdf, 0x8e, 0x73, 0x40, 0x7a, 0x0e, 0x72, 0xe4, -0x02, 0xb5, 0x9c, 0x88, 0x6c, 0x21, 0x2f, 0x87, 0x38, 0x23, 0x1f, 0x20, 0x1d, 0x15, 0x8e, 0x7e, -0x72, 0xb1, 0xd0, 0x20, 0x7c, 0xca, 0x90, 0xae, 0x2b, 0xad, 0x29, 0x38, 0xcb, 0xdd, 0xa4, 0x37, -0x41, 0xba, 0xd5, 0xc4, 0x47, 0xad, 0xd9, 0x47, 0x76, 0xe6, 0x57, 0x4f, 0x8b, 0x88, 0x58, 0x5a, -0x2e, 0xbb, 0xc8, 0x65, 0xa6, 0x9e, 0xc5, 0xcc, 0xde, 0x6a, 0x6c, 0x95, 0x9f, 0xe3, 0x7f, 0x1d, -0x63, 0x6a, 0xb3, 0x49, 0x8b, 0x43, 0xe0, 0x6a, 0x65, 0x2f, 0xe9, 0x4c, 0x65, 0x70, 0xf6, 0x3b, -0x51, 0x02, 0x6e, 0x86, 0x3c, 0x94, 0x7f, 0x91, 0xca, 0xd8, 0xa1, 0x81, 0xe8, 0xc5, 0x56, 0xe4, -0x99, 0xb6, 0xb7, 0xe5, 0x1c, 0x49, 0xe0, 0x3d, 0xf3, 0x50, 0x4c, 0x17, 0x76, 0xe3, 0xdd, 0x5e, -0x92, 0xb7, 0x48, 0xfa, 0x25, 0xae, 0x93, 0xa4, 0x2d, 0xe2, 0xcc, 0x88, 0xdb, 0x6c, 0xd3, 0x63, -0x5e, 0xf2, 0x9d, 0x7e, 0x82, 0xa0, 0x8d, 0xe5, 0x1a, 0x94, 0xcb, 0xf8, 0x74, 0x05, 0xff, 0xae, -0x22, 0x35, 0xf8, 0x71, 0xa0, 0x36, 0x30, 0x37, 0x10, 0xfc, 0xe1, 0x1b, 0xf8, 0xbc, 0x39, 0x30, -0xef, 0x7f, 0x1d, 0x5a, 0x0d, 0x78, 0xf7, 0x14, 0xd9, 0x7c, 0xd8, 0x49, 0xb3, 0xc4, 0xd2, 0xff, -0x1c, 0xc8, 0x88, 0xad, 0xe4, 0x71, 0x7f, 0x47, 0x5e, 0x15, 0x4c, 0xe7, 0xbb, 0xad, 0x19, 0xa3, -0xf2, 0x14, 0x94, 0xe1, 0x68, 0x3c, 0xad, 0xfe, 0xef, 0xc4, 0xbf, 0x6e, 0xfd, 0x16, 0xf0, 0xc3, -0x23, 0xd0, 0x8f, 0xf7, 0x25, 0x6a, 0x7a, 0x45, 0xd5, 0x72, 0x30, 0xca, 0x2b, 0xe7, 0xb8, 0xf0, -0x77, 0x79, 0xa7, 0x4e, 0x6e, 0x9a, 0x8d, 0x14, 0x5b, 0xf9, 0xb1, 0xbc, 0x84, 0xa0, 0x62, 0x9f, -0x09, 0x7d, 0xf7, 0x51, 0xff, 0x4e, 0x11, 0xaf, 0x5d, 0x7d, 0x51, 0xb9, 0x52, 0x1c, 0x52, 0xce, -0xe1, 0xf5, 0x2a, 0x5e, 0x2f, 0x10, 0xd5, 0xe3, 0x78, 0x77, 0x66, 0x8d, 0x3e, 0x85, 0xfd, 0x51, -0x87, 0x0c, 0xfa, 0x22, 0x5c, 0x5d, 0x0c, 0x72, 0x01, 0xf7, 0x69, 0xb3, 0x9c, 0x87, 0x78, 0x69, -0x90, 0x8d, 0xfc, 0xf4, 0x14, 0xd1, 0xfc, 0x35, 0x3a, 0xa4, 0xc0, 0xcf, 0x50, 0x4c, 0x50, 0xe4, -0x1b, 0x9f, 0x96, 0xfc, 0x22, 0xfa, 0x80, 0xe2, 0x66, 0xfb, 0x88, 0xb6, 0xf0, 0xdc, 0x68, 0x91, -0xaa, 0x3b, 0x23, 0x13, 0x0c, 0x99, 0x76, 0xef, 0x15, 0x9a, 0xa8, 0x7f, 0x6c, 0x60, 0x3c, 0xa9, -0x8d, 0x3a, 0xb4, 0x1c, 0xcc, 0xd5, 0x0e, 0x72, 0x9e, 0xfd, 0x6a, 0x1e, 0xde, 0xb5, 0x2d, 0xac, -0x02, 0x5d, 0x18, 0xa1, 0x18, 0xe5, 0x99, 0x11, 0x9f, 0x3e, 0xbc, 0x95, 0x4b, 0x1b, 0xe2, 0x9c, -0x07, 0xd5, 0x9c, 0xa4, 0x41, 0x64, 0x59, 0xa3, 0x0b, 0xcf, 0x8b, 0xe5, 0x6b, 0xe5, 0x31, 0x37, -0x3c, 0xdc, 0xa6, 0xc3, 0x3e, 0x8f, 0xc8, 0x06, 0x5f, 0x6e, 0x2c, 0x0f, 0xb1, 0xf2, 0x0a, 0xd2, -0xbb, 0x70, 0x38, 0x18, 0x05, 0x5d, 0xae, 0x0c, 0x3a, 0xbf, 0x34, 0x0b, 0x53, 0xee, 0xc1, 0x76, -0xda, 0xd5, 0xf5, 0x40, 0xd6, 0x5a, 0x89, 0x18, 0xd5, 0xde, 0x20, 0xe2, 0x0e, 0xed, 0xf9, 0xe4, -0x59, 0xb5, 0xad, 0xc0, 0x11, 0x5c, 0xaf, 0x69, 0x6d, 0x9b, 0x19, 0xd7, 0x83, 0x76, 0x2f, 0xc1, -0xe2, 0x0a, 0xe6, 0x5e, 0xcd, 0xbe, 0xf6, 0x9a, 0xb0, 0xb6, 0xcd, 0x31, 0x1f, 0xb7, 0x79, 0xea, -0x30, 0xad, 0x17, 0x7e, 0x84, 0x7d, 0xab, 0xb2, 0x59, 0x39, 0x33, 0x19, 0xda, 0xe4, 0x83, 0xa9, -0x61, 0x43, 0xb4, 0x94, 0x7c, 0xaf, 0xee, 0x12, 0x36, 0x26, 0x3f, 0x4d, 0xaf, 0x73, 0x88, 0x8b, -0xd8, 0x63, 0xb6, 0xc4, 0xda, 0xf3, 0x49, 0x01, 0xb7, 0x24, 0x18, 0xad, 0x77, 0x16, 0x2b, 0x49, -0x39, 0x84, 0x77, 0x41, 0x75, 0x9d, 0xa4, 0x7a, 0x6e, 0xc6, 0x7a, 0x3a, 0x10, 0x22, 0xb3, 0x94, -0xab, 0xf5, 0x7b, 0xfe, 0x70, 0x89, 0xd7, 0x2e, 0xb2, 0xbc, 0xa7, 0x38, 0x64, 0x39, 0x88, 0x59, -0x7a, 0xa4, 0xd2, 0x61, 0x39, 0x47, 0xa5, 0x30, 0x03, 0xb2, 0x49, 0xbd, 0x23, 0x19, 0x74, 0x3b, -0xb6, 0xed, 0xaa, 0xb2, 0x33, 0x85, 0xc1, 0x27, 0xb8, 0xdc, 0xad, 0x58, 0xd6, 0x53, 0x24, 0x15, -0xfc, 0x21, 0xce, 0x35, 0xcf, 0x8b, 0x99, 0xed, 0xb3, 0x94, 0x67, 0x67, 0x26, 0x6c, 0x61, 0x55, -0x4e, 0x4c, 0x2a, 0x2d, 0x99, 0xf3, 0xf5, 0x46, 0x33, 0xf1, 0x0f, 0xf5, 0x3c, 0x13, 0x87, 0x58, -0xef, 0x5a, 0x44, 0x04, 0xa1, 0x9a, 0x29, 0xba, 0x40, 0x09, 0xae, 0x11, 0xad, 0xca, 0x21, 0x41, -0x1d, 0xe3, 0x0a, 0x42, 0xe3, 0x28, 0xfe, 0x9d, 0x74, 0xcc, 0x02, 0xf3, 0x08, 0xf2, 0x01, 0xb8, -0x36, 0x1f, 0x2a, 0x0e, 0x2b, 0x57, 0x9d, 0x0b, 0xa9, 0x6d, 0xb7, 0x63, 0xb9, 0x44, 0x29, 0xe6, -0x8e, 0xfe, 0xc1, 0x23, 0x2f, 0x96, 0xfc, 0x76, 0x8b, 0xb1, 0x8b, 0xd8, 0xd3, 0x0e, 0xc3, 0xee, -0xae, 0x65, 0xc1, 0x23, 0x5d, 0xa5, 0xb3, 0x6d, 0x38, 0x67, 0x2c, 0x7a, 0xc8, 0x01, 0x2b, 0xd3, -0xb0, 0xd2, 0xe2, 0x4e, 0x66, 0x5f, 0x8f, 0xc8, 0x4e, 0xbe, 0xd3, 0x29, 0x47, 0xe5, 0x42, 0xbe, -0xd3, 0x2b, 0xc7, 0xe5, 0x3c, 0xbe, 0xcb, 0x52, 0x4e, 0x22, 0x2c, 0xfc, 0xdc, 0x6f, 0xb2, 0xeb, -0x9f, 0x46, 0xab, 0x03, 0x62, 0xf2, 0x33, 0x19, 0x11, 0x32, 0xef, 0xe5, 0x36, 0xee, 0xf9, 0xa4, -0x48, 0xe5, 0x70, 0x49, 0x4e, 0x3f, 0x80, 0xd2, 0x63, 0xad, 0xea, 0x37, 0xeb, 0x40, 0xdd, 0xc5, -0xba, 0x42, 0xb1, 0xa2, 0x33, 0xb7, 0x4d, 0x7a, 0x54, 0x69, 0x0d, 0xb9, 0x7a, 0x4f, 0xda, 0xf2, -0xcc, 0x23, 0xa9, 0xd6, 0x67, 0xff, 0x71, 0x0e, 0xf2, 0x32, 0xa2, 0x69, 0xde, 0xeb, 0x28, 0x06, -0x03, 0xfb, 0x28, 0x28, 0x5c, 0x0d, 0xb5, 0x59, 0xaf, 0x75, 0x93, 0x9f, 0x76, 0x05, 0x4e, 0x3d, -0x12, 0xe9, 0xd9, 0x85, 0x7c, 0xf2, 0x32, 0x57, 0xa4, 0x7b, 0x35, 0x92, 0x29, 0xd2, 0xa3, 0x67, -0x1b, 0x60, 0xbd, 0xf7, 0x26, 0x75, 0xb7, 0xd9, 0x1f, 0x2d, 0x54, 0xf3, 0x9c, 0x8b, 0x74, 0xcb, -0x26, 0x5c, 0x9f, 0x83, 0xf3, 0x47, 0xaf, 0x14, 0xed, 0x44, 0x5a, 0xbd, 0xec, 0x9c, 0xec, 0x71, -0xe9, 0xdf, 0x5d, 0xdf, 0xd7, 0x63, 0x5f, 0x81, 0x50, 0x0f, 0x1c, 0xde, 0xe7, 0x42, 0xfe, 0xf9, -0x9d, 0x21, 0xfb, 0xce, 0x3e, 0xa0, 0x58, 0x13, 0x52, 0xcd, 0xe1, 0x57, 0x9d, 0xc8, 0xa7, 0xbf, -0x3d, 0x64, 0x7f, 0xa9, 0x0f, 0xe4, 0x5c, 0x69, 0x05, 0x51, 0x6a, 0x94, 0xef, 0x9e, 0x08, 0xf4, -0x77, 0x28, 0x69, 0x6e, 0xfe, 0xe3, 0xfb, 0x54, 0x1b, 0xe8, 0x42, 0xc1, 0xb1, 0x90, 0xd6, 0x22, -0xd9, 0x56, 0x12, 0xb7, 0x4b, 0xfd, 0x70, 0x16, 0x93, 0x27, 0xa5, 0x5a, 0xfd, 0xfe, 0x9e, 0xcc, -0x1e, 0x61, 0x0b, 0x4a, 0x9b, 0xc2, 0xfa, 0x1e, 0xee, 0xc7, 0xa3, 0xd8, 0xc2, 0xca, 0xa6, 0x2a, -0x6c, 0x77, 0x16, 0xf2, 0x04, 0xc8, 0xa5, 0x7e, 0xdc, 0xa9, 0x72, 0xa9, 0x2e, 0x6e, 0x1b, 0xb6, -0x64, 0x52, 0xdb, 0x44, 0x6b, 0x4b, 0x44, 0x4a, 0x3b, 0xad, 0x99, 0x81, 0x74, 0x8b, 0x3e, 0x3a, -0x88, 0x63, 0x14, 0x88, 0x9a, 0x33, 0x5b, 0xec, 0xd3, 0x0b, 0xae, 0x27, 0xe0, 0xd7, 0xb8, 0x4c, -0xe1, 0xc9, 0x82, 0xe8, 0x3e, 0x79, 0x0c, 0xc1, 0xbc, 0xbc, 0xb6, 0x3a, 0xea, 0xfe, 0xe3, 0x03, -0xc8, 0xb3, 0x07, 0x1d, 0x33, 0xc1, 0x80, 0xb4, 0xf8, 0x02, 0xc5, 0x9a, 0xd1, 0x28, 0x36, 0xca, -0x23, 0x61, 0xa4, 0x12, 0x03, 0xc8, 0x99, 0xd7, 0xc7, 0x16, 0xb3, 0xd4, 0x7c, 0x01, 0x57, 0x1f, -0xd9, 0x0b, 0x0b, 0x47, 0x3f, 0x7a, 0x0a, 0x39, 0x50, 0x4a, 0xb9, 0x4c, 0x25, 0x09, 0x3a, 0xe0, -0x25, 0x7f, 0xc1, 0xf5, 0x82, 0x0b, 0x95, 0x82, 0xec, 0x63, 0x65, 0x5a, 0xac, 0x10, 0xe7, 0xcd, -0x65, 0xfc, 0xbb, 0x40, 0xef, 0xf0, 0x2f, 0x2c, 0x6c, 0x9d, 0xff, 0x40, 0xf1, 0xbc, 0x6d, 0x08, -0x95, 0x70, 0x94, 0x64, 0x81, 0x7a, 0x99, 0xa8, 0x11, 0xd9, 0xd6, 0x6e, 0xe2, 0x52, 0x93, 0x54, -0x6a, 0x7c, 0x1a, 0x51, 0x38, 0x11, 0x03, 0xf3, 0x23, 0x37, 0xa5, 0x74, 0x4c, 0x3b, 0x46, 0x34, -0x2f, 0xc8, 0xf4, 0x23, 0x89, 0x1c, 0xe6, 0x0b, 0xca, 0x39, 0x9c, 0x3f, 0xe1, 0x9a, 0x8b, 0xca, -0x29, 0xe6, 0x01, 0x9f, 0x4a, 0x9d, 0xc0, 0x8c, 0x72, 0x39, 0x57, 0xe8, 0x2b, 0x6e, 0xb3, 0x7e, -0xe1, 0xe8, 0xef, 0xcf, 0xaa, 0x6d, 0xbe, 0x3a, 0xa1, 0xcd, 0x7a, 0x6e, 0x71, 0x61, 0xc9, 0x0b, -0x14, 0x11, 0x56, 0xb9, 0xc2, 0x6d, 0xd4, 0x8b, 0x56, 0x5e, 0x91, 0xd9, 0xf3, 0x15, 0xf6, 0x80, -0xe2, 0x36, 0x23, 0x37, 0x7d, 0x05, 0xe7, 0xfc, 0x85, 0x1d, 0x0f, 0xdf, 0x4f, 0x96, 0x2d, 0x61, -0xe4, 0xa6, 0x22, 0x2e, 0x6a, 0x95, 0xf9, 0xd8, 0x76, 0xe8, 0xc5, 0x56, 0x31, 0x17, 0x3c, 0x7b, -0x3e, 0xae, 0x80, 0xad, 0xca, 0xf1, 0x45, 0xd5, 0xb3, 0xab, 0x95, 0x13, 0x8b, 0xfc, 0xb3, 0x71, -0x06, 0xdb, 0x97, 0xab, 0x5c, 0x2f, 0x45, 0x61, 0xe5, 0x55, 0xc5, 0x4e, 0xad, 0xc0, 0x72, 0x07, -0x1e, 0xbe, 0x3f, 0x68, 0x27, 0xda, 0x3b, 0x47, 0x2b, 0xd1, 0x29, 0x4a, 0x7c, 0x3e, 0x5d, 0x22, -0x96, 0x76, 0x0c, 0x4b, 0x55, 0x4b, 0xbc, 0x7e, 0x79, 0x33, 0x02, 0x50, 0x8f, 0xb2, 0x54, 0x98, -0x2c, 0x59, 0x54, 0x0f, 0x1d, 0x3b, 0x69, 0x06, 0xb2, 0x26, 0xbc, 0x8e, 0xac, 0x13, 0xf8, 0xf7, -0x9b, 0xa4, 0x0f, 0x7f, 0x57, 0xca, 0xa7, 0x09, 0xc1, 0xc1, 0x83, 0x58, 0x30, 0xbb, 0x19, 0xcc, -0xca, 0x76, 0xfc, 0xb5, 0x2a, 0x3f, 0xaf, 0x70, 0x43, 0x6e, 0xa5, 0x1b, 0xf2, 0x35, 0x4c, 0x40, -0xbe, 0xc0, 0xa2, 0x0c, 0x20, 0xf6, 0x19, 0x4a, 0x67, 0x29, 0x3f, 0xdf, 0xd1, 0xaa, 0x6c, 0x5f, -0x65, 0x2d, 0xa7, 0xf8, 0x75, 0x35, 0xb3, 0x3b, 0x15, 0x45, 0xf9, 0x29, 0xff, 0x3e, 0x2b, 0xe7, -0xe2, 0xd7, 0x36, 0xe5, 0x59, 0x5e, 0x69, 0x7f, 0x1a, 0xa8, 0xd9, 0x13, 0x5c, 0x65, 0x2d, 0x73, -0x43, 0xc1, 0xa2, 0x00, 0xbf, 0xdf, 0xc6, 0xbf, 0x5b, 0x39, 0x57, 0x81, 0xb2, 0x95, 0x73, 0x6d, -0x0b, 0x04, 0x8a, 0x17, 0x2b, 0xbb, 0x11, 0x12, 0x03, 0x9e, 0xbb, 0xbd, 0x46, 0xc2, 0x25, 0x1c, -0xa9, 0x84, 0xd7, 0x4c, 0xbe, 0x95, 0x1f, 0x39, 0x46, 0x11, 0x07, 0x38, 0x55, 0x1b, 0xc3, 0x04, -0xc5, 0xf5, 0xb3, 0xcf, 0xab, 0x7f, 0x82, 0xf0, 0x0b, 0xd7, 0x14, 0x1c, 0x13, 0xbd, 0x55, 0xac, -0x64, 0x7a, 0x33, 0xe7, 0x4c, 0x8d, 0xeb, 0xbd, 0x02, 0x17, 0x0d, 0xa9, 0x32, 0x92, 0x93, 0xde, -0x58, 0xe8, 0x0d, 0xe3, 0x69, 0x33, 0x98, 0xd8, 0x8e, 0x77, 0x3a, 0xae, 0x84, 0xaf, 0xfd, 0xdb, -0x45, 0x65, 0x37, 0xd9, 0xae, 0x62, 0x9b, 0x76, 0xfb, 0x70, 0x46, 0x98, 0xfd, 0xa0, 0x8f, 0xf9, -0x97, 0xe6, 0xe0, 0x55, 0x87, 0xef, 0x7f, 0x2a, 0x5b, 0xf0, 0x2e, 0x2b, 0x16, 0xc1, 0x5f, 0x03, -0x3e, 0x6f, 0x96, 0xdb, 0xc9, 0x92, 0x0b, 0x79, 0xdd, 0x82, 0x52, 0x84, 0x48, 0x29, 0x52, 0x72, -0xec, 0x33, 0x41, 0x27, 0x17, 0xa1, 0x68, 0x76, 0x60, 0x9d, 0x6b, 0xec, 0x72, 0xed, 0x9f, 0xcb, -0xd3, 0x79, 0x9b, 0x5c, 0xff, 0x67, 0xcb, 0x71, 0x1c, 0xdf, 0x86, 0x18, 0x31, 0x57, 0xd9, 0x2b, -0xbb, 0xff, 0x6c, 0x79, 0x33, 0x4e, 0x50, 0xde, 0x5a, 0xe4, 0xd3, 0x10, 0xa6, 0xca, 0xe0, 0xec, -0xa0, 0xb2, 0x7f, 0x76, 0x8d, 0xf2, 0x1a, 0x3e, 0x5d, 0x51, 0x86, 0x66, 0x07, 0x94, 0x83, 0x88, -0x4d, 0x87, 0x10, 0x97, 0x86, 0x11, 0x97, 0x8e, 0xf0, 0x6a, 0x37, 0xc2, 0xf3, 0xe9, 0x18, 0x45, -0x15, 0x70, 0xce, 0xa2, 0xb8, 0x78, 0xca, 0x6e, 0x64, 0x79, 0x71, 0x85, 0x99, 0x2f, 0xe2, 0x1b, -0x02, 0xd6, 0x63, 0xf6, 0x4e, 0xa5, 0x38, 0xa7, 0x0e, 0x94, 0x40, 0x7d, 0xcd, 0x90, 0xeb, 0x35, -0xd1, 0xd3, 0x70, 0xf7, 0x61, 0x1c, 0x09, 0xf6, 0x29, 0x43, 0xfe, 0x11, 0x0c, 0x9c, 0xd3, 0x2a, -0x72, 0xba, 0x70, 0x6e, 0x09, 0x0f, 0xde, 0x9c, 0xb3, 0x17, 0x73, 0x5e, 0xa1, 0xb6, 0xb3, 0x74, -0x50, 0xc0, 0xa7, 0x71, 0x36, 0x3b, 0x61, 0x7b, 0xe1, 0xb1, 0xe7, 0x18, 0xdb, 0xa9, 0xbd, 0xbb, -0x95, 0xfd, 0x38, 0x9b, 0x2f, 0x17, 0xcf, 0x57, 0x06, 0xe9, 0xec, 0xa2, 0x86, 0xf8, 0xb3, 0xf9, -0xc8, 0x61, 0xd6, 0xab, 0xf2, 0x2b, 0xf2, 0x97, 0xda, 0x99, 0x85, 0x3a, 0x0b, 0xf6, 0xa6, 0x67, -0x01, 0xf2, 0x69, 0x57, 0x4a, 0xdc, 0x48, 0x41, 0xe7, 0xf1, 0x0a, 0xb6, 0x93, 0xc6, 0x11, 0xdf, -0x39, 0xec, 0x2b, 0x91, 0x46, 0x9b, 0xec, 0x53, 0x5f, 0x4a, 0x74, 0xde, 0x3c, 0xb8, 0xce, 0x6e, -0xda, 0xb7, 0x8e, 0x63, 0x43, 0x1d, 0x08, 0x77, 0xc5, 0x72, 0x67, 0xcf, 0x55, 0x9e, 0xa9, 0x34, -0x54, 0x64, 0x49, 0x61, 0xa4, 0x41, 0xcf, 0x78, 0x66, 0x29, 0x03, 0x58, 0xd7, 0x80, 0x07, 0xbf, -0x2c, 0xcd, 0xae, 0xcc, 0x2a, 0xd7, 0xe3, 0x8a, 0xbb, 0xbb, 0x8c, 0x6c, 0x91, 0x2f, 0x31, 0x4d, -0x22, 0x0e, 0x86, 0x62, 0xc1, 0x9f, 0xc1, 0xd9, 0xb0, 0xfd, 0x48, 0x00, 0xa1, 0x78, 0x0e, 0xe1, -0x7b, 0x1e, 0xdb, 0x71, 0x06, 0x69, 0x86, 0x07, 0xe6, 0x48, 0x2d, 0x50, 0x29, 0x78, 0x78, 0xc4, -0xa6, 0x81, 0x28, 0xb6, 0x85, 0x34, 0xb7, 0xe5, 0xa5, 0xf4, 0x75, 0xdb, 0x17, 0x8f, 0xd0, 0xd7, -0xd5, 0xca, 0x19, 0x2c, 0x81, 0x78, 0xce, 0xbd, 0x19, 0x3c, 0xe7, 0x19, 0x8d, 0x0b, 0x52, 0x5b, -0x6d, 0x21, 0xd8, 0xc4, 0xf3, 0x87, 0x9f, 0x13, 0xf5, 0xd5, 0x50, 0xee, 0xf9, 0xca, 0x39, 0xb5, -0xd7, 0x67, 0xb4, 0x5e, 0x8b, 0xf2, 0x99, 0xc3, 0x11, 0x38, 0xde, 0xcb, 0xfc, 0xde, 0x99, 0xe2, -0x79, 0xca, 0x39, 0x9a, 0xb1, 0xdc, 0xc6, 0x0b, 0xb3, 0x5b, 0x95, 0x67, 0x94, 0x4b, 0xfc, 0x9d, -0x51, 0xaa, 0xc5, 0xd9, 0x54, 0x4b, 0x9e, 0x56, 0xea, 0xfb, 0x47, 0x5a, 0x15, 0xf2, 0xc8, 0x6f, -0xde, 0xd9, 0xaa, 0x3c, 0x8b, 0xfc, 0x6a, 0x11, 0x7e, 0xf1, 0xd4, 0xd1, 0x56, 0x65, 0xdb, 0x2e, -0xe4, 0x78, 0x90, 0xf6, 0xff, 0xb8, 0x2c, 0xbb, 0x22, 0xeb, 0x58, 0xd8, 0x57, 0x33, 0xfc, 0xca, -0xec, 0x90, 0xf2, 0x0c, 0x96, 0xf4, 0x94, 0x3c, 0x72, 0x1d, 0x38, 0xd4, 0x32, 0x1c, 0x6a, 0x94, -0xf3, 0x93, 0xfb, 0x22, 0x5a, 0x47, 0xa3, 0x4e, 0xbd, 0x91, 0x66, 0x5e, 0xd3, 0xba, 0x5a, 0x6e, -0x5d, 0xbd, 0x72, 0x69, 0x72, 0xbf, 0x4e, 0x88, 0x96, 0x59, 0xf6, 0x52, 0xcb, 0xd6, 0x4b, 0x61, -0x6c, 0xe9, 0xb6, 0x9d, 0xa2, 0x55, 0xa6, 0x2a, 0x43, 0xb9, 0xfe, 0xe8, 0xdc, 0x2a, 0xec, 0xd3, -0x89, 0x7d, 0x8e, 0x90, 0x7c, 0x02, 0xc7, 0x11, 0xe0, 0x23, 0xfb, 0xd4, 0xce, 0x9b, 0xf7, 0xad, -0xc3, 0xf9, 0x7b, 0x0e, 0xc7, 0xc0, 0xc9, 0x18, 0x30, 0xe0, 0x9b, 0x4b, 0x63, 0x8b, 0xa3, 0xf7, -0xb2, 0x5d, 0xb4, 0xfa, 0xb9, 0xeb, 0xb5, 0xda, 0x9e, 0x6a, 0xb5, 0x1d, 0xeb, 0xc6, 0x31, 0x79, -0xba, 0xfe, 0x09, 0xca, 0xdf, 0x96, 0x7f, 0xe4, 0x39, 0x31, 0x5e, 0x14, 0x87, 0x1e, 0xff, 0x77, -0xe1, 0xff, 0x17, 0x10, 0x43, 0xf0, 0x3b, 0x0f, 0xf5, 0x69, 0xa5, 0xfa, 0x5d, 0x2e, 0x7d, 0x87, -0xdf, 0xcc, 0xbb, 0x0d, 0x7b, 0x4b, 0x96, 0x9b, 0x52, 0x31, 0x52, 0x56, 0xbf, 0x54, 0x72, 0x83, -0xfe, 0xf2, 0x68, 0x48, 0x33, 0xd5, 0xaf, 0xa7, 0x7a, 0xfc, 0x88, 0xa1, 0xf8, 0xbd, 0xda, 0x67, -0x1b, 0xce, 0xbf, 0xa7, 0xf7, 0x8a, 0x11, 0x49, 0xf7, 0xdb, 0xa2, 0xf6, 0x3a, 0x70, 0x62, 0x08, -0xe1, 0xf5, 0x8c, 0x7c, 0x12, 0x61, 0xdb, 0xaa, 0xec, 0x04, 0x03, 0xf3, 0x9e, 0x71, 0xf5, 0x9c, -0xe6, 0xd9, 0xc9, 0xf4, 0x9d, 0x24, 0x3c, 0x3e, 0x3f, 0x3b, 0xc3, 0x7c, 0xec, 0xb9, 0x14, 0x17, -0x8d, 0xf4, 0x71, 0xfe, 0xe8, 0xf9, 0x23, 0xf5, 0x9b, 0x38, 0xfd, 0x02, 0xe5, 0x7d, 0x30, 0xe7, -0x24, 0xbd, 0x9b, 0xc2, 0x11, 0x54, 0x37, 0xf1, 0xaa, 0xd8, 0xad, 0xad, 0xf1, 0x88, 0x33, 0x1d, -0xb8, 0x3e, 0x9e, 0x53, 0xf3, 0x5f, 0xc9, 0x48, 0xbb, 0x50, 0xbf, 0x89, 0xd6, 0x32, 0xf6, 0x6a, -0x42, 0x9c, 0xb5, 0x9b, 0xa8, 0x72, 0x74, 0x89, 0x1a, 0xcd, 0x8b, 0x6d, 0x91, 0xa2, 0xb4, 0x77, -0x64, 0xd1, 0x9e, 0x62, 0x90, 0x15, 0x74, 0x91, 0x04, 0x55, 0x89, 0xf3, 0xb0, 0x8c, 0x64, 0x8f, -0xa8, 0x13, 0x7f, 0x2f, 0x0c, 0xe0, 0x7a, 0x1e, 0x73, 0x70, 0xf9, 0x67, 0xb8, 0x3d, 0xe6, 0x93, -0xc4, 0xc7, 0x4f, 0xa1, 0x9d, 0x50, 0x96, 0x25, 0x84, 0x87, 0x4e, 0xc8, 0x32, 0x76, 0x80, 0xca, -0xed, 0x6b, 0xeb, 0xbb, 0xe8, 0x8d, 0x41, 0x6d, 0x1d, 0xaf, 0x04, 0xed, 0x79, 0x23, 0xd4, 0x1b, -0x8e, 0x31, 0x56, 0xbf, 0x09, 0x57, 0xd9, 0xab, 0x8b, 0x48, 0xee, 0xbb, 0x2a, 0xe9, 0x6a, 0x13, -0x38, 0x8a, 0xc9, 0xc1, 0xae, 0xb3, 0x24, 0x8b, 0x24, 0x57, 0x03, 0xad, 0x67, 0x14, 0x8b, 0x12, -0xb9, 0x83, 0x0e, 0x8b, 0x1a, 0xa9, 0x95, 0xfd, 0x89, 0xb8, 0xa2, 0x06, 0x2b, 0x4a, 0x5d, 0x9e, -0xac, 0x13, 0x3d, 0x14, 0x39, 0x33, 0xb5, 0xe7, 0x91, 0x11, 0xc5, 0xc8, 0x0d, 0xd1, 0xa2, 0x07, -0x75, 0x2f, 0x23, 0xef, 0xa2, 0x8f, 0x4b, 0xc6, 0x89, 0x6f, 0x30, 0x6d, 0x49, 0xbb, 0x6e, 0xa1, -0xa0, 0xa1, 0x14, 0x1f, 0x6b, 0x73, 0xc3, 0x06, 0xac, 0x71, 0xcf, 0xf0, 0x5a, 0xfc, 0x25, 0xbb, -0x2c, 0xd3, 0x97, 0x97, 0xc3, 0x74, 0xe5, 0xd5, 0x5b, 0x28, 0xc2, 0xf8, 0xf4, 0x1f, 0x1d, 0x44, -0xfa, 0x05, 0x92, 0x79, 0xb8, 0x7b, 0x6f, 0xa2, 0xc9, 0xf0, 0xf4, 0x7a, 0x59, 0xef, 0xd1, 0x13, -0x0c, 0x67, 0xd7, 0x2a, 0xaf, 0x55, 0xe1, 0xea, 0x3a, 0xbb, 0x4e, 0xd9, 0xef, 0x33, 0x0f, 0x23, -0xed, 0x45, 0xca, 0x69, 0x26, 0xfc, 0x2c, 0xc1, 0xf9, 0xd4, 0xf0, 0x10, 0xe2, 0xd6, 0x10, 0xae, -0x0c, 0x07, 0x91, 0x5e, 0x0e, 0x23, 0x76, 0x8d, 0x20, 0x55, 0x3f, 0x8a, 0x18, 0x72, 0x0c, 0xbf, -0x3b, 0x8e, 0x14, 0xf5, 0x8c, 0x72, 0x42, 0x9d, 0x5b, 0x43, 0x29, 0x9a, 0x81, 0x63, 0x41, 0x25, -0xfa, 0x66, 0x29, 0xfb, 0xb1, 0xbc, 0xfc, 0x52, 0xb2, 0x37, 0x9e, 0x58, 0x5e, 0xab, 0xf2, 0xf2, -0x7f, 0xa5, 0x44, 0x9c, 0x0d, 0x85, 0xb4, 0x2a, 0x90, 0x94, 0x45, 0x23, 0x65, 0x9e, 0x85, 0xb2, -0xc4, 0xab, 0xb1, 0x1c, 0xbc, 0x4e, 0x51, 0x5e, 0xc5, 0x39, 0x79, 0xc0, 0x0b, 0xa1, 0xf6, 0x44, -0x2a, 0x16, 0x68, 0xcd, 0x27, 0x26, 0x40, 0x2c, 0x7f, 0xd9, 0x33, 0x17, 0x29, 0xf9, 0x2e, 0x9c, -0x9f, 0xcf, 0xe2, 0x9a, 0x60, 0x0e, 0x0d, 0x0e, 0x3f, 0x44, 0xde, 0xa0, 0xf2, 0xee, 0xb0, 0x01, -0xf9, 0x5c, 0x00, 0xa5, 0x36, 0xd1, 0x3e, 0x65, 0xb0, 0x5b, 0xa7, 0x8b, 0x2d, 0x96, 0xf2, 0xc3, -0xbd, 0xb1, 0x3a, 0x3b, 0xce, 0x2b, 0x1c, 0x91, 0x7c, 0x57, 0xf5, 0x08, 0xf1, 0x5c, 0x01, 0x65, -0x88, 0x66, 0xe6, 0x70, 0x17, 0xed, 0x1b, 0x0f, 0xd3, 0xcc, 0x3e, 0xe8, 0x22, 0x3c, 0xf3, 0xa8, -0xad, 0x33, 0xbb, 0xfc, 0x92, 0x87, 0x67, 0xf4, 0x0e, 0xa4, 0x9d, 0x3f, 0x77, 0xf9, 0x69, 0x25, -0x42, 0xfa, 0xfa, 0x73, 0xac, 0x7b, 0x87, 0x94, 0x68, 0x7c, 0xbc, 0xb1, 0x2f, 0xf2, 0x90, 0x9c, -0xf3, 0x20, 0x60, 0x49, 0xdb, 0x50, 0xf6, 0xfb, 0x29, 0xaf, 0x4d, 0xb6, 0x81, 0x87, 0x96, 0x82, -0x12, 0xc7, 0x55, 0x6d, 0x9b, 0x0b, 0x67, 0xe4, 0x5b, 0x17, 0x95, 0x64, 0x04, 0x5b, 0xb9, 0x17, -0xff, 0xa2, 0x23, 0xbc, 0xfa, 0x66, 0xc2, 0x0d, 0x47, 0xd1, 0x43, 0xb0, 0xc3, 0xb9, 0x7e, 0x8f, -0x80, 0x1d, 0xad, 0x57, 0x04, 0x3f, 0xc1, 0x0f, 0xe2, 0x8a, 0x85, 0xf0, 0x3b, 0xce, 0xfc, 0xd1, -0x09, 0x9c, 0xf9, 0xaf, 0x29, 0x27, 0x19, 0x86, 0xa7, 0x26, 0xc3, 0xf0, 0x9d, 0xd7, 0x1a, 0x36, -0x74, 0x42, 0x15, 0xae, 0x8d, 0x7b, 0xd7, 0x47, 0x61, 0x8c, 0x64, 0x5e, 0xd3, 0x2d, 0xad, 0xca, -0xab, 0x30, 0xdd, 0x3e, 0x17, 0xe1, 0xba, 0x27, 0x73, 0x97, 0x5f, 0xb5, 0xe5, 0xa2, 0x99, 0xdf, -0xc9, 0x33, 0x5f, 0xb3, 0xcd, 0xb2, 0x91, 0xad, 0x3a, 0xd9, 0xd3, 0xa0, 0x0c, 0xe5, 0x9e, 0xf7, -0x01, 0xec, 0xd4, 0x3c, 0x5a, 0xd6, 0xef, 0x39, 0xbb, 0x11, 0x39, 0x79, 0x5f, 0xc3, 0x86, 0x98, -0xb4, 0x28, 0x31, 0xc3, 0x0f, 0xbe, 0xa8, 0xad, 0xe6, 0x7c, 0xc6, 0x7e, 0xa1, 0x41, 0xc4, 0x62, -0x3c, 0xfb, 0xf3, 0x86, 0x0d, 0xea, 0x19, 0x80, 0xcd, 0xbb, 0x80, 0xac, 0xb2, 0xeb, 0x50, 0x6a, -0x3d, 0xbb, 0x9c, 0xf8, 0x47, 0xd5, 0xe7, 0xb0, 0xe1, 0x5b, 0x7d, 0xf1, 0xe9, 0x03, 0x7d, 0xcb, -0xf2, 0xab, 0xcf, 0xc1, 0xd7, 0x0e, 0x0f, 0x91, 0xa7, 0x00, 0xa4, 0x7f, 0xf9, 0x6f, 0x0d, 0x49, -0xbe, 0x2d, 0x76, 0xc1, 0x73, 0xb2, 0x85, 0xf6, 0x2a, 0x30, 0xbd, 0x45, 0x92, 0x9d, 0x2a, 0x05, -0x0f, 0x3c, 0x87, 0x52, 0x8f, 0x85, 0xa2, 0x58, 0x62, 0xee, 0x72, 0x11, 0x17, 0x30, 0x65, 0xa7, -0x79, 0x05, 0xdb, 0xef, 0x24, 0x59, 0x50, 0x3b, 0x43, 0xc1, 0x2f, 0xdc, 0x81, 0x17, 0xc1, 0x12, -0xc0, 0xfe, 0xe0, 0x5f, 0x3e, 0x59, 0x8a, 0x05, 0xfe, 0xd1, 0x41, 0xd1, 0x41, 0xc1, 0x7b, 0x13, -0xbe, 0x6d, 0x22, 0xfb, 0x24, 0xf6, 0x29, 0xbc, 0xe7, 0xac, 0x88, 0xab, 0xf7, 0x22, 0xd8, 0x62, -0xe6, 0xb8, 0x9f, 0xfc, 0xbb, 0xdf, 0x45, 0x7b, 0xf4, 0xd6, 0xb8, 0x89, 0x7c, 0x9d, 0xb5, 0x9b, -0xaa, 0xf1, 0x2d, 0x8d, 0x53, 0xa6, 0x35, 0x36, 0x69, 0x46, 0x35, 0x19, 0x84, 0x97, 0x65, 0x92, -0x92, 0xb4, 0x3f, 0xda, 0x37, 0xf4, 0xe6, 0x30, 0xf5, 0x6c, 0x65, 0x7f, 0x64, 0xbc, 0xf3, 0xa6, -0xee, 0xc0, 0x8b, 0x3a, 0x51, 0x1e, 0xaf, 0xdf, 0xf3, 0xbb, 0x2d, 0x64, 0xb1, 0x34, 0xf8, 0x82, -0xc0, 0xf7, 0x18, 0xd9, 0xf4, 0x9b, 0xe2, 0x16, 0x89, 0x6c, 0x96, 0x28, 0x7e, 0xa8, 0x24, 0x71, -0xe4, 0x57, 0xda, 0xdd, 0x74, 0x20, 0x3d, 0x4a, 0x49, 0xc3, 0x14, 0xc9, 0x8e, 0xd6, 0xc1, 0xf8, -0x3d, 0x89, 0x36, 0x60, 0xbf, 0x90, 0x24, 0x1d, 0x3f, 0x00, 0x4e, 0xda, 0x67, 0xa6, 0x88, 0x7f, -0x6d, 0x3a, 0xc9, 0x2f, 0x75, 0x09, 0x2b, 0xcc, 0xd4, 0xde, 0xdf, 0x72, 0xd2, 0xe7, 0x62, 0x9f, -0xdf, 0xe4, 0x45, 0x1a, 0xc7, 0xe3, 0x77, 0x26, 0x82, 0x5b, 0x0a, 0x7a, 0x7b, 0x49, 0xbf, 0x0b, -0x25, 0x51, 0xd9, 0xb5, 0x0a, 0x96, 0xcf, 0xfd, 0x90, 0xa3, 0x31, 0x07, 0xd3, 0x16, 0xac, 0x76, -0x0f, 0xdc, 0x83, 0x5f, 0x2f, 0xb7, 0x87, 0xe3, 0xb7, 0xe0, 0xdb, 0xb8, 0xa7, 0x85, 0xb5, 0x95, -0xfa, 0x54, 0xbf, 0xe7, 0x00, 0x9f, 0x38, 0xbc, 0xd0, 0x24, 0xe9, 0xe9, 0x7c, 0xeb, 0x71, 0x9d, -0x99, 0x7f, 0x31, 0xf5, 0x54, 0xf9, 0x8b, 0x50, 0xf9, 0xf5, 0x55, 0x30, 0x07, 0xf4, 0xf8, 0x2b, -0xfc, 0x26, 0x07, 0x89, 0x02, 0x37, 0x19, 0x6e, 0xf7, 0x83, 0x14, 0xbf, 0x3c, 0xf8, 0x3c, 0x38, -0x12, 0x2f, 0x82, 0xb5, 0xed, 0x32, 0x45, 0x45, 0xb0, 0x7b, 0xa1, 0xe1, 0xfd, 0x87, 0x13, 0x5d, -0xe4, 0x17, 0xc8, 0xa4, 0x47, 0x98, 0x58, 0x71, 0x44, 0x16, 0xc7, 0x8c, 0xe0, 0xd7, 0x81, 0x6c, -0xd0, 0xfb, 0xc7, 0x15, 0x7a, 0x13, 0xbf, 0x99, 0xbe, 0x8a, 0xe5, 0x7c, 0x53, 0xc4, 0xd6, 0x5c, -0x2d, 0x07, 0xb1, 0xd4, 0x26, 0xaa, 0x59, 0x37, 0xce, 0x5e, 0x0a, 0xc7, 0xa3, 0xd1, 0xdb, 0x11, -0x0f, 0xc0, 0x88, 0xbf, 0x1e, 0xc8, 0xc1, 0x5f, 0x1f, 0xe4, 0xde, 0x4e, 0x31, 0xbe, 0xf3, 0xbe, -0xb8, 0x0a, 0xbe, 0x0c, 0xf9, 0xf8, 0xfb, 0x55, 0xf8, 0x22, 0xfe, 0xde, 0x06, 0x36, 0xfc, 0xbd, -0x1d, 0xbe, 0x24, 0xfb, 0xb4, 0x32, 0xe4, 0x53, 0x66, 0xfe, 0x8d, 0xda, 0xf1, 0x8b, 0x10, 0x14, -0xe0, 0xfb, 0xbf, 0x84, 0xa2, 0x6b, 0xcb, 0xd3, 0xf6, 0x9d, 0x97, 0x10, 0x06, 0x04, 0xb5, 0x38, -0x90, 0x55, 0x95, 0x2e, 0xda, 0x2d, 0x6e, 0x11, 0xb3, 0x67, 0xee, 0x45, 0x4c, 0xeb, 0x10, 0xb1, -0xe8, 0x05, 0x1c, 0x43, 0x2b, 0xc0, 0xae, 0xf9, 0x7e, 0xac, 0xdf, 0x33, 0xde, 0xc7, 0x5a, 0x26, -0xe4, 0x9f, 0xe6, 0x88, 0x03, 0xbf, 0x71, 0xe7, 0x18, 0xd7, 0x22, 0x76, 0xed, 0x94, 0xe6, 0x66, -0xec, 0x64, 0x34, 0xc3, 0xe9, 0x8e, 0x63, 0xc7, 0x1e, 0xa3, 0x35, 0xe0, 0xce, 0xbd, 0xb2, 0x9d, -0xe8, 0xe3, 0xc0, 0x36, 0x25, 0x19, 0xcd, 0x9f, 0x7b, 0x9e, 0x4b, 0x97, 0xb0, 0x34, 0x03, 0x4b, -0xa0, 0xa4, 0x2b, 0x67, 0x72, 0xd4, 0x38, 0xf3, 0xa2, 0xc7, 0x7f, 0x70, 0x40, 0x9d, 0xb5, 0xd9, -0xf5, 0x7b, 0x4e, 0x5f, 0x6a, 0xd8, 0xc0, 0xfe, 0x56, 0x8c, 0x91, 0x6d, 0xe0, 0x93, 0x97, 0x93, -0x1d, 0x5e, 0xe0, 0x67, 0xc8, 0xe1, 0x10, 0x5e, 0x3e, 0x8b, 0xef, 0x4f, 0x39, 0xb4, 0x73, 0x82, -0xba, 0xb8, 0x8e, 0xe6, 0x35, 0x6b, 0x23, 0xa0, 0xcc, 0x28, 0x5a, 0x7d, 0xe7, 0x99, 0xf9, 0x69, -0x2a, 0x80, 0xad, 0x3e, 0xbd, 0xbe, 0xfa, 0x03, 0x38, 0x3d, 0x61, 0xe6, 0xe7, 0x64, 0xbc, 0x4d, -0x88, 0x28, 0x96, 0xac, 0x13, 0x47, 0x27, 0x33, 0xbb, 0x05, 0x5f, 0x31, 0x5a, 0xa1, 0xf1, 0x15, -0xda, 0x0e, 0x42, 0x09, 0x52, 0x62, 0x69, 0x9e, 0xdb, 0xc5, 0x9c, 0x96, 0x7b, 0xd4, 0x8f, 0x78, -0xda, 0xee, 0x31, 0xdd, 0xb7, 0xae, 0xb8, 0x36, 0x69, 0x2e, 0xee, 0xd4, 0x25, 0xbe, 0x7a, 0x39, -0x69, 0x71, 0x9a, 0x1a, 0x7a, 0x8a, 0x6b, 0x92, 0xd6, 0xe2, 0x4e, 0x00, 0x7d, 0x22, 0x69, 0x6b, -0x9f, 0x3a, 0xd2, 0x57, 0x1c, 0x48, 0x16, 0xf2, 0x73, 0x7f, 0x52, 0x42, 0x5e, 0xa4, 0xaf, 0xb8, -0x3a, 0xe9, 0xe0, 0xe7, 0xcb, 0x49, 0x17, 0x4a, 0xfc, 0xb8, 0x22, 0x27, 0x3d, 0xf4, 0x9c, 0x25, -0x25, 0x7d, 0x0b, 0xcf, 0x81, 0xb9, 0xb8, 0x3e, 0x59, 0x46, 0xcf, 0xba, 0x53, 0xc9, 0x8a, 0x9a, -0x73, 0x70, 0x13, 0x52, 0xd7, 0xed, 0xc5, 0xf3, 0x93, 0x55, 0x9c, 0x76, 0x3e, 0xe9, 0x9f, 0x7b, -0x0e, 0x72, 0x8b, 0xc3, 0xc9, 0x20, 0x3f, 0x5f, 0x48, 0x86, 0x30, 0xcf, 0xcd, 0xf8, 0xbe, 0x8e, -0xcb, 0xbc, 0x29, 0xd9, 0x80, 0x34, 0xca, 0x52, 0x1c, 0x4a, 0x2e, 0x66, 0x6d, 0x80, 0xb7, 0x92, -0x8d, 0x81, 0x17, 0x92, 0x4b, 0xf0, 0x4f, 0xc6, 0x76, 0x36, 0x15, 0x77, 0xea, 0x67, 0xdc, 0x0d, -0xc9, 0xe5, 0xd8, 0xc6, 0x16, 0xb5, 0xce, 0x38, 0xb6, 0xaf, 0x9d, 0xef, 0x2b, 0x92, 0x1d, 0xd8, -0xb6, 0x4e, 0xbe, 0x4f, 0x24, 0x91, 0x8b, 0x4b, 0xf6, 0xd2, 0xbd, 0x01, 0x92, 0x7d, 0xd8, 0xa6, -0xf5, 0x5c, 0x7e, 0x63, 0xb2, 0x1f, 0x69, 0xf9, 0xf6, 0xe4, 0x26, 0x7e, 0xfa, 0x76, 0x72, 0x0b, -0xb6, 0xe4, 0x69, 0xbe, 0xff, 0xab, 0xe4, 0x33, 0xd8, 0x8a, 0x67, 0xf9, 0xfe, 0xbb, 0xc9, 0xad, -0xd8, 0x02, 0xa1, 0x8f, 0xf0, 0x9f, 0xc9, 0x01, 0xac, 0x7d, 0x27, 0xfe, 0xed, 0xc6, 0x16, 0xec, -0x2d, 0xee, 0xcc, 0xfa, 0xed, 0x11, 0x7f, 0x12, 0x65, 0x9d, 0xe4, 0x7e, 0xb5, 0xf4, 0x21, 0x6c, -0xc1, 0x41, 0xbe, 0xb7, 0x25, 0x87, 0xb1, 0x05, 0x23, 0x7c, 0xff, 0x4c, 0x12, 0xe5, 0x9e, 0x24, -0x69, 0x8a, 0x40, 0xb6, 0x3f, 0x79, 0x0a, 0x5b, 0x70, 0x86, 0x5b, 0x06, 0xc9, 0x73, 0xdc, 0x82, -0x0b, 0xfc, 0x94, 0x95, 0xbc, 0x8c, 0x2d, 0xb8, 0xc2, 0xf7, 0x53, 0x93, 0x57, 0xb1, 0x05, 0x49, -0xbe, 0x77, 0x8e, 0x41, 0x71, 0x68, 0xcc, 0xc0, 0x2d, 0xf8, 0x78, 0xcc, 0x14, 0x78, 0x61, 0xcc, -0x8c, 0x7f, 0x96, 0xe2, 0xda, 0x31, 0x1c, 0x1b, 0xc3, 0xfe, 0x9d, 0x30, 0x66, 0x2b, 0xae, 0x19, -0xe3, 0x71, 0x31, 0x24, 0xc6, 0xa4, 0xe2, 0xc0, 0x18, 0x8f, 0x89, 0x61, 0x70, 0xcc, 0x55, 0x5c, -0x3d, 0xc6, 0xe3, 0x91, 0xed, 0x1b, 0xf3, 0x15, 0xfb, 0xc7, 0x78, 0x2c, 0xb2, 0x07, 0xc6, 0x2a, -0x8a, 0xeb, 0xc7, 0x78, 0x0c, 0xb2, 0xe4, 0x31, 0x3f, 0xb5, 0x60, 0x8c, 0x47, 0x20, 0x2b, 0x3a, -0x16, 0x2a, 0x0e, 0x8f, 0x31, 0xf4, 0xb3, 0x56, 0x8c, 0x35, 0x14, 0xcf, 0x1f, 0x5b, 0xcc, 0xf7, -0x9b, 0xc6, 0x1a, 0xb1, 0x05, 0x4b, 0xa8, 0x05, 0xff, 0xc3, 0x30, 0x26, 0x63, 0xed, 0x4d, 0xf8, -0xb7, 0x1c, 0x5b, 0x80, 0x90, 0x37, 0xfe, 0x4f, 0x39, 0x31, 0x16, 0xc7, 0x16, 0x30, 0xe4, 0xb3, -0x61, 0xac, 0x03, 0x5b, 0xc0, 0x90, 0xcf, 0x6e, 0x18, 0x4b, 0x60, 0x0b, 0x18, 0xf2, 0xd9, 0xc7, -0xc6, 0x10, 0x3b, 0xc6, 0x18, 0xf2, 0xc6, 0x81, 0xb1, 0x7e, 0x6c, 0xc1, 0x26, 0x01, 0xb3, 0xb1, -0x2d, 0xdc, 0x02, 0x86, 0xbc, 0x41, 0x37, 0xf6, 0x0c, 0xb6, 0x80, 0x21, 0x6f, 0x30, 0x8c, 0x6d, -0xc5, 0x16, 0x6c, 0xe7, 0x7b, 0xc7, 0xd8, 0x00, 0xb6, 0x80, 0xb5, 0x68, 0xfe, 0xc7, 0x17, 0xc6, -0x76, 0x63, 0xed, 0x7b, 0xf1, 0x6f, 0x10, 0x5b, 0x80, 0x90, 0x9f, 0x5a, 0x67, 0x1b, 0x18, 0x1b, -0xc2, 0x16, 0x30, 0xe4, 0x8d, 0xfe, 0x31, 0x94, 0x36, 0xc7, 0x18, 0xf2, 0x46, 0x79, 0xec, 0x18, -0xb6, 0x80, 0x21, 0x3f, 0x05, 0xc6, 0x4e, 0x61, 0x0b, 0x18, 0xf2, 0x26, 0x18, 0x3b, 0x87, 0x2d, -0x60, 0xb8, 0x1b, 0x06, 0xc6, 0x2e, 0x73, 0x0b, 0x18, 0xf2, 0x86, 0x3d, 0x63, 0x57, 0xb1, 0x05, -0x0c, 0x79, 0xc3, 0xbe, 0x71, 0x28, 0x9e, 0x3f, 0x6e, 0xe0, 0xfb, 0x4f, 0xc6, 0x4d, 0xc5, 0xa1, -0x71, 0x33, 0xb7, 0xe0, 0xf6, 0x71, 0x4b, 0xe0, 0x85, 0x71, 0x2b, 0xfe, 0xd9, 0x8a, 0x6b, 0xc7, -0x11, 0xf2, 0x86, 0xd1, 0x27, 0x2c, 0xe3, 0x52, 0x71, 0xcd, 0xb8, 0x43, 0xc0, 0x60, 0xdc, 0x55, -0x1c, 0x18, 0x17, 0x90, 0xf7, 0x8f, 0xfb, 0x8a, 0xab, 0xc7, 0x05, 0xe4, 0x87, 0xc6, 0x2b, 0x8a, -0xfd, 0xe3, 0x0c, 0x79, 0x63, 0xff, 0xb8, 0xbf, 0xb8, 0x7e, 0x5c, 0xc0, 0x5d, 0x1a, 0x0f, 0x51, -0x0b, 0xc6, 0x05, 0xe4, 0x6f, 0x1d, 0x6f, 0x28, 0x0e, 0x8f, 0x0b, 0xc8, 0x3b, 0xc6, 0x1b, 0xb1, -0x05, 0x4b, 0xf8, 0xbe, 0x6a, 0x5c, 0xc6, 0x16, 0x34, 0x71, 0x0b, 0xbe, 0x31, 0xbe, 0x1c, 0x6b, -0x6f, 0xc1, 0xbf, 0x38, 0xb6, 0x00, 0x21, 0x6f, 0x6c, 0x7c, 0x2a, 0x3e, 0xde, 0x81, 0x2d, 0x10, -0x90, 0x7f, 0x66, 0x3c, 0x81, 0x2d, 0x10, 0x90, 0xbf, 0x3c, 0x8e, 0xf3, 0x74, 0x5c, 0x40, 0xbe, -0x6f, 0xbc, 0x1f, 0x5b, 0xc0, 0x90, 0x9f, 0x12, 0x1f, 0xdf, 0x82, 0x2d, 0x60, 0xb8, 0x67, 0xf5, -0x8e, 0x3f, 0xc3, 0x2d, 0x60, 0xc8, 0x67, 0xad, 0x1d, 0xdf, 0x8a, 0x2d, 0x60, 0xc8, 0x67, 0xf5, -0x8d, 0x0f, 0x60, 0x0b, 0x76, 0xf2, 0xfd, 0xb3, 0xe3, 0xbb, 0xb1, 0x05, 0xac, 0xe9, 0xf3, 0x3f, -0xc2, 0xe3, 0x83, 0x58, 0xfb, 0x7e, 0xfc, 0x1b, 0xc2, 0x16, 0x20, 0xe4, 0x4d, 0xbf, 0x9c, 0xf5, -0xcc, 0x38, 0x72, 0x4d, 0xe3, 0x23, 0x6a, 0xff, 0x8e, 0x61, 0x0b, 0x18, 0xf2, 0xc6, 0xab, 0xe3, -0xa7, 0xb0, 0x05, 0x0c, 0xf9, 0x29, 0x03, 0xe3, 0xe7, 0xb0, 0x05, 0x0c, 0x79, 0xd3, 0xf0, 0xf8, -0x65, 0x6c, 0x81, 0x80, 0x7b, 0xc1, 0xf8, 0x55, 0x6e, 0x81, 0x80, 0xfc, 0x97, 0x15, 0x40, 0xd9, -0x5d, 0x40, 0xbe, 0x48, 0x31, 0x21, 0xdd, 0x30, 0xf3, 0xfd, 0x5d, 0x0a, 0xd2, 0x03, 0xc5, 0xca, -0x2d, 0xf8, 0x2b, 0xc5, 0x86, 0xfc, 0x67, 0x21, 0xfe, 0x49, 0xc5, 0xb5, 0x0a, 0x42, 0x3e, 0xe7, -0x2f, 0x7f, 0xe9, 0x57, 0x5c, 0xc8, 0xb7, 0x31, 0xe4, 0xa7, 0x24, 0x14, 0x1f, 0x72, 0x86, 0x65, -0x62, 0xbc, 0x95, 0x0a, 0x94, 0x1e, 0x18, 0xf2, 0xa6, 0x21, 0xc5, 0x8f, 0xbc, 0x26, 0x43, 0x3e, -0xc7, 0xa2, 0x84, 0x8a, 0xeb, 0x15, 0x86, 0xbb, 0xa1, 0x42, 0x69, 0xa0, 0x16, 0x28, 0x0c, 0x79, -0xc3, 0x6c, 0xa5, 0x11, 0x5b, 0xc0, 0x90, 0x37, 0xf8, 0x15, 0x19, 0x5b, 0xd0, 0xc4, 0xf7, 0xb2, -0xb2, 0x1c, 0x5b, 0xd0, 0xc2, 0x2d, 0x68, 0x55, 0xe2, 0x58, 0x7b, 0x3b, 0xfe, 0x75, 0x60, 0x0b, -0x10, 0xf2, 0x53, 0x67, 0x1d, 0x4f, 0x28, 0x09, 0x6c, 0x41, 0xaf, 0xda, 0x02, 0xa4, 0x98, 0xac, -0xdf, 0x87, 0xfd, 0x56, 0xfa, 0xb1, 0x05, 0x02, 0xf2, 0xc3, 0xca, 0x16, 0xd6, 0x7d, 0xa2, 0xd6, -0x48, 0xca, 0x33, 0xaa, 0x36, 0x1d, 0x62, 0x22, 0xeb, 0x10, 0x82, 0xe1, 0x25, 0x94, 0x52, 0xc3, -0xac, 0x33, 0x06, 0x86, 0x7f, 0x51, 0x76, 0x63, 0xdd, 0x7b, 0xf9, 0xfe, 0x2d, 0x65, 0x10, 0xeb, -0xde, 0xcf, 0x75, 0xff, 0x9d, 0x38, 0xbd, 0xc3, 0xbf, 0x61, 0x69, 0x1e, 0x71, 0x37, 0xa4, 0x45, -0xf5, 0xd9, 0xf6, 0x9a, 0x8b, 0x48, 0xc1, 0xe7, 0x7f, 0x36, 0x80, 0xf7, 0x3b, 0xab, 0x2f, 0x22, -0x95, 0x0c, 0x7d, 0xb6, 0x1b, 0xef, 0xf7, 0x62, 0xfa, 0x5e, 0x4c, 0x1f, 0xc4, 0xfb, 0xfd, 0xd5, -0x17, 0x91, 0x72, 0x84, 0x3e, 0x1b, 0xc2, 0xfb, 0x83, 0x35, 0x17, 0x71, 0x0e, 0xcf, 0xff, 0x6c, -0x18, 0xef, 0x47, 0x30, 0x7d, 0x3f, 0xa6, 0x23, 0xad, 0xfa, 0xec, 0x44, 0xcd, 0x45, 0xc4, 0xeb, -0xf9, 0x9f, 0xe1, 0x8c, 0xf9, 0xec, 0x4c, 0xf5, 0x45, 0xc4, 0xb0, 0xd0, 0x67, 0x38, 0x6e, 0x9f, -0x5d, 0xc0, 0xf4, 0x83, 0x98, 0x7e, 0x19, 0xef, 0xaf, 0x54, 0x5f, 0x44, 0xa8, 0x87, 0x3e, 0xbb, -0x8a, 0xf7, 0xc9, 0x9a, 0x8b, 0xd8, 0xff, 0xf9, 0x49, 0x20, 0x69, 0x35, 0x69, 0x40, 0x0a, 0x69, -0x12, 0xbb, 0xd3, 0x19, 0xfb, 0xe8, 0x47, 0xc4, 0x7a, 0x8c, 0xab, 0xdb, 0x88, 0xba, 0x22, 0x77, -0x40, 0x41, 0xa8, 0x75, 0x34, 0xb8, 0x70, 0xf4, 0x37, 0x4b, 0xea, 0x37, 0xe3, 0xd3, 0x2d, 0xa1, -0xd6, 0xcf, 0x0a, 0xeb, 0x37, 0xf3, 0x6e, 0x8b, 0x8d, 0x4e, 0xa3, 0x8a, 0xab, 0x3f, 0x33, 0x14, -0xd7, 0x7d, 0x66, 0x92, 0x16, 0xde, 0x4a, 0x6b, 0x7d, 0x21, 0x9d, 0xed, 0xcf, 0x1f, 0xfd, 0xf5, -0x55, 0x8f, 0x49, 0xe6, 0x3d, 0x65, 0xbb, 0x5f, 0xba, 0xa5, 0x7f, 0x2b, 0x34, 0xb5, 0xe5, 0x22, -0x37, 0x62, 0x13, 0x67, 0x43, 0x7c, 0x46, 0x94, 0x85, 0x92, 0xac, 0x49, 0x36, 0x44, 0x7a, 0x64, -0x7d, 0xa4, 0xdb, 0x9b, 0xed, 0x35, 0x92, 0xec, 0x40, 0xde, 0xdd, 0xc2, 0xdd, 0x51, 0x9b, 0xd0, -0x4f, 0x4c, 0x1a, 0x8a, 0x83, 0x49, 0x13, 0xca, 0x23, 0xd3, 0x84, 0x96, 0xdb, 0x67, 0xdb, 0xb5, -0x5d, 0x79, 0xac, 0xc1, 0xc1, 0xf9, 0x7b, 0x62, 0xa0, 0xdb, 0x91, 0xda, 0xab, 0xdf, 0x34, 0xa3, -0x06, 0x4a, 0x67, 0x04, 0xa0, 0x52, 0x9c, 0xe8, 0x4f, 0x8c, 0x30, 0x8b, 0x6b, 0x77, 0x39, 0x72, -0xe7, 0x01, 0x29, 0x6b, 0xb8, 0xe7, 0x3a, 0xef, 0x4a, 0x62, 0x2e, 0xd6, 0x6b, 0x69, 0x86, 0x39, -0xf3, 0x47, 0x4f, 0x2d, 0xd5, 0x4e, 0x3c, 0x62, 0x79, 0x6a, 0x6a, 0x30, 0x75, 0x06, 0x92, 0x2b, -0xec, 0xef, 0x7f, 0xdd, 0xdc, 0xb0, 0x21, 0x10, 0x90, 0xf5, 0xed, 0xba, 0xf4, 0x59, 0xc1, 0x71, -0x8a, 0x2b, 0x1d, 0xc0, 0x36, 0x15, 0x11, 0x3c, 0xe8, 0x04, 0xa5, 0xe4, 0x26, 0xe3, 0x43, 0xd8, -0xf2, 0x42, 0x8a, 0x7b, 0xf7, 0xb3, 0xdc, 0x85, 0xa3, 0xc7, 0xfb, 0x8b, 0x43, 0xa3, 0x15, 0x28, -0x91, 0x1d, 0x95, 0x78, 0xcf, 0xc6, 0x0e, 0x1b, 0x9f, 0x83, 0xa6, 0x8e, 0xdc, 0xdd, 0x5d, 0xcb, -0xc8, 0xab, 0xad, 0x7e, 0xa0, 0x2b, 0x66, 0xb6, 0x21, 0x74, 0x76, 0x77, 0x21, 0x87, 0xb8, 0x43, -0x2e, 0xa7, 0x7d, 0x96, 0xcf, 0xb6, 0xba, 0x02, 0xef, 0xec, 0x7b, 0xe7, 0x20, 0xf2, 0xbe, 0x25, -0x87, 0x0f, 0xa2, 0xbc, 0x3e, 0x0d, 0xcb, 0xa8, 0xb2, 0xd7, 0xd6, 0x3f, 0x21, 0xb5, 0x8e, 0x56, -0x31, 0x4f, 0x5c, 0x82, 0xf5, 0x0e, 0x0c, 0xd1, 0x89, 0xde, 0xb3, 0x91, 0x6e, 0xb9, 0x83, 0xbf, -0xb2, 0xb9, 0x6a, 0xde, 0x79, 0x95, 0xbf, 0x2a, 0xc7, 0xaf, 0x66, 0x8d, 0xfa, 0x69, 0x24, 0x91, -0xbf, 0x9a, 0x09, 0x5b, 0xe9, 0x7b, 0x1c, 0x45, 0xed, 0xeb, 0x72, 0xe6, 0x70, 0xe8, 0xfb, 0x26, -0x1c, 0x8f, 0x4a, 0x6e, 0x53, 0x7b, 0xc7, 0x97, 0xb0, 0x4d, 0x79, 0xef, 0x3d, 0x5c, 0xf3, 0x07, -0x1b, 0xdc, 0xe6, 0x1f, 0x0d, 0xde, 0x86, 0x65, 0x8e, 0x86, 0xe4, 0x42, 0x7e, 0xdb, 0xd1, 0x61, -0xc1, 0xb7, 0x16, 0xed, 0xed, 0x67, 0x85, 0xf4, 0xf6, 0x33, 0x89, 0x22, 0x0f, 0x8c, 0x56, 0xd4, -0xef, 0x79, 0xe7, 0x6a, 0xea, 0x8c, 0xb6, 0x20, 0x0d, 0x9d, 0x77, 0xba, 0xc9, 0x17, 0xb3, 0x6c, -0xc9, 0x48, 0x89, 0xb3, 0x9f, 0x4c, 0x94, 0xb3, 0x46, 0x2d, 0xea, 0x0e, 0xcb, 0x85, 0x4c, 0xcf, -0xeb, 0xda, 0x19, 0x3a, 0x9d, 0xe0, 0xe1, 0x0c, 0x5a, 0xce, 0xbb, 0x3d, 0x13, 0x4e, 0x51, 0x34, -0x7f, 0xec, 0x93, 0xfd, 0x4f, 0x40, 0xaf, 0xcb, 0x4f, 0x7a, 0x0d, 0x69, 0xef, 0x81, 0x63, 0x47, -0xd4, 0x33, 0xd5, 0xa6, 0x46, 0x94, 0x0d, 0xec, 0x41, 0x8a, 0xc6, 0xc2, 0xa7, 0x1a, 0x24, 0x17, -0xe4, 0xa9, 0x11, 0x0d, 0xf6, 0x7c, 0xd2, 0xae, 0x8e, 0x7b, 0x91, 0xd8, 0xb7, 0x49, 0xf9, 0x97, -0x78, 0xba, 0x7e, 0xcf, 0xb1, 0x91, 0x99, 0x7e, 0x60, 0x6f, 0x59, 0x51, 0x07, 0xd9, 0x25, 0xfc, -0x8f, 0x27, 0xe2, 0x3a, 0xe1, 0x1b, 0x0f, 0x47, 0x1b, 0x58, 0xc7, 0x80, 0xda, 0x51, 0x24, 0xf6, -0x27, 0x55, 0xbf, 0x0c, 0x85, 0xca, 0xb0, 0x90, 0x4e, 0xec, 0x69, 0xcd, 0xbb, 0xfa, 0x3f, 0xaf, -0x49, 0x87, 0x90, 0xb8, 0x22, 0x91, 0x16, 0xc1, 0x2c, 0x30, 0x71, 0xaf, 0xaf, 0x14, 0xa3, 0xcc, -0xa4, 0x5c, 0x9d, 0xdd, 0x0a, 0xf9, 0x4a, 0x92, 0xf5, 0x7e, 0xc6, 0x55, 0x09, 0xf7, 0x4a, 0x7a, -0x87, 0x96, 0x6a, 0x42, 0x79, 0xe5, 0x94, 0xea, 0xcd, 0xb3, 0x01, 0xcb, 0x5d, 0xec, 0xf2, 0x82, -0xec, 0x41, 0xfe, 0xdd, 0xbd, 0x0a, 0x5a, 0xe6, 0x78, 0xa1, 0xd9, 0x15, 0x7e, 0x07, 0x67, 0xbd, -0xd3, 0x70, 0xb4, 0x97, 0x76, 0x64, 0xbc, 0xe4, 0xc9, 0x49, 0xdd, 0x93, 0x69, 0xd8, 0xe0, 0xf6, -0xc2, 0x92, 0xe3, 0xeb, 0xc8, 0x77, 0xb2, 0x03, 0xf6, 0x26, 0x9a, 0x8c, 0x0e, 0x23, 0xe3, 0x77, -0x56, 0x7a, 0x6f, 0xc6, 0x03, 0x6d, 0xba, 0x89, 0x31, 0xa6, 0xa3, 0xf6, 0xb8, 0x0e, 0xe5, 0x40, -0x80, 0x2b, 0x52, 0xd6, 0xe4, 0x77, 0x38, 0x0e, 0x27, 0x3d, 0x59, 0xed, 0x3a, 0xec, 0xdb, 0x12, -0x6f, 0x2d, 0x78, 0x3c, 0x59, 0xce, 0xa9, 0x1c, 0xf9, 0x33, 0x77, 0xb8, 0x7b, 0x0f, 0xca, 0x39, -0x8e, 0xec, 0x4d, 0x8f, 0x87, 0xe7, 0xc5, 0xfc, 0x4c, 0x29, 0x5c, 0xd0, 0xdb, 0xd0, 0x45, 0xf1, -0x65, 0xbc, 0x35, 0x50, 0x86, 0xb9, 0x2b, 0x7c, 0xab, 0xe0, 0xde, 0xbb, 0x42, 0x50, 0x75, 0x57, -0x3d, 0xcc, 0xb9, 0x2b, 0x08, 0xfe, 0xbb, 0x02, 0x10, 0xf0, 0x2e, 0x84, 0xa0, 0xd4, 0x8c, 0xfd, -0x5e, 0x45, 0x51, 0x40, 0x34, 0x2d, 0x02, 0x94, 0x53, 0xdb, 0x51, 0xbe, 0x36, 0x20, 0x4c, 0xb3, -0x10, 0xa6, 0xbd, 0xf5, 0xfd, 0x92, 0x07, 0xdc, 0x5a, 0xa9, 0xf7, 0x50, 0xa9, 0x41, 0x94, 0x5b, -0x43, 0x58, 0x72, 0x1d, 0x96, 0xdc, 0x70, 0xd7, 0x2a, 0x58, 0x09, 0x8b, 0xb1, 0xdc, 0x7b, 0xb0, -0xdc, 0x46, 0x2c, 0xf7, 0x5e, 0x2c, 0x77, 0x89, 0x5a, 0x6e, 0x50, 0x2b, 0xf7, 0x37, 0xec, 0xbf, -0x72, 0xcf, 0xe3, 0x4b, 0x41, 0x69, 0x40, 0x08, 0x7a, 0xec, 0x35, 0x92, 0x71, 0xe2, 0x1e, 0x41, -0x40, 0x8b, 0xcf, 0x22, 0xa5, 0x62, 0x2f, 0x55, 0xa4, 0xb4, 0xcd, 0x8a, 0x85, 0x47, 0xbb, 0x45, -0x09, 0x07, 0xd4, 0x76, 0x0f, 0x6f, 0x03, 0xc3, 0xfe, 0x84, 0x38, 0x1f, 0x43, 0x3e, 0xfc, 0x79, -0xb8, 0x07, 0x31, 0x2e, 0x6f, 0xfe, 0xe8, 0xd8, 0x68, 0xbd, 0x7a, 0x26, 0x17, 0x37, 0x6b, 0xa9, -0x4c, 0x69, 0xa4, 0x78, 0x3e, 0xc5, 0xcf, 0x88, 0x1a, 0x25, 0xfd, 0xd9, 0x3e, 0xf2, 0x60, 0xad, -0xc6, 0x78, 0xe7, 0x51, 0x60, 0xdd, 0xf9, 0x33, 0xea, 0x8c, 0xb9, 0xc2, 0xf6, 0x5d, 0x24, 0x4d, -0x67, 0xcc, 0x98, 0x36, 0x05, 0xd7, 0xb2, 0xa4, 0x1d, 0xdb, 0xf1, 0x16, 0xce, 0x82, 0x09, 0x27, -0xf3, 0x85, 0xb2, 0xaa, 0xf3, 0xc6, 0x27, 0x80, 0x74, 0x8e, 0x7f, 0x8b, 0x1c, 0x6c, 0x33, 0x50, -0x7e, 0x39, 0x68, 0x7f, 0x00, 0xec, 0x6d, 0x53, 0x55, 0xbd, 0xb3, 0x2b, 0xa4, 0x31, 0x40, 0xfa, -0x6c, 0x8c, 0x65, 0x53, 0x53, 0x3a, 0x1b, 0x89, 0x58, 0x61, 0x5a, 0x1b, 0xa0, 0x6d, 0xda, 0x11, -0x2a, 0x85, 0x35, 0x18, 0xc6, 0x3c, 0x9a, 0x2e, 0x80, 0x63, 0x96, 0x72, 0xc1, 0x41, 0xfa, 0x1a, -0x7f, 0x9d, 0x8e, 0x97, 0x84, 0x23, 0x13, 0xb2, 0x53, 0xbc, 0xa4, 0x55, 0xd0, 0x28, 0x4d, 0x1d, -0x7e, 0x78, 0x98, 0x3c, 0x38, 0x55, 0xe1, 0x7a, 0xc1, 0x3b, 0x78, 0xb8, 0x62, 0x80, 0xae, 0xc0, -0xbd, 0xc8, 0x51, 0xdb, 0x01, 0xde, 0x05, 0xe0, 0x77, 0xd6, 0x7a, 0x68, 0x67, 0xf9, 0x92, 0xe3, -0x2b, 0x24, 0x39, 0x93, 0x39, 0xae, 0x99, 0x7f, 0xa3, 0x46, 0x47, 0x37, 0xa6, 0x1f, 0x61, 0xec, -0x3a, 0xc8, 0x91, 0xb7, 0x51, 0xa6, 0x77, 0xe6, 0xe1, 0x55, 0x4f, 0xb1, 0x8b, 0xe2, 0x50, 0x0b, -0x83, 0x3d, 0x1e, 0xbf, 0x5b, 0x1f, 0x98, 0x1b, 0x9a, 0x7b, 0x6a, 0x21, 0xcb, 0xdd, 0xf8, 0x61, -0xc0, 0x1f, 0xf2, 0xf7, 0xf7, 0x61, 0x6f, 0xb3, 0xbd, 0x21, 0xa8, 0xf0, 0xce, 0x87, 0x32, 0x5a, -0x41, 0x4a, 0x40, 0xc8, 0xe5, 0x0a, 0x9c, 0xea, 0xeb, 0x7f, 0x11, 0xd3, 0x29, 0x72, 0x0c, 0xed, -0x62, 0x01, 0x95, 0xb3, 0x3f, 0xb1, 0xe9, 0x71, 0xc4, 0xab, 0x6c, 0xc4, 0x9f, 0x2a, 0x4a, 0xd5, -0xf7, 0x50, 0x0b, 0x8e, 0x3e, 0xee, 0x80, 0x77, 0x1f, 0x19, 0x49, 0x18, 0xbb, 0x29, 0x3a, 0x67, -0x28, 0x10, 0xda, 0x77, 0xb4, 0x5b, 0x9a, 0xf2, 0x6e, 0x9f, 0x03, 0x46, 0x1e, 0x4a, 0xa7, 0x51, -0xa4, 0xa2, 0x91, 0xbe, 0x50, 0x20, 0x10, 0x90, 0x6a, 0x0e, 0xef, 0x43, 0xe9, 0xbd, 0xcc, 0xad, -0x7b, 0xf7, 0xb1, 0xe3, 0x5d, 0x24, 0xc5, 0x62, 0x8e, 0xb9, 0xa1, 0x5f, 0x1e, 0xc7, 0xfa, 0xde, -0x7d, 0xec, 0xf0, 0x2f, 0x1d, 0x7d, 0x08, 0x15, 0x4f, 0xa4, 0xb7, 0xf1, 0x91, 0x97, 0xf6, 0x23, -0xc5, 0xb4, 0x38, 0x8d, 0x9e, 0x69, 0x08, 0x23, 0xff, 0x89, 0x17, 0xa1, 0x8a, 0x22, 0xf3, 0x1c, -0x7e, 0x32, 0xd2, 0xb3, 0x0b, 0x65, 0xfd, 0x28, 0x8c, 0x9f, 0x4e, 0xc7, 0x03, 0x42, 0x88, 0x56, -0x38, 0xbd, 0x1c, 0xd5, 0x90, 0x7d, 0x84, 0x53, 0x2c, 0x26, 0x5a, 0xf7, 0x3c, 0x70, 0x02, 0xe9, -0x9b, 0x1c, 0x60, 0x6d, 0x9c, 0x86, 0xca, 0x5b, 0x1c, 0x35, 0x1d, 0x20, 0x3b, 0xe7, 0xb8, 0xc0, -0xfa, 0xaf, 0xf3, 0xca, 0xe7, 0x95, 0x4c, 0x3b, 0x94, 0x08, 0xcf, 0x8b, 0x1a, 0x1c, 0x5b, 0xc1, -0x7c, 0xba, 0x2f, 0x9a, 0x53, 0x39, 0x13, 0xf4, 0x8b, 0x1f, 0xf6, 0x55, 0x25, 0x80, 0xea, 0xdf, -0xd9, 0x1b, 0x3d, 0x7a, 0x74, 0x1d, 0x7e, 0x69, 0x3a, 0xdc, 0x1f, 0xe9, 0xfa, 0x97, 0x57, 0xa2, -0x7b, 0xea, 0x7e, 0x5b, 0x98, 0xfc, 0xb3, 0x75, 0xb1, 0x87, 0x67, 0x47, 0x43, 0x65, 0x9e, 0x9d, -0xea, 0x72, 0x4c, 0xaa, 0x4b, 0x5f, 0xfb, 0x04, 0xd7, 0x84, 0xe3, 0xb3, 0xf8, 0x11, 0xb5, 0xa6, -0x87, 0xb1, 0xa6, 0x63, 0x13, 0x6a, 0xda, 0xfb, 0xb9, 0x6a, 0x0a, 0x4d, 0xa8, 0xc9, 0x33, 0xa9, -0x26, 0xa3, 0x1d, 0x7b, 0x25, 0x1b, 0xf0, 0xd7, 0x72, 0xdd, 0x1a, 0x87, 0x27, 0xd4, 0xb8, 0x53, -0xd4, 0x88, 0xd8, 0x79, 0x99, 0xb0, 0x13, 0xe9, 0xa4, 0x1f, 0xc7, 0x21, 0x84, 0x34, 0xb3, 0x21, -0x85, 0x9d, 0x15, 0x1a, 0x76, 0x12, 0xc6, 0xb9, 0x23, 0xce, 0xe0, 0x1a, 0xb0, 0x1b, 0x5c, 0x84, -0x97, 0x3f, 0x2f, 0xfc, 0x0a, 0x62, 0x9c, 0xf4, 0x0b, 0xa3, 0x9e, 0x7c, 0x09, 0x2b, 0x88, 0x87, -0xc5, 0xa0, 0xf3, 0xf8, 0x1d, 0xd3, 0xf1, 0x4a, 0x78, 0x58, 0x26, 0xf0, 0x47, 0x22, 0x2f, 0xf5, -0x8f, 0x23, 0x56, 0x19, 0x11, 0x87, 0x52, 0x58, 0xe7, 0x24, 0xdf, 0xe2, 0x66, 0xc4, 0xb7, 0x32, -0x7a, 0xa3, 0xe2, 0xa1, 0x1b, 0x2c, 0xfd, 0xdd, 0xda, 0xb3, 0x27, 0xeb, 0xdd, 0xc7, 0x8f, 0xae, -0xa3, 0xf8, 0xb7, 0x88, 0x2b, 0x35, 0xa1, 0x57, 0x8f, 0x3e, 0x1e, 0xaa, 0x09, 0xd4, 0x78, 0xa6, -0xbc, 0xfb, 0xf8, 0x89, 0x87, 0x8c, 0xeb, 0x38, 0xb5, 0x36, 0xf4, 0x1a, 0x62, 0x48, 0x19, 0xa6, -0xf4, 0x38, 0xe1, 0xdd, 0x47, 0x8f, 0x26, 0xd2, 0xb9, 0x47, 0x7a, 0x4e, 0x74, 0x3b, 0x5f, 0x8b, -0xac, 0x25, 0xbc, 0x42, 0xcc, 0xf3, 0xbd, 0xf4, 0x4b, 0xc4, 0xab, 0x06, 0xa7, 0xc1, 0xa5, 0x3b, -0x86, 0x38, 0x47, 0x3b, 0x6b, 0x87, 0x37, 0x32, 0x4e, 0xd5, 0x91, 0x16, 0x95, 0x8a, 0x53, 0x16, -0x86, 0xbe, 0x44, 0xba, 0x81, 0xf8, 0x8d, 0xcb, 0xed, 0x65, 0x0d, 0x12, 0x9f, 0xa4, 0x1b, 0xee, -0x72, 0xc1, 0xb1, 0x44, 0x1c, 0xb1, 0xc8, 0xd1, 0x60, 0x0f, 0xac, 0x06, 0xd9, 0x52, 0x58, 0x50, -0xe4, 0x02, 0xe9, 0xff, 0x6f, 0x6c, 0xc1, 0xb1, 0x8d, 0xf4, 0x34, 0x3e, 0xbc, 0xa3, 0x27, 0x7a, -0x61, 0xa4, 0x97, 0xb4, 0xb6, 0xde, 0xee, 0x8f, 0x24, 0xf6, 0x24, 0xa2, 0x47, 0xeb, 0x7e, 0x6b, -0x48, 0x6a, 0xfe, 0xfd, 0x11, 0xb2, 0x34, 0xa6, 0x7e, 0x84, 0x6c, 0x48, 0x70, 0x5f, 0x08, 0x1f, -0x5f, 0x3b, 0xcc, 0xd3, 0x20, 0xfb, 0x8c, 0x3b, 0xe2, 0x42, 0xc8, 0xe2, 0x5d, 0xef, 0x44, 0xa8, -0x96, 0x50, 0xe4, 0xe1, 0x66, 0xb0, 0xe1, 0xca, 0xd1, 0x0c, 0x85, 0x5e, 0x23, 0x43, 0xf3, 0x21, -0xa4, 0x34, 0x4f, 0x12, 0x15, 0x6a, 0x31, 0x1a, 0x59, 0xe5, 0xe6, 0x54, 0xe2, 0x64, 0x22, 0x34, -0x2f, 0x30, 0x8f, 0xdf, 0x13, 0x54, 0x7d, 0xd7, 0xe6, 0x18, 0x7e, 0x11, 0x3c, 0xef, 0xf6, 0x9d, -0x4c, 0x70, 0x1e, 0x0b, 0x8d, 0xc8, 0xe4, 0x1c, 0xbf, 0x19, 0x3c, 0xf9, 0xb8, 0xeb, 0x57, 0x91, -0xb5, 0xbb, 0xd6, 0x52, 0xe4, 0x40, 0x84, 0x93, 0x4f, 0x85, 0x53, 0xf7, 0xce, 0x17, 0x21, 0x88, -0x69, 0x4b, 0x34, 0xcf, 0xfc, 0xdf, 0x16, 0x51, 0x0b, 0x70, 0x46, 0x97, 0x60, 0xcf, 0x5c, 0xe4, -0x97, 0x1f, 0x57, 0x0d, 0x8f, 0xe1, 0x44, 0xef, 0x89, 0x75, 0x3f, 0x7c, 0x83, 0xf0, 0x65, 0x0e, -0x45, 0x27, 0xd9, 0x5c, 0xe6, 0x06, 0x47, 0xb9, 0x1b, 0x39, 0x97, 0x66, 0x30, 0x3f, 0x71, 0x1e, -0x2c, 0x87, 0x7f, 0x45, 0x91, 0x94, 0x43, 0xf1, 0xdd, 0x40, 0x23, 0x2c, 0x45, 0x0e, 0x0f, 0x56, -0xc6, 0x4d, 0xe4, 0x9d, 0xd2, 0xc0, 0xa7, 0x36, 0x86, 0x52, 0x8b, 0xac, 0x6f, 0x53, 0xec, 0x73, -0xe3, 0xe0, 0x9d, 0x8b, 0x3d, 0x0e, 0xca, 0xe5, 0x15, 0xba, 0xa1, 0x9a, 0x98, 0xa5, 0xe2, 0x26, -0xc4, 0x64, 0xf7, 0xbf, 0x06, 0x87, 0x02, 0x51, 0x83, 0x7d, 0x1b, 0x14, 0x0a, 0x8f, 0x9f, 0xa7, -0x17, 0x44, 0x73, 0x4a, 0x5d, 0x88, 0xe1, 0x7d, 0xe5, 0x88, 0xe1, 0xa7, 0xc3, 0x51, 0x43, 0x19, -0x61, 0x7a, 0xa2, 0xf1, 0xe1, 0x7f, 0x1b, 0x8c, 0xbe, 0x46, 0xa3, 0xe7, 0xca, 0x3d, 0xbe, 0x8e, -0xfa, 0x10, 0x33, 0xe1, 0xea, 0x63, 0x43, 0x1e, 0xd7, 0x10, 0x79, 0xf4, 0x9f, 0x3f, 0x04, 0x3f, -0xf6, 0x25, 0x4a, 0x7d, 0x69, 0xfc, 0xfc, 0x7d, 0xd9, 0xf4, 0xdf, 0xee, 0x4b, 0x19, 0xf7, 0x25, -0x37, 0xa3, 0x2f, 0x88, 0x3b, 0x9f, 0xa3, 0x27, 0x43, 0x7f, 0xa6, 0x27, 0xcb, 0xff, 0x8b, 0x3d, -0x79, 0xfa, 0xbf, 0xdd, 0x93, 0x2a, 0xee, 0x49, 0x7e, 0x46, 0x4f, 0x8c, 0x34, 0x2a, 0x32, 0x8d, -0x8d, 0xf4, 0x39, 0x7a, 0x34, 0xf8, 0x67, 0x7a, 0x24, 0x6b, 0x3d, 0xd2, 0x28, 0x93, 0x47, 0xcc, -0x9d, 0x06, 0xc9, 0x0b, 0x21, 0x3a, 0x89, 0x21, 0xba, 0x44, 0xa7, 0x59, 0x70, 0x15, 0xfb, 0xe1, -0xa8, 0xc8, 0xec, 0xcb, 0x87, 0xc8, 0xbd, 0x70, 0x6f, 0x86, 0x98, 0xa7, 0x9b, 0x43, 0x11, 0x5c, -0xfd, 0x87, 0x07, 0x0f, 0x1f, 0xb9, 0xab, 0x01, 0xca, 0x9c, 0xd8, 0x27, 0xd6, 0xfb, 0x33, 0x54, -0x2d, 0x92, 0x0d, 0x55, 0x9d, 0x8a, 0xe2, 0xae, 0x7d, 0x10, 0xec, 0x46, 0x2c, 0xa9, 0xdf, 0x97, -0x3b, 0x18, 0x8c, 0x2d, 0xc7, 0x89, 0x53, 0x36, 0x58, 0x43, 0x5e, 0xaf, 0x43, 0xfb, 0x82, 0xdd, -0x77, 0x91, 0xef, 0xd8, 0xf2, 0x35, 0xba, 0x4e, 0x9d, 0x5c, 0x66, 0x27, 0xbd, 0x83, 0xec, 0xd0, -0x77, 0xb7, 0x00, 0xd2, 0xb1, 0x32, 0x5a, 0x41, 0x53, 0xd6, 0x1b, 0x48, 0x23, 0x7c, 0x3e, 0x13, -0x0c, 0xd6, 0x20, 0xd5, 0xf0, 0x20, 0xe7, 0x6c, 0x94, 0x8c, 0x1f, 0x6c, 0xed, 0x4d, 0x44, 0xd6, -0xee, 0x59, 0x05, 0xe5, 0xcb, 0x5e, 0xa3, 0x93, 0x01, 0xb6, 0x86, 0x30, 0x8d, 0x74, 0x8f, 0x74, -0x3b, 0xee, 0x40, 0xe6, 0xa4, 0x7b, 0x97, 0x80, 0x52, 0x5d, 0x34, 0xa7, 0x6a, 0x05, 0x42, 0xe9, -0xd1, 0x0a, 0x82, 0xd2, 0x82, 0xa8, 0x81, 0xa0, 0x15, 0x79, 0xa8, 0xf1, 0xb1, 0x97, 0x5f, 0x84, -0x10, 0x42, 0xa2, 0xc5, 0xa3, 0x3b, 0xa1, 0xd2, 0xab, 0x0c, 0x38, 0xad, 0xff, 0x97, 0x0f, 0x99, -0x6e, 0x19, 0xd2, 0x74, 0x8b, 0xe9, 0x0c, 0xc5, 0x0f, 0xa1, 0x48, 0x19, 0x55, 0x25, 0x02, 0x5e, -0x41, 0x37, 0x79, 0xb5, 0xd6, 0x9f, 0xe8, 0x3e, 0xb1, 0xae, 0x83, 0x68, 0xcb, 0xe3, 0xce, 0x08, -0x79, 0xef, 0x8d, 0x1a, 0x5d, 0x35, 0x48, 0x6b, 0xe2, 0x52, 0x0d, 0x52, 0x34, 0x29, 0xef, 0xcb, -0x3b, 0x10, 0x5e, 0x31, 0xab, 0x38, 0x0f, 0xb3, 0x57, 0xbf, 0xf5, 0x0a, 0xe9, 0xe2, 0xbc, 0xf3, -0xba, 0xb4, 0x73, 0x0b, 0x8d, 0x57, 0xdf, 0xce, 0x44, 0xf4, 0x84, 0x1c, 0xb2, 0x7c, 0x79, 0x80, -0x72, 0x55, 0xd0, 0x29, 0x04, 0x8f, 0xb0, 0xd3, 0x3e, 0x0b, 0x56, 0x46, 0x88, 0xaf, 0x74, 0xa9, -0xd1, 0x04, 0xfc, 0x48, 0x69, 0x97, 0x33, 0xff, 0xe8, 0x4a, 0xf3, 0xe3, 0xe2, 0x9d, 0x0b, 0x61, -0xd1, 0xb8, 0x7e, 0xe7, 0xda, 0xe8, 0xee, 0xa3, 0x34, 0xe6, 0x16, 0xa4, 0x29, 0xbd, 0x2f, 0xf7, -0x62, 0x0f, 0xe2, 0x75, 0xbf, 0xad, 0x62, 0x8a, 0xa2, 0x59, 0x2a, 0xb8, 0xb4, 0x93, 0xe5, 0x16, -0xc1, 0xc5, 0xd1, 0xfe, 0xaf, 0x1a, 0x0b, 0xc9, 0x8c, 0x69, 0x24, 0xe1, 0xe0, 0x90, 0x70, 0xe4, -0x4d, 0xd0, 0x93, 0xa5, 0xb7, 0x85, 0xa5, 0xf5, 0x61, 0x21, 0xad, 0xd3, 0x57, 0x28, 0xf9, 0xb5, -0x28, 0xc3, 0x71, 0x0b, 0x72, 0x6e, 0x23, 0xce, 0x9a, 0xb7, 0x2f, 0x20, 0xef, 0xa7, 0xdc, 0x5e, -0x0d, 0x25, 0xb7, 0xfb, 0xc1, 0x5c, 0xdc, 0x4c, 0x1a, 0xc3, 0xec, 0x35, 0x0e, 0x60, 0x8b, 0xbd, -0x65, 0x92, 0x4e, 0xf0, 0x3a, 0xe4, 0x0f, 0xf3, 0xf0, 0xae, 0x33, 0x43, 0x23, 0xd8, 0x09, 0x25, -0x70, 0x0f, 0xb4, 0xe1, 0xff, 0x39, 0xf8, 0x57, 0x8f, 0x4b, 0x5a, 0x1b, 0x72, 0xce, 0x51, 0x4e, -0x69, 0x83, 0xfb, 0xf8, 0xb7, 0xfc, 0x76, 0x71, 0x6a, 0x12, 0xe4, 0xab, 0x49, 0xae, 0xe2, 0xab, -0x59, 0x2e, 0xe3, 0x6b, 0x81, 0xec, 0xe1, 0xab, 0x5d, 0x76, 0xf0, 0xb5, 0x48, 0x2e, 0xfc, 0xfa, -0x72, 0x30, 0x82, 0x45, 0xb6, 0xf2, 0x35, 0x4f, 0x36, 0x73, 0x7a, 0x89, 0x6c, 0x70, 0x6e, 0x05, -0xf2, 0x70, 0x7f, 0xd9, 0x33, 0x97, 0xac, 0x87, 0x24, 0x3f, 0xcb, 0x8f, 0xf7, 0x22, 0x17, 0x6f, -0x0f, 0xaf, 0x80, 0xbc, 0x98, 0x88, 0x13, 0x6b, 0x11, 0x27, 0xdc, 0x70, 0x0e, 0xd3, 0x2c, 0x14, -0xb9, 0x12, 0x39, 0xa4, 0x12, 0x8e, 0xf6, 0x01, 0x30, 0x42, 0x7d, 0x9a, 0xa8, 0x81, 0xac, 0x6a, -0xb8, 0x9c, 0xab, 0x21, 0x0d, 0xe4, 0xf9, 0xca, 0x05, 0x55, 0x66, 0x3a, 0x95, 0x1e, 0x23, 0x3e, -0x61, 0x78, 0x2a, 0xfc, 0x3c, 0x62, 0x86, 0x43, 0xe5, 0x6a, 0x5b, 0x58, 0x4e, 0x6c, 0x17, 0xa7, -0x51, 0xa4, 0x6b, 0xfb, 0xd1, 0x62, 0x8e, 0x52, 0xc7, 0x7a, 0x20, 0x98, 0xd3, 0x94, 0x99, 0x73, -0xa2, 0x56, 0xee, 0x47, 0x6e, 0xce, 0x69, 0xe2, 0x9c, 0x4f, 0x46, 0xe3, 0x4e, 0x94, 0x51, 0xe5, -0xe6, 0xb8, 0x7d, 0x78, 0x3b, 0x4a, 0x91, 0xac, 0x43, 0xfc, 0xf1, 0x31, 0x7b, 0x31, 0x14, 0x34, -0x6c, 0x88, 0x19, 0x07, 0xba, 0x96, 0x4a, 0x72, 0x04, 0x47, 0xa6, 0x40, 0xae, 0x13, 0x36, 0xf0, -0x9d, 0xf5, 0x73, 0x2f, 0x2a, 0xc3, 0xc2, 0x5f, 0x29, 0x79, 0x29, 0x15, 0x72, 0x66, 0xe7, 0xb2, -0x49, 0x72, 0x66, 0x16, 0x63, 0x83, 0x2a, 0x67, 0x76, 0x80, 0x64, 0x48, 0x5b, 0x79, 0x60, 0x9d, -0x1b, 0xb1, 0x6d, 0x2b, 0x50, 0xfa, 0xa1, 0xb6, 0xe5, 0x62, 0xdb, 0x9a, 0xb0, 0x6d, 0xc5, 0x88, -0x3b, 0x7b, 0x7e, 0xff, 0xb8, 0xda, 0xb3, 0xde, 0x48, 0x42, 0xaa, 0xa9, 0xf9, 0x00, 0xca, 0xb9, -0xd4, 0x6e, 0xac, 0xa9, 0x94, 0xde, 0x08, 0xad, 0x13, 0x7e, 0x33, 0x27, 0xf5, 0xa6, 0x52, 0xfb, -0x66, 0xb1, 0xf8, 0xa6, 0x36, 0xf5, 0x26, 0xc0, 0x7d, 0xc4, 0x51, 0xc0, 0x51, 0x0a, 0xc8, 0xb8, -0x66, 0x6a, 0x91, 0x2e, 0x5c, 0x19, 0x16, 0x06, 0x9e, 0xe5, 0x28, 0xbd, 0xd7, 0x91, 0xdf, 0x49, -0x1c, 0x47, 0xa1, 0x9d, 0x40, 0xd2, 0xd3, 0x7e, 0xfc, 0xce, 0x8a, 0x52, 0xf7, 0x74, 0x55, 0xba, -0xde, 0x44, 0x3e, 0xad, 0xff, 0x61, 0x58, 0xb5, 0x36, 0xa8, 0xcb, 0xb4, 0x36, 0x58, 0x62, 0xa8, -0x3f, 0xac, 0x45, 0x0d, 0xb7, 0xab, 0xde, 0xb3, 0xf1, 0x4d, 0x9e, 0x53, 0x48, 0xf3, 0xe4, 0xd5, -0x50, 0x6e, 0xb7, 0xee, 0x24, 0x0c, 0x3e, 0x40, 0x7e, 0x0d, 0xad, 0x55, 0x30, 0x9d, 0x9f, 0xf6, -0x4e, 0xb0, 0x37, 0x28, 0x43, 0xec, 0x1d, 0xc0, 0xff, 0x3f, 0x86, 0xd5, 0xd0, 0x82, 0x6c, 0xd2, -0x00, 0x34, 0xc1, 0x23, 0x9c, 0x32, 0x00, 0x8d, 0xb0, 0x15, 0xff, 0x6f, 0x02, 0x3f, 0x5b, 0x0c, -0x90, 0x7f, 0x43, 0x5c, 0xf1, 0xd4, 0x7b, 0x13, 0x45, 0x1b, 0x62, 0xbb, 0x82, 0xbb, 0xc9, 0x0f, -0xa2, 0x94, 0x90, 0x3b, 0xe8, 0xa9, 0xf4, 0x01, 0xd2, 0x97, 0x50, 0xef, 0xf2, 0xa4, 0x87, 0xe5, -0xa5, 0x9c, 0xff, 0x09, 0xf9, 0x5e, 0xf5, 0xbb, 0x22, 0xb9, 0x41, 0xbd, 0x73, 0xca, 0xb5, 0xea, -0x9d, 0x5d, 0xae, 0x52, 0xef, 0x4a, 0xe4, 0x52, 0xf5, 0xce, 0x2c, 0xac, 0x16, 0xf0, 0xae, 0x40, -0x2e, 0x52, 0xed, 0x1d, 0xf2, 0x91, 0xbe, 0x0a, 0x3f, 0x89, 0x61, 0x3e, 0x59, 0x9d, 0xe8, 0x27, -0x91, 0xf7, 0x48, 0x7c, 0x95, 0xce, 0x59, 0x2c, 0x67, 0x5a, 0xa4, 0x1a, 0xa4, 0x14, 0xf9, 0x52, -0x80, 0x20, 0xcd, 0x76, 0x07, 0x35, 0xef, 0x9c, 0x83, 0xbc, 0xf0, 0x76, 0xc4, 0x9e, 0x4a, 0xc4, -0xa6, 0x0b, 0x82, 0x4a, 0x68, 0x67, 0x6c, 0x52, 0x80, 0x29, 0xc4, 0x05, 0x9c, 0x35, 0x24, 0x6f, -0x92, 0x95, 0xf3, 0x65, 0x0d, 0xf7, 0x08, 0xeb, 0x66, 0x22, 0xd6, 0xb1, 0xa6, 0x71, 0x8b, 0x3a, -0x5a, 0x73, 0x24, 0x2b, 0xe2, 0x2b, 0xe9, 0x43, 0x98, 0x48, 0x6f, 0xd8, 0x59, 0x43, 0x3a, 0x70, -0x48, 0x49, 0xfa, 0x95, 0x0b, 0xc5, 0x01, 0xd6, 0x24, 0xbb, 0x42, 0x5a, 0x1f, 0xa4, 0xe9, 0xa1, -0xce, 0xad, 0x0b, 0x19, 0x1a, 0x63, 0x7a, 0xde, 0xdd, 0x31, 0x0b, 0xdf, 0x94, 0x24, 0xab, 0x92, -0x0f, 0x51, 0x8f, 0xa0, 0x72, 0x66, 0x6a, 0xbd, 0x6b, 0x05, 0xf2, 0xf3, 0x1e, 0x30, 0xac, 0x46, -0x54, 0x81, 0xe9, 0xf1, 0xac, 0x81, 0x9e, 0xa8, 0xa9, 0x43, 0xd9, 0xbd, 0x1d, 0x29, 0xdc, 0x6a, -0x5f, 0x31, 0xe4, 0x94, 0x92, 0x14, 0xbd, 0x12, 0xf2, 0x3b, 0xa6, 0x1e, 0xdb, 0xca, 0x5a, 0x6c, -0x57, 0x66, 0x63, 0x6d, 0xb3, 0xfd, 0xca, 0x28, 0xcb, 0xa4, 0x39, 0xb8, 0xda, 0x91, 0x6e, 0x67, -0x65, 0x7d, 0x3f, 0x45, 0x36, 0x72, 0x1b, 0x6b, 0xd7, 0x1e, 0xe0, 0x18, 0x42, 0xa6, 0x2c, 0x3a, -0xd3, 0xb3, 0xc3, 0xbe, 0x6e, 0x8a, 0xd3, 0x84, 0x4f, 0xba, 0x98, 0xc9, 0x05, 0xb5, 0xbd, 0x43, -0xdd, 0xdd, 0xbd, 0xc1, 0x57, 0xa3, 0x26, 0x97, 0x1e, 0xef, 0x13, 0x74, 0xdf, 0x6c, 0x4c, 0x74, -0xd7, 0x26, 0xba, 0x13, 0x8e, 0xec, 0xde, 0x75, 0xfb, 0xbb, 0x7a, 0xd7, 0x66, 0xd6, 0xea, 0xa4, -0xb9, 0xd2, 0x53, 0x5c, 0x93, 0xae, 0x15, 0xfb, 0x9c, 0x4c, 0xd5, 0x5c, 0x8e, 0x35, 0x97, 0x8a, -0x59, 0x18, 0xd7, 0xb1, 0x0f, 0xce, 0x61, 0x55, 0xde, 0x15, 0x12, 0x05, 0xca, 0x70, 0xb8, 0x76, -0x07, 0x49, 0xee, 0x75, 0x20, 0x8d, 0x73, 0x46, 0x6c, 0x82, 0x9f, 0x35, 0x40, 0x69, 0xbe, 0x1b, -0xf2, 0x78, 0x15, 0x6c, 0x44, 0x3e, 0xc1, 0xe4, 0x73, 0x81, 0xb9, 0xd4, 0x5f, 0x59, 0x3d, 0x50, -0xdd, 0x62, 0x74, 0x4c, 0xb5, 0x2f, 0x94, 0xf5, 0x8e, 0x9b, 0x2a, 0x5d, 0x40, 0x3c, 0x44, 0x6e, -0x65, 0xb5, 0x2f, 0x3b, 0x34, 0xb8, 0x63, 0x6e, 0x8b, 0xc1, 0x7e, 0x13, 0xf2, 0x18, 0x20, 0xdd, -0x54, 0x89, 0x30, 0xfb, 0xd7, 0x7d, 0xad, 0xa0, 0xdf, 0x58, 0xb9, 0xe8, 0x5f, 0x5f, 0x5f, 0x09, -0xfa, 0x47, 0x4a, 0x57, 0x80, 0xf1, 0xa5, 0x57, 0x30, 0x25, 0x81, 0x77, 0xfa, 0x97, 0x06, 0x31, -0x6d, 0xb5, 0xc9, 0x00, 0xba, 0x7b, 0xd8, 0xe3, 0x77, 0xa5, 0x5f, 0xcf, 0x5e, 0xc5, 0xdb, 0x75, -0xef, 0x6d, 0xa3, 0x68, 0x4f, 0x95, 0x59, 0xa1, 0x5f, 0x56, 0x60, 0xe9, 0x55, 0xc1, 0xd2, 0xe5, -0x60, 0xf6, 0x2d, 0x87, 0xdc, 0x5f, 0x1c, 0x8a, 0x22, 0x67, 0xf4, 0xd2, 0x2f, 0x57, 0xe5, 0x44, -0x1e, 0x46, 0x19, 0xc5, 0xf3, 0xa0, 0x4e, 0x5e, 0xb3, 0x48, 0xdc, 0x29, 0x72, 0x9c, 0xdb, 0x69, -0x93, 0x22, 0xbb, 0x1a, 0x5a, 0x1b, 0x77, 0x61, 0x3f, 0x56, 0x46, 0x76, 0x2f, 0x07, 0x7d, 0x6b, -0x1d, 0xfe, 0x1a, 0x57, 0xd6, 0xfa, 0xf4, 0x83, 0xcd, 0x48, 0x89, 0xf3, 0xbd, 0xb9, 0xde, 0xa9, -0x08, 0x15, 0xa3, 0x7a, 0x76, 0xda, 0x2b, 0xcd, 0xad, 0xef, 0x97, 0x1d, 0xbe, 0x9b, 0x62, 0x8e, -0x19, 0x14, 0xbd, 0xc6, 0x70, 0xbd, 0xf7, 0x33, 0x56, 0xe1, 0x8a, 0x42, 0x54, 0xd5, 0xaa, 0xf1, -0x48, 0x47, 0xe7, 0x09, 0x1f, 0xaf, 0x3b, 0xfc, 0xa5, 0x35, 0x2f, 0x7d, 0x08, 0x9e, 0x28, 0xca, -0xfa, 0xba, 0x6d, 0x24, 0xbf, 0xc0, 0xe6, 0x5f, 0x1c, 0xc2, 0xf6, 0xf5, 0xe1, 0xdc, 0xa0, 0xf6, -0xad, 0x5e, 0x24, 0xee, 0x14, 0xb9, 0x25, 0xa3, 0x7d, 0x8b, 0xb9, 0x7d, 0xf5, 0xdc, 0xbe, 0x10, -0xb7, 0x2f, 0xa0, 0xb6, 0xcf, 0x8a, 0xb5, 0x67, 0x67, 0xd6, 0x5f, 0xbf, 0x59, 0xb6, 0x63, 0xeb, -0xec, 0x6a, 0xeb, 0xae, 0x79, 0x7b, 0x6d, 0xdb, 0x8e, 0xcd, 0x93, 0x0d, 0x0b, 0x47, 0x2f, 0x44, -0x4b, 0x83, 0xdc, 0xb2, 0x3e, 0x99, 0x56, 0x9f, 0xa9, 0xfd, 0x6b, 0xdd, 0xd0, 0xa2, 0x0f, 0xae, -0x7d, 0xe2, 0x50, 0x89, 0x09, 0xaf, 0x0f, 0x55, 0xcd, 0x0b, 0x27, 0xfe, 0xe6, 0x95, 0x50, 0x17, -0x54, 0x83, 0x8e, 0x66, 0xd0, 0xdf, 0xe0, 0x18, 0xdc, 0x85, 0xdc, 0x01, 0xac, 0xc2, 0xd5, 0xcb, -0xf3, 0xf2, 0xdc, 0x95, 0x26, 0xd6, 0x9e, 0x28, 0x97, 0x4d, 0x55, 0x73, 0x2b, 0xa7, 0x04, 0x90, -0x47, 0xf2, 0xd5, 0x0f, 0x1f, 0xba, 0x0b, 0x39, 0xaa, 0x39, 0xa6, 0x1f, 0xcf, 0x7d, 0xfa, 0x97, -0x27, 0x0e, 0x61, 0x9a, 0xef, 0xae, 0x7a, 0xa8, 0xac, 0x5a, 0xe8, 0x5e, 0x50, 0x3e, 0xb7, 0x92, -0x1c, 0x95, 0xfe, 0x78, 0x4f, 0xba, 0x8f, 0x32, 0xf7, 0xf1, 0x5e, 0xee, 0xe3, 0x62, 0xee, 0x63, -0xbd, 0xda, 0xc7, 0x02, 0x5f, 0xd0, 0x6b, 0xf2, 0xd5, 0xe0, 0x0a, 0x91, 0xd9, 0x93, 0x3d, 0x1f, -0xec, 0x94, 0x5d, 0xbe, 0xdc, 0x98, 0x4b, 0xf4, 0xf4, 0x06, 0x79, 0x32, 0xc6, 0x22, 0x3c, 0x6f, -0x65, 0xbe, 0x99, 0x5a, 0x5b, 0x1e, 0x35, 0x1c, 0x9d, 0x2b, 0x1b, 0x8e, 0xa1, 0x14, 0x79, 0x12, -0xe5, 0x70, 0x39, 0xe7, 0xe8, 0x5c, 0xf5, 0xbe, 0x32, 0xc5, 0xd3, 0x12, 0xf7, 0x87, 0x12, 0xe6, -0xc0, 0x82, 0x55, 0xaa, 0x84, 0x24, 0x38, 0x32, 0x6d, 0x16, 0x54, 0x54, 0xb9, 0xb5, 0x18, 0x66, -0x58, 0x02, 0x71, 0xa0, 0xc8, 0x7f, 0xe7, 0x94, 0x17, 0x83, 0xe5, 0xeb, 0xc8, 0x7f, 0x22, 0x0d, -0x9d, 0x43, 0x9a, 0x49, 0xa5, 0xa4, 0x7f, 0xd1, 0x8a, 0xb3, 0x3c, 0x87, 0x66, 0xb9, 0x37, 0xc8, -0xde, 0x8d, 0xa5, 0xbb, 0xaa, 0xc1, 0x71, 0x57, 0x00, 0x9c, 0x08, 0x3d, 0x17, 0x5e, 0xdd, 0xac, -0xfd, 0x48, 0x71, 0x96, 0x34, 0xab, 0xc9, 0x40, 0xc3, 0x86, 0x9d, 0xcd, 0x90, 0xbb, 0x6a, 0xef, -0xd7, 0x6b, 0x28, 0xd6, 0x42, 0x55, 0xa1, 0xa8, 0x1b, 0x6b, 0x3e, 0xa1, 0xce, 0xbf, 0xc5, 0xc8, -0x6b, 0x37, 0x62, 0xcd, 0x4b, 0xd4, 0x9a, 0xcd, 0x15, 0xfa, 0xa1, 0x7d, 0x76, 0xc3, 0x91, 0x5e, -0x92, 0xc6, 0x8f, 0x10, 0xff, 0x16, 0x9a, 0xe3, 0x86, 0xdc, 0x43, 0xbf, 0xb2, 0x4f, 0x39, 0xf2, -0x10, 0x45, 0x7b, 0x3b, 0x22, 0xf6, 0x0a, 0x91, 0x83, 0xbc, 0x4b, 0x9f, 0xb6, 0xc2, 0xa3, 0xdd, -0x07, 0x8a, 0x1d, 0xbd, 0x31, 0x71, 0xfa, 0xa1, 0x93, 0x5d, 0xa7, 0x7b, 0xb7, 0xac, 0x43, 0xf9, -0xd0, 0xef, 0x5d, 0x04, 0x75, 0x7f, 0xff, 0x66, 0xe0, 0x45, 0xa8, 0x5a, 0x38, 0x7a, 0xbe, 0x41, -0x06, 0x7d, 0x4b, 0x18, 0x25, 0x6a, 0xe4, 0x49, 0x9e, 0xbe, 0x8b, 0x20, 0x5d, 0x5a, 0xae, 0x0f, -0xbd, 0xea, 0x5b, 0x05, 0xa5, 0xa5, 0xa6, 0xd0, 0x2b, 0xf6, 0x9a, 0x6a, 0x5c, 0x9b, 0x24, 0x93, -0xb4, 0xa8, 0xd4, 0x12, 0x7a, 0x65, 0x47, 0x62, 0x65, 0xb8, 0x94, 0x2c, 0xcd, 0xf0, 0xae, 0xd5, -0x8f, 0x10, 0xc8, 0xa9, 0xf9, 0x03, 0x00, 0xed, 0x0e, 0x90, 0xd4, 0x80, 0xa9, 0x0f, 0xaf, 0x74, -0xe3, 0xbc, 0x34, 0xfe, 0xe2, 0xf5, 0x56, 0xfb, 0xf0, 0x42, 0x9f, 0xdf, 0x6b, 0x2a, 0x45, 0x3c, -0x39, 0xb2, 0xaf, 0x74, 0x3e, 0xe2, 0xe9, 0x34, 0x6f, 0x76, 0x1a, 0x4b, 0x69, 0xbc, 0x28, 0x9e, -0x5d, 0x29, 0x68, 0x75, 0xd8, 0x17, 0x95, 0xde, 0x82, 0x25, 0xf4, 0x61, 0x0d, 0x33, 0xb9, 0x86, -0xbe, 0x56, 0xff, 0x5d, 0x1c, 0x49, 0x1c, 0xdb, 0x52, 0xf6, 0xc4, 0x9b, 0x98, 0xaa, 0xe7, 0xf7, -0x6e, 0x5c, 0xb9, 0x8c, 0x2f, 0x0d, 0xb5, 0xda, 0x4b, 0x91, 0x6f, 0xde, 0xb8, 0xb0, 0xb4, 0xda, -0x3b, 0x75, 0x38, 0x40, 0x75, 0x5d, 0x5b, 0x03, 0xf7, 0xa7, 0x0c, 0xdb, 0x50, 0xf6, 0xe4, 0xab, -0xd2, 0x22, 0x9f, 0x25, 0x34, 0x38, 0xf0, 0xf0, 0xca, 0xc5, 0xa4, 0xc1, 0x4c, 0x77, 0xad, 0x61, -0x2e, 0xbf, 0xb4, 0x94, 0xfa, 0x3a, 0x35, 0xf4, 0x0a, 0x9d, 0x09, 0xa4, 0xfa, 0x51, 0xa2, 0xf6, -0xc3, 0x59, 0xba, 0xf0, 0xc8, 0x87, 0xf8, 0x1e, 0x7b, 0x80, 0xf8, 0x52, 0xd1, 0x7f, 0x83, 0x9a, -0xa8, 0x2f, 0x3e, 0xff, 0x13, 0xaf, 0xa6, 0x7a, 0x01, 0x70, 0x32, 0xd5, 0x0f, 0x80, 0x23, 0x88, -0x29, 0x39, 0xbe, 0xea, 0x27, 0xde, 0x2c, 0xa7, 0x5e, 0xbc, 0xba, 0x8b, 0xde, 0xbf, 0xac, 0xf6, -0x03, 0x60, 0xe7, 0xc6, 0x85, 0xbe, 0x6a, 0xaf, 0xa9, 0x3f, 0x50, 0xea, 0xbf, 0x1e, 0x9c, 0x70, -0x1e, 0x6d, 0xf4, 0x65, 0x0d, 0x63, 0x5b, 0xa9, 0x6e, 0x9f, 0x1e, 0xef, 0x4c, 0xd7, 0xe6, 0xa4, -0xd1, 0xe8, 0xaf, 0xf9, 0x53, 0x39, 0x48, 0x73, 0x31, 0xa3, 0x1c, 0xda, 0x93, 0x08, 0xfc, 0xc9, -0x72, 0x6e, 0x90, 0x83, 0xca, 0x41, 0xac, 0x0a, 0xbd, 0x45, 0xfb, 0x7c, 0x28, 0xb7, 0x0c, 0x3f, -0x14, 0x7e, 0xa8, 0xc5, 0x4c, 0xd2, 0xeb, 0xc9, 0x04, 0xe2, 0x57, 0x95, 0x6c, 0x5b, 0x14, 0x78, -0xfa, 0x45, 0x08, 0x8a, 0x94, 0x1f, 0x13, 0xce, 0x55, 0x11, 0xde, 0x6d, 0x59, 0x17, 0x79, 0xac, -0xfc, 0xa6, 0x70, 0x6f, 0x2b, 0x8c, 0xf5, 0x23, 0xf6, 0x55, 0x2c, 0x18, 0x7d, 0xef, 0x88, 0x2f, -0x80, 0xd4, 0xb0, 0x0c, 0x4b, 0x0b, 0x06, 0x19, 0x83, 0x55, 0x4c, 0xdc, 0x28, 0x30, 0x51, 0xa2, -0x91, 0xff, 0x10, 0x2a, 0x30, 0x4f, 0x09, 0x8d, 0x52, 0xd5, 0xfc, 0x9a, 0x4f, 0xfa, 0x40, 0xc5, -0xc5, 0x87, 0x53, 0xb8, 0xf8, 0xb0, 0xc0, 0xc5, 0xd2, 0xac, 0xd0, 0x2b, 0xa5, 0xfe, 0xb7, 0x5e, -0x99, 0x43, 0x63, 0xf8, 0xab, 0x97, 0x33, 0x71, 0xb1, 0xe6, 0x4f, 0xe0, 0xe2, 0x0f, 0xb4, 0xf1, -0xab, 0xa2, 0x7d, 0xb4, 0x92, 0xea, 0x4f, 0xb6, 0xa4, 0x71, 0x31, 0x90, 0x1a, 0xc3, 0x0a, 0x31, -0x82, 0xfd, 0xaf, 0xce, 0x99, 0xc9, 0xa5, 0xf7, 0xad, 0x74, 0xaa, 0xe3, 0x57, 0xb4, 0xb1, 0x86, -0x46, 0x6f, 0xf8, 0x5a, 0x48, 0xa5, 0x4a, 0x2e, 0xf5, 0x3f, 0xf9, 0x21, 0x94, 0xa4, 0xda, 0x7d, -0x4f, 0xaa, 0xdd, 0x75, 0x2a, 0x06, 0x62, 0xcb, 0xab, 0xb0, 0x7f, 0x73, 0x72, 0x43, 0xbf, 0xb2, -0x57, 0x2f, 0xfc, 0x7d, 0x07, 0xa8, 0x7d, 0x78, 0x5c, 0xed, 0xc3, 0x21, 0xc4, 0x76, 0x7c, 0x7f, -0xe4, 0x55, 0x6a, 0xfd, 0x75, 0x70, 0xf0, 0x07, 0x19, 0x38, 0x88, 0x35, 0xd9, 0x17, 0x55, 0xdd, -0xfd, 0x6f, 0x43, 0x88, 0x63, 0xc7, 0xab, 0x1e, 0x00, 0xc3, 0xbf, 0x11, 0x8e, 0x0d, 0x6b, 0xed, -0xc7, 0x14, 0x3d, 0xbf, 0xcb, 0xc4, 0xbf, 0x1a, 0x9a, 0x45, 0xfd, 0x81, 0x2a, 0xbf, 0x37, 0xf7, -0xda, 0x72, 0x3f, 0x17, 0xfe, 0xfd, 0x40, 0xe0, 0x0d, 0x95, 0x20, 0x72, 0x5c, 0xb7, 0x8d, 0x2a, -0xfe, 0xd1, 0xd7, 0x02, 0xbb, 0xae, 0xad, 0xf1, 0xcf, 0xe2, 0x1f, 0x97, 0xb3, 0x28, 0x80, 0x12, -0x76, 0x30, 0xdc, 0xdb, 0x92, 0x1b, 0xa9, 0xd1, 0x70, 0x31, 0x03, 0xcf, 0x10, 0xbb, 0xc2, 0x81, -0x16, 0x18, 0xdb, 0xa1, 0x52, 0x76, 0x07, 0x51, 0xf6, 0x8c, 0xff, 0xe2, 0xbc, 0xae, 0x42, 0xd5, -0x88, 0x36, 0x6b, 0x1a, 0xd1, 0x42, 0x4b, 0x98, 0x35, 0x87, 0x73, 0xe6, 0x8f, 0xfe, 0x2e, 0x5f, -0xd5, 0x1b, 0x4e, 0x4e, 0xb0, 0x0c, 0xca, 0x11, 0xe7, 0x1c, 0xed, 0xe4, 0xdb, 0xe4, 0x02, 0x72, -0xc6, 0x2b, 0x34, 0xd9, 0x84, 0xce, 0xf8, 0x90, 0xdf, 0xba, 0x3c, 0x3b, 0xa8, 0x7c, 0x14, 0x60, -0xab, 0x06, 0x25, 0x49, 0x71, 0x63, 0xb5, 0xf3, 0x07, 0x59, 0xbf, 0x1a, 0x4a, 0xb3, 0xa4, 0xac, -0x48, 0xcf, 0x00, 0x59, 0xcb, 0xbf, 0x16, 0xe9, 0xae, 0xd0, 0xef, 0x7c, 0x41, 0x49, 0x2e, 0x3b, -0xc7, 0xde, 0xb1, 0x34, 0x5e, 0xf3, 0x20, 0xe9, 0x54, 0xb9, 0xd4, 0xd3, 0x18, 0x92, 0xaa, 0x59, -0xfe, 0xbd, 0xea, 0x69, 0x81, 0x3c, 0xda, 0x23, 0x41, 0x58, 0x98, 0xeb, 0xf7, 0x9c, 0x1d, 0x64, -0x4d, 0x64, 0x33, 0xdb, 0xc3, 0x81, 0x9e, 0x62, 0xec, 0x59, 0xed, 0xb0, 0xa8, 0x6b, 0xb5, 0x6e, -0x17, 0x9d, 0xc8, 0x9e, 0xc6, 0x31, 0x1b, 0x62, 0x58, 0xe7, 0x96, 0x1a, 0x8e, 0x34, 0x33, 0x5f, -0x9c, 0xbf, 0x66, 0xea, 0xf1, 0xad, 0x6c, 0x2d, 0x92, 0xd2, 0xde, 0x25, 0xbb, 0x7b, 0x82, 0xbf, -0xd6, 0xc2, 0x07, 0xf5, 0x2f, 0x77, 0xc7, 0x5c, 0xad, 0xa6, 0x36, 0xdd, 0x8e, 0xee, 0xe8, 0x12, -0x39, 0x77, 0x4d, 0xd6, 0x9e, 0xee, 0x98, 0xe3, 0x41, 0xc3, 0xcb, 0xdd, 0xd1, 0x7a, 0x39, 0x40, -0xba, 0xd2, 0x52, 0xb5, 0x25, 0x11, 0x61, 0x7d, 0x69, 0xec, 0x39, 0xc2, 0xca, 0x97, 0x58, 0x4c, -0x92, 0xa2, 0xcf, 0x0e, 0x81, 0xea, 0x50, 0x35, 0xa5, 0x58, 0xba, 0xec, 0x70, 0xea, 0x61, 0xba, -0xbb, 0x05, 0x39, 0x09, 0xbe, 0xfa, 0x41, 0x7f, 0x0f, 0xe5, 0xca, 0xa1, 0x27, 0x29, 0xd1, 0x88, -0xf7, 0x91, 0x20, 0x79, 0x44, 0x20, 0xff, 0x6b, 0x03, 0xc1, 0x95, 0xa0, 0xdc, 0xe3, 0xd5, 0xd3, -0x38, 0x4b, 0xb5, 0x6c, 0x05, 0x85, 0xe3, 0xbe, 0x31, 0xf1, 0x16, 0xe5, 0xaa, 0x91, 0xcd, 0x81, -0x9a, 0x85, 0x24, 0x5b, 0x56, 0xd1, 0x8a, 0xb6, 0x0b, 0xe5, 0xa7, 0xd6, 0x21, 0xe4, 0x5f, 0x0a, -0x7f, 0xf3, 0x46, 0x71, 0xbd, 0x72, 0x10, 0x79, 0x5d, 0x3b, 0xc9, 0xce, 0xab, 0xa7, 0x1e, 0x7d, -0x0e, 0xfa, 0x48, 0x2f, 0x99, 0xf6, 0x0f, 0x26, 0xdb, 0x41, 0x39, 0xc0, 0x87, 0x5c, 0xc6, 0xe1, -0x21, 0xc9, 0x34, 0xdc, 0x97, 0x19, 0xb7, 0xc6, 0x09, 0xc4, 0xfd, 0x37, 0x50, 0x9c, 0xea, 0xad, -0x0c, 0x2f, 0x6c, 0x0d, 0x43, 0x2b, 0x17, 0xf3, 0x9b, 0xa9, 0xdc, 0x94, 0xe6, 0xb3, 0xb0, 0xb8, -0x7a, 0x41, 0x39, 0x36, 0x3b, 0xa4, 0x9c, 0x40, 0xe8, 0x9d, 0x44, 0xe8, 0x9d, 0x62, 0x7b, 0xa5, -0xd3, 0x6c, 0xff, 0x7c, 0x66, 0x22, 0x24, 0xa9, 0x3e, 0xda, 0xf3, 0xb5, 0xb7, 0x2a, 0x07, 0xed, -0xb7, 0x50, 0x49, 0x0f, 0x16, 0x9e, 0x24, 0x9b, 0x01, 0x2a, 0x89, 0x6c, 0x55, 0x6a, 0xb9, 0xb4, -0x13, 0x38, 0x16, 0xa7, 0x90, 0x33, 0x67, 0xbb, 0x0f, 0xb2, 0xf9, 0xe0, 0xb2, 0xf8, 0x8c, 0x78, -0x62, 0x79, 0x91, 0x20, 0xeb, 0xb9, 0xe7, 0x06, 0x82, 0x0c, 0x8b, 0x9b, 0xbe, 0xbd, 0xce, 0x7d, -0xd3, 0xdd, 0x6b, 0x77, 0x13, 0x34, 0x40, 0x09, 0x6b, 0xf1, 0x6b, 0xeb, 0xf7, 0x9c, 0x8e, 0xb0, -0xe7, 0x84, 0xa4, 0xf2, 0xec, 0x9f, 0xc0, 0x25, 0x13, 0xe2, 0x12, 0x62, 0x94, 0xcb, 0x83, 0xd2, -0x56, 0x33, 0x58, 0x57, 0x81, 0x7e, 0x0e, 0x5e, 0xf3, 0xf1, 0x5a, 0x8e, 0xf8, 0x65, 0x13, 0xf8, -0x75, 0x46, 0x9e, 0x80, 0x5f, 0x14, 0xd3, 0xc1, 0x96, 0x81, 0x5f, 0xe7, 0xdc, 0x25, 0x60, 0x08, -0x64, 0x79, 0x98, 0xe3, 0x2d, 0xa9, 0x52, 0xf7, 0xc3, 0xf7, 0xc7, 0xf5, 0x98, 0xdb, 0xa9, 0xe2, -0xcf, 0x7d, 0x72, 0x2e, 0xca, 0x45, 0x88, 0x4f, 0x6d, 0x06, 0x7c, 0x6a, 0xd0, 0xf0, 0x27, 0x0e, -0x16, 0x4b, 0xa4, 0x4b, 0x26, 0x3b, 0xd9, 0xab, 0xf6, 0x6a, 0x92, 0x4d, 0x17, 0x0b, 0x7c, 0xf2, -0x11, 0x76, 0xd0, 0xdb, 0x90, 0x3f, 0xe0, 0x6f, 0x83, 0x3c, 0x17, 0xe8, 0xde, 0x7d, 0x38, 0xd1, -0x95, 0x40, 0x4a, 0x78, 0x4f, 0x1f, 0x42, 0xe7, 0xaa, 0x9c, 0x2b, 0x4a, 0x90, 0x2c, 0x8d, 0x5d, -0xf2, 0xc1, 0x38, 0xcc, 0xf2, 0x23, 0x57, 0x48, 0x38, 0x9e, 0xc7, 0xf4, 0xc4, 0x30, 0x4c, 0x3a, -0xd8, 0x44, 0x75, 0x08, 0x6e, 0x2a, 0xb5, 0x20, 0x6d, 0x03, 0x86, 0x9e, 0x55, 0xc5, 0x37, 0x2b, -0xe3, 0x5b, 0xa3, 0x57, 0x4f, 0x39, 0xc9, 0x6e, 0x8c, 0xf1, 0xcd, 0xac, 0xe1, 0x1b, 0x62, 0x58, -0x7e, 0xeb, 0xd1, 0x59, 0x73, 0x49, 0x96, 0xd6, 0x39, 0x8f, 0x3d, 0x8a, 0x92, 0xdb, 0x41, 0x3e, -0x73, 0x67, 0x3c, 0x6b, 0x9b, 0x7a, 0xe4, 0x39, 0xd5, 0xb3, 0xc5, 0x8d, 0xf0, 0xcc, 0xfa, 0x27, -0xf1, 0x6c, 0x00, 0xa1, 0x34, 0x4c, 0xb9, 0x08, 0x33, 0xa4, 0x5b, 0xa8, 0xe6, 0x49, 0xd8, 0x11, -0x10, 0xd8, 0x81, 0x75, 0x08, 0xec, 0xf0, 0x0b, 0x7b, 0xc6, 0x3f, 0x85, 0x1d, 0xd4, 0x2b, 0xc6, -0xdb, 0x3c, 0x94, 0xb9, 0x0d, 0x25, 0x1e, 0xd2, 0xc0, 0x2c, 0x71, 0xa9, 0x7a, 0xe7, 0xc3, 0x28, -0xe9, 0x8e, 0x20, 0xf6, 0xb2, 0xfd, 0xfd, 0x6c, 0xb2, 0xda, 0x3b, 0x85, 0xf8, 0x7b, 0x1a, 0xf1, -0xf7, 0x0c, 0xe3, 0xef, 0x59, 0x2e, 0xf5, 0xdc, 0x8d, 0xf0, 0xcd, 0x73, 0xd3, 0xdd, 0x88, 0x6b, -0xdf, 0x5e, 0x4b, 0x78, 0xb7, 0x9b, 0x60, 0x03, 0x4a, 0x20, 0x8d, 0x6f, 0xbf, 0x3d, 0x3d, 0x09, -0xdf, 0x76, 0x5f, 0x1f, 0xdf, 0x8a, 0xc9, 0x92, 0x30, 0x49, 0xed, 0x44, 0x2c, 0xab, 0xc3, 0x95, -0x88, 0xb0, 0x2d, 0x48, 0xb4, 0x36, 0xb4, 0xe6, 0xf4, 0x53, 0x28, 0xe9, 0xdf, 0x44, 0xfe, 0x1c, -0x69, 0x15, 0xe5, 0x91, 0xc4, 0x9e, 0xe0, 0x1d, 0xb6, 0x95, 0x29, 0x3f, 0x62, 0xe3, 0x6f, 0xcf, -0xb0, 0x97, 0x26, 0x7f, 0x14, 0xf4, 0x64, 0xe5, 0x90, 0xd7, 0x0e, 0xbe, 0x6a, 0x84, 0xc8, 0xb1, -0x85, 0xea, 0x49, 0x8c, 0xee, 0x98, 0x07, 0x31, 0x83, 0x7b, 0x37, 0x84, 0x34, 0xb6, 0x95, 0xb5, -0xed, 0xc9, 0x6b, 0xc9, 0x09, 0x29, 0xec, 0xa8, 0xc5, 0xf7, 0xdd, 0x12, 0x42, 0xa5, 0x7d, 0xaa, -0xdd, 0x3f, 0xf2, 0x1c, 0xdb, 0x07, 0x90, 0xad, 0xcd, 0x1e, 0xa4, 0xd4, 0xad, 0xca, 0x11, 0xe5, -0x23, 0xa9, 0x58, 0x95, 0xff, 0xa7, 0xd9, 0xfd, 0xd2, 0x4c, 0x28, 0x40, 0xd8, 0xef, 0xc7, 0xd2, -0x07, 0xed, 0xfe, 0xfa, 0x27, 0x50, 0xc6, 0xcf, 0xef, 0xf8, 0xa2, 0x3d, 0xa0, 0xda, 0xa2, 0x5d, -0xa0, 0x11, 0x20, 0xbb, 0x52, 0xda, 0x3f, 0x98, 0xfc, 0x1d, 0xe5, 0x77, 0x15, 0xb8, 0x0d, 0xe2, -0xfc, 0xb6, 0x1d, 0xac, 0xb3, 0x94, 0x53, 0x88, 0xcf, 0xb3, 0x94, 0xd3, 0x64, 0x0b, 0x8d, 0x57, -0x9a, 0xe7, 0x87, 0x24, 0x43, 0xc6, 0xb9, 0x6e, 0x37, 0x9f, 0xdb, 0x6e, 0x26, 0x4e, 0x9d, 0xd3, -0xc5, 0x79, 0xee, 0x0b, 0xca, 0x01, 0x2d, 0xbd, 0x84, 0xcf, 0x73, 0x87, 0x12, 0x5b, 0x5e, 0x50, -0x0e, 0x79, 0x0d, 0x22, 0xcd, 0x65, 0x7c, 0x77, 0xfd, 0xb1, 0x75, 0xe4, 0x1b, 0x24, 0x01, 0xa1, -0x60, 0x68, 0xff, 0xb1, 0xee, 0x77, 0xeb, 0x70, 0xcd, 0x39, 0xe5, 0x98, 0xf2, 0xee, 0x23, 0x99, -0x27, 0xb9, 0x23, 0x58, 0xce, 0xbb, 0xe1, 0xd9, 0x01, 0xe5, 0xf4, 0xe4, 0x73, 0x5f, 0x7c, 0x73, -0x88, 0xdf, 0x9c, 0x61, 0xb8, 0xe4, 0xa7, 0xe1, 0xa2, 0xf6, 0xed, 0xf2, 0xf5, 0xfa, 0x46, 0xb0, -0xb0, 0x07, 0x1c, 0x48, 0x13, 0x23, 0xdd, 0x93, 0x61, 0x48, 0x9a, 0x1e, 0xf6, 0x15, 0xa9, 0x6f, -0xd8, 0xee, 0x89, 0x2d, 0x29, 0x5b, 0x11, 0x8e, 0xb3, 0x94, 0xfd, 0x65, 0xb3, 0x94, 0xa1, 0x91, -0x1a, 0xac, 0x71, 0x8f, 0x94, 0x35, 0xfc, 0x82, 0x32, 0x12, 0xe9, 0x41, 0x49, 0xde, 0x12, 0xda, -0x5f, 0xe6, 0x02, 0x2b, 0xb6, 0xa7, 0x77, 0x67, 0x62, 0x25, 0x8c, 0x2f, 0x71, 0xcc, 0x52, 0x4e, -0x38, 0x42, 0x2e, 0x17, 0x98, 0xdf, 0xa1, 0xd9, 0xd8, 0xed, 0xab, 0x1e, 0xde, 0x87, 0x14, 0xf7, -0x88, 0xa4, 0xc7, 0x6f, 0x8e, 0x21, 0x46, 0xe4, 0x91, 0xe5, 0x60, 0xf5, 0xef, 0xfb, 0xe0, 0x17, -0x83, 0x98, 0xdf, 0xcc, 0xb8, 0xd7, 0xaf, 0xe2, 0xde, 0xb9, 0xd0, 0x7b, 0x55, 0x12, 0xd9, 0xc0, -0x93, 0x65, 0x39, 0x96, 0x8e, 0x38, 0x06, 0xdb, 0x2b, 0x5d, 0x60, 0xc3, 0xeb, 0xb3, 0xe6, 0x99, -0xa4, 0xf9, 0x1f, 0xb3, 0x38, 0x90, 0x62, 0xed, 0x3a, 0x84, 0x4f, 0x39, 0x30, 0x3d, 0x6a, 0x96, -0x8d, 0xfc, 0xbc, 0xb4, 0x4d, 0x27, 0x9b, 0xe8, 0xee, 0x9f, 0x2b, 0x02, 0xd5, 0x28, 0x1d, 0x58, -0xca, 0xa1, 0xc5, 0x60, 0xac, 0x81, 0x9b, 0xcf, 0xd5, 0x94, 0xd5, 0xfc, 0xc7, 0x81, 0xff, 0x38, -0x07, 0xa6, 0xe2, 0xb0, 0x72, 0x7e, 0xf5, 0xcd, 0x83, 0x3d, 0xb4, 0xd3, 0x7f, 0xea, 0x1f, 0x70, -0x3e, 0x5d, 0x2a, 0x5e, 0x8e, 0x38, 0xfd, 0x51, 0x31, 0xf2, 0x57, 0xca, 0x27, 0xf8, 0x6b, 0x52, -0x46, 0xc3, 0x38, 0x77, 0x28, 0x56, 0x19, 0xce, 0xad, 0x71, 0x84, 0xc3, 0x79, 0x8a, 0xaa, 0x02, -0x7a, 0xe2, 0xac, 0x4a, 0xe7, 0xe2, 0x5f, 0x10, 0xff, 0x96, 0x93, 0x15, 0x24, 0x72, 0x74, 0x88, -0xdf, 0xbc, 0x3b, 0x3e, 0x0b, 0x4c, 0xf5, 0x7b, 0x7e, 0x43, 0x56, 0xcf, 0xae, 0xba, 0x8b, 0x86, -0xaa, 0x14, 0x0f, 0xb0, 0x3f, 0x63, 0xa7, 0x8c, 0xe7, 0x11, 0xed, 0xee, 0x0b, 0x6a, 0xad, 0xb3, -0x0a, 0x6a, 0xad, 0x33, 0xe3, 0xd8, 0x19, 0xec, 0x35, 0x48, 0x7b, 0xd2, 0x16, 0x84, 0xac, 0xf9, -0x50, 0x7d, 0x91, 0xe9, 0x45, 0x92, 0xe6, 0x34, 0xce, 0xdb, 0x2b, 0xe9, 0x79, 0xcd, 0xd8, 0x78, -0x8e, 0xb0, 0x10, 0xaf, 0xe4, 0x79, 0xe7, 0x08, 0x5e, 0x09, 0xa7, 0x8f, 0x36, 0x6c, 0x30, 0x7b, -0x18, 0x42, 0x4b, 0xf0, 0x8a, 0xb0, 0x89, 0x2d, 0xa1, 0x88, 0xbc, 0x7f, 0xae, 0xf4, 0xeb, 0x94, -0x7c, 0x5c, 0x2d, 0xf9, 0xa4, 0x5a, 0x32, 0x52, 0x08, 0x3b, 0x42, 0xf6, 0x5f, 0x8c, 0x01, 0xbf, -0x6c, 0xa1, 0xbb, 0x7f, 0xde, 0x26, 0x1b, 0xe9, 0xba, 0x7b, 0x17, 0x52, 0x1e, 0xa2, 0x0e, 0xaf, -0x31, 0x75, 0x38, 0x80, 0xbd, 0xb2, 0xdd, 0xb3, 0xef, 0xcb, 0x01, 0xe5, 0x2c, 0xc2, 0xee, 0x35, -0x2f, 0xf9, 0x82, 0xbd, 0x49, 0xa5, 0x06, 0xf9, 0x4c, 0x0d, 0xac, 0x1a, 0x65, 0x28, 0x23, 0xca, -0x40, 0xf1, 0xd7, 0x90, 0x02, 0xfd, 0xfa, 0x80, 0x80, 0xdd, 0x12, 0xb3, 0xb2, 0x5d, 0x85, 0xdd, -0x48, 0xe8, 0xbd, 0x39, 0x3e, 0xc2, 0x03, 0xc4, 0x01, 0x14, 0xa5, 0x75, 0x2e, 0xc4, 0x01, 0x14, -0xe6, 0x75, 0x52, 0x95, 0x0b, 0xf2, 0xcc, 0xb5, 0xa0, 0x5b, 0x59, 0x44, 0x18, 0xa2, 0x62, 0x44, -0xa1, 0x8a, 0x0b, 0x45, 0x71, 0x1d, 0xb5, 0x6a, 0xcf, 0x56, 0xb9, 0x30, 0xe0, 0xa7, 0xbb, 0xbd, -0x41, 0x39, 0x4f, 0xa4, 0xfd, 0xcb, 0x09, 0xd9, 0x24, 0xd2, 0xfe, 0xb5, 0x0d, 0x47, 0xdd, 0xa4, -0x8c, 0x94, 0x23, 0x86, 0x86, 0x5e, 0x6d, 0xbf, 0xf9, 0xb5, 0x6e, 0xda, 0x4b, 0x38, 0xfb, 0x13, -0xc4, 0xeb, 0xab, 0x58, 0x66, 0x01, 0xce, 0x9c, 0x63, 0x8e, 0xe5, 0x6a, 0x24, 0x54, 0x23, 0xc5, -0x38, 0x25, 0xcb, 0x6b, 0xa2, 0x43, 0x65, 0xcb, 0x49, 0x1f, 0x5d, 0x39, 0x85, 0x57, 0x27, 0x5e, -0xcf, 0x94, 0x2f, 0x47, 0xda, 0xb8, 0x40, 0x39, 0x37, 0xbb, 0x56, 0x49, 0x62, 0x99, 0x45, 0xca, -0x05, 0xf2, 0x24, 0x52, 0xbc, 0x82, 0x4e, 0x3a, 0xf0, 0xd7, 0xa4, 0x5c, 0x41, 0x6c, 0xb2, 0x7d, -0x6b, 0x5f, 0xa8, 0x1b, 0xcb, 0x1e, 0xe7, 0x73, 0x28, 0x37, 0x62, 0xa6, 0xbd, 0x8c, 0x30, 0x33, -0x80, 0x98, 0x19, 0x28, 0x0f, 0xbc, 0xfd, 0xc6, 0x5b, 0x6f, 0x50, 0x8d, 0xed, 0x37, 0x0f, 0x72, -0x3b, 0x4e, 0x51, 0x3b, 0x46, 0xe3, 0x3a, 0xd9, 0xc8, 0x76, 0xd5, 0xb4, 0xd3, 0x38, 0xc2, 0x70, -0x64, 0xde, 0xaa, 0x7c, 0xae, 0x77, 0x1a, 0xe1, 0xa0, 0x37, 0x07, 0xf1, 0xcf, 0x91, 0x89, 0x7f, -0xc7, 0xd7, 0x09, 0x18, 0x9a, 0x3b, 0x85, 0x5e, 0xbf, 0xb6, 0x0f, 0x81, 0x40, 0x5b, 0xec, 0x54, -0xf7, 0x21, 0x1c, 0x6e, 0xf6, 0x49, 0xa1, 0x46, 0x56, 0x75, 0x91, 0xd7, 0x13, 0xfd, 0x8f, 0x0e, -0xd2, 0xee, 0x84, 0xa0, 0xea, 0xba, 0x07, 0x55, 0xac, 0x5c, 0xed, 0xf3, 0x5f, 0xbb, 0x02, 0xba, -0x01, 0x39, 0x97, 0xd1, 0x77, 0xce, 0x3c, 0x58, 0x76, 0x72, 0x03, 0x52, 0xe3, 0xaa, 0xf0, 0x5a, -0xb2, 0xe9, 0xb7, 0xcf, 0x95, 0x02, 0xbb, 0x85, 0x3f, 0xad, 0x22, 0xc4, 0x1f, 0x1b, 0x9d, 0x11, -0xda, 0xaf, 0x98, 0xc0, 0x87, 0x5c, 0xff, 0x00, 0x8e, 0x77, 0xeb, 0x79, 0xd9, 0x42, 0xe9, 0xf6, -0xc1, 0x54, 0xca, 0xe5, 0x91, 0x6d, 0x60, 0x9e, 0xb8, 0xde, 0x79, 0x66, 0xe1, 0x7a, 0x57, 0xeb, -0xa1, 0xf5, 0x6e, 0x9d, 0xb7, 0x16, 0xca, 0xbc, 0xf3, 0x51, 0x5e, 0x9c, 0x0b, 0x55, 0x28, 0x61, -0xd2, 0xfe, 0x81, 0x05, 0x82, 0x77, 0x55, 0x43, 0xed, 0x5d, 0x7e, 0x08, 0xf1, 0xfe, 0x55, 0x38, -0x4e, 0x5a, 0x0e, 0x75, 0x84, 0xd9, 0x88, 0xbf, 0x53, 0xbc, 0x59, 0x29, 0xee, 0x1c, 0xe0, 0x27, -0x5e, 0x84, 0x3f, 0xf8, 0xa4, 0x40, 0xa0, 0x96, 0xdb, 0xe5, 0x97, 0x1f, 0xd4, 0xda, 0x75, 0x7b, -0xbb, 0x09, 0xfb, 0xc2, 0x3c, 0x86, 0xe0, 0x36, 0x8c, 0xc4, 0x6d, 0xa8, 0xb2, 0x49, 0x96, 0xbd, -0x15, 0x71, 0x14, 0xe9, 0x22, 0xca, 0xa9, 0xfe, 0xfa, 0xcd, 0x11, 0xf2, 0x79, 0x41, 0xfb, 0xfd, -0x9e, 0xbd, 0xd4, 0xe6, 0xbd, 0xf2, 0x1c, 0x2a, 0xe5, 0x76, 0xff, 0xff, 0xe6, 0xf7, 0xfb, 0xd8, -0x36, 0xc5, 0x40, 0x3d, 0x8f, 0x04, 0xc5, 0x1a, 0x3c, 0x3e, 0x98, 0xb6, 0x04, 0x39, 0x76, 0x1f, -0xae, 0xc1, 0x69, 0x29, 0x07, 0xe9, 0x20, 0xe9, 0xf3, 0xd9, 0x35, 0xc9, 0x06, 0xe7, 0x81, 0x33, -0xfc, 0xf6, 0xfb, 0x90, 0xc7, 0x98, 0x7b, 0x1e, 0xb9, 0x80, 0x4b, 0x88, 0x5f, 0x4e, 0xe5, 0xa3, -0xb8, 0x7d, 0xf8, 0x39, 0xc8, 0xc7, 0x19, 0xfa, 0x09, 0x53, 0xb2, 0xd1, 0x2f, 0x2f, 0x87, 0xaf, -0x28, 0xe3, 0x88, 0x63, 0xd6, 0x55, 0xb5, 0xa5, 0x44, 0x3d, 0xfd, 0x88, 0x91, 0x36, 0xde, 0xa3, -0x34, 0x32, 0x5e, 0x92, 0x9d, 0xf0, 0xf9, 0xd0, 0x9a, 0xff, 0xac, 0x23, 0x8c, 0xa2, 0xf5, 0xba, -0xbc, 0xda, 0x3b, 0xad, 0xdc, 0x8f, 0x7f, 0x44, 0xcf, 0xa6, 0x21, 0x56, 0x59, 0x78, 0x77, 0x6e, -0x2a, 0xb6, 0xa9, 0x8c, 0x30, 0xca, 0xd1, 0xaa, 0x9c, 0x72, 0xb6, 0x0a, 0x7d, 0x2f, 0x4d, 0x97, -0x0a, 0x27, 0x64, 0xc8, 0xb9, 0x0a, 0xea, 0xe8, 0x5c, 0x98, 0xe6, 0x87, 0xe6, 0x53, 0x2d, 0x66, -0x64, 0xdf, 0x39, 0x28, 0x21, 0x5d, 0x9f, 0x57, 0x77, 0x41, 0x60, 0xee, 0x82, 0x0f, 0xc1, 0x83, -0xd8, 0x93, 0x13, 0xee, 0x8d, 0xad, 0x61, 0x5e, 0x3d, 0x3b, 0x93, 0x57, 0xf7, 0x10, 0xaf, 0x4e, -0x18, 0xe0, 0xf1, 0x06, 0xc1, 0x87, 0xa3, 0x5f, 0x46, 0x7b, 0x93, 0x38, 0xf6, 0x95, 0x38, 0xf6, -0x55, 0x3c, 0xf6, 0x73, 0x1e, 0xd4, 0x7b, 0xe7, 0x81, 0x9f, 0x29, 0xd7, 0x4d, 0x69, 0xa9, 0x47, -0x0a, 0xd8, 0x83, 0xe1, 0x9e, 0xa8, 0x51, 0xce, 0x97, 0xbe, 0x64, 0xd1, 0x70, 0xcd, 0xd2, 0xfa, -0x11, 0x9d, 0x36, 0x5e, 0x93, 0xb2, 0xce, 0x83, 0xd8, 0x81, 0xb9, 0x2b, 0xe4, 0x76, 0x5f, 0x36, -0xcb, 0x57, 0x46, 0x4d, 0xbe, 0x7a, 0x70, 0xea, 0x49, 0xda, 0x05, 0x9c, 0x07, 0x1e, 0xac, 0xd5, -0x77, 0x17, 0x9d, 0x4e, 0x4d, 0xa8, 0xa9, 0x70, 0x30, 0x52, 0xdb, 0xb0, 0x61, 0x2f, 0x95, 0xb4, -0x5f, 0xae, 0xfa, 0xef, 0x7c, 0x8d, 0xb8, 0x60, 0x8a, 0xcc, 0xdd, 0xc3, 0xfc, 0xff, 0xf8, 0x47, -0x08, 0x8f, 0x5c, 0x15, 0x1f, 0x0c, 0xf5, 0x7b, 0x8e, 0xd6, 0xa7, 0xf0, 0xc1, 0xa6, 0xd9, 0x82, -0xa9, 0x16, 0x63, 0x79, 0x87, 0x3f, 0xc4, 0x59, 0xec, 0x02, 0xa7, 0x7d, 0x15, 0x98, 0x6f, 0xc5, -0x95, 0x0b, 0x9c, 0x3c, 0x32, 0x17, 0x68, 0x64, 0x48, 0x87, 0x48, 0xba, 0x9b, 0xc7, 0x06, 0x47, -0xbb, 0x32, 0x0f, 0x21, 0xac, 0xaf, 0xc0, 0x11, 0x42, 0x7e, 0xcb, 0xe8, 0xa4, 0x48, 0xe9, 0xd3, -0x56, 0xdf, 0xbc, 0x9f, 0xfc, 0x9b, 0x6d, 0x26, 0xfe, 0x1c, 0xb9, 0x1b, 0x17, 0x20, 0x5f, 0xe4, -0xcc, 0x26, 0xfd, 0x9e, 0x35, 0x50, 0x80, 0x18, 0xe3, 0x30, 0x90, 0xd6, 0xd8, 0x83, 0x50, 0x84, -0x6b, 0x6e, 0xa8, 0x3a, 0x50, 0xdd, 0x09, 0x85, 0x2e, 0xf8, 0x92, 0x6b, 0x9a, 0xc9, 0x00, 0xa6, -0x58, 0xb9, 0x6b, 0xea, 0xb9, 0xad, 0x83, 0x5b, 0x21, 0xe7, 0xfc, 0xf3, 0xaf, 0x6d, 0x05, 0x63, -0xa2, 0xe7, 0xd2, 0xb6, 0xfd, 0x5b, 0x21, 0x37, 0xd1, 0x7d, 0xe1, 0xb9, 0x7d, 0x5b, 0x21, 0x2f, -0x81, 0x52, 0xe3, 0xbb, 0x0f, 0x8b, 0x88, 0xda, 0xa7, 0xfa, 0xba, 0x61, 0x46, 0x35, 0x9d, 0x60, -0xe9, 0xe0, 0xcf, 0x7d, 0x35, 0xc3, 0xcf, 0x27, 0x5d, 0xc7, 0xb0, 0x87, 0x41, 0xea, 0xa1, 0xf4, -0xdd, 0x3e, 0xa7, 0x1b, 0xa9, 0x93, 0xb7, 0x01, 0x7c, 0xce, 0x85, 0x0f, 0x2a, 0xed, 0xca, 0x6a, -0xd0, 0xaf, 0xa5, 0x52, 0x91, 0x26, 0x94, 0xe9, 0x7b, 0xe9, 0xce, 0x13, 0x14, 0xf5, 0xd0, 0x5e, -0x2a, 0xf3, 0x5c, 0x74, 0x0a, 0x5e, 0x25, 0xf4, 0xa5, 0xec, 0x37, 0xb9, 0xc3, 0x8e, 0x80, 0xdc, -0x84, 0x72, 0xc9, 0x74, 0xd2, 0x73, 0xea, 0x84, 0xaa, 0x62, 0x30, 0x3c, 0xfd, 0xf8, 0x1a, 0xa8, -0x2c, 0x06, 0xe3, 0x53, 0x2f, 0x42, 0x45, 0x07, 0x54, 0x14, 0x83, 0x7e, 0xcb, 0x8b, 0x50, 0x85, -0x3c, 0x1a, 0x6b, 0x15, 0xa8, 0xfe, 0x0f, 0x8c, 0x42, 0x03, 0x6a, 0x24, 0xe1, 0xcd, 0x16, 0xba, -0x78, 0x6e, 0xf0, 0xd2, 0x88, 0xe0, 0xdd, 0xf1, 0xc4, 0xc8, 0x5a, 0xd2, 0x32, 0x78, 0xb9, 0xfb, -0x7e, 0x43, 0x89, 0xde, 0x51, 0x13, 0xe9, 0x99, 0xf7, 0x01, 0x98, 0x77, 0xbd, 0x08, 0xbe, 0xe8, -0x66, 0x47, 0x8e, 0x63, 0xa1, 0xbb, 0x1a, 0xe5, 0xac, 0x87, 0x62, 0x16, 0xd2, 0x18, 0x1b, 0x49, -0x90, 0xbe, 0xc1, 0x8c, 0xef, 0xbb, 0x4c, 0xb8, 0xfe, 0xe2, 0x68, 0x90, 0xbe, 0x2f, 0x69, 0x7f, -0xa9, 0x63, 0x6a, 0x15, 0x7e, 0xf1, 0x35, 0xed, 0x5b, 0xe9, 0x6e, 0xbb, 0x0b, 0x1c, 0xed, 0x37, -0xef, 0xef, 0x22, 0x6d, 0x83, 0x70, 0x77, 0x74, 0xb5, 0x49, 0x87, 0xd0, 0xce, 0x25, 0x19, 0xfc, -0xdd, 0x3e, 0xd1, 0xbb, 0x84, 0x8e, 0x74, 0x19, 0xec, 0x80, 0x10, 0x33, 0xf2, 0xb8, 0xe5, 0xff, -0xee, 0x39, 0x92, 0xd6, 0x4b, 0xbb, 0x52, 0xe9, 0x39, 0x34, 0x9a, 0x22, 0xf5, 0x6b, 0xd5, 0xa0, -0x4f, 0xa5, 0xe7, 0x62, 0xba, 0x2d, 0x95, 0x4e, 0x36, 0xec, 0x26, 0x1c, 0x8d, 0x3c, 0x96, 0xce, -0xbe, 0xf4, 0x9f, 0x5b, 0x89, 0x87, 0xfd, 0x9a, 0x1f, 0x8c, 0x72, 0x29, 0x6b, 0x04, 0xbb, 0x08, -0xfe, 0x36, 0xe7, 0x40, 0x7f, 0x93, 0x27, 0x6d, 0x7f, 0x4b, 0x71, 0xa7, 0x87, 0xb7, 0xb2, 0xdf, -0x37, 0x5c, 0x43, 0x84, 0xed, 0x19, 0x9f, 0xd4, 0x61, 0x59, 0xb7, 0xd2, 0x99, 0x92, 0x49, 0xf8, -0xef, 0x67, 0x2b, 0x4b, 0xc2, 0xc6, 0x61, 0x75, 0xed, 0x61, 0xab, 0x45, 0x47, 0x0b, 0x98, 0xcb, -0x11, 0x13, 0x2b, 0xf3, 0x90, 0x96, 0xe7, 0x41, 0x45, 0x15, 0xce, 0x7b, 0x1c, 0x01, 0xec, 0x2b, -0x3e, 0x1b, 0xa1, 0x4a, 0x32, 0x0c, 0xf7, 0x4e, 0xf4, 0x0d, 0xe9, 0x64, 0xfd, 0x5d, 0x7d, 0xbe, -0xf0, 0xee, 0x3e, 0xd9, 0x73, 0xa4, 0x03, 0xa2, 0x79, 0x69, 0xdb, 0xd7, 0xb7, 0xec, 0x44, 0xf7, -0x75, 0xe7, 0xb5, 0xbc, 0x99, 0x39, 0x4b, 0x20, 0x56, 0x24, 0x30, 0x87, 0x74, 0xba, 0x14, 0x45, -0xaa, 0x95, 0x0c, 0xa7, 0xfb, 0x82, 0x09, 0xfb, 0xbc, 0x36, 0x40, 0x2a, 0x53, 0x22, 0x57, 0x68, -0x9e, 0x8e, 0xe6, 0x8e, 0x1e, 0x39, 0x5e, 0xbf, 0x31, 0x55, 0xea, 0x46, 0x96, 0x9d, 0x40, 0xb7, -0x69, 0xb8, 0xd7, 0xe3, 0x25, 0xfd, 0x80, 0xc8, 0xda, 0xc3, 0xaf, 0xfd, 0x62, 0xb0, 0xf5, 0x2a, -0x7d, 0x55, 0xfa, 0xcb, 0x48, 0x17, 0x5b, 0xf3, 0x5a, 0x3c, 0xb5, 0xff, 0xf6, 0xca, 0xd2, 0x13, -0x9d, 0x84, 0x46, 0x15, 0xa4, 0x35, 0x1c, 0x27, 0xf5, 0xaf, 0x2a, 0xc2, 0x44, 0x17, 0x9c, 0x5e, -0x1f, 0xec, 0x45, 0x8c, 0x73, 0x43, 0x6e, 0x9b, 0x42, 0xa7, 0x35, 0xbc, 0xab, 0x6a, 0x8c, 0xd4, -0x90, 0x56, 0xc9, 0xde, 0xde, 0xd6, 0x4f, 0x30, 0x6f, 0x96, 0xc7, 0xff, 0x6f, 0xaf, 0x50, 0x4c, -0x01, 0xf2, 0xa9, 0xe7, 0xab, 0x19, 0x3e, 0x0f, 0xfa, 0xbb, 0x22, 0x50, 0x6a, 0xc7, 0xd5, 0xd0, -0x5e, 0x6d, 0x9f, 0xa9, 0xea, 0x24, 0xfb, 0xbd, 0x0b, 0x20, 0xd8, 0x06, 0xa5, 0x40, 0x3e, 0x0a, -0xe8, 0xd4, 0xe0, 0xae, 0x55, 0xf8, 0x50, 0x87, 0x94, 0xb1, 0x1e, 0x29, 0x4c, 0x03, 0x53, 0xc5, -0x08, 0xaf, 0x88, 0x8b, 0x91, 0x86, 0x1a, 0x58, 0x67, 0x76, 0x15, 0xf8, 0xd3, 0x3a, 0xb3, 0xf6, -0x80, 0x34, 0x2f, 0x0e, 0x72, 0x2e, 0x96, 0x61, 0xa3, 0x32, 0xec, 0x1f, 0xdb, 0x20, 0x92, 0x60, -0x2f, 0x1d, 0x96, 0x1d, 0x89, 0xa5, 0xe7, 0xec, 0xb9, 0xbc, 0xc6, 0x96, 0x22, 0x7f, 0x96, 0x7b, -0xe4, 0x97, 0x55, 0xcd, 0xbc, 0xe2, 0xf0, 0x7e, 0x18, 0x47, 0x3d, 0xf5, 0x7b, 0x5b, 0x68, 0x05, -0xf6, 0x06, 0x20, 0xc4, 0xfd, 0x2b, 0x95, 0x90, 0x3b, 0x38, 0x3c, 0x84, 0xeb, 0x5c, 0xdd, 0x5d, -0xf5, 0x58, 0xff, 0x7c, 0x88, 0x70, 0x8b, 0x16, 0x73, 0x4b, 0xee, 0xe1, 0x96, 0x34, 0x62, 0x4b, -0x4c, 0x13, 0x5b, 0xc2, 0x7a, 0xac, 0xfd, 0x91, 0xb5, 0xd8, 0x1e, 0x2f, 0x69, 0x28, 0x62, 0x9f, -0xf3, 0x24, 0xda, 0xf3, 0xcd, 0x1d, 0xee, 0x1b, 0x58, 0xbb, 0x14, 0xc6, 0x4f, 0xa9, 0xd0, 0x9f, -0x32, 0x77, 0xf4, 0x70, 0x7d, 0x6a, 0x2c, 0xf4, 0x93, 0x46, 0xc5, 0xa6, 0xce, 0x21, 0x9f, 0xb0, -0x8b, 0xa6, 0x98, 0xc0, 0xe4, 0x59, 0x12, 0xa5, 0x70, 0x03, 0x59, 0x30, 0x34, 0x45, 0x69, 0xcf, -0xa6, 0x5d, 0xbf, 0x33, 0xd1, 0xb4, 0xc4, 0x5a, 0x85, 0x5c, 0x5c, 0xd7, 0xb2, 0xc5, 0x3b, 0x13, -0xcb, 0x1a, 0x68, 0x87, 0xaf, 0xfa, 0x5c, 0x86, 0x6f, 0xde, 0x83, 0x34, 0xd7, 0xbe, 0x95, 0xb0, -0xc3, 0x7b, 0x0f, 0x4b, 0xd5, 0x87, 0x07, 0x69, 0x56, 0xbc, 0x35, 0x54, 0x7d, 0x79, 0x4b, 0xf0, -0xf0, 0x10, 0xd9, 0x46, 0xe0, 0xfd, 0xef, 0xfb, 0xec, 0x0e, 0x8b, 0xb4, 0x4d, 0xec, 0x2c, 0x4e, -0xf8, 0xf6, 0x35, 0xe4, 0x08, 0x15, 0x2d, 0xfe, 0x42, 0xba, 0x1d, 0xea, 0x0e, 0x24, 0xd9, 0x3a, -0xdb, 0xc8, 0xba, 0x45, 0xae, 0x64, 0xcf, 0x18, 0x69, 0x3d, 0x17, 0x77, 0x5e, 0x15, 0x90, 0x36, -0xb4, 0x75, 0x29, 0xe9, 0x43, 0x67, 0xef, 0x48, 0x44, 0x6d, 0xb2, 0x65, 0x86, 0xd0, 0x60, 0xc9, -0x9d, 0x21, 0x34, 0x58, 0x8c, 0x7c, 0x2d, 0xa8, 0xfe, 0x10, 0x0a, 0x45, 0x24, 0x4c, 0xd6, 0x45, -0xd9, 0xa5, 0xd6, 0xf5, 0x4d, 0xe5, 0xcc, 0xf5, 0xfc, 0x3d, 0x79, 0x90, 0x23, 0x75, 0xa4, 0x7c, -0x3e, 0x21, 0x17, 0x97, 0x87, 0x58, 0xb5, 0x43, 0x78, 0x59, 0x6a, 0x53, 0x84, 0xbd, 0x81, 0x88, -0x8c, 0x4b, 0xb6, 0x0a, 0xaa, 0xbf, 0x8e, 0xbe, 0xfb, 0x84, 0xff, 0x8a, 0x1a, 0xd6, 0x50, 0x21, -0x4d, 0x95, 0x0b, 0xaa, 0xa6, 0xca, 0xe5, 0xc9, 0x1e, 0x3b, 0x58, 0x53, 0x65, 0xf5, 0x8c, 0x1a, -0x28, 0xf1, 0xea, 0x9d, 0x37, 0x7d, 0xbb, 0x07, 0x39, 0xae, 0x15, 0x13, 0xf5, 0x54, 0x16, 0x8e, -0xfe, 0xfb, 0xf6, 0xfa, 0xcd, 0x33, 0x58, 0x53, 0x85, 0xbc, 0x5f, 0xb1, 0x27, 0x11, 0xa2, 0x19, -0xed, 0xaa, 0x1e, 0x8b, 0x78, 0x67, 0x62, 0xed, 0x72, 0xfb, 0xf0, 0xf3, 0xac, 0x91, 0x92, 0x53, -0xbf, 0xe7, 0x70, 0x2d, 0x52, 0xff, 0x02, 0xc7, 0x0b, 0xe4, 0x1d, 0x4e, 0x0a, 0x92, 0x07, 0x44, -0xe1, 0x9f, 0x69, 0x7c, 0xbb, 0xe6, 0x43, 0x52, 0xf5, 0xa2, 0x3f, 0xc4, 0x96, 0x0c, 0x64, 0xb5, -0x60, 0x22, 0xdf, 0xcc, 0xe4, 0x8f, 0x8b, 0x64, 0xa9, 0x58, 0x9e, 0x37, 0x4f, 0xb5, 0xe4, 0x4e, -0xe9, 0x71, 0x38, 0x5e, 0x04, 0x0b, 0x7b, 0x72, 0xb5, 0x3a, 0xd8, 0x17, 0x31, 0x69, 0x68, 0xf9, -0xd8, 0x43, 0xa8, 0x93, 0x74, 0x4a, 0x91, 0xfb, 0x42, 0xde, 0xd7, 0x49, 0x3e, 0xb2, 0x98, 0x57, -0x2c, 0x44, 0xa9, 0x11, 0x33, 0xcb, 0x56, 0x35, 0x36, 0xe9, 0xdd, 0x2f, 0x9d, 0x83, 0x96, 0xa8, -0x51, 0xf2, 0x23, 0x44, 0x0d, 0x3c, 0x0e, 0x75, 0x6a, 0x44, 0xd2, 0x93, 0xc8, 0x95, 0x79, 0x59, -0xf7, 0x7f, 0xa2, 0xc5, 0x47, 0xbd, 0xb0, 0xf7, 0x70, 0x75, 0xb3, 0xed, 0x4f, 0x37, 0xd3, 0xab, -0x09, 0x36, 0x3e, 0x33, 0xc9, 0xab, 0x90, 0x8b, 0xf5, 0x69, 0x9a, 0xc9, 0x76, 0x9c, 0x6d, 0x3f, -0x8e, 0x22, 0x2f, 0xe4, 0x28, 0x06, 0xe2, 0x0e, 0xae, 0xb1, 0xdd, 0xf8, 0x6d, 0xa7, 0x99, 0x74, -0xb3, 0x26, 0x6b, 0xb5, 0x08, 0x6d, 0x16, 0x1c, 0x3f, 0x03, 0x4b, 0x13, 0x45, 0xd2, 0xf4, 0x34, -0x8d, 0x4e, 0x5b, 0x07, 0xdc, 0xde, 0x79, 0xf2, 0x85, 0x97, 0x3f, 0x44, 0x48, 0x5e, 0x57, 0x9f, -0x85, 0x6b, 0xa3, 0x88, 0x2c, 0x6a, 0xa4, 0x79, 0x1c, 0x45, 0x8e, 0xd2, 0x89, 0xf4, 0xc6, 0xb0, -0xe3, 0x79, 0xec, 0x79, 0x2e, 0x8e, 0xb9, 0x49, 0xda, 0x61, 0x02, 0xc7, 0xdf, 0x38, 0xc9, 0x56, -0x64, 0xbe, 0xd0, 0x05, 0xc1, 0xf9, 0x6e, 0xa6, 0xb8, 0x99, 0x9c, 0x7a, 0x58, 0x68, 0xd7, 0x62, -0x19, 0x7e, 0xd2, 0x92, 0x46, 0xb8, 0x56, 0xbd, 0x8d, 0x23, 0x42, 0x36, 0xfc, 0xc4, 0xd7, 0xec, -0x7c, 0xf2, 0xfe, 0x7b, 0x33, 0x60, 0x91, 0xe1, 0x39, 0xc3, 0x49, 0xb1, 0x55, 0x97, 0x48, 0xd3, -0x59, 0x33, 0x70, 0xf0, 0xf0, 0x50, 0x28, 0xde, 0x07, 0xde, 0x62, 0xde, 0x89, 0xe2, 0x55, 0x25, -0xdd, 0x23, 0xea, 0xe5, 0x84, 0x5e, 0xd5, 0x80, 0xc1, 0x49, 0xbe, 0x6a, 0xcd, 0x4e, 0x9c, 0xe1, -0xae, 0xac, 0x63, 0x3d, 0xf8, 0xbf, 0x17, 0xff, 0x3f, 0x8f, 0xe9, 0x48, 0xbf, 0x5c, 0xc1, 0x76, -0xf0, 0xd6, 0x10, 0x77, 0x09, 0xe7, 0xdd, 0x75, 0x7f, 0xbf, 0x9f, 0xd6, 0x2c, 0x9a, 0xe3, 0xc3, -0x8f, 0x79, 0x41, 0x8b, 0x45, 0xe0, 0x2c, 0x66, 0x2b, 0xf5, 0x1e, 0x75, 0xed, 0x32, 0x1c, 0x7e, -0x93, 0x7c, 0xb8, 0x22, 0x95, 0xb6, 0x22, 0x0d, 0xf7, 0x80, 0x1e, 0x69, 0x22, 0xca, 0xe3, 0x48, -0x9b, 0x3c, 0x60, 0x0c, 0xd5, 0x06, 0x6a, 0x91, 0x0f, 0x2a, 0x86, 0x2f, 0x7a, 0xe6, 0x85, 0xe6, -0x06, 0xe6, 0xe2, 0x5d, 0xbe, 0x7b, 0x1e, 0xf1, 0x44, 0x78, 0x67, 0xb3, 0xcf, 0x23, 0x0e, 0x0a, -0xef, 0xbe, 0x64, 0xca, 0xc2, 0xb5, 0xba, 0xc2, 0x99, 0x7b, 0xf6, 0xe7, 0x07, 0x9f, 0x87, 0x1c, -0xe7, 0x4d, 0x67, 0x5f, 0x38, 0xf0, 0x3c, 0x18, 0xd7, 0xaf, 0x75, 0x4e, 0x3d, 0xfb, 0xdc, 0xbe, -0xe7, 0x21, 0x77, 0x7d, 0xd7, 0xa5, 0xad, 0x83, 0xcf, 0x43, 0xde, 0xfa, 0x84, 0x64, 0xd4, 0x56, -0xf3, 0x53, 0x8f, 0x27, 0x8c, 0x33, 0x89, 0xeb, 0x71, 0x7d, 0x9e, 0xef, 0x66, 0xd6, 0xe2, 0x2a, -0xdb, 0x42, 0xd1, 0xc4, 0x64, 0xd3, 0xcc, 0xb9, 0x78, 0x8f, 0x7f, 0xf3, 0x2f, 0xa0, 0x24, 0xd1, -0x4d, 0xda, 0x9c, 0xc7, 0xbb, 0x77, 0x92, 0x97, 0x63, 0x50, 0xcc, 0x69, 0xab, 0x10, 0xc2, 0x9d, -0x4c, 0x7e, 0x91, 0x78, 0x45, 0x9c, 0xf1, 0x06, 0x5c, 0xd5, 0xad, 0xe4, 0x95, 0x20, 0x8d, 0x35, -0x92, 0xcf, 0x64, 0x42, 0xfe, 0x52, 0x11, 0x1e, 0x20, 0x54, 0x7f, 0x0f, 0x79, 0x6f, 0x09, 0x1e, -0xd3, 0x30, 0xf0, 0x44, 0x93, 0x73, 0x12, 0x17, 0xf0, 0x1c, 0x73, 0x01, 0xae, 0x4c, 0x2e, 0x80, -0xfc, 0x47, 0xd0, 0xca, 0x4f, 0x51, 0xa2, 0x5d, 0x22, 0x86, 0x30, 0xeb, 0x03, 0x92, 0x56, 0x10, -0xcf, 0x98, 0x42, 0x4d, 0x83, 0xd0, 0xa1, 0xcd, 0x18, 0x5a, 0x43, 0x2e, 0x00, 0xca, 0xe6, 0xe4, -0x43, 0x28, 0xb0, 0x15, 0x4c, 0xc2, 0x4f, 0x0a, 0xfe, 0xea, 0xc1, 0x1a, 0x57, 0x30, 0xd5, 0x7c, -0x07, 0x9f, 0xd1, 0x4b, 0x61, 0xc2, 0x03, 0xf2, 0xff, 0xa6, 0xc5, 0x5a, 0x26, 0x5d, 0x5b, 0xa9, -0x9c, 0xeb, 0x48, 0xd3, 0x5b, 0x89, 0xe8, 0xde, 0x82, 0x0f, 0xd9, 0x47, 0x86, 0x83, 0x22, 0x0e, -0xcb, 0x2d, 0x29, 0xda, 0xbb, 0xbc, 0x2d, 0x07, 0x69, 0xef, 0x92, 0x6f, 0x26, 0x90, 0xe6, 0x9a, -0xf0, 0x2e, 0x92, 0xa1, 0x9b, 0x95, 0xc7, 0x31, 0x67, 0x43, 0xe0, 0xc6, 0xf5, 0xab, 0x12, 0xaf, -0x01, 0x95, 0x1a, 0x97, 0xa8, 0xd4, 0xd8, 0xf9, 0x85, 0xe5, 0x30, 0x05, 0xa6, 0xcb, 0x45, 0x33, -0x84, 0x5e, 0x61, 0xfe, 0x9d, 0x42, 0x7f, 0x30, 0x97, 0xd3, 0xf3, 0x64, 0x23, 0x5f, 0xad, 0x5a, -0xd4, 0x62, 0xa6, 0xd5, 0xeb, 0xea, 0x7e, 0xdb, 0x62, 0x68, 0x14, 0xb3, 0x97, 0x35, 0xc7, 0xa4, -0x49, 0x9a, 0x63, 0xc8, 0x63, 0x19, 0x36, 0x3e, 0x0f, 0xcb, 0xdb, 0x73, 0x70, 0x75, 0x5a, 0x53, -0xf3, 0x7b, 0x13, 0x7c, 0xb3, 0x0b, 0xd7, 0x2a, 0x13, 0x3e, 0xb5, 0x64, 0x78, 0x77, 0xcc, 0x83, -0x42, 0x70, 0xc2, 0x52, 0x6c, 0x59, 0x15, 0xb6, 0x6c, 0x29, 0x2c, 0x4e, 0x69, 0x88, 0x2d, 0x49, -0xe9, 0x87, 0x45, 0xe8, 0x0e, 0x25, 0xd3, 0x99, 0xd8, 0x46, 0x4f, 0x4a, 0xab, 0xab, 0x4a, 0xa4, -0xfa, 0x66, 0x62, 0x4b, 0xf3, 0x53, 0x39, 0xf2, 0xe4, 0x9c, 0xd4, 0xbd, 0x55, 0x4a, 0xa8, 0x9a, -0x5e, 0xfe, 0xeb, 0x6b, 0x7a, 0x31, 0xc6, 0x64, 0x60, 0xd0, 0x1d, 0x14, 0x9d, 0x39, 0x1f, 0x7f, -0x73, 0xc0, 0x86, 0xbf, 0xb9, 0x50, 0x80, 0xbf, 0xd8, 0xc2, 0x9a, 0x73, 0x08, 0xe5, 0x87, 0x55, -0x6c, 0x73, 0xb1, 0x47, 0x10, 0x53, 0x60, 0xc0, 0xc4, 0x31, 0xb1, 0x85, 0x56, 0x34, 0xad, 0xf6, -0x58, 0x5a, 0x15, 0x72, 0x0e, 0x81, 0xca, 0x55, 0x10, 0x46, 0x5e, 0xa1, 0x1e, 0x4a, 0xca, 0xbc, -0x50, 0xbb, 0xff, 0x70, 0x25, 0x9c, 0x5d, 0x28, 0xf8, 0xb3, 0xe3, 0xdd, 0xe4, 0x0d, 0xa6, 0xe3, -0xef, 0x6a, 0x0d, 0xa7, 0x9e, 0x0d, 0xd4, 0xcc, 0x7f, 0x1f, 0x4c, 0x0f, 0xea, 0x3c, 0x41, 0x79, -0xb9, 0xa3, 0x2e, 0x10, 0x90, 0xeb, 0xb0, 0x2f, 0x7a, 0xcf, 0x94, 0x77, 0x7f, 0x2e, 0x45, 0x3a, -0x94, 0xdd, 0x7d, 0xb1, 0x4a, 0x96, 0x36, 0xcb, 0x0e, 0xff, 0xd2, 0x59, 0x2d, 0xe5, 0xca, 0xf6, -0x0e, 0xb0, 0x7d, 0x79, 0x68, 0x5d, 0xcc, 0xd0, 0x65, 0x91, 0x8d, 0x36, 0xa8, 0x35, 0xbc, 0x6e, -0xe9, 0xd0, 0xed, 0x4e, 0x44, 0x4d, 0x91, 0xbe, 0xf8, 0xdf, 0xd5, 0x82, 0xac, 0x3f, 0xdd, 0x57, -0x31, 0x6d, 0x4b, 0xf5, 0xee, 0x85, 0xcb, 0x8e, 0x36, 0x3e, 0x12, 0x09, 0x04, 0xfc, 0xd8, 0xff, -0xec, 0x81, 0xc0, 0xd2, 0x6d, 0x47, 0x5e, 0x64, 0x8e, 0xed, 0x96, 0xe3, 0x89, 0x48, 0xcd, 0xae, -0x55, 0x50, 0x12, 0xdd, 0xa8, 0x69, 0x3f, 0x6b, 0x31, 0xd7, 0x03, 0x7a, 0xd9, 0x89, 0xf0, 0xd2, -0x2f, 0x66, 0xef, 0xe5, 0xf6, 0xb8, 0x09, 0x98, 0xee, 0x5a, 0x50, 0xc2, 0xd6, 0x0f, 0x0e, 0xa7, -0x69, 0x53, 0x44, 0x2f, 0x45, 0x76, 0xba, 0x20, 0x7b, 0xd9, 0x11, 0x7b, 0x28, 0x9e, 0xf6, 0xbe, -0x50, 0x22, 0xa2, 0xb2, 0xe3, 0xaa, 0x9d, 0x48, 0xc5, 0x4b, 0x99, 0x25, 0x74, 0xcf, 0x54, 0x7b, -0xc0, 0x8e, 0xb6, 0xa9, 0xec, 0x85, 0x37, 0xa1, 0x7a, 0xe3, 0xed, 0x6b, 0x9b, 0xc6, 0xd7, 0x7e, -0xf6, 0xe9, 0xba, 0x09, 0xd7, 0xe7, 0x2d, 0x64, 0x39, 0x85, 0xf7, 0x4f, 0xe3, 0xf5, 0x66, 0x7e, -0xf7, 0x0c, 0xfb, 0xe2, 0x7d, 0x16, 0x9f, 0x73, 0xf9, 0x59, 0x78, 0xf3, 0xbd, 0x49, 0x78, 0xf3, -0x25, 0x4b, 0x60, 0x04, 0xe7, 0x4e, 0x3b, 0xdc, 0x4b, 0x27, 0x32, 0x14, 0xd5, 0x86, 0x42, 0x14, -0xee, 0xe5, 0xf3, 0xbe, 0x41, 0x7a, 0xab, 0x80, 0xb2, 0x9f, 0x9f, 0x86, 0xd4, 0xbc, 0x07, 0xdb, -0xcc, 0xfc, 0xed, 0x70, 0x9c, 0x76, 0x12, 0xf8, 0x84, 0x8c, 0xfd, 0xfc, 0x0a, 0x8f, 0xb6, 0x1c, -0x3f, 0xc6, 0x0e, 0xfc, 0xc5, 0x39, 0xf2, 0x23, 0x79, 0x6f, 0x42, 0x3b, 0xc1, 0x60, 0xdf, 0xbf, -0x2f, 0x28, 0x49, 0x17, 0xe2, 0x35, 0xdb, 0xa0, 0x88, 0x38, 0x3c, 0x7e, 0x65, 0x3d, 0xf2, 0x0e, -0x09, 0x6d, 0x45, 0xfe, 0x59, 0xae, 0x13, 0x1a, 0x36, 0xc4, 0x9a, 0xe6, 0x5f, 0x71, 0x41, 0xb8, -0x85, 0x3c, 0xa6, 0x86, 0x37, 0xc5, 0x4c, 0x74, 0x22, 0x30, 0xfe, 0x54, 0xe3, 0x06, 0xd7, 0xa3, -0x81, 0x16, 0xa6, 0xb8, 0xd3, 0x89, 0x13, 0x23, 0x7f, 0x5c, 0x48, 0x83, 0x8b, 0xb9, 0xc7, 0xb4, -0xf3, 0x78, 0x85, 0xf5, 0x65, 0xf5, 0xaa, 0xa6, 0x26, 0xc5, 0x80, 0x4a, 0xbe, 0x1b, 0x27, 0x9b, -0xc0, 0xcc, 0x94, 0xd3, 0xc7, 0x89, 0x2f, 0x54, 0xa9, 0x1f, 0x59, 0xa7, 0xb5, 0xa8, 0xbb, 0x15, -0x57, 0xc8, 0x33, 0xb8, 0x53, 0xe8, 0xff, 0xf0, 0x19, 0xaf, 0xcb, 0xa5, 0xae, 0xfb, 0x39, 0x5e, -0xe2, 0xd3, 0xa7, 0x91, 0x7e, 0x2f, 0x9d, 0xf9, 0x08, 0xad, 0x66, 0x9d, 0x1b, 0xd7, 0xf1, 0x0f, -0x58, 0x5b, 0x94, 0xc6, 0xa6, 0x33, 0x42, 0xf6, 0xa9, 0x06, 0xf6, 0xff, 0x7d, 0x9a, 0x3c, 0xbd, -0x53, 0x4b, 0x25, 0xbf, 0x6b, 0x2b, 0xeb, 0x68, 0x8e, 0x6b, 0xb9, 0xda, 0x74, 0xa9, 0x5c, 0x27, -0xbe, 0x81, 0xd4, 0x0c, 0x39, 0xaf, 0xd3, 0xcc, 0xfd, 0xb0, 0x17, 0xdf, 0xcc, 0xb7, 0x2e, 0x60, -0xab, 0xc0, 0xe5, 0x20, 0x47, 0x1e, 0x96, 0x02, 0x73, 0x71, 0xf5, 0x67, 0x3e, 0xe0, 0x19, 0x2d, -0xf5, 0x5e, 0x91, 0xea, 0x12, 0xa9, 0x71, 0xd7, 0x44, 0x1e, 0xc2, 0x95, 0x88, 0x2d, 0x2d, 0xc0, -0xfa, 0xef, 0x58, 0x85, 0x54, 0x41, 0x2f, 0x2d, 0xf6, 0xbd, 0x08, 0x6e, 0x69, 0xf1, 0x2d, 0x41, -0xc8, 0xc6, 0xdf, 0x4e, 0x8a, 0x48, 0xd9, 0x01, 0x0b, 0xc4, 0x59, 0x4a, 0x99, 0x63, 0x31, 0xf6, -0xcf, 0x81, 0x7f, 0x9e, 0xfa, 0x1f, 0xf0, 0xde, 0xad, 0x0e, 0xf4, 0x19, 0xd6, 0x91, 0x86, 0xc5, -0xe4, 0xed, 0xac, 0x6b, 0x46, 0xc2, 0x46, 0xb1, 0xcf, 0x17, 0x87, 0x07, 0x6c, 0x10, 0x33, 0xee, -0xce, 0x5e, 0x36, 0x24, 0x3b, 0x99, 0x47, 0x59, 0x15, 0x4f, 0x73, 0x28, 0x3e, 0xe6, 0x50, 0xf4, -0x0c, 0x2b, 0x95, 0x43, 0x11, 0xb1, 0xc7, 0x3a, 0xab, 0x84, 0x87, 0x1d, 0x8d, 0xca, 0x39, 0x35, -0x8f, 0xe2, 0x0b, 0x0e, 0x23, 0x8f, 0x12, 0x5e, 0xce, 0x23, 0xdd, 0x8f, 0x23, 0x6d, 0xaa, 0xdf, -0x93, 0x1c, 0x68, 0x24, 0xed, 0x5a, 0xf6, 0x3a, 0x34, 0x91, 0xda, 0xe0, 0x9a, 0x51, 0x21, 0xa9, -0x72, 0xb0, 0x9d, 0x3c, 0x84, 0x87, 0x89, 0x8f, 0xa0, 0xb5, 0x0a, 0x79, 0xb4, 0xfc, 0xb6, 0xe9, -0x47, 0xb6, 0x83, 0x8c, 0x7c, 0x72, 0xbe, 0x9d, 0x78, 0x92, 0x45, 0x71, 0x10, 0x5a, 0xbc, 0x16, -0x9c, 0x6b, 0xf6, 0x84, 0xec, 0xb2, 0x7b, 0x70, 0x94, 0xba, 0xc8, 0x9a, 0x9b, 0x79, 0x96, 0x27, -0x91, 0xa6, 0xcd, 0x17, 0x91, 0xe9, 0xd3, 0x51, 0xbe, 0x0b, 0x81, 0x68, 0x1a, 0xfe, 0xa6, 0x62, -0xdc, 0x73, 0x3c, 0x08, 0x92, 0x19, 0x9a, 0x99, 0x0f, 0xa6, 0x71, 0x5e, 0x91, 0xf2, 0xd4, 0x43, -0x23, 0x8d, 0x72, 0x09, 0x73, 0xa2, 0xec, 0x35, 0x29, 0x49, 0xba, 0xc6, 0x66, 0xf6, 0x42, 0x1e, -0x98, 0x1c, 0xf5, 0x1e, 0xf1, 0xab, 0x4a, 0xf3, 0x76, 0x8b, 0x2b, 0x9f, 0x8b, 0xb4, 0x5f, 0x1d, -0x8b, 0x79, 0xe7, 0x78, 0x65, 0x19, 0x72, 0x35, 0x3e, 0x7d, 0x8b, 0xfe, 0x3e, 0xff, 0x59, 0x7f, -0xa5, 0x1f, 0x31, 0x3c, 0x0f, 0x59, 0xc7, 0x15, 0x60, 0xf4, 0x9a, 0x34, 0xcd, 0xae, 0x5f, 0x0f, -0xea, 0x03, 0x89, 0x29, 0x2d, 0xa6, 0x45, 0x01, 0x08, 0x28, 0x57, 0x23, 0x81, 0xd0, 0xbe, 0xd5, -0x7f, 0x57, 0x9b, 0x75, 0xe6, 0x1f, 0x6c, 0x59, 0xb5, 0x86, 0x86, 0x47, 0x02, 0xfa, 0x36, 0x9d, -0x2c, 0x49, 0xf7, 0x4a, 0xa6, 0x45, 0x89, 0x35, 0x63, 0x7b, 0x12, 0xcb, 0x2c, 0x92, 0x0e, 0xf9, -0x01, 0xd3, 0xe1, 0x37, 0x63, 0x86, 0x87, 0x2c, 0xb2, 0xfe, 0x75, 0x4b, 0x44, 0x7f, 0xa4, 0x4b, -0x5a, 0xcc, 0x74, 0xe7, 0x58, 0xdd, 0x6f, 0xab, 0xd8, 0xb3, 0x7b, 0x15, 0x45, 0x60, 0x77, 0xd8, -0x69, 0x75, 0x44, 0x8a, 0x8f, 0x57, 0xc9, 0xf1, 0x5d, 0x13, 0xa8, 0x2d, 0x72, 0xa5, 0x5b, 0x54, -0xae, 0xb5, 0x68, 0x79, 0x66, 0x8b, 0xde, 0xbe, 0xa6, 0x45, 0x44, 0x91, 0xcf, 0x3c, 0xbb, 0x1a, -0x59, 0x1f, 0xc8, 0x6e, 0x78, 0x24, 0x0e, 0x6d, 0xe4, 0xa3, 0xb6, 0x48, 0xba, 0x77, 0x8d, 0xb2, -0xa7, 0x2f, 0x96, 0x2b, 0x2c, 0x4e, 0x0a, 0x0c, 0x07, 0x7c, 0xbb, 0x11, 0x83, 0xdc, 0xfa, 0xff, -0x7c, 0x21, 0xb1, 0x36, 0xd2, 0xb5, 0xab, 0x6b, 0xe9, 0x49, 0xe1, 0x6d, 0xde, 0x5c, 0xa5, 0xd9, -0x61, 0x39, 0x54, 0x2e, 0xd1, 0x4e, 0x1c, 0x23, 0x49, 0x7e, 0xdf, 0x33, 0x89, 0xb1, 0x04, 0x9d, -0x11, 0x5b, 0xca, 0xe7, 0xd2, 0xed, 0xba, 0x9d, 0x5d, 0x4d, 0x66, 0x01, 0x5d, 0xe6, 0x61, 0x0e, -0xb3, 0x4f, 0x38, 0x1f, 0xaf, 0x64, 0x28, 0x2f, 0xe0, 0xaf, 0x95, 0x7f, 0xf3, 0xf8, 0xd7, 0xe2, -0x25, 0x7d, 0xf4, 0x99, 0x38, 0x36, 0x33, 0x69, 0x07, 0xfc, 0xd3, 0x8d, 0xec, 0xdf, 0x06, 0x60, -0xd7, 0x5d, 0x0f, 0x40, 0x3e, 0x78, 0xf0, 0xd7, 0x0a, 0x25, 0x9c, 0xef, 0x01, 0x30, 0xa3, 0xb8, -0x89, 0xb9, 0x4a, 0xf1, 0xdb, 0x7d, 0xc3, 0x15, 0x70, 0xb6, 0x4e, 0xec, 0x22, 0x1d, 0xeb, 0xa2, -0x55, 0x87, 0xa0, 0x7e, 0xea, 0x1f, 0x02, 0xfa, 0xf9, 0xe7, 0x78, 0xd5, 0xa9, 0x91, 0x5b, 0x70, -0xd5, 0xa9, 0xae, 0x14, 0xeb, 0x8e, 0x8e, 0xd6, 0x1d, 0x7b, 0x24, 0xae, 0x0c, 0x3c, 0x1c, 0xab, -0x64, 0xea, 0x5f, 0xf6, 0xd6, 0x7e, 0xe7, 0x5c, 0x29, 0x37, 0x50, 0x23, 0xdb, 0x1d, 0x5f, 0xde, -0x4f, 0xeb, 0xce, 0x2d, 0xb2, 0xd1, 0x0a, 0xb5, 0xfa, 0x5f, 0xde, 0x82, 0x3d, 0xa0, 0x75, 0xe7, -0x61, 0x6d, 0xdd, 0x51, 0xd7, 0x95, 0x63, 0xb8, 0xee, 0x54, 0xe3, 0xba, 0x83, 0x23, 0x35, 0x50, -0xbd, 0x74, 0x5b, 0xd9, 0x4d, 0xc7, 0x5f, 0x04, 0xea, 0x95, 0xe5, 0x58, 0x22, 0x12, 0xd8, 0x89, -0xf8, 0x13, 0x7d, 0x3c, 0x83, 0x6b, 0x63, 0x2e, 0x4c, 0x1d, 0x3d, 0x93, 0x74, 0x87, 0x09, 0x62, -0x9e, 0x36, 0xd2, 0x69, 0xcb, 0xf7, 0xea, 0xf0, 0xd7, 0xca, 0xbf, 0x79, 0xfc, 0x6b, 0x21, 0xcb, -0x57, 0xc4, 0x54, 0x33, 0xf3, 0x63, 0x7b, 0xae, 0xd2, 0xec, 0x2c, 0xd4, 0xac, 0x91, 0x88, 0xe6, -0xf1, 0xee, 0x2c, 0xd2, 0x3f, 0x84, 0x7c, 0x05, 0xcd, 0x2b, 0xd7, 0xa2, 0xdd, 0xc2, 0x82, 0xe1, -0x0a, 0xd6, 0x4e, 0xb0, 0x14, 0xde, 0x3e, 0xd5, 0xd1, 0x27, 0xdf, 0x73, 0x88, 0x1d, 0xd5, 0x67, -0xab, 0xcb, 0x75, 0xa1, 0x57, 0x25, 0x7f, 0xcd, 0xe5, 0x0a, 0x60, 0xdd, 0xe8, 0xec, 0x38, 0x04, -0x0c, 0x88, 0x8d, 0x79, 0x38, 0xea, 0xdb, 0xc1, 0x14, 0x35, 0xba, 0x75, 0xef, 0xbe, 0xd0, 0x97, -0x1d, 0x49, 0x34, 0xae, 0xdf, 0x95, 0x58, 0x79, 0x3e, 0x50, 0x53, 0x85, 0xd2, 0x16, 0x59, 0x9d, -0xb9, 0x16, 0x35, 0xac, 0x97, 0x02, 0x55, 0x7a, 0x59, 0x6f, 0xd9, 0xef, 0x33, 0xf5, 0xd7, 0xf2, -0x8e, 0xeb, 0x95, 0x36, 0x90, 0x97, 0x96, 0xe4, 0xfe, 0xe7, 0x8b, 0xa4, 0x6d, 0xe9, 0x5e, 0x8c, -0x65, 0x3c, 0x16, 0x6b, 0x60, 0x9d, 0xd2, 0xf0, 0x9a, 0x29, 0x83, 0x6b, 0x0b, 0xaa, 0x94, 0xc4, -0xa9, 0x7f, 0x94, 0xb2, 0x7f, 0xfd, 0xba, 0x14, 0x28, 0x98, 0x52, 0x9b, 0xfd, 0xd5, 0xb9, 0xe0, -0x95, 0x1d, 0x6b, 0xa0, 0xe0, 0x0b, 0x07, 0x12, 0x31, 0xc3, 0x06, 0x5c, 0xd3, 0x0b, 0xb0, 0x93, -0x6f, 0x58, 0xd6, 0xe8, 0xf6, 0x10, 0x6c, 0x1f, 0x4b, 0xc1, 0xb6, 0xaf, 0xd2, 0xf4, 0x54, 0xed, -0x1e, 0xaa, 0xe1, 0x48, 0xe3, 0xfa, 0x48, 0x17, 0x51, 0x07, 0x86, 0x70, 0xd7, 0xca, 0x8d, 0x24, -0x83, 0x10, 0x7c, 0xdf, 0x1a, 0x64, 0x6d, 0x00, 0xd2, 0xb0, 0x48, 0x59, 0x9d, 0xa5, 0x7c, 0x6d, -0x99, 0x65, 0xb8, 0x1a, 0x15, 0x9e, 0xbb, 0x54, 0xce, 0xc5, 0x2c, 0xc5, 0x55, 0xac, 0xb4, 0xd1, -0xde, 0x1c, 0xd2, 0x1c, 0x43, 0x7a, 0x35, 0x1f, 0xeb, 0x17, 0x2b, 0x8c, 0x16, 0xdf, 0xe6, 0xcf, -0x58, 0xd0, 0xa7, 0x7c, 0x09, 0x38, 0x33, 0x2c, 0xa3, 0x49, 0x4e, 0xc7, 0xd5, 0xeb, 0xba, 0x5e, -0x03, 0x74, 0x92, 0x90, 0x22, 0x91, 0xcb, 0xce, 0x0b, 0xfc, 0x4c, 0x48, 0x2c, 0x15, 0x85, 0xaa, -0x07, 0x47, 0xf2, 0x7c, 0x9e, 0xa3, 0xfa, 0x4c, 0x9e, 0xe6, 0xaa, 0x82, 0xe4, 0xef, 0x9b, 0xa4, -0x60, 0x3d, 0xc5, 0xd0, 0x34, 0x6b, 0xde, 0xda, 0x59, 0x12, 0x9f, 0x46, 0xa9, 0xb4, 0x6f, 0xaf, -0x7a, 0x77, 0x6c, 0xce, 0xf0, 0x8d, 0x3b, 0x4d, 0x7c, 0xc1, 0x1e, 0x1e, 0x9b, 0x55, 0x1f, 0xcc, -0xc2, 0x93, 0xfa, 0x05, 0x7a, 0x33, 0x13, 0xd3, 0xc1, 0x8c, 0xbf, 0x97, 0x85, 0xe7, 0x72, 0xfc, -0x2e, 0xc1, 0x67, 0x87, 0xb4, 0x66, 0x9c, 0x66, 0xcf, 0xbc, 0x62, 0x0d, 0xb4, 0x48, 0xfe, 0x99, -0x82, 0x4b, 0x6e, 0x49, 0x5b, 0x62, 0xa7, 0x34, 0xab, 0x48, 0x76, 0x3f, 0xf3, 0x0d, 0xb6, 0x96, -0xa1, 0xc8, 0x25, 0xe4, 0x23, 0x5a, 0xe0, 0xd7, 0xc4, 0x68, 0x12, 0x33, 0x85, 0x67, 0x53, 0x9b, -0x2a, 0x15, 0xb7, 0xb3, 0x54, 0xcc, 0x76, 0x26, 0x74, 0x3e, 0xc9, 0x1a, 0x5c, 0x7f, 0xc2, 0xa3, -0x81, 0x46, 0xc9, 0x11, 0xaf, 0x6d, 0x48, 0xcd, 0x0b, 0x53, 0x6b, 0x8e, 0x25, 0x96, 0x3b, 0xd1, -0x27, 0x39, 0xd2, 0x6c, 0xd2, 0xe7, 0xbd, 0x86, 0x6e, 0x73, 0x3c, 0x0a, 0x49, 0x52, 0x63, 0x52, -0xb0, 0xec, 0x5a, 0x0c, 0x66, 0xd5, 0x27, 0x6e, 0x31, 0x98, 0x70, 0x66, 0x18, 0x85, 0x77, 0x5b, -0xa7, 0xf0, 0x75, 0x6b, 0x10, 0x4f, 0x52, 0x0d, 0x4a, 0xad, 0x1f, 0xf0, 0x5e, 0x53, 0x77, 0xcc, -0xbe, 0x2c, 0x87, 0xda, 0x3d, 0xd0, 0x1d, 0x2d, 0x93, 0x2d, 0xac, 0x27, 0x93, 0x8f, 0xcf, 0x06, -0x7c, 0x76, 0xc8, 0x45, 0x96, 0x6d, 0x30, 0x4d, 0x2e, 0xf4, 0x6d, 0x83, 0x1c, 0x39, 0x1f, 0xef, -0xa7, 0xde, 0x42, 0x5a, 0x82, 0x3a, 0xfc, 0x9d, 0x06, 0x7a, 0xd9, 0x20, 0x6d, 0xa3, 0xdd, 0xe0, -0x42, 0x35, 0x36, 0x86, 0x4b, 0x6d, 0x0b, 0xed, 0x64, 0xfd, 0x87, 0x2a, 0x47, 0x0b, 0x0b, 0x55, -0xda, 0x6f, 0xf5, 0xb5, 0x70, 0x5b, 0x9e, 0x14, 0x6d, 0xa9, 0x68, 0x61, 0x7f, 0x5e, 0x4f, 0xaa, -0x6d, 0x39, 0x7f, 0x4d, 0x5b, 0xe6, 0x4c, 0x6a, 0x4b, 0x89, 0xec, 0x22, 0x8d, 0x1c, 0xfa, 0xf5, -0x59, 0x64, 0x7b, 0x1b, 0xe4, 0x59, 0x48, 0x8a, 0xe5, 0xd9, 0xa2, 0x7b, 0xb7, 0x6f, 0xb8, 0x8b, -0xf7, 0x93, 0x51, 0x5a, 0x97, 0x8d, 0x92, 0x45, 0xd0, 0x6d, 0x6a, 0x97, 0x38, 0x8d, 0x17, 0xd1, -0xc0, 0xec, 0xda, 0x29, 0xd4, 0x7c, 0xda, 0x7f, 0xa0, 0x93, 0x43, 0xb2, 0x9b, 0xa0, 0x88, 0x3b, -0x79, 0x1e, 0x98, 0x6e, 0xd6, 0x41, 0x56, 0xcc, 0x8c, 0xbf, 0x39, 0x51, 0xd0, 0x45, 0xe9, 0x74, -0x87, 0xac, 0x36, 0x56, 0xeb, 0x77, 0x75, 0xc5, 0xe4, 0x65, 0x39, 0xc8, 0x8b, 0x77, 0x61, 0xfa, -0x7d, 0xb2, 0x75, 0x75, 0xd6, 0x2e, 0xf2, 0xe6, 0xda, 0x4f, 0x7e, 0xec, 0x31, 0xa5, 0x8e, 0xac, -0x6f, 0xc9, 0xca, 0x80, 0x4e, 0x62, 0x2b, 0x96, 0x03, 0x9d, 0x69, 0x9a, 0x9c, 0x64, 0x93, 0x81, -0xf8, 0xd4, 0xf1, 0x95, 0x63, 0xdb, 0x58, 0x5b, 0xe3, 0x5c, 0xf1, 0x02, 0xe5, 0xc2, 0xec, 0x90, -0x72, 0x79, 0x76, 0x9d, 0xf2, 0xd1, 0x6c, 0x61, 0x0d, 0xf1, 0x09, 0xe1, 0x88, 0x3e, 0x00, 0x8a, -0x5c, 0x79, 0xc3, 0xef, 0x8b, 0xfe, 0xdc, 0xf7, 0xb3, 0x03, 0x4a, 0x92, 0xce, 0x0b, 0x6f, 0x58, -0xc2, 0x57, 0xe5, 0x82, 0x1b, 0xbe, 0x93, 0xfe, 0x5c, 0xe9, 0x64, 0xab, 0x21, 0x07, 0xf1, 0xbb, -0x5c, 0xe4, 0x03, 0x72, 0xb1, 0x1c, 0x73, 0xa4, 0xfa, 0xd5, 0x7d, 0x58, 0x56, 0xce, 0x2f, 0x71, -0x95, 0x91, 0xb4, 0x72, 0x6e, 0x4d, 0x95, 0x13, 0xc2, 0x72, 0x02, 0x58, 0x4e, 0x8d, 0xf2, 0x11, -0x7b, 0x03, 0xbf, 0x82, 0x25, 0x7e, 0x92, 0xe1, 0x03, 0xe1, 0x5c, 0x7a, 0x3f, 0x97, 0x63, 0x8a, -0x4c, 0xd5, 0x28, 0x88, 0x1a, 0x53, 0x44, 0x9d, 0x19, 0x29, 0x6b, 0xbe, 0x59, 0x62, 0x87, 0x90, -0xf4, 0x0e, 0x9c, 0x75, 0x52, 0x50, 0xdd, 0x9d, 0xb1, 0x91, 0xbf, 0x8c, 0x98, 0x19, 0xd7, 0xd5, -0x6e, 0x1c, 0x81, 0x4b, 0xec, 0x0f, 0x43, 0x8c, 0x55, 0x22, 0x16, 0x5e, 0x96, 0x43, 0xbe, 0x1a, -0xa2, 0xa0, 0xdf, 0x28, 0xe7, 0xe1, 0x58, 0x25, 0x62, 0x4d, 0x6d, 0x06, 0x7e, 0x26, 0x3b, 0x88, -0xc5, 0x34, 0xda, 0xa4, 0xeb, 0x44, 0x1e, 0xc4, 0xe9, 0x24, 0xbf, 0x0c, 0x57, 0xf1, 0x72, 0x37, -0x96, 0x2e, 0xfa, 0x62, 0x92, 0x82, 0x48, 0xdd, 0xf2, 0x3b, 0xec, 0x98, 0xb7, 0xe1, 0x73, 0xe6, -0xbd, 0x0d, 0xf3, 0x3a, 0x3e, 0x67, 0x5e, 0x07, 0xd9, 0x9c, 0x52, 0x5b, 0x99, 0x27, 0x08, 0x2d, -0xcb, 0x59, 0xad, 0xdb, 0x45, 0x9e, 0x9e, 0xcf, 0xca, 0x79, 0x6d, 0x59, 0x98, 0x22, 0xaf, 0x36, -0xf0, 0xf3, 0x51, 0xcc, 0xb7, 0xf5, 0x73, 0x96, 0x39, 0x13, 0xe5, 0xe7, 0xcf, 0x97, 0xd3, 0x2d, -0xbb, 0x3e, 0x67, 0xce, 0xe2, 0x63, 0x3f, 0x57, 0xfd, 0xbb, 0x87, 0x95, 0x11, 0xc4, 0x8e, 0x63, -0x38, 0xa2, 0x27, 0x70, 0x64, 0x4f, 0xce, 0x9e, 0xaf, 0x9c, 0x9a, 0x3d, 0x57, 0x39, 0xad, 0xf9, -0x88, 0x96, 0x1b, 0x3f, 0x67, 0x89, 0x33, 0x32, 0x4b, 0x24, 0x8f, 0xf1, 0xe4, 0x83, 0x1e, 0x4b, -0x3e, 0x81, 0x25, 0x9f, 0x22, 0xcd, 0x20, 0x2c, 0xf9, 0x0c, 0x96, 0x7c, 0x96, 0x24, 0x34, 0xd2, -0x5f, 0x55, 0x3d, 0x35, 0x0f, 0xa7, 0x23, 0x9d, 0x90, 0x97, 0x64, 0xd6, 0xd3, 0x48, 0x2e, 0xd4, -0x28, 0x9c, 0x99, 0xce, 0x68, 0x91, 0xaa, 0x6c, 0x66, 0xaa, 0x22, 0x28, 0x5e, 0x9e, 0x78, 0x1e, -0xee, 0x19, 0x7e, 0x1e, 0x0c, 0x8c, 0x7b, 0x8b, 0x3c, 0x41, 0xfb, 0x4a, 0xd5, 0xbb, 0x72, 0x9f, -0x1a, 0xa5, 0x8f, 0x75, 0xe6, 0x48, 0x97, 0x0c, 0xd7, 0x40, 0x75, 0x7f, 0x98, 0xf4, 0x3b, 0xa8, -0x07, 0x38, 0xef, 0x4d, 0x0e, 0xab, 0x9b, 0xbc, 0x95, 0x07, 0x69, 0xa7, 0x63, 0x75, 0xe1, 0x51, -0xf2, 0x76, 0x2f, 0x74, 0x3a, 0x8f, 0xcd, 0xbd, 0xa8, 0x24, 0x19, 0x2a, 0x73, 0x95, 0x13, 0xf3, -0x68, 0xa7, 0x79, 0x81, 0xaa, 0x39, 0x49, 0xed, 0x9e, 0x8f, 0xf2, 0x5e, 0x48, 0xd5, 0x8c, 0x6b, -0x61, 0xad, 0x14, 0xb5, 0xf5, 0x74, 0x12, 0x93, 0xb6, 0x31, 0xd4, 0xec, 0x9b, 0x90, 0x5a, 0x92, -0xa6, 0x77, 0x90, 0xec, 0xfa, 0x3d, 0xf3, 0x7f, 0x43, 0xd1, 0x19, 0xee, 0x46, 0x78, 0x4a, 0x6d, -0x46, 0xb2, 0xc6, 0xd4, 0x95, 0xb5, 0xe7, 0xed, 0x24, 0xcc, 0xfd, 0x29, 0xca, 0xa6, 0x26, 0x47, -0x09, 0xce, 0xdc, 0x12, 0x30, 0x2f, 0x50, 0xbd, 0xf5, 0xaa, 0x3d, 0x47, 0xc9, 0xc8, 0xe9, 0x67, -0xda, 0x9e, 0x27, 0x9e, 0xde, 0x1e, 0x7c, 0xfb, 0x12, 0x18, 0x2a, 0x58, 0x33, 0x21, 0x58, 0x7d, -0x84, 0xfe, 0x23, 0x7f, 0xf4, 0xab, 0xfd, 0x55, 0x81, 0xa7, 0x5f, 0x0d, 0x04, 0x7c, 0xd5, 0xa4, -0xe5, 0x5e, 0x55, 0x8f, 0xb0, 0x3c, 0x60, 0xb3, 0x16, 0x7a, 0x40, 0x57, 0xe4, 0x01, 0xbd, 0xc5, -0x03, 0x59, 0x8d, 0xeb, 0xc3, 0x24, 0xf5, 0x3d, 0x63, 0x36, 0x28, 0x4a, 0x34, 0x37, 0x3f, 0xf1, -0xc5, 0x79, 0xa0, 0xfb, 0x62, 0x2d, 0x52, 0x79, 0x80, 0xbe, 0x82, 0xe9, 0xc4, 0x69, 0x82, 0x22, -0xac, 0x71, 0x91, 0xf6, 0x66, 0xf7, 0x77, 0xe1, 0x2a, 0x69, 0x60, 0xb9, 0x0c, 0x4e, 0x75, 0x1d, -0x49, 0x18, 0xc9, 0xfa, 0x37, 0x71, 0xaa, 0xeb, 0xb8, 0x2e, 0x7f, 0x6d, 0x41, 0x31, 0xe8, 0xf4, -0x0f, 0xa9, 0x3e, 0x1d, 0xb2, 0x7f, 0x9c, 0xf0, 0x4e, 0xb9, 0x7e, 0xce, 0x2f, 0xce, 0x05, 0x1d, -0xe6, 0xd5, 0xa7, 0xfc, 0x3f, 0x64, 0x3f, 0x9d, 0xf0, 0x1a, 0x6f, 0x98, 0x57, 0x1f, 0x28, 0x86, -0xac, 0x48, 0x4d, 0xe3, 0xa3, 0xbb, 0x48, 0x17, 0x01, 0x94, 0xc0, 0x3b, 0x1f, 0x42, 0xd9, 0xdb, -0x87, 0x90, 0xf7, 0xc4, 0x31, 0x6a, 0x01, 0xdd, 0x53, 0xc8, 0xcb, 0x9e, 0xf9, 0x3f, 0x01, 0xa9, -0x4d, 0x35, 0x81, 0x1a, 0x01, 0x27, 0xb6, 0x09, 0xa8, 0x60, 0xcf, 0xeb, 0xf9, 0x05, 0x56, 0x84, -0x92, 0xae, 0xca, 0x5f, 0x98, 0x86, 0x57, 0x36, 0xc2, 0xeb, 0xac, 0x39, 0x1b, 0xe1, 0x25, 0x59, -0x8d, 0xef, 0xe5, 0xe8, 0xf5, 0xca, 0xa9, 0xb3, 0xa6, 0x5e, 0xc8, 0xef, 0x3e, 0x9f, 0xeb, 0xcb, -0xd5, 0x83, 0x72, 0x75, 0x3d, 0x20, 0x04, 0x89, 0xa7, 0x1c, 0xb4, 0x4e, 0x2f, 0x0d, 0x14, 0x21, -0x5c, 0xf2, 0xf5, 0x67, 0xa7, 0xe9, 0xb3, 0xa0, 0xd0, 0x3a, 0xe5, 0x83, 0x9c, 0xde, 0xac, 0xf2, -0xa9, 0xef, 0x4d, 0xd3, 0x4f, 0xc1, 0x55, 0x60, 0x6d, 0x1a, 0xba, 0x76, 0x94, 0x69, 0x2c, 0x59, -0x4f, 0x0e, 0xb2, 0x3d, 0x55, 0x35, 0x5b, 0x1c, 0x94, 0x51, 0x6b, 0x1d, 0xfe, 0x14, 0x9c, 0xf4, -0x0c, 0xa7, 0x6c, 0x4a, 0xf5, 0xc0, 0xa9, 0x75, 0x27, 0x12, 0xe4, 0xcf, 0x02, 0xe1, 0xb4, 0x6e, -0xc4, 0xe8, 0xcb, 0xed, 0x84, 0x42, 0xc0, 0x3c, 0x53, 0xd2, 0x79, 0x0a, 0xf4, 0xef, 0xdd, 0xa4, -0xcf, 0x56, 0x4e, 0x79, 0x72, 0x30, 0xef, 0x23, 0x5a, 0xde, 0xa3, 0xc6, 0xb3, 0xd3, 0x1e, 0xc9, -0xca, 0x5f, 0x7b, 0x3e, 0xc7, 0x09, 0xa7, 0x7a, 0x84, 0xef, 0x0b, 0x4c, 0xef, 0x39, 0x99, 0x45, -0x2d, 0xea, 0x9d, 0xf2, 0xc5, 0x00, 0x32, 0x73, 0xaa, 0xf7, 0x8b, 0x48, 0x70, 0xf1, 0xa3, 0xbb, -0x97, 0x13, 0xd4, 0xc7, 0x47, 0xcb, 0x75, 0x0c, 0xf7, 0x0f, 0xa1, 0x02, 0xb9, 0x52, 0x9c, 0xd9, -0x2d, 0x52, 0x20, 0x58, 0x9a, 0x25, 0x9f, 0x42, 0xde, 0x24, 0x84, 0x72, 0x6b, 0x90, 0x34, 0x47, -0x84, 0xcc, 0xaa, 0x5a, 0x32, 0x1d, 0xce, 0xb0, 0x69, 0xfa, 0xd3, 0x74, 0xdd, 0xfa, 0xdf, 0xa0, -0xeb, 0xa4, 0xe3, 0x8c, 0xf3, 0x16, 0xa9, 0x50, 0x1e, 0xe9, 0x6b, 0x92, 0xcc, 0x40, 0x31, 0x07, -0xca, 0x9a, 0xc1, 0x4c, 0x94, 0x68, 0x02, 0x5d, 0xff, 0x7c, 0x79, 0x05, 0x5d, 0xff, 0x7c, 0x79, -0xff, 0x6b, 0x74, 0xfd, 0xf3, 0x95, 0xe9, 0x91, 0x23, 0x9f, 0x33, 0xe7, 0x2c, 0xa4, 0xeb, 0x9f, -0x2f, 0x67, 0x49, 0x8a, 0x0a, 0x2f, 0x50, 0x46, 0x66, 0x87, 0x99, 0xae, 0x1f, 0x27, 0xad, 0xb0, -0xeb, 0xd0, 0xf5, 0xcf, 0x57, 0xe2, 0x8c, 0x1b, 0x95, 0x88, 0xf4, 0x9d, 0xa2, 0xec, 0x7d, 0x4e, -0xba, 0x3e, 0x81, 0xa2, 0x9b, 0x27, 0x51, 0xf4, 0xdc, 0xc9, 0x14, 0x9d, 0xed, 0x10, 0x92, 0xff, -0x05, 0xba, 0xce, 0x3d, 0x20, 0x6d, 0x7e, 0xe4, 0x8f, 0x4d, 0x6e, 0xeb, 0x35, 0x74, 0x7d, 0x2e, -0xd3, 0xf5, 0xab, 0x4c, 0xd7, 0xb1, 0xed, 0x2a, 0x8d, 0x67, 0x9d, 0xe7, 0xff, 0x0a, 0x5d, 0x47, -0xfc, 0x26, 0x7d, 0x35, 0x9f, 0x33, 0x83, 0xdb, 0x74, 0xcc, 0x67, 0x1f, 0x81, 0xb8, 0x9a, 0x30, -0x26, 0xcc, 0x79, 0xd0, 0xf0, 0x32, 0xe2, 0xae, 0xea, 0x49, 0x0a, 0xe0, 0x10, 0xca, 0x1c, 0x36, -0x6e, 0x19, 0x72, 0x57, 0xc8, 0x59, 0xe5, 0x57, 0xa0, 0x74, 0x5c, 0x89, 0x92, 0x5c, 0x15, 0x4a, -0xc6, 0x0e, 0xe1, 0xa1, 0x9e, 0x38, 0xb6, 0xfc, 0xa2, 0x2a, 0x70, 0xca, 0xf7, 0x7c, 0xde, 0xdc, -0x0f, 0xde, 0x2e, 0xbb, 0x3f, 0x77, 0x5e, 0xd7, 0xc9, 0xe7, 0x59, 0xe7, 0xfb, 0x04, 0xf6, 0x31, -0x15, 0x19, 0x11, 0xfb, 0x4f, 0x3a, 0x81, 0x17, 0x70, 0xec, 0x2e, 0xcd, 0x0e, 0x0a, 0x9e, 0x0e, -0x61, 0x93, 0xb2, 0x55, 0x56, 0x39, 0xba, 0x13, 0xd7, 0x70, 0x74, 0xea, 0x7e, 0xa4, 0xe0, 0xe8, -0xcc, 0x49, 0x65, 0x6f, 0x06, 0x64, 0x2a, 0x6f, 0x00, 0x19, 0x9a, 0x35, 0xf7, 0x2c, 0x33, 0x8b, -0x93, 0x65, 0x9c, 0x27, 0x61, 0xd9, 0xca, 0xd0, 0x5a, 0x8d, 0x29, 0x3c, 0xcb, 0x75, 0xe4, 0xf1, -0x6f, 0x4f, 0x15, 0xd6, 0x84, 0x5c, 0xa8, 0xad, 0x0c, 0x7b, 0x83, 0x3d, 0xb2, 0x62, 0x8f, 0xf2, -0x70, 0x9d, 0x36, 0x79, 0x10, 0x37, 0xe7, 0x50, 0xaf, 0x96, 0x83, 0xd9, 0xb5, 0x9c, 0xbd, 0x62, -0x1b, 0xa8, 0x67, 0x71, 0xaf, 0x1c, 0xfd, 0x2f, 0x7f, 0xe3, 0x93, 0x4b, 0xff, 0xcb, 0xdf, 0xdc, -0x31, 0xfc, 0x3c, 0xc7, 0x6d, 0x60, 0x08, 0x16, 0xd7, 0x21, 0xd6, 0x10, 0xf4, 0xe6, 0x21, 0xd6, -0xd4, 0x2a, 0x97, 0xe4, 0xfa, 0x1b, 0x95, 0x47, 0xa3, 0x40, 0xa3, 0x51, 0xe2, 0x9a, 0x54, 0x5e, -0xe9, 0x35, 0xe5, 0xcd, 0x13, 0xa3, 0x81, 0xe5, 0x5e, 0x42, 0x6c, 0xfd, 0x08, 0x47, 0xe4, 0x13, -0x1c, 0x11, 0xe2, 0xff, 0x47, 0x91, 0xcf, 0x4e, 0xce, 0xae, 0x57, 0xc6, 0x3f, 0xdf, 0x88, 0x2c, -0x49, 0x8a, 0xc8, 0x3b, 0x38, 0x22, 0x7b, 0xb5, 0x68, 0x7b, 0x13, 0x25, 0xa3, 0x14, 0x1d, 0x7b, -0x30, 0x63, 0x44, 0xce, 0xc9, 0xf9, 0x3c, 0x22, 0x00, 0xfb, 0x53, 0x63, 0x32, 0x82, 0x14, 0x32, -0x77, 0xf6, 0x72, 0x70, 0x2b, 0xfb, 0xf1, 0xd7, 0xa5, 0xbc, 0x36, 0x9b, 0x22, 0xf5, 0x0d, 0xe1, -0xaf, 0x43, 0x39, 0xc0, 0xba, 0xa3, 0x83, 0x48, 0x41, 0x0c, 0xd8, 0x6b, 0xbb, 0xd3, 0x05, 0x45, -0x2e, 0x17, 0x14, 0x90, 0x16, 0xb4, 0x07, 0x21, 0x80, 0x50, 0xcc, 0x23, 0xcd, 0x53, 0x92, 0x2d, -0x66, 0x93, 0xd6, 0xdf, 0xcb, 0x1e, 0xb5, 0xff, 0x24, 0x51, 0xc4, 0xbf, 0x46, 0xf2, 0xd7, 0xff, -0x95, 0x92, 0xcb, 0x10, 0x8f, 0x06, 0xfe, 0xaf, 0x94, 0x7c, 0xa7, 0x7c, 0xcf, 0xff, 0x95, 0x72, -0xcb, 0x87, 0xb7, 0x31, 0x2e, 0x1c, 0x44, 0x5c, 0xe0, 0x18, 0xa8, 0xb3, 0xc9, 0x77, 0xff, 0x31, -0x94, 0xac, 0x8e, 0xcf, 0x26, 0xfe, 0x79, 0x9e, 0x72, 0x12, 0xb1, 0x8c, 0xa8, 0x37, 0x45, 0xe6, -0x3e, 0x8b, 0xf4, 0xec, 0x3c, 0x62, 0xc5, 0x25, 0x9c, 0xa7, 0xe4, 0xf3, 0x77, 0x10, 0x65, 0xb0, -0x56, 0xe5, 0x00, 0xf9, 0x3d, 0x54, 0x86, 0x10, 0x57, 0xc8, 0xbf, 0x7f, 0x12, 0x7f, 0xf7, 0xa7, -0xf0, 0xe5, 0xe0, 0x9f, 0x96, 0xc9, 0x10, 0x5f, 0x38, 0xae, 0xf6, 0x9f, 0x39, 0x71, 0x4f, 0xa4, -0x4e, 0xdc, 0x0d, 0x7f, 0xea, 0xc4, 0x9d, 0x76, 0xf5, 0x2a, 0x58, 0x8b, 0xc1, 0xe5, 0x05, 0x8f, -0xd3, 0x2b, 0x34, 0x19, 0xe8, 0xfc, 0xd3, 0x19, 0x24, 0xdc, 0x23, 0x6d, 0x02, 0xa9, 0x86, 0xcf, -0x3e, 0xdd, 0xbc, 0x23, 0x63, 0x1d, 0xd8, 0x8a, 0x65, 0x17, 0xb1, 0xaf, 0x12, 0xd6, 0x19, 0xc8, -0x88, 0x08, 0x8c, 0x69, 0xb7, 0xb7, 0xd0, 0x1e, 0x8e, 0x76, 0x72, 0xe9, 0xa2, 0x93, 0xcb, 0x21, -0x6f, 0x96, 0xd7, 0x30, 0xa1, 0x0f, 0xbf, 0xed, 0x2c, 0xa4, 0x3d, 0xb3, 0xfa, 0xef, 0x22, 0xdf, -0xfd, 0x34, 0xef, 0x2a, 0x7a, 0x61, 0x13, 0xf6, 0x65, 0x0b, 0xb6, 0xe3, 0x69, 0xe2, 0x18, 0x9d, -0xc4, 0xf5, 0x7b, 0x40, 0x22, 0xde, 0x7b, 0x80, 0xfc, 0x86, 0xf6, 0xd1, 0x79, 0x87, 0x93, 0x63, -0x82, 0x38, 0x2c, 0x7c, 0x92, 0x6e, 0x48, 0xed, 0x64, 0x14, 0x0a, 0xcf, 0x57, 0x6e, 0x20, 0xa9, -0x07, 0x73, 0x57, 0x91, 0x45, 0x12, 0xce, 0x87, 0x32, 0x7c, 0x27, 0xd1, 0x3b, 0x8e, 0x29, 0xaa, -0x7a, 0x7c, 0x14, 0x67, 0xcb, 0xb2, 0x13, 0x79, 0x39, 0x4a, 0x79, 0xf2, 0xe8, 0x36, 0xd6, 0x2d, -0xb0, 0x45, 0x7a, 0x39, 0xdd, 0xd4, 0x01, 0x22, 0x0e, 0xf9, 0xee, 0x6d, 0x20, 0x2d, 0x3b, 0xce, -0x11, 0x49, 0x7a, 0x38, 0x12, 0x09, 0x72, 0x35, 0xa6, 0x2a, 0xda, 0x7d, 0xc0, 0xd6, 0x6c, 0xe4, -0x5d, 0x43, 0x80, 0x47, 0xe8, 0xbd, 0x83, 0x5b, 0x65, 0xb7, 0x04, 0xb2, 0xe4, 0xa5, 0xbe, 0x62, -0x35, 0x06, 0x54, 0xd9, 0x52, 0x13, 0xc7, 0x80, 0x2a, 0x97, 0x7d, 0x1c, 0x01, 0x2a, 0x87, 0x23, -0x40, 0xb9, 0xa4, 0x77, 0x64, 0x87, 0xf4, 0x25, 0x37, 0x90, 0x1d, 0x88, 0x65, 0xad, 0x1b, 0x4e, -0x3d, 0x76, 0x0b, 0xf2, 0xdc, 0x6c, 0x05, 0xd7, 0x27, 0xe7, 0x48, 0x5f, 0xf2, 0x0d, 0xca, 0x06, -0xd2, 0x2b, 0x8d, 0xf4, 0xca, 0x46, 0x7b, 0x40, 0xaa, 0xee, 0x00, 0x6c, 0x47, 0xe1, 0xb2, 0xad, -0xa4, 0xe1, 0x7b, 0x84, 0x5a, 0x49, 0xb1, 0xea, 0xa4, 0x65, 0x67, 0xb8, 0x5d, 0xdd, 0xdc, 0xae, -0x2e, 0x19, 0xa6, 0x3c, 0xbb, 0xfa, 0xe6, 0xd7, 0xb6, 0x83, 0x23, 0x96, 0xfb, 0xcd, 0x9e, 0x4e, -0xdd, 0xde, 0x9e, 0x65, 0x30, 0x65, 0xa3, 0x0c, 0xd9, 0xcd, 0x98, 0xfa, 0xbc, 0x48, 0x45, 0x3e, -0x8e, 0x52, 0x3b, 0x65, 0xd0, 0x3f, 0x4d, 0x7d, 0x68, 0x02, 0x38, 0xb6, 0x2b, 0x81, 0xbf, 0x47, -0xd6, 0x58, 0xf7, 0x90, 0xd5, 0xd6, 0x81, 0x3d, 0xe4, 0x5f, 0x64, 0x3f, 0xd6, 0xf9, 0xc0, 0x24, -0xad, 0xa4, 0x7b, 0x25, 0x1c, 0x07, 0x1c, 0x67, 0xc9, 0x0e, 0xdf, 0xea, 0x72, 0xea, 0xde, 0x7b, -0xf4, 0x48, 0x0f, 0x47, 0x57, 0xfe, 0x7d, 0x5f, 0xf0, 0xf0, 0x90, 0x2b, 0x40, 0xbe, 0xef, 0xdf, -0x1e, 0x92, 0xe2, 0xbb, 0xed, 0xbc, 0xc3, 0xd9, 0xc2, 0x30, 0xa7, 0x31, 0x99, 0x4a, 0x16, 0x63, -0x14, 0xd9, 0xc6, 0x7b, 0x0b, 0xeb, 0xf7, 0xd1, 0x0e, 0xbc, 0xc1, 0x7b, 0x8b, 0x88, 0xa2, 0x15, -0x4e, 0xc4, 0x02, 0xa4, 0x21, 0x3e, 0x5f, 0x1b, 0x43, 0x33, 0x7d, 0x47, 0x3b, 0x61, 0x87, 0x9f, -0x24, 0xad, 0x0b, 0xb6, 0x36, 0x4b, 0xa5, 0x5c, 0xa7, 0x55, 0xaf, 0xc9, 0x60, 0xfc, 0xb9, 0x2b, -0x40, 0xfa, 0x00, 0x13, 0xd3, 0xf9, 0x5c, 0x8c, 0x47, 0xc4, 0x6d, 0xd1, 0x30, 0xa9, 0x03, 0xa7, -0x35, 0x7c, 0x89, 0xcf, 0x12, 0xbf, 0xb4, 0x25, 0xc1, 0x7b, 0xcf, 0xf9, 0x78, 0x9f, 0xbf, 0x39, -0xd1, 0x0e, 0x56, 0x0f, 0x7c, 0x11, 0xef, 0xbf, 0xb8, 0x29, 0x81, 0x52, 0x94, 0x07, 0x6c, 0x78, -0x6f, 0xdb, 0x98, 0x78, 0x10, 0x24, 0x43, 0x90, 0x7d, 0x39, 0x4a, 0x59, 0x7c, 0xf5, 0x4b, 0x7a, -0xbe, 0x06, 0x25, 0x1d, 0x5f, 0x43, 0x9e, 0x6a, 0xa4, 0x88, 0x95, 0x84, 0x87, 0x3c, 0xbe, 0x79, -0x34, 0xbe, 0x31, 0x1a, 0x73, 0x7d, 0xb4, 0x52, 0x2e, 0x92, 0x6c, 0x72, 0xf9, 0x8d, 0xec, 0xd5, -0xe4, 0x42, 0x93, 0x07, 0x5b, 0xeb, 0x8c, 0x99, 0x7d, 0xb6, 0x53, 0x8d, 0x42, 0x73, 0x43, 0xa6, -0x7d, 0x65, 0x1b, 0xed, 0x92, 0xd9, 0x61, 0xdf, 0x76, 0xc8, 0x0b, 0xf7, 0xb6, 0x98, 0xdc, 0x5e, -0xa8, 0x3a, 0xff, 0x9c, 0xac, 0x7f, 0x9f, 0xf4, 0x36, 0xf2, 0x48, 0xf2, 0xe0, 0x77, 0xc6, 0x70, -0x0f, 0xbf, 0xf3, 0xd3, 0xbb, 0xf7, 0xe8, 0x1d, 0xf9, 0xe1, 0x23, 0x3b, 0xe9, 0x8a, 0x9e, 0x17, -0xf1, 0x4a, 0x79, 0x72, 0xc2, 0xdd, 0x9c, 0x27, 0x48, 0x79, 0x7e, 0x47, 0x79, 0x72, 0xba, 0xf1, -0xdd, 0xe0, 0x76, 0xc8, 0xdd, 0x8b, 0xa3, 0xc4, 0xef, 0x42, 0xe7, 0xb7, 0xca, 0x06, 0x77, 0xee, -0x07, 0xa4, 0x0d, 0x92, 0xdb, 0x9d, 0x50, 0x31, 0x77, 0x62, 0x4f, 0xca, 0xe4, 0x42, 0xfb, 0x2b, -0x72, 0x89, 0xa4, 0x23, 0x6d, 0xce, 0xbc, 0x84, 0xa4, 0x3b, 0xd5, 0x37, 0x1d, 0xb1, 0x7a, 0x7a, -0x35, 0xf6, 0xe3, 0x61, 0x39, 0xdf, 0x54, 0xac, 0xf6, 0x43, 0xf7, 0x6e, 0xe8, 0xd4, 0xfc, 0x44, -0x75, 0xe9, 0xa0, 0xac, 0x2f, 0x7d, 0x25, 0xf2, 0x98, 0x9c, 0x63, 0x9f, 0x2b, 0xd5, 0xfe, 0xfd, -0x9b, 0xde, 0xb9, 0x50, 0xf7, 0xaf, 0xe7, 0x11, 0x7f, 0x61, 0xfc, 0x18, 0xd6, 0x58, 0x77, 0x02, -0xb1, 0xf8, 0x38, 0x61, 0xf1, 0x43, 0x2f, 0xa7, 0x67, 0xd7, 0x3a, 0xc6, 0xe2, 0xb5, 0x32, 0x18, -0x4e, 0xba, 0x9b, 0xc1, 0x81, 0x63, 0x4d, 0x27, 0x31, 0x71, 0x93, 0x13, 0xca, 0xe8, 0x7d, 0x09, -0x8f, 0xa5, 0xc7, 0xc2, 0x3b, 0xfb, 0x46, 0xef, 0x37, 0xa1, 0x4a, 0xa6, 0x28, 0x11, 0x65, 0x31, -0xa2, 0x7d, 0x65, 0xde, 0x06, 0x7c, 0x36, 0x90, 0xbf, 0x02, 0xfc, 0x0b, 0x22, 0x76, 0x2f, 0xf9, -0x3f, 0x3f, 0x22, 0xde, 0x16, 0xc8, 0x83, 0x10, 0x63, 0xc7, 0x97, 0x10, 0xd2, 0x75, 0xf8, 0x6c, -0x84, 0x06, 0xc6, 0x9c, 0x7c, 0x6f, 0x00, 0x16, 0xe3, 0x73, 0x0e, 0x34, 0x32, 0x56, 0x7d, 0xd1, -0x5b, 0x03, 0x4b, 0xf0, 0x39, 0x17, 0xe4, 0x35, 0x50, 0x80, 0xd8, 0x84, 0x10, 0x68, 0x22, 0x1b, -0xe4, 0x7d, 0x09, 0xa4, 0x70, 0x75, 0x42, 0x5b, 0xf6, 0xd4, 0xfc, 0xbb, 0xaa, 0xa1, 0x99, 0x62, -0x5f, 0xec, 0x4b, 0x20, 0xbd, 0x5d, 0xfc, 0x5e, 0x3a, 0x75, 0x25, 0xa6, 0x36, 0xee, 0x4b, 0x90, -0xcf, 0xda, 0x0f, 0xd2, 0xa9, 0x6d, 0x83, 0x2f, 0x82, 0x8c, 0x6f, 0x9a, 0x84, 0x56, 0xed, 0xa9, -0xd0, 0x5d, 0x7e, 0x58, 0xfd, 0xbf, 0x0e, 0xb5, 0x2b, 0x58, 0x7b, 0x05, 0x9d, 0x9d, 0x21, 0x45, -0xf7, 0x91, 0x76, 0x3b, 0xae, 0xa4, 0x67, 0x18, 0x4e, 0x0d, 0x0e, 0xdd, 0x48, 0x97, 0x73, 0x16, -0x18, 0x8e, 0x76, 0x4b, 0x35, 0x0e, 0x1f, 0x1d, 0x4d, 0x43, 0xe8, 0x40, 0x37, 0xd6, 0x56, 0xf7, -0xde, 0x0b, 0x44, 0x7b, 0x90, 0xd6, 0x37, 0x0c, 0x75, 0x7b, 0xb0, 0xf6, 0x8b, 0xdb, 0x03, 0xc1, -0x50, 0x90, 0x6c, 0x39, 0x5e, 0xa3, 0xe7, 0x25, 0x17, 0x9f, 0x0f, 0xd4, 0x84, 0x6a, 0xf6, 0xbf, -0x28, 0x3c, 0xec, 0x5e, 0xdc, 0x16, 0x08, 0x84, 0x02, 0xb2, 0x9d, 0x60, 0x4d, 0x7a, 0x6b, 0x23, -0x8f, 0x4b, 0x81, 0x35, 0x80, 0xeb, 0xa4, 0xb1, 0x03, 0x2a, 0x2c, 0xab, 0x01, 0x79, 0x27, 0x7d, -0x3b, 0xd0, 0x09, 0xe0, 0xa9, 0x85, 0x55, 0x5e, 0x68, 0x7e, 0x7a, 0x6e, 0xa5, 0xf1, 0x54, 0x9d, -0x6f, 0x15, 0xac, 0xec, 0xdf, 0x5f, 0x61, 0x3a, 0xb5, 0x00, 0xd3, 0xda, 0x9e, 0xae, 0x29, 0x37, -0x9e, 0x0a, 0x63, 0xda, 0xea, 0xfe, 0x7d, 0x65, 0xa6, 0x37, 0x7e, 0xa9, 0x6a, 0x66, 0xac, 0x3d, -0xbe, 0xf6, 0xf5, 0xfd, 0xe2, 0xbc, 0xec, 0x78, 0xef, 0xaf, 0x5e, 0xe3, 0x48, 0x97, 0xca, 0xf1, -0x9e, 0x5f, 0xee, 0xe3, 0xd8, 0x9d, 0xca, 0xf1, 0xee, 0x3d, 0x2f, 0x42, 0xc5, 0x32, 0x23, 0xb6, -0xbc, 0x42, 0xd6, 0x4b, 0xba, 0x48, 0xd7, 0xc2, 0x4b, 0x48, 0x25, 0xe6, 0x42, 0xc5, 0x0e, 0x1c, -0xed, 0x28, 0x28, 0xa4, 0x93, 0xe3, 0x23, 0x1f, 0xb6, 0xa5, 0x84, 0xb9, 0x88, 0x91, 0xb1, 0x52, -0xa4, 0xb9, 0xd5, 0x48, 0x73, 0x7d, 0xb2, 0x07, 0xaf, 0x44, 0x73, 0xab, 0x91, 0xe6, 0xda, 0xed, -0x83, 0x72, 0x91, 0xb0, 0x41, 0xce, 0x63, 0xfb, 0x63, 0xc4, 0x5e, 0xdd, 0x74, 0x3f, 0x63, 0xb0, -0x91, 0x30, 0x36, 0x6f, 0x30, 0xf2, 0x22, 0xf8, 0x65, 0x93, 0xbd, 0x56, 0x9a, 0x47, 0x96, 0x21, -0xb8, 0x64, 0x50, 0xac, 0x77, 0xc4, 0xda, 0xb1, 0x9d, 0x27, 0x11, 0x63, 0x4f, 0x10, 0xc6, 0x22, -0x76, 0x91, 0x27, 0x82, 0x1d, 0x84, 0xb7, 0x47, 0x19, 0x6f, 0x1f, 0x62, 0xbc, 0x5d, 0x87, 0x38, -0xe7, 0x14, 0x11, 0x4a, 0x50, 0xf2, 0x2d, 0xb4, 0x07, 0x0e, 0xbf, 0x8f, 0xd8, 0x4b, 0x7b, 0x14, -0x64, 0x47, 0xcb, 0xb8, 0xeb, 0xb4, 0x78, 0x11, 0xaf, 0xa1, 0x8c, 0xbc, 0x41, 0xea, 0xce, 0x31, -0xee, 0x02, 0x6c, 0x52, 0xf1, 0x34, 0xbd, 0x52, 0x54, 0x4e, 0x58, 0x29, 0x3c, 0xd2, 0x57, 0x64, -0x37, 0xe2, 0xeb, 0x17, 0x54, 0x7c, 0x9d, 0xa5, 0xe2, 0xeb, 0x2c, 0x6c, 0xf7, 0x63, 0x64, 0xfb, -0xe2, 0xfb, 0x8a, 0x9c, 0x63, 0xf9, 0x4a, 0x28, 0x21, 0x22, 0x70, 0x0f, 0x27, 0xec, 0xe4, 0x59, -0xf4, 0x01, 0x30, 0x1c, 0x1e, 0x94, 0x7c, 0x26, 0x50, 0x61, 0x92, 0x15, 0x03, 0x9d, 0x9f, 0xa0, -0x40, 0x7b, 0x57, 0x04, 0x23, 0xe2, 0xe4, 0xd5, 0x59, 0x0b, 0xba, 0x39, 0xa5, 0xf0, 0xee, 0xfc, -0x53, 0xa1, 0x6e, 0x7f, 0xd5, 0x2b, 0xd8, 0x32, 0xd2, 0xd3, 0xae, 0x40, 0xbe, 0x17, 0xdf, 0xc0, -0x25, 0xd2, 0xc9, 0x0a, 0xfc, 0x2c, 0xb4, 0x0a, 0x12, 0xe9, 0xc8, 0xdb, 0xff, 0x67, 0x5b, 0x2c, -0x68, 0xba, 0x88, 0x35, 0x8f, 0xb3, 0xaa, 0x17, 0x69, 0x6a, 0x5f, 0xf5, 0x87, 0xd0, 0x81, 0xb0, -0x5b, 0x6f, 0x9f, 0xa7, 0xea, 0xf8, 0xf6, 0x7a, 0xa7, 0x68, 0x36, 0x64, 0x3e, 0x2f, 0x74, 0xab, -0x25, 0x23, 0xb5, 0x3e, 0x4d, 0x54, 0x2b, 0xa7, 0xd4, 0x0b, 0x09, 0x3a, 0x73, 0x60, 0x7d, 0xba, -0xfc, 0x4b, 0x4c, 0x0b, 0x13, 0x5d, 0x6d, 0x80, 0xe9, 0xbd, 0x9a, 0x46, 0x1d, 0xa7, 0xe6, 0xaa, -0xa9, 0xeb, 0xd4, 0xd4, 0x2f, 0x71, 0x6a, 0x5e, 0xa2, 0x8b, 0x2c, 0xef, 0xe3, 0x69, 0x68, 0xe5, -0x31, 0xac, 0x4c, 0x0c, 0x29, 0x49, 0x2e, 0xf4, 0x0c, 0xca, 0x05, 0x02, 0x73, 0x0a, 0x19, 0x73, -0xbe, 0x82, 0x98, 0xf3, 0x15, 0xc2, 0x9c, 0xc7, 0x65, 0x7d, 0xd5, 0x60, 0x64, 0x9d, 0x6c, 0xf4, -0xd4, 0xb8, 0x83, 0x9d, 0xb0, 0x97, 0xb1, 0x65, 0xdc, 0x79, 0x0c, 0xb1, 0xe5, 0x28, 0x61, 0xcb, -0xda, 0x3d, 0x84, 0x27, 0xa7, 0x19, 0x4f, 0x7a, 0x19, 0x4f, 0x7a, 0xd4, 0x3d, 0x97, 0x26, 0x8e, -0x65, 0x4b, 0xa7, 0x44, 0x0e, 0x94, 0xdf, 0x2d, 0x15, 0xb8, 0x42, 0x95, 0x37, 0x43, 0x0e, 0x69, -0x42, 0x68, 0xe7, 0xa5, 0xc3, 0xeb, 0x5d, 0x28, 0xd5, 0x1c, 0x4b, 0x90, 0xdc, 0xfd, 0xc4, 0xc1, -0x48, 0x1f, 0xe9, 0x4f, 0x3f, 0xf9, 0xc6, 0xa6, 0xbe, 0xb6, 0xac, 0x7d, 0xbd, 0xb1, 0xdc, 0xb8, -0xa1, 0x1f, 0xdb, 0xf2, 0x8b, 0xc1, 0x16, 0xbd, 0xdd, 0xf4, 0xc4, 0x2b, 0x1c, 0x89, 0xcc, 0x2a, -0x65, 0xbd, 0xdb, 0x97, 0xe8, 0x71, 0x02, 0xd9, 0x5b, 0xac, 0x4b, 0x38, 0xe6, 0xcb, 0xe5, 0x79, -0xaf, 0xde, 0x3d, 0xa4, 0x24, 0x03, 0xfe, 0x45, 0x89, 0xa6, 0x2b, 0xf6, 0xe0, 0x5b, 0xaf, 0x48, -0x26, 0xd9, 0x60, 0x7f, 0xf5, 0xdb, 0x89, 0x8e, 0xac, 0xdd, 0x89, 0xd6, 0x4f, 0x70, 0x90, 0xe7, -0x23, 0xde, 0x67, 0xe4, 0x39, 0xf6, 0xe8, 0xb1, 0xee, 0x45, 0x8f, 0xc4, 0x95, 0x81, 0x47, 0x62, -0x46, 0x49, 0x67, 0x0f, 0xca, 0x83, 0x75, 0xbf, 0x2d, 0xe4, 0x78, 0xb5, 0x55, 0xe4, 0x73, 0xd2, -0x43, 0x6d, 0xc5, 0x76, 0x9a, 0x16, 0x7c, 0xbc, 0x1b, 0x2a, 0x44, 0x7b, 0xcd, 0xa9, 0xf6, 0x3e, -0x46, 0x9e, 0xa0, 0xb9, 0xb5, 0x6f, 0xa8, 0xad, 0x3d, 0xb8, 0xa9, 0x0f, 0xdb, 0xab, 0xdb, 0x97, -0x10, 0x67, 0xf9, 0xab, 0xe8, 0x94, 0x97, 0xdb, 0xcb, 0xfa, 0xf9, 0x56, 0xa7, 0x81, 0x5b, 0xda, -0xeb, 0xd6, 0x1d, 0xef, 0x92, 0x2b, 0xcb, 0x5e, 0xbd, 0xfb, 0x20, 0xb6, 0x23, 0xb8, 0xa8, 0xb7, -0xe9, 0x8a, 0xdb, 0xff, 0xeb, 0x5f, 0x52, 0x5b, 0xdd, 0xaf, 0x7e, 0x33, 0x41, 0xda, 0x56, 0xd4, -0x56, 0xc7, 0x42, 0x59, 0x5f, 0x99, 0xd9, 0xd6, 0x5e, 0x29, 0x67, 0xb8, 0x77, 0xb8, 0x7b, 0xd1, -0xc3, 0x1d, 0xca, 0xee, 0x87, 0x63, 0x46, 0x97, 0xce, 0xe1, 0x97, 0xf7, 0x6a, 0x9a, 0x0a, 0x73, -0xa8, 0xbd, 0x3e, 0xad, 0xbd, 0xd5, 0xd8, 0x5e, 0xa7, 0xe9, 0xe8, 0xa3, 0x93, 0xdb, 0x7c, 0x34, -0x81, 0xe3, 0x64, 0xa8, 0xc4, 0x36, 0xff, 0xfd, 0x1b, 0xc8, 0x35, 0x5a, 0xdd, 0x3a, 0xa6, 0x8a, -0xba, 0x53, 0xeb, 0x69, 0x77, 0xe3, 0x89, 0x83, 0xb2, 0x2d, 0x6f, 0xed, 0xf4, 0xa0, 0xb6, 0xd2, -0x2d, 0x4a, 0x74, 0x8e, 0xef, 0x4d, 0x44, 0x2f, 0x1c, 0xed, 0x5e, 0xd4, 0x87, 0x30, 0xea, 0x43, -0x18, 0xdd, 0x64, 0xaf, 0x91, 0xcf, 0x61, 0x9d, 0x9d, 0x13, 0xc7, 0x33, 0xa3, 0xce, 0xbe, 0xeb, -0xd7, 0x49, 0x71, 0x31, 0x9f, 0xe4, 0x3a, 0xd5, 0x9a, 0x72, 0x1d, 0xaf, 0x2c, 0x4a, 0x74, 0x8c, -0xef, 0x4e, 0x44, 0x3f, 0xc9, 0x28, 0x7f, 0xaa, 0x83, 0xcb, 0x17, 0x63, 0x20, 0x4e, 0x15, 0x6f, -0x8c, 0x2f, 0xc3, 0x5a, 0xb9, 0x07, 0x23, 0x0f, 0x97, 0x61, 0xa9, 0x3f, 0x78, 0x63, 0xd3, 0xc3, -0x88, 0x2d, 0x89, 0x58, 0xfd, 0x6a, 0xc3, 0xe6, 0x2e, 0x7b, 0xd6, 0x4b, 0xaf, 0x22, 0xb6, 0x4c, -0x7d, 0xf2, 0x15, 0x79, 0x4e, 0xad, 0x25, 0xd2, 0x77, 0xf7, 0x1b, 0xca, 0x68, 0xa0, 0x66, 0x51, -0x4f, 0xd3, 0x47, 0x92, 0xff, 0xf0, 0x2b, 0xd2, 0x54, 0xd9, 0x58, 0xdb, 0xff, 0xed, 0x44, 0x63, -0x1f, 0xed, 0xe1, 0xb5, 0x5e, 0x71, 0x82, 0x33, 0x24, 0x1b, 0x38, 0x1f, 0x4a, 0x27, 0x0c, 0xf1, -0x8f, 0xa4, 0x69, 0xc3, 0x3d, 0x08, 0xef, 0x47, 0x56, 0x2b, 0xbb, 0x10, 0x3f, 0x9c, 0x3a, 0xc9, -0x2f, 0xef, 0xd1, 0x4e, 0x19, 0x85, 0x0e, 0x06, 0xae, 0x01, 0xd8, 0x23, 0x1c, 0x5b, 0xb2, 0xad, -0x30, 0x78, 0xfc, 0x28, 0x97, 0xdb, 0x54, 0xde, 0xce, 0xe8, 0xa3, 0xf6, 0xf2, 0x29, 0xa7, 0x8f, -0xf8, 0x31, 0x38, 0xda, 0x47, 0x70, 0x28, 0x31, 0xfe, 0xb8, 0xdb, 0x4d, 0x7c, 0x62, 0xb6, 0xba, -0xff, 0x8b, 0xef, 0xb1, 0x67, 0x96, 0x79, 0x1f, 0x9b, 0xfe, 0x3f, 0xe6, 0xbe, 0x07, 0xbc, 0xa9, -0xe3, 0xca, 0xf7, 0x5c, 0x49, 0x18, 0xe1, 0x08, 0x23, 0x1b, 0x3f, 0xaf, 0x43, 0x5d, 0xe7, 0x46, -0xab, 0xa8, 0x42, 0xa8, 0x96, 0xe2, 0x3a, 0xc4, 0x75, 0xb5, 0x20, 0xcb, 0xb2, 0x2d, 0xcb, 0xc6, -0x38, 0x82, 0x10, 0xe3, 0xc7, 0x4b, 0x2e, 0xc6, 0x96, 0x0c, 0x18, 0xac, 0x18, 0x85, 0x3a, 0xd4, -0x5f, 0x56, 0x96, 0x0d, 0x98, 0x40, 0x02, 0x31, 0xa4, 0x4d, 0x53, 0xda, 0x2f, 0x6f, 0x5f, 0xda, -0xd2, 0x24, 0x4d, 0x28, 0xa5, 0x69, 0x4a, 0xf9, 0xb2, 0x0e, 0x21, 0xd4, 0xa1, 0x24, 0x1f, 0x50, -0xfe, 0x85, 0x24, 0x2c, 0xe5, 0xb1, 0x09, 0x4d, 0x68, 0xc2, 0xa3, 0xa4, 0x4b, 0xb3, 0x18, 0xbd, -0x73, 0x66, 0xae, 0xa4, 0x2b, 0xf9, 0x0f, 0xe6, 0x4f, 0xdf, 0x3e, 0xf8, 0xe4, 0xfb, 0x6f, 0xee, -0xcc, 0x99, 0x33, 0x67, 0xce, 0xf9, 0xcd, 0xdc, 0x99, 0x73, 0x00, 0xc7, 0x1d, 0x3a, 0x4b, 0xf9, -0x0f, 0xf6, 0xfc, 0xfa, 0xcd, 0xa6, 0x9c, 0xa0, 0xba, 0xbf, 0x3b, 0xe0, 0x6d, 0xd7, 0xf4, 0x21, -0xfa, 0xd8, 0xd9, 0xd5, 0xaa, 0x12, 0x55, 0x5b, 0xc2, 0x52, 0xc9, 0x9c, 0x27, 0x6d, 0x69, 0xb6, -0x0c, 0x1e, 0x4f, 0xd4, 0x58, 0x76, 0xb4, 0x1f, 0xd1, 0xbc, 0x7c, 0x75, 0xbc, 0xdf, 0x90, 0xbe, -0x52, 0xbd, 0xa7, 0x9b, 0xd2, 0x1a, 0x54, 0x5b, 0xba, 0x36, 0xbf, 0xcd, 0x6d, 0x0c, 0xe1, 0x36, -0xfa, 0x32, 0x18, 0xbb, 0x96, 0x5c, 0xfa, 0x93, 0xf7, 0xbd, 0x8d, 0x32, 0x55, 0x3a, 0xa7, 0xab, -0xe9, 0x12, 0x7d, 0xf3, 0xc4, 0x37, 0x55, 0x92, 0xc6, 0x74, 0x62, 0x7e, 0x17, 0x7d, 0x51, 0x5c, -0xf6, 0x57, 0x8b, 0x60, 0xba, 0xcd, 0xe8, 0x91, 0x54, 0x39, 0x8a, 0x74, 0x87, 0xde, 0x32, 0x95, -0x1d, 0x7f, 0x0b, 0x5b, 0x77, 0xed, 0xf1, 0x77, 0x7c, 0xeb, 0x7e, 0xb9, 0x37, 0xf0, 0xa0, 0xb1, -0xcc, 0x00, 0x62, 0xb5, 0xb4, 0x33, 0x73, 0xfb, 0x39, 0x1c, 0xce, 0xcd, 0xe9, 0x65, 0xb1, 0x0b, -0x2f, 0x1e, 0xc5, 0xdc, 0x44, 0x97, 0xa4, 0xf9, 0x9a, 0x61, 0x3e, 0xf1, 0xb5, 0x17, 0x73, 0xd3, -0xba, 0x57, 0xcf, 0xba, 0x58, 0x0f, 0x55, 0x7f, 0xa9, 0x07, 0x49, 0x9b, 0x92, 0xfa, 0xad, 0xe3, -0x6f, 0x3d, 0xfd, 0xbb, 0xef, 0xf1, 0x1c, 0x75, 0x62, 0xe9, 0xac, 0x8b, 0x5a, 0x4c, 0xa7, 0x05, -0x89, 0xf9, 0x28, 0x51, 0xae, 0xbc, 0xe0, 0x7c, 0x76, 0x70, 0x3e, 0xa7, 0x59, 0x9d, 0xc8, 0xc1, -0x5c, 0x92, 0xb9, 0xe3, 0xbf, 0x97, 0xb9, 0x3d, 0x2e, 0xc1, 0x6d, 0xd3, 0x6d, 0x5c, 0xe2, 0x08, -0xb9, 0x62, 0xbf, 0xea, 0x2f, 0x98, 0x78, 0x6a, 0x35, 0x6a, 0x96, 0x3c, 0xe2, 0xf2, 0xf1, 0xdf, -0xdb, 0x34, 0x09, 0xbe, 0x1f, 0xef, 0x27, 0x8e, 0xbf, 0xbf, 0x17, 0xf9, 0x9d, 0x1d, 0x14, 0x90, -0xdf, 0xf3, 0xbc, 0x91, 0x07, 0xfb, 0x49, 0x53, 0xbb, 0xc3, 0xc8, 0x6d, 0x8f, 0x21, 0x63, 0x4e, -0x17, 0x79, 0x1d, 0x45, 0x2e, 0x0b, 0xb1, 0x5d, 0x4d, 0x07, 0xd7, 0x30, 0xbe, 0x6b, 0x68, 0x36, -0xda, 0x26, 0xd0, 0x9d, 0x0f, 0xc2, 0xc7, 0xf7, 0x19, 0xd2, 0x83, 0xd8, 0xeb, 0x77, 0x76, 0x2d, -0x60, 0x6f, 0xef, 0x09, 0x6f, 0xe9, 0x5a, 0x09, 0x16, 0xc1, 0x8d, 0xb6, 0x1e, 0x79, 0xbf, 0x13, -0x79, 0xcf, 0xf6, 0xcb, 0x90, 0xef, 0x65, 0xc9, 0x5d, 0x74, 0x22, 0x89, 0xff, 0x7b, 0x8f, 0xef, -0xe5, 0xfc, 0xbf, 0x9f, 0x79, 0x92, 0x20, 0xfe, 0x1b, 0xab, 0x4d, 0x5a, 0x49, 0x35, 0x5d, 0x91, -0xce, 0x54, 0x7e, 0xfc, 0xad, 0x63, 0xeb, 0x2b, 0x2f, 0xbe, 0x06, 0x72, 0x0b, 0xec, 0x0b, 0x48, -0x06, 0x30, 0x56, 0x8b, 0x65, 0xd2, 0x8e, 0x7b, 0x77, 0x68, 0xaf, 0x6a, 0xaf, 0xde, 0x1f, 0x96, -0x34, 0x66, 0x21, 0x08, 0xa8, 0x53, 0x2e, 0x30, 0x9d, 0x72, 0xee, 0xe8, 0x5b, 0xa5, 0xc8, 0x73, -0x11, 0xf3, 0xbe, 0xd3, 0x10, 0xd3, 0x2a, 0x56, 0xd8, 0xfc, 0xb6, 0xa4, 0xfd, 0xc6, 0x8e, 0x67, -0xae, 0xf6, 0x5e, 0xbd, 0x7f, 0x1d, 0x4a, 0xfa, 0x5f, 0x99, 0xa4, 0x7f, 0xe6, 0x5e, 0xf3, 0xc1, -0x9a, 0xa3, 0xfb, 0x2a, 0x2f, 0xb4, 0x00, 0x6b, 0x8f, 0xee, 0x57, 0x9f, 0xf4, 0xef, 0x48, 0xac, -0xde, 0x64, 0x11, 0x08, 0x48, 0xd6, 0xa7, 0xd1, 0x98, 0xa2, 0x98, 0x22, 0x76, 0xa2, 0x85, 0xb1, -0x2f, 0x05, 0x6d, 0xf9, 0x85, 0x5e, 0x38, 0x3a, 0x10, 0x97, 0xf8, 0xa5, 0xb1, 0x36, 0x38, 0xda, -0x7f, 0xf4, 0x53, 0x6a, 0x01, 0xda, 0xbb, 0x65, 0x52, 0xb9, 0xbb, 0x2d, 0x65, 0xef, 0xef, 0xb3, -0x4c, 0x83, 0x3c, 0x4c, 0xa1, 0x2f, 0xc3, 0x77, 0x0a, 0x26, 0x9c, 0xea, 0xc5, 0x36, 0x5b, 0x1a, -0x6b, 0x89, 0x83, 0x6b, 0x4d, 0x4b, 0x41, 0x77, 0xbc, 0xbf, 0x40, 0x7d, 0x6a, 0xf5, 0xaf, 0xf7, -0x37, 0x57, 0x58, 0xdd, 0x4a, 0x49, 0x4f, 0x96, 0xf3, 0x76, 0x10, 0xd5, 0x9b, 0x9e, 0xf8, 0xee, -0x5a, 0x69, 0xae, 0xbe, 0x2f, 0x73, 0x09, 0x08, 0x6c, 0x15, 0x80, 0x8a, 0xf0, 0xec, 0xbc, 0xc7, -0x77, 0x3c, 0xee, 0xff, 0xa4, 0xfc, 0x8b, 0x67, 0xe0, 0xf8, 0xef, 0x7c, 0x61, 0x29, 0x2d, 0x08, -0xef, 0xef, 0x39, 0x15, 0xd9, 0xde, 0x13, 0x28, 0x36, 0x78, 0x0d, 0xe9, 0x87, 0x23, 0x28, 0xaf, -0xa7, 0x26, 0xb7, 0x44, 0xf1, 0x1f, 0xfe, 0xbd, 0x1a, 0xbd, 0x8a, 0x7f, 0x07, 0xa3, 0x83, 0x0f, -0xf4, 0x3e, 0xb0, 0x6e, 0x57, 0xaf, 0xff, 0x23, 0x94, 0xdd, 0x37, 0x7d, 0x5d, 0x3b, 0x7a, 0x02, -0xe9, 0x96, 0xf4, 0x67, 0x23, 0x86, 0x6a, 0xd1, 0x4b, 0x9a, 0xa8, 0xf3, 0x4a, 0x6a, 0x6f, 0x67, -0xb6, 0x27, 0xc7, 0x1a, 0x97, 0xc0, 0xb8, 0x0c, 0x2a, 0x7a, 0x3c, 0x93, 0x2c, 0x8d, 0x59, 0x75, -0x22, 0x82, 0x5a, 0x5b, 0x43, 0x72, 0x58, 0x00, 0xa7, 0xd6, 0x50, 0xbf, 0x77, 0xa0, 0x14, 0x7e, -0xf8, 0xee, 0x87, 0xef, 0x2a, 0xfb, 0xff, 0x87, 0xfd, 0x46, 0xd4, 0x62, 0x47, 0xdf, 0x7d, 0xff, -0xad, 0x5f, 0xfd, 0xbe, 0xd9, 0x63, 0x2d, 0x53, 0xd4, 0xbd, 0xe7, 0x78, 0xbc, 0xee, 0x27, 0xc2, -0x47, 0xf7, 0x3e, 0x35, 0x20, 0xd5, 0xdf, 0xf5, 0x4b, 0x2d, 0x68, 0xc1, 0xd7, 0x5b, 0x8f, 0x2d, -0x1e, 0x84, 0xa7, 0x06, 0x7e, 0xb1, 0xc7, 0x7f, 0x9e, 0x47, 0x49, 0x11, 0x2b, 0xb1, 0x37, 0x0f, -0x1c, 0x7c, 0xe2, 0x68, 0xbf, 0xaf, 0x8b, 0x7c, 0x25, 0xee, 0xe8, 0xf6, 0x9f, 0x92, 0xac, 0x77, -0xfd, 0x32, 0xf7, 0x4a, 0xee, 0x15, 0x5f, 0x78, 0x7e, 0x97, 0xa4, 0x69, 0x87, 0x20, 0x6c, 0x8f, -0xf8, 0xcf, 0x1b, 0x54, 0x87, 0x23, 0x87, 0xbb, 0xdc, 0x5d, 0xa2, 0xb0, 0x69, 0xed, 0xf1, 0xfe, -0xbe, 0x27, 0x8e, 0xbe, 0xe1, 0xeb, 0xfd, 0xc5, 0x9b, 0xfe, 0xd3, 0xf1, 0xfa, 0x92, 0x35, 0xa1, -0x71, 0x88, 0x48, 0xab, 0x13, 0xe4, 0x55, 0x4e, 0x11, 0x5e, 0x7f, 0xb6, 0x57, 0x2b, 0x07, 0x7b, -0x54, 0xae, 0x3c, 0x13, 0xa1, 0x91, 0xeb, 0xbd, 0x99, 0x6b, 0xba, 0xd2, 0x0b, 0x5a, 0x30, 0xa1, -0x25, 0x3f, 0xd6, 0x6b, 0xd1, 0x3c, 0x1b, 0xa1, 0x9e, 0x87, 0xf6, 0x46, 0xff, 0xfe, 0x3b, 0xf1, -0x9e, 0xb7, 0x99, 0xd6, 0xea, 0xbd, 0x8f, 0x3d, 0x2f, 0x08, 0x05, 0xaa, 0x53, 0x91, 0x23, 0xab, -0xa5, 0x5c, 0x44, 0x37, 0x6c, 0x2f, 0x55, 0xc9, 0xa5, 0x5c, 0xd5, 0x2f, 0xdf, 0xf1, 0x5f, 0x38, -0x16, 0xa9, 0xbe, 0xe8, 0x01, 0x5f, 0x78, 0xfb, 0x9a, 0x40, 0xba, 0x71, 0x56, 0xd9, 0x17, 0x1d, -0x80, 0x92, 0xfe, 0x11, 0xf9, 0xd8, 0x1d, 0x91, 0xba, 0xe7, 0x6f, 0x94, 0x3a, 0xfa, 0x2a, 0x17, -0x97, 0x49, 0x05, 0x8d, 0xc4, 0xcd, 0x43, 0x48, 0x25, 0xd1, 0x18, 0x04, 0xa2, 0xd3, 0xe2, 0x96, -0x0a, 0x90, 0xd2, 0xdb, 0xd9, 0xae, 0xaf, 0xa2, 0x5c, 0x30, 0x0b, 0x34, 0x86, 0xd0, 0xf7, 0x90, -0xfd, 0xcc, 0x44, 0xab, 0x99, 0x49, 0x56, 0xb3, 0x17, 0x65, 0xe9, 0xe4, 0xb1, 0x48, 0xe9, 0x17, -0xdb, 0x62, 0xf4, 0x7b, 0x2c, 0xda, 0x93, 0x6b, 0x0d, 0x4a, 0xfa, 0xc9, 0xae, 0xd9, 0x93, 0xe8, -0x7f, 0x8c, 0x23, 0x04, 0x4e, 0xbd, 0x29, 0x41, 0xbd, 0x7a, 0x28, 0xf5, 0xf4, 0xfd, 0xe3, 0x48, -0xaf, 0x45, 0xfd, 0x6c, 0x8f, 0x49, 0xa6, 0xfe, 0xd0, 0x40, 0x81, 0x16, 0x69, 0x57, 0x27, 0x68, -0x3f, 0x15, 0x26, 0x04, 0xdf, 0x0e, 0x27, 0x7b, 0xa4, 0x1c, 0xe5, 0x3e, 0xf2, 0x5f, 0x0d, 0xf8, -0x2f, 0x1c, 0x59, 0x7d, 0xaa, 0x1b, 0xe5, 0x9c, 0x28, 0x73, 0x1d, 0xdd, 0x2b, 0xba, 0x0c, 0x95, -0xcc, 0xe2, 0x5e, 0x91, 0x7d, 0xc6, 0xb7, 0x81, 0x99, 0x71, 0x52, 0xff, 0x18, 0xcc, 0xb0, 0x40, -0x16, 0xf1, 0xca, 0xa2, 0x3a, 0x19, 0x39, 0xb9, 0x1a, 0x25, 0x3e, 0x7b, 0x2b, 0x69, 0xd2, 0x5c, -0xc6, 0x25, 0xc5, 0x4a, 0x37, 0xc2, 0x40, 0x44, 0x19, 0x72, 0x0b, 0x47, 0x8f, 0x27, 0xd7, 0x48, -0x7a, 0xeb, 0xed, 0xfa, 0x7d, 0x3b, 0x7a, 0xfd, 0x97, 0x8f, 0xad, 0x2e, 0xe5, 0xed, 0xb8, 0x96, -0xf8, 0x60, 0xd0, 0x1e, 0x8e, 0x70, 0x3e, 0x68, 0x14, 0x7c, 0xe0, 0xa5, 0xf1, 0x1d, 0x6c, 0x26, -0x27, 0x61, 0x40, 0x93, 0xea, 0x58, 0xc4, 0xa2, 0x3e, 0xd9, 0x4d, 0x3e, 0xe3, 0x7f, 0x44, 0xe5, -0xe6, 0xa2, 0xfd, 0xd7, 0xbd, 0x77, 0x80, 0xf5, 0x30, 0x45, 0xb9, 0xef, 0xf5, 0xbf, 0x87, 0x25, -0x6e, 0x8d, 0x6c, 0xc5, 0xf6, 0x39, 0xb9, 0xf6, 0x83, 0x6e, 0x49, 0x6f, 0xcc, 0x2d, 0xde, 0xb3, -0x63, 0x83, 0xff, 0xf2, 0x89, 0xd5, 0x55, 0xff, 0xa7, 0x85, 0xca, 0x5d, 0x1f, 0x48, 0x37, 0xd4, -0x18, 0x74, 0x87, 0xbb, 0x45, 0x37, 0x95, 0x9b, 0x77, 0xcd, 0x72, 0x29, 0x82, 0x2d, 0x2b, 0x97, -0x7a, 0x6b, 0x2e, 0xd5, 0xac, 0x0a, 0x65, 0xe3, 0xbd, 0x01, 0xd6, 0x5f, 0x87, 0x94, 0x1d, 0x84, -0x23, 0xdd, 0x1f, 0xac, 0x95, 0x8c, 0x86, 0x5c, 0x93, 0x40, 0xe3, 0xc7, 0xdc, 0x6e, 0x93, 0x70, -0x7a, 0xfd, 0xed, 0x65, 0x20, 0xdc, 0x4e, 0xb2, 0xb0, 0xe1, 0x97, 0x07, 0xfc, 0x67, 0x4f, 0xac, -0xa9, 0x42, 0xfb, 0xc7, 0x69, 0x31, 0xd6, 0x94, 0x5d, 0x32, 0x43, 0x12, 0x2d, 0x8c, 0xe3, 0x4c, -0xa7, 0xf0, 0x5d, 0x9c, 0xec, 0xfb, 0x23, 0xfb, 0x3a, 0x9c, 0x9e, 0xc4, 0x61, 0xad, 0xcc, 0x61, -0x0d, 0xcd, 0xf6, 0x05, 0x81, 0xa8, 0x93, 0xb0, 0x8d, 0xf2, 0x6f, 0x37, 0xfe, 0x6e, 0xf7, 0x3a, -0xff, 0x5f, 0x0f, 0xed, 0x39, 0xbc, 0x1a, 0xcb, 0x40, 0xed, 0x65, 0xd5, 0x7e, 0xd0, 0x6d, 0xf0, -0x18, 0x4b, 0xa9, 0x55, 0x39, 0x9f, 0x1d, 0xc5, 0xc3, 0x95, 0xc1, 0xb5, 0x57, 0x6a, 0x49, 0x5c, -0x73, 0xf1, 0x32, 0x8e, 0x75, 0x1b, 0x96, 0x60, 0x29, 0x59, 0x38, 0xf2, 0xfd, 0x8a, 0x88, 0xba, -0xc9, 0xff, 0xd7, 0x4a, 0xa4, 0xfe, 0xf0, 0x3a, 0x5e, 0x8e, 0xb9, 0xba, 0xfc, 0x2f, 0xc5, 0x20, -0x96, 0xb2, 0xba, 0x38, 0x12, 0xfd, 0x92, 0xf3, 0x95, 0x97, 0x63, 0xe2, 0x78, 0x4f, 0x4b, 0xfd, -0xcb, 0x32, 0xe1, 0x64, 0x6f, 0x5c, 0x9e, 0x63, 0x1e, 0xc7, 0xcb, 0xf9, 0x9a, 0x2b, 0xd2, 0x5f, -0x58, 0x16, 0x4a, 0xec, 0x91, 0xb0, 0xa5, 0x8c, 0x5a, 0x9c, 0xaf, 0xb2, 0x62, 0xbb, 0xa8, 0x85, -0x1c, 0x36, 0x5b, 0x41, 0xa3, 0xa0, 0x3f, 0x3e, 0x11, 0x5e, 0x1d, 0x56, 0x1b, 0xfb, 0x5f, 0xef, -0xf5, 0x9f, 0x2e, 0xfd, 0xe2, 0x35, 0xf8, 0xc3, 0x3e, 0xae, 0xb1, 0x4d, 0x1e, 0xec, 0x01, 0x11, -0x1c, 0x01, 0x24, 0xfa, 0x18, 0xd3, 0xd8, 0x6c, 0xf6, 0x14, 0x47, 0xe9, 0x66, 0x33, 0x68, 0xbd, -0x4b, 0x20, 0xbf, 0x0d, 0x84, 0x7d, 0x78, 0xc4, 0x21, 0x9f, 0xf0, 0xba, 0xce, 0xcc, 0xbc, 0x5d, -0xe8, 0xf0, 0x48, 0xde, 0x2e, 0xb4, 0x21, 0x95, 0x94, 0xc6, 0xa2, 0x40, 0x91, 0x57, 0x11, 0x43, -0x40, 0xe5, 0x73, 0xb1, 0x1d, 0xf5, 0xe4, 0x5d, 0xa2, 0x14, 0x26, 0x9d, 0x2b, 0x9d, 0x5e, 0x8a, -0xba, 0x1e, 0xdb, 0xbc, 0x7d, 0x52, 0x7f, 0x97, 0xc5, 0x41, 0x7e, 0x63, 0x4e, 0xff, 0xd8, 0x86, -0xbd, 0xd5, 0x4e, 0xf1, 0x0c, 0x94, 0x2d, 0x35, 0x45, 0x6e, 0xa9, 0x2c, 0x57, 0x25, 0x1f, 0xf3, -0x5b, 0xcb, 0xe7, 0xb8, 0x68, 0xcf, 0x85, 0xd9, 0xf9, 0x5e, 0x3f, 0xf9, 0x7a, 0x30, 0x64, 0xd8, -0x27, 0xeb, 0x5c, 0xa0, 0x69, 0xac, 0x2d, 0xfc, 0xce, 0x40, 0x5a, 0xed, 0x7f, 0x6e, 0x52, 0x41, -0x3b, 0x4c, 0x81, 0x2c, 0xa4, 0x43, 0xb4, 0x78, 0x0c, 0xd5, 0x88, 0x19, 0x4e, 0x1a, 0x3c, 0x16, -0x3a, 0x6e, 0x63, 0xc7, 0x55, 0xf2, 0xdd, 0xcf, 0x2c, 0xc2, 0xfe, 0xb0, 0xb7, 0x3c, 0xa0, 0xc9, -0xec, 0x6e, 0x81, 0x33, 0xeb, 0xfc, 0xe9, 0x76, 0x16, 0xf3, 0xa3, 0x90, 0xbc, 0x77, 0xae, 0xc1, -0x91, 0x4e, 0x35, 0x8e, 0xc9, 0xb0, 0x96, 0xcb, 0x28, 0x3e, 0xfd, 0x01, 0x9e, 0xd6, 0x3f, 0x96, -0xb4, 0xcf, 0x59, 0x85, 0x03, 0x61, 0x6f, 0x45, 0x40, 0x55, 0x91, 0xc9, 0x52, 0xe2, 0xd8, 0x75, -0xee, 0x13, 0x2c, 0xe5, 0x3a, 0xc7, 0x84, 0xad, 0x1e, 0x96, 0xee, 0x03, 0xa9, 0x83, 0xa7, 0xf2, -0x8f, 0x9e, 0xca, 0x27, 0xe7, 0xa5, 0xc9, 0x53, 0x4b, 0xaa, 0x3c, 0xcd, 0x94, 0x7d, 0xc9, 0x65, -0x3b, 0x26, 0xca, 0x29, 0x4f, 0x48, 0xe6, 0x78, 0x4a, 0x0d, 0xa6, 0x54, 0x8f, 0x9c, 0x12, 0x79, -0x99, 0x43, 0x48, 0xcd, 0x57, 0xf9, 0x3a, 0xb6, 0x1d, 0xf9, 0x7a, 0x48, 0xc5, 0x87, 0xc3, 0xb4, -0xf3, 0x7e, 0xb9, 0x9d, 0xf7, 0xdc, 0x8a, 0x76, 0x46, 0xfd, 0x33, 0x05, 0xf5, 0xcf, 0x90, 0xd6, -0x66, 0x5a, 0x20, 0xcb, 0x55, 0x11, 0xdf, 0x4f, 0x6f, 0xe5, 0x2d, 0x6d, 0x70, 0xfe, 0x81, 0x5a, -0x9a, 0x76, 0xeb, 0x58, 0xe5, 0xb6, 0xb6, 0xdb, 0xbf, 0xf3, 0x0c, 0xb6, 0x75, 0x58, 0x05, 0xf3, -0xa0, 0x07, 0x76, 0xc0, 0x19, 0x21, 0x4b, 0x6e, 0x4d, 0x55, 0x49, 0x37, 0xab, 0x39, 0x8b, 0x32, -0xc0, 0xf8, 0x59, 0x39, 0xf7, 0x09, 0x29, 0xcd, 0x52, 0x23, 0x56, 0xbb, 0xa8, 0xc6, 0xf9, 0xcb, -0xe8, 0x6b, 0xfd, 0x39, 0xb9, 0x3d, 0xc7, 0x96, 0x7a, 0x57, 0x2c, 0xef, 0x8a, 0xba, 0x94, 0xb6, -0xaa, 0x9c, 0xdb, 0x2b, 0xa5, 0x89, 0x35, 0x16, 0x65, 0xea, 0x0d, 0xb1, 0xbc, 0xc7, 0x90, 0xfa, -0xc1, 0x98, 0x0c, 0x3a, 0xca, 0x24, 0x95, 0xc3, 0x5d, 0xf2, 0x6e, 0x2a, 0x35, 0x49, 0xb4, 0x1c, -0x96, 0x0a, 0xe2, 0xe9, 0xdd, 0x98, 0xbe, 0xec, 0x5a, 0xe9, 0xdf, 0x8b, 0xb5, 0x75, 0xc5, 0x6e, -0xde, 0xd6, 0xaf, 0xa7, 0xc6, 0x50, 0x60, 0xb1, 0x47, 0x96, 0xb0, 0xb6, 0x66, 0x5e, 0x00, 0x78, -0x7b, 0xab, 0x9a, 0x78, 0x7b, 0xab, 0x16, 0x18, 0x35, 0x34, 0x77, 0x67, 0xd2, 0x9c, 0x5e, 0xcf, -0xe7, 0x30, 0xee, 0x28, 0x85, 0xbb, 0x69, 0x16, 0x03, 0x8f, 0xf7, 0xdc, 0xe1, 0x84, 0x7b, 0x53, -0xe5, 0xa1, 0x93, 0xe4, 0xa1, 0x42, 0x52, 0x75, 0xc6, 0xe4, 0xa1, 0x62, 0x64, 0x79, 0x28, 0xe0, -0xf2, 0xf0, 0x53, 0xea, 0xe5, 0x71, 0x9d, 0x36, 0x44, 0x2a, 0x64, 0xad, 0x96, 0xe5, 0x2a, 0xa7, -0xd5, 0x47, 0x28, 0x17, 0x95, 0x50, 0x3c, 0xa7, 0x02, 0xed, 0x69, 0xda, 0xa9, 0xb5, 0x28, 0x15, -0x3b, 0x44, 0x1b, 0x14, 0x17, 0x4e, 0xd6, 0x55, 0xa0, 0x54, 0xf8, 0x0a, 0xbf, 0xd3, 0xc1, 0x35, -0xc0, 0x1a, 0xe8, 0x87, 0x2f, 0x91, 0xa2, 0x1c, 0xea, 0xf1, 0xdf, 0x3f, 0xe0, 0x70, 0xd1, 0xdc, -0x94, 0xe2, 0xbc, 0xc5, 0x08, 0x7b, 0xbb, 0xbc, 0xae, 0x80, 0xae, 0x28, 0x23, 0x2b, 0x32, 0x19, -0x2d, 0x0c, 0x8e, 0xd3, 0x55, 0x14, 0x1b, 0xa7, 0x90, 0xb5, 0x16, 0x8b, 0x8d, 0x53, 0x33, 0x6f, -0x9d, 0xa4, 0x8d, 0xbd, 0x83, 0x5a, 0x38, 0x7f, 0x67, 0xcd, 0x72, 0xf2, 0x0d, 0x58, 0xc4, 0xdf, -0xf5, 0xdf, 0xc0, 0xbb, 0x70, 0x59, 0x2e, 0x37, 0xbd, 0x22, 0xb3, 0x62, 0x2a, 0x08, 0xf8, 0x1b, -0xcb, 0x9b, 0xfb, 0x69, 0x2d, 0x85, 0x5c, 0xea, 0xf5, 0xbf, 0xd9, 0x23, 0x97, 0x99, 0xa1, 0xa4, -0x57, 0xd2, 0x67, 0xbd, 0x02, 0x77, 0x4f, 0x6e, 0x83, 0x7b, 0xf0, 0xba, 0x0d, 0xee, 0x1d, 0x2e, -0x37, 0x39, 0x8f, 0x7e, 0xc9, 0x29, 0xe7, 0x90, 0x95, 0xfa, 0x8e, 0x74, 0x0d, 0x1e, 0xc4, 0x72, -0x28, 0xca, 0x88, 0x6b, 0x1d, 0xf2, 0x2a, 0x42, 0x92, 0xe8, 0x4d, 0xac, 0x1f, 0x1a, 0xaa, 0x79, -0x6c, 0x2d, 0x08, 0xca, 0xad, 0xb2, 0xee, 0x39, 0x28, 0xeb, 0x9e, 0x81, 0x5b, 0xa1, 0x7b, 0x48, -0xd6, 0x0e, 0x0d, 0xa0, 0x55, 0x1f, 0x46, 0xd2, 0x3e, 0x08, 0x7f, 0xf0, 0x42, 0xc2, 0xce, 0x18, -0x92, 0xed, 0x8c, 0xcb, 0x30, 0x41, 0xd6, 0x3d, 0x00, 0x85, 0x76, 0x66, 0x69, 0xe2, 0xda, 0xe7, -0x2c, 0x1a, 0x55, 0x61, 0x20, 0xec, 0x75, 0x07, 0x54, 0x96, 0x54, 0x7d, 0x52, 0x5e, 0x4f, 0xfa, -0xa4, 0x02, 0xfb, 0x24, 0xd5, 0x9c, 0x6b, 0x88, 0xf3, 0x3c, 0xb5, 0x7f, 0x6c, 0xa9, 0x5f, 0x8f, -0xe5, 0x5d, 0xb1, 0x29, 0x45, 0x9f, 0x94, 0xd7, 0x93, 0x3e, 0xa9, 0xb0, 0x28, 0x53, 0x6f, 0x8a, -0xe5, 0x3d, 0x86, 0xd4, 0x8d, 0x72, 0xce, 0x1a, 0x6b, 0x99, 0xa4, 0xb1, 0xb6, 0x81, 0xd5, 0x92, -0xaa, 0x4f, 0xca, 0x93, 0xa8, 0x39, 0x28, 0xd9, 0xe5, 0x37, 0xd2, 0x28, 0xb5, 0xa4, 0xb2, 0x96, -0x5d, 0xeb, 0x0d, 0xe4, 0x68, 0xb2, 0xb5, 0xd9, 0xa5, 0xd0, 0x40, 0x47, 0xe4, 0x76, 0x6f, 0xa2, -0x76, 0x67, 0xfb, 0x1e, 0x9c, 0xac, 0xe5, 0x3d, 0xd8, 0x9e, 0xf6, 0x36, 0x50, 0xef, 0xc2, 0x63, -0x21, 0x1e, 0x77, 0xe8, 0x68, 0x64, 0x9a, 0xb5, 0xdc, 0x38, 0xaa, 0x04, 0xe4, 0x06, 0xd2, 0x7c, -0x74, 0x9e, 0x66, 0x23, 0xdf, 0xbe, 0xb5, 0xb4, 0xa3, 0xc3, 0xd3, 0xaf, 0x6c, 0x7b, 0x13, 0xb6, -0x3d, 0xf3, 0x37, 0x64, 0xc0, 0x67, 0x86, 0x84, 0x9c, 0xd8, 0x4b, 0x0f, 0x0d, 0x1c, 0x1f, 0x78, -0x6c, 0x52, 0xff, 0x5a, 0x13, 0x4f, 0xf9, 0xbf, 0x24, 0x95, 0xab, 0x2c, 0xfe, 0x55, 0xd1, 0x8c, -0x52, 0x52, 0xc0, 0xc7, 0x96, 0x38, 0xf6, 0xb2, 0x56, 0x7f, 0xa1, 0x05, 0x1c, 0x6f, 0x19, 0xe9, -0x5b, 0xd1, 0x1c, 0xd7, 0x4c, 0x17, 0xb0, 0x1d, 0xa0, 0x2c, 0xfa, 0xcc, 0x5c, 0x09, 0x54, 0x5f, -0x12, 0xb2, 0xe5, 0xbe, 0x05, 0xc9, 0xe3, 0x8d, 0xe7, 0xe1, 0x5e, 0x1e, 0x71, 0xc6, 0x5d, 0xb7, -0x91, 0xec, 0xd8, 0x1f, 0x3e, 0x87, 0x5a, 0x47, 0x26, 0xf7, 0x7a, 0x54, 0x34, 0xd9, 0x5c, 0x2d, -0xa1, 0x7e, 0xfd, 0xfe, 0x01, 0x5d, 0x1b, 0x8c, 0x83, 0x9a, 0x46, 0x3f, 0x8a, 0xf9, 0x5c, 0xfb, -0xb7, 0x7a, 0xf9, 0xfe, 0xdf, 0xe7, 0x21, 0x07, 0x74, 0x42, 0x87, 0x70, 0x40, 0xd5, 0x23, 0xce, -0x2a, 0x54, 0xdb, 0xc7, 0xa1, 0x14, 0x66, 0xc5, 0xce, 0x60, 0x80, 0xe7, 0x31, 0x43, 0xf5, 0x6e, -0x69, 0x20, 0x7b, 0x06, 0xbc, 0x5b, 0x11, 0xd0, 0xe6, 0xdb, 0xa0, 0xec, 0x2b, 0x6b, 0x3d, 0x20, -0x47, 0x91, 0xa9, 0xf2, 0xa7, 0x17, 0x59, 0xb1, 0x5d, 0x36, 0x50, 0xbb, 0x9c, 0xf1, 0xf8, 0x35, -0x3c, 0xe2, 0x97, 0x94, 0x46, 0x39, 0x74, 0xc0, 0x6b, 0xc8, 0xe3, 0x65, 0xbb, 0x90, 0xe2, 0xe9, -0xa9, 0x39, 0xf9, 0x6f, 0x30, 0x27, 0xe1, 0x3c, 0xcf, 0xa9, 0x58, 0x35, 0x50, 0x1a, 0xc8, 0x28, -0x86, 0x01, 0xc2, 0x40, 0xfa, 0x51, 0xf3, 0xe8, 0x2d, 0xd6, 0x3e, 0x33, 0x8b, 0xbd, 0xbf, 0x17, -0xdf, 0x7f, 0x29, 0xf5, 0x7d, 0xff, 0xf5, 0xbd, 0xdf, 0xaa, 0xa8, 0x49, 0x3e, 0xe7, 0x09, 0xad, -0xc5, 0x9d, 0xa1, 0x95, 0xd2, 0xa8, 0x2d, 0x66, 0x4c, 0xb8, 0xce, 0x3a, 0x6d, 0xc7, 0x3c, 0x73, -0x87, 0xcd, 0xd3, 0x23, 0xe7, 0xe9, 0xbc, 0x91, 0x3c, 0x61, 0x2f, 0x4b, 0xaf, 0xb5, 0x67, 0xf4, -0x97, 0x32, 0x0f, 0x2b, 0xe3, 0xfb, 0x2b, 0xe6, 0xbd, 0xe9, 0xe9, 0xf6, 0xbc, 0xe9, 0xee, 0x66, -0x5e, 0x68, 0x7c, 0x1d, 0xc2, 0x4c, 0x0f, 0x14, 0x60, 0xfe, 0x76, 0xa9, 0x88, 0xaf, 0x73, 0xb5, -0x69, 0x98, 0xff, 0xf5, 0x2a, 0x70, 0xc6, 0x67, 0x6c, 0xe9, 0x6b, 0x4d, 0xb1, 0xfd, 0x6e, 0x2d, -0xf4, 0x57, 0x22, 0x32, 0x72, 0x50, 0x84, 0xa1, 0xa0, 0xf0, 0xa7, 0x6d, 0x6b, 0xc2, 0xbe, 0x9e, -0xd7, 0xda, 0xc0, 0xb7, 0x6c, 0x1f, 0x76, 0xa1, 0x02, 0x7c, 0x83, 0xe2, 0x75, 0x65, 0x07, 0xf4, -0x38, 0xfe, 0x20, 0x4f, 0x8b, 0x9a, 0x83, 0x78, 0x34, 0xdd, 0x5d, 0x0c, 0x5f, 0xe9, 0x36, 0x2b, -0xe8, 0x76, 0xb4, 0xc6, 0xe9, 0x9e, 0xed, 0xd7, 0xcc, 0x20, 0xba, 0x23, 0x92, 0xbe, 0x50, 0x3d, -0x63, 0xdc, 0x53, 0x03, 0x0e, 0x97, 0x91, 0x3c, 0xe3, 0x63, 0x4e, 0x3b, 0xa9, 0x06, 0x10, 0x75, -0x4d, 0xd7, 0x62, 0x0f, 0x30, 0xf3, 0x98, 0x49, 0xd8, 0xbb, 0xf3, 0xe9, 0xcb, 0x96, 0xdd, 0x06, -0xb4, 0xa7, 0xaa, 0x70, 0x19, 0x5c, 0xb9, 0x2a, 0xeb, 0x76, 0xeb, 0x08, 0xbd, 0xdc, 0xc1, 0x7a, -0xb9, 0x5b, 0xee, 0xe5, 0x7b, 0xe5, 0x5e, 0xbe, 0xfb, 0xe6, 0x7a, 0xb9, 0x95, 0xf7, 0xdd, 0x9f, -0x5c, 0xbb, 0x97, 0x9b, 0x79, 0xca, 0xe7, 0xc9, 0x63, 0x2b, 0xf5, 0xe8, 0xf7, 0xdf, 0x19, 0xae, -0xaf, 0x9b, 0x26, 0xb2, 0x99, 0x4f, 0xea, 0xe7, 0xce, 0xa1, 0xfd, 0x5c, 0xad, 0x4a, 0xea, 0xe7, -0x6e, 0x65, 0x3f, 0x67, 0xfe, 0x23, 0xb0, 0x9f, 0xdb, 0x3c, 0x28, 0x27, 0xfa, 0x11, 0xfa, 0x3a, -0xda, 0x65, 0xb9, 0xb7, 0x6b, 0xc5, 0x32, 0xd6, 0xdf, 0xf7, 0x08, 0xe9, 0x82, 0x0f, 0x72, 0x41, -0x07, 0xc6, 0x42, 0x8d, 0x3d, 0xcd, 0x55, 0xee, 0xa8, 0x44, 0xf9, 0x3b, 0xa2, 0x38, 0x0f, 0x6f, -0x7e, 0xbb, 0x24, 0xad, 0x50, 0x53, 0x52, 0x65, 0x28, 0xb3, 0x96, 0xcd, 0xac, 0x80, 0x02, 0x87, -0x0a, 0xfb, 0xef, 0x5c, 0x85, 0x84, 0x66, 0xcd, 0xc8, 0x78, 0x17, 0xe5, 0x00, 0xd9, 0x39, 0xc3, -0xbe, 0x6e, 0x54, 0xa9, 0x2c, 0x9f, 0x4b, 0x6b, 0x45, 0xca, 0x62, 0xb9, 0xef, 0xa2, 0x96, 0x7d, -0x15, 0x73, 0xcb, 0x4d, 0xcd, 0xcd, 0x3f, 0xd6, 0xdc, 0xb4, 0x49, 0x79, 0xbd, 0x86, 0xf4, 0x1e, -0x50, 0xe4, 0x95, 0xc1, 0x28, 0x43, 0x4c, 0x7c, 0x9d, 0xf9, 0xec, 0xc6, 0x7c, 0x7a, 0x52, 0xf3, -0xf1, 0xdf, 0x58, 0x3e, 0x0e, 0x45, 0x3e, 0xb9, 0x09, 0x4e, 0x49, 0x1a, 0xfc, 0x5b, 0x71, 0xed, -0x1a, 0xc6, 0xf2, 0x81, 0x4b, 0xc3, 0xe6, 0x53, 0xc1, 0xf2, 0x99, 0x71, 0x1d, 0xf9, 0xc8, 0xfa, -0xce, 0x9e, 0xd6, 0xef, 0x0e, 0xb4, 0xdb, 0xc7, 0xf5, 0x57, 0x26, 0x6b, 0x81, 0x90, 0x20, 0x15, -0xcb, 0xbd, 0x5f, 0x45, 0x1e, 0x8a, 0x92, 0x7b, 0x3f, 0x69, 0x21, 0x16, 0x5f, 0xac, 0x5c, 0xf6, -0x62, 0x50, 0xcc, 0x35, 0xc0, 0xbf, 0x93, 0x06, 0x88, 0xec, 0x24, 0x0d, 0xb0, 0x27, 0xd6, 0xf3, -0x45, 0x16, 0x89, 0xf2, 0x20, 0x1e, 0x4d, 0xf6, 0x62, 0x70, 0x74, 0x2b, 0xe2, 0x8c, 0x31, 0x0a, -0x59, 0x9c, 0xb1, 0x59, 0x7e, 0x4d, 0x09, 0x51, 0x38, 0x6b, 0xee, 0x93, 0xd8, 0x73, 0xec, 0xdb, -0x67, 0x2d, 0x87, 0xa8, 0x64, 0x9a, 0x50, 0x2c, 0x38, 0x6c, 0x50, 0x80, 0x3d, 0x21, 0xb9, 0xbf, -0x3b, 0x0b, 0x6d, 0xe0, 0xda, 0xc1, 0xfb, 0xfb, 0x5f, 0x93, 0xfa, 0xfb, 0x01, 0xb9, 0xbf, 0xb7, -0x52, 0x7f, 0x37, 0x24, 0xc6, 0x15, 0xd8, 0xd7, 0x35, 0x0d, 0xbc, 0xaf, 0x6b, 0x7c, 0x46, 0x81, -0xc6, 0x15, 0x77, 0xb8, 0xa0, 0xb4, 0x40, 0x38, 0xbd, 0xf1, 0x8e, 0x4a, 0x28, 0xc7, 0x11, 0x45, -0x6d, 0x7c, 0x8c, 0x51, 0x65, 0x84, 0xd3, 0x8f, 0xe3, 0xd3, 0x59, 0x38, 0xc6, 0x98, 0x7d, 0x03, -0x7a, 0x61, 0x1e, 0xd7, 0x0b, 0xd4, 0xdb, 0xc7, 0xa6, 0x17, 0x94, 0x38, 0x01, 0xf5, 0x42, 0x39, -0xf2, 0xdd, 0x4a, 0x63, 0x12, 0xf3, 0x84, 0x13, 0xbd, 0xc3, 0x69, 0x87, 0x13, 0xe1, 0x13, 0x5c, -0x37, 0x94, 0x30, 0xdd, 0x30, 0x37, 0xae, 0x1b, 0x16, 0xa0, 0x6e, 0x68, 0x49, 0xd2, 0x0d, 0x33, -0x86, 0xd1, 0x0d, 0xf3, 0x50, 0x37, 0xd4, 0x8d, 0xa0, 0x1b, 0xe6, 0xa2, 0x6e, 0x78, 0x10, 0x5b, -0x77, 0x41, 0x1c, 0x09, 0x6c, 0x83, 0x2f, 0x85, 0x1a, 0xe1, 0x55, 0x95, 0xa8, 0x3a, 0xa3, 0x90, -0xbc, 0x3c, 0x26, 0x79, 0x7a, 0xfd, 0x2b, 0x50, 0x9a, 0xd9, 0x06, 0xb4, 0x02, 0x8c, 0xbc, 0x57, -0xa8, 0x46, 0x95, 0xbe, 0x32, 0xb6, 0x42, 0xcc, 0x5d, 0x38, 0x0e, 0x7b, 0x46, 0x99, 0xa3, 0xf2, -0x55, 0x92, 0xc4, 0x97, 0xb0, 0xd7, 0x3f, 0x9f, 0x9a, 0xaf, 0xff, 0xd6, 0xe4, 0x5b, 0xa3, 0xc8, -0x37, 0x87, 0xd1, 0x9b, 0x5e, 0xa1, 0xaf, 0xc0, 0x76, 0xc4, 0xdf, 0xf5, 0xe7, 0xb8, 0x03, 0xfb, -0xf0, 0x97, 0xa9, 0x39, 0xfa, 0x6f, 0x36, 0xc7, 0x6d, 0x8a, 0x1c, 0x0b, 0x18, 0x8d, 0x59, 0xa9, -0x75, 0x97, 0x88, 0x1b, 0x55, 0x78, 0x3e, 0x8b, 0xdd, 0x99, 0x7d, 0x03, 0x25, 0x3d, 0x4b, 0x33, -0x18, 0xc3, 0x96, 0x94, 0x94, 0xaf, 0x74, 0xf3, 0x7c, 0xc7, 0x92, 0xe0, 0x88, 0x8c, 0x30, 0xd2, -0xfa, 0xcb, 0x11, 0x61, 0xac, 0xb1, 0x6b, 0x52, 0x74, 0x4b, 0x43, 0x8a, 0x6e, 0x29, 0x41, 0xdd, -0x32, 0x23, 0x49, 0xb7, 0xd4, 0x31, 0xdd, 0x42, 0xeb, 0x55, 0x0a, 0x51, 0x86, 0xa7, 0xa7, 0xe8, -0x96, 0x86, 0x91, 0x74, 0x8b, 0xa8, 0xa6, 0xd5, 0x45, 0x79, 0x61, 0x51, 0x7d, 0xba, 0xf7, 0xab, -0x4e, 0x10, 0xbe, 0x5a, 0x16, 0xaf, 0xc1, 0xac, 0x98, 0xb6, 0x21, 0x2d, 0x83, 0xba, 0x47, 0x53, -0xcc, 0xb4, 0xcd, 0xbc, 0x27, 0xa5, 0x2c, 0xab, 0x1b, 0x2d, 0x5b, 0x95, 0xc1, 0x5d, 0x9c, 0x56, -0x38, 0x0e, 0xed, 0x9a, 0xd5, 0xa1, 0x8a, 0x6b, 0xa0, 0x62, 0xf3, 0x84, 0x12, 0xd2, 0x40, 0xd6, -0x13, 0xa9, 0x1a, 0xa8, 0x04, 0x35, 0x90, 0x43, 0xd6, 0x40, 0x9b, 0x64, 0x0d, 0x54, 0x34, 0x26, -0xc4, 0xb1, 0x47, 0x46, 0x1c, 0xbb, 0xfe, 0x2b, 0x10, 0x07, 0x69, 0x96, 0x43, 0x03, 0xf4, 0x6d, -0x7f, 0x38, 0xbd, 0x32, 0x1a, 0xe6, 0x50, 0x5d, 0xbd, 0x69, 0xcc, 0x11, 0x49, 0xc1, 0x1c, 0xaf, -0x0b, 0x69, 0x42, 0xed, 0x10, 0xcc, 0x71, 0x50, 0x71, 0xde, 0x39, 0x2c, 0xe6, 0xa8, 0x53, 0x48, -0xb2, 0x9e, 0x49, 0xb2, 0x46, 0x7c, 0x05, 0x1c, 0xa3, 0x5b, 0xbe, 0xfa, 0xa1, 0x88, 0x03, 0x51, -0x82, 0x2a, 0x27, 0x35, 0x2f, 0xff, 0xd8, 0xf2, 0x4a, 0xb6, 0xef, 0xbb, 0x46, 0xc0, 0x1b, 0x9b, -0xae, 0x33, 0x9f, 0x91, 0xf0, 0xc6, 0x8d, 0xe4, 0x33, 0x0c, 0xde, 0x20, 0x6f, 0x43, 0x92, 0x86, -0x5a, 0x4f, 0x5c, 0x77, 0xad, 0x1c, 0x47, 0xc3, 0x1b, 0x94, 0x03, 0xcb, 0xc7, 0x71, 0x1d, 0xf9, -0xfc, 0x17, 0xe1, 0x0d, 0xeb, 0x35, 0xf0, 0x46, 0xfd, 0xf5, 0xe2, 0x8d, 0x2f, 0x13, 0x78, 0x83, -0xfb, 0xe3, 0x16, 0x0b, 0xe5, 0xe8, 0xf2, 0xfa, 0x58, 0x6c, 0x45, 0xdb, 0x6d, 0x4a, 0x4f, 0x06, -0xb2, 0x17, 0x9d, 0x0a, 0x8a, 0x1a, 0x1e, 0x70, 0xb6, 0x1b, 0x0e, 0xbf, 0x40, 0x1e, 0x2b, 0x58, -0x8c, 0xd0, 0x23, 0x36, 0xea, 0x43, 0x57, 0x7e, 0xbc, 0x9f, 0x45, 0x6d, 0x74, 0xfa, 0x0d, 0x6c, -0xcf, 0xff, 0xa3, 0x41, 0x41, 0x11, 0x57, 0x52, 0xa5, 0xdc, 0xed, 0xcf, 0x3c, 0xcc, 0xfc, 0xb9, -0x46, 0x13, 0xdd, 0x2b, 0xef, 0xf6, 0x27, 0xaf, 0x26, 0x2c, 0x02, 0x23, 0x79, 0xc3, 0x33, 0xb4, -0xf0, 0xf5, 0xf3, 0xe4, 0xdd, 0x6d, 0xd3, 0x8b, 0xd0, 0x11, 0xd2, 0x27, 0x22, 0x30, 0xce, 0x21, -0x9f, 0x3d, 0xda, 0xf6, 0x49, 0x2c, 0xaa, 0xe8, 0x93, 0x0a, 0x4f, 0x5f, 0x22, 0x98, 0xc1, 0x0e, -0xc5, 0xe0, 0x84, 0x0a, 0xa8, 0x01, 0x1f, 0xf8, 0xa1, 0x15, 0x42, 0xd0, 0x09, 0x12, 0xd4, 0xc3, -0x06, 0x78, 0x96, 0x79, 0xc5, 0xca, 0x91, 0x96, 0xb3, 0xe3, 0x3f, 0x48, 0x7e, 0x76, 0xcc, 0x95, -0x1e, 0x64, 0xc7, 0xdb, 0xa5, 0x79, 0xe2, 0xcf, 0x20, 0x4d, 0xea, 0xc4, 0xbf, 0xe9, 0xd2, 0x4a, -0xfc, 0x9b, 0x21, 0x05, 0xf1, 0x6f, 0x96, 0xb4, 0x84, 0x3d, 0xcf, 0x97, 0xa6, 0xb3, 0x18, 0x8a, -0x0b, 0xc8, 0x9b, 0x14, 0xad, 0xad, 0xa3, 0x6f, 0x02, 0x92, 0x81, 0x1d, 0x35, 0xd2, 0x14, 0x7c, -0x26, 0x4a, 0xce, 0xd0, 0xa4, 0xbd, 0x3f, 0x03, 0xa3, 0x18, 0x91, 0xa6, 0x07, 0x27, 0x55, 0x40, -0x3f, 0x9e, 0x9f, 0xeb, 0x15, 0xc3, 0x92, 0x59, 0x3b, 0x95, 0x56, 0xf9, 0x51, 0xb4, 0xbc, 0x42, -0xa7, 0xb8, 0xce, 0x4d, 0x11, 0x18, 0xbd, 0x72, 0x04, 0xc6, 0xb8, 0x0f, 0x9b, 0x84, 0x5f, 0x2e, -0x5b, 0x86, 0x68, 0x03, 0x1a, 0x1d, 0xeb, 0xac, 0xc8, 0x11, 0xf2, 0xcc, 0x20, 0xfb, 0x9b, 0xb8, -0x4c, 0xde, 0xd7, 0x44, 0xf2, 0x30, 0xd5, 0x02, 0xf5, 0x86, 0x25, 0xd1, 0x2b, 0xdc, 0x63, 0xb4, -0x75, 0x31, 0x5b, 0x81, 0x62, 0x06, 0x23, 0xd3, 0x84, 0x67, 0x6d, 0x60, 0x73, 0x8c, 0xfb, 0xe2, -0x8f, 0x2c, 0xde, 0xb0, 0xa7, 0x83, 0xad, 0xc8, 0xdf, 0x52, 0xbf, 0xb1, 0xe0, 0x45, 0xf2, 0xea, -0xc6, 0xe4, 0xb0, 0xb7, 0x6e, 0x23, 0xc5, 0x6b, 0x15, 0x97, 0x82, 0x27, 0x38, 0xf1, 0xe0, 0xcb, -0x6c, 0x77, 0x18, 0xed, 0xee, 0x8a, 0x45, 0x58, 0xbc, 0x9c, 0xf0, 0x09, 0xc9, 0x3c, 0x33, 0x42, -0xf4, 0x9c, 0xbc, 0x2f, 0xf7, 0xbc, 0xbc, 0xee, 0x82, 0xed, 0xc9, 0xa5, 0x15, 0xac, 0x48, 0x69, -0xdd, 0x4c, 0x27, 0x94, 0x98, 0xa7, 0x31, 0x4f, 0xaf, 0xe9, 0x50, 0xc8, 0xfa, 0x40, 0x51, 0xd5, -0xe7, 0xe0, 0x9c, 0xaa, 0xa6, 0xb8, 0x74, 0x2e, 0x97, 0x0b, 0x65, 0x9c, 0xe2, 0xd0, 0xfd, 0xe0, -0x1d, 0x57, 0xa5, 0xab, 0xc2, 0x55, 0x4e, 0xf1, 0xe7, 0xf0, 0x57, 0x40, 0xb3, 0x2f, 0xa2, 0x1e, -0x5b, 0xd7, 0xd7, 0x7e, 0x3b, 0x6b, 0xcb, 0x5d, 0xe4, 0xff, 0x8a, 0x9d, 0x6d, 0x4f, 0x8a, 0xad, -0xf9, 0xbc, 0xe2, 0xbf, 0x88, 0xbf, 0x79, 0xd8, 0xa2, 0x61, 0x3c, 0x2e, 0xc1, 0xd6, 0xdd, 0x22, -0x7b, 0x73, 0x33, 0x31, 0x6f, 0x3e, 0x8e, 0x6f, 0x3d, 0xbb, 0x3f, 0x5e, 0x47, 0xa6, 0xcb, 0x07, -0x0c, 0xda, 0x4f, 0xd7, 0xf5, 0xf5, 0x1e, 0xec, 0xfa, 0xb8, 0x97, 0xa2, 0xfb, 0x32, 0xff, 0xa5, -0x56, 0xa9, 0x76, 0x26, 0xf9, 0x78, 0x2b, 0x58, 0x25, 0x48, 0x6e, 0x76, 0x56, 0xd8, 0x29, 0x48, -0x25, 0xec, 0xcc, 0xfe, 0x98, 0x20, 0xd9, 0xd9, 0x59, 0x51, 0x09, 0x79, 0x3c, 0x31, 0x72, 0xaf, -0x70, 0xfc, 0x3d, 0x39, 0xb2, 0x9e, 0xde, 0xe0, 0xfb, 0x06, 0xa5, 0x30, 0x84, 0x04, 0x76, 0xa7, -0x58, 0xac, 0x61, 0xde, 0x9f, 0x62, 0x31, 0x65, 0xad, 0xde, 0x72, 0xbf, 0xc5, 0xa6, 0xb1, 0xa9, -0xb1, 0x9f, 0xf8, 0xe6, 0x86, 0x91, 0xeb, 0xbb, 0xae, 0x5a, 0x65, 0x1f, 0x20, 0xe4, 0x0f, 0xd5, -0x0c, 0xe4, 0x55, 0x3c, 0x1d, 0xb9, 0x53, 0x30, 0xc5, 0x01, 0x82, 0xb7, 0x22, 0x91, 0x7a, 0x1e, -0x4b, 0x3d, 0x78, 0x35, 0x96, 0x1a, 0x7b, 0x6b, 0x81, 0xe8, 0x3c, 0x8c, 0xa5, 0xcd, 0x2c, 0x85, -0xc2, 0x3c, 0x4a, 0x5d, 0x99, 0x48, 0xdd, 0xc0, 0x53, 0x1f, 0x1c, 0x92, 0x77, 0x16, 0xe6, 0x6d, -0xcf, 0xc7, 0xd4, 0xf6, 0x89, 0x3c, 0xb5, 0x01, 0x53, 0x2f, 0xe8, 0xb2, 0x09, 0x98, 0xfa, 0x5f, -0x14, 0x79, 0xdb, 0xe3, 0x79, 0xb3, 0xda, 0x22, 0xdd, 0x3a, 0xa4, 0x46, 0x8b, 0x65, 0x68, 0xec, -0x13, 0x03, 0x1e, 0x6f, 0x1b, 0x94, 0x04, 0x9c, 0x66, 0x9f, 0xf7, 0x25, 0xb0, 0xfa, 0x8b, 0x83, -0x6a, 0xeb, 0x9c, 0xda, 0x97, 0x07, 0x5b, 0xa7, 0x62, 0xab, 0x8a, 0xe4, 0x95, 0xce, 0x2a, 0x7b, -0xf7, 0x11, 0xb5, 0x16, 0x6c, 0xa7, 0xd9, 0x01, 0xed, 0x9d, 0x9d, 0x30, 0xf8, 0x8d, 0x8b, 0x30, -0x45, 0xf4, 0x01, 0x71, 0x2d, 0xb7, 0x5d, 0xd5, 0xfd, 0x02, 0xd4, 0x84, 0x04, 0x45, 0xea, 0x12, -0x6f, 0x79, 0x20, 0xed, 0x6e, 0x6c, 0x7d, 0x28, 0xf4, 0x56, 0x04, 0x74, 0xfc, 0xc9, 0xdd, 0xe4, -0x5b, 0xb6, 0xc8, 0x5b, 0xa9, 0xb8, 0xb6, 0xc3, 0x74, 0xa4, 0x20, 0x71, 0x5d, 0x84, 0x7a, 0x12, -0x65, 0xc8, 0x5f, 0x12, 0xab, 0x8d, 0x8f, 0xd5, 0xe6, 0xca, 0x11, 0xb9, 0x36, 0x19, 0xbc, 0xee, -0x72, 0xfb, 0xaa, 0x68, 0x6d, 0x2a, 0xd6, 0xaf, 0x90, 0xaf, 0x1f, 0x3f, 0x1c, 0xbe, 0xab, 0x14, -0x53, 0xa1, 0x1c, 0xfa, 0x0b, 0x62, 0xbc, 0xab, 0x67, 0xbc, 0xbb, 0xb2, 0x45, 0x7e, 0x3f, 0x9d, -0xbf, 0x1f, 0x62, 0xfe, 0x5f, 0x44, 0xdf, 0x41, 0x2c, 0xf1, 0x6e, 0x27, 0x18, 0xf0, 0x1d, 0x6b, -0x80, 0xbc, 0x19, 0x69, 0x4c, 0xbe, 0x80, 0x95, 0xf5, 0xaf, 0x5e, 0xb6, 0x43, 0x82, 0xf5, 0x2e, -0xb6, 0x82, 0x01, 0x3e, 0x5e, 0xd7, 0x17, 0xb6, 0x09, 0x89, 0x3e, 0x77, 0xaf, 0x13, 0x8c, 0x12, -0x45, 0x13, 0x7e, 0x18, 0x8c, 0x2c, 0x3f, 0x97, 0x5d, 0x95, 0xf0, 0x0a, 0xcd, 0x7d, 0x25, 0x59, -0xda, 0x78, 0xcc, 0x7a, 0xd4, 0xb5, 0x39, 0xc6, 0x69, 0x60, 0xb2, 0x4e, 0x03, 0x4b, 0xf9, 0xa7, -0x50, 0x28, 0x7a, 0x13, 0xde, 0x6b, 0xbd, 0x2f, 0x82, 0xc1, 0x9f, 0xcf, 0x62, 0xa7, 0x3e, 0x16, -0x9c, 0x1a, 0xbf, 0x7f, 0x02, 0xfb, 0xae, 0xe1, 0x81, 0xbd, 0x9e, 0x1e, 0x8a, 0xcd, 0xd4, 0x21, -0x28, 0xde, 0xd8, 0xe7, 0x75, 0x07, 0x40, 0x65, 0xb1, 0xa9, 0x29, 0xbe, 0xa0, 0x6d, 0x22, 0x6a, -0x0a, 0xd4, 0xd9, 0xf1, 0x78, 0xce, 0xd9, 0x46, 0xe7, 0xd1, 0x3f, 0x43, 0x96, 0x58, 0xc6, 0x90, -0x9c, 0x75, 0x15, 0xb0, 0x18, 0xdf, 0x3d, 0xac, 0x07, 0x86, 0x58, 0x0f, 0x5c, 0x79, 0x1f, 0xf9, -0x4f, 0xcc, 0xc4, 0xb3, 0x56, 0x45, 0xff, 0x33, 0x42, 0x23, 0xfb, 0x6f, 0x95, 0x8f, 0x0e, 0xf9, -0xd8, 0x88, 0x6d, 0xe2, 0xc1, 0xbe, 0xb8, 0x40, 0xf6, 0xa8, 0xa8, 0x95, 0xa6, 0xb3, 0xa3, 0x5e, -0xf6, 0xac, 0x98, 0x2d, 0x99, 0x58, 0xfc, 0x01, 0xd1, 0x42, 0xfb, 0x95, 0xa6, 0x78, 0xb7, 0xa1, -0xcd, 0xc8, 0x0e, 0x6a, 0xba, 0x50, 0x22, 0x24, 0x9d, 0x91, 0x3c, 0xac, 0x71, 0x3f, 0xb8, 0x9e, -0x52, 0xb4, 0x40, 0x0a, 0xdf, 0x8a, 0x10, 0x5d, 0xee, 0x7d, 0x01, 0xb4, 0x01, 0x8a, 0x3f, 0xf0, -0x02, 0x8b, 0xc1, 0x5c, 0x84, 0x47, 0x0f, 0x1e, 0xad, 0xde, 0x3e, 0x3f, 0x08, 0xf3, 0x82, 0x1a, -0x2b, 0xed, 0xd8, 0x43, 0x49, 0x34, 0x92, 0x1f, 0x80, 0x9c, 0xb2, 0x4f, 0x20, 0x57, 0x74, 0xde, -0x59, 0x05, 0xe9, 0xa2, 0x2f, 0xa8, 0xbf, 0xd3, 0x49, 0xf2, 0x87, 0x7f, 0xf3, 0xed, 0x9d, 0xe0, -0x3f, 0x74, 0x38, 0xce, 0x9d, 0xc3, 0xed, 0x02, 0x49, 0x23, 0xe2, 0x89, 0xec, 0x59, 0xf8, 0x46, -0x48, 0xa4, 0x78, 0x48, 0x85, 0xbb, 0xb3, 0xb2, 0x75, 0x02, 0xdc, 0xe5, 0xaf, 0xcf, 0xb2, 0x82, -0x30, 0x77, 0x03, 0x9e, 0xb7, 0x04, 0xf4, 0xf8, 0x77, 0x65, 0x20, 0x1f, 0xff, 0x36, 0xfa, 0xed, -0xb6, 0x71, 0x12, 0xed, 0x7e, 0xd1, 0x7a, 0x1e, 0xc5, 0x76, 0xd8, 0x88, 0x36, 0x2c, 0x83, 0xa2, -0x11, 0x49, 0x14, 0xe3, 0x4b, 0x9f, 0xb8, 0x27, 0x56, 0xf2, 0xdd, 0xae, 0xd2, 0x94, 0xbc, 0xdd, -0x70, 0x17, 0x79, 0x6b, 0x69, 0x4d, 0xa7, 0x15, 0xca, 0x52, 0x9a, 0x6f, 0x43, 0x5e, 0x57, 0x50, -0xf0, 0x0a, 0x01, 0xdd, 0x87, 0xfd, 0x5b, 0xc2, 0x14, 0x71, 0x69, 0xd9, 0x06, 0x57, 0x0e, 0xf9, -0xe5, 0xc7, 0x96, 0x20, 0x9d, 0x95, 0x1e, 0x34, 0x1c, 0xfc, 0x39, 0xf9, 0xbe, 0xaa, 0xdd, 0xf5, -0xe5, 0x8f, 0xb8, 0xf5, 0x44, 0x89, 0xf3, 0xdd, 0xe9, 0x86, 0x7a, 0xda, 0x99, 0x28, 0xb6, 0x08, -0x7d, 0x0a, 0x8f, 0xc6, 0x78, 0xa7, 0xf4, 0x9c, 0x10, 0x36, 0xf8, 0x62, 0xf7, 0xae, 0x5e, 0x1c, -0x92, 0x6a, 0x9f, 0xec, 0xe3, 0xad, 0x2f, 0x28, 0x58, 0x2b, 0xc8, 0xfe, 0x22, 0x87, 0x8b, 0x98, -0x05, 0xd6, 0x30, 0xa9, 0x50, 0x46, 0x76, 0x96, 0x7d, 0x52, 0xd1, 0x4e, 0xd8, 0x60, 0xe6, 0x41, -0x94, 0x04, 0xee, 0x0f, 0x88, 0xb5, 0xc7, 0x07, 0xa8, 0x31, 0x8b, 0xd9, 0x93, 0xac, 0x61, 0x9e, -0x38, 0x0c, 0xb4, 0x52, 0x65, 0xf2, 0x30, 0x4f, 0x9c, 0xec, 0x49, 0xf6, 0x30, 0x4f, 0xdc, 0x2c, -0x5e, 0x03, 0x5c, 0x0d, 0x4b, 0x70, 0xf5, 0x2a, 0xda, 0x7c, 0xb2, 0x25, 0x79, 0x16, 0x5a, 0x4f, -0x6b, 0x03, 0xa3, 0x71, 0x16, 0xed, 0x78, 0x35, 0x2f, 0x85, 0x1c, 0xd4, 0x27, 0x80, 0xfa, 0x64, -0xba, 0xe8, 0xf3, 0x6e, 0x0a, 0xd8, 0xc9, 0xaf, 0x68, 0x32, 0x17, 0x12, 0xb5, 0x8f, 0x6a, 0x86, -0x3c, 0xdd, 0x87, 0x6f, 0x0b, 0xf8, 0x76, 0x06, 0xd7, 0x1d, 0xd6, 0x56, 0x26, 0x2b, 0x7e, 0x39, -0x4f, 0x94, 0x91, 0xd8, 0x1d, 0x9b, 0x0b, 0x8c, 0xb6, 0x59, 0x20, 0x92, 0xdf, 0x37, 0xc3, 0x52, -0xb6, 0x27, 0x5f, 0xf6, 0xf7, 0x46, 0xfe, 0xd5, 0xb0, 0x77, 0x9a, 0xcd, 0xd8, 0xfb, 0x11, 0x85, -0x64, 0xa1, 0x85, 0xce, 0x31, 0xb6, 0x82, 0xe6, 0xe9, 0x3f, 0x41, 0x28, 0x78, 0xfb, 0xf6, 0xc7, -0x9b, 0x41, 0xd8, 0x54, 0xf9, 0x97, 0x62, 0xb0, 0xcc, 0x31, 0x2c, 0x03, 0x2b, 0xf3, 0x18, 0x96, -0x55, 0x34, 0x15, 0x0a, 0x0b, 0xa7, 0x42, 0x51, 0xf1, 0x54, 0xd4, 0x5c, 0x53, 0xa1, 0x58, 0xd2, -0xd1, 0xfe, 0xf0, 0x22, 0x01, 0x75, 0x8d, 0xbe, 0x18, 0x56, 0xe5, 0xee, 0xa2, 0xb7, 0x1a, 0x8e, -0xee, 0xb7, 0x7f, 0x67, 0x5b, 0x3a, 0xe6, 0xa5, 0x65, 0xdf, 0xbd, 0x0a, 0x91, 0x19, 0x21, 0xb4, -0x65, 0x9b, 0xd0, 0x9a, 0xed, 0x84, 0x06, 0xd8, 0x0b, 0x47, 0xe0, 0x34, 0x9c, 0x83, 0x03, 0xf0, -0x19, 0x5c, 0x16, 0x40, 0xd0, 0x0a, 0x7a, 0x21, 0x47, 0xc8, 0x13, 0x0c, 0x82, 0x59, 0x28, 0x10, -0x9c, 0x82, 0x9b, 0x21, 0x2f, 0x91, 0xf9, 0x6e, 0xe8, 0xf5, 0x74, 0xa8, 0xcf, 0xa1, 0xd4, 0x3c, -0xcd, 0x76, 0xd4, 0x71, 0xcb, 0x47, 0x9e, 0x10, 0xc2, 0xa8, 0x71, 0xfa, 0x44, 0xf2, 0xcd, 0xfd, -0x22, 0xf3, 0x62, 0x78, 0x85, 0x7b, 0xd1, 0xa7, 0x7d, 0xab, 0x9b, 0xba, 0xa4, 0x12, 0xbe, 0xa3, -0x63, 0xcb, 0x8b, 0xd8, 0x5f, 0x1b, 0xf8, 0x13, 0x7e, 0xa7, 0x2f, 0xc2, 0xbc, 0x87, 0x7f, 0x1d, -0x0c, 0x5c, 0x67, 0xf6, 0x85, 0x8d, 0x5d, 0xf4, 0xd5, 0x8c, 0x5f, 0xa1, 0x8e, 0xd0, 0x1b, 0x69, -0xcd, 0xee, 0xcb, 0xfc, 0x9a, 0xaf, 0xdb, 0xdd, 0xd4, 0x23, 0x7d, 0x62, 0x7c, 0x91, 0x79, 0xf6, -0xff, 0x2e, 0x1e, 0xf5, 0x78, 0x7c, 0x92, 0xe7, 0x66, 0x8c, 0xe0, 0x79, 0x84, 0xe7, 0x2f, 0xbd, -0x8a, 0xcf, 0x74, 0x52, 0x3b, 0x7f, 0xc7, 0xd8, 0x23, 0xb5, 0xc8, 0xbb, 0x7a, 0x5e, 0x46, 0xd4, -0x82, 0xe5, 0x49, 0x3f, 0xa9, 0xfc, 0x14, 0x72, 0x8d, 0xeb, 0xa5, 0x3a, 0x4c, 0x57, 0x2c, 0x79, -0xf1, 0xaf, 0x43, 0x72, 0xe3, 0x5f, 0xa7, 0x34, 0x03, 0xff, 0xba, 0xa5, 0x62, 0xfc, 0x9b, 0x2d, -0x15, 0x6a, 0xa7, 0x91, 0x95, 0x21, 0x14, 0x65, 0x77, 0x1a, 0x7b, 0xdd, 0x7d, 0x92, 0x68, 0x7c, -0x42, 0xca, 0xc3, 0x67, 0x1e, 0xc4, 0x53, 0x35, 0x60, 0xb5, 0x95, 0x81, 0x19, 0xf1, 0x94, 0x91, -0xe3, 0x29, 0x87, 0x83, 0xf0, 0x14, 0xad, 0x43, 0xe7, 0xc8, 0x49, 0x64, 0x7b, 0x79, 0x99, 0x5f, -0x85, 0xaf, 0x93, 0x5f, 0x05, 0xda, 0x4f, 0xc9, 0x73, 0x0c, 0x78, 0xac, 0x88, 0x76, 0x5d, 0x3f, -0x15, 0x5d, 0xac, 0x3f, 0xde, 0xe6, 0x59, 0x4e, 0xd1, 0xcc, 0xff, 0x23, 0x4b, 0xee, 0x8b, 0x16, -0xc2, 0x49, 0x86, 0x39, 0xe2, 0x54, 0xa8, 0x6f, 0x9f, 0x78, 0xf8, 0x65, 0x16, 0x57, 0x4c, 0x19, -0x8f, 0x5a, 0x81, 0x96, 0x68, 0x85, 0x79, 0xca, 0xfe, 0x50, 0x0d, 0x8f, 0xab, 0x41, 0xfb, 0xde, -0x29, 0x06, 0x27, 0xed, 0x15, 0xb3, 0x3b, 0x0b, 0xe1, 0xb0, 0xf3, 0xe0, 0x1b, 0x38, 0x74, 0xb6, -0xf4, 0x0d, 0xd8, 0xab, 0x0e, 0x97, 0x52, 0xc4, 0xcb, 0xbe, 0x37, 0xcc, 0x68, 0x8f, 0x51, 0xea, -0x8c, 0x21, 0x20, 0x7f, 0xbc, 0xc6, 0xd2, 0xa3, 0xfd, 0x95, 0x17, 0xc3, 0x40, 0xfb, 0xfb, 0xca, -0x2f, 0x6c, 0x02, 0xa9, 0x20, 0x2f, 0x33, 0x7f, 0x2a, 0x08, 0xfa, 0x9f, 0xd1, 0x2a, 0xf8, 0xcc, -0x4a, 0x10, 0x32, 0x2b, 0x40, 0xe5, 0x32, 0x83, 0xba, 0xbe, 0xd7, 0xd7, 0x25, 0xa5, 0x89, 0x6e, -0x43, 0x59, 0x3b, 0x6c, 0xef, 0xf2, 0x9f, 0x38, 0xb6, 0xfe, 0xc4, 0xe3, 0xbe, 0xc8, 0xae, 0x88, -0xff, 0x7c, 0x50, 0x40, 0x44, 0x29, 0xaf, 0x4e, 0xc4, 0xd2, 0xdd, 0x16, 0x1a, 0x7b, 0xc8, 0xa5, -0x97, 0xa0, 0x75, 0x7c, 0xd6, 0xc3, 0xca, 0x9e, 0xc1, 0xca, 0x26, 0x7b, 0x64, 0x55, 0x96, 0x5d, -0x97, 0x28, 0xbb, 0x28, 0x2f, 0xb3, 0xb8, 0x82, 0x4a, 0xcf, 0x9b, 0x4a, 0xa5, 0x97, 0xe8, 0xf4, -0xab, 0x47, 0xa1, 0xe0, 0x30, 0xa7, 0xe0, 0xb7, 0x7b, 0x38, 0x05, 0x8e, 0x14, 0x0a, 0xa8, 0xfc, -0x22, 0xb4, 0xf8, 0x5b, 0xde, 0x88, 0x95, 0x8e, 0x25, 0x17, 0xa3, 0x06, 0xb0, 0xb6, 0x03, 0x61, -0xb6, 0xca, 0x0b, 0xcf, 0xc1, 0xa1, 0x01, 0x56, 0xae, 0x33, 0x2f, 0x73, 0x0a, 0x96, 0x3a, 0x77, -0x5d, 0xfe, 0xb8, 0x8f, 0x27, 0xe9, 0xd7, 0x7e, 0x34, 0x51, 0x35, 0x0e, 0xf2, 0xf2, 0xd3, 0x3e, -0x9d, 0xf4, 0xe4, 0x38, 0x2a, 0x5f, 0x95, 0x16, 0xbd, 0xac, 0xa0, 0xa1, 0x07, 0x69, 0x28, 0x33, -0xb8, 0x3a, 0x60, 0x7b, 0x8f, 0x7f, 0xdf, 0x91, 0xf5, 0xc7, 0x1e, 0xf7, 0x75, 0xfd, 0xf6, 0x8d, -0x9b, 0xa7, 0x61, 0x4a, 0x66, 0xde, 0xad, 0xa4, 0xa1, 0x98, 0xf6, 0x34, 0x11, 0x86, 0x96, 0x69, -0x28, 0x90, 0x69, 0x28, 0x61, 0x34, 0x14, 0x21, 0x0d, 0x66, 0x4e, 0x43, 0x95, 0x82, 0x86, 0x7c, -0x99, 0x86, 0x29, 0xe3, 0x55, 0xe3, 0xa2, 0x97, 0xf5, 0xab, 0xa7, 0xa4, 0x71, 0x3a, 0x62, 0x54, -0x7c, 0x9c, 0x31, 0x22, 0x0d, 0x1b, 0x88, 0x86, 0x5f, 0xcb, 0x34, 0xe4, 0xdd, 0x04, 0x0d, 0x5c, -0xfe, 0x6e, 0x19, 0x0d, 0xf1, 0xfe, 0x40, 0x34, 0x1c, 0x2e, 0x45, 0x2a, 0x2c, 0x5b, 0xde, 0x48, -0xed, 0x09, 0x1c, 0xc3, 0x53, 0x6b, 0x30, 0x1a, 0xec, 0xc4, 0x05, 0xa4, 0x42, 0x85, 0xbd, 0x40, -0x5d, 0x3f, 0x5a, 0x2f, 0x38, 0x36, 0x7a, 0x2f, 0x88, 0x97, 0x59, 0xc8, 0xca, 0x4c, 0xea, 0x01, -0xa9, 0x65, 0x4e, 0xc9, 0x8c, 0x49, 0x7e, 0xfd, 0xba, 0x51, 0xe5, 0xfe, 0xd8, 0xb0, 0x72, 0x7f, -0x23, 0xf5, 0x54, 0xf4, 0xf5, 0xfa, 0x9b, 0xe8, 0xeb, 0xd7, 0x51, 0xcb, 0xc2, 0x29, 0x32, 0x67, -0xb1, 0x9e, 0xea, 0x6b, 0xd4, 0xf3, 0xc8, 0xad, 0xae, 0x67, 0xe6, 0x62, 0xd4, 0xc3, 0x42, 0xfd, -0xba, 0xba, 0x83, 0x58, 0xaa, 0x0a, 0x4b, 0xbd, 0x8e, 0x7a, 0x9a, 0x58, 0x3d, 0xed, 0xce, 0x83, -0xfd, 0x87, 0x3d, 0xc5, 0x58, 0xd3, 0x67, 0x78, 0x4d, 0x07, 0x92, 0xfb, 0x73, 0xf9, 0x05, 0x2d, -0x54, 0x5f, 0xec, 0x87, 0x2a, 0xde, 0xa3, 0xf5, 0x79, 0x66, 0x84, 0x95, 0x15, 0x79, 0x6c, 0x0d, -0xe7, 0x8c, 0xf4, 0x8f, 0x27, 0xa9, 0xc6, 0x47, 0x4f, 0x7f, 0x94, 0xf1, 0x64, 0x5a, 0xd6, 0x5a, -0x47, 0xfa, 0x27, 0x19, 0x24, 0xdf, 0x1b, 0xc6, 0x4d, 0xae, 0x20, 0x69, 0x67, 0xbb, 0xbf, 0xcb, -0xc4, 0x98, 0x24, 0x3f, 0x71, 0x6c, 0x43, 0x42, 0x92, 0x1d, 0x37, 0x49, 0x47, 0x9e, 0x9e, 0x56, -0x92, 0x16, 0x95, 0x4f, 0xb9, 0x35, 0x74, 0x24, 0xb5, 0x80, 0x92, 0xff, 0xe4, 0x49, 0x80, 0x10, -0x56, 0x42, 0xb7, 0x31, 0xee, 0x1b, 0xf3, 0xf4, 0xf9, 0x58, 0xfe, 0xdc, 0xde, 0xac, 0xb5, 0xc3, -0x94, 0x71, 0x86, 0x6b, 0xaf, 0x5d, 0x5d, 0x49, 0x3c, 0xbf, 0xee, 0x32, 0xf2, 0x19, 0xaf, 0xc7, -0x5e, 0x06, 0x5f, 0xc5, 0x84, 0xa5, 0xd4, 0x20, 0xfa, 0xaa, 0x63, 0xa5, 0x94, 0x1e, 0x79, 0xc3, -0x61, 0x83, 0x92, 0xad, 0x5e, 0xfa, 0x3a, 0xc8, 0xa4, 0xc9, 0x49, 0x5a, 0x8a, 0x4b, 0x53, 0xf5, -0x05, 0x09, 0x2a, 0xa9, 0x24, 0x4f, 0xbe, 0xfe, 0x8e, 0x16, 0x44, 0x7e, 0xb6, 0xb9, 0xbd, 0x79, -0x36, 0xb0, 0x7d, 0x94, 0xa1, 0x4a, 0x83, 0xbc, 0xac, 0xf1, 0x9f, 0x4e, 0x88, 0xa4, 0xe5, 0xa1, -0x6e, 0xfa, 0x68, 0xd2, 0x86, 0xf1, 0x59, 0x6b, 0x3e, 0x99, 0x90, 0x8f, 0xcf, 0x3e, 0x9e, 0x14, -0x19, 0x4f, 0x3b, 0x4f, 0x91, 0x9a, 0xd5, 0x48, 0x8d, 0x5b, 0x2c, 0x5b, 0x05, 0xdb, 0x57, 0xfb, -0x5f, 0x3f, 0xf6, 0xc4, 0x89, 0xf5, 0xbe, 0xc8, 0x6f, 0x64, 0xb9, 0xe6, 0xeb, 0x6b, 0x6e, 0x9c, -0x9e, 0x3b, 0xea, 0xc0, 0xc6, 0xf9, 0x7b, 0x2b, 0xe9, 0x89, 0xc9, 0x9b, 0x59, 0xee, 0xdf, 0xd3, -0x4b, 0x8f, 0x11, 0x35, 0x85, 0x5b, 0xab, 0x87, 0xb3, 0x63, 0xb4, 0x17, 0xa6, 0xfa, 0xa2, 0x4c, -0x91, 0x8b, 0xa4, 0x8d, 0x64, 0x9e, 0x49, 0x3e, 0xf6, 0xb1, 0xeb, 0x90, 0xb8, 0xbd, 0x28, 0x71, -0xeb, 0x7d, 0x5d, 0xbf, 0x19, 0x46, 0xf2, 0x95, 0x94, 0x30, 0x54, 0x31, 0x0a, 0x25, 0x75, 0x9c, -0x92, 0x24, 0xc9, 0xaf, 0xbf, 0x5e, 0xc9, 0x1f, 0x03, 0x1d, 0x63, 0xe4, 0x48, 0x92, 0x26, 0xf8, -0x7b, 0xd0, 0x31, 0x46, 0x7e, 0xb8, 0x88, 0x0a, 0xe2, 0x05, 0xe3, 0xc8, 0xad, 0x68, 0x99, 0x9b, -0xb2, 0xf0, 0x75, 0x07, 0xb9, 0x8d, 0x27, 0x7f, 0x18, 0x29, 0x56, 0x5e, 0xc5, 0xac, 0xfc, 0x18, -0x2c, 0x7c, 0xed, 0xc3, 0x14, 0xd1, 0x0c, 0x06, 0x6b, 0x8b, 0x81, 0xfe, 0x0d, 0xce, 0xa6, 0xbf, -0x02, 0xc4, 0xfe, 0x0d, 0xce, 0xf6, 0xc9, 0xc7, 0x97, 0xd8, 0xfd, 0xc1, 0xd9, 0xfb, 0xf1, 0xa8, -0x4a, 0x3c, 0xaf, 0x7e, 0x0e, 0x7f, 0x8d, 0xf8, 0x3b, 0x02, 0x83, 0x5e, 0x91, 0xf6, 0x47, 0xc1, -0xad, 0xfe, 0x67, 0x9c, 0x57, 0xee, 0x2b, 0x11, 0x97, 0x36, 0x3f, 0xda, 0xd8, 0xb6, 0xb0, 0xbd, -0xa9, 0xa0, 0x65, 0x71, 0x53, 0x93, 0x78, 0x77, 0x81, 0x5d, 0x34, 0xdf, 0x53, 0x70, 0x4f, 0x41, -0xa1, 0xfd, 0xee, 0xc2, 0xa9, 0x13, 0xd3, 0x21, 0xe9, 0x31, 0x78, 0xaf, 0xc0, 0x60, 0x55, 0x07, -0x52, 0x7b, 0xae, 0x4b, 0x98, 0xf0, 0x75, 0x3c, 0x5f, 0x82, 0xbf, 0x6a, 0xfc, 0x3d, 0x13, 0xcf, -0x75, 0x06, 0x0c, 0x7a, 0x4e, 0xf3, 0x3a, 0xd4, 0x7c, 0x77, 0x56, 0x73, 0x68, 0x21, 0xf8, 0xda, -0xda, 0x42, 0x40, 0xaf, 0x17, 0x2c, 0x6d, 0x6c, 0x82, 0x76, 0xbc, 0x5a, 0xd4, 0xba, 0x70, 0xc5, -0x0a, 0x58, 0xb1, 0x78, 0x19, 0x3e, 0xe6, 0xe7, 0x6d, 0x6d, 0xc1, 0x82, 0xd6, 0xc5, 0x8d, 0xed, -0x0b, 0xdb, 0x1f, 0x4d, 0x24, 0x05, 0xce, 0xb3, 0xc1, 0xea, 0xe9, 0x10, 0x3f, 0xf7, 0x1a, 0x13, -0xe7, 0xb3, 0x3e, 0x49, 0x9c, 0xd7, 0x6a, 0x62, 0xb5, 0xa2, 0x3f, 0xc4, 0xfb, 0xd9, 0x9f, 0x47, -0x3b, 0x29, 0x2a, 0x0e, 0x4a, 0xc1, 0xf3, 0xc6, 0x69, 0x50, 0x52, 0xfa, 0x37, 0xa4, 0x73, 0x1b, -0x1f, 0x8b, 0x9b, 0xa0, 0xfa, 0x73, 0xc0, 0x11, 0x24, 0xe4, 0x7a, 0x1e, 0x45, 0x7a, 0xb7, 0xd9, -0x26, 0x96, 0x33, 0x4f, 0x2b, 0xb5, 0x7d, 0x55, 0x9f, 0x43, 0x08, 0xef, 0x8b, 0xec, 0x7e, 0xbf, -0x4d, 0x57, 0xdb, 0x57, 0xfe, 0x39, 0x2c, 0xc0, 0x3b, 0x46, 0xd7, 0x4f, 0x6d, 0xe9, 0xb2, 0xc7, -0xe2, 0x59, 0xd0, 0x62, 0xeb, 0xc4, 0xdc, 0x7e, 0x0e, 0xad, 0x2c, 0x16, 0x54, 0x10, 0xc7, 0x5f, -0x21, 0x76, 0x67, 0x07, 0x74, 0xe8, 0x1d, 0xa0, 0xc6, 0x7b, 0x9d, 0x38, 0x1e, 0x73, 0xb2, 0x7b, -0xbf, 0x05, 0xb7, 0xa8, 0xf6, 0x31, 0x4f, 0x1d, 0x36, 0x2f, 0xd4, 0xb0, 0x88, 0x53, 0x75, 0x41, -0x3d, 0x7d, 0x8d, 0x13, 0xd5, 0x73, 0xe9, 0xaa, 0x5e, 0x7e, 0x77, 0x81, 0xeb, 0x15, 0xec, 0x0c, -0xaf, 0x40, 0x13, 0x45, 0x49, 0xf4, 0x76, 0x07, 0x5c, 0x4f, 0x0d, 0x94, 0x11, 0xd5, 0x6f, 0x95, -0xc7, 0x62, 0x25, 0x9d, 0x31, 0x52, 0xdc, 0x30, 0xfd, 0x5d, 0xd5, 0x90, 0xf3, 0x35, 0x27, 0x98, -0x44, 0x27, 0x9f, 0x39, 0x52, 0xd4, 0x6d, 0x3f, 0x79, 0x42, 0x9f, 0x27, 0xef, 0x98, 0xe4, 0xbe, -0x6e, 0x3b, 0x75, 0x98, 0x5f, 0x4f, 0x22, 0xe6, 0x83, 0xd1, 0x02, 0x25, 0x38, 0x4a, 0x33, 0xb1, -0x19, 0x49, 0x3d, 0x7b, 0xeb, 0x75, 0xba, 0x66, 0x67, 0x7b, 0x79, 0x44, 0x07, 0xf2, 0xfe, 0x3c, -0x67, 0x39, 0x88, 0xb6, 0x0c, 0xd7, 0x4f, 0x3d, 0x1d, 0xd1, 0x28, 0xf1, 0xa3, 0x4a, 0x43, 0xf5, -0x77, 0x2c, 0x60, 0x23, 0x43, 0x7c, 0xe6, 0xd7, 0x6b, 0x0b, 0x40, 0x0d, 0x19, 0x01, 0xad, 0x98, -0x81, 0x6f, 0x7e, 0x46, 0xa5, 0x71, 0xef, 0xd0, 0xf8, 0x76, 0x06, 0xcd, 0xf1, 0xb0, 0x1f, 0xbd, -0xa9, 0x53, 0xbc, 0x19, 0x0e, 0xe8, 0x7c, 0xf8, 0xb6, 0xaa, 0x20, 0xfa, 0x1f, 0x90, 0x21, 0xa9, -0x7e, 0xf8, 0xae, 0x98, 0x41, 0xef, 0xb0, 0xef, 0x2f, 0xb5, 0x2c, 0x5f, 0x80, 0x9f, 0x18, 0x0b, -0x60, 0x7a, 0x2c, 0x0f, 0x5e, 0xba, 0x17, 0x92, 0xf2, 0xc0, 0xf1, 0xb5, 0xa1, 0x36, 0x31, 0x0f, -0x42, 0x54, 0xca, 0x65, 0x19, 0x69, 0x9f, 0xd6, 0xb7, 0xce, 0xd5, 0x6e, 0x56, 0x50, 0x5e, 0x54, -0xbb, 0xd9, 0x96, 0xae, 0xb8, 0x3e, 0x17, 0xcf, 0xcb, 0x58, 0xb0, 0x1b, 0xcf, 0x7c, 0xec, 0xba, -0xce, 0xb0, 0x04, 0x4a, 0xe2, 0x33, 0x4b, 0x8d, 0x3c, 0xde, 0x1a, 0x8b, 0x22, 0x96, 0x65, 0xf0, -0x6e, 0xee, 0x3f, 0xd8, 0x95, 0x88, 0x7b, 0x51, 0xbf, 0x51, 0xd2, 0x82, 0x05, 0xb4, 0x90, 0xc1, -0x63, 0x05, 0x50, 0xec, 0x2a, 0x36, 0xca, 0x76, 0x1a, 0xb5, 0xac, 0xcd, 0x0e, 0x05, 0x13, 0x51, -0xda, 0x4e, 0xdc, 0xe5, 0x84, 0x12, 0xa4, 0xf8, 0x4b, 0x17, 0x8e, 0xb4, 0xef, 0x72, 0xc1, 0x74, -0xa4, 0x21, 0x56, 0x66, 0x4d, 0xfd, 0x46, 0xac, 0xcd, 0x2a, 0x5b, 0x7a, 0x12, 0xbf, 0x2e, 0x51, -0x1d, 0x1c, 0x0b, 0x6a, 0x37, 0xcb, 0xb5, 0x6d, 0x48, 0x7a, 0xca, 0xa2, 0x00, 0x62, 0x0d, 0x63, -0xb3, 0xb7, 0x0e, 0x45, 0xcd, 0xac, 0xb5, 0x5b, 0x92, 0xf3, 0xf2, 0xea, 0x58, 0x2e, 0x79, 0xde, -0xb0, 0x7f, 0x95, 0x92, 0x07, 0xc8, 0x4f, 0x96, 0xfb, 0xad, 0xe1, 0xdc, 0xe8, 0xbc, 0x7a, 0x7a, -0x3f, 0x8b, 0x6d, 0xa3, 0x61, 0x7e, 0xc5, 0xd3, 0x6d, 0x2a, 0xe6, 0x2b, 0xaa, 0x05, 0xb4, 0x21, -0x28, 0xb2, 0x41, 0x96, 0xa4, 0xb7, 0xa9, 0x68, 0x56, 0x99, 0xbe, 0x6b, 0xd5, 0x6e, 0x32, 0xfa, -0xea, 0x36, 0x7a, 0xfb, 0xfc, 0xe7, 0x79, 0xbc, 0x3d, 0x5b, 0x06, 0x93, 0xed, 0x0f, 0xc9, 0x53, -0xbc, 0x75, 0x31, 0x94, 0x90, 0x84, 0x07, 0x05, 0x59, 0xc6, 0xd2, 0x29, 0x4e, 0x16, 0x7f, 0x6e, -0x5d, 0xc2, 0x9e, 0xd1, 0x2c, 0x9b, 0x21, 0xa0, 0xf7, 0x2c, 0x01, 0x0b, 0xd1, 0xa5, 0x6a, 0xad, -0xdf, 0xc8, 0x23, 0x6c, 0x71, 0xb9, 0x9c, 0xbf, 0x51, 0xd6, 0x08, 0x34, 0xbf, 0x65, 0x0d, 0x8e, -0x8f, 0xd1, 0x78, 0xe5, 0x98, 0x91, 0xf6, 0x2b, 0xfe, 0x88, 0xcd, 0x1d, 0x5b, 0x63, 0x3e, 0xd1, -0xcc, 0x31, 0xcf, 0xe5, 0x2b, 0x8d, 0x4e, 0x9a, 0x9b, 0x73, 0xbd, 0x00, 0x5a, 0xfc, 0xe9, 0xaa, -0x29, 0x62, 0x34, 0xf7, 0x43, 0x25, 0xc6, 0x63, 0xf0, 0x18, 0xc8, 0x03, 0x65, 0xb3, 0x3e, 0xa0, -0x4d, 0x8a, 0x72, 0xa6, 0x4b, 0x8a, 0x9b, 0x73, 0x98, 0xcd, 0xec, 0x26, 0xa2, 0xa7, 0xf4, 0xda, -0x3b, 0xc1, 0x72, 0xe8, 0x53, 0xc8, 0x31, 0xc4, 0x67, 0xb1, 0xa3, 0xe9, 0xf1, 0xb3, 0x88, 0xc1, -0x95, 0x90, 0x45, 0x8a, 0x63, 0x2b, 0x92, 0xb7, 0x2a, 0x5d, 0xbd, 0x22, 0x6a, 0x96, 0x49, 0x8e, -0x9a, 0x65, 0xae, 0xa6, 0x3d, 0x2f, 0xde, 0x97, 0x30, 0x77, 0x31, 0x91, 0xbb, 0xa1, 0x26, 0xd1, -0x3f, 0x12, 0xb9, 0xb2, 0x98, 0x59, 0xd5, 0xa9, 0x31, 0xb3, 0x28, 0xf2, 0x29, 0x71, 0xd4, 0x20, -0xc7, 0x7a, 0xa0, 0x88, 0x63, 0xd6, 0x16, 0xd4, 0x13, 0x66, 0x30, 0xa0, 0x86, 0xd2, 0x92, 0x86, -0x9a, 0xb5, 0x1b, 0x74, 0x4c, 0x8f, 0xe9, 0x4b, 0xcf, 0xe1, 0x5d, 0x0f, 0x64, 0x33, 0xed, 0x97, -0x6b, 0x5b, 0x8c, 0xfd, 0x20, 0x8f, 0x66, 0x3a, 0x37, 0xbf, 0x8d, 0x9a, 0x4a, 0xcb, 0xf4, 0x14, -0xf2, 0x9b, 0xc7, 0xf6, 0xe4, 0xfe, 0xe7, 0x69, 0x0e, 0x91, 0xbe, 0x70, 0x92, 0xe7, 0x32, 0xb9, -0x1d, 0xf7, 0xf2, 0x56, 0x4c, 0xd0, 0xab, 0xff, 0x26, 0xfc, 0xeb, 0x67, 0x82, 0x0a, 0xa2, 0xff, -0x3a, 0xb9, 0x9f, 0xce, 0xa4, 0xab, 0xdc, 0x86, 0xde, 0xbf, 0x8f, 0xdb, 0x93, 0x79, 0x5b, 0xb9, -0xae, 0x9f, 0xf7, 0x19, 0x1e, 0xd5, 0x09, 0x5b, 0xf9, 0x80, 0x9f, 0x1f, 0xeb, 0x7b, 0x92, 0x6d, -0xac, 0xef, 0x2c, 0xfe, 0x7e, 0x02, 0x83, 0x73, 0x72, 0x61, 0xf0, 0xbe, 0xa6, 0xbf, 0xa3, 0x0d, -0x5d, 0xd6, 0xf6, 0xc8, 0x8a, 0x66, 0x85, 0x01, 0x2d, 0x54, 0x18, 0xd0, 0xc4, 0x33, 0x66, 0x3d, -0xeb, 0x5e, 0x85, 0xc1, 0xf9, 0xc0, 0xad, 0x67, 0xdd, 0x8b, 0xf8, 0xdb, 0x88, 0xbf, 0x63, 0xf1, -0xfc, 0x90, 0xcb, 0x75, 0xdc, 0xc2, 0x0d, 0xce, 0x39, 0x99, 0x62, 0x3d, 0x59, 0x4e, 0x63, 0xb5, -0x9f, 0x3c, 0x71, 0xc2, 0x3e, 0xfa, 0x56, 0x25, 0xce, 0xef, 0x6b, 0x49, 0x9c, 0xdf, 0xdf, 0xa8, -0x38, 0xef, 0xbc, 0x86, 0x0d, 0x0d, 0x51, 0x5f, 0xab, 0xfb, 0x48, 0x61, 0x43, 0x5b, 0x62, 0xb6, -0x72, 0xf6, 0xf9, 0x24, 0x1b, 0xba, 0x25, 0x66, 0x5b, 0xeb, 0x74, 0xa3, 0xdb, 0xd0, 0xba, 0x4f, -0xd1, 0x86, 0xaa, 0x95, 0x36, 0xb4, 0xee, 0x02, 0xb3, 0xa1, 0x2a, 0xa5, 0x0d, 0xad, 0xfb, 0xcf, -0xb1, 0xd9, 0x50, 0x7c, 0x77, 0x04, 0x1b, 0x7a, 0xdf, 0xb8, 0xb1, 0xd8, 0x50, 0xb9, 0x6e, 0x63, -0xb3, 0xa1, 0xa1, 0x1b, 0xb1, 0xa1, 0x75, 0x9e, 0x1b, 0xb5, 0xa1, 0x75, 0x75, 0x37, 0x60, 0x43, -0x3b, 0x92, 0x6d, 0xe8, 0x7d, 0xee, 0xb1, 0xd9, 0xd0, 0xba, 0x96, 0xa1, 0x96, 0xa0, 0xae, 0x23, -0xd9, 0x12, 0xdc, 0x67, 0x1d, 0xd1, 0x86, 0x86, 0x6e, 0xde, 0x86, 0xde, 0x55, 0x0b, 0x41, 0xd6, -0x6e, 0x99, 0x29, 0x76, 0x34, 0xa4, 0xb0, 0xa3, 0x1d, 0xd7, 0xb2, 0xa3, 0xf7, 0x15, 0x8f, 0x66, -0x47, 0xeb, 0xc2, 0x23, 0xdb, 0xd1, 0xba, 0x60, 0xaa, 0x1d, 0xbd, 0xaf, 0x6e, 0x78, 0x3b, 0x8a, -0x3c, 0x4d, 0xb1, 0xa3, 0x37, 0xc3, 0xbd, 0xb1, 0xdb, 0x51, 0x8a, 0xfe, 0x24, 0xfb, 0x5d, 0x64, -0x51, 0x15, 0xec, 0x66, 0xd0, 0xeb, 0x9c, 0x61, 0x08, 0xe4, 0xcf, 0xf4, 0x41, 0xfa, 0x4c, 0xf2, -0xbf, 0xa0, 0x9b, 0x49, 0x91, 0x6b, 0x33, 0x58, 0x0c, 0x5a, 0xfd, 0x4c, 0x27, 0x64, 0x61, 0x1f, -0xa0, 0x08, 0x69, 0x3a, 0x53, 0x9d, 0x44, 0xb1, 0xe9, 0xa7, 0xb1, 0x55, 0x10, 0x68, 0x73, 0x4d, -0x73, 0xd0, 0xe6, 0x6e, 0x46, 0x9b, 0xfb, 0x90, 0xe9, 0x21, 0x1e, 0xf3, 0x88, 0xdb, 0xdd, 0xfb, -0xbe, 0x2a, 0xdb, 0xdd, 0x50, 0xc2, 0xee, 0x7a, 0x3e, 0x06, 0x8a, 0x4c, 0xa1, 0xe7, 0xcf, 0xd1, -0xee, 0x86, 0xe2, 0x76, 0xd7, 0x44, 0x76, 0x97, 0xea, 0xae, 0x6a, 0xad, 0xdd, 0x8c, 0xe7, 0xd3, -0x6b, 0x37, 0x97, 0x7e, 0x02, 0xae, 0xc4, 0x37, 0xc8, 0x3a, 0xd9, 0x1a, 0x63, 0x5b, 0xc3, 0x35, -0xad, 0xf1, 0x4b, 0x23, 0x58, 0x63, 0xda, 0x8b, 0x36, 0x92, 0x3d, 0xb6, 0x2a, 0xec, 0xb1, 0x06, -0xed, 0x71, 0x1e, 0x7d, 0xdb, 0x96, 0xfd, 0x94, 0xea, 0xa5, 0xd1, 0x6c, 0xf3, 0xbe, 0xff, 0x7f, -0x6d, 0x33, 0xad, 0x0e, 0x32, 0xc8, 0xab, 0x83, 0x58, 0x6b, 0x2f, 0x86, 0x2c, 0xd3, 0x62, 0x16, -0x91, 0x84, 0x56, 0x07, 0x19, 0x42, 0x9a, 0x9d, 0xe1, 0xe6, 0xe9, 0xe5, 0x17, 0x73, 0x21, 0x1b, -0x6b, 0xba, 0x33, 0x1c, 0xc8, 0x69, 0x4c, 0xc7, 0x33, 0xbc, 0xeb, 0x17, 0xa5, 0x6c, 0x16, 0x33, -0x0f, 0xeb, 0x26, 0x59, 0xe4, 0x33, 0x9d, 0x24, 0xb2, 0x28, 0x79, 0x42, 0x3c, 0x42, 0x1e, 0xad, -0xc4, 0xa9, 0x62, 0xd1, 0x60, 0x92, 0x56, 0xe2, 0xa0, 0x84, 0x9d, 0xa5, 0x16, 0xc2, 0x11, 0xbd, -0xc3, 0x42, 0x6b, 0xcd, 0x5a, 0x99, 0x37, 0xce, 0x90, 0x8c, 0x09, 0xf2, 0x48, 0xe3, 0xde, 0xaf, -0x01, 0x91, 0xe9, 0x65, 0x5a, 0x6d, 0x68, 0x66, 0x78, 0xc0, 0x6a, 0x5b, 0x86, 0x7d, 0xda, 0x8e, -0x3a, 0x3c, 0x2b, 0x11, 0x1b, 0x3d, 0x5a, 0xc2, 0x23, 0x1e, 0xc3, 0xeb, 0x98, 0xc2, 0x2c, 0x2e, -0x93, 0xb1, 0x82, 0xac, 0x91, 0x51, 0x0f, 0x6b, 0xc9, 0x13, 0x99, 0xc9, 0x0a, 0x39, 0xd8, 0x9a, -0xc5, 0xae, 0x1f, 0xb7, 0x5b, 0x0e, 0x77, 0x7f, 0xad, 0x94, 0xc7, 0x1c, 0xa7, 0x2f, 0x5a, 0xf5, -0xeb, 0x44, 0xa7, 0x91, 0xb7, 0xd7, 0x73, 0xcc, 0x6f, 0x99, 0xf6, 0xde, 0xce, 0x30, 0x80, 0x5e, -0x32, 0xc5, 0x52, 0xcc, 0x5b, 0x47, 0xb2, 0xac, 0x4c, 0x43, 0x1a, 0xfc, 0x5e, 0x44, 0x2b, 0xee, -0xa5, 0xa0, 0x2f, 0xee, 0x04, 0x57, 0xe9, 0xa5, 0xe2, 0x84, 0x2e, 0x39, 0x80, 0xed, 0x3b, 0xfd, -0xd0, 0x9b, 0x86, 0xea, 0x44, 0xeb, 0x26, 0x3d, 0xdf, 0x47, 0xb1, 0x0b, 0x24, 0xbd, 0xa1, 0x3a, -0x98, 0x95, 0xe8, 0x81, 0x71, 0x4b, 0x90, 0xc7, 0xdb, 0xd9, 0x14, 0x8b, 0x6a, 0x42, 0x5f, 0x48, -0xd1, 0x22, 0x54, 0xa1, 0xb4, 0x8b, 0x35, 0x89, 0x32, 0x8c, 0xd8, 0x07, 0xa4, 0x29, 0xf4, 0x0d, -0x79, 0xc7, 0x8b, 0xa0, 0xf1, 0x67, 0x28, 0x64, 0x49, 0x23, 0xa5, 0x19, 0x9d, 0x62, 0x96, 0xff, -0x8c, 0x22, 0xfd, 0x3e, 0x16, 0xa5, 0x8b, 0x59, 0x10, 0xf2, 0xb0, 0xbd, 0x5d, 0x7e, 0x47, 0x49, -0x01, 0xef, 0xfd, 0x1c, 0x17, 0x49, 0x5b, 0x38, 0x52, 0x68, 0x74, 0x25, 0xe3, 0x1e, 0xa9, 0x26, -0x79, 0x2e, 0x61, 0x41, 0x3d, 0xfe, 0xa6, 0xe0, 0x6f, 0x03, 0x0c, 0x36, 0x9c, 0xf8, 0x3b, 0xe2, -0xa0, 0x85, 0xcb, 0x16, 0x07, 0x16, 0xe2, 0xc8, 0x5d, 0x01, 0x85, 0xa6, 0x2b, 0xa0, 0x50, 0xd2, -0x63, 0x86, 0x86, 0xe6, 0xef, 0x45, 0xea, 0x77, 0x23, 0x1a, 0x32, 0xe3, 0x39, 0x21, 0xa3, 0xef, -0xe1, 0xef, 0x6c, 0x3c, 0xd7, 0xc7, 0xf1, 0xca, 0xca, 0xeb, 0xf0, 0x3f, 0x6a, 0x87, 0x99, 0x4b, -0xa0, 0x13, 0x8e, 0x7f, 0x62, 0xb7, 0x0a, 0x5a, 0xbe, 0x7d, 0xed, 0x79, 0x85, 0xf8, 0x49, 0x29, -0x11, 0x54, 0xdd, 0xd8, 0xf4, 0xd0, 0x43, 0x1e, 0xbc, 0xf5, 0x10, 0x3f, 0x5b, 0xd8, 0xde, 0xf4, -0xed, 0x85, 0xed, 0xcd, 0xbe, 0xe6, 0x15, 0xcd, 0xa1, 0x74, 0x08, 0x61, 0x66, 0xed, 0x05, 0x4d, -0xcd, 0x2b, 0x17, 0x2f, 0x6a, 0x86, 0x45, 0x8b, 0x17, 0x2e, 0x2c, 0x68, 0x6f, 0x5e, 0xd1, 0xf6, -0x48, 0x3b, 0x5e, 0x2d, 0x6d, 0x6c, 0x4f, 0xe1, 0x02, 0x62, 0xa8, 0xff, 0xfe, 0x59, 0xe2, 0xbc, -0xe1, 0x03, 0xf9, 0x5c, 0x0d, 0x83, 0x0f, 0x5e, 0x82, 0xc1, 0x87, 0xf4, 0x78, 0x0c, 0x25, 0x9e, -0x3f, 0xe4, 0x55, 0xe2, 0x2d, 0x05, 0xe6, 0xda, 0x20, 0xeb, 0xc5, 0x2d, 0x88, 0xb9, 0xd6, 0x90, -0x9e, 0x9d, 0x7f, 0x29, 0x05, 0x73, 0x31, 0x6c, 0x35, 0x5f, 0x93, 0x84, 0xb9, 0x36, 0xe0, 0x7d, -0x3d, 0xbb, 0x9f, 0x37, 0x3a, 0xe6, 0x9a, 0xff, 0xb7, 0xd4, 0x79, 0x8b, 0xf9, 0x57, 0x19, 0xe6, -0x12, 0x94, 0x98, 0xab, 0x61, 0xfc, 0xb0, 0x98, 0x2b, 0x23, 0x15, 0x73, 0x35, 0x64, 0x8e, 0x84, -0xb9, 0x1a, 0xbe, 0x3a, 0x02, 0xe6, 0x6a, 0x57, 0x62, 0x2e, 0xb9, 0x6e, 0x23, 0x61, 0xae, 0x50, -0x12, 0xe6, 0x22, 0x0f, 0x9d, 0xed, 0x29, 0x98, 0xab, 0xfd, 0x5a, 0x98, 0x6b, 0x7e, 0xdd, 0x8d, -0x62, 0xae, 0xf9, 0xf5, 0x37, 0x80, 0xb9, 0x22, 0xc9, 0x98, 0xab, 0xa1, 0x7f, 0x6c, 0x98, 0x6b, -0x7e, 0x70, 0x28, 0x6a, 0x98, 0x1f, 0x4e, 0x46, 0x0d, 0x0d, 0x5b, 0x46, 0xc4, 0x5c, 0x6b, 0x6e, -0xcd, 0xbc, 0x45, 0xc3, 0xd4, 0x14, 0xbc, 0xb5, 0x46, 0x81, 0xb7, 0x22, 0xd7, 0xc2, 0x5b, 0x0d, -0xcf, 0x8d, 0x86, 0xb7, 0xe6, 0xf7, 0x8e, 0x8c, 0xb7, 0xe6, 0x77, 0xa4, 0xe2, 0xad, 0x86, 0x97, -0x86, 0xc7, 0x5b, 0xc8, 0xcf, 0x14, 0xbc, 0x75, 0x33, 0x9c, 0x1b, 0x3b, 0xde, 0xaa, 0xbd, 0x9f, -0xa2, 0x6d, 0xda, 0x0b, 0xc9, 0x4b, 0xbd, 0xc9, 0x81, 0x39, 0xde, 0x43, 0xbd, 0x53, 0x2c, 0x43, -0x7e, 0xb1, 0xa8, 0x5e, 0x28, 0xd7, 0x8f, 0x3d, 0x35, 0x60, 0x28, 0x7b, 0x7a, 0xbf, 0x42, 0xe2, -0x1d, 0x68, 0x45, 0xda, 0xa7, 0x2d, 0x85, 0xc7, 0xa2, 0x97, 0x68, 0x95, 0x29, 0xc5, 0x12, 0x15, -0x97, 0xb0, 0x75, 0x13, 0x97, 0x6c, 0xe9, 0xdc, 0x9f, 0xa4, 0x09, 0x44, 0x2f, 0x97, 0x60, 0xc4, -0x60, 0xdd, 0x81, 0xf4, 0x7b, 0x69, 0x0d, 0x9f, 0x18, 0x8b, 0x0b, 0x5e, 0xa3, 0x8b, 0x9e, 0x66, -0x1e, 0xd9, 0x1f, 0xb6, 0x65, 0xa0, 0xc5, 0x32, 0x50, 0xa4, 0xda, 0x04, 0x9e, 0xe2, 0x88, 0x8c, -0x61, 0xc1, 0x0b, 0x6c, 0xdd, 0x6c, 0x2e, 0xf6, 0xac, 0x16, 0x58, 0xc3, 0xfa, 0xe5, 0x0c, 0xd0, -0xb4, 0xaf, 0x3a, 0x1c, 0x46, 0xeb, 0xae, 0xc5, 0xbe, 0xa9, 0xc3, 0x9f, 0xbe, 0xf4, 0x73, 0x56, -0xb3, 0x2d, 0x9e, 0x7e, 0x36, 0x3a, 0xd7, 0x73, 0x0f, 0x0e, 0xd7, 0xf1, 0xe6, 0x93, 0x54, 0x62, -0x3c, 0x5e, 0xc7, 0x05, 0xe4, 0x87, 0xc1, 0x58, 0x65, 0x9a, 0x0a, 0x5a, 0xdd, 0x54, 0xc2, 0x9b, -0x28, 0x2b, 0x3f, 0xc9, 0xc6, 0x51, 0xfc, 0x79, 0x81, 0x8f, 0xe5, 0x91, 0x4e, 0x27, 0x1f, 0xcb, -0x97, 0xfe, 0x39, 0x7a, 0x81, 0x45, 0xdc, 0xdc, 0x7b, 0x66, 0x4a, 0x85, 0x4a, 0xa7, 0x82, 0x0e, -0xbf, 0xa8, 0xb7, 0x80, 0xce, 0x07, 0xff, 0xcd, 0x09, 0x3a, 0x1d, 0x90, 0x97, 0x4b, 0x6c, 0xcf, -0x0e, 0x1b, 0xc5, 0xf3, 0xf3, 0x31, 0x7f, 0xe3, 0x0d, 0x14, 0xcd, 0x84, 0xf9, 0x6b, 0x96, 0xef, -0xe8, 0x55, 0x69, 0x10, 0x5d, 0x83, 0x69, 0x85, 0xc6, 0x1c, 0x50, 0x45, 0xc3, 0xb4, 0xd6, 0x06, -0xa2, 0x6c, 0xee, 0x48, 0x4e, 0x81, 0xa5, 0x5c, 0xe6, 0xa5, 0x88, 0x5f, 0x8f, 0x5e, 0xd9, 0xf4, -0xf3, 0xe8, 0xa5, 0xf6, 0xd9, 0x3b, 0xc2, 0xad, 0xe7, 0x52, 0x67, 0x16, 0x88, 0xb3, 0x6e, 0x99, -0xb3, 0xb1, 0x38, 0x77, 0xa4, 0x61, 0x28, 0x32, 0x19, 0x93, 0x96, 0x4a, 0x92, 0x8e, 0x09, 0x69, -0xf5, 0x1b, 0x75, 0xb4, 0x9a, 0x4a, 0xb7, 0x28, 0x6f, 0xb4, 0x59, 0x8a, 0xc4, 0xdc, 0xd2, 0x37, -0x69, 0xbf, 0x88, 0x15, 0xf1, 0x52, 0x91, 0x12, 0xcd, 0x72, 0xe4, 0x23, 0x44, 0x58, 0xfb, 0x7d, -0x02, 0x39, 0x0a, 0x7f, 0xd6, 0xdc, 0xbf, 0xf9, 0x4a, 0x9a, 0x4f, 0x51, 0xac, 0x63, 0x8c, 0x04, -0xf4, 0x09, 0x5c, 0x82, 0xf8, 0x12, 0x84, 0x0a, 0xd4, 0xfb, 0xe6, 0x69, 0x56, 0xd0, 0xac, 0x84, -0x10, 0x20, 0x7e, 0xe3, 0x71, 0xdc, 0x33, 0xfb, 0xb6, 0xc1, 0x2a, 0x8a, 0x3e, 0xd6, 0x9c, 0x41, -0x7b, 0x72, 0x5f, 0xeb, 0x0a, 0x68, 0x8c, 0x20, 0xa9, 0x50, 0xa2, 0x66, 0x59, 0xab, 0xe5, 0x88, -0xee, 0x47, 0x94, 0x39, 0x61, 0xce, 0xd8, 0x9b, 0x6d, 0x3a, 0xc4, 0xd5, 0x45, 0x43, 0xe3, 0xf3, -0xc1, 0x99, 0x58, 0x94, 0xf7, 0xa9, 0x65, 0xa0, 0xb1, 0x90, 0x7f, 0x79, 0x33, 0x8b, 0xac, 0xaa, -0x40, 0x71, 0xd3, 0x9c, 0xb0, 0x84, 0xa2, 0x8a, 0x92, 0xe6, 0x6e, 0x58, 0x12, 0x54, 0x21, 0x66, -0x5c, 0x92, 0x88, 0x7e, 0x7e, 0xd5, 0x4d, 0x5a, 0xbe, 0xc0, 0xf1, 0x2b, 0x0d, 0x24, 0x22, 0xa2, -0x6f, 0x61, 0xd4, 0xb6, 0xc0, 0x12, 0xa4, 0x31, 0x9b, 0x62, 0x82, 0xdf, 0xe9, 0x84, 0xe5, 0x94, -0x3b, 0xd3, 0x37, 0xdf, 0x8e, 0xbf, 0x9b, 0x81, 0x79, 0xfb, 0xfd, 0xf4, 0xf6, 0x38, 0xe5, 0xdb, -0x54, 0x9a, 0x6b, 0x2a, 0xcc, 0x9f, 0x4c, 0x91, 0xb3, 0xeb, 0xff, 0x91, 0xe4, 0x73, 0x35, 0x34, -0xd0, 0xf1, 0xa1, 0x1e, 0x68, 0xfc, 0xc7, 0x1a, 0x78, 0x90, 0xc5, 0xfa, 0x53, 0x97, 0xfd, 0x09, -0xea, 0x50, 0x82, 0xfd, 0xf8, 0xce, 0x97, 0x48, 0x45, 0x36, 0xe6, 0x23, 0x28, 0xf3, 0x91, 0x54, -0x72, 0xdc, 0xf9, 0xad, 0x1c, 0xa5, 0xdb, 0x0d, 0xf1, 0x48, 0xa9, 0x36, 0x1c, 0x3d, 0xa5, 0xb6, -0xcd, 0x01, 0x2a, 0x17, 0x47, 0x3e, 0x7e, 0xf2, 0x52, 0x1d, 0x48, 0xe7, 0xf9, 0x63, 0x3e, 0x2c, -0xb2, 0xa0, 0x77, 0x1b, 0x2c, 0x67, 0x71, 0xf8, 0x96, 0xc4, 0xa9, 0x9f, 0x31, 0x24, 0x87, 0x7d, -0x68, 0x49, 0x53, 0x22, 0xaa, 0xba, 0x75, 0xb5, 0x87, 0x38, 0x76, 0x5b, 0x7c, 0x81, 0xe3, 0x9a, -0xa5, 0xe7, 0x38, 0x16, 0x68, 0x6d, 0x4a, 0x9e, 0xd3, 0x6a, 0x1e, 0xc0, 0x1f, 0xe2, 0x9f, 0x66, -0x44, 0x49, 0x4d, 0xc1, 0xbf, 0x37, 0x66, 0x1b, 0x6d, 0x02, 0x2b, 0x25, 0x01, 0xc3, 0x6d, 0x8b, -0x90, 0xfb, 0xad, 0x67, 0x39, 0x6e, 0x5b, 0xd4, 0x8a, 0xbf, 0x6a, 0xfc, 0x6d, 0x8d, 0xe7, 0xdc, -0x8b, 0xa8, 0x4e, 0xfe, 0x06, 0xe4, 0x7f, 0x3d, 0x19, 0xb7, 0x29, 0xe0, 0x1a, 0xcb, 0x58, 0x9e, -0xa8, 0x1a, 0xc3, 0x5c, 0x96, 0xe2, 0x34, 0xd8, 0x16, 0x0a, 0xb4, 0x25, 0x80, 0xd8, 0x2c, 0xba, -0x29, 0xce, 0x73, 0xb5, 0x2e, 0x5c, 0xbe, 0x54, 0x5c, 0xd1, 0xdc, 0xbe, 0xb2, 0xb9, 0x7d, 0x68, -0x6d, 0x91, 0xc7, 0xcd, 0x0f, 0x26, 0xce, 0x9b, 0x42, 0x09, 0x6c, 0xd6, 0xd2, 0x84, 0xbf, 0x30, -0x0c, 0x06, 0xce, 0x26, 0x9e, 0xb7, 0xec, 0x1a, 0x66, 0x2e, 0xec, 0x39, 0x94, 0x1a, 0xc2, 0xfc, -0x9d, 0xa8, 0xf9, 0xc3, 0xd4, 0x03, 0x16, 0xbd, 0x14, 0xc3, 0x65, 0xb4, 0xe2, 0x3f, 0x36, 0x17, -0xd6, 0xd8, 0xcf, 0x3d, 0xad, 0xde, 0x73, 0x16, 0xf1, 0x4f, 0x2b, 0xa1, 0x35, 0x05, 0x06, 0xab, -0x41, 0x1d, 0x87, 0xdc, 0x5b, 0xf4, 0x0b, 0xe8, 0x64, 0xf3, 0x5e, 0x61, 0x94, 0x12, 0x3b, 0xbb, -0xf3, 0x2a, 0x14, 0xc9, 0x78, 0xab, 0x18, 0x25, 0xc6, 0xc1, 0xf0, 0x96, 0x33, 0x98, 0xc3, 0x3c, -0xbd, 0x73, 0xbc, 0xe5, 0x61, 0xe9, 0xfa, 0xa1, 0x06, 0x35, 0x72, 0x1d, 0xfe, 0xe6, 0xd2, 0x0c, -0x6b, 0x02, 0x6f, 0x2d, 0x3a, 0x84, 0xe5, 0xe5, 0x0e, 0x83, 0xb7, 0x82, 0x4a, 0xbc, 0x25, 0xd3, -0x3c, 0x0c, 0xde, 0x5a, 0x40, 0x78, 0x4b, 0x4a, 0xc2, 0x5b, 0xb4, 0xd7, 0x24, 0x98, 0x82, 0xb7, -0x82, 0xd7, 0xc2, 0x5b, 0x8b, 0x6e, 0xf8, 0x3b, 0xd1, 0xa2, 0x1b, 0xf9, 0x4e, 0xd4, 0x93, 0x8c, -0xb7, 0x9a, 0x16, 0x8c, 0x0d, 0x6f, 0x2d, 0x1a, 0xe6, 0x6b, 0xc7, 0xa2, 0x94, 0xaf, 0x1d, 0x4d, -0xf6, 0x11, 0xf1, 0x56, 0xf8, 0xd6, 0xe0, 0xad, 0x45, 0x1f, 0xa6, 0xe0, 0xad, 0xb0, 0x02, 0x6f, -0xf5, 0x5c, 0x0b, 0x6f, 0x35, 0x39, 0x46, 0xc3, 0x5b, 0x8b, 0x46, 0xf9, 0x4e, 0xb4, 0x68, 0xc8, -0x77, 0xa2, 0x26, 0xcf, 0xf0, 0x78, 0xab, 0x69, 0x41, 0x2a, 0xde, 0xba, 0x19, 0xce, 0xdd, 0x38, -0xde, 0x5a, 0xf4, 0x27, 0xea, 0x75, 0x49, 0x78, 0xab, 0x63, 0x58, 0xbc, 0x15, 0x44, 0xbc, 0xd5, -0xf1, 0xff, 0x14, 0x6f, 0x85, 0x59, 0xbf, 0xbc, 0x84, 0xa8, 0xa9, 0xf5, 0x3a, 0xf1, 0xd6, 0xb5, -0xde, 0x4c, 0xc2, 0x5b, 0x00, 0x9e, 0x8f, 0x8b, 0xed, 0xc6, 0xaa, 0xca, 0x3f, 0x81, 0x76, 0xfa, -0x37, 0xe1, 0xdf, 0x2e, 0xe4, 0x78, 0xd1, 0xa2, 0x06, 0xb4, 0x76, 0x3a, 0xd7, 0x49, 0x69, 0xec, -0x98, 0x5e, 0x04, 0xa7, 0xbd, 0x5b, 0x90, 0xbb, 0x59, 0xd0, 0x67, 0x81, 0xc9, 0xf7, 0x38, 0x11, -0xd1, 0x74, 0xdd, 0x53, 0x0a, 0xe9, 0x7a, 0x95, 0x27, 0x8c, 0x57, 0x3a, 0x6f, 0xa9, 0x5f, 0xe3, -0x75, 0x06, 0x72, 0x50, 0xc6, 0xb4, 0xf7, 0x90, 0x4d, 0xcd, 0xb0, 0xdd, 0x96, 0x40, 0x50, 0x84, -0xde, 0x4e, 0x0b, 0xed, 0x90, 0x45, 0x11, 0xd7, 0x9c, 0xff, 0x7b, 0x5b, 0x7f, 0xc4, 0x0b, 0x0f, -0xec, 0xf1, 0x44, 0xdc, 0x2e, 0xee, 0x15, 0x9f, 0xfc, 0x6c, 0x8a, 0x0e, 0x64, 0x07, 0xe0, 0xb3, -0x6e, 0xbf, 0x06, 0x5c, 0xa0, 0xa2, 0x6b, 0x21, 0x71, 0xad, 0xd9, 0xb9, 0x04, 0xf4, 0x01, 0xe7, -0x4a, 0xe8, 0x80, 0x62, 0x15, 0x6f, 0xef, 0xdf, 0x84, 0xc7, 0xd3, 0xbe, 0x56, 0xb5, 0xcf, 0x89, -0x14, 0x68, 0xc7, 0x6b, 0x1e, 0xe8, 0x67, 0xb4, 0x64, 0xb8, 0x97, 0x24, 0x97, 0xee, 0xeb, 0x0e, -0xaa, 0xb7, 0x77, 0xfb, 0xf7, 0xdf, 0xe3, 0x22, 0x2f, 0x90, 0x35, 0x7f, 0xd6, 0xe5, 0x45, 0xcf, -0x53, 0x6b, 0x24, 0xb0, 0x15, 0xda, 0xeb, 0x64, 0x6c, 0x45, 0x3b, 0x70, 0xde, 0x1d, 0x1e, 0x59, -0x99, 0x5a, 0x20, 0x94, 0x8c, 0xac, 0xd8, 0x5e, 0x40, 0xbd, 0xa1, 0x2c, 0x09, 0x5b, 0x51, 0x8c, -0x61, 0x05, 0x1e, 0x4a, 0xcc, 0x33, 0x0a, 0x2d, 0x26, 0xa7, 0x1c, 0x77, 0xc6, 0x2c, 0xba, 0xd8, -0xfc, 0xa2, 0x99, 0x45, 0x54, 0xa7, 0xf9, 0xc5, 0x56, 0x36, 0xbf, 0x98, 0x8b, 0xe9, 0xb4, 0xe4, -0xc7, 0xd7, 0x9f, 0x21, 0xa5, 0x99, 0xd8, 0xae, 0x8e, 0xaf, 0xb5, 0xc8, 0x51, 0x67, 0xca, 0xe2, -0x73, 0x8b, 0xfb, 0x59, 0x4f, 0x8f, 0x26, 0x90, 0x8e, 0x11, 0x86, 0xe2, 0x1c, 0xa2, 0xf8, 0x4e, -0x17, 0xf8, 0x5d, 0xd3, 0x20, 0x9b, 0x38, 0x3a, 0x89, 0xcb, 0xf9, 0x97, 0x3a, 0xe7, 0x24, 0x60, -0x98, 0x2a, 0x09, 0xcd, 0xf0, 0x14, 0x06, 0x9e, 0xe6, 0x33, 0x6a, 0xb5, 0x33, 0x02, 0x8b, 0x2a, -0x92, 0xdd, 0xee, 0x34, 0x0b, 0x7f, 0x7c, 0x49, 0xd4, 0x54, 0x40, 0xbf, 0x8a, 0x10, 0xea, 0x19, -0x86, 0xc5, 0x4f, 0x0b, 0x21, 0xc8, 0xc6, 0xa7, 0xff, 0xfe, 0xb3, 0xb0, 0x40, 0x77, 0x4f, 0x0b, -0xdf, 0xb8, 0x82, 0x90, 0x62, 0x62, 0xb4, 0xc8, 0x3b, 0x4d, 0x96, 0xa1, 0x89, 0x51, 0x2e, 0x43, -0x13, 0xa3, 0xe9, 0xf7, 0xa2, 0xd4, 0x10, 0x3d, 0x77, 0x77, 0x4e, 0x02, 0x8e, 0xf7, 0x08, 0x6f, -0xb5, 0x5c, 0x42, 0xbc, 0x55, 0x0d, 0x0f, 0xd2, 0x79, 0x53, 0x06, 0x34, 0x20, 0x22, 0x4b, 0x8f, -0xe1, 0xb2, 0xe0, 0x38, 0x86, 0xbf, 0x62, 0xf4, 0xd5, 0x0f, 0xc5, 0x53, 0xac, 0x7e, 0x35, 0x10, -0x1a, 0x8a, 0x93, 0x92, 0xda, 0x23, 0x36, 0x97, 0x2a, 0xa3, 0xb4, 0x62, 0x03, 0x9b, 0x4b, 0x45, -0x84, 0x66, 0xb6, 0x81, 0x38, 0x7c, 0xae, 0xae, 0x6d, 0x10, 0x22, 0x1a, 0x8d, 0x53, 0xc1, 0x1f, -0x10, 0x53, 0x28, 0xf1, 0x31, 0x74, 0x48, 0xfb, 0x03, 0x97, 0x30, 0x5e, 0x5d, 0x1a, 0x06, 0xa7, -0xb9, 0xd1, 0x7e, 0x95, 0x29, 0x67, 0x5d, 0xdd, 0x79, 0xd7, 0x9c, 0x75, 0x6d, 0x65, 0xb3, 0xae, -0x0e, 0xc5, 0xac, 0x6b, 0x5e, 0x63, 0x16, 0x9e, 0xa9, 0xf0, 0xcc, 0x81, 0x47, 0xf5, 0xce, 0xb0, -0x3f, 0x5f, 0xca, 0x62, 0x73, 0xae, 0x7d, 0xf1, 0xb9, 0x57, 0xcd, 0x58, 0xe7, 0x5e, 0x63, 0xeb, -0x87, 0x3a, 0xd3, 0x39, 0x8e, 0x5a, 0xef, 0xe3, 0xb8, 0x64, 0xfd, 0x31, 0x8e, 0x59, 0x36, 0xf8, -0x93, 0xe7, 0xf8, 0x9e, 0x20, 0x3c, 0x33, 0x09, 0x06, 0x9f, 0x9c, 0x81, 0xc7, 0xaf, 0x62, 0xba, -0x05, 0xec, 0xf9, 0xe0, 0x86, 0x93, 0x78, 0xcc, 0x82, 0xc1, 0x8d, 0xff, 0x82, 0xc7, 0x7f, 0xc0, -0xa3, 0x1e, 0x8f, 0xe9, 0x78, 0x1c, 0xc0, 0xe3, 0x6d, 0x78, 0xbc, 0x88, 0x47, 0x1d, 0x0c, 0x7e, -0x87, 0xf2, 0x4b, 0x83, 0xc1, 0x55, 0xb9, 0xc4, 0x15, 0xbc, 0x2e, 0xc4, 0xe3, 0x38, 0x3c, 0xee, -0xc4, 0xe3, 0x78, 0x18, 0x7c, 0xf4, 0x31, 0x3c, 0x66, 0xc2, 0xe0, 0xa6, 0x2c, 0x3c, 0x4e, 0xc1, -0x63, 0x0e, 0x1e, 0xbf, 0x92, 0x28, 0xbf, 0x8f, 0x7f, 0x5f, 0x1c, 0xdc, 0x7c, 0x89, 0xd3, 0xb9, -0xa5, 0x85, 0x97, 0xff, 0x74, 0x63, 0x32, 0xae, 0xfd, 0xee, 0x7e, 0xfe, 0xfc, 0x7b, 0xb4, 0x2e, -0x6a, 0x02, 0x0c, 0x3e, 0x33, 0x85, 0xd3, 0xf3, 0x03, 0x13, 0xaf, 0xd7, 0xf7, 0xe7, 0xe2, 0x31, -0x17, 0x06, 0x9f, 0x9d, 0xc2, 0xcb, 0xf9, 0x6e, 0x07, 0x7f, 0x6f, 0xeb, 0x56, 0x4e, 0xe7, 0x0f, -0x29, 0xdf, 0x7f, 0xc2, 0x63, 0x0e, 0xa7, 0xef, 0xfb, 0x2a, 0x46, 0x5f, 0x3c, 0xff, 0x1f, 0x2e, -0x91, 0x8f, 0x29, 0xdf, 0x82, 0x43, 0xe7, 0xf1, 0xf7, 0x32, 0x0c, 0x3e, 0x22, 0xc2, 0x60, 0x7b, -0xf6, 0xdf, 0x1b, 0x4f, 0xaf, 0x5c, 0xdc, 0xd4, 0xdc, 0x36, 0x1a, 0x9e, 0x4e, 0x24, 0x60, 0x78, -0x7a, 0xf9, 0x01, 0x18, 0x7c, 0x33, 0x8c, 0x78, 0x1a, 0x39, 0xb2, 0x7c, 0x37, 0xfe, 0x7e, 0x80, -0xbf, 0xf3, 0x71, 0xe8, 0x8a, 0xd6, 0x6f, 0xb9, 0x9d, 0xd7, 0xe3, 0x91, 0x33, 0x61, 0x6a, 0x1f, -0xbc, 0x19, 0x96, 0xdb, 0x1f, 0x8f, 0x69, 0x17, 0x62, 0x49, 0x07, 0x70, 0xb0, 0xb6, 0x89, 0x6e, -0x0b, 0x4e, 0x55, 0x78, 0x5c, 0x82, 0x36, 0x4c, 0xa4, 0x05, 0xaa, 0xb5, 0x5a, 0xad, 0x06, 0x0d, -0xfe, 0xc6, 0x69, 0xd4, 0xa0, 0x56, 0x09, 0xa0, 0x56, 0xab, 0x80, 0xee, 0x21, 0x3b, 0xa8, 0x65, -0xfa, 0x01, 0x18, 0x63, 0x30, 0xe5, 0x3f, 0x47, 0x67, 0x46, 0xef, 0x88, 0x4e, 0x8a, 0x8e, 0x8f, -0xaa, 0xa3, 0x42, 0x14, 0x6f, 0xff, 0x33, 0xcc, 0x84, 0x3b, 0x50, 0xc6, 0xc6, 0x63, 0x3b, 0x61, -0xe9, 0xfd, 0x70, 0x1a, 0x2e, 0xc0, 0x65, 0xb8, 0x02, 0x57, 0xf1, 0x61, 0x34, 0x1c, 0xed, 0x8f, -0x9e, 0x8e, 0x5e, 0x88, 0x5e, 0x8e, 0x5e, 0x89, 0x5e, 0x8d, 0x46, 0xf7, 0xf3, 0xfc, 0xf0, 0x5f, -0x03, 0xfd, 0xd9, 0x9f, 0x32, 0x7b, 0x1b, 0x68, 0x5f, 0x18, 0x6c, 0x59, 0xbc, 0x68, 0x45, 0xfc, -0x44, 0xbe, 0xed, 0xef, 0x28, 0x48, 0xf0, 0x27, 0x69, 0x54, 0x90, 0xfc, 0x5a, 0xe3, 0xe2, 0xd0, -0xb2, 0x85, 0xc1, 0x61, 0x6f, 0x16, 0x04, 0x71, 0x1c, 0xb0, 0xb0, 0xbd, 0x71, 0xd9, 0xd0, 0x81, -0xc4, 0xf5, 0xbd, 0xce, 0x9e, 0xca, 0x37, 0x13, 0x44, 0x0d, 0xfb, 0x6a, 0x60, 0x51, 0x82, 0xfe, -0x15, 0x8f, 0x2e, 0x5f, 0x34, 0x7a, 0x25, 0x63, 0xb7, 0x83, 0x8b, 0x3b, 0xfc, 0xcb, 0x52, 0x19, -0xb2, 0xa8, 0xad, 0xb5, 0xad, 0x9d, 0x4a, 0xa8, 0x69, 0xfb, 0xb6, 0xaf, 0x79, 0x05, 0x1d, 0x44, -0x3a, 0x7a, 0x16, 0x07, 0x5a, 0x62, 0x47, 0x76, 0x63, 0xce, 0x23, 0xc1, 0xe6, 0xf6, 0xd8, 0x5d, -0x76, 0xf1, 0xf5, 0xf8, 0x33, 0xb1, 0x6a, 0x79, 0xa8, 0xb9, 0xbd, 0x75, 0x21, 0x0e, 0x8e, 0xc4, -0x1a, 0xfc, 0xdb, 0x04, 0x75, 0xa5, 0x35, 0x50, 0x3b, 0x77, 0x4e, 0x19, 0x94, 0xe0, 0x18, 0xa5, -0x74, 0x16, 0x88, 0xe5, 0x1e, 0x17, 0x88, 0xee, 0x47, 0x16, 0xb6, 0xd6, 0x55, 0xc4, 0x8e, 0x85, -0x7c, 0x42, 0x7c, 0x1e, 0xe3, 0xfd, 0x30, 0x6d, 0x35, 0x7c, 0xd5, 0x63, 0x75, 0x5b, 0xb4, 0x78, -0x61, 0x63, 0x62, 0x4c, 0x56, 0x59, 0x51, 0x9f, 0x32, 0x22, 0x73, 0xb5, 0x2e, 0x0e, 0x85, 0xe8, -0xd8, 0xbc, 0x70, 0x19, 0xe3, 0x11, 0xff, 0x87, 0x3a, 0x22, 0x14, 0x81, 0xc1, 0x15, 0x96, 0xc4, -0xf5, 0x8a, 0x79, 0xd8, 0x47, 0x73, 0x13, 0xd7, 0xdf, 0xd6, 0xc2, 0xe0, 0x53, 0xab, 0x12, 0xd7, -0x4f, 0x3d, 0x06, 0x83, 0x1d, 0x25, 0x23, 0xcc, 0x9d, 0xeb, 0xd0, 0x66, 0xe0, 0x18, 0x4d, 0xc8, -0x36, 0x4e, 0x13, 0xcc, 0x34, 0xde, 0x69, 0xdb, 0xa1, 0x18, 0xa3, 0x6d, 0x45, 0x0c, 0x6b, 0x26, -0x7c, 0xda, 0x7a, 0xce, 0xa6, 0x8b, 0xcd, 0x9d, 0x77, 0x98, 0x4f, 0xd0, 0x4e, 0xf1, 0x30, 0xdd, -0x5f, 0xa6, 0xb7, 0x69, 0x68, 0xee, 0x5c, 0xd0, 0xa4, 0xcc, 0x9d, 0xd7, 0x08, 0x7a, 0xc2, 0x6a, -0x6d, 0xbf, 0x16, 0xb2, 0x83, 0x1a, 0x9b, 0x53, 0xc8, 0xb5, 0xb9, 0x05, 0xf6, 0x05, 0xac, 0x6d, -0xb7, 0x20, 0xea, 0x1d, 0x30, 0x09, 0xef, 0x19, 0xd1, 0x8a, 0x9c, 0xe3, 0xf7, 0xe0, 0xbc, 0x3c, -0x96, 0xbb, 0x80, 0x56, 0xe5, 0x12, 0x1b, 0xcb, 0x5d, 0x0e, 0xea, 0xf0, 0xef, 0x15, 0x3e, 0x96, -0x13, 0x80, 0xa5, 0xfb, 0x83, 0xa0, 0x71, 0xbd, 0x22, 0x20, 0xea, 0x13, 0x74, 0xc9, 0x73, 0xe7, -0x6d, 0x1f, 0xe3, 0x58, 0x6e, 0xef, 0x30, 0x63, 0x39, 0x83, 0x72, 0x2c, 0x27, 0xd7, 0x6d, 0xb8, -0xb1, 0x1c, 0xc5, 0xc9, 0xb9, 0xa4, 0x1c, 0xcb, 0x09, 0x66, 0xc2, 0x37, 0x29, 0x63, 0x39, 0x83, -0x72, 0x2c, 0x87, 0xdc, 0xd3, 0x53, 0x04, 0xbe, 0xe1, 0xb9, 0x87, 0x28, 0x68, 0x7b, 0x8c, 0x7b, -0xcb, 0x36, 0x25, 0xbe, 0x3c, 0x74, 0x58, 0x19, 0xf7, 0x24, 0x76, 0xff, 0x35, 0xe2, 0x5e, 0xd5, -0xe7, 0x82, 0x3e, 0xf6, 0x8d, 0x62, 0x79, 0xae, 0xfc, 0x2d, 0xe2, 0x79, 0xaa, 0x1f, 0xde, 0xb5, -0x27, 0x7d, 0x8f, 0xd8, 0xc0, 0x79, 0x0a, 0x9b, 0x88, 0xa7, 0xb0, 0x05, 0x2d, 0xf1, 0x33, 0xec, -0xce, 0x5f, 0x60, 0x2b, 0xf2, 0xf4, 0x36, 0xbc, 0xf7, 0x1c, 0x8e, 0x98, 0x9f, 0xa7, 0x7b, 0x41, -0x2d, 0x6c, 0x93, 0xd7, 0x85, 0xbc, 0x84, 0x7c, 0x3e, 0x2b, 0xdf, 0x3b, 0x27, 0xf3, 0xf9, 0x3c, -0xf2, 0xf9, 0x02, 0xe3, 0xf3, 0xa5, 0xa0, 0x87, 0xb8, 0x8d, 0x28, 0xfa, 0x0a, 0xf2, 0x95, 0xed, -0xff, 0x4d, 0xe1, 0xeb, 0x89, 0x6b, 0xad, 0x03, 0x19, 0x99, 0xaf, 0x9d, 0xc4, 0xd7, 0x0b, 0x43, -0xf8, 0x7a, 0xdd, 0xeb, 0x40, 0x96, 0xcf, 0xbd, 0xd1, 0x31, 0xf2, 0xf2, 0x05, 0xd7, 0x3f, 0x46, -0x46, 0xc9, 0x4c, 0x1a, 0x23, 0x3f, 0x7c, 0x79, 0x6c, 0x63, 0xe4, 0xe5, 0xa1, 0xa1, 0x23, 0xbd, -0xe5, 0x3d, 0xc9, 0x23, 0xbd, 0x87, 0x07, 0x46, 0x1a, 0x23, 0x0b, 0xe6, 0x5b, 0x33, 0x46, 0x0e, -0x9a, 0x92, 0xc7, 0xc8, 0x82, 0x39, 0x31, 0x46, 0x16, 0x8c, 0xd7, 0x1a, 0x23, 0x3f, 0x7c, 0x62, -0xb4, 0x31, 0xf2, 0xf2, 0x0d, 0x23, 0x8f, 0x91, 0x97, 0x77, 0xa6, 0x8e, 0x91, 0x1f, 0x3e, 0x37, -0xfc, 0x18, 0x19, 0xf9, 0x99, 0x32, 0x46, 0xbe, 0x19, 0xce, 0x5d, 0xd7, 0x1a, 0x90, 0xb3, 0xd4, -0xd6, 0xa6, 0x36, 0xb0, 0x7b, 0x68, 0x95, 0xc4, 0x6f, 0x60, 0x70, 0xfb, 0x7e, 0xeb, 0x52, 0xc1, -0xca, 0x62, 0xf2, 0x0c, 0x6e, 0xda, 0xc4, 0x47, 0xb7, 0x34, 0x2f, 0x44, 0xbe, 0x30, 0x18, 0x15, -0x57, 0x78, 0xff, 0xbb, 0xe7, 0x2c, 0xad, 0xab, 0xd8, 0xfc, 0x36, 0xf2, 0xf4, 0x31, 0x23, 0x24, -0xda, 0xff, 0x6a, 0x23, 0xed, 0xd4, 0xf7, 0x46, 0x1e, 0x90, 0xe5, 0x9e, 0xda, 0x83, 0x7f, 0xf1, -0xa6, 0x31, 0x31, 0xad, 0xe5, 0xb3, 0xb6, 0x81, 0x0e, 0xdf, 0x3a, 0xc5, 0xa5, 0x33, 0x71, 0x27, -0xfa, 0xc1, 0x90, 0x3b, 0xfb, 0x63, 0x2b, 0x35, 0x69, 0x86, 0x9d, 0xd0, 0x34, 0xcd, 0xb9, 0xe2, -0xb3, 0x5c, 0xfa, 0x46, 0x2f, 0xcb, 0x77, 0x6c, 0x3d, 0xa8, 0x59, 0x48, 0xb3, 0xa9, 0x88, 0xc2, -0x60, 0x61, 0xf9, 0x97, 0xd1, 0x5d, 0xb5, 0x7d, 0xf2, 0x55, 0x65, 0xfc, 0xac, 0x39, 0x7e, 0x16, -0xa9, 0xed, 0x23, 0x9a, 0x0a, 0x22, 0xec, 0x6a, 0x73, 0xfc, 0xfe, 0xff, 0x8c, 0x9f, 0xbd, 0x16, -0x3f, 0x7b, 0x87, 0xa5, 0x15, 0xf9, 0x7a, 0xd2, 0xa0, 0xe1, 0xe0, 0x2b, 0xcc, 0x13, 0xc8, 0xae, -0x68, 0x2f, 0xad, 0x0d, 0x65, 0x33, 0xc1, 0xb4, 0xff, 0x9a, 0x51, 0x26, 0xaa, 0x68, 0x6f, 0xae, -0x36, 0x4c, 0x1e, 0x6d, 0xdc, 0x65, 0xae, 0x2c, 0xbc, 0x76, 0xea, 0x41, 0x17, 0x06, 0x95, 0x1e, -0xfc, 0x5a, 0xd6, 0x66, 0x85, 0x52, 0x06, 0x5e, 0x0b, 0x78, 0xcd, 0xbe, 0xb5, 0x3e, 0x3c, 0x9d, -0x73, 0xf3, 0x9b, 0xa1, 0xba, 0x8d, 0xec, 0xfa, 0x5b, 0xb1, 0x6b, 0x9e, 0x57, 0x58, 0xac, 0xdb, -0xe8, 0xcf, 0xc2, 0xd1, 0xda, 0x60, 0xf0, 0x53, 0x6f, 0x59, 0xa0, 0x90, 0x9d, 0x9d, 0x95, 0x2c, -0x3a, 0x7a, 0x06, 0xf2, 0x93, 0xff, 0xc4, 0x27, 0xb9, 0xec, 0xec, 0x2f, 0x92, 0x9e, 0x8e, 0x0f, -0x67, 0xe2, 0x9d, 0x34, 0x76, 0x86, 0xb4, 0x26, 0x4a, 0xd0, 0xaa, 0xe0, 0xb6, 0x00, 0x2f, 0xf7, -0x9f, 0x12, 0x77, 0xbd, 0xaa, 0x56, 0x7e, 0xcf, 0x95, 0xb8, 0xc7, 0x4b, 0xd7, 0x38, 0x75, 0x0c, -0x2e, 0xca, 0xb4, 0x57, 0x32, 0xda, 0xf1, 0xae, 0x4c, 0xfb, 0xec, 0x44, 0x7a, 0xf7, 0x1e, 0xbf, -0x81, 0x95, 0x37, 0x2d, 0x5e, 0xb2, 0x88, 0x5a, 0x94, 0x45, 0x69, 0xad, 0xf9, 0x37, 0x8d, 0xae, -0xf6, 0x6f, 0x94, 0x8e, 0x9d, 0x3d, 0xc2, 0xda, 0x4b, 0x4f, 0x3e, 0xf9, 0x0c, 0x38, 0x96, 0xf9, -0x46, 0x27, 0xf6, 0x5c, 0x8d, 0x51, 0x50, 0xb9, 0xf4, 0x80, 0xef, 0xe5, 0x59, 0x4e, 0xeb, 0x22, -0xc4, 0xaf, 0x80, 0x46, 0xef, 0x88, 0xf6, 0xbb, 0xdf, 0xf0, 0x6b, 0x42, 0x42, 0x38, 0xa2, 0x15, -0x90, 0xf2, 0xac, 0x90, 0x36, 0x1c, 0xc1, 0x94, 0x11, 0xe2, 0x4b, 0x40, 0xa3, 0xed, 0x47, 0xae, -0xcb, 0x57, 0x5e, 0xa1, 0x55, 0x07, 0xc8, 0x6b, 0x6f, 0x84, 0xdf, 0xd7, 0xb1, 0xbb, 0x7e, 0x9d, -0x16, 0x40, 0xef, 0x4f, 0x2b, 0x72, 0x80, 0x3e, 0xcc, 0xf6, 0x53, 0x6b, 0xc3, 0x7e, 0x0d, 0xa0, -0xf5, 0xa4, 0x92, 0x0d, 0x61, 0x1a, 0x4b, 0xdd, 0xdd, 0x89, 0x7a, 0x33, 0x2d, 0xa8, 0x35, 0xde, -0xc1, 0xe7, 0x09, 0x66, 0x98, 0x90, 0x3a, 0x33, 0x79, 0x3d, 0xa5, 0x55, 0x19, 0x56, 0x8b, 0x60, -0xf7, 0x2e, 0x81, 0x05, 0x81, 0x1c, 0xdb, 0x04, 0x1b, 0xc5, 0x07, 0xa2, 0xd8, 0xb9, 0xf2, 0xfe, -0x64, 0x09, 0xe0, 0x0c, 0xc5, 0x94, 0x9d, 0x36, 0x15, 0x34, 0x1d, 0xd1, 0x95, 0x10, 0x8a, 0xae, -0x02, 0xa9, 0x58, 0x74, 0x8a, 0x7a, 0x5d, 0x18, 0xd9, 0x24, 0x04, 0xf2, 0x1b, 0xd3, 0xd9, 0x19, -0xf8, 0x0d, 0x52, 0x3e, 0x3b, 0x53, 0x05, 0x32, 0xd8, 0x51, 0x4d, 0xab, 0x89, 0x8c, 0x20, 0xa5, -0x9b, 0x40, 0x4a, 0x33, 0x83, 0xa4, 0xb2, 0xd0, 0x37, 0x97, 0x0a, 0xf9, 0x9b, 0xcb, 0x6e, 0xb4, -0x00, 0xb5, 0x92, 0xd8, 0x09, 0x0e, 0x33, 0x64, 0xed, 0x5a, 0xd3, 0x98, 0xbd, 0x73, 0x4d, 0xb3, -0x9e, 0x5d, 0x65, 0xbf, 0xba, 0xa6, 0x31, 0xed, 0xb5, 0x35, 0xcd, 0xff, 0x97, 0xbd, 0x7f, 0x0f, -0x8c, 0xaa, 0xca, 0x12, 0x85, 0xf1, 0x75, 0x4e, 0x3d, 0x53, 0xa9, 0x54, 0xca, 0x18, 0x63, 0x9a, -0x4e, 0xe3, 0xa1, 0x2c, 0x62, 0x51, 0x84, 0x54, 0x19, 0x62, 0x8c, 0x31, 0x8d, 0x55, 0x95, 0x4a, -0xa8, 0x14, 0xa1, 0x26, 0x1d, 0x68, 0xcc, 0x75, 0x18, 0xe6, 0x88, 0x49, 0x15, 0x8f, 0x10, 0xaa, -0x43, 0x64, 0xd2, 0x4c, 0x7e, 0x76, 0x25, 0x20, 0x46, 0x5a, 0x85, 0x56, 0x74, 0xfc, 0x6c, 0xc7, -0xeb, 0xf5, 0xeb, 0x6b, 0x23, 0xbe, 0x18, 0x9a, 0xf1, 0xf3, 0x72, 0xb9, 0x4e, 0x44, 0xda, 0x46, -0x9b, 0xb6, 0x03, 0xd2, 0x0e, 0x6d, 0xd3, 0x8a, 0x48, 0xdb, 0x88, 0x88, 0x68, 0xa3, 0x22, 0x24, -0x55, 0xbf, 0xb5, 0xd6, 0x3e, 0xf5, 0x48, 0xc0, 0x47, 0xcf, 0xdc, 0xef, 0xfe, 0xf5, 0x11, 0x4e, -0x9d, 0x73, 0xf6, 0x73, 0xed, 0xb5, 0xd7, 0x5e, 0x8f, 0xbd, 0xf7, 0x59, 0x5b, 0x6e, 0xf3, 0x29, -0x7e, 0x87, 0x3d, 0x7a, 0xd8, 0xeb, 0x6b, 0x1b, 0x52, 0xcc, 0x23, 0x43, 0x23, 0xe4, 0x7b, 0x22, -0xb3, 0xce, 0x32, 0x36, 0x1f, 0x39, 0x51, 0x90, 0x4a, 0x09, 0xf8, 0xd5, 0x8a, 0x4c, 0x39, 0x0a, -0x96, 0x53, 0x96, 0x29, 0xa7, 0x08, 0xcb, 0xb1, 0x55, 0xf9, 0x5f, 0x7f, 0xe5, 0xf5, 0x57, 0xae, -0xdc, 0x02, 0x36, 0x33, 0xb4, 0xf9, 0x95, 0xd6, 0xf0, 0xa6, 0xe8, 0x08, 0x79, 0x0c, 0xdb, 0xbf, -0xb7, 0x27, 0x35, 0x65, 0xc0, 0x8c, 0x12, 0xab, 0xa3, 0x9f, 0x2c, 0xe9, 0x9c, 0x31, 0x58, 0x4c, -0x78, 0x61, 0x9c, 0x58, 0xc4, 0xd9, 0xbb, 0x38, 0x0a, 0xf7, 0x3b, 0x96, 0xe6, 0x9e, 0x9e, 0x9b, -0x1e, 0x99, 0x34, 0x62, 0x69, 0x34, 0x2b, 0xda, 0x59, 0xbe, 0x78, 0x8f, 0xc4, 0x53, 0xdb, 0x06, -0xa2, 0x16, 0xd5, 0xbe, 0x7d, 0x0b, 0x4b, 0x2b, 0xc4, 0x56, 0xf4, 0x8c, 0x2a, 0x2b, 0xbe, 0xf0, -0xa6, 0x18, 0xd9, 0xc6, 0x36, 0xb4, 0x93, 0xcd, 0xce, 0x2d, 0x50, 0x86, 0x25, 0x5a, 0x1d, 0x5b, -0x80, 0xce, 0xad, 0x4c, 0xf1, 0x4e, 0x6e, 0x0b, 0xef, 0x03, 0x5e, 0xc9, 0x27, 0x64, 0x8b, 0xfa, -0x8b, 0xb9, 0x4f, 0xec, 0xe3, 0xfa, 0xc4, 0x2d, 0x70, 0x87, 0xd4, 0x65, 0xdb, 0xfe, 0x04, 0xe8, -0xa3, 0xc5, 0x13, 0xcb, 0x8b, 0x4b, 0xaa, 0x91, 0x6b, 0x3d, 0xec, 0x64, 0xbf, 0x40, 0xc9, 0x7a, -0x3a, 0xa9, 0x9a, 0xfc, 0x02, 0x91, 0xc7, 0xa4, 0xe9, 0xcb, 0x25, 0x57, 0x72, 0x7e, 0x78, 0xba, -0x54, 0x14, 0x85, 0x42, 0x7b, 0xc3, 0x07, 0x10, 0x99, 0xde, 0x9c, 0x6c, 0xf7, 0xe4, 0x89, 0xdd, -0xe0, 0x34, 0x6b, 0x92, 0xff, 0xbc, 0xa3, 0x1e, 0x87, 0x44, 0x0e, 0xae, 0xa7, 0xfb, 0x92, 0x0b, -0x9d, 0x3e, 0x8a, 0xd3, 0x1d, 0xbf, 0x48, 0x9c, 0xea, 0xf2, 0x4d, 0x27, 0x9d, 0xa4, 0x34, 0xd9, -0xda, 0xbe, 0x31, 0x10, 0x50, 0x51, 0x05, 0xe5, 0x77, 0x47, 0xb2, 0x43, 0x05, 0xe9, 0x3d, 0x6b, -0xa3, 0x01, 0xa2, 0xa5, 0xe1, 0x27, 0x25, 0x4b, 0x0c, 0xa4, 0x43, 0xec, 0xcd, 0x4d, 0x89, 0xcb, -0xe1, 0xe5, 0x92, 0x35, 0x56, 0xae, 0x2a, 0xd6, 0x46, 0x39, 0x11, 0xb5, 0x0b, 0x1f, 0x6f, 0x71, -0x89, 0x43, 0x8b, 0x55, 0x4b, 0x3f, 0x04, 0x7c, 0xfc, 0x6c, 0xbd, 0xcd, 0xac, 0x5a, 0x6e, 0x93, -0x55, 0xe3, 0x6d, 0x7a, 0x55, 0xbe, 0xcd, 0x60, 0x6d, 0x90, 0x36, 0xae, 0xb4, 0xf6, 0xe8, 0xef, -0x1a, 0xc0, 0xa7, 0x4d, 0x48, 0x63, 0x46, 0x6b, 0x03, 0xec, 0x8d, 0x9a, 0x61, 0x3d, 0x71, 0x1c, -0xd5, 0x88, 0x77, 0x1c, 0x59, 0x55, 0x10, 0x7a, 0x91, 0x7c, 0xc1, 0x49, 0xa5, 0x47, 0x7f, 0x36, -0x3d, 0x98, 0xec, 0xea, 0x03, 0x1a, 0xeb, 0x90, 0x42, 0x58, 0xe3, 0x8a, 0x11, 0x7c, 0x66, 0xc0, -0xa7, 0x5e, 0x87, 0x91, 0xc6, 0x4b, 0x42, 0x99, 0xee, 0x4f, 0x2e, 0x89, 0xff, 0xa8, 0x09, 0x12, -0xeb, 0x31, 0xb4, 0xcf, 0xab, 0xb7, 0x06, 0x41, 0x8a, 0x96, 0x50, 0xed, 0x51, 0x73, 0xf8, 0xe9, -0xe4, 0x92, 0x28, 0x96, 0x33, 0x7d, 0x45, 0xb2, 0x2f, 0x19, 0x52, 0xbd, 0x18, 0x27, 0xc7, 0x2c, -0xd7, 0xcf, 0x4e, 0xce, 0x9a, 0xde, 0x84, 0xef, 0xe5, 0x55, 0xd3, 0xb3, 0xa9, 0xe0, 0x13, 0x4c, -0xd5, 0x9b, 0x0c, 0x85, 0xfd, 0x31, 0xf3, 0xf5, 0x38, 0xe6, 0x93, 0xb3, 0x54, 0x23, 0xde, 0x8d, -0xc9, 0x59, 0xdc, 0x12, 0x23, 0x42, 0xd2, 0xa2, 0x16, 0x87, 0x7d, 0x51, 0x33, 0xa6, 0x8b, 0xe3, -0xb3, 0xd9, 0xa1, 0x9f, 0x3f, 0x80, 0xb5, 0xb7, 0xc4, 0x1d, 0x13, 0x57, 0x11, 0x1d, 0xbe, 0x99, -0x8d, 0x50, 0x34, 0xb3, 0x01, 0x8a, 0x67, 0xae, 0x48, 0xce, 0x82, 0x12, 0xfb, 0x8c, 0xe4, 0xdf, -0x5c, 0xea, 0x03, 0xe5, 0xca, 0x15, 0xc9, 0x10, 0xd8, 0x94, 0x15, 0xc9, 0xf6, 0xec, 0xae, 0x2c, -0x6f, 0x80, 0xa8, 0xd9, 0xff, 0xe9, 0x10, 0x4c, 0x09, 0x27, 0xfb, 0xa7, 0x60, 0x8a, 0x94, 0xb5, -0x2d, 0xe0, 0x98, 0x0e, 0x75, 0xad, 0x03, 0xce, 0x01, 0x6f, 0xe3, 0xd4, 0x10, 0xe8, 0xe3, 0xd6, -0x91, 0x27, 0xa1, 0x6e, 0xaa, 0x0f, 0xcc, 0xde, 0x06, 0x7c, 0xb7, 0xc6, 0x2f, 0xd3, 0xde, 0xed, -0x8c, 0x51, 0x7d, 0x5c, 0x4f, 0xfa, 0x14, 0xbe, 0x17, 0x53, 0xbe, 0x45, 0x03, 0x53, 0xfd, 0x50, -0xea, 0x99, 0x91, 0xec, 0xca, 0xf1, 0x98, 0x74, 0xac, 0x75, 0x23, 0xc6, 0x97, 0x05, 0xb6, 0x82, -0x82, 0x97, 0xb3, 0xf1, 0x04, 0xb8, 0xda, 0xd6, 0xc5, 0x75, 0xdb, 0xd6, 0x45, 0x21, 0xb9, 0x0f, -0x21, 0xea, 0x98, 0xff, 0x74, 0xb2, 0xa3, 0xae, 0x14, 0xdf, 0xec, 0x8e, 0x15, 0xc9, 0x56, 0x7c, -0x6b, 0xad, 0xf9, 0x56, 0x14, 0xc6, 0x3e, 0xe3, 0xd6, 0x83, 0x6e, 0xfe, 0xf4, 0x70, 0xea, 0xb0, -0x32, 0x1d, 0x66, 0xb5, 0x25, 0x9c, 0x89, 0x1e, 0x33, 0xd6, 0xa0, 0x77, 0xe1, 0xdb, 0xfc, 0x75, -0x53, 0x83, 0x60, 0x8e, 0xdb, 0xb1, 0x6c, 0xf2, 0x88, 0x31, 0x6b, 0x01, 0xd5, 0x6d, 0xef, 0x2b, -0xc5, 0xd0, 0x62, 0x4a, 0xdd, 0x9e, 0xc0, 0x98, 0x52, 0xac, 0xb1, 0x8c, 0x62, 0x6f, 0xa2, 0x58, -0x65, 0x6a, 0x3f, 0x1b, 0xe1, 0x4e, 0xca, 0xbf, 0x90, 0xf2, 0xbb, 0x30, 0x84, 0x82, 0x2a, 0x28, -0xc7, 0x22, 0xca, 0xe1, 0xa5, 0x10, 0x0c, 0xaa, 0xa6, 0x5c, 0xad, 0x94, 0xab, 0x16, 0xcb, 0xa8, -0xef, 0x2b, 0x38, 0xf4, 0x24, 0xcc, 0xc2, 0x1c, 0x3e, 0x2d, 0x3e, 0x18, 0xb7, 0x8d, 0x50, 0x88, -0x0f, 0x42, 0x18, 0xdf, 0x32, 0x75, 0x39, 0xcc, 0x82, 0xd6, 0x1e, 0x19, 0xd3, 0xcf, 0xef, 0xcb, -0xd3, 0xd2, 0xb6, 0xc7, 0xcd, 0x18, 0xbf, 0x10, 0xf9, 0x4f, 0xfe, 0x01, 0x0a, 0xf1, 0x83, 0xda, -0x27, 0x61, 0x78, 0x07, 0x6a, 0xdb, 0x16, 0x2d, 0xf7, 0x12, 0x6e, 0x51, 0x57, 0x69, 0x3d, 0x58, -0xb5, 0x5c, 0xf1, 0x78, 0x09, 0xed, 0xc6, 0x25, 0x9f, 0x55, 0x5a, 0xae, 0xbe, 0x3e, 0x19, 0xc3, -0xfb, 0xb1, 0x9e, 0x04, 0x5e, 0xeb, 0xfc, 0x27, 0x60, 0x88, 0x4e, 0xa8, 0x17, 0x38, 0xc1, 0xb4, -0x43, 0x5c, 0xc6, 0x5d, 0x19, 0xac, 0x6c, 0x62, 0xac, 0x6c, 0xce, 0x60, 0xe5, 0x41, 0xc6, 0xca, -0xc3, 0x19, 0xac, 0x3c, 0x8a, 0xa5, 0xfc, 0x2c, 0x83, 0x95, 0x2d, 0x1a, 0x56, 0x9e, 0xca, 0x60, -0x65, 0x9b, 0x86, 0x95, 0x1d, 0x19, 0xac, 0x3c, 0xaf, 0xb5, 0x7a, 0x57, 0x06, 0x2b, 0xc3, 0x58, -0xc6, 0x9e, 0x0c, 0x56, 0xf6, 0x6a, 0xf1, 0xfb, 0x32, 0x58, 0x19, 0xc1, 0xf8, 0x83, 0x8c, 0x95, -0x43, 0x8c, 0x95, 0xc3, 0x19, 0xac, 0x1c, 0x89, 0x1b, 0x31, 0xfe, 0x58, 0x0e, 0x56, 0x8e, 0x33, -0x56, 0x4e, 0xe6, 0x60, 0xe5, 0x74, 0x8f, 0x11, 0xc3, 0xcf, 0xe4, 0x60, 0xe5, 0x2c, 0x63, 0x65, -0x34, 0x8b, 0x15, 0x09, 0x08, 0x2b, 0x68, 0xe5, 0x6d, 0x45, 0x2b, 0x6f, 0xab, 0x64, 0x0d, 0x3c, -0x9d, 0x3a, 0xe6, 0x3f, 0x21, 0xd9, 0xa7, 0x87, 0x92, 0x21, 0x2c, 0xe9, 0x12, 0x41, 0xa7, 0x92, -0xbd, 0x27, 0x8e, 0x69, 0x8b, 0xb1, 0xa4, 0x4b, 0x0f, 0x51, 0x48, 0x50, 0x2a, 0xc5, 0xf7, 0x32, -0xf6, 0x3c, 0x43, 0xf1, 0x44, 0x13, 0xe0, 0x03, 0xc9, 0x89, 0x25, 0x17, 0x1f, 0xa0, 0x30, 0xbf, -0xe4, 0xd2, 0xc2, 0x2a, 0x1a, 0x4f, 0x48, 0xde, 0xd5, 0x10, 0x68, 0x6c, 0xf8, 0x30, 0x75, 0xd8, -0xff, 0x61, 0xca, 0x5a, 0x89, 0xd2, 0xbb, 0xaf, 0x85, 0xbc, 0x92, 0x28, 0x57, 0xd7, 0x42, 0xcc, -0x86, 0x18, 0x0b, 0xcc, 0x5f, 0xe7, 0x5c, 0x47, 0x1e, 0xc0, 0x5a, 0x37, 0xf4, 0x41, 0xa0, 0x49, -0xed, 0x51, 0xbc, 0x21, 0x70, 0x80, 0x90, 0xa8, 0xe1, 0xc6, 0xa8, 0x31, 0x3c, 0x10, 0xb3, 0xa9, -0xed, 0x73, 0xc9, 0xf6, 0x71, 0x6f, 0x7f, 0xae, 0x16, 0xa2, 0x2d, 0x1e, 0xab, 0x07, 0x10, 0xca, -0x20, 0xf2, 0x4f, 0x5f, 0xc5, 0xec, 0xc8, 0x03, 0x71, 0x3b, 0xc1, 0xe2, 0x4c, 0x4c, 0x6d, 0x41, -0xfd, 0x89, 0xd7, 0xe9, 0xae, 0xdb, 0xd3, 0x7c, 0xc6, 0x2c, 0x21, 0xae, 0x03, 0xdc, 0x7f, 0xe6, -0xb9, 0x1f, 0x26, 0xfb, 0xa7, 0xae, 0x0e, 0x01, 0x58, 0x71, 0xf4, 0xd8, 0x89, 0x9b, 0xe3, 0x48, -0xf1, 0xe1, 0xd8, 0x09, 0xb6, 0x35, 0xb5, 0xaf, 0xdb, 0xd1, 0xd4, 0xbd, 0xa1, 0xad, 0xb1, 0x7d, -0x6d, 0x3c, 0x25, 0x6a, 0xd9, 0x46, 0xb5, 0x40, 0x6a, 0x51, 0xe0, 0xde, 0x00, 0x9d, 0x0c, 0x88, -0xa5, 0xb4, 0x27, 0xa6, 0xfb, 0x52, 0xbb, 0xa6, 0xd3, 0x08, 0x1f, 0x56, 0xc1, 0x78, 0x2c, 0x33, -0x9a, 0x8a, 0x27, 0x8c, 0xa6, 0xd2, 0x09, 0xa3, 0xa9, 0xec, 0x6b, 0x46, 0x13, 0x14, 0x5e, 0x30, -0x9a, 0xe0, 0x74, 0xee, 0x68, 0xea, 0x29, 0xc4, 0x94, 0xd5, 0x94, 0xa2, 0x95, 0x52, 0xf0, 0x58, -0x8a, 0x17, 0x68, 0xbd, 0xec, 0x43, 0x9c, 0x5f, 0x81, 0xf1, 0xc1, 0x3e, 0x9b, 0xd6, 0xcb, 0x39, -0x63, 0x29, 0x2e, 0x63, 0x8a, 0xf9, 0x98, 0x22, 0x4f, 0xa3, 0x92, 0xf6, 0x3e, 0x03, 0xa6, 0x58, -0x48, 0xd6, 0xab, 0x96, 0x5f, 0xed, 0x91, 0x30, 0xbc, 0x03, 0xfb, 0xd6, 0xa2, 0xe5, 0x5f, 0x12, -0x37, 0x60, 0x78, 0x17, 0xe6, 0xb2, 0x6a, 0xb9, 0xe2, 0x7d, 0x25, 0x18, 0xde, 0x4b, 0xf3, 0x08, -0x5a, 0xae, 0x3e, 0xa6, 0xc7, 0xcc, 0x68, 0xaa, 0xb0, 0x18, 0xd7, 0xd3, 0xca, 0x3a, 0xc1, 0xd8, -0x46, 0x30, 0x0e, 0xc5, 0x8b, 0x31, 0xd5, 0x5d, 0xd4, 0xce, 0xf9, 0xd4, 0xce, 0x4d, 0x3c, 0x7a, -0x36, 0x53, 0x9b, 0x16, 0x50, 0x9b, 0x1e, 0xec, 0x29, 0xc3, 0xd0, 0x87, 0x29, 0x7d, 0x3b, 0xa5, -0xe7, 0xd1, 0x44, 0xb1, 0x37, 0x51, 0xec, 0x16, 0x0d, 0x2b, 0x4f, 0x51, 0xfe, 0x85, 0x94, 0x7f, -0x9b, 0x86, 0x95, 0x1d, 0x94, 0x63, 0x11, 0xe5, 0x78, 0x3e, 0x5e, 0x88, 0x29, 0xbf, 0x74, 0x2c, -0xd9, 0x09, 0x2b, 0x3e, 0xd8, 0xd7, 0x63, 0xd3, 0xda, 0x90, 0x33, 0x96, 0x98, 0x13, 0x1c, 0xc6, -0x14, 0x79, 0x5a, 0x6b, 0x8e, 0xf4, 0xe8, 0x31, 0xc5, 0x31, 0xc4, 0x41, 0xbe, 0x96, 0xff, 0x78, -0x5c, 0xc2, 0xf0, 0x93, 0x88, 0x03, 0x8b, 0x96, 0xff, 0x74, 0x9f, 0x1e, 0xc3, 0xcf, 0x60, 0x2e, -0xab, 0x96, 0xeb, 0x6c, 0x4f, 0x09, 0x86, 0x8f, 0x62, 0xae, 0x42, 0x91, 0x4b, 0x02, 0xc2, 0x77, -0x76, 0x34, 0xb9, 0x2d, 0xc6, 0xdb, 0x51, 0x0e, 0xda, 0x09, 0xc6, 0x36, 0x84, 0x51, 0xb2, 0xf7, -0x15, 0x63, 0x2a, 0xa6, 0x85, 0xf9, 0xd8, 0x4e, 0xa9, 0xb4, 0x87, 0xc7, 0x11, 0xb5, 0x69, 0x01, -0xb6, 0x49, 0x52, 0xe2, 0x65, 0x18, 0xea, 0xa4, 0xf4, 0xed, 0x94, 0xde, 0x85, 0xa5, 0x54, 0x50, -0xec, 0x4d, 0x14, 0xeb, 0x15, 0x58, 0x91, 0xaa, 0x29, 0xff, 0x42, 0xca, 0x5f, 0x2b, 0xb0, 0x22, -0xd5, 0x53, 0x0e, 0x92, 0x1b, 0x92, 0xaf, 0xaf, 0x10, 0x53, 0x92, 0x27, 0xa2, 0x59, 0xad, 0x94, -0x02, 0x69, 0x41, 0x6a, 0xe9, 0x29, 0xd0, 0x46, 0x7b, 0x6b, 0x29, 0x61, 0x25, 0x28, 0xcd, 0x4f, -0x73, 0x18, 0xa9, 0x1d, 0xe3, 0x17, 0x12, 0x56, 0x24, 0x95, 0x7a, 0x54, 0x22, 0x3a, 0xd0, 0x78, -0x8c, 0xb4, 0x04, 0xdf, 0xbb, 0xe2, 0x1a, 0x9d, 0x48, 0x71, 0xd2, 0x00, 0x31, 0xa4, 0xb7, 0x4f, -0xa3, 0x13, 0xa9, 0x8f, 0x5b, 0xdb, 0x9f, 0xa5, 0x13, 0x29, 0x41, 0x74, 0x22, 0xad, 0xcb, 0xd2, -0x89, 0x34, 0xc4, 0xa5, 0xde, 0x85, 0xb5, 0x6c, 0xc2, 0x6b, 0xf3, 0xdc, 0x13, 0xd2, 0x83, 0x69, -0x1a, 0x91, 0x1e, 0x24, 0x1a, 0x91, 0x1e, 0x4e, 0xd3, 0x88, 0xf4, 0x28, 0xd1, 0x88, 0xf4, 0xb3, -0x34, 0x8d, 0x48, 0x5b, 0x88, 0x46, 0xa4, 0xa7, 0xd2, 0x34, 0x22, 0x6d, 0xc3, 0x12, 0x76, 0xa4, -0x69, 0x44, 0x7a, 0x5e, 0xc3, 0xc6, 0xae, 0x34, 0x8d, 0x48, 0xc3, 0x1a, 0x36, 0xf6, 0xa4, 0x69, -0x44, 0xda, 0x4b, 0x34, 0x22, 0xed, 0x4b, 0xd3, 0x88, 0x84, 0x34, 0x20, 0x1d, 0x4c, 0xd3, 0x88, -0x74, 0x48, 0xd0, 0x88, 0x74, 0x38, 0x4d, 0x23, 0xd2, 0x11, 0x8c, 0x3f, 0xc6, 0xd8, 0x38, 0xce, -0x7c, 0xf1, 0x64, 0x96, 0x46, 0x24, 0xe6, 0xa6, 0xd2, 0x99, 0x2c, 0x8d, 0x48, 0x67, 0x89, 0x46, -0xa4, 0xd1, 0x2c, 0x8d, 0xc8, 0xd0, 0x67, 0x9c, 0x1a, 0x94, 0xf5, 0x59, 0x1a, 0x91, 0xcd, 0x44, -0x23, 0xb2, 0x35, 0x4b, 0x23, 0xb2, 0x9d, 0xb0, 0x26, 0x17, 0x07, 0xb6, 0xca, 0xc8, 0x09, 0xe4, -0xb2, 0x86, 0x13, 0xb2, 0x42, 0x7e, 0xdd, 0x04, 0xd7, 0x94, 0x95, 0xbe, 0x38, 0xa6, 0x71, 0x62, -0x09, 0x97, 0x0a, 0xde, 0x2a, 0xbb, 0xf0, 0xbd, 0xa2, 0xa7, 0x48, 0x8b, 0xf7, 0xb2, 0x1e, 0x78, -0x1a, 0xa5, 0xba, 0x39, 0xa6, 0xf7, 0xd6, 0xfb, 0x50, 0x6b, 0x90, 0xab, 0xfb, 0x8a, 0x05, 0x57, -0x96, 0x6b, 0x2f, 0x12, 0x4b, 0x6b, 0xce, 0x01, 0xa2, 0x36, 0xd9, 0x37, 0x35, 0x2c, 0x07, 0x1b, -0x4f, 0xc8, 0x21, 0xe4, 0xc6, 0x41, 0x8d, 0x13, 0x23, 0x97, 0x44, 0x0e, 0x1a, 0x52, 0xe7, 0x2b, -0xde, 0x5a, 0x8d, 0xe3, 0x0e, 0x3d, 0x1a, 0x0d, 0xa4, 0xb9, 0x6b, 0x64, 0xe7, 0xc7, 0x89, 0x1e, -0x3b, 0xd5, 0xed, 0x1c, 0x10, 0x9c, 0x95, 0xfc, 0xab, 0x11, 0x5f, 0xa5, 0x52, 0x79, 0x24, 0x9b, -0x1b, 0x88, 0xaf, 0xfe, 0xa0, 0x36, 0x87, 0xaf, 0x32, 0x4f, 0x0d, 0xb6, 0xaf, 0xdd, 0x11, 0xec, -0xde, 0x22, 0x6a, 0x47, 0xbe, 0xdc, 0x44, 0xdc, 0x3d, 0xa7, 0x66, 0x94, 0x01, 0x15, 0x5c, 0xbf, -0xda, 0x91, 0xad, 0x1b, 0xed, 0xa7, 0x36, 0xf1, 0x94, 0x50, 0xac, 0x03, 0x6c, 0x83, 0x66, 0x60, -0xa1, 0x9a, 0xc7, 0x73, 0x79, 0x47, 0xd3, 0x5f, 0x05, 0xcb, 0x83, 0xc8, 0xef, 0x43, 0x19, 0x78, -0x1a, 0x09, 0x1e, 0xc4, 0x94, 0x25, 0xda, 0x85, 0xb2, 0x68, 0x48, 0x69, 0x50, 0xbc, 0x7d, 0x5f, -0x06, 0x85, 0xa2, 0x41, 0x81, 0xb2, 0x46, 0x69, 0x8a, 0x6c, 0x1a, 0x0f, 0x85, 0xd2, 0x18, 0xd9, -0x34, 0x1e, 0x0a, 0x3f, 0x41, 0x11, 0xaf, 0x9d, 0x20, 0x69, 0x08, 0x0a, 0xb5, 0x94, 0x30, 0x50, -0x59, 0x60, 0xbc, 0x23, 0x95, 0x4a, 0x59, 0x2b, 0x18, 0x0b, 0x6e, 0xc6, 0x02, 0xc2, 0x07, 0xa9, -0xfe, 0x0c, 0x74, 0x91, 0x34, 0xb6, 0x2a, 0x0a, 0x8c, 0xeb, 0x29, 0xad, 0x9b, 0xd3, 0xce, 0x25, -0x3b, 0x77, 0x4f, 0x65, 0x9e, 0xda, 0x42, 0xf0, 0x2e, 0xc9, 0xc0, 0x1b, 0xab, 0x25, 0xf8, 0x1c, -0x8d, 0x13, 0x31, 0x14, 0x79, 0x60, 0xbc, 0x0c, 0xbc, 0x10, 0x32, 0x0d, 0x37, 0xdb, 0x2e, 0x90, -0x73, 0xb3, 0x53, 0xc3, 0x3d, 0xf2, 0x74, 0x7f, 0x6a, 0x0f, 0xda, 0x2e, 0xf6, 0xe9, 0x4b, 0x40, -0x9f, 0xda, 0xeb, 0xa0, 0xa7, 0xef, 0xa5, 0x8e, 0xcf, 0xfd, 0x10, 0xe3, 0x23, 0xa9, 0x93, 0xa1, -0x15, 0xa9, 0xe3, 0xec, 0x81, 0x76, 0x06, 0x5a, 0x4e, 0x68, 0xe1, 0x28, 0x4b, 0xd9, 0x0f, 0x6d, -0x66, 0x85, 0x5a, 0xb6, 0xbb, 0x7c, 0x15, 0x18, 0xfe, 0xfb, 0x53, 0x50, 0xe4, 0x9c, 0x2e, 0x55, -0xaf, 0x79, 0xf8, 0xcd, 0xbb, 0x69, 0x17, 0x52, 0xe0, 0xe7, 0x1e, 0x83, 0x36, 0xc7, 0x6a, 0x15, -0x96, 0xcf, 0xe5, 0xfd, 0x20, 0x49, 0x45, 0x3c, 0x1b, 0xb4, 0x50, 0x91, 0x19, 0x82, 0x7d, 0xa8, -0x8b, 0x8c, 0xd0, 0xee, 0x88, 0xfe, 0x7d, 0x87, 0xef, 0xf6, 0x18, 0xb3, 0xfb, 0x23, 0x68, 0x57, -0x91, 0xcb, 0x87, 0x58, 0x94, 0x17, 0xdd, 0x81, 0x90, 0x9c, 0x56, 0x83, 0x08, 0xeb, 0x3e, 0xcc, -0x31, 0x82, 0x30, 0x1d, 0x44, 0xea, 0x3a, 0x83, 0x7a, 0xdd, 0x21, 0xca, 0x99, 0xcd, 0xd5, 0xba, -0x31, 0xec, 0x8b, 0x95, 0x29, 0x2b, 0x52, 0x67, 0x1c, 0x8d, 0x74, 0xa2, 0xa9, 0x57, 0xaf, 0x1a, -0xdb, 0x06, 0xfe, 0xe5, 0xf7, 0x31, 0xf3, 0xb6, 0x81, 0xee, 0xcf, 0xd0, 0x4e, 0xba, 0x57, 0x29, -0xeb, 0x49, 0x6d, 0x4f, 0x44, 0x77, 0xb0, 0xf7, 0x58, 0xbd, 0xb0, 0x7e, 0xc8, 0x83, 0xe4, 0xf4, -0xa7, 0x53, 0x0f, 0x9b, 0x1f, 0x56, 0x8b, 0x1c, 0x30, 0x6f, 0x80, 0x76, 0x17, 0x70, 0xd8, 0xbf, -0x96, 0x62, 0x58, 0x5b, 0x10, 0xed, 0x11, 0xd3, 0x2d, 0x23, 0xae, 0xe5, 0x10, 0x21, 0x58, 0xfa, -0xcf, 0x1c, 0xbe, 0x7b, 0xcd, 0xbe, 0x37, 0xef, 0xee, 0x3b, 0x7d, 0xe8, 0xee, 0xb9, 0xe7, 0x3e, -0xdc, 0x3a, 0x3d, 0x80, 0xe3, 0x0a, 0xe0, 0x8d, 0xf0, 0x53, 0x80, 0x7a, 0x39, 0x50, 0x7b, 0xce, -0x38, 0x1a, 0x30, 0x64, 0x73, 0x06, 0xde, 0x26, 0x86, 0x77, 0x34, 0x03, 0xaf, 0x41, 0xc0, 0x4b, -0x74, 0x46, 0x30, 0x13, 0xd5, 0x20, 0xdc, 0x8b, 0xd1, 0x16, 0x98, 0xef, 0xa1, 0xbe, 0xa9, 0x6b, -0x4d, 0x78, 0xc0, 0x33, 0x23, 0x75, 0x26, 0xf2, 0x00, 0x85, 0x91, 0x7f, 0xb3, 0x1e, 0xe2, 0xbd, -0x75, 0x1e, 0x49, 0x84, 0x22, 0xec, 0x15, 0x40, 0xbe, 0xd1, 0x14, 0xca, 0xbb, 0xed, 0xe9, 0xd4, -0xe9, 0xa8, 0x93, 0xc3, 0x8a, 0xf1, 0xf9, 0x6c, 0xb4, 0x54, 0x41, 0x58, 0x1d, 0x98, 0x52, 0x35, -0xa3, 0x7d, 0x5c, 0x96, 0xb1, 0x8f, 0xad, 0xce, 0x3c, 0xe5, 0x5b, 0xdc, 0x7e, 0x48, 0x75, 0xc4, -0x53, 0x4a, 0x60, 0xdb, 0xa6, 0xa8, 0x9e, 0xe0, 0x9d, 0x86, 0x18, 0x83, 0xb2, 0x38, 0xd8, 0x2b, -0x40, 0xa1, 0x96, 0x4f, 0xbb, 0xd5, 0xfc, 0x30, 0x62, 0x7f, 0x7e, 0x78, 0x33, 0xa6, 0x74, 0x39, -0x67, 0x24, 0x43, 0x37, 0x0d, 0x4e, 0x0f, 0x60, 0x6b, 0x1a, 0x44, 0x5f, 0x21, 0x44, 0xfb, 0xd2, -0x38, 0x0f, 0x2c, 0xc7, 0xbe, 0xc4, 0xfa, 0x5a, 0x37, 0x2a, 0xad, 0x7c, 0x7a, 0xf3, 0x59, 0x84, -0x49, 0xcd, 0x5a, 0xf1, 0xf8, 0xb6, 0x30, 0xfb, 0xa6, 0xca, 0x3c, 0x73, 0xf8, 0xe1, 0xc2, 0xd1, -0x64, 0x31, 0xed, 0xa9, 0x60, 0x3c, 0x0f, 0x11, 0x96, 0x55, 0x48, 0x76, 0xa0, 0x6d, 0x4e, 0xb3, -0x39, 0x0e, 0xf1, 0x25, 0x30, 0x79, 0xda, 0x2d, 0xa7, 0xdd, 0x16, 0x2b, 0x51, 0x2b, 0x5a, 0x0e, -0x25, 0x28, 0xa3, 0x9e, 0x02, 0x77, 0x4f, 0x8a, 0x3c, 0xa1, 0x57, 0x74, 0x49, 0x5e, 0x9a, 0xeb, -0xa3, 0xd6, 0xc4, 0xbc, 0x68, 0x79, 0x61, 0x0c, 0x7d, 0x13, 0x8c, 0x90, 0x94, 0x78, 0x96, 0x40, -0x39, 0x14, 0xf7, 0x90, 0xdf, 0xe7, 0x52, 0x0f, 0x7d, 0x7b, 0x56, 0xe6, 0x69, 0x03, 0xc5, 0xff, -0x11, 0xda, 0xf8, 0x21, 0xb4, 0xa9, 0x10, 0x6b, 0x1e, 0x0b, 0xef, 0xb5, 0xd0, 0xbe, 0xe9, 0x62, -0x2f, 0x71, 0x6f, 0x2f, 0x04, 0xed, 0x4b, 0x61, 0x8b, 0x47, 0x76, 0xd0, 0x1c, 0x85, 0x87, 0x67, -0x1d, 0xc8, 0xf2, 0x17, 0xab, 0xed, 0x5b, 0x21, 0xd0, 0x6b, 0xdb, 0x91, 0xe8, 0x6c, 0x2b, 0x46, -0xd9, 0x80, 0xf7, 0x70, 0x8e, 0x7f, 0xce, 0x0a, 0x54, 0x81, 0xd3, 0x7f, 0x0e, 0xfc, 0x2b, 0xe5, -0xa7, 0xea, 0xcc, 0x2a, 0x3b, 0x3f, 0xf5, 0x4a, 0xca, 0xa0, 0x58, 0x83, 0x0f, 0x6c, 0x52, 0x1d, -0xbc, 0x16, 0xbf, 0x0b, 0xc6, 0x7e, 0xd0, 0xce, 0x6b, 0xf0, 0xc5, 0x08, 0xad, 0xdd, 0xd3, 0x8c, -0xf5, 0xe2, 0xe8, 0xe2, 0x59, 0xc2, 0xfd, 0x62, 0xae, 0x90, 0x66, 0x93, 0xd8, 0x47, 0xa3, 0xe2, -0x5a, 0x09, 0x2e, 0xe7, 0x72, 0xfa, 0xc6, 0x47, 0xf2, 0xce, 0xf9, 0x08, 0xca, 0x68, 0x27, 0xae, -0x5a, 0xa1, 0xd8, 0x09, 0xb2, 0x1e, 0xdb, 0xf6, 0x44, 0x27, 0x49, 0x18, 0xeb, 0x76, 0xf1, 0xad, -0x59, 0x41, 0xf6, 0x5b, 0x33, 0xa9, 0x4c, 0x7c, 0x6b, 0x26, 0x29, 0xe3, 0xbf, 0x35, 0xe3, 0x1d, -0xb8, 0xae, 0xf1, 0x58, 0xe8, 0xd7, 0x67, 0x4f, 0xd4, 0x53, 0x68, 0x0e, 0xcb, 0xc9, 0xf3, 0x57, -0xcb, 0x24, 0x97, 0x42, 0xdf, 0x64, 0x63, 0x29, 0xbc, 0xc6, 0xa0, 0x3a, 0x11, 0x23, 0xb1, 0x9b, -0x14, 0x37, 0xb8, 0x1d, 0xb0, 0x60, 0x80, 0x60, 0xef, 0xa1, 0x93, 0xb0, 0x8b, 0x03, 0xcf, 0x42, -0x29, 0x7d, 0x09, 0x37, 0xbd, 0x9e, 0xd6, 0x79, 0x3d, 0x36, 0x4f, 0x81, 0xe2, 0x0b, 0x2d, 0x81, -0x7c, 0x8f, 0x1c, 0xd9, 0x79, 0xe2, 0xb6, 0xa9, 0x2b, 0xc9, 0x83, 0xa9, 0x12, 0x68, 0xc0, 0x14, -0x08, 0xc7, 0x43, 0xca, 0x32, 0x89, 0x56, 0x32, 0xec, 0x5c, 0x26, 0xed, 0x4f, 0x74, 0x4b, 0x0a, -0xef, 0xba, 0xb6, 0x86, 0x96, 0x89, 0x79, 0xe4, 0x27, 0x5e, 0xa0, 0xf9, 0xd1, 0x96, 0xb7, 0x3b, -0xf4, 0x99, 0xfd, 0xde, 0x67, 0x69, 0xff, 0xa3, 0x8b, 0x3c, 0x30, 0x23, 0x9f, 0x2a, 0xa7, 0xaf, -0xc1, 0xa6, 0xf3, 0xea, 0x87, 0xb9, 0xc4, 0x05, 0x97, 0x7a, 0x64, 0xf6, 0x06, 0x38, 0x1d, 0xaa, -0x68, 0x3f, 0xcf, 0xdc, 0x73, 0x27, 0x2c, 0x38, 0x86, 0x28, 0x6c, 0x54, 0x0b, 0xb3, 0x47, 0x1e, -0xa0, 0x71, 0x13, 0xc6, 0x71, 0x12, 0x53, 0xf1, 0x77, 0x34, 0x76, 0x13, 0x9f, 0xed, 0xb1, 0x0c, -0xec, 0xb4, 0xb7, 0x08, 0x52, 0x1e, 0x5d, 0xfd, 0x32, 0xa4, 0x21, 0x1b, 0xfe, 0x16, 0xf3, 0xef, -0x24, 0xfe, 0x2d, 0xe5, 0x5f, 0x1b, 0xff, 0x5a, 0x3d, 0xb6, 0x8a, 0xa5, 0xa9, 0xd1, 0xd7, 0x91, -0xdf, 0x79, 0xf2, 0xc8, 0x03, 0xe1, 0xfe, 0xf7, 0xe9, 0x7c, 0xdd, 0xf4, 0xdc, 0xf7, 0xf3, 0x87, -0xb1, 0x06, 0x57, 0xd8, 0x17, 0x2d, 0x42, 0x5a, 0x22, 0xbe, 0x49, 0xdf, 0x8f, 0x65, 0xbd, 0x11, -0xa6, 0xf7, 0x76, 0xfd, 0x95, 0x2d, 0x79, 0xdf, 0xf7, 0x15, 0x2d, 0xe9, 0xe0, 0x96, 0x2c, 0x4a, -0xb7, 0x04, 0x63, 0xcb, 0xfe, 0x77, 0xb5, 0x66, 0xc7, 0x22, 0xf2, 0x4e, 0x8e, 0xad, 0x29, 0xbe, -0xb0, 0x35, 0xaa, 0x8c, 0x7d, 0x33, 0xa1, 0x45, 0x4a, 0x2d, 0xfb, 0x2e, 0x17, 0x1e, 0xb2, 0x89, -0x56, 0x5d, 0x5a, 0x4b, 0x90, 0x56, 0x10, 0x72, 0x7d, 0xf3, 0xb9, 0xe3, 0xab, 0x23, 0x9b, 0x45, -0x4b, 0x88, 0x7e, 0xda, 0x88, 0xd7, 0x61, 0x38, 0xaf, 0x7d, 0x28, 0xe1, 0x65, 0xc8, 0x91, 0xf5, -0x71, 0x1f, 0x96, 0x6c, 0x47, 0x0e, 0x76, 0xb6, 0x17, 0xaa, 0x61, 0xc7, 0x40, 0xa7, 0x1b, 0x79, -0xfa, 0xe8, 0x88, 0x4f, 0xf8, 0xac, 0xdc, 0x36, 0xd4, 0x39, 0xc9, 0x93, 0xef, 0x0d, 0x79, 0xcc, -0x5e, 0x3f, 0xc2, 0xa9, 0x51, 0xca, 0x33, 0x7d, 0xec, 0xfb, 0x55, 0x0e, 0xf8, 0x5a, 0x3e, 0x2c, -0xd3, 0x0b, 0x6f, 0xd9, 0xc4, 0x4f, 0x68, 0xd6, 0x30, 0xbc, 0x24, 0x5b, 0x2a, 0xcd, 0x3f, 0x2a, -0xe4, 0x01, 0xde, 0x3e, 0x92, 0x50, 0x12, 0x34, 0xf7, 0x4e, 0x21, 0x55, 0x4b, 0xc0, 0xe2, 0xc9, -0x43, 0x51, 0x6b, 0xf4, 0xb0, 0xd7, 0xef, 0xb8, 0x63, 0x64, 0x0b, 0xfb, 0x83, 0xc5, 0x92, 0xb7, -0xb2, 0xa4, 0x4b, 0xa7, 0xc4, 0x34, 0x7a, 0x1c, 0xaf, 0x94, 0x4a, 0xaf, 0xa5, 0x42, 0x8b, 0x36, -0x82, 0xd6, 0xe4, 0x33, 0x93, 0x68, 0xf5, 0x97, 0x56, 0x42, 0x88, 0x6f, 0x50, 0xbd, 0x4e, 0x97, -0x44, 0x7e, 0x0c, 0xca, 0x68, 0xdc, 0xd0, 0x78, 0x47, 0x8c, 0x94, 0xf2, 0x97, 0x02, 0xf6, 0xd9, -0xe7, 0xfe, 0x5c, 0x17, 0xb9, 0x8f, 0x9f, 0xcd, 0xda, 0xdd, 0x1a, 0xb9, 0x0f, 0xfb, 0xaf, 0x98, -0xb8, 0x10, 0x8f, 0x87, 0x49, 0x18, 0x8a, 0xa3, 0x2c, 0x72, 0x1f, 0xf6, 0x68, 0x71, 0xdc, 0x9a, -0x5d, 0x7d, 0x69, 0xdd, 0x88, 0x32, 0xdc, 0x9e, 0xfe, 0xee, 0x14, 0xaf, 0xe2, 0xcc, 0x6a, 0x95, -0x37, 0xbd, 0x1a, 0x98, 0x5e, 0xc3, 0x98, 0x7d, 0xee, 0xbd, 0x63, 0x91, 0xfb, 0x50, 0x5b, 0x71, -0x67, 0xd6, 0x31, 0xe8, 0xad, 0x32, 0xb3, 0x96, 0x41, 0x6f, 0x55, 0x99, 0xf5, 0x0c, 0x7a, 0xab, -0x19, 0xb7, 0xa6, 0x41, 0x21, 0x75, 0x99, 0x75, 0x0d, 0x7a, 0x0b, 0x64, 0xd6, 0x36, 0xe8, 0x6d, -0x56, 0x66, 0x7d, 0x83, 0xde, 0xc2, 0xdc, 0x87, 0x5b, 0xc1, 0x1d, 0x73, 0xe1, 0x6f, 0x65, 0xcc, -0x81, 0xbf, 0x55, 0xb1, 0x32, 0xfc, 0xad, 0x89, 0x95, 0xe0, 0x6f, 0x5d, 0xcc, 0x8e, 0xbf, 0x81, -0x98, 0x05, 0x7f, 0x67, 0xc5, 0xf4, 0xc8, 0x85, 0x6c, 0xdc, 0x7f, 0x3b, 0xdf, 0x4b, 0xe0, 0x38, -0x07, 0xa6, 0x27, 0xcd, 0xff, 0xfa, 0x57, 0xad, 0xd6, 0x50, 0x5f, 0xd0, 0x85, 0x7c, 0xea, 0x30, -0x7b, 0x06, 0x5b, 0x09, 0xf3, 0xdd, 0x2e, 0x50, 0xc8, 0x9b, 0x07, 0xf2, 0xea, 0x60, 0x0c, 0xe0, -0x55, 0x96, 0x0c, 0xb6, 0x22, 0x17, 0x14, 0x21, 0xb7, 0xf1, 0xba, 0xc2, 0x01, 0x50, 0xbd, 0x28, -0x19, 0x82, 0x50, 0xd1, 0x2b, 0x39, 0xea, 0x69, 0xaa, 0x12, 0x43, 0x9c, 0xe5, 0x0b, 0x7b, 0x53, -0x3b, 0x7e, 0x1c, 0xd5, 0x3b, 0x06, 0x55, 0x1b, 0xed, 0xcb, 0x43, 0x79, 0xf8, 0x13, 0x55, 0xef, -0xf8, 0x45, 0x3b, 0xb4, 0x41, 0xfb, 0x9d, 0xdb, 0x21, 0xfa, 0x96, 0xfa, 0x2a, 0x7d, 0x17, 0xfc, -0xf2, 0x60, 0x2c, 0xb0, 0x1a, 0x4a, 0xa0, 0xc4, 0x5b, 0xeb, 0xac, 0x6b, 0x28, 0x97, 0x9a, 0xd6, -0xba, 0x1a, 0x26, 0x63, 0xd9, 0xe5, 0x61, 0x2a, 0x7d, 0xb5, 0x14, 0xd0, 0xab, 0x93, 0x2b, 0xfe, -0x76, 0xde, 0x3d, 0xfd, 0x63, 0xbb, 0xee, 0xe9, 0xb4, 0xd5, 0x17, 0xec, 0xd3, 0xc5, 0xf4, 0x6b, -0xb1, 0xa4, 0x0a, 0xeb, 0x6f, 0x7e, 0xd2, 0xa6, 0x7f, 0x43, 0xd7, 0x7e, 0xe7, 0x0b, 0xfa, 0xe8, -0x5b, 0x6d, 0x70, 0xf4, 0xce, 0x83, 0x83, 0x56, 0x00, 0x25, 0xba, 0x15, 0x6b, 0x9f, 0xdc, 0x03, -0x45, 0xc0, 0x67, 0x86, 0xf7, 0x94, 0xc2, 0xec, 0xf7, 0x53, 0xa9, 0xde, 0xb1, 0x1d, 0x3f, 0xee, -0x34, 0x5e, 0xf9, 0xff, 0x94, 0x7a, 0xa9, 0xfe, 0x6d, 0x58, 0x7e, 0xe7, 0xe1, 0xd5, 0xa9, 0x29, -0x0d, 0xa8, 0x4b, 0x6d, 0x81, 0xa0, 0xe6, 0xbf, 0xda, 0xc9, 0x23, 0xed, 0x64, 0xe8, 0xcf, 0xf5, -0xcc, 0x3b, 0xe8, 0x6b, 0x55, 0xa5, 0x01, 0x29, 0xcd, 0x85, 0xa3, 0xd3, 0x9e, 0x3b, 0x42, 0xb3, -0xdf, 0x54, 0x48, 0xb3, 0x9c, 0xbe, 0xdf, 0x9d, 0x84, 0x22, 0xd4, 0xca, 0x42, 0xd9, 0x95, 0x6f, -0xd6, 0x9b, 0x1b, 0x72, 0xc7, 0xc6, 0x35, 0x3e, 0xe4, 0x0f, 0x34, 0x32, 0x4f, 0xb2, 0x5f, 0x64, -0xb7, 0x27, 0x7f, 0xee, 0xb9, 0xe4, 0x6a, 0x8d, 0xef, 0x9c, 0x46, 0x5d, 0xd4, 0xa5, 0x8d, 0xd7, -0x7c, 0xe6, 0x3d, 0x44, 0x25, 0xa8, 0x39, 0xc4, 0x2f, 0x55, 0x1a, 0x70, 0x1c, 0xb8, 0x45, 0xb8, -0x18, 0xed, 0x58, 0x93, 0x4c, 0x6f, 0x0e, 0x2c, 0xeb, 0x1a, 0x94, 0x6a, 0x74, 0x56, 0xa5, 0x62, -0x0e, 0x26, 0xfc, 0x1f, 0x0f, 0xa5, 0x1c, 0xe6, 0xe1, 0x81, 0xf7, 0x86, 0xb0, 0x2e, 0xfb, 0x35, -0x2b, 0x52, 0x9f, 0x80, 0x4d, 0x41, 0x4d, 0xe5, 0x32, 0x1f, 0x14, 0xf5, 0xa4, 0x68, 0xa6, 0x84, -0xfd, 0x79, 0x8f, 0x9b, 0xa9, 0x1d, 0x9b, 0x4f, 0xda, 0x36, 0x51, 0x56, 0xac, 0x35, 0xa0, 0x8b, -0x4b, 0x6a, 0xcd, 0xa1, 0x75, 0x87, 0xd6, 0xb9, 0x71, 0xe4, 0xbc, 0xb9, 0x8e, 0xd6, 0x28, 0x5f, -0x3c, 0x01, 0x36, 0xce, 0x21, 0x67, 0xe7, 0x76, 0x95, 0x46, 0x85, 0x4f, 0x28, 0x08, 0x6f, 0x0b, -0xf1, 0xda, 0x79, 0xd0, 0xd7, 0xa6, 0xeb, 0x83, 0x52, 0xdd, 0xf3, 0xa8, 0xed, 0x74, 0x18, 0x91, -0x9b, 0xed, 0x52, 0xf5, 0xf8, 0xeb, 0xa4, 0x75, 0xf6, 0x1f, 0xdc, 0x12, 0x97, 0xc4, 0x6e, 0x5e, -0xed, 0x8c, 0x84, 0x7c, 0xc6, 0xa0, 0xe6, 0xa1, 0x99, 0xbf, 0xd7, 0xf8, 0x70, 0x61, 0x7d, 0x6a, -0x9f, 0xf0, 0x21, 0xcb, 0x7b, 0xef, 0xcb, 0x50, 0x16, 0x2b, 0xe4, 0x4d, 0xd1, 0xd9, 0x42, 0xdf, -0x80, 0xd3, 0x57, 0xdb, 0xd1, 0x0a, 0xd5, 0x47, 0xdf, 0x0a, 0x21, 0x57, 0xf1, 0xed, 0x1f, 0x76, -0xc4, 0x1f, 0x04, 0xe1, 0x93, 0x38, 0x0d, 0x61, 0x76, 0xfc, 0xb6, 0xc9, 0xc8, 0xa5, 0x64, 0x1c, -0xd5, 0xe6, 0x1d, 0x6e, 0xec, 0xe1, 0x57, 0xb3, 0xda, 0x91, 0xa7, 0x01, 0x9c, 0x9e, 0x96, 0x5c, -0x6f, 0xc8, 0x0b, 0xad, 0x91, 0xfd, 0xc2, 0xfb, 0x1d, 0x7d, 0xcf, 0x53, 0xe9, 0x81, 0x7a, 0x92, -0x13, 0xab, 0x1d, 0x6f, 0xfc, 0xd8, 0x35, 0x5d, 0xa2, 0xd1, 0x5e, 0x4b, 0xfd, 0x8a, 0x12, 0xd7, -0xab, 0xcc, 0xa6, 0xbd, 0xa1, 0x81, 0x00, 0x59, 0x10, 0x4f, 0xbc, 0x40, 0x36, 0xc7, 0xd6, 0x33, -0xea, 0x6d, 0xec, 0x59, 0xdc, 0xdd, 0x53, 0x8c, 0xda, 0x41, 0x0f, 0x6a, 0x05, 0x76, 0xd2, 0x96, -0x84, 0x7f, 0xf1, 0x58, 0x1d, 0xde, 0x75, 0xa8, 0x25, 0xdc, 0x44, 0xda, 0x0d, 0xf6, 0x46, 0x69, -0xcc, 0x8a, 0x1c, 0x5e, 0x47, 0x96, 0x0f, 0x4a, 0xe0, 0x20, 0x3e, 0xa1, 0xc5, 0xd3, 0xbe, 0x51, -0x25, 0xef, 0x2b, 0x74, 0xae, 0x7b, 0xc9, 0xb6, 0xa1, 0x58, 0x25, 0xa6, 0x2b, 0x51, 0xcb, 0xb5, -0x90, 0x62, 0x0c, 0x29, 0xc3, 0x90, 0xe2, 0x2e, 0x7d, 0x00, 0xdf, 0xb0, 0xa5, 0xb6, 0x6d, 0x78, -0xef, 0x36, 0xce, 0xa3, 0x1d, 0xb6, 0xc5, 0xa8, 0xef, 0xcc, 0x1d, 0xe7, 0x93, 0xbf, 0xd7, 0x63, -0x42, 0x8d, 0xa3, 0x3e, 0x57, 0x82, 0xd0, 0x49, 0xac, 0xff, 0xfa, 0x01, 0x2c, 0x8a, 0x72, 0xdd, -0xbc, 0x72, 0xfc, 0x42, 0xeb, 0xc6, 0xb4, 0x9f, 0x3d, 0xa4, 0xf3, 0x51, 0xda, 0x6d, 0xcc, 0x56, -0x07, 0x52, 0x36, 0xc9, 0x49, 0xb4, 0x3e, 0x4a, 0x5c, 0x48, 0xed, 0xe5, 0x4b, 0xa1, 0xc8, 0x81, -0x92, 0x11, 0x35, 0xdc, 0xaa, 0x28, 0x7b, 0xed, 0x61, 0x4d, 0x0b, 0xe0, 0x50, 0x39, 0x52, 0xe9, -0xbd, 0x6b, 0x7b, 0x8b, 0x51, 0x6e, 0x00, 0xec, 0x9c, 0xfd, 0x17, 0x33, 0xdc, 0x38, 0x80, 0x3a, -0x5b, 0x21, 0xbf, 0x6f, 0x3d, 0x30, 0x50, 0x75, 0x7d, 0x29, 0x6a, 0x6d, 0x76, 0x19, 0x6a, 0xe0, -0x11, 0x98, 0x8f, 0xd7, 0x85, 0x7f, 0x0a, 0xb8, 0xc1, 0x47, 0x65, 0xd6, 0xa0, 0xbe, 0xa5, 0x9a, -0xb5, 0xa7, 0x62, 0xe5, 0xc7, 0x6a, 0x9f, 0xf6, 0x5c, 0xaa, 0x7e, 0x42, 0x3d, 0x98, 0x3b, 0x7a, -0x1c, 0x09, 0xf5, 0xa6, 0xaa, 0xe9, 0x60, 0x8f, 0xd6, 0xd1, 0x8e, 0x6f, 0x11, 0xd3, 0x8b, 0x31, -0xbd, 0x76, 0x8f, 0x9e, 0xe5, 0xb6, 0x8e, 0x56, 0x7c, 0xcf, 0x97, 0x53, 0x09, 0x8a, 0x1c, 0x4c, -0xa0, 0x7c, 0x1b, 0x9d, 0x37, 0x70, 0x70, 0x60, 0x78, 0xf0, 0xbd, 0x21, 0x25, 0x21, 0x3c, 0x97, -0x53, 0x5c, 0x95, 0x5f, 0xb9, 0x93, 0x3d, 0x23, 0x80, 0x27, 0x4f, 0xd8, 0x5a, 0x42, 0x73, 0xb0, -0x96, 0x09, 0xa9, 0x86, 0x18, 0x51, 0x58, 0x33, 0xa5, 0xfd, 0xa0, 0xb4, 0x27, 0x95, 0xf8, 0x90, -0x0b, 0xe5, 0x90, 0x8c, 0x79, 0x72, 0x56, 0xb1, 0x70, 0xe4, 0x4f, 0xae, 0xee, 0x09, 0xd1, 0x97, -0x3f, 0xfc, 0x05, 0x10, 0x4a, 0xab, 0xb5, 0xb4, 0x9a, 0xda, 0xf2, 0xb6, 0xbe, 0x8c, 0xe4, 0xd5, -0x36, 0x37, 0xca, 0x4a, 0x7a, 0x26, 0xaa, 0xf6, 0x12, 0x55, 0xa7, 0x4b, 0xa5, 0x2f, 0xd0, 0xaa, -0xa7, 0x83, 0xb1, 0x0a, 0x69, 0xd7, 0x8b, 0xb2, 0xb9, 0x4b, 0x5e, 0xe4, 0x7b, 0xcf, 0xf7, 0xd2, -0x6e, 0xaf, 0x6f, 0xff, 0x8b, 0x4e, 0xf3, 0xea, 0xd1, 0x97, 0x07, 0x9f, 0xdb, 0x8a, 0xa3, 0x11, -0xfb, 0x2c, 0xb2, 0xf3, 0x5c, 0xff, 0x54, 0xe4, 0x4f, 0xed, 0x1b, 0x15, 0x19, 0xf5, 0x50, 0xe5, -0xcf, 0xe6, 0xa2, 0xe9, 0x60, 0x90, 0x25, 0x30, 0x8d, 0xd0, 0xfe, 0x6d, 0xb8, 0xec, 0x49, 0xc8, -0x2f, 0x75, 0xc6, 0xa5, 0x77, 0xb7, 0x0c, 0x6c, 0x25, 0x0e, 0x66, 0xb5, 0x32, 0xd7, 0x3e, 0x42, -0xde, 0xf1, 0xb0, 0xc6, 0x56, 0x3a, 0x89, 0x05, 0x6b, 0x6c, 0xf9, 0xaa, 0x1a, 0xdd, 0xe6, 0xde, -0xd1, 0x3d, 0xb7, 0xef, 0xa0, 0x1a, 0xd7, 0xb8, 0x10, 0x3f, 0x5c, 0xab, 0x71, 0x6a, 0x00, 0x94, -0x32, 0x1c, 0x3f, 0xed, 0x1b, 0x51, 0xb3, 0x77, 0x06, 0x24, 0xd5, 0xe1, 0x58, 0x18, 0x4f, 0x6d, -0xbb, 0x33, 0xaa, 0x47, 0x2a, 0x28, 0xda, 0x2e, 0x78, 0xf9, 0x26, 0xec, 0x3b, 0x37, 0x28, 0xca, -0xbf, 0x98, 0xa1, 0x4d, 0x6a, 0x1f, 0xda, 0x25, 0x45, 0xdf, 0x0c, 0x80, 0x93, 0xb9, 0xbf, 0xea, -0xa8, 0x2c, 0x7d, 0x6d, 0x30, 0x26, 0x0f, 0x49, 0x6d, 0xba, 0x03, 0xd2, 0x2e, 0x5d, 0xf4, 0x34, -0xc3, 0xbb, 0xae, 0xd4, 0x89, 0x5c, 0x7a, 0x03, 0xf1, 0xe8, 0x98, 0x95, 0x4a, 0xee, 0x41, 0xde, -0x1e, 0xd0, 0xa9, 0x6f, 0x29, 0x86, 0x89, 0xed, 0x13, 0xeb, 0x5d, 0xf6, 0x2a, 0xb3, 0x53, 0x3c, -0x91, 0xcf, 0x3d, 0xe2, 0x52, 0xe2, 0x94, 0x79, 0xda, 0x0d, 0x41, 0x63, 0x36, 0x7d, 0xda, 0x3c, -0x79, 0xe0, 0x2f, 0x43, 0xbd, 0xae, 0x02, 0x29, 0xca, 0xdd, 0xf2, 0x07, 0xe4, 0x1a, 0x9e, 0x82, -0xc8, 0xce, 0x2f, 0x66, 0x79, 0xa9, 0xc7, 0x51, 0xfa, 0xb7, 0x6f, 0xdc, 0x1e, 0x8a, 0x59, 0xb5, -0x31, 0x64, 0x41, 0x4b, 0x72, 0xa8, 0xda, 0x0d, 0x16, 0x7a, 0xdf, 0x1e, 0x5a, 0x61, 0xac, 0x91, -0xaa, 0xcc, 0xaa, 0x5c, 0x63, 0xde, 0x16, 0xe8, 0x32, 0x7a, 0x03, 0xd5, 0xe0, 0x35, 0x87, 0x1b, -0x56, 0xac, 0x09, 0xfb, 0x56, 0xac, 0xae, 0x5a, 0x81, 0x3a, 0x7f, 0x73, 0x57, 0xb7, 0x77, 0x05, -0xd8, 0x76, 0x84, 0xba, 0xa2, 0xb5, 0x52, 0x53, 0xf0, 0xb6, 0xc2, 0x53, 0x1d, 0xbb, 0x83, 0xb5, -0x72, 0x53, 0xf0, 0x54, 0xc7, 0x9e, 0xe0, 0x73, 0xcd, 0x2b, 0xf4, 0x35, 0x79, 0xf3, 0x1a, 0xb6, -0x85, 0x56, 0xe8, 0xbd, 0xe6, 0x79, 0x3e, 0x79, 0x3d, 0x6b, 0x86, 0x46, 0x8f, 0xc1, 0xeb, 0xf3, -0xd0, 0x69, 0x98, 0x66, 0x6f, 0x40, 0xe8, 0x52, 0x9e, 0x02, 0xf6, 0xbb, 0x8d, 0xa3, 0xf0, 0xff, -0x89, 0xb0, 0x24, 0xf7, 0x45, 0xe9, 0x94, 0x94, 0x5a, 0xe4, 0x49, 0xd5, 0xc8, 0x93, 0xbc, 0x9a, -0x87, 0xf6, 0x51, 0xda, 0x1f, 0xdc, 0xcf, 0x3e, 0x0e, 0xeb, 0x95, 0x34, 0x15, 0x22, 0x37, 0x54, -0xd6, 0x38, 0xde, 0xdc, 0x8a, 0xa3, 0x53, 0x3e, 0xb4, 0x15, 0x5b, 0xa7, 0x8f, 0xec, 0x3c, 0xab, -0x22, 0xcd, 0xeb, 0x79, 0x16, 0x60, 0x6c, 0xf8, 0x31, 0xed, 0x54, 0x9a, 0x12, 0xe4, 0x72, 0x0a, -0xd2, 0x63, 0xce, 0x4e, 0x67, 0x3d, 0xfb, 0x09, 0xc7, 0x5f, 0xf6, 0xdf, 0x48, 0xf6, 0x9e, 0xd3, -0xcd, 0x1a, 0x56, 0x05, 0x61, 0xf1, 0xdf, 0x91, 0x36, 0x50, 0x96, 0xec, 0x3c, 0x5b, 0x44, 0x7b, -0x51, 0x5e, 0xfa, 0x00, 0x29, 0x04, 0xa9, 0xa4, 0x7d, 0xa3, 0xa0, 0x91, 0x1a, 0x08, 0xbd, 0xa4, -0xf8, 0x1b, 0x4e, 0xd7, 0x42, 0xa0, 0xa1, 0x5f, 0x5a, 0xf3, 0xa3, 0x26, 0x83, 0xda, 0x8b, 0xd6, -0xa2, 0xb9, 0x07, 0xd4, 0x05, 0x95, 0xc6, 0x77, 0x9f, 0xa5, 0xb4, 0xca, 0xfc, 0xbe, 0xd4, 0xf3, -0x43, 0xb1, 0x20, 0xeb, 0x55, 0xb3, 0xfa, 0x4c, 0xc3, 0xeb, 0x5c, 0x86, 0x23, 0x3f, 0x53, 0xf4, -0xfb, 0x5f, 0x71, 0x07, 0x54, 0x07, 0xca, 0x85, 0xef, 0xec, 0xbd, 0x23, 0xa6, 0x1f, 0xb0, 0xab, -0xc6, 0x52, 0x68, 0xd2, 0xbf, 0x62, 0xe7, 0xbd, 0xf4, 0xe6, 0xb6, 0x21, 0x5a, 0xb1, 0x54, 0xe5, -0xa3, 0x43, 0xb5, 0x05, 0x0f, 0x06, 0x9e, 0x47, 0xce, 0xb6, 0xe2, 0x60, 0xfb, 0x5d, 0x6d, 0x03, -0xbc, 0xc3, 0xbd, 0x68, 0xdb, 0x40, 0xf7, 0xa3, 0x07, 0x51, 0xff, 0xf2, 0x2e, 0x07, 0xfb, 0xeb, -0x7b, 0xdb, 0x1a, 0x9e, 0x43, 0x0e, 0xb9, 0x62, 0xbd, 0xf0, 0xfd, 0xa8, 0xf9, 0x2b, 0xa5, 0x13, -0x8d, 0x68, 0x7f, 0x82, 0x46, 0x05, 0xbf, 0x43, 0xbd, 0xba, 0xda, 0x05, 0xb6, 0x5f, 0x9e, 0x00, -0x7b, 0x95, 0x0b, 0xac, 0x08, 0xbf, 0xff, 0x3d, 0x7f, 0x8d, 0x14, 0x7a, 0xc9, 0x11, 0x98, 0xfd, -0x71, 0x2d, 0xa0, 0x7e, 0x81, 0xed, 0xbb, 0xef, 0x95, 0x1e, 0x08, 0xe8, 0x7b, 0x25, 0xb5, 0x84, -0x68, 0x7d, 0x4d, 0x6a, 0xe7, 0x8e, 0x07, 0x21, 0x6a, 0x74, 0xcb, 0xef, 0x3e, 0x3d, 0x64, 0x68, -0x1b, 0x68, 0xbf, 0xf3, 0xb9, 0x81, 0xee, 0xf7, 0x02, 0x0d, 0xf5, 0x74, 0x2e, 0x0a, 0xc0, 0x66, -0x4a, 0xe3, 0xf0, 0xd5, 0x23, 0x94, 0x45, 0x7b, 0xaa, 0xf2, 0xee, 0x6d, 0xda, 0xbe, 0x04, 0xec, -0x2b, 0xce, 0xf4, 0x82, 0xba, 0xb8, 0xd2, 0xf6, 0xa7, 0x67, 0xa9, 0x16, 0xf7, 0x7c, 0x2c, 0xe3, -0xee, 0x58, 0xeb, 0x4e, 0x6a, 0x7b, 0x78, 0x8d, 0x69, 0xf7, 0xed, 0x93, 0xea, 0x53, 0x89, 0xa3, -0xff, 0xdd, 0x61, 0xf8, 0xc3, 0xaf, 0x1d, 0xbe, 0x49, 0xa6, 0x26, 0xc3, 0x15, 0x8d, 0xe0, 0x51, -0x9d, 0x6b, 0x60, 0xd2, 0x65, 0xaf, 0x0e, 0xc4, 0xf4, 0x1b, 0x2f, 0x51, 0x8d, 0x93, 0x90, 0xf5, -0xfc, 0xfa, 0x92, 0x35, 0xd2, 0xce, 0x01, 0xc4, 0xc2, 0xdd, 0x3d, 0x3f, 0x6a, 0x92, 0x10, 0x0b, -0x77, 0xb6, 0xdd, 0x59, 0x97, 0xf7, 0x50, 0xd3, 0x4e, 0xaa, 0xe1, 0x00, 0xe2, 0x61, 0x90, 0xbf, -0xcf, 0x28, 0xda, 0x3e, 0xd8, 0xbd, 0x19, 0xa5, 0xbf, 0x99, 0xce, 0xf2, 0xfa, 0xf7, 0x57, 0x10, -0x0f, 0x4b, 0xa0, 0x68, 0x05, 0xa4, 0x96, 0x8c, 0xf7, 0xdd, 0x4a, 0x23, 0x81, 0xce, 0xdb, 0xa0, -0x93, 0xb1, 0xa9, 0x6f, 0xcb, 0xe7, 0xfe, 0xfb, 0x49, 0xd1, 0xab, 0x9f, 0xd5, 0xe3, 0x08, 0x2d, -0x9d, 0x87, 0xfa, 0x1f, 0xf9, 0x2e, 0xeb, 0x20, 0x6e, 0x55, 0xef, 0x99, 0x2b, 0x68, 0xce, 0xd1, -0x25, 0xe8, 0x0d, 0xcb, 0xd9, 0x9f, 0xdb, 0xf7, 0xd9, 0x9e, 0x77, 0xf8, 0xfd, 0x1f, 0x53, 0xcf, -0xaf, 0x91, 0xfa, 0x7e, 0xd4, 0x44, 0x9e, 0xf6, 0xcf, 0x52, 0x69, 0xfd, 0xd2, 0x2e, 0xb4, 0x82, -0x6f, 0x93, 0x5f, 0x40, 0xa9, 0x03, 0xc7, 0xd4, 0x65, 0x19, 0x7a, 0x30, 0x08, 0x7a, 0x70, 0xcc, -0xef, 0x4f, 0xed, 0xba, 0x33, 0x16, 0x64, 0x09, 0x3d, 0xab, 0xdf, 0x34, 0xbc, 0xbe, 0x42, 0x7f, -0xe4, 0x71, 0xc5, 0xf8, 0xfa, 0x5e, 0xa2, 0x87, 0x7e, 0x28, 0xfb, 0xce, 0x3e, 0xa2, 0x07, 0xc4, -0x44, 0x19, 0x34, 0x19, 0x7f, 0x73, 0x09, 0x95, 0x87, 0x98, 0xb8, 0x33, 0x4d, 0x0f, 0xf5, 0x05, -0x0f, 0x07, 0x76, 0x5d, 0x84, 0x1e, 0xd4, 0x2e, 0xad, 0xa6, 0x9b, 0xa8, 0x26, 0xcf, 0x6c, 0xa8, -0xb8, 0xb0, 0xb6, 0xdb, 0x4c, 0xc3, 0x77, 0x64, 0x6b, 0x0b, 0x34, 0xa9, 0x4e, 0x94, 0xea, 0x15, -0xaf, 0xfd, 0xb3, 0xa8, 0x6f, 0x32, 0x34, 0x99, 0x7e, 0x7b, 0xc9, 0x6d, 0xd2, 0x0b, 0xe3, 0xea, -0xe3, 0x33, 0xef, 0x8b, 0x57, 0xbc, 0x31, 0xae, 0xb6, 0x87, 0x89, 0xfa, 0xaa, 0x90, 0xfa, 0xf6, -0xbf, 0xa2, 0x51, 0x1f, 0xa4, 0xf4, 0x59, 0x0f, 0xb5, 0xb3, 0x88, 0xa3, 0x8b, 0x33, 0x1d, 0x56, -0x82, 0x2b, 0xcd, 0x81, 0xb0, 0x6d, 0xc8, 0x83, 0xfa, 0x1c, 0x87, 0x9e, 0x84, 0x92, 0x72, 0xf9, -0x8d, 0x27, 0xb1, 0x0f, 0x74, 0x91, 0x9d, 0x67, 0x9e, 0x67, 0x6e, 0x40, 0x16, 0xa1, 0xd9, 0x4b, -0x16, 0x21, 0xfd, 0x5a, 0xf8, 0xd7, 0x8c, 0x5c, 0x01, 0xc7, 0x70, 0x86, 0x27, 0x38, 0x35, 0x9e, -0xe0, 0xe2, 0x93, 0x1b, 0xe6, 0x80, 0x22, 0x78, 0x82, 0xb5, 0x9f, 0xbf, 0x19, 0xe8, 0xff, 0x7a, -0x9e, 0x70, 0xa6, 0x25, 0xcb, 0x13, 0x76, 0xbd, 0xf0, 0x4d, 0x78, 0x82, 0xb0, 0xe3, 0x50, 0x73, -0xb0, 0xf2, 0x95, 0x23, 0xe1, 0xbe, 0x2a, 0x26, 0xf2, 0x03, 0x8a, 0x43, 0xfd, 0xff, 0x21, 0x2b, -0x6a, 0x86, 0x31, 0xa3, 0xec, 0x87, 0x94, 0x2a, 0xf7, 0xe8, 0xec, 0x2e, 0xf8, 0x29, 0x7d, 0xe9, -0x1d, 0xb3, 0x0a, 0xae, 0x8d, 0xfa, 0x26, 0x49, 0x6f, 0xab, 0x63, 0x09, 0xec, 0xe4, 0x1e, 0xb2, -0x27, 0xfc, 0x55, 0x89, 0xb0, 0x0b, 0x8e, 0xc5, 0x8c, 0x58, 0xde, 0x1b, 0xde, 0x04, 0x63, 0x93, -0x24, 0x6e, 0x59, 0x78, 0x0b, 0x3c, 0x8e, 0xda, 0xf4, 0x1b, 0xe1, 0x25, 0x70, 0x02, 0x29, 0xeb, -0x01, 0xa4, 0xb7, 0xc7, 0x30, 0xdf, 0x5b, 0x3d, 0x50, 0x25, 0x2b, 0xd2, 0xc8, 0xc0, 0xc8, 0xc0, -0xa4, 0xab, 0xcd, 0x50, 0x7a, 0xb5, 0x59, 0xb2, 0x5f, 0x6d, 0x96, 0xfb, 0xaf, 0xd8, 0xbd, 0x3e, -0x2a, 0xcf, 0x6f, 0xa0, 0x33, 0xd8, 0x21, 0x55, 0x04, 0xc7, 0xf3, 0x08, 0x86, 0x7a, 0xbd, 0xdc, -0x04, 0xa7, 0x07, 0x9b, 0xfa, 0x0b, 0x9b, 0x8c, 0xfb, 0x6e, 0x7f, 0xff, 0x1e, 0x7a, 0x7a, 0x75, -0xfd, 0x3b, 0x77, 0xcb, 0x3e, 0x28, 0x4c, 0x34, 0xbe, 0xdf, 0x22, 0x07, 0xe1, 0x74, 0x22, 0x48, -0x5f, 0x2d, 0x1d, 0x5a, 0xb7, 0x06, 0xea, 0x74, 0x8e, 0xe0, 0xeb, 0xbf, 0x7c, 0xfd, 0x15, 0xb4, -0x6c, 0x1e, 0xbf, 0x66, 0xe0, 0x41, 0xc0, 0xfb, 0xd6, 0x6b, 0x12, 0x0f, 0x02, 0xc3, 0x47, 0x7b, -0x58, 0x76, 0x6b, 0xa1, 0x2f, 0x53, 0x68, 0x5b, 0x40, 0xd5, 0xa3, 0x2d, 0x12, 0xd8, 0xb1, 0x04, -0x0e, 0x77, 0x42, 0x2a, 0xaa, 0x82, 0xe4, 0x0e, 0xf8, 0xad, 0x2e, 0x90, 0xe1, 0x5d, 0xda, 0x61, -0x81, 0xf0, 0xee, 0xb4, 0xfa, 0xa1, 0x70, 0xb1, 0x3e, 0x00, 0xac, 0xb1, 0x20, 0xec, 0x25, 0x92, -0xac, 0x03, 0xdd, 0x1b, 0x20, 0xe6, 0x0b, 0x9c, 0xba, 0x83, 0x6b, 0xdf, 0x18, 0xac, 0x96, 0x8e, -0x85, 0x65, 0x19, 0x74, 0x23, 0x72, 0x2f, 0x14, 0x83, 0x22, 0x8f, 0x0c, 0x1e, 0x4c, 0xd8, 0xaf, -0x76, 0xc1, 0x71, 0xf3, 0x3b, 0xa1, 0xd2, 0xab, 0x5d, 0xf2, 0x71, 0x2b, 0x42, 0x99, 0x4a, 0x04, -0x8b, 0xaf, 0x76, 0x49, 0xe2, 0xfb, 0xf7, 0xbe, 0xc2, 0x26, 0xfd, 0x9e, 0x75, 0x89, 0x80, 0x13, -0xe8, 0xdd, 0xba, 0xef, 0xd8, 0xa0, 0xfd, 0xea, 0x5a, 0x2d, 0x7d, 0x6d, 0x26, 0x7d, 0xc9, 0xd5, -0xb5, 0x92, 0xa8, 0x87, 0x5a, 0xff, 0xf2, 0xfa, 0x44, 0x83, 0xec, 0xb3, 0xee, 0x4b, 0x04, 0xd0, -0xca, 0x97, 0x1c, 0x81, 0xd7, 0x77, 0x37, 0x7c, 0xfc, 0xa0, 0xcc, 0x2d, 0x4d, 0xb7, 0xd0, 0xcc, -0x2d, 0xa4, 0x96, 0xf9, 0xb7, 0x8b, 0x36, 0x05, 0xd4, 0x05, 0x18, 0xf6, 0x56, 0x3a, 0xc7, 0xc1, -0x3b, 0x89, 0x95, 0x52, 0x3d, 0x25, 0x55, 0x08, 0x57, 0xbe, 0xdc, 0x80, 0xf5, 0x34, 0x14, 0x57, -0xa5, 0xe1, 0x5a, 0x5d, 0xd8, 0xa4, 0xdb, 0xb3, 0x36, 0x11, 0xf8, 0xda, 0x92, 0xb7, 0x22, 0xad, -0xf5, 0x0b, 0x7a, 0x72, 0x2c, 0x91, 0x2c, 0x7c, 0x5a, 0xd8, 0x6f, 0x69, 0xf7, 0xe1, 0xd5, 0x3e, -0x38, 0x15, 0x5c, 0x02, 0xa7, 0xb0, 0xcf, 0xdf, 0x8b, 0x85, 0xe9, 0x54, 0xb0, 0x9c, 0xdd, 0x78, -0xf6, 0x99, 0xa3, 0xa8, 0x2b, 0xbe, 0xfd, 0xf1, 0xe1, 0xab, 0x69, 0x4e, 0xfb, 0x54, 0xe4, 0x56, -0x6d, 0x57, 0x9e, 0x0d, 0xc3, 0x81, 0xc2, 0x03, 0x4b, 0x28, 0x54, 0x94, 0x16, 0xd3, 0x07, 0x88, -0xd2, 0x94, 0x99, 0xc3, 0x14, 0xc3, 0x7a, 0x1c, 0x78, 0x3d, 0x50, 0x52, 0xe5, 0x81, 0x49, 0xd5, -0x1e, 0x98, 0x1c, 0xf6, 0xc7, 0x2c, 0x35, 0xd0, 0x57, 0x78, 0x7c, 0xf9, 0x48, 0xc3, 0x51, 0x1f, -0xcd, 0x50, 0x60, 0x9d, 0xa7, 0xd0, 0x7a, 0x0e, 0xc4, 0xac, 0x56, 0x9f, 0x74, 0xed, 0xca, 0x0a, -0x6f, 0xbd, 0x74, 0xad, 0x5a, 0x8e, 0xcf, 0xb0, 0x52, 0xc1, 0x67, 0x50, 0x27, 0x69, 0x71, 0x86, -0x95, 0x76, 0x7c, 0x37, 0xa8, 0x16, 0xab, 0x0f, 0xf6, 0xae, 0xd4, 0x7b, 0xeb, 0x61, 0x2f, 0x96, -0x26, 0x8f, 0xa0, 0x7e, 0x47, 0x7b, 0x26, 0xc5, 0x7c, 0x1e, 0x9f, 0x23, 0xc9, 0xfe, 0x88, 0xc9, -0x2f, 0xfd, 0x0d, 0x74, 0x22, 0x27, 0x59, 0x90, 0x56, 0x94, 0x7f, 0x6e, 0x78, 0x68, 0xb5, 0xfd, -0xfd, 0x27, 0x95, 0x06, 0xd4, 0xbd, 0x4a, 0x26, 0xbb, 0xe1, 0x18, 0xf2, 0x76, 0x13, 0xea, 0x63, -0xc5, 0xa1, 0xdd, 0x47, 0x1f, 0x3b, 0xb8, 0x0c, 0xa2, 0xd6, 0x00, 0xe4, 0x75, 0x5b, 0xea, 0x65, -0x63, 0x53, 0xea, 0xb3, 0x5e, 0x0b, 0xda, 0x2f, 0x4d, 0x6e, 0x7d, 0xdb, 0xed, 0x24, 0x85, 0xca, -0x6d, 0x1f, 0x3c, 0x59, 0xd1, 0x50, 0x63, 0x9e, 0xd7, 0xf0, 0xb2, 0x2f, 0xe8, 0xbb, 0xc1, 0x07, -0xb5, 0x58, 0xc6, 0xe4, 0xd0, 0xf0, 0xd1, 0x47, 0x47, 0x02, 0xb4, 0x0f, 0x35, 0xf0, 0x73, 0xd2, -0x32, 0x48, 0x67, 0x4b, 0xd1, 0x4a, 0x04, 0x79, 0x00, 0xab, 0x0a, 0xf8, 0x51, 0x72, 0xfc, 0xa9, -0x4e, 0x7e, 0xc8, 0x1f, 0x36, 0xc5, 0x8c, 0xc4, 0xc3, 0x54, 0xf9, 0xbe, 0x57, 0x0e, 0x9c, 0x80, -0x47, 0x91, 0x5f, 0x3e, 0x5c, 0x1f, 0xf1, 0x44, 0xa0, 0xd2, 0x61, 0xfb, 0xf3, 0x9d, 0x8a, 0xbf, -0x1e, 0x65, 0x46, 0x95, 0x2d, 0xf4, 0xa2, 0xff, 0x74, 0x29, 0xda, 0x8d, 0xef, 0xd1, 0x4c, 0x63, -0xb5, 0xc3, 0x03, 0x95, 0xc1, 0x81, 0x97, 0x9e, 0x85, 0xea, 0x2a, 0x23, 0x49, 0x84, 0xb0, 0x69, -0xc1, 0xaf, 0x42, 0x77, 0x84, 0x7e, 0x15, 0xbc, 0xe3, 0xa3, 0x27, 0xee, 0xc3, 0xd0, 0xdb, 0x00, -0x5b, 0xf0, 0xee, 0xa1, 0x75, 0x15, 0xc1, 0x3f, 0xee, 0x71, 0x99, 0x8c, 0xeb, 0x60, 0x6c, 0x65, -0x5d, 0x69, 0x4d, 0x08, 0xc2, 0x0d, 0x51, 0xf3, 0xac, 0x3c, 0x82, 0x50, 0xad, 0xa0, 0x73, 0x50, -0x70, 0x2c, 0x22, 0xfc, 0x0e, 0xdb, 0xfb, 0x4f, 0xb8, 0xa4, 0x4d, 0x7e, 0x0a, 0x0f, 0xed, 0xf9, -0xe8, 0xa9, 0xf0, 0xba, 0x2e, 0x79, 0xc1, 0xba, 0x63, 0xeb, 0x82, 0xeb, 0x66, 0xe5, 0xbd, 0x15, -0xfc, 0x3d, 0x96, 0x57, 0x2b, 0xbf, 0xd3, 0xe2, 0xd5, 0x27, 0x96, 0x41, 0xc7, 0x75, 0x3e, 0x90, -0xe9, 0x44, 0xab, 0x77, 0x9a, 0x91, 0x33, 0x76, 0xf8, 0x8f, 0x4b, 0x3e, 0x2f, 0x52, 0x03, 0xa4, -0x06, 0x7d, 0xd7, 0xf9, 0x51, 0x77, 0x95, 0x8f, 0xf8, 0x71, 0x84, 0x9b, 0xc0, 0xaf, 0x50, 0xbf, -0x56, 0xc9, 0x3e, 0x13, 0x70, 0x8c, 0x05, 0xed, 0x97, 0x62, 0x25, 0xac, 0xd6, 0x23, 0xef, 0x76, -0xc1, 0xc7, 0x15, 0xbe, 0x3f, 0x0e, 0x93, 0x5f, 0xa7, 0x91, 0x7b, 0x94, 0x1a, 0x33, 0x84, 0x11, -0xdb, 0x31, 0x2b, 0x9f, 0xf2, 0x65, 0xac, 0x47, 0x4c, 0x8c, 0xdc, 0x33, 0x82, 0x75, 0x8a, 0xd3, -0x83, 0x67, 0xfa, 0x41, 0x9e, 0xe9, 0x03, 0x63, 0xeb, 0x9d, 0x6d, 0x43, 0x15, 0xa1, 0x7f, 0x7e, -0x55, 0xe3, 0xfd, 0xf7, 0x74, 0x3f, 0x17, 0x7a, 0x09, 0x9f, 0xb1, 0x95, 0x3d, 0xf2, 0xbd, 0x89, -0x77, 0x9f, 0xf4, 0xea, 0x8e, 0xf9, 0xaa, 0x7c, 0x5e, 0xdd, 0x49, 0x5f, 0xbd, 0xaf, 0x47, 0xf7, -0xf2, 0x80, 0x62, 0xa3, 0xd5, 0xca, 0x77, 0xb7, 0x28, 0x3e, 0x7e, 0xb2, 0xbd, 0xbb, 0xa5, 0xca, -0x8c, 0x5c, 0x8d, 0xf8, 0x4f, 0x61, 0xc2, 0xef, 0xd0, 0xbd, 0x73, 0x67, 0xc2, 0xdf, 0x63, 0x7d, -0xf7, 0xc9, 0x44, 0x43, 0x55, 0xde, 0xfb, 0xcd, 0x18, 0x7a, 0x3a, 0xe1, 0xc7, 0xb6, 0x95, 0x5c, -0x87, 0xd8, 0x06, 0xdb, 0x75, 0xcb, 0xd0, 0x02, 0x2a, 0xba, 0x6e, 0x36, 0x4c, 0xc2, 0x6b, 0xf2, -0xc1, 0xa6, 0x83, 0xcb, 0xb1, 0x3f, 0x45, 0x4f, 0x06, 0x44, 0x4f, 0x8e, 0x35, 0x51, 0x4f, 0xd2, -0x8a, 0x51, 0x15, 0xbc, 0xd3, 0x0c, 0x7e, 0x30, 0x5c, 0xed, 0x07, 0x33, 0xd2, 0x5e, 0x6a, 0xa5, -0xd1, 0xda, 0x88, 0xbf, 0x36, 0x1c, 0x0f, 0x6f, 0x83, 0x1e, 0x7f, 0x93, 0x60, 0x54, 0xad, 0x57, -0xf7, 0xa7, 0xf8, 0x2d, 0x85, 0x6f, 0xca, 0xf7, 0x39, 0x85, 0xd1, 0xbb, 0x2b, 0xf5, 0xb6, 0xaa, -0xf7, 0xee, 0x92, 0x92, 0xef, 0xcc, 0x85, 0x46, 0x2c, 0xa1, 0x11, 0xf4, 0x54, 0x22, 0x04, 0xf1, -0x39, 0x98, 0x1a, 0xd5, 0x66, 0x3b, 0xec, 0xcc, 0x7d, 0x49, 0x9b, 0xa6, 0x99, 0x34, 0xd6, 0xa8, -0x6b, 0x3c, 0x50, 0xe7, 0x9c, 0x8f, 0x7a, 0xf8, 0xbb, 0x74, 0x2a, 0x24, 0x72, 0x77, 0x09, 0xc7, -0x00, 0xf2, 0xf8, 0x28, 0xdb, 0x61, 0x01, 0x5f, 0x55, 0xbd, 0x2c, 0x85, 0xa7, 0x23, 0x56, 0xf5, -0xd8, 0x76, 0xc3, 0xa0, 0xef, 0x5a, 0x3f, 0x3c, 0x80, 0x78, 0xdb, 0xcc, 0x27, 0xff, 0xe5, 0xb5, -0x25, 0x3e, 0x1c, 0x02, 0xec, 0xc7, 0x6b, 0x7d, 0xf0, 0x60, 0x35, 0xd6, 0x7e, 0x0d, 0x41, 0x25, -0xe3, 0x6f, 0x0a, 0xad, 0x60, 0x86, 0xf0, 0x9a, 0x7e, 0x09, 0xc0, 0x7c, 0xcd, 0x72, 0x78, 0x00, -0x2c, 0x8d, 0x27, 0xc0, 0x3a, 0x2d, 0x0c, 0xc5, 0x55, 0xfd, 0x70, 0x34, 0xe0, 0x57, 0x43, 0x71, -0xf0, 0x4a, 0x73, 0xd0, 0xa2, 0x44, 0xbe, 0x38, 0x03, 0x3e, 0x76, 0x07, 0xfe, 0xb0, 0xbb, 0x62, -0x09, 0x98, 0xff, 0xf8, 0x1b, 0x67, 0xcd, 0x21, 0xa0, 0x3d, 0xab, 0x75, 0xa8, 0x1d, 0x1d, 0xbc, -0xdb, 0x88, 0xb4, 0x34, 0xe2, 0x1b, 0xf1, 0x55, 0x27, 0x14, 0x99, 0xce, 0x90, 0x45, 0x6b, 0x58, -0xbe, 0xa6, 0x19, 0xcb, 0x0f, 0x60, 0x5f, 0x6e, 0x68, 0xf3, 0xb7, 0x37, 0x23, 0x1d, 0x14, 0x05, -0x02, 0xc5, 0xb0, 0xc3, 0xbf, 0xf8, 0x29, 0xb2, 0x3b, 0xc8, 0x42, 0x42, 0x88, 0x0e, 0x23, 0x0e, -0x2f, 0x5d, 0x4c, 0xe7, 0x96, 0x15, 0xe3, 0xf3, 0x74, 0xe6, 0xdb, 0xd6, 0xf0, 0x72, 0x94, 0x36, -0x14, 0xa6, 0x60, 0xd8, 0x72, 0xfa, 0xbd, 0xc5, 0x8a, 0xed, 0x6b, 0xe8, 0xd2, 0xc2, 0xcc, 0xd3, -0x41, 0x07, 0x81, 0x58, 0x09, 0xf2, 0x79, 0x23, 0x14, 0x2d, 0x36, 0x8b, 0xdc, 0x7c, 0xfa, 0x19, -0x96, 0x88, 0xd0, 0x5b, 0xab, 0x77, 0xc1, 0x3d, 0x68, 0xa1, 0x63, 0x2b, 0x61, 0x13, 0x90, 0xad, -0x4e, 0x6d, 0x3c, 0x06, 0x66, 0x7c, 0xb2, 0x60, 0xd8, 0xbd, 0x60, 0xc5, 0x27, 0x1b, 0x3e, 0x6d, -0x06, 0x3b, 0x3e, 0x15, 0x61, 0xac, 0x0c, 0xc5, 0xb4, 0xb7, 0x1d, 0x9f, 0x50, 0xa0, 0xe1, 0xd3, -0x24, 0x7c, 0xb2, 0x40, 0x19, 0x3e, 0x4d, 0xc6, 0x27, 0x3d, 0xda, 0x06, 0x08, 0x55, 0xcc, 0xe2, -0xad, 0x97, 0x9d, 0x0c, 0x8b, 0x1c, 0x77, 0x62, 0x2b, 0x1d, 0x81, 0xa7, 0xa0, 0x54, 0xc0, 0x8b, -0x98, 0x73, 0xaa, 0x0e, 0x4c, 0x6b, 0x05, 0x27, 0x96, 0x7c, 0x09, 0x94, 0xe3, 0xf3, 0x28, 0xb8, -0x1a, 0x4e, 0x80, 0x7b, 0x5a, 0x33, 0x97, 0xe9, 0xc6, 0x34, 0x15, 0xc8, 0x2d, 0x1e, 0x28, 0x46, -0x6c, 0x58, 0x65, 0x30, 0xdd, 0x62, 0xae, 0xa6, 0x69, 0x39, 0xd4, 0xc3, 0x91, 0x3a, 0x97, 0xad, -0xf3, 0x69, 0x2d, 0xd3, 0x43, 0xc0, 0x0c, 0xd8, 0x0e, 0x3d, 0xed, 0x57, 0xc4, 0xb2, 0x6b, 0x50, -0x8e, 0x3d, 0x5a, 0x0a, 0xb2, 0x1e, 0xae, 0x88, 0x96, 0x60, 0x1f, 0x1a, 0xab, 0xe0, 0x44, 0xf3, -0x9a, 0x82, 0x0f, 0x96, 0x0e, 0x2e, 0x87, 0x07, 0xaf, 0xc1, 0x31, 0xd3, 0xbe, 0x01, 0x71, 0x4a, -0x27, 0xd7, 0x0e, 0x1f, 0xf0, 0x57, 0x0f, 0x50, 0xcb, 0xdb, 0x37, 0xb4, 0xf9, 0xb6, 0x2d, 0x47, -0x3e, 0xbf, 0x17, 0xcb, 0x31, 0x23, 0x1f, 0xae, 0xd5, 0xf2, 0x97, 0x51, 0xfe, 0xba, 0xe9, 0xf0, -0x20, 0x34, 0xd2, 0x51, 0x50, 0x27, 0x9a, 0xfb, 0x0b, 0x3e, 0x5c, 0x3a, 0xd8, 0xf8, 0x35, 0xa5, -0xec, 0xa6, 0x5c, 0x48, 0x21, 0x0f, 0x52, 0x98, 0x5a, 0x5a, 0x05, 0x17, 0x4d, 0x75, 0x5c, 0xb1, -0x6c, 0xda, 0x7c, 0x34, 0x81, 0x63, 0x27, 0xee, 0xc9, 0xec, 0xef, 0x6b, 0x83, 0xcb, 0x7d, 0xf0, -0xa7, 0xea, 0x5d, 0xa9, 0x94, 0xa0, 0x3c, 0xff, 0x09, 0xd0, 0x4f, 0x0b, 0x81, 0x9d, 0xa9, 0x8e, -0x29, 0x84, 0x69, 0xd1, 0xcc, 0xb1, 0x16, 0x7e, 0xb6, 0xf2, 0xb3, 0x8d, 0x53, 0xd8, 0x99, 0x2e, -0x8b, 0x88, 0xbe, 0x19, 0xc7, 0xc5, 0x6a, 0x05, 0xef, 0x95, 0x9e, 0x0e, 0x8f, 0xa9, 0xb4, 0x76, -0xf8, 0x02, 0xe2, 0x7a, 0x1d, 0x14, 0x0b, 0xfe, 0x81, 0xad, 0xc0, 0x1e, 0x84, 0xf5, 0x50, 0x4a, -0x33, 0x7b, 0x98, 0xba, 0x2c, 0x5b, 0x2f, 0x8e, 0x2f, 0xd2, 0xd6, 0xd6, 0xa0, 0x86, 0x37, 0x0d, -0xf4, 0x91, 0x5b, 0x17, 0x0c, 0xdb, 0x41, 0x7c, 0xdf, 0xad, 0x2c, 0x45, 0xf9, 0x87, 0x3a, 0x83, -0xf4, 0x71, 0xcc, 0x3c, 0x73, 0x34, 0xe1, 0x83, 0xb7, 0x4f, 0x3f, 0x1c, 0x07, 0x31, 0xc3, 0x4f, -0x5f, 0x7f, 0x2b, 0x55, 0xce, 0x66, 0xfe, 0xca, 0x5b, 0x16, 0xbf, 0x66, 0x00, 0x1b, 0x6a, 0x17, -0xad, 0xe5, 0x4b, 0xa1, 0x8e, 0xe7, 0x50, 0x8b, 0xc2, 0x4f, 0x40, 0x20, 0x6a, 0x45, 0x19, 0x48, -0x79, 0xe9, 0xb4, 0xe8, 0x6a, 0xbb, 0x5b, 0xfa, 0x18, 0xd3, 0x41, 0x2c, 0x28, 0x43, 0xea, 0xb3, -0xcb, 0x7c, 0xfc, 0x26, 0xc5, 0xf4, 0xe5, 0xcb, 0x20, 0x80, 0x74, 0xee, 0x03, 0x73, 0x94, 0xf6, -0xcb, 0xd8, 0x14, 0xe4, 0x1b, 0xa7, 0xc1, 0x31, 0x07, 0xe1, 0x32, 0x22, 0xce, 0x6e, 0x2d, 0x9f, -0x47, 0x27, 0x89, 0x21, 0x24, 0xc6, 0xa9, 0x73, 0x20, 0xa0, 0x9a, 0xf1, 0xb7, 0x8e, 0x7d, 0xa8, -0xb8, 0x69, 0x16, 0x19, 0xdc, 0x04, 0x25, 0x52, 0xc3, 0x5b, 0xf8, 0x5e, 0x17, 0xb3, 0xc8, 0xee, -0xd4, 0x18, 0xbf, 0xbf, 0xc6, 0x70, 0x4c, 0x0e, 0x60, 0xad, 0x69, 0x28, 0x02, 0x5b, 0x21, 0x80, -0x57, 0x5d, 0x45, 0x38, 0xf2, 0x4c, 0xb2, 0x8a, 0x28, 0x48, 0x2b, 0x79, 0x21, 0x87, 0x24, 0x8a, -0x30, 0xad, 0x2c, 0xa5, 0xce, 0x5f, 0xe6, 0x97, 0x3e, 0x0e, 0xbe, 0xb8, 0xbc, 0x09, 0xed, 0x3a, -0x6b, 0x55, 0x88, 0xd7, 0x1f, 0xee, 0xec, 0xaa, 0xdd, 0x14, 0x32, 0xfa, 0x0a, 0xe9, 0x5b, 0x4e, -0x3d, 0xc5, 0x17, 0x5d, 0x07, 0xff, 0xf6, 0x36, 0x56, 0x0d, 0x3f, 0xba, 0xf4, 0x45, 0x7a, 0xba, -0x94, 0xa4, 0xfd, 0xbf, 0xbd, 0x89, 0xf4, 0x73, 0xa4, 0x99, 0x42, 0x7e, 0x0f, 0xf4, 0x75, 0xf3, -0x21, 0x50, 0xeb, 0xd2, 0xed, 0xa1, 0xbd, 0xec, 0x8f, 0xef, 0x49, 0xb7, 0xaa, 0x8a, 0xf1, 0x26, -0x7e, 0xcd, 0x12, 0x62, 0x2f, 0x83, 0xe7, 0x30, 0xda, 0x7a, 0xc0, 0x70, 0xb1, 0x7f, 0x4a, 0x3d, -0x61, 0xbd, 0xdc, 0xa7, 0x42, 0x6a, 0xbe, 0x86, 0xfb, 0x5a, 0x67, 0x73, 0x39, 0xf6, 0x8f, 0x77, -0x1a, 0xdc, 0xd4, 0xe6, 0x43, 0xd9, 0x70, 0x93, 0xb2, 0x14, 0x36, 0xb0, 0x5d, 0x5b, 0xec, 0x7d, -0x02, 0xc8, 0x26, 0x9b, 0x06, 0x3f, 0x8d, 0xcb, 0xef, 0x6e, 0xb9, 0xfa, 0x09, 0x58, 0x67, 0xa6, -0x6f, 0x38, 0x16, 0x22, 0x4f, 0x91, 0xa2, 0x95, 0x2c, 0x67, 0xc4, 0x57, 0xfa, 0xfa, 0x2e, 0x05, -0xf1, 0xf5, 0xd8, 0x95, 0xa8, 0x87, 0x9c, 0x5e, 0x27, 0x34, 0x95, 0xd3, 0x43, 0x33, 0x47, 0x07, -0xe8, 0xfe, 0xc0, 0x35, 0xb4, 0xbb, 0x66, 0x21, 0xda, 0x68, 0x8b, 0x62, 0xde, 0xc0, 0xcf, 0x43, -0xcb, 0xe0, 0x31, 0x9a, 0x57, 0x6a, 0x3e, 0xf7, 0xf9, 0x2e, 0x5e, 0xa1, 0xb1, 0x73, 0x39, 0x45, -0xfc, 0x85, 0xc9, 0x32, 0x78, 0x81, 0xe2, 0x44, 0x38, 0xe2, 0x76, 0x91, 0x7d, 0xba, 0xd6, 0xaf, -0xd4, 0xd5, 0xe6, 0xcb, 0x7d, 0xdc, 0x0a, 0x5a, 0x8d, 0x39, 0x4d, 0xed, 0xd0, 0x74, 0xa2, 0xd1, -0x99, 0xa3, 0x32, 0xdd, 0x41, 0x7b, 0x97, 0xb5, 0xbb, 0x7e, 0xe6, 0xa8, 0x95, 0xee, 0x46, 0x7c, -0xbf, 0x04, 0xef, 0x48, 0x3f, 0x09, 0x82, 0xc8, 0x3d, 0x73, 0x54, 0x1f, 0xc4, 0xf7, 0x44, 0xd6, -0xdb, 0x36, 0x5a, 0x08, 0x1b, 0xd0, 0xa2, 0xe9, 0x15, 0xed, 0xc6, 0xb6, 0xac, 0x17, 0xf4, 0xee, -0x1d, 0xa0, 0x50, 0xd4, 0xd8, 0xf4, 0x08, 0xcd, 0x06, 0xfe, 0x82, 0xa5, 0x3f, 0x3b, 0xef, 0x8a, -0x63, 0x33, 0x81, 0xd7, 0x6d, 0x62, 0x0d, 0x21, 0xed, 0x41, 0xb4, 0x7c, 0x99, 0x64, 0xa1, 0x9d, -0x76, 0x33, 0x47, 0x25, 0x6e, 0x3f, 0xcf, 0x8f, 0xef, 0xfc, 0x94, 0xec, 0xc8, 0xbe, 0x71, 0x18, -0xda, 0x80, 0xa5, 0xdd, 0xd4, 0xba, 0x11, 0xed, 0xd0, 0x9b, 0xb6, 0xfb, 0x62, 0x67, 0x11, 0x86, -0xc7, 0xb2, 0x33, 0xb7, 0x58, 0xc2, 0x63, 0x18, 0xf2, 0xc2, 0xb8, 0x90, 0x17, 0xa8, 0x8c, 0xab, -0x7c, 0x50, 0x73, 0x15, 0xad, 0xb1, 0x60, 0xa9, 0xc9, 0x64, 0xc0, 0x0d, 0x47, 0xdb, 0x37, 0x0a, -0xcf, 0xa3, 0xe9, 0x79, 0x3c, 0x07, 0x5a, 0x4b, 0xa8, 0x57, 0x96, 0x55, 0xc1, 0xd5, 0xcd, 0x70, -0x0f, 0x42, 0xbf, 0x09, 0xed, 0x8c, 0x0d, 0x31, 0x80, 0x7b, 0x6a, 0x5c, 0xec, 0x89, 0x63, 0x3d, -0xeb, 0x0d, 0xef, 0x22, 0x97, 0xbc, 0x37, 0x34, 0x18, 0xda, 0xfd, 0xce, 0xd6, 0x83, 0xcd, 0xa1, -0xdd, 0x7d, 0xf2, 0x83, 0x89, 0xf7, 0xb7, 0x7a, 0x5d, 0xd0, 0x31, 0xcf, 0x47, 0xb2, 0x66, 0x24, -0xc0, 0x7a, 0xad, 0xa5, 0x5a, 0x42, 0x0d, 0x72, 0xd9, 0x81, 0xc0, 0x51, 0x3f, 0xa6, 0xbf, 0x2f, -0x34, 0x78, 0x70, 0x09, 0x44, 0x0f, 0xfa, 0xab, 0x02, 0x7d, 0xba, 0xbd, 0x89, 0x3f, 0xdf, 0x55, -0x05, 0xc7, 0x48, 0x47, 0x91, 0x06, 0x83, 0x68, 0x5f, 0x34, 0xbc, 0xd3, 0x32, 0x18, 0x3c, 0x12, -0xa8, 0x0e, 0xfc, 0xee, 0x55, 0xa7, 0xe5, 0xe0, 0x86, 0xc1, 0x40, 0xe3, 0xc7, 0x5e, 0x70, 0x5a, -0x8e, 0x0c, 0x1e, 0x1c, 0x2c, 0xcf, 0x7b, 0xe7, 0xc7, 0xef, 0xf9, 0x12, 0x0d, 0x08, 0xcd, 0xe0, -0x60, 0x00, 0xa5, 0xfb, 0x3a, 0x31, 0x53, 0x48, 0xfe, 0x5e, 0x35, 0x4d, 0xb2, 0x1e, 0x65, 0xb2, -0xcf, 0x83, 0xd8, 0xd3, 0xda, 0xb6, 0x0d, 0xdb, 0xf6, 0x6e, 0x39, 0xcd, 0x9b, 0xea, 0xc4, 0x37, -0x27, 0xed, 0x1b, 0xf9, 0xfb, 0x12, 0x25, 0x6a, 0xbe, 0x8c, 0xbe, 0xce, 0x7f, 0x57, 0x7c, 0xf7, -0x91, 0x40, 0x0a, 0xbf, 0x8c, 0xb4, 0xe5, 0x77, 0x83, 0x2f, 0xdd, 0x38, 0x1c, 0x24, 0xcf, 0x5b, -0xc7, 0x6e, 0x58, 0x06, 0x27, 0xc0, 0x1b, 0xd5, 0x07, 0xf4, 0xaa, 0xdc, 0x27, 0x5f, 0x16, 0x84, -0x87, 0x50, 0xf7, 0xb4, 0x22, 0x2f, 0x5c, 0x12, 0x46, 0x7b, 0x0c, 0x47, 0xa2, 0x8d, 0xbe, 0x4f, -0x58, 0x26, 0xb7, 0x25, 0x8e, 0x0e, 0xa1, 0xce, 0x80, 0x7c, 0x02, 0xf9, 0xd9, 0x32, 0xa1, 0xc3, -0xf1, 0x2c, 0xc4, 0xbb, 0x8a, 0x7e, 0x64, 0x1d, 0x5a, 0x72, 0x03, 0xfc, 0xdd, 0x5c, 0x5d, 0x99, -0xd7, 0x0c, 0xfc, 0xd4, 0x74, 0x45, 0x1c, 0x49, 0xf1, 0x5a, 0x3a, 0x79, 0xfc, 0xdd, 0x2d, 0x54, -0xbb, 0xe4, 0x5b, 0x69, 0x76, 0xd2, 0xae, 0x75, 0xdf, 0xbb, 0x5b, 0xc5, 0x3c, 0x98, 0xd2, 0x74, -0x9b, 0xa4, 0x98, 0x3e, 0xdc, 0x52, 0x07, 0xc1, 0xc6, 0xba, 0xc6, 0x2a, 0xd4, 0xeb, 0xea, 0xf3, -0xd6, 0x14, 0x9e, 0xe8, 0x3e, 0xdc, 0x7c, 0xb4, 0xa9, 0xae, 0xe0, 0xd5, 0xa6, 0x1b, 0x1a, 0xa1, -0xb2, 0x16, 0xe1, 0xaf, 0xb0, 0xba, 0xcd, 0x1f, 0x3c, 0xe3, 0x68, 0x9a, 0xe7, 0xdb, 0xd4, 0xd4, -0x0f, 0xf5, 0x72, 0x85, 0xbf, 0xed, 0x1e, 0xb7, 0xed, 0xc4, 0xe3, 0x23, 0x4d, 0xf5, 0x05, 0xc3, -0x4d, 0x75, 0x2b, 0xa1, 0xf2, 0xcd, 0xe1, 0x03, 0xc3, 0x28, 0xe5, 0x1f, 0x8d, 0xeb, 0x8f, 0x3e, -0x8a, 0xea, 0x5f, 0xb3, 0xd8, 0xef, 0x4f, 0x3c, 0x9f, 0xe6, 0x88, 0x36, 0x0d, 0x7b, 0xcd, 0x0e, -0xeb, 0xfb, 0x4f, 0x04, 0xfd, 0xc3, 0x7e, 0x84, 0xfe, 0x51, 0xec, 0x53, 0x0f, 0x5c, 0xfb, 0xce, -0xb3, 0x74, 0xba, 0xec, 0xbd, 0xb3, 0x91, 0x53, 0x3f, 0x7c, 0xcd, 0x5c, 0x78, 0x04, 0x71, 0xf8, -0x31, 0x63, 0xe7, 0x13, 0xc6, 0xd9, 0x5f, 0x2e, 0xa3, 0xef, 0x4a, 0xce, 0xe0, 0xaf, 0x1e, 0x3e, -0xc5, 0x5f, 0x03, 0x7c, 0x86, 0xbf, 0x46, 0xf8, 0x1c, 0x7f, 0x4d, 0x70, 0xd6, 0xac, 0x83, 0xfc, -0x58, 0x0d, 0xf2, 0x4f, 0x94, 0xfb, 0xb7, 0x54, 0x72, 0xcc, 0xc7, 0x1c, 0xf3, 0x09, 0x96, 0xf3, -0x17, 0x2e, 0xe7, 0x0c, 0x97, 0xf3, 0x29, 0x97, 0xf3, 0x19, 0x97, 0xf3, 0x39, 0x97, 0x73, 0x56, -0x50, 0x2a, 0x6a, 0x51, 0x45, 0xde, 0x7a, 0xdd, 0xf1, 0x12, 0x0f, 0x5c, 0x1d, 0x73, 0x20, 0x4c, -0x52, 0x8f, 0xf4, 0xce, 0x13, 0xe5, 0x52, 0xdb, 0x5a, 0xc5, 0x1f, 0x1e, 0xe8, 0xd2, 0xfb, 0x8f, -0xc3, 0x15, 0x8a, 0xf9, 0x44, 0x62, 0x64, 0xad, 0xd1, 0x27, 0x7d, 0x4a, 0x74, 0x26, 0xd6, 0x60, -0xc5, 0x7a, 0x8b, 0xb6, 0x36, 0xf3, 0x18, 0xf3, 0x84, 0x96, 0xf1, 0x25, 0x62, 0xd8, 0x07, 0xff, -0xe1, 0x12, 0x5f, 0xd0, 0x38, 0x4f, 0x3e, 0x71, 0x9e, 0xcf, 0x20, 0xb2, 0x19, 0xc7, 0x49, 0x60, -0x0a, 0x86, 0x40, 0x55, 0x86, 0x07, 0x95, 0x65, 0x78, 0x50, 0x3e, 0xf1, 0x20, 0x2d, 0xc5, 0x0b, -0xbc, 0x7e, 0x69, 0x27, 0x8a, 0x3c, 0x0d, 0x28, 0x2d, 0x16, 0x5d, 0xb6, 0x1c, 0xd5, 0xab, 0xa3, -0x1e, 0xa4, 0x4b, 0x0a, 0xfb, 0x44, 0xc1, 0x51, 0xfc, 0x00, 0x5b, 0x60, 0x70, 0x6d, 0x00, 0xf5, -0x99, 0x9f, 0xb3, 0x1e, 0x7d, 0xcc, 0x03, 0x44, 0x65, 0x42, 0xbb, 0xfd, 0x64, 0x09, 0x6a, 0x62, -0xa8, 0xe5, 0xd0, 0x2e, 0x25, 0x5a, 0xe5, 0x22, 0x1e, 0x1a, 0x3d, 0x47, 0x31, 0x1f, 0x9d, 0x45, -0xbd, 0x7f, 0x13, 0xcf, 0x8b, 0xdc, 0x23, 0xd2, 0x8e, 0xd6, 0x63, 0x1d, 0xf5, 0x54, 0xa3, 0x38, -0x1d, 0x48, 0xf3, 0x5b, 0x6c, 0xf1, 0xc8, 0xc4, 0xa7, 0x70, 0x54, 0xd3, 0x9a, 0xda, 0x49, 0x5e, -0x0d, 0xed, 0x8d, 0xf9, 0x90, 0xab, 0x6e, 0xe0, 0x72, 0xa2, 0xc4, 0xa7, 0x84, 0x6e, 0xe8, 0x4d, -0x30, 0xcf, 0x0a, 0x80, 0xbe, 0x7d, 0xa3, 0x3a, 0xf9, 0xab, 0xb9, 0x9a, 0xd8, 0x11, 0x92, 0x5e, -0xf5, 0xc4, 0x1a, 0xe6, 0xe3, 0x18, 0x54, 0xd1, 0x76, 0x5c, 0xe4, 0x5a, 0x26, 0x95, 0xd4, 0x79, -0xe0, 0xa6, 0x30, 0x8e, 0xa4, 0x98, 0x0d, 0x35, 0x6c, 0xfb, 0x4a, 0x31, 0xea, 0x7e, 0xaa, 0xea, -0x91, 0x16, 0x7e, 0xca, 0xad, 0xfc, 0xe9, 0x6a, 0xf9, 0x9d, 0x27, 0xfb, 0xec, 0xef, 0x3c, 0xf5, -0x3c, 0x72, 0xc1, 0xa8, 0x71, 0x07, 0xf2, 0xc3, 0x58, 0x88, 0x67, 0xd3, 0xb7, 0x54, 0xe9, 0x0e, -0x34, 0x78, 0xe5, 0xf9, 0xbe, 0x17, 0x5f, 0x44, 0x78, 0xfb, 0x73, 0x7b, 0x24, 0xbb, 0xa6, 0x86, -0xfd, 0xb2, 0xa1, 0x7d, 0x63, 0x0c, 0x4d, 0xbe, 0x6b, 0x82, 0x70, 0x1b, 0x8e, 0xce, 0x04, 0xe2, -0x36, 0x1f, 0xee, 0xc5, 0xdf, 0x42, 0xb8, 0xef, 0x36, 0x98, 0xa5, 0x7b, 0xeb, 0x0e, 0x37, 0x72, -0xe6, 0x3f, 0xfc, 0xea, 0xe8, 0x1c, 0xe1, 0xa7, 0xc5, 0xd3, 0x00, 0xd5, 0x81, 0x06, 0xb4, 0x1a, -0x42, 0x68, 0x15, 0x06, 0xf1, 0xb7, 0x9e, 0xe6, 0x42, 0x30, 0xbc, 0x11, 0x7c, 0xcd, 0x27, 0x21, -0xcf, 0xd3, 0x02, 0xc1, 0xe6, 0x8f, 0x20, 0xe4, 0xb0, 0x38, 0x67, 0xa3, 0x44, 0x7e, 0xb8, 0x17, -0x02, 0x8d, 0x81, 0x26, 0x9a, 0x37, 0x43, 0xcc, 0x55, 0x8c, 0x0c, 0x6e, 0x7b, 0x16, 0x7c, 0x5d, -0x5e, 0xf2, 0x47, 0xeb, 0x41, 0xab, 0x15, 0x42, 0x5e, 0xfd, 0x48, 0x00, 0xed, 0xb4, 0x96, 0x1b, -0x1a, 0x20, 0x42, 0x3b, 0x15, 0x3c, 0x56, 0x71, 0xee, 0x23, 0x5a, 0x85, 0xb5, 0xbc, 0x93, 0x0a, -0xbb, 0x11, 0x2d, 0x00, 0x98, 0x05, 0xf2, 0x6c, 0x90, 0x0e, 0x37, 0xdd, 0x35, 0x9b, 0xa4, 0x91, -0x58, 0xff, 0x7b, 0xb3, 0x71, 0x83, 0xaf, 0x6d, 0x30, 0x6e, 0xdf, 0x36, 0x18, 0x7d, 0x0c, 0xf9, -0x81, 0xcd, 0x09, 0x07, 0x13, 0xd7, 0xaf, 0x77, 0x01, 0x59, 0x5b, 0x23, 0x89, 0xeb, 0x6f, 0x37, -0x83, 0x31, 0x08, 0xf6, 0xb6, 0x88, 0xaa, 0xff, 0xe7, 0xd7, 0x02, 0x41, 0x6c, 0x8d, 0xfe, 0x85, -0x67, 0xa1, 0x7e, 0x05, 0xa4, 0xba, 0xfe, 0xf0, 0x6a, 0x5b, 0x03, 0xe6, 0xd0, 0x21, 0x34, 0xb5, -0x2b, 0x8e, 0x3a, 0xfd, 0xe3, 0x68, 0x40, 0x42, 0xec, 0xd1, 0x49, 0xf3, 0x27, 0x05, 0x3d, 0x24, -0x8d, 0xf4, 0xdd, 0x62, 0x9c, 0x4f, 0x30, 0xce, 0xae, 0xd7, 0xd2, 0x6c, 0x1c, 0xd2, 0xa7, 0x82, -0x9c, 0xde, 0x89, 0xbd, 0xe5, 0x56, 0xa6, 0x81, 0xb9, 0x1c, 0xde, 0x78, 0x02, 0xac, 0x3d, 0x50, -0xe5, 0x82, 0x37, 0xb7, 0xaf, 0xed, 0xec, 0xa8, 0x81, 0x1e, 0x50, 0x67, 0xb9, 0xe1, 0xcd, 0x84, -0xb3, 0xf1, 0x77, 0xc3, 0xbf, 0x7b, 0x15, 0xff, 0xde, 0x47, 0x39, 0xd6, 0x54, 0x86, 0x3a, 0x4e, -0xa0, 0x71, 0x92, 0x1b, 0xf4, 0xb4, 0x63, 0xcd, 0x05, 0x87, 0x12, 0x23, 0xeb, 0xca, 0x97, 0xc0, -0x5b, 0x97, 0xdf, 0x6b, 0xa6, 0x79, 0x9f, 0xb7, 0x2e, 0x5b, 0x6f, 0x96, 0xf8, 0x7e, 0xbb, 0x59, -0xae, 0xf6, 0xd7, 0x4a, 0x87, 0x1a, 0x68, 0x8e, 0xd0, 0x6b, 0xd9, 0x86, 0xa5, 0x77, 0x6e, 0x0b, -0x07, 0x62, 0x48, 0xd5, 0x91, 0x9d, 0x1f, 0xce, 0x42, 0xea, 0x12, 0xf3, 0x0f, 0x92, 0x98, 0xa7, -0xa3, 0x99, 0x8e, 0x29, 0x2b, 0xc1, 0x0c, 0x8b, 0x08, 0xbe, 0x29, 0xe4, 0x2d, 0xba, 0x2c, 0x0e, -0x0e, 0x78, 0x1f, 0xad, 0xee, 0xfd, 0xa3, 0xa4, 0xb5, 0x34, 0x1c, 0x87, 0x2d, 0x55, 0xbb, 0x80, -0xee, 0x8f, 0xe3, 0x1d, 0xed, 0x5d, 0xf8, 0x99, 0x77, 0x97, 0xee, 0x78, 0x5b, 0x82, 0xbc, 0xce, -0x44, 0x0f, 0x52, 0x7b, 0xcf, 0x56, 0xf0, 0xef, 0x12, 0x94, 0xa2, 0x46, 0x5e, 0x4b, 0x5d, 0x12, -0x07, 0xf6, 0xfa, 0xf7, 0xc6, 0x54, 0x9f, 0xc4, 0xfe, 0xf9, 0x7e, 0xf0, 0xff, 0xcb, 0x09, 0x29, -0xca, 0xf5, 0x9a, 0x83, 0xef, 0xb6, 0xd6, 0x8d, 0xe4, 0x83, 0x66, 0xb7, 0x2e, 0x91, 0xdd, 0xdf, -0xb0, 0x39, 0x2e, 0x8d, 0x4b, 0x63, 0xd1, 0x52, 0x64, 0x29, 0x71, 0x33, 0xc9, 0x6c, 0xfa, 0x26, -0xf7, 0x07, 0x9b, 0xb3, 0xde, 0x6c, 0x50, 0xc6, 0xba, 0xa7, 0xf6, 0xc3, 0xd8, 0x96, 0x6e, 0x58, -0x30, 0x35, 0x0c, 0x6d, 0xf4, 0xfc, 0x83, 0xc7, 0x20, 0x82, 0xa3, 0xe0, 0x5b, 0x30, 0x97, 0xc7, -0x42, 0x4b, 0xdc, 0x80, 0xd6, 0x47, 0x30, 0xeb, 0x1f, 0xe6, 0x2a, 0x4c, 0xf3, 0xf8, 0x27, 0x30, -0x74, 0xd5, 0x1c, 0x58, 0x47, 0xcf, 0x3f, 0xd8, 0x01, 0x89, 0xcb, 0x29, 0xe5, 0x6d, 0x71, 0x63, -0xc3, 0x07, 0xb0, 0x3a, 0x93, 0x72, 0x51, 0x5a, 0x8b, 0xe4, 0x1c, 0x07, 0xa1, 0xe7, 0xaa, 0x30, -0x74, 0x73, 0x8e, 0x5d, 0xb0, 0x8c, 0x73, 0x2c, 0xc9, 0xfa, 0x66, 0x8c, 0xcb, 0x98, 0x57, 0xad, -0x58, 0x0e, 0x6e, 0xf2, 0x9c, 0xc3, 0x27, 0x25, 0xd3, 0xd3, 0x29, 0x3b, 0x6b, 0x8d, 0x48, 0xff, -0x09, 0xd2, 0x0e, 0xb3, 0x5a, 0x23, 0xde, 0x0b, 0x59, 0x67, 0xe4, 0xf7, 0x43, 0x20, 0xd2, 0xa1, -0x8e, 0xf4, 0xa3, 0x0b, 0xd2, 0x41, 0x6e, 0xba, 0xf8, 0x3f, 0x36, 0x41, 0xba, 0xec, 0xac, 0xf7, -0x6e, 0xe4, 0x5b, 0x03, 0xd0, 0x81, 0xbf, 0x2e, 0x88, 0x0a, 0x6d, 0x4f, 0xf6, 0xfd, 0x48, 0xdb, -0x41, 0x5a, 0x08, 0xb4, 0xcf, 0x55, 0x4a, 0x2d, 0x7a, 0x91, 0xbd, 0x31, 0x9d, 0x08, 0x22, 0xb7, -0xb0, 0xfa, 0xae, 0x48, 0xb5, 0x09, 0x4f, 0x48, 0xef, 0xe1, 0xfb, 0x7b, 0x9c, 0xa7, 0x5f, 0xd3, -0x79, 0xfa, 0x59, 0x47, 0xed, 0xdf, 0xee, 0x8b, 0x3a, 0x66, 0x8e, 0xa2, 0x25, 0x92, 0x1b, 0x62, -0xef, 0xb5, 0x0c, 0x0f, 0xf6, 0x98, 0x91, 0x12, 0x8c, 0xcc, 0x2b, 0x8f, 0xd3, 0x8c, 0x14, 0xf1, -0x9f, 0xa8, 0x1c, 0x57, 0xb0, 0xb4, 0x37, 0x35, 0x2e, 0x02, 0x07, 0x50, 0x2e, 0xf7, 0x48, 0x21, -0xff, 0xb8, 0xf5, 0xfc, 0xb7, 0xe2, 0xad, 0xe3, 0xf9, 0x0b, 0x87, 0x76, 0xc5, 0xed, 0x17, 0xe1, -0x3a, 0xeb, 0x91, 0x83, 0x91, 0x07, 0xc6, 0x2e, 0xa5, 0xb9, 0xaa, 0x5e, 0x52, 0x02, 0xe0, 0x1d, -0x40, 0x3d, 0xd9, 0xdc, 0x7c, 0x1c, 0xe4, 0xa9, 0x2d, 0xc8, 0x19, 0x97, 0xd1, 0x17, 0x69, 0xd5, -0xd2, 0xfc, 0x00, 0x71, 0x51, 0x7c, 0x1b, 0x42, 0x2b, 0x7b, 0xa8, 0x0d, 0xda, 0xfd, 0xa8, 0x4f, -0x9a, 0xa3, 0x07, 0x66, 0xf6, 0xc3, 0x06, 0xf0, 0x05, 0x96, 0x22, 0x33, 0x7d, 0x1f, 0x82, 0x53, -0x43, 0xd0, 0x37, 0x93, 0xac, 0xaa, 0xe0, 0x4c, 0xb2, 0x83, 0x9a, 0x90, 0xcf, 0x76, 0xb1, 0x9e, -0x97, 0xc8, 0xd5, 0xf8, 0x12, 0x47, 0x48, 0x17, 0xbc, 0x0a, 0xeb, 0x84, 0xf2, 0x96, 0xb7, 0x17, -0xae, 0x13, 0xdf, 0x1d, 0x57, 0xac, 0xe4, 0x73, 0x45, 0xca, 0xb4, 0x33, 0x43, 0xf8, 0x2d, 0x59, -0x3b, 0xee, 0xad, 0xaa, 0x22, 0xfd, 0x95, 0x21, 0xef, 0x5d, 0xa9, 0x32, 0x7b, 0xf3, 0x70, 0x64, -0x99, 0x11, 0x2f, 0xef, 0xc5, 0x6c, 0x33, 0x5f, 0xc1, 0x52, 0x17, 0xce, 0xdc, 0x8b, 0xbf, 0x8b, -0xd4, 0x49, 0x56, 0x9f, 0x1e, 0x16, 0x17, 0x5b, 0xfd, 0xe0, 0x5b, 0x6c, 0xfb, 0x30, 0x84, 0x5a, -0xd9, 0x0d, 0x09, 0x3f, 0x49, 0xa6, 0xd3, 0xed, 0x1a, 0x97, 0x3f, 0xad, 0xad, 0x23, 0x06, 0xb1, -0x84, 0xd0, 0x2c, 0x34, 0x1c, 0x6a, 0x3c, 0xd0, 0xe6, 0x5d, 0x09, 0x0b, 0x6a, 0x57, 0xc2, 0x4d, -0xa8, 0x37, 0x2c, 0x42, 0x8e, 0xbf, 0x18, 0x6b, 0xf1, 0x55, 0x4c, 0x93, 0x2c, 0x55, 0xb3, 0xe7, -0x35, 0x1f, 0xd8, 0x3b, 0x2f, 0x34, 0xf2, 0xe2, 0xbf, 0xfe, 0x3a, 0x5a, 0xf1, 0x42, 0xa8, 0xdb, -0xb9, 0xbd, 0xb9, 0x5b, 0xa9, 0x6b, 0xac, 0x6f, 0xf1, 0xea, 0x42, 0xc3, 0xce, 0x82, 0x83, 0xf7, -0x6c, 0x1b, 0xec, 0xb2, 0xcf, 0xfd, 0xcc, 0x0c, 0xff, 0xf3, 0xb5, 0xbf, 0xdb, 0x13, 0x5a, 0x17, -0xda, 0x13, 0x5c, 0xa7, 0x1a, 0xfb, 0x00, 0x39, 0x55, 0x10, 0xb5, 0x2d, 0x7b, 0x5d, 0x80, 0x56, -0x5d, 0xea, 0x66, 0x87, 0x67, 0x77, 0xe9, 0xe7, 0x7c, 0x08, 0x85, 0xde, 0x82, 0xe3, 0xbe, 0x5f, -0xbe, 0x54, 0xe7, 0xfb, 0xc3, 0x6f, 0x0e, 0xde, 0x5d, 0xe3, 0xc6, 0xf8, 0x06, 0x8c, 0xaf, 0xae, -0xf3, 0x87, 0xfd, 0xd9, 0xf8, 0x5f, 0x73, 0x7c, 0xb9, 0xe1, 0x8d, 0xbb, 0x27, 0x49, 0xb2, 0x01, -0x0a, 0xed, 0x26, 0xa4, 0xda, 0xc2, 0x87, 0xa0, 0xae, 0x31, 0x1c, 0x8c, 0x15, 0xef, 0x58, 0x7b, -0x8b, 0x31, 0x6c, 0x58, 0x01, 0xf2, 0xa4, 0x1d, 0x6b, 0x3b, 0xf0, 0xa9, 0x1b, 0x64, 0x7b, 0xd8, -0xd0, 0x65, 0x0e, 0x1a, 0xea, 0x1a, 0xd7, 0x48, 0xaa, 0x1d, 0xd3, 0x58, 0x76, 0xac, 0xfd, 0xfe, -0x2f, 0x43, 0xb7, 0x07, 0x1b, 0x11, 0x8a, 0x46, 0xaa, 0xd9, 0x38, 0x1b, 0x0a, 0x8f, 0xcf, 0x8e, -0x4b, 0x9b, 0x66, 0xcf, 0x82, 0xda, 0x3c, 0x7c, 0x0f, 0xe2, 0x7b, 0xb0, 0x6a, 0xf6, 0x81, 0x3d, -0x54, 0x2f, 0x5a, 0xd9, 0x85, 0xc7, 0xfd, 0x18, 0xeb, 0xaf, 0x82, 0x59, 0x66, 0x91, 0xba, 0xd6, -0x74, 0x3c, 0x78, 0xc8, 0x5f, 0x55, 0x10, 0xb7, 0xbe, 0xb3, 0x14, 0xa1, 0x6b, 0x8c, 0x45, 0x9e, -0x6f, 0x5e, 0xa9, 0x0f, 0xcc, 0x56, 0xf5, 0xb5, 0x79, 0xb7, 0xa5, 0xaa, 0x5a, 0xe6, 0xdd, 0x59, -0x1f, 0x9c, 0x77, 0xcf, 0x1f, 0x5f, 0xf3, 0xd3, 0x79, 0xcd, 0x1d, 0xfc, 0xad, 0x67, 0x3d, 0x4a, -0xa2, 0x6a, 0x4f, 0xb3, 0x90, 0x19, 0x23, 0xf7, 0x1c, 0x4c, 0xd0, 0x77, 0xba, 0x1c, 0x53, 0x8b, -0xfd, 0x56, 0x2d, 0x42, 0xdf, 0x48, 0xd4, 0x23, 0x95, 0xa8, 0x76, 0x2a, 0xed, 0x9f, 0x5f, 0x53, -0x8d, 0xb5, 0x79, 0xf4, 0x7e, 0x5b, 0xca, 0x63, 0x44, 0x2e, 0xaf, 0xa7, 0xdf, 0xb1, 0xd3, 0x33, -0x7f, 0x85, 0xbd, 0x15, 0x9c, 0xf9, 0x1a, 0xfe, 0x36, 0x79, 0xf5, 0x41, 0xd4, 0x65, 0xaa, 0xe0, -0x00, 0xea, 0x7a, 0x33, 0x5f, 0xc4, 0x90, 0x8e, 0x9c, 0xe7, 0xc5, 0xf8, 0xbc, 0x4c, 0x7b, 0x56, -0x47, 0xe8, 0x89, 0xfa, 0x39, 0xda, 0xba, 0x11, 0xe1, 0xd5, 0xc7, 0x65, 0x9e, 0xb5, 0x2a, 0xd0, -0x7a, 0x3f, 0x00, 0xfe, 0xc2, 0x57, 0xeb, 0xfc, 0x6b, 0x00, 0x65, 0xe0, 0x92, 0x91, 0x41, 0x8f, -0x0f, 0xaa, 0x51, 0x4a, 0x58, 0x5d, 0x7e, 0x71, 0x76, 0xb3, 0x27, 0x08, 0xb5, 0x73, 0xcf, 0x8d, -0x3d, 0x52, 0x5b, 0x20, 0x07, 0xcf, 0xa7, 0x50, 0x6a, 0x3e, 0x52, 0x69, 0x78, 0xeb, 0xf6, 0xb7, -0xee, 0xe0, 0x5d, 0x05, 0xde, 0x3e, 0x98, 0x97, 0xe8, 0x19, 0xdb, 0x9e, 0xe8, 0x04, 0x58, 0xc7, -0x30, 0xb6, 0x88, 0x39, 0xc3, 0xf6, 0x8d, 0xdb, 0x6e, 0x5f, 0x69, 0x21, 0xdf, 0xf4, 0x94, 0x26, -0x6a, 0xf5, 0xea, 0xb5, 0x11, 0xde, 0xa3, 0x8a, 0x1d, 0xd1, 0x1c, 0xc2, 0x23, 0xbc, 0x47, 0xb5, -0x8c, 0x0c, 0xf2, 0x38, 0x68, 0xf1, 0x16, 0x30, 0x44, 0xbe, 0x2b, 0x3f, 0x42, 0x33, 0xf8, 0xed, -0xd3, 0xad, 0xe9, 0x3a, 0x46, 0xd6, 0x72, 0x7c, 0x68, 0xc2, 0xfb, 0x7c, 0xde, 0x51, 0x5a, 0x8f, -0x57, 0x88, 0xf7, 0x07, 0x59, 0xdb, 0x6e, 0x67, 0xbd, 0xa3, 0x68, 0xdb, 0xed, 0xdd, 0x90, 0xba, -0x89, 0xe0, 0x19, 0xdd, 0xc5, 0xbf, 0xda, 0x19, 0x0c, 0x19, 0x19, 0x69, 0x17, 0x6b, 0xe6, 0x6e, -0xfa, 0x5e, 0x1a, 0x7b, 0x00, 0x5b, 0x5e, 0xeb, 0xc2, 0x52, 0x2a, 0x3d, 0xd0, 0x52, 0x8d, 0x05, -0xc2, 0x2c, 0xa4, 0xf4, 0x00, 0x9d, 0xf4, 0x58, 0x3e, 0x43, 0xb2, 0xb0, 0x66, 0xff, 0x58, 0x11, -0xd6, 0x5b, 0xef, 0x47, 0x6d, 0x24, 0x52, 0xbb, 0x8c, 0xd6, 0x90, 0x90, 0x1a, 0x7c, 0x48, 0x1d, -0xbe, 0x2a, 0xeb, 0x4b, 0x2f, 0xbb, 0xfc, 0x5e, 0xdf, 0xfe, 0xbd, 0xbf, 0xdf, 0xeb, 0x95, 0xd3, -0xa1, 0x3d, 0xd2, 0xbd, 0xbe, 0x1a, 0xbf, 0xd7, 0x90, 0x7e, 0x7f, 0x63, 0x18, 0xa9, 0xa8, 0xa9, -0x1e, 0x0e, 0x37, 0xd3, 0xfa, 0xd7, 0x68, 0x35, 0xff, 0x2a, 0x3d, 0x85, 0x7b, 0x06, 0x94, 0x00, -0x4a, 0xbf, 0xb1, 0x95, 0x8b, 0xbd, 0x68, 0x5a, 0x71, 0xeb, 0x83, 0xaf, 0x0e, 0x28, 0x8d, 0x1c, -0x36, 0xe8, 0xf5, 0xb6, 0x8b, 0xb0, 0x26, 0x6f, 0xbe, 0xd6, 0xdb, 0x17, 0xe9, 0x55, 0x0d, 0xb3, -0x81, 0x2a, 0x5b, 0xc0, 0x67, 0x97, 0xc0, 0xa7, 0x13, 0x79, 0x7c, 0x1a, 0x7e, 0xe9, 0x5b, 0xf9, -0x3b, 0x62, 0xe6, 0x78, 0xe1, 0xb6, 0x3b, 0xa2, 0x16, 0x55, 0x8f, 0x23, 0x10, 0xaf, 0x26, 0x7d, -0x40, 0x26, 0x7b, 0x04, 0x29, 0x0c, 0x66, 0xe5, 0xcf, 0x3d, 0x77, 0xfe, 0x05, 0x75, 0xe1, 0x1a, -0x98, 0x24, 0xbf, 0x79, 0xfb, 0x9b, 0xb7, 0x0b, 0x2c, 0xb7, 0xa7, 0x7b, 0xd6, 0x47, 0xb0, 0x9e, -0xef, 0x35, 0xeb, 0x85, 0x57, 0x10, 0x2e, 0xbb, 0x27, 0x9d, 0x66, 0xe4, 0xae, 0xdc, 0x9e, 0xc9, -0xbc, 0xcf, 0xaf, 0x5c, 0xef, 0x31, 0x79, 0x0a, 0x44, 0xaf, 0x1c, 0xbd, 0xab, 0x4d, 0xe6, 0x9d, -0x47, 0x8f, 0x70, 0x49, 0x6e, 0xfe, 0xf5, 0xe5, 0xf6, 0x48, 0x66, 0x8f, 0xc6, 0x2c, 0xd4, 0xbb, -0x5a, 0xd9, 0xd2, 0x9b, 0x8f, 0xfd, 0xd2, 0x8e, 0xa3, 0xa3, 0x17, 0x7b, 0x61, 0x11, 0xea, 0x30, -0x8b, 0x91, 0x17, 0x45, 0x91, 0x0f, 0x2d, 0xf3, 0x7a, 0xa0, 0x1b, 0x79, 0x51, 0x0f, 0xf6, 0x5d, -0x7d, 0x25, 0xf6, 0x4e, 0x5d, 0xc3, 0xbc, 0xb9, 0x6f, 0x0e, 0xf3, 0xd7, 0x75, 0x6d, 0x57, 0xac, -0x1e, 0x02, 0xb8, 0xde, 0xea, 0xc1, 0x76, 0x5f, 0x1f, 0xad, 0xc6, 0x51, 0xd7, 0x15, 0x78, 0x16, -0x96, 0xcc, 0x6b, 0x39, 0xf4, 0x62, 0x6d, 0x0b, 0xea, 0x7e, 0x1d, 0x75, 0x73, 0x91, 0xa7, 0xa8, -0xf5, 0x7e, 0x4f, 0x04, 0x16, 0x7a, 0x7d, 0x18, 0xdf, 0xee, 0x09, 0xc3, 0x7c, 0x8d, 0x26, 0x14, -0x15, 0xc6, 0x4e, 0x86, 0x3d, 0x70, 0x7d, 0x0c, 0x74, 0x21, 0x6f, 0x33, 0x72, 0xb6, 0x97, 0x90, -0xb3, 0x55, 0xd6, 0x14, 0x3c, 0xd7, 0xbc, 0xc2, 0xb9, 0x2d, 0xd4, 0xad, 0xd4, 0xfb, 0x6b, 0xac, -0xa1, 0x97, 0x6a, 0xe5, 0xd0, 0x1e, 0xb7, 0xed, 0xcd, 0xb5, 0xcf, 0xdf, 0xde, 0x65, 0x7b, 0x63, -0xdd, 0xff, 0x7a, 0xe9, 0xef, 0x5e, 0x0a, 0xad, 0x0d, 0xbd, 0x14, 0x5c, 0xab, 0x1a, 0x57, 0x13, -0x6f, 0x6b, 0xa8, 0x43, 0xde, 0x56, 0xdf, 0x88, 0x35, 0x04, 0xb3, 0xfc, 0xe4, 0x97, 0xbf, 0xac, -0x0f, 0xfe, 0xf1, 0x35, 0xb7, 0xfc, 0xe6, 0x3d, 0xd5, 0xc8, 0xd9, 0xea, 0x03, 0x18, 0x1b, 0xaa, -0x85, 0x74, 0xec, 0x4b, 0xbb, 0x29, 0xd6, 0x29, 0x1d, 0xbc, 0xa7, 0x88, 0xe6, 0x78, 0x0a, 0x6b, -0xf3, 0x64, 0x3d, 0x14, 0xde, 0xab, 0xbf, 0xc2, 0x0f, 0x35, 0xe1, 0x86, 0x58, 0xf1, 0xce, 0x41, -0xe4, 0x6b, 0x12, 0xf2, 0xb5, 0xed, 0x3b, 0x07, 0x91, 0xaf, 0x49, 0xc8, 0xd7, 0xb6, 0x84, 0xa5, -0x2e, 0x4b, 0x50, 0xa2, 0x14, 0xfd, 0xc4, 0xd9, 0x1a, 0x62, 0x96, 0x9d, 0x83, 0xdf, 0x7f, 0x39, -0xb4, 0x3e, 0xd8, 0x44, 0x6b, 0x25, 0x55, 0x79, 0x69, 0xde, 0xb5, 0x5a, 0x7a, 0xc0, 0x5f, 0xdf, -0x50, 0x43, 0xbc, 0xab, 0x01, 0xdf, 0x1b, 0xaa, 0x6c, 0x07, 0x1a, 0x6a, 0x40, 0xbc, 0xd5, 0xea, -0x8e, 0x07, 0x31, 0x3e, 0x88, 0xf1, 0x05, 0xe9, 0xf8, 0x37, 0x22, 0x58, 0x3b, 0x42, 0x55, 0x15, -0xa4, 0xf5, 0xc1, 0x7a, 0x9f, 0xb7, 0x80, 0xee, 0xb5, 0x66, 0x0a, 0xf3, 0x06, 0x4b, 0x3d, 0x50, -0x13, 0x5a, 0x17, 0x6e, 0x8a, 0x01, 0x3c, 0xb4, 0xbd, 0xa1, 0xdb, 0xd5, 0x63, 0x7d, 0xb7, 0xab, -0x2e, 0x58, 0x1f, 0x51, 0x22, 0x82, 0x86, 0xeb, 0xe3, 0xc7, 0xc1, 0xeb, 0x73, 0x84, 0x5e, 0x67, -0xea, 0xbd, 0xe1, 0x07, 0xd8, 0x1b, 0x35, 0x81, 0xa0, 0x5a, 0xbe, 0xda, 0xfa, 0xe7, 0xae, 0xaa, -0x66, 0x77, 0xf3, 0x1f, 0x44, 0xaa, 0x5b, 0x1f, 0x04, 0x6f, 0x68, 0x7c, 0xaa, 0xba, 0x60, 0x8d, -0x44, 0xbc, 0xd3, 0xdb, 0x30, 0x6f, 0x68, 0xff, 0x5e, 0xec, 0x19, 0x5f, 0x0e, 0xff, 0x0c, 0xe1, -0x7b, 0x0d, 0xf2, 0xcf, 0x3a, 0xe6, 0x94, 0xa8, 0xa3, 0xbf, 0x49, 0x1c, 0xb4, 0x8a, 0xe3, 0x5a, -0x90, 0x46, 0x6a, 0xd2, 0xe1, 0x07, 0x13, 0x6a, 0xdb, 0xc5, 0xe0, 0xba, 0x01, 0xe1, 0x82, 0x9a, -0x2c, 0x64, 0xf5, 0x58, 0xe7, 0x85, 0x70, 0xdd, 0x80, 0x70, 0x61, 0xaa, 0x50, 0x6e, 0x2a, 0x82, -0xcb, 0x63, 0x42, 0x8d, 0x73, 0x90, 0x7f, 0xbb, 0x67, 0x7e, 0x84, 0xca, 0x7e, 0x96, 0x07, 0xeb, -0x26, 0xf0, 0xe0, 0x2f, 0xe7, 0xbb, 0x4d, 0x69, 0xbe, 0x5b, 0x5f, 0x90, 0x68, 0x12, 0x7c, 0x17, -0x75, 0x6d, 0xa4, 0x36, 0x68, 0x32, 0xc1, 0x5d, 0xc1, 0xf4, 0x58, 0xed, 0x83, 0x9f, 0xfe, 0x06, -0xb5, 0x69, 0xab, 0xcb, 0x97, 0xb1, 0x68, 0x6a, 0xe6, 0x9e, 0x3b, 0xab, 0xd4, 0x18, 0xe5, 0x06, -0xe6, 0xbe, 0x9b, 0xc4, 0x48, 0x0b, 0xa5, 0x47, 0xe7, 0x1a, 0x82, 0xeb, 0xf3, 0x37, 0x32, 0x5c, -0xf7, 0xee, 0x34, 0xd7, 0x0d, 0x11, 0xd7, 0xd5, 0x5d, 0xc0, 0x75, 0x75, 0x39, 0x5c, 0xf7, 0x76, -0x8d, 0xeb, 0x1a, 0x05, 0xbf, 0x48, 0x97, 0xac, 0x71, 0xe3, 0xd0, 0x84, 0x77, 0xc1, 0x6d, 0xeb, -0xf0, 0x0a, 0x6a, 0xdc, 0xf6, 0xee, 0xf6, 0x75, 0x1a, 0xbf, 0xbd, 0x1b, 0xf9, 0xed, 0x12, 0x86, -0xa4, 0x85, 0x7f, 0x17, 0x4f, 0xe0, 0xb7, 0x0a, 0x8f, 0xf0, 0x43, 0x9a, 0x7e, 0xb1, 0x10, 0xc7, -0xb6, 0x8a, 0xfd, 0xd6, 0xee, 0x76, 0x49, 0x16, 0xfe, 0xba, 0x82, 0xf6, 0x38, 0x2f, 0x41, 0xdb, -0x20, 0x70, 0xc3, 0x32, 0x28, 0x85, 0x3a, 0x34, 0x4b, 0x8a, 0xea, 0x96, 0x41, 0x31, 0x8e, 0x96, -0x92, 0x5a, 0xd3, 0xa1, 0xc0, 0xbc, 0x20, 0xed, 0x6b, 0x38, 0xe8, 0x9b, 0x17, 0xb0, 0xba, 0x50, -0x5b, 0x2b, 0x8e, 0x59, 0xf1, 0x6e, 0x81, 0x4b, 0xa3, 0xe6, 0x7e, 0x59, 0x35, 0x06, 0x8c, 0xaa, -0xdc, 0xaf, 0x47, 0x8d, 0x67, 0x52, 0x4c, 0x6e, 0x33, 0x56, 0x41, 0x9a, 0xf6, 0xc9, 0x23, 0x04, -0x52, 0xce, 0x2c, 0x5a, 0xef, 0xf3, 0x36, 0xe3, 0x53, 0x53, 0x8d, 0x29, 0x4d, 0xe7, 0xde, 0x86, -0xaa, 0xbc, 0x9a, 0x82, 0x97, 0x5e, 0x72, 0xf8, 0xeb, 0x42, 0x7f, 0xf8, 0xcd, 0x9c, 0x8f, 0x0f, -0x41, 0x36, 0x1f, 0x8d, 0x19, 0x6f, 0x43, 0x8d, 0x9c, 0x19, 0x33, 0x66, 0x1c, 0x33, 0x39, 0x39, -0x31, 0x3e, 0x84, 0xf1, 0xfa, 0xcc, 0x98, 0x09, 0xa1, 0xf5, 0x57, 0x48, 0x23, 0x84, 0xc6, 0x0a, -0x9a, 0x83, 0x85, 0x55, 0x81, 0x62, 0xd3, 0x66, 0x58, 0x06, 0xb0, 0x25, 0x28, 0x87, 0x06, 0x91, -0x22, 0x9d, 0xa8, 0x2d, 0x2c, 0xab, 0x9a, 0xed, 0x6a, 0xfe, 0x3d, 0x53, 0xda, 0xac, 0x6a, 0x1c, -0x01, 0xc1, 0x34, 0x9d, 0xd5, 0x6a, 0xd4, 0x58, 0x2b, 0x13, 0x3d, 0x7a, 0x7d, 0xae, 0x50, 0x3a, -0xd5, 0x10, 0x54, 0x35, 0x2b, 0xcd, 0x42, 0x16, 0xd4, 0xc6, 0x1f, 0x84, 0x1a, 0xa9, 0x5a, 0x4f, -0xe7, 0xb9, 0xe6, 0x8c, 0x93, 0x1a, 0x6d, 0x9c, 0xb8, 0xc1, 0x8a, 0xe3, 0x61, 0xfc, 0x38, 0x99, -0x85, 0x57, 0x0d, 0xca, 0xf3, 0x59, 0x99, 0xd1, 0x12, 0xce, 0x19, 0x2d, 0x35, 0x7f, 0x18, 0xbe, -0x81, 0xf4, 0xe8, 0x1a, 0xb5, 0x9d, 0x61, 0x74, 0x8d, 0x87, 0xb1, 0xb6, 0x37, 0x17, 0xc6, 0x59, -0x57, 0x23, 0x8c, 0x2b, 0x79, 0x34, 0xbb, 0x27, 0xc2, 0x59, 0xdb, 0x9b, 0x0b, 0xe7, 0x2c, 0xaf, -0x80, 0x93, 0x52, 0x7b, 0x0c, 0x91, 0x9d, 0x9f, 0x86, 0x3c, 0x06, 0xff, 0xb9, 0x4f, 0x89, 0x1b, -0x63, 0xcd, 0x33, 0xf7, 0xf1, 0xe8, 0xf9, 0xd5, 0xb8, 0xd1, 0xb3, 0x0c, 0x6c, 0x99, 0xd1, 0xb3, -0x3c, 0x33, 0x7a, 0x96, 0x67, 0xe5, 0x5b, 0x5a, 0x8e, 0x05, 0x4c, 0xf3, 0x8c, 0x71, 0x5a, 0xeb, -0xac, 0xc3, 0x56, 0x35, 0x65, 0x46, 0x48, 0x18, 0xa9, 0xd0, 0x38, 0x42, 0x5e, 0xb0, 0x22, 0x8a, -0x0d, 0x6d, 0xf2, 0x40, 0x7d, 0xb0, 0x56, 0x46, 0x9b, 0xbf, 0x0e, 0xb9, 0x7b, 0xe0, 0x8a, 0x26, -0x98, 0xa7, 0x82, 0xe4, 0xab, 0x80, 0xa3, 0xf7, 0x38, 0xa5, 0xa3, 0x1b, 0x9c, 0x01, 0x94, 0x73, -0x26, 0x96, 0x73, 0x34, 0x4e, 0xe2, 0x28, 0xe7, 0x86, 0x56, 0x8f, 0x3d, 0x37, 0xd4, 0x09, 0x52, -0x09, 0x6a, 0x93, 0x12, 0x72, 0x60, 0xc9, 0xea, 0x01, 0x3d, 0xcc, 0x5b, 0x0c, 0xe0, 0x40, 0xcc, -0x45, 0xbc, 0xff, 0xf8, 0xa0, 0x31, 0x72, 0x3e, 0x21, 0xa3, 0x51, 0x63, 0x81, 0xf9, 0x50, 0x03, -0xde, 0x1a, 0x7d, 0x6d, 0xbf, 0x09, 0x7a, 0x97, 0xa9, 0x1d, 0xe2, 0x29, 0x0c, 0x31, 0x5f, 0xef, -0x09, 0x75, 0x41, 0xe6, 0xad, 0xa6, 0x77, 0xa7, 0x1a, 0x2a, 0x06, 0xbb, 0x54, 0x24, 0xe3, 0x9b, -0x35, 0x2c, 0xc5, 0x5c, 0x81, 0x86, 0xda, 0x7e, 0x1d, 0xa8, 0xe5, 0x61, 0x29, 0x5a, 0x2e, 0x9e, -0x7b, 0x2d, 0xaa, 0x53, 0x2b, 0xe9, 0x21, 0x75, 0x52, 0xaf, 0x5b, 0x2d, 0xe9, 0xdd, 0xa0, 0x16, -0x69, 0x21, 0xaf, 0xaa, 0x66, 0xed, 0x89, 0x46, 0x5c, 0x5d, 0x64, 0xe7, 0x5f, 0x3e, 0xf1, 0x5a, -0xab, 0x6c, 0x09, 0x3f, 0xd2, 0x57, 0x2a, 0x11, 0x10, 0x23, 0xb6, 0x7d, 0x63, 0x18, 0xb1, 0x9c, -0xe6, 0x2c, 0xeb, 0x7d, 0x33, 0x5f, 0x22, 0xbe, 0x92, 0x1e, 0xe1, 0x34, 0x43, 0xa5, 0xb8, 0xc0, -0x4c, 0x94, 0x20, 0x46, 0xba, 0xe0, 0x0c, 0x28, 0xa5, 0xef, 0xd6, 0x46, 0xf8, 0xf8, 0xf7, 0xf9, -0x58, 0x53, 0x13, 0x5e, 0x11, 0xbc, 0x54, 0xac, 0x71, 0x2b, 0x8f, 0x72, 0x93, 0xc3, 0xa2, 0x18, -0x5f, 0x40, 0xee, 0xd2, 0x09, 0xc9, 0x5d, 0x6e, 0xc2, 0x3d, 0xf6, 0xea, 0x5f, 0x3a, 0xf8, 0x77, -0x4d, 0xeb, 0xc6, 0xcc, 0x3c, 0x94, 0x2b, 0x2b, 0xc5, 0x73, 0xe4, 0x77, 0xab, 0x53, 0x1b, 0xe3, -0xb4, 0x1b, 0xa8, 0x02, 0xa1, 0xc1, 0x11, 0xee, 0x86, 0x3a, 0x1c, 0xcf, 0xce, 0xaa, 0x65, 0x50, -0x5e, 0xeb, 0x06, 0x17, 0xed, 0xc1, 0x9c, 0xe7, 0xbf, 0xc1, 0x0f, 0x81, 0xf0, 0x56, 0x98, 0x14, -0x05, 0x79, 0x83, 0x75, 0x19, 0xd2, 0x65, 0x11, 0x3e, 0x25, 0x26, 0x8e, 0xf7, 0x1e, 0x1a, 0xef, -0xc8, 0x59, 0x7a, 0x68, 0xbc, 0x97, 0xe2, 0x78, 0x97, 0x0e, 0xf9, 0xe6, 0x05, 0x6b, 0x69, 0x84, -0xfb, 0x48, 0x27, 0xf3, 0x1f, 0x87, 0xc2, 0x1a, 0x33, 0x8d, 0xd2, 0x59, 0xd6, 0x9a, 0xbc, 0xdf, -0xbe, 0xe4, 0x98, 0xed, 0x0d, 0xed, 0xdf, 0xfb, 0xfa, 0x5e, 0x1c, 0x15, 0x35, 0xf5, 0x9c, 0x62, -0xee, 0x29, 0x28, 0x9c, 0x65, 0x3b, 0x3e, 0x1b, 0x47, 0xf1, 0xec, 0xfa, 0x06, 0x6f, 0x30, 0x1c, -0x14, 0xb9, 0x66, 0x99, 0x8f, 0xcf, 0x3e, 0xfc, 0xab, 0xd5, 0x85, 0xc3, 0x6b, 0x15, 0x9f, 0x90, -0x1a, 0xb5, 0x71, 0x33, 0xec, 0x5d, 0xab, 0x04, 0xb5, 0xf1, 0x87, 0x9c, 0xd0, 0x43, 0xdf, 0x78, -0x55, 0x45, 0x76, 0x7e, 0xd2, 0x4b, 0xdf, 0x17, 0x7d, 0xa2, 0x6a, 0xd4, 0xbc, 0x87, 0xa8, 0xb9, -0xd6, 0x16, 0x0c, 0x1e, 0x62, 0x3e, 0x35, 0xcf, 0xf7, 0xe2, 0x07, 0x60, 0x27, 0xfa, 0x1d, 0x09, -0x72, 0x3f, 0xa9, 0x17, 0x0d, 0xcd, 0xa5, 0x6b, 0x3d, 0xed, 0x31, 0x98, 0x27, 0xa1, 0xad, 0x55, -0xd7, 0x36, 0x44, 0x3c, 0x0b, 0x9f, 0x68, 0x16, 0x2b, 0x40, 0xf3, 0x99, 0x4c, 0xd9, 0x4d, 0x28, -0xeb, 0xe7, 0x20, 0x1d, 0xcf, 0xc7, 0x10, 0xfd, 0x48, 0xc2, 0xe5, 0xfb, 0xfd, 0xb0, 0xe8, 0xbd, -0xbd, 0x28, 0x09, 0x90, 0x7e, 0x51, 0x03, 0x97, 0xaa, 0xec, 0x06, 0xa2, 0xe0, 0x22, 0x63, 0x86, -0x86, 0xe7, 0x2c, 0x9e, 0x84, 0x14, 0xdc, 0x94, 0xa1, 0xe0, 0x12, 0xc4, 0xa2, 0x17, 0x9c, 0x30, -0x79, 0xf5, 0x32, 0xb5, 0x1a, 0x29, 0xd3, 0xb1, 0xfa, 0x84, 0x5a, 0x81, 0xf7, 0xc9, 0xab, 0x77, -0xaa, 0xce, 0x12, 0xa2, 0x57, 0x1d, 0x5a, 0xba, 0xc5, 0x48, 0xa3, 0xc5, 0xab, 0x2d, 0x6a, 0xd1, -0xea, 0x87, 0x54, 0xdb, 0x6a, 0xb7, 0x6a, 0x59, 0xbd, 0x01, 0xb5, 0x9b, 0x57, 0x55, 0x79, 0x75, -0x9d, 0x47, 0xf6, 0x9f, 0xfb, 0x78, 0x89, 0x18, 0xcb, 0xb4, 0xf7, 0x05, 0x1a, 0x50, 0xdb, 0x7c, -0x49, 0x68, 0x9b, 0x42, 0x0b, 0x6d, 0xdf, 0xb8, 0x1a, 0x6e, 0x83, 0x39, 0xc4, 0x95, 0x8e, 0xa1, -0x1d, 0x61, 0x43, 0x8c, 0xd5, 0xa1, 0xdc, 0xba, 0x8b, 0x76, 0x65, 0xa0, 0x9e, 0x1d, 0xd8, 0xb4, -0x16, 0x09, 0xec, 0xfe, 0xd6, 0x8d, 0xb4, 0xfb, 0xcb, 0x61, 0x3e, 0xb0, 0x76, 0xf7, 0xb3, 0x48, -0xa5, 0x28, 0x69, 0xf6, 0xbf, 0x58, 0xe5, 0x2d, 0x85, 0xb0, 0x2f, 0xd6, 0x1e, 0xf6, 0xc7, 0xe6, -0x7b, 0xc8, 0xe3, 0x5d, 0x8d, 0xc0, 0xf6, 0xe9, 0xb3, 0x88, 0x9d, 0x2a, 0xe6, 0x0a, 0x3d, 0x0e, -0xd3, 0x81, 0x67, 0xa1, 0x4e, 0x8c, 0xdc, 0xbd, 0xb0, 0xff, 0xc5, 0x2b, 0xf7, 0xa6, 0xe9, 0xf8, -0xc0, 0xb6, 0xbd, 0x70, 0x25, 0xa5, 0x99, 0x8f, 0xb5, 0xd4, 0xdc, 0x00, 0x81, 0x18, 0x52, 0x71, -0x00, 0xaf, 0x85, 0x58, 0xc2, 0x11, 0xd2, 0xf9, 0x69, 0x56, 0xfc, 0xad, 0xa1, 0xb6, 0xb5, 0xd4, -0x1b, 0xcf, 0xf9, 0x56, 0x40, 0xaa, 0xbb, 0x4d, 0x7f, 0xb4, 0xe0, 0xa8, 0xed, 0x79, 0x41, 0xdb, -0x5b, 0xa8, 0x4f, 0x4f, 0xdf, 0xc5, 0xbf, 0x8f, 0x5d, 0x28, 0xbf, 0xd2, 0xbe, 0x69, 0x5f, 0x3f, -0x2b, 0x7c, 0x92, 0xfe, 0x61, 0x8b, 0xf0, 0xdd, 0x7a, 0x38, 0x32, 0xde, 0x27, 0xed, 0x51, 0x07, -0xad, 0x45, 0xc1, 0xd8, 0x1f, 0xef, 0x15, 0xbe, 0x69, 0xdf, 0xea, 0x17, 0xbe, 0x69, 0xff, 0x50, -0x29, 0xfc, 0x38, 0x1e, 0x1e, 0xc6, 0xbb, 0x0d, 0xe3, 0xc3, 0xc2, 0x47, 0xed, 0x61, 0x3a, 0xcf, -0xb9, 0x0c, 0xd3, 0x6d, 0x11, 0x3e, 0x61, 0xdf, 0x79, 0x5c, 0xf8, 0xa8, 0x3d, 0x2a, 0x0b, 0xdf, -0xaf, 0xaf, 0xcf, 0x17, 0x3e, 0x6a, 0xf7, 0xef, 0x11, 0x3e, 0x6a, 0x5f, 0x77, 0x0a, 0x1f, 0xb0, -0xaf, 0x3f, 0x36, 0xde, 0x07, 0xec, 0xa9, 0x32, 0x71, 0x3f, 0xad, 0x9d, 0xad, 0xf0, 0x71, 0xbb, -0xa8, 0xef, 0xcc, 0xea, 0xf1, 0xbe, 0x68, 0x3f, 0xab, 0x17, 0xf1, 0x9f, 0xed, 0x16, 0xbe, 0x68, -0x3f, 0x8f, 0x88, 0x7a, 0xcf, 0x69, 0xbe, 0x68, 0x3f, 0x5f, 0x27, 0xe0, 0x1f, 0x7d, 0x55, 0xf8, -0xa4, 0x4d, 0x5a, 0x85, 0x4f, 0xda, 0x4f, 0x1f, 0x11, 0xf9, 0x93, 0x01, 0x86, 0x2b, 0x29, 0x77, -0xb1, 0x4f, 0xda, 0xa4, 0x14, 0x15, 0xf0, 0xa4, 0x34, 0x9f, 0xb9, 0x9f, 0x16, 0xe3, 0xbd, 0x16, -0xef, 0x77, 0xe1, 0xfd, 0xba, 0x6c, 0xbd, 0xbf, 0xa9, 0x84, 0xb1, 0x7d, 0xa7, 0xf1, 0xbe, 0x18, -0xc6, 0x5e, 0x4d, 0xfc, 0xbf, 0xe8, 0x8b, 0xf6, 0xd6, 0x9b, 0x3b, 0xc9, 0x23, 0xe9, 0xc5, 0xfd, -0xd0, 0xe6, 0x44, 0xb2, 0x0f, 0xda, 0x5f, 0xb6, 0x42, 0xd2, 0x76, 0xd7, 0x80, 0x94, 0xf7, 0x19, -0x3e, 0x07, 0xf1, 0xba, 0x0a, 0xaf, 0x78, 0xa6, 0xc4, 0x4f, 0x60, 0x6c, 0xcf, 0x2e, 0x01, 0xff, -0x6b, 0xce, 0x1c, 0x1f, 0xb4, 0x19, 0xdf, 0xb3, 0x92, 0xde, 0x60, 0x2d, 0xb0, 0xe4, 0xeb, 0xe4, -0x3c, 0x93, 0x91, 0xe6, 0x7e, 0x35, 0x47, 0xb2, 0x99, 0x1f, 0xc4, 0xa4, 0x1d, 0x84, 0x57, 0xcf, -0x3c, 0x0e, 0x4a, 0xa5, 0x23, 0xf0, 0x66, 0x07, 0x33, 0xe3, 0x18, 0x53, 0x4d, 0xc8, 0x96, 0xca, -0xc9, 0x69, 0x82, 0x9c, 0x8c, 0x1c, 0x5b, 0xaa, 0xe5, 0x24, 0xba, 0xc8, 0xc9, 0x93, 0x1a, 0x5f, -0x9f, 0x0e, 0x26, 0x54, 0x98, 0x93, 0x4f, 0xfe, 0x0a, 0x38, 0x0d, 0x74, 0x20, 0x2b, 0x66, 0xa7, -0xb3, 0x2c, 0xae, 0xe0, 0x90, 0x4b, 0x90, 0x6f, 0x7c, 0x9b, 0xa9, 0x06, 0xdb, 0x4f, 0xe4, 0x6f, -0xca, 0xc6, 0xd9, 0xe1, 0x32, 0x2d, 0x2e, 0xff, 0x4b, 0xf3, 0x11, 0x7d, 0x7d, 0x59, 0xbe, 0xaf, -0xfc, 0x27, 0xf9, 0xe0, 0x34, 0xad, 0x29, 0x39, 0x41, 0x7a, 0x54, 0x12, 0x67, 0x9d, 0xbb, 0x10, -0x3e, 0x3b, 0x48, 0x65, 0x28, 0x1b, 0xa4, 0x23, 0xa0, 0x93, 0x7e, 0x6f, 0x18, 0xd6, 0xf9, 0x64, -0xd1, 0x2a, 0x2f, 0xe2, 0xb8, 0x15, 0x74, 0xa5, 0xa0, 0x53, 0xe4, 0x76, 0xd0, 0xcb, 0xb7, 0x1c, -0x79, 0x54, 0xaf, 0x30, 0x9d, 0x12, 0x45, 0x4a, 0x10, 0xa7, 0x71, 0xaa, 0x27, 0xc4, 0x18, 0x74, -0x6f, 0x1f, 0xf0, 0x19, 0x7c, 0xba, 0x72, 0x8e, 0x6b, 0xc7, 0xa0, 0x76, 0x30, 0x96, 0x7e, 0x35, -0x30, 0x66, 0xbd, 0x55, 0xb6, 0x18, 0x6d, 0xa6, 0x3c, 0x43, 0x81, 0x2e, 0x5f, 0x2a, 0xfc, 0xe6, -0xbe, 0x7d, 0x05, 0xcd, 0x7d, 0xbd, 0x5f, 0xdf, 0x6f, 0xe6, 0xb9, 0x57, 0xf3, 0xcd, 0x2b, 0x0a, -0xfd, 0x3f, 0xe6, 0x97, 0xb7, 0x6d, 0xfe, 0xec, 0xa6, 0xf6, 0xba, 0xa9, 0x4b, 0xfa, 0xa6, 0xae, -0x86, 0xef, 0xfb, 0x1b, 0x27, 0xbe, 0x40, 0x6b, 0x4f, 0x67, 0xfc, 0xe6, 0x9e, 0xce, 0x05, 0x4b, -0x3b, 0xff, 0xa1, 0x75, 0x65, 0x4f, 0xef, 0x2a, 0x65, 0x35, 0x3e, 0xc5, 0xf1, 0xe9, 0xbb, 0x53, -0xe3, 0x96, 0x71, 0x2d, 0xc3, 0x92, 0x34, 0x1f, 0xb9, 0x50, 0x79, 0xcb, 0xcd, 0x3d, 0x1d, 0xd0, -0x7a, 0x5d, 0x0d, 0x15, 0xa7, 0xdc, 0xdc, 0xdb, 0xdb, 0xb9, 0x22, 0xde, 0xbb, 0xb4, 0x3b, 0xa6, -0xf4, 0xae, 0x54, 0x96, 0x76, 0x2f, 0xed, 0x55, 0xae, 0x9a, 0xba, 0xea, 0x2a, 0x4b, 0x26, 0x41, -0xd3, 0xd2, 0xee, 0x8e, 0x06, 0xcc, 0xa1, 0xac, 0xba, 0xf5, 0x96, 0x5b, 0x3a, 0x3b, 0x3b, 0x3a, -0x3b, 0xb2, 0x71, 0xcd, 0x98, 0x7c, 0x62, 0x5c, 0xe4, 0xe6, 0x15, 0x9d, 0x75, 0xa2, 0x88, 0xb6, -0xce, 0x58, 0xdd, 0x54, 0x6f, 0x6d, 0x9f, 0xd2, 0xfc, 0x37, 0x7c, 0xb7, 0xa0, 0x32, 0x8b, 0xa9, -0xe7, 0xff, 0x30, 0xde, 0x59, 0x37, 0xb5, 0x43, 0x99, 0xdd, 0x90, 0x7e, 0x6a, 0xcd, 0x3c, 0x05, -0x5a, 0x1b, 0xe8, 0xd6, 0xd4, 0x75, 0x73, 0x6c, 0x95, 0x96, 0x67, 0x6a, 0x47, 0x9d, 0x12, 0x5a, -0x50, 0x37, 0xb5, 0xba, 0x43, 0x59, 0xb0, 0xa0, 0x4e, 0xa1, 0x7b, 0xa8, 0x4d, 0xbc, 0x8a, 0x1b, -0xe5, 0xc8, 0xc2, 0xc4, 0x4d, 0x88, 0xde, 0xbc, 0xb4, 0x8b, 0x80, 0x99, 0xda, 0x51, 0x31, 0x35, -0x8e, 0x79, 0x3a, 0xfa, 0xf8, 0xbf, 0x72, 0xcb, 0xd2, 0xef, 0xd2, 0x6f, 0xd7, 0x72, 0xba, 0xb9, -0xa6, 0x76, 0x78, 0xa6, 0x76, 0x4c, 0xb3, 0xc0, 0x12, 0xed, 0x1c, 0x3e, 0x65, 0x55, 0xbc, 0x67, -0x69, 0x6f, 0x27, 0xa5, 0xe7, 0xf2, 0x18, 0x69, 0x6d, 0xfe, 0xb9, 0x4a, 0x74, 0xe5, 0xad, 0xdd, -0x1d, 0x88, 0x2a, 0x85, 0x5b, 0xb3, 0x6a, 0xe9, 0x9a, 0x4e, 0x45, 0xc0, 0xa6, 0x25, 0xea, 0x58, -0xd9, 0xdd, 0x69, 0x11, 0x64, 0x09, 0x59, 0xdf, 0xc1, 0xfb, 0xf6, 0xc0, 0xd8, 0xaf, 0x1f, 0xc8, -0xbe, 0xff, 0x7a, 0x37, 0xf2, 0xe0, 0x75, 0xd9, 0xf7, 0xdf, 0xb6, 0xc0, 0xd8, 0x07, 0x9f, 0x64, -0xdf, 0x3f, 0x40, 0x6e, 0xb8, 0xdf, 0xfc, 0x25, 0xbe, 0x86, 0xcb, 0x34, 0x5f, 0xc3, 0x7a, 0xe7, -0x74, 0x38, 0x45, 0x73, 0x63, 0xbf, 0xba, 0x27, 0xc7, 0xd7, 0xf0, 0x91, 0xf4, 0x79, 0x30, 0x2f, -0xad, 0xbb, 0xc0, 0xd7, 0x70, 0x1f, 0x87, 0xff, 0x4c, 0xf8, 0x1a, 0x86, 0x83, 0x13, 0x7d, 0x0d, -0xc3, 0x11, 0xf2, 0x6e, 0xfb, 0xab, 0xfb, 0xe0, 0x18, 0x9f, 0x11, 0x73, 0xdc, 0x13, 0x84, 0x93, -0x1c, 0xf2, 0x20, 0x9c, 0xb6, 0xd7, 0x03, 0x9d, 0xc1, 0x77, 0x06, 0xb5, 0xfd, 0xe7, 0xb5, 0xb0, -0x5d, 0x9a, 0x0f, 0xdc, 0x61, 0xd4, 0xf2, 0xf7, 0xb0, 0x0f, 0xdc, 0xbd, 0xec, 0x6b, 0x78, 0x9f, -0x76, 0x6e, 0xcc, 0x08, 0xa7, 0x7b, 0x16, 0x0e, 0x06, 0x9e, 0x85, 0x43, 0x78, 0x1d, 0x1e, 0xef, -0x6b, 0xf8, 0x57, 0xff, 0x86, 0x30, 0x6c, 0xfe, 0x3a, 0x5f, 0xc3, 0x5a, 0xdb, 0xbe, 0xcc, 0xd7, -0xf0, 0xb1, 0x71, 0xe7, 0xc6, 0x9c, 0xfa, 0x06, 0xbe, 0x86, 0xbf, 0x1a, 0x7b, 0x9b, 0xd3, 0xbe, -0x86, 0xf7, 0x94, 0x5d, 0x1c, 0x7b, 0x7b, 0x82, 0xdf, 0x00, 0x7b, 0xfa, 0x71, 0xd8, 0xfb, 0x75, -0x2e, 0xf6, 0x24, 0xbd, 0x08, 0x93, 0xcc, 0x02, 0x7b, 0xa8, 0x26, 0x86, 0x25, 0x3b, 0x61, 0x4f, -0x2a, 0x8e, 0xd7, 0x90, 0x87, 0xe7, 0xc0, 0xb3, 0x52, 0x19, 0x5e, 0xca, 0x45, 0xb0, 0x75, 0xe4, -0xeb, 0x3c, 0x08, 0xff, 0xd5, 0xd8, 0xfa, 0xab, 0x3d, 0x08, 0xef, 0x39, 0xf2, 0x1f, 0xf5, 0x20, -0xbc, 0xe7, 0xf8, 0x7f, 0xe0, 0x94, 0x9d, 0xf7, 0xc6, 0x7b, 0x10, 0x7e, 0xb5, 0xe3, 0x9b, 0x79, -0x10, 0xfe, 0x25, 0x5c, 0xe8, 0x07, 0xf7, 0x97, 0xf6, 0xf1, 0x7e, 0x70, 0x5f, 0xad, 0xfe, 0xd2, -0x53, 0x76, 0x4e, 0xfd, 0x6f, 0x39, 0x49, 0xfa, 0x04, 0xf7, 0xdb, 0x91, 0x09, 0x27, 0xed, 0x9c, -0xca, 0x39, 0x69, 0xe7, 0xbd, 0xaf, 0xf3, 0x22, 0xfc, 0x6a, 0xf0, 0xab, 0xbc, 0x08, 0xff, 0xb2, -0xf4, 0xcb, 0xbd, 0x08, 0xff, 0xd2, 0x3c, 0xd1, 0x8b, 0xf0, 0xab, 0xf3, 0x2f, 0xee, 0x45, 0x18, -0x71, 0x3a, 0xc1, 0x8b, 0xf0, 0x7f, 0x06, 0x7b, 0xdf, 0xd4, 0x8b, 0x30, 0x8e, 0xc4, 0x93, 0xb4, -0x23, 0x8b, 0xce, 0x61, 0xce, 0x5d, 0xff, 0xad, 0x20, 0xda, 0x5e, 0x2c, 0xfc, 0x08, 0x1f, 0x3d, -0x8c, 0x38, 0xf1, 0x45, 0x6d, 0xb9, 0x5e, 0x82, 0xd5, 0xa6, 0x8c, 0x6f, 0x61, 0x2b, 0xc2, 0x5b, -0xcc, 0xb0, 0x25, 0x2e, 0xf4, 0x2d, 0x5c, 0xee, 0x9b, 0xe0, 0x5b, 0xd8, 0x4a, 0x3b, 0x04, 0x6f, -0x1c, 0x37, 0x26, 0x5a, 0xc8, 0x03, 0x48, 0x71, 0x76, 0x2d, 0x2f, 0xb5, 0x5a, 0xd0, 0xad, 0x23, -0xeb, 0x6d, 0x38, 0xf2, 0xbf, 0xc9, 0xdb, 0x70, 0x76, 0x1f, 0xdb, 0xfc, 0x2c, 0x54, 0xf8, 0xd6, -0x3e, 0xee, 0x6d, 0xe1, 0xb8, 0xb7, 0xbb, 0xe2, 0x4a, 0xce, 0x5e, 0xb6, 0xad, 0x70, 0x97, 0x87, -0xb4, 0x79, 0xbd, 0xc7, 0x0d, 0xbd, 0x91, 0x9d, 0xa9, 0x9b, 0x30, 0x04, 0x2d, 0x57, 0x51, 0x3e, -0xed, 0x15, 0x14, 0x3b, 0x36, 0xb3, 0x7e, 0x8d, 0xe1, 0x94, 0xf8, 0x52, 0xff, 0x57, 0x27, 0x1b, -0xcf, 0xa5, 0x5a, 0xd3, 0x7e, 0x89, 0xf7, 0x4a, 0x99, 0xa7, 0x49, 0x99, 0xa7, 0xe9, 0xb9, 0x7e, -0x8d, 0xf7, 0x5e, 0x97, 0x09, 0xcf, 0xe6, 0xea, 0xe4, 0x14, 0xa5, 0x62, 0x3f, 0x0a, 0xb7, 0x45, -0xec, 0xf0, 0xbf, 0x57, 0x7c, 0xcd, 0x9f, 0x52, 0xc8, 0x5e, 0xd3, 0x56, 0x31, 0xcf, 0x68, 0xad, -0x2d, 0xa5, 0x2f, 0x68, 0x2a, 0xb0, 0x55, 0xd4, 0x6a, 0xc7, 0x52, 0xa8, 0xe7, 0xaf, 0x6d, 0x8c, -0x0d, 0xef, 0x43, 0x05, 0xed, 0xfe, 0x67, 0xce, 0x13, 0xa1, 0x13, 0x87, 0x17, 0x24, 0x7e, 0x81, -0x16, 0x5e, 0xb4, 0x02, 0x39, 0xa4, 0x39, 0x4e, 0xa7, 0xc1, 0xf2, 0x59, 0x44, 0x0d, 0x1f, 0x71, -0x9f, 0x3c, 0x84, 0x5c, 0x69, 0x17, 0xa7, 0xad, 0x23, 0x7f, 0x21, 0x30, 0xcc, 0x5f, 0x2b, 0x57, -0x52, 0xda, 0xf4, 0xa9, 0x45, 0xe9, 0x94, 0x6a, 0xfa, 0xc4, 0xb3, 0xa4, 0xc1, 0x9c, 0x79, 0xa2, -0xd3, 0xca, 0xec, 0x84, 0x25, 0xb1, 0x53, 0x87, 0xbf, 0x4e, 0x23, 0x3f, 0x27, 0x15, 0xfc, 0x95, -0x9e, 0xf0, 0x09, 0xbb, 0x4b, 0xf3, 0xd3, 0x5b, 0x3d, 0xde, 0x4f, 0xaf, 0x54, 0xc1, 0xe7, 0x1f, -0x4e, 0x03, 0x7d, 0x2f, 0xf4, 0xa5, 0xd6, 0xc0, 0xea, 0x54, 0x3f, 0xa8, 0x61, 0xf2, 0xad, 0x63, -0x64, 0xff, 0xbc, 0x7c, 0x16, 0x4f, 0x5d, 0x8e, 0x57, 0x18, 0x37, 0xea, 0xd9, 0x45, 0x68, 0xab, -0x39, 0xca, 0xe9, 0x8b, 0x53, 0x49, 0x9d, 0xec, 0xa6, 0xbb, 0xac, 0x96, 0xb8, 0xe8, 0xae, 0x53, -0x6d, 0xfc, 0x25, 0xaa, 0x5e, 0x35, 0x56, 0xf0, 0x17, 0xa9, 0xca, 0x5c, 0xc4, 0xce, 0x1a, 0xcd, -0x7b, 0xef, 0x16, 0x6c, 0xe7, 0x02, 0xb5, 0xee, 0x36, 0x98, 0xe5, 0x82, 0xa2, 0x5d, 0x77, 0x2c, -0xae, 0x7c, 0xee, 0x8e, 0x4e, 0x37, 0xbf, 0x15, 0xef, 0xbc, 0x63, 0xb1, 0xf2, 0xfc, 0x1d, 0x9d, -0x65, 0xe1, 0xc1, 0x58, 0x89, 0x23, 0xa0, 0x1a, 0x5f, 0xd8, 0x02, 0x25, 0x31, 0xab, 0xbb, 0xb9, -0xf2, 0x5b, 0xd1, 0x33, 0xf4, 0x95, 0x5f, 0x34, 0xed, 0xd7, 0x77, 0xf7, 0x57, 0xf8, 0xf5, 0x25, -0x5f, 0x21, 0x0b, 0x02, 0x7e, 0xb5, 0x29, 0x53, 0x43, 0x1d, 0xd6, 0x50, 0x93, 0xa9, 0xa1, 0x02, -0x6b, 0x70, 0x8d, 0xaf, 0xc1, 0xc9, 0x35, 0x90, 0x2c, 0x89, 0x5e, 0xcc, 0xe3, 0xef, 0x73, 0x13, -0x3c, 0xfe, 0xf2, 0x77, 0x68, 0x17, 0xf8, 0xdb, 0xdd, 0x15, 0x33, 0x0b, 0x7f, 0xbf, 0x91, 0xfd, -0x1e, 0x86, 0x07, 0xac, 0x9e, 0xa5, 0x74, 0x1e, 0xba, 0xf3, 0xef, 0x55, 0x18, 0xdd, 0x7c, 0x51, -0x6f, 0xbf, 0x0b, 0xbe, 0xa1, 0xb7, 0xdf, 0x49, 0x9a, 0x77, 0xde, 0x92, 0x2f, 0xf5, 0xf6, 0xbb, -0xeb, 0x4b, 0xbd, 0xfd, 0x2e, 0xb8, 0x88, 0xb7, 0xdf, 0x4c, 0x79, 0x13, 0xbd, 0xfd, 0xa6, 0xb6, -0x90, 0xb7, 0x5f, 0xf6, 0xdc, 0xd2, 0x05, 0x25, 0xfe, 0x13, 0xe0, 0x98, 0x1e, 0x4a, 0xed, 0x9c, -0xbe, 0x0c, 0x6e, 0x4b, 0x6d, 0xc7, 0x5a, 0x76, 0x46, 0xc1, 0xf8, 0x4c, 0xc3, 0x09, 0x58, 0x30, -0xbd, 0x39, 0xf5, 0xdc, 0xd4, 0x66, 0x58, 0x84, 0x63, 0xf3, 0x26, 0x4c, 0x75, 0xd3, 0xd4, 0x10, -0x2c, 0xc0, 0xf0, 0x0e, 0x0c, 0xeb, 0xc2, 0xb0, 0x25, 0x18, 0xb6, 0x04, 0xc3, 0x3a, 0x90, 0xea, -0x1f, 0x30, 0x12, 0x09, 0xec, 0xe5, 0x7d, 0xe2, 0x49, 0xdb, 0x4d, 0xb5, 0x80, 0x30, 0x3d, 0x80, -0x30, 0x3e, 0xc2, 0xde, 0x7e, 0xe5, 0xb6, 0x80, 0xe6, 0x5d, 0xe9, 0x33, 0xaf, 0xfc, 0xe2, 0x28, -0xb8, 0x26, 0x7a, 0x48, 0x28, 0xf7, 0x4d, 0xf7, 0xa5, 0x5e, 0xf0, 0x06, 0x14, 0x73, 0x5b, 0xe2, -0xcf, 0x43, 0x13, 0x63, 0xdd, 0xe4, 0x13, 0x1b, 0xf2, 0x2e, 0xf0, 0xab, 0xe0, 0x84, 0xf8, 0x8d, -0x4d, 0x70, 0x41, 0x59, 0x99, 0xba, 0x1d, 0x8d, 0x01, 0x9f, 0xba, 0xda, 0xe1, 0x86, 0x9a, 0xd6, -0x81, 0xf2, 0x01, 0xde, 0xab, 0x54, 0x79, 0x95, 0x1f, 0xf4, 0xfd, 0xd6, 0xc3, 0x5b, 0xa1, 0xe6, -0xaa, 0x26, 0x30, 0x63, 0x88, 0x97, 0x4e, 0x48, 0xef, 0xb1, 0x1f, 0xa0, 0x10, 0x3f, 0xd0, 0xfe, -0x8d, 0xb1, 0xbd, 0x43, 0xe1, 0xad, 0xd0, 0x13, 0x33, 0xf2, 0x73, 0x3f, 0x86, 0x16, 0x57, 0x60, -0x19, 0x8b, 0xd6, 0x63, 0x8e, 0xd2, 0x8a, 0x25, 0x50, 0x7b, 0x55, 0x37, 0x54, 0x40, 0x59, 0xe0, -0x49, 0x50, 0xf0, 0x72, 0x62, 0xf9, 0xb3, 0x16, 0x0c, 0x38, 0x06, 0xae, 0x9c, 0x03, 0x7a, 0xa4, -0xdc, 0xd6, 0xd9, 0x1f, 0x80, 0xab, 0xf5, 0x4e, 0xa4, 0xa8, 0xf5, 0xa1, 0xe1, 0x3f, 0x0f, 0x29, -0x8d, 0xfb, 0x87, 0x03, 0x9b, 0x02, 0x5b, 0x40, 0x4f, 0x6b, 0x8a, 0xbf, 0xdc, 0xfc, 0x4f, 0xbf, -0x0e, 0xcc, 0x0e, 0x34, 0x89, 0xb5, 0xf0, 0xe9, 0xc1, 0xd4, 0x1e, 0x15, 0xe4, 0x7d, 0x3d, 0x50, -0x34, 0x23, 0xf5, 0x0c, 0x7d, 0x43, 0xe1, 0x81, 0xe9, 0xfe, 0xd4, 0x56, 0xc2, 0x61, 0xfe, 0x9e, -0xf6, 0x8d, 0x8e, 0x19, 0xa9, 0xad, 0xe4, 0xa3, 0xf8, 0x86, 0xa4, 0x4e, 0x1f, 0x03, 0x83, 0x2b, -0xec, 0xc3, 0x5f, 0x87, 0x6b, 0x46, 0x6a, 0x0f, 0xbf, 0x97, 0x92, 0x8e, 0xf4, 0xcb, 0xc7, 0xee, -0x7b, 0x25, 0xe0, 0xa7, 0xfc, 0xd7, 0xfb, 0x53, 0xbb, 0x55, 0x9b, 0xc3, 0xdf, 0x76, 0xa7, 0xff, -0x38, 0x94, 0x3d, 0xbf, 0x22, 0xb5, 0x3b, 0x66, 0x71, 0xe4, 0xd5, 0xda, 0xa3, 0x27, 0x55, 0xd0, -0x9f, 0xc4, 0x72, 0x9f, 0xa9, 0x85, 0x2e, 0x79, 0x51, 0xf0, 0xbd, 0x60, 0x15, 0x7d, 0x9f, 0x97, -0xef, 0xc8, 0xd3, 0xe9, 0xa3, 0xa0, 0x3f, 0xd0, 0x27, 0x39, 0xf2, 0xde, 0x7d, 0xaa, 0x2a, 0x7f, -0x30, 0x58, 0xe3, 0xaf, 0x35, 0x85, 0xf6, 0xfc, 0xf9, 0x2e, 0xa5, 0x61, 0xff, 0x1e, 0x97, 0x9b, -0x3c, 0x85, 0x2a, 0xeb, 0x6a, 0x8d, 0x14, 0xe2, 0x08, 0xbc, 0xbe, 0x67, 0x4a, 0x33, 0xb6, 0x6f, -0x36, 0xb6, 0xb6, 0xae, 0x0d, 0x5b, 0xab, 0xac, 0x48, 0x3d, 0x43, 0xe3, 0xc5, 0x65, 0xfe, 0xf3, -0x5d, 0x0f, 0x0e, 0x89, 0x59, 0xcd, 0x5f, 0x3e, 0x86, 0xe5, 0xe2, 0x68, 0xbc, 0x32, 0x08, 0xfa, -0x5a, 0x63, 0x5b, 0x30, 0x9d, 0x13, 0xcb, 0xaa, 0x9b, 0xbf, 0xce, 0xb1, 0x8e, 0x63, 0x8b, 0x45, -0xec, 0xfc, 0x4c, 0x2c, 0x95, 0x48, 0xf8, 0xe3, 0xd8, 0x12, 0x11, 0xbb, 0x60, 0x5c, 0xde, 0xf6, -0x74, 0xde, 0x52, 0x11, 0xdb, 0x3e, 0x2e, 0xef, 0x4d, 0x84, 0xfb, 0x25, 0xc8, 0xaf, 0x30, 0xe6, -0xa6, 0x71, 0xf9, 0x16, 0x62, 0x3e, 0x8c, 0x31, 0x52, 0xcc, 0xc2, 0x71, 0x79, 0x16, 0x89, 0x3c, -0x16, 0x8a, 0x59, 0x34, 0x2e, 0x4f, 0xab, 0xc8, 0x63, 0xa3, 0x98, 0x56, 0x8e, 0x51, 0x02, 0xfb, -0xf7, 0xf4, 0x14, 0x20, 0x7d, 0xd4, 0x29, 0x03, 0x53, 0x84, 0xef, 0x5b, 0x8c, 0x33, 0x06, 0x21, -0x2f, 0x1d, 0xdb, 0x67, 0x3b, 0x44, 0xb1, 0xeb, 0xa8, 0x97, 0x39, 0xc6, 0x92, 0x8e, 0x51, 0x30, -0xdc, 0x8a, 0xbc, 0xbd, 0xdb, 0x58, 0xd5, 0x8f, 0x9c, 0x13, 0xe5, 0x04, 0x61, 0x91, 0xd3, 0xe4, -0xa7, 0x6b, 0xed, 0xc9, 0xa3, 0xb2, 0x1d, 0x03, 0x5e, 0xdf, 0x95, 0x21, 0xd0, 0x7b, 0x8d, 0x46, -0x94, 0x18, 0x44, 0x39, 0x23, 0x83, 0x7d, 0xf9, 0x54, 0xae, 0xc3, 0xe7, 0x58, 0xe7, 0x32, 0x2f, -0x5a, 0xb7, 0x4c, 0x8f, 0xf5, 0x0c, 0xbd, 0xb7, 0xce, 0xe1, 0x23, 0x2c, 0x70, 0xba, 0x02, 0x4a, -0x87, 0x65, 0x0c, 0xc7, 0x2d, 0x23, 0x94, 0x32, 0x91, 0x29, 0xc1, 0xc6, 0xb4, 0x17, 0xd8, 0x3f, -0xdc, 0x63, 0x15, 0x90, 0xf7, 0x49, 0x53, 0xd2, 0xb9, 0x0a, 0xd3, 0x71, 0xf1, 0x42, 0xca, 0xa5, -0x24, 0x32, 0x31, 0xf6, 0x4c, 0x2e, 0xbb, 0x32, 0x80, 0xd4, 0xf7, 0x0c, 0x9f, 0x54, 0x27, 0xfd, -0x79, 0x68, 0xd3, 0x80, 0xc3, 0x47, 0x2b, 0x37, 0xbf, 0xdc, 0x55, 0xf5, 0x3d, 0x6a, 0x01, 0xa7, -0xbe, 0x24, 0x9d, 0x5a, 0xd0, 0xb7, 0xb1, 0x09, 0x8a, 0xbe, 0xbd, 0x28, 0xf5, 0x4c, 0x14, 0xc6, -0xbc, 0x5e, 0x13, 0xc7, 0x35, 0xec, 0x1f, 0xee, 0xbb, 0x04, 0xdb, 0x50, 0xa3, 0xac, 0xeb, 0x8f, -0x4f, 0x69, 0xc2, 0x7c, 0xa6, 0x36, 0x5f, 0x3a, 0x26, 0x7e, 0xe9, 0x08, 0xc5, 0x24, 0x44, 0xf8, -0xfc, 0x4c, 0x78, 0x4f, 0x11, 0x8d, 0x45, 0x81, 0x6b, 0x1f, 0x50, 0xdc, 0x82, 0x4c, 0x5c, 0x5f, -0xb1, 0x28, 0x2d, 0x1d, 0xd7, 0x3e, 0x3b, 0xf4, 0xab, 0x3f, 0x6f, 0xc4, 0x98, 0x5f, 0x95, 0xd5, -0x83, 0xac, 0xac, 0x9f, 0x42, 0x5f, 0x61, 0xb9, 0xc9, 0x87, 0x2d, 0xf2, 0x93, 0xbd, 0xd3, 0x1b, -0x52, 0xfb, 0xa6, 0x37, 0xa5, 0x46, 0x32, 0xbe, 0x01, 0x0f, 0x4e, 0x6f, 0x4d, 0x1d, 0x6f, 0xf8, -0x10, 0x63, 0x9a, 0x73, 0xfc, 0x02, 0x5e, 0xe8, 0x6f, 0xa6, 0x7f, 0xe4, 0x29, 0x28, 0x12, 0xdf, -0xbc, 0xc8, 0x5d, 0xbc, 0x3b, 0x6c, 0x27, 0xfe, 0xda, 0xe1, 0x79, 0x7e, 0xde, 0x85, 0x14, 0xd4, -0xd6, 0x3e, 0x80, 0x23, 0xea, 0x50, 0xe0, 0xe9, 0xd4, 0x61, 0x65, 0x79, 0x6a, 0x74, 0xee, 0x87, -0xa9, 0x43, 0xa8, 0x27, 0xe4, 0x0b, 0x9f, 0x72, 0x2e, 0xe2, 0x66, 0xcf, 0x50, 0x69, 0x95, 0x05, -0xdf, 0xbb, 0xc3, 0x25, 0xd3, 0x77, 0xdd, 0xc8, 0x41, 0xda, 0x16, 0xad, 0x47, 0x68, 0x0e, 0x61, -0x1c, 0x79, 0x18, 0x3e, 0x4d, 0x7e, 0x9d, 0x1b, 0xc8, 0x0f, 0x60, 0x73, 0xea, 0x18, 0x95, 0x81, -0xf0, 0x1c, 0x4a, 0x97, 0xc0, 0x9e, 0x00, 0x01, 0x76, 0x7b, 0x66, 0xa4, 0xb6, 0x7b, 0x4c, 0x0a, -0x71, 0x30, 0xe1, 0x53, 0xef, 0x74, 0x64, 0xe7, 0x67, 0x1d, 0x14, 0x4a, 0x1e, 0x39, 0xb8, 0x6f, -0x6b, 0xd8, 0xab, 0x1e, 0x85, 0xb7, 0x64, 0xf8, 0xde, 0x8a, 0xd4, 0x59, 0xf2, 0xce, 0xc1, 0xbb, -0x10, 0x1c, 0xbd, 0x50, 0x8d, 0x7c, 0xef, 0x17, 0xbb, 0xa3, 0x25, 0xfc, 0xe4, 0xdd, 0x3e, 0x18, -0x25, 0x7d, 0xca, 0xdd, 0x9f, 0xda, 0x35, 0x88, 0x52, 0x69, 0x21, 0x4b, 0x86, 0x37, 0xd5, 0xf9, -0xe4, 0x9b, 0x0f, 0xaf, 0x9d, 0xc4, 0x7d, 0xac, 0x16, 0x79, 0x90, 0x67, 0xf2, 0x02, 0x76, 0x78, -0x67, 0x68, 0x1d, 0xed, 0xf1, 0x5d, 0x90, 0x2e, 0x15, 0xf5, 0x15, 0xcd, 0x2b, 0x7f, 0x45, 0xd3, -0x2f, 0x5e, 0x8b, 0x16, 0x09, 0x5f, 0xfa, 0x15, 0x4d, 0xdb, 0xef, 0x89, 0x1a, 0x77, 0x90, 0x84, -0xb3, 0x08, 0x59, 0x43, 0xb3, 0xf4, 0x9a, 0xbf, 0x42, 0x44, 0xa3, 0x53, 0x8f, 0xa3, 0xab, 0xed, -0xa6, 0x75, 0xc8, 0xf3, 0x0e, 0x4d, 0x47, 0xde, 0x21, 0xf0, 0x96, 0xdb, 0x66, 0xb4, 0x22, 0x76, -0xb5, 0x6e, 0xd4, 0xb4, 0x42, 0x43, 0xe3, 0xb9, 0x4f, 0x9b, 0x50, 0x5f, 0x13, 0x6f, 0x33, 0x52, -0x2f, 0x64, 0x9e, 0xe5, 0xcc, 0x93, 0x4e, 0x9c, 0x49, 0xa1, 0x9d, 0x49, 0xfc, 0xe1, 0xc2, 0xd1, -0x54, 0x82, 0x74, 0x46, 0xaf, 0x71, 0x3c, 0x5d, 0xb6, 0x35, 0xa9, 0x30, 0xb6, 0x24, 0x3e, 0x39, -0x77, 0x0f, 0x1f, 0x7b, 0x4f, 0x5f, 0x91, 0x3a, 0x07, 0x45, 0xf8, 0x9b, 0x44, 0x9e, 0x44, 0x1e, -0x04, 0x4b, 0xf0, 0xf7, 0x34, 0x4c, 0xba, 0x32, 0x40, 0xde, 0xd3, 0x53, 0xcf, 0x65, 0xbd, 0xa7, -0xab, 0x68, 0x12, 0x7f, 0xbd, 0x47, 0x3f, 0xd6, 0x7d, 0xfe, 0xcf, 0x7a, 0xf4, 0x9b, 0xc5, 0x1e, -0xfd, 0x96, 0x68, 0x1e, 0xfd, 0xd4, 0x1c, 0xdd, 0x2d, 0x00, 0x0b, 0x32, 0x7f, 0x15, 0x50, 0x0b, -0xa5, 0xfc, 0x14, 0x26, 0x2f, 0x5e, 0x28, 0xe1, 0x9f, 0x23, 0x6b, 0xba, 0xca, 0xa7, 0xdc, 0x19, -0xdc, 0xa4, 0xfa, 0x28, 0xac, 0x1a, 0xc3, 0x94, 0x0d, 0x6a, 0xd6, 0xe3, 0xdf, 0x05, 0x7e, 0xfe, -0xf6, 0xde, 0xff, 0xf5, 0x7e, 0xfe, 0x60, 0x96, 0xe6, 0x5b, 0xc8, 0x49, 0x7e, 0xfe, 0x50, 0xdb, -0x2c, 0xcd, 0xf1, 0xf1, 0x37, 0xeb, 0xab, 0x7c, 0xfc, 0xc1, 0x5b, 0xc2, 0xc7, 0x1f, 0x1c, 0xcd, -0x6a, 0x91, 0xec, 0x75, 0x67, 0x0f, 0xef, 0x12, 0x70, 0x4e, 0xf0, 0xf2, 0x07, 0x42, 0x37, 0x73, -0xe6, 0xe8, 0x5a, 0x1e, 0x17, 0xbc, 0x49, 0x9e, 0xe6, 0x42, 0xa4, 0x17, 0xed, 0x3c, 0x13, 0x62, -0xef, 0x50, 0xf8, 0x9e, 0xd5, 0xa3, 0x48, 0x87, 0x42, 0xed, 0xc5, 0x41, 0x5f, 0x26, 0x67, 0x3c, -0x01, 0x16, 0xd3, 0x09, 0x1c, 0xd4, 0x46, 0x7e, 0xb3, 0x22, 0x5e, 0x4b, 0x55, 0x73, 0x9c, 0xf6, -0x32, 0x0b, 0x5f, 0xf7, 0x6f, 0xe2, 0xa8, 0x93, 0x3c, 0x79, 0x91, 0x9d, 0x7f, 0xf9, 0x0c, 0x4b, -0x7f, 0x93, 0xad, 0x87, 0x87, 0xc5, 0xb9, 0xe6, 0xbc, 0x53, 0x1a, 0xa8, 0x7c, 0xda, 0x8b, 0x8c, -0xfc, 0xdd, 0xf1, 0xfa, 0x71, 0xec, 0x19, 0xda, 0x37, 0xff, 0x8d, 0x4a, 0xcf, 0x94, 0xfc, 0x70, -0xda, 0x3f, 0x9b, 0xa0, 0xb1, 0x7a, 0xc2, 0xa2, 0xcf, 0xe9, 0x11, 0xfb, 0x26, 0x57, 0x3b, 0xde, -0x78, 0x12, 0x4b, 0x5d, 0x06, 0xe6, 0x49, 0x2e, 0xb8, 0xd4, 0x85, 0xd4, 0xa3, 0x74, 0xa5, 0x46, -0x7f, 0x7f, 0x1c, 0x8a, 0xdc, 0xcb, 0xe8, 0x1b, 0xd6, 0xd4, 0xe8, 0x1f, 0x8e, 0xb3, 0x17, 0x04, -0x1c, 0xb5, 0xba, 0x5d, 0xed, 0x1b, 0x95, 0x0a, 0xb0, 0x6f, 0x7b, 0x1a, 0xec, 0x51, 0x80, 0xc1, -0x70, 0x17, 0x94, 0xc5, 0xd6, 0x84, 0x57, 0xe0, 0x6f, 0xaf, 0xc7, 0x3a, 0x17, 0xb5, 0x7f, 0xe4, -0x51, 0x3a, 0xd4, 0x28, 0x92, 0x05, 0xdd, 0x4a, 0x30, 0xb2, 0xc9, 0x53, 0x80, 0x7d, 0xe4, 0xf3, -0x14, 0x78, 0x74, 0xfc, 0x56, 0x41, 0xe7, 0x85, 0xda, 0x0d, 0x3c, 0xf3, 0x72, 0x9b, 0xdd, 0x6b, -0xd6, 0x4e, 0x44, 0xf0, 0x00, 0x79, 0xbf, 0xe2, 0x1d, 0xe3, 0xa5, 0xfc, 0x5b, 0xc2, 0xbf, 0xc5, -0xfc, 0x9b, 0xf1, 0xb8, 0x80, 0xa5, 0xd8, 0x04, 0x14, 0xe6, 0x6a, 0x6c, 0x4f, 0x10, 0x2d, 0x5d, -0xf2, 0x01, 0x24, 0x4f, 0xe8, 0xb9, 0xfa, 0x34, 0x4d, 0x93, 0xcd, 0x15, 0x77, 0xa0, 0x04, 0x10, -0x5e, 0xea, 0x10, 0x76, 0xec, 0xe7, 0x62, 0xbe, 0xb4, 0x33, 0x44, 0x85, 0xa5, 0xc3, 0xfa, 0xea, -0x41, 0xd2, 0x57, 0x73, 0xfd, 0xf2, 0x35, 0x63, 0x3f, 0x92, 0xe7, 0x4f, 0xa7, 0x1b, 0x6e, 0x1b, -0xef, 0x9f, 0x6f, 0xee, 0xb9, 0x8f, 0x83, 0x69, 0x4f, 0x83, 0xe3, 0xfc, 0xf3, 0xe5, 0x78, 0xfc, -0x42, 0xfe, 0xed, 0x5e, 0x38, 0x80, 0xd8, 0x4f, 0x87, 0xdb, 0xc3, 0x58, 0x56, 0x6c, 0x31, 0xda, -0x45, 0x87, 0x0f, 0xdd, 0x8d, 0xbc, 0xfc, 0xb8, 0x1b, 0x71, 0x94, 0x5f, 0xad, 0xca, 0x4e, 0x1d, -0x79, 0x63, 0x2d, 0x97, 0xdb, 0xd6, 0x62, 0x59, 0x91, 0xf9, 0x24, 0x55, 0x8e, 0xa3, 0x54, 0x39, -0x89, 0x5c, 0xec, 0x34, 0xef, 0xe0, 0xb7, 0x89, 0x1d, 0xfc, 0x91, 0x4d, 0x88, 0xb9, 0x19, 0xa9, -0x77, 0x3c, 0xf4, 0xfb, 0x36, 0xff, 0xfe, 0xd1, 0x43, 0xeb, 0xbb, 0xec, 0x77, 0x97, 0x6a, 0xe6, -0x33, 0x59, 0xb7, 0x65, 0x78, 0x4a, 0xbf, 0x7d, 0x3a, 0x6a, 0x00, 0x09, 0x5e, 0xc5, 0xd4, 0xb4, -0x67, 0x43, 0x97, 0x07, 0x50, 0x47, 0x4c, 0xda, 0x12, 0x11, 0xfa, 0xde, 0xb7, 0x70, 0x42, 0xec, -0x0a, 0xc4, 0xd3, 0x03, 0x0e, 0x7a, 0x1b, 0xc0, 0xb7, 0x6e, 0x8f, 0xc4, 0x9a, 0x76, 0xd8, 0xc9, -0x56, 0x7f, 0xac, 0x18, 0x7b, 0x61, 0xfb, 0xbf, 0x7c, 0x98, 0x3a, 0x1b, 0xb5, 0xe0, 0xd3, 0x0e, -0x7c, 0x1a, 0x8d, 0xf5, 0x65, 0x38, 0xe6, 0xce, 0x8f, 0xce, 0xa1, 0xac, 0x7f, 0x3a, 0x75, 0xf6, -0xbd, 0x21, 0xe4, 0xa5, 0xa3, 0x72, 0xe2, 0x8a, 0x54, 0x2a, 0xa9, 0x7d, 0xd3, 0xd9, 0xd1, 0xba, -0xb1, 0xfd, 0x22, 0x3e, 0xcb, 0x9c, 0x48, 0x9f, 0x99, 0xba, 0xbb, 0x35, 0xbd, 0x7e, 0x31, 0xe3, -0x6a, 0x30, 0x5a, 0x24, 0x4a, 0xc6, 0x72, 0x37, 0xa3, 0x7e, 0xef, 0x43, 0xdb, 0xb2, 0xf5, 0x1a, -0xe2, 0xa6, 0xdb, 0xaf, 0x21, 0x6e, 0xba, 0x23, 0x0d, 0x25, 0xec, 0xd4, 0xa0, 0x6c, 0x33, 0x27, -0xc8, 0xe3, 0x4d, 0x8f, 0x7d, 0x3b, 0xc2, 0xd0, 0x61, 0xa6, 0xb3, 0x69, 0x56, 0xa3, 0x36, 0xb4, -0x5a, 0xca, 0xd6, 0x81, 0x69, 0x45, 0x1d, 0x5d, 0xa1, 0x97, 0x3c, 0x3a, 0x84, 0x92, 0x4f, 0xd7, -0xfa, 0xee, 0x50, 0xeb, 0xc6, 0x09, 0x78, 0x58, 0x96, 0x83, 0xa5, 0x19, 0xa9, 0xd4, 0x84, 0xd8, -0xe5, 0x84, 0x25, 0xd4, 0x07, 0x5e, 0x42, 0xdd, 0x74, 0x37, 0x4a, 0xd8, 0x37, 0x88, 0xde, 0xfa, -0x80, 0x77, 0x3a, 0x2d, 0x07, 0x3d, 0xeb, 0x5a, 0x61, 0x94, 0xdc, 0xc7, 0xaf, 0xc7, 0x5e, 0xbc, -0x7e, 0x76, 0xea, 0x14, 0xf5, 0x22, 0x6b, 0x02, 0x5a, 0x3f, 0x56, 0x01, 0x7d, 0x5f, 0x76, 0x30, -0xb0, 0xce, 0xdf, 0xba, 0x71, 0xc2, 0xd7, 0x17, 0x4d, 0xd6, 0x26, 0x28, 0x8c, 0x3a, 0xbc, 0xb6, -0xe3, 0x3e, 0xaf, 0xaf, 0xe1, 0xf4, 0x10, 0x54, 0xac, 0x48, 0xbd, 0xf1, 0xdd, 0xc1, 0x07, 0x41, -0x41, 0x68, 0x8f, 0x0f, 0x91, 0x9d, 0xfa, 0xdd, 0xdb, 0xcd, 0x10, 0x30, 0xb6, 0xad, 0x55, 0xcd, -0xab, 0x21, 0xd0, 0x14, 0x68, 0x0c, 0x04, 0xea, 0x1b, 0x28, 0x76, 0xdb, 0xda, 0xc5, 0x89, 0x63, -0x43, 0x72, 0xe2, 0x86, 0x54, 0x6a, 0x74, 0xff, 0xd3, 0xa9, 0x37, 0xda, 0xd6, 0xcd, 0xd2, 0x3f, -0xff, 0x74, 0x6a, 0xb4, 0xf3, 0x50, 0x1a, 0x93, 0xa7, 0xc2, 0xec, 0x65, 0x38, 0x69, 0x39, 0xc6, -0x7b, 0x20, 0x48, 0x9a, 0x3d, 0x25, 0xbc, 0x65, 0xa1, 0xe2, 0x2b, 0x66, 0x1f, 0xd8, 0x0a, 0x24, -0x19, 0x6f, 0x77, 0x19, 0xba, 0x42, 0x89, 0x91, 0x2e, 0x30, 0x56, 0xf9, 0x3c, 0x79, 0xa1, 0x25, -0x86, 0xe8, 0x6c, 0xc2, 0xc8, 0x6a, 0xf6, 0xc0, 0x48, 0xb1, 0x2b, 0x38, 0xd6, 0xa2, 0xc5, 0x2e, -0x89, 0xdc, 0xa7, 0x79, 0x99, 0x4c, 0x5a, 0x36, 0x8b, 0xef, 0x3b, 0x5a, 0xde, 0x2e, 0x83, 0xaf, -0xf1, 0x07, 0x99, 0xb4, 0xd4, 0x8b, 0xd3, 0xa3, 0x95, 0x5a, 0xd7, 0x38, 0x8f, 0x98, 0xda, 0x88, -0x3b, 0x93, 0xd1, 0x4a, 0x2a, 0xc0, 0x3c, 0xfb, 0xdc, 0x87, 0xaf, 0x91, 0x1f, 0x48, 0x1a, 0x89, -0x28, 0xfb, 0x48, 0x2b, 0xe1, 0x70, 0x31, 0x47, 0xc7, 0xa3, 0x6e, 0x14, 0xa5, 0x25, 0x6a, 0x9b, -0x1c, 0x4e, 0xbe, 0x22, 0x51, 0xdb, 0x20, 0xee, 0xd5, 0x70, 0x1c, 0xda, 0x5e, 0x7f, 0x05, 0x6d, -0xb3, 0xaa, 0x07, 0x1d, 0x44, 0x5d, 0x28, 0x23, 0x6a, 0x9c, 0x88, 0x31, 0x0c, 0xbf, 0x31, 0x1d, -0xbe, 0x7d, 0xb0, 0xd3, 0x31, 0x5b, 0xec, 0x4b, 0x02, 0x0f, 0x96, 0xd9, 0xbe, 0xb1, 0x72, 0x10, -0xfb, 0xf9, 0xbe, 0xd6, 0x8d, 0xdb, 0xb6, 0xc2, 0x63, 0xdf, 0xe7, 0x1e, 0xca, 0x78, 0xce, 0x3c, -0x46, 0x58, 0xcb, 0xf5, 0x18, 0x21, 0x68, 0xda, 0x5c, 0x09, 0x92, 0x34, 0x2d, 0x06, 0xe6, 0xbd, -0xb3, 0x91, 0x77, 0xc4, 0x4d, 0xe2, 0xeb, 0x0c, 0x58, 0x83, 0x21, 0xbb, 0xe3, 0xba, 0xdc, 0x2f, -0x36, 0x60, 0x35, 0x86, 0x3d, 0x43, 0xb3, 0x9d, 0x7b, 0x77, 0xe6, 0xce, 0x76, 0x3a, 0x49, 0x1e, -0xdc, 0x86, 0x71, 0xf7, 0x92, 0x35, 0x6a, 0xdc, 0x3e, 0x71, 0xc4, 0x28, 0x3e, 0x8c, 0x7f, 0x00, -0xe3, 0x7b, 0x10, 0xf6, 0x47, 0x50, 0x4b, 0x7e, 0x1c, 0xb5, 0x8f, 0xc7, 0xf0, 0xf9, 0x31, 0x7c, -0x7e, 0x84, 0x7a, 0xa6, 0xe1, 0xb8, 0x21, 0x32, 0xa5, 0xd9, 0xb0, 0x20, 0xb0, 0xc5, 0xd0, 0x86, -0xcf, 0x6d, 0xf8, 0x1c, 0xd1, 0xc2, 0x6f, 0xc2, 0xe7, 0xc5, 0x18, 0xbe, 0x08, 0x9f, 0x17, 0xe1, -0xf3, 0x4d, 0x22, 0xdc, 0x58, 0x3f, 0xa5, 0xd9, 0x18, 0x0c, 0x6c, 0x31, 0xfa, 0xf0, 0xd9, 0x87, -0xcf, 0xe4, 0x6d, 0xe8, 0x01, 0x07, 0xd0, 0xe8, 0x32, 0xb6, 0x4c, 0xf5, 0xc3, 0x43, 0xe5, 0x60, -0x5c, 0x8b, 0xcf, 0x83, 0x53, 0x1b, 0xe0, 0x5e, 0x8f, 0x44, 0xde, 0x6a, 0x0d, 0xe1, 0x66, 0xa2, -0x86, 0xae, 0xc8, 0x66, 0x41, 0x5b, 0xf1, 0x7a, 0xc4, 0xfb, 0x03, 0x88, 0xaf, 0xcd, 0xc8, 0x23, -0xd7, 0xf4, 0xf8, 0x0e, 0xd0, 0x9b, 0x14, 0xd9, 0xec, 0xed, 0x87, 0xf8, 0xfe, 0x13, 0xf0, 0x40, -0xf6, 0x64, 0x6e, 0xaa, 0x13, 0x35, 0xeb, 0xb1, 0x91, 0x87, 0x60, 0xc1, 0x14, 0x7c, 0x86, 0x36, -0x7a, 0xdb, 0xfb, 0x32, 0x44, 0x02, 0x2e, 0x98, 0x7b, 0x09, 0x7f, 0x83, 0x92, 0x93, 0xa6, 0x8b, -0xd3, 0x2c, 0xd1, 0xd2, 0x74, 0x60, 0x9a, 0x5b, 0x38, 0xcd, 0xe2, 0x2c, 0x97, 0x53, 0xf8, 0xc9, -0xbd, 0x44, 0x5a, 0x43, 0xe3, 0x90, 0xe6, 0x77, 0xf3, 0x8c, 0xe5, 0xf5, 0x04, 0x1d, 0xda, 0xbd, -0xe4, 0x75, 0xdb, 0xe2, 0xb1, 0x89, 0x53, 0x30, 0x90, 0x3b, 0x18, 0xb6, 0x27, 0xba, 0x40, 0xe6, -0xf5, 0x8a, 0xbd, 0xfb, 0x43, 0xab, 0xcd, 0xe7, 0x79, 0x2d, 0xe2, 0x51, 0xd4, 0x85, 0x51, 0x83, -0x94, 0xed, 0xe9, 0x91, 0xf2, 0x81, 0x82, 0x5a, 0xbb, 0x85, 0x53, 0xfd, 0x3b, 0xb6, 0xa9, 0x20, -0x5e, 0x3d, 0xf2, 0x24, 0xf4, 0x22, 0x27, 0x69, 0x88, 0x6c, 0xba, 0x6a, 0x2e, 0xb4, 0x22, 0x57, -0xef, 0x65, 0x89, 0xe2, 0xe0, 0x79, 0xd7, 0xa4, 0xce, 0xc7, 0xf3, 0xc4, 0xa8, 0x4f, 0x4b, 0x8f, -0x70, 0xae, 0xb3, 0x98, 0x4b, 0xc4, 0xac, 0x11, 0x7a, 0xb6, 0xb4, 0x9e, 0xc2, 0x5f, 0x29, 0x8e, -0x6c, 0x0e, 0xfc, 0x5c, 0x8b, 0x39, 0x41, 0xb3, 0xc7, 0xe2, 0x59, 0xbf, 0x88, 0xbd, 0x95, 0x63, -0x0d, 0x95, 0x04, 0x79, 0x9b, 0x32, 0x1b, 0x65, 0x25, 0x70, 0x0e, 0xaf, 0xf0, 0xfa, 0xaa, 0x60, -0x8d, 0x34, 0x12, 0x28, 0xc6, 0x45, 0xd2, 0xa6, 0x97, 0xbc, 0xc0, 0x7b, 0xf4, 0x5a, 0xaa, 0xeb, -0x23, 0x74, 0xa2, 0x44, 0x6f, 0x9a, 0xcb, 0x71, 0x7e, 0x1f, 0x62, 0x32, 0x1d, 0xf6, 0xbc, 0x07, -0x48, 0x26, 0xdb, 0x6e, 0x22, 0x29, 0x5c, 0xef, 0xcb, 0x84, 0x3f, 0x23, 0xd2, 0x56, 0x40, 0xba, -0x0e, 0x0e, 0xdd, 0x2e, 0x42, 0xdd, 0x90, 0x09, 0xd9, 0xaa, 0x95, 0xe9, 0x81, 0xfa, 0x1b, 0x6c, -0x81, 0x18, 0xf9, 0x42, 0xd2, 0x6a, 0x9e, 0x2b, 0xe0, 0xab, 0xef, 0x87, 0xe3, 0xfd, 0x52, 0x93, -0x71, 0x0d, 0x38, 0x64, 0x25, 0x4c, 0xf9, 0x46, 0xd6, 0xe3, 0x48, 0xf2, 0x03, 0xed, 0xa2, 0xf3, -0x12, 0xac, 0x4e, 0xae, 0x75, 0xe4, 0x1e, 0x0f, 0x38, 0x82, 0x91, 0x9f, 0x54, 0x43, 0xc3, 0xa9, -0xd4, 0x67, 0xaf, 0x7f, 0x80, 0x6d, 0xce, 0xa3, 0xf7, 0x1b, 0x7c, 0xe0, 0xc3, 0x90, 0x93, 0xe3, -0x42, 0x42, 0x18, 0x72, 0x34, 0x1b, 0xe2, 0xb1, 0xdc, 0x20, 0x07, 0x62, 0x37, 0x78, 0xa0, 0x95, -0x7f, 0xdb, 0xf1, 0x97, 0xf6, 0xcc, 0x18, 0x18, 0x8e, 0x81, 0xc8, 0xe6, 0xb6, 0xdb, 0xdb, 0xd7, -0xcf, 0xbf, 0x07, 0xa1, 0xf1, 0xd2, 0x57, 0x6e, 0x34, 0x63, 0x19, 0x37, 0x6c, 0xbb, 0x1d, 0x2d, -0x83, 0x1e, 0xa7, 0xe4, 0x0c, 0xf5, 0x49, 0x6a, 0x49, 0xe0, 0xe7, 0x3d, 0xd5, 0x07, 0x08, 0xcf, -0x12, 0xf5, 0x64, 0xe0, 0x49, 0x68, 0x6d, 0xdd, 0x18, 0xc8, 0x7e, 0xed, 0xd4, 0x1f, 0x0e, 0x46, -0x8b, 0xb8, 0xb4, 0x2d, 0x11, 0x94, 0x3a, 0xee, 0xef, 0x87, 0xef, 0x47, 0x4b, 0xf3, 0x85, 0x34, -0x55, 0xbc, 0x6f, 0x69, 0xdf, 0x48, 0xb3, 0x36, 0xd1, 0xbe, 0xa9, 0xfd, 0x70, 0x3a, 0xa5, 0xc2, -0x7a, 0x4f, 0x3d, 0xdd, 0x79, 0x2c, 0xb4, 0x45, 0x36, 0xcb, 0x89, 0x14, 0xa4, 0x52, 0xf4, 0x4d, -0xef, 0xa3, 0xc8, 0xf9, 0xa2, 0xa0, 0xdf, 0x97, 0xa6, 0x8e, 0x76, 0xa6, 0x01, 0xfd, 0xae, 0x34, -0x4d, 0x8c, 0x93, 0x48, 0x9b, 0x59, 0x0a, 0x08, 0xef, 0xce, 0x1c, 0x6f, 0xa9, 0x27, 0x9a, 0xa1, -0x99, 0x77, 0x9a, 0x9d, 0x54, 0xe5, 0x9f, 0xec, 0xbd, 0x26, 0x04, 0xcf, 0x21, 0x35, 0x6b, 0x23, -0xfc, 0xc2, 0x91, 0x1f, 0x68, 0x72, 0x73, 0xef, 0xba, 0xe4, 0x72, 0xb4, 0x24, 0xe4, 0xba, 0x78, -0xcb, 0xc4, 0x93, 0x9c, 0x5c, 0x3e, 0xf6, 0x43, 0x5f, 0x8f, 0xdc, 0xce, 0x98, 0xb5, 0xb8, 0x9d, -0xbe, 0xdf, 0xa1, 0xc5, 0xfd, 0xf2, 0x27, 0xd7, 0xb5, 0x41, 0xe5, 0x75, 0xcb, 0x70, 0x5c, 0x79, -0x79, 0x35, 0x42, 0x1f, 0xf2, 0x05, 0x7c, 0x90, 0x68, 0x45, 0x73, 0x74, 0x9a, 0x0f, 0xdc, 0xd3, -0x96, 0x43, 0x2f, 0x84, 0x7a, 0x69, 0x37, 0x65, 0xb5, 0xbb, 0x45, 0xe1, 0xd9, 0x22, 0x03, 0x9d, -0xe7, 0xfe, 0x98, 0x83, 0xe8, 0x63, 0x80, 0x67, 0xe5, 0x24, 0xd2, 0x42, 0xc4, 0xf7, 0x4c, 0xed, -0x1b, 0x39, 0x76, 0x5d, 0x5c, 0xfa, 0xd3, 0x16, 0x21, 0x71, 0xf3, 0xf7, 0x4c, 0x06, 0xd4, 0x5e, -0x4c, 0x2e, 0xdf, 0xa2, 0xbb, 0x14, 0xeb, 0x7b, 0x43, 0x2e, 0x9f, 0xff, 0x24, 0x14, 0xd0, 0xdc, -0x0e, 0x62, 0x66, 0xdb, 0x21, 0x88, 0xa2, 0x10, 0xc4, 0x90, 0x4e, 0x0c, 0xa1, 0xde, 0x36, 0x53, -0x59, 0xd8, 0xff, 0xf5, 0x18, 0xb6, 0x2c, 0x1d, 0x46, 0x3e, 0xfd, 0x31, 0x2c, 0x80, 0x61, 0x2b, -0x73, 0xd3, 0xd5, 0x53, 0x59, 0xbd, 0xb9, 0xa9, 0x88, 0xc7, 0x57, 0x79, 0xa0, 0x76, 0xfb, 0x32, -0xb0, 0x74, 0x02, 0x8c, 0xe2, 0x73, 0x1d, 0x3e, 0x5b, 0xf1, 0xf9, 0x74, 0x95, 0x6d, 0x7b, 0x1b, -0xde, 0x8f, 0x6f, 0xc3, 0xd6, 0xe2, 0xfd, 0x48, 0xdc, 0x3b, 0x11, 0x53, 0xbc, 0x9e, 0x02, 0xf0, -0xf2, 0x77, 0xc9, 0x0e, 0xb7, 0xf1, 0xaf, 0xfd, 0xbb, 0x6d, 0x50, 0xf4, 0x5d, 0xc2, 0x4f, 0xf1, -0x77, 0x66, 0x43, 0x09, 0x3e, 0x59, 0xa0, 0x14, 0x7f, 0xad, 0xe0, 0xc0, 0x5f, 0x1b, 0x4c, 0xc2, -0x5f, 0x3b, 0x38, 0xf1, 0xb7, 0x08, 0xca, 0xf0, 0xb7, 0x18, 0xca, 0xf1, 0xb7, 0x04, 0x26, 0x7f, -0x97, 0xf6, 0x06, 0xbb, 0xbe, 0x83, 0xba, 0x2d, 0x5c, 0xce, 0x1e, 0x8c, 0x8d, 0xec, 0x01, 0x96, -0x46, 0xfc, 0xe6, 0x4a, 0xd2, 0xdd, 0x80, 0x2c, 0x7a, 0x7e, 0x2f, 0x9b, 0xe1, 0x83, 0x0a, 0x1a, -0x49, 0x3d, 0x50, 0x54, 0x09, 0xd3, 0x3d, 0x12, 0xfe, 0xba, 0x51, 0x7f, 0x04, 0x8f, 0x09, 0x31, -0x57, 0x49, 0x3a, 0xac, 0xb7, 0x12, 0x35, 0x57, 0xfa, 0x2d, 0xe2, 0x7c, 0x56, 0xa6, 0xd4, 0xff, -0x25, 0x2c, 0x85, 0x66, 0xc4, 0xe7, 0xef, 0xf7, 0xfd, 0x7e, 0xdf, 0xb4, 0x7b, 0x0e, 0xd1, 0x58, -0x76, 0xf1, 0x3e, 0xd9, 0x6a, 0xed, 0x6b, 0x4e, 0x48, 0x6a, 0x5f, 0x1e, 0x87, 0xb1, 0x07, 0x63, -0x64, 0x2f, 0xf6, 0xfa, 0x91, 0x8a, 0x1c, 0x73, 0xd9, 0xf2, 0x34, 0x3b, 0xe6, 0xc6, 0x5b, 0xd8, -0xeb, 0x6a, 0xd3, 0x78, 0xea, 0x10, 0xbb, 0x0a, 0x5f, 0x3e, 0x1b, 0xde, 0x84, 0xa3, 0xe0, 0x19, -0xa7, 0xde, 0xd9, 0x70, 0xa1, 0xd6, 0x25, 0xfb, 0x40, 0xba, 0xc6, 0x07, 0xcf, 0xa1, 0x55, 0xa0, -0xd1, 0xe6, 0x2f, 0x8e, 0xb3, 0x07, 0xb0, 0x91, 0x39, 0x27, 0xe0, 0xe5, 0xda, 0x7e, 0x78, 0x8b, -0x35, 0xa9, 0x9b, 0xca, 0x31, 0xe7, 0x1b, 0x77, 0xa1, 0xf6, 0xfe, 0x40, 0xdd, 0x30, 0xf6, 0x97, -0x85, 0xa4, 0x02, 0xca, 0xd9, 0x07, 0xae, 0xf7, 0x81, 0x79, 0xfe, 0x5d, 0xad, 0x1b, 0x9f, 0x1f, -0x85, 0xe3, 0xd1, 0x37, 0x51, 0xaf, 0x7c, 0xce, 0xc3, 0x67, 0x20, 0xbe, 0xf2, 0xae, 0xe0, 0xe4, -0xc8, 0xd7, 0x30, 0x67, 0x3b, 0x72, 0xbe, 0x39, 0x62, 0x94, 0xdd, 0x8f, 0x12, 0xf0, 0x11, 0x9e, -0x95, 0x20, 0x09, 0x43, 0x6f, 0x8f, 0x21, 0x36, 0xdc, 0xc0, 0x7c, 0xf7, 0x15, 0xe4, 0xbb, 0x68, -0xbf, 0x3c, 0x12, 0x57, 0x2e, 0xe2, 0x1f, 0xf7, 0x19, 0xc5, 0x87, 0xb2, 0xc3, 0x02, 0xe4, 0xab, -0xf4, 0x99, 0x29, 0x2d, 0xa8, 0x6f, 0x88, 0x7b, 0x31, 0xdd, 0x15, 0xd2, 0x28, 0x1e, 0x9b, 0xe2, -0x43, 0x2d, 0x88, 0x42, 0xe9, 0x3b, 0xea, 0xb2, 0xc0, 0x66, 0x7a, 0x9e, 0xb6, 0x04, 0xca, 0x48, -0xc3, 0x15, 0x2b, 0x43, 0xcd, 0xe7, 0xfe, 0xe4, 0x8c, 0x6c, 0x26, 0x6f, 0xd1, 0xd4, 0x57, 0xda, -0xfa, 0x8f, 0xc4, 0x21, 0x95, 0x99, 0x55, 0xa2, 0xcd, 0x59, 0x8f, 0xd1, 0x7b, 0xa7, 0xf3, 0x5b, -0x8d, 0xf6, 0x76, 0x1d, 0xbf, 0xcd, 0xca, 0x59, 0x3b, 0x6a, 0xe5, 0x90, 0xba, 0xcc, 0xaa, 0x11, -0xbd, 0x35, 0xb1, 0x7d, 0x74, 0x12, 0x35, 0x83, 0x80, 0xf8, 0x2a, 0x14, 0xc2, 0x14, 0xb2, 0xb7, -0x33, 0x27, 0x24, 0xc2, 0x21, 0xd7, 0xe5, 0x84, 0xb4, 0xb1, 0xe6, 0x4c, 0x9e, 0xa5, 0x9d, 0xec, -0x59, 0x7a, 0x32, 0x7b, 0x96, 0x2e, 0x65, 0xcf, 0xd2, 0x45, 0xec, 0x4d, 0xda, 0xca, 0xfe, 0xa5, -0x8d, 0xf8, 0xdb, 0x14, 0xe5, 0xef, 0xbf, 0xff, 0xa4, 0x27, 0xff, 0x82, 0xc7, 0x90, 0x03, 0xa9, -0xcc, 0xf7, 0x5e, 0xfd, 0x8e, 0xa0, 0xa6, 0xf6, 0x0b, 0xbe, 0x3d, 0xe2, 0x74, 0x5d, 0xed, 0x1b, -0xd5, 0x13, 0xdf, 0xcc, 0xef, 0x34, 0xdb, 0xea, 0xe4, 0x3d, 0xa2, 0x18, 0x2d, 0xcd, 0x52, 0x96, -0x74, 0x16, 0x21, 0xe9, 0x10, 0xa7, 0x77, 0xa1, 0x24, 0x28, 0xcd, 0x8c, 0xb8, 0x26, 0x94, 0x66, -0x64, 0xc7, 0xf9, 0xa0, 0x4c, 0xa4, 0x60, 0xcf, 0x49, 0x1e, 0xb2, 0xe5, 0x5a, 0x40, 0x78, 0xea, -0xe3, 0x55, 0x4f, 0xae, 0x2d, 0xbc, 0x0c, 0x2d, 0xcd, 0xfa, 0x5c, 0xc9, 0x89, 0xd4, 0x7c, 0x17, -0xf9, 0xff, 0x26, 0xaf, 0x86, 0x99, 0x32, 0x7d, 0xe4, 0x41, 0x3c, 0x93, 0x02, 0x63, 0x7e, 0xf2, -0x24, 0xac, 0x13, 0xfe, 0x63, 0x2f, 0x48, 0x5b, 0xa9, 0xc5, 0x0f, 0x91, 0x9f, 0xf0, 0x00, 0x96, -0x9f, 0xf6, 0x3d, 0xc1, 0xe7, 0xb5, 0xb2, 0xb7, 0x57, 0x84, 0x0e, 0xdb, 0x9f, 0xaa, 0x70, 0x42, -0xeb, 0xc6, 0x58, 0x60, 0x5c, 0xd9, 0x58, 0x9a, 0x23, 0x90, 0x5b, 0xde, 0xd8, 0x06, 0x2d, 0x75, -0x78, 0x6a, 0x00, 0x8a, 0x79, 0x36, 0xaf, 0x8c, 0xe2, 0xf7, 0x6b, 0x10, 0xa4, 0x31, 0xab, 0xad, -0x7d, 0x67, 0xea, 0xa0, 0x34, 0x3d, 0x90, 0xe5, 0x43, 0x4e, 0x88, 0xd5, 0x7f, 0xb3, 0x9a, 0x92, -0x47, 0xa8, 0x26, 0xad, 0x8e, 0xa1, 0x89, 0x75, 0xd0, 0xb7, 0xff, 0xb4, 0x92, 0x4a, 0x18, 0x4c, -0xaf, 0xf1, 0xe9, 0x4e, 0x5c, 0x6c, 0xdd, 0x0f, 0xdb, 0xff, 0xe8, 0xbc, 0xe5, 0x50, 0x1d, 0x58, -0x0e, 0x55, 0xf8, 0xac, 0xf2, 0xfa, 0xe5, 0xdf, 0x97, 0x8b, 0x5d, 0x06, 0xf4, 0x85, 0x13, 0x7b, -0x2c, 0x74, 0x2e, 0x87, 0xc0, 0x9c, 0x73, 0xa9, 0xa6, 0xe6, 0x73, 0xc9, 0xb7, 0x54, 0xf7, 0x8e, -0x0d, 0x48, 0x6d, 0xd4, 0x27, 0x93, 0xf1, 0xb7, 0x3a, 0x2a, 0x30, 0x75, 0x3f, 0xeb, 0x3c, 0x56, -0xb2, 0xcc, 0x49, 0xba, 0xa1, 0x9d, 0x6e, 0x71, 0xb6, 0x85, 0xef, 0x8d, 0x1e, 0x48, 0x7f, 0x5d, -0x5d, 0xaf, 0x67, 0x9b, 0x7b, 0x17, 0xd9, 0xdc, 0x95, 0x33, 0x70, 0x44, 0xce, 0xa6, 0x33, 0x21, -0x9d, 0xd3, 0x51, 0xef, 0x4f, 0x7b, 0xe8, 0x36, 0x89, 0xd5, 0x27, 0x97, 0x8f, 0xcf, 0x39, 0xb1, -0xa2, 0xec, 0xda, 0xd4, 0xe7, 0x38, 0xf4, 0x63, 0xd4, 0x22, 0x66, 0x93, 0x27, 0x5c, 0xa4, 0x80, -0x9a, 0x9c, 0xbd, 0x24, 0x7a, 0xcd, 0xbe, 0x27, 0xeb, 0xe0, 0x30, 0xd2, 0x93, 0xdb, 0x63, 0x9d, -0x7b, 0x6e, 0x6c, 0x41, 0x8e, 0x45, 0x4e, 0xe7, 0xdb, 0x09, 0x4b, 0xdd, 0xaa, 0xd9, 0xee, 0xc7, -0x51, 0x7a, 0xb9, 0xe7, 0x93, 0x8d, 0x6e, 0xcd, 0xa4, 0x43, 0x9e, 0xee, 0xc6, 0xd0, 0xd6, 0xdb, -0x51, 0xbf, 0x11, 0xe9, 0xc8, 0x6b, 0x32, 0x9d, 0x23, 0xe7, 0x16, 0x39, 0x33, 0xe5, 0x1d, 0xeb, -0xc9, 0xd7, 0xce, 0x1b, 0x21, 0xff, 0xf4, 0x0f, 0xd0, 0xaf, 0x80, 0xc2, 0x6a, 0xa1, 0xf3, 0x0c, -0x1d, 0x33, 0x52, 0x87, 0xaf, 0xf1, 0xc3, 0xe4, 0x35, 0x85, 0x07, 0x6e, 0x5f, 0x73, 0x7a, 0xf7, -0xed, 0x68, 0x0f, 0x1e, 0x46, 0xde, 0x4d, 0x1e, 0x64, 0x39, 0x55, 0xde, 0xf1, 0x2a, 0xdf, 0xf4, -0x66, 0x4c, 0xe3, 0x03, 0x17, 0xa6, 0x3d, 0x82, 0x69, 0x15, 0xb4, 0x6c, 0xdf, 0x83, 0xf2, 0x17, -0x5f, 0x5c, 0x94, 0xe8, 0x39, 0xbb, 0x3b, 0x41, 0x67, 0x1f, 0x32, 0x8f, 0xd9, 0xe0, 0xd1, 0x93, -0xc7, 0xea, 0x0f, 0xce, 0x91, 0xb4, 0xa3, 0xb3, 0x11, 0x5b, 0x37, 0xd2, 0xcc, 0x0b, 0xd2, 0x71, -0xe9, 0x2f, 0x3e, 0x80, 0xc7, 0x3a, 0x5a, 0x2b, 0x96, 0x43, 0x07, 0x79, 0xb3, 0xfe, 0x50, 0x51, -0x7d, 0xff, 0xfa, 0x5a, 0xac, 0x2e, 0xdc, 0x8d, 0xfd, 0x51, 0x8d, 0xbf, 0xd5, 0xd1, 0x4a, 0x1c, -0xad, 0x7a, 0xe1, 0xaf, 0x1a, 0x7b, 0x84, 0xe6, 0x00, 0xf5, 0x24, 0x21, 0x45, 0x29, 0x28, 0x09, -0x04, 0xcd, 0x3c, 0x2e, 0xa8, 0x54, 0x35, 0x56, 0x2c, 0x08, 0x3f, 0x10, 0xdd, 0x85, 0xfc, 0xa1, -0x38, 0x5a, 0x39, 0x91, 0x1e, 0x29, 0x4f, 0xac, 0x14, 0x25, 0x40, 0xe9, 0xeb, 0x4f, 0xc2, 0x56, -0xd5, 0xe6, 0xc6, 0xa7, 0x3f, 0x64, 0xf2, 0xfa, 0x3f, 0x80, 0x0e, 0x47, 0x38, 0x3b, 0x9f, 0x49, -0xd8, 0xbe, 0x89, 0xcf, 0xcf, 0x41, 0x9e, 0xee, 0x42, 0x2b, 0x79, 0x38, 0xf0, 0x74, 0x6a, 0x8f, -0xd2, 0xd2, 0xf0, 0x61, 0x6a, 0x17, 0x73, 0xac, 0x87, 0x5c, 0x6e, 0x94, 0x66, 0xec, 0x49, 0x9d, -0x4f, 0xd6, 0x62, 0xfc, 0xce, 0x3d, 0x77, 0xfe, 0x31, 0x6d, 0xb6, 0x64, 0x5d, 0xac, 0x0f, 0xed, -0xb7, 0x93, 0x3c, 0xd7, 0x09, 0x40, 0x9c, 0x98, 0x7a, 0xa6, 0x6d, 0xd1, 0xed, 0xd3, 0x1b, 0xc5, -0x99, 0x31, 0x0d, 0x34, 0xbf, 0xdd, 0x9c, 0x3a, 0xa8, 0xcd, 0x6f, 0x1f, 0xd2, 0xac, 0xec, 0x7d, -0x69, 0x2b, 0x5b, 0x58, 0x8a, 0x08, 0x47, 0x76, 0x5e, 0x5b, 0x9b, 0xb3, 0xe1, 0x93, 0x62, 0xd2, -0x73, 0xda, 0x0f, 0xf0, 0xac, 0x82, 0x83, 0x67, 0x15, 0x9c, 0x24, 0x39, 0xd5, 0x72, 0xe2, 0xac, -0xaf, 0xba, 0x27, 0x78, 0x3c, 0x47, 0x8a, 0x74, 0xcc, 0xc6, 0x92, 0x35, 0x9f, 0xe7, 0xab, 0x41, -0xd1, 0xb1, 0x05, 0xbd, 0xf9, 0x62, 0x3e, 0xcf, 0x7b, 0x1d, 0x07, 0x9f, 0x44, 0x7a, 0x66, 0xcf, -0xe7, 0x1e, 0x39, 0x3d, 0x6f, 0x86, 0x23, 0xa4, 0x2a, 0x66, 0xa1, 0x19, 0xab, 0xc8, 0xce, 0xd1, -0x65, 0xad, 0x1b, 0xb1, 0x07, 0xdd, 0x39, 0x9e, 0xcd, 0x39, 0xfc, 0x7c, 0x71, 0x0e, 0x16, 0xf5, -0xad, 0x1b, 0x2f, 0xee, 0xef, 0x1c, 0xc7, 0xce, 0x1e, 0x9e, 0xaf, 0x12, 0xe7, 0x0d, 0x59, 0x95, -0x06, 0xb2, 0x9b, 0xc9, 0xea, 0x24, 0xdb, 0xd9, 0xd5, 0x4c, 0x73, 0x77, 0x99, 0x15, 0x89, 0x43, -0xae, 0x82, 0xef, 0xad, 0x73, 0x17, 0xfc, 0x97, 0xdb, 0x11, 0x4b, 0xb4, 0x16, 0xf8, 0x14, 0xcd, -0x4d, 0x29, 0xf6, 0x4d, 0x03, 0xfd, 0xc5, 0xbb, 0x12, 0x9d, 0x20, 0x3f, 0x5c, 0x56, 0x0f, 0xf6, -0x5d, 0xa4, 0x1d, 0xc6, 0xf1, 0xe9, 0x12, 0x7e, 0xea, 0xc3, 0x27, 0xdd, 0x2e, 0xb2, 0x89, 0x6e, -0x0b, 0x6f, 0x01, 0x3d, 0x86, 0x84, 0xe2, 0x29, 0x9a, 0x99, 0xc2, 0x31, 0xad, 0x67, 0xcc, 0xed, -0x99, 0x7b, 0xee, 0x8b, 0xcf, 0x08, 0xa3, 0x1e, 0x43, 0x05, 0xcd, 0x81, 0xad, 0x47, 0x9b, 0x00, -0x43, 0x73, 0x46, 0xc8, 0x71, 0xb6, 0xc6, 0xdd, 0x8c, 0xfb, 0x3d, 0x1a, 0xee, 0x0f, 0x53, 0xda, -0xd6, 0x4c, 0x5a, 0xb4, 0xce, 0x0f, 0x2b, 0xb4, 0x6a, 0x21, 0xd6, 0x52, 0x30, 0x4f, 0x6a, 0x1f, -0xf6, 0xe7, 0x11, 0x84, 0x94, 0xfa, 0xf7, 0x18, 0xf5, 0x2f, 0x9f, 0xe1, 0x23, 0xfa, 0x76, 0xef, -0xb8, 0xbe, 0x3d, 0x99, 0xb3, 0x66, 0x71, 0x24, 0xed, 0x81, 0x5f, 0xac, 0xbb, 0x72, 0xf9, 0x47, -0x18, 0x16, 0xa7, 0xe6, 0x81, 0x3f, 0x4f, 0x9b, 0x19, 0x98, 0x81, 0xd6, 0xfb, 0x03, 0xf4, 0x2b, -0xf8, 0xaa, 0xd5, 0x82, 0x1a, 0x2e, 0x9d, 0x06, 0x72, 0x2f, 0x87, 0x61, 0x2e, 0x11, 0x5e, 0x30, -0x54, 0x49, 0xb6, 0xf8, 0x3d, 0x53, 0xbb, 0x50, 0xb3, 0xdb, 0x40, 0x74, 0xe1, 0x45, 0x3a, 0xf1, -0x98, 0xe3, 0x2e, 0x2c, 0xe7, 0x21, 0x6d, 0x7e, 0x68, 0x75, 0xe4, 0x01, 0x0c, 0x4d, 0x62, 0xa8, -0x5b, 0x84, 0x6a, 0xb4, 0xdb, 0x05, 0x65, 0x51, 0x0b, 0x52, 0x0c, 0xf2, 0xe6, 0x73, 0x2f, 0xb7, -0x6e, 0x44, 0xda, 0x3a, 0x05, 0x2f, 0xb0, 0x27, 0xff, 0xe1, 0xa9, 0xd8, 0x46, 0xd8, 0x4d, 0xf3, -0xe3, 0xb1, 0x45, 0xfd, 0xe6, 0x5d, 0x4f, 0xa7, 0xce, 0x74, 0x2e, 0xa8, 0x40, 0xcd, 0x69, 0xee, -0x29, 0x39, 0x50, 0xef, 0x86, 0xe7, 0xdb, 0x9a, 0xd4, 0x1a, 0xf2, 0x07, 0x70, 0x20, 0x81, 0x5a, -0x5f, 0x4d, 0x29, 0x6a, 0x88, 0xf8, 0x2b, 0xf1, 0x2f, 0x20, 0xff, 0x30, 0x37, 0xc1, 0x88, 0x31, -0x3d, 0x67, 0x2a, 0x20, 0xcd, 0xaf, 0x6e, 0x23, 0x5f, 0x83, 0x34, 0x3b, 0xf7, 0x7c, 0x55, 0x68, -0xc1, 0x9d, 0xa8, 0xc1, 0x1b, 0xb7, 0xdd, 0xb9, 0x72, 0x27, 0x59, 0x13, 0x04, 0xa5, 0xee, 0x44, -0xe4, 0x01, 0x34, 0x7e, 0x20, 0x6d, 0x5d, 0x18, 0x1e, 0xa5, 0x27, 0xe4, 0x17, 0xc8, 0xfb, 0x89, -0x33, 0xe0, 0x9b, 0x49, 0xc4, 0x18, 0xdb, 0x19, 0x5f, 0x3f, 0x66, 0x79, 0xf3, 0x86, 0x16, 0x86, -0xf2, 0x81, 0x3c, 0xc0, 0x78, 0x67, 0xa4, 0x4e, 0xf1, 0xbc, 0x4a, 0xb1, 0x16, 0xfe, 0x94, 0x90, -0xc1, 0x74, 0xf2, 0x18, 0xe5, 0xca, 0x4a, 0x64, 0xc3, 0x7c, 0xed, 0xf9, 0x81, 0xeb, 0x88, 0x33, -0x54, 0x4d, 0x6d, 0x81, 0xc1, 0xb6, 0x2e, 0xa8, 0x66, 0xe9, 0x5b, 0x29, 0xb0, 0xf2, 0x45, 0x17, -0x6a, 0x1c, 0x0e, 0xf6, 0x91, 0xdf, 0x05, 0xde, 0x6d, 0x43, 0xb1, 0x92, 0xeb, 0x7c, 0xe0, 0x55, -0xed, 0x5a, 0x48, 0x25, 0x86, 0xe8, 0x31, 0xa4, 0xd2, 0xff, 0x61, 0xea, 0xd0, 0xb8, 0xb9, 0x7a, -0x18, 0x0b, 0x3a, 0x56, 0xa4, 0xf6, 0xb0, 0x94, 0xc8, 0xf3, 0xe8, 0x1c, 0x0d, 0xb9, 0xde, 0xdf, -0x71, 0x34, 0x3e, 0x2c, 0x46, 0xa3, 0xe2, 0x4d, 0x6b, 0x27, 0xa8, 0xa9, 0x94, 0x3a, 0xa6, 0x41, -0x51, 0x79, 0x7a, 0x45, 0x03, 0x39, 0x4d, 0x6f, 0xf1, 0x8e, 0x44, 0xe7, 0xc2, 0x1b, 0x13, 0xec, -0xf1, 0x3e, 0xd1, 0xd9, 0x96, 0xb3, 0xa6, 0xe1, 0x82, 0x59, 0x10, 0xba, 0xe8, 0x9f, 0x82, 0x7f, -0xd5, 0xda, 0x8a, 0x45, 0x0d, 0xaf, 0x67, 0xf4, 0x94, 0x56, 0x29, 0x1b, 0xc4, 0x2a, 0x46, 0xdc, -0xae, 0x24, 0x54, 0x25, 0x73, 0x82, 0x11, 0xad, 0x62, 0x90, 0x97, 0xe6, 0x62, 0x4f, 0x33, 0x4a, -0x82, 0xa5, 0xec, 0xfd, 0x57, 0xcf, 0xde, 0x7f, 0xb5, 0x33, 0x48, 0x68, 0xa6, 0x8d, 0xe4, 0x29, -0xf2, 0x89, 0x2d, 0xc8, 0x27, 0x10, 0x4e, 0x92, 0x69, 0x24, 0x47, 0xa3, 0x36, 0xc1, 0x07, 0xce, -0xde, 0xc3, 0x1c, 0x3b, 0x40, 0x33, 0x8a, 0x0a, 0xf2, 0x63, 0xfa, 0x5e, 0xa4, 0x6a, 0x19, 0x4c, -0x56, 0xee, 0x54, 0xc8, 0xeb, 0xda, 0x32, 0xb4, 0xd6, 0xe9, 0xc9, 0x8e, 0x3c, 0x81, 0x4e, 0x15, -0x70, 0xbd, 0x78, 0x02, 0x47, 0x49, 0x42, 0x49, 0xb4, 0xa1, 0x14, 0xce, 0x72, 0x9c, 0xb4, 0x1e, -0x40, 0xf5, 0x6a, 0x27, 0xbd, 0x14, 0xed, 0xff, 0x08, 0xcc, 0xf3, 0x96, 0x40, 0xb5, 0x98, 0xf7, -0x53, 0x04, 0x9e, 0x4a, 0x49, 0xfe, 0xf2, 0x0a, 0x51, 0xe9, 0x04, 0xff, 0xf8, 0xf1, 0xe6, 0x0f, -0xc0, 0x21, 0xe6, 0x0d, 0x75, 0xc4, 0xcb, 0x2d, 0x34, 0x2b, 0xf9, 0xfa, 0xde, 0x86, 0xf7, 0xe5, -0x00, 0x5a, 0xe6, 0x0f, 0xb4, 0x6f, 0xfc, 0xc9, 0xde, 0x38, 0xa8, 0x8e, 0xf2, 0x65, 0xa0, 0x2f, -0xfa, 0xc5, 0x10, 0xd0, 0xfd, 0xd2, 0x55, 0x43, 0x32, 0x48, 0xda, 0x93, 0x1e, 0x64, 0xb4, 0x35, -0xac, 0x0b, 0xee, 0x2c, 0xf7, 0x21, 0xdf, 0xb1, 0xb6, 0x25, 0xb6, 0xff, 0x78, 0xf1, 0x81, 0x1b, -0xa4, 0x40, 0x8c, 0x2d, 0x4d, 0x0b, 0x4b, 0x55, 0xa6, 0x4a, 0xb1, 0x42, 0x21, 0xe0, 0x2d, 0x03, -0xe1, 0x71, 0x5f, 0x11, 0xfa, 0x63, 0x59, 0xda, 0xe3, 0x3e, 0x6a, 0x08, 0xe6, 0x9c, 0x73, 0x67, -0x08, 0x22, 0x37, 0x94, 0xd7, 0x4c, 0x07, 0xfd, 0xaf, 0x86, 0xab, 0xa6, 0x83, 0xf1, 0xa5, 0x13, -0xe0, 0x52, 0x1a, 0xf6, 0xbf, 0x88, 0xd6, 0x45, 0x31, 0xda, 0xe1, 0x3e, 0x90, 0x63, 0x65, 0xdd, -0x66, 0xf6, 0xee, 0xe6, 0x55, 0x6d, 0x78, 0xd7, 0xc5, 0xec, 0xf8, 0xab, 0xa7, 0x73, 0xc2, 0xed, -0x83, 0x6a, 0x99, 0x77, 0x50, 0x2d, 0x15, 0x3e, 0x86, 0xec, 0x09, 0x45, 0x3e, 0x32, 0x74, 0x09, -0xa6, 0xbc, 0x24, 0x40, 0xab, 0xe8, 0xca, 0xa0, 0xf0, 0xc4, 0x9f, 0xdb, 0x5b, 0xe9, 0x7e, 0xba, -0x10, 0x82, 0x6a, 0x84, 0xe0, 0x97, 0x59, 0x08, 0x02, 0xe3, 0x20, 0x98, 0xac, 0x41, 0x50, 0xab, -0x41, 0x50, 0xcc, 0x10, 0xb8, 0x55, 0x27, 0x8e, 0x70, 0x3b, 0xfd, 0x7a, 0xed, 0xea, 0x64, 0x7a, -0x26, 0xab, 0x1b, 0xad, 0x3f, 0x17, 0x48, 0xef, 0xdc, 0x99, 0x18, 0x48, 0xb8, 0x10, 0x0e, 0xa3, -0x62, 0x17, 0x3b, 0xef, 0x04, 0xe5, 0x78, 0x15, 0xde, 0x89, 0xea, 0x41, 0xac, 0x78, 0xf8, 0xb4, -0x82, 0x9c, 0xb5, 0x8d, 0x76, 0x92, 0x15, 0xa5, 0x9e, 0x80, 0x38, 0x0b, 0x5e, 0xf3, 0x10, 0x2d, -0x64, 0xc5, 0x08, 0x9d, 0x84, 0x42, 0xb3, 0xab, 0xe4, 0xcb, 0x96, 0x4f, 0x52, 0x6a, 0x21, 0x8f, -0xf1, 0x2e, 0x17, 0x8e, 0x89, 0x20, 0xaf, 0x66, 0x71, 0x09, 0xd8, 0x3f, 0x08, 0xb3, 0x77, 0x3a, -0x94, 0xf7, 0x4a, 0x3b, 0x06, 0x62, 0xd6, 0xd5, 0xf2, 0x73, 0x03, 0x68, 0x99, 0x3f, 0x4f, 0x33, -0xdb, 0xdc, 0x92, 0xfa, 0x6e, 0x0b, 0xb7, 0x04, 0xe4, 0x20, 0xfb, 0xd1, 0xd5, 0xa1, 0x1e, 0x72, -0x8f, 0xda, 0x42, 0x3b, 0xd2, 0xbc, 0xcb, 0xf9, 0xab, 0xb8, 0xa2, 0x3a, 0x37, 0xef, 0x94, 0xd5, -0xd3, 0xd9, 0x49, 0xd5, 0x28, 0xb3, 0xcb, 0x91, 0x3e, 0x57, 0x3b, 0xc8, 0xcb, 0xf2, 0xd7, 0xa6, -0xba, 0x12, 0x53, 0xe9, 0xbf, 0x36, 0x95, 0x93, 0x7c, 0x19, 0x32, 0x34, 0x81, 0x34, 0x34, 0xd2, -0x73, 0x6a, 0x11, 0x63, 0x76, 0x3e, 0x63, 0x16, 0xa4, 0xc7, 0x31, 0xcd, 0x83, 0x5f, 0x5b, 0x52, -0x85, 0xda, 0xf4, 0xb5, 0x69, 0x66, 0x20, 0x97, 0xfa, 0xba, 0x34, 0x95, 0x8e, 0xe0, 0x1b, 0x4f, -0x40, 0x98, 0x4e, 0x7e, 0x9b, 0x3e, 0x27, 0x75, 0xf0, 0xfa, 0x70, 0xea, 0xd0, 0xf5, 0x91, 0xd4, -0x9b, 0xd3, 0x03, 0xa9, 0xc3, 0xd7, 0x37, 0xa6, 0x8e, 0x5c, 0xef, 0x4f, 0x1d, 0x45, 0xfd, 0xe7, -0x18, 0x49, 0x4f, 0x75, 0xfe, 0xd7, 0x96, 0x36, 0xf5, 0xcb, 0x4b, 0x0b, 0xa0, 0x16, 0x8b, 0xd7, -0x51, 0x2c, 0xf5, 0x18, 0x96, 0xfa, 0x1e, 0x96, 0x7a, 0x1c, 0x4b, 0x3d, 0x49, 0xab, 0x75, 0x28, -0xe3, 0x46, 0x3c, 0xd6, 0xf4, 0xca, 0x3e, 0x79, 0xdd, 0x9e, 0x8e, 0xe3, 0x2f, 0x75, 0x16, 0xf9, -0x82, 0xb5, 0xda, 0x0d, 0xb6, 0x5f, 0x7e, 0x00, 0xae, 0x91, 0x41, 0xd4, 0xb3, 0x8a, 0x31, 0xc7, -0x28, 0xf1, 0x90, 0x78, 0x9e, 0x23, 0x38, 0xf2, 0x04, 0xb4, 0xf1, 0xf9, 0x7b, 0xfe, 0xd4, 0x41, -0x92, 0xb1, 0x73, 0x3f, 0xc4, 0x52, 0x32, 0xeb, 0x4d, 0x38, 0xda, 0x8b, 0xc8, 0x67, 0x3d, 0xd2, -0x85, 0xb9, 0x1a, 0x61, 0x46, 0xfd, 0xcb, 0xdc, 0x5b, 0x56, 0x1e, 0x44, 0xdd, 0x26, 0x8c, 0xf0, -0x8c, 0xa0, 0x26, 0x76, 0x68, 0x36, 0x9d, 0xda, 0x87, 0x70, 0xd2, 0xa9, 0xda, 0x8d, 0x1f, 0xa6, -0xce, 0xe2, 0xfd, 0x08, 0x96, 0x78, 0x8c, 0xd6, 0x3f, 0x68, 0x07, 0x04, 0xc2, 0x78, 0x9a, 0x56, -0xd1, 0x08, 0x46, 0x9a, 0xb3, 0x10, 0x10, 0x92, 0x2c, 0xe0, 0x13, 0x63, 0xb6, 0x69, 0xa7, 0x62, -0x7d, 0x73, 0x0a, 0x2d, 0xfd, 0x86, 0x14, 0xda, 0x94, 0x4b, 0xa1, 0x84, 0x71, 0xc4, 0xbc, 0x15, -0xb1, 0x5e, 0x82, 0x58, 0xa7, 0xaf, 0xb4, 0x8b, 0x10, 0xeb, 0x76, 0xc2, 0xb8, 0x13, 0x35, 0x7c, -0x41, 0xa1, 0x5f, 0x9b, 0x8a, 0x29, 0xf4, 0x6b, 0x53, 0x5d, 0x8c, 0x42, 0x9f, 0x9f, 0x40, 0xa1, -0x5b, 0x88, 0x42, 0xbf, 0xb6, 0xa4, 0x69, 0x6a, 0xd3, 0xd7, 0xa6, 0x71, 0xab, 0x8e, 0xaf, 0x4d, -0x33, 0x3d, 0x87, 0xa6, 0xc2, 0xd8, 0x57, 0x73, 0x98, 0xa6, 0x0e, 0x5f, 0x1f, 0x48, 0xbd, 0x95, -0xa1, 0x50, 0xea, 0xb3, 0x10, 0x51, 0xe8, 0xd7, 0x96, 0x36, 0x75, 0x7c, 0x69, 0x48, 0x91, 0x87, -0xf0, 0x7a, 0x13, 0x4b, 0x3d, 0x8c, 0xa5, 0x1e, 0xc1, 0x52, 0xb3, 0x14, 0x4a, 0x6b, 0x99, 0xa1, -0x2f, 0xa1, 0xd0, 0x9f, 0x21, 0x85, 0x9a, 0x99, 0x42, 0xed, 0x54, 0xc7, 0x7f, 0x90, 0x42, 0x4b, -0x90, 0x42, 0x8b, 0x91, 0xf3, 0xba, 0x42, 0x2f, 0x22, 0x84, 0xe6, 0x72, 0x84, 0xbc, 0xb7, 0xcc, -0x19, 0x3c, 0xb8, 0x55, 0xa3, 0x51, 0x5f, 0xea, 0x90, 0x46, 0x97, 0x07, 0x11, 0x62, 0xa2, 0xd1, -0x51, 0xa6, 0xd1, 0x39, 0x7f, 0x35, 0x8d, 0x1e, 0x26, 0x1a, 0x75, 0xa2, 0xc6, 0x5d, 0xae, 0xd1, -0xa8, 0x6b, 0x8e, 0x12, 0x20, 0x4d, 0xbb, 0x02, 0x65, 0xa7, 0x76, 0x2a, 0x08, 0xf3, 0x61, 0x6f, -0x05, 0x94, 0x73, 0x6f, 0xd7, 0x50, 0x6f, 0xc7, 0xfa, 0x89, 0x16, 0xe8, 0x94, 0x05, 0xb2, 0xa8, -0x50, 0xbb, 0x71, 0x91, 0x1c, 0x44, 0xa8, 0x4b, 0xb0, 0xd5, 0xc5, 0x35, 0x1a, 0x1f, 0x70, 0x75, -0x09, 0xec, 0xf6, 0x95, 0xab, 0xe5, 0xdf, 0x28, 0xdd, 0x55, 0x87, 0x9e, 0xc1, 0x16, 0x06, 0x53, -0x87, 0xa9, 0x35, 0x88, 0xff, 0x63, 0x78, 0xbd, 0x37, 0xbd, 0x25, 0x75, 0x1c, 0x71, 0x7f, 0xf2, -0xfa, 0x86, 0xd4, 0x29, 0xec, 0x87, 0xd3, 0x6a, 0x78, 0x62, 0x59, 0xe9, 0x1e, 0xad, 0xc9, 0x2d, -0xcb, 0xf5, 0xa5, 0x65, 0xd1, 0x0a, 0x66, 0x00, 0xcb, 0x6a, 0x4c, 0x9d, 0xbe, 0xbe, 0x39, 0xf5, -0x09, 0x62, 0x8c, 0xce, 0x14, 0x3d, 0x2b, 0x7a, 0x88, 0xfb, 0xf4, 0x70, 0x76, 0x3f, 0x91, 0x4a, -0xa7, 0xf9, 0xe5, 0x7b, 0x64, 0x47, 0x60, 0x9c, 0x56, 0x56, 0x9f, 0xda, 0xa5, 0xd9, 0x48, 0xff, -0x31, 0xe9, 0x75, 0x86, 0xf0, 0xee, 0x46, 0xbc, 0x57, 0x68, 0x78, 0xa7, 0xbd, 0x30, 0x74, 0xba, -0x22, 0x9d, 0x01, 0xa8, 0x34, 0x12, 0x8f, 0xa8, 0xed, 0x07, 0xc7, 0xef, 0xf7, 0x94, 0x47, 0xf8, -0x1c, 0x14, 0x6b, 0xc6, 0xde, 0x5a, 0x8e, 0xfa, 0xd4, 0x24, 0x47, 0x50, 0x99, 0x06, 0x8f, 0x6d, -0x7a, 0x02, 0x1e, 0xdf, 0xf6, 0x24, 0x94, 0xde, 0x42, 0x10, 0x5a, 0x23, 0x3b, 0x4f, 0x39, 0x5a, -0x39, 0x1e, 0x6d, 0xcb, 0x33, 0xda, 0x39, 0x80, 0xf9, 0x7d, 0x67, 0x0e, 0xdd, 0xed, 0x11, 0x67, -0xa6, 0x27, 0x0b, 0xba, 0x59, 0xff, 0x59, 0x1b, 0xb3, 0xc4, 0x0b, 0xb7, 0xad, 0x8d, 0xce, 0x8a, -0xa7, 0x48, 0x0e, 0x93, 0xfe, 0x53, 0x45, 0x96, 0xfe, 0x74, 0xb0, 0xa3, 0x96, 0x4b, 0xfb, 0x16, -0x90, 0xb7, 0xb6, 0xf9, 0x36, 0x85, 0x68, 0x1d, 0xd4, 0x4b, 0xfa, 0x8d, 0x6f, 0x93, 0x9f, 0x9f, -0xd3, 0x67, 0xef, 0xa1, 0xed, 0xa1, 0xd6, 0xf1, 0xca, 0x7c, 0xe0, 0x82, 0xdc, 0xf2, 0xd7, 0xe5, -0x4e, 0x43, 0x63, 0xe2, 0x6f, 0x5b, 0xd4, 0x60, 0xdc, 0x72, 0xb1, 0x72, 0xbe, 0x71, 0x29, 0x4f, -0x69, 0x27, 0xd6, 0x50, 0x3f, 0xd9, 0x3c, 0x06, 0x47, 0xe3, 0x84, 0x7e, 0x3a, 0xa8, 0x51, 0xfa, -0x11, 0xc2, 0x78, 0x39, 0xad, 0xc6, 0x6a, 0x27, 0x4a, 0xd1, 0x89, 0x3c, 0x6b, 0x1c, 0x6f, 0xde, -0xe3, 0x5a, 0x8e, 0x76, 0x25, 0x62, 0x1f, 0x71, 0xae, 0x2f, 0x77, 0x21, 0x04, 0x86, 0x0c, 0xae, -0xf9, 0x3b, 0x78, 0x69, 0xa1, 0xf8, 0x0e, 0xbe, 0x1b, 0xa4, 0xb6, 0xe6, 0x33, 0x2e, 0x60, 0x4b, -0xa8, 0x54, 0xa9, 0x44, 0xfc, 0x3f, 0x83, 0xf8, 0x7f, 0x8a, 0xf1, 0x6f, 0xa5, 0xef, 0xf0, 0x4f, -0x3e, 0x86, 0xf8, 0xa7, 0xbd, 0x23, 0x20, 0xb9, 0x3c, 0x56, 0xc2, 0x92, 0x28, 0xab, 0xa0, 0x9b, -0xca, 0x27, 0x88, 0xc6, 0x7f, 0x47, 0xbf, 0x60, 0x78, 0x3e, 0xf9, 0xaa, 0x01, 0xfe, 0x86, 0x9e, -0xbe, 0xab, 0xd4, 0x33, 0xf7, 0x38, 0x7a, 0x3d, 0xca, 0xcd, 0xd4, 0x7b, 0xf8, 0x6b, 0xc3, 0xb1, -0x1c, 0x4c, 0x9d, 0xc0, 0x31, 0x7e, 0xea, 0xdb, 0xbe, 0xd4, 0x5f, 0xe8, 0x9b, 0x0a, 0x1c, 0x77, -0xf6, 0xd8, 0xc2, 0xee, 0xc9, 0x9a, 0x64, 0x10, 0x5a, 0x58, 0xaf, 0x5a, 0xc1, 0xa3, 0xb2, 0x9a, -0xf6, 0x4c, 0x46, 0xa3, 0x2a, 0xdd, 0x7d, 0xb1, 0x26, 0x8e, 0x55, 0xa2, 0x0b, 0xf8, 0x3d, 0x11, -0x9b, 0x45, 0x27, 0x08, 0x44, 0x43, 0xea, 0xac, 0xc0, 0x8c, 0xd4, 0x27, 0x6a, 0xf0, 0xdb, 0x68, -0xc9, 0xe0, 0xbd, 0x1e, 0xef, 0x32, 0xde, 0xab, 0xf1, 0xae, 0xc3, 0x7b, 0x05, 0xde, 0xf5, 0x78, -0x77, 0xe2, 0xdd, 0x80, 0xf7, 0x32, 0xbc, 0x1b, 0xf1, 0x5e, 0x8c, 0x77, 0x13, 0xde, 0xad, 0x78, -0x37, 0xe3, 0x5d, 0xdf, 0xfa, 0x61, 0xea, 0x13, 0xeb, 0x0c, 0x7a, 0x5e, 0x5c, 0x4b, 0x7b, 0x60, -0xb8, 0xd7, 0xd0, 0xfa, 0xe7, 0x9d, 0x2d, 0x2e, 0xfe, 0x2d, 0xe7, 0x5f, 0x27, 0x53, 0xcc, 0xd1, -0x2c, 0x3e, 0xcc, 0x23, 0xda, 0x89, 0x22, 0x17, 0xee, 0x74, 0xa1, 0x1e, 0x1b, 0xd6, 0x7a, 0xec, -0x58, 0xfa, 0xac, 0xbb, 0xf4, 0x18, 0x71, 0x55, 0x70, 0x8f, 0xad, 0xc3, 0x31, 0x71, 0x52, 0xf4, -0x19, 0xf6, 0x17, 0x8d, 0x9a, 0xdc, 0x3e, 0xe3, 0xf1, 0xa1, 0x04, 0xd1, 0x2e, 0x7a, 0x6c, 0xd3, -0x96, 0x9c, 0xf1, 0x81, 0xfd, 0xf3, 0x81, 0x9c, 0x19, 0x1f, 0xf7, 0x78, 0xf2, 0xff, 0xaa, 0xfe, -0x99, 0x94, 0xd3, 0x3f, 0xc7, 0x44, 0xcf, 0x7c, 0x7b, 0x19, 0x5c, 0x92, 0x3a, 0x81, 0xfd, 0xf2, -0x01, 0xef, 0x6c, 0x41, 0xce, 0x94, 0xa1, 0xdd, 0x8b, 0xed, 0xf8, 0x29, 0x62, 0x2c, 0x1c, 0xcb, -0xd6, 0x9a, 0xb7, 0x30, 0x07, 0x0b, 0xb6, 0x09, 0xa7, 0x85, 0xd6, 0xa7, 0xf6, 0xfc, 0xc7, 0xf9, -0xcb, 0x5f, 0xb3, 0x4b, 0xe8, 0xaf, 0xda, 0x51, 0xf4, 0x83, 0xaf, 0x9e, 0x27, 0x0f, 0x2c, 0x31, -0x86, 0xe8, 0xeb, 0x44, 0x87, 0x87, 0xbc, 0x56, 0x2a, 0xfe, 0xfd, 0xc3, 0x53, 0xfa, 0xb1, 0xbc, -0x49, 0x52, 0x51, 0x7b, 0x82, 0xbd, 0xf0, 0xda, 0xa3, 0x27, 0x32, 0x5f, 0xd6, 0x2c, 0x85, 0x56, -0x1c, 0xa9, 0xbd, 0xbb, 0x68, 0x87, 0x97, 0x8d, 0xd6, 0x44, 0xd9, 0x4b, 0x76, 0x5e, 0xe4, 0x56, -0xb5, 0x18, 0x79, 0x5b, 0x87, 0x87, 0xbe, 0x8f, 0xb7, 0xa7, 0x3d, 0x67, 0xb7, 0x6f, 0x4c, 0x7f, -0x3f, 0x43, 0x3b, 0xfa, 0xc6, 0xe5, 0xb5, 0x37, 0x9e, 0x4a, 0x1d, 0xbe, 0xef, 0x15, 0x4e, 0x69, -0xc1, 0xdc, 0x25, 0x94, 0xdb, 0x19, 0xe2, 0xfc, 0xdf, 0xc9, 0xe6, 0x4f, 0x7f, 0x81, 0x43, 0x75, -0x87, 0x9f, 0x80, 0xd6, 0xd8, 0x64, 0x2a, 0x41, 0x71, 0x49, 0x8b, 0xe9, 0x0c, 0x0f, 0x63, 0x88, -0xde, 0xa8, 0xdc, 0x74, 0x8e, 0x09, 0xa9, 0x1d, 0x14, 0xef, 0x70, 0x49, 0x8b, 0xb2, 0xa9, 0x69, -0x36, 0x3f, 0x93, 0x43, 0x12, 0x39, 0x42, 0x7f, 0x96, 0xf8, 0xbb, 0x3a, 0xe4, 0x1c, 0xad, 0xb1, -0x0a, 0xf2, 0xdf, 0x8a, 0x79, 0x02, 0x5a, 0x1e, 0x7a, 0x23, 0xeb, 0x1d, 0xfb, 0xb1, 0xd2, 0xc3, -0xdf, 0xc4, 0x64, 0xf2, 0x22, 0x1f, 0x4e, 0xb6, 0xbc, 0x1d, 0x14, 0xbe, 0xae, 0x4d, 0xd4, 0xc6, -0x6c, 0xad, 0x08, 0x63, 0x38, 0x5b, 0x2b, 0xe6, 0xb4, 0xe7, 0xc2, 0x59, 0x79, 0xc5, 0x97, 0xd6, -0x3b, 0xeb, 0xaf, 0xab, 0x37, 0xd3, 0x56, 0x45, 0xab, 0xb5, 0xe9, 0xe2, 0x98, 0xa1, 0x3c, 0x59, -0xec, 0x78, 0x3d, 0x60, 0xa3, 0x14, 0x02, 0xa7, 0x58, 0x6b, 0x5d, 0x36, 0x57, 0x68, 0x38, 0x17, -0x3f, 0x2a, 0x7d, 0xd7, 0xd1, 0x11, 0x1a, 0xe6, 0x9e, 0x99, 0x94, 0x0e, 0x4d, 0xf7, 0xec, 0x45, -0xcb, 0x9a, 0xf4, 0x8d, 0xca, 0x2a, 0x9a, 0x58, 0x96, 0x58, 0x1b, 0xc0, 0xd2, 0x8a, 0xaa, 0x3c, -0xbc, 0xf3, 0xa7, 0x97, 0xf1, 0xe2, 0x72, 0x2c, 0x91, 0x26, 0x67, 0x71, 0x22, 0xd6, 0x75, 0xc9, -0x3f, 0x66, 0x2a, 0x95, 0xc1, 0x09, 0xd1, 0x9f, 0x82, 0x23, 0xa9, 0x23, 0x37, 0x96, 0x6b, 0xb9, -0x34, 0x1d, 0x9f, 0xa5, 0x25, 0xd1, 0x53, 0x19, 0x88, 0x15, 0xc4, 0x99, 0x23, 0xa7, 0xa7, 0xa6, -0xc1, 0x92, 0x71, 0x78, 0x2b, 0x25, 0xca, 0xa4, 0x50, 0x2e, 0xaf, 0x38, 0x4b, 0x9b, 0xa2, 0x0f, -0x33, 0x5f, 0x87, 0x61, 0x3f, 0x7a, 0x73, 0xe1, 0x26, 0x4c, 0x94, 0x67, 0xe1, 0x46, 0x4c, 0x2c, -0x1b, 0x87, 0x09, 0x77, 0x06, 0x13, 0x97, 0x65, 0x31, 0x91, 0xf6, 0x76, 0x7e, 0x35, 0xd1, 0x45, -0x29, 0x96, 0x59, 0x86, 0x65, 0x3a, 0x10, 0x1f, 0xe5, 0xec, 0x89, 0x36, 0x5d, 0xb6, 0xbb, 0xdc, -0x25, 0xb9, 0x27, 0xe2, 0x24, 0xf4, 0x62, 0x68, 0x77, 0xa5, 0x1b, 0xa1, 0x4f, 0xd7, 0xa3, 0xc3, -0x7a, 0x1c, 0xa8, 0x85, 0x76, 0x8c, 0x8f, 0xe7, 0x3a, 0x4b, 0xd2, 0x29, 0xc8, 0xbf, 0x79, 0xf0, -0x2e, 0xf6, 0xe8, 0x47, 0x75, 0x3a, 0xb1, 0x4e, 0x97, 0xcb, 0x03, 0xf5, 0x48, 0x73, 0x41, 0xac, -0xbb, 0x92, 0x4e, 0x50, 0xc1, 0xba, 0x6b, 0xe8, 0x1c, 0x8f, 0x49, 0x1e, 0x68, 0xc8, 0xc0, 0x50, -0x55, 0xe1, 0x92, 0x6e, 0xcb, 0x6d, 0x1f, 0x95, 0x1f, 0x7a, 0x49, 0x9c, 0x9f, 0x94, 0x81, 0xc1, -0x18, 0xb9, 0x95, 0x62, 0xbd, 0x2e, 0x63, 0x48, 0x75, 0xa0, 0x86, 0xd7, 0x31, 0x3e, 0x1d, 0xc3, -0x72, 0x49, 0x9a, 0x0b, 0x30, 0x2c, 0x7c, 0x52, 0xdd, 0x77, 0x09, 0x16, 0xf6, 0xc0, 0x4b, 0xa7, -0x68, 0x22, 0x1c, 0x6e, 0xf2, 0xbc, 0x8d, 0x70, 0x54, 0x21, 0x1c, 0x35, 0xa5, 0x1e, 0xb8, 0x3e, -0x0b, 0x87, 0xdb, 0x25, 0xad, 0xbf, 0x08, 0x1c, 0xeb, 0xc6, 0xc1, 0x61, 0xf8, 0x52, 0x38, 0xd6, -0x65, 0xe0, 0xb8, 0x62, 0x1c, 0x1c, 0xbb, 0x18, 0x27, 0xbc, 0x03, 0xda, 0xa1, 0x79, 0x3a, 0x44, -0x58, 0xe6, 0x93, 0xff, 0x24, 0x84, 0x65, 0x16, 0xc2, 0x12, 0x40, 0x58, 0x9a, 0x6a, 0x3d, 0x10, -0xae, 0x43, 0x82, 0x28, 0xf3, 0xc0, 0x3c, 0x5a, 0xcd, 0x0e, 0x3f, 0x89, 0x30, 0xd5, 0xb8, 0x96, -0x48, 0xcf, 0x68, 0x30, 0x2d, 0xcf, 0xc2, 0x14, 0xda, 0x13, 0xfa, 0xa5, 0xf0, 0x63, 0x8e, 0x5a, -0x8c, 0x80, 0x8b, 0x4e, 0xc5, 0x5a, 0xae, 0xc1, 0x55, 0x8e, 0x56, 0x43, 0xc7, 0x85, 0x69, 0x19, -0xb6, 0x32, 0x4e, 0x9d, 0x2f, 0x60, 0x5b, 0x28, 0x70, 0xc4, 0xdf, 0x5f, 0x52, 0x7f, 0x21, 0x6c, -0x15, 0x5a, 0x7f, 0x55, 0x21, 0x6c, 0x35, 0x08, 0x5b, 0x1d, 0xc2, 0x36, 0xab, 0x94, 0xfa, 0x2b, -0x0d, 0x13, 0xe1, 0xe9, 0x91, 0x0b, 0x61, 0xd2, 0xf0, 0xb4, 0x3c, 0x07, 0x4f, 0x69, 0x78, 0x1c, -0xb9, 0xf0, 0xe4, 0xe0, 0x69, 0x72, 0x2e, 0x2c, 0x2d, 0xbb, 0xfe, 0x83, 0xb0, 0x3c, 0xf0, 0xbf, -0x05, 0x96, 0x6f, 0x4f, 0x84, 0x25, 0x3d, 0xbe, 0x11, 0x86, 0x62, 0xe2, 0x25, 0xe3, 0x38, 0x53, -0xe5, 0x37, 0xe2, 0x4c, 0x97, 0x67, 0xc7, 0x63, 0x66, 0x8c, 0x73, 0x99, 0xe3, 0xca, 0x73, 0x38, -0x5c, 0xb2, 0x31, 0xb7, 0xbc, 0x71, 0x9c, 0x83, 0xca, 0x9c, 0x24, 0xca, 0xcc, 0xf0, 0x0e, 0xe7, -0x97, 0x95, 0x9b, 0xcb, 0x8b, 0x64, 0xcb, 0x37, 0xe6, 0x45, 0x53, 0x2f, 0xc2, 0x8b, 0x2e, 0x2c, -0xcf, 0xf6, 0x8d, 0xcb, 0x2b, 0x9f, 0x58, 0x5e, 0x9a, 0x0f, 0xd9, 0x3d, 0x70, 0x45, 0x91, 0x07, -0xae, 0x2c, 0xf6, 0xc0, 0x55, 0xa8, 0x6e, 0x4c, 0xcf, 0x8c, 0xbd, 0x5a, 0xc7, 0x12, 0xb9, 0x68, -0x3c, 0x1f, 0x02, 0xe6, 0xbe, 0xf8, 0xcb, 0x27, 0x7a, 0x09, 0x7b, 0x66, 0x1c, 0x57, 0x22, 0x5e, -0xed, 0x4d, 0xf3, 0xea, 0x2f, 0x4b, 0xcd, 0xf0, 0x5c, 0x95, 0xe5, 0xdd, 0x82, 0x47, 0xa1, 0x2c, -0xd4, 0xd3, 0x2e, 0xd5, 0xa8, 0x4b, 0x78, 0x48, 0x76, 0x29, 0x51, 0x87, 0x78, 0x2a, 0xb6, 0x47, -0xcb, 0x68, 0xaf, 0xfd, 0xee, 0x44, 0xb4, 0x94, 0xca, 0xd5, 0x0d, 0xc7, 0x8a, 0xe3, 0x4a, 0xe4, -0xd6, 0xb8, 0x19, 0xaf, 0x42, 0xbc, 0xec, 0x78, 0x95, 0xa2, 0xae, 0xe3, 0x63, 0x1d, 0xf5, 0x34, -0xcd, 0xe8, 0x3a, 0x35, 0xab, 0x02, 0x39, 0xe4, 0x42, 0x8f, 0x8e, 0x56, 0x6c, 0x78, 0x65, 0xa6, -0x94, 0x76, 0x32, 0xcf, 0x3e, 0xf7, 0xd9, 0xbe, 0xc8, 0x7d, 0x1c, 0x4a, 0xfb, 0xa7, 0x4b, 0x6f, -0xa2, 0xb5, 0x59, 0x59, 0xdb, 0xdf, 0xb9, 0x96, 0x57, 0xf3, 0x30, 0x74, 0x11, 0xad, 0xf8, 0xc8, -0x5a, 0xba, 0x51, 0xfe, 0xaa, 0xae, 0x54, 0xa4, 0x53, 0x66, 0xa4, 0x4e, 0xf3, 0x0e, 0x1a, 0x33, -0xaf, 0x19, 0xee, 0x44, 0xd8, 0x0a, 0xb7, 0x27, 0xa2, 0xd5, 0xb4, 0x0f, 0x94, 0x74, 0xaa, 0x7e, -0x88, 0xd2, 0x2e, 0xec, 0x51, 0xb4, 0xc5, 0x1f, 0xf3, 0xd6, 0x43, 0xbe, 0x0a, 0x30, 0xdc, 0x33, -0x8b, 0xbe, 0x1d, 0x81, 0xdd, 0xd6, 0xa7, 0xc9, 0xdf, 0x4b, 0xea, 0x2c, 0x3e, 0x3f, 0x87, 0xe1, -0xeb, 0x7b, 0xec, 0x18, 0x5e, 0x99, 0xce, 0x79, 0x16, 0xa2, 0x36, 0xce, 0x19, 0xc7, 0x7c, 0x16, -0x8c, 0x1f, 0xea, 0xb9, 0x82, 0xf3, 0x6d, 0xc8, 0xe4, 0xbb, 0x4d, 0x6d, 0xef, 0x51, 0x30, 0xac, -0x3c, 0x9d, 0x27, 0x05, 0xb1, 0xb0, 0x35, 0x41, 0x1f, 0xb8, 0xc4, 0x9a, 0xac, 0x8c, 0xf5, 0x58, -0x00, 0xef, 0x18, 0x10, 0x6d, 0x53, 0xeb, 0x7b, 0x4a, 0x31, 0x6d, 0x38, 0x9d, 0x16, 0xe3, 0x2a, -0xb5, 0xb8, 0x1a, 0xd5, 0x15, 0x97, 0xd4, 0xf2, 0xb8, 0x41, 0x75, 0xc4, 0x0b, 0xd4, 0xc9, 0x71, -0xbd, 0x3a, 0x29, 0x6e, 0x55, 0x4b, 0xe2, 0x79, 0x6a, 0x51, 0xdc, 0xac, 0xda, 0xe2, 0x26, 0xd5, -0x12, 0x37, 0xaa, 0xc6, 0xb8, 0x0e, 0x75, 0x0b, 0xb9, 0xe5, 0x43, 0xab, 0x76, 0xb2, 0x7c, 0x1c, -0xd4, 0x4f, 0xb4, 0x2f, 0x39, 0xad, 0xca, 0x13, 0x50, 0x7c, 0xf5, 0x52, 0x40, 0x7d, 0x7f, 0xca, -0x52, 0xf2, 0x9f, 0xc3, 0xd8, 0x47, 0x2b, 0xda, 0x5b, 0x4b, 0xd8, 0x2f, 0x27, 0xec, 0xaf, 0x40, -0xcb, 0x9f, 0x7a, 0x20, 0xbd, 0xcb, 0xb6, 0x98, 0xd7, 0xd1, 0x74, 0xcd, 0xe7, 0x3e, 0x0d, 0x6b, -0x27, 0xcf, 0x8b, 0x3d, 0xb6, 0xc5, 0x14, 0xca, 0x3b, 0xfc, 0xd2, 0x3b, 0x6c, 0xd3, 0xbd, 0x35, -0x03, 0xec, 0x91, 0xcd, 0xec, 0xa3, 0x9f, 0xbe, 0x06, 0xc2, 0x76, 0x94, 0xcf, 0xc0, 0xfe, 0x99, -0x91, 0x1a, 0x5d, 0x94, 0x78, 0x6f, 0x48, 0x50, 0x99, 0x83, 0x76, 0x45, 0xda, 0x1b, 0xde, 0x87, -0x02, 0xfa, 0x12, 0x56, 0x2d, 0x43, 0xfb, 0xd9, 0x05, 0x95, 0xf4, 0x45, 0x06, 0x3f, 0x79, 0x9f, -0x4b, 0x44, 0x8d, 0xca, 0xd5, 0x43, 0x80, 0x16, 0x62, 0xc0, 0x69, 0x8f, 0x1e, 0xb9, 0xd6, 0x0f, -0x45, 0xd7, 0xd2, 0x6a, 0x6c, 0xf1, 0xe5, 0x2b, 0x52, 0x29, 0x94, 0xea, 0xf9, 0x2d, 0x1f, 0x96, -0x69, 0xed, 0xe3, 0xd5, 0x0b, 0xfb, 0xf8, 0xbb, 0x37, 0xfd, 0xfe, 0x2c, 0xb5, 0x71, 0xfc, 0x93, -0xf7, 0x59, 0xb0, 0x88, 0x27, 0xfb, 0xb3, 0x90, 0x9f, 0xf1, 0x85, 0x95, 0xbc, 0x2c, 0x01, 0xc9, -0x4b, 0xcf, 0x40, 0xb2, 0x78, 0xc7, 0x7f, 0xc8, 0x9f, 0x93, 0xf0, 0xd7, 0xb4, 0xf8, 0xe6, 0xde, -0xde, 0x5b, 0xba, 0x56, 0xde, 0xb2, 0xbc, 0xb2, 0xa7, 0x73, 0xd5, 0xca, 0x5b, 0x7b, 0x6e, 0xe9, -0x54, 0x6e, 0x5e, 0xb1, 0x34, 0x76, 0xf3, 0x8c, 0x15, 0x35, 0xb5, 0xcb, 0x95, 0xea, 0xab, 0x2b, -0xab, 0xc6, 0xbb, 0x70, 0xba, 0x30, 0x3d, 0x79, 0x72, 0x4a, 0x16, 0x4e, 0x42, 0x78, 0xee, 0x1a, -0x98, 0x66, 0x6e, 0xc2, 0x67, 0x13, 0x24, 0x6d, 0xff, 0x8e, 0xf7, 0xba, 0x4c, 0x5d, 0x15, 0x18, -0xb2, 0x89, 0x9f, 0x92, 0x85, 0xf1, 0x5b, 0x7b, 0x97, 0x76, 0x2d, 0xed, 0xfd, 0x61, 0xc6, 0x27, -0x4d, 0xd6, 0xe1, 0x10, 0x24, 0xed, 0xa1, 0x34, 0x74, 0xbc, 0xe7, 0xc6, 0x77, 0x0d, 0xed, 0x90, -0x2d, 0xb9, 0xc0, 0x53, 0x82, 0x9a, 0xe3, 0xdb, 0x20, 0x69, 0xdb, 0x9b, 0xf6, 0x58, 0xa0, 0xad, -0xf3, 0x04, 0x32, 0x9e, 0x0a, 0x92, 0xb6, 0xe7, 0xc9, 0x73, 0x41, 0x6e, 0xea, 0x42, 0x35, 0xc7, -0xab, 0x02, 0xf9, 0x43, 0xe8, 0xc8, 0xf1, 0x6c, 0x90, 0xb4, 0x3d, 0x3a, 0xc1, 0x1f, 0x42, 0xd2, -0xb6, 0xed, 0x02, 0x7f, 0x08, 0x49, 0xdb, 0x70, 0xe4, 0xbe, 0x1c, 0x98, 0xbe, 0xd2, 0xef, 0x01, -0xd5, 0x22, 0x3c, 0x1f, 0xd0, 0x4e, 0x9c, 0xc8, 0x0f, 0x42, 0x7f, 0x56, 0x68, 0x9f, 0x75, 0x59, -0xd6, 0x83, 0x3c, 0xfb, 0x60, 0xb7, 0xcf, 0x1c, 0xfd, 0x11, 0xf9, 0xa3, 0x7b, 0xc4, 0xfb, 0x43, -0x7a, 0xab, 0xba, 0x0e, 0x0e, 0x83, 0x7d, 0x7b, 0x28, 0x5a, 0x33, 0x73, 0x34, 0x21, 0x5d, 0x24, -0x7c, 0xf2, 0xcc, 0x51, 0xb8, 0x48, 0xf8, 0x8d, 0xbb, 0x43, 0x83, 0x6d, 0x01, 0x55, 0xee, 0x95, -0xd2, 0xe5, 0x81, 0x2f, 0x21, 0x3c, 0x12, 0x3f, 0x12, 0x0e, 0xc4, 0x40, 0xf2, 0xf1, 0x8a, 0x66, -0x3d, 0xa6, 0x06, 0xda, 0xeb, 0x59, 0x54, 0x4d, 0xbb, 0x5a, 0x82, 0xc3, 0xcb, 0x81, 0xb6, 0x95, -0x82, 0x4e, 0xc4, 0x64, 0xc2, 0xec, 0xbd, 0x3a, 0xda, 0x2b, 0x5f, 0x14, 0xa1, 0x1d, 0x6b, 0x97, -0xb6, 0xd0, 0x97, 0x79, 0x98, 0xaa, 0x20, 0x9b, 0x8a, 0x7d, 0xae, 0x4f, 0xc2, 0xb0, 0xc2, 0x6c, -0x18, 0x79, 0x6b, 0x67, 0x0f, 0xfc, 0x6e, 0x75, 0x42, 0x0c, 0xa6, 0xd6, 0x47, 0x8b, 0xf9, 0xa4, -0x12, 0xf2, 0xde, 0x7f, 0x98, 0x64, 0x46, 0x2f, 0x9d, 0x6c, 0xbb, 0x95, 0xf1, 0x6d, 0xd3, 0x52, -0x32, 0xa6, 0x33, 0xb5, 0xdc, 0x87, 0xcf, 0xfa, 0xdc, 0x77, 0x6d, 0x8d, 0xb6, 0x60, 0x5c, 0x8d, -0xe5, 0x18, 0x62, 0xca, 0xa9, 0x2d, 0x9d, 0xab, 0x30, 0x27, 0x57, 0xa9, 0x5a, 0x45, 0x6d, 0xcc, -0x0d, 0xe5, 0x9a, 0x72, 0xf3, 0x98, 0x27, 0xd6, 0x84, 0xfa, 0xdc, 0xfd, 0xed, 0x1b, 0xe7, 0xc9, -0x51, 0x48, 0x19, 0x03, 0x81, 0xac, 0xe7, 0x7d, 0xc4, 0x66, 0x49, 0x03, 0x62, 0xa5, 0x30, 0x3c, -0xc1, 0xc7, 0x87, 0xc3, 0x2b, 0x87, 0x86, 0x5b, 0xde, 0xee, 0xd7, 0x13, 0x27, 0x43, 0xc9, 0x97, -0x4f, 0x27, 0xc4, 0xfb, 0x4f, 0x0f, 0xe9, 0xf6, 0x7f, 0x84, 0x23, 0xd8, 0x4e, 0x3e, 0xd3, 0x2f, -0x1a, 0xf3, 0x2c, 0x85, 0xd3, 0x29, 0x41, 0x68, 0xf1, 0x17, 0xf7, 0x11, 0x63, 0xfa, 0xb6, 0x5d, -0xdf, 0x96, 0xf9, 0xaa, 0xc8, 0xa3, 0x6b, 0x3c, 0x97, 0xda, 0x16, 0xb9, 0xb7, 0x18, 0x3c, 0xfc, -0x2d, 0x5f, 0x91, 0x7c, 0x40, 0x3e, 0x20, 0xd1, 0x45, 0xf4, 0x3a, 0x22, 0x89, 0x13, 0x7b, 0x3c, -0x3a, 0xe1, 0x01, 0xa2, 0x97, 0xd8, 0xdd, 0xa5, 0x81, 0x06, 0x94, 0xb6, 0x97, 0x57, 0xe9, 0x76, -0x8f, 0xee, 0xfb, 0x0d, 0x9d, 0x2d, 0xf2, 0x5e, 0xb3, 0x5d, 0x4e, 0x97, 0xe8, 0xf0, 0xbd, 0x3e, -0xdc, 0xf0, 0xf1, 0x83, 0xba, 0x86, 0xd3, 0x0f, 0x42, 0xd1, 0x80, 0x57, 0x1a, 0xf1, 0x8f, 0xf8, -0xe8, 0x7a, 0xc0, 0xe7, 0x08, 0xbc, 0xfe, 0x0a, 0xc5, 0xec, 0x7f, 0xc5, 0xbe, 0xd6, 0x79, 0x45, -0xf9, 0x15, 0x68, 0xd9, 0x13, 0x3f, 0x5a, 0x0a, 0xe5, 0xf6, 0x69, 0xe0, 0xb6, 0x92, 0xfc, 0x34, -0x5f, 0x42, 0xa7, 0xcf, 0xdc, 0x10, 0xb9, 0x95, 0xce, 0x56, 0x8d, 0x1a, 0x2f, 0xa1, 0xef, 0x7c, -0xaf, 0xfd, 0x92, 0x74, 0xfa, 0x71, 0xe9, 0xcc, 0x94, 0x2e, 0xfd, 0x8d, 0x1e, 0xa5, 0xe5, 0x6f, -0xbd, 0x00, 0x36, 0x65, 0xf2, 0xd4, 0x88, 0xd2, 0xf8, 0xf7, 0x7a, 0xde, 0x21, 0x7f, 0x43, 0x9c, -0x4e, 0xa5, 0xd0, 0x35, 0x7e, 0x6c, 0x86, 0xe2, 0x5d, 0x00, 0xed, 0x89, 0x1e, 0x2f, 0x72, 0xde, -0xd3, 0x97, 0xd0, 0xd9, 0x37, 0x37, 0x88, 0x1a, 0xd4, 0x08, 0xd7, 0x10, 0xca, 0xcd, 0x1b, 0xe0, -0x5c, 0x97, 0xf8, 0xe0, 0xda, 0x1e, 0x68, 0xfc, 0xb8, 0x54, 0xe4, 0x1d, 0xe8, 0xf5, 0xee, 0x18, -0x88, 0x9e, 0x6e, 0x03, 0xa6, 0xc5, 0xa3, 0x99, 0xf4, 0x3a, 0x2e, 0x09, 0xf8, 0x17, 0x61, 0xcc, -0x9c, 0xbd, 0x82, 0x92, 0xbe, 0xd6, 0x51, 0x5e, 0x09, 0xe5, 0xce, 0x4a, 0x70, 0x84, 0xd7, 0x22, -0xa4, 0xb4, 0xe7, 0x40, 0xd7, 0x48, 0xa3, 0x22, 0x1a, 0xb9, 0x97, 0xce, 0x83, 0xbc, 0xc1, 0xc7, -0x27, 0x26, 0xca, 0xd4, 0x2b, 0xda, 0xbb, 0x8b, 0xa8, 0x2f, 0xe7, 0x9d, 0xce, 0xb1, 0x29, 0xb5, -0x56, 0x12, 0xdd, 0x2f, 0xd8, 0x13, 0x37, 0x6e, 0xd2, 0x97, 0xd2, 0x1e, 0x62, 0x3d, 0x4b, 0xa4, -0x74, 0x1a, 0xa7, 0x5d, 0x3f, 0x3f, 0xa7, 0xb7, 0x33, 0xe1, 0x95, 0xed, 0x7a, 0x4d, 0x5f, 0xcd, -0x94, 0x68, 0xf4, 0x99, 0xba, 0xe8, 0x04, 0xcb, 0xc0, 0x4a, 0xa8, 0xf3, 0x7f, 0x04, 0x95, 0xbc, -0xbb, 0x67, 0x90, 0x29, 0x9c, 0x57, 0x58, 0x83, 0x65, 0x62, 0xa7, 0xa3, 0x80, 0xdf, 0xeb, 0x70, -0x46, 0x10, 0xfa, 0xf2, 0x8a, 0x6e, 0x70, 0x20, 0xfc, 0x4f, 0x61, 0x8e, 0x22, 0xe2, 0x3b, 0x62, -0xaf, 0x5c, 0xd1, 0x28, 0xd3, 0xe2, 0xe5, 0x1e, 0xda, 0x55, 0x21, 0xd3, 0x2e, 0x8b, 0xa2, 0xc7, -0x23, 0x0f, 0x70, 0xd8, 0x54, 0x0f, 0x70, 0xbb, 0x64, 0xed, 0x7d, 0x26, 0xbf, 0xd3, 0x17, 0x52, -0xb4, 0x37, 0xc4, 0x65, 0x75, 0x73, 0x7b, 0x5e, 0xc2, 0xf6, 0xe8, 0x4a, 0x80, 0x53, 0x7c, 0xcb, -0x03, 0x76, 0x1d, 0xeb, 0x34, 0x22, 0xc7, 0x55, 0xf4, 0x9e, 0xd3, 0x2a, 0x0c, 0xc7, 0xd0, 0x6b, -0x8c, 0x90, 0xda, 0x9c, 0x0e, 0x6b, 0xd7, 0x69, 0x73, 0xd6, 0x3a, 0xad, 0x5c, 0xa5, 0x72, 0x03, -0xc1, 0x75, 0xa9, 0x93, 0xb5, 0x36, 0xab, 0x68, 0x09, 0xcd, 0x41, 0xa1, 0xd4, 0xa3, 0xb3, 0x2f, -0x68, 0x67, 0x26, 0xcb, 0xbf, 0xea, 0x7d, 0x90, 0xbc, 0xa6, 0x17, 0xef, 0x71, 0xbc, 0x86, 0xf1, -0xb9, 0x0f, 0xaf, 0x25, 0x90, 0x9c, 0xf9, 0x28, 0xde, 0xcb, 0x20, 0x39, 0x19, 0xc3, 0x66, 0xd4, -0xe2, 0x1d, 0xe5, 0x53, 0x75, 0x3b, 0x24, 0xaf, 0x30, 0x43, 0xb2, 0x6a, 0x0f, 0x3e, 0x8f, 0x40, -0xd2, 0xf9, 0x20, 0xa6, 0x59, 0x87, 0xcf, 0xfd, 0x78, 0x6d, 0xc6, 0xe7, 0x21, 0x48, 0x56, 0xec, -0x18, 0x27, 0x1f, 0x93, 0xd7, 0x60, 0xf8, 0x54, 0x2b, 0xde, 0x9f, 0xc2, 0x6b, 0x1b, 0x5e, 0x3b, -0xf0, 0xda, 0x8b, 0xd7, 0x31, 0xbc, 0x8e, 0xe3, 0x75, 0x17, 0x5e, 0x9b, 0x30, 0x3f, 0xc6, 0x5f, -0xab, 0xe2, 0xd5, 0xc1, 0x72, 0x38, 0x1f, 0x92, 0x65, 0x95, 0xf0, 0x2d, 0x48, 0x7e, 0xfb, 0x29, -0x40, 0xa9, 0xf8, 0xad, 0x6d, 0xf0, 0x6d, 0x7c, 0x2e, 0x07, 0x84, 0x68, 0xd2, 0x1a, 0xf8, 0x0e, -0xfe, 0xca, 0x30, 0x19, 0xc3, 0xeb, 0xe1, 0x0a, 0xfc, 0x75, 0x8d, 0x17, 0xca, 0x24, 0x4b, 0x4b, -0xa2, 0x90, 0xac, 0xdd, 0x2c, 0xeb, 0xf2, 0x7e, 0x04, 0xc9, 0xcb, 0xff, 0x11, 0xdf, 0xb1, 0x9e, -0x19, 0xc1, 0x5c, 0xa1, 0xbd, 0xbc, 0xb3, 0xa7, 0xbb, 0xb3, 0xeb, 0xa2, 0x12, 0x7b, 0x66, 0xe5, -0xd5, 0x13, 0x7c, 0x2e, 0x76, 0xdf, 0xdc, 0xb5, 0x34, 0xd6, 0xdd, 0xd9, 0xa1, 0xcc, 0x9d, 0xfb, -0x7d, 0x25, 0x7e, 0x73, 0xac, 0x53, 0xe9, 0xe9, 0xfc, 0xc1, 0xad, 0x9d, 0xab, 0x7a, 0xa7, 0x28, -0x53, 0xe3, 0x8a, 0x6b, 0x6a, 0x7c, 0x9a, 0xe6, 0xc4, 0x8c, 0xe2, 0x3b, 0x6e, 0x5d, 0x11, 0x57, -0x56, 0xf5, 0xde, 0xdc, 0xd3, 0x5b, 0xa9, 0x90, 0x1f, 0x33, 0xe5, 0xbb, 0x0a, 0xb9, 0x90, 0xc3, -0x84, 0x33, 0x14, 0xf6, 0xa0, 0x16, 0x57, 0x6e, 0x6c, 0x25, 0xa7, 0x69, 0xf3, 0xe8, 0xa7, 0x61, -0xae, 0xf0, 0x9f, 0x86, 0xd9, 0xa7, 0xe5, 0xe4, 0xef, 0xec, 0xee, 0xb0, 0xc0, 0x8a, 0x9b, 0xe3, -0x7f, 0xdf, 0xd3, 0x19, 0x5b, 0xba, 0xb2, 0x1b, 0xab, 0xa8, 0x50, 0xf8, 0xc2, 0x74, 0x15, 0xca, -0xd2, 0x6e, 0xcc, 0x54, 0xa1, 0xfc, 0x43, 0x9c, 0x6f, 0xab, 0xd8, 0x11, 0xdb, 0x8a, 0xef, 0x92, -0xab, 0xb5, 0x5b, 0xbb, 0x27, 0x66, 0x12, 0x05, 0x4f, 0x68, 0x2e, 0x34, 0xf4, 0x2c, 0xed, 0x5d, -0x7a, 0xcb, 0xcd, 0x5d, 0xca, 0x62, 0x82, 0x90, 0x7c, 0xbc, 0xdd, 0xda, 0xd3, 0x69, 0x81, 0x2c, -0x16, 0xa0, 0x89, 0xfd, 0xbe, 0x91, 0x27, 0xbb, 0x5b, 0x7a, 0x3a, 0x6f, 0xee, 0xed, 0x64, 0x6f, -0x70, 0x4b, 0x31, 0x07, 0x96, 0xb1, 0xb4, 0xa3, 0xb3, 0xbb, 0x57, 0xe9, 0x5a, 0xba, 0xaa, 0xd7, -0x12, 0xc1, 0xec, 0x9d, 0xdd, 0x2b, 0x6f, 0x8d, 0x2d, 0x51, 0x56, 0x74, 0xae, 0x58, 0xd9, 0xf3, -0x43, 0x65, 0x55, 0xfc, 0x66, 0xc4, 0x67, 0xbc, 0x67, 0xe5, 0x6a, 0x4c, 0xd6, 0x01, 0x9d, 0x7d, -0x9d, 0xb7, 0x64, 0xf4, 0x94, 0x0b, 0x0a, 0x6d, 0xc4, 0xd8, 0xc0, 0xcd, 0xab, 0x3a, 0x2d, 0xb9, -0xc9, 0x94, 0xa5, 0xab, 0x94, 0x6e, 0x02, 0x8b, 0x7c, 0xc5, 0x7d, 0x45, 0x1e, 0xcb, 0xdc, 0xce, -0x15, 0xa1, 0xce, 0x9b, 0x3b, 0x3a, 0x7b, 0x14, 0x6f, 0x1f, 0x35, 0xb6, 0x69, 0x69, 0xcf, 0xaa, -0x5e, 0xe5, 0x96, 0x25, 0xb7, 0x76, 0x2f, 0xd7, 0x42, 0xa6, 0xde, 0xaa, 0x2c, 0xfe, 0x61, 0x6f, -0xe7, 0x2a, 0x25, 0xda, 0xd3, 0xd9, 0x09, 0x6d, 0x69, 0xd0, 0x57, 0xac, 0xec, 0xb8, 0xb5, 0x0b, -0x43, 0x5d, 0x37, 0x77, 0x74, 0xf4, 0xd4, 0x21, 0xb0, 0x4b, 0x95, 0x28, 0xf9, 0xc9, 0x53, 0x56, -0x77, 0xf6, 0xac, 0x42, 0xd4, 0x29, 0xdd, 0x37, 0xaf, 0xe8, 0x9c, 0x56, 0x67, 0x41, 0x3b, 0x8b, -0xbb, 0xac, 0xba, 0x03, 0x11, 0x59, 0xd5, 0xa7, 0x4c, 0x9d, 0xd9, 0xa1, 0x38, 0xa6, 0xae, 0x72, -0x58, 0xd2, 0xc4, 0xa6, 0x83, 0xa4, 0x82, 0x34, 0x5d, 0x89, 0x63, 0xa4, 0x82, 0xfc, 0x95, 0x82, -0xc7, 0x26, 0x24, 0x99, 0x90, 0x4e, 0xb4, 0x77, 0x8b, 0x66, 0x73, 0xf7, 0xef, 0x6d, 0x38, 0x3d, -0x34, 0xbf, 0xe1, 0xb3, 0x07, 0x01, 0xad, 0x3d, 0x7d, 0x6c, 0x92, 0xc3, 0x83, 0x9c, 0x5b, 0x9c, -0x74, 0xf8, 0x3d, 0x4f, 0x81, 0xdb, 0x97, 0xb6, 0xfa, 0xdc, 0x62, 0x7e, 0xac, 0x9e, 0x4e, 0x7d, -0x23, 0xa9, 0x1a, 0xd9, 0x99, 0xda, 0x46, 0x5f, 0xe7, 0x09, 0xa9, 0x46, 0xf3, 0xc6, 0xac, 0xe9, -0x94, 0xd1, 0x09, 0x92, 0xb1, 0xf6, 0x6a, 0x7a, 0x9e, 0xbc, 0xc7, 0x27, 0x07, 0x54, 0x58, 0x0d, -0x35, 0xb2, 0x4b, 0x47, 0x5c, 0x4e, 0x81, 0x98, 0xd5, 0x43, 0x12, 0xba, 0x00, 0x73, 0xf7, 0xb4, -0x6e, 0x34, 0x93, 0x77, 0xb1, 0x62, 0x45, 0x26, 0x6e, 0xa1, 0x02, 0xf3, 0x1f, 0x1b, 0xc6, 0xb4, -0xb7, 0x6e, 0x64, 0xbf, 0xbf, 0x0f, 0x9b, 0xdd, 0x60, 0x80, 0x50, 0xd4, 0x22, 0x78, 0x59, 0xe5, -0x50, 0x3b, 0x7b, 0x44, 0x66, 0x49, 0xa8, 0x9d, 0xca, 0x95, 0x53, 0x67, 0x0d, 0x9f, 0x66, 0x33, -0x79, 0xd8, 0xdf, 0x63, 0x1e, 0x1e, 0xe8, 0x35, 0xef, 0x49, 0x60, 0x5d, 0x54, 0xa2, 0x0e, 0x4b, -0x34, 0x62, 0x89, 0xbb, 0xbf, 0xac, 0x44, 0x21, 0x0d, 0xd2, 0xb3, 0xf2, 0x39, 0x25, 0x2e, 0xcc, -0xb6, 0xa2, 0x94, 0x5b, 0x21, 0x4e, 0xc3, 0x2b, 0x15, 0x1a, 0xd7, 0xc3, 0x7c, 0x62, 0x9b, 0x68, -0x0f, 0xed, 0x6d, 0x7e, 0x8c, 0xdb, 0x63, 0x4d, 0xb7, 0xa7, 0x54, 0xb4, 0xc7, 0x8a, 0x31, 0x43, -0x18, 0x73, 0xf1, 0x96, 0x58, 0x2f, 0x5a, 0x2f, 0xca, 0xcb, 0x6c, 0xcd, 0xa6, 0x44, 0xb6, 0x66, -0x93, 0x38, 0x21, 0xe2, 0xe1, 0xb0, 0xae, 0x4b, 0xd4, 0x6b, 0xc2, 0xd2, 0xdd, 0x5c, 0xaf, 0x39, -0x5d, 0xaf, 0x29, 0xc1, 0xf5, 0x9a, 0x31, 0xc6, 0xce, 0x31, 0x79, 0x13, 0x62, 0xf2, 0x22, 0x3b, -0xc7, 0x3e, 0xe3, 0x18, 0xcb, 0x84, 0x18, 0x3a, 0x0d, 0xf8, 0xf0, 0x5f, 0x09, 0xeb, 0xb2, 0x2c, -0xa4, 0x10, 0x27, 0x48, 0xb1, 0x5c, 0xbd, 0x86, 0x15, 0x3d, 0x96, 0x77, 0x17, 0xd7, 0x64, 0x88, -0xd9, 0xe3, 0xf1, 0xe1, 0x41, 0xae, 0xc5, 0x80, 0xa1, 0xab, 0x91, 0x72, 0xe2, 0xc3, 0x6b, 0x33, -0x78, 0x34, 0xe6, 0xc4, 0xd3, 0x49, 0x27, 0x0b, 0xfe, 0x4a, 0x28, 0xa2, 0x39, 0x50, 0x98, 0x08, -0x8a, 0xb8, 0x2e, 0xa7, 0x74, 0x88, 0x59, 0x3c, 0xba, 0xc0, 0xcf, 0x23, 0x3b, 0x47, 0x93, 0x0c, -0x8d, 0x84, 0xb5, 0x99, 0xb4, 0xda, 0x24, 0x0c, 0x3d, 0x8e, 0xfa, 0xf0, 0x4b, 0xd1, 0x6c, 0x18, -0xed, 0x7a, 0x3d, 0xf8, 0x55, 0x10, 0xb0, 0x05, 0xe7, 0x82, 0xb0, 0xc3, 0x67, 0xfd, 0x5e, 0xca, -0x10, 0x75, 0x59, 0xb7, 0xf8, 0xdb, 0xfe, 0x66, 0x1e, 0x28, 0xd1, 0xc9, 0x66, 0x17, 0xe7, 0x99, -0x34, 0x3f, 0x31, 0xc5, 0x07, 0x61, 0x8f, 0xd9, 0x63, 0xe7, 0xbc, 0x67, 0xc5, 0x48, 0xa1, 0xf9, -0x05, 0xba, 0x3c, 0x16, 0x27, 0x8d, 0xb0, 0x87, 0xaa, 0x77, 0xfd, 0x28, 0xa5, 0x69, 0xf2, 0x0f, -0x7b, 0x3c, 0x40, 0xdf, 0x93, 0x24, 0x4b, 0x5c, 0x94, 0xe3, 0xca, 0x45, 0x33, 0x47, 0x07, 0xe9, -0x94, 0xaa, 0x07, 0x66, 0x8e, 0x56, 0x0c, 0xe0, 0xfd, 0x1e, 0xbc, 0x93, 0x07, 0xe6, 0x4d, 0x68, -0x19, 0xd4, 0xe2, 0xfd, 0x5e, 0xbc, 0x8f, 0xe0, 0x7d, 0x73, 0xf5, 0xae, 0x84, 0x93, 0x7c, 0x85, -0xa1, 0xcc, 0xec, 0x37, 0x01, 0x7d, 0xcd, 0x30, 0x3c, 0xcc, 0x7e, 0xdc, 0x27, 0x23, 0x94, 0x4e, -0xd4, 0xbf, 0xf4, 0x68, 0xfd, 0x1f, 0xa5, 0x2f, 0x79, 0xa5, 0xd3, 0x56, 0xbf, 0xe4, 0xc3, 0xb7, -0x83, 0xf2, 0xca, 0x64, 0x0a, 0x26, 0x47, 0xd6, 0x0c, 0x49, 0x1e, 0xf2, 0x33, 0xe0, 0x6b, 0x79, -0x5b, 0xa7, 0x6b, 0xdf, 0x18, 0x59, 0x85, 0xdc, 0x61, 0x7c, 0x19, 0x74, 0xa6, 0xa5, 0x4b, 0x2b, -0xe3, 0x11, 0x2a, 0x23, 0x35, 0x6c, 0xf5, 0x1b, 0x00, 0xdf, 0x36, 0x51, 0x6e, 0x65, 0x89, 0xee, -0x0c, 0xda, 0xed, 0xba, 0x33, 0x4b, 0x3e, 0xb5, 0xd3, 0xfb, 0x94, 0x25, 0xe0, 0xd4, 0x9d, 0xbd, -0x1a, 0x79, 0x81, 0x6e, 0x94, 0x56, 0x89, 0xbe, 0xd3, 0x05, 0x4e, 0x51, 0xb6, 0x7c, 0xe3, 0x0d, -0x29, 0xb8, 0xf1, 0x0e, 0xa0, 0x3a, 0x3c, 0xe6, 0x74, 0x5e, 0xd9, 0x9e, 0x1a, 0xcd, 0xe6, 0xd5, -0x9d, 0x05, 0xe7, 0x0d, 0x4b, 0x74, 0x58, 0x9b, 0xf2, 0xf7, 0xe3, 0x61, 0x51, 0x04, 0x24, 0x65, -0x1a, 0x24, 0xc5, 0x34, 0xab, 0x63, 0x42, 0xd5, 0xd1, 0x3a, 0x20, 0xe1, 0x6f, 0x0c, 0x52, 0xbd, -0x88, 0x69, 0x40, 0x4e, 0xf5, 0x2a, 0xe2, 0xee, 0xec, 0xb7, 0x17, 0xb7, 0x6e, 0xc4, 0xe7, 0x91, -0xf4, 0x33, 0x62, 0x96, 0xe6, 0xb3, 0x5f, 0x4b, 0xbf, 0x73, 0xcb, 0x8a, 0x39, 0xfd, 0xff, 0x4a, -0x87, 0x45, 0xd6, 0x98, 0x81, 0x43, 0x9e, 0x49, 0x87, 0x28, 0x85, 0xfc, 0xdd, 0x9b, 0x48, 0xf7, -0x70, 0xa6, 0x2c, 0x53, 0xe8, 0xcf, 0xa9, 0x64, 0xe5, 0xb3, 0xe0, 0xe3, 0x53, 0xec, 0x94, 0xdb, -0xc0, 0x73, 0x6d, 0x2f, 0x70, 0xec, 0x73, 0xed, 0x1b, 0xdb, 0x66, 0x5b, 0x67, 0xa3, 0xc5, 0x74, -0x12, 0x73, 0x74, 0x53, 0xd8, 0xa4, 0xc7, 0xda, 0x37, 0x5e, 0x10, 0x5f, 0xc8, 0xf1, 0x91, 0x74, -0x3c, 0x6a, 0x40, 0xf5, 0x95, 0x57, 0x68, 0x7d, 0x61, 0x05, 0x3b, 0xe1, 0x0b, 0xa9, 0xe4, 0xd6, -0x55, 0x4a, 0x67, 0x4f, 0xcf, 0xca, 0x9e, 0x29, 0x96, 0x79, 0xbd, 0x37, 0xf7, 0xde, 0xba, 0x0a, -0x65, 0xcd, 0xad, 0x5d, 0xbd, 0x0a, 0x09, 0x85, 0xce, 0x55, 0xab, 0xa0, 0xb5, 0x01, 0xe6, 0xb5, -0xc1, 0xf7, 0xe7, 0xb5, 0xc2, 0x3c, 0xbc, 0x2c, 0x30, 0x73, 0xd4, 0x47, 0x1e, 0xc2, 0x1f, 0x22, -0x5d, 0x2a, 0xec, 0x85, 0xae, 0x98, 0xe5, 0x13, 0xfb, 0xc3, 0xf0, 0x89, 0x6b, 0x24, 0x05, 0xd6, -0xbf, 0x2c, 0x81, 0x2e, 0x0a, 0xff, 0x8b, 0x0b, 0xba, 0xb4, 0x38, 0xd7, 0x69, 0x0c, 0xff, 0xc4, -0xbe, 0x8b, 0x6d, 0x56, 0xf1, 0x5d, 0xaa, 0xe2, 0xd2, 0x4d, 0xe6, 0x9d, 0x96, 0x46, 0x21, 0x25, -0xe6, 0x9c, 0x63, 0x0f, 0x78, 0x47, 0x5b, 0xde, 0x56, 0x31, 0x95, 0xf7, 0x72, 0xe2, 0x13, 0x0a, -0xf6, 0x1f, 0xd9, 0xb8, 0xc3, 0xbb, 0x2b, 0xfa, 0xd8, 0x4e, 0x7a, 0xa1, 0xe5, 0xed, 0x06, 0x1d, -0xe7, 0xa2, 0x99, 0xf0, 0x62, 0x91, 0xd3, 0xd9, 0x2d, 0xd1, 0x97, 0x4a, 0x0e, 0xd7, 0x12, 0x58, -0xac, 0xcc, 0x71, 0xb4, 0xc4, 0x23, 0x68, 0x3b, 0x6d, 0x12, 0xb5, 0x78, 0x5d, 0x92, 0xab, 0xab, -0xcc, 0x7f, 0x12, 0x22, 0x61, 0xe8, 0x62, 0xdf, 0xfa, 0x71, 0xf2, 0x59, 0x95, 0x9c, 0x7c, 0x2c, -0x3d, 0xfb, 0x39, 0x75, 0x39, 0xd4, 0x43, 0x0d, 0x79, 0xfc, 0xa0, 0xef, 0xae, 0xab, 0x4a, 0x43, -0x7f, 0x96, 0xa8, 0x6c, 0xfa, 0x5e, 0x36, 0x59, 0x15, 0x20, 0x9a, 0x88, 0x6c, 0x76, 0x6a, 0xdf, -0x31, 0xa3, 0x7d, 0x5f, 0x1a, 0xae, 0x94, 0xca, 0x57, 0x58, 0x5b, 0x4f, 0x49, 0xe5, 0x33, 0x47, -0x87, 0x05, 0x0e, 0x7a, 0x14, 0x50, 0xdf, 0xc8, 0x40, 0xd0, 0xe2, 0x98, 0x23, 0x20, 0xb8, 0x6a, -0x19, 0xd4, 0x40, 0xfd, 0xd7, 0xc0, 0xb1, 0x2f, 0xb3, 0xf2, 0x27, 0x6a, 0xc0, 0xd2, 0xbb, 0x2c, -0xe9, 0x92, 0x55, 0x73, 0x1a, 0xcf, 0xcc, 0x1b, 0x6c, 0xb1, 0x3a, 0xd2, 0xb4, 0x69, 0x77, 0xf7, -0x7f, 0x49, 0xd0, 0xb7, 0x53, 0xdb, 0xb6, 0x42, 0xdd, 0x62, 0x7b, 0x65, 0xfd, 0x00, 0xf2, 0xa4, -0xec, 0x09, 0x77, 0x08, 0x49, 0x8d, 0xf2, 0x24, 0x84, 0x45, 0xfd, 0x57, 0xe1, 0xb8, 0xb8, 0xa2, -0x02, 0xc2, 0xd8, 0x42, 0x5a, 0xa1, 0x93, 0x9d, 0x1e, 0xfa, 0x6e, 0x63, 0xdb, 0x60, 0xd4, 0x86, -0x74, 0x6a, 0xd5, 0x64, 0xe3, 0x89, 0xd6, 0x8d, 0xcc, 0xdd, 0x4a, 0x91, 0xbb, 0x15, 0xc4, 0xce, -0xd0, 0xb9, 0x04, 0x10, 0x90, 0x80, 0x65, 0x98, 0x97, 0x24, 0x16, 0xf5, 0x9b, 0x38, 0x3b, 0xee, -0x94, 0x24, 0xee, 0x27, 0xb4, 0xfb, 0xfb, 0xda, 0xfd, 0x38, 0xde, 0x51, 0x5f, 0xfd, 0xb7, 0x63, -0xda, 0xfd, 0x4f, 0x12, 0x9d, 0x45, 0x77, 0x5c, 0x2a, 0xe2, 0xdf, 0xed, 0x10, 0xfb, 0x0c, 0xa5, -0xfc, 0xbf, 0x1d, 0x91, 0xd0, 0x22, 0x92, 0x6c, 0xf0, 0xa5, 0x71, 0x20, 0xe2, 0xfe, 0xc4, 0x71, -0xc7, 0xa4, 0x77, 0xe8, 0x6c, 0xb3, 0x54, 0xc2, 0xdf, 0xe6, 0x6b, 0xf2, 0x09, 0x4c, 0x5a, 0x7d, -0xd7, 0x3e, 0xbd, 0xd8, 0x6a, 0xf5, 0x55, 0x76, 0xde, 0x62, 0xb3, 0xfa, 0x66, 0xea, 0x6f, 0x21, -0xab, 0xb0, 0x4a, 0xbe, 0x54, 0x25, 0x7b, 0xb0, 0x5e, 0xbe, 0x94, 0xf8, 0x5e, 0xe4, 0x07, 0x37, -0x03, 0x2c, 0xc2, 0xeb, 0x26, 0xbc, 0x16, 0xe0, 0xd5, 0x86, 0x57, 0x04, 0xaf, 0x30, 0x5e, 0x4d, -0x78, 0x05, 0xf0, 0x9a, 0x85, 0x57, 0x1d, 0x5e, 0x35, 0x78, 0x55, 0xe1, 0x55, 0x89, 0x97, 0x1b, -0xaf, 0x72, 0xbc, 0x1c, 0x78, 0x4d, 0xc6, 0x6b, 0x12, 0x5e, 0x25, 0x78, 0x15, 0xe1, 0x65, 0xc3, -0xcb, 0x82, 0x97, 0x11, 0x2f, 0x59, 0xff, 0x4f, 0x90, 0x9c, 0xd2, 0x11, 0x39, 0x07, 0x1b, 0x00, -0xbe, 0x51, 0xda, 0x38, 0xa6, 0x5d, 0xc4, 0x69, 0xff, 0xf3, 0xf5, 0xf6, 0x63, 0x59, 0x45, 0x68, -0x5c, 0x7a, 0xc0, 0x28, 0xdf, 0x58, 0x98, 0x0a, 0xc4, 0xf0, 0x5d, 0x26, 0x6f, 0x89, 0x95, 0xf7, -0x90, 0x1f, 0x49, 0xf2, 0x65, 0xe8, 0xc1, 0x5e, 0x77, 0xfc, 0x0c, 0xcc, 0x9e, 0x08, 0xe8, 0x91, -0x83, 0x8c, 0xa2, 0x96, 0x55, 0x1f, 0x21, 0x5f, 0xff, 0xf5, 0x4a, 0x21, 0x8d, 0x25, 0x8f, 0x8d, -0xbe, 0xa0, 0x8c, 0xec, 0x84, 0x7e, 0xe1, 0x1b, 0xe4, 0x86, 0x14, 0xe6, 0xd4, 0x47, 0xa2, 0x15, -0x7f, 0xdf, 0xbe, 0x31, 0xfc, 0x4f, 0x31, 0x99, 0x66, 0xb9, 0x89, 0x43, 0x67, 0x7c, 0xbc, 0x7a, -0xc4, 0x3a, 0x3d, 0xaf, 0x96, 0x1b, 0xc3, 0xcf, 0xc8, 0x9f, 0x44, 0x5d, 0x53, 0xe8, 0xd4, 0x67, -0x1d, 0xb9, 0xe2, 0x9e, 0x32, 0x2c, 0xe9, 0xf1, 0x32, 0xe3, 0x65, 0x9d, 0x32, 0x1a, 0x6a, 0x6c, -0x69, 0x05, 0x60, 0xbf, 0xaf, 0x5f, 0xc0, 0xd9, 0x85, 0xb5, 0xe4, 0x45, 0x33, 0xf9, 0xa6, 0xe2, -0x9b, 0xba, 0x04, 0xaa, 0xc0, 0x37, 0x35, 0x00, 0x41, 0xe1, 0x13, 0x16, 0xf5, 0x38, 0x28, 0xf7, -0x88, 0xb2, 0x5d, 0x1e, 0x28, 0x35, 0xcb, 0x58, 0x76, 0x49, 0x3c, 0x39, 0x3c, 0xa8, 0xf8, 0x7a, -0xa1, 0x9a, 0xfc, 0xc4, 0xc8, 0xec, 0xb7, 0xce, 0xa8, 0x16, 0x1f, 0xdb, 0xa0, 0xda, 0xd1, 0x62, -0x25, 0xab, 0x58, 0xec, 0xbf, 0xf6, 0x45, 0x8b, 0x3d, 0x41, 0x6d, 0xdf, 0x42, 0x03, 0x71, 0x31, -0x28, 0x53, 0x21, 0xd5, 0x46, 0x77, 0x2a, 0xb9, 0xde, 0x51, 0x4e, 0xab, 0xd4, 0x2b, 0x41, 0xf1, -0xa2, 0x05, 0x1e, 0x97, 0xcd, 0x95, 0x00, 0xd2, 0xb4, 0x58, 0x29, 0xcd, 0x4e, 0xc7, 0x8c, 0xca, -0x2e, 0xc4, 0x4e, 0xb0, 0x2d, 0xd1, 0x3e, 0xd4, 0xe3, 0x43, 0xdb, 0xff, 0x84, 0x1a, 0xe1, 0x2f, -0x0b, 0x06, 0x8c, 0x03, 0x88, 0x5d, 0x55, 0x79, 0xb1, 0x2d, 0xc1, 0xb3, 0xd0, 0x27, 0x30, 0xaf, -0x4a, 0xe7, 0x5a, 0x66, 0xe2, 0xf6, 0x71, 0x9c, 0x49, 0x8b, 0x4b, 0x8c, 0x8b, 0x3b, 0xcb, 0x71, -0x34, 0x3b, 0x7e, 0x82, 0x74, 0x00, 0x94, 0x1b, 0x4f, 0x29, 0x0d, 0xbd, 0xa0, 0xca, 0x6d, 0x83, -0x0b, 0x87, 0xc2, 0x4b, 0x52, 0xe7, 0xa2, 0x9f, 0x29, 0xf2, 0xc8, 0x20, 0xcd, 0xd2, 0xec, 0xdf, -0xed, 0x3f, 0x3d, 0x64, 0x54, 0xcc, 0x3d, 0x64, 0x83, 0xd6, 0x55, 0x05, 0xe6, 0x35, 0x57, 0xe5, -0x1d, 0x68, 0x3e, 0xe0, 0xa7, 0x6b, 0xbe, 0x5f, 0xf1, 0xdd, 0xf7, 0x8a, 0x5a, 0xd7, 0x27, 0x0d, -0xad, 0xf5, 0xee, 0xf2, 0xd4, 0xbb, 0xf5, 0x81, 0xc6, 0x50, 0xe3, 0xd5, 0x8d, 0x20, 0x5f, 0x1d, -0x04, 0xfd, 0xd5, 0xd4, 0xf7, 0xc6, 0xab, 0xfd, 0x60, 0x76, 0x36, 0xf4, 0x41, 0x6d, 0x51, 0x45, -0xf0, 0x8f, 0x7b, 0x66, 0x0c, 0x1d, 0x07, 0xf6, 0x3b, 0x67, 0x59, 0xb8, 0xd6, 0xe8, 0x4f, 0x7d, -0xb6, 0xe3, 0xce, 0xee, 0xdd, 0x0e, 0xb9, 0x69, 0xe0, 0xc0, 0xc0, 0x7d, 0x03, 0x7b, 0x06, 0x1c, -0xf2, 0x81, 0xc1, 0x03, 0x03, 0x07, 0x07, 0x0e, 0x52, 0xcd, 0xbb, 0xbd, 0xbb, 0x22, 0x5f, 0x28, -0xc8, 0x77, 0x1c, 0x6d, 0xe2, 0x7c, 0x58, 0x2c, 0x49, 0xa6, 0xd3, 0x61, 0xb1, 0x47, 0xea, 0xc5, -0x7c, 0x62, 0xad, 0xec, 0x94, 0x68, 0xfd, 0xc3, 0x04, 0xe5, 0x12, 0xd9, 0xd2, 0x32, 0xb8, 0x24, -0xd2, 0xa5, 0xcd, 0x60, 0x96, 0xb0, 0x55, 0x16, 0xfc, 0x95, 0x6e, 0x7c, 0x31, 0x48, 0xe7, 0x76, -0xc8, 0x62, 0xb5, 0xc4, 0x23, 0x85, 0xd7, 0x2d, 0x78, 0x31, 0x34, 0x10, 0x7a, 0x31, 0x38, 0x80, -0xcf, 0x6b, 0x6f, 0xcc, 0x3e, 0x0f, 0x66, 0x9f, 0xd1, 0x5e, 0xcf, 0x43, 0xa9, 0x49, 0x1e, 0x07, -0x92, 0xd3, 0xd7, 0x93, 0x65, 0x4e, 0xf3, 0x5a, 0x3e, 0xec, 0x2d, 0xa2, 0x92, 0x49, 0xfd, 0x68, -0x93, 0xcb, 0x6c, 0x0b, 0xb0, 0x4f, 0x21, 0xeb, 0x5b, 0x4a, 0xab, 0x22, 0xd1, 0xfe, 0xf3, 0x53, -0x21, 0x92, 0x04, 0xd2, 0xa8, 0xe2, 0x35, 0x43, 0xaf, 0x0e, 0xb5, 0xec, 0x2a, 0xd9, 0x97, 0x04, -0xa7, 0x14, 0x08, 0x84, 0x02, 0x04, 0x27, 0xc6, 0xf8, 0x14, 0xaf, 0x4b, 0xc4, 0x95, 0xf4, 0xa6, -0x9a, 0xe4, 0xe1, 0xc1, 0x5e, 0xcb, 0xb1, 0x27, 0x8a, 0xeb, 0x53, 0xa3, 0xbb, 0x07, 0x29, 0xae, -0x14, 0x88, 0x7f, 0xe5, 0x7a, 0xa5, 0x20, 0xff, 0x3e, 0x48, 0x1f, 0x21, 0xa4, 0xba, 0x96, 0x1b, -0x56, 0x42, 0x1b, 0x54, 0xd7, 0xad, 0x84, 0x05, 0xf8, 0x74, 0x13, 0xd4, 0x4c, 0xf6, 0xc0, 0xdf, -0x97, 0x2f, 0xb3, 0xbe, 0x35, 0x69, 0x3a, 0x7d, 0xdd, 0x23, 0xbd, 0x17, 0xbe, 0x0f, 0x7f, 0x8f, -0x28, 0x7a, 0x82, 0xa2, 0x30, 0x15, 0xb5, 0x2a, 0xba, 0xc4, 0xa0, 0x78, 0x8e, 0x4d, 0xa2, 0x39, -0x14, 0xfe, 0x3e, 0x35, 0x59, 0xf2, 0x7c, 0xc6, 0x2f, 0x91, 0x5d, 0x05, 0x69, 0x5b, 0x78, 0x6d, -0x54, 0x2e, 0x97, 0xe9, 0xcb, 0x6e, 0x07, 0x7c, 0x70, 0x67, 0x85, 0xbf, 0x1f, 0xca, 0x0c, 0xcd, -0xe7, 0xa4, 0x9f, 0x79, 0x7c, 0x50, 0x7b, 0x45, 0x23, 0x78, 0xae, 0x98, 0x0d, 0x95, 0x98, 0xee, -0x36, 0x05, 0x6b, 0x12, 0xfb, 0xec, 0xd3, 0xed, 0x74, 0xb4, 0xbe, 0x3e, 0xac, 0x5c, 0xd2, 0xa3, -0xdb, 0x9d, 0x88, 0x96, 0x69, 0x33, 0xcd, 0x26, 0x8f, 0x11, 0xed, 0x8f, 0x66, 0xf0, 0x45, 0x36, -0xd3, 0x89, 0x8d, 0x8e, 0x04, 0xd5, 0x42, 0x29, 0x10, 0xb2, 0x26, 0xc2, 0x86, 0x43, 0xa6, 0xbe, -0xa4, 0xde, 0x20, 0x6c, 0xec, 0x7f, 0x51, 0xb1, 0x67, 0xf2, 0xcb, 0xa4, 0xe1, 0x72, 0xfe, 0x10, -0xe5, 0x47, 0xec, 0xfa, 0x94, 0xdc, 0xfc, 0xc6, 0x35, 0xa9, 0x26, 0xc3, 0xab, 0x09, 0x87, 0x7c, -0x9b, 0xe5, 0xd4, 0x13, 0x71, 0x5d, 0x13, 0xec, 0x4e, 0x38, 0x1a, 0x5f, 0x7f, 0x51, 0xb9, 0x84, -0xbf, 0x88, 0xae, 0x70, 0xd4, 0xbf, 0xf5, 0x34, 0xb2, 0xcd, 0x41, 0xa4, 0xe6, 0x17, 0xac, 0xeb, -0xc8, 0xd5, 0x3f, 0x3e, 0xed, 0xf0, 0xbf, 0x0f, 0xba, 0xab, 0x42, 0x60, 0x73, 0xe8, 0x64, 0xff, -0x69, 0x88, 0x07, 0x07, 0x13, 0x74, 0x96, 0x20, 0x95, 0x48, 0xfd, 0x1d, 0xf4, 0x7b, 0xfd, 0x22, -0x06, 0x0d, 0x22, 0x09, 0x3c, 0xd1, 0x8a, 0x35, 0xd2, 0xe0, 0xed, 0xb3, 0x0a, 0xa2, 0xe6, 0x3a, -0x73, 0xd4, 0x1c, 0x1c, 0x8e, 0xea, 0x6f, 0xd3, 0x0f, 0xde, 0xc1, 0x71, 0x95, 0x8b, 0x2d, 0x18, -0xb6, 0x18, 0xa5, 0x8e, 0x31, 0xb6, 0xf0, 0x36, 0xdf, 0xe0, 0x1d, 0xea, 0x82, 0x35, 0xba, 0x0b, -0xd3, 0xd2, 0xc9, 0x38, 0x1c, 0x52, 0x86, 0xd2, 0xd3, 0x72, 0xdb, 0x8f, 0x9a, 0x4c, 0x83, 0x77, -0xe0, 0x9b, 0xad, 0x12, 0x4e, 0x6c, 0x5c, 0xa3, 0x7b, 0xed, 0xf6, 0x17, 0x9e, 0x85, 0xda, 0x0e, -0x63, 0xa5, 0x0d, 0xf3, 0x1b, 0xd7, 0xa8, 0xc3, 0xb7, 0x0f, 0x26, 0x10, 0x62, 0xb3, 0x80, 0x37, -0xa6, 0x07, 0xbf, 0x1e, 0x1c, 0x03, 0xc6, 0x75, 0xa9, 0xd4, 0x69, 0x30, 0x0e, 0x52, 0x18, 0x79, -0xed, 0xb0, 0x43, 0x78, 0x5d, 0x14, 0x92, 0x89, 0x8b, 0x9c, 0x25, 0x58, 0xe7, 0x5a, 0x09, 0x15, -0xa5, 0x1e, 0x98, 0x49, 0x67, 0x7a, 0x39, 0xbb, 0xac, 0x6f, 0xad, 0x81, 0x49, 0x1e, 0xb8, 0xb6, -0x57, 0xff, 0xc1, 0xd6, 0x72, 0x79, 0xde, 0x5a, 0xb5, 0x98, 0x34, 0x35, 0x89, 0xbe, 0x82, 0x32, -0x1a, 0x07, 0x68, 0x92, 0x66, 0xaa, 0x1f, 0x2c, 0x0e, 0x37, 0x58, 0x76, 0x0c, 0x2c, 0x06, 0x78, -0x0c, 0xe5, 0xb3, 0xb1, 0x12, 0x5e, 0x5b, 0x1b, 0x3d, 0xa4, 0xd2, 0xf7, 0x79, 0xf5, 0xa4, 0xc7, -0xf4, 0xe4, 0x7c, 0x47, 0x5f, 0x4e, 0x33, 0x94, 0x7b, 0xb2, 0xbe, 0x15, 0x1c, 0x0d, 0x22, 0x4d, -0x76, 0x96, 0x9f, 0xe0, 0x2b, 0x4c, 0x51, 0xa8, 0x1d, 0xe4, 0x06, 0xb4, 0x8c, 0x1b, 0x32, 0x71, -0xd5, 0xe5, 0xd9, 0x74, 0xab, 0xc3, 0x6b, 0x63, 0x6b, 0xa6, 0x36, 0x80, 0x71, 0x6a, 0x3f, 0xa5, -0x04, 0x4b, 0xd8, 0x18, 0x2b, 0xb7, 0xea, 0x41, 0xba, 0x45, 0xa1, 0x9e, 0xa7, 0xef, 0x93, 0x68, -0x46, 0xda, 0x4e, 0x73, 0x71, 0x3a, 0x8f, 0x95, 0x67, 0xa0, 0x15, 0x55, 0x3f, 0xfb, 0xdc, 0xe8, -0x99, 0x1d, 0x5b, 0xc1, 0xb2, 0x18, 0x52, 0xe4, 0x3d, 0xd4, 0xb8, 0x5a, 0xfa, 0xe0, 0xc9, 0x80, -0x5f, 0xb5, 0xf3, 0x39, 0x4a, 0xbe, 0x29, 0xbb, 0xa8, 0xc7, 0xdb, 0xa1, 0xcd, 0xbf, 0x06, 0xea, -0xa4, 0xe7, 0x6e, 0xef, 0x3e, 0x4e, 0x25, 0x46, 0xf5, 0x3d, 0xa8, 0xb3, 0xf4, 0xe8, 0x12, 0x03, -0xbf, 0xdb, 0x0a, 0xc6, 0xfb, 0x31, 0xb7, 0xe6, 0x0b, 0x7c, 0x54, 0x7c, 0x09, 0x42, 0x32, 0x82, -0x46, 0x4d, 0x31, 0x8d, 0x9a, 0x08, 0xcf, 0x83, 0xd3, 0xd7, 0xf9, 0xf4, 0x1d, 0x3f, 0x9d, 0x6c, -0xfc, 0x54, 0xcf, 0xe8, 0xee, 0x44, 0xf9, 0x00, 0x53, 0xbb, 0x9d, 0xf0, 0x1c, 0x35, 0x06, 0x5c, -0xa0, 0x57, 0xdd, 0x56, 0x19, 0xa1, 0x75, 0x5c, 0x00, 0x2d, 0xe7, 0x1a, 0x8d, 0x08, 0x78, 0x33, -0x27, 0x0f, 0xeb, 0x33, 0x3e, 0x81, 0x0b, 0xe8, 0xeb, 0x25, 0xe2, 0x12, 0x76, 0x17, 0x8d, 0x52, -0x38, 0xe1, 0xb0, 0xf3, 0x6c, 0xef, 0x22, 0x0f, 0xf6, 0x04, 0x6a, 0xef, 0x16, 0x92, 0x71, 0xa8, -0x51, 0x92, 0x2f, 0xdf, 0xa3, 0x6a, 0x90, 0xb4, 0xb8, 0xef, 0x6d, 0x44, 0x7d, 0x6b, 0xf8, 0x1f, -0xd4, 0xca, 0x81, 0xd3, 0x97, 0xfb, 0x20, 0xb2, 0xe6, 0x90, 0x34, 0x1d, 0x65, 0x64, 0xd9, 0x1e, -0x30, 0x57, 0xee, 0x22, 0xcf, 0xba, 0xe4, 0x79, 0xe7, 0xf4, 0xe5, 0x2d, 0x60, 0x7e, 0x11, 0xae, -0x10, 0x69, 0x02, 0xff, 0x74, 0xfa, 0x72, 0x33, 0x9c, 0xbe, 0xdc, 0x0a, 0xa8, 0xaf, 0xaf, 0xc2, -0xbe, 0x5c, 0x87, 0x12, 0x89, 0xce, 0xc0, 0xb1, 0x60, 0x5d, 0x3a, 0x3a, 0x7f, 0xfe, 0x0a, 0x1f, -0x5c, 0x8a, 0xe3, 0xca, 0x46, 0x35, 0x16, 0x79, 0xe0, 0x52, 0x1c, 0x9d, 0xb6, 0x71, 0x35, 0xb7, -0xb2, 0xfe, 0x48, 0x75, 0x35, 0xeb, 0xce, 0xd0, 0x6c, 0xe8, 0x77, 0xcc, 0x61, 0x29, 0x66, 0xe4, -0xa7, 0xcd, 0xd3, 0x23, 0x40, 0x12, 0xe0, 0x1f, 0xed, 0xba, 0xc8, 0x3f, 0x9a, 0x8d, 0x78, 0x99, -0xce, 0xf4, 0x9d, 0x69, 0xff, 0xb4, 0x54, 0xe1, 0x39, 0x8f, 0xc8, 0x3f, 0x02, 0x86, 0xdb, 0xf5, -0x78, 0x19, 0xf0, 0xc2, 0x78, 0xbb, 0x29, 0xb2, 0xca, 0x9d, 0xf1, 0x3e, 0xac, 0x61, 0xc1, 0x9a, -0xc1, 0x42, 0x80, 0x31, 0xa0, 0x8c, 0xab, 0xdf, 0x2e, 0x6c, 0x1a, 0x6a, 0x89, 0x8f, 0xbe, 0x18, -0x5f, 0xa5, 0x96, 0x8d, 0x8b, 0xb7, 0x51, 0x7c, 0x9c, 0xeb, 0xfa, 0xb4, 0x54, 0x94, 0xce, 0x23, -0xa0, 0x9e, 0xf6, 0x4d, 0x50, 0x6f, 0x4d, 0x16, 0xf8, 0x3d, 0xa0, 0xd8, 0xf1, 0x77, 0x1f, 0x7b, -0x36, 0x49, 0x96, 0x1c, 0x9d, 0x2d, 0x3c, 0x10, 0xdc, 0x47, 0xdf, 0x19, 0x37, 0x9f, 0x3b, 0x17, -0x42, 0x0d, 0x99, 0xbe, 0x45, 0xb6, 0xff, 0xf4, 0x37, 0xab, 0xc1, 0xa5, 0x8b, 0x5b, 0xdf, 0x79, -0xca, 0xba, 0x96, 0x08, 0x12, 0xed, 0x72, 0x3d, 0x9d, 0xaf, 0xde, 0xba, 0xd1, 0x8d, 0x72, 0x70, -0x0d, 0x28, 0x86, 0x7f, 0x4d, 0x68, 0x7c, 0xd4, 0x2c, 0x52, 0x44, 0xdb, 0x1d, 0xb2, 0xd5, 0x84, -0x70, 0x5b, 0x4e, 0xde, 0x49, 0x27, 0x1d, 0x05, 0x40, 0xb5, 0x9d, 0xa0, 0x27, 0x9d, 0x22, 0x9f, -0x1a, 0xa2, 0x13, 0x90, 0x3c, 0x72, 0xbf, 0x6e, 0xdf, 0x80, 0xc7, 0xd8, 0x23, 0xed, 0x4e, 0x78, -0xa4, 0xe0, 0xee, 0xb4, 0xdf, 0x6d, 0x0f, 0x92, 0xcc, 0x69, 0xf0, 0xc8, 0xf4, 0x15, 0x44, 0x2a, -0xe5, 0x29, 0x60, 0xc8, 0xc6, 0x04, 0x8d, 0x3b, 0x0d, 0xee, 0x60, 0xdb, 0x5a, 0xae, 0x41, 0x8a, -0x42, 0xaa, 0x9b, 0xb4, 0xa1, 0xcb, 0x1d, 0x50, 0xd1, 0xf2, 0x76, 0xfd, 0xa8, 0x9a, 0x02, 0xf8, -0xe3, 0x06, 0x7a, 0xe2, 0x96, 0x7a, 0x69, 0xa7, 0x08, 0xca, 0x03, 0x17, 0xca, 0x83, 0x0a, 0x94, -0x07, 0xde, 0x3a, 0x0f, 0xd4, 0xd4, 0x7b, 0xa0, 0x6e, 0x96, 0x07, 0x66, 0xf1, 0xcc, 0x55, 0x83, -0xd3, 0xe7, 0xb1, 0x84, 0x67, 0x2f, 0xc8, 0xd4, 0x1b, 0x6e, 0xca, 0x79, 0x6e, 0xcc, 0x3e, 0x67, -0xa5, 0xc1, 0xe5, 0xde, 0x8c, 0x34, 0x50, 0x3c, 0x61, 0xf0, 0x79, 0x67, 0x93, 0xe6, 0xe5, 0x6d, -0xe2, 0xb3, 0xcc, 0x1b, 0xf9, 0x04, 0xd9, 0x20, 0x1a, 0x85, 0x0d, 0x50, 0x81, 0xfa, 0x8b, 0xcb, -0x33, 0x87, 0xac, 0x56, 0xeb, 0xa8, 0x0a, 0x5f, 0x2c, 0xa4, 0x12, 0x10, 0x1a, 0x3b, 0xad, 0xda, -0x64, 0x4a, 0xbb, 0x45, 0x94, 0x96, 0x1e, 0x21, 0x88, 0x13, 0x1d, 0xcd, 0xae, 0x93, 0xd7, 0xc2, -0xc8, 0xce, 0x2f, 0x5c, 0x58, 0x4b, 0x85, 0x58, 0x59, 0xe1, 0x79, 0xed, 0xe2, 0x89, 0x7e, 0x3b, -0xe8, 0xfb, 0xc0, 0x58, 0x2d, 0xed, 0x8d, 0xbb, 0xd2, 0x67, 0x7d, 0xcb, 0xa1, 0xcd, 0xc9, 0x79, -0xa7, 0x49, 0x2e, 0xe4, 0xa6, 0x66, 0x5e, 0xad, 0xd0, 0xab, 0x65, 0xc1, 0xe1, 0x65, 0x66, 0x5e, -0x1f, 0xd1, 0xab, 0x76, 0xe4, 0xbb, 0x56, 0xd2, 0xd3, 0xf1, 0x19, 0x53, 0xd2, 0xe8, 0x13, 0x74, -0xf1, 0xd7, 0xe8, 0x06, 0xff, 0x32, 0x0a, 0x57, 0xa4, 0x52, 0x8b, 0xcd, 0x56, 0x34, 0x99, 0xa3, -0xc8, 0x39, 0xfe, 0x3a, 0x5d, 0x01, 0xdb, 0x37, 0x4e, 0x57, 0xd0, 0x34, 0x85, 0x1f, 0x64, 0x6c, -0x2e, 0xd6, 0x55, 0xbc, 0x55, 0x4e, 0x9b, 0x48, 0x75, 0xed, 0x92, 0x72, 0x1f, 0xaf, 0xe5, 0x02, -0x6c, 0xbd, 0x9c, 0xd6, 0x5c, 0xcc, 0xf8, 0xfb, 0x23, 0xc8, 0x23, 0xeb, 0xe7, 0xf2, 0x7f, 0x44, -0x9e, 0xe0, 0xa3, 0xd5, 0xb5, 0xcb, 0x36, 0xdd, 0xff, 0x2a, 0x62, 0xe4, 0xf1, 0x38, 0xb0, 0x16, -0x36, 0xbc, 0x7f, 0x2f, 0xea, 0x61, 0x36, 0xff, 0x5f, 0x86, 0x60, 0x4a, 0x08, 0xcc, 0xe4, 0xaf, -0xb2, 0xe1, 0x38, 0x5a, 0xa6, 0x77, 0xb6, 0x89, 0x9d, 0xa6, 0x10, 0x3d, 0x14, 0xf0, 0x95, 0xc3, -0x1b, 0x09, 0x87, 0xee, 0xcf, 0x77, 0xde, 0xbb, 0x56, 0xf1, 0xfb, 0x8f, 0x5b, 0x2f, 0x9a, 0x9a, -0xbc, 0x2b, 0x46, 0xdf, 0x70, 0xcc, 0xa1, 0x95, 0x93, 0xe4, 0x24, 0x4f, 0x7e, 0xee, 0x0a, 0x71, -0xe9, 0x48, 0xee, 0x39, 0x03, 0x82, 0x5a, 0x1c, 0xf9, 0xc8, 0x0d, 0xfd, 0x4a, 0x7e, 0xcb, 0xdb, -0x2d, 0xd6, 0xac, 0x1f, 0x02, 0x1a, 0x55, 0xb5, 0x65, 0x2a, 0x7d, 0x73, 0xab, 0x27, 0x1e, 0x18, -0xb9, 0xaf, 0x75, 0x03, 0x7b, 0x52, 0x2c, 0x8a, 0x9e, 0x14, 0xde, 0x06, 0xd0, 0x76, 0xa6, 0x93, -0xd7, 0x91, 0xdb, 0x4b, 0xf7, 0x5a, 0xdf, 0x60, 0x4b, 0xe7, 0xfb, 0x00, 0xd4, 0xb2, 0xcb, 0x7f, -0xec, 0xed, 0x37, 0x63, 0x4f, 0xd9, 0x87, 0xed, 0xdf, 0x8a, 0x9e, 0x0b, 0xad, 0xd0, 0x7c, 0x05, -0x98, 0xd9, 0x97, 0xfd, 0x66, 0x7c, 0x36, 0x87, 0xfa, 0xcc, 0xbc, 0x33, 0xb7, 0xc6, 0xc7, 0x9e, -0xea, 0x7b, 0xae, 0x02, 0xf5, 0x1c, 0xef, 0xc5, 0x25, 0x7a, 0xb3, 0x66, 0xfc, 0x74, 0x19, 0xa4, -0xa9, 0x31, 0x45, 0xa9, 0x84, 0x78, 0x6c, 0x52, 0x8f, 0x5e, 0x9b, 0x97, 0xed, 0x86, 0xae, 0xf1, -0x33, 0xb3, 0xc2, 0x12, 0x0b, 0xbb, 0xa4, 0xab, 0xba, 0x5c, 0xf8, 0x3b, 0xbd, 0x8b, 0xbf, 0xf0, -0xb8, 0xfa, 0xf9, 0xb0, 0x2f, 0x56, 0x2a, 0xbe, 0xb1, 0xbc, 0x62, 0x56, 0xfb, 0x46, 0xa4, 0x6d, -0xab, 0x93, 0x76, 0xee, 0x20, 0x7c, 0x57, 0x3c, 0xe4, 0x14, 0x7b, 0x82, 0x64, 0xe4, 0x95, 0x66, -0xaa, 0xb1, 0x47, 0x42, 0x4d, 0xbc, 0x66, 0x85, 0x11, 0xfb, 0xac, 0x48, 0xad, 0xeb, 0x91, 0xf1, -0x6d, 0x72, 0x51, 0x3d, 0xe8, 0x10, 0x93, 0x15, 0xaa, 0x05, 0xf3, 0x9a, 0x9d, 0x57, 0xa0, 0x46, -0xaf, 0x66, 0x4a, 0x2e, 0x19, 0x57, 0x32, 0xc6, 0xa6, 0xcb, 0x65, 0xba, 0xa7, 0x1d, 0xc5, 0xf6, -0xf4, 0x0e, 0x55, 0xe4, 0xc5, 0x85, 0x8d, 0xa7, 0x1f, 0x04, 0xf2, 0x37, 0xbe, 0xc2, 0x08, 0x3e, -0x3b, 0xa8, 0x7a, 0xd9, 0xf7, 0x51, 0x4a, 0xf8, 0x24, 0x15, 0xbe, 0x4e, 0xf8, 0xfc, 0x7a, 0xcb, -0x25, 0x7e, 0xc8, 0x43, 0xfd, 0xd7, 0xd6, 0x78, 0x1c, 0x94, 0x29, 0x61, 0xb0, 0x63, 0xbc, 0xd2, -0xf8, 0x7e, 0xea, 0x08, 0x3e, 0x3b, 0xb1, 0x97, 0x8b, 0x5f, 0xdf, 0x3b, 0xa5, 0x19, 0x4a, 0xf1, -0xad, 0xcc, 0xa9, 0xed, 0xae, 0x8c, 0x2b, 0xe3, 0x7c, 0x51, 0xd0, 0xd8, 0xf2, 0x5d, 0xc6, 0x25, -0x4e, 0xc5, 0x3e, 0x04, 0xcb, 0x65, 0xfd, 0xa9, 0x04, 0xe4, 0x5d, 0xd3, 0xaf, 0x47, 0xcb, 0x2d, -0xb0, 0x15, 0xec, 0x18, 0x6a, 0x67, 0xa8, 0x8a, 0xdb, 0xc8, 0x66, 0x2f, 0xc5, 0x30, 0x6d, 0xb5, -0xde, 0x7f, 0x4a, 0x0a, 0x38, 0xc2, 0x48, 0x31, 0x9f, 0x28, 0x16, 0xcd, 0xf7, 0xfe, 0x0f, 0xd8, -0xa7, 0xfc, 0x2c, 0x17, 0xf9, 0x13, 0x5a, 0x09, 0xb5, 0xe5, 0x5d, 0x60, 0x9f, 0x36, 0x0f, 0xec, -0x0a, 0x4a, 0xd5, 0x9f, 0x3c, 0x05, 0x65, 0x6e, 0xbc, 0x57, 0x1a, 0x8e, 0x6d, 0xec, 0x85, 0x8a, -0x7a, 0x48, 0x5d, 0xb7, 0x09, 0x65, 0xd2, 0x53, 0xae, 0x19, 0xa0, 0x6f, 0xbd, 0xbb, 0x6d, 0x83, -0xc3, 0xb2, 0x3a, 0xb9, 0x7b, 0xad, 0xd3, 0xbf, 0x77, 0xad, 0xb5, 0x2d, 0x4c, 0x3b, 0x79, 0x36, -0xfc, 0xeb, 0x09, 0xfe, 0xba, 0x66, 0xd0, 0x43, 0x9e, 0x78, 0x2a, 0x2a, 0xe6, 0xac, 0x06, 0x75, -0xb2, 0xb2, 0xc8, 0xe3, 0x02, 0xb2, 0xfc, 0xbd, 0x9a, 0xef, 0x83, 0x44, 0xd4, 0x1c, 0x4f, 0x6d, -0x5b, 0x1b, 0xb5, 0xa8, 0xde, 0xb6, 0xb5, 0x3b, 0xd6, 0x46, 0xdf, 0x52, 0x5d, 0x6f, 0xac, 0x25, -0x1f, 0x7e, 0x44, 0xe7, 0x8e, 0xd6, 0xa2, 0x69, 0x90, 0x6f, 0x77, 0x43, 0xfe, 0x36, 0x69, 0xb1, -0x35, 0xaa, 0xe0, 0x5b, 0xc1, 0x76, 0x37, 0x14, 0x74, 0x97, 0x28, 0x1b, 0xd4, 0x22, 0xb2, 0x66, -0x46, 0x12, 0x57, 0x6d, 0x30, 0x43, 0xdb, 0xe0, 0x0b, 0x83, 0x38, 0xf2, 0x1e, 0x57, 0x96, 0x81, -0xf1, 0x5f, 0xf7, 0x76, 0xe8, 0x1b, 0x8f, 0xa7, 0x46, 0xcb, 0x2d, 0x3c, 0x13, 0x2a, 0xb7, 0x6d, -0x98, 0xbf, 0xe1, 0xf9, 0x0d, 0xa8, 0x6b, 0x2c, 0x73, 0x7e, 0x1f, 0x6b, 0xda, 0x80, 0xfc, 0x38, -0x22, 0x72, 0x06, 0x7e, 0x61, 0x06, 0x45, 0xfe, 0xd3, 0x50, 0x4f, 0xfe, 0xc8, 0xc0, 0xea, 0xb3, -0xc3, 0x6b, 0x1f, 0x22, 0x4f, 0xf3, 0xa6, 0xed, 0xb7, 0x77, 0x4c, 0xf2, 0xff, 0x05, 0x63, 0x9e, -0x02, 0xfb, 0x43, 0x09, 0xf2, 0x29, 0x3c, 0x2d, 0x84, 0xfc, 0x10, 0xe5, 0xd0, 0xbf, 0x23, 0x06, -0x7a, 0xa4, 0x38, 0xcc, 0x1b, 0x54, 0xbd, 0x3c, 0x7e, 0xf7, 0x12, 0x8c, 0xae, 0xd6, 0xb6, 0x84, -0xd3, 0xf7, 0xbb, 0xe1, 0xdf, 0xbd, 0xda, 0xf8, 0x97, 0x2d, 0xe0, 0x68, 0x2b, 0xa9, 0x80, 0x82, -0xe7, 0x10, 0xce, 0x2e, 0xab, 0xf3, 0x2e, 0xe5, 0x4e, 0xd4, 0x6b, 0xf4, 0x94, 0x67, 0x47, 0x62, -0xf1, 0xbe, 0xb0, 0x3f, 0x76, 0x46, 0xf3, 0x57, 0x8b, 0xda, 0x9e, 0xf0, 0x9f, 0xa2, 0xd4, 0x22, -0x2d, 0x96, 0xd2, 0x5c, 0x12, 0x79, 0xd5, 0x41, 0x8c, 0xda, 0xd8, 0x1b, 0x91, 0x8d, 0xf7, 0x01, -0x24, 0x62, 0x66, 0xe7, 0xdf, 0xb2, 0xcf, 0xfa, 0x13, 0xb4, 0xe3, 0xa2, 0x8c, 0xcf, 0x31, 0x11, -0x7d, 0xe7, 0xe8, 0x96, 0x8a, 0xe5, 0xee, 0xd4, 0x8f, 0x24, 0xb7, 0x79, 0x1a, 0xcd, 0xcc, 0x44, -0x2b, 0xb1, 0x37, 0x1f, 0xf8, 0x97, 0x53, 0xd2, 0x23, 0xb1, 0x1a, 0xa5, 0x52, 0x7a, 0x80, 0xfc, -0xcb, 0x0b, 0x3e, 0x37, 0x3c, 0xa0, 0xf8, 0x50, 0x3e, 0xe7, 0x6d, 0x9b, 0x06, 0x79, 0xdd, 0x66, -0x1e, 0x61, 0xce, 0x58, 0xd1, 0xa5, 0xc4, 0x75, 0x0b, 0x29, 0x0f, 0xf5, 0xbf, 0xd0, 0x41, 0xb5, -0xb3, 0xe0, 0xc5, 0xec, 0x18, 0x96, 0x7f, 0x49, 0xb7, 0x54, 0x0e, 0x76, 0xb3, 0x0b, 0x8c, 0x60, -0x63, 0xff, 0xa5, 0x81, 0xf1, 0xfb, 0xca, 0x91, 0xe6, 0xc5, 0xfc, 0xd7, 0x12, 0xac, 0xaf, 0x28, -0x46, 0xde, 0xe1, 0xf4, 0x4a, 0x42, 0x69, 0x9b, 0x42, 0x5e, 0x6e, 0xf5, 0x4a, 0xd6, 0x5b, 0xc2, -0x1e, 0x1c, 0x3d, 0x07, 0xc5, 0x5b, 0xdb, 0x33, 0x52, 0xd9, 0x77, 0x96, 0x81, 0x5d, 0x2a, 0x9f, -0x11, 0x96, 0x8a, 0xbf, 0xdb, 0x2d, 0x29, 0x92, 0x43, 0xee, 0x7e, 0x3b, 0x25, 0x39, 0x79, 0x8f, -0x45, 0x61, 0x18, 0xdb, 0xde, 0x55, 0xa6, 0xda, 0xda, 0xb6, 0x48, 0xa5, 0xb0, 0x04, 0x12, 0x92, -0xfb, 0xfe, 0x57, 0x55, 0xf2, 0xe5, 0xda, 0x94, 0xae, 0x3b, 0x4b, 0xab, 0xa1, 0x3f, 0xcf, 0xaa, -0x72, 0x42, 0xb9, 0xd9, 0x9d, 0xe7, 0xb2, 0xc5, 0x4b, 0xc6, 0x69, 0xb8, 0x34, 0x2a, 0xe6, 0x97, -0xc9, 0x57, 0x35, 0x80, 0xf9, 0xaa, 0x46, 0xb0, 0x5e, 0x85, 0x23, 0xeb, 0xf2, 0xfe, 0xd4, 0x11, -0x28, 0xbe, 0x3c, 0x00, 0x97, 0x65, 0xf7, 0xaa, 0x94, 0xc9, 0x62, 0x4f, 0xa9, 0x62, 0x1c, 0x59, -0x8f, 0x3d, 0xfa, 0xb2, 0xc6, 0x8f, 0x4f, 0x87, 0xa0, 0x7c, 0x13, 0xda, 0x17, 0x7a, 0x47, 0x2b, -0xf9, 0x75, 0x57, 0x7e, 0x9c, 0xdd, 0x27, 0xc1, 0x3c, 0xb3, 0x5f, 0xcc, 0x1d, 0xd0, 0x88, 0xa7, -0x79, 0x03, 0x5a, 0x6f, 0xe6, 0x75, 0x7f, 0x9f, 0xb6, 0x17, 0x01, 0x6d, 0x72, 0x87, 0xff, 0xf5, -0x61, 0xde, 0x77, 0x60, 0x53, 0xe2, 0x0f, 0x02, 0x5a, 0xe1, 0x93, 0x1d, 0x4b, 0xc0, 0xcc, 0xa7, -0x46, 0x14, 0xe1, 0x08, 0xb0, 0xe3, 0x85, 0xba, 0x49, 0xe4, 0x27, 0xeb, 0x12, 0xcc, 0x61, 0x1b, -0xca, 0xed, 0x48, 0xf9, 0xb2, 0x38, 0x7b, 0x45, 0x9b, 0x41, 0xa8, 0x2a, 0xd6, 0xda, 0x86, 0x7a, -0x55, 0xc1, 0xe2, 0xe8, 0xc5, 0x5a, 0x38, 0xa1, 0x7d, 0xa7, 0x27, 0xb6, 0x4f, 0xec, 0x23, 0x44, -0xcb, 0x5b, 0xfe, 0xf3, 0xd0, 0xa6, 0x41, 0xb2, 0x1a, 0xac, 0x36, 0x25, 0xb8, 0x7f, 0xf8, 0xcb, -0x5a, 0x97, 0xa6, 0xce, 0x96, 0x7a, 0xe2, 0x94, 0x3d, 0xe4, 0xce, 0xaa, 0x30, 0xe3, 0x73, 0x0a, -0xf9, 0xd5, 0xfe, 0x61, 0xd4, 0xf6, 0x6c, 0x6a, 0xa6, 0x05, 0xf4, 0x5d, 0x7d, 0x64, 0x93, 0x12, -0x68, 0xdd, 0xe8, 0xb4, 0x47, 0x4f, 0x10, 0x27, 0xa4, 0x93, 0x72, 0xc8, 0xce, 0x26, 0x4e, 0x79, -0xcd, 0x49, 0x6a, 0x9b, 0xe8, 0x2b, 0x94, 0x78, 0xfd, 0xb4, 0x66, 0x90, 0x32, 0xf0, 0x89, 0x23, -0x95, 0xd6, 0x37, 0xc6, 0x7b, 0x64, 0xd6, 0xf6, 0xcf, 0x87, 0x28, 0x26, 0x6b, 0x87, 0x54, 0xa4, -0xbf, 0xd7, 0xb0, 0x89, 0x12, 0x6b, 0x7c, 0xad, 0x1b, 0xb5, 0xf2, 0xa4, 0x6c, 0x79, 0x24, 0x87, -0x78, 0xdf, 0x79, 0x88, 0x7b, 0xa1, 0xd6, 0xea, 0xa2, 0x9e, 0x8e, 0x7a, 0xb3, 0x78, 0x60, 0xca, -0xbc, 0x37, 0x4d, 0x99, 0xd9, 0xf6, 0x3a, 0xc2, 0xf1, 0x92, 0x6c, 0x6d, 0x69, 0xba, 0x9a, 0x50, -0xd6, 0xe9, 0xff, 0x4c, 0x59, 0x71, 0x5d, 0x16, 0x4e, 0x7e, 0x97, 0x73, 0xe0, 0x26, 0x6a, 0x36, -0x8b, 0x7b, 0xba, 0x9d, 0xc2, 0xa3, 0x29, 0xb5, 0x55, 0xe9, 0xcb, 0xb4, 0x55, 0x8b, 0xa7, 0xf9, -0xda, 0xcb, 0x1f, 0xb3, 0x26, 0xd6, 0x9e, 0x26, 0xbe, 0xd6, 0x93, 0x52, 0xb4, 0x76, 0xe3, 0x5f, -0x7a, 0x66, 0x23, 0xc5, 0xfe, 0x02, 0xed, 0x5a, 0xed, 0x5a, 0x5e, 0x5a, 0x69, 0x49, 0xaf, 0xb6, -0x28, 0x7d, 0xe4, 0x49, 0x20, 0x9b, 0x52, 0xd3, 0x63, 0x68, 0x97, 0x8e, 0xbd, 0xf7, 0x7b, 0xb4, -0x0f, 0x44, 0xe9, 0x43, 0xe9, 0x47, 0xab, 0x59, 0x57, 0x46, 0xee, 0x6d, 0xdd, 0x38, 0x6f, 0x30, -0xfa, 0x09, 0xbf, 0x59, 0xd2, 0x30, 0xa5, 0xd7, 0xa4, 0x66, 0xd5, 0x3a, 0x35, 0xcd, 0xd5, 0x43, -0x36, 0xbe, 0x65, 0x36, 0xe7, 0x25, 0x3f, 0xa0, 0x91, 0x9d, 0xc2, 0xff, 0xf9, 0x1a, 0x1d, 0xed, -0x85, 0x6a, 0x5b, 0x6b, 0x2f, 0x8d, 0x59, 0x91, 0x86, 0x2d, 0x31, 0x23, 0xfe, 0x16, 0x46, 0x4f, -0xc5, 0x23, 0xdb, 0xd6, 0x76, 0xc9, 0xab, 0x23, 0x7d, 0x91, 0x07, 0xd7, 0x72, 0xde, 0x2b, 0xc9, -0x9b, 0x27, 0x9d, 0x09, 0x1f, 0xb3, 0xf0, 0xbb, 0x42, 0xef, 0x47, 0xef, 0xaa, 0xd0, 0xab, 0xd6, -0xf4, 0xfb, 0xbc, 0xf5, 0xc8, 0x0f, 0xd7, 0x47, 0x4f, 0xbb, 0xc2, 0xaa, 0xdd, 0x5e, 0x16, 0x4a, -0x78, 0x64, 0xc6, 0xd3, 0x7d, 0x6d, 0x18, 0xfe, 0xdc, 0xfa, 0xee, 0x93, 0x8a, 0xae, 0x29, 0x31, -0x92, 0xf8, 0x49, 0xe2, 0xe5, 0xc4, 0xef, 0x5e, 0xca, 0xc9, 0xb5, 0xae, 0x75, 0x63, 0x33, 0xc3, -0x85, 0xb6, 0xf6, 0x09, 0xad, 0xae, 0xcd, 0x02, 0x5e, 0xde, 0x3b, 0x69, 0x0f, 0x17, 0xc5, 0x6c, -0x6d, 0x1b, 0xe6, 0xdd, 0x1e, 0x33, 0x2b, 0x61, 0x94, 0x4f, 0x90, 0x9a, 0x4f, 0xf0, 0x27, 0x4f, -0xb5, 0x6f, 0x14, 0xed, 0x09, 0x17, 0x45, 0x6d, 0xaa, 0x1b, 0x73, 0x88, 0x7e, 0x41, 0xb8, 0xec, -0x93, 0xa2, 0xa7, 0xb5, 0x12, 0x34, 0x8c, 0xa0, 0x36, 0x80, 0xfa, 0x73, 0x59, 0xbf, 0x0a, 0xc9, -0xe7, 0xe8, 0x2e, 0xe8, 0x53, 0xf4, 0x2b, 0xd2, 0x3a, 0x5a, 0x53, 0x05, 0xbb, 0x35, 0x9d, 0x58, -0x9c, 0xcd, 0x53, 0x87, 0x63, 0xd7, 0xc8, 0xab, 0x2d, 0x47, 0xd2, 0x27, 0xde, 0xb0, 0x86, 0xa4, -0x69, 0x4d, 0xd9, 0xb1, 0xa3, 0xf9, 0xcc, 0xa8, 0xa3, 0x1d, 0x76, 0xec, 0x01, 0x82, 0xeb, 0xf4, -0x96, 0x92, 0xb7, 0xab, 0x28, 0xf7, 0xe7, 0xe5, 0x4f, 0xab, 0x93, 0xf8, 0xfe, 0xa9, 0xf8, 0xee, -0xe9, 0xea, 0xf5, 0x2c, 0x53, 0x4b, 0x58, 0xf3, 0x43, 0x9b, 0x96, 0x57, 0xe3, 0x42, 0xad, 0x1b, -0xff, 0xe9, 0xd7, 0xd8, 0x17, 0x28, 0x15, 0x1c, 0xf4, 0xdd, 0x36, 0xe9, 0x2a, 0xca, 0x3f, 0xbf, -0x96, 0x9e, 0xf9, 0x27, 0x5e, 0x12, 0x9d, 0x8c, 0x52, 0xa7, 0x8c, 0xbd, 0x5a, 0x59, 0x38, 0x6f, -0x4d, 0x3a, 0x2f, 0x69, 0x6b, 0xea, 0x4d, 0x57, 0x05, 0xa4, 0x0a, 0xc1, 0xed, 0x51, 0x1e, 0x48, -0x72, 0x2c, 0x16, 0xe2, 0x54, 0x03, 0x81, 0x9f, 0x37, 0x9e, 0x4b, 0xf9, 0x22, 0xf7, 0xba, 0x90, -0x07, 0xa8, 0x15, 0x24, 0xdb, 0xd1, 0x66, 0x71, 0x41, 0xbe, 0x87, 0x7e, 0x2d, 0xfc, 0x5b, 0x40, -0xde, 0xc6, 0x89, 0x42, 0x39, 0xc7, 0x2f, 0xb0, 0x5c, 0x3e, 0xa1, 0x47, 0x59, 0xc8, 0x73, 0xab, -0xfb, 0x88, 0xdf, 0xd0, 0x29, 0x4a, 0xe9, 0x7d, 0xa0, 0x75, 0x7b, 0xfe, 0x13, 0xfb, 0x3f, 0xe3, -0x3d, 0x2b, 0x6f, 0xe9, 0x5c, 0xb5, 0x6a, 0x65, 0xcf, 0x45, 0x77, 0x93, 0x54, 0x4d, 0x3c, 0xc1, -0xf3, 0xc2, 0xe4, 0x62, 0xcf, 0xca, 0x75, 0x93, 0x20, 0x39, 0x2b, 0x24, 0xc9, 0xe6, 0x5b, 0xf0, -0xd9, 0x08, 0xc9, 0xda, 0x7f, 0xc7, 0xfb, 0x53, 0xa2, 0xa2, 0xef, 0x77, 0x2f, 0xef, 0x5e, 0xf9, -0x0f, 0xdd, 0x30, 0x75, 0x15, 0xd4, 0xd4, 0x7a, 0x6b, 0xbc, 0xf4, 0x5b, 0xcd, 0xbf, 0x33, 0xf9, -0xb7, 0x8a, 0x7f, 0xaf, 0xe6, 0x5f, 0xaf, 0x17, 0x94, 0xe9, 0x4a, 0x53, 0xeb, 0xf7, 0xe9, 0x56, -0x53, 0x5b, 0x5b, 0x5b, 0x95, 0x7e, 0xb8, 0xfa, 0x82, 0x6d, 0x20, 0x39, 0x67, 0xec, 0x25, 0x67, -0x15, 0x43, 0xb2, 0x7e, 0x71, 0xce, 0xde, 0xd1, 0xba, 0xb8, 0xe3, 0xe2, 0x7e, 0x23, 0xe1, 0xf4, -0xec, 0x93, 0x60, 0xfe, 0x16, 0x59, 0x1c, 0x76, 0xfc, 0xbd, 0x05, 0x2e, 0x99, 0xd6, 0xcf, 0x30, -0x17, 0x29, 0x73, 0x48, 0x2f, 0xaf, 0x7d, 0xf0, 0xfe, 0x57, 0x33, 0x79, 0x1e, 0xff, 0xea, 0x9d, -0xa7, 0xb5, 0x7b, 0x1b, 0xc5, 0xde, 0xd0, 0x7b, 0x2f, 0xdc, 0x79, 0x5a, 0xfb, 0x7c, 0xe4, 0xde, -0xf1, 0x76, 0xc5, 0x75, 0x0f, 0x36, 0x8a, 0x9d, 0xa7, 0xf7, 0x6a, 0x3b, 0x4f, 0x17, 0x78, 0xf2, -0x73, 0xd2, 0x3f, 0xca, 0xe1, 0x39, 0x3b, 0x4f, 0x6b, 0x2f, 0xb2, 0xf3, 0xb4, 0x76, 0xc2, 0xce, -0x53, 0x47, 0x4b, 0xdc, 0x31, 0x7e, 0xaf, 0xa9, 0x6a, 0x43, 0xab, 0x26, 0x7d, 0x92, 0xd4, 0xa4, -0xb4, 0x7c, 0x5a, 0x08, 0x69, 0x5d, 0x55, 0x71, 0xa0, 0x35, 0x6b, 0x75, 0x76, 0x43, 0x49, 0xdc, -0x94, 0xf5, 0xe3, 0xeb, 0x24, 0xbf, 0x95, 0x35, 0xe4, 0x99, 0xda, 0x61, 0x57, 0x24, 0x63, 0xe2, -0x47, 0xa9, 0xd4, 0xb5, 0x6c, 0x51, 0xb9, 0x17, 0xbb, 0xc8, 0x3f, 0xbb, 0x75, 0x00, 0x5f, 0x5e, -0x89, 0x96, 0xd0, 0xae, 0xf5, 0xef, 0x27, 0x48, 0xf7, 0x9f, 0x4f, 0x3e, 0x3d, 0x13, 0xc1, 0x56, -0x1c, 0x25, 0xc9, 0x00, 0xfd, 0x9e, 0xe5, 0x34, 0xf9, 0x88, 0xe1, 0xed, 0x8b, 0xeb, 0xf8, 0xd9, -0x84, 0xcf, 0x87, 0x16, 0x97, 0xf1, 0xb3, 0x1c, 0xeb, 0xe1, 0xbb, 0x3e, 0xa6, 0xf2, 0x9d, 0x0e, -0xae, 0x7d, 0x59, 0x6d, 0xc9, 0x94, 0x9d, 0x17, 0xbb, 0x69, 0x71, 0x3f, 0xfb, 0x3e, 0xa0, 0xb7, -0x58, 0x6c, 0xb1, 0x96, 0xcf, 0x16, 0x5b, 0xcc, 0xf7, 0x68, 0xac, 0x89, 0xef, 0x56, 0xf6, 0x82, -0x10, 0xe1, 0xe7, 0xa5, 0xb1, 0xf6, 0xce, 0x16, 0x7e, 0x5a, 0x16, 0xed, 0x53, 0x3b, 0xa8, 0x2c, -0xd4, 0xcb, 0x26, 0xd1, 0x5d, 0x41, 0x3d, 0x5e, 0x84, 0xf4, 0x74, 0xab, 0xe4, 0xff, 0x4b, 0x19, -0x41, 0x2d, 0x5e, 0x49, 0xa8, 0xad, 0x5a, 0x6c, 0x99, 0xda, 0xa4, 0x3d, 0x29, 0x6a, 0x3d, 0x3d, -0x05, 0x36, 0xb1, 0x3f, 0x7f, 0xd4, 0x3d, 0x95, 0x01, 0xf6, 0x84, 0x43, 0x6b, 0x7e, 0xaf, 0x61, -0x4e, 0x3a, 0xb1, 0xc6, 0xa5, 0x24, 0xa6, 0xf8, 0xd1, 0xb6, 0x2e, 0xe2, 0x94, 0x76, 0xd5, 0x22, -0x72, 0x90, 0x6d, 0xe2, 0x27, 0x89, 0x1d, 0xc8, 0x7a, 0xf5, 0x49, 0x0e, 0x3b, 0x02, 0xd9, 0x93, -0xbc, 0x68, 0xdd, 0x84, 0xf4, 0x56, 0x92, 0x19, 0x50, 0x45, 0x3e, 0x60, 0xee, 0x7f, 0x95, 0xbc, -0xd7, 0x35, 0x7c, 0x94, 0xf5, 0x7d, 0x37, 0xfa, 0x6a, 0xda, 0x4b, 0x1f, 0x54, 0xc5, 0x2b, 0x72, -0xa5, 0xfc, 0xd8, 0x7c, 0xb6, 0x56, 0x40, 0xda, 0x44, 0x9a, 0xd3, 0x14, 0x1f, 0xef, 0x84, 0x4e, -0x5e, 0x57, 0xc7, 0xbf, 0x01, 0x0f, 0xcc, 0x3e, 0x97, 0xda, 0x1a, 0xb9, 0x6f, 0x2a, 0x59, 0x41, -0xe4, 0xef, 0x6f, 0x2b, 0xdb, 0x2a, 0x0a, 0xd9, 0x2b, 0x4a, 0x7a, 0xce, 0xc0, 0x25, 0xb9, 0x98, -0x36, 0xa1, 0xcb, 0x1d, 0x37, 0x92, 0xdf, 0x33, 0xce, 0xdb, 0xa8, 0x95, 0x60, 0xc1, 0xdc, 0xfd, -0x34, 0x93, 0x09, 0x8a, 0x76, 0x2f, 0x23, 0x09, 0x14, 0x1c, 0x5e, 0xe6, 0x8a, 0x1b, 0x32, 0xa9, -0xe7, 0x8c, 0x4f, 0x6d, 0xd7, 0x52, 0xdb, 0x29, 0x75, 0x7f, 0x70, 0x38, 0xea, 0x8a, 0xeb, 0x33, -0x69, 0xbf, 0x37, 0x3e, 0xad, 0xa4, 0xa5, 0x95, 0x28, 0x6d, 0x2b, 0x7d, 0x7b, 0x11, 0x53, 0xe2, -0xba, 0x4c, 0xea, 0x1b, 0x2f, 0x4c, 0xad, 0xba, 0xd9, 0x83, 0xac, 0x2d, 0x2e, 0x67, 0x52, 0xfd, -0x9d, 0x6a, 0x8d, 0x4b, 0x99, 0xb7, 0x5b, 0xb2, 0x79, 0x58, 0x13, 0xcc, 0x69, 0x29, 0xcf, 0x4a, -0x97, 0x84, 0x61, 0x85, 0x1e, 0x5b, 0x10, 0x62, 0xa8, 0x4a, 0x39, 0xf5, 0x52, 0xb5, 0x1c, 0xe3, -0x0c, 0x58, 0xaa, 0x2e, 0x13, 0x16, 0x57, 0x8b, 0xcc, 0x44, 0x8f, 0x0a, 0xd7, 0x24, 0xc2, 0x7e, -0x28, 0xca, 0x0e, 0x2d, 0xa3, 0x3d, 0x28, 0xc9, 0x08, 0x9f, 0x17, 0x65, 0xe4, 0xba, 0x09, 0xb3, -0x4e, 0xbc, 0xe8, 0x8b, 0x06, 0xed, 0xfc, 0xb8, 0xec, 0xb7, 0x7b, 0xc4, 0x37, 0xae, 0x1b, 0xcc, -0xf4, 0xba, 0x0d, 0xd3, 0xa3, 0x94, 0xac, 0xf0, 0x21, 0x55, 0xb8, 0xf0, 0xd9, 0x26, 0xf2, 0x68, -0x5e, 0x25, 0x31, 0xdf, 0x7f, 0x82, 0x5f, 0x77, 0x75, 0x74, 0x74, 0xae, 0x58, 0xd9, 0x9d, 0xe5, -0xd6, 0xd5, 0x57, 0x57, 0xce, 0x1c, 0xcf, 0xa3, 0x27, 0x26, 0x11, 0x1c, 0x7a, 0xd6, 0x2e, 0x48, -0x86, 0x9e, 0xd2, 0x4f, 0x33, 0xdf, 0x8e, 0xcf, 0x5b, 0xf1, 0xba, 0x03, 0x92, 0x37, 0xa8, 0xa2, -0xe8, 0x04, 0xe8, 0x3e, 0x80, 0xe4, 0x6c, 0x0b, 0xde, 0x4f, 0x6a, 0xef, 0x1f, 0x6a, 0xf7, 0xcf, -0x09, 0x56, 0xbc, 0x9f, 0xc1, 0xd4, 0xc5, 0x78, 0xff, 0x54, 0x9c, 0x51, 0x2c, 0xfe, 0xb5, 0x2c, -0x5d, 0xac, 0x94, 0x2b, 0xc1, 0xce, 0xd5, 0x4a, 0xcb, 0x4a, 0xde, 0xc9, 0x16, 0xbc, 0x99, 0x6a, -0x86, 0x8e, 0xce, 0xd5, 0xab, 0xa0, 0x6b, 0xe9, 0xe2, 0x55, 0xd0, 0xda, 0xf6, 0x37, 0xb3, 0x83, -0xcd, 0x6d, 0x75, 0x17, 0x1e, 0x2e, 0x8c, 0x5c, 0xa3, 0x2b, 0xf7, 0x8c, 0x53, 0xa6, 0xfe, 0xbe, -0x89, 0x3c, 0xbb, 0x5c, 0xf0, 0xec, 0x53, 0xe9, 0x19, 0xa2, 0xd4, 0xed, 0x62, 0x86, 0x08, 0x5b, -0xa0, 0xcd, 0x10, 0xcd, 0x6a, 0xf9, 0xe6, 0xfc, 0x7a, 0x56, 0xdf, 0x97, 0xf3, 0xeb, 0x59, 0x4b, -0x26, 0xf2, 0xeb, 0x1b, 0x5a, 0xbe, 0x8a, 0x5f, 0xcf, 0x6a, 0x9d, 0xc8, 0xaf, 0x67, 0xa9, 0xe9, -0xd2, 0x73, 0x52, 0xc5, 0x23, 0xf7, 0x8e, 0xe3, 0xd7, 0x73, 0xe2, 0x7d, 0x13, 0xf8, 0xb5, 0x3d, -0x97, 0x5f, 0x2b, 0xf9, 0x59, 0xea, 0x22, 0xfd, 0x56, 0xd3, 0x7f, 0xfa, 0x35, 0x4b, 0x73, 0xfc, -0x49, 0x85, 0x9e, 0xcc, 0x29, 0x84, 0xcb, 0x2e, 0x08, 0xe9, 0x48, 0x9f, 0xa8, 0x99, 0xf6, 0xc9, -0xd9, 0x6b, 0x3b, 0xb8, 0x55, 0xae, 0x56, 0x02, 0x15, 0x61, 0xe4, 0x2b, 0xfb, 0x94, 0xe9, 0x50, -0x3f, 0x2f, 0x71, 0x95, 0x0f, 0xea, 0xa3, 0x65, 0x58, 0x7f, 0x98, 0x3c, 0xf4, 0x39, 0x96, 0x83, -0x85, 0x63, 0x23, 0x22, 0x64, 0x2c, 0xa2, 0x5a, 0xfc, 0x1f, 0x80, 0x8d, 0x9f, 0x5f, 0xd6, 0x72, -0xbe, 0x9c, 0x3d, 0xe9, 0xd2, 0xd5, 0xec, 0x8c, 0x94, 0x77, 0xcb, 0xd5, 0xce, 0xe9, 0xd0, 0xcb, -0x76, 0x5a, 0x95, 0x87, 0xf6, 0xe6, 0xb5, 0xf8, 0x4f, 0xa6, 0xce, 0x54, 0xb4, 0xb0, 0xae, 0x64, -0xa6, 0x55, 0x69, 0x3a, 0xaf, 0xb4, 0x47, 0xba, 0xca, 0x0f, 0x71, 0xf2, 0x12, 0x2c, 0x76, 0xef, -0xf1, 0xf9, 0x81, 0x5e, 0xfe, 0x16, 0x51, 0x2b, 0xad, 0x1c, 0x4b, 0x73, 0x51, 0x69, 0x15, 0xd0, -0xcb, 0xe5, 0xe8, 0x2b, 0x96, 0x93, 0x0f, 0x27, 0x5e, 0xbf, 0x76, 0xf9, 0x4f, 0xa5, 0xce, 0x38, -0xe6, 0xa4, 0xcb, 0xec, 0x49, 0xd1, 0x29, 0x63, 0xa2, 0xdc, 0x69, 0xd9, 0x72, 0x41, 0x94, 0x9b, -0x3c, 0x94, 0x5b, 0x6e, 0x2e, 0x94, 0x54, 0x6e, 0xf2, 0x29, 0x84, 0xef, 0x94, 0x62, 0xfd, 0x2a, -0x08, 0x93, 0xcf, 0x69, 0x25, 0xdd, 0x93, 0x53, 0x52, 0x95, 0x28, 0x27, 0xf0, 0x24, 0xa6, 0xa2, -0x72, 0x3a, 0x1c, 0xdd, 0xd2, 0x9a, 0xf6, 0x8d, 0x6a, 0x71, 0x78, 0x29, 0x28, 0x51, 0x2b, 0x61, -0x27, 0xd9, 0x1d, 0xc6, 0xd8, 0xe8, 0x64, 0x47, 0xc0, 0x79, 0x49, 0xf4, 0xb8, 0x63, 0x99, 0xb4, -0x48, 0x55, 0x38, 0xb6, 0x94, 0x63, 0xc3, 0x14, 0x1b, 0xb3, 0x72, 0xc9, 0xd5, 0xec, 0xd1, 0xcc, -0xce, 0x29, 0x0f, 0x73, 0x88, 0x03, 0x43, 0x40, 0x60, 0x37, 0xf2, 0xfd, 0xd4, 0xde, 0xd0, 0x9f, -0xaf, 0xae, 0xa2, 0x6f, 0x9c, 0x90, 0xba, 0x6a, 0x99, 0x92, 0x0e, 0x93, 0xd7, 0x40, 0x71, 0xd2, -0x65, 0x5c, 0x9f, 0x2b, 0xb9, 0x89, 0x96, 0xa3, 0xf6, 0xca, 0xfa, 0x21, 0x5d, 0xc2, 0x94, 0xdd, -0x53, 0x92, 0x91, 0x21, 0x51, 0xe4, 0x40, 0x2a, 0xc7, 0x23, 0x7b, 0x1d, 0xb7, 0xe7, 0x44, 0x65, -0xcd, 0xb3, 0x30, 0x43, 0x7d, 0xdb, 0x28, 0xec, 0x92, 0x7e, 0x28, 0x84, 0x42, 0xe4, 0xc6, 0x38, -0xde, 0x61, 0x7e, 0xc0, 0x0d, 0xf3, 0xe8, 0xd9, 0x9f, 0x84, 0x85, 0xc8, 0xfd, 0xda, 0xa7, 0x06, -0xa0, 0xd7, 0x7f, 0x02, 0xea, 0xa7, 0x86, 0x20, 0x88, 0xef, 0x3e, 0x7c, 0xf6, 0xe1, 0x73, 0xfd, -0xec, 0x13, 0x60, 0x53, 0xe6, 0x64, 0x7d, 0xe3, 0x8b, 0xa7, 0x19, 0x61, 0xb9, 0xba, 0xe1, 0x04, -0x60, 0xdb, 0x47, 0xcf, 0xe5, 0xc4, 0xee, 0x13, 0x33, 0xda, 0xde, 0xfe, 0xb1, 0x43, 0xb4, 0xb2, -0xdd, 0xb4, 0xad, 0xa2, 0x19, 0x6b, 0x5f, 0x88, 0x70, 0x2e, 0x49, 0xc7, 0x24, 0x83, 0x1c, 0xe3, -0xcb, 0xc4, 0x74, 0x65, 0x62, 0x16, 0x53, 0x8c, 0xdf, 0x26, 0x62, 0x32, 0xa1, 0xb3, 0x38, 0x74, -0xa1, 0x08, 0x25, 0x9f, 0xf9, 0xfe, 0x1d, 0x99, 0xb8, 0x6e, 0x45, 0x37, 0x21, 0x75, 0x38, 0x1d, -0xd2, 0xb3, 0xf7, 0xc0, 0xdd, 0x3c, 0x07, 0x4c, 0x3c, 0xbb, 0x83, 0xb1, 0x94, 0x3f, 0x11, 0x4b, -0x68, 0xb7, 0x76, 0x80, 0x3d, 0x07, 0xfe, 0x97, 0xe9, 0xc4, 0x89, 0x96, 0xbb, 0x84, 0x37, 0x9d, -0xbf, 0xf9, 0x28, 0xf5, 0x3c, 0xcd, 0x00, 0xba, 0x3d, 0xb0, 0x0e, 0xc7, 0xd9, 0x90, 0xcb, 0x8d, -0xa3, 0x2c, 0x58, 0xe1, 0x82, 0x5e, 0x1c, 0x8d, 0x7d, 0x15, 0x4d, 0xd8, 0xf6, 0x87, 0xca, 0xa1, -0xaa, 0x1f, 0x6c, 0xaf, 0xef, 0xf1, 0x34, 0x43, 0xa5, 0xd2, 0x2c, 0x46, 0xe0, 0x6d, 0xf5, 0x6f, -0xad, 0x53, 0x66, 0x3b, 0x1a, 0x98, 0x32, 0x4e, 0x92, 0x6e, 0x1a, 0xed, 0x89, 0x07, 0x7b, 0x80, -0x63, 0xe7, 0x33, 0xdf, 0x8b, 0xf2, 0x09, 0x31, 0xec, 0xed, 0xdf, 0x09, 0x6d, 0x89, 0x74, 0x9c, -0x9b, 0xe2, 0xea, 0x95, 0x06, 0x87, 0x4f, 0x91, 0x39, 0x64, 0x53, 0xe0, 0x1a, 0x17, 0x5c, 0x35, -0x17, 0xb2, 0xa3, 0xf5, 0x00, 0x52, 0x69, 0xfd, 0x7d, 0xaf, 0x70, 0xd9, 0x6f, 0xe2, 0x28, 0xf7, -0x61, 0x4d, 0x62, 0x94, 0x5b, 0x5c, 0x73, 0x54, 0x4b, 0x66, 0x7c, 0xeb, 0xdb, 0x9e, 0x82, 0x7a, -0xd4, 0x2d, 0x2a, 0xc5, 0xd8, 0x7e, 0x9e, 0xbf, 0xc5, 0x90, 0xea, 0xfc, 0x27, 0xb5, 0x72, 0xf6, -0x29, 0x8d, 0x69, 0x08, 0x49, 0xb7, 0x91, 0x94, 0x2b, 0xe8, 0x6b, 0x8b, 0xef, 0xa7, 0x4b, 0xf6, -0xf8, 0x60, 0x01, 0xaa, 0x21, 0xf3, 0x39, 0x34, 0x82, 0x9a, 0xd0, 0x4d, 0xa8, 0x5b, 0x2e, 0x0e, -0x3c, 0x0b, 0x8b, 0x50, 0xbf, 0x59, 0x84, 0xad, 0xbd, 0x09, 0x63, 0x0c, 0x50, 0x77, 0x43, 0x3f, -0x04, 0x20, 0x88, 0xf1, 0xb4, 0x9e, 0x42, 0xfb, 0xe2, 0xfa, 0x60, 0x09, 0xfe, 0x26, 0xa0, 0x2b, -0x0e, 0x3d, 0x76, 0x2e, 0xeb, 0x35, 0x47, 0x50, 0x59, 0x0a, 0x2a, 0xe6, 0xab, 0xe2, 0xf7, 0x7b, -0x29, 0x35, 0x3f, 0x25, 0xd0, 0x62, 0x8e, 0xa3, 0x0c, 0xd8, 0xa6, 0xc8, 0x23, 0x09, 0xfa, 0x6a, -0x45, 0x99, 0x96, 0x1a, 0xfd, 0x5e, 0xc2, 0xff, 0x3e, 0xea, 0x63, 0x4e, 0x6b, 0x7b, 0x78, 0x34, -0x5a, 0xf6, 0xff, 0x8c, 0x90, 0xb7, 0xde, 0xc8, 0xce, 0x73, 0x23, 0x8e, 0x39, 0x0e, 0xc6, 0x49, -0xea, 0x21, 0x84, 0x7c, 0x39, 0xa0, 0x25, 0xfa, 0xfd, 0x44, 0x79, 0xa8, 0xe7, 0x5b, 0xdb, 0x13, -0x9d, 0x07, 0x95, 0x4b, 0xa2, 0x2f, 0x70, 0xaa, 0xad, 0x4a, 0x60, 0xff, 0xee, 0x86, 0xd3, 0x43, -0x7a, 0x25, 0x90, 0xfe, 0x42, 0x34, 0xdb, 0x4e, 0x27, 0xaf, 0x64, 0x9e, 0xa3, 0xd9, 0xc4, 0xc1, -0x68, 0xa5, 0xc7, 0x88, 0x56, 0x64, 0x2f, 0xbe, 0xff, 0x8c, 0xac, 0x35, 0xfb, 0x34, 0xd4, 0x37, -0x1a, 0xb7, 0xb9, 0x70, 0xbc, 0x15, 0xe3, 0xd8, 0x99, 0x06, 0xf9, 0xdb, 0x9e, 0x85, 0xfe, 0x4e, -0xb3, 0xe8, 0x19, 0xac, 0xd3, 0xaa, 0xad, 0x4a, 0x87, 0x22, 0xb7, 0x8a, 0xf2, 0x52, 0x8f, 0x3a, -0xa8, 0x67, 0x5f, 0x56, 0x8f, 0x91, 0xee, 0xed, 0x9d, 0x55, 0x0e, 0xce, 0x66, 0x37, 0x72, 0x11, -0x8f, 0x2d, 0xd4, 0x2d, 0x2d, 0x62, 0x29, 0x53, 0xc1, 0x2b, 0x27, 0x7e, 0xf0, 0x46, 0x76, 0x8e, -0xed, 0x70, 0xf1, 0x5c, 0x3f, 0x52, 0x0e, 0xca, 0x9b, 0x98, 0xe2, 0x9c, 0x01, 0x5d, 0x4a, 0x17, -0x4a, 0x3a, 0x9d, 0x23, 0xcc, 0x90, 0xca, 0xac, 0x73, 0x58, 0x11, 0x9e, 0x72, 0x84, 0xc7, 0xda, -0x7a, 0x02, 0xae, 0x48, 0x6b, 0x7e, 0x76, 0x37, 0x5c, 0x41, 0x2b, 0x15, 0x08, 0x81, 0x95, 0x34, -0x4e, 0xd6, 0xf5, 0xeb, 0x9c, 0xe0, 0x4a, 0xd7, 0xb6, 0x86, 0x6b, 0xbb, 0x9a, 0x76, 0x75, 0x60, -0x4d, 0x61, 0x3e, 0xbf, 0x8d, 0x78, 0x68, 0xb9, 0xa3, 0x02, 0xc7, 0x1d, 0xf2, 0x7e, 0x45, 0x4e, -0xdb, 0xb7, 0xe4, 0xc9, 0x9d, 0x7d, 0x58, 0xef, 0xfc, 0xe2, 0x85, 0xd6, 0x8d, 0x34, 0x13, 0xae, -0xad, 0x1d, 0xeb, 0xd3, 0x25, 0xdf, 0x30, 0xab, 0xbc, 0x0f, 0xf4, 0x95, 0xd3, 0x91, 0xd6, 0x67, -0xbb, 0x90, 0xd6, 0x1b, 0xcf, 0x7d, 0x11, 0x67, 0x9f, 0xb2, 0x6a, 0xc5, 0x1c, 0xea, 0x33, 0xb4, -0x24, 0x16, 0x21, 0x27, 0xaf, 0x2b, 0xaf, 0x80, 0x1a, 0x77, 0x17, 0x38, 0x91, 0x62, 0x28, 0xfc, -0x4d, 0x37, 0xef, 0x3c, 0x66, 0x48, 0x6a, 0x04, 0x75, 0xd7, 0x1d, 0x14, 0xb2, 0x38, 0x5a, 0x69, -0x9d, 0x01, 0x05, 0x60, 0x46, 0x2a, 0x2b, 0x51, 0x66, 0xc0, 0x2e, 0xa4, 0x43, 0x9b, 0xd2, 0x88, -0xe3, 0x68, 0x17, 0xea, 0xbd, 0xbb, 0xc4, 0xb7, 0x2f, 0x4e, 0x70, 0x34, 0x5e, 0xd9, 0x04, 0xbb, -0x50, 0x6d, 0x39, 0x85, 0xe5, 0xd4, 0x89, 0x12, 0x66, 0x82, 0x38, 0xf3, 0x02, 0x0e, 0xf0, 0x7a, -0x03, 0x8e, 0x97, 0x0a, 0xa8, 0x5c, 0x9b, 0x1e, 0x39, 0x8a, 0xcf, 0x7f, 0x7a, 0x89, 0x8c, 0x74, -0x57, 0x41, 0xbb, 0x77, 0x08, 0x0a, 0xcd, 0x2f, 0xbe, 0xc2, 0xbc, 0x9e, 0x52, 0x6d, 0xfb, 0xce, -0x2e, 0xf0, 0x2c, 0x01, 0x8f, 0x2e, 0xb4, 0x7a, 0x89, 0x24, 0x42, 0x48, 0xb2, 0x6b, 0xf0, 0xb4, -0x62, 0x9d, 0x2b, 0xe0, 0x41, 0x78, 0x30, 0x0d, 0x43, 0xeb, 0xc6, 0xe8, 0x2c, 0xe1, 0xbf, 0x04, -0x43, 0x6c, 0x34, 0xe7, 0xc3, 0xb5, 0xaf, 0x67, 0xa8, 0x9d, 0x4a, 0x23, 0xc2, 0x9b, 0x9b, 0xb6, -0x88, 0xd3, 0x06, 0xd2, 0x69, 0xd5, 0x85, 0xbd, 0xc0, 0x21, 0x5e, 0xa4, 0x2f, 0x3b, 0xd6, 0x5c, -0xb7, 0x04, 0x44, 0x1c, 0xa5, 0x76, 0x44, 0x10, 0xdb, 0x15, 0x0c, 0x65, 0xa5, 0x6a, 0xcb, 0x96, -0x42, 0x33, 0x9d, 0xd3, 0x02, 0x30, 0xcb, 0xd1, 0xc2, 0x78, 0x5c, 0x9f, 0x83, 0xeb, 0xbb, 0x5c, -0xc2, 0xee, 0xb8, 0x57, 0x85, 0xe4, 0x6d, 0x4e, 0x50, 0xb7, 0x88, 0x79, 0x81, 0xff, 0x84, 0x8e, -0xd9, 0xb1, 0x72, 0x15, 0x7d, 0x59, 0x31, 0x4e, 0xc7, 0x9c, 0xf0, 0x55, 0xc9, 0xc4, 0x24, 0x42, -0xc7, 0x6c, 0x56, 0x20, 0x99, 0x28, 0x95, 0xa6, 0x99, 0x5f, 0xc3, 0x67, 0x1b, 0xea, 0x9b, 0xa8, -0x55, 0xae, 0xf5, 0x89, 0xa2, 0xef, 0x81, 0x62, 0x09, 0x55, 0xbb, 0x09, 0xff, 0x41, 0x1a, 0x80, -0x67, 0x41, 0xc6, 0xc7, 0xa4, 0x94, 0x97, 0x0d, 0x4f, 0x62, 0xf0, 0x4f, 0x39, 0xf8, 0xac, 0x64, -0x10, 0x09, 0xc7, 0x24, 0x4e, 0xfc, 0x3f, 0xe8, 0x6d, 0x4c, 0xd2, 0x53, 0xd6, 0x4c, 0x24, 0x86, -0xff, 0x33, 0x7c, 0x2c, 0xeb, 0x24, 0x59, 0x92, 0x93, 0x92, 0x09, 0xf3, 0xc9, 0x22, 0x74, 0x37, -0x25, 0xe5, 0xd7, 0xa4, 0x0c, 0xd2, 0x67, 0xb2, 0x4e, 0x27, 0xcb, 0x9c, 0x78, 0x8a, 0x44, 0xa9, -0x75, 0x92, 0x24, 0xfe, 0x63, 0x3e, 0x3a, 0x9c, 0x56, 0xa6, 0x7c, 0x54, 0x22, 0x3e, 0x60, 0x41, -0xb4, 0x98, 0x3d, 0x00, 0x07, 0xe1, 0x4a, 0x06, 0x54, 0xe6, 0x54, 0x22, 0x89, 0x0c, 0xe2, 0x49, -0x14, 0x22, 0x63, 0xa9, 0x58, 0xd1, 0x00, 0xfc, 0x57, 0x28, 0xa3, 0x24, 0x14, 0xcb, 0xff, 0xb1, -0x24, 0x3d, 0x96, 0x0f, 0x9c, 0x0f, 0x61, 0x1e, 0x23, 0xd8, 0x64, 0x2a, 0x06, 0x13, 0xff, 0xbb, -0x68, 0x89, 0x53, 0x96, 0x45, 0xd1, 0x0c, 0x34, 0xc1, 0x2d, 0x0a, 0xcf, 0x42, 0x24, 0x73, 0xf2, -0x47, 0xe1, 0x0a, 0x91, 0x42, 0x2f, 0x53, 0x8b, 0xf4, 0x54, 0x8e, 0xa4, 0xe7, 0x84, 0x3a, 0xac, -0x82, 0x4a, 0x19, 0x95, 0x74, 0x54, 0x36, 0x41, 0xf2, 0x96, 0x28, 0xdc, 0x8c, 0xa0, 0x71, 0xeb, -0x74, 0x63, 0xd2, 0xb7, 0x30, 0x99, 0x5e, 0x07, 0x3a, 0x51, 0x2e, 0xc3, 0xa1, 0x63, 0xdc, 0xc8, -0x0c, 0x79, 0x9e, 0xc4, 0xa1, 0x14, 0x97, 0x94, 0x8c, 0x94, 0x0d, 0x91, 0x35, 0x86, 0x17, 0xfe, -0x4f, 0xea, 0xec, 0x7a, 0x89, 0xfe, 0xb8, 0x2d, 0x5c, 0x20, 0xe6, 0xf9, 0x13, 0x14, 0x11, 0xb4, -0x02, 0x74, 0x6e, 0x20, 0x15, 0x78, 0x0e, 0x61, 0x49, 0xea, 0x0a, 0x30, 0x37, 0xe1, 0x45, 0x07, -0x8c, 0xb4, 0x51, 0x46, 0xba, 0x59, 0xa0, 0x10, 0x53, 0x8f, 0x72, 0x22, 0x59, 0xa6, 0x1a, 0xc0, -0x70, 0x56, 0x57, 0x20, 0x4b, 0x7a, 0x6a, 0x03, 0xe8, 0xb4, 0xee, 0x3c, 0x21, 0xa8, 0xa0, 0x58, -0x66, 0x1c, 0x33, 0x96, 0x0d, 0x54, 0x1c, 0x42, 0x63, 0xa0, 0x3c, 0x58, 0x8d, 0x95, 0x5a, 0x4b, -0x84, 0x40, 0xf8, 0xc2, 0x2c, 0x8f, 0xc0, 0x25, 0x69, 0x8c, 0x50, 0xc9, 0x08, 0x80, 0x41, 0x87, -0x15, 0xe5, 0xc9, 0x7a, 0x9d, 0xc8, 0x89, 0xf9, 0x2c, 0xb2, 0xc8, 0x83, 0x19, 0x64, 0xa2, 0xb1, -0x93, 0x58, 0x87, 0x11, 0xc3, 0x00, 0xab, 0x48, 0x62, 0x42, 0xac, 0x45, 0x3a, 0xaf, 0xb3, 0xd1, -0x13, 0xe7, 0x40, 0x14, 0xc9, 0xd4, 0x7c, 0x33, 0xc2, 0x86, 0x18, 0xd7, 0x4b, 0x5a, 0x3b, 0x08, -0x4f, 0x52, 0xa6, 0x0d, 0x49, 0x4e, 0xcd, 0x75, 0xa5, 0xf3, 0x19, 0xa8, 0x2e, 0xc6, 0x0c, 0x11, -0x25, 0xe6, 0x3a, 0x85, 0x08, 0x96, 0x45, 0xff, 0x49, 0xd2, 0xa8, 0xce, 0x24, 0x1b, 0xd2, 0x30, -0x01, 0x5e, 0x58, 0x8a, 0xe1, 0x3c, 0x41, 0xc7, 0x88, 0x04, 0x8d, 0x48, 0xc7, 0xa4, 0x42, 0x22, -0x21, 0xd0, 0x63, 0xbf, 0xd1, 0x03, 0x96, 0x75, 0x5e, 0x07, 0xc6, 0x24, 0x67, 0xc1, 0x66, 0x8c, -0x21, 0xa4, 0xdc, 0xfd, 0x32, 0x83, 0xc7, 0x88, 0xfb, 0x14, 0x2e, 0xd3, 0x48, 0x86, 0x3b, 0x57, -0x4f, 0xd5, 0x30, 0x8d, 0x8f, 0xea, 0xac, 0x46, 0x7a, 0xc6, 0xa6, 0x31, 0x2d, 0x8f, 0x49, 0x16, -0x8d, 0x36, 0x08, 0x8f, 0x03, 0xf0, 0x30, 0x18, 0xa9, 0x0e, 0xac, 0xfa, 0x3c, 0x22, 0xe5, 0x32, -0x59, 0x67, 0x34, 0xd0, 0x9f, 0xc9, 0x6c, 0x34, 0x99, 0x0c, 0x26, 0xa3, 0x81, 0x31, 0x97, 0xa4, -0x9e, 0x42, 0x68, 0xb1, 0xb3, 0x38, 0x29, 0xe6, 0xfb, 0x1c, 0xca, 0x25, 0x8d, 0x7c, 0x75, 0x3a, -0xae, 0x94, 0xef, 0xf8, 0xdf, 0x90, 0x67, 0x30, 0x62, 0x56, 0x2e, 0x42, 0x67, 0x30, 0x20, 0xc2, -0xcf, 0x83, 0x89, 0x29, 0x06, 0x32, 0x15, 0x12, 0x2d, 0xeb, 0xc7, 0x80, 0x32, 0x98, 0xc6, 0x2c, -0x52, 0xbe, 0x65, 0xcc, 0x6a, 0xb2, 0x58, 0xad, 0xf9, 0x16, 0x6b, 0xbe, 0x35, 0x69, 0xd1, 0x99, -0x0c, 0x06, 0x29, 0x09, 0x36, 0xee, 0x05, 0x9d, 0x04, 0xda, 0x38, 0x19, 0x80, 0xf3, 0x18, 0x86, -0xaf, 0xd8, 0x72, 0x02, 0x8b, 0xf1, 0x88, 0x91, 0x3a, 0x43, 0xd2, 0xf2, 0x85, 0x15, 0x2c, 0xe7, -0xb1, 0x0c, 0xfc, 0x33, 0x1a, 0xb0, 0x53, 0xb1, 0x9f, 0x10, 0x17, 0xfa, 0x24, 0x23, 0xd4, 0x9a, -0x19, 0xc1, 0xf8, 0x67, 0x1a, 0xc3, 0xa4, 0x67, 0xf0, 0xfa, 0xdc, 0xaa, 0x33, 0x90, 0x3d, 0x8a, -0xb0, 0xeb, 0xb0, 0x65, 0x63, 0x12, 0x53, 0x77, 0x12, 0x2e, 0xa1, 0x07, 0x6e, 0x0f, 0x75, 0x2b, -0xd6, 0x87, 0x7d, 0x84, 0xc9, 0xcf, 0xe1, 0xf5, 0x17, 0xab, 0x9c, 0x0f, 0x58, 0x38, 0xb5, 0x40, -0x07, 0xa2, 0xb7, 0xf2, 0x44, 0x5f, 0xd0, 0x24, 0x46, 0x52, 0xca, 0x37, 0x5a, 0xad, 0x16, 0xfa, -0x4f, 0x3f, 0x63, 0x56, 0xa3, 0x78, 0x46, 0xc8, 0x8c, 0xa6, 0x7c, 0x93, 0x09, 0xf9, 0x4a, 0x52, -0x97, 0x97, 0x1e, 0x0c, 0x20, 0x0d, 0xe2, 0x48, 0xa2, 0xa6, 0xd0, 0xc0, 0xd7, 0x53, 0x77, 0x60, -0x55, 0x26, 0x4c, 0x0c, 0xf9, 0x63, 0xdc, 0x1c, 0x3d, 0x95, 0x83, 0x77, 0xab, 0x89, 0x58, 0x12, -0xf0, 0x30, 0x97, 0x64, 0x42, 0xa1, 0x99, 0xf2, 0x01, 0xf5, 0xf4, 0x28, 0xe8, 0xf2, 0xb1, 0x92, -0x2f, 0xac, 0x88, 0xc4, 0xb3, 0x98, 0x2b, 0x89, 0xb9, 0x93, 0x56, 0x73, 0xbe, 0xc1, 0x48, 0xdd, -0x4f, 0x0c, 0x00, 0xa9, 0x46, 0x5a, 0x0b, 0xcc, 0x81, 0x08, 0x09, 0x49, 0x1d, 0x56, 0xaa, 0x43, -0x78, 0xac, 0xf4, 0xc7, 0x00, 0x5a, 0x09, 0xff, 0x60, 0xf9, 0xd4, 0x6a, 0x33, 0x51, 0x07, 0xf3, -0xd0, 0x92, 0xd3, 0xfc, 0x15, 0x09, 0x86, 0xc8, 0x8a, 0x01, 0x00, 0xe3, 0x98, 0x55, 0x47, 0x59, -0x46, 0x31, 0xf9, 0x18, 0x22, 0xc3, 0x8a, 0xf5, 0x89, 0x32, 0x10, 0x88, 0x7c, 0x93, 0x8e, 0x48, -0xc5, 0xcc, 0xac, 0x97, 0xc6, 0xe3, 0x1d, 0xcc, 0x0a, 0xc7, 0xa4, 0x3c, 0x8d, 0x38, 0xb0, 0x79, -0x63, 0xd8, 0xbd, 0xb2, 0x95, 0xb2, 0x81, 0x76, 0x21, 0xdc, 0xe2, 0x01, 0x0b, 0x36, 0xe9, 0x46, -0x91, 0x54, 0x90, 0x3a, 0xb0, 0xeb, 0x64, 0x12, 0x05, 0xf9, 0xdc, 0x11, 0xa2, 0xe3, 0x10, 0xef, -0x26, 0x03, 0xd6, 0x98, 0x6f, 0xa1, 0x1c, 0x06, 0x0b, 0xa2, 0x26, 0x1f, 0x9b, 0x9a, 0xb4, 0x98, -0x28, 0xcc, 0xc2, 0xb0, 0xe8, 0x2c, 0x06, 0x62, 0x84, 0x26, 0x1a, 0xc2, 0x44, 0x32, 0x1b, 0xa0, -0x50, 0xa2, 0xce, 0x05, 0x99, 0x79, 0x03, 0x92, 0x1b, 0xe6, 0x28, 0xa4, 0xe4, 0x66, 0xc6, 0x2d, -0x96, 0x85, 0xff, 0x93, 0x56, 0x1b, 0x86, 0x58, 0x19, 0x1d, 0xf9, 0xf9, 0xd4, 0x4d, 0xa3, 0x60, -0x24, 0x7a, 0x67, 0x8a, 0xf8, 0x29, 0x31, 0x30, 0xbd, 0xcc, 0x1c, 0xf0, 0x1c, 0x10, 0x76, 0xbf, -0x4d, 0x2d, 0xb6, 0x10, 0xb1, 0xd2, 0x03, 0x16, 0x40, 0xbf, 0x56, 0x13, 0x15, 0x66, 0xe5, 0xc2, -0x18, 0x87, 0x12, 0x33, 0x4e, 0xbc, 0xdf, 0x05, 0xa5, 0x92, 0x26, 0x46, 0x84, 0x80, 0x32, 0x09, -0x84, 0x61, 0x7a, 0x53, 0x32, 0x5f, 0xb2, 0xe6, 0x8f, 0x5a, 0x27, 0x13, 0x95, 0x08, 0xba, 0xa1, -0x5e, 0x31, 0xb1, 0xe8, 0xa3, 0x46, 0xeb, 0xb9, 0x24, 0xee, 0xf3, 0x7c, 0xd1, 0xe7, 0x12, 0xb3, -0x84, 0x24, 0xcc, 0x44, 0x6a, 0xc1, 0x4e, 0xb4, 0x08, 0x28, 0xf2, 0xb9, 0x00, 0x06, 0x27, 0x1f, -0xdb, 0x66, 0x36, 0x11, 0x7c, 0xf4, 0x6a, 0x36, 0x92, 0x64, 0x43, 0x42, 0xe6, 0x71, 0x7b, 0x37, -0xb2, 0x23, 0x1a, 0xc2, 0x40, 0x5c, 0x3d, 0x09, 0x92, 0x19, 0x01, 0x28, 0xa5, 0x2c, 0x96, 0x7c, -0xb3, 0x49, 0xa0, 0x84, 0x31, 0x42, 0x85, 0x12, 0x72, 0x8b, 0xb1, 0x08, 0xa3, 0x80, 0x84, 0xe9, -0x8f, 0x18, 0x1b, 0x70, 0xcf, 0x98, 0x05, 0xb3, 0x21, 0xde, 0x04, 0xd7, 0x60, 0x0a, 0x86, 0x25, -0x5f, 0xe0, 0x93, 0xea, 0x66, 0x6c, 0x98, 0x0c, 0x58, 0x2a, 0x85, 0x98, 0xe8, 0x15, 0x6f, 0x24, -0x43, 0x25, 0x66, 0xa1, 0x98, 0xf9, 0x5e, 0x98, 0x4a, 0xc3, 0x40, 0xcf, 0xdc, 0x12, 0x5b, 0xa3, -0xe3, 0x34, 0xf9, 0x9c, 0xd4, 0x6c, 0x46, 0x06, 0x22, 0xf2, 0x98, 0xf2, 0xc7, 0xb8, 0x8d, 0x5c, -0xb4, 0x81, 0xa7, 0x90, 0x24, 0x0b, 0x08, 0x76, 0x4e, 0x23, 0x87, 0xa0, 0xb1, 0x10, 0x91, 0xe8, -0x85, 0x00, 0x3d, 0x07, 0xdf, 0x92, 0x00, 0xd3, 0x9a, 0x4c, 0xdc, 0x0e, 0xba, 0x51, 0x21, 0xf9, -0x06, 0x02, 0x26, 0x89, 0x24, 0x64, 0xa2, 0xb1, 0x98, 0xcc, 0x2f, 0x30, 0x4a, 0x4c, 0x5d, 0x20, -0xba, 0xf6, 0x3e, 0xb0, 0x0b, 0xd4, 0x52, 0x37, 0x71, 0x73, 0x4c, 0xf9, 0x49, 0xd3, 0x14, 0xce, -0x4c, 0xd0, 0x20, 0x24, 0xf8, 0x68, 0x11, 0x37, 0x2b, 0xa1, 0xcc, 0xca, 0xa3, 0x85, 0xd8, 0x01, -0x6b, 0x0f, 0xb2, 0x2e, 0x29, 0x69, 0x04, 0xa3, 0xa7, 0xe6, 0xa0, 0x64, 0xa1, 0x66, 0x21, 0xb4, -0x9c, 0x48, 0x32, 0x60, 0x9d, 0x9c, 0x99, 0x01, 0xc8, 0xa7, 0xd2, 0xbf, 0xa3, 0x33, 0x99, 0xf9, -0x0f, 0xf9, 0x16, 0xd6, 0x81, 0x90, 0x1a, 0x58, 0xe3, 0xd0, 0xb3, 0x7c, 0x93, 0xee, 0x07, 0x27, -0xf5, 0x96, 0x5e, 0x48, 0x07, 0x64, 0x5d, 0x84, 0x17, 0xea, 0x5b, 0xb3, 0xc9, 0x24, 0x50, 0x64, -0xe6, 0xc2, 0x92, 0x02, 0x24, 0x2e, 0xdb, 0xac, 0x93, 0xc6, 0x58, 0x9c, 0xe2, 0x30, 0x30, 0x0a, -0xae, 0x87, 0x20, 0x3d, 0x84, 0xe3, 0x40, 0xd6, 0x34, 0x17, 0x6d, 0x28, 0xa3, 0xc2, 0x04, 0x3a, -0x22, 0x77, 0x73, 0xfe, 0x98, 0xe9, 0x4a, 0x33, 0x41, 0x60, 0x32, 0x1b, 0x90, 0x6f, 0x13, 0xde, -0xb1, 0x02, 0x06, 0x8c, 0xca, 0x07, 0xa1, 0x27, 0xe9, 0x91, 0x91, 0x3f, 0x00, 0xd3, 0x05, 0x27, -0xd5, 0xb1, 0x9e, 0x82, 0xa8, 0x34, 0x33, 0x2c, 0x04, 0x05, 0xe5, 0x36, 0xe9, 0x18, 0x3c, 0x2c, -0x92, 0x22, 0x2c, 0x49, 0x53, 0x49, 0xbe, 0x15, 0xc4, 0xe0, 0x65, 0xfd, 0x8a, 0x55, 0x2e, 0x1a, -0x13, 0x03, 0xf0, 0x7f, 0x91, 0x4c, 0xa0, 0x4e, 0x23, 0x89, 0xac, 0x07, 0x81, 0x48, 0x27, 0x11, -0x12, 0x95, 0x66, 0x26, 0x7a, 0x64, 0x92, 0x34, 0x18, 0x74, 0x04, 0x15, 0xa2, 0xdd, 0xcc, 0xf0, -0x60, 0x75, 0x49, 0xb3, 0x55, 0x16, 0x8a, 0x19, 0x11, 0x13, 0x48, 0xff, 0x17, 0x5c, 0xcd, 0x8a, -0x1c, 0x15, 0x06, 0x60, 0x14, 0xb0, 0x50, 0x0b, 0x10, 0x06, 0x84, 0x04, 0x73, 0x23, 0x5b, 0xa5, -0x77, 0x8b, 0x16, 0x91, 0x6f, 0x36, 0xea, 0xce, 0x4b, 0x05, 0x20, 0x94, 0x48, 0x3d, 0xf1, 0x72, -0x02, 0xe9, 0x9f, 0x20, 0x5f, 0x87, 0xc8, 0x06, 0xc6, 0x11, 0x21, 0xe8, 0x2a, 0x01, 0x3b, 0x18, -0xb8, 0x5a, 0xaa, 0x9c, 0x30, 0x93, 0xa7, 0x23, 0xf9, 0x24, 0x40, 0x11, 0x78, 0x42, 0xaa, 0xb2, -0x98, 0x0d, 0x92, 0x18, 0xdf, 0xd4, 0x9e, 0x87, 0xe1, 0x3b, 0x4c, 0xd9, 0x48, 0xe8, 0x7a, 0x52, -0x49, 0xd2, 0x90, 0x9b, 0xd3, 0x8d, 0x18, 0x35, 0x14, 0x52, 0xfb, 0xb8, 0x3b, 0x2d, 0x84, 0x64, -0x03, 0xb2, 0x1c, 0x3d, 0x21, 0x08, 0xab, 0x35, 0x83, 0xa6, 0x0e, 0x60, 0xc7, 0x3d, 0x48, 0xf2, -0x45, 0x96, 0xd2, 0x10, 0x11, 0x69, 0x9e, 0x97, 0x14, 0xd9, 0x40, 0x18, 0x4e, 0x57, 0x6f, 0x40, -0x95, 0xc7, 0x90, 0x27, 0x6a, 0x30, 0x14, 0x20, 0x55, 0x14, 0x18, 0x10, 0x45, 0x26, 0x14, 0x83, -0x3a, 0x59, 0xeb, 0xf5, 0x87, 0xa0, 0x4a, 0x68, 0x24, 0xcc, 0x04, 0x0d, 0x0c, 0x44, 0x81, 0x89, -0xe8, 0x47, 0x94, 0x81, 0xf9, 0x0d, 0xb2, 0x21, 0x83, 0x62, 0xc4, 0xbe, 0x91, 0x29, 0x88, 0xea, -0x1b, 0x25, 0x76, 0x2a, 0x34, 0x4e, 0xc6, 0x11, 0xcb, 0x63, 0xee, 0x4d, 0x40, 0x58, 0x64, 0x66, -0xcc, 0xf9, 0xd8, 0x44, 0x62, 0xaa, 0x0c, 0x4f, 0x52, 0xa7, 0x60, 0xaf, 0xb1, 0x06, 0x80, 0x6f, -0x05, 0x84, 0x7b, 0x1b, 0xfd, 0xd0, 0xa6, 0x43, 0xd0, 0x89, 0xd1, 0x8e, 0x42, 0x99, 0xc4, 0x13, -0xd0, 0xe8, 0xc7, 0xe6, 0xe5, 0x25, 0xcd, 0x05, 0x44, 0x3f, 0x04, 0x55, 0x01, 0x37, 0x62, 0xcc, -0x60, 0xd7, 0xe9, 0x32, 0xf0, 0x21, 0x29, 0x18, 0x74, 0x08, 0x09, 0x0f, 0x27, 0x9d, 0x90, 0xb5, -0xb2, 0x2c, 0x94, 0xb9, 0x07, 0x71, 0xf4, 0x4b, 0x7a, 0x59, 0xa8, 0x4a, 0xc2, 0x46, 0xc0, 0x24, -0xe7, 0xa5, 0x4b, 0x19, 0x27, 0x05, 0xd4, 0x3a, 0xd6, 0x4c, 0x64, 0x1c, 0x6c, 0x86, 0x24, 0xaa, -0x07, 0x06, 0x73, 0x1e, 0x22, 0x3d, 0x69, 0x00, 0xbc, 0x92, 0xa4, 0x2a, 0x10, 0x33, 0x92, 0x1e, -0x45, 0x43, 0x85, 0xa5, 0x3d, 0xb3, 0x5e, 0x03, 0x8d, 0x05, 0x1b, 0x75, 0x73, 0xd2, 0xa0, 0x20, -0x9e, 0x0c, 0x88, 0xac, 0x3c, 0x52, 0x2d, 0xf5, 0x06, 0x66, 0x4d, 0x54, 0xae, 0x8e, 0x89, 0x07, -0xd3, 0xa3, 0x90, 0xcd, 0x07, 0x7e, 0x13, 0xd7, 0x00, 0xdc, 0x0f, 0x5e, 0x46, 0x12, 0xc9, 0x74, -0x26, 0x30, 0x4a, 0xa6, 0x17, 0xe3, 0x52, 0x12, 0xa8, 0xc1, 0xff, 0xa4, 0x2c, 0xc9, 0x24, 0xf3, -0xb1, 0x1e, 0x03, 0x56, 0x74, 0x89, 0xc9, 0x9c, 0x67, 0xb0, 0x20, 0xd8, 0xd4, 0x58, 0x26, 0x67, -0xb6, 0x5f, 0xfe, 0x1b, 0x6a, 0x3d, 0x20, 0x0a, 0x02, 0x4e, 0x6d, 0x4a, 0x1a, 0xdc, 0x54, 0x84, -0x85, 0xc1, 0xc2, 0xd4, 0x7a, 0xd6, 0xdc, 0x75, 0x79, 0x04, 0xa7, 0x81, 0x01, 0xc3, 0xca, 0x50, -0x7f, 0xe4, 0x81, 0xa7, 0x4b, 0x32, 0x39, 0x25, 0x49, 0xfc, 0xcb, 0x04, 0x9a, 0x40, 0xdd, 0xa8, -0x64, 0x65, 0x70, 0xf4, 0x08, 0x16, 0x69, 0xf0, 0x49, 0xe9, 0x4a, 0x10, 0x60, 0xe5, 0xb1, 0xf6, -0x2f, 0x01, 0x3d, 0x23, 0x40, 0x06, 0x9b, 0xd9, 0x4c, 0x95, 0x20, 0xda, 0x50, 0x31, 0x4c, 0x02, -0x6b, 0xf7, 0x49, 0xe9, 0x31, 0x94, 0x40, 0x12, 0xab, 0x9f, 0x84, 0x3e, 0x99, 0x46, 0x29, 0xa6, -0xa6, 0xf4, 0xf8, 0x1f, 0x1b, 0x41, 0xad, 0x02, 0x46, 0x3b, 0x75, 0x63, 0x81, 0x19, 0x5b, 0x8b, -0x95, 0xa1, 0x7e, 0x70, 0x29, 0x99, 0x47, 0x3a, 0x06, 0x90, 0x47, 0x31, 0x08, 0x31, 0xbb, 0x19, -0xbe, 0xc5, 0x26, 0x92, 0x48, 0x86, 0x60, 0xeb, 0x69, 0xfc, 0xe0, 0x1f, 0xfe, 0x62, 0x13, 0x2e, -0xc3, 0x86, 0x17, 0x18, 0x51, 0x8f, 0xa5, 0x38, 0xa3, 0xd9, 0x90, 0x87, 0x55, 0xe5, 0x61, 0x7f, -0x9a, 0x2f, 0x35, 0x20, 0x54, 0x79, 0xd8, 0x3b, 0x84, 0x33, 0xe2, 0x2f, 0x34, 0x86, 0xff, 0x3b, -0x50, 0x97, 0x08, 0x29, 0xaa, 0x23, 0x3e, 0x99, 0x34, 0x94, 0xe4, 0x71, 0x0b, 0x30, 0x0f, 0x5f, -0x88, 0x23, 0x3d, 0x51, 0x85, 0x31, 0x69, 0xb8, 0x94, 0x15, 0x03, 0xac, 0x18, 0x03, 0xf4, 0xac, -0x93, 0xa2, 0x2c, 0x1a, 0x43, 0xc3, 0x43, 0x13, 0xbd, 0xf7, 0xc1, 0xd5, 0x44, 0xb3, 0xac, 0xd5, -0xb0, 0x4a, 0xae, 0xa3, 0x2a, 0x74, 0x94, 0x1d, 0x93, 0x63, 0x66, 0x64, 0x51, 0x46, 0x3d, 0x2b, -0x84, 0x40, 0x65, 0x13, 0x26, 0xf2, 0x90, 0xbc, 0xf2, 0xc6, 0x90, 0x90, 0xa9, 0x6b, 0x0d, 0x64, -0xb6, 0xca, 0x3a, 0xe2, 0xa0, 0x8f, 0x93, 0xa8, 0x22, 0xc6, 0xc7, 0x8d, 0x4f, 0x12, 0xb2, 0x28, -0xc7, 0x18, 0x8f, 0xdb, 0x3c, 0x02, 0xd0, 0xc0, 0xca, 0xd6, 0x98, 0xce, 0x6e, 0xc9, 0xe3, 0xe6, -0x4b, 0xd4, 0x3b, 0x48, 0x5d, 0xd4, 0x43, 0xa0, 0x47, 0xdd, 0x46, 0x53, 0x87, 0x65, 0x42, 0x99, -0x1d, 0x83, 0x10, 0x65, 0x24, 0xc2, 0xb4, 0xa4, 0x49, 0x5d, 0xbe, 0xac, 0x65, 0xd3, 0xb3, 0xfa, -0x9f, 0x94, 0xac, 0x48, 0xce, 0x84, 0x30, 0xec, 0x11, 0xec, 0xa0, 0xa4, 0x41, 0xc6, 0xdf, 0xf3, -0x06, 0xe4, 0x75, 0x20, 0xac, 0x28, 0xcc, 0xbc, 0x05, 0x0a, 0x24, 0x8d, 0x57, 0x30, 0x81, 0xe6, -0x7d, 0x61, 0x90, 0x91, 0x92, 0xc6, 0x0c, 0x40, 0x97, 0x2e, 0x09, 0x53, 0x99, 0x97, 0x31, 0x66, -0xd8, 0x28, 0xc1, 0x6e, 0xd5, 0x33, 0xda, 0x24, 0x0a, 0x20, 0x42, 0x07, 0x61, 0xde, 0xde, 0x0b, -0xcc, 0x01, 0x89, 0x42, 0xb0, 0xfa, 0x31, 0x5d, 0xb1, 0x9e, 0x6d, 0x0f, 0x49, 0x58, 0x23, 0x44, -0x56, 0xc4, 0xa9, 0x89, 0xe5, 0xd3, 0x40, 0xfc, 0x8b, 0xc1, 0x6a, 0xe6, 0x56, 0xeb, 0x44, 0xd7, -0x8d, 0x21, 0x24, 0x46, 0x81, 0x20, 0xac, 0x34, 0x5f, 0x62, 0xec, 0x51, 0x8f, 0x19, 0xcc, 0x5f, -0x18, 0x8a, 0x71, 0x28, 0xe7, 0xb1, 0x4e, 0xa4, 0x97, 0x99, 0x48, 0x08, 0x33, 0xd8, 0xe0, 0x62, -0x36, 0xe5, 0xb1, 0x1a, 0xea, 0x40, 0xd2, 0x97, 0xf4, 0xa4, 0x29, 0x0d, 0xc0, 0x26, 0x30, 0x08, -0x21, 0x91, 0x94, 0xce, 0x09, 0x83, 0xf6, 0x73, 0x9d, 0x59, 0xcf, 0xaa, 0x29, 0x42, 0x42, 0xe3, -0xff, 0x3c, 0x77, 0x12, 0x60, 0x67, 0x15, 0x92, 0xa5, 0xc3, 0x03, 0x4c, 0x53, 0xd5, 0xb6, 0x12, -0x83, 0x62, 0xa6, 0xc7, 0xba, 0xb7, 0x7e, 0x54, 0x27, 0x23, 0x24, 0x9f, 0x18, 0x92, 0xdc, 0x01, -0xac, 0x26, 0x8c, 0xa1, 0x39, 0xa7, 0x19, 0x7e, 0xc2, 0x88, 0xa3, 0xa1, 0xa0, 0x67, 0x51, 0xb2, -0x11, 0xd9, 0xb6, 0x66, 0x6c, 0x4b, 0xf2, 0x47, 0xba, 0x42, 0xc2, 0x5c, 0xda, 0xac, 0xa7, 0x2e, -0x3f, 0x87, 0x95, 0x8f, 0x1a, 0xf4, 0x4c, 0xdd, 0x64, 0x12, 0x80, 0xd6, 0x7f, 0xd2, 0x93, 0x64, -0xe1, 0x08, 0x0b, 0x92, 0x06, 0x30, 0x29, 0xf8, 0x64, 0x50, 0x21, 0x91, 0x20, 0xa0, 0x36, 0x33, -0x3d, 0x32, 0x3e, 0x59, 0x46, 0x9d, 0x45, 0xbb, 0x55, 0xff, 0x99, 0xce, 0xcc, 0xc8, 0xa0, 0x46, -0x51, 0xc5, 0x25, 0x6c, 0xb9, 0x10, 0x45, 0x20, 0x73, 0x21, 0xd1, 0xa0, 0x33, 0xa0, 0x35, 0x48, -0x26, 0x71, 0x81, 0x30, 0x09, 0x99, 0xf6, 0xb0, 0x27, 0xce, 0x11, 0x5a, 0x91, 0x6f, 0x08, 0x9b, -0x5a, 0xaf, 0x49, 0x69, 0x8c, 0x7c, 0x92, 0x14, 0x1a, 0xe2, 0xf8, 0xd8, 0x05, 0x62, 0x26, 0x00, -0x5b, 0x8f, 0x44, 0x3e, 0xc6, 0x63, 0x08, 0x65, 0x8d, 0x4e, 0x88, 0x27, 0xd6, 0x79, 0x74, 0x34, -0x26, 0xcf, 0xeb, 0x2e, 0x11, 0x16, 0xa7, 0x81, 0xad, 0x4c, 0xd0, 0x4c, 0xd9, 0x7b, 0xc8, 0xe0, -0x91, 0x4d, 0x8c, 0x42, 0xe4, 0x9c, 0x68, 0xc0, 0x1a, 0x92, 0x68, 0x5f, 0x22, 0x40, 0x98, 0x12, -0x49, 0x23, 0x33, 0x91, 0xa1, 0x23, 0x40, 0x65, 0xa6, 0x29, 0xc3, 0x27, 0x84, 0x0e, 0x49, 0x13, -0x7a, 0xcf, 0x32, 0xcb, 0xd4, 0x11, 0xcf, 0xc7, 0x32, 0xce, 0xb0, 0xe9, 0x0d, 0x6c, 0x3c, 0x27, -0x11, 0xa9, 0x34, 0x29, 0xc2, 0x9a, 0x11, 0x35, 0x12, 0xad, 0x40, 0xdd, 0xa5, 0x06, 0xf1, 0xc4, -0x73, 0x00, 0xdc, 0x91, 0x7a, 0xd2, 0x0f, 0xef, 0x26, 0xdd, 0x99, 0x87, 0x20, 0x71, 0x51, 0xe3, -0x18, 0x76, 0xb5, 0x01, 0xfb, 0xbf, 0x8c, 0x92, 0x19, 0xa9, 0x45, 0xda, 0x1c, 0x0c, 0x02, 0x9d, -0xcd, 0x8e, 0xdd, 0xc2, 0x0f, 0xfc, 0x3f, 0xa9, 0xa3, 0xf9, 0x25, 0x9a, 0x0b, 0xc0, 0xc6, 0x3d, -0x0b, 0xe7, 0xd8, 0x24, 0x41, 0x63, 0xdc, 0x60, 0x38, 0x27, 0x12, 0x88, 0x1b, 0xd1, 0x35, 0xab, -0x22, 0x63, 0xd4, 0x22, 0x03, 0x27, 0x18, 0xd3, 0xe5, 0x1b, 0xf4, 0x4c, 0xf6, 0xac, 0xa2, 0x0c, -0xc0, 0x5d, 0x38, 0xd6, 0x34, 0xe5, 0x05, 0xa8, 0x3e, 0x3d, 0x76, 0xac, 0x91, 0xb0, 0xca, 0xfd, -0x64, 0xd0, 0xf1, 0xf8, 0xb1, 0x10, 0x37, 0xd2, 0xa7, 0x2b, 0xd7, 0x6b, 0xed, 0xb3, 0x19, 0x38, -0x4c, 0xaf, 0xb1, 0x3a, 0x64, 0x72, 0xdb, 0xd8, 0xbc, 0x22, 0x9c, 0x13, 0x6b, 0xa2, 0xa4, 0x32, -0xf6, 0x29, 0xde, 0xb1, 0x66, 0x34, 0xc5, 0x8c, 0x24, 0xb0, 0xa8, 0xd7, 0x93, 0x72, 0x01, 0xab, -0x32, 0x54, 0x0f, 0x37, 0x91, 0x86, 0xf5, 0x18, 0x8a, 0x34, 0x06, 0x8a, 0x5a, 0x3f, 0x00, 0x77, -0x12, 0x13, 0xa0, 0x91, 0x47, 0x48, 0xd2, 0x61, 0x31, 0x94, 0x66, 0xd4, 0x70, 0x39, 0xa5, 0x17, -0xf0, 0xd3, 0x50, 0xe0, 0xf2, 0x99, 0x0a, 0x90, 0x69, 0x51, 0x94, 0xd1, 0xa8, 0x21, 0x0d, 0x05, -0x8b, 0x41, 0xa8, 0x2e, 0xdb, 0x68, 0xe4, 0xc9, 0xcc, 0x04, 0x6c, 0x4c, 0x22, 0x88, 0x81, 0x0c, -0x26, 0xed, 0x06, 0x16, 0xa3, 0xc8, 0xb5, 0xf5, 0xdc, 0x1f, 0x32, 0xcf, 0xdd, 0x51, 0x89, 0x46, -0xea, 0x15, 0x2c, 0x13, 0x63, 0xf0, 0xa2, 0x28, 0x52, 0xa2, 0x09, 0x30, 0xa3, 0x40, 0x18, 0x10, -0x7e, 0x29, 0xe1, 0x28, 0x31, 0x25, 0x03, 0xe8, 0x91, 0x81, 0xea, 0x24, 0x31, 0xab, 0x93, 0x4f, -0x93, 0x29, 0x58, 0xac, 0xde, 0xc8, 0xa0, 0x21, 0x81, 0xa7, 0xfb, 0x99, 0xe8, 0xc7, 0x48, 0x34, -0x88, 0x20, 0x6d, 0x67, 0x45, 0x98, 0xa7, 0xbc, 0x10, 0x19, 0x04, 0x02, 0x92, 0x03, 0x01, 0x88, -0xe9, 0x2e, 0xc5, 0xac, 0x3a, 0x8d, 0xc2, 0x25, 0x6d, 0xec, 0xe2, 0xe8, 0xd4, 0x9b, 0x29, 0x00, -0x8b, 0x31, 0x9e, 0xd7, 0x8a, 0xd2, 0xe9, 0xc5, 0xdc, 0xc9, 0x9d, 0x6c, 0x93, 0xb1, 0x80, 0x27, -0xa1, 0x84, 0xe8, 0x22, 0xda, 0x32, 0x1a, 0xf0, 0x37, 0x9f, 0x09, 0x96, 0x27, 0x21, 0x68, 0xa4, -0x51, 0x04, 0x97, 0x4b, 0xa0, 0x5b, 0x75, 0x24, 0x11, 0xc8, 0xa6, 0x24, 0x46, 0xfd, 0x0b, 0xb0, -0xf2, 0x70, 0x91, 0x69, 0x08, 0x22, 0x3d, 0x8c, 0x22, 0x38, 0x7a, 0xd1, 0x02, 0xbd, 0x68, 0x66, -0xa1, 0x51, 0x0c, 0x2a, 0xc2, 0xbe, 0x44, 0xb3, 0x33, 0x67, 0x0d, 0x05, 0xd8, 0x48, 0x23, 0x59, -0xb5, 0x92, 0xc6, 0x76, 0xef, 0xc0, 0x28, 0x69, 0x8c, 0x65, 0x90, 0x44, 0xa0, 0xd2, 0x75, 0xce, -0x60, 0xa7, 0xb9, 0x10, 0x59, 0x27, 0xd4, 0x77, 0x46, 0xdc, 0x67, 0x04, 0x1f, 0x96, 0x6b, 0xe6, -0x4e, 0xa3, 0xcc, 0x49, 0xc4, 0xdd, 0x0e, 0xc1, 0xfe, 0x81, 0x45, 0x8f, 0xd6, 0x5a, 0x24, 0x4b, -0xd2, 0x95, 0x08, 0x21, 0x58, 0x9a, 0x95, 0x26, 0x85, 0x74, 0x34, 0xcd, 0x43, 0xf2, 0x06, 0xb5, -0x12, 0x3d, 0xb5, 0xf6, 0x73, 0x43, 0x9e, 0x9e, 0x2d, 0x14, 0x21, 0xc2, 0xd7, 0x43, 0x89, 0x24, -0xda, 0xc5, 0xb3, 0x71, 0x79, 0x06, 0x31, 0x97, 0x64, 0x36, 0x63, 0xeb, 0x6d, 0x42, 0x80, 0xea, -0x49, 0x01, 0x44, 0x4e, 0xca, 0xc8, 0xc2, 0xe6, 0x19, 0xcf, 0x18, 0x2c, 0x3a, 0xde, 0x01, 0x42, -0x75, 0x23, 0x20, 0xf9, 0x3a, 0x59, 0x88, 0x12, 0xec, 0x1c, 0x33, 0xf1, 0xe6, 0xf3, 0x04, 0x82, -0x19, 0xdb, 0x4c, 0xb8, 0xb7, 0xeb, 0x85, 0xc0, 0x32, 0x0a, 0xc1, 0x80, 0x49, 0xce, 0x63, 0x7e, -0xd6, 0x1a, 0xd8, 0x6c, 0x1a, 0x80, 0xb5, 0xdc, 0x26, 0xc9, 0x44, 0x7d, 0x82, 0xd4, 0x80, 0x45, -0x14, 0x19, 0x45, 0x52, 0x9a, 0xec, 0xd1, 0xb1, 0x7a, 0xa7, 0xe7, 0xde, 0x1c, 0x35, 0x30, 0x74, -0x06, 0xc6, 0xd5, 0x59, 0x43, 0x1e, 0x09, 0x3e, 0x31, 0xd1, 0xf4, 0x1c, 0x4d, 0xda, 0x09, 0x63, -0x12, 0x47, 0x39, 0x77, 0xde, 0xb5, 0x94, 0x10, 0xeb, 0xe4, 0x9b, 0x21, 0x8f, 0x8a, 0xd4, 0x8b, -0x09, 0x5e, 0x3d, 0x4f, 0x17, 0x12, 0x67, 0x36, 0x92, 0xe8, 0xa7, 0x9f, 0x3c, 0xc1, 0x66, 0xb5, -0x19, 0xdc, 0x41, 0xb8, 0x54, 0x90, 0x12, 0xb5, 0x8b, 0xe8, 0x5e, 0x68, 0xa0, 0x49, 0x43, 0x31, -0xd2, 0xb8, 0x98, 0x64, 0x20, 0x6a, 0x20, 0x6d, 0xd5, 0xc0, 0x0d, 0x92, 0xcc, 0x44, 0x69, 0x02, -0xe9, 0x12, 0x73, 0x62, 0xbd, 0x80, 0xca, 0xac, 0x17, 0x8c, 0x11, 0x90, 0xa2, 0xa8, 0xed, 0x54, -0x90, 0x11, 0x5b, 0x58, 0x88, 0x39, 0x29, 0x2b, 0x76, 0x8f, 0x18, 0xcb, 0x38, 0x4c, 0x10, 0x7d, -0x54, 0x87, 0x9d, 0xa2, 0x4c, 0x3a, 0xb6, 0xd7, 0x24, 0x8d, 0x2d, 0xd3, 0xf7, 0x3d, 0x62, 0xa6, -0xfb, 0x3b, 0x62, 0x7a, 0x0b, 0xad, 0x2c, 0x56, 0x0d, 0x08, 0xa7, 0xdc, 0x0f, 0xa4, 0x05, 0x21, -0x54, 0x48, 0x7a, 0x14, 0x96, 0x87, 0x15, 0x31, 0x0e, 0xb1, 0xb6, 0x24, 0x57, 0xc9, 0xb3, 0x7a, -0x46, 0x52, 0x3c, 0x10, 0xa2, 0xe7, 0x11, 0x5b, 0x99, 0x39, 0xf2, 0xf3, 0xa8, 0x5d, 0x18, 0x58, -0xb7, 0x1e, 0x25, 0xad, 0xc8, 0xc0, 0x19, 0x30, 0x39, 0x99, 0x2d, 0xc4, 0x59, 0x46, 0x0d, 0x45, -0x18, 0x6a, 0xc2, 0xba, 0x58, 0xe8, 0xc9, 0x62, 0x2a, 0x90, 0x60, 0x4a, 0xc2, 0xa5, 0xda, 0xcc, -0x3a, 0xb7, 0xd0, 0x24, 0x24, 0x3f, 0x8a, 0x66, 0x83, 0x98, 0x1d, 0x27, 0x68, 0x11, 0x4b, 0xac, -0x2b, 0xa3, 0x7e, 0x49, 0x6a, 0x83, 0x89, 0x34, 0x3f, 0x33, 0xd1, 0x17, 0xc1, 0x36, 0xc6, 0x4a, -0x08, 0xf6, 0xfd, 0xff, 0x10, 0x36, 0x0a, 0x69, 0x01, 0x2c, 0x40, 0x05, 0xad, 0x90, 0x4a, 0x66, -0x64, 0xfd, 0x96, 0x8c, 0x8b, 0x02, 0x73, 0x1e, 0xcf, 0xc5, 0x20, 0xed, 0xf1, 0x04, 0x27, 0x82, -0x25, 0xb4, 0x56, 0x1e, 0x14, 0x54, 0x12, 0x52, 0x31, 0x81, 0x75, 0x1e, 0xbe, 0x25, 0xc6, 0x5e, -0x16, 0xac, 0x3c, 0x33, 0xdb, 0x14, 0x8c, 0xe7, 0x3c, 0x26, 0x3c, 0x56, 0xca, 0x71, 0xb8, 0xf1, -0x7c, 0x07, 0x96, 0x93, 0xc7, 0xa0, 0x1b, 0x48, 0xfa, 0x19, 0x05, 0xd6, 0xa5, 0xff, 0x09, 0x93, -0x24, 0x31, 0x7b, 0xc2, 0x1d, 0x81, 0x0d, 0x31, 0xa2, 0x36, 0xc3, 0x6a, 0xb5, 0x31, 0x0f, 0xfb, -0xd0, 0xc6, 0xea, 0x29, 0x15, 0x4f, 0x9a, 0x31, 0x75, 0xce, 0xb7, 0xb0, 0x5c, 0x52, 0x74, 0x09, -0x78, 0x53, 0x9e, 0x10, 0x68, 0xda, 0x2c, 0x92, 0x00, 0x8c, 0x26, 0x01, 0x79, 0xe4, 0xc9, 0x24, -0x21, 0xa8, 0x65, 0x49, 0xc3, 0x24, 0x13, 0x0b, 0x71, 0x89, 0x67, 0xf4, 0x41, 0x97, 0x47, 0xbd, -0x8a, 0xc0, 0x15, 0x50, 0xe9, 0xd8, 0x2b, 0x68, 0x39, 0x14, 0x99, 0x08, 0x63, 0x06, 0x9e, 0x05, -0xd2, 0x2c, 0x79, 0x69, 0x97, 0x36, 0xe9, 0x49, 0xaa, 0x13, 0xcb, 0x53, 0x33, 0x63, 0x9e, 0x08, -0xff, 0xb2, 0x3c, 0xee, 0x2d, 0x83, 0x98, 0x1b, 0xd0, 0x31, 0x9b, 0x62, 0xc3, 0x4b, 0x2b, 0x09, -0x2f, 0x9e, 0xd3, 0x12, 0x04, 0xc0, 0x90, 0x9d, 0x05, 0x93, 0x80, 0x94, 0x24, 0x82, 0x9c, 0xa7, -0x2b, 0x48, 0x1a, 0xbe, 0x43, 0x56, 0xaa, 0x50, 0xce, 0xc5, 0x10, 0xd3, 0x91, 0xa5, 0x62, 0xe4, -0xec, 0x66, 0xb2, 0x67, 0x2e, 0x23, 0xea, 0xcf, 0xa3, 0x2a, 0x40, 0x4c, 0xbe, 0x8a, 0x22, 0x5f, -0xd0, 0xa6, 0x03, 0x31, 0x23, 0xd2, 0x34, 0xe9, 0x28, 0xa8, 0x06, 0x5d, 0x63, 0xd6, 0x00, 0x12, -0xb9, 0xc9, 0xd4, 0xa0, 0x09, 0xe3, 0x4c, 0x37, 0xe9, 0x75, 0x6c, 0x7c, 0xe0, 0x7f, 0x9d, 0x31, -0x3d, 0xe7, 0xc0, 0xfa, 0x32, 0x4d, 0x93, 0xd3, 0xf3, 0x79, 0x94, 0x4a, 0xd8, 0x67, 0x3a, 0x46, -0xbf, 0x8e, 0x75, 0x30, 0xb9, 0x82, 0x94, 0x3f, 0x89, 0x4c, 0xbb, 0x02, 0x23, 0x82, 0x62, 0xe1, -0xfc, 0x16, 0x42, 0x3d, 0x9a, 0xd3, 0x68, 0x9e, 0xb3, 0x7d, 0x27, 0x0b, 0xaa, 0x02, 0x69, 0x18, -0xae, 0x60, 0x0d, 0x88, 0x74, 0x29, 0x31, 0x2b, 0x4b, 0x14, 0x48, 0x36, 0xa2, 0x59, 0x0c, 0x14, -0x93, 0x29, 0xc9, 0xba, 0xf3, 0x77, 0xb4, 0x95, 0x13, 0x36, 0xde, 0x8c, 0x54, 0x60, 0x9e, 0x41, -0xd2, 0x09, 0xeb, 0x5e, 0x27, 0xec, 0xd7, 0x01, 0x38, 0xc3, 0x1a, 0x81, 0xb6, 0xd4, 0x44, 0x52, -0x20, 0x89, 0xb0, 0x19, 0x49, 0x9b, 0xb8, 0x5c, 0x16, 0xcb, 0x33, 0x48, 0x2e, 0x05, 0xdc, 0x5c, -0x32, 0xef, 0x48, 0x61, 0x4e, 0x9a, 0x2f, 0xe3, 0x61, 0x69, 0xd0, 0xd8, 0x0c, 0x88, 0x89, 0x34, -0x90, 0x5e, 0x24, 0x66, 0x81, 0x85, 0x8c, 0xc9, 0xe5, 0xc0, 0xca, 0xa8, 0x4c, 0x9a, 0xbf, 0x81, -0xa7, 0x52, 0x68, 0x46, 0x9f, 0xa9, 0xd7, 0x88, 0xe6, 0x98, 0x51, 0xd2, 0x26, 0xcc, 0x92, 0xb2, -0x5d, 0xe2, 0xd1, 0x6f, 0xd0, 0x56, 0x9d, 0x64, 0x61, 0x76, 0x12, 0x64, 0x1f, 0xd3, 0xb2, 0x82, -0x98, 0x44, 0x12, 0xfa, 0x11, 0x69, 0xc1, 0xd4, 0x8d, 0x49, 0x59, 0x2c, 0x4b, 0x51, 0xc1, 0x79, -0x04, 0x96, 0x99, 0x2c, 0x18, 0x9e, 0x81, 0xa0, 0x91, 0xc1, 0x8b, 0x24, 0x84, 0xaf, 0x31, 0x96, -0x5a, 0xff, 0x0b, 0xb5, 0x94, 0xcc, 0x30, 0xae, 0xe1, 0xe5, 0x38, 0xea, 0xc0, 0x02, 0x8b, 0x30, -0x38, 0x91, 0xee, 0xcd, 0x82, 0x40, 0x80, 0xc5, 0x0b, 0xd5, 0x48, 0xca, 0x57, 0x7a, 0x81, 0x49, -0xc7, 0xd3, 0xaf, 0x04, 0xcf, 0x87, 0x82, 0x15, 0xca, 0x49, 0x9e, 0xa0, 0x4e, 0xca, 0x45, 0x3c, -0x81, 0x43, 0x2e, 0xcd, 0x44, 0x77, 0x60, 0xa9, 0x88, 0x78, 0x1c, 0x50, 0x46, 0x32, 0x88, 0xcf, -0xd3, 0xcc, 0x00, 0x61, 0x87, 0xd5, 0xcc, 0x6d, 0xa4, 0xd1, 0x73, 0x13, 0xc4, 0x3c, 0xdf, 0x18, -0x5c, 0x29, 0xb1, 0xd2, 0x21, 0x2c, 0x10, 0x93, 0x01, 0x32, 0x6b, 0x76, 0x74, 0xd1, 0x48, 0xd5, -0xb1, 0xa9, 0xa2, 0xd3, 0x4b, 0x82, 0x45, 0xbd, 0x2f, 0x38, 0x1d, 0xaf, 0xc1, 0xe9, 0xd8, 0x8a, -0x46, 0x44, 0x5d, 0x22, 0xa4, 0x9f, 0x18, 0xd5, 0x3a, 0xd6, 0x46, 0xce, 0xd2, 0x24, 0x85, 0x98, -0x09, 0x7a, 0x0a, 0x84, 0xc1, 0xc0, 0xa3, 0xfe, 0x0b, 0xd1, 0x45, 0x3a, 0x81, 0x94, 0x31, 0xa2, -0x26, 0x4c, 0x52, 0xa8, 0xa1, 0x5d, 0xaf, 0x2d, 0xff, 0x71, 0x55, 0x7f, 0x26, 0xb6, 0xa3, 0xcd, -0x7c, 0xd3, 0xc2, 0x0b, 0xdb, 0xc5, 0x69, 0xa1, 0xf4, 0x09, 0xeb, 0x1d, 0x62, 0x8c, 0x4b, 0x64, -0xbc, 0xd9, 0x98, 0xc6, 0xf5, 0x1a, 0x6b, 0x01, 0xe9, 0x33, 0x9e, 0x71, 0x96, 0x35, 0x7d, 0x9e, -0x31, 0xc6, 0x42, 0x44, 0x0c, 0x49, 0x2a, 0xff, 0x4f, 0x68, 0xd3, 0x6a, 0x8a, 0x1f, 0x88, 0x75, -0x45, 0x21, 0x9a, 0x99, 0xbe, 0x25, 0x39, 0x3d, 0x6f, 0x24, 0x94, 0xa0, 0x74, 0xfb, 0xfe, 0x6f, -0x10, 0x93, 0x74, 0x9a, 0x38, 0xd3, 0x16, 0x2f, 0x35, 0x84, 0x0a, 0x41, 0x28, 0x69, 0x56, 0x8e, -0x6e, 0x4c, 0xcc, 0x16, 0x53, 0x5d, 0x6f, 0xa3, 0xfa, 0x26, 0x14, 0xec, 0xa4, 0x5c, 0xaa, 0x67, -0x26, 0x9f, 0x46, 0x33, 0xb7, 0x48, 0xc8, 0xc0, 0x24, 0xa6, 0x96, 0x1e, 0x44, 0xf0, 0x9c, 0xda, -0xca, 0xa2, 0x36, 0xcf, 0x24, 0xa8, 0x80, 0x12, 0xea, 0xa4, 0xf4, 0xc4, 0xa3, 0x26, 0xc6, 0x7e, -0x4f, 0x33, 0xbd, 0x5c, 0x65, 0x7a, 0x79, 0x12, 0x04, 0x43, 0x14, 0x1c, 0x8a, 0x19, 0xf4, 0x26, -0x2c, 0xf1, 0x3b, 0x90, 0x06, 0x55, 0xcc, 0x18, 0x6b, 0x3a, 0x9b, 0xc6, 0xb7, 0xb8, 0xa8, 0x83, -0x6c, 0x47, 0xa4, 0x17, 0x98, 0x29, 0x2f, 0x9c, 0x95, 0x58, 0xcb, 0xbe, 0x1b, 0xd8, 0x2a, 0x14, -0xf3, 0x4e, 0x24, 0xc6, 0xf4, 0x20, 0x66, 0x57, 0x39, 0x96, 0xf2, 0xfe, 0x7f, 0x7f, 0xff, 0xdf, -0xdf, 0xff, 0xdb, 0x7f, 0x5f, 0xc0, 0x39, 0x23, 0xc8, 0xe7, 0xf1, 0x1a, 0xc3, 0x6b, 0x44, 0xbb, -0x9f, 0xc1, 0xeb, 0x0b, 0xed, 0x79, 0xe2, 0x9d, 0xae, 0xe4, 0x97, 0x3c, 0x53, 0xbe, 0x0f, 0xf1, -0x3a, 0xf5, 0xe5, 0x79, 0x91, 0x87, 0x48, 0x56, 0x6b, 0x92, 0x7e, 0x3e, 0xa5, 0x9f, 0x51, 0xfa, -0x39, 0x47, 0x3f, 0xef, 0x42, 0xd2, 0xfa, 0x1e, 0x3d, 0x9c, 0xa0, 0x9f, 0x33, 0xf4, 0xf3, 0x05, -0xfd, 0xfc, 0x9e, 0x7e, 0xc6, 0xe8, 0xe7, 0x2f, 0x30, 0x60, 0x1d, 0x10, 0xd9, 0xb8, 0x80, 0x53, -0xf4, 0xf3, 0x07, 0xfa, 0x39, 0xf6, 0x65, 0xf9, 0x3e, 0x04, 0xb0, 0x0e, 0x98, 0xd6, 0x99, 0x24, -0xa3, 0x31, 0x9b, 0x2f, 0x09, 0x63, 0xa2, 0xde, 0x31, 0x18, 0xcd, 0x3e, 0xd0, 0xf5, 0x39, 0xdf, -0xc7, 0x30, 0xc5, 0xa8, 0xf5, 0x33, 0xed, 0x39, 0xfd, 0x9e, 0xbe, 0x8f, 0x0a, 0xb0, 0xc7, 0x30, -0x71, 0xd2, 0x2a, 0x83, 0x55, 0x4b, 0x34, 0x2a, 0x60, 0x1c, 0xe5, 0xb2, 0x41, 0x7e, 0x14, 0x47, -0xf1, 0xc7, 0xbc, 0xe1, 0xe3, 0x73, 0x32, 0xa1, 0x3e, 0x05, 0xa3, 0xd5, 0x0a, 0xf8, 0x67, 0x3d, -0x9f, 0x69, 0x4e, 0xb6, 0xe9, 0x63, 0x50, 0x40, 0x1f, 0x68, 0x65, 0xaf, 0xcf, 0x44, 0xfc, 0x84, -0xd0, 0xcf, 0xe1, 0xb2, 0xf1, 0x01, 0xe9, 0x8b, 0x5b, 0x75, 0x16, 0xf2, 0xb2, 0x21, 0x63, 0xa2, -0x58, 0x83, 0x78, 0x3b, 0x0b, 0xe7, 0xac, 0x85, 0x13, 0x33, 0x8d, 0x65, 0x30, 0x25, 0x24, 0xf2, -0x39, 0xad, 0x95, 0xdf, 0x08, 0xb2, 0x9c, 0xaa, 0xfe, 0xf2, 0x95, 0x50, 0x9d, 0xc7, 0x32, 0x4d, -0x13, 0xa0, 0x3a, 0x8f, 0x00, 0x99, 0x35, 0x74, 0x00, 0xbe, 0x8d, 0x8f, 0x1f, 0xc5, 0x1c, 0x02, -0xa2, 0x24, 0x06, 0x26, 0x2f, 0x88, 0xcd, 0x82, 0x66, 0x48, 0xd7, 0x33, 0xfa, 0x57, 0x83, 0x75, -0x01, 0x6e, 0xc7, 0x32, 0xdd, 0x72, 0x46, 0x90, 0x88, 0x56, 0xf8, 0xf9, 0xf4, 0xc3, 0x78, 0x8c, -0x0a, 0x00, 0xb3, 0x04, 0x95, 0x21, 0x8b, 0xa4, 0xe8, 0xe0, 0x9c, 0xfc, 0x92, 0x86, 0xb4, 0xf3, -0x4c, 0x3f, 0x4c, 0xc6, 0x59, 0xc2, 0xa2, 0x0c, 0x44, 0x3b, 0xc8, 0xf9, 0x47, 0xd3, 0xa4, 0x41, -0x94, 0x95, 0x4b, 0xaa, 0xe3, 0xa8, 0xf4, 0x2c, 0xd2, 0xd4, 0x7e, 0x94, 0x33, 0x67, 0x88, 0xaa, -0xfe, 0x22, 0xa3, 0xb5, 0x74, 0xde, 0x28, 0xcb, 0xb2, 0xf1, 0x5d, 0xf9, 0x33, 0x96, 0xfd, 0x18, -0x30, 0x66, 0xfc, 0x23, 0x26, 0x38, 0x88, 0xaf, 0xef, 0xc9, 0x7b, 0x30, 0xff, 0x00, 0xbc, 0x8b, -0x89, 0x8d, 0xe7, 0xac, 0xd3, 0x2d, 0xda, 0x26, 0x82, 0xcc, 0xa2, 0x6e, 0xfa, 0xcd, 0x6a, 0x35, -0x59, 0x2c, 0x26, 0x0b, 0x6d, 0x96, 0x30, 0x71, 0x80, 0xc9, 0x9a, 0xb4, 0x80, 0x7c, 0x8e, 0xf2, -0x8d, 0x59, 0x64, 0x0c, 0x1c, 0xb5, 0xe8, 0xf0, 0x97, 0x42, 0xf1, 0x2a, 0x9c, 0x90, 0x59, 0xac, -0xb2, 0x5b, 0x79, 0xb5, 0xff, 0x9c, 0x15, 0x8c, 0xe7, 0x51, 0xea, 0x19, 0x2d, 0x67, 0xb5, 0x8d, -0x06, 0x49, 0x6b, 0xa9, 0xe5, 0x62, 0x35, 0x63, 0x95, 0xd6, 0xf3, 0x16, 0x3d, 0x3e, 0x1b, 0xa5, -0xc3, 0xa8, 0x6b, 0x98, 0xac, 0xb9, 0xa9, 0xce, 0x72, 0x59, 0x03, 0xf0, 0x7f, 0xa3, 0x0c, 0xc6, -0x82, 0x2d, 0x96, 0xf4, 0x3e, 0x0e, 0x0b, 0x02, 0x60, 0x10, 0x4b, 0xba, 0x63, 0xb4, 0x7e, 0x97, -0x6f, 0xa2, 0x25, 0x59, 0xfc, 0x3f, 0x6a, 0x02, 0xcb, 0x18, 0x5e, 0x49, 0x93, 0x0e, 0x5f, 0x65, -0x5a, 0xf8, 0xa2, 0xc6, 0x24, 0x4d, 0x46, 0x0b, 0x6f, 0xe0, 0x30, 0x8d, 0x22, 0xf0, 0x74, 0x8d, -0x59, 0x0c, 0xa2, 0x9a, 0x24, 0xed, 0xa4, 0xb0, 0xa4, 0x21, 0x17, 0xdb, 0x05, 0x10, 0x66, 0x99, -0x94, 0x38, 0x18, 0x1f, 0x66, 0xb1, 0xf0, 0x0e, 0x03, 0x0b, 0x66, 0x06, 0xeb, 0x39, 0x8b, 0x51, -0xe0, 0x8b, 0xeb, 0x4c, 0x9a, 0xf4, 0x54, 0xbc, 0xfc, 0x47, 0xc8, 0xcb, 0xae, 0x74, 0x27, 0x2d, -0x79, 0xf9, 0xdc, 0x1e, 0x81, 0x1e, 0x83, 0xd8, 0x16, 0x40, 0xcd, 0xa1, 0x82, 0xc5, 0xd2, 0x3a, -0x2d, 0xd5, 0x9b, 0xf2, 0x2d, 0xc9, 0xfc, 0xc9, 0xbc, 0xd6, 0x39, 0x6e, 0x11, 0xd7, 0xa4, 0x3d, -0x72, 0x44, 0xd2, 0x04, 0xd8, 0x56, 0x86, 0xca, 0x94, 0xb4, 0x4c, 0x15, 0x9d, 0x45, 0x7f, 0xbc, -0x00, 0x6e, 0xe2, 0x92, 0xf2, 0x79, 0xe3, 0x82, 0x35, 0xbd, 0x85, 0xc0, 0xa2, 0x81, 0x6e, 0xe0, -0xfd, 0x07, 0xf9, 0x48, 0x61, 0xf9, 0x32, 0xf1, 0xa5, 0xb3, 0x56, 0x63, 0xbe, 0x40, 0xff, 0xa8, -0xf5, 0xb2, 0x7c, 0x2d, 0x0b, 0xef, 0x37, 0xa0, 0x5e, 0xa7, 0xd5, 0xed, 0x7c, 0x6e, 0x27, 0xd6, -0x93, 0x34, 0x49, 0x16, 0xd3, 0x1f, 0x71, 0xa0, 0x58, 0xc4, 0x1e, 0x04, 0x93, 0x06, 0xad, 0x8d, -0xb7, 0x26, 0x50, 0x95, 0xfc, 0xdf, 0x34, 0x00, 0x3f, 0x23, 0xb8, 0xac, 0xcd, 0x18, 0x4e, 0x13, -0xbf, 0xa8, 0x23, 0xa7, 0xff, 0xb4, 0xbd, 0x2e, 0x46, 0x9a, 0x90, 0xa2, 0x19, 0xdd, 0xf4, 0xbc, -0x36, 0x45, 0x22, 0xd1, 0x1a, 0x44, 0x2b, 0x79, 0x9d, 0x9b, 0x7b, 0xc8, 0x68, 0x94, 0x39, 0x3c, -0x69, 0x44, 0x1b, 0x0b, 0xcd, 0x10, 0xdd, 0xc7, 0x46, 0xd0, 0x9d, 0x33, 0xea, 0x91, 0xaa, 0x29, -0x90, 0xa4, 0x0d, 0x46, 0x4b, 0xd8, 0x10, 0xd3, 0x98, 0xd5, 0x4c, 0x59, 0x65, 0x2a, 0x69, 0xcc, -0x48, 0xfb, 0x8b, 0x30, 0x5e, 0x37, 0x66, 0xb4, 0xc8, 0x14, 0xa6, 0xa3, 0x70, 0x1d, 0x86, 0x60, -0xa8, 0x9e, 0x6a, 0x33, 0x9e, 0x37, 0x49, 0xf9, 0xc6, 0xb7, 0xe1, 0x0a, 0x26, 0x19, 0x2c, 0x9a, -0xe2, 0x75, 0x22, 0xa1, 0xce, 0xc8, 0x00, 0x51, 0x3e, 0x32, 0xe7, 0x7e, 0x06, 0x36, 0x99, 0xba, -0xcb, 0x64, 0xe4, 0x69, 0x7f, 0xfc, 0xff, 0x29, 0x0d, 0xb6, 0x4f, 0x58, 0x8d, 0x1e, 0x65, 0x85, -0xd9, 0x38, 0x66, 0xba, 0x24, 0x9f, 0xc0, 0xc6, 0x84, 0x68, 0x9a, 0x88, 0x49, 0x3f, 0xe9, 0x73, -0xa1, 0xd2, 0xa1, 0x2e, 0x0b, 0xb4, 0xa3, 0x03, 0xed, 0x04, 0x6d, 0x65, 0x31, 0xc9, 0x2f, 0x16, -0x59, 0x50, 0x83, 0x8e, 0xd5, 0x5d, 0x5e, 0x9a, 0x00, 0xcc, 0x43, 0x2f, 0x49, 0xd4, 0xe1, 0x81, -0x97, 0x6a, 0x11, 0x4d, 0xf9, 0x48, 0x54, 0xd2, 0x3b, 0xa8, 0xdc, 0x52, 0x87, 0xe8, 0x64, 0x4a, -0x31, 0xc6, 0x97, 0x9e, 0x97, 0xf9, 0x98, 0x86, 0x8c, 0xb4, 0xc1, 0x45, 0x77, 0x1e, 0x5f, 0x4f, -0x73, 0x46, 0x71, 0x89, 0x64, 0x34, 0xc3, 0x89, 0xa5, 0xe0, 0xe0, 0x40, 0xb5, 0xd4, 0x48, 0x14, -0x84, 0xf7, 0xa4, 0x9c, 0xaf, 0x2d, 0xd0, 0xf3, 0x7f, 0x62, 0x23, 0x1f, 0x31, 0x54, 0xdc, 0xc6, -0x31, 0x2e, 0x51, 0xb6, 0xe4, 0xcb, 0xe7, 0x39, 0x52, 0xd4, 0x34, 0xc6, 0xc5, 0x1a, 0x44, 0xa6, -0xcf, 0xc1, 0xa4, 0xe3, 0xc2, 0x4c, 0xf2, 0x3b, 0xa0, 0x37, 0xd2, 0xb6, 0x00, 0xda, 0xcd, 0x22, -0x96, 0xb2, 0xcf, 0x71, 0x4a, 0x99, 0xb7, 0x54, 0xfe, 0x77, 0xda, 0x89, 0x82, 0xe0, 0x59, 0xa4, -0xdf, 0xa2, 0x9d, 0x84, 0x4d, 0x40, 0x3c, 0x62, 0xf1, 0x34, 0x0e, 0xc5, 0xa6, 0x13, 0x69, 0x1f, -0xa6, 0xa0, 0x1d, 0x3a, 0x16, 0xe3, 0x6f, 0x31, 0x62, 0xcc, 0x84, 0xc4, 0x71, 0x14, 0x8c, 0x46, -0xa4, 0x32, 0x13, 0x69, 0xbe, 0x3f, 0xd6, 0x9a, 0x67, 0xfc, 0x0d, 0x22, 0x9a, 0x46, 0x97, 0x96, -0x7d, 0x8c, 0xac, 0x26, 0x63, 0x85, 0xac, 0x11, 0x09, 0xdf, 0xb5, 0xc7, 0xf1, 0x6f, 0xe9, 0x47, -0xfc, 0x39, 0x47, 0x15, 0x58, 0x65, 0xd4, 0x3b, 0x7e, 0x0b, 0x06, 0x22, 0x6e, 0xa3, 0x7c, 0x94, -0xa0, 0xc7, 0xaa, 0xf6, 0x21, 0xf4, 0x46, 0x23, 0x51, 0xdf, 0x00, 0xfc, 0x52, 0x6b, 0xbf, 0x2c, -0xbd, 0x06, 0x56, 0x8e, 0x4d, 0xa3, 0x6e, 0x0c, 0x4c, 0x26, 0xab, 0xe0, 0x2f, 0x63, 0x26, 0x31, -0xe8, 0xf0, 0x7f, 0xd2, 0xf4, 0x2d, 0x1e, 0x82, 0xe2, 0x7f, 0xee, 0xa3, 0xc9, 0x62, 0x3c, 0x07, -0x06, 0xda, 0xae, 0x95, 0x2f, 0x23, 0xfc, 0xc4, 0x7e, 0x20, 0x53, 0xe5, 0x6b, 0xd8, 0x20, 0xd3, -0x39, 0x6c, 0xb8, 0x7c, 0x18, 0x4a, 0x8c, 0x17, 0xe7, 0xc6, 0x6b, 0xc1, 0x80, 0x7c, 0x36, 0x9f, -0x73, 0x1b, 0xad, 0xd8, 0x7a, 0xda, 0x7b, 0x80, 0x77, 0x90, 0x5e, 0x66, 0x20, 0x75, 0xb4, 0x3b, -0xe4, 0xb7, 0x08, 0x1c, 0x62, 0x16, 0x09, 0xf4, 0x5d, 0x2a, 0x1a, 0x3b, 0xe3, 0xb7, 0xf0, 0xa9, -0x15, 0x70, 0xb4, 0x82, 0xf1, 0x03, 0xbc, 0x1f, 0xc1, 0x01, 0x72, 0xca, 0xfa, 0x3f, 0xb4, 0xa2, -0xa4, 0x09, 0x88, 0xa4, 0xa2, 0x32, 0x20, 0xe2, 0x03, 0xda, 0xd7, 0x19, 0x10, 0x0f, 0x60, 0x92, -0xd3, 0xd6, 0xb7, 0x91, 0x9c, 0x51, 0x26, 0x7c, 0x06, 0x7a, 0x4c, 0x45, 0xa2, 0x09, 0x4c, 0x47, -0xb1, 0xc8, 0x8f, 0x90, 0xa5, 0xec, 0xc4, 0x3e, 0xa4, 0xee, 0x31, 0x61, 0x5e, 0x81, 0x2a, 0x49, -0x43, 0x95, 0x40, 0x22, 0x47, 0x70, 0x75, 0xd8, 0xd3, 0xef, 0x66, 0x4a, 0xfd, 0x88, 0xa1, 0xd2, -0x4a, 0x25, 0xbd, 0x09, 0x90, 0x01, 0x1d, 0xcd, 0x05, 0xd3, 0xa2, 0xfb, 0x0d, 0xe4, 0x21, 0xab, -0xe6, 0x45, 0x6a, 0x6a, 0xf1, 0x18, 0x49, 0x9f, 0x2f, 0xe4, 0x72, 0xea, 0xd3, 0x9c, 0xce, 0x1d, -0xd7, 0xe3, 0xd9, 0x47, 0xec, 0x6a, 0x2a, 0xc6, 0x62, 0xc9, 0x6d, 0x13, 0x3e, 0xd0, 0xee, 0x20, -0x94, 0x85, 0xc6, 0x53, 0x08, 0xc0, 0x3b, 0x59, 0x00, 0x24, 0x52, 0x3c, 0x40, 0x7e, 0x97, 0x21, -0xd8, 0xc9, 0x72, 0x0e, 0x05, 0x97, 0x86, 0xf3, 0x9c, 0xde, 0xff, 0x8e, 0x89, 0xf6, 0x81, 0x89, -0x7e, 0x12, 0x84, 0x20, 0xfa, 0xd9, 0x6a, 0xd1, 0x68, 0xc2, 0x66, 0xa1, 0x7b, 0x86, 0x08, 0x8c, -0x82, 0xe2, 0xa8, 0x28, 0x23, 0x66, 0x34, 0x21, 0x45, 0xa7, 0x91, 0x70, 0x90, 0x24, 0xd9, 0x87, -0x18, 0x75, 0x74, 0x22, 0x1e, 0xd2, 0x70, 0xfc, 0x0f, 0x8d, 0xf2, 0x4d, 0x04, 0x07, 0x72, 0xfd, -0x0c, 0x6a, 0xb1, 0x5f, 0xa5, 0xbf, 0xe0, 0xf5, 0x05, 0x0d, 0x13, 0x02, 0xc7, 0xf8, 0x1a, 0x00, -0xf7, 0x24, 0x8f, 0x45, 0x4c, 0xf2, 0x3b, 0x4c, 0x79, 0xc2, 0xfa, 0xa5, 0x25, 0xef, 0x03, 0xe2, -0xe9, 0x1f, 0x23, 0xc9, 0x5b, 0xb4, 0xec, 0xdc, 0x77, 0x62, 0x64, 0x62, 0xf6, 0x5f, 0x8a, 0x21, -0x29, 0x5b, 0x4c, 0xc6, 0x11, 0x30, 0x50, 0x5a, 0xa3, 0x0e, 0xc7, 0xa4, 0x44, 0x3b, 0x92, 0x8c, -0xd2, 0x1b, 0x58, 0xd6, 0x09, 0x2e, 0x2b, 0x4d, 0x16, 0xd8, 0xda, 0x5c, 0x04, 0xee, 0xa7, 0x75, -0x00, 0xa3, 0x8c, 0xc3, 0x1e, 0x8c, 0x1f, 0x83, 0x89, 0x61, 0xc4, 0x81, 0x35, 0x22, 0x9a, 0x41, -0x33, 0x60, 0x74, 0xdf, 0x23, 0x06, 0x63, 0xbe, 0x45, 0x3e, 0x80, 0x75, 0x30, 0xe7, 0x7f, 0x87, -0x2a, 0x43, 0x09, 0x6e, 0xc0, 0x2a, 0x8c, 0x9f, 0x22, 0xf1, 0x98, 0x3e, 0xc7, 0x7e, 0xd2, 0xea, -0xf9, 0x78, 0x5c, 0x13, 0x5e, 0x27, 0xaa, 0xfa, 0x02, 0x63, 0x4f, 0x53, 0x93, 0x79, 0x1b, 0x99, -0x8c, 0x25, 0x1c, 0x91, 0x3f, 0xd5, 0x6a, 0x91, 0xd3, 0x6c, 0x82, 0xc6, 0x06, 0x49, 0xfe, 0x51, -0xd3, 0xb7, 0xd3, 0xdd, 0x65, 0xca, 0x1d, 0xa1, 0xda, 0x30, 0x4e, 0x9a, 0x0c, 0xac, 0x83, 0x18, -0xcf, 0x72, 0x75, 0xb4, 0xf1, 0xd0, 0x62, 0x34, 0xbe, 0x89, 0xe2, 0x0a, 0x75, 0x1e, 0x1a, 0xb6, -0xc4, 0x52, 0x8f, 0xcb, 0xb4, 0xd9, 0x12, 0x85, 0x9f, 0x91, 0x90, 0x80, 0xd2, 0x93, 0xf7, 0x5e, -0x9a, 0x50, 0x8e, 0x82, 0x7c, 0xec, 0x62, 0x60, 0xa2, 0xc5, 0x8f, 0x98, 0x15, 0x0c, 0x15, 0xe4, -0xd3, 0xc8, 0x14, 0x69, 0xef, 0x9e, 0x64, 0xc9, 0xff, 0x23, 0x5a, 0x2e, 0x39, 0x03, 0x06, 0xf9, -0xe7, 0xbb, 0x1a, 0xdb, 0xfe, 0x84, 0x79, 0xae, 0x2c, 0x5b, 0x2c, 0x07, 0xd3, 0xa2, 0xd8, 0xc4, -0x7b, 0x77, 0x90, 0xf9, 0x88, 0x4d, 0x7d, 0x02, 0x38, 0xab, 0xe5, 0x0c, 0xed, 0x4f, 0x34, 0xe5, -0x1b, 0xb0, 0x47, 0xce, 0x22, 0xb2, 0x8c, 0xd8, 0x03, 0x12, 0xa2, 0xc4, 0x78, 0x0c, 0x4b, 0x3c, -0x9e, 0x01, 0xe1, 0x77, 0x0c, 0x02, 0x2a, 0x61, 0x46, 0x13, 0x32, 0x79, 0xb3, 0x64, 0xe1, 0x6d, -0x94, 0xa4, 0x11, 0x28, 0x17, 0x68, 0x7e, 0x39, 0x4c, 0x88, 0x34, 0x29, 0xd4, 0x22, 0x19, 0x99, -0x24, 0x15, 0x90, 0x33, 0x7f, 0x2c, 0xc4, 0x43, 0x32, 0x73, 0xc9, 0xcc, 0xec, 0x4d, 0x92, 0x26, -0x49, 0xfe, 0x42, 0xdd, 0x47, 0x3a, 0xd9, 0xb9, 0xcc, 0x9e, 0xd4, 0xa4, 0xb5, 0xe4, 0x62, 0x95, -0xe0, 0xd8, 0x19, 0xa3, 0x1f, 0x6a, 0x9a, 0x11, 0x31, 0xab, 0xc8, 0x62, 0x3c, 0xf1, 0xde, 0x5a, -0xab, 0x50, 0xc2, 0x4c, 0x99, 0xe4, 0x24, 0x65, 0x7e, 0x87, 0x4d, 0x34, 0xcb, 0xac, 0x9a, 0x22, -0xc1, 0x52, 0xc7, 0x8f, 0x6f, 0x25, 0x71, 0x13, 0x24, 0x53, 0x6a, 0x26, 0x19, 0x80, 0xdf, 0x41, -0x62, 0xb0, 0x8a, 0x76, 0x12, 0x33, 0xe1, 0x7d, 0x7d, 0x56, 0xde, 0xab, 0x47, 0x97, 0xa6, 0x42, -0x19, 0x49, 0x85, 0xc1, 0x21, 0xf9, 0x39, 0x14, 0x90, 0x04, 0x33, 0x09, 0xf2, 0xc7, 0x90, 0xdd, -0x20, 0x13, 0x45, 0x58, 0x8b, 0x2d, 0x42, 0x67, 0xb3, 0x64, 0xb1, 0x83, 0x3f, 0x67, 0x2c, 0x7a, -0x8d, 0xed, 0x13, 0x0d, 0x61, 0xcf, 0x19, 0x50, 0xf4, 0x52, 0xed, 0x9a, 0xae, 0x69, 0xf9, 0xc2, -0x54, 0xa0, 0x11, 0x19, 0xab, 0x70, 0x46, 0x49, 0x00, 0x6f, 0xa5, 0x51, 0xc8, 0xbb, 0x68, 0xc7, -0x03, 0x4f, 0x7c, 0xf4, 0x1d, 0xe6, 0xaa, 0x63, 0x82, 0x84, 0x3e, 0x22, 0xea, 0x07, 0xa7, 0x84, -0x7a, 0x89, 0x29, 0x5f, 0xe8, 0x5a, 0xb9, 0xfa, 0xdf, 0x38, 0x95, 0x10, 0x5b, 0xa2, 0x13, 0x94, -0x64, 0x32, 0xcb, 0x62, 0xf8, 0x1a, 0x99, 0x55, 0x9e, 0x97, 0x91, 0xe6, 0xe4, 0x3c, 0x63, 0x9a, -0x35, 0xe2, 0xcb, 0xe5, 0x17, 0x95, 0x8b, 0xf8, 0xff, 0x0c, 0x49, 0xe2, 0xa4, 0x49, 0x66, 0x4d, -0xf5, 0x32, 0xa1, 0x4d, 0x33, 0xde, 0x19, 0x5b, 0xa2, 0xae, 0x51, 0x13, 0xb2, 0x03, 0x46, 0x9a, -0x89, 0x56, 0xec, 0xe4, 0x2f, 0x70, 0xdc, 0xe5, 0xf3, 0xfe, 0x42, 0x9d, 0x80, 0xa3, 0x30, 0x5f, -0x40, 0x27, 0x20, 0x44, 0x05, 0xe8, 0x75, 0x6c, 0x35, 0x11, 0x04, 0x92, 0xc6, 0x67, 0x17, 0xf4, -0xd7, 0x3b, 0x68, 0x61, 0x96, 0xca, 0xc4, 0x14, 0x2f, 0xc6, 0xc0, 0x93, 0x68, 0xd9, 0x94, 0x8a, -0x6d, 0x12, 0xac, 0xd2, 0xd1, 0x7f, 0xd2, 0x24, 0xc5, 0x76, 0xe9, 0xa4, 0x5c, 0xc0, 0x7b, 0x87, -0x48, 0x73, 0x94, 0x64, 0x83, 0xac, 0xfb, 0x0c, 0xed, 0x05, 0xa3, 0x09, 0xb5, 0x38, 0xcc, 0xc1, -0xab, 0x81, 0x48, 0x9b, 0x56, 0x8d, 0x55, 0x33, 0x3b, 0xb6, 0x8e, 0xa6, 0x07, 0xbb, 0xc9, 0x72, -0x9e, 0x95, 0x74, 0x6b, 0x5a, 0x56, 0xd3, 0x65, 0x3c, 0x83, 0xba, 0x09, 0x15, 0x8e, 0x59, 0xb1, -0xfa, 0xa4, 0xf1, 0x12, 0x99, 0xf5, 0x4d, 0x23, 0x2b, 0xb0, 0x3a, 0x9a, 0xe6, 0x45, 0xcd, 0x91, -0x2a, 0x30, 0x50, 0x44, 0xd2, 0xc8, 0x9f, 0x7a, 0x7c, 0x0e, 0x25, 0x92, 0x51, 0xa8, 0x97, 0x86, -0xb4, 0x8e, 0x2b, 0xb4, 0xd9, 0xa4, 0x4c, 0xe0, 0xed, 0xd7, 0x7a, 0x9d, 0xd8, 0xcf, 0xc5, 0x48, -0xf6, 0x1d, 0xf8, 0x23, 0x3e, 0x7f, 0xa0, 0x0d, 0xfb, 0x24, 0x2d, 0x0c, 0xbe, 0xa7, 0xe9, 0x5a, -0xe9, 0xa1, 0x45, 0x93, 0xda, 0x46, 0x31, 0xb8, 0x58, 0x49, 0xfb, 0x4b, 0xce, 0xf0, 0x3b, 0x03, -0xe6, 0x8c, 0x02, 0x77, 0x8e, 0xd3, 0xef, 0xcd, 0xb0, 0x01, 0x79, 0x22, 0x1b, 0x10, 0x34, 0x46, -0xbb, 0xcb, 0xb1, 0x9b, 0x11, 0x35, 0x63, 0xd6, 0x02, 0x31, 0xde, 0xac, 0xe2, 0x3f, 0xf3, 0xea, -0x4f, 0xc4, 0xb6, 0xb4, 0xa4, 0x54, 0x98, 0xde, 0x4e, 0x99, 0x1e, 0xd9, 0x49, 0x4d, 0xff, 0xfb, -0x48, 0xd3, 0x65, 0x4f, 0x00, 0x4d, 0xdd, 0xe4, 0x65, 0x74, 0x48, 0x56, 0x47, 0xe9, 0xf9, 0x54, -0x46, 0x51, 0x2c, 0xd2, 0x40, 0xcb, 0xfd, 0x49, 0x2b, 0xad, 0x27, 0xa0, 0x50, 0xca, 0x89, 0xa0, -0x6b, 0x1f, 0x20, 0xab, 0x37, 0xa2, 0x61, 0x22, 0x9b, 0x2e, 0x64, 0x61, 0xef, 0x90, 0x70, 0x31, -0x9d, 0x23, 0xa6, 0x68, 0x45, 0xc5, 0x1b, 0xb1, 0x49, 0x16, 0x37, 0x02, 0x61, 0xfc, 0x0c, 0xb9, -0xbe, 0x51, 0x93, 0x12, 0xe3, 0x73, 0xa0, 0x76, 0x88, 0xc8, 0xc0, 0x4e, 0xd2, 0xa1, 0xfc, 0xe2, -0x19, 0xd4, 0x37, 0x33, 0x72, 0x2b, 0x9b, 0xf2, 0x1c, 0x33, 0x07, 0xa3, 0x15, 0x09, 0x91, 0x98, -0xfe, 0xdb, 0xa4, 0xda, 0x9f, 0x01, 0x1d, 0x3e, 0x12, 0xb0, 0x44, 0x94, 0xf8, 0x7a, 0x3e, 0x67, -0xd2, 0x8a, 0xcc, 0x8e, 0x93, 0x78, 0xfd, 0xfa, 0x4b, 0x26, 0xb5, 0x72, 0x27, 0xcb, 0x3e, 0xc7, -0xeb, 0xb5, 0x09, 0x93, 0x63, 0xe7, 0x73, 0x26, 0xbf, 0x3e, 0xd1, 0xa4, 0x74, 0x16, 0x9c, 0x2f, -0xa8, 0x4f, 0x00, 0x35, 0x54, 0x2b, 0x42, 0x3f, 0x82, 0xa0, 0x5b, 0x48, 0x78, 0x90, 0x02, 0x71, -0x26, 0x3b, 0x75, 0x85, 0x3a, 0xbe, 0xf1, 0xa4, 0xd0, 0xc1, 0xb4, 0x8c, 0x76, 0x24, 0x67, 0x1a, -0xfc, 0xb9, 0xb9, 0x51, 0x25, 0x30, 0x9e, 0x15, 0x19, 0xa5, 0x4d, 0x6c, 0x28, 0x7c, 0x46, 0x8d, -0xfb, 0x28, 0xa3, 0xfc, 0x64, 0x6b, 0x4d, 0x5a, 0x0b, 0x89, 0x6b, 0x5a, 0xb4, 0xcc, 0x12, 0x3e, -0xfe, 0x06, 0x7b, 0xca, 0x88, 0x98, 0xc5, 0xaa, 0xe5, 0xbf, 0x80, 0x58, 0x2d, 0x38, 0x8d, 0x6a, -0x1b, 0xea, 0xf1, 0xe3, 0x73, 0x92, 0x55, 0x49, 0x7b, 0x8a, 0x31, 0xa7, 0x6c, 0x95, 0x92, 0xd6, -0xbd, 0x0c, 0x2d, 0x25, 0xc7, 0x74, 0x26, 0xd2, 0x1d, 0x09, 0x58, 0x3d, 0x4d, 0x58, 0x30, 0xe2, -0xcf, 0x59, 0xcd, 0x96, 0x2c, 0x90, 0x7b, 0x19, 0xc7, 0xb2, 0x36, 0x81, 0x8f, 0xd8, 0xc3, 0xbc, -0x6f, 0xe5, 0xe4, 0x38, 0x4a, 0xf4, 0xc6, 0x12, 0x50, 0x23, 0x56, 0x0b, 0xa5, 0x7c, 0x14, 0xd9, -0x95, 0x89, 0xda, 0x76, 0x58, 0x24, 0x25, 0x1e, 0x8f, 0x85, 0xe3, 0x10, 0xb0, 0x9c, 0xe6, 0xb9, -0x98, 0x7f, 0x46, 0xa5, 0x83, 0x99, 0xb3, 0x51, 0xfa, 0x03, 0x41, 0x8b, 0xd2, 0xfb, 0x1d, 0x52, -0x69, 0x3e, 0xb6, 0xfe, 0x9f, 0x9e, 0x51, 0x7d, 0x42, 0xfb, 0xf6, 0xad, 0xb8, 0xb8, 0x18, 0x9c, -0x4e, 0x27, 0x80, 0xc7, 0x07, 0x16, 0xdf, 0x54, 0x80, 0x85, 0x71, 0xb8, 0xf1, 0xc6, 0x1b, 0xe1, -0xe7, 0x3f, 0xff, 0x39, 0xc0, 0x96, 0x2d, 0x70, 0x63, 0x4b, 0x1c, 0xf6, 0xee, 0xdd, 0x0b, 0x3b, -0x8e, 0x8e, 0xc2, 0xe7, 0x9f, 0xa3, 0x91, 0xd7, 0x3f, 0x0a, 0x3f, 0xef, 0x1f, 0xa5, 0xef, 0xde, -0x12, 0xa5, 0x90, 0xfc, 0x6f, 0x87, 0xf5, 0xd3, 0x0a, 0x86, 0x20, 0x39, 0xf8, 0xa9, 0xf8, 0xee, -0xed, 0xbf, 0xad, 0x13, 0xc5, 0xf6, 0x2e, 0x5d, 0xd1, 0xd9, 0x53, 0xd9, 0xd1, 0xb9, 0x7a, 0xe9, -0x2d, 0x9d, 0xd0, 0xd9, 0x17, 0xbf, 0xb9, 0x9b, 0xce, 0xe8, 0xc9, 0x1c, 0x2a, 0x44, 0x5f, 0xd1, -0x75, 0xb1, 0xf3, 0x84, 0xec, 0xb7, 0x74, 0x14, 0xd6, 0xd1, 0xd9, 0x75, 0xf3, 0x0f, 0xbf, 0xcb, -0x8f, 0x2b, 0x3a, 0xbb, 0x6f, 0x85, 0xee, 0x95, 0x2b, 0x56, 0x76, 0x2f, 0xed, 0x5d, 0xd9, 0xb3, -0x0a, 0x1f, 0x6f, 0x59, 0xb9, 0x22, 0xbe, 0x72, 0xd5, 0xd2, 0x5e, 0x2c, 0x48, 0x4b, 0x4c, 0xa5, -0x7f, 0x17, 0x9a, 0x96, 0x76, 0x75, 0xce, 0xfb, 0xe1, 0xaa, 0xde, 0xce, 0x15, 0xd9, 0xc2, 0x3a, -0x56, 0xae, 0xca, 0x54, 0x56, 0x79, 0x35, 0xc4, 0x6f, 0xee, 0xe9, 0xe5, 0x8c, 0x99, 0xc0, 0xe0, -0xd2, 0x55, 0x71, 0xac, 0x4b, 0xf9, 0x9b, 0x38, 0x05, 0xaf, 0x82, 0xc6, 0x34, 0x8c, 0x4a, 0x60, -0xe5, 0xcd, 0x3d, 0x1d, 0x4a, 0x70, 0xe9, 0xcd, 0xb1, 0xee, 0x95, 0xab, 0x7a, 0x97, 0xde, 0x02, -0x01, 0x3a, 0x6f, 0x29, 0x9d, 0x8e, 0x9c, 0x72, 0x29, 0x8d, 0x37, 0xf7, 0x74, 0xfd, 0x50, 0x99, -0x47, 0x07, 0x46, 0xdd, 0x1a, 0x57, 0x1a, 0x56, 0x76, 0xf7, 0xf6, 0xac, 0xec, 0x82, 0xbf, 0x15, -0x00, 0x29, 0x2b, 0xe3, 0x9d, 0xdd, 0xe2, 0x90, 0x8a, 0xbf, 0x83, 0xbf, 0xed, 0x5e, 0xa9, 0xac, -0xe8, 0xec, 0x58, 0x7a, 0xf3, 0xdf, 0xc1, 0x2d, 0x4b, 0x6f, 0xbe, 0x39, 0x0b, 0xe0, 0xf2, 0xce, -0x1f, 0x2e, 0xa6, 0x8a, 0xd2, 0x38, 0xca, 0xad, 0xa4, 0xb2, 0xb2, 0x72, 0x22, 0x7c, 0x14, 0xf4, -0xe5, 0x20, 0x52, 0x2c, 0x15, 0x20, 0x4a, 0xb9, 0x71, 0x69, 0xef, 0x12, 0x25, 0xb2, 0x32, 0x0d, -0xdf, 0x8c, 0x79, 0x74, 0xf0, 0x55, 0x37, 0xd6, 0xf1, 0xfd, 0x55, 0x9d, 0xd0, 0x70, 0x33, 0x3e, -0x75, 0x5d, 0x14, 0x67, 0x53, 0x6f, 0x99, 0x7a, 0xb5, 0x77, 0x95, 0x76, 0x74, 0xd2, 0xaa, 0x19, -0x53, 0xbb, 0x3a, 0x60, 0xea, 0x2a, 0xe5, 0x6f, 0xa7, 0x7a, 0x6b, 0xbb, 0xfa, 0xfe, 0x4e, 0x99, -0xda, 0x51, 0x39, 0x15, 0xc3, 0xbb, 0x3a, 0x96, 0xc3, 0xd4, 0xaa, 0x8e, 0x3a, 0x85, 0x83, 0xe9, -0x7c, 0x2c, 0xbe, 0xbb, 0xf8, 0x36, 0x4d, 0x99, 0x7a, 0x4d, 0x07, 0x9f, 0xb8, 0xc4, 0xaf, 0xa0, -0xdc, 0x34, 0x13, 0xaf, 0x2a, 0x50, 0x14, 0x05, 0x94, 0xb6, 0xbf, 0x99, 0x8b, 0x3f, 0xfe, 0xb9, -0xe0, 0x8a, 0xd3, 0x51, 0x1d, 0xca, 0xcd, 0x0a, 0xe2, 0x80, 0xce, 0x88, 0xea, 0x5d, 0x19, 0x8b, -0x75, 0x75, 0x2a, 0xbd, 0x4b, 0x3a, 0x95, 0x0e, 0xad, 0xd5, 0x8b, 0x3b, 0x7b, 0xff, 0xa1, 0x13, -0xb1, 0xd8, 0xea, 0x6f, 0x51, 0x6e, 0xee, 0xee, 0x50, 0x22, 0xf3, 0xe7, 0x35, 0x4c, 0x83, 0xbf, -0xa5, 0xe6, 0xcd, 0x45, 0xba, 0xf8, 0x3b, 0x65, 0xc5, 0xaa, 0x58, 0xcb, 0xca, 0x95, 0xf1, 0x3a, -0x6c, 0x6c, 0x77, 0xc7, 0xca, 0x7f, 0x50, 0xba, 0x6e, 0xbe, 0x65, 0x39, 0x15, 0x79, 0xeb, 0xaa, -0xce, 0x9e, 0xf8, 0xca, 0x9e, 0xde, 0x29, 0x16, 0x88, 0xf6, 0x2c, 0xbe, 0xb5, 0xb7, 0x77, 0x65, -0xf7, 0x2d, 0x5d, 0x37, 0xaf, 0x5a, 0x05, 0x88, 0x0f, 0xa2, 0x99, 0x9b, 0x17, 0x63, 0x4d, 0xdc, -0x21, 0xe2, 0xa8, 0x2a, 0xc2, 0xdc, 0x05, 0x5f, 0x75, 0x06, 0xff, 0x66, 0x1e, 0x23, 0xf2, 0x96, -0xae, 0xce, 0x9b, 0xbb, 0x6f, 0x8d, 0x5f, 0xe8, 0xc3, 0x63, 0xbd, 0x35, 0xf7, 0xeb, 0x51, 0xed, -0x4e, 0x67, 0x9a, 0x5d, 0x95, 0xf3, 0x4e, 0xf7, 0x29, 0xec, 0xdf, 0x63, 0xd1, 0x97, 0xf8, 0xf7, -0x38, 0x9c, 0xf1, 0xef, 0xf1, 0x9a, 0xf0, 0xef, 0xd1, 0x6c, 0x4b, 0xfb, 0xf7, 0x08, 0x6d, 0xfb, -0xe6, 0xfe, 0x3d, 0x42, 0x87, 0xbf, 0xdc, 0xbf, 0x47, 0x68, 0xdf, 0x44, 0xff, 0x1e, 0x6b, 0xed, -0x13, 0xfc, 0x7b, 0xb4, 0xe7, 0xfa, 0xf7, 0x08, 0xed, 0x98, 0xe8, 0xdf, 0x23, 0xb4, 0xe7, 0x42, -0xff, 0x1e, 0xa1, 0x83, 0x17, 0xf8, 0xf7, 0x58, 0x34, 0xde, 0xbf, 0x07, 0x79, 0xe3, 0x65, 0x0f, -0x81, 0x10, 0xb9, 0xf5, 0x7b, 0x1b, 0xb5, 0x93, 0x89, 0x94, 0x62, 0x37, 0x38, 0xec, 0xb2, 0x0c, -0xa9, 0x7f, 0xbb, 0xcc, 0x07, 0x8e, 0xf2, 0xeb, 0xd8, 0x43, 0xe5, 0x4a, 0x28, 0x23, 0x2f, 0xd9, -0x1e, 0x5b, 0x45, 0x43, 0x64, 0x53, 0xc5, 0xdf, 0x23, 0x1f, 0xb2, 0x7a, 0x42, 0x60, 0x0f, 0x3f, -0x0b, 0xd6, 0x18, 0xf2, 0x6e, 0xf0, 0xdd, 0x8e, 0xb9, 0xb0, 0x3c, 0xbd, 0xe2, 0xa1, 0xf3, 0x13, -0xf4, 0xd6, 0xd6, 0x8d, 0xc2, 0xef, 0x61, 0x39, 0x96, 0xa8, 0x2c, 0x07, 0x3b, 0x7b, 0xe0, 0xeb, -0x08, 0x6f, 0x01, 0x57, 0x6c, 0x91, 0xb2, 0x04, 0xca, 0xf6, 0xef, 0xdd, 0xbf, 0x97, 0xc3, 0xc8, -0xeb, 0x91, 0x39, 0xf3, 0x16, 0x88, 0x17, 0x6d, 0xdb, 0xd4, 0x61, 0xc4, 0x74, 0x2d, 0xd1, 0x1a, -0xe7, 0x74, 0xb0, 0xc4, 0xbc, 0x8e, 0x80, 0xb2, 0x94, 0x4f, 0xcf, 0x81, 0x98, 0xd3, 0x6c, 0x07, -0x7d, 0x6c, 0xf2, 0x6a, 0xa8, 0x71, 0x81, 0xf1, 0x8d, 0x21, 0x17, 0xc3, 0xe6, 0xce, 0x57, 0x1a, -0x1c, 0x01, 0x67, 0x63, 0x45, 0xd0, 0x93, 0x17, 0xd9, 0xc4, 0x67, 0x65, 0xd7, 0xb3, 0x9f, 0x8a, -0x1d, 0xec, 0x8f, 0x96, 0xbd, 0xd5, 0x82, 0x03, 0xf1, 0xb2, 0x22, 0xf5, 0x16, 0x61, 0xa2, 0xb6, -0xec, 0xdb, 0xfd, 0xa0, 0x4f, 0xbd, 0xc7, 0xbf, 0x1f, 0xde, 0xf7, 0x4a, 0xc6, 0xc7, 0xc4, 0x9b, -0xd3, 0x7d, 0xa9, 0x53, 0xfe, 0x0f, 0x53, 0x9f, 0x4c, 0x0f, 0xa5, 0xce, 0x05, 0x9e, 0x4e, 0x7d, -0x86, 0xcf, 0x9f, 0xe1, 0xf3, 0x27, 0x98, 0xd2, 0x94, 0x7a, 0x01, 0xdf, 0xde, 0xc2, 0xb7, 0x3d, -0xd7, 0xf7, 0x83, 0x23, 0xb5, 0xd7, 0x8f, 0xfd, 0x9f, 0xa8, 0x8d, 0x4b, 0x0d, 0x1f, 0xa6, 0x9e, -0xcb, 0xfa, 0x70, 0x4d, 0x06, 0xb5, 0x2f, 0xc6, 0xbb, 0x30, 0x55, 0x5e, 0xea, 0x00, 0xd6, 0x5c, -0x25, 0xbe, 0xfc, 0xfe, 0xee, 0x50, 0xeb, 0x46, 0x2c, 0xff, 0x8d, 0x6c, 0xc8, 0xac, 0xe2, 0xd6, -0x8d, 0x4e, 0x38, 0x98, 0x38, 0x38, 0xe8, 0x90, 0x3f, 0xb8, 0xf3, 0xde, 0xc1, 0x03, 0x09, 0x45, -0x1a, 0x19, 0x18, 0x49, 0x8c, 0x0c, 0x7c, 0x30, 0x84, 0x29, 0xdf, 0x64, 0xff, 0x03, 0xe9, 0x72, -0x5f, 0xa3, 0x7a, 0x32, 0x6f, 0xb5, 0xe3, 0xde, 0x66, 0x39, 0x67, 0xa4, 0x9e, 0xaa, 0x58, 0x21, -0x7c, 0x3e, 0x68, 0xa7, 0x12, 0x78, 0xe3, 0x55, 0x53, 0x7d, 0xd0, 0x4e, 0x54, 0x9a, 0x68, 0x0c, -0xe4, 0x9c, 0x02, 0xca, 0xfe, 0xe1, 0xec, 0x95, 0xf5, 0xdb, 0x74, 0x09, 0x4b, 0xd6, 0x97, 0x04, -0x4c, 0x07, 0xec, 0xeb, 0xa9, 0x73, 0xc0, 0xc1, 0x39, 0x6e, 0xcc, 0xfa, 0x0b, 0xaa, 0x10, 0xa3, -0xe0, 0x8c, 0x52, 0x9f, 0x10, 0x69, 0xcf, 0xf1, 0xfb, 0x31, 0xc5, 0xe7, 0x6a, 0x0d, 0x04, 0xc8, -0x73, 0x6c, 0xdd, 0xc1, 0x39, 0xe4, 0x6b, 0xf8, 0x51, 0x37, 0x3d, 0x27, 0x5c, 0xf5, 0x90, 0xdc, -0xd4, 0x51, 0x8e, 0xcf, 0x55, 0x77, 0xcd, 0x3d, 0x97, 0x5c, 0xa3, 0x02, 0x6c, 0x2b, 0xef, 0x02, -0x3a, 0xe7, 0x96, 0x7d, 0xd1, 0x25, 0x96, 0x7b, 0xf2, 0xc9, 0x5b, 0xac, 0x86, 0x27, 0x67, 0x88, -0xbe, 0xee, 0x6f, 0xa0, 0x7e, 0xe3, 0x72, 0x07, 0xf9, 0x0c, 0x8c, 0xc4, 0x9f, 0xef, 0xa4, 0xd3, -0xdd, 0x42, 0xf1, 0x21, 0x88, 0x3c, 0xa0, 0x46, 0x39, 0xdf, 0x6a, 0x4f, 0x7e, 0xe4, 0x7e, 0xf6, -0xa3, 0x7a, 0x13, 0xbf, 0xff, 0x28, 0xfd, 0x1e, 0x35, 0xda, 0xeb, 0x41, 0x56, 0xd9, 0x03, 0x53, -0x62, 0x43, 0x26, 0xd4, 0x82, 0xa1, 0xfa, 0x81, 0xad, 0x60, 0x53, 0x2b, 0xe8, 0x8c, 0x33, 0x8e, -0x7d, 0x10, 0xeb, 0x6e, 0xcc, 0xd4, 0x5d, 0x3c, 0xfb, 0x03, 0xc8, 0xc7, 0x36, 0x17, 0x79, 0x2c, -0x4a, 0x90, 0x20, 0xa0, 0xb3, 0x69, 0x5d, 0xf3, 0xc3, 0x9b, 0xc9, 0xab, 0xac, 0x2a, 0x07, 0x02, -0xc2, 0x43, 0xdf, 0x3d, 0x8f, 0x78, 0x03, 0x1e, 0xb3, 0x78, 0xfe, 0x49, 0x51, 0x60, 0x2b, 0x94, -0x3b, 0xc2, 0x59, 0xaf, 0x38, 0x54, 0x16, 0x79, 0x60, 0xbf, 0x83, 0xb0, 0x90, 0x7c, 0xe4, 0xb1, -0xe6, 0x73, 0x63, 0xeb, 0xc9, 0xdb, 0xe0, 0xa3, 0x07, 0x31, 0xc7, 0x03, 0xd8, 0x2a, 0x4c, 0xcf, -0xa7, 0x70, 0xdd, 0x8f, 0xfd, 0x51, 0xde, 0xbe, 0xb1, 0x17, 0x3c, 0x6e, 0x68, 0x8f, 0x6c, 0x56, -0xdc, 0xf4, 0x16, 0xc3, 0x72, 0xd9, 0x37, 0xf3, 0xc6, 0x83, 0x5b, 0xa1, 0xdd, 0x4a, 0x1e, 0x3e, -0xef, 0x5f, 0xfc, 0xb2, 0x7a, 0x38, 0xed, 0xbb, 0xd7, 0xbd, 0x12, 0xaa, 0x95, 0x15, 0xe0, 0xc0, -0x31, 0x12, 0xee, 0xa3, 0xd3, 0x3f, 0xd6, 0x29, 0xad, 0xec, 0x69, 0xef, 0xb3, 0x35, 0xa0, 0x82, -0xbc, 0x01, 0xa9, 0xdb, 0xa1, 0x04, 0x9c, 0x18, 0x1b, 0xbe, 0x57, 0xf3, 0x06, 0x6d, 0xd9, 0x9d, -0x70, 0xfa, 0xad, 0x6e, 0x3a, 0x91, 0x3a, 0x0a, 0xf2, 0x2c, 0xab, 0x9b, 0x3c, 0x08, 0xc7, 0x40, -0xae, 0x56, 0x96, 0x69, 0xa3, 0x10, 0x64, 0xd7, 0xb8, 0x11, 0x08, 0xd2, 0x61, 0x4f, 0x2b, 0x54, -0x54, 0xba, 0x40, 0x3f, 0x6e, 0x2c, 0x82, 0xb4, 0x47, 0xb1, 0xf7, 0xa4, 0x9a, 0xa4, 0xdd, 0xe4, -0x5f, 0xe3, 0xf9, 0xa2, 0x7a, 0x28, 0xda, 0x9e, 0xe8, 0x00, 0xe9, 0x19, 0x0f, 0xa6, 0xc4, 0xab, -0x85, 0xe9, 0xba, 0xa3, 0x75, 0xe3, 0x48, 0x82, 0xfc, 0x5a, 0x63, 0xfa, 0xcd, 0x08, 0x93, 0x39, -0xeb, 0xdd, 0xa5, 0x82, 0xca, 0x68, 0x57, 0x7c, 0xf1, 0x8c, 0xc7, 0xcd, 0xb1, 0x1e, 0xc1, 0x55, -0xa5, 0x2a, 0x65, 0xf6, 0xfe, 0x5f, 0xf9, 0x4f, 0x0f, 0x49, 0xe4, 0x53, 0xc0, 0x31, 0x27, 0x77, -0x04, 0xb1, 0x37, 0x0f, 0xf2, 0xf6, 0xea, 0xbc, 0xaa, 0x05, 0x5c, 0x81, 0x27, 0xa1, 0xe2, 0x5a, -0xf2, 0x26, 0x5b, 0x96, 0xe3, 0x8b, 0xa8, 0x36, 0x3c, 0x1d, 0xae, 0x88, 0x95, 0xab, 0x1d, 0x8e, -0xde, 0x3e, 0xb0, 0xfa, 0x91, 0x27, 0x18, 0x2b, 0xf3, 0x1c, 0x21, 0x55, 0xbe, 0x0d, 0xb0, 0xdc, -0xe1, 0x6d, 0x43, 0xb7, 0xc8, 0x6d, 0x89, 0x91, 0x3b, 0xda, 0xfd, 0x4a, 0xb3, 0x6a, 0x0c, 0xf8, -0x7f, 0xb2, 0x37, 0x0e, 0xb7, 0xc1, 0x2c, 0xe9, 0xb9, 0x3b, 0x16, 0xbf, 0xd6, 0x94, 0xf8, 0x97, -0xe1, 0x68, 0x05, 0x53, 0xf9, 0xcf, 0xb2, 0x54, 0x8e, 0x30, 0x95, 0x3a, 0x8a, 0x1d, 0x3e, 0xe4, -0x34, 0x45, 0xaa, 0x65, 0xfb, 0x16, 0x3a, 0xc7, 0x4e, 0x5a, 0xa0, 0xf8, 0x14, 0x7b, 0xf4, 0x93, -0x5e, 0x50, 0x23, 0xe3, 0xf0, 0x55, 0x3a, 0x0e, 0x4b, 0x96, 0x78, 0x21, 0x72, 0x2c, 0xfd, 0x14, -0x3f, 0xf8, 0x94, 0x16, 0x45, 0x87, 0x52, 0x04, 0xcc, 0x59, 0x1c, 0xdc, 0xe6, 0x91, 0x91, 0xb3, -0x77, 0x09, 0x3f, 0x90, 0xeb, 0x82, 0xc2, 0x23, 0x0e, 0xb6, 0x27, 0x0f, 0xca, 0xb0, 0x65, 0xce, -0xdc, 0x36, 0xe5, 0x3c, 0xcf, 0x62, 0xef, 0xb1, 0x59, 0xaf, 0x2e, 0x5d, 0xfc, 0xde, 0x94, 0x79, -0x57, 0xe9, 0xdd, 0x81, 0xb5, 0x65, 0xf9, 0x79, 0x78, 0x30, 0xd6, 0x1a, 0x87, 0x9f, 0xec, 0x15, -0x21, 0x69, 0x8f, 0x1c, 0x6a, 0xbd, 0xa0, 0xdb, 0x75, 0x0f, 0x72, 0x8b, 0x9f, 0xcf, 0xa4, 0x7f, -0xd4, 0x09, 0xed, 0x1b, 0x35, 0x3e, 0x90, 0xe3, 0x99, 0xc7, 0x11, 0xc8, 0xf1, 0x47, 0xfd, 0xd0, -0x78, 0xef, 0xa8, 0x44, 0x87, 0x0d, 0xc7, 0x21, 0xe2, 0xbc, 0x73, 0xea, 0x12, 0x68, 0x43, 0x99, -0x80, 0xbf, 0x8e, 0x0d, 0x53, 0xc2, 0xd0, 0xd6, 0x76, 0xfb, 0xf3, 0xb7, 0x77, 0xc3, 0x58, 0x6f, -0xfc, 0x3b, 0x4d, 0x90, 0xf6, 0x86, 0xac, 0xe8, 0x7a, 0xe4, 0xf1, 0xfe, 0x0d, 0xa3, 0x30, 0xf6, -0x9e, 0xfa, 0x54, 0x9a, 0x0a, 0xa3, 0x90, 0x7c, 0x4a, 0x85, 0xe4, 0x6b, 0x91, 0xef, 0x27, 0x8f, -0xd1, 0x29, 0x19, 0x95, 0x33, 0xb4, 0x13, 0xeb, 0x57, 0x80, 0xdd, 0xb5, 0x02, 0x8a, 0xcb, 0x67, -0x40, 0x29, 0x8e, 0x5b, 0x95, 0xf8, 0x76, 0xf2, 0x98, 0xe0, 0xdb, 0xc8, 0x93, 0x47, 0xa7, 0xf7, -0x93, 0x87, 0xbe, 0xd4, 0x71, 0xe4, 0xc6, 0xa3, 0xc8, 0x8d, 0x4f, 0x62, 0xd8, 0x69, 0x47, 0x4b, -0xe3, 0x87, 0xa9, 0xe3, 0xec, 0xe9, 0x6e, 0xbb, 0xa3, 0x85, 0xef, 0x9b, 0x15, 0x1f, 0x7b, 0x48, -0x93, 0x5b, 0x87, 0x1c, 0xf6, 0x98, 0x95, 0x3d, 0xf1, 0x39, 0xa2, 0x9f, 0x20, 0x7d, 0xee, 0xe0, -0x12, 0x94, 0xd4, 0x0e, 0x2c, 0xe1, 0x0c, 0x96, 0xf0, 0x3c, 0xbf, 0xcb, 0xa9, 0x5d, 0xfe, 0x0f, -0x93, 0xf4, 0x3e, 0x8c, 0x25, 0xee, 0x71, 0x34, 0x60, 0x89, 0x3b, 0xb8, 0xa4, 0xc7, 0xe3, 0x12, -0x72, 0xe3, 0xb3, 0x28, 0xc3, 0xf4, 0x7c, 0xda, 0xa4, 0x84, 0xf9, 0x36, 0xf7, 0x81, 0xfd, 0x5b, -0xa8, 0x5e, 0x54, 0xc6, 0x26, 0x87, 0x21, 0x36, 0xa9, 0x08, 0xad, 0xec, 0xd4, 0x7f, 0xb5, 0x4a, -0xf0, 0xad, 0xc5, 0x7a, 0x94, 0x9b, 0x6f, 0xdb, 0x87, 0xdb, 0xd6, 0xc5, 0x27, 0x6d, 0x5b, 0x17, -0x7d, 0xd3, 0x7d, 0x69, 0x3c, 0x6f, 0xdb, 0xed, 0x1d, 0xd4, 0x12, 0x8b, 0xc7, 0x90, 0x96, 0x03, -0x46, 0x00, 0xef, 0xb7, 0x13, 0xa1, 0xcd, 0x6d, 0xeb, 0xb2, 0xe1, 0x24, 0x0d, 0xd2, 0xe1, 0xdf, -0xde, 0x05, 0xad, 0xa1, 0xfb, 0xdd, 0xfa, 0xf9, 0xb7, 0x2b, 0x5d, 0x30, 0x29, 0xae, 0xdb, 0xb6, -0x29, 0xaa, 0x6f, 0x7f, 0x3a, 0x75, 0xc6, 0xb9, 0x22, 0x75, 0xc6, 0x7f, 0x02, 0xf2, 0x50, 0x46, -0x0e, 0x75, 0x4c, 0xe2, 0xbc, 0x16, 0x2e, 0xf3, 0x58, 0x3a, 0x6f, 0xfb, 0x66, 0xb7, 0x7e, 0xc1, -0xed, 0xd9, 0x98, 0x59, 0xc1, 0x6c, 0x4c, 0xe0, 0x9a, 0xf6, 0xfb, 0x91, 0x56, 0x9f, 0x4e, 0x9e, -0xc1, 0x31, 0x7c, 0x2a, 0xfc, 0x74, 0xaa, 0x9a, 0x4e, 0xa4, 0x41, 0x2e, 0x29, 0x6d, 0x43, 0xbc, -0xc6, 0x9c, 0xd8, 0x42, 0xa6, 0x6a, 0x0c, 0xb1, 0x22, 0x45, 0x17, 0x4f, 0x5f, 0x02, 0xd5, 0x29, -0x17, 0xbe, 0x15, 0x90, 0x44, 0xc6, 0xb7, 0xda, 0x54, 0x45, 0x5c, 0x1a, 0x78, 0x3a, 0xe5, 0x24, -0x0c, 0x4c, 0x0f, 0x25, 0x8f, 0x09, 0x9c, 0xd0, 0x28, 0xc6, 0xb7, 0xe3, 0xd3, 0xe7, 0x25, 0x4f, -0x4e, 0x5f, 0x0e, 0xd6, 0xe4, 0x69, 0x0d, 0xa3, 0x23, 0x98, 0x2e, 0x88, 0x18, 0x3d, 0x88, 0x18, -0x3d, 0xa4, 0x34, 0x94, 0x2f, 0x01, 0xdb, 0x6a, 0x40, 0xf9, 0x80, 0x3c, 0x43, 0xc5, 0x31, 0x8f, -0x18, 0x1e, 0x11, 0x18, 0xf6, 0xcc, 0x48, 0x2d, 0xc1, 0xab, 0x55, 0x70, 0xe1, 0xca, 0xa7, 0x53, -0xed, 0x1e, 0xa0, 0xe7, 0xd6, 0x8d, 0x6f, 0x24, 0xca, 0x97, 0x83, 0x2d, 0xfc, 0x24, 0xd8, 0xa2, -0xaf, 0x61, 0x0a, 0x33, 0x5e, 0x90, 0xe6, 0x3a, 0x2e, 0xe0, 0xb3, 0x88, 0x35, 0xdc, 0x31, 0xd7, -0x28, 0x65, 0xaf, 0x24, 0x1a, 0x96, 0xf7, 0x3f, 0x9d, 0x2a, 0xc5, 0xab, 0x2c, 0x40, 0x7d, 0xb9, -0x99, 0x24, 0x95, 0x90, 0x51, 0xd7, 0xed, 0x99, 0x4b, 0xde, 0xb9, 0x7b, 0x95, 0xd9, 0x08, 0x51, -0x38, 0x10, 0x54, 0x83, 0xc8, 0xff, 0x51, 0x43, 0xc1, 0x51, 0xed, 0xda, 0xbf, 0x17, 0x65, 0x8e, -0x94, 0xf1, 0x66, 0xee, 0x0a, 0x37, 0x44, 0x85, 0x5c, 0xd9, 0x43, 0xdc, 0xbc, 0x75, 0x63, 0x9f, -0x54, 0x82, 0xf8, 0x52, 0xed, 0x98, 0xa3, 0x91, 0x60, 0x6d, 0xbb, 0xc6, 0x7c, 0x5f, 0x9f, 0xb4, -0x5a, 0x2a, 0x9f, 0x17, 0xbe, 0x2f, 0xfa, 0x7c, 0x38, 0x18, 0xdd, 0xaa, 0xd1, 0xe7, 0xe1, 0xe9, -0x2b, 0x52, 0xd5, 0xa9, 0x23, 0xd8, 0xf2, 0x63, 0x4c, 0x9d, 0x87, 0xb9, 0xa5, 0x43, 0xe4, 0x05, -0xdc, 0xe1, 0xe3, 0xe7, 0xd5, 0x48, 0x6f, 0xc7, 0x2a, 0x66, 0xe3, 0x53, 0x9c, 0xcf, 0x54, 0xb8, -0x09, 0x7b, 0xe4, 0x6c, 0xcc, 0xa8, 0xcc, 0x48, 0x79, 0x55, 0x39, 0x9e, 0xe8, 0x91, 0x50, 0x33, -0xa1, 0xd8, 0xc3, 0xaa, 0x6f, 0xba, 0x9f, 0xa9, 0x75, 0xf3, 0xc5, 0xa8, 0x95, 0xdf, 0xaf, 0x4c, -0xed, 0xc1, 0xf8, 0xb3, 0xf8, 0xbe, 0x17, 0x6b, 0xdc, 0x97, 0x4b, 0xbd, 0x38, 0xc6, 0xac, 0x2d, -0x1f, 0x2e, 0x1c, 0x4d, 0xee, 0x12, 0xda, 0x41, 0xfd, 0xac, 0x72, 0x0f, 0xb8, 0x9c, 0xda, 0xf9, -0x14, 0x4e, 0xf2, 0x0d, 0xef, 0x81, 0x5a, 0x94, 0x68, 0x94, 0xfa, 0x0d, 0x6c, 0x73, 0x08, 0x47, -0xe8, 0x24, 0xc4, 0x8c, 0x7e, 0xce, 0xb9, 0xd4, 0x81, 0xe6, 0x73, 0xa3, 0xaa, 0x5a, 0xee, 0x31, -0x78, 0xf2, 0xb5, 0xf3, 0xb2, 0xee, 0x67, 0xcf, 0x3c, 0xbe, 0xa8, 0x9d, 0xce, 0x19, 0xd0, 0xc2, -0xc8, 0xf7, 0x6e, 0x31, 0x63, 0xe0, 0x0d, 0xad, 0x9c, 0x91, 0xcc, 0x39, 0x38, 0xf5, 0x42, 0x23, -0x41, 0x39, 0xe6, 0x65, 0x0e, 0xf4, 0xab, 0xb8, 0x9c, 0xd5, 0x45, 0x9c, 0x74, 0x76, 0xcd, 0x23, -0xc4, 0x57, 0x48, 0x82, 0x21, 0x6f, 0x09, 0x4f, 0x69, 0x86, 0xb6, 0xc0, 0x16, 0x88, 0x10, 0x9f, -0xc1, 0xe7, 0x30, 0xf6, 0x5a, 0xf2, 0x1e, 0xb7, 0xda, 0xe1, 0x22, 0x19, 0x88, 0x9c, 0x03, 0xf5, -0x42, 0x25, 0x1a, 0x42, 0xe8, 0xca, 0xfe, 0xfd, 0xd7, 0xff, 0xfe, 0xeb, 0xe7, 0x88, 0xff, 0xd6, -0x91, 0x3f, 0xfb, 0x58, 0xb5, 0xe3, 0x52, 0xf2, 0xe2, 0x4e, 0xe3, 0x93, 0x21, 0x38, 0x5a, 0x09, -0x31, 0xc5, 0x43, 0xe7, 0x3d, 0xe7, 0x23, 0x8c, 0x56, 0xea, 0xd1, 0x5a, 0x70, 0xcc, 0xe6, 0xb8, -0xc3, 0xdc, 0x86, 0x60, 0xd4, 0xea, 0x3f, 0x09, 0x61, 0x84, 0xb8, 0x81, 0xbc, 0xa6, 0x3b, 0x1b, -0xdd, 0x45, 0x42, 0xd7, 0x0d, 0xdf, 0x1e, 0xdd, 0xe4, 0x08, 0x70, 0xe8, 0x62, 0xe2, 0x66, 0xec, -0xbd, 0x8e, 0xce, 0x91, 0xa2, 0xf3, 0x51, 0x50, 0xbb, 0xad, 0x58, 0x09, 0xc5, 0xe4, 0x07, 0x5d, -0xf3, 0x6b, 0x87, 0x31, 0x5e, 0x0f, 0xd8, 0x42, 0xc3, 0x55, 0x1e, 0x28, 0x0a, 0xbd, 0xa8, 0xc5, -0xda, 0xb3, 0xb1, 0x0a, 0x9d, 0x88, 0xb0, 0x12, 0xec, 0x58, 0xde, 0x56, 0xed, 0xe4, 0x0b, 0xd2, -0x8a, 0xcb, 0xa8, 0x1f, 0x6a, 0x3d, 0x50, 0xee, 0x5c, 0x0e, 0x6e, 0xcf, 0x74, 0x98, 0x44, 0x67, -0x52, 0x0b, 0xcf, 0xc4, 0xa8, 0x21, 0x54, 0x45, 0x76, 0xa6, 0x76, 0x7b, 0xdd, 0x60, 0xae, 0x86, -0x9e, 0xc2, 0xa3, 0xcb, 0x0e, 0xfa, 0x8e, 0x06, 0x2a, 0x96, 0xc3, 0xa4, 0xb4, 0xd7, 0x2d, 0xc7, -0x32, 0xa8, 0x42, 0xad, 0xe9, 0x99, 0xd4, 0xab, 0x95, 0xf7, 0x78, 0x83, 0x1e, 0x73, 0x15, 0xf4, -0x15, 0x1e, 0x5f, 0x7a, 0xc0, 0x77, 0xd4, 0xbf, 0xd9, 0xcf, 0xda, 0x8a, 0x28, 0x61, 0x71, 0x3a, -0x3d, 0x9f, 0x1d, 0x82, 0xf9, 0xc1, 0x85, 0x9a, 0xbb, 0xd3, 0xd3, 0x80, 0x6f, 0x58, 0x02, 0x94, -0xa1, 0xae, 0x4c, 0x27, 0x9d, 0x29, 0x69, 0x0f, 0xa0, 0xe4, 0x8d, 0x8f, 0x60, 0x6b, 0xc0, 0xf4, -0x02, 0xe6, 0xac, 0x07, 0xd0, 0x5a, 0xd2, 0x2b, 0x9d, 0xa8, 0xcf, 0x14, 0x45, 0xcd, 0xf8, 0x5b, -0x12, 0x05, 0xd8, 0x9c, 0x3d, 0x77, 0x88, 0x4e, 0x2c, 0xe4, 0xd0, 0x49, 0x9c, 0xa2, 0x98, 0xc6, -0x56, 0xf8, 0xbe, 0xdc, 0x13, 0x2a, 0xd4, 0x36, 0x0a, 0x23, 0x5d, 0xf1, 0xba, 0x3d, 0xe4, 0x1f, -0xff, 0x9a, 0x5d, 0x6a, 0x7d, 0xc6, 0x32, 0xf0, 0x3a, 0x5d, 0x68, 0x19, 0xb8, 0x5d, 0x6e, 0xd4, -0xc6, 0xf4, 0x74, 0xaa, 0xfd, 0xc1, 0x41, 0xf2, 0x84, 0xd5, 0x03, 0x45, 0x74, 0x06, 0x5a, 0x11, -0x9d, 0x87, 0x12, 0x5a, 0x02, 0x12, 0xd3, 0x1a, 0x59, 0x4f, 0xc6, 0xf2, 0x86, 0xf2, 0x4b, 0xa3, -0xc3, 0xd9, 0xd3, 0x8b, 0x50, 0x8f, 0x2b, 0x41, 0xdd, 0xac, 0x08, 0x7b, 0xac, 0x8c, 0x3c, 0x9f, -0x25, 0xcf, 0x0a, 0x4d, 0x58, 0xaa, 0xad, 0xf6, 0x48, 0xb3, 0x10, 0xd6, 0x57, 0x89, 0xfe, 0x06, -0xe6, 0x8c, 0x93, 0xf9, 0x93, 0xe8, 0x74, 0xc0, 0x23, 0x12, 0xf9, 0xe6, 0x8c, 0xda, 0xf8, 0xcc, -0xc2, 0x12, 0x33, 0xf9, 0xb6, 0x06, 0x78, 0x38, 0xab, 0xc5, 0xd0, 0x09, 0x4b, 0x79, 0xbd, 0x17, -0xd1, 0x62, 0x3a, 0xc8, 0x06, 0x18, 0xf8, 0x2f, 0x71, 0xb8, 0x40, 0x7f, 0x99, 0x75, 0x2d, 0x9d, -0xe1, 0x50, 0x66, 0xaf, 0x4f, 0x3d, 0x3c, 0xb2, 0xf1, 0x2a, 0x1f, 0xb8, 0x7a, 0x94, 0xab, 0xfc, -0xe3, 0xa5, 0x3d, 0x69, 0x30, 0x51, 0x4b, 0x2f, 0x1d, 0xd1, 0xf9, 0x33, 0x39, 0x00, 0x52, 0xae, -0xf4, 0xcf, 0x95, 0xfc, 0x4a, 0x43, 0x56, 0xea, 0x87, 0x03, 0x31, 0x30, 0x9f, 0x10, 0x12, 0xfd, -0x91, 0x7b, 0x84, 0x3e, 0x89, 0x21, 0xaf, 0x29, 0xbe, 0x2a, 0x17, 0xd8, 0xac, 0x7e, 0x09, 0x56, -0xea, 0xe3, 0x0a, 0x72, 0x0f, 0xfb, 0xbd, 0xbe, 0x6b, 0xfc, 0xb0, 0xb0, 0x57, 0xa2, 0xf1, 0xf3, -0xf0, 0x88, 0xab, 0xd0, 0x48, 0x33, 0x3e, 0x0f, 0x5b, 0x03, 0xe4, 0xdb, 0x56, 0x42, 0x9d, 0x93, -0x4e, 0x16, 0x26, 0xbe, 0x36, 0xb0, 0x94, 0x6d, 0x48, 0x5b, 0xa8, 0x4f, 0x22, 0x19, 0x75, 0x03, -0x5e, 0x3b, 0x48, 0x7b, 0xfd, 0xa9, 0x2b, 0x72, 0x1f, 0x9d, 0x09, 0x49, 0x56, 0x62, 0xe5, 0x06, -0x3a, 0x0d, 0x97, 0x53, 0xff, 0xd0, 0xe1, 0xf3, 0x5c, 0x92, 0x93, 0x7e, 0x3e, 0xa5, 0xe7, 0x94, -0x75, 0x99, 0x94, 0x06, 0x4e, 0x79, 0x57, 0x85, 0xcf, 0x53, 0x92, 0x93, 0x72, 0x69, 0x26, 0xe5, -0xac, 0x4c, 0x4a, 0xb6, 0x5c, 0x07, 0xb6, 0x2a, 0x3e, 0x8f, 0x3d, 0x9d, 0xb2, 0x6a, 0x19, 0x2c, -0xf4, 0xe4, 0xe1, 0x9b, 0x9d, 0xd3, 0x56, 0x66, 0xd2, 0xf2, 0xd9, 0x35, 0x03, 0xcf, 0xe6, 0x96, -0xea, 0xa5, 0xb4, 0x68, 0xdb, 0x49, 0xed, 0x9c, 0xb6, 0x8a, 0x4e, 0xaa, 0x24, 0x3a, 0x17, 0xba, -0xab, 0x29, 0x88, 0x74, 0x58, 0x87, 0xf7, 0x7a, 0xbc, 0xcf, 0xc2, 0x7b, 0x35, 0xde, 0x2b, 0xf1, -0x5e, 0x41, 0xde, 0xec, 0x54, 0x30, 0x39, 0x19, 0x0b, 0x46, 0x2e, 0xf7, 0x37, 0x59, 0x2c, 0x64, -0x21, 0xc8, 0xc1, 0x43, 0x20, 0x03, 0x87, 0x89, 0xd3, 0xef, 0xff, 0x0a, 0x38, 0x9a, 0x10, 0x8e, -0x40, 0x16, 0x0e, 0x23, 0xdb, 0x4b, 0xc6, 0x33, 0x74, 0xe6, 0x91, 0x71, 0x5b, 0x60, 0xa5, 0x04, -0x78, 0xc9, 0x98, 0xa6, 0xfc, 0x86, 0x25, 0x60, 0x95, 0xf4, 0xf8, 0x6b, 0x93, 0x8c, 0x01, 0x8f, -0x64, 0xbe, 0xa2, 0x1f, 0x24, 0x29, 0xcf, 0xd3, 0x0f, 0x0a, 0xf4, 0x49, 0x16, 0xbc, 0x43, 0x29, -0x48, 0x36, 0x8f, 0x4f, 0x2a, 0x0a, 0x3c, 0x2b, 0x95, 0xe0, 0x35, 0xc9, 0x13, 0x92, 0x26, 0xe3, -0xdd, 0x81, 0x25, 0x94, 0xe3, 0xe5, 0xc2, 0xcb, 0x8d, 0x57, 0xc5, 0x0d, 0xfd, 0x50, 0x28, 0x55, -0xfa, 0x3f, 0x92, 0xa0, 0x62, 0x19, 0x4c, 0xa6, 0x73, 0xbd, 0x10, 0x0e, 0x37, 0xd6, 0xe7, 0x25, -0xcf, 0x83, 0x89, 0xdf, 0x63, 0xbf, 0xeb, 0x62, 0x93, 0xf9, 0xf9, 0x7d, 0x7c, 0xd6, 0xc7, 0x8a, -0xe8, 0x79, 0xe0, 0x12, 0x7c, 0x96, 0xa3, 0x46, 0x7e, 0xd6, 0x8b, 0x33, 0x94, 0x09, 0xd3, 0xe4, -0x63, 0xee, 0x3c, 0x9f, 0x30, 0xc3, 0xf1, 0xa0, 0x73, 0x55, 0xba, 0x91, 0x43, 0xb9, 0x81, 0x34, -0x0e, 0xc9, 0x31, 0xdb, 0x33, 0x8d, 0x78, 0xcb, 0x79, 0x27, 0x8f, 0xa7, 0x43, 0xd9, 0xf1, 0xe4, -0x21, 0x5f, 0x7e, 0xc8, 0x05, 0xdc, 0x2e, 0x08, 0xd3, 0x28, 0x45, 0xa8, 0xaa, 0xa0, 0xd2, 0xdd, -0x58, 0x27, 0xbb, 0xc2, 0xa8, 0x77, 0x1d, 0x42, 0x3e, 0x6f, 0xc7, 0x51, 0x5e, 0x56, 0xbf, 0x12, -0x2a, 0x3d, 0x11, 0xf0, 0x56, 0x75, 0xc1, 0xc2, 0x86, 0xf7, 0x53, 0x27, 0x7f, 0xf1, 0xda, 0x4a, -0xd0, 0xd7, 0x1e, 0x1c, 0x3c, 0x38, 0x88, 0x96, 0xc9, 0x36, 0x47, 0xc0, 0x41, 0x27, 0x79, 0x83, -0xfc, 0xb8, 0x73, 0x29, 0x98, 0xe3, 0x1d, 0xdb, 0x36, 0x74, 0x94, 0xfc, 0xee, 0xd5, 0xdf, 0xbd, -0xba, 0xda, 0xf6, 0xdc, 0xbd, 0xdf, 0x67, 0x6e, 0x52, 0x6e, 0x79, 0x39, 0xe1, 0x6c, 0x50, 0xe5, -0xfb, 0x5f, 0x75, 0x04, 0x94, 0x4b, 0x1c, 0xfe, 0xd7, 0x5f, 0x9c, 0xfb, 0xf1, 0x83, 0x52, 0xd1, -0x0c, 0xc8, 0x2b, 0x91, 0x42, 0x6b, 0x6b, 0x1a, 0x84, 0x1c, 0x27, 0x49, 0x60, 0x9d, 0xc1, 0x56, -0x50, 0x89, 0x55, 0x4a, 0x25, 0x62, 0xf6, 0xff, 0x79, 0x12, 0x4a, 0xe8, 0x14, 0x0d, 0x6f, 0x3f, -0xb8, 0x37, 0xbd, 0xa8, 0xea, 0xf1, 0x8e, 0xac, 0x99, 0xfd, 0xc9, 0x91, 0x3f, 0xf3, 0x95, 0xd0, -0x82, 0x54, 0x40, 0xbd, 0x7b, 0xd2, 0xc3, 0x72, 0x20, 0xb2, 0xf3, 0xdc, 0x09, 0xea, 0xc7, 0xca, -0xa7, 0x90, 0xef, 0x7a, 0xa0, 0x1a, 0x5b, 0x5f, 0x5c, 0x31, 0xdb, 0x53, 0x49, 0xad, 0x3f, 0x47, -0xe9, 0x43, 0x82, 0xb7, 0x72, 0x3c, 0xe0, 0x7b, 0xab, 0x88, 0xfb, 0xe2, 0x40, 0x2e, 0xef, 0xa0, -0x12, 0x90, 0x9f, 0xfc, 0xec, 0x22, 0xfc, 0x63, 0x0d, 0xcf, 0x6c, 0x68, 0x1a, 0x14, 0xb6, 0x64, -0x4e, 0x45, 0xc0, 0x51, 0x99, 0x3e, 0x3d, 0x47, 0xe3, 0x24, 0x01, 0xe4, 0x24, 0x36, 0xe2, 0x24, -0x20, 0x21, 0x1f, 0x51, 0x2e, 0xe0, 0x20, 0x56, 0xd4, 0x8d, 0x94, 0x1b, 0x77, 0x87, 0x06, 0x83, -0x01, 0xb2, 0x58, 0x73, 0xb9, 0xc8, 0x0d, 0x74, 0xe6, 0x52, 0x05, 0xda, 0x3f, 0x81, 0x00, 0x9d, -0xbf, 0x95, 0x6b, 0x4d, 0xa4, 0xc3, 0x72, 0x78, 0x4b, 0x3a, 0x6c, 0x07, 0x53, 0x2d, 0x1c, 0x22, -0x5e, 0x03, 0x07, 0xca, 0xdd, 0xd8, 0xa7, 0xc1, 0x78, 0xa9, 0x53, 0x77, 0x64, 0x6b, 0x91, 0x6c, -0x1f, 0xb4, 0xca, 0x60, 0xee, 0x26, 0xbf, 0x0b, 0x5e, 0xfb, 0x80, 0x4a, 0x9b, 0xdb, 0xae, 0xe8, -0xd6, 0xdb, 0x77, 0x41, 0xe5, 0xf7, 0x12, 0x6d, 0x43, 0x3d, 0x67, 0xe9, 0xdc, 0xa2, 0x80, 0x07, -0x1e, 0x25, 0xdf, 0xe0, 0xdf, 0xed, 0x40, 0x8a, 0xb1, 0xe2, 0x55, 0x4c, 0xd6, 0x2d, 0xf9, 0xa9, -0x6e, 0x1b, 0xb8, 0x77, 0x2b, 0xca, 0x1e, 0x49, 0xd8, 0xbb, 0x18, 0xa2, 0xb7, 0xd2, 0x57, 0x5e, -0x89, 0xc5, 0xfa, 0xa3, 0x43, 0xaa, 0xe5, 0xc8, 0x9d, 0xe9, 0x98, 0xf0, 0xb3, 0x50, 0x1d, 0x73, -0x38, 0xc8, 0xf2, 0x25, 0x6b, 0xac, 0xa8, 0x02, 0x47, 0xc8, 0xff, 0x3a, 0x01, 0xbe, 0xa8, 0xd1, -0xe1, 0x22, 0xeb, 0x4c, 0xf1, 0x3b, 0xec, 0xd1, 0x13, 0xaa, 0xdc, 0x83, 0xfa, 0xdf, 0x0d, 0x52, -0x20, 0x46, 0xa7, 0x15, 0x62, 0x5e, 0x84, 0x14, 0x65, 0x44, 0xb6, 0x17, 0x53, 0xe9, 0x5e, 0xfc, -0xc2, 0x89, 0x7d, 0xe0, 0x5c, 0x5d, 0xfb, 0xc6, 0x46, 0xb5, 0x84, 0xbc, 0x6f, 0x0e, 0x54, 0x84, -0xb1, 0x9d, 0x31, 0x4b, 0x38, 0x10, 0xad, 0xe3, 0x77, 0x9f, 0xa7, 0x22, 0xdd, 0xc3, 0x52, 0xbf, -0x32, 0x1b, 0x2d, 0x5b, 0xec, 0xc5, 0xb3, 0xe5, 0x69, 0xd9, 0x29, 0xfa, 0xd7, 0xa3, 0x4b, 0x53, -0xfe, 0xe7, 0x9f, 0x50, 0x9f, 0x1a, 0xe9, 0x24, 0x9e, 0x4a, 0xf7, 0xf7, 0xc3, 0xf7, 0xa3, 0x5d, -0x53, 0xae, 0x82, 0xb4, 0x9a, 0x46, 0x16, 0xe9, 0xa0, 0xae, 0x65, 0xe0, 0xc6, 0x11, 0xe3, 0x48, -0x8f, 0x18, 0x2c, 0x9d, 0x72, 0x9d, 0xa1, 0x31, 0xb1, 0x5a, 0x5a, 0x53, 0xf5, 0xcf, 0xaf, 0xcd, -0x39, 0x77, 0x76, 0xd3, 0x6c, 0xd6, 0x41, 0x55, 0x3a, 0x0d, 0xad, 0x1b, 0xe8, 0x8c, 0x24, 0x27, -0x52, 0x4f, 0x09, 0xca, 0xbb, 0x4a, 0xb8, 0xc4, 0x23, 0x55, 0x55, 0xa2, 0x60, 0x40, 0x7c, 0x84, -0xe2, 0xe6, 0x14, 0x4a, 0x73, 0x9d, 0x47, 0x2f, 0x5a, 0x35, 0x78, 0x99, 0xd6, 0xaa, 0xfb, 0xe3, -0x60, 0xaf, 0x04, 0x7b, 0xcf, 0x0d, 0x4d, 0xd2, 0xf0, 0x00, 0x9d, 0xd9, 0x45, 0x1e, 0xd1, 0x21, -0x21, 0xce, 0x11, 0x18, 0x9c, 0xa5, 0x96, 0xf0, 0xfb, 0xb0, 0xf6, 0x1e, 0x50, 0x99, 0xcf, 0x0d, -0x36, 0xa1, 0x6c, 0xa5, 0xd3, 0x19, 0x2a, 0xd1, 0x9e, 0x43, 0xab, 0x88, 0xc3, 0xc2, 0x99, 0x30, -0x43, 0x26, 0xec, 0x6f, 0x44, 0x18, 0xb5, 0xc0, 0xdb, 0x48, 0xbc, 0x0d, 0xa1, 0x11, 0xad, 0xb0, -0x63, 0x8c, 0xc0, 0xca, 0x56, 0xc6, 0x8a, 0x5e, 0x84, 0x7f, 0xf6, 0x96, 0xb1, 0x11, 0xec, 0x6d, -0x6b, 0x09, 0x33, 0x4a, 0x24, 0x9e, 0xea, 0x49, 0xb1, 0xee, 0xfa, 0x7c, 0x05, 0xdb, 0x7d, 0xa9, -0xc9, 0xea, 0x4d, 0x2c, 0x7b, 0xe6, 0x23, 0x7f, 0x9a, 0x14, 0x07, 0x6f, 0x25, 0xbc, 0xd6, 0x63, -0x18, 0x1e, 0x88, 0x05, 0x71, 0x0c, 0x56, 0xec, 0x3f, 0x01, 0xe5, 0xa8, 0x67, 0x1c, 0x5f, 0x9d, -0x7a, 0x8e, 0xcf, 0xe3, 0xb4, 0x03, 0xc2, 0x2e, 0xd9, 0x21, 0x66, 0xc6, 0xbb, 0x6c, 0x87, 0xe8, -0x64, 0x86, 0x89, 0x64, 0xcd, 0x64, 0xc6, 0x27, 0xf2, 0xa7, 0xcf, 0x76, 0xf1, 0xd9, 0x98, 0xfa, -0x6a, 0x83, 0xb3, 0x85, 0xf0, 0x3d, 0x87, 0xcf, 0x90, 0x43, 0x6b, 0x69, 0x81, 0xe0, 0xba, 0x30, -0x9a, 0x19, 0x07, 0x89, 0xd5, 0x29, 0xc4, 0x32, 0x79, 0x15, 0x2e, 0xc6, 0xf2, 0x14, 0xb4, 0x3c, -0x6f, 0xf2, 0x4e, 0x87, 0x52, 0xab, 0x0f, 0xbe, 0x4d, 0xa7, 0x0c, 0x55, 0x81, 0xd1, 0x9f, 0xfa, -0xad, 0xd5, 0x0f, 0xf2, 0x62, 0x4b, 0x0d, 0x18, 0x1b, 0x52, 0xfb, 0x31, 0xf5, 0xbd, 0x17, 0xd1, -0x15, 0x48, 0xc3, 0x99, 0x64, 0x59, 0x82, 0x58, 0x7a, 0x8d, 0x9e, 0xcc, 0x2e, 0x90, 0xe1, 0xb7, -0x31, 0x96, 0xb7, 0x01, 0x1f, 0x9d, 0xd6, 0xfe, 0xf1, 0x61, 0xb5, 0x9d, 0x4f, 0x80, 0x6d, 0x43, -0xad, 0xa6, 0xcc, 0xeb, 0x82, 0xf2, 0x79, 0x3e, 0xac, 0xc5, 0xb4, 0x38, 0x40, 0x27, 0xc9, 0xa4, -0x52, 0x23, 0x09, 0xef, 0xf5, 0x66, 0x63, 0xe4, 0x3c, 0xe6, 0xb3, 0xa3, 0x26, 0xe6, 0x84, 0x0a, -0x70, 0x81, 0x97, 0xfe, 0x56, 0x27, 0x7f, 0xb5, 0x15, 0x6d, 0x23, 0x83, 0x5a, 0x8a, 0xf6, 0x15, -0x3d, 0x19, 0x55, 0xdb, 0x6a, 0x59, 0xb5, 0xac, 0xd6, 0xab, 0xc6, 0xd5, 0x3a, 0x55, 0x5e, 0x9d, -0xab, 0x1d, 0xac, 0xa7, 0x56, 0x66, 0xde, 0xee, 0x2a, 0x17, 0x18, 0x76, 0x58, 0x1b, 0x52, 0xa9, -0x18, 0x24, 0x93, 0x6a, 0x39, 0x63, 0xeb, 0x6e, 0xa2, 0x90, 0x4c, 0xaa, 0xdd, 0xed, 0x1b, 0xd1, -0x0e, 0x38, 0xea, 0xf0, 0x7d, 0x59, 0x29, 0x58, 0xc6, 0x51, 0xac, 0x27, 0x85, 0x2d, 0x73, 0x6b, -0x32, 0xe4, 0x79, 0x7a, 0xe7, 0x5e, 0xab, 0x45, 0x4d, 0xdf, 0x0d, 0x95, 0xa4, 0x43, 0xf3, 0x53, -0x95, 0xa3, 0x29, 0xf2, 0x13, 0x7e, 0xaa, 0xa9, 0x68, 0x8a, 0x3c, 0xc0, 0x4f, 0x75, 0x91, 0x07, -0x84, 0x8c, 0xc4, 0xe7, 0x59, 0x64, 0x29, 0xa9, 0x93, 0x56, 0xa7, 0x38, 0x26, 0x90, 0xc9, 0xd7, -0x44, 0xf9, 0xa8, 0xdf, 0xaa, 0x75, 0x7f, 0xdb, 0x60, 0x6d, 0x00, 0x69, 0x31, 0x7c, 0xde, 0xcd, -0x31, 0xe5, 0xa4, 0xd1, 0xfc, 0x57, 0x33, 0xfb, 0x92, 0x4c, 0x35, 0x05, 0xe2, 0x85, 0x47, 0x96, -0x31, 0x37, 0x5b, 0x06, 0x25, 0x9e, 0x66, 0xc9, 0x1b, 0xab, 0xcc, 0xe8, 0x79, 0xfa, 0x86, 0x8f, -0xa4, 0x6a, 0xe5, 0xe6, 0x4b, 0xfa, 0x89, 0xb3, 0x5f, 0xc2, 0xa7, 0xb2, 0x21, 0x0d, 0x85, 0x91, -0x86, 0xb2, 0x67, 0x0d, 0xd8, 0x49, 0x0a, 0x4d, 0xa1, 0x73, 0xaa, 0x6a, 0xbd, 0x32, 0x7b, 0x1d, -0x1d, 0xfd, 0x9b, 0x8f, 0x24, 0x33, 0xfb, 0xc3, 0x7d, 0x94, 0xf4, 0x58, 0xb4, 0x7c, 0xee, 0x42, -0xed, 0x7b, 0x93, 0x6b, 0x25, 0x6c, 0xe6, 0xf3, 0xd4, 0x1f, 0xf1, 0xf4, 0x27, 0xc8, 0x21, 0x89, -0xe2, 0x59, 0x09, 0xeb, 0x70, 0x24, 0xd2, 0x9b, 0x0e, 0x75, 0xe5, 0x95, 0x30, 0x04, 0x15, 0xfc, -0x66, 0xe2, 0x13, 0xf6, 0xaa, 0xf9, 0xd9, 0x00, 0xb5, 0x9e, 0x20, 0xd4, 0xf3, 0x73, 0x3e, 0xf8, -0x02, 0xcf, 0x42, 0x90, 0x9f, 0xad, 0x10, 0xc2, 0xe7, 0x16, 0x7e, 0xbe, 0x02, 0xa5, 0x41, 0x0b, -0xcc, 0xe7, 0xe7, 0x3c, 0x68, 0xc7, 0x92, 0x1e, 0x44, 0x2d, 0x81, 0xde, 0xec, 0xa0, 0xa2, 0xa4, -0xec, 0xe0, 0xe7, 0xcb, 0x60, 0x49, 0x5c, 0xc2, 0xb7, 0x2e, 0x7e, 0x2b, 0x81, 0x38, 0x3e, 0xf7, -0x62, 0x19, 0x7d, 0x78, 0xf5, 0x23, 0xcf, 0x5f, 0x78, 0xe1, 0x9a, 0x04, 0xdb, 0x4c, 0x07, 0x9f, -0xe7, 0x93, 0x8c, 0x39, 0x6f, 0xab, 0xff, 0x03, 0x84, 0x31, 0x04, 0xc1, 0xc6, 0x0f, 0xb0, 0xee, -0x30, 0xb4, 0x5c, 0xdb, 0x00, 0xc6, 0x6b, 0x83, 0x60, 0xc5, 0xcb, 0x8e, 0x57, 0x31, 0xbe, 0x97, -0xe0, 0x35, 0xe9, 0x72, 0x92, 0x07, 0x4a, 0x60, 0x3a, 0x38, 0x2e, 0xa7, 0xf3, 0xa2, 0xae, 0x6c, -0xf8, 0x00, 0xec, 0x57, 0x35, 0x83, 0xf3, 0x72, 0x9a, 0x5d, 0xf3, 0x62, 0x78, 0x15, 0x87, 0xcf, -0xc4, 0xf2, 0xf4, 0x57, 0x85, 0xa0, 0x1a, 0xcb, 0x2b, 0xbb, 0x2a, 0x0c, 0xb5, 0x1c, 0xef, 0xc3, -0xf8, 0x00, 0xc7, 0x37, 0x60, 0x9e, 0x20, 0x97, 0xd5, 0x8a, 0x61, 0x6d, 0x1c, 0x36, 0x0f, 0xd3, -0xcf, 0xc7, 0x7c, 0xf5, 0x78, 0x6f, 0xff, 0xc9, 0x5e, 0x1a, 0x3d, 0x83, 0xff, 0xb3, 0x11, 0x79, -0x01, 0xda, 0x7d, 0x8f, 0x56, 0xac, 0x20, 0x7a, 0x1a, 0x5b, 0x57, 0x9e, 0x88, 0x59, 0xd8, 0x8b, -0x6f, 0xb1, 0x2b, 0x41, 0x9e, 0xc5, 0xe3, 0x0b, 0xb3, 0xb3, 0x57, 0xe2, 0xac, 0xa4, 0xfe, 0x32, -0xa4, 0x0e, 0x35, 0xeb, 0xbb, 0x9e, 0x65, 0x51, 0x99, 0xd2, 0x86, 0xb2, 0xc0, 0x5e, 0xb1, 0x94, -0x4b, 0xb9, 0xcd, 0x11, 0xce, 0xcd, 0x27, 0xfc, 0xd6, 0x63, 0xbf, 0xfe, 0x8c, 0x7d, 0x52, 0xaf, -0x84, 0x3e, 0xd4, 0xa7, 0x7f, 0x54, 0xe2, 0x81, 0xb5, 0x71, 0x29, 0xeb, 0x87, 0x1a, 0xb5, 0xa1, -0x49, 0x71, 0xdd, 0xb8, 0xf7, 0xc9, 0x31, 0x23, 0xea, 0x83, 0x93, 0xc4, 0x0c, 0x58, 0xae, 0x57, -0x65, 0xe2, 0x50, 0x1e, 0xb2, 0xa9, 0x8d, 0xd4, 0xc3, 0x68, 0x6a, 0x27, 0x50, 0xae, 0xd0, 0xbb, -0x89, 0x7a, 0x19, 0x4d, 0xfb, 0x23, 0x10, 0xe2, 0x77, 0x33, 0xb4, 0x84, 0x06, 0x6b, 0x02, 0x9e, -0x39, 0x88, 0x87, 0x67, 0xb1, 0xf5, 0x1f, 0x41, 0x7d, 0xe4, 0x99, 0xf3, 0xef, 0x39, 0x21, 0x9e, -0xda, 0x36, 0x48, 0xe5, 0xa2, 0xca, 0x9d, 0x37, 0xbe, 0xdc, 0x1e, 0x40, 0xbe, 0xfe, 0x5a, 0xdc, -0xb0, 0x3b, 0xe1, 0xad, 0x97, 0x8e, 0x84, 0x07, 0x62, 0x95, 0x72, 0x00, 0xb9, 0xdd, 0x20, 0x71, -0x3b, 0xb4, 0x3f, 0xea, 0x61, 0x6f, 0x58, 0x17, 0x9b, 0x84, 0x71, 0x9b, 0xd4, 0x62, 0x0c, 0x25, -0xde, 0x67, 0xc5, 0x37, 0xc0, 0x50, 0xbd, 0xb7, 0x5e, 0x06, 0x0d, 0xae, 0x76, 0x0d, 0xae, 0x85, -0x1a, 0x5c, 0xaa, 0x83, 0x3c, 0x23, 0x80, 0xee, 0xac, 0xc7, 0xcf, 0x74, 0x45, 0xb0, 0x2d, 0x41, -0xb8, 0xba, 0x10, 0xae, 0x38, 0xc2, 0xd5, 0x4e, 0x70, 0xf5, 0xa4, 0xb6, 0x27, 0x62, 0x21, 0x1a, -0xdb, 0x9c, 0xa2, 0x0a, 0x4a, 0xc9, 0x8b, 0x2e, 0x3f, 0xcf, 0x42, 0xaa, 0x78, 0x96, 0xa9, 0x1e, -0xa0, 0x96, 0x4e, 0x11, 0xc0, 0x98, 0x0a, 0x7e, 0x9b, 0x8a, 0x54, 0x3f, 0x07, 0xaa, 0x31, 0xb6, -0x16, 0x7b, 0xf5, 0x23, 0x28, 0xc5, 0x1e, 0x78, 0x18, 0x79, 0x45, 0xd1, 0xc4, 0xd6, 0xb1, 0x77, -0xf0, 0xbb, 0xb0, 0xf7, 0x16, 0x46, 0x6e, 0x65, 0x5d, 0x9a, 0xce, 0x93, 0xb4, 0x46, 0x76, 0x26, -0xa3, 0xe2, 0x7c, 0x51, 0x3a, 0xf5, 0x04, 0x7b, 0xa7, 0x58, 0x5b, 0xe3, 0xd2, 0xb3, 0x57, 0xf1, -0x70, 0xb9, 0x8f, 0x67, 0xbf, 0x69, 0xec, 0x6b, 0x1e, 0x7f, 0xa3, 0xd5, 0xcd, 0x1f, 0xc0, 0x7c, -0x47, 0x0b, 0xe9, 0x3b, 0x84, 0x31, 0xb2, 0x99, 0x1d, 0x2d, 0x71, 0x57, 0x13, 0xf4, 0xf4, 0x89, -0xf7, 0x94, 0xdd, 0xd1, 0x42, 0x76, 0xd7, 0xe0, 0x2b, 0xf1, 0x49, 0x5a, 0xc8, 0x9e, 0xf4, 0x29, -0x22, 0x1a, 0xdd, 0xd8, 0xc9, 0x52, 0xd7, 0xb8, 0xd8, 0x0b, 0xc8, 0x43, 0x26, 0x67, 0xcf, 0xbc, -0xc0, 0xb7, 0x49, 0xd9, 0xb7, 0xec, 0xd9, 0x63, 0xf5, 0x64, 0xdb, 0xba, 0xe8, 0xa4, 0x5e, 0xeb, -0x32, 0xe9, 0x2d, 0xb0, 0xae, 0x24, 0x79, 0xbe, 0x0c, 0x5e, 0x05, 0x1b, 0x3e, 0x75, 0x21, 0x3f, -0x69, 0xb7, 0xba, 0x90, 0xce, 0x0d, 0xb7, 0x80, 0xb4, 0x28, 0x6e, 0xc9, 0x3d, 0xb3, 0x4f, 0x9b, -0xcf, 0x0e, 0xa3, 0x16, 0x2d, 0xfd, 0xe3, 0xef, 0xb2, 0x31, 0x63, 0xf3, 0x15, 0x5f, 0x39, 0xca, -0x63, 0xd4, 0x0c, 0x26, 0xbb, 0x9b, 0x55, 0xab, 0x83, 0xe3, 0x69, 0x8d, 0xa0, 0xd9, 0xe7, 0x98, -0x6b, 0xff, 0x56, 0x57, 0xa9, 0xea, 0xb4, 0xff, 0x71, 0xde, 0x40, 0x78, 0xa0, 0xdb, 0x4e, 0xa1, -0x3f, 0x3a, 0xdc, 0x07, 0x6b, 0x2a, 0xde, 0xdc, 0xa0, 0x7a, 0xdd, 0xcd, 0x8e, 0xb9, 0xf3, 0x90, -0x99, 0xa4, 0x92, 0xd1, 0xb7, 0xd4, 0x3d, 0x78, 0x4f, 0xc4, 0x5e, 0xc0, 0x61, 0x3c, 0x03, 0x24, -0xd5, 0x62, 0xdf, 0x3d, 0x6f, 0x60, 0x1e, 0x84, 0x07, 0x56, 0xee, 0x0b, 0x43, 0xd7, 0x27, 0x0d, -0x1f, 0x82, 0xac, 0x3e, 0xe6, 0xf8, 0x4e, 0xb9, 0xf4, 0xce, 0x9c, 0x50, 0x43, 0xa0, 0xc1, 0x29, -0x85, 0x50, 0x89, 0x93, 0x07, 0xc9, 0xb9, 0xee, 0x3b, 0x77, 0xca, 0x03, 0x74, 0x57, 0x1a, 0x15, -0x7d, 0x45, 0x17, 0xe1, 0x69, 0xf4, 0xa9, 0xb6, 0x75, 0xf1, 0xc2, 0x6d, 0xeb, 0xa2, 0xaf, 0xcd, -0x39, 0x81, 0x38, 0x9e, 0x1b, 0x00, 0x11, 0x8e, 0x18, 0x9e, 0x1b, 0x87, 0x1e, 0xa8, 0x46, 0x7d, -0x2d, 0xb4, 0xbb, 0xc6, 0x8d, 0x56, 0xcd, 0x4b, 0x5a, 0xcc, 0x6b, 0x68, 0xdb, 0x58, 0x15, 0xb3, -0x31, 0x91, 0x4a, 0x25, 0xa7, 0x1c, 0x4d, 0x5c, 0xeb, 0x43, 0x93, 0x02, 0xf9, 0xaa, 0xc3, 0xcc, -0x27, 0x15, 0x5f, 0x73, 0x74, 0xe0, 0x5a, 0x3f, 0x98, 0x89, 0xf6, 0x52, 0x29, 0x21, 0xe3, 0x94, -0xb9, 0x4e, 0x3e, 0x15, 0x59, 0x7a, 0xab, 0x5c, 0xa2, 0x73, 0x87, 0xe1, 0x55, 0xe7, 0x3c, 0x57, -0x3d, 0xbe, 0xbf, 0x2d, 0x4a, 0x3c, 0x7f, 0x04, 0x79, 0x86, 0x7e, 0xda, 0x1c, 0x98, 0x1f, 0xff, -0xd6, 0x34, 0x1f, 0xb4, 0x33, 0x1f, 0xc8, 0xae, 0x43, 0x55, 0x6a, 0xe7, 0xe9, 0xd5, 0x67, 0x66, -0x49, 0x14, 0xe7, 0x72, 0x98, 0x1f, 0x46, 0x5d, 0x91, 0x4e, 0xc8, 0xbd, 0xcc, 0x07, 0x7a, 0x1c, -0x43, 0x6e, 0x30, 0xf7, 0x12, 0xb4, 0x46, 0xe4, 0xfc, 0xf3, 0xf7, 0xd3, 0xfa, 0x28, 0xc4, 0x26, -0x3b, 0x42, 0x8a, 0xcc, 0x27, 0x29, 0x27, 0xb8, 0xfe, 0x7f, 0x5e, 0x3d, 0xf3, 0x8d, 0x01, 0x9a, -0x31, 0xa1, 0x56, 0xa8, 0xe5, 0x17, 0xc6, 0x39, 0xdb, 0x1a, 0x4f, 0x48, 0x09, 0x0d, 0xb6, 0xe5, -0x02, 0x36, 0x9a, 0x0d, 0x11, 0x67, 0x9d, 0xd0, 0x39, 0x28, 0x54, 0x33, 0x73, 0xa0, 0xc9, 0x8e, -0xb6, 0x4c, 0xaf, 0x46, 0x90, 0xff, 0xe4, 0xc0, 0x1b, 0x78, 0x12, 0xe6, 0xa7, 0xe7, 0x47, 0x14, -0x87, 0xd3, 0xc6, 0x9c, 0xef, 0x18, 0x69, 0x0c, 0x7c, 0x3a, 0x4a, 0x2d, 0xad, 0xf2, 0x90, 0x57, -0x7d, 0x8d, 0xca, 0xcd, 0xec, 0xbb, 0x1f, 0x9f, 0xfe, 0x5b, 0x04, 0x29, 0xd1, 0xc1, 0xde, 0xdd, -0x17, 0x6b, 0x73, 0x66, 0x7a, 0x2c, 0x79, 0x11, 0x3f, 0x55, 0x0a, 0x6f, 0xfb, 0xc1, 0xcc, 0x39, -0x4a, 0xb4, 0x8f, 0xe3, 0xbf, 0x1d, 0x81, 0xe4, 0xe3, 0x15, 0x12, 0x98, 0x5b, 0x21, 0xf9, 0x58, -0x2d, 0x5e, 0x46, 0xbc, 0x5e, 0xce, 0xf5, 0x8d, 0x7c, 0xcb, 0xd2, 0xec, 0xce, 0x05, 0xc5, 0x4b, -0x5e, 0x91, 0xbd, 0xd7, 0x56, 0x7a, 0x35, 0xbf, 0xc8, 0x00, 0xc9, 0xff, 0xee, 0xc5, 0xab, 0x1f, -0x92, 0x3f, 0x1b, 0xc1, 0xfb, 0x2e, 0xf2, 0xc1, 0x9c, 0x9b, 0x63, 0xc2, 0xce, 0x87, 0x86, 0x66, -0xff, 0x0c, 0x3f, 0x85, 0x2d, 0x1e, 0x1f, 0x16, 0x10, 0xe7, 0x61, 0x60, 0x5b, 0x3d, 0x50, 0x4c, -0xe3, 0xf0, 0x31, 0xe7, 0x7d, 0xaf, 0xdc, 0xff, 0x6a, 0x7c, 0x01, 0x52, 0x3e, 0xc1, 0xfe, 0x14, -0xb7, 0xbb, 0xe2, 0x32, 0x5e, 0x33, 0xe7, 0xd3, 0x2a, 0x2d, 0x81, 0x65, 0x50, 0x4c, 0x7e, 0xfa, -0x11, 0xe2, 0x52, 0x0c, 0x37, 0x82, 0xed, 0x1a, 0x92, 0x1e, 0x25, 0x62, 0x1e, 0x34, 0x39, 0x89, -0x4e, 0x43, 0x0c, 0xea, 0xb5, 0xd3, 0xcf, 0x58, 0xbb, 0x25, 0x0d, 0xe6, 0xb1, 0xc6, 0xc8, 0xce, -0xd4, 0x83, 0x4e, 0x1f, 0xaf, 0xf8, 0xa1, 0xaa, 0x80, 0x25, 0xfc, 0xdb, 0x11, 0x09, 0x1c, 0x97, -0x8e, 0xa2, 0xcc, 0xff, 0xb7, 0x0f, 0x25, 0x92, 0xf1, 0x28, 0xff, 0x51, 0xc8, 0x8b, 0xa7, 0x54, -0xa2, 0x10, 0xd2, 0x61, 0x96, 0xf4, 0x53, 0x61, 0x5e, 0x26, 0xcc, 0x9c, 0x79, 0x12, 0xe9, 0xd0, -0x6a, 0x49, 0x87, 0xe8, 0xe4, 0x74, 0x19, 0x29, 0x1d, 0x5c, 0x43, 0x90, 0xb7, 0x22, 0x9c, 0x7d, -0xe0, 0xe1, 0x53, 0x0c, 0x2b, 0x19, 0xf6, 0x79, 0xe0, 0xa5, 0xfb, 0xcf, 0x5a, 0xa0, 0x16, 0xa5, -0x47, 0x75, 0x5c, 0xd7, 0x80, 0x5a, 0x6b, 0x86, 0x0e, 0xda, 0x73, 0xe0, 0xfe, 0x2f, 0xc8, 0xd9, -0x8e, 0xa4, 0xe1, 0x86, 0xad, 0x04, 0xf7, 0x08, 0xa4, 0xe1, 0xfe, 0x23, 0xfc, 0xe7, 0xe1, 0x4e, -0xa5, 0xd2, 0xd0, 0x4a, 0x19, 0xb8, 0xc7, 0xb7, 0x00, 0x95, 0xdc, 0x0b, 0x5b, 0x10, 0x9b, 0xd0, -0x82, 0x82, 0xf1, 0x2d, 0xc8, 0x9c, 0xc4, 0xf8, 0x7d, 0xea, 0xdf, 0xfa, 0x2a, 0xb7, 0xd9, 0xd9, -0xec, 0xb2, 0xa1, 0x05, 0xe6, 0xb0, 0xbb, 0x0a, 0xc8, 0x4f, 0xcc, 0x15, 0x89, 0x69, 0x30, 0xef, -0x52, 0x1f, 0xcc, 0x2b, 0x81, 0x97, 0xa7, 0x41, 0x5b, 0x2c, 0x72, 0x69, 0x03, 0xcc, 0x2f, 0xd2, -0x35, 0x49, 0xbb, 0xe1, 0x52, 0x3f, 0xcc, 0x2b, 0x6f, 0xee, 0x05, 0x3a, 0xc5, 0x17, 0x52, 0x06, -0x5d, 0xcc, 0xe9, 0x58, 0x0e, 0xf5, 0x7c, 0xee, 0xc6, 0x24, 0x65, 0x1a, 0x14, 0x29, 0x8d, 0x8e, -0xa5, 0x60, 0xab, 0x08, 0x8e, 0x3f, 0xf7, 0xb5, 0x6d, 0xb0, 0xfd, 0xc7, 0x71, 0x03, 0xca, 0xca, -0xd7, 0x02, 0x6e, 0xe4, 0x07, 0xc0, 0xeb, 0xf6, 0x7f, 0xa7, 0x9d, 0x61, 0xe7, 0xa8, 0x06, 0x67, -0x24, 0x7b, 0x4e, 0x5f, 0x89, 0x1b, 0xda, 0xec, 0x72, 0x58, 0xee, 0x32, 0x33, 0x24, 0x3a, 0x55, -0xdf, 0x04, 0xc3, 0x3a, 0xe4, 0x07, 0x6d, 0xdc, 0xee, 0x40, 0x01, 0xd8, 0xdd, 0x30, 0x6f, 0x18, -0x53, 0xc5, 0x6c, 0x5e, 0x37, 0xb4, 0x82, 0x2f, 0x01, 0xa4, 0x93, 0x9f, 0x7e, 0x38, 0x7b, 0xa6, -0x5f, 0xc0, 0x67, 0xd7, 0x21, 0xa5, 0xb1, 0x34, 0xf2, 0x56, 0x95, 0xe7, 0x39, 0x23, 0x35, 0xbe, -0x6c, 0x0d, 0xa8, 0xbd, 0x14, 0xd2, 0xea, 0x87, 0xd3, 0xbb, 0x05, 0xa2, 0x25, 0x53, 0xd6, 0x6e, -0x81, 0xb8, 0xe4, 0xc8, 0x7f, 0x77, 0x4b, 0xcf, 0x8f, 0x9a, 0xa4, 0xc4, 0x00, 0xfb, 0xcb, 0x3f, -0x95, 0x73, 0x72, 0xa4, 0x2c, 0x4e, 0xdb, 0x25, 0x58, 0x95, 0x3a, 0x27, 0x97, 0x25, 0xd2, 0x8f, -0x4b, 0x37, 0x34, 0x1b, 0x4b, 0xa5, 0x99, 0xea, 0x1d, 0xbf, 0xc0, 0x52, 0xf5, 0x01, 0xfc, 0xcd, -0x96, 0x91, 0x3e, 0xbd, 0x63, 0x62, 0x5b, 0xb9, 0x97, 0xd3, 0x38, 0xc7, 0x56, 0x5d, 0xc6, 0x38, -0x5f, 0x8f, 0x38, 0x92, 0x1b, 0x20, 0xc5, 0x38, 0x40, 0xbb, 0x7b, 0x1d, 0x20, 0x0e, 0xe4, 0x3d, -0x70, 0x59, 0x00, 0xe6, 0x7d, 0x7d, 0xdb, 0xbd, 0x5a, 0xcb, 0x23, 0x3f, 0xa0, 0x53, 0xd9, 0x7e, -0xfe, 0x3c, 0x5e, 0x07, 0xf1, 0x3a, 0xfd, 0x9f, 0x39, 0x9d, 0x6d, 0x65, 0x6f, 0x6c, 0xe5, 0x38, -0x3f, 0xec, 0x55, 0x13, 0xce, 0x63, 0x1b, 0x97, 0x40, 0x78, 0x61, 0x7f, 0xfc, 0x71, 0x48, 0x6e, -0x71, 0x0e, 0x4c, 0x33, 0x77, 0xe0, 0xf3, 0x03, 0x78, 0x21, 0x34, 0x8f, 0xbf, 0x9c, 0x29, 0xb9, -0x1c, 0xdf, 0x2a, 0xf9, 0x29, 0xf9, 0xf8, 0x91, 0x6c, 0x85, 0xc4, 0x91, 0x9d, 0xbe, 0x6b, 0x88, -0x96, 0x4b, 0xbe, 0x7a, 0x97, 0xcd, 0xe3, 0xd1, 0xf4, 0xb9, 0x64, 0x17, 0xee, 0xb2, 0x79, 0x7c, -0x41, 0xe4, 0x3e, 0x9e, 0xf3, 0xcb, 0xa6, 0x6e, 0x9a, 0x2d, 0x76, 0xd9, 0xdc, 0xa7, 0xed, 0xb2, -0xe9, 0xf0, 0x58, 0x72, 0xd2, 0xcf, 0xe2, 0xf0, 0x9c, 0x5d, 0x36, 0x8f, 0x47, 0x2e, 0x3c, 0xf5, -0xec, 0xf1, 0x45, 0xe3, 0x4f, 0x3d, 0x43, 0x7b, 0xc2, 0x8d, 0x76, 0x39, 0x49, 0xa9, 0x22, 0x47, -0xf8, 0xbe, 0xe1, 0x91, 0x81, 0xf1, 0x7b, 0x6e, 0xee, 0x7f, 0x95, 0xf8, 0x5d, 0xfa, 0x0c, 0x1d, -0x8f, 0x5c, 0x5d, 0x09, 0x8e, 0x2a, 0xb9, 0xc9, 0xbf, 0xdb, 0xb7, 0xce, 0xff, 0xdd, 0x00, 0x38, -0xbc, 0x92, 0x76, 0xb6, 0xb1, 0xad, 0xc9, 0xf7, 0x62, 0x37, 0x38, 0x86, 0xbb, 0xc1, 0xf9, 0x5d, -0x1f, 0x38, 0xb9, 0x47, 0xab, 0xd3, 0xfa, 0x8a, 0x57, 0xae, 0x06, 0x39, 0x90, 0x92, 0x6a, 0x24, -0xb9, 0x21, 0x95, 0x7c, 0x39, 0xb0, 0x1e, 0x53, 0x35, 0xf9, 0x07, 0x03, 0x2f, 0xfb, 0xbf, 0xdb, -0x00, 0x4e, 0xd9, 0x07, 0xd2, 0x7a, 0xdf, 0xcc, 0x97, 0x28, 0x47, 0xcb, 0xdb, 0x3e, 0x6b, 0xf6, -0x3c, 0xbe, 0xa7, 0x4b, 0xf1, 0xf2, 0xe1, 0xd5, 0x82, 0xd7, 0x3e, 0xbc, 0x90, 0x12, 0x9e, 0xa9, -0xfe, 0xcf, 0xf8, 0xe3, 0x5f, 0xba, 0x6a, 0xf9, 0x57, 0x11, 0xc1, 0xb8, 0x78, 0x41, 0x03, 0x5b, -0xb6, 0x62, 0x9d, 0xed, 0x48, 0x03, 0x57, 0xe1, 0xf3, 0x4f, 0xf1, 0xfa, 0x47, 0xbc, 0x5e, 0xcd, -0x94, 0xbb, 0x19, 0xdf, 0x5c, 0x82, 0x06, 0x9e, 0x70, 0x8e, 0x17, 0x40, 0x54, 0x98, 0xb2, 0xb4, -0xbb, 0xa3, 0xb3, 0x4f, 0x3c, 0xae, 0xfa, 0x61, 0xf7, 0x2d, 0xe2, 0xa9, 0x63, 0xc5, 0xcd, 0x4a, -0xc7, 0xca, 0xee, 0xce, 0x8b, 0x9d, 0xe5, 0xf4, 0xb4, 0xf9, 0xaf, 0xa3, 0xa1, 0x2d, 0x5d, 0x5f, -0x4e, 0x43, 0x5b, 0x16, 0x4e, 0xa4, 0xa1, 0x27, 0x4a, 0xbf, 0x8a, 0x86, 0xb6, 0x04, 0x27, 0xd2, -0xd0, 0x96, 0xf9, 0x17, 0xd2, 0xd0, 0x96, 0x8e, 0xff, 0x38, 0x0d, 0xf1, 0x79, 0x93, 0xb6, 0x99, -0xa3, 0xd8, 0x2e, 0x1c, 0xf1, 0xc8, 0x67, 0x1d, 0xcc, 0x77, 0x27, 0x23, 0xdf, 0x2d, 0x8f, 0x95, -0x6a, 0x67, 0x6e, 0x63, 0xe8, 0x78, 0xde, 0x1b, 0x07, 0xa4, 0xa4, 0xbf, 0xd3, 0x4e, 0xab, 0xc4, -0xdc, 0x76, 0xb8, 0x20, 0x77, 0x7d, 0x4e, 0xee, 0xda, 0xaf, 0xca, 0x3d, 0x2e, 0x57, 0x5b, 0x4e, -0xae, 0xc8, 0xc5, 0x73, 0x69, 0xa7, 0xed, 0x16, 0xf7, 0x98, 0x15, 0xf3, 0x3b, 0x4f, 0xd0, 0x0a, -0xcc, 0x7e, 0xe2, 0x75, 0x3f, 0xba, 0x74, 0x98, 0x9e, 0xc4, 0x7b, 0x89, 0xd4, 0xa4, 0x1b, 0xd6, -0xe5, 0x86, 0x24, 0xa4, 0xdc, 0x37, 0x14, 0x33, 0x89, 0xdc, 0xf7, 0x8b, 0xa7, 0xed, 0x55, 0xe2, -0xe0, 0x60, 0xf9, 0x5b, 0xca, 0xe1, 0x7b, 0x75, 0x97, 0x06, 0x25, 0x18, 0x49, 0x94, 0x8a, 0x55, -0x1f, 0x3d, 0x18, 0x62, 0xfa, 0x3e, 0x29, 0xb1, 0x4e, 0xc4, 0x0e, 0x49, 0x97, 0xee, 0xa1, 0xfb, -0x3c, 0x39, 0x3a, 0xc2, 0x3b, 0x14, 0xac, 0x64, 0x33, 0xa5, 0xcf, 0x5d, 0xf6, 0x1f, 0x07, 0x2b, -0xc9, 0x07, 0xb2, 0x45, 0xa7, 0x24, 0x1e, 0x84, 0xf4, 0xc9, 0xbe, 0x12, 0x59, 0x9d, 0xc5, 0xa2, -0x7f, 0xa6, 0x46, 0xc0, 0x45, 0x1a, 0xe0, 0x96, 0x37, 0xb5, 0x53, 0x7b, 0x2a, 0xc8, 0x0e, 0x4c, -0x18, 0x12, 0x53, 0xb2, 0x96, 0x92, 0x76, 0x2a, 0x51, 0x28, 0xb0, 0x15, 0x82, 0xf8, 0x1c, 0xc4, -0x67, 0x1f, 0x41, 0x7d, 0x54, 0x92, 0x21, 0xf5, 0x12, 0xc1, 0x7d, 0x54, 0xba, 0x74, 0x14, 0xc7, -0x23, 0x42, 0x22, 0xee, 0xaf, 0xc3, 0xcc, 0x51, 0x1f, 0xf5, 0x8f, 0x73, 0xe6, 0x68, 0xc2, 0x8e, -0xf7, 0x07, 0x66, 0x8e, 0x06, 0xef, 0xc4, 0xfb, 0x6d, 0x33, 0x47, 0x7f, 0x44, 0xe1, 0x8f, 0xcc, -0x1c, 0xbd, 0x9f, 0xef, 0x28, 0x47, 0xd7, 0xb2, 0xc4, 0x1f, 0x24, 0x49, 0xbf, 0xe5, 0x38, 0xac, -0xa3, 0xfb, 0xd6, 0x3e, 0xb8, 0x6b, 0x6a, 0x18, 0x86, 0xb2, 0x12, 0x26, 0xae, 0x47, 0xd9, 0xbf, -0x06, 0x2d, 0xa4, 0x0a, 0xda, 0xcf, 0x15, 0xb7, 0x6b, 0x4f, 0x39, 0xf2, 0x0d, 0x4b, 0x5a, 0xc1, -0x25, 0x75, 0x71, 0x49, 0x7f, 0x81, 0x6e, 0x2e, 0xa9, 0x0e, 0x56, 0x63, 0x49, 0x3d, 0x39, 0x25, -0x59, 0xb1, 0xa4, 0x8e, 0xcc, 0xfb, 0x22, 0x8d, 0x92, 0x1e, 0x1a, 0x57, 0xd2, 0x8d, 0x5c, 0xd2, -0x02, 0x2e, 0x69, 0x0c, 0xda, 0xe9, 0xfe, 0xc4, 0x28, 0xa8, 0x58, 0xd2, 0xc2, 0x9c, 0x92, 0x24, -0x2c, 0x29, 0x92, 0x5b, 0x12, 0x53, 0x74, 0x4e, 0x49, 0xff, 0xfc, 0xda, 0xec, 0x73, 0x63, 0x7b, -0x48, 0x4b, 0x8c, 0xdc, 0xd7, 0x76, 0x4f, 0xeb, 0xc6, 0xb8, 0x7e, 0xdb, 0x3d, 0xd1, 0xd3, 0x64, -0x29, 0xe2, 0x58, 0x48, 0x30, 0x3f, 0xf5, 0x00, 0xcd, 0x4e, 0x26, 0x9f, 0x5c, 0xd3, 0xbe, 0x31, -0x34, 0xcc, 0x1a, 0xa5, 0x5c, 0x5c, 0x09, 0xe5, 0x3d, 0x50, 0x24, 0x4b, 0x52, 0xd4, 0xd6, 0x23, -0xbd, 0xf3, 0xc4, 0x3a, 0xe9, 0x3b, 0x01, 0x28, 0x17, 0xeb, 0xd3, 0x82, 0xd3, 0x12, 0x1f, 0x96, -0x9e, 0x41, 0x5d, 0x28, 0xcd, 0x5b, 0x1d, 0xa4, 0x1b, 0x38, 0x2b, 0x73, 0x66, 0x94, 0x86, 0x50, -0xc2, 0x6a, 0xba, 0x52, 0x57, 0x29, 0xf5, 0xa0, 0x83, 0xd6, 0x5e, 0xb3, 0x76, 0xc0, 0x60, 0x2f, -0xa8, 0x2e, 0xa2, 0x49, 0x94, 0xd5, 0xe5, 0x53, 0x1b, 0xc0, 0x71, 0xdf, 0x2b, 0xb4, 0x9f, 0x10, -0x29, 0x60, 0x53, 0x78, 0x30, 0xaa, 0x77, 0xba, 0x73, 0xca, 0x62, 0xdd, 0x41, 0xc8, 0x62, 0x8f, -0xad, 0xc7, 0xca, 0x3b, 0xfe, 0x12, 0x4a, 0x8d, 0x19, 0xd2, 0xf5, 0xd3, 0x69, 0x5e, 0xb9, 0xbb, -0x12, 0x9d, 0x59, 0x9d, 0x41, 0xeb, 0xc3, 0x1d, 0x5b, 0x61, 0x53, 0xb4, 0x0a, 0x29, 0x68, 0x93, -0xec, 0x46, 0xad, 0xb2, 0x9c, 0x20, 0xc2, 0x94, 0x49, 0xa7, 0x2f, 0x27, 0xed, 0x60, 0x78, 0x30, -0x56, 0x94, 0xb3, 0x53, 0x6d, 0xbd, 0xaa, 0x69, 0x1d, 0x7c, 0x8a, 0x97, 0x38, 0x17, 0xd9, 0x47, -0xeb, 0x1f, 0x84, 0xb1, 0xad, 0xcf, 0x34, 0x9e, 0x00, 0x2b, 0xad, 0xb3, 0xb4, 0x6e, 0x54, 0xaa, -0x8e, 0xff, 0xef, 0x39, 0x0f, 0xf0, 0x22, 0xdb, 0x97, 0x95, 0xab, 0x27, 0x9e, 0xda, 0x7a, 0xb1, -0x3d, 0xce, 0x24, 0x25, 0x9e, 0x41, 0x2b, 0x65, 0x5b, 0x48, 0x92, 0xc8, 0xde, 0x79, 0x66, 0x17, -0x5e, 0xff, 0x04, 0xc9, 0x67, 0x4b, 0x45, 0xf1, 0xbc, 0xbd, 0x3b, 0xd8, 0xb9, 0xba, 0xb3, 0x6b, -0x65, 0x7c, 0x45, 0x67, 0x77, 0xaf, 0x32, 0xbf, 0xf3, 0xe6, 0x15, 0xe3, 0x78, 0xfe, 0xb6, 0x8a, -0xcc, 0xb9, 0x7d, 0xca, 0xd7, 0x9d, 0xdb, 0x87, 0x1a, 0x13, 0xef, 0xeb, 0xc5, 0x5a, 0xb4, 0x7d, -0xbd, 0xcf, 0x2c, 0xfc, 0xe6, 0xfb, 0x7a, 0x9f, 0x19, 0xfa, 0xf2, 0x7d, 0xbd, 0xcf, 0xf4, 0x4d, -0xdc, 0xd7, 0xfb, 0xac, 0xf5, 0xab, 0xce, 0xed, 0x7b, 0x46, 0x9d, 0xb8, 0xaf, 0xf7, 0x99, 0xf8, -0x85, 0xfb, 0x7a, 0x9f, 0x49, 0x5c, 0xb0, 0xaf, 0x57, 0xf9, 0xe6, 0xe7, 0xf6, 0x21, 0xe7, 0xd5, -0x4f, 0xa1, 0xd6, 0x9e, 0x46, 0x3b, 0x7f, 0x09, 0x14, 0x51, 0x19, 0x72, 0x17, 0x9d, 0xf8, 0x26, -0xfa, 0x1b, 0x92, 0xdb, 0xeb, 0xf1, 0x1a, 0xfa, 0x4f, 0xf4, 0xfb, 0x8a, 0xa5, 0xab, 0x6e, 0xf9, -0xaa, 0x03, 0x7a, 0xc6, 0xc5, 0x0b, 0x9d, 0x60, 0xdb, 0x0b, 0x58, 0xe7, 0xb0, 0x34, 0xcd, 0x3c, -0x03, 0x9f, 0x9f, 0xc5, 0x6b, 0x23, 0x24, 0xff, 0xc5, 0x2c, 0x0a, 0x6d, 0xa4, 0x4d, 0xfa, 0xca, -0x8c, 0x19, 0x28, 0xf9, 0x57, 0xdf, 0xdc, 0xb5, 0xb4, 0x43, 0xb9, 0xb5, 0x7b, 0x69, 0x6f, 0xe5, -0x78, 0x19, 0xbf, 0x5d, 0xd1, 0xfa, 0xbb, 0x2e, 0xde, 0xfe, 0x15, 0x67, 0xeb, 0x5a, 0xf9, 0x6c, -0xdd, 0x62, 0xfc, 0x9d, 0x01, 0xff, 0xff, 0xf6, 0xde, 0x06, 0xbc, 0xa9, 0xeb, 0x4a, 0x14, 0x5d, -0xe7, 0x48, 0x96, 0x85, 0x10, 0x8e, 0x22, 0x14, 0xd7, 0x71, 0x5d, 0x72, 0xa2, 0x11, 0x8a, 0x10, -0xc2, 0x52, 0x1c, 0x87, 0x7a, 0xa8, 0x4b, 0xe5, 0x63, 0x63, 0xcb, 0xc2, 0xb8, 0xae, 0x4c, 0x88, -0x9b, 0xd2, 0xe4, 0x60, 0xec, 0x23, 0x20, 0xfe, 0x51, 0x8d, 0x71, 0x5c, 0xea, 0xe1, 0xca, 0x3f, -0x38, 0xc6, 0xa1, 0x31, 0x21, 0x84, 0xa6, 0x79, 0xbd, 0xb9, 0x79, 0x7d, 0xbd, 0x2d, 0x25, 0x7f, -0x0e, 0xa5, 0x94, 0xe1, 0x71, 0x73, 0x1d, 0xca, 0x50, 0x9a, 0x64, 0xf2, 0x08, 0xa1, 0x24, 0x65, -0x98, 0x84, 0x50, 0x9a, 0x30, 0x84, 0xbf, 0x49, 0x48, 0x86, 0x82, 0xb1, 0xee, 0x5a, 0x7b, 0x1f, -0xd9, 0xb2, 0x0d, 0x99, 0xf4, 0xcd, 0xf7, 0xdd, 0xf7, 0xbd, 0x6f, 0xce, 0xf6, 0xb7, 0xe5, 0x73, -0xf6, 0xd9, 0xbf, 0x6b, 0xef, 0xbd, 0xf6, 0xda, 0x7b, 0xaf, 0x9f, 0x5b, 0xc8, 0xb6, 0x2e, 0x96, -0x95, 0xc9, 0x6d, 0xeb, 0x0e, 0xfe, 0x15, 0xb6, 0x1a, 0x07, 0xe3, 0x37, 0xee, 0xf3, 0xc1, 0xd8, -0xc4, 0x3e, 0x1f, 0x1c, 0xfe, 0xbc, 0x3e, 0x1f, 0xac, 0x99, 0xd8, 0xe7, 0x83, 0x2b, 0x26, 0x53, -0x08, 0x83, 0xed, 0x93, 0x6c, 0xeb, 0xd6, 0x7c, 0x71, 0xdb, 0xba, 0xfe, 0x8c, 0x40, 0x07, 0x64, -0xbc, 0x79, 0x01, 0xc6, 0xf8, 0x12, 0x0f, 0xc7, 0x84, 0x51, 0x7c, 0x87, 0x10, 0x72, 0x9b, 0x5d, -0x95, 0x74, 0x0f, 0x3c, 0xf8, 0x6e, 0x8b, 0x61, 0xc7, 0xc6, 0xfa, 0x40, 0xd9, 0xf9, 0x71, 0x36, -0xf3, 0x5e, 0x2f, 0x3f, 0x0b, 0x37, 0xfd, 0xf1, 0xf5, 0x3f, 0xbe, 0xee, 0xca, 0xa7, 0x7d, 0xcc, -0x2c, 0xdc, 0x1d, 0xa5, 0xda, 0x9c, 0x23, 0x8c, 0xb6, 0x54, 0x3b, 0xe5, 0xc3, 0xbc, 0x2a, 0x17, -0x50, 0xea, 0xf0, 0xe4, 0xd4, 0xf2, 0xce, 0xdd, 0x90, 0x12, 0x7e, 0x20, 0x59, 0xbf, 0xff, 0x20, -0x9e, 0x59, 0xbd, 0xa2, 0xbe, 0xa1, 0xe1, 0xf3, 0x06, 0xdc, 0xf8, 0x08, 0x7c, 0xc4, 0xfd, 0x2a, -0x00, 0x23, 0xef, 0xc5, 0xb8, 0xcd, 0xd1, 0x5f, 0x49, 0x38, 0x82, 0x12, 0x30, 0xb2, 0x7b, 0xf1, -0xf8, 0xec, 0x17, 0xcf, 0xab, 0xa6, 0x94, 0xae, 0xfa, 0xc6, 0xda, 0xfa, 0x3a, 0xd0, 0xdd, 0x7f, -0x36, 0x97, 0x2a, 0x9f, 0xc4, 0xc6, 0x10, 0x14, 0x57, 0x94, 0x83, 0x7f, 0x1e, 0x14, 0xcf, 0x5b, -0xd0, 0x5e, 0xbf, 0x7c, 0x4d, 0x6b, 0x3d, 0x3c, 0xf0, 0x40, 0x5d, 0x7d, 0xed, 0x9a, 0xe8, 0x03, -0x8d, 0xf5, 0x8d, 0xe0, 0xf5, 0x7a, 0xa5, 0x3b, 0x66, 0xae, 0xbe, 0x43, 0x6a, 0xa9, 0x6f, 0x5d, -0xd3, 0xd2, 0x54, 0x5f, 0x27, 0x3d, 0x44, 0x42, 0x3e, 0x6a, 0x4b, 0x3d, 0x3e, 0xae, 0x5e, 0x19, -0x6d, 0x5a, 0xd6, 0x20, 0x05, 0xda, 0x67, 0x36, 0xb4, 0x5b, 0x6e, 0x14, 0x75, 0x4d, 0xd3, 0xf5, -0x22, 0x2f, 0xaa, 0x6f, 0x6c, 0x6e, 0xf9, 0xbe, 0xd4, 0x50, 0xbf, 0xec, 0x41, 0xa9, 0x59, 0x95, -0x66, 0x36, 0xac, 0x91, 0x6a, 0xbf, 0xdf, 0x5a, 0xbf, 0xda, 0x02, 0x10, 0x29, 0x86, 0x48, 0xfd, -0xea, 0x35, 0x0d, 0xad, 0x79, 0xf0, 0x0d, 0x60, 0x83, 0x15, 0xaa, 0xb8, 0x19, 0x74, 0x12, 0x02, -0x92, 0xea, 0x9b, 0xea, 0x56, 0x36, 0x45, 0x47, 0x4d, 0xa3, 0xc3, 0x77, 0xb0, 0xfe, 0xf4, 0xe1, -0xbb, 0x16, 0xa8, 0xac, 0x7f, 0x48, 0x62, 0x09, 0x92, 0x66, 0xd6, 0x29, 0xdc, 0x32, 0xae, 0xc9, -0xf5, 0xcb, 0x57, 0x34, 0x03, 0x09, 0x18, 0xdd, 0x09, 0x12, 0xfe, 0x59, 0xe0, 0x81, 0xd8, 0xf2, -0x15, 0xcb, 0x5a, 0xe0, 0x81, 0x46, 0xf6, 0xaf, 0xaa, 0xbc, 0x6a, 0x81, 0x34, 0x61, 0xaf, 0xf5, -0xf7, 0x3f, 0x19, 0x6f, 0x37, 0xb7, 0x70, 0x9e, 0x2b, 0xe4, 0x2e, 0x00, 0x23, 0xd2, 0x33, 0xc4, -0x4f, 0x77, 0xcc, 0x1d, 0xa4, 0x13, 0x55, 0x35, 0x7b, 0xc1, 0x47, 0xb0, 0x54, 0xe2, 0x9c, 0x77, -0x71, 0xed, 0xff, 0x46, 0x29, 0xe8, 0x5a, 0x01, 0x16, 0xc2, 0xc5, 0xbb, 0x16, 0xc6, 0x5c, 0x14, -0xc6, 0x38, 0x04, 0xe9, 0x9e, 0xc6, 0x16, 0xb5, 0x13, 0x2f, 0xb2, 0x33, 0xc2, 0x62, 0x6e, 0x5e, -0xeb, 0x50, 0x40, 0x58, 0x82, 0xe1, 0xd6, 0xa8, 0x05, 0x53, 0x23, 0xed, 0x33, 0x7c, 0xbf, 0x62, -0xd6, 0x9e, 0x6a, 0x3c, 0xd0, 0x90, 0x15, 0xb3, 0x0e, 0xf5, 0xb4, 0x58, 0x77, 0xc4, 0xd5, 0x19, -0xa9, 0xe9, 0x14, 0x1b, 0x93, 0xbc, 0x18, 0xd9, 0x13, 0xaa, 0x19, 0x18, 0x7c, 0x24, 0x0a, 0x82, -0x4d, 0xf2, 0x82, 0x59, 0x7e, 0x16, 0xf6, 0x7a, 0x1e, 0x84, 0x38, 0x61, 0xa8, 0x59, 0x0d, 0x60, -0x45, 0x5c, 0xfc, 0x1c, 0x58, 0x5b, 0x0c, 0x9e, 0x4e, 0xba, 0xdf, 0xa6, 0xf8, 0xfb, 0x0f, 0x7b, -0x41, 0x4b, 0xb9, 0x83, 0xd9, 0x26, 0xb4, 0x86, 0x7b, 0x1a, 0xee, 0x27, 0x4d, 0xb7, 0xaa, 0xdd, -0x2f, 0xfa, 0x67, 0xe3, 0x4e, 0x80, 0xbe, 0x19, 0x31, 0xa7, 0x9c, 0xaa, 0x01, 0x0c, 0x07, 0x66, -0xc1, 0x6f, 0x36, 0x14, 0xb0, 0xf0, 0x47, 0x53, 0x9e, 0x29, 0x4e, 0x01, 0xe1, 0xfb, 0x98, 0xf5, -0x60, 0x7c, 0xb0, 0x27, 0xba, 0x74, 0xe6, 0x83, 0xa4, 0xba, 0x6a, 0x66, 0x35, 0xd8, 0xc6, 0xd5, -0xb4, 0x44, 0xc2, 0x5c, 0xa3, 0x36, 0xcd, 0x0e, 0xe0, 0x68, 0xde, 0x4e, 0xcc, 0x27, 0xea, 0x61, -0x27, 0xad, 0x1e, 0x5c, 0x77, 0xac, 0xd2, 0x83, 0x50, 0xf0, 0xe6, 0x41, 0xf3, 0x20, 0xa4, 0xf7, -0xc1, 0xc4, 0x52, 0xaa, 0x06, 0xfc, 0xa2, 0xfc, 0x0b, 0xf6, 0x3e, 0x97, 0x9d, 0x46, 0x5a, 0x47, -0x73, 0x73, 0x55, 0x0d, 0x60, 0x4b, 0x6d, 0x60, 0xc5, 0x96, 0xda, 0x92, 0xbc, 0x8e, 0x8a, 0xb8, -0xd6, 0x22, 0xa5, 0x21, 0x4e, 0x2e, 0xac, 0x5c, 0xb3, 0x69, 0x13, 0xa3, 0x9d, 0x9c, 0x5f, 0xd4, -0xe6, 0x31, 0x62, 0x50, 0x8d, 0x76, 0xda, 0xb1, 0xff, 0x8b, 0xaf, 0xa3, 0x3b, 0x2e, 0xde, 0x78, -0x1d, 0xdd, 0x71, 0x62, 0xe2, 0x3a, 0xba, 0xab, 0xe7, 0xf3, 0xd6, 0xd1, 0x1d, 0x07, 0x27, 0xae, -0xa3, 0x3b, 0xde, 0x99, 0x4c, 0x3b, 0xed, 0x38, 0x3d, 0x89, 0x76, 0x72, 0x7e, 0x71, 0xda, 0x09, -0x43, 0xa7, 0x6a, 0xe3, 0x7b, 0x2a, 0xc2, 0x67, 0xdf, 0x9f, 0x37, 0x48, 0x45, 0x04, 0xcf, 0x5d, -0x4f, 0x56, 0xbc, 0x87, 0x44, 0x3f, 0x54, 0x1e, 0x4d, 0x99, 0x0b, 0xa4, 0x4b, 0x1f, 0x40, 0xc4, -0xdd, 0xae, 0x48, 0x70, 0xf9, 0x75, 0x4d, 0x2c, 0x45, 0x0a, 0xc7, 0x03, 0xd1, 0x52, 0xd6, 0xa6, -0x27, 0xa9, 0x1e, 0x86, 0xd7, 0x19, 0x6c, 0x5c, 0x08, 0xed, 0x91, 0x5f, 0xd7, 0xb9, 0xa0, 0x2d, -0xe1, 0x2b, 0x21, 0xbb, 0xb4, 0x2e, 0x7c, 0xff, 0xfb, 0x86, 0x53, 0xfd, 0x2c, 0x7c, 0x15, 0x0f, -0x73, 0x96, 0x8c, 0xdd, 0x5f, 0x25, 0xed, 0x7d, 0x07, 0x73, 0x26, 0x58, 0x58, 0x3e, 0x3e, 0xce, -0x26, 0xf3, 0xfe, 0x49, 0x16, 0x98, 0x7f, 0x3e, 0x29, 0xa4, 0x6b, 0x5c, 0x0a, 0xcd, 0xa6, 0xb3, -0x5f, 0xc4, 0x18, 0x56, 0xd7, 0x18, 0xcf, 0x6b, 0x26, 0xdf, 0x31, 0xd1, 0xf9, 0x13, 0x7e, 0xb1, -0xd1, 0x1d, 0x80, 0xdb, 0x0f, 0x59, 0xf8, 0x35, 0x07, 0xeb, 0xf3, 0x34, 0x3f, 0x6b, 0x4a, 0xcd, -0x77, 0xe4, 0xc9, 0x89, 0x25, 0x8d, 0xe4, 0xa5, 0x96, 0x34, 0xe2, 0xa0, 0x37, 0xa2, 0x49, 0xc3, -0xdb, 0x68, 0xb7, 0x2c, 0x79, 0x40, 0x1a, 0xdc, 0x86, 0x23, 0xdf, 0x14, 0x4b, 0xdc, 0x8e, 0xfb, -0x67, 0x16, 0xea, 0x4e, 0x86, 0xaa, 0x39, 0x8c, 0x9f, 0x76, 0x56, 0xfa, 0x59, 0x31, 0x4e, 0xd2, -0x48, 0x56, 0xf6, 0xcb, 0x79, 0x4c, 0x09, 0x12, 0x98, 0xc2, 0xc3, 0xf8, 0x8d, 0x9d, 0xc4, 0xa9, -0xea, 0xf3, 0x83, 0x87, 0x61, 0x9b, 0x0c, 0xbf, 0x09, 0xe7, 0xc1, 0x9e, 0x84, 0x2d, 0x97, 0x59, -0xab, 0xcc, 0xb5, 0x78, 0xe9, 0xd6, 0x07, 0xa4, 0xb4, 0xd4, 0xdb, 0x3a, 0xec, 0x91, 0x79, 0xce, -0x74, 0x17, 0xb8, 0xd3, 0xc8, 0x2e, 0xee, 0x48, 0x53, 0x38, 0x18, 0xcd, 0x74, 0x1a, 0xe9, 0xf9, -0xda, 0xe1, 0x31, 0x98, 0x5f, 0xab, 0x54, 0x1c, 0xa9, 0x6f, 0xa6, 0xf5, 0x94, 0x93, 0xb2, 0x93, -0x95, 0x63, 0xf3, 0x97, 0x82, 0xc7, 0x5f, 0x06, 0x2e, 0xdc, 0xdf, 0x0d, 0x2b, 0x30, 0xf2, 0x0c, -0xfd, 0x67, 0x92, 0x68, 0xc7, 0x49, 0xc2, 0xc1, 0x3b, 0x07, 0x6c, 0xfe, 0x34, 0xb2, 0x1e, 0x3d, -0x3b, 0x98, 0x38, 0x85, 0xd4, 0x16, 0x4e, 0xc0, 0xd4, 0x1a, 0x60, 0xe8, 0x09, 0xe2, 0xe7, 0x4c, -0x7b, 0x26, 0xbf, 0x03, 0xec, 0x7f, 0x38, 0x07, 0x66, 0x8a, 0x3d, 0x72, 0xd4, 0x1d, 0xa4, 0x91, -0xf2, 0xeb, 0x26, 0xce, 0xd1, 0xff, 0xb5, 0x42, 0x3e, 0x57, 0x96, 0xec, 0x0f, 0xf5, 0x94, 0x94, -0xa8, 0xca, 0x18, 0x07, 0xae, 0xd3, 0xd2, 0x0a, 0x6d, 0xe0, 0x5b, 0x80, 0xa3, 0xe4, 0x92, 0x0f, -0x6b, 0xe3, 0xb4, 0x10, 0xaf, 0x7a, 0xf2, 0x3d, 0xea, 0x93, 0x4a, 0x11, 0x8e, 0xc6, 0x96, 0x91, -0x1d, 0xf1, 0xa8, 0x25, 0x1c, 0x6f, 0xcc, 0x89, 0xc4, 0x11, 0x5e, 0xc6, 0x31, 0x0e, 0xda, 0x53, -0x8f, 0xb6, 0xc3, 0x3a, 0xe1, 0x47, 0xaf, 0x21, 0x6e, 0xed, 0x1f, 0x0b, 0xf5, 0xa7, 0xc9, 0xbf, -0x28, 0xbf, 0x72, 0xed, 0x48, 0xe5, 0x16, 0xac, 0xdf, 0x69, 0x7f, 0x1a, 0x62, 0x90, 0x2d, 0x4e, -0x0b, 0x8e, 0x4c, 0x30, 0x9c, 0xa3, 0xbc, 0x13, 0x27, 0xdd, 0x40, 0xf5, 0xbc, 0xb6, 0x9f, 0xdd, -0xe0, 0x76, 0xab, 0x90, 0x96, 0x19, 0x2e, 0x51, 0x41, 0x98, 0xcf, 0x38, 0x90, 0x5e, 0x45, 0x2c, -0x9b, 0xef, 0x7e, 0x10, 0xcc, 0x74, 0x0a, 0xee, 0x99, 0x03, 0x66, 0xc5, 0x85, 0x79, 0xcc, 0xc6, -0xbc, 0x27, 0xe6, 0x52, 0x4d, 0x31, 0x38, 0x1f, 0xbf, 0xf1, 0x0d, 0xe2, 0xec, 0x56, 0x8f, 0x2a, -0x60, 0xfc, 0xa9, 0xd3, 0xca, 0xbe, 0xaf, 0xf2, 0xf1, 0x52, 0xee, 0xcf, 0x05, 0x9c, 0x2b, 0xbd, -0x51, 0xb7, 0xd3, 0x40, 0xe1, 0x23, 0x71, 0x86, 0x8f, 0x9e, 0x74, 0xb2, 0x76, 0x5f, 0x7b, 0x41, -0x6a, 0x04, 0xf3, 0xed, 0x41, 0xc1, 0x3e, 0xb7, 0x03, 0x04, 0x05, 0xa0, 0x8b, 0xea, 0x20, 0xdc, -0xa9, 0xb6, 0xb5, 0x88, 0xad, 0x2c, 0x46, 0x22, 0x87, 0x61, 0x30, 0xd9, 0x69, 0x70, 0xb1, 0xf7, -0x91, 0xb5, 0xd8, 0xcf, 0xf9, 0xe6, 0xd9, 0x60, 0x82, 0x87, 0xa2, 0x3e, 0x36, 0xcf, 0xbe, 0xc7, -0xcb, 0xc3, 0xd6, 0x1e, 0x8f, 0x4a, 0x4e, 0x6b, 0xeb, 0x08, 0x7b, 0x7f, 0xce, 0x03, 0x6a, 0x96, -0x73, 0x0e, 0xce, 0x2c, 0x7a, 0xab, 0x53, 0x6c, 0x08, 0xab, 0xef, 0x2b, 0x16, 0xba, 0x64, 0x51, -0x8c, 0x3e, 0x0c, 0x27, 0x1e, 0x79, 0xba, 0xf7, 0xae, 0xdc, 0x33, 0x7c, 0x90, 0x7a, 0x08, 0xe1, -0x68, 0xfc, 0xd1, 0x6b, 0xed, 0x58, 0x6b, 0xbf, 0x01, 0xc3, 0x6a, 0x71, 0xe4, 0xb1, 0xde, 0x1f, -0xfe, 0x09, 0xb5, 0xa0, 0x1d, 0x7e, 0xf4, 0x5a, 0x07, 0x7d, 0x9b, 0x93, 0x38, 0x8d, 0x61, 0x08, -0x65, 0x7f, 0x3a, 0xfe, 0x7f, 0x87, 0x61, 0xb0, 0x32, 0xc5, 0xdc, 0x0e, 0x72, 0x19, 0xc5, 0x70, -0x5a, 0x58, 0xbb, 0x0e, 0x60, 0x8b, 0x41, 0xdc, 0x95, 0x7a, 0x2a, 0xe0, 0x09, 0x4a, 0x8d, 0x89, -0x53, 0x4c, 0x46, 0xe3, 0xec, 0xec, 0x06, 0xb0, 0x24, 0x2e, 0xe1, 0xaf, 0x3d, 0x71, 0x31, 0x5c, -0x86, 0xab, 0x42, 0xe9, 0x9b, 0x07, 0x66, 0xc7, 0xfa, 0xcc, 0x89, 0xe3, 0x8a, 0x71, 0x76, 0x69, -0xe2, 0x78, 0xb8, 0x27, 0x5a, 0x8b, 0xb1, 0x4f, 0xd8, 0x86, 0xc1, 0xe9, 0x34, 0xba, 0xcc, 0x6e, -0x36, 0xfe, 0x59, 0xfb, 0x9b, 0xb0, 0x4d, 0x27, 0x22, 0x9d, 0xe1, 0x20, 0xce, 0x12, 0xac, 0xdd, -0xd5, 0x11, 0x37, 0x10, 0xaf, 0x90, 0xc1, 0x2a, 0x15, 0x49, 0xd8, 0x5b, 0xbe, 0x50, 0xa4, 0x2f, -0x6c, 0x53, 0x2f, 0xcf, 0x0e, 0x82, 0xf9, 0x2b, 0x58, 0x1d, 0x10, 0xbe, 0x42, 0xfc, 0xa9, 0xe2, -0x92, 0x47, 0xb1, 0xc6, 0x46, 0x8c, 0xbf, 0xdd, 0x93, 0xf1, 0xe4, 0xf3, 0x89, 0x13, 0xd8, 0x3a, -0x93, 0x0f, 0x4b, 0x68, 0x07, 0xec, 0x01, 0xab, 0x93, 0xfa, 0xd9, 0x98, 0x33, 0x14, 0xe9, 0x61, -0xdc, 0x58, 0x46, 0x5b, 0x96, 0xfa, 0xf1, 0xec, 0x22, 0x5c, 0x69, 0x33, 0x69, 0x34, 0x61, 0xaa, -0x8b, 0x31, 0x20, 0x39, 0xa9, 0xc0, 0x18, 0x87, 0xd2, 0x1b, 0xd4, 0x9a, 0xdb, 0x1b, 0x13, 0xc7, -0xa1, 0x70, 0x56, 0x18, 0x2c, 0xac, 0x27, 0x7e, 0xc0, 0xfb, 0x6c, 0x78, 0x15, 0x5b, 0xbd, 0xec, -0x29, 0xb7, 0xee, 0x1e, 0x1a, 0x8b, 0x8a, 0x51, 0x7e, 0x3e, 0x71, 0x9a, 0xfa, 0xc4, 0x35, 0x27, -0x71, 0x96, 0xf8, 0x47, 0xdd, 0xd8, 0x16, 0xd6, 0x2a, 0x33, 0xcb, 0x8d, 0x64, 0x54, 0xb1, 0x26, -0x7e, 0x33, 0x96, 0xf8, 0x34, 0x83, 0xce, 0xf1, 0xaa, 0x01, 0x69, 0x4e, 0xe2, 0xe2, 0xe0, 0xf3, -0xd8, 0xb7, 0x00, 0x3f, 0x63, 0xd2, 0x28, 0x23, 0x7b, 0x32, 0x09, 0xcf, 0xee, 0x89, 0xcd, 0xc6, -0xb1, 0x93, 0x38, 0x1b, 0x13, 0x3e, 0xdc, 0x86, 0x79, 0x5e, 0xdc, 0x17, 0x97, 0x8a, 0x28, 0xef, -0x7d, 0x71, 0xd6, 0x86, 0xbc, 0x70, 0xa7, 0x5a, 0x3b, 0x3b, 0x9c, 0x40, 0x48, 0x24, 0x86, 0xfd, -0x69, 0x24, 0x9d, 0xe2, 0x4f, 0x0b, 0x35, 0x26, 0x2e, 0xb3, 0xb9, 0xf9, 0xb0, 0x1f, 0x24, 0xb9, -0x72, 0xd3, 0x98, 0x3c, 0xd6, 0xc8, 0x2e, 0x25, 0x10, 0xee, 0x8c, 0x06, 0x6e, 0x98, 0x62, 0xc7, -0xa4, 0x14, 0x64, 0xd7, 0xd7, 0x11, 0xe9, 0x8e, 0x49, 0x83, 0x38, 0x87, 0x12, 0x6b, 0x67, 0x37, -0x26, 0xce, 0x82, 0x39, 0x8c, 0x2d, 0x8c, 0xe6, 0xa5, 0xb6, 0x1c, 0xeb, 0x74, 0x7a, 0x73, 0x7c, -0x76, 0x51, 0xe2, 0x32, 0xf5, 0xd7, 0x95, 0x9c, 0x94, 0x3c, 0xdf, 0x23, 0xfb, 0xf0, 0x57, 0xea, -0x28, 0x9f, 0x59, 0x8d, 0x89, 0x4b, 0x4c, 0xb2, 0x68, 0xcf, 0x95, 0xad, 0xae, 0x60, 0xcd, 0x40, -0x60, 0x6a, 0x34, 0x8b, 0xe6, 0x86, 0xd3, 0x23, 0xd8, 0xf9, 0x4c, 0x61, 0x33, 0x79, 0xcf, 0x5f, -0xce, 0x20, 0x4d, 0x41, 0xb0, 0xfe, 0x8b, 0x36, 0xce, 0xb6, 0x43, 0x61, 0xb4, 0x00, 0xc7, 0x90, -0xe7, 0x78, 0xaf, 0xbb, 0xf4, 0xed, 0x03, 0x29, 0xfc, 0xfd, 0x38, 0x67, 0x9b, 0x4d, 0xd5, 0xf1, -0x3b, 0xc6, 0xe1, 0x0c, 0xc5, 0xec, 0x34, 0xf1, 0x19, 0x21, 0x63, 0x4a, 0x2a, 0xef, 0x2f, 0x7b, -0x09, 0xf6, 0x52, 0xbc, 0x66, 0xa0, 0x0d, 0x70, 0x06, 0xee, 0xa7, 0x52, 0xc3, 0x9b, 0x54, 0x80, -0xdd, 0x88, 0xcb, 0x8d, 0xf8, 0x7f, 0x90, 0xc5, 0xda, 0x5a, 0x33, 0xc0, 0xf0, 0xc3, 0x91, 0xa8, -0x8d, 0xfd, 0xff, 0x47, 0xc6, 0xed, 0x07, 0x70, 0x58, 0x8d, 0x21, 0x1e, 0xd3, 0xe6, 0x9c, 0x1b, -0xa2, 0xb5, 0x13, 0x66, 0x6e, 0x28, 0x39, 0x73, 0x13, 0x4f, 0xe1, 0x9b, 0x37, 0xfc, 0x2c, 0xd6, -0x2a, 0x8b, 0xcf, 0xb1, 0x2b, 0x66, 0xfe, 0xff, 0x2f, 0x1e, 0xc6, 0x75, 0x6b, 0x53, 0xac, 0x08, -0x9b, 0x76, 0x38, 0x82, 0x21, 0x71, 0xa4, 0x85, 0x46, 0xe7, 0xe7, 0x5f, 0x3c, 0x34, 0x3f, 0x79, -0xdc, 0xcb, 0x67, 0xe8, 0x0b, 0x86, 0x99, 0x68, 0xdc, 0x47, 0x1d, 0xbc, 0xee, 0x4e, 0x70, 0xb1, -0x79, 0x37, 0xe2, 0x56, 0xc4, 0xb6, 0x36, 0x27, 0x8e, 0xeb, 0x14, 0xfc, 0x2f, 0xb6, 0x45, 0x25, -0x03, 0x49, 0xd4, 0x24, 0x76, 0xd2, 0x69, 0xf6, 0xec, 0x12, 0x30, 0x17, 0x74, 0x80, 0xed, 0x8f, -0xfb, 0x9d, 0xd6, 0xf1, 0x58, 0x31, 0x0a, 0xc3, 0x36, 0x05, 0xae, 0x06, 0xdd, 0x40, 0x71, 0x88, -0x07, 0xfa, 0x6a, 0x3e, 0x49, 0x75, 0x16, 0xcc, 0x77, 0x73, 0x5e, 0x93, 0x00, 0xae, 0x9d, 0x05, -0xf9, 0x7e, 0x98, 0xcb, 0x6a, 0x72, 0xde, 0x15, 0x5c, 0x78, 0x01, 0x3c, 0x72, 0xbd, 0xdf, 0xe0, -0x9f, 0xe6, 0xb7, 0xfa, 0xfd, 0x08, 0xcf, 0xa9, 0x44, 0x5d, 0x1c, 0x6b, 0xf2, 0x50, 0x7b, 0xb2, -0xd4, 0x60, 0xb8, 0x19, 0x9c, 0xd1, 0x9a, 0xb0, 0x8c, 0x74, 0xa1, 0xc1, 0xef, 0xe0, 0x5f, 0x0f, -0x9a, 0x59, 0x6b, 0xf8, 0xfb, 0x9e, 0xbf, 0x6c, 0xf1, 0x80, 0xd3, 0x0b, 0x39, 0x9c, 0xda, 0xc6, -0xa7, 0x02, 0xf6, 0xc4, 0xec, 0x58, 0x2b, 0x33, 0x58, 0x7a, 0x53, 0xab, 0xfd, 0xc8, 0x23, 0x4c, -0x7e, 0xd0, 0xc8, 0xbe, 0xb9, 0x63, 0x96, 0x99, 0x38, 0x53, 0x5c, 0x3d, 0x98, 0x07, 0x71, 0x80, -0xd0, 0x48, 0xba, 0x42, 0xbc, 0xef, 0xaf, 0x96, 0x56, 0x3e, 0x8e, 0x61, 0x76, 0x16, 0x72, 0x8d, -0xdd, 0x63, 0x64, 0xe1, 0xf8, 0xf0, 0x44, 0x25, 0x76, 0x66, 0x54, 0x48, 0xd2, 0x35, 0x0b, 0xae, -0x5c, 0xb6, 0x23, 0x9d, 0x86, 0xf5, 0xff, 0xb7, 0xcd, 0xf4, 0xce, 0x68, 0x30, 0x87, 0x64, 0x24, -0x5e, 0x2e, 0x92, 0x02, 0xc4, 0xb5, 0xef, 0x1d, 0x5a, 0xfb, 0xdc, 0x38, 0x0a, 0xdc, 0x73, 0xa8, -0x9e, 0xd8, 0x52, 0xa3, 0x2b, 0xb8, 0xf6, 0xd8, 0xb1, 0x1f, 0x12, 0x8f, 0xbd, 0xfc, 0x0b, 0x7f, -0x1a, 0xc9, 0x82, 0x14, 0xe4, 0x54, 0x6e, 0xe9, 0x38, 0x73, 0x3c, 0x19, 0x66, 0xaa, 0xdc, 0x22, -0x37, 0x26, 0x46, 0x48, 0xc6, 0x08, 0x73, 0x3e, 0xc9, 0xb8, 0xb0, 0xd7, 0x8f, 0xd2, 0x81, 0x24, -0x2f, 0x37, 0x72, 0xe0, 0x32, 0x83, 0x8a, 0x15, 0x57, 0x9a, 0x83, 0xb9, 0x38, 0x82, 0x0f, 0x92, -0x4c, 0xc9, 0xc8, 0xef, 0x2e, 0x72, 0xa8, 0xfc, 0x73, 0xcc, 0x43, 0xf2, 0x8d, 0x00, 0x7b, 0xb1, -0x56, 0x53, 0xa5, 0x32, 0x9a, 0x7b, 0x95, 0x5b, 0x28, 0x5f, 0xbf, 0x21, 0x44, 0x39, 0xa7, 0xf9, -0x2d, 0x5a, 0xcc, 0xbd, 0x2c, 0x1f, 0x97, 0x9a, 0x83, 0x73, 0xed, 0xdd, 0x68, 0x26, 0x7e, 0x27, -0x1e, 0x53, 0x13, 0x8d, 0x17, 0x5c, 0x7d, 0xab, 0xd8, 0x57, 0x87, 0x56, 0x93, 0x1a, 0x69, 0x76, -0x92, 0xf6, 0xa8, 0x1a, 0xe0, 0xd4, 0x87, 0x9a, 0x81, 0x7b, 0x08, 0x69, 0x70, 0x3b, 0x52, 0x27, -0x46, 0xaa, 0x33, 0x41, 0x48, 0x2d, 0x08, 0xf7, 0xa8, 0x16, 0xa4, 0xe7, 0xad, 0x2f, 0x9d, 0x01, -0x47, 0x23, 0x0b, 0x27, 0x7c, 0x27, 0x01, 0x41, 0x7c, 0xf8, 0x34, 0x8e, 0xdc, 0x4c, 0x7a, 0x17, -0x02, 0x84, 0x79, 0x76, 0xa5, 0xf3, 0x7e, 0x60, 0x2d, 0x36, 0x68, 0xb5, 0x6a, 0x45, 0x9c, 0x87, -0xef, 0xd8, 0x82, 0x37, 0x78, 0xc8, 0xf1, 0xf3, 0x4c, 0x96, 0xd8, 0x13, 0xcd, 0x9f, 0xfd, 0xa0, -0x90, 0x99, 0xb8, 0xe2, 0x37, 0x2c, 0xb8, 0xf2, 0xd9, 0x0c, 0x82, 0x3d, 0xb6, 0xe7, 0x0a, 0x83, -0xcb, 0x34, 0x9a, 0xd1, 0x9f, 0xd5, 0x91, 0x5d, 0x6e, 0xd6, 0x17, 0x7b, 0x3e, 0x6b, 0x23, 0xc8, -0x11, 0x3f, 0x6b, 0xb2, 0x8e, 0xd1, 0x08, 0xff, 0xf2, 0xe9, 0x61, 0xac, 0x9d, 0x8b, 0xee, 0x33, -0xb0, 0x1c, 0x5b, 0x34, 0xcb, 0x69, 0x8e, 0x74, 0x52, 0x2d, 0x12, 0xbb, 0x93, 0xe1, 0xb2, 0x4d, -0xf6, 0x80, 0x40, 0x63, 0x69, 0x66, 0x11, 0x48, 0xec, 0x1b, 0xee, 0x38, 0xee, 0x1d, 0x22, 0x09, -0xa5, 0x99, 0x21, 0xf0, 0x71, 0x88, 0x7c, 0x56, 0x8a, 0x18, 0xd5, 0x0b, 0x9e, 0xaf, 0x05, 0xb1, -0xe5, 0x64, 0xb7, 0x1c, 0xfb, 0xf7, 0xd3, 0x3e, 0x2a, 0x63, 0xd1, 0x95, 0x4f, 0x2f, 0x57, 0x6e, -0x1d, 0x1b, 0x29, 0x8c, 0x3f, 0xd4, 0xc1, 0xdb, 0x34, 0xb2, 0x14, 0xeb, 0x7c, 0x6c, 0x01, 0xf5, -0x57, 0x13, 0xd2, 0xe3, 0x8d, 0x89, 0x33, 0x64, 0x7d, 0x1c, 0x47, 0x0d, 0xcd, 0x2a, 0x26, 0xc5, -0xae, 0x59, 0xa4, 0x47, 0x0a, 0x2e, 0x75, 0xcd, 0x73, 0x07, 0x63, 0xc6, 0x31, 0x2e, 0x3e, 0xe2, -0x84, 0x14, 0x24, 0xa2, 0xa3, 0xd2, 0x2f, 0xb6, 0x08, 0xa1, 0xa2, 0xb1, 0x5d, 0x0a, 0xf1, 0xa0, -0xa8, 0x39, 0x7e, 0x11, 0x7b, 0x32, 0x8a, 0xf5, 0xe9, 0xc2, 0x1d, 0xce, 0x28, 0xcd, 0x8c, 0x2b, -0x15, 0xc0, 0x99, 0x99, 0x48, 0x1f, 0xa6, 0x9f, 0xc5, 0x3d, 0xdd, 0x9e, 0x4f, 0xdb, 0x3c, 0x41, -0xa7, 0x0f, 0x67, 0x8c, 0xcc, 0x66, 0x8c, 0x0f, 0x67, 0x0c, 0x3d, 0x1d, 0x61, 0x7b, 0xa7, 0x3d, -0x9f, 0xee, 0x44, 0xbc, 0xb7, 0x71, 0x66, 0x50, 0xc8, 0xa4, 0xbd, 0x13, 0x83, 0xf2, 0xed, 0xd4, -0x1b, 0xaf, 0x96, 0x72, 0x3e, 0x9e, 0xe3, 0x01, 0xa6, 0x47, 0x21, 0x81, 0x38, 0x3b, 0x0b, 0x67, -0xaf, 0x34, 0x1b, 0x63, 0x63, 0xcc, 0x69, 0x2c, 0xe6, 0x2c, 0xbf, 0x0f, 0x82, 0x4a, 0x4e, 0x4c, -0xc0, 0xaf, 0x33, 0x26, 0x7d, 0xcd, 0xc7, 0xaf, 0x05, 0x95, 0x7b, 0x2e, 0xed, 0x24, 0x5c, 0xe5, -0x67, 0x52, 0x17, 0xc3, 0x87, 0xdd, 0x20, 0x79, 0xd3, 0xdf, 0xad, 0x1a, 0xe0, 0x3b, 0x3f, 0x92, -0xa6, 0xc1, 0x18, 0xed, 0x34, 0xce, 0x9d, 0x61, 0xde, 0xd2, 0xb1, 0xdd, 0x0a, 0xe7, 0xb8, 0x19, -0x39, 0xa6, 0xfd, 0x3f, 0x82, 0x7b, 0xbe, 0x13, 0xa9, 0x2d, 0x0d, 0x77, 0x47, 0x8d, 0x31, 0x07, -0xdf, 0x21, 0x74, 0x58, 0x6b, 0x06, 0x38, 0xaf, 0x01, 0xdd, 0x56, 0x49, 0x48, 0xb3, 0x1f, 0xda, -0x0e, 0x46, 0xc2, 0x57, 0x22, 0xe0, 0xb8, 0xb0, 0xd6, 0x9a, 0x95, 0x30, 0xf1, 0x46, 0xe1, 0x5b, -0x57, 0xed, 0x67, 0x92, 0x18, 0x89, 0x8f, 0xe3, 0x71, 0x83, 0x68, 0x00, 0x7b, 0xd9, 0x18, 0xcd, -0x90, 0x22, 0xce, 0x31, 0x99, 0x81, 0x4d, 0x18, 0x66, 0x8d, 0x5a, 0xc7, 0xb8, 0xa3, 0x12, 0xb9, -0xae, 0xee, 0x99, 0x32, 0x58, 0x93, 0xd2, 0x7f, 0x9c, 0xd7, 0x82, 0xf3, 0x0a, 0x91, 0x64, 0x19, -0x6f, 0x65, 0x62, 0x2d, 0x8e, 0xb9, 0x60, 0x74, 0x9e, 0x14, 0x41, 0x7c, 0x63, 0xf4, 0x9b, 0x43, -0x38, 0x57, 0x69, 0x9c, 0x7c, 0x95, 0x6e, 0x05, 0x73, 0x9c, 0x11, 0x69, 0x4c, 0x42, 0x70, 0xd3, -0x11, 0xac, 0x25, 0xe6, 0x68, 0x94, 0x22, 0x72, 0x80, 0xcf, 0x77, 0xd2, 0x59, 0x11, 0x8b, 0x72, -0x8e, 0xa1, 0xeb, 0xe4, 0x3d, 0x83, 0xe5, 0xed, 0xc1, 0x9c, 0x6c, 0xce, 0xc8, 0x5b, 0x67, 0x30, -0xe5, 0x0d, 0x73, 0x4b, 0xcd, 0x09, 0xb1, 0x81, 0x48, 0x1c, 0xa7, 0x94, 0x1b, 0x62, 0x5e, 0x84, -0xbe, 0x64, 0x47, 0x08, 0x99, 0x69, 0xae, 0x24, 0x9e, 0xfa, 0x03, 0x3e, 0x51, 0xd9, 0xae, 0xdb, -0x5c, 0x0f, 0x8c, 0x71, 0xa7, 0xb2, 0xd6, 0x63, 0x7d, 0x23, 0xf1, 0x14, 0x7e, 0xb0, 0xcd, 0xb8, -0x0e, 0x1a, 0xd1, 0x9b, 0xd1, 0x5b, 0x47, 0xb9, 0x53, 0x2f, 0x69, 0x90, 0xf7, 0xf8, 0x23, 0x98, -0x37, 0x49, 0x53, 0x3b, 0xf0, 0xd7, 0x0c, 0x59, 0xb8, 0x2f, 0x92, 0xb0, 0x4c, 0x57, 0x9b, 0xed, -0xe8, 0x00, 0xee, 0x88, 0x7c, 0x34, 0xae, 0x31, 0x2c, 0x0b, 0xe7, 0x9c, 0x99, 0xce, 0x03, 0xaa, -0xfb, 0x5e, 0x7a, 0x45, 0x35, 0x45, 0x3a, 0xe9, 0x9d, 0xe0, 0xc9, 0xb9, 0x29, 0xb5, 0xfd, 0x92, -0x35, 0x6a, 0x74, 0x56, 0xc9, 0x37, 0xcb, 0xb8, 0xae, 0xa2, 0x37, 0x33, 0xe9, 0x4e, 0x2a, 0x25, -0xc7, 0x8b, 0xb9, 0xe2, 0xdc, 0x61, 0xfb, 0xc9, 0x5d, 0xf7, 0xb6, 0x72, 0xac, 0xb3, 0x0a, 0xe7, -0xa7, 0xca, 0x24, 0xdc, 0x6d, 0x36, 0x9b, 0x15, 0xe0, 0x9b, 0x51, 0x13, 0xfe, 0x36, 0xab, 0x11, -0x1b, 0xce, 0x73, 0x7c, 0xaa, 0x64, 0xef, 0x4d, 0xaa, 0x8c, 0x58, 0xc6, 0x18, 0x35, 0x79, 0xb0, -0x75, 0x8a, 0x99, 0xcd, 0xfb, 0xfd, 0xb8, 0xa6, 0x18, 0x71, 0xd5, 0xe8, 0x67, 0x78, 0x6a, 0x7b, -0x78, 0x7d, 0xd4, 0x81, 0xef, 0x0c, 0x27, 0x8c, 0x1c, 0x44, 0x7a, 0x32, 0x8d, 0x87, 0x63, 0x98, -0x85, 0x87, 0x61, 0x4d, 0x0b, 0x93, 0x77, 0x0d, 0x04, 0xe5, 0x48, 0x3c, 0x9c, 0xa5, 0x5e, 0xe1, -0xf5, 0x56, 0x2c, 0x26, 0x48, 0x1c, 0xc2, 0x92, 0xa6, 0xd4, 0x9a, 0x89, 0x2e, 0x94, 0x83, 0x95, -0x6b, 0xe8, 0xee, 0x81, 0xeb, 0x3b, 0xc8, 0xf5, 0x43, 0xbe, 0x07, 0x57, 0x45, 0xda, 0xeb, 0x8e, -0x38, 0x3c, 0x41, 0x6f, 0x03, 0x64, 0xfd, 0xd3, 0x3f, 0xfe, 0xd3, 0x3f, 0x76, 0x40, 0xce, 0x2d, -0x14, 0x96, 0xd8, 0xef, 0x85, 0xf0, 0x73, 0xb8, 0x27, 0x44, 0xcc, 0xfe, 0xc4, 0xab, 0x91, 0x1f, -0xe2, 0x5c, 0xfe, 0xb9, 0x23, 0xef, 0x1d, 0xb0, 0x8a, 0x30, 0x13, 0xc3, 0xfa, 0x23, 0xfd, 0x7b, -0xfb, 0x69, 0x3f, 0x50, 0xf6, 0xf1, 0x3b, 0x60, 0x9b, 0x8e, 0xa5, 0x54, 0x47, 0x2b, 0x6a, 0x33, -0x58, 0xeb, 0xb2, 0xf1, 0x37, 0xa2, 0x2e, 0x56, 0x72, 0xf0, 0x7f, 0x4b, 0x34, 0x13, 0x7f, 0x57, -0x47, 0x03, 0xac, 0xc5, 0x41, 0xa9, 0xcc, 0xbf, 0x42, 0xc8, 0x24, 0x59, 0x19, 0x3f, 0x9d, 0xff, -0xf8, 0x78, 0x49, 0x48, 0x05, 0x10, 0xfc, 0x96, 0xb6, 0xf9, 0xb0, 0x6f, 0xa8, 0x3e, 0x4f, 0x2b, -0x73, 0xa5, 0x86, 0xa4, 0xbc, 0x8e, 0xcb, 0xec, 0x4c, 0x63, 0xa1, 0xdb, 0x15, 0xc9, 0x99, 0xd6, -0x3a, 0x93, 0x3d, 0x1f, 0xc4, 0x27, 0x70, 0x4c, 0x47, 0xaa, 0x28, 0x4d, 0x24, 0x5d, 0x0e, 0x09, -0x1e, 0x4a, 0xb5, 0xaa, 0x85, 0x44, 0x8d, 0x96, 0xe2, 0xc9, 0xa4, 0x8c, 0x3c, 0x8e, 0x8c, 0x13, -0xa1, 0x0f, 0xe7, 0x17, 0x62, 0x8b, 0x43, 0xd8, 0x6f, 0x15, 0x5e, 0x63, 0x83, 0x58, 0xb2, 0x1e, -0x31, 0x45, 0x49, 0x07, 0xd0, 0xaa, 0x38, 0xbf, 0x84, 0x49, 0xd2, 0x9c, 0x52, 0x44, 0x9f, 0xa8, -0x49, 0x8a, 0x6f, 0xd1, 0xe4, 0xb9, 0xc1, 0x65, 0x8a, 0x74, 0xb5, 0xdd, 0xb6, 0xb5, 0x0b, 0xe9, -0xc5, 0xae, 0x68, 0x86, 0xf6, 0xf5, 0xf1, 0xaa, 0x01, 0x2f, 0xa8, 0x87, 0xc3, 0x3d, 0x0d, 0xd6, -0xdb, 0xf6, 0xc2, 0x9c, 0x02, 0x57, 0x75, 0xb7, 0xcb, 0xb4, 0xb8, 0x4b, 0x0a, 0xc7, 0x20, 0xd2, -0x6d, 0xfb, 0xb7, 0x02, 0x57, 0x24, 0xbe, 0x33, 0xde, 0x74, 0x49, 0x12, 0x9b, 0xc4, 0x98, 0x20, -0xe7, 0x99, 0x19, 0xd7, 0x75, 0x61, 0x07, 0xad, 0x12, 0xc9, 0xda, 0x14, 0x88, 0xad, 0xb6, 0x23, -0x03, 0x7e, 0xe2, 0xdf, 0x2d, 0xc4, 0xb1, 0x7f, 0x3f, 0x8e, 0xc6, 0x42, 0x37, 0xd1, 0xc9, 0x88, -0x1b, 0x70, 0x84, 0xd2, 0x19, 0x44, 0x47, 0xd5, 0x00, 0x9d, 0x39, 0x8c, 0xa6, 0x3a, 0xa5, 0xe9, -0x1c, 0xa9, 0x40, 0xba, 0xa6, 0x0a, 0xc7, 0xdd, 0x62, 0x4c, 0xb3, 0x54, 0xaa, 0x7e, 0xf3, 0x23, -0x30, 0xd3, 0xd8, 0x9a, 0xe1, 0x4d, 0x3f, 0xf5, 0x32, 0xa8, 0x05, 0x83, 0x1e, 0x10, 0xd5, 0x3c, -0x87, 0x07, 0x0c, 0x3b, 0xbd, 0xe9, 0x7f, 0x52, 0x3d, 0xe5, 0x17, 0xa0, 0x00, 0xe9, 0x1c, 0xaf, -0x90, 0x49, 0x98, 0xf4, 0xf7, 0xbb, 0x99, 0xb4, 0xae, 0x95, 0xaf, 0xed, 0x35, 0xcf, 0xb2, 0x19, -0x47, 0xe7, 0x7c, 0x5b, 0x70, 0xcf, 0x5f, 0x93, 0x7f, 0xb3, 0x6a, 0xb2, 0xda, 0x90, 0x36, 0xb5, -0x2e, 0x3c, 0x0d, 0x42, 0x16, 0xa6, 0x77, 0x2e, 0x52, 0x4a, 0xb1, 0xf7, 0xe6, 0xab, 0xe7, 0x95, -0x4c, 0x92, 0xe4, 0xc1, 0x67, 0x89, 0x8d, 0x60, 0xa7, 0x9a, 0x4b, 0x31, 0xd5, 0x4c, 0xbf, 0x40, -0xab, 0x29, 0xc7, 0xd3, 0x7f, 0xa8, 0x63, 0x14, 0x21, 0x12, 0x10, 0x7e, 0xc3, 0x53, 0x3f, 0xc4, -0xb5, 0x7d, 0x1a, 0x2f, 0x07, 0x43, 0x2a, 0xbd, 0x53, 0x6c, 0xb7, 0xee, 0x86, 0xa8, 0xf9, 0x65, -0xdc, 0xa9, 0x84, 0x41, 0xdd, 0x21, 0x85, 0xdb, 0xc1, 0x95, 0xb6, 0xe5, 0x87, 0x7e, 0x19, 0xf2, -0x15, 0xd2, 0x7c, 0x62, 0x3c, 0xd4, 0x73, 0xa8, 0xe7, 0xc3, 0x3e, 0xfc, 0x8d, 0xfb, 0x82, 0x8b, -0xce, 0x0b, 0x33, 0x16, 0x7d, 0x7c, 0x1a, 0x7c, 0x9e, 0xf4, 0xfb, 0x6f, 0x6b, 0xc2, 0x2d, 0xcc, -0x5d, 0x38, 0x7f, 0xf3, 0x77, 0xbe, 0x00, 0x12, 0x8e, 0xbf, 0xfd, 0x9e, 0x4a, 0x84, 0x5c, 0x06, -0xd2, 0x6f, 0x21, 0x98, 0x47, 0x38, 0x6d, 0x1e, 0xa3, 0xbc, 0x70, 0xdc, 0xe7, 0xd2, 0xbe, 0x16, -0x7e, 0x86, 0xfb, 0xb8, 0xba, 0x18, 0xa2, 0x00, 0xb8, 0x8b, 0x2e, 0xb7, 0xd4, 0x18, 0xfe, 0x0a, -0x6a, 0x0b, 0xfe, 0xa6, 0xa9, 0x3e, 0x45, 0xa6, 0x1b, 0x5b, 0x4e, 0x7f, 0xb0, 0x15, 0xa2, 0x96, -0x4b, 0xbb, 0x92, 0x3c, 0x2c, 0x83, 0x0d, 0xee, 0x99, 0x23, 0x5d, 0xac, 0x1d, 0x19, 0xad, 0x34, -0x3e, 0xb0, 0xfe, 0xc4, 0x39, 0x7c, 0xf0, 0x49, 0xa9, 0xb4, 0xa6, 0xd7, 0x93, 0xa5, 0x0e, 0x29, -0x55, 0x9e, 0x52, 0x57, 0x2e, 0xb8, 0x94, 0xac, 0x97, 0xef, 0xc6, 0xfd, 0xaa, 0xa5, 0xfc, 0x53, -0x8f, 0x80, 0x2d, 0xd9, 0xa8, 0x98, 0x3d, 0x4d, 0xe0, 0xc1, 0x2f, 0x3e, 0x26, 0x37, 0x60, 0x51, -0x3c, 0xad, 0x02, 0xa5, 0xdf, 0xa5, 0x60, 0xbe, 0x62, 0x12, 0xe6, 0x8c, 0x46, 0xcc, 0x88, 0xf4, -0xd4, 0xf4, 0xed, 0xde, 0x2e, 0x64, 0x37, 0x42, 0xc2, 0xac, 0x38, 0xa5, 0x05, 0x92, 0xd9, 0x9e, -0x15, 0x35, 0x4b, 0xe6, 0x1d, 0xd4, 0x67, 0x1f, 0x6f, 0x7a, 0x1c, 0xe9, 0x7f, 0x33, 0x5b, 0x51, -0x86, 0x69, 0xe5, 0x43, 0x9c, 0x43, 0xd4, 0x92, 0x46, 0xb5, 0xfc, 0x4e, 0x66, 0x79, 0x9c, 0xa8, -0xbc, 0xe7, 0xd3, 0x8b, 0x38, 0x26, 0xf2, 0x5c, 0xb8, 0x17, 0xcc, 0x9d, 0x03, 0x36, 0xdc, 0xf7, -0x67, 0x75, 0x9c, 0x18, 0xa3, 0xee, 0xca, 0x38, 0xc5, 0xf7, 0x38, 0x7f, 0xc7, 0xf5, 0xff, 0x62, -0xe5, 0xe3, 0x2e, 0x5c, 0x0b, 0x98, 0x44, 0x25, 0xb6, 0xfc, 0x57, 0x35, 0xa1, 0xc6, 0x6b, 0x27, -0x08, 0x7e, 0x77, 0x9f, 0x22, 0xda, 0x2c, 0xd4, 0x2e, 0x7c, 0x4c, 0xf1, 0xae, 0x9d, 0xa7, 0x34, -0xe9, 0x17, 0xe9, 0xf9, 0x53, 0x4c, 0x13, 0xe1, 0x78, 0x39, 0x6b, 0x2d, 0x10, 0xbd, 0xfa, 0x3b, -0x19, 0xe7, 0x67, 0xc4, 0x1e, 0x30, 0x43, 0x9b, 0x77, 0xd7, 0x7a, 0xd5, 0xae, 0xd1, 0x71, 0x16, -0xce, 0xc7, 0xb3, 0x16, 0x14, 0x8c, 0x97, 0x2d, 0xb4, 0x28, 0x3b, 0xd6, 0x47, 0xf3, 0xc7, 0x7f, -0xa3, 0x53, 0xe0, 0x9d, 0xf1, 0xda, 0x7d, 0x6d, 0xca, 0xae, 0xf5, 0xd1, 0x2c, 0xdc, 0x93, 0x9f, -0xf2, 0xa7, 0x63, 0xad, 0x4e, 0xa4, 0xb4, 0x09, 0x49, 0xa1, 0x48, 0x1c, 0xe9, 0x64, 0xda, 0x91, -0x9d, 0x42, 0xba, 0xc3, 0xe1, 0x9a, 0x66, 0xea, 0x4a, 0x24, 0x3e, 0xbd, 0xc8, 0xcf, 0x85, 0x8f, -0x07, 0xf8, 0xff, 0x7f, 0x8e, 0x79, 0xa1, 0x8a, 0xe8, 0xce, 0x53, 0x58, 0xdb, 0x73, 0xb4, 0xf7, -0xf1, 0x7b, 0x92, 0xe3, 0xdb, 0x39, 0x8d, 0xb8, 0xa6, 0xaf, 0x9d, 0x60, 0xbb, 0x84, 0xf3, 0x0c, -0xc7, 0x9c, 0x9c, 0x1d, 0xfc, 0xf4, 0x12, 0xae, 0xf6, 0x00, 0xcf, 0x39, 0x81, 0xe1, 0x86, 0x23, -0x18, 0x32, 0xcc, 0xa4, 0xbd, 0x10, 0x2a, 0x54, 0x07, 0xd6, 0x52, 0x4c, 0xff, 0xca, 0x76, 0x2f, -0xa3, 0x44, 0x31, 0xef, 0x3e, 0xe7, 0x9c, 0x4f, 0x2f, 0xb5, 0x6a, 0xa7, 0x84, 0x89, 0x97, 0x7d, -0xd0, 0x30, 0x57, 0x59, 0x65, 0xbd, 0x15, 0x2c, 0xaa, 0xe9, 0x96, 0xbd, 0x20, 0x65, 0x41, 0xa4, -0xf3, 0xa5, 0x57, 0x9a, 0xce, 0xff, 0x24, 0x1e, 0xee, 0x6d, 0xca, 0x28, 0xfe, 0xb4, 0x0f, 0xac, -0xb3, 0xc0, 0x72, 0xed, 0x84, 0x2a, 0x4a, 0x66, 0x7f, 0x3a, 0x8e, 0x23, 0xad, 0xd5, 0x8a, 0x65, -0xc1, 0xb9, 0x6b, 0x27, 0xca, 0xd8, 0x38, 0xa2, 0x1c, 0x79, 0x8b, 0xae, 0x9d, 0x70, 0xf3, 0xb9, -0x5e, 0xc2, 0xf5, 0x01, 0x34, 0x5b, 0x9c, 0xe1, 0x16, 0x90, 0x82, 0xd5, 0x7d, 0xca, 0x76, 0xe2, -0x87, 0x51, 0xcd, 0xec, 0x4b, 0x87, 0x97, 0x24, 0xb2, 0xb5, 0xba, 0x11, 0xb5, 0xaa, 0x88, 0x6b, -0x81, 0xea, 0x9b, 0x42, 0xd5, 0x5d, 0x64, 0x54, 0x5d, 0x5a, 0xc5, 0xb9, 0x8a, 0xe1, 0x4f, 0x5f, -0xd7, 0x38, 0x7f, 0x98, 0xe4, 0xbb, 0x47, 0x5b, 0x9f, 0x5a, 0x81, 0x4e, 0x68, 0xe7, 0x1d, 0x51, -0xdc, 0x24, 0xe1, 0x26, 0x89, 0x87, 0xba, 0x0e, 0x75, 0xe1, 0x3c, 0xeb, 0x3a, 0x14, 0x67, 0xdc, -0xda, 0x33, 0x42, 0xab, 0xcd, 0x30, 0x7a, 0x36, 0x5c, 0x11, 0xe9, 0x92, 0x66, 0x0b, 0xd9, 0x83, -0x5d, 0x4d, 0x87, 0x5b, 0x6e, 0xdb, 0x11, 0x6f, 0x9c, 0x17, 0xc1, 0xbd, 0xa8, 0x90, 0x9d, 0x9a, -0xca, 0x15, 0x5c, 0x70, 0x46, 0x98, 0xb1, 0xe0, 0x93, 0x6d, 0x20, 0x95, 0x20, 0xbd, 0x64, 0x18, -0x5b, 0xf9, 0xe5, 0xbc, 0x02, 0x98, 0x59, 0x8c, 0x5b, 0x6e, 0x2f, 0x04, 0x48, 0xc6, 0x88, 0xf1, -0x6f, 0x32, 0x39, 0xf1, 0x04, 0x70, 0xee, 0x7f, 0xc1, 0xe3, 0x6e, 0x16, 0x7c, 0x9e, 0x66, 0x21, -0xe0, 0xf1, 0x0b, 0xf9, 0xa4, 0x49, 0x45, 0x91, 0xac, 0x02, 0xf8, 0x55, 0xab, 0xf5, 0x2e, 0xa8, -0x34, 0x0b, 0xaa, 0x31, 0x12, 0x57, 0xac, 0xc5, 0x17, 0x04, 0xd7, 0x5b, 0x07, 0xa7, 0x17, 0x25, -0x20, 0xd2, 0x17, 0x89, 0xdb, 0x71, 0x16, 0x47, 0x49, 0x43, 0xa9, 0x25, 0x6a, 0x1a, 0x1c, 0x86, -0xc4, 0xf2, 0x37, 0xe8, 0xb7, 0x16, 0x84, 0x03, 0x44, 0xab, 0x09, 0xae, 0x43, 0x03, 0x6f, 0x0e, -0xc9, 0x9e, 0x04, 0xb8, 0x90, 0xa6, 0x8b, 0x9a, 0x5b, 0x18, 0xf6, 0x4f, 0x64, 0xb6, 0xb8, 0x0e, -0x0f, 0xb8, 0x2c, 0x44, 0x6d, 0xa5, 0xdf, 0xdf, 0xc6, 0xe0, 0x3c, 0x7c, 0x72, 0x66, 0x30, 0xfd, -0x5d, 0xd5, 0xc2, 0x21, 0x8b, 0x63, 0x6d, 0x93, 0x8c, 0x33, 0xb0, 0x5d, 0xf2, 0xe2, 0xfa, 0xf3, -0xc6, 0x36, 0x5a, 0x85, 0x0e, 0x6e, 0x23, 0x49, 0xc5, 0x83, 0x4f, 0xe2, 0xb7, 0xfb, 0x22, 0x71, -0xef, 0x42, 0xfb, 0x97, 0xa9, 0x6e, 0xb8, 0x77, 0x16, 0x48, 0x92, 0x91, 0xd5, 0xc0, 0x18, 0x16, -0xd4, 0x53, 0x7e, 0x70, 0x4e, 0xdb, 0x1c, 0x47, 0xcc, 0xc7, 0xf4, 0x53, 0x90, 0x2e, 0x25, 0xa9, -0xe8, 0xcd, 0x57, 0x8a, 0x3e, 0xee, 0x03, 0xdf, 0x8a, 0xf4, 0xfb, 0x49, 0xaf, 0x12, 0xf1, 0x9b, -0xb8, 0x83, 0x65, 0x1f, 0x09, 0x33, 0xca, 0x3e, 0xde, 0x0d, 0x7c, 0x6c, 0xc3, 0x76, 0xdb, 0x1c, -0x46, 0x03, 0x2c, 0xc6, 0x91, 0xb8, 0xb5, 0x36, 0x17, 0x9f, 0x16, 0x46, 0x1b, 0x6a, 0x89, 0x4a, -0x28, 0x8a, 0x2e, 0xc6, 0xdf, 0x52, 0x1c, 0x75, 0x9f, 0x29, 0x11, 0xb6, 0x8e, 0xd6, 0xb1, 0x55, -0x55, 0xc5, 0xdf, 0x45, 0x18, 0x7a, 0x42, 0xa9, 0xc0, 0xa7, 0xc6, 0x68, 0x69, 0x2d, 0xad, 0xa8, -0x6a, 0x94, 0xd2, 0x3e, 0xc8, 0xd6, 0xd5, 0x65, 0xf8, 0x75, 0x9f, 0xc2, 0xd7, 0xd9, 0x02, 0xfc, -0x6d, 0x8d, 0xce, 0x63, 0xab, 0x2d, 0x8e, 0x75, 0x45, 0x82, 0xd9, 0x89, 0x38, 0xf6, 0x44, 0x2e, -0xcc, 0x46, 0x2a, 0x28, 0xa0, 0xb8, 0x99, 0xfe, 0xa9, 0x80, 0x32, 0x03, 0xff, 0x4b, 0xf8, 0x3f, -0x13, 0xff, 0x1b, 0xf1, 0x7f, 0x06, 0xfe, 0x17, 0xf0, 0xbf, 0x09, 0xff, 0x8b, 0x10, 0x58, 0xfc, -0x43, 0xeb, 0x2d, 0xd8, 0x6a, 0x48, 0x44, 0xf6, 0xd2, 0x99, 0x4c, 0x10, 0x31, 0xe9, 0x6c, 0x08, -0xb4, 0x18, 0x86, 0x3a, 0x55, 0xd5, 0x9f, 0x41, 0x5a, 0xa4, 0x10, 0x3b, 0xb9, 0x6a, 0x06, 0x94, -0x1a, 0x86, 0x51, 0x33, 0x14, 0x3b, 0x3f, 0x65, 0xc1, 0x9d, 0x53, 0x50, 0x2d, 0x90, 0x66, 0xa8, -0x17, 0x15, 0x2b, 0xc6, 0x4b, 0x86, 0xb8, 0xcb, 0xce, 0x61, 0xab, 0x6f, 0x41, 0x6a, 0xc2, 0x52, -0xdd, 0x13, 0x35, 0x21, 0xa5, 0x02, 0x23, 0x3f, 0x9f, 0x85, 0x2b, 0x3c, 0x61, 0x38, 0xc5, 0x12, -0x6b, 0x57, 0x4c, 0xb1, 0x16, 0xa4, 0x11, 0x57, 0x93, 0x44, 0xc2, 0x37, 0x2f, 0x08, 0x40, 0x1c, -0x12, 0x54, 0x62, 0xc9, 0x50, 0xf4, 0x69, 0x65, 0x1f, 0x1f, 0x3b, 0xf3, 0xf3, 0xbc, 0x7e, 0xc1, -0x85, 0x63, 0xc7, 0xe3, 0xf3, 0xe3, 0x7e, 0xce, 0x2f, 0xf8, 0x8e, 0xe0, 0xda, 0x75, 0x87, 0x8c, -0x33, 0xdf, 0x44, 0x27, 0x0e, 0x02, 0xb4, 0xfb, 0xde, 0x19, 0xf0, 0x1b, 0xd9, 0xbc, 0x78, 0x9a, -0xdf, 0x51, 0xb4, 0x08, 0x3b, 0x68, 0x35, 0xa0, 0xbd, 0x85, 0x79, 0x53, 0x17, 0x93, 0xa2, 0xa4, -0x93, 0xc1, 0x93, 0xec, 0xdc, 0xc2, 0xda, 0x88, 0x7d, 0xe0, 0xc2, 0x2f, 0x91, 0xae, 0xd4, 0x5c, -0x10, 0xfb, 0xb3, 0xb4, 0xd5, 0x71, 0x4a, 0x5d, 0xdf, 0x26, 0x19, 0x0e, 0x75, 0x1f, 0xea, 0xfe, -0xb0, 0xef, 0x68, 0xfc, 0x68, 0xb7, 0xab, 0x98, 0x8d, 0xfb, 0x8f, 0x6b, 0x80, 0xe7, 0xe8, 0x02, -0xe7, 0x2a, 0xf0, 0x30, 0x9e, 0x3c, 0xba, 0xe1, 0xf2, 0xa5, 0x52, 0xa8, 0x44, 0xdb, 0x3b, 0xf9, -0xf9, 0xdf, 0x28, 0x7d, 0x8f, 0x78, 0xcd, 0x53, 0x84, 0xab, 0x39, 0x52, 0x87, 0x29, 0xd4, 0x32, -0xd2, 0x9f, 0x1e, 0xa2, 0x93, 0x91, 0x62, 0xf6, 0x21, 0x3c, 0x4c, 0xb1, 0x36, 0x84, 0x45, 0x2b, -0xce, 0x9b, 0x0e, 0x0e, 0x0b, 0x5a, 0x5b, 0x71, 0x6d, 0xb6, 0x32, 0x59, 0x09, 0xda, 0x55, 0xb0, -0x15, 0xdf, 0x4e, 0xd4, 0xa4, 0x80, 0xab, 0xa1, 0x79, 0xc1, 0x69, 0x3a, 0x83, 0x15, 0x7f, 0x8a, -0x6f, 0xb5, 0xb8, 0x32, 0x0b, 0x20, 0xab, 0xa5, 0xf8, 0x55, 0xc4, 0xa7, 0x96, 0xa8, 0x35, 0x96, -0x5b, 0x4a, 0x46, 0x45, 0x23, 0x2a, 0x88, 0xcf, 0x60, 0xa8, 0x01, 0x9f, 0x97, 0x8d, 0x86, 0x16, -0x61, 0x68, 0x3f, 0x7b, 0xf6, 0xe0, 0x78, 0x30, 0xe2, 0x5b, 0x07, 0xe6, 0x66, 0x2c, 0xfe, 0x97, -0xf4, 0x93, 0x98, 0x63, 0x04, 0x63, 0x3c, 0x18, 0x35, 0xe3, 0xef, 0x42, 0xc2, 0x86, 0x5a, 0x9e, -0x12, 0x69, 0xd9, 0x42, 0x58, 0xad, 0x00, 0x83, 0x52, 0x80, 0xef, 0xf5, 0xa3, 0xb9, 0x2d, 0xc0, -0xf4, 0x85, 0x5a, 0x19, 0xdf, 0x67, 0x35, 0xf9, 0xb6, 0xea, 0x1a, 0x97, 0xfb, 0x0c, 0x2d, 0x65, -0x9a, 0x7f, 0x4a, 0xe5, 0x9e, 0xab, 0x67, 0x39, 0xad, 0x20, 0x52, 0x09, 0xad, 0xa3, 0xb9, 0x2c, -0x56, 0x41, 0xf8, 0x2c, 0x35, 0x95, 0x70, 0x5a, 0xab, 0xd3, 0x9f, 0x70, 0x56, 0xbe, 0x8c, 0x31, -0xea, 0x58, 0x9d, 0xe8, 0xec, 0x5b, 0xd1, 0xea, 0x54, 0xcf, 0x42, 0xb0, 0x7c, 0x78, 0x5a, 0x2b, -0x5f, 0x1d, 0xcd, 0x0f, 0xe7, 0x94, 0xf0, 0x73, 0x0c, 0x35, 0x72, 0x68, 0x31, 0xae, 0xd2, 0x34, -0x65, 0xc5, 0x44, 0x38, 0x08, 0x5d, 0x18, 0x27, 0x0d, 0x9f, 0xd7, 0x8c, 0x86, 0xde, 0x83, 0xa1, -0x0d, 0x18, 0x4a, 0x2d, 0x69, 0x18, 0x0d, 0xad, 0xc0, 0xd0, 0x25, 0x18, 0x9a, 0x3e, 0xa9, 0xd6, -0xc1, 0xd1, 0x5a, 0x9b, 0xf1, 0x2d, 0x8f, 0x95, 0x34, 0x85, 0xa4, 0xde, 0x2b, 0xf7, 0x5c, 0x2b, -0x54, 0x20, 0x61, 0xc7, 0x78, 0xcd, 0xa3, 0x29, 0xbe, 0x89, 0x71, 0x32, 0xb4, 0xda, 0x36, 0x30, -0x68, 0x55, 0xa8, 0xea, 0x68, 0x3d, 0x4d, 0xd4, 0x66, 0xa5, 0x6a, 0x62, 0xc9, 0x70, 0x5c, 0xab, -0xe5, 0xb8, 0xba, 0xc3, 0x01, 0xad, 0x96, 0xe3, 0xfa, 0x1b, 0x06, 0x47, 0xeb, 0x93, 0x8e, 0x6f, -0x3f, 0xc5, 0x1c, 0xd3, 0x11, 0x8a, 0xa7, 0x94, 0xf6, 0x89, 0x35, 0x87, 0xde, 0x14, 0x78, 0xb7, -0x6b, 0xd0, 0xfe, 0xb3, 0x52, 0xa5, 0xc5, 0x88, 0xa9, 0x75, 0x18, 0x26, 0x6a, 0xb0, 0x6e, 0x56, -0xed, 0x56, 0xda, 0xd4, 0x19, 0xd4, 0x4a, 0x6c, 0x19, 0x3b, 0x31, 0x51, 0x9c, 0x04, 0x37, 0x75, -0xbe, 0x96, 0xcb, 0x6a, 0xfc, 0x96, 0x87, 0xff, 0x57, 0x60, 0x6e, 0x5e, 0x2d, 0xce, 0xcf, 0x6a, -0x06, 0x9c, 0x61, 0xfa, 0xce, 0x66, 0x8b, 0x23, 0x6c, 0x8f, 0x66, 0xd8, 0xb7, 0x83, 0x70, 0xc7, -0x83, 0x84, 0x05, 0x64, 0xda, 0x21, 0xb6, 0xba, 0x1e, 0x70, 0x3f, 0x90, 0x5c, 0x29, 0xe6, 0xe7, -0xe1, 0x4a, 0xe1, 0x72, 0xe2, 0x6c, 0xc7, 0x55, 0x22, 0xe0, 0xfe, 0x96, 0xb4, 0xf0, 0xcd, 0x7f, -0x01, 0x33, 0xa3, 0x37, 0x6d, 0x31, 0x77, 0x29, 0x84, 0x37, 0x63, 0xad, 0x8f, 0x44, 0xfa, 0x3a, -0x68, 0x07, 0x5c, 0x8a, 0xe1, 0xf3, 0x55, 0x27, 0x0b, 0xdf, 0xce, 0xce, 0x3e, 0xf7, 0x60, 0xe9, -0xf3, 0x41, 0x88, 0x9a, 0x22, 0x7d, 0x72, 0xb1, 0x62, 0x5c, 0xdc, 0xd7, 0x26, 0xac, 0x15, 0x14, -0xa3, 0x5c, 0x2c, 0x2f, 0x78, 0xec, 0xb5, 0xbf, 0x09, 0xe1, 0x6c, 0x37, 0x92, 0xee, 0x09, 0x04, -0x83, 0x8f, 0x68, 0x70, 0x46, 0x7f, 0x3c, 0x9d, 0x32, 0xeb, 0x5b, 0xc2, 0xa5, 0xd1, 0x19, 0x4e, -0x51, 0x3b, 0x67, 0x64, 0x14, 0x84, 0x2b, 0x1e, 0x2d, 0xd1, 0x68, 0x87, 0x63, 0x8c, 0x3e, 0x59, -0x10, 0xad, 0xe2, 0x14, 0x46, 0xb8, 0x38, 0x6a, 0x74, 0x14, 0x26, 0xce, 0xb6, 0x48, 0x87, 0x07, -0x78, 0x5c, 0xfc, 0x6e, 0x8c, 0x66, 0x62, 0x78, 0xb6, 0x13, 0x90, 0x7e, 0x10, 0x38, 0xfd, 0x90, -0xba, 0xaa, 0x2b, 0x99, 0x24, 0x97, 0xcf, 0x29, 0x11, 0x3a, 0x15, 0x54, 0x8c, 0x88, 0x05, 0xf9, -0x0d, 0xa8, 0x36, 0xeb, 0x2b, 0xef, 0xb9, 0x36, 0xac, 0xe9, 0xeb, 0xb2, 0xfa, 0x90, 0xb6, 0x93, -0xca, 0x3c, 0x55, 0x7f, 0x3c, 0x8d, 0x30, 0xf0, 0xc1, 0x0f, 0xb0, 0x65, 0xe6, 0xa2, 0xb3, 0x20, -0x3c, 0xf1, 0xaa, 0x42, 0xff, 0xc5, 0xfc, 0x0e, 0x20, 0x7c, 0x92, 0xc8, 0x19, 0x2e, 0x3e, 0x77, -0x2d, 0xf1, 0xa3, 0xd7, 0xbc, 0x66, 0x26, 0x4f, 0x65, 0xb5, 0xd9, 0xa2, 0x3e, 0x5c, 0x0b, 0xfe, -0x4e, 0xcd, 0x52, 0x5c, 0x88, 0x51, 0x6d, 0x87, 0xe2, 0x81, 0xb9, 0x66, 0xe0, 0x12, 0x64, 0x2d, -0xd6, 0xa1, 0x4e, 0xec, 0x83, 0x77, 0x22, 0x8f, 0xec, 0x1a, 0xc6, 0xe9, 0xf2, 0x3a, 0x96, 0xdf, -0x5a, 0xfc, 0xe9, 0x6e, 0x90, 0x67, 0x5d, 0x4b, 0xb0, 0xd4, 0x0e, 0x84, 0xea, 0xdf, 0xa9, 0x26, -0xaf, 0x39, 0xb2, 0x5e, 0x11, 0xab, 0xfb, 0x63, 0xc2, 0x60, 0x7f, 0x74, 0x2e, 0xd3, 0x04, 0x14, -0xd0, 0x28, 0xac, 0x04, 0xa7, 0x64, 0x12, 0xc0, 0xef, 0x39, 0xda, 0xc1, 0xd7, 0x48, 0x92, 0x8b, -0xc3, 0x6d, 0x4c, 0x06, 0xd2, 0x82, 0x18, 0x95, 0x28, 0x15, 0x50, 0x10, 0xb7, 0x86, 0x5a, 0x76, -0x0b, 0xa9, 0xf4, 0xaf, 0x54, 0xf6, 0xd4, 0xa6, 0xdb, 0x17, 0x30, 0x0a, 0xf7, 0xdc, 0xd2, 0xe1, -0x6b, 0x47, 0xb8, 0x3c, 0x0a, 0xed, 0x4d, 0xe7, 0xcf, 0xc7, 0xdd, 0x4f, 0xc0, 0x4b, 0xfb, 0xd3, -0x66, 0x28, 0x40, 0x7c, 0x57, 0x88, 0x74, 0x7f, 0xd0, 0xe7, 0x87, 0x12, 0xdc, 0x29, 0x1b, 0x71, -0xcf, 0xe6, 0x93, 0xeb, 0xb5, 0x1e, 0xbb, 0x48, 0x67, 0xdf, 0x1a, 0x45, 0x8a, 0x7b, 0x52, 0x29, -0x62, 0x43, 0x9a, 0xb4, 0xc5, 0xbb, 0xa3, 0x5b, 0xa3, 0x49, 0xc5, 0x24, 0x05, 0xd6, 0x06, 0xca, -0xaa, 0x36, 0x12, 0xfb, 0x75, 0x0e, 0x76, 0xab, 0xce, 0x70, 0x33, 0x78, 0xe9, 0x7c, 0xed, 0x1b, -0x41, 0xf0, 0x96, 0xe0, 0xf3, 0x84, 0xb8, 0x4e, 0x65, 0xfe, 0x9e, 0x6e, 0x35, 0x0b, 0x6b, 0x3f, -0x8d, 0x42, 0xb1, 0xd6, 0x5b, 0x35, 0x99, 0xc9, 0xb9, 0xee, 0x34, 0x85, 0xa5, 0x56, 0x33, 0x5a, -0xbe, 0x86, 0xa5, 0x50, 0x5f, 0x7c, 0x2d, 0xfd, 0x03, 0x35, 0x6b, 0x7c, 0x0e, 0x44, 0xe5, 0xee, -0x8e, 0xe3, 0x3e, 0x34, 0x36, 0xb3, 0x44, 0xa3, 0xe1, 0x3b, 0xf8, 0x19, 0xed, 0xb5, 0xd7, 0xb1, -0x7d, 0xf3, 0x3c, 0x48, 0xad, 0x12, 0xc5, 0x4e, 0xbd, 0xea, 0x6e, 0x04, 0x87, 0x17, 0xa9, 0xf6, -0x45, 0x67, 0xc1, 0x4e, 0x67, 0xa5, 0x6c, 0x05, 0xca, 0x18, 0x1b, 0x8f, 0x34, 0x1a, 0xa3, 0xb9, -0xf6, 0x42, 0x10, 0xf9, 0x6d, 0x22, 0xe2, 0x8c, 0x77, 0x11, 0x0b, 0x1e, 0xc7, 0xd1, 0x63, 0xa6, -0x93, 0xa2, 0xc1, 0xce, 0xe5, 0xda, 0xa9, 0xc5, 0x26, 0x76, 0x8a, 0x82, 0xdf, 0x5e, 0x70, 0x66, -0x68, 0x14, 0xe6, 0x61, 0xde, 0x2f, 0x6c, 0x4f, 0xc9, 0xef, 0x27, 0xdb, 0x90, 0xce, 0x44, 0x4c, -0x57, 0x74, 0xee, 0xda, 0xe1, 0xd9, 0xa1, 0xc4, 0x61, 0xd2, 0x93, 0x29, 0x3f, 0x9f, 0x38, 0x86, -0xfe, 0xdd, 0xd1, 0x3d, 0xc2, 0x49, 0xae, 0x03, 0x8e, 0xdd, 0x77, 0x1c, 0xa6, 0xfa, 0x30, 0x59, -0x3e, 0x48, 0x99, 0x25, 0x39, 0xda, 0x2c, 0x01, 0x21, 0x22, 0x55, 0x33, 0x1d, 0x5f, 0x9b, 0x90, -0x02, 0xf0, 0xe0, 0xce, 0x58, 0x24, 0x89, 0x74, 0x26, 0x47, 0x56, 0x20, 0x15, 0xbb, 0x6d, 0xea, -0x99, 0xa2, 0x73, 0x23, 0x54, 0xd2, 0xb0, 0xb4, 0xb0, 0xf8, 0x5c, 0xe2, 0xe3, 0xd1, 0x95, 0xd0, -0x42, 0xa5, 0xb2, 0x12, 0x4e, 0x52, 0x29, 0x7e, 0x2b, 0x96, 0xee, 0xa2, 0x1d, 0xc9, 0xd1, 0x06, -0xc4, 0x95, 0x57, 0xd8, 0x09, 0x38, 0xad, 0xdc, 0x7b, 0x24, 0x8c, 0x21, 0xcd, 0x49, 0x7c, 0xd0, -0x0a, 0x4a, 0x86, 0x35, 0x0b, 0xbe, 0xc3, 0x76, 0xa7, 0xdf, 0xc5, 0x79, 0xdd, 0x35, 0xd8, 0xa5, -0x9e, 0x5f, 0x74, 0x0e, 0xd3, 0x72, 0x68, 0x5d, 0xa4, 0xfd, 0xa0, 0x56, 0x7b, 0x1c, 0x0f, 0x98, -0x9f, 0x84, 0x3b, 0x83, 0xc3, 0xd4, 0x96, 0xbb, 0x40, 0xcb, 0x2f, 0xd3, 0x9f, 0x31, 0xba, 0xe7, -0xab, 0x4b, 0x19, 0x8b, 0x08, 0x47, 0x0e, 0x3d, 0x9e, 0x9f, 0xdf, 0xc2, 0x68, 0x08, 0xb9, 0x72, -0xb3, 0x13, 0x4b, 0xa6, 0x18, 0x3b, 0xba, 0x96, 0x67, 0x63, 0x2d, 0xce, 0x2c, 0x8e, 0x23, 0xc4, -0xce, 0x30, 0xba, 0x8f, 0x97, 0xb5, 0x59, 0xbb, 0xe1, 0x98, 0x8a, 0x23, 0x9c, 0xb5, 0xa3, 0x72, -0x0f, 0xd3, 0x54, 0xe9, 0xa0, 0x37, 0x4e, 0xa1, 0xcf, 0x0e, 0x5e, 0x7b, 0x83, 0x51, 0xe9, 0x27, -0x19, 0x95, 0x3e, 0xe7, 0xda, 0x1b, 0x4a, 0x0e, 0xcd, 0xfd, 0xcd, 0x54, 0x22, 0xdf, 0x1b, 0x8d, -0xed, 0x7e, 0xc4, 0x58, 0x3b, 0xce, 0x87, 0x8e, 0x6b, 0xdb, 0x68, 0x3e, 0x20, 0x26, 0xbc, 0x48, -0xf3, 0xc1, 0x43, 0x73, 0xa0, 0x19, 0x82, 0xb8, 0xfe, 0x97, 0x20, 0x45, 0x5f, 0x21, 0x45, 0x68, -0x84, 0xd1, 0x58, 0xa7, 0x99, 0x0c, 0x09, 0x1c, 0x8b, 0x71, 0xd5, 0xa2, 0x8d, 0x45, 0x10, 0xda, -0x5b, 0xc0, 0xee, 0x4b, 0xff, 0x33, 0x86, 0xd9, 0x10, 0xcb, 0x59, 0xf8, 0xac, 0x3b, 0xdc, 0x46, -0x9c, 0x3c, 0xf8, 0x4e, 0xda, 0xc4, 0x08, 0xda, 0x0a, 0x41, 0xe1, 0xf5, 0x4d, 0x0b, 0xaf, 0x0c, -0x6f, 0xac, 0x7c, 0xc2, 0xc5, 0xef, 0x3d, 0x40, 0x90, 0x59, 0x8a, 0xa9, 0x7e, 0x2b, 0x62, 0x0b, -0x5f, 0xfa, 0x49, 0x7e, 0x12, 0xfb, 0x6a, 0x47, 0x4a, 0x0c, 0x29, 0x25, 0x8f, 0x64, 0x8f, 0x8d, -0x7d, 0x15, 0x17, 0x5d, 0x00, 0x2f, 0xeb, 0x91, 0x84, 0xd8, 0xe0, 0xb7, 0x2c, 0x64, 0x37, 0x05, -0xb8, 0xab, 0x36, 0x32, 0x99, 0xc3, 0xa9, 0x04, 0x9f, 0xe1, 0x2b, 0x2c, 0x76, 0x0e, 0xe1, 0x6f, -0xdc, 0xaf, 0x87, 0x02, 0x7b, 0x41, 0xf0, 0xd1, 0xf9, 0xe4, 0x54, 0xd2, 0x46, 0x25, 0x2f, 0x68, -0x03, 0xd2, 0xf2, 0xf9, 0x87, 0xba, 0x85, 0x7c, 0x5e, 0xb7, 0x4c, 0x9a, 0xd5, 0x74, 0xd2, 0xf0, -0x84, 0x36, 0xab, 0x17, 0x8f, 0xce, 0x6a, 0x93, 0x65, 0x01, 0x92, 0x03, 0x73, 0x11, 0x2b, 0x4f, -0x88, 0x85, 0x78, 0x3f, 0xb7, 0xa5, 0x70, 0x47, 0x37, 0xd2, 0x9d, 0xf3, 0x31, 0x9e, 0x23, 0x59, -0x7f, 0x36, 0xab, 0x6d, 0x38, 0x56, 0x6d, 0x4a, 0x68, 0x7c, 0x0a, 0x82, 0xee, 0xde, 0x78, 0x6d, -0xef, 0xcc, 0x52, 0x9c, 0x63, 0xa4, 0xf3, 0xcc, 0x22, 0x55, 0x5b, 0x03, 0x60, 0x31, 0x27, 0xa2, -0x92, 0xc6, 0x29, 0x43, 0x23, 0x48, 0xe5, 0x23, 0x88, 0x6b, 0x9a, 0x54, 0x4c, 0x38, 0x42, 0x45, -0x17, 0x97, 0xae, 0xa7, 0x73, 0x1e, 0x1b, 0xe3, 0x07, 0xb5, 0x60, 0x0b, 0xcd, 0xf2, 0x36, 0x21, -0xfb, 0xe6, 0x0e, 0x28, 0x06, 0x1b, 0xfe, 0xce, 0x83, 0x9b, 0x5d, 0xa1, 0x18, 0x24, 0xb5, 0xaf, -0xe2, 0x6f, 0xa7, 0xb3, 0xa8, 0xf8, 0x5f, 0x84, 0x19, 0xc5, 0x17, 0x9f, 0x04, 0xf9, 0x97, 0x48, -0x46, 0xdf, 0x8c, 0xbf, 0x2e, 0xf4, 0x1e, 0xf4, 0x3e, 0x79, 0x16, 0x04, 0xe4, 0xed, 0xe9, 0xf7, -0x47, 0xe2, 0x35, 0xfd, 0x2d, 0x12, 0xf6, 0xe9, 0x01, 0xcc, 0xa3, 0x30, 0xfd, 0x24, 0xfe, 0xce, -0x4f, 0xff, 0x13, 0xfe, 0xba, 0xd2, 0x4f, 0xe1, 0x6f, 0x6e, 0xfa, 0x9f, 0xe5, 0x6d, 0xe9, 0xa7, -0x5d, 0x0f, 0x68, 0x67, 0xb5, 0x24, 0x9b, 0xcd, 0x4e, 0xb1, 0x27, 0x52, 0xa0, 0x2e, 0x88, 0x4a, -0xb4, 0xb3, 0xd7, 0x24, 0x65, 0x71, 0xdf, 0xcf, 0x4e, 0x73, 0x6b, 0x66, 0xca, 0xe9, 0xa7, 0x19, -0xb7, 0xd4, 0xb8, 0x53, 0x5f, 0x7e, 0x8a, 0xed, 0xf6, 0xa6, 0x9f, 0xc6, 0xd6, 0xe5, 0xa5, 0xee, -0x00, 0xa5, 0x60, 0xd1, 0x69, 0x61, 0x06, 0xed, 0x77, 0x9c, 0x2b, 0x46, 0x29, 0x60, 0xcf, 0x78, -0x0a, 0x38, 0xd2, 0xb5, 0x93, 0xce, 0x37, 0x0e, 0x86, 0xbb, 0xa3, 0x5e, 0x56, 0xa6, 0x81, 0x73, -0x56, 0xdc, 0x7d, 0xca, 0x59, 0x3c, 0xf1, 0x8c, 0x9d, 0x60, 0xc8, 0xcf, 0xb1, 0xfd, 0x61, 0x70, -0xd0, 0x13, 0xee, 0x11, 0xf6, 0xc5, 0x60, 0xac, 0x3d, 0x74, 0x62, 0x1c, 0xde, 0x1c, 0xb5, 0x13, -0xe6, 0xd3, 0xee, 0x10, 0xec, 0x5c, 0xcb, 0x1c, 0x3b, 0x47, 0x75, 0x60, 0xb8, 0x95, 0x9f, 0xcf, -0xb3, 0x95, 0x95, 0x7d, 0xe1, 0xa7, 0xc4, 0xbc, 0x35, 0xdf, 0x62, 0xe7, 0x9e, 0xb4, 0xa6, 0xd0, -0x3c, 0xc2, 0xf5, 0x24, 0x84, 0x7d, 0x53, 0x98, 0x8b, 0x34, 0x0f, 0xfe, 0x0f, 0xba, 0xaa, 0xd8, -0x19, 0xee, 0x8a, 0xd6, 0xdc, 0x23, 0x03, 0x6d, 0x06, 0xed, 0x14, 0xae, 0x94, 0x63, 0xcc, 0x26, -0xa3, 0xec, 0x87, 0x5c, 0xf4, 0x01, 0x16, 0xa7, 0xb9, 0xf5, 0xce, 0x1b, 0xc4, 0xb9, 0x13, 0xfd, -0x5d, 0xb7, 0x36, 0x63, 0x6f, 0x7c, 0x88, 0xbf, 0x77, 0xa6, 0x7f, 0xe0, 0x65, 0x71, 0x5a, 0x41, -0x2e, 0x91, 0x8b, 0x9d, 0xe9, 0x8c, 0xdf, 0xe5, 0x0d, 0x4f, 0x30, 0x96, 0x18, 0xdc, 0x18, 0xbd, -0x0f, 0x47, 0xed, 0x46, 0xd5, 0x68, 0x29, 0x01, 0x21, 0x5c, 0x82, 0x34, 0xcd, 0xd7, 0xf0, 0xcd, -0x62, 0xf5, 0xc3, 0xd7, 0xe0, 0x4e, 0x35, 0x4f, 0xc9, 0x8e, 0x59, 0xf0, 0xdd, 0x11, 0xee, 0x8a, -0x3a, 0x8a, 0x3e, 0xf6, 0x24, 0x10, 0xe7, 0xcd, 0x56, 0x2d, 0xb6, 0xbd, 0x60, 0x51, 0xec, 0xe1, -0x62, 0xd5, 0x1e, 0xb0, 0xde, 0x12, 0xf7, 0x40, 0xa4, 0x8b, 0x62, 0x45, 0x6d, 0x48, 0xe1, 0x88, -0x6d, 0x42, 0xf5, 0x7a, 0xf5, 0x27, 0xb8, 0x86, 0x03, 0xec, 0x97, 0xf3, 0x3c, 0xe0, 0xc7, 0x35, -0x93, 0xad, 0x48, 0x6c, 0x8c, 0xae, 0xfd, 0x7a, 0xe8, 0xa1, 0x1a, 0x60, 0x98, 0x7a, 0x3f, 0xe9, -0xca, 0xcd, 0x05, 0x5c, 0x47, 0xe7, 0xf9, 0xa7, 0x55, 0x6e, 0xf5, 0xb1, 0x1b, 0x5c, 0xb9, 0x84, -0xcd, 0x3a, 0xd2, 0x14, 0x57, 0xe3, 0x0d, 0x47, 0xfa, 0xd7, 0x42, 0xf6, 0x2d, 0x58, 0xbf, 0xf5, -0xa3, 0xf5, 0x0b, 0x86, 0x1f, 0x6e, 0xce, 0x61, 0xe7, 0x69, 0x77, 0x62, 0xa8, 0xdd, 0x9f, 0x1e, -0x6a, 0x86, 0xbb, 0x29, 0xbd, 0x76, 0x66, 0xe0, 0x09, 0xf7, 0x6a, 0xdf, 0x73, 0xd9, 0x77, 0x13, -0x7e, 0xcf, 0x4b, 0xf9, 0x6e, 0x8e, 0x74, 0xef, 0xec, 0x6e, 0xfa, 0x99, 0x92, 0x45, 0xf5, 0x4a, -0xea, 0x2e, 0xdb, 0xd5, 0xc6, 0x6a, 0xf7, 0x13, 0x76, 0xdb, 0x80, 0x30, 0x21, 0xfe, 0xa2, 0xb9, -0xf1, 0x92, 0x6a, 0x7e, 0xea, 0x45, 0x7a, 0xad, 0x39, 0x9f, 0xfc, 0xa7, 0xcf, 0xc0, 0xc8, 0x67, -0x7d, 0x30, 0xf2, 0xf1, 0xcf, 0x60, 0xe4, 0xcf, 0xed, 0xf8, 0x3f, 0x86, 0xef, 0x1d, 0x30, 0xf2, -0x91, 0x07, 0x46, 0xce, 0x58, 0x31, 0xec, 0x39, 0xfc, 0xbf, 0x11, 0xfd, 0x45, 0x18, 0x39, 0x8b, -0xdf, 0x2f, 0xee, 0xc7, 0x38, 0x7b, 0x61, 0xe4, 0x83, 0x2a, 0xf4, 0x25, 0x18, 0x6e, 0xfe, 0x0f, -0xf0, 0x3c, 0x2f, 0x5f, 0xd6, 0x52, 0xd7, 0x52, 0xbf, 0xfa, 0xf3, 0x44, 0xef, 0x28, 0xca, 0x78, -0x99, 0x8a, 0x13, 0x2e, 0x18, 0xb9, 0x72, 0xa4, 0x73, 0x96, 0x39, 0x80, 0xcf, 0x99, 0x30, 0xf2, -0xde, 0x27, 0xf8, 0xbf, 0x64, 0x34, 0xe7, 0xb5, 0x18, 0xd2, 0xca, 0x25, 0xef, 0x4e, 0x3d, 0x43, -0x97, 0xf7, 0xf0, 0x0c, 0xfa, 0x9f, 0xa2, 0x0f, 0x12, 0x27, 0x1b, 0xe7, 0x6a, 0x93, 0xeb, 0xa3, -0x2b, 0x9b, 0x8a, 0x31, 0xeb, 0xa2, 0xe5, 0xc4, 0x35, 0xea, 0x99, 0x19, 0x9b, 0x65, 0x81, 0xb1, -0xf7, 0xea, 0x58, 0x7d, 0x7d, 0x1d, 0x06, 0xfa, 0x66, 0xd6, 0x69, 0xe1, 0xa5, 0xcd, 0x58, 0x7c, -0xf1, 0x8a, 0x65, 0x4d, 0xd1, 0x7a, 0x0f, 0x06, 0x55, 0x15, 0x2f, 0x2a, 0x2e, 0x2f, 0x92, 0x56, -0x37, 0x34, 0xb7, 0x4a, 0xf5, 0x4d, 0xa4, 0xe9, 0xbd, 0xce, 0x02, 0xe5, 0x4d, 0xab, 0xeb, 0x5b, -0x5a, 0xeb, 0xeb, 0x24, 0xed, 0x2b, 0x55, 0x5d, 0xaa, 0xab, 0x6f, 0xad, 0x5f, 0xde, 0xca, 0x3f, -0x73, 0xc6, 0xff, 0xd6, 0x35, 0xb1, 0x86, 0x7a, 0x69, 0xf9, 0x8a, 0x65, 0x2b, 0x9b, 0x52, 0xbe, -0x16, 0x97, 0x57, 0x2f, 0xae, 0xaa, 0x78, 0xa0, 0x68, 0x51, 0x79, 0x59, 0x51, 0x4d, 0x79, 0x15, -0x57, 0x19, 0x6f, 0x81, 0xc5, 0xdf, 0x8f, 0xd5, 0x4b, 0x33, 0xeb, 0x48, 0x99, 0x3d, 0xcf, 0x8f, -0x85, 0xfb, 0xa4, 0xd5, 0x2b, 0xd7, 0xb2, 0x70, 0xc6, 0x42, 0x8b, 0xaf, 0x54, 0x61, 0x7c, 0xb7, -0xc0, 0xa2, 0x65, 0xb1, 0x18, 0x3e, 0x2e, 0x5b, 0x2d, 0x71, 0x79, 0x14, 0x4a, 0x99, 0x6b, 0x81, -0x4a, 0xac, 0xe8, 0x9a, 0xd5, 0x4c, 0x25, 0xfd, 0xc4, 0x4f, 0xd4, 0xbc, 0x45, 0x2b, 0x57, 0x2f, -0xd7, 0x6c, 0x0b, 0xb0, 0x66, 0x07, 0xf2, 0xda, 0xb5, 0x86, 0x57, 0xb5, 0x34, 0x47, 0x5b, 0x96, -0x35, 0x2e, 0x69, 0x6e, 0x68, 0x5d, 0x86, 0x6d, 0x4f, 0x85, 0x49, 0xa4, 0x7e, 0x75, 0x7d, 0x2b, -0x3d, 0x8c, 0x81, 0x8f, 0x05, 0x45, 0xea, 0x1b, 0x9b, 0xdb, 0x78, 0xd4, 0x40, 0x01, 0xe5, 0x13, -0xad, 0x6f, 0xa5, 0x7a, 0x4a, 0x6a, 0x4b, 0x73, 0xe3, 0xa8, 0xfc, 0xc3, 0xb2, 0xba, 0x3a, 0xa6, -0x9b, 0x7f, 0x66, 0x0c, 0x93, 0x36, 0xc7, 0xbe, 0xbf, 0x98, 0xc0, 0xc2, 0x12, 0xf1, 0x74, 0xbc, -0x1c, 0x0d, 0x94, 0xec, 0xa3, 0x44, 0xd5, 0x92, 0x82, 0x2c, 0x01, 0x87, 0x56, 0xe5, 0x3d, 0x15, -0x15, 0xa3, 0x2f, 0x0b, 0x2a, 0x4b, 0xc6, 0x3e, 0x7c, 0xf3, 0x81, 0x8a, 0xf2, 0xca, 0x85, 0xa3, -0xef, 0x15, 0xdf, 0xac, 0x2c, 0xa3, 0x80, 0x07, 0x8a, 0xc8, 0x5c, 0x40, 0xfb, 0xe4, 0xf0, 0x62, -0x2d, 0x7c, 0xe6, 0x6a, 0x62, 0x2a, 0x6e, 0x6f, 0x95, 0x1a, 0x56, 0x36, 0x3d, 0xa8, 0x85, 0x25, -0x3b, 0xae, 0xb9, 0x85, 0x84, 0x42, 0x56, 0xaf, 0x6c, 0x8a, 0xb2, 0xaf, 0xad, 0xcb, 0x5a, 0xb0, -0x61, 0x29, 0x95, 0x97, 0xd4, 0x95, 0x4d, 0x2b, 0x57, 0xaf, 0xa0, 0xde, 0x2c, 0x61, 0x96, 0x16, -0x52, 0x9a, 0x84, 0x4d, 0x59, 0xd0, 0x54, 0x37, 0x71, 0xc4, 0x95, 0x71, 0xf8, 0x61, 0x9f, 0xd1, -0xa0, 0x5a, 0x5c, 0xf5, 0x40, 0x51, 0xe3, 0xca, 0xe8, 0xb2, 0xd1, 0xee, 0xf7, 0x31, 0x20, 0x31, -0x08, 0xa5, 0x0e, 0xa9, 0x16, 0x02, 0x32, 0x03, 0x86, 0x05, 0xbe, 0xf9, 0x50, 0x93, 0xd6, 0x03, -0x49, 0x60, 0x7f, 0x9d, 0xa2, 0x47, 0xea, 0x1b, 0xea, 0x97, 0xad, 0xae, 0x1f, 0xf7, 0x49, 0x52, -0x1b, 0x96, 0x45, 0x57, 0x7f, 0x9d, 0x01, 0xb1, 0xf9, 0xa1, 0xa6, 0xfa, 0x3a, 0x8c, 0x89, 0x79, -0x51, 0x5f, 0xe1, 0x23, 0x56, 0x3a, 0xb6, 0xbc, 0x71, 0xf9, 0xca, 0x65, 0x0f, 0x34, 0xd5, 0x3f, -0x44, 0x9f, 0x5b, 0xe6, 0x49, 0x4d, 0x18, 0x9c, 0x8c, 0xda, 0x4e, 0x51, 0xe9, 0xbd, 0x61, 0x25, -0x8d, 0x9d, 0x58, 0xeb, 0xf7, 0x59, 0x9a, 0xaa, 0x66, 0x04, 0x08, 0x8d, 0xaa, 0xa6, 0xe6, 0x3a, -0xec, 0xa0, 0x18, 0x2f, 0x44, 0xab, 0xdc, 0xa4, 0x0c, 0xa9, 0x6a, 0x9c, 0xe7, 0x9c, 0x80, 0xb8, -0x7c, 0xd9, 0x8a, 0x07, 0xa8, 0x86, 0xc9, 0x79, 0x43, 0x35, 0x95, 0x18, 0x5c, 0xb4, 0x84, 0xbc, -0x72, 0x5a, 0xda, 0x64, 0x95, 0xaf, 0x97, 0x03, 0x1f, 0x71, 0x29, 0x19, 0x8c, 0xb3, 0x09, 0x42, -0x31, 0x16, 0x2f, 0x5b, 0xfd, 0xa0, 0xf4, 0x50, 0xf3, 0x83, 0xf5, 0x4d, 0xd2, 0x9a, 0x14, 0x70, -0xb2, 0x09, 0xbd, 0xbc, 0xa9, 0x95, 0x1a, 0x96, 0x0a, 0x8a, 0xf1, 0xfc, 0xe0, 0x1f, 0xbc, 0xfe, -0xd7, 0xc9, 0xde, 0xbe, 0x77, 0xea, 0xc6, 0xb2, 0xb7, 0xef, 0x1d, 0x99, 0x28, 0x7b, 0x7b, 0x6a, -0xcb, 0xe7, 0xc9, 0xde, 0xbe, 0xb7, 0x77, 0xa2, 0xec, 0xed, 0x7b, 0xaf, 0x4f, 0x96, 0xac, 0x79, -0xef, 0xf8, 0x7f, 0x4c, 0x7e, 0xdb, 0x35, 0x05, 0x77, 0xec, 0x98, 0xcf, 0x89, 0x06, 0x4a, 0x3f, -0xc5, 0x54, 0x35, 0xb0, 0xf3, 0x05, 0x58, 0xaa, 0x66, 0x84, 0x9b, 0x60, 0xc5, 0xbd, 0x8c, 0x33, -0xb5, 0x24, 0x4e, 0x3b, 0xe8, 0xa4, 0xac, 0x21, 0xf1, 0xce, 0xba, 0xa7, 0xb8, 0x48, 0x77, 0x31, -0x4f, 0xd7, 0xc9, 0xd3, 0x51, 0x7b, 0x77, 0x51, 0xca, 0x55, 0x94, 0x52, 0xad, 0x23, 0x5d, 0xf0, -0xe2, 0xa1, 0xda, 0xa5, 0x4c, 0x27, 0xfc, 0x95, 0xda, 0x4c, 0xf6, 0x7f, 0x6b, 0x6d, 0x56, 0xac, -0x6e, 0xb0, 0xab, 0x2e, 0xbb, 0xcd, 0xd8, 0xba, 0xb2, 0x54, 0x54, 0x32, 0xdb, 0x18, 0xcf, 0x91, -0x78, 0x48, 0xb1, 0xca, 0x86, 0xd6, 0x34, 0x0c, 0x31, 0xb6, 0x99, 0x5b, 0xeb, 0x52, 0xe4, 0x16, -0xff, 0x16, 0x8e, 0x0d, 0x22, 0xd8, 0x13, 0x9f, 0xf4, 0xc2, 0xf4, 0xdf, 0xd2, 0xf3, 0x98, 0x7c, -0x20, 0xd3, 0x29, 0x2e, 0x26, 0xe5, 0xc3, 0xfd, 0x19, 0x52, 0x2e, 0x34, 0x24, 0xe5, 0x21, 0x59, -0xcd, 0x7e, 0xcc, 0x6b, 0x56, 0x43, 0xba, 0xe1, 0x70, 0x1b, 0xad, 0x2e, 0x65, 0x35, 0x5b, 0xc2, -0x77, 0x36, 0x9f, 0x94, 0x7c, 0x9d, 0xb4, 0x78, 0xac, 0xe0, 0x6f, 0x97, 0xef, 0xa3, 0xdf, 0x4b, -0x9f, 0xb1, 0xdb, 0x77, 0x2f, 0xfb, 0xb2, 0x8a, 0x7f, 0xf9, 0x94, 0xdd, 0x7e, 0x5c, 0x3a, 0xe5, -0x6c, 0x82, 0x18, 0x96, 0xd0, 0x3a, 0xca, 0x9f, 0xb0, 0xb7, 0x66, 0x40, 0x31, 0xf1, 0x6f, 0x9c, -0x8f, 0x99, 0x97, 0x8d, 0xbb, 0x8b, 0xfd, 0xa4, 0x53, 0x01, 0xa9, 0xa1, 0xc5, 0x13, 0xe5, 0x1e, -0x91, 0xa6, 0x39, 0x34, 0x4e, 0xc2, 0x51, 0x8c, 0x82, 0x81, 0x24, 0x7c, 0x15, 0xdb, 0x18, 0x1f, -0xed, 0x19, 0xda, 0xa1, 0x89, 0x67, 0x8a, 0x3e, 0x82, 0xca, 0x3b, 0x42, 0xb0, 0x44, 0x7e, 0x16, -0x22, 0xf8, 0x1c, 0xc1, 0xe7, 0x4a, 0xd6, 0xaa, 0xe7, 0xca, 0x99, 0xae, 0xb8, 0xca, 0x2d, 0xfc, -0xce, 0xea, 0x93, 0x12, 0x56, 0x4b, 0xd2, 0xc9, 0x8e, 0xad, 0x21, 0x78, 0xc5, 0xa1, 0x6a, 0x80, -0x34, 0xc2, 0xe2, 0x6e, 0x71, 0x1b, 0x4b, 0xf1, 0x4a, 0x32, 0xee, 0xa7, 0x99, 0xf2, 0x83, 0xb0, -0x22, 0x96, 0x93, 0xca, 0x6d, 0x72, 0x6d, 0xb1, 0x27, 0xa9, 0xa3, 0x64, 0xed, 0xad, 0x34, 0xc2, -0xb3, 0x9d, 0x41, 0xdf, 0x42, 0x6e, 0x27, 0x81, 0xce, 0xde, 0x9c, 0x15, 0xec, 0xed, 0xb4, 0xb3, -0xe2, 0xb1, 0x83, 0x2d, 0x80, 0xad, 0xa4, 0xb7, 0xdd, 0xe1, 0xa0, 0xca, 0xac, 0x21, 0x9c, 0x38, -0x81, 0xcb, 0xec, 0x88, 0x8b, 0xc7, 0x79, 0x0e, 0x73, 0xe1, 0xa1, 0x23, 0x18, 0x8a, 0x29, 0x8a, -0x2e, 0x40, 0xb8, 0x45, 0x88, 0x19, 0x93, 0x69, 0xa2, 0x00, 0xc7, 0x28, 0xac, 0xf8, 0x02, 0xf0, -0x32, 0x76, 0x30, 0xee, 0xd7, 0x03, 0x48, 0xdf, 0x84, 0xec, 0xf0, 0x5d, 0x3a, 0x77, 0x15, 0x6a, -0x01, 0x76, 0x21, 0x35, 0x53, 0x42, 0x9e, 0xef, 0xc3, 0xf8, 0x6e, 0xe9, 0xfd, 0x5b, 0x78, 0x6f, -0xb2, 0x5c, 0xef, 0x6b, 0x29, 0x4a, 0xd6, 0x84, 0xed, 0x36, 0x82, 0x6a, 0x8b, 0x56, 0x9a, 0x9c, -0x52, 0xc3, 0xfb, 0xad, 0x2f, 0xd2, 0xd8, 0x83, 0x92, 0xda, 0xc5, 0x12, 0xd2, 0x47, 0xd6, 0x38, -0x18, 0x12, 0x89, 0xe5, 0x4b, 0xf0, 0x3f, 0xd2, 0x03, 0xcb, 0x8d, 0xb1, 0x60, 0x28, 0xc8, 0x34, -0x03, 0x41, 0x4b, 0x5a, 0xeb, 0x55, 0x09, 0x7b, 0x41, 0x04, 0xe7, 0x83, 0x30, 0x2a, 0x15, 0x7b, -0x6d, 0xab, 0xb3, 0x02, 0xd3, 0x95, 0xb0, 0xfc, 0x5e, 0x65, 0x75, 0x28, 0x4d, 0x8e, 0xa8, 0x56, -0x41, 0xb1, 0xb1, 0x90, 0xef, 0x26, 0x43, 0x64, 0x59, 0x83, 0xd4, 0x49, 0x67, 0x45, 0x4c, 0x60, -0x4f, 0x97, 0x98, 0x0e, 0xb8, 0x8a, 0x31, 0xde, 0xbb, 0xb0, 0x1c, 0x75, 0x30, 0x6d, 0x64, 0xed, -0xbc, 0x3f, 0x2e, 0x1d, 0x22, 0x5e, 0x55, 0x18, 0xf1, 0x77, 0xc4, 0x6d, 0x18, 0xea, 0xf0, 0x23, -0xf5, 0x75, 0xf9, 0x5d, 0xc8, 0x62, 0xef, 0x26, 0xc8, 0xf1, 0x3f, 0x48, 0x2a, 0x55, 0xd8, 0x9b, -0x19, 0x5c, 0xb1, 0x9b, 0xfc, 0x41, 0xf0, 0xb0, 0x37, 0x1c, 0x2e, 0x2e, 0xa6, 0xb1, 0xe5, 0xf1, -0xdf, 0x73, 0x9a, 0x1d, 0xbf, 0x04, 0xd8, 0x97, 0x9b, 0x21, 0xdf, 0xbf, 0x10, 0x0a, 0xe4, 0x17, -0xa1, 0x10, 0xe1, 0xe1, 0xa0, 0xaf, 0xc3, 0xab, 0xee, 0x08, 0x42, 0x8c, 0x6e, 0x46, 0x68, 0x77, -0x10, 0x4f, 0xd1, 0xaa, 0x37, 0x36, 0x3e, 0xbf, 0x44, 0x9a, 0xe8, 0x66, 0xb3, 0xba, 0x79, 0xef, -0xa0, 0x52, 0x7d, 0x24, 0x15, 0xf1, 0x49, 0x3b, 0xe4, 0xdf, 0xb1, 0x10, 0x02, 0x31, 0x43, 0xf1, -0x47, 0x29, 0x12, 0xc0, 0x35, 0x5f, 0xea, 0x48, 0x74, 0x42, 0x11, 0xd7, 0xab, 0xc6, 0x62, 0xcb, -0x14, 0xfb, 0x52, 0x1d, 0x84, 0x31, 0x76, 0x69, 0x6c, 0x1a, 0xc6, 0x2e, 0x48, 0xd1, 0x2d, 0xa3, -0xb5, 0x95, 0xcf, 0x95, 0xb1, 0xd1, 0x4f, 0x32, 0x9b, 0xfc, 0x6c, 0x6e, 0xa9, 0xf1, 0x9b, 0xa4, -0x7d, 0x6c, 0x0d, 0xdf, 0x97, 0x10, 0x7e, 0x71, 0x08, 0x48, 0xf5, 0x0a, 0x49, 0x1c, 0xf3, 0x7e, -0xfb, 0x04, 0x1c, 0x53, 0xc5, 0x66, 0x72, 0x38, 0x53, 0x14, 0x0d, 0x90, 0x9f, 0x82, 0x2d, 0x44, -0x32, 0xf4, 0x39, 0x7d, 0x88, 0xe6, 0x40, 0xd8, 0x10, 0xcd, 0xa2, 0xd9, 0xf0, 0x0c, 0x84, 0xc5, -0x06, 0x63, 0x2f, 0x69, 0x1b, 0x31, 0x1c, 0x60, 0x38, 0xe4, 0x99, 0x94, 0x19, 0xc8, 0xec, 0xc4, -0xbc, 0x8c, 0xfd, 0x04, 0x49, 0x3c, 0x32, 0x11, 0xbf, 0xbd, 0xbf, 0x79, 0x42, 0xd9, 0x73, 0x59, -0xd9, 0x81, 0x98, 0x30, 0xd8, 0x55, 0x9f, 0x7b, 0x1d, 0x4c, 0x35, 0x1c, 0x17, 0xa9, 0x06, 0xa9, -0x98, 0x0a, 0xdb, 0x69, 0x62, 0x3b, 0xc0, 0x44, 0x52, 0xc2, 0x60, 0x0c, 0xef, 0xbe, 0xff, 0xfc, -0x38, 0xbc, 0xeb, 0x60, 0xb9, 0x67, 0x24, 0x71, 0x4f, 0x12, 0x46, 0x63, 0x72, 0x0b, 0xe3, 0xea, -0x36, 0x34, 0xa1, 0x6e, 0x4e, 0x96, 0x3a, 0x07, 0xf7, 0x37, 0xc6, 0x98, 0x48, 0xad, 0xfa, 0x4a, -0x10, 0xda, 0x71, 0x0a, 0x0d, 0x53, 0x8d, 0x36, 0xc1, 0xa8, 0xbc, 0x85, 0x95, 0xdf, 0x7e, 0xb8, -0xb4, 0xdb, 0x0f, 0x79, 0xba, 0xd4, 0x91, 0x40, 0x5a, 0xf9, 0xcd, 0x57, 0x5f, 0x1a, 0x86, 0x22, -0x9c, 0x23, 0x76, 0x3f, 0x9b, 0xc7, 0xef, 0x1f, 0x4b, 0xd6, 0x4d, 0xb1, 0x73, 0xfc, 0x88, 0x73, -0xd8, 0x6c, 0xb3, 0x67, 0xc6, 0x35, 0xf9, 0x73, 0x76, 0xb2, 0x4c, 0xa7, 0x8b, 0x85, 0xb4, 0x03, -0xf4, 0xf9, 0x9a, 0x21, 0x9f, 0x73, 0x07, 0xc8, 0x5b, 0xdd, 0xc1, 0xd6, 0x3b, 0xe8, 0x0c, 0x38, -0xb4, 0xfa, 0x20, 0x2c, 0xb8, 0x92, 0xd8, 0x4c, 0xa7, 0x34, 0x0c, 0x03, 0x74, 0xe1, 0x6e, 0xcc, -0x00, 0x77, 0x2c, 0x6f, 0x5f, 0xf8, 0xc9, 0x6e, 0x28, 0xff, 0xf4, 0x20, 0xb0, 0x1b, 0x7c, 0xfe, -0xb5, 0x2e, 0xd3, 0x0f, 0x77, 0x60, 0x9a, 0xd6, 0xdd, 0xa0, 0x85, 0x44, 0xb2, 0xb5, 0x90, 0x77, -0x92, 0x21, 0xc1, 0x2c, 0x16, 0x52, 0xf6, 0xe9, 0x6e, 0x48, 0x89, 0xe7, 0x15, 0xd7, 0x13, 0xae, -0x78, 0xff, 0x87, 0x22, 0x69, 0x8a, 0x4e, 0x84, 0x4a, 0xe4, 0x92, 0xfe, 0x9e, 0x7e, 0x03, 0xab, -0xcd, 0x1d, 0xef, 0x87, 0x42, 0x41, 0x39, 0xd8, 0x1f, 0xf7, 0xad, 0x1f, 0xd3, 0xeb, 0xce, 0x4f, -0x0e, 0x87, 0x99, 0xed, 0x06, 0xcf, 0x14, 0x57, 0xc8, 0x2d, 0x30, 0xb8, 0x0a, 0x7e, 0xb3, 0x06, -0xdb, 0xab, 0xa3, 0xb0, 0x75, 0xec, 0x26, 0xd8, 0x82, 0x61, 0x84, 0x41, 0x17, 0x0c, 0x9f, 0x8d, -0x71, 0x15, 0x7f, 0xf9, 0xfb, 0xd4, 0xd3, 0xc3, 0x7f, 0x9e, 0x3e, 0x0c, 0x56, 0x7a, 0xca, 0x35, -0xc8, 0x65, 0xa1, 0xb2, 0xd9, 0x1d, 0xb4, 0xfb, 0x48, 0x5c, 0x5e, 0x2b, 0xb4, 0x8b, 0xee, 0x0e, -0xda, 0x85, 0x2c, 0x3a, 0x97, 0xb8, 0xec, 0x2c, 0x4c, 0x24, 0x86, 0x2f, 0x1d, 0xfe, 0xe1, 0xec, -0xa2, 0xe1, 0x0f, 0x66, 0xcb, 0xc3, 0x67, 0xb0, 0x26, 0x0b, 0x18, 0x2f, 0x27, 0xf1, 0x69, 0xb6, -0x70, 0xe8, 0x18, 0x1a, 0xb8, 0x7c, 0x99, 0x7f, 0x2a, 0xd6, 0x7c, 0x0e, 0x7e, 0x63, 0xb8, 0xef, -0xe4, 0x2d, 0x63, 0xfd, 0x1c, 0x5e, 0x10, 0xcd, 0xb0, 0xce, 0x01, 0x21, 0x31, 0xb2, 0xe4, 0x1f, -0x42, 0xeb, 0x4b, 0x16, 0x50, 0x2e, 0x14, 0xd3, 0x0a, 0x60, 0x47, 0xe8, 0xee, 0xac, 0xcd, 0x20, -0x8b, 0x0e, 0xf8, 0x76, 0xb3, 0x0a, 0x70, 0x5e, 0x59, 0x8a, 0x4f, 0x8e, 0xe8, 0x5c, 0x2b, 0x24, -0x12, 0xf8, 0xfe, 0xae, 0x62, 0x63, 0xf9, 0x23, 0x1e, 0x66, 0xf9, 0xfa, 0x94, 0x00, 0x7f, 0x37, -0x14, 0xb2, 0xf7, 0xbf, 0x4d, 0x62, 0xb3, 0xb5, 0x82, 0x02, 0x82, 0xbb, 0x35, 0x31, 0x5b, 0x4e, -0x5c, 0xd6, 0x52, 0xb0, 0xb5, 0xe4, 0xe4, 0x82, 0x64, 0x0c, 0xfc, 0x6e, 0xf2, 0x67, 0x60, 0x2d, -0x8d, 0xa4, 0xa3, 0x5e, 0x3b, 0x5d, 0xb4, 0x52, 0x1b, 0xc4, 0x6d, 0x2c, 0x85, 0xdd, 0x3f, 0x87, -0xf3, 0x75, 0x9f, 0xbc, 0x27, 0x39, 0x8a, 0x24, 0x0c, 0x21, 0xdd, 0xa8, 0x89, 0x44, 0x2d, 0x88, -0x5d, 0xa6, 0x38, 0x41, 0x46, 0x29, 0x19, 0x97, 0xcb, 0xce, 0xd1, 0x5c, 0x6a, 0x27, 0xe4, 0xd2, -0x38, 0x21, 0x97, 0x6f, 0xb0, 0x5c, 0x0a, 0x31, 0x17, 0x84, 0x35, 0x59, 0xb8, 0x60, 0xa7, 0xeb, -0xb1, 0x5d, 0x08, 0x0b, 0xa4, 0x41, 0xca, 0xa2, 0xc6, 0xea, 0x32, 0xa5, 0xd6, 0x35, 0x67, 0xf8, -0x8c, 0x7b, 0xda, 0xbd, 0xdd, 0xc4, 0xe1, 0x51, 0x7e, 0xe5, 0x9a, 0xb5, 0x72, 0x8b, 0xe3, 0xf9, -0xc4, 0x35, 0x1a, 0x23, 0x89, 0x44, 0xd9, 0x27, 0x21, 0x3a, 0x47, 0x4f, 0x60, 0xb9, 0x5b, 0x6e, -0xc1, 0xff, 0x20, 0x2c, 0xee, 0x7f, 0x7b, 0x3f, 0xe7, 0x4f, 0x61, 0x1c, 0x21, 0x5b, 0x1c, 0xe7, -0x12, 0xd7, 0xde, 0xde, 0x8f, 0x3d, 0xd3, 0x85, 0xab, 0xe3, 0x1b, 0x08, 0xe5, 0x84, 0x1d, 0xaa, -0x85, 0x2f, 0xe3, 0x0c, 0xa9, 0xee, 0x0a, 0x83, 0x7a, 0x0c, 0x61, 0xb0, 0x5b, 0xc6, 0xd0, 0xf0, -0x02, 0xd5, 0x1d, 0xc6, 0x72, 0xa3, 0x4e, 0xca, 0x0f, 0x29, 0x30, 0x23, 0xbb, 0xf9, 0xdf, 0x33, -0xfc, 0x13, 0xde, 0xab, 0xc2, 0x56, 0xeb, 0x1c, 0xda, 0x2b, 0xab, 0xe2, 0x5a, 0x41, 0x83, 0xe6, -0xa3, 0x4a, 0x2d, 0xc6, 0xbd, 0x16, 0x30, 0x0d, 0xed, 0xd7, 0xe2, 0xc6, 0x30, 0xff, 0x6b, 0xad, -0xe0, 0x00, 0x49, 0xce, 0xda, 0x0b, 0x92, 0x1d, 0x4e, 0x4f, 0xa9, 0x1a, 0xc0, 0x15, 0x71, 0xca, -0x72, 0x93, 0x49, 0x80, 0xaf, 0x2a, 0x46, 0xd2, 0x5a, 0x7c, 0x6b, 0x11, 0x08, 0x4e, 0x73, 0xeb, -0x4d, 0xfb, 0xba, 0x10, 0xd3, 0xdd, 0xe4, 0x28, 0x84, 0x29, 0x3b, 0x3b, 0x1b, 0xc8, 0xf0, 0x27, -0x7d, 0x07, 0xfc, 0x1e, 0x04, 0x51, 0xf6, 0x81, 0x61, 0xc9, 0xc6, 0x48, 0xa9, 0x62, 0x2a, 0x3f, -0x37, 0x7c, 0x41, 0x2e, 0x6d, 0x01, 0x3b, 0x96, 0x1e, 0xe9, 0xc4, 0x7a, 0x99, 0x06, 0x3b, 0x9b, -0xfb, 0x42, 0x8d, 0xc3, 0x17, 0x18, 0x44, 0xd7, 0x27, 0x21, 0x8a, 0x63, 0x0a, 0x60, 0x70, 0x02, -0xbc, 0x37, 0x24, 0xbf, 0xba, 0x1b, 0x13, 0x97, 0x63, 0x89, 0xc1, 0x47, 0xd4, 0x0c, 0x8a, 0xa1, -0xe9, 0x6a, 0x06, 0xd8, 0xff, 0x9b, 0x61, 0xf8, 0x6f, 0x98, 0xef, 0xfe, 0x50, 0x4f, 0x8b, 0xb0, -0xb9, 0xa4, 0x40, 0xe0, 0xa3, 0xc5, 0x3b, 0x95, 0x9f, 0x92, 0x0f, 0x5f, 0x28, 0xbf, 0x72, 0xf5, -0x27, 0x1d, 0x90, 0x23, 0x28, 0x24, 0x63, 0xc8, 0x38, 0xbf, 0xd8, 0xfc, 0xef, 0x8f, 0x74, 0x1d, -0xeb, 0xdd, 0xf9, 0xfc, 0xf0, 0x07, 0xea, 0x69, 0xcc, 0x65, 0x17, 0x8e, 0x65, 0x71, 0xf8, 0xe2, -0xf2, 0x6c, 0xfc, 0x5f, 0x3c, 0xfc, 0xaf, 0xaa, 0x1d, 0xff, 0x97, 0x0f, 0x7f, 0xac, 0x5a, 0xf0, -0x7f, 0xf5, 0xf0, 0x27, 0x51, 0x18, 0x3e, 0xce, 0xea, 0x15, 0x61, 0x75, 0x1a, 0xa5, 0xe8, 0x14, -0xb9, 0x15, 0xf2, 0x8d, 0x04, 0x73, 0xd5, 0xf4, 0xf6, 0x3e, 0x05, 0x86, 0x77, 0x11, 0x34, 0x43, -0xab, 0x3d, 0x08, 0xc9, 0xab, 0x6e, 0x56, 0x92, 0xc4, 0x66, 0x50, 0xc2, 0x2f, 0x4a, 0xc1, 0xd0, -0x0a, 0x10, 0x93, 0x56, 0x37, 0xde, 0x1e, 0xc2, 0xd8, 0x7d, 0xad, 0x84, 0x07, 0xe4, 0xe9, 0xe7, -0x86, 0xff, 0x3c, 0x0e, 0x53, 0xb7, 0x71, 0x79, 0x2b, 0x56, 0xd6, 0xee, 0x64, 0x59, 0xa4, 0x83, -0x95, 0xe1, 0xcd, 0x73, 0x4b, 0x87, 0x87, 0x99, 0x15, 0x0a, 0xac, 0xdb, 0xf4, 0xe1, 0x0b, 0x51, -0x48, 0x94, 0x28, 0x90, 0xa8, 0xa5, 0xb9, 0x72, 0xad, 0x1f, 0x69, 0xbe, 0x00, 0x62, 0x91, 0x72, -0xa6, 0x8b, 0x9b, 0xd2, 0xbf, 0xce, 0xd3, 0x23, 0xfd, 0x66, 0x94, 0x1f, 0x97, 0x67, 0xc3, 0x14, -0x39, 0x68, 0xb3, 0xdb, 0xbd, 0x20, 0xd0, 0x08, 0xb7, 0x06, 0xe9, 0xae, 0x09, 0x7f, 0xbf, 0x84, -0x34, 0xd6, 0x2a, 0xb1, 0x08, 0x12, 0xa4, 0x23, 0xce, 0xe6, 0x05, 0xf1, 0xb4, 0xf9, 0x4b, 0x41, -0x30, 0xe3, 0xac, 0x4d, 0x5f, 0x4e, 0xbf, 0xd3, 0xf0, 0x7b, 0xd8, 0x8a, 0xbd, 0x8e, 0x90, 0xfb, -0x38, 0x46, 0x5a, 0xc2, 0xc4, 0xd6, 0xf4, 0xa1, 0xae, 0x14, 0x5d, 0xbc, 0x47, 0x91, 0x1a, 0xc8, -0x01, 0x0f, 0xe4, 0x0b, 0x3e, 0xc1, 0x07, 0xf3, 0x71, 0x25, 0x26, 0x9a, 0xc7, 0x88, 0xb0, 0xdd, -0xcb, 0x9e, 0x0f, 0xb2, 0xe7, 0x41, 0xf6, 0xbc, 0x95, 0x3d, 0xff, 0x2c, 0x56, 0x47, 0x52, 0x10, -0xf8, 0xf4, 0x94, 0xc3, 0x0b, 0x06, 0x9b, 0xf8, 0x81, 0x59, 0x0c, 0xc2, 0x4d, 0xb8, 0x5c, 0xa4, -0x53, 0xbd, 0x54, 0x63, 0xcc, 0xa2, 0x50, 0xdd, 0x44, 0xd5, 0x1c, 0xb3, 0xb2, 0x98, 0x1e, 0x7c, -0x33, 0x60, 0xf8, 0x34, 0xe5, 0x22, 0x3e, 0x19, 0xf1, 0xe9, 0x26, 0xe5, 0x03, 0x7e, 0xdf, 0x55, -0x1d, 0x27, 0xbb, 0x15, 0x6f, 0x1e, 0x7c, 0x73, 0x08, 0x29, 0x54, 0x63, 0x58, 0x56, 0x3d, 0x74, -0xb6, 0x7b, 0xb2, 0x8f, 0xd2, 0xa9, 0xa6, 0x56, 0xe1, 0x0e, 0x19, 0x8c, 0x31, 0x83, 0x92, 0x4d, -0xa1, 0x3c, 0xe6, 0xa1, 0xbe, 0x43, 0x4c, 0x0a, 0xa3, 0x5a, 0x56, 0xcf, 0x28, 0xa7, 0x22, 0x20, -0xcb, 0x0e, 0xd8, 0x59, 0x54, 0x9b, 0x41, 0x63, 0x3f, 0x9c, 0xe7, 0x81, 0xc6, 0xb3, 0x08, 0x6d, -0x31, 0x42, 0xeb, 0xa5, 0xa8, 0x7d, 0xcb, 0xe3, 0x94, 0xa0, 0x3d, 0xcf, 0x0c, 0xb1, 0xf4, 0xa1, -0x4e, 0xb2, 0x3a, 0x26, 0xb1, 0x33, 0xc0, 0x3f, 0x6f, 0xfb, 0x60, 0x4a, 0xeb, 0x6d, 0xfb, 0xba, -0xa4, 0x22, 0xb2, 0xae, 0xe0, 0x1f, 0xb5, 0xad, 0xa2, 0x58, 0xac, 0xb3, 0x61, 0x1a, 0x98, 0xb1, -0xa6, 0x82, 0x3b, 0x4e, 0xd0, 0x4f, 0xae, 0x7d, 0x56, 0xe3, 0xf8, 0xf5, 0xf7, 0xe4, 0x89, 0x2f, -0xb8, 0xef, 0xa1, 0xb8, 0x9f, 0x24, 0xc7, 0x04, 0xe9, 0x1a, 0x38, 0xb1, 0x98, 0xc2, 0xbf, 0x35, -0x40, 0x67, 0xf0, 0xce, 0xf0, 0xaf, 0xcf, 0x63, 0xea, 0x25, 0x6c, 0x85, 0xa8, 0x42, 0xca, 0xcb, -0xdc, 0xd2, 0x54, 0x2a, 0xc4, 0x4c, 0x1a, 0xdd, 0x3b, 0x1f, 0xd7, 0x3c, 0x13, 0xce, 0xe4, 0xb9, -0x6c, 0x3d, 0x9a, 0xc6, 0xd7, 0x23, 0x9c, 0x97, 0x7e, 0xb0, 0x86, 0x8a, 0xe4, 0xa2, 0x78, 0x67, -0xdc, 0x0f, 0x16, 0xf6, 0x3e, 0xf5, 0xfd, 0x0d, 0xf1, 0x4e, 0x8e, 0xf5, 0xff, 0x24, 0x24, 0x6b, -0x16, 0x63, 0xfa, 0x4c, 0xe8, 0xe4, 0xae, 0xf2, 0x7b, 0x31, 0x4b, 0x1e, 0xd9, 0x79, 0x30, 0x35, -0x5c, 0xe6, 0xff, 0x1b, 0x2f, 0x57, 0x83, 0x7a, 0xb6, 0x72, 0x0d, 0xae, 0x40, 0x40, 0x63, 0x99, -0xff, 0x8f, 0x03, 0xa7, 0x7d, 0x90, 0x1e, 0xe9, 0xa6, 0xb5, 0xff, 0x19, 0xe2, 0x4d, 0x36, 0xda, -0x3c, 0x8c, 0x1a, 0x88, 0x73, 0x6a, 0x20, 0xa9, 0x2b, 0x2f, 0x90, 0xe7, 0x2a, 0x77, 0x67, 0xb8, -0x57, 0xc2, 0x52, 0x4a, 0xb3, 0x89, 0x0e, 0xca, 0x0a, 0x71, 0xb4, 0x0d, 0xd9, 0x67, 0x61, 0x6c, -0x21, 0x31, 0xe4, 0x80, 0x52, 0x11, 0xc9, 0xa4, 0xc2, 0x2e, 0xd1, 0xc1, 0xf2, 0x1c, 0x12, 0x55, -0xcb, 0xf4, 0x57, 0x28, 0x26, 0x8d, 0xa0, 0xf0, 0x4a, 0x58, 0x15, 0xb5, 0xf3, 0x77, 0xba, 0x91, -0x4f, 0xb4, 0x33, 0x9a, 0xb6, 0x8b, 0xdd, 0x68, 0xce, 0xc7, 0xaf, 0x2b, 0xd4, 0x02, 0xe9, 0x41, -0xc8, 0x64, 0x52, 0x48, 0xb9, 0xe6, 0xd9, 0xb8, 0xf6, 0x67, 0x2f, 0x61, 0x38, 0x84, 0xb4, 0xa1, -0xf3, 0x7e, 0x75, 0xae, 0x80, 0x0c, 0xff, 0x34, 0x6f, 0x11, 0xd3, 0xb5, 0x24, 0x90, 0xae, 0x25, -0x5a, 0xc3, 0x68, 0x86, 0x96, 0x02, 0xce, 0x18, 0x56, 0x0b, 0xaa, 0x55, 0x17, 0xf0, 0x72, 0x90, -0x8e, 0x26, 0x6b, 0x3f, 0x99, 0x94, 0x43, 0x8c, 0x4e, 0xca, 0x33, 0x7c, 0xc5, 0xe3, 0xd3, 0x2b, -0x8c, 0x6f, 0x37, 0x26, 0x54, 0x9c, 0xab, 0xb0, 0x26, 0xce, 0x8e, 0xe9, 0x7a, 0x42, 0x9a, 0xa7, -0x9c, 0xb7, 0x92, 0xed, 0x90, 0x42, 0x1c, 0x4a, 0xd3, 0x87, 0x13, 0xff, 0x73, 0x34, 0x2c, 0xbf, -0xe8, 0xca, 0xc8, 0x4e, 0xd6, 0x2a, 0x33, 0xb7, 0xc7, 0xa7, 0x38, 0xef, 0xe2, 0xfb, 0x41, 0x7c, -0x73, 0xae, 0xc2, 0x5d, 0xa0, 0x77, 0xfc, 0x2e, 0x50, 0xa3, 0xd0, 0x10, 0x4b, 0xfa, 0x1a, 0x13, -0xc3, 0x54, 0xd6, 0xf5, 0x60, 0xcd, 0x4b, 0x42, 0xd7, 0xc0, 0xfb, 0x83, 0x87, 0xc4, 0x01, 0x67, -0x5e, 0x90, 0xf5, 0x9e, 0x40, 0x6f, 0xc9, 0x7e, 0x8c, 0xc3, 0xd8, 0x3d, 0xc1, 0x18, 0x8d, 0x89, -0xb3, 0xb5, 0xfd, 0x16, 0xd2, 0x57, 0xdc, 0x9e, 0xa9, 0xd5, 0x9b, 0xe2, 0xb2, 0xfa, 0x77, 0x53, -0x29, 0x63, 0x14, 0x27, 0xae, 0xa4, 0xef, 0x8c, 0xa5, 0xbb, 0x45, 0xc6, 0xba, 0x88, 0x58, 0x97, -0x7d, 0x93, 0x62, 0xed, 0xe0, 0x14, 0x31, 0xe7, 0xf6, 0xf5, 0x33, 0x2b, 0x15, 0x7f, 0xfa, 0x4a, -0x72, 0xdc, 0x25, 0xf5, 0xfc, 0x90, 0x4e, 0x1f, 0x77, 0xb9, 0xab, 0x12, 0x47, 0xef, 0x2c, 0xa6, -0x35, 0x9d, 0xcd, 0x9c, 0x3f, 0xdd, 0xcd, 0xe3, 0xd9, 0x66, 0x43, 0x36, 0xe9, 0xbf, 0x42, 0xbc, -0x95, 0xcd, 0xfb, 0x93, 0x30, 0x5c, 0xc9, 0x90, 0x3a, 0x46, 0x99, 0x77, 0x14, 0x9d, 0x81, 0xca, -0x14, 0xb9, 0xe4, 0xb1, 0x1b, 0xcb, 0x36, 0x4d, 0x23, 0x3a, 0x52, 0x97, 0xff, 0x56, 0x81, 0xf3, -0xb6, 0x92, 0x38, 0x4a, 0xa3, 0xb5, 0x6c, 0x1e, 0xc9, 0xae, 0x5c, 0x9c, 0x53, 0xf3, 0x95, 0xc5, -0xe1, 0xed, 0xf8, 0x3f, 0x70, 0xa3, 0xdc, 0x12, 0xb6, 0xb1, 0xdc, 0xe4, 0x5f, 0x8c, 0xe5, 0x45, -0x37, 0x47, 0xad, 0xc9, 0x36, 0x95, 0x8d, 0x52, 0x0f, 0x22, 0xd7, 0x20, 0x14, 0x5e, 0x05, 0x2b, -0xa2, 0x3f, 0x57, 0xde, 0xd5, 0x7a, 0x01, 0xa0, 0x43, 0xbb, 0x13, 0x29, 0x77, 0x41, 0x00, 0x4b, -0x47, 0x3a, 0x30, 0x97, 0xcc, 0xd4, 0x6a, 0x2d, 0x16, 0xb5, 0x36, 0x57, 0x68, 0x6d, 0xf6, 0xf2, -0x36, 0xdf, 0x82, 0x6d, 0xa6, 0x3b, 0x3a, 0x36, 0xfb, 0xf9, 0xce, 0xc0, 0xac, 0xe9, 0x51, 0xca, -0x96, 0x11, 0x9f, 0x24, 0xcf, 0x1a, 0xf8, 0xde, 0xa7, 0x66, 0x80, 0x53, 0xf7, 0xac, 0xcd, 0x19, -0xc9, 0x7a, 0x92, 0x4a, 0xc8, 0xa8, 0x3b, 0x45, 0x0e, 0x36, 0x3c, 0xa6, 0x2d, 0x7c, 0xac, 0x65, -0x4c, 0x53, 0x52, 0x76, 0x52, 0xd3, 0xe8, 0x78, 0x39, 0x67, 0xed, 0xad, 0x8d, 0xef, 0x11, 0x24, -0xd2, 0x54, 0x9c, 0x95, 0xef, 0x87, 0x19, 0x04, 0xa7, 0x97, 0xce, 0xc0, 0x92, 0x24, 0x3e, 0xf3, -0x43, 0x60, 0x15, 0x6b, 0x99, 0x17, 0x96, 0x92, 0x95, 0x1d, 0xd6, 0xa2, 0xce, 0xd1, 0xf3, 0x04, -0xcd, 0xde, 0x40, 0xe2, 0xa7, 0xee, 0x55, 0x50, 0x49, 0xad, 0x52, 0x66, 0x30, 0x7e, 0x31, 0x6a, -0x3f, 0xb3, 0x3f, 0xf8, 0xa7, 0x5f, 0x6b, 0xf6, 0x6b, 0x30, 0xac, 0xc1, 0xc2, 0x2c, 0x26, 0xbd, -0x8b, 0x73, 0x7d, 0x23, 0xeb, 0x1f, 0x80, 0x1e, 0x82, 0xa9, 0xda, 0x31, 0x73, 0x21, 0x2c, 0xc5, -0x79, 0x0e, 0x90, 0x9d, 0xdc, 0x85, 0x20, 0x34, 0xda, 0xb5, 0x1c, 0x0e, 0x97, 0xf1, 0xd2, 0x1e, -0x97, 0x56, 0xc1, 0x52, 0xf0, 0x24, 0xe2, 0x90, 0x8d, 0xab, 0xb5, 0x1c, 0x25, 0xab, 0x23, 0x4b, -0xa5, 0x15, 0x60, 0x67, 0x78, 0xa2, 0xc0, 0x8f, 0x33, 0x1b, 0x3d, 0x5b, 0x89, 0xff, 0xf4, 0x21, -0x8f, 0x4d, 0x5f, 0x25, 0x0c, 0x67, 0xf3, 0x9d, 0xc1, 0x65, 0xbc, 0x7e, 0x36, 0x76, 0x67, 0xcc, -0xc2, 0x21, 0x8b, 0xf6, 0x94, 0x0a, 0x8c, 0x7c, 0xc0, 0x4e, 0xee, 0x70, 0x87, 0x43, 0x2d, 0x66, -0x27, 0x6e, 0x53, 0x93, 0xe5, 0x27, 0x5b, 0x3b, 0xb2, 0x93, 0xf2, 0xa6, 0xb4, 0xdc, 0x7e, 0x27, -0x96, 0x92, 0x31, 0xb9, 0x0e, 0xa7, 0x66, 0x8d, 0xd6, 0x21, 0xe3, 0x0b, 0xd6, 0xc1, 0x46, 0xa7, -0x6c, 0x58, 0x87, 0x5a, 0x8d, 0xbb, 0x3c, 0x3f, 0x96, 0x18, 0x93, 0xae, 0xd4, 0x6e, 0x98, 0x85, -0xf7, 0x7f, 0x39, 0xb3, 0x68, 0x0c, 0x9b, 0x5c, 0x53, 0x67, 0x06, 0xa1, 0x4e, 0x0a, 0xc6, 0x3c, -0x63, 0x96, 0x36, 0x30, 0x44, 0x41, 0xf8, 0xd6, 0x45, 0x8d, 0xdc, 0xee, 0x65, 0x5c, 0x48, 0xd5, -0xf6, 0x4d, 0x1a, 0x6c, 0x4f, 0x55, 0xc4, 0x88, 0x5f, 0x4e, 0x19, 0x6f, 0xc3, 0x27, 0x4a, 0x71, -0x8d, 0xa9, 0x71, 0x9d, 0xcd, 0x10, 0x98, 0x70, 0x02, 0xb0, 0x97, 0xdb, 0x1d, 0x40, 0xca, 0xf8, -0x05, 0xe2, 0xd5, 0xbc, 0x7c, 0x5f, 0xd9, 0x95, 0x6b, 0x3b, 0x88, 0x53, 0xf3, 0xd2, 0x67, 0x64, -0x79, 0xe7, 0x93, 0x92, 0x71, 0xb8, 0x6e, 0x1f, 0x83, 0xc4, 0xb7, 0x2b, 0x9f, 0x88, 0x6c, 0x87, -0x06, 0x0d, 0x7e, 0x44, 0xd5, 0x51, 0xaf, 0x73, 0x9d, 0xb8, 0x2b, 0x92, 0x76, 0xc5, 0xb4, 0xaf, -0x8f, 0xd7, 0x0c, 0xc8, 0x25, 0x32, 0x59, 0x8b, 0x51, 0xee, 0x64, 0x36, 0x03, 0xe9, 0x49, 0xde, -0x06, 0x12, 0xfd, 0xbf, 0x1d, 0x53, 0xf4, 0x3e, 0x03, 0x2e, 0xaa, 0x7b, 0x8a, 0x55, 0x90, 0x92, -0x28, 0xe3, 0x84, 0x24, 0x9d, 0x67, 0x81, 0xe0, 0x4b, 0xaf, 0x44, 0x99, 0x75, 0x4d, 0x07, 0xb4, -0x0b, 0xca, 0xee, 0xb0, 0x38, 0x36, 0x92, 0xb1, 0x47, 0x1b, 0x58, 0x7d, 0x1a, 0x2a, 0x9f, 0x98, -0x90, 0x2b, 0xdc, 0x61, 0x9b, 0x98, 0x6b, 0x8c, 0xa4, 0x0a, 0xc7, 0x5a, 0xf2, 0x06, 0x1b, 0xc5, -0x2c, 0xb7, 0xbb, 0x83, 0xb0, 0xa2, 0x64, 0x15, 0xab, 0x79, 0x69, 0xe5, 0x26, 0x79, 0x15, 0xe2, -0x79, 0x4b, 0xea, 0x79, 0x45, 0xb2, 0x9d, 0x2c, 0x05, 0xb5, 0x34, 0x93, 0x7f, 0xff, 0x34, 0x33, -0x69, 0xcb, 0x61, 0xf8, 0x51, 0xd6, 0xeb, 0xa3, 0x2d, 0xc6, 0x3e, 0x7f, 0x75, 0x4c, 0xef, 0xf1, -0x95, 0x77, 0x60, 0x24, 0x91, 0x25, 0xcc, 0x82, 0x95, 0xf8, 0x7c, 0x19, 0x46, 0xae, 0x8a, 0x30, -0x32, 0xbc, 0x53, 0xd3, 0xcf, 0xb2, 0x72, 0x59, 0x54, 0x5a, 0xd9, 0xb4, 0xb2, 0x75, 0xec, 0x89, -0x6b, 0xff, 0x19, 0x53, 0x7c, 0x6c, 0x81, 0x39, 0xf3, 0x57, 0xaf, 0x61, 0x17, 0x07, 0xf4, 0xa8, -0x2e, 0x5b, 0xc9, 0x2e, 0x9c, 0x0a, 0x9b, 0xd6, 0x34, 0x34, 0xcc, 0xbf, 0x8e, 0xcd, 0xeb, 0xe5, -0xcb, 0x1a, 0x1a, 0x5a, 0x9a, 0x1b, 0x57, 0xd3, 0x45, 0xc0, 0xb2, 0x3a, 0x66, 0x8d, 0x98, 0x6c, -0x22, 0x4b, 0xb5, 0xcb, 0x56, 0xd7, 0xd3, 0xa9, 0xff, 0x72, 0x76, 0xf6, 0xdf, 0xfa, 0xfd, 0x58, -0xfd, 0xd7, 0xf9, 0x49, 0x3d, 0xb7, 0xf2, 0x4c, 0xda, 0x5b, 0x9a, 0xd7, 0xb4, 0x8e, 0xc6, 0xb7, -0x40, 0xdd, 0xb2, 0x07, 0x8a, 0x9b, 0x9b, 0xd4, 0x95, 0x51, 0x2d, 0x5e, 0xf5, 0xca, 0xb5, 0x94, -0x24, 0xbf, 0x9d, 0x59, 0x84, 0xae, 0x6a, 0x5e, 0x49, 0x47, 0xe7, 0xf4, 0x4a, 0x46, 0x8c, 0x53, -0x5e, 0x2b, 0x97, 0x35, 0xf2, 0x78, 0x16, 0x60, 0x8f, 0xa4, 0x25, 0xc6, 0x32, 0x5a, 0x2d, 0xa6, -0xe4, 0xd2, 0x02, 0x74, 0x2b, 0xc1, 0x8c, 0x3b, 0x6b, 0xb6, 0x9d, 0xdb, 0xb5, 0x9f, 0x3a, 0x89, -0x47, 0x2f, 0xc6, 0xe8, 0xbc, 0x2e, 0x74, 0x6f, 0x14, 0xc4, 0x1a, 0x33, 0x33, 0xd6, 0x74, 0xcb, -0xc0, 0x20, 0x45, 0x0d, 0x61, 0x95, 0xab, 0xab, 0x6f, 0x63, 0x57, 0x0b, 0x49, 0x3d, 0xab, 0xfc, -0x4e, 0x9b, 0xac, 0xfd, 0x22, 0x2d, 0xf5, 0xa5, 0x80, 0x1f, 0xb2, 0x99, 0xa6, 0xed, 0x6c, 0x1c, -0x19, 0xd2, 0x9b, 0xfb, 0xc2, 0x42, 0x74, 0x06, 0xee, 0xa8, 0x82, 0xaa, 0x4f, 0x71, 0xd9, 0x6d, -0xc4, 0x7b, 0xe7, 0xb0, 0x9f, 0xb6, 0x88, 0x42, 0xe2, 0x62, 0x8f, 0x60, 0xdf, 0x57, 0x1d, 0xac, -0xe9, 0x0b, 0x07, 0xd5, 0x0f, 0x94, 0x19, 0x76, 0x9b, 0xfd, 0x95, 0xea, 0xe0, 0x62, 0x7a, 0xbb, -0xa4, 0xd8, 0x38, 0x9d, 0x3b, 0xc6, 0x57, 0xca, 0x71, 0x30, 0xe7, 0x22, 0xf9, 0xc6, 0x7c, 0x4f, -0x65, 0xd1, 0x79, 0x61, 0x2d, 0x69, 0xc8, 0xb8, 0xfa, 0xb7, 0x38, 0xb2, 0xce, 0xba, 0x40, 0xb5, -0xe0, 0xcc, 0x83, 0xb8, 0x85, 0x59, 0x71, 0x94, 0x6f, 0xaf, 0xe0, 0xfc, 0x1c, 0x57, 0x17, 0xf2, -0xb9, 0x86, 0xa3, 0x55, 0xf6, 0xac, 0x80, 0x42, 0xdc, 0x63, 0x7f, 0xed, 0xd8, 0x00, 0xcd, 0xb5, -0xe1, 0x50, 0x87, 0xef, 0x38, 0xed, 0xa7, 0x69, 0x7d, 0xf5, 0x11, 0x81, 0xe8, 0xb7, 0xfa, 0x7d, -0x20, 0xb1, 0x54, 0xf7, 0x30, 0xde, 0x09, 0x9b, 0xd9, 0xc7, 0x2c, 0x9e, 0x98, 0xc2, 0x0d, 0x90, -0xcd, 0xf7, 0x27, 0x57, 0x3b, 0x88, 0xaf, 0x03, 0x53, 0x65, 0x32, 0x29, 0x61, 0xba, 0x53, 0x08, -0xfa, 0xad, 0x34, 0x57, 0x18, 0x8d, 0xb9, 0xb0, 0xe5, 0x26, 0xb2, 0x7b, 0xea, 0x67, 0xf7, 0x06, -0x57, 0xb7, 0x54, 0x3e, 0x81, 0x61, 0xd5, 0x59, 0x20, 0x1a, 0x13, 0x43, 0x84, 0xd9, 0xad, 0xf8, -0x9f, 0x4e, 0x63, 0x5b, 0x02, 0x43, 0x9d, 0xf6, 0x42, 0xb0, 0x31, 0x7e, 0xde, 0xd7, 0xf9, 0xd9, -0x89, 0xdf, 0x44, 0x72, 0x0c, 0x7e, 0x63, 0x32, 0xb7, 0x00, 0x9d, 0xc6, 0xd2, 0x6f, 0x29, 0xfb, -0x0d, 0xb1, 0xdf, 0x30, 0xa7, 0x51, 0xaf, 0xfe, 0xac, 0xf2, 0x09, 0x7c, 0x8b, 0x90, 0x94, 0x03, -0xee, 0x0c, 0xa6, 0x2d, 0x07, 0xe8, 0xd5, 0xf8, 0xe0, 0x84, 0xf1, 0xf2, 0x8c, 0xd1, 0x86, 0x59, -0xa4, 0xaf, 0x1f, 0x58, 0x7e, 0x79, 0x8c, 0x67, 0x98, 0xe5, 0x4f, 0x36, 0xe2, 0xf2, 0xa0, 0xba, -0x88, 0xd9, 0x6b, 0x2a, 0x4a, 0x5c, 0xa3, 0xf3, 0xdf, 0xc1, 0x55, 0x20, 0xd6, 0x01, 0xbc, 0xc0, -0x73, 0x0a, 0xb5, 0x98, 0x79, 0x59, 0x6f, 0x93, 0x65, 0x5c, 0x5c, 0x6f, 0xb6, 0x22, 0xae, 0xc5, -0xb6, 0x87, 0x7b, 0xd4, 0x2c, 0x67, 0x03, 0x59, 0x81, 0x0e, 0xcc, 0x02, 0x31, 0x45, 0x86, 0xed, -0x39, 0xc8, 0xe1, 0x56, 0x70, 0x47, 0x06, 0x59, 0xba, 0x93, 0xc9, 0x15, 0x4e, 0x62, 0x71, 0x5c, -0x2b, 0x04, 0x19, 0x21, 0x47, 0xba, 0xcd, 0x2d, 0xdc, 0x7a, 0xd4, 0x55, 0xac, 0x0f, 0xae, 0xe8, -0x53, 0xb8, 0xf5, 0x3a, 0x76, 0x83, 0x92, 0xc1, 0x30, 0x4c, 0x16, 0xd9, 0xff, 0xe1, 0x67, 0x61, -0x57, 0xff, 0xb5, 0x72, 0x8b, 0x2b, 0xc2, 0xee, 0x69, 0x36, 0xab, 0xfb, 0x11, 0x03, 0x5c, 0x9e, -0x56, 0x30, 0x2a, 0x47, 0x62, 0xab, 0x5c, 0xe3, 0xc2, 0x9a, 0xb4, 0x43, 0x81, 0x17, 0x8c, 0xef, -0xf4, 0xfb, 0x49, 0x63, 0x3a, 0xf6, 0xa0, 0x9f, 0x69, 0xd4, 0x1e, 0xbe, 0x19, 0xfb, 0xbc, 0x01, -0x24, 0x77, 0xc5, 0xe8, 0x8a, 0x21, 0xb3, 0x15, 0xc3, 0x48, 0x2b, 0x06, 0x97, 0xcf, 0x65, 0xb5, -0xf8, 0x0a, 0xb6, 0x08, 0x12, 0x2e, 0xf6, 0xec, 0xc1, 0x9d, 0x65, 0x36, 0xc7, 0x20, 0x89, 0x6c, -0x48, 0x08, 0x55, 0x88, 0x41, 0xfe, 0x0d, 0x9f, 0xe7, 0xa1, 0x97, 0xd1, 0x6b, 0xda, 0x85, 0x71, -0x7a, 0xd0, 0x34, 0x49, 0xfe, 0x9f, 0x8c, 0x3d, 0x34, 0x44, 0xb1, 0x66, 0x59, 0xfd, 0xd8, 0x55, -0x3a, 0xbe, 0x20, 0xba, 0x78, 0xa0, 0xae, 0xbe, 0x71, 0x4d, 0x3b, 0xa5, 0x6c, 0x5d, 0x16, 0x25, -0xd4, 0x63, 0x01, 0x9a, 0xd9, 0x63, 0x33, 0xad, 0x1c, 0xc3, 0x22, 0xf5, 0xab, 0x57, 0xd6, 0x91, -0x86, 0x42, 0x7c, 0xf7, 0x2c, 0xa1, 0xbb, 0xb2, 0x2a, 0xfa, 0x29, 0xe5, 0x77, 0x89, 0x4c, 0x03, -0x14, 0xfd, 0xcc, 0xb2, 0xa4, 0xe4, 0xa3, 0xcd, 0xf1, 0xa4, 0xbb, 0x1d, 0xb0, 0x85, 0x89, 0xd3, -0x4c, 0x4a, 0x21, 0x83, 0x76, 0x44, 0xc3, 0x47, 0x3d, 0x4c, 0xd3, 0x4e, 0xa2, 0x56, 0xb3, 0x4c, -0xe3, 0xf6, 0x07, 0xc9, 0x32, 0x09, 0x86, 0x34, 0x43, 0x01, 0x9d, 0x21, 0x22, 0xfd, 0x5c, 0xa0, -0x59, 0x6a, 0xb6, 0xe0, 0x6a, 0xf8, 0x37, 0xd8, 0xdf, 0xb8, 0xa6, 0x10, 0x2c, 0x13, 0x1d, 0x9c, -0xfe, 0xf2, 0x55, 0x10, 0x5d, 0x8b, 0x30, 0xc7, 0x79, 0xb4, 0x10, 0xc7, 0x1e, 0x59, 0xe5, 0x2c, -0xc8, 0x21, 0xeb, 0x98, 0x53, 0x4c, 0x38, 0x42, 0x0e, 0x99, 0x71, 0x9f, 0x4d, 0x36, 0x70, 0x61, -0x3f, 0x3e, 0xd1, 0xcc, 0x01, 0xd8, 0x83, 0x54, 0x4d, 0xce, 0x2e, 0x6e, 0x5d, 0xe7, 0x05, 0x9c, -0x23, 0xd3, 0xc7, 0x8d, 0xfd, 0x9f, 0x60, 0xaf, 0xcf, 0x06, 0xb1, 0xe8, 0x13, 0xf3, 0x07, 0x6e, -0xb3, 0x26, 0xe7, 0x33, 0x8d, 0xe9, 0x3c, 0x08, 0xe3, 0xaa, 0xb9, 0x28, 0x66, 0x63, 0x25, 0x76, -0x30, 0x9e, 0xa4, 0x15, 0x65, 0xe7, 0x41, 0xb4, 0x2e, 0x09, 0x0f, 0xab, 0xf7, 0xff, 0x8f, 0xb7, -0xd4, 0xfb, 0x9c, 0xb9, 0x60, 0x57, 0x4d, 0xc4, 0xc3, 0x92, 0xf8, 0x8e, 0x94, 0x0b, 0x19, 0x7c, -0x4c, 0x25, 0xbe, 0x43, 0xf6, 0x8f, 0x98, 0x95, 0x23, 0x8b, 0x9f, 0x7e, 0xa7, 0x25, 0x47, 0x17, -0x3e, 0x4f, 0x65, 0x76, 0xbb, 0xbc, 0x7c, 0x8e, 0x27, 0xfa, 0x98, 0xac, 0x43, 0x65, 0xaa, 0xe5, -0x5a, 0x26, 0xf7, 0x6c, 0xf2, 0x2d, 0xdc, 0xf5, 0x48, 0xdd, 0x66, 0x57, 0x84, 0xb8, 0x72, 0x13, -0xb9, 0xac, 0x06, 0x5d, 0x2c, 0xc5, 0xfe, 0xe4, 0x5d, 0x08, 0xd7, 0xc0, 0xcf, 0xf5, 0xed, 0x13, -0x8f, 0x3f, 0x64, 0x69, 0x3a, 0xb2, 0x69, 0x5f, 0x17, 0x60, 0x5c, 0x46, 0x48, 0x0b, 0x92, 0x5c, -0x6a, 0x60, 0x7a, 0xbe, 0x7d, 0x50, 0x6e, 0x16, 0xf3, 0x61, 0x2e, 0xb6, 0x33, 0x0f, 0x67, 0x18, -0xb6, 0xd7, 0x98, 0x47, 0xbc, 0x8e, 0x45, 0x0d, 0x62, 0x1e, 0xcc, 0x7d, 0x10, 0x4c, 0x38, 0xee, -0x4d, 0x3b, 0xe4, 0x46, 0xf7, 0xae, 0xf2, 0x66, 0x31, 0xaf, 0x78, 0x70, 0x61, 0xb3, 0x18, 0x98, -0x3a, 0x58, 0xde, 0xc8, 0xf7, 0x6e, 0x8e, 0x40, 0xd7, 0x9d, 0xe5, 0x20, 0xde, 0x59, 0x04, 0xc6, -0x3b, 0x83, 0x60, 0x52, 0x8c, 0x72, 0x90, 0xed, 0xb0, 0xde, 0xb3, 0x5a, 0xa9, 0x3c, 0xce, 0x93, -0x85, 0xb4, 0x91, 0x99, 0x4e, 0x95, 0x49, 0xcb, 0x6c, 0x92, 0x2a, 0x62, 0x32, 0xa7, 0xe3, 0xbe, -0x16, 0x5f, 0x18, 0xff, 0x55, 0x93, 0x83, 0xb5, 0x8d, 0xd1, 0x41, 0x0c, 0x63, 0x64, 0xcf, 0x94, -0xc1, 0x72, 0x4b, 0x33, 0x7c, 0x09, 0xa6, 0x84, 0xbb, 0xa2, 0xd6, 0x14, 0xeb, 0x3f, 0x4f, 0x27, -0x75, 0xee, 0xd3, 0x9e, 0x2e, 0x55, 0xc2, 0x5a, 0x0a, 0x62, 0x19, 0x27, 0x18, 0x55, 0x6c, 0xf1, -0x4f, 0x41, 0x6f, 0x46, 0x8a, 0xcd, 0xca, 0x2d, 0x66, 0x53, 0x49, 0xc0, 0xf6, 0xc1, 0xb7, 0x87, -0x88, 0x7b, 0x0c, 0x8c, 0xc5, 0xa7, 0xc1, 0x28, 0x6d, 0xe0, 0x16, 0x13, 0x48, 0xa3, 0xef, 0x13, -0xaf, 0xd2, 0x69, 0x38, 0xd9, 0x09, 0x19, 0xbd, 0xaf, 0xd3, 0xac, 0x47, 0xb2, 0x31, 0xbc, 0xd3, -0x9f, 0x71, 0x5b, 0x07, 0x8e, 0xa6, 0xb9, 0xb2, 0x1f, 0xbe, 0x4a, 0x36, 0x45, 0xf0, 0x7f, 0x61, -0x6a, 0xe9, 0x38, 0x8e, 0xe7, 0xb3, 0x18, 0x5f, 0x2f, 0xba, 0x00, 0xb2, 0x3f, 0x84, 0x1b, 0xd5, -0x17, 0xa1, 0x14, 0x9f, 0x4b, 0xf1, 0x59, 0xc6, 0x2f, 0x69, 0x90, 0x81, 0x69, 0x6e, 0xc2, 0x50, -0x1b, 0x86, 0xe6, 0x62, 0xa8, 0xe3, 0x1b, 0x1d, 0xe0, 0x81, 0xac, 0xf1, 0xb6, 0xd2, 0x91, 0xaa, -0x4b, 0x18, 0x5a, 0x24, 0x3f, 0x2c, 0xc6, 0xba, 0x98, 0x26, 0xd8, 0x66, 0x9c, 0xfb, 0x0d, 0xa2, -0xa4, 0x9c, 0x98, 0x8f, 0xcb, 0xdf, 0x0c, 0x35, 0xe0, 0xc6, 0xdf, 0xa5, 0xe0, 0xa5, 0x98, 0x29, -0xf6, 0xd5, 0x53, 0xdf, 0xe6, 0xb3, 0x53, 0x6f, 0x68, 0x11, 0x86, 0x3a, 0x7d, 0x44, 0xa1, 0x56, -0x54, 0xae, 0x19, 0x77, 0x4b, 0x0e, 0x4c, 0x67, 0x2c, 0x49, 0x0e, 0x6b, 0x16, 0xc3, 0x6a, 0x06, -0x5c, 0xb0, 0x38, 0x9e, 0xaa, 0xdb, 0x87, 0xf5, 0x47, 0x8e, 0x54, 0x5c, 0x7c, 0x06, 0x04, 0x92, -0xc0, 0x18, 0x5b, 0x0d, 0x1d, 0x5d, 0x92, 0xe5, 0x54, 0x1f, 0x3f, 0x5b, 0x29, 0xe1, 0x77, 0x1b, -0x96, 0x58, 0x46, 0xaa, 0xf4, 0x35, 0x4b, 0x1b, 0x96, 0xed, 0x32, 0xce, 0x49, 0xf4, 0xe2, 0x2d, -0x64, 0x11, 0xce, 0x80, 0x4f, 0x46, 0xf4, 0x69, 0xe8, 0x4d, 0xe8, 0xd3, 0xef, 0xee, 0xa8, 0xfc, -0x0b, 0xb3, 0xb8, 0x60, 0x05, 0x0b, 0xee, 0x5b, 0xcc, 0x31, 0xd3, 0x44, 0x4b, 0xd4, 0x92, 0xa5, -0x26, 0xce, 0x4b, 0xe2, 0x72, 0xc9, 0xda, 0x7e, 0x9e, 0x46, 0xdb, 0x2a, 0x28, 0x65, 0xbc, 0x72, -0x19, 0x63, 0x77, 0x6d, 0xf2, 0x76, 0x28, 0x1d, 0x8b, 0xc7, 0xd6, 0xc4, 0xa9, 0x5c, 0x83, 0xd3, -0xb5, 0x61, 0x36, 0x3e, 0x0c, 0x7e, 0x91, 0xec, 0xac, 0x30, 0x1e, 0x30, 0x31, 0xd2, 0x87, 0xff, -0xe7, 0xa8, 0xa6, 0x48, 0x5f, 0x8b, 0x40, 0x96, 0xd9, 0x62, 0xa0, 0x38, 0x9c, 0xc1, 0xb7, 0x86, -0xde, 0xfa, 0xfd, 0xa1, 0x0d, 0xf4, 0x3f, 0xd4, 0x55, 0xfc, 0xaf, 0xd2, 0x21, 0x69, 0x8a, 0x23, -0x2b, 0x53, 0x34, 0x19, 0x12, 0x87, 0xac, 0x06, 0x98, 0xb2, 0xfc, 0xdd, 0x70, 0x67, 0x54, 0x2c, -0x89, 0xbb, 0x6e, 0x73, 0xdf, 0xc6, 0xe8, 0x81, 0x77, 0x34, 0x4a, 0xbf, 0x06, 0x47, 0xd1, 0x52, -0xed, 0x5c, 0x7d, 0x44, 0xb3, 0xd1, 0x98, 0x98, 0x92, 0x4b, 0xb0, 0xb5, 0x78, 0x70, 0x5f, 0x8a, -0x18, 0xca, 0x48, 0x67, 0x7b, 0x33, 0xf1, 0xfb, 0x3e, 0xab, 0x17, 0x02, 0xb8, 0xe3, 0xb5, 0x45, -0xfa, 0x6f, 0x23, 0xcd, 0x34, 0x81, 0x5c, 0xc2, 0x61, 0x33, 0x95, 0x8c, 0xc5, 0xf4, 0x1e, 0xd0, -0xde, 0x73, 0x6c, 0x76, 0x8c, 0xef, 0x55, 0xcd, 0x9e, 0xea, 0x48, 0x7f, 0xcd, 0x23, 0x8a, 0x77, -0x54, 0x06, 0x79, 0x06, 0xe3, 0x33, 0xcc, 0xaf, 0x19, 0xf0, 0x04, 0x25, 0x8b, 0x2b, 0x18, 0x89, -0xdb, 0xed, 0x26, 0x01, 0xbf, 0xd1, 0xb9, 0xf1, 0x45, 0x45, 0xfc, 0xf1, 0xeb, 0x56, 0x3b, 0xe4, -0x62, 0xfb, 0xfa, 0x93, 0x39, 0xb8, 0xa7, 0xb3, 0x1c, 0xb2, 0x46, 0x73, 0xb0, 0x32, 0x5b, 0x36, -0x1f, 0xd7, 0x0c, 0xb8, 0x71, 0xbf, 0xdc, 0x06, 0x52, 0xd8, 0x15, 0xb2, 0xdb, 0x22, 0x7d, 0x36, -0x21, 0x19, 0x63, 0xf9, 0x79, 0xcc, 0x2d, 0x37, 0x7a, 0x1a, 0x7f, 0xe7, 0x44, 0x4f, 0xe2, 0xef, -0xec, 0xe8, 0x71, 0xfc, 0x5d, 0x4e, 0x56, 0xca, 0x9a, 0x32, 0xf1, 0xa9, 0x3a, 0xda, 0xc4, 0x64, -0x64, 0xf2, 0xf0, 0x17, 0xdb, 0x24, 0x1e, 0x51, 0xb2, 0x49, 0xba, 0x81, 0xce, 0x94, 0xf1, 0xff, -0xea, 0x28, 0x93, 0xb6, 0xc0, 0xf0, 0xbd, 0x48, 0xad, 0x54, 0x69, 0x96, 0x26, 0xda, 0x61, 0xa6, -0x02, 0xe2, 0xe1, 0x85, 0x1f, 0xe1, 0x0c, 0xac, 0x66, 0xf8, 0x85, 0x69, 0xa7, 0xb6, 0x65, 0x85, -0xe2, 0x73, 0x83, 0x8a, 0x65, 0x6e, 0x07, 0x98, 0x68, 0x16, 0x4c, 0xc9, 0x0d, 0x77, 0x47, 0x45, -0x77, 0xb1, 0x7f, 0x2a, 0xce, 0x64, 0xc4, 0x92, 0x47, 0x1e, 0xc1, 0x54, 0x31, 0x4a, 0x95, 0x3b, -0x5d, 0x35, 0x31, 0xd8, 0xe4, 0x52, 0x0d, 0x54, 0xdb, 0x68, 0xbe, 0xce, 0xca, 0xad, 0x91, 0x2e, -0xdc, 0x95, 0x74, 0xab, 0x16, 0xa9, 0x4c, 0x11, 0x23, 0xdd, 0x24, 0xbb, 0x8d, 0xbd, 0x9d, 0xee, -0x5c, 0x50, 0xf9, 0xd8, 0x91, 0xee, 0xaa, 0x01, 0x84, 0x48, 0x35, 0xd6, 0xe6, 0xfe, 0xf1, 0x29, -0x30, 0xdf, 0x2c, 0x56, 0x9b, 0xe9, 0x64, 0x09, 0xa9, 0xe5, 0xa6, 0x7d, 0x71, 0x67, 0xe9, 0xcd, -0x77, 0x66, 0xc1, 0xe9, 0xbe, 0x97, 0x2e, 0x80, 0x4f, 0x3d, 0x8f, 0xf1, 0xc8, 0x66, 0x62, 0x01, -0xd5, 0x02, 0xdb, 0x71, 0x96, 0xe2, 0x66, 0xce, 0x06, 0x83, 0xcd, 0x80, 0x70, 0x3a, 0x81, 0x70, -0x52, 0x96, 0x9b, 0xac, 0x86, 0xc4, 0x7f, 0x5b, 0xee, 0xe0, 0xf9, 0x72, 0x5b, 0x12, 0x38, 0xa3, -0xb6, 0x92, 0x74, 0x8d, 0x66, 0x81, 0x34, 0x31, 0xe5, 0x6e, 0xaa, 0x05, 0x8f, 0x61, 0x33, 0x9c, -0x36, 0xf3, 0x7d, 0xa0, 0x54, 0x3a, 0xc6, 0x75, 0x4c, 0x9a, 0x26, 0xf8, 0xf7, 0xd8, 0x4d, 0x07, -0xe2, 0x52, 0x29, 0x8e, 0xdc, 0x40, 0x01, 0x8c, 0x85, 0x62, 0x4e, 0x77, 0x30, 0xfe, 0x3f, 0x09, -0xf3, 0x7d, 0x0a, 0xa9, 0x16, 0x92, 0x7b, 0x5b, 0x13, 0xa5, 0xde, 0xad, 0x8b, 0x5a, 0xf1, 0xb7, -0x9d, 0x49, 0x11, 0xd7, 0x50, 0x9f, 0x53, 0x1d, 0xb1, 0xb5, 0x75, 0x51, 0x10, 0x2a, 0xdc, 0xd3, -0x11, 0x22, 0x95, 0x4c, 0x7e, 0xd6, 0x58, 0x80, 0x3b, 0x2f, 0xab, 0x9f, 0x46, 0x9b, 0x9a, 0x5d, -0xbd, 0x51, 0xc9, 0x94, 0xac, 0x2d, 0xe6, 0x1d, 0x1b, 0x1b, 0xc4, 0x98, 0x19, 0xd7, 0xa5, 0x74, -0x6a, 0xe1, 0xb7, 0x36, 0x56, 0x0d, 0x50, 0xdc, 0xa6, 0x53, 0xce, 0x32, 0xeb, 0xcd, 0x20, 0xa9, -0x19, 0xa3, 0xa5, 0x07, 0x88, 0x17, 0x9d, 0xe0, 0x25, 0xf0, 0x51, 0x49, 0x52, 0x43, 0x58, 0x03, -0x55, 0x55, 0x72, 0xc2, 0x3d, 0x0d, 0x99, 0xa3, 0xf1, 0xe6, 0x10, 0x54, 0xdd, 0xc6, 0x92, 0x6e, -0x92, 0xad, 0x74, 0x1b, 0x11, 0xaa, 0x8b, 0x11, 0xdf, 0x05, 0xb0, 0x67, 0x25, 0x25, 0xb7, 0xfa, -0x11, 0x26, 0xf1, 0x3d, 0x6a, 0xfd, 0xba, 0xfa, 0x45, 0x08, 0xb0, 0xfd, 0x69, 0xa9, 0x7d, 0xd0, -0x0c, 0x63, 0xdf, 0xc8, 0x0e, 0xb6, 0x1b, 0x70, 0x0c, 0x84, 0x98, 0x46, 0xad, 0x83, 0x4a, 0x90, -0xf2, 0xa1, 0x3c, 0x8a, 0x69, 0x74, 0x2c, 0xa4, 0xf6, 0xaa, 0x59, 0xd5, 0x8f, 0xc4, 0x6e, 0x1a, -0xea, 0xa6, 0xfe, 0x32, 0xc3, 0xe9, 0x47, 0xa2, 0x6c, 0x95, 0x57, 0xcf, 0x28, 0x0e, 0x1e, 0xae, -0x85, 0x9a, 0x58, 0xe8, 0xd9, 0xf2, 0x4b, 0xbb, 0x4f, 0x7c, 0x7e, 0x8b, 0xdb, 0xa4, 0xad, 0x8f, -0xf8, 0x0d, 0xa1, 0x87, 0x76, 0x17, 0x24, 0x47, 0x8c, 0x12, 0x60, 0x90, 0x14, 0xa0, 0x0e, 0x69, -0xca, 0xdd, 0x9e, 0xe9, 0x6e, 0x63, 0x03, 0x8c, 0xec, 0x28, 0xe9, 0xc6, 0x9d, 0xde, 0x73, 0x5a, -0x6f, 0x8f, 0xf6, 0x1d, 0x8d, 0x3d, 0xef, 0xc2, 0x48, 0xbf, 0x7b, 0x91, 0x82, 0xf4, 0x60, 0x2b, -0x2c, 0xba, 0x72, 0xb5, 0x8b, 0xe8, 0x12, 0x8b, 0x87, 0x2c, 0x78, 0x4f, 0x99, 0x87, 0xf5, 0xcf, -0x47, 0x38, 0xf8, 0x6c, 0x76, 0x15, 0xae, 0x0e, 0x33, 0xbe, 0x66, 0xa2, 0x20, 0x3d, 0xda, 0x69, -0x6c, 0x23, 0xd7, 0xf9, 0x54, 0xb9, 0xe7, 0xea, 0x60, 0xd5, 0x00, 0x9d, 0x25, 0x06, 0x34, 0x87, -0xbb, 0x5b, 0xee, 0xc0, 0x43, 0x24, 0xdd, 0x2c, 0xb8, 0x63, 0x69, 0x00, 0x3b, 0xe3, 0xce, 0xbc, -0xbb, 0xf2, 0xef, 0x9e, 0xfb, 0xd5, 0x82, 0xbf, 0x5d, 0x56, 0xbb, 0xbc, 0xae, 0x5e, 0x4d, 0x09, -0x28, 0x92, 0x8b, 0x4b, 0x16, 0x94, 0x82, 0x96, 0x6b, 0x16, 0xe6, 0xea, 0x20, 0x88, 0x1a, 0xf7, -0xf3, 0x7c, 0xe9, 0xd6, 0x56, 0x72, 0x11, 0xf7, 0x2f, 0xd2, 0x4f, 0xb6, 0xd9, 0x7e, 0xc8, 0x22, -0x59, 0xd6, 0x29, 0x87, 0x14, 0x93, 0x14, 0xdc, 0xb9, 0x29, 0x6a, 0xf1, 0x4f, 0xab, 0xdc, 0x4c, -0xfc, 0x4d, 0xea, 0xc5, 0x8a, 0xf7, 0x5c, 0x46, 0xba, 0x2d, 0x45, 0x3c, 0x2a, 0x62, 0x7c, 0x2b, -0xd3, 0x2f, 0x41, 0xd6, 0xb1, 0x88, 0x06, 0x69, 0x65, 0xbc, 0x23, 0x98, 0xc6, 0xe5, 0x21, 0x5d, -0x15, 0xae, 0xdb, 0x38, 0x2d, 0x40, 0x7a, 0xee, 0xc2, 0x8f, 0x45, 0x4b, 0xa5, 0x6f, 0x49, 0x5c, -0xd6, 0x62, 0x6e, 0x6d, 0x4e, 0x52, 0xda, 0x02, 0xff, 0x1b, 0x90, 0xe6, 0xca, 0x51, 0xe8, 0x24, -0xc5, 0xe8, 0x8c, 0xab, 0xc7, 0x94, 0x19, 0xf2, 0x63, 0x4a, 0x36, 0xbd, 0x45, 0xe2, 0x1f, 0xf6, -0xbd, 0x39, 0xa4, 0x58, 0x70, 0x6f, 0x66, 0x76, 0xf6, 0x2b, 0xe6, 0xaa, 0x3e, 0x67, 0x9f, 0xb2, -0xe7, 0xb1, 0x83, 0x92, 0x39, 0x85, 0x4e, 0x20, 0x7d, 0x19, 0x36, 0xc5, 0x5e, 0xdd, 0xc5, 0xa1, -0x3e, 0x8a, 0xf3, 0x87, 0x6d, 0xd9, 0x51, 0x63, 0xb8, 0x4b, 0xfd, 0x20, 0x49, 0x1b, 0x10, 0x6f, -0x72, 0x80, 0xda, 0x48, 0xb6, 0xaa, 0x5d, 0xd8, 0xce, 0x2c, 0xf9, 0xbf, 0xfb, 0xa7, 0x11, 0xe6, -0xa7, 0xb6, 0x0a, 0xfb, 0xb9, 0x9c, 0x01, 0x93, 0xaa, 0x89, 0xdc, 0x16, 0xc4, 0x56, 0xb1, 0x6f, -0x29, 0xa1, 0x85, 0x18, 0x7a, 0xf3, 0xa4, 0x50, 0x37, 0x86, 0xda, 0x27, 0x85, 0xda, 0x30, 0x74, -0x3a, 0xae, 0x28, 0x92, 0x84, 0xab, 0x7b, 0xf2, 0x9e, 0xd9, 0x65, 0xad, 0x1a, 0x48, 0x59, 0x1b, -0xfc, 0x50, 0xe3, 0xf3, 0xc3, 0x52, 0xac, 0x8d, 0x22, 0x95, 0xfa, 0xab, 0xa0, 0x80, 0x70, 0x0d, -0xd9, 0xbe, 0x43, 0x8a, 0x80, 0x46, 0x76, 0x10, 0x9f, 0x0b, 0x63, 0x8e, 0x49, 0xab, 0x27, 0xa4, -0x39, 0x29, 0xe6, 0x18, 0x05, 0x94, 0xb0, 0xe0, 0x4a, 0x59, 0xc7, 0xb4, 0x74, 0xd8, 0xa4, 0xd2, -0x99, 0x55, 0x60, 0xc5, 0xd6, 0x85, 0xca, 0x59, 0xab, 0xbc, 0x8c, 0x16, 0x26, 0x8a, 0x38, 0x8b, -0x6c, 0x08, 0xdb, 0x54, 0x0f, 0xee, 0x7e, 0xcd, 0xd4, 0x0f, 0x33, 0x8b, 0xc0, 0x46, 0x5a, 0x47, -0xd5, 0xcc, 0xf1, 0xfa, 0x66, 0x48, 0x52, 0x2a, 0x0a, 0xc6, 0x76, 0x16, 0xcf, 0x8b, 0xfb, 0x67, -0x60, 0xfc, 0xf3, 0xb1, 0x2c, 0x2e, 0x55, 0x06, 0xc6, 0x52, 0x27, 0x30, 0x69, 0x18, 0x5b, 0xf5, -0x86, 0x75, 0xd3, 0x5e, 0xde, 0x50, 0x0f, 0xc6, 0x8a, 0xb7, 0x7e, 0x9f, 0xf7, 0x83, 0x27, 0xcd, -0x87, 0x3b, 0x2b, 0xaf, 0x6e, 0x12, 0x21, 0x07, 0xe6, 0xc1, 0x7d, 0xd0, 0x0e, 0x5b, 0x61, 0xa7, -0x20, 0x0a, 0xf7, 0x0b, 0xef, 0x88, 0x46, 0xb1, 0x54, 0xec, 0x11, 0x3f, 0x36, 0xdc, 0x87, 0xf9, -0x04, 0xb2, 0xe0, 0x30, 0x96, 0xba, 0x98, 0xe4, 0xcf, 0x49, 0xf3, 0x93, 0x80, 0x2b, 0x6f, 0x09, -0x61, 0x51, 0xd8, 0x75, 0xfd, 0xaf, 0x34, 0xb2, 0x6c, 0x55, 0xb4, 0xd3, 0xbb, 0xf1, 0x77, 0x4b, -0x8d, 0xd2, 0x76, 0xe3, 0xaf, 0xb7, 0xb6, 0x2a, 0x35, 0x37, 0xfe, 0x9a, 0x15, 0x57, 0xe6, 0xe1, -0x6e, 0xc0, 0x7a, 0xb8, 0xd3, 0x87, 0x6d, 0x4c, 0x7e, 0x45, 0xec, 0x7e, 0x2f, 0xaf, 0x59, 0xf2, -0x0e, 0xda, 0xa0, 0xbe, 0xfd, 0x06, 0x6e, 0x74, 0xab, 0xa3, 0xd9, 0x4c, 0x13, 0x03, 0x4b, 0x9b, -0x6d, 0xe5, 0x5f, 0x71, 0x05, 0xd9, 0xa6, 0x80, 0xa1, 0x44, 0x7e, 0x1c, 0x57, 0x8e, 0xa7, 0x79, -0x6e, 0xb9, 0x58, 0x9e, 0x13, 0x16, 0x33, 0x48, 0x1d, 0xee, 0x3c, 0xdc, 0xe9, 0xc7, 0xdc, 0x81, -0x6c, 0x19, 0xdb, 0xae, 0xd7, 0xa7, 0x06, 0xf3, 0x75, 0xfa, 0x34, 0x1f, 0x29, 0x1f, 0x81, 0x52, -0xbc, 0xfd, 0xbb, 0x99, 0x0b, 0x49, 0xb6, 0x59, 0x94, 0x7d, 0x2c, 0x6f, 0x77, 0x6c, 0x7c, 0xde, -0x54, 0xd6, 0x92, 0x1b, 0xd6, 0x5c, 0x7c, 0x8e, 0xd5, 0x7b, 0xee, 0xbd, 0xdb, 0xaf, 0x5f, 0xb6, -0xb8, 0x71, 0x52, 0xd9, 0x65, 0x7c, 0x34, 0x21, 0x5e, 0x3f, 0x24, 0xef, 0xda, 0x4d, 0x12, 0x4f, -0x07, 0xd7, 0x89, 0xfe, 0x32, 0x08, 0x69, 0xed, 0xa8, 0xd0, 0xe0, 0xc4, 0xc7, 0xfd, 0x96, 0xe4, -0xb8, 0x57, 0x41, 0x78, 0x06, 0x6b, 0x59, 0xc8, 0xc7, 0x4b, 0x6a, 0x0d, 0xed, 0x81, 0x2c, 0x03, -0xd9, 0x56, 0x83, 0x84, 0xbb, 0xc8, 0x09, 0x4b, 0x46, 0xc3, 0xa9, 0x57, 0x6a, 0x78, 0x5e, 0x82, -0x7f, 0xea, 0x5b, 0x67, 0x10, 0xa3, 0x4c, 0xc1, 0xbe, 0xfe, 0x29, 0x7e, 0xc1, 0x96, 0xbe, 0x75, -0x71, 0x7c, 0x2e, 0xbc, 0xdd, 0xd7, 0x4b, 0xad, 0x18, 0x9d, 0xaf, 0x91, 0xfd, 0x39, 0x95, 0xb4, -0x60, 0xe4, 0x4c, 0x86, 0x90, 0xef, 0x86, 0x29, 0x63, 0x22, 0x52, 0xea, 0x21, 0x7f, 0x11, 0x54, -0xf0, 0xd6, 0xe0, 0x53, 0x01, 0x6f, 0x91, 0xd3, 0x0f, 0xbe, 0x75, 0x89, 0x97, 0x89, 0x1b, 0x6e, -0x95, 0x5f, 0xc8, 0xcb, 0xe0, 0x5c, 0x48, 0x6f, 0x53, 0x1d, 0xa7, 0xd2, 0x2a, 0xa1, 0xc9, 0x9b, -0xbf, 0x90, 0xeb, 0x4d, 0x8e, 0x9e, 0xc9, 0xfd, 0x9d, 0x5a, 0x26, 0xd5, 0x29, 0xb5, 0x4c, 0x69, -0xea, 0xa1, 0x47, 0x0e, 0xc5, 0xf1, 0xa9, 0x62, 0x22, 0x1c, 0x91, 0x5a, 0xba, 0xfc, 0xcf, 0xbf, -0xc3, 0x3d, 0x1f, 0xae, 0x0f, 0xd5, 0x8f, 0xb0, 0xb5, 0xea, 0x92, 0x52, 0x82, 0xfd, 0x8c, 0x25, -0xbd, 0x3b, 0x98, 0x05, 0xd4, 0x13, 0xc9, 0xb2, 0xe4, 0x66, 0x4c, 0x5f, 0x0c, 0x95, 0x24, 0x1b, -0x8f, 0x30, 0x33, 0xbf, 0x75, 0xd0, 0x79, 0x67, 0x5f, 0x72, 0x34, 0x90, 0x74, 0xdd, 0x98, 0x9d, -0x79, 0x84, 0x2b, 0xce, 0x6a, 0xdb, 0x9b, 0x07, 0x79, 0xbc, 0xf0, 0x4b, 0x7d, 0x48, 0x95, 0x5e, -0x3d, 0x93, 0x7a, 0xc7, 0x40, 0x72, 0x1b, 0xa4, 0x87, 0x2e, 0x0a, 0x57, 0x0f, 0x4b, 0x0f, 0x32, -0xd9, 0x9c, 0x14, 0x0c, 0x40, 0x33, 0xff, 0x0e, 0x2c, 0x73, 0x5d, 0xfa, 0xcb, 0x1b, 0xa2, 0x96, -0x19, 0x85, 0x60, 0x7e, 0x79, 0x83, 0x2a, 0x29, 0xe6, 0x25, 0x74, 0x87, 0x6b, 0x53, 0x32, 0xa9, -0x95, 0x12, 0xc6, 0x7b, 0xf3, 0x23, 0xb0, 0xf2, 0x30, 0x69, 0x3b, 0x69, 0x7b, 0x8a, 0x39, 0x52, -0xb4, 0x2a, 0x2d, 0x54, 0xe0, 0x6a, 0x9b, 0x54, 0x3a, 0xf9, 0x0b, 0xe2, 0x49, 0x26, 0x2f, 0x12, -0xde, 0x14, 0xf5, 0x22, 0xfe, 0xb7, 0x46, 0x5d, 0x61, 0xdc, 0x57, 0xa9, 0x33, 0xfc, 0x1e, 0xa6, -0xbb, 0x08, 0xe7, 0x5b, 0xa6, 0x88, 0xeb, 0x6f, 0x86, 0x33, 0x98, 0x9a, 0x8a, 0xc6, 0xee, 0xe8, -0xee, 0xe6, 0x32, 0xae, 0x51, 0x27, 0x34, 0xae, 0x1e, 0x6d, 0x25, 0x65, 0x5a, 0xea, 0x5c, 0x88, -0x65, 0x49, 0x53, 0xc3, 0x18, 0xde, 0x37, 0xfa, 0x0d, 0x49, 0xbc, 0xcf, 0xa5, 0x8b, 0xc8, 0xd2, -0x65, 0x54, 0xe2, 0x5f, 0x52, 0x30, 0x79, 0xc6, 0xfb, 0x61, 0xc2, 0xe3, 0x47, 0x82, 0x81, 0xae, -0x51, 0x3c, 0xce, 0xb4, 0xc1, 0xb1, 0xf5, 0x84, 0xf4, 0x1d, 0x65, 0x61, 0xde, 0x12, 0xb3, 0x33, -0x69, 0x65, 0x3b, 0x8b, 0x1c, 0x7c, 0xb2, 0xe1, 0x2c, 0xb4, 0x5e, 0x77, 0x6d, 0x51, 0x58, 0x9c, -0xaf, 0xa4, 0xc6, 0x49, 0xf9, 0x2a, 0xb3, 0xaf, 0x33, 0x6e, 0xf0, 0xd5, 0xc5, 0xbe, 0xde, 0x76, -0xfd, 0xaf, 0x24, 0xd9, 0x51, 0x12, 0xe4, 0x35, 0x34, 0xb2, 0x95, 0x26, 0x79, 0xd6, 0xc2, 0xd6, -0x9a, 0x10, 0xd6, 0xb2, 0x4a, 0xdb, 0x67, 0xce, 0xc5, 0x15, 0x26, 0x0f, 0x9f, 0xf3, 0xf0, 0x39, -0xf7, 0xba, 0xd8, 0xe8, 0x03, 0x8a, 0x39, 0x01, 0x1b, 0x2d, 0x4e, 0x62, 0x23, 0x7c, 0xae, 0x00, -0x6b, 0xfb, 0xbc, 0x77, 0x06, 0x16, 0xb2, 0xd6, 0xd1, 0x2d, 0x4a, 0xf6, 0x73, 0x44, 0x7f, 0xe7, -0x10, 0x16, 0xbc, 0x8f, 0x46, 0xc9, 0x2c, 0xb6, 0x3e, 0xac, 0x9d, 0xb6, 0x07, 0xd7, 0x07, 0x43, -0x0f, 0x5b, 0x1f, 0x4c, 0xda, 0xea, 0x50, 0x82, 0x1b, 0xaa, 0xad, 0xb0, 0x07, 0x4e, 0x0b, 0x01, -0xa1, 0x57, 0xcc, 0x34, 0x98, 0x0c, 0x26, 0xb1, 0x52, 0xec, 0x15, 0x87, 0xd8, 0xbc, 0x6c, 0xc0, -0x51, 0x81, 0x73, 0xd3, 0x8e, 0xd4, 0x36, 0xc7, 0x17, 0x8b, 0xe3, 0xb3, 0xc6, 0xf0, 0x35, 0xe2, -0x57, 0x38, 0x91, 0x1a, 0x2f, 0x4f, 0x8b, 0x97, 0x18, 0x1f, 0x0f, 0xc7, 0xca, 0x2d, 0x24, 0xa7, -0xb3, 0x33, 0x35, 0xae, 0xf3, 0x4e, 0xc2, 0xef, 0xe3, 0x63, 0xd9, 0xb0, 0xc6, 0xf0, 0xe8, 0xbf, -0x17, 0x2b, 0xc7, 0xa8, 0xac, 0x48, 0x8d, 0x23, 0x7d, 0x0f, 0xe3, 0x7d, 0x2f, 0xcb, 0x38, 0x1a, -0x6f, 0x8a, 0xdf, 0xac, 0xad, 0x08, 0xa7, 0x18, 0xcf, 0xd0, 0xfc, 0xd4, 0xd8, 0xde, 0xd1, 0x1c, -0xc3, 0xeb, 0x71, 0x0e, 0x5e, 0xd1, 0xb4, 0xf2, 0x89, 0x1a, 0x5f, 0x38, 0xe3, 0x6f, 0xc2, 0x3c, -0xd2, 0x10, 0x6b, 0x97, 0x25, 0xb1, 0x36, 0x62, 0xd2, 0xe3, 0x88, 0x49, 0xc3, 0x5e, 0x1f, 0xe1, -0x16, 0xc4, 0x2e, 0xda, 0x6a, 0x32, 0x4b, 0xc3, 0x25, 0xae, 0x18, 0x61, 0xfc, 0x59, 0x93, 0x56, -0x13, 0x6e, 0x1f, 0x42, 0xb4, 0x4f, 0xec, 0xbf, 0x59, 0x61, 0xea, 0x3d, 0x8a, 0x7f, 0xac, 0x57, -0x69, 0x9a, 0x58, 0xbb, 0xd4, 0x9c, 0x7d, 0x81, 0x64, 0xce, 0x58, 0xdb, 0x8a, 0xc9, 0x75, 0x15, -0x76, 0x5d, 0xaf, 0x44, 0xe1, 0x99, 0x49, 0x25, 0x96, 0x82, 0xb9, 0x45, 0xa0, 0x5c, 0x67, 0x2d, -0x60, 0x3a, 0x67, 0x70, 0xbc, 0xca, 0xbf, 0x18, 0x97, 0x53, 0x43, 0xe4, 0x39, 0x5a, 0x63, 0xe0, -0xe3, 0xb5, 0x82, 0x7f, 0x01, 0xcc, 0xc3, 0x51, 0xc9, 0xe0, 0xe6, 0x0d, 0x24, 0xe1, 0xa5, 0x64, -0xd2, 0x6c, 0xc4, 0x34, 0x4f, 0x54, 0xaf, 0x1f, 0xc3, 0x8d, 0x42, 0x7e, 0x78, 0xbd, 0xfa, 0x01, -0xa6, 0xdb, 0xf3, 0xd7, 0xa5, 0x83, 0x61, 0x2d, 0x5d, 0xd7, 0x8d, 0xd2, 0x1d, 0x5b, 0x7f, 0x6c, -0xfd, 0x0d, 0xd2, 0x0e, 0xb1, 0xb4, 0xa5, 0x2c, 0x3e, 0xf6, 0xc9, 0x31, 0xc2, 0xc2, 0x98, 0x47, -0x12, 0x72, 0xcc, 0x3e, 0xfd, 0x7c, 0xc4, 0xc3, 0x41, 0x86, 0x87, 0x1b, 0xc6, 0xf0, 0x30, 0x1b, -0x21, 0x46, 0x86, 0x87, 0x9f, 0xd0, 0xf0, 0x70, 0x8b, 0xd4, 0xc0, 0xb0, 0x70, 0xc3, 0x28, 0x16, -0x76, 0x8f, 0x71, 0x06, 0x27, 0x8c, 0x48, 0xd1, 0xce, 0x65, 0xf2, 0x76, 0x36, 0x67, 0x45, 0x2a, -0xa6, 0xf3, 0x84, 0x31, 0x9d, 0x59, 0xf2, 0x4d, 0xa4, 0xc9, 0x54, 0x18, 0x7e, 0x74, 0x7c, 0x4c, -0xc4, 0x54, 0xae, 0x49, 0x58, 0x32, 0xf7, 0x86, 0x58, 0x32, 0x2b, 0x49, 0x1f, 0x17, 0x48, 0x49, -0xfa, 0xb8, 0xc0, 0x0f, 0x4e, 0x86, 0xd3, 0x6c, 0x92, 0xf1, 0x44, 0x5f, 0x0b, 0xb0, 0xfb, 0x83, -0x22, 0x70, 0x84, 0x9a, 0xd9, 0x78, 0x9f, 0x8c, 0xd7, 0xbc, 0x9c, 0x8f, 0x2e, 0x06, 0xa5, 0x30, -0xd4, 0x83, 0xe9, 0x46, 0x63, 0xde, 0x00, 0x43, 0xe5, 0x10, 0x86, 0xf2, 0x67, 0x30, 0x1d, 0xd8, -0xb8, 0x7f, 0xf0, 0x61, 0x6c, 0xaa, 0xa7, 0xa6, 0x63, 0xee, 0x34, 0x69, 0x4c, 0xc4, 0x3a, 0xcf, -0x40, 0x0c, 0xe5, 0xc6, 0x7e, 0x22, 0x8a, 0xd7, 0x89, 0xcf, 0x33, 0x62, 0x59, 0xd7, 0xa1, 0x5f, -0x88, 0x76, 0x9a, 0x31, 0x01, 0x5b, 0x15, 0x32, 0x0a, 0xc6, 0x81, 0x4f, 0x05, 0x60, 0x6d, 0xf5, -0x1e, 0x49, 0xe2, 0xaa, 0x2b, 0x89, 0x8d, 0x44, 0xd9, 0x22, 0x7c, 0x1d, 0xaa, 0x05, 0x69, 0x65, -0x1b, 0xc3, 0x69, 0x0e, 0xa4, 0x74, 0x1d, 0x13, 0x29, 0x5d, 0xe1, 0x7e, 0x8d, 0xd2, 0x75, 0x54, -0x6f, 0x68, 0x9b, 0xb6, 0x0b, 0x31, 0x19, 0x5c, 0x1e, 0x87, 0xc9, 0x92, 0x7f, 0x12, 0xe2, 0xc3, -0x25, 0xf8, 0x7f, 0x50, 0xfb, 0xdb, 0xb9, 0x38, 0xae, 0xe4, 0xb2, 0x39, 0xb6, 0x4a, 0xc3, 0x29, -0xdf, 0xd3, 0x28, 0x4b, 0x07, 0xcf, 0x19, 0x06, 0x53, 0x74, 0xb0, 0xe2, 0xaa, 0xcc, 0x56, 0x6b, -0x07, 0x3e, 0x3d, 0x49, 0xa9, 0x3c, 0x98, 0xea, 0x8f, 0x63, 0x94, 0x8f, 0x83, 0xd1, 0x0e, 0x49, -0x0a, 0xcf, 0x11, 0xde, 0x12, 0x8d, 0x5d, 0x0f, 0x0a, 0x70, 0x76, 0x12, 0x14, 0x8a, 0x35, 0x18, -0x2c, 0xc6, 0xf9, 0x57, 0x58, 0x13, 0x57, 0x9e, 0x62, 0x39, 0x21, 0x0d, 0x71, 0x94, 0x46, 0x6f, -0x31, 0x78, 0x93, 0x25, 0x7c, 0x83, 0x59, 0xd6, 0x4c, 0xd2, 0x45, 0xbc, 0x1c, 0xd2, 0x19, 0x99, -0x1c, 0xb3, 0x08, 0x31, 0xc7, 0x78, 0xaa, 0x61, 0x64, 0x6f, 0x2a, 0xd5, 0xe0, 0x69, 0x06, 0x77, -0xf8, 0x39, 0xa2, 0x1a, 0x46, 0x7e, 0xc6, 0xf7, 0xc0, 0x7e, 0x2f, 0xbb, 0x67, 0xb7, 0x26, 0xef, -0xd6, 0x11, 0x8b, 0x64, 0x69, 0xb2, 0xfb, 0x59, 0xae, 0x0a, 0xdc, 0x2b, 0x77, 0x8c, 0x8f, 0x57, -0x76, 0xe5, 0xda, 0xa5, 0xeb, 0xc5, 0x55, 0xbc, 0x29, 0x61, 0x9a, 0xfe, 0x24, 0xc5, 0xb8, 0xe0, -0xca, 0xb5, 0x03, 0xd4, 0xda, 0x71, 0x23, 0xfa, 0x28, 0x69, 0x86, 0xe4, 0xa3, 0xf9, 0xdb, 0x03, -0xfe, 0x69, 0xb8, 0xd2, 0x9b, 0xd9, 0x4a, 0x8f, 0x2b, 0x34, 0x7a, 0xb6, 0xdf, 0x15, 0xf6, 0x8f, -0x8e, 0x57, 0x13, 0x69, 0x55, 0xb4, 0xc5, 0xc7, 0xc6, 0xa5, 0xf7, 0x81, 0x9a, 0xe4, 0x9a, 0x79, -0x49, 0xdb, 0x29, 0x92, 0x5e, 0x27, 0x0f, 0xe6, 0x93, 0x73, 0xc3, 0x9d, 0x22, 0xe2, 0xa0, 0xeb, -0xee, 0x15, 0xb1, 0x4f, 0xaf, 0xbb, 0x5b, 0x04, 0xe8, 0xbf, 0xee, 0x7e, 0xb1, 0x85, 0xf6, 0x8b, -0x93, 0x42, 0x97, 0xde, 0x46, 0xfd, 0x30, 0x31, 0xb4, 0x14, 0x43, 0x6f, 0x99, 0x14, 0x1a, 0xc0, -0xd0, 0xcc, 0x49, 0xa1, 0xd9, 0x18, 0xfa, 0x25, 0x6c, 0xa9, 0x0b, 0xe7, 0x98, 0x0d, 0xe9, 0x59, -0x87, 0x14, 0xbf, 0xbd, 0x08, 0x8c, 0x63, 0x3b, 0x52, 0xae, 0x83, 0x91, 0xd3, 0x48, 0x5f, 0x68, -0x6f, 0xac, 0x78, 0xe0, 0xfd, 0x0a, 0xe2, 0xa8, 0x9e, 0x5c, 0x2f, 0xbe, 0x03, 0x27, 0x6e, 0xb6, -0xbe, 0xf8, 0xa4, 0xaf, 0x1e, 0xfe, 0xf5, 0xfd, 0xbe, 0xeb, 0x7c, 0xb3, 0x66, 0x01, 0xdb, 0x2b, -0xf7, 0x8c, 0xa7, 0xb0, 0x00, 0xb8, 0x1e, 0x45, 0x2f, 0xee, 0x84, 0xda, 0x6c, 0x1d, 0xd0, 0x0a, -0x4f, 0xbc, 0xba, 0xce, 0xf7, 0xee, 0x40, 0x19, 0xab, 0x13, 0xed, 0x6f, 0xef, 0x3e, 0x85, 0xb8, -0xc1, 0xe7, 0x4f, 0x67, 0x92, 0xb8, 0xd3, 0x2a, 0x1f, 0xf7, 0x24, 0x29, 0xb9, 0x9e, 0x68, 0xd6, -0xde, 0x2e, 0xb5, 0xc4, 0x67, 0x90, 0x0c, 0xa9, 0x27, 0xd7, 0x5e, 0xd2, 0x24, 0x1f, 0x4e, 0x39, -0x17, 0x0e, 0x2a, 0xf9, 0x8c, 0x53, 0x98, 0x69, 0xdc, 0x64, 0xda, 0xe0, 0x53, 0xbe, 0xb2, 0x7b, -0x82, 0x05, 0xb7, 0xf4, 0x90, 0x14, 0x70, 0xa4, 0x3b, 0xdc, 0xa3, 0x6e, 0xa6, 0xbb, 0x28, 0xa9, -0x9f, 0xee, 0x39, 0xb8, 0xce, 0xc3, 0xca, 0x7b, 0x12, 0x97, 0x89, 0xb3, 0x14, 0x6e, 0x6a, 0x11, -0x48, 0x8b, 0x35, 0x69, 0xc7, 0x26, 0x0d, 0xd6, 0x7e, 0xd2, 0x8e, 0x4f, 0x27, 0x37, 0xe3, 0xc6, -0x1c, 0x1f, 0x67, 0x74, 0xde, 0x32, 0x8e, 0x76, 0x74, 0x7d, 0x61, 0xda, 0x11, 0xe0, 0xdd, 0xcf, -0xa5, 0x1e, 0x01, 0x5e, 0xfe, 0x5c, 0xfa, 0x11, 0xe0, 0xe9, 0xcf, 0xa3, 0x20, 0xa3, 0xeb, 0xd8, -0x57, 0xe9, 0x06, 0x5f, 0x39, 0xe5, 0x7a, 0xfb, 0xe7, 0x52, 0xae, 0xce, 0xcf, 0xa5, 0x5c, 0xff, -0xe6, 0x8b, 0x52, 0xae, 0xff, 0x7f, 0xa0, 0xad, 0x59, 0x1d, 0x49, 0xeb, 0x75, 0x8e, 0xab, 0x99, -0xeb, 0x3d, 0xe5, 0xeb, 0x25, 0x1f, 0x9d, 0x98, 0x9b, 0x7d, 0x74, 0x15, 0x14, 0x71, 0x47, 0xf1, -0xf8, 0x68, 0x49, 0xe6, 0x70, 0xb6, 0x7a, 0x22, 0x39, 0xd2, 0xad, 0x3c, 0xb7, 0xc4, 0x6d, 0x38, -0x37, 0x66, 0xa2, 0xf7, 0xd2, 0x2d, 0x29, 0xcd, 0x14, 0xa2, 0x7d, 0x89, 0x0f, 0x8f, 0x4e, 0x8e, -0xe9, 0x26, 0x9e, 0x24, 0x1a, 0x7a, 0xd1, 0x3f, 0x8c, 0xbe, 0x0f, 0xfd, 0x06, 0xf4, 0xfd, 0xe8, -0x1f, 0x41, 0xbf, 0x11, 0xfd, 0x0f, 0xd1, 0x3f, 0x8a, 0x7e, 0x00, 0xfd, 0x26, 0xf4, 0x8f, 0xa1, -0xdf, 0x8c, 0xfe, 0x71, 0x66, 0x85, 0x14, 0xe0, 0x09, 0xc6, 0xf1, 0x0b, 0xf0, 0x23, 0xf4, 0x4f, -0xa2, 0xff, 0x31, 0xfa, 0xa7, 0xd0, 0xff, 0x1f, 0xe8, 0xc9, 0xce, 0xcd, 0x7f, 0x45, 0xff, 0x34, -0xfa, 0xff, 0xa6, 0x49, 0x4a, 0xff, 0x9f, 0x9a, 0xb4, 0xf4, 0xff, 0x85, 0xfe, 0x67, 0xe8, 0xff, -0x3b, 0xfa, 0x9f, 0xa3, 0xff, 0x05, 0xfa, 0x6d, 0xe8, 0x7f, 0x89, 0x7e, 0x3b, 0xfa, 0x67, 0xd1, -0x3f, 0x87, 0xfe, 0x79, 0xf4, 0x2f, 0xa0, 0x27, 0x29, 0xab, 0x41, 0xf4, 0x2f, 0xa1, 0xdf, 0x81, -0xfe, 0x57, 0xe8, 0x89, 0xc3, 0xe5, 0xd7, 0xe8, 0x77, 0xa1, 0xff, 0x0d, 0xfa, 0xdd, 0xe8, 0xff, -0x1e, 0xfd, 0x1e, 0xf4, 0xff, 0x37, 0xfa, 0xbd, 0xe8, 0xff, 0x07, 0xfa, 0x97, 0xd1, 0xff, 0x4f, -0xf4, 0x43, 0xe8, 0x5f, 0x41, 0xbf, 0x0f, 0xfd, 0x6f, 0xd1, 0xef, 0x47, 0xff, 0x0f, 0xe8, 0xc9, -0xb6, 0xee, 0xef, 0x18, 0x17, 0x33, 0xc0, 0xef, 0xc9, 0x1e, 0x03, 0xfa, 0xd7, 0xd0, 0x93, 0x5c, -0xe6, 0x3f, 0xa2, 0x7f, 0x03, 0xfd, 0xff, 0x83, 0xfe, 0x10, 0x7a, 0x32, 0xab, 0x79, 0x18, 0xfd, -0x5b, 0xa4, 0x97, 0x1d, 0xfd, 0x1f, 0xd0, 0x93, 0x45, 0x93, 0xb7, 0xd1, 0xbf, 0x83, 0xfe, 0x8f, -0xc4, 0x2d, 0x89, 0xfe, 0x9f, 0xd0, 0x1f, 0x47, 0xff, 0xcf, 0xe8, 0xdf, 0x45, 0xff, 0x1e, 0x7a, -0xba, 0x4f, 0x7f, 0x1f, 0xfd, 0x49, 0xf4, 0x7f, 0x42, 0x7f, 0x0a, 0xfd, 0x9f, 0xd1, 0x7f, 0x80, -0xfe, 0x43, 0xf4, 0xa7, 0xd1, 0xff, 0x0b, 0xfa, 0x33, 0xe8, 0x3f, 0x42, 0x7f, 0x16, 0xfd, 0x39, -0xf4, 0xe7, 0xd1, 0x5f, 0x40, 0x7f, 0x11, 0xfd, 0xbf, 0xa2, 0xff, 0x18, 0xfd, 0x27, 0xe8, 0x2f, -0xa1, 0xff, 0x14, 0xfd, 0x67, 0xe8, 0xff, 0x0d, 0xfd, 0x65, 0xf4, 0x7f, 0x61, 0x9c, 0xd9, 0x00, -0x57, 0xd1, 0x13, 0xe7, 0xe6, 0x35, 0x92, 0x54, 0x27, 0x0c, 0x99, 0x62, 0x73, 0x85, 0xa4, 0xd4, -0x0d, 0x9a, 0xed, 0x95, 0x34, 0xf4, 0x26, 0xf4, 0xe9, 0x40, 0x66, 0xb4, 0x01, 0xa6, 0x00, 0x99, -0xd8, 0xe6, 0x36, 0x5c, 0xac, 0xe8, 0xa7, 0x01, 0x99, 0xe1, 0x26, 0xc3, 0xda, 0x64, 0x8a, 0x03, -0xe0, 0x66, 0xf4, 0x76, 0xf4, 0xd3, 0xd1, 0x3b, 0xd0, 0xdf, 0x82, 0x3e, 0x13, 0xfd, 0x97, 0xd0, -0x93, 0xe5, 0xc1, 0x5b, 0x89, 0x27, 0x0f, 0xfd, 0x97, 0xd1, 0xe7, 0xa0, 0xff, 0x0a, 0xfa, 0x19, -0xe8, 0x71, 0x20, 0x82, 0xc4, 0x6f, 0xea, 0x91, 0x00, 0x01, 0xf8, 0x1b, 0xcd, 0xfe, 0xd1, 0x4c, -0x66, 0xd1, 0x18, 0xe0, 0x0e, 0xf4, 0x64, 0xd1, 0x76, 0x16, 0x7a, 0x1a, 0xac, 0xc4, 0xdb, 0x47, -0xf6, 0x09, 0xe7, 0xa0, 0x27, 0x3b, 0x76, 0x7e, 0x20, 0x53, 0x08, 0x00, 0x77, 0xa2, 0xcf, 0x43, -0x7f, 0x17, 0xfa, 0x7c, 0xf4, 0x77, 0xa3, 0x9f, 0x8b, 0xfe, 0xab, 0xe8, 0x0b, 0xd0, 0xd3, 0xaa, -0x3e, 0x0f, 0xfd, 0xd7, 0xd0, 0x17, 0xa2, 0xff, 0x3a, 0xfa, 0xf9, 0xe8, 0xbf, 0xa1, 0x49, 0xe8, -0x2f, 0x43, 0x5f, 0x8b, 0x7e, 0x39, 0xb1, 0x46, 0xa1, 0x27, 0x6b, 0xb8, 0x2a, 0x30, 0xe2, 0x09, -0x56, 0xa0, 0x5f, 0x89, 0x7e, 0x15, 0xfa, 0x07, 0x89, 0x8b, 0x16, 0x3d, 0x99, 0x4c, 0x6c, 0x42, -0xdf, 0x8c, 0x3e, 0x86, 0x9e, 0xec, 0xdb, 0xb4, 0xa0, 0x5f, 0x8d, 0x9e, 0xf4, 0x00, 0xe0, 0x8c, -0x85, 0x36, 0xf4, 0x0f, 0xa1, 0x6f, 0x47, 0xff, 0x7d, 0xa6, 0x23, 0x00, 0xe0, 0x3b, 0xe8, 0x97, -0xa2, 0xff, 0x2e, 0xfa, 0xfb, 0xd1, 0x3f, 0x80, 0x5e, 0xf9, 0xdf, 0x58, 0xfe, 0x0f, 0xd0, 0x13, -0x37, 0xfe, 0xdf, 0xa1, 0x5f, 0x87, 0xfe, 0xbf, 0xe8, 0xf3, 0xff, 0x3f, 0xfd, 0xfc, 0xd7, 0xfb, -0x5f, 0xc7, 0xff, 0xff, 0xd9, 0xf1, 0x7f, 0x11, 0x7a, 0x19, 0x7d, 0x31, 0x7a, 0xd2, 0xea, 0xb2, -0x00, 0x7d, 0x29, 0xfa, 0x32, 0x62, 0xed, 0x44, 0x5f, 0x8e, 0x3e, 0x8c, 0x7e, 0x21, 0xfa, 0x0a, -0xf4, 0x8b, 0xd0, 0x57, 0xa2, 0xff, 0x26, 0xfa, 0x2a, 0xf4, 0xdf, 0x42, 0x1f, 0x41, 0x5f, 0x4d, -0xa6, 0x2f, 0xd1, 0xdf, 0x83, 0x7e, 0x09, 0xfa, 0x7b, 0xd1, 0xd7, 0xa0, 0xff, 0x36, 0xfa, 0xfb, -0x3e, 0x07, 0xff, 0xff, 0xef, 0x2a, 0x5f, 0xc7, 0xff, 0xfa, 0xfc, 0xbf, 0xde, 0xfc, 0xff, 0x4f, -0xeb, 0xc4, 0x49, 0x7f, 0x06, 0x49, 0x4c, 0xfe, 0xc1, 0xbf, 0xff, 0x27, 0x28, 0xc6, 0xa1, 0xcf, -0xfb, 0xc3, 0xde, 0x9f, 0xf4, 0x37, 0x21, 0xc6, 0x1f, 0x52, 0xfe, 0xfe, 0xe1, 0x8b, 0xfd, 0x8d, -0x4b, 0x7f, 0x34, 0xe5, 0xef, 0xc0, 0x17, 0xfb, 0x4b, 0xa6, 0x15, 0xff, 0xd3, 0xdb, 0xa9, 0xfd, -0xe6, 0x85, 0xc4, 0xeb, 0xda, 0xa9, 0xcf, 0x0a, 0xdc, 0x55, 0x37, 0xe0, 0xee, 0x3a, 0xb6, 0x16, -0x16, 0x5d, 0x80, 0xfb, 0xfd, 0x4c, 0xfb, 0x2a, 0x84, 0x15, 0x30, 0xcd, 0xe5, 0x1c, 0x73, 0xa6, -0x4c, 0x49, 0x8e, 0xf4, 0xb5, 0x43, 0x9b, 0xe0, 0x0e, 0xd9, 0xb3, 0x88, 0x0b, 0x28, 0xaf, 0x27, -0x06, 0x3b, 0x6e, 0x55, 0xcd, 0x4e, 0xc3, 0xfb, 0xbf, 0xec, 0xeb, 0x54, 0x4e, 0x47, 0xe2, 0x1d, -0x69, 0x7b, 0xe3, 0xea, 0x59, 0xab, 0x00, 0x5e, 0x8c, 0x6f, 0x2f, 0xfe, 0x08, 0x84, 0x32, 0xb2, -0xa4, 0x12, 0x21, 0x3e, 0xb3, 0x06, 0x4b, 0xcc, 0xd8, 0x17, 0x77, 0x9a, 0x4b, 0x3a, 0xa5, 0x22, -0xd7, 0x42, 0xc5, 0x27, 0x99, 0x49, 0x1e, 0xb5, 0xe8, 0xa2, 0x19, 0x8a, 0x2e, 0xf6, 0x1d, 0x7a, -0xf3, 0x75, 0xe7, 0x54, 0xdb, 0x97, 0x43, 0xf1, 0x82, 0xa0, 0x64, 0x3d, 0xb4, 0xd1, 0xc9, 0x4a, -0x37, 0xdf, 0x09, 0x06, 0xb3, 0xa0, 0x1e, 0x75, 0x16, 0x59, 0x6f, 0x86, 0x5c, 0xb5, 0xd2, 0x3a, -0x0b, 0x57, 0x41, 0x21, 0x6a, 0x2e, 0xff, 0x17, 0x20, 0x6b, 0x83, 0xce, 0xc5, 0x1b, 0xca, 0x31, -0x77, 0x77, 0xc4, 0x55, 0x41, 0xb7, 0xb6, 0x0d, 0x79, 0x8a, 0xcf, 0x39, 0xf5, 0xf0, 0x23, 0x87, -0x3b, 0xcb, 0x3e, 0xc9, 0x82, 0xb2, 0x4f, 0x76, 0x1f, 0x7a, 0x7b, 0xc8, 0x6d, 0xb5, 0xe5, 0x90, -0xdc, 0x0a, 0x9d, 0x36, 0x3b, 0x9b, 0x21, 0x4c, 0x39, 0x66, 0x09, 0xea, 0x3b, 0xce, 0x62, 0xc5, -0x38, 0xb7, 0x23, 0x91, 0xc8, 0xbc, 0xd9, 0x6a, 0x80, 0x15, 0x51, 0x3b, 0xfe, 0x36, 0x44, 0xad, -0xf8, 0x5b, 0x11, 0x35, 0xe1, 0xef, 0x5a, 0xd5, 0x18, 0xd9, 0xa0, 0x88, 0x6d, 0x2b, 0x6d, 0x37, -0x63, 0xdb, 0x1b, 0x18, 0x5f, 0xd7, 0xf7, 0x54, 0x53, 0x64, 0x03, 0xf1, 0x28, 0xca, 0x82, 0xbf, -0x1c, 0x64, 0x4f, 0x79, 0xe4, 0x45, 0x90, 0x6d, 0x64, 0x13, 0xa4, 0x29, 0x0a, 0x86, 0x9e, 0xa6, -0x7c, 0x7c, 0x5a, 0x1e, 0x05, 0xf1, 0x72, 0x13, 0xe9, 0x00, 0xa8, 0x89, 0x92, 0x8d, 0x89, 0x5a, -0xfc, 0x32, 0x5f, 0xe3, 0x37, 0x6c, 0x51, 0xc0, 0xd0, 0xcb, 0xb8, 0xb6, 0x48, 0x83, 0xed, 0x4a, -0x0c, 0x51, 0x14, 0x27, 0xd3, 0x71, 0x0e, 0xe2, 0xf9, 0x26, 0x0b, 0x3e, 0xc5, 0x9a, 0xc0, 0x50, -0xa1, 0x64, 0x30, 0xae, 0x32, 0x33, 0xe3, 0xaf, 0x02, 0x43, 0x21, 0x85, 0xab, 0x8e, 0x41, 0xc6, -0x3d, 0x16, 0xe8, 0x00, 0x73, 0x4c, 0xec, 0x8b, 0x33, 0xad, 0x78, 0x5d, 0x2c, 0x2f, 0x13, 0xcb, -0xab, 0x89, 0xea, 0xaf, 0xfa, 0xc2, 0x42, 0xd4, 0x53, 0x7c, 0x06, 0xcc, 0x3e, 0x7b, 0xae, 0x17, -0x8c, 0x2e, 0x93, 0x3b, 0x3d, 0xdc, 0xbb, 0xca, 0x5c, 0xd2, 0x1d, 0xec, 0x5a, 0x97, 0x50, 0x72, -0x36, 0x76, 0x2f, 0xf9, 0x5d, 0x49, 0xba, 0x48, 0x6b, 0x5a, 0x42, 0xc9, 0xc6, 0x78, 0xc6, 0x5c, -0xbb, 0xdc, 0x25, 0x77, 0x87, 0x1f, 0x6e, 0xb0, 0xde, 0x46, 0x76, 0xcd, 0xef, 0x2f, 0x79, 0xd8, -0x55, 0xae, 0xa8, 0x66, 0x23, 0x18, 0xa3, 0x66, 0x0c, 0x99, 0x0d, 0xf7, 0x2b, 0x96, 0x92, 0xfd, -0xab, 0x2c, 0x8c, 0x3f, 0xf2, 0x7e, 0xd2, 0x4c, 0xdc, 0x01, 0x18, 0x63, 0x05, 0x2b, 0x2d, 0x13, -0x4b, 0xb3, 0xba, 0xec, 0x6e, 0x2c, 0xa9, 0xaa, 0x7f, 0x1d, 0x28, 0xf6, 0x5c, 0x7b, 0x4d, 0xbf, -0x62, 0xe6, 0xf9, 0xba, 0xca, 0x29, 0x67, 0x66, 0xcf, 0xb6, 0x80, 0xd9, 0x8a, 0x71, 0x30, 0xfe, -0x6f, 0x5f, 0xf8, 0xe1, 0xa8, 0x87, 0x71, 0x57, 0x52, 0x6e, 0x52, 0x0a, 0xcf, 0x9c, 0x1d, 0xbf, -0x64, 0xf0, 0x2f, 0xb7, 0x05, 0xe1, 0x81, 0x0e, 0x91, 0xca, 0xc2, 0x12, 0x40, 0x20, 0xc8, 0x34, -0xe3, 0x46, 0xb0, 0x8f, 0xc5, 0xc6, 0x75, 0x99, 0xc5, 0xb7, 0xc6, 0x8c, 0xeb, 0x6e, 0xc2, 0xf8, -0x5f, 0x85, 0xf9, 0x4a, 0xc7, 0x8f, 0x5f, 0xcf, 0xcd, 0x90, 0x44, 0xa7, 0xc1, 0x65, 0x76, 0x5b, -0xa4, 0xa0, 0xb3, 0x88, 0xb8, 0xd8, 0xe4, 0x5f, 0xb0, 0x7b, 0xc2, 0x10, 0xcc, 0xa7, 0xde, 0xa2, -0xb3, 0xc1, 0x92, 0xe3, 0x74, 0x5b, 0x48, 0xb2, 0xfc, 0xd5, 0x0f, 0xbb, 0xca, 0x1c, 0x9d, 0x3c, -0x96, 0xd4, 0x0c, 0x73, 0x71, 0x64, 0xcc, 0xa3, 0xd8, 0x14, 0xeb, 0x1b, 0x3e, 0x8a, 0x45, 0xb9, -0x44, 0x36, 0x32, 0xa8, 0xef, 0x60, 0xb7, 0x3e, 0xcf, 0x49, 0xb2, 0xab, 0x98, 0x34, 0x2f, 0xc4, -0x0c, 0xeb, 0xd2, 0x15, 0xa3, 0x56, 0xfa, 0xbd, 0x30, 0xff, 0xc7, 0xaf, 0x3b, 0x2b, 0x35, 0x1e, -0xb4, 0x20, 0x94, 0xfa, 0x65, 0x98, 0xeb, 0x2f, 0x86, 0x79, 0x2e, 0xb3, 0xcd, 0x0f, 0x5f, 0x1f, -0x4a, 0xaf, 0xde, 0x40, 0x7c, 0x9c, 0x4d, 0xa4, 0x27, 0x20, 0xa0, 0x18, 0x0f, 0xf9, 0x61, 0xbe, -0x3d, 0xee, 0x27, 0x79, 0x0e, 0x7c, 0x62, 0xbe, 0x1c, 0xe6, 0x33, 0x4e, 0xbc, 0xd3, 0x4c, 0x92, -0x29, 0x88, 0xa9, 0x8b, 0x60, 0x5e, 0x64, 0x23, 0xd6, 0x28, 0x4f, 0xf2, 0xc3, 0xdc, 0xf8, 0x8b, -0x30, 0x4f, 0xdd, 0x29, 0x91, 0xd4, 0xff, 0x46, 0x06, 0x87, 0x08, 0x83, 0x42, 0x84, 0xc1, 0xc0, -0xdc, 0x66, 0x6c, 0xb9, 0x29, 0xf6, 0x55, 0x25, 0xfc, 0xe3, 0xd7, 0x5d, 0x19, 0xee, 0x42, 0xe2, -0xd9, 0x63, 0xfc, 0x7b, 0xe9, 0x74, 0xeb, 0x9c, 0xe4, 0xef, 0xa3, 0x92, 0xab, 0xbb, 0x9c, 0xb2, -0x3d, 0xce, 0xbf, 0x39, 0x8b, 0x2b, 0x1f, 0xab, 0x1a, 0xc8, 0x85, 0xc8, 0x46, 0xb2, 0x2d, 0xa2, -0xbe, 0xa1, 0xe4, 0xb5, 0x19, 0x5a, 0xb0, 0x45, 0x2c, 0xaf, 0x7b, 0x59, 0x6b, 0x18, 0xff, 0xa4, -0x43, 0xd8, 0x4f, 0xb5, 0x17, 0x59, 0xed, 0x45, 0xb2, 0x7d, 0x70, 0x04, 0xec, 0x5d, 0x1f, 0xbc, -0x18, 0xd9, 0xa8, 0x9e, 0x72, 0x65, 0x6c, 0xd9, 0x48, 0x7a, 0x09, 0xe8, 0xa6, 0xae, 0xe5, 0xda, -0xc1, 0x4e, 0xba, 0x1d, 0x64, 0x63, 0x22, 0x03, 0x7b, 0xcc, 0x72, 0xdb, 0x2a, 0xa4, 0x9b, 0x2b, -0xab, 0x70, 0x2c, 0xe0, 0x93, 0x01, 0x2a, 0x6b, 0xfa, 0x89, 0xeb, 0xb1, 0x03, 0x5a, 0x2b, 0x8f, -0x90, 0x0c, 0xc9, 0xa3, 0x6e, 0x4b, 0x4d, 0xb7, 0xcb, 0xae, 0x9a, 0x5c, 0x58, 0xe3, 0xbc, 0x56, -0xbf, 0x88, 0xb5, 0xcd, 0xe3, 0xdc, 0xcf, 0x9e, 0x60, 0xcd, 0x00, 0xd5, 0xea, 0x37, 0x43, 0x75, -0xa2, 0x67, 0x21, 0xc2, 0x9b, 0x46, 0xb3, 0xd1, 0x65, 0x27, 0x0b, 0x8d, 0x51, 0x8b, 0x4b, 0x8e, -0x74, 0xc5, 0xc0, 0x96, 0xad, 0x98, 0x63, 0x5a, 0x5a, 0x4f, 0x50, 0x8b, 0x59, 0xde, 0x01, 0x4a, -0xbe, 0x14, 0x91, 0xd6, 0xd7, 0xf4, 0xff, 0xf8, 0x75, 0xad, 0x24, 0x7b, 0x18, 0xa2, 0x46, 0x84, -0x23, 0xce, 0xd4, 0x1f, 0xef, 0xa3, 0x31, 0xd0, 0x01, 0x3f, 0x7a, 0xed, 0xb1, 0x83, 0x4a, 0x06, -0xaf, 0x0d, 0xcb, 0xe1, 0x07, 0x3f, 0x7a, 0x4d, 0xb2, 0xfe, 0xe6, 0xf5, 0xe5, 0xa2, 0x34, 0xf5, -0x50, 0xef, 0x4b, 0x43, 0xcb, 0xcd, 0x8f, 0x0d, 0x11, 0xec, 0x14, 0xa3, 0xfc, 0x22, 0xcc, 0x6d, -0x11, 0xf7, 0xf5, 0x60, 0x6f, 0xcc, 0x8f, 0xe6, 0x49, 0x95, 0x38, 0xbe, 0x9d, 0xd8, 0x5f, 0x75, -0xc4, 0x25, 0x9b, 0x17, 0xc4, 0xb1, 0x42, 0x10, 0x7e, 0xa2, 0x8a, 0xd5, 0x56, 0x3b, 0xed, 0xdd, -0x1a, 0x79, 0xd8, 0x9d, 0x7e, 0x74, 0xfd, 0xde, 0x87, 0xd5, 0xa3, 0x8a, 0xe8, 0x4e, 0x8b, 0x19, -0x0f, 0xc6, 0xa3, 0x2e, 0x25, 0x10, 0x7e, 0x11, 0x73, 0x30, 0xc6, 0x10, 0x7e, 0x31, 0x89, 0x72, -0x20, 0x09, 0x9a, 0xaa, 0x01, 0x2d, 0xcd, 0xa9, 0xc8, 0xc3, 0x8a, 0xb8, 0x0e, 0xbc, 0xe9, 0xc7, -0xba, 0x5f, 0xc6, 0x12, 0xd5, 0xc3, 0xee, 0x34, 0x8a, 0xaf, 0x7e, 0xb1, 0x12, 0x7f, 0x1e, 0x79, -0x98, 0x52, 0x52, 0x89, 0xee, 0x34, 0xaf, 0x55, 0xc9, 0xa6, 0xf8, 0x8c, 0x4f, 0x14, 0xe3, 0x75, -0x24, 0x10, 0x13, 0x1b, 0xbd, 0x06, 0x65, 0x5d, 0xa4, 0x3b, 0xb2, 0xfe, 0x37, 0xff, 0x50, 0x7b, -0xd2, 0x8d, 0x10, 0x60, 0xfa, 0x2a, 0xeb, 0x08, 0xcf, 0x92, 0x44, 0xc4, 0x68, 0x4d, 0xee, 0x8b, -0xf4, 0x7a, 0x4d, 0xc7, 0xba, 0xff, 0xfe, 0x80, 0x7a, 0x02, 0x6b, 0xd0, 0xa3, 0x66, 0xf1, 0xb2, -0x49, 0xe7, 0x70, 0x32, 0xaf, 0xe8, 0xdc, 0x08, 0xd3, 0xfb, 0xe5, 0x15, 0x8f, 0x75, 0xef, 0xa4, -0xba, 0xbe, 0x8b, 0xeb, 0x85, 0xcc, 0xf3, 0x9b, 0x90, 0x9b, 0x35, 0xd2, 0x15, 0x59, 0x2f, 0xc9, -0x36, 0x9b, 0x0a, 0x7f, 0x39, 0x40, 0x76, 0xa1, 0xd9, 0xbd, 0x67, 0x7e, 0xe5, 0x1a, 0x84, 0x3e, -0x5c, 0xc9, 0xd6, 0xb8, 0x28, 0x67, 0xb2, 0x1d, 0x4c, 0x22, 0xef, 0xef, 0xfe, 0x26, 0x30, 0x47, -0xa2, 0x8d, 0x8d, 0x36, 0x6b, 0x35, 0xfe, 0xc6, 0xbb, 0x24, 0x7e, 0x5b, 0x72, 0xe3, 0x70, 0x8d, -0xbf, 0xd2, 0xa1, 0x9d, 0xff, 0x5b, 0x93, 0x77, 0x00, 0x77, 0x3b, 0x99, 0x5c, 0xd0, 0x77, 0x53, -0xe2, 0x8c, 0xff, 0xce, 0x38, 0x74, 0xf8, 0x77, 0xce, 0x57, 0xc9, 0x24, 0x24, 0xcc, 0xc4, 0x7b, -0xbd, 0x53, 0x88, 0x9a, 0xc2, 0x82, 0xfa, 0x31, 0x69, 0x1f, 0xe0, 0xe9, 0x13, 0xc3, 0xa1, 0x0f, -0xa1, 0xc0, 0xdd, 0x08, 0x56, 0x0f, 0x5b, 0x93, 0xc8, 0x32, 0x8b, 0x2b, 0x64, 0xc3, 0xb8, 0x76, -0x08, 0x75, 0xe6, 0x15, 0xbd, 0xf5, 0x7b, 0x73, 0x3e, 0xa4, 0x3d, 0x29, 0xa8, 0x67, 0x3c, 0x61, -0x1c, 0x71, 0x01, 0xaa, 0x4d, 0xa8, 0x31, 0x31, 0xcc, 0x35, 0xc3, 0xde, 0xb5, 0x8d, 0x69, 0x08, -0x62, 0xb6, 0x4c, 0x5d, 0x18, 0x6a, 0x75, 0x10, 0xaf, 0x7b, 0x38, 0xde, 0x9c, 0xad, 0x58, 0xc2, -0xf1, 0x06, 0x87, 0x42, 0x56, 0xc9, 0x32, 0xa4, 0x42, 0x42, 0x20, 0x8a, 0x49, 0x2a, 0xfc, 0x2f, -0x89, 0x44, 0x82, 0xc5, 0x16, 0xdd, 0xfd, 0x15, 0xe7, 0x72, 0x20, 0x71, 0x91, 0xd7, 0x93, 0xdf, -0xcd, 0x20, 0x46, 0xc8, 0x77, 0x93, 0x0e, 0x71, 0x3f, 0x14, 0x36, 0x3a, 0x5a, 0x84, 0x1d, 0x5d, -0xd1, 0x8c, 0x0e, 0xd7, 0xde, 0xae, 0x46, 0x33, 0xd7, 0x95, 0xae, 0x64, 0x70, 0x29, 0x1b, 0xc1, -0xe9, 0x8e, 0x13, 0x67, 0x96, 0x2b, 0x98, 0x69, 0x8f, 0xc4, 0xed, 0x86, 0x50, 0x67, 0xa0, 0xe8, -0xcd, 0x83, 0xe6, 0xb9, 0x90, 0xd6, 0x87, 0xf5, 0x0c, 0x1b, 0x70, 0xec, 0x5c, 0xc2, 0xf9, 0x3a, -0x9b, 0xad, 0x75, 0x73, 0x70, 0xad, 0xeb, 0xc7, 0x55, 0xcd, 0x10, 0xee, 0x8a, 0x9a, 0x62, 0xb6, -0xc1, 0x2e, 0x35, 0xdf, 0x6a, 0x87, 0x80, 0xea, 0x2c, 0x3a, 0x03, 0x82, 0xc6, 0xe5, 0x9c, 0xc4, -0xd2, 0xa6, 0xc5, 0xfd, 0xad, 0x36, 0xc5, 0xe1, 0x0a, 0x61, 0x5c, 0xb3, 0x62, 0xa5, 0x14, 0x8a, -0xa9, 0xd5, 0x8c, 0xe3, 0xc2, 0x42, 0x36, 0xf3, 0x12, 0x89, 0x24, 0xe7, 0xb0, 0x07, 0xc6, 0xde, -0x09, 0x0b, 0x21, 0x66, 0xf3, 0x79, 0xc3, 0xc4, 0xdd, 0x4f, 0x3c, 0x92, 0x5f, 0xaf, 0x53, 0x96, -0x86, 0x1e, 0x2e, 0x28, 0xcb, 0xb5, 0x76, 0xc4, 0xdf, 0xe8, 0x55, 0x97, 0x14, 0x5d, 0x3a, 0x88, -0xdb, 0xb1, 0xf9, 0x81, 0xd3, 0x50, 0xf2, 0xbb, 0x55, 0xa6, 0xf2, 0xb3, 0x89, 0x43, 0x4a, 0x66, -0xc9, 0xef, 0xd4, 0xf9, 0x66, 0xdc, 0x7f, 0x47, 0x4d, 0xb8, 0xea, 0x7d, 0x55, 0xa1, 0xb5, 0xef, -0xde, 0x1f, 0x1f, 0xdc, 0xb9, 0xb1, 0xd9, 0x13, 0xee, 0x6c, 0xcc, 0xd9, 0x1d, 0xaf, 0xcf, 0x52, -0x4d, 0x7f, 0x7f, 0x01, 0x7c, 0x4d, 0xcc, 0xde, 0x1d, 0x71, 0x88, 0x55, 0x0d, 0x1c, 0xda, 0xc8, -0x64, 0x08, 0x12, 0xae, 0x45, 0x33, 0xbe, 0xa2, 0x3e, 0x1d, 0xee, 0x6c, 0x10, 0x63, 0x09, 0xd6, -0x42, 0x13, 0xd7, 0x28, 0xc1, 0xa0, 0x63, 0x72, 0xf7, 0x6b, 0x96, 0xed, 0x86, 0xf9, 0xbd, 0x17, -0xf5, 0x3e, 0x59, 0x18, 0x8d, 0xda, 0x24, 0x9b, 0x33, 0x68, 0x7f, 0x11, 0xd2, 0x23, 0x71, 0x29, -0x5e, 0xbd, 0x8d, 0x6e, 0xee, 0xf8, 0xad, 0x13, 0xb3, 0xf1, 0x86, 0xfd, 0x4e, 0xb7, 0x57, 0xa4, -0x41, 0x21, 0xb4, 0x6f, 0xff, 0xf3, 0x60, 0x9d, 0x2d, 0x27, 0x86, 0xc9, 0x4a, 0x2b, 0xf1, 0xf7, -0xb2, 0x5e, 0x5f, 0x9b, 0x20, 0x5d, 0x28, 0x97, 0xa9, 0xcd, 0x5c, 0x0b, 0x6d, 0xf8, 0xf9, 0xc4, -0x70, 0x94, 0x2c, 0xca, 0x5e, 0x96, 0x6d, 0x8a, 0x99, 0x74, 0x43, 0xc9, 0x79, 0x9e, 0x84, 0x6b, -0x4e, 0xe2, 0x22, 0x8e, 0x85, 0x4b, 0x9a, 0xbe, 0x02, 0x73, 0x6a, 0xa9, 0xbc, 0x44, 0x1c, 0x97, -0xda, 0x98, 0xc6, 0x3c, 0xdf, 0xc5, 0xf1, 0x6b, 0xe6, 0x79, 0xd2, 0xd8, 0x93, 0x6d, 0xc9, 0xd1, -0xcd, 0x6c, 0x6c, 0xdb, 0xd8, 0x9d, 0x7e, 0x33, 0x69, 0xda, 0xae, 0xee, 0x8c, 0x41, 0xb8, 0x33, -0x6a, 0xb1, 0xdd, 0xda, 0x0a, 0x8e, 0xac, 0x4d, 0x5d, 0xd1, 0xf3, 0x7c, 0x0c, 0x87, 0x3e, 0x2c, -0x0c, 0x48, 0x74, 0x73, 0x82, 0x60, 0xc2, 0x14, 0x2e, 0x1c, 0x1f, 0xe2, 0x4e, 0xc6, 0xa1, 0xe1, -0x96, 0x97, 0xb7, 0xb8, 0xc5, 0xde, 0x78, 0xbb, 0xe1, 0x40, 0x4f, 0x34, 0xdf, 0x2d, 0xbe, 0xd4, -0x7d, 0xa0, 0x47, 0xb5, 0xef, 0xee, 0xac, 0xcb, 0xc8, 0x2c, 0x04, 0xc3, 0x81, 0xae, 0xbc, 0x0e, -0x30, 0x3e, 0xfe, 0x5b, 0x45, 0x74, 0x16, 0x6d, 0xde, 0x20, 0x95, 0xbb, 0x82, 0x8e, 0x7f, 0xaa, -0xee, 0x63, 0x6b, 0xe2, 0x67, 0x45, 0xff, 0x6a, 0x86, 0x23, 0x48, 0x21, 0x49, 0x41, 0xb7, 0x70, -0xea, 0x91, 0x68, 0x96, 0xb3, 0xd8, 0x2d, 0xbb, 0x42, 0xae, 0x7f, 0xaa, 0xde, 0xc0, 0x56, 0xcb, -0xcf, 0x8e, 0x76, 0x1f, 0xed, 0x3e, 0xd2, 0xfd, 0xe6, 0x6f, 0xd7, 0x1a, 0xf6, 0x11, 0x17, 0xce, -0x66, 0xa7, 0x6c, 0xfb, 0x63, 0x75, 0xa7, 0x7a, 0x05, 0xf1, 0x7f, 0xef, 0x91, 0x4e, 0x37, 0x1c, -0xed, 0xf4, 0x18, 0xfa, 0xba, 0xd6, 0x1a, 0x0e, 0xae, 0x8f, 0x06, 0x3c, 0x86, 0x5f, 0xf7, 0x1c, -0x5c, 0xaf, 0x66, 0x64, 0x15, 0x82, 0x11, 0xcb, 0x36, 0xbd, 0xda, 0x25, 0x2d, 0xc0, 0x9c, 0x8b, -0x36, 0xf7, 0x79, 0xcc, 0x25, 0x3d, 0x47, 0x7a, 0x8e, 0xf6, 0xdc, 0x3c, 0xe8, 0x49, 0x14, 0x24, -0xb4, 0xb2, 0x3f, 0xf6, 0x08, 0xa7, 0x36, 0x46, 0x67, 0x38, 0x4b, 0x1e, 0x3b, 0x78, 0xfb, 0xa0, -0x67, 0xb8, 0x60, 0xb8, 0x7a, 0xc3, 0xb7, 0xfb, 0x58, 0xa9, 0x17, 0x4b, 0x7a, 0xde, 0xc1, 0x3f, -0x4a, 0xd1, 0x6e, 0xd8, 0xd7, 0x13, 0xcd, 0x96, 0x8a, 0x4a, 0x3a, 0x5d, 0xf2, 0x1f, 0x5e, 0x71, -0x16, 0xbf, 0xf5, 0xca, 0xcd, 0x83, 0xdb, 0x12, 0x4f, 0x8e, 0xe6, 0x51, 0xf1, 0x9e, 0xb5, 0x50, -0x87, 0xcd, 0xbf, 0x07, 0x9b, 0x00, 0xc1, 0xc6, 0x41, 0x37, 0x83, 0xcc, 0xbe, 0x62, 0x50, 0x31, -0xda, 0xf7, 0x55, 0xf7, 0x39, 0xa7, 0x98, 0x05, 0x9c, 0x47, 0x66, 0x16, 0xfb, 0xbc, 0x52, 0xe9, -0x0a, 0xb5, 0x18, 0x77, 0xf4, 0xd5, 0x95, 0xb6, 0x41, 0x29, 0xc2, 0x05, 0xf7, 0x02, 0x1b, 0xba, -0xba, 0xdd, 0x42, 0xa8, 0x58, 0x2e, 0xee, 0xed, 0x74, 0x97, 0xbb, 0x7f, 0xfb, 0xed, 0x3e, 0xfa, -0x5e, 0xff, 0x99, 0xd3, 0xf2, 0x9d, 0xce, 0x53, 0x1b, 0xdc, 0x42, 0xa4, 0x5b, 0x2a, 0x7e, 0xf3, -0xb7, 0x6e, 0xf3, 0xd1, 0xbe, 0x12, 0xe2, 0x60, 0xe4, 0x56, 0x86, 0x86, 0xdf, 0xfa, 0x2d, 0xcf, -0x9d, 0xc3, 0x30, 0x29, 0xdb, 0xc6, 0x74, 0xfb, 0x10, 0x6e, 0xbb, 0x44, 0x72, 0x6d, 0x24, 0x29, -0x66, 0xbf, 0xd5, 0x26, 0x90, 0xa4, 0xca, 0xdb, 0xaf, 0xb9, 0xa6, 0x1e, 0x79, 0x84, 0x4b, 0xad, -0xbc, 0xfd, 0x1a, 0x71, 0x77, 0xba, 0xf2, 0x3c, 0xb0, 0x65, 0x07, 0x59, 0xa6, 0x53, 0xc9, 0xa2, -0xd1, 0x51, 0xae, 0x71, 0x86, 0xb5, 0x63, 0x7e, 0xf2, 0xd6, 0x90, 0xf3, 0x8d, 0xfd, 0xed, 0x7e, -0xb6, 0xbf, 0xb8, 0xe4, 0x96, 0xed, 0x5f, 0xe6, 0xb8, 0xf1, 0xcd, 0x83, 0xce, 0xc0, 0x93, 0x50, -0x33, 0xe0, 0xb0, 0x87, 0xba, 0x02, 0x32, 0xbd, 0xef, 0x18, 0x7c, 0x12, 0xd4, 0xf9, 0xde, 0x85, -0x84, 0x05, 0x5d, 0x41, 0x4f, 0xa8, 0xba, 0x9f, 0xdd, 0x5d, 0xbb, 0x23, 0x7d, 0x8e, 0xaf, 0x84, -0xba, 0x0a, 0xe5, 0x7f, 0x7e, 0xc3, 0x9d, 0x71, 0xf4, 0x51, 0x87, 0x83, 0x3f, 0xbb, 0x32, 0x8e, -0x3c, 0xea, 0xbe, 0xb3, 0x00, 0x76, 0xbd, 0xe4, 0x81, 0xe8, 0x61, 0xc5, 0xfe, 0xd8, 0x90, 0x64, -0x56, 0x4c, 0xe1, 0x6c, 0xf5, 0x05, 0x6e, 0x43, 0xb3, 0x72, 0xcd, 0x13, 0x43, 0x0b, 0x2e, 0x6d, -0x03, 0xe5, 0x2c, 0xe2, 0x1b, 0x3f, 0x18, 0x9d, 0x41, 0xa9, 0x3c, 0xb2, 0x81, 0xec, 0x63, 0xd3, -0xfc, 0xc5, 0x36, 0xbd, 0x42, 0x56, 0x0e, 0x69, 0x3d, 0x4a, 0xce, 0x67, 0xfb, 0xad, 0xc4, 0x01, -0xcb, 0x67, 0x32, 0x6b, 0x0f, 0x9b, 0xcd, 0x2c, 0x2d, 0xc5, 0x08, 0x8e, 0xa5, 0x21, 0xb9, 0x3a, -0xa7, 0x59, 0x12, 0x22, 0x9d, 0xce, 0x60, 0xf8, 0x66, 0xf5, 0xb3, 0x4d, 0x7d, 0x8c, 0x5f, 0x3f, -0xe0, 0xe6, 0xf2, 0xd8, 0x0e, 0xb2, 0x0a, 0xe9, 0x5a, 0x28, 0x09, 0x52, 0x98, 0xe9, 0xad, 0xee, -0xaf, 0x8e, 0x63, 0xb9, 0x1f, 0xbb, 0x42, 0x4f, 0xbc, 0xb6, 0xb9, 0x3f, 0x6a, 0x74, 0x97, 0xe3, -0x1a, 0x3e, 0x85, 0x43, 0xe5, 0x50, 0x7f, 0xcd, 0x80, 0x92, 0x19, 0x13, 0x06, 0x3b, 0xa3, 0x46, -0xdb, 0xbe, 0xea, 0x4e, 0x69, 0xaa, 0xe3, 0xcb, 0xea, 0x45, 0xd9, 0xb6, 0x69, 0xc3, 0xa1, 0x7e, -0x0e, 0x4d, 0xca, 0x37, 0xd9, 0x13, 0x94, 0x6f, 0x54, 0xaa, 0xee, 0x8c, 0xe6, 0xb9, 0x42, 0x8e, -0x6c, 0xfb, 0x3e, 0x77, 0xb9, 0x64, 0x09, 0x8b, 0x51, 0x13, 0x8e, 0xe5, 0x8b, 0x8a, 0x31, 0xdc, -0xa9, 0xda, 0xe4, 0xe9, 0x38, 0x56, 0xcd, 0x88, 0xdd, 0x6e, 0x95, 0xa6, 0x60, 0x0b, 0x2e, 0x6f, -0xea, 0xab, 0x8e, 0xf3, 0x7c, 0x24, 0x33, 0x96, 0x7b, 0x82, 0x8f, 0x31, 0x27, 0xcd, 0xbf, 0x64, -0x1f, 0x3b, 0x30, 0xe7, 0x2c, 0xc2, 0x65, 0x88, 0xc9, 0x7c, 0x8e, 0x5b, 0x6d, 0x22, 0xef, 0x5f, -0xf7, 0xd4, 0xa3, 0xe3, 0xfa, 0xda, 0x9d, 0x57, 0x00, 0x5b, 0xa9, 0xaf, 0x0d, 0xaa, 0x39, 0x2c, -0xaa, 0x87, 0x34, 0x0d, 0x43, 0x5c, 0x1e, 0xd2, 0xc0, 0x30, 0xa3, 0x83, 0x2c, 0x0c, 0x11, 0xdf, -0x89, 0x96, 0x9b, 0xc3, 0x41, 0x10, 0x15, 0xdb, 0x20, 0x33, 0x6b, 0x53, 0x37, 0x4b, 0x75, 0x9a, -0x6b, 0x19, 0x22, 0x19, 0x32, 0xc2, 0xf0, 0xc4, 0x19, 0xe5, 0xd4, 0x64, 0x1c, 0xa4, 0x20, 0xa5, -0x72, 0x86, 0x30, 0x9d, 0xd5, 0x91, 0x6d, 0xdb, 0xa7, 0x7e, 0x8c, 0x34, 0xe1, 0xad, 0x9c, 0xe7, -0x99, 0xdb, 0xf2, 0x64, 0x63, 0xb3, 0x80, 0xdd, 0x9a, 0x63, 0xad, 0x89, 0x3f, 0xe2, 0x2e, 0x50, -0x6c, 0x9c, 0x12, 0x22, 0xee, 0x62, 0x66, 0x8f, 0xde, 0xe2, 0x5a, 0x68, 0x9b, 0x1e, 0x79, 0x44, -0x3d, 0xcd, 0x75, 0xbf, 0xe6, 0x18, 0xc7, 0xd3, 0x1c, 0x64, 0x1b, 0x69, 0xa7, 0xa0, 0x8a, 0xd2, -0x14, 0x27, 0xee, 0xa8, 0xd5, 0x4b, 0x49, 0x7c, 0x2d, 0x91, 0x95, 0x10, 0x36, 0xef, 0x46, 0xc7, -0xab, 0x6c, 0xbf, 0xb5, 0x66, 0x60, 0x87, 0x5d, 0x75, 0x7a, 0xca, 0xf9, 0x88, 0x74, 0x27, 0x47, -0xa4, 0x05, 0x47, 0x64, 0xce, 0xce, 0xe9, 0xd1, 0xf3, 0x29, 0xa3, 0xee, 0x28, 0x41, 0x83, 0x4a, -0xc3, 0x51, 0xf7, 0x09, 0x8d, 0x3a, 0xc4, 0x73, 0x12, 0xe9, 0x26, 0xf1, 0xf8, 0xb9, 0x8d, 0xcf, -0x70, 0x4f, 0x03, 0xd2, 0xd5, 0x4a, 0x66, 0xab, 0x80, 0x74, 0xf2, 0xfa, 0xa8, 0xb9, 0x72, 0x13, -0xd6, 0xd6, 0xa8, 0xe4, 0x55, 0x6e, 0x3a, 0xd2, 0xad, 0x58, 0xdc, 0xc6, 0xa3, 0xdd, 0x3f, 0xea, -0x8e, 0x09, 0xbd, 0x71, 0xa6, 0x21, 0x3f, 0x2e, 0xb5, 0x98, 0x21, 0xdc, 0xd3, 0xc8, 0x66, 0xfc, -0x92, 0x57, 0xb0, 0x6f, 0xbb, 0x96, 0xbc, 0x52, 0x22, 0xa8, 0x07, 0x92, 0x9a, 0x9d, 0x8c, 0x0c, -0x5f, 0xb0, 0xb5, 0x6b, 0xcd, 0xd8, 0xd9, 0x42, 0xe8, 0xc3, 0xf9, 0x54, 0x26, 0xb3, 0xd9, 0xe6, -0xc3, 0xb9, 0x87, 0xe5, 0x7a, 0xb4, 0x72, 0x67, 0x60, 0xb9, 0xd9, 0xe1, 0xde, 0xa8, 0xd5, 0x9f, -0xc6, 0x2c, 0x6a, 0xc5, 0x55, 0xb3, 0x32, 0x97, 0x3f, 0xff, 0x15, 0xe5, 0xbf, 0x3c, 0x5a, 0x3e, -0xd3, 0x20, 0x33, 0x3f, 0x40, 0x7c, 0x2d, 0x54, 0x8a, 0xdb, 0x0f, 0x3e, 0x2c, 0x35, 0x40, 0xf6, -0x15, 0xb1, 0xe4, 0x02, 0xa4, 0xa9, 0x5d, 0x8d, 0x73, 0x99, 0xfd, 0x21, 0x37, 0xd9, 0x20, 0xf5, -0x9b, 0x90, 0x66, 0x20, 0xce, 0xe3, 0x4d, 0xdc, 0x62, 0x82, 0x6a, 0x53, 0x22, 0xe3, 0xc3, 0xa4, -0xfb, 0x18, 0x1e, 0x3a, 0xac, 0xcc, 0x75, 0xd9, 0x9e, 0x78, 0xd5, 0x2d, 0xbf, 0xbd, 0xef, 0xed, -0xd7, 0xca, 0x2e, 0xee, 0x06, 0x65, 0x06, 0xa6, 0xcf, 0xe0, 0xf1, 0x78, 0x0f, 0xe3, 0xec, 0xd1, -0xde, 0xaa, 0xbb, 0xbe, 0xdd, 0x2f, 0xad, 0xde, 0x06, 0xe1, 0x2e, 0xf5, 0xd8, 0xa8, 0xce, 0x2b, -0xac, 0x59, 0x00, 0xe7, 0xec, 0xd0, 0x05, 0xb0, 0xe4, 0xf9, 0xc1, 0xb4, 0xef, 0x02, 0x98, 0x0f, -0x15, 0x11, 0xd7, 0x8e, 0xf6, 0x66, 0x39, 0xd4, 0xa9, 0xcd, 0x7b, 0x1a, 0x13, 0x7e, 0x30, 0x5b, -0x3b, 0xe9, 0x36, 0xa2, 0x2e, 0xd3, 0x05, 0xb2, 0x1c, 0x92, 0x7b, 0x5e, 0x09, 0x88, 0xa1, 0x60, -0xbe, 0x1f, 0x2c, 0xf4, 0xa4, 0x04, 0x5c, 0xc2, 0xc9, 0x0d, 0x27, 0xfb, 0xb4, 0x38, 0x97, 0xe2, -0xaf, 0x70, 0x39, 0x7d, 0xa7, 0xb8, 0x6f, 0x28, 0x24, 0xef, 0x47, 0x1f, 0x96, 0x55, 0xcb, 0xe1, -0xae, 0x7a, 0xd3, 0x8e, 0x17, 0xc1, 0xbc, 0x5c, 0xac, 0x8e, 0xd3, 0x88, 0xf2, 0x8b, 0xad, 0x02, -0xe5, 0xbe, 0xca, 0x58, 0xd2, 0x59, 0x42, 0xa3, 0xdc, 0x8c, 0x4f, 0xf1, 0x12, 0xd1, 0x9f, 0xd4, -0xda, 0x85, 0xf4, 0x5a, 0x58, 0x5c, 0xc5, 0xe4, 0x29, 0xa9, 0x2e, 0x18, 0x97, 0xb8, 0x04, 0x8d, -0xa9, 0xdf, 0x29, 0xcc, 0x9f, 0xa2, 0xe5, 0x0b, 0xdf, 0x8d, 0x9b, 0xe3, 0x92, 0x70, 0xdd, 0xf8, -0xa7, 0x3e, 0x3f, 0x3e, 0xd7, 0x7d, 0xf5, 0x8d, 0x00, 0x51, 0x54, 0x48, 0xd1, 0x58, 0xbd, 0x48, -0x3f, 0x21, 0x96, 0x48, 0x73, 0x41, 0x08, 0x57, 0xcc, 0x50, 0x51, 0x81, 0x78, 0xf0, 0xb7, 0xfb, -0x5f, 0x39, 0x30, 0xb4, 0x6f, 0x48, 0x32, 0xbe, 0x14, 0x0c, 0x05, 0x8f, 0xc4, 0x8f, 0x74, 0xd7, -0x99, 0x4c, 0xac, 0xcd, 0x21, 0x39, 0x06, 0x01, 0x31, 0xdf, 0xe8, 0x13, 0x0f, 0x75, 0xe6, 0x02, -0xb3, 0x71, 0x5a, 0x87, 0xf3, 0x0d, 0xa9, 0x25, 0xb2, 0x60, 0xea, 0x02, 0xbf, 0x66, 0xcb, 0x14, -0x47, 0xcd, 0xc3, 0x4e, 0x53, 0xc5, 0x39, 0xeb, 0x70, 0xe2, 0x44, 0x52, 0x07, 0x55, 0xe8, 0xc3, -0x02, 0x90, 0x70, 0x0f, 0xe0, 0x44, 0xba, 0xca, 0x85, 0x29, 0xa2, 0x59, 0x6d, 0xd2, 0xd6, 0xae, -0x70, 0x77, 0x73, 0x96, 0x07, 0x4e, 0x3d, 0xf7, 0xe1, 0x36, 0x37, 0x9c, 0xfa, 0x65, 0x6f, 0xa7, -0x64, 0x74, 0x1a, 0x2a, 0xde, 0x83, 0x1c, 0x4a, 0xd5, 0x0e, 0x25, 0xdd, 0x1f, 0x60, 0x38, 0x85, -0x29, 0x67, 0x90, 0x12, 0xbc, 0xa4, 0xd9, 0x2f, 0x32, 0x63, 0x9d, 0xad, 0x98, 0x97, 0xcd, 0x87, -0x75, 0x77, 0x9a, 0x5c, 0x69, 0xee, 0x74, 0xa6, 0xb3, 0xd7, 0xfc, 0x72, 0x6f, 0x1d, 0x08, 0x4b, -0xad, 0xbd, 0xd4, 0x2b, 0xb5, 0x60, 0x38, 0x44, 0x4f, 0x64, 0xd7, 0x2f, 0x2d, 0xff, 0xb1, 0x83, -0x88, 0x03, 0x04, 0x8f, 0xf9, 0xf4, 0x36, 0x67, 0x90, 0xe4, 0x2b, 0xc3, 0x36, 0x92, 0x2f, 0x7c, -0x12, 0x3c, 0x96, 0x77, 0xe2, 0x31, 0x69, 0x53, 0x4f, 0xd4, 0xee, 0x13, 0xde, 0x7f, 0xc1, 0x9d, -0xfe, 0xfe, 0xb3, 0xce, 0xb4, 0xd3, 0x58, 0x0f, 0x57, 0xda, 0xfb, 0xdb, 0xbd, 0x26, 0x79, 0x41, -0x68, 0x81, 0xc7, 0xc4, 0xb9, 0x3d, 0xc9, 0x9e, 0xc1, 0x7c, 0x07, 0xb3, 0x3e, 0xbf, 0x15, 0xdb, -0x1a, 0x64, 0xad, 0xef, 0x63, 0xef, 0x8f, 0xd3, 0x8e, 0xbe, 0x9c, 0x43, 0xc3, 0x48, 0x9c, 0x55, -0x55, 0x03, 0x6e, 0x0b, 0xad, 0xc0, 0x4e, 0x51, 0x2e, 0x0a, 0x15, 0xf5, 0x76, 0xee, 0x8a, 0xd7, -0x65, 0x3a, 0xd3, 0xab, 0x3b, 0x8f, 0xf6, 0xee, 0xea, 0xad, 0x07, 0xa3, 0x8c, 0xef, 0x60, 0x2c, -0xbc, 0xe7, 0xe1, 0xa3, 0xbd, 0x5b, 0xe3, 0x63, 0x39, 0x26, 0xf3, 0x72, 0x43, 0x32, 0x17, 0xa7, -0x85, 0xb4, 0xa4, 0x75, 0xc9, 0x3b, 0xe2, 0x75, 0x0e, 0x97, 0xa1, 0xba, 0xeb, 0x70, 0xef, 0x0e, -0x4a, 0x9f, 0xbd, 0x83, 0xd2, 0x3b, 0xee, 0xe9, 0x0e, 0x95, 0xc9, 0x65, 0x8f, 0x76, 0xaf, 0x05, -0x29, 0xcd, 0x99, 0xce, 0x6c, 0x70, 0x33, 0x6b, 0x8d, 0x2f, 0x93, 0x25, 0x9d, 0x5a, 0x6b, 0x9c, -0x43, 0x41, 0x58, 0x65, 0x8d, 0x73, 0x28, 0x18, 0x67, 0xb4, 0x42, 0x3b, 0x20, 0x9c, 0x9f, 0x75, -0x19, 0x38, 0x0c, 0x1c, 0x81, 0x02, 0x4d, 0x03, 0xd6, 0x3b, 0x5d, 0x1d, 0xd2, 0x4f, 0x7a, 0x48, -0x27, 0xdf, 0xcb, 0xf1, 0x5a, 0xd3, 0x9e, 0x4e, 0x2c, 0x45, 0x5a, 0x27, 0x4c, 0xcc, 0x99, 0xb7, -0x39, 0xdc, 0xab, 0x5a, 0xb9, 0x6e, 0x6e, 0xaa, 0xad, 0x0f, 0x92, 0xf0, 0x16, 0xdb, 0x92, 0xf0, -0x36, 0xec, 0x8d, 0x41, 0x0b, 0xb8, 0x4d, 0x27, 0x9e, 0x95, 0xb4, 0x92, 0x48, 0x96, 0x93, 0x9f, -0xd3, 0x1c, 0x26, 0x78, 0x77, 0xaa, 0x18, 0xfb, 0xe9, 0x5e, 0xb7, 0x49, 0x2e, 0x0e, 0x15, 0x27, -0x21, 0x3c, 0xbb, 0x84, 0x34, 0x87, 0x72, 0x38, 0x6b, 0xd0, 0x34, 0xf8, 0xd3, 0x35, 0xd8, 0xd0, -0x13, 0x83, 0x33, 0xe9, 0x69, 0x4c, 0x85, 0x8e, 0x47, 0x94, 0x4b, 0x42, 0x25, 0x5d, 0x3d, 0x08, -0x93, 0x4c, 0xa9, 0xac, 0xba, 0x8f, 0xc3, 0x48, 0x3c, 0x45, 0x30, 0x12, 0xdf, 0xbd, 0xe7, 0xe1, -0xc3, 0xbd, 0xae, 0xa2, 0x27, 0x86, 0x98, 0xad, 0x10, 0xcc, 0xc9, 0x17, 0x64, 0x4f, 0x1c, 0xca, -0x63, 0x39, 0x65, 0x5c, 0x0f, 0xce, 0xe2, 0x10, 0xcb, 0x63, 0x4f, 0x12, 0xce, 0xe3, 0x61, 0xb1, -0x0e, 0x26, 0x42, 0x07, 0xe1, 0x9c, 0x60, 0x70, 0x78, 0xa1, 0xd5, 0xd6, 0x6e, 0xfb, 0x3c, 0x38, -0x47, 0x61, 0xe4, 0x29, 0x17, 0x9c, 0xdb, 0x2e, 0x09, 0xa7, 0xb7, 0xf5, 0xc4, 0xcf, 0xfd, 0xd2, -0x55, 0x24, 0xa5, 0x9f, 0xde, 0xe6, 0x09, 0xba, 0xd3, 0xcf, 0x3d, 0x2b, 0xa5, 0x9d, 0xde, 0xd6, -0x1b, 0xe7, 0xad, 0x92, 0x44, 0x8e, 0x61, 0x88, 0xd7, 0x4e, 0x1b, 0x7f, 0x46, 0xb2, 0x34, 0x53, -0x35, 0xa0, 0x8d, 0x3e, 0x7c, 0xc3, 0x6f, 0x97, 0xc6, 0x8d, 0xc0, 0x39, 0xb8, 0xfb, 0xe5, 0xad, -0x0a, 0x3a, 0xe7, 0xe0, 0x9c, 0xc1, 0x96, 0x49, 0x06, 0x19, 0x67, 0x72, 0x57, 0x7c, 0xc7, 0x06, -0x0d, 0x46, 0x5d, 0x3b, 0xba, 0x70, 0x8c, 0x1c, 0xc0, 0x77, 0x10, 0x86, 0x10, 0x46, 0x5d, 0x9b, -0x37, 0x60, 0x5e, 0xc4, 0xd7, 0x77, 0x49, 0x83, 0x92, 0x91, 0xd2, 0xfa, 0x59, 0x0f, 0x7b, 0x20, -0x25, 0x4f, 0x0e, 0xa9, 0x62, 0x82, 0xb6, 0xdb, 0x58, 0xdd, 0xad, 0xe5, 0xd4, 0x45, 0x90, 0x12, -0x3a, 0xee, 0xe9, 0x39, 0xdc, 0x25, 0x15, 0x3d, 0x36, 0xc4, 0xe0, 0xd5, 0x23, 0xa5, 0x3b, 0x2d, -0x7f, 0x0d, 0x56, 0x71, 0xc9, 0x87, 0x90, 0x86, 0xfa, 0xd5, 0x41, 0x1c, 0xb3, 0xf7, 0xe1, 0x4e, -0xa0, 0x72, 0x12, 0x7c, 0x7b, 0x39, 0x7c, 0x85, 0x16, 0xdc, 0x8d, 0xda, 0xf2, 0x3b, 0x88, 0x9f, -0x7e, 0xd8, 0x37, 0x1a, 0xba, 0x22, 0x66, 0x6b, 0xb1, 0x7d, 0xde, 0x98, 0x8b, 0xc2, 0xb5, 0x47, -0xdf, 0x7f, 0xc1, 0x95, 0x7e, 0x72, 0xbb, 0x4b, 0x7e, 0xff, 0x45, 0x77, 0xda, 0xc9, 0x67, 0x1f, -0xed, 0xa6, 0x79, 0x3e, 0x79, 0x14, 0x6a, 0xb0, 0xd6, 0xc6, 0x8c, 0x17, 0x92, 0x63, 0xc6, 0x15, -0x1c, 0x3f, 0xcb, 0x43, 0x0b, 0xe4, 0x05, 0xce, 0x74, 0x9a, 0xe3, 0xfd, 0x9d, 0x7b, 0x68, 0x8e, -0x5b, 0xaa, 0x3b, 0x8f, 0xf5, 0xee, 0xc1, 0xb1, 0x03, 0xc3, 0xf8, 0x0e, 0xf0, 0xd9, 0x3d, 0xfd, -0xc7, 0x7a, 0x9f, 0x8a, 0x93, 0xc4, 0x03, 0xe5, 0xe4, 0x01, 0xf6, 0xc4, 0xac, 0x3d, 0xa7, 0x8c, -0x3e, 0x23, 0x83, 0x69, 0x19, 0xc1, 0x34, 0x37, 0xad, 0xfa, 0x61, 0x3e, 0xfa, 0x60, 0x1b, 0xc1, -0x14, 0x7e, 0x7a, 0xcf, 0xfa, 0xc3, 0xbd, 0xb9, 0xc2, 0xd3, 0x71, 0xc9, 0xc2, 0x75, 0xf9, 0x62, -0x9b, 0xcf, 0xe4, 0x0a, 0x0a, 0x5c, 0x3d, 0x90, 0x6b, 0x56, 0xe0, 0x9a, 0x8b, 0x7e, 0x47, 0x64, -0x8f, 0x01, 0x7f, 0x7b, 0xdd, 0x62, 0x12, 0x23, 0xe0, 0xf7, 0xb3, 0xc9, 0x37, 0x8c, 0x55, 0x7a, -0xee, 0xf9, 0x5f, 0xff, 0xc3, 0x72, 0x18, 0x79, 0xa1, 0xfa, 0xe1, 0x89, 0x50, 0x6d, 0xcd, 0x6a, -0xcf, 0xc2, 0xd8, 0x67, 0x5a, 0xcd, 0xed, 0x98, 0xd3, 0xd5, 0x93, 0x31, 0x73, 0x0b, 0xfe, 0x1f, -0x2e, 0xa1, 0xd3, 0x6e, 0x84, 0x31, 0x3e, 0x5f, 0x39, 0x88, 0xcf, 0x59, 0xf8, 0x8c, 0xf1, 0xae, -0xec, 0x8d, 0x65, 0xb5, 0xe0, 0xff, 0x61, 0x17, 0x8d, 0x7f, 0x2c, 0xf3, 0x7e, 0x6f, 0xfa, 0x84, -0xda, 0x55, 0xb8, 0x8a, 0x14, 0x48, 0x58, 0x11, 0x5f, 0x93, 0x9e, 0xa0, 0x79, 0x2e, 0x0d, 0xe7, -0x13, 0xbe, 0x76, 0x23, 0xbe, 0x76, 0x15, 0x7b, 0x04, 0x9f, 0xc8, 0xac, 0x71, 0x7d, 0xb0, 0xb3, -0x1b, 0x47, 0x4d, 0xa1, 0xb5, 0x5b, 0xc3, 0xd7, 0xed, 0xd6, 0x6e, 0x0d, 0x53, 0xbd, 0xf0, 0xf8, -0xef, 0xbd, 0x96, 0x13, 0xcf, 0x8f, 0x61, 0xea, 0x1a, 0x38, 0xb4, 0x61, 0xad, 0xf4, 0x14, 0xc9, -0xeb, 0x74, 0xb8, 0x2d, 0x1f, 0x3d, 0xeb, 0x13, 0x3f, 0x7a, 0xc1, 0x25, 0x9c, 0xd8, 0xbe, 0xb1, -0xcb, 0x23, 0x7c, 0xf4, 0x9c, 0xcb, 0x40, 0xab, 0x75, 0xae, 0x81, 0x4e, 0xd7, 0x13, 0x89, 0x32, -0xde, 0x7b, 0xa2, 0xdf, 0x94, 0xd2, 0x67, 0x7d, 0xec, 0x1d, 0xa1, 0xbd, 0x88, 0xf7, 0x60, 0x3a, -0xc9, 0x2c, 0xe3, 0x48, 0xb7, 0x84, 0x4a, 0xe5, 0x52, 0xa7, 0x91, 0xfa, 0x70, 0x63, 0xe7, 0xde, -0x78, 0x9d, 0xf5, 0x78, 0xf7, 0xde, 0xee, 0x7a, 0x13, 0x3e, 0x89, 0xc7, 0xbb, 0x7f, 0x12, 0x1f, -0xcb, 0x85, 0xa7, 0xaf, 0x19, 0xc8, 0x7d, 0x98, 0xa7, 0xd4, 0x70, 0x73, 0x09, 0xf6, 0x92, 0xf5, -0x70, 0xf7, 0x0e, 0x4c, 0x83, 0x4f, 0xe2, 0xe1, 0xee, 0xcd, 0xf1, 0x18, 0x9c, 0xf9, 0x25, 0x83, -0xef, 0x41, 0x82, 0xef, 0x4e, 0xc2, 0xc6, 0xd9, 0xa3, 0xd8, 0x38, 0x27, 0x89, 0x8d, 0x0d, 0x7b, -0xda, 0x60, 0x1d, 0x78, 0xe1, 0x83, 0xe7, 0xdd, 0x69, 0xbc, 0x9d, 0x99, 0xd8, 0x4a, 0x7e, 0xfa, -0xfb, 0x6e, 0x37, 0xb6, 0xf5, 0x61, 0xc4, 0xc6, 0x39, 0x3b, 0xe3, 0xb5, 0xc6, 0x1d, 0xfd, 0xf5, -0x66, 0x9f, 0xe8, 0x11, 0x9e, 0xec, 0xff, 0xaf, 0x71, 0xc9, 0xe4, 0x34, 0x8e, 0xe5, 0xcd, 0x5b, -0x16, 0xee, 0x56, 0x1d, 0x1c, 0x1f, 0xe3, 0xfc, 0xbd, 0xc8, 0x56, 0x1f, 0xc0, 0xd9, 0x7b, 0x31, -0x09, 0x57, 0xb1, 0x2a, 0x09, 0x57, 0x83, 0x12, 0x03, 0x84, 0xac, 0xe1, 0x7a, 0x90, 0x45, 0x8c, -0x1c, 0xd9, 0xd2, 0xed, 0x33, 0xc8, 0xa5, 0xa1, 0xd2, 0xf1, 0x90, 0xd4, 0x20, 0x66, 0x22, 0x79, -0x16, 0x06, 0x09, 0x7a, 0x4a, 0x81, 0x84, 0xcb, 0x12, 0x92, 0x65, 0x99, 0xc3, 0xb0, 0xa7, 0x73, -0x27, 0xc2, 0xe3, 0x48, 0xf7, 0x4e, 0x84, 0x07, 0x3e, 0x89, 0x47, 0xba, 0xb7, 0xc4, 0x6f, 0x94, -0x12, 0x47, 0xcf, 0x1e, 0x49, 0x1c, 0x6b, 0xcd, 0x28, 0xfe, 0xdc, 0xd6, 0x66, 0x5b, 0x67, 0xfb, -0x3c, 0xc8, 0x20, 0xfe, 0x3c, 0xed, 0x83, 0x8f, 0x5e, 0x90, 0x2c, 0xe7, 0xb7, 0x6d, 0xc4, 0xb1, -0xf7, 0xd1, 0x36, 0xdc, 0x23, 0x8a, 0xe7, 0x9f, 0xfb, 0x08, 0x31, 0xea, 0x79, 0xc4, 0xa8, 0x1f, -0xfd, 0x92, 0x38, 0x94, 0xf9, 0xbc, 0x96, 0x4c, 0x63, 0x38, 0xb4, 0x2c, 0x39, 0xaf, 0x8d, 0x54, -0x1f, 0x6d, 0x5c, 0xe0, 0x1b, 0x7e, 0x63, 0x70, 0xf3, 0xc0, 0xa2, 0x54, 0x1c, 0xba, 0x55, 0xc3, -0xa1, 0x17, 0x19, 0x0e, 0x15, 0x53, 0x70, 0x68, 0x49, 0x72, 0x9d, 0x11, 0x0e, 0x32, 0x1c, 0xba, -0x0f, 0x31, 0x5f, 0x2f, 0xe2, 0x50, 0x83, 0x9f, 0xf7, 0x01, 0xad, 0x2f, 0xb8, 0xd2, 0x50, 0x5a, -0x92, 0x49, 0xd4, 0x56, 0x9b, 0x64, 0x9e, 0x53, 0x47, 0x57, 0x9b, 0xcc, 0xb1, 0xd5, 0x46, 0xe8, -0x61, 0x38, 0x74, 0xdd, 0x3d, 0xdd, 0x87, 0x7b, 0x19, 0x0e, 0x2d, 0x91, 0x4b, 0x7a, 0x7b, 0x9c, -0xc5, 0xb8, 0x3b, 0xf9, 0xab, 0xb0, 0xa8, 0x9b, 0x61, 0x51, 0xf7, 0x14, 0xd7, 0x54, 0x86, 0x49, -0xf3, 0x11, 0x93, 0xf6, 0x21, 0x7d, 0x87, 0xd8, 0x66, 0x73, 0xd7, 0x63, 0xdd, 0x67, 0x7e, 0xe9, -0x82, 0x0b, 0xdb, 0xcf, 0x6c, 0xeb, 0xea, 0x4a, 0x81, 0x7b, 0xb7, 0x86, 0x41, 0x2b, 0x62, 0xb6, -0x3c, 0xc4, 0xaa, 0xd7, 0x9f, 0x79, 0x2a, 0x0c, 0xf7, 0xd1, 0x8c, 0x1f, 0xde, 0x32, 0x1a, 0xdf, -0xad, 0xc5, 0x37, 0x5c, 0x7f, 0xa6, 0x5e, 0xdb, 0xf1, 0xd1, 0xb3, 0x1e, 0xf1, 0xc4, 0x73, 0xbe, -0x92, 0x8f, 0xb6, 0x7b, 0x84, 0x13, 0xcf, 0xf5, 0xf4, 0xd0, 0x5c, 0xbd, 0xde, 0x08, 0xc3, 0x71, -0x91, 0x31, 0x3a, 0x42, 0x32, 0x26, 0xcf, 0x52, 0xec, 0x05, 0xcb, 0x84, 0x3e, 0x48, 0xce, 0xb9, -0x0d, 0x34, 0xe7, 0x70, 0x85, 0xff, 0x3d, 0xb7, 0x0a, 0x5e, 0x35, 0x40, 0xfd, 0xcc, 0x9e, 0x53, -0xe7, 0x2a, 0xc2, 0x7e, 0x14, 0xe6, 0xe3, 0x66, 0xab, 0x4b, 0xd8, 0x12, 0x27, 0x2c, 0xea, 0x21, -0x2c, 0x1a, 0x74, 0x8b, 0xf8, 0xdb, 0x43, 0xb0, 0xdb, 0xd2, 0xff, 0xa3, 0xde, 0xeb, 0x41, 0x0d, -0xbf, 0x1f, 0x6c, 0x33, 0xaf, 0x23, 0x0c, 0x59, 0xda, 0x96, 0xb5, 0x8e, 0x30, 0xe1, 0xfc, 0x98, -0x39, 0x8f, 0xe1, 0xc9, 0xab, 0x95, 0xc9, 0xa7, 0xe1, 0xa7, 0x63, 0x59, 0x79, 0x0c, 0x5f, 0x5e, -0x9d, 0x97, 0x7c, 0x1a, 0xee, 0xff, 0xcd, 0xb9, 0xc4, 0xe5, 0xda, 0x9f, 0xba, 0xcd, 0x37, 0xc8, -0x97, 0x38, 0x29, 0x05, 0x51, 0x34, 0xa0, 0x33, 0x6a, 0x2e, 0x6d, 0x82, 0x33, 0xfd, 0x3b, 0x2e, -0xfd, 0x3f, 0xe8, 0xcc, 0xff, 0x1f, 0x3b, 0x8d, 0x7f, 0x0b, 0x84, 0xb5, 0x11, 0x10, 0x3b, 0xb2, -0x84, 0x2f, 0x5b, 0x6f, 0x32, 0x3e, 0x29, 0xb0, 0x10, 0xe2, 0xfb, 0xca, 0x49, 0x24, 0x3e, 0xc1, -0x7d, 0x61, 0xda, 0x20, 0xc8, 0xd6, 0x69, 0xe6, 0x1f, 0x8a, 0x25, 0x8f, 0x9a, 0x36, 0xa6, 0x3f, -0x62, 0xee, 0x9f, 0xf2, 0xb0, 0xa5, 0x77, 0xea, 0x7a, 0x6b, 0xcf, 0xb4, 0xee, 0x8c, 0xae, 0x9b, -0xd6, 0xe5, 0x1a, 0x8b, 0x72, 0xcd, 0x72, 0x2e, 0x2c, 0x98, 0xf4, 0xb0, 0x24, 0xf9, 0x20, 0x4f, -0x7a, 0x10, 0x2b, 0x73, 0x8d, 0x32, 0x7b, 0x6a, 0x9e, 0xf4, 0xad, 0x38, 0xf9, 0x70, 0xef, 0x8d, -0x3f, 0x89, 0xa3, 0x79, 0x97, 0xb0, 0x87, 0x92, 0x5c, 0x28, 0x4d, 0x86, 0xd4, 0x24, 0x43, 0x30, -0x59, 0xf1, 0x84, 0x64, 0x0f, 0x4d, 0xca, 0x72, 0xb4, 0xb6, 0xf7, 0xdc, 0xb8, 0xb4, 0xcf, 0x81, -0x13, 0x70, 0x38, 0x5d, 0x46, 0x5a, 0x26, 0x2d, 0x6f, 0x14, 0x4e, 0xe9, 0x1b, 0xcd, 0x8f, 0x4c, -0xe9, 0xb7, 0x3c, 0x3c, 0xb5, 0xd7, 0xba, 0x7e, 0x5a, 0x4f, 0x46, 0xf7, 0x4d, 0x5d, 0xb6, 0x1f, -0x4c, 0x2a, 0xb0, 0x24, 0xf9, 0xf0, 0xad, 0x89, 0x25, 0x6b, 0xa0, 0x11, 0x43, 0xec, 0x09, 0x5b, -0xf2, 0xe0, 0x0d, 0x62, 0x5c, 0x37, 0x65, 0x71, 0x2e, 0xfc, 0xe0, 0xff, 0x1d, 0x74, 0xfa, 0x27, -0x81, 0x60, 0xb4, 0x8e, 0xd5, 0x13, 0x81, 0xa2, 0xd5, 0x80, 0x50, 0x93, 0xee, 0x74, 0xa7, 0x3b, -0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, -0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, -0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, -0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, -0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, -0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, -0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, -0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, -0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, -0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, -0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, -0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, -0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, -0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, -0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0xfe, -0x4a, 0x37, 0xd2, 0x3b, 0xf0, 0x2b, 0x30, 0x03, 0x40, 0x16, 0xdc, 0x0a, 0xd9, 0xf0, 0x65, 0xc8, -0x81, 0xaf, 0xc0, 0x8c, 0x44, 0xe2, 0x7f, 0x01, 0x80, 0xd8, 0xab, 0xdd, 0x00, 0x00, 0x10, 0x00 +unsigned char arosrom[] = +{ + 0x1f, 0x8b, 0x08, 0x08, 0xd7, 0x57, 0xa9, 0x4f, 0x02, 0x0b, 0x61, 0x72, 0x6f, 0x73, 0x2e, 0x72, + 0x6f, 0x6d, 0x00, 0xdc, 0xfd, 0x0f, 0x7c, 0x53, 0xc7, 0x95, 0x37, 0x0e, 0x1f, 0x5d, 0x5f, 0x0b, + 0x61, 0x14, 0x23, 0x1c, 0xc7, 0x51, 0x5d, 0x2f, 0xbd, 0x51, 0x85, 0x22, 0x64, 0x61, 0x09, 0xc5, + 0x71, 0x1c, 0xe3, 0x35, 0xb2, 0x2c, 0x1b, 0x59, 0x18, 0xd7, 0x91, 0x5d, 0xca, 0xe6, 0xe1, 0xc9, + 0xde, 0x12, 0x90, 0xf8, 0xe3, 0x7f, 0x75, 0x5d, 0x1e, 0xca, 0xe3, 0x87, 0xca, 0xc6, 0x10, 0x93, + 0x90, 0x40, 0x08, 0x61, 0xd9, 0x34, 0xdb, 0x5f, 0x9e, 0x3e, 0x79, 0xba, 0x84, 0xfc, 0x73, 0x28, + 0x4b, 0x29, 0xa5, 0x59, 0x43, 0x48, 0x96, 0x50, 0x9a, 0xc7, 0x71, 0x68, 0x96, 0x66, 0x69, 0x62, + 0x58, 0x4a, 0x08, 0x21, 0x09, 0x9b, 0xa5, 0x59, 0x96, 0x38, 0xdc, 0xf7, 0x7b, 0xe6, 0x5e, 0xc9, + 0x36, 0x90, 0xb6, 0xe9, 0xee, 0xf3, 0x7b, 0xdf, 0xcf, 0x6b, 0xb8, 0xba, 0xf7, 0xce, 0xcc, 0x9d, + 0x39, 0x73, 0xe6, 0xcc, 0x99, 0x73, 0x66, 0xce, 0x9c, 0x99, 0x92, 0x5b, 0xff, 0xef, 0x74, 0x89, + 0x24, 0x22, 0x4d, 0xa3, 0x22, 0xca, 0xe2, 0x4b, 0xc3, 0x5f, 0x65, 0xec, 0x6b, 0x8d, 0x4a, 0xf5, + 0x82, 0x26, 0xa5, 0x7a, 0x55, 0xe7, 0x92, 0xd6, 0x6f, 0x2f, 0x6b, 0x6b, 0x55, 0xea, 0x96, 0x2d, + 0xea, 0xf8, 0x66, 0xc7, 0xb2, 0x25, 0xdf, 0xa6, 0xaa, 0xb6, 0xf6, 0xef, 0x76, 0x2c, 0x4b, 0x2c, + 0xed, 0x54, 0x9e, 0x52, 0x02, 0xfe, 0x99, 0x33, 0x15, 0x6a, 0x5a, 0xba, 0x44, 0x11, 0x9f, 0x84, + 0x97, 0xac, 0x5c, 0xd2, 0xdc, 0xd6, 0xde, 0xb2, 0xa4, 0xb5, 0x53, 0x69, 0x5a, 0xf2, 0xcd, 0x16, + 0xaf, 0x42, 0x95, 0xcd, 0xcd, 0x4a, 0x8c, 0x53, 0x7f, 0x5b, 0x89, 0x2d, 0xf9, 0xf6, 0x92, 0x8e, + 0x95, 0x4b, 0x16, 0x17, 0x91, 0x3f, 0x50, 0xe4, 0xbf, 0xbd, 0x08, 0x1f, 0x07, 0xe8, 0x3f, 0xf7, + 0x6f, 0xd8, 0xe2, 0xc6, 0x25, 0xd3, 0xf0, 0x84, 0x11, 0xdc, 0xf1, 0x3e, 0xc5, 0x4f, 0xc3, 0x13, + 0x8f, 0xd1, 0xf0, 0xe4, 0x26, 0xdc, 0x87, 0xb9, 0x6e, 0xff, 0xe1, 0x32, 0x9c, 0xf3, 0xab, 0x63, + 0x65, 0xca, 0x8a, 0x25, 0xdf, 0x6d, 0xf9, 0x66, 0x7b, 0x51, 0xb3, 0x40, 0xcb, 0x77, 0x95, 0xe2, + 0x99, 0x45, 0x01, 0xc5, 0x1d, 0x28, 0xd2, 0x6b, 0x35, 0xfd, 0x86, 0x2c, 0x1a, 0x9f, 0x80, 0x28, + 0x0a, 0x88, 0x4c, 0xcd, 0x34, 0x9c, 0x73, 0xbe, 0x7b, 0xfa, 0x44, 0x40, 0x69, 0x5a, 0x88, 0x6b, + 0x16, 0xae, 0x8d, 0xe9, 0x9c, 0x43, 0x34, 0x4c, 0x83, 0x46, 0x3d, 0x16, 0x9a, 0x24, 0x49, 0x96, + 0x64, 0xd9, 0x72, 0x1d, 0x08, 0x4c, 0x57, 0xbd, 0xdb, 0xae, 0x89, 0xb7, 0xd1, 0x94, 0x31, 0xef, + 0x96, 0x6b, 0xe2, 0x2d, 0x34, 0x71, 0xdc, 0xf7, 0x16, 0xb2, 0x5f, 0xf3, 0x3d, 0xa7, 0xb1, 0xd3, + 0x97, 0x0c, 0x38, 0xe4, 0xeb, 0x94, 0x6f, 0xbb, 0xaa, 0x3c, 0xcb, 0x55, 0xf9, 0xa7, 0xf2, 0x1d, + 0x0f, 0x8f, 0xc9, 0xf8, 0x47, 0x26, 0xfd, 0x32, 0x49, 0x19, 0xe2, 0xe2, 0x28, 0x93, 0x49, 0xc4, + 0x49, 0x19, 0xfc, 0x6e, 0x42, 0xd1, 0x19, 0x22, 0x4e, 0xce, 0x34, 0x4f, 0xc8, 0x48, 0xfd, 0x49, + 0xc6, 0xbf, 0x0c, 0x49, 0xbf, 0x24, 0x13, 0x89, 0x8b, 0xa3, 0x24, 0x49, 0xc4, 0x71, 0x26, 0xfc, + 0xc6, 0x25, 0xf0, 0xdb, 0x15, 0x6e, 0xf7, 0x61, 0xe0, 0x72, 0x58, 0x8e, 0xd0, 0x70, 0x26, 0x5f, + 0x0d, 0xb8, 0x16, 0xe0, 0xda, 0x4e, 0xc3, 0x66, 0xbe, 0x9e, 0xc8, 0x90, 0xbe, 0x3f, 0x7b, 0x8d, + 0x49, 0x96, 0x32, 0x27, 0x7e, 0xff, 0x6e, 0x49, 0xce, 0x30, 0x7f, 0xbf, 0xea, 0xfb, 0x4a, 0x50, + 0x3c, 0x84, 0xbf, 0xaf, 0x54, 0x02, 0x07, 0xe6, 0xef, 0x87, 0xbe, 0xdf, 0x28, 0xee, 0x95, 0xdf, + 0x6f, 0x02, 0x42, 0x2c, 0xdf, 0x2f, 0xbe, 0x7d, 0xcd, 0xf7, 0x6f, 0xbf, 0x7d, 0x8d, 0xfe, 0x5c, + 0x8c, 0xe7, 0x62, 0xe3, 0xf9, 0x36, 0x3c, 0xdf, 0x66, 0x3c, 0x07, 0xf0, 0x1c, 0x30, 0x9e, 0x67, + 0xe2, 0x79, 0xa6, 0xf1, 0xec, 0xc7, 0xb3, 0x5f, 0x7f, 0x0e, 0x20, 0xfc, 0x36, 0x23, 0x3c, 0x80, + 0xf0, 0xdb, 0xfc, 0x6b, 0x32, 0x64, 0x79, 0xc2, 0xf7, 0xef, 0x5c, 0xf3, 0xfd, 0x99, 0x77, 0xea, + 0x8f, 0xa5, 0x78, 0x2c, 0xd5, 0x1f, 0xef, 0xc0, 0xe3, 0x1d, 0xfa, 0x63, 0x09, 0x1e, 0x4b, 0xf4, + 0x47, 0x80, 0x32, 0xf3, 0x76, 0xfd, 0x11, 0x90, 0xcc, 0x2c, 0xd6, 0x1f, 0x01, 0xc8, 0xcc, 0xdb, + 0xf4, 0x47, 0xc0, 0x31, 0x33, 0xa0, 0x3f, 0xa2, 0xb8, 0x99, 0x33, 0xf5, 0x47, 0x94, 0x36, 0xd3, + 0xbf, 0x66, 0x42, 0x06, 0xa3, 0x57, 0xa0, 0x78, 0x82, 0x69, 0x42, 0x92, 0x26, 0x4c, 0xb8, 0x15, + 0xff, 0xf1, 0x37, 0x61, 0x02, 0xde, 0x88, 0x8c, 0xb7, 0x5b, 0x27, 0x98, 0x4c, 0x49, 0x7e, 0xcf, + 0x98, 0xc0, 0x7f, 0xfc, 0x6a, 0xe2, 0x57, 0x5a, 0xa3, 0xae, 0x51, 0x6f, 0xf9, 0xe9, 0x2d, 0x33, + 0x83, 0xbb, 0x82, 0x81, 0xaf, 0xfe, 0xf8, 0xab, 0xb7, 0x39, 0x7f, 0xe8, 0x2c, 0x9e, 0xb6, 0x7f, + 0xda, 0xed, 0xf7, 0xfc, 0xfc, 0x9e, 0x12, 0xd7, 0x8b, 0xae, 0x3b, 0x3c, 0x3f, 0xf1, 0x94, 0xba, + 0x9f, 0x76, 0xdf, 0x39, 0xfd, 0x67, 0xd3, 0xfd, 0x7f, 0x39, 0xe3, 0x2f, 0x67, 0x14, 0xfe, 0x79, + 0xe1, 0x9f, 0x77, 0x2d, 0xec, 0x5a, 0xc8, 0xdf, 0xfa, 0xf1, 0xf7, 0xf2, 0x6f, 0xef, 0xfa, 0x56, + 0x7f, 0xff, 0x37, 0xfe, 0x1b, 0xda, 0x61, 0xc7, 0x73, 0xcf, 0xc5, 0x3a, 0xde, 0xbe, 0xd2, 0xd4, + 0x89, 0xe7, 0x57, 0x70, 0x9d, 0x46, 0x5f, 0x96, 0x70, 0x29, 0x7b, 0xf6, 0x34, 0xb4, 0xff, 0xf7, + 0xff, 0xf2, 0xdf, 0xff, 0xcb, 0xff, 0xf8, 0xaf, 0xff, 0xe3, 0xbf, 0x1a, 0xdf, 0xcd, 0xc4, 0x15, + 0xc0, 0x75, 0x1b, 0xe2, 0x2b, 0xfe, 0xf6, 0x9d, 0xc6, 0x6f, 0x0f, 0x5e, 0x08, 0x2f, 0xc6, 0x33, + 0x7a, 0xd6, 0x04, 0xf4, 0xb4, 0x09, 0x5d, 0xb8, 0x36, 0xe2, 0x7a, 0xfc, 0x7f, 0xfd, 0xaf, 0xba, + 0xe6, 0xb2, 0x59, 0x65, 0xb3, 0x1c, 0xb7, 0x3a, 0x6e, 0x4d, 0x91, 0x21, 0xbe, 0x2b, 0xc6, 0x75, + 0x3b, 0xae, 0x92, 0x9f, 0x3d, 0x5d, 0x51, 0xfe, 0xcc, 0x0b, 0x77, 0xaf, 0xfe, 0xb7, 0x7f, 0x5c, + 0xb0, 0xea, 0x1f, 0xde, 0xad, 0xba, 0x77, 0xe7, 0xce, 0xf9, 0x2b, 0xf7, 0xed, 0x0b, 0x2d, 0xc2, + 0xb7, 0xcf, 0xfc, 0xfd, 0xde, 0x79, 0x2d, 0xe5, 0xde, 0x72, 0x6f, 0x45, 0x51, 0x45, 0xd1, 0x6c, + 0xdf, 0x6c, 0x9f, 0xf1, 0x6d, 0x11, 0xae, 0x3b, 0x70, 0x95, 0xe2, 0xba, 0x13, 0xfc, 0x33, 0x43, + 0x33, 0x5d, 0x21, 0xed, 0xef, 0xb5, 0x8f, 0xf0, 0xef, 0xdf, 0x1c, 0x54, 0x49, 0xb2, 0x44, 0x95, + 0x95, 0x95, 0x7c, 0x8d, 0xfd, 0x63, 0x8a, 0xa4, 0x60, 0x72, 0xdc, 0x5f, 0xa8, 0x32, 0x1c, 0x1e, + 0x1f, 0x82, 0x72, 0x8f, 0x58, 0xf0, 0x47, 0xc3, 0x19, 0x53, 0x6e, 0xc0, 0x1f, 0x51, 0x16, 0xae, + 0xef, 0x7f, 0xf9, 0x7b, 0xf8, 0x43, 0xd8, 0x4a, 0x5c, 0xcb, 0x71, 0xdd, 0x33, 0x03, 0x7f, 0xb8, + 0x3f, 0x84, 0x2b, 0x80, 0xcb, 0x83, 0xcb, 0x8e, 0xeb, 0x16, 0x5c, 0x9f, 0xe1, 0xfa, 0x18, 0xd7, + 0xbb, 0xb8, 0x4e, 0xe0, 0x7a, 0x1d, 0x17, 0xf0, 0x99, 0xf1, 0x33, 0x5c, 0xfd, 0xb8, 0xfe, 0x37, + 0xae, 0xc7, 0xfe, 0x8b, 0xfb, 0xbf, 0xb8, 0xff, 0xeb, 0xf4, 0xff, 0x3a, 0xdd, 0x87, 0x3f, 0x0f, + 0xfe, 0x0a, 0xf1, 0x87, 0x70, 0xeb, 0x9f, 0xce, 0x7f, 0x33, 0x62, 0xb8, 0x7a, 0x70, 0xd5, 0xe0, + 0x2a, 0xfb, 0x8f, 0xb2, 0xda, 0x39, 0xff, 0x4a, 0x5d, 0x82, 0x2f, 0xd8, 0x4c, 0x37, 0xd3, 0x53, + 0xf8, 0x97, 0x89, 0x7f, 0xeb, 0x68, 0xdd, 0x92, 0xf7, 0xce, 0x9e, 0x5b, 0xf2, 0xfe, 0x92, 0xea, + 0x57, 0x0f, 0x1f, 0xa9, 0xfe, 0x45, 0xb5, 0x88, 0x7d, 0x92, 0xfe, 0x37, 0x7d, 0x09, 0xff, 0xfe, + 0x9a, 0xfe, 0xfa, 0xbb, 0x9f, 0x7d, 0xf7, 0xbb, 0xdf, 0xd5, 0xbe, 0xfb, 0x17, 0xbf, 0xf9, 0x0b, + 0xfe, 0x13, 0xb1, 0x7f, 0x87, 0x7f, 0x37, 0xe1, 0xdf, 0xa3, 0xf4, 0xe8, 0x77, 0x2e, 0xff, 0xfb, + 0xa7, 0xdf, 0x19, 0xf9, 0xce, 0xd7, 0xdf, 0xfa, 0xf5, 0x3f, 0x7d, 0xfd, 0xc4, 0xd7, 0x45, 0xec, + 0xff, 0xa4, 0x1f, 0x81, 0x5f, 0x4d, 0xa4, 0x0d, 0xb4, 0x61, 0xd9, 0x07, 0xe7, 0x3f, 0x5c, 0xf6, + 0xd1, 0xb2, 0xda, 0x5f, 0x1e, 0x7d, 0xad, 0xf6, 0xff, 0xd4, 0x8a, 0xd8, 0x4b, 0x74, 0x9c, 0x26, + 0xe3, 0xdf, 0x26, 0xda, 0xd4, 0xf6, 0xaf, 0x1f, 0x5f, 0xfc, 0xdd, 0x27, 0x6d, 0x5f, 0x7b, 0x63, + 0xe8, 0xd8, 0xaf, 0xde, 0xfc, 0x9a, 0x88, 0x3d, 0x43, 0xaf, 0x08, 0x6e, 0xd6, 0x4d, 0xdd, 0xdf, + 0x3c, 0x39, 0x7c, 0xea, 0x9f, 0x4f, 0xff, 0xb6, 0xf2, 0xc0, 0xc0, 0xc1, 0x97, 0x0e, 0xbd, 0x4c, + 0x71, 0xaa, 0xb1, 0x98, 0x2c, 0x26, 0x32, 0xe3, 0xdf, 0x7a, 0xfc, 0x4b, 0xd0, 0x1c, 0x8b, 0x64, + 0x91, 0x68, 0x02, 0xfe, 0xdd, 0x87, 0x7f, 0x4b, 0x29, 0x62, 0xc9, 0xb0, 0x64, 0x80, 0x47, 0x5a, + 0xa8, 0x0f, 0xff, 0x96, 0x53, 0xd4, 0x22, 0x63, 0xec, 0xca, 0xc2, 0xbf, 0xfb, 0xf1, 0x6f, 0x05, + 0xcd, 0xb5, 0x64, 0x5a, 0x32, 0x69, 0x12, 0xfe, 0x3d, 0x40, 0x0f, 0x88, 0xd2, 0x88, 0x9e, 0xa7, + 0x6c, 0xfc, 0x7b, 0x88, 0x1e, 0x6a, 0xc5, 0xdf, 0xbf, 0xb4, 0xb6, 0xd6, 0xe3, 0xef, 0xf5, 0xfa, + 0x7a, 0x93, 0x4c, 0x4f, 0x28, 0xbb, 0xd5, 0x7b, 0xd6, 0xec, 0xe8, 0x37, 0x06, 0x9e, 0x8e, 0x25, + 0xdf, 0x6e, 0xfb, 0x4e, 0xc7, 0xbd, 0x4b, 0xe8, 0x3b, 0xdf, 0xfe, 0x26, 0x5f, 0x33, 0x53, 0xdc, + 0x77, 0x78, 0xe2, 0x52, 0x7e, 0x68, 0xa7, 0xfa, 0xef, 0xf0, 0xe5, 0xcb, 0x6e, 0x6c, 0x25, 0xc5, + 0x97, 0x1d, 0xfa, 0xdb, 0xc8, 0x2a, 0x4d, 0x8b, 0x7c, 0x17, 0x63, 0xd0, 0xc5, 0xfa, 0x9f, 0x92, + 0x56, 0xbe, 0xf0, 0x6b, 0x1f, 0x91, 0xad, 0x9d, 0xbc, 0x7f, 0xc9, 0x69, 0x7c, 0xd9, 0x91, 0x55, + 0x64, 0x12, 0x17, 0xa7, 0x18, 0x19, 0x4d, 0x11, 0x4d, 0x26, 0xac, 0x31, 0xe4, 0x20, 0x15, 0x69, + 0xff, 0x46, 0xd9, 0xaa, 0xf4, 0x37, 0xaf, 0x29, 0xd9, 0xfc, 0x4d, 0xe4, 0x5d, 0x0a, 0x38, 0x83, + 0xb7, 0x77, 0x41, 0xba, 0xc8, 0x1b, 0xfb, 0xad, 0xc9, 0x3b, 0xe7, 0xdf, 0x49, 0x9b, 0x75, 0xb6, + 0xfe, 0x11, 0x7c, 0x6d, 0xc5, 0xd7, 0xa1, 0xd1, 0x92, 0x4d, 0x05, 0xf5, 0x8f, 0xf8, 0xb2, 0xc6, + 0xa6, 0x9e, 0x70, 0x81, 0x53, 0x97, 0x2f, 0x14, 0xa9, 0x0b, 0xa2, 0xc9, 0xf8, 0x02, 0x5f, 0xd6, + 0x98, 0xf4, 0xb2, 0x08, 0xb7, 0x71, 0x88, 0x91, 0x7b, 0x6e, 0x2a, 0xf7, 0x31, 0xa9, 0x9c, 0xf5, + 0x8f, 0xb4, 0x93, 0xdf, 0x43, 0xb6, 0x0e, 0x0a, 0x78, 0x28, 0xc7, 0x11, 0x7d, 0x64, 0x60, 0xb0, + 0xdb, 0x8b, 0x31, 0x99, 0xe4, 0xfa, 0xe7, 0xb4, 0x22, 0xe4, 0x60, 0x7f, 0xf4, 0x88, 0x92, 0x55, + 0xf7, 0x4e, 0x9d, 0xc0, 0x87, 0x2f, 0xab, 0xbd, 0xc8, 0x51, 0xce, 0xad, 0x9a, 0x4e, 0x53, 0xe6, + 0x0c, 0x02, 0x52, 0xff, 0xb4, 0x36, 0xb2, 0x52, 0x56, 0xe5, 0xbf, 0xd3, 0xb0, 0x74, 0xbe, 0xea, + 0x1c, 0x65, 0xb7, 0x2b, 0xa9, 0x14, 0x9f, 0x6d, 0xf6, 0x77, 0x51, 0xf1, 0xeb, 0x80, 0xc5, 0x11, + 0x4d, 0x7f, 0x95, 0xa5, 0x64, 0x39, 0xff, 0x32, 0x8d, 0x8b, 0x36, 0xb2, 0x4d, 0xeb, 0xe2, 0x2f, + 0xc9, 0x71, 0x53, 0x17, 0xda, 0xbc, 0x88, 0xdf, 0x26, 0xfc, 0x8a, 0xfc, 0x95, 0xe7, 0xa8, 0x78, + 0x5a, 0x84, 0xca, 0x43, 0x3b, 0xa9, 0x14, 0xcf, 0xa5, 0x78, 0x2e, 0x46, 0xee, 0xae, 0x54, 0x3e, + 0x57, 0xf2, 0x81, 0x13, 0xc6, 0xc5, 0x6f, 0xe7, 0x5c, 0xd6, 0x16, 0xd5, 0x3f, 0xd2, 0xb0, 0x09, + 0xb0, 0xd8, 0x8c, 0xb0, 0xf7, 0xf8, 0xbd, 0xdd, 0xa4, 0x4a, 0xed, 0x94, 0x82, 0x5f, 0x29, 0x22, + 0x07, 0x97, 0x5a, 0xff, 0xad, 0xaf, 0x7d, 0xa4, 0x75, 0x45, 0xde, 0x9d, 0x5d, 0xe1, 0x8b, 0x50, + 0x99, 0x2f, 0x48, 0x15, 0xae, 0x5a, 0x5f, 0x25, 0xdd, 0xbd, 0x7b, 0x84, 0x28, 0x2e, 0x3b, 0x5b, + 0xc9, 0x51, 0xda, 0x45, 0xee, 0x5f, 0x9f, 0x23, 0x9b, 0x67, 0x39, 0xe5, 0xce, 0xfd, 0x80, 0x9e, + 0xa8, 0xfa, 0x88, 0x92, 0x95, 0x1f, 0xd1, 0x13, 0xed, 0xd4, 0xf0, 0xeb, 0x86, 0xe3, 0xb1, 0x64, + 0x87, 0x6d, 0x57, 0x32, 0x7e, 0x31, 0xa7, 0x9c, 0x6e, 0x5d, 0x19, 0x7c, 0xe4, 0xd5, 0xd0, 0xf3, + 0x14, 0x50, 0xe5, 0xc6, 0x8d, 0x7f, 0xf1, 0x60, 0x3b, 0xd9, 0xbc, 0x9a, 0xa6, 0xb4, 0x68, 0x23, + 0x9d, 0x7f, 0x59, 0x23, 0x1d, 0x4a, 0xae, 0x52, 0xf6, 0xf6, 0xc4, 0x89, 0x9e, 0xec, 0x9a, 0x30, + 0xb0, 0x7e, 0x1e, 0xb0, 0x63, 0x7a, 0x7c, 0x35, 0xe5, 0x97, 0x58, 0x28, 0x24, 0xbf, 0xd7, 0xb7, + 0xb9, 0xcf, 0x1b, 0xfc, 0x0d, 0xcb, 0x3e, 0x4f, 0xfa, 0xa2, 0x54, 0xa2, 0xae, 0xb4, 0x42, 0x2a, + 0x88, 0x37, 0x17, 0xb8, 0xc9, 0xd4, 0x3e, 0x79, 0x60, 0xfd, 0xd9, 0xec, 0xdc, 0x92, 0x3e, 0x53, + 0x3f, 0x72, 0x6e, 0xcd, 0x9e, 0x2a, 0x55, 0xa3, 0xfc, 0xd7, 0x02, 0x16, 0xda, 0x3d, 0x21, 0x9e, + 0x3f, 0xd5, 0xf4, 0x76, 0xc6, 0x57, 0xee, 0xb3, 0xb4, 0x73, 0xd8, 0x4d, 0x3d, 0x16, 0xe2, 0x34, + 0x6d, 0x32, 0x6a, 0x11, 0x88, 0x9a, 0x13, 0xde, 0x1f, 0x0f, 0xb4, 0x64, 0x17, 0x70, 0xfa, 0x27, + 0x8e, 0x72, 0x7a, 0x73, 0x3c, 0xbf, 0xc0, 0x74, 0x22, 0x03, 0xef, 0x9b, 0x6f, 0x5a, 0x6f, 0x21, + 0x0e, 0xe7, 0x6f, 0x7e, 0x3c, 0xd0, 0x2c, 0x39, 0x82, 0xb1, 0xde, 0xa6, 0xbe, 0x7d, 0xbd, 0xad, + 0xeb, 0xd1, 0x02, 0x25, 0x8d, 0xdd, 0xcb, 0x49, 0xab, 0x70, 0xc7, 0x50, 0x63, 0xb9, 0x3d, 0xd8, + 0xbf, 0x36, 0x6e, 0xab, 0x3d, 0x4f, 0xc1, 0xb9, 0x1f, 0x98, 0xa8, 0x63, 0xf6, 0x4a, 0x52, 0x49, + 0x73, 0x39, 0x7c, 0x14, 0x88, 0x75, 0x03, 0x4f, 0x51, 0x9f, 0x29, 0xb2, 0x8c, 0x4c, 0x4c, 0xe9, + 0x7f, 0xbe, 0xb8, 0x61, 0x13, 0x4a, 0xbe, 0xc7, 0xd7, 0x46, 0x77, 0x53, 0x48, 0xa5, 0x8c, 0xb7, + 0x95, 0x36, 0x2a, 0x9b, 0x6a, 0x0b, 0x00, 0x7f, 0x6f, 0x00, 0x7f, 0x6e, 0xe0, 0x0f, 0xf9, 0x3c, + 0xd1, 0x6c, 0xf9, 0x4a, 0x17, 0x24, 0x9e, 0x45, 0xaa, 0xf9, 0x2b, 0xdc, 0xc2, 0x8b, 0x6c, 0x3e, + 0x5a, 0xc4, 0x7d, 0xee, 0x2b, 0x41, 0xba, 0xb7, 0x93, 0x56, 0x69, 0xab, 0x69, 0x25, 0x75, 0xdc, + 0x0a, 0x4a, 0x09, 0x76, 0x51, 0xc1, 0x04, 0x5f, 0x0d, 0xd5, 0xb7, 0xab, 0x03, 0xeb, 0x91, 0xf3, + 0x62, 0xdf, 0x5c, 0x5a, 0x0a, 0xdc, 0x6e, 0xf8, 0x8b, 0x8d, 0x88, 0x99, 0xae, 0x69, 0x88, 0xab, + 0x51, 0xbc, 0xda, 0x48, 0xd4, 0xdc, 0x42, 0xd2, 0x2e, 0x8b, 0x99, 0x32, 0x13, 0x44, 0x43, 0x5d, + 0xa6, 0xfd, 0x6b, 0xf1, 0xfe, 0xc3, 0x82, 0x72, 0x9a, 0x70, 0xf4, 0x79, 0xaa, 0xf1, 0xd6, 0xcc, + 0x15, 0xd8, 0xc6, 0x37, 0xb7, 0x9f, 0x25, 0x57, 0xcd, 0x3f, 0xfe, 0xe2, 0x1f, 0x07, 0x90, 0x53, + 0xcc, 0x15, 0xf4, 0x66, 0xbf, 0xf7, 0xd0, 0xe3, 0x49, 0xf3, 0x7a, 0x81, 0xf7, 0x1a, 0x2a, 0x99, + 0x77, 0xc1, 0x4e, 0xbe, 0x7a, 0x7c, 0x11, 0x54, 0xd7, 0xd8, 0x6e, 0x4c, 0x58, 0xc0, 0xe2, 0x4d, + 0xf1, 0x0e, 0xd5, 0xf9, 0x62, 0x21, 0xee, 0xcb, 0x3d, 0xc0, 0x4c, 0x17, 0x95, 0xdf, 0xbe, 0x97, + 0x14, 0xf3, 0x40, 0xef, 0x7e, 0xf4, 0x32, 0x8f, 0x8f, 0x6a, 0xdc, 0xd4, 0x49, 0x2b, 0x4d, 0x6a, + 0x1d, 0x5a, 0x1b, 0xa9, 0xe6, 0x7e, 0x62, 0x01, 0x33, 0x06, 0x25, 0x35, 0x03, 0x37, 0x45, 0x2f, + 0xfe, 0x59, 0xdc, 0x09, 0x1c, 0x94, 0xa0, 0x5f, 0xf9, 0xf7, 0x52, 0x74, 0x6d, 0xc2, 0xba, 0x7b, + 0xfd, 0x92, 0x1c, 0x87, 0x7c, 0x30, 0xd9, 0xdf, 0x1d, 0xcf, 0xe2, 0xaf, 0x9d, 0x66, 0x37, 0xbe, + 0x8e, 0xad, 0xdf, 0xff, 0x3c, 0xdd, 0xd3, 0x32, 0x88, 0xb4, 0xcd, 0xc0, 0x6c, 0x51, 0xd3, 0x03, + 0x3f, 0xf9, 0x88, 0x62, 0x71, 0xd2, 0xba, 0x54, 0x32, 0xbd, 0x65, 0xf1, 0x81, 0x37, 0xd6, 0xa2, + 0x66, 0x7b, 0xbb, 0x7e, 0x5f, 0x7d, 0x4a, 0xae, 0xa9, 0x4f, 0xcc, 0xa8, 0xcf, 0x7c, 0xe0, 0xae, + 0x48, 0x6d, 0x05, 0x84, 0x37, 0x7a, 0x18, 0xa7, 0x80, 0xf3, 0xc4, 0xf3, 0x54, 0xf4, 0xb3, 0x8f, + 0xa8, 0xa2, 0x75, 0xfe, 0x9e, 0x07, 0x5b, 0x63, 0x5e, 0xb4, 0x13, 0xe3, 0x12, 0x90, 0x47, 0xa9, + 0x59, 0x01, 0x04, 0xa0, 0x82, 0x1a, 0x55, 0x8a, 0xad, 0xff, 0xd9, 0x2b, 0x6d, 0xf2, 0xcf, 0xb3, + 0x12, 0x9f, 0xe0, 0xbd, 0x99, 0x73, 0xf9, 0xd9, 0x2b, 0x71, 0x27, 0x52, 0xc7, 0x50, 0xa3, 0x92, + 0xbd, 0xe4, 0x09, 0xee, 0x59, 0xdf, 0x92, 0x15, 0xed, 0x89, 0x03, 0x1f, 0x3f, 0x1b, 0x10, 0x35, + 0x9a, 0xef, 0xbe, 0xc1, 0x65, 0xee, 0x24, 0x51, 0x83, 0x92, 0xf8, 0x46, 0xc0, 0x9f, 0xaf, 0xb7, + 0x87, 0x29, 0x27, 0xd5, 0x1e, 0x9e, 0x9a, 0x39, 0xcc, 0x1b, 0x9c, 0x80, 0xe4, 0xb6, 0xe3, 0xc4, + 0x78, 0xf7, 0x06, 0xff, 0xea, 0x17, 0x5e, 0x60, 0x03, 0x25, 0xc4, 0xd4, 0x1a, 0x7f, 0x76, 0xff, + 0x84, 0x78, 0xa9, 0x68, 0x5b, 0x1f, 0xc5, 0xfe, 0xe9, 0x97, 0xf8, 0xf7, 0x8b, 0x7f, 0xfa, 0xa5, + 0xb7, 0x1c, 0xdf, 0x78, 0xcb, 0x6f, 0x5f, 0x4a, 0xd2, 0x7a, 0xd6, 0xc4, 0x5c, 0x35, 0x5c, 0xee, + 0xd1, 0xde, 0x9f, 0xbc, 0x12, 0x77, 0x78, 0x2c, 0x6f, 0x75, 0xbb, 0x27, 0x89, 0x76, 0xc8, 0x53, + 0xb2, 0x87, 0xd1, 0x97, 0x62, 0xa2, 0xfc, 0x96, 0xdd, 0xa9, 0x5c, 0xba, 0x26, 0x00, 0xc3, 0x35, + 0xe8, 0x7d, 0x1b, 0xa3, 0xcf, 0xd3, 0x62, 0xdc, 0x7b, 0xd1, 0x1a, 0x72, 0xb4, 0x27, 0xb1, 0x3a, + 0x3a, 0xa1, 0x59, 0xee, 0xb2, 0x9d, 0xdf, 0xeb, 0x0d, 0xb6, 0xcf, 0xae, 0x21, 0x6f, 0xf6, 0xc0, + 0xfa, 0xae, 0x20, 0xda, 0xb6, 0x00, 0x5f, 0xd5, 0x7b, 0xb3, 0x7f, 0x9e, 0xec, 0xfa, 0xca, 0xc0, + 0xfa, 0x44, 0xb6, 0x9e, 0xeb, 0x57, 0xda, 0xe8, 0x5e, 0xe0, 0xc5, 0x8c, 0xfb, 0x22, 0xaa, 0x01, + 0x31, 0xc8, 0x05, 0x0c, 0x75, 0x25, 0x95, 0x28, 0xd9, 0x6a, 0xd6, 0x70, 0x5f, 0xe3, 0x03, 0x7b, + 0xc0, 0x35, 0x12, 0x8e, 0x8e, 0xd9, 0x35, 0xa6, 0x83, 0x49, 0x4f, 0x65, 0x47, 0x70, 0xd7, 0x83, + 0xf1, 0xb3, 0x2a, 0xd1, 0x27, 0x0c, 0xe1, 0x2a, 0xb2, 0x23, 0xb5, 0x80, 0x52, 0x46, 0x2b, 0x8b, + 0x5e, 0xf6, 0x59, 0xb1, 0x23, 0x86, 0x7e, 0x21, 0xa3, 0xcc, 0xbe, 0xb8, 0xad, 0xea, 0x3d, 0x0a, + 0xd6, 0x9e, 0xe7, 0x5e, 0xf6, 0xf0, 0x61, 0x95, 0x3e, 0x2b, 0x70, 0xb5, 0xd1, 0x52, 0xc0, 0x49, + 0xf4, 0xa3, 0x68, 0xcf, 0x37, 0x0e, 0x44, 0xba, 0x77, 0xa3, 0x77, 0xc7, 0x06, 0x22, 0xc9, 0xc8, + 0x40, 0x38, 0x59, 0x56, 0x59, 0xf9, 0x3b, 0x8b, 0xa4, 0x58, 0x1e, 0x7e, 0x9e, 0x42, 0x2b, 0x88, + 0xfa, 0x50, 0x97, 0x85, 0x1c, 0x7f, 0x6f, 0x8d, 0xcf, 0x87, 0x5e, 0x29, 0x71, 0x8f, 0xac, 0xc8, + 0x6d, 0xd8, 0x04, 0x4e, 0xb5, 0x39, 0xaf, 0xdf, 0x42, 0xe0, 0x5a, 0x4f, 0xdc, 0xfc, 0x2d, 0x28, + 0x1f, 0xa6, 0xd1, 0xf8, 0x3f, 0xef, 0x6b, 0xd8, 0x34, 0x0f, 0xf1, 0x37, 0xaf, 0x44, 0xb8, 0xc4, + 0x3c, 0xed, 0xe6, 0x76, 0x3c, 0x65, 0x2c, 0x78, 0x40, 0xb5, 0xe5, 0xfd, 0xc4, 0xdd, 0xce, 0x9c, + 0xee, 0xe6, 0x6f, 0xb9, 0xf1, 0x4d, 0xd3, 0x03, 0x79, 0xeb, 0x6e, 0x0e, 0xf3, 0xfd, 0xaf, 0x9e, + 0xa7, 0x8a, 0x7f, 0x7c, 0x9e, 0xca, 0x80, 0xc7, 0x8a, 0x38, 0x8d, 0x4c, 0x05, 0x9e, 0xee, 0xde, + 0x0c, 0x18, 0x54, 0x73, 0x3b, 0x81, 0xbf, 0x6a, 0x75, 0xef, 0x74, 0x8d, 0x60, 0xac, 0xe8, 0xad, + 0xff, 0xce, 0x57, 0x80, 0x7b, 0xae, 0x27, 0x5a, 0xb6, 0xde, 0xc0, 0x23, 0x5d, 0xb9, 0x04, 0xee, + 0x61, 0xa9, 0xff, 0x56, 0xfd, 0xd7, 0xb5, 0xb3, 0x91, 0x77, 0x95, 0x32, 0x57, 0xa4, 0xb0, 0x56, + 0x3b, 0x57, 0x58, 0xa9, 0x7d, 0x18, 0x7a, 0x56, 0xfb, 0x78, 0x94, 0xe7, 0x5a, 0x41, 0xa3, 0x24, + 0xc7, 0xc9, 0xf4, 0x43, 0x8c, 0x33, 0xe4, 0x2f, 0x24, 0x74, 0x02, 0xfc, 0x9a, 0x7d, 0x14, 0x69, + 0xd1, 0x3e, 0x01, 0xec, 0xc3, 0x53, 0x56, 0x8a, 0x71, 0x35, 0x98, 0x20, 0xd3, 0x1a, 0x50, 0xf6, + 0x0c, 0xed, 0x93, 0x8e, 0xaf, 0x30, 0xd6, 0x3b, 0x95, 0xdd, 0xdd, 0xc0, 0xd8, 0xf6, 0xdc, 0x72, + 0x0a, 0xe2, 0xa9, 0x21, 0xda, 0x8d, 0x5c, 0x16, 0x76, 0x50, 0xce, 0x0c, 0x6d, 0x04, 0x61, 0x13, + 0x06, 0x7a, 0xde, 0xed, 0x53, 0x2a, 0x5f, 0x07, 0xaf, 0x95, 0x9e, 0xb1, 0xf9, 0x2d, 0x18, 0xaa, + 0x34, 0x0d, 0x79, 0x94, 0x39, 0x66, 0x68, 0x97, 0xf0, 0x7c, 0x25, 0x6e, 0x96, 0x4c, 0xda, 0xff, + 0xa3, 0x66, 0x47, 0x92, 0xe0, 0x40, 0x19, 0x9b, 0x07, 0x14, 0xcb, 0xbb, 0x7d, 0xc3, 0x4f, 0x7d, + 0xb9, 0x52, 0xa4, 0xca, 0x55, 0x57, 0xea, 0x39, 0x75, 0x8e, 0xcd, 0xa7, 0x79, 0x34, 0x1f, 0xfa, + 0x18, 0xfc, 0xfe, 0xd2, 0x20, 0x45, 0x92, 0x81, 0x20, 0xa0, 0xf2, 0x6f, 0x27, 0x1f, 0xff, 0x9a, + 0x22, 0xc0, 0x2b, 0xe8, 0xe0, 0xe0, 0x1f, 0xf8, 0x7a, 0xb7, 0xd7, 0xf8, 0xda, 0x1f, 0xb4, 0x95, + 0xf4, 0xd1, 0x97, 0x57, 0xf6, 0x99, 0x34, 0x2d, 0x4a, 0x71, 0x7d, 0xb4, 0x6f, 0xd1, 0x34, 0x75, + 0x0d, 0x78, 0x92, 0x05, 0x29, 0xef, 0x17, 0xbc, 0x89, 0xa8, 0x87, 0xf1, 0x03, 0xce, 0x33, 0xc9, + 0xc7, 0xbf, 0x59, 0x3e, 0xaa, 0x45, 0xdf, 0xca, 0xe9, 0xac, 0xdf, 0xca, 0x72, 0x83, 0x35, 0x88, + 0x5c, 0x4b, 0x02, 0x74, 0xb6, 0x32, 0x11, 0x28, 0x26, 0x29, 0x44, 0x93, 0x5f, 0x3e, 0x60, 0xa4, + 0xbf, 0x41, 0xa4, 0xb7, 0xa2, 0x69, 0xd2, 0x29, 0xe3, 0xb2, 0x5f, 0x52, 0xb3, 0xa4, 0x20, 0x4d, + 0x1e, 0x0c, 0xa9, 0x52, 0x28, 0x28, 0x60, 0xd5, 0x7e, 0x73, 0x40, 0x99, 0x37, 0xa5, 0x84, 0x88, + 0x21, 0xf0, 0x59, 0x00, 0xc3, 0x39, 0x81, 0xfd, 0x72, 0x21, 0x97, 0x04, 0x13, 0x66, 0xff, 0x0c, + 0xed, 0xa2, 0x68, 0xf7, 0x0f, 0x16, 0xca, 0xda, 0xb1, 0xfa, 0xff, 0xca, 0x63, 0xeb, 0x8c, 0x48, + 0x6a, 0x6c, 0xf5, 0x65, 0xf9, 0x24, 0xf0, 0x0e, 0xab, 0xd3, 0x47, 0xb9, 0x8a, 0x34, 0xb8, 0x93, + 0x2c, 0xfd, 0x3b, 0x49, 0x6e, 0xcd, 0xf7, 0x49, 0xa0, 0xc2, 0x5c, 0x5f, 0x0e, 0x53, 0xe1, 0x2c, + 0xcb, 0xaf, 0x10, 0xce, 0xf9, 0xf1, 0x08, 0x1d, 0x0a, 0x3a, 0xbf, 0xe2, 0x14, 0xd2, 0x80, 0x5f, + 0x01, 0x3f, 0xb4, 0x39, 0xda, 0xa8, 0xc0, 0xef, 0xa3, 0xbc, 0x80, 0x8f, 0xf2, 0x57, 0x52, 0x09, + 0x45, 0x33, 0x5a, 0x88, 0xde, 0xb4, 0x06, 0xe9, 0x7b, 0x18, 0x34, 0x5e, 0x0b, 0xb9, 0xc9, 0x2c, + 0x75, 0x33, 0x3f, 0xe8, 0xcc, 0x38, 0xd4, 0x9d, 0x30, 0x4f, 0xe9, 0x02, 0xdd, 0x98, 0x3b, 0xfd, + 0xfc, 0x4c, 0x6e, 0x48, 0x55, 0xe6, 0xf0, 0x81, 0xe5, 0xfc, 0x24, 0x93, 0x19, 0xdf, 0xcc, 0x5e, + 0x54, 0xda, 0x49, 0xc5, 0xe4, 0xbc, 0xcb, 0xb6, 0xcb, 0x4d, 0xc7, 0x7a, 0x9c, 0xcb, 0x48, 0xfe, + 0xd5, 0xc1, 0x5b, 0x3a, 0x40, 0xe1, 0xd2, 0x99, 0x88, 0x94, 0x14, 0xf9, 0x4c, 0x38, 0xb4, 0x76, + 0xa5, 0xe9, 0xb7, 0x4f, 0x23, 0xce, 0x92, 0x9b, 0x71, 0x08, 0xe3, 0xa6, 0x63, 0x19, 0x59, 0xd5, + 0xa0, 0x39, 0xa8, 0x0d, 0x88, 0x6f, 0x97, 0x91, 0x8d, 0xbf, 0x76, 0x49, 0x6f, 0xf2, 0xf7, 0xb9, + 0xbf, 0x7a, 0xe9, 0x96, 0x8e, 0xd2, 0x31, 0xdf, 0xaf, 0xc4, 0xf7, 0x79, 0x90, 0x8b, 0x44, 0x0e, + 0xf6, 0x74, 0x0e, 0x05, 0xaf, 0xcc, 0xb4, 0x50, 0xf8, 0x40, 0x3c, 0x2b, 0x2a, 0x09, 0xc8, 0x00, + 0x25, 0xa4, 0xde, 0x89, 0x89, 0xec, 0x68, 0xc6, 0x7c, 0xf4, 0xe8, 0x70, 0x50, 0x35, 0x87, 0x82, + 0xc0, 0xa3, 0xa9, 0xee, 0x1d, 0xd9, 0x0a, 0xcc, 0x7d, 0x5d, 0xbb, 0x04, 0x1c, 0xcd, 0x60, 0xd9, + 0xd2, 0x3f, 0x83, 0xb2, 0x7d, 0xfc, 0x9b, 0x25, 0xa8, 0xff, 0x52, 0xfd, 0xbe, 0x2b, 0xa7, 0x0d, + 0xda, 0x0f, 0x0b, 0xca, 0xbf, 0x84, 0x3e, 0x9b, 0x99, 0x28, 0x15, 0xed, 0x75, 0xe5, 0x73, 0x68, + 0x2b, 0xdf, 0xd1, 0xa2, 0x5d, 0x66, 0xba, 0x7a, 0xfd, 0xb0, 0x75, 0x26, 0x59, 0xfa, 0x28, 0x6e, + 0x09, 0x05, 0x6d, 0x33, 0xfb, 0x58, 0x26, 0xd2, 0x9c, 0x68, 0x43, 0x6e, 0xb9, 0xfa, 0x6f, 0xb1, + 0xac, 0x4b, 0xc3, 0xb7, 0x1e, 0xc6, 0xf5, 0x24, 0xae, 0xc7, 0x71, 0x3d, 0x41, 0xc3, 0x77, 0x95, + 0xd1, 0xb0, 0x8a, 0xeb, 0xde, 0x55, 0x34, 0xbc, 0xb4, 0x81, 0x86, 0x5f, 0x3a, 0x4b, 0xc3, 0x03, + 0x47, 0x69, 0xf8, 0xb9, 0x5e, 0x1a, 0x7e, 0xfc, 0x10, 0x0d, 0x37, 0x3f, 0x43, 0xc3, 0x18, 0x08, + 0x87, 0x77, 0x43, 0x1f, 0xf5, 0xe2, 0x1b, 0xdf, 0x71, 0x1a, 0x6e, 0x85, 0xdc, 0xd6, 0x59, 0x40, + 0xc3, 0x5b, 0x72, 0x71, 0x6d, 0xa7, 0xe1, 0xbf, 0xbd, 0x40, 0xc3, 0x3b, 0xa0, 0x77, 0x3d, 0x87, + 0xef, 0x77, 0x23, 0xbd, 0x17, 0xfa, 0x67, 0x85, 0x4c, 0xc3, 0x0f, 0x58, 0x11, 0x0f, 0x7d, 0xf4, + 0xdb, 0x2f, 0xd2, 0xf0, 0xec, 0x8b, 0x34, 0xbc, 0x15, 0x7a, 0xdd, 0x23, 0x11, 0x5c, 0xbb, 0x69, + 0xf8, 0xaf, 0x90, 0xff, 0xa3, 0x61, 0x84, 0xa1, 0x2e, 0xd3, 0x71, 0x7f, 0x0e, 0xf9, 0x6e, 0x43, + 0xd9, 0xdf, 0x5a, 0x4d, 0xc3, 0xd5, 0x4e, 0xa4, 0x47, 0x9a, 0x4a, 0xe4, 0x7f, 0x04, 0x63, 0xc3, + 0x0f, 0x51, 0xf6, 0xc3, 0x03, 0x34, 0xfc, 0x02, 0xf2, 0xfe, 0xe1, 0x5e, 0x1a, 0x5e, 0x80, 0xb2, + 0xff, 0x37, 0xbe, 0x59, 0xe8, 0xa5, 0xe1, 0xff, 0x05, 0x98, 0x7e, 0x81, 0xf2, 0xff, 0x3b, 0x74, + 0xbc, 0x1f, 0x72, 0x3e, 0xd0, 0x19, 0x9f, 0x43, 0xfc, 0x73, 0xa8, 0xcf, 0x23, 0x88, 0x53, 0x91, + 0xbe, 0xc5, 0x8f, 0x6b, 0x18, 0xe5, 0x20, 0xfc, 0x61, 0x94, 0xf1, 0x14, 0xee, 0x47, 0x50, 0xc6, + 0x26, 0x84, 0x83, 0x75, 0x0f, 0x2f, 0x6a, 0x42, 0xd9, 0x97, 0x68, 0xd8, 0x8d, 0x7c, 0xa6, 0xe3, + 0xfb, 0x3d, 0x9c, 0x1e, 0x75, 0xf8, 0x9f, 0xc0, 0x55, 0x0b, 0xc2, 0x1f, 0xd9, 0x0c, 0x98, 0x00, + 0xa7, 0x6f, 0x2b, 0xea, 0x0a, 0x7d, 0xba, 0x04, 0xb0, 0x77, 0xa3, 0x1e, 0x77, 0xa2, 0xfc, 0x1f, + 0xd8, 0x68, 0x78, 0x3b, 0x60, 0xbd, 0x17, 0xf9, 0x2f, 0x45, 0x9e, 0xad, 0x80, 0xb7, 0x7b, 0x90, + 0x86, 0xbf, 0x87, 0x6f, 0x96, 0xfd, 0x88, 0x86, 0x8f, 0xee, 0xc0, 0xf3, 0x31, 0x1a, 0xee, 0x01, + 0xfc, 0x6b, 0x8e, 0xd0, 0xf0, 0x46, 0xe0, 0xe8, 0x19, 0xc0, 0x70, 0x08, 0x78, 0x49, 0x86, 0x68, + 0x78, 0xbe, 0x4a, 0xc3, 0x4f, 0x14, 0xd3, 0xf0, 0x6b, 0xc0, 0x55, 0xf9, 0x02, 0xd4, 0x11, 0xe5, + 0xfc, 0x05, 0xee, 0x5e, 0xc0, 0xf2, 0x1c, 0xd2, 0xb8, 0x81, 0x97, 0x87, 0xd1, 0x3e, 0x9b, 0x83, + 0x80, 0x17, 0x65, 0x44, 0x71, 0xed, 0x40, 0xde, 0x07, 0x80, 0x93, 0x83, 0xc8, 0x77, 0x33, 0xca, + 0x7a, 0x19, 0x70, 0xfe, 0x0d, 0xde, 0x9b, 0xf1, 0xcd, 0x7f, 0xc3, 0xfb, 0x5f, 0xa3, 0x0e, 0x3e, + 0xc0, 0xe9, 0x43, 0xba, 0xe7, 0x10, 0xbe, 0x76, 0x27, 0x0d, 0x77, 0x9d, 0x07, 0xce, 0x50, 0xaf, + 0xa3, 0xa8, 0xc3, 0x93, 0x68, 0xff, 0xa3, 0x28, 0x77, 0x13, 0xf4, 0xe0, 0x6d, 0xb8, 0x8e, 0xe0, + 0xfa, 0x0e, 0xbe, 0x5b, 0x89, 0x76, 0xfe, 0x3b, 0xc6, 0x19, 0xe8, 0xa2, 0x06, 0xe5, 0xfd, 0xf5, + 0x42, 0x5d, 0xa7, 0xed, 0x07, 0xbe, 0x7a, 0x80, 0x8f, 0x1e, 0xe0, 0xf2, 0x7e, 0xc0, 0xf7, 0x00, + 0xf2, 0xda, 0xaa, 0x20, 0x6f, 0xe4, 0xf7, 0x2c, 0xea, 0xf2, 0xc0, 0xc5, 0x51, 0xfd, 0xd7, 0x8f, + 0xf6, 0xfb, 0x1f, 0x68, 0xa7, 0x07, 0x00, 0x43, 0x0b, 0xda, 0x63, 0x51, 0x33, 0x0d, 0xff, 0x08, + 0xdf, 0x3d, 0xb6, 0x14, 0xdf, 0xa3, 0x3e, 0x25, 0x78, 0x4f, 0xa2, 0x5d, 0x9f, 0x03, 0x3e, 0x76, + 0x03, 0x37, 0xcf, 0x01, 0x96, 0x17, 0x80, 0xc7, 0x9d, 0x6f, 0x01, 0xf6, 0xa5, 0x7a, 0x1e, 0x25, + 0xc0, 0xe7, 0x37, 0xdb, 0x81, 0x47, 0xc4, 0xef, 0x02, 0x1c, 0x1b, 0x51, 0x87, 0x39, 0x5b, 0xd0, + 0xce, 0x9d, 0xd7, 0xea, 0xdb, 0xcf, 0x23, 0xcf, 0x38, 0x70, 0x5e, 0x8d, 0x32, 0x1f, 0x41, 0x1d, + 0x9e, 0x41, 0x1b, 0xcc, 0x42, 0x7e, 0x7f, 0x8e, 0xf6, 0xf9, 0x7f, 0x00, 0xdf, 0xff, 0x04, 0x0c, + 0xbf, 0x44, 0xbd, 0xfe, 0x0f, 0xf0, 0xb1, 0x18, 0xb0, 0x27, 0x0a, 0xc6, 0x7d, 0x7f, 0x72, 0xd6, + 0x09, 0x3a, 0x59, 0x6e, 0xc6, 0x55, 0x84, 0x0b, 0x74, 0xf0, 0xf2, 0x0f, 0xfe, 0x13, 0xe7, 0x48, + 0x13, 0x1d, 0xdf, 0x6c, 0x5f, 0xba, 0xec, 0xde, 0x6f, 0x8f, 0x9d, 0x25, 0x2d, 0x1e, 0x3f, 0x4b, + 0x7a, 0x75, 0x12, 0x7d, 0x9e, 0x34, 0x6f, 0x2b, 0xa0, 0x59, 0xd5, 0x3d, 0x7d, 0x62, 0x25, 0x9e, + 0x7b, 0x70, 0xfd, 0x25, 0xae, 0xdd, 0xa9, 0xcc, 0xe5, 0x7b, 0x30, 0x0e, 0x5c, 0xd0, 0xeb, 0x7f, + 0x2b, 0xc6, 0x55, 0xe8, 0xf5, 0x24, 0xe6, 0x1b, 0x27, 0xe1, 0xca, 0xc2, 0xc5, 0xf3, 0x17, 0x99, + 0xb8, 0x26, 0xe0, 0x32, 0x1b, 0xf3, 0x92, 0x3c, 0xbf, 0xc8, 0x73, 0x98, 0x37, 0xe0, 0xca, 0xc6, + 0x35, 0x19, 0x17, 0x98, 0x1b, 0x2d, 0xc0, 0xa5, 0x8a, 0xe7, 0xe1, 0x69, 0xcb, 0x70, 0xb5, 0x18, + 0xf7, 0x6f, 0x19, 0xcf, 0xab, 0xae, 0xf3, 0xfe, 0x3d, 0x5c, 0xe8, 0x03, 0xd3, 0x36, 0xe0, 0xaa, + 0xc5, 0xf5, 0x10, 0xae, 0x47, 0x70, 0x6d, 0x37, 0x00, 0x74, 0x88, 0xb9, 0x5c, 0x22, 0x9e, 0xff, + 0x78, 0xe2, 0xf7, 0x84, 0x7d, 0x31, 0x94, 0x8e, 0x7b, 0x43, 0x15, 0x87, 0x5d, 0x25, 0xa9, 0xf9, + 0xdd, 0x64, 0x25, 0xea, 0x68, 0xe6, 0x39, 0x55, 0x45, 0xa3, 0xe1, 0x2f, 0x2f, 0x27, 0x50, 0xd7, + 0xcd, 0x67, 0xc6, 0xcd, 0x00, 0xf3, 0x3f, 0x7d, 0x3e, 0xd6, 0x42, 0x0a, 0x2e, 0x37, 0x2e, 0x3f, + 0xae, 0x52, 0x5c, 0x41, 0x5c, 0x11, 0x5c, 0x0d, 0xb8, 0x16, 0x10, 0x0f, 0xe7, 0x16, 0x5a, 0x8a, + 0xab, 0x1d, 0xd7, 0x2a, 0x5c, 0x49, 0x31, 0x43, 0x61, 0xa1, 0xcd, 0xb8, 0xb6, 0xe3, 0x7a, 0x02, + 0xd7, 0x0e, 0x5c, 0xfd, 0xb8, 0xf6, 0xe2, 0x1a, 0xc0, 0x75, 0x18, 0xd7, 0x20, 0xae, 0xe3, 0xb8, + 0x86, 0x71, 0x9d, 0xc5, 0x75, 0x01, 0xd7, 0x25, 0xc2, 0x60, 0x80, 0x0b, 0xe5, 0x9b, 0x50, 0xbe, + 0x09, 0xe5, 0x9b, 0x50, 0xbe, 0x09, 0xe5, 0x9b, 0x50, 0xbe, 0x09, 0xe5, 0x9b, 0x50, 0xbe, 0x09, + 0xe5, 0x9b, 0x50, 0xbe, 0x09, 0xe5, 0x9b, 0x50, 0xbe, 0x09, 0xe5, 0x9b, 0x50, 0xbe, 0x09, 0xe5, + 0x9b, 0x50, 0xbe, 0x09, 0xe5, 0x9b, 0x50, 0xbe, 0x09, 0xe5, 0x9b, 0x50, 0xbe, 0x09, 0xe5, 0x9b, + 0x50, 0xbe, 0x09, 0xe5, 0x9b, 0x50, 0xbe, 0x09, 0xe5, 0x9b, 0x50, 0xbe, 0x09, 0xe5, 0x9b, 0x50, + 0xbe, 0x09, 0xe5, 0x9b, 0x50, 0xbe, 0x09, 0xe5, 0x4b, 0x28, 0x5f, 0x42, 0xf9, 0x12, 0xca, 0x97, + 0x50, 0xbe, 0x84, 0xf2, 0x25, 0x94, 0x2f, 0xa1, 0x7c, 0x09, 0xe5, 0x43, 0x2e, 0xb0, 0x48, 0x28, + 0x5f, 0x42, 0xf9, 0x12, 0xca, 0x97, 0x50, 0xbe, 0x84, 0xf2, 0xa1, 0x52, 0x5b, 0x24, 0x94, 0x8f, + 0xd1, 0xcf, 0x22, 0xa1, 0x7c, 0x09, 0xe5, 0x4b, 0x28, 0x5f, 0x42, 0xf9, 0x12, 0xca, 0x97, 0x50, + 0xbe, 0x84, 0xf2, 0x25, 0x94, 0x2f, 0xa1, 0x7c, 0x09, 0xe5, 0x4b, 0x28, 0x5f, 0x42, 0xf9, 0x12, + 0xca, 0x97, 0x50, 0xbe, 0x84, 0xf2, 0x41, 0x7a, 0xff, 0x5f, 0xbd, 0xb8, 0xfd, 0x33, 0x50, 0xff, + 0x0c, 0xd4, 0x3f, 0x03, 0xf5, 0xcf, 0x40, 0xfd, 0x33, 0x50, 0xff, 0x0c, 0xd4, 0x3f, 0x03, 0xf5, + 0xcf, 0x40, 0xfd, 0x33, 0x50, 0xff, 0x0c, 0xd4, 0x3f, 0x03, 0xf5, 0xcf, 0x30, 0xda, 0x3f, 0x83, + 0x2f, 0xe0, 0x20, 0x03, 0x38, 0xc8, 0x00, 0x0e, 0x32, 0x80, 0x83, 0x0c, 0xe0, 0x20, 0x03, 0x38, + 0xc8, 0x00, 0x0e, 0x32, 0x80, 0x83, 0x0c, 0xe0, 0x20, 0x03, 0x38, 0xc8, 0x00, 0x0e, 0x32, 0x80, + 0x83, 0x0c, 0xe0, 0x20, 0x03, 0x38, 0xc8, 0x00, 0x0e, 0x32, 0x80, 0x83, 0x0c, 0xe0, 0x20, 0x03, + 0x38, 0x40, 0xd7, 0xb3, 0xc8, 0x80, 0x41, 0x06, 0x0c, 0x32, 0x60, 0x90, 0x01, 0x83, 0x0c, 0x18, + 0x64, 0xc0, 0x20, 0x03, 0x06, 0x19, 0x30, 0xc8, 0x80, 0x41, 0x06, 0x0c, 0x32, 0x60, 0x90, 0x01, + 0x83, 0x8c, 0xf2, 0x65, 0x94, 0x2f, 0xa3, 0x7c, 0x19, 0xe5, 0xcb, 0x28, 0x5f, 0x46, 0xf9, 0x32, + 0xca, 0x97, 0x51, 0xbe, 0x8c, 0xf2, 0x65, 0x94, 0x2f, 0xa3, 0x7c, 0x19, 0xe5, 0xcb, 0x28, 0x5f, + 0x46, 0xf9, 0x32, 0xca, 0x97, 0x51, 0xbe, 0x8c, 0xf2, 0x65, 0x94, 0x2f, 0xa3, 0x7c, 0xb0, 0x03, + 0x4b, 0x26, 0xca, 0xcf, 0x44, 0xf9, 0x99, 0x28, 0x3f, 0x13, 0xe5, 0x67, 0xa2, 0xfc, 0x4c, 0x94, + 0x9f, 0x89, 0xf2, 0x33, 0x51, 0x7e, 0x26, 0xca, 0xcf, 0x44, 0xf9, 0x99, 0x28, 0x3f, 0x13, 0xe5, + 0x67, 0xa2, 0xfc, 0x4c, 0x94, 0x9f, 0x89, 0xf2, 0x33, 0x51, 0x7e, 0x26, 0xca, 0xcf, 0x44, 0xf9, + 0x99, 0x28, 0x3f, 0x13, 0xe5, 0x67, 0xa2, 0xfc, 0x4c, 0x94, 0x9f, 0x89, 0xf2, 0x33, 0x51, 0x7e, + 0x26, 0xca, 0xcf, 0x44, 0xf9, 0x99, 0x28, 0x3f, 0x13, 0xe5, 0x67, 0xa2, 0xfc, 0xcc, 0x0b, 0xe9, + 0x36, 0x40, 0xd7, 0x2b, 0x20, 0xab, 0xff, 0x0b, 0x77, 0xfc, 0xa9, 0xe8, 0x83, 0xbf, 0xef, 0x2f, + 0xdb, 0xde, 0x0e, 0x6e, 0x86, 0xcc, 0x0b, 0x5e, 0xb2, 0x97, 0xc7, 0xd7, 0x14, 0x50, 0xc5, 0x9a, + 0x35, 0xe5, 0xf6, 0x55, 0xab, 0xec, 0x54, 0x41, 0xe4, 0x2f, 0xa5, 0x60, 0x70, 0xc0, 0xee, 0xb7, + 0xda, 0xbf, 0x15, 0xb7, 0x7f, 0x65, 0x2a, 0xee, 0x71, 0xbe, 0x56, 0x7d, 0x8b, 0x43, 0x88, 0x66, + 0xf3, 0x8b, 0x79, 0x80, 0xf4, 0x78, 0x22, 0x23, 0x9e, 0x54, 0x23, 0x9e, 0x03, 0x20, 0x22, 0x32, + 0xf0, 0xf1, 0x78, 0x45, 0xbc, 0xc4, 0x6e, 0xb7, 0x73, 0x32, 0x32, 0x97, 0xdb, 0xcb, 0xd7, 0x58, + 0xd7, 0x94, 0xaf, 0x29, 0x2f, 0xb7, 0xdb, 0xcd, 0xa4, 0xe2, 0xd6, 0x55, 0xde, 0x85, 0x72, 0xe3, + 0x6b, 0xcc, 0x71, 0xf5, 0xde, 0x9a, 0x72, 0xbc, 0x95, 0xaf, 0x89, 0xc7, 0xef, 0x8d, 0xc7, 0xd7, + 0xd8, 0x83, 0x76, 0x3b, 0xc0, 0x53, 0xc1, 0xa0, 0xb2, 0x49, 0xb5, 0x9b, 0xd5, 0x52, 0x03, 0x70, + 0x63, 0xc9, 0x09, 0x79, 0x52, 0xf9, 0x1a, 0xb2, 0x96, 0x38, 0xe2, 0x76, 0x35, 0xde, 0xed, 0xbc, + 0xcd, 0xdc, 0x4d, 0x71, 0xbb, 0x15, 0x98, 0x5a, 0x4d, 0xd4, 0x1e, 0x3e, 0xfa, 0xca, 0x2b, 0x5f, + 0x45, 0x9a, 0xf8, 0x43, 0xe4, 0x2c, 0xf7, 0xe3, 0xce, 0xcf, 0xd4, 0xfc, 0x1a, 0x87, 0xc4, 0x5f, + 0x89, 0xdb, 0xed, 0x4e, 0xb2, 0x0c, 0x94, 0xeb, 0xf1, 0x44, 0x46, 0x7c, 0x7c, 0xe4, 0x21, 0x11, + 0x6f, 0x97, 0xf8, 0x05, 0xb9, 0x32, 0xfc, 0x9a, 0xda, 0x5c, 0x00, 0x44, 0x94, 0x73, 0xb1, 0xd6, + 0x78, 0x69, 0xdc, 0x5a, 0xa0, 0xaa, 0x66, 0xc4, 0xda, 0xed, 0x6b, 0x90, 0xa8, 0x3c, 0x1e, 0x8f, + 0xab, 0x2a, 0x5e, 0xcd, 0xcd, 0xea, 0x7f, 0x8b, 0xf3, 0x9f, 0x6a, 0x17, 0xf0, 0x5b, 0xed, 0xaa, + 0xbd, 0x9c, 0xec, 0xe5, 0x6a, 0x39, 0x2a, 0x5d, 0x01, 0x54, 0xa8, 0xf6, 0x2e, 0xd4, 0xae, 0xa2, + 0xab, 0x02, 0xf5, 0x0b, 0x71, 0xfd, 0xec, 0xf6, 0xc0, 0x85, 0xb8, 0xbd, 0xc2, 0xbf, 0x0a, 0x48, + 0xa1, 0xbf, 0x09, 0xc7, 0xe9, 0xa7, 0xa8, 0x8f, 0x1d, 0xa5, 0xae, 0xb6, 0x93, 0x3f, 0x1c, 0xaf, + 0xab, 0x8b, 0xdb, 0xcb, 0xf5, 0x3f, 0x75, 0x0d, 0xfe, 0xf8, 0x21, 0x7e, 0x46, 0xbc, 0x37, 0xb7, + 0x72, 0x41, 0x2f, 0x8d, 0xc4, 0xf5, 0x68, 0x11, 0x55, 0x3e, 0x06, 0x35, 0xfa, 0xec, 0xb7, 0xf8, + 0x65, 0x10, 0xed, 0xa5, 0x36, 0xbf, 0x55, 0x5b, 0x43, 0x6b, 0xc8, 0xde, 0x6a, 0xb7, 0xda, 0xcb, + 0xbb, 0xba, 0xac, 0xe5, 0x15, 0x3c, 0x7c, 0x99, 0xad, 0xad, 0xf1, 0x2e, 0x35, 0xde, 0xd5, 0xa5, + 0xae, 0xb1, 0x9b, 0x57, 0xa9, 0xdf, 0x5b, 0xc9, 0xd9, 0x96, 0xe3, 0x93, 0x15, 0xdc, 0x3e, 0x7e, + 0xfb, 0x1a, 0xb2, 0x98, 0xbb, 0xd4, 0x0a, 0xb4, 0x60, 0x57, 0xa9, 0xb9, 0xd9, 0xbe, 0x3c, 0x5d, + 0xbf, 0x50, 0x79, 0xdc, 0xda, 0x6e, 0xcf, 0xae, 0x7b, 0x29, 0x6e, 0x6f, 0x5e, 0xa5, 0xd8, 0x29, + 0x4e, 0x2f, 0x94, 0x1f, 0xa5, 0xff, 0x8d, 0xe2, 0xfc, 0x56, 0x8a, 0x97, 0x01, 0xfe, 0xd2, 0xdb, + 0x16, 0x2c, 0xf0, 0xfa, 0xc5, 0x07, 0xf1, 0x36, 0x95, 0xff, 0x50, 0x5f, 0xfb, 0x27, 0x9f, 0x88, + 0x80, 0xd2, 0x35, 0xe2, 0xf6, 0x4a, 0x97, 0x59, 0xfc, 0x7d, 0x59, 0xe5, 0x37, 0x8e, 0x47, 0xeb, + 0x8b, 0x0a, 0xbd, 0xa6, 0x7f, 0xc8, 0xf8, 0xa7, 0xb8, 0xd9, 0xdf, 0x46, 0x06, 0xfe, 0xfd, 0x2b, + 0xed, 0x76, 0x6b, 0xb3, 0x39, 0x0e, 0xe2, 0x43, 0x14, 0x90, 0x05, 0x44, 0xa8, 0xc0, 0x7f, 0x6b, + 0x9c, 0xe1, 0x5f, 0x81, 0xda, 0xc4, 0xbb, 0xcc, 0x80, 0xef, 0x7b, 0xe5, 0x80, 0xde, 0xce, 0x5f, + 0x54, 0x20, 0x9e, 0xdb, 0x09, 0xf1, 0x3a, 0xfc, 0x2a, 0xd7, 0xef, 0x6e, 0xbb, 0x28, 0x8e, 0x26, + 0x33, 0xfe, 0xdb, 0x05, 0xfe, 0x89, 0xf1, 0x4f, 0xf6, 0xae, 0x55, 0xd0, 0x2d, 0x51, 0x10, 0xc5, + 0x03, 0x15, 0xbf, 0x16, 0x78, 0x5f, 0xb3, 0xa6, 0xcb, 0xbf, 0x0a, 0x7f, 0xfc, 0x41, 0xfc, 0x6d, + 0x01, 0x56, 0xb3, 0x8e, 0xa8, 0x91, 0x78, 0x85, 0xf8, 0xfb, 0x9e, 0x48, 0x27, 0xe2, 0x0d, 0xb0, + 0xdf, 0x4c, 0xc3, 0x0f, 0x05, 0xa8, 0x2b, 0x2e, 0x88, 0x8b, 0xa9, 0x59, 0x8d, 0xdb, 0xfd, 0x71, + 0x54, 0xde, 0x0f, 0xf2, 0x60, 0xfa, 0x27, 0x75, 0x4d, 0x8a, 0x7e, 0xe2, 0xcd, 0x2a, 0xa8, 0x46, + 0x6d, 0x6e, 0x06, 0xfc, 0xe5, 0xff, 0x0d, 0xc4, 0x87, 0x96, 0xc2, 0xd7, 0xa2, 0x7e, 0xf6, 0x0a, + 0xa6, 0x2f, 0x86, 0xbf, 0xab, 0x42, 0xe5, 0xf8, 0x35, 0xe5, 0x15, 0xa2, 0x7e, 0xe5, 0x20, 0x78, + 0xbf, 0x83, 0xb3, 0xea, 0x5e, 0x73, 0x1b, 0xe3, 0x9f, 0xff, 0x18, 0x7e, 0xea, 0x3a, 0x1a, 0x5f, + 0x74, 0x9b, 0x01, 0xc5, 0xd1, 0xa9, 0x29, 0xfc, 0x37, 0xeb, 0x88, 0x7d, 0x45, 0xfc, 0xda, 0x07, + 0x8c, 0xf8, 0xe3, 0xe9, 0xf6, 0x31, 0x02, 0xec, 0x67, 0x44, 0xfd, 0xba, 0xca, 0x05, 0xfe, 0xed, + 0x35, 0xb3, 0x04, 0xff, 0x01, 0xfc, 0xc1, 0x72, 0xd0, 0xa1, 0xb5, 0xbc, 0xdc, 0x5f, 0x5e, 0x2a, + 0xb0, 0x0b, 0xc0, 0xb8, 0xff, 0xaa, 0xe8, 0xbf, 0xf8, 0x7f, 0x6f, 0xbc, 0x5c, 0x2d, 0x01, 0xfd, + 0x94, 0xdb, 0xef, 0x8d, 0xdb, 0xd7, 0x4c, 0x35, 0xaf, 0x02, 0xc5, 0x55, 0x74, 0x95, 0x57, 0x94, + 0xdb, 0xcd, 0xf1, 0x72, 0xfc, 0x5f, 0x8e, 0x78, 0xb3, 0xda, 0x95, 0x5d, 0x81, 0x72, 0xac, 0x6b, + 0x98, 0xff, 0x5c, 0x58, 0x63, 0xa7, 0x35, 0x05, 0x68, 0x77, 0xa4, 0x24, 0x82, 0xd6, 0xca, 0xb7, + 0xef, 0x65, 0x09, 0x3a, 0xfe, 0x3f, 0x87, 0x12, 0xe5, 0x3a, 0x38, 0xff, 0xc7, 0x9a, 0xa2, 0xff, + 0x55, 0xaf, 0xe8, 0xa4, 0x3e, 0xc2, 0xbf, 0xf6, 0x81, 0x2e, 0x1d, 0xff, 0xff, 0x4d, 0x04, 0x5a, + 0xf1, 0x57, 0xae, 0xf7, 0x08, 0x12, 0x11, 0x40, 0xe1, 0x38, 0x86, 0x77, 0x15, 0x0b, 0xfd, 0x22, + 0x1c, 0x15, 0x3d, 0x49, 0xf4, 0x2f, 0x52, 0xcd, 0x46, 0xc8, 0xf5, 0x78, 0xeb, 0x1a, 0xfd, 0xa6, + 0xea, 0x79, 0x4b, 0xd9, 0xe9, 0xf5, 0x76, 0xfb, 0xe7, 0x64, 0xab, 0x7e, 0x5e, 0xbc, 0x58, 0x1d, + 0xf5, 0xab, 0xc8, 0xe6, 0xa4, 0xe3, 0x21, 0x5d, 0x62, 0xfd, 0xec, 0x63, 0x7d, 0x15, 0xe6, 0xca, + 0x22, 0x21, 0x95, 0x0e, 0x5f, 0x79, 0x86, 0xcb, 0x18, 0x95, 0xe8, 0xaf, 0x18, 0x16, 0x00, 0x5a, + 0x48, 0x4f, 0xa7, 0x2d, 0x17, 0xe9, 0x4e, 0x7e, 0xf9, 0xe3, 0xf1, 0xe9, 0xb4, 0x01, 0x5d, 0x82, + 0xff, 0x72, 0x8d, 0x48, 0x77, 0x32, 0xff, 0x31, 0x11, 0x7f, 0xf2, 0x4b, 0x6f, 0xeb, 0xe9, 0xbf, + 0xe4, 0x10, 0x12, 0xef, 0x49, 0x7b, 0x5c, 0x48, 0xc3, 0x27, 0x6f, 0xde, 0x29, 0xa4, 0xe1, 0x93, + 0x79, 0x1f, 0x0a, 0xc9, 0xf8, 0x64, 0x5e, 0x40, 0xc8, 0x85, 0x27, 0x6f, 0x5a, 0x2f, 0xa4, 0xe7, + 0x93, 0xb9, 0xcf, 0x08, 0xe9, 0xf9, 0xe4, 0x8d, 0x97, 0x84, 0x24, 0x7d, 0xf2, 0xc6, 0xb0, 0x10, + 0x33, 0x4f, 0xe6, 0xac, 0x16, 0x52, 0xf3, 0xc9, 0x29, 0xfd, 0x42, 0x72, 0x3e, 0x39, 0x25, 0x20, + 0xa4, 0xe7, 0x93, 0xb6, 0xdd, 0x62, 0x85, 0xff, 0xa4, 0x2d, 0x8a, 0xfb, 0x14, 0x3a, 0x39, 0x79, + 0x18, 0xf7, 0x1c, 0xdc, 0xb9, 0x5e, 0x37, 0xd2, 0xc9, 0xec, 0x4f, 0x70, 0xcf, 0xc5, 0xbd, 0x44, + 0x48, 0xe8, 0x3a, 0xbc, 0x79, 0xc6, 0xfd, 0x66, 0x3a, 0x79, 0xc3, 0x6a, 0x81, 0xb0, 0x93, 0xd6, + 0x17, 0x71, 0xff, 0x12, 0xee, 0x5c, 0xb7, 0x7c, 0x23, 0xfe, 0xcb, 0xc6, 0xbd, 0xc0, 0xb8, 0xff, + 0x99, 0x71, 0x9f, 0x6a, 0xdc, 0xbf, 0x62, 0xdc, 0x15, 0xe3, 0x7e, 0x8b, 0x71, 0x77, 0x18, 0xf7, + 0xaf, 0x1a, 0x77, 0xa7, 0x71, 0x9f, 0x66, 0xdc, 0x5d, 0xc6, 0xfd, 0x56, 0xe3, 0xee, 0x36, 0xee, + 0xd3, 0x8d, 0xbb, 0xc7, 0xb8, 0x17, 0x1a, 0x77, 0xaf, 0x71, 0x9f, 0x61, 0xdc, 0x8b, 0x8c, 0xbb, + 0xcf, 0xb8, 0xfb, 0x8d, 0xfb, 0x4c, 0xe3, 0x1e, 0x30, 0xee, 0xb7, 0x19, 0xf7, 0x62, 0xe3, 0x7e, + 0xbb, 0x71, 0x2f, 0x31, 0xee, 0x77, 0x18, 0xf7, 0x52, 0xe3, 0x7e, 0x27, 0x9d, 0x9c, 0x54, 0x22, + 0xb4, 0x03, 0xfd, 0x7d, 0x96, 0x71, 0x2f, 0x37, 0xee, 0x7f, 0x9e, 0x6a, 0xf6, 0xce, 0xb6, 0xf6, + 0x6f, 0xae, 0x2e, 0x8a, 0xb7, 0xb5, 0x76, 0xd2, 0x1c, 0x43, 0x75, 0x52, 0x9a, 0xbe, 0x56, 0xa3, + 0x08, 0xcb, 0x9a, 0x0e, 0x6a, 0xfe, 0xe6, 0x77, 0x97, 0x74, 0x8c, 0x2a, 0x53, 0x6d, 0x6d, 0xa3, + 0x06, 0x28, 0x4b, 0x97, 0x2d, 0x5e, 0x5c, 0x94, 0x56, 0xb7, 0x16, 0x2d, 0xeb, 0x6c, 0x81, 0x8e, + 0x39, 0x3e, 0xf0, 0xde, 0xb6, 0xe6, 0xb6, 0x8e, 0x6b, 0x83, 0x53, 0x0f, 0x57, 0x07, 0xdf, 0x7b, + 0xdd, 0x3c, 0x8b, 0xda, 0x9b, 0xbf, 0xd9, 0xfa, 0xcd, 0x8e, 0x45, 0x2d, 0xf4, 0x9d, 0xce, 0x65, + 0xcd, 0xcb, 0x3a, 0xbf, 0xfb, 0x39, 0x10, 0xdc, 0xdb, 0xd6, 0xd2, 0xde, 0xf6, 0xed, 0x65, 0x9d, + 0xcb, 0x5a, 0x13, 0x46, 0x4c, 0x7c, 0x55, 0xd1, 0x37, 0x5b, 0x96, 0x25, 0xbe, 0xb9, 0x72, 0xd9, + 0xe2, 0x25, 0x6d, 0x54, 0xf5, 0xcd, 0xe6, 0x7b, 0x6b, 0xe7, 0xcf, 0x11, 0xc6, 0x45, 0xf1, 0xef, + 0xb4, 0xde, 0xdb, 0xc9, 0x56, 0x48, 0xd3, 0xbe, 0xed, 0x9e, 0xae, 0x2c, 0xfb, 0xb6, 0xd2, 0xda, + 0xd6, 0xa9, 0x2c, 0x6b, 0x69, 0x6f, 0x5e, 0xc2, 0xa6, 0x46, 0x4b, 0x16, 0x17, 0x65, 0x51, 0xd5, + 0xd2, 0x6f, 0xb6, 0x26, 0x96, 0x34, 0xb6, 0x77, 0x2c, 0xeb, 0x5c, 0xf2, 0x47, 0x7f, 0xd3, 0xb6, + 0xa4, 0xe3, 0xde, 0x25, 0xf3, 0xda, 0x16, 0xff, 0xd1, 0x5f, 0xd4, 0x7f, 0xad, 0x49, 0x69, 0xac, + 0x9c, 0x5f, 0x5b, 0x3f, 0x47, 0x09, 0x55, 0x56, 0xcd, 0x9d, 0x13, 0xfb, 0xda, 0xd7, 0xeb, 0xc3, + 0xb7, 0x80, 0x4f, 0x4f, 0xfb, 0xb6, 0x32, 0x2d, 0xb0, 0x18, 0x18, 0xc0, 0xc7, 0xc4, 0xb6, 0x50, + 0x65, 0xca, 0xb4, 0xe6, 0xc5, 0xab, 0x8c, 0x8b, 0x62, 0x73, 0x42, 0x14, 0x9a, 0x13, 0xe3, 0xbb, + 0xd2, 0x50, 0xc5, 0x8f, 0x7c, 0xab, 0x34, 0x82, 0x2b, 0x39, 0xbc, 0x92, 0xfc, 0xc6, 0xab, 0x9f, + 0x5f, 0xfd, 0xb4, 0xaa, 0xb9, 0xf5, 0x2f, 0x6b, 0x5b, 0x91, 0xe3, 0xbd, 0xdf, 0x6c, 0x6e, 0x5e, + 0xb2, 0x38, 0x8b, 0x16, 0x2f, 0x89, 0x7f, 0xf3, 0x3b, 0xcd, 0x9d, 0x45, 0x2d, 0x6d, 0x08, 0x6d, + 0xeb, 0xa0, 0xc6, 0x25, 0x9d, 0x55, 0x4b, 0x97, 0xb5, 0xc7, 0x96, 0xac, 0xfc, 0x63, 0xc1, 0xbf, + 0xf7, 0xbb, 0x8b, 0x96, 0x74, 0x5c, 0xa3, 0x72, 0x7f, 0xe3, 0x9b, 0xcb, 0x3a, 0x43, 0x5f, 0x9b, + 0xdf, 0xf0, 0xc7, 0xe6, 0x32, 0x86, 0x06, 0x3f, 0xbf, 0x49, 0xd3, 0x81, 0x9c, 0xe4, 0x8f, 0x21, + 0xbe, 0x34, 0x39, 0x81, 0x0c, 0xbe, 0xfd, 0xdd, 0xd6, 0xab, 0x89, 0xab, 0x7d, 0xd9, 0xaa, 0x78, + 0x4b, 0xe7, 0x1f, 0xa0, 0xb8, 0xdf, 0x4b, 0xb7, 0xc8, 0x37, 0xfe, 0xcd, 0x15, 0x4b, 0x28, 0xd6, + 0xd6, 0xd6, 0xf9, 0x79, 0x29, 0xe7, 0x2d, 0xe9, 0xfc, 0x26, 0x75, 0x20, 0xc1, 0xbd, 0xcd, 0xdf, + 0xfc, 0xb6, 0xf1, 0xa1, 0x51, 0x08, 0x7f, 0x1b, 0x5f, 0x44, 0xdf, 0x5e, 0xd6, 0x82, 0x34, 0x63, + 0xa2, 0xaf, 0xae, 0xd5, 0x35, 0xb6, 0x56, 0xc3, 0xd3, 0x7f, 0x30, 0xfa, 0xec, 0xf9, 0xe1, 0x55, + 0xea, 0x7c, 0xca, 0x1e, 0xc5, 0x6d, 0x3c, 0xa7, 0xc2, 0x6f, 0xfb, 0xfc, 0xf5, 0xf9, 0x3c, 0xfb, + 0x1f, 0x5a, 0x9f, 0xbf, 0x55, 0xfd, 0x63, 0xd7, 0xe7, 0xa7, 0xd5, 0x9b, 0x9e, 0xbc, 0xbd, 0x0b, + 0xe3, 0x44, 0x1e, 0xbe, 0xd3, 0xca, 0x63, 0xe2, 0xbb, 0xba, 0x05, 0xbc, 0xc2, 0xac, 0x8e, 0xcd, + 0x31, 0xaf, 0xe1, 0xf3, 0x57, 0xed, 0xf3, 0x82, 0x57, 0xaf, 0xda, 0xdf, 0xda, 0x7c, 0xd5, 0xaa, + 0xfd, 0xe2, 0xb1, 0xab, 0xf6, 0x79, 0xee, 0xab, 0x57, 0xed, 0xf3, 0x4a, 0xaf, 0x5d, 0xb5, 0xcf, + 0x8b, 0xd4, 0x3f, 0x32, 0x06, 0xa6, 0x86, 0x3f, 0xb0, 0x82, 0x5f, 0x30, 0xba, 0x82, 0x5f, 0xff, + 0xad, 0xc8, 0xbb, 0xc1, 0x83, 0x7a, 0x6c, 0xe5, 0x07, 0x14, 0xa9, 0x7f, 0xee, 0xb3, 0x81, 0xba, + 0x77, 0xaa, 0x24, 0xae, 0xf3, 0xc0, 0xf8, 0xf0, 0xa3, 0x08, 0xcf, 0x60, 0xfc, 0x8d, 0x0b, 0x7d, + 0x45, 0xe0, 0x54, 0x0a, 0xdc, 0x49, 0xef, 0x5c, 0x30, 0x0f, 0xd7, 0xfa, 0xf9, 0x2e, 0x17, 0xeb, + 0x6f, 0xd1, 0xdd, 0x95, 0xf1, 0x33, 0x3c, 0x13, 0x7d, 0xb2, 0x2f, 0x69, 0x72, 0x7e, 0xa5, 0xfe, + 0x3b, 0x96, 0x3b, 0x31, 0xea, 0xbe, 0x73, 0x41, 0x8a, 0x7b, 0xf1, 0x64, 0xe6, 0xa7, 0x84, 0x72, + 0xdb, 0x48, 0x2f, 0xe1, 0x69, 0x5b, 0xf4, 0x4e, 0xfa, 0xfb, 0x61, 0x53, 0x2a, 0x3c, 0x7e, 0xe1, + 0xb6, 0x11, 0x59, 0x84, 0x8b, 0xaf, 0xf4, 0xb4, 0x17, 0xf5, 0x34, 0xea, 0x87, 0xbe, 0x6c, 0xa5, + 0x8d, 0x2c, 0xde, 0x36, 0xb2, 0x02, 0x82, 0x21, 0x86, 0xe0, 0xae, 0x4d, 0x6c, 0x8b, 0xe0, 0x6c, + 0xa3, 0xdc, 0xe8, 0x4e, 0x7a, 0x2c, 0xee, 0xf7, 0x75, 0xd1, 0xf0, 0x57, 0x77, 0x91, 0x65, 0x36, + 0xaf, 0x2d, 0x5b, 0x43, 0x3e, 0xca, 0xc6, 0x35, 0xb9, 0xf2, 0x23, 0x7c, 0x15, 0x05, 0x16, 0xf6, + 0xa2, 0x55, 0x3a, 0xa7, 0x05, 0xe9, 0x31, 0x25, 0x38, 0x7b, 0x29, 0x46, 0x5e, 0x6b, 0x74, 0x39, + 0x29, 0xf1, 0x70, 0xe5, 0x39, 0x1a, 0x98, 0x16, 0xa1, 0xc3, 0xa1, 0x9d, 0x74, 0x08, 0xcf, 0x87, + 0xf0, 0x3c, 0xc0, 0x96, 0x07, 0x9e, 0x26, 0x5a, 0x38, 0x2d, 0x4a, 0x0b, 0xf8, 0xf9, 0xab, 0x3f, + 0xa7, 0xa6, 0x9b, 0xba, 0x30, 0xfa, 0x37, 0xde, 0xc4, 0xf6, 0x1a, 0xb1, 0xf6, 0xcc, 0xaa, 0x73, + 0x34, 0x6a, 0xc7, 0xb0, 0x20, 0xba, 0xd3, 0x74, 0x38, 0x5e, 0x50, 0xf5, 0xef, 0x48, 0xf9, 0x3a, + 0x28, 0x2e, 0x65, 0xf3, 0x70, 0x7c, 0x5a, 0xd0, 0x74, 0x58, 0x95, 0xc5, 0xea, 0x98, 0x89, 0x2d, + 0x1d, 0x1a, 0x36, 0xf1, 0xfc, 0x3e, 0x51, 0xe4, 0x5d, 0xc5, 0xe1, 0xcc, 0x8e, 0x3d, 0x65, 0xba, + 0x58, 0xf9, 0x1e, 0x0d, 0xbc, 0xf0, 0x1e, 0x1d, 0x4e, 0xd8, 0x9d, 0xcb, 0x68, 0x40, 0xcd, 0x76, + 0x2c, 0xa7, 0xac, 0x76, 0x9b, 0x37, 0x54, 0xff, 0xdc, 0x95, 0xfd, 0xce, 0x58, 0x74, 0x4b, 0xfc, + 0x43, 0xb6, 0x5b, 0x08, 0xcb, 0xfa, 0xea, 0x0a, 0x63, 0x00, 0xf9, 0x0b, 0x1c, 0x68, 0x6f, 0xea, + 0x54, 0xaa, 0x54, 0x00, 0x03, 0x7a, 0xd9, 0xc3, 0xed, 0xd3, 0xc7, 0x96, 0x2d, 0x57, 0x24, 0xc8, + 0xb4, 0xc5, 0x47, 0x4c, 0x2d, 0x5f, 0x3d, 0x3f, 0xe7, 0xb2, 0x36, 0x50, 0xff, 0x08, 0x42, 0x6b, + 0x7c, 0x1e, 0xb9, 0x82, 0xc3, 0x9c, 0x26, 0xf1, 0x1e, 0x4d, 0xbf, 0xdb, 0xc5, 0x7b, 0x2c, 0xfd, + 0xee, 0x13, 0xef, 0xf5, 0x4c, 0x3d, 0x45, 0x3b, 0x8d, 0xb0, 0xa0, 0x08, 0x9b, 0xcf, 0xe5, 0x39, + 0xef, 0x19, 0x5f, 0x57, 0x39, 0xd4, 0xb0, 0x29, 0x9e, 0xe3, 0x58, 0x2e, 0x57, 0xa4, 0x2d, 0x33, + 0x16, 0xa9, 0x64, 0xb2, 0x01, 0xab, 0xcf, 0x01, 0xab, 0x7b, 0x80, 0xe1, 0x5d, 0x78, 0xde, 0x85, + 0xe7, 0xe7, 0x70, 0xdf, 0x88, 0xfb, 0x56, 0x84, 0x6d, 0xc6, 0xf3, 0x66, 0x3c, 0x6f, 0xac, 0x3d, + 0x27, 0xbd, 0xe9, 0xbb, 0x93, 0xbf, 0xf4, 0x59, 0xe7, 0x5e, 0xbe, 0x62, 0xab, 0x7f, 0x74, 0xce, + 0xb9, 0x0c, 0xd9, 0x08, 0x99, 0x54, 0xff, 0xa8, 0xfe, 0x14, 0x59, 0x9e, 0xd1, 0x31, 0xe6, 0xf9, + 0x89, 0xfa, 0x47, 0x2b, 0xcf, 0x99, 0x92, 0xd3, 0x22, 0xa6, 0xbe, 0xd0, 0x4e, 0x53, 0x2f, 0x9e, + 0x7b, 0xf1, 0x9c, 0x44, 0x3b, 0xc9, 0xa6, 0x8d, 0x95, 0xe7, 0xa4, 0x1d, 0x78, 0xdb, 0x22, 0x6a, + 0xf0, 0x53, 0x91, 0x8f, 0xa5, 0xfe, 0xd1, 0x76, 0xe5, 0x6a, 0xeb, 0x15, 0xb4, 0xd3, 0xdd, 0x0d, + 0x9b, 0x12, 0x8b, 0xa7, 0xd5, 0x99, 0x2e, 0x4d, 0x9b, 0x6b, 0x7a, 0x3c, 0x9d, 0xfb, 0x6b, 0xf5, + 0xfb, 0x3e, 0xeb, 0x53, 0x44, 0xea, 0x8e, 0xc9, 0x35, 0x26, 0x67, 0xfa, 0x9b, 0xcf, 0x22, 0xd3, + 0x82, 0x19, 0x23, 0xf8, 0xc6, 0x5f, 0x79, 0x4e, 0xa6, 0x69, 0x11, 0xd9, 0x12, 0xda, 0x29, 0xcb, + 0x78, 0x96, 0xf1, 0x4c, 0xbe, 0x2c, 0x5e, 0x29, 0xfb, 0x57, 0x02, 0x9f, 0x08, 0x26, 0xb2, 0x7d, + 0x51, 0x2a, 0xa8, 0x7b, 0xa7, 0x4b, 0xae, 0x07, 0xce, 0x2e, 0x3e, 0xc7, 0xed, 0x89, 0x67, 0x6e, + 0xb9, 0x80, 0x33, 0x5b, 0x99, 0x92, 0xb0, 0x2a, 0xc9, 0xd0, 0x0e, 0x92, 0x5d, 0x77, 0xdd, 0x1a, + 0x21, 0xd9, 0xd1, 0xe7, 0x5a, 0x4a, 0x4e, 0x35, 0xef, 0x8e, 0x15, 0xe0, 0x39, 0x92, 0xb2, 0x82, + 0x1c, 0x8e, 0x28, 0x53, 0x83, 0xf6, 0x84, 0x6b, 0x05, 0x99, 0x79, 0x8d, 0x39, 0x7e, 0x1a, 0xbd, + 0x58, 0x7c, 0x4f, 0x65, 0xae, 0x88, 0xb3, 0x56, 0x59, 0x46, 0xb9, 0xfd, 0xbc, 0xf6, 0x5c, 0xe6, + 0x58, 0x8a, 0x2f, 0xa6, 0xf4, 0xef, 0x20, 0x73, 0x5c, 0xf0, 0x43, 0xdf, 0x44, 0x5e, 0x11, 0xfc, + 0xf0, 0x6c, 0xfd, 0x56, 0x7e, 0x53, 0x96, 0x53, 0xae, 0xcf, 0x4d, 0x66, 0xb1, 0xea, 0x67, 0xcf, + 0xdb, 0x4f, 0x26, 0xe4, 0x0e, 0x4e, 0x81, 0xbc, 0x1f, 0xab, 0x7b, 0x67, 0xa1, 0xe0, 0x0b, 0xfa, + 0xda, 0xec, 0xec, 0x32, 0x8f, 0xa5, 0xb0, 0x56, 0xbb, 0xe0, 0xaa, 0x2f, 0x8c, 0x6a, 0x23, 0x8a, + 0x9b, 0xb2, 0x12, 0x44, 0x5b, 0x44, 0xeb, 0xb7, 0xfa, 0x88, 0xb9, 0xcd, 0x9d, 0x9b, 0xd9, 0xc6, + 0x26, 0xde, 0x55, 0xfb, 0xa1, 0x54, 0xa1, 0xd4, 0xa5, 0x71, 0x72, 0xd4, 0x37, 0xc9, 0x97, 0x29, + 0x6a, 0xbe, 0xc5, 0x49, 0x63, 0xc2, 0x5f, 0x51, 0x49, 0xca, 0x53, 0x6c, 0xe6, 0xe4, 0xf7, 0x34, + 0x4d, 0xeb, 0xc8, 0xdc, 0x95, 0x5c, 0xd2, 0x34, 0x98, 0xf4, 0xcf, 0xb2, 0x98, 0xeb, 0x3f, 0x45, + 0x6f, 0x72, 0x42, 0x8a, 0xce, 0x81, 0xe4, 0xea, 0x27, 0xbb, 0xd3, 0x4d, 0xb2, 0x5a, 0xea, 0x5e, + 0x8a, 0xdf, 0x80, 0x9b, 0x9f, 0xbd, 0xe5, 0x80, 0x58, 0x75, 0x45, 0x81, 0x9f, 0xf9, 0x2f, 0x45, + 0xd6, 0x86, 0xab, 0xd4, 0xfc, 0x42, 0xc4, 0x6a, 0x67, 0xd5, 0x9c, 0xd0, 0xb3, 0xda, 0xd9, 0x50, + 0x55, 0xa8, 0x66, 0x95, 0x56, 0x13, 0x2e, 0xed, 0x22, 0x53, 0xa7, 0x56, 0xf9, 0x81, 0x36, 0xe2, + 0x5d, 0x21, 0x33, 0xb6, 0x06, 0x95, 0x20, 0xe0, 0xdb, 0x58, 0xf9, 0xbe, 0x54, 0x51, 0x18, 0xd1, + 0xce, 0x8f, 0x42, 0xa8, 0xc8, 0xa1, 0x60, 0x87, 0xb6, 0xab, 0x27, 0x9e, 0xed, 0x28, 0x94, 0xbc, + 0x4e, 0xf9, 0x50, 0xf7, 0xae, 0x9e, 0x7b, 0xa5, 0xad, 0x49, 0x9f, 0x35, 0x9c, 0xd4, 0xeb, 0xc6, + 0xb6, 0x2c, 0x45, 0xd2, 0xdb, 0x49, 0xf7, 0x0a, 0xc9, 0xa9, 0x2a, 0x8a, 0x97, 0xe4, 0xdd, 0xc9, + 0x45, 0xf2, 0x8b, 0xc9, 0x45, 0x53, 0xa3, 0x35, 0xf1, 0x6c, 0x8b, 0x97, 0xa5, 0xf9, 0x84, 0x39, + 0xfa, 0x0c, 0xe5, 0xc5, 0x73, 0xdc, 0x4d, 0x7b, 0xb9, 0x45, 0xde, 0x02, 0x95, 0x87, 0x3b, 0x25, + 0x68, 0x39, 0xfb, 0x3b, 0x33, 0xf0, 0xbb, 0x07, 0x78, 0x10, 0x14, 0xf0, 0xc9, 0x62, 0x77, 0x50, + 0x58, 0x23, 0x01, 0x7f, 0xd3, 0x43, 0x24, 0x4f, 0x0f, 0x93, 0xe5, 0xbe, 0x66, 0xb2, 0x29, 0x2b, + 0xa4, 0x32, 0xd1, 0x66, 0xb9, 0xbe, 0x42, 0xa9, 0x44, 0xac, 0xaf, 0x52, 0xfd, 0xe6, 0xe9, 0x41, + 0xca, 0x11, 0xa3, 0x47, 0x4d, 0xdc, 0x5b, 0xfd, 0xbe, 0xe4, 0x64, 0x4b, 0xa1, 0x7f, 0x77, 0xa8, + 0xd9, 0xce, 0xcd, 0xc8, 0xcf, 0x52, 0xbf, 0xad, 0x61, 0x93, 0x12, 0x75, 0x46, 0x94, 0x98, 0xf8, + 0x32, 0xcb, 0xe2, 0x16, 0x90, 0x7c, 0xa8, 0x0e, 0x57, 0x21, 0xad, 0x6a, 0x65, 0x48, 0xd1, 0xf6, + 0xf2, 0x92, 0x2c, 0x47, 0x44, 0xb9, 0x8b, 0xd3, 0xc4, 0xcf, 0xbb, 0xfb, 0x1c, 0x1b, 0x5f, 0x7c, + 0x5a, 0xf2, 0xde, 0x2b, 0xdf, 0x3a, 0x47, 0xf2, 0x46, 0x81, 0xb1, 0x44, 0x9e, 0xd2, 0xa2, 0x9d, + 0x55, 0x7a, 0xd4, 0x6c, 0x25, 0x0a, 0x5c, 0x55, 0x00, 0x57, 0x87, 0x3a, 0x4d, 0xaa, 0xd4, 0x49, + 0x08, 0x1f, 0xc5, 0xd3, 0x2b, 0xd1, 0x9e, 0xf8, 0xe2, 0xe8, 0xd3, 0xa6, 0x87, 0xe2, 0xf7, 0xe8, + 0x35, 0x8e, 0xcf, 0x57, 0xaa, 0x05, 0x25, 0xe4, 0x0a, 0x3a, 0xe8, 0x1b, 0x4b, 0x07, 0x89, 0x32, + 0xa5, 0x99, 0xf2, 0xdb, 0x6f, 0x1c, 0x7c, 0x5a, 0x8e, 0x15, 0x06, 0xb5, 0x8b, 0x68, 0x99, 0x4b, + 0x8e, 0xa5, 0xda, 0x48, 0xa4, 0x45, 0xbb, 0xe8, 0xb3, 0x80, 0x3e, 0xf3, 0xeb, 0x37, 0x07, 0xba, + 0xe8, 0xe6, 0x37, 0xde, 0x97, 0x36, 0x2a, 0xc1, 0xea, 0xf7, 0x4d, 0x0f, 0x19, 0x25, 0x3f, 0x81, + 0x1a, 0x49, 0x75, 0x1f, 0x2c, 0x1c, 0x01, 0x67, 0x02, 0x7f, 0x53, 0xaa, 0x1f, 0x79, 0xd5, 0xd9, + 0xa2, 0x5d, 0x30, 0x62, 0x4f, 0xb1, 0x4d, 0x59, 0x9c, 0xae, 0xec, 0xee, 0x94, 0x55, 0xd2, 0x16, + 0xa5, 0xc6, 0x7b, 0x31, 0x2e, 0xd7, 0xba, 0xea, 0x6f, 0xec, 0x02, 0xdd, 0x58, 0x42, 0xcb, 0x68, + 0xaa, 0x34, 0x9d, 0xbe, 0x47, 0x37, 0xa7, 0x7b, 0x73, 0x57, 0xe5, 0xfb, 0xb4, 0x71, 0x8c, 0x95, + 0x99, 0x2d, 0xfd, 0xb4, 0x72, 0x74, 0xfc, 0xf3, 0x07, 0x9c, 0x91, 0x80, 0x9b, 0xf2, 0xfc, 0x6e, + 0xb2, 0xbb, 0x4c, 0x91, 0xaa, 0x50, 0x55, 0x31, 0x99, 0x43, 0x49, 0x92, 0x7a, 0x78, 0x25, 0xf7, + 0xd8, 0x5a, 0x69, 0x29, 0x69, 0x94, 0x3b, 0xb3, 0x92, 0x6c, 0x33, 0xd1, 0x2a, 0xdc, 0xc7, 0x14, + 0xf4, 0x2e, 0x55, 0x52, 0xe6, 0xba, 0x1a, 0x84, 0x55, 0x42, 0x5e, 0x24, 0x18, 0x0a, 0x06, 0x0a, + 0xc9, 0x6e, 0xae, 0xc4, 0x57, 0x62, 0x1d, 0x7a, 0xb0, 0x7b, 0x77, 0xb2, 0xf5, 0xed, 0x5b, 0xa3, + 0x24, 0x3b, 0x99, 0x9f, 0xc9, 0xca, 0xfd, 0x18, 0x9f, 0x26, 0xea, 0x94, 0xf0, 0xe1, 0x59, 0x8c, + 0x3c, 0x62, 0xa5, 0x1b, 0x30, 0x58, 0xc5, 0xfa, 0x38, 0xc6, 0x2e, 0xf0, 0x73, 0xab, 0xa3, 0x8d, + 0x6c, 0x3c, 0x86, 0x81, 0xab, 0xdb, 0x19, 0x27, 0xba, 0x45, 0x1c, 0x7a, 0x62, 0x1f, 0xf7, 0xc4, + 0x22, 0xf2, 0x9a, 0xdc, 0x11, 0x57, 0xfd, 0x2a, 0xd3, 0xe1, 0xb5, 0x85, 0x61, 0x6d, 0xbb, 0x92, + 0xc1, 0x6b, 0xcd, 0x93, 0x93, 0xd6, 0x24, 0x2b, 0xa9, 0x50, 0x5d, 0x1f, 0x03, 0x7d, 0x5f, 0x9c, + 0x05, 0xfa, 0xd7, 0xb6, 0xac, 0xa6, 0x55, 0xda, 0x5f, 0x1f, 0x55, 0xdb, 0x15, 0x9b, 0x95, 0xad, + 0x90, 0x33, 0x12, 0x81, 0x45, 0x39, 0xe2, 0x89, 0x12, 0x05, 0xe2, 0x6e, 0x8a, 0x37, 0xa9, 0x76, + 0xf1, 0x64, 0x4e, 0x4c, 0x15, 0xf7, 0x40, 0x3c, 0xa4, 0x3a, 0x45, 0x7f, 0x2b, 0x13, 0x7d, 0xaf, + 0x58, 0xf4, 0xae, 0xed, 0xaa, 0x97, 0x7b, 0xdc, 0x37, 0xc4, 0xea, 0xf4, 0xac, 0xa0, 0xb6, 0x45, + 0x2d, 0x40, 0xdb, 0xcb, 0xde, 0xb9, 0xa0, 0x0c, 0x0f, 0x53, 0xb3, 0x7c, 0x45, 0x09, 0x7a, 0x10, + 0xe2, 0xb6, 0xb5, 0xe7, 0xac, 0x4f, 0xa2, 0xdf, 0x5d, 0x1c, 0xd7, 0xef, 0x48, 0x5b, 0xa3, 0x66, + 0x8d, 0xc2, 0xd4, 0x61, 0xd9, 0xd5, 0xb3, 0xc4, 0xde, 0xae, 0xf5, 0xf7, 0xc6, 0x73, 0xb8, 0xbf, + 0xa0, 0xf7, 0x80, 0x56, 0x5b, 0xcc, 0xd1, 0x8c, 0x66, 0xca, 0x38, 0xa7, 0x14, 0x4a, 0xbd, 0xa0, + 0x9a, 0x27, 0x0a, 0xe7, 0x68, 0x4f, 0xc6, 0x92, 0x78, 0xda, 0x51, 0x58, 0xa3, 0x3d, 0xd3, 0x61, + 0x2a, 0xac, 0xd4, 0xf6, 0x82, 0x92, 0xf6, 0x8b, 0x2f, 0xe6, 0xf3, 0x17, 0xcd, 0x0d, 0xa0, 0x33, + 0x0b, 0xd7, 0x97, 0xa9, 0xeb, 0xc7, 0xef, 0x4b, 0xab, 0xe2, 0x79, 0xbe, 0x42, 0x8c, 0x4b, 0x4c, + 0x67, 0x85, 0xd2, 0x13, 0xe8, 0x23, 0xfb, 0xae, 0xec, 0x64, 0xc9, 0x89, 0xf3, 0xbc, 0x87, 0xf3, + 0xda, 0x5b, 0x88, 0x38, 0x6d, 0x3f, 0x7a, 0x7c, 0x6f, 0x5c, 0x76, 0x7b, 0xc9, 0xd9, 0x6e, 0xe9, + 0xef, 0x59, 0x22, 0x3b, 0xbd, 0x54, 0xe0, 0xf1, 0x02, 0xf7, 0x48, 0x07, 0xba, 0xed, 0x46, 0xca, + 0xfe, 0xc2, 0x90, 0xb6, 0x1b, 0x10, 0x39, 0x94, 0x8c, 0x50, 0x30, 0x12, 0x1c, 0x8e, 0x28, 0xc1, + 0xf6, 0x1b, 0xfa, 0xfb, 0x96, 0x34, 0xbc, 0x7e, 0xd8, 0x11, 0x79, 0x83, 0xd7, 0xdc, 0x0e, 0x29, + 0x33, 0xfb, 0x28, 0xee, 0x57, 0x2b, 0x44, 0x9f, 0x2f, 0x15, 0xf5, 0x29, 0x5d, 0x65, 0xdf, 0xdb, + 0xb3, 0x04, 0xac, 0xba, 0xdd, 0x86, 0x7c, 0x29, 0xe3, 0x0a, 0x70, 0x43, 0xf6, 0x72, 0xb2, 0xec, + 0xed, 0x59, 0x4c, 0x19, 0x23, 0xb6, 0x72, 0x9a, 0xb8, 0x6a, 0xe2, 0xf1, 0x6e, 0xb4, 0xdc, 0x00, + 0xca, 0x38, 0xb4, 0x4a, 0x53, 0xa7, 0xf2, 0x77, 0x89, 0xec, 0xf6, 0x49, 0xa2, 0xd4, 0x01, 0xc4, + 0x1c, 0x52, 0xb3, 0xda, 0x4d, 0xfc, 0x8c, 0xda, 0x1e, 0x6a, 0xea, 0x46, 0xbd, 0x0f, 0x77, 0xe4, + 0x1c, 0x5c, 0x8b, 0xfb, 0xe3, 0xed, 0x39, 0xfd, 0xdd, 0xdc, 0x0a, 0xfe, 0x20, 0x6a, 0x7d, 0x34, + 0xfc, 0xac, 0x76, 0x14, 0x69, 0x06, 0x71, 0x1d, 0x6b, 0x77, 0x77, 0x98, 0x22, 0x95, 0x63, 0xed, + 0x2f, 0x91, 0xc3, 0xd6, 0x04, 0x65, 0x2c, 0x8d, 0xae, 0x8b, 0x5b, 0x3c, 0x93, 0xcc, 0xeb, 0x88, + 0x24, 0x67, 0xb4, 0x45, 0xdb, 0x92, 0x28, 0x76, 0x54, 0x83, 0x7e, 0xad, 0x4a, 0xa1, 0x1c, 0x6b, + 0x62, 0x9c, 0x9c, 0xad, 0xfa, 0x00, 0xd8, 0xae, 0xd5, 0xce, 0x1b, 0x7d, 0xf4, 0x6c, 0xaa, 0x8f, + 0x22, 0xee, 0x7e, 0x8c, 0xe0, 0x16, 0x95, 0x32, 0x6c, 0x28, 0xe3, 0xfe, 0x76, 0x8d, 0x7b, 0xb3, + 0xc8, 0x83, 0xe8, 0x2d, 0x03, 0xd3, 0x23, 0xc0, 0x74, 0xaf, 0x6f, 0x86, 0x76, 0xff, 0xbc, 0xcb, + 0x9f, 0x55, 0xd4, 0x6f, 0x2b, 0x9a, 0xc1, 0x21, 0x7a, 0x0c, 0x63, 0x33, 0xd6, 0xed, 0x33, 0x71, + 0x6c, 0xfd, 0x36, 0x2f, 0x62, 0xc4, 0xb8, 0xfb, 0xb4, 0x1e, 0xcb, 0xfc, 0x01, 0x5f, 0x92, 0x1e, + 0xeb, 0x1c, 0xf3, 0x5d, 0x47, 0xce, 0x10, 0xc7, 0x18, 0xdf, 0x39, 0x10, 0xd3, 0xd8, 0x3d, 0xe6, + 0xcb, 0x4b, 0xed, 0x59, 0xa3, 0x5f, 0x02, 0x2b, 0x0f, 0xd5, 0x6f, 0x1b, 0xd3, 0xea, 0x9b, 0x11, + 0x7a, 0xa9, 0x7e, 0xdb, 0xb4, 0x16, 0xed, 0x7e, 0xb2, 0xe0, 0xf7, 0x22, 0xe5, 0x8e, 0x2d, 0x95, + 0x29, 0x61, 0x61, 0x32, 0x55, 0x2a, 0xe2, 0x47, 0xc8, 0x36, 0x2d, 0x44, 0x05, 0x4c, 0x25, 0x28, + 0xe9, 0x21, 0xd5, 0xdc, 0x31, 0x19, 0x75, 0xdd, 0x3e, 0xad, 0x9a, 0xac, 0xd3, 0xc2, 0xe4, 0xbc, + 0xbd, 0x06, 0x63, 0xa8, 0xa9, 0x26, 0x39, 0x74, 0xdf, 0x40, 0xf7, 0x99, 0xbe, 0xe2, 0x24, 0xd3, + 0xee, 0x62, 0xa9, 0xd3, 0x72, 0x53, 0x88, 0x32, 0xa5, 0x0c, 0xfa, 0xef, 0x94, 0xa1, 0x25, 0x6f, + 0xaa, 0x22, 0x19, 0xbc, 0xf4, 0x7e, 0x48, 0x57, 0x92, 0xa0, 0x85, 0xac, 0x55, 0x39, 0x7b, 0x9f, + 0xd5, 0x1e, 0x47, 0x6f, 0xfc, 0x98, 0x96, 0x4b, 0x44, 0x0e, 0x41, 0xb3, 0xf7, 0x08, 0x9a, 0x5d, + 0x00, 0xbe, 0x6c, 0xeb, 0xb8, 0x63, 0xe8, 0x69, 0xb9, 0x06, 0xb0, 0x9f, 0x05, 0x46, 0xcf, 0x3b, + 0x00, 0xab, 0xb2, 0xcc, 0xc0, 0xfd, 0x44, 0xf0, 0x15, 0xe0, 0x5e, 0xf0, 0xd1, 0x2c, 0x25, 0x98, + 0xe2, 0xc9, 0xd3, 0x30, 0x4a, 0x00, 0xd2, 0x66, 0x9e, 0x8c, 0xc4, 0x6f, 0x2e, 0xe5, 0xe2, 0xb7, + 0x80, 0x0a, 0xda, 0x4d, 0xdd, 0x3b, 0x49, 0xc1, 0x18, 0xc3, 0x52, 0x09, 0x68, 0xad, 0x63, 0x54, + 0x02, 0x6b, 0x02, 0x87, 0xb1, 0x03, 0xa6, 0x8d, 0x21, 0xe4, 0x8b, 0xeb, 0x1c, 0xae, 0xf3, 0xb8, + 0x3e, 0x54, 0x66, 0x68, 0x17, 0x3b, 0xa4, 0x5d, 0xc9, 0x84, 0x8c, 0xbe, 0x09, 0x4e, 0xf2, 0xdb, + 0x67, 0x56, 0x52, 0x27, 0xcd, 0xfb, 0x40, 0x3b, 0x5b, 0xfb, 0x81, 0x76, 0xdc, 0x03, 0xcc, 0xa0, + 0xdf, 0xaf, 0x90, 0x6b, 0xb4, 0xe3, 0x85, 0xf5, 0xda, 0x09, 0xf4, 0x83, 0x61, 0x41, 0x8f, 0xa7, + 0x99, 0x6e, 0xd0, 0x4a, 0x56, 0x5f, 0xa6, 0x0e, 0x23, 0x24, 0x08, 0xfb, 0x2d, 0xcf, 0x6a, 0x17, + 0x4a, 0x29, 0xd6, 0xb3, 0x60, 0x6d, 0xc3, 0xa6, 0xbd, 0x3d, 0xf1, 0xc3, 0xc0, 0xc3, 0x76, 0x61, + 0xfb, 0x14, 0x6d, 0x07, 0x2c, 0x8e, 0x68, 0x27, 0xad, 0x24, 0xf7, 0x04, 0x8f, 0xb9, 0x8b, 0xd6, + 0x50, 0xcd, 0x84, 0x47, 0x8f, 0x30, 0xcf, 0xd0, 0x4e, 0x01, 0xde, 0xc1, 0xcf, 0xa3, 0x58, 0xda, + 0xd3, 0x3e, 0x79, 0xf0, 0x3e, 0x07, 0x9d, 0xdd, 0x30, 0x54, 0x59, 0xdc, 0xcd, 0xf8, 0xa7, 0x0c, + 0xb2, 0x30, 0x8e, 0x19, 0xe7, 0xa1, 0xe5, 0x64, 0x36, 0x28, 0xf0, 0xa1, 0x33, 0x7d, 0x3e, 0xb3, + 0xb0, 0xb4, 0xb9, 0x32, 0x3a, 0x52, 0x7b, 0xc8, 0x1d, 0x45, 0x89, 0xe5, 0xa4, 0x95, 0x16, 0x40, + 0x5a, 0x79, 0x5c, 0x75, 0x2b, 0x13, 0x1c, 0x66, 0x2e, 0xf5, 0x4a, 0x2e, 0xc6, 0x53, 0x4b, 0xa2, + 0x54, 0x40, 0x98, 0xed, 0xcb, 0x84, 0x3c, 0x44, 0x4a, 0xb8, 0x7e, 0x33, 0xf3, 0xe0, 0xd8, 0xda, + 0x05, 0x1b, 0x77, 0xaf, 0x8d, 0x1f, 0x53, 0x4b, 0x99, 0xa3, 0xe8, 0xe3, 0x69, 0xfa, 0xbb, 0x6c, + 0x8e, 0x55, 0x2d, 0xc0, 0xda, 0xe3, 0xc8, 0x39, 0x88, 0x74, 0x6f, 0x39, 0xa2, 0xed, 0xee, 0x51, + 0x6d, 0x0a, 0xf4, 0xb2, 0x15, 0xb1, 0x5b, 0xc5, 0xc8, 0xa5, 0xf2, 0xc8, 0xd5, 0x7e, 0x83, 0x4a, + 0x23, 0xf6, 0x76, 0x8c, 0xfd, 0x23, 0x39, 0xed, 0x99, 0xf8, 0xb5, 0xb6, 0xdf, 0x84, 0x5f, 0xf3, + 0x68, 0xcf, 0x9b, 0x2f, 0x7a, 0x1e, 0xb8, 0xd1, 0xfd, 0xd7, 0xf6, 0xbb, 0x86, 0x4d, 0xea, 0x0f, + 0x78, 0x3c, 0x68, 0x37, 0x45, 0x82, 0x1d, 0x4d, 0xa3, 0x18, 0x32, 0xec, 0xa8, 0xb2, 0x7d, 0x52, + 0xe7, 0xe4, 0xc1, 0x1e, 0xd4, 0xde, 0x74, 0x75, 0xed, 0x3b, 0xa4, 0x31, 0xf8, 0xfc, 0x8a, 0x9e, + 0x1e, 0x23, 0xc7, 0x76, 0x1e, 0x39, 0x5c, 0xf5, 0x6c, 0x53, 0x97, 0x20, 0xe9, 0x6e, 0xf4, 0xf5, + 0x11, 0xc8, 0x18, 0x7e, 0xe8, 0x8e, 0x2d, 0xda, 0x93, 0xfc, 0x6d, 0x29, 0xd3, 0xbf, 0x15, 0xf5, + 0xf8, 0xc1, 0x4a, 0x82, 0xec, 0x64, 0x5b, 0x45, 0xa0, 0x93, 0x1f, 0x86, 0x42, 0x6a, 0x83, 0x90, + 0xd2, 0x90, 0x65, 0x47, 0x16, 0xa4, 0xb4, 0xd0, 0x18, 0x29, 0x2d, 0x8f, 0x4a, 0x41, 0x7f, 0xa5, + 0xe4, 0xc0, 0xe5, 0xa1, 0x52, 0x29, 0x17, 0xf7, 0x80, 0x18, 0x39, 0x0a, 0x5c, 0x3c, 0x72, 0xe4, + 0x89, 0x91, 0xe3, 0x07, 0x6a, 0x36, 0xcb, 0x6d, 0x90, 0x28, 0xcc, 0x82, 0xff, 0xff, 0xf0, 0x1a, + 0x99, 0xec, 0x07, 0xe0, 0x78, 0x8f, 0xa1, 0x45, 0x7f, 0x28, 0x6c, 0x1b, 0x7b, 0x13, 0xe6, 0x72, + 0xe0, 0x59, 0x95, 0xba, 0x4c, 0xab, 0xa8, 0xd4, 0x8c, 0xd4, 0xc7, 0xda, 0xa5, 0x0e, 0x9b, 0x53, + 0x8c, 0x35, 0x57, 0x56, 0xaf, 0xa1, 0x0a, 0xf3, 0xdb, 0xf7, 0xbd, 0x7d, 0x1f, 0xda, 0x86, 0x65, + 0xf0, 0x31, 0xb5, 0xf5, 0x10, 0x46, 0x61, 0x73, 0x74, 0x1d, 0xe8, 0x7d, 0xf5, 0x82, 0xfb, 0x07, + 0x93, 0x4a, 0xf5, 0xeb, 0x03, 0x1d, 0xb6, 0x2d, 0x1b, 0xdb, 0x4d, 0xff, 0xbc, 0x23, 0x40, 0xe1, + 0xca, 0xc2, 0x6a, 0x50, 0x72, 0x44, 0x1b, 0x76, 0x54, 0x87, 0x82, 0x6a, 0x4e, 0x71, 0xce, 0xa1, + 0xca, 0xc0, 0xc1, 0x62, 0x0f, 0x49, 0x87, 0x2a, 0xfd, 0x07, 0x17, 0xdc, 0x1f, 0x0b, 0xb2, 0x3d, + 0xd7, 0xee, 0x67, 0xb5, 0xc7, 0x96, 0x9c, 0xe6, 0x32, 0x91, 0x72, 0x3f, 0xe0, 0xb5, 0x69, 0x3b, + 0x66, 0xd5, 0x68, 0x3b, 0x3b, 0xbf, 0x57, 0x23, 0x01, 0x37, 0x8f, 0x31, 0x66, 0xd4, 0x18, 0xa8, + 0x6a, 0xbf, 0x12, 0xed, 0xb0, 0x30, 0x44, 0x23, 0x3c, 0x1a, 0xee, 0xc0, 0x1b, 0xa5, 0xdf, 0x76, + 0xea, 0xb6, 0x5f, 0xd1, 0x50, 0xc2, 0xd2, 0xdf, 0xbb, 0xd8, 0x0c, 0x4a, 0x3f, 0xe7, 0xa6, 0xa8, + 0x07, 0xe3, 0x5b, 0xf6, 0x1a, 0x5a, 0x4d, 0xa9, 0xbc, 0xd4, 0x2c, 0xe4, 0xf3, 0x98, 0x08, 0xa1, + 0xf6, 0xdc, 0xf1, 0xfa, 0xc7, 0x67, 0x4d, 0xce, 0xa0, 0x17, 0x2d, 0x45, 0xdb, 0xa2, 0x6b, 0xdb, + 0xcc, 0xed, 0xb6, 0x77, 0x77, 0xa8, 0xe6, 0xf0, 0xda, 0x76, 0xdb, 0x99, 0x27, 0x90, 0xff, 0x5e, + 0xd0, 0xef, 0x0f, 0xda, 0xa0, 0x13, 0x82, 0x5b, 0xfd, 0xe0, 0x9f, 0x77, 0xa8, 0x59, 0x7c, 0x0f, + 0x77, 0xb7, 0xdb, 0x4e, 0x71, 0xec, 0x3e, 0x01, 0xf5, 0x33, 0xe2, 0xf7, 0xb9, 0x95, 0xa6, 0xf5, + 0x3d, 0x8a, 0xd5, 0x21, 0x77, 0x5a, 0x20, 0xcb, 0x3d, 0x26, 0x20, 0x5c, 0xce, 0xe3, 0x4a, 0xa2, + 0x08, 0x75, 0x7c, 0x52, 0x8c, 0xde, 0x77, 0xdf, 0x1e, 0x26, 0x99, 0xfb, 0x14, 0x2e, 0x0b, 0xae, + 0x2c, 0xc5, 0x7a, 0xb6, 0xef, 0xf6, 0x20, 0x68, 0x61, 0x39, 0x65, 0x83, 0x3b, 0x0e, 0xa0, 0xc6, + 0xd9, 0xa3, 0xb2, 0xd3, 0x67, 0xf5, 0x5d, 0x24, 0xda, 0x2a, 0x2f, 0x7a, 0x5f, 0x22, 0x07, 0xd4, + 0x3c, 0x61, 0xb4, 0x17, 0xa0, 0xcd, 0x48, 0x31, 0x8b, 0x3e, 0xd0, 0xce, 0x7d, 0xe0, 0x6b, 0x1f, + 0x69, 0xe7, 0xd9, 0x96, 0x1e, 0x92, 0x83, 0x05, 0xad, 0x72, 0xc6, 0x69, 0x73, 0x80, 0x12, 0x4a, + 0xa7, 0x93, 0xec, 0x9f, 0xd2, 0x1f, 0x6e, 0x8d, 0x97, 0x4c, 0x27, 0x73, 0xd9, 0x74, 0x92, 0xf6, + 0x55, 0xb5, 0xde, 0x5d, 0x12, 0xda, 0x13, 0x6a, 0x69, 0x2a, 0x31, 0xed, 0xab, 0x6c, 0xad, 0xf7, + 0x48, 0x91, 0xea, 0xc8, 0xcb, 0xa5, 0xd5, 0x7b, 0xab, 0x5b, 0x42, 0x6e, 0x53, 0x28, 0x1c, 0x09, + 0x23, 0x75, 0x69, 0x7f, 0x75, 0x9b, 0x54, 0x46, 0xfe, 0x75, 0x7e, 0x7c, 0xd1, 0x3f, 0xb7, 0x59, + 0xf2, 0x4f, 0x82, 0x1c, 0x26, 0xe1, 0x4d, 0xde, 0x1b, 0xc4, 0x9b, 0x8c, 0x37, 0x19, 0x6f, 0xe6, + 0x3d, 0xfc, 0x96, 0x81, 0x37, 0xf3, 0xee, 0xcd, 0xf1, 0x1c, 0xd5, 0x02, 0x98, 0x2f, 0x40, 0x1a, + 0x5f, 0xba, 0x0b, 0xf2, 0x0b, 0xa0, 0x50, 0xdb, 0xbf, 0xe7, 0x0b, 0x52, 0xb9, 0x67, 0x29, 0x59, + 0x7c, 0xf3, 0xc8, 0x5b, 0xfd, 0x11, 0x79, 0x0b, 0x21, 0x9f, 0x95, 0x4d, 0x79, 0xac, 0x0e, 0x90, + 0x49, 0xdb, 0xe7, 0x02, 0x2a, 0x79, 0x5b, 0x5d, 0x31, 0x72, 0xda, 0x3a, 0x17, 0xfa, 0x93, 0x65, + 0xfb, 0xe0, 0xb6, 0xb3, 0xa0, 0x33, 0x8c, 0x81, 0x26, 0xab, 0xf3, 0x2e, 0x94, 0x90, 0xdd, 0x1f, + 0x6e, 0x69, 0x0a, 0x4c, 0xa7, 0xac, 0x5d, 0xa1, 0xd6, 0x3a, 0x3f, 0x7a, 0xf3, 0xbe, 0x48, 0x6b, + 0xb8, 0x62, 0x3a, 0x59, 0x5e, 0xac, 0x6a, 0x2d, 0x2f, 0xab, 0x7e, 0x91, 0xe1, 0x9c, 0xf3, 0xd6, + 0xd1, 0xdb, 0xe6, 0x91, 0xa5, 0x22, 0x63, 0x4f, 0xa4, 0x4d, 0xaa, 0xb0, 0xbc, 0x5d, 0x77, 0xdb, + 0x1c, 0xb2, 0xfa, 0xc3, 0xbb, 0xc2, 0x6d, 0x92, 0xbf, 0x72, 0xf0, 0x17, 0xb7, 0x45, 0x28, 0x2b, + 0x20, 0xf5, 0x87, 0x9a, 0xa5, 0x00, 0x0d, 0xcd, 0xbd, 0xad, 0x92, 0xb2, 0x41, 0x25, 0xcf, 0xa0, + 0xef, 0x43, 0x42, 0x4c, 0x98, 0xa7, 0xe1, 0x4e, 0xb2, 0x07, 0xbf, 0xfb, 0xb8, 0xbf, 0xe6, 0x29, + 0x33, 0x30, 0x32, 0xd1, 0x50, 0x72, 0xa8, 0x7b, 0xb0, 0x7b, 0x30, 0x39, 0x98, 0x74, 0xdc, 0xb0, + 0x25, 0xa9, 0x4a, 0x1d, 0xa4, 0x4c, 0x87, 0x5c, 0x13, 0x7c, 0x7d, 0xe0, 0xf5, 0xc3, 0x83, 0x7d, + 0x1c, 0xae, 0xd4, 0x3e, 0x3c, 0xf0, 0xc2, 0x81, 0xc4, 0x22, 0xd1, 0xcb, 0xed, 0x8a, 0xe7, 0xaa, + 0xaf, 0xb2, 0xb6, 0x24, 0x15, 0xb1, 0xeb, 0xe1, 0x85, 0x81, 0x44, 0x85, 0xc8, 0x39, 0xf7, 0xea, + 0x9c, 0xbf, 0x3f, 0xa0, 0x4a, 0xdf, 0xff, 0x65, 0x61, 0x74, 0xe2, 0x79, 0x5f, 0x36, 0xe7, 0x3e, + 0x36, 0xee, 0x91, 0x01, 0xdf, 0x44, 0x96, 0x5b, 0x87, 0x8a, 0x1a, 0x36, 0x39, 0xa2, 0xbb, 0x78, + 0x94, 0xa3, 0x2b, 0x17, 0x94, 0x1a, 0x48, 0xab, 0xde, 0x5b, 0x6a, 0xd1, 0xc2, 0x72, 0xe8, 0x29, + 0x92, 0x0d, 0x8b, 0xdf, 0x5c, 0x83, 0xef, 0x5c, 0x88, 0xbc, 0x5b, 0x5e, 0xe6, 0x8c, 0xb8, 0x6a, + 0x9d, 0xd9, 0x68, 0x87, 0x11, 0x77, 0xb0, 0xa4, 0x10, 0xb8, 0xbe, 0x11, 0x2d, 0x0e, 0x72, 0x87, + 0xac, 0x6c, 0x2e, 0x2d, 0x24, 0x69, 0x6f, 0x65, 0x2b, 0x8f, 0x17, 0x1e, 0x61, 0xcb, 0x7a, 0x4e, + 0x8c, 0x94, 0x44, 0xa7, 0xf6, 0xc5, 0x5a, 0xd5, 0xbd, 0xcb, 0x49, 0x6a, 0xbd, 0x7b, 0xcf, 0x72, + 0xf4, 0x9d, 0xa6, 0x5d, 0xa0, 0xd1, 0x96, 0x7a, 0x5f, 0x76, 0xa4, 0x99, 0xed, 0x7f, 0x19, 0x92, + 0x63, 0xd9, 0x86, 0xdd, 0x29, 0xd1, 0xce, 0x34, 0xd7, 0xb6, 0x43, 0x2e, 0x1d, 0x07, 0xf7, 0xc3, + 0x03, 0x8a, 0x3b, 0x8b, 0xe7, 0x5b, 0x88, 0xb9, 0xbf, 0x92, 0xe3, 0x40, 0x4f, 0x74, 0x27, 0xa7, + 0x57, 0x82, 0x43, 0x75, 0x29, 0x37, 0x3a, 0x00, 0x0f, 0x7a, 0xc4, 0x25, 0x8c, 0xc4, 0x23, 0xe8, + 0x95, 0x17, 0x70, 0x5d, 0xf4, 0x49, 0x3e, 0x2b, 0x97, 0x02, 0xde, 0x78, 0xc1, 0x07, 0xa8, 0x42, + 0x7f, 0xeb, 0x07, 0x1c, 0x3e, 0xdc, 0x8b, 0x63, 0xfa, 0x1e, 0x92, 0x7f, 0xf4, 0x72, 0xf9, 0x6f, + 0xb1, 0x64, 0xe9, 0x46, 0xf9, 0x9e, 0xe8, 0xd6, 0x84, 0x9f, 0x21, 0x50, 0xed, 0x81, 0x5c, 0xbf, + 0x97, 0xa4, 0x47, 0x40, 0x37, 0x0f, 0x2f, 0xa5, 0x2c, 0xdc, 0xad, 0xb8, 0x67, 0x2b, 0x0d, 0x42, + 0xfb, 0x3a, 0xa5, 0x66, 0x41, 0x07, 0x06, 0xe7, 0xfb, 0xec, 0xdc, 0x5f, 0x1f, 0x55, 0xac, 0xe8, + 0x29, 0xe5, 0xda, 0xa0, 0x6e, 0x6b, 0x09, 0x5c, 0x5d, 0x14, 0x73, 0x57, 0xb5, 0x4a, 0xb6, 0xe8, + 0x2f, 0x9e, 0xe8, 0x53, 0xf8, 0x75, 0x42, 0x23, 0x31, 0xef, 0x5a, 0x46, 0x52, 0x4b, 0x3e, 0x9e, + 0x24, 0x3c, 0x99, 0x5b, 0x6d, 0x78, 0x92, 0x77, 0xdd, 0xd5, 0x62, 0x09, 0xd8, 0xf0, 0x2e, 0xb7, + 0x59, 0xa1, 0xb7, 0x05, 0x75, 0x2a, 0xa7, 0xc7, 0xc1, 0xb5, 0x2f, 0xe2, 0xfa, 0x04, 0xd7, 0x25, + 0x5c, 0x97, 0x51, 0x9f, 0x11, 0xe0, 0x0c, 0xa1, 0x42, 0x52, 0x03, 0x95, 0x42, 0xe3, 0xb7, 0x04, + 0x90, 0xa3, 0x6f, 0x62, 0x60, 0xa9, 0xf8, 0x8d, 0xf9, 0x26, 0xfa, 0x1b, 0x7c, 0x96, 0xeb, 0xd4, + 0x2b, 0xa2, 0x44, 0x39, 0x5f, 0x8c, 0x14, 0x56, 0x21, 0x5b, 0xb1, 0xde, 0xa2, 0xdd, 0x7e, 0x5a, + 0x60, 0x1d, 0x78, 0x4a, 0x78, 0x79, 0x3f, 0x4b, 0x00, 0xb2, 0x84, 0x7f, 0x86, 0xf6, 0x89, 0x9a, + 0xf3, 0x39, 0xb5, 0x3e, 0xab, 0xca, 0xba, 0x35, 0xab, 0x93, 0xf5, 0x49, 0xe0, 0x94, 0x6b, 0x1c, + 0x79, 0xb7, 0x54, 0xcc, 0x55, 0xe8, 0x54, 0x21, 0xf4, 0xe1, 0x27, 0x94, 0x15, 0x46, 0x1b, 0x12, + 0x6d, 0x75, 0x80, 0x1b, 0xed, 0xd2, 0x9f, 0xfb, 0x4a, 0xc1, 0xa5, 0xf7, 0xae, 0x40, 0xcd, 0xbb, + 0x40, 0x3d, 0x12, 0xa8, 0xc1, 0xdc, 0xda, 0x11, 0xc8, 0xd9, 0xb5, 0x82, 0xe4, 0xd6, 0xe5, 0xfe, + 0x1b, 0xfb, 0x41, 0x1d, 0xad, 0x8b, 0x80, 0x3b, 0xd1, 0x66, 0xd0, 0xae, 0x2c, 0xfe, 0x30, 0xae, + 0x2a, 0x5c, 0x95, 0xb8, 0x82, 0xd7, 0xad, 0x19, 0xb7, 0x58, 0xd1, 0x1f, 0xd5, 0x62, 0x16, 0xa5, + 0x2e, 0xdd, 0x5e, 0xef, 0x2c, 0x2c, 0x30, 0x74, 0xc5, 0x0a, 0xd7, 0x44, 0x67, 0xb6, 0xb3, 0x01, + 0x3c, 0x61, 0x5b, 0x6c, 0x27, 0x59, 0x78, 0x9e, 0x95, 0x79, 0x26, 0xe8, 0x24, 0xe7, 0xf6, 0x08, + 0x65, 0x07, 0x3c, 0x94, 0x3b, 0x58, 0x89, 0x10, 0x1b, 0x62, 0xf2, 0x06, 0x07, 0x10, 0x96, 0x33, + 0x04, 0x59, 0xe9, 0xf6, 0x4a, 0x84, 0x2f, 0xa7, 0x7c, 0xc4, 0xe4, 0x41, 0x76, 0x52, 0x44, 0x6d, + 0xa5, 0xfa, 0xcd, 0xae, 0xe5, 0xe4, 0x44, 0x5e, 0x41, 0x68, 0x91, 0x52, 0x63, 0xf0, 0x8e, 0xa0, + 0x3e, 0xcf, 0x83, 0xb1, 0x34, 0x07, 0x12, 0xe4, 0xa9, 0x9f, 0x9c, 0x23, 0x67, 0xdc, 0x3c, 0x6d, + 0x05, 0x65, 0x93, 0x13, 0xe1, 0xd9, 0xb7, 0xac, 0xe0, 0x1d, 0x72, 0xc6, 0x53, 0x16, 0x38, 0x36, + 0x7e, 0x45, 0x4e, 0xe6, 0x5b, 0x38, 0x0d, 0xc7, 0x98, 0xc7, 0xbc, 0x73, 0x7c, 0xf6, 0xcc, 0xa5, + 0xc6, 0xec, 0x51, 0x36, 0x24, 0x37, 0x87, 0xa3, 0x4a, 0x9f, 0x41, 0x4a, 0xbd, 0xe3, 0xca, 0x99, + 0xd9, 0x8c, 0x11, 0xdd, 0x36, 0x93, 0xe5, 0xcb, 0x1c, 0x4b, 0x21, 0xcf, 0xbd, 0x27, 0x18, 0xfa, + 0x82, 0xd7, 0x97, 0x8b, 0x5a, 0x4c, 0xc5, 0x3d, 0xc7, 0x81, 0xf4, 0x65, 0x90, 0x50, 0x02, 0x08, + 0x53, 0x6e, 0x18, 0xdc, 0x70, 0x2e, 0xc9, 0x66, 0x3a, 0x09, 0xa9, 0x29, 0x79, 0x2a, 0x09, 0x8e, + 0x9b, 0x67, 0xc4, 0x17, 0x20, 0x3e, 0xe7, 0x3a, 0xf1, 0xf6, 0x3b, 0xbb, 0x92, 0x26, 0xca, 0x13, + 0xbf, 0x76, 0xae, 0x21, 0x35, 0xc8, 0xa4, 0x96, 0x06, 0x56, 0x50, 0xbe, 0x9f, 0x73, 0x9c, 0x38, + 0xd8, 0x37, 0xf6, 0x8b, 0x3b, 0x91, 0x23, 0xe2, 0x0a, 0x18, 0xab, 0xd7, 0x89, 0xe3, 0x1c, 0xf2, + 0xd2, 0x18, 0x4c, 0xcd, 0x85, 0x11, 0xcf, 0x92, 0xee, 0xd6, 0x9f, 0xe2, 0xe0, 0x46, 0x56, 0x9e, + 0x97, 0x06, 0x67, 0xb5, 0x15, 0x83, 0x2f, 0xec, 0x46, 0x3d, 0x9b, 0xdd, 0xb1, 0xd0, 0xcc, 0x10, + 0x78, 0x04, 0x30, 0x12, 0x48, 0xf2, 0x2f, 0xf8, 0xaf, 0x84, 0xbb, 0x35, 0x67, 0x3f, 0x99, 0x16, + 0x60, 0x94, 0x88, 0xed, 0x20, 0xab, 0xbe, 0x7f, 0x81, 0x67, 0xab, 0xb9, 0xbd, 0x67, 0xfb, 0xd9, + 0xd2, 0x1b, 0x74, 0x68, 0x0b, 0x84, 0x63, 0x1b, 0x18, 0x9e, 0x17, 0x5e, 0x6d, 0x23, 0x7a, 0xad, + 0x24, 0x58, 0x61, 0x2a, 0x97, 0xca, 0x32, 0xa2, 0xe1, 0x78, 0x10, 0xed, 0x29, 0xfb, 0x93, 0xfc, + 0x3b, 0x13, 0xf9, 0xe1, 0x6e, 0xb5, 0xed, 0xa7, 0x0c, 0xf1, 0x1e, 0x02, 0x5f, 0xe7, 0x7b, 0x15, + 0xda, 0x06, 0xe1, 0x53, 0xba, 0x20, 0xcf, 0x9a, 0x1a, 0x76, 0x92, 0xdc, 0xb4, 0x93, 0xac, 0x4d, + 0xa8, 0xb9, 0x2a, 0x6c, 0xf7, 0x99, 0x42, 0xcf, 0xae, 0x67, 0x5a, 0xe2, 0x12, 0x02, 0xc1, 0xd8, + 0x86, 0x05, 0x9b, 0x50, 0x4e, 0x1c, 0x1c, 0xcb, 0xea, 0xa8, 0x8c, 0x4e, 0xd7, 0xb4, 0xb8, 0xed, + 0x2f, 0xf0, 0x55, 0x63, 0xf7, 0xb4, 0x4a, 0xb2, 0x36, 0x06, 0x99, 0xbe, 0xb8, 0x25, 0x62, 0x1b, + 0x90, 0x4a, 0x2f, 0xff, 0x01, 0x51, 0xce, 0x9c, 0xab, 0xca, 0xaf, 0x31, 0xca, 0xaf, 0xfe, 0xbc, + 0xf2, 0x53, 0xbb, 0x35, 0xac, 0x23, 0xba, 0x7c, 0x09, 0x9e, 0x6e, 0x51, 0x7c, 0x28, 0xd5, 0x47, + 0x36, 0x6f, 0x1b, 0xb8, 0xf9, 0x73, 0x5a, 0x96, 0xbe, 0x6a, 0x92, 0x8a, 0x41, 0xa8, 0x0d, 0xf2, + 0xd8, 0x4e, 0x0e, 0xc5, 0x38, 0x7f, 0x9a, 0xc7, 0x79, 0x57, 0xad, 0x27, 0xdb, 0x0d, 0x3c, 0x45, + 0xa1, 0xa9, 0x40, 0xef, 0x3c, 0x0b, 0x0e, 0x66, 0xc5, 0x7d, 0xd8, 0xd9, 0xe4, 0x41, 0x4f, 0x53, + 0xd0, 0xd7, 0x47, 0x7e, 0x34, 0x3b, 0x48, 0x81, 0xd9, 0x2b, 0xc8, 0x49, 0xc5, 0xf8, 0x75, 0x51, + 0x89, 0xcf, 0xaa, 0xd7, 0xba, 0x02, 0x3a, 0xd1, 0x82, 0x4d, 0xb3, 0xbb, 0x34, 0x8d, 0xbc, 0xa1, + 0x36, 0xf2, 0x43, 0x96, 0xf3, 0x51, 0x80, 0x47, 0x6a, 0xe8, 0x9e, 0xcd, 0xe5, 0x3e, 0xf2, 0xc6, + 0x6a, 0x6c, 0x37, 0xf1, 0x3e, 0x07, 0x8c, 0xe1, 0xc9, 0x25, 0x39, 0x78, 0x92, 0x12, 0x25, 0xf8, + 0xcd, 0x88, 0x53, 0x86, 0x4b, 0x25, 0xc9, 0xe2, 0x98, 0xeb, 0xcf, 0x89, 0x0c, 0xa0, 0xe7, 0x49, + 0x91, 0x03, 0xde, 0x6a, 0x9e, 0xe5, 0x99, 0x1d, 0xa3, 0x20, 0xae, 0xf0, 0x6c, 0x70, 0x6f, 0x0a, + 0x89, 0xdf, 0x1a, 0xf4, 0xb2, 0x37, 0xfd, 0x28, 0x59, 0xac, 0x8d, 0x48, 0xfd, 0x7d, 0x2d, 0x39, + 0xbe, 0x4c, 0x1f, 0x4b, 0x8e, 0x39, 0xd0, 0x08, 0x27, 0xd5, 0xef, 0xd3, 0x64, 0xd5, 0x09, 0x9a, + 0x73, 0xde, 0x11, 0xc3, 0xc5, 0x5f, 0xb8, 0x10, 0xcf, 0x5c, 0x05, 0x71, 0x57, 0xce, 0x8e, 0x86, + 0xb2, 0xb6, 0xc8, 0xc6, 0x39, 0xbe, 0x08, 0x79, 0xfd, 0x35, 0xf8, 0x2d, 0x55, 0x30, 0x0e, 0xc6, + 0xfa, 0x5e, 0xf8, 0x88, 0x4a, 0x9b, 0x41, 0x19, 0x88, 0x0b, 0x6f, 0xfe, 0x88, 0x82, 0x6e, 0x4b, + 0xac, 0xb7, 0x7d, 0xf2, 0x40, 0xef, 0x99, 0x8d, 0x52, 0x2f, 0x4b, 0xea, 0xe0, 0x74, 0x52, 0x53, + 0xaf, 0x77, 0x05, 0x78, 0x45, 0x1b, 0xd5, 0x20, 0x45, 0x28, 0xb2, 0x94, 0x4c, 0x3e, 0x39, 0x25, + 0xbf, 0xf7, 0x3f, 0x47, 0xf2, 0x22, 0x00, 0x86, 0x52, 0xe5, 0xd9, 0xe6, 0x50, 0x62, 0xb6, 0x8f, + 0xca, 0x43, 0x89, 0x48, 0x1b, 0x35, 0x00, 0x02, 0x60, 0xea, 0xb7, 0x62, 0xae, 0x16, 0x1c, 0x6c, + 0x39, 0xa8, 0xdf, 0xea, 0x98, 0xab, 0x34, 0x00, 0x4f, 0x41, 0xd4, 0xdb, 0x87, 0x9c, 0x0e, 0x14, + 0xfb, 0x28, 0x1c, 0x39, 0x58, 0xe2, 0xa3, 0x9a, 0xc8, 0x4b, 0x8c, 0x83, 0x2b, 0x87, 0xd1, 0x93, + 0x33, 0xe8, 0x96, 0x44, 0xb9, 0x32, 0x97, 0xdf, 0x47, 0xb6, 0x72, 0x6d, 0x45, 0x5d, 0x4a, 0xd0, + 0x8a, 0xe1, 0xcd, 0xcf, 0x53, 0x29, 0xe0, 0x28, 0x7f, 0xfd, 0xb0, 0x63, 0x6e, 0x2c, 0xf9, 0xfa, + 0x31, 0xf1, 0x0d, 0x97, 0xed, 0xa3, 0x3a, 0x91, 0xca, 0xc6, 0xa5, 0x41, 0x3a, 0x7e, 0xd0, 0x6f, + 0x8e, 0x05, 0xd1, 0x76, 0x7e, 0xe0, 0xef, 0xf8, 0xef, 0xc3, 0xdf, 0x67, 0x87, 0x3e, 0x1f, 0x7f, + 0x9f, 0xed, 0xb8, 0x0a, 0x7f, 0x39, 0x28, 0x3b, 0xd8, 0x41, 0x01, 0xda, 0xd5, 0xd7, 0x2c, 0x23, + 0xf7, 0xa0, 0x08, 0x09, 0xeb, 0x21, 0x6d, 0x1c, 0x12, 0xe6, 0x52, 0x10, 0x16, 0x1a, 0x93, 0x2a, + 0x64, 0x84, 0xd5, 0x8c, 0x49, 0x57, 0xc3, 0x30, 0x02, 0xb6, 0x72, 0xf4, 0x07, 0x39, 0x90, 0xb3, + 0xa5, 0x76, 0x76, 0x25, 0x05, 0x87, 0x86, 0x66, 0xd7, 0x22, 0x07, 0x8c, 0x17, 0xfc, 0xc5, 0xe6, + 0x08, 0x7f, 0x3b, 0x78, 0x8e, 0xa4, 0xd9, 0x11, 0xaa, 0x09, 0xd4, 0x6e, 0x39, 0xe0, 0x9e, 0x18, + 0xeb, 0xed, 0x98, 0x7c, 0x70, 0xb4, 0x6d, 0xba, 0xd3, 0x6d, 0x13, 0xd9, 0x3c, 0x70, 0xbd, 0x76, + 0x31, 0xd9, 0x1d, 0x73, 0xb9, 0xae, 0x62, 0x4d, 0x4d, 0x82, 0xc6, 0x00, 0x59, 0x62, 0x25, 0x95, + 0x78, 0xc8, 0x2c, 0x28, 0xae, 0x8e, 0x5b, 0x0d, 0x12, 0x42, 0x9b, 0xc0, 0x1e, 0x5a, 0xeb, 0xd4, + 0xd1, 0x31, 0xad, 0xd4, 0x24, 0x5a, 0x69, 0xbe, 0x68, 0xa5, 0x05, 0xa2, 0x95, 0xee, 0x4e, 0xb5, + 0x12, 0x4b, 0x4c, 0x46, 0x4b, 0x05, 0xaf, 0x6e, 0xa9, 0x91, 0x8d, 0x7f, 0xb0, 0x4c, 0xa3, 0xb5, + 0x46, 0x16, 0x71, 0x6b, 0x35, 0xdc, 0xdf, 0xf4, 0x60, 0xe3, 0x1c, 0xee, 0x31, 0x4d, 0x35, 0xc0, + 0x92, 0x77, 0x7e, 0x04, 0xf5, 0xf5, 0xab, 0x8a, 0x2f, 0x13, 0xb4, 0x54, 0x12, 0x4a, 0x88, 0x94, + 0xa5, 0x77, 0x00, 0xf3, 0x68, 0x0b, 0x60, 0x56, 0xb4, 0x85, 0x55, 0x2d, 0x6f, 0x9c, 0xc3, 0x5b, + 0xde, 0xa2, 0x73, 0xe2, 0x34, 0xb2, 0x65, 0x7a, 0x13, 0xc9, 0xd3, 0x9b, 0xc5, 0x9a, 0x19, 0xfa, + 0xf2, 0xd8, 0x2f, 0x3f, 0xbd, 0x72, 0xf5, 0x97, 0xe3, 0x76, 0x7a, 0xa5, 0xc6, 0x47, 0xc5, 0x49, + 0x2e, 0x13, 0xf3, 0x4c, 0xe6, 0x66, 0x18, 0xa1, 0x73, 0x9a, 0x97, 0x82, 0x66, 0x4b, 0x99, 0xfb, + 0x44, 0xdd, 0xe0, 0x63, 0xf9, 0xb7, 0x87, 0x28, 0x17, 0xa3, 0x61, 0x9e, 0xce, 0x1f, 0xb5, 0x11, + 0x9d, 0x6f, 0x6a, 0x57, 0xd4, 0xf2, 0x14, 0x1f, 0x5c, 0xb0, 0x09, 0xdf, 0xe6, 0xe0, 0x5b, 0x5b, + 0x9b, 0x57, 0xa4, 0xae, 0xd2, 0x53, 0xfb, 0x7b, 0x0c, 0x5e, 0x2a, 0x2d, 0xd8, 0x29, 0xf8, 0x9a, + 0x35, 0x64, 0xc3, 0x18, 0x6c, 0x8d, 0x8d, 0xe1, 0x63, 0xb2, 0x3e, 0x9f, 0x9a, 0xa5, 0xd8, 0xfa, + 0x1f, 0x8e, 0x87, 0x78, 0xa6, 0xb2, 0x1f, 0xb2, 0x69, 0xbc, 0xd4, 0x89, 0x51, 0x1e, 0x63, 0x81, + 0x45, 0x95, 0x9d, 0x31, 0xa5, 0x41, 0xc8, 0xc9, 0xf9, 0xfa, 0xac, 0x3b, 0x4b, 0x9f, 0xfd, 0x90, + 0xbb, 0xe2, 0x59, 0x78, 0xb2, 0xe2, 0xc9, 0x9a, 0x38, 0xf1, 0xc2, 0x11, 0x7d, 0xbe, 0x53, 0xec, + 0x43, 0x62, 0xee, 0x97, 0x85, 0x1a, 0x15, 0x2b, 0x3b, 0x49, 0xdc, 0x67, 0x2e, 0xa7, 0x5c, 0x92, + 0xf9, 0x69, 0xca, 0x72, 0x8c, 0x9c, 0x66, 0x07, 0x3f, 0x2d, 0xa3, 0x9b, 0x69, 0x02, 0xa7, 0x45, + 0x29, 0xc5, 0xed, 0x24, 0xf2, 0xb6, 0xd8, 0xdc, 0x94, 0x57, 0x93, 0x04, 0x44, 0x02, 0x37, 0x2c, + 0xf7, 0xb8, 0x6b, 0x5d, 0x2c, 0xe5, 0xb9, 0xe3, 0x64, 0xca, 0x6f, 0x0f, 0x5f, 0x77, 0xe7, 0x34, + 0x99, 0x64, 0x31, 0xab, 0x2c, 0x0d, 0x26, 0xc7, 0xcf, 0x92, 0x4c, 0x0b, 0x8a, 0x3d, 0xa4, 0x7a, + 0x0c, 0x8d, 0x0b, 0x2f, 0x83, 0xd4, 0x54, 0x62, 0x48, 0x4d, 0xdb, 0x58, 0xb2, 0x46, 0x3e, 0x5d, + 0xc5, 0x32, 0xe4, 0x1c, 0x27, 0x46, 0x78, 0xb9, 0x43, 0xf6, 0x56, 0xb1, 0x8e, 0x6a, 0x0d, 0xd2, + 0x84, 0x45, 0x79, 0xba, 0x96, 0xda, 0x61, 0x3a, 0xf9, 0x94, 0xa0, 0x7e, 0x6d, 0x6f, 0x77, 0x9b, + 0x54, 0x6c, 0x02, 0x06, 0x6d, 0xc0, 0x69, 0xd9, 0xeb, 0x03, 0x01, 0x6a, 0xac, 0x9c, 0xd9, 0x6d, + 0xa1, 0x18, 0x4a, 0x81, 0xa4, 0x2e, 0xed, 0x4a, 0x2e, 0x3a, 0x73, 0x6b, 0x94, 0xdc, 0xca, 0xa8, + 0x2e, 0x38, 0x34, 0xad, 0x8e, 0x2a, 0xfc, 0x92, 0x18, 0x89, 0x8a, 0xd0, 0x46, 0xfe, 0xdb, 0x99, + 0x7f, 0x07, 0xa0, 0x39, 0x16, 0xe3, 0x2d, 0xa4, 0x96, 0x03, 0x4e, 0x79, 0x30, 0x39, 0xaa, 0x21, + 0x02, 0xbe, 0x32, 0x01, 0x5f, 0x4e, 0xaa, 0x06, 0x63, 0xe2, 0xa2, 0xed, 0xe1, 0x31, 0xba, 0xa4, + 0xb1, 0x46, 0x9a, 0x92, 0xb9, 0xa0, 0x8f, 0xf8, 0xc8, 0x82, 0xf1, 0xc8, 0xca, 0xfb, 0xc0, 0x8c, + 0x31, 0xe9, 0x84, 0x31, 0x2f, 0x5e, 0x27, 0x66, 0x37, 0x2c, 0xce, 0x7a, 0x68, 0xed, 0x1f, 0x8b, + 0x39, 0xca, 0x4f, 0x66, 0x01, 0x12, 0xed, 0xb2, 0xf8, 0x1d, 0x11, 0xbf, 0x57, 0x20, 0x21, 0x16, + 0x99, 0x1e, 0x02, 0x6d, 0x9d, 0x74, 0x5d, 0x76, 0x53, 0xc3, 0x26, 0x48, 0xc6, 0x0b, 0xbe, 0xcc, + 0x33, 0x12, 0x5f, 0x87, 0x56, 0x7f, 0xb8, 0xa2, 0x5c, 0x4a, 0x76, 0x69, 0x78, 0x97, 0xb5, 0x6f, + 0x88, 0xdf, 0xf9, 0x85, 0x5d, 0x44, 0xb6, 0x6c, 0x6d, 0xe1, 0x6a, 0xfa, 0xab, 0x5f, 0x38, 0xb3, + 0xcd, 0x3d, 0x3c, 0x7b, 0xaa, 0x64, 0xac, 0xe4, 0x79, 0xb0, 0x06, 0x5e, 0xd1, 0x49, 0xcf, 0xa9, + 0xd7, 0x2f, 0xca, 0xd5, 0xe7, 0xd2, 0x13, 0x2e, 0x71, 0x97, 0x20, 0xb3, 0x6d, 0x57, 0x15, 0xf1, + 0x6c, 0x4d, 0xb8, 0x71, 0xcf, 0xa4, 0xcc, 0xc4, 0x1a, 0xf1, 0x3e, 0x29, 0xde, 0xa5, 0x66, 0xf3, + 0x3c, 0xb9, 0xda, 0x29, 0x66, 0x47, 0x16, 0xaa, 0xcd, 0x5f, 0x5e, 0x4a, 0x13, 0xb4, 0xf9, 0xea, + 0x62, 0x71, 0xff, 0x86, 0xba, 0xd0, 0x85, 0xf0, 0x8a, 0x42, 0xb2, 0x97, 0x42, 0x2a, 0x02, 0x2f, + 0x80, 0x04, 0x3e, 0x72, 0xd6, 0x4b, 0xe0, 0x23, 0xa2, 0x0d, 0x41, 0x4b, 0x72, 0xb3, 0x39, 0xcf, + 0x4d, 0x5f, 0x51, 0x65, 0xfc, 0x66, 0x42, 0xe2, 0x92, 0x05, 0x46, 0x6d, 0xa0, 0x3f, 0xbb, 0x78, + 0x32, 0xbb, 0xa1, 0xc1, 0xaa, 0xb9, 0x51, 0x6a, 0x36, 0xbb, 0xdd, 0xe8, 0xd9, 0x59, 0x6e, 0x49, + 0x35, 0x8b, 0xd2, 0x16, 0x40, 0xeb, 0xff, 0xd8, 0xbb, 0x7c, 0xdc, 0xbc, 0x7c, 0x99, 0x32, 0x43, + 0x6b, 0xf8, 0x72, 0x95, 0xf6, 0x75, 0x17, 0xf9, 0x3c, 0x72, 0x08, 0x3c, 0xc7, 0xec, 0x2b, 0x07, + 0xa4, 0x59, 0xe0, 0xfe, 0x1b, 0xbd, 0xc4, 0x7c, 0xba, 0x43, 0xdb, 0x95, 0x4c, 0xb4, 0x3e, 0x7c, + 0xb8, 0xea, 0x03, 0x6d, 0x5f, 0x7b, 0xa9, 0x83, 0x63, 0xc9, 0x69, 0x66, 0xc8, 0x3e, 0xb3, 0x76, + 0xdc, 0xb4, 0x2b, 0xb9, 0xd8, 0x8a, 0x3c, 0x8e, 0x32, 0x3d, 0xd9, 0xb2, 0xef, 0x4f, 0x0a, 0x29, + 0x2c, 0xa8, 0xe8, 0xf1, 0x1e, 0x2e, 0x25, 0x21, 0xf3, 0x0c, 0x10, 0xbe, 0x5e, 0xd4, 0xbe, 0x80, + 0xbf, 0xb6, 0x8d, 0x7e, 0x7d, 0x0b, 0xbe, 0xce, 0xad, 0x98, 0xa1, 0x25, 0x63, 0x73, 0x7e, 0xd0, + 0xa2, 0x75, 0x95, 0xb6, 0x68, 0x3d, 0xb1, 0xba, 0xed, 0x1f, 0x68, 0x6b, 0x04, 0x2c, 0x19, 0xb3, + 0x27, 0x80, 0xeb, 0x70, 0x79, 0xf2, 0x9c, 0xcb, 0x9f, 0x5d, 0xa9, 0x7f, 0xa4, 0x98, 0x8c, 0x70, + 0xab, 0x11, 0x9e, 0x59, 0xff, 0x48, 0x39, 0x19, 0xab, 0xd1, 0x1c, 0x2e, 0x19, 0xe1, 0xe6, 0xfa, + 0x47, 0x66, 0x05, 0x35, 0xd5, 0x48, 0x6d, 0x36, 0x42, 0x27, 0xd4, 0x3f, 0x52, 0x1a, 0x1c, 0x4d, + 0x2d, 0xf6, 0xcb, 0x7d, 0x1d, 0x35, 0xe6, 0x38, 0x4b, 0xfd, 0x23, 0x53, 0xc9, 0x95, 0x59, 0xb3, + 0xf6, 0x95, 0x67, 0xb5, 0x85, 0x73, 0xce, 0x49, 0x15, 0xc0, 0x7d, 0x8a, 0xce, 0xef, 0x16, 0x56, + 0x21, 0xbd, 0x89, 0x7a, 0xf0, 0xf6, 0x16, 0xed, 0x0a, 0x6b, 0x52, 0x11, 0xde, 0x41, 0x07, 0x3d, + 0x8b, 0x21, 0x99, 0x3d, 0x43, 0x53, 0xf1, 0xcb, 0xa3, 0x35, 0x97, 0x3f, 0x43, 0x5b, 0x80, 0x9c, + 0x27, 0xf8, 0x38, 0xf7, 0x6f, 0xf8, 0x78, 0xaf, 0xa4, 0x8c, 0xa7, 0xf9, 0x28, 0x27, 0x83, 0xc7, + 0x07, 0xa6, 0xc0, 0x69, 0x9d, 0xc8, 0x31, 0xdc, 0xae, 0xf5, 0x3f, 0xab, 0x7d, 0x12, 0x6f, 0x57, + 0x96, 0x4b, 0x4e, 0xf4, 0x31, 0xab, 0xbb, 0x92, 0xf7, 0xf7, 0x69, 0xaa, 0x37, 0xa8, 0xce, 0xdf, + 0xdb, 0x97, 0x68, 0xb8, 0xb6, 0x34, 0x9f, 0xd5, 0x97, 0xfd, 0x47, 0x96, 0xc3, 0xab, 0x22, 0x75, + 0xa3, 0x65, 0x41, 0x53, 0xab, 0x33, 0x74, 0x9a, 0x27, 0xc7, 0xd4, 0xec, 0x15, 0xb4, 0xdc, 0x27, + 0x62, 0xc6, 0xc6, 0x99, 0xd6, 0x43, 0x1f, 0x17, 0xbd, 0x29, 0xe2, 0xae, 0x07, 0xbd, 0xd9, 0xa3, + 0x4b, 0xc9, 0x1c, 0xb7, 0x83, 0xca, 0x0a, 0xa2, 0xd0, 0x3d, 0xe3, 0xd9, 0x51, 0xb4, 0x64, 0x8b, + 0x25, 0x0a, 0x0a, 0x6b, 0x26, 0xe9, 0x54, 0x54, 0x50, 0xa3, 0x0b, 0x1a, 0xa5, 0x0a, 0xfd, 0xcb, + 0x67, 0xe1, 0xf2, 0x3c, 0x5d, 0x2e, 0xf4, 0x2e, 0x85, 0xbf, 0x10, 0xb1, 0x45, 0x57, 0xc5, 0x16, + 0x21, 0x16, 0x6f, 0x5e, 0xa9, 0x99, 0xf9, 0xfc, 0xbf, 0x3c, 0xe9, 0x26, 0xaf, 0xd5, 0xbc, 0x1e, + 0xe0, 0x58, 0x95, 0x9a, 0xd1, 0x55, 0xd9, 0x86, 0x4d, 0xbc, 0xd7, 0x59, 0xca, 0x8f, 0xde, 0x87, + 0xdf, 0x52, 0xe0, 0x9e, 0xa4, 0x1c, 0xe4, 0x69, 0x17, 0x79, 0xda, 0xc1, 0x3b, 0x6d, 0x71, 0xb9, + 0x03, 0x1c, 0xa2, 0x23, 0x08, 0xbd, 0xd2, 0x4d, 0xb9, 0xbf, 0xdd, 0x91, 0xec, 0x06, 0xbf, 0x90, + 0xd3, 0xe5, 0x1a, 0x69, 0x3a, 0x91, 0xa6, 0x33, 0xd8, 0x61, 0x42, 0x9f, 0xcb, 0x7d, 0xff, 0xa9, + 0x9e, 0x1e, 0x7c, 0x21, 0x77, 0xca, 0xbb, 0x93, 0x09, 0xf3, 0x6a, 0xcb, 0xbe, 0x64, 0xbc, 0xb4, + 0xd3, 0xc4, 0x3b, 0x84, 0x4d, 0x7b, 0x56, 0x57, 0xee, 0xeb, 0x8e, 0x7b, 0x78, 0xee, 0xa0, 0xe3, + 0x8e, 0xa1, 0x67, 0xc4, 0xcc, 0xfc, 0x79, 0xf4, 0xf4, 0x0b, 0x8e, 0x2a, 0x63, 0x5e, 0xfe, 0xbc, + 0x2f, 0x23, 0x35, 0x2f, 0x1f, 0xca, 0x54, 0xa3, 0xc8, 0xa3, 0x5b, 0xe4, 0xd1, 0x1d, 0x2f, 0xef, + 0x30, 0xed, 0x62, 0x7e, 0xdd, 0xd1, 0x59, 0xb9, 0x3b, 0x19, 0x2f, 0x62, 0x28, 0x39, 0x9f, 0xd5, + 0x77, 0xbc, 0xc5, 0xf9, 0x54, 0x1b, 0xf9, 0xcc, 0x49, 0xe7, 0x33, 0x21, 0x95, 0xcf, 0x6a, 0xde, + 0xe1, 0x5a, 0xed, 0x68, 0x96, 0xfa, 0x16, 0x6c, 0xe0, 0xd5, 0x97, 0xf6, 0x0c, 0x4e, 0xc9, 0x33, + 0x10, 0xbc, 0x5e, 0xaa, 0x84, 0xab, 0x79, 0xa6, 0xb4, 0x59, 0x5f, 0x17, 0x55, 0xc2, 0xe8, 0x3f, + 0xe7, 0x8d, 0xb7, 0xc7, 0x04, 0xf7, 0x94, 0x05, 0x5f, 0xce, 0x85, 0x44, 0x50, 0x48, 0x16, 0x2f, + 0x6b, 0xa9, 0x4d, 0xd0, 0x1c, 0x6d, 0x22, 0xce, 0x2c, 0xe2, 0xf2, 0x10, 0x93, 0x95, 0x8e, 0x61, + 0xed, 0xcd, 0x5e, 0x79, 0x5e, 0x72, 0x8a, 0xd6, 0x33, 0x2b, 0xd3, 0xc1, 0x1b, 0x24, 0xc5, 0x22, + 0xda, 0x56, 0x84, 0x88, 0xbd, 0xad, 0x92, 0x23, 0xf2, 0xc2, 0x40, 0xc2, 0x62, 0x99, 0x8e, 0x31, + 0x69, 0x4a, 0x42, 0x56, 0xe6, 0x20, 0x4d, 0x55, 0x47, 0x99, 0x81, 0x93, 0xe3, 0x85, 0x55, 0xda, + 0x89, 0xc2, 0x39, 0xda, 0x70, 0xe1, 0x5c, 0xed, 0x74, 0x61, 0x58, 0x3b, 0x6b, 0xcc, 0x5c, 0x1f, + 0x4f, 0xcd, 0x5c, 0xfb, 0xac, 0xa2, 0xfc, 0x1c, 0xb1, 0x43, 0xdb, 0x26, 0x7e, 0xb3, 0xc5, 0xaf, + 0x15, 0x74, 0x39, 0xc1, 0x57, 0x08, 0x09, 0x01, 0xad, 0x7e, 0x68, 0xa4, 0x10, 0x54, 0xad, 0x5d, + 0x18, 0x5f, 0x2b, 0xd0, 0xa9, 0x33, 0x5a, 0x9d, 0x70, 0x77, 0xde, 0x71, 0x8c, 0x4b, 0x0b, 0x69, + 0xe7, 0x79, 0x46, 0xe6, 0x7a, 0x98, 0x53, 0x65, 0xd0, 0x45, 0x79, 0xaa, 0xad, 0x21, 0x83, 0x5a, + 0x91, 0xb7, 0x57, 0x6a, 0xe7, 0xbc, 0x3f, 0xee, 0x17, 0xf3, 0x13, 0x6b, 0x13, 0x05, 0x29, 0x7a, + 0x11, 0xf1, 0x19, 0x57, 0xc5, 0xf7, 0x26, 0x38, 0x54, 0x4e, 0xd1, 0xa1, 0x1e, 0x3a, 0x86, 0x02, + 0xd9, 0x42, 0xa1, 0xfd, 0x5a, 0x3c, 0x7f, 0x1e, 0x96, 0x53, 0x38, 0xd6, 0x47, 0xd5, 0xf1, 0x23, + 0x33, 0x5a, 0xf5, 0x19, 0xd0, 0xaf, 0x03, 0x72, 0xb1, 0x24, 0x72, 0xc9, 0x81, 0xfc, 0x86, 0xaf, + 0x95, 0x90, 0x92, 0x71, 0xaa, 0x2f, 0x9c, 0x74, 0xb6, 0x68, 0xcf, 0x80, 0x96, 0x6d, 0x83, 0x6b, + 0x55, 0x39, 0x56, 0xfb, 0xfa, 0xc1, 0x17, 0x06, 0x5a, 0x2e, 0x15, 0xbf, 0x1a, 0xeb, 0xde, 0xdd, + 0xbd, 0xe8, 0xbc, 0x28, 0xc1, 0xb6, 0x9a, 0xca, 0x80, 0x41, 0x7f, 0xe5, 0xe0, 0xcb, 0x28, 0xf7, + 0x46, 0xb4, 0x43, 0x7f, 0x80, 0xe7, 0xad, 0x2a, 0xb5, 0xdd, 0xee, 0x16, 0xad, 0xdf, 0x6d, 0x3a, + 0xb5, 0x31, 0xdc, 0x8b, 0x9c, 0x2d, 0xc0, 0xd9, 0xa1, 0xc6, 0x1e, 0xfc, 0x1e, 0x83, 0x2c, 0xbc, + 0xf5, 0xf8, 0xb3, 0xda, 0x6e, 0xd5, 0x1c, 0x4b, 0xfe, 0xfa, 0x03, 0xad, 0xff, 0xa7, 0x87, 0x5a, + 0x3e, 0xe9, 0x9c, 0x70, 0x68, 0xdd, 0xca, 0x09, 0xaf, 0x24, 0x9d, 0x55, 0x7b, 0x7a, 0x16, 0xcb, + 0x8e, 0x4c, 0xb4, 0x35, 0xd5, 0x74, 0xaf, 0x9c, 0x70, 0x70, 0xad, 0x6b, 0x86, 0x76, 0x6c, 0xdb, + 0xba, 0x37, 0x93, 0x4a, 0x9d, 0x23, 0xec, 0xa5, 0x35, 0x26, 0xb4, 0xf2, 0x5e, 0x35, 0xf0, 0xc6, + 0x07, 0xda, 0x6e, 0x97, 0xd9, 0xdb, 0x82, 0x67, 0x73, 0x6c, 0xed, 0xeb, 0xc8, 0xe5, 0x85, 0x57, + 0x5b, 0x3e, 0x29, 0xac, 0xd7, 0xf6, 0x7a, 0x6b, 0x62, 0x0f, 0xed, 0x79, 0x28, 0x6e, 0x89, 0xdd, + 0xd7, 0xd8, 0xed, 0xcd, 0x50, 0x2d, 0xe8, 0x01, 0xf7, 0xc5, 0xb3, 0x55, 0x1b, 0x24, 0x68, 0xeb, + 0xfe, 0x67, 0xb5, 0xbd, 0xf1, 0x43, 0xaa, 0xec, 0x9e, 0xe8, 0x8e, 0x38, 0x26, 0x34, 0x76, 0xaf, + 0x4c, 0x9e, 0xfa, 0x5f, 0xd2, 0x5a, 0xde, 0x0d, 0xd0, 0x31, 0xe1, 0x20, 0x9e, 0x31, 0xd6, 0xfc, + 0xfd, 0xa3, 0x07, 0x9d, 0x3c, 0xfb, 0x7d, 0x98, 0x5b, 0x88, 0xe9, 0x4f, 0x8f, 0x8f, 0xf6, 0xb4, + 0xc9, 0xbf, 0x7d, 0x5a, 0x95, 0xc3, 0x3d, 0xa7, 0xff, 0x57, 0xcd, 0xda, 0x33, 0x7d, 0xc0, 0xdb, + 0x51, 0x47, 0xe6, 0x99, 0x0d, 0xa8, 0xe7, 0x60, 0x07, 0x3d, 0x7a, 0x04, 0xa3, 0xee, 0x0e, 0xbf, + 0x0d, 0xd8, 0x1a, 0x68, 0x7a, 0x56, 0x1b, 0x18, 0x78, 0xcb, 0x81, 0x51, 0x07, 0x6f, 0x8f, 0x0f, + 0xf5, 0xef, 0xb0, 0x38, 0x2b, 0x6d, 0x01, 0x0b, 0x0d, 0xcc, 0xd0, 0xfe, 0x9e, 0x5b, 0x00, 0x79, + 0x3d, 0xab, 0x1d, 0x46, 0x6e, 0x3b, 0x54, 0xe9, 0xf4, 0x13, 0x5f, 0x0e, 0x6a, 0x3f, 0x13, 0x78, + 0xcc, 0x06, 0xf6, 0xa6, 0x38, 0x2b, 0x23, 0x1d, 0x16, 0xf2, 0x65, 0x83, 0x3f, 0xee, 0x40, 0xaf, + 0x7b, 0x32, 0x25, 0xe1, 0x0f, 0x3e, 0xab, 0x0d, 0x3a, 0x5a, 0xb4, 0x27, 0x91, 0xeb, 0xe3, 0x83, + 0x2f, 0xd8, 0x2d, 0xce, 0x60, 0x4e, 0xce, 0xc1, 0x8c, 0x9e, 0x19, 0xda, 0xcf, 0x72, 0xbb, 0x63, + 0x0f, 0x81, 0x7f, 0xee, 0x50, 0x6d, 0xa0, 0xda, 0x67, 0xb4, 0x81, 0xbf, 0x79, 0x0d, 0xb0, 0x3f, + 0x21, 0x56, 0x63, 0x05, 0xad, 0xf7, 0x3f, 0xb4, 0x88, 0xb4, 0xa5, 0x80, 0xe4, 0x09, 0xfe, 0x36, + 0x76, 0xff, 0x82, 0x6e, 0xf0, 0xe5, 0xe9, 0x94, 0xd9, 0x7f, 0xff, 0xbd, 0xbc, 0xbf, 0xde, 0xcd, + 0x4f, 0x8b, 0x0e, 0xbd, 0x75, 0x9f, 0x62, 0xde, 0xf7, 0xac, 0x76, 0x68, 0x09, 0x5d, 0x59, 0xaa, + 0x7f, 0x87, 0xd2, 0x9e, 0x19, 0x2b, 0x01, 0x09, 0x3e, 0xdc, 0xa9, 0xf3, 0x61, 0xdd, 0xb2, 0xcb, + 0x91, 0xd6, 0xb4, 0x47, 0x82, 0xba, 0x6d, 0x57, 0x39, 0x41, 0x03, 0xcf, 0x75, 0xfb, 0xc8, 0xee, + 0xf4, 0x91, 0xe2, 0xf2, 0x91, 0x53, 0x8c, 0xf9, 0x4e, 0x8c, 0x25, 0x1b, 0x12, 0x0e, 0x87, 0x5c, + 0xd3, 0xdd, 0x0e, 0x2c, 0xdb, 0x20, 0x51, 0xfe, 0xf3, 0x8e, 0x33, 0x1b, 0x07, 0x66, 0x46, 0x68, + 0xbe, 0xe1, 0x23, 0xc2, 0xf0, 0xc9, 0x60, 0x72, 0x48, 0x35, 0xdd, 0xab, 0x26, 0x1c, 0xec, 0x5d, + 0x6d, 0xfa, 0xe7, 0x67, 0xcf, 0xdc, 0x8f, 0x52, 0x0a, 0x5e, 0x3f, 0x68, 0xb7, 0xe5, 0x64, 0x1e, + 0x94, 0xe7, 0x1f, 0x8c, 0xf4, 0x44, 0x0e, 0x86, 0x7b, 0x2c, 0x19, 0x24, 0x27, 0xb2, 0x21, 0x1d, + 0x64, 0xe9, 0x9e, 0x26, 0xc2, 0x95, 0xe0, 0x53, 0x95, 0x08, 0xcd, 0x4c, 0x64, 0x21, 0xd4, 0x1c, + 0xed, 0x49, 0x48, 0x1d, 0x26, 0xbc, 0x9b, 0xf9, 0x3d, 0x81, 0xf7, 0x38, 0xde, 0xa3, 0x19, 0xcd, + 0x16, 0x1e, 0xeb, 0xf1, 0x26, 0x47, 0x2b, 0x13, 0xf2, 0xfd, 0xb2, 0x2a, 0xd7, 0x64, 0x1e, 0x91, + 0x6d, 0xeb, 0xea, 0xde, 0xa1, 0x72, 0x31, 0x4b, 0x30, 0x28, 0x66, 0x09, 0x22, 0x9e, 0x5a, 0x5f, + 0x0d, 0x95, 0xfb, 0xe6, 0x50, 0xd0, 0x17, 0xa5, 0x70, 0x71, 0xb0, 0xdc, 0x14, 0x79, 0xa5, 0x34, + 0x14, 0x79, 0x49, 0x8c, 0x35, 0xb9, 0xd7, 0x8e, 0x33, 0xa6, 0x21, 0x61, 0xab, 0x69, 0xf1, 0x4d, + 0x72, 0x96, 0xd3, 0x70, 0xc3, 0x52, 0x25, 0x04, 0x3e, 0xa3, 0x87, 0xdc, 0xe0, 0x83, 0x8e, 0xe8, + 0x08, 0xd5, 0x3f, 0x5c, 0x44, 0x22, 0x44, 0xf6, 0x4d, 0xe2, 0x58, 0xf4, 0x65, 0xa5, 0xe8, 0x21, + 0xf1, 0x7e, 0x03, 0xc7, 0x72, 0xdf, 0x06, 0x2e, 0xbd, 0x2c, 0xf1, 0x37, 0x9b, 0xff, 0xfa, 0xc8, + 0xf1, 0xfb, 0x1f, 0x3d, 0x12, 0x5d, 0xdf, 0x6c, 0xde, 0xb6, 0xfe, 0xad, 0xf5, 0x5d, 0xa4, 0xcb, + 0xa2, 0x4a, 0xcd, 0xeb, 0x2f, 0xf7, 0x43, 0xc3, 0xf4, 0xd0, 0x63, 0xeb, 0xc5, 0x3e, 0x7b, 0xf0, + 0xbd, 0x74, 0xc8, 0x5a, 0x25, 0x6b, 0xb0, 0x17, 0x12, 0xb0, 0xec, 0x36, 0x6d, 0xbf, 0x5f, 0xb1, + 0x0e, 0xf6, 0xbe, 0xc8, 0xcf, 0x13, 0xb6, 0x6f, 0x8c, 0xae, 0x6b, 0xa3, 0x8c, 0xd5, 0xd1, 0x5e, + 0xfc, 0x76, 0x46, 0x9f, 0xa7, 0x60, 0x82, 0x32, 0x9a, 0xab, 0x3e, 0x04, 0x8f, 0x2d, 0x14, 0x63, + 0x5f, 0x21, 0x73, 0xd4, 0xa2, 0x89, 0xd1, 0x19, 0x82, 0xe3, 0xb6, 0x08, 0x8e, 0x5b, 0xfb, 0xe3, + 0x7f, 0x00, 0x7f, 0x75, 0x0b, 0xfe, 0x2a, 0x15, 0x59, 0x58, 0x2e, 0x4d, 0x8d, 0x85, 0xa8, 0x4d, + 0xb0, 0x61, 0x13, 0xf2, 0xd0, 0xbf, 0xb7, 0xf8, 0x56, 0x40, 0x07, 0x2b, 0x56, 0x6d, 0x48, 0x33, + 0x49, 0x1f, 0x3d, 0x79, 0x46, 0x04, 0x63, 0xe3, 0xf3, 0x54, 0x0c, 0x19, 0xff, 0x87, 0x7a, 0xbe, + 0xce, 0x19, 0x62, 0x84, 0xcd, 0xf6, 0xdd, 0xa0, 0xa7, 0x71, 0x62, 0x84, 0x45, 0x1b, 0x2d, 0x45, + 0x88, 0x8f, 0xca, 0x95, 0x39, 0x3e, 0x48, 0x81, 0x78, 0x8a, 0x08, 0xed, 0x34, 0x03, 0x5c, 0x4f, + 0x02, 0xde, 0xcc, 0xbe, 0x2c, 0x84, 0x2d, 0xd6, 0xf3, 0xf5, 0xba, 0x81, 0xa1, 0xe2, 0xa2, 0x87, + 0x66, 0x67, 0x42, 0xb6, 0x90, 0x71, 0x65, 0xe0, 0x62, 0x19, 0x4b, 0x12, 0x79, 0x82, 0x5f, 0x0b, + 0xab, 0xd4, 0x19, 0x82, 0x97, 0x66, 0x23, 0xb4, 0x68, 0x1c, 0x2f, 0x05, 0xac, 0x2d, 0xb9, 0xa2, + 0xb4, 0xd2, 0xf1, 0x31, 0x3a, 0x04, 0xa9, 0xfa, 0xe9, 0x61, 0xe0, 0xab, 0x35, 0x46, 0xeb, 0x59, + 0xf4, 0xf6, 0xe4, 0x16, 0x1a, 0xdb, 0x9e, 0xdc, 0x82, 0xa3, 0xed, 0x69, 0xb4, 0x5f, 0xba, 0x3d, + 0x19, 0x03, 0xe2, 0x8b, 0x20, 0x35, 0x09, 0x9e, 0xdd, 0x46, 0x7e, 0x6e, 0xdb, 0x17, 0x06, 0x16, + 0xcb, 0xbe, 0x08, 0x45, 0xfe, 0xef, 0xb4, 0xb1, 0x69, 0x1b, 0xb7, 0xb1, 0x69, 0xb3, 0xde, 0xc6, + 0xa6, 0x3e, 0xdf, 0x3c, 0xd4, 0x75, 0x2e, 0xd5, 0xfd, 0xcd, 0x6b, 0x21, 0xb4, 0x45, 0x27, 0x7b, + 0xae, 0x69, 0xf2, 0x55, 0xd1, 0x82, 0xa2, 0x4c, 0x8f, 0xec, 0xbd, 0x01, 0xdc, 0x97, 0xe7, 0x83, + 0x4a, 0x21, 0x07, 0x58, 0x1a, 0x93, 0x1d, 0x9f, 0xed, 0x4a, 0x2e, 0x61, 0x4d, 0xcf, 0x04, 0x38, + 0x8b, 0xff, 0x79, 0xc7, 0x80, 0x9e, 0x47, 0xd6, 0xf7, 0x7f, 0xe9, 0x66, 0x0b, 0xb1, 0x4b, 0xe0, + 0x4d, 0x37, 0xfa, 0x4c, 0x48, 0xbf, 0x20, 0xf2, 0x9d, 0x3e, 0xf2, 0x55, 0x52, 0x71, 0x8a, 0x27, + 0xa1, 0xaf, 0xd7, 0xb9, 0xa6, 0x93, 0x05, 0x9c, 0xb9, 0x06, 0xf0, 0xda, 0x50, 0xe7, 0x06, 0x1f, + 0x73, 0x80, 0x85, 0x91, 0xef, 0x6c, 0x4f, 0xaf, 0xf9, 0x72, 0x49, 0x90, 0x81, 0x2c, 0xc7, 0x92, + 0x82, 0xc6, 0xd7, 0x2e, 0xb1, 0x28, 0x19, 0x83, 0xdd, 0xfd, 0x3d, 0x8b, 0x72, 0xf7, 0xf4, 0x2c, + 0xc9, 0x82, 0xde, 0xd4, 0x30, 0xd8, 0xd3, 0xbf, 0x76, 0x91, 0x99, 0xfd, 0xc8, 0x50, 0xef, 0x7e, + 0x96, 0x01, 0x1d, 0xa8, 0x47, 0x38, 0x6e, 0x57, 0x4c, 0x63, 0xc7, 0x29, 0x2f, 0x6b, 0x04, 0x16, + 0xa4, 0xd9, 0x09, 0x9e, 0x13, 0xe6, 0x91, 0x46, 0xc8, 0x92, 0xd9, 0x5c, 0xce, 0x1d, 0x2c, 0x65, + 0x5b, 0x57, 0x92, 0x9a, 0xcf, 0x2d, 0x1a, 0xe9, 0x2c, 0x25, 0x9f, 0x14, 0xe9, 0xc0, 0x6f, 0x76, + 0xfd, 0xbe, 0x4f, 0x97, 0xc7, 0xd6, 0xf2, 0x0c, 0xc6, 0xbe, 0xb5, 0xf1, 0x53, 0xaa, 0x4b, 0xc4, + 0xb7, 0x1f, 0xe6, 0xf8, 0xf6, 0x1d, 0xfc, 0x7d, 0x84, 0xc2, 0x48, 0x53, 0x03, 0x28, 0xc3, 0xb1, + 0x3e, 0x91, 0xae, 0x2f, 0xfe, 0x56, 0xec, 0xc1, 0x17, 0x1f, 0x84, 0xf6, 0x61, 0x76, 0xca, 0xb1, + 0x9e, 0x18, 0x30, 0xb8, 0xe0, 0x79, 0x2a, 0xc5, 0x55, 0x07, 0x68, 0x8b, 0xfb, 0x9f, 0xa7, 0x48, + 0x9c, 0xae, 0x0c, 0x30, 0xa4, 0x89, 0xa9, 0x3a, 0xa4, 0x8e, 0x7a, 0x86, 0x67, 0x8c, 0x7e, 0x68, + 0xee, 0xb4, 0x08, 0x1b, 0x35, 0xc9, 0x98, 0x79, 0xf0, 0xd7, 0x7f, 0xe7, 0x2f, 0x36, 0x41, 0xbb, + 0xae, 0x70, 0xb7, 0x91, 0x1b, 0x7c, 0xb1, 0xd8, 0xd3, 0x46, 0xe5, 0xae, 0x36, 0x0a, 0xf2, 0x2c, + 0xbf, 0x2e, 0x89, 0x3a, 0x59, 0x1b, 0xb2, 0x38, 0x27, 0x19, 0xba, 0x5c, 0x88, 0xb5, 0x23, 0xc7, + 0x0a, 0xa9, 0xb7, 0x61, 0x83, 0x52, 0x55, 0x0d, 0x0a, 0x4b, 0xd9, 0xa0, 0xb1, 0xf5, 0x1c, 0xa0, + 0x55, 0x7e, 0x7c, 0x30, 0x61, 0x55, 0xdc, 0xda, 0x48, 0xff, 0xd3, 0x52, 0x67, 0x42, 0x52, 0xc2, + 0x81, 0xaf, 0x17, 0xb7, 0x90, 0xfc, 0xe8, 0xab, 0xb1, 0xfb, 0xcb, 0x5b, 0x48, 0x2a, 0x6b, 0x21, + 0xf3, 0xf7, 0x5f, 0x8b, 0x3d, 0xe8, 0x9b, 0x24, 0x68, 0xdc, 0xe2, 0xf3, 0x0a, 0xea, 0xcc, 0x12, + 0x16, 0x5e, 0x19, 0xbe, 0x5c, 0x84, 0x2e, 0x10, 0x97, 0x17, 0xfd, 0xc0, 0x4b, 0x96, 0x74, 0x3f, + 0x2b, 0x15, 0x16, 0xa0, 0x59, 0xa2, 0x67, 0x89, 0xf6, 0xd3, 0x3d, 0x91, 0x75, 0x15, 0x2c, 0x10, + 0xb6, 0xc0, 0xda, 0x09, 0x43, 0xfe, 0x0e, 0x16, 0x99, 0x9c, 0xb5, 0x3a, 0xe4, 0x4c, 0x47, 0x2a, + 0xf7, 0x26, 0x43, 0x86, 0x6e, 0xd8, 0xc4, 0xb6, 0x03, 0xa0, 0xa1, 0x9e, 0xc2, 0x1a, 0x5d, 0x16, + 0xb3, 0x78, 0xc8, 0x4c, 0x0a, 0x34, 0xcf, 0x1f, 0xf0, 0xec, 0x88, 0xcd, 0x43, 0x5f, 0x8a, 0x24, + 0xc5, 0xec, 0x43, 0xa9, 0x31, 0x1e, 0x72, 0x3e, 0x45, 0x90, 0x9f, 0x6c, 0x22, 0xd4, 0xe9, 0x28, + 0x92, 0xa3, 0x31, 0xb6, 0x2c, 0xba, 0xc8, 0xab, 0x5f, 0x57, 0xdb, 0xe6, 0x31, 0x4c, 0x91, 0x81, + 0x69, 0x41, 0x8a, 0x19, 0xb9, 0xe5, 0xff, 0xa7, 0xe4, 0x36, 0xff, 0x26, 0x9e, 0x79, 0xfe, 0x66, + 0xc8, 0x43, 0x8b, 0xda, 0x35, 0xbc, 0xdf, 0x8d, 0x9c, 0x0b, 0x72, 0x28, 0xd2, 0x1d, 0x39, 0xc0, + 0x5b, 0xde, 0x13, 0x16, 0x61, 0x4b, 0xbd, 0x48, 0xcd, 0xc7, 0x9b, 0x49, 0xbc, 0x65, 0xd1, 0x37, + 0x55, 0xab, 0x44, 0xda, 0xa7, 0x71, 0xf3, 0x4d, 0xec, 0xcd, 0x65, 0xd1, 0xb4, 0x56, 0x40, 0x10, + 0x6d, 0x0f, 0x0e, 0xac, 0x3f, 0xd5, 0xd7, 0xf1, 0xbd, 0x1a, 0xd3, 0xc1, 0xf5, 0x67, 0x36, 0x24, + 0xbb, 0x3b, 0x94, 0x83, 0xeb, 0x87, 0xba, 0x71, 0xb7, 0x1d, 0xed, 0x7e, 0xf7, 0xa1, 0xe4, 0xfa, + 0xb3, 0x7d, 0x37, 0x05, 0xe9, 0x9b, 0xb3, 0x20, 0x41, 0xce, 0xaa, 0xd2, 0x3e, 0x6c, 0x0c, 0x1f, + 0x0f, 0xcd, 0x0a, 0x6b, 0x17, 0x1a, 0xab, 0xdf, 0xaa, 0x9a, 0x55, 0xad, 0x7d, 0x3c, 0xab, 0x4e, + 0x1b, 0x99, 0x35, 0x87, 0x67, 0x04, 0xd2, 0x16, 0xf8, 0xcb, 0xa9, 0x1e, 0x10, 0x9f, 0x88, 0xac, + 0xfe, 0x6c, 0x3f, 0x4b, 0x9a, 0x62, 0xad, 0x8c, 0xe7, 0xa1, 0x4e, 0x96, 0x9c, 0x15, 0x52, 0x69, + 0x8a, 0xc3, 0xcd, 0xd0, 0xce, 0x8e, 0xe7, 0x70, 0x62, 0xcc, 0xde, 0xad, 0x8f, 0xd9, 0x91, 0x77, + 0x15, 0xbf, 0xb3, 0xd6, 0x55, 0x2b, 0xa0, 0xcf, 0x75, 0x50, 0xa8, 0x32, 0x52, 0x39, 0x9b, 0xc0, + 0x45, 0xd3, 0x1e, 0xd1, 0x9c, 0x74, 0xfa, 0x7e, 0x48, 0x7a, 0x72, 0xe8, 0x31, 0x96, 0xee, 0xe2, + 0xec, 0xab, 0x05, 0xf5, 0x1c, 0xea, 0x1e, 0xea, 0x0e, 0x7d, 0xdb, 0x0e, 0x1a, 0xb0, 0xca, 0x86, + 0x0e, 0x26, 0x68, 0xa0, 0x08, 0x7c, 0xdd, 0x33, 0x03, 0xa3, 0x7d, 0x0b, 0x15, 0xb8, 0x5a, 0x48, + 0xf1, 0x37, 0x93, 0xbc, 0xf9, 0x98, 0xcb, 0x12, 0x5b, 0x8b, 0x27, 0xf3, 0xe6, 0xf3, 0x24, 0xf1, + 0xec, 0x32, 0xcb, 0xc7, 0x24, 0x5f, 0x8f, 0xc2, 0x9d, 0x21, 0xaf, 0x27, 0x4d, 0xe1, 0xd5, 0xd5, + 0xba, 0xdd, 0xc5, 0x28, 0x85, 0xa3, 0x8e, 0x57, 0x51, 0x78, 0x0d, 0xf2, 0x82, 0x56, 0x10, 0xf0, + 0x92, 0x14, 0x68, 0x72, 0xce, 0x71, 0x7a, 0xc8, 0xd2, 0xf5, 0x67, 0x27, 0xd8, 0x86, 0xb3, 0x46, + 0xb7, 0x02, 0x9a, 0xd5, 0x42, 0xd9, 0xda, 0x59, 0xfc, 0xe6, 0x68, 0xe7, 0x58, 0xb3, 0x99, 0x55, + 0xab, 0x5d, 0x98, 0x55, 0x09, 0x8c, 0x56, 0x69, 0x17, 0x81, 0xe1, 0x4f, 0xc4, 0x4a, 0x6a, 0x0b, + 0xd9, 0xb5, 0xd3, 0x06, 0x0d, 0x9c, 0x18, 0xa5, 0x01, 0x41, 0xf5, 0x19, 0xa3, 0x33, 0xaa, 0x82, + 0xea, 0x47, 0xb1, 0xf7, 0x75, 0xed, 0x38, 0xd7, 0xd9, 0x1d, 0x41, 0x1e, 0xc7, 0x8b, 0x4c, 0xae, + 0x5a, 0xc1, 0x6f, 0x9f, 0x11, 0xbc, 0xf7, 0x47, 0xbf, 0xa7, 0x17, 0x9c, 0x46, 0x2f, 0x58, 0x5f, + 0x58, 0x87, 0x5e, 0x10, 0xd5, 0xce, 0x5a, 0x0a, 0xd3, 0xbd, 0x60, 0x05, 0xe8, 0xb6, 0xf0, 0x3f, + 0xa3, 0x17, 0xdc, 0xca, 0xbd, 0x40, 0xcf, 0x2d, 0xff, 0x3f, 0x25, 0xb7, 0xf9, 0x37, 0xeb, 0xbd, + 0xa0, 0x90, 0x7b, 0xc1, 0xad, 0xdc, 0x0b, 0x0a, 0xc7, 0xf7, 0x82, 0x9b, 0xc7, 0xf5, 0x82, 0x9b, + 0xc7, 0xf5, 0x82, 0x9b, 0x45, 0x2f, 0xb8, 0xf5, 0x8f, 0xec, 0x05, 0x37, 0xff, 0x9e, 0x5e, 0xe0, + 0x9f, 0xa1, 0xbd, 0x35, 0x2b, 0x78, 0x4d, 0x4f, 0x58, 0x91, 0xee, 0x09, 0xab, 0xd3, 0x3d, 0x61, + 0xd2, 0x98, 0x9e, 0xe0, 0x4d, 0xf7, 0x84, 0xd3, 0xd7, 0xe9, 0x09, 0xfd, 0x46, 0x5b, 0x1e, 0xe3, + 0xb6, 0x74, 0xb6, 0x40, 0x2f, 0x9d, 0x41, 0x36, 0xc8, 0x3d, 0x05, 0x65, 0xb6, 0xd2, 0xa5, 0x24, + 0x6f, 0x7f, 0x39, 0xb6, 0xb1, 0xd4, 0x4d, 0x52, 0x09, 0x24, 0xbd, 0x6d, 0x87, 0x62, 0x0f, 0x14, + 0x79, 0xa0, 0x23, 0x4e, 0xf0, 0x99, 0x53, 0x34, 0xe1, 0x5d, 0x4e, 0xd6, 0xdf, 0x0c, 0xf8, 0x97, + 0x43, 0xba, 0x9d, 0x41, 0xd6, 0x63, 0x7d, 0x52, 0x0f, 0x9b, 0xb6, 0x36, 0x5b, 0x1a, 0x7b, 0xda, + 0x2f, 0xf4, 0x26, 0x63, 0x3d, 0x25, 0x1e, 0xca, 0x45, 0x6c, 0x7e, 0xa0, 0xca, 0x37, 0x31, 0xd2, + 0xbe, 0x54, 0x8c, 0x80, 0x15, 0x61, 0xd0, 0x56, 0xa8, 0x59, 0x36, 0x87, 0xd8, 0x0b, 0x52, 0xb3, + 0x34, 0x58, 0x05, 0x9e, 0x65, 0xe9, 0xa0, 0x1c, 0xf0, 0x16, 0x07, 0x7a, 0x8d, 0x77, 0xba, 0x5c, + 0x73, 0xcf, 0x7a, 0x50, 0xf0, 0x31, 0x41, 0x99, 0xc7, 0x21, 0xf7, 0x9f, 0x98, 0xc5, 0xb4, 0x1c, + 0xd4, 0x4e, 0x01, 0x2f, 0xa7, 0x67, 0x2d, 0xa7, 0x3c, 0xed, 0x0c, 0x53, 0xcf, 0x2c, 0xd6, 0xf9, + 0xeb, 0xb5, 0x0f, 0xa1, 0xdf, 0x7e, 0x1c, 0x00, 0xa5, 0x83, 0xba, 0x3f, 0x01, 0xa6, 0x2e, 0x01, + 0x6b, 0x97, 0x05, 0xcf, 0x98, 0xab, 0x5d, 0x41, 0x8e, 0xb9, 0x86, 0x3e, 0x7a, 0x2c, 0x65, 0xa9, + 0x07, 0x89, 0x6a, 0x92, 0x5e, 0x03, 0x9e, 0x27, 0x12, 0x78, 0x78, 0xc6, 0xc0, 0xc3, 0xa0, 0xc0, + 0x43, 0xad, 0xc7, 0xe2, 0x0a, 0xba, 0x2b, 0xd1, 0x83, 0x86, 0xa0, 0x59, 0xbd, 0xe9, 0xcd, 0xe6, + 0x39, 0x68, 0x63, 0xa5, 0xfb, 0x49, 0xc0, 0x73, 0x0a, 0x7d, 0xe9, 0x0c, 0xb4, 0xe9, 0x73, 0xd0, + 0x1a, 0xfe, 0xac, 0xd9, 0xca, 0xfd, 0x39, 0x54, 0x99, 0x03, 0xbd, 0x41, 0x85, 0x5c, 0x0d, 0xa8, + 0x2e, 0xb0, 0x04, 0xdf, 0x2c, 0x85, 0x93, 0xab, 0x4c, 0x27, 0x9f, 0x01, 0x34, 0x1f, 0x02, 0x12, + 0xe6, 0x62, 0x17, 0xc1, 0xf5, 0x25, 0x2a, 0x98, 0x3f, 0x10, 0x26, 0xe8, 0x38, 0x9f, 0xf8, 0x2b, + 0x91, 0xd7, 0x5b, 0xcc, 0xb1, 0xd3, 0xfd, 0xc5, 0xce, 0xbd, 0x0c, 0xd4, 0xf8, 0x36, 0xbe, 0xb8, + 0x84, 0x2f, 0x2e, 0xa3, 0xd5, 0x8f, 0x71, 0xab, 0x07, 0x66, 0x68, 0xc7, 0x91, 0xf3, 0x15, 0x9f, + 0xd9, 0xd8, 0x53, 0xd4, 0xa2, 0xbd, 0x15, 0x59, 0x7d, 0xa5, 0x86, 0xad, 0x2b, 0x43, 0x7f, 0xab, + 0xf3, 0xbe, 0x59, 0xbc, 0xd6, 0xa4, 0xa8, 0x0b, 0xa3, 0xeb, 0x12, 0x4d, 0x62, 0xf5, 0xee, 0xb1, + 0x22, 0x6a, 0xff, 0x74, 0xe0, 0x3e, 0x9e, 0xef, 0x88, 0x67, 0xb5, 0xcb, 0x03, 0xf7, 0xf1, 0x5e, + 0x81, 0x2b, 0x3f, 0x50, 0x66, 0x68, 0x43, 0x9b, 0x1f, 0x40, 0x29, 0x43, 0xd0, 0x15, 0xdf, 0xfc, + 0x9b, 0xa3, 0x4a, 0x75, 0x3b, 0x39, 0x64, 0x47, 0xd4, 0x39, 0xc9, 0x65, 0x75, 0x23, 0x2e, 0xd6, + 0xeb, 0xc9, 0x8e, 0xad, 0xf3, 0xd6, 0xf0, 0x8c, 0xad, 0x23, 0xaa, 0x4c, 0xe0, 0xa7, 0x2b, 0x3f, + 0x50, 0x79, 0x37, 0xc8, 0x6b, 0x02, 0x5b, 0x3b, 0x74, 0xfe, 0x09, 0x0d, 0xe1, 0x02, 0x6b, 0x08, + 0x25, 0x6d, 0x54, 0x53, 0xda, 0x46, 0x51, 0x8c, 0xc1, 0x41, 0x5f, 0x03, 0x79, 0xe3, 0xc5, 0x3c, + 0xf3, 0xa9, 0x4c, 0x72, 0xb0, 0x65, 0x74, 0x5d, 0xb1, 0x8f, 0x62, 0x62, 0xf5, 0x64, 0x7e, 0xe4, + 0x25, 0xe8, 0x41, 0xec, 0x77, 0x71, 0xa1, 0xd7, 0x47, 0xea, 0x1a, 0xed, 0xd1, 0x23, 0x90, 0x5b, + 0x16, 0xeb, 0xd6, 0x85, 0xa6, 0xe3, 0xc6, 0xf8, 0xab, 0x8e, 0xf1, 0x46, 0xe9, 0xe7, 0x78, 0x67, + 0x1b, 0x79, 0x7d, 0x37, 0x78, 0x18, 0xf2, 0x06, 0xcf, 0x5f, 0x7a, 0x40, 0x2b, 0x2c, 0x79, 0x55, + 0xfe, 0x6b, 0x9f, 0x06, 0x49, 0xa5, 0x98, 0x65, 0xab, 0xaa, 0x8b, 0xdb, 0x35, 0x5f, 0x2d, 0x95, + 0x22, 0x97, 0x0e, 0x4e, 0x5d, 0x0c, 0x2a, 0x8d, 0x1c, 0x84, 0xb4, 0x68, 0x8b, 0x0c, 0x40, 0x4e, + 0xec, 0x29, 0x05, 0x4f, 0x2e, 0x9f, 0x41, 0x39, 0xbc, 0xca, 0xed, 0x6f, 0xa1, 0xbc, 0x7d, 0x90, + 0x5f, 0x16, 0x91, 0x29, 0x1c, 0x39, 0xb4, 0xbd, 0xe7, 0x27, 0x87, 0x5a, 0xc9, 0x54, 0x16, 0xa8, + 0x2d, 0xaf, 0xf9, 0x9b, 0x57, 0x7f, 0x8e, 0xb1, 0x1e, 0xe1, 0x5e, 0x7f, 0xe4, 0xe1, 0x57, 0x7f, + 0x7a, 0x18, 0xe1, 0x0e, 0xc7, 0x0c, 0x96, 0xa1, 0x40, 0xc5, 0x53, 0xa1, 0x29, 0x2f, 0x0e, 0xbf, + 0x94, 0x70, 0x77, 0x4e, 0x1e, 0xe8, 0xd9, 0xf7, 0x40, 0x6b, 0x96, 0x63, 0xee, 0x23, 0x2f, 0x0f, + 0x6e, 0x08, 0x49, 0xaa, 0xec, 0xcc, 0xdc, 0xfa, 0xc0, 0xcf, 0x8f, 0x36, 0x9b, 0x1d, 0x75, 0x8f, + 0xbc, 0xa6, 0x2e, 0x75, 0xd6, 0x3f, 0x7a, 0xf4, 0x91, 0x57, 0xd5, 0x45, 0x0c, 0x07, 0xca, 0xf3, + 0x22, 0xad, 0x45, 0x99, 0xb4, 0x79, 0x43, 0x27, 0xa9, 0x16, 0x25, 0x73, 0xf3, 0x06, 0x4e, 0x6d, + 0xc4, 0x15, 0xfd, 0xfc, 0x68, 0xab, 0xc5, 0x59, 0xf7, 0xe8, 0xab, 0x8e, 0xa8, 0xea, 0xc7, 0x77, + 0x7c, 0x9f, 0x8a, 0xb8, 0x20, 0x5b, 0xbc, 0xec, 0x7b, 0xa0, 0xc5, 0xcc, 0x69, 0x55, 0xb3, 0x32, + 0x69, 0xb0, 0xa7, 0x93, 0x7e, 0x7e, 0xb4, 0xc5, 0x12, 0xa8, 0xe1, 0xdc, 0x55, 0x33, 0xea, 0x0b, + 0xed, 0xfa, 0x27, 0x2f, 0x37, 0xcb, 0x8f, 0x3d, 0xa0, 0x4a, 0xab, 0x69, 0x2f, 0xea, 0xb3, 0xd8, + 0xbc, 0xfd, 0x81, 0x58, 0x2f, 0xb4, 0x78, 0x60, 0x71, 0xfb, 0xba, 0x9f, 0xbe, 0xd6, 0x2c, 0xff, + 0xcd, 0x51, 0xde, 0x09, 0xc7, 0xeb, 0x9b, 0x8b, 0x2d, 0x0f, 0x1f, 0xf5, 0x58, 0x62, 0xeb, 0x54, + 0x99, 0x71, 0xff, 0xd8, 0x43, 0xec, 0xae, 0x03, 0xfa, 0xe2, 0xb3, 0x64, 0x89, 0xdb, 0x2c, 0x33, + 0x78, 0x57, 0x5e, 0x9c, 0x71, 0xaa, 0x96, 0x43, 0x42, 0x0b, 0x99, 0xd9, 0x43, 0x23, 0x69, 0x4a, + 0xa5, 0x63, 0xa2, 0x90, 0x66, 0xb3, 0xc6, 0xb6, 0x13, 0xf4, 0x91, 0xcc, 0x54, 0xfb, 0x3c, 0xfc, + 0x3c, 0xf9, 0x3d, 0x5f, 0x17, 0x76, 0x49, 0x16, 0xc8, 0x7c, 0xfe, 0x56, 0xba, 0xd2, 0xcb, 0xe9, + 0x1c, 0x7a, 0x7b, 0x81, 0xfe, 0xae, 0x44, 0x3d, 0x7f, 0x69, 0x48, 0x7b, 0x36, 0x63, 0x9c, 0x3c, + 0x9d, 0xe6, 0x33, 0xdc, 0x2f, 0xc1, 0x67, 0x4a, 0x6c, 0x01, 0xd0, 0xca, 0x96, 0x97, 0x8a, 0x26, + 0xc6, 0xee, 0x2b, 0x06, 0xa7, 0x01, 0xd7, 0x31, 0x6f, 0x3f, 0x18, 0xdb, 0xe8, 0x06, 0x0e, 0x78, + 0xc7, 0xdc, 0x9f, 0x2f, 0x46, 0x99, 0x68, 0x49, 0xf6, 0x01, 0x3b, 0xb8, 0x25, 0xdf, 0x43, 0x13, + 0xdf, 0x9a, 0x41, 0x93, 0xa5, 0x75, 0x62, 0x7e, 0x82, 0x79, 0x46, 0x96, 0xc2, 0x3c, 0xc3, 0x2d, + 0xd7, 0xdc, 0xcd, 0x3c, 0xe3, 0xb4, 0xe0, 0x19, 0xc2, 0x46, 0x17, 0xfd, 0xf3, 0x02, 0xb8, 0xc1, + 0x45, 0xf0, 0x8c, 0x4f, 0xc0, 0x3f, 0x2e, 0x81, 0x6f, 0xea, 0x5c, 0x01, 0xbd, 0x48, 0x69, 0x15, + 0x1c, 0xe1, 0xb4, 0x2f, 0xdb, 0xe0, 0x08, 0x13, 0x7c, 0x56, 0x7d, 0xc7, 0x9e, 0xa0, 0xef, 0xfd, + 0x06, 0x37, 0x38, 0x0f, 0xfd, 0x5d, 0xe2, 0xdd, 0x27, 0xe8, 0x81, 0x17, 0x31, 0x4e, 0x5c, 0xb0, + 0x4c, 0x1f, 0xdb, 0x7f, 0x45, 0xae, 0x55, 0xda, 0x65, 0x83, 0x53, 0x8f, 0x18, 0x9c, 0xfa, 0x8a, + 0xbe, 0x93, 0x51, 0xf4, 0xd1, 0xf3, 0x91, 0xd5, 0x5a, 0x96, 0xd1, 0x47, 0x27, 0x8e, 0xf6, 0xd1, + 0xba, 0x0f, 0x82, 0xe5, 0xda, 0x71, 0x61, 0x57, 0xc3, 0x7b, 0x31, 0x1e, 0x17, 0xbf, 0x62, 0x66, + 0x63, 0xa2, 0xb9, 0x61, 0x53, 0x28, 0xa8, 0xef, 0x91, 0x70, 0xf1, 0xce, 0x20, 0x4b, 0x6c, 0x29, + 0x15, 0xf0, 0xdd, 0xef, 0xa6, 0x82, 0xfe, 0xa5, 0x34, 0x15, 0xa3, 0xe5, 0x66, 0xa7, 0x58, 0x0b, + 0x8b, 0x07, 0xdb, 0x5d, 0xd7, 0x5d, 0x8b, 0xea, 0x60, 0xcb, 0x1c, 0x25, 0xd9, 0x5e, 0x7e, 0xed, + 0x2e, 0x29, 0xb2, 0x26, 0xd8, 0xca, 0xd8, 0x76, 0x3b, 0x8f, 0x52, 0x53, 0xc1, 0x7b, 0x6c, 0x0e, + 0xa4, 0x75, 0xf0, 0xca, 0xdf, 0xc3, 0x63, 0xdf, 0x6e, 0x59, 0x86, 0x9a, 0x4a, 0x22, 0x1f, 0x8c, + 0x97, 0xfe, 0xfd, 0xa3, 0xcf, 0xb7, 0x44, 0x49, 0x5a, 0xb8, 0x93, 0x6c, 0xb1, 0xe5, 0x54, 0x70, + 0x6b, 0x94, 0xd7, 0xe6, 0x16, 0xee, 0x00, 0xde, 0x8c, 0x7d, 0x19, 0x3a, 0x4f, 0x50, 0x2a, 0x5c, + 0x91, 0xe8, 0x72, 0xca, 0x02, 0xac, 0xaf, 0xdc, 0xbe, 0x8c, 0xad, 0x5f, 0xf0, 0x6b, 0xc1, 0xf7, + 0x28, 0x21, 0x2d, 0xf9, 0xe8, 0x3a, 0xb0, 0x65, 0x54, 0x07, 0x16, 0xfe, 0x37, 0x3b, 0x53, 0x2b, + 0x27, 0x7a, 0x3a, 0xf7, 0x52, 0x48, 0x48, 0x72, 0x2d, 0x34, 0x74, 0xe8, 0x05, 0xd6, 0xf6, 0xac, + 0xc1, 0xe7, 0xe4, 0x18, 0x38, 0x83, 0xdd, 0x17, 0xa2, 0x02, 0x68, 0x72, 0x0a, 0x2e, 0x27, 0x8f, + 0xdc, 0x73, 0x3f, 0x42, 0xd8, 0x0d, 0xa9, 0xb1, 0xbb, 0x24, 0x68, 0xe4, 0xe6, 0x16, 0x5f, 0x59, + 0x53, 0x5f, 0xcd, 0xe6, 0xd1, 0xb8, 0x80, 0xd3, 0x8f, 0xa6, 0xe5, 0x71, 0xfe, 0xaf, 0x7e, 0x91, + 0x82, 0xac, 0x25, 0xef, 0x5a, 0x7d, 0x59, 0xc4, 0x4f, 0xe2, 0x3d, 0x5f, 0x3a, 0x25, 0x8b, 0xd6, + 0xfa, 0x85, 0xf8, 0x3d, 0x9e, 0x6a, 0xb3, 0x94, 0x4d, 0x98, 0xee, 0x17, 0x53, 0xcc, 0xc5, 0x3b, + 0x6f, 0xa9, 0x05, 0x17, 0x6c, 0x25, 0x87, 0x83, 0x2d, 0xa8, 0xdd, 0x4a, 0xab, 0xe9, 0xf1, 0xd1, + 0xf9, 0x72, 0x47, 0x33, 0x39, 0x8c, 0x95, 0xbf, 0x1f, 0x2a, 0x77, 0x41, 0x87, 0xdb, 0xfa, 0x93, + 0xc3, 0xec, 0xe1, 0xd4, 0x82, 0x51, 0x44, 0x48, 0x44, 0x1b, 0x19, 0x07, 0x62, 0xcc, 0xb1, 0xf1, + 0xbc, 0xbe, 0x6e, 0x1f, 0xc4, 0x6b, 0x4d, 0xaa, 0x7d, 0x3c, 0x86, 0x5c, 0x02, 0x43, 0x73, 0xce, + 0x4b, 0x4e, 0x1e, 0xd7, 0x74, 0x9b, 0xbf, 0x4f, 0x87, 0x9d, 0xbc, 0x02, 0xc5, 0x3b, 0x8a, 0x1c, + 0x1d, 0x05, 0x43, 0xcf, 0x40, 0x22, 0x64, 0x29, 0x07, 0xf4, 0x8a, 0x9e, 0x31, 0x72, 0xb5, 0xa4, + 0x23, 0xbe, 0x43, 0x4a, 0xe1, 0x57, 0x74, 0xf8, 0xb2, 0x98, 0xd7, 0x55, 0xb3, 0x8c, 0xd5, 0x07, + 0xd2, 0x96, 0x2a, 0xcd, 0x63, 0x20, 0x7f, 0xa5, 0xea, 0x1c, 0x7a, 0x6f, 0x6a, 0x77, 0xe0, 0x7a, + 0xbc, 0xb9, 0x47, 0xdf, 0x84, 0x1f, 0xc9, 0x61, 0xdd, 0x5e, 0xac, 0x3c, 0xe0, 0xac, 0x75, 0x67, + 0xeb, 0xe3, 0x90, 0x87, 0x78, 0x94, 0xeb, 0xb0, 0xf0, 0xbc, 0x18, 0x20, 0xcb, 0xcc, 0x0a, 0x12, + 0xc6, 0x1b, 0x6f, 0x98, 0xc7, 0x95, 0x92, 0xe5, 0x86, 0x75, 0x42, 0xc5, 0x5f, 0x0d, 0x34, 0xf2, + 0x5a, 0x71, 0x31, 0x28, 0x3d, 0x57, 0x09, 0x3a, 0xa2, 0x08, 0x73, 0x46, 0x06, 0x1c, 0x93, 0x98, + 0xd7, 0xbb, 0x2c, 0x22, 0xf5, 0x6b, 0x18, 0x8f, 0x32, 0xf5, 0xef, 0x40, 0x71, 0xe5, 0xa2, 0x97, + 0x82, 0xa7, 0x54, 0x38, 0x9c, 0x91, 0xc0, 0x74, 0x92, 0x8b, 0xa7, 0xec, 0x66, 0xdb, 0xc4, 0xcb, + 0x6c, 0x57, 0xea, 0x07, 0x05, 0xf7, 0x47, 0x5a, 0x88, 0xce, 0x97, 0xb1, 0xe5, 0x43, 0x35, 0x9e, + 0x4e, 0xf1, 0x2a, 0xfc, 0x1e, 0x0e, 0x3b, 0x5e, 0x9e, 0xb3, 0xab, 0x06, 0xf7, 0xc1, 0x52, 0xf0, + 0x99, 0xdd, 0x61, 0x7c, 0xf3, 0xca, 0xfe, 0x50, 0x4b, 0xde, 0xbe, 0x48, 0x4b, 0xce, 0xde, 0xca, + 0xd6, 0xec, 0x3d, 0xc1, 0xd6, 0x2c, 0xdd, 0x96, 0x8e, 0xed, 0x3c, 0xaf, 0x67, 0xa3, 0xa7, 0x4c, + 0x71, 0x4c, 0x17, 0x96, 0x88, 0xe7, 0x99, 0x2f, 0x20, 0xe4, 0x34, 0xef, 0x66, 0x1b, 0x63, 0xb9, + 0xe7, 0x11, 0xf6, 0x88, 0xa7, 0x53, 0x96, 0x88, 0xfe, 0x18, 0xff, 0x32, 0xcd, 0x1c, 0xff, 0xe4, + 0xff, 0xa6, 0xcd, 0x5e, 0xdd, 0x07, 0xe1, 0x2e, 0xed, 0x70, 0x7a, 0x6d, 0xe8, 0x82, 0xe0, 0xb7, + 0x63, 0xec, 0x39, 0x5d, 0xa0, 0x38, 0x53, 0x01, 0xe4, 0x36, 0x8b, 0xd0, 0xd6, 0x8b, 0x79, 0x5e, + 0x3a, 0xd0, 0xb8, 0xab, 0xb6, 0xc5, 0xc3, 0xf3, 0xe3, 0xfe, 0x15, 0x02, 0x67, 0x53, 0xcb, 0x19, + 0x63, 0x35, 0x2d, 0x79, 0xc0, 0x8e, 0x79, 0x6f, 0xa4, 0x25, 0xbb, 0x22, 0x67, 0xd7, 0x9c, 0x16, + 0x4b, 0x19, 0x8f, 0x4b, 0xb5, 0xcd, 0x0d, 0x3e, 0x49, 0x58, 0xee, 0x65, 0x5f, 0x65, 0xd3, 0xb9, + 0xff, 0x4f, 0xb2, 0xe9, 0x24, 0x7a, 0xe8, 0xc5, 0xda, 0x16, 0x2b, 0xd4, 0x38, 0xcb, 0xbe, 0xca, + 0x56, 0x79, 0x6f, 0xb0, 0xed, 0x0f, 0x58, 0x79, 0x1a, 0x98, 0xbd, 0x30, 0xd6, 0xc6, 0xf3, 0xba, + 0x98, 0xfd, 0x13, 0xac, 0x3c, 0x57, 0x92, 0x92, 0x21, 0x46, 0x80, 0xc3, 0xc6, 0x08, 0x60, 0xd8, + 0x78, 0xa6, 0xad, 0x3a, 0x51, 0xcb, 0xb4, 0x5d, 0x27, 0x51, 0xbf, 0x61, 0xd9, 0x49, 0xf4, 0x23, + 0xdd, 0xb6, 0xb3, 0xf5, 0x3f, 0x6c, 0xd1, 0xf9, 0x7f, 0x97, 0x3a, 0xc6, 0x5a, 0x74, 0xb2, 0xfe, + 0x5b, 0x2e, 0x6c, 0x3a, 0x53, 0xb4, 0x21, 0xac, 0x3a, 0xcf, 0x19, 0x76, 0xbd, 0xa7, 0xd2, 0xd6, + 0x9d, 0x4e, 0xee, 0x3f, 0xfb, 0xd8, 0x9e, 0x33, 0x5f, 0x58, 0xff, 0xb2, 0x3d, 0xa7, 0xad, 0x24, + 0x67, 0x0f, 0xdb, 0x73, 0x5a, 0x02, 0x37, 0xee, 0x42, 0xcf, 0x6e, 0xab, 0x37, 0x68, 0xe2, 0x6a, + 0x3b, 0xdf, 0x2d, 0x7f, 0x12, 0x4d, 0x2c, 0x4e, 0x5b, 0x87, 0x92, 0xcf, 0xe2, 0xaf, 0x1e, 0x6f, + 0x21, 0xfa, 0x9f, 0xd3, 0xd2, 0x86, 0x7d, 0x68, 0x79, 0x6a, 0x1f, 0x9f, 0x33, 0x82, 0x5f, 0xb7, + 0x98, 0xf5, 0x19, 0x7e, 0xa3, 0x23, 0x14, 0x0b, 0x81, 0xba, 0x70, 0xe9, 0x96, 0xf6, 0x3b, 0xc9, + 0xd2, 0xb0, 0x29, 0xe5, 0xe7, 0x1e, 0xbc, 0x06, 0x7c, 0x0d, 0xdc, 0x85, 0xb9, 0xd6, 0x74, 0xaa, + 0x78, 0x78, 0x80, 0x2d, 0x49, 0xba, 0xa8, 0x7c, 0x3a, 0xe5, 0x9e, 0xe8, 0x13, 0x7c, 0x8e, 0x98, + 0xcf, 0xb9, 0xc6, 0xf1, 0x3c, 0x9d, 0xdb, 0x69, 0x6f, 0xee, 0x5f, 0xbb, 0xc8, 0xaf, 0x88, 0x67, + 0xe6, 0x8a, 0x63, 0xf9, 0x60, 0xe3, 0xda, 0xc6, 0x1e, 0x47, 0x14, 0x92, 0xb8, 0xf9, 0x5a, 0x4e, + 0x17, 0xee, 0x1a, 0x5d, 0x63, 0x30, 0xf6, 0xcf, 0x9f, 0x4b, 0x43, 0xd3, 0x46, 0xec, 0x6b, 0xb7, + 0xd8, 0x0b, 0xfc, 0x31, 0x6d, 0x46, 0x0e, 0xf8, 0x21, 0xf7, 0x42, 0x6b, 0x93, 0x21, 0xdf, 0x26, + 0xcb, 0x40, 0xb9, 0x91, 0x97, 0x1f, 0xeb, 0x56, 0x62, 0x6c, 0xa1, 0xeb, 0xf4, 0x91, 0xf3, 0xd8, + 0x4e, 0xb2, 0xba, 0x7c, 0xe4, 0x7e, 0x93, 0xc7, 0xf0, 0x5e, 0xc8, 0xf9, 0x6d, 0x54, 0x8a, 0xfc, + 0x7e, 0x28, 0x76, 0xa9, 0x77, 0xe9, 0x1c, 0xd5, 0x27, 0xb1, 0xe4, 0xcb, 0xd6, 0xe6, 0x9d, 0x94, + 0x3b, 0x83, 0x0a, 0x31, 0x72, 0x9c, 0x85, 0x64, 0x95, 0x0b, 0x6e, 0xc7, 0xf2, 0xd5, 0x05, 0xfc, + 0x16, 0x40, 0xb2, 0xaa, 0x84, 0xfc, 0x13, 0x84, 0xfc, 0x53, 0x39, 0xd4, 0x42, 0x0e, 0xbc, 0x8d, + 0x34, 0x06, 0x07, 0x5b, 0xc8, 0x85, 0xb0, 0x2b, 0x90, 0xd9, 0xbc, 0x2c, 0x03, 0x89, 0x1d, 0x2b, + 0xa7, 0x21, 0x05, 0xcd, 0x37, 0xa4, 0xa0, 0x19, 0xfa, 0xcc, 0x9a, 0x2e, 0x07, 0x39, 0x67, 0xe8, + 0xa3, 0x05, 0xa4, 0x86, 0x13, 0xfa, 0x5a, 0x03, 0xe4, 0xf8, 0x80, 0x2f, 0x4c, 0x45, 0x45, 0x99, + 0xce, 0xfa, 0xd9, 0x41, 0x2a, 0x29, 0xa3, 0xc8, 0xcb, 0xb3, 0x2b, 0xa9, 0xac, 0xd4, 0x14, 0x39, + 0x34, 0x3b, 0x44, 0xe5, 0xa5, 0xa1, 0xd9, 0x55, 0x54, 0x51, 0x56, 0xa5, 0xb7, 0x68, 0xc2, 0xe1, + 0xb8, 0x4b, 0x8c, 0xa2, 0xf9, 0x3f, 0x3e, 0x9c, 0xc8, 0xc3, 0x98, 0x18, 0x7e, 0xe1, 0x3d, 0x0a, + 0xc7, 0xad, 0xde, 0xe5, 0xa6, 0xc3, 0xc0, 0x76, 0x1f, 0xef, 0x8b, 0x0d, 0x85, 0x94, 0x1b, 0x13, + 0x56, 0x6f, 0x14, 0x32, 0x69, 0x50, 0xd7, 0x21, 0x80, 0xad, 0x80, 0x62, 0x4b, 0xd8, 0xfa, 0x1f, + 0x19, 0x1f, 0x1e, 0x0d, 0x25, 0xb2, 0x95, 0x46, 0xce, 0xc5, 0xf8, 0x7e, 0xe5, 0x4f, 0x3e, 0xa2, + 0x40, 0x9c, 0xa4, 0x6c, 0xc5, 0xba, 0x6f, 0x63, 0x9b, 0xa4, 0x64, 0x06, 0xd8, 0xa6, 0x2e, 0xa2, + 0xdc, 0xb0, 0xf7, 0x41, 0xbc, 0xc9, 0x7e, 0x7e, 0x8b, 0xb2, 0xc7, 0xf5, 0xc1, 0x75, 0xbc, 0x12, + 0xc0, 0xde, 0xdf, 0x87, 0x36, 0xfa, 0x2a, 0x29, 0xec, 0xf7, 0x91, 0xbf, 0x31, 0x08, 0xcc, 0x06, + 0x77, 0x3d, 0xd4, 0x66, 0x1e, 0x6c, 0xa3, 0x12, 0x55, 0xc6, 0x6f, 0x39, 0xd2, 0xd7, 0xb9, 0xe4, + 0x37, 0xef, 0x9b, 0xf7, 0xbb, 0x55, 0xec, 0xdb, 0xbd, 0x24, 0x30, 0xa1, 0xb1, 0xf2, 0xe7, 0x2f, + 0xb5, 0x99, 0x87, 0xda, 0xa8, 0x4c, 0x95, 0xf1, 0x5b, 0x81, 0xba, 0xd6, 0xf7, 0xd7, 0xb6, 0x90, + 0xa9, 0x67, 0x57, 0xa4, 0x8d, 0x4c, 0x5d, 0xc2, 0xee, 0x62, 0xc4, 0xc9, 0x5c, 0xfb, 0x39, 0x25, + 0x58, 0xf5, 0x11, 0x45, 0x38, 0xe4, 0x8a, 0x24, 0x7c, 0x67, 0xc7, 0x1c, 0x21, 0x96, 0x0c, 0x15, + 0xeb, 0xe6, 0x75, 0xcb, 0xa1, 0x6d, 0x0e, 0x26, 0xfb, 0x9f, 0xa7, 0xa2, 0x96, 0x6c, 0xe5, 0x86, + 0xcd, 0xbd, 0xfa, 0xfb, 0x8b, 0xc9, 0xb6, 0xfa, 0x9f, 0x1d, 0x6a, 0x91, 0x5d, 0xec, 0xb1, 0x7c, + 0xed, 0x4f, 0x5f, 0x86, 0x8e, 0xe9, 0xa3, 0xa0, 0x2a, 0xb3, 0x2d, 0x61, 0x63, 0x92, 0xf9, 0xa6, + 0x2f, 0xc3, 0x47, 0x5c, 0x9f, 0x66, 0xd4, 0x07, 0x4f, 0xa8, 0x27, 0x9e, 0x32, 0x7d, 0xb4, 0xfd, + 0x41, 0x9f, 0xfc, 0xd8, 0x46, 0x5f, 0xa6, 0x3e, 0x97, 0xe0, 0x0b, 0x0a, 0x99, 0x80, 0xbd, 0xbf, + 0xa2, 0x8f, 0x44, 0x06, 0xbc, 0xa1, 0xc0, 0xfc, 0xa2, 0x89, 0x6f, 0x27, 0x41, 0x6f, 0x59, 0x91, + 0x03, 0x81, 0x56, 0x92, 0xe6, 0xfd, 0x8b, 0x9d, 0x74, 0xcd, 0xc1, 0x97, 0xe5, 0x33, 0x97, 0xb8, + 0x29, 0x3b, 0xf2, 0xd2, 0xb6, 0x6e, 0x47, 0x15, 0x9f, 0x2f, 0xe0, 0xe7, 0x5e, 0x28, 0xec, 0xf3, + 0x94, 0xfa, 0x87, 0x0f, 0xf1, 0x9c, 0xb9, 0x32, 0xe7, 0xe1, 0x97, 0x23, 0x9d, 0x7d, 0x04, 0xb9, + 0x23, 0x1b, 0xb2, 0x37, 0xdb, 0x1a, 0xde, 0xaf, 0x84, 0x50, 0xbb, 0x76, 0x51, 0xdf, 0x21, 0xa3, + 0x5f, 0xb7, 0x2b, 0x21, 0x2f, 0x7a, 0x72, 0x51, 0x39, 0x0d, 0x2f, 0x0b, 0xf8, 0xea, 0xa8, 0x48, + 0x5d, 0x10, 0x28, 0x42, 0xf9, 0x07, 0xdc, 0xa1, 0x40, 0xd3, 0x1b, 0x07, 0x4a, 0x8a, 0x50, 0xfa, + 0x4b, 0xfe, 0x66, 0xc8, 0xa6, 0x96, 0xc1, 0xb5, 0x5c, 0x2e, 0x94, 0x90, 0xec, 0x87, 0x5f, 0xe2, + 0x92, 0xf0, 0x64, 0x7d, 0xf8, 0x80, 0x28, 0x33, 0x68, 0x94, 0x59, 0xfb, 0xf0, 0xcb, 0xee, 0x36, + 0x0a, 0x19, 0xe5, 0x12, 0xdb, 0x38, 0x2a, 0x73, 0xea, 0x37, 0x7b, 0xe7, 0x73, 0x69, 0x62, 0x96, + 0xfd, 0x87, 0xec, 0xf1, 0xba, 0x7e, 0xdf, 0xc8, 0x76, 0xc8, 0x84, 0x15, 0xbe, 0x2c, 0xa3, 0x3e, + 0x66, 0x40, 0xe8, 0xa3, 0x32, 0x48, 0x8c, 0x90, 0x93, 0x54, 0xfb, 0x75, 0xc3, 0xd9, 0x2b, 0xbb, + 0x2c, 0xb0, 0xb5, 0x6f, 0x64, 0x80, 0xf3, 0x73, 0x33, 0x8d, 0xe5, 0x5e, 0x45, 0x63, 0xd0, 0x87, + 0xc6, 0xd1, 0xe2, 0xa8, 0x7e, 0xe4, 0x34, 0xe6, 0x23, 0x1d, 0xcc, 0x8d, 0x05, 0x45, 0xfb, 0x47, + 0x77, 0x43, 0xb3, 0x35, 0xb7, 0xb0, 0xd9, 0x9a, 0x0a, 0x7d, 0xcd, 0xc3, 0xbe, 0xa5, 0xe2, 0x16, + 0xdd, 0xa7, 0xc0, 0x95, 0xfc, 0xb1, 0x3b, 0xa3, 0xc3, 0xb2, 0xb1, 0xb7, 0x3a, 0x32, 0xe7, 0x2c, + 0xc5, 0xc7, 0x58, 0x8d, 0x1c, 0x45, 0x0e, 0xfe, 0x44, 0x96, 0xc8, 0xc3, 0xff, 0xe8, 0x11, 0x55, + 0x06, 0xbb, 0x32, 0x8d, 0xb5, 0x2a, 0xf1, 0x67, 0x45, 0x06, 0x74, 0x09, 0x5e, 0xd0, 0x13, 0xa4, + 0xfc, 0x50, 0x03, 0xef, 0xd6, 0x99, 0x09, 0x6e, 0x6c, 0xc8, 0xbb, 0xc2, 0x63, 0xc9, 0xb4, 0xac, + 0x94, 0xbc, 0xdb, 0xae, 0x71, 0x59, 0x62, 0x75, 0xb0, 0x1e, 0x32, 0xba, 0x25, 0xba, 0x83, 0x94, + 0x44, 0xb3, 0x85, 0xbd, 0x76, 0x7f, 0x25, 0x7e, 0x8f, 0xba, 0x28, 0xfa, 0x0c, 0xb4, 0xcb, 0xa6, + 0x12, 0x2f, 0xe5, 0x44, 0x5e, 0x2a, 0xf6, 0xb2, 0x3e, 0xee, 0x0d, 0x3d, 0xfe, 0x3e, 0xd9, 0x9c, + 0x55, 0x5b, 0xdf, 0x17, 0x96, 0x0d, 0xd6, 0x52, 0x2f, 0xe5, 0xb2, 0x06, 0x5e, 0xe6, 0xa5, 0x3c, + 0x70, 0xa8, 0xb5, 0x18, 0x6f, 0x14, 0xa4, 0xf0, 0x2a, 0xd9, 0x48, 0x51, 0xe4, 0xc8, 0x02, 0x57, + 0x95, 0x99, 0x3f, 0x75, 0xcd, 0xae, 0x31, 0x1b, 0x3b, 0x11, 0xe7, 0xb1, 0x0e, 0x6a, 0xec, 0xd8, + 0xff, 0x01, 0x63, 0x6e, 0x14, 0x5e, 0x68, 0x28, 0xa6, 0x51, 0x88, 0x19, 0x97, 0xc0, 0x43, 0x7d, + 0x1a, 0x3b, 0x7d, 0xe0, 0xe1, 0xfb, 0xd9, 0x8b, 0xc5, 0x0b, 0xe7, 0x68, 0x4f, 0x22, 0x17, 0x9c, + 0xf9, 0x39, 0xde, 0x2b, 0xd4, 0x9e, 0xde, 0x59, 0x7e, 0x65, 0x7f, 0x3a, 0x6d, 0xcf, 0xe8, 0x1e, + 0x73, 0x25, 0xe0, 0xb4, 0xb8, 0xea, 0x79, 0x04, 0xae, 0xfe, 0x30, 0xe3, 0xb5, 0x31, 0x96, 0x74, + 0x47, 0x95, 0x15, 0x19, 0x23, 0x8e, 0x50, 0xbb, 0x35, 0x1d, 0x52, 0x32, 0x26, 0xf6, 0x15, 0xdd, + 0xbf, 0x03, 0xb8, 0xda, 0x61, 0x71, 0x36, 0x49, 0x2d, 0x15, 0xa7, 0x7d, 0x3c, 0x90, 0x34, 0x9f, + 0xf7, 0xa1, 0x3b, 0x1b, 0x44, 0x4b, 0xde, 0x94, 0xc8, 0xea, 0x30, 0x81, 0x63, 0x94, 0xab, 0x24, + 0x95, 0x74, 0xca, 0xd0, 0x6a, 0xf8, 0xc9, 0x0b, 0x59, 0x2c, 0x37, 0x32, 0xb0, 0xd2, 0x34, 0xb0, + 0x36, 0x21, 0x8b, 0xbd, 0xfd, 0x32, 0x46, 0x5e, 0x7b, 0xe4, 0x50, 0x59, 0x21, 0x15, 0x94, 0x2f, + 0x27, 0x7b, 0x20, 0x33, 0x72, 0xe0, 0xb7, 0x4f, 0x0d, 0xf5, 0xfe, 0xfc, 0x40, 0x33, 0x99, 0x4e, + 0x40, 0xaa, 0x2d, 0x08, 0x64, 0x44, 0x0e, 0x78, 0x7d, 0x54, 0xfe, 0xc1, 0x53, 0x43, 0x0f, 0xed, + 0xed, 0x46, 0xe8, 0x2b, 0xca, 0xbc, 0x87, 0x8f, 0xfa, 0x96, 0x93, 0x97, 0x22, 0xbe, 0x15, 0xf8, + 0xad, 0x33, 0xca, 0x93, 0xce, 0x56, 0xb1, 0x4d, 0xf3, 0xd9, 0x6a, 0x86, 0xa6, 0x2d, 0xcf, 0x67, + 0xe1, 0xb5, 0xc3, 0xd1, 0xf9, 0x6e, 0xf7, 0x3c, 0xb6, 0x28, 0x44, 0x68, 0xe6, 0x68, 0x68, 0x27, + 0x6d, 0x7f, 0x68, 0xf9, 0xdd, 0x0e, 0x39, 0xdc, 0xed, 0x36, 0x9d, 0xed, 0x5d, 0x33, 0xf9, 0xe0, + 0x7d, 0xd0, 0xba, 0xbc, 0xac, 0x83, 0x6b, 0x9a, 0xaf, 0x9a, 0x82, 0x83, 0xbd, 0x0f, 0x1f, 0xf6, + 0xb0, 0xc5, 0xf7, 0x3a, 0xbc, 0x35, 0xc4, 0x7a, 0xc1, 0xbf, 0x9b, 0xd8, 0x42, 0x00, 0xb1, 0x55, + 0xe4, 0xf7, 0xb1, 0xfd, 0x69, 0xd8, 0x6b, 0x0a, 0xaf, 0xf7, 0xd5, 0xd0, 0x82, 0x35, 0xb6, 0xb7, + 0xbb, 0x7d, 0x73, 0x68, 0xe1, 0x4a, 0xdb, 0xb6, 0x6e, 0xc4, 0xaa, 0xe0, 0x29, 0x3f, 0x60, 0x9b, + 0xde, 0x70, 0xf7, 0x59, 0xfe, 0xce, 0xbb, 0x8a, 0xd4, 0x1f, 0x45, 0xbb, 0xdb, 0xdc, 0x18, 0x4f, + 0xf3, 0x3c, 0xe6, 0x53, 0xff, 0x7b, 0x0d, 0x55, 0x4c, 0x39, 0x72, 0x5f, 0x7c, 0xf9, 0x5e, 0x9e, + 0x61, 0x58, 0x8a, 0x52, 0xd4, 0xf7, 0x9f, 0x5b, 0x4d, 0xbc, 0x0b, 0xed, 0xe8, 0xba, 0x44, 0x89, + 0x1a, 0x8b, 0x76, 0xc7, 0x2d, 0x65, 0x79, 0x47, 0xee, 0x4a, 0x78, 0xd4, 0x1a, 0x7c, 0x33, 0x05, + 0x71, 0x79, 0x45, 0x3e, 0x5a, 0xf0, 0xd1, 0xb3, 0x47, 0xd6, 0xc7, 0x8b, 0xf7, 0x3c, 0x4f, 0xe1, + 0xd6, 0x00, 0xc2, 0x8a, 0x48, 0x42, 0xe8, 0xc2, 0x0f, 0xff, 0x37, 0x42, 0xa7, 0x82, 0xaa, 0xd6, + 0x36, 0x3d, 0xd4, 0xb4, 0xc1, 0x23, 0x37, 0xae, 0xdb, 0x87, 0x7c, 0x9b, 0x6d, 0x9e, 0x0c, 0xf1, + 0x14, 0x6e, 0xe9, 0x55, 0x65, 0x3f, 0xfa, 0xc6, 0x31, 0x84, 0xc6, 0x36, 0x0e, 0x3e, 0x4f, 0xc1, + 0x9f, 0xb2, 0x7d, 0xb8, 0x9b, 0x77, 0x3c, 0xbc, 0xf1, 0xcb, 0x1f, 0x1f, 0x6d, 0x9b, 0xea, 0xf6, + 0x51, 0x03, 0xb8, 0x69, 0x93, 0x37, 0xf8, 0x9b, 0x81, 0xdf, 0x7c, 0x44, 0x75, 0x3c, 0xdb, 0xf1, + 0xc6, 0xc1, 0x37, 0x5e, 0x7d, 0x03, 0x9c, 0x59, 0x7d, 0x4e, 0xb4, 0x70, 0x14, 0x32, 0xb5, 0xe3, + 0xe0, 0x72, 0x52, 0x80, 0xc9, 0x32, 0x31, 0x43, 0xec, 0x41, 0xaa, 0x62, 0xc3, 0x03, 0x41, 0x8e, + 0x48, 0xe3, 0x12, 0xfb, 0xbf, 0xda, 0x2d, 0xba, 0xc5, 0xa9, 0x5d, 0x78, 0x9b, 0x60, 0x4d, 0x34, + 0x3b, 0x96, 0x3c, 0x55, 0xdb, 0x69, 0xdb, 0xcd, 0xeb, 0xf2, 0x95, 0xf1, 0x83, 0xae, 0x46, 0xa1, + 0xc5, 0xda, 0x4b, 0x97, 0x53, 0x1e, 0xcf, 0xa3, 0xbe, 0x7e, 0x94, 0x2d, 0xd7, 0xcb, 0x56, 0x50, + 0xde, 0xcf, 0x0e, 0xb7, 0xd0, 0x67, 0x6f, 0x39, 0x63, 0xae, 0x98, 0xb0, 0xdf, 0x7b, 0xdb, 0xe0, + 0x23, 0xa5, 0x63, 0xf6, 0x71, 0xf9, 0x95, 0x16, 0xb2, 0xb8, 0x30, 0x6a, 0x3b, 0x31, 0x66, 0x3b, + 0x30, 0x62, 0x3b, 0x37, 0x14, 0x03, 0x6f, 0xfe, 0x19, 0x94, 0x53, 0x22, 0xbd, 0x09, 0xa9, 0x28, + 0x70, 0x57, 0x60, 0x06, 0x65, 0x97, 0x4e, 0x3c, 0x0e, 0x49, 0xe9, 0xd8, 0x52, 0x32, 0x2b, 0x0d, + 0x43, 0x87, 0x79, 0x36, 0x65, 0x75, 0xd6, 0x5b, 0x3b, 0x84, 0x25, 0xd4, 0x85, 0xc2, 0xa8, 0x76, + 0x71, 0xcb, 0x81, 0x59, 0xb5, 0xda, 0xa5, 0xad, 0xc1, 0x59, 0x21, 0xed, 0xf2, 0xf6, 0x4a, 0x9e, + 0xe7, 0xd8, 0x16, 0x9c, 0x55, 0xa5, 0x5d, 0x51, 0x56, 0x08, 0x2d, 0xf2, 0x02, 0xb8, 0xa8, 0x98, + 0x43, 0x09, 0x6d, 0x01, 0x57, 0xa0, 0xba, 0x0f, 0xac, 0xc6, 0xcc, 0x06, 0xa0, 0x18, 0x16, 0xbb, + 0xc9, 0x6a, 0x8b, 0xa9, 0x24, 0x58, 0x62, 0x2a, 0xad, 0x84, 0xcc, 0xe4, 0x2c, 0xb5, 0x44, 0x0e, + 0x41, 0x53, 0x73, 0x95, 0x99, 0x22, 0x2f, 0xff, 0xe4, 0x50, 0x73, 0x16, 0x64, 0x85, 0x0b, 0xb3, + 0x22, 0xda, 0x45, 0xd5, 0x82, 0xdf, 0x0b, 0x3c, 0xcf, 0x82, 0x51, 0x2a, 0x0b, 0xf9, 0x7f, 0x0c, + 0x79, 0xe2, 0x13, 0x84, 0xea, 0xab, 0x15, 0x9f, 0xfc, 0xc9, 0xeb, 0x65, 0x63, 0x35, 0xde, 0x4b, + 0xff, 0xe1, 0xf5, 0xb2, 0xdf, 0x9f, 0xdb, 0x35, 0xeb, 0x65, 0x3c, 0xa7, 0x6d, 0x33, 0xf1, 0x6c, + 0xb0, 0xd8, 0x09, 0x33, 0xba, 0x5e, 0x46, 0xe3, 0xd6, 0xcb, 0x4c, 0x57, 0xaf, 0x97, 0x75, 0xd4, + 0x0f, 0xdd, 0x1f, 0x1e, 0x88, 0xf3, 0x3e, 0x25, 0x47, 0x0d, 0xc6, 0x6b, 0xbe, 0x83, 0x77, 0xdf, + 0x73, 0xd3, 0x72, 0x9a, 0x4a, 0x6a, 0x00, 0x58, 0xdf, 0xbe, 0xa1, 0x30, 0xac, 0x0d, 0xfb, 0x5b, + 0xb4, 0x8f, 0x1f, 0xeb, 0x43, 0x4b, 0x9d, 0xfe, 0xab, 0x57, 0x0b, 0xe7, 0x6a, 0x67, 0xff, 0xfa, + 0x70, 0x61, 0x9d, 0x76, 0x3e, 0x35, 0xff, 0xe4, 0xe3, 0x19, 0xa8, 0xe1, 0xc8, 0x6a, 0xe8, 0x0f, + 0xf8, 0x22, 0x35, 0x4b, 0x5c, 0x72, 0xd6, 0x31, 0x43, 0x3b, 0xaf, 0xcc, 0xd0, 0xc4, 0xfa, 0xc0, + 0xae, 0x24, 0x24, 0x19, 0x13, 0xe0, 0x9c, 0xba, 0x85, 0x6c, 0x26, 0x89, 0x68, 0xf2, 0x4d, 0x18, + 0x67, 0x6e, 0x0f, 0x91, 0xf3, 0xf6, 0x2a, 0x72, 0x89, 0x1d, 0x6f, 0x03, 0x46, 0x6b, 0x82, 0xa6, + 0x4a, 0xfd, 0xa0, 0x27, 0x8b, 0xc3, 0xa0, 0x29, 0x9e, 0xbf, 0x73, 0xf6, 0x39, 0x0b, 0x41, 0x65, + 0xd0, 0xd7, 0x20, 0x19, 0x48, 0x83, 0xa1, 0xcd, 0x2d, 0x94, 0x13, 0xb0, 0x0d, 0x55, 0x6d, 0x69, + 0x81, 0xd4, 0x0d, 0x5a, 0x5a, 0x75, 0xc3, 0x71, 0xa6, 0xa5, 0xb0, 0x4e, 0x4b, 0x29, 0x89, 0x11, + 0x2d, 0x3a, 0x02, 0x7a, 0xba, 0x62, 0xcc, 0xcc, 0x5f, 0x48, 0xcd, 0xcc, 0xa7, 0x69, 0xa8, 0x40, + 0x3b, 0x31, 0x3a, 0x07, 0xe7, 0x97, 0xfc, 0xc1, 0xcd, 0x07, 0x41, 0x1f, 0x97, 0xfc, 0x95, 0x9b, + 0x5f, 0xc2, 0xfd, 0xf2, 0x60, 0x88, 0xe7, 0xc4, 0x87, 0xaa, 0x78, 0x2e, 0xcf, 0x1f, 0x2a, 0x04, + 0xe5, 0xf8, 0xab, 0xd8, 0xab, 0xc4, 0x98, 0x75, 0x11, 0x7d, 0xee, 0x2d, 0x7a, 0xdd, 0xb9, 0x37, + 0xab, 0x2e, 0x75, 0xf2, 0xfa, 0xf3, 0xec, 0x0a, 0x77, 0x6d, 0x11, 0xcf, 0xef, 0xe7, 0x0a, 0xdf, + 0x3b, 0x3c, 0x9a, 0x4c, 0x11, 0x6d, 0x9e, 0xa7, 0xcf, 0xb1, 0x25, 0xb2, 0x21, 0xd9, 0x79, 0xcb, + 0xd0, 0x36, 0x7f, 0xf5, 0x0b, 0x31, 0xbf, 0x1c, 0xfc, 0xfe, 0x2f, 0x99, 0xfb, 0xa9, 0x17, 0xc4, + 0x5c, 0x7e, 0xae, 0x18, 0x4b, 0x8a, 0x75, 0xce, 0x6e, 0xb2, 0x58, 0x6c, 0x7c, 0xae, 0x87, 0x89, + 0xa2, 0x3b, 0xa9, 0x38, 0xc1, 0x2b, 0x25, 0x56, 0xdd, 0x3a, 0xfe, 0x23, 0x3f, 0x6b, 0x44, 0xf8, + 0xc2, 0x04, 0x0e, 0x1c, 0x11, 0xb1, 0x21, 0xdf, 0x04, 0xc0, 0xc9, 0x6b, 0x27, 0xf9, 0x3e, 0x6e, + 0xe7, 0x82, 0xc8, 0xc0, 0x7b, 0x7d, 0x3e, 0x0a, 0xfd, 0xad, 0xf0, 0xf3, 0xc3, 0x3a, 0x22, 0xef, + 0x4e, 0x03, 0x7f, 0xe6, 0xd5, 0x15, 0x9f, 0x45, 0xdf, 0x77, 0xf3, 0x5f, 0x17, 0xd2, 0x72, 0x30, + 0x14, 0xf6, 0x8f, 0xe0, 0x56, 0xb3, 0xc5, 0x88, 0x3c, 0x53, 0x1f, 0x91, 0x17, 0x6c, 0xd2, 0xf9, + 0x7b, 0x3c, 0x9f, 0xe1, 0x01, 0x1c, 0x52, 0x82, 0xed, 0xc2, 0x65, 0x65, 0x8b, 0x12, 0xbb, 0x65, + 0x39, 0xef, 0x4f, 0x55, 0x97, 0xfa, 0x26, 0x00, 0x13, 0x56, 0xd6, 0x9f, 0x39, 0xaf, 0x0f, 0x3a, + 0xb9, 0x9c, 0x52, 0x2e, 0xf9, 0x90, 0xc2, 0x63, 0x21, 0xef, 0xfe, 0xaf, 0x2b, 0xf6, 0x60, 0x9c, + 0x39, 0x88, 0x11, 0x25, 0x2f, 0xf2, 0xd2, 0x7b, 0x1b, 0xcb, 0xb8, 0x67, 0xbc, 0xcc, 0x23, 0xb0, + 0x77, 0x0e, 0xeb, 0x08, 0xb7, 0x2f, 0xe7, 0xdd, 0x66, 0xb7, 0xb3, 0xfd, 0x3c, 0xe7, 0x5e, 0xcc, + 0xf3, 0x61, 0xa2, 0xee, 0x56, 0x6a, 0x90, 0x58, 0xdf, 0x29, 0x96, 0x1a, 0xfe, 0x4d, 0x13, 0x73, + 0xc2, 0x76, 0xc1, 0xb9, 0xe4, 0x5b, 0xa3, 0xd0, 0x23, 0x78, 0xce, 0x5e, 0xd7, 0xc0, 0xf2, 0x55, + 0x65, 0x4c, 0x78, 0x8c, 0xc7, 0xe0, 0xe8, 0xc3, 0x89, 0x3c, 0x5e, 0x35, 0x70, 0x45, 0x19, 0xcb, + 0x2a, 0xdb, 0x87, 0x78, 0xff, 0xea, 0x17, 0xdf, 0xff, 0xa5, 0x2a, 0xb9, 0xa2, 0xce, 0x48, 0x74, + 0x4b, 0x9c, 0xae, 0x6c, 0x63, 0xee, 0x26, 0x56, 0xdb, 0xbf, 0x75, 0x17, 0xda, 0xcc, 0x5f, 0xe6, + 0xaa, 0x75, 0xb3, 0x76, 0x60, 0x87, 0xb4, 0x9c, 0x0f, 0xad, 0xa0, 0x00, 0x3a, 0xc1, 0x54, 0x65, + 0x4a, 0x22, 0x67, 0x8c, 0x8c, 0xcf, 0x72, 0xfc, 0x4a, 0x55, 0x7a, 0xf8, 0xb0, 0x63, 0x6e, 0xf5, + 0x47, 0x64, 0xf7, 0x36, 0x0b, 0x89, 0xde, 0x2d, 0xe4, 0xaf, 0xba, 0xb1, 0xf2, 0xd7, 0x42, 0x2b, + 0xcf, 0xde, 0xdd, 0x25, 0x6c, 0x11, 0x5c, 0x11, 0xd7, 0x44, 0x4f, 0x7d, 0x6a, 0x5e, 0xd1, 0x68, + 0xd5, 0x6c, 0xdd, 0x9a, 0x3c, 0xe3, 0x09, 0x48, 0xa3, 0xa3, 0x7e, 0x92, 0x6e, 0xd0, 0x77, 0x8c, + 0xbc, 0x67, 0xd6, 0xfd, 0x03, 0xc5, 0x73, 0x75, 0xcb, 0x9b, 0xf7, 0x16, 0xb9, 0x83, 0xec, 0x5b, + 0x4e, 0xd8, 0x65, 0x1c, 0x0e, 0x85, 0x55, 0x69, 0x95, 0x31, 0xff, 0xca, 0x12, 0x51, 0xc2, 0xac, + 0x84, 0x10, 0xfe, 0x58, 0x74, 0x6d, 0xdc, 0x9c, 0x57, 0x4e, 0xca, 0x9b, 0x9b, 0xda, 0x0b, 0x78, + 0xb7, 0xc0, 0xe8, 0x2e, 0x02, 0xda, 0x3a, 0xad, 0x0e, 0x3d, 0xab, 0xca, 0xdb, 0x22, 0xac, 0xbe, + 0xf7, 0x8a, 0x19, 0xdb, 0xf6, 0xe2, 0xfd, 0xef, 0xbc, 0x3b, 0x6d, 0x2e, 0xc9, 0x62, 0x4f, 0xa1, + 0x45, 0xac, 0x9a, 0xe6, 0x25, 0x9c, 0xc2, 0x46, 0xa6, 0xb8, 0x63, 0xf2, 0x40, 0x77, 0x4e, 0x39, + 0xc9, 0xbb, 0x92, 0x5c, 0x7f, 0x1d, 0xaa, 0x73, 0x2a, 0x74, 0x6a, 0xd4, 0x2b, 0x71, 0x77, 0x34, + 0x9c, 0xc8, 0x15, 0x56, 0x0e, 0x93, 0x74, 0x0a, 0x7a, 0x6f, 0x15, 0xb7, 0x99, 0x2a, 0x4f, 0x8f, + 0x92, 0x05, 0x6d, 0x90, 0x4d, 0x85, 0x5a, 0x92, 0xf2, 0xc6, 0xd4, 0xec, 0x95, 0x76, 0x93, 0x5a, + 0x00, 0x3d, 0xb4, 0x60, 0xd4, 0x76, 0x63, 0x5c, 0xac, 0xb0, 0x7c, 0x60, 0x8c, 0xf1, 0x4e, 0x0e, + 0x03, 0xca, 0x5d, 0xea, 0x6b, 0xe8, 0x49, 0xa5, 0x1e, 0x93, 0x68, 0xdb, 0x98, 0xf0, 0xab, 0x62, + 0x83, 0x3c, 0xe7, 0xd6, 0x67, 0x2d, 0x57, 0x11, 0xb4, 0xd1, 0x90, 0x6e, 0xd1, 0xd3, 0xdf, 0xbb, + 0x48, 0x76, 0x53, 0x63, 0x6f, 0x71, 0x97, 0xa6, 0xb1, 0x87, 0x09, 0xf6, 0x6f, 0xf5, 0x7e, 0x10, + 0xb2, 0x74, 0x86, 0x4f, 0x12, 0xf2, 0x33, 0xf7, 0xd1, 0xdc, 0xbf, 0x1b, 0xb8, 0x57, 0x76, 0x06, + 0x8b, 0xcc, 0xb1, 0xf5, 0x7b, 0xd7, 0x2f, 0x3e, 0xa5, 0x4a, 0x6b, 0x48, 0x99, 0x50, 0xf7, 0x4e, + 0xc1, 0x88, 0xf0, 0x03, 0x28, 0x09, 0xfb, 0xf6, 0x12, 0xa5, 0x55, 0x72, 0xaa, 0xbc, 0x43, 0xdd, + 0xe2, 0x34, 0x1d, 0x4a, 0xee, 0xe6, 0xdd, 0xe2, 0xa9, 0x39, 0xcb, 0x73, 0x6a, 0x7e, 0x4d, 0xf7, + 0xc1, 0x64, 0xe5, 0x59, 0xe8, 0x5d, 0x66, 0xa4, 0xb5, 0x36, 0xf4, 0x29, 0xb6, 0x4e, 0x6d, 0x77, + 0x32, 0xfe, 0xf1, 0xc3, 0x87, 0x15, 0xcb, 0x18, 0x3f, 0x0b, 0x23, 0xa0, 0x26, 0x07, 0xaf, 0x47, + 0xf0, 0xfa, 0xa5, 0x6b, 0x86, 0xa0, 0x6a, 0x8b, 0xd8, 0xcf, 0xeb, 0xf2, 0xf1, 0xec, 0xa3, 0x3e, + 0x93, 0x67, 0xc7, 0x95, 0x2b, 0x20, 0x14, 0x3d, 0xe7, 0x9d, 0x05, 0xc2, 0xba, 0x2a, 0x98, 0x28, + 0x52, 0xa1, 0x69, 0x42, 0x76, 0x7f, 0x6e, 0xe4, 0x47, 0x62, 0x5c, 0x60, 0x3a, 0x9f, 0xa1, 0x8d, + 0xe8, 0x61, 0x57, 0x76, 0x8a, 0x77, 0xc9, 0x91, 0x61, 0xbc, 0xef, 0xf7, 0xf1, 0xea, 0x69, 0x46, + 0xda, 0x56, 0x48, 0x3a, 0xd3, 0x3d, 0xc4, 0xfb, 0x0f, 0xad, 0xaf, 0x1f, 0x68, 0x9f, 0x70, 0x28, + 0xb9, 0xf2, 0x7b, 0x35, 0x19, 0xa7, 0xff, 0xd7, 0x7d, 0xb6, 0xba, 0x0f, 0xc2, 0x56, 0xed, 0xbc, + 0xae, 0x15, 0x8f, 0xf0, 0x1a, 0x7b, 0x85, 0xb3, 0x2d, 0x63, 0x81, 0xcb, 0x97, 0xb1, 0xd0, 0xe3, + 0xcb, 0x50, 0x3b, 0xa9, 0xf6, 0xb2, 0x16, 0xf1, 0x56, 0xc5, 0x1e, 0x2a, 0xca, 0xf0, 0x66, 0xb8, + 0xb3, 0x3d, 0xd5, 0x8d, 0x0f, 0xba, 0xaa, 0x63, 0x0f, 0xe8, 0x3b, 0x99, 0xb8, 0xc7, 0xeb, 0xfe, + 0x31, 0xa2, 0xc1, 0xb8, 0xcd, 0x9d, 0xed, 0xcd, 0x76, 0x55, 0x37, 0x3e, 0x50, 0x94, 0x19, 0xbb, + 0x0f, 0x54, 0x77, 0x42, 0x4f, 0xa3, 0x9f, 0x19, 0xb4, 0xbf, 0xb7, 0x59, 0x05, 0x5d, 0x5c, 0xf5, + 0x4d, 0xa2, 0xce, 0x2b, 0xab, 0x92, 0xd7, 0xe4, 0x30, 0xc7, 0xba, 0x11, 0x6b, 0xd2, 0x63, 0x21, + 0x9f, 0x96, 0xea, 0x29, 0xd8, 0x5e, 0x09, 0x39, 0xbf, 0xdd, 0xbe, 0xb8, 0xbf, 0x07, 0x3d, 0x63, + 0xb3, 0x22, 0xbd, 0xdb, 0x57, 0xf9, 0x51, 0x46, 0xd3, 0xeb, 0x03, 0xb7, 0xd4, 0x8c, 0x0c, 0xc7, + 0x7a, 0xc6, 0xbc, 0xcf, 0x1b, 0x39, 0xf1, 0x22, 0x97, 0x31, 0xe9, 0xda, 0x32, 0x8a, 0x50, 0x46, + 0x91, 0xc9, 0x31, 0x01, 0x65, 0x4c, 0xfa, 0x83, 0x65, 0x78, 0xc7, 0xe4, 0x39, 0xe7, 0xaa, 0x32, + 0xe6, 0x8e, 0x9c, 0x88, 0xf5, 0xaa, 0xa4, 0xb1, 0xe6, 0x95, 0x71, 0x55, 0x29, 0x44, 0x47, 0xf4, + 0x50, 0xa3, 0xbe, 0x6b, 0x5b, 0x16, 0xa0, 0xb4, 0xab, 0x53, 0x85, 0xbd, 0x19, 0xbe, 0x49, 0x9e, + 0x9a, 0xc6, 0x07, 0xb9, 0x8f, 0x8c, 0x8b, 0x61, 0xab, 0xb0, 0xd3, 0x3a, 0x0c, 0xb4, 0xe3, 0xf7, + 0xd4, 0x13, 0x30, 0xec, 0x5d, 0xdb, 0x36, 0x1f, 0xbc, 0xfe, 0xea, 0xbc, 0x43, 0xee, 0x0c, 0xdf, + 0x04, 0x4f, 0xf8, 0x7a, 0x79, 0xbb, 0x53, 0x79, 0xd7, 0x8d, 0xc9, 0x29, 0x7c, 0x55, 0xce, 0x73, + 0x46, 0x4e, 0x34, 0xae, 0x45, 0xed, 0x9c, 0xd1, 0x9e, 0x84, 0xbb, 0x71, 0x4c, 0x8c, 0xcb, 0x3d, + 0x32, 0xac, 0x48, 0xb1, 0x64, 0xea, 0xdd, 0xe3, 0x1e, 0x39, 0xa1, 0xd2, 0x67, 0xe7, 0x53, 0x67, + 0x10, 0xb1, 0x24, 0x98, 0xe1, 0x16, 0x7b, 0xb6, 0x79, 0x76, 0xc8, 0x0e, 0x79, 0xb5, 0x00, 0x72, + 0xab, 0x12, 0x5d, 0xdb, 0xd2, 0x14, 0xed, 0x6d, 0x69, 0xd8, 0xb3, 0x93, 0x0a, 0x16, 0x47, 0xf7, + 0xee, 0x24, 0x65, 0x71, 0x58, 0xd0, 0x64, 0xda, 0xc6, 0xc3, 0x91, 0x71, 0xa6, 0x5b, 0x50, 0xe4, + 0x40, 0xfb, 0x84, 0x81, 0xb5, 0xec, 0xf9, 0x62, 0xf8, 0x87, 0x87, 0xfc, 0x76, 0x8a, 0x17, 0x38, + 0x73, 0x04, 0x35, 0x67, 0x38, 0x64, 0x83, 0x9a, 0x0f, 0xf6, 0xf7, 0x8c, 0xee, 0xb6, 0x82, 0xee, + 0x59, 0xf0, 0x7f, 0xbf, 0xbc, 0xf9, 0x57, 0x95, 0xa7, 0xdb, 0xa0, 0x54, 0x04, 0x9c, 0xb5, 0x5e, + 0xf2, 0x98, 0x5c, 0xd9, 0xae, 0x65, 0x64, 0xdd, 0xa3, 0xaf, 0xa9, 0x9c, 0xd1, 0xfd, 0xa7, 0x25, + 0x72, 0xfd, 0x4b, 0x69, 0x3d, 0x4b, 0x06, 0xca, 0x5d, 0x78, 0xea, 0xc3, 0xd3, 0x25, 0x95, 0x57, + 0xd3, 0x8c, 0x79, 0x39, 0xf6, 0x8e, 0x34, 0x3a, 0x63, 0xc7, 0x33, 0xce, 0xab, 0x26, 0x1f, 0x7f, + 0x56, 0xbb, 0xd8, 0x7e, 0xe1, 0x70, 0xf2, 0xcc, 0x46, 0xf6, 0x4b, 0x34, 0x66, 0x47, 0xe1, 0xd3, + 0xbc, 0xa3, 0x90, 0x36, 0xf2, 0x18, 0xed, 0xbb, 0x71, 0xd4, 0x07, 0x4b, 0xb4, 0x27, 0x9e, 0x07, + 0xdd, 0x8f, 0x77, 0x6a, 0x6d, 0x65, 0x5b, 0x98, 0xc2, 0x2e, 0x1a, 0xfe, 0xef, 0xcd, 0xda, 0x09, + 0xd5, 0xee, 0x88, 0x2a, 0x66, 0x47, 0x26, 0xc7, 0x5c, 0x39, 0x98, 0x8a, 0x59, 0x3d, 0xa2, 0x9d, + 0x28, 0x6c, 0xd4, 0x4e, 0x43, 0x1a, 0x1a, 0x66, 0x7b, 0x7c, 0xe3, 0x4b, 0xe6, 0x1f, 0xe7, 0x8d, + 0xe7, 0x27, 0x78, 0x57, 0x41, 0x21, 0x24, 0x24, 0xd0, 0xaf, 0x99, 0x6d, 0xf5, 0xeb, 0xf7, 0x7d, + 0xfa, 0x49, 0x31, 0x21, 0x37, 0xc8, 0x6d, 0x22, 0xb7, 0x9d, 0xfa, 0xaa, 0x54, 0x28, 0xe4, 0x97, + 0xea, 0x3e, 0xa8, 0xeb, 0xd2, 0xf6, 0xa6, 0xe6, 0x73, 0x2b, 0xca, 0x57, 0x53, 0xbe, 0x9b, 0x6e, + 0x11, 0x56, 0xcc, 0xca, 0x63, 0xc9, 0x76, 0x5a, 0x45, 0xa1, 0xca, 0x92, 0xf2, 0xef, 0x69, 0xc5, + 0xe5, 0x49, 0x93, 0xba, 0xdc, 0xb9, 0x94, 0xfc, 0x42, 0xaa, 0x31, 0x17, 0x77, 0x58, 0x48, 0x95, + 0x1e, 0x3d, 0xb2, 0x27, 0xda, 0x26, 0x95, 0x64, 0xb9, 0x96, 0x92, 0xdb, 0x4b, 0x27, 0x92, 0xde, + 0xdb, 0x52, 0x27, 0xf4, 0x95, 0x86, 0x8a, 0xb3, 0x22, 0x07, 0x3d, 0x35, 0x73, 0x7e, 0xe7, 0xa6, + 0x9f, 0xfe, 0xa2, 0x4d, 0x72, 0xd5, 0x15, 0x4f, 0x42, 0x2a, 0xaf, 0xc0, 0xaf, 0xf9, 0xd8, 0xbf, + 0xe2, 0x6b, 0xf9, 0xd8, 0x59, 0xb2, 0x0b, 0x8d, 0xff, 0xe6, 0x84, 0x79, 0x57, 0xb4, 0xcd, 0xa2, + 0xca, 0xbb, 0xa2, 0xcd, 0x52, 0x20, 0x2b, 0xd6, 0xdb, 0x94, 0xdc, 0xd7, 0xdb, 0xbc, 0x25, 0xd0, + 0x7d, 0x1b, 0x7b, 0xe9, 0x94, 0x6e, 0xab, 0x22, 0xb9, 0x31, 0x74, 0x5b, 0x48, 0xac, 0x61, 0xe6, + 0x87, 0x83, 0xb7, 0x05, 0xc9, 0xcc, 0x6b, 0x3c, 0x8d, 0xc1, 0xcd, 0x90, 0xfa, 0xf0, 0x96, 0x55, + 0xf7, 0x4e, 0xb9, 0x3e, 0xf3, 0x78, 0x89, 0x47, 0x77, 0x67, 0xc4, 0x95, 0x6d, 0x58, 0x5b, 0x9c, + 0x17, 0x36, 0xc6, 0xba, 0x3d, 0x20, 0xd1, 0xfd, 0x2e, 0xa6, 0x09, 0x0f, 0x29, 0x42, 0x9a, 0xf6, + 0x08, 0x58, 0x96, 0xb6, 0xdf, 0xa1, 0x54, 0x0d, 0xb2, 0x8c, 0x89, 0xd6, 0x13, 0x2b, 0x33, 0x2b, + 0x0c, 0xe9, 0x7c, 0x52, 0x7a, 0xf7, 0x01, 0xcb, 0xdb, 0x13, 0x13, 0xec, 0x99, 0xd3, 0x3e, 0xea, + 0x17, 0x45, 0x7c, 0xed, 0x61, 0xea, 0x43, 0x3a, 0xab, 0xa3, 0xca, 0x35, 0x5d, 0x8e, 0xcd, 0x5f, + 0x0b, 0xbc, 0x5f, 0x82, 0x24, 0x7d, 0x1d, 0x19, 0x7f, 0xd4, 0x83, 0x90, 0xda, 0xd0, 0x49, 0xc5, + 0xb6, 0x77, 0xef, 0x77, 0x47, 0x20, 0x13, 0x2a, 0x3c, 0xef, 0xac, 0xa4, 0xac, 0x46, 0xb3, 0xf5, + 0x5d, 0x9f, 0x8a, 0x24, 0xda, 0x29, 0x3b, 0xf6, 0xc0, 0x82, 0x8d, 0x90, 0xad, 0x33, 0xd1, 0x1e, + 0xa6, 0xfe, 0x07, 0x16, 0x1d, 0xd3, 0xbf, 0xb7, 0x9a, 0xc8, 0x72, 0xaf, 0xa5, 0x29, 0xc9, 0x3a, + 0x20, 0x7a, 0xac, 0x5b, 0x78, 0x70, 0x64, 0x6b, 0x72, 0x43, 0x2e, 0xbd, 0x7a, 0xd7, 0xb6, 0x56, + 0x94, 0xf6, 0x66, 0x1b, 0x31, 0xf0, 0xb2, 0x4b, 0xf7, 0x6f, 0x89, 0x31, 0x15, 0xf8, 0x57, 0x82, + 0x7c, 0x42, 0x9d, 0x8f, 0x57, 0xcc, 0x2f, 0x6b, 0x87, 0xea, 0x1f, 0x49, 0xc7, 0x01, 0x12, 0x47, + 0x30, 0xf2, 0x2d, 0x11, 0x67, 0xad, 0x7f, 0x84, 0xc7, 0x36, 0xde, 0x71, 0x2a, 0xf2, 0x60, 0x1c, + 0xc4, 0x11, 0xa2, 0x8f, 0xd1, 0x75, 0xd7, 0xf9, 0xc6, 0x4d, 0x25, 0xc8, 0xaf, 0x73, 0x7c, 0x7e, + 0x7a, 0x59, 0xfc, 0x1d, 0xe2, 0xcb, 0x52, 0x71, 0x90, 0x64, 0xb9, 0x67, 0xeb, 0x5e, 0x6f, 0x9d, + 0xe9, 0xb0, 0x62, 0x70, 0xdf, 0x7d, 0x5a, 0xc0, 0xf0, 0x99, 0x47, 0xe9, 0x39, 0xae, 0x88, 0x5a, + 0xe4, 0xcc, 0x81, 0x5c, 0x3b, 0xb5, 0xea, 0x42, 0x1f, 0xb1, 0xa7, 0x00, 0xb4, 0x8c, 0xf5, 0xaa, + 0xbd, 0x85, 0xae, 0xd1, 0x37, 0x67, 0x48, 0xac, 0x76, 0x1f, 0xd5, 0x67, 0xb8, 0xd2, 0x79, 0x78, + 0x44, 0x1e, 0x96, 0xd7, 0x0f, 0x3b, 0x58, 0xce, 0xb5, 0x0c, 0xf6, 0x8d, 0xfb, 0x3e, 0xeb, 0x9a, + 0xef, 0x07, 0x53, 0xdf, 0xfb, 0xf4, 0x19, 0x36, 0x6b, 0xfb, 0xa8, 0xa7, 0xa6, 0xa2, 0xeb, 0xed, + 0x96, 0x4f, 0xe1, 0xbd, 0xb4, 0xa2, 0x98, 0x3c, 0x4b, 0xc9, 0x89, 0x91, 0xf7, 0x6d, 0x57, 0x39, + 0x73, 0x03, 0x8c, 0xa6, 0xa7, 0xbc, 0xf3, 0xf8, 0xac, 0x43, 0x50, 0x64, 0x4e, 0x69, 0x21, 0xe5, + 0xbf, 0xfa, 0x3e, 0x15, 0x1c, 0xef, 0x05, 0x6d, 0x9a, 0x21, 0xf7, 0xeb, 0xfe, 0x4e, 0xe5, 0xd4, + 0xf9, 0x7c, 0x4a, 0x21, 0x79, 0xfb, 0x77, 0x5e, 0x2f, 0x26, 0x84, 0xd0, 0xd0, 0xd3, 0xe4, 0xf5, + 0xaf, 0xa0, 0xa9, 0x90, 0xf1, 0x65, 0xa5, 0x8a, 0x29, 0x0d, 0x5d, 0x17, 0x98, 0x86, 0xdc, 0x36, + 0x26, 0x35, 0x52, 0x4a, 0x46, 0x5e, 0xee, 0x44, 0xbe, 0x1e, 0x83, 0xaf, 0x0a, 0x22, 0xed, 0x7d, + 0x24, 0xe2, 0x9f, 0x26, 0xb7, 0xe0, 0x46, 0x21, 0xb1, 0x6b, 0x57, 0xdf, 0x25, 0x5b, 0xc4, 0xd2, + 0xd1, 0x98, 0x52, 0x4d, 0x7a, 0xa9, 0xe9, 0xf6, 0x61, 0x5d, 0x20, 0x5f, 0xe4, 0x9d, 0xcf, 0xe1, + 0xde, 0x56, 0xca, 0xfe, 0xf9, 0x2f, 0xe3, 0xa4, 0xb9, 0x3d, 0x2d, 0x64, 0xde, 0xa7, 0xaf, 0xfe, + 0xe6, 0xb3, 0xbc, 0x27, 0x4e, 0xf4, 0x93, 0x9c, 0x96, 0x95, 0x93, 0x07, 0xd7, 0x5e, 0xcf, 0x8b, + 0x95, 0x23, 0x34, 0x66, 0x57, 0xc4, 0x3b, 0x41, 0xab, 0xf0, 0x8d, 0xea, 0x28, 0x06, 0xe3, 0xe6, + 0xbd, 0xab, 0xad, 0xa3, 0xb3, 0x94, 0x7d, 0x91, 0x83, 0x99, 0x3b, 0xe9, 0x47, 0x63, 0xe7, 0xda, + 0x52, 0x6d, 0xe2, 0xcb, 0x4a, 0xb0, 0xee, 0x62, 0x4b, 0x51, 0xe7, 0xc8, 0xe2, 0xb1, 0x5e, 0x8c, + 0x0c, 0x9f, 0x8a, 0xdf, 0xd2, 0x79, 0x04, 0x95, 0x89, 0x59, 0xb9, 0x90, 0x90, 0x99, 0x5b, 0xdd, + 0xa0, 0x46, 0xe1, 0x85, 0xa6, 0x09, 0xdf, 0x7b, 0xb9, 0x37, 0xb7, 0x7f, 0x99, 0x57, 0xfc, 0xc5, + 0x0a, 0x62, 0xdd, 0xf5, 0xfa, 0x72, 0x74, 0x39, 0xf9, 0x9b, 0xd9, 0x2a, 0x8e, 0x6d, 0x80, 0xc7, + 0xad, 0xf5, 0x3b, 0xea, 0x46, 0xe7, 0x04, 0xb5, 0x22, 0x60, 0xc6, 0x2d, 0xf4, 0xaa, 0x99, 0x09, + 0x0b, 0xb8, 0x33, 0xfb, 0x5f, 0x8a, 0xa3, 0x9f, 0x92, 0x76, 0x56, 0xf8, 0x0c, 0x63, 0x2e, 0xfb, + 0x25, 0xdc, 0xe5, 0xfe, 0xee, 0x84, 0x7b, 0x89, 0x39, 0xda, 0x9d, 0xc8, 0x51, 0x83, 0xed, 0x16, + 0xbc, 0xe5, 0xd8, 0xca, 0xc9, 0xda, 0xdf, 0x1d, 0x0f, 0xa8, 0x4e, 0xbd, 0x8f, 0x72, 0x6a, 0xbf, + 0xed, 0xdd, 0xbe, 0xfa, 0xef, 0xa4, 0x6d, 0xbd, 0x0a, 0x8c, 0x1c, 0x32, 0x8d, 0xbb, 0xdc, 0x91, + 0x3d, 0xd0, 0xad, 0x7b, 0xc8, 0xe4, 0xb3, 0xfc, 0x10, 0x92, 0x2f, 0xf0, 0xee, 0x70, 0x51, 0x7b, + 0xf1, 0xf5, 0xf7, 0x1c, 0xd3, 0x93, 0xce, 0x8c, 0x63, 0x6b, 0x21, 0x63, 0x5e, 0x6b, 0xe7, 0x21, + 0x5f, 0x37, 0xd4, 0xca, 0x7d, 0x45, 0x50, 0x7f, 0x08, 0xdf, 0x07, 0xc4, 0x7c, 0x84, 0x09, 0x9a, + 0xbe, 0xd4, 0x70, 0x8e, 0xa6, 0x84, 0x3c, 0x94, 0x23, 0x66, 0x21, 0x6e, 0x14, 0xb3, 0x17, 0xce, + 0xdb, 0xf9, 0xd9, 0x2b, 0x7e, 0x8b, 0x6e, 0x67, 0x8f, 0xcc, 0x01, 0x35, 0xa0, 0x48, 0xe3, 0x76, + 0x07, 0x5b, 0xf5, 0x9e, 0x34, 0x2e, 0x34, 0xda, 0x5e, 0x3c, 0xfa, 0xa6, 0xfb, 0xac, 0x0e, 0xff, + 0x71, 0xfe, 0x32, 0xf7, 0xeb, 0xab, 0xd5, 0xde, 0x89, 0x68, 0xb9, 0xfd, 0x2e, 0x93, 0x5b, 0x72, + 0xd7, 0xb3, 0xa7, 0x44, 0x5c, 0xc7, 0x85, 0x5c, 0x6f, 0x53, 0x24, 0xde, 0xa3, 0xaa, 0xd7, 0x7d, + 0x42, 0x8e, 0x9a, 0xc5, 0x56, 0x10, 0xbc, 0x57, 0xb5, 0x6f, 0x0b, 0x8f, 0xe2, 0x45, 0xd0, 0x99, + 0x3d, 0x39, 0x8a, 0x57, 0x8e, 0x09, 0xcf, 0x91, 0x87, 0x0a, 0xab, 0xb5, 0xc3, 0x95, 0x1f, 0x08, + 0x2f, 0x62, 0x47, 0xab, 0x3e, 0xc0, 0x78, 0x5b, 0xab, 0x0d, 0xa6, 0x77, 0xa7, 0x1d, 0x1a, 0xdd, + 0x9d, 0xc6, 0xd2, 0xa2, 0xf9, 0x10, 0xfb, 0xe5, 0xfc, 0x9e, 0x76, 0x81, 0x3a, 0xac, 0xa7, 0x76, + 0xe8, 0xfa, 0xd4, 0x12, 0x32, 0x3f, 0xc7, 0xfe, 0x9a, 0x0c, 0xef, 0x91, 0x23, 0xce, 0x99, 0x7d, + 0xe0, 0xbd, 0xe6, 0xc7, 0x14, 0x69, 0xfc, 0x0e, 0x6f, 0x97, 0x80, 0xc7, 0xdc, 0xe3, 0x5a, 0x7b, + 0x6b, 0x18, 0x7c, 0x32, 0xe3, 0x56, 0x5e, 0xcf, 0x94, 0xee, 0x49, 0x9e, 0xe9, 0xc3, 0x93, 0xd5, + 0xba, 0x96, 0x77, 0xd0, 0x26, 0x48, 0x52, 0x17, 0x89, 0x67, 0xee, 0x55, 0xe6, 0xa9, 0xaa, 0x9d, + 0x9f, 0x15, 0x84, 0x67, 0x1c, 0xe6, 0x27, 0x3f, 0x87, 0x42, 0x67, 0x94, 0x4f, 0x8b, 0xf5, 0x62, + 0xaf, 0xf0, 0x7d, 0x78, 0xba, 0xe3, 0xe6, 0xa1, 0x67, 0xa4, 0x8d, 0xc2, 0xaf, 0xe2, 0x89, 0xea, + 0xcb, 0x57, 0x06, 0xea, 0xb7, 0xac, 0x9a, 0x72, 0x9c, 0xad, 0x39, 0xc2, 0xe9, 0xda, 0xb1, 0xe7, + 0xb3, 0xa3, 0xed, 0x16, 0xd4, 0xf7, 0x3a, 0x75, 0x33, 0xf2, 0xb9, 0xa8, 0x78, 0xa5, 0x8d, 0x0d, + 0xba, 0x0f, 0xc5, 0x13, 0xf5, 0xec, 0x4b, 0xd9, 0x59, 0xf4, 0x8c, 0xee, 0x99, 0xb1, 0xc3, 0x3a, + 0x5a, 0x42, 0xfd, 0x96, 0xd0, 0x0a, 0xb2, 0xad, 0x0a, 0xf6, 0x01, 0xe7, 0xa8, 0x49, 0x8e, 0xf1, + 0xf5, 0xc8, 0x1a, 0xeb, 0xdb, 0xcf, 0x48, 0x6c, 0x23, 0xc5, 0xab, 0x75, 0xfc, 0xb5, 0xd2, 0x9e, + 0xd7, 0x0f, 0x28, 0x13, 0x66, 0x5a, 0xc1, 0xb3, 0x11, 0x46, 0xba, 0xb3, 0x0e, 0xaf, 0xb4, 0xf9, + 0x6e, 0xdd, 0x7b, 0xe4, 0x30, 0xa0, 0xcd, 0xa9, 0xdf, 0x62, 0xc4, 0x9c, 0x77, 0x23, 0x66, 0x61, + 0x2f, 0x5b, 0x72, 0x19, 0x39, 0x14, 0x18, 0xe5, 0x5f, 0x28, 0x42, 0xcc, 0x3d, 0xf7, 0xa5, 0xf2, + 0x36, 0x66, 0xa5, 0x6c, 0x21, 0x93, 0x6a, 0x61, 0x2d, 0x71, 0xa0, 0x37, 0x66, 0x82, 0x2e, 0x7d, + 0xf1, 0xe6, 0x4a, 0x72, 0xbb, 0x21, 0xfd, 0xa8, 0x16, 0x9e, 0xb3, 0x3d, 0xbc, 0x2e, 0x46, 0xd1, + 0x5e, 0x84, 0x06, 0x69, 0xba, 0x67, 0x86, 0x76, 0x01, 0x74, 0x50, 0xdd, 0xd8, 0x57, 0x64, 0x39, + 0x72, 0x5f, 0x4c, 0x8e, 0xae, 0x8b, 0x7f, 0x7c, 0x73, 0x98, 0x3c, 0xec, 0xcf, 0x95, 0x34, 0x7d, + 0x36, 0xaf, 0x5a, 0xb7, 0x23, 0x23, 0xf0, 0xbf, 0x2d, 0x0d, 0x9b, 0x78, 0xf7, 0x3c, 0x69, 0x82, + 0xab, 0x6e, 0x11, 0x16, 0xc9, 0x23, 0x56, 0xb1, 0x07, 0xf0, 0x5e, 0x8c, 0x70, 0x35, 0xec, 0xcb, + 0x67, 0x2a, 0x43, 0xed, 0xbe, 0xe1, 0x2f, 0x00, 0x2f, 0xe3, 0xed, 0x1e, 0x03, 0x6f, 0xd5, 0x97, + 0x3f, 0x0b, 0xea, 0x35, 0xf2, 0xc9, 0x0e, 0x0e, 0xef, 0x4e, 0x61, 0xcd, 0x8d, 0x96, 0x72, 0x78, + 0x21, 0x78, 0x99, 0xde, 0xdd, 0xa8, 0xc8, 0xef, 0xf6, 0x6d, 0xee, 0xdd, 0xdc, 0x7d, 0xb2, 0x4f, + 0x94, 0xda, 0x87, 0x14, 0x17, 0xf5, 0x92, 0xce, 0xf6, 0xdd, 0xc1, 0x1e, 0x77, 0xbc, 0x34, 0x55, + 0x31, 0x0d, 0x1a, 0x6b, 0xe0, 0x9b, 0xbb, 0x57, 0x65, 0xbd, 0xb7, 0x43, 0xc8, 0x99, 0x48, 0x23, + 0x52, 0xd8, 0x15, 0xdd, 0xeb, 0xa6, 0x1b, 0x7c, 0x9b, 0x7c, 0xe5, 0xb3, 0x1e, 0x3b, 0x22, 0xbe, + 0x46, 0x4c, 0xbe, 0x65, 0x06, 0x99, 0xb5, 0x7f, 0x14, 0xa7, 0xb6, 0x1e, 0x67, 0x49, 0x1f, 0x61, + 0x05, 0xb7, 0xae, 0xa0, 0x3c, 0xf6, 0x26, 0x99, 0x71, 0x34, 0xd5, 0x5a, 0xed, 0x13, 0x07, 0xb9, + 0xb5, 0x18, 0xe6, 0xe1, 0x79, 0x97, 0x47, 0x36, 0xd6, 0x6f, 0x33, 0x62, 0x2e, 0x31, 0xd4, 0x0d, + 0x29, 0xa8, 0xb7, 0x8d, 0x69, 0x85, 0x8b, 0xab, 0xac, 0xc7, 0x99, 0x0a, 0x64, 0x3d, 0xc6, 0x48, + 0x7f, 0xa1, 0x7d, 0xca, 0x20, 0x87, 0xd2, 0x35, 0xe9, 0xcf, 0x77, 0xdc, 0x38, 0x86, 0x6a, 0x52, + 0xe9, 0xcf, 0xae, 0xca, 0x19, 0x9b, 0xcb, 0x98, 0xf4, 0xa7, 0xdb, 0x73, 0xc7, 0xe6, 0x74, 0x47, + 0x8b, 0x76, 0x85, 0x6c, 0xf8, 0xfd, 0x98, 0x72, 0xf0, 0xfb, 0x21, 0xe5, 0xe2, 0xf7, 0x1c, 0xe5, + 0xe1, 0xf7, 0x0c, 0xd9, 0x41, 0x83, 0xf9, 0xb8, 0x0a, 0x02, 0x33, 0x78, 0x65, 0xf9, 0x8e, 0x4a, + 0x9a, 0x5a, 0x3a, 0x43, 0xfb, 0xa4, 0x31, 0x7c, 0x47, 0x98, 0x14, 0xd4, 0x36, 0x9f, 0x1c, 0xf8, + 0x9d, 0x4a, 0x2e, 0xf1, 0xec, 0x11, 0xcf, 0x45, 0xe2, 0x39, 0x20, 0x9e, 0x4b, 0xc4, 0x73, 0x99, + 0x78, 0xae, 0x10, 0x33, 0x60, 0x6e, 0x9a, 0xca, 0x34, 0x85, 0x51, 0x93, 0xe1, 0x5c, 0x41, 0x0d, + 0xa0, 0xb9, 0x27, 0x63, 0x4c, 0x73, 0x24, 0xa0, 0xb4, 0xa9, 0x65, 0x5c, 0x53, 0x31, 0x5e, 0xfc, + 0x51, 0xbd, 0x4a, 0xec, 0xfa, 0x7e, 0x0b, 0x7d, 0xbb, 0xa1, 0x61, 0xd3, 0xad, 0x2d, 0xda, 0x30, + 0x35, 0xa9, 0x24, 0xd5, 0x19, 0xb9, 0xdb, 0xda, 0x6f, 0x1e, 0xad, 0xeb, 0xbc, 0xcb, 0x9f, 0x5a, + 0xd3, 0xf8, 0x39, 0xfd, 0xb9, 0xf8, 0x3f, 0xdb, 0x6e, 0x1d, 0x8b, 0x1f, 0x2f, 0x72, 0x71, 0x14, + 0x51, 0xbe, 0x62, 0x7a, 0xb7, 0x4f, 0x09, 0x82, 0x9e, 0xfa, 0x98, 0x9e, 0x2a, 0x53, 0xf4, 0x74, + 0xda, 0x47, 0x80, 0x6e, 0x80, 0x39, 0x97, 0x4e, 0x31, 0x48, 0x3b, 0x8e, 0xa6, 0x3a, 0xb2, 0xfe, + 0x79, 0x87, 0xd8, 0xf9, 0xc0, 0x1e, 0xa1, 0x91, 0x4e, 0xa4, 0xca, 0xbf, 0x03, 0xd2, 0x0a, 0x39, + 0xf1, 0xeb, 0x24, 0x97, 0xd2, 0x4a, 0x21, 0x47, 0x2b, 0xd5, 0xdc, 0x1a, 0x01, 0x05, 0xd5, 0x02, + 0xaf, 0x61, 0xe2, 0xb1, 0x53, 0x16, 0xbe, 0x6a, 0x76, 0xd0, 0xd4, 0x84, 0x05, 0x2d, 0xe0, 0x51, + 0xc9, 0xb4, 0xf2, 0x8b, 0x61, 0x86, 0xf1, 0xd2, 0xb0, 0x29, 0x91, 0x0b, 0x79, 0xdb, 0xc2, 0xda, + 0x1a, 0xca, 0xf5, 0x84, 0xf5, 0x9c, 0xbc, 0x77, 0xb0, 0xaf, 0x09, 0x7e, 0x72, 0xa4, 0xe8, 0x65, + 0x2c, 0xa5, 0x56, 0x5f, 0xfe, 0xf7, 0x53, 0x69, 0x7e, 0x71, 0x5a, 0x70, 0xa5, 0xcd, 0x3a, 0x27, + 0x19, 0xc7, 0x2f, 0xce, 0xaf, 0xb2, 0x8d, 0xa1, 0xb1, 0x2d, 0xec, 0xf1, 0x3a, 0x3d, 0x07, 0xb9, + 0x34, 0x6a, 0x4b, 0x2c, 0x76, 0x00, 0x3f, 0x8a, 0xe9, 0x1b, 0xc9, 0x35, 0x37, 0xbe, 0xc8, 0x7e, + 0x0e, 0xca, 0xf9, 0xfc, 0x4a, 0x8c, 0xcb, 0x2e, 0x35, 0xba, 0xca, 0xb6, 0x37, 0xb9, 0x24, 0xc7, + 0x11, 0x7c, 0x63, 0xc0, 0x59, 0xfb, 0x2b, 0xf0, 0xf3, 0x9b, 0xad, 0x4a, 0x60, 0x3b, 0xa9, 0xd6, + 0x35, 0x79, 0x2f, 0x76, 0x27, 0xf2, 0xf4, 0x94, 0x02, 0x96, 0xb3, 0xba, 0x8d, 0xc9, 0xb4, 0xa8, + 0xba, 0x18, 0x32, 0x92, 0x82, 0x37, 0xb4, 0x87, 0x7e, 0xd6, 0xb1, 0xd0, 0xbb, 0xd4, 0xb4, 0x45, + 0x92, 0xd1, 0x4f, 0xc6, 0x72, 0x57, 0xd4, 0x23, 0x3f, 0x5d, 0x8f, 0x8b, 0xe3, 0xb9, 0xab, 0xa8, + 0x07, 0x5b, 0x89, 0x31, 0x4f, 0x00, 0xdf, 0x12, 0xa5, 0x7c, 0x83, 0xcb, 0x48, 0x95, 0x10, 0xd8, + 0xcf, 0x2d, 0x00, 0x79, 0xf5, 0x59, 0x6d, 0xff, 0xbd, 0xb2, 0xb3, 0x45, 0xdb, 0xaf, 0xcc, 0x75, + 0xd4, 0x28, 0x69, 0x59, 0xf6, 0xb3, 0xcd, 0x8e, 0xb9, 0x63, 0xc7, 0x5a, 0x63, 0xe4, 0xb0, 0x84, + 0x02, 0x4b, 0x35, 0xd6, 0xe6, 0x30, 0xd6, 0xb2, 0xf5, 0xd2, 0x56, 0x5d, 0x1f, 0x84, 0x04, 0x51, + 0xc0, 0x6b, 0x0f, 0x42, 0x9e, 0xd0, 0x74, 0x49, 0xb6, 0x94, 0xd8, 0x3b, 0x7d, 0x5a, 0x8a, 0xdd, + 0xe7, 0x9e, 0xeb, 0x69, 0x26, 0x9e, 0x01, 0xcb, 0x29, 0x86, 0x2c, 0xf8, 0xf2, 0x39, 0x2a, 0x38, + 0xd6, 0x63, 0x48, 0x0e, 0xd2, 0xd8, 0x1d, 0xd1, 0x90, 0x5e, 0x89, 0xb6, 0x43, 0x2a, 0xf0, 0xb2, + 0xdc, 0x0e, 0x59, 0x55, 0xd2, 0x65, 0x55, 0x27, 0x5d, 0x27, 0xad, 0x94, 0x68, 0x46, 0xaa, 0x02, + 0x96, 0xc9, 0xaf, 0x8e, 0x45, 0x0e, 0xee, 0x44, 0x7d, 0x34, 0x9c, 0xf0, 0xb7, 0x5b, 0xaf, 0xf5, + 0x26, 0x4b, 0xf9, 0x89, 0xc0, 0xb5, 0xa5, 0xb3, 0xdf, 0xed, 0x44, 0xbe, 0xbb, 0x99, 0xb2, 0x7f, + 0xfa, 0x0b, 0x48, 0xa4, 0x0d, 0xa3, 0xbe, 0xc3, 0xb4, 0x90, 0x7e, 0xea, 0xb4, 0x2e, 0xa3, 0x0a, + 0x99, 0xe9, 0xcb, 0x62, 0xdd, 0xf5, 0x22, 0x74, 0xe1, 0x52, 0xa7, 0xc5, 0x59, 0xeb, 0x22, 0xaf, + 0xe9, 0x44, 0x72, 0xb5, 0xfb, 0xad, 0x4d, 0xab, 0x9c, 0xc7, 0x37, 0xd5, 0x62, 0xec, 0xe2, 0xf3, + 0xeb, 0xcf, 0x77, 0xaa, 0x2e, 0xdd, 0xbb, 0x03, 0xef, 0xae, 0xac, 0x7f, 0xc4, 0xf9, 0x3c, 0x15, + 0x4f, 0x6b, 0xa3, 0x52, 0x92, 0xf1, 0x5b, 0x4e, 0x96, 0xd8, 0xda, 0xea, 0x73, 0x64, 0xe5, 0x99, + 0xc8, 0xfd, 0x6b, 0x17, 0xbd, 0x59, 0xf7, 0x4e, 0x41, 0x17, 0xb7, 0x3c, 0xe3, 0x51, 0x5f, 0x1b, + 0x80, 0x96, 0xc7, 0x56, 0x60, 0xc9, 0x36, 0xd6, 0x1d, 0xe5, 0xd7, 0x07, 0xfc, 0x7c, 0x42, 0xb8, + 0xec, 0x07, 0x85, 0x2b, 0x96, 0x94, 0x7f, 0x2d, 0x7f, 0x05, 0xf4, 0xd8, 0xfa, 0xb9, 0x1f, 0x51, + 0x69, 0xe1, 0x44, 0x94, 0x5b, 0xb0, 0xd2, 0xfd, 0xe6, 0x26, 0xf0, 0x89, 0x66, 0x25, 0x4f, 0x78, + 0x16, 0x99, 0xc0, 0x1e, 0x99, 0x17, 0xf9, 0x0d, 0x9f, 0x24, 0x44, 0x0f, 0x19, 0x5e, 0x49, 0x40, + 0xc7, 0x29, 0xaf, 0x24, 0x52, 0x50, 0xd5, 0x9f, 0x33, 0x11, 0xbf, 0x79, 0x11, 0xd1, 0x0f, 0xd4, + 0x4e, 0xf1, 0xde, 0xb3, 0xc8, 0x2b, 0xee, 0xdd, 0x8b, 0xc9, 0x64, 0x36, 0xfc, 0x96, 0x90, 0xe9, + 0x8a, 0x78, 0x62, 0xa9, 0xf0, 0x15, 0xf1, 0x64, 0x89, 0x23, 0x0c, 0x6d, 0xbc, 0x4d, 0xbc, 0x1d, + 0x44, 0x8a, 0x67, 0xc4, 0xd3, 0x4b, 0x08, 0x3f, 0x83, 0x7e, 0xb8, 0x17, 0x5c, 0x40, 0x56, 0x76, + 0x52, 0x31, 0xfb, 0xd8, 0x72, 0x16, 0xe1, 0x59, 0x48, 0xb8, 0x23, 0x3f, 0x52, 0xf3, 0xc7, 0xbc, + 0x3d, 0xa1, 0x2a, 0x63, 0xde, 0x1e, 0x53, 0x42, 0x4a, 0x12, 0xe9, 0x7f, 0x34, 0x26, 0x6c, 0xab, + 0x23, 0x94, 0xca, 0x0d, 0x2d, 0xe0, 0x21, 0xbb, 0x7a, 0x42, 0x58, 0x66, 0xdb, 0xd9, 0xbf, 0xb1, + 0x89, 0x78, 0x8f, 0xb9, 0x1f, 0x2d, 0x7a, 0x6a, 0xc3, 0x60, 0x32, 0xda, 0x1d, 0xbf, 0xc4, 0xe9, + 0xd4, 0x7d, 0xfc, 0x1b, 0x6a, 0x10, 0xbf, 0xbc, 0xee, 0xa2, 0xdf, 0x65, 0xe3, 0x6e, 0x66, 0x6f, + 0xfc, 0x8e, 0x56, 0xdd, 0x0b, 0x9a, 0xbe, 0x42, 0x2a, 0xa4, 0xe6, 0x1c, 0x7d, 0x15, 0x30, 0xbd, + 0x43, 0x9a, 0x4c, 0xa1, 0x76, 0x62, 0x2f, 0x52, 0xa1, 0x36, 0x72, 0xe0, 0x2a, 0xc0, 0x35, 0x35, + 0xc4, 0xf6, 0x50, 0xa9, 0xef, 0xd6, 0x88, 0xef, 0x56, 0xe9, 0xdf, 0x25, 0x5c, 0xd6, 0x6d, 0x8c, + 0xb5, 0xb8, 0x19, 0xfa, 0x55, 0x4c, 0x95, 0xf1, 0xcb, 0x6b, 0xf1, 0x16, 0x48, 0x59, 0x4f, 0xcb, + 0x35, 0x3e, 0xc8, 0x18, 0xbc, 0xd6, 0xa3, 0x96, 0xa4, 0xd7, 0xfd, 0x82, 0xa9, 0xf4, 0xbc, 0xde, + 0xa8, 0x1a, 0xeb, 0x84, 0x81, 0xa0, 0x52, 0x28, 0x47, 0x9b, 0x92, 0x48, 0xeb, 0x76, 0x4c, 0x84, + 0xcc, 0x40, 0x07, 0x93, 0xf8, 0xd6, 0xeb, 0xab, 0x23, 0xbf, 0xb0, 0x2c, 0xce, 0x18, 0xd5, 0x33, + 0x74, 0x9c, 0xf8, 0x7d, 0x34, 0x55, 0x68, 0x4c, 0x04, 0x26, 0xa1, 0x80, 0x76, 0x7c, 0xe4, 0x10, + 0xfe, 0xe6, 0x29, 0x52, 0x19, 0xaa, 0x4c, 0x76, 0x8b, 0x90, 0x02, 0x3d, 0xe4, 0xe4, 0x86, 0x64, + 0xb7, 0x4a, 0x57, 0x1e, 0x47, 0x0d, 0x6a, 0x18, 0x03, 0x02, 0x8e, 0xa9, 0x7f, 0x37, 0x18, 0xcf, + 0x57, 0xc3, 0x0b, 0xfa, 0x1c, 0x7d, 0xaa, 0x67, 0x5c, 0x8c, 0xfc, 0x77, 0x83, 0x89, 0x92, 0xd0, + 0xc3, 0x6a, 0x2e, 0x97, 0x84, 0x5a, 0x66, 0xea, 0xd8, 0x01, 0x8c, 0x1b, 0xc2, 0x9b, 0x95, 0x79, + 0x29, 0xbf, 0xbd, 0x62, 0xa7, 0x28, 0x7d, 0xb6, 0x5e, 0xcd, 0x15, 0xf3, 0x35, 0xd6, 0xf8, 0x6e, + 0xf5, 0x88, 0xe8, 0x2d, 0x56, 0x47, 0x52, 0x3d, 0xce, 0x5e, 0xf7, 0x46, 0x7d, 0x41, 0x95, 0x06, + 0x5c, 0x91, 0xb4, 0xe6, 0xa6, 0x8e, 0x6a, 0x6e, 0x79, 0x1e, 0xfa, 0x91, 0x35, 0xa4, 0x69, 0x71, + 0x77, 0x3b, 0x75, 0x98, 0x54, 0x79, 0xc8, 0x14, 0x4b, 0xda, 0x4d, 0x87, 0x33, 0x12, 0x96, 0x55, + 0x96, 0xbd, 0xc9, 0xf8, 0x05, 0xd5, 0xcd, 0xf7, 0x84, 0x63, 0xbd, 0xe9, 0xa6, 0x2a, 0xfa, 0x51, + 0x31, 0xa9, 0xf6, 0x80, 0x14, 0x39, 0xc0, 0xde, 0x7c, 0x73, 0xe8, 0x60, 0x46, 0xdc, 0x92, 0xcc, + 0xb8, 0x29, 0x48, 0x3f, 0x52, 0xa5, 0x4e, 0x6d, 0x54, 0xfb, 0xe3, 0xb7, 0x3b, 0x42, 0x94, 0xe5, + 0x97, 0xea, 0xde, 0xa9, 0x13, 0xe5, 0xb3, 0x7f, 0x3f, 0xdd, 0x2b, 0x8e, 0x32, 0x9d, 0xad, 0x62, + 0xd8, 0x8e, 0x3a, 0x6d, 0xeb, 0x9c, 0xcd, 0x5e, 0xff, 0x30, 0x9e, 0x3b, 0x93, 0x4f, 0xb1, 0x95, + 0x87, 0xc1, 0xd3, 0x02, 0x6e, 0xee, 0xe7, 0xf5, 0xae, 0x22, 0xd3, 0xdd, 0xfa, 0x2e, 0x65, 0xe1, + 0x8f, 0x6a, 0xd8, 0x49, 0xd3, 0xc2, 0xa0, 0xc1, 0x56, 0xd3, 0xa5, 0xd1, 0x55, 0x9b, 0x63, 0x3d, + 0xe0, 0x6e, 0x55, 0xaf, 0x1f, 0x74, 0x60, 0xe4, 0x16, 0xa5, 0xc8, 0x5f, 0x1d, 0xe3, 0xeb, 0x5f, + 0x59, 0x31, 0x26, 0xed, 0x2b, 0x06, 0x44, 0x62, 0x05, 0x92, 0x67, 0x5e, 0x5c, 0xf5, 0xc8, 0x5d, + 0x9c, 0x9d, 0x70, 0x73, 0x03, 0x8f, 0x44, 0xa3, 0x96, 0x98, 0x56, 0x5e, 0x09, 0xcc, 0x8e, 0x2f, + 0xc0, 0x3d, 0x07, 0xbd, 0xae, 0x61, 0x7c, 0x99, 0xc6, 0x69, 0x0f, 0x66, 0x7d, 0x15, 0x2e, 0x4d, + 0x99, 0x92, 0xb2, 0x65, 0x7c, 0x79, 0xa2, 0xef, 0x4c, 0x16, 0x9e, 0x5f, 0xa3, 0xca, 0xed, 0x96, + 0xf3, 0x63, 0xfd, 0x0c, 0xd4, 0x91, 0x3e, 0x33, 0x24, 0xe6, 0x3e, 0xca, 0xd8, 0x26, 0xc5, 0xdd, + 0x7a, 0x55, 0x6d, 0x83, 0xe3, 0x4a, 0xbd, 0xfb, 0x57, 0x47, 0x7e, 0x75, 0xc4, 0xd9, 0x71, 0x98, + 0x1a, 0x36, 0xa9, 0x96, 0xdd, 0x3b, 0xc9, 0x9e, 0xb0, 0x18, 0x5e, 0x16, 0x3f, 0x1e, 0x5f, 0x2a, + 0x6b, 0x67, 0x0b, 0x0d, 0x1b, 0x9f, 0x69, 0x7f, 0x93, 0x5a, 0x4b, 0x14, 0x3a, 0xa8, 0xa8, 0xb9, + 0xe2, 0x70, 0xa2, 0x19, 0xd2, 0x35, 0x5f, 0x3c, 0x5a, 0x73, 0x45, 0x6a, 0x4c, 0x72, 0xed, 0x3b, + 0x32, 0xa0, 0x29, 0x45, 0x15, 0x69, 0xb0, 0x67, 0x30, 0xc9, 0x70, 0x5f, 0xad, 0x75, 0x0a, 0x8f, + 0x42, 0xde, 0x29, 0x5d, 0x8c, 0x9b, 0x29, 0xac, 0x6f, 0x66, 0x4f, 0x09, 0xd1, 0xe4, 0x5b, 0xa2, + 0x64, 0xbb, 0xa5, 0x8b, 0x86, 0x1f, 0x76, 0x53, 0x6e, 0xbb, 0xa9, 0xbf, 0x27, 0x9e, 0x75, 0xcb, + 0x72, 0xd3, 0x59, 0x2a, 0xe0, 0x15, 0x3b, 0xc5, 0x52, 0xf7, 0x41, 0xd8, 0xb0, 0x23, 0x87, 0xc6, + 0xb8, 0x81, 0xed, 0xe8, 0x8b, 0x83, 0x5c, 0xa3, 0xaa, 0x8f, 0xb7, 0x13, 0xfb, 0xae, 0xc5, 0x65, + 0x05, 0x9f, 0x10, 0x27, 0x3b, 0x38, 0x75, 0x1f, 0xdb, 0xd2, 0x94, 0x20, 0x65, 0xce, 0x0c, 0x91, + 0x34, 0x85, 0x35, 0x55, 0xc1, 0x45, 0xf4, 0x33, 0x1d, 0xda, 0x27, 0x0f, 0x25, 0xcf, 0x74, 0x4b, + 0xbc, 0x52, 0xdc, 0xad, 0xfb, 0x87, 0xf4, 0x65, 0xcd, 0xec, 0x62, 0xe7, 0x47, 0xe2, 0x37, 0x47, + 0xfc, 0xe6, 0x89, 0x5f, 0xfb, 0x6d, 0x5d, 0xdf, 0xd3, 0xc8, 0x26, 0x7e, 0x73, 0xc4, 0x6f, 0x9e, + 0xf8, 0xb5, 0x83, 0x3e, 0xa4, 0x69, 0xb5, 0x64, 0x16, 0xb0, 0x58, 0xbf, 0x0a, 0x6a, 0x09, 0xed, + 0x20, 0x4b, 0xe8, 0x29, 0xb2, 0x38, 0xff, 0x32, 0x75, 0x0e, 0x8c, 0x93, 0x4f, 0x7d, 0x29, 0x70, + 0x45, 0xd9, 0x4f, 0x26, 0xdb, 0x79, 0x08, 0x8f, 0x9d, 0x3d, 0x18, 0xab, 0xb2, 0x7f, 0x72, 0x24, + 0x7e, 0xce, 0xb9, 0x9c, 0xcc, 0xbb, 0x0d, 0x4b, 0x0d, 0xfd, 0xec, 0x17, 0x1e, 0x1f, 0xc4, 0x09, + 0x20, 0x37, 0x25, 0xb2, 0x79, 0x6f, 0xc7, 0xd9, 0x60, 0x49, 0xb0, 0x14, 0xf8, 0x51, 0x2d, 0x25, + 0x4b, 0xa9, 0xa0, 0x74, 0x29, 0x46, 0xd9, 0x49, 0xfa, 0xea, 0x70, 0xda, 0x57, 0x38, 0x3d, 0x7c, + 0xd8, 0x45, 0x6f, 0x26, 0x55, 0x0f, 0xcf, 0x89, 0x17, 0x97, 0xd8, 0xe9, 0xfb, 0xbf, 0x0c, 0x40, + 0x3b, 0xff, 0xcd, 0x01, 0xd5, 0xdc, 0xbb, 0xf2, 0x38, 0xc5, 0x36, 0xfc, 0xd3, 0x4b, 0x3f, 0x7d, + 0xb5, 0xf5, 0x22, 0xf4, 0x72, 0xef, 0x6d, 0x3d, 0x76, 0x8a, 0xf5, 0x35, 0x75, 0xf7, 0xf7, 0xb5, + 0x0e, 0xf1, 0xca, 0xee, 0xdc, 0x7f, 0xdd, 0x4b, 0x6a, 0x91, 0x1b, 0x31, 0xc5, 0xc5, 0x16, 0x2a, + 0x47, 0xbe, 0x8f, 0xbc, 0xca, 0x96, 0x2e, 0xbf, 0x1e, 0xc0, 0xb7, 0x9d, 0xdb, 0x91, 0xf6, 0x8d, + 0x5f, 0xfe, 0xfc, 0x70, 0x2b, 0xcf, 0x86, 0xbb, 0x67, 0xf6, 0x58, 0x28, 0xd6, 0xdd, 0x94, 0xfc, + 0xc9, 0x81, 0xd6, 0xd7, 0x74, 0x8f, 0x9c, 0xf5, 0xdf, 0xfa, 0x0b, 0x71, 0x52, 0x13, 0xe8, 0x60, + 0x31, 0xaf, 0xa6, 0xfb, 0x6a, 0x29, 0x57, 0x9f, 0x01, 0x67, 0xef, 0x16, 0x0d, 0xef, 0x91, 0x1d, + 0xd7, 0x97, 0x70, 0x7d, 0xf9, 0x46, 0xb1, 0xc3, 0xe2, 0x36, 0x96, 0xf5, 0x1c, 0xe0, 0x49, 0x8f, + 0x01, 0x07, 0x2f, 0x32, 0x95, 0xb0, 0x8e, 0xcf, 0x2b, 0xb8, 0xc0, 0x20, 0xcf, 0x4d, 0x58, 0xf4, + 0xf9, 0x00, 0xc8, 0xb4, 0xc3, 0x37, 0xaf, 0x6a, 0xcf, 0x19, 0x95, 0x6f, 0x8c, 0x79, 0xb8, 0x88, + 0x88, 0xb9, 0x7f, 0xd4, 0x67, 0xbb, 0x1e, 0xc3, 0xed, 0xcc, 0x36, 0xd3, 0xbb, 0x6a, 0x5b, 0xca, + 0x77, 0xa1, 0x85, 0x5b, 0x4b, 0x8a, 0x6d, 0xbb, 0x83, 0xad, 0xfe, 0x7e, 0x70, 0x88, 0x56, 0xcf, + 0xe6, 0xd0, 0x96, 0x5a, 0xe6, 0xe7, 0x6a, 0x3e, 0xe2, 0xb2, 0x5b, 0x73, 0xf0, 0x9b, 0xd5, 0x92, + 0x8b, 0x38, 0x4b, 0x8b, 0x19, 0xbf, 0x56, 0x8c, 0xd6, 0xfa, 0xfa, 0xe0, 0xb0, 0x61, 0x0d, 0xfd, + 0x15, 0x61, 0xc3, 0x56, 0xe6, 0xb1, 0x78, 0xc5, 0x8c, 0x60, 0x3c, 0xa8, 0x46, 0x75, 0x7f, 0x30, + 0xee, 0xe0, 0x9c, 0xf7, 0xc0, 0x17, 0xe6, 0xae, 0x22, 0x97, 0x07, 0x6d, 0xec, 0x21, 0xd9, 0x91, + 0xa3, 0xc8, 0x83, 0x1b, 0x95, 0x6a, 0xde, 0x0b, 0x37, 0xf2, 0x0c, 0x4b, 0x07, 0xb1, 0xde, 0x17, + 0x7b, 0xe3, 0xc3, 0x8e, 0xf0, 0x1b, 0x87, 0xf0, 0xef, 0xd5, 0x37, 0x5e, 0xad, 0xfa, 0xd7, 0xed, + 0xa4, 0x4c, 0x29, 0xa2, 0xd0, 0x9c, 0xc8, 0x9c, 0xe8, 0x7d, 0xf1, 0x3d, 0xe8, 0x57, 0x23, 0x22, + 0x7f, 0x87, 0x07, 0xfc, 0xa9, 0x88, 0xbc, 0xd9, 0xd1, 0x75, 0x89, 0xf8, 0x2a, 0x52, 0xef, 0x01, + 0xbf, 0xcf, 0x6f, 0x9f, 0x3c, 0xd0, 0xed, 0xa2, 0xf7, 0x1e, 0x78, 0x33, 0xa9, 0x64, 0x9c, 0xec, + 0xe3, 0x5f, 0x3e, 0x8d, 0xe4, 0xcd, 0x64, 0xfb, 0xe4, 0x1a, 0x1a, 0xe8, 0x76, 0xd2, 0xd9, 0xfb, + 0x8f, 0x25, 0x15, 0xe9, 0x64, 0x1f, 0xff, 0x72, 0xcc, 0xb1, 0x24, 0x53, 0xf3, 0x64, 0x1a, 0xee, + 0x56, 0x4c, 0xef, 0xf5, 0x0d, 0x25, 0x15, 0xd3, 0x49, 0xf1, 0xcb, 0x71, 0xb8, 0x57, 0x2b, 0xb2, + 0x0e, 0x19, 0x43, 0xd5, 0xca, 0x16, 0xc3, 0x23, 0xfa, 0xdc, 0x91, 0x73, 0xa2, 0xb3, 0x7e, 0xfc, + 0xce, 0x13, 0x70, 0x03, 0x47, 0xc2, 0x3e, 0x2d, 0x44, 0x0e, 0xdd, 0x37, 0xf2, 0xe5, 0xc7, 0xf4, + 0x7d, 0x1f, 0x23, 0x0e, 0x31, 0xbf, 0xb8, 0x7c, 0xec, 0x5e, 0x0f, 0x63, 0xe6, 0x46, 0xcc, 0xb9, + 0x95, 0x96, 0xb9, 0xc1, 0x65, 0x79, 0x3f, 0x87, 0x3e, 0xef, 0x16, 0x77, 0xb4, 0xf3, 0x6c, 0x4c, + 0xb3, 0xe1, 0xfd, 0xae, 0x58, 0xcc, 0x13, 0xf9, 0x95, 0x3a, 0x47, 0x50, 0xcc, 0x93, 0xa9, 0x2b, + 0x59, 0x32, 0xab, 0x8a, 0xee, 0x24, 0x77, 0x3c, 0xaf, 0xdd, 0x76, 0x9d, 0xb9, 0x28, 0x37, 0xa8, + 0x58, 0xd8, 0x5d, 0xb2, 0xef, 0xbc, 0x19, 0x51, 0xb2, 0x44, 0x9f, 0x23, 0x39, 0xee, 0x4e, 0x79, + 0xbf, 0x1b, 0xb7, 0x87, 0x78, 0xd2, 0xe8, 0x1e, 0xe2, 0x19, 0xa0, 0x9f, 0x55, 0x9c, 0x77, 0x78, + 0x5c, 0x4a, 0x8b, 0xb4, 0x1c, 0x3d, 0xd5, 0xaf, 0x9a, 0x69, 0x39, 0x9a, 0xd0, 0xcf, 0x79, 0x41, + 0x12, 0x7a, 0x0e, 0x69, 0xae, 0xd9, 0x45, 0xa3, 0xe8, 0xbb, 0x68, 0xc6, 0x97, 0x23, 0x76, 0xd1, + 0x54, 0xbe, 0x2f, 0x39, 0xd1, 0xd7, 0xf5, 0x39, 0xc4, 0x7c, 0xe3, 0x34, 0x9c, 0x4b, 0x85, 0xf5, + 0xd7, 0xce, 0x21, 0xf2, 0x7e, 0xa5, 0x38, 0x5b, 0x93, 0x73, 0x5d, 0x77, 0xab, 0x01, 0x48, 0xb4, + 0x8e, 0xb1, 0x39, 0xb6, 0xe4, 0x02, 0x66, 0xc8, 0x48, 0xbe, 0xc2, 0x71, 0x9e, 0x37, 0xaa, 0x12, + 0xd6, 0xd4, 0x3c, 0x22, 0xc6, 0x3e, 0x49, 0x9c, 0x9d, 0x63, 0xd8, 0xba, 0x84, 0xc2, 0x9d, 0x26, + 0x75, 0x2f, 0xdb, 0x0c, 0xf2, 0x1a, 0xb7, 0x13, 0x7d, 0xbd, 0xea, 0x23, 0xb2, 0xa4, 0xfc, 0xb7, + 0x09, 0xef, 0x6b, 0xa5, 0xbb, 0x92, 0x71, 0x8b, 0x90, 0x27, 0x78, 0x9f, 0xa8, 0xc4, 0xeb, 0xd8, + 0x29, 0x9b, 0xaf, 0xdb, 0x82, 0xe4, 0xbc, 0xad, 0x92, 0x5c, 0xe8, 0x7f, 0x93, 0x69, 0xaa, 0xbe, + 0x77, 0x81, 0xe7, 0x6c, 0x8b, 0xa9, 0xc4, 0x24, 0x6a, 0xed, 0x3f, 0x06, 0xae, 0x72, 0x5b, 0x88, + 0xcc, 0x6f, 0x82, 0xb3, 0xdc, 0x56, 0x25, 0xac, 0x26, 0xaf, 0xad, 0x3f, 0x7b, 0x42, 0x59, 0x46, + 0x59, 0xe8, 0x09, 0x59, 0xbc, 0x4a, 0x83, 0x1c, 0x2d, 0x6a, 0xb1, 0xc0, 0xc6, 0x24, 0x63, 0x46, + 0xf5, 0xa2, 0x7e, 0xbe, 0x0e, 0xef, 0x25, 0xd2, 0x6d, 0xfc, 0x78, 0xa5, 0xea, 0xda, 0xbd, 0xd3, + 0xc2, 0xca, 0xe6, 0x6c, 0x6a, 0xcc, 0x2a, 0xad, 0xf0, 0xd4, 0x3a, 0xeb, 0x5d, 0x77, 0xb5, 0x93, + 0x3b, 0xdb, 0xdc, 0xcb, 0x7b, 0xdd, 0x21, 0x97, 0xee, 0xb6, 0x14, 0x1a, 0x7b, 0x9d, 0x76, 0xf0, + 0x7e, 0xed, 0xab, 0x5b, 0x49, 0x9c, 0x66, 0x93, 0x37, 0x7e, 0xaf, 0x93, 0xd8, 0x2f, 0x2f, 0x39, + 0xe5, 0xfe, 0x9e, 0x44, 0x87, 0xee, 0x6b, 0xef, 0xb3, 0x90, 0x12, 0x74, 0xb9, 0x21, 0x89, 0x55, + 0x85, 0x1e, 0x76, 0x37, 0xaa, 0x4d, 0x16, 0xaf, 0xc8, 0x33, 0x7a, 0xdd, 0x76, 0xd7, 0x73, 0xbc, + 0x9a, 0xbe, 0xd8, 0xc7, 0x8b, 0xbc, 0x3b, 0x19, 0xcf, 0x43, 0x6b, 0x8a, 0x1c, 0x1d, 0x41, 0xd4, + 0xc2, 0x1d, 0xda, 0xec, 0xa8, 0x72, 0xf4, 0xb9, 0x2c, 0x86, 0xbd, 0xe9, 0x8f, 0x14, 0x49, 0xb7, + 0xc6, 0x83, 0xd6, 0x11, 0x01, 0xc5, 0x37, 0xe8, 0xbd, 0xe7, 0xdf, 0xb7, 0xeb, 0x76, 0x1f, 0x23, + 0x18, 0x27, 0xb9, 0x85, 0xe3, 0x65, 0xe3, 0x7a, 0xd0, 0xd1, 0x9f, 0x9d, 0x23, 0x47, 0x3c, 0x37, + 0xdd, 0xd3, 0x6e, 0xf8, 0xbc, 0x9e, 0x66, 0x50, 0x83, 0x31, 0xd7, 0xce, 0xb6, 0xab, 0x73, 0xd8, + 0xe2, 0x74, 0x8c, 0x0d, 0xaf, 0xb2, 0x3c, 0x63, 0x64, 0x8c, 0xbd, 0x69, 0xb9, 0x33, 0x38, 0xd6, + 0x82, 0x57, 0xac, 0xea, 0xe5, 0x5c, 0xbb, 0x6f, 0x21, 0x75, 0x62, 0xa0, 0x2f, 0x9b, 0xad, 0x26, + 0x40, 0xb1, 0x6c, 0x35, 0x51, 0xf2, 0xf0, 0x61, 0xb5, 0xd8, 0x38, 0x09, 0xe8, 0xa2, 0xa8, 0xad, + 0xac, 0x3a, 0xd9, 0x33, 0x90, 0x23, 0xd8, 0xb0, 0x41, 0x95, 0xab, 0xce, 0x52, 0x89, 0x32, 0x45, + 0x58, 0x59, 0x64, 0x71, 0x5c, 0x72, 0x07, 0xe2, 0xc1, 0x3b, 0x75, 0xff, 0x98, 0xf1, 0x37, 0xdb, + 0x35, 0x9d, 0x17, 0x0b, 0xeb, 0xa9, 0x88, 0xd7, 0xe4, 0x99, 0xe8, 0xaa, 0xc7, 0xe8, 0xe7, 0xde, + 0x6d, 0xac, 0xd9, 0x29, 0xe5, 0x3c, 0xc5, 0xd6, 0x41, 0x4a, 0xad, 0xb7, 0x55, 0xc8, 0x9f, 0x27, + 0xdc, 0x24, 0xc2, 0x4c, 0x08, 0xab, 0x36, 0x64, 0xd2, 0x13, 0x45, 0x34, 0xd6, 0x9e, 0xd6, 0xef, + 0xa1, 0x40, 0x19, 0x46, 0x8d, 0xd5, 0x9a, 0xea, 0x2e, 0x0f, 0xfa, 0xb2, 0x85, 0xb5, 0x85, 0x59, + 0xb7, 0x59, 0x79, 0x9f, 0xad, 0xcf, 0x73, 0x7f, 0x36, 0x70, 0xaf, 0xec, 0xc9, 0xf6, 0x04, 0x85, + 0xb7, 0xcb, 0xd7, 0xfc, 0xfe, 0xb3, 0x64, 0x0d, 0x42, 0x1a, 0x1d, 0x6a, 0xd7, 0xfa, 0xd7, 0x25, + 0xca, 0xfa, 0x7b, 0xe3, 0xfa, 0x8a, 0x85, 0x5f, 0xac, 0x53, 0xf9, 0xe7, 0xa5, 0xe6, 0xfc, 0x6e, + 0xe0, 0x53, 0xb7, 0x3c, 0x41, 0x68, 0x7a, 0x32, 0x3f, 0x89, 0xf5, 0xb9, 0x90, 0x8f, 0x4f, 0xeb, + 0xc2, 0x5b, 0xff, 0x83, 0x8b, 0x0b, 0x94, 0xba, 0x76, 0xcd, 0x61, 0x5e, 0xa5, 0x9f, 0x07, 0x51, + 0x23, 0xb0, 0x94, 0x0b, 0xfe, 0x9d, 0xbb, 0x6b, 0x5d, 0x22, 0x47, 0xa9, 0x7e, 0xfd, 0xe5, 0xd7, + 0xcf, 0x51, 0x49, 0xac, 0x41, 0x35, 0x7b, 0x48, 0x95, 0x56, 0x6b, 0x63, 0xad, 0x7c, 0xc5, 0x7b, + 0xa6, 0x6e, 0x87, 0x6c, 0xd8, 0x42, 0x93, 0xbb, 0xb2, 0x48, 0xf6, 0xb2, 0x2c, 0x30, 0xd6, 0xef, + 0xe6, 0x51, 0xe3, 0x1c, 0x8f, 0x62, 0x01, 0x5b, 0xa8, 0x7f, 0xdd, 0x62, 0xab, 0x80, 0x9a, 0x4c, + 0x36, 0x68, 0x84, 0x53, 0x2d, 0x32, 0x62, 0xe3, 0x88, 0x29, 0x5a, 0x05, 0x15, 0x74, 0x5f, 0x6f, + 0xbc, 0xa1, 0x71, 0x39, 0x38, 0x69, 0xf8, 0xf5, 0x43, 0x28, 0xbb, 0xec, 0xf6, 0x06, 0x2a, 0xf2, + 0xef, 0xd7, 0x34, 0xe8, 0x39, 0x6c, 0x51, 0x52, 0xe6, 0x0f, 0xbe, 0x7e, 0xb8, 0xf2, 0x5f, 0xfa, + 0xc8, 0x6f, 0x2b, 0x0b, 0xfe, 0xec, 0xe5, 0xb8, 0xd3, 0x9d, 0xe9, 0xc8, 0x1c, 0x5a, 0xe7, 0x7f, + 0xc1, 0xce, 0xab, 0x72, 0x65, 0x33, 0x91, 0xd2, 0x4e, 0xfc, 0x3d, 0x97, 0x00, 0x4d, 0x6f, 0x25, + 0xbe, 0x7b, 0x42, 0x60, 0xea, 0x20, 0x9e, 0x76, 0x79, 0xaa, 0xff, 0xe9, 0x65, 0xa4, 0x2b, 0x89, + 0xb6, 0x1f, 0xa7, 0x84, 0x4b, 0x58, 0x48, 0x48, 0xc6, 0x7e, 0xf8, 0xe1, 0xf7, 0xdf, 0x62, 0x3c, + 0x8b, 0x9d, 0x05, 0xf7, 0xff, 0x13, 0xd7, 0xfa, 0xeb, 0xee, 0x4c, 0xf4, 0xd3, 0xb7, 0x19, 0x32, + 0xf6, 0xdd, 0xbb, 0xaf, 0x3b, 0xee, 0x77, 0x67, 0x72, 0x29, 0xb7, 0xe3, 0x6b, 0x2a, 0x52, 0xbd, + 0xe3, 0xe1, 0xd9, 0xc7, 0x36, 0x27, 0x99, 0xfe, 0x17, 0x8e, 0x93, 0x28, 0x3b, 0x9b, 0xf5, 0x33, + 0x51, 0xf2, 0x71, 0xe1, 0x5f, 0x87, 0xa1, 0xdb, 0x49, 0x81, 0xe3, 0x74, 0x7b, 0x35, 0x05, 0x18, + 0xc2, 0xd8, 0x72, 0x2a, 0x66, 0x58, 0x66, 0xee, 0x27, 0xd3, 0x71, 0x3e, 0x61, 0xfa, 0x88, 0xc0, + 0x44, 0x30, 0xc0, 0xd6, 0xea, 0xd0, 0x6c, 0x81, 0x0d, 0x94, 0xdc, 0x58, 0x79, 0x7b, 0x25, 0xb0, + 0x81, 0xaf, 0x31, 0x02, 0xf7, 0x46, 0x2b, 0xe3, 0x16, 0xe1, 0xb5, 0xb4, 0x48, 0x35, 0xdf, 0x0e, + 0xad, 0x9b, 0x8a, 0xb8, 0xc6, 0x62, 0x45, 0xb2, 0x24, 0xc4, 0x5a, 0x38, 0x51, 0x2f, 0xbe, 0x0a, + 0xcc, 0x65, 0xbb, 0xa2, 0xb7, 0x54, 0x4f, 0xe4, 0x90, 0xf0, 0xa1, 0xa4, 0xd7, 0xf1, 0x51, 0xae, + 0x1f, 0xe3, 0x15, 0x75, 0xcc, 0xd2, 0xdb, 0xb5, 0xdd, 0xa4, 0x36, 0x31, 0x96, 0x4b, 0x6d, 0xd6, + 0x30, 0x20, 0x1d, 0xc4, 0xf7, 0xeb, 0x03, 0x7a, 0x4b, 0x98, 0xca, 0xa8, 0xb1, 0x1a, 0xb0, 0x8e, + 0x96, 0x5d, 0x7d, 0x4d, 0xd9, 0xa8, 0x8f, 0x85, 0x00, 0x5f, 0x20, 0x55, 0x0f, 0x48, 0x4e, 0xa8, + 0x55, 0x28, 0x68, 0x99, 0x40, 0xa6, 0xb8, 0x2b, 0x1a, 0x8c, 0x3b, 0x10, 0x53, 0xa1, 0xdb, 0xc8, + 0x29, 0xb2, 0xc3, 0xaa, 0x8f, 0xd2, 0xe8, 0x4d, 0x73, 0xd3, 0x6f, 0x05, 0x63, 0x69, 0x4a, 0x91, + 0x75, 0x7a, 0x62, 0x1a, 0x06, 0xa7, 0x59, 0xb9, 0x4a, 0x53, 0x87, 0x75, 0xdb, 0x34, 0xa7, 0xc5, + 0x53, 0x1f, 0xdd, 0xcc, 0x9e, 0x62, 0x47, 0x77, 0x06, 0xb8, 0x5a, 0x68, 0x63, 0xa8, 0xea, 0xaf, + 0x8f, 0xf2, 0xe9, 0x39, 0x77, 0x6e, 0x56, 0x55, 0xe7, 0x0a, 0xca, 0x52, 0x42, 0x3e, 0x1b, 0xa4, + 0xe6, 0xb0, 0x7e, 0x22, 0x51, 0x3c, 0xea, 0x8b, 0x92, 0x32, 0x7b, 0x05, 0xe5, 0x92, 0xf3, 0x2b, + 0x3c, 0x57, 0xec, 0xc2, 0xef, 0xcd, 0x74, 0xab, 0x32, 0xf7, 0x91, 0x57, 0xd9, 0x9e, 0x7e, 0x64, + 0x50, 0x9c, 0x5a, 0x04, 0x29, 0xd5, 0xc9, 0x23, 0x00, 0xcf, 0x21, 0xf1, 0x3e, 0x0c, 0x45, 0xc4, + 0x9d, 0xe0, 0x56, 0xf7, 0x57, 0xbd, 0x70, 0xa0, 0x59, 0x2e, 0x21, 0xf7, 0x5c, 0x57, 0x63, 0xf4, + 0x91, 0xf8, 0xe3, 0x62, 0xa5, 0x4d, 0x8e, 0x35, 0xd3, 0xd4, 0xd1, 0xbd, 0x07, 0xaa, 0xa4, 0xef, + 0xa7, 0xd2, 0x2d, 0xc3, 0x30, 0x86, 0x3d, 0x21, 0x64, 0xe2, 0x5a, 0x27, 0xb9, 0xea, 0x85, 0x9e, + 0x15, 0x16, 0xfa, 0xc5, 0x73, 0xc2, 0x0e, 0x53, 0x2b, 0x7d, 0x42, 0x9c, 0x95, 0xd4, 0x04, 0xb9, + 0x64, 0xcb, 0xa8, 0xc6, 0x52, 0xf9, 0xbe, 0x29, 0x39, 0xba, 0xe2, 0x77, 0xe5, 0x3c, 0xf8, 0xdb, + 0x8a, 0x31, 0xf1, 0xaf, 0xa8, 0x6e, 0x50, 0x55, 0x4f, 0x62, 0xaa, 0x18, 0x17, 0x6d, 0xed, 0x2a, + 0x8f, 0x8b, 0x8a, 0x3e, 0x2e, 0xde, 0xb8, 0x2b, 0xb9, 0x38, 0x8f, 0xf7, 0x41, 0xa9, 0xb2, 0x73, + 0x85, 0xe9, 0x21, 0xd1, 0xdb, 0x2c, 0x68, 0x07, 0xbf, 0x31, 0x27, 0x06, 0x89, 0x1b, 0x2d, 0xaf, + 0x8e, 0xee, 0x41, 0x57, 0x58, 0x9f, 0xab, 0x0d, 0x4c, 0x31, 0xf6, 0xec, 0x8d, 0xb0, 0x5d, 0xf4, + 0x6e, 0x7d, 0x4f, 0xdf, 0x05, 0xfd, 0xf4, 0x13, 0xda, 0x79, 0xbd, 0x7d, 0x7c, 0x8e, 0x29, 0xce, + 0xe9, 0xc2, 0x8f, 0xdf, 0x79, 0x8c, 0x7f, 0xd7, 0xd9, 0xf5, 0x29, 0xf6, 0x94, 0xbb, 0xc5, 0x09, + 0x14, 0x4b, 0x47, 0xf7, 0x7d, 0x72, 0xdd, 0x8f, 0x2d, 0x1f, 0xb7, 0x63, 0x8d, 0xf7, 0xf7, 0xfe, + 0xfe, 0x9d, 0x7d, 0xf1, 0x3f, 0x72, 0x67, 0x5f, 0x05, 0x4a, 0x5f, 0xaa, 0x5b, 0x74, 0x0e, 0x0d, + 0x29, 0xfa, 0x59, 0x85, 0x45, 0xfa, 0x0e, 0x4a, 0x67, 0x72, 0x5a, 0xa5, 0xd0, 0x84, 0x2c, 0xb8, + 0xb2, 0x78, 0xa7, 0xe7, 0x96, 0xc6, 0x99, 0x95, 0x64, 0x2d, 0x2e, 0x24, 0xf3, 0xd6, 0x15, 0x24, + 0x41, 0x5b, 0xca, 0x36, 0xe6, 0xcf, 0x3e, 0xa8, 0x93, 0xb5, 0x63, 0xa3, 0x76, 0xbe, 0xca, 0xb8, + 0x3d, 0xa3, 0x62, 0xa5, 0x71, 0xd8, 0x7f, 0x63, 0x3f, 0xef, 0xf8, 0xcb, 0x12, 0xbe, 0x85, 0x57, + 0x90, 0xb9, 0x2d, 0xb5, 0x0f, 0xd4, 0xb0, 0x27, 0xfd, 0xbf, 0x76, 0xba, 0x47, 0xf6, 0x1f, 0x3a, + 0xdd, 0xe3, 0x2a, 0xdc, 0xfe, 0xe9, 0xa7, 0x7b, 0xc8, 0x69, 0xab, 0xe3, 0x8b, 0x62, 0xff, 0x7d, + 0xc4, 0x59, 0x2b, 0x56, 0xd0, 0x89, 0x3e, 0xe6, 0xd3, 0x3d, 0xe2, 0x0d, 0xc0, 0xf5, 0x32, 0xd4, + 0xd8, 0x74, 0x55, 0x7d, 0x07, 0xd9, 0xb2, 0xe2, 0x0f, 0xd5, 0x97, 0x67, 0x31, 0xc7, 0xb6, 0xcb, + 0x1f, 0x7f, 0xfa, 0x07, 0xef, 0x64, 0xf6, 0x59, 0x78, 0x6f, 0x2e, 0x7e, 0xef, 0xf2, 0x59, 0x4a, + 0x1a, 0x7d, 0x93, 0xae, 0x53, 0xef, 0xff, 0xf4, 0x9d, 0xc4, 0x75, 0xc6, 0x3a, 0x77, 0x8a, 0x1e, + 0xd2, 0xd4, 0xb0, 0x1c, 0x6d, 0x42, 0xa2, 0xed, 0x0b, 0xf5, 0xf6, 0x37, 0x60, 0x13, 0xed, 0xc2, + 0xd0, 0xfd, 0x9e, 0x96, 0xf9, 0x53, 0x4e, 0xf1, 0x90, 0x53, 0x73, 0xba, 0xe8, 0xb7, 0xf5, 0xe0, + 0x5b, 0x29, 0x1e, 0xf1, 0x96, 0x73, 0xd4, 0x1b, 0x5a, 0xdf, 0x9c, 0x73, 0xf4, 0x9c, 0x61, 0x69, + 0xbb, 0x93, 0xf6, 0xc7, 0x73, 0xa0, 0xe1, 0xec, 0x37, 0x76, 0xf3, 0xc8, 0xfa, 0xec, 0xad, 0x2f, + 0x44, 0x76, 0x65, 0x2e, 0x73, 0x0f, 0x3e, 0x1f, 0x01, 0x5a, 0xf1, 0xe8, 0xee, 0x9f, 0xd7, 0xc6, + 0xec, 0x04, 0x3a, 0xc8, 0x29, 0xd2, 0xf9, 0xca, 0xea, 0xce, 0xc8, 0xbb, 0xe5, 0x0e, 0xcf, 0x44, + 0x67, 0xc4, 0x9d, 0x5d, 0x42, 0xa1, 0x90, 0x9a, 0xe7, 0xcf, 0x61, 0x1b, 0x9f, 0x05, 0xf7, 0x3b, + 0xaa, 0x23, 0x03, 0x91, 0x03, 0x62, 0x5f, 0x67, 0x56, 0x2c, 0xb4, 0x27, 0xb4, 0xe8, 0x0c, 0xf4, + 0xa5, 0x72, 0xdd, 0xf6, 0x81, 0xf5, 0xae, 0x51, 0xd8, 0x00, 0x51, 0x59, 0x3c, 0x07, 0xbf, 0xa1, + 0xb8, 0xf0, 0xa4, 0x7c, 0xa5, 0x14, 0xd0, 0x95, 0xa9, 0x7c, 0xba, 0x43, 0x85, 0xd2, 0x83, 0xe7, + 0x8a, 0xab, 0x2d, 0x22, 0xae, 0x9b, 0x47, 0x48, 0xe4, 0x51, 0x36, 0x26, 0x8f, 0x90, 0xc8, 0xa3, + 0x46, 0xe4, 0x51, 0x73, 0x8d, 0x55, 0x85, 0xe0, 0x75, 0x7e, 0x85, 0xed, 0x5b, 0xd9, 0x97, 0xa1, + 0x63, 0x06, 0xf1, 0x09, 0x42, 0xfa, 0x5e, 0x10, 0xf4, 0xbb, 0x44, 0x68, 0x65, 0xfe, 0x9b, 0x4f, + 0xc9, 0x35, 0x90, 0xe0, 0xcf, 0x54, 0x7d, 0x00, 0x49, 0xbe, 0x56, 0x3b, 0xb7, 0x92, 0x7d, 0x89, + 0x7e, 0x28, 0x76, 0x5d, 0x04, 0x8d, 0x53, 0x29, 0x3f, 0x11, 0xbf, 0x97, 0xc0, 0xf1, 0x2e, 0x1b, + 0x72, 0xfe, 0x99, 0x94, 0x9c, 0xaf, 0xba, 0x3a, 0x27, 0x1e, 0x7b, 0x4a, 0xf8, 0x7e, 0x3d, 0x83, + 0x6f, 0xce, 0xcd, 0x0a, 0xa6, 0xcf, 0x46, 0x4b, 0xa7, 0xf9, 0x32, 0x24, 0x00, 0xb6, 0xea, 0xb7, + 0xcd, 0xd0, 0x34, 0x67, 0x92, 0xad, 0xfb, 0x65, 0x6b, 0x7a, 0x87, 0xc8, 0x05, 0xee, 0x67, 0xec, + 0xb9, 0xdb, 0x44, 0xda, 0x25, 0x96, 0x35, 0x0b, 0x21, 0xad, 0x6b, 0x23, 0xfe, 0x60, 0x71, 0xa5, + 0x8b, 0xbd, 0x64, 0xb1, 0x57, 0xc5, 0xac, 0x39, 0x1f, 0x08, 0x9b, 0xac, 0x8b, 0xa0, 0x4c, 0xb6, + 0xcd, 0x63, 0x7f, 0xe1, 0x17, 0xc4, 0x1e, 0x07, 0x70, 0x84, 0xc8, 0x6a, 0x2d, 0xdf, 0x97, 0xc5, + 0x27, 0x16, 0xb0, 0x7e, 0x78, 0x3b, 0xdb, 0xd9, 0x17, 0x08, 0xc9, 0xd5, 0xac, 0xf0, 0xca, 0x30, + 0x7b, 0x97, 0x67, 0x3a, 0x3e, 0x6d, 0x94, 0x77, 0x36, 0xf2, 0x6e, 0xc5, 0x75, 0xfd, 0x8f, 0x78, + 0x27, 0xc6, 0xd6, 0x8f, 0xf5, 0x3f, 0xe2, 0x01, 0x55, 0x5f, 0xd7, 0x07, 0xc9, 0xb3, 0x64, 0x1d, + 0xdc, 0xc2, 0x3b, 0x1b, 0x3a, 0xf2, 0x87, 0x76, 0x8c, 0x9e, 0x08, 0x28, 0xbc, 0x8d, 0xb0, 0x57, + 0xad, 0x10, 0xf0, 0x55, 0xa3, 0xfb, 0xee, 0x29, 0xac, 0xd6, 0x46, 0x0c, 0x4f, 0x23, 0x67, 0xd3, + 0x9e, 0x46, 0xcc, 0x63, 0x3c, 0x8d, 0x74, 0x69, 0x87, 0x0c, 0xb8, 0x4e, 0xf3, 0x4e, 0x99, 0x40, + 0xb0, 0x24, 0xf4, 0x93, 0x57, 0x5b, 0xda, 0xf7, 0x54, 0xb6, 0x34, 0xa7, 0x70, 0xc2, 0xe7, 0xb3, + 0x89, 0x53, 0x08, 0xcd, 0x6e, 0x2f, 0x6b, 0x7d, 0xab, 0x08, 0x25, 0x8d, 0x14, 0x46, 0x79, 0xc7, + 0xc7, 0x9c, 0xf7, 0xc9, 0xe6, 0x9e, 0xb4, 0xfa, 0xc2, 0xe1, 0x75, 0x6c, 0x49, 0x58, 0xc5, 0x58, + 0xaa, 0x15, 0xbe, 0x4a, 0x74, 0x1f, 0x5f, 0x21, 0xdd, 0xf7, 0x09, 0x63, 0x2a, 0xb5, 0x0b, 0xf7, + 0xca, 0x15, 0x63, 0x27, 0xc8, 0x98, 0x3d, 0xb8, 0x86, 0x5f, 0xaf, 0x72, 0x1d, 0x16, 0x61, 0x6f, + 0x62, 0x3a, 0x96, 0x6c, 0xec, 0xc1, 0xf8, 0x7f, 0x31, 0xad, 0xff, 0x5f, 0x10, 0x78, 0xab, 0x75, + 0xd7, 0x97, 0x53, 0x64, 0xa0, 0x24, 0xd4, 0xff, 0x40, 0x2b, 0x99, 0x9a, 0x4a, 0x4d, 0x91, 0x03, + 0x65, 0x19, 0x91, 0x97, 0x76, 0xad, 0xc5, 0x5b, 0x8d, 0x38, 0xff, 0x28, 0xfb, 0xe1, 0xc3, 0xce, + 0x49, 0xab, 0x88, 0xcf, 0x48, 0x80, 0xcc, 0x17, 0xb0, 0x4c, 0x4f, 0xef, 0xda, 0x41, 0x6b, 0xda, + 0xa6, 0xff, 0xbf, 0xbc, 0x6b, 0xc7, 0xfb, 0xff, 0xda, 0xae, 0x9d, 0x66, 0xde, 0xb5, 0x53, 0x79, + 0x8e, 0xea, 0xc3, 0x03, 0x71, 0xf3, 0xb4, 0xe5, 0x34, 0x9f, 0x62, 0xa0, 0x82, 0x0b, 0xb3, 0xc2, + 0x46, 0x3b, 0x54, 0xb3, 0x2f, 0x70, 0x63, 0x57, 0x8e, 0xee, 0x07, 0xe2, 0xa4, 0x7b, 0xdf, 0xf8, + 0x5d, 0x39, 0x6c, 0x95, 0x21, 0x68, 0xe2, 0xa8, 0xc1, 0x73, 0x03, 0x4e, 0x32, 0xac, 0xfd, 0x06, + 0x74, 0x1b, 0xa2, 0xfe, 0x9e, 0x7b, 0xa1, 0x35, 0x5f, 0xad, 0x5b, 0xb0, 0xb4, 0xea, 0x37, 0xa9, + 0x39, 0xbb, 0x79, 0x24, 0xba, 0xdf, 0x1f, 0x64, 0x99, 0xfc, 0x8d, 0xc3, 0xfe, 0x99, 0x7d, 0xba, + 0x7e, 0x74, 0x56, 0x09, 0xbd, 0x7e, 0x90, 0xcf, 0x19, 0x40, 0xd8, 0x94, 0xc4, 0x82, 0xc6, 0x60, + 0x20, 0xc9, 0x6f, 0xd1, 0x6f, 0xf5, 0x51, 0xfc, 0x6e, 0xd6, 0xba, 0xf8, 0x5c, 0xb3, 0x78, 0x8e, + 0xa1, 0x69, 0xb0, 0x5c, 0x5e, 0xec, 0xdf, 0x09, 0x09, 0xb7, 0xc4, 0x85, 0x7c, 0x02, 0x41, 0x7d, + 0x5e, 0xcb, 0x3f, 0xa5, 0xbf, 0x32, 0x9e, 0x1b, 0xf8, 0x71, 0x1f, 0x6b, 0x16, 0xc5, 0x5c, 0xc2, + 0x6d, 0x48, 0xd3, 0x47, 0xaa, 0xcd, 0x90, 0xef, 0x6d, 0x22, 0xac, 0xbb, 0x8f, 0x6e, 0x0f, 0x51, + 0x11, 0x4b, 0x5e, 0xd7, 0xee, 0x86, 0x1c, 0xdd, 0xdf, 0x3a, 0x2a, 0xbf, 0xa2, 0x1d, 0x75, 0x4b, + 0xcf, 0x5c, 0x6b, 0xc3, 0x3b, 0xef, 0xc6, 0xb3, 0xff, 0xee, 0x2c, 0xc9, 0x71, 0x8b, 0x98, 0x15, + 0x95, 0xe2, 0x0e, 0xb4, 0xf0, 0xcd, 0x2d, 0xb9, 0x68, 0xd8, 0xe4, 0x4d, 0x41, 0xba, 0x79, 0xcc, + 0x79, 0xc0, 0xbc, 0xf2, 0x84, 0x71, 0x7b, 0xe4, 0xc8, 0xd5, 0xbb, 0x5f, 0xc7, 0xec, 0xe5, 0x9f, + 0x88, 0x91, 0x33, 0x47, 0xdf, 0x7b, 0x83, 0x52, 0x72, 0x38, 0x4d, 0x6a, 0x1e, 0x32, 0xb5, 0x3f, + 0xd4, 0xd1, 0xf0, 0x55, 0x3e, 0x65, 0x49, 0xe6, 0x35, 0x07, 0xc7, 0x66, 0x67, 0x44, 0x95, 0x20, + 0x73, 0xa2, 0xcf, 0xc7, 0x2f, 0x39, 0xa2, 0x6a, 0x0e, 0xf8, 0x8f, 0xe5, 0x85, 0x37, 0xe2, 0x16, + 0xde, 0xa3, 0xe2, 0x7a, 0x58, 0xb5, 0xe8, 0x3b, 0xcd, 0xe3, 0x67, 0x11, 0x67, 0x7b, 0xe1, 0x3d, + 0x68, 0xfa, 0x16, 0x7c, 0x6d, 0x65, 0xff, 0x7d, 0x46, 0xcc, 0x39, 0x25, 0x16, 0xdd, 0x1c, 0x67, + 0xff, 0x31, 0x59, 0xbc, 0xc6, 0xf8, 0x81, 0xab, 0xfe, 0x11, 0x3c, 0xe7, 0x18, 0xbd, 0x3d, 0x6d, + 0xff, 0x58, 0x4a, 0x18, 0x09, 0xcb, 0x4a, 0x4d, 0x89, 0x92, 0x68, 0x28, 0x11, 0x38, 0x3c, 0xa0, + 0xcf, 0xa7, 0x40, 0x43, 0xd1, 0x2d, 0x8d, 0xfb, 0x1a, 0x36, 0xb9, 0x28, 0x31, 0x35, 0xf5, 0xce, + 0xde, 0xd2, 0x62, 0x3d, 0xa7, 0x7a, 0x76, 0x27, 0x5b, 0xa5, 0xd8, 0x5a, 0x7f, 0x86, 0x6a, 0x4e, + 0x59, 0x79, 0xa7, 0xcf, 0xee, 0x90, 0xd8, 0x9e, 0x4a, 0xf1, 0x51, 0xae, 0x43, 0xf7, 0x32, 0x5c, + 0xe0, 0xf2, 0x41, 0x7e, 0x6f, 0x13, 0x56, 0xd3, 0xaf, 0xe9, 0xd6, 0x78, 0xd7, 0x9c, 0x03, 0xf4, + 0x03, 0xc6, 0x82, 0xbe, 0xff, 0x89, 0xad, 0xa7, 0x8b, 0x4c, 0xae, 0x90, 0xa7, 0xca, 0x5d, 0xed, + 0x4c, 0xfb, 0x6b, 0x29, 0x99, 0x14, 0x79, 0xa9, 0x24, 0xfc, 0x93, 0x97, 0x5a, 0xc8, 0xb4, 0xb4, + 0x6c, 0x5e, 0x69, 0xdd, 0x4f, 0x7f, 0x89, 0xa7, 0x7b, 0x8c, 0xb5, 0x8c, 0xa9, 0xe0, 0x99, 0xb9, + 0x5b, 0xce, 0x92, 0xed, 0xc7, 0xbf, 0x68, 0x96, 0x20, 0x47, 0x2f, 0xa5, 0x3c, 0xbc, 0xe5, 0xfc, + 0xf8, 0x68, 0x73, 0xc0, 0x5d, 0xab, 0x16, 0x31, 0xdf, 0x54, 0xc2, 0xba, 0x85, 0x35, 0xaf, 0xa8, + 0xe1, 0x99, 0x44, 0x7b, 0x05, 0x7f, 0xf2, 0x11, 0x79, 0x97, 0x98, 0x5d, 0x6d, 0xe4, 0x6d, 0x7c, + 0xa0, 0x7f, 0xe3, 0x22, 0xd9, 0x1d, 0x6c, 0xdc, 0xa8, 0xcc, 0x7d, 0xf8, 0x25, 0x87, 0x25, 0xd6, + 0x1d, 0xed, 0x6e, 0x83, 0x24, 0xae, 0xd4, 0x3d, 0xfc, 0x4b, 0xc5, 0x12, 0x4b, 0x46, 0x93, 0x78, + 0xfb, 0xd0, 0x6d, 0x6e, 0x96, 0xc2, 0xbd, 0xbb, 0x7a, 0xdb, 0xb2, 0x1c, 0x13, 0xf0, 0xd4, 0xdd, + 0xdf, 0xdd, 0x1a, 0xf0, 0x49, 0xba, 0xff, 0x18, 0xe8, 0xf6, 0x59, 0xf3, 0x2e, 0x6b, 0xae, 0xfa, + 0x6d, 0xba, 0x76, 0xe7, 0xbb, 0x41, 0x58, 0xfb, 0xef, 0xbb, 0xf2, 0xa1, 0xf0, 0x3e, 0xdb, 0x03, + 0xdd, 0x36, 0xab, 0x7e, 0x1b, 0xa4, 0xac, 0x27, 0x21, 0xa7, 0x72, 0xbf, 0x4b, 0xa5, 0x99, 0xc0, + 0xbe, 0x74, 0x47, 0x77, 0xb5, 0x0b, 0x09, 0xae, 0x77, 0x6c, 0xae, 0xc8, 0x63, 0x50, 0x48, 0x4d, + 0xeb, 0x13, 0x45, 0x6d, 0x39, 0xa9, 0xdc, 0x01, 0xe7, 0x2b, 0xbc, 0x9f, 0x5c, 0xb5, 0x71, 0x88, + 0x52, 0xc5, 0x6f, 0x68, 0xb7, 0x54, 0xa9, 0xab, 0x84, 0xed, 0xc4, 0x7d, 0x09, 0x4f, 0x5b, 0xb6, + 0xfe, 0xc5, 0x5f, 0xff, 0x03, 0x24, 0x24, 0x93, 0x8a, 0x37, 0x65, 0xde, 0xc3, 0xff, 0x20, 0xd2, + 0x8e, 0xc2, 0x18, 0xe5, 0xd4, 0x62, 0xc7, 0x0b, 0xbf, 0x2d, 0xd2, 0x2d, 0x64, 0x53, 0x7b, 0x9c, + 0x7e, 0x7f, 0x9b, 0x8e, 0xbc, 0xa9, 0xb7, 0xe9, 0x5d, 0xa2, 0xf5, 0x8a, 0x26, 0x32, 0x86, 0x7d, + 0xd0, 0x90, 0xbd, 0xd9, 0xc5, 0x21, 0xb4, 0xd8, 0x11, 0xb4, 0x93, 0xab, 0xac, 0xaa, 0xb4, 0x5a, + 0xb4, 0x58, 0x81, 0x61, 0x07, 0xff, 0xf9, 0x2d, 0xe6, 0x41, 0x8b, 0xb9, 0x58, 0xab, 0x51, 0x42, + 0x7a, 0x8b, 0xb9, 0x08, 0x4f, 0xc2, 0x1e, 0x7e, 0xcf, 0x03, 0x8b, 0x64, 0x57, 0xd5, 0xb8, 0x96, + 0x3a, 0x92, 0x6e, 0xa9, 0x83, 0xe3, 0x5a, 0x6a, 0x37, 0x60, 0xf4, 0xa2, 0x85, 0x7a, 0x76, 0xf5, + 0xb4, 0xf1, 0x0e, 0x0e, 0xbf, 0xd1, 0x5a, 0x16, 0x1e, 0xef, 0x58, 0x27, 0xf7, 0x99, 0xc7, 0xb4, + 0x41, 0x96, 0xf0, 0x6e, 0xcc, 0xd7, 0x84, 0x71, 0xed, 0xd0, 0x1c, 0x7d, 0x9e, 0xbc, 0x89, 0x40, + 0x5b, 0x2e, 0x7f, 0x65, 0xe0, 0xfc, 0x23, 0x2a, 0x17, 0x58, 0xcf, 0xe1, 0x30, 0x25, 0x8a, 0xf7, + 0x62, 0x03, 0xef, 0x59, 0xf8, 0x7a, 0xdf, 0x95, 0x63, 0x02, 0xef, 0xcf, 0x93, 0x1f, 0x6d, 0x65, + 0xd3, 0xbf, 0xfb, 0x6b, 0xfe, 0xa6, 0x59, 0xb4, 0x94, 0x19, 0xb8, 0x4f, 0x7d, 0x31, 0x29, 0xfd, + 0xcd, 0x13, 0xfc, 0x0d, 0xe3, 0xbb, 0xc1, 0xc0, 0x37, 0x5b, 0x1d, 0x7a, 0x26, 0x96, 0x52, 0x89, + 0xc9, 0x99, 0x1d, 0x5d, 0x17, 0xcf, 0x7d, 0xbd, 0xe1, 0x0d, 0xe8, 0x6f, 0xaf, 0x83, 0x2f, 0xe0, + 0x6e, 0x5e, 0x69, 0xe2, 0x55, 0xf4, 0xfa, 0xe7, 0x3e, 0x7d, 0x52, 0xb7, 0xf4, 0xa3, 0xbe, 0x5f, + 0x37, 0xfe, 0x23, 0x24, 0xde, 0x5f, 0x43, 0x1f, 0xc2, 0xdd, 0xac, 0x04, 0x1d, 0x7c, 0x2a, 0x90, + 0x45, 0x89, 0x3a, 0xaa, 0x99, 0xce, 0x3f, 0x4d, 0x0a, 0x29, 0xb9, 0x49, 0x99, 0xeb, 0x08, 0x0a, + 0xfd, 0xe2, 0x71, 0xee, 0xf1, 0x15, 0x39, 0xec, 0x55, 0x87, 0x7d, 0xe8, 0xb0, 0x57, 0x1d, 0x5e, + 0x57, 0x10, 0x16, 0xb8, 0xd6, 0x94, 0x9c, 0x5e, 0x7a, 0xdf, 0x9d, 0x35, 0x24, 0xdd, 0x59, 0x4d, + 0xf2, 0x9d, 0x61, 0x32, 0x4f, 0xaf, 0xd2, 0xcf, 0x1a, 0xd7, 0x67, 0xd1, 0x53, 0x7a, 0x8a, 0x78, + 0x9e, 0x3b, 0xfa, 0xec, 0xcf, 0xd0, 0x57, 0x19, 0x84, 0x5e, 0x7b, 0x8c, 0xe5, 0x74, 0x3e, 0x69, + 0x5c, 0x9f, 0x15, 0xd5, 0xb5, 0x36, 0x70, 0x2f, 0x37, 0xb7, 0x2e, 0x46, 0x0d, 0x6f, 0xa0, 0x99, + 0x0a, 0x20, 0x21, 0x5c, 0xf2, 0x43, 0x77, 0x2f, 0x8c, 0x68, 0x23, 0xde, 0x56, 0xb9, 0x82, 0x4f, + 0x57, 0xee, 0xb0, 0x0d, 0x25, 0x31, 0x4a, 0x1e, 0x43, 0xdc, 0xf1, 0x8e, 0x29, 0xe2, 0x59, 0x9c, + 0xbc, 0xca, 0xfa, 0xad, 0x12, 0x82, 0x5c, 0x71, 0x8c, 0xbd, 0xfd, 0x83, 0x8b, 0x4e, 0x15, 0xb4, + 0x14, 0x53, 0x0a, 0xe5, 0xbb, 0xf5, 0x73, 0xa8, 0xd9, 0xe7, 0xbf, 0x21, 0x77, 0x5c, 0xc0, 0x7d, + 0x04, 0xf7, 0x8b, 0xd7, 0x9e, 0x8d, 0x8b, 0xda, 0x1b, 0xfb, 0x20, 0x2f, 0xaf, 0x5c, 0xb0, 0x49, + 0xad, 0x80, 0x0c, 0xeb, 0x89, 0x5b, 0xc5, 0x9e, 0x67, 0x84, 0xfd, 0xfb, 0x89, 0x86, 0x4d, 0x81, + 0x2e, 0xb2, 0xbd, 0xf1, 0xbe, 0xd4, 0xab, 0x84, 0xaa, 0x91, 0x5b, 0xca, 0xeb, 0x29, 0x42, 0xa7, + 0xa4, 0x43, 0xd3, 0xbe, 0x50, 0xef, 0x84, 0x9e, 0x44, 0x05, 0x77, 0xb2, 0x0d, 0xd9, 0x54, 0xa1, + 0xb3, 0x89, 0xfd, 0xa9, 0x3e, 0xe9, 0xc6, 0x20, 0x7d, 0xe9, 0xc6, 0x4a, 0xca, 0xbf, 0x31, 0x44, + 0x05, 0xfa, 0x2c, 0xb8, 0xb4, 0xec, 0xef, 0x35, 0x52, 0xf4, 0x35, 0x3f, 0x11, 0x3b, 0x26, 0xd4, + 0x08, 0xcb, 0xbf, 0x3a, 0xcc, 0xa7, 0xef, 0xaa, 0x7c, 0x51, 0xfc, 0xbe, 0x9a, 0xf6, 0x76, 0x40, + 0xb6, 0x22, 0x3a, 0xef, 0xd5, 0xcf, 0x14, 0x0a, 0xfe, 0x8a, 0x3d, 0xbe, 0xe4, 0xbc, 0x71, 0xe4, + 0xab, 0x7d, 0x3b, 0x48, 0x9c, 0x33, 0x94, 0x3d, 0x23, 0x22, 0x95, 0xcd, 0xa8, 0x95, 0x4a, 0xf4, + 0xb1, 0x85, 0x57, 0x4f, 0x91, 0x77, 0x41, 0x6a, 0x2e, 0x5e, 0xb7, 0x19, 0xf9, 0x6a, 0x84, 0x8a, + 0x6f, 0x83, 0x74, 0x4b, 0xe5, 0x62, 0x57, 0x44, 0x19, 0x7e, 0xf3, 0xa9, 0x82, 0xd3, 0xa3, 0xa5, + 0x72, 0xd9, 0xe2, 0xf1, 0x54, 0xdf, 0x3f, 0x4f, 0xe4, 0x55, 0x92, 0x28, 0xc5, 0x2f, 0x4e, 0xa9, + 0x24, 0x3b, 0xc7, 0xe5, 0xb8, 0xe9, 0xcb, 0x91, 0xee, 0x29, 0x41, 0xfa, 0x32, 0x61, 0x1c, 0x22, + 0xc5, 0x6f, 0xd2, 0xed, 0x79, 0x52, 0x7b, 0x25, 0xdc, 0x62, 0x8e, 0xc5, 0xc9, 0x27, 0x91, 0x46, + 0xd3, 0xfd, 0x37, 0xaa, 0xf7, 0x5f, 0x6f, 0x90, 0x4f, 0xb1, 0x6d, 0xf6, 0xa6, 0xad, 0xaa, 0x1d, + 0x6c, 0xb9, 0x20, 0x4e, 0x68, 0x67, 0x69, 0xfe, 0xba, 0x12, 0x91, 0x22, 0x41, 0xb7, 0xd4, 0xf7, + 0xd0, 0x66, 0xa0, 0x83, 0xb6, 0x6a, 0x9a, 0x52, 0xc5, 0xbd, 0x87, 0x65, 0x48, 0x31, 0x1b, 0x7b, + 0x72, 0x96, 0xdb, 0x90, 0x54, 0xac, 0xa9, 0x35, 0x69, 0x7d, 0x1f, 0x1d, 0xcf, 0xf7, 0x28, 0xe2, + 0xc4, 0x58, 0x47, 0xf2, 0xab, 0xd0, 0x6f, 0x5d, 0xc6, 0xd9, 0x4d, 0x9d, 0xa4, 0xe6, 0x29, 0xd0, + 0x13, 0xa1, 0xf9, 0x5a, 0x6f, 0x81, 0x0e, 0x7c, 0x4b, 0x25, 0x59, 0x5d, 0x8d, 0x4e, 0x8b, 0xd2, + 0xa0, 0xef, 0x25, 0x11, 0x1a, 0xdf, 0xdb, 0x86, 0x27, 0xb8, 0xe1, 0x37, 0x3a, 0x84, 0x2f, 0x74, + 0x33, 0xc3, 0xa7, 0x5a, 0x78, 0x06, 0x3b, 0xad, 0x13, 0xeb, 0x7e, 0x4d, 0x47, 0xf5, 0xee, 0xa2, + 0x68, 0x4f, 0xbc, 0x88, 0x75, 0xda, 0x3f, 0x46, 0xf3, 0x1e, 0xa3, 0xd5, 0xca, 0xfa, 0xee, 0xba, + 0x51, 0xbf, 0xbd, 0xee, 0x88, 0x9b, 0x3c, 0x26, 0xaf, 0x54, 0x94, 0xe1, 0xaa, 0x4f, 0x7b, 0x5d, + 0xcb, 0x16, 0x33, 0x73, 0xcd, 0xc2, 0x7e, 0xd0, 0xc2, 0xb9, 0x8c, 0x5f, 0x37, 0x10, 0xfe, 0xeb, + 0x9c, 0xd1, 0x64, 0x3c, 0xdb, 0x58, 0x03, 0x0a, 0x89, 0xfe, 0xb6, 0x4b, 0x5f, 0x3b, 0x48, 0xf9, + 0x0a, 0xe5, 0x35, 0x8c, 0x50, 0x75, 0xa4, 0x1a, 0xf2, 0xdf, 0xf9, 0x50, 0x4d, 0xa4, 0x06, 0x32, + 0xe1, 0x87, 0xbc, 0x3e, 0x38, 0x6b, 0x0e, 0x24, 0xbf, 0x16, 0xed, 0x63, 0x50, 0x78, 0xd6, 0xb5, + 0x74, 0xef, 0x58, 0x21, 0x6d, 0x46, 0xbd, 0x2e, 0x8d, 0xa5, 0x7a, 0xb6, 0x0a, 0x4d, 0x9f, 0x00, + 0x1e, 0x15, 0x67, 0x7d, 0x9f, 0xa8, 0xfc, 0x00, 0x7a, 0x47, 0x44, 0xec, 0x23, 0x3a, 0x2d, 0xce, + 0xfb, 0x3e, 0xcb, 0xfe, 0x60, 0x0c, 0x3f, 0xbe, 0x92, 0x71, 0xe2, 0x77, 0x33, 0xfb, 0xc7, 0x23, + 0x19, 0x58, 0x65, 0xdf, 0xfc, 0x36, 0x9e, 0xfd, 0xe4, 0x93, 0x87, 0xde, 0x38, 0xfc, 0x55, 0xe8, + 0x52, 0x7d, 0x34, 0xde, 0x1f, 0x72, 0xb9, 0x7e, 0xc2, 0x65, 0xab, 0xd8, 0xb1, 0x29, 0xed, 0x4d, + 0xde, 0xbb, 0x58, 0xd8, 0xcb, 0xe1, 0xfb, 0x5f, 0xbd, 0xaa, 0x9f, 0xec, 0x7b, 0xb6, 0x4e, 0x0a, + 0x4f, 0x26, 0x45, 0x0a, 0x05, 0x23, 0xc1, 0xe1, 0x88, 0x14, 0xa4, 0x0b, 0x7d, 0x41, 0x25, 0x63, + 0x75, 0xc1, 0xb9, 0x1d, 0x7d, 0x41, 0x7f, 0x8e, 0x14, 0xbc, 0x40, 0x7d, 0xc1, 0xe2, 0x5e, 0xe0, + 0xc8, 0x94, 0x70, 0xf3, 0xba, 0x51, 0x28, 0x14, 0x09, 0x9d, 0x8d, 0x4a, 0x21, 0xba, 0xc0, 0xde, + 0x95, 0xa5, 0xca, 0xc9, 0xd4, 0x5b, 0x19, 0xaa, 0x8a, 0x54, 0x0d, 0xcf, 0x95, 0xaa, 0x68, 0x72, + 0x6f, 0xd5, 0xcc, 0x9e, 0xed, 0x54, 0xf7, 0x8e, 0x5c, 0x6e, 0xc8, 0x46, 0x92, 0x6e, 0x77, 0xe3, + 0xce, 0x78, 0x6f, 0xe3, 0x9b, 0xbd, 0xee, 0x8c, 0x93, 0xe2, 0x37, 0x12, 0x0e, 0x85, 0x71, 0x97, + 0xde, 0xdb, 0x78, 0x0c, 0xbf, 0x27, 0xc5, 0x2f, 0x87, 0xe1, 0x6e, 0x7a, 0x6f, 0xe3, 0x10, 0x7e, + 0x4f, 0x8a, 0x5f, 0x0e, 0x1b, 0xea, 0xe5, 0xf9, 0x55, 0x8c, 0x90, 0xfa, 0x9e, 0x05, 0xbd, 0x3e, + 0xc5, 0x81, 0xa0, 0x21, 0x41, 0x6f, 0x68, 0x73, 0xbf, 0xf1, 0xaa, 0x5e, 0x9f, 0x93, 0x51, 0x40, + 0xa0, 0xf5, 0x56, 0xe9, 0x50, 0xf7, 0x06, 0x8b, 0x7b, 0x04, 0xd4, 0x16, 0x01, 0x75, 0xbb, 0x80, + 0xca, 0x2a, 0xe6, 0x1d, 0xce, 0x8e, 0xb1, 0xe5, 0x2a, 0x2e, 0x9c, 0xc8, 0x3b, 0x56, 0x2f, 0x2e, + 0xea, 0x2c, 0x38, 0xb6, 0x49, 0xb7, 0xe8, 0x32, 0x7d, 0x62, 0x58, 0x74, 0xb1, 0x85, 0xdc, 0xc0, + 0xa2, 0xe2, 0xb4, 0x45, 0xd7, 0xfd, 0x69, 0x8b, 0x2e, 0x35, 0x65, 0xd1, 0x65, 0x3a, 0xa2, 0x2e, + 0x12, 0xcf, 0x72, 0x62, 0x95, 0x6e, 0xd9, 0x85, 0xb0, 0x3d, 0xea, 0x6a, 0xc3, 0xaa, 0x4b, 0x49, + 0x59, 0x75, 0xd1, 0x13, 0x69, 0xab, 0xae, 0x5e, 0xdd, 0xaa, 0x0b, 0xe9, 0x1e, 0x52, 0x5b, 0xd3, + 0x96, 0x5c, 0x94, 0xb6, 0xe4, 0x5a, 0x05, 0x08, 0xfc, 0x6c, 0xfd, 0xe3, 0x10, 0xeb, 0x8a, 0xda, + 0x8b, 0xaa, 0x55, 0x29, 0x4a, 0xbd, 0x5d, 0xd9, 0x89, 0xd8, 0xf9, 0x63, 0xde, 0x9f, 0x54, 0x3f, + 0x1c, 0xf3, 0xf6, 0x03, 0x75, 0x58, 0x19, 0xb5, 0xe3, 0x2a, 0x52, 0x87, 0xc6, 0xbc, 0xb9, 0xd5, + 0x43, 0x62, 0x0d, 0x35, 0x4b, 0x5a, 0xce, 0xbc, 0x11, 0xf9, 0x64, 0xd3, 0xf2, 0x20, 0x89, 0xa7, + 0x51, 0x2b, 0x16, 0xa2, 0x4b, 0xc6, 0xde, 0xac, 0x0b, 0x22, 0x5f, 0xd2, 0x5b, 0x59, 0xa3, 0xd9, + 0x95, 0xe4, 0x70, 0xd0, 0xf0, 0x06, 0xe3, 0xb9, 0x20, 0x40, 0xc6, 0xd3, 0xd4, 0x93, 0x7c, 0xae, + 0x9f, 0xb0, 0xd0, 0x12, 0xbb, 0xce, 0xf3, 0x06, 0xd9, 0xf6, 0x2a, 0x48, 0x6e, 0x5f, 0x88, 0xbc, + 0x57, 0xdb, 0x4f, 0x19, 0xf6, 0x57, 0x16, 0xd6, 0xf9, 0x30, 0x06, 0x6f, 0x64, 0x6d, 0x4d, 0x48, + 0x13, 0x93, 0xfc, 0xad, 0x64, 0x86, 0xd6, 0x9f, 0x55, 0xbf, 0x55, 0x09, 0x0a, 0x7e, 0x90, 0x4c, + 0x34, 0xb3, 0x55, 0xd4, 0x2e, 0xfd, 0x04, 0x66, 0xe1, 0x9d, 0x8f, 0x2d, 0x0d, 0xc0, 0x6d, 0x2c, + 0x04, 0x08, 0x21, 0xa7, 0xd7, 0x49, 0x6e, 0xed, 0x53, 0xdc, 0xc3, 0x3a, 0x87, 0x1b, 0xf7, 0xad, + 0x9f, 0x6d, 0xa1, 0x24, 0xd2, 0x46, 0xc0, 0x69, 0xad, 0x39, 0x45, 0x34, 0x41, 0x32, 0x51, 0x46, + 0x0f, 0x81, 0x0b, 0x5b, 0xd5, 0x5c, 0x81, 0x07, 0x0b, 0x2d, 0x57, 0xb8, 0xf6, 0x66, 0x69, 0xf9, + 0x3b, 0xc0, 0xc7, 0x35, 0xb6, 0x55, 0x23, 0x86, 0x15, 0x95, 0xdd, 0x58, 0x77, 0x67, 0xbe, 0x6c, + 0x42, 0xfc, 0x33, 0xaf, 0x50, 0x4e, 0x46, 0x8d, 0xe9, 0xa0, 0x87, 0x4a, 0x5f, 0x91, 0x7a, 0x32, + 0x6e, 0xaa, 0x24, 0x5e, 0x09, 0x29, 0xee, 0x71, 0x53, 0x1e, 0xef, 0x0a, 0x4b, 0xed, 0x8d, 0xe0, + 0x31, 0x03, 0xdf, 0x95, 0xb2, 0x27, 0x02, 0x27, 0x5b, 0xc4, 0xc5, 0xc4, 0x5a, 0x51, 0x1e, 0xaf, + 0xef, 0x43, 0xc3, 0xb3, 0x9b, 0x2b, 0x93, 0xa4, 0xdb, 0xb3, 0x0c, 0x76, 0x03, 0x03, 0x4f, 0x74, + 0x52, 0x31, 0x72, 0x88, 0x84, 0x42, 0xa1, 0x80, 0x7b, 0x6c, 0xec, 0x50, 0x0f, 0xf8, 0x6e, 0xb1, + 0xbe, 0xc7, 0x5e, 0x6a, 0xfc, 0x4c, 0x73, 0xda, 0x76, 0x25, 0x5b, 0x2c, 0x8a, 0xc9, 0x19, 0x51, + 0x42, 0xea, 0x52, 0xe8, 0x74, 0xb2, 0xb3, 0xc7, 0xdd, 0x20, 0xe6, 0xf0, 0xb3, 0xa6, 0x47, 0x49, + 0x56, 0x65, 0x17, 0xa4, 0x18, 0x91, 0x5e, 0x11, 0x67, 0xdd, 0x88, 0x3c, 0x4b, 0x0a, 0x91, 0x67, + 0x15, 0xf2, 0x14, 0x2b, 0xbc, 0xc7, 0xd6, 0xee, 0xea, 0x69, 0x39, 0xae, 0x06, 0xa1, 0x11, 0xe5, + 0x22, 0xb5, 0x74, 0x6b, 0x04, 0xdc, 0x9d, 0xbd, 0x99, 0x3c, 0x4d, 0x52, 0x68, 0x87, 0xfe, 0x8c, + 0x30, 0x49, 0x35, 0x4f, 0xe7, 0x98, 0x3e, 0x5d, 0x4b, 0x88, 0x93, 0xb6, 0x90, 0x6b, 0x73, 0x4b, + 0x94, 0xcc, 0x75, 0xef, 0x14, 0xa0, 0x96, 0xb7, 0xcc, 0x45, 0x9b, 0x3f, 0xe2, 0x6e, 0x14, 0xeb, + 0xa9, 0xc7, 0xd4, 0x37, 0xa1, 0x83, 0xa1, 0x5f, 0xb9, 0xeb, 0x75, 0x4b, 0xbd, 0xb9, 0x1f, 0x66, + 0x3c, 0x01, 0xac, 0x8e, 0xee, 0xb0, 0x37, 0x64, 0x86, 0xf7, 0xcc, 0x62, 0x4e, 0x3b, 0xa6, 0x04, + 0x79, 0x44, 0x61, 0x0b, 0x30, 0xd1, 0xc6, 0xa3, 0x36, 0xb1, 0xf5, 0xe9, 0x94, 0x6f, 0x1a, 0x5e, + 0x3f, 0x5d, 0xd3, 0xf8, 0x1c, 0x8e, 0x6c, 0xc9, 0x43, 0xdf, 0x23, 0x5e, 0x41, 0xb6, 0x7a, 0x9b, + 0xf5, 0x7d, 0xea, 0x8e, 0xb9, 0xe3, 0xf6, 0xb5, 0xcf, 0x1b, 0xab, 0xa3, 0x76, 0x51, 0x6a, 0x4d, + 0xf3, 0xf7, 0xfb, 0x34, 0x0a, 0xb0, 0x4f, 0xa3, 0x03, 0x7e, 0xf6, 0x69, 0x34, 0x20, 0xf2, 0x0e, + 0x0a, 0xbf, 0x46, 0x95, 0xec, 0xd7, 0xc8, 0xf0, 0x69, 0x94, 0x34, 0x7c, 0x1a, 0x75, 0xf3, 0x78, + 0xe1, 0x30, 0xfc, 0x1a, 0x39, 0x85, 0x5f, 0x23, 0x57, 0xd6, 0x1f, 0xf6, 0x69, 0x04, 0x9e, 0xf3, + 0x8c, 0x80, 0xa3, 0x8d, 0x7a, 0xbd, 0x3e, 0x62, 0x9b, 0xdf, 0x36, 0xea, 0x83, 0x36, 0xb0, 0xb1, + 0xfa, 0x23, 0xea, 0xe4, 0x35, 0xa3, 0xcf, 0xea, 0x4b, 0x7d, 0xd4, 0x15, 0x0b, 0x6f, 0x6f, 0xa3, + 0x55, 0x25, 0x3e, 0x5a, 0x13, 0xab, 0xda, 0xd6, 0x46, 0xab, 0x8b, 0xd9, 0xa7, 0xf6, 0x64, 0x29, + 0xa4, 0x5d, 0xf0, 0x4b, 0xcd, 0xd2, 0x3d, 0xc1, 0x33, 0xec, 0x9f, 0xac, 0xa6, 0xac, 0xca, 0x37, + 0x8f, 0x1a, 0xca, 0xc2, 0xf8, 0x6d, 0x52, 0x6e, 0x80, 0x6c, 0xde, 0x20, 0xfc, 0x39, 0xe7, 0xfa, + 0xd8, 0xbb, 0x1a, 0xc7, 0x95, 0x8b, 0xb8, 0x05, 0x3c, 0x7e, 0x49, 0xe7, 0xda, 0x27, 0x0f, 0x3e, + 0x78, 0x26, 0x99, 0xda, 0xdf, 0x05, 0x19, 0x3d, 0xa8, 0x5b, 0x1f, 0x2d, 0xd8, 0x54, 0x94, 0x84, + 0x04, 0xe0, 0x83, 0xc4, 0x22, 0xec, 0x7e, 0x50, 0xf3, 0x62, 0xc0, 0xd0, 0x1b, 0x0e, 0x83, 0x8a, + 0x0b, 0xa9, 0xb4, 0x43, 0x12, 0x56, 0x90, 0x4b, 0xb9, 0x3f, 0x85, 0x07, 0xf4, 0x9d, 0xc1, 0x28, + 0xbd, 0x2c, 0xd0, 0x46, 0x35, 0xbe, 0x5a, 0x6a, 0x2f, 0x67, 0x1b, 0xd1, 0x67, 0x3c, 0xa8, 0x47, + 0xec, 0x79, 0xea, 0xb3, 0xfd, 0x59, 0xae, 0x9b, 0x2d, 0x21, 0x73, 0xa4, 0xdd, 0xb4, 0xc8, 0xdc, + 0xef, 0xa6, 0x5b, 0xee, 0xb5, 0x0a, 0x7b, 0xc4, 0x5b, 0x36, 0x77, 0xc7, 0x92, 0xaa, 0x45, 0x9f, + 0xcf, 0xd9, 0xdc, 0x6d, 0x8c, 0x3e, 0xee, 0x5f, 0xbd, 0xea, 0x0c, 0x6c, 0xa7, 0x80, 0xc4, 0xa3, + 0x49, 0x7a, 0x0f, 0xab, 0x7c, 0xfc, 0x5b, 0x3b, 0xa8, 0x4c, 0x3a, 0x33, 0x2f, 0xed, 0x89, 0x48, + 0x5d, 0x3d, 0xe1, 0xd0, 0xba, 0x35, 0xdf, 0xab, 0x99, 0x70, 0xfa, 0x6f, 0x7d, 0x73, 0x68, 0xf1, + 0xa3, 0x47, 0xf4, 0x3e, 0x01, 0xb8, 0x9a, 0xd1, 0x67, 0x2e, 0x47, 0xdb, 0xa8, 0x2c, 0xc1, 0xe7, + 0x0a, 0xe7, 0x07, 0xa4, 0xd5, 0x93, 0xcf, 0x2d, 0x1b, 0x0a, 0x9d, 0xaa, 0x84, 0x5c, 0x10, 0x0a, + 0x55, 0x0e, 0x85, 0x2b, 0xb2, 0x12, 0x66, 0x68, 0x45, 0x05, 0xaa, 0xf4, 0xc8, 0xab, 0x43, 0xb5, + 0xee, 0x36, 0x52, 0x7f, 0x7d, 0x96, 0x1c, 0x65, 0x26, 0xe0, 0xb1, 0xfa, 0x4c, 0x75, 0x45, 0x66, + 0xe4, 0x1f, 0x00, 0x7b, 0x49, 0xd5, 0xef, 0x56, 0x51, 0xa8, 0x8d, 0x82, 0xc8, 0xed, 0x87, 0xab, + 0x27, 0x1c, 0xe9, 0xe6, 0xb2, 0xce, 0xfd, 0xed, 0x57, 0x9a, 0xe8, 0x6b, 0x9e, 0x5a, 0x5f, 0x1d, + 0x85, 0x3c, 0x3e, 0x5a, 0x1c, 0x7a, 0x1e, 0x7a, 0x4d, 0x90, 0x02, 0xbe, 0x08, 0x15, 0xa9, 0xe5, + 0x36, 0x1f, 0x7d, 0x6d, 0x60, 0x5d, 0x94, 0x12, 0xd2, 0xa6, 0x9b, 0xda, 0x4d, 0xfd, 0xf7, 0xc5, + 0x2d, 0xb1, 0x07, 0xf9, 0x2b, 0x55, 0x3a, 0xb5, 0x09, 0xef, 0xd0, 0x35, 0xd0, 0xb6, 0xa1, 0xaf, + 0x40, 0xc3, 0xa1, 0xaf, 0x01, 0x33, 0xa1, 0xd5, 0xdf, 0xab, 0xc9, 0x44, 0xdc, 0x83, 0x78, 0x8e, + 0xa0, 0xc5, 0x23, 0xfd, 0xcf, 0x53, 0x73, 0xcb, 0x3e, 0x3c, 0x05, 0x90, 0xae, 0x68, 0x35, 0x95, + 0xb9, 0xc9, 0xf5, 0xeb, 0x97, 0xdf, 0xf8, 0x88, 0xda, 0x45, 0x6d, 0xf2, 0x1a, 0x43, 0x16, 0x89, + 0xa5, 0x95, 0xc6, 0x4a, 0x01, 0xcf, 0x84, 0x17, 0xd7, 0xc5, 0xa5, 0xc6, 0x0d, 0x31, 0xc0, 0xb8, + 0x07, 0x57, 0x2b, 0x69, 0x77, 0xc7, 0xa2, 0xe8, 0xd7, 0x59, 0xd0, 0x90, 0x16, 0xce, 0x3f, 0xc0, + 0x3e, 0xeb, 0xc3, 0xdd, 0xbb, 0x7a, 0x9a, 0xe9, 0x0a, 0xe4, 0x74, 0xf2, 0x8a, 0x9e, 0x64, 0x19, + 0x4c, 0x1e, 0xff, 0x16, 0xdb, 0x2f, 0x1f, 0x87, 0x74, 0x7a, 0x7c, 0x05, 0x05, 0x1b, 0x9f, 0xa7, + 0x8d, 0x48, 0xbf, 0x31, 0x4e, 0x57, 0x1a, 0x8a, 0xb3, 0xc5, 0xd9, 0xd2, 0xa5, 0xe0, 0xf4, 0xeb, + 0xc5, 0x99, 0x4c, 0x15, 0x8a, 0x29, 0x96, 0x04, 0x2c, 0xe5, 0x8d, 0x7d, 0x2f, 0x0c, 0xb4, 0x49, + 0x31, 0xf6, 0x39, 0x57, 0xde, 0xbc, 0x94, 0xcf, 0x77, 0xf5, 0x59, 0x7c, 0x63, 0xcf, 0x38, 0x29, + 0x79, 0x7d, 0x00, 0x5f, 0xd8, 0x0c, 0x5f, 0xef, 0x93, 0xcf, 0x86, 0x56, 0x91, 0x5a, 0xde, 0x18, + 0x5a, 0x89, 0xe1, 0x95, 0x4c, 0x6d, 0x72, 0x09, 0xfa, 0x95, 0x27, 0xa3, 0x7d, 0xf2, 0xf0, 0xb3, + 0xbc, 0x77, 0xc1, 0x38, 0x87, 0x6b, 0xdd, 0xea, 0xc9, 0xef, 0x3f, 0xa3, 0x9f, 0x6f, 0xe9, 0x31, + 0x9d, 0x7a, 0xf0, 0xf8, 0xba, 0x64, 0x6f, 0x4d, 0x32, 0x59, 0xe9, 0x1f, 0x70, 0x9b, 0x1c, 0x19, + 0xd1, 0x50, 0x7c, 0xa0, 0x74, 0x05, 0x39, 0x8b, 0x99, 0xea, 0x0b, 0xc9, 0x15, 0x79, 0x09, 0x72, + 0x0a, 0x43, 0xd4, 0xc6, 0x27, 0x6c, 0x06, 0xf8, 0x14, 0xdd, 0x03, 0x8e, 0xb9, 0x4e, 0xeb, 0xb1, + 0xfb, 0xb7, 0xf5, 0x1a, 0x9e, 0xc6, 0xcb, 0x75, 0x2f, 0xe6, 0x9c, 0x02, 0x38, 0x6c, 0x4a, 0x53, + 0x7f, 0xb6, 0xbf, 0x90, 0x9c, 0x83, 0x6d, 0xd4, 0xe9, 0x98, 0x1b, 0x19, 0x08, 0x70, 0x5e, 0x07, + 0x44, 0x4a, 0x9b, 0xe1, 0x47, 0xa9, 0x49, 0xf4, 0xc2, 0xa3, 0x46, 0x2f, 0x5c, 0x0c, 0x7a, 0x68, + 0x8f, 0x3e, 0x23, 0x97, 0xc5, 0xf3, 0xaa, 0x30, 0xfa, 0x4f, 0xbb, 0xd0, 0x9e, 0x5e, 0x77, 0xf8, + 0xec, 0xf8, 0xf4, 0xa0, 0x5c, 0xc6, 0x71, 0xe8, 0x3d, 0xdb, 0x45, 0x4f, 0x5d, 0x8a, 0x92, 0x9a, + 0xd1, 0x53, 0x9b, 0xc4, 0x49, 0x6e, 0xf5, 0xc5, 0x3e, 0x5a, 0x18, 0x0b, 0x6d, 0x6d, 0xa3, 0x05, + 0xe8, 0xa9, 0xf7, 0x88, 0x9e, 0x7a, 0x77, 0x71, 0xc8, 0x17, 0xa5, 0x60, 0x71, 0x15, 0x7e, 0x4b, + 0xfd, 0xd2, 0x81, 0x97, 0xc6, 0x5a, 0xc2, 0x7f, 0xd6, 0x04, 0xea, 0x29, 0x42, 0x6e, 0x01, 0xee, + 0x63, 0xa8, 0xd5, 0x82, 0x70, 0xa5, 0xde, 0xc7, 0x56, 0x49, 0x87, 0x93, 0xbe, 0x30, 0x85, 0xd1, + 0xbf, 0x5e, 0x89, 0xac, 0x0f, 0xd7, 0x04, 0x42, 0xe8, 0x59, 0x7c, 0xa6, 0x79, 0xcc, 0x89, 0x52, + 0x41, 0x31, 0x4b, 0x6d, 0xf9, 0xf9, 0xe8, 0x57, 0xab, 0xc8, 0x9e, 0xb9, 0xef, 0xea, 0x7e, 0xd5, + 0x3b, 0xa6, 0x5f, 0xf5, 0x8e, 0xf6, 0x2b, 0x0f, 0xfa, 0x55, 0x69, 0x26, 0xcb, 0xa8, 0xa3, 0xfd, + 0x6a, 0x08, 0xfd, 0x2a, 0x34, 0x27, 0xdd, 0xab, 0x22, 0x7a, 0x7b, 0xa0, 0xe4, 0x3a, 0x2f, 0x53, + 0xfe, 0x73, 0xd1, 0x9a, 0x84, 0x0d, 0xf2, 0x61, 0x7e, 0x99, 0x8c, 0xd6, 0x6b, 0x79, 0x2b, 0x7c, + 0xaa, 0x1a, 0xbd, 0x28, 0x1c, 0xaa, 0x7e, 0xab, 0x32, 0x3a, 0x67, 0xb4, 0x17, 0x31, 0xf5, 0x0e, + 0xee, 0x20, 0x9e, 0x01, 0x2a, 0x1e, 0x7a, 0xd9, 0x3f, 0x31, 0x32, 0x00, 0x28, 0x8b, 0xaa, 0x3e, + 0xb6, 0x70, 0x0f, 0x0a, 0x28, 0xd9, 0xea, 0xdd, 0xa1, 0xea, 0xfc, 0x9b, 0x66, 0x57, 0x93, 0xd7, + 0x0b, 0x6a, 0x02, 0xf4, 0xe5, 0x78, 0x9f, 0xfa, 0x56, 0x1b, 0x79, 0xad, 0xd5, 0xa4, 0xdd, 0x2b, + 0x97, 0x95, 0x93, 0x96, 0xff, 0x72, 0xec, 0x7e, 0x35, 0x0b, 0x7d, 0xab, 0x8d, 0x8a, 0xa9, 0xfc, + 0xd1, 0x23, 0x7f, 0xf7, 0x11, 0xd5, 0xb5, 0x1c, 0xd6, 0x7b, 0xc1, 0xbb, 0x0f, 0xfe, 0xd3, 0xf3, + 0x54, 0x8c, 0x9e, 0xd0, 0x00, 0x78, 0xb2, 0x1a, 0xc3, 0xc2, 0x76, 0x40, 0xa7, 0xfd, 0x00, 0x68, + 0x3f, 0xd0, 0x7a, 0xd8, 0x1b, 0x8c, 0xcd, 0x41, 0xda, 0x09, 0x7c, 0x22, 0xcd, 0xfc, 0x43, 0x91, + 0xde, 0xc8, 0xa1, 0x70, 0xef, 0xde, 0x75, 0xcd, 0xa4, 0x05, 0x95, 0xec, 0x31, 0xd4, 0xff, 0xd0, + 0x90, 0xa0, 0xfe, 0x21, 0x50, 0xff, 0x90, 0x4e, 0xfd, 0x3c, 0x0f, 0xd1, 0x0c, 0xea, 0xdf, 0x69, + 0xd0, 0xfe, 0xe2, 0x71, 0x94, 0x5f, 0x3a, 0x86, 0xf2, 0x4b, 0x9b, 0x79, 0x1e, 0x23, 0x38, 0x8e, + 0xee, 0x8b, 0x5e, 0x1f, 0xb0, 0xd9, 0x42, 0x19, 0xaa, 0xa7, 0x31, 0x24, 0x28, 0xdd, 0x0c, 0x1d, + 0x8e, 0xb5, 0x78, 0xd6, 0xeb, 0xb2, 0xa2, 0x19, 0xb8, 0x4c, 0xdf, 0x78, 0x49, 0x35, 0x37, 0xbc, + 0x84, 0xb0, 0x0c, 0xdb, 0x4b, 0x79, 0x90, 0x02, 0x40, 0xd9, 0x43, 0x65, 0x3a, 0x65, 0x2f, 0xb8, + 0x8a, 0xb2, 0x8b, 0xda, 0x09, 0x54, 0x1b, 0x04, 0x5d, 0xdf, 0x20, 0xe8, 0xda, 0x04, 0xaa, 0x2e, + 0xc5, 0x78, 0x56, 0x06, 0x6a, 0x75, 0x38, 0x10, 0x3f, 0x3a, 0x0e, 0x1a, 0x34, 0xdd, 0x34, 0x86, + 0xa6, 0xeb, 0xc6, 0xd0, 0x74, 0x31, 0xcf, 0xe4, 0x7f, 0xba, 0x43, 0x68, 0x3c, 0x2d, 0x64, 0x29, + 0x9a, 0x81, 0xd1, 0xbc, 0x99, 0x8a, 0x85, 0x25, 0xc0, 0x1c, 0xc3, 0x12, 0x80, 0x32, 0xb6, 0x18, + 0x67, 0xcc, 0xdb, 0x0b, 0x31, 0xd2, 0x7e, 0xba, 0xdf, 0x51, 0xc7, 0x2b, 0x47, 0xec, 0x09, 0x14, + 0xda, 0xc8, 0x71, 0xe1, 0x05, 0xa8, 0xde, 0xe6, 0xa5, 0x02, 0x3e, 0xdd, 0x82, 0x4f, 0xf7, 0x8e, + 0x37, 0x40, 0xff, 0xe1, 0xaf, 0x1f, 0x73, 0xeb, 0xde, 0x4c, 0xc5, 0xdb, 0x95, 0x1f, 0xf8, 0x9b, + 0xc9, 0x55, 0x0e, 0xdd, 0xc3, 0x3f, 0x03, 0x3a, 0xd6, 0x40, 0x60, 0x86, 0xf6, 0x76, 0xe4, 0x40, + 0xf1, 0x0c, 0x6d, 0x38, 0x72, 0xb0, 0xb8, 0x45, 0x3b, 0xe5, 0xa8, 0x03, 0xd6, 0xfb, 0x8e, 0x3d, + 0xe4, 0xb2, 0xbc, 0x79, 0xbf, 0x48, 0xff, 0x1a, 0xca, 0x91, 0xf5, 0x2f, 0x4b, 0x91, 0x0a, 0x23, + 0x1b, 0x74, 0x18, 0xa4, 0x3f, 0x85, 0x9e, 0xd3, 0xa2, 0xbd, 0x5d, 0x1c, 0x2e, 0x8c, 0x7e, 0x3a, + 0x50, 0x1c, 0xc2, 0xef, 0x21, 0xbf, 0x7c, 0xe0, 0xe0, 0xf8, 0xfe, 0xa2, 0x5b, 0x20, 0x4a, 0x5c, + 0xca, 0x09, 0xd1, 0x57, 0xbc, 0x54, 0xba, 0x52, 0x7a, 0x25, 0x59, 0x58, 0xf5, 0xe9, 0xe1, 0x54, + 0x5f, 0xf1, 0x87, 0x0b, 0x23, 0x9f, 0xf2, 0x29, 0x7b, 0x31, 0x07, 0xea, 0x13, 0x7b, 0x96, 0xac, + 0xb6, 0x2f, 0xe5, 0x17, 0x92, 0xb2, 0x92, 0xf2, 0xf4, 0xbe, 0x52, 0x68, 0xf4, 0x15, 0xdc, 0x37, + 0xaf, 0x1d, 0xd3, 0x57, 0xd6, 0x8a, 0x1d, 0xa0, 0x2b, 0xc8, 0xfd, 0xc6, 0x61, 0xd7, 0xcc, 0x3e, + 0x0a, 0x54, 0xb1, 0xf6, 0xe2, 0x5d, 0x41, 0xfe, 0xfd, 0x7a, 0x5f, 0x69, 0x3f, 0x4b, 0xa1, 0x6a, + 0x5d, 0x4e, 0x7a, 0xf3, 0xd9, 0x4f, 0xf7, 0xa3, 0xcc, 0xa3, 0x2b, 0xa9, 0x64, 0x22, 0xee, 0x83, + 0x85, 0xc1, 0x4f, 0xf7, 0x14, 0xce, 0xf9, 0x74, 0x17, 0xcb, 0x6b, 0xdc, 0x67, 0xd0, 0xb2, 0xf9, + 0x15, 0xcc, 0xf1, 0xda, 0xde, 0xae, 0x3a, 0x35, 0x07, 0x7d, 0xa6, 0x2a, 0x34, 0x27, 0x30, 0x67, + 0xe8, 0x40, 0xb4, 0x3a, 0xc1, 0x9e, 0x97, 0x85, 0xed, 0xb3, 0xb7, 0xe5, 0xd3, 0xa3, 0x83, 0xaf, + 0x56, 0x7e, 0x9c, 0x44, 0x0f, 0x2c, 0x6c, 0xf9, 0x74, 0xcf, 0xa7, 0xcf, 0xa9, 0xf3, 0x9d, 0xb8, + 0xc7, 0x9e, 0xfd, 0x74, 0xcf, 0x97, 0xef, 0xfe, 0xf4, 0x67, 0x71, 0x39, 0x5a, 0x1d, 0x37, 0x4f, + 0x79, 0xf6, 0xd3, 0x9f, 0x6d, 0xa7, 0xd8, 0x06, 0x35, 0xbb, 0xb0, 0xfe, 0xd3, 0x3d, 0xe8, 0x6b, + 0x33, 0x3e, 0x7d, 0x0e, 0xb8, 0xd9, 0xf9, 0xe3, 0x0f, 0x3e, 0x1d, 0x6c, 0xe1, 0x72, 0x9f, 0xc3, + 0x37, 0x3b, 0x85, 0xc7, 0x1d, 0xd7, 0xbb, 0x7d, 0xbf, 0x19, 0x78, 0xfd, 0x83, 0x4f, 0x8f, 0x89, + 0x5e, 0x52, 0x25, 0x7c, 0xff, 0x4b, 0x8d, 0x7d, 0xb1, 0x39, 0xbb, 0xe7, 0xb4, 0x1e, 0x44, 0x09, + 0xcf, 0x21, 0xef, 0xea, 0x35, 0x54, 0x91, 0x19, 0x7d, 0xf6, 0xd3, 0xc3, 0xf3, 0x5f, 0x8a, 0xac, + 0x8d, 0xbc, 0x14, 0x5e, 0xbb, 0xe7, 0x3e, 0xf4, 0x92, 0x7a, 0xe4, 0xba, 0xa7, 0x68, 0xc6, 0xa7, + 0xbb, 0x40, 0x11, 0xde, 0x7e, 0x63, 0xa4, 0x18, 0x12, 0x3b, 0x5d, 0xd0, 0x4f, 0xec, 0x43, 0xcd, + 0xe8, 0x2b, 0xcf, 0x92, 0x2d, 0x8a, 0x8b, 0xfb, 0x8a, 0xb1, 0x62, 0x75, 0x81, 0x75, 0xe6, 0x6b, + 0xce, 0xb3, 0xb8, 0xa8, 0xdb, 0xe5, 0x61, 0x14, 0x39, 0x14, 0x7d, 0x9a, 0xca, 0xd9, 0x5b, 0xf4, + 0xa8, 0xf7, 0xa2, 0x95, 0xd2, 0x1e, 0xd6, 0x9d, 0x77, 0x1a, 0x9a, 0xc4, 0x0f, 0x79, 0xf7, 0xad, + 0xa0, 0xa9, 0x60, 0x87, 0x65, 0x57, 0x12, 0xda, 0xd0, 0x66, 0x40, 0x50, 0xee, 0x42, 0xec, 0xbc, + 0x0f, 0x3e, 0x3d, 0xde, 0x49, 0x5d, 0xa7, 0x4f, 0x3c, 0xe8, 0xb9, 0xe1, 0xae, 0x75, 0xea, 0x42, + 0xa5, 0xaa, 0x69, 0xad, 0xdf, 0x1e, 0xa0, 0xe1, 0x5a, 0xa9, 0x92, 0x26, 0xbf, 0x34, 0x32, 0x65, + 0xca, 0xac, 0x4a, 0xed, 0x74, 0x80, 0xce, 0x8e, 0x7d, 0x3f, 0x03, 0x2d, 0x75, 0xf2, 0x01, 0x7e, + 0x86, 0x86, 0x2c, 0x34, 0x7a, 0xa1, 0x77, 0x38, 0xe6, 0x0c, 0x3e, 0xa5, 0x7b, 0x8d, 0x28, 0xac, + 0xd1, 0xe7, 0x42, 0xf8, 0x14, 0x56, 0x5d, 0xf3, 0xf0, 0x0e, 0xb0, 0x7f, 0x9e, 0x58, 0x0f, 0x97, + 0x6b, 0x68, 0x8e, 0xdd, 0xad, 0x5b, 0xe6, 0xa0, 0x74, 0x5e, 0x87, 0x64, 0xda, 0x46, 0xa8, 0x97, + 0x7d, 0xff, 0x96, 0x80, 0xc6, 0x03, 0xa0, 0x55, 0x5e, 0x25, 0x11, 0x1e, 0xbd, 0x74, 0x8f, 0xb7, + 0x17, 0x5c, 0x2d, 0x9f, 0x1e, 0x8a, 0x7c, 0xbb, 0x4f, 0xc3, 0x7d, 0x20, 0xf2, 0xed, 0xed, 0x1a, + 0xaf, 0x50, 0xb2, 0x17, 0x63, 0x5f, 0x96, 0x3e, 0x8b, 0x52, 0x96, 0x35, 0x76, 0x77, 0x3b, 0x7a, + 0xa7, 0x17, 0xf9, 0x39, 0x07, 0x5b, 0xb4, 0xe3, 0x8e, 0x3a, 0xf4, 0x17, 0xaf, 0xe8, 0xbd, 0x73, + 0x44, 0xef, 0x85, 0x86, 0xfe, 0x69, 0x72, 0xd4, 0xa7, 0xba, 0xcb, 0xe2, 0x24, 0x77, 0xb6, 0x98, + 0x6d, 0xd8, 0x02, 0xc9, 0xbb, 0xd8, 0xf0, 0x06, 0xe5, 0x19, 0xc5, 0xe7, 0x6a, 0x79, 0x5f, 0x32, + 0x9e, 0xcf, 0x2b, 0x6e, 0x8c, 0x49, 0x81, 0xc7, 0xec, 0x5d, 0xc9, 0x26, 0xc8, 0x64, 0xfe, 0x60, + 0xac, 0x8f, 0xa9, 0x2c, 0x60, 0x69, 0x27, 0xe3, 0x3b, 0x3b, 0x7f, 0xb5, 0x7a, 0xf2, 0xc0, 0xba, + 0xc6, 0x64, 0x7e, 0x39, 0x99, 0xf6, 0x89, 0x74, 0xbc, 0xbb, 0x26, 0x5a, 0x99, 0xc8, 0xf6, 0xc9, + 0x3e, 0x49, 0x9f, 0xb1, 0xbe, 0xf4, 0xb1, 0x3a, 0x55, 0x9c, 0x08, 0x94, 0x0e, 0xf9, 0x74, 0xb7, + 0x6a, 0x1d, 0x7d, 0xfb, 0x5d, 0x9d, 0xb1, 0xca, 0x51, 0xae, 0xef, 0x33, 0x73, 0xe9, 0x70, 0x02, + 0x3e, 0xd4, 0xe1, 0x48, 0x80, 0x8a, 0x93, 0xa8, 0x5f, 0xee, 0xed, 0x41, 0x92, 0x20, 0x23, 0xe7, + 0x87, 0xc3, 0xb7, 0x87, 0xc9, 0xdc, 0x18, 0xdc, 0xdc, 0x4c, 0xf9, 0x08, 0xcb, 0x12, 0xd4, 0x71, + 0x73, 0x3c, 0x1b, 0x12, 0xb6, 0x3f, 0x6e, 0xc1, 0xaf, 0x17, 0xb5, 0x3b, 0x1a, 0xaa, 0xcc, 0xf1, + 0xd2, 0x2d, 0xb1, 0xca, 0x50, 0x10, 0x3d, 0x5a, 0xd9, 0x12, 0x34, 0xec, 0x1a, 0x2d, 0x51, 0xf6, + 0xc9, 0xb3, 0x57, 0xa9, 0x3a, 0xb6, 0x36, 0xc4, 0xe3, 0xd1, 0x76, 0xbb, 0x3d, 0x0f, 0xf1, 0x7b, + 0xe4, 0x45, 0x39, 0x7b, 0x91, 0x7e, 0x91, 0x55, 0x0a, 0x93, 0xc6, 0xba, 0xfd, 0xf6, 0x2a, 0x55, + 0x2a, 0x35, 0x05, 0xc2, 0x73, 0xff, 0x65, 0x3b, 0x79, 0x9b, 0xc9, 0x3f, 0xb8, 0xf2, 0x38, 0xf5, + 0x23, 0x8f, 0x66, 0x19, 0x65, 0xca, 0x78, 0xb2, 0xb4, 0xf1, 0x93, 0xe5, 0x8d, 0x57, 0x11, 0xeb, + 0xfe, 0xcd, 0xab, 0xae, 0x92, 0xed, 0xf4, 0x66, 0x70, 0x8f, 0x9e, 0xa2, 0x0a, 0x5a, 0x91, 0x9e, + 0xa2, 0x0a, 0x5a, 0x47, 0x33, 0x79, 0x07, 0xbf, 0x75, 0xfd, 0xaf, 0x07, 0x31, 0x66, 0x5c, 0x2f, + 0x7c, 0x77, 0x1f, 0x34, 0xa0, 0x78, 0x23, 0xde, 0xd5, 0x2c, 0x86, 0x5c, 0xd8, 0xb1, 0xb1, 0xef, + 0x2e, 0x13, 0x46, 0x14, 0x0b, 0xb0, 0x51, 0xf0, 0xfa, 0x72, 0xf1, 0x2e, 0xe1, 0xdd, 0x89, 0xf7, + 0xfc, 0x53, 0x11, 0x0e, 0x11, 0x94, 0x95, 0x8b, 0x11, 0x07, 0x21, 0x9b, 0xbb, 0x15, 0x5a, 0x8e, + 0x91, 0xe6, 0x54, 0xf2, 0x61, 0xe4, 0xa0, 0x5b, 0x87, 0x8e, 0x9e, 0xbb, 0xe2, 0xa9, 0xf5, 0x90, + 0x3b, 0x5a, 0x64, 0x62, 0xcd, 0xd9, 0x9d, 0xcd, 0x5e, 0xa8, 0x05, 0x55, 0x0c, 0x09, 0xbf, 0xd4, + 0xb9, 0xfd, 0x6b, 0x17, 0x11, 0xbd, 0xc2, 0x25, 0x17, 0x4f, 0x07, 0xc6, 0x43, 0xb7, 0x87, 0xc8, + 0xcc, 0xd8, 0xe3, 0x38, 0x60, 0x7e, 0x99, 0x8e, 0xf9, 0x50, 0x2c, 0x30, 0x5d, 0x9c, 0xec, 0x2e, + 0x09, 0xcd, 0x29, 0x6f, 0xf7, 0x0a, 0x32, 0xb7, 0x10, 0x3d, 0xd4, 0xbf, 0x82, 0xb2, 0x5a, 0x21, + 0xf3, 0xed, 0x82, 0xbe, 0xb7, 0x68, 0x8d, 0xcb, 0xd2, 0x49, 0x8e, 0x79, 0x4a, 0x55, 0xbb, 0x09, + 0x72, 0x8d, 0x9f, 0x2d, 0x1e, 0x30, 0xda, 0x34, 0x61, 0xb4, 0xf2, 0x03, 0x56, 0x39, 0x60, 0x19, + 0xc2, 0xf8, 0xdc, 0x5f, 0xd9, 0x2c, 0x05, 0x28, 0xd0, 0x8c, 0x12, 0x2c, 0x18, 0x85, 0x4a, 0xfb, + 0x6b, 0x9b, 0x25, 0xff, 0xc4, 0x40, 0x70, 0xcb, 0x81, 0xd8, 0x86, 0x1f, 0x83, 0xbe, 0x17, 0x15, + 0x0f, 0x1e, 0xd1, 0xbd, 0x59, 0x22, 0x4f, 0xb9, 0xc5, 0x85, 0x12, 0x2c, 0xad, 0x4a, 0x17, 0x95, + 0xdf, 0xe8, 0xac, 0x09, 0x44, 0x7e, 0x7c, 0xa4, 0x35, 0xf7, 0xcd, 0xfb, 0x4a, 0xfb, 0xee, 0xac, + 0x24, 0xf9, 0x4e, 0x60, 0x2f, 0xd6, 0xb3, 0xaf, 0x27, 0xbe, 0x51, 0x2d, 0x88, 0xf6, 0xc4, 0xed, + 0xa1, 0xa6, 0x50, 0x33, 0x34, 0x4d, 0xf4, 0x5c, 0x5c, 0x66, 0x5c, 0x16, 0x5c, 0x59, 0x63, 0xce, + 0x92, 0xb3, 0x09, 0x4f, 0xd8, 0xa5, 0x2e, 0xe2, 0xd3, 0xdd, 0xc5, 0x2e, 0xa8, 0x9b, 0xe3, 0xd6, + 0xe8, 0x4e, 0xd0, 0x92, 0x19, 0xbf, 0xde, 0x44, 0x5d, 0xbe, 0x87, 0x6e, 0x29, 0xf0, 0x90, 0x12, + 0x0a, 0xdb, 0xcd, 0xa0, 0xaa, 0xcc, 0x58, 0xe5, 0x96, 0x30, 0x68, 0xa7, 0x28, 0xd7, 0xbe, 0x5f, + 0x5a, 0x64, 0xdd, 0x27, 0x2d, 0xb1, 0x48, 0x21, 0xd2, 0xb6, 0x86, 0x55, 0xa9, 0xd8, 0x54, 0x12, + 0xfa, 0xc7, 0x5f, 0x0c, 0x2e, 0xa3, 0xa0, 0x7b, 0x39, 0x28, 0xa6, 0x73, 0x2f, 0xf1, 0x9e, 0x09, + 0xbe, 0x37, 0xae, 0x8d, 0xae, 0x8d, 0xbf, 0xa6, 0x66, 0x01, 0x7f, 0xc1, 0xc1, 0xe5, 0x64, 0x3f, + 0xf0, 0x12, 0xef, 0x0b, 0x4c, 0xfb, 0x89, 0x8d, 0x38, 0x29, 0x3d, 0x77, 0x58, 0x00, 0x8e, 0x31, + 0x35, 0x91, 0x17, 0xe5, 0x53, 0xe9, 0x79, 0x8f, 0x4a, 0x01, 0xcf, 0x76, 0xdc, 0xc2, 0xab, 0x85, + 0x36, 0xf5, 0xee, 0x6b, 0xcf, 0xec, 0x60, 0x6f, 0x0d, 0x89, 0x90, 0xb0, 0x0f, 0x0a, 0xce, 0x0c, + 0xd1, 0x54, 0xd6, 0xd2, 0xfd, 0xa1, 0x94, 0x6f, 0x94, 0xc1, 0xe4, 0xd5, 0xe9, 0xd9, 0xab, 0xc0, + 0x68, 0x8e, 0xe2, 0xfc, 0x20, 0x2e, 0x89, 0x77, 0xb5, 0xc9, 0xfa, 0xd9, 0x74, 0x75, 0xf2, 0xa8, + 0x1f, 0xd0, 0xd2, 0x51, 0xfb, 0x8f, 0x16, 0x52, 0x4a, 0x66, 0x50, 0x4e, 0xf1, 0x0c, 0xca, 0x0b, + 0xcc, 0xa0, 0x7c, 0xff, 0x0c, 0x9a, 0x2a, 0x66, 0x88, 0xcd, 0xce, 0xe5, 0x6c, 0xfd, 0x5d, 0xfd, + 0x9e, 0xe4, 0xc4, 0xd3, 0x54, 0x21, 0x05, 0x16, 0xb9, 0xa7, 0xcb, 0x77, 0xc7, 0x7a, 0x85, 0xe7, + 0xc6, 0x88, 0xb0, 0x24, 0xb8, 0xc4, 0x1e, 0x40, 0xd9, 0xcb, 0x37, 0xfb, 0xf7, 0x56, 0x96, 0x1b, + 0x9e, 0x1b, 0xd9, 0x07, 0x43, 0xbe, 0xea, 0x5e, 0xf5, 0xe7, 0xc7, 0x9f, 0xd2, 0xfd, 0x3c, 0xa6, + 0xad, 0x20, 0x0c, 0x5f, 0x8f, 0xc6, 0x2c, 0xf3, 0x85, 0xb1, 0xb6, 0xe1, 0x72, 0x41, 0xea, 0x94, + 0x08, 0xbf, 0xe4, 0xcb, 0x16, 0xa7, 0x57, 0x4a, 0xb8, 0x4c, 0xb8, 0xf8, 0xfc, 0x35, 0xb7, 0xd8, + 0xd7, 0xb4, 0x4f, 0x13, 0x67, 0x7f, 0xeb, 0xab, 0x5d, 0xbc, 0x56, 0xa9, 0x88, 0xd9, 0x82, 0xb9, + 0x08, 0x2b, 0x9c, 0xd8, 0x49, 0xec, 0x8f, 0x51, 0x56, 0x14, 0x9b, 0x59, 0xcc, 0xb1, 0xf1, 0x1e, + 0x7e, 0x5a, 0xb7, 0x88, 0x64, 0xeb, 0x60, 0xd2, 0x3f, 0xcb, 0x62, 0xae, 0xff, 0x94, 0x24, 0xd9, + 0xf8, 0x27, 0x85, 0xa5, 0x72, 0x28, 0xc4, 0x8b, 0xf5, 0x37, 0x93, 0x35, 0xe3, 0xa1, 0x8c, 0xc7, + 0x33, 0xb6, 0x99, 0xe6, 0x9b, 0xea, 0x4c, 0xed, 0xa6, 0xb8, 0xa9, 0xdc, 0xe4, 0x92, 0x36, 0x4a, + 0x5b, 0xa5, 0x3a, 0xa9, 0x53, 0x7a, 0x5c, 0x7a, 0xd2, 0x94, 0x97, 0xf1, 0xc3, 0x8c, 0x57, 0x32, + 0x5e, 0x94, 0xa5, 0x8c, 0xd3, 0x19, 0xc7, 0x32, 0x4e, 0x64, 0xac, 0xcc, 0x88, 0x67, 0xb4, 0x9a, + 0xee, 0x37, 0xfd, 0xd0, 0x74, 0xdc, 0x34, 0x60, 0x4a, 0x9a, 0xb6, 0x9b, 0x5e, 0x33, 0xed, 0x31, + 0x7d, 0x62, 0x3a, 0x63, 0xfa, 0x50, 0xca, 0x96, 0xec, 0xc8, 0xdf, 0x85, 0xab, 0x58, 0x7a, 0x46, + 0xda, 0x2d, 0x1d, 0x96, 0x5e, 0x94, 0xe9, 0xff, 0x57, 0xfe, 0x49, 0xa7, 0xa5, 0x2b, 0x19, 0xd6, + 0x0c, 0x57, 0x46, 0x71, 0x46, 0xfd, 0x34, 0x5e, 0xe9, 0xce, 0x55, 0x49, 0xfa, 0x50, 0xd9, 0xcf, + 0xe7, 0xda, 0xdf, 0xb2, 0x9c, 0x72, 0xd9, 0x06, 0x4d, 0x7a, 0x9b, 0x67, 0x87, 0xa7, 0xd5, 0x8a, + 0xb3, 0x59, 0x72, 0x85, 0xc6, 0xa2, 0x22, 0xf4, 0xb0, 0x48, 0x95, 0x8b, 0x54, 0x16, 0x91, 0x6a, + 0xaf, 0xf8, 0xde, 0x8e, 0xa7, 0xe7, 0x44, 0x8c, 0xed, 0x16, 0xf6, 0x04, 0xc9, 0x31, 0x3f, 0x10, + 0x31, 0x05, 0x78, 0xda, 0x2a, 0x62, 0x72, 0x10, 0x53, 0x20, 0x62, 0x7a, 0x6f, 0x5f, 0x8a, 0x11, + 0xc6, 0x8f, 0xa7, 0xd5, 0x22, 0xc6, 0xa3, 0x5b, 0x66, 0xab, 0x79, 0x22, 0x3c, 0x80, 0xf0, 0x45, + 0x22, 0xbc, 0x50, 0x84, 0x07, 0x78, 0xb6, 0x0e, 0x61, 0xf5, 0x22, 0xb6, 0x08, 0x4f, 0x61, 0x11, + 0x3b, 0x43, 0xc4, 0x16, 0xa9, 0xc3, 0x22, 0xdc, 0xcb, 0xde, 0x91, 0x45, 0xb8, 0x57, 0x84, 0x7b, + 0xd5, 0xc3, 0x94, 0xc3, 0xfa, 0xb8, 0x94, 0x27, 0xe5, 0x68, 0x7f, 0x8f, 0x7b, 0xb6, 0x25, 0x87, + 0xcf, 0xb9, 0x15, 0x69, 0x7c, 0x6c, 0x33, 0x2d, 0x9e, 0xfc, 0xea, 0xd4, 0x9b, 0x96, 0xd2, 0x04, + 0x9a, 0x82, 0x90, 0xf3, 0x22, 0x64, 0xa6, 0xd8, 0x6f, 0x37, 0x45, 0xed, 0x13, 0x6f, 0xb7, 0xf1, + 0x3c, 0x16, 0xe2, 0x06, 0xc5, 0xdb, 0xed, 0xea, 0x05, 0xe4, 0xca, 0xef, 0x03, 0xc8, 0xf5, 0x53, + 0xde, 0xdd, 0x8a, 0x5c, 0x25, 0x23, 0xd7, 0x4c, 0xbc, 0x37, 0x89, 0x27, 0x59, 0x94, 0x6e, 0xc1, + 0xfb, 0x76, 0xa4, 0xfb, 0x37, 0xdc, 0x37, 0x23, 0x5d, 0x86, 0x91, 0x6e, 0x02, 0xef, 0x7a, 0x17, + 0x4f, 0x66, 0xf5, 0x09, 0x71, 0x27, 0x75, 0xbb, 0xb8, 0x4b, 0xea, 0x66, 0x71, 0xb7, 0x18, 0xa5, + 0x67, 0xa9, 0x49, 0x71, 0xb2, 0x0b, 0x99, 0x1a, 0x88, 0x7d, 0x84, 0xde, 0x88, 0xa7, 0x1a, 0xc9, + 0xa3, 0x5d, 0x11, 0x4f, 0xe5, 0xc2, 0x03, 0xcd, 0x8d, 0x46, 0xae, 0xa5, 0x18, 0xf1, 0xde, 0x14, + 0x4f, 0x65, 0x2a, 0x69, 0xd1, 0xa8, 0xf0, 0x7b, 0x88, 0xb4, 0x9f, 0x89, 0xb4, 0x36, 0xe2, 0xbd, + 0x88, 0xfc, 0x24, 0x76, 0xb9, 0x08, 0x8f, 0xa3, 0x37, 0x7e, 0x63, 0x40, 0xad, 0xd7, 0xd3, 0x21, + 0x56, 0xe6, 0x58, 0x3a, 0x8b, 0x2f, 0x3e, 0x15, 0x4f, 0x6f, 0x1b, 0xe9, 0xf0, 0xd5, 0xfc, 0x01, + 0xd5, 0x95, 0x4e, 0x67, 0x11, 0xb1, 0x03, 0x48, 0xf7, 0x6f, 0xe2, 0x69, 0x8f, 0x91, 0x2e, 0x83, + 0xd3, 0xa5, 0x76, 0x98, 0xb2, 0xf7, 0x66, 0x60, 0x40, 0xe1, 0xf5, 0x51, 0x60, 0xe0, 0x1d, 0x3e, + 0xcd, 0x03, 0x18, 0xc8, 0x4c, 0x58, 0x04, 0x84, 0x4e, 0xd5, 0x23, 0xee, 0xd3, 0x54, 0xba, 0xf2, + 0x84, 0x4f, 0xa7, 0xa0, 0x66, 0xa4, 0xb7, 0xa9, 0x71, 0xa4, 0xfe, 0x48, 0x55, 0x91, 0x56, 0x4e, + 0x58, 0x45, 0x1a, 0xb6, 0x44, 0xa5, 0xcf, 0x46, 0xc4, 0xf3, 0x0d, 0x48, 0xdf, 0x2e, 0xe8, 0x4a, + 0x51, 0xcb, 0x45, 0xc8, 0x54, 0x50, 0x95, 0x02, 0x0c, 0x15, 0x89, 0x50, 0xa7, 0xea, 0xd2, 0x3d, + 0xd4, 0xa8, 0x53, 0xdb, 0xb5, 0xfe, 0x9d, 0xe4, 0xd4, 0x77, 0x04, 0x0b, 0x4e, 0xe0, 0x50, 0x92, + 0x48, 0xeb, 0x64, 0x4e, 0xd8, 0x69, 0x52, 0xe6, 0x19, 0x33, 0x7f, 0x83, 0x8a, 0x98, 0xa5, 0xfd, + 0x74, 0x48, 0x8c, 0x40, 0x52, 0xe8, 0x11, 0x31, 0x76, 0xc8, 0xc6, 0x7a, 0xfb, 0x77, 0x69, 0xd8, + 0x65, 0x16, 0xbf, 0x93, 0xc7, 0x9e, 0xe7, 0xc3, 0xe3, 0xac, 0xb0, 0x27, 0x19, 0x67, 0x73, 0x08, + 0x7d, 0x36, 0x77, 0xbc, 0xed, 0xe0, 0xa8, 0x8d, 0x5e, 0xe5, 0x39, 0x1a, 0xa8, 0xfa, 0x88, 0x46, + 0x7d, 0x4f, 0x65, 0x5d, 0x65, 0x57, 0x38, 0x1a, 0x23, 0x8f, 0x5a, 0xeb, 0xb1, 0x4d, 0x4a, 0xea, + 0x8c, 0x2c, 0x9f, 0x04, 0x6d, 0x71, 0x82, 0xc5, 0x04, 0x1a, 0xce, 0x16, 0xa7, 0x52, 0x4f, 0xe8, + 0x0c, 0x0d, 0xb0, 0xbc, 0xf3, 0x24, 0x3f, 0xbf, 0x60, 0x0a, 0x1f, 0xe0, 0x7d, 0xf8, 0x9d, 0x94, + 0xeb, 0xe6, 0xd3, 0xcc, 0x73, 0xa6, 0x93, 0x59, 0xcc, 0xff, 0x58, 0xfd, 0xe5, 0xdf, 0xfb, 0x54, + 0xf8, 0x9a, 0xb6, 0x61, 0x84, 0x2a, 0xff, 0x6f, 0x1a, 0x3f, 0xc7, 0x65, 0x84, 0x6a, 0x88, 0x37, + 0x25, 0xac, 0x7c, 0x36, 0x61, 0xdc, 0x26, 0x05, 0x41, 0xa5, 0x59, 0xe2, 0x9c, 0x42, 0x59, 0x0a, + 0x7e, 0xa6, 0x85, 0x0f, 0xc6, 0xb3, 0x90, 0x63, 0x36, 0xc2, 0x3f, 0x52, 0x2d, 0xe1, 0x03, 0x71, + 0x84, 0x7e, 0xaa, 0x15, 0x43, 0xd2, 0x0e, 0x2c, 0xe3, 0x31, 0x68, 0xf3, 0xab, 0xfd, 0xe2, 0x74, + 0x5e, 0x87, 0x25, 0xdc, 0xad, 0x54, 0x06, 0x2c, 0xd6, 0x4a, 0x93, 0xb6, 0xc8, 0xae, 0xcf, 0xaa, + 0xed, 0xae, 0x5d, 0x2c, 0x7f, 0x54, 0xab, 0x4a, 0xef, 0xd7, 0xf6, 0x57, 0xb6, 0xc8, 0x9b, 0xf9, + 0xcc, 0xe9, 0xa0, 0xbe, 0xd6, 0xca, 0xf2, 0x5f, 0x20, 0x58, 0x1a, 0xfa, 0xe9, 0xab, 0x2d, 0xee, + 0x92, 0xca, 0xb2, 0xaa, 0x9f, 0xfd, 0xa2, 0x45, 0xd1, 0x3d, 0xf3, 0x86, 0xfe, 0x56, 0xf7, 0xa2, + 0xef, 0x9b, 0xc8, 0x5e, 0x21, 0x75, 0x2b, 0xb4, 0xb2, 0x8d, 0x6c, 0x1d, 0x9a, 0x92, 0x6d, 0xd8, + 0xf6, 0xd6, 0x18, 0xab, 0x0a, 0x94, 0xe9, 0x72, 0x8d, 0x58, 0xad, 0xbc, 0x38, 0xab, 0x85, 0xf2, + 0x30, 0x9a, 0xb4, 0x50, 0xbe, 0x76, 0xb9, 0x10, 0xa3, 0xd9, 0xf5, 0x76, 0x1c, 0xb5, 0x93, 0x61, + 0x4b, 0x27, 0xfc, 0x43, 0x39, 0x6b, 0x4b, 0x82, 0xa5, 0x95, 0x2c, 0x03, 0x0b, 0x2c, 0x7e, 0x49, + 0xe8, 0x16, 0x9e, 0xb4, 0x6d, 0x98, 0xf2, 0x87, 0x2c, 0xcd, 0x74, 0x78, 0x7d, 0x14, 0x59, 0xad, + 0xb5, 0xfa, 0x52, 0x6b, 0xd5, 0x86, 0x7d, 0xe1, 0xa8, 0x07, 0x28, 0x61, 0xab, 0xe1, 0x48, 0xd7, + 0x8d, 0xf7, 0x19, 0xe0, 0x9b, 0x0e, 0xdb, 0xb1, 0xee, 0xad, 0xc9, 0xf6, 0x0b, 0x03, 0x3d, 0x6c, + 0x4d, 0x32, 0xbe, 0x96, 0x61, 0xeb, 0x55, 0x36, 0x76, 0x1f, 0xea, 0x61, 0xec, 0x33, 0x80, 0xf7, + 0x7d, 0x29, 0x16, 0xc3, 0x2a, 0x7d, 0x51, 0xda, 0x26, 0x7d, 0x41, 0xa8, 0x8d, 0xec, 0xb8, 0xf2, + 0xd3, 0x3b, 0xdc, 0x9f, 0x27, 0x45, 0xb7, 0x44, 0xf7, 0x55, 0xea, 0x27, 0x61, 0x55, 0x7e, 0x84, + 0x11, 0x33, 0x22, 0xbc, 0xd6, 0x5a, 0x90, 0x22, 0x07, 0x97, 0x8d, 0xcf, 0x43, 0xda, 0x72, 0xd7, + 0xec, 0x4a, 0xca, 0x45, 0x4e, 0xe6, 0xad, 0xcb, 0x48, 0x9a, 0x1d, 0xa2, 0x3c, 0xa4, 0xb4, 0x3b, + 0x82, 0xe0, 0xf2, 0xdb, 0xf4, 0x1d, 0x90, 0x82, 0xf2, 0x0a, 0x52, 0x3e, 0x0b, 0x84, 0x1c, 0x93, + 0xed, 0x9f, 0xd2, 0xbf, 0x4c, 0x58, 0x7a, 0x4f, 0xd7, 0x4f, 0xba, 0x69, 0x5b, 0x24, 0x2c, 0x0e, + 0x46, 0x5c, 0x41, 0x9f, 0x14, 0x59, 0x71, 0x1d, 0x8b, 0xef, 0x92, 0xf4, 0x59, 0x31, 0xbf, 0x67, + 0x15, 0xf6, 0xd6, 0xb4, 0xbd, 0xb7, 0x2b, 0x79, 0xab, 0x38, 0xe5, 0x25, 0x65, 0xc9, 0x80, 0x91, + 0x9c, 0xeb, 0xa8, 0x18, 0xbb, 0xf8, 0x9d, 0xb8, 0x5c, 0xa8, 0x89, 0x5b, 0x5f, 0xc5, 0x41, 0x7f, + 0x53, 0x50, 0x4f, 0x27, 0x20, 0xb7, 0xa1, 0x8e, 0x6e, 0xc4, 0xd8, 0x0c, 0x6c, 0xd8, 0x21, 0x8b, + 0xc9, 0x9b, 0xef, 0x9a, 0x0d, 0x09, 0x0b, 0xb0, 0x9a, 0xb7, 0x70, 0x1d, 0x2b, 0x69, 0x2a, 0x52, + 0x2a, 0xec, 0x53, 0xef, 0xd3, 0xf5, 0xae, 0x20, 0x9f, 0xdb, 0x25, 0xec, 0x7f, 0x0b, 0x52, 0xf6, + 0x9f, 0x4c, 0x1b, 0xa1, 0x67, 0x75, 0x5f, 0x81, 0xc2, 0xd6, 0xdf, 0x23, 0x2c, 0x17, 0x9d, 0x90, + 0xd9, 0xcc, 0xfd, 0x7c, 0xc6, 0x4f, 0xbe, 0xd0, 0xf7, 0x18, 0xf3, 0x36, 0x3c, 0xc9, 0xfd, 0x77, + 0xb5, 0x58, 0xfc, 0x36, 0xc6, 0x48, 0x5b, 0x16, 0xe7, 0xfa, 0xd9, 0xe3, 0xe0, 0xae, 0x9e, 0x50, + 0x8b, 0x76, 0x1e, 0xd7, 0x87, 0xa1, 0x16, 0x7d, 0x25, 0x57, 0xb7, 0x54, 0xaf, 0xfd, 0x40, 0x3b, + 0xef, 0xb3, 0x0a, 0x4a, 0xfa, 0x9c, 0x73, 0x7e, 0x02, 0x0d, 0xbe, 0x89, 0xfa, 0x09, 0x36, 0x6c, + 0x23, 0xf6, 0xd6, 0x4e, 0xc8, 0x56, 0x67, 0x85, 0x85, 0x98, 0x5b, 0x69, 0xd1, 0xce, 0x02, 0x97, + 0xfa, 0xd9, 0x37, 0xbc, 0xda, 0xed, 0xd6, 0x31, 0x6d, 0x7c, 0xcb, 0xb6, 0xd5, 0xe2, 0x94, 0xa0, + 0xd4, 0x8e, 0x82, 0xe3, 0x9f, 0xe8, 0xdf, 0xe1, 0x1b, 0xbf, 0xf1, 0x0d, 0x7b, 0x15, 0x19, 0x61, + 0x6f, 0x42, 0xbc, 0x5a, 0x2f, 0xac, 0x3e, 0x75, 0x1b, 0x6c, 0x23, 0x1d, 0xcf, 0xca, 0x97, 0x04, + 0x63, 0x0f, 0xf0, 0x79, 0x66, 0xe2, 0x44, 0xd0, 0x4b, 0xbc, 0x96, 0xf9, 0x46, 0x47, 0xfd, 0x56, + 0xf1, 0x36, 0x22, 0xbc, 0xc3, 0xd9, 0x04, 0x87, 0xac, 0x19, 0x67, 0x4b, 0x7e, 0xfe, 0x2a, 0x5b, + 0xf2, 0xf3, 0x09, 0x17, 0xa0, 0xbd, 0x18, 0x98, 0xa1, 0x9d, 0xf7, 0xcf, 0xd0, 0x3e, 0xfc, 0x7c, + 0x5b, 0x72, 0xff, 0x24, 0xd1, 0x57, 0x8e, 0xa7, 0xd7, 0xdb, 0x85, 0xcd, 0x82, 0x7e, 0xe6, 0xd0, + 0x17, 0xc4, 0xbd, 0x4d, 0x99, 0xab, 0x9f, 0x79, 0xf1, 0xe9, 0x16, 0x17, 0xfb, 0x7c, 0xb0, 0x8c, + 0x9e, 0x67, 0x45, 0x23, 0xa9, 0xf6, 0x14, 0x76, 0xe9, 0x8c, 0x7d, 0x8f, 0x6e, 0x9b, 0xae, 0x5b, + 0xa4, 0x1b, 0xd6, 0xe9, 0xc0, 0x9b, 0xbf, 0x31, 0x85, 0xbb, 0x79, 0x02, 0xfb, 0xc2, 0x0b, 0x8f, + 0x5b, 0x60, 0x5d, 0x32, 0xb0, 0xfe, 0x07, 0x2c, 0xda, 0x81, 0xf5, 0x6d, 0x69, 0xac, 0xa7, 0x4e, + 0xa4, 0xba, 0x3e, 0xd6, 0xb7, 0x8d, 0x62, 0xbd, 0x38, 0x18, 0xbb, 0x9f, 0xf7, 0xa2, 0xe0, 0x0b, + 0xa4, 0x9b, 0xa3, 0x63, 0xfd, 0x11, 0xf1, 0x36, 0xa2, 0xdb, 0x07, 0xfa, 0xb3, 0xfe, 0x03, 0xe7, + 0x55, 0x59, 0x53, 0xd2, 0x34, 0x55, 0xb0, 0xff, 0xd5, 0xda, 0x73, 0x19, 0xaf, 0x21, 0xc5, 0x98, + 0x9d, 0x83, 0x32, 0x45, 0x37, 0x27, 0xb2, 0xd9, 0x1f, 0xc7, 0xe1, 0xdd, 0xd1, 0x7e, 0x0b, 0xc5, + 0xf9, 0xd4, 0x39, 0x7e, 0xdb, 0x3b, 0xf6, 0x3c, 0x71, 0x31, 0x46, 0xe6, 0x8c, 0xf9, 0xf2, 0x15, + 0xf6, 0xae, 0x41, 0x67, 0x44, 0xca, 0x1d, 0x55, 0x17, 0x2c, 0x74, 0xcb, 0x06, 0x8b, 0x25, 0xd4, + 0x6f, 0x91, 0x5d, 0x5d, 0x08, 0x79, 0xe6, 0x1f, 0x0f, 0xdf, 0xf2, 0x80, 0x85, 0x6c, 0xe5, 0xda, + 0xee, 0x8e, 0xdc, 0x5b, 0xba, 0x2d, 0x14, 0x0a, 0xea, 0x3d, 0x7f, 0x28, 0xf9, 0xc1, 0x86, 0xa1, + 0xe4, 0xbb, 0x1b, 0xaa, 0x2e, 0xd8, 0x2d, 0x8e, 0x07, 0x1c, 0xe2, 0xeb, 0xaf, 0xb6, 0xdb, 0x21, + 0x49, 0x7a, 0xf0, 0xeb, 0xd9, 0x70, 0xcb, 0x06, 0xbb, 0x25, 0x96, 0x0c, 0x94, 0x53, 0xee, 0xae, + 0x64, 0xfc, 0xa8, 0xb2, 0x53, 0xa6, 0xaa, 0x73, 0x32, 0xef, 0xeb, 0x97, 0x1d, 0x80, 0x94, 0x77, + 0xd7, 0x4f, 0x8b, 0x60, 0xe8, 0x17, 0xdf, 0xb9, 0xda, 0x2d, 0x14, 0x7d, 0x44, 0x1f, 0xdf, 0x1d, + 0x93, 0x0e, 0x26, 0x5d, 0x95, 0x0e, 0x68, 0x8f, 0x8e, 0x47, 0x1c, 0x8d, 0x5f, 0x5d, 0x21, 0x6c, + 0x37, 0x45, 0x9d, 0x14, 0xbf, 0x9d, 0x1a, 0x93, 0xb7, 0x24, 0xed, 0x14, 0x77, 0xea, 0xd6, 0x9c, + 0x29, 0xdb, 0x4e, 0xe4, 0x2c, 0x2b, 0x1b, 0x6e, 0x59, 0x2e, 0x5b, 0x44, 0xee, 0x16, 0x47, 0x1f, + 0xf2, 0xb6, 0xdc, 0x1a, 0xc9, 0x92, 0xc7, 0xd6, 0x53, 0x9c, 0xee, 0x47, 0x3a, 0x06, 0x5d, 0xc0, + 0xa0, 0x1b, 0x9c, 0xd6, 0xb9, 0x22, 0x4b, 0x9e, 0x7b, 0x1e, 0x98, 0x9c, 0x37, 0x16, 0x93, 0x63, + 0x3d, 0xaa, 0x1b, 0x65, 0x07, 0xec, 0x14, 0x4b, 0x4e, 0x43, 0xd9, 0x46, 0x8d, 0x72, 0x1d, 0x51, + 0x1d, 0xb7, 0x63, 0x4e, 0x3f, 0x2f, 0x75, 0x3e, 0x23, 0x53, 0xe5, 0x79, 0x99, 0x84, 0xa7, 0x89, + 0x66, 0xd4, 0x36, 0x4a, 0xf2, 0xf4, 0x28, 0x6a, 0x29, 0x30, 0xf9, 0xfa, 0x11, 0x57, 0x9f, 0x5e, + 0xdf, 0x5b, 0x3b, 0x2c, 0x80, 0x54, 0xc1, 0xaf, 0xf2, 0xc0, 0xb4, 0x07, 0xf0, 0x7b, 0xcd, 0x1a, + 0x25, 0x9f, 0x5a, 0x0d, 0x18, 0x6d, 0x0e, 0x1f, 0xe5, 0x3a, 0x1b, 0x85, 0x4f, 0x01, 0x87, 0xcf, + 0x54, 0xbf, 0xef, 0x8a, 0xc4, 0x7e, 0xc7, 0x13, 0x2b, 0x9d, 0xc1, 0xd0, 0x4e, 0x70, 0xc8, 0x9d, + 0xd0, 0x96, 0xb7, 0x84, 0x76, 0x4e, 0x3c, 0x3f, 0x2d, 0x08, 0xfe, 0xab, 0x42, 0x37, 0xb4, 0x75, + 0x7e, 0x6f, 0x77, 0x32, 0x5e, 0xce, 0x69, 0x3f, 0x7b, 0x53, 0xa4, 0x8d, 0x80, 0x1b, 0xdb, 0x94, + 0xca, 0xd7, 0x0f, 0xbc, 0x7e, 0x78, 0xa8, 0x8f, 0x4f, 0xb5, 0x7e, 0xf4, 0x80, 0x12, 0xbc, 0x65, + 0x79, 0x16, 0x65, 0x11, 0x72, 0xd9, 0x01, 0x29, 0xbf, 0x11, 0xb9, 0x6c, 0x56, 0x1a, 0x95, 0x24, + 0xe7, 0xa4, 0xe6, 0x43, 0xbe, 0xc9, 0x45, 0xce, 0xb9, 0xd3, 0xa2, 0x64, 0x77, 0xf6, 0xa1, 0xd6, + 0x90, 0xc1, 0xd8, 0x6e, 0xf6, 0xd1, 0x23, 0xae, 0xfb, 0x79, 0x9f, 0x95, 0x55, 0xdf, 0xb9, 0xe0, + 0x57, 0xd8, 0xc3, 0x9f, 0x2f, 0x75, 0xe2, 0x09, 0xf5, 0xa6, 0xbd, 0x7a, 0x48, 0xa1, 0x87, 0x79, + 0x84, 0x48, 0xc4, 0xc7, 0x8e, 0x11, 0xce, 0xc8, 0xa3, 0x03, 0x8e, 0xe5, 0x13, 0xcf, 0x1b, 0x6b, + 0xf7, 0xd3, 0xc7, 0x8f, 0x20, 0x4a, 0xed, 0xc3, 0x03, 0x3c, 0x67, 0x25, 0x20, 0x28, 0x72, 0x2c, + 0xfd, 0xbc, 0x74, 0xce, 0xda, 0x47, 0x07, 0x8c, 0x3e, 0x66, 0x61, 0x4b, 0x7d, 0x25, 0xaa, 0xca, + 0x73, 0x2e, 0x5f, 0x29, 0x12, 0x7d, 0xe6, 0x70, 0x1a, 0x36, 0xee, 0x21, 0x05, 0x68, 0x5f, 0x85, + 0xcf, 0xc2, 0x72, 0x35, 0xcd, 0xbd, 0x7c, 0xa5, 0x5f, 0x0d, 0x70, 0x4f, 0xae, 0x7f, 0x54, 0xec, + 0x97, 0xcb, 0xd1, 0xfd, 0xc2, 0x22, 0xe4, 0x46, 0x68, 0xa0, 0xc5, 0x0d, 0x9b, 0x54, 0x3e, 0x25, + 0xd3, 0xc2, 0xbe, 0x0e, 0xbd, 0xc1, 0x19, 0x11, 0xb2, 0xcc, 0xa8, 0x25, 0xab, 0xe1, 0x4b, 0xe3, + 0x70, 0xda, 0xfb, 0x50, 0x7a, 0x87, 0xca, 0xec, 0x0a, 0x3e, 0xc7, 0x1e, 0xf9, 0x07, 0x91, 0x7f, + 0xd8, 0x05, 0x76, 0x84, 0xb6, 0xaa, 0x43, 0x99, 0x0d, 0xde, 0x36, 0x6a, 0xf2, 0xfa, 0x68, 0x81, + 0xdb, 0x47, 0x0b, 0xf9, 0x1c, 0x13, 0x3e, 0xd5, 0x68, 0x68, 0x68, 0x76, 0x1d, 0x15, 0xcf, 0x9e, + 0x47, 0x25, 0xe0, 0x68, 0x15, 0x7e, 0x3e, 0x7b, 0xd3, 0x32, 0xf4, 0x20, 0x78, 0xbd, 0xe5, 0x8d, + 0xa3, 0xca, 0xfc, 0x1f, 0x1f, 0x68, 0x23, 0xda, 0xa2, 0xdb, 0x47, 0x63, 0x14, 0xc8, 0xda, 0xbd, + 0x21, 0x6e, 0x05, 0x57, 0xb4, 0x46, 0x06, 0x1a, 0xbb, 0xfb, 0xbb, 0x9b, 0x8b, 0x7d, 0x99, 0xbe, + 0x6c, 0x3e, 0xc1, 0xc8, 0xd8, 0xf5, 0x45, 0x52, 0x71, 0xa0, 0x8d, 0x4a, 0x86, 0xde, 0x27, 0xcb, + 0x4c, 0xe8, 0x73, 0x33, 0x43, 0x94, 0x15, 0xf0, 0xe1, 0x7d, 0x05, 0x59, 0x79, 0xd7, 0xd7, 0xcc, + 0x2a, 0xca, 0x56, 0x79, 0x27, 0xa0, 0x95, 0x02, 0x48, 0x17, 0x08, 0x4c, 0x8c, 0x1c, 0xa8, 0xfa, + 0x9d, 0x9d, 0x7e, 0x3c, 0xd0, 0x96, 0x15, 0x98, 0x37, 0xf4, 0x11, 0x05, 0xf0, 0x95, 0x55, 0x69, + 0xd4, 0xf7, 0x2a, 0xfa, 0x0b, 0x29, 0xab, 0x1f, 0x65, 0xa2, 0xf5, 0x1e, 0x8f, 0xae, 0x4f, 0x90, + 0xe9, 0x90, 0xa3, 0xc6, 0xd1, 0x07, 0x28, 0xf7, 0xeb, 0xd6, 0x6c, 0x7e, 0x3e, 0xf9, 0x69, 0x00, + 0xf4, 0x94, 0x82, 0x68, 0x43, 0xff, 0x86, 0x6b, 0x21, 0x32, 0xfd, 0x10, 0x25, 0x15, 0x0f, 0x9d, + 0x1b, 0x07, 0x51, 0xf1, 0xd0, 0xf2, 0x71, 0x10, 0x2d, 0x1f, 0x07, 0xd1, 0x45, 0x03, 0x22, 0xbc, + 0x0f, 0x1d, 0x15, 0x10, 0xe9, 0x36, 0xc7, 0x59, 0xd0, 0xf6, 0x74, 0x88, 0xb2, 0xa3, 0xbd, 0x89, + 0x6c, 0x47, 0x18, 0xd0, 0x58, 0x5c, 0x11, 0xd5, 0xac, 0xd3, 0x9f, 0xee, 0xf7, 0xd9, 0x24, 0xe6, + 0x2e, 0xe2, 0x74, 0x65, 0x8f, 0x2a, 0x23, 0xce, 0xa2, 0xe3, 0xb8, 0xf4, 0x06, 0x65, 0xbe, 0x2e, + 0x9d, 0x18, 0x58, 0xe4, 0xb3, 0xad, 0xad, 0x01, 0x60, 0xbb, 0xea, 0x77, 0xdb, 0xb5, 0x9f, 0xbe, + 0xda, 0xec, 0x67, 0xb8, 0x9d, 0x73, 0xea, 0xb7, 0xa4, 0xe0, 0xa6, 0x73, 0x7e, 0x79, 0x10, 0xf1, + 0x33, 0x83, 0x06, 0xd4, 0xf2, 0x38, 0x2c, 0xe6, 0xe2, 0x5b, 0x6b, 0xf5, 0xef, 0x36, 0xd3, 0xdf, + 0x1d, 0x6d, 0xb3, 0xf8, 0x6f, 0x18, 0xac, 0x9d, 0x19, 0x1c, 0xc5, 0x5c, 0x00, 0x98, 0xdb, 0x25, + 0x30, 0xa7, 0xad, 0x61, 0xcc, 0xd1, 0x63, 0x3a, 0xe6, 0x68, 0xcb, 0xd5, 0x50, 0x94, 0x31, 0x14, + 0x68, 0x6b, 0x3e, 0xbf, 0xf8, 0x67, 0xaf, 0x36, 0x17, 0x31, 0x14, 0xae, 0x39, 0xf5, 0x8f, 0x18, + 0x50, 0x2c, 0xf6, 0x9b, 0x07, 0x97, 0x8f, 0x81, 0xc1, 0x3c, 0x0e, 0x6f, 0x7c, 0x9a, 0xb1, 0x75, + 0xce, 0xc5, 0xcd, 0xf4, 0x93, 0x5f, 0xb6, 0x99, 0x3f, 0x07, 0x53, 0x59, 0xc0, 0x94, 0xcc, 0x98, + 0x7a, 0xf8, 0xb0, 0x33, 0x8d, 0x8d, 0x72, 0xab, 0x8e, 0x23, 0xad, 0x23, 0x4d, 0xbd, 0x23, 0xfa, + 0xfe, 0x28, 0xdd, 0x1e, 0x1c, 0x34, 0x5b, 0x0c, 0xda, 0x2d, 0x2d, 0xe2, 0xd5, 0x53, 0x1f, 0x05, + 0x41, 0xbf, 0x61, 0xd0, 0x6f, 0x04, 0x34, 0x5b, 0x07, 0xba, 0x6e, 0x00, 0x7d, 0x37, 0xf1, 0xea, + 0xea, 0xbc, 0xcb, 0x9f, 0xae, 0x9c, 0x5d, 0x45, 0x5e, 0x48, 0x95, 0x45, 0xac, 0xe9, 0x32, 0xf5, + 0xbe, 0xfe, 0x12, 0xd7, 0xc7, 0x31, 0x71, 0xa8, 0x87, 0x31, 0x04, 0x38, 0x40, 0x19, 0xbb, 0xfa, + 0xda, 0xd4, 0x37, 0x5e, 0x52, 0x82, 0xaf, 0x1f, 0x7c, 0xe1, 0xd5, 0x56, 0xaf, 0x38, 0x41, 0x78, + 0x5b, 0x9a, 0x3e, 0xa2, 0x7e, 0x3e, 0x3d, 0x2d, 0x55, 0xcb, 0x39, 0x94, 0x65, 0xbc, 0xb3, 0xcd, + 0xf0, 0x33, 0xbb, 0x36, 0xb4, 0xde, 0x73, 0x55, 0xfa, 0x7c, 0xe4, 0x69, 0x19, 0x0c, 0xa5, 0x53, + 0x17, 0x92, 0x75, 0xb0, 0x4a, 0xf5, 0x0f, 0xf6, 0xbc, 0xf1, 0xd2, 0x8f, 0x07, 0x5a, 0x1b, 0xc6, + 0xa7, 0xa6, 0xf3, 0xc8, 0xcd, 0x9b, 0x6e, 0x47, 0x3d, 0x77, 0x7e, 0xb7, 0x72, 0x7b, 0xcd, 0xac, + 0xc1, 0x88, 0xda, 0x68, 0x60, 0x2c, 0x45, 0xed, 0x77, 0xef, 0xd5, 0x39, 0xd6, 0x4e, 0x37, 0xb7, + 0xd8, 0x93, 0x2f, 0x0c, 0x5c, 0x0d, 0x31, 0x6d, 0x47, 0x5a, 0xcb, 0x60, 0x55, 0x3a, 0x47, 0xd4, + 0x51, 0xc0, 0xa3, 0xe7, 0x77, 0x0d, 0xad, 0x8a, 0xb3, 0x30, 0xac, 0x9e, 0x6b, 0x69, 0xb5, 0xc6, + 0xa0, 0xd4, 0x23, 0xaa, 0xe4, 0x8a, 0x5c, 0x03, 0xc7, 0xf9, 0xbd, 0xfa, 0x1c, 0x1c, 0xfb, 0x7b, + 0xba, 0xa6, 0x55, 0x45, 0x9e, 0x92, 0x47, 0xb4, 0xaa, 0xc8, 0xe5, 0x44, 0xda, 0xba, 0xd1, 0xb0, + 0x21, 0x37, 0xda, 0xd1, 0x8f, 0x76, 0x2c, 0x46, 0x5b, 0x95, 0xf2, 0x4a, 0xb8, 0x8b, 0x79, 0x12, + 0xda, 0x12, 0x6d, 0x1a, 0x01, 0x2f, 0xaa, 0x43, 0x3b, 0x36, 0xa0, 0x8d, 0x9b, 0xc4, 0x6c, 0x5f, + 0x56, 0x29, 0xda, 0xe0, 0xd7, 0x07, 0xd9, 0xaf, 0xf1, 0x5f, 0x1f, 0xe5, 0xb3, 0x02, 0xfc, 0x7c, + 0x7a, 0xac, 0x65, 0x70, 0xed, 0x4f, 0x07, 0x5a, 0xe7, 0x73, 0x4f, 0x79, 0xe3, 0x25, 0xc8, 0x42, + 0x56, 0x68, 0x74, 0x66, 0x77, 0x30, 0xb6, 0x51, 0x2d, 0xe7, 0xd6, 0x6c, 0x59, 0x28, 0xce, 0x82, + 0xdf, 0xf7, 0xef, 0xad, 0xe9, 0xf6, 0xf1, 0xcc, 0xac, 0x03, 0x5e, 0xc2, 0xa2, 0x65, 0x2c, 0x8d, + 0x41, 0x81, 0x27, 0xeb, 0xcc, 0x6a, 0xca, 0xe6, 0xfc, 0x6a, 0x2f, 0x94, 0x9a, 0x38, 0x17, 0x7c, + 0x7b, 0xb4, 0xa5, 0xee, 0x9a, 0x3a, 0x2f, 0xd6, 0x7d, 0x81, 0xd0, 0x71, 0x2f, 0xe3, 0x7e, 0xe8, + 0xa7, 0x87, 0x5b, 0xdd, 0x46, 0xfe, 0xd9, 0x69, 0xec, 0x1f, 0x49, 0xe7, 0x3f, 0x8a, 0xf7, 0xea, + 0xcf, 0xc5, 0x3b, 0xa4, 0x1c, 0x0f, 0xe7, 0xf5, 0x38, 0xfa, 0x3b, 0x6a, 0xc7, 0xd8, 0x77, 0x45, + 0x04, 0xf6, 0x3b, 0x8c, 0x3e, 0x90, 0x7f, 0x7d, 0xec, 0x0b, 0x48, 0x16, 0x00, 0x8e, 0x26, 0x01, + 0x41, 0xaa, 0x47, 0x46, 0xff, 0xc8, 0xd2, 0xf5, 0x16, 0xf2, 0xa0, 0x6c, 0x57, 0xba, 0x64, 0x8c, + 0x45, 0x97, 0xf4, 0x36, 0x7f, 0x66, 0xb4, 0xdf, 0xd5, 0x7f, 0xe7, 0xd1, 0x23, 0x2a, 0x69, 0xad, + 0x0f, 0x1f, 0x56, 0x4f, 0xa4, 0xc6, 0x0f, 0x6e, 0x1f, 0xb4, 0x59, 0x1d, 0xda, 0x6b, 0x21, 0xda, + 0x4f, 0xe5, 0xd3, 0xce, 0x43, 0x9b, 0xd7, 0x14, 0xbf, 0xbd, 0xc9, 0x31, 0x27, 0xf4, 0xf0, 0xdf, + 0xbc, 0xf6, 0xfd, 0x5f, 0xae, 0xd4, 0x56, 0x6b, 0x8f, 0x1e, 0xe1, 0x76, 0x32, 0x6d, 0x8b, 0xae, + 0x4b, 0x98, 0xcb, 0x96, 0x51, 0xd6, 0x3f, 0xbd, 0x12, 0x5d, 0x9b, 0x30, 0x97, 0xa3, 0xf4, 0xdf, + 0x1c, 0x2a, 0x99, 0xce, 0xa7, 0xef, 0x05, 0xf8, 0x0c, 0xbe, 0x03, 0x3f, 0xff, 0x65, 0x5b, 0xbe, + 0x52, 0xf5, 0xfa, 0x2b, 0x4a, 0x76, 0x63, 0xf2, 0x85, 0x81, 0x66, 0xe8, 0x97, 0xbe, 0x79, 0xe4, + 0xf7, 0x04, 0x63, 0x0f, 0xa2, 0xcc, 0x92, 0x9f, 0xbd, 0xd6, 0x96, 0xef, 0xa8, 0x7c, 0xe3, 0x90, + 0x72, 0x43, 0x63, 0xf2, 0xc7, 0x1c, 0x3b, 0xd1, 0x57, 0x4f, 0x7e, 0x6f, 0x30, 0xf6, 0xd0, 0x23, + 0xaf, 0xaa, 0x76, 0x4f, 0xc6, 0x5b, 0xeb, 0x15, 0xd3, 0x60, 0xef, 0xbe, 0x24, 0x9f, 0x09, 0xc8, + 0xa1, 0xe2, 0xdb, 0xfa, 0x37, 0xd7, 0xef, 0x49, 0xc6, 0xcd, 0xab, 0x1b, 0xde, 0xda, 0xc4, 0xa7, + 0x8f, 0x0f, 0xf5, 0x42, 0xe6, 0x31, 0xaf, 0x6c, 0x7a, 0x13, 0x6f, 0x2b, 0x49, 0xac, 0x07, 0x65, + 0x02, 0x6b, 0x16, 0xe8, 0xf8, 0x6c, 0x3f, 0x54, 0x87, 0x6b, 0x31, 0x5f, 0x0a, 0x9f, 0x21, 0xbe, + 0x39, 0xb5, 0xff, 0x39, 0xa3, 0x84, 0xcf, 0xac, 0xfc, 0xe9, 0x61, 0x5e, 0xaf, 0x10, 0xb6, 0x4f, + 0x25, 0xfa, 0xb8, 0x32, 0xaa, 0x3f, 0x8a, 0xab, 0xdb, 0x11, 0x79, 0xe4, 0x00, 0x5b, 0x13, 0x38, + 0x97, 0x65, 0xd1, 0x1d, 0xcb, 0x21, 0x98, 0x48, 0x25, 0x3b, 0xc9, 0x72, 0x07, 0xcf, 0x7c, 0xf3, + 0x0e, 0xda, 0x2d, 0x8e, 0x26, 0xe8, 0x80, 0x96, 0xfe, 0xc6, 0x66, 0xa9, 0x24, 0xc9, 0x23, 0x11, + 0xef, 0x51, 0x6e, 0x93, 0xef, 0x08, 0x12, 0x9f, 0x99, 0x94, 0x1d, 0x19, 0x60, 0x5e, 0xdb, 0xb8, + 0xc1, 0x91, 0xfb, 0xe3, 0x81, 0xf8, 0x22, 0xc5, 0xe4, 0x88, 0x42, 0x83, 0xf4, 0xb3, 0xb7, 0x36, + 0x35, 0x5f, 0x09, 0x02, 0x43, 0x16, 0xe8, 0xb7, 0x96, 0x78, 0x18, 0x4f, 0x56, 0x3c, 0x59, 0xe3, + 0x65, 0x8e, 0xbb, 0x14, 0x1b, 0xaf, 0x56, 0x60, 0x34, 0xbd, 0x00, 0x69, 0xe0, 0x2d, 0xd5, 0x3d, + 0x1b, 0x92, 0x37, 0xb1, 0xac, 0x3f, 0xb1, 0x7e, 0xdf, 0xbf, 0x39, 0x85, 0x5c, 0x61, 0x99, 0xd9, + 0x46, 0xfe, 0xb4, 0x3c, 0xfe, 0xb1, 0x0f, 0x63, 0xb8, 0x6a, 0xe6, 0x73, 0x2b, 0x9c, 0x95, 0xe0, + 0x90, 0x7c, 0x26, 0x7d, 0x83, 0x7e, 0xb6, 0xb3, 0xa9, 0x00, 0xb5, 0x6c, 0xd2, 0xad, 0xe1, 0xae, + 0xcc, 0x47, 0x7b, 0x59, 0x45, 0x7b, 0x2d, 0xe5, 0xf6, 0xf2, 0x49, 0xd0, 0x14, 0xd0, 0xb6, 0xe2, + 0x54, 0x1e, 0x8b, 0x1f, 0xa5, 0x44, 0xda, 0x97, 0x92, 0xef, 0x86, 0xeb, 0xe3, 0x4b, 0x32, 0xa7, + 0xf1, 0x75, 0xe8, 0xfa, 0xf8, 0xd2, 0xa5, 0x20, 0xe0, 0x6b, 0xe0, 0xf7, 0xe0, 0xab, 0xf7, 0x0b, + 0xe0, 0xab, 0x29, 0x85, 0x2f, 0xc6, 0x55, 0x19, 0x70, 0xb5, 0x8f, 0x71, 0x55, 0x81, 0x27, 0xeb, + 0x3e, 0xc6, 0x55, 0x31, 0xe3, 0x6a, 0xd7, 0x06, 0xd4, 0xf2, 0x4d, 0x60, 0xea, 0x84, 0xea, 0x44, + 0x4c, 0xb6, 0x8e, 0xa7, 0xdf, 0x8d, 0x08, 0x3c, 0x99, 0x45, 0xef, 0xd0, 0xb1, 0x74, 0x51, 0x60, + 0x49, 0xd2, 0x31, 0xb4, 0x5a, 0x53, 0x65, 0xa6, 0x68, 0xd4, 0xc9, 0x38, 0x65, 0xfa, 0xca, 0x59, + 0xb6, 0x2b, 0x1d, 0xa5, 0x61, 0xf6, 0xfe, 0x01, 0xbc, 0x64, 0xfa, 0xf4, 0xbd, 0xf4, 0xc0, 0x4d, + 0x84, 0xa0, 0xdd, 0x5d, 0x17, 0x37, 0x74, 0x2e, 0x8d, 0x9b, 0x17, 0x05, 0x6e, 0x8a, 0xff, 0x04, + 0xdc, 0xac, 0xf9, 0x02, 0x98, 0x69, 0x60, 0xcc, 0xa8, 0xf9, 0x9e, 0x60, 0xc9, 0x0c, 0xb2, 0xec, + 0x11, 0x58, 0xc1, 0x93, 0x75, 0x4f, 0x0a, 0x2b, 0x37, 0x31, 0x56, 0x68, 0x50, 0xc7, 0x4a, 0x89, + 0x81, 0x15, 0x96, 0x8b, 0x0c, 0xac, 0x54, 0x5d, 0x1f, 0x2b, 0x2b, 0x35, 0x35, 0xbb, 0xab, 0xe9, + 0xc4, 0xa6, 0xd5, 0xc5, 0x6f, 0x6d, 0xe2, 0xb1, 0xfa, 0x8d, 0x8e, 0x31, 0xd4, 0x73, 0xc6, 0xd8, + 0x09, 0xd2, 0x66, 0x9c, 0x36, 0x15, 0x8e, 0x56, 0x25, 0x1c, 0x77, 0x30, 0x6d, 0x9a, 0xaf, 0x9d, + 0x73, 0x01, 0x05, 0x2e, 0x70, 0xec, 0x80, 0xdc, 0x3f, 0xd5, 0x27, 0x5d, 0x1b, 0xeb, 0x73, 0x67, + 0x51, 0xfd, 0xbe, 0x8b, 0x0b, 0x1a, 0x36, 0xf1, 0xfe, 0x91, 0xd4, 0xe8, 0x8f, 0x9c, 0xfd, 0xcc, + 0x63, 0x3f, 0xb3, 0x39, 0x6b, 0x55, 0xfa, 0xac, 0x34, 0xf5, 0x7e, 0xc5, 0xc3, 0xef, 0x57, 0xa2, + 0xfc, 0xac, 0x15, 0xf3, 0xb3, 0xd6, 0xa4, 0xcf, 0x7b, 0xb1, 0x0f, 0x6f, 0x97, 0xbe, 0x3f, 0xc9, + 0x6b, 0xec, 0xc8, 0x7b, 0x2c, 0xc7, 0x43, 0x7f, 0xc6, 0xf2, 0x72, 0x5b, 0x4d, 0xa4, 0x3b, 0x50, + 0xd9, 0x61, 0x72, 0x4e, 0xfc, 0xed, 0x53, 0x8d, 0xdd, 0x07, 0x9f, 0xa7, 0x82, 0xce, 0xc9, 0x87, + 0xd6, 0x9e, 0xe9, 0x19, 0xea, 0x3e, 0xd6, 0xdd, 0x41, 0x39, 0x40, 0x70, 0xe7, 0x84, 0x57, 0x7a, + 0x72, 0xcb, 0xb5, 0xe4, 0x99, 0x1f, 0x1e, 0xec, 0x09, 0x0f, 0xc4, 0xb3, 0xa2, 0xdd, 0xdf, 0x30, + 0xec, 0xd3, 0xa2, 0xdd, 0x71, 0x3b, 0xef, 0xbc, 0x8c, 0xdb, 0x55, 0x87, 0x38, 0x9d, 0x43, 0xd6, + 0x77, 0x8f, 0x41, 0x1b, 0xcd, 0x52, 0x7c, 0x6c, 0x83, 0x8b, 0x5f, 0x67, 0x87, 0x09, 0x10, 0xba, + 0x95, 0xa4, 0x3f, 0x6d, 0x43, 0x2b, 0xf6, 0x3a, 0x43, 0x7b, 0x43, 0xed, 0x15, 0x8c, 0xf4, 0x39, + 0xfe, 0x36, 0xca, 0x2b, 0xf6, 0xd1, 0x54, 0x55, 0x8a, 0x05, 0xfb, 0x23, 0x8b, 0x1d, 0xec, 0xcd, + 0x22, 0xd6, 0xed, 0x32, 0xbd, 0xd9, 0xfd, 0xfe, 0x86, 0x2d, 0x6b, 0x03, 0xd0, 0xdb, 0xf4, 0x99, + 0xcc, 0x18, 0xf8, 0xcc, 0xee, 0x6f, 0xd9, 0x29, 0x71, 0x3c, 0x6d, 0xf3, 0x7d, 0xc2, 0x90, 0xe4, + 0x17, 0xae, 0xa2, 0x52, 0x1f, 0xcd, 0xf7, 0xc8, 0xb1, 0x75, 0xec, 0x01, 0xc4, 0x29, 0xbf, 0x7f, + 0xff, 0xd6, 0x64, 0xf5, 0xef, 0xdc, 0x24, 0xbc, 0x30, 0xdd, 0xcd, 0x96, 0x5a, 0x45, 0x52, 0xf8, + 0xbe, 0x5a, 0x48, 0xcf, 0x6a, 0x7b, 0xe5, 0xc7, 0xab, 0xa8, 0xdc, 0xef, 0x76, 0xec, 0x07, 0xcc, + 0x8b, 0x17, 0x46, 0x56, 0xd1, 0xd4, 0x48, 0xbb, 0x7b, 0xaa, 0xcf, 0xca, 0xbe, 0x68, 0x6e, 0x3f, + 0x2d, 0xe6, 0x03, 0xac, 0xae, 0xa8, 0x2b, 0x93, 0x63, 0x7c, 0x93, 0x22, 0x2b, 0x68, 0x6a, 0xfd, + 0xb6, 0xc6, 0xb5, 0x1c, 0xba, 0x77, 0x6d, 0x22, 0x6b, 0xce, 0xfb, 0xda, 0xa9, 0xfd, 0xa0, 0xb9, + 0x25, 0xc3, 0x4a, 0xc6, 0xe0, 0xda, 0xf7, 0x1f, 0xd8, 0x96, 0x9c, 0xf3, 0xbb, 0x52, 0x12, 0x69, + 0x75, 0xff, 0x2c, 0xc8, 0xe3, 0x8e, 0x1a, 0xe1, 0xa3, 0xd7, 0x1a, 0x5b, 0x57, 0x7d, 0x8e, 0xa6, + 0xee, 0x7b, 0x9e, 0x8a, 0xda, 0xee, 0x1f, 0x3d, 0x41, 0x94, 0xed, 0xf7, 0x51, 0x7f, 0x37, 0x20, + 0xcb, 0x2f, 0xf3, 0x91, 0xa8, 0xaf, 0xd3, 0x14, 0xeb, 0x49, 0xd5, 0x18, 0x78, 0x71, 0xbe, 0x71, + 0xa0, 0xf2, 0x3d, 0x32, 0x2f, 0xd8, 0x10, 0xaa, 0x14, 0x35, 0x9b, 0x0a, 0x9e, 0xb0, 0x77, 0x25, + 0x95, 0xb8, 0xb5, 0x91, 0xd8, 0xda, 0x37, 0xd7, 0xee, 0xeb, 0x28, 0xa5, 0xc5, 0xe6, 0x28, 0xc6, + 0xac, 0xb8, 0x8d, 0xfd, 0x46, 0x44, 0x2b, 0xf9, 0x24, 0xfa, 0x18, 0xaf, 0xb2, 0xf7, 0x21, 0x54, + 0x4a, 0xac, 0x01, 0x35, 0xe7, 0xbd, 0xd9, 0xe0, 0x5f, 0x0b, 0x8e, 0x99, 0x3b, 0x74, 0x57, 0xa0, + 0x1b, 0xa9, 0xf2, 0x70, 0xe5, 0x5a, 0xd9, 0x82, 0x31, 0x27, 0x6e, 0x45, 0xaa, 0xec, 0x36, 0x39, + 0xb0, 0x56, 0x95, 0xfc, 0xdd, 0x7c, 0x6a, 0x76, 0xeb, 0xd4, 0x21, 0xf4, 0x1b, 0x48, 0xad, 0x66, + 0x91, 0xc2, 0x16, 0xf7, 0xe8, 0x29, 0x62, 0x0d, 0xea, 0x70, 0xe3, 0x5d, 0xea, 0x09, 0xc4, 0xb2, + 0x4c, 0x6b, 0x16, 0xa1, 0x96, 0x99, 0xbc, 0x9b, 0x36, 0x0f, 0x3d, 0x84, 0xbd, 0xac, 0xe4, 0x22, + 0x6c, 0x34, 0xc7, 0xcd, 0xc8, 0xf1, 0xe1, 0x0e, 0xd4, 0xa6, 0xf2, 0x2c, 0x4d, 0xad, 0x7a, 0x8f, + 0xa6, 0xba, 0xa4, 0xc6, 0xb5, 0x7b, 0xd7, 0x36, 0x93, 0x16, 0xd2, 0xf7, 0x0f, 0xf0, 0xe9, 0x74, + 0xac, 0xdb, 0xa1, 0xc5, 0x1d, 0x25, 0x90, 0x22, 0x41, 0x1d, 0x76, 0x71, 0xb2, 0x47, 0x83, 0x3f, + 0x06, 0x8c, 0xb8, 0x36, 0x47, 0xa0, 0x7b, 0x78, 0xb6, 0x44, 0xfc, 0x95, 0xc5, 0xcb, 0x49, 0xda, + 0x15, 0x5c, 0x02, 0x29, 0x6f, 0x4b, 0x70, 0x5b, 0xf4, 0x54, 0xf4, 0x95, 0x83, 0xc5, 0x74, 0x36, + 0xaa, 0xef, 0xc3, 0x7c, 0xb3, 0x27, 0x56, 0x69, 0xad, 0x24, 0xdb, 0xbd, 0x52, 0x87, 0x4d, 0xa7, + 0x0e, 0xa7, 0xa9, 0xb1, 0xc7, 0x51, 0xae, 0x69, 0x49, 0x3a, 0xfd, 0x3f, 0x41, 0xc3, 0xc9, 0x84, + 0x45, 0x0f, 0x3f, 0xfd, 0x3f, 0x9d, 0x55, 0xbf, 0x7a, 0xa9, 0xfa, 0x5f, 0x76, 0xd0, 0xda, 0x98, + 0x23, 0x23, 0xd6, 0x6d, 0x0e, 0x92, 0x6d, 0x73, 0xa8, 0x93, 0x8a, 0x2d, 0xc0, 0x27, 0xb9, 0xa5, + 0xed, 0x6b, 0x5d, 0xf2, 0xaa, 0xc9, 0x80, 0x50, 0x59, 0x49, 0xaa, 0xf5, 0xf6, 0xfd, 0x9a, 0x56, + 0x4a, 0x7a, 0xaa, 0xa6, 0xb5, 0xec, 0xe7, 0xc7, 0x15, 0x9e, 0xf3, 0x3e, 0x4d, 0xde, 0xfd, 0x40, + 0xeb, 0xe9, 0xfe, 0xc8, 0x22, 0xdd, 0x3f, 0xa8, 0xb6, 0x35, 0xe9, 0x2f, 0x4f, 0x52, 0xb4, 0x27, + 0x61, 0x51, 0xf4, 0x12, 0x9f, 0x18, 0xea, 0xee, 0x06, 0x65, 0x42, 0x7b, 0x2d, 0x48, 0xed, 0x45, + 0x98, 0x5d, 0x01, 0x5e, 0x91, 0xd6, 0x2a, 0x8b, 0x3d, 0x24, 0xa3, 0x3c, 0xe9, 0xd0, 0xc1, 0x22, + 0xe9, 0xed, 0x1e, 0xc7, 0x84, 0xa1, 0xfb, 0xf8, 0x34, 0xd1, 0x72, 0x0f, 0x99, 0x8f, 0xbe, 0xe2, + 0x31, 0xbf, 0xb5, 0x9e, 0x7d, 0x03, 0xf1, 0xd9, 0x4a, 0x73, 0xf5, 0x7d, 0xec, 0x99, 0xbe, 0x0c, + 0xd6, 0x73, 0xdd, 0x74, 0x3c, 0xe9, 0x98, 0xb0, 0x25, 0x79, 0x6a, 0xfd, 0x89, 0xee, 0x53, 0x3d, + 0x5b, 0x7b, 0x8f, 0xad, 0x83, 0x7c, 0x66, 0xde, 0xfc, 0x3e, 0x49, 0xbc, 0xd7, 0x0e, 0x1c, 0x76, + 0x01, 0xa7, 0x52, 0x9a, 0xc9, 0x2a, 0x4e, 0xbb, 0xb1, 0x8d, 0x9e, 0x76, 0xc3, 0xf2, 0x07, 0xb0, + 0x39, 0x5f, 0x87, 0x97, 0x4f, 0x3d, 0x56, 0xaa, 0x3d, 0xb2, 0x3b, 0xc3, 0x37, 0x97, 0x8a, 0x5d, + 0x73, 0x58, 0xd6, 0xea, 0x30, 0xed, 0xea, 0x6d, 0x6e, 0xae, 0xb8, 0x21, 0x90, 0xc3, 0xf9, 0xf0, + 0x99, 0x21, 0x9b, 0xe7, 0xf1, 0xaa, 0xae, 0xdf, 0x04, 0x79, 0x30, 0xcc, 0x4f, 0xbc, 0xfa, 0xce, + 0x6b, 0xbd, 0x88, 0x6f, 0x10, 0xbb, 0x00, 0xad, 0x18, 0x65, 0x22, 0xf5, 0xfb, 0xae, 0x54, 0xf8, + 0xf9, 0x9b, 0xce, 0xb7, 0xd1, 0x3e, 0xb3, 0x27, 0x84, 0x12, 0x01, 0x6a, 0xac, 0x1c, 0x12, 0x29, + 0x63, 0xc1, 0xcd, 0xe2, 0x4b, 0xc4, 0x36, 0x8b, 0x31, 0xc0, 0x8a, 0xd4, 0x36, 0xf6, 0x7d, 0xc6, + 0xa7, 0xc5, 0xc5, 0x1e, 0xfc, 0xcd, 0x47, 0x54, 0xae, 0x98, 0x07, 0x1f, 0x8a, 0xae, 0x6f, 0xb6, + 0x78, 0xe9, 0xc4, 0x03, 0xc7, 0x1e, 0x52, 0x73, 0x1a, 0x7b, 0x1f, 0x7b, 0x9e, 0x4a, 0xf9, 0xed, + 0xf1, 0x75, 0xc7, 0x1e, 0x3a, 0xd6, 0xb7, 0x75, 0x5d, 0xb4, 0xa7, 0xd9, 0x2a, 0x56, 0x0d, 0xcd, + 0xfd, 0x0f, 0xb6, 0x92, 0xb6, 0xc0, 0x25, 0xbb, 0x33, 0x31, 0x6a, 0x97, 0x86, 0xbb, 0x19, 0x43, + 0xe3, 0x6a, 0xe5, 0x67, 0xfe, 0x7b, 0xf2, 0x9c, 0x2b, 0xd2, 0xb8, 0xf6, 0x38, 0x72, 0xc1, 0x97, + 0xab, 0x51, 0x2f, 0x50, 0x1b, 0xf5, 0x95, 0x5d, 0xbf, 0x66, 0x55, 0x46, 0xcd, 0xaa, 0x8c, 0x9a, + 0x05, 0xf5, 0x9a, 0x31, 0xd7, 0xd7, 0x6b, 0xf5, 0x16, 0xd7, 0x2a, 0xd3, 0xa8, 0x55, 0x95, 0x51, + 0xab, 0x2a, 0xa3, 0x56, 0x0b, 0xf5, 0x5a, 0x71, 0x6a, 0x51, 0x9b, 0x4e, 0x40, 0xfc, 0xc0, 0xd6, + 0x5e, 0xae, 0xa1, 0x6a, 0x89, 0xae, 0x6d, 0xb3, 0xf1, 0xdb, 0x18, 0xd8, 0x97, 0x1b, 0xbd, 0x5e, + 0xec, 0x36, 0x98, 0x5d, 0xee, 0x66, 0x39, 0xbf, 0x4d, 0x97, 0xf1, 0xc1, 0xb5, 0x22, 0xa0, 0x42, + 0xf4, 0x00, 0xd0, 0x85, 0x8f, 0x02, 0x5d, 0x54, 0xee, 0xa3, 0xb2, 0xd5, 0x04, 0x8e, 0x50, 0x53, + 0x7d, 0x79, 0xe4, 0x2d, 0x35, 0xee, 0x24, 0xee, 0x43, 0x7b, 0x92, 0x2d, 0xed, 0x7c, 0x8a, 0x14, + 0xf7, 0xaf, 0xc4, 0x79, 0xee, 0xab, 0x6c, 0xe9, 0xf6, 0x7e, 0xdf, 0xe6, 0x3e, 0x25, 0xfc, 0xfa, + 0x80, 0x9a, 0xa5, 0xf7, 0xb4, 0x3d, 0x3d, 0x2d, 0x51, 0x91, 0xe2, 0x02, 0x4a, 0x37, 0xc5, 0xf8, + 0xc4, 0x67, 0x79, 0x0d, 0x55, 0x98, 0x94, 0x39, 0xfd, 0x7d, 0xcd, 0xf9, 0x90, 0x56, 0xcc, 0x8d, + 0x95, 0xe9, 0x75, 0xfb, 0x4c, 0x71, 0xca, 0x9c, 0xf0, 0x73, 0xdd, 0xd4, 0xb3, 0xa7, 0xa7, 0xcd, + 0xe6, 0x90, 0x86, 0x7a, 0x14, 0x09, 0x79, 0x76, 0x8b, 0x3c, 0x37, 0xd7, 0xbd, 0x53, 0x3e, 0x32, + 0x3a, 0x53, 0x92, 0x82, 0x58, 0xf0, 0xd2, 0x1a, 0x67, 0x10, 0xd0, 0x46, 0xb7, 0x05, 0x63, 0x55, + 0xa0, 0x3b, 0x1b, 0x7b, 0xfb, 0xfc, 0xd5, 0x20, 0xea, 0x91, 0xc1, 0x9e, 0x45, 0x99, 0xeb, 0x5e, + 0x7d, 0xea, 0x82, 0x47, 0xb7, 0xfa, 0x7b, 0xec, 0x2a, 0xca, 0x6d, 0x48, 0x5b, 0x62, 0x5e, 0x45, + 0xbd, 0xba, 0x8d, 0x5e, 0x23, 0xb8, 0x9c, 0xaf, 0x8a, 0x82, 0x5e, 0xde, 0x81, 0x6b, 0x05, 0x72, + 0xa4, 0x0e, 0x6a, 0xd7, 0xd8, 0x42, 0xaf, 0xbc, 0x88, 0x24, 0xde, 0x55, 0xb2, 0x3f, 0xc2, 0xde, + 0x79, 0x16, 0x9b, 0x4b, 0x4d, 0x25, 0x13, 0x55, 0x73, 0x89, 0xa9, 0x74, 0x62, 0xb9, 0x65, 0xb5, + 0xb6, 0x2f, 0x99, 0x68, 0x55, 0xe6, 0xad, 0x26, 0xd4, 0xdd, 0x16, 0xbb, 0xef, 0xed, 0xfb, 0xf6, + 0x77, 0xac, 0xa2, 0xc5, 0x65, 0x45, 0x14, 0xbb, 0x8f, 0xcf, 0x4d, 0xf2, 0xd5, 0xb0, 0xd1, 0xce, + 0xfb, 0x0f, 0x3d, 0xfe, 0x3c, 0xf9, 0x4f, 0x3c, 0x28, 0xde, 0x2c, 0x3c, 0x7e, 0xaa, 0xb6, 0x99, + 0x0d, 0x34, 0x75, 0x26, 0x38, 0x27, 0x29, 0x8d, 0xf7, 0x55, 0x9e, 0xd5, 0x4e, 0xed, 0xbb, 0xaf, + 0xe5, 0xbc, 0x52, 0xa3, 0xe6, 0xc7, 0xd6, 0x31, 0x76, 0xfb, 0xd7, 0x35, 0x3f, 0xe7, 0xa1, 0xd8, + 0x3a, 0x6f, 0xe6, 0x89, 0x75, 0xef, 0x3f, 0xf8, 0xd8, 0xfa, 0xca, 0xdf, 0x2d, 0x20, 0x7f, 0x2f, + 0xe4, 0x03, 0x49, 0x35, 0x97, 0xf5, 0xce, 0xc2, 0x3d, 0x96, 0x6c, 0xea, 0x6e, 0xda, 0xb0, 0xe0, + 0xa1, 0x5d, 0xcf, 0x53, 0x71, 0x0b, 0xef, 0xa8, 0x98, 0xd7, 0x45, 0x91, 0x01, 0xc0, 0xfb, 0x0a, + 0x73, 0x6d, 0x92, 0xbc, 0x55, 0xbf, 0x79, 0x69, 0xde, 0xc7, 0x67, 0x89, 0x2d, 0xad, 0x21, 0xc9, + 0x1f, 0x60, 0x0f, 0xa9, 0xe0, 0x2e, 0x79, 0x68, 0xef, 0x29, 0xdb, 0xd7, 0x45, 0x7b, 0xff, 0xf2, + 0x50, 0xa4, 0x97, 0xc2, 0x64, 0x82, 0xd6, 0x92, 0x5b, 0x96, 0x87, 0x98, 0x29, 0x8f, 0xf1, 0xd9, + 0xe0, 0xeb, 0x4a, 0x33, 0x21, 0x9b, 0x59, 0x98, 0xe7, 0x97, 0x04, 0x4a, 0x8d, 0x7d, 0x1e, 0x3c, + 0x0e, 0x8e, 0x8e, 0x8a, 0xdb, 0xba, 0x91, 0x6e, 0x2d, 0x60, 0xc9, 0xda, 0x13, 0x6e, 0xd6, 0x39, + 0xb3, 0x5d, 0xcd, 0xd9, 0x13, 0x6e, 0xcb, 0x46, 0x98, 0xd0, 0x82, 0x98, 0xf7, 0x33, 0xaf, 0x66, + 0x9e, 0xcd, 0x27, 0x81, 0x97, 0x9a, 0x8e, 0x57, 0x02, 0x26, 0x4b, 0x99, 0xfc, 0x58, 0x15, 0x72, + 0xb7, 0x22, 0x8d, 0x6d, 0x4b, 0xd5, 0x50, 0x25, 0xf8, 0x7b, 0x4e, 0x60, 0x0a, 0x73, 0x79, 0x3e, + 0x9d, 0x59, 0xa4, 0xcf, 0x8e, 0xad, 0x17, 0xf5, 0x5f, 0x0f, 0xfe, 0x5d, 0x5a, 0x52, 0x48, 0xd0, + 0x23, 0xca, 0x32, 0xf4, 0x93, 0xa7, 0x7c, 0x59, 0xa0, 0xa3, 0x1b, 0xf4, 0xfd, 0xc2, 0xf3, 0x2e, + 0x5f, 0xf2, 0x8a, 0x71, 0x33, 0xb7, 0x94, 0x57, 0xd2, 0x6e, 0xf0, 0x65, 0x32, 0x9d, 0x85, 0xfe, + 0xd6, 0x83, 0xde, 0x39, 0x7c, 0x5e, 0xa9, 0x16, 0x32, 0x60, 0x2e, 0xf8, 0x7a, 0x7d, 0xda, 0xd2, + 0xdf, 0xab, 0x2e, 0xd5, 0xed, 0x95, 0x91, 0x23, 0x89, 0x13, 0xee, 0x32, 0xeb, 0xf7, 0x5d, 0x2a, + 0xe2, 0xf9, 0x7c, 0x6e, 0xf1, 0x17, 0xfe, 0xa1, 0xb9, 0xc0, 0xe0, 0x3b, 0x7e, 0xa6, 0x56, 0x68, + 0x2a, 0x46, 0x9a, 0x91, 0xbd, 0xbc, 0x6f, 0x3c, 0x56, 0x85, 0x16, 0xce, 0xe0, 0x7d, 0xc2, 0x0c, + 0x03, 0xfb, 0x8c, 0x1b, 0x53, 0xfa, 0x04, 0x9d, 0xca, 0x91, 0x9f, 0x08, 0xe5, 0x94, 0x4c, 0x7d, + 0x2f, 0xfc, 0x43, 0xeb, 0x46, 0xc7, 0xbc, 0xb1, 0x7e, 0xd9, 0xaf, 0x9e, 0x59, 0x11, 0xe7, 0x9e, + 0x58, 0xd8, 0xc3, 0x96, 0xd5, 0x43, 0x26, 0x4d, 0x8b, 0x87, 0x78, 0x46, 0x14, 0x42, 0x50, 0x5e, + 0xff, 0x32, 0xed, 0x4a, 0x3c, 0x8b, 0x4f, 0xc3, 0xc2, 0xd3, 0x48, 0xc2, 0x19, 0x5b, 0x4a, 0xb6, + 0xc0, 0x0e, 0x71, 0x1a, 0xa9, 0x7c, 0x1b, 0xf0, 0x4b, 0x12, 0xef, 0x78, 0xc9, 0xd9, 0x4f, 0xd2, + 0x82, 0x1d, 0x24, 0xc7, 0x76, 0x90, 0x55, 0x65, 0x9f, 0x13, 0x12, 0xc6, 0x25, 0xb1, 0xd7, 0x14, + 0xfc, 0x4b, 0xb6, 0xf9, 0x28, 0x73, 0xd0, 0x47, 0xe6, 0x41, 0x13, 0xef, 0xbe, 0x1a, 0xae, 0x1d, + 0x34, 0xe5, 0xf8, 0x68, 0x52, 0xa3, 0x69, 0xc0, 0xa4, 0xdb, 0xb0, 0xea, 0x27, 0xb3, 0xb9, 0x59, + 0x52, 0xc3, 0xf8, 0x08, 0xbc, 0xf2, 0x09, 0x6c, 0xfb, 0xb4, 0x57, 0xd8, 0xd3, 0x80, 0x33, 0x4b, + 0x9c, 0x6d, 0xd9, 0x31, 0xe6, 0x8c, 0xc7, 0xbb, 0xdf, 0x04, 0x55, 0xfc, 0xea, 0x25, 0xe7, 0xf2, + 0x8c, 0x80, 0x6a, 0xd9, 0xbb, 0x93, 0xf7, 0x3e, 0xa5, 0x7d, 0x07, 0x87, 0xc6, 0x7b, 0x0e, 0xe6, + 0x53, 0xd8, 0x7c, 0xd9, 0xed, 0xb6, 0xf1, 0x3d, 0xd3, 0x38, 0x35, 0x49, 0x9c, 0x05, 0x67, 0xec, + 0x5d, 0x77, 0x8a, 0x52, 0x25, 0x94, 0xda, 0xc0, 0xa3, 0xcf, 0xb4, 0x90, 0xf0, 0xb4, 0xae, 0x00, + 0x27, 0x19, 0xd7, 0x94, 0x7f, 0xf4, 0x78, 0xef, 0xf1, 0x5e, 0xe8, 0xac, 0x87, 0x2a, 0xcf, 0x66, + 0x04, 0x9c, 0x9b, 0x95, 0xfb, 0xc7, 0x96, 0x9a, 0x3a, 0x69, 0xae, 0x5c, 0xf2, 0xf8, 0xf4, 0x93, + 0xe6, 0x44, 0xce, 0x68, 0x93, 0x2b, 0x9f, 0x88, 0xf3, 0xab, 0x33, 0xd8, 0xbf, 0x24, 0xf2, 0x0b, + 0x8f, 0x99, 0xb5, 0x07, 0x07, 0x61, 0xde, 0x56, 0x79, 0xa1, 0x94, 0x1c, 0x4b, 0x33, 0x02, 0xd0, + 0x7c, 0xfd, 0xfb, 0x9e, 0x22, 0x39, 0xee, 0x32, 0xce, 0x7a, 0x95, 0x95, 0xa4, 0x6a, 0x4d, 0xf9, + 0x86, 0xbe, 0x25, 0x98, 0x11, 0x18, 0x7b, 0x06, 0x10, 0x64, 0xce, 0x5a, 0xc3, 0xc3, 0xc3, 0x91, + 0x31, 0xb9, 0x02, 0x92, 0x60, 0xb9, 0xe0, 0x65, 0x9d, 0xe0, 0x65, 0x01, 0xd4, 0x75, 0x37, 0x34, + 0xf7, 0xbd, 0xa0, 0x3a, 0x0f, 0xdb, 0xa6, 0xa3, 0x77, 0xea, 0x67, 0x46, 0x66, 0xa6, 0xbd, 0xf7, + 0x8e, 0xb3, 0x59, 0x76, 0xf3, 0xec, 0xc4, 0x36, 0x9b, 0x87, 0x4a, 0x22, 0xc9, 0xca, 0x8f, 0xa8, + 0x2f, 0x32, 0xe0, 0xc8, 0x14, 0x34, 0x7c, 0xc9, 0x99, 0x21, 0x76, 0x28, 0xac, 0xe6, 0xb8, 0x92, + 0x20, 0xe2, 0x36, 0x87, 0xa4, 0x76, 0x53, 0xc8, 0xa4, 0x06, 0xa6, 0xd2, 0x6b, 0x1e, 0xde, 0xf3, + 0xb1, 0x86, 0xa6, 0x4a, 0x8e, 0x39, 0x90, 0x81, 0x6c, 0xec, 0x77, 0x56, 0x79, 0x61, 0x07, 0xc5, + 0x24, 0x35, 0x5b, 0xc4, 0xce, 0x9a, 0xff, 0x0f, 0x91, 0xfb, 0x02, 0x73, 0x94, 0x0d, 0x31, 0xd3, + 0x20, 0x2d, 0xe8, 0xab, 0x98, 0xf4, 0xa2, 0x29, 0xce, 0xfe, 0xd2, 0x9c, 0x62, 0x77, 0x43, 0x19, + 0x72, 0xeb, 0x07, 0x17, 0x3a, 0xce, 0xeb, 0xa8, 0x8d, 0x6b, 0x9d, 0x99, 0x8d, 0x3d, 0x08, 0x71, + 0xb2, 0x7f, 0x60, 0x67, 0xf8, 0x91, 0x57, 0x85, 0x37, 0xba, 0x8b, 0xec, 0x81, 0xae, 0x8e, 0xe9, + 0x76, 0x63, 0x6a, 0x4f, 0xa8, 0x83, 0x25, 0x29, 0xc8, 0x95, 0xaf, 0x1f, 0x76, 0x8a, 0xf5, 0x74, + 0x7f, 0xa0, 0x0f, 0xf2, 0xcb, 0xd9, 0xba, 0x8e, 0xc9, 0x35, 0xa6, 0xc3, 0xdd, 0x07, 0x93, 0xef, + 0xf5, 0x75, 0x52, 0x8d, 0x34, 0xd0, 0x13, 0x9d, 0x4e, 0xa6, 0x84, 0xe2, 0x80, 0x16, 0x54, 0x32, + 0xb3, 0x8f, 0x3a, 0x29, 0x17, 0xbf, 0xab, 0x27, 0x1f, 0x5a, 0xd7, 0xd7, 0x53, 0x9c, 0x71, 0x36, + 0x7a, 0x68, 0x5d, 0x4f, 0xcf, 0x2b, 0xeb, 0x92, 0x6b, 0xb9, 0xcd, 0xf4, 0x1d, 0xa0, 0xdb, 0xc2, + 0xa0, 0x0e, 0x85, 0xf7, 0xf4, 0x0c, 0x47, 0xb7, 0x56, 0x82, 0x92, 0x9d, 0x3a, 0xfd, 0x6e, 0x09, + 0xfe, 0xc3, 0x4b, 0x3a, 0x47, 0x7a, 0xf9, 0xa0, 0x2e, 0x95, 0x41, 0x22, 0xee, 0x79, 0xe9, 0x40, + 0x6a, 0xff, 0x5b, 0x4a, 0xde, 0xab, 0x50, 0x14, 0x5e, 0xa7, 0x41, 0x1e, 0xac, 0x0f, 0x80, 0xbe, + 0xdd, 0xe2, 0x34, 0x6e, 0xb1, 0xbf, 0x13, 0xed, 0x10, 0xd8, 0x4e, 0xfa, 0x7e, 0xc4, 0xe1, 0xda, + 0x95, 0x93, 0x6b, 0x32, 0x0e, 0x42, 0x1e, 0xeb, 0x2a, 0x38, 0xff, 0x74, 0xcf, 0x5a, 0x97, 0xc4, + 0xe5, 0x9f, 0x9d, 0xcb, 0x65, 0x4c, 0xa6, 0x9e, 0xb5, 0xbb, 0xd6, 0xc5, 0x83, 0x62, 0xef, 0x67, + 0x05, 0xcb, 0x8b, 0x68, 0x39, 0xff, 0x76, 0xe2, 0xfd, 0xad, 0x67, 0x23, 0x5c, 0xc3, 0x81, 0x6e, + 0x86, 0x90, 0xe1, 0x98, 0x4c, 0xc9, 0x1e, 0x87, 0xac, 0xe7, 0xd8, 0x39, 0xf9, 0x60, 0x4f, 0xb2, + 0xbb, 0x7f, 0xad, 0x71, 0x06, 0x62, 0xda, 0x2b, 0x87, 0xdc, 0x25, 0x68, 0x9f, 0x21, 0xcb, 0x15, + 0xf2, 0xb6, 0x80, 0x86, 0x71, 0xc6, 0xd0, 0xe8, 0x3e, 0x7c, 0xcf, 0x76, 0x77, 0x4e, 0xae, 0x91, + 0x0e, 0x01, 0x6f, 0x2b, 0xa9, 0x26, 0x63, 0x60, 0xad, 0x28, 0xdb, 0x35, 0x5a, 0xb6, 0x3b, 0x83, + 0x39, 0xd8, 0x64, 0x1a, 0xee, 0xed, 0xe9, 0x5d, 0x35, 0xb9, 0x46, 0x3e, 0xbc, 0xf6, 0x6c, 0x6f, + 0x2f, 0x9e, 0x5e, 0xe9, 0x05, 0xf6, 0x4c, 0x27, 0x1f, 0x18, 0xc2, 0x6f, 0xa4, 0x4a, 0xe8, 0x82, + 0xf6, 0xa1, 0xb5, 0x4a, 0xb7, 0x43, 0x3a, 0xb9, 0xe1, 0x18, 0x7e, 0xd9, 0x9b, 0x3c, 0x63, 0xe4, + 0x58, 0xb7, 0xd2, 0xe3, 0xa0, 0x93, 0x1b, 0x06, 0xbb, 0x1d, 0x64, 0x84, 0x29, 0x83, 0xdd, 0x4a, + 0x12, 0xd0, 0x15, 0xe8, 0x7b, 0xdc, 0x99, 0x1b, 0x79, 0xdb, 0xc0, 0x99, 0x9e, 0x1b, 0x59, 0xec, + 0x4d, 0x79, 0xb0, 0x06, 0xc4, 0x4e, 0xee, 0x53, 0xd0, 0xde, 0xc4, 0x1c, 0x59, 0x80, 0x77, 0x6d, + 0x27, 0xb2, 0xa0, 0xbb, 0x42, 0x5b, 0xd4, 0x8e, 0x62, 0x44, 0x2d, 0x24, 0x6b, 0xfa, 0x7d, 0x7f, + 0xc3, 0x26, 0xc7, 0xdc, 0xf6, 0xfc, 0x71, 0x67, 0x65, 0x59, 0xd2, 0xe7, 0xde, 0x1f, 0x37, 0x76, + 0xce, 0x2c, 0x60, 0x1d, 0x0a, 0xe3, 0xfc, 0x62, 0x8c, 0xf0, 0x8b, 0x9c, 0xbc, 0x72, 0xe7, 0x21, + 0xe7, 0xae, 0xa7, 0xa1, 0x07, 0x98, 0x85, 0x9f, 0xc9, 0x0a, 0xf4, 0x96, 0x82, 0x7d, 0x2b, 0x28, + 0x37, 0x9e, 0x0b, 0xd9, 0x26, 0x1f, 0x3a, 0x77, 0x5e, 0x3c, 0x2b, 0xe0, 0xa1, 0xa9, 0xbb, 0x56, + 0x90, 0x3d, 0xb1, 0xda, 0x80, 0xc0, 0x2a, 0x4a, 0x8c, 0xa6, 0x21, 0xd0, 0xdf, 0xcb, 0x1a, 0x36, + 0x41, 0xfa, 0x9d, 0x1a, 0x39, 0x18, 0x60, 0x4f, 0x40, 0x07, 0x52, 0x67, 0x28, 0xaf, 0x34, 0x29, + 0x2d, 0x24, 0xb3, 0x25, 0xdb, 0xc8, 0x72, 0xb6, 0x39, 0xb8, 0x5e, 0x9a, 0x50, 0xc6, 0xb8, 0x34, + 0xd6, 0x3b, 0xd8, 0x66, 0x2d, 0x17, 0xbf, 0xf9, 0x94, 0x77, 0x07, 0x9f, 0xb1, 0x6d, 0xbf, 0x95, + 0x6d, 0x88, 0x6c, 0xb6, 0x42, 0xf6, 0x58, 0x14, 0x28, 0xa4, 0xdc, 0xf7, 0x6a, 0xd1, 0x53, 0xbc, + 0x91, 0x01, 0x41, 0x83, 0x17, 0xf4, 0x9d, 0x92, 0xfc, 0xfd, 0x95, 0xd5, 0x5c, 0xa3, 0xa9, 0x1e, + 0x0c, 0xb9, 0x13, 0xd8, 0x76, 0x1e, 0x3a, 0x55, 0xd1, 0x61, 0xa4, 0x44, 0xea, 0x62, 0xf4, 0xbb, + 0xa6, 0x76, 0x53, 0x31, 0x45, 0x0e, 0x7a, 0xa4, 0x23, 0x6b, 0x13, 0x66, 0xa5, 0x7b, 0xa8, 0x57, + 0xcd, 0xcd, 0xf7, 0xd0, 0x9d, 0x91, 0x75, 0x65, 0xd5, 0x9e, 0x1b, 0x0e, 0xad, 0x9b, 0x7f, 0x30, + 0xd2, 0x53, 0x16, 0x52, 0x1e, 0x1c, 0x0c, 0x2e, 0xe8, 0xfb, 0xf1, 0xe1, 0xf8, 0xb1, 0xc8, 0x7d, + 0x91, 0x7f, 0x28, 0x2d, 0xe4, 0x3d, 0x84, 0x5c, 0x9a, 0x38, 0x91, 0x79, 0x05, 0xef, 0xa0, 0x5f, + 0x49, 0xef, 0x6d, 0x2c, 0xe3, 0xbd, 0x99, 0xe2, 0x2c, 0xe6, 0x47, 0x8f, 0x88, 0x7d, 0x1d, 0xa7, + 0x52, 0x67, 0x7d, 0x92, 0x7b, 0x7c, 0x0b, 0xb6, 0xe7, 0x5f, 0xe7, 0x7c, 0xaa, 0xa9, 0xb7, 0x46, + 0xc1, 0x73, 0x83, 0xc2, 0x7a, 0x9a, 0xe5, 0xd1, 0x02, 0x48, 0x46, 0xa2, 0x25, 0xaf, 0xc4, 0x78, + 0xfd, 0x59, 0xb7, 0x93, 0xd0, 0xd7, 0x00, 0x2a, 0x98, 0x73, 0x3b, 0x41, 0xbd, 0x6e, 0xd0, 0x08, + 0x7b, 0x0f, 0x28, 0xf6, 0xdb, 0x74, 0xda, 0x9d, 0x48, 0x89, 0x2c, 0x29, 0x78, 0x45, 0xf3, 0x27, + 0x79, 0x37, 0xae, 0xe2, 0x41, 0x6b, 0xe4, 0x0b, 0x5f, 0x3b, 0xe4, 0xab, 0x05, 0x14, 0xfb, 0xb4, + 0x83, 0xa0, 0x02, 0xab, 0x38, 0x47, 0x0d, 0x74, 0x08, 0x6c, 0xe7, 0xea, 0x3e, 0x94, 0xe2, 0xf7, + 0xa0, 0x15, 0x72, 0xc4, 0xb9, 0xd2, 0x36, 0xe0, 0x48, 0x9c, 0x39, 0xad, 0x9f, 0x2d, 0xcd, 0x27, + 0xc5, 0x24, 0xc4, 0x0a, 0x9b, 0xf0, 0x32, 0x8c, 0x1a, 0xbf, 0xb7, 0x91, 0xeb, 0xc8, 0xa7, 0x4d, + 0x4b, 0xcb, 0xaf, 0x40, 0x0b, 0x54, 0xf3, 0xdf, 0xdb, 0xc8, 0xa7, 0xe8, 0x2a, 0xe1, 0xca, 0x0b, + 0x6e, 0xcd, 0x69, 0x51, 0xaa, 0x2a, 0x2f, 0x2c, 0xd0, 0x5c, 0xec, 0xeb, 0xe0, 0x4d, 0x86, 0x8d, + 0x1a, 0x2c, 0xd0, 0x8f, 0xc2, 0x5d, 0x29, 0xdf, 0x29, 0xa5, 0x01, 0x70, 0x02, 0xc1, 0x15, 0x40, + 0x7f, 0xee, 0x68, 0x6f, 0x1c, 0x35, 0x8e, 0x67, 0xb1, 0x77, 0x51, 0xdc, 0x89, 0x0e, 0xb5, 0xd7, + 0x5c, 0x7b, 0x96, 0x9a, 0xb0, 0x22, 0x78, 0xa6, 0xf2, 0x1c, 0xa5, 0xad, 0xb2, 0x3e, 0x1b, 0x6a, + 0x67, 0x6c, 0x95, 0xa0, 0x3e, 0x65, 0xe8, 0x2d, 0x4e, 0x63, 0xb7, 0xef, 0x5e, 0x67, 0x32, 0xd1, + 0x01, 0x0c, 0x7a, 0x85, 0xcf, 0x6c, 0xed, 0xce, 0x43, 0x0b, 0x36, 0xc5, 0x92, 0xa3, 0x6b, 0xe8, + 0x9f, 0x35, 0xe1, 0x9b, 0x8a, 0x44, 0x8d, 0xc0, 0x2c, 0xc7, 0xf7, 0x37, 0x6c, 0x52, 0xe5, 0x69, + 0x61, 0x0a, 0x01, 0x57, 0x25, 0x3c, 0x0b, 0xc3, 0x73, 0x30, 0xe3, 0x5b, 0x07, 0x5f, 0x04, 0xe2, + 0x7c, 0x96, 0x5a, 0xc5, 0xd5, 0xfb, 0x5a, 0x95, 0x98, 0x51, 0xea, 0x2e, 0x47, 0xb4, 0x7d, 0xd4, + 0xbb, 0x5b, 0x91, 0x58, 0xf5, 0x17, 0xa7, 0x13, 0x88, 0xd3, 0x32, 0x8d, 0xf5, 0xcc, 0x39, 0x80, + 0x7e, 0xbc, 0xbf, 0x60, 0x2a, 0x83, 0x6c, 0x4b, 0xea, 0x54, 0xe4, 0x1d, 0x28, 0x9e, 0x69, 0x97, + 0x17, 0x76, 0x47, 0x43, 0x89, 0xec, 0xb1, 0x5e, 0x83, 0xd5, 0x35, 0xb1, 0xe4, 0x0b, 0x03, 0xf1, + 0xb7, 0x57, 0x82, 0x5b, 0xab, 0x7c, 0xfa, 0x5e, 0x40, 0x69, 0x2f, 0xa5, 0x85, 0x6b, 0x75, 0xcf, + 0xc9, 0xde, 0x66, 0xe1, 0x7b, 0xe0, 0x50, 0xac, 0x67, 0x37, 0xb0, 0xb0, 0x64, 0x78, 0xb4, 0x0e, + 0x9c, 0xe3, 0xd8, 0xf3, 0x1a, 0x01, 0x69, 0x6a, 0x87, 0xed, 0xf5, 0xea, 0x31, 0xa6, 0xc4, 0xf1, + 0x35, 0xe1, 0xd3, 0xb7, 0x47, 0x57, 0xdd, 0xe7, 0xbe, 0x8f, 0x1a, 0x8c, 0x5d, 0x6d, 0x2f, 0xa4, + 0x92, 0x47, 0x5e, 0xed, 0x20, 0xd5, 0xa1, 0xac, 0xa0, 0xc0, 0xeb, 0xaf, 0x1a, 0xfb, 0x96, 0xed, + 0x0b, 0x37, 0x40, 0x23, 0x91, 0xe3, 0x59, 0x42, 0x92, 0xe4, 0x59, 0xcd, 0xbd, 0xb1, 0xee, 0xfe, + 0xee, 0xf8, 0x5b, 0xfd, 0x4f, 0x53, 0x59, 0x7c, 0x11, 0x8f, 0xf4, 0x3c, 0xd6, 0xf7, 0xd9, 0x15, + 0xcb, 0x78, 0x4c, 0x1b, 0x9e, 0x2c, 0xfb, 0x38, 0x5f, 0x3d, 0x95, 0x38, 0x3d, 0xb1, 0x90, 0x02, + 0x62, 0x4f, 0x06, 0x9f, 0x69, 0x50, 0x98, 0xae, 0xe1, 0x8a, 0xf1, 0x35, 0xbc, 0xb5, 0x8e, 0x02, + 0x0b, 0x9e, 0xa6, 0x12, 0xe3, 0x0c, 0x46, 0xe4, 0xf5, 0xeb, 0x81, 0xc1, 0x8d, 0xfc, 0xfb, 0xeb, + 0xf7, 0x29, 0x80, 0xd4, 0x15, 0xce, 0x46, 0xe6, 0xbd, 0xde, 0xa5, 0xb2, 0x5e, 0x7f, 0x19, 0x52, + 0x86, 0x19, 0x70, 0x87, 0x1e, 0x79, 0x55, 0xec, 0xf0, 0x4d, 0x26, 0xb2, 0x63, 0x80, 0xef, 0x4e, + 0x01, 0xb3, 0xbb, 0x49, 0x78, 0x4c, 0x1d, 0xb3, 0xb6, 0x2f, 0xbc, 0xa7, 0xd2, 0xf8, 0x7e, 0x7c, + 0x75, 0x8b, 0x3e, 0x7c, 0x18, 0xad, 0x99, 0xc7, 0xb8, 0x7f, 0xe3, 0xb0, 0x63, 0x4a, 0x22, 0x67, + 0x77, 0x77, 0x5c, 0x0e, 0x61, 0x44, 0x8e, 0x25, 0x17, 0xf6, 0xf5, 0xef, 0xa4, 0x92, 0x25, 0xa7, + 0xc7, 0x62, 0x5a, 0xef, 0xcf, 0x6c, 0x53, 0xd6, 0x5e, 0x3c, 0xd6, 0xca, 0xc3, 0x49, 0x09, 0x97, + 0xf0, 0xae, 0xbf, 0xcb, 0x11, 0x1c, 0x3d, 0xa9, 0xef, 0xb3, 0xcd, 0x8e, 0x90, 0x3e, 0x22, 0x5c, + 0x51, 0x66, 0x84, 0xe8, 0x31, 0x5d, 0x82, 0xd5, 0x4f, 0xca, 0x06, 0x3f, 0x17, 0x67, 0x60, 0xa0, + 0x8d, 0x9c, 0x2c, 0x07, 0x70, 0x1d, 0x15, 0xb7, 0xf4, 0x24, 0xf4, 0x64, 0xab, 0x8f, 0xd7, 0x93, + 0x6d, 0xe2, 0x34, 0x94, 0x5c, 0x3c, 0xbb, 0xc8, 0x1e, 0x7a, 0x9e, 0x0a, 0x94, 0xa5, 0x52, 0xd7, + 0x23, 0xaf, 0x56, 0xb3, 0xec, 0x8b, 0xba, 0x83, 0xc3, 0x4e, 0x65, 0xff, 0x57, 0x2c, 0x33, 0x8b, + 0xd6, 0x66, 0x9a, 0xb5, 0x47, 0x77, 0x4a, 0x4f, 0xc6, 0x73, 0x18, 0x12, 0x57, 0xa5, 0x77, 0xb9, + 0xa0, 0xb4, 0x13, 0xd3, 0x82, 0xd2, 0x93, 0x1c, 0x9e, 0xb8, 0x27, 0xba, 0x53, 0xbe, 0x3b, 0xee, + 0xd2, 0x63, 0xdb, 0xc9, 0x88, 0x7f, 0x73, 0x5a, 0x10, 0xa1, 0xb6, 0x71, 0xdf, 0x1c, 0x51, 0x03, + 0x90, 0x24, 0x73, 0xa5, 0x2e, 0xd7, 0x72, 0x89, 0x4f, 0xe8, 0x6c, 0x52, 0xed, 0x62, 0x4f, 0xc5, + 0x94, 0x44, 0x76, 0xf4, 0x69, 0x9a, 0x1a, 0xe7, 0x1d, 0x37, 0x93, 0xea, 0xb7, 0x42, 0xd6, 0xd5, + 0xbd, 0x77, 0x9f, 0x6a, 0x27, 0x7d, 0xa4, 0x5e, 0x48, 0x57, 0x8f, 0x85, 0xda, 0x09, 0xfd, 0xf4, + 0x81, 0x31, 0x21, 0x87, 0xf4, 0x90, 0xdf, 0x77, 0x6e, 0xa1, 0xf0, 0x6a, 0xc6, 0xf6, 0x76, 0x3e, + 0xca, 0x43, 0x0f, 0xa9, 0x41, 0x0f, 0x0b, 0xfe, 0xdd, 0xe0, 0x37, 0xc0, 0xd9, 0xfd, 0x21, 0xa7, + 0x05, 0x52, 0x51, 0x65, 0xc2, 0x11, 0x4d, 0xc6, 0xa7, 0xda, 0xca, 0x29, 0x7b, 0xbc, 0x0c, 0x08, + 0x6a, 0x64, 0xcf, 0x06, 0x35, 0x4a, 0x50, 0xb9, 0x3f, 0xed, 0xb1, 0xf1, 0xac, 0xc0, 0x74, 0x0b, + 0x59, 0x78, 0xa7, 0xa9, 0xeb, 0xbf, 0x8c, 0xdd, 0x69, 0x2a, 0x56, 0xd8, 0x7a, 0x2b, 0xdf, 0x97, + 0x47, 0xbd, 0x80, 0x0f, 0xf9, 0x0a, 0xe5, 0x0a, 0x61, 0xb9, 0xba, 0xac, 0xfa, 0xb2, 0x56, 0x5c, + 0xbf, 0xe5, 0xd6, 0xa0, 0xd4, 0x9b, 0x0e, 0x5b, 0x23, 0xde, 0xfb, 0xd2, 0xef, 0x9b, 0xc4, 0xfb, + 0xc6, 0xf4, 0xfb, 0xdf, 0x88, 0xf7, 0xcd, 0xe2, 0x5c, 0xaa, 0xa7, 0x8d, 0xb0, 0x5d, 0x22, 0x6c, + 0x6b, 0x3a, 0xcd, 0xa0, 0x78, 0xdf, 0x9e, 0x7e, 0x7f, 0x57, 0xbc, 0x3f, 0x2e, 0xbc, 0x2e, 0x3d, + 0x2d, 0xf5, 0x0a, 0xdf, 0xa8, 0x4f, 0x4b, 0x7d, 0x3c, 0x0b, 0x8f, 0xfb, 0x46, 0xdc, 0x4f, 0xe1, + 0xce, 0x7e, 0x8a, 0xdf, 0xc2, 0x7d, 0x2b, 0xaf, 0xef, 0xe0, 0xbe, 0x9d, 0xd7, 0xee, 0x44, 0xef, + 0x3b, 0x24, 0x5a, 0x6f, 0x8d, 0xe1, 0xd7, 0xa4, 0x0b, 0x79, 0x71, 0xe8, 0x73, 0x95, 0xef, 0x4b, + 0x15, 0x63, 0x78, 0xaf, 0x86, 0x70, 0xf7, 0xad, 0x5d, 0x64, 0x23, 0xa8, 0xb8, 0x0f, 0x1f, 0x16, + 0xb8, 0x18, 0xc4, 0xb8, 0xa7, 0x7f, 0x05, 0x8a, 0x92, 0xfc, 0x89, 0x55, 0x8e, 0x42, 0xa9, 0xb7, + 0xa1, 0x3b, 0xe5, 0x81, 0x51, 0x29, 0x94, 0xb6, 0x0a, 0x6b, 0x51, 0xe1, 0x35, 0x36, 0x6d, 0x11, + 0x36, 0x89, 0x7d, 0x11, 0xe9, 0x35, 0x0b, 0xfd, 0x6d, 0x35, 0xf2, 0xf9, 0xe8, 0x82, 0xa8, 0x41, + 0xbb, 0x38, 0x13, 0xce, 0xe5, 0x9b, 0xa4, 0xdb, 0x6b, 0xb9, 0xd6, 0x84, 0xfe, 0x56, 0x84, 0x37, + 0x73, 0x78, 0x5c, 0x81, 0x6e, 0x68, 0x78, 0xee, 0xbf, 0xf0, 0x76, 0xc3, 0x26, 0xae, 0x3d, 0xde, + 0xfd, 0xf5, 0xfb, 0x3e, 0x3b, 0xc5, 0x96, 0xa6, 0x69, 0xff, 0xa8, 0x29, 0x7f, 0xb1, 0xbb, 0x79, + 0x57, 0x25, 0xb7, 0x9a, 0xb3, 0x85, 0xac, 0x28, 0xf7, 0xbc, 0xe1, 0xbd, 0x56, 0xf8, 0x07, 0x56, + 0x3c, 0x72, 0x6c, 0x01, 0x43, 0x26, 0x4e, 0xb2, 0x34, 0xce, 0x27, 0x3e, 0x96, 0x3a, 0x9f, 0xd8, + 0xcd, 0xe7, 0x4e, 0xef, 0x6d, 0xd8, 0x94, 0x20, 0x69, 0xb1, 0x12, 0x04, 0x1f, 0x96, 0x62, 0x3d, + 0x1d, 0xda, 0xae, 0xed, 0xf1, 0x4b, 0x7c, 0xe2, 0x77, 0x47, 0x05, 0x78, 0xd1, 0xb8, 0xf1, 0xea, + 0xb3, 0x26, 0xa4, 0xdf, 0x1d, 0x77, 0x70, 0xae, 0x77, 0x8b, 0x5c, 0x0b, 0xeb, 0xae, 0xcd, 0x55, + 0x25, 0xd3, 0x39, 0xa5, 0x45, 0xdb, 0x7d, 0xcb, 0x5c, 0xca, 0xf7, 0x42, 0x45, 0x0a, 0x55, 0x85, + 0xaa, 0xbb, 0x8e, 0x9d, 0x78, 0xb0, 0xe8, 0x86, 0xbb, 0xee, 0x9b, 0xd1, 0x44, 0x25, 0x33, 0x10, + 0x47, 0x65, 0xbb, 0x7b, 0xef, 0xe5, 0x99, 0xdd, 0x6a, 0x8c, 0x8b, 0x3d, 0x4a, 0x6e, 0xc7, 0x94, + 0xa1, 0x9d, 0x72, 0x4c, 0x78, 0x82, 0x0a, 0x6a, 0xc7, 0x2b, 0x3f, 0xd0, 0x4e, 0x17, 0x46, 0xb4, + 0x13, 0xe2, 0xac, 0xb7, 0x61, 0xce, 0x1f, 0xfa, 0xb0, 0x91, 0x7b, 0xd9, 0x0c, 0xed, 0x5c, 0xc3, + 0xa6, 0x68, 0x55, 0x3c, 0xa2, 0xe4, 0x3a, 0x00, 0xc7, 0x3d, 0xdd, 0x63, 0xbe, 0xba, 0xc8, 0x5f, + 0x15, 0xce, 0xb9, 0xfa, 0x1b, 0x9f, 0x47, 0x3f, 0x9f, 0xd0, 0xe7, 0x91, 0x36, 0xb3, 0x15, 0x1c, + 0x34, 0xee, 0x1d, 0x82, 0x8a, 0xd0, 0x4a, 0x71, 0x69, 0xa5, 0x29, 0xd6, 0xbb, 0x60, 0x63, 0xc3, + 0x43, 0xbb, 0x7b, 0x17, 0x93, 0xa6, 0x8e, 0xa9, 0x5b, 0x8b, 0xb6, 0xf7, 0xda, 0xda, 0x19, 0x79, + 0x9d, 0x77, 0x78, 0xa4, 0xed, 0xe2, 0x44, 0xbd, 0x49, 0xb5, 0x97, 0x47, 0xee, 0xae, 0xdf, 0x6a, + 0x84, 0x5f, 0x50, 0x10, 0x2e, 0xce, 0x6d, 0x9c, 0x24, 0x6c, 0x1a, 0xdd, 0xc2, 0x66, 0x31, 0xcb, + 0xc0, 0x87, 0x55, 0x9d, 0x2a, 0x78, 0xc2, 0x4f, 0xe9, 0xa4, 0xd3, 0xea, 0x40, 0xd8, 0x57, 0xc1, + 0xc7, 0x18, 0xff, 0xb4, 0x9f, 0x96, 0x81, 0x73, 0xd8, 0x90, 0xfa, 0x42, 0x7c, 0x0d, 0xf2, 0xe8, + 0xed, 0x98, 0x2c, 0xbc, 0x61, 0xed, 0xef, 0x30, 0xe1, 0x77, 0x20, 0xa7, 0x9c, 0x26, 0x89, 0xf7, + 0x43, 0x68, 0xc7, 0xc3, 0xb8, 0x8e, 0xe2, 0x1a, 0x44, 0x5e, 0x33, 0xb4, 0xdd, 0x22, 0x37, 0xf6, + 0x2f, 0xcf, 0xbe, 0x47, 0x03, 0x80, 0xfc, 0x30, 0xe7, 0xac, 0x40, 0x17, 0xe2, 0xba, 0x08, 0x6f, + 0x59, 0xc7, 0xaa, 0x3e, 0xd0, 0xf6, 0xb3, 0x8f, 0x2d, 0xc3, 0xda, 0xf8, 0xd8, 0x58, 0xbf, 0x4b, + 0xed, 0x24, 0xa0, 0x0b, 0x82, 0x83, 0xb2, 0x9f, 0x27, 0x1d, 0x86, 0x2c, 0xce, 0x23, 0xfa, 0x14, + 0xb9, 0x12, 0x0a, 0xda, 0x28, 0x12, 0xad, 0x4a, 0x84, 0x39, 0x15, 0xb1, 0x65, 0x9b, 0xcd, 0xb0, + 0x2c, 0x1e, 0xfe, 0xd7, 0x30, 0xbe, 0xf7, 0x72, 0x4a, 0x0b, 0xf4, 0x2f, 0xe6, 0x7b, 0x8c, 0x05, + 0xdf, 0x74, 0xf0, 0xaf, 0x7d, 0x9f, 0x16, 0x43, 0x4a, 0x47, 0xcc, 0xe8, 0x58, 0x0c, 0x88, 0x77, + 0x2b, 0x80, 0x57, 0xf8, 0xfd, 0xd9, 0x68, 0x58, 0x0d, 0x96, 0x89, 0x95, 0x1c, 0xd6, 0xf2, 0x56, + 0x48, 0x65, 0xfa, 0xd8, 0x0f, 0x6a, 0x2f, 0x81, 0x84, 0x08, 0xa9, 0x4d, 0x3f, 0xb5, 0x5e, 0xf4, + 0x00, 0x48, 0xd2, 0xb5, 0x97, 0x2f, 0x0f, 0xd7, 0x6f, 0x35, 0xde, 0x5c, 0xba, 0xc5, 0xa8, 0xd8, + 0x65, 0x30, 0x25, 0x91, 0x4a, 0x63, 0x65, 0x6e, 0x6b, 0x3c, 0xe7, 0xd7, 0xef, 0xbb, 0xdc, 0x3f, + 0x76, 0xa7, 0x63, 0xc3, 0x26, 0x83, 0xf3, 0xb2, 0x9d, 0xf7, 0x0c, 0xc8, 0x7e, 0xc5, 0x90, 0xc4, + 0x6d, 0x62, 0x9e, 0xbe, 0x85, 0x72, 0x3b, 0x0a, 0x86, 0x9e, 0x12, 0x14, 0x78, 0x51, 0xec, 0xcb, + 0x44, 0x5f, 0xba, 0x9e, 0xa5, 0x37, 0x63, 0x6b, 0xd4, 0xd6, 0x5b, 0x11, 0xfe, 0x5c, 0xdd, 0x48, + 0x2b, 0x76, 0x27, 0x4c, 0x49, 0xac, 0x82, 0x06, 0xe3, 0x10, 0x1a, 0x4c, 0xab, 0xf0, 0x03, 0xe2, + 0x99, 0xc6, 0xde, 0xcf, 0x03, 0xf8, 0xb5, 0x51, 0x51, 0xea, 0x2c, 0xcc, 0xf6, 0xac, 0xc1, 0x67, + 0xc0, 0x29, 0xf9, 0x64, 0x6c, 0xd7, 0xbc, 0xcb, 0x97, 0xa7, 0xd6, 0x6f, 0x83, 0xc4, 0xef, 0x22, + 0x0b, 0xc7, 0x3b, 0x6f, 0xf8, 0x8b, 0x1e, 0x48, 0x70, 0x5e, 0x83, 0x4e, 0xb7, 0xdd, 0x0a, 0xaa, + 0xa5, 0xdc, 0xd4, 0x29, 0x84, 0x3e, 0x49, 0xf1, 0x4a, 0xbd, 0x0b, 0x93, 0xfa, 0xb7, 0x46, 0xac, + 0xcd, 0xf0, 0xe8, 0x2a, 0xeb, 0x9e, 0x66, 0x31, 0x5a, 0xb0, 0xdf, 0x28, 0x4f, 0xc2, 0xee, 0x58, + 0x4a, 0x0e, 0xd0, 0x17, 0xfb, 0x8a, 0x0c, 0x50, 0x2e, 0x7e, 0x8b, 0xc8, 0x16, 0xda, 0x41, 0x9e, + 0x14, 0xaf, 0x57, 0x4a, 0xdd, 0x3a, 0xd7, 0xb0, 0x81, 0x7b, 0xe4, 0x86, 0x5a, 0xb4, 0x2b, 0xd3, + 0xea, 0x30, 0x8e, 0x2c, 0x87, 0x2c, 0x9c, 0x63, 0x9c, 0x3f, 0x72, 0x0e, 0xfd, 0xfb, 0x43, 0x03, + 0x0b, 0xe7, 0xc6, 0x78, 0x55, 0x4b, 0xa2, 0xd7, 0x7e, 0xb2, 0x57, 0x5f, 0xe9, 0x6c, 0x16, 0xf2, + 0x33, 0xaf, 0x77, 0x38, 0xd9, 0xe7, 0x94, 0xe2, 0x65, 0xcf, 0x2e, 0xed, 0x90, 0xea, 0xd2, 0x5e, + 0xdb, 0x72, 0x0b, 0x57, 0xc8, 0x77, 0xeb, 0x79, 0x81, 0x0e, 0xaf, 0x80, 0x0e, 0x3f, 0x56, 0x15, + 0x71, 0x16, 0x0c, 0x51, 0x3f, 0x97, 0xd7, 0x91, 0x3d, 0xf4, 0xb4, 0xc0, 0xfd, 0x39, 0x94, 0xf9, + 0xa1, 0xf0, 0x27, 0xf5, 0xf1, 0xd5, 0xa5, 0xba, 0x75, 0x3b, 0x88, 0xd5, 0xe2, 0x5c, 0xef, 0x02, + 0x3e, 0x43, 0x66, 0xc1, 0xa6, 0x68, 0x0b, 0xcf, 0x60, 0x09, 0x0b, 0xf9, 0x7d, 0x57, 0x5a, 0xf5, + 0x96, 0xc7, 0x37, 0x9f, 0x80, 0x82, 0x7a, 0x7d, 0xd6, 0xea, 0xcb, 0x97, 0x0e, 0xd6, 0x6f, 0x31, + 0xc2, 0x2e, 0x33, 0xc7, 0x8e, 0x71, 0x7f, 0xb5, 0xd6, 0x6f, 0x69, 0xff, 0x73, 0xf6, 0xfc, 0xc3, + 0xf5, 0x4b, 0xd9, 0x51, 0xcf, 0x42, 0xbb, 0x68, 0x1f, 0xe3, 0x77, 0x44, 0xbb, 0xc8, 0x73, 0x71, + 0x4a, 0xb3, 0x51, 0xba, 0x35, 0x7d, 0x92, 0xbb, 0x0c, 0x79, 0xdc, 0xc1, 0xfe, 0x6a, 0x0b, 0x64, + 0xdd, 0xaa, 0x58, 0xd8, 0xd2, 0x1b, 0x3e, 0x12, 0x59, 0xe7, 0x76, 0x36, 0xa8, 0x8a, 0x7e, 0x0e, + 0x5a, 0x3c, 0x4f, 0x5f, 0x93, 0x64, 0x5f, 0x78, 0x7b, 0x76, 0x90, 0x37, 0xce, 0xeb, 0xa4, 0x6e, + 0x35, 0xcb, 0x98, 0xcb, 0x7a, 0x8b, 0xf7, 0xc9, 0x19, 0xd6, 0xf8, 0x6c, 0x2b, 0xa3, 0x40, 0x86, + 0x76, 0xf2, 0xea, 0xd9, 0x9c, 0x73, 0x52, 0xc5, 0x18, 0x39, 0xea, 0x6e, 0x0f, 0xe4, 0x8a, 0x79, + 0x97, 0xb5, 0xed, 0xaa, 0x3b, 0xba, 0x16, 0x7d, 0x8b, 0xe7, 0x01, 0x33, 0xf4, 0xb5, 0x3c, 0xa6, + 0x43, 0xfd, 0x9d, 0x4f, 0xe0, 0x16, 0xe7, 0x7f, 0xd8, 0xe2, 0x59, 0x9e, 0xaf, 0x8b, 0x73, 0x28, + 0x86, 0x80, 0xfb, 0x31, 0xd2, 0x98, 0xd8, 0x6f, 0x62, 0xfd, 0xe2, 0xd2, 0x85, 0xe1, 0xf7, 0x9a, + 0x7b, 0xa8, 0x93, 0xfd, 0x66, 0x16, 0xfb, 0xc8, 0xe3, 0x5e, 0x61, 0xca, 0x15, 0xbe, 0x9e, 0xba, + 0x78, 0x07, 0x54, 0x2c, 0x78, 0x7b, 0x90, 0x6b, 0x07, 0xba, 0x71, 0xab, 0xe6, 0x9f, 0x9e, 0x23, + 0x77, 0xdc, 0x1c, 0x5b, 0x4e, 0xd9, 0x2a, 0x9f, 0x48, 0x57, 0x20, 0x3d, 0xa3, 0x69, 0xda, 0x47, + 0xc4, 0x96, 0x9b, 0x36, 0xe8, 0xa3, 0xf8, 0x0e, 0x3a, 0x80, 0x99, 0xf7, 0x15, 0xab, 0xa9, 0xfd, + 0x29, 0xec, 0x09, 0xea, 0xa0, 0xc8, 0x6f, 0x25, 0xfb, 0xda, 0xd6, 0x67, 0x2c, 0x23, 0xef, 0xce, + 0x64, 0x39, 0x54, 0xe8, 0x51, 0xe2, 0x24, 0x2b, 0x2e, 0x2b, 0xbb, 0x91, 0xcb, 0xca, 0x86, 0x2e, + 0xed, 0x15, 0xbb, 0x59, 0xbd, 0xd1, 0x60, 0xbc, 0x33, 0x5a, 0xd9, 0xb2, 0x18, 0x3d, 0xce, 0x16, + 0x7d, 0x24, 0xb1, 0x50, 0xf8, 0x4b, 0x98, 0x94, 0x28, 0xe6, 0x73, 0xb3, 0x55, 0xb7, 0xf1, 0x36, + 0xd5, 0x21, 0xec, 0xfc, 0x35, 0xb9, 0xfd, 0xca, 0x81, 0xa7, 0x89, 0xfd, 0xf2, 0x67, 0xb3, 0x56, + 0x8b, 0x92, 0x11, 0x7a, 0x65, 0xbf, 0xab, 0xca, 0x75, 0x63, 0xfc, 0x98, 0x5a, 0x9e, 0x4a, 0xc5, + 0xf1, 0xa2, 0xdf, 0xba, 0xc7, 0xa6, 0x52, 0x0b, 0x38, 0x4f, 0x71, 0xfa, 0x82, 0x57, 0xb5, 0x45, + 0x83, 0xcd, 0xd6, 0xa2, 0x72, 0x13, 0x74, 0x47, 0xf1, 0xcd, 0x56, 0xf1, 0x0b, 0xe8, 0xeb, 0x36, + 0xea, 0x12, 0xb4, 0x8b, 0x29, 0x01, 0x78, 0xfc, 0xd5, 0xfb, 0x94, 0x03, 0x99, 0x4c, 0x49, 0xe4, + 0x42, 0x12, 0xcf, 0xf3, 0xb9, 0xd1, 0x7b, 0x59, 0xe3, 0xed, 0x42, 0x5e, 0x4a, 0xc3, 0x26, 0x27, + 0x34, 0xf7, 0x84, 0x82, 0x5e, 0xcc, 0x67, 0xd7, 0x07, 0x53, 0xf3, 0x74, 0x83, 0x49, 0x47, 0x68, + 0x9c, 0x6e, 0xc3, 0x5a, 0xee, 0xf8, 0xef, 0xcb, 0x59, 0xcb, 0x65, 0x4e, 0x26, 0x24, 0xec, 0x2c, + 0xf6, 0xad, 0x8a, 0xd2, 0xac, 0x6c, 0xf5, 0xaa, 0x4c, 0xa7, 0x1c, 0xc7, 0x32, 0xca, 0x73, 0x4c, + 0xe7, 0x91, 0x69, 0xd7, 0x0e, 0xe8, 0x29, 0x56, 0xb1, 0xdf, 0x3c, 0x53, 0x49, 0xf2, 0x8c, 0xad, + 0xa3, 0xc3, 0x42, 0xce, 0x65, 0x18, 0x05, 0x23, 0xe0, 0xa9, 0xb5, 0xc2, 0xae, 0x34, 0x1f, 0xe1, + 0xaf, 0xb3, 0xff, 0x27, 0x83, 0x6b, 0xe4, 0x30, 0x85, 0x28, 0xed, 0x16, 0x12, 0x7b, 0xd2, 0x91, + 0xaf, 0xd8, 0xdb, 0x21, 0x3b, 0xb8, 0x07, 0xbe, 0xce, 0xfa, 0x2d, 0xb7, 0x0b, 0xcb, 0xe2, 0xf8, + 0x36, 0x4f, 0x99, 0x2e, 0x3d, 0xd1, 0x41, 0x7c, 0x7e, 0x8e, 0x77, 0x99, 0x7e, 0xae, 0x8a, 0x93, + 0x52, 0xe1, 0xac, 0x99, 0x8e, 0x8d, 0x71, 0xf3, 0xca, 0xa2, 0x1b, 0xfd, 0xd7, 0x89, 0xde, 0xea, + 0x23, 0x27, 0xe8, 0x0e, 0x9c, 0x52, 0xe7, 0xef, 0x08, 0xb5, 0x41, 0x27, 0x3a, 0x87, 0xd2, 0x7b, + 0x6e, 0x09, 0xa7, 0xf7, 0x91, 0x16, 0xa4, 0xe7, 0xae, 0x01, 0xc7, 0xaf, 0xce, 0x22, 0x36, 0x27, + 0x91, 0x83, 0xfa, 0xa4, 0x71, 0xf1, 0x99, 0x3f, 0xb4, 0x05, 0x98, 0xd4, 0x3d, 0x23, 0x32, 0xdc, + 0x6c, 0x99, 0x8c, 0xb4, 0x6f, 0x70, 0x4e, 0xe0, 0x44, 0x4e, 0xc0, 0xd2, 0xbf, 0x53, 0x7a, 0x22, + 0xce, 0xfc, 0xc9, 0xa2, 0x3c, 0xac, 0x7a, 0x30, 0x66, 0x43, 0x6a, 0x13, 0x67, 0xd1, 0x70, 0xc8, + 0x53, 0x7c, 0x26, 0x8f, 0xe3, 0xae, 0xeb, 0xe1, 0x84, 0x73, 0xfd, 0x63, 0x70, 0x02, 0x4e, 0xba, + 0x37, 0xe5, 0xd7, 0xdb, 0xc5, 0xde, 0x2a, 0xc0, 0x65, 0x58, 0xa6, 0x2a, 0x5c, 0x4e, 0x41, 0x6d, + 0xbf, 0x83, 0xc4, 0x3e, 0x9f, 0x01, 0xbc, 0x85, 0xb5, 0x43, 0xe2, 0x64, 0xf0, 0xc3, 0x78, 0x96, + 0xf5, 0xd1, 0x9b, 0xcf, 0x17, 0x17, 0x14, 0x62, 0x13, 0x23, 0x16, 0x6a, 0x34, 0x72, 0x8f, 0x4e, + 0x1d, 0xd1, 0x9d, 0x54, 0x00, 0x79, 0x9b, 0xfd, 0xae, 0xcb, 0xb8, 0x27, 0xa1, 0xe3, 0x16, 0x62, + 0x24, 0x5f, 0x5f, 0x58, 0xa3, 0x1d, 0x07, 0x07, 0xdd, 0x0b, 0x0e, 0x7a, 0xc2, 0xe0, 0x8f, 0xc7, + 0x53, 0xfc, 0x11, 0xd2, 0xbc, 0xc2, 0x92, 0x84, 0x69, 0x3e, 0xe7, 0x36, 0xef, 0x03, 0xde, 0x3f, + 0x86, 0x91, 0xe6, 0x69, 0x63, 0xa4, 0x91, 0x21, 0xa5, 0xe4, 0xe8, 0xa3, 0xa7, 0x38, 0x7b, 0x7b, + 0xe2, 0xd0, 0xd3, 0xc6, 0x29, 0xb7, 0x17, 0xc4, 0x48, 0xaa, 0x4b, 0xe1, 0x18, 0xeb, 0xbc, 0xa8, + 0xc1, 0xc2, 0xf5, 0x90, 0x9d, 0x3c, 0x54, 0x60, 0x8c, 0xb6, 0x63, 0xf3, 0x29, 0x18, 0x97, 0x7a, + 0x64, 0x7c, 0x3e, 0x18, 0xdd, 0x2f, 0x31, 0x27, 0xea, 0xb2, 0xec, 0x4f, 0x2e, 0xce, 0xdf, 0x0f, + 0xe9, 0x6a, 0x89, 0x59, 0xf8, 0xff, 0xcf, 0x6e, 0xbf, 0x81, 0x4f, 0xdd, 0xba, 0xa9, 0x0b, 0xd2, + 0x83, 0x57, 0xcd, 0xef, 0xb8, 0x69, 0x5a, 0xa5, 0x78, 0x33, 0x91, 0xb7, 0x4b, 0xde, 0x9f, 0x5c, + 0x62, 0xe9, 0x34, 0x9d, 0xdc, 0x79, 0x57, 0x48, 0x95, 0x3a, 0x6d, 0xde, 0xe5, 0x54, 0xe0, 0xf6, + 0x90, 0xdb, 0x83, 0xbe, 0xe1, 0xf2, 0xf0, 0x0a, 0x9d, 0x0d, 0x7d, 0xbe, 0x56, 0x5f, 0x43, 0x16, + 0xdc, 0x0e, 0x72, 0x05, 0x7a, 0x0f, 0x30, 0x52, 0xd3, 0x20, 0x30, 0x22, 0x7c, 0x86, 0x42, 0x4e, + 0x04, 0x1f, 0x3f, 0x8d, 0xeb, 0xcc, 0xac, 0x2a, 0xed, 0xec, 0xac, 0x6a, 0x8c, 0x25, 0x61, 0x48, + 0xe6, 0xad, 0x06, 0x96, 0xb2, 0x53, 0x7c, 0xbc, 0xfd, 0x26, 0xe8, 0xab, 0xee, 0x84, 0x1d, 0x3a, + 0x91, 0x49, 0x9c, 0x68, 0xe9, 0x7c, 0xfd, 0x17, 0x36, 0x5b, 0x42, 0x1e, 0x94, 0x6c, 0x49, 0x63, + 0x7f, 0x0a, 0x4a, 0xe5, 0x9e, 0xc9, 0x25, 0xf5, 0x3f, 0xb0, 0xe8, 0x44, 0xea, 0x9c, 0x8a, 0x85, + 0x5d, 0xc6, 0xe9, 0xb6, 0x5f, 0x17, 0xde, 0x79, 0x52, 0x6d, 0x9e, 0x3b, 0xab, 0x85, 0xb2, 0xb5, + 0xc1, 0xd2, 0x16, 0x50, 0x4a, 0xa1, 0xd4, 0x27, 0xa4, 0xed, 0x0b, 0x1d, 0x19, 0x2c, 0x49, 0xa4, + 0xf7, 0xfa, 0x2c, 0x17, 0x5e, 0x75, 0x5a, 0xf5, 0x76, 0x95, 0xe2, 0x7a, 0xbb, 0x4a, 0xf7, 0xa0, + 0x1e, 0xb9, 0x80, 0xc0, 0x0e, 0x6e, 0xc0, 0xde, 0x9f, 0xc3, 0xa8, 0xb7, 0x1f, 0x75, 0x2e, 0xf6, + 0x48, 0xe1, 0x75, 0xfb, 0x7a, 0x5b, 0x49, 0x2a, 0x47, 0xd5, 0x29, 0xbc, 0x7e, 0xff, 0x5a, 0x3c, + 0xfb, 0x77, 0xf5, 0xb6, 0x91, 0xe4, 0x79, 0xe1, 0x25, 0xfc, 0x3a, 0xa3, 0xbd, 0xcd, 0x59, 0x45, + 0x72, 0xf8, 0xbe, 0x63, 0xbd, 0xab, 0x20, 0xb5, 0xaf, 0xa1, 0xe8, 0xda, 0x66, 0xab, 0x37, 0x23, + 0xbc, 0xde, 0x43, 0x6f, 0xad, 0x5d, 0x89, 0x90, 0x2e, 0xda, 0xd2, 0xa3, 0x58, 0x36, 0xf7, 0xec, + 0xea, 0x6d, 0x96, 0xb7, 0xf4, 0x1e, 0xeb, 0xee, 0x5f, 0xdb, 0x2c, 0x6f, 0x5e, 0xfb, 0x56, 0x92, + 0x47, 0x5b, 0x50, 0xd0, 0x05, 0x43, 0x9b, 0x79, 0x0c, 0x23, 0xe8, 0x20, 0x68, 0x26, 0x24, 0x4e, + 0x4d, 0xf5, 0x8a, 0x9a, 0xb3, 0xbc, 0x79, 0x34, 0xc5, 0x91, 0xbc, 0x41, 0xb4, 0xba, 0x39, 0xfd, + 0x46, 0x8e, 0x19, 0xda, 0x51, 0xb4, 0xf6, 0x84, 0x54, 0xc8, 0x89, 0xe4, 0x89, 0x9d, 0xd0, 0xcc, + 0x63, 0xa8, 0x89, 0x52, 0x91, 0x31, 0x2b, 0xac, 0x0d, 0xa2, 0x07, 0xc9, 0xed, 0x93, 0x0d, 0xf9, + 0x61, 0x08, 0x94, 0xfa, 0x26, 0x42, 0xdf, 0x46, 0x9b, 0x0c, 0x23, 0xdf, 0x53, 0xdc, 0x3e, 0xb8, + 0xce, 0xce, 0x0a, 0x69, 0xe7, 0xd8, 0x33, 0x25, 0x7a, 0x83, 0x55, 0x7b, 0xcb, 0xa0, 0xe5, 0xa1, + 0x14, 0x2d, 0x8b, 0xf3, 0xdc, 0xd6, 0x34, 0x6c, 0x62, 0xfe, 0x27, 0xac, 0x70, 0x6e, 0xd8, 0xc5, + 0x67, 0xb9, 0xb9, 0x1d, 0x68, 0xf3, 0x05, 0xdc, 0xa3, 0x86, 0x90, 0xf7, 0x9b, 0x68, 0xfb, 0xb7, + 0x0a, 0xeb, 0x91, 0x77, 0x58, 0x3b, 0x85, 0xfc, 0x4f, 0xcf, 0xe2, 0x93, 0x00, 0xaa, 0xb5, 0xb3, + 0x6a, 0x51, 0xc7, 0x97, 0xf8, 0x54, 0xd5, 0x3f, 0x94, 0x0e, 0x2d, 0x23, 0xc6, 0xff, 0xab, 0x4b, + 0x6f, 0xd8, 0x54, 0x62, 0x65, 0x7f, 0x8a, 0x5c, 0x72, 0xd7, 0x9f, 0x9f, 0xe0, 0x9c, 0x6a, 0xb4, + 0x21, 0xc8, 0x06, 0x83, 0xa8, 0xcb, 0x1c, 0xed, 0x38, 0xbe, 0x7f, 0x0b, 0xdf, 0xa7, 0x7a, 0xe0, + 0x90, 0x4a, 0x74, 0x3f, 0x5a, 0x78, 0x8d, 0x38, 0x59, 0x25, 0xc6, 0x30, 0xf3, 0x4e, 0x33, 0xe0, + 0x41, 0xe9, 0x9a, 0x7c, 0x82, 0xf1, 0x50, 0xa3, 0xe3, 0x01, 0x65, 0xbd, 0x8d, 0x4b, 0xe0, 0x01, + 0xb0, 0xe8, 0x74, 0x9a, 0xc2, 0x43, 0x50, 0xc7, 0x02, 0xfa, 0xed, 0x10, 0xfb, 0x23, 0x4d, 0x41, + 0xe2, 0xb7, 0x26, 0x4a, 0xc4, 0xce, 0x0f, 0x50, 0x05, 0x72, 0xf5, 0xaf, 0xfc, 0xf3, 0x37, 0x9f, + 0x16, 0xa7, 0x26, 0x0c, 0xcd, 0xaa, 0x04, 0x34, 0xc1, 0xf1, 0xd0, 0x8c, 0xfd, 0x52, 0x48, 0xd9, + 0x4f, 0x1a, 0xf4, 0x7a, 0x2c, 0xe5, 0x79, 0x87, 0xa5, 0xbd, 0x14, 0x55, 0x32, 0xbf, 0xfa, 0xc7, + 0xf3, 0x94, 0x53, 0xf9, 0x3e, 0x35, 0x40, 0x6f, 0x3a, 0xe6, 0xbb, 0x93, 0xc7, 0x1d, 0xe1, 0xa1, + 0x7f, 0xdf, 0x25, 0x19, 0x72, 0x9d, 0xe0, 0xb4, 0x62, 0x4f, 0x93, 0x5b, 0x7a, 0x82, 0x79, 0xc8, + 0xbc, 0xcb, 0xff, 0xf6, 0x5a, 0xfd, 0xb6, 0x31, 0x31, 0x23, 0x46, 0x8c, 0x4d, 0x48, 0x25, 0x5e, + 0xf4, 0xf5, 0x4b, 0x71, 0xb3, 0xe0, 0x70, 0x97, 0x84, 0x6e, 0xc5, 0xcf, 0x36, 0x6d, 0x84, 0xe7, + 0xd2, 0xd1, 0xeb, 0xe4, 0x78, 0x19, 0xdb, 0xe0, 0xbe, 0xf0, 0x3e, 0x45, 0x5a, 0xfd, 0xe2, 0x34, + 0x2c, 0x7b, 0xe5, 0x05, 0xbb, 0x86, 0x77, 0x7f, 0x8b, 0x82, 0x98, 0x6c, 0x3c, 0xd5, 0xb5, 0xe6, + 0x89, 0x98, 0x7c, 0x23, 0xa6, 0x78, 0xe1, 0xc1, 0x48, 0x4f, 0x18, 0x9c, 0x21, 0x14, 0x42, 0x0e, + 0xb6, 0x78, 0x31, 0xd2, 0xe5, 0x8a, 0x1c, 0xf4, 0x3d, 0xdd, 0xc8, 0xc1, 0xa2, 0xe7, 0x90, 0x8f, + 0x98, 0x3c, 0x91, 0x83, 0x4d, 0xc4, 0xe4, 0x1b, 0x31, 0xc5, 0xcd, 0x32, 0xe4, 0x8e, 0x5c, 0x9f, + 0x97, 0xf2, 0x84, 0x27, 0xd9, 0x49, 0xe0, 0xb3, 0x15, 0xcc, 0xa5, 0x3a, 0x4d, 0x4a, 0x23, 0xf0, + 0x6a, 0x01, 0x5e, 0x0b, 0x66, 0x81, 0xef, 0x6b, 0x1f, 0x97, 0xa3, 0x2f, 0x96, 0x78, 0x28, 0xaf, + 0x14, 0xfd, 0xb2, 0x0c, 0x32, 0x47, 0x31, 0xef, 0xbc, 0xc0, 0x77, 0x6b, 0xfe, 0xcc, 0x51, 0xf3, + 0x36, 0x6b, 0x07, 0x68, 0xfd, 0x42, 0x96, 0x14, 0x4f, 0xcc, 0x8a, 0x82, 0x8e, 0xaa, 0xb5, 0x33, + 0x85, 0x2c, 0x31, 0x9e, 0x45, 0x6b, 0x9e, 0x9f, 0xc5, 0x67, 0x57, 0xd4, 0x6b, 0x17, 0x0c, 0x0d, + 0x62, 0xf8, 0x6a, 0xfe, 0x5c, 0xcc, 0xf2, 0x6b, 0x1a, 0x0e, 0xb1, 0xc3, 0x73, 0x12, 0x7b, 0x32, + 0x61, 0x48, 0x74, 0xcc, 0x83, 0x87, 0x1e, 0xab, 0xdf, 0xf7, 0x6f, 0x12, 0x5a, 0x3d, 0x2b, 0x32, + 0x20, 0xda, 0xef, 0x19, 0xa3, 0xfd, 0x4e, 0xfc, 0xbe, 0xf6, 0x5b, 0xd3, 0xf0, 0xf6, 0x03, 0xe9, + 0xb6, 0x9b, 0x50, 0xbf, 0xef, 0x93, 0xc8, 0xf5, 0xdb, 0xee, 0x93, 0x9c, 0xff, 0x7f, 0x68, 0xbb, + 0xcb, 0x3d, 0x63, 0xdb, 0x8e, 0x4b, 0x43, 0xdb, 0xd9, 0xb5, 0x8b, 0x68, 0xbb, 0x3c, 0x5e, 0xf7, + 0x2c, 0x35, 0xda, 0xcd, 0x83, 0x6f, 0xba, 0x26, 0x3b, 0xaa, 0x4f, 0x3c, 0x25, 0x7a, 0xe0, 0x09, + 0xd1, 0x6e, 0xc3, 0x68, 0x37, 0x6e, 0xad, 0x73, 0xa2, 0xdd, 0xb8, 0xcd, 0x2e, 0xa0, 0xcd, 0x3e, + 0x46, 0x5f, 0xfa, 0x04, 0x6d, 0x76, 0xda, 0x68, 0xb3, 0x13, 0x63, 0x34, 0x9d, 0x6b, 0x5a, 0xec, + 0xb2, 0x34, 0xa6, 0xc5, 0x80, 0xed, 0xdf, 0xc5, 0x8c, 0xbe, 0xb6, 0xdb, 0xd0, 0x68, 0xd9, 0xae, + 0x24, 0xd7, 0xc3, 0xf2, 0xab, 0x21, 0x05, 0xd6, 0x9e, 0xa3, 0x06, 0x3d, 0xbd, 0xee, 0x87, 0xbc, + 0x7e, 0xdf, 0xc5, 0x1f, 0x09, 0xb9, 0xa7, 0x05, 0xa3, 0x80, 0xc2, 0x63, 0x43, 0xbc, 0x54, 0x70, + 0xbc, 0x22, 0x1f, 0xaf, 0xb3, 0xe8, 0x1e, 0x90, 0xd9, 0x47, 0xe8, 0xbe, 0x7f, 0xdf, 0xa6, 0xe6, + 0x8b, 0xb1, 0xc3, 0x9e, 0x8a, 0x11, 0x67, 0x36, 0xec, 0xfb, 0xf7, 0x35, 0x21, 0x84, 0x0a, 0x38, + 0x84, 0xac, 0x48, 0x76, 0xc8, 0xdb, 0xb9, 0x75, 0xef, 0x94, 0x93, 0x4a, 0x17, 0x0f, 0xa6, 0x74, + 0x53, 0x97, 0xae, 0x9b, 0xa6, 0xe9, 0x85, 0xe7, 0x87, 0x0c, 0xa9, 0x94, 0xcf, 0xa7, 0x3c, 0x98, + 0x92, 0x2b, 0x85, 0x3c, 0x60, 0x1b, 0xda, 0x81, 0x11, 0xde, 0xe4, 0xa3, 0x79, 0x97, 0xff, 0xf5, + 0x1c, 0xe8, 0x64, 0x34, 0x6e, 0xa4, 0x7d, 0xca, 0xe0, 0x8e, 0x94, 0x14, 0x51, 0xbf, 0xad, 0xb3, + 0x41, 0x8c, 0xff, 0x3f, 0x4d, 0xd5, 0x27, 0xd2, 0xe1, 0x86, 0xe4, 0xf2, 0xaf, 0xc7, 0xc6, 0x42, + 0x38, 0xef, 0xf2, 0xa5, 0x13, 0xf5, 0xdb, 0x1c, 0xd0, 0x04, 0xb7, 0xa0, 0xec, 0x69, 0x7c, 0x86, + 0x9a, 0x97, 0x2c, 0x9b, 0x01, 0xc3, 0xd0, 0x4e, 0x2a, 0xe5, 0xf7, 0xc1, 0x9d, 0x54, 0x0e, 0x89, + 0x80, 0xcf, 0x60, 0x0b, 0x36, 0xf6, 0xbd, 0x7e, 0x60, 0x5a, 0x84, 0x78, 0x47, 0x58, 0xb8, 0xb1, + 0x7b, 0x88, 0x4f, 0x28, 0xaa, 0xbb, 0x0a, 0x13, 0x62, 0x3f, 0xa3, 0x51, 0xa6, 0x5e, 0xde, 0x09, + 0x8c, 0xe4, 0xa6, 0x51, 0xad, 0x57, 0x3f, 0x37, 0xa9, 0x3c, 0x5d, 0xe7, 0x54, 0x5d, 0x9d, 0x80, + 0x01, 0xba, 0x6a, 0xdf, 0x78, 0xfc, 0x5d, 0xaa, 0x60, 0xfc, 0x41, 0xd6, 0x62, 0xc9, 0x9e, 0x35, + 0x06, 0x3f, 0xae, 0x3a, 0x5c, 0x11, 0x5c, 0x61, 0x5c, 0xbc, 0x8f, 0xad, 0x14, 0x57, 0x39, 0xcb, + 0x67, 0x62, 0xb6, 0x6e, 0x9c, 0x14, 0xfe, 0xf1, 0x9e, 0x31, 0x52, 0x3c, 0x99, 0x2a, 0xfe, 0x90, + 0x1c, 0x8f, 0xd4, 0x4e, 0x95, 0x4c, 0x79, 0x63, 0x31, 0x8e, 0xde, 0xd7, 0xeb, 0x93, 0xe6, 0x5d, + 0xfe, 0xb8, 0x6b, 0x3c, 0xb6, 0x15, 0x84, 0xc7, 0x58, 0xc3, 0x97, 0xea, 0xb7, 0xa5, 0x76, 0x77, + 0xea, 0xf9, 0xb2, 0x05, 0xed, 0x55, 0xab, 0x6b, 0xac, 0xf7, 0xb9, 0x79, 0xac, 0x5a, 0xdd, 0xf0, + 0xd6, 0xfd, 0x69, 0x1e, 0x90, 0x09, 0x08, 0xc3, 0xe3, 0x6b, 0xfc, 0x6f, 0x75, 0x90, 0x2d, 0x9c, + 0xdc, 0x72, 0xd7, 0xd5, 0x3a, 0xc2, 0x63, 0xa1, 0x85, 0x6e, 0x5d, 0x80, 0x71, 0x9e, 0xdb, 0x2d, + 0xc8, 0xbe, 0x9f, 0xd1, 0x4e, 0xdc, 0x2e, 0xc0, 0x12, 0x42, 0x22, 0x8d, 0x49, 0xb4, 0x5d, 0x31, + 0xc2, 0xea, 0xa6, 0x55, 0x91, 0x73, 0x1a, 0xb4, 0x7f, 0xb4, 0x68, 0x33, 0xa4, 0xe2, 0x72, 0x2e, + 0x91, 0xcb, 0xba, 0x78, 0xde, 0xe8, 0x1d, 0x99, 0xbc, 0x7f, 0x1e, 0xb0, 0xf8, 0xaf, 0xa6, 0xeb, + 0x4f, 0x5e, 0x14, 0x3a, 0xf6, 0x0c, 0xed, 0xa2, 0x6a, 0x4e, 0x4b, 0x57, 0xe5, 0xfa, 0x29, 0x60, + 0x42, 0x27, 0x6e, 0x23, 0x05, 0x7a, 0xb1, 0x9b, 0x35, 0x4f, 0x6e, 0x45, 0x0f, 0xb8, 0x52, 0xed, + 0x07, 0xa9, 0x5e, 0x24, 0xbc, 0x81, 0xef, 0xfb, 0x97, 0x45, 0x8e, 0x2a, 0x9e, 0xe3, 0x02, 0xbf, + 0xe0, 0x19, 0x10, 0x6b, 0xff, 0xb3, 0xe0, 0x2b, 0x11, 0xf0, 0x1f, 0x48, 0xfe, 0xde, 0x60, 0xd5, + 0x27, 0x76, 0xed, 0xc7, 0x1f, 0x80, 0xb3, 0x94, 0x18, 0x3e, 0xb4, 0x9e, 0x05, 0x6f, 0xf1, 0x88, + 0x58, 0xb3, 0x23, 0x58, 0xf9, 0x2f, 0xe0, 0x4f, 0x1f, 0x50, 0x71, 0x8b, 0xe8, 0x57, 0x82, 0xb3, + 0x30, 0x6d, 0xef, 0xfb, 0xc4, 0xa5, 0xf3, 0x16, 0xe6, 0x58, 0x90, 0x69, 0xc6, 0x79, 0x04, 0xf6, + 0xe8, 0xfc, 0x3b, 0x4f, 0xff, 0x42, 0xd4, 0x44, 0x7c, 0xf3, 0xbb, 0x8f, 0xc7, 0xf0, 0x03, 0x86, + 0x2b, 0x04, 0xb9, 0xe5, 0x06, 0x5d, 0xe3, 0xe6, 0x3d, 0x7f, 0xa8, 0x4b, 0x81, 0x47, 0xd7, 0xef, + 0x15, 0xae, 0x8b, 0x97, 0xeb, 0xf2, 0xe1, 0xf8, 0xba, 0x5c, 0xd8, 0xe6, 0x6f, 0xd1, 0xd7, 0x2e, + 0x5f, 0xf8, 0x10, 0xb5, 0xa8, 0x08, 0x80, 0x82, 0x2b, 0x2f, 0x6c, 0xd7, 0xf0, 0xe6, 0x6f, 0xf1, + 0x23, 0x2e, 0x1b, 0x4f, 0x75, 0xad, 0x2e, 0x84, 0xe7, 0x18, 0xe1, 0xd7, 0xc0, 0xfe, 0xbb, 0xe5, + 0xd7, 0xc0, 0x7e, 0xc3, 0x1f, 0x84, 0xbd, 0x64, 0x3c, 0xec, 0x17, 0xd6, 0x1b, 0xb0, 0xcb, 0x7f, + 0x3c, 0xec, 0x1f, 0xbd, 0x05, 0xf8, 0x6c, 0xe3, 0x60, 0xcf, 0x1d, 0x07, 0x7b, 0x4e, 0x1a, 0xf6, + 0xbc, 0xcf, 0x83, 0xfd, 0xe2, 0x73, 0x5f, 0x1c, 0xf6, 0x8b, 0xab, 0xc7, 0xc3, 0xfe, 0xd1, 0x91, + 0x3f, 0x01, 0xf6, 0xa9, 0xff, 0x71, 0xd8, 0xff, 0xf5, 0xe3, 0x2f, 0x0e, 0xfb, 0xbf, 0xbe, 0x78, + 0x15, 0xec, 0xd9, 0x5f, 0x1c, 0xf6, 0x0f, 0x17, 0x8d, 0x83, 0x3d, 0x04, 0x3a, 0x9f, 0xc1, 0xd0, + 0x5b, 0x74, 0xe8, 0x03, 0x69, 0xe8, 0xdd, 0x22, 0x26, 0xcf, 0x88, 0xb9, 0x16, 0xfe, 0xc0, 0x17, + 0x87, 0xff, 0xe3, 0x2b, 0xe3, 0xe1, 0xff, 0xb0, 0x7e, 0x14, 0x7e, 0xe1, 0x2d, 0xc9, 0x3f, 0x76, + 0x16, 0xa4, 0xb3, 0xe1, 0x18, 0xe4, 0x87, 0x34, 0xec, 0x52, 0xfd, 0xbe, 0x0f, 0x7e, 0x64, 0x94, + 0x84, 0x3e, 0x9e, 0x2a, 0x6b, 0x7c, 0x19, 0x6c, 0x07, 0x8b, 0x72, 0xb6, 0x89, 0xf3, 0x54, 0x04, + 0xdf, 0x17, 0xdf, 0x9d, 0x41, 0x39, 0x3e, 0x3e, 0xaf, 0xc4, 0x2a, 0xfc, 0xa7, 0x88, 0xb2, 0x4a, + 0x79, 0xf6, 0x98, 0xe7, 0x25, 0x3e, 0xa7, 0xac, 0xb2, 0xb1, 0xf5, 0xad, 0xbd, 0xfc, 0x71, 0x08, + 0x7a, 0x6a, 0xaa, 0xf4, 0xf2, 0x54, 0xe9, 0xa2, 0x9c, 0xa7, 0xaf, 0x82, 0x40, 0x81, 0xfe, 0x7b, + 0x67, 0xba, 0x6c, 0xee, 0x5f, 0x76, 0x94, 0x6e, 0xab, 0x7b, 0xa7, 0x60, 0xb4, 0xf4, 0x3f, 0x50, + 0xd3, 0xf3, 0xfb, 0xc7, 0x63, 0xfb, 0x5f, 0x0e, 0xa5, 0xcb, 0x2e, 0x1d, 0x57, 0xb6, 0x51, 0x47, + 0x5e, 0xcb, 0xc4, 0x57, 0x57, 0xae, 0x53, 0xcf, 0x3f, 0x54, 0x52, 0xec, 0xaa, 0x92, 0xee, 0xfe, + 0xa3, 0x4a, 0xda, 0xfa, 0xc5, 0x31, 0xfa, 0xfe, 0xd9, 0xf1, 0x18, 0xbd, 0x70, 0xe1, 0x4f, 0xc3, + 0xe8, 0x79, 0xfb, 0x75, 0x31, 0xfa, 0x87, 0x4a, 0x5f, 0x7e, 0x55, 0xe9, 0x1d, 0x7f, 0x5a, 0xe9, + 0xef, 0x3f, 0x76, 0x75, 0xe9, 0x7f, 0x6c, 0xcf, 0x3b, 0x77, 0x16, 0xfc, 0xc0, 0x82, 0xb1, 0x64, + 0x06, 0x59, 0xd1, 0xcb, 0xb2, 0xd0, 0xbb, 0xb2, 0x9d, 0x13, 0xb7, 0x76, 0x73, 0x5f, 0xdc, 0xfd, + 0x1c, 0xfa, 0x62, 0xd9, 0xd0, 0x86, 0x5d, 0xcf, 0x89, 0x3e, 0x18, 0xd1, 0xad, 0xba, 0x79, 0xf7, + 0xcf, 0x8f, 0xb9, 0x2f, 0x2a, 0x83, 0x7d, 0xfd, 0xcf, 0x5d, 0xdb, 0x07, 0x3f, 0xfa, 0x13, 0xf8, + 0xdf, 0x47, 0x57, 0xf1, 0xbf, 0x73, 0x7f, 0x02, 0xff, 0x3b, 0x37, 0xf5, 0x3f, 0xbb, 0x26, 0x1f, + 0x9e, 0xfe, 0xe2, 0x35, 0xf9, 0xb0, 0xff, 0xaa, 0x9a, 0xd0, 0x17, 0xaf, 0xc9, 0x7b, 0x4d, 0x80, + 0xdf, 0x92, 0xe6, 0x86, 0x25, 0x3c, 0x9e, 0x0a, 0x3e, 0xe8, 0xe5, 0x7a, 0x09, 0x3e, 0xe8, 0x30, + 0xc6, 0xd1, 0x6b, 0x61, 0xf6, 0x7f, 0x71, 0x98, 0x3f, 0x18, 0x19, 0x0f, 0xf3, 0x7b, 0x75, 0x5f, + 0x1c, 0xe6, 0xb3, 0x4f, 0xfc, 0xe9, 0x30, 0x7f, 0xd0, 0xf5, 0x27, 0xc0, 0x1c, 0x19, 0x0f, 0xf3, + 0xd9, 0xed, 0x63, 0x61, 0xd6, 0xa5, 0x2e, 0xc0, 0x9c, 0x96, 0xba, 0xae, 0x07, 0xf3, 0xbb, 0xe7, + 0x99, 0x62, 0x98, 0x5e, 0x18, 0x6e, 0x7f, 0x2d, 0x9f, 0x09, 0xb3, 0xab, 0xb6, 0xcd, 0xec, 0x88, + 0x28, 0x41, 0x55, 0x72, 0xf0, 0xae, 0xb4, 0x2c, 0xc4, 0x66, 0xfb, 0x33, 0x22, 0x03, 0xc5, 0xa6, + 0xc8, 0xc1, 0x5d, 0x55, 0x88, 0x23, 0x45, 0x42, 0x9c, 0xf4, 0x63, 0xae, 0xa5, 0x47, 0xd4, 0xd0, + 0x09, 0xaa, 0xaa, 0x6b, 0x9d, 0x7a, 0x3d, 0x0a, 0x3a, 0xff, 0xc3, 0xcf, 0xaf, 0x99, 0x8b, 0xae, + 0x5f, 0xb3, 0xf3, 0xad, 0xe3, 0x6b, 0xf6, 0xee, 0x8b, 0xa8, 0x59, 0xc6, 0x78, 0x19, 0xcc, 0x3b, + 0xa6, 0x35, 0xae, 0x27, 0x4f, 0xbe, 0x9b, 0x13, 0x68, 0xd5, 0x77, 0x38, 0x09, 0xb9, 0xb1, 0x88, + 0xed, 0xf1, 0x85, 0x8c, 0xe8, 0xc4, 0x7b, 0xa4, 0x75, 0x2a, 0x9e, 0xeb, 0x5a, 0xaf, 0x82, 0xf5, + 0xfd, 0x4f, 0xae, 0x81, 0x35, 0xfb, 0x0f, 0xb5, 0xc2, 0xfb, 0x07, 0xaf, 0x82, 0x35, 0xe7, 0x8b, + 0x53, 0xce, 0x99, 0xf8, 0x7f, 0x5c, 0x5e, 0x7c, 0xbf, 0xec, 0x8b, 0x53, 0xd0, 0xfb, 0xe6, 0xf1, + 0xb0, 0x9f, 0x99, 0xff, 0xc5, 0x61, 0xff, 0xed, 0x4e, 0xc0, 0xe7, 0x1c, 0x07, 0xbb, 0x7b, 0x1c, + 0xec, 0xae, 0x34, 0xec, 0x9e, 0xcf, 0x83, 0xfd, 0xdc, 0x9a, 0x2f, 0x0e, 0xfb, 0xb9, 0xe8, 0x78, + 0xd8, 0x7f, 0xfb, 0xd8, 0x17, 0x87, 0xfd, 0xf4, 0x87, 0xff, 0x71, 0x79, 0xf1, 0xbd, 0x83, 0x5f, + 0x1c, 0xf6, 0xf7, 0x1e, 0x1a, 0x0f, 0xfb, 0xe9, 0xb7, 0xff, 0x04, 0xd8, 0x85, 0x44, 0x38, 0x0e, + 0xf6, 0xbc, 0x71, 0xb0, 0xe7, 0xa6, 0x61, 0xb7, 0x7f, 0x2e, 0xec, 0xe6, 0x2f, 0x0e, 0xfb, 0xd9, + 0xa1, 0xab, 0x60, 0x77, 0x7c, 0x71, 0xd8, 0xff, 0x79, 0xe5, 0x7f, 0x1c, 0xef, 0x67, 0xa3, 0x7f, + 0x02, 0xec, 0x79, 0xe3, 0x61, 0xff, 0xe7, 0xf8, 0x17, 0x87, 0xfd, 0xd4, 0xbe, 0xff, 0x38, 0xec, + 0xef, 0x3e, 0xf4, 0xc5, 0x61, 0x7f, 0xf7, 0xee, 0xf1, 0xb0, 0x9f, 0xda, 0x79, 0x2d, 0xec, 0x7f, + 0x88, 0x27, 0x9e, 0xbc, 0x02, 0x9e, 0x68, 0x19, 0xc7, 0x13, 0xb3, 0xfe, 0x10, 0x4f, 0x3c, 0x73, + 0xea, 0x8b, 0xf3, 0xc4, 0x33, 0xcf, 0x8d, 0x87, 0xf5, 0xe4, 0x95, 0x3f, 0x01, 0xd6, 0xd8, 0x17, + 0xe7, 0xdf, 0x67, 0x4a, 0xfe, 0x04, 0x58, 0xa5, 0xab, 0x60, 0x8d, 0x8d, 0x85, 0x95, 0x78, 0xe7, + 0x2e, 0xfb, 0x70, 0x62, 0x0b, 0xe0, 0x82, 0x7f, 0xfc, 0x80, 0x72, 0x94, 0x46, 0x91, 0xaf, 0x35, + 0x95, 0xaf, 0x33, 0xe8, 0x40, 0x4b, 0xb7, 0x4f, 0x1a, 0x7c, 0x4a, 0xea, 0x65, 0x8f, 0xe0, 0xc6, + 0x0a, 0xe9, 0x29, 0xc3, 0xcb, 0xc4, 0xe6, 0xdd, 0xba, 0xf7, 0x88, 0x3e, 0x3e, 0x1b, 0xc7, 0xbd, + 0x42, 0x1b, 0xe1, 0x19, 0xde, 0xb9, 0xef, 0x8f, 0xa9, 0xeb, 0x0d, 0xf5, 0xfb, 0x86, 0xe3, 0xe9, + 0x79, 0xdc, 0x15, 0x94, 0x2b, 0x66, 0x92, 0x0a, 0x49, 0xae, 0xbe, 0x3c, 0xec, 0xaf, 0xdf, 0x32, + 0x26, 0xc6, 0x9e, 0x9e, 0x4b, 0x42, 0xac, 0xd8, 0x1b, 0xe7, 0x2e, 0x7a, 0x06, 0xb1, 0x93, 0x40, + 0xc9, 0x91, 0xe2, 0xa0, 0x51, 0x07, 0xce, 0xef, 0x21, 0x9e, 0xe3, 0x4c, 0xcf, 0xd0, 0x20, 0xfe, + 0xb7, 0x05, 0xc5, 0x51, 0x31, 0x47, 0x93, 0x95, 0xb6, 0x0d, 0x2d, 0x4d, 0x59, 0xea, 0xb0, 0xbd, + 0xc3, 0xad, 0x21, 0x92, 0x13, 0x5e, 0x61, 0xf3, 0xc4, 0x10, 0x78, 0x78, 0x2e, 0xab, 0xf6, 0xf2, + 0x3b, 0xfd, 0x86, 0x1d, 0x14, 0x97, 0xed, 0x49, 0xcf, 0x63, 0x89, 0xb3, 0x7e, 0x59, 0xca, 0x4e, + 0x9f, 0xbb, 0x7c, 0xcd, 0x3c, 0x1d, 0x63, 0x82, 0xcf, 0x05, 0x4c, 0x14, 0x39, 0x56, 0x50, 0x9e, + 0xe2, 0xd6, 0x46, 0xfa, 0x9f, 0x92, 0x56, 0xc5, 0x95, 0x69, 0x11, 0xb2, 0x8c, 0x9d, 0x1d, 0x13, + 0x73, 0xd6, 0x5e, 0x6e, 0x87, 0x77, 0xc2, 0xdc, 0x0e, 0xf3, 0xce, 0x8d, 0xc1, 0x4c, 0x36, 0x42, + 0xeb, 0xd2, 0x2d, 0x9c, 0x05, 0x5e, 0x33, 0x5f, 0x89, 0xf1, 0xcc, 0x23, 0xe7, 0xd9, 0x91, 0x6d, + 0xd8, 0xf7, 0x5c, 0x10, 0x73, 0xbf, 0xc2, 0xca, 0xe7, 0x6a, 0xff, 0xc0, 0xec, 0x8f, 0x51, 0x68, + 0x0e, 0x49, 0x5f, 0x16, 0xe7, 0x53, 0xbf, 0x4f, 0xb3, 0x18, 0x7e, 0xe7, 0x46, 0x12, 0x3c, 0x1f, + 0x6e, 0x11, 0x5e, 0xda, 0xc4, 0x2c, 0xd7, 0x29, 0xf3, 0xd5, 0xb3, 0x5a, 0xff, 0x7c, 0xd6, 0xc0, + 0x28, 0xc3, 0x51, 0x6e, 0xcc, 0x70, 0x8d, 0x08, 0x2f, 0x74, 0xc2, 0x47, 0x5a, 0xea, 0x3c, 0x2f, + 0x50, 0x47, 0x29, 0xa8, 0x84, 0xbd, 0xdb, 0x94, 0x73, 0xeb, 0x2a, 0x85, 0x64, 0x73, 0xa0, 0xd5, + 0x3a, 0x48, 0xec, 0x0c, 0x30, 0x56, 0xcc, 0x5d, 0xa4, 0x34, 0x2a, 0x33, 0x48, 0xe6, 0x18, 0xc7, + 0x74, 0x39, 0xd6, 0xc4, 0x3b, 0x45, 0x0b, 0x58, 0x8b, 0x61, 0xa8, 0xab, 0x3f, 0xc2, 0x73, 0x56, + 0x9a, 0xa6, 0x20, 0x17, 0x25, 0x96, 0x47, 0xab, 0x12, 0xcb, 0x3d, 0x48, 0xad, 0xcc, 0x00, 0x8e, + 0x82, 0x88, 0x0f, 0x91, 0x12, 0x63, 0xeb, 0x58, 0xa7, 0x6f, 0xae, 0xf0, 0x5d, 0xe8, 0xc5, 0xe5, + 0x57, 0x5a, 0xa4, 0x55, 0x8f, 0xbc, 0xea, 0x6d, 0xd1, 0xad, 0x19, 0x5d, 0xd4, 0x3e, 0x79, 0xf0, + 0x59, 0xa9, 0xb7, 0x9f, 0xf7, 0x45, 0xe4, 0xdc, 0x5a, 0x45, 0x16, 0x68, 0x86, 0x93, 0x98, 0x26, + 0xae, 0xe8, 0x1e, 0x16, 0xd7, 0xc6, 0xed, 0x29, 0x8a, 0x62, 0xad, 0xe9, 0x37, 0xfb, 0x1b, 0x36, + 0xa9, 0x66, 0x5e, 0x61, 0x74, 0x91, 0x2e, 0x61, 0xe9, 0x3b, 0x41, 0xbf, 0xf6, 0xd1, 0x95, 0xc7, + 0x45, 0xbb, 0xb6, 0x99, 0x56, 0xd5, 0x7e, 0x64, 0xe2, 0xf3, 0x25, 0xdd, 0x6c, 0xdb, 0x78, 0xcb, + 0xf2, 0x94, 0x7d, 0x33, 0x43, 0x8c, 0xd0, 0x4b, 0xc6, 0xa9, 0xc3, 0x5a, 0x69, 0x81, 0xaf, 0x8b, + 0x86, 0xaf, 0x3c, 0x43, 0x6e, 0xe3, 0xee, 0x6f, 0x37, 0xf1, 0x79, 0x1d, 0x78, 0x3b, 0x39, 0xd5, + 0xc6, 0xa7, 0xfa, 0xf0, 0x6e, 0x62, 0x23, 0x2e, 0x68, 0x2b, 0xa7, 0x0c, 0xc4, 0x86, 0x8d, 0xf7, + 0x08, 0x7b, 0x97, 0xf7, 0xf1, 0x3c, 0xb1, 0xfe, 0xde, 0x80, 0xf8, 0x4c, 0xc4, 0x37, 0x19, 0xef, + 0x0b, 0x10, 0x6f, 0x41, 0xfc, 0x42, 0xe3, 0x5d, 0x45, 0xbc, 0x19, 0xf1, 0x8b, 0x8d, 0xf7, 0xa5, + 0x88, 0x9f, 0xc0, 0x67, 0xf3, 0x18, 0xef, 0xed, 0x88, 0xe7, 0xd3, 0x4c, 0x3b, 0xb9, 0xf4, 0x89, + 0xcd, 0xb4, 0x0a, 0xf1, 0x59, 0x88, 0xef, 0xe2, 0x77, 0xcb, 0x2a, 0x4a, 0x22, 0x7e, 0x12, 0xe2, + 0x7b, 0xf9, 0x7d, 0xc2, 0x45, 0xea, 0x43, 0xbc, 0x15, 0xf1, 0x1b, 0x8d, 0xef, 0x37, 0x23, 0xfe, + 0x06, 0xc4, 0x6f, 0xe5, 0xf8, 0x3f, 0xcb, 0xa5, 0xed, 0x88, 0xcf, 0x46, 0xfc, 0xe3, 0xfc, 0x6e, + 0x8e, 0xd0, 0x13, 0x88, 0x9f, 0x8c, 0xf8, 0x27, 0x8d, 0xf4, 0x3b, 0x10, 0x3f, 0x05, 0xf1, 0xcf, + 0x88, 0xf7, 0x1d, 0xd4, 0x8f, 0xf8, 0x1c, 0xc4, 0xef, 0x36, 0xe2, 0xf7, 0x22, 0xfe, 0x46, 0xc4, + 0xef, 0x37, 0xde, 0x07, 0x10, 0xcf, 0xa7, 0x26, 0x1d, 0x32, 0xde, 0x0f, 0x23, 0xfe, 0x26, 0xc4, + 0x1f, 0x35, 0xde, 0x07, 0x11, 0x9f, 0x87, 0xf8, 0x63, 0x5c, 0xde, 0x57, 0x1f, 0xa7, 0xe3, 0x88, + 0xbf, 0x19, 0xf1, 0x27, 0x8c, 0xf8, 0x61, 0xc4, 0xdb, 0x11, 0x7f, 0xda, 0x78, 0x3f, 0x8b, 0xf8, + 0x2f, 0x21, 0xfe, 0xbc, 0xf1, 0x7e, 0x01, 0xf1, 0xf9, 0x88, 0xbf, 0x68, 0xbc, 0x5f, 0x42, 0xfc, + 0x97, 0x11, 0x3f, 0xa2, 0xbf, 0x9b, 0x08, 0xf1, 0xa0, 0x3d, 0x93, 0xcc, 0xf9, 0xcb, 0x7d, 0x26, + 0x0b, 0xe2, 0xff, 0xcc, 0x57, 0x69, 0xb2, 0xfa, 0xea, 0x4c, 0x11, 0x4e, 0xe3, 0xfa, 0x9d, 0xa9, + 0xce, 0xc6, 0x6d, 0x12, 0x34, 0x35, 0xf8, 0xa2, 0x26, 0xd1, 0x0e, 0xae, 0xcb, 0x26, 0x6e, 0x87, + 0xa9, 0x48, 0xb7, 0x30, 0xf4, 0xbc, 0x49, 0xc5, 0xb5, 0x18, 0xd7, 0x52, 0xb6, 0xc2, 0xbd, 0x75, + 0x8a, 0xb1, 0x02, 0xfd, 0x23, 0x7c, 0x21, 0x5a, 0xe1, 0xd6, 0x3c, 0x53, 0x3b, 0xdb, 0x4b, 0x20, + 0x75, 0x67, 0xe5, 0x47, 0xa6, 0x8d, 0x95, 0x67, 0xb5, 0xfd, 0xbe, 0x88, 0x69, 0xd5, 0x02, 0x50, + 0xb0, 0x89, 0xdb, 0x81, 0x28, 0x69, 0x4a, 0xe2, 0xfb, 0x5e, 0x5c, 0x7d, 0x22, 0x0f, 0xc5, 0xc8, + 0xe3, 0xc4, 0xad, 0x41, 0x49, 0x9c, 0xab, 0x9a, 0xf0, 0xeb, 0xf6, 0xba, 0xb7, 0xde, 0x56, 0xfd, + 0x91, 0xa9, 0x29, 0x65, 0xb1, 0x2b, 0xce, 0xe8, 0x30, 0x4f, 0x9b, 0x4b, 0x79, 0x6a, 0xce, 0xb8, + 0xef, 0x8e, 0xb0, 0x47, 0x24, 0xe6, 0x70, 0x0b, 0xe9, 0x6b, 0x1f, 0x99, 0x16, 0x33, 0x15, 0x7f, + 0xf6, 0xb8, 0x58, 0x39, 0x69, 0x93, 0xba, 0xaa, 0x3f, 0x92, 0xac, 0x69, 0x2a, 0xde, 0xe2, 0xcb, + 0xaa, 0xd5, 0x3d, 0x29, 0x6c, 0xed, 0x54, 0x8e, 0x6d, 0x8a, 0xac, 0x32, 0x5d, 0x12, 0xe1, 0xfb, + 0x98, 0xbb, 0xf9, 0xa2, 0x52, 0x9d, 0x8e, 0x03, 0xa9, 0xa1, 0x1d, 0x18, 0x90, 0x9a, 0x7c, 0x21, + 0x69, 0x81, 0xa8, 0xd3, 0x6c, 0x69, 0x61, 0x47, 0x85, 0xaf, 0x52, 0x42, 0xdd, 0x25, 0xd4, 0x5d, + 0x5a, 0x8a, 0xeb, 0xff, 0xc3, 0xdb, 0xdf, 0x00, 0x36, 0x75, 0x5d, 0x09, 0xe2, 0xf8, 0xd1, 0xb3, + 0x2c, 0x84, 0xa2, 0x38, 0x8a, 0xeb, 0xba, 0x5e, 0xea, 0x25, 0x0f, 0x45, 0x08, 0x45, 0x96, 0x2d, + 0xd5, 0x55, 0x1c, 0xc7, 0x68, 0x8d, 0x24, 0xcb, 0x46, 0x16, 0xc6, 0x75, 0x0c, 0xa5, 0xde, 0x0c, + 0x93, 0xbe, 0x10, 0x5b, 0x32, 0xc6, 0x1f, 0x1a, 0xc7, 0x65, 0x5c, 0xff, 0xfd, 0xcf, 0x18, 0x43, + 0x08, 0x25, 0x14, 0x1c, 0x42, 0x28, 0xcd, 0x32, 0xd9, 0x6c, 0x37, 0x9b, 0x61, 0x08, 0x69, 0x5d, + 0x97, 0x52, 0x86, 0x65, 0x32, 0x0e, 0xa5, 0x0c, 0x65, 0x98, 0xac, 0x4b, 0x99, 0x0c, 0x93, 0x1f, + 0x9b, 0x80, 0xcb, 0x66, 0x5c, 0x42, 0x12, 0x4a, 0x19, 0x4a, 0x89, 0xed, 0xf7, 0x3f, 0xe7, 0xdc, + 0x27, 0xe9, 0x99, 0x8f, 0x4c, 0x3a, 0xb3, 0xff, 0x9f, 0xe1, 0x3d, 0xdd, 0x7b, 0xdf, 0xfd, 0xfe, + 0x38, 0xf7, 0x9c, 0x7b, 0xcf, 0x47, 0xfb, 0xcd, 0xed, 0x97, 0x92, 0xa2, 0xfd, 0x52, 0x8f, 0x68, + 0xbf, 0xd4, 0x1b, 0xfa, 0x58, 0x1a, 0x12, 0xed, 0x97, 0xfa, 0x57, 0x50, 0xc8, 0x40, 0x37, 0xce, + 0x66, 0x09, 0x5b, 0x2e, 0x6d, 0xc2, 0x67, 0x0b, 0xf3, 0xae, 0x0e, 0x24, 0xe4, 0x4c, 0x6b, 0xa5, + 0xa6, 0x54, 0x6b, 0x31, 0xdc, 0x22, 0x07, 0xe7, 0x51, 0x6b, 0x99, 0x8f, 0x86, 0xb8, 0xaa, 0xa4, + 0xe6, 0x34, 0xcf, 0x5f, 0x8a, 0x6b, 0x81, 0x6f, 0x85, 0x34, 0x6e, 0x9d, 0xdd, 0x37, 0x73, 0xf1, + 0x20, 0x04, 0x40, 0x0a, 0x2f, 0xc5, 0xa3, 0xe3, 0x4a, 0x59, 0xaa, 0x03, 0x78, 0xc3, 0x19, 0xfc, + 0xc7, 0x8b, 0x90, 0x8b, 0xfd, 0x32, 0xc0, 0xb7, 0x71, 0xbc, 0x8e, 0xe9, 0xfe, 0x38, 0xc3, 0x3f, + 0x8d, 0x69, 0xd2, 0x77, 0x1c, 0xb8, 0xff, 0x08, 0x5e, 0x58, 0x84, 0x1c, 0xff, 0xc4, 0x7c, 0x23, + 0xf4, 0x95, 0x6e, 0x1a, 0x13, 0x66, 0xda, 0x9b, 0x96, 0x0f, 0x28, 0x26, 0x84, 0x3f, 0x7b, 0xa4, + 0x0d, 0x0b, 0x82, 0x60, 0x73, 0x0e, 0x26, 0xfc, 0xc4, 0xb3, 0x4c, 0x3c, 0xcc, 0xb8, 0x6b, 0x62, + 0xcc, 0xa2, 0xd5, 0xc6, 0x46, 0xb6, 0xee, 0x3a, 0xa1, 0xb3, 0xee, 0x9a, 0x86, 0xd6, 0x0b, 0x98, + 0x77, 0x36, 0xee, 0xa2, 0x98, 0xcc, 0xd9, 0xfd, 0x2f, 0x49, 0x03, 0xb6, 0x81, 0xb9, 0xf5, 0xe5, + 0xa5, 0xf3, 0xc0, 0x6b, 0xf6, 0x8a, 0x36, 0xcc, 0x15, 0x7c, 0x46, 0xb2, 0x95, 0xef, 0x8b, 0x4e, + 0x6b, 0x5c, 0x92, 0xd6, 0x64, 0xf6, 0x28, 0x69, 0x9c, 0x26, 0x3e, 0x49, 0xb3, 0xfd, 0x30, 0xcb, + 0xfa, 0xb5, 0x62, 0x2c, 0x76, 0x25, 0x0d, 0xf5, 0xdf, 0x08, 0x07, 0x05, 0x87, 0x1c, 0xf3, 0x57, + 0xb9, 0xa5, 0xde, 0x84, 0x8d, 0xb9, 0x5b, 0xa1, 0xfe, 0xd0, 0x99, 0x03, 0xe1, 0xbd, 0x52, 0x2f, + 0xf1, 0x27, 0x48, 0x3d, 0x89, 0xb9, 0xe9, 0xd0, 0x97, 0xb5, 0xd9, 0xa5, 0x49, 0x07, 0x60, 0x9c, + 0x1e, 0xe2, 0x4f, 0x4a, 0xf1, 0xd2, 0x69, 0x79, 0x15, 0xc6, 0x30, 0x3c, 0xee, 0xa1, 0x1d, 0xe3, + 0xc6, 0x89, 0xf9, 0x41, 0xa9, 0x87, 0x5c, 0x53, 0x1b, 0xd1, 0xd5, 0x4b, 0x9c, 0x3f, 0x98, 0x23, + 0xd9, 0xd9, 0xb4, 0x32, 0x9f, 0xe3, 0x60, 0x13, 0x71, 0x7c, 0xdb, 0x29, 0x47, 0x6f, 0x9b, 0xb4, + 0x1b, 0x61, 0x1a, 0xee, 0xbf, 0x60, 0x25, 0x3d, 0xb4, 0x72, 0x9b, 0xd4, 0xc3, 0x72, 0x0e, 0x66, + 0x9e, 0xe3, 0x42, 0x8f, 0xb3, 0x35, 0x65, 0x87, 0xfc, 0x53, 0xb9, 0xfa, 0x52, 0x1a, 0x46, 0x96, + 0xe3, 0xd7, 0xa6, 0xc5, 0x1f, 0x42, 0x59, 0x2f, 0xac, 0x85, 0x1e, 0xf5, 0xa9, 0xc8, 0xbb, 0xdb, + 0x6a, 0x6f, 0xa8, 0x47, 0xfa, 0xa3, 0x67, 0xb7, 0xf5, 0xd5, 0xbd, 0xb3, 0x6d, 0x29, 0xf3, 0xdc, + 0x90, 0x7e, 0x6d, 0xd6, 0x8a, 0xcc, 0xbc, 0xd6, 0x24, 0xe5, 0x4c, 0x67, 0xb3, 0x55, 0x1f, 0x23, + 0x6c, 0xae, 0x65, 0x39, 0xb3, 0x20, 0xfe, 0x96, 0xf3, 0xd8, 0x74, 0xe1, 0xb7, 0xd4, 0x69, 0x2e, + 0xf5, 0xc9, 0xac, 0xe4, 0xec, 0xb1, 0xbd, 0xd2, 0x10, 0xeb, 0x62, 0x5a, 0xce, 0x58, 0x40, 0xc1, + 0xc1, 0x1f, 0x40, 0x64, 0x55, 0x98, 0xbf, 0x9a, 0xec, 0x6e, 0x69, 0x0b, 0x73, 0x50, 0x7b, 0x21, + 0x2a, 0xf0, 0x06, 0x6f, 0x76, 0xd2, 0x8a, 0x29, 0xb6, 0x70, 0x8a, 0x26, 0x0c, 0xf3, 0x42, 0x2b, + 0x3e, 0x49, 0x71, 0xff, 0x77, 0x60, 0xa0, 0xd9, 0xe8, 0xf8, 0x9c, 0x13, 0x37, 0x0c, 0x88, 0x34, + 0x3c, 0x2b, 0x7f, 0x8e, 0xf8, 0x9d, 0xe3, 0xa0, 0x36, 0xa7, 0x6d, 0x31, 0x38, 0x78, 0x96, 0xaf, + 0x4c, 0xdd, 0x95, 0x3b, 0x8b, 0xc1, 0x51, 0x52, 0x0c, 0x41, 0x4f, 0x07, 0x44, 0x70, 0xc6, 0x47, + 0x0b, 0x8b, 0xe1, 0x0b, 0x73, 0x8a, 0xe1, 0x8b, 0x05, 0xc5, 0x70, 0x5f, 0x5e, 0x31, 0xdc, 0xbf, + 0xb0, 0x03, 0x4a, 0xd5, 0x38, 0xbe, 0xcb, 0xd4, 0xd6, 0xd8, 0xfa, 0x44, 0x89, 0xc6, 0x1b, 0x35, + 0x89, 0xb8, 0xd9, 0x6b, 0xd2, 0x2e, 0xac, 0x83, 0x87, 0xf8, 0x98, 0xa7, 0x47, 0xf8, 0x16, 0x2e, + 0x8b, 0x65, 0xaa, 0x86, 0xc4, 0xca, 0x8b, 0x83, 0x21, 0xaf, 0xfa, 0x12, 0x94, 0x91, 0xe5, 0x86, + 0x85, 0x61, 0xb5, 0xad, 0xa8, 0x4e, 0x5d, 0x59, 0x54, 0xaf, 0x2a, 0xd8, 0x57, 0x57, 0x5c, 0x1d, + 0xea, 0xca, 0x8d, 0xfb, 0xc8, 0x96, 0x25, 0xce, 0xdb, 0xa3, 0xc9, 0x72, 0x7b, 0x80, 0x04, 0xa1, + 0x1d, 0x59, 0x6c, 0xa9, 0xd5, 0xda, 0xed, 0x66, 0xab, 0x32, 0x27, 0x62, 0x1d, 0xea, 0xe9, 0x38, + 0xdd, 0xc1, 0x16, 0xab, 0x6f, 0xdb, 0x8b, 0xc1, 0x76, 0x84, 0x38, 0x6a, 0xf7, 0x8f, 0xbe, 0xce, + 0xf7, 0x58, 0x56, 0x74, 0xef, 0xe1, 0xf4, 0xed, 0xc9, 0x26, 0x4a, 0x6f, 0x4b, 0xa7, 0xef, 0x99, + 0xb7, 0x9f, 0xd2, 0x6f, 0x2e, 0x2d, 0x56, 0x37, 0x07, 0x3a, 0xd4, 0x8d, 0xbe, 0x62, 0x75, 0x4b, + 0x69, 0x87, 0xba, 0xe9, 0x70, 0xb1, 0x7a, 0x69, 0x55, 0xf7, 0xa1, 0x62, 0xf5, 0xc3, 0x55, 0xed, + 0x07, 0x8b, 0xd5, 0x8f, 0x56, 0xc5, 0x7d, 0x1d, 0x6a, 0xbf, 0xbf, 0x58, 0x6d, 0xdb, 0x1f, 0x5d, + 0xf5, 0x68, 0x63, 0x68, 0x7b, 0xfd, 0x48, 0x87, 0x1a, 0x6f, 0x69, 0x68, 0x0c, 0x0e, 0xd5, 0x0e, + 0x77, 0xa8, 0xad, 0x2d, 0x35, 0xd8, 0x43, 0x81, 0xc0, 0x72, 0x7f, 0xce, 0xfe, 0x68, 0x4b, 0x85, + 0x7d, 0xf1, 0xc2, 0x47, 0xd4, 0x66, 0x8c, 0xd1, 0xbc, 0xaa, 0x04, 0xeb, 0xaf, 0x94, 0x2e, 0x1f, + 0xae, 0x5d, 0xe5, 0xc0, 0x94, 0x16, 0x0a, 0x6b, 0x31, 0x0e, 0xd7, 0x36, 0xe7, 0x63, 0xfc, 0x72, + 0xd7, 0x7a, 0x4a, 0x55, 0xbe, 0x49, 0x5e, 0xec, 0x5b, 0x47, 0xf1, 0xca, 0x07, 0x1a, 0x36, 0x3b, + 0x73, 0x93, 0xea, 0xf0, 0x7a, 0x1c, 0x07, 0x33, 0xdf, 0x82, 0xfb, 0xb5, 0xdb, 0x58, 0xb6, 0xca, + 0x2b, 0x6b, 0x52, 0x09, 0xcc, 0x05, 0xbc, 0x52, 0x76, 0x41, 0x53, 0x62, 0x45, 0x8a, 0x17, 0xbf, + 0xbb, 0xe0, 0x14, 0x8d, 0xb4, 0x81, 0x39, 0xf9, 0xea, 0x6f, 0xe6, 0x7c, 0xc5, 0xd9, 0xed, 0x20, + 0xec, 0x89, 0x70, 0x3c, 0xc5, 0x3c, 0xbc, 0x07, 0xe6, 0x24, 0xac, 0x29, 0x9d, 0x57, 0x24, 0xa7, + 0xe0, 0x30, 0xcf, 0x90, 0x25, 0x93, 0xd8, 0x22, 0x87, 0xce, 0xbe, 0xae, 0x37, 0x87, 0xf8, 0x5c, + 0x65, 0x2f, 0xae, 0x98, 0xbb, 0xdd, 0xc1, 0xfa, 0xef, 0x4f, 0x37, 0xb8, 0xbf, 0x2e, 0x38, 0x5e, + 0x6f, 0x0a, 0x8f, 0x89, 0x70, 0x4d, 0x77, 0x77, 0x79, 0x8a, 0x8f, 0xaf, 0xf6, 0x22, 0xd4, 0x9b, + 0xdd, 0x60, 0x02, 0x19, 0xc7, 0xe2, 0x25, 0xe2, 0xc0, 0xb1, 0xb9, 0x49, 0x1e, 0x93, 0x5b, 0x52, + 0x2e, 0x64, 0xdb, 0x59, 0xaf, 0x77, 0x49, 0x5a, 0xaf, 0xb7, 0xc3, 0x5e, 0xf4, 0xe9, 0x7a, 0xbd, + 0x15, 0x29, 0x3a, 0x4a, 0xd6, 0x44, 0xb5, 0xdc, 0xe6, 0xfc, 0x5f, 0xc9, 0x6d, 0xc5, 0xe7, 0xfb, + 0x21, 0x0b, 0x1e, 0x0f, 0xbb, 0x61, 0x15, 0xeb, 0xa5, 0x7f, 0x14, 0x73, 0x2e, 0xcc, 0x05, 0xd2, + 0x66, 0xc4, 0x3a, 0xd9, 0xcd, 0x24, 0xb1, 0x0f, 0xab, 0x94, 0x39, 0xac, 0x79, 0x9d, 0x7c, 0x16, + 0x78, 0x5c, 0x21, 0x7b, 0xa3, 0x9f, 0xc4, 0x4d, 0xcc, 0x81, 0xb7, 0x6a, 0xfe, 0x1a, 0xac, 0x41, + 0x8c, 0xa0, 0x63, 0x21, 0x68, 0xfd, 0xc7, 0x58, 0xba, 0x0f, 0x71, 0x45, 0xc8, 0xc3, 0x1e, 0x21, + 0x69, 0x4a, 0x53, 0x29, 0x52, 0x3f, 0xa4, 0x09, 0xda, 0x9f, 0x8b, 0xfd, 0x23, 0xaf, 0xb5, 0x6a, + 0x7c, 0x48, 0x88, 0x4d, 0x13, 0xf7, 0x05, 0xae, 0x82, 0xeb, 0x0b, 0x6b, 0x33, 0x36, 0x3a, 0x6e, + 0x86, 0xd5, 0x3e, 0x6c, 0xf3, 0xd0, 0x29, 0x4c, 0x6f, 0xda, 0x7e, 0x11, 0xa4, 0xe8, 0x6a, 0xc4, + 0x9a, 0x5b, 0xc1, 0x20, 0x6e, 0xa0, 0x05, 0xff, 0xba, 0x35, 0x65, 0xd3, 0xf9, 0xab, 0xa4, 0x0d, + 0x5c, 0x70, 0x54, 0xe2, 0xca, 0xcd, 0xc3, 0x3a, 0x14, 0x96, 0xd9, 0x4a, 0x5b, 0xc1, 0xb8, 0xfd, + 0xa7, 0x9e, 0xd9, 0x8d, 0x1b, 0xfd, 0x2e, 0x90, 0xca, 0x5b, 0xc1, 0xb4, 0xeb, 0x48, 0xe3, 0x16, + 0xb7, 0x1b, 0xa9, 0x08, 0xac, 0xd7, 0x62, 0xc1, 0x1d, 0x68, 0xc4, 0x5d, 0xcb, 0x46, 0xfa, 0x57, + 0xc7, 0x70, 0x0d, 0x8d, 0x6d, 0xc7, 0x94, 0x32, 0xce, 0xb2, 0x3d, 0xcc, 0x09, 0x76, 0x81, 0xeb, + 0xc9, 0xd2, 0x3a, 0x33, 0x2c, 0x85, 0xd4, 0x60, 0xbd, 0xeb, 0xd4, 0x1b, 0x45, 0xd5, 0xea, 0xa4, + 0xc6, 0x2b, 0x78, 0x21, 0xc5, 0x2b, 0x48, 0x16, 0xdd, 0x85, 0x86, 0x64, 0xe6, 0xfd, 0x1b, 0xd5, + 0x6a, 0x77, 0x2e, 0xc5, 0xfb, 0x77, 0x73, 0xed, 0x4a, 0x66, 0x37, 0x3e, 0xa3, 0xaf, 0x5d, 0xb8, + 0x7a, 0x8e, 0x1b, 0xac, 0x9e, 0x7f, 0xbd, 0x8e, 0xff, 0x41, 0xab, 0xe3, 0x38, 0xd7, 0xf1, 0x7d, + 0xe6, 0xbb, 0x8f, 0xa8, 0x1f, 0x61, 0x1d, 0xaf, 0x60, 0x1d, 0xaf, 0x2e, 0x5c, 0x8c, 0xf5, 0xac, + 0x63, 0x5b, 0x51, 0x37, 0x16, 0x56, 0xab, 0xd3, 0x5a, 0x3d, 0xc7, 0xd3, 0xf5, 0x9c, 0xa5, 0xab, + 0xe7, 0xa4, 0x7a, 0x30, 0x25, 0x9f, 0x40, 0x7c, 0xf1, 0x34, 0x97, 0x33, 0xf2, 0x44, 0xbf, 0x79, + 0xc5, 0x21, 0xb8, 0xe8, 0xcb, 0x8a, 0xd6, 0x18, 0x57, 0xb0, 0x94, 0x03, 0x52, 0x34, 0x9a, 0x3d, + 0x95, 0xeb, 0x5e, 0x48, 0xf1, 0x48, 0xc6, 0x82, 0xf1, 0x3c, 0x4a, 0x9d, 0x4a, 0x77, 0x85, 0x4e, + 0xe8, 0xad, 0x84, 0x2b, 0x39, 0xd8, 0xbe, 0x94, 0x7a, 0x55, 0xdc, 0xd4, 0x57, 0xd2, 0x9d, 0x94, + 0x8b, 0xb4, 0x3d, 0x92, 0x16, 0x18, 0xdc, 0x4d, 0x02, 0x15, 0x5e, 0xa8, 0x88, 0x15, 0xb1, 0x5d, + 0x97, 0x22, 0x30, 0x2b, 0x56, 0x96, 0x76, 0x39, 0xa4, 0x76, 0x13, 0x85, 0x12, 0x1b, 0x4c, 0x3c, + 0x8a, 0x7e, 0xa3, 0x37, 0x8b, 0xef, 0xa4, 0x24, 0x7a, 0x93, 0x4d, 0xbb, 0xfa, 0x21, 0x0f, 0x30, + 0x5c, 0xad, 0x4e, 0xc8, 0x5e, 0x4b, 0x8a, 0xa2, 0x5a, 0x64, 0x0c, 0x27, 0xc8, 0x3a, 0x0b, 0xd1, + 0x23, 0x54, 0x87, 0xa3, 0x04, 0x0b, 0x0a, 0x29, 0xef, 0x0e, 0xa4, 0xbf, 0x30, 0xd4, 0xad, 0xaf, + 0x9b, 0x22, 0xf5, 0xab, 0xb2, 0xa9, 0xee, 0x3d, 0xab, 0x90, 0x81, 0xa7, 0x3b, 0x24, 0x0f, 0xe9, + 0x35, 0xa3, 0x3a, 0x95, 0xdd, 0xb6, 0x4e, 0xd3, 0xef, 0x6a, 0x75, 0x5a, 0x4b, 0x76, 0xb1, 0x32, + 0x35, 0x4a, 0x3d, 0xa2, 0x66, 0x2e, 0xe0, 0x52, 0xab, 0x12, 0x65, 0xbe, 0x76, 0x90, 0x7c, 0x79, + 0x5e, 0x4b, 0xa9, 0x07, 0x4c, 0x08, 0x4f, 0xa3, 0xa4, 0x79, 0x06, 0xdd, 0x46, 0x74, 0x07, 0x59, + 0x0b, 0x8d, 0x59, 0xd3, 0x44, 0xf3, 0x19, 0xeb, 0xdb, 0x0b, 0xa4, 0xed, 0xa0, 0x50, 0xe8, 0x86, + 0x3f, 0x9e, 0x9a, 0x53, 0x2e, 0xc4, 0xbb, 0x10, 0xc6, 0x16, 0xe2, 0xbe, 0xe5, 0xc3, 0xfd, 0xab, + 0x1c, 0xc7, 0x2f, 0x40, 0x52, 0x77, 0x48, 0x1b, 0x1f, 0xcf, 0x48, 0x63, 0xb2, 0xe5, 0x9c, 0x82, + 0x18, 0xf1, 0x54, 0x19, 0xbb, 0x11, 0x1a, 0x76, 0x07, 0x93, 0x06, 0x87, 0x1b, 0xf2, 0xfe, 0xcf, + 0x9e, 0x81, 0x75, 0x88, 0xf5, 0x19, 0x71, 0x56, 0x15, 0x30, 0x3c, 0x99, 0x1b, 0xdb, 0x43, 0x71, + 0x08, 0x62, 0xf6, 0x04, 0xbb, 0x49, 0x3a, 0xbd, 0xc0, 0xed, 0x82, 0xbc, 0x0f, 0xfe, 0x72, 0xc3, + 0x3a, 0x4f, 0x58, 0x31, 0x06, 0xfa, 0x49, 0xc3, 0xd9, 0x08, 0x62, 0xc7, 0x3d, 0x66, 0xd2, 0xcf, + 0xdc, 0x67, 0x38, 0xb4, 0x35, 0x01, 0x52, 0x4d, 0x77, 0x68, 0x64, 0x2b, 0xd9, 0x37, 0x07, 0xd6, + 0xa9, 0x8f, 0x38, 0xfc, 0x43, 0x1a, 0x3f, 0x25, 0xaf, 0x1f, 0x7b, 0x44, 0xb3, 0xf4, 0x3d, 0xe1, + 0x35, 0xa6, 0xa5, 0x23, 0x6a, 0x30, 0x9f, 0xad, 0x9c, 0xcf, 0xd6, 0x78, 0x39, 0xe6, 0x43, 0xf2, + 0x82, 0xd3, 0x98, 0xcf, 0x40, 0xdc, 0xcd, 0xfa, 0x9f, 0x1f, 0x3a, 0x4d, 0x39, 0x84, 0x35, 0x79, + 0xb9, 0x76, 0x2d, 0x7d, 0x5a, 0xba, 0x22, 0x9c, 0xdd, 0x6f, 0x50, 0x8c, 0xe1, 0xea, 0x70, 0x4d, + 0x4f, 0xf0, 0xe8, 0x33, 0xe3, 0x9b, 0x93, 0x7f, 0x56, 0x03, 0xa3, 0xcf, 0xbc, 0xbf, 0x69, 0xc3, + 0x40, 0x52, 0x1e, 0x7d, 0x66, 0x6c, 0x00, 0x7f, 0x6d, 0x6f, 0x0d, 0xfc, 0xf3, 0xb6, 0x0d, 0xcf, + 0x4c, 0x6c, 0x46, 0x88, 0x7c, 0x5a, 0xce, 0xe9, 0x0e, 0x8d, 0x12, 0x27, 0x37, 0xc0, 0x71, 0x9c, + 0x2d, 0x05, 0x6c, 0xf9, 0xec, 0xa4, 0x66, 0x1f, 0xb6, 0x48, 0xda, 0xe4, 0x80, 0xe5, 0x83, 0x58, + 0xda, 0x49, 0x7b, 0xb0, 0xe9, 0x5b, 0x88, 0x3b, 0x9e, 0x4e, 0x66, 0x91, 0x84, 0x98, 0x5c, 0x75, + 0x93, 0xad, 0xf3, 0x4d, 0xcb, 0xbf, 0xc5, 0x61, 0x69, 0x5b, 0xe7, 0x76, 0x6a, 0xf3, 0x6a, 0x28, + 0x28, 0x6a, 0x50, 0xc7, 0x52, 0x69, 0x70, 0x1f, 0x3e, 0x99, 0xe2, 0x97, 0xed, 0xb6, 0xa6, 0x7b, + 0xa2, 0x4a, 0xbd, 0xe4, 0x2f, 0x06, 0xfb, 0x42, 0xb2, 0x79, 0xdb, 0x01, 0xce, 0x85, 0x51, 0xf5, + 0x8a, 0x4f, 0x5a, 0x16, 0xa4, 0x73, 0xeb, 0x53, 0xa3, 0x08, 0x0b, 0xaf, 0xfa, 0xcc, 0xe8, 0x2b, + 0x86, 0x92, 0x53, 0x41, 0xe2, 0x2f, 0xbb, 0xb9, 0xcd, 0x7c, 0x0a, 0x31, 0xc6, 0x5c, 0x69, 0x67, + 0x48, 0xdf, 0x2b, 0xe9, 0x12, 0xe1, 0x56, 0x4c, 0x88, 0x56, 0x50, 0xed, 0xb8, 0xee, 0x13, 0x33, + 0x6b, 0x88, 0xad, 0xba, 0xc4, 0x75, 0x9a, 0x48, 0xd5, 0x29, 0xcd, 0x6d, 0x7b, 0x12, 0xa1, 0xc6, + 0x18, 0xe2, 0x33, 0xb9, 0xea, 0x19, 0xb6, 0x5a, 0xf1, 0x0e, 0xe2, 0x25, 0x67, 0x4b, 0xa9, 0x8e, + 0x21, 0xf5, 0x9c, 0x56, 0xc7, 0x71, 0xaa, 0x1f, 0xd6, 0xee, 0x82, 0x0f, 0x6b, 0x86, 0x90, 0xfa, + 0x7d, 0x6c, 0xc7, 0x69, 0x6c, 0xb5, 0x5f, 0x1b, 0xd3, 0x93, 0xde, 0xd9, 0x5a, 0xfd, 0x6e, 0x29, + 0x87, 0x64, 0x68, 0x7b, 0x0c, 0xb8, 0x4a, 0x5d, 0xc9, 0x87, 0x34, 0xf9, 0x19, 0xc6, 0xd5, 0x6f, + 0x3b, 0x1f, 0x8c, 0xe1, 0xb0, 0xe2, 0x88, 0xd5, 0x24, 0xe4, 0x99, 0x71, 0x6f, 0x1d, 0x79, 0xb9, + 0x43, 0x37, 0xb3, 0x8f, 0xf9, 0x24, 0x86, 0x61, 0x2f, 0x6b, 0xe7, 0x25, 0x6c, 0x05, 0x15, 0x57, + 0x62, 0xd2, 0xee, 0x85, 0x1e, 0xc4, 0x67, 0x7b, 0x11, 0xd6, 0xf4, 0xe3, 0xba, 0xde, 0xe0, 0xf7, + 0xc2, 0x20, 0xae, 0xed, 0x66, 0x67, 0x63, 0xec, 0x07, 0xd0, 0x1a, 0x37, 0x93, 0xd5, 0xcc, 0x04, + 0x18, 0x5f, 0xf1, 0x99, 0x17, 0x45, 0xa1, 0x69, 0x51, 0x08, 0x1e, 0x0d, 0xcc, 0x5e, 0x54, 0x0b, + 0x2b, 0x4b, 0xab, 0x16, 0x55, 0xc1, 0x63, 0x2c, 0x7d, 0x0b, 0xb0, 0x11, 0x53, 0x75, 0x96, 0x19, + 0x76, 0x86, 0x0f, 0xd4, 0x76, 0x82, 0xb1, 0xb7, 0x62, 0xf6, 0x8b, 0xe1, 0x91, 0x6a, 0x74, 0x75, + 0x96, 0x7b, 0xa1, 0xcd, 0x0f, 0x3b, 0x22, 0x87, 0xc3, 0x1d, 0x60, 0x54, 0xfc, 0x35, 0x3b, 0x8e, + 0x0e, 0xc7, 0x30, 0x7c, 0xc5, 0x48, 0x55, 0x97, 0x54, 0x66, 0x88, 0xfe, 0x74, 0x38, 0xdc, 0x25, + 0x91, 0x2e, 0x05, 0xb2, 0xc7, 0x4a, 0x94, 0x12, 0xe2, 0x0f, 0xad, 0x63, 0x83, 0x58, 0xa7, 0xf6, + 0x53, 0xeb, 0x0f, 0xc7, 0xda, 0x25, 0x7f, 0x8d, 0x3f, 0xf6, 0xc2, 0x11, 0x97, 0xa5, 0x71, 0xc3, + 0xa1, 0xda, 0x2e, 0xa9, 0x62, 0x76, 0xf4, 0x67, 0x2f, 0xae, 0xb7, 0x47, 0x67, 0xd8, 0x5a, 0x66, + 0xad, 0x09, 0x0a, 0x18, 0x25, 0xd6, 0xa8, 0x77, 0xe8, 0x77, 0x4a, 0xc3, 0x36, 0x96, 0x51, 0xb9, + 0x2f, 0x61, 0x8f, 0x85, 0x13, 0x73, 0x7d, 0x58, 0x83, 0x48, 0xb0, 0x14, 0xeb, 0x17, 0x09, 0x61, + 0x09, 0xbb, 0x11, 0xaf, 0x6e, 0x8a, 0x8e, 0x0a, 0x2b, 0x9a, 0x9f, 0xec, 0x2d, 0x5d, 0x03, 0xb9, + 0xa5, 0x45, 0x60, 0xf3, 0x19, 0xc6, 0x10, 0x63, 0x5f, 0x14, 0x84, 0x26, 0x5f, 0xed, 0xd8, 0xc7, + 0xf0, 0x28, 0xb6, 0xf5, 0xd1, 0x53, 0x5d, 0xb0, 0x12, 0xdb, 0xbb, 0xf2, 0xd4, 0xc7, 0xf0, 0x18, + 0xb6, 0xf8, 0x31, 0x2d, 0x57, 0x92, 0x85, 0x0d, 0xe3, 0xfb, 0x2c, 0xb7, 0x59, 0x7a, 0x3b, 0x4a, + 0x6d, 0x86, 0xb7, 0x4e, 0x1d, 0xf1, 0x9b, 0xf7, 0x93, 0xeb, 0xa8, 0xaf, 0x0b, 0xda, 0x4a, 0xa3, + 0xa7, 0x46, 0x47, 0x6a, 0x3b, 0x00, 0x0e, 0x9c, 0x8a, 0x0e, 0x87, 0x30, 0xf4, 0xfb, 0x6c, 0x85, + 0x69, 0x52, 0x58, 0xb5, 0x84, 0x97, 0xe5, 0x20, 0xd5, 0x83, 0x75, 0x4d, 0x48, 0xb8, 0x27, 0x40, + 0x56, 0x03, 0xce, 0xd4, 0x41, 0x84, 0x3b, 0xe6, 0x44, 0xdf, 0x92, 0x8f, 0xa1, 0x8e, 0x6c, 0x34, + 0x90, 0x14, 0x92, 0x38, 0xe1, 0xc1, 0xda, 0xaf, 0xc5, 0x76, 0xf4, 0x3d, 0xdf, 0xf8, 0x1c, 0xe2, + 0x09, 0xcf, 0xe3, 0x8e, 0x8f, 0xbf, 0x26, 0x79, 0xa9, 0x3d, 0xc6, 0xad, 0x38, 0xac, 0x59, 0xec, + 0x08, 0x72, 0xfa, 0x0a, 0xc4, 0x6f, 0x53, 0x79, 0x9b, 0x39, 0xc4, 0xc5, 0x2d, 0x2c, 0x82, 0xdc, + 0x9b, 0xd2, 0xc7, 0xec, 0xd8, 0x1f, 0x5c, 0xaf, 0xdd, 0xb0, 0x06, 0x06, 0x60, 0xae, 0xcc, 0xf9, + 0x4d, 0x5d, 0x94, 0x97, 0xd0, 0x38, 0xd0, 0x28, 0x78, 0xda, 0x0d, 0xc7, 0x89, 0x73, 0xcd, 0x4b, + 0xb2, 0x3b, 0x9e, 0x00, 0xb6, 0x78, 0x51, 0x0d, 0x44, 0x90, 0x28, 0x6b, 0x5b, 0xb4, 0x18, 0x6a, + 0xbc, 0x75, 0x10, 0x55, 0x40, 0xea, 0xc6, 0x79, 0xe3, 0x09, 0x78, 0x20, 0x17, 0xeb, 0xf8, 0xd8, + 0x70, 0x4d, 0x07, 0x48, 0x4d, 0x7e, 0x0f, 0xe4, 0x63, 0x3f, 0x3c, 0xba, 0x3f, 0x8a, 0xbe, 0x98, + 0xbf, 0x9d, 0x25, 0xa9, 0x57, 0x8e, 0xc4, 0xd0, 0x17, 0x28, 0xf3, 0x40, 0x5e, 0x29, 0xf6, 0xf6, + 0x01, 0xec, 0x1f, 0xa9, 0xa4, 0xdc, 0x7c, 0x38, 0xda, 0x25, 0x95, 0x9b, 0x76, 0x75, 0x41, 0x64, + 0x38, 0x82, 0x21, 0x85, 0xc3, 0x61, 0x1c, 0x77, 0x08, 0x84, 0x77, 0x7f, 0x0c, 0x11, 0xec, 0xd3, + 0xfa, 0x4e, 0x90, 0xcc, 0x15, 0xb3, 0x2b, 0x2d, 0x6f, 0xd0, 0x0c, 0xb0, 0xbc, 0xd8, 0x05, 0x35, + 0x23, 0xd5, 0x1d, 0x60, 0xb8, 0x3a, 0x52, 0xd5, 0x8e, 0x73, 0x68, 0x27, 0xfa, 0x29, 0x27, 0xc3, + 0x05, 0xaa, 0x05, 0x59, 0xf3, 0x4e, 0xac, 0x7c, 0x0a, 0x2a, 0x8b, 0x60, 0xae, 0x79, 0x16, 0xcd, + 0x4d, 0xc3, 0xc9, 0xc8, 0xdf, 0xc6, 0x5d, 0x15, 0x6b, 0x90, 0x62, 0xbb, 0x3b, 0x32, 0xe8, 0x0e, + 0xbf, 0xf8, 0x01, 0x78, 0xca, 0x71, 0xd4, 0xb1, 0xee, 0xbe, 0xc8, 0x0f, 0x70, 0x7f, 0xed, 0x02, + 0xdf, 0xae, 0x0f, 0xa0, 0x84, 0xfc, 0x4a, 0xbe, 0x3f, 0xe6, 0xb0, 0x3c, 0x75, 0xcf, 0xd1, 0x67, + 0xdc, 0xe1, 0xff, 0x72, 0xa2, 0xbc, 0x46, 0x17, 0xc7, 0xe3, 0x25, 0x4e, 0xbc, 0xa0, 0x62, 0x23, + 0xbd, 0x27, 0xe8, 0x36, 0x42, 0x90, 0xce, 0xfc, 0xfe, 0xcb, 0xdf, 0x2f, 0xaa, 0x06, 0xff, 0xa1, + 0xda, 0x76, 0x23, 0xce, 0x10, 0xff, 0xa2, 0x08, 0x94, 0x1d, 0x8c, 0xa2, 0x3b, 0x0a, 0x65, 0xb8, + 0x3a, 0xca, 0xb1, 0x86, 0x46, 0x9c, 0x41, 0xe5, 0x8b, 0xea, 0xa1, 0x62, 0xb8, 0x1e, 0xdd, 0x41, + 0xa8, 0xc0, 0x5e, 0xa9, 0x18, 0xfa, 0x18, 0xca, 0xb0, 0x07, 0xca, 0xb7, 0x7f, 0x0c, 0xfe, 0x99, + 0x18, 0x5b, 0xc3, 0x36, 0xa4, 0x01, 0x03, 0xae, 0x35, 0x6c, 0x7f, 0xca, 0xe8, 0xc3, 0x5e, 0x1c, + 0xee, 0x82, 0x32, 0x9c, 0x47, 0xd7, 0xb0, 0xd7, 0x72, 0x0f, 0x60, 0x5a, 0x9c, 0x4b, 0x17, 0x71, + 0x77, 0xcc, 0x1b, 0xe9, 0x22, 0xdd, 0x61, 0xf0, 0x2e, 0xf6, 0xb4, 0x6d, 0x3f, 0xe6, 0x85, 0xe1, + 0xa7, 0x02, 0x18, 0xb6, 0xbf, 0xbe, 0x4b, 0x0a, 0x84, 0x03, 0x64, 0x4b, 0xbc, 0x7c, 0x24, 0xd2, + 0x2e, 0x95, 0x1b, 0x7c, 0x91, 0xe7, 0xde, 0x72, 0x99, 0x1b, 0x37, 0xf8, 0x31, 0xa7, 0x03, 0x31, + 0x5c, 0x6f, 0x55, 0xfe, 0x18, 0x61, 0x13, 0xc3, 0xd5, 0xed, 0x52, 0x05, 0xf8, 0xaa, 0x9f, 0x3b, + 0xe1, 0x36, 0x37, 0x3e, 0xcd, 0xfa, 0xb2, 0xb4, 0x3a, 0x3c, 0xf7, 0x03, 0x08, 0x70, 0x4f, 0xd6, + 0xb0, 0xfd, 0xc9, 0xb9, 0xac, 0xed, 0xa3, 0x3b, 0x32, 0x1a, 0xb7, 0xfb, 0x71, 0x26, 0x45, 0x8f, + 0x44, 0x06, 0xe5, 0xf0, 0x10, 0x59, 0x3f, 0x37, 0x97, 0xe1, 0xac, 0x22, 0xdb, 0xa2, 0xf6, 0xaa, + 0xed, 0x64, 0x07, 0x7d, 0xb6, 0x92, 0xe3, 0x43, 0xec, 0x99, 0x34, 0x2a, 0xee, 0x18, 0xe0, 0x70, + 0xec, 0x35, 0x85, 0x64, 0xa8, 0x9a, 0x49, 0xf7, 0x15, 0x69, 0xa4, 0x90, 0x73, 0xc6, 0xbe, 0x8d, + 0x33, 0xcb, 0x77, 0x6a, 0x33, 0x86, 0x06, 0xc7, 0x10, 0xc6, 0x9c, 0x42, 0x08, 0x73, 0x7a, 0xeb, + 0xdb, 0x9b, 0x75, 0x6b, 0xba, 0x0b, 0xe9, 0x56, 0xb6, 0xa0, 0x8e, 0xd0, 0x27, 0x90, 0x30, 0x1f, + 0x14, 0xda, 0x52, 0xaf, 0xf0, 0x38, 0x2c, 0xc7, 0x51, 0xfe, 0x01, 0x78, 0xe2, 0x30, 0xb5, 0x99, + 0x74, 0x26, 0x8a, 0x55, 0xff, 0xdb, 0x41, 0xe6, 0x5a, 0x4d, 0xdb, 0xc4, 0xc5, 0x95, 0xde, 0x97, + 0x5a, 0x1d, 0xb4, 0xbe, 0x26, 0x5f, 0x55, 0x60, 0xca, 0xce, 0x78, 0x9b, 0x46, 0xbf, 0xb3, 0x5c, + 0xe1, 0x1a, 0x60, 0xed, 0xcd, 0x09, 0xe5, 0x27, 0xa7, 0xe2, 0x2b, 0x95, 0x55, 0xc4, 0xbf, 0x6b, + 0x47, 0xac, 0x52, 0x1e, 0x98, 0x17, 0x62, 0xbb, 0x58, 0x00, 0xd6, 0x44, 0x0e, 0xd9, 0xa3, 0x19, + 0x6b, 0x25, 0x9b, 0x34, 0x5f, 0x0a, 0x6a, 0xd6, 0xb7, 0xac, 0x09, 0x1b, 0x86, 0x9a, 0x30, 0xd4, + 0x34, 0xb4, 0x1a, 0x24, 0x0c, 0x37, 0x95, 0xde, 0xfb, 0xcb, 0x06, 0x0c, 0x93, 0x7e, 0xd1, 0x0a, + 0x12, 0xba, 0x49, 0x13, 0x98, 0xf0, 0x69, 0x7c, 0x98, 0x8e, 0xaf, 0x3b, 0x91, 0x1a, 0x62, 0x9b, + 0x5c, 0xd6, 0xf8, 0x4e, 0xe5, 0x23, 0xcd, 0x6e, 0x8a, 0x1d, 0x71, 0x11, 0x2b, 0xf1, 0x9e, 0x3b, + 0x8a, 0x59, 0x52, 0xf4, 0x3a, 0x3e, 0x37, 0xe4, 0xaa, 0x6e, 0xb3, 0xd0, 0x8e, 0xba, 0x2c, 0x88, + 0x3b, 0xc9, 0x24, 0xfa, 0x41, 0xe7, 0x9f, 0x46, 0x5c, 0x8e, 0xb0, 0xca, 0x62, 0x20, 0x7b, 0x7a, + 0x1e, 0xb1, 0xfa, 0xe3, 0x36, 0x92, 0x11, 0xb2, 0x23, 0x65, 0xe7, 0x20, 0x3e, 0x5f, 0x23, 0xf1, + 0xf0, 0x46, 0xac, 0x9a, 0x45, 0x23, 0xa6, 0x3a, 0x84, 0x2c, 0x3b, 0xe1, 0x41, 0x58, 0xa6, 0xcd, + 0x8d, 0xe5, 0x79, 0x8a, 0xa1, 0x00, 0xcb, 0x95, 0xcb, 0x3b, 0x60, 0x6e, 0x11, 0x42, 0x5f, 0xf5, + 0xb2, 0x63, 0x19, 0x63, 0x59, 0x87, 0xae, 0xc4, 0x4a, 0x10, 0x87, 0x63, 0x99, 0x4a, 0xc5, 0x2b, + 0x89, 0xd2, 0x90, 0xe6, 0x20, 0x8c, 0x93, 0x79, 0x1d, 0x10, 0xda, 0xb8, 0x90, 0x0e, 0xbe, 0xf1, + 0xc3, 0x9f, 0x76, 0xe2, 0xd4, 0x45, 0xd7, 0xf4, 0x0f, 0x7f, 0x8a, 0x6b, 0x30, 0x82, 0xae, 0xeb, + 0x3f, 0x3c, 0x8a, 0x61, 0x15, 0xe8, 0x9a, 0xfc, 0xe1, 0x51, 0x0c, 0xf3, 0x79, 0xa5, 0xf2, 0x3a, + 0x1c, 0xa5, 0x2c, 0x9c, 0x61, 0xb3, 0x38, 0x17, 0x13, 0xf1, 0xd1, 0xfe, 0x0b, 0x69, 0x9e, 0x94, + 0x71, 0x96, 0xe7, 0x62, 0x89, 0x96, 0xfa, 0x43, 0xbf, 0xd9, 0x43, 0xa5, 0x44, 0xdb, 0xc0, 0xc6, + 0x38, 0xe4, 0x0a, 0xd2, 0x1e, 0x83, 0x54, 0x8d, 0xad, 0xea, 0x37, 0x51, 0x40, 0xca, 0xc6, 0x53, + 0xd6, 0x06, 0xb9, 0x8b, 0x7f, 0x5b, 0x0e, 0x3b, 0x2f, 0x32, 0x7f, 0x76, 0x1e, 0xc2, 0xcb, 0x91, + 0x00, 0xd2, 0x74, 0x7f, 0xfd, 0x73, 0x9c, 0xf9, 0xaf, 0x96, 0xba, 0x70, 0x1e, 0xbe, 0x39, 0xf2, + 0x2c, 0xba, 0x5f, 0x2c, 0x43, 0x3c, 0x2c, 0xfa, 0xd3, 0x03, 0xdf, 0x22, 0x8b, 0x97, 0xa4, 0xd9, + 0x14, 0xdd, 0xcf, 0x76, 0x10, 0x74, 0x0d, 0x26, 0xdc, 0x48, 0xd5, 0xdf, 0x88, 0x8e, 0x0e, 0x53, + 0xbc, 0x41, 0x74, 0x4f, 0x93, 0xbb, 0x63, 0x2d, 0xba, 0xae, 0xa3, 0xeb, 0x5b, 0x9d, 0xed, 0xe8, + 0x9a, 0x24, 0x57, 0xc7, 0x2a, 0xb2, 0x64, 0x13, 0xcf, 0xd5, 0xea, 0x4e, 0xb6, 0xad, 0xb8, 0xee, + 0x8a, 0xb0, 0x50, 0x27, 0x56, 0x44, 0x45, 0x64, 0x34, 0x51, 0x21, 0x62, 0x7c, 0xe7, 0x4d, 0xef, + 0x5d, 0xcf, 0xbf, 0x85, 0xb8, 0xd3, 0x3d, 0xa3, 0xeb, 0xa2, 0x7f, 0x62, 0x06, 0x8c, 0xed, 0x42, + 0x08, 0xce, 0x2d, 0xbd, 0x5a, 0xca, 0x2d, 0xcd, 0xd5, 0xa8, 0x6c, 0x24, 0x48, 0x49, 0x8a, 0x17, + 0xb1, 0x49, 0x95, 0x5a, 0x2e, 0x38, 0x79, 0x2f, 0x1f, 0xc1, 0xfd, 0x9a, 0xb8, 0x76, 0x31, 0x94, + 0xf7, 0xe9, 0xe3, 0xda, 0xb8, 0x8d, 0x31, 0xfe, 0x5a, 0x2c, 0x6c, 0x3d, 0xd2, 0x3c, 0x41, 0x1c, + 0xb6, 0xa0, 0x92, 0x30, 0x0f, 0xc4, 0x3a, 0xd4, 0x73, 0xf6, 0x70, 0xd1, 0x6a, 0x1c, 0xb7, 0x33, + 0xce, 0x47, 0x34, 0x3b, 0x05, 0x0d, 0x88, 0xd7, 0x9c, 0xc2, 0x7e, 0x91, 0x14, 0xd3, 0x9f, 0xbf, + 0x85, 0x78, 0xc1, 0x29, 0x6d, 0x87, 0x7e, 0x5b, 0x58, 0x69, 0x62, 0x09, 0xec, 0x10, 0xf1, 0x3e, + 0x83, 0x8b, 0xa9, 0xc8, 0x62, 0xf5, 0x0c, 0x9d, 0x21, 0x4e, 0x75, 0x6b, 0xa3, 0xfa, 0x18, 0x8e, + 0xdb, 0x15, 0xd6, 0x48, 0x49, 0x90, 0x7b, 0x67, 0x79, 0xb1, 0x7a, 0x2d, 0x80, 0x73, 0xf6, 0x70, + 0x04, 0xa1, 0xf0, 0xa6, 0x32, 0xec, 0x01, 0xa2, 0x56, 0x47, 0xaa, 0xf0, 0x5b, 0x5f, 0x05, 0xd6, + 0xb7, 0xb4, 0xf1, 0x10, 0x41, 0xf1, 0xce, 0x03, 0x08, 0x9b, 0x4b, 0xab, 0x10, 0xfb, 0xb9, 0x7e, + 0x38, 0xda, 0x2e, 0x05, 0xcc, 0x48, 0xfd, 0xdd, 0x18, 0x21, 0xf8, 0x62, 0x40, 0xba, 0x6a, 0x72, + 0x98, 0xe0, 0x10, 0x2c, 0x8c, 0xa8, 0xd3, 0x34, 0x3f, 0x86, 0x4e, 0xd9, 0x3b, 0xd4, 0x53, 0xbf, + 0x3c, 0x4e, 0xf3, 0x67, 0x08, 0x69, 0xd6, 0xff, 0x7d, 0x3c, 0xd6, 0xa1, 0x9e, 0x4b, 0x98, 0xe4, + 0xb0, 0x6b, 0x0f, 0xc9, 0x6a, 0x80, 0xcb, 0xb7, 0xd8, 0x6b, 0xd6, 0x66, 0x78, 0x21, 0xd7, 0x90, + 0xb4, 0x11, 0x59, 0xd1, 0x97, 0x87, 0x2b, 0xbd, 0x9f, 0x65, 0x72, 0x89, 0xeb, 0xfb, 0x2a, 0xc5, + 0xa5, 0xd9, 0xf2, 0x71, 0x3b, 0xb5, 0x25, 0xba, 0x46, 0x68, 0xa3, 0x9b, 0x9c, 0x43, 0xd8, 0x57, + 0x00, 0x21, 0x15, 0xee, 0x7b, 0x9e, 0x72, 0xd3, 0x99, 0xc6, 0x5d, 0xa1, 0x0a, 0x84, 0x53, 0x08, + 0xc9, 0x4a, 0xca, 0xb2, 0xdf, 0xc6, 0x1d, 0x70, 0x67, 0xf0, 0x2c, 0xee, 0x81, 0xbb, 0x43, 0xef, + 0xe0, 0x2e, 0xf8, 0x62, 0x10, 0xa1, 0x80, 0x99, 0x31, 0x30, 0x28, 0x8d, 0x10, 0x56, 0xe8, 0xab, + 0x42, 0x9a, 0xe0, 0x52, 0xe9, 0x62, 0x74, 0x23, 0x5e, 0x61, 0xe8, 0xab, 0x74, 0x43, 0xfe, 0x1b, + 0xd8, 0x62, 0x43, 0x27, 0xb6, 0x3d, 0x97, 0xf0, 0x1a, 0x43, 0x33, 0x69, 0x41, 0xa2, 0xdd, 0xca, + 0xf0, 0x28, 0xd2, 0xdf, 0xb6, 0xc3, 0xd8, 0x57, 0x86, 0x86, 0xd2, 0x08, 0xc2, 0x7e, 0xa9, 0x34, + 0x4a, 0xbd, 0xe0, 0xab, 0x22, 0x0c, 0xc7, 0x17, 0x42, 0xbc, 0xf0, 0x46, 0xa9, 0x69, 0xb8, 0x86, + 0xac, 0xa8, 0x12, 0x05, 0xef, 0xcb, 0x7e, 0x03, 0x7b, 0xc5, 0x37, 0x8b, 0x56, 0x31, 0xb6, 0xfa, + 0xfd, 0x44, 0xfb, 0xc2, 0x0e, 0xf5, 0x9a, 0xfa, 0x76, 0x65, 0xb1, 0xfa, 0xf6, 0x1b, 0x94, 0x8b, + 0x05, 0xfd, 0x57, 0xd4, 0xb3, 0xc3, 0x1d, 0xea, 0x59, 0x9c, 0xb3, 0x93, 0xe8, 0xbb, 0xaa, 0xbe, + 0x8b, 0x5f, 0xdf, 0x7d, 0x83, 0xb0, 0x89, 0x4b, 0xe8, 0xba, 0xfc, 0x06, 0xe1, 0x13, 0xe3, 0xb4, + 0x1b, 0x96, 0x2e, 0xa6, 0xb2, 0x30, 0xec, 0xec, 0x1b, 0xb8, 0x87, 0xfa, 0x16, 0x53, 0x69, 0x23, + 0x1d, 0xea, 0xbb, 0x5d, 0x46, 0xb2, 0xcd, 0x4d, 0xe5, 0x61, 0x3e, 0x6f, 0x77, 0x19, 0x71, 0x56, + 0x93, 0x44, 0xd3, 0x34, 0xcb, 0x62, 0xbf, 0x8d, 0xfd, 0xfe, 0xf6, 0x73, 0x88, 0x7d, 0x62, 0x9c, + 0x1b, 0xa5, 0xa1, 0xe7, 0x3f, 0x54, 0x2f, 0x11, 0x96, 0x10, 0x97, 0x79, 0x14, 0x8c, 0xae, 0xd7, + 0xb1, 0xbf, 0xa9, 0x5f, 0x8b, 0xd5, 0x71, 0xfd, 0x18, 0x28, 0x8d, 0x62, 0x2f, 0x78, 0x2a, 0x7b, + 0xf4, 0x99, 0xf8, 0x2a, 0x2d, 0xee, 0x5e, 0xb0, 0x62, 0xef, 0xd8, 0x7c, 0xb3, 0xc8, 0x1a, 0xf3, + 0xd0, 0x62, 0x6a, 0xc5, 0xbb, 0x41, 0xa4, 0xaa, 0xaf, 0x63, 0x68, 0xee, 0xf6, 0xc5, 0x58, 0x83, + 0x1b, 0xbf, 0x40, 0x38, 0xf0, 0x5f, 0x11, 0x3e, 0xdc, 0x92, 0x27, 0xd9, 0x91, 0x58, 0xbb, 0x0b, + 0x68, 0x2e, 0x44, 0xff, 0x64, 0x13, 0xa4, 0xc6, 0xf7, 0x37, 0xbb, 0x4f, 0x0f, 0xd0, 0xf8, 0x6a, + 0x12, 0xdd, 0x30, 0x3d, 0x98, 0x1a, 0xe5, 0x0f, 0x5f, 0xc2, 0x35, 0x22, 0xf1, 0xd9, 0x3b, 0xad, + 0x90, 0x3d, 0xda, 0x0a, 0x99, 0x88, 0xfe, 0x73, 0x00, 0x68, 0x85, 0x20, 0x44, 0x73, 0x21, 0x64, + 0xf3, 0x95, 0x23, 0xfe, 0x4d, 0x56, 0xdb, 0x30, 0xc5, 0x06, 0x39, 0x78, 0x2f, 0x9d, 0xe2, 0x7c, + 0x0e, 0xe9, 0x71, 0x9b, 0xfa, 0x11, 0xeb, 0x1e, 0xb8, 0x88, 0x6f, 0x87, 0x7a, 0xe5, 0x8b, 0xd5, + 0x48, 0xfb, 0xeb, 0x2c, 0xd0, 0xe1, 0x7b, 0xae, 0x8a, 0xfd, 0x0d, 0x76, 0xac, 0x6b, 0x56, 0xf8, + 0x2f, 0xd8, 0xae, 0x33, 0xd9, 0x9d, 0xba, 0x18, 0xed, 0xfb, 0xb8, 0x99, 0x6a, 0x2d, 0xb8, 0x24, + 0x27, 0x49, 0x97, 0x88, 0xa7, 0xee, 0x43, 0x08, 0x68, 0x16, 0xb0, 0xf8, 0x54, 0x45, 0xd8, 0x63, + 0xc5, 0x5a, 0x38, 0xb0, 0x06, 0x1e, 0xac, 0x81, 0x3b, 0x36, 0x18, 0x67, 0x0b, 0xb1, 0x4c, 0x2d, + 0xe6, 0x6a, 0x76, 0xb4, 0xaf, 0x17, 0xb5, 0x42, 0x01, 0x42, 0xe8, 0xbb, 0x1f, 0x19, 0x14, 0x16, + 0x96, 0x2f, 0x8d, 0xcf, 0xa8, 0xe1, 0x04, 0xd7, 0xf0, 0x02, 0x51, 0x08, 0x5c, 0xb7, 0xcb, 0x5c, + 0xb7, 0x2b, 0x5c, 0xb7, 0xab, 0x5c, 0xb7, 0x6b, 0x33, 0xea, 0x76, 0x21, 0xda, 0xf7, 0x91, 0x9b, + 0xe6, 0xbe, 0xb8, 0x95, 0xfd, 0x64, 0x4c, 0xd4, 0xcd, 0x58, 0x28, 0xce, 0xe2, 0xc5, 0x1e, 0x53, + 0xce, 0xbd, 0x83, 0xf5, 0x72, 0x61, 0xbd, 0x9c, 0xa2, 0x67, 0x2e, 0xb5, 0xc9, 0xc1, 0x79, 0x1d, + 0x64, 0xd3, 0xf3, 0xde, 0x0e, 0xb8, 0x1f, 0x3e, 0xc7, 0x92, 0x96, 0xd7, 0x99, 0xc2, 0xb9, 0xc1, + 0x25, 0x4f, 0x72, 0xc9, 0xba, 0x9e, 0x40, 0x0a, 0xaa, 0xef, 0xc3, 0x70, 0xa6, 0x1f, 0x3e, 0x69, + 0xd6, 0xfa, 0xa1, 0x50, 0x9c, 0x6c, 0xf1, 0x28, 0x78, 0x59, 0x77, 0xb8, 0x0f, 0x71, 0x0f, 0x37, + 0x62, 0x18, 0xda, 0x28, 0x7c, 0x80, 0xb9, 0xf8, 0xaa, 0xbd, 0x66, 0x91, 0x0f, 0xf3, 0x92, 0xea, + 0x1f, 0xca, 0xab, 0x80, 0xf3, 0x7a, 0x0f, 0x02, 0xc2, 0x1e, 0xb6, 0x37, 0xa7, 0xac, 0x9a, 0x4f, + 0x49, 0x8c, 0x29, 0xeb, 0x7b, 0xb8, 0xfe, 0x67, 0x58, 0xdc, 0x13, 0x16, 0xa9, 0x2b, 0x25, 0x6f, + 0x4e, 0x69, 0x0d, 0x7e, 0xcb, 0xd6, 0xc5, 0xe4, 0x78, 0x0b, 0x5d, 0x34, 0x87, 0xea, 0xde, 0x0b, + 0xf6, 0x0b, 0xde, 0x01, 0x6f, 0x4e, 0xf8, 0x2f, 0x2a, 0x82, 0x9a, 0x9d, 0x42, 0x4b, 0x2a, 0xb7, + 0x85, 0xda, 0xfd, 0x79, 0x4a, 0x47, 0x13, 0x96, 0x1b, 0xd6, 0xbe, 0xa7, 0x73, 0xd2, 0xac, 0x03, + 0xb2, 0x54, 0x38, 0xc9, 0x73, 0xc3, 0xf9, 0x90, 0x11, 0xce, 0x07, 0xcf, 0xe1, 0x73, 0x06, 0x9f, + 0xb3, 0x70, 0xfe, 0x6b, 0x66, 0x38, 0xdf, 0x98, 0x07, 0xe7, 0x1f, 0xd9, 0x05, 0xe7, 0x13, 0xa7, + 0xe0, 0x7c, 0x24, 0x1f, 0xce, 0xff, 0x67, 0x07, 0x9c, 0x6f, 0x3e, 0x8e, 0x4f, 0x3b, 0x9c, 0x0f, + 0x6f, 0x85, 0xf3, 0x2b, 0xca, 0x31, 0x4e, 0x13, 0x9c, 0x6f, 0x1a, 0xc3, 0x38, 0x18, 0xd6, 0x74, + 0x1d, 0x7f, 0x77, 0xe0, 0xef, 0x05, 0x38, 0x1f, 0x6f, 0x85, 0xf3, 0xad, 0x0a, 0xfa, 0x07, 0xe0, + 0xfc, 0x2a, 0x3f, 0x9c, 0x5f, 0x8e, 0xf9, 0xaf, 0x18, 0x45, 0x7f, 0x1d, 0xe6, 0x13, 0xc3, 0xfc, + 0x23, 0x70, 0xfe, 0xd1, 0x36, 0xcc, 0x1f, 0xcb, 0x7a, 0x04, 0xe3, 0x7d, 0xad, 0x17, 0x9f, 0x3d, + 0x70, 0xbe, 0xe5, 0x23, 0x8c, 0xeb, 0xc1, 0xf2, 0xde, 0xc2, 0x72, 0xca, 0x30, 0x7f, 0x2c, 0xf3, + 0x11, 0x0c, 0xaf, 0xa5, 0xcd, 0x09, 0x30, 0x6f, 0xcc, 0xe3, 0x6b, 0x97, 0xe1, 0x7c, 0x5d, 0xbd, + 0x8a, 0x7f, 0xf0, 0xef, 0xfd, 0x73, 0xac, 0xa8, 0x6e, 0xac, 0x90, 0xdb, 0x1f, 0xff, 0x66, 0x4b, + 0xf7, 0x93, 0x25, 0xed, 0xab, 0x57, 0x75, 0x3f, 0xde, 0xfd, 0x4d, 0xf9, 0x41, 0x5f, 0x89, 0x4f, + 0x76, 0x95, 0x96, 0x3c, 0x58, 0x52, 0xea, 0xfb, 0x52, 0xe9, 0x03, 0x77, 0x5b, 0x60, 0x66, 0x04, + 0x80, 0xd8, 0x24, 0x9c, 0xff, 0x4f, 0xfb, 0xe0, 0xfc, 0x86, 0xd6, 0x75, 0xa5, 0xb3, 0x83, 0xe8, + 0xde, 0x8d, 0xcf, 0xff, 0x07, 0x9f, 0x93, 0xe9, 0x9c, 0x4b, 0xe0, 0x7c, 0xa0, 0x5f, 0xd4, 0x39, + 0x54, 0x5e, 0xc7, 0xe9, 0xbf, 0xee, 0x7f, 0xf0, 0xeb, 0x55, 0x5d, 0xed, 0xed, 0x2d, 0x4f, 0xf4, + 0x34, 0xac, 0xee, 0x6d, 0x69, 0x7f, 0x92, 0x83, 0x61, 0xd9, 0x13, 0x8f, 0xb7, 0xb7, 0xb0, 0xb3, + 0xea, 0xf1, 0xf6, 0xf6, 0x55, 0x8f, 0x3f, 0xb1, 0x06, 0xbe, 0xbe, 0xac, 0xb5, 0xeb, 0x4f, 0x1b, + 0x1e, 0xef, 0xee, 0x79, 0xf2, 0x2b, 0x71, 0x11, 0x29, 0xd1, 0xfd, 0x78, 0xb2, 0x75, 0xf5, 0x13, + 0x99, 0x3a, 0x7c, 0xa3, 0x67, 0x75, 0xfb, 0xea, 0x9e, 0x6f, 0xa6, 0xfd, 0xcb, 0x1b, 0xbf, 0x5a, + 0x0d, 0x35, 0xa1, 0xba, 0x65, 0xd5, 0x30, 0xff, 0x49, 0xad, 0x49, 0xff, 0x69, 0x7e, 0xd2, 0xd3, + 0xdd, 0x92, 0x58, 0xdd, 0xd5, 0x89, 0x2e, 0x6c, 0x45, 0x71, 0xe5, 0x93, 0xad, 0x8f, 0x27, 0x5b, + 0xd8, 0xb3, 0xac, 0x76, 0x69, 0x43, 0x5d, 0x75, 0x4d, 0x63, 0xf5, 0xb2, 0xa8, 0x88, 0x2c, 0xc7, + 0xbb, 0xbe, 0xd1, 0xd9, 0x3c, 0x4f, 0x9e, 0xdf, 0xec, 0x9d, 0xdf, 0x2c, 0x17, 0x8b, 0x5f, 0x8c, + 0xb7, 0xba, 0x23, 0xd9, 0xde, 0xd2, 0xd8, 0x12, 0xef, 0x6e, 0x79, 0xb2, 0xb5, 0x42, 0xa6, 0x2a, + 0xae, 0xee, 0x4c, 0xc8, 0x4f, 0x68, 0x55, 0x95, 0x3b, 0xbb, 0xfe, 0x74, 0x9e, 0xbc, 0xaa, 0x83, + 0xf3, 0x6c, 0x6c, 0xe9, 0xf9, 0x46, 0x77, 0x67, 0x4b, 0xb3, 0x1c, 0xef, 0xee, 0xea, 0x48, 0x47, + 0x99, 0x87, 0x99, 0x2c, 0x0d, 0x35, 0x2e, 0x6f, 0xbc, 0x4d, 0x69, 0x16, 0xf8, 0xca, 0xda, 0x96, + 0xee, 0xf6, 0xc7, 0x93, 0x49, 0xcc, 0xb4, 0x42, 0x94, 0x59, 0xac, 0x95, 0x5c, 0xd5, 0x78, 0x53, + 0x40, 0x23, 0x76, 0xdc, 0x4d, 0x41, 0x2b, 0x56, 0x3f, 0xb9, 0x7a, 0x55, 0x7b, 0x0b, 0x86, 0x3e, + 0x89, 0xa5, 0x74, 0x60, 0x8f, 0x7d, 0xb6, 0x9a, 0x2e, 0xee, 0xea, 0x91, 0x5b, 0x3a, 0x92, 0x3d, + 0xdf, 0x94, 0x45, 0xff, 0xf0, 0x47, 0x0b, 0x44, 0x56, 0x77, 0x63, 0x19, 0xed, 0xdf, 0x14, 0x0d, + 0x78, 0xf2, 0x89, 0xee, 0x96, 0x96, 0x4e, 0x99, 0x12, 0x27, 0xba, 0xb5, 0xea, 0xde, 0x36, 0x57, + 0x0c, 0xee, 0xa2, 0x5e, 0xea, 0x69, 0x49, 0x65, 0xd7, 0xfa, 0x78, 0x67, 0x73, 0x7b, 0x0b, 0xf6, + 0x66, 0xb1, 0x5c, 0xdf, 0xd5, 0xd3, 0x4a, 0x29, 0x7a, 0xba, 0xe4, 0x9e, 0xc7, 0xd7, 0xb4, 0xe8, + 0xb3, 0xc6, 0x84, 0x7f, 0x24, 0xa6, 0xc6, 0x1f, 0xcb, 0x91, 0x16, 0x4a, 0xcf, 0xbe, 0x0a, 0x79, + 0x79, 0x6b, 0x4b, 0x77, 0x8b, 0xfc, 0x38, 0x3e, 0x4f, 0xe2, 0x30, 0xb7, 0xcb, 0x4f, 0xb4, 0xae, + 0x6e, 0x6f, 0xee, 0xc6, 0xba, 0x3c, 0x2e, 0xea, 0x81, 0x8d, 0xeb, 0xec, 0xc4, 0x26, 0x34, 0xb7, + 0x3c, 0xd9, 0xd3, 0xdd, 0xf5, 0x4d, 0xad, 0x4b, 0xa9, 0x61, 0x34, 0xf6, 0x5f, 0xe9, 0xc4, 0x16, + 0xb4, 0xf4, 0x26, 0xb1, 0x29, 0x54, 0x70, 0x57, 0x67, 0x8b, 0x5c, 0xd5, 0xbe, 0x3a, 0x49, 0xdd, + 0x87, 0xf5, 0x69, 0x6f, 0x79, 0x7c, 0x2d, 0x06, 0x63, 0xd9, 0x3c, 0x19, 0x44, 0x85, 0x2b, 0x38, + 0x71, 0x75, 0x63, 0xe3, 0x57, 0x1a, 0x31, 0xca, 0x93, 0x8f, 0x77, 0xa4, 0x5a, 0xf2, 0xe4, 0xbc, + 0x79, 0xdc, 0xb7, 0xb7, 0xfc, 0x19, 0x10, 0x06, 0x58, 0x53, 0xab, 0x08, 0x9f, 0x52, 0x7c, 0x8a, + 0x35, 0xbf, 0x0b, 0x9f, 0x05, 0x5a, 0x38, 0x10, 0x7c, 0xa1, 0xc7, 0x9b, 0xb3, 0xac, 0x13, 0x64, + 0x82, 0x59, 0xd1, 0x5e, 0x55, 0x8d, 0x7e, 0x13, 0x57, 0x8b, 0x9f, 0x68, 0xb3, 0xc0, 0x4a, 0xc2, + 0xd2, 0x92, 0xa0, 0x69, 0x18, 0xc9, 0x49, 0x9d, 0xe8, 0x72, 0x8c, 0x40, 0x26, 0x46, 0x6c, 0x20, + 0x61, 0x6d, 0xc4, 0x1c, 0xa4, 0x12, 0xf5, 0x77, 0x90, 0xa3, 0x48, 0x7f, 0x8e, 0x98, 0xa9, 0xd0, + 0x6a, 0x06, 0xa5, 0x8e, 0x60, 0xb8, 0x0d, 0x71, 0xe2, 0x6f, 0x62, 0xdc, 0x46, 0x4e, 0x51, 0xc7, + 0x56, 0xe3, 0x94, 0x19, 0x79, 0xb5, 0xd3, 0x99, 0xfa, 0x42, 0x61, 0xc3, 0x92, 0xee, 0xa7, 0xc3, + 0xba, 0x9a, 0xac, 0xac, 0x7f, 0x3e, 0x73, 0x96, 0x4c, 0x21, 0xc1, 0x7d, 0x14, 0x3b, 0xb0, 0x92, + 0x63, 0x17, 0xc6, 0x06, 0xe2, 0xcd, 0x5e, 0x8b, 0x2e, 0x7e, 0x44, 0x9c, 0xa0, 0x0b, 0x4e, 0x2f, + 0x0e, 0x59, 0x9e, 0xca, 0x5d, 0x17, 0xab, 0xb9, 0xfe, 0x79, 0x5d, 0x9d, 0x1a, 0x18, 0xcb, 0xb6, + 0xb1, 0xcc, 0x6b, 0xae, 0x3d, 0xf6, 0xfc, 0xe8, 0xd8, 0xba, 0x8c, 0x14, 0x1d, 0x95, 0x22, 0xb8, + 0x0b, 0xea, 0x20, 0xa3, 0xa9, 0xad, 0xea, 0xf7, 0x70, 0xbe, 0x72, 0x6e, 0xf2, 0x81, 0x8c, 0x66, + 0xb5, 0xf9, 0x41, 0x70, 0x26, 0xa2, 0x1c, 0xee, 0xd5, 0x6b, 0x5c, 0xc3, 0x70, 0xb7, 0xf0, 0xc5, + 0x2d, 0xf6, 0x36, 0x70, 0xd6, 0x7f, 0x7f, 0x7a, 0x95, 0x22, 0xcb, 0x01, 0xb8, 0x17, 0x0c, 0x64, + 0xfd, 0x6f, 0xd6, 0x98, 0xc3, 0x80, 0xf1, 0xa2, 0x18, 0xcf, 0x2e, 0x6c, 0x14, 0x46, 0x06, 0xc4, + 0x8d, 0x7f, 0xc4, 0x38, 0x53, 0xd7, 0xcb, 0xd4, 0x45, 0x4d, 0x57, 0x5c, 0xa5, 0x23, 0xea, 0xae, + 0x7f, 0xee, 0x38, 0x59, 0x12, 0x55, 0x5f, 0x9e, 0x4f, 0xf6, 0xb5, 0x49, 0xfe, 0xf2, 0x29, 0x4f, + 0x27, 0x38, 0x85, 0xe6, 0x25, 0x2c, 0x67, 0x37, 0xd2, 0xa2, 0x2f, 0x91, 0xb6, 0xc2, 0x78, 0x85, + 0xe2, 0x16, 0x96, 0x57, 0x59, 0x77, 0x21, 0xe9, 0xc9, 0xdc, 0x6d, 0xa7, 0xbb, 0x54, 0x27, 0x9d, + 0xc4, 0x20, 0x25, 0x37, 0xc7, 0x4b, 0xfb, 0x34, 0xd1, 0x5a, 0x24, 0x43, 0x12, 0xf3, 0x2c, 0xe5, + 0xb3, 0x48, 0xe0, 0x13, 0x01, 0xec, 0x95, 0x5f, 0x2c, 0x27, 0xbd, 0x9b, 0xff, 0x40, 0xa7, 0xe6, + 0xe4, 0x6b, 0x07, 0xa3, 0xe6, 0x37, 0xc9, 0x75, 0x55, 0x17, 0xc1, 0x26, 0x72, 0x9a, 0x26, 0xdb, + 0xdf, 0x7d, 0xf6, 0x3a, 0xe1, 0xfb, 0xe4, 0x25, 0x67, 0x10, 0xfd, 0xdb, 0xd3, 0xe5, 0x0c, 0x21, + 0xce, 0xb7, 0x35, 0x11, 0xa3, 0x1c, 0x9e, 0x5b, 0x46, 0xe9, 0x5f, 0x58, 0x23, 0xf2, 0x7b, 0x6e, + 0x8d, 0xc8, 0x0f, 0xfd, 0x26, 0x4c, 0xb1, 0xd5, 0xbe, 0x24, 0x95, 0x82, 0x4b, 0xe3, 0xb8, 0xff, + 0xa0, 0xc5, 0xfd, 0x85, 0x16, 0x17, 0xfd, 0x26, 0xda, 0x5b, 0x09, 0x0b, 0x11, 0x3a, 0xb8, 0xda, + 0x2f, 0x93, 0x56, 0x52, 0x1e, 0xbf, 0xb9, 0x3d, 0xa6, 0x23, 0x24, 0x59, 0x9c, 0x97, 0x17, 0x00, + 0x69, 0xff, 0xba, 0xf8, 0x5c, 0xef, 0xdd, 0x29, 0x9b, 0x9a, 0x18, 0x9f, 0x64, 0x5f, 0xfd, 0xc2, + 0x0e, 0x6f, 0x27, 0x61, 0xe1, 0x0e, 0x6e, 0xbb, 0xb5, 0xf6, 0xc6, 0xf4, 0xae, 0xfa, 0x1d, 0x5a, + 0x3f, 0xec, 0x00, 0xc4, 0xb1, 0x61, 0x2e, 0xcf, 0x7d, 0x83, 0xe0, 0x07, 0xbc, 0x49, 0xc7, 0xdf, + 0x56, 0x1a, 0x07, 0x96, 0x71, 0xb1, 0x93, 0x15, 0x52, 0x79, 0x35, 0x44, 0x48, 0x83, 0x0c, 0x69, + 0x80, 0x60, 0x9a, 0xcb, 0x86, 0xab, 0x85, 0xf4, 0x4e, 0x1c, 0x52, 0x4f, 0xb0, 0xa6, 0xb7, 0x1a, + 0xb9, 0x81, 0xb4, 0xc6, 0x2a, 0x12, 0xd2, 0x64, 0xad, 0x50, 0xb8, 0xea, 0xfa, 0x8f, 0x8f, 0x63, + 0x1c, 0x09, 0x69, 0x36, 0x8a, 0xf3, 0x2a, 0x9d, 0x25, 0x28, 0x76, 0xb2, 0x39, 0x28, 0x6a, 0x36, + 0xd0, 0x48, 0xb7, 0x0c, 0x10, 0x61, 0x49, 0x97, 0x43, 0xea, 0x46, 0x6a, 0x8d, 0x90, 0xed, 0x89, + 0xb0, 0x7c, 0xcb, 0x8c, 0x39, 0x71, 0x39, 0xa3, 0x6f, 0x90, 0x74, 0xa6, 0x60, 0xa8, 0x8d, 0x7a, + 0xef, 0x76, 0xa1, 0x9f, 0x1c, 0xd1, 0x6e, 0x48, 0x0f, 0x32, 0x75, 0x1e, 0x75, 0xcc, 0x76, 0xd5, + 0xcb, 0xad, 0xa2, 0xee, 0xe1, 0x0e, 0x75, 0x0c, 0x9f, 0x53, 0xf8, 0x9c, 0xc6, 0xe7, 0x6d, 0xd2, + 0x32, 0x47, 0xfa, 0x1d, 0xf0, 0xb9, 0x98, 0xb6, 0x53, 0xfb, 0x3a, 0xdb, 0xa9, 0x3d, 0x9b, 0xd2, + 0x7f, 0x80, 0xcf, 0x38, 0xeb, 0xa7, 0x43, 0xaa, 0x01, 0x9f, 0x6b, 0xa9, 0xf3, 0x04, 0x92, 0x51, + 0xb6, 0x16, 0x21, 0x1c, 0xfa, 0x6e, 0xbc, 0x4e, 0x8c, 0xcf, 0x8a, 0x09, 0x17, 0x78, 0x4b, 0xc0, + 0x89, 0xf8, 0xdc, 0x98, 0x3d, 0xe8, 0x7d, 0x00, 0xfa, 0x9c, 0x01, 0xc4, 0x24, 0x0e, 0xca, 0x55, + 0xf5, 0x43, 0x14, 0xbe, 0xf4, 0x43, 0xf5, 0x2c, 0xf6, 0x59, 0x11, 0xce, 0x98, 0xaa, 0xfa, 0xe7, + 0xbc, 0x56, 0x4d, 0xde, 0x35, 0x47, 0xa4, 0xfe, 0xe6, 0x72, 0xec, 0x01, 0x1f, 0xdd, 0xb4, 0x78, + 0x8a, 0x60, 0x2b, 0x9f, 0xa0, 0x94, 0x25, 0x89, 0xb6, 0x3c, 0x5c, 0x54, 0xa3, 0x8e, 0xe2, 0x73, + 0x34, 0xf4, 0x01, 0xd8, 0xe8, 0x66, 0x05, 0x9f, 0x93, 0x72, 0xcc, 0xb1, 0x84, 0xb4, 0xa4, 0x79, + 0xda, 0xc1, 0xcd, 0x9a, 0x31, 0x10, 0x3a, 0x2d, 0xe8, 0x50, 0x47, 0x61, 0xab, 0x62, 0x5c, 0x10, + 0x86, 0xad, 0xf2, 0x1a, 0xd8, 0x8c, 0xdf, 0x9c, 0xbc, 0x9e, 0xc4, 0xef, 0xe4, 0x82, 0x20, 0x6c, + 0x4e, 0x90, 0x3d, 0xde, 0xc3, 0xf8, 0xbc, 0x81, 0x74, 0xdc, 0xc6, 0x65, 0x21, 0xa4, 0x26, 0x46, + 0x7d, 0x6b, 0x60, 0xd3, 0xb2, 0x28, 0xd2, 0x39, 0x47, 0xe4, 0xa0, 0x96, 0x27, 0xcd, 0x75, 0x49, + 0xc6, 0x7a, 0x24, 0x72, 0xbd, 0x1e, 0x9c, 0x2f, 0x45, 0xb0, 0x99, 0xf5, 0xf9, 0x3c, 0xc5, 0x9c, + 0x29, 0x98, 0x37, 0x52, 0x2d, 0xb6, 0x5f, 0x34, 0x90, 0x0b, 0xf3, 0xc9, 0xfd, 0x25, 0xd2, 0xc6, + 0xe9, 0xd0, 0x56, 0x30, 0xea, 0xc2, 0x4d, 0x5a, 0xfa, 0xed, 0x94, 0x07, 0xe9, 0xd0, 0x4d, 0xf9, + 0x31, 0x4e, 0x01, 0xce, 0x8d, 0xed, 0x18, 0x46, 0x78, 0x65, 0x81, 0xd6, 0x97, 0x20, 0xf9, 0x1d, + 0x45, 0x50, 0xe0, 0x88, 0x2c, 0xfd, 0x3d, 0xf5, 0xc9, 0x8f, 0xff, 0x2e, 0x11, 0x21, 0x4d, 0xf0, + 0xf8, 0x25, 0x80, 0x29, 0xb6, 0xe3, 0x9a, 0xdf, 0x4e, 0x67, 0x47, 0xc3, 0x0d, 0x1d, 0x1e, 0xb2, + 0x64, 0x3c, 0x82, 0x25, 0x77, 0xd8, 0x7d, 0xf7, 0xe2, 0x8c, 0x33, 0x76, 0xce, 0x61, 0x3b, 0xcc, + 0xad, 0x64, 0x13, 0x97, 0xd6, 0x0d, 0xe9, 0x86, 0xd0, 0xa4, 0xb1, 0xf3, 0xf6, 0x6f, 0x8e, 0xe7, + 0x88, 0x7c, 0x12, 0x56, 0x87, 0x1b, 0x0a, 0x12, 0x26, 0x07, 0xd2, 0x11, 0xca, 0xcb, 0x4e, 0x2c, + 0xcb, 0x13, 0xe9, 0x81, 0xea, 0x0f, 0xd5, 0x31, 0x17, 0x8f, 0x56, 0x09, 0xbd, 0x87, 0xdc, 0xf4, + 0xfe, 0x5e, 0x51, 0xbd, 0x7a, 0x50, 0xee, 0x50, 0x0f, 0x5a, 0x5d, 0x5c, 0x83, 0x24, 0xce, 0xa3, + 0xed, 0x6c, 0x6d, 0x17, 0xe7, 0x42, 0x47, 0x21, 0x49, 0xe7, 0x22, 0x65, 0x78, 0xad, 0x23, 0xb7, + 0xd4, 0x86, 0xbf, 0xd7, 0x3b, 0x2d, 0x18, 0x22, 0xa1, 0xeb, 0x46, 0x97, 0x9d, 0x69, 0xcd, 0x20, + 0x5b, 0xeb, 0xc5, 0x79, 0xd4, 0x51, 0xc6, 0x31, 0xce, 0x75, 0x96, 0xb0, 0x74, 0x2f, 0xce, 0xa8, + 0x4e, 0x07, 0xf5, 0x03, 0xe5, 0x8d, 0x7d, 0xd0, 0x67, 0x5f, 0x4c, 0xf3, 0x81, 0xf5, 0xe3, 0x1d, + 0xa4, 0xb9, 0xd0, 0x93, 0xcf, 0xa7, 0x31, 0xf9, 0xfa, 0x38, 0x5e, 0x8b, 0x3d, 0x52, 0xff, 0x1c, + 0xf5, 0x7f, 0xd2, 0x30, 0x3c, 0x18, 0xf7, 0x65, 0xea, 0x95, 0xb0, 0xda, 0xa3, 0x34, 0xc3, 0x7f, + 0x34, 0x81, 0xd0, 0xb7, 0x80, 0xd2, 0x90, 0x56, 0x80, 0x74, 0xde, 0xd5, 0x22, 0xd5, 0x81, 0xd7, + 0xd5, 0x83, 0xf1, 0x5c, 0x5d, 0xaa, 0x76, 0xa7, 0x0b, 0xfb, 0x21, 0xfe, 0x93, 0x0f, 0xd5, 0x83, + 0x89, 0x32, 0xa4, 0xac, 0x4a, 0x29, 0xa5, 0x9d, 0x52, 0x3d, 0x80, 0xa3, 0xf5, 0x00, 0x6c, 0x96, + 0x23, 0x38, 0x6f, 0x75, 0x61, 0x74, 0xd3, 0x44, 0x23, 0xa6, 0x59, 0x13, 0x28, 0x20, 0xbb, 0xf1, + 0xf4, 0xcd, 0xfa, 0x00, 0xf7, 0x0e, 0x41, 0x88, 0xed, 0xf6, 0x98, 0x98, 0x3d, 0x9f, 0x1c, 0xa6, + 0x92, 0x90, 0x32, 0x33, 0xaa, 0x07, 0x15, 0x98, 0x3e, 0xec, 0xa1, 0x3c, 0x44, 0xcd, 0x26, 0xaa, + 0x6f, 0x4c, 0x3a, 0xea, 0xb7, 0x6b, 0xbe, 0x31, 0xe6, 0xf4, 0x25, 0x2d, 0x7e, 0x17, 0x12, 0x6e, + 0x73, 0x09, 0xdd, 0x06, 0xc4, 0x2d, 0x72, 0x27, 0x44, 0xfe, 0x5a, 0xb4, 0x86, 0x57, 0x09, 0x6b, + 0x39, 0xc0, 0x91, 0xa2, 0xbe, 0x59, 0xfb, 0x12, 0x73, 0x34, 0x6b, 0xad, 0x44, 0x3a, 0xe7, 0x4c, + 0xc3, 0x36, 0xcd, 0x77, 0x15, 0x7d, 0x27, 0x70, 0x96, 0x44, 0xf8, 0xfe, 0x62, 0x2b, 0xc2, 0x79, + 0x13, 0x53, 0xb5, 0x43, 0x44, 0x4b, 0xfd, 0xeb, 0xf0, 0x24, 0x0d, 0x39, 0x26, 0xf8, 0x7c, 0x28, + 0xea, 0xc0, 0x86, 0xdc, 0x0e, 0x3a, 0x24, 0xc1, 0xe6, 0x82, 0xef, 0xee, 0x27, 0x9b, 0x1a, 0xef, + 0xa7, 0x20, 0xcb, 0xe7, 0xc3, 0xf0, 0x5d, 0x1e, 0x17, 0x30, 0xac, 0xa0, 0xf9, 0xe5, 0xc2, 0xd9, + 0x45, 0xab, 0xff, 0x9b, 0xcb, 0x69, 0x87, 0xb0, 0x7a, 0xc4, 0x0c, 0xb6, 0xb7, 0xe3, 0x1a, 0x11, + 0xb3, 0xd7, 0x47, 0x67, 0x9d, 0xc3, 0x34, 0x7b, 0x9d, 0xda, 0xec, 0x9d, 0x4b, 0x67, 0x9b, 0xc3, + 0x34, 0x7b, 0xf3, 0x48, 0xd7, 0x26, 0xcf, 0x5e, 0x2b, 0xc1, 0x0e, 0x9e, 0x0b, 0x56, 0x4c, 0xdb, + 0xe7, 0x59, 0x23, 0xfa, 0x76, 0xff, 0x16, 0x9c, 0xcd, 0x1e, 0x6d, 0x36, 0x7b, 0x68, 0x36, 0xbb, + 0x70, 0xc7, 0x52, 0x76, 0x60, 0x1f, 0x39, 0x11, 0xa6, 0xf6, 0x21, 0x3c, 0xcd, 0xf5, 0x34, 0x36, + 0x6c, 0x23, 0xeb, 0x7c, 0xb8, 0xf3, 0x15, 0x89, 0x7e, 0xc7, 0x9a, 0x44, 0xb0, 0xbe, 0x46, 0x1c, + 0x43, 0x5c, 0x89, 0xaa, 0xa4, 0xb8, 0xac, 0x25, 0x5c, 0xaf, 0x30, 0xc5, 0xa8, 0xfd, 0x90, 0xee, + 0xb9, 0x10, 0x4e, 0x61, 0xea, 0xe9, 0xf7, 0x71, 0x04, 0xb6, 0xe3, 0x3e, 0xa7, 0x95, 0xc7, 0x7a, + 0x0d, 0x59, 0x3f, 0xa8, 0x80, 0xdd, 0x3c, 0x3f, 0xad, 0x7c, 0x96, 0x7b, 0x5f, 0x02, 0x0c, 0xc7, + 0x15, 0xa3, 0x67, 0x85, 0xb2, 0x5d, 0x2b, 0x7d, 0x37, 0x3e, 0xb4, 0xd2, 0xbf, 0xc7, 0x7b, 0x25, + 0xee, 0xc3, 0x22, 0x97, 0xa9, 0x21, 0xda, 0x93, 0x79, 0x37, 0x6c, 0xd0, 0x5c, 0xb9, 0xcf, 0x11, + 0xdc, 0x48, 0x85, 0x12, 0xdc, 0xc8, 0x84, 0x9b, 0x70, 0x7f, 0x1a, 0xe0, 0xfd, 0xc9, 0x8a, 0x7b, + 0x74, 0xfc, 0x76, 0xd0, 0x57, 0x6a, 0x53, 0xff, 0x0c, 0xe6, 0x12, 0x64, 0xa5, 0x52, 0x69, 0xf5, + 0x46, 0xcf, 0xf1, 0x9c, 0xc5, 0x90, 0x9e, 0x89, 0xd3, 0xdf, 0xe6, 0xfd, 0xa5, 0x6f, 0xe9, 0x8d, + 0xe9, 0x82, 0xfa, 0x9d, 0x54, 0xb7, 0xfe, 0xab, 0x67, 0xbf, 0xcd, 0x9a, 0xa2, 0xb6, 0x33, 0x4c, + 0x28, 0x2c, 0x79, 0x96, 0x7b, 0xd9, 0x24, 0xda, 0xf4, 0xcd, 0xe5, 0x4e, 0x6d, 0xdc, 0xa8, 0xbf, + 0x4b, 0x72, 0x08, 0x02, 0xf4, 0xe4, 0x6b, 0x23, 0x17, 0x25, 0xb8, 0x23, 0xb7, 0x6b, 0xab, 0xff, + 0x91, 0x8e, 0xf2, 0xb4, 0x1d, 0xee, 0x12, 0x61, 0x75, 0xbb, 0xd3, 0x99, 0xb6, 0xc7, 0x5d, 0xc8, + 0xfd, 0xe0, 0x81, 0x3e, 0xae, 0xcb, 0x5d, 0x64, 0x31, 0x37, 0x65, 0x7f, 0x43, 0xc9, 0x4d, 0x7d, + 0xf3, 0x4a, 0x64, 0xc1, 0x86, 0x5a, 0xa7, 0x8d, 0xa3, 0x05, 0x73, 0x8f, 0xfc, 0x15, 0xcd, 0xf9, + 0x1c, 0x74, 0xf5, 0xd9, 0x6b, 0x52, 0xbd, 0x76, 0x20, 0x33, 0xd6, 0x0e, 0x27, 0x8d, 0xf5, 0x5c, + 0xad, 0x4e, 0x14, 0x6f, 0xbb, 0x3d, 0x9c, 0x1a, 0x23, 0x9e, 0x01, 0xa0, 0x36, 0x30, 0xf7, 0xb7, + 0xd3, 0xec, 0xd1, 0x56, 0x52, 0x2a, 0x57, 0x9e, 0x53, 0xac, 0x1d, 0xd2, 0xaa, 0x5b, 0x45, 0x45, + 0xa9, 0x75, 0x33, 0x39, 0x4e, 0xfa, 0x08, 0xc5, 0x3c, 0x41, 0xdf, 0x69, 0x9a, 0x2b, 0xac, 0xe9, + 0x6e, 0xab, 0xa6, 0xb9, 0x62, 0x52, 0xe3, 0x28, 0x99, 0x89, 0x23, 0xbc, 0x28, 0xd6, 0x11, 0x62, + 0x69, 0x99, 0xb0, 0x97, 0x35, 0xbe, 0xbd, 0x57, 0x58, 0xb3, 0x7d, 0xd4, 0x5d, 0xeb, 0xb1, 0xa4, + 0x56, 0x09, 0xed, 0x75, 0x04, 0x5f, 0xeb, 0x2a, 0xa8, 0xf5, 0x88, 0xdd, 0xdc, 0xc5, 0x78, 0xea, + 0x59, 0x7a, 0x57, 0xc6, 0x70, 0x04, 0xd5, 0xd9, 0x26, 0x0d, 0xca, 0x15, 0x38, 0x73, 0x1c, 0x77, + 0x2b, 0x90, 0xf5, 0x56, 0x6a, 0x5f, 0xc8, 0x7a, 0xd5, 0xbe, 0x86, 0x6f, 0xbb, 0x37, 0x3b, 0xc2, + 0x38, 0x47, 0x68, 0x0d, 0x41, 0x56, 0x1f, 0x9f, 0xaa, 0xd2, 0x2a, 0x82, 0xac, 0xce, 0xd2, 0xdc, + 0x11, 0x5a, 0x47, 0x90, 0x45, 0x27, 0x89, 0x62, 0x25, 0x41, 0x56, 0x13, 0xed, 0x3b, 0x9c, 0xff, + 0x2a, 0x1a, 0x0f, 0x39, 0x8c, 0xb9, 0x6c, 0x76, 0x54, 0x79, 0xda, 0x04, 0x06, 0xe7, 0x0e, 0x8a, + 0x13, 0xb8, 0x86, 0x6d, 0x44, 0xe0, 0xe3, 0x5c, 0xce, 0xf3, 0x11, 0xff, 0xbe, 0xb9, 0x94, 0xe4, + 0x04, 0x66, 0xfb, 0xe9, 0x4e, 0xcb, 0xe2, 0xa3, 0x33, 0x50, 0x33, 0xe7, 0xd1, 0x45, 0xb5, 0x73, + 0x17, 0x8b, 0xb3, 0x4d, 0xb2, 0xfe, 0x29, 0x57, 0xcb, 0x2e, 0x84, 0x21, 0x74, 0x2e, 0x1d, 0x84, + 0x95, 0xde, 0x10, 0x28, 0xbe, 0xcf, 0xff, 0xa2, 0x0b, 0x56, 0x96, 0x16, 0x83, 0xf4, 0xcb, 0x2e, + 0x78, 0x8c, 0x7d, 0x8a, 0xe6, 0x5b, 0x45, 0x77, 0x50, 0xde, 0xa5, 0xe0, 0x27, 0x7b, 0x8c, 0xd1, + 0x2e, 0x18, 0x88, 0xb6, 0x83, 0x2d, 0x4a, 0x16, 0xfa, 0x10, 0x3f, 0x37, 0x2c, 0xd7, 0x6e, 0x1c, + 0x7b, 0x4a, 0xf1, 0x0b, 0x71, 0x29, 0xfa, 0xba, 0x60, 0xd0, 0x1b, 0x85, 0x80, 0xcf, 0x0b, 0x1b, + 0xa2, 0xa3, 0x43, 0xdf, 0x62, 0xee, 0xf8, 0x20, 0xfa, 0x36, 0xa2, 0x6f, 0x13, 0xfb, 0x22, 0x18, + 0x2f, 0x8a, 0x71, 0xea, 0x64, 0xb2, 0x42, 0xea, 0x62, 0xb9, 0xe1, 0x06, 0xef, 0x12, 0x58, 0x1e, + 0xfe, 0x01, 0x34, 0x79, 0x81, 0xeb, 0xfc, 0x1d, 0x6e, 0x77, 0x0d, 0xe2, 0x0b, 0x1f, 0x43, 0xd0, + 0x5d, 0x85, 0x98, 0x27, 0x63, 0x0c, 0xfc, 0xed, 0xa7, 0xf4, 0x8d, 0xca, 0x75, 0x2d, 0x17, 0xf7, + 0x41, 0x6a, 0x9b, 0x9b, 0xec, 0x32, 0x56, 0xbb, 0xef, 0x8d, 0x3d, 0x8d, 0x3e, 0x3b, 0xae, 0xbd, + 0x89, 0x6e, 0xd3, 0xe8, 0xba, 0x5c, 0xc4, 0x33, 0x89, 0x7f, 0xc1, 0xf0, 0x0e, 0xb5, 0x9e, 0xd3, + 0x9e, 0xa5, 0xb4, 0x4d, 0xdb, 0x5c, 0x4b, 0xc8, 0xd6, 0xb1, 0xa3, 0x1a, 0x57, 0x88, 0x19, 0xf7, + 0x54, 0xd2, 0x4b, 0x37, 0xe0, 0x8d, 0xc1, 0x06, 0x6e, 0xf9, 0x80, 0xd6, 0xf2, 0x41, 0xf6, 0x6d, + 0xd0, 0x7c, 0x1b, 0x9d, 0x64, 0x0b, 0x3e, 0x0c, 0x3e, 0xec, 0x0b, 0x0f, 0xa6, 0x6e, 0xc3, 0x3e, + 0x58, 0x49, 0x27, 0xcd, 0xf8, 0xbb, 0x69, 0x46, 0x5f, 0x80, 0xa1, 0x0e, 0x7b, 0x61, 0x15, 0x8e, + 0x07, 0xdd, 0x10, 0xce, 0xf6, 0x77, 0x41, 0x1c, 0xc7, 0xa3, 0x0b, 0x5a, 0xb5, 0xf1, 0xf8, 0x1d, + 0x8d, 0x87, 0x9f, 0x46, 0xcc, 0x52, 0x41, 0x23, 0x76, 0xb7, 0x8f, 0x46, 0x8c, 0x46, 0xcf, 0xe6, + 0x9d, 0x4d, 0x31, 0x16, 0xdd, 0xeb, 0x88, 0x08, 0x59, 0x12, 0x4c, 0xb5, 0x91, 0xf3, 0xd9, 0xc4, + 0xf9, 0x6c, 0xe6, 0x7c, 0xb6, 0x88, 0x7c, 0x16, 0xd9, 0xb5, 0x59, 0x97, 0x87, 0x14, 0xcb, 0xf9, + 0xca, 0x48, 0xec, 0x35, 0x30, 0xc7, 0x4d, 0xec, 0x5e, 0x24, 0x7a, 0x71, 0xd1, 0x83, 0x94, 0x4f, + 0xc3, 0x36, 0xae, 0x4d, 0x14, 0xfc, 0x01, 0x1a, 0x55, 0x1a, 0x5f, 0xac, 0x39, 0xc7, 0x2e, 0xc5, + 0xd0, 0x72, 0x6c, 0x7b, 0x40, 0xce, 0xd1, 0xc6, 0x26, 0x88, 0xd8, 0xac, 0x5f, 0x1b, 0xb5, 0x08, + 0xd9, 0xed, 0xc2, 0xaf, 0x75, 0x6c, 0x6b, 0x89, 0xb4, 0xd2, 0x36, 0x28, 0x61, 0x47, 0x74, 0x07, + 0x62, 0x74, 0x76, 0x8b, 0x6c, 0xee, 0xb9, 0x67, 0x74, 0xf0, 0xd4, 0x00, 0xd9, 0xd6, 0x72, 0xd4, + 0x62, 0x58, 0x2e, 0xf6, 0xdf, 0xbf, 0x92, 0x0f, 0x6b, 0x13, 0x6f, 0xf0, 0xd6, 0xb1, 0x0c, 0x01, + 0xc0, 0x28, 0x8e, 0xb6, 0x17, 0x1a, 0xb8, 0xa6, 0x61, 0x77, 0xa4, 0xfe, 0x05, 0x1c, 0xef, 0xba, + 0x99, 0xe3, 0x9d, 0xd6, 0xeb, 0x0d, 0xd3, 0xdb, 0x1d, 0x5e, 0x24, 0x05, 0xc9, 0x62, 0x41, 0xb5, + 0xdb, 0x46, 0xe3, 0x3c, 0x1d, 0x76, 0xd6, 0xc9, 0x4b, 0xed, 0xe1, 0xf4, 0xba, 0x38, 0x2c, 0x2f, + 0x15, 0xae, 0xa9, 0x8b, 0xee, 0x70, 0xec, 0x75, 0x6c, 0x9f, 0x93, 0xf3, 0xee, 0x10, 0x63, 0xae, + 0x14, 0x78, 0xb3, 0xbc, 0xb3, 0x19, 0x6b, 0xc9, 0x62, 0xbd, 0x50, 0x97, 0x9c, 0xb8, 0x36, 0xd9, + 0x3a, 0x42, 0x11, 0x18, 0x13, 0x16, 0xd2, 0x7c, 0x47, 0x56, 0xa2, 0x11, 0xa6, 0x88, 0xef, 0x27, + 0x49, 0x3e, 0xa8, 0x61, 0x1b, 0xeb, 0x9a, 0x75, 0xd0, 0x0e, 0xfd, 0x93, 0x09, 0x8a, 0xa7, 0xe5, + 0x0d, 0x93, 0x85, 0xee, 0xb0, 0x23, 0x4b, 0x8b, 0xfb, 0x32, 0xf1, 0x63, 0x90, 0x9f, 0xb8, 0x62, + 0x35, 0x2b, 0xc3, 0xdf, 0x73, 0x32, 0x6c, 0x28, 0xb9, 0xcb, 0xee, 0x01, 0xb3, 0xdb, 0x03, 0x56, + 0xdf, 0xe7, 0xcb, 0x71, 0x2e, 0xf9, 0x23, 0xa7, 0x7f, 0xe6, 0x8f, 0x45, 0xab, 0xa3, 0x3f, 0x7b, + 0x27, 0x18, 0xfd, 0xd9, 0x99, 0x50, 0xf4, 0x68, 0x34, 0x14, 0x7d, 0x73, 0x2c, 0x14, 0x08, 0xb2, + 0x6d, 0x24, 0x23, 0x52, 0xf3, 0x3c, 0xba, 0xb4, 0x8b, 0xb2, 0x6b, 0x03, 0x61, 0xde, 0xae, 0xe5, + 0xde, 0x08, 0xf4, 0xbc, 0xb8, 0xb5, 0xf1, 0x69, 0x6f, 0x35, 0xf4, 0xcb, 0x96, 0xa1, 0x0d, 0xdc, + 0xb7, 0x03, 0xde, 0x7a, 0xd8, 0x80, 0x3d, 0xbf, 0x09, 0xd7, 0xce, 0x16, 0x7c, 0x44, 0x8a, 0x57, + 0x1d, 0x55, 0xf5, 0xdb, 0xe5, 0x9a, 0x17, 0x4e, 0x60, 0x6f, 0xf6, 0x3a, 0x09, 0xda, 0xba, 0x35, + 0xee, 0x92, 0x42, 0x6d, 0xc5, 0x74, 0x3a, 0x17, 0x2b, 0xa2, 0x9c, 0xbf, 0xa6, 0xb9, 0x3b, 0xdb, + 0xd4, 0xb4, 0x8d, 0x71, 0x10, 0xe2, 0x4e, 0xdf, 0xaa, 0xdd, 0x9e, 0xae, 0x4c, 0xe9, 0x86, 0x2f, + 0x2f, 0xf5, 0xf6, 0x0f, 0x80, 0xd1, 0x80, 0x98, 0xd4, 0x12, 0x28, 0x64, 0x77, 0x36, 0xc8, 0x58, + 0xaa, 0x03, 0x4b, 0x74, 0x55, 0x7f, 0xcc, 0xbc, 0xcf, 0x36, 0xd2, 0x27, 0x29, 0x74, 0xc0, 0x0b, + 0x3b, 0x0d, 0xdf, 0xf9, 0x3b, 0x0c, 0x0d, 0xa6, 0x2c, 0x19, 0x04, 0xec, 0x66, 0x23, 0x98, 0x12, + 0xc6, 0x3e, 0x8b, 0x22, 0xf5, 0xe5, 0x11, 0xff, 0xf4, 0x8c, 0xb3, 0x5a, 0xed, 0x1c, 0xb6, 0xcf, + 0x21, 0x4e, 0x75, 0x23, 0x81, 0x3f, 0xa8, 0xec, 0xfc, 0xdb, 0x96, 0x5d, 0xf3, 0xef, 0x2a, 0xfb, + 0x2a, 0xcb, 0x6b, 0xd7, 0x22, 0x1d, 0xa6, 0xd1, 0x90, 0x29, 0x7a, 0xa9, 0x69, 0xdb, 0xf0, 0xb3, + 0x89, 0xb9, 0x62, 0x17, 0x58, 0x74, 0x4d, 0xf4, 0x1e, 0xf5, 0x9d, 0xb6, 0xef, 0x10, 0x75, 0xbe, + 0x2a, 0x05, 0xff, 0x0d, 0x85, 0xe1, 0x2e, 0xa0, 0x67, 0x2e, 0x3e, 0x32, 0x3e, 0x76, 0xac, 0x35, + 0xcd, 0xa5, 0x3e, 0x1c, 0x99, 0x42, 0x3a, 0x15, 0x20, 0x0c, 0x8e, 0x2c, 0xa7, 0x10, 0xfd, 0xb0, + 0x04, 0xc3, 0x9c, 0x62, 0x07, 0x17, 0xd4, 0x43, 0x0d, 0xee, 0x68, 0x9b, 0x79, 0xf7, 0xc6, 0x5c, + 0xb4, 0xfd, 0x1b, 0xf3, 0xe2, 0xfd, 0x1b, 0xf3, 0xd3, 0xf6, 0x6f, 0xcc, 0xb5, 0x93, 0x6e, 0x18, + 0xfa, 0x34, 0x9a, 0xe9, 0x32, 0x62, 0x44, 0x77, 0x7b, 0x2d, 0x1a, 0x16, 0x66, 0x55, 0x6c, 0x21, + 0xcc, 0xd7, 0x9e, 0xfe, 0xfe, 0xc9, 0x11, 0x8d, 0xa6, 0x20, 0xbe, 0xfd, 0xc8, 0x8f, 0x69, 0x9f, + 0xb5, 0x31, 0xd6, 0x93, 0xa1, 0xbe, 0x86, 0x74, 0x94, 0x87, 0x93, 0x29, 0x0f, 0x59, 0xab, 0x11, + 0xc5, 0xdc, 0xce, 0x75, 0xd7, 0x30, 0x66, 0xa6, 0x48, 0x70, 0x07, 0x0f, 0xa5, 0xc3, 0xa6, 0x2e, + 0x13, 0x25, 0x45, 0xb7, 0xa6, 0x09, 0x2a, 0x35, 0xf2, 0xe3, 0x5f, 0x63, 0x09, 0xb9, 0x7c, 0x26, + 0xa0, 0x51, 0xd1, 0x62, 0x1f, 0x97, 0x97, 0xd1, 0xba, 0xe3, 0x53, 0x11, 0xd3, 0xbc, 0x20, 0xe6, + 0xc2, 0xbd, 0x28, 0x0f, 0x10, 0xf7, 0x0f, 0x87, 0x4a, 0xf2, 0xf3, 0x19, 0xbc, 0x58, 0xb3, 0x92, + 0x79, 0xbe, 0xad, 0x57, 0xbb, 0xdf, 0xb7, 0xea, 0x78, 0xf1, 0x25, 0x87, 0x99, 0xa4, 0x0a, 0xe9, + 0xfb, 0x9a, 0x56, 0x7b, 0x38, 0x19, 0xcf, 0x9c, 0x11, 0x35, 0x6c, 0x13, 0x56, 0x0e, 0xea, 0xff, + 0x04, 0xc7, 0xf4, 0x02, 0xed, 0xee, 0x08, 0x8d, 0x4a, 0x9c, 0xb5, 0x8e, 0x1c, 0xc4, 0x7c, 0x37, + 0x21, 0xac, 0xbe, 0xe8, 0x7a, 0x84, 0xd7, 0x84, 0xc3, 0x9b, 0xe3, 0x6b, 0x03, 0xa4, 0xf4, 0x7d, + 0x8d, 0x54, 0x4f, 0xac, 0xed, 0x6c, 0x84, 0x4e, 0x35, 0x94, 0xe7, 0x6a, 0xd2, 0x25, 0x53, 0x88, + 0xe3, 0xfa, 0x06, 0xe2, 0x0c, 0x54, 0x9b, 0x97, 0x4b, 0x3d, 0x60, 0x2b, 0x6d, 0x07, 0x4f, 0x99, + 0xe1, 0xed, 0xc6, 0x9d, 0xb5, 0xe5, 0xb8, 0x73, 0xfb, 0x88, 0xeb, 0xa5, 0x1d, 0x4a, 0x2a, 0x70, + 0x97, 0x27, 0xfb, 0x8c, 0x07, 0xda, 0x21, 0xaf, 0x13, 0x0c, 0x1b, 0xce, 0x04, 0x77, 0x45, 0x0f, + 0xb6, 0x43, 0x3e, 0xba, 0x7b, 0xdf, 0x09, 0xbd, 0x58, 0xcb, 0xb7, 0x86, 0x9d, 0x67, 0x83, 0xbb, + 0xa3, 0xc3, 0x35, 0x74, 0x7f, 0xe8, 0xc0, 0x5d, 0x85, 0xec, 0xac, 0x63, 0xee, 0x0d, 0x5e, 0x3a, + 0x2f, 0x2a, 0x4b, 0x58, 0x34, 0x3c, 0x08, 0x0c, 0x81, 0x45, 0x74, 0xde, 0x51, 0x5a, 0xea, 0x05, + 0x0f, 0xee, 0xa0, 0xa5, 0xc3, 0xa1, 0x2e, 0xa9, 0x14, 0x16, 0x85, 0x20, 0x88, 0xe1, 0xb9, 0xe0, + 0xf7, 0x19, 0x0f, 0x76, 0x91, 0xfe, 0x36, 0xfc, 0xe6, 0x5f, 0x14, 0x84, 0x30, 0xe9, 0x7e, 0x2b, + 0xad, 0x3e, 0x14, 0xc5, 0x58, 0xd1, 0x45, 0xb5, 0x10, 0xa1, 0xfb, 0x4a, 0x5f, 0xcd, 0x1b, 0x35, + 0xed, 0x92, 0x6f, 0xf1, 0xa2, 0x28, 0xd4, 0x8c, 0x10, 0x57, 0xd2, 0xc4, 0x70, 0x94, 0x6e, 0x0d, + 0x17, 0xe1, 0x2e, 0x0e, 0x15, 0x01, 0x6c, 0x43, 0x65, 0xce, 0x4b, 0x5d, 0x50, 0xf1, 0x6e, 0x08, + 0x43, 0x72, 0x21, 0x80, 0xef, 0x12, 0xa8, 0x2c, 0xf3, 0x42, 0xe5, 0x4e, 0xe2, 0x35, 0xad, 0x7a, + 0x67, 0x34, 0xf6, 0x03, 0xac, 0x13, 0xc0, 0x10, 0x42, 0x6f, 0x23, 0x94, 0x61, 0xdd, 0x24, 0xc4, + 0x9f, 0x3d, 0x67, 0x3f, 0x86, 0x8a, 0xed, 0xf5, 0x54, 0x17, 0xac, 0x5d, 0xe5, 0x29, 0x8c, 0x3b, + 0x14, 0xa2, 0x3a, 0x6c, 0x7f, 0x8b, 0x4a, 0x1e, 0x7a, 0x93, 0xca, 0x5b, 0xd0, 0x0e, 0x32, 0x8e, + 0xab, 0x8f, 0xec, 0x14, 0x4a, 0x55, 0x70, 0x4f, 0xa0, 0x6a, 0xf7, 0xc7, 0x50, 0x7a, 0x8a, 0x53, + 0x0d, 0x75, 0x89, 0x3a, 0x9f, 0x12, 0xf1, 0x3f, 0x46, 0x1f, 0xa5, 0x68, 0x23, 0x6b, 0xbd, 0x5e, + 0xa9, 0x62, 0x29, 0xee, 0x8a, 0x74, 0xf7, 0xdb, 0x05, 0xe2, 0xd6, 0x3d, 0x3d, 0x12, 0x0b, 0xba, + 0xa0, 0x11, 0xf3, 0x2c, 0xfc, 0xb4, 0x38, 0x34, 0x5a, 0xe9, 0x5b, 0xc3, 0x7d, 0x72, 0x1d, 0x43, + 0xb5, 0x17, 0x35, 0xa8, 0x56, 0xa8, 0xd9, 0x92, 0x2d, 0x75, 0x44, 0xfd, 0x38, 0x5d, 0x91, 0xfa, + 0x9d, 0x2b, 0x85, 0xd4, 0x8f, 0xbf, 0x14, 0x82, 0xb9, 0x84, 0x15, 0x25, 0x2a, 0xd7, 0x9a, 0x8e, + 0xac, 0xcf, 0x47, 0xcc, 0xe1, 0xc0, 0xba, 0xb8, 0x5d, 0x9c, 0xbc, 0xd2, 0x89, 0x07, 0x63, 0xdd, + 0x2e, 0x32, 0xbc, 0x28, 0xe6, 0x99, 0x38, 0xa3, 0x52, 0xe8, 0x3c, 0x49, 0x0b, 0x69, 0xdf, 0x45, + 0x33, 0x72, 0x3e, 0xd9, 0xac, 0x31, 0x93, 0xce, 0xb3, 0x58, 0x38, 0x91, 0x2b, 0x67, 0x28, 0x89, + 0xcb, 0x02, 0xf3, 0x97, 0x63, 0x8c, 0xa1, 0x62, 0x6d, 0xea, 0xac, 0x9a, 0xec, 0x4b, 0x34, 0x3d, + 0x77, 0xed, 0xc4, 0x17, 0x9c, 0xb0, 0x20, 0x15, 0x61, 0x80, 0x26, 0xe2, 0x16, 0x49, 0x82, 0x90, + 0x28, 0xb1, 0x93, 0x9e, 0xdc, 0x47, 0xe4, 0xd9, 0x8a, 0x51, 0x36, 0x0b, 0xee, 0x81, 0x84, 0xa5, + 0xf4, 0x01, 0xd8, 0x89, 0xb8, 0xe3, 0xce, 0x96, 0x4b, 0xa9, 0x7c, 0xaa, 0x26, 0x20, 0x1e, 0x2e, + 0xf8, 0xd1, 0xf1, 0xf8, 0x8d, 0x68, 0x1b, 0xf7, 0x85, 0x2a, 0xb5, 0x87, 0x2e, 0x42, 0x41, 0x46, + 0x72, 0xa8, 0xe1, 0x22, 0x3c, 0xfa, 0x60, 0xbf, 0x01, 0xa0, 0xa9, 0x49, 0x93, 0x9a, 0x61, 0x78, + 0x89, 0xeb, 0xc7, 0x35, 0x1b, 0xe7, 0x36, 0xf5, 0xd3, 0xcb, 0xd4, 0x66, 0x6c, 0xab, 0x91, 0x6d, + 0xe0, 0x9c, 0xff, 0xd3, 0xeb, 0x2e, 0x04, 0x5c, 0x29, 0xde, 0x44, 0xe2, 0xa7, 0x0d, 0x16, 0x6a, + 0xf6, 0xdf, 0xa2, 0xae, 0xd9, 0x5c, 0x93, 0x82, 0xd4, 0x79, 0x27, 0x42, 0x8a, 0xb5, 0xf3, 0x23, + 0xb0, 0x56, 0x26, 0xdf, 0x8b, 0x9a, 0xc4, 0x80, 0x66, 0xd1, 0x8d, 0xe2, 0x3b, 0x67, 0x3b, 0x72, + 0xf0, 0xcb, 0x26, 0x97, 0x1b, 0x1e, 0x9b, 0x5f, 0x05, 0x8f, 0x91, 0x1e, 0xd3, 0x11, 0x2d, 0x07, + 0x4a, 0x4f, 0xb7, 0xa4, 0xf3, 0xaa, 0x30, 0x3d, 0xfe, 0x8a, 0x31, 0x13, 0x3a, 0xbe, 0xd5, 0xb5, + 0x54, 0xae, 0xc8, 0x47, 0x46, 0xec, 0xdc, 0x0f, 0xae, 0xfa, 0x61, 0xb1, 0xc7, 0xee, 0x17, 0x30, + 0x74, 0x6a, 0x52, 0xd8, 0x8b, 0x84, 0x57, 0xd2, 0x10, 0x63, 0x87, 0x63, 0x99, 0xd2, 0x89, 0x58, + 0x72, 0xe1, 0x70, 0x1b, 0x14, 0xc6, 0xdb, 0x11, 0xbb, 0xde, 0x39, 0xbc, 0x06, 0x76, 0xc6, 0x9b, + 0x34, 0xb8, 0x66, 0xb2, 0x86, 0x91, 0x44, 0x8b, 0xe9, 0xce, 0x67, 0x04, 0x4e, 0x5e, 0x9e, 0xa6, + 0x68, 0x4b, 0x34, 0xaa, 0x37, 0x4d, 0xeb, 0xda, 0x97, 0xa6, 0x20, 0x28, 0x9f, 0xa0, 0x2e, 0x4d, + 0x41, 0x4b, 0xc6, 0x07, 0x72, 0xb4, 0x19, 0xb7, 0x45, 0x31, 0xbf, 0x70, 0x42, 0x31, 0xfa, 0xfb, + 0xc1, 0x90, 0x81, 0x5e, 0x72, 0x2a, 0xee, 0x45, 0x92, 0x87, 0xf3, 0x59, 0x52, 0x67, 0x97, 0xe2, + 0x54, 0xe3, 0x6b, 0xda, 0xd9, 0x32, 0x8d, 0x63, 0xe8, 0xd7, 0x10, 0xcd, 0x70, 0x21, 0x0b, 0x4a, + 0x25, 0x34, 0xa1, 0x1b, 0xc3, 0x93, 0x69, 0xab, 0x24, 0x51, 0xd1, 0x9b, 0x8e, 0x46, 0x85, 0x68, + 0x19, 0xd1, 0x53, 0x2f, 0x13, 0x3c, 0xe6, 0x7a, 0x5c, 0xd2, 0x6c, 0x8e, 0xd0, 0x5c, 0x97, 0xe4, + 0x5a, 0xb2, 0x32, 0x85, 0xdf, 0xeb, 0x70, 0xfc, 0x6e, 0xd6, 0x53, 0x9e, 0x3e, 0x33, 0xa5, 0x35, + 0x41, 0x90, 0x11, 0xd7, 0x41, 0xc1, 0xf0, 0x5f, 0x42, 0x41, 0x1c, 0x60, 0x17, 0xce, 0xb2, 0xc2, + 0x11, 0x3a, 0x19, 0x25, 0xcd, 0xab, 0xad, 0x99, 0xd3, 0x54, 0xb9, 0xe1, 0x27, 0xc7, 0x13, 0x73, + 0x7e, 0x8c, 0x8f, 0xc6, 0xcd, 0x72, 0x59, 0x9c, 0x8c, 0x22, 0x8d, 0xfe, 0x0a, 0xe2, 0x42, 0x8f, + 0x91, 0x3d, 0xeb, 0xb5, 0x90, 0xd9, 0x33, 0xc9, 0xbe, 0x6a, 0xdc, 0xc1, 0x5a, 0x2e, 0x6d, 0xe9, + 0x98, 0x7d, 0x7c, 0xbe, 0xea, 0x27, 0x7b, 0x4a, 0xa9, 0xf3, 0x55, 0xc5, 0x9a, 0xf1, 0x0d, 0xd6, + 0x35, 0x6c, 0x2b, 0x19, 0xd4, 0xce, 0x5b, 0x0b, 0x35, 0x1b, 0x61, 0x5e, 0xa4, 0x61, 0x84, 0xf6, + 0x6a, 0xab, 0xb0, 0x09, 0x75, 0xa7, 0x33, 0x12, 0xfd, 0xc9, 0xfc, 0x1f, 0x72, 0x0a, 0x7b, 0x4b, + 0xe8, 0x61, 0xed, 0x84, 0x65, 0x48, 0x9c, 0xcd, 0x16, 0x05, 0xd5, 0x97, 0x8b, 0x42, 0xea, 0x6e, + 0x8f, 0xe4, 0xce, 0x72, 0xd1, 0x59, 0xcb, 0x51, 0x7c, 0x8e, 0xe1, 0x73, 0x1c, 0x9f, 0x13, 0x6c, + 0x37, 0xe2, 0xf6, 0x27, 0xb6, 0xb7, 0x9c, 0xce, 0x66, 0x28, 0x4c, 0x0d, 0xbe, 0xdc, 0x25, 0x56, + 0x1c, 0x96, 0x40, 0xb6, 0x33, 0xf2, 0xd2, 0x7c, 0xa6, 0x5b, 0x53, 0xb3, 0x1c, 0xbf, 0x90, 0xed, + 0x95, 0x41, 0xe2, 0x5f, 0xb5, 0x07, 0xb5, 0x39, 0xb5, 0x9b, 0x4e, 0x30, 0xe5, 0x0e, 0x75, 0xe8, + 0x17, 0x0d, 0xc4, 0xdb, 0xc9, 0x7c, 0x67, 0x18, 0xc2, 0x9c, 0x67, 0xc2, 0x2f, 0xce, 0x33, 0xcd, + 0x48, 0x55, 0xf6, 0x55, 0xdf, 0x98, 0xbe, 0x2a, 0xce, 0xb1, 0xbc, 0xc5, 0x2a, 0x69, 0x04, 0xdb, + 0x5e, 0xbf, 0xbd, 0x54, 0x4b, 0xff, 0x3c, 0xa7, 0x7f, 0x4e, 0x4b, 0xff, 0xbc, 0x96, 0x9e, 0xce, + 0x35, 0xba, 0x0d, 0xeb, 0x5f, 0x03, 0xb6, 0xe7, 0xa1, 0x18, 0xb1, 0xe6, 0x43, 0x25, 0x98, 0x7e, + 0x21, 0x52, 0x30, 0xea, 0x2b, 0xf8, 0xce, 0x55, 0xf7, 0x95, 0x67, 0xe3, 0x6f, 0x9e, 0xfa, 0x7d, + 0xa4, 0x6a, 0x6c, 0x65, 0x26, 0xcf, 0x62, 0xe6, 0x70, 0x85, 0x44, 0x65, 0xea, 0xe4, 0xc3, 0x67, + 0x1a, 0x8a, 0x8d, 0x75, 0xa8, 0xdf, 0x27, 0x1e, 0x36, 0x5f, 0xf6, 0x50, 0x87, 0xba, 0x0f, 0x7d, + 0xaf, 0x10, 0x27, 0x8a, 0x1c, 0xae, 0x22, 0x7e, 0xf1, 0xc5, 0x1a, 0xff, 0x2b, 0x59, 0xec, 0x94, + 0xc8, 0x56, 0x70, 0xc3, 0xb6, 0x1e, 0x92, 0x98, 0x7c, 0x59, 0x5b, 0xe7, 0xbb, 0x62, 0xaf, 0xab, + 0x2f, 0xc7, 0x49, 0xd3, 0xf5, 0xee, 0x84, 0x1c, 0xdb, 0x18, 0x37, 0xc6, 0x9e, 0x4e, 0x18, 0x93, + 0x59, 0x4a, 0xbe, 0x2e, 0xdc, 0xcc, 0x76, 0x3c, 0x86, 0x15, 0x53, 0x52, 0xc2, 0x7e, 0x1a, 0xa6, + 0x93, 0x60, 0xb2, 0xa5, 0x42, 0xba, 0xc2, 0xa9, 0x8c, 0xa2, 0x5a, 0xf5, 0x70, 0x15, 0x9d, 0x46, + 0xd7, 0xaa, 0xa3, 0xa5, 0xc5, 0xea, 0xf7, 0x7c, 0x86, 0x31, 0xac, 0x2d, 0xd6, 0xe1, 0xba, 0xaf, + 0x58, 0x7d, 0xa9, 0x34, 0x78, 0x0a, 0x69, 0x18, 0x92, 0xaf, 0x39, 0x55, 0x75, 0x0a, 0xdb, 0x42, + 0x3c, 0x33, 0x63, 0x11, 0x8c, 0x91, 0x4f, 0xb5, 0xe4, 0x73, 0xeb, 0x61, 0xdd, 0xb9, 0xb5, 0x69, + 0x01, 0x59, 0xea, 0xd8, 0xca, 0xa7, 0xcd, 0x7c, 0xae, 0x27, 0xac, 0xad, 0x4d, 0xf1, 0x1e, 0x50, + 0x49, 0xb9, 0x53, 0x9f, 0x86, 0xc7, 0x1a, 0xc6, 0x16, 0xfb, 0x06, 0xfc, 0x1d, 0xea, 0x4b, 0xd4, + 0x93, 0x63, 0xd8, 0xb3, 0x63, 0xb1, 0x2f, 0x05, 0x11, 0x5b, 0xc0, 0xaf, 0xc4, 0x49, 0x38, 0xb6, + 0x98, 0x38, 0x09, 0xb5, 0x6f, 0x26, 0xfe, 0x66, 0x8a, 0x6d, 0xec, 0xf2, 0x60, 0x48, 0x5e, 0x63, + 0x70, 0x6c, 0x31, 0x96, 0x3d, 0x51, 0x1a, 0xd3, 0x6a, 0x76, 0xb1, 0x34, 0x6b, 0x59, 0x88, 0x39, + 0xdd, 0x2f, 0xf9, 0x8c, 0x63, 0x31, 0xad, 0x6e, 0x1f, 0xc5, 0x9e, 0xc6, 0xf8, 0xb3, 0xb4, 0xb6, + 0x5c, 0xc6, 0x94, 0xf9, 0x98, 0x32, 0x86, 0xee, 0x2b, 0xa5, 0x59, 0xa7, 0x16, 0x6b, 0x6d, 0xb9, + 0x5a, 0x6a, 0xd4, 0xd2, 0x5e, 0xa3, 0xda, 0x6a, 0xa7, 0xfa, 0xc4, 0xc5, 0x32, 0xc9, 0xb5, 0xcf, + 0xc9, 0x9c, 0x6c, 0x4f, 0x9e, 0x4e, 0xad, 0x5a, 0xec, 0xb9, 0x57, 0x58, 0xa2, 0x94, 0x74, 0x54, + 0x0e, 0x69, 0xe7, 0xc9, 0x73, 0x68, 0x0e, 0x6a, 0x67, 0x97, 0x47, 0xe9, 0xac, 0x56, 0xb3, 0xad, + 0x6a, 0x55, 0x72, 0x7e, 0xf8, 0x77, 0x09, 0x13, 0x9d, 0xd5, 0x29, 0x64, 0x2b, 0x66, 0xa8, 0x08, + 0x73, 0x54, 0x69, 0xf7, 0x33, 0xa6, 0x4e, 0xec, 0xe4, 0x4e, 0xd8, 0x4c, 0xba, 0x23, 0x47, 0xe8, + 0x9c, 0xd9, 0x9f, 0x3e, 0x67, 0x76, 0x6b, 0xe7, 0xcc, 0xf6, 0xf4, 0x39, 0x73, 0x81, 0x38, 0x09, + 0xe7, 0x13, 0xd4, 0x9c, 0xf4, 0x3d, 0x43, 0x9e, 0x92, 0xc7, 0x75, 0x2d, 0x81, 0x3e, 0x71, 0x8a, + 0x3a, 0xb9, 0x82, 0xca, 0xfd, 0xeb, 0x0f, 0xd5, 0xdd, 0x71, 0x9b, 0x28, 0x23, 0x91, 0x53, 0xd4, + 0x49, 0xa5, 0x26, 0x4c, 0xb8, 0x62, 0x8c, 0xca, 0xc6, 0xd4, 0xb9, 0xbd, 0x68, 0x6f, 0xe8, 0xc6, + 0x64, 0x4e, 0x51, 0x54, 0xdd, 0x21, 0x4e, 0x88, 0xb1, 0xcd, 0x88, 0x6b, 0x3f, 0x4a, 0xb7, 0x15, + 0xbb, 0xec, 0xc1, 0xfa, 0xe7, 0xb0, 0xa6, 0x9b, 0x17, 0x84, 0x61, 0x33, 0xef, 0x73, 0x1d, 0xb8, + 0x7f, 0x98, 0xed, 0xd8, 0xea, 0xa2, 0x7a, 0x75, 0x77, 0xa0, 0xaa, 0xcc, 0xe2, 0x58, 0xc2, 0x69, + 0xdc, 0xd0, 0x87, 0x73, 0x6c, 0x17, 0x52, 0x7c, 0x9b, 0xc5, 0x29, 0x2f, 0xae, 0x22, 0xd2, 0xf0, + 0xbb, 0x39, 0x75, 0x1e, 0xf7, 0x1e, 0x62, 0x6c, 0xff, 0x88, 0xd8, 0x19, 0xfe, 0xe6, 0xfd, 0x63, + 0x1b, 0xdb, 0xfa, 0x20, 0x4c, 0x81, 0xb4, 0x7d, 0xee, 0x52, 0x72, 0xdf, 0x6b, 0xc5, 0xaf, 0xad, + 0x40, 0xbf, 0x79, 0xf8, 0x9b, 0xaf, 0xc1, 0x4e, 0x3a, 0xe5, 0x0c, 0xde, 0xf9, 0xeb, 0x8f, 0xff, + 0x2e, 0x51, 0x4f, 0x94, 0xc0, 0x7b, 0x74, 0x06, 0xb9, 0xf9, 0x1f, 0xc5, 0xf9, 0xe3, 0xe6, 0xf7, + 0xc4, 0xd9, 0x23, 0xf9, 0x4d, 0x5a, 0xdd, 0xb6, 0x53, 0x4d, 0xa8, 0x7e, 0xb8, 0x63, 0x0f, 0xa5, + 0xc2, 0x08, 0x5a, 0x8b, 0x91, 0xbd, 0x71, 0x83, 0x56, 0x30, 0xd5, 0xe4, 0xc7, 0x1f, 0xaa, 0xaf, + 0x24, 0x4c, 0xb8, 0x73, 0x80, 0xea, 0xc6, 0xf8, 0x43, 0x65, 0x39, 0x9e, 0x0e, 0x75, 0xf7, 0x3f, + 0xe2, 0x5c, 0xf9, 0x27, 0x9c, 0x55, 0xf8, 0xbb, 0x11, 0x7f, 0x37, 0x95, 0x70, 0xff, 0xf4, 0x1c, + 0x3d, 0xfd, 0x6d, 0x17, 0x53, 0x25, 0x44, 0x9b, 0x3c, 0xba, 0x5c, 0xa3, 0x04, 0x4a, 0x53, 0xfd, + 0xa1, 0xdd, 0x03, 0x48, 0x48, 0x71, 0x88, 0x73, 0x99, 0x3c, 0xac, 0xef, 0x5c, 0x6d, 0x4d, 0xb8, + 0xc5, 0xbd, 0x11, 0xcf, 0x0f, 0x23, 0x86, 0x8b, 0x1b, 0x8c, 0xc3, 0xf4, 0x95, 0xf2, 0xc5, 0x18, + 0x08, 0x93, 0x28, 0xf7, 0x47, 0x2b, 0x53, 0x27, 0xf7, 0x1c, 0xb6, 0x3d, 0x74, 0xe3, 0x46, 0xaf, + 0x18, 0x2b, 0xa2, 0x8e, 0xe8, 0xc6, 0x83, 0xea, 0x2e, 0x6a, 0xe4, 0xd2, 0xd3, 0x48, 0xad, 0x48, + 0xb7, 0x6c, 0x4f, 0xd3, 0x49, 0x8f, 0x68, 0x37, 0x1c, 0x74, 0xca, 0x49, 0x37, 0x1c, 0x74, 0xca, + 0x29, 0x6e, 0x38, 0x56, 0x83, 0xa9, 0x4b, 0x1e, 0x5e, 0xa1, 0x51, 0x51, 0x9d, 0x74, 0x0a, 0x8a, + 0xdf, 0x3b, 0xd3, 0xa7, 0xa0, 0x9d, 0x7c, 0x0a, 0xaa, 0xb5, 0x89, 0x4f, 0xfa, 0xb8, 0x4d, 0xa9, + 0x33, 0x16, 0x25, 0x37, 0xf5, 0x8d, 0x56, 0xcd, 0xef, 0x8f, 0xf1, 0x29, 0xe8, 0xcd, 0x74, 0x94, + 0x88, 0x93, 0x23, 0x4e, 0xb3, 0x7f, 0xbf, 0x85, 0x6f, 0x30, 0x32, 0x94, 0x94, 0x8b, 0xce, 0x6a, + 0x13, 0x76, 0xad, 0xde, 0xb9, 0x99, 0x1e, 0x4a, 0xc5, 0xd5, 0x68, 0x29, 0x57, 0xfa, 0x96, 0xe1, + 0xd0, 0xef, 0x1d, 0x88, 0x11, 0x7e, 0x1f, 0xb1, 0x52, 0x39, 0x5d, 0x46, 0xbe, 0x36, 0xef, 0x72, + 0x6e, 0xbd, 0x5b, 0x20, 0xad, 0x18, 0xbf, 0x37, 0x62, 0x8a, 0x8d, 0x9d, 0x08, 0x1f, 0xbb, 0x96, + 0xb3, 0xa5, 0xb4, 0xfb, 0xe2, 0x75, 0xf4, 0xad, 0xfa, 0x43, 0x5c, 0xad, 0xa4, 0x97, 0xf7, 0x14, + 0x7d, 0xef, 0xca, 0x61, 0xd9, 0xd7, 0x89, 0xd4, 0xad, 0x19, 0xc6, 0xb6, 0x85, 0x30, 0x06, 0xeb, + 0xad, 0xd7, 0xc2, 0xd2, 0xb7, 0x18, 0x47, 0x05, 0x3c, 0x98, 0x71, 0x87, 0x71, 0x14, 0x73, 0xda, + 0x84, 0x39, 0xe1, 0x5e, 0x90, 0x48, 0xd1, 0x9d, 0x93, 0x8e, 0x20, 0xdb, 0x00, 0xd9, 0xc3, 0xf7, + 0x80, 0x2b, 0x78, 0x8f, 0x8a, 0xa5, 0xf6, 0x28, 0xae, 0x1f, 0xdd, 0x15, 0x0d, 0x61, 0xca, 0x97, + 0x78, 0x7f, 0x6a, 0xe4, 0xdd, 0xa9, 0x4d, 0xdb, 0xad, 0xda, 0xb4, 0xdd, 0xaa, 0x0d, 0x67, 0xb3, + 0xee, 0xfe, 0x78, 0xed, 0x4b, 0x22, 0x25, 0xa6, 0x72, 0xf3, 0xad, 0xb0, 0xb6, 0x73, 0xa1, 0x7f, + 0x0e, 0x97, 0xbf, 0x27, 0x91, 0xaf, 0xdd, 0x9b, 0x15, 0xab, 0x7b, 0x52, 0x3b, 0x28, 0xaf, 0xe1, + 0x34, 0xf6, 0xa5, 0x9d, 0x05, 0xb7, 0x8a, 0xb3, 0x60, 0xc6, 0x9d, 0x72, 0x92, 0xf1, 0xee, 0x19, + 0x36, 0x22, 0x11, 0xa6, 0xfb, 0xe4, 0x20, 0xe3, 0x50, 0xe3, 0xcc, 0x87, 0x9c, 0xc6, 0xc7, 0xe3, + 0xb9, 0xf6, 0x98, 0x9e, 0xa2, 0x44, 0xec, 0xce, 0x24, 0x30, 0x74, 0xb6, 0x91, 0x9c, 0xba, 0x83, + 0xf6, 0x22, 0xce, 0xe0, 0x15, 0x56, 0x42, 0x10, 0x6f, 0xc8, 0x4b, 0xd9, 0x9b, 0x43, 0xaa, 0x73, + 0x8c, 0xb4, 0x26, 0x93, 0xd4, 0xa9, 0x13, 0x57, 0xac, 0x8b, 0x28, 0x68, 0x73, 0x6c, 0x28, 0x31, + 0x87, 0x4f, 0x91, 0x7f, 0xcf, 0x7c, 0x13, 0x35, 0xe2, 0x14, 0x41, 0x3b, 0x3d, 0x68, 0x22, 0x8a, + 0xc1, 0x4e, 0xfa, 0xb5, 0x11, 0xff, 0x24, 0x79, 0xf9, 0x1e, 0xc8, 0x73, 0x41, 0x36, 0x8e, 0xb7, + 0xdb, 0x6b, 0x44, 0x1a, 0x6f, 0x13, 0xd2, 0x3c, 0xbd, 0xc1, 0x59, 0xb5, 0x37, 0xd4, 0xcd, 0xf5, + 0x3b, 0x9c, 0x90, 0x0e, 0xdf, 0xc8, 0xe1, 0xa6, 0xfa, 0x1d, 0xf6, 0xac, 0xb5, 0x20, 0x57, 0x93, + 0xf5, 0x53, 0xe6, 0x90, 0x2d, 0x2c, 0x79, 0x8d, 0x62, 0x10, 0x25, 0x13, 0x84, 0xfa, 0x1d, 0x48, + 0x75, 0xf9, 0x44, 0x1a, 0x0e, 0x31, 0x70, 0x48, 0x38, 0x13, 0x2f, 0x9d, 0x93, 0x91, 0xbf, 0xf8, + 0x6f, 0x2a, 0x37, 0x9b, 0x43, 0x6b, 0x16, 0x75, 0x41, 0x04, 0xa2, 0xe8, 0x8a, 0xdd, 0x54, 0x82, + 0xc4, 0xdf, 0x03, 0xba, 0x12, 0xb2, 0x38, 0xa4, 0xfe, 0x36, 0x25, 0x98, 0xf8, 0x4b, 0xe4, 0xe6, + 0x96, 0x71, 0x28, 0xf3, 0x7d, 0x7b, 0xb1, 0xf5, 0xd0, 0xe4, 0x0d, 0xc3, 0xca, 0xf0, 0x0f, 0x40, + 0x09, 0x7d, 0x0c, 0x41, 0x8d, 0x9a, 0x7a, 0x34, 0x65, 0x53, 0x54, 0xf8, 0x27, 0x9b, 0xc9, 0x3f, + 0x2f, 0xcc, 0x1a, 0xdb, 0x0a, 0x4b, 0xf6, 0xc2, 0x56, 0xee, 0xd7, 0x6e, 0xed, 0x74, 0xc6, 0x0d, + 0x5b, 0xd9, 0x32, 0x15, 0x69, 0x8c, 0xf1, 0xf1, 0x98, 0x5c, 0xe0, 0x53, 0xa0, 0x5a, 0x28, 0xf4, + 0xd6, 0x83, 0x4c, 0x1a, 0x37, 0x56, 0x7d, 0x0f, 0x6c, 0xc9, 0xc2, 0x31, 0x92, 0xba, 0x28, 0x48, + 0xcb, 0xfc, 0xdb, 0x05, 0xfd, 0x25, 0xa8, 0x46, 0xc6, 0x8f, 0x6b, 0x9d, 0xe0, 0x30, 0x38, 0xeb, + 0x63, 0x03, 0x88, 0x81, 0xac, 0x4b, 0x04, 0x19, 0xef, 0x26, 0x7a, 0xee, 0x65, 0xe6, 0xe7, 0xbf, + 0x2f, 0x41, 0xf4, 0x1d, 0xd7, 0x68, 0x3a, 0xf2, 0x9d, 0x36, 0xf0, 0xbc, 0xd0, 0x06, 0x25, 0xe9, + 0x90, 0x4a, 0xc5, 0xac, 0x0b, 0xd3, 0x51, 0x81, 0x29, 0x1c, 0xdd, 0x01, 0x4e, 0x03, 0xd9, 0x48, + 0xcd, 0xe0, 0xe9, 0x48, 0x81, 0xe4, 0x22, 0xed, 0x91, 0xbb, 0x92, 0xed, 0x10, 0xb3, 0x3f, 0x1f, + 0xfd, 0xf9, 0x5f, 0xcf, 0xf8, 0x6d, 0xe8, 0xb7, 0xe9, 0xbe, 0xe7, 0xa1, 0x3f, 0xef, 0xeb, 0x33, + 0xe3, 0xe7, 0x76, 0xd8, 0xb4, 0x2f, 0xe9, 0x98, 0xe1, 0x60, 0x3a, 0xf7, 0xfc, 0xce, 0x3b, 0x7d, + 0xcd, 0xa4, 0xb5, 0xe9, 0x73, 0xbd, 0x25, 0xed, 0x2d, 0x5f, 0x89, 0x9a, 0x08, 0xb0, 0x2e, 0x29, + 0xb7, 0x17, 0x1c, 0x34, 0x36, 0x8c, 0xc7, 0x95, 0xd1, 0x09, 0x57, 0xf8, 0x7f, 0xb8, 0xee, 0x56, + 0x24, 0x39, 0xec, 0xb0, 0xc9, 0x2f, 0xb8, 0x37, 0xc5, 0x06, 0x13, 0x73, 0xdc, 0x11, 0xe7, 0xe7, + 0x13, 0x1f, 0xc9, 0x61, 0x7b, 0x55, 0xb4, 0x0f, 0x88, 0x53, 0xfe, 0x1b, 0xb8, 0xea, 0xde, 0x75, + 0x57, 0x29, 0x13, 0xf3, 0x49, 0x17, 0x83, 0xb9, 0xee, 0x3d, 0x47, 0x40, 0x68, 0x0f, 0xf5, 0xc9, + 0x0e, 0xb3, 0x13, 0x62, 0xeb, 0xba, 0xec, 0xd1, 0xbe, 0xe9, 0x0b, 0x5e, 0x73, 0xf5, 0x0d, 0x75, + 0x27, 0x9d, 0xd8, 0xc6, 0xd6, 0x77, 0x99, 0xa2, 0x7d, 0x6a, 0xae, 0x52, 0x12, 0x5b, 0x9f, 0x88, + 0xa1, 0x2b, 0xa2, 0x38, 0x70, 0x7c, 0x9c, 0x18, 0xeb, 0x2d, 0x8e, 0x95, 0xd4, 0xc5, 0xb2, 0x28, + 0x66, 0x8c, 0xe5, 0x40, 0x17, 0xf1, 0x9c, 0x6e, 0x57, 0x0a, 0x62, 0x03, 0x14, 0x3e, 0xbd, 0x1f, + 0xc3, 0x07, 0x12, 0x56, 0x74, 0x1d, 0x62, 0x5b, 0xe6, 0x01, 0x9a, 0x33, 0x46, 0x1e, 0x1f, 0x6a, + 0xcf, 0xa2, 0x4a, 0x77, 0x94, 0xce, 0x03, 0xdd, 0x64, 0x81, 0x6b, 0x35, 0x58, 0xbb, 0x8d, 0x02, + 0x2b, 0x9f, 0x0c, 0x3a, 0x08, 0x53, 0xb5, 0x76, 0x83, 0x80, 0x75, 0x93, 0x41, 0x27, 0xb8, 0xe8, + 0x0e, 0x9c, 0xc2, 0xcc, 0x9e, 0x08, 0x85, 0x74, 0xdb, 0xc6, 0xd6, 0x89, 0x55, 0xc9, 0xfe, 0x36, + 0x9c, 0x65, 0x1e, 0xe2, 0x35, 0x88, 0xbe, 0x49, 0x98, 0x60, 0x74, 0x54, 0x58, 0x05, 0xde, 0x35, + 0x20, 0xac, 0x00, 0xbf, 0xb8, 0x8e, 0xb4, 0x14, 0x91, 0xb5, 0x6b, 0x92, 0x9f, 0x69, 0xdc, 0x30, + 0x43, 0xca, 0x8d, 0xcb, 0x50, 0xc7, 0x85, 0xbc, 0x8d, 0x90, 0xc2, 0xd1, 0x52, 0x0f, 0x6a, 0xa9, + 0xd7, 0x53, 0xc9, 0xc9, 0x7b, 0x46, 0x07, 0xbb, 0xc1, 0x8e, 0xf9, 0x50, 0xfa, 0x54, 0x2a, 0xfa, + 0xa2, 0xd5, 0xb2, 0x79, 0x01, 0xe6, 0x4f, 0x9c, 0x2b, 0xfd, 0x93, 0x29, 0x3a, 0x6a, 0xc6, 0x59, + 0x44, 0xab, 0xd4, 0xa6, 0x4e, 0x43, 0x53, 0x43, 0xfa, 0x9c, 0x80, 0xe9, 0xd0, 0x0c, 0x6d, 0x7a, + 0xec, 0x36, 0xb4, 0xe9, 0xb1, 0x94, 0xb5, 0x69, 0x27, 0xd2, 0xa6, 0x8e, 0x06, 0xc5, 0xaa, 0xd1, + 0xef, 0x2f, 0xa6, 0xa9, 0xd2, 0x8f, 0xe4, 0x25, 0x69, 0x6b, 0x4e, 0xc6, 0x3b, 0xd2, 0xa1, 0x33, + 0x78, 0x77, 0x04, 0x2c, 0x5e, 0x31, 0x61, 0x0f, 0xca, 0x8f, 0x34, 0x6d, 0xe3, 0x79, 0x54, 0x82, + 0x3b, 0x7a, 0xe1, 0x08, 0xd1, 0xf5, 0x8e, 0x32, 0xa4, 0xeb, 0x49, 0x86, 0x42, 0xae, 0x3d, 0xd0, + 0x8a, 0xd4, 0xbd, 0x94, 0x34, 0xd8, 0x1b, 0xf8, 0x4c, 0x81, 0x70, 0x80, 0xc2, 0xc4, 0x04, 0xae, + 0xd4, 0x0c, 0xbd, 0xb9, 0xfd, 0x66, 0x7e, 0x9e, 0xc1, 0xba, 0x34, 0x3f, 0x8f, 0x83, 0x64, 0xa8, + 0x35, 0x7e, 0x1e, 0x1b, 0xd9, 0x0e, 0x4b, 0xe9, 0xab, 0x75, 0x45, 0x1d, 0xe0, 0x0e, 0x39, 0xeb, + 0x99, 0xd6, 0x5e, 0x1e, 0x3d, 0x52, 0xb1, 0x54, 0x31, 0xa6, 0xda, 0x93, 0x28, 0xd4, 0x76, 0xf3, + 0x8f, 0xe8, 0x44, 0x40, 0x96, 0xec, 0x77, 0x6b, 0x37, 0x9b, 0xc3, 0xb1, 0x60, 0xe2, 0x1d, 0xb9, + 0x4e, 0xd8, 0xdd, 0x92, 0x2d, 0x33, 0x79, 0x95, 0x32, 0xb4, 0xe5, 0xb4, 0xf9, 0x0f, 0xa7, 0x57, + 0xf5, 0x96, 0xbd, 0x6f, 0xa1, 0x55, 0x5f, 0x12, 0x23, 0xb0, 0xa8, 0x94, 0x66, 0x0f, 0xd2, 0xee, + 0x34, 0xc3, 0x1e, 0xe0, 0x19, 0xf6, 0x80, 0x36, 0xc3, 0x1e, 0xd0, 0x66, 0x58, 0x17, 0xb8, 0x08, + 0x57, 0x27, 0x7b, 0xee, 0x34, 0xcb, 0xd6, 0x02, 0xcf, 0x13, 0x2f, 0xf8, 0x9e, 0x52, 0x5f, 0x38, + 0xe1, 0xec, 0x02, 0xbf, 0x68, 0x89, 0x3a, 0x4e, 0xf6, 0xe2, 0x45, 0x9e, 0x98, 0xc6, 0x53, 0xe6, + 0xe2, 0x79, 0xe7, 0xe2, 0x79, 0xe7, 0xd2, 0xe6, 0x9d, 0x4b, 0x9b, 0x77, 0xad, 0xe9, 0x79, 0x87, + 0xb9, 0xdb, 0x57, 0x6b, 0x73, 0xef, 0x8e, 0x79, 0x8a, 0x13, 0x7e, 0xce, 0x37, 0xe0, 0x10, 0xda, + 0xba, 0x22, 0x98, 0x32, 0x5a, 0x8a, 0xa4, 0x94, 0xcf, 0x0b, 0x8d, 0x1e, 0x37, 0x18, 0xf9, 0xf6, + 0xc5, 0xcc, 0x94, 0xf0, 0x6b, 0xf1, 0xa7, 0x18, 0x1f, 0x0e, 0x94, 0x3d, 0x00, 0x12, 0xd6, 0xe1, + 0x5e, 0xac, 0x01, 0xee, 0x90, 0x5c, 0x83, 0x07, 0xc0, 0xc4, 0x35, 0xa8, 0x61, 0xab, 0xda, 0x35, + 0xbc, 0x66, 0x40, 0xac, 0x18, 0xcc, 0x75, 0x79, 0xaa, 0x5c, 0x25, 0xd0, 0x63, 0xd8, 0xbf, 0x29, + 0x51, 0xe6, 0x5d, 0x02, 0x8e, 0x45, 0x8f, 0x80, 0x6b, 0x11, 0x59, 0x84, 0x74, 0xe3, 0xdb, 0x08, + 0x1e, 0x7c, 0x9b, 0xa0, 0xa4, 0x34, 0x84, 0xbb, 0x82, 0xaf, 0x94, 0x34, 0xae, 0xf8, 0xe9, 0x3c, + 0xb0, 0x0a, 0x71, 0x0e, 0x86, 0x4a, 0x50, 0xff, 0x0d, 0xaa, 0x75, 0xca, 0xca, 0xad, 0x5c, 0xa9, + 0xd9, 0xe9, 0x92, 0xdd, 0x08, 0xdd, 0x6a, 0x6f, 0x4c, 0x37, 0x2b, 0x4e, 0xb9, 0x98, 0xed, 0x97, + 0xd3, 0x6d, 0x39, 0xdb, 0x50, 0x72, 0x7c, 0x1e, 0xd7, 0x9b, 0xdd, 0xbe, 0x34, 0xe9, 0x4a, 0xaf, + 0x90, 0x32, 0x77, 0x98, 0xed, 0xc7, 0x9d, 0xc6, 0xfd, 0x3d, 0xa0, 0xe4, 0xb9, 0x1e, 0xa1, 0x18, + 0xfa, 0xef, 0xf6, 0x3a, 0x9a, 0xbd, 0xf1, 0xf7, 0x53, 0x7c, 0x09, 0xb5, 0x37, 0xa6, 0xc6, 0xeb, + 0x33, 0x3c, 0x12, 0x29, 0xd7, 0xe6, 0xb4, 0x6b, 0x3b, 0xee, 0xf7, 0x31, 0xa4, 0x64, 0xc0, 0x60, + 0x9b, 0xc1, 0x19, 0x29, 0x8b, 0x39, 0x97, 0xd2, 0xae, 0x63, 0x73, 0xc3, 0xa3, 0x8d, 0xf0, 0xf9, + 0x20, 0x3c, 0x1a, 0x77, 0x26, 0x1b, 0x6e, 0xb6, 0x91, 0x3d, 0x3f, 0x08, 0xab, 0x12, 0xb9, 0x72, + 0x30, 0xda, 0x2a, 0x6c, 0x16, 0x48, 0xed, 0x4d, 0xdb, 0x52, 0xd2, 0x6a, 0x29, 0x2b, 0x76, 0xa9, + 0x5c, 0x96, 0x71, 0x2e, 0xed, 0xa5, 0xe9, 0xd3, 0x3b, 0xcb, 0x73, 0xc7, 0xc5, 0xec, 0x53, 0x5f, + 0x0d, 0xef, 0x65, 0xab, 0x3c, 0xab, 0x38, 0xdc, 0x96, 0x6c, 0x98, 0x61, 0x9f, 0x61, 0xd5, 0x4c, + 0x8b, 0xba, 0x24, 0x23, 0xa0, 0xc1, 0x87, 0x4d, 0xcc, 0x95, 0xf1, 0x9f, 0xe3, 0x73, 0x84, 0x04, + 0x98, 0x5a, 0xc7, 0x78, 0x57, 0x0a, 0x7a, 0xac, 0x0d, 0x07, 0x85, 0x4d, 0xdf, 0x88, 0xae, 0x3d, + 0x54, 0xa2, 0x96, 0xca, 0x42, 0x61, 0x98, 0x6a, 0x25, 0xf1, 0x48, 0x52, 0xfc, 0x54, 0x9d, 0xe9, + 0x7e, 0x1f, 0xa1, 0x48, 0x40, 0x9c, 0x52, 0xde, 0xdf, 0x00, 0x81, 0x65, 0x0f, 0xc0, 0xae, 0xf0, + 0x1e, 0x70, 0x84, 0x87, 0xf0, 0x6d, 0xc6, 0xc7, 0xaa, 0xe4, 0x93, 0x1e, 0x1f, 0x9c, 0xb9, 0xfa, + 0x51, 0x08, 0x20, 0xc5, 0x6b, 0xd6, 0xe5, 0x81, 0x31, 0x90, 0xfa, 0xfd, 0x1c, 0xec, 0x5a, 0x95, + 0x63, 0xdf, 0x03, 0x81, 0x79, 0xb5, 0x10, 0x68, 0x74, 0xc1, 0x2e, 0x25, 0x8f, 0x6d, 0xc2, 0xcd, + 0x4c, 0x5b, 0x26, 0xda, 0xe8, 0x0b, 0xf0, 0xfc, 0xf0, 0xb2, 0xbe, 0x5f, 0x47, 0x0f, 0x90, 0x9d, + 0xfa, 0xa4, 0x09, 0xa1, 0xb9, 0x1b, 0x76, 0x39, 0xab, 0x6a, 0x6f, 0x4c, 0xfa, 0xd9, 0xda, 0x7d, + 0x5e, 0xb7, 0x34, 0x32, 0x18, 0xcf, 0x61, 0xfe, 0x46, 0x9c, 0x33, 0xe1, 0xd7, 0x48, 0xdf, 0x52, + 0xec, 0xf9, 0x84, 0x99, 0xe3, 0x2d, 0x53, 0xde, 0x71, 0x92, 0x15, 0x8f, 0x2a, 0x08, 0xd4, 0xbd, + 0x17, 0xb0, 0x0a, 0xe8, 0xb8, 0x88, 0xb4, 0xdb, 0xf9, 0x31, 0xd7, 0x72, 0x97, 0x17, 0x02, 0xb8, + 0xbf, 0x46, 0x48, 0x22, 0xcc, 0x83, 0xbb, 0x52, 0x0f, 0xce, 0xf8, 0xd0, 0x87, 0x88, 0xa3, 0x47, + 0xc1, 0x23, 0x67, 0xbb, 0xef, 0x76, 0x07, 0xe9, 0xce, 0x5a, 0x21, 0xdb, 0x1c, 0x77, 0x93, 0xfc, + 0xd9, 0xf4, 0x47, 0x8e, 0xa0, 0x6f, 0xf9, 0xd8, 0x07, 0x60, 0x7e, 0x30, 0xca, 0xf7, 0x17, 0xd2, + 0xa9, 0x0f, 0xc0, 0xf2, 0x60, 0x2d, 0xe4, 0xfa, 0xf2, 0xc6, 0x70, 0x67, 0x78, 0x30, 0x08, 0x79, + 0xa5, 0x1e, 0x0c, 0x5d, 0x03, 0x39, 0x0f, 0x86, 0x20, 0x7f, 0x7e, 0x04, 0xcc, 0x8e, 0xc1, 0x86, + 0x6d, 0xb8, 0x66, 0x36, 0xc4, 0x2b, 0x3d, 0xd5, 0xd8, 0x8a, 0x12, 0x98, 0xbb, 0xd6, 0x74, 0x54, + 0x9c, 0x8f, 0x0f, 0xc6, 0xdd, 0x9e, 0x1a, 0xc4, 0x4d, 0x4b, 0x20, 0x3b, 0x10, 0xda, 0xfd, 0x73, + 0x7b, 0x4e, 0xe3, 0xba, 0xd2, 0xe0, 0xf6, 0xe3, 0xc9, 0x7b, 0xc7, 0xbe, 0x85, 0xdf, 0x0d, 0x72, + 0x8d, 0xe0, 0x17, 0x9d, 0x6c, 0xc3, 0xd9, 0x65, 0x75, 0x2e, 0x73, 0x58, 0xc4, 0x4d, 0xae, 0xda, + 0x13, 0x7b, 0x26, 0x1e, 0xa1, 0x6f, 0xb1, 0x1f, 0x40, 0x30, 0x41, 0x18, 0x73, 0x90, 0x6e, 0x55, + 0xa6, 0x76, 0x2a, 0x16, 0xb9, 0x8e, 0xe0, 0x16, 0x5b, 0x3e, 0xa6, 0x1e, 0x41, 0xc8, 0x41, 0xfa, + 0x1f, 0x6f, 0x9c, 0xd0, 0x38, 0xc8, 0x36, 0xac, 0x38, 0x1a, 0xdd, 0x10, 0x3d, 0x1a, 0xd9, 0xf0, + 0x94, 0x01, 0xe9, 0x24, 0x87, 0xd0, 0x4a, 0x44, 0x70, 0x1a, 0x21, 0xc9, 0x19, 0xe6, 0xdc, 0xe8, + 0x82, 0x26, 0xec, 0x99, 0x95, 0xb4, 0xcf, 0xf1, 0x8d, 0xb5, 0x4f, 0x01, 0xe3, 0x2e, 0xd2, 0xbc, + 0x3a, 0x84, 0xfd, 0x42, 0xfa, 0x3f, 0xb7, 0x7f, 0x88, 0xf0, 0xeb, 0x56, 0x49, 0x5b, 0x3f, 0xf6, + 0xa9, 0xa2, 0xf5, 0x5d, 0x50, 0xdc, 0xf0, 0x1b, 0x0b, 0xa3, 0x08, 0x8f, 0xb0, 0x0e, 0x11, 0xe2, + 0x78, 0xc8, 0xdc, 0xf0, 0x63, 0x2f, 0x14, 0xc1, 0x5c, 0xba, 0xe7, 0xcf, 0xfa, 0x9e, 0x0f, 0xa1, + 0x55, 0x39, 0xc6, 0xf0, 0x47, 0x4a, 0xa3, 0xcf, 0x9f, 0x20, 0xed, 0x24, 0x08, 0xb7, 0x62, 0xa5, + 0x5d, 0x50, 0x13, 0xa8, 0x2d, 0x85, 0xe8, 0x9b, 0xdb, 0xb7, 0x92, 0xb6, 0x31, 0x4d, 0x86, 0x16, + 0x24, 0x4f, 0xb7, 0xe1, 0xc8, 0x20, 0x49, 0x7d, 0x93, 0x2c, 0x7d, 0xbc, 0x06, 0x43, 0x49, 0x0f, + 0xd1, 0x76, 0xf4, 0xf5, 0xc4, 0x21, 0x6b, 0x2f, 0xd1, 0x41, 0xbb, 0x42, 0x8b, 0x22, 0x50, 0x87, + 0x25, 0xe4, 0x6e, 0x3f, 0xb2, 0xa8, 0x16, 0xea, 0xf9, 0x26, 0xa5, 0x61, 0x28, 0xbc, 0x88, 0xb4, + 0xda, 0x08, 0xa9, 0xf5, 0x3a, 0x6c, 0x61, 0xaf, 0xc6, 0x8b, 0x7b, 0x4d, 0xa9, 0x5f, 0x6b, 0x38, + 0x40, 0xb9, 0xc5, 0x1c, 0x24, 0xf5, 0x4c, 0x52, 0xde, 0xc1, 0x03, 0x22, 0xbf, 0x47, 0xff, 0xf0, + 0xfc, 0xa6, 0x25, 0x05, 0xb2, 0xec, 0x49, 0xe3, 0xe8, 0x60, 0xc2, 0x84, 0x74, 0xb5, 0xac, 0x90, + 0x6e, 0x44, 0x1a, 0x21, 0x0f, 0xdf, 0xe7, 0x3d, 0x8a, 0xbb, 0xe9, 0x0a, 0x92, 0xb5, 0x24, 0x39, + 0x6e, 0x77, 0xce, 0x8b, 0x9b, 0xdb, 0x4c, 0x91, 0xa7, 0x9f, 0x3b, 0xae, 0x18, 0xe5, 0xea, 0x3e, + 0x44, 0xa3, 0xa1, 0x79, 0x6c, 0x2b, 0x71, 0x05, 0xbc, 0x33, 0x80, 0x33, 0xb3, 0xf5, 0xcc, 0xe6, + 0xe3, 0x83, 0x67, 0x36, 0x51, 0x5a, 0x3f, 0x62, 0x91, 0x3b, 0x2e, 0x41, 0x2e, 0xed, 0x98, 0xed, + 0x66, 0x8f, 0x25, 0xb2, 0x11, 0x69, 0x28, 0xa9, 0x1f, 0xe8, 0x9b, 0xbb, 0x95, 0x78, 0xa5, 0x60, + 0x33, 0xd5, 0xbe, 0xc2, 0x8d, 0x39, 0x7b, 0xc0, 0xe6, 0x0b, 0xef, 0xaf, 0x6e, 0x77, 0x44, 0x7f, + 0x46, 0xd8, 0x98, 0x2b, 0x7b, 0xd7, 0x26, 0xdf, 0x1a, 0xf0, 0x9c, 0xd9, 0xa4, 0xb8, 0x1d, 0xd5, + 0x2f, 0x1c, 0xe7, 0x9c, 0x37, 0xf5, 0xdc, 0x83, 0x79, 0x6f, 0x56, 0x0a, 0xdc, 0x84, 0xb1, 0x99, + 0x11, 0xff, 0xf1, 0x44, 0x8f, 0x2a, 0x16, 0xf1, 0x6d, 0xed, 0x3d, 0xc7, 0xd7, 0x53, 0xce, 0x01, + 0xdc, 0xa9, 0xfc, 0x74, 0x2b, 0x17, 0xde, 0x5f, 0xd3, 0x9e, 0x1b, 0x3d, 0xe6, 0xa8, 0x79, 0xe1, + 0x38, 0xc6, 0xce, 0xc7, 0xdc, 0x4a, 0xfe, 0xe1, 0xb8, 0x92, 0xe3, 0xa1, 0xb4, 0x26, 0x3f, 0xfa, + 0x58, 0x47, 0x1d, 0xce, 0x18, 0xac, 0x0b, 0x61, 0xf5, 0x31, 0x1e, 0x97, 0x08, 0xce, 0x37, 0xea, + 0xd7, 0x00, 0xe6, 0xe5, 0x13, 0x14, 0x98, 0xaf, 0x1d, 0xf2, 0x87, 0xb0, 0x1d, 0x76, 0x73, 0xe3, + 0x3a, 0x74, 0xe7, 0xa1, 0xdb, 0x66, 0x0b, 0xc0, 0xbd, 0x63, 0x9b, 0xd6, 0x1a, 0x28, 0x16, 0x69, + 0x4f, 0xf0, 0xac, 0x16, 0x73, 0xde, 0x1e, 0x7c, 0x00, 0x67, 0xbd, 0xbc, 0x54, 0xce, 0xb6, 0x9b, + 0x1c, 0x46, 0xa7, 0xc5, 0x35, 0x0b, 0x57, 0x6a, 0x20, 0x83, 0xc7, 0x65, 0xfa, 0x1c, 0xe9, 0xcd, + 0x6c, 0xaf, 0x51, 0x27, 0x71, 0xed, 0x47, 0x1a, 0xf0, 0x25, 0xb3, 0x84, 0x30, 0xab, 0x2d, 0xdd, + 0xf3, 0x0a, 0xbe, 0xad, 0xf1, 0x47, 0xbd, 0x44, 0x75, 0xd5, 0xe1, 0x1b, 0xc7, 0x10, 0x67, 0x66, + 0x2f, 0x41, 0x3e, 0x9c, 0xa5, 0x4d, 0xa4, 0x7f, 0x86, 0xac, 0xf8, 0xc2, 0x5a, 0xa4, 0x8b, 0x79, + 0x1e, 0x3d, 0xdf, 0x05, 0xad, 0x7c, 0x7a, 0xdb, 0x05, 0x6d, 0xe8, 0x6e, 0xc7, 0xdf, 0x4e, 0x6d, + 0xbc, 0x5b, 0xb1, 0xaf, 0x77, 0x08, 0x4e, 0x89, 0x69, 0x49, 0xbb, 0xd9, 0x2c, 0x21, 0xce, 0x0a, + 0xba, 0xc7, 0x48, 0x80, 0xc1, 0x1e, 0x39, 0x12, 0x2f, 0xc4, 0xb8, 0x72, 0x69, 0x31, 0xd8, 0x02, + 0x24, 0xb1, 0x8f, 0xfd, 0xef, 0x0f, 0xf9, 0x72, 0xa2, 0xa3, 0x23, 0xf5, 0x9d, 0x51, 0x85, 0xd7, + 0x28, 0x61, 0xc0, 0x81, 0xd5, 0x0c, 0x45, 0x6c, 0x8e, 0xfa, 0x17, 0x7e, 0x2e, 0x46, 0x9f, 0x47, + 0xd8, 0x42, 0xb2, 0xaf, 0x43, 0x9b, 0x3d, 0xb5, 0x8a, 0x91, 0x66, 0x03, 0xc5, 0xf6, 0xaf, 0x86, + 0x5c, 0x8c, 0x99, 0x6b, 0xb7, 0x6c, 0xff, 0x56, 0x5b, 0x20, 0xb2, 0xce, 0x51, 0xab, 0x94, 0xbf, + 0x30, 0x2a, 0x5b, 0x14, 0x69, 0x68, 0xf3, 0xd8, 0xb7, 0x02, 0xf5, 0x34, 0xfa, 0xe5, 0x6e, 0x1c, + 0x2f, 0x8c, 0x83, 0xa5, 0x95, 0x94, 0x1a, 0xa3, 0x6f, 0xfa, 0x2d, 0xd1, 0x23, 0x07, 0x63, 0x5d, + 0xc6, 0xed, 0x83, 0x8a, 0x71, 0xc7, 0x3a, 0xbb, 0x74, 0xea, 0x5b, 0xfe, 0x98, 0x22, 0xe1, 0xee, + 0x8e, 0x23, 0x45, 0xb8, 0x85, 0x23, 0xe7, 0xd3, 0x7b, 0x55, 0x81, 0x29, 0x3f, 0x41, 0x5c, 0x86, + 0xb0, 0x75, 0x08, 0xc3, 0x68, 0x34, 0x23, 0x3c, 0xb6, 0x95, 0xbc, 0x1e, 0x49, 0x43, 0x28, 0x8d, + 0x6c, 0xf1, 0xbf, 0x32, 0xb2, 0x4b, 0x33, 0xb9, 0x4e, 0xb6, 0xd1, 0xa8, 0x0a, 0xbe, 0xa3, 0x04, + 0x69, 0xc4, 0xf0, 0xc7, 0xe1, 0x93, 0x77, 0xa8, 0xef, 0x1c, 0x9f, 0xe7, 0xf9, 0x92, 0x8c, 0x0b, + 0x2c, 0x80, 0xa4, 0xca, 0x7b, 0xbd, 0x2e, 0x86, 0xea, 0x87, 0xae, 0x45, 0x11, 0xc6, 0xd0, 0x68, + 0xb1, 0xd6, 0xcf, 0xdf, 0xef, 0x23, 0x28, 0xa2, 0xe1, 0x01, 0xf0, 0x49, 0xb3, 0x03, 0x47, 0x85, + 0xe5, 0x2e, 0xcd, 0xd2, 0x1a, 0xba, 0x21, 0x54, 0x4c, 0x42, 0x07, 0x83, 0xe0, 0xf1, 0xea, 0x7e, + 0xaa, 0xc6, 0x20, 0xb4, 0xb0, 0x18, 0xe6, 0x32, 0xd4, 0x00, 0x43, 0xbe, 0x80, 0x17, 0x86, 0x1c, + 0xc2, 0xfe, 0xff, 0xa1, 0x91, 0x28, 0x81, 0x7f, 0x6c, 0x13, 0x67, 0xca, 0xbf, 0xc0, 0x3d, 0x99, + 0x79, 0x98, 0xdb, 0xc0, 0x44, 0xb5, 0x26, 0x28, 0xca, 0xd2, 0xb0, 0xb8, 0x3f, 0xfe, 0xcb, 0x06, + 0x86, 0xa9, 0x84, 0x9f, 0xf4, 0xd5, 0xde, 0xf8, 0x97, 0x97, 0x34, 0xae, 0x7a, 0x0b, 0xdf, 0x01, + 0xec, 0xa0, 0xd4, 0xcf, 0x35, 0x52, 0xda, 0xe7, 0x49, 0x03, 0x15, 0xfa, 0x90, 0x4e, 0x35, 0x52, + 0xde, 0x48, 0xb3, 0x9a, 0x5c, 0xe2, 0x14, 0xd3, 0xb1, 0xe4, 0xc6, 0xb5, 0x3a, 0x5c, 0xad, 0x5b, + 0x7c, 0xb9, 0x63, 0xb8, 0xb3, 0xd0, 0x99, 0xf3, 0xc3, 0x41, 0xb6, 0x10, 0x26, 0x9d, 0x6a, 0x07, + 0x0b, 0xee, 0x1b, 0xb9, 0x0f, 0x87, 0xc0, 0xe2, 0x6b, 0x1c, 0xbb, 0x04, 0x56, 0xdc, 0x67, 0x6c, + 0x0f, 0x47, 0xc1, 0x4a, 0xb7, 0xea, 0xe8, 0xcf, 0x41, 0x7f, 0x2e, 0xfa, 0x73, 0xa8, 0x27, 0x7c, + 0x21, 0xaf, 0x19, 0x71, 0xac, 0xd9, 0x51, 0xe2, 0xa9, 0xca, 0xcc, 0xdd, 0x17, 0x30, 0x5f, 0xcc, + 0xf3, 0x39, 0x0c, 0x25, 0x6e, 0x38, 0x74, 0xe7, 0xa2, 0xdb, 0x92, 0x0e, 0xb5, 0xf2, 0x49, 0x39, + 0xe6, 0x87, 0xee, 0x1c, 0xd7, 0x72, 0x1d, 0x3f, 0x4b, 0x32, 0x2d, 0xf3, 0xef, 0xe2, 0xdb, 0xc6, + 0xd2, 0xd4, 0xee, 0x4b, 0x96, 0x54, 0x0f, 0xec, 0x85, 0xbe, 0x78, 0x1e, 0xf3, 0x5e, 0x59, 0xf9, + 0x5c, 0x60, 0x7d, 0xea, 0xbc, 0x45, 0x8e, 0x3d, 0xff, 0x73, 0xc6, 0xd1, 0x1b, 0x91, 0x86, 0xab, + 0x62, 0x1e, 0x89, 0x35, 0xda, 0x79, 0x95, 0x86, 0x71, 0x89, 0xf3, 0xb9, 0xab, 0xbb, 0xd8, 0x0e, + 0x94, 0x35, 0x11, 0xd0, 0xb8, 0x5c, 0x2d, 0x34, 0xae, 0xd7, 0xbb, 0x5d, 0xc0, 0xf1, 0xb2, 0x30, + 0x06, 0x7f, 0xd1, 0xdd, 0x15, 0x1b, 0x31, 0xa5, 0x99, 0x2d, 0x89, 0x35, 0xd3, 0x3e, 0x8a, 0xa9, + 0x83, 0x48, 0xeb, 0x5a, 0xe4, 0x98, 0x3d, 0x2c, 0x4a, 0xa4, 0x1a, 0x13, 0x7f, 0x8a, 0x86, 0x05, + 0xd3, 0xae, 0x1e, 0x49, 0x73, 0x5a, 0x91, 0x76, 0xa5, 0x68, 0x9a, 0xef, 0xd2, 0x43, 0xbc, 0xa9, + 0x57, 0xf3, 0xdc, 0x41, 0x81, 0x5b, 0x62, 0xac, 0x02, 0xc1, 0x0f, 0xfb, 0xdb, 0x33, 0x74, 0x2a, + 0x1a, 0xc6, 0x79, 0xf8, 0xc2, 0x89, 0xc5, 0x38, 0x67, 0x11, 0xaf, 0x0d, 0x78, 0x3b, 0xc0, 0x9c, + 0xe6, 0x52, 0x23, 0x3c, 0x21, 0x8a, 0xf8, 0xc1, 0x0c, 0xec, 0xc6, 0x19, 0x44, 0xec, 0xc9, 0xe3, + 0xcb, 0xc7, 0xb7, 0x6f, 0xac, 0x13, 0xcc, 0x0f, 0x05, 0x59, 0x0b, 0x82, 0xa7, 0xb4, 0x15, 0xc7, + 0xf1, 0x23, 0xb0, 0x3c, 0x84, 0x18, 0x41, 0x45, 0xc3, 0x3b, 0x1f, 0x81, 0xf5, 0xa1, 0xa5, 0x90, + 0x47, 0xa7, 0xa3, 0x18, 0x2b, 0x07, 0x63, 0xe5, 0x23, 0xcd, 0xe8, 0x07, 0x33, 0x53, 0x3e, 0x46, + 0xc7, 0xb3, 0x8a, 0xf1, 0x81, 0x25, 0x60, 0xc6, 0x79, 0xea, 0x81, 0xb9, 0xbc, 0x16, 0x7a, 0x89, + 0xf7, 0x50, 0xd3, 0x0c, 0x31, 0x1a, 0x8f, 0xd1, 0xde, 0x71, 0x13, 0x6d, 0xba, 0x19, 0xeb, 0x2e, + 0xbb, 0xc3, 0x2f, 0x62, 0x5d, 0xe5, 0xbb, 0x3d, 0xb1, 0xdd, 0xb4, 0xe6, 0x72, 0x68, 0x35, 0x3b, + 0x2d, 0x33, 0xe9, 0x5c, 0xaa, 0x77, 0x7a, 0x25, 0xaf, 0x22, 0xfd, 0x85, 0xa4, 0xe1, 0x89, 0xe7, + 0xb2, 0x95, 0xb4, 0x06, 0xe2, 0xb3, 0x56, 0xb3, 0xf2, 0x53, 0xa8, 0x84, 0x75, 0xdc, 0x7e, 0x65, + 0x84, 0x19, 0x69, 0xab, 0x7a, 0x0d, 0xae, 0xea, 0x0f, 0xb4, 0x55, 0xbd, 0x06, 0x57, 0x35, 0xce, + 0xc8, 0x64, 0x66, 0x4d, 0x47, 0x53, 0x6b, 0x9a, 0xb4, 0x5c, 0x12, 0x2c, 0xf0, 0x7e, 0x15, 0x7c, + 0x8e, 0x25, 0xd8, 0x12, 0x5f, 0x1c, 0xa6, 0x8f, 0x33, 0x44, 0xa4, 0x56, 0x15, 0xca, 0x4b, 0x11, + 0x86, 0x91, 0xcd, 0xb9, 0xa8, 0x36, 0x3b, 0x4e, 0x09, 0x3d, 0xba, 0x0a, 0x4c, 0xef, 0x48, 0x8f, + 0x13, 0xae, 0xec, 0x2b, 0xe5, 0x3a, 0xdd, 0x13, 0x79, 0x19, 0xbd, 0xda, 0x74, 0x0e, 0x82, 0xa3, + 0xeb, 0xe2, 0xdd, 0x19, 0x0c, 0x95, 0xda, 0xbd, 0x9e, 0x4d, 0x3b, 0x13, 0xa5, 0xf5, 0x77, 0xe8, + 0x4a, 0x8e, 0x92, 0xc3, 0x67, 0xab, 0xda, 0x6a, 0xfd, 0xcd, 0xdb, 0x1a, 0xce, 0xf3, 0x03, 0x70, + 0xc4, 0x1b, 0x04, 0x44, 0xe0, 0x55, 0xc9, 0xa7, 0xa6, 0xcf, 0xe9, 0xd6, 0xa8, 0xe6, 0x4f, 0x69, + 0x71, 0xd1, 0xce, 0x5b, 0x05, 0x6c, 0x48, 0x9d, 0xb0, 0xb2, 0x4f, 0x7f, 0xc2, 0x9a, 0x2a, 0xb9, + 0x6f, 0xc9, 0x8d, 0xdf, 0xec, 0xa8, 0x7f, 0x81, 0x39, 0x17, 0x5f, 0x83, 0xad, 0x89, 0xba, 0x4f, + 0x2f, 0x23, 0x9d, 0x6e, 0x6b, 0xfd, 0x0b, 0x9f, 0x5e, 0x02, 0xc3, 0x38, 0x84, 0x1a, 0x4b, 0x6f, + 0x5c, 0x99, 0xa3, 0x44, 0x70, 0x05, 0xe3, 0xac, 0x5c, 0x98, 0x82, 0x15, 0x1d, 0x60, 0x59, 0x88, + 0x70, 0xc2, 0x9f, 0xfb, 0x0f, 0x88, 0xb9, 0x22, 0x66, 0x2c, 0xe1, 0x6f, 0x8e, 0xd7, 0x4a, 0x50, + 0xc1, 0x17, 0x24, 0x89, 0xff, 0x19, 0x50, 0x61, 0xa7, 0xfb, 0xab, 0x34, 0xca, 0x0c, 0x2f, 0x0f, + 0xa4, 0xb4, 0x80, 0x57, 0x92, 0xcd, 0x6c, 0x97, 0xa6, 0x83, 0xac, 0x1c, 0x71, 0xb0, 0xd2, 0x32, + 0x2f, 0x94, 0x39, 0xdc, 0xf0, 0x54, 0xdc, 0xcc, 0x34, 0x23, 0x18, 0x7c, 0x48, 0x1f, 0x18, 0xb1, + 0x9f, 0x73, 0xe5, 0x58, 0x12, 0xf8, 0x24, 0x78, 0x1f, 0x7d, 0xef, 0x27, 0xba, 0xa6, 0x06, 0xd7, + 0x62, 0x03, 0x59, 0x37, 0x4c, 0x44, 0x84, 0x6c, 0x52, 0x9f, 0xe9, 0xc8, 0xd3, 0x73, 0x70, 0x06, + 0x1d, 0x5a, 0x17, 0x77, 0xd0, 0x79, 0xb2, 0x58, 0xc9, 0xbe, 0x2a, 0x4d, 0x5a, 0x99, 0xac, 0xb6, + 0x02, 0x43, 0xd1, 0x9d, 0xcc, 0xf7, 0x81, 0xb5, 0x15, 0xfe, 0xab, 0xf9, 0x1a, 0xd7, 0x07, 0xb6, + 0x6d, 0xfe, 0x12, 0x2a, 0x9d, 0x6c, 0xdb, 0x21, 0x8c, 0x7c, 0x95, 0xa5, 0xbf, 0x82, 0x42, 0x56, + 0x0a, 0x31, 0x9b, 0xdc, 0xff, 0x47, 0x27, 0x2b, 0xa5, 0xf9, 0x45, 0x7f, 0xde, 0x25, 0xee, 0x0b, + 0x2e, 0x63, 0x47, 0xb0, 0x1f, 0x04, 0x2f, 0xfa, 0xc7, 0xa4, 0xd1, 0xfc, 0x2e, 0x86, 0x35, 0xa4, + 0x3b, 0xc2, 0x44, 0x72, 0x54, 0x9a, 0x7e, 0x71, 0x27, 0x85, 0x7c, 0x7c, 0x22, 0x25, 0x8d, 0x33, + 0xa3, 0x9e, 0xa2, 0xae, 0x6c, 0x23, 0x4e, 0xc8, 0x74, 0x51, 0x59, 0xff, 0x45, 0x27, 0xd3, 0xa5, + 0xf9, 0x4d, 0x6c, 0x91, 0xb2, 0x26, 0x61, 0x16, 0xba, 0x7e, 0xd4, 0x11, 0xc2, 0xa6, 0x57, 0xf6, + 0x0b, 0xb9, 0x6b, 0x87, 0x66, 0x1d, 0xce, 0x49, 0xab, 0xe2, 0x2e, 0x0d, 0xa2, 0x91, 0x05, 0xf8, + 0x4d, 0x0e, 0xc2, 0xda, 0xca, 0x33, 0x90, 0xf2, 0x93, 0xc3, 0x33, 0x21, 0xe5, 0xc7, 0x9d, 0x6e, + 0x82, 0x94, 0x72, 0x22, 0xaa, 0x87, 0x94, 0xbf, 0x8d, 0x6a, 0x90, 0x92, 0xea, 0x9d, 0xcb, 0xd2, + 0x81, 0x1b, 0x12, 0xd8, 0xf2, 0xb4, 0x6e, 0x6f, 0xd2, 0x08, 0x97, 0xa5, 0x87, 0x9a, 0x57, 0x4b, + 0x34, 0xa8, 0xe9, 0xc0, 0x91, 0xca, 0xc3, 0xf6, 0xdd, 0x85, 0xad, 0x33, 0x0b, 0xfa, 0x90, 0xb1, + 0x96, 0x3c, 0x86, 0x9f, 0x01, 0x4d, 0xdf, 0xa4, 0x99, 0xee, 0x1f, 0x6e, 0x7f, 0x96, 0x52, 0xff, + 0x55, 0x75, 0x7f, 0x4a, 0x77, 0x46, 0x49, 0x31, 0x14, 0x78, 0x8a, 0x71, 0x67, 0xe8, 0x40, 0x0c, + 0x66, 0xe9, 0xbc, 0x62, 0x70, 0xf5, 0xc1, 0x5a, 0xf8, 0xee, 0xc9, 0x5e, 0x48, 0x1a, 0x48, 0x6a, + 0x89, 0x6f, 0xef, 0x5f, 0x57, 0x0f, 0xe2, 0x73, 0x1c, 0x9f, 0x51, 0x47, 0x94, 0x46, 0xd2, 0x6e, + 0xb3, 0xae, 0x23, 0x1e, 0xc4, 0x44, 0xe3, 0x2a, 0x37, 0xb9, 0xe0, 0x7e, 0xba, 0x83, 0x5f, 0x65, + 0x65, 0xb7, 0x1d, 0x31, 0xf8, 0x0d, 0x4a, 0x3b, 0xbb, 0x1d, 0x89, 0x1a, 0xfe, 0x7d, 0x20, 0x9e, + 0x54, 0xa2, 0x9c, 0x26, 0x3b, 0xe1, 0x5c, 0x65, 0x61, 0x97, 0x31, 0xbe, 0x52, 0x59, 0xce, 0xae, + 0x7f, 0x48, 0x38, 0xf9, 0xf7, 0xed, 0x78, 0x4c, 0xb1, 0xb1, 0xb4, 0xc9, 0x71, 0x25, 0xc8, 0xbf, + 0xa3, 0x4a, 0xb9, 0x13, 0xe9, 0x38, 0xa5, 0xd4, 0x45, 0xb7, 0xa8, 0x1e, 0x17, 0xb9, 0x9d, 0x88, + 0xf9, 0x19, 0x53, 0x1c, 0x22, 0x54, 0x47, 0x25, 0x8f, 0x4e, 0x20, 0x95, 0x1c, 0x4d, 0x4e, 0xc5, + 0xc4, 0xbf, 0x27, 0xf9, 0x94, 0x99, 0x6e, 0xa7, 0xc7, 0x64, 0x92, 0x2c, 0x04, 0xb5, 0xce, 0x5c, + 0x0c, 0x12, 0xd6, 0xd4, 0x1c, 0xc3, 0x76, 0x24, 0xc0, 0x78, 0x3c, 0xb6, 0x9e, 0x6a, 0x2a, 0x87, + 0xa9, 0x84, 0x78, 0x1f, 0xe2, 0x7a, 0x8e, 0x44, 0x4f, 0x5a, 0x23, 0xda, 0x05, 0xa1, 0x11, 0xad, + 0xa8, 0x9f, 0x6a, 0xaf, 0x5e, 0xe0, 0xde, 0x98, 0x20, 0xba, 0xb2, 0x1b, 0xb4, 0x13, 0xf6, 0xa0, + 0x23, 0xc8, 0x7e, 0x73, 0xca, 0xcf, 0xb2, 0x15, 0x17, 0xf8, 0x9e, 0xb6, 0x4d, 0x55, 0x97, 0x0d, + 0x90, 0x66, 0x00, 0xba, 0x85, 0xc1, 0x55, 0x4b, 0x37, 0xf8, 0x74, 0x8f, 0xea, 0x8f, 0x91, 0x1d, + 0xf0, 0x30, 0xd2, 0xd9, 0x46, 0xa4, 0xa7, 0x6a, 0xec, 0x61, 0xe7, 0x03, 0x60, 0x64, 0xdc, 0x29, + 0x87, 0x77, 0x8d, 0xc2, 0x61, 0xac, 0x45, 0x27, 0x18, 0x3d, 0x38, 0x1b, 0x6c, 0x8e, 0x08, 0xcb, + 0x7a, 0x72, 0x58, 0x07, 0x18, 0x0b, 0x10, 0x2f, 0xe2, 0x7b, 0x9f, 0x69, 0x99, 0x6e, 0xf1, 0x9b, + 0xb6, 0x61, 0x1b, 0x8c, 0x29, 0x89, 0x0a, 0xdf, 0x2c, 0xc4, 0x4d, 0x73, 0x87, 0x42, 0x7c, 0x7b, + 0x5f, 0x43, 0x74, 0xdd, 0xd0, 0xcf, 0x49, 0xe7, 0x85, 0xdc, 0xa1, 0xee, 0xaf, 0xfa, 0x50, 0xbd, + 0xea, 0x89, 0xa5, 0xf5, 0x69, 0xbd, 0xeb, 0xb5, 0x28, 0x3d, 0x45, 0xd5, 0xea, 0x69, 0x7c, 0xce, + 0x54, 0x7f, 0xa8, 0x5e, 0x28, 0x8a, 0xa9, 0x67, 0x43, 0x18, 0xa7, 0x28, 0xaa, 0x9e, 0x23, 0xeb, + 0x2d, 0xa4, 0xa9, 0xcd, 0x8f, 0x39, 0x2c, 0x8c, 0xa9, 0xef, 0x2f, 0x5c, 0xac, 0x4e, 0x2c, 0xac, + 0x61, 0xc9, 0x99, 0x19, 0x92, 0x1b, 0x24, 0x17, 0xf4, 0xc2, 0x09, 0xcc, 0x79, 0x2c, 0xc5, 0x4b, + 0x8b, 0xb4, 0x83, 0xd1, 0x5d, 0xac, 0x9e, 0x8e, 0x3d, 0x9d, 0x70, 0xc8, 0xd5, 0x76, 0x2c, 0x37, + 0x25, 0xfb, 0x40, 0x37, 0x46, 0x3c, 0xd7, 0x8b, 0xd5, 0xfd, 0xf5, 0x87, 0xa6, 0x92, 0x0d, 0xdb, + 0x90, 0xa6, 0x8a, 0xc5, 0xd6, 0x27, 0xe6, 0xc8, 0x55, 0xb8, 0xc3, 0xda, 0xe4, 0xd9, 0xbf, 0x78, + 0x1d, 0x69, 0x9c, 0x56, 0xda, 0x97, 0x7e, 0xf9, 0x3a, 0xe4, 0xbd, 0xfb, 0xad, 0xb3, 0x9b, 0x7c, + 0xd8, 0x1a, 0x6c, 0xcb, 0x51, 0xaa, 0xff, 0x2f, 0x1a, 0xc8, 0x96, 0x1c, 0xfa, 0x8e, 0x31, 0x27, + 0x47, 0xb1, 0x7a, 0x94, 0x38, 0x39, 0x88, 0x8b, 0x43, 0x9c, 0xf2, 0xdc, 0x7c, 0x76, 0x23, 0x34, + 0x89, 0x49, 0x17, 0xe7, 0x63, 0x1d, 0xe1, 0x65, 0x7c, 0x9f, 0x04, 0xd7, 0xfc, 0x6a, 0xd8, 0x5a, + 0x75, 0x11, 0xf6, 0xcd, 0xaf, 0x4d, 0xdd, 0x90, 0xa8, 0x15, 0x64, 0x97, 0x5a, 0xde, 0x4c, 0xef, + 0x79, 0x1d, 0xc4, 0x65, 0x87, 0x54, 0xb1, 0xfd, 0xc1, 0x28, 0xcc, 0x9d, 0x1f, 0x86, 0xc8, 0x7c, + 0x92, 0xc2, 0x93, 0xf1, 0x7d, 0x1c, 0xd6, 0x62, 0x9f, 0x38, 0x1f, 0xac, 0x85, 0xc2, 0xd0, 0x45, + 0xdd, 0x69, 0xef, 0xa9, 0xf9, 0xc4, 0xef, 0xb0, 0x99, 0xea, 0xf9, 0x20, 0x62, 0x0b, 0x0f, 0x2e, + 0x86, 0x3c, 0x1c, 0x81, 0xfc, 0x07, 0x43, 0xe8, 0xaf, 0x81, 0xfc, 0xc6, 0xc5, 0x2f, 0x75, 0xa8, + 0x47, 0x31, 0x74, 0x63, 0x63, 0xcd, 0xee, 0x0e, 0xf5, 0x18, 0x86, 0x6d, 0xca, 0xdc, 0x8d, 0x50, + 0x6f, 0x2c, 0xbd, 0x31, 0xd9, 0x54, 0xbf, 0x13, 0x61, 0xd8, 0x6e, 0x1a, 0x49, 0x69, 0x39, 0x85, + 0xb1, 0xbf, 0x8f, 0xfd, 0x91, 0xb4, 0x7f, 0x3b, 0xfb, 0xfd, 0xb6, 0x62, 0xf5, 0x6f, 0x3e, 0x1f, + 0x84, 0xef, 0xca, 0x61, 0x9a, 0xff, 0x71, 0xe3, 0xbc, 0x18, 0x18, 0xe7, 0x57, 0x41, 0x41, 0x22, + 0xc7, 0x5e, 0xe5, 0x7b, 0x00, 0x76, 0x36, 0x06, 0xb1, 0x1e, 0x3b, 0x15, 0x63, 0xb8, 0x0d, 0x76, + 0xca, 0x02, 0xa3, 0xda, 0x61, 0x0f, 0xcb, 0x42, 0xfb, 0x4d, 0x90, 0xb1, 0xc2, 0x8a, 0xd8, 0x86, + 0x78, 0xc0, 0x55, 0x65, 0x5f, 0xce, 0xa7, 0x51, 0x1e, 0xf9, 0x01, 0x28, 0x18, 0xde, 0x0b, 0x05, + 0x71, 0x3b, 0xf1, 0x82, 0x29, 0xb9, 0x5a, 0x78, 0x1e, 0x42, 0xff, 0x42, 0x3a, 0x2b, 0x6e, 0xb1, + 0xb8, 0x6a, 0x87, 0x57, 0xc3, 0xce, 0x27, 0xde, 0x57, 0x4e, 0x72, 0x7a, 0x13, 0xa6, 0x77, 0x2a, + 0xc6, 0xbf, 0x3a, 0x1e, 0xb7, 0xd9, 0xc3, 0xf6, 0xcd, 0xe1, 0xed, 0xf3, 0xa3, 0x60, 0x4c, 0xb8, + 0xe5, 0xcd, 0x8a, 0xd3, 0xb1, 0x63, 0x7e, 0x1d, 0x18, 0xe5, 0xe5, 0x54, 0x2b, 0xd7, 0x66, 0x25, + 0xdf, 0xb1, 0xc1, 0x45, 0xb8, 0x9b, 0x91, 0x63, 0x48, 0xd8, 0xcb, 0x11, 0xfa, 0x42, 0xb7, 0xd2, + 0xc4, 0x5b, 0xa6, 0x41, 0xca, 0x23, 0x29, 0x29, 0xd4, 0x04, 0x9d, 0x19, 0xe9, 0xbe, 0x4c, 0x0d, + 0x69, 0xa7, 0xc8, 0x00, 0xa3, 0x6e, 0xdc, 0xb3, 0xe8, 0x9e, 0x58, 0x6e, 0xd4, 0x6e, 0x01, 0xfb, + 0x38, 0x45, 0x21, 0xa6, 0xe8, 0xe3, 0x3c, 0x1a, 0x49, 0x9e, 0x4f, 0x0f, 0x7f, 0x15, 0x9b, 0x2b, + 0x2c, 0x7b, 0xb0, 0x1e, 0x41, 0xac, 0xc1, 0x66, 0x8a, 0xe3, 0x62, 0x19, 0x2e, 0x57, 0xb5, 0x26, + 0x73, 0x13, 0xc6, 0xd8, 0x84, 0x77, 0xa5, 0x6e, 0xc8, 0x4b, 0xd3, 0x37, 0xe4, 0x2e, 0x4d, 0x0e, + 0x48, 0x4e, 0xdd, 0x90, 0x77, 0xe6, 0x6b, 0x50, 0x9b, 0x78, 0x09, 0xac, 0xa9, 0xfb, 0x7c, 0x85, + 0xb9, 0x7e, 0xf5, 0xb2, 0x5c, 0x3a, 0xf9, 0x1e, 0xab, 0x33, 0x23, 0xcb, 0xb5, 0x35, 0x75, 0x4b, + 0x9d, 0x60, 0xed, 0x1a, 0x2c, 0x75, 0x75, 0x14, 0xb1, 0x6c, 0x31, 0x3e, 0x5b, 0x95, 0x88, 0x76, + 0x36, 0x7a, 0xe8, 0xc6, 0xa3, 0x6c, 0x79, 0x7c, 0x77, 0xc2, 0x9a, 0x0e, 0x89, 0x72, 0xc8, 0x76, + 0x5d, 0x48, 0x59, 0xc3, 0xb6, 0x5b, 0x4f, 0x36, 0x59, 0xde, 0x9b, 0x6e, 0x73, 0xb7, 0xd0, 0x6d, + 0x6e, 0x8c, 0xe4, 0x03, 0x61, 0xd2, 0xae, 0xc0, 0x64, 0x2f, 0xa6, 0xee, 0x8b, 0xbf, 0xa4, 0xec, + 0xf9, 0xac, 0x32, 0x73, 0x77, 0xe4, 0xf3, 0xba, 0x9a, 0xd2, 0x90, 0x95, 0xd2, 0xc8, 0xa5, 0x49, + 0x15, 0x4c, 0xba, 0x82, 0xb7, 0x93, 0xe8, 0x4a, 0x71, 0xcb, 0x38, 0xc0, 0x55, 0x04, 0x46, 0xdd, + 0x2d, 0x85, 0x69, 0x5e, 0x24, 0xcd, 0xd5, 0xbc, 0x41, 0x8e, 0xe0, 0xec, 0x7c, 0xce, 0x6d, 0xfc, + 0xc9, 0xcf, 0xd8, 0xfe, 0x46, 0x81, 0x5c, 0xfd, 0xa3, 0x09, 0x9c, 0x8b, 0xf9, 0x1a, 0x57, 0x4d, + 0x0e, 0x8f, 0x6a, 0x9d, 0x56, 0xd2, 0xee, 0x03, 0x4f, 0xe3, 0xbe, 0x5c, 0xcd, 0x70, 0xfe, 0x2d, + 0x1c, 0x0b, 0x96, 0x77, 0xb2, 0x87, 0x49, 0x3a, 0xb7, 0xfe, 0x90, 0x4a, 0x5a, 0xa4, 0xac, 0x1e, + 0x89, 0x64, 0xbd, 0x06, 0x02, 0x42, 0xe2, 0x54, 0xae, 0xd1, 0xf2, 0xa9, 0x60, 0x69, 0x4f, 0x0f, + 0xf3, 0x2d, 0x96, 0xe0, 0xaf, 0xe0, 0x69, 0x74, 0xf8, 0xf2, 0x98, 0x83, 0xb1, 0x10, 0x43, 0x04, + 0x6f, 0x63, 0x2e, 0x71, 0x38, 0x93, 0x55, 0x17, 0xaf, 0x49, 0xc8, 0x9a, 0x2a, 0x79, 0x54, 0x8e, + 0x5c, 0xc3, 0x52, 0x9b, 0xd6, 0x94, 0xfc, 0xe5, 0x4f, 0x8e, 0x61, 0x3d, 0x6a, 0xe8, 0x6c, 0x51, + 0xd9, 0x2d, 0xa7, 0x6a, 0x77, 0xd1, 0x15, 0x79, 0xea, 0xea, 0xbb, 0xdf, 0xf6, 0x50, 0xf9, 0x4e, + 0xae, 0x45, 0x9e, 0xe0, 0xc8, 0x58, 0x7a, 0x63, 0x7a, 0x9f, 0x36, 0xe7, 0x6a, 0x58, 0xee, 0xac, + 0x58, 0xbd, 0x8e, 0xf5, 0xa8, 0x20, 0x5d, 0x5b, 0x5c, 0x0f, 0x1f, 0xba, 0xae, 0x72, 0x4d, 0x9c, + 0xe8, 0xba, 0xc6, 0x35, 0x21, 0xfd, 0x3f, 0x42, 0xf2, 0xac, 0xba, 0x7e, 0x08, 0xb1, 0x85, 0x59, + 0x58, 0x7a, 0x86, 0xe7, 0x42, 0xfb, 0xe6, 0x9d, 0x25, 0xd7, 0x08, 0x6e, 0xf6, 0x03, 0x5b, 0x12, + 0xb2, 0x56, 0x86, 0x8d, 0xbf, 0xce, 0xc2, 0xef, 0x42, 0x36, 0xce, 0xaa, 0x49, 0x93, 0x3d, 0x25, + 0xc2, 0x11, 0xf6, 0x5e, 0x63, 0xfb, 0xb5, 0xc6, 0x86, 0x6d, 0x1a, 0x3f, 0xf9, 0xb3, 0x72, 0xd5, + 0x02, 0xa2, 0xae, 0x8c, 0xb8, 0x9e, 0xd7, 0xcf, 0x0b, 0x0b, 0xdd, 0x68, 0x38, 0x97, 0x4e, 0xde, + 0x4e, 0x37, 0x1a, 0xdb, 0x75, 0xfe, 0x94, 0xf1, 0xc6, 0x5d, 0xe9, 0xb2, 0x1c, 0x71, 0xdb, 0x68, + 0xc4, 0xe7, 0x11, 0x6f, 0xb4, 0x91, 0xf5, 0x56, 0x3e, 0x97, 0x92, 0xeb, 0x94, 0x23, 0x82, 0x3b, + 0x6a, 0x8a, 0xad, 0x69, 0x6b, 0x12, 0x01, 0x66, 0xdc, 0xd5, 0xb6, 0xaf, 0x05, 0x25, 0xec, 0xb8, + 0x6b, 0x2d, 0xbc, 0x70, 0xc2, 0x1e, 0xd6, 0xe4, 0x50, 0x9d, 0x7c, 0x3b, 0x66, 0xcb, 0x70, 0x52, + 0xac, 0x35, 0x20, 0x54, 0x47, 0xb8, 0xa3, 0x97, 0x4f, 0x9d, 0xda, 0xbd, 0xff, 0x75, 0xf5, 0x32, + 0xe9, 0xc7, 0x72, 0xd8, 0x94, 0xa3, 0xc2, 0x8a, 0x8d, 0xc1, 0xe9, 0x89, 0xf0, 0x48, 0x04, 0x1c, + 0xbc, 0xea, 0x35, 0x5e, 0xab, 0x00, 0xc9, 0x42, 0xf2, 0x7a, 0x6f, 0xc4, 0x5e, 0x27, 0x8e, 0x97, + 0x36, 0x96, 0xda, 0xb4, 0xe1, 0x2f, 0x49, 0x6d, 0x12, 0xc7, 0x4b, 0x1b, 0x4b, 0x6d, 0x5a, 0x35, + 0x2c, 0x2d, 0x87, 0x78, 0x86, 0x74, 0x9c, 0x2e, 0x25, 0x2c, 0xbd, 0x5b, 0x23, 0xe6, 0x01, 0x71, + 0x53, 0xfd, 0xf5, 0x07, 0x08, 0x87, 0x5f, 0x46, 0x8a, 0x64, 0x3d, 0xee, 0xe9, 0xa9, 0x1a, 0x5d, + 0x24, 0x6d, 0xc5, 0x4b, 0x71, 0x37, 0x2d, 0xe1, 0xd9, 0xc0, 0x35, 0xc9, 0x13, 0x32, 0x0c, 0x0e, + 0xae, 0x95, 0x4e, 0x92, 0xe1, 0xb3, 0xce, 0x87, 0x14, 0x0f, 0x4e, 0x0d, 0xf3, 0xe0, 0xe4, 0x60, + 0x2d, 0xaa, 0x6e, 0xe1, 0xc1, 0xc9, 0x49, 0x49, 0x22, 0xfe, 0xe4, 0xc4, 0x4d, 0x1c, 0x35, 0x39, + 0xcc, 0x73, 0x14, 0x16, 0xf5, 0xd6, 0x38, 0x6a, 0xfa, 0x75, 0xb2, 0xb6, 0x64, 0x05, 0xe8, 0x69, + 0xa4, 0xc3, 0xab, 0xe7, 0x61, 0xcd, 0xf1, 0xab, 0x99, 0xd7, 0x27, 0xf6, 0x2b, 0xee, 0xe1, 0x97, + 0xed, 0x4f, 0x2f, 0xc0, 0x35, 0x2b, 0x47, 0xe4, 0x67, 0xb5, 0x99, 0x21, 0xb4, 0xaf, 0xfd, 0x89, + 0xd0, 0xf7, 0xb3, 0xcf, 0x85, 0x8f, 0x11, 0xce, 0xef, 0xbc, 0x8c, 0xcf, 0xd5, 0xb4, 0x56, 0x8f, + 0xf3, 0x7f, 0xfd, 0x32, 0x9c, 0xff, 0x5f, 0x97, 0xf0, 0xb9, 0x0e, 0xe7, 0xc7, 0x7c, 0x70, 0xfe, + 0x17, 0xab, 0xe0, 0xfc, 0xe9, 0x06, 0x38, 0x7f, 0x66, 0x04, 0xce, 0xff, 0xd3, 0x0e, 0x7c, 0x8e, + 0xc3, 0xf9, 0xff, 0xe7, 0x0c, 0x9c, 0x7f, 0x6f, 0x13, 0x9c, 0x3f, 0x97, 0x07, 0xe7, 0xcf, 0x6f, + 0x81, 0xf3, 0xff, 0x07, 0x7b, 0xe7, 0xd7, 0x27, 0xe1, 0xfc, 0x45, 0x4c, 0x73, 0xe9, 0x2a, 0x9c, + 0xff, 0x70, 0x0f, 0x9c, 0xff, 0x8d, 0x15, 0x9f, 0x0d, 0x70, 0xfe, 0x8a, 0x19, 0x9f, 0x01, 0x38, + 0x7f, 0x0d, 0xdd, 0xd7, 0x26, 0xe1, 0xfc, 0xef, 0x30, 0xff, 0xeb, 0x98, 0xee, 0xf7, 0x27, 0x61, + 0xfc, 0xde, 0x9d, 0x30, 0xee, 0x78, 0x14, 0xc6, 0x1f, 0x68, 0x86, 0x71, 0xb7, 0x02, 0xe3, 0xde, + 0xfd, 0x30, 0xfe, 0xa5, 0xab, 0x30, 0xfe, 0xe5, 0x2b, 0x30, 0x5e, 0xde, 0x8e, 0x4f, 0x3f, 0x8c, + 0x07, 0x2c, 0x30, 0x5e, 0x75, 0x1c, 0xc6, 0x23, 0x3e, 0x18, 0x5f, 0x92, 0x8f, 0xcf, 0x19, 0x18, + 0xaf, 0x9b, 0x80, 0xf1, 0xaf, 0xe0, 0xf7, 0xaf, 0xf4, 0xc2, 0xf8, 0x23, 0x61, 0x18, 0x6f, 0x2c, + 0x41, 0xf7, 0x65, 0x18, 0xaf, 0x3e, 0x85, 0x65, 0xdb, 0xd0, 0x3d, 0x80, 0xcf, 0x6e, 0x38, 0x3f, + 0x8a, 0xe5, 0xbd, 0x89, 0x75, 0xff, 0xbb, 0x56, 0x38, 0x7f, 0x01, 0xdb, 0x32, 0x81, 0x75, 0xbb, + 0x7c, 0x10, 0xcb, 0xc9, 0x83, 0x71, 0x7f, 0x3b, 0x9c, 0xff, 0x9b, 0x7d, 0x18, 0x07, 0xdb, 0x3f, + 0x91, 0x84, 0xf3, 0x1f, 0xf9, 0x61, 0xbc, 0x1e, 0xdb, 0xf7, 0x41, 0x00, 0xc6, 0x3d, 0x15, 0x70, + 0xfe, 0x0d, 0x19, 0xeb, 0x82, 0xfd, 0xf3, 0xd7, 0x1e, 0x18, 0x2f, 0xc1, 0xf0, 0x43, 0x2b, 0xe1, + 0xfc, 0x6f, 0x4f, 0x63, 0x5d, 0xb1, 0xed, 0xbf, 0xdd, 0x05, 0xe7, 0xdf, 0xba, 0x80, 0x75, 0x8b, + 0x62, 0xbd, 0x0a, 0x60, 0x7c, 0x19, 0xf6, 0xd1, 0x47, 0xaf, 0x60, 0x7a, 0x6c, 0xf7, 0xc7, 0x54, + 0x76, 0x13, 0x9c, 0xff, 0x17, 0x6c, 0xcf, 0xc2, 0x56, 0x18, 0xaf, 0x35, 0x63, 0x1a, 0x6c, 0xff, + 0xbf, 0x60, 0xdb, 0x90, 0xda, 0x39, 0xff, 0x6b, 0xf4, 0x07, 0xde, 0xc2, 0x5f, 0xec, 0xbf, 0x5f, + 0x61, 0xd9, 0x6f, 0x62, 0x78, 0x3d, 0xb6, 0xdf, 0xde, 0x04, 0xe3, 0x77, 0xd7, 0x61, 0x7f, 0xbe, + 0x0c, 0xe3, 0x0b, 0x64, 0xec, 0xd3, 0xb3, 0x70, 0xfe, 0xea, 0x28, 0x9c, 0x3f, 0xbb, 0x12, 0xf3, + 0x71, 0x60, 0xfc, 0x08, 0xa6, 0xa3, 0x7c, 0x23, 0x70, 0xfe, 0x7d, 0x4c, 0xfb, 0xf1, 0x2b, 0x58, + 0x37, 0xf4, 0x7f, 0x80, 0xee, 0x09, 0x6c, 0xbb, 0x1f, 0xfb, 0xc7, 0x8b, 0xed, 0xfc, 0xe7, 0xc8, + 0xbf, 0xaa, 0xf3, 0xe8, 0xfc, 0x28, 0xb6, 0x6b, 0x62, 0x3f, 0x9c, 0xff, 0xfb, 0x61, 0x18, 0x7f, + 0x08, 0xfb, 0xb6, 0x1c, 0xdb, 0x50, 0x8e, 0xed, 0xfa, 0x08, 0xe7, 0xc4, 0xd9, 0x2d, 0x58, 0x67, + 0xea, 0x0b, 0x1c, 0xaf, 0x0f, 0xb0, 0x0f, 0x3f, 0x44, 0x7f, 0xdd, 0x30, 0x8e, 0xeb, 0x1b, 0x22, + 0xed, 0xff, 0xda, 0x83, 0xf5, 0x41, 0xff, 0xff, 0x9e, 0xc0, 0xb2, 0x46, 0x45, 0xd8, 0xdf, 0x60, + 0x1f, 0xff, 0xf3, 0x25, 0x76, 0x8f, 0x57, 0x60, 0x5f, 0x9d, 0xac, 0x14, 0xee, 0xa5, 0xe5, 0xd8, + 0x8e, 0x1e, 0xe1, 0xfe, 0xca, 0x41, 0xf1, 0xfb, 0x70, 0x29, 0xf6, 0x19, 0x96, 0x7d, 0xd1, 0x86, + 0x75, 0x50, 0xfe, 0xaf, 0xe8, 0x70, 0xba, 0xbd, 0x4e, 0xa7, 0xd5, 0x9d, 0x3d, 0xdf, 0x58, 0xdd, + 0xb3, 0xba, 0xab, 0x53, 0xaf, 0xd6, 0xa9, 0x74, 0xa6, 0x5a, 0xa7, 0x5b, 0xe2, 0x08, 0xcd, 0x4e, + 0xcf, 0x6c, 0x84, 0x5f, 0x9d, 0x80, 0x75, 0xa5, 0xb3, 0xef, 0x41, 0xf7, 0x93, 0xf8, 0x7c, 0x05, + 0x9f, 0x57, 0x53, 0xd9, 0xcf, 0xca, 0x85, 0xf3, 0x1b, 0xda, 0x45, 0xcb, 0xf7, 0xad, 0xfc, 0x91, + 0xee, 0x4f, 0x5f, 0x09, 0x55, 0xf7, 0x17, 0xc7, 0xbf, 0x4d, 0xf8, 0xf7, 0x3f, 0xf1, 0xef, 0x23, + 0xfc, 0x8b, 0x68, 0x7f, 0x5f, 0xc5, 0xbf, 0xff, 0x8d, 0x7f, 0xf4, 0x4b, 0x69, 0x28, 0x8c, 0xfc, + 0x14, 0xe7, 0xbb, 0xf8, 0x47, 0x61, 0x94, 0x26, 0x95, 0x27, 0x7d, 0x4b, 0xb9, 0x29, 0x4e, 0xca, + 0xbd, 0x77, 0xef, 0x57, 0xbf, 0xda, 0xd0, 0xdd, 0x95, 0xe8, 0x7e, 0xbc, 0x43, 0x7e, 0xbc, 0xbd, + 0xa5, 0xbb, 0xa7, 0x42, 0x06, 0xa4, 0x7d, 0x8c, 0xf4, 0x6d, 0x80, 0xff, 0x23, 0x4c, 0xd1, 0xd5, + 0x8b, 0x70, 0xee, 0x01, 0x23, 0xdc, 0x77, 0xa7, 0x0e, 0x14, 0xb5, 0xfe, 0x4c, 0x7d, 0x6d, 0xd0, + 0xca, 0x18, 0xd2, 0x97, 0x81, 0x7e, 0x13, 0x40, 0x96, 0x8c, 0xbf, 0xb3, 0x00, 0xa4, 0x26, 0xfc, + 0x25, 0xe1, 0x5e, 0xb3, 0xf6, 0x39, 0x4f, 0xf4, 0xdd, 0xf3, 0xd9, 0xf8, 0x20, 0x24, 0x78, 0xbe, + 0x9b, 0x53, 0x1a, 0x90, 0xc2, 0x33, 0x40, 0x16, 0xbb, 0x25, 0x83, 0x96, 0xb7, 0x41, 0x55, 0x0d, + 0x99, 0x52, 0xbe, 0xfa, 0xd5, 0xbd, 0x7b, 0xbf, 0x3e, 0xa3, 0x78, 0x73, 0xda, 0xb5, 0x3b, 0x28, + 0x06, 0xe7, 0xbf, 0xc9, 0xba, 0x5f, 0xab, 0x0a, 0xea, 0xe5, 0x69, 0x50, 0xcf, 0x4d, 0x82, 0x3a, + 0x7a, 0x1d, 0xd4, 0x81, 0xcb, 0xa0, 0xc2, 0x39, 0x98, 0x86, 0x51, 0x98, 0xc4, 0xfc, 0xae, 0x63, + 0x94, 0xcb, 0xf8, 0x9c, 0x63, 0x01, 0x4e, 0xd1, 0x51, 0xb7, 0xfb, 0xbb, 0x0b, 0xee, 0x86, 0x7b, + 0xb0, 0x16, 0xb3, 0x71, 0x44, 0x72, 0x3e, 0x32, 0x3d, 0x9b, 0x6e, 0xe5, 0xff, 0x0b, 0x7f, 0xd2, + 0x00, 0x75, 0x8c, 0xd6, 0x43, 0xe2, 0x5f, 0xaa, 0xdf, 0x53, 0xbe, 0x19, 0x3d, 0x27, 0x7c, 0x03, + 0x12, 0x25, 0x12, 0x71, 0x37, 0x6d, 0xb2, 0xdb, 0x29, 0x26, 0x45, 0xa6, 0x1e, 0xc4, 0xa1, 0x9d, + 0x6d, 0xc9, 0x9e, 0x65, 0x32, 0x1b, 0xb2, 0x24, 0xe3, 0x5d, 0xd6, 0xbb, 0x55, 0x7a, 0x40, 0x5d, + 0xfd, 0xc4, 0x13, 0xed, 0x8f, 0x3f, 0xf9, 0x24, 0x74, 0x74, 0x35, 0xb7, 0xb4, 0x0b, 0xe7, 0xea, + 0x8e, 0xc7, 0x13, 0x2d, 0xc2, 0x19, 0xc7, 0xb9, 0xd5, 0xb2, 0x5a, 0xb8, 0x9f, 0xfc, 0xe6, 0x93, + 0x9a, 0x2b, 0xbe, 0xba, 0xbd, 0x9d, 0x14, 0x66, 0x69, 0xd1, 0x7b, 0x5a, 0x7a, 0x7b, 0xb4, 0x2f, + 0x89, 0xc7, 0x9b, 0x13, 0x2d, 0x5a, 0xf8, 0xaa, 0x6f, 0xf4, 0xf4, 0x74, 0x75, 0x26, 0x52, 0x19, + 0x09, 0xaf, 0xf0, 0x25, 0xbb, 0xbb, 0x92, 0xda, 0x87, 0x27, 0x7b, 0xba, 0x35, 0x17, 0xe9, 0xda, + 0x4a, 0x85, 0x76, 0xb4, 0x74, 0x7e, 0x63, 0xd5, 0xe3, 0xdd, 0xed, 0x8f, 0xaf, 0x4a, 0x55, 0xea, + 0x4f, 0x57, 0x77, 0x36, 0xb7, 0x3c, 0xd1, 0xd5, 0xad, 0xa5, 0x7a, 0xa2, 0x5b, 0xe7, 0xa3, 0xd8, + 0x3a, 0x6f, 0x77, 0x57, 0x97, 0x56, 0x85, 0x64, 0x17, 0x2e, 0xf5, 0x16, 0x2d, 0x78, 0x75, 0x67, + 0xf2, 0x1b, 0x3d, 0x25, 0xcd, 0x2d, 0x6b, 0x57, 0x3f, 0xd1, 0x02, 0x3d, 0xab, 0x3b, 0x5a, 0xba, + 0x53, 0x9e, 0x4c, 0x82, 0xba, 0xda, 0xf0, 0xd7, 0x6b, 0x3b, 0x57, 0xe3, 0x4a, 0x7a, 0xa2, 0xbb, + 0xe5, 0x71, 0xd2, 0xeb, 0x95, 0xfa, 0x64, 0x81, 0xda, 0xaf, 0x47, 0x57, 0x37, 0x37, 0x43, 0x2b, + 0xbe, 0x4a, 0xd2, 0x6a, 0xd9, 0x52, 0x8e, 0x9b, 0x82, 0x93, 0xab, 0x7b, 0xe3, 0x1d, 0x3d, 0xba, + 0xec, 0x56, 0x3d, 0xfe, 0x64, 0x8b, 0xec, 0xeb, 0x25, 0x6d, 0x5b, 0x37, 0x6b, 0x70, 0xbb, 0x45, + 0xc5, 0xdb, 0x4d, 0x5a, 0xe7, 0xd6, 0xb4, 0x7c, 0xb3, 0xe3, 0xf1, 0x64, 0xda, 0xdb, 0xd5, 0x95, + 0x71, 0xcf, 0x2c, 0x74, 0xd5, 0xea, 0x1e, 0x8c, 0x78, 0x6b, 0x1b, 0xa8, 0x7b, 0x34, 0xcd, 0x64, + 0xdd, 0x72, 0xcf, 0xe3, 0x4f, 0xae, 0xb1, 0xe8, 0xe2, 0xb4, 0x77, 0x3d, 0xde, 0x2c, 0x37, 0xb7, + 0xc4, 0x1f, 0xff, 0x46, 0x7b, 0x8f, 0x9c, 0xec, 0x6e, 0x89, 0xb7, 0x74, 0xb7, 0x74, 0x3e, 0xd1, + 0x82, 0xed, 0xfd, 0xd4, 0x3e, 0x9e, 0x39, 0x1c, 0x99, 0xec, 0x96, 0xb5, 0xf4, 0xb0, 0xf2, 0xb1, + 0x6f, 0x24, 0x65, 0xad, 0xf3, 0x9f, 0x2c, 0x29, 0x29, 0xd1, 0x17, 0xd8, 0xdc, 0xd5, 0xd9, 0x62, + 0x81, 0x65, 0xdf, 0x7c, 0xb2, 0xa7, 0xa5, 0x43, 0x6e, 0x6c, 0xf9, 0x93, 0x6f, 0xb4, 0x3c, 0xd9, + 0x33, 0x63, 0x9e, 0xcd, 0x9c, 0x2a, 0xcd, 0x5d, 0x99, 0x9e, 0xc8, 0xc0, 0x6d, 0x2e, 0xbb, 0x42, + 0xee, 0x8a, 0xc7, 0x9f, 0x6c, 0xe9, 0x79, 0x52, 0xee, 0x59, 0xdd, 0xd3, 0xde, 0xd2, 0xb5, 0xaa, + 0x4d, 0xfe, 0x4f, 0xf2, 0xfc, 0x66, 0x0f, 0x37, 0x38, 0xe3, 0xc3, 0xaa, 0xa6, 0x3c, 0x16, 0xe8, + 0xe9, 0x4a, 0x3e, 0xde, 0x57, 0x12, 0xef, 0xea, 0xec, 0x81, 0xaf, 0xac, 0x81, 0xaa, 0xc7, 0xb1, + 0xa9, 0xed, 0xf0, 0xb5, 0xae, 0xee, 0x35, 0xab, 0xb0, 0xd5, 0xad, 0x3a, 0x97, 0xb7, 0xb5, 0xab, + 0xa3, 0xc5, 0xdb, 0xf3, 0xa7, 0xab, 0xdb, 0x5b, 0x3a, 0xbd, 0x8f, 0x77, 0x77, 0x3d, 0xe9, 0xed, + 0xee, 0xea, 0xf0, 0xa6, 0x6b, 0xe0, 0x2d, 0xf1, 0x76, 0x25, 0x5b, 0x3a, 0x85, 0x3e, 0xb7, 0x92, + 0x27, 0xe0, 0x8f, 0xd2, 0x5f, 0xfe, 0x58, 0xae, 0xed, 0x5c, 0xfb, 0x78, 0xfb, 0xea, 0xe6, 0x54, + 0x07, 0xc8, 0xe8, 0xfb, 0x46, 0x8b, 0x3c, 0x3f, 0x29, 0x3f, 0xde, 0x23, 0xcf, 0x7f, 0xd2, 0x23, + 0xb7, 0xaf, 0xee, 0x44, 0xef, 0x37, 0x2c, 0xba, 0xd2, 0xf4, 0xad, 0x9c, 0xb1, 0x6e, 0x32, 0x8b, + 0xee, 0xb3, 0x55, 0x88, 0xc6, 0xa5, 0xeb, 0x4f, 0xff, 0xfd, 0x15, 0xfa, 0xb7, 0x95, 0xdb, 0xf3, + 0x78, 0xa2, 0x7d, 0xf5, 0x93, 0x3d, 0xff, 0xee, 0xe2, 0xe5, 0x65, 0xdc, 0xaf, 0xba, 0xfa, 0x68, + 0xea, 0xfd, 0xbe, 0xc6, 0xc5, 0xd4, 0xd0, 0x6c, 0xa9, 0x90, 0x85, 0x87, 0x56, 0x55, 0x7b, 0xaf, + 0xe5, 0xf6, 0x31, 0x58, 0xaf, 0xde, 0xa7, 0xc5, 0x68, 0x6c, 0xe8, 0xea, 0xee, 0x11, 0x11, 0xe4, + 0x70, 0x17, 0x4e, 0xf8, 0x6e, 0x5d, 0xc8, 0xa7, 0x24, 0x59, 0xf0, 0xa4, 0xa6, 0x7c, 0xef, 0x96, + 0xa4, 0x33, 0xbf, 0xb0, 0x72, 0xc4, 0xd6, 0xd5, 0x9d, 0x6b, 0x22, 0xab, 0x9f, 0x4c, 0x62, 0x78, + 0x85, 0x1c, 0x7a, 0xa2, 0x67, 0xf5, 0xda, 0x16, 0xd1, 0x40, 0xea, 0x84, 0x06, 0xad, 0x57, 0xd0, + 0xb9, 0x2c, 0xd9, 0x8d, 0xc0, 0x94, 0x55, 0xf2, 0xe1, 0x3a, 0xaa, 0x6d, 0xc0, 0xd5, 0xf8, 0x24, + 0x2e, 0x98, 0xc7, 0x7b, 0x1e, 0xa7, 0xaf, 0xd8, 0xff, 0x89, 0x9e, 0x56, 0x79, 0x7e, 0xfb, 0x37, + 0xe4, 0x9e, 0x6f, 0x26, 0x5b, 0xc8, 0x31, 0x23, 0x5e, 0x6d, 0xc3, 0xd7, 0x6b, 0xab, 0xbe, 0x52, + 0xbf, 0xbc, 0xf1, 0x2b, 0x75, 0x5f, 0x5f, 0xf1, 0xe5, 0x87, 0x66, 0x7c, 0x8b, 0x74, 0x3f, 0x9e, + 0x90, 0x09, 0xc4, 0xa3, 0x1b, 0xeb, 0xe5, 0xf3, 0xb7, 0x37, 0xdd, 0x9c, 0x76, 0x59, 0x55, 0x63, + 0x75, 0x75, 0xfd, 0xd2, 0xaf, 0x44, 0xaa, 0x6f, 0x49, 0x8d, 0x5f, 0x1b, 0xbe, 0x52, 0x5b, 0xbf, + 0xbc, 0xba, 0x11, 0x3f, 0x3d, 0x7c, 0xe7, 0x4f, 0xb7, 0xa6, 0x0a, 0xd5, 0x55, 0x2f, 0x5f, 0x8e, + 0x19, 0xce, 0x6f, 0xa6, 0x16, 0xb0, 0x5e, 0x49, 0x5d, 0x84, 0xd4, 0x14, 0x91, 0xab, 0xba, 0xda, + 0xbb, 0xba, 0xbf, 0x5c, 0x2a, 0x2f, 0x7f, 0x7c, 0x55, 0x7b, 0x0a, 0x4c, 0xce, 0x88, 0xd8, 0xdc, + 0xd2, 0x8b, 0xed, 0x6d, 0x96, 0x1b, 0x53, 0xb5, 0x97, 0x17, 0xa7, 0x5d, 0xe1, 0xdb, 0xb6, 0x08, + 0x9d, 0xe9, 0x6c, 0x33, 0x29, 0xcb, 0x71, 0xac, 0x16, 0xa7, 0x5d, 0xe1, 0x94, 0xcb, 0x02, 0x7f, + 0x94, 0x4e, 0xfa, 0xc7, 0xf2, 0x57, 0x93, 0xd8, 0xe5, 0x04, 0xc4, 0x52, 0x13, 0xf6, 0x09, 0xca, + 0xe7, 0xc9, 0x5b, 0x1a, 0x57, 0x5d, 0xbf, 0xec, 0x96, 0xfe, 0xa8, 0xea, 0xfa, 0x46, 0x67, 0x0f, + 0x17, 0xb8, 0x5c, 0x8c, 0xd1, 0xcc, 0x26, 0x37, 0x20, 0xc8, 0xf0, 0xff, 0xd1, 0x1f, 0xdf, 0x12, + 0x56, 0x7e, 0x6b, 0x98, 0xe8, 0x8b, 0x96, 0xce, 0x66, 0x5a, 0x26, 0x2d, 0x9d, 0x3d, 0x88, 0xc9, + 0xde, 0x2e, 0xb7, 0x3f, 0xc2, 0xc0, 0x3f, 0x16, 0x5f, 0x74, 0x6d, 0x98, 0x31, 0x30, 0xa1, 0xba, + 0x86, 0x68, 0xe8, 0xd6, 0xcf, 0x5f, 0x41, 0x7c, 0x79, 0x59, 0x55, 0xa8, 0xfe, 0x76, 0x03, 0x57, + 0x83, 0xf3, 0xe8, 0x96, 0x70, 0xd1, 0xa2, 0x66, 0xb9, 0x9e, 0xd4, 0x44, 0x06, 0xe6, 0x3f, 0x59, + 0x29, 0x2f, 0x5b, 0xdd, 0xc7, 0x21, 0x35, 0x5d, 0xd4, 0xe8, 0x99, 0x83, 0xf6, 0xd5, 0xce, 0x35, + 0x9d, 0x5d, 0x7f, 0xda, 0x29, 0xb3, 0x97, 0xd3, 0xce, 0xf8, 0xdc, 0xd8, 0xf2, 0x24, 0xed, 0x38, + 0xda, 0x22, 0xb9, 0x69, 0x3b, 0xc8, 0xcc, 0x8c, 0xd5, 0x4f, 0x62, 0xf3, 0x7b, 0x48, 0x65, 0xa7, + 0xa6, 0x4b, 0x13, 0x97, 0x23, 0x8e, 0x6c, 0x4f, 0x6b, 0x8b, 0xa6, 0x4b, 0xd3, 0x63, 0x49, 0xb6, + 0xb7, 0xd0, 0xe6, 0xfa, 0x44, 0x7b, 0x17, 0xbe, 0x1f, 0x6f, 0x6f, 0x97, 0x05, 0x2c, 0x7a, 0x52, + 0x6e, 0xe9, 0x7d, 0xa2, 0x25, 0xd9, 0x23, 0x7f, 0x0d, 0x77, 0x3e, 0xdc, 0xd4, 0xba, 0x71, 0x61, + 0xe2, 0xd6, 0xf3, 0x64, 0x09, 0xad, 0xc8, 0xee, 0x6f, 0xf6, 0x6b, 0xb0, 0x1f, 0xab, 0xa4, 0xd5, + 0x28, 0xfc, 0x8d, 0x78, 0x5c, 0x2c, 0xdb, 0xa4, 0x68, 0x18, 0xba, 0x9a, 0x71, 0xee, 0xc5, 0xbb, + 0xba, 0x3b, 0x52, 0x53, 0x37, 0xb5, 0x9c, 0xba, 0xbe, 0x81, 0x83, 0x53, 0xd5, 0xbe, 0xfa, 0x89, + 0x35, 0xd4, 0xf5, 0x25, 0xa9, 0x81, 0xd1, 0x3e, 0x2f, 0x69, 0xf9, 0x66, 0x63, 0xb2, 0x27, 0xd2, + 0x82, 0xeb, 0x9d, 0xa7, 0xc2, 0x93, 0x2d, 0x4f, 0x3c, 0x29, 0x77, 0xac, 0x7e, 0x02, 0x81, 0xa7, + 0x7c, 0xdb, 0xa8, 0xcb, 0x92, 0x2d, 0x2d, 0x5a, 0x34, 0x8a, 0x7f, 0xfb, 0xa8, 0x9d, 0x5d, 0x58, + 0x19, 0x44, 0x61, 0x6a, 0xbf, 0x52, 0x52, 0x82, 0x9b, 0xe8, 0x82, 0x1e, 0x99, 0x7a, 0x02, 0x33, + 0xe0, 0x6d, 0xfb, 0x49, 0x7d, 0xd4, 0x65, 0x34, 0x6d, 0xea, 0xab, 0xbf, 0xd6, 0xd0, 0x58, 0x5d, + 0xb3, 0x4c, 0x6e, 0x59, 0x8b, 0xd3, 0x07, 0xa1, 0x2b, 0x77, 0x0b, 0x81, 0x9f, 0xae, 0x4e, 0x58, + 0x8e, 0x1d, 0x18, 0xff, 0x46, 0x27, 0x7b, 0x10, 0x08, 0xbb, 0x1e, 0xa0, 0x9e, 0x26, 0xd5, 0xa2, + 0xac, 0xf6, 0x15, 0x37, 0xd0, 0x9e, 0x96, 0x66, 0xdc, 0xb6, 0xbf, 0x0e, 0x7f, 0xc4, 0x63, 0xf1, + 0xc7, 0xa2, 0xe8, 0xa8, 0x40, 0x22, 0x32, 0x83, 0x5b, 0x5b, 0x5d, 0x45, 0x9b, 0x44, 0x85, 0xfc, + 0x78, 0x73, 0x73, 0x37, 0x6d, 0xb1, 0xbd, 0xb2, 0xcc, 0xdb, 0x06, 0x6f, 0xb7, 0xb2, 0xab, 0xab, + 0x7b, 0x75, 0x22, 0xe3, 0x7f, 0xc0, 0xa2, 0x1b, 0x59, 0x7d, 0x86, 0xa0, 0xdb, 0x6f, 0x6e, 0x42, + 0x1b, 0x33, 0x78, 0x41, 0x26, 0xa9, 0x1e, 0xa1, 0x81, 0xff, 0x09, 0x21, 0x10, 0xd0, 0x14, 0xab, + 0xbf, 0x3a, 0xfe, 0x4d, 0x59, 0xcb, 0x53, 0xae, 0xac, 0xfc, 0xec, 0x58, 0x46, 0xe6, 0xef, 0xf3, + 0x70, 0xfe, 0xc5, 0xd3, 0xf8, 0xbc, 0x8c, 0x4f, 0x3b, 0x3e, 0x48, 0xcb, 0xbe, 0x68, 0x85, 0xf3, + 0xbb, 0x9a, 0xe1, 0xfc, 0x77, 0x14, 0x38, 0xbf, 0xf3, 0x3a, 0x9c, 0xff, 0x2e, 0xd2, 0xcc, 0xdf, + 0x3d, 0x84, 0x0f, 0xd2, 0xc9, 0xdf, 0x45, 0xda, 0xfb, 0xbb, 0x7e, 0x7c, 0x90, 0xb2, 0xd9, 0xb5, + 0x0b, 0x1f, 0x1f, 0xc6, 0x43, 0x5a, 0xf2, 0x3b, 0xc7, 0xf1, 0x41, 0x9a, 0xf8, 0x3b, 0x1e, 0x0c, + 0x4b, 0x69, 0x07, 0xce, 0x87, 0xf3, 0x3f, 0xb6, 0xc0, 0xf9, 0xd7, 0x91, 0xc6, 0x7e, 0xfd, 0x28, + 0x9c, 0xff, 0x7e, 0x0e, 0x3e, 0x48, 0xcb, 0x7f, 0xff, 0x7b, 0x70, 0xfe, 0x87, 0x48, 0x83, 0x8f, + 0x60, 0xfa, 0x1f, 0x61, 0xfc, 0xef, 0x5f, 0x86, 0xf3, 0x3f, 0xa8, 0xc0, 0xa7, 0x0f, 0x1f, 0x2c, + 0x67, 0x18, 0xe9, 0xf6, 0xe1, 0x7a, 0x7c, 0xce, 0x61, 0xbc, 0x6e, 0x7c, 0x30, 0x6c, 0x04, 0xc3, + 0x46, 0x30, 0x6c, 0x64, 0x1c, 0xc3, 0x77, 0x65, 0x74, 0xb3, 0xfe, 0x68, 0x77, 0xc6, 0xfd, 0xe3, + 0x6e, 0xcd, 0x3d, 0x3f, 0xa5, 0x93, 0x55, 0xfb, 0x4b, 0xe9, 0x6c, 0x5d, 0x70, 0x93, 0x1e, 0xd7, + 0x94, 0xee, 0xd6, 0x79, 0x5a, 0xf8, 0x02, 0x5d, 0x3a, 0xc7, 0x8c, 0x33, 0x69, 0xe5, 0x96, 0x7b, + 0xca, 0xe5, 0xb7, 0x84, 0x04, 0x6e, 0x09, 0x61, 0xbe, 0xd2, 0xb4, 0x5e, 0xd8, 0x2c, 0xaf, 0xe4, + 0xf0, 0xd2, 0x4d, 0x1b, 0xf1, 0xb3, 0x6c, 0xfe, 0xb3, 0xfa, 0x43, 0xea, 0x4b, 0x4e, 0xb2, 0x50, + 0x9c, 0x27, 0xe4, 0x50, 0xd5, 0xfd, 0xf8, 0x9b, 0x85, 0xbf, 0xc4, 0x1f, 0x61, 0x73, 0xdc, 0xe7, + 0xbc, 0xef, 0x96, 0x34, 0xcf, 0xe0, 0xd7, 0xb6, 0x19, 0x69, 0x06, 0xb4, 0x34, 0x9b, 0xef, 0x98, + 0x66, 0x3b, 0x7e, 0x2d, 0x9b, 0x91, 0xa6, 0x4e, 0x4b, 0xb3, 0xe2, 0x8e, 0x69, 0xfe, 0x9c, 0xb4, + 0xb6, 0xcd, 0x48, 0x53, 0xa0, 0xa5, 0xb1, 0xdf, 0x31, 0xcd, 0x5f, 0xd6, 0x1f, 0x9a, 0x7e, 0x4b, + 0x9f, 0x66, 0xfa, 0x82, 0x48, 0x33, 0xfd, 0xd1, 0x1d, 0xd3, 0xfc, 0x08, 0xbf, 0xbe, 0x38, 0x23, + 0xcd, 0xb0, 0x96, 0xe6, 0xd0, 0x1d, 0xd3, 0xbc, 0x89, 0x5f, 0xe3, 0x33, 0xd2, 0xf4, 0x6b, 0x69, + 0x36, 0xde, 0x31, 0xcd, 0xdf, 0xe3, 0xd7, 0xd2, 0x19, 0x69, 0xa2, 0x5a, 0x9a, 0xc6, 0x3b, 0xa6, + 0xf9, 0xa7, 0xfa, 0x43, 0x53, 0xd3, 0x33, 0xd2, 0xe4, 0x69, 0x69, 0xe6, 0xde, 0x31, 0xcd, 0xfb, + 0x98, 0xe6, 0x84, 0x3e, 0xcd, 0xd4, 0x39, 0x91, 0x66, 0xea, 0xe2, 0x1d, 0xd3, 0x5c, 0xc5, 0xaf, + 0x3b, 0x67, 0xa4, 0xd9, 0xa7, 0xa5, 0x39, 0x70, 0xc7, 0x34, 0x2a, 0x7e, 0x5d, 0x35, 0x23, 0x4d, + 0xaf, 0x96, 0x66, 0xf0, 0x4e, 0x69, 0x9e, 0x9d, 0x8d, 0x5f, 0x4b, 0x66, 0xa4, 0x89, 0x68, 0x69, + 0xea, 0x75, 0x69, 0x88, 0x4f, 0xdb, 0x2c, 0xbb, 0x25, 0x7b, 0x22, 0x47, 0x70, 0x01, 0x4c, 0xf9, + 0xc2, 0x7b, 0x25, 0x3b, 0x49, 0x94, 0xe8, 0xbe, 0x3a, 0xd3, 0x5f, 0x73, 0xf1, 0xab, 0x53, 0xfb, + 0x3a, 0xb3, 0xbc, 0xcf, 0xd7, 0x1f, 0x9a, 0x7c, 0x43, 0x5f, 0xde, 0xe4, 0x69, 0x51, 0xde, 0xe4, + 0xbb, 0xfa, 0xf2, 0x30, 0x0d, 0xae, 0x15, 0x87, 0x5b, 0x3a, 0x97, 0x28, 0x20, 0x1f, 0x7e, 0xdf, + 0xa7, 0xfd, 0x92, 0x35, 0xd9, 0x73, 0x22, 0xee, 0x6d, 0xf2, 0x5f, 0x80, 0x31, 0x1e, 0x9b, 0x91, + 0x7f, 0x8f, 0x96, 0xff, 0x53, 0x77, 0xec, 0x83, 0x07, 0xf1, 0xab, 0x7b, 0x46, 0x9a, 0xa0, 0x96, + 0x26, 0x76, 0xc7, 0x34, 0x55, 0xf5, 0x87, 0x3e, 0xb9, 0x36, 0x23, 0x8d, 0x55, 0x4b, 0x93, 0x7f, + 0x6b, 0xbf, 0x99, 0x4e, 0xa7, 0x7a, 0xe6, 0x93, 0xeb, 0xe1, 0xbd, 0xa6, 0xd3, 0xa9, 0x7e, 0x93, + 0xef, 0xb5, 0xd2, 0x41, 0x55, 0x76, 0x02, 0x0c, 0x25, 0xab, 0x1e, 0x25, 0xb7, 0xc1, 0x98, 0x00, + 0x38, 0xb4, 0xaa, 0x90, 0xdd, 0x12, 0xba, 0xc7, 0x56, 0x01, 0xbc, 0xc1, 0x3e, 0x43, 0x1c, 0x0c, + 0x3b, 0x14, 0x80, 0xad, 0x9c, 0x46, 0x7c, 0xcb, 0x61, 0x37, 0x7d, 0xe9, 0x23, 0xdb, 0x29, 0xec, + 0xcb, 0xc2, 0x2f, 0x47, 0xd9, 0x65, 0xc4, 0xf0, 0x55, 0x8a, 0xe6, 0xcb, 0x33, 0x60, 0x29, 0x46, + 0x91, 0xb3, 0x71, 0x16, 0xc6, 0x39, 0xd3, 0x02, 0x70, 0x8c, 0x7d, 0x66, 0x8c, 0x57, 0x81, 0xf1, + 0xde, 0x26, 0x9f, 0x83, 0x72, 0x9e, 0x14, 0x39, 0x3b, 0x28, 0x67, 0x99, 0xf4, 0xcc, 0xb1, 0x8f, + 0x72, 0xbe, 0xc2, 0x2e, 0xca, 0x99, 0xb8, 0xd1, 0xaf, 0x7a, 0x67, 0x93, 0x5d, 0xf5, 0xfa, 0xbf, + 0x82, 0x5f, 0xfd, 0xe8, 0xa0, 0x62, 0xcd, 0xf8, 0x7e, 0x5c, 0xa7, 0x69, 0x4e, 0x94, 0x32, 0x61, + 0x3f, 0xd9, 0xa9, 0x5c, 0xcc, 0xf8, 0x0e, 0x1e, 0x51, 0xce, 0x66, 0x7c, 0x87, 0x4e, 0x2b, 0x6f, + 0xe9, 0x7c, 0xe3, 0xca, 0x68, 0xc6, 0xf7, 0x3f, 0x87, 0x94, 0x11, 0x9d, 0xef, 0xba, 0xf2, 0x4a, + 0xc6, 0x77, 0xb8, 0x47, 0xd9, 0xa9, 0xf3, 0x9d, 0x55, 0x36, 0xe9, 0x7c, 0xe7, 0x14, 0x50, 0xfb, + 0x32, 0xfe, 0xbf, 0x2e, 0x41, 0x7f, 0x9b, 0xce, 0x8f, 0x7d, 0xa6, 0x3e, 0xaa, 0xf3, 0x8f, 0xa3, + 0x3f, 0x96, 0xf1, 0xbf, 0x41, 0x32, 0xd5, 0x15, 0x3a, 0xff, 0x20, 0xc9, 0x58, 0xeb, 0xfc, 0xdf, + 0x47, 0xff, 0x1c, 0x21, 0x91, 0xc0, 0x37, 0x38, 0xb9, 0x72, 0x2b, 0xdb, 0x00, 0x34, 0xa7, 0xa4, + 0x4c, 0x84, 0xd6, 0x97, 0xd4, 0x48, 0x0f, 0x48, 0xf3, 0xae, 0x25, 0x5a, 0xb5, 0xb1, 0x35, 0x26, + 0x2a, 0x39, 0xe4, 0x5f, 0x12, 0xd1, 0xd4, 0xe8, 0xc2, 0x0e, 0xa5, 0x90, 0xc3, 0xae, 0x27, 0x1e, + 0x6b, 0xa9, 0x67, 0xd7, 0xef, 0x13, 0xab, 0xf8, 0xf7, 0x46, 0x7c, 0xad, 0x12, 0xcf, 0x94, 0xfc, + 0xda, 0x11, 0x7d, 0x5f, 0xef, 0x2b, 0xe4, 0xbe, 0xee, 0xd1, 0x85, 0xf4, 0x2a, 0x97, 0x32, 0xbe, + 0xd7, 0x2b, 0x94, 0x77, 0x33, 0xbe, 0x91, 0x06, 0x65, 0x4c, 0xe7, 0x5b, 0xae, 0x1c, 0xd1, 0xf9, + 0x9a, 0x94, 0xfd, 0x3a, 0xdf, 0x4a, 0xe5, 0xd5, 0x3f, 0xa4, 0x75, 0xf6, 0xeb, 0x38, 0x3f, 0x36, + 0xce, 0x6c, 0x9f, 0xfd, 0x77, 0x89, 0xe6, 0x9b, 0xdb, 0x67, 0xbf, 0x91, 0xe8, 0x6b, 0x69, 0x63, + 0xd7, 0x27, 0x09, 0x37, 0xff, 0x4e, 0x62, 0xfb, 0x4a, 0x32, 0x25, 0xbf, 0xb2, 0x4b, 0xdf, 0xbe, + 0x57, 0xae, 0xdc, 0xdc, 0xbe, 0xbd, 0xa3, 0xfa, 0xf6, 0xed, 0x3d, 0xaa, 0x6f, 0xdf, 0xff, 0xa8, + 0xd7, 0xb7, 0xef, 0x7f, 0x6c, 0xd4, 0xb7, 0x6f, 0xcf, 0xb8, 0xbe, 0x7d, 0x7b, 0xdb, 0xff, 0xb0, + 0xf6, 0xcd, 0xbb, 0x81, 0xed, 0x1b, 0x5d, 0xe5, 0x67, 0xf7, 0xef, 0xd0, 0xbd, 0x79, 0x55, 0x9e, + 0x68, 0x5b, 0x62, 0xa5, 0x68, 0x33, 0xb6, 0xf1, 0x9a, 0xf2, 0x98, 0x36, 0x86, 0xbd, 0x62, 0x04, + 0x31, 0x6c, 0x5c, 0xe9, 0x63, 0xf7, 0x14, 0xa6, 0xd9, 0xbb, 0xaa, 0x80, 0xdd, 0x9f, 0x10, 0xdf, + 0x11, 0xbb, 0x26, 0x89, 0x57, 0x40, 0x49, 0xf9, 0xa6, 0x31, 0x7c, 0x07, 0xbb, 0x54, 0xb2, 0x6b, + 0x8c, 0xe1, 0x3b, 0x32, 0x35, 0xde, 0x3c, 0x63, 0x8d, 0x3d, 0x9b, 0x2b, 0xd6, 0x18, 0x7c, 0x4f, + 0x17, 0xd6, 0xa9, 0x5f, 0x63, 0x5b, 0x9c, 0xfa, 0x35, 0xb6, 0xfb, 0x90, 0x7e, 0x8d, 0xbd, 0xfc, + 0xb2, 0x7e, 0x8d, 0xfd, 0xb7, 0x01, 0xfd, 0x1a, 0xfb, 0x5e, 0x52, 0xbf, 0xc6, 0x5e, 0xa9, 0xd7, + 0xaf, 0xb1, 0x57, 0x1a, 0xf5, 0x6b, 0xec, 0x95, 0x15, 0xb4, 0xc6, 0x3e, 0x53, 0x2f, 0xde, 0x85, + 0xfd, 0x68, 0xb1, 0xdf, 0x6b, 0x5d, 0xc7, 0x90, 0xcd, 0xc7, 0xbf, 0xc6, 0x44, 0x3e, 0xff, 0x1a, + 0xe2, 0x99, 0xd1, 0x1f, 0x1f, 0xb7, 0xe8, 0x5a, 0x39, 0x7e, 0xa1, 0x82, 0x5b, 0xe9, 0xd1, 0x85, + 0x1c, 0x50, 0x2e, 0x71, 0x89, 0xf9, 0xb1, 0x81, 0x3b, 0x95, 0xe7, 0xd4, 0xc1, 0x57, 0x43, 0x56, + 0xc2, 0xb3, 0xca, 0xa2, 0xcd, 0xc2, 0x06, 0x25, 0x57, 0x9b, 0x9f, 0x6e, 0xfa, 0x95, 0xa4, 0x78, + 0xa5, 0x7e, 0xe6, 0x79, 0xdc, 0xfa, 0x1e, 0xf6, 0x24, 0xb9, 0xec, 0x80, 0x2e, 0xe4, 0x84, 0x7e, + 0xe6, 0x15, 0xcb, 0xca, 0xbb, 0x9f, 0x75, 0x06, 0xb1, 0xe5, 0xd0, 0xa6, 0x96, 0x5c, 0xc1, 0xdb, + 0x9a, 0x08, 0xe2, 0x6f, 0xd6, 0xc8, 0x40, 0x7c, 0x95, 0xd2, 0xd8, 0x6d, 0x1a, 0x19, 0x58, 0xf5, + 0x28, 0xfa, 0x67, 0x8d, 0x0c, 0x34, 0xe7, 0x6b, 0xf5, 0xcc, 0xc0, 0xa1, 0xf1, 0xeb, 0x9d, 0xfa, + 0xfe, 0xf8, 0x4d, 0x3f, 0xd7, 0x49, 0xf7, 0xfd, 0xb7, 0x2e, 0x5d, 0x9d, 0xc6, 0x7f, 0x97, 0xaf, + 0x5b, 0x0d, 0xe3, 0xff, 0xf2, 0xa2, 0x32, 0xf6, 0x07, 0xd5, 0x70, 0x45, 0x8b, 0x4d, 0xab, 0x61, + 0x65, 0x4b, 0x13, 0xf6, 0xef, 0x2a, 0xa5, 0x93, 0xeb, 0xd7, 0x7a, 0x53, 0xfd, 0x9a, 0x74, 0x35, + 0xda, 0x70, 0x9b, 0xfa, 0xe9, 0xbe, 0x4f, 0xec, 0xd6, 0xd7, 0xef, 0xe3, 0x83, 0xfa, 0xfa, 0x7d, + 0x90, 0xa7, 0x5b, 0xad, 0xe3, 0xbf, 0x19, 0x50, 0x8e, 0x7c, 0xf6, 0x15, 0xc9, 0x2b, 0xaf, 0x79, + 0x95, 0xaf, 0x1b, 0xfb, 0xb1, 0x65, 0xae, 0xa8, 0xf5, 0x13, 0x00, 0xdf, 0x67, 0xed, 0x51, 0x2f, + 0xa2, 0xdf, 0x20, 0x2c, 0x9e, 0xe2, 0x0a, 0x39, 0x40, 0x6d, 0x43, 0xf7, 0x61, 0x74, 0xef, 0xe6, + 0x94, 0xe6, 0x44, 0xb9, 0xb6, 0x7a, 0xa5, 0x44, 0x58, 0xcc, 0x12, 0xfc, 0xbe, 0x5b, 0xb1, 0xb3, + 0x7b, 0x76, 0x22, 0xc0, 0xbf, 0x16, 0x0c, 0xdb, 0xa4, 0x54, 0x66, 0x46, 0xfc, 0x4b, 0xaf, 0xea, + 0xe7, 0x47, 0xa9, 0xa4, 0xad, 0xc0, 0x0d, 0xba, 0xb0, 0x33, 0xfa, 0x15, 0xf8, 0xe5, 0x26, 0xfd, + 0x0a, 0xf4, 0xe7, 0xeb, 0x57, 0xa0, 0xff, 0x88, 0x7e, 0x05, 0x3e, 0xb8, 0x41, 0xbf, 0x02, 0xcb, + 0x0e, 0xeb, 0x57, 0x60, 0xd9, 0xa4, 0xb2, 0xf3, 0x0f, 0xec, 0x97, 0xd8, 0x2a, 0x4f, 0x37, 0x8d, + 0x22, 0xc0, 0x96, 0x16, 0x6b, 0xba, 0x2f, 0xf6, 0xe2, 0x68, 0x66, 0x71, 0xe8, 0x06, 0x0c, 0x13, + 0x7d, 0xb2, 0x93, 0xea, 0xaf, 0xad, 0x13, 0x7f, 0x8b, 0xac, 0xad, 0x8e, 0x72, 0xd1, 0x4b, 0x08, + 0x97, 0xe5, 0xcc, 0xf8, 0x9c, 0x3d, 0xa5, 0x1f, 0xe9, 0x77, 0x7d, 0x37, 0xc1, 0xe5, 0xf1, 0xf3, + 0x15, 0xfa, 0x91, 0x3e, 0xfb, 0xa8, 0x7e, 0xa4, 0xdf, 0x3d, 0xac, 0x1f, 0xe9, 0x73, 0x3b, 0x74, + 0x70, 0x79, 0xfc, 0xdd, 0xf7, 0x75, 0x70, 0x79, 0xfc, 0xbd, 0xe1, 0xcf, 0x0e, 0x97, 0x79, 0xce, + 0x02, 0xec, 0x6a, 0xc9, 0xd7, 0x66, 0x6d, 0xb2, 0xa5, 0x3f, 0xdd, 0xda, 0x21, 0x65, 0xf9, 0x2d, + 0xeb, 0xbf, 0x6f, 0xe6, 0xfa, 0xc7, 0x16, 0xb6, 0x2a, 0x39, 0x99, 0xb2, 0x7f, 0x3a, 0xaa, 0x6f, + 0xe1, 0xe8, 0x06, 0x6e, 0x61, 0x66, 0xe7, 0x1d, 0x3f, 0xba, 0x4f, 0xdf, 0xc2, 0xbf, 0xed, 0xd4, + 0xb7, 0xf0, 0x67, 0x9b, 0xf5, 0x2d, 0x3c, 0x16, 0xd5, 0xb7, 0xf0, 0x78, 0x9d, 0xb2, 0xff, 0x0f, + 0x1c, 0x41, 0x79, 0x15, 0x59, 0xe9, 0x88, 0x76, 0x53, 0x5b, 0x1a, 0x94, 0x52, 0xad, 0x25, 0x05, + 0x5a, 0xad, 0x2b, 0xf5, 0xb5, 0xee, 0xb8, 0xac, 0xaf, 0x75, 0x67, 0xcd, 0x4d, 0x50, 0x6b, 0x7c, + 0xf5, 0x1e, 0x7d, 0xad, 0x3b, 0x76, 0xfe, 0x01, 0x50, 0x8b, 0x66, 0x4b, 0x7f, 0x6a, 0x06, 0x25, + 0xa2, 0x2d, 0x08, 0xaf, 0xb4, 0xfa, 0x15, 0xae, 0x32, 0xf3, 0xaa, 0xea, 0x53, 0xda, 0x6e, 0xaa, + 0xdb, 0x8c, 0x1e, 0x7d, 0x74, 0x5a, 0x5f, 0xb7, 0x3f, 0x6a, 0xbd, 0xb9, 0x47, 0x57, 0x56, 0xea, + 0xeb, 0xf6, 0xc7, 0xef, 0xea, 0x7b, 0xf4, 0xb1, 0x72, 0x7d, 0x8f, 0x3e, 0xf6, 0xb6, 0xbe, 0x47, + 0x95, 0x97, 0xff, 0xe0, 0x1e, 0x05, 0xd8, 0xbe, 0xaa, 0xf2, 0x26, 0x68, 0x31, 0xc1, 0xd0, 0xe2, + 0x72, 0x6a, 0xce, 0x18, 0x4a, 0x71, 0x35, 0x1c, 0xec, 0xce, 0xe6, 0x59, 0x35, 0x81, 0xb8, 0xf7, + 0x21, 0x01, 0xf7, 0x5a, 0xc0, 0x50, 0x80, 0x5f, 0xf6, 0x71, 0x4e, 0xb3, 0x12, 0xbd, 0xab, 0xf2, + 0xb5, 0x36, 0xd7, 0xb5, 0xf4, 0xe9, 0xf6, 0xfe, 0xc6, 0x34, 0x6e, 0x7e, 0x68, 0x95, 0x55, 0xeb, + 0x0d, 0x80, 0x77, 0x15, 0x67, 0x1a, 0x33, 0x1f, 0x49, 0x61, 0xe6, 0x0c, 0x97, 0x74, 0xb3, 0xfe, + 0xc9, 0xb7, 0xf4, 0xfd, 0xd4, 0x53, 0xaa, 0x41, 0x16, 0x5d, 0x8b, 0x7b, 0xce, 0xea, 0x20, 0xcb, + 0x78, 0x4f, 0xbf, 0x0e, 0xb2, 0x8c, 0xf7, 0xbc, 0xac, 0x83, 0x2c, 0xe3, 0xbd, 0xfd, 0x3a, 0xc8, + 0x32, 0xde, 0xab, 0xdf, 0xdb, 0xc7, 0x7b, 0x37, 0xe8, 0x20, 0xcb, 0x78, 0x6f, 0xaf, 0x6e, 0x6f, + 0x1f, 0xef, 0xdd, 0xa4, 0xdb, 0xdb, 0xc7, 0x7b, 0xb7, 0xcc, 0xc0, 0x9f, 0xc7, 0x7b, 0x77, 0xcd, + 0xc0, 0x9f, 0xc7, 0x7b, 0x5f, 0x21, 0xfc, 0xf9, 0xb3, 0xef, 0xfd, 0xd6, 0xe7, 0x78, 0xbf, 0xcd, + 0xcd, 0xc0, 0xb5, 0xff, 0xd4, 0xcb, 0xad, 0x9c, 0xfb, 0x6f, 0xde, 0xcd, 0xc3, 0x62, 0x35, 0x4b, + 0x92, 0xb6, 0x9b, 0x9b, 0xe2, 0x3e, 0x1d, 0xbc, 0xfa, 0x95, 0x37, 0xae, 0x87, 0xd6, 0xde, 0xfd, + 0x5c, 0x9a, 0x6e, 0xb7, 0x2f, 0xd9, 0xa3, 0x61, 0x12, 0x9f, 0x75, 0x0e, 0x49, 0x89, 0xca, 0x5b, + 0x30, 0x09, 0x6d, 0xde, 0xdf, 0x8c, 0x49, 0xd4, 0xea, 0x61, 0xe5, 0xaf, 0x1e, 0x7b, 0xf9, 0x66, + 0x4c, 0xe2, 0xb1, 0xc7, 0xf4, 0x98, 0xc4, 0x12, 0xdf, 0x67, 0x5f, 0x93, 0x5a, 0x8b, 0x97, 0xaf, + 0xca, 0x4d, 0xad, 0x44, 0x6d, 0xff, 0x7a, 0x4c, 0x91, 0x45, 0x2f, 0x24, 0x6a, 0xf8, 0x77, 0x56, + 0xbc, 0x4e, 0x0f, 0xbd, 0x5b, 0x67, 0x40, 0x89, 0xd6, 0x57, 0x6f, 0xc6, 0x23, 0x12, 0x97, 0xf5, + 0x2b, 0x71, 0xf5, 0xa0, 0x7e, 0x25, 0xae, 0x7e, 0xec, 0xb3, 0xe3, 0x11, 0x5c, 0x76, 0x56, 0xa2, + 0x7b, 0xd5, 0x1c, 0xad, 0x7f, 0x2a, 0x34, 0x88, 0x1b, 0xd1, 0x7a, 0x2e, 0xae, 0xf0, 0x17, 0xc9, + 0x9c, 0xa8, 0xe7, 0xdf, 0xd9, 0x62, 0xb7, 0x91, 0x8c, 0x58, 0x5f, 0x1d, 0x1e, 0xf8, 0xf4, 0x19, + 0x7d, 0x7d, 0x37, 0x56, 0xdc, 0x5c, 0xdf, 0x8d, 0x51, 0x7d, 0x7d, 0x37, 0x8e, 0xe8, 0xeb, 0xfb, + 0x4c, 0xee, 0x67, 0xaf, 0xaf, 0x69, 0x40, 0x55, 0xa7, 0xd5, 0xee, 0xd9, 0xb4, 0xca, 0xa1, 0x6d, + 0x6c, 0xc0, 0xb7, 0xd0, 0x6c, 0xaa, 0xff, 0x04, 0x24, 0xc8, 0x03, 0x3b, 0x3c, 0xa6, 0xfd, 0x6b, + 0xc0, 0x7f, 0x7e, 0x08, 0x67, 0x46, 0xac, 0x62, 0x42, 0x3f, 0xbe, 0x0b, 0x6f, 0xae, 0xdd, 0xaf, + 0x16, 0x1e, 0xd0, 0x8f, 0xef, 0xc2, 0x69, 0x3d, 0x8d, 0x12, 0x28, 0xfb, 0xc3, 0x7a, 0xd3, 0x60, + 0x5e, 0x25, 0xe0, 0xff, 0xac, 0xe6, 0x66, 0x6d, 0x1e, 0xb6, 0x69, 0xf0, 0x85, 0xe8, 0xaa, 0x57, + 0x95, 0x92, 0xd4, 0xfe, 0x9d, 0x86, 0x45, 0xdb, 0x95, 0x15, 0x1a, 0xcc, 0x69, 0x13, 0x10, 0x27, + 0x91, 0x14, 0xb0, 0x09, 0x77, 0x74, 0x5d, 0x2d, 0x1f, 0x4e, 0xea, 0x5b, 0xf1, 0xf0, 0x3b, 0x37, + 0x53, 0x5a, 0x15, 0x92, 0xbe, 0x15, 0x15, 0x6e, 0x7d, 0x2b, 0x2a, 0xda, 0xf4, 0x94, 0x56, 0xc5, + 0xab, 0x7a, 0x4a, 0xab, 0xe2, 0xb0, 0x9e, 0xd2, 0xaa, 0x38, 0xf5, 0x19, 0x77, 0xf4, 0x5b, 0x6c, + 0x64, 0x3d, 0x63, 0xfe, 0xd7, 0x6c, 0x64, 0xed, 0x8c, 0x7e, 0x26, 0x1b, 0x59, 0x15, 0x8e, 0xe0, + 0x83, 0xfd, 0x38, 0xa6, 0xb7, 0x5a, 0xc9, 0xea, 0x9b, 0x69, 0xf9, 0xea, 0x85, 0x09, 0x9d, 0xe5, + 0x2b, 0xca, 0xf1, 0x51, 0xfd, 0xd7, 0x67, 0x82, 0xb5, 0xc2, 0xce, 0xd5, 0x0e, 0xcd, 0x8a, 0x56, + 0x40, 0x57, 0x57, 0x5f, 0xfd, 0x8e, 0x99, 0x79, 0xed, 0x5c, 0x9e, 0xb6, 0x9f, 0xd5, 0xa7, 0xb7, + 0x9f, 0xf5, 0x4c, 0xc1, 0xcd, 0xf6, 0xb3, 0x9e, 0x71, 0xdd, 0x6a, 0x3f, 0xeb, 0x99, 0x72, 0xb2, + 0xca, 0x95, 0xf1, 0xbf, 0xb0, 0x25, 0xdd, 0x52, 0x47, 0xc9, 0xe1, 0xcf, 0x66, 0x57, 0xab, 0x69, + 0x9b, 0xb0, 0xaa, 0xb5, 0x12, 0x84, 0xbe, 0x05, 0x59, 0xb3, 0x94, 0x8c, 0xa1, 0x5e, 0xc8, 0xeb, + 0x06, 0x4f, 0x17, 0x69, 0xdd, 0x9e, 0x7a, 0x54, 0xd3, 0xb3, 0xc0, 0xe7, 0x55, 0xdc, 0x86, 0x3d, + 0x7c, 0xca, 0xd5, 0x18, 0xfe, 0x8b, 0xfa, 0x43, 0xea, 0x71, 0x39, 0xa8, 0xf5, 0x45, 0xc1, 0xfc, + 0xa0, 0xe9, 0xf4, 0xbc, 0x7e, 0x38, 0xff, 0xe2, 0x15, 0xa1, 0x73, 0x61, 0x5e, 0x0c, 0x1c, 0x29, + 0xed, 0xb6, 0x98, 0x9e, 0x4e, 0xc8, 0xcc, 0x5e, 0x09, 0xd3, 0x1b, 0x45, 0xfa, 0xd4, 0x59, 0x99, + 0xba, 0x21, 0x9d, 0xc7, 0x5c, 0x4a, 0xbf, 0xfb, 0xac, 0x96, 0x3e, 0x0c, 0x0e, 0x71, 0x7e, 0x36, + 0x71, 0x88, 0x35, 0xba, 0x50, 0x4e, 0xf7, 0xdd, 0x31, 0xa7, 0x07, 0x31, 0xa7, 0x8a, 0x99, 0x39, + 0xfd, 0xf9, 0xa1, 0x5b, 0x72, 0x4a, 0x7e, 0x86, 0x9c, 0x16, 0xd4, 0x1f, 0x9a, 0xbe, 0x3c, 0x33, + 0xa7, 0x97, 0x5e, 0xbc, 0x25, 0x27, 0xe7, 0x8c, 0x9c, 0x32, 0xbd, 0xa3, 0xcf, 0x69, 0x25, 0xe6, + 0xf4, 0x6a, 0x3a, 0x27, 0xfb, 0xfc, 0xa0, 0x74, 0x8e, 0x72, 0xfb, 0xaf, 0xe7, 0x32, 0x3d, 0x24, + 0xce, 0xfe, 0xfe, 0xf9, 0x4c, 0x3a, 0xb7, 0xdb, 0xf4, 0xd5, 0xe6, 0xed, 0xa9, 0xf3, 0xd1, 0xe9, + 0xa6, 0x99, 0xf5, 0x7a, 0xb9, 0xf1, 0xe6, 0x7a, 0xfd, 0xf3, 0xd6, 0x3b, 0xd4, 0xab, 0x46, 0x9c, + 0x6b, 0xd3, 0xa8, 0x4d, 0xe7, 0xea, 0x47, 0x4d, 0x72, 0x72, 0x4e, 0x67, 0x6f, 0x3b, 0x6a, 0x99, + 0xf4, 0x65, 0x99, 0xf4, 0x53, 0xa7, 0x66, 0xa4, 0xb7, 0x53, 0xfa, 0xff, 0xf6, 0xd4, 0xbf, 0x32, + 0xea, 0x36, 0x91, 0x3e, 0x7d, 0xb2, 0xbc, 0x75, 0x66, 0x4b, 0xbe, 0xe7, 0xb9, 0xb9, 0x25, 0xef, + 0x1f, 0xbd, 0xc3, 0x58, 0xc5, 0x32, 0x39, 0xf1, 0xb9, 0x76, 0x64, 0x66, 0x4e, 0xff, 0x3d, 0x72, + 0x4b, 0x4e, 0x7d, 0x77, 0xc8, 0xc9, 0xad, 0xcb, 0x89, 0x2c, 0x8d, 0xdc, 0x98, 0x99, 0xd3, 0x2b, + 0xa5, 0xb7, 0xe4, 0xe4, 0xbb, 0x5d, 0x4e, 0xb8, 0x0e, 0xf9, 0xfc, 0x3f, 0x75, 0xa2, 0x3f, 0x39, + 0x32, 0x33, 0x9f, 0xff, 0x61, 0xba, 0x39, 0x9f, 0xff, 0x33, 0xf1, 0x29, 0xf9, 0xfc, 0x7d, 0xea, + 0x36, 0x61, 0xb2, 0xed, 0xa6, 0x7c, 0xb6, 0xdf, 0x92, 0xcf, 0xcb, 0x77, 0x68, 0x59, 0x34, 0x33, + 0x0b, 0xe9, 0x2e, 0x63, 0x52, 0x9e, 0x99, 0xd3, 0xab, 0x4d, 0xb7, 0xe4, 0xb4, 0xe2, 0x53, 0x6a, + 0xb4, 0x3d, 0x75, 0x8f, 0xf2, 0xc9, 0x99, 0x99, 0xf9, 0xfc, 0xc5, 0x2d, 0x6b, 0xf5, 0xff, 0xe4, + 0x7c, 0xda, 0x0a, 0xd3, 0x72, 0xfa, 0x11, 0xe6, 0x74, 0xd3, 0xf8, 0xef, 0x91, 0x6f, 0xce, 0xe9, + 0xc2, 0x9d, 0xc6, 0x3f, 0x57, 0x97, 0xd3, 0x5f, 0x62, 0x4e, 0x37, 0x8d, 0xff, 0x9e, 0xdd, 0xb7, + 0xe4, 0x74, 0xa7, 0xf1, 0xb7, 0xe8, 0x72, 0xfa, 0x73, 0xd2, 0x9c, 0x39, 0x33, 0xa7, 0xbf, 0x74, + 0xde, 0x92, 0x93, 0xef, 0x0e, 0x39, 0xe5, 0xe9, 0xfa, 0x9b, 0x74, 0x70, 0x0e, 0xdf, 0x94, 0xd3, + 0xb1, 0x9b, 0x73, 0xfa, 0xd5, 0xfb, 0x77, 0xc8, 0xc9, 0x2a, 0xee, 0xfa, 0x52, 0xb7, 0x77, 0x37, + 0xe2, 0x33, 0x73, 0xda, 0xbb, 0xf6, 0x96, 0x9c, 0x76, 0xdf, 0x21, 0x27, 0x9b, 0xae, 0x4e, 0x7f, + 0x86, 0x39, 0x15, 0xce, 0xcc, 0xe9, 0xb5, 0xbc, 0x5b, 0x72, 0x6a, 0xd4, 0xe7, 0x44, 0x7a, 0xac, + 0x32, 0xb6, 0x73, 0xa6, 0x57, 0xdd, 0x72, 0x57, 0x79, 0x6a, 0x86, 0x9e, 0x1f, 0x37, 0xac, 0x8c, + 0xed, 0x85, 0xa1, 0x78, 0x6e, 0x5a, 0x9a, 0x2c, 0x3e, 0x3f, 0x08, 0x43, 0x09, 0x30, 0x04, 0x31, + 0x7c, 0x4b, 0xbc, 0x40, 0x6e, 0x83, 0xa1, 0xa4, 0x2f, 0xfd, 0xb5, 0x1b, 0xbf, 0x6e, 0x21, 0x3d, + 0x14, 0xb1, 0x36, 0xd8, 0x15, 0x2f, 0x09, 0xfd, 0x1e, 0xeb, 0xba, 0x3a, 0xa9, 0xda, 0xdb, 0x60, + 0x4b, 0x77, 0xda, 0x7a, 0xe3, 0x74, 0x84, 0xa4, 0x1c, 0x61, 0x1a, 0xf7, 0x67, 0x03, 0xec, 0xc2, + 0x1c, 0xb6, 0xcc, 0x6f, 0x45, 0xdc, 0xab, 0x15, 0x73, 0x7c, 0x31, 0x5e, 0xca, 0xb2, 0x47, 0xe3, + 0xfb, 0xae, 0x61, 0x4e, 0x2f, 0x92, 0x3c, 0x19, 0xbc, 0x4d, 0x31, 0xe6, 0x05, 0xc1, 0x45, 0xbf, + 0x5f, 0xea, 0x87, 0xd9, 0x6c, 0x11, 0x61, 0x4b, 0x3a, 0xb7, 0xf2, 0x58, 0x9b, 0xf4, 0x46, 0xdc, + 0x56, 0x75, 0x11, 0xec, 0xa4, 0x73, 0x68, 0x7a, 0x17, 0xe5, 0x2b, 0xbd, 0x11, 0xdb, 0x2b, 0x05, + 0xe2, 0xa4, 0xdf, 0x73, 0x25, 0xe6, 0xfe, 0xa2, 0x14, 0xc0, 0xdc, 0xdb, 0xe3, 0x4d, 0x33, 0xda, + 0x91, 0x4c, 0xf4, 0xca, 0x41, 0x9d, 0x74, 0x7d, 0xb7, 0x3d, 0x88, 0xa1, 0x3d, 0x89, 0x55, 0x5c, + 0xef, 0xb5, 0x49, 0xc3, 0x4d, 0x75, 0x8e, 0x61, 0x6e, 0x3d, 0x5c, 0xd7, 0x76, 0xb9, 0x4d, 0x2a, + 0xb1, 0x05, 0xd4, 0x09, 0x8c, 0x41, 0xf2, 0x8a, 0x87, 0xb1, 0xb4, 0xb2, 0x78, 0x0e, 0xd7, 0xfd, + 0x57, 0xcf, 0x8c, 0x35, 0x91, 0x2e, 0xf8, 0x42, 0x2c, 0x71, 0x47, 0x7c, 0x8e, 0x08, 0x1b, 0xb5, + 0x51, 0x58, 0xda, 0x12, 0xa5, 0x89, 0x6d, 0xc7, 0xa7, 0xf5, 0x22, 0x91, 0x14, 0xac, 0xf7, 0x61, + 0x2a, 0x29, 0xda, 0x29, 0x45, 0x11, 0x96, 0x77, 0x86, 0x3e, 0x92, 0xd6, 0x16, 0x47, 0xa5, 0xa7, + 0xc2, 0xdf, 0x97, 0xfa, 0xd0, 0xdd, 0x87, 0xee, 0xb5, 0xc5, 0xfd, 0xf0, 0xab, 0xf2, 0x5e, 0x69, + 0x33, 0xfe, 0x9e, 0x7f, 0x76, 0xbd, 0xf4, 0x52, 0x71, 0xbd, 0xf4, 0x6a, 0xc3, 0x36, 0x99, 0x6b, + 0x68, 0x76, 0x81, 0x49, 0x6a, 0x4e, 0xb0, 0x5d, 0x90, 0x67, 0xbf, 0x9d, 0xb2, 0x0b, 0x82, 0x29, + 0x07, 0xe9, 0x8e, 0x3a, 0x69, 0xd0, 0xf4, 0x59, 0x9e, 0x63, 0x4d, 0x88, 0x5d, 0x50, 0x4e, 0x7a, + 0x13, 0x9f, 0xfd, 0x4b, 0xc8, 0x0b, 0x5d, 0x34, 0x8d, 0x7a, 0xa3, 0x50, 0xc0, 0xfe, 0x61, 0x92, + 0x1c, 0x34, 0x1d, 0x45, 0x3f, 0xeb, 0x55, 0x7c, 0xf6, 0x6f, 0xc1, 0x81, 0xfe, 0xe3, 0xe8, 0x77, + 0x85, 0x7f, 0x00, 0x1e, 0x7c, 0x7c, 0x33, 0x4a, 0xb3, 0x79, 0x79, 0xad, 0x3d, 0x7b, 0x36, 0xa5, + 0x93, 0x81, 0xec, 0x74, 0x3e, 0xfb, 0x9b, 0x9b, 0xec, 0x74, 0x36, 0x25, 0xc0, 0x08, 0xf4, 0x65, + 0x8b, 0x41, 0x6f, 0xd9, 0xd3, 0x09, 0xf8, 0x6d, 0x65, 0x3c, 0x4f, 0xb4, 0xdb, 0xeb, 0x86, 0x26, + 0x84, 0xfa, 0xcd, 0x2c, 0x71, 0x79, 0x8a, 0x63, 0xe7, 0xde, 0x64, 0x07, 0x74, 0x79, 0xdc, 0x91, + 0x8e, 0xbb, 0x72, 0xf1, 0x8d, 0x29, 0xc2, 0x96, 0x32, 0x69, 0x19, 0xbf, 0xc2, 0xb4, 0x3b, 0x39, + 0xed, 0xbc, 0x9b, 0xd2, 0x36, 0xc7, 0x7d, 0xe9, 0xb8, 0xcb, 0x17, 0xdf, 0x98, 0x9c, 0xd4, 0xa5, + 0x5d, 0x79, 0x4b, 0x3e, 0x48, 0xf9, 0x67, 0xd5, 0x73, 0x3e, 0x3e, 0x7d, 0x3e, 0x0e, 0xaa, 0xb1, + 0x12, 0x0f, 0xa4, 0x63, 0x37, 0x63, 0x4e, 0x23, 0xba, 0xd4, 0xcb, 0x3f, 0x35, 0x57, 0x59, 0x01, + 0xe9, 0x3a, 0xcd, 0xac, 0x2d, 0x01, 0xec, 0x21, 0xd2, 0x8e, 0xf5, 0x36, 0x62, 0x57, 0x63, 0x3c, + 0xd7, 0x86, 0x75, 0x21, 0x27, 0x43, 0x1f, 0x43, 0x1e, 0xfb, 0x76, 0x90, 0xa6, 0x22, 0xe9, 0x68, + 0xb2, 0xe4, 0x36, 0x3a, 0xbf, 0x48, 0x6e, 0x74, 0xaf, 0x56, 0x02, 0x60, 0x3d, 0x02, 0xa9, 0xf2, + 0xa2, 0x6d, 0xc6, 0x0b, 0x3a, 0x77, 0xaf, 0xce, 0xfd, 0xfd, 0xfa, 0xe7, 0xe7, 0xf7, 0xc3, 0xf8, + 0xc9, 0x8b, 0xb0, 0x37, 0xbc, 0x17, 0xbe, 0x3f, 0x3f, 0x06, 0x23, 0xa1, 0x8b, 0xf0, 0xbd, 0xf9, + 0x51, 0x78, 0x09, 0xfd, 0x07, 0xd0, 0x3d, 0x81, 0xee, 0xcb, 0xe8, 0xbe, 0x84, 0xee, 0x4b, 0xe8, + 0x9e, 0x60, 0x9d, 0x9c, 0x7f, 0x25, 0xd2, 0xc3, 0xa1, 0x4c, 0x5e, 0x70, 0xad, 0xfe, 0xf9, 0xd0, + 0x45, 0x83, 0x63, 0x7e, 0xd4, 0xe0, 0x09, 0xef, 0x35, 0xb8, 0xd0, 0xed, 0x42, 0x37, 0xce, 0x97, + 0xec, 0x39, 0xf3, 0xa3, 0xd9, 0xf6, 0xf0, 0xde, 0xec, 0xb9, 0xe8, 0x9e, 0x8b, 0xee, 0x39, 0xa9, + 0x34, 0x86, 0xd2, 0x4c, 0x7a, 0x83, 0x22, 0x30, 0xe5, 0x54, 0xde, 0x86, 0xad, 0xba, 0x6f, 0x87, + 0x75, 0xee, 0x8b, 0x58, 0x0e, 0xf6, 0xd0, 0x33, 0x74, 0x0b, 0x5e, 0x90, 0x04, 0x7b, 0xf0, 0x97, + 0xa3, 0xf8, 0xef, 0xe7, 0xbf, 0xfc, 0x79, 0xd5, 0xaf, 0xb3, 0xfc, 0x55, 0x57, 0x76, 0x81, 0x7d, + 0xe8, 0x7e, 0x96, 0x0b, 0xc3, 0xb7, 0x19, 0xcc, 0x8d, 0x03, 0xa1, 0x09, 0xb0, 0x76, 0xdf, 0x35, + 0x32, 0x10, 0x3f, 0xfd, 0x60, 0xff, 0x7f, 0xfd, 0xaf, 0x59, 0x07, 0x6f, 0x5d, 0x1f, 0x5b, 0x1e, + 0x49, 0xad, 0x8f, 0x19, 0xeb, 0x15, 0x0c, 0x8f, 0xea, 0xd7, 0x2a, 0xfa, 0x63, 0xb7, 0x49, 0xfb, + 0x8d, 0x19, 0x69, 0xc7, 0x7f, 0x5f, 0x98, 0xb4, 0x45, 0x83, 0x64, 0x71, 0xf6, 0x0b, 0xc9, 0x9e, + 0x40, 0x7a, 0xae, 0x44, 0x11, 0x83, 0x1a, 0x25, 0xe8, 0x65, 0x30, 0x85, 0xf7, 0x9a, 0xf6, 0x87, + 0x25, 0xc2, 0xf6, 0xa5, 0x76, 0x59, 0x1a, 0x1b, 0xc4, 0x7f, 0x03, 0x63, 0x03, 0x26, 0xa4, 0xcd, + 0xb2, 0xfd, 0xd1, 0x6e, 0x33, 0xd4, 0x3f, 0xdf, 0x38, 0xd8, 0xb4, 0x2d, 0x29, 0x0f, 0x0f, 0xc6, + 0xcf, 0xf1, 0xec, 0xf8, 0x2e, 0x41, 0x94, 0x29, 0x65, 0x7e, 0xd0, 0xf8, 0x6a, 0x78, 0xaf, 0x71, + 0x2f, 0x87, 0xfd, 0x45, 0x3a, 0xec, 0x2c, 0x86, 0x89, 0x78, 0x07, 0x52, 0x61, 0xd9, 0xb9, 0xd8, + 0xdb, 0xf9, 0x61, 0x84, 0x82, 0xb7, 0xa9, 0xef, 0xd1, 0x74, 0x7d, 0xdd, 0x12, 0xc2, 0x56, 0xac, + 0xc7, 0xaf, 0xc2, 0x48, 0x8d, 0x60, 0xfd, 0x2e, 0x88, 0x10, 0x76, 0x4f, 0xf0, 0x1e, 0xb2, 0x57, + 0xba, 0x90, 0x58, 0x8e, 0x3b, 0x49, 0x03, 0xae, 0xfa, 0x33, 0xf3, 0xa3, 0xa6, 0x73, 0x58, 0xf7, + 0xb3, 0xe8, 0x3e, 0x8b, 0xee, 0x33, 0xa9, 0x11, 0x31, 0x5d, 0xa8, 0x3f, 0xf4, 0xfb, 0xb7, 0xb0, + 0x06, 0xbf, 0xfa, 0x91, 0xcb, 0x1e, 0xf3, 0x54, 0x61, 0x1d, 0x7a, 0x6f, 0x82, 0x42, 0xbc, 0x6f, + 0x6e, 0x79, 0x3f, 0x55, 0xb2, 0x62, 0x4c, 0x41, 0xbb, 0x3a, 0xd2, 0xf1, 0x2a, 0xf3, 0xfe, 0xe2, + 0xa3, 0xfd, 0x05, 0xf7, 0x9d, 0x3c, 0x3b, 0x42, 0x67, 0xe7, 0x6a, 0xc8, 0xc1, 0xbd, 0x26, 0xcf, + 0xee, 0x86, 0x02, 0x84, 0xed, 0x85, 0xe1, 0x36, 0x90, 0x63, 0xaf, 0x81, 0x27, 0xee, 0x43, 0xaa, + 0xd1, 0xbf, 0x7f, 0x20, 0xee, 0x32, 0x3f, 0x40, 0xf2, 0x0d, 0x71, 0xd9, 0x6b, 0x16, 0x76, 0xdd, + 0x69, 0x9c, 0x0a, 0x56, 0x88, 0x9d, 0x8f, 0xa0, 0xea, 0x83, 0x41, 0x90, 0x23, 0x6d, 0xa4, 0x39, + 0xcf, 0x6a, 0x64, 0x79, 0x40, 0xd2, 0x91, 0x6e, 0x61, 0x1a, 0x94, 0x65, 0x85, 0xe3, 0x26, 0xa6, + 0x44, 0xa3, 0x48, 0x3b, 0xb9, 0x90, 0x76, 0x9a, 0xc5, 0x3a, 0x47, 0xb2, 0x71, 0x96, 0x58, 0xa8, + 0xce, 0x90, 0x93, 0x30, 0x2b, 0x1e, 0x3e, 0xdd, 0x74, 0x16, 0xd5, 0xaa, 0x57, 0x8a, 0x62, 0xea, + 0xb5, 0xa2, 0xa8, 0x7a, 0x03, 0x29, 0xcf, 0x0e, 0xf5, 0xdd, 0x68, 0x9f, 0xda, 0x40, 0xe5, 0x39, + 0x77, 0xf8, 0x8a, 0xd5, 0x69, 0xa6, 0x98, 0x49, 0xbb, 0x5e, 0x87, 0x7a, 0xda, 0xd3, 0xa1, 0x9e, + 0x21, 0x29, 0x33, 0x61, 0x73, 0x28, 0x40, 0x1a, 0x43, 0xca, 0xe5, 0x35, 0xd8, 0x1e, 0x17, 0xd0, + 0x9e, 0xea, 0x77, 0xe1, 0x5e, 0x21, 0x34, 0x25, 0xb0, 0x15, 0xbc, 0x5f, 0x99, 0x9b, 0x52, 0x76, + 0xc6, 0x24, 0x07, 0xcb, 0x37, 0x7a, 0xc4, 0x49, 0x98, 0x56, 0xab, 0x7b, 0x48, 0x5f, 0x10, 0xd6, + 0xab, 0x81, 0x4f, 0x26, 0x2f, 0x21, 0x4c, 0x58, 0x42, 0x7b, 0x34, 0x12, 0xce, 0x1e, 0xac, 0x63, + 0x41, 0xdc, 0xe2, 0x5e, 0x03, 0xfe, 0x05, 0x75, 0xe0, 0x57, 0xa4, 0xff, 0xf2, 0xf7, 0x7f, 0xf5, + 0xf7, 0x38, 0xbb, 0x72, 0xc2, 0xaf, 0x65, 0x1d, 0x23, 0xed, 0x1a, 0x09, 0x3b, 0x69, 0x28, 0x0a, + 0xff, 0x85, 0x37, 0x40, 0x42, 0x22, 0xde, 0xbb, 0xa9, 0xb4, 0xfc, 0x4e, 0xb9, 0x03, 0x4a, 0xe6, + 0xb5, 0xc2, 0x1c, 0x60, 0xfb, 0x9e, 0xb0, 0x0f, 0x40, 0x06, 0x28, 0x70, 0x7b, 0x0c, 0x52, 0xac, + 0xdd, 0x60, 0x4a, 0x18, 0xdd, 0x45, 0xd2, 0x84, 0xc3, 0x03, 0x25, 0xb2, 0x07, 0x5a, 0x13, 0x66, + 0x39, 0x8c, 0xbb, 0x6c, 0xbe, 0x62, 0xb6, 0x87, 0xef, 0x5f, 0x4d, 0x69, 0x62, 0xa4, 0xef, 0x6c, + 0x9f, 0x5c, 0x04, 0xe5, 0x09, 0x79, 0xff, 0x40, 0xa2, 0x50, 0x0e, 0x3b, 0x70, 0xa5, 0x2d, 0xfd, + 0x3d, 0x8c, 0x4f, 0xbd, 0xa2, 0xb0, 0xa5, 0x53, 0x47, 0x63, 0xd3, 0x36, 0x96, 0x7e, 0xbc, 0xb2, + 0x20, 0x0c, 0xe5, 0xb1, 0xa7, 0xe3, 0x94, 0xe3, 0x05, 0x39, 0x30, 0x90, 0x35, 0x64, 0x93, 0xab, + 0xab, 0x3e, 0x06, 0x0f, 0xb5, 0x60, 0xaa, 0x9b, 0x6c, 0x86, 0x39, 0x8c, 0x88, 0x91, 0x90, 0xde, + 0x52, 0x97, 0x3d, 0xec, 0x58, 0x2d, 0x45, 0x78, 0x3c, 0xea, 0xe4, 0x36, 0x75, 0xf2, 0x66, 0x5d, + 0x8d, 0x38, 0x03, 0xfd, 0x6c, 0x13, 0xc6, 0x47, 0xad, 0x08, 0x6f, 0xf6, 0xde, 0x25, 0x87, 0xbd, + 0x2e, 0x29, 0xca, 0xbe, 0x11, 0xd2, 0x38, 0x89, 0x35, 0x8c, 0x4a, 0xd1, 0xff, 0xd0, 0x0a, 0xd9, + 0xd0, 0x80, 0xef, 0x59, 0xf0, 0x08, 0x5b, 0x25, 0x62, 0x0b, 0x82, 0xd3, 0x2b, 0xb9, 0x3f, 0x02, + 0xd8, 0x3f, 0x2b, 0xa5, 0xd7, 0x55, 0xf5, 0x3d, 0x15, 0x77, 0x37, 0x96, 0x8c, 0xc6, 0x71, 0x90, + 0xb8, 0x67, 0xc6, 0x3d, 0xc7, 0xe5, 0x62, 0x20, 0x4d, 0x8b, 0x79, 0xc3, 0xfb, 0xa0, 0x04, 0xf7, + 0x31, 0xd2, 0xd5, 0x41, 0x73, 0x6a, 0xfc, 0x93, 0x0b, 0xc2, 0xf6, 0x64, 0x3a, 0xbe, 0x55, 0xc4, + 0xe7, 0x18, 0xd8, 0x53, 0xe9, 0x38, 0xb2, 0x37, 0x8b, 0xfb, 0x78, 0x8e, 0x3d, 0xc8, 0xa7, 0x0a, + 0x73, 0x3f, 0xd7, 0x0f, 0x59, 0x60, 0xfc, 0x32, 0xe1, 0x34, 0xa6, 0xfb, 0xeb, 0xc0, 0x12, 0xfa, + 0x35, 0xe4, 0x54, 0xfd, 0x1a, 0x72, 0x59, 0x7e, 0x7a, 0x9f, 0x36, 0x82, 0x1e, 0x6c, 0x97, 0x95, + 0x47, 0xc9, 0x88, 0xa3, 0x64, 0x15, 0xa3, 0xa4, 0xe4, 0xde, 0x5a, 0x1e, 0xd5, 0xad, 0xee, 0xbd, + 0xfe, 0x80, 0x66, 0x29, 0xe9, 0xab, 0xea, 0x84, 0x97, 0xf4, 0xdf, 0x4f, 0xf2, 0x59, 0x48, 0x01, + 0x59, 0x4d, 0x8c, 0xf6, 0x4d, 0x6d, 0xa6, 0xf4, 0x0b, 0x48, 0xff, 0xb8, 0xcd, 0x43, 0x7a, 0x20, + 0x34, 0x1d, 0xd9, 0x50, 0xe1, 0x88, 0x6a, 0x56, 0x56, 0x4a, 0x17, 0x7f, 0x24, 0x45, 0xe5, 0x25, + 0x19, 0x0b, 0x24, 0xa1, 0x4b, 0xd2, 0x5a, 0x5c, 0xb5, 0xa9, 0x9d, 0xc4, 0x96, 0x34, 0xac, 0xdb, + 0x8b, 0xbb, 0x7a, 0x26, 0xc6, 0x31, 0x71, 0x76, 0x20, 0x6c, 0x71, 0x39, 0x6a, 0x39, 0x97, 0x56, + 0x96, 0xb6, 0x5f, 0xd5, 0x0b, 0xe5, 0x20, 0xad, 0xfe, 0x58, 0x05, 0xdb, 0xe2, 0x09, 0xa8, 0xcc, + 0x9c, 0xca, 0xb0, 0x75, 0xa8, 0xd9, 0x54, 0xef, 0xff, 0x6c, 0x75, 0xe6, 0x98, 0xd6, 0x03, 0x18, + 0x4a, 0xe5, 0xaa, 0x4c, 0x99, 0x02, 0x72, 0x2b, 0x92, 0x33, 0xe4, 0x87, 0xe1, 0x0d, 0x09, 0xb3, + 0xfd, 0x73, 0x8d, 0x03, 0xb1, 0x75, 0xf1, 0xcb, 0x8e, 0xe7, 0x9d, 0x9b, 0x75, 0xf1, 0x8e, 0xe1, + 0xaa, 0x0a, 0xfb, 0x24, 0xa1, 0x59, 0x89, 0xca, 0x5f, 0x54, 0xe9, 0x8a, 0x3a, 0x6b, 0x4b, 0xc0, + 0x6d, 0x90, 0x63, 0x8e, 0x9c, 0x11, 0x21, 0x33, 0x9b, 0x53, 0x6e, 0x88, 0x1e, 0x25, 0xb8, 0xaa, + 0x59, 0x6a, 0x9b, 0x76, 0xc7, 0x78, 0x26, 0x05, 0x11, 0x42, 0x18, 0xc1, 0x16, 0xcf, 0x53, 0xca, + 0x60, 0xb5, 0x0d, 0xc0, 0x66, 0x7f, 0xa4, 0x71, 0x80, 0x57, 0xbe, 0x91, 0xb0, 0xad, 0xe1, 0xea, + 0xf8, 0x44, 0xf5, 0x04, 0x42, 0x8b, 0x3d, 0x20, 0xc7, 0xed, 0x4a, 0x85, 0xd4, 0x4a, 0xed, 0x90, + 0x1b, 0x1a, 0x07, 0x58, 0x2f, 0xa9, 0x49, 0x31, 0xcb, 0x4b, 0x38, 0xd6, 0xfb, 0xd5, 0x97, 0xa0, + 0xf2, 0xbf, 0xfc, 0x3d, 0xe3, 0xda, 0x86, 0x45, 0x86, 0x70, 0x82, 0x6c, 0x62, 0xb3, 0xdc, 0x30, + 0xb6, 0x8e, 0x5a, 0x22, 0x3d, 0x43, 0x12, 0x63, 0x1e, 0xc9, 0xb4, 0x91, 0xdb, 0x59, 0x93, 0x69, + 0x27, 0xb5, 0xd1, 0x11, 0x2a, 0x83, 0xe1, 0x67, 0xb0, 0x8d, 0xb9, 0xa2, 0x8d, 0x94, 0xab, 0x22, + 0xc9, 0x21, 0xbb, 0x2d, 0x61, 0xc2, 0xb2, 0xaa, 0xe3, 0x57, 0xe5, 0xed, 0x8e, 0x67, 0x79, 0x86, + 0x9a, 0x62, 0xaf, 0x83, 0x9c, 0x28, 0x61, 0x7a, 0x0c, 0x29, 0x29, 0xaf, 0x51, 0x94, 0x54, 0x8d, + 0xeb, 0xab, 0xe8, 0x70, 0xfd, 0x76, 0x41, 0x5f, 0xb1, 0x5e, 0x15, 0x51, 0x03, 0xb2, 0x2a, 0x58, + 0xae, 0x2b, 0x0f, 0xfb, 0x6b, 0xad, 0xea, 0xcb, 0x22, 0x9d, 0x45, 0x99, 0x71, 0x77, 0xd6, 0xcb, + 0x9d, 0xd2, 0x68, 0x32, 0xb3, 0x13, 0x05, 0xd8, 0x3e, 0x79, 0x19, 0xe6, 0x15, 0xd0, 0xe6, 0xb8, + 0x5a, 0x5e, 0xf8, 0x1f, 0xfa, 0x71, 0xe5, 0x98, 0x1f, 0xee, 0xc7, 0x01, 0x65, 0x9e, 0x02, 0xee, + 0x41, 0xd2, 0xb5, 0xfd, 0xa8, 0x62, 0xc4, 0xf5, 0xbe, 0xe1, 0x81, 0x20, 0xe4, 0x3c, 0x10, 0x03, + 0x8f, 0x6c, 0x15, 0xb3, 0x81, 0xb0, 0x46, 0x67, 0x94, 0xf4, 0x67, 0x27, 0xad, 0x19, 0x9c, 0x38, + 0xad, 0x7b, 0x3d, 0xcb, 0x2e, 0xe9, 0xc2, 0x20, 0x91, 0xe3, 0x78, 0x9e, 0x34, 0xde, 0xcc, 0xaf, + 0x02, 0xa3, 0x73, 0xb3, 0x42, 0x3a, 0xd8, 0xad, 0x99, 0x13, 0xaa, 0x94, 0x6d, 0x21, 0xd2, 0x9e, + 0xad, 0xd9, 0xbd, 0x9d, 0xed, 0x06, 0x67, 0x27, 0xac, 0xd4, 0xec, 0x85, 0xbc, 0x95, 0xb4, 0x74, + 0x1b, 0xa2, 0xa1, 0x4c, 0x8e, 0x2e, 0x61, 0x1f, 0x88, 0xf0, 0x13, 0x86, 0x27, 0x93, 0x15, 0x58, + 0x3f, 0xe2, 0x9b, 0xda, 0x69, 0x0f, 0xc7, 0x06, 0xe3, 0x2b, 0xcd, 0xd9, 0x54, 0x7b, 0xdc, 0x37, + 0x9a, 0x94, 0x86, 0x87, 0x69, 0xfd, 0x91, 0xd5, 0xf4, 0xa6, 0x6e, 0x23, 0xc7, 0x0d, 0x3a, 0x81, + 0x7d, 0x20, 0x7c, 0x0e, 0x70, 0x21, 0x3e, 0x26, 0x47, 0xba, 0xcd, 0xc2, 0x6f, 0x97, 0x1c, 0x59, + 0x6b, 0x3f, 0x27, 0x20, 0x07, 0x69, 0xfe, 0x43, 0x2c, 0x9f, 0x2c, 0xdf, 0x8a, 0xb4, 0x7e, 0xa5, + 0xd4, 0xf5, 0x2d, 0xcc, 0xdd, 0x90, 0x70, 0x52, 0x1e, 0xa4, 0x9f, 0x96, 0x6c, 0xf1, 0x94, 0xbb, + 0x91, 0x9e, 0x3b, 0x5a, 0xe1, 0x86, 0x9c, 0xe8, 0xcf, 0x58, 0xeb, 0x95, 0xfa, 0xc2, 0x09, 0x5e, + 0xe5, 0xe3, 0xb2, 0x55, 0xb1, 0xd9, 0xeb, 0x92, 0x96, 0x4c, 0x6b, 0xc9, 0xda, 0xcd, 0xca, 0x49, + 0x41, 0x77, 0x15, 0x47, 0xa1, 0x57, 0xe8, 0x63, 0x66, 0x1d, 0xdb, 0xa5, 0x6e, 0x70, 0xe5, 0x44, + 0x8f, 0x44, 0x7f, 0x2a, 0x1b, 0x06, 0x9e, 0x26, 0xba, 0x05, 0x6b, 0x5a, 0x45, 0xf6, 0xd9, 0x10, + 0x5b, 0x8f, 0xe0, 0xc8, 0xed, 0x71, 0x40, 0x72, 0x7a, 0x78, 0x30, 0x71, 0x11, 0xe9, 0x0c, 0x15, + 0xb1, 0x03, 0xeb, 0x89, 0x1f, 0x40, 0xe1, 0x8a, 0x23, 0xd1, 0xc1, 0xe8, 0x91, 0xc8, 0x20, 0xae, + 0x1b, 0x8c, 0x33, 0xbd, 0x85, 0xd7, 0x8b, 0xa6, 0x61, 0x9b, 0xed, 0x0a, 0x95, 0xc0, 0x72, 0xee, + 0x47, 0xb2, 0x41, 0x5e, 0x82, 0xb8, 0xd0, 0x39, 0xa1, 0xa5, 0xd5, 0xde, 0x26, 0xc9, 0xbc, 0x82, + 0xcc, 0xcf, 0x1d, 0x17, 0xd6, 0x86, 0x9e, 0x3b, 0x8e, 0x61, 0x85, 0xc2, 0x2d, 0xa7, 0x5c, 0x23, + 0xd4, 0xfe, 0xb4, 0x6f, 0x9f, 0x62, 0x86, 0xbd, 0x2c, 0x54, 0x57, 0xa0, 0x69, 0xcb, 0xff, 0xea, + 0xf4, 0x28, 0x8f, 0xd9, 0xec, 0xa2, 0xe0, 0xf4, 0x35, 0xd7, 0x5d, 0x45, 0xf5, 0xaa, 0x89, 0x76, + 0x89, 0xd9, 0x4a, 0xd1, 0x6a, 0x30, 0x4f, 0x9f, 0x88, 0xe7, 0x70, 0xd9, 0x8e, 0xa2, 0x56, 0x90, + 0xa7, 0x4f, 0x24, 0x58, 0x73, 0x78, 0xdc, 0xa2, 0x14, 0x16, 0x21, 0x35, 0xb1, 0xe5, 0xda, 0xf4, + 0x09, 0xdc, 0x0f, 0x4b, 0x58, 0x3f, 0x87, 0x5d, 0x31, 0xa7, 0xc2, 0xb0, 0x3e, 0x1d, 0xaa, 0x89, + 0x74, 0xbe, 0x88, 0x71, 0x9e, 0x9d, 0x87, 0x79, 0x9f, 0x23, 0x5b, 0x35, 0xd3, 0xe7, 0x58, 0xe3, + 0x8d, 0xd5, 0xb9, 0x34, 0xfc, 0xdf, 0xe5, 0x2a, 0x7b, 0xc4, 0xdf, 0x0f, 0xe9, 0x79, 0x36, 0x75, + 0x4d, 0x2e, 0x56, 0x27, 0x1b, 0x07, 0xf4, 0x33, 0x65, 0x6a, 0x39, 0xa6, 0x3c, 0x53, 0x14, 0x54, + 0xa5, 0x04, 0x98, 0x0f, 0x51, 0x8a, 0x17, 0x4e, 0x38, 0x83, 0x99, 0x14, 0x2e, 0x60, 0x2d, 0x36, + 0x36, 0xd2, 0x04, 0x20, 0x57, 0x3d, 0x05, 0xf6, 0x62, 0x15, 0xd7, 0xbd, 0x15, 0xa0, 0x3f, 0x2e, + 0x35, 0x3e, 0x63, 0x2b, 0x88, 0x5f, 0x2d, 0x0a, 0xa9, 0x26, 0xdf, 0xac, 0xc6, 0xe0, 0xc2, 0xe0, + 0xf4, 0x05, 0x5f, 0xb0, 0x28, 0x3a, 0x7d, 0xba, 0x71, 0x93, 0x6c, 0x1e, 0xdb, 0x34, 0x36, 0x90, + 0x99, 0xf5, 0x5c, 0xca, 0x5b, 0xbe, 0x8e, 0xe9, 0x0b, 0x58, 0x4a, 0xcd, 0x2f, 0x8e, 0xff, 0xe2, + 0xb8, 0x3d, 0x18, 0xfe, 0xe1, 0x26, 0x48, 0xd5, 0x70, 0xf1, 0x87, 0xea, 0xe4, 0x2d, 0xb5, 0xd4, + 0xa5, 0x76, 0x68, 0x6e, 0x9c, 0x67, 0x1d, 0xd3, 0x6f, 0x61, 0x48, 0xbd, 0x02, 0xb3, 0xa6, 0x53, + 0xb5, 0xe5, 0x34, 0x18, 0x8e, 0x98, 0x6e, 0xc7, 0xf4, 0xe9, 0x65, 0xdf, 0x72, 0x62, 0x1d, 0x1d, + 0x61, 0x25, 0x5f, 0x3e, 0xf1, 0xa3, 0xd1, 0x44, 0x8e, 0xdd, 0xe2, 0x08, 0x35, 0xae, 0xb3, 0xe6, + 0x62, 0x8d, 0xaf, 0x85, 0xe7, 0x20, 0x3c, 0x79, 0x7d, 0xfa, 0x74, 0xc7, 0x05, 0x4c, 0x7f, 0x65, + 0x21, 0xce, 0xfb, 0xe9, 0x53, 0x98, 0xf2, 0xcc, 0xda, 0x4c, 0xbb, 0x2c, 0xd8, 0xae, 0xf5, 0xa9, + 0x76, 0xc9, 0x59, 0x8d, 0x03, 0x58, 0xf3, 0x89, 0x2f, 0xb6, 0xc3, 0xfd, 0xd3, 0x97, 0xf0, 0xed, + 0x9c, 0xbe, 0xe2, 0xc0, 0xf8, 0xe1, 0xea, 0x5e, 0x58, 0x7c, 0x09, 0x96, 0x1f, 0xd8, 0x40, 0x1a, + 0xee, 0x70, 0x6d, 0x52, 0x6a, 0x1b, 0x63, 0xb7, 0xea, 0xc3, 0x47, 0x9b, 0xb6, 0x39, 0x40, 0xb1, + 0x36, 0x0e, 0x5a, 0x0b, 0x30, 0x37, 0xb2, 0x6e, 0x64, 0xb2, 0x2f, 0x91, 0x63, 0xb2, 0xe4, 0xa9, + 0xc1, 0xf9, 0x71, 0x62, 0xb8, 0xfa, 0x09, 0xa9, 0x02, 0xaa, 0xaf, 0xb8, 0x0c, 0x8d, 0x1b, 0x0e, + 0xbe, 0x3e, 0x3d, 0xd1, 0x71, 0xa8, 0x2c, 0xdb, 0x54, 0x05, 0x32, 0xe6, 0xfb, 0x56, 0x38, 0xec, + 0x0e, 0x50, 0x0e, 0x4a, 0x81, 0xd7, 0x48, 0xfa, 0x21, 0x9a, 0xb6, 0x61, 0xca, 0x88, 0x96, 0x2e, + 0xfc, 0x84, 0xe4, 0x07, 0xd7, 0x9c, 0xf8, 0x05, 0x9f, 0x64, 0x0a, 0xf2, 0x59, 0x36, 0x14, 0x85, + 0xa6, 0xcf, 0x96, 0x17, 0x4f, 0xbf, 0xdb, 0x10, 0xf1, 0x17, 0x4f, 0x5f, 0xf8, 0xd9, 0xd1, 0x47, + 0xc2, 0x73, 0x3c, 0x88, 0x13, 0x3c, 0xed, 0xab, 0xc6, 0x59, 0x9c, 0xb7, 0x30, 0x3a, 0x7d, 0x79, + 0x7f, 0x55, 0xcb, 0x1c, 0x8c, 0x29, 0x49, 0xeb, 0x09, 0x02, 0x6f, 0x5f, 0x6f, 0x37, 0xb4, 0x49, + 0x8d, 0xeb, 0xc6, 0xd7, 0xfd, 0xb2, 0x63, 0xfa, 0x72, 0x99, 0x94, 0xeb, 0x81, 0xf9, 0xd1, 0x75, + 0xef, 0x84, 0x1a, 0xaa, 0xdf, 0xa9, 0x2a, 0xf5, 0x80, 0x75, 0x2d, 0x94, 0x65, 0xfb, 0x42, 0x3f, + 0xfc, 0x69, 0xbb, 0x54, 0x61, 0xa0, 0x9e, 0x8e, 0x3d, 0x97, 0x00, 0xd3, 0xc6, 0xa2, 0xfe, 0x01, + 0x09, 0xbe, 0xa8, 0x9e, 0x66, 0x7b, 0x43, 0x67, 0xd8, 0x97, 0xa5, 0x9e, 0x95, 0x06, 0x28, 0x47, + 0x6c, 0xdd, 0x39, 0x0e, 0x31, 0xaa, 0x17, 0x7c, 0xc5, 0xd3, 0xc7, 0x1a, 0x82, 0xe9, 0xf0, 0x09, + 0x9c, 0x33, 0x97, 0x9e, 0x3b, 0x4e, 0x34, 0xe1, 0xb7, 0xb3, 0xab, 0x3f, 0x64, 0xcc, 0x0f, 0xe7, + 0xec, 0xd4, 0x06, 0xec, 0xd1, 0x49, 0xcc, 0xb7, 0xc4, 0x46, 0x75, 0x1d, 0x10, 0x75, 0x18, 0x0b, + 0xad, 0xbd, 0xbe, 0x33, 0x58, 0x56, 0xf5, 0xf6, 0xcf, 0xfe, 0xd7, 0xd1, 0x47, 0x16, 0x07, 0xb0, + 0x35, 0xdc, 0xa7, 0x56, 0x6b, 0x0d, 0x42, 0x12, 0xcb, 0xb2, 0x1a, 0xff, 0xac, 0x97, 0x22, 0xfb, + 0x97, 0xac, 0xba, 0x4c, 0xbd, 0xd9, 0x03, 0x7e, 0x93, 0x57, 0xf2, 0x16, 0x4f, 0x9f, 0x66, 0x2d, + 0xa2, 0x17, 0x1a, 0xb6, 0xe1, 0xdc, 0x7b, 0x7f, 0xf4, 0x18, 0x8d, 0x6c, 0xbb, 0xb1, 0xb1, 0x63, + 0xfa, 0x7d, 0x4a, 0xf5, 0xc4, 0x1c, 0xc4, 0x10, 0x11, 0x0b, 0x8a, 0xb6, 0xaa, 0xea, 0xd0, 0xeb, + 0xd3, 0x67, 0x05, 0x1c, 0xa7, 0xd8, 0x65, 0x41, 0xaa, 0xe9, 0x58, 0xc7, 0xf4, 0x29, 0x4c, 0x77, + 0xe3, 0x29, 0xf3, 0x4b, 0xe8, 0xc2, 0x90, 0x8b, 0x6f, 0x7e, 0x38, 0x7d, 0xe3, 0xdd, 0xa0, 0x5c, + 0xa7, 0xd5, 0xb3, 0x9e, 0x46, 0xbe, 0x0c, 0x63, 0xe2, 0xe8, 0xd8, 0x16, 0x56, 0xa9, 0x80, 0x71, + 0xde, 0x7f, 0xf3, 0xa7, 0xa5, 0xf0, 0x48, 0xc8, 0x4f, 0xa1, 0x61, 0xb8, 0x3b, 0xbf, 0x78, 0xfa, + 0x52, 0x74, 0xfd, 0xe9, 0x2a, 0xfc, 0xbd, 0x42, 0xbf, 0xa7, 0x17, 0x9f, 0x0e, 0x95, 0xb6, 0x43, + 0x0e, 0xf6, 0xa3, 0xe4, 0xab, 0x2d, 0x20, 0x2d, 0x0c, 0x1b, 0xb0, 0x37, 0x0b, 0xfc, 0xb3, 0x9f, + 0xfa, 0xed, 0x4b, 0x91, 0x7c, 0x0f, 0xdc, 0x1f, 0x5d, 0xef, 0xab, 0x1d, 0xfa, 0xe9, 0xd0, 0x87, + 0xd3, 0xc7, 0xde, 0x8d, 0xbe, 0x14, 0xea, 0x36, 0x6e, 0x8f, 0x94, 0x1b, 0x76, 0x05, 0xcf, 0x84, + 0xa9, 0xae, 0x54, 0x4b, 0x19, 0x70, 0x7c, 0x06, 0xc6, 0x37, 0x61, 0xcd, 0xae, 0x86, 0x3b, 0xa6, + 0xcf, 0xe2, 0x73, 0xea, 0x85, 0x13, 0xb8, 0xae, 0x8f, 0xc9, 0x34, 0xb7, 0x37, 0x21, 0x3e, 0x63, + 0xa1, 0xb9, 0xba, 0x70, 0xb1, 0x9a, 0x53, 0x99, 0x5d, 0x21, 0x29, 0xb8, 0x9f, 0xe6, 0x51, 0x3f, + 0x0e, 0x36, 0x85, 0xa9, 0xd5, 0x71, 0xe3, 0xe9, 0x8e, 0xe9, 0xab, 0xa5, 0x98, 0xaa, 0xa8, 0x76, + 0xfa, 0x74, 0xe8, 0x37, 0xbb, 0x00, 0x57, 0xdb, 0x87, 0xd3, 0x6f, 0xe1, 0xba, 0xbc, 0xb4, 0x16, + 0xb0, 0x14, 0xb2, 0xff, 0x63, 0xc2, 0x79, 0x73, 0x44, 0x01, 0x78, 0x5f, 0xce, 0x1a, 0xc3, 0x3e, + 0x1b, 0x7e, 0x5d, 0xb5, 0x24, 0xcc, 0xd8, 0xba, 0x53, 0x8d, 0x41, 0xc2, 0xd2, 0x71, 0x3c, 0xb3, + 0xc0, 0xa6, 0x2a, 0xb4, 0x9a, 0xd5, 0x66, 0xf6, 0xdd, 0xa7, 0xb6, 0x22, 0x7e, 0xdf, 0xce, 0x6e, + 0x83, 0x9a, 0xc4, 0x7c, 0xc8, 0xe6, 0x54, 0x0f, 0xfb, 0xb3, 0xd4, 0xde, 0x22, 0xec, 0x31, 0xb5, + 0x9f, 0x7d, 0x16, 0x75, 0xa0, 0xa8, 0x63, 0x7a, 0x52, 0xdd, 0xc0, 0xbe, 0x7c, 0x75, 0x13, 0xeb, + 0xd6, 0xda, 0xc2, 0xbe, 0x79, 0xea, 0x10, 0x7e, 0x9b, 0x50, 0x77, 0xe0, 0xcc, 0xd8, 0xa5, 0xcd, + 0x8c, 0x7b, 0x71, 0x66, 0x28, 0x9e, 0x8e, 0xe9, 0x23, 0x34, 0x33, 0x70, 0x6f, 0xc4, 0x9a, 0xc7, + 0xb1, 0x8e, 0xd3, 0xc7, 0x18, 0x47, 0xb6, 0x60, 0xfc, 0x23, 0x38, 0x0f, 0x20, 0xeb, 0x32, 0xe7, + 0x30, 0x5b, 0xbd, 0x8c, 0xfd, 0x70, 0xa9, 0xe9, 0xf5, 0xe9, 0x4b, 0x45, 0x4d, 0xea, 0x55, 0x1c, + 0xeb, 0x53, 0x98, 0xd7, 0x75, 0xb6, 0xee, 0x72, 0x59, 0xcb, 0xa5, 0x17, 0x5b, 0x72, 0x61, 0x18, + 0xbf, 0x24, 0x2c, 0xa7, 0x97, 0x34, 0xae, 0x3f, 0x50, 0xd3, 0x02, 0x6a, 0x81, 0xbd, 0x78, 0xfa, + 0xc8, 0x99, 0x0e, 0x15, 0x30, 0xc5, 0x59, 0x1c, 0xd3, 0xf7, 0x0f, 0xe0, 0x6f, 0x1c, 0xa6, 0x8f, + 0xd1, 0x2a, 0xf7, 0x67, 0x57, 0xcc, 0xaa, 0x2c, 0x56, 0x73, 0xe4, 0x3a, 0x9c, 0xf3, 0x13, 0x9e, + 0x10, 0xd1, 0xa2, 0x31, 0xec, 0xf1, 0x04, 0x64, 0x6d, 0x4e, 0xe6, 0xcc, 0x84, 0x96, 0x42, 0xfb, + 0x54, 0xd6, 0x2a, 0xc4, 0x0d, 0x1a, 0x58, 0x93, 0x98, 0x4d, 0xa7, 0x49, 0x2c, 0x8e, 0xb8, 0x21, + 0xf8, 0xb2, 0xb1, 0xbd, 0x79, 0xec, 0x4f, 0xa8, 0x05, 0xdc, 0x4f, 0xe2, 0x6b, 0xb3, 0x2a, 0xe3, + 0x1a, 0x8b, 0xf8, 0x0c, 0x6b, 0xef, 0x79, 0xbf, 0x75, 0x2c, 0x34, 0x1e, 0xf4, 0x05, 0x87, 0x2e, + 0x81, 0x79, 0x7c, 0xa9, 0xf4, 0x34, 0xad, 0x98, 0xe7, 0x7e, 0x86, 0xbd, 0xed, 0xe0, 0x98, 0x2d, + 0xaa, 0x0b, 0x63, 0xd6, 0xf8, 0x0c, 0xba, 0x78, 0x96, 0xf1, 0x98, 0x34, 0xc8, 0xf1, 0x8e, 0x60, + 0x3c, 0x0f, 0xc7, 0x6b, 0x53, 0x7d, 0x72, 0xf1, 0xf4, 0x35, 0x69, 0x40, 0x7d, 0xef, 0x93, 0xbf, + 0x81, 0xa0, 0x31, 0x88, 0x65, 0xf9, 0xf9, 0x4b, 0xbb, 0x5a, 0x8e, 0x3d, 0x77, 0x4c, 0x0d, 0xb0, + 0xaf, 0x53, 0x0d, 0xa2, 0xef, 0x84, 0x1a, 0x21, 0xbc, 0x05, 0x29, 0x0d, 0x80, 0x24, 0xb6, 0xef, + 0x5c, 0xc2, 0x68, 0x0b, 0xc0, 0x37, 0x31, 0x4d, 0xb4, 0xa8, 0x4e, 0xad, 0xe3, 0x98, 0x6b, 0xd4, + 0x06, 0xdc, 0x63, 0x0c, 0x36, 0x93, 0xba, 0x1c, 0xc7, 0xe7, 0x43, 0xd5, 0xa6, 0xad, 0x85, 0xef, + 0x39, 0x31, 0x6f, 0xdc, 0x9d, 0x40, 0x5a, 0xc9, 0x29, 0xc9, 0x02, 0x5f, 0xc7, 0xf4, 0x39, 0xed, + 0xeb, 0xe4, 0x82, 0x18, 0xf4, 0x3a, 0x5e, 0x9f, 0xbe, 0x36, 0x1f, 0x61, 0x06, 0x18, 0xf1, 0x7d, + 0x0c, 0xcc, 0x0f, 0x22, 0xb4, 0xc7, 0xd2, 0x30, 0x86, 0xdb, 0x05, 0x2b, 0xb1, 0xbf, 0xca, 0xb9, + 0xbf, 0x76, 0xa7, 0xfb, 0x4b, 0xc2, 0x99, 0xb4, 0xdb, 0x56, 0x04, 0x65, 0x74, 0xbe, 0x67, 0x87, + 0xa6, 0x75, 0x38, 0x16, 0x2f, 0x73, 0xb8, 0xa4, 0xbe, 0x92, 0x5b, 0x04, 0x0f, 0x45, 0xd7, 0x45, + 0xdf, 0xe4, 0xd0, 0x3d, 0x1a, 0xcc, 0xd9, 0xe7, 0x5b, 0x03, 0xe6, 0xe7, 0x46, 0x31, 0x4d, 0x79, + 0x74, 0x60, 0x68, 0xf4, 0x11, 0x5a, 0x0d, 0xc3, 0x1a, 0xf4, 0xd9, 0x2f, 0x70, 0xcc, 0xa2, 0xc5, + 0xea, 0x41, 0x0e, 0xf9, 0xbc, 0x7a, 0x78, 0xad, 0xa1, 0xa8, 0x4a, 0x1d, 0x65, 0xdf, 0x17, 0xd4, + 0xa3, 0x99, 0x75, 0xed, 0x12, 0xba, 0x4d, 0xc1, 0x30, 0x60, 0x5f, 0x03, 0xa5, 0x8e, 0x20, 0xd9, + 0xeb, 0xf0, 0x54, 0x23, 0x8c, 0x7d, 0x83, 0x2c, 0x31, 0x22, 0xb4, 0x44, 0x4a, 0x94, 0xa9, 0x4b, + 0xd2, 0x09, 0x5d, 0xda, 0x03, 0xf4, 0x6d, 0x92, 0x6c, 0xd0, 0x95, 0xd2, 0x69, 0xf1, 0xa6, 0x0a, + 0x20, 0x1d, 0x2a, 0xa5, 0xf7, 0x12, 0xd6, 0xf4, 0x1f, 0x45, 0xfd, 0x45, 0x6d, 0xfd, 0x58, 0xbb, + 0x7c, 0xaa, 0xdb, 0x7a, 0xac, 0xa7, 0xa5, 0xb0, 0x08, 0x1e, 0x8e, 0x6e, 0xa4, 0x1c, 0xa2, 0xa3, + 0xd1, 0x37, 0x77, 0xfc, 0xd4, 0x61, 0x19, 0x3a, 0xe6, 0xe4, 0x72, 0xa6, 0xdf, 0xa2, 0xf4, 0xa4, + 0x91, 0x9d, 0x7f, 0x5d, 0xf0, 0x1f, 0x75, 0x50, 0x72, 0x77, 0x0a, 0x4a, 0x3a, 0x21, 0x21, 0xd3, + 0x77, 0x7b, 0x50, 0xe0, 0x50, 0x8e, 0x88, 0xf6, 0x65, 0x27, 0xe2, 0x31, 0xc2, 0xf5, 0x94, 0x3d, + 0x42, 0xfa, 0x7e, 0x74, 0x35, 0x36, 0xea, 0x6b, 0x1c, 0xae, 0x42, 0xbc, 0x58, 0xfd, 0x32, 0x78, + 0x78, 0x4f, 0xa9, 0x2c, 0x9e, 0xbe, 0x1c, 0xfd, 0xdb, 0xa2, 0xba, 0xe9, 0xb7, 0x5c, 0x1d, 0xaa, + 0xa4, 0xd0, 0x88, 0x58, 0x90, 0x72, 0x22, 0x3b, 0x21, 0x03, 0x09, 0x93, 0x03, 0x76, 0x6c, 0x51, + 0xd0, 0x4f, 0x5a, 0x68, 0x68, 0xff, 0xa2, 0x7c, 0x30, 0x6f, 0x3f, 0xe6, 0x3c, 0xa7, 0x21, 0x64, + 0xa3, 0xf6, 0x0d, 0x9c, 0x0a, 0x9e, 0xaa, 0x92, 0x67, 0x45, 0xdf, 0xe4, 0xbe, 0xb2, 0x71, 0x8c, + 0x3a, 0xdc, 0xd5, 0xc8, 0x77, 0xf4, 0x9f, 0x8e, 0x58, 0xf3, 0x78, 0xef, 0xdc, 0xf2, 0x76, 0xc7, + 0xf4, 0x8d, 0x58, 0x5e, 0xfc, 0x65, 0x17, 0xce, 0x05, 0x5c, 0xab, 0xc7, 0xec, 0x4b, 0x5e, 0x38, + 0x91, 0x54, 0x35, 0x7c, 0xa5, 0x01, 0xd7, 0x58, 0xaa, 0x1d, 0x51, 0x9c, 0x41, 0x67, 0xd2, 0x2b, + 0xab, 0x5e, 0x69, 0xcc, 0xd0, 0x58, 0x53, 0xf5, 0x5e, 0x84, 0x71, 0x08, 0xe1, 0x8f, 0x31, 0x5f, + 0xd8, 0xd5, 0x86, 0x6d, 0x9a, 0xff, 0x2d, 0xf6, 0x1f, 0x6f, 0xd8, 0x36, 0x33, 0xed, 0xed, 0xe6, + 0x24, 0xc2, 0xcc, 0x13, 0xb8, 0x3a, 0x4e, 0x90, 0x5e, 0x9b, 0xe9, 0x5d, 0x44, 0xe7, 0xe1, 0x6c, + 0x30, 0xd9, 0xab, 0x3c, 0x0f, 0xc0, 0x4a, 0xb9, 0x1d, 0x36, 0x2d, 0x6c, 0x85, 0xbc, 0xe9, 0x63, + 0x04, 0xdf, 0x77, 0x22, 0xb5, 0xbf, 0xb0, 0x0a, 0xe1, 0x05, 0xfc, 0xee, 0x23, 0x05, 0x7e, 0x77, + 0x99, 0xed, 0xd3, 0x54, 0x78, 0x73, 0xca, 0xab, 0xbc, 0xd6, 0xf2, 0x30, 0x6b, 0xbe, 0xbc, 0xcb, + 0x6b, 0xf1, 0xce, 0x26, 0x9a, 0x8d, 0xcf, 0xba, 0x48, 0x22, 0xc5, 0x81, 0x38, 0xaa, 0x55, 0xb3, + 0xb3, 0x7b, 0x5a, 0x3b, 0xfb, 0xcf, 0x50, 0x10, 0x71, 0x07, 0x61, 0xe5, 0x1b, 0x11, 0xbf, 0xce, + 0x4b, 0xe3, 0xb5, 0xa4, 0x1f, 0x8d, 0x4e, 0x6e, 0x0a, 0x84, 0x15, 0x01, 0x5d, 0x5b, 0xc3, 0x30, + 0xc7, 0xdb, 0x6f, 0x26, 0x39, 0x2c, 0x99, 0xec, 0x25, 0x13, 0xe5, 0x3f, 0x60, 0xd0, 0x9d, 0x1f, + 0x63, 0x3a, 0xb2, 0x67, 0x8e, 0xd8, 0x69, 0x4e, 0x15, 0x69, 0x27, 0x4a, 0x9d, 0xaf, 0x6f, 0x97, + 0xc3, 0x69, 0xf7, 0x80, 0xce, 0xbd, 0x25, 0xe3, 0x9e, 0x52, 0x08, 0x0b, 0x25, 0xdd, 0x97, 0x82, + 0x22, 0xa6, 0x96, 0x39, 0x80, 0x68, 0x9e, 0xda, 0x8f, 0x8c, 0xbd, 0xb8, 0x26, 0xd2, 0x94, 0x98, + 0x75, 0x90, 0x4a, 0x8d, 0x83, 0xc1, 0x2f, 0xaf, 0xc9, 0x76, 0x31, 0x4e, 0xea, 0xf9, 0xf1, 0xf1, + 0x84, 0x2b, 0xd6, 0x0a, 0xb9, 0x71, 0x3b, 0xd2, 0x80, 0x39, 0x89, 0x42, 0xa6, 0xa6, 0xef, 0xca, + 0x50, 0xd3, 0xaa, 0x31, 0x43, 0x4d, 0x87, 0xdb, 0x20, 0x17, 0xa9, 0xa1, 0xbc, 0x44, 0xbf, 0xd8, + 0x69, 0x09, 0x0f, 0x1a, 0x1b, 0xb8, 0x19, 0xdb, 0x44, 0x1a, 0xa7, 0x20, 0xf1, 0xa8, 0x67, 0x0d, + 0x34, 0x1c, 0x26, 0xf8, 0x3e, 0x87, 0xe7, 0xfd, 0x7d, 0x49, 0x47, 0xe6, 0xc4, 0xd8, 0x13, 0x5c, + 0x10, 0x84, 0x86, 0x04, 0xe9, 0x36, 0xcd, 0x63, 0x9b, 0xac, 0x5a, 0x4e, 0x4e, 0x68, 0x5c, 0x8f, + 0x94, 0x87, 0x9b, 0xee, 0xe2, 0x27, 0x0f, 0x76, 0xab, 0x23, 0x03, 0xf1, 0x7c, 0xec, 0xdf, 0x8c, + 0x35, 0x96, 0xfa, 0xf0, 0x5e, 0x28, 0xe8, 0x21, 0x6d, 0xa7, 0xe1, 0xf9, 0xd8, 0x83, 0x52, 0x2b, + 0x38, 0xf8, 0xb7, 0x1d, 0x7c, 0xfc, 0x9b, 0x84, 0x40, 0xb4, 0x57, 0x4a, 0xe2, 0xd3, 0x8e, 0x4f, + 0x2b, 0x9d, 0xb7, 0x7d, 0xbb, 0x48, 0x9c, 0xb7, 0x85, 0x3e, 0xc8, 0x9e, 0x93, 0x99, 0x7d, 0xd3, + 0x57, 0xf8, 0x8c, 0x2c, 0x9c, 0x70, 0x2d, 0x88, 0x65, 0xbb, 0x16, 0xb4, 0x41, 0xa1, 0xf1, 0x55, + 0x7c, 0xcb, 0xc6, 0xbd, 0xf8, 0x76, 0x19, 0xcf, 0xe2, 0xdb, 0x63, 0x3c, 0x87, 0x6f, 0x7f, 0x76, + 0x2e, 0xbe, 0xcb, 0xb3, 0xf3, 0x75, 0xfd, 0x78, 0x0c, 0xe7, 0x9b, 0x55, 0x1d, 0x4b, 0x9f, 0x2b, + 0x54, 0xba, 0xa3, 0xae, 0x5a, 0x67, 0xbd, 0x27, 0x45, 0xab, 0xad, 0xe0, 0xd1, 0x6f, 0x88, 0xad, + 0x91, 0x2a, 0xd8, 0x1a, 0xeb, 0x8b, 0x34, 0xaa, 0xd8, 0xbb, 0x9e, 0x78, 0x20, 0xf4, 0x21, 0x78, + 0xec, 0x8f, 0x38, 0xda, 0x29, 0x9f, 0xc9, 0xc6, 0xd4, 0x49, 0x96, 0x27, 0x88, 0xfd, 0xed, 0xf2, + 0xe6, 0x45, 0x3b, 0xe0, 0x20, 0xd5, 0xf6, 0xc1, 0x0b, 0x45, 0xcb, 0x91, 0x1a, 0xab, 0x17, 0xe7, + 0x36, 0x42, 0x6b, 0xae, 0xb0, 0x10, 0xda, 0xaf, 0x9d, 0x41, 0x88, 0x73, 0x42, 0xb2, 0x37, 0xe1, + 0xa4, 0x99, 0xc3, 0x54, 0x39, 0x53, 0xe3, 0xba, 0xb3, 0x34, 0xd8, 0xc1, 0x5a, 0x79, 0xbf, 0x98, + 0x98, 0x8b, 0xb0, 0xca, 0xf6, 0xc3, 0x8b, 0x20, 0x77, 0x91, 0x36, 0x3f, 0x99, 0xb5, 0x70, 0xe7, + 0x0d, 0xef, 0x05, 0xb9, 0xdd, 0x88, 0x63, 0x45, 0x10, 0xa8, 0xc4, 0xd7, 0x0a, 0x56, 0x8a, 0xd1, + 0xce, 0x31, 0x74, 0xe9, 0x72, 0x31, 0xd4, 0xc1, 0xe9, 0x1c, 0x9c, 0x2e, 0x1f, 0xd3, 0x39, 0x38, + 0x9d, 0x43, 0x4b, 0x97, 0x43, 0x31, 0x38, 0x9d, 0x43, 0xab, 0x87, 0x1b, 0x5d, 0x6e, 0x90, 0xf1, + 0x21, 0x4d, 0x68, 0x05, 0xa2, 0x5e, 0x0e, 0xb6, 0x63, 0x95, 0x3e, 0x87, 0x3c, 0x43, 0xf6, 0xa1, + 0xb8, 0xb7, 0xfc, 0x38, 0xe3, 0x2e, 0x31, 0x1e, 0x72, 0xd9, 0x17, 0xc2, 0xf7, 0x55, 0x5f, 0x18, + 0xdf, 0xd7, 0x7d, 0x55, 0xe9, 0x73, 0x1d, 0x17, 0xce, 0xc4, 0x33, 0x64, 0xe5, 0x28, 0x33, 0x13, + 0xeb, 0x3e, 0x0c, 0x5a, 0x85, 0x8e, 0x33, 0xd2, 0x9b, 0xeb, 0xec, 0x02, 0x97, 0x8b, 0x34, 0x96, + 0x7b, 0x60, 0xb9, 0x63, 0x0d, 0xae, 0xc7, 0x22, 0x28, 0x70, 0x15, 0x41, 0xa1, 0xdb, 0x0d, 0x25, + 0x9a, 0x6d, 0x39, 0xcb, 0x8c, 0xbe, 0x09, 0x38, 0xb3, 0xe9, 0x3c, 0x06, 0xce, 0x21, 0x9c, 0x65, + 0x3a, 0x10, 0xd7, 0x5f, 0xbf, 0xbd, 0xc6, 0x21, 0xac, 0xc5, 0xdb, 0x71, 0x76, 0x16, 0x68, 0x5f, + 0xd6, 0x7a, 0xeb, 0xc0, 0xe3, 0xad, 0x26, 0x2b, 0xea, 0x2b, 0xfb, 0xeb, 0x7f, 0x0f, 0xbf, 0xba, + 0x2f, 0x57, 0xe8, 0x94, 0xc5, 0x36, 0x9c, 0xa3, 0xb3, 0x54, 0xb3, 0x0b, 0x24, 0x98, 0x13, 0x77, + 0x52, 0xcd, 0x8b, 0x6a, 0xd5, 0xeb, 0x88, 0x43, 0x4d, 0xf2, 0xf9, 0xe8, 0x39, 0xac, 0x71, 0xb3, + 0x38, 0x1f, 0x45, 0x3c, 0xf7, 0xba, 0x38, 0x1f, 0x4d, 0x82, 0x03, 0xdb, 0xe2, 0x21, 0x5b, 0x8f, + 0x7f, 0x4c, 0x37, 0x5c, 0xcf, 0xff, 0x1c, 0x47, 0x78, 0x3a, 0x63, 0xff, 0x56, 0xd0, 0x89, 0x8e, + 0x1c, 0x13, 0xae, 0x54, 0x83, 0xa2, 0x5b, 0xe3, 0x27, 0x71, 0xe6, 0x17, 0xea, 0xfc, 0xc7, 0x32, + 0x76, 0xda, 0x84, 0xed, 0x64, 0xdc, 0x6b, 0x62, 0x94, 0xdb, 0xe4, 0x58, 0xca, 0xb6, 0x51, 0xe6, + 0xf6, 0x72, 0x7a, 0xe5, 0x2d, 0xf7, 0x99, 0x4f, 0xa5, 0xec, 0x1a, 0xe1, 0x3c, 0x2a, 0xa0, 0xf3, + 0x66, 0x27, 0xc2, 0x4a, 0xfb, 0x1a, 0xa9, 0x8c, 0xe7, 0x6e, 0x4d, 0x6c, 0x35, 0xe4, 0xc7, 0x01, + 0xc6, 0x62, 0xaf, 0x01, 0xf3, 0x68, 0xea, 0x20, 0x1c, 0xc6, 0x41, 0x08, 0x67, 0xb9, 0x19, 0xc2, + 0x51, 0xda, 0xe4, 0x5c, 0x9d, 0x75, 0x94, 0xd7, 0xa4, 0x32, 0xe6, 0xa5, 0x90, 0xb4, 0x79, 0x89, + 0x98, 0x29, 0xdf, 0x09, 0xae, 0x0a, 0x5d, 0x04, 0x3e, 0xbf, 0x53, 0x56, 0xfe, 0xe4, 0xcd, 0xf8, + 0x0a, 0xf9, 0xf9, 0x9f, 0x5c, 0x84, 0xf2, 0xf8, 0x1c, 0xfb, 0xe7, 0x12, 0xa6, 0xf9, 0x21, 0x28, + 0x57, 0x6c, 0xb1, 0xbd, 0x10, 0x40, 0x77, 0x14, 0xdd, 0x46, 0x6c, 0x75, 0x39, 0x7e, 0x3f, 0x10, + 0xf7, 0xd3, 0x4d, 0x0c, 0x8e, 0x92, 0xb0, 0x7c, 0xe2, 0x34, 0xbb, 0x21, 0x4b, 0x3a, 0x9d, 0x98, + 0x1b, 0xdb, 0x23, 0x95, 0x25, 0x0a, 0x78, 0x77, 0xcc, 0xeb, 0xc9, 0x3a, 0x32, 0x98, 0xb0, 0x62, + 0xba, 0x03, 0x8a, 0x89, 0x4e, 0x96, 0xe2, 0x2f, 0x7b, 0x63, 0x38, 0xfb, 0x82, 0x74, 0x62, 0x58, + 0x67, 0x54, 0x60, 0xfa, 0x23, 0x61, 0xa1, 0x09, 0x47, 0x6e, 0x38, 0xfa, 0xcf, 0xe5, 0x15, 0xce, + 0xa8, 0xab, 0xde, 0x51, 0x02, 0x2b, 0x9d, 0xa9, 0xb3, 0x01, 0x90, 0xf6, 0xff, 0xf0, 0x23, 0xe8, + 0x4f, 0xe4, 0xf2, 0xac, 0x93, 0xc4, 0x4e, 0x60, 0x79, 0x45, 0xd3, 0x24, 0x8d, 0xfd, 0x20, 0x0d, + 0xb9, 0xac, 0xa6, 0x0d, 0x38, 0x32, 0x5b, 0x91, 0x62, 0xcb, 0x58, 0x2f, 0x26, 0x4b, 0x1f, 0xd7, + 0x8a, 0x96, 0xa8, 0x57, 0x70, 0xae, 0xf1, 0xb9, 0xf8, 0xf4, 0x1e, 0x31, 0xee, 0xfc, 0xe5, 0xb2, + 0x48, 0x8f, 0xf5, 0xb4, 0xe9, 0x52, 0x1d, 0x53, 0x40, 0x0a, 0x13, 0xde, 0x62, 0x9f, 0x54, 0xaf, + 0x15, 0xad, 0x91, 0x9a, 0xd5, 0x49, 0x5b, 0x91, 0xe1, 0xff, 0x2b, 0x21, 0x10, 0xfb, 0x62, 0x50, + 0xbd, 0xe1, 0x58, 0x23, 0xb5, 0xf2, 0xe9, 0x53, 0x5e, 0xfa, 0x24, 0xf8, 0x43, 0xf5, 0x5a, 0xea, + 0x24, 0x38, 0x75, 0xf2, 0xf6, 0xc9, 0x21, 0x1c, 0x8d, 0x0a, 0x4d, 0x17, 0x60, 0x01, 0x86, 0xba, + 0x20, 0xb7, 0xfa, 0xc6, 0x74, 0x41, 0xfd, 0x76, 0x74, 0x17, 0x49, 0x15, 0x7c, 0x36, 0x66, 0xa3, + 0x5a, 0x4c, 0xf7, 0x85, 0x3e, 0x00, 0x0f, 0xcd, 0xe8, 0xa9, 0x0b, 0xfa, 0x5a, 0xe0, 0x0e, 0xdf, + 0xa0, 0x3f, 0x85, 0xc2, 0x58, 0xe7, 0xe8, 0xee, 0x42, 0x7d, 0x0c, 0x73, 0xee, 0x15, 0x3a, 0x1f, + 0x29, 0xd5, 0x64, 0x73, 0xf8, 0x35, 0x68, 0x8a, 0xae, 0x81, 0xe5, 0x04, 0x9f, 0x8c, 0xe5, 0x94, + 0xbf, 0xe1, 0xa9, 0xea, 0x1b, 0x53, 0xfb, 0x44, 0x59, 0x86, 0xc1, 0xfa, 0xed, 0xf6, 0x35, 0x86, + 0xa4, 0x38, 0x2d, 0x41, 0xc8, 0xe0, 0xe3, 0xb2, 0x46, 0xb9, 0x1e, 0xda, 0x09, 0x35, 0xbb, 0x93, + 0x5c, 0x27, 0xb9, 0x64, 0x0b, 0xba, 0xdb, 0xb5, 0x7a, 0xb6, 0x52, 0x5a, 0xa9, 0x99, 0xea, 0xca, + 0xb3, 0x2a, 0x47, 0x2e, 0x92, 0x94, 0x4c, 0x9d, 0xaa, 0x2f, 0xe1, 0x2e, 0x16, 0xd3, 0x9f, 0x27, + 0x72, 0x8b, 0x56, 0x39, 0xc1, 0x55, 0x24, 0xf5, 0x1c, 0xdc, 0x97, 0xed, 0x22, 0xab, 0xd9, 0xb1, + 0x0d, 0xf8, 0xfe, 0xbe, 0x1c, 0x41, 0x0c, 0x29, 0x77, 0x59, 0xf0, 0x4b, 0x41, 0xdc, 0xd1, 0x00, + 0x5e, 0xe2, 0x3d, 0x0d, 0x60, 0x27, 0xfe, 0x92, 0xed, 0xe7, 0xad, 0x33, 0x76, 0x6f, 0xc4, 0xad, + 0x74, 0xf3, 0x3a, 0x72, 0xbb, 0x7d, 0xbb, 0x28, 0x4c, 0xd8, 0x25, 0xed, 0xdb, 0xea, 0x31, 0xa4, + 0x42, 0x4e, 0x14, 0xf1, 0xbe, 0xad, 0xbe, 0x85, 0x6e, 0xa2, 0x4a, 0xde, 0x2e, 0x8a, 0xa8, 0xef, + 0x30, 0x86, 0x96, 0x83, 0xe3, 0x33, 0xf2, 0x87, 0xed, 0xda, 0xd8, 0x76, 0x92, 0x93, 0x6c, 0xd2, + 0xb5, 0x0d, 0x31, 0x29, 0xd2, 0x0e, 0x2a, 0x0d, 0x66, 0x5a, 0xdf, 0xb0, 0xed, 0x27, 0x97, 0x70, + 0x4e, 0x16, 0x10, 0x1c, 0x93, 0x84, 0xf5, 0x69, 0x6d, 0x4e, 0xe2, 0xea, 0x10, 0x56, 0x84, 0x3e, + 0x5c, 0x59, 0xa8, 0xee, 0x10, 0xf0, 0x04, 0xf1, 0xa3, 0x8c, 0xf5, 0xb1, 0x57, 0x35, 0xed, 0x9f, + 0x02, 0x23, 0x40, 0x7c, 0x40, 0xcc, 0x72, 0x43, 0x80, 0xe7, 0xb7, 0x9c, 0x9a, 0xdf, 0xae, 0x36, + 0x3e, 0xf3, 0xb7, 0xc6, 0xf6, 0xe1, 0x1c, 0xcd, 0x31, 0x93, 0xe6, 0xc1, 0x67, 0xe8, 0x3c, 0x2d, + 0x12, 0xa6, 0x7d, 0x96, 0xb8, 0x0b, 0x86, 0xc5, 0x79, 0xb1, 0x4d, 0xae, 0x72, 0xba, 0x60, 0x07, + 0x9f, 0xe9, 0x1d, 0x8c, 0xad, 0x8f, 0x5f, 0xc6, 0x6f, 0xbb, 0x38, 0x4f, 0xd7, 0x8f, 0x27, 0x60, + 0x4b, 0xdc, 0x3c, 0xaf, 0x0d, 0x76, 0x00, 0xe2, 0x98, 0xc4, 0xfd, 0xc0, 0x6e, 0xb2, 0xab, 0xbd, + 0x43, 0xd3, 0x1c, 0x8a, 0x61, 0x30, 0xe4, 0x74, 0xc3, 0x8a, 0xe7, 0x7f, 0x9e, 0xee, 0x8f, 0x77, + 0x52, 0xbb, 0xe3, 0xf0, 0x1e, 0x83, 0x9c, 0xc8, 0x09, 0x7d, 0x60, 0xc8, 0x8c, 0xd0, 0x49, 0x86, + 0xa4, 0x77, 0x09, 0x2c, 0xc4, 0x30, 0x47, 0xac, 0xa8, 0xdb, 0xa5, 0xa5, 0xba, 0xdf, 0x26, 0xfd, + 0x31, 0xdc, 0xdd, 0x2d, 0xd8, 0x1f, 0x6c, 0xb1, 0x6c, 0x6a, 0x12, 0xeb, 0x9b, 0xab, 0x94, 0x84, + 0xff, 0x12, 0xf1, 0xad, 0xd5, 0x50, 0x80, 0xcf, 0x1c, 0xcc, 0x63, 0x63, 0xe6, 0x9c, 0x7d, 0x7a, + 0x8b, 0x5d, 0x3b, 0x13, 0x8b, 0x0d, 0xc4, 0xcf, 0xc8, 0x55, 0x3c, 0x42, 0x88, 0x07, 0x19, 0x85, + 0xe5, 0x6e, 0xad, 0xcf, 0x33, 0x3b, 0xbf, 0x06, 0x3b, 0xf3, 0x70, 0xef, 0x29, 0x70, 0x14, 0xc1, + 0x72, 0x4d, 0x3b, 0xec, 0xf8, 0x27, 0x9d, 0xa4, 0xf5, 0x55, 0x2a, 0x64, 0xeb, 0x89, 0x73, 0xe2, + 0x1e, 0xc4, 0xbc, 0x2d, 0x9a, 0x84, 0xf4, 0x2a, 0xc4, 0x71, 0xdd, 0x50, 0x21, 0x56, 0x10, 0xe2, + 0x35, 0x15, 0xc9, 0x66, 0x3d, 0x87, 0xa2, 0x32, 0x57, 0x17, 0xb7, 0x8c, 0x73, 0x91, 0xd3, 0x7e, + 0x27, 0xe2, 0xf0, 0x6d, 0x06, 0x33, 0x59, 0x66, 0x35, 0x48, 0xdc, 0xa2, 0xa7, 0x04, 0x34, 0x43, + 0xdc, 0x74, 0x82, 0xee, 0xd8, 0xc8, 0xd6, 0x82, 0xd3, 0x03, 0x2b, 0x69, 0x0f, 0x24, 0xfb, 0x43, + 0x04, 0xcf, 0xb5, 0xbd, 0x4f, 0x83, 0xbf, 0x88, 0x11, 0xbf, 0xe8, 0xc0, 0xfe, 0x72, 0x23, 0x6e, + 0x43, 0x6d, 0x39, 0x24, 0xce, 0x95, 0xf7, 0xe1, 0xbe, 0x5e, 0x0c, 0x36, 0x9c, 0xe3, 0x39, 0xb4, + 0x62, 0x10, 0xda, 0x06, 0x49, 0x1a, 0x46, 0xbb, 0x0b, 0x24, 0xb9, 0x92, 0x1e, 0x71, 0x27, 0x98, + 0xb0, 0x68, 0xd2, 0x01, 0x9d, 0xca, 0xaa, 0xa4, 0x11, 0xe1, 0xaa, 0x93, 0x20, 0x39, 0x62, 0xad, + 0x6e, 0xa4, 0x31, 0xc9, 0x7a, 0x00, 0xee, 0xb5, 0x7d, 0xee, 0x77, 0xb6, 0x79, 0xb3, 0xbd, 0x77, + 0x7b, 0xef, 0x72, 0x05, 0xe0, 0x57, 0x39, 0x2b, 0x49, 0xdf, 0xae, 0xa7, 0x0d, 0x48, 0x42, 0xc6, + 0x76, 0x98, 0x6f, 0x5e, 0x10, 0x8e, 0xfb, 0xb0, 0xc4, 0x92, 0x19, 0xb7, 0x8d, 0x73, 0x70, 0x2d, + 0x64, 0xe3, 0x6e, 0x7a, 0x97, 0xa6, 0x9f, 0xd7, 0xa6, 0x98, 0xa5, 0x0e, 0xf5, 0xcf, 0x68, 0xc7, + 0x74, 0xd7, 0x4b, 0x1d, 0x7f, 0xa3, 0x42, 0x0e, 0xa6, 0xf3, 0xb8, 0x11, 0xe3, 0x48, 0xad, 0x7e, + 0x17, 0xe0, 0xba, 0xf0, 0xc7, 0x8d, 0xe1, 0x7d, 0xe0, 0xff, 0xc9, 0x45, 0x83, 0x0b, 0x5d, 0x7b, + 0x0d, 0x2e, 0x9c, 0x13, 0x35, 0xda, 0x7c, 0x5b, 0x03, 0x61, 0x08, 0xa3, 0x3f, 0x9c, 0xf6, 0xd7, + 0x00, 0xd9, 0x27, 0xf2, 0xc7, 0x1d, 0xa9, 0xd0, 0x78, 0x5e, 0x2a, 0x3e, 0xce, 0xee, 0x1c, 0x39, + 0x88, 0x70, 0xb6, 0x26, 0x7e, 0x9d, 0xf3, 0xaf, 0x44, 0xc8, 0x58, 0x42, 0x94, 0xd7, 0x0f, 0xff, + 0x2e, 0x6e, 0xba, 0x7f, 0x19, 0x18, 0x95, 0x7c, 0x8e, 0x67, 0x55, 0x72, 0x7e, 0x32, 0x1a, 0x37, + 0xca, 0xcf, 0xe3, 0x1e, 0x13, 0x94, 0x6d, 0xf1, 0x2b, 0x32, 0x5b, 0x64, 0x9d, 0x5e, 0xe9, 0xba, + 0x9b, 0x76, 0x06, 0xc4, 0x28, 0x22, 0xda, 0xc9, 0xf2, 0x1a, 0x18, 0x10, 0x56, 0xfb, 0x18, 0x9e, + 0x8e, 0x20, 0x5e, 0xe2, 0x60, 0x88, 0x3e, 0x97, 0xf4, 0x46, 0x23, 0x16, 0x2d, 0x27, 0xcc, 0x3c, + 0xb6, 0x3b, 0x1b, 0xb6, 0x61, 0xdb, 0x64, 0x47, 0xe3, 0x7e, 0x61, 0x25, 0x8d, 0x60, 0xfb, 0xa1, + 0xa9, 0xef, 0x2d, 0xe8, 0x1f, 0x7d, 0xf7, 0xd0, 0x18, 0xd6, 0x61, 0x8d, 0x14, 0xd3, 0x20, 0x3c, + 0xe7, 0x34, 0x75, 0xd1, 0xdb, 0x4f, 0xf2, 0x91, 0x50, 0xea, 0x5d, 0x23, 0x35, 0x42, 0xb9, 0xad, + 0x58, 0xec, 0x1a, 0xf7, 0x05, 0xa1, 0xcc, 0xd1, 0x21, 0x25, 0x6f, 0xda, 0x35, 0x3e, 0x46, 0xda, + 0x54, 0xdb, 0x35, 0x10, 0xc6, 0x36, 0xa6, 0xe1, 0x6b, 0x7d, 0x66, 0xe6, 0x69, 0x30, 0x67, 0x45, + 0x26, 0x04, 0xeb, 0xc0, 0x37, 0xa5, 0xf7, 0xe5, 0x6a, 0xad, 0x59, 0x4b, 0x76, 0x23, 0xf9, 0xd6, + 0xad, 0x40, 0xe0, 0x16, 0x9a, 0x7e, 0xfa, 0xcb, 0x69, 0x2c, 0x82, 0x76, 0xd2, 0xd4, 0xce, 0x69, + 0x66, 0x9c, 0x5e, 0x5b, 0x31, 0x7c, 0x1b, 0x7f, 0x2d, 0x74, 0x43, 0x3d, 0x19, 0x1b, 0x8c, 0x17, + 0xe2, 0x1a, 0x19, 0x12, 0x9c, 0xa3, 0xe1, 0xbf, 0x48, 0xc7, 0xb1, 0x91, 0x8d, 0x58, 0xd8, 0x21, + 0xbe, 0x51, 0xe8, 0x43, 0x23, 0x22, 0x15, 0xe2, 0xb6, 0xfd, 0x0d, 0xdb, 0xd8, 0xf6, 0xc1, 0x5c, + 0x79, 0x09, 0x85, 0xa9, 0x6f, 0x20, 0xf6, 0x66, 0xc1, 0xfe, 0xea, 0xef, 0x31, 0x7c, 0xe7, 0xef, + 0x10, 0xd2, 0x20, 0xd6, 0xd1, 0xd8, 0x0a, 0xf9, 0xe1, 0x30, 0xdb, 0x4b, 0x6b, 0x6d, 0x12, 0xb1, + 0x1d, 0xb1, 0x70, 0xdc, 0xa3, 0xe5, 0xd5, 0x20, 0xf2, 0xa2, 0x98, 0xcb, 0x30, 0x26, 0xc7, 0x0b, + 0x36, 0x6c, 0x53, 0x8c, 0x18, 0x47, 0xe3, 0x62, 0x55, 0x4c, 0xf4, 0x1b, 0x9c, 0x01, 0x5d, 0x7d, + 0x52, 0x74, 0x54, 0xc3, 0x17, 0xfe, 0xe4, 0x91, 0x6d, 0x9a, 0x05, 0x48, 0xb3, 0xa3, 0x36, 0x44, + 0x3b, 0x6a, 0x27, 0xb4, 0x73, 0x5d, 0x06, 0x13, 0x46, 0xe7, 0x0f, 0xc0, 0xa6, 0x59, 0x0f, 0xf9, + 0x81, 0xc0, 0x34, 0x1a, 0xd8, 0xf6, 0x24, 0xc2, 0xdd, 0x31, 0xc2, 0x4d, 0xe9, 0xe0, 0xce, 0x6d, + 0x70, 0xe6, 0xd0, 0xb9, 0xfe, 0xb7, 0x3b, 0xd5, 0xeb, 0x0b, 0xfb, 0xc1, 0xac, 0x4e, 0x86, 0x8b, + 0xd5, 0x69, 0x7c, 0x54, 0xe2, 0xa6, 0xe3, 0x33, 0x93, 0x31, 0xe2, 0x84, 0x28, 0x2f, 0xac, 0x7f, + 0xfe, 0x8b, 0xfd, 0xb8, 0xd7, 0x8c, 0xf1, 0xfb, 0x14, 0xa7, 0xf9, 0xa6, 0x7a, 0x36, 0x1d, 0xeb, + 0x82, 0xf6, 0xfd, 0x02, 0xbf, 0xdf, 0xe7, 0xef, 0xfd, 0xea, 0x65, 0xb6, 0x81, 0x1d, 0xeb, 0x85, + 0xd0, 0xaf, 0x21, 0x8b, 0xec, 0x46, 0x56, 0x4d, 0x80, 0x21, 0x66, 0x8b, 0x5f, 0x6b, 0xdc, 0x80, + 0x2e, 0x29, 0xe6, 0x02, 0x43, 0xfc, 0x82, 0x6c, 0x1c, 0xdb, 0x30, 0x36, 0xc0, 0xcf, 0x4d, 0xe7, + 0xee, 0xb8, 0x23, 0x14, 0xc8, 0x41, 0x1c, 0x83, 0x15, 0xb6, 0xc3, 0x60, 0x08, 0x63, 0x6c, 0x3e, + 0xf7, 0x90, 0xbe, 0xd4, 0x08, 0xc6, 0x5c, 0x84, 0x62, 0xd1, 0x75, 0x7f, 0x1c, 0xfa, 0x52, 0x08, + 0x4c, 0x55, 0x17, 0x21, 0xab, 0xfa, 0x43, 0xf5, 0xfa, 0xbc, 0x18, 0x98, 0xe7, 0xd5, 0xd2, 0xda, + 0xb4, 0xc7, 0xaa, 0x7f, 0x8d, 0x25, 0xdd, 0x1b, 0xbf, 0x86, 0xbf, 0xd2, 0xe2, 0x09, 0xc8, 0x8b, + 0x3d, 0x00, 0x86, 0x84, 0xd1, 0x7e, 0x17, 0x59, 0x35, 0x9a, 0x17, 0x02, 0x5b, 0xe3, 0x80, 0xbc, + 0xe4, 0xe0, 0x40, 0xfc, 0x55, 0x92, 0xe0, 0x21, 0xee, 0x8c, 0x4d, 0x95, 0xf6, 0x58, 0xf2, 0x9e, + 0x74, 0xe9, 0x43, 0xb8, 0xfe, 0x2c, 0x98, 0xef, 0x3d, 0xb2, 0xb1, 0x71, 0x20, 0x13, 0xea, 0xab, + 0x8e, 0x6d, 0x6c, 0xcf, 0xf5, 0x66, 0x91, 0xed, 0x5c, 0x69, 0x40, 0xf4, 0x4f, 0xf8, 0x2f, 0x94, + 0x99, 0x21, 0x17, 0x28, 0x94, 0xac, 0x27, 0x88, 0x99, 0x34, 0x7a, 0x91, 0xad, 0x34, 0x38, 0x12, + 0x1e, 0xe2, 0xe5, 0x38, 0xee, 0xf3, 0x66, 0x69, 0x77, 0xb0, 0xd9, 0xf5, 0xcf, 0xf3, 0x69, 0x90, + 0x2d, 0x39, 0x3d, 0xbc, 0x21, 0x31, 0x81, 0x79, 0x64, 0x53, 0xfc, 0x9f, 0xef, 0xc6, 0x39, 0x20, + 0xf5, 0x82, 0x3d, 0x26, 0xeb, 0xf0, 0x1f, 0x7b, 0x58, 0x77, 0x5a, 0x81, 0x5f, 0x7d, 0x46, 0x84, + 0xf8, 0xfd, 0xea, 0x3e, 0x82, 0xf8, 0xfa, 0xbd, 0xc7, 0x49, 0x76, 0x6b, 0xd2, 0x77, 0x01, 0x2e, + 0x28, 0xef, 0x07, 0xdb, 0x3f, 0x8d, 0xca, 0xb7, 0xdc, 0x02, 0xc6, 0x41, 0xb5, 0xf4, 0x82, 0xb2, + 0x87, 0x69, 0xb6, 0x4a, 0x41, 0x93, 0x23, 0xf6, 0xa8, 0xa3, 0xc9, 0x43, 0x17, 0x55, 0x35, 0x39, + 0x35, 0xbc, 0xa9, 0x99, 0xf4, 0x28, 0x07, 0x90, 0xb6, 0x0d, 0x84, 0xc3, 0x4a, 0xb9, 0x0f, 0x29, + 0x63, 0x84, 0xc8, 0xd9, 0x09, 0xf3, 0xe7, 0xfb, 0x11, 0xd3, 0x1d, 0x50, 0xe6, 0x02, 0x52, 0x6a, + 0x64, 0xcd, 0x4e, 0xd8, 0xcf, 0xa8, 0x7f, 0xa1, 0xf1, 0xb5, 0x6c, 0x8f, 0xf8, 0xc6, 0x7b, 0x77, + 0x38, 0x61, 0x73, 0x34, 0x2a, 0xa6, 0x25, 0xbf, 0xa7, 0x7b, 0x78, 0x86, 0x24, 0x87, 0x67, 0x50, + 0xac, 0x6c, 0x63, 0xe4, 0x3f, 0x6f, 0x63, 0x7b, 0xa8, 0xfd, 0x24, 0x39, 0x01, 0xc6, 0x61, 0x01, + 0x29, 0x5a, 0xd3, 0x90, 0xc2, 0x98, 0x82, 0x14, 0x8e, 0xaf, 0x0b, 0xfb, 0xa9, 0xbc, 0xaf, 0x44, + 0x5d, 0xb3, 0x9d, 0x16, 0x5e, 0xdf, 0x2b, 0x63, 0x1b, 0xe2, 0x96, 0xd8, 0xfa, 0x84, 0x49, 0xae, + 0x72, 0xb9, 0x20, 0x2a, 0x6e, 0x9a, 0x0d, 0x1e, 0xb6, 0x7b, 0x80, 0xd0, 0xfc, 0xc8, 0x40, 0x5f, + 0xf6, 0xa1, 0x75, 0x09, 0x33, 0xd6, 0x9b, 0x6c, 0xc2, 0xe4, 0x2d, 0xb9, 0x68, 0xac, 0x74, 0x5b, + 0x4c, 0x4f, 0xf3, 0x7d, 0x70, 0x75, 0xa6, 0xc5, 0x5e, 0x0b, 0x61, 0x3e, 0x74, 0x7f, 0x4b, 0xfb, + 0xe5, 0x86, 0x28, 0xdd, 0xe9, 0xc7, 0xf6, 0x1a, 0x63, 0x89, 0x52, 0xa7, 0x85, 0xa8, 0xb2, 0xac, + 0x77, 0xec, 0x82, 0xf6, 0xaa, 0x90, 0xdb, 0x8c, 0xb1, 0xf9, 0x0d, 0x59, 0xef, 0xcc, 0x6f, 0x05, + 0x63, 0xd6, 0xbb, 0xf3, 0xab, 0x8c, 0x31, 0x0c, 0x59, 0x69, 0xaf, 0xc2, 0x5d, 0xdf, 0xcc, 0x31, + 0xde, 0x90, 0x3f, 0x97, 0x96, 0x12, 0x34, 0xb3, 0x84, 0xa0, 0xa2, 0x68, 0x52, 0x40, 0x89, 0x9c, + 0x96, 0xe5, 0x2c, 0xd1, 0xf2, 0x7b, 0x0a, 0x6f, 0x89, 0x2e, 0x58, 0x0a, 0x66, 0xa5, 0x46, 0x5e, + 0xca, 0xd0, 0xe0, 0x94, 0x93, 0x6e, 0x02, 0x31, 0x2f, 0xee, 0x03, 0xab, 0x3d, 0x98, 0xc9, 0x71, + 0x41, 0x15, 0x98, 0x31, 0xae, 0x91, 0x38, 0x12, 0x04, 0x04, 0xc9, 0x99, 0x4b, 0x96, 0x94, 0x38, + 0xdd, 0x49, 0x25, 0xf7, 0xd6, 0x6f, 0x82, 0xb2, 0xeb, 0x01, 0x3b, 0xe6, 0x27, 0xf0, 0x47, 0xcc, + 0xb9, 0x92, 0xe3, 0x47, 0x75, 0xed, 0x3e, 0x96, 0xba, 0xe1, 0xed, 0x0f, 0x68, 0x67, 0x4a, 0x97, + 0x11, 0x2f, 0xab, 0x74, 0xc5, 0xb8, 0x6f, 0x9b, 0xb4, 0x7b, 0xfc, 0xa7, 0x34, 0x1c, 0x6d, 0xad, + 0x66, 0xf1, 0xa5, 0x53, 0xeb, 0xe5, 0x78, 0x6c, 0x07, 0xbe, 0x15, 0xa2, 0x43, 0xf0, 0xb7, 0x49, + 0xf6, 0x80, 0xb5, 0x71, 0x80, 0x2c, 0x77, 0x75, 0x0b, 0x79, 0x3d, 0xda, 0xe9, 0x8c, 0xdc, 0x82, + 0x83, 0x18, 0x4a, 0xfd, 0xef, 0xa3, 0xfb, 0x5a, 0xad, 0x3e, 0xc1, 0xa4, 0x81, 0xbf, 0x1d, 0xc5, + 0x58, 0xe6, 0xa4, 0x3a, 0xbc, 0x23, 0x51, 0xc1, 0xb3, 0xc0, 0x8c, 0x14, 0x7a, 0x3b, 0x20, 0x6a, + 0xe0, 0x25, 0xea, 0x7d, 0x0d, 0x58, 0xc1, 0xe5, 0x58, 0x2e, 0xb4, 0x70, 0xc3, 0xb8, 0x6e, 0x0f, + 0x29, 0x4c, 0x4b, 0xa8, 0x00, 0x9c, 0xd0, 0xee, 0xa3, 0x8f, 0x90, 0x6d, 0x39, 0x0d, 0x87, 0x38, + 0x10, 0x7b, 0x1d, 0x56, 0x10, 0xfe, 0x1d, 0x2b, 0x86, 0x65, 0xed, 0x00, 0xaf, 0xca, 0x81, 0x01, + 0x23, 0x64, 0x21, 0xc6, 0x21, 0x7a, 0x75, 0x9c, 0x6c, 0xda, 0xc9, 0xc1, 0x32, 0x17, 0x98, 0x10, + 0xa7, 0xac, 0xe2, 0xf3, 0x85, 0x7b, 0x12, 0x16, 0xc4, 0x3b, 0xae, 0x0c, 0x77, 0xc0, 0xd5, 0xae, + 0x1e, 0x77, 0x3b, 0x9f, 0x94, 0x92, 0xfd, 0x6b, 0x23, 0xf5, 0xdc, 0xe4, 0x26, 0xba, 0x73, 0x4e, + 0x34, 0xdd, 0xdf, 0xcf, 0x0a, 0x56, 0xf3, 0xbe, 0x5c, 0x05, 0x05, 0xbe, 0x80, 0x04, 0x22, 0x65, + 0x5c, 0x0a, 0x07, 0xbf, 0x1c, 0x84, 0x39, 0xf7, 0x2f, 0x85, 0xc2, 0x54, 0xaa, 0x2f, 0x23, 0x66, + 0xc3, 0x67, 0x19, 0x29, 0x9f, 0x15, 0xec, 0xf7, 0xb7, 0x01, 0xb6, 0x0b, 0xdf, 0x75, 0xe0, 0x9a, + 0x91, 0xfb, 0x5a, 0xc4, 0x1a, 0xcc, 0xe9, 0xda, 0x8d, 0x90, 0x6f, 0xd9, 0x3e, 0x3a, 0x65, 0xc1, + 0xd1, 0xa1, 0x73, 0x0a, 0x1b, 0x5b, 0xdc, 0x92, 0xe4, 0xf0, 0x73, 0xa3, 0xbd, 0xc6, 0x83, 0x9b, + 0x5a, 0x7a, 0xe4, 0xf0, 0xf0, 0x60, 0xb3, 0x24, 0x07, 0xb7, 0xaf, 0x1f, 0xda, 0xe4, 0x82, 0xb5, + 0xb3, 0xff, 0x79, 0x9f, 0xd3, 0xf8, 0xc1, 0xb3, 0x3b, 0x37, 0xb8, 0xb2, 0xce, 0x0c, 0x38, 0x8d, + 0x1f, 0xa2, 0x6b, 0x6c, 0xfd, 0xa9, 0x81, 0x1d, 0x9b, 0x9c, 0x52, 0xef, 0xec, 0x5f, 0xbf, 0x26, + 0x67, 0x7d, 0xb0, 0x69, 0x68, 0xbd, 0x13, 0xde, 0x1e, 0x94, 0xb3, 0x3e, 0x44, 0xd7, 0xe9, 0x81, + 0xed, 0x83, 0x6d, 0x52, 0x64, 0x9d, 0xdc, 0x29, 0x95, 0x62, 0x8f, 0xe6, 0x39, 0xa1, 0x67, 0xf6, + 0xff, 0x79, 0xcd, 0x91, 0xf5, 0xc1, 0xe6, 0x1d, 0xeb, 0x9d, 0xd2, 0xdb, 0x03, 0x8e, 0xac, 0x0f, + 0xd1, 0x35, 0x36, 0x38, 0x86, 0x54, 0xca, 0xf0, 0xba, 0xe5, 0x6c, 0x75, 0x9a, 0x6e, 0x69, 0xea, + 0xde, 0x0b, 0x16, 0x6a, 0x73, 0x65, 0x98, 0x6d, 0x41, 0xd2, 0x3d, 0xf6, 0x4a, 0x17, 0xd2, 0xab, + 0x95, 0x10, 0xfd, 0xdb, 0x8a, 0x90, 0x36, 0x57, 0xea, 0x1d, 0xb5, 0xda, 0xec, 0x89, 0x68, 0x96, + 0x82, 0xe9, 0x36, 0x3b, 0xc2, 0x76, 0x2a, 0xe8, 0xc4, 0x5f, 0x82, 0x72, 0xdc, 0xb5, 0x92, 0x38, + 0xc6, 0x01, 0xf6, 0x67, 0x41, 0x30, 0xd9, 0xc3, 0x76, 0xc1, 0x23, 0xec, 0x37, 0x42, 0xb4, 0xbb, + 0xf7, 0xd4, 0x36, 0x6f, 0x08, 0xea, 0xc2, 0x3f, 0x80, 0x06, 0x79, 0x09, 0x8e, 0x78, 0x39, 0xf5, + 0xcc, 0x27, 0x97, 0x92, 0x60, 0x73, 0x83, 0xd1, 0xce, 0x16, 0x8e, 0xa7, 0xf7, 0xb2, 0x2f, 0x5b, + 0xf3, 0xbd, 0xc2, 0x3e, 0x93, 0xe6, 0x7b, 0xa9, 0x22, 0xf7, 0x9d, 0xc5, 0x81, 0xbb, 0xcf, 0xb6, + 0x81, 0x44, 0x96, 0xd5, 0xd6, 0x82, 0xaf, 0x1a, 0xcb, 0xf3, 0x05, 0x6a, 0xbc, 0xf5, 0xe0, 0x67, + 0xcb, 0x5d, 0x61, 0x5f, 0x9e, 0xaf, 0x1d, 0xa4, 0xa6, 0x2d, 0x88, 0x89, 0xe7, 0x8d, 0x55, 0x8f, + 0x21, 0xad, 0x13, 0x1d, 0x2d, 0x35, 0x47, 0xdf, 0xe4, 0x31, 0xb0, 0x29, 0xb2, 0x7d, 0x09, 0x59, + 0xac, 0x0a, 0x04, 0x97, 0x5c, 0x3b, 0x03, 0xf2, 0xdd, 0x15, 0x51, 0xc4, 0x31, 0xfc, 0x4b, 0xfe, + 0x65, 0x02, 0xec, 0x77, 0x73, 0x0c, 0x4b, 0xe3, 0x7a, 0x2c, 0x6f, 0x56, 0x74, 0xc0, 0x17, 0xfc, + 0xe1, 0x4f, 0x3b, 0x47, 0xd8, 0x42, 0x5d, 0x9b, 0xe0, 0xd1, 0x40, 0x28, 0xdb, 0xa4, 0xb5, 0x74, + 0xb9, 0xb7, 0x0b, 0x92, 0xd0, 0xa4, 0xb5, 0x73, 0x25, 0xfa, 0x7a, 0x40, 0xd1, 0x5a, 0xd9, 0x8c, + 0xbe, 0x5e, 0x68, 0xc5, 0x36, 0xb6, 0x73, 0x1b, 0x97, 0x73, 0x1b, 0xaf, 0xc8, 0xcb, 0x34, 0xec, + 0x2a, 0x22, 0xec, 0x97, 0xb3, 0xad, 0xab, 0x06, 0xed, 0x9c, 0xcd, 0xde, 0x03, 0x2f, 0x9c, 0xa0, + 0x13, 0xf9, 0xd4, 0x79, 0x0b, 0x8e, 0xc5, 0x80, 0xe0, 0xc1, 0x71, 0x87, 0xbd, 0x31, 0x08, 0x94, + 0xe0, 0x88, 0x78, 0x3b, 0x61, 0x39, 0x78, 0xc8, 0x0a, 0xbd, 0x2f, 0x88, 0xad, 0x2e, 0x5d, 0x14, + 0x82, 0xb2, 0x40, 0x08, 0x5b, 0x5e, 0x2e, 0x56, 0xaf, 0x94, 0xeb, 0xd4, 0x46, 0x48, 0x32, 0x6b, + 0x36, 0x3a, 0x84, 0x85, 0x59, 0x8f, 0x6e, 0x8c, 0x5a, 0x71, 0x8c, 0xf6, 0x85, 0x26, 0xd4, 0xab, + 0x98, 0x43, 0xbb, 0x56, 0xff, 0x64, 0xf2, 0x8f, 0x6a, 0x80, 0x47, 0xaa, 0x47, 0x6b, 0x43, 0x6f, + 0xf2, 0x6b, 0x5a, 0x48, 0x3f, 0xb6, 0x63, 0x40, 0xae, 0x23, 0xeb, 0x87, 0x9e, 0xc5, 0x34, 0x56, + 0xbe, 0x22, 0x30, 0x5b, 0x83, 0xaa, 0x1a, 0x0f, 0xd0, 0xda, 0x96, 0x24, 0x08, 0x7a, 0xeb, 0x20, + 0xb2, 0x08, 0xfb, 0x14, 0xa2, 0xf8, 0x2e, 0x83, 0x18, 0x8e, 0x03, 0x59, 0x5a, 0x0c, 0xe0, 0x18, + 0xaf, 0x11, 0x6b, 0xdb, 0x41, 0xfd, 0x10, 0xcc, 0xac, 0x6e, 0x43, 0x6e, 0x1f, 0xcc, 0x29, 0x82, + 0x1c, 0x57, 0x76, 0xcd, 0x86, 0x6e, 0xc8, 0x2d, 0x82, 0x7b, 0x8e, 0xaf, 0x8b, 0x3d, 0x1d, 0x0f, + 0xd8, 0xeb, 0x64, 0x23, 0x95, 0x32, 0xbd, 0xd7, 0xb7, 0x06, 0x24, 0xbb, 0x17, 0xca, 0x4f, 0x6d, + 0xf2, 0x2d, 0x93, 0xbd, 0x50, 0x3a, 0xb6, 0xc9, 0x8f, 0x90, 0x07, 0x43, 0x4d, 0xf6, 0xba, 0xea, + 0x2b, 0x66, 0xd5, 0x61, 0x09, 0x5d, 0x2e, 0x50, 0x9d, 0x66, 0x8e, 0xfd, 0x16, 0xc2, 0x8b, 0x51, + 0xfc, 0x66, 0xec, 0xbf, 0xe7, 0xec, 0xa6, 0x89, 0x8d, 0x7f, 0xff, 0x01, 0x98, 0xfc, 0x64, 0xd3, + 0xc3, 0xd8, 0xcd, 0xb9, 0x11, 0x17, 0x4a, 0xd2, 0x3c, 0xbc, 0xbe, 0x5d, 0x5a, 0x6b, 0xb6, 0x65, + 0x45, 0x07, 0x42, 0x54, 0x97, 0xd1, 0x6e, 0x28, 0x2d, 0x22, 0xcb, 0xaf, 0xfe, 0x22, 0x30, 0x71, + 0x2e, 0x7d, 0x18, 0x1e, 0x7d, 0xfe, 0xe7, 0x49, 0x43, 0x38, 0xa4, 0xf8, 0x68, 0xbc, 0xbb, 0x0a, + 0x1c, 0xd9, 0x47, 0x07, 0x12, 0xb9, 0xcb, 0x36, 0xfb, 0x0d, 0x3f, 0x3b, 0x76, 0x7a, 0xf0, 0xf4, + 0x6b, 0x60, 0x91, 0x07, 0x1b, 0x43, 0x8a, 0xd5, 0x61, 0x3c, 0x3a, 0x40, 0xb4, 0x6b, 0x20, 0x2c, + 0x6f, 0x1d, 0x0b, 0x36, 0x7e, 0xab, 0x69, 0xd3, 0x81, 0x6f, 0x75, 0x9e, 0x24, 0x6e, 0x94, 0xa4, + 0x61, 0xf8, 0xdb, 0x71, 0x63, 0x61, 0x00, 0x67, 0xd8, 0x32, 0xac, 0xb1, 0x44, 0x65, 0xb1, 0x65, + 0xe5, 0x3a, 0x07, 0xb6, 0xe2, 0xf4, 0x56, 0x27, 0xb6, 0xe9, 0xed, 0xcd, 0xe5, 0x45, 0x64, 0x7d, + 0xb9, 0xa2, 0x88, 0x6c, 0x2f, 0x53, 0xd9, 0x53, 0xdf, 0x73, 0xae, 0x01, 0x9b, 0xb0, 0xf2, 0x3a, + 0x9d, 0x1a, 0xa9, 0x0d, 0xd8, 0x87, 0x2f, 0xc3, 0x26, 0x6d, 0x8c, 0xb6, 0xa0, 0xef, 0x15, 0x18, + 0xd2, 0xc6, 0x67, 0x07, 0xfa, 0xf6, 0xc0, 0x2e, 0x1c, 0x9b, 0xdd, 0x3c, 0x36, 0x1b, 0x78, 0x6c, + 0xae, 0xc8, 0xe2, 0x84, 0xc9, 0xac, 0x8d, 0x79, 0x6a, 0x96, 0x0d, 0x68, 0x96, 0xfd, 0x72, 0x04, + 0x06, 0x29, 0xe7, 0xd2, 0x09, 0x21, 0x9f, 0x9c, 0x7c, 0xdf, 0x05, 0x72, 0x04, 0x71, 0x25, 0x86, + 0xdb, 0x53, 0x7b, 0x9c, 0xc4, 0xf3, 0xb2, 0x3e, 0x71, 0x49, 0xe0, 0xe3, 0xd3, 0x5b, 0xe4, 0xac, + 0x0c, 0x3f, 0x98, 0x4f, 0xcf, 0xdf, 0xb2, 0xa2, 0x0c, 0xcc, 0x2e, 0xe2, 0x4c, 0x41, 0x2c, 0xbf, + 0x55, 0x2a, 0xc4, 0xbd, 0x39, 0x4b, 0xf0, 0xac, 0x48, 0x7b, 0xa7, 0x49, 0x9b, 0x77, 0x41, 0xac, + 0x8a, 0xf6, 0x27, 0xa9, 0x50, 0x6a, 0x25, 0xcb, 0x8c, 0x69, 0x9e, 0x96, 0x17, 0xd1, 0x25, 0x67, + 0xce, 0x7b, 0xc8, 0xaf, 0xe3, 0x93, 0x59, 0x4b, 0xd6, 0xc3, 0xb9, 0xae, 0x15, 0xb2, 0xb0, 0xfc, + 0xe6, 0x20, 0x3a, 0x13, 0x69, 0xcc, 0x02, 0xa4, 0x28, 0x89, 0x8a, 0x72, 0xfc, 0xf8, 0x78, 0xdc, + 0xbc, 0xa0, 0x11, 0x1c, 0x8a, 0x4d, 0x0e, 0x72, 0x3e, 0xed, 0xb2, 0xed, 0xc7, 0xa3, 0xf1, 0x2b, + 0x8a, 0xe2, 0x2a, 0x82, 0x92, 0x65, 0x6b, 0xc0, 0x23, 0xb5, 0xbd, 0xa7, 0x42, 0xa1, 0xd3, 0x38, + 0xf3, 0xe4, 0x15, 0xe9, 0xe0, 0x99, 0x1c, 0x38, 0xaf, 0x86, 0xb7, 0x13, 0x3d, 0x84, 0x3b, 0xac, + 0x51, 0xa3, 0x41, 0x52, 0x27, 0xb1, 0x56, 0x61, 0x8f, 0xd0, 0xa6, 0xe1, 0xe9, 0xf9, 0x9d, 0x6c, + 0x29, 0xcf, 0x28, 0x6f, 0x57, 0x76, 0xd7, 0xbd, 0xb7, 0xb2, 0x90, 0xcf, 0x3a, 0x2e, 0x78, 0x05, + 0x47, 0x9c, 0x5d, 0xd8, 0x98, 0xa1, 0x93, 0xe4, 0xa2, 0x5a, 0xed, 0x44, 0xf6, 0x42, 0xb4, 0x4f, + 0xad, 0x14, 0xe7, 0x08, 0x4c, 0x99, 0x74, 0xa8, 0xe7, 0x52, 0x67, 0xf8, 0xbe, 0xd4, 0xd9, 0x6b, + 0xa3, 0xe0, 0xd4, 0x83, 0x6b, 0x3a, 0x0e, 0xbc, 0x51, 0x3f, 0x24, 0x02, 0x58, 0x4f, 0xfb, 0x2d, + 0x67, 0x9e, 0x19, 0x8e, 0x41, 0xa3, 0xfe, 0x66, 0x6b, 0x26, 0xf7, 0x5e, 0x8f, 0x81, 0xb8, 0x91, + 0xa8, 0xff, 0xc4, 0x9e, 0x1f, 0xa8, 0x40, 0x38, 0x5e, 0x4b, 0x5c, 0x63, 0x6e, 0x0d, 0x9a, 0x6b, + 0x3b, 0xea, 0x20, 0xe7, 0xdf, 0x77, 0x33, 0x0c, 0xb7, 0xb6, 0xe1, 0xb8, 0x99, 0xe3, 0x6e, 0x5e, + 0xd5, 0x46, 0xec, 0x19, 0xb2, 0xf4, 0x5d, 0x05, 0xae, 0x45, 0x61, 0x70, 0xeb, 0xf6, 0x68, 0x39, + 0xbd, 0x8a, 0xdd, 0x64, 0x9f, 0x32, 0x74, 0x59, 0x06, 0xbb, 0xd9, 0xd7, 0x18, 0xba, 0xec, 0x03, + 0xd9, 0x5c, 0x4e, 0x76, 0xec, 0xda, 0x08, 0x5a, 0x3b, 0xe0, 0xf4, 0x16, 0xa7, 0xe1, 0xed, 0x4d, + 0x7c, 0x7f, 0xf8, 0xf6, 0xcd, 0xb0, 0x6f, 0x65, 0x40, 0xec, 0x7e, 0xe2, 0x7e, 0x0c, 0xe9, 0x9d, + 0xfa, 0x44, 0xf0, 0x26, 0x5e, 0xc9, 0x47, 0x1d, 0x6d, 0xd2, 0x5a, 0x92, 0xfe, 0x7c, 0x78, 0x48, + 0x11, 0x76, 0xe8, 0x0b, 0xc9, 0x32, 0x38, 0xed, 0xf0, 0x8e, 0x2a, 0x67, 0x6e, 0xfc, 0xd2, 0x0b, + 0x27, 0xf4, 0x7c, 0x93, 0x6c, 0x89, 0xd6, 0x22, 0x6e, 0xd2, 0x98, 0x8e, 0xaa, 0xc0, 0xf5, 0xc6, + 0x33, 0x68, 0xf1, 0x25, 0xd3, 0x05, 0x7d, 0xbe, 0xae, 0x76, 0xd3, 0x19, 0xc5, 0xc5, 0x3c, 0xb1, + 0x59, 0x88, 0xe7, 0x86, 0xa1, 0x40, 0x6e, 0xd7, 0xa0, 0x14, 0xad, 0xa4, 0xbc, 0x0c, 0x1f, 0x6c, + 0xdc, 0xec, 0x5a, 0x1e, 0xdb, 0x11, 0x3f, 0xfd, 0xdd, 0x93, 0xfa, 0x92, 0x98, 0x2b, 0x8f, 0xa9, + 0x2f, 0x31, 0x9e, 0x4e, 0x71, 0x32, 0xde, 0x2c, 0x4e, 0xd3, 0xb1, 0x0d, 0xba, 0xd3, 0x74, 0x59, + 0x70, 0x68, 0x93, 0xf4, 0x8b, 0x2b, 0x5e, 0x8a, 0x6f, 0x4f, 0xdc, 0xe3, 0xeb, 0x07, 0xd7, 0x2f, + 0x2e, 0x42, 0xc1, 0xb2, 0x21, 0x9c, 0xfb, 0xe5, 0xe9, 0xb8, 0x61, 0x5c, 0x85, 0x81, 0x0c, 0x85, + 0xe0, 0x47, 0xda, 0x88, 0xdb, 0x14, 0x9e, 0xd9, 0x46, 0x9f, 0x45, 0x8c, 0x31, 0x5b, 0xf3, 0x8e, + 0x22, 0x85, 0xd8, 0x24, 0x78, 0x98, 0x49, 0xea, 0x88, 0xb0, 0x4b, 0xb1, 0xfe, 0x19, 0xdb, 0xd8, + 0x8b, 0x2d, 0xfa, 0x7a, 0x9a, 0x72, 0x46, 0x9a, 0x80, 0xf0, 0x3f, 0xfe, 0xfe, 0xa8, 0x75, 0x8f, + 0xc0, 0x77, 0xe2, 0x64, 0x4f, 0xa9, 0x50, 0xb7, 0x1e, 0x47, 0xb0, 0x4e, 0x7e, 0x71, 0x3b, 0x80, + 0x5f, 0xf2, 0x66, 0x7c, 0x59, 0x23, 0x8d, 0xe2, 0xec, 0xf4, 0x27, 0x33, 0xf7, 0x64, 0x65, 0x1c, + 0xa6, 0xab, 0xf7, 0x54, 0x59, 0x8a, 0x96, 0x45, 0xda, 0x3d, 0x3d, 0x4f, 0x35, 0xbb, 0xde, 0x44, + 0xd9, 0x82, 0xa3, 0x41, 0x71, 0x39, 0x73, 0x91, 0xa2, 0xcd, 0xc5, 0xbc, 0xcc, 0x32, 0xee, 0xfa, + 0x3a, 0xaa, 0x68, 0x06, 0xa7, 0xa2, 0xa3, 0x8a, 0xf7, 0xdc, 0x53, 0xe1, 0xe7, 0x05, 0xb7, 0xa2, + 0xd8, 0x27, 0x1d, 0xb5, 0x84, 0x9b, 0xf0, 0xcc, 0x75, 0x92, 0xf5, 0x4b, 0x3e, 0x35, 0xf6, 0xc7, + 0x30, 0x2f, 0xc4, 0xfc, 0x1a, 0xc5, 0x19, 0x32, 0xe6, 0xa3, 0xe3, 0x01, 0xd4, 0x76, 0x54, 0xae, + 0x13, 0xfe, 0x33, 0xa7, 0xa8, 0x32, 0x71, 0x7f, 0xc1, 0xbc, 0xbd, 0x82, 0x53, 0xdd, 0x25, 0x56, + 0xf4, 0x7e, 0xb1, 0xa2, 0x6b, 0xd5, 0x4b, 0x64, 0x4f, 0x51, 0x9d, 0xa0, 0xf8, 0xf7, 0x4c, 0xfa, + 0x5f, 0x57, 0xaf, 0x3f, 0xd8, 0xa1, 0xde, 0x00, 0xa9, 0x61, 0x9b, 0x43, 0xe3, 0xf6, 0x25, 0xbe, + 0x73, 0x1a, 0x05, 0x71, 0xc3, 0x29, 0xea, 0xc4, 0xf8, 0xae, 0x11, 0xe8, 0xdc, 0xca, 0xec, 0xad, + 0xa5, 0x31, 0xb9, 0x95, 0xee, 0x11, 0x92, 0x9c, 0x82, 0xb7, 0x98, 0xc7, 0xc6, 0xec, 0xac, 0xa7, + 0xb3, 0x03, 0x47, 0x27, 0x1c, 0x90, 0x03, 0x48, 0x6b, 0xaf, 0xe7, 0x3a, 0x98, 0x11, 0x56, 0x96, + 0x61, 0x5a, 0x0b, 0xf6, 0x16, 0xdd, 0x1c, 0x8b, 0x1b, 0xcc, 0x61, 0xac, 0x39, 0x9d, 0xcb, 0x5d, + 0xa6, 0xd9, 0x2e, 0xfa, 0x1a, 0xe1, 0xa5, 0x9d, 0xd7, 0x50, 0x69, 0x19, 0x24, 0x4a, 0x92, 0x20, + 0xce, 0xad, 0xac, 0x55, 0x30, 0xf1, 0x84, 0xb1, 0x2c, 0x00, 0x13, 0x24, 0x2d, 0x65, 0x0f, 0x33, + 0x8c, 0xce, 0x50, 0xc4, 0x11, 0xbe, 0x25, 0x59, 0x49, 0x94, 0x42, 0xa4, 0x50, 0x5b, 0x33, 0x95, + 0x72, 0xad, 0xab, 0x9e, 0xb8, 0x3a, 0x82, 0x86, 0x6e, 0x95, 0xe6, 0x16, 0xf6, 0xdf, 0x59, 0x07, + 0x2c, 0xa1, 0x15, 0xb4, 0x34, 0xb3, 0x82, 0x9c, 0xb8, 0x82, 0x02, 0x34, 0x3f, 0x7d, 0x88, 0xe3, + 0x0f, 0x8a, 0x36, 0xe3, 0x5a, 0x2a, 0xc0, 0xb5, 0x54, 0x38, 0x63, 0xc7, 0x2f, 0xd0, 0xf1, 0x94, + 0x4b, 0x8d, 0x5b, 0x9d, 0xcb, 0x62, 0xcf, 0xc7, 0x4f, 0xca, 0x39, 0x63, 0x5b, 0x67, 0x9e, 0x0d, + 0x38, 0x09, 0x07, 0xaf, 0xf7, 0x60, 0xae, 0xdf, 0x3d, 0xa9, 0x54, 0xdc, 0x26, 0xcf, 0x4e, 0x2d, + 0xcf, 0xfa, 0x9b, 0xf2, 0xb4, 0xca, 0xd6, 0xb1, 0x2d, 0x63, 0x03, 0x0b, 0xb6, 0x9a, 0xa1, 0x71, + 0x8b, 0x67, 0x45, 0x6c, 0x67, 0xfc, 0xc8, 0x3f, 0x9d, 0xfc, 0xa7, 0x93, 0xe1, 0xfd, 0x07, 0x41, + 0x57, 0xdf, 0x63, 0xf2, 0x5d, 0x44, 0x97, 0x36, 0x6c, 0xfb, 0x8c, 0x7d, 0x55, 0xfa, 0xaf, 0xf5, + 0x15, 0xdd, 0x29, 0x3a, 0xcd, 0xd2, 0x3a, 0xe2, 0x12, 0xe9, 0x31, 0xec, 0x5f, 0x17, 0x37, 0xd1, + 0xa9, 0x94, 0x62, 0xee, 0xb9, 0x07, 0xdd, 0x85, 0x8e, 0xd9, 0x38, 0x5e, 0x05, 0x72, 0xd8, 0x5e, + 0x25, 0xf8, 0xd7, 0x32, 0xf9, 0x10, 0x65, 0x16, 0x1b, 0x4c, 0x49, 0xa1, 0x21, 0xd6, 0x8d, 0xe3, + 0x2f, 0x6e, 0xd5, 0x64, 0x33, 0x49, 0xa4, 0x18, 0x5a, 0x85, 0x8e, 0x52, 0x71, 0x8e, 0xee, 0x00, + 0xed, 0x24, 0xbd, 0x4d, 0xd4, 0x92, 0xed, 0x5a, 0x9b, 0xba, 0x31, 0x0f, 0xc5, 0xd8, 0x0d, 0x3d, + 0x52, 0xcd, 0xa0, 0xd3, 0xb0, 0x71, 0x2f, 0xdc, 0x38, 0x36, 0x38, 0xbf, 0x0a, 0x6e, 0x98, 0xb3, + 0xf0, 0x6b, 0xb9, 0x0b, 0x69, 0x7b, 0xc5, 0x43, 0x14, 0x99, 0x32, 0xd7, 0xf9, 0x80, 0x16, 0x9a, + 0x2b, 0xaf, 0x86, 0xe9, 0x1f, 0x5e, 0x84, 0xe9, 0xb8, 0x79, 0xe3, 0xba, 0x63, 0x83, 0xf7, 0x63, + 0x6c, 0xfb, 0x23, 0xcc, 0x9b, 0x7d, 0x56, 0xd8, 0x63, 0x8e, 0xbf, 0x25, 0x07, 0xc5, 0x1d, 0xb0, + 0x80, 0x9f, 0x84, 0x2b, 0x38, 0x71, 0xff, 0xa5, 0xf3, 0x66, 0x99, 0xac, 0xb0, 0x66, 0xe4, 0x28, + 0x66, 0xde, 0x6f, 0x76, 0x3b, 0xdd, 0x50, 0x22, 0xb3, 0xad, 0xba, 0xc9, 0x37, 0x48, 0x7b, 0x95, + 0x2b, 0x6b, 0xe6, 0xe9, 0x64, 0x7a, 0xb7, 0x37, 0x6b, 0x12, 0x56, 0x8c, 0x13, 0xa4, 0xdc, 0x88, + 0x57, 0x3b, 0x94, 0x1c, 0x84, 0x38, 0x72, 0x3a, 0x44, 0x9c, 0x4e, 0x5e, 0x4a, 0x9d, 0x07, 0xe2, + 0x1e, 0x24, 0x7b, 0xab, 0xe8, 0x3e, 0x17, 0xb1, 0x10, 0xed, 0x56, 0xb4, 0xae, 0x30, 0xc5, 0x91, + 0xcf, 0x39, 0xcb, 0x37, 0xf3, 0xe5, 0xab, 0xe1, 0xcc, 0xfd, 0x2d, 0xdd, 0x67, 0x87, 0x83, 0x29, + 0xee, 0x7c, 0x8e, 0x9f, 0x8b, 0x31, 0x93, 0x1a, 0xff, 0x85, 0x5a, 0x5e, 0xa8, 0x71, 0xf8, 0x13, + 0xbe, 0xbd, 0x3b, 0x8d, 0xe3, 0x08, 0x7a, 0xbd, 0xa9, 0x8a, 0xce, 0xe0, 0xb4, 0x13, 0x02, 0x0d, + 0xb2, 0x16, 0x08, 0xda, 0x17, 0xe9, 0x7a, 0x1b, 0x7d, 0xc5, 0x7e, 0x63, 0x6a, 0x5e, 0x91, 0xd6, + 0x02, 0x51, 0x09, 0x19, 0xbe, 0x4d, 0xfe, 0x1a, 0xe3, 0xaf, 0x27, 0xfc, 0xc1, 0xd8, 0x7a, 0xa4, + 0xfe, 0x05, 0x7e, 0x31, 0x92, 0xda, 0xa9, 0x22, 0x44, 0x01, 0x36, 0x6b, 0xb0, 0xb2, 0x53, 0xdb, + 0x9d, 0x2d, 0x84, 0x4d, 0xd1, 0x5d, 0x2d, 0x63, 0x68, 0x2c, 0xed, 0xcd, 0xe1, 0x0a, 0x63, 0xdc, + 0x39, 0x4a, 0x93, 0xdc, 0xd0, 0xb8, 0x8e, 0x4f, 0x88, 0xcd, 0x4a, 0x3d, 0xce, 0x82, 0xfb, 0x8e, + 0x0e, 0xec, 0x5f, 0xd7, 0x79, 0x51, 0x89, 0xa6, 0xc2, 0x13, 0xe5, 0xe8, 0xbf, 0xd2, 0x7d, 0xd7, + 0x78, 0xab, 0x98, 0x7d, 0xdd, 0xf7, 0x8d, 0x0c, 0x24, 0x1c, 0x76, 0x84, 0xf2, 0x3c, 0xe2, 0x39, + 0x4a, 0x41, 0x3a, 0x07, 0x93, 0x62, 0xed, 0x06, 0xb9, 0x76, 0x78, 0x5d, 0xe7, 0x25, 0x45, 0x7a, + 0xee, 0xb8, 0x6c, 0x26, 0x09, 0x55, 0x84, 0xfa, 0xb9, 0x7e, 0xb8, 0x18, 0xeb, 0x5e, 0x74, 0x74, + 0x5d, 0xd8, 0xa0, 0xec, 0xe3, 0x3c, 0x8d, 0xf3, 0x6a, 0xe1, 0x34, 0xef, 0x39, 0x92, 0x03, 0xe4, + 0x4e, 0x18, 0xd0, 0xed, 0x70, 0x92, 0xe3, 0x3e, 0x6d, 0x8f, 0xf1, 0x11, 0x9f, 0x80, 0x4c, 0xfc, + 0x02, 0x0d, 0xb1, 0xed, 0x62, 0x96, 0xdb, 0x2d, 0x47, 0x06, 0x1c, 0x21, 0x3e, 0x73, 0x7c, 0x59, + 0x99, 0x8b, 0xd0, 0xde, 0x92, 0xb0, 0xf2, 0x69, 0xf4, 0xf3, 0xbc, 0x93, 0xe7, 0x8b, 0xf1, 0x4e, + 0xe4, 0xc4, 0xb6, 0x27, 0xd8, 0x36, 0x72, 0xfc, 0x6c, 0xaa, 0x77, 0xac, 0x46, 0xb1, 0x67, 0xa4, + 0x60, 0xa3, 0x13, 0x57, 0x4e, 0x7c, 0x2e, 0x41, 0x48, 0xc1, 0xcd, 0x87, 0xae, 0x7e, 0x4e, 0x5b, + 0x42, 0x50, 0x92, 0xce, 0x66, 0x15, 0x4d, 0xe2, 0x96, 0x4e, 0x91, 0xc9, 0x92, 0x67, 0x22, 0x97, + 0x31, 0xd4, 0xcf, 0xc5, 0x2d, 0xf4, 0x95, 0x6e, 0x24, 0x28, 0x6f, 0x01, 0x3b, 0x39, 0x8f, 0x55, + 0x64, 0x1f, 0x95, 0x79, 0x37, 0xbe, 0x2d, 0x60, 0x6b, 0xf9, 0xcb, 0x54, 0xab, 0xb8, 0xb0, 0xbd, + 0x58, 0xc2, 0x31, 0xaf, 0x39, 0xd6, 0x88, 0x72, 0xe2, 0x4e, 0x2d, 0x26, 0xe9, 0xdf, 0xcd, 0xe3, + 0xda, 0x17, 0xca, 0x41, 0xad, 0x84, 0x5c, 0xca, 0x3d, 0x03, 0xb3, 0xa9, 0x3c, 0x51, 0x0e, 0xaf, + 0x9a, 0x01, 0xfd, 0xcd, 0x0e, 0x43, 0x6d, 0xab, 0xd6, 0x97, 0x39, 0xa1, 0x8f, 0xe0, 0x90, 0xbe, + 0x2f, 0x09, 0x0a, 0xc0, 0x84, 0xe8, 0x51, 0x96, 0xc1, 0xa0, 0xf6, 0xcf, 0x76, 0xc6, 0xdc, 0xe0, + 0x31, 0xb8, 0x72, 0x90, 0xa2, 0x35, 0x6b, 0xa7, 0x26, 0x1f, 0x95, 0x18, 0x4d, 0xcf, 0x30, 0xb6, + 0xb1, 0x38, 0x03, 0x97, 0x11, 0x57, 0x20, 0xce, 0x75, 0x85, 0xe5, 0x7b, 0x0f, 0x0b, 0xbb, 0x68, + 0x82, 0x53, 0x7d, 0x4a, 0x71, 0x0a, 0x2e, 0xfe, 0x57, 0x93, 0x81, 0x5b, 0xad, 0x60, 0x3a, 0x29, + 0xc7, 0xad, 0xf3, 0x97, 0x40, 0xc1, 0x7c, 0x84, 0xb6, 0x48, 0xdf, 0xd9, 0xc7, 0xd6, 0xf0, 0x29, + 0xa0, 0xfc, 0x60, 0x35, 0xd8, 0xe7, 0xd7, 0x80, 0x4f, 0xcc, 0x25, 0xc1, 0x5d, 0x28, 0x07, 0x43, + 0x97, 0x9b, 0xac, 0x0e, 0xf3, 0xfc, 0x28, 0x52, 0xdc, 0x66, 0x3a, 0xcf, 0x66, 0x6e, 0xd8, 0x4d, + 0x02, 0x37, 0xeb, 0x96, 0x47, 0x06, 0x3a, 0x4c, 0x8a, 0x89, 0x39, 0x49, 0x64, 0x1e, 0x11, 0xfa, + 0xda, 0xdc, 0xb0, 0xcd, 0x0e, 0xc9, 0x7b, 0xa3, 0x41, 0xbd, 0x8c, 0x1e, 0x94, 0x27, 0x4c, 0x8d, + 0xaf, 0x81, 0x4b, 0xb1, 0xcd, 0xc4, 0x7d, 0xd6, 0x82, 0xae, 0x55, 0x24, 0x67, 0x01, 0x4c, 0x87, + 0x4c, 0xa6, 0xe4, 0x62, 0x9c, 0x51, 0x97, 0x59, 0x9c, 0x14, 0x0a, 0xc8, 0x88, 0x73, 0x63, 0x43, + 0xc2, 0xe9, 0x2b, 0x81, 0x52, 0xa4, 0xe8, 0xea, 0x7e, 0x14, 0x8c, 0x8c, 0xc6, 0x89, 0x43, 0x6c, + 0x40, 0xa1, 0xfe, 0xb5, 0x57, 0x69, 0x37, 0xd2, 0xaa, 0xcb, 0x01, 0x84, 0x25, 0x8b, 0x33, 0x36, + 0x01, 0xcd, 0x53, 0xb4, 0x0d, 0xf3, 0xee, 0x03, 0xcf, 0xf5, 0x55, 0xe9, 0x7a, 0xf4, 0x23, 0xbe, + 0xd6, 0x18, 0x77, 0xe2, 0x2c, 0xb1, 0xa3, 0x6b, 0x45, 0xbc, 0x70, 0x86, 0xf4, 0xf2, 0x8a, 0x78, + 0x06, 0x57, 0x59, 0xab, 0x78, 0xb0, 0xe7, 0x1a, 0x59, 0x1e, 0x7b, 0x05, 0xe7, 0x92, 0xc1, 0x7e, + 0x14, 0xc4, 0xc3, 0x32, 0x77, 0x1e, 0x6b, 0x05, 0x44, 0x12, 0x38, 0x09, 0xc9, 0x21, 0xd0, 0x69, + 0x8b, 0x7b, 0xb6, 0xc7, 0xe2, 0x0e, 0x7a, 0x43, 0xe0, 0x71, 0x85, 0x4b, 0xb2, 0x9c, 0x39, 0x33, + 0xa4, 0xe4, 0x48, 0x6b, 0x61, 0x03, 0xce, 0x2f, 0x81, 0x97, 0xd4, 0xc4, 0x9e, 0x4e, 0x84, 0x35, + 0xbe, 0x8d, 0x8b, 0x7a, 0x4c, 0xd3, 0xff, 0x6d, 0x9f, 0x17, 0x4a, 0x70, 0xcc, 0xa4, 0x07, 0xeb, + 0xc0, 0xf8, 0xe0, 0x62, 0x30, 0x3d, 0x18, 0x41, 0xfc, 0x6a, 0x89, 0xbd, 0xda, 0x51, 0xc3, 0x37, + 0x43, 0xf6, 0x99, 0x5c, 0x1d, 0xfd, 0x93, 0xa9, 0xb3, 0xd7, 0x72, 0xc9, 0x1e, 0x74, 0x18, 0x92, + 0x60, 0x9f, 0xbd, 0x16, 0x7a, 0xb1, 0x3f, 0x27, 0x27, 0x52, 0xe7, 0x41, 0xb4, 0xa6, 0x9d, 0x1a, + 0xff, 0x0f, 0xf1, 0xbb, 0x68, 0x7c, 0x37, 0x33, 0xf7, 0x00, 0x1f, 0x49, 0xd0, 0x20, 0xce, 0x6f, + 0xf1, 0x9a, 0xf1, 0x6d, 0xe6, 0xb7, 0xe9, 0x17, 0x1f, 0x40, 0x21, 0xbb, 0x8c, 0xe8, 0x2a, 0xf0, + 0x9a, 0x45, 0x9a, 0x9b, 0x78, 0x73, 0xce, 0xa5, 0x65, 0x04, 0xfd, 0xfe, 0x60, 0x69, 0x88, 0xe7, + 0xab, 0x69, 0x44, 0x48, 0x30, 0x10, 0x97, 0x4b, 0x2c, 0x4d, 0x53, 0xf5, 0x22, 0xd5, 0x21, 0x38, + 0x5d, 0x3a, 0x33, 0xb0, 0x5d, 0xcf, 0xe1, 0x22, 0xce, 0x90, 0x65, 0xcd, 0xae, 0x35, 0xed, 0x5b, + 0xb4, 0x67, 0xb9, 0x90, 0x6e, 0xa4, 0x1d, 0xca, 0xed, 0x96, 0x0a, 0x53, 0xfb, 0xd7, 0x92, 0xdf, + 0x53, 0xdd, 0x35, 0xbb, 0xdd, 0xc4, 0xbd, 0xb4, 0x39, 0x2d, 0x21, 0x98, 0x0a, 0x5b, 0x7b, 0xcb, + 0x2e, 0x56, 0x6d, 0x6f, 0xd7, 0xe8, 0xd7, 0xa6, 0xf4, 0x8e, 0x66, 0xc1, 0x30, 0x59, 0x84, 0xb9, + 0x68, 0x1f, 0xcb, 0xc3, 0x5d, 0x57, 0xa3, 0x30, 0xe5, 0x6a, 0x2d, 0x5c, 0xec, 0xae, 0xef, 0x7b, + 0xef, 0x12, 0xd2, 0x6a, 0xfa, 0x7b, 0x2e, 0xdc, 0xd9, 0x3c, 0xde, 0x18, 0xf1, 0xfb, 0xf4, 0x07, + 0x68, 0x67, 0xfb, 0xe2, 0x8b, 0xda, 0x89, 0x2d, 0xd3, 0x96, 0x82, 0xfb, 0x64, 0x24, 0xb5, 0xbf, + 0x65, 0xfa, 0xa1, 0x50, 0xa3, 0x2f, 0x73, 0x67, 0xc8, 0x9e, 0x69, 0xf4, 0xa5, 0xb8, 0xa3, 0xa5, + 0x19, 0xe5, 0x99, 0xcd, 0xf3, 0xc9, 0x47, 0xf3, 0xc9, 0x71, 0xeb, 0x7c, 0xa2, 0x93, 0xd4, 0x3d, + 0x60, 0xe7, 0x93, 0xd4, 0x8d, 0xf8, 0xde, 0x13, 0xfd, 0x99, 0x26, 0x39, 0x76, 0x51, 0x2f, 0x39, + 0x86, 0xf4, 0xb6, 0x7d, 0xe9, 0xc7, 0xb8, 0xca, 0x73, 0x98, 0x6b, 0xd1, 0x44, 0x27, 0x7b, 0x74, + 0x96, 0xfe, 0x67, 0xef, 0x78, 0xbb, 0x20, 0xc2, 0x67, 0x3c, 0x51, 0x68, 0x20, 0x89, 0x40, 0xdf, + 0xb7, 0xbf, 0xd4, 0x05, 0x61, 0x90, 0xbe, 0x84, 0x73, 0xef, 0x4b, 0x38, 0xf7, 0xbe, 0x84, 0x73, + 0xaf, 0xb7, 0xee, 0xcc, 0x36, 0xaf, 0x51, 0x70, 0x90, 0x8c, 0x74, 0xd3, 0xdd, 0x11, 0xf6, 0x6d, + 0x3e, 0xdd, 0xa4, 0x60, 0x4e, 0x46, 0xca, 0x93, 0xbe, 0xfc, 0xa4, 0x9f, 0xe5, 0xd3, 0x0c, 0xc3, + 0x4f, 0xb7, 0xe7, 0x69, 0x54, 0xa2, 0xd5, 0x5e, 0x23, 0x67, 0x2f, 0x1b, 0xe0, 0x13, 0x88, 0x06, + 0x3d, 0x8d, 0xab, 0x9d, 0x66, 0x14, 0x68, 0x6d, 0xbd, 0x2a, 0x60, 0x81, 0x63, 0xb6, 0x2b, 0x47, + 0xd4, 0x1e, 0xa1, 0x61, 0x26, 0xf6, 0xa3, 0x7c, 0x9a, 0x92, 0x93, 0x82, 0x89, 0x0c, 0xff, 0x8c, + 0x08, 0x6d, 0x3c, 0xfa, 0x1c, 0xf9, 0xf4, 0x9b, 0x29, 0x5e, 0x83, 0x01, 0xe7, 0x69, 0x0c, 0x0a, + 0xc3, 0x3f, 0x00, 0x59, 0x2e, 0xa2, 0x95, 0x33, 0x13, 0x83, 0x5d, 0x86, 0xb4, 0x9b, 0xe0, 0x8d, + 0xab, 0x4b, 0xe3, 0x0c, 0x62, 0xa5, 0xdb, 0x1b, 0xec, 0xf7, 0x26, 0xac, 0x49, 0xeb, 0xd8, 0xb7, + 0xe4, 0x75, 0x19, 0x3d, 0xf3, 0x8c, 0x67, 0x12, 0x9c, 0x9a, 0xed, 0xcc, 0xa1, 0x7d, 0x24, 0xb6, + 0x21, 0x6e, 0x22, 0x7b, 0x97, 0x64, 0x11, 0x56, 0x2a, 0x13, 0xbb, 0xaa, 0xdc, 0xc0, 0x18, 0xe1, + 0x50, 0x22, 0x8f, 0xe8, 0x21, 0x2f, 0x62, 0xfa, 0x19, 0x1c, 0x9f, 0xbe, 0x30, 0xed, 0x78, 0x39, + 0x85, 0x75, 0x72, 0x9b, 0x2f, 0x31, 0x1d, 0x75, 0x13, 0x3f, 0x11, 0xec, 0x41, 0xec, 0xd8, 0x8a, + 0xbf, 0x2f, 0x23, 0x95, 0x90, 0x43, 0x33, 0x23, 0xe8, 0x70, 0x04, 0x19, 0x1e, 0x23, 0x5c, 0x0f, + 0x7d, 0x64, 0x28, 0xcd, 0x8c, 0xa9, 0x5d, 0xdc, 0xcd, 0xae, 0x45, 0xaa, 0x9f, 0xa0, 0xc2, 0xcb, + 0xbe, 0x22, 0x49, 0x2e, 0x85, 0xc6, 0xd0, 0x43, 0x21, 0x49, 0x8e, 0x05, 0xe3, 0x6e, 0xb9, 0xf1, + 0xa1, 0x56, 0xf0, 0x48, 0x85, 0xfc, 0x5b, 0x22, 0xcd, 0x95, 0x1b, 0xc3, 0xe8, 0xe7, 0x77, 0x89, + 0xdc, 0xf8, 0xfc, 0xcf, 0x39, 0x55, 0xe3, 0x82, 0xa0, 0x54, 0x40, 0xb6, 0xe1, 0x6b, 0x18, 0x6f, + 0x9b, 0x74, 0x2d, 0x26, 0xba, 0x59, 0xd3, 0xd8, 0xb1, 0xa9, 0x9e, 0x47, 0x56, 0x7d, 0xf0, 0x82, + 0x1c, 0x13, 0xa7, 0xb6, 0x9f, 0x08, 0x8d, 0xc2, 0xda, 0xce, 0xce, 0x52, 0xc8, 0x79, 0x99, 0xbb, + 0x89, 0xf2, 0x0a, 0x17, 0x8e, 0xa1, 0xd3, 0x82, 0xfb, 0xdb, 0x60, 0x42, 0xe8, 0xb7, 0x5b, 0x7e, + 0x8b, 0x9c, 0x70, 0xc9, 0x62, 0xba, 0x1d, 0x60, 0x9b, 0xdb, 0x22, 0xf7, 0xf2, 0x42, 0x2f, 0x71, + 0xf1, 0xe7, 0x80, 0x2b, 0x49, 0x3c, 0x01, 0x1e, 0xb9, 0xce, 0x4e, 0x27, 0x58, 0xed, 0x5c, 0x92, + 0x09, 0x5a, 0x0d, 0x80, 0x7b, 0x2d, 0x86, 0x39, 0xaa, 0x84, 0x3c, 0xd7, 0x74, 0x03, 0x9d, 0xdd, + 0x88, 0x53, 0x07, 0xaf, 0x44, 0x54, 0x2f, 0xe1, 0x4e, 0x88, 0x1d, 0x0d, 0xc6, 0x2d, 0x0a, 0xc0, + 0x16, 0xc2, 0x8a, 0xe8, 0x36, 0x71, 0xff, 0xba, 0x2e, 0x21, 0x37, 0xf5, 0x91, 0xb2, 0x96, 0xeb, + 0x92, 0x4c, 0x61, 0x43, 0x18, 0xd3, 0x2c, 0xb5, 0xaa, 0xd3, 0xc4, 0x51, 0x46, 0x58, 0x52, 0x37, + 0xe2, 0xe1, 0x94, 0x2a, 0x9d, 0xe2, 0x8a, 0x12, 0xe1, 0x14, 0x95, 0x37, 0x61, 0x5f, 0xae, 0x34, + 0xf6, 0x65, 0x56, 0x0a, 0xed, 0x8f, 0x88, 0x72, 0x86, 0x31, 0xd5, 0x88, 0x28, 0x27, 0x47, 0x83, + 0x1a, 0xb5, 0x98, 0x3b, 0x59, 0xde, 0xbc, 0xef, 0x0e, 0x7d, 0xa3, 0x49, 0x96, 0xdd, 0xd2, 0x37, + 0xae, 0x3b, 0xf7, 0xcd, 0xcc, 0x5e, 0x91, 0x5a, 0xa7, 0xd5, 0x3b, 0xf7, 0x0a, 0xe2, 0xa1, 0x92, + 0x36, 0x9f, 0x5e, 0xfa, 0xb7, 0xf6, 0x0f, 0xb4, 0x22, 0x6e, 0xf1, 0xff, 0xb7, 0xfe, 0xc1, 0xdc, + 0x6d, 0xa9, 0xfe, 0x99, 0xc9, 0x1b, 0xa0, 0xd7, 0xb5, 0x45, 0xdc, 0x32, 0x9a, 0x9e, 0xad, 0x0d, + 0x9a, 0x9e, 0xad, 0xdb, 0x71, 0x24, 0xd2, 0x09, 0x63, 0x81, 0x53, 0xa3, 0x6e, 0x68, 0xa7, 0xa0, + 0x36, 0xdb, 0xdb, 0x34, 0xce, 0xc4, 0xdc, 0xfb, 0x63, 0x90, 0x43, 0xbe, 0xf4, 0xce, 0x6d, 0x49, + 0x71, 0xd1, 0x3a, 0xc0, 0x5e, 0x04, 0x81, 0x98, 0x07, 0xee, 0x69, 0x2f, 0x44, 0xdc, 0x22, 0x10, + 0x5b, 0x17, 0x37, 0x2f, 0x88, 0x41, 0xb9, 0x22, 0xd9, 0xeb, 0x5c, 0x8f, 0x30, 0xc4, 0xbf, 0x66, + 0xdf, 0xac, 0x58, 0x1c, 0xeb, 0x28, 0x14, 0x1f, 0x8a, 0x51, 0x40, 0xbb, 0x0c, 0xdd, 0xc3, 0xab, + 0xaa, 0xd7, 0x2d, 0x45, 0x68, 0x8d, 0x56, 0x92, 0x6e, 0x4e, 0x9b, 0xb9, 0x88, 0x39, 0x0c, 0x0b, + 0x7f, 0x8c, 0x39, 0xc5, 0xf3, 0x49, 0x8f, 0x49, 0x42, 0xe8, 0x16, 0xcb, 0x4b, 0x66, 0x1d, 0x41, + 0x88, 0x85, 0xe9, 0x0f, 0x08, 0x2b, 0xd0, 0xd3, 0x2b, 0x79, 0xa7, 0x92, 0xc4, 0x5e, 0x3a, 0xeb, + 0x29, 0xe6, 0x13, 0x7a, 0x6f, 0x25, 0xef, 0xa5, 0x53, 0xc7, 0x85, 0x2c, 0xa7, 0xab, 0xbe, 0xa8, + 0x13, 0x56, 0x4e, 0x1d, 0xc7, 0xf7, 0xf2, 0xa9, 0x2b, 0x74, 0xde, 0x43, 0x7b, 0x27, 0xdf, 0x63, + 0x9f, 0xd1, 0x49, 0x97, 0x98, 0x59, 0xf6, 0x0a, 0xc0, 0xc4, 0x12, 0x57, 0x00, 0xb3, 0xd4, 0x09, + 0xde, 0xfb, 0xbe, 0x2f, 0x5d, 0x48, 0xc0, 0xbd, 0xad, 0xb2, 0x85, 0x2c, 0x1d, 0xc6, 0xdd, 0xba, + 0xb3, 0xc6, 0x8b, 0x88, 0x53, 0x96, 0xcd, 0xe0, 0x8a, 0x0a, 0xfe, 0x78, 0x02, 0x2a, 0x5a, 0x4c, + 0xf8, 0xae, 0x6c, 0xa1, 0xd9, 0xf7, 0x1d, 0xc6, 0x8f, 0xbf, 0x23, 0x74, 0x92, 0x7c, 0xfb, 0x98, + 0xe0, 0x86, 0xa6, 0x16, 0x12, 0x77, 0x90, 0x39, 0xcd, 0xdd, 0xc4, 0x1c, 0x61, 0x16, 0xac, 0x8f, + 0xc6, 0x81, 0x4c, 0xf0, 0xdc, 0xec, 0x06, 0x23, 0xe9, 0x00, 0x28, 0x42, 0x4a, 0x50, 0xbd, 0x4e, + 0xb2, 0x87, 0xea, 0x75, 0xc1, 0x9f, 0x36, 0x53, 0x12, 0xd5, 0x19, 0x64, 0x89, 0x13, 0x37, 0x52, + 0x2d, 0x1d, 0xea, 0x75, 0xde, 0x49, 0xcf, 0x3a, 0x81, 0xe1, 0xbc, 0x5d, 0xf0, 0x20, 0xe9, 0xb8, + 0x3d, 0xac, 0x48, 0x73, 0x81, 0xed, 0xa5, 0x64, 0x96, 0x5c, 0x25, 0x0f, 0x28, 0x60, 0xdb, 0x41, + 0x69, 0xc4, 0xfc, 0xce, 0x3a, 0xc3, 0xf9, 0x2c, 0xee, 0x16, 0x54, 0xe7, 0x59, 0x84, 0x93, 0xce, + 0x85, 0xed, 0xd2, 0x71, 0xf5, 0x30, 0xbe, 0x4f, 0xa8, 0x6f, 0xe0, 0xfb, 0xa4, 0x3a, 0xea, 0xf1, + 0x48, 0x47, 0xcd, 0x1e, 0xac, 0xc5, 0xff, 0x4a, 0xe4, 0x43, 0x47, 0x10, 0xd4, 0x63, 0x4a, 0x4e, + 0xbf, 0x1a, 0xee, 0x98, 0x7a, 0x7b, 0x61, 0xbf, 0xaa, 0x4e, 0x9d, 0x56, 0xac, 0x24, 0xf5, 0x47, + 0x3e, 0x7c, 0x9f, 0xe6, 0xf7, 0x65, 0xfc, 0x7a, 0x2a, 0x29, 0x15, 0x05, 0xa7, 0x26, 0x48, 0xc2, + 0x6d, 0xea, 0x64, 0x2f, 0x84, 0x5f, 0x9f, 0xba, 0x80, 0xcf, 0xb9, 0xa7, 0xc8, 0x75, 0x16, 0x9f, + 0x4b, 0xee, 0xe2, 0xa9, 0xe3, 0x0a, 0x64, 0x05, 0xe4, 0x5c, 0xd3, 0xc0, 0x9f, 0xa9, 0xea, 0x7b, + 0xdd, 0xf7, 0x93, 0x26, 0xc4, 0x2c, 0x8f, 0x4e, 0x13, 0x62, 0x14, 0x1a, 0x61, 0x25, 0xc4, 0x21, + 0x09, 0x7d, 0xb0, 0x01, 0x5e, 0x85, 0xa3, 0x59, 0x32, 0x0c, 0xc3, 0x49, 0xd8, 0x0a, 0x6f, 0xc3, + 0x47, 0x52, 0xa1, 0xd4, 0x28, 0xed, 0x93, 0x2e, 0x49, 0x57, 0xb2, 0x64, 0x69, 0x8b, 0xf4, 0xb6, + 0xd4, 0x2d, 0xdd, 0x90, 0x5e, 0xc9, 0x92, 0xb3, 0x24, 0x7c, 0x2c, 0x18, 0x36, 0x22, 0xb5, 0x4a, + 0xc7, 0xe1, 0x50, 0x56, 0xee, 0x42, 0xc4, 0xc4, 0xd4, 0x83, 0x0a, 0x48, 0x63, 0xec, 0x3a, 0x84, + 0xae, 0x63, 0xec, 0x3a, 0x8c, 0xae, 0xc3, 0xec, 0x7a, 0x03, 0x5d, 0x23, 0xec, 0x1a, 0x45, 0xd7, + 0x9e, 0x2f, 0xb6, 0xe1, 0x5c, 0x38, 0x82, 0xae, 0x97, 0xd8, 0xf5, 0x53, 0x74, 0x91, 0xd6, 0x85, + 0x63, 0x52, 0x50, 0xbd, 0xbc, 0x30, 0xa8, 0x1e, 0x1b, 0xc0, 0x98, 0xf4, 0x8b, 0xe1, 0xfd, 0x38, + 0x5a, 0x46, 0xf5, 0x24, 0xba, 0xba, 0xd9, 0x85, 0x6d, 0x92, 0x5a, 0xc9, 0x35, 0x75, 0x01, 0x5d, + 0x8f, 0x95, 0xb8, 0xc9, 0x7e, 0xb0, 0xb4, 0x82, 0xf2, 0xc6, 0xbe, 0x02, 0xa9, 0x0e, 0x71, 0x68, + 0x23, 0xd9, 0xab, 0x87, 0x0e, 0xc0, 0x1c, 0x38, 0x0d, 0x85, 0xfb, 0x29, 0x3c, 0x5e, 0x90, 0x9c, + 0x3b, 0x73, 0xac, 0x71, 0x87, 0x29, 0xc3, 0xaf, 0xf9, 0x82, 0xeb, 0xd5, 0xd3, 0x26, 0x74, 0x5d, + 0x7d, 0xfb, 0x13, 0xde, 0xdf, 0x52, 0x94, 0x9a, 0x39, 0xb6, 0x0f, 0xfa, 0x13, 0x95, 0x8a, 0x2c, + 0xd7, 0x33, 0x77, 0x94, 0x44, 0xf2, 0xd0, 0xcf, 0x1d, 0xb7, 0x07, 0x39, 0xd5, 0x24, 0xf1, 0x10, + 0x24, 0xb3, 0x69, 0xfc, 0x11, 0xbb, 0x3b, 0xf4, 0xc9, 0x5b, 0xb7, 0xcc, 0x11, 0x9b, 0x02, 0x39, + 0x7d, 0xfc, 0x6d, 0xe4, 0xe6, 0xf2, 0x71, 0x0c, 0xcf, 0x50, 0x1d, 0x9a, 0xb6, 0xc5, 0x73, 0x69, + 0x26, 0x49, 0xcd, 0x36, 0xc4, 0x9d, 0xc4, 0x5c, 0x92, 0x9a, 0xa8, 0x4f, 0xba, 0xef, 0x39, 0x32, + 0x20, 0x87, 0xba, 0xef, 0x19, 0xd9, 0x14, 0xb7, 0x52, 0xff, 0x00, 0xe2, 0xde, 0xd4, 0x37, 0xc9, + 0x27, 0x6b, 0x40, 0x7f, 0xba, 0x25, 0x77, 0x4c, 0x9d, 0x99, 0x17, 0x04, 0xe6, 0x21, 0x42, 0xac, + 0xcb, 0x12, 0x9f, 0xcb, 0xf5, 0xe2, 0xbc, 0x6e, 0xe6, 0x66, 0x56, 0xc0, 0x30, 0xc9, 0x30, 0x94, + 0xec, 0x77, 0x33, 0x0f, 0x34, 0x61, 0x05, 0x69, 0x9c, 0x00, 0x0c, 0xa6, 0x22, 0x0c, 0x9b, 0x3a, + 0x93, 0x00, 0xc3, 0x69, 0xca, 0x97, 0xf9, 0x4d, 0xf3, 0x66, 0xac, 0x4b, 0x51, 0x5a, 0x01, 0xa5, + 0xbd, 0x17, 0xc7, 0x10, 0x0a, 0x11, 0x7a, 0x8f, 0x91, 0x4f, 0xbb, 0xc5, 0xdd, 0x3d, 0x0f, 0xfb, + 0x92, 0x74, 0xec, 0xc0, 0x21, 0x1e, 0xad, 0xb3, 0xe8, 0x1a, 0xe6, 0xb1, 0xb1, 0x40, 0x87, 0x81, + 0x66, 0x39, 0xe2, 0x11, 0x52, 0xc7, 0xb4, 0xca, 0xae, 0x9d, 0xa9, 0x2f, 0x60, 0x63, 0xff, 0x46, + 0xa9, 0x43, 0xfd, 0x18, 0x5d, 0x3c, 0xfa, 0x53, 0xe7, 0x94, 0x1e, 0x0f, 0x8d, 0x73, 0xa7, 0x18, + 0xdb, 0xbb, 0x03, 0xd0, 0x61, 0xc4, 0x1c, 0xc4, 0xba, 0x50, 0x9a, 0x38, 0xb4, 0x2e, 0x69, 0xa2, + 0xf5, 0xa0, 0xc4, 0xd8, 0x67, 0xc6, 0x9c, 0x06, 0x30, 0x7d, 0x80, 0xf8, 0xee, 0xf0, 0xd7, 0xef, + 0xa2, 0xf4, 0x25, 0x9c, 0xdb, 0x49, 0xc5, 0xa9, 0xad, 0xb3, 0xb9, 0x3c, 0x6b, 0x4e, 0x29, 0xf9, + 0xfc, 0x7b, 0x59, 0xc9, 0xe1, 0xef, 0x97, 0x14, 0x53, 0xb7, 0x84, 0xab, 0x6a, 0x22, 0xf4, 0xa1, + 0xb6, 0xfa, 0xc7, 0x04, 0xef, 0xcb, 0xe4, 0x81, 0xa2, 0x6a, 0x5c, 0x53, 0x65, 0xfd, 0xea, 0x1d, + 0x57, 0x61, 0x7a, 0xd5, 0xde, 0xba, 0x1e, 0x7d, 0x1d, 0xea, 0x28, 0xe2, 0xd8, 0x67, 0x71, 0x4c, + 0x0f, 0xd3, 0x29, 0x4b, 0xc2, 0xcc, 0x52, 0x02, 0x17, 0x88, 0x86, 0x25, 0x99, 0x54, 0x0c, 0x7f, + 0x43, 0x17, 0x7e, 0x49, 0x0b, 0x9f, 0xe8, 0x56, 0x47, 0x36, 0x26, 0x4a, 0x64, 0x93, 0xa7, 0x63, + 0xea, 0x38, 0x8e, 0xb3, 0x1b, 0x6b, 0xb2, 0xdc, 0xba, 0x91, 0x2c, 0xb5, 0x26, 0xcc, 0xfc, 0x6b, + 0x8c, 0x47, 0x30, 0xef, 0xc3, 0x94, 0x17, 0xfe, 0xbe, 0x41, 0x69, 0xb1, 0xe6, 0x67, 0x44, 0xfc, + 0x4f, 0xde, 0xf7, 0x40, 0x52, 0x1d, 0xde, 0x18, 0x97, 0x69, 0x36, 0x74, 0x9b, 0x70, 0x36, 0xac, + 0xbb, 0x15, 0x86, 0x29, 0x70, 0xd7, 0x3b, 0xa1, 0x0f, 0x60, 0x79, 0x51, 0x74, 0xea, 0x8c, 0x3d, + 0x2a, 0x52, 0xaa, 0x15, 0xfa, 0x32, 0x13, 0x6e, 0x39, 0x58, 0xf5, 0xa1, 0x5a, 0x9f, 0x2c, 0xb7, + 0x13, 0x4c, 0x03, 0x47, 0xea, 0x1b, 0x69, 0xcb, 0xcc, 0x79, 0xa8, 0x43, 0x6d, 0x36, 0xac, 0xc5, + 0x77, 0xdc, 0xd0, 0xab, 0x58, 0x1f, 0xea, 0x87, 0x7c, 0xf4, 0xd1, 0xbb, 0x37, 0x93, 0x87, 0x9b, + 0x66, 0xc5, 0x16, 0xca, 0x65, 0xfa, 0x5a, 0xb2, 0x89, 0x72, 0xb1, 0xcd, 0xcc, 0x05, 0x0c, 0x9d, + 0x6c, 0xed, 0xfe, 0xaf, 0xe0, 0xfc, 0xfb, 0x67, 0x71, 0x4d, 0x44, 0x1a, 0x48, 0xb3, 0xce, 0xa3, + 0x72, 0xb1, 0x5a, 0x73, 0x3e, 0xfa, 0x50, 0x50, 0xaa, 0x44, 0xdc, 0xb6, 0x26, 0x99, 0x35, 0xfc, + 0xfa, 0xd4, 0xc9, 0x44, 0x69, 0xb7, 0x71, 0x84, 0x7e, 0x0b, 0x70, 0xb5, 0x48, 0xae, 0x80, 0xaa, + 0x4e, 0x5f, 0x3b, 0xf3, 0x6d, 0xfa, 0x12, 0x27, 0x4d, 0xfc, 0x15, 0x4a, 0x4e, 0x2a, 0x2c, 0xe9, + 0x56, 0x6c, 0xdd, 0xa5, 0x67, 0xd6, 0x29, 0xd6, 0x74, 0x88, 0xfd, 0xcc, 0x40, 0x6a, 0x0c, 0xe2, + 0x56, 0xe6, 0xb0, 0x36, 0x36, 0x06, 0x87, 0x1a, 0x94, 0x39, 0xbe, 0x20, 0x86, 0x9b, 0x49, 0x4a, + 0x79, 0x64, 0x53, 0xa7, 0x15, 0xdd, 0x56, 0xe1, 0x6e, 0x37, 0xe2, 0x7a, 0x3b, 0x9c, 0x1a, 0x1f, + 0xc4, 0xf5, 0x29, 0x8d, 0x09, 0xd3, 0xb4, 0x82, 0xa4, 0xa5, 0xb2, 0xe8, 0x52, 0xe5, 0xe8, 0x52, + 0xbd, 0x41, 0x7c, 0xe6, 0xb4, 0x8a, 0x71, 0xa7, 0x33, 0x25, 0x7c, 0xb8, 0x37, 0x9c, 0x8e, 0x61, + 0x79, 0xed, 0x73, 0x0e, 0xef, 0x01, 0x47, 0x3c, 0x6f, 0x41, 0x94, 0x35, 0x18, 0x70, 0x1f, 0x4c, + 0x06, 0x31, 0xfe, 0xa8, 0x62, 0xc5, 0x5d, 0xe9, 0x34, 0xae, 0xf3, 0xbf, 0xa1, 0x35, 0x1e, 0xc3, + 0xd4, 0xf1, 0x55, 0xfe, 0x62, 0xd5, 0x64, 0x0d, 0x83, 0xf9, 0x09, 0xb3, 0x90, 0xa7, 0x54, 0x4c, + 0x18, 0x32, 0x1a, 0x3d, 0xc2, 0x7b, 0x6a, 0xa9, 0xba, 0xb1, 0xa8, 0x46, 0xdd, 0x8c, 0xa9, 0xb6, + 0xe2, 0xb3, 0xdd, 0x59, 0x3c, 0x35, 0x01, 0x55, 0xb3, 0xa0, 0x14, 0x6b, 0x1b, 0x7d, 0x93, 0xda, + 0x19, 0x1d, 0xc5, 0xd9, 0xb0, 0x51, 0x2b, 0xa3, 0x6d, 0x41, 0x10, 0x9a, 0xb0, 0x6f, 0x71, 0x94, + 0xe8, 0xac, 0x30, 0x69, 0x62, 0x48, 0x63, 0x5c, 0x6b, 0xa0, 0xd3, 0x8f, 0xea, 0x0f, 0x10, 0xbf, + 0x8d, 0x69, 0xa3, 0xef, 0x4f, 0x5a, 0x6f, 0x86, 0x94, 0xd0, 0x40, 0x10, 0xca, 0x3c, 0x8a, 0x78, + 0x49, 0x13, 0xfe, 0x1e, 0xa4, 0x31, 0x33, 0x8f, 0xc8, 0xc1, 0x79, 0x21, 0x82, 0x21, 0xd0, 0x84, + 0x58, 0xca, 0x41, 0x9d, 0x9e, 0x35, 0xe2, 0x86, 0xd3, 0xb5, 0xae, 0x14, 0xa8, 0x7d, 0x31, 0x5c, + 0x33, 0x71, 0x87, 0x35, 0x08, 0xc6, 0xae, 0x82, 0x85, 0xfd, 0x06, 0x98, 0x3a, 0x85, 0x6e, 0x73, + 0x67, 0x6e, 0xf4, 0xcd, 0xa4, 0xe1, 0x57, 0x7b, 0x16, 0x06, 0x71, 0x35, 0x9a, 0x70, 0x75, 0xc9, + 0x53, 0xa7, 0x7c, 0x18, 0x13, 0xe7, 0xe3, 0x49, 0xd9, 0xac, 0xcd, 0x91, 0x63, 0x58, 0x03, 0x1f, + 0x96, 0x18, 0x94, 0x83, 0x76, 0xad, 0x96, 0x7c, 0x1a, 0x0c, 0xb3, 0x2b, 0x14, 0x30, 0xbb, 0x99, + 0x53, 0xd3, 0x18, 0xed, 0x84, 0x42, 0xb1, 0xe3, 0xe3, 0x6c, 0x3c, 0x08, 0x51, 0x7c, 0x1f, 0x82, + 0x58, 0x66, 0x94, 0x1f, 0x0a, 0x82, 0x6e, 0xf4, 0xd0, 0x57, 0xc3, 0xbd, 0x78, 0x17, 0xf6, 0x62, + 0x4c, 0xdd, 0xcc, 0xee, 0x3c, 0x75, 0x6b, 0x51, 0xbd, 0xba, 0x9d, 0xdd, 0x36, 0x75, 0x67, 0x51, + 0xb5, 0xfa, 0x22, 0xbb, 0xe7, 0xa9, 0x2f, 0x61, 0x4f, 0x7f, 0x8f, 0xdd, 0x1e, 0xf5, 0x55, 0xfe, + 0xb5, 0xaa, 0xdf, 0x2f, 0xea, 0x98, 0xba, 0xa4, 0x8e, 0xf0, 0x5a, 0xdd, 0x4b, 0x92, 0x02, 0x55, + 0xe9, 0xde, 0x9e, 0x0a, 0x08, 0x6d, 0xb2, 0x71, 0x98, 0xb5, 0xa5, 0x17, 0x68, 0x3f, 0x96, 0x23, + 0xbf, 0x38, 0x8a, 0xff, 0x8e, 0xff, 0xe2, 0x78, 0x68, 0x22, 0xcb, 0x1f, 0xba, 0xba, 0x09, 0x9c, + 0x74, 0xdf, 0x40, 0x52, 0x90, 0x36, 0x39, 0x26, 0x1b, 0xf9, 0x16, 0x73, 0x5f, 0xe3, 0x06, 0x9c, + 0xdd, 0x1b, 0xe2, 0xa7, 0x08, 0xda, 0xe0, 0x08, 0x8e, 0x62, 0x0f, 0x49, 0x5d, 0x4a, 0x5f, 0x56, + 0x4d, 0x36, 0xf7, 0x95, 0x25, 0x3a, 0x3a, 0x27, 0x00, 0x86, 0xf3, 0xaf, 0xff, 0xe7, 0xa7, 0xfb, + 0x8d, 0x72, 0xcd, 0x2f, 0x8e, 0xe1, 0xbf, 0xdb, 0xe6, 0x78, 0x08, 0xd7, 0x43, 0x73, 0x2e, 0xd5, + 0x49, 0xce, 0xee, 0x05, 0xad, 0xc7, 0x6a, 0x14, 0x2b, 0x96, 0x94, 0xad, 0xf9, 0xf6, 0x35, 0x3e, + 0xdd, 0xb8, 0x31, 0x69, 0x46, 0xf8, 0x70, 0xc0, 0xda, 0x81, 0xf8, 0xda, 0x68, 0x67, 0x4f, 0x9f, + 0xb9, 0xff, 0xde, 0x54, 0xdf, 0x1f, 0xc6, 0x1c, 0xda, 0x7d, 0x72, 0xf5, 0x2f, 0x7e, 0x86, 0xff, + 0x6e, 0x5f, 0x6b, 0xca, 0xdd, 0x94, 0xc9, 0x3d, 0x36, 0xd0, 0xee, 0xfa, 0xd4, 0xf8, 0xb1, 0x14, + 0x44, 0xc0, 0xb2, 0x37, 0x36, 0x3e, 0x9d, 0xcc, 0xc3, 0xb2, 0x77, 0xc5, 0x9e, 0x89, 0xdb, 0x95, + 0xb2, 0xb5, 0x50, 0xe6, 0x06, 0x92, 0x95, 0x77, 0xb3, 0x84, 0x28, 0xf1, 0x6a, 0x8e, 0xca, 0x11, + 0x96, 0x3f, 0x3d, 0xd7, 0xb0, 0x59, 0x31, 0x53, 0x0f, 0xba, 0x2c, 0x8e, 0xc5, 0xbe, 0x5c, 0x5e, + 0x87, 0x63, 0xd4, 0x3f, 0x8e, 0x48, 0x0c, 0x21, 0x6d, 0x22, 0x07, 0x69, 0xc0, 0x8e, 0xa9, 0x0b, + 0x5a, 0xce, 0x5b, 0x43, 0x97, 0xc0, 0x9e, 0x9a, 0x23, 0xaa, 0xeb, 0xa1, 0x35, 0x88, 0xe9, 0x98, + 0xf1, 0x1d, 0x03, 0x0b, 0xae, 0x9c, 0xc3, 0x0f, 0x85, 0xc1, 0x4a, 0xeb, 0xe3, 0xa1, 0x10, 0xe4, + 0x7c, 0xa1, 0x43, 0x3d, 0x62, 0x88, 0xe1, 0xfb, 0xa7, 0x86, 0x25, 0x0b, 0x3a, 0xd4, 0xe3, 0xe0, + 0xc2, 0xf7, 0x49, 0x98, 0x23, 0xb0, 0x91, 0x8f, 0x55, 0x9c, 0x21, 0x79, 0xd6, 0xb0, 0xe1, 0xb7, + 0x9d, 0x26, 0x6b, 0xc8, 0x50, 0xd4, 0x65, 0x86, 0xa0, 0x04, 0x14, 0xc6, 0x12, 0x6e, 0x45, 0x2c, + 0x43, 0xa2, 0x61, 0x98, 0x5f, 0x20, 0xcd, 0x40, 0xf7, 0xe3, 0xdb, 0x08, 0x0e, 0x7e, 0xcf, 0xff, + 0x02, 0x69, 0x26, 0x76, 0x72, 0x7e, 0xf9, 0xb8, 0xb6, 0xce, 0xf1, 0xda, 0xba, 0x42, 0xfc, 0x63, + 0x3c, 0x2f, 0x70, 0x5f, 0xd0, 0xea, 0x7d, 0x56, 0x0b, 0xf7, 0x23, 0xcc, 0xcc, 0x32, 0xb4, 0xe2, + 0xdb, 0x6a, 0x68, 0xab, 0xfe, 0x40, 0x9a, 0xbb, 0x20, 0x66, 0x68, 0xa7, 0x19, 0x50, 0x0a, 0x34, + 0xf2, 0x5d, 0x52, 0xb7, 0xf9, 0xa1, 0x90, 0xa1, 0x87, 0xdd, 0xb8, 0x47, 0x2d, 0x08, 0x19, 0xfa, + 0x16, 0x2c, 0x31, 0xbc, 0x84, 0x6b, 0xea, 0x74, 0xa2, 0x1c, 0xc7, 0x0f, 0xf1, 0xc3, 0xf8, 0x9c, + 0x68, 0xbb, 0x14, 0x10, 0x3a, 0x87, 0x82, 0x5b, 0x16, 0x04, 0x0d, 0x49, 0x58, 0x03, 0x36, 0xa9, + 0x12, 0x77, 0xf5, 0x7c, 0x84, 0x3e, 0xc7, 0xc5, 0xc9, 0x87, 0xd6, 0x33, 0x07, 0xe9, 0x7b, 0xec, + 0x35, 0x43, 0x32, 0x8e, 0xdf, 0x10, 0xb7, 0x6f, 0x85, 0x17, 0xf5, 0x29, 0x11, 0xf7, 0xa1, 0x6f, + 0x90, 0x7d, 0x59, 0x01, 0xe3, 0x1b, 0xa1, 0x4b, 0xd2, 0x25, 0xc5, 0x46, 0x2b, 0x37, 0x6e, 0x0a, + 0x5d, 0xca, 0x32, 0x2a, 0x46, 0x7c, 0x17, 0xda, 0x63, 0x49, 0xa2, 0x80, 0x86, 0xa8, 0x74, 0x75, + 0xb4, 0x0b, 0xf7, 0xac, 0x75, 0xaf, 0x19, 0xfa, 0xb0, 0x6d, 0xe7, 0x12, 0x15, 0xe1, 0xa0, 0xad, + 0xc8, 0x10, 0x43, 0xc8, 0x3d, 0x97, 0x5d, 0x4b, 0xd0, 0x25, 0x63, 0x39, 0xe7, 0x92, 0xe0, 0x20, + 0xdc, 0xd4, 0x56, 0xf5, 0x5b, 0x33, 0x7c, 0x39, 0x24, 0xcd, 0x5d, 0x3e, 0xd0, 0x5d, 0x80, 0xf4, + 0x59, 0xa4, 0xb4, 0xc0, 0x1a, 0xc2, 0x71, 0x9d, 0x50, 0x2a, 0x28, 0x5d, 0x2e, 0xa6, 0x18, 0x81, + 0xb8, 0x35, 0x8c, 0x6e, 0xec, 0x49, 0x83, 0x61, 0x09, 0xc2, 0x2c, 0x43, 0xdc, 0xfc, 0x85, 0xa0, + 0x61, 0x09, 0x85, 0xdd, 0x2e, 0x77, 0xc5, 0x58, 0x14, 0x9e, 0x3a, 0xee, 0xb9, 0xdb, 0xb4, 0x11, + 0xf7, 0xe0, 0x6b, 0xf2, 0xdd, 0xcc, 0x31, 0x79, 0x4d, 0xae, 0xb1, 0x63, 0x79, 0xe1, 0x82, 0xe1, + 0x4d, 0xf1, 0x1b, 0xb8, 0x4f, 0x1f, 0x27, 0x6e, 0xe3, 0xe9, 0x59, 0xfc, 0x36, 0xf3, 0x7b, 0xb6, + 0x63, 0xc9, 0x53, 0x05, 0xef, 0x3e, 0xdb, 0x07, 0x15, 0x6e, 0x69, 0x6e, 0xe8, 0x5f, 0x9a, 0x20, + 0xe6, 0x9a, 0xba, 0x16, 0x97, 0xc5, 0xca, 0x11, 0xda, 0x60, 0x7a, 0xa5, 0xd4, 0x0c, 0xa7, 0xef, + 0xc4, 0x51, 0x3c, 0x75, 0x6d, 0xf9, 0xe6, 0x37, 0x36, 0xc7, 0x4f, 0x60, 0xef, 0xbf, 0x9d, 0x70, + 0x60, 0x0f, 0x9d, 0x93, 0x6b, 0x1a, 0x37, 0xc6, 0x0a, 0x98, 0x0b, 0x3f, 0x93, 0x2e, 0x8b, 0x39, + 0x83, 0x6a, 0x1a, 0x9f, 0x56, 0x4c, 0x7d, 0x50, 0x82, 0xf5, 0x38, 0x84, 0x6b, 0xab, 0xe3, 0x74, + 0xd1, 0x62, 0xc2, 0xce, 0x8d, 0xfb, 0x48, 0x9a, 0x74, 0x6b, 0xb6, 0x5e, 0x9a, 0xd4, 0x09, 0x0f, + 0x90, 0x34, 0x69, 0x65, 0xe8, 0x52, 0xf6, 0x9c, 0x1f, 0x5e, 0xca, 0xb6, 0x27, 0xfc, 0x2e, 0x4f, + 0xf6, 0x1c, 0xd9, 0xe8, 0xb2, 0x78, 0x30, 0xb5, 0x23, 0xa8, 0xcc, 0x21, 0xfd, 0x69, 0x89, 0x5c, + 0x47, 0x11, 0xe4, 0xe3, 0x48, 0x56, 0x61, 0xee, 0x23, 0xb1, 0x60, 0x42, 0xc2, 0x95, 0xd1, 0x18, + 0xdb, 0x1e, 0x1f, 0x77, 0x44, 0x8a, 0x6a, 0xa6, 0x8e, 0xf3, 0x29, 0x6e, 0x05, 0xee, 0xa7, 0x6e, + 0xa2, 0xcb, 0x88, 0xab, 0x61, 0xe9, 0x8d, 0xdf, 0x84, 0xeb, 0x77, 0x22, 0xec, 0x6f, 0xe5, 0x50, + 0x0f, 0x87, 0xba, 0x38, 0xa4, 0x9d, 0x75, 0xf4, 0x6d, 0x41, 0x7f, 0x39, 0x87, 0xfa, 0x15, 0x92, + 0x88, 0xf2, 0x18, 0xf7, 0x92, 0x36, 0x2c, 0xe3, 0xab, 0x98, 0xd2, 0x9c, 0x4e, 0xe9, 0x31, 0x9e, + 0xe3, 0xd0, 0xb3, 0x33, 0x52, 0x7a, 0xb2, 0xf3, 0x29, 0x34, 0x3b, 0x97, 0x43, 0xc9, 0xbe, 0x8e, + 0x6d, 0x41, 0x4c, 0xea, 0x49, 0x18, 0x1b, 0x49, 0xc6, 0x56, 0xc7, 0x35, 0x8a, 0x14, 0x91, 0x34, + 0x8f, 0x30, 0xce, 0xd6, 0x2a, 0xd2, 0xa0, 0x42, 0xf8, 0x73, 0x37, 0x69, 0x4f, 0x41, 0x6a, 0xe9, + 0x28, 0xa6, 0x54, 0x6e, 0xc1, 0xce, 0x9b, 0xe3, 0x90, 0xb5, 0x17, 0x71, 0xe1, 0x4a, 0x9c, 0x8b, + 0x83, 0x88, 0x1f, 0x97, 0x11, 0x3c, 0x35, 0xfa, 0x31, 0xc4, 0xa3, 0x93, 0x25, 0xdb, 0xa8, 0xbb, + 0xad, 0x05, 0x29, 0x17, 0xd7, 0xf3, 0x7f, 0x85, 0xb9, 0xf8, 0xfe, 0xef, 0x70, 0x1f, 0xbe, 0xff, + 0x02, 0x64, 0x7c, 0xbf, 0x06, 0xf3, 0xf0, 0xfd, 0x03, 0xb0, 0xe3, 0x7b, 0x18, 0x57, 0x6a, 0x87, + 0xfa, 0x43, 0x5c, 0xa9, 0x1d, 0xea, 0x08, 0xae, 0xd4, 0x0e, 0xf5, 0x47, 0xe0, 0xc4, 0x35, 0x1d, + 0x24, 0x1a, 0x76, 0xea, 0x5a, 0x9a, 0x86, 0xcd, 0x02, 0xcb, 0xd4, 0x35, 0xa1, 0x33, 0x62, 0x6a, + 0x9a, 0x7f, 0xb3, 0xa7, 0x4d, 0xb6, 0x22, 0x98, 0x4b, 0x7c, 0x7b, 0x8d, 0x9b, 0x8a, 0xa2, 0xd3, + 0x16, 0x0e, 0x9d, 0x35, 0x9d, 0x83, 0xee, 0x5c, 0x76, 0xff, 0xc7, 0xe9, 0x7c, 0xda, 0x0d, 0xa6, + 0xe7, 0xb0, 0x6f, 0xee, 0xf4, 0xdc, 0xee, 0x86, 0xa2, 0xd0, 0xb4, 0x5d, 0x68, 0x97, 0x98, 0x76, + 0xe2, 0x17, 0x37, 0xad, 0x7f, 0xe6, 0xfd, 0xcc, 0x4b, 0x18, 0x7b, 0x40, 0x71, 0x7a, 0xe9, 0xb6, + 0xaa, 0x48, 0x6a, 0xf6, 0xde, 0x25, 0xf2, 0x6e, 0x0c, 0xfa, 0x82, 0x74, 0xe7, 0x01, 0xc4, 0xdb, + 0x3d, 0x7e, 0xe3, 0x31, 0xe6, 0xca, 0x2d, 0xc0, 0xb9, 0x7d, 0x83, 0x64, 0xf2, 0xa6, 0xae, 0x11, + 0x8d, 0xb2, 0xf5, 0x5e, 0xd2, 0xe7, 0xfc, 0x71, 0x27, 0xf6, 0x11, 0xf6, 0x93, 0x81, 0xac, 0x83, + 0xd8, 0x12, 0xcb, 0xe5, 0x20, 0xb4, 0x06, 0x71, 0xdf, 0x62, 0x59, 0xbc, 0x1b, 0xea, 0x46, 0x9d, + 0x14, 0xde, 0xe6, 0xa2, 0x35, 0x86, 0x7a, 0x75, 0x08, 0xdf, 0x35, 0xea, 0x8e, 0xee, 0xd9, 0x45, + 0x21, 0x75, 0x17, 0x4b, 0xea, 0xed, 0x4e, 0x4b, 0xe7, 0x39, 0x6e, 0xd7, 0xa3, 0x0a, 0x9d, 0x09, + 0x11, 0x8f, 0xb3, 0x84, 0xa5, 0xcd, 0x6d, 0xd8, 0x56, 0x7d, 0xc9, 0xb0, 0x75, 0xa6, 0xfc, 0x9a, + 0xaf, 0x48, 0xf2, 0x20, 0x14, 0xd3, 0x30, 0x4e, 0x35, 0x1f, 0x57, 0xc4, 0xe5, 0x84, 0x09, 0xe1, + 0x8e, 0x2c, 0x55, 0xa6, 0x64, 0xfb, 0xa6, 0x2c, 0x0c, 0x4d, 0xea, 0x13, 0x4a, 0x5a, 0xbe, 0xf0, + 0x45, 0xc4, 0x4b, 0x0e, 0x22, 0xb6, 0xfa, 0x12, 0xee, 0x9c, 0xdf, 0x63, 0x59, 0x43, 0x2c, 0xf3, + 0xa3, 0xb7, 0x04, 0x47, 0x13, 0x51, 0x4b, 0x1f, 0x6d, 0xd0, 0x74, 0xcc, 0xb5, 0x4b, 0x17, 0xaa, + 0x3e, 0x90, 0xa2, 0x62, 0xb6, 0xe8, 0x64, 0xf0, 0x36, 0x0b, 0x59, 0x40, 0x3e, 0xf3, 0x1d, 0xf8, + 0x5a, 0x46, 0xc6, 0x2b, 0xa6, 0x97, 0x9a, 0x8a, 0x03, 0x5c, 0x64, 0x39, 0x40, 0x01, 0x63, 0x1f, + 0xa3, 0xd5, 0xa9, 0x71, 0xaf, 0x89, 0x5d, 0x7a, 0x94, 0xeb, 0x65, 0xcd, 0x48, 0x21, 0x36, 0x6c, + 0x93, 0x8b, 0x0c, 0xa2, 0xcd, 0x80, 0xb5, 0x70, 0xb3, 0xff, 0xa9, 0xb4, 0x7f, 0x0e, 0xfb, 0x37, + 0xa6, 0xfd, 0xd8, 0x32, 0x92, 0x15, 0x1c, 0xd1, 0xe5, 0xc9, 0x5c, 0x2c, 0x42, 0xde, 0xd0, 0x66, + 0x2e, 0x46, 0xaa, 0xf7, 0x6f, 0xe3, 0xda, 0x97, 0xc9, 0x66, 0x92, 0x51, 0xe4, 0xb8, 0x56, 0x3d, + 0x17, 0x8a, 0xb7, 0x78, 0xea, 0x8c, 0x26, 0x49, 0x85, 0x63, 0xd2, 0xb4, 0xed, 0x76, 0x92, 0x83, + 0x98, 0x67, 0x8f, 0x38, 0xd1, 0x5d, 0xd6, 0x0a, 0xb9, 0xb7, 0xca, 0xd6, 0x7d, 0xe7, 0xef, 0xf4, + 0x12, 0x52, 0x1a, 0x66, 0x2f, 0x7d, 0xe7, 0xef, 0xe4, 0xbb, 0x48, 0xa3, 0xc0, 0xd4, 0xcb, 0x74, + 0x7a, 0x2f, 0x75, 0x7c, 0x82, 0x14, 0x17, 0xd1, 0x29, 0x0a, 0xfc, 0x56, 0x4e, 0x6a, 0x50, 0x6d, + 0xaa, 0xdd, 0xc3, 0x14, 0xce, 0x35, 0xa4, 0xd8, 0xa7, 0xcf, 0x89, 0x1c, 0x35, 0xcc, 0xc3, 0x10, + 0x87, 0x1b, 0x48, 0x1f, 0xdc, 0x90, 0x1c, 0xed, 0xd9, 0x2e, 0xb7, 0x95, 0xf8, 0xdf, 0x8d, 0xbd, + 0x7a, 0xfe, 0x77, 0xa7, 0x07, 0x1a, 0xe2, 0xf0, 0x49, 0xa3, 0x02, 0x9f, 0xf8, 0xab, 0x69, 0xde, + 0xf0, 0x49, 0x90, 0xb8, 0xa1, 0xd6, 0xb4, 0x66, 0xdc, 0xad, 0x6e, 0x4c, 0xda, 0x8a, 0x82, 0x8c, + 0x5f, 0x49, 0x50, 0xa0, 0x6e, 0x75, 0xdc, 0xc5, 0x37, 0x4b, 0xad, 0x45, 0x61, 0xc6, 0xb3, 0x24, + 0x90, 0x11, 0xcf, 0xa2, 0xb9, 0xf8, 0x22, 0x71, 0xa2, 0xf3, 0xec, 0x9e, 0x1b, 0xfe, 0x8b, 0xa5, + 0x37, 0x2e, 0x0d, 0x11, 0x3c, 0x31, 0x3c, 0xd5, 0x7d, 0x2f, 0xce, 0xd6, 0xcd, 0xfa, 0x6f, 0x1c, + 0x3e, 0x98, 0x9c, 0x43, 0xb9, 0x62, 0x3b, 0x5d, 0x08, 0x83, 0x66, 0x7e, 0x63, 0xfb, 0xa0, 0x38, + 0xb2, 0x4f, 0x61, 0xdd, 0x90, 0xa2, 0x9c, 0x9a, 0xa6, 0x19, 0x2a, 0x93, 0x4c, 0xa7, 0x18, 0xa1, + 0x37, 0x70, 0x7f, 0x35, 0x71, 0x98, 0x86, 0x27, 0x4c, 0x3b, 0x17, 0xc4, 0xc0, 0x45, 0x3b, 0x0d, + 0xc2, 0x0c, 0xd2, 0x9c, 0x26, 0xf3, 0xfe, 0x3d, 0x8f, 0xf7, 0x72, 0x3b, 0xaf, 0xa7, 0x4f, 0x10, + 0x4b, 0x5c, 0xa2, 0x0e, 0xe5, 0xd2, 0x9a, 0x32, 0xe0, 0x9a, 0xc2, 0x3a, 0x51, 0x8e, 0x7c, 0x52, + 0x9a, 0x87, 0x35, 0xd9, 0xc1, 0xfa, 0x86, 0x5e, 0xa6, 0xf3, 0x52, 0xfc, 0x25, 0x8d, 0x20, 0xf3, + 0xa2, 0xeb, 0x58, 0x0a, 0x7c, 0x0f, 0xba, 0xed, 0x9a, 0x7b, 0xdf, 0x17, 0xd7, 0xc0, 0xfd, 0xea, + 0x30, 0xbe, 0x1d, 0xea, 0x0f, 0xf1, 0x3d, 0x5f, 0x1d, 0xc1, 0xb7, 0x53, 0xfd, 0x11, 0xe9, 0x98, + 0x59, 0x3e, 0x80, 0xf9, 0xec, 0xe6, 0xbe, 0xd8, 0x9f, 0x5a, 0x97, 0xd8, 0x82, 0x7c, 0x6c, 0x41, + 0x40, 0xc8, 0x99, 0xcb, 0x76, 0xc7, 0x6c, 0x47, 0x3d, 0xf6, 0xb2, 0x83, 0x4f, 0xc1, 0x57, 0xe1, + 0xba, 0x39, 0x8b, 0xb9, 0x9e, 0x11, 0x58, 0xc8, 0x17, 0x3b, 0xb3, 0xb2, 0xd5, 0xf7, 0xf1, 0x3d, + 0x4b, 0xfd, 0x67, 0xbe, 0x07, 0xee, 0x50, 0xcf, 0x08, 0xde, 0x41, 0x4f, 0x4a, 0x77, 0x27, 0x9d, + 0x81, 0x19, 0x93, 0x0e, 0xba, 0x37, 0xc5, 0x75, 0x7e, 0x96, 0x76, 0x6f, 0x5a, 0xe1, 0x38, 0x16, + 0x93, 0xd0, 0x61, 0xb3, 0xa9, 0x17, 0x71, 0x5d, 0x9e, 0x65, 0xe9, 0xa4, 0x8a, 0xba, 0x0f, 0x23, + 0x46, 0x21, 0x97, 0xfe, 0x95, 0x8f, 0xd5, 0xfd, 0x74, 0xe7, 0xe3, 0xee, 0x82, 0x7e, 0x57, 0x17, + 0x0c, 0x94, 0x78, 0x60, 0xa5, 0x87, 0x78, 0x26, 0x3b, 0x20, 0xcf, 0x55, 0x0c, 0x05, 0xde, 0x0e, + 0x28, 0x04, 0x3f, 0xbe, 0x65, 0xf0, 0xe0, 0xdb, 0x01, 0x3e, 0x4f, 0x07, 0xb8, 0xfc, 0x1d, 0x48, + 0x51, 0x14, 0x41, 0x01, 0x51, 0x3f, 0x71, 0x4b, 0x0c, 0xda, 0x2d, 0x24, 0x73, 0xa1, 0x18, 0xfb, + 0x0c, 0xb8, 0x1b, 0x4a, 0x8a, 0xd4, 0x67, 0x64, 0xe9, 0x0a, 0x63, 0x77, 0x70, 0xf3, 0xba, 0xd0, + 0xc7, 0x50, 0x8e, 0x3e, 0x0b, 0xd2, 0x7c, 0x35, 0x02, 0x12, 0xa7, 0x78, 0x27, 0x88, 0x17, 0xd5, + 0x68, 0x80, 0xc8, 0x53, 0x06, 0xef, 0x62, 0x88, 0xa6, 0x34, 0xc2, 0x18, 0xb3, 0x31, 0x2f, 0x89, + 0x4f, 0xe5, 0x83, 0xde, 0x08, 0x44, 0xd8, 0x15, 0xc5, 0xa7, 0x81, 0xe3, 0x1b, 0xa1, 0xc9, 0xbb, + 0x04, 0x56, 0xb2, 0xfb, 0x6d, 0x50, 0xbc, 0xf5, 0xd0, 0xcc, 0x3c, 0xad, 0x0f, 0x40, 0xab, 0x3f, + 0xe6, 0xc5, 0xaa, 0x94, 0x12, 0x57, 0xec, 0x9b, 0x3e, 0xe2, 0x90, 0x1d, 0x25, 0xe9, 0xb8, 0xc0, + 0x1a, 0x30, 0xfb, 0xd7, 0x80, 0xa5, 0x37, 0x78, 0xfc, 0xe9, 0xd0, 0xaf, 0xe1, 0x9c, 0x7d, 0x35, + 0x34, 0x2d, 0xbd, 0x66, 0x56, 0x1d, 0x39, 0xd5, 0x57, 0x0a, 0x54, 0xa7, 0xe5, 0x29, 0xc3, 0xa6, + 0x67, 0xaa, 0x89, 0x93, 0x9c, 0x74, 0x5b, 0xe5, 0x97, 0x10, 0xf7, 0xf3, 0x3e, 0x39, 0xb8, 0x80, + 0x38, 0xf3, 0x69, 0x9f, 0x92, 0xbd, 0x5d, 0xe0, 0x87, 0x40, 0xec, 0x07, 0x48, 0xa3, 0xe4, 0x70, + 0x49, 0xf7, 0x63, 0x6d, 0x88, 0x5b, 0xb9, 0x0e, 0xc3, 0x3c, 0x5a, 0x98, 0x1d, 0x6b, 0x47, 0xda, + 0x31, 0x97, 0x13, 0x87, 0xb1, 0xd0, 0x51, 0x12, 0xba, 0x0c, 0xc4, 0xd9, 0xb8, 0x06, 0x8c, 0x42, + 0x33, 0x0b, 0xf9, 0x65, 0xb3, 0x56, 0xa3, 0x24, 0xd6, 0xa8, 0xfb, 0x76, 0xb5, 0x71, 0x65, 0x67, + 0xea, 0x82, 0x74, 0x51, 0x7f, 0x1c, 0x0c, 0xce, 0xe7, 0x8e, 0xdb, 0x17, 0x73, 0xc8, 0xab, 0xb8, + 0x3b, 0xda, 0x6e, 0xdf, 0x87, 0x58, 0x7a, 0xf0, 0xff, 0x5e, 0x1f, 0x7e, 0xd6, 0xd6, 0xde, 0xa9, + 0xaf, 0x3f, 0x4b, 0xcb, 0x12, 0x75, 0xc9, 0x66, 0xbd, 0x1c, 0x12, 0x86, 0x55, 0x24, 0x1c, 0xf6, + 0x20, 0xe1, 0x55, 0x6a, 0x05, 0x42, 0xf3, 0x0a, 0xf9, 0x35, 0xe8, 0xa7, 0x5f, 0xcc, 0xb9, 0x1f, + 0x73, 0xb3, 0xce, 0x5b, 0x4d, 0x9a, 0x82, 0x95, 0x3c, 0x0d, 0xa2, 0x9f, 0xff, 0x87, 0x3d, 0xe1, + 0x0e, 0x28, 0xa1, 0x73, 0x2d, 0x98, 0x46, 0x8a, 0xba, 0x9f, 0xec, 0x9d, 0x9a, 0xb3, 0x91, 0x1e, + 0x9f, 0x4b, 0x3a, 0x1f, 0x78, 0x45, 0x7c, 0x3e, 0x91, 0xcb, 0xb7, 0x22, 0x84, 0xbb, 0x95, 0x24, + 0x0d, 0xbc, 0xaf, 0xbc, 0xbf, 0x00, 0xf3, 0x93, 0x0a, 0x69, 0xbf, 0x61, 0x8d, 0xa0, 0x74, 0xaf, + 0x8a, 0x21, 0xf3, 0x96, 0xb0, 0xf4, 0x45, 0x3f, 0x8f, 0x7c, 0xa9, 0x56, 0xc6, 0xaf, 0x58, 0x06, + 0xd5, 0xc6, 0x37, 0xbd, 0x5b, 0x53, 0x32, 0x9d, 0xf6, 0x76, 0xf0, 0x0b, 0x6e, 0x18, 0xca, 0xd5, + 0xde, 0xaa, 0xc9, 0xaf, 0xe4, 0x39, 0x56, 0x43, 0xcd, 0xfd, 0x4b, 0xa0, 0x46, 0x70, 0x72, 0xcc, + 0x5f, 0x02, 0x61, 0xba, 0xb3, 0x42, 0xe8, 0x53, 0xb3, 0xa0, 0x16, 0xc2, 0xd4, 0x3f, 0xce, 0xbf, + 0x04, 0x23, 0xc6, 0x30, 0x2e, 0x68, 0x87, 0x0d, 0xf0, 0xa8, 0x1c, 0x14, 0x32, 0x99, 0x7a, 0xe8, + 0x2e, 0xce, 0xe5, 0x11, 0x87, 0x30, 0xc2, 0x9c, 0x84, 0x45, 0x5e, 0x22, 0xa4, 0x3c, 0x49, 0xbf, + 0x25, 0xbb, 0xca, 0xe9, 0x84, 0x0a, 0x4a, 0x90, 0xd6, 0x63, 0xbf, 0x7a, 0x90, 0x7a, 0x40, 0xbb, + 0xd7, 0xac, 0xe3, 0xdb, 0x5f, 0x1b, 0x9d, 0xe4, 0x23, 0xdc, 0xc8, 0x15, 0x67, 0xf9, 0xaa, 0x0b, + 0xdf, 0x4d, 0xea, 0x20, 0xee, 0x56, 0xa0, 0x7e, 0x3e, 0x5e, 0x62, 0x8f, 0xce, 0x38, 0x93, 0x0f, + 0xe8, 0xcf, 0xfe, 0xec, 0x1d, 0x6a, 0xae, 0x1c, 0xfc, 0x11, 0x9f, 0xcb, 0xff, 0x88, 0xce, 0xe5, + 0xe7, 0x62, 0xbd, 0xd6, 0x33, 0xf4, 0x75, 0x79, 0x8b, 0x55, 0xd6, 0xf1, 0xbf, 0xf5, 0x6b, 0x33, + 0x4f, 0xe6, 0x6d, 0x40, 0x5f, 0xc4, 0xbe, 0xe4, 0xc0, 0xf4, 0x95, 0x74, 0x6a, 0x2c, 0xa9, 0x74, + 0xf2, 0x66, 0x54, 0x65, 0x3e, 0x19, 0xb6, 0x7f, 0xb1, 0x0d, 0x29, 0xd0, 0x4a, 0x7c, 0xcf, 0x56, + 0x17, 0x15, 0xb5, 0x81, 0x05, 0xa1, 0xab, 0x1b, 0xe8, 0x4c, 0x2e, 0x57, 0xf5, 0xe0, 0x7b, 0x8e, + 0xfa, 0x94, 0xdb, 0x0d, 0x73, 0xd1, 0x65, 0x57, 0x37, 0x62, 0x0a, 0xa7, 0xea, 0xc4, 0xb7, 0x4b, + 0x75, 0xe0, 0xdb, 0xad, 0x06, 0xf1, 0xed, 0x51, 0xc3, 0x65, 0x6d, 0x50, 0xe2, 0x02, 0x69, 0xc3, + 0xb8, 0xfa, 0x9e, 0xca, 0x3d, 0x04, 0x90, 0x9b, 0x98, 0x6b, 0x6f, 0x43, 0x24, 0xa5, 0x56, 0xbd, + 0x2c, 0xcf, 0xe6, 0x1b, 0x87, 0x9c, 0x19, 0x6d, 0xa3, 0x7b, 0x80, 0xcb, 0xd8, 0xa6, 0xcb, 0x42, + 0xa6, 0x21, 0xfb, 0xb2, 0x7d, 0xb6, 0xd9, 0x80, 0xb1, 0x3c, 0x9f, 0xd2, 0x03, 0xc5, 0x98, 0x57, + 0x70, 0x64, 0x0f, 0xf5, 0x00, 0xbe, 0x45, 0x0f, 0xfc, 0x38, 0xdd, 0x03, 0x97, 0x6f, 0xee, 0x01, + 0xbe, 0x07, 0x58, 0x63, 0x37, 0x22, 0x34, 0xbe, 0xec, 0xe9, 0x50, 0x07, 0xe9, 0x36, 0x40, 0x1a, + 0xa0, 0x3a, 0x6e, 0x1a, 0x08, 0x77, 0xa8, 0xfd, 0xf8, 0xf4, 0x61, 0x2d, 0xd6, 0x92, 0x3c, 0xbe, + 0x3a, 0xa6, 0x76, 0xf7, 0x00, 0xfa, 0x96, 0xaf, 0x05, 0x1c, 0xc5, 0x2c, 0x35, 0x89, 0xef, 0x6c, + 0xb5, 0x33, 0x49, 0x1a, 0xea, 0x1a, 0xba, 0x55, 0xdc, 0x59, 0xea, 0x5e, 0x38, 0x81, 0x29, 0x02, + 0x18, 0x27, 0x8a, 0xbf, 0xed, 0xf8, 0x5b, 0x80, 0x4f, 0x2b, 0x3e, 0xe5, 0xf8, 0xf8, 0xf1, 0x29, + 0xc4, 0xa7, 0x19, 0x9f, 0x08, 0x3e, 0x0a, 0x3e, 0x2b, 0xf1, 0x69, 0xea, 0xa7, 0x5c, 0x7d, 0x48, + 0x75, 0x5c, 0x97, 0x6d, 0x7c, 0x27, 0xc0, 0x36, 0x13, 0xe1, 0xcf, 0x57, 0x81, 0xf1, 0xfd, 0xcc, + 0xad, 0x80, 0x21, 0x60, 0x88, 0x18, 0xea, 0x0d, 0x4d, 0x59, 0xbe, 0xac, 0x88, 0x61, 0x95, 0xf1, + 0x1d, 0xc3, 0x8e, 0xac, 0xb3, 0x86, 0x97, 0x0c, 0x7b, 0xb2, 0x9a, 0xb2, 0x9a, 0x0d, 0xed, 0x86, + 0xb5, 0x86, 0x01, 0xc3, 0x66, 0xc3, 0x51, 0xc3, 0x5b, 0x59, 0x3b, 0xb2, 0x5e, 0xc9, 0xda, 0x60, + 0x7c, 0xc7, 0xf8, 0x4e, 0x56, 0x41, 0xd6, 0xa1, 0xac, 0xe1, 0xac, 0x53, 0x86, 0x33, 0x86, 0xf7, + 0x0d, 0x93, 0x92, 0x45, 0x2a, 0x90, 0x4a, 0xa4, 0x88, 0xf4, 0xa8, 0x94, 0x94, 0x36, 0x4a, 0xbb, + 0xb3, 0x7a, 0x8c, 0xef, 0x48, 0x23, 0xd2, 0x51, 0xc3, 0x88, 0xf4, 0xb6, 0xd1, 0x22, 0x5d, 0xca, + 0x7a, 0x3f, 0xeb, 0x28, 0xa6, 0x3a, 0x8d, 0xff, 0x0a, 0x8c, 0xce, 0xac, 0xcb, 0xb8, 0x54, 0x31, + 0x0f, 0xe3, 0xc9, 0x2c, 0x89, 0x7f, 0xdf, 0x31, 0xbe, 0x6a, 0x1c, 0xd1, 0x5c, 0xff, 0xbe, 0x7f, + 0x6f, 0xfc, 0x5f, 0xc9, 0xe5, 0xd3, 0xff, 0x05, 0x8c, 0x11, 0x63, 0xbd, 0x71, 0xa5, 0xb1, 0xcd, + 0xd8, 0x6b, 0xdc, 0x68, 0xdc, 0x51, 0x49, 0x12, 0x61, 0x90, 0xb5, 0x6b, 0x61, 0x2b, 0xce, 0x67, + 0xdc, 0xb3, 0xb3, 0xb6, 0xb2, 0x4b, 0x46, 0xd7, 0x06, 0x76, 0xd9, 0xd1, 0xd5, 0x57, 0x84, 0x90, + 0x40, 0xdd, 0x8c, 0xae, 0x24, 0x87, 0x39, 0xd1, 0x15, 0x67, 0x17, 0x52, 0x91, 0x59, 0x2b, 0xd9, + 0x15, 0x44, 0x57, 0x23, 0xbb, 0xc2, 0xe8, 0x8a, 0x72, 0x0a, 0x0f, 0xba, 0x2a, 0xd9, 0xf5, 0x14, + 0xba, 0xfc, 0xec, 0x8a, 0xa2, 0xcb, 0x1d, 0xdb, 0x03, 0xc6, 0x15, 0x2c, 0x65, 0xb5, 0x30, 0xa8, + 0x06, 0x30, 0xa4, 0x80, 0xbf, 0xd5, 0xa1, 0x2b, 0x87, 0x5d, 0x0d, 0xe8, 0x32, 0x52, 0x2c, 0xdc, + 0xf7, 0x0d, 0x8a, 0xb5, 0x7b, 0x5a, 0xb1, 0xb1, 0xcf, 0x9c, 0x94, 0x36, 0xd1, 0x3d, 0xc3, 0x44, + 0xf7, 0xd4, 0xf1, 0x75, 0xf8, 0x7b, 0x4e, 0x8b, 0x63, 0x54, 0x26, 0xba, 0x3f, 0x51, 0x2e, 0x69, + 0x3e, 0xb3, 0xf2, 0x4e, 0xf7, 0xef, 0x94, 0x77, 0x45, 0x0a, 0x88, 0x18, 0x00, 0x63, 0x1e, 0x90, + 0x22, 0xd3, 0x2a, 0xfe, 0x7e, 0x3f, 0x15, 0x2a, 0x51, 0xe8, 0xcb, 0x52, 0x64, 0x8a, 0x42, 0x77, + 0x89, 0x50, 0xf3, 0x51, 0xb8, 0x17, 0x7d, 0x9b, 0xcd, 0x1b, 0xf8, 0x77, 0x30, 0x15, 0xd7, 0x4c, + 0x71, 0x7b, 0xa4, 0xc8, 0xef, 0x28, 0x6e, 0x7b, 0x2a, 0xd4, 0x46, 0xa1, 0x8f, 0x49, 0x91, 0x8f, + 0x29, 0x74, 0x45, 0x3a, 0x07, 0x1b, 0xfa, 0xa2, 0x98, 0x03, 0xfd, 0x06, 0xd3, 0xa1, 0xff, 0x01, + 0x7d, 0xa5, 0x18, 0x4a, 0xbf, 0xdc, 0xfe, 0x84, 0x29, 0x89, 0x31, 0xd4, 0xd2, 0xee, 0x8f, 0xf1, + 0xed, 0xd7, 0x42, 0xb0, 0xdf, 0x55, 0xb9, 0xfb, 0x3d, 0x7c, 0xdb, 0x53, 0xa5, 0x18, 0xb1, 0x14, + 0xc3, 0x75, 0x29, 0xf2, 0x09, 0x96, 0x62, 0xb8, 0x9c, 0xce, 0xef, 0xf3, 0xe8, 0x1b, 0xc7, 0xfc, + 0xe8, 0xf7, 0x9d, 0x74, 0xe8, 0x5c, 0xf4, 0x9d, 0xc4, 0x50, 0xfa, 0x3d, 0xca, 0x3d, 0x59, 0xc8, + 0xe1, 0xff, 0x11, 0xfd, 0xfb, 0x31, 0x9c, 0x7e, 0xf7, 0x59, 0x8b, 0x55, 0x55, 0xad, 0xc4, 0xfd, + 0xf7, 0x7b, 0x5f, 0x6c, 0x85, 0x59, 0x6a, 0x25, 0x86, 0xed, 0xe2, 0xb0, 0x45, 0x18, 0xb6, 0x95, + 0xc3, 0x16, 0x61, 0xd8, 0x06, 0x37, 0xee, 0x33, 0x65, 0xfd, 0x70, 0x0f, 0xba, 0x7b, 0x93, 0x7f, + 0x56, 0x03, 0x9b, 0x06, 0x38, 0xc7, 0x8d, 0xe8, 0x6f, 0xe5, 0x12, 0xc1, 0xa0, 0x74, 0x07, 0x37, + 0xe1, 0x38, 0x18, 0x9a, 0xc8, 0xff, 0x35, 0x1c, 0x51, 0x7f, 0xb0, 0x31, 0x86, 0x7e, 0x31, 0xfe, + 0x05, 0x04, 0xd3, 0xd5, 0x76, 0xf4, 0x97, 0x6b, 0x79, 0x91, 0x2e, 0x45, 0x0f, 0x7f, 0x53, 0xd0, + 0x65, 0xe7, 0xf9, 0xd2, 0x89, 0xae, 0x82, 0xf4, 0x58, 0x2b, 0x38, 0xd6, 0xcd, 0x1c, 0x9e, 0xc4, + 0x70, 0xe0, 0xb8, 0xe5, 0xb8, 0x0f, 0x5e, 0x63, 0x17, 0x52, 0xd1, 0x70, 0x89, 0x5d, 0xcb, 0x39, + 0x6f, 0xb2, 0x36, 0x7e, 0x96, 0xfd, 0x08, 0x25, 0xe0, 0x54, 0x7a, 0x36, 0xcc, 0xc1, 0xd9, 0x30, + 0x37, 0x3d, 0x1b, 0xac, 0x38, 0x1b, 0x52, 0xf3, 0xc7, 0xb6, 0x11, 0xe7, 0x0f, 0xec, 0xe9, 0xfe, + 0xf8, 0xd8, 0x3a, 0xba, 0xcf, 0xa1, 0x33, 0x3e, 0xfc, 0xdd, 0xc5, 0x79, 0x74, 0x93, 0x55, 0xf3, + 0x74, 0x4d, 0x22, 0x58, 0x93, 0x1a, 0xcd, 0x27, 0x29, 0x65, 0xdd, 0x53, 0x4a, 0x79, 0x3a, 0x7f, + 0x17, 0xe6, 0xef, 0x4e, 0xe7, 0x3f, 0x07, 0xf3, 0x2f, 0xd4, 0x7c, 0x36, 0x2c, 0xed, 0x63, 0x25, + 0x27, 0x35, 0x9e, 0x1b, 0x06, 0x94, 0x8a, 0xee, 0xf7, 0x8e, 0xae, 0x53, 0xc4, 0xec, 0x6f, 0xc6, + 0xfd, 0xab, 0x49, 0x71, 0xb1, 0x3b, 0x82, 0xee, 0x95, 0x4a, 0xa1, 0x07, 0x6b, 0x20, 0xd7, 0x60, + 0x48, 0xbf, 0xda, 0xaa, 0x88, 0xd9, 0xbf, 0x96, 0x4f, 0x94, 0x0d, 0x6a, 0x7f, 0xe8, 0xc3, 0x34, + 0xf4, 0x1d, 0x93, 0x99, 0xde, 0xb9, 0x71, 0x5d, 0x49, 0xfe, 0xbf, 0x0d, 0x7f, 0xcd, 0x46, 0xba, + 0xf7, 0x4f, 0xfa, 0x46, 0x37, 0xc4, 0x4d, 0xb6, 0x00, 0xd8, 0x36, 0x0d, 0xf0, 0x8c, 0x32, 0x76, + 0xff, 0xaf, 0xe3, 0xeb, 0xf0, 0xdb, 0x5d, 0xd8, 0xea, 0xb7, 0x8e, 0x0f, 0xc4, 0x30, 0xdf, 0xb8, + 0xa5, 0x5b, 0x1a, 0x59, 0x12, 0xef, 0x89, 0x3d, 0x1d, 0x2f, 0x41, 0x50, 0x3a, 0x80, 0xbb, 0x47, + 0x41, 0xea, 0xfe, 0x31, 0x9e, 0x57, 0x8a, 0x98, 0xb2, 0xf9, 0xed, 0xe7, 0x8e, 0x8b, 0x10, 0x37, + 0xce, 0x6b, 0xf3, 0x71, 0x37, 0x60, 0x5e, 0x5f, 0x54, 0x9a, 0x05, 0x8d, 0x6d, 0xaf, 0x96, 0x57, + 0x6b, 0xf7, 0x71, 0x4e, 0xe2, 0x15, 0xa5, 0x3c, 0xe8, 0x3b, 0xe3, 0x11, 0x03, 0x42, 0x6e, 0xdc, + 0xf2, 0x4a, 0x46, 0xab, 0x8f, 0xe2, 0x11, 0x6e, 0xcc, 0x29, 0xd2, 0x6d, 0xc0, 0x92, 0x0b, 0x49, + 0xc6, 0x7d, 0xeb, 0x96, 0x54, 0x09, 0x58, 0x9e, 0x27, 0x95, 0x87, 0x62, 0x8a, 0x3d, 0x8d, 0xfe, + 0x42, 0xa1, 0x6b, 0xe1, 0xe6, 0xfb, 0x73, 0xec, 0xa9, 0x82, 0x04, 0xe9, 0xbb, 0x0d, 0x0c, 0x48, + 0xb2, 0x91, 0xeb, 0x91, 0x44, 0x5a, 0xe3, 0x6a, 0xfa, 0xbc, 0xe7, 0x6a, 0x62, 0x0e, 0xe2, 0xcc, + 0xf5, 0xb7, 0x9c, 0xf6, 0x34, 0x62, 0x9e, 0x56, 0xa2, 0xb5, 0xe6, 0x4d, 0xa9, 0xef, 0xca, 0xd5, + 0x36, 0x57, 0xfa, 0xf4, 0x62, 0x1c, 0x69, 0xa2, 0x46, 0xf5, 0x42, 0x51, 0x2b, 0x52, 0x46, 0x97, + 0x8a, 0xaa, 0xd5, 0x09, 0x47, 0xab, 0xa6, 0x1d, 0x02, 0x66, 0xbd, 0xa3, 0x3b, 0xb7, 0x78, 0x37, + 0x7d, 0x12, 0x84, 0xb8, 0xd8, 0xac, 0xd1, 0x05, 0xd5, 0x50, 0x22, 0x2f, 0xc1, 0x12, 0xf9, 0xac, + 0x40, 0x6d, 0xe3, 0xd0, 0xbd, 0x0b, 0xc2, 0x06, 0xeb, 0x82, 0x0e, 0xb5, 0xdb, 0x60, 0xd3, 0x56, + 0xaf, 0x85, 0x30, 0xb4, 0x2f, 0xb6, 0x1a, 0x62, 0x6a, 0xe5, 0x17, 0x3a, 0xd4, 0x4a, 0x58, 0xa5, + 0xad, 0xe0, 0x54, 0xf8, 0x12, 0x75, 0x11, 0x86, 0x2f, 0x82, 0x27, 0x16, 0x44, 0xa0, 0x60, 0x41, + 0x15, 0x6c, 0xa0, 0x91, 0x8a, 0x93, 0xb4, 0x6e, 0xc9, 0x17, 0x5a, 0x91, 0xda, 0x29, 0xc3, 0xf7, + 0x7c, 0x28, 0xc7, 0xf7, 0xfd, 0xf0, 0x10, 0xbe, 0x9d, 0xf0, 0x70, 0xec, 0x75, 0xf5, 0xa9, 0xb8, + 0x29, 0x99, 0x73, 0x7c, 0x20, 0xe1, 0xa4, 0x78, 0x38, 0x87, 0x5d, 0x09, 0x93, 0xdc, 0x6a, 0x48, + 0x2a, 0x66, 0xc4, 0x36, 0x5c, 0xf2, 0x6a, 0x78, 0x91, 0x28, 0x80, 0x31, 0x17, 0x7c, 0xbe, 0x11, + 0xbe, 0x10, 0x84, 0x87, 0x30, 0x85, 0x87, 0x2c, 0xfb, 0xe2, 0x38, 0x7b, 0x08, 0xc7, 0x42, 0xcc, + 0x34, 0x1b, 0xee, 0x49, 0x14, 0xd0, 0xdd, 0xc5, 0x58, 0x2b, 0x98, 0x97, 0x05, 0x73, 0x89, 0x42, + 0x58, 0x37, 0x12, 0xec, 0x34, 0x62, 0xfc, 0x32, 0xb6, 0x69, 0x20, 0xbe, 0x9b, 0xf0, 0xbb, 0x85, + 0xbf, 0x3f, 0x94, 0xfe, 0xfe, 0x10, 0x63, 0xb6, 0xf7, 0x24, 0xf2, 0x28, 0x7d, 0x84, 0xbe, 0x95, + 0xa7, 0xbf, 0x95, 0xc7, 0x5c, 0x70, 0x4f, 0x3b, 0x7d, 0x31, 0xf1, 0x97, 0x87, 0xd3, 0x5f, 0x1e, + 0x96, 0x1b, 0x98, 0x8b, 0x66, 0x10, 0xf1, 0xa5, 0x5c, 0xa2, 0xdd, 0x18, 0x47, 0x26, 0x4d, 0xc6, + 0xb9, 0x94, 0xc3, 0x88, 0x0b, 0xe6, 0x77, 0x99, 0x7b, 0x6c, 0x1b, 0x06, 0x16, 0x90, 0x44, 0x93, + 0xa0, 0xed, 0xb2, 0xf9, 0xdb, 0xc3, 0xf8, 0xcd, 0x89, 0xdf, 0x64, 0xf1, 0x8d, 0x29, 0x7e, 0xd2, + 0x25, 0x3c, 0x49, 0x39, 0xf0, 0xc8, 0xd7, 0xbb, 0x88, 0xeb, 0x67, 0x77, 0xf5, 0x87, 0xea, 0x1b, + 0xb7, 0x39, 0x25, 0x28, 0x50, 0xdf, 0x28, 0x8a, 0xa8, 0x47, 0xb4, 0x13, 0x83, 0x63, 0x74, 0x07, + 0x4b, 0x1a, 0x8a, 0xd0, 0x77, 0x97, 0x4a, 0xfa, 0x27, 0x59, 0xab, 0x0f, 0xb6, 0xc9, 0x00, 0x79, + 0x04, 0x1b, 0xf9, 0x96, 0xf4, 0x54, 0xe4, 0x75, 0xf5, 0x94, 0xd0, 0x45, 0xb9, 0x75, 0x27, 0x97, + 0xb1, 0xc1, 0x01, 0x09, 0x0f, 0xcd, 0x3b, 0xc8, 0x92, 0xc3, 0x55, 0x74, 0x83, 0x2b, 0xe6, 0x1c, + 0x85, 0x18, 0x39, 0x24, 0x75, 0xea, 0x18, 0xe6, 0xdf, 0xa7, 0x18, 0x37, 0x67, 0xad, 0x27, 0x53, + 0x51, 0xad, 0x3d, 0xc6, 0x44, 0x1e, 0x62, 0x78, 0xd7, 0xf3, 0xa8, 0xc7, 0x06, 0x7d, 0xe1, 0x91, + 0x4d, 0x4f, 0x18, 0xbf, 0x10, 0x82, 0x72, 0x0c, 0x9b, 0x64, 0x2d, 0x06, 0x36, 0x1b, 0xf5, 0x18, + 0xd6, 0x40, 0xfb, 0xf2, 0xf0, 0x43, 0x24, 0xb1, 0x73, 0xed, 0xa1, 0x10, 0x5c, 0x5f, 0xd0, 0x8f, + 0x6b, 0xea, 0xb0, 0x14, 0x58, 0xb0, 0x44, 0x0a, 0x2e, 0xa8, 0x93, 0x22, 0x82, 0xa6, 0xc3, 0x7d, + 0xb9, 0x5d, 0xe4, 0xd6, 0xad, 0x8e, 0xbc, 0xae, 0xd6, 0x25, 0x72, 0xc6, 0xc2, 0x18, 0x26, 0xfb, + 0x8a, 0xd5, 0xfa, 0x5f, 0x74, 0xa8, 0x72, 0x01, 0x8d, 0xdb, 0x06, 0x31, 0x0e, 0x81, 0x50, 0x52, + 0x1d, 0x7e, 0x5d, 0x6d, 0x48, 0xe4, 0x9c, 0x8a, 0x2c, 0x0c, 0xa9, 0xf6, 0xd2, 0x62, 0xb5, 0xf1, + 0x97, 0x1d, 0xb8, 0x83, 0x6d, 0x4c, 0x58, 0xe5, 0x9a, 0x52, 0x9c, 0x07, 0x3e, 0x1c, 0x6b, 0xc4, + 0xec, 0xb1, 0xde, 0xe8, 0xb3, 0x92, 0xce, 0x3a, 0x6b, 0x07, 0xce, 0x56, 0x39, 0x6e, 0xf6, 0xcd, + 0x1e, 0x5a, 0x4c, 0xf9, 0x62, 0x7d, 0x64, 0x5c, 0x48, 0x14, 0x6a, 0x8f, 0x5b, 0x4a, 0xcd, 0xdb, + 0x3b, 0x10, 0xd3, 0xc6, 0xbc, 0x30, 0xdc, 0x0e, 0x16, 0x84, 0x2d, 0x81, 0xc4, 0x63, 0x7e, 0x8c, + 0xf3, 0xa3, 0x13, 0xed, 0xc6, 0x87, 0x6a, 0x91, 0x16, 0xc3, 0xf0, 0x1f, 0x92, 0x3b, 0x0a, 0x96, + 0xd2, 0x59, 0x35, 0xa1, 0xe4, 0x3d, 0xe7, 0x1e, 0x7f, 0x2b, 0x84, 0x25, 0xe7, 0xd7, 0x84, 0xce, + 0x3d, 0xfe, 0x53, 0x4c, 0x8d, 0x14, 0x9c, 0xd9, 0x1f, 0xaa, 0xbe, 0x92, 0x04, 0x4a, 0x53, 0x39, + 0xfb, 0xa5, 0x10, 0x86, 0x58, 0x4a, 0x43, 0x98, 0x32, 0xdf, 0x67, 0x89, 0x8e, 0x56, 0xfd, 0xc6, + 0x0c, 0x3f, 0xfc, 0x79, 0xbb, 0xd9, 0x67, 0x1e, 0x0a, 0x61, 0x0d, 0x38, 0xbe, 0xcf, 0x30, 0x84, + 0x50, 0x6c, 0x28, 0xfc, 0x50, 0x10, 0x92, 0x48, 0xfb, 0x59, 0x7c, 0xc1, 0xa1, 0xa3, 0x43, 0x6f, + 0x61, 0x19, 0xdd, 0xb1, 0xc5, 0x1d, 0x60, 0x74, 0x60, 0x3d, 0xf2, 0xf1, 0xb7, 0x90, 0x74, 0xfd, + 0x53, 0x6b, 0xfc, 0xb3, 0xa2, 0x47, 0xec, 0x91, 0xea, 0xdf, 0xb8, 0x80, 0xda, 0xf5, 0xa3, 0x13, + 0xf8, 0x0d, 0x02, 0x41, 0x3f, 0xd6, 0xa2, 0x34, 0x5c, 0xfd, 0x9b, 0x09, 0x0a, 0xcd, 0xa1, 0xd0, + 0xac, 0x8b, 0xb1, 0x8d, 0x71, 0xd3, 0x43, 0x8b, 0x89, 0xc6, 0xf3, 0xcf, 0x72, 0xd4, 0x9c, 0x46, + 0x1a, 0xe2, 0xa1, 0x30, 0x18, 0x29, 0x26, 0xba, 0x4d, 0xe8, 0xa6, 0xaf, 0x9b, 0xb0, 0xb5, 0xf9, + 0xb0, 0x19, 0x4b, 0x71, 0xc6, 0x8d, 0xd8, 0x7a, 0x27, 0xfa, 0x9d, 0x48, 0xa3, 0x75, 0xa8, 0x8e, + 0x38, 0xdd, 0xcd, 0x3a, 0xd0, 0xef, 0x80, 0x5c, 0xf4, 0x07, 0xf9, 0x7b, 0x10, 0xfd, 0x41, 0xc8, + 0x43, 0x7f, 0x98, 0xbf, 0x87, 0xd1, 0x1f, 0x86, 0xfc, 0x1e, 0xc0, 0x7c, 0x83, 0x07, 0x07, 0xbb, + 0x8c, 0x38, 0xbe, 0x79, 0xec, 0x0b, 0xff, 0xf5, 0x11, 0xf4, 0x05, 0x21, 0xbf, 0xdc, 0x05, 0x56, + 0x96, 0xec, 0xcd, 0x2b, 0x8d, 0xfc, 0xe8, 0x08, 0xf6, 0x5f, 0x04, 0xf2, 0x30, 0x2c, 0x87, 0xc3, + 0xf2, 0xd3, 0x61, 0xf9, 0xb8, 0xb2, 0x0b, 0x13, 0x85, 0xb8, 0xa6, 0x0b, 0x1f, 0x7a, 0x04, 0xde, + 0x7f, 0x68, 0x35, 0x48, 0x30, 0xf1, 0x10, 0x51, 0xa9, 0x17, 0xf1, 0x6d, 0x82, 0x4b, 0x4a, 0x09, + 0xd6, 0xf7, 0x7d, 0xae, 0xef, 0xc4, 0x08, 0xd5, 0xd7, 0xb4, 0x70, 0x0d, 0xe4, 0x69, 0x35, 0xbe, + 0x38, 0x4c, 0x35, 0xa6, 0x90, 0x7c, 0xad, 0xce, 0x97, 0xf0, 0xdd, 0x09, 0x1f, 0xe1, 0x3b, 0x09, + 0x57, 0x30, 0xef, 0xf2, 0xb8, 0xa9, 0xa8, 0xd5, 0xf0, 0x94, 0x5a, 0x8e, 0x30, 0xad, 0x1c, 0x4e, + 0x62, 0x88, 0x9f, 0x43, 0x06, 0x55, 0x3f, 0x86, 0xf8, 0xe1, 0xf8, 0x82, 0x56, 0xc3, 0x46, 0x18, + 0xc3, 0x19, 0x24, 0x3b, 0x6a, 0x52, 0x1a, 0xb0, 0x12, 0x46, 0xa4, 0x64, 0x87, 0xe4, 0x1a, 0xa4, + 0x63, 0xb7, 0xc0, 0x0e, 0x74, 0x6f, 0x59, 0x50, 0x03, 0xbb, 0xb0, 0xf5, 0x7d, 0xf1, 0x02, 0xcc, + 0xc1, 0x87, 0x54, 0x53, 0x07, 0xee, 0x56, 0x64, 0x91, 0x65, 0x2a, 0x91, 0x5b, 0xb4, 0x1a, 0xa6, + 0xd5, 0xe5, 0x74, 0xbb, 0x03, 0x37, 0x30, 0xcf, 0xe5, 0x30, 0x8d, 0xef, 0xa7, 0x84, 0xb6, 0x45, + 0x82, 0x33, 0xd2, 0x22, 0xa4, 0x42, 0x11, 0xaa, 0xd1, 0x1d, 0x92, 0x62, 0x8c, 0x22, 0x94, 0xcb, + 0xdc, 0x24, 0xc1, 0x00, 0xdd, 0xe4, 0x4b, 0xfe, 0x19, 0xfc, 0x23, 0xed, 0x33, 0x34, 0x65, 0x5d, + 0xd2, 0x6b, 0xca, 0x0a, 0xbf, 0x26, 0xc5, 0xb0, 0x06, 0x4d, 0x71, 0x13, 0xbe, 0x57, 0x26, 0x4c, + 0x0f, 0x91, 0xa5, 0xaf, 0x68, 0x6c, 0x8d, 0x14, 0x8d, 0xe7, 0xd1, 0x0a, 0x25, 0x9e, 0x3e, 0x2b, + 0xc4, 0xcd, 0x55, 0x1f, 0x48, 0x7e, 0x84, 0x52, 0x91, 0xa2, 0x25, 0xea, 0xf7, 0x8a, 0x3a, 0xd4, + 0x8d, 0xea, 0xab, 0xf8, 0x56, 0xd4, 0xbd, 0xf8, 0x6e, 0xa6, 0x7b, 0x59, 0x35, 0xa2, 0x8e, 0xe0, + 0xbb, 0x55, 0x3d, 0x80, 0xb3, 0xb4, 0x77, 0x61, 0x4c, 0x3d, 0xc4, 0xa7, 0xcc, 0x5b, 0xa3, 0x7d, + 0x1f, 0x96, 0xde, 0x46, 0xff, 0x56, 0xfb, 0x2d, 0xfa, 0xb7, 0x2e, 0xcd, 0xd0, 0xbf, 0xd5, 0xa1, + 0x1e, 0x26, 0x1e, 0x05, 0x07, 0x69, 0xb8, 0x25, 0x3d, 0x98, 0x03, 0x88, 0x4b, 0xb8, 0xe8, 0x24, + 0x31, 0xcf, 0x0d, 0x85, 0xa4, 0xaf, 0x3f, 0xd7, 0x0d, 0x73, 0x48, 0x03, 0xb0, 0xcd, 0x0d, 0xff, + 0x81, 0xa5, 0x52, 0x62, 0x22, 0xc6, 0xe4, 0x20, 0xeb, 0x16, 0x28, 0x90, 0x53, 0x7e, 0x17, 0x43, + 0xfa, 0x24, 0xb6, 0xa5, 0x44, 0xc8, 0x63, 0xf1, 0x8e, 0x77, 0x03, 0xe1, 0x1f, 0xed, 0x71, 0x67, + 0xe4, 0xea, 0x5c, 0x57, 0xfa, 0x84, 0xf1, 0x08, 0xb6, 0xee, 0x38, 0xb6, 0xc2, 0xa3, 0x9e, 0xe4, + 0x33, 0xfb, 0xb1, 0xa2, 0x35, 0x06, 0xab, 0x7a, 0x1a, 0xe1, 0xea, 0xd1, 0xf4, 0x0e, 0xa8, 0xd7, + 0xaa, 0xf7, 0x46, 0x6a, 0xff, 0x93, 0x97, 0xe0, 0xf8, 0x79, 0x92, 0x6a, 0x37, 0xd9, 0x2d, 0xa0, + 0x1d, 0x9c, 0xfa, 0x34, 0x9a, 0xb0, 0xc9, 0x4b, 0x4a, 0xfb, 0x55, 0x15, 0x69, 0x70, 0x3e, 0x4f, + 0x9f, 0xbe, 0xa4, 0x9d, 0xcf, 0xbf, 0xd2, 0xb4, 0x0d, 0x5b, 0xd8, 0x9f, 0x50, 0x70, 0x14, 0x73, + 0xed, 0xad, 0x1a, 0xbd, 0xcc, 0xa7, 0x07, 0x93, 0x63, 0x8a, 0x56, 0x73, 0x75, 0xe4, 0xb3, 0x6b, + 0x5d, 0x42, 0xfc, 0xc0, 0x66, 0xce, 0x22, 0x5d, 0xe8, 0xcf, 0x1d, 0xb7, 0x57, 0x0b, 0x4e, 0x29, + 0xc2, 0x94, 0x18, 0xfb, 0xb0, 0x21, 0x95, 0x5c, 0xa0, 0x93, 0x56, 0x41, 0x1f, 0x6b, 0xbd, 0x9d, + 0xa0, 0xb3, 0x46, 0xc2, 0x2c, 0x7e, 0xf7, 0x3d, 0x05, 0x7e, 0xe7, 0x27, 0xbb, 0x1a, 0x62, 0xdf, + 0x4e, 0xe9, 0x9f, 0x8a, 0x03, 0xe2, 0x73, 0xa0, 0xf6, 0xd5, 0x7f, 0x55, 0x3d, 0x4c, 0xbc, 0xcf, + 0x4e, 0x33, 0xf1, 0x65, 0x63, 0x8e, 0x7e, 0x3e, 0x0d, 0xdd, 0x88, 0xe3, 0x7b, 0x98, 0x74, 0x08, + 0x3f, 0x78, 0x81, 0x35, 0xf3, 0x31, 0x77, 0x1e, 0x9c, 0x24, 0xf9, 0xb4, 0xb8, 0xdb, 0x5e, 0xf5, + 0x69, 0x7c, 0x86, 0x07, 0x98, 0x9a, 0x3f, 0xb0, 0x47, 0xf0, 0x19, 0x1a, 0xee, 0x66, 0x1a, 0xfe, + 0x65, 0x6f, 0x16, 0xff, 0xbe, 0x9d, 0xa1, 0xe5, 0x45, 0x1a, 0xb9, 0x8a, 0x35, 0x65, 0xde, 0x83, + 0xd8, 0x9a, 0x5f, 0x91, 0x92, 0x3e, 0xb9, 0x0a, 0xfb, 0xfe, 0xb0, 0x76, 0x96, 0x0a, 0x70, 0x9a, + 0xa4, 0xe8, 0xb0, 0xc4, 0xf0, 0xa7, 0x95, 0xb8, 0x9f, 0x4b, 0xdc, 0x9f, 0x2a, 0x31, 0x4f, 0x2b, + 0x51, 0xba, 0xb9, 0xc4, 0xa2, 0xb0, 0x7a, 0xc9, 0xfc, 0x21, 0x48, 0xea, 0xdf, 0x29, 0x7d, 0x4b, + 0x11, 0x87, 0x4d, 0xd9, 0x07, 0xdc, 0x74, 0xc8, 0x9b, 0x53, 0xbf, 0xbd, 0xa8, 0x3e, 0xf5, 0x95, + 0xdb, 0x3b, 0x98, 0x58, 0xf1, 0x6f, 0x28, 0x7b, 0xc1, 0x9d, 0xca, 0x26, 0xfe, 0x26, 0xdc, 0xc5, + 0xc3, 0xea, 0x24, 0x62, 0xcf, 0x87, 0x59, 0xae, 0xda, 0x5f, 0xf7, 0x61, 0xa4, 0x50, 0xdd, 0x23, + 0x64, 0x01, 0x66, 0xf2, 0xc7, 0x92, 0xed, 0x39, 0x92, 0x38, 0x92, 0xbb, 0xa0, 0x1c, 0x69, 0x01, + 0x3e, 0x39, 0x44, 0xf8, 0x66, 0xe6, 0x53, 0x40, 0x2b, 0xfb, 0x66, 0xe1, 0xd8, 0xd3, 0x39, 0x61, + 0x1e, 0xfb, 0xcc, 0x50, 0xc0, 0xe7, 0xa6, 0xcc, 0x0f, 0x4f, 0x9a, 0x84, 0x43, 0x1f, 0x0b, 0x2d, + 0x26, 0x9f, 0xbc, 0xcf, 0xfa, 0x72, 0xb1, 0x7c, 0x6f, 0x10, 0x0a, 0x33, 0xa1, 0x24, 0xb3, 0x24, + 0xac, 0x4b, 0x61, 0x59, 0x01, 0xe6, 0x46, 0xad, 0x27, 0x9d, 0x15, 0x82, 0xa7, 0x54, 0x7a, 0x85, + 0x65, 0xb8, 0x3a, 0xa1, 0x9f, 0x39, 0xee, 0x0b, 0xb1, 0x7f, 0x0e, 0xa9, 0x8f, 0xb1, 0x44, 0x83, + 0x51, 0x77, 0x2b, 0x42, 0xb4, 0x64, 0x7f, 0xa0, 0x44, 0x3a, 0x5e, 0x5e, 0x22, 0x9d, 0xa8, 0x28, + 0x91, 0x4e, 0x3a, 0x4b, 0xa4, 0xa3, 0xda, 0x29, 0xe6, 0x00, 0xd6, 0x62, 0x03, 0xbb, 0x1d, 0xb0, + 0x09, 0xdd, 0x5b, 0xd8, 0x3d, 0x1f, 0x86, 0x58, 0x03, 0xc8, 0x0e, 0xf6, 0x95, 0x0a, 0x8d, 0x08, + 0xec, 0x5e, 0x0c, 0x2f, 0xf3, 0xa9, 0xe9, 0x2b, 0xec, 0x2b, 0x86, 0x3d, 0xe8, 0xde, 0xc7, 0x6e, + 0x17, 0x0c, 0x93, 0x7d, 0xbd, 0x6d, 0x77, 0xc1, 0x7e, 0xf6, 0x7b, 0xe1, 0x20, 0xfb, 0x0b, 0xe1, + 0x30, 0xfb, 0x83, 0x30, 0x8a, 0x71, 0x8f, 0x62, 0x4e, 0xc7, 0xf1, 0x39, 0x29, 0xf3, 0x4d, 0x31, + 0xf3, 0x5a, 0x99, 0xb1, 0xed, 0xeb, 0xc9, 0x02, 0xb4, 0xb5, 0x46, 0x55, 0xe3, 0xc6, 0x40, 0x40, + 0x1a, 0xb0, 0x46, 0xc8, 0x55, 0x1e, 0x30, 0x80, 0xb5, 0x1a, 0x5d, 0x52, 0x9f, 0x64, 0x8d, 0x18, + 0xde, 0xeb, 0xf4, 0x2c, 0xfe, 0x18, 0xc6, 0x58, 0x5e, 0x83, 0xe6, 0xc3, 0x89, 0x34, 0x47, 0xfc, + 0x12, 0xd6, 0xd3, 0xf0, 0x3e, 0xcd, 0x08, 0xea, 0xc7, 0x04, 0xa5, 0x3c, 0x57, 0x5e, 0x4d, 0xba, + 0x8a, 0x7c, 0x11, 0xaf, 0xd9, 0x57, 0xe3, 0x35, 0x2f, 0xbe, 0x31, 0xdd, 0x58, 0xff, 0xbc, 0x53, + 0xe8, 0x92, 0x52, 0x87, 0xd7, 0xc7, 0xcb, 0xe8, 0x2b, 0xe6, 0x75, 0x9c, 0x74, 0x52, 0xa5, 0xbe, + 0xf0, 0x28, 0x14, 0x6a, 0x5f, 0x5e, 0xa6, 0x47, 0x9f, 0x86, 0xd6, 0x16, 0x62, 0x5f, 0x1f, 0x83, + 0x2b, 0xcd, 0xd1, 0x25, 0x5a, 0x41, 0xfc, 0x5c, 0x49, 0xaa, 0x7d, 0x62, 0xae, 0xcf, 0x0b, 0x15, + 0xd1, 0x63, 0xc4, 0x13, 0x75, 0x78, 0x5d, 0xbb, 0x31, 0x00, 0x8a, 0x35, 0x09, 0x18, 0x56, 0x39, + 0xbc, 0xb1, 0x5d, 0xc2, 0x49, 0x11, 0xd1, 0xe2, 0x04, 0xa2, 0x47, 0x29, 0xce, 0x41, 0x8c, 0x53, + 0x9e, 0x8a, 0x13, 0x1c, 0xde, 0xd0, 0x2e, 0xb9, 0xb8, 0xc5, 0x89, 0xfc, 0x58, 0x75, 0x87, 0x8d, + 0x43, 0xcb, 0xa3, 0x3f, 0x1b, 0x7e, 0xba, 0xdd, 0x84, 0x14, 0x8f, 0x14, 0xae, 0x7e, 0xb0, 0x46, + 0x3a, 0xfe, 0x60, 0x44, 0x3a, 0xf1, 0x60, 0xb5, 0x74, 0x72, 0x7e, 0x95, 0x74, 0x14, 0x5b, 0x16, + 0x85, 0x0d, 0xd8, 0xc6, 0x28, 0x6c, 0xd1, 0x46, 0xac, 0x0a, 0x47, 0xca, 0x12, 0xed, 0x95, 0x21, + 0xc5, 0xf1, 0xc6, 0x35, 0xde, 0xc2, 0x1a, 0x8d, 0x76, 0x3b, 0x83, 0x1a, 0x8f, 0x4e, 0xa1, 0x62, + 0x2b, 0x09, 0x6c, 0x00, 0x98, 0x9d, 0x86, 0x60, 0xa4, 0xc1, 0xed, 0xd0, 0x94, 0xdc, 0xb4, 0x4d, + 0xa9, 0x9b, 0x1f, 0x84, 0x7e, 0xd2, 0x29, 0xc6, 0x69, 0xce, 0xa4, 0xb4, 0xb4, 0xf1, 0x77, 0xb8, + 0xb3, 0x5e, 0xb6, 0xc9, 0x0b, 0x42, 0x1f, 0x9b, 0x6e, 0xe6, 0x15, 0x68, 0xf7, 0x71, 0xef, 0xad, + 0xa4, 0x93, 0xd8, 0xa3, 0x29, 0x9b, 0x62, 0x3e, 0x9f, 0x26, 0xdd, 0xdd, 0xea, 0x84, 0x70, 0x55, + 0xb4, 0xca, 0xda, 0xaa, 0xd3, 0x91, 0x90, 0x05, 0xb6, 0x45, 0x55, 0x90, 0xb7, 0x08, 0xf1, 0x0d, + 0x9d, 0x94, 0xb7, 0x2d, 0x73, 0xe3, 0xbd, 0x62, 0x54, 0x71, 0xfb, 0x1a, 0x0e, 0x44, 0x3b, 0x4a, + 0x4a, 0xab, 0xca, 0x10, 0x17, 0x0a, 0xfd, 0x76, 0x00, 0x71, 0xb1, 0x0e, 0x99, 0xf4, 0x26, 0x0c, + 0x47, 0x3b, 0x0a, 0x4a, 0x83, 0x7e, 0xc4, 0x8a, 0x42, 0x57, 0x28, 0x74, 0xa5, 0xd0, 0xc6, 0x63, + 0x4a, 0xc9, 0x87, 0x59, 0xad, 0x42, 0xca, 0x44, 0xd8, 0x0b, 0x25, 0xde, 0x76, 0x5c, 0xcf, 0x36, + 0xda, 0xd5, 0xb4, 0xf5, 0x7c, 0x90, 0x6e, 0x7d, 0x1c, 0x5d, 0xd0, 0xeb, 0xec, 0x82, 0xfe, 0x45, + 0x5d, 0xb0, 0x19, 0xe9, 0xa9, 0x2e, 0xd8, 0xe2, 0xc4, 0xd5, 0x5d, 0xd1, 0x05, 0x83, 0x01, 0x2f, + 0x6c, 0x8c, 0x1e, 0xd3, 0x34, 0x89, 0xf8, 0x70, 0x9d, 0xb6, 0x92, 0xde, 0x6f, 0x4d, 0x97, 0x48, + 0x79, 0xb2, 0x9d, 0x75, 0xbb, 0x04, 0x34, 0x6d, 0x22, 0xc1, 0x64, 0x52, 0xe8, 0xe9, 0xc1, 0xf9, + 0x1e, 0x95, 0x63, 0xd8, 0x0a, 0x1f, 0xf1, 0x2f, 0x7c, 0x72, 0xc9, 0xed, 0x06, 0xff, 0x7d, 0x6d, + 0x50, 0x0e, 0xc5, 0xbd, 0x50, 0x7b, 0x43, 0xed, 0x29, 0x11, 0x36, 0x45, 0x48, 0x0f, 0x6a, 0x17, + 0x94, 0xc4, 0x0b, 0x7a, 0x00, 0xb1, 0x67, 0x89, 0x35, 0xb8, 0x18, 0x70, 0x2f, 0xfd, 0x9c, 0xb0, + 0x48, 0xc7, 0x1a, 0xee, 0x85, 0xbc, 0x6c, 0x29, 0xcb, 0x8b, 0x1c, 0x44, 0xfa, 0x82, 0x74, 0x71, + 0xd1, 0x98, 0xb0, 0x4e, 0x0c, 0x11, 0x4f, 0xdd, 0x67, 0x07, 0xd6, 0x14, 0x05, 0x36, 0xd2, 0x90, + 0x2f, 0xc2, 0x5e, 0xf5, 0xdd, 0x3d, 0xb6, 0x06, 0x48, 0xc3, 0xb9, 0x9f, 0x6e, 0x27, 0x4e, 0xb5, + 0xc2, 0x9c, 0x53, 0x35, 0xf6, 0x18, 0x69, 0xbe, 0xe7, 0xef, 0x36, 0x47, 0x11, 0x42, 0x2c, 0x49, + 0x5e, 0xcc, 0x36, 0x4d, 0x62, 0x48, 0x2d, 0x50, 0xe8, 0xd1, 0xd8, 0x6b, 0x60, 0x4e, 0x14, 0xc4, + 0x36, 0x24, 0xf2, 0x48, 0xf3, 0x1a, 0x95, 0x83, 0xb4, 0x03, 0x6b, 0x44, 0xa4, 0xf2, 0x32, 0xda, + 0x55, 0xd4, 0xa8, 0xd6, 0x27, 0x24, 0xbd, 0xd4, 0x2a, 0xee, 0x53, 0xb0, 0x47, 0x48, 0x9f, 0x4f, + 0xbb, 0xa6, 0xcf, 0xc7, 0xc8, 0xfa, 0x7c, 0x92, 0xa0, 0x60, 0x6f, 0x34, 0x73, 0x6f, 0xd4, 0x71, + 0x6f, 0x5c, 0xd1, 0x72, 0x3e, 0x34, 0xdd, 0x9e, 0xa9, 0x3f, 0xd6, 0xdd, 0x0b, 0x0f, 0xa7, 0xea, + 0x2e, 0x78, 0xf2, 0xf9, 0x34, 0x3f, 0x2a, 0x6c, 0xa7, 0x23, 0x2d, 0x65, 0xc0, 0x76, 0xcf, 0xf6, + 0x9a, 0x31, 0x5d, 0x8c, 0x66, 0x5a, 0x4a, 0xb6, 0x93, 0x65, 0x8d, 0x41, 0xd3, 0x1e, 0x21, 0x2c, + 0xcf, 0xa4, 0x24, 0x83, 0xf2, 0x84, 0xac, 0x77, 0x0c, 0xe7, 0x6b, 0xdc, 0xfc, 0xa5, 0x30, 0xe4, + 0x92, 0x2e, 0xf2, 0x94, 0x3c, 0x10, 0x6b, 0x9c, 0x0b, 0xa6, 0xf8, 0xe9, 0x7d, 0x52, 0xca, 0x22, + 0x9e, 0xd0, 0x0b, 0x81, 0xfb, 0xef, 0x1e, 0x92, 0xe9, 0x73, 0x98, 0x5d, 0xb3, 0x9d, 0xc0, 0x96, + 0x17, 0xf6, 0xa4, 0x60, 0x00, 0x69, 0x0e, 0xd7, 0x60, 0xc0, 0x72, 0x6b, 0x15, 0x48, 0x09, 0x7b, + 0xa7, 0x19, 0x7f, 0x0d, 0xf1, 0x1a, 0x25, 0x07, 0x7f, 0xb3, 0x12, 0x85, 0xf8, 0x36, 0xc6, 0xcb, + 0x15, 0x3a, 0x35, 0x27, 0xdd, 0x07, 0xef, 0x28, 0x85, 0x9a, 0x6b, 0x5c, 0xc9, 0xd5, 0x5c, 0x27, + 0x14, 0xb3, 0xe6, 0x3a, 0xc5, 0x9a, 0x53, 0x04, 0x0f, 0x7f, 0x4a, 0x73, 0xf8, 0x87, 0xc1, 0x42, + 0x75, 0x97, 0xd0, 0x11, 0xeb, 0xb5, 0x24, 0x55, 0x92, 0x30, 0xd1, 0x64, 0x30, 0xb2, 0x78, 0xf7, + 0xb1, 0xca, 0x5e, 0xb0, 0xd9, 0xbd, 0x88, 0xcd, 0x0f, 0xc4, 0x8d, 0xb1, 0x75, 0x89, 0xa7, 0x10, + 0x23, 0x47, 0xbc, 0xdc, 0xc9, 0x56, 0x65, 0x06, 0x2e, 0x27, 0xcc, 0x66, 0x03, 0x62, 0x26, 0x66, + 0xa5, 0x8d, 0x74, 0xe1, 0xc6, 0x9b, 0xb1, 0x1f, 0x4c, 0x1c, 0x66, 0xc4, 0xb0, 0x15, 0x4c, 0xed, + 0x36, 0x70, 0x0a, 0xeb, 0xda, 0xde, 0x63, 0x83, 0x09, 0x53, 0xe4, 0xcd, 0xb8, 0x49, 0xa9, 0x8c, + 0x8c, 0x26, 0x2a, 0x30, 0x66, 0x0e, 0xf9, 0xdb, 0x4c, 0x4a, 0x49, 0x64, 0x74, 0x8d, 0x9b, 0x63, + 0xd9, 0xd6, 0xce, 0x3a, 0xba, 0x3e, 0x3f, 0x00, 0xd9, 0x07, 0x06, 0xe3, 0x94, 0x0b, 0x7c, 0x6d, + 0x54, 0x31, 0xd1, 0x4d, 0xc3, 0xd7, 0x66, 0xac, 0x36, 0xc7, 0x7d, 0xce, 0xfb, 0x6e, 0xad, 0x21, + 0xae, 0xbb, 0x82, 0x4c, 0x2e, 0xcb, 0x06, 0x31, 0x1f, 0xe3, 0x81, 0xc1, 0x96, 0x55, 0xa7, 0x07, + 0xfd, 0x0b, 0x5d, 0xa6, 0xfa, 0x4f, 0x64, 0x09, 0x9a, 0xa0, 0x1b, 0x2c, 0xb8, 0x1f, 0x55, 0x7a, + 0x6b, 0x71, 0xbf, 0x44, 0x2a, 0x04, 0xd7, 0x90, 0x0d, 0xd7, 0x99, 0x95, 0x73, 0xfc, 0x3d, 0x8c, + 0x1f, 0x3e, 0x72, 0xa7, 0x2f, 0xff, 0xf8, 0xd2, 0x9d, 0xbe, 0x3c, 0x5a, 0x7a, 0xa7, 0x2f, 0x5f, + 0x2d, 0x11, 0x35, 0xd5, 0x56, 0xbe, 0xcf, 0xed, 0x05, 0xbf, 0x07, 0xe1, 0xae, 0x13, 0xa1, 0x74, + 0x09, 0x42, 0x65, 0x84, 0x04, 0x11, 0x87, 0x17, 0xa2, 0x2e, 0x89, 0xb5, 0x47, 0x97, 0xea, 0xb5, + 0x47, 0x2f, 0xb9, 0x31, 0xfd, 0x14, 0xae, 0xe0, 0x42, 0x96, 0x92, 0xbe, 0xcb, 0x3b, 0x8b, 0x74, + 0xfb, 0x69, 0x37, 0x63, 0x88, 0x17, 0x78, 0x4d, 0x62, 0xcd, 0xb0, 0x5c, 0x65, 0xe3, 0x32, 0xa1, + 0x7f, 0xc2, 0x18, 0x5b, 0x1f, 0x3f, 0xa5, 0xd7, 0xe2, 0x2c, 0x6c, 0x9d, 0x69, 0x3a, 0xad, 0x67, + 0x6b, 0x33, 0x77, 0x79, 0x79, 0x90, 0xb5, 0x4f, 0xd5, 0xf1, 0xa9, 0x86, 0x2d, 0x61, 0x4d, 0x4e, + 0x0f, 0x6f, 0x89, 0x9b, 0x9d, 0x6d, 0xb8, 0x9b, 0x4b, 0x2f, 0x9c, 0x70, 0x64, 0x31, 0x47, 0x41, + 0xa9, 0x5e, 0x56, 0xd5, 0x9b, 0x45, 0xf6, 0xf6, 0x88, 0x6b, 0x80, 0xe5, 0x03, 0x0f, 0xa9, 0x3e, + 0xbd, 0x6c, 0xaa, 0x90, 0x11, 0x25, 0x3d, 0x3b, 0x38, 0x0a, 0x46, 0x92, 0xdc, 0x41, 0xec, 0xbf, + 0x12, 0x97, 0xa3, 0x79, 0x64, 0x13, 0x52, 0xda, 0x66, 0xed, 0x1c, 0xe4, 0x4a, 0x12, 0x34, 0x39, + 0xa9, 0x73, 0x2c, 0xf3, 0xd8, 0x05, 0x0d, 0xd8, 0x1f, 0xcb, 0xb1, 0x1f, 0x9a, 0xdc, 0x5d, 0xa0, + 0x38, 0x8a, 0x61, 0xb9, 0x6b, 0x0d, 0x54, 0x90, 0x7c, 0x0d, 0xcc, 0x89, 0x83, 0xe1, 0x45, 0x3e, + 0xed, 0x58, 0x4a, 0xa7, 0x1d, 0x24, 0xef, 0x6c, 0xd8, 0x4c, 0xfe, 0x8c, 0x85, 0x2e, 0xa1, 0x57, + 0x75, 0x66, 0x9f, 0xc9, 0x79, 0x09, 0x92, 0xcf, 0x21, 0xfd, 0xba, 0x0d, 0x64, 0x3f, 0x63, 0x78, + 0x28, 0x11, 0xf5, 0xde, 0x45, 0x3b, 0xfa, 0x36, 0x27, 0xe1, 0xb2, 0xb3, 0x4d, 0xf5, 0xdb, 0xbd, + 0x45, 0xd0, 0xcf, 0x21, 0x51, 0x76, 0x57, 0xe0, 0x53, 0xca, 0xfe, 0x36, 0xd2, 0x36, 0x0d, 0x74, + 0x0f, 0x5a, 0xea, 0xbd, 0x17, 0xd7, 0xbf, 0xcd, 0x6b, 0xe6, 0xf0, 0x3f, 0x67, 0xfc, 0x97, 0xa4, + 0x14, 0x96, 0x6b, 0xd6, 0xbf, 0x96, 0x2f, 0x6a, 0x45, 0x2c, 0xac, 0x04, 0xdf, 0x25, 0xe0, 0x63, + 0x69, 0xbb, 0xe5, 0x2c, 0x6d, 0xb7, 0x1c, 0x31, 0x43, 0x8a, 0xd1, 0xe8, 0x01, 0xd6, 0xc5, 0xfa, + 0x7b, 0x28, 0xa5, 0x3a, 0xa7, 0xce, 0xde, 0x48, 0x13, 0xab, 0x77, 0x09, 0xc2, 0xf0, 0x3a, 0x84, + 0xdf, 0xb6, 0xe1, 0xa7, 0x69, 0x4e, 0x97, 0x06, 0x71, 0xee, 0x44, 0x22, 0x3f, 0x80, 0x08, 0xee, + 0xae, 0xe5, 0xac, 0xb9, 0x35, 0x7a, 0x1b, 0x6a, 0x44, 0xa7, 0xad, 0xd5, 0x7b, 0xb7, 0x77, 0x56, + 0xd2, 0x38, 0xf0, 0x34, 0x4e, 0x9b, 0x5e, 0x55, 0x25, 0x09, 0x32, 0x6c, 0x41, 0x65, 0xda, 0x0a, + 0xde, 0xdd, 0xf8, 0xed, 0x19, 0x84, 0x5f, 0xd9, 0xfa, 0xaf, 0xf5, 0xdb, 0xe5, 0xe5, 0xf6, 0x1a, + 0x51, 0x37, 0x79, 0xf9, 0x97, 0xba, 0x10, 0xac, 0x7a, 0xf8, 0x97, 0x6b, 0xad, 0xe9, 0x75, 0xd2, + 0xcd, 0x9b, 0x19, 0x3d, 0xbd, 0x96, 0xcf, 0x75, 0xaa, 0x78, 0x24, 0xe8, 0xbe, 0xbb, 0x5c, 0x83, + 0x97, 0x72, 0x0a, 0x5e, 0xf2, 0xdc, 0x20, 0x68, 0xe9, 0x24, 0x39, 0xc1, 0x94, 0xfe, 0x1a, 0x67, + 0x94, 0x25, 0xbe, 0x35, 0x19, 0xb8, 0xd8, 0x50, 0xc2, 0xe7, 0x2b, 0x91, 0xe4, 0x65, 0xc1, 0xff, + 0x14, 0x94, 0xe4, 0x78, 0xa1, 0xdc, 0x60, 0xef, 0x94, 0x0a, 0xb4, 0x1a, 0x2d, 0xfb, 0x52, 0x9b, + 0x54, 0x88, 0x35, 0xa2, 0xdf, 0xb9, 0x58, 0xa3, 0x65, 0xa2, 0x46, 0xa1, 0x8b, 0x3a, 0x39, 0xc8, + 0x63, 0x9a, 0x1e, 0xe5, 0x5f, 0x05, 0x57, 0x92, 0xce, 0xd9, 0xb4, 0x1e, 0x15, 0xc4, 0x5a, 0x5d, + 0x3a, 0xb9, 0x72, 0xc4, 0x58, 0x03, 0x3d, 0x50, 0xfb, 0x11, 0xd8, 0x95, 0x3c, 0xb9, 0x8e, 0x25, + 0xc9, 0x09, 0xd3, 0x76, 0x91, 0x3e, 0x13, 0x84, 0xdd, 0xcb, 0x78, 0x4f, 0x79, 0x3f, 0x86, 0xd0, + 0x85, 0x65, 0xca, 0xfb, 0x52, 0x1a, 0x1c, 0x85, 0x74, 0xf9, 0xca, 0xc2, 0xb4, 0x8e, 0x20, 0xf3, + 0xed, 0xb4, 0x03, 0x21, 0x0d, 0x34, 0xc7, 0xec, 0x46, 0xdf, 0x97, 0x13, 0xb9, 0x7a, 0x1d, 0x4f, + 0xc9, 0xe9, 0x37, 0xc9, 0x2a, 0xe4, 0x4c, 0x2d, 0xfc, 0x8c, 0x0b, 0x24, 0x0d, 0x64, 0x0b, 0x5b, + 0xc3, 0x00, 0x58, 0xd6, 0x97, 0xd6, 0x3b, 0xae, 0xff, 0x3a, 0x39, 0xec, 0x72, 0x21, 0xc4, 0x68, + 0x85, 0x02, 0xf0, 0xb8, 0x5d, 0x50, 0xc8, 0xf6, 0x4d, 0x5f, 0x74, 0x23, 0xdd, 0x4c, 0x7c, 0x4e, + 0x86, 0xe5, 0x09, 0x8b, 0x1c, 0xc6, 0x59, 0x65, 0xa7, 0xdb, 0x86, 0x92, 0x2c, 0xd2, 0x1d, 0x80, + 0x73, 0x3d, 0x23, 0x65, 0x7f, 0xb2, 0xb4, 0x1f, 0x2a, 0x7f, 0x79, 0x14, 0x67, 0x8f, 0x2f, 0x5c, + 0xa3, 0x98, 0x1a, 0x6b, 0x10, 0xf6, 0xf8, 0x70, 0xed, 0xf9, 0x64, 0x1b, 0x69, 0x3d, 0x1f, 0xfe, + 0x01, 0x78, 0xe2, 0x17, 0xbd, 0xd5, 0x08, 0x0e, 0x91, 0x62, 0x50, 0xfa, 0xff, 0xea, 0x43, 0xf0, + 0x24, 0x4c, 0xf8, 0xf6, 0xc5, 0xdb, 0x52, 0x7a, 0x39, 0xd3, 0xf2, 0x88, 0xf5, 0xac, 0xb5, 0xb9, + 0x1c, 0x77, 0xcf, 0x00, 0x69, 0x72, 0x46, 0x48, 0x16, 0x24, 0x5b, 0x2d, 0x2f, 0x9c, 0x58, 0x4c, + 0xfc, 0x03, 0x55, 0xac, 0x0f, 0xaa, 0x43, 0xe3, 0xf5, 0xb2, 0xdf, 0x22, 0xcd, 0x68, 0xb5, 0x47, + 0x32, 0xf1, 0xc2, 0xaf, 0x83, 0x4f, 0x6a, 0x67, 0xbd, 0xcc, 0xaf, 0x83, 0x67, 0xd9, 0x0f, 0xb0, + 0x7c, 0x96, 0xa9, 0x4e, 0x98, 0x63, 0xe8, 0xc6, 0xdd, 0xbc, 0x17, 0xeb, 0xe8, 0x11, 0x10, 0x21, + 0x61, 0x5c, 0xf6, 0x74, 0xfc, 0x2a, 0x42, 0x6d, 0x9f, 0x7d, 0x93, 0x22, 0xf5, 0xab, 0x7a, 0x1d, + 0x02, 0x72, 0xf8, 0x4b, 0x35, 0x20, 0x7f, 0x89, 0xee, 0xde, 0xed, 0x19, 0x29, 0x62, 0xec, 0xc3, + 0xb3, 0x38, 0xe6, 0x95, 0xce, 0xa8, 0x73, 0xb6, 0x0b, 0x5c, 0xf5, 0xfe, 0xa0, 0xa6, 0x5d, 0xe1, + 0x08, 0x53, 0xa7, 0x87, 0x35, 0x69, 0xc8, 0xfd, 0x4b, 0x3e, 0xc2, 0xbe, 0x5a, 0xaa, 0x83, 0x0b, + 0xed, 0xf0, 0xa2, 0x1d, 0x77, 0xad, 0xa5, 0x1f, 0x40, 0x65, 0x38, 0xac, 0x18, 0x1b, 0xc3, 0x9e, + 0xa0, 0x9c, 0x9f, 0x08, 0x1f, 0x18, 0x88, 0x5f, 0x45, 0xdc, 0x68, 0xbb, 0x3d, 0xf4, 0xc3, 0x5f, + 0x63, 0xff, 0x94, 0xe3, 0xdb, 0x97, 0x28, 0x4d, 0x59, 0xb9, 0x4c, 0x18, 0x87, 0x37, 0xc4, 0x2f, + 0xc8, 0x55, 0x49, 0x70, 0x44, 0x5e, 0x18, 0xd5, 0xea, 0x6c, 0xc6, 0x6f, 0x1b, 0xe2, 0x1f, 0xbd, + 0x70, 0xc2, 0xb3, 0xa9, 0xd7, 0xa0, 0x98, 0x7b, 0x0d, 0x3d, 0x2a, 0xee, 0x48, 0x11, 0xbd, 0xf6, + 0x9a, 0x58, 0x24, 0x5e, 0x8a, 0xeb, 0xdc, 0xcf, 0x2b, 0x3a, 0x06, 0x01, 0xec, 0x1d, 0x19, 0xd7, + 0x27, 0xf3, 0xe2, 0x21, 0x34, 0xea, 0x9b, 0xba, 0xa6, 0x51, 0xd4, 0x5d, 0x10, 0x4e, 0x5c, 0xf2, + 0xe3, 0x3e, 0x80, 0xb8, 0x82, 0x4a, 0xba, 0xc0, 0xfa, 0x49, 0xb2, 0xd3, 0x51, 0xff, 0x0d, 0x2a, + 0x33, 0x7a, 0x54, 0x11, 0xb5, 0xc8, 0xc7, 0x95, 0x58, 0x40, 0xb4, 0x0c, 0x0c, 0x11, 0x1a, 0x54, + 0xff, 0x0d, 0x69, 0x48, 0x55, 0xa7, 0xd4, 0x94, 0xfe, 0xe1, 0x45, 0x24, 0x45, 0x1f, 0xc0, 0x79, + 0xb4, 0x1c, 0xc8, 0xf6, 0x47, 0xb9, 0xab, 0x0d, 0xf2, 0xdc, 0x6d, 0x50, 0x50, 0xd6, 0x01, 0x46, + 0x5b, 0x31, 0xf3, 0xc1, 0xfc, 0x16, 0xa0, 0xc4, 0xec, 0xef, 0x00, 0x13, 0xfa, 0x89, 0x4f, 0xe6, + 0x0a, 0x92, 0x50, 0x51, 0xf0, 0xf8, 0x3a, 0xc0, 0x1c, 0xfa, 0xed, 0x26, 0xc0, 0x50, 0xb6, 0xa9, + 0x64, 0x37, 0x2f, 0x5b, 0x87, 0x61, 0x96, 0xd0, 0x15, 0x0e, 0x7b, 0x98, 0xc2, 0x64, 0xf3, 0xb2, + 0x81, 0x5e, 0x1c, 0x5c, 0x28, 0xf4, 0xb5, 0x83, 0x99, 0x6f, 0x5c, 0x9a, 0xfd, 0x48, 0x6c, 0x44, + 0x8f, 0x04, 0xda, 0x21, 0xa7, 0xb4, 0x1d, 0x2c, 0x38, 0xa7, 0x5c, 0x71, 0x7f, 0x45, 0x31, 0x59, + 0x77, 0xfc, 0xc7, 0x9f, 0xfd, 0xe3, 0x91, 0x40, 0x31, 0x7e, 0x3d, 0xf6, 0x0f, 0xc7, 0x96, 0x5e, + 0x99, 0x80, 0xea, 0xdf, 0x6e, 0x52, 0x47, 0x36, 0xb7, 0x9b, 0x9c, 0xa1, 0xef, 0x1c, 0x6f, 0x7c, + 0xb6, 0xfa, 0xda, 0x2e, 0x75, 0x78, 0x73, 0xbb, 0xdf, 0x13, 0xfc, 0xf3, 0x9f, 0x37, 0x6e, 0x55, + 0x3c, 0xee, 0x59, 0xef, 0xac, 0x7b, 0x71, 0xd3, 0xf8, 0xd3, 0xb8, 0x23, 0x7a, 0xce, 0x0e, 0xec, + 0xfe, 0xd6, 0xf8, 0x46, 0x67, 0xf5, 0x3f, 0x1e, 0x59, 0x7a, 0xad, 0x15, 0x14, 0x5b, 0x59, 0x3b, + 0x18, 0x17, 0xff, 0xb6, 0x17, 0xb0, 0x14, 0xd3, 0xff, 0xfe, 0x18, 0x3c, 0x6f, 0x3c, 0xdb, 0x69, + 0x71, 0xdf, 0x35, 0xf2, 0x2c, 0x52, 0x2b, 0x88, 0x01, 0xb8, 0x67, 0xfd, 0x35, 0x86, 0x75, 0x58, + 0x3c, 0x39, 0xc3, 0x5b, 0xdb, 0xcd, 0x1e, 0x50, 0x8c, 0x94, 0x07, 0xd5, 0x26, 0x74, 0xb9, 0x49, + 0x75, 0xe0, 0xbe, 0xd3, 0x2e, 0x39, 0x0c, 0xe1, 0x7d, 0x20, 0x1f, 0x1a, 0xec, 0x8c, 0xf8, 0x6b, + 0xab, 0xaf, 0xb4, 0xaa, 0x4e, 0x0b, 0x96, 0x2d, 0x39, 0xe1, 0xf0, 0xfa, 0xce, 0x52, 0x6c, 0x87, + 0xf1, 0x6b, 0x47, 0xa3, 0x1b, 0x48, 0x67, 0xd7, 0x8e, 0xa3, 0x2e, 0x8b, 0xbd, 0x03, 0xe1, 0x9d, + 0xc6, 0x41, 0x23, 0x67, 0xdb, 0x4d, 0x65, 0x18, 0x8e, 0x23, 0x8c, 0x33, 0x13, 0x57, 0x77, 0xcd, + 0x03, 0x64, 0x0b, 0xa5, 0x1d, 0x84, 0x16, 0x81, 0x47, 0xe7, 0x2d, 0x05, 0xd7, 0x03, 0x4b, 0x21, + 0xfa, 0xe2, 0xe2, 0x87, 0xab, 0xc1, 0x48, 0x3a, 0x1c, 0x76, 0x07, 0x1f, 0xae, 0x41, 0x6c, 0xb8, + 0x1d, 0x6c, 0x58, 0xa2, 0xcd, 0xf5, 0x3a, 0x38, 0x8a, 0xea, 0xc0, 0xd1, 0xd8, 0x81, 0x7b, 0x44, + 0xbb, 0x0c, 0x50, 0x28, 0x2f, 0x4d, 0x42, 0xb7, 0xea, 0xa8, 0xc3, 0xfc, 0x02, 0x74, 0x7a, 0x84, + 0x50, 0x93, 0xad, 0xd6, 0xfe, 0x3c, 0x48, 0xfa, 0xd8, 0x79, 0x8e, 0x17, 0x36, 0x6c, 0x53, 0xcc, + 0x34, 0x7a, 0xe1, 0x36, 0xda, 0x4b, 0xfb, 0x27, 0x59, 0xf7, 0x11, 0x6b, 0x5c, 0xe0, 0x33, 0x22, + 0x61, 0x93, 0xc7, 0x5e, 0x54, 0xab, 0xde, 0x28, 0x8a, 0xaa, 0xd7, 0x58, 0x6b, 0xdd, 0x78, 0xb4, + 0x6f, 0x1a, 0x6e, 0xb5, 0xb3, 0x9c, 0xd2, 0xb0, 0xa0, 0xc1, 0xb1, 0xd9, 0x77, 0xb6, 0x1c, 0x32, + 0xbf, 0x6a, 0xa6, 0xe5, 0x10, 0xd2, 0x72, 0x1a, 0xd1, 0xf4, 0x76, 0x55, 0xce, 0x80, 0xab, 0x1e, + 0xd2, 0x21, 0xc3, 0x16, 0x36, 0xe2, 0xb6, 0xf0, 0xf7, 0xc1, 0x8e, 0xfb, 0x1c, 0x41, 0x55, 0x3b, + 0xdd, 0x7a, 0x22, 0x34, 0xc0, 0xfd, 0x2c, 0x08, 0x52, 0xf0, 0x3d, 0xf5, 0x4b, 0x41, 0xa8, 0xab, + 0x42, 0xd8, 0x4b, 0xb1, 0x15, 0x71, 0xeb, 0x52, 0x17, 0x37, 0x2f, 0x9e, 0x00, 0x8f, 0xfd, 0x59, + 0xfb, 0x12, 0x0d, 0x0f, 0x98, 0x08, 0x3f, 0xe7, 0x77, 0x43, 0xa9, 0x14, 0xfe, 0x9b, 0x4f, 0x20, + 0x1c, 0x04, 0xc4, 0x3b, 0xec, 0xf2, 0x12, 0xc5, 0x8a, 0xf9, 0xc8, 0x52, 0x10, 0x8c, 0x1b, 0x82, + 0x5a, 0xbc, 0x8f, 0xb0, 0x2f, 0x7c, 0xf8, 0x94, 0x3c, 0x18, 0x86, 0xd2, 0xb5, 0x50, 0x21, 0x49, + 0xd8, 0xdf, 0xb5, 0x17, 0x11, 0x22, 0xba, 0x7c, 0x45, 0x20, 0x97, 0x4a, 0x3f, 0x0c, 0x21, 0x36, + 0x39, 0x47, 0x0a, 0xaa, 0x9f, 0x0c, 0x54, 0x3f, 0x44, 0x63, 0x54, 0x67, 0x5f, 0x92, 0x81, 0xf6, + 0xce, 0x14, 0xb4, 0x3f, 0x85, 0x58, 0x51, 0xc3, 0x62, 0x4c, 0xa7, 0x7d, 0x2d, 0x71, 0x42, 0x3c, + 0xa8, 0xb9, 0xed, 0x33, 0xec, 0x70, 0xcf, 0x25, 0xfd, 0x6e, 0xf6, 0x56, 0x29, 0xca, 0xfb, 0xbf, + 0xd8, 0xfd, 0xcf, 0xe9, 0xb8, 0x6f, 0x78, 0xff, 0x59, 0xd4, 0xd0, 0xb4, 0x6d, 0x2d, 0xc8, 0x35, + 0xda, 0xae, 0x91, 0xa5, 0x59, 0x7d, 0xf9, 0x93, 0x94, 0x0e, 0x44, 0x1c, 0x45, 0x07, 0xe9, 0xd8, + 0x77, 0xb8, 0xc8, 0x8a, 0xaf, 0xb0, 0x6c, 0xc2, 0x36, 0x55, 0x03, 0xdf, 0x3d, 0xf9, 0xfc, 0xcf, + 0x93, 0xd0, 0x2b, 0x1d, 0x1f, 0x54, 0x9c, 0x48, 0xf7, 0xcc, 0x25, 0xeb, 0x24, 0x52, 0x65, 0x8c, + 0x6c, 0x6a, 0x13, 0x0e, 0x9d, 0xe3, 0xaa, 0x95, 0x19, 0x9b, 0x8e, 0x1b, 0xbf, 0x7b, 0x32, 0x09, + 0xf6, 0xa8, 0x06, 0x71, 0xc0, 0xd0, 0xf9, 0x93, 0xe3, 0xf1, 0xb7, 0xf8, 0x2c, 0xea, 0x29, 0x4d, + 0x9f, 0xeb, 0x66, 0x91, 0x16, 0xc3, 0x0c, 0x09, 0x0f, 0xa7, 0xce, 0x67, 0xb9, 0xaf, 0x01, 0xfb, + 0x90, 0x3c, 0x20, 0xb0, 0x3b, 0xd7, 0x26, 0xdc, 0x39, 0x92, 0x84, 0x43, 0x27, 0x2a, 0x58, 0xc6, + 0xd9, 0x89, 0x7e, 0x85, 0x6d, 0xa1, 0x90, 0xe4, 0x9b, 0x91, 0x4a, 0x3b, 0x28, 0xb4, 0x0a, 0x81, + 0x01, 0xcb, 0x22, 0xcd, 0x38, 0xd2, 0xa2, 0xc4, 0x35, 0xd7, 0x90, 0xbc, 0x17, 0x02, 0x48, 0xa7, + 0x07, 0x14, 0xd2, 0x15, 0x2c, 0x7c, 0x51, 0xf6, 0xd9, 0x75, 0xa5, 0xb6, 0x73, 0xa9, 0x6e, 0x45, + 0x92, 0xeb, 0x5c, 0x0d, 0xb1, 0x76, 0xa9, 0x32, 0x71, 0xed, 0x27, 0xc7, 0x11, 0xf6, 0x5e, 0x96, + 0x3f, 0xc7, 0x75, 0x34, 0xda, 0x07, 0x14, 0xb2, 0x06, 0x14, 0x70, 0x0e, 0xc9, 0xcf, 0xd2, 0x4d, + 0x36, 0xd7, 0xc4, 0x19, 0x1b, 0xa2, 0xf2, 0xe0, 0x04, 0xdb, 0x61, 0xb9, 0x61, 0xff, 0x1c, 0xd7, + 0xd5, 0xe8, 0x5a, 0x87, 0x71, 0x43, 0x10, 0xc0, 0x36, 0xb4, 0xc9, 0x03, 0x4a, 0xab, 0x16, 0xeb, + 0x15, 0xd6, 0xa4, 0x7f, 0x43, 0xa9, 0xe1, 0x5a, 0xfb, 0x59, 0xbf, 0x1f, 0xd6, 0x1a, 0xcb, 0x6c, + 0x88, 0xb5, 0x62, 0x89, 0xd7, 0xed, 0xb6, 0xc4, 0x53, 0xf6, 0x90, 0x22, 0xd9, 0xc3, 0x8e, 0x7b, + 0xe3, 0x37, 0x66, 0xe6, 0x65, 0x1f, 0x08, 0x0f, 0x29, 0x32, 0xe6, 0x64, 0x54, 0x1e, 0x15, 0xf9, + 0xdc, 0x5c, 0x33, 0xf9, 0xd9, 0xf0, 0xf3, 0x88, 0xd1, 0xba, 0x4d, 0x07, 0x59, 0xba, 0x3b, 0x46, + 0xfa, 0x6d, 0x1a, 0xb6, 0x09, 0xbc, 0x20, 0x6d, 0x51, 0x66, 0xae, 0x66, 0x51, 0x26, 0x9f, 0x2d, + 0xca, 0xd8, 0x04, 0x87, 0x6a, 0x77, 0xd6, 0xe8, 0xba, 0x04, 0x59, 0x36, 0x3a, 0x90, 0xc2, 0x1e, + 0x04, 0xee, 0x40, 0xa7, 0x14, 0x42, 0x66, 0x9c, 0xd2, 0x7b, 0x5d, 0x29, 0xb9, 0xf1, 0xf9, 0xe8, + 0x83, 0x72, 0x3e, 0x2f, 0x7b, 0x99, 0xf4, 0x85, 0x90, 0x3e, 0x32, 0x87, 0xd9, 0x09, 0x7c, 0x0e, + 0xeb, 0x8f, 0x0d, 0x26, 0x7c, 0x08, 0x13, 0x10, 0x9f, 0x33, 0x80, 0xd0, 0x76, 0x67, 0x3e, 0x54, + 0x14, 0x56, 0xaf, 0x17, 0x55, 0xcd, 0xd4, 0x21, 0x32, 0xf5, 0x52, 0x5a, 0x87, 0x88, 0xcc, 0x76, + 0x8e, 0xce, 0x68, 0xf6, 0x26, 0xec, 0xac, 0x57, 0x70, 0x25, 0x52, 0x55, 0x66, 0x5a, 0x73, 0x38, + 0x8a, 0xc4, 0xff, 0x09, 0x09, 0xcb, 0x83, 0x21, 0x88, 0xe2, 0xea, 0x89, 0x29, 0x79, 0x3e, 0x37, + 0x98, 0xc7, 0x42, 0x0f, 0x06, 0x21, 0x8a, 0x2e, 0xcb, 0x58, 0x18, 0x5d, 0x31, 0xb2, 0x0f, 0x8c, + 0xeb, 0x7e, 0xff, 0x83, 0xa4, 0x0d, 0xd9, 0x8c, 0xef, 0x18, 0x58, 0x84, 0x9e, 0x1b, 0xc2, 0x5b, + 0xd8, 0x66, 0xd0, 0x47, 0x29, 0x9b, 0x41, 0x49, 0xd0, 0xfb, 0x19, 0xbf, 0xd3, 0xec, 0x03, 0x91, + 0x34, 0x3e, 0xeb, 0x1d, 0xd3, 0xeb, 0x05, 0x25, 0x3d, 0x62, 0x85, 0x31, 0x17, 0xdc, 0xd7, 0x6e, + 0x4d, 0xe1, 0x6d, 0x85, 0x2f, 0x35, 0x6c, 0xbb, 0x59, 0x77, 0xa8, 0x66, 0x75, 0x87, 0xec, 0x54, + 0x94, 0x3a, 0x34, 0x4b, 0x59, 0x3c, 0x46, 0x15, 0x08, 0x89, 0xd9, 0x76, 0x1e, 0xd9, 0xfb, 0x8d, + 0x1e, 0x8d, 0xfe, 0x0c, 0xcb, 0xce, 0x4f, 0xe7, 0x59, 0xa8, 0x59, 0x00, 0xc9, 0x68, 0x10, 0x4b, + 0xea, 0x2d, 0x40, 0xd5, 0x05, 0x04, 0xa7, 0xad, 0xe0, 0xf2, 0x5d, 0x54, 0xe1, 0xa8, 0x2d, 0xaa, + 0x57, 0xcf, 0x31, 0x6f, 0xde, 0x05, 0x6d, 0xfd, 0x04, 0x2a, 0xa5, 0xb2, 0xaa, 0x85, 0x11, 0xf5, + 0xec, 0xc2, 0x6a, 0xf5, 0xdd, 0xf2, 0xa0, 0xbd, 0x8e, 0xe6, 0x4e, 0xbb, 0xc9, 0x61, 0x8d, 0x0c, + 0xda, 0xc3, 0xcc, 0x5b, 0x7c, 0xa6, 0xbc, 0x58, 0x3d, 0xdb, 0x18, 0xd9, 0xb5, 0xf8, 0x60, 0x6d, + 0x17, 0xeb, 0xb8, 0xc0, 0xaf, 0xe6, 0xc8, 0xa0, 0x1c, 0xae, 0x28, 0x56, 0xdf, 0x6d, 0xac, 0x7e, + 0x71, 0xc9, 0xa1, 0x68, 0x57, 0x78, 0x57, 0xed, 0x8b, 0xd1, 0x58, 0xb0, 0xc3, 0x34, 0xb6, 0xd8, + 0x3f, 0x4b, 0x31, 0xf9, 0x67, 0xed, 0x08, 0xfa, 0x66, 0xc5, 0x42, 0x1d, 0xa6, 0x53, 0x4b, 0xca, + 0xee, 0x52, 0x4c, 0x65, 0x77, 0xed, 0x0c, 0x95, 0xde, 0x85, 0x6d, 0xe6, 0x96, 0xd8, 0xa3, 0xa9, + 0xb6, 0x90, 0xd6, 0x59, 0xd6, 0x70, 0x46, 0x27, 0x60, 0x5a, 0x9b, 0x3a, 0x6a, 0x4a, 0x11, 0xab, + 0x2a, 0x9b, 0xf5, 0x76, 0x88, 0xec, 0xd4, 0xf8, 0xef, 0x3a, 0x1d, 0x3c, 0x85, 0x70, 0x7c, 0xac, + 0x43, 0x7d, 0x97, 0x74, 0x44, 0xda, 0x3b, 0xd4, 0x33, 0xca, 0x9c, 0x03, 0xad, 0x60, 0xeb, 0xc8, + 0x1d, 0xc1, 0xfe, 0xee, 0xb4, 0xee, 0x6f, 0x85, 0xdc, 0x0e, 0xd3, 0x70, 0x2b, 0xe4, 0x77, 0xd5, + 0x68, 0xf0, 0xf2, 0x1c, 0xee, 0x0e, 0x67, 0xa8, 0xb4, 0x42, 0x84, 0x3c, 0x61, 0x7c, 0xec, 0xe8, + 0x96, 0xad, 0xf6, 0x62, 0xf5, 0x0c, 0xdd, 0x07, 0x96, 0xdd, 0x15, 0xfd, 0x29, 0xb5, 0x29, 0x7a, + 0x94, 0x5a, 0x10, 0xfd, 0x99, 0xa8, 0xc1, 0x74, 0x0f, 0xa5, 0xb8, 0xb7, 0x06, 0xc7, 0x32, 0xd5, + 0xbb, 0x73, 0xb9, 0x77, 0x8b, 0x91, 0x4a, 0x4b, 0xf7, 0xef, 0xb4, 0x4d, 0xdf, 0xbf, 0x2b, 0x27, + 0xd5, 0xe1, 0x94, 0x0e, 0x1f, 0xd6, 0x53, 0x49, 0x1a, 0x1e, 0xdb, 0x79, 0xb5, 0xac, 0xe5, 0xfe, + 0x4d, 0x66, 0x34, 0x32, 0x21, 0x35, 0x66, 0x80, 0x39, 0x2c, 0xbd, 0x72, 0x35, 0x13, 0x1a, 0xba, + 0x28, 0x39, 0x84, 0x1e, 0xb6, 0x8c, 0x9e, 0x25, 0xd2, 0xc4, 0x24, 0x7c, 0x82, 0xcb, 0xda, 0xfa, + 0x1a, 0x04, 0x59, 0xe3, 0xa5, 0xc9, 0x7c, 0x11, 0xd1, 0x9e, 0x02, 0x3b, 0x69, 0x54, 0xd8, 0x3e, + 0x7f, 0x09, 0x3c, 0xa6, 0x98, 0xd8, 0xbd, 0x31, 0x93, 0x36, 0x45, 0x0f, 0xdc, 0x51, 0xbf, 0x63, + 0x16, 0x18, 0x11, 0x53, 0x36, 0x23, 0x86, 0xfb, 0x19, 0xf4, 0x3b, 0xfa, 0x58, 0xdf, 0xa0, 0xb9, + 0x84, 0xd6, 0x7d, 0xdc, 0x87, 0xab, 0xd3, 0xe5, 0x7c, 0x38, 0x6d, 0x9f, 0x38, 0x68, 0xe7, 0xf3, + 0xab, 0xe9, 0x4b, 0x42, 0x73, 0xf9, 0x7c, 0xd2, 0x2e, 0x7e, 0x80, 0x4f, 0x2c, 0x2f, 0x2b, 0x46, + 0xdc, 0x1b, 0x0f, 0x64, 0xf6, 0x50, 0x59, 0xe8, 0x2d, 0x2c, 0xc8, 0xb4, 0x7b, 0x7e, 0x58, 0x0a, + 0xe8, 0x6b, 0xcd, 0x6b, 0x8d, 0xf4, 0x60, 0x98, 0xed, 0xa4, 0x2d, 0x17, 0xc7, 0xcc, 0xb1, 0x1a, + 0x5c, 0x82, 0x9b, 0x15, 0xe1, 0x4e, 0x36, 0x14, 0xc6, 0xcd, 0xf7, 0x07, 0x49, 0x63, 0x0a, 0xd5, + 0x10, 0x77, 0xd7, 0x42, 0xc7, 0xd7, 0x53, 0x78, 0x81, 0x5e, 0x03, 0x26, 0xe1, 0x04, 0x84, 0x1b, + 0xa4, 0xf0, 0x02, 0x75, 0xdf, 0x9d, 0xf1, 0x02, 0x6f, 0x8e, 0x5c, 0x02, 0x2f, 0x15, 0x47, 0xe1, + 0x25, 0xb1, 0x96, 0xc5, 0xb9, 0x29, 0x54, 0xb8, 0x44, 0xaf, 0xd5, 0xf0, 0x79, 0x7f, 0x50, 0xeb, + 0x35, 0x1b, 0xe2, 0xb1, 0x79, 0xd8, 0x6b, 0x6c, 0xff, 0x28, 0x6e, 0xe2, 0x9a, 0x59, 0xe5, 0xba, + 0xc5, 0xa4, 0x7f, 0x04, 0xb1, 0x7d, 0x25, 0x7d, 0x8e, 0xca, 0x9a, 0x58, 0x6d, 0xfa, 0xfe, 0x24, + 0x4b, 0xe8, 0x29, 0xbd, 0x3b, 0xb7, 0xda, 0x1c, 0xc3, 0x36, 0xb0, 0x06, 0x0c, 0x97, 0x99, 0xf4, + 0xdd, 0xba, 0xea, 0x1d, 0x9d, 0x29, 0x5c, 0xa3, 0x28, 0xa8, 0x9e, 0x9c, 0xb1, 0x2b, 0x93, 0x06, + 0xa2, 0x2c, 0x2f, 0x6b, 0x13, 0x18, 0xca, 0xd7, 0x71, 0x82, 0x4a, 0xcb, 0x06, 0x44, 0xbc, 0xee, + 0xd9, 0xa4, 0x8f, 0x21, 0x5b, 0xc7, 0x79, 0x09, 0xf1, 0xec, 0x55, 0xd9, 0x35, 0x90, 0x67, 0x38, + 0x24, 0xd5, 0x18, 0xc2, 0x52, 0x8d, 0x31, 0x9a, 0xed, 0xd4, 0x72, 0xcb, 0xe1, 0x7c, 0x2a, 0x45, + 0x3e, 0x4d, 0xdb, 0xe4, 0xac, 0x6e, 0xdb, 0xc8, 0xfa, 0x66, 0x29, 0x69, 0x93, 0x23, 0x55, 0x97, + 0xa4, 0x31, 0x9d, 0xcc, 0xad, 0xbe, 0x0e, 0x90, 0xfd, 0x0a, 0x51, 0x4d, 0xd2, 0x59, 0x84, 0xd2, + 0x94, 0xfe, 0x51, 0x05, 0x8c, 0x5b, 0x67, 0xe4, 0xd8, 0x97, 0xca, 0x11, 0x57, 0x8d, 0xd5, 0x6b, + 0x5c, 0x7c, 0x49, 0x3a, 0xaa, 0xdd, 0x21, 0x1c, 0x16, 0xe7, 0xe2, 0x98, 0x87, 0xc2, 0xdf, 0xc8, + 0x72, 0xd1, 0xd5, 0xd4, 0xcd, 0x9a, 0x88, 0xad, 0x59, 0xab, 0x2f, 0x60, 0xed, 0x08, 0x90, 0x4d, + 0x32, 0x63, 0xc5, 0x08, 0xc3, 0x0e, 0x4d, 0x1f, 0x6f, 0xd8, 0xb6, 0xf6, 0xf4, 0xdb, 0xdf, 0x76, + 0x58, 0x14, 0x57, 0x5a, 0x5b, 0xcf, 0xfb, 0xde, 0x2c, 0x39, 0x5c, 0x3f, 0xf4, 0xdc, 0x71, 0x7b, + 0xd5, 0x0b, 0x27, 0xbe, 0xf3, 0x77, 0x7c, 0x1f, 0xb8, 0x9f, 0xef, 0x27, 0x48, 0xe3, 0xbf, 0x95, + 0x6f, 0xf9, 0x48, 0x8e, 0xed, 0x2d, 0x25, 0x6d, 0x13, 0xc7, 0x01, 0x54, 0x0e, 0x95, 0x1b, 0x6d, + 0x97, 0x8e, 0x8a, 0x33, 0x40, 0x21, 0x87, 0x34, 0x1d, 0x27, 0x9a, 0xbd, 0x07, 0xb0, 0x3d, 0x57, + 0x38, 0x65, 0x49, 0x8f, 0x01, 0xdd, 0xef, 0xcf, 0x68, 0xdb, 0xae, 0x54, 0xdb, 0x48, 0xf2, 0x6a, + 0xc8, 0xa0, 0x9e, 0x96, 0x23, 0x45, 0x0d, 0xac, 0x91, 0x24, 0x6b, 0x48, 0x52, 0xcf, 0x96, 0xb6, + 0x82, 0x11, 0x67, 0xdf, 0x39, 0xf6, 0x67, 0xa9, 0x17, 0x7c, 0xad, 0x60, 0xc2, 0x19, 0xc9, 0x36, + 0xa0, 0x89, 0x23, 0x58, 0x6e, 0x97, 0xce, 0x3d, 0xff, 0x73, 0xb6, 0x02, 0xcd, 0x7c, 0x25, 0xf6, + 0x48, 0xe9, 0x03, 0x74, 0xf6, 0x17, 0xba, 0x24, 0x4d, 0x90, 0xec, 0xa3, 0x74, 0xc1, 0x8b, 0xfb, + 0xde, 0x22, 0x43, 0x38, 0xa1, 0xf4, 0xcf, 0x28, 0xf7, 0x47, 0xa9, 0x72, 0x1d, 0xed, 0x52, 0xa9, + 0x1c, 0xf1, 0xbb, 0xc0, 0x78, 0x3a, 0x6c, 0x0d, 0x83, 0xe3, 0x09, 0xa9, 0xc7, 0x81, 0x18, 0x1d, + 0x9d, 0x75, 0x46, 0x33, 0x3a, 0x74, 0xc8, 0x32, 0xb1, 0x3d, 0x22, 0x3f, 0x62, 0x5f, 0x32, 0x36, + 0xa0, 0xd7, 0x05, 0xfa, 0xf9, 0x56, 0x98, 0x05, 0xcd, 0xf8, 0x9e, 0x0d, 0x2d, 0x74, 0xff, 0xc2, + 0x12, 0x4f, 0x05, 0x6c, 0x5d, 0x82, 0xec, 0xf9, 0x1e, 0xc3, 0x31, 0x6d, 0x97, 0x2e, 0xd0, 0xf9, + 0x16, 0x7f, 0x99, 0x14, 0xf7, 0x5a, 0x59, 0xdf, 0xd7, 0xea, 0xe2, 0x48, 0x9a, 0x87, 0x07, 0x99, + 0xc3, 0x6c, 0x01, 0xce, 0xeb, 0xf9, 0x6c, 0xa1, 0x42, 0xcc, 0x82, 0xb7, 0x32, 0xb3, 0x91, 0x6b, + 0xa8, 0x9f, 0x31, 0xb9, 0xd1, 0xf6, 0x2c, 0xbe, 0x49, 0x1d, 0xfa, 0x58, 0xc4, 0xc2, 0xdd, 0xcf, + 0x18, 0x8e, 0x2c, 0xe6, 0x53, 0xa8, 0xa5, 0x17, 0x21, 0x8e, 0xbb, 0x6f, 0x27, 0xf6, 0xd2, 0x18, + 0xce, 0xf7, 0xe3, 0x0a, 0x49, 0xe7, 0xeb, 0x53, 0xbb, 0x10, 0xe2, 0x1f, 0xc7, 0xf6, 0x3c, 0x40, + 0xeb, 0x09, 0xdf, 0x46, 0x7e, 0x4b, 0xf8, 0xae, 0x12, 0x78, 0xe9, 0x73, 0x05, 0xf5, 0xcf, 0x53, + 0x0b, 0x92, 0x26, 0xac, 0x5b, 0x9e, 0xb5, 0x0a, 0x6c, 0x5d, 0x26, 0x53, 0x95, 0xfa, 0x3b, 0x85, + 0xce, 0x87, 0x67, 0x75, 0x82, 0xc1, 0x84, 0xbf, 0x96, 0x55, 0x00, 0xd3, 0xdd, 0xa6, 0x91, 0xc1, + 0x78, 0x19, 0x49, 0xac, 0xe2, 0xce, 0x22, 0x95, 0xc2, 0xaf, 0x6b, 0x07, 0x83, 0x15, 0xd8, 0x93, + 0xbe, 0xec, 0x5f, 0x47, 0x07, 0xaa, 0xd1, 0x65, 0x0a, 0x64, 0xff, 0xba, 0x7e, 0x4b, 0x75, 0x85, + 0xe1, 0xfc, 0xd2, 0xcd, 0xa1, 0x52, 0x38, 0x8f, 0xdf, 0x7d, 0xa6, 0xf3, 0xd1, 0x81, 0x1a, 0xc5, + 0x46, 0xb5, 0xa8, 0xc0, 0x72, 0x71, 0xbc, 0x8c, 0x54, 0x17, 0x5f, 0x55, 0xd5, 0xe5, 0x4d, 0x10, + 0xfa, 0xcd, 0x26, 0xd0, 0xcb, 0x24, 0xf7, 0x43, 0x20, 0xbb, 0xc4, 0x14, 0x5d, 0x1c, 0x5e, 0xbc, + 0x75, 0xa3, 0xfc, 0x4c, 0xc0, 0x90, 0x72, 0xcf, 0x5b, 0x0c, 0xc6, 0x00, 0xe8, 0x7c, 0x42, 0x17, + 0x62, 0x98, 0x4e, 0xae, 0x3b, 0xcd, 0x9e, 0x62, 0x75, 0x2c, 0xbc, 0x58, 0xb1, 0x05, 0xb2, 0x1e, + 0xa9, 0xb1, 0xd6, 0x80, 0xb4, 0xca, 0xed, 0xc9, 0x79, 0x0a, 0xe9, 0xe9, 0xd2, 0x2a, 0x61, 0xcd, + 0xf7, 0xf9, 0xbf, 0xfd, 0xe5, 0xcf, 0x27, 0x96, 0x4a, 0xd5, 0xf7, 0xc0, 0xb9, 0x5a, 0x29, 0x04, + 0x97, 0x37, 0x87, 0xba, 0xad, 0xe3, 0xad, 0x9b, 0x83, 0x5f, 0x7e, 0xba, 0x15, 0xec, 0xa2, 0xaf, + 0x1e, 0xe0, 0xbe, 0x9a, 0xe3, 0x45, 0xf8, 0x83, 0x8f, 0xd1, 0x6b, 0x4b, 0xf7, 0x4e, 0x9d, 0xe8, + 0x9d, 0x86, 0xd7, 0xd5, 0xe3, 0xd4, 0x86, 0xb2, 0x7b, 0xad, 0x55, 0xaa, 0x1a, 0x87, 0xe9, 0xdd, + 0xb1, 0x08, 0xee, 0xfe, 0x67, 0x66, 0xf4, 0x35, 0xcf, 0xb5, 0xe7, 0x36, 0xa6, 0xe6, 0x9a, 0x98, + 0x05, 0xa1, 0xed, 0x38, 0x26, 0xf9, 0x33, 0x62, 0xbc, 0x96, 0x86, 0x19, 0x33, 0x69, 0x86, 0x08, + 0xe3, 0x84, 0x34, 0x36, 0x36, 0x31, 0x2f, 0x9e, 0xfb, 0x69, 0x7a, 0x5e, 0x58, 0x45, 0x5c, 0x7b, + 0x24, 0xb6, 0x1a, 0xa4, 0x78, 0x5e, 0xf5, 0xa5, 0xac, 0x54, 0x3a, 0x3b, 0xc7, 0x1c, 0x57, 0x72, + 0x31, 0xac, 0x70, 0x46, 0x39, 0xd7, 0x52, 0xe5, 0x78, 0x22, 0x0d, 0x5b, 0x7b, 0x40, 0xcc, 0x18, + 0x5f, 0xbe, 0xc8, 0x89, 0xe5, 0xb5, 0xe7, 0xa6, 0xa0, 0x92, 0x21, 0x47, 0xdc, 0x33, 0x6f, 0xb7, + 0xa4, 0xe6, 0x18, 0x62, 0xcd, 0x37, 0x52, 0x33, 0x70, 0x11, 0x84, 0x13, 0xda, 0x77, 0x1f, 0xf7, + 0x87, 0xd5, 0xff, 0x6e, 0xe3, 0x60, 0xd2, 0x8a, 0x33, 0x66, 0x98, 0xb8, 0x52, 0xf5, 0xa5, 0x6e, + 0x8f, 0xa5, 0x5b, 0x17, 0x79, 0xb8, 0x21, 0xeb, 0x20, 0x7e, 0x1f, 0x49, 0x95, 0x02, 0x7b, 0x38, + 0xc6, 0xea, 0x54, 0x0c, 0xd2, 0x32, 0x32, 0x23, 0xed, 0x33, 0x99, 0xb4, 0x2c, 0xed, 0x74, 0xd0, + 0x01, 0x33, 0xfa, 0xc8, 0xe9, 0x05, 0x7b, 0x24, 0xa9, 0xcd, 0xe3, 0xe8, 0x6a, 0x30, 0xfb, 0x56, + 0x83, 0x47, 0x8c, 0xd4, 0xf6, 0xff, 0x9a, 0xee, 0x2b, 0xd2, 0xa9, 0x16, 0xe0, 0x9e, 0xf2, 0xc4, + 0x4d, 0xb8, 0xba, 0x5f, 0x54, 0x72, 0x10, 0x8a, 0x06, 0xec, 0xed, 0xb8, 0x67, 0x52, 0xae, 0x23, + 0xce, 0x41, 0x25, 0xd5, 0x53, 0x05, 0x9c, 0xf6, 0xef, 0xd3, 0x35, 0x32, 0xf7, 0xa8, 0x8a, 0x49, + 0xdc, 0xb9, 0xa4, 0x60, 0xe7, 0xef, 0xb7, 0x34, 0xcc, 0x1c, 0x29, 0x9b, 0xd6, 0x17, 0x97, 0xd2, + 0xeb, 0x51, 0x62, 0x5c, 0xe6, 0xe5, 0x34, 0x2e, 0x43, 0xfa, 0x50, 0x59, 0x1b, 0x15, 0x59, 0x0a, + 0x7a, 0xe0, 0x5d, 0x65, 0x6e, 0x14, 0xa9, 0x71, 0x7c, 0xe6, 0xe0, 0x53, 0x80, 0x4f, 0xbe, 0xd7, + 0x0d, 0xb9, 0x08, 0x35, 0x9f, 0x77, 0x34, 0x12, 0xb4, 0x16, 0xfa, 0x4f, 0x85, 0x76, 0x44, 0x7b, + 0x17, 0x18, 0x95, 0x42, 0x79, 0x35, 0xe4, 0x32, 0x8f, 0x6d, 0x61, 0xc2, 0x04, 0xad, 0xc4, 0x5c, + 0xa3, 0xe1, 0x66, 0x97, 0x34, 0xfd, 0xbd, 0xef, 0xa6, 0xe8, 0x72, 0x87, 0xa0, 0xcb, 0x2b, 0x34, + 0x2d, 0x7e, 0x8a, 0x5e, 0x8b, 0x1f, 0xc1, 0x65, 0x75, 0x98, 0xf4, 0xee, 0xe1, 0x6f, 0x1b, 0x69, + 0xf8, 0xd4, 0x6b, 0xc0, 0x4b, 0xdd, 0xdd, 0xa4, 0xee, 0x8f, 0x84, 0x6e, 0x43, 0x84, 0xc1, 0x1f, + 0x21, 0x7e, 0xf0, 0x91, 0x62, 0x24, 0x9e, 0x14, 0x79, 0x76, 0x4a, 0xa7, 0x7c, 0x25, 0xe2, 0x67, + 0xae, 0xd9, 0xbc, 0xee, 0xe2, 0x48, 0x73, 0xae, 0xaa, 0x80, 0xe8, 0xcf, 0x02, 0x86, 0xe8, 0x31, + 0x6f, 0xb6, 0xd7, 0x54, 0x5a, 0xe5, 0x9d, 0x5d, 0x1a, 0x46, 0x4a, 0xd7, 0x28, 0x74, 0xd0, 0x85, + 0xcc, 0x42, 0x3a, 0x36, 0xc1, 0x27, 0x56, 0xb7, 0xe8, 0x27, 0x03, 0xf8, 0x0e, 0x8e, 0x5a, 0x18, + 0x7c, 0xf3, 0x23, 0x10, 0xfb, 0x7c, 0x0d, 0x7c, 0xe5, 0xf3, 0xd5, 0x50, 0x4f, 0x1a, 0xe3, 0x88, + 0xaf, 0xe5, 0x41, 0x92, 0x2b, 0x37, 0x8b, 0xdb, 0xb4, 0xba, 0xfe, 0x8c, 0xae, 0x78, 0xa8, 0x70, + 0xd6, 0xca, 0x9d, 0xc2, 0xbe, 0x5c, 0xed, 0x47, 0x86, 0x8b, 0x7a, 0x0b, 0x47, 0xb1, 0x36, 0x43, + 0x30, 0x9e, 0xc3, 0xf8, 0x46, 0x98, 0xd3, 0x07, 0x15, 0x2b, 0x86, 0x85, 0x13, 0x7e, 0x0e, 0x73, + 0x62, 0x58, 0xb6, 0x21, 0xec, 0x5b, 0x36, 0x3f, 0x6a, 0x88, 0x90, 0x75, 0x09, 0xfc, 0x8d, 0x92, + 0x74, 0x17, 0xfe, 0xd6, 0x95, 0xad, 0x01, 0xd3, 0xfc, 0x25, 0x86, 0x06, 0xc5, 0x1c, 0xc6, 0x14, + 0xf8, 0x04, 0xf5, 0x56, 0x8d, 0x04, 0xf6, 0x41, 0x7d, 0x1d, 0x90, 0x5d, 0x5e, 0x70, 0xe4, 0x7b, + 0xe1, 0x7e, 0xd2, 0x1e, 0x96, 0x84, 0x1e, 0xc8, 0xf3, 0xc2, 0x7d, 0x4a, 0x9f, 0x1d, 0x4e, 0x0d, + 0xda, 0x43, 0xbf, 0x7c, 0xf3, 0xd4, 0xb7, 0x4e, 0xad, 0x3b, 0xb5, 0xce, 0x1e, 0xaa, 0xfa, 0x75, + 0x96, 0xbf, 0xea, 0x37, 0x51, 0x70, 0x44, 0xbb, 0x21, 0xd7, 0xd6, 0x77, 0xcf, 0x91, 0xa7, 0xdd, + 0x86, 0x5f, 0x7f, 0xfb, 0x14, 0xbe, 0xcf, 0xf3, 0x3b, 0x5a, 0x1d, 0xae, 0x3e, 0xf5, 0xb4, 0x7d, + 0x5d, 0x69, 0xc1, 0x44, 0xed, 0x9d, 0xbe, 0xde, 0x1f, 0x62, 0x6d, 0x0b, 0xb9, 0x9f, 0xf2, 0x9d, + 0x4e, 0x0f, 0xb3, 0x5a, 0x06, 0xeb, 0xde, 0x33, 0x0a, 0xcd, 0x91, 0x07, 0x35, 0xad, 0xff, 0x50, + 0x61, 0x70, 0xd4, 0xcf, 0x98, 0xad, 0x05, 0xbe, 0x90, 0xd7, 0x4c, 0xd6, 0xa7, 0x69, 0xce, 0x3e, + 0xff, 0x67, 0x99, 0x9d, 0x26, 0x36, 0xd8, 0x05, 0xd2, 0x47, 0xc2, 0x0a, 0x90, 0xf4, 0x7e, 0xea, + 0x84, 0xc1, 0x05, 0xc9, 0xc2, 0xe1, 0xc1, 0xe6, 0xb0, 0xa7, 0x4d, 0x2a, 0x65, 0x89, 0xc6, 0x4e, + 0x9c, 0xb9, 0x6b, 0xa0, 0x90, 0xf4, 0xf1, 0x3f, 0x78, 0x58, 0xdc, 0xe1, 0xc6, 0x06, 0x56, 0xfc, + 0x34, 0xba, 0x3e, 0x52, 0xd5, 0x1d, 0x1f, 0x19, 0x6c, 0xa6, 0x1b, 0x43, 0x13, 0xc6, 0x8a, 0x63, + 0xac, 0x78, 0xea, 0x3b, 0x52, 0xdd, 0xa6, 0x70, 0x95, 0x22, 0xad, 0x35, 0xc8, 0x12, 0xd9, 0x84, + 0x26, 0x1d, 0xdb, 0xc9, 0x2f, 0xd4, 0x80, 0xbc, 0xc4, 0x8e, 0xf9, 0xde, 0x46, 0xbf, 0xb6, 0xbe, + 0xc6, 0x85, 0xa4, 0x89, 0x1b, 0xe1, 0x70, 0x01, 0x3e, 0x8c, 0xa9, 0x3c, 0xbf, 0x37, 0x03, 0x07, + 0x63, 0x7b, 0x61, 0x0b, 0xd9, 0x84, 0x22, 0x6d, 0x0f, 0xac, 0xdd, 0xec, 0x50, 0x46, 0x9b, 0x33, + 0x41, 0xa4, 0x66, 0x80, 0x0d, 0x19, 0x6d, 0xad, 0x2e, 0x48, 0xf4, 0xd3, 0xbe, 0x78, 0xdb, 0xfc, + 0x6d, 0xf8, 0x58, 0x39, 0xff, 0x9f, 0xeb, 0xe0, 0x6c, 0x1b, 0x6c, 0x29, 0x42, 0x1c, 0x5a, 0x7d, + 0x0b, 0xdf, 0x05, 0xea, 0xa9, 0x85, 0xfd, 0x60, 0x55, 0xdf, 0xa6, 0x14, 0xa4, 0x69, 0xd1, 0x8e, + 0xa9, 0x30, 0xbf, 0x77, 0x8a, 0x42, 0xea, 0xbb, 0x55, 0x1f, 0xaa, 0x69, 0x0d, 0xbe, 0xd3, 0xe5, + 0xba, 0x5b, 0x0f, 0x45, 0x31, 0x77, 0x1b, 0x47, 0xa8, 0x26, 0xdf, 0x9b, 0x51, 0x13, 0x80, 0xed, + 0x77, 0xac, 0x0b, 0xef, 0x3b, 0x5c, 0x97, 0xab, 0x9f, 0x5a, 0x97, 0xbb, 0xd3, 0x75, 0x31, 0x62, + 0x5d, 0xcc, 0x9f, 0xa1, 0x2e, 0x85, 0xb7, 0xee, 0x51, 0x3b, 0xee, 0x4b, 0xc1, 0xbb, 0x58, 0x55, + 0xa2, 0x92, 0x39, 0x22, 0xe8, 0x66, 0xd9, 0xdc, 0x1d, 0x3f, 0xb5, 0x17, 0x6b, 0x63, 0xa8, 0x3f, + 0x34, 0x65, 0xf3, 0xba, 0xd1, 0x65, 0x49, 0x63, 0x38, 0x74, 0x6e, 0x8c, 0x13, 0x3e, 0xda, 0xc6, + 0xf8, 0x8d, 0x25, 0x83, 0xdf, 0x24, 0x7b, 0xb0, 0xcf, 0x0b, 0x52, 0x16, 0xf7, 0xba, 0x3b, 0x53, + 0x39, 0x4c, 0xbe, 0xc5, 0x73, 0xac, 0x9a, 0xf4, 0xac, 0xea, 0x6d, 0xa2, 0xde, 0xa6, 0x36, 0xe9, + 0x1d, 0x03, 0xe1, 0x36, 0x71, 0xe5, 0x5f, 0xfc, 0x62, 0x3f, 0xe4, 0xa8, 0x1f, 0x85, 0x8b, 0xd5, + 0x8f, 0xc3, 0x1d, 0xea, 0x65, 0x7c, 0xae, 0x60, 0xe8, 0xd5, 0xa2, 0x30, 0xf6, 0xdd, 0xad, 0x3d, + 0x72, 0x97, 0xfa, 0x76, 0x32, 0x1f, 0xfb, 0xe1, 0xdd, 0xd0, 0x87, 0xea, 0x45, 0xc4, 0x83, 0xc6, + 0x6f, 0xea, 0x0b, 0x9d, 0x3d, 0x54, 0x96, 0xba, 0x0e, 0x88, 0x5b, 0x6a, 0x71, 0x0f, 0x8f, 0x34, + 0x43, 0x86, 0x63, 0xae, 0xdf, 0xef, 0x86, 0xab, 0x0f, 0x56, 0xe9, 0xe8, 0xcb, 0xb5, 0x3a, 0xbb, + 0x1a, 0x57, 0x85, 0x7e, 0x55, 0xd7, 0x6c, 0x57, 0xbd, 0x33, 0x65, 0x4d, 0x01, 0x0c, 0x4e, 0x96, + 0x23, 0xfb, 0x0e, 0x69, 0xd3, 0x66, 0x3e, 0x80, 0xb3, 0xd8, 0x42, 0x0a, 0xd9, 0x85, 0x21, 0x82, + 0x0b, 0xe1, 0x2c, 0xae, 0x96, 0x9f, 0x45, 0x9f, 0x8e, 0x54, 0xa7, 0x70, 0xe8, 0x12, 0xf0, 0x14, + 0x19, 0xa4, 0xfd, 0x1b, 0xe3, 0xe6, 0x43, 0x6b, 0x0c, 0x26, 0xec, 0x9f, 0x77, 0x62, 0x6b, 0x0c, + 0x66, 0xa1, 0x35, 0xfb, 0xe4, 0xc0, 0x82, 0xb0, 0x41, 0x7a, 0xa8, 0xda, 0x60, 0x0a, 0x63, 0x58, + 0xf8, 0x35, 0x88, 0x21, 0xdd, 0x9b, 0x8d, 0x74, 0x2f, 0xc0, 0x3e, 0xb2, 0x4d, 0xc9, 0x79, 0x7f, + 0x57, 0x9f, 0x77, 0xc2, 0xf6, 0x3f, 0x2f, 0x41, 0x79, 0xdc, 0x92, 0xcc, 0x7e, 0x20, 0x98, 0x45, + 0x7a, 0xba, 0x36, 0xc4, 0x06, 0xe3, 0x46, 0x87, 0x47, 0xba, 0x80, 0x7d, 0x4f, 0xbf, 0x13, 0x9a, + 0xc4, 0x7e, 0x18, 0xe9, 0x2a, 0xbf, 0x26, 0xaf, 0x4f, 0x1a, 0xf6, 0x8d, 0x08, 0x83, 0x89, 0xcf, + 0xcb, 0xe7, 0xe8, 0x90, 0x22, 0x0c, 0xd7, 0xa3, 0xba, 0x5b, 0x42, 0x8f, 0x4e, 0x7b, 0x83, 0x0f, + 0x77, 0x42, 0x2f, 0x94, 0x0b, 0xf9, 0x7e, 0xda, 0x15, 0x53, 0xf6, 0x76, 0x11, 0x12, 0x46, 0x8a, + 0xa2, 0x52, 0xf4, 0x0b, 0xad, 0x58, 0xc7, 0x86, 0x2f, 0x10, 0x76, 0xfc, 0x08, 0x53, 0x54, 0x35, + 0x1a, 0x1f, 0xf7, 0x62, 0x21, 0x25, 0xa9, 0xdd, 0xbb, 0x08, 0x9a, 0x58, 0x26, 0x3d, 0xe1, 0x4e, + 0xaf, 0x38, 0xef, 0x61, 0x4a, 0xd5, 0x05, 0x85, 0xcc, 0x11, 0x35, 0x97, 0x6c, 0x85, 0x27, 0x56, + 0xe0, 0x4c, 0x52, 0xa3, 0x6d, 0x86, 0x42, 0xa1, 0x3f, 0xba, 0xe2, 0xb4, 0x06, 0x51, 0x2a, 0xd9, + 0x3a, 0x40, 0x23, 0xee, 0x62, 0xad, 0xb2, 0x9b, 0x38, 0x4e, 0x31, 0x32, 0xc2, 0x7b, 0x3a, 0x09, + 0xc2, 0x79, 0x63, 0x9a, 0x17, 0x86, 0x7c, 0xc5, 0x34, 0xaf, 0x15, 0xe6, 0xe0, 0xee, 0x9a, 0xc5, + 0x3a, 0x33, 0x4a, 0x58, 0x77, 0x00, 0xf3, 0x28, 0x28, 0x73, 0x52, 0xd6, 0xfa, 0x98, 0xd3, 0x91, + 0xed, 0xa8, 0x7a, 0x8e, 0x13, 0xae, 0xa0, 0xec, 0x41, 0x18, 0x6a, 0xbd, 0x49, 0x2b, 0xb1, 0xe3, + 0x26, 0x5b, 0xdb, 0x19, 0x2d, 0xc4, 0xc1, 0xdb, 0x6b, 0x21, 0x9e, 0xa1, 0x55, 0x52, 0xd3, 0x41, + 0x8c, 0x78, 0x8a, 0x1b, 0x71, 0x11, 0x9c, 0xa7, 0x71, 0x27, 0x73, 0xb0, 0x37, 0xd5, 0x5e, 0x84, + 0x73, 0xb8, 0xbb, 0xf0, 0xb9, 0x16, 0x52, 0x5d, 0x6d, 0x86, 0x7a, 0xa1, 0x25, 0x5e, 0x6a, 0x23, + 0x39, 0x57, 0xc5, 0xc1, 0x5c, 0x0e, 0xa5, 0x77, 0x88, 0x35, 0x06, 0x6d, 0x60, 0x23, 0x6d, 0xfc, + 0x62, 0xf5, 0xdd, 0x97, 0xab, 0xc5, 0x61, 0xcb, 0x99, 0x42, 0x17, 0x64, 0x46, 0x7f, 0x70, 0x6c, + 0x8f, 0xa1, 0x9e, 0xf5, 0x07, 0xdf, 0x58, 0x18, 0x54, 0xa7, 0xb9, 0x05, 0x73, 0xb0, 0x05, 0xef, + 0x63, 0x0b, 0x56, 0xdc, 0x4e, 0x7f, 0xf0, 0x67, 0xd6, 0xfb, 0xdf, 0xee, 0x9a, 0xa1, 0xf7, 0x3f, + 0xbe, 0xf2, 0x66, 0x6b, 0x3b, 0x3a, 0xbd, 0xff, 0x06, 0x9d, 0xde, 0x7f, 0xc3, 0x2d, 0x7a, 0xff, + 0x0d, 0x33, 0xf5, 0xfe, 0x63, 0xbb, 0x6e, 0xb2, 0xc6, 0xc3, 0xb7, 0xb3, 0xff, 0x9a, 0xc6, 0xff, + 0xe8, 0x9d, 0x34, 0xfe, 0xf3, 0xfa, 0xae, 0x14, 0x67, 0x1b, 0x15, 0x41, 0x7f, 0xa8, 0xbc, 0x15, + 0xcc, 0x88, 0xdb, 0x58, 0x48, 0xf2, 0x22, 0x3a, 0x5a, 0xea, 0x22, 0xe9, 0xe7, 0xda, 0xab, 0x63, + 0xe0, 0xb0, 0x56, 0xfd, 0xe6, 0x65, 0x70, 0xce, 0xc6, 0x79, 0x3a, 0x87, 0x6c, 0xb3, 0xf1, 0xb9, + 0x86, 0x17, 0x61, 0x21, 0xe8, 0x38, 0xaf, 0xce, 0x6a, 0x76, 0x4c, 0x2a, 0x48, 0x27, 0x3d, 0xad, + 0xfe, 0xa4, 0x4b, 0x2f, 0x27, 0x33, 0xb5, 0xdc, 0xc1, 0x3a, 0xd6, 0x0d, 0x40, 0x9c, 0x24, 0x5e, + 0x5a, 0xa3, 0xa6, 0xda, 0x1b, 0xea, 0xc1, 0xfa, 0x1d, 0x38, 0xa3, 0x73, 0xd2, 0x61, 0xd9, 0xf5, + 0x3b, 0x3e, 0x1f, 0x04, 0x67, 0xda, 0x6f, 0xe4, 0xef, 0xb9, 0x6c, 0xad, 0x7a, 0xbd, 0x16, 0x26, + 0x71, 0xd8, 0x9c, 0x74, 0x9c, 0x2c, 0xf6, 0xcf, 0x4d, 0xfb, 0xcd, 0xec, 0xcf, 0x9f, 0x91, 0x66, + 0x16, 0xe7, 0x3b, 0x3b, 0xbc, 0x17, 0xec, 0xe9, 0x78, 0x86, 0xfa, 0x1d, 0x1a, 0x0e, 0x56, 0x29, + 0xd6, 0x11, 0x59, 0x26, 0x68, 0x1c, 0x98, 0x59, 0x6b, 0xcc, 0xc9, 0xce, 0x3c, 0x20, 0x90, 0xd6, + 0x33, 0x68, 0xd3, 0x5b, 0x19, 0x7a, 0xe1, 0x84, 0xe2, 0xa9, 0xfd, 0x00, 0xae, 0xcd, 0xb0, 0x26, + 0xf9, 0x81, 0xc1, 0x91, 0x89, 0x33, 0x7d, 0x45, 0x8f, 0x2d, 0xa5, 0xac, 0xf0, 0xb0, 0xbd, 0x15, + 0x8b, 0x37, 0xc7, 0x1f, 0xc4, 0xf7, 0x6c, 0x71, 0x12, 0x7d, 0x9c, 0x2d, 0xf4, 0x0a, 0x8e, 0x20, + 0xfa, 0x2e, 0x6c, 0x68, 0xa4, 0x6c, 0x48, 0x63, 0x9f, 0xeb, 0x6d, 0x0b, 0x1c, 0x13, 0xfd, 0x1d, + 0x28, 0x65, 0x5e, 0x26, 0xa1, 0x45, 0x19, 0xa1, 0x9a, 0x1c, 0x51, 0x22, 0x72, 0xf0, 0x33, 0xdb, + 0x18, 0xc8, 0xd3, 0x6c, 0x0c, 0x44, 0x62, 0xdb, 0x13, 0x41, 0xcd, 0xc6, 0x40, 0x39, 0xce, 0x3d, + 0x31, 0x97, 0x4a, 0xe4, 0x56, 0xa9, 0x0c, 0x67, 0x43, 0x3e, 0xdb, 0xf2, 0xce, 0x8f, 0xcf, 0x4d, + 0x5b, 0xe7, 0xce, 0x43, 0xcc, 0x0d, 0x61, 0x12, 0x69, 0x3f, 0x4b, 0xb7, 0xf3, 0x70, 0x8a, 0x03, + 0xcb, 0x4b, 0x3a, 0xf4, 0x41, 0x6f, 0x7f, 0x16, 0x67, 0x69, 0x40, 0xb4, 0x69, 0x86, 0x4e, 0xff, + 0x63, 0xa2, 0x5d, 0x49, 0xfb, 0xd8, 0x56, 0xd1, 0xe6, 0xa4, 0x67, 0x6c, 0x0f, 0xc2, 0x24, 0xd1, + 0xd6, 0xfe, 0xb4, 0xb5, 0x1e, 0x8b, 0x36, 0x6f, 0xb5, 0x7e, 0x99, 0xf1, 0xcd, 0x38, 0xf3, 0x5b, + 0x37, 0x69, 0xf0, 0x2e, 0x10, 0x9c, 0x12, 0x6c, 0xab, 0xdb, 0x9c, 0xb6, 0x52, 0x95, 0xa7, 0x30, + 0xa6, 0xb4, 0x63, 0x35, 0xbf, 0xd7, 0xa6, 0x28, 0x13, 0xad, 0x1f, 0x65, 0xed, 0x3e, 0x7b, 0x2b, + 0xb6, 0xb1, 0xc4, 0x1a, 0x26, 0xbe, 0x55, 0xff, 0x03, 0x60, 0x65, 0x5a, 0xd6, 0x58, 0xf6, 0x00, + 0xe4, 0x94, 0xa3, 0xaf, 0x0f, 0x2a, 0x24, 0x7f, 0xe4, 0xc7, 0x3f, 0x6b, 0x97, 0xfc, 0xc6, 0xd2, + 0xd5, 0x90, 0xd3, 0x0b, 0xe5, 0x59, 0xfe, 0xda, 0x1f, 0x1f, 0x6d, 0x97, 0xca, 0x66, 0x93, 0x4d, + 0xdc, 0x61, 0x5c, 0x41, 0x9d, 0x66, 0xec, 0x2b, 0x6d, 0xa5, 0xc5, 0x42, 0x89, 0x9c, 0x11, 0x5c, + 0x51, 0x9d, 0xa6, 0x2f, 0x85, 0x90, 0x5a, 0xa1, 0x90, 0x70, 0x22, 0x8f, 0xa4, 0x61, 0x10, 0x77, + 0x95, 0x46, 0xbe, 0xd5, 0x61, 0xfa, 0x52, 0x18, 0xeb, 0x45, 0xe1, 0x55, 0x1c, 0x4e, 0x1a, 0xf9, + 0xb2, 0x38, 0xbc, 0x0a, 0x61, 0x35, 0xd3, 0x1d, 0x84, 0xbd, 0xf2, 0x3d, 0x7c, 0x17, 0xb8, 0x34, + 0xd8, 0xe3, 0x20, 0xd8, 0xe3, 0x46, 0x98, 0x41, 0xfa, 0xdb, 0x6f, 0x0b, 0x83, 0xfa, 0x88, 0xaf, + 0x01, 0xee, 0x8b, 0x2b, 0x37, 0x6b, 0x6b, 0xbf, 0x59, 0x1b, 0xbb, 0x66, 0xef, 0xeb, 0x44, 0x4a, + 0x1b, 0x3b, 0x42, 0xd3, 0xa5, 0x22, 0x04, 0xb1, 0xd0, 0x9b, 0xe2, 0xdc, 0x41, 0x53, 0xbb, 0xcb, + 0x1b, 0x03, 0x07, 0xdd, 0xa7, 0xa7, 0x35, 0xb5, 0xcf, 0x84, 0x48, 0x85, 0xb7, 0x40, 0xa4, 0xd2, + 0x19, 0xf0, 0x35, 0x0d, 0x8b, 0xfe, 0xc0, 0x36, 0x02, 0x0c, 0xde, 0xa9, 0x95, 0xb7, 0xd4, 0x7d, + 0x2c, 0xdd, 0xae, 0x31, 0xd1, 0x03, 0xe9, 0x3b, 0x66, 0xb3, 0x16, 0xfe, 0xa9, 0xfa, 0xe8, 0x89, + 0xe7, 0xc4, 0x50, 0xf0, 0x6f, 0x6a, 0xab, 0xfb, 0xf6, 0x6d, 0x95, 0x03, 0x48, 0xff, 0x16, 0xd2, + 0x7e, 0xc8, 0xfb, 0x88, 0x74, 0xdb, 0xf6, 0xbd, 0x4d, 0x7c, 0xb1, 0xb8, 0x43, 0xbe, 0xcf, 0x27, + 0x11, 0xc6, 0xb2, 0x25, 0x8a, 0xb9, 0x2c, 0xf8, 0x60, 0x1b, 0x6c, 0x82, 0xf7, 0xcb, 0xdb, 0xc0, + 0x84, 0x5f, 0x26, 0xc4, 0x97, 0xf2, 0x3a, 0xc5, 0x5c, 0x4e, 0x5f, 0x36, 0xc3, 0x04, 0xdd, 0x3e, + 0x95, 0xba, 0xe1, 0x22, 0x6b, 0x25, 0x33, 0xfa, 0x82, 0x8a, 0xc3, 0x17, 0x62, 0x3e, 0x9a, 0x2f, + 0x26, 0xf2, 0x4b, 0x71, 0x7f, 0xfc, 0xd1, 0xf1, 0x27, 0x24, 0xb9, 0x56, 0x68, 0x51, 0x1e, 0xd9, + 0xd4, 0x2c, 0xc9, 0x74, 0x53, 0x75, 0x91, 0x6e, 0xaa, 0x30, 0xe4, 0x92, 0x48, 0x55, 0x8a, 0xa9, + 0x4a, 0xd3, 0xa9, 0x2a, 0xda, 0x20, 0xf7, 0x7f, 0xfe, 0xfc, 0x09, 0xc9, 0xbe, 0x94, 0x53, 0xe5, + 0x8f, 0x7c, 0xab, 0x59, 0xb2, 0x53, 0xaa, 0x4b, 0x5a, 0xbd, 0x11, 0x7e, 0x79, 0xd3, 0x77, 0x4f, + 0xc2, 0x8e, 0x41, 0xe8, 0xa2, 0xa6, 0xb9, 0xb8, 0x20, 0x61, 0x96, 0x86, 0x3e, 0x56, 0x49, 0xff, + 0x23, 0x0c, 0xd9, 0x30, 0xc3, 0xba, 0xf7, 0x02, 0xc6, 0x4f, 0xef, 0xb3, 0xe9, 0xf1, 0xdb, 0xf7, + 0x99, 0x4f, 0x22, 0x0d, 0xd6, 0x32, 0x71, 0x1f, 0x7a, 0xb1, 0xdf, 0xb0, 0xff, 0x10, 0x47, 0x92, + 0x71, 0xff, 0x71, 0x90, 0x95, 0x43, 0x61, 0x31, 0x48, 0xe3, 0x08, 0xf6, 0xa6, 0xf6, 0xa5, 0xe9, + 0x97, 0x34, 0x1e, 0x29, 0x3b, 0xe1, 0x54, 0xf8, 0x2d, 0x0f, 0xbf, 0x15, 0x60, 0xfa, 0x42, 0xb2, + 0x80, 0x46, 0xf7, 0xc7, 0x18, 0xcf, 0x95, 0xb1, 0x2d, 0x99, 0xe2, 0x1e, 0x74, 0x21, 0xde, 0x87, + 0xb3, 0xb1, 0xdc, 0xdd, 0x05, 0x01, 0x2c, 0x25, 0x28, 0x57, 0x91, 0x64, 0x40, 0x6c, 0x1f, 0xe1, + 0x99, 0x06, 0x8b, 0x3d, 0x26, 0x77, 0xa4, 0x6c, 0xd5, 0x32, 0x87, 0x8f, 0x95, 0xa4, 0x7b, 0x7c, + 0x40, 0x9a, 0x09, 0x6c, 0x90, 0x70, 0xd3, 0xaf, 0x2c, 0x78, 0x65, 0xc8, 0x9e, 0xc0, 0x3b, 0x48, + 0xb9, 0xb7, 0xc3, 0x1c, 0xdf, 0xe7, 0x70, 0x57, 0x2d, 0x02, 0x49, 0xe3, 0xd5, 0x75, 0x91, 0x5d, + 0x46, 0x17, 0x86, 0xf3, 0x29, 0x18, 0xee, 0x3e, 0xee, 0x20, 0xee, 0x57, 0xa0, 0x59, 0xb5, 0x1d, + 0xff, 0x66, 0xd2, 0x4d, 0x37, 0xd9, 0x7e, 0x84, 0x31, 0x48, 0xe3, 0xa5, 0xac, 0x10, 0x4e, 0xef, + 0x25, 0x8b, 0x12, 0x7c, 0x5a, 0x41, 0xd2, 0x6a, 0x46, 0x9f, 0xa1, 0xff, 0x9e, 0x4b, 0xad, 0x63, + 0xa1, 0xf1, 0xe0, 0xd8, 0x32, 0x77, 0x76, 0x9b, 0xd4, 0xf8, 0xf4, 0xf8, 0xd3, 0x43, 0xd5, 0x1a, + 0x7f, 0xb0, 0x44, 0xfc, 0xc1, 0x81, 0x22, 0x30, 0x55, 0x98, 0x9e, 0xba, 0xe7, 0xa3, 0x8e, 0x77, + 0x6a, 0xc6, 0xab, 0x4f, 0x55, 0x8f, 0x6f, 0xd9, 0x1e, 0xd1, 0x38, 0x86, 0xd9, 0xe6, 0x27, 0x8d, + 0x96, 0xb7, 0x0a, 0x02, 0xde, 0xa5, 0x50, 0xee, 0xad, 0x03, 0x3f, 0xce, 0x70, 0x1f, 0xf3, 0x32, + 0xfe, 0x1e, 0xeb, 0x70, 0x14, 0xa1, 0xf9, 0xdd, 0xe1, 0xbf, 0xa0, 0x13, 0x01, 0xaf, 0xb9, 0x6c, + 0x19, 0x8e, 0xb1, 0x07, 0xeb, 0x4b, 0x5c, 0xbe, 0xdf, 0x17, 0x9c, 0x88, 0xc4, 0xf3, 0x28, 0xa4, + 0x5a, 0x2a, 0x2b, 0x9c, 0xd8, 0x27, 0xae, 0x0e, 0xb0, 0x3a, 0x8a, 0x09, 0xf3, 0x83, 0x3c, 0x5c, + 0xb9, 0x2b, 0x71, 0x44, 0xaf, 0x63, 0x2a, 0x49, 0x70, 0x61, 0xfc, 0xd9, 0x3b, 0x64, 0xb5, 0x97, + 0x5c, 0xeb, 0xdf, 0x71, 0x03, 0xee, 0x7c, 0xfc, 0x65, 0xe9, 0x87, 0xea, 0x1b, 0x7c, 0x2a, 0x32, + 0xbe, 0x21, 0x2a, 0xd7, 0x0b, 0xdb, 0xc0, 0xbc, 0x33, 0x7b, 0xb0, 0xaf, 0xf7, 0xe0, 0x4a, 0x2d, + 0xe1, 0xb0, 0x7a, 0x17, 0x30, 0xd6, 0x4a, 0x27, 0xe9, 0x73, 0xfa, 0x01, 0xdb, 0xc5, 0x5c, 0xe0, + 0xc9, 0xac, 0xd1, 0x8d, 0xdd, 0x12, 0x42, 0xfd, 0x1c, 0xfb, 0x1a, 0x9c, 0x9b, 0x82, 0x37, 0xd3, + 0xd4, 0x61, 0x41, 0x5f, 0x2e, 0xfb, 0x7c, 0xa5, 0xc5, 0xea, 0x0d, 0xd6, 0x2a, 0x7a, 0x3d, 0x3a, + 0x1a, 0x39, 0x86, 0xbb, 0x03, 0x71, 0x56, 0x66, 0x6b, 0x9c, 0xc7, 0x98, 0xdb, 0xd4, 0x38, 0xdb, + 0x30, 0x34, 0x23, 0x1d, 0x14, 0x13, 0x1c, 0xf4, 0x5e, 0x63, 0xaa, 0xde, 0xf8, 0xf5, 0x23, 0x3e, + 0x2f, 0xeb, 0x50, 0x27, 0xbb, 0xc0, 0x60, 0xc2, 0xdf, 0xe9, 0x2e, 0x80, 0x69, 0xd2, 0x1f, 0x06, + 0xd6, 0x6e, 0xd2, 0x42, 0x6e, 0xe9, 0x33, 0x1c, 0x5a, 0x87, 0xa3, 0xbc, 0x57, 0x09, 0xc4, 0xa0, + 0x1d, 0x29, 0x5a, 0xc6, 0xa3, 0x25, 0x4e, 0xdb, 0x5d, 0xda, 0xa1, 0xde, 0xf0, 0x51, 0x5e, 0x59, + 0x01, 0x4c, 0x19, 0xfd, 0x93, 0x09, 0x15, 0x7f, 0x27, 0xa3, 0xc9, 0x09, 0x95, 0x57, 0x0d, 0xc5, + 0x71, 0x11, 0x1f, 0x92, 0xd2, 0x86, 0x69, 0xe3, 0xba, 0x94, 0xe5, 0xb7, 0xa4, 0xcc, 0xd2, 0x52, + 0x66, 0x45, 0x57, 0xe3, 0x6f, 0x2b, 0xae, 0x19, 0xc9, 0x1d, 0x80, 0xf1, 0x65, 0x3b, 0xe4, 0xea, + 0xfa, 0xa1, 0x54, 0x6c, 0x81, 0xf5, 0xdc, 0xbe, 0x2c, 0x7b, 0x75, 0xfd, 0x73, 0xac, 0x51, 0x9c, + 0x74, 0xb8, 0x59, 0x13, 0xe5, 0x18, 0xff, 0x06, 0xf6, 0xcd, 0x75, 0xaf, 0xc5, 0x67, 0x1e, 0xc3, + 0x14, 0xcb, 0x82, 0xa5, 0x41, 0xef, 0x6c, 0x9f, 0x01, 0xdd, 0x93, 0x9a, 0x3b, 0xea, 0x35, 0xf3, + 0xd9, 0x88, 0x91, 0x77, 0xf3, 0xf1, 0xf5, 0xa4, 0xaf, 0xad, 0x90, 0x46, 0xc4, 0x1e, 0xd1, 0x6c, + 0x2b, 0x87, 0x85, 0x4d, 0x66, 0xb6, 0xd0, 0xbd, 0x4b, 0xbb, 0x09, 0xbe, 0xe3, 0x6c, 0x48, 0xf5, + 0xda, 0xe8, 0xba, 0x11, 0xc2, 0x05, 0x77, 0xff, 0xbb, 0x67, 0xc7, 0xa3, 0xb7, 0x9b, 0x1d, 0x9f, + 0x4c, 0xde, 0x66, 0x76, 0xac, 0xfc, 0xb7, 0xce, 0x8e, 0x4f, 0x8e, 0x7e, 0xda, 0xec, 0xf8, 0x64, + 0x2c, 0x33, 0x3b, 0xe0, 0xa0, 0x36, 0x3b, 0x86, 0x33, 0xed, 0x4c, 0x58, 0x89, 0xcb, 0x8f, 0xad, + 0x8a, 0xbc, 0xa8, 0x94, 0x65, 0xc6, 0xf7, 0x93, 0xa6, 0xcc, 0xf8, 0x96, 0xf1, 0x68, 0x1d, 0x54, + 0xcb, 0x78, 0xb4, 0x0e, 0xa6, 0x67, 0xc6, 0x27, 0x39, 0x3c, 0x33, 0x14, 0x5d, 0x2a, 0xfb, 0x2d, + 0xa9, 0xb2, 0xb4, 0x54, 0xba, 0x59, 0xb1, 0xf8, 0xc6, 0x8d, 0xd3, 0xf5, 0xcf, 0x7f, 0x96, 0x19, + 0xc1, 0x27, 0xd5, 0x05, 0x9f, 0x3e, 0x9e, 0x82, 0xae, 0xaf, 0xac, 0x74, 0xe9, 0xa0, 0xa1, 0xdb, + 0x0b, 0x75, 0x7e, 0x2f, 0xd4, 0x94, 0xff, 0xff, 0xb8, 0xfb, 0xfb, 0xe8, 0xb6, 0xca, 0x2b, 0x51, + 0x18, 0xdf, 0xe7, 0x58, 0x56, 0x14, 0x45, 0x11, 0xc2, 0x35, 0xae, 0x6b, 0xdc, 0x70, 0xd0, 0x08, + 0xa1, 0xc8, 0x8a, 0x25, 0x54, 0x61, 0x8c, 0x51, 0x1d, 0x49, 0x96, 0x6c, 0x45, 0x76, 0x74, 0x5d, + 0xdb, 0xa4, 0x7e, 0x59, 0x19, 0xe6, 0xdc, 0x34, 0x48, 0x8e, 0x3f, 0x35, 0xbe, 0xb9, 0x59, 0x59, + 0x59, 0xbe, 0xd4, 0xf9, 0x20, 0x04, 0x9a, 0x21, 0x26, 0x84, 0x94, 0x61, 0x18, 0x7e, 0xfc, 0xba, + 0x58, 0xbd, 0x4c, 0xa0, 0xd4, 0x4d, 0x53, 0x9a, 0x7a, 0xb8, 0x19, 0x27, 0x84, 0x34, 0x50, 0xca, + 0x6b, 0x42, 0x48, 0xd3, 0x4c, 0x06, 0x32, 0x19, 0x5e, 0x26, 0xe4, 0x03, 0xd2, 0x34, 0x84, 0x60, + 0x12, 0x9f, 0xdf, 0xde, 0xfb, 0x39, 0xfa, 0x70, 0x12, 0x28, 0x9d, 0x3b, 0xf7, 0xfd, 0xe3, 0xb7, + 0xbc, 0xac, 0x73, 0xce, 0x73, 0x9e, 0xf3, 0x7c, 0xee, 0x67, 0x7f, 0x3c, 0xcf, 0xfe, 0xf0, 0x42, + 0x22, 0x4e, 0x16, 0x0f, 0xa7, 0xaf, 0xd2, 0x73, 0xf4, 0xe4, 0xf1, 0x62, 0x68, 0x65, 0x7a, 0x4e, + 0xc6, 0xe8, 0x0d, 0x81, 0x2b, 0xf2, 0x53, 0x94, 0xa8, 0xa3, 0xe0, 0x53, 0x5a, 0xec, 0x0b, 0x1d, + 0x0d, 0x4d, 0x1f, 0x83, 0x4b, 0x44, 0xc0, 0xd4, 0x23, 0x58, 0xff, 0x28, 0x41, 0xf6, 0x43, 0x4f, + 0xf9, 0x7a, 0xc1, 0xe0, 0xf7, 0x80, 0x31, 0xd0, 0x8b, 0x94, 0xac, 0x17, 0xcc, 0xa2, 0x24, 0x96, + 0x0f, 0x8d, 0x13, 0x67, 0xc0, 0xd4, 0x1e, 0x8f, 0x8e, 0x77, 0x1b, 0x0f, 0xf4, 0x81, 0xb9, 0x3d, + 0xcc, 0x96, 0xcd, 0x86, 0x83, 0x98, 0xca, 0xbe, 0x8a, 0x0d, 0x07, 0xce, 0xa0, 0xfc, 0x12, 0xaf, + 0x41, 0xd8, 0xab, 0x24, 0x4d, 0xbb, 0xf5, 0x5b, 0xf7, 0xfd, 0x72, 0xff, 0x80, 0x3f, 0x18, 0xc6, + 0x14, 0x73, 0x09, 0xe9, 0xd9, 0xad, 0xde, 0xba, 0xfb, 0x97, 0x6f, 0x0e, 0x28, 0xb1, 0xb3, 0xcf, + 0x68, 0x25, 0xa4, 0xb1, 0xb7, 0xda, 0x17, 0xfe, 0xd9, 0xeb, 0xbd, 0xb6, 0x86, 0x0b, 0x23, 0xf4, + 0x7c, 0x07, 0x3f, 0xbf, 0xd6, 0x67, 0xd3, 0xdb, 0x6d, 0x82, 0x5e, 0xbc, 0xb1, 0xaa, 0x46, 0xb9, + 0xf7, 0xfb, 0x1a, 0x58, 0x5d, 0x1d, 0xed, 0x11, 0xd6, 0x7c, 0x31, 0x92, 0x87, 0x3e, 0x8d, 0xac, + 0x19, 0x86, 0x84, 0xd4, 0x2e, 0x76, 0x80, 0xc1, 0xcf, 0x56, 0x55, 0x16, 0x6f, 0x88, 0xf5, 0x35, + 0x14, 0x3b, 0xf1, 0x31, 0x48, 0x5f, 0x9a, 0x3e, 0x66, 0x7a, 0xe4, 0xa1, 0xbe, 0x22, 0x2f, 0x0c, + 0xb9, 0x98, 0x12, 0x85, 0xb1, 0x17, 0x0e, 0x5c, 0x15, 0x8d, 0xe1, 0x8d, 0x9c, 0x75, 0x1a, 0xd2, + 0x56, 0x2c, 0x87, 0xec, 0xa6, 0xca, 0xaf, 0x11, 0xcb, 0xc2, 0x06, 0x0e, 0x3e, 0x43, 0x9e, 0x81, + 0x9c, 0x44, 0x33, 0xdb, 0xa6, 0x05, 0x11, 0xa7, 0x93, 0xcf, 0x2c, 0x85, 0xd7, 0x00, 0x49, 0xd9, + 0x14, 0x26, 0x6b, 0x76, 0x9f, 0x1c, 0x1d, 0x26, 0xcb, 0xb4, 0x82, 0x5d, 0x0c, 0x53, 0x3e, 0xde, + 0xbc, 0x53, 0xb7, 0x51, 0xa3, 0x7e, 0x28, 0x7a, 0xac, 0x08, 0xd2, 0x3c, 0x41, 0x8e, 0xd8, 0xe1, + 0x59, 0x06, 0x9d, 0xe2, 0x44, 0x49, 0xa1, 0x68, 0x10, 0xf8, 0xad, 0xbd, 0x39, 0xf7, 0x25, 0x49, + 0x76, 0x64, 0xbd, 0x5e, 0x44, 0x7e, 0xdc, 0x79, 0x57, 0x88, 0x62, 0x8d, 0x57, 0x20, 0x15, 0x2a, + 0x11, 0xde, 0x04, 0x6f, 0xef, 0x42, 0x4e, 0xc0, 0x84, 0xbf, 0x46, 0x30, 0xe7, 0x22, 0x9d, 0x40, + 0x76, 0xd4, 0x7c, 0xe4, 0x9f, 0x8d, 0x62, 0x29, 0x91, 0xfe, 0x6c, 0x2d, 0xe2, 0x0b, 0x07, 0x42, + 0x61, 0x17, 0x74, 0xf2, 0xbe, 0x6b, 0x39, 0x52, 0xda, 0x72, 0x11, 0x33, 0xd1, 0xde, 0x92, 0xad, + 0xd1, 0x09, 0x1c, 0xf7, 0x4a, 0xd4, 0xd8, 0x9b, 0xab, 0xb1, 0x0c, 0x6b, 0x17, 0x35, 0x5a, 0xee, + 0xe0, 0x1a, 0xef, 0xe0, 0x1a, 0x13, 0x6b, 0xd3, 0xaa, 0x65, 0x0b, 0x45, 0x5a, 0x4f, 0x19, 0xff, + 0xf1, 0x94, 0x76, 0x29, 0xd5, 0x46, 0x91, 0xce, 0x19, 0xe6, 0xe2, 0x88, 0x61, 0x66, 0x23, 0x3d, + 0x59, 0xe9, 0x12, 0x11, 0x61, 0x6a, 0x79, 0xfe, 0x2a, 0x91, 0x16, 0x2a, 0x48, 0x0b, 0x1d, 0x04, + 0xb3, 0xdc, 0x8a, 0xb2, 0x69, 0x91, 0x1b, 0x73, 0x91, 0xd8, 0x19, 0x73, 0x8d, 0x4d, 0xb5, 0xb4, + 0x6e, 0x22, 0xdd, 0xb4, 0x6c, 0xd4, 0x72, 0xc4, 0x80, 0xe7, 0x69, 0xaf, 0x99, 0x78, 0x04, 0xc4, + 0x82, 0x16, 0x37, 0x62, 0x40, 0xec, 0x8f, 0x83, 0x74, 0xfc, 0xf4, 0x88, 0xf2, 0x83, 0xd9, 0x51, + 0xc4, 0x5e, 0xc5, 0x0a, 0xbd, 0x80, 0x4a, 0x9d, 0xe4, 0x77, 0x42, 0xd7, 0xcb, 0x00, 0x29, 0x81, + 0x63, 0x4f, 0xb1, 0x0a, 0x0d, 0xf6, 0x98, 0x6b, 0x19, 0x98, 0xf4, 0x38, 0xf4, 0x01, 0x3a, 0x5d, + 0xc6, 0xf5, 0xcb, 0x36, 0xb0, 0x2b, 0xcf, 0xd3, 0x1c, 0xb3, 0x27, 0xdb, 0x8b, 0x48, 0xa1, 0xca, + 0xf9, 0x6e, 0x12, 0xef, 0xac, 0x02, 0x0b, 0x45, 0xc7, 0xd3, 0xd5, 0x05, 0xb8, 0x0f, 0xfa, 0x2c, + 0x39, 0xdc, 0x07, 0xb0, 0x5e, 0x69, 0x41, 0xcc, 0x77, 0x1e, 0xf9, 0x92, 0x79, 0xda, 0x85, 0xf8, + 0x6e, 0xc2, 0x6f, 0x6a, 0x86, 0x63, 0x3f, 0xb3, 0xf4, 0x39, 0x7c, 0x36, 0x5d, 0x26, 0xda, 0x43, + 0x51, 0xdb, 0xed, 0x2e, 0x28, 0x97, 0x57, 0xf3, 0x9e, 0x92, 0xe1, 0xd1, 0xfd, 0xaa, 0xc1, 0x37, + 0x04, 0xc5, 0xb9, 0x92, 0xc9, 0x4f, 0x9e, 0xd1, 0x61, 0x6a, 0x5b, 0x83, 0xd2, 0x45, 0xb6, 0x7c, + 0x67, 0x02, 0xfe, 0x72, 0x9c, 0x34, 0x5b, 0x1d, 0x26, 0x25, 0x86, 0x7c, 0xae, 0x61, 0x7a, 0x6d, + 0x8e, 0x6e, 0x98, 0x43, 0x9c, 0x97, 0x4e, 0x8f, 0x16, 0xdf, 0x35, 0xb4, 0x61, 0x83, 0x76, 0xe9, + 0xae, 0x21, 0xbb, 0x5d, 0x9b, 0xb2, 0xb7, 0x64, 0x80, 0x63, 0xb0, 0x3c, 0x6d, 0x6f, 0xe0, 0xd3, + 0x2c, 0x93, 0xbd, 0x85, 0x9f, 0xb7, 0x85, 0xcf, 0x68, 0x97, 0xe6, 0xc6, 0xc1, 0xf4, 0x0d, 0xd2, + 0xe5, 0xfc, 0xa6, 0x28, 0x49, 0x94, 0x8a, 0x98, 0xf0, 0x22, 0xd1, 0x34, 0x7b, 0x4b, 0xd3, 0x1f, + 0x4d, 0x9a, 0x63, 0x96, 0x1e, 0x03, 0x9b, 0xbe, 0x7a, 0x93, 0xac, 0x6f, 0x16, 0x07, 0xb5, 0x83, + 0xf9, 0xc8, 0xa4, 0xb4, 0x87, 0x43, 0x56, 0x2c, 0x8e, 0x65, 0x50, 0xc2, 0x90, 0x1d, 0xd0, 0x63, + 0xfc, 0x7a, 0x74, 0xfb, 0x35, 0xc3, 0x7c, 0x94, 0xd3, 0xc0, 0x84, 0xbf, 0x66, 0x84, 0xb2, 0xee, + 0xab, 0x35, 0x59, 0x28, 0x66, 0x52, 0xc6, 0x50, 0xa8, 0xcf, 0xa2, 0xc7, 0xa5, 0x21, 0x58, 0xf6, + 0x50, 0xbc, 0x2d, 0x97, 0x0b, 0x61, 0x19, 0x61, 0x9b, 0x3c, 0xcc, 0xa4, 0x97, 0x33, 0x15, 0x1d, + 0xbb, 0x64, 0x71, 0x42, 0xeb, 0xa6, 0x74, 0xca, 0xdc, 0x03, 0xc3, 0x74, 0xba, 0x84, 0x30, 0xc6, + 0x71, 0x76, 0x29, 0x92, 0xa3, 0x97, 0x34, 0x2b, 0x0b, 0x21, 0x2d, 0x17, 0x6f, 0x17, 0xbf, 0x2d, + 0x42, 0xfc, 0x7f, 0xbc, 0x75, 0x13, 0x8f, 0x96, 0x35, 0x55, 0xca, 0x9c, 0xb7, 0x4c, 0x16, 0x22, + 0x9f, 0xbf, 0x2b, 0x56, 0xb9, 0x5a, 0x4a, 0xf4, 0x8f, 0x53, 0xde, 0xe0, 0x14, 0x5c, 0x6b, 0x19, + 0xb9, 0xe5, 0x3d, 0x8b, 0x1e, 0xc3, 0x06, 0x5b, 0xf7, 0x3e, 0xb6, 0xae, 0x16, 0x5b, 0x17, 0xc4, + 0x95, 0x46, 0x1a, 0xb1, 0xb5, 0x4e, 0x17, 0x47, 0x91, 0x26, 0x3f, 0x3e, 0x4f, 0xe2, 0x4a, 0x32, + 0xd9, 0xb0, 0xa5, 0x16, 0xec, 0x7e, 0xda, 0x62, 0x21, 0xef, 0x87, 0x20, 0x91, 0x66, 0x63, 0x3f, + 0x79, 0xdc, 0xb0, 0x84, 0xe0, 0x44, 0xda, 0x8c, 0xbf, 0x1a, 0xa6, 0xb6, 0xa9, 0x83, 0x04, 0x5b, + 0x38, 0xe7, 0x8b, 0xe4, 0x90, 0xf6, 0xfd, 0x3b, 0x08, 0xe7, 0x15, 0x31, 0x85, 0xaa, 0x76, 0x51, + 0xef, 0x02, 0xdc, 0x2f, 0x8e, 0x4f, 0x8a, 0xf8, 0x5e, 0x19, 0x94, 0xbd, 0x61, 0x1c, 0x89, 0x6b, + 0x46, 0x3f, 0xa5, 0x33, 0x7e, 0xfc, 0xce, 0x84, 0x6b, 0xa8, 0x17, 0xdb, 0x1c, 0x52, 0x86, 0x57, + 0x60, 0xbb, 0x57, 0xc8, 0xb9, 0xbe, 0x80, 0xf0, 0xf5, 0x2f, 0x01, 0x52, 0x0f, 0x17, 0x96, 0xe8, + 0x99, 0xdf, 0x8b, 0x18, 0xcf, 0x87, 0xbf, 0x25, 0xe0, 0x7f, 0x49, 0x44, 0xb9, 0x2e, 0x2c, 0xd9, + 0x95, 0x2d, 0x79, 0xd0, 0x40, 0xd1, 0xe1, 0x44, 0x3b, 0xfb, 0x00, 0x76, 0x21, 0x3e, 0x1c, 0xce, + 0xb7, 0x74, 0x72, 0x9d, 0x2b, 0x1b, 0x05, 0xea, 0xd9, 0x82, 0xd6, 0xb6, 0x7c, 0x79, 0x6b, 0xd5, + 0x84, 0xde, 0xef, 0xfe, 0xe9, 0xfd, 0x9e, 0xac, 0xd1, 0x4b, 0x5b, 0xf4, 0xd5, 0xcb, 0xc2, 0x2f, + 0x11, 0x7b, 0x4c, 0x5a, 0x5b, 0x37, 0xa9, 0xa4, 0xf3, 0x6c, 0x89, 0x8c, 0xac, 0x30, 0xa8, 0xe5, + 0xf9, 0x79, 0x9d, 0xe4, 0x13, 0x0e, 0xd5, 0xb0, 0x42, 0xce, 0x46, 0xf9, 0xab, 0xa4, 0x99, 0xac, + 0x14, 0x34, 0x41, 0x87, 0xb3, 0x20, 0xcd, 0xa2, 0x0e, 0x67, 0x21, 0x82, 0x33, 0x1d, 0x3e, 0x96, + 0xcb, 0x3d, 0xda, 0xf7, 0xd9, 0xb2, 0xba, 0x5b, 0xc0, 0xdd, 0x67, 0x5b, 0x18, 0xee, 0x16, 0xff, + 0x79, 0x10, 0xf7, 0x59, 0x46, 0xa7, 0x2c, 0x1e, 0x1c, 0x7d, 0x1f, 0x7e, 0x15, 0xc0, 0x6b, 0xed, + 0xb4, 0x2f, 0x72, 0xfb, 0xe0, 0x28, 0x27, 0x83, 0x0e, 0x6d, 0x4a, 0x56, 0x12, 0xf3, 0x79, 0xc1, + 0x8a, 0xeb, 0xdd, 0x0b, 0x25, 0x28, 0x6f, 0x20, 0x3d, 0x21, 0x89, 0x43, 0xd0, 0xb9, 0xac, 0x9c, + 0x86, 0xb2, 0x98, 0x4d, 0x7f, 0x63, 0x9e, 0xfe, 0x46, 0x97, 0xe0, 0xb6, 0xe9, 0x31, 0x8c, 0x48, + 0xfa, 0xcb, 0xd9, 0x9f, 0xa1, 0xf4, 0x56, 0x8e, 0xef, 0x2b, 0xc9, 0x9e, 0x52, 0x44, 0x84, 0x14, + 0xf1, 0xbf, 0x84, 0xcd, 0x47, 0xbd, 0x17, 0xda, 0x90, 0x37, 0x59, 0x34, 0x7f, 0x00, 0xee, 0x81, + 0xe0, 0x7c, 0xb2, 0xc1, 0x21, 0xcd, 0xfd, 0x28, 0x62, 0x31, 0x07, 0xdb, 0x80, 0x7a, 0x61, 0x49, + 0x7b, 0xcc, 0x3f, 0x00, 0xf7, 0xb6, 0x2f, 0x98, 0xbf, 0x00, 0xa9, 0x36, 0x59, 0xe8, 0x26, 0x71, + 0x2c, 0x02, 0xba, 0xf5, 0x15, 0xe0, 0x0c, 0xc4, 0x21, 0x82, 0x52, 0xd6, 0x86, 0x60, 0xf1, 0xd1, + 0x01, 0x68, 0x0d, 0x46, 0xbd, 0x45, 0xfe, 0x46, 0xe4, 0x9a, 0xb0, 0x1d, 0xcd, 0x93, 0x9a, 0x23, + 0xf9, 0x78, 0xed, 0x00, 0xa8, 0xfa, 0x1e, 0xa3, 0x85, 0x52, 0x63, 0x93, 0x9a, 0x27, 0xb9, 0x19, + 0xcb, 0x89, 0xf8, 0x21, 0xbe, 0xbb, 0xe9, 0x42, 0x39, 0xed, 0x74, 0x5a, 0x98, 0x4b, 0xdc, 0xcc, + 0xfe, 0xa6, 0xd7, 0xce, 0x9f, 0x41, 0x3a, 0x02, 0xd5, 0xc8, 0xb3, 0xff, 0xd7, 0x21, 0x7b, 0x53, + 0xf2, 0xd1, 0x86, 0xf3, 0xad, 0x40, 0x16, 0x49, 0x98, 0x6f, 0xa6, 0xc8, 0xe7, 0xb6, 0xb6, 0x3d, + 0x80, 0x4f, 0x5e, 0xe8, 0x44, 0x0e, 0x54, 0x7c, 0x47, 0x78, 0xa4, 0x3a, 0x31, 0x00, 0xf5, 0xb8, + 0x42, 0x65, 0xc5, 0x65, 0xdc, 0xc1, 0x9a, 0x47, 0x9d, 0xed, 0x8d, 0xc1, 0x46, 0xcc, 0x69, 0xf5, + 0x19, 0xda, 0x43, 0x13, 0x03, 0x50, 0x47, 0x9e, 0x97, 0xf1, 0x8b, 0xc7, 0xdb, 0x36, 0x52, 0xad, + 0xf1, 0x1e, 0x4d, 0xcb, 0xd7, 0x4b, 0x27, 0x13, 0x38, 0x7a, 0x58, 0x23, 0x7d, 0xd1, 0x16, 0x25, + 0x5b, 0x6a, 0xca, 0xab, 0x4b, 0x7e, 0xad, 0x08, 0xa7, 0x2d, 0xde, 0x18, 0xc4, 0x91, 0x8f, 0x1b, + 0x61, 0x5e, 0x19, 0xe0, 0x09, 0x6f, 0x11, 0x59, 0x32, 0x0b, 0x8f, 0xce, 0xd9, 0x3a, 0x48, 0x22, + 0xa0, 0xef, 0xb0, 0x45, 0xf1, 0xf6, 0x0d, 0x58, 0x96, 0x49, 0xd4, 0x83, 0x23, 0x95, 0xcc, 0xd6, + 0x85, 0xef, 0xfc, 0x98, 0xde, 0xcf, 0xfc, 0xea, 0x66, 0xee, 0x4b, 0x5c, 0xd8, 0xa3, 0x7a, 0x8b, + 0xda, 0x1b, 0x69, 0x04, 0xf3, 0xf5, 0xb7, 0x6d, 0x64, 0x1f, 0xb8, 0x34, 0x7e, 0xd9, 0xde, 0xda, + 0xb2, 0xed, 0xb9, 0xfb, 0x07, 0xc8, 0xc9, 0xc4, 0x11, 0xde, 0xa2, 0xfa, 0xc9, 0x48, 0xa9, 0x0a, + 0xc8, 0x95, 0xea, 0xf7, 0x22, 0x3a, 0xa4, 0x52, 0x43, 0x38, 0xdc, 0x89, 0x73, 0xea, 0xa8, 0x82, + 0x4e, 0xd6, 0x0c, 0x21, 0x89, 0x5e, 0x79, 0x67, 0xbc, 0xf9, 0x63, 0xe6, 0xbf, 0x1c, 0x55, 0xc2, + 0xb3, 0xd7, 0xcb, 0x8a, 0xcd, 0x32, 0x3c, 0x2c, 0xc3, 0xd7, 0xd3, 0x4e, 0xbe, 0xde, 0x98, 0xf6, + 0xf0, 0xf5, 0x06, 0xec, 0xe9, 0x33, 0x59, 0x3f, 0x74, 0x14, 0x1d, 0x32, 0xda, 0x4d, 0xde, 0xc9, + 0x60, 0x63, 0x36, 0x2d, 0x30, 0x1c, 0x6d, 0x53, 0x87, 0x90, 0xee, 0x19, 0x6e, 0x0f, 0x23, 0x5e, + 0x0c, 0x83, 0x94, 0x76, 0xf4, 0x1b, 0x13, 0xe1, 0xb4, 0x4d, 0x8d, 0xe2, 0x93, 0x9c, 0x76, 0xe0, + 0x6f, 0x51, 0xaa, 0x56, 0x75, 0xd3, 0x99, 0x3a, 0x72, 0x38, 0xf4, 0x6b, 0x54, 0x5d, 0xe2, 0x2a, + 0xd2, 0xd4, 0x8a, 0xdb, 0xc9, 0x23, 0xaf, 0x91, 0x7f, 0x4d, 0xaa, 0xe5, 0x76, 0xf2, 0xb8, 0x6f, + 0xe4, 0x5f, 0x53, 0xe2, 0x79, 0xe3, 0x8e, 0x01, 0x33, 0x72, 0x67, 0xc6, 0x89, 0x10, 0xd6, 0x6f, + 0xcc, 0xc8, 0xa3, 0x98, 0x92, 0x32, 0xb3, 0x06, 0x31, 0xa5, 0x98, 0x14, 0x7d, 0xd7, 0x4a, 0x78, + 0xfe, 0xd2, 0x6a, 0x5b, 0xde, 0xeb, 0x35, 0x50, 0x6c, 0x4a, 0x84, 0xf6, 0x37, 0x74, 0x68, 0x5f, + 0xea, 0xf2, 0x42, 0x17, 0x72, 0x50, 0xbd, 0x08, 0x91, 0x83, 0x35, 0x03, 0xb0, 0x42, 0x89, 0x78, + 0xc9, 0xbb, 0x53, 0x04, 0xd7, 0x4b, 0xc4, 0xbb, 0x0c, 0x16, 0x43, 0x7d, 0xb0, 0x0b, 0x94, 0x15, + 0xc9, 0x43, 0xa4, 0x2f, 0xc7, 0x7e, 0x2e, 0x37, 0x4c, 0xf2, 0x1e, 0x97, 0x76, 0xfb, 0xfb, 0x28, + 0x99, 0x19, 0x08, 0xcb, 0x08, 0xdb, 0x1e, 0xf9, 0xf4, 0x4d, 0xdd, 0xf0, 0x0d, 0x68, 0xc2, 0xdf, + 0x0a, 0x88, 0xe3, 0x6f, 0x25, 0x2c, 0x40, 0x2e, 0xc6, 0x26, 0xec, 0x6e, 0x9d, 0x44, 0x1b, 0x38, + 0x86, 0x59, 0xca, 0xa4, 0x34, 0xd0, 0x2e, 0xa6, 0x6a, 0xe4, 0x2b, 0xfd, 0x22, 0x36, 0x50, 0xe6, + 0x81, 0xa5, 0x7d, 0x78, 0x55, 0xf1, 0xd8, 0xf0, 0x7d, 0x56, 0xf2, 0xc1, 0xf5, 0x90, 0xa5, 0xd2, + 0x67, 0x82, 0xf8, 0x7a, 0x55, 0x8e, 0x34, 0xe2, 0xec, 0x58, 0x3d, 0xd1, 0x7f, 0x19, 0x7f, 0x19, + 0x21, 0x23, 0x6d, 0xf4, 0xcd, 0xf4, 0x87, 0xfd, 0x50, 0x37, 0x0f, 0xbf, 0x89, 0x1e, 0x69, 0xad, + 0x75, 0x81, 0x7c, 0x18, 0xf9, 0x73, 0x5f, 0x35, 0xe9, 0xdc, 0xe0, 0x18, 0x2b, 0xfd, 0x26, 0x8a, + 0x86, 0x48, 0x3e, 0xe7, 0x28, 0x8a, 0x44, 0xda, 0x87, 0xbf, 0x45, 0x48, 0x75, 0xba, 0x71, 0x6e, + 0x76, 0x46, 0xfe, 0xa7, 0x6a, 0x20, 0x1c, 0xe9, 0x6b, 0x46, 0xc8, 0x6c, 0xc1, 0x7f, 0xf2, 0x0c, + 0x10, 0x13, 0x3a, 0x6d, 0xf3, 0x67, 0x46, 0xd2, 0xf8, 0x55, 0x8d, 0xd8, 0x39, 0xc7, 0x3a, 0x67, + 0xe2, 0x9a, 0xae, 0xcb, 0xe6, 0xf6, 0xb7, 0xa0, 0x44, 0x8b, 0xb9, 0xfd, 0x31, 0x84, 0x63, 0x92, + 0xef, 0xcc, 0x5e, 0x39, 0x3c, 0xf9, 0xf9, 0x7e, 0xc4, 0xd0, 0x8b, 0x10, 0x86, 0xef, 0x49, 0x8e, + 0x90, 0xbc, 0xc5, 0xb9, 0x67, 0x8d, 0xf4, 0xa3, 0xec, 0x41, 0x12, 0xb0, 0x05, 0xef, 0x8c, 0x7c, + 0x57, 0x0d, 0xa6, 0xfb, 0xaf, 0xfb, 0xa8, 0x6b, 0x02, 0xdf, 0x1c, 0x0f, 0x4d, 0x44, 0xf5, 0x34, + 0x23, 0xa7, 0x18, 0x31, 0x25, 0xc6, 0xeb, 0x03, 0xf1, 0x08, 0xe2, 0xa7, 0x04, 0x96, 0x6f, 0x66, + 0x8b, 0x59, 0x2c, 0x15, 0x5b, 0xfd, 0x82, 0x0f, 0xf3, 0x60, 0x1d, 0x89, 0x7a, 0x2c, 0x25, 0xfe, + 0x6b, 0xd1, 0x3e, 0xac, 0xb7, 0x0e, 0x79, 0xad, 0x99, 0x54, 0xa3, 0xbf, 0x19, 0x4b, 0xc3, 0xde, + 0xf8, 0xa3, 0x78, 0xc5, 0xde, 0x50, 0x39, 0xa2, 0x0c, 0x6a, 0x1d, 0x49, 0x7e, 0x0d, 0x9f, 0x81, + 0xf6, 0xed, 0xf7, 0xe9, 0x1c, 0x5a, 0x69, 0x8a, 0x67, 0x56, 0x12, 0xe6, 0x58, 0x92, 0x7c, 0xb4, + 0x75, 0x53, 0x3d, 0xb2, 0xaa, 0xd0, 0xcf, 0xe9, 0xa1, 0x78, 0xc6, 0x04, 0x38, 0xeb, 0x4b, 0x58, + 0xce, 0xf7, 0x88, 0x72, 0x37, 0xff, 0x7a, 0xf3, 0xaf, 0xfd, 0x0b, 0xbc, 0x33, 0xfd, 0x2d, 0x9b, + 0xc7, 0x37, 0x8f, 0xd3, 0xdd, 0xbb, 0x51, 0x7f, 0x93, 0x77, 0xe6, 0x44, 0x8c, 0xd6, 0x36, 0xb6, + 0xb5, 0x11, 0xeb, 0x41, 0x7c, 0x49, 0x75, 0x21, 0xcd, 0x19, 0xa3, 0x31, 0x48, 0x2c, 0x4a, 0xf5, + 0xea, 0x7c, 0x97, 0x35, 0xd1, 0x98, 0xb6, 0xe1, 0xfb, 0x7a, 0xc2, 0x8a, 0x9c, 0x62, 0x56, 0x4d, + 0xd9, 0x67, 0xb6, 0x59, 0x1f, 0x9b, 0x5c, 0x4a, 0x6b, 0x12, 0x7b, 0x62, 0x08, 0x52, 0xef, 0xf6, + 0x61, 0xae, 0xe2, 0x20, 0xf6, 0xd7, 0xd7, 0x62, 0x0f, 0x85, 0xcf, 0x3e, 0x01, 0x0e, 0xd3, 0x96, + 0x47, 0x7c, 0xcd, 0xf6, 0x30, 0xdd, 0x3b, 0x4d, 0x5b, 0xd7, 0xdb, 0x13, 0x13, 0x8f, 0x1c, 0x58, + 0xdf, 0xbe, 0xa6, 0x7d, 0x2d, 0x62, 0xf0, 0x7a, 0xe2, 0xce, 0x08, 0x72, 0x08, 0xf3, 0xa4, 0xcd, + 0x4b, 0x6a, 0xff, 0x6a, 0xf8, 0x7e, 0x69, 0xd7, 0xf0, 0x7d, 0x3e, 0xac, 0x23, 0xc2, 0x98, 0xa7, + 0x99, 0x71, 0x50, 0x31, 0xde, 0xb5, 0xf0, 0x98, 0x67, 0x67, 0x70, 0x5e, 0xf6, 0x94, 0x52, 0xec, + 0x4a, 0x50, 0x9b, 0x6c, 0x5e, 0x58, 0x48, 0x1e, 0xae, 0xbc, 0x26, 0xbc, 0x6b, 0x65, 0x8b, 0xcf, + 0x99, 0x78, 0xd7, 0x2e, 0xd2, 0xa8, 0xad, 0x9f, 0xed, 0x64, 0x4d, 0x3e, 0x61, 0x8f, 0x2d, 0xb0, + 0x49, 0x00, 0xa9, 0xcb, 0x2c, 0xe6, 0x07, 0xc9, 0xaa, 0xd9, 0x82, 0x3d, 0x54, 0x10, 0xa7, 0x18, + 0x90, 0x5f, 0x35, 0x89, 0x08, 0xc6, 0xe9, 0x3a, 0x3f, 0x4a, 0x35, 0x9b, 0x4f, 0x22, 0xff, 0x3a, + 0xb3, 0x5b, 0x6e, 0x1b, 0x3e, 0x3e, 0x5c, 0xd3, 0x7e, 0x68, 0x3c, 0xf0, 0x03, 0xe2, 0x68, 0xed, + 0xe4, 0xd9, 0xaa, 0x1b, 0x8c, 0x23, 0x1f, 0xe2, 0x2a, 0x30, 0x89, 0xb7, 0x01, 0xc4, 0x22, 0x07, + 0xc7, 0xbf, 0x95, 0x40, 0x5c, 0xd2, 0x21, 0x22, 0xf9, 0xd1, 0xbe, 0xe5, 0xdb, 0xe3, 0x35, 0xed, + 0x5b, 0x31, 0x17, 0x7f, 0x67, 0xa2, 0x1a, 0x6a, 0x7a, 0x40, 0xc6, 0x14, 0xd3, 0xed, 0xcd, 0x20, + 0x53, 0x1a, 0x69, 0xfd, 0x4d, 0x84, 0xe8, 0x0d, 0xd9, 0xf8, 0xe3, 0xea, 0x37, 0xe8, 0xa9, 0x88, + 0x0b, 0x88, 0xff, 0x9e, 0xc0, 0x95, 0xc6, 0x58, 0x42, 0x22, 0x59, 0x8d, 0x4f, 0x05, 0x88, 0x03, + 0xc8, 0xed, 0x84, 0x0a, 0xef, 0x21, 0x1c, 0x5f, 0xbd, 0x47, 0x97, 0x2e, 0x22, 0xf6, 0x86, 0x2c, + 0x75, 0x76, 0xa1, 0xcc, 0xb4, 0x52, 0x9c, 0xbe, 0x11, 0x6f, 0x31, 0x4e, 0xab, 0x7e, 0x62, 0x1d, + 0xd1, 0x6b, 0x11, 0x9f, 0xda, 0xa9, 0x4b, 0x7c, 0x44, 0x59, 0xb9, 0xa4, 0x24, 0xe3, 0x04, 0xf2, + 0x19, 0x54, 0x4e, 0x7a, 0x14, 0xf6, 0x08, 0x97, 0x24, 0xe9, 0xf2, 0x9e, 0x9f, 0xa5, 0x0b, 0x25, + 0x7c, 0xce, 0x04, 0x91, 0xd6, 0x48, 0x17, 0xc8, 0xf8, 0x6f, 0x60, 0xfb, 0x2a, 0x23, 0xff, 0x9a, + 0x38, 0x96, 0x29, 0xd5, 0xb4, 0xa8, 0x30, 0xbe, 0x25, 0xe9, 0x6f, 0xd1, 0xa9, 0xa1, 0x9f, 0xbc, + 0x4d, 0xcc, 0xf4, 0xd3, 0xde, 0xf7, 0x4c, 0x86, 0xf6, 0x52, 0xfa, 0x47, 0x38, 0x77, 0x09, 0xfc, + 0x4e, 0x52, 0x30, 0x61, 0x16, 0xce, 0x63, 0xe0, 0x75, 0x55, 0x2a, 0xf2, 0x61, 0x1e, 0x43, 0x36, + 0x46, 0x26, 0x4a, 0x5a, 0x47, 0x49, 0xb3, 0x99, 0xa4, 0x2c, 0x27, 0xc2, 0x03, 0x49, 0x5c, 0x2e, + 0x92, 0xb4, 0x3c, 0xb0, 0x98, 0x6d, 0x3c, 0x69, 0x7e, 0xe6, 0xb8, 0x49, 0x7e, 0x6a, 0xa8, 0x42, + 0xf9, 0x49, 0x3b, 0x8a, 0x38, 0x2e, 0xc8, 0xbb, 0x37, 0x57, 0x4b, 0x4f, 0x97, 0x06, 0x40, 0x56, + 0xf8, 0x6e, 0x0a, 0xef, 0xca, 0xd8, 0x1b, 0x96, 0x25, 0xba, 0x27, 0x1d, 0x28, 0x90, 0x9e, 0xe4, + 0x42, 0xe9, 0x49, 0xba, 0x57, 0xe9, 0xe3, 0xc8, 0x58, 0x17, 0x59, 0xa2, 0x99, 0x44, 0x0e, 0xa7, + 0x85, 0x25, 0x28, 0x90, 0xa2, 0x0b, 0xcf, 0x08, 0x9d, 0x7e, 0x5c, 0x25, 0xd6, 0x02, 0x6f, 0x71, + 0x45, 0xda, 0x31, 0x5f, 0x0f, 0x98, 0x28, 0xea, 0x15, 0x3f, 0x1b, 0xb4, 0x13, 0x08, 0x5b, 0xe6, + 0xaa, 0x05, 0xda, 0x69, 0x47, 0x0f, 0x9f, 0x59, 0x0a, 0x4c, 0xbc, 0x3c, 0x21, 0xf7, 0x66, 0x74, + 0x79, 0xc4, 0xac, 0x24, 0xec, 0x1c, 0xc1, 0xed, 0xf2, 0x4a, 0xda, 0xcf, 0xc1, 0x9a, 0x2e, 0xf9, + 0xa4, 0xe5, 0xd7, 0xbd, 0xcf, 0xbb, 0xbe, 0xe4, 0x77, 0x9b, 0x22, 0xcf, 0xf8, 0xe5, 0xa1, 0xeb, + 0x4e, 0x2f, 0x3b, 0x10, 0x39, 0x1e, 0x1e, 0xd9, 0xad, 0x98, 0x48, 0x0a, 0x0a, 0xcc, 0xd3, 0xa6, + 0xfc, 0xb2, 0x48, 0x0b, 0x9f, 0xb5, 0x41, 0x3d, 0x52, 0x99, 0xc0, 0x8c, 0xd3, 0xdd, 0x07, 0x9b, + 0x8e, 0x47, 0x46, 0xf6, 0xd8, 0x11, 0x83, 0x7b, 0x48, 0x22, 0xc3, 0x1e, 0xd8, 0x13, 0xa4, 0x87, + 0x0c, 0xeb, 0xb1, 0x05, 0x25, 0xba, 0x8d, 0xe7, 0x3a, 0xbd, 0x6e, 0x8b, 0x92, 0x68, 0xc0, 0x9e, + 0xfc, 0xe7, 0xd7, 0x9e, 0xa8, 0x82, 0xd9, 0x7f, 0xb9, 0x87, 0xfc, 0x4f, 0x45, 0xd7, 0x14, 0xb6, + 0xc4, 0xd1, 0x0f, 0x73, 0xb8, 0xb6, 0xad, 0xf6, 0x98, 0xd0, 0x62, 0xb4, 0x63, 0x3a, 0x45, 0x25, + 0x21, 0x39, 0xee, 0xd2, 0x1a, 0x2f, 0xf1, 0xdb, 0xb3, 0x70, 0xed, 0xd3, 0xb9, 0xde, 0xf1, 0x55, + 0x8b, 0xf4, 0x28, 0x91, 0x24, 0x3f, 0x2e, 0x61, 0xf9, 0xf1, 0x18, 0xcb, 0x8f, 0xc7, 0xe9, 0xab, + 0xac, 0x04, 0xa9, 0xc4, 0x98, 0x37, 0x20, 0xcb, 0x8e, 0xa3, 0x39, 0x19, 0xf2, 0x18, 0x3d, 0xfd, + 0x05, 0xca, 0x91, 0x5f, 0xcb, 0xca, 0x91, 0xb9, 0x5d, 0xc0, 0x40, 0x1f, 0xf6, 0xb1, 0x4f, 0x9b, + 0x8a, 0x9d, 0x43, 0x29, 0xd2, 0x7c, 0x95, 0x14, 0x79, 0x49, 0xdb, 0xa1, 0xef, 0x73, 0x6e, 0x64, + 0x6b, 0x7f, 0xda, 0xe3, 0xec, 0xd3, 0x61, 0x8f, 0xf8, 0xf0, 0x28, 0x71, 0x98, 0x2e, 0x1c, 0x4b, + 0xe4, 0xc6, 0x3b, 0x79, 0x8f, 0xa2, 0x58, 0xe9, 0x06, 0x03, 0xd3, 0x71, 0xb1, 0x4b, 0x41, 0x69, + 0x33, 0x0a, 0xd3, 0x90, 0xb6, 0x55, 0xe8, 0xb2, 0x7d, 0x09, 0xdb, 0xd4, 0xcf, 0xc6, 0x3b, 0x13, + 0xe6, 0x10, 0x7e, 0x42, 0x8c, 0xb8, 0xfe, 0xe6, 0x50, 0xdc, 0x4f, 0xfe, 0xf2, 0xe6, 0xdc, 0x97, + 0x47, 0x1d, 0xa1, 0xac, 0xf6, 0x8f, 0x90, 0xf5, 0xa7, 0x9d, 0x42, 0x58, 0xc4, 0x29, 0x04, 0xf2, + 0x38, 0xbb, 0xd4, 0x56, 0x7d, 0x5e, 0x77, 0x20, 0xa7, 0x54, 0x81, 0x33, 0xba, 0x91, 0x4f, 0x20, + 0xea, 0xe8, 0x8e, 0x6a, 0xe1, 0xa7, 0x5d, 0x74, 0x77, 0x17, 0x69, 0x0e, 0x5d, 0xd0, 0x23, 0xed, + 0xee, 0xad, 0x5e, 0x47, 0x9c, 0x30, 0xae, 0x97, 0x8d, 0xe2, 0x44, 0xe2, 0xae, 0x90, 0x76, 0x9e, + 0x35, 0xb6, 0xab, 0x11, 0x2b, 0x54, 0xdc, 0x45, 0x7e, 0x4a, 0xcf, 0xb3, 0x9f, 0xd6, 0x0b, 0x6a, + 0xa5, 0x5f, 0x1f, 0x35, 0x95, 0xf6, 0xec, 0x0c, 0xbe, 0x5e, 0x30, 0x92, 0x8f, 0x3e, 0xf2, 0xcd, + 0xa7, 0x06, 0xc9, 0x43, 0xa9, 0x3c, 0x43, 0xdb, 0x48, 0xbe, 0x4c, 0x11, 0xf6, 0x47, 0x28, 0x46, + 0x1d, 0x5e, 0xb7, 0x54, 0x25, 0xb4, 0x27, 0x22, 0x3f, 0xd1, 0x9e, 0x52, 0x7a, 0x73, 0x96, 0x0d, + 0xd8, 0xa2, 0xbc, 0x7c, 0x9d, 0xda, 0xa6, 0x6e, 0xc7, 0x11, 0xaf, 0xd4, 0x32, 0x5f, 0x59, 0x6e, + 0x37, 0xfd, 0x47, 0xe4, 0x76, 0xe6, 0x26, 0x09, 0x03, 0x96, 0x3a, 0x74, 0x7c, 0xca, 0x18, 0x30, + 0xb0, 0x43, 0x9c, 0x82, 0xeb, 0xd8, 0x54, 0xc7, 0x80, 0xa2, 0x84, 0x0a, 0x3a, 0x45, 0x47, 0x48, + 0x44, 0x59, 0x2f, 0x39, 0x76, 0x99, 0xb1, 0x08, 0xc9, 0x2c, 0x82, 0xae, 0x58, 0xb2, 0x3c, 0xda, + 0x59, 0x8a, 0xbc, 0xed, 0x26, 0x39, 0x5b, 0x97, 0xb9, 0x11, 0x4b, 0x39, 0xb8, 0xec, 0xee, 0x6b, + 0xed, 0x6b, 0x39, 0x20, 0xdd, 0x31, 0x6d, 0xa7, 0xaa, 0xd1, 0xed, 0x01, 0x53, 0x3a, 0xa4, 0xc4, + 0xf8, 0x6c, 0xfd, 0x80, 0x0b, 0x74, 0xc9, 0xda, 0x81, 0xfc, 0xba, 0x0b, 0x25, 0x6b, 0x0f, 0x5b, + 0xa2, 0x17, 0x4a, 0x63, 0x8e, 0x9c, 0x27, 0x35, 0xd6, 0x7f, 0xba, 0xfc, 0x06, 0xe9, 0xe9, 0x92, + 0xbd, 0xfd, 0x50, 0x50, 0xec, 0x02, 0x50, 0x5f, 0x7d, 0x35, 0x6c, 0x39, 0x39, 0x00, 0x2e, 0xda, + 0xa5, 0xd4, 0xa5, 0xa2, 0x4e, 0xe4, 0x9a, 0x2b, 0xab, 0xaa, 0xc0, 0xc0, 0x16, 0x0a, 0x3b, 0xec, + 0x21, 0xde, 0xf7, 0xb9, 0x1e, 0x39, 0xe5, 0x22, 0x28, 0x4d, 0x43, 0xd1, 0x3d, 0x4b, 0x00, 0x5e, + 0xe7, 0x27, 0x33, 0x62, 0xd1, 0xd1, 0x25, 0x4b, 0xf9, 0xbe, 0x18, 0x21, 0x75, 0xeb, 0x12, 0x3f, + 0xdf, 0xcb, 0x78, 0xff, 0xe3, 0x25, 0x56, 0xbe, 0x97, 0x52, 0x60, 0x20, 0xef, 0xbd, 0xdd, 0xfc, + 0x54, 0x84, 0x6f, 0xba, 0xf8, 0xce, 0x80, 0xe9, 0x9d, 0x98, 0xbe, 0x91, 0x9f, 0x66, 0x60, 0x7a, + 0xea, 0xbe, 0xec, 0x93, 0x09, 0x9f, 0x46, 0xf8, 0x6e, 0x26, 0xe6, 0xf2, 0xab, 0x20, 0x97, 0xf3, + 0xd3, 0x75, 0x58, 0xdf, 0xf2, 0x25, 0x4e, 0xbe, 0xb7, 0xe0, 0x7d, 0xe7, 0x7d, 0x48, 0x6e, 0xf8, + 0x09, 0xd7, 0x49, 0xd1, 0xcb, 0x7c, 0x67, 0xc5, 0x2f, 0xc8, 0x17, 0xf3, 0x93, 0xfc, 0x74, 0x3d, + 0xa6, 0xbf, 0x7b, 0x1f, 0x14, 0xbd, 0xc1, 0x4f, 0x25, 0xf8, 0x8d, 0x87, 0xef, 0xbe, 0x96, 0x82, + 0xa2, 0x23, 0x98, 0xeb, 0x1e, 0x7e, 0x9a, 0x83, 0xb9, 0xb6, 0x2c, 0xe9, 0xe4, 0xfb, 0x6f, 0x60, + 0x9e, 0x49, 0xbd, 0x8e, 0x32, 0xbc, 0x7f, 0x06, 0xeb, 0x58, 0xc3, 0x4f, 0x5f, 0xa7, 0x98, 0x09, + 0x7c, 0x57, 0x8e, 0x5f, 0x3f, 0x85, 0x5f, 0xef, 0xe4, 0xa7, 0x1b, 0x31, 0xfd, 0x12, 0xe6, 0x7a, + 0x97, 0x9f, 0x2a, 0xb1, 0x2c, 0x23, 0xdf, 0x7d, 0x13, 0x73, 0xad, 0xc0, 0x1e, 0x1e, 0xe5, 0x27, + 0x07, 0xa6, 0x1b, 0xf4, 0x72, 0x15, 0xec, 0x5f, 0x29, 0xf6, 0xb6, 0x8c, 0x9f, 0xec, 0xa4, 0x1b, + 0xc7, 0x77, 0x7f, 0x81, 0x5f, 0x44, 0xf1, 0x8b, 0x10, 0x3f, 0xdd, 0x8a, 0xeb, 0xf4, 0x89, 0x25, + 0xa2, 0xe7, 0xb7, 0xe0, 0xfd, 0x7e, 0xbe, 0x73, 0x62, 0x1e, 0x85, 0x6c, 0x3b, 0xf1, 0xc9, 0x80, + 0x3c, 0x32, 0x96, 0xca, 0x77, 0x32, 0xa6, 0x9b, 0xb0, 0x4d, 0x97, 0x6e, 0x8f, 0x73, 0x4c, 0xd1, + 0x49, 0xbc, 0x1a, 0xf1, 0x7a, 0x0e, 0xaf, 0x26, 0xb9, 0x5b, 0x7b, 0x8f, 0xf6, 0x4e, 0xe4, 0xf7, + 0xf1, 0xc9, 0x8c, 0x4f, 0xff, 0xc4, 0x4f, 0x87, 0x28, 0x2f, 0xeb, 0x4a, 0xd1, 0xd3, 0x7e, 0xfa, + 0x02, 0x9f, 0x4c, 0xfc, 0x34, 0x46, 0xdf, 0xe1, 0x93, 0xc2, 0x4f, 0x2f, 0xd0, 0x77, 0xf8, 0x14, + 0xe2, 0xa7, 0xa7, 0x85, 0xfe, 0x33, 0x74, 0x87, 0x80, 0x9f, 0x1f, 0x91, 0xbb, 0xff, 0x49, 0xe3, + 0xbb, 0x75, 0x62, 0xbf, 0x52, 0x1e, 0xba, 0xbd, 0x15, 0x7c, 0xb7, 0x23, 0x37, 0x00, 0x7e, 0xde, + 0xf3, 0x0d, 0xf0, 0x9e, 0x6f, 0x0d, 0xf2, 0x5b, 0x02, 0x93, 0x99, 0x33, 0xf2, 0x6a, 0x8a, 0x15, + 0x0e, 0x72, 0x5b, 0xe6, 0xf2, 0x6e, 0x71, 0x17, 0x77, 0x6c, 0xc0, 0xdf, 0xa8, 0x5e, 0x42, 0xd0, + 0xf2, 0x18, 0xc5, 0x1b, 0x4f, 0x81, 0xec, 0x77, 0x8c, 0x28, 0x0f, 0x93, 0xa7, 0xec, 0x5b, 0xe2, + 0x74, 0xea, 0x2a, 0x2b, 0x72, 0xf7, 0xff, 0x2d, 0x6a, 0x2b, 0xd3, 0x53, 0xac, 0x28, 0x27, 0x59, + 0xe4, 0x10, 0xa6, 0x86, 0x6c, 0xa0, 0x96, 0x8a, 0x54, 0xe9, 0x62, 0x3e, 0x55, 0x81, 0xdb, 0xb9, + 0xe5, 0xd2, 0xfb, 0xf8, 0x0e, 0xa1, 0x40, 0x3a, 0x0a, 0x14, 0xdf, 0x93, 0x52, 0x0e, 0xe8, 0x29, + 0xa4, 0x59, 0xf6, 0x39, 0xa7, 0x8c, 0x63, 0x0a, 0xc9, 0x1c, 0x3b, 0xf1, 0x4a, 0x9e, 0x20, 0xb6, + 0x67, 0x7b, 0xab, 0x00, 0xd9, 0xa8, 0x48, 0x3f, 0x92, 0xbb, 0xdf, 0xd3, 0xf8, 0xee, 0x89, 0xec, + 0x9b, 0x61, 0xf1, 0x66, 0x83, 0xdc, 0xfd, 0x7d, 0xf1, 0xe6, 0xfe, 0xec, 0x1b, 0xda, 0xdb, 0xc3, + 0xe7, 0x5e, 0x2c, 0xfd, 0xfb, 0x7c, 0xb7, 0x24, 0xfb, 0x46, 0xe2, 0xb1, 0x93, 0xda, 0xe4, 0xee, + 0x29, 0xee, 0x8d, 0x14, 0xcf, 0x7d, 0x63, 0x00, 0x2b, 0x3e, 0xd7, 0x71, 0x8b, 0xe8, 0xce, 0x97, + 0x7b, 0x23, 0xf3, 0x33, 0x8e, 0x80, 0x76, 0x99, 0xef, 0xca, 0x72, 0x6f, 0x24, 0x7e, 0x36, 0xe2, + 0x9b, 0x29, 0xba, 0x83, 0x4b, 0xb9, 0x37, 0x26, 0x7e, 0x3e, 0x8d, 0x6f, 0x3e, 0xe5, 0xbb, 0xe3, + 0xb9, 0x37, 0x36, 0x7e, 0x3e, 0xc0, 0x3a, 0x75, 0x74, 0xb7, 0x3f, 0xf7, 0x46, 0xe1, 0xe7, 0x9d, + 0x0c, 0x37, 0x74, 0xf7, 0x62, 0xee, 0x4d, 0x88, 0x9f, 0x9f, 0x66, 0x18, 0xa2, 0xbb, 0x2d, 0x05, + 0x3d, 0xa5, 0xe7, 0x75, 0xdc, 0x53, 0xab, 0xba, 0x4a, 0x68, 0x55, 0x70, 0x3f, 0xad, 0x6a, 0x2f, + 0xf7, 0xd2, 0xaa, 0x2e, 0xcd, 0xa6, 0xca, 0xd4, 0xfb, 0x45, 0x72, 0xf7, 0x65, 0xea, 0x7b, 0xd2, + 0x6f, 0x92, 0x51, 0x7e, 0x16, 0xf3, 0xa5, 0x5d, 0x5a, 0x13, 0x42, 0x29, 0xdb, 0xa2, 0xd6, 0x72, + 0xea, 0x59, 0x4c, 0xb5, 0x61, 0xea, 0x75, 0x9c, 0x6a, 0x53, 0xed, 0x0c, 0x17, 0xa6, 0x74, 0x05, + 0x42, 0xa4, 0x93, 0xe7, 0xda, 0xa5, 0x5a, 0xf1, 0xb7, 0x56, 0x35, 0xb1, 0xc5, 0xb4, 0xbc, 0x5c, + 0x42, 0x59, 0x99, 0xe8, 0xd8, 0x04, 0xd1, 0xd3, 0xcf, 0x23, 0x84, 0xf3, 0x7a, 0x2d, 0x84, 0x87, + 0xc9, 0x53, 0x99, 0x53, 0xe7, 0x6c, 0x9d, 0x59, 0xdc, 0x1e, 0x45, 0x3e, 0x39, 0x74, 0x2d, 0x3e, + 0x99, 0xb9, 0x5b, 0x94, 0xe0, 0xc9, 0xa2, 0x80, 0xb4, 0xe2, 0xc1, 0x96, 0x31, 0xdd, 0x12, 0x02, + 0xcf, 0x2d, 0x11, 0xd6, 0x31, 0x13, 0x3c, 0xed, 0xcb, 0xd3, 0x78, 0x5a, 0xcb, 0xff, 0x26, 0x2f, + 0xde, 0x3f, 0x9d, 0x17, 0x17, 0xa7, 0x2f, 0x74, 0x62, 0x40, 0xfa, 0x0a, 0xb1, 0x0f, 0x99, 0x7a, + 0x94, 0x23, 0xf7, 0xf3, 0x24, 0xd1, 0x96, 0x16, 0x10, 0x79, 0xb2, 0xfc, 0xba, 0xa7, 0x07, 0x1c, + 0xe1, 0x93, 0x50, 0x8b, 0xef, 0xb7, 0xec, 0xd0, 0xcf, 0x2a, 0x74, 0x7a, 0x35, 0x50, 0xb0, 0x6f, + 0x29, 0x67, 0xbf, 0x65, 0x0b, 0x48, 0xda, 0x49, 0x43, 0xde, 0x2a, 0x8b, 0xdb, 0xe5, 0x35, 0x4b, + 0xc8, 0x6f, 0x5f, 0x16, 0xb7, 0x5b, 0x96, 0x08, 0x4c, 0x64, 0xd4, 0xf1, 0x56, 0xf1, 0x52, 0x90, + 0x04, 0xc6, 0x94, 0x10, 0xa7, 0x76, 0xd8, 0x91, 0x93, 0x16, 0xf8, 0xfe, 0x7b, 0x28, 0x6b, 0x93, + 0x67, 0xf7, 0x5c, 0x8a, 0x09, 0x53, 0xc8, 0x97, 0xfc, 0x8b, 0x39, 0xbc, 0x2d, 0xe7, 0xf1, 0xb6, + 0x74, 0x10, 0x71, 0xdf, 0xae, 0x2c, 0xde, 0xd6, 0x71, 0x2a, 0xe2, 0xed, 0x22, 0xf2, 0x08, 0x5f, + 0x91, 0xc5, 0xdb, 0x52, 0x0d, 0xe6, 0x72, 0x64, 0xf1, 0xb6, 0xf4, 0x52, 0x16, 0x6f, 0xcb, 0x14, + 0x8b, 0xf7, 0x44, 0x16, 0x6f, 0x63, 0x8b, 0xf3, 0x78, 0xbb, 0x34, 0x8f, 0xb7, 0xa5, 0xc3, 0xf8, + 0xf5, 0xde, 0x2c, 0xde, 0x96, 0x8e, 0x64, 0xf1, 0xb6, 0xfc, 0x74, 0x0e, 0x23, 0x13, 0xde, 0x96, + 0x31, 0xd7, 0x47, 0x59, 0xbc, 0x2d, 0xcb, 0x59, 0xbc, 0x2d, 0xaf, 0x24, 0xbb, 0xfd, 0x1c, 0xe6, + 0xdd, 0xa7, 0xd3, 0x35, 0xc4, 0xd4, 0x70, 0x40, 0xa7, 0x6b, 0x0a, 0xe6, 0x6a, 0xa3, 0x35, 0x22, + 0x30, 0x37, 0xf9, 0x12, 0x14, 0x78, 0x1e, 0xd3, 0xeb, 0xf0, 0xeb, 0x7d, 0x3a, 0x0e, 0x5f, 0x85, + 0x94, 0xc1, 0x98, 0xc5, 0xd5, 0xd2, 0x89, 0x2c, 0xae, 0x96, 0x09, 0xc3, 0x90, 0xd5, 0x9e, 0x41, + 0xb5, 0x92, 0xed, 0x9e, 0x6a, 0xa2, 0xb1, 0xf3, 0x91, 0xdd, 0x31, 0xed, 0xb4, 0x9f, 0x67, 0x2f, + 0xc9, 0xe7, 0x29, 0x2d, 0xe1, 0x42, 0x0e, 0x79, 0x5c, 0xb5, 0xd0, 0x3d, 0xcb, 0xa1, 0x96, 0x45, + 0xec, 0x3f, 0xda, 0xbe, 0x21, 0xfa, 0x28, 0xe6, 0x7c, 0x9d, 0xd2, 0x99, 0xaf, 0x75, 0xd2, 0x0e, + 0x17, 0x3d, 0xd9, 0x9f, 0xc3, 0x35, 0x01, 0xd2, 0xa8, 0xfe, 0x85, 0x91, 0xbe, 0x50, 0xdf, 0xd0, + 0x9f, 0x24, 0xf0, 0xe2, 0xd3, 0x2e, 0xce, 0x37, 0xa2, 0x92, 0x87, 0x27, 0xbc, 0x8b, 0xd0, 0xdd, + 0x30, 0xfb, 0xa6, 0xb2, 0xa4, 0xac, 0x6a, 0x54, 0xcf, 0x5b, 0x4c, 0xda, 0x01, 0x08, 0x41, 0x15, + 0xea, 0x12, 0x3d, 0x05, 0x39, 0x52, 0x7c, 0xef, 0x28, 0x78, 0x22, 0x08, 0x2b, 0x51, 0x23, 0xb9, + 0xd2, 0x67, 0xa7, 0x8d, 0x98, 0x52, 0xa6, 0xfa, 0x32, 0xa0, 0x7a, 0xf4, 0xd6, 0x10, 0x16, 0xb5, + 0xe7, 0xca, 0xb4, 0x61, 0xfd, 0xa0, 0xd5, 0x73, 0x7f, 0x5d, 0x60, 0x8b, 0x8f, 0x4f, 0x0c, 0x3f, + 0x3a, 0x1c, 0x1d, 0xb6, 0x93, 0x2f, 0xfe, 0x4b, 0xb9, 0x92, 0xaf, 0xe3, 0x5c, 0xe5, 0xb9, 0x72, + 0xc5, 0xb3, 0x29, 0xd7, 0x5b, 0xeb, 0xa0, 0xc4, 0x5e, 0x64, 0xc4, 0xfb, 0x22, 0xf1, 0x7e, 0xea, + 0x84, 0xfe, 0x6c, 0xd0, 0x9f, 0x0f, 0xe7, 0x6a, 0x15, 0xcf, 0xfb, 0x73, 0x63, 0x22, 0x9e, 0x77, + 0xea, 0x23, 0x7c, 0xdd, 0x5f, 0xd2, 0xd3, 0xb6, 0xdc, 0x18, 0x5b, 0xf9, 0xed, 0x93, 0xb9, 0xda, + 0x2d, 0xfc, 0xfc, 0x70, 0xae, 0x76, 0x3e, 0xd3, 0xe7, 0xb4, 0x15, 0xb9, 0x34, 0xdb, 0xe0, 0x75, + 0x8d, 0xd2, 0x9e, 0x61, 0xfb, 0x6a, 0x35, 0xa0, 0xf7, 0xbb, 0x56, 0x75, 0xeb, 0x77, 0x41, 0x55, + 0xa1, 0x3b, 0x96, 0x17, 0xe7, 0xf8, 0x9f, 0x03, 0xdf, 0xb7, 0xba, 0xc0, 0x0f, 0x32, 0xfe, 0x06, + 0xc0, 0x80, 0xbf, 0x35, 0x24, 0xcd, 0x27, 0xff, 0x3b, 0x79, 0xeb, 0xe2, 0xab, 0x41, 0xbf, 0xd2, + 0xb3, 0x8c, 0xff, 0x9a, 0x58, 0xaf, 0x6d, 0xcf, 0x41, 0x34, 0xa3, 0xaf, 0xdd, 0xf6, 0x82, 0x7b, + 0x1c, 0xf1, 0xa8, 0x38, 0x47, 0xfe, 0xb2, 0xbd, 0xf6, 0xaf, 0xa6, 0x39, 0x45, 0x7a, 0xe7, 0x76, + 0x1d, 0xa7, 0x90, 0x5e, 0x5a, 0x0d, 0xd9, 0x21, 0xae, 0x0d, 0xcc, 0x05, 0xd2, 0x51, 0x24, 0xab, + 0x44, 0xd3, 0x6d, 0x61, 0xb6, 0x4c, 0x34, 0xdf, 0x16, 0x02, 0x61, 0x9d, 0x1c, 0x31, 0x61, 0x1e, + 0x9c, 0x79, 0xd3, 0xa1, 0x6e, 0x28, 0x6f, 0x6f, 0xf0, 0xad, 0xc5, 0x67, 0x5a, 0xdb, 0xe6, 0x83, + 0xdd, 0x50, 0xd1, 0x1e, 0xa1, 0xef, 0x30, 0xa5, 0x98, 0x72, 0x1c, 0xc0, 0x1c, 0xf4, 0x3d, 0xd9, + 0x11, 0xd2, 0xf3, 0x04, 0xe6, 0xa0, 0x72, 0x84, 0x66, 0x39, 0xe9, 0x56, 0xbb, 0x84, 0x4e, 0x16, + 0x71, 0xa5, 0xa4, 0xff, 0xee, 0x22, 0x29, 0xca, 0x1e, 0x55, 0x9a, 0x15, 0x99, 0xb1, 0xfa, 0xeb, + 0x81, 0x90, 0x3d, 0x4a, 0xbb, 0x8a, 0x5b, 0xfe, 0x3e, 0x23, 0x89, 0x14, 0x5f, 0x48, 0x35, 0x5b, + 0x24, 0xf8, 0xab, 0x94, 0xfc, 0xf8, 0xfe, 0xf6, 0x35, 0x88, 0x6b, 0x0d, 0x25, 0x37, 0xa6, 0x3e, + 0xe2, 0xb3, 0x65, 0xe1, 0x5b, 0xaa, 0xde, 0xa9, 0xfb, 0x08, 0x21, 0x3f, 0x48, 0xa4, 0xbf, 0xd5, + 0x3c, 0x39, 0x75, 0x48, 0x4d, 0xb5, 0x0d, 0x3b, 0x16, 0x94, 0x7c, 0x23, 0x6d, 0xe4, 0x6f, 0xcf, + 0xd9, 0x9b, 0x59, 0x96, 0xda, 0x9b, 0x28, 0x49, 0xb7, 0xb4, 0x3d, 0x6c, 0x6f, 0x56, 0x74, 0x4d, + 0x2b, 0xed, 0x75, 0x4f, 0xa8, 0xa6, 0x0a, 0x9c, 0xf1, 0x57, 0x6a, 0x11, 0xc3, 0x7a, 0x65, 0x5f, + 0x51, 0x07, 0xef, 0x86, 0x73, 0xec, 0xa4, 0xc7, 0x83, 0xc9, 0x85, 0x17, 0xf6, 0x6b, 0x8a, 0xd5, + 0xde, 0x6c, 0x2f, 0xea, 0x58, 0x2d, 0xf4, 0xb4, 0xd9, 0x76, 0x9a, 0xdf, 0xd2, 0xb9, 0x00, 0x96, + 0x67, 0x42, 0xc9, 0x3d, 0x81, 0xeb, 0x61, 0x44, 0x68, 0x4d, 0xa3, 0xc4, 0x78, 0x91, 0xed, 0xb0, + 0xf5, 0x33, 0x61, 0x8a, 0x42, 0xe6, 0xac, 0x82, 0xc5, 0x7c, 0x36, 0x6a, 0x52, 0xc4, 0x6e, 0xd2, + 0x1c, 0x0f, 0x8e, 0xa9, 0xae, 0x67, 0xb6, 0x45, 0xdf, 0xa9, 0xa0, 0x33, 0xe6, 0x25, 0xb9, 0x73, + 0xd8, 0x39, 0xf6, 0x04, 0xf9, 0x29, 0x10, 0x32, 0xdb, 0x72, 0x20, 0x0f, 0x41, 0x2c, 0x7d, 0xc8, + 0xd3, 0xa4, 0xbf, 0x9a, 0x9c, 0x0e, 0xda, 0x21, 0x96, 0x2f, 0xe3, 0x42, 0x87, 0x92, 0x64, 0x73, + 0xaf, 0xc9, 0x4f, 0xe5, 0xce, 0xd4, 0x75, 0xb9, 0x50, 0xb2, 0xbb, 0x75, 0x17, 0x7b, 0xf9, 0xc4, + 0xd5, 0xea, 0xa0, 0x34, 0x39, 0xab, 0x0d, 0xcd, 0xd1, 0xaf, 0xad, 0x79, 0xb9, 0x7f, 0xe5, 0x75, + 0x27, 0x72, 0x72, 0x7f, 0xb5, 0x09, 0xa5, 0x9f, 0x62, 0x61, 0x39, 0x37, 0x15, 0x72, 0xb0, 0xae, + 0x9a, 0x5f, 0x68, 0x14, 0x4d, 0xf9, 0x24, 0x91, 0xaf, 0xe1, 0x0f, 0x00, 0xbc, 0x46, 0x2a, 0x5c, + 0x33, 0x0f, 0x0f, 0x93, 0x37, 0x8f, 0xe3, 0x71, 0xb1, 0x23, 0xf6, 0xc4, 0xb0, 0xd2, 0xc8, 0x6f, + 0x0c, 0xc2, 0x3b, 0xe4, 0xd4, 0x36, 0x6f, 0x11, 0xed, 0x7d, 0x1e, 0x7f, 0x58, 0x69, 0x7a, 0x74, + 0x0f, 0xe9, 0x1d, 0xb1, 0x9f, 0x52, 0x17, 0x9f, 0x2a, 0xfc, 0x00, 0xeb, 0xc9, 0xea, 0x9d, 0xb9, + 0x59, 0xfe, 0x5c, 0x49, 0xfa, 0x74, 0xb5, 0xd8, 0xae, 0x1a, 0x6c, 0x97, 0xbf, 0x28, 0x73, 0xdd, + 0xb1, 0x65, 0x07, 0x1a, 0x8e, 0x87, 0x7d, 0x61, 0x82, 0x5a, 0x7f, 0x91, 0x78, 0x1a, 0xd9, 0xad, + 0x58, 0x26, 0x36, 0x28, 0xa1, 0x91, 0xb7, 0xc4, 0x9e, 0x44, 0x0d, 0xed, 0x49, 0x14, 0x61, 0x1f, + 0xf8, 0x6d, 0x90, 0xf2, 0x1a, 0xfd, 0x45, 0xe2, 0xe9, 0xa9, 0xdd, 0x0b, 0xcf, 0x9e, 0x80, 0xa7, + 0x3e, 0x04, 0x39, 0x21, 0xe7, 0xf6, 0x25, 0x62, 0x2e, 0xda, 0x97, 0x48, 0xd8, 0xad, 0x8e, 0x5e, + 0x9c, 0x97, 0x66, 0xd6, 0x12, 0x24, 0xf9, 0x7f, 0x42, 0xd8, 0x33, 0xd4, 0x92, 0x0e, 0xa7, 0x52, + 0x3b, 0x00, 0xd5, 0x35, 0x03, 0x4c, 0xb3, 0x03, 0x28, 0xff, 0x2f, 0xae, 0xf1, 0x82, 0x3b, 0xfe, + 0x4a, 0x60, 0x00, 0x9c, 0x74, 0x82, 0x26, 0x76, 0x55, 0x2f, 0xa9, 0x74, 0x1f, 0xef, 0xd5, 0x34, + 0x91, 0xd2, 0x3c, 0x79, 0xa9, 0x97, 0xa1, 0xc4, 0x51, 0xbd, 0x8e, 0xcf, 0x50, 0x2c, 0x0c, 0x39, + 0x72, 0xf2, 0x71, 0xb2, 0x4f, 0x67, 0xcf, 0x55, 0xdd, 0x74, 0x0a, 0xc8, 0x79, 0x7c, 0x28, 0xe7, + 0x05, 0xbc, 0xcd, 0x78, 0x4d, 0x80, 0xa7, 0x6d, 0xad, 0xb7, 0x41, 0x68, 0xa1, 0x7a, 0x23, 0xa0, + 0xb4, 0xbc, 0x17, 0xac, 0x54, 0xe1, 0x92, 0x82, 0xfc, 0x00, 0xf1, 0x08, 0xec, 0x95, 0x11, 0xe1, + 0x9d, 0xf4, 0x4a, 0x15, 0x94, 0x36, 0x6d, 0x42, 0x2b, 0x87, 0x46, 0x7c, 0x08, 0x72, 0xf0, 0xf0, + 0x23, 0x0b, 0xbb, 0xf1, 0x4d, 0x9b, 0x05, 0xa4, 0xa4, 0x42, 0x6a, 0x99, 0xd8, 0xc1, 0xbb, 0xad, + 0x07, 0x2c, 0x60, 0xc0, 0x5f, 0x2b, 0x49, 0x10, 0xb0, 0xd1, 0x36, 0x97, 0x3c, 0x5a, 0x4d, 0x90, + 0x0e, 0xea, 0x30, 0xde, 0xdf, 0xc1, 0xf7, 0x46, 0x5c, 0xb5, 0xf2, 0x6d, 0xc4, 0x5d, 0x1a, 0xf0, + 0xd7, 0x8c, 0x39, 0x97, 0xe0, 0x9a, 0x96, 0x11, 0x5e, 0xe3, 0x22, 0x7f, 0x36, 0x2f, 0xe5, 0x2b, + 0x99, 0xcb, 0x1a, 0x36, 0x88, 0x3b, 0x46, 0xc2, 0x7e, 0xc0, 0xf4, 0xda, 0xf8, 0xf0, 0xe6, 0x10, + 0xe1, 0x81, 0x92, 0xb9, 0xac, 0x6b, 0x83, 0xd8, 0x44, 0x7f, 0x73, 0xa7, 0xfe, 0xc6, 0xa8, 0x96, + 0xe8, 0xad, 0x59, 0xc6, 0x75, 0x2c, 0xa3, 0x3a, 0x5a, 0xde, 0xab, 0x04, 0xb1, 0x7e, 0xbc, 0x66, + 0x47, 0x1f, 0xfb, 0xd7, 0xbc, 0xe8, 0x9d, 0x07, 0xa5, 0xbc, 0x07, 0x3c, 0x0f, 0x2c, 0x0c, 0x19, + 0x97, 0xfc, 0x6e, 0x3e, 0xcb, 0x28, 0x65, 0xbd, 0x53, 0xc4, 0x31, 0xbe, 0x79, 0xa4, 0xc7, 0x46, + 0x5a, 0xd4, 0x13, 0x61, 0x47, 0x9f, 0x76, 0x5e, 0xdf, 0xb5, 0xf9, 0xb2, 0x32, 0x76, 0x62, 0x19, + 0x46, 0xbd, 0x8c, 0x22, 0xbd, 0x8c, 0xa9, 0x3f, 0xb3, 0x8c, 0xe5, 0x58, 0x86, 0x49, 0x2f, 0x83, + 0x70, 0x9f, 0x91, 0xda, 0xf1, 0x67, 0x95, 0xe0, 0xc7, 0x12, 0xcc, 0x7a, 0x09, 0x46, 0xbd, 0x84, + 0xa9, 0x6b, 0x94, 0x30, 0xcb, 0x6b, 0x26, 0x2d, 0x3b, 0x2c, 0xa7, 0xfc, 0xaa, 0x72, 0x90, 0xaf, + 0xbc, 0x7c, 0x92, 0xf6, 0xad, 0x03, 0x0f, 0x51, 0xd4, 0x3e, 0xe4, 0x9a, 0x65, 0x8a, 0x6e, 0x40, + 0xe7, 0x58, 0x14, 0xd5, 0x80, 0xf6, 0x91, 0xb9, 0x86, 0x2a, 0x31, 0x56, 0x07, 0xce, 0xe0, 0x58, + 0x2d, 0x08, 0x3c, 0xc4, 0x1e, 0x21, 0x11, 0x83, 0x4f, 0x9c, 0xc1, 0x7e, 0xc7, 0xe9, 0x2b, 0xb6, + 0xae, 0xa2, 0x1c, 0x7d, 0xda, 0x25, 0xfa, 0x1a, 0x9f, 0x05, 0x06, 0xef, 0xd3, 0xa6, 0xa8, 0x14, + 0xda, 0x33, 0x7b, 0xab, 0x0d, 0x7f, 0x27, 0xdf, 0x42, 0x39, 0x05, 0xdb, 0x77, 0xd6, 0xa9, 0xb7, + 0x91, 0xdb, 0x27, 0xf6, 0x54, 0xc8, 0x17, 0x33, 0xe2, 0x77, 0x4c, 0xf1, 0xf2, 0x4e, 0x7d, 0x65, + 0x72, 0x4c, 0xab, 0xa7, 0xfa, 0x99, 0x4f, 0xb6, 0x52, 0x8c, 0x3d, 0x2c, 0x03, 0x4b, 0xe6, 0x32, + 0x78, 0x77, 0x5b, 0x60, 0xcb, 0xa0, 0xe2, 0x98, 0x07, 0x26, 0x27, 0xf6, 0xc8, 0x85, 0x3d, 0x43, + 0xac, 0x59, 0x4a, 0xbd, 0xc5, 0xd2, 0x8a, 0x79, 0x75, 0x91, 0x2e, 0xe8, 0x05, 0xee, 0x7b, 0xee, + 0xf9, 0xd2, 0x79, 0x6a, 0xd1, 0xa3, 0xdc, 0xa2, 0x47, 0xb1, 0x34, 0x3a, 0x63, 0x6c, 0x39, 0x63, + 0x08, 0x0a, 0x3d, 0x62, 0x5c, 0x19, 0x06, 0xac, 0x9f, 0x4e, 0x34, 0x2c, 0x5e, 0xb2, 0x28, 0xac, + 0xd6, 0x5b, 0xb3, 0x59, 0xdf, 0x53, 0xe6, 0x5a, 0xa1, 0x96, 0xe6, 0x86, 0x4e, 0x25, 0x70, 0x7c, + 0x6d, 0x76, 0xac, 0x15, 0x71, 0x76, 0x79, 0xa2, 0x1b, 0x2c, 0xbd, 0x00, 0x3b, 0x58, 0x2f, 0xda, + 0x8b, 0x2b, 0x69, 0x1b, 0xd7, 0x2c, 0x61, 0xaf, 0xf8, 0x1c, 0xe4, 0xd2, 0x2a, 0x9c, 0x37, 0xdf, + 0x01, 0xa1, 0x73, 0x77, 0x0d, 0x28, 0x3c, 0x10, 0xe2, 0xde, 0x1a, 0xa9, 0xb7, 0xe2, 0xb9, 0x76, + 0x35, 0x7e, 0xe1, 0xc7, 0x2f, 0x26, 0xaf, 0x86, 0xb7, 0x82, 0xdc, 0x46, 0xf1, 0x7c, 0x67, 0x18, + 0xe7, 0xd0, 0x0d, 0x81, 0xab, 0xe1, 0xea, 0xce, 0x10, 0x62, 0x3d, 0x37, 0xd4, 0x5c, 0x0d, 0x2f, + 0xf8, 0x06, 0x57, 0x14, 0x62, 0x94, 0x5c, 0x2b, 0xa7, 0xba, 0xa9, 0x75, 0x2d, 0x67, 0x2a, 0x41, + 0x3b, 0xfd, 0xa7, 0x67, 0x69, 0xea, 0xec, 0xf4, 0x59, 0x7a, 0x94, 0x67, 0xe9, 0xd1, 0x3f, 0x7b, + 0x96, 0xb4, 0x27, 0xa7, 0xcf, 0xd2, 0xe7, 0xc9, 0x2f, 0x9b, 0xa5, 0xac, 0xdf, 0x52, 0xc4, 0x61, + 0xad, 0x38, 0x63, 0x8b, 0xf9, 0x1c, 0xbf, 0xba, 0x9a, 0xf6, 0x55, 0x5d, 0xd0, 0xe1, 0xee, 0x05, + 0xbf, 0xb7, 0x17, 0xea, 0xa0, 0x56, 0xb9, 0x81, 0xb4, 0x1f, 0x46, 0x47, 0x52, 0xa6, 0xf9, 0xb4, + 0x8b, 0xeb, 0x51, 0xcd, 0xf3, 0xe9, 0x94, 0x95, 0x74, 0x15, 0x3a, 0x22, 0xb1, 0xc8, 0x00, 0xd4, + 0xe0, 0x3f, 0x69, 0x2c, 0xf8, 0x86, 0xa2, 0x47, 0x37, 0xa9, 0x06, 0xda, 0x89, 0x73, 0xdc, 0xfd, + 0xe8, 0x7e, 0xa4, 0x39, 0xe4, 0x91, 0xec, 0x19, 0xf6, 0xd3, 0x5c, 0x31, 0xbf, 0x1b, 0x3c, 0x10, + 0xc0, 0xdf, 0x6a, 0xa8, 0x51, 0x12, 0xba, 0xbf, 0xb5, 0x36, 0xda, 0x59, 0x73, 0xf6, 0x42, 0x3d, + 0xc5, 0x9d, 0xb2, 0x0c, 0x50, 0xe9, 0xe9, 0x3a, 0xde, 0x65, 0xb5, 0x25, 0x62, 0xa9, 0x0a, 0x13, + 0x20, 0x0f, 0x0c, 0x70, 0x84, 0x53, 0xac, 0xc4, 0x01, 0x8e, 0xaf, 0x4e, 0x57, 0x90, 0x2c, 0xcd, + 0x6f, 0x6c, 0xd3, 0xd2, 0x01, 0xb6, 0xe7, 0xf7, 0x67, 0x43, 0x2b, 0x09, 0x07, 0xc7, 0x07, 0x20, + 0xc8, 0x5e, 0x5e, 0x3d, 0x64, 0xdd, 0x40, 0x98, 0x27, 0xe0, 0x85, 0x0e, 0x1a, 0xeb, 0x01, 0x94, + 0xa5, 0x49, 0x8b, 0x60, 0x60, 0xc8, 0x87, 0x79, 0xe6, 0xc7, 0x21, 0x8a, 0x1c, 0x5d, 0xfd, 0xfc, + 0x30, 0x34, 0x1e, 0x8c, 0xb7, 0x47, 0xe6, 0x47, 0x20, 0x3e, 0x11, 0x6e, 0x0f, 0xcd, 0x0f, 0x41, + 0x02, 0x67, 0x5b, 0x86, 0x9b, 0x52, 0x25, 0x48, 0x79, 0x9f, 0xb2, 0x37, 0x92, 0x07, 0xf3, 0x29, + 0x99, 0xe5, 0xf1, 0x39, 0xdc, 0x2f, 0x8a, 0xea, 0xd9, 0x91, 0x2e, 0xf3, 0x1a, 0x59, 0x9f, 0xc0, + 0x48, 0x34, 0x5d, 0xea, 0xd0, 0x6d, 0x0b, 0x14, 0xfb, 0x42, 0xac, 0x23, 0xca, 0xdc, 0x62, 0x63, + 0x7c, 0x37, 0xd6, 0x1d, 0x8f, 0xef, 0xa9, 0x21, 0x6d, 0xce, 0x57, 0x38, 0xf2, 0xf7, 0x21, 0xdd, + 0x9f, 0x1b, 0x68, 0x46, 0xe1, 0xcb, 0x1a, 0xa9, 0xe0, 0x00, 0x12, 0x13, 0x1e, 0x99, 0xdb, 0xc9, + 0x26, 0xd2, 0x83, 0xbf, 0x35, 0x6c, 0xe7, 0x46, 0x69, 0x4f, 0xb6, 0xc5, 0xc6, 0x90, 0xc7, 0xea, + 0x83, 0xa9, 0xa7, 0xf3, 0x1e, 0x4b, 0x69, 0xa7, 0x71, 0xbe, 0xdd, 0x21, 0x76, 0x19, 0x3d, 0xf5, + 0x5e, 0xf0, 0x07, 0xbd, 0x50, 0x53, 0xeb, 0x85, 0xba, 0x3a, 0xec, 0x91, 0x9d, 0xf4, 0x55, 0xe6, + 0xe2, 0xdc, 0x0e, 0x6d, 0xd8, 0x00, 0xca, 0xfc, 0x21, 0xbb, 0x1d, 0xec, 0x62, 0x4f, 0x81, 0x38, + 0xa1, 0x1a, 0x94, 0x5f, 0xc9, 0x36, 0x9a, 0xf8, 0x27, 0xd6, 0x7b, 0x7f, 0x1a, 0x47, 0xb0, 0x08, + 0xe7, 0x8d, 0x75, 0xe0, 0x33, 0xca, 0xc4, 0x26, 0x94, 0xc9, 0x4d, 0x37, 0xf0, 0xde, 0x3d, 0xf2, + 0x66, 0x31, 0xfd, 0x1c, 0xb8, 0x11, 0xff, 0x9b, 0x04, 0xef, 0xf0, 0x89, 0x39, 0xb2, 0x0d, 0x25, + 0x1c, 0x37, 0x7c, 0x93, 0x78, 0x9b, 0x96, 0xf7, 0xa2, 0x97, 0x68, 0x2f, 0x40, 0x78, 0x31, 0x16, + 0xbc, 0xbc, 0x90, 0x4a, 0x52, 0x56, 0xf2, 0xb4, 0x06, 0xd6, 0xe5, 0xd7, 0x35, 0xca, 0x7b, 0xd6, + 0xa4, 0xed, 0x2c, 0x1f, 0xe7, 0x34, 0xdd, 0x52, 0x25, 0x14, 0xeb, 0x35, 0xe5, 0x49, 0xc0, 0x62, + 0xb6, 0xa7, 0x5a, 0x3c, 0xac, 0x3a, 0x07, 0xbf, 0x4f, 0xfc, 0x3e, 0xc7, 0x80, 0x35, 0x25, 0x56, + 0xa7, 0x4b, 0x33, 0x26, 0xb5, 0x24, 0xb1, 0x5a, 0xd8, 0x5b, 0x45, 0x87, 0x55, 0x63, 0x66, 0x06, + 0xe9, 0x5d, 0x39, 0xd8, 0x17, 0x31, 0x90, 0x35, 0x01, 0xdb, 0x3c, 0x22, 0x2c, 0x2b, 0x6e, 0xdd, + 0xde, 0x00, 0x39, 0xb1, 0xba, 0x7c, 0x1c, 0x21, 0x9a, 0x13, 0xe1, 0x4f, 0x0d, 0xe1, 0x2d, 0x2e, + 0x34, 0x04, 0x61, 0x8c, 0x6d, 0x5b, 0x6c, 0x69, 0x1b, 0xf6, 0xc2, 0xe0, 0xf8, 0x01, 0xf6, 0xa3, + 0x92, 0xfa, 0xa2, 0x96, 0xde, 0xd2, 0x8c, 0xcf, 0xcf, 0x43, 0xf5, 0x0d, 0x3d, 0xb0, 0x04, 0x2a, + 0xf1, 0xf7, 0x7b, 0xf0, 0xcd, 0x5b, 0x5a, 0x10, 0x5b, 0xb5, 0x91, 0x16, 0x34, 0x59, 0xc2, 0x61, + 0xef, 0x70, 0x15, 0x62, 0xfb, 0xac, 0x69, 0xab, 0xd2, 0xa6, 0x74, 0x49, 0xc9, 0x51, 0xe1, 0x93, + 0xce, 0xc7, 0xb0, 0x69, 0xe5, 0xf7, 0x59, 0xd8, 0x34, 0x52, 0x0c, 0x52, 0xb5, 0x7c, 0xa7, 0x18, + 0xf9, 0x5e, 0xde, 0x0d, 0xb6, 0xa8, 0x26, 0xf2, 0xcc, 0xab, 0xca, 0x8f, 0xee, 0xbf, 0x25, 0x8e, + 0xb2, 0xa0, 0x41, 0xb1, 0xd1, 0xfe, 0x01, 0x96, 0x6d, 0x0b, 0x9f, 0x44, 0x1a, 0x13, 0x47, 0x0e, + 0x84, 0xb4, 0x23, 0x69, 0xc7, 0x4a, 0xf1, 0xb6, 0xb1, 0xbe, 0x24, 0x8e, 0xf0, 0x10, 0xa8, 0xf0, + 0xe9, 0x0a, 0xba, 0x92, 0x4c, 0x42, 0xb3, 0x5f, 0xeb, 0xd4, 0xb9, 0xef, 0xe9, 0x7b, 0xcc, 0x5e, + 0x70, 0x45, 0x22, 0xea, 0x22, 0x25, 0x44, 0x9a, 0x15, 0x1c, 0xd5, 0xf1, 0xb2, 0xa6, 0xad, 0x34, + 0xee, 0x1c, 0xbe, 0x2f, 0x54, 0xe0, 0x57, 0xc8, 0x0a, 0x25, 0x50, 0x0e, 0x73, 0xc0, 0x01, 0x88, + 0x55, 0x03, 0xab, 0x55, 0x27, 0x52, 0x1f, 0x59, 0x55, 0x88, 0x06, 0xa9, 0x15, 0xb7, 0x13, 0xa7, + 0x50, 0x7a, 0x43, 0x18, 0xac, 0xaa, 0x15, 0x7f, 0xaf, 0x53, 0x4d, 0xb7, 0x84, 0x49, 0xb7, 0x74, + 0xda, 0x2e, 0xd0, 0xd3, 0xed, 0x11, 0x9f, 0x4c, 0x73, 0xd2, 0xf2, 0xde, 0xd2, 0x4a, 0xb1, 0x13, + 0xc4, 0x7c, 0x12, 0xcb, 0x38, 0x38, 0x1f, 0xe2, 0x9c, 0x33, 0xc2, 0xb2, 0x4c, 0x30, 0xb7, 0x6b, + 0xd2, 0x32, 0x6d, 0x27, 0x88, 0x3c, 0x23, 0xb4, 0x82, 0x01, 0x7f, 0x5d, 0xa4, 0xb5, 0x41, 0x27, + 0x0d, 0xb8, 0x66, 0x0d, 0xb4, 0xf7, 0x8f, 0x58, 0xad, 0xb2, 0x70, 0x1f, 0xa8, 0x52, 0x48, 0x65, + 0x16, 0x6f, 0x97, 0xd8, 0x63, 0x9c, 0x9a, 0xca, 0x7a, 0xa7, 0x27, 0x5b, 0x74, 0xd1, 0xcb, 0x41, + 0xe3, 0xf6, 0xe1, 0xfb, 0x92, 0xdc, 0x4b, 0x82, 0x73, 0x53, 0xae, 0xa7, 0x15, 0x08, 0x6c, 0x4e, + 0xc4, 0x40, 0xb5, 0xfe, 0xef, 0xa8, 0x64, 0x5b, 0x26, 0x2b, 0x0f, 0xa9, 0x76, 0xbc, 0x1a, 0xd4, + 0x0b, 0xf8, 0x6b, 0x54, 0xcf, 0x66, 0x88, 0x4b, 0xb2, 0x22, 0x74, 0xd1, 0xf5, 0x3a, 0x65, 0x58, + 0x35, 0x28, 0xff, 0x00, 0xe6, 0xac, 0xb4, 0x48, 0xd2, 0x0e, 0x69, 0x1b, 0xbb, 0x0b, 0xf6, 0xf4, + 0x3d, 0x5d, 0xb0, 0xd8, 0x77, 0x3d, 0xe9, 0x42, 0xa3, 0xf4, 0x26, 0x93, 0xb7, 0xd1, 0x5a, 0x2c, + 0x2f, 0x80, 0xa5, 0xd9, 0xfb, 0xf4, 0xa8, 0xae, 0xca, 0xc4, 0x6e, 0x5f, 0xfc, 0xd0, 0x78, 0x4d, + 0x73, 0x7b, 0x4b, 0x7b, 0x42, 0x99, 0x65, 0x37, 0x2d, 0xf8, 0xe3, 0x38, 0x38, 0x2c, 0xb1, 0xb3, + 0xcf, 0x80, 0xd3, 0x4c, 0x78, 0x80, 0x4f, 0xc9, 0x2d, 0x62, 0xe4, 0xf4, 0x13, 0xf2, 0x72, 0x3a, + 0x95, 0x0b, 0xb4, 0x8e, 0x26, 0xfa, 0x7c, 0x35, 0xa1, 0x5a, 0xec, 0x6b, 0xec, 0xfc, 0x33, 0xf0, + 0x8b, 0xdf, 0x0c, 0xd8, 0xe9, 0xfc, 0xda, 0x8f, 0x9c, 0xdb, 0xe8, 0x82, 0xbe, 0xb2, 0x40, 0x88, + 0x76, 0x37, 0xc2, 0x67, 0x47, 0xe0, 0x67, 0xaf, 0xdf, 0x9b, 0x5d, 0x19, 0xbc, 0x07, 0x45, 0xa3, + 0x74, 0xa5, 0x8e, 0x97, 0x56, 0x7d, 0x6d, 0xdd, 0x67, 0x91, 0x62, 0xcf, 0x5b, 0x99, 0x6e, 0xb8, + 0x32, 0x9f, 0xf0, 0x70, 0x35, 0xed, 0xcb, 0xfb, 0x75, 0xab, 0x42, 0x10, 0x31, 0x3e, 0xa6, 0x96, + 0xe8, 0xda, 0x61, 0xfb, 0x75, 0x8a, 0xd2, 0x85, 0x10, 0xd0, 0xeb, 0xaa, 0x82, 0x5e, 0x4f, 0x90, + 0xac, 0xad, 0xee, 0xaf, 0x79, 0x77, 0x53, 0xf8, 0x94, 0xa4, 0x22, 0x54, 0xfb, 0x9b, 0x4f, 0x43, + 0x70, 0xf9, 0x92, 0x83, 0x9b, 0x56, 0xb4, 0x1c, 0xda, 0xa4, 0x82, 0xfc, 0xae, 0xe2, 0x26, 0x2b, + 0x03, 0xf9, 0x4d, 0xdd, 0xfe, 0x0c, 0x94, 0x46, 0xd6, 0x11, 0x61, 0xeb, 0x2c, 0x79, 0xa7, 0x1b, + 0xdf, 0xe6, 0x2d, 0xe3, 0x95, 0x58, 0xf8, 0x84, 0x2c, 0x3c, 0x20, 0x17, 0x7a, 0x5a, 0x73, 0x43, + 0xa9, 0x85, 0x43, 0x86, 0xe0, 0x17, 0xf1, 0x25, 0xa5, 0xa4, 0xbd, 0x85, 0x32, 0x55, 0x5b, 0x49, + 0x10, 0x6c, 0xa4, 0x69, 0x25, 0xdf, 0xa3, 0x96, 0xea, 0x9c, 0x39, 0x59, 0x0d, 0x85, 0x08, 0xe7, + 0xca, 0x8d, 0x2a, 0xf9, 0x35, 0xf0, 0xb4, 0x77, 0xc1, 0x59, 0x6c, 0x45, 0xad, 0x6f, 0x08, 0xca, + 0xdf, 0x3a, 0x09, 0x1e, 0x79, 0xe4, 0x73, 0xb2, 0xa3, 0x02, 0xd9, 0x49, 0x6f, 0x71, 0x76, 0xab, + 0xff, 0xd7, 0xa9, 0xa2, 0x3d, 0xb4, 0xa7, 0x64, 0xaf, 0x96, 0x3b, 0xb1, 0x26, 0xc7, 0xe8, 0xea, + 0xfb, 0x90, 0x61, 0x4b, 0x59, 0x94, 0x6a, 0x79, 0xf1, 0xe8, 0x36, 0x70, 0x2d, 0x01, 0x69, 0x12, + 0xdf, 0x75, 0xb4, 0xaf, 0x9e, 0x17, 0x96, 0x3b, 0x30, 0xb5, 0x65, 0x74, 0x43, 0x6a, 0xd0, 0x42, + 0xfb, 0xc9, 0xe5, 0xa9, 0x6e, 0xa6, 0x3b, 0x87, 0x91, 0xce, 0xf9, 0xdd, 0xd5, 0x60, 0xe8, 0xdc, + 0xa4, 0x7a, 0x94, 0x18, 0xe3, 0xc4, 0x8e, 0xf4, 0x9c, 0xb1, 0x17, 0xe5, 0x96, 0x74, 0x39, 0x49, + 0x78, 0xd8, 0xf3, 0x0f, 0xc9, 0xf3, 0x81, 0x88, 0xbc, 0x27, 0x2c, 0x29, 0x95, 0x98, 0xdb, 0x96, + 0x78, 0x20, 0x35, 0xc1, 0x9c, 0x82, 0x1f, 0x4b, 0xe9, 0x8f, 0x60, 0x7e, 0xfc, 0x6f, 0xc5, 0xff, + 0x0e, 0xfc, 0xef, 0xc4, 0xff, 0xc5, 0x91, 0xe7, 0x8b, 0xf6, 0x90, 0x97, 0x1c, 0x69, 0x45, 0x62, + 0x35, 0x4a, 0xa0, 0x19, 0xc4, 0x17, 0x0e, 0x88, 0xe2, 0xaf, 0x0b, 0xe2, 0xec, 0x65, 0x9d, 0x3c, + 0x65, 0x49, 0x54, 0xea, 0x8d, 0xa7, 0x75, 0x6f, 0xeb, 0x95, 0x5e, 0xf6, 0xfe, 0x86, 0xa5, 0xd6, + 0x20, 0xff, 0x7a, 0x76, 0x6e, 0xbf, 0xdc, 0x22, 0x39, 0x38, 0x92, 0x52, 0x5d, 0xeb, 0xa6, 0x2f, + 0xaa, 0x03, 0x6b, 0x28, 0xf5, 0x74, 0x23, 0x7e, 0x24, 0x8b, 0x76, 0x8f, 0xb7, 0x0a, 0x6a, 0xbd, + 0xb3, 0xa9, 0x54, 0xeb, 0x24, 0xd6, 0x62, 0x15, 0xf7, 0xd7, 0xb9, 0x11, 0xeb, 0x55, 0x0b, 0x0b, + 0x05, 0x92, 0x29, 0x75, 0x2b, 0x85, 0x15, 0xc8, 0x1b, 0xb4, 0xdc, 0x44, 0x3c, 0x43, 0x6b, 0xc4, + 0x0b, 0xdf, 0x41, 0xee, 0xa1, 0x0b, 0xda, 0xe6, 0x93, 0xf6, 0x53, 0xc7, 0x7c, 0xda, 0x0d, 0x5f, + 0x84, 0xbf, 0x76, 0xa4, 0x9e, 0x3d, 0x10, 0x87, 0x7b, 0xf0, 0xb7, 0x05, 0xee, 0x25, 0x4d, 0x3d, + 0xb6, 0xc7, 0x28, 0xa2, 0xb2, 0xdd, 0x08, 0x43, 0x37, 0xce, 0x21, 0x0b, 0x1c, 0x2e, 0xa5, 0x0b, + 0x4b, 0xd0, 0xa0, 0x1b, 0xb9, 0x8e, 0x7e, 0xfc, 0xcf, 0xe8, 0x79, 0x8b, 0x44, 0x5e, 0xca, 0xe5, + 0xa1, 0xc8, 0x1d, 0xbe, 0xb9, 0x49, 0xf0, 0x29, 0x1e, 0xa8, 0x9d, 0x1b, 0x02, 0x8f, 0xa8, 0x3d, + 0x57, 0x73, 0xbe, 0xce, 0x7c, 0x3d, 0x20, 0xfa, 0x70, 0xe3, 0x1c, 0x96, 0xd2, 0x9d, 0xd8, 0x57, + 0x0f, 0xf7, 0xac, 0x1a, 0x5c, 0xc8, 0x75, 0x1e, 0xa5, 0x7b, 0xb6, 0xda, 0x1f, 0x16, 0xbe, 0x65, + 0x78, 0x8e, 0x14, 0xe4, 0x0e, 0xc8, 0x1b, 0xa0, 0x8d, 0x60, 0x05, 0xa9, 0xdd, 0xf9, 0xb4, 0x91, + 0xad, 0x78, 0xcf, 0xeb, 0x96, 0xe9, 0x6b, 0x48, 0x6f, 0x3e, 0x67, 0xbb, 0xbb, 0xd1, 0xc1, 0xfa, + 0x65, 0x97, 0x6d, 0x3a, 0xf5, 0xae, 0x65, 0xce, 0x6e, 0x31, 0x7b, 0x74, 0x34, 0xb9, 0x67, 0x3a, + 0xbe, 0x53, 0xd5, 0x0d, 0x4b, 0xb5, 0x27, 0x6a, 0x86, 0x20, 0xf8, 0xbb, 0xd7, 0xaa, 0x9a, 0x39, + 0x4a, 0xe4, 0x85, 0xa6, 0x93, 0xd2, 0x49, 0xbc, 0x7f, 0x4a, 0x9f, 0x33, 0x84, 0xa6, 0x4b, 0xf5, + 0xad, 0x9b, 0x3c, 0xb1, 0xc4, 0x8b, 0x92, 0x92, 0x2a, 0x99, 0x16, 0xb9, 0x27, 0x76, 0x73, 0x48, + 0x52, 0x04, 0x04, 0xdd, 0xb8, 0x87, 0xf8, 0x42, 0xcc, 0xdb, 0xcf, 0x57, 0x4c, 0x71, 0xd5, 0x44, + 0x50, 0x96, 0xb0, 0xc7, 0x3c, 0x73, 0x39, 0x1e, 0x75, 0x69, 0x55, 0x44, 0x1b, 0xc4, 0xff, 0x2e, + 0x8e, 0x52, 0xd9, 0xa7, 0x3d, 0x82, 0xf5, 0xa8, 0x58, 0x4f, 0x7f, 0x55, 0x42, 0xbb, 0x57, 0x05, + 0x65, 0x1c, 0xe5, 0x8b, 0x7b, 0x95, 0x2a, 0xe3, 0xcb, 0x69, 0x7b, 0xe4, 0x79, 0xe3, 0xcb, 0xb4, + 0x36, 0x85, 0x1f, 0x50, 0xb6, 0xd1, 0xfe, 0xb7, 0xfa, 0x2e, 0x4f, 0xec, 0xdb, 0xe4, 0xe1, 0xe6, + 0x7e, 0x86, 0x29, 0x2c, 0x39, 0xe5, 0xc4, 0xb1, 0x29, 0xf3, 0xce, 0xd3, 0x06, 0x91, 0x07, 0xdd, + 0x91, 0x8f, 0xca, 0x50, 0xd5, 0xa7, 0x0d, 0x6a, 0x5d, 0xf8, 0xbb, 0x43, 0x1b, 0xa4, 0x7a, 0xa8, + 0x15, 0x4a, 0x2c, 0xd1, 0x25, 0xdd, 0x9f, 0xf6, 0x58, 0xe6, 0x81, 0xac, 0xed, 0x4c, 0x39, 0x22, + 0xf8, 0x44, 0x31, 0xb4, 0xfa, 0x2a, 0xa8, 0xd6, 0x3b, 0xfa, 0xb4, 0x5d, 0xd0, 0x88, 0xbf, 0xe3, + 0x08, 0xc7, 0x1c, 0x1f, 0x65, 0xd6, 0xaa, 0xce, 0x4d, 0x58, 0xf2, 0xbd, 0x74, 0x7f, 0x83, 0xd5, + 0x01, 0x9e, 0x58, 0xe4, 0x45, 0xc9, 0x43, 0x79, 0x6f, 0xed, 0xd3, 0xf6, 0x40, 0x1c, 0x7f, 0xf7, + 0x41, 0x4b, 0x75, 0x15, 0x04, 0x3a, 0x37, 0x25, 0x7a, 0xe4, 0x3a, 0x5c, 0x07, 0x2f, 0x25, 0x5e, + 0x04, 0x1f, 0x5e, 0x5f, 0x54, 0xe6, 0x69, 0x3b, 0xe5, 0x61, 0x0d, 0x34, 0xcd, 0x32, 0x2c, 0x03, + 0x74, 0x91, 0x1f, 0x7e, 0xf6, 0x58, 0x77, 0x81, 0xcf, 0xdc, 0x77, 0x70, 0x99, 0x8d, 0x0e, 0x82, + 0x18, 0xdb, 0x2e, 0xc2, 0x1a, 0x43, 0xf3, 0x42, 0x92, 0x2b, 0xb1, 0x1e, 0xef, 0xa2, 0x6c, 0x2b, + 0x50, 0xcf, 0x9e, 0x1d, 0x9e, 0x93, 0x3b, 0xf0, 0x4b, 0xbf, 0x5e, 0xba, 0x5b, 0x2f, 0xdd, 0xee, + 0x69, 0xcc, 0x43, 0xfc, 0x8a, 0xa2, 0x97, 0x48, 0xcf, 0x79, 0x4f, 0x9f, 0x79, 0xa5, 0xb4, 0x93, + 0xf4, 0x3b, 0xcf, 0xab, 0x8b, 0x49, 0x3b, 0x3a, 0xed, 0x5f, 0x51, 0xfc, 0x12, 0x3d, 0xbf, 0xbf, + 0xd2, 0x50, 0x15, 0xd5, 0x8e, 0x71, 0x0c, 0xb2, 0xf7, 0x33, 0x52, 0x55, 0x48, 0x3b, 0x41, 0xbd, + 0x22, 0x8f, 0x0e, 0x5e, 0xa3, 0x12, 0x43, 0x39, 0x89, 0xbd, 0x3a, 0x58, 0x17, 0xab, 0x95, 0x72, + 0x3f, 0x9d, 0x68, 0xd1, 0x5b, 0x67, 0x0c, 0xd7, 0x5a, 0x14, 0xff, 0x43, 0xcc, 0x5d, 0x1e, 0xff, + 0xdd, 0xd3, 0xc2, 0x9b, 0x1b, 0x6c, 0xf5, 0x34, 0x9a, 0xaa, 0x59, 0x0b, 0x19, 0xe0, 0x61, 0xde, + 0xb7, 0x0a, 0xd6, 0x74, 0xa1, 0xcc, 0x35, 0x2b, 0xd8, 0x05, 0x25, 0x08, 0xb7, 0x46, 0xef, 0x5c, + 0xfc, 0x6e, 0x2e, 0x7e, 0xc7, 0xd6, 0xd9, 0x25, 0x7e, 0xf6, 0x9e, 0x12, 0x4a, 0x2f, 0x56, 0x1a, + 0xe5, 0xae, 0x6c, 0xe9, 0xf6, 0x58, 0x2e, 0x17, 0x97, 0xfe, 0xdd, 0xa0, 0xfa, 0x0c, 0xa5, 0x47, + 0xfe, 0x27, 0xd7, 0xab, 0xa7, 0xfe, 0x53, 0x1b, 0x5b, 0x89, 0x8a, 0xfa, 0xae, 0x4b, 0x57, 0x50, + 0x0e, 0xaf, 0x91, 0x57, 0x43, 0x88, 0x72, 0x15, 0xe0, 0x2c, 0x2c, 0x9b, 0x7c, 0xa5, 0xdb, 0x63, + 0x91, 0x7f, 0x00, 0xcf, 0x10, 0x38, 0x63, 0xbf, 0x38, 0x25, 0xb9, 0x52, 0x56, 0x8e, 0x6f, 0x76, + 0x2f, 0xc5, 0x21, 0x5f, 0x21, 0xa9, 0x56, 0x9a, 0x39, 0x47, 0x0f, 0xca, 0x0c, 0x38, 0x37, 0x91, + 0x06, 0x9e, 0x4d, 0x57, 0x35, 0xf2, 0x15, 0x91, 0x86, 0xc4, 0x83, 0x69, 0x93, 0xd2, 0xe4, 0x40, + 0xba, 0x4a, 0xf4, 0xbe, 0x04, 0xdf, 0x5b, 0x24, 0x28, 0x5b, 0x02, 0xdf, 0xfc, 0x11, 0x52, 0x64, + 0x29, 0xcf, 0xb7, 0x7c, 0xf3, 0x78, 0xe9, 0xc3, 0x92, 0x5c, 0xb9, 0x13, 0xaa, 0xbf, 0xb9, 0xf9, + 0x1b, 0x4f, 0x7c, 0x73, 0xf3, 0xb4, 0xbf, 0x32, 0xfe, 0xc3, 0x3b, 0xf0, 0xf3, 0xf3, 0x71, 0xac, + 0xe7, 0x57, 0x36, 0xfc, 0xb7, 0x00, 0x48, 0xe9, 0x39, 0xf7, 0x95, 0xb0, 0xee, 0x3d, 0x72, 0x7f, + 0x78, 0x2d, 0xc2, 0xd1, 0xdb, 0xae, 0x26, 0xef, 0x42, 0x8c, 0xa2, 0x8d, 0xe1, 0xa8, 0x6e, 0xb3, + 0x23, 0xf4, 0x29, 0xdf, 0x21, 0x4d, 0xcb, 0x03, 0x48, 0xc7, 0xef, 0x0a, 0xd3, 0x13, 0xae, 0x6c, + 0xf3, 0x04, 0x52, 0xf4, 0xbb, 0x42, 0xda, 0x38, 0xf5, 0x9d, 0xfc, 0x09, 0xd4, 0x84, 0xbd, 0xb3, + 0x94, 0xef, 0xe4, 0x3d, 0xe2, 0x8a, 0x12, 0x78, 0x6e, 0x96, 0xa2, 0x7c, 0xbe, 0x8b, 0xf9, 0x9d, + 0xa4, 0x27, 0x36, 0x2f, 0x21, 0x79, 0xc8, 0x33, 0xc0, 0xb7, 0x97, 0x22, 0xde, 0xb4, 0x28, 0x11, + 0xa4, 0xd8, 0x28, 0x13, 0x93, 0x67, 0x00, 0xf2, 0x64, 0xf4, 0xed, 0x0d, 0x98, 0x5a, 0x8a, 0x6b, + 0x6a, 0x4b, 0xeb, 0x26, 0x2c, 0x7d, 0x17, 0x3e, 0xd9, 0xec, 0x11, 0xb2, 0x7a, 0xf7, 0xce, 0x4c, + 0x3e, 0xd6, 0xb9, 0xa9, 0x7a, 0x1b, 0x4a, 0x78, 0xd9, 0xb7, 0xe3, 0x37, 0x0e, 0xd1, 0x7a, 0x51, + 0x0d, 0xb8, 0x86, 0xc6, 0xb0, 0x8e, 0x0b, 0x34, 0x8e, 0x55, 0x3d, 0xd0, 0xa5, 0x8d, 0xd2, 0xb8, + 0x79, 0x9a, 0x5c, 0xfd, 0x34, 0x6e, 0x7f, 0xfb, 0x06, 0xca, 0x7b, 0x63, 0x6c, 0x49, 0x00, 0x86, + 0xc9, 0x25, 0x15, 0x78, 0xb7, 0x2c, 0x0d, 0xc6, 0x09, 0xbc, 0x76, 0xa7, 0x61, 0x26, 0xe0, 0x15, + 0x57, 0x41, 0xe5, 0x33, 0x48, 0x13, 0x43, 0x70, 0xf2, 0x7b, 0x60, 0xfa, 0x48, 0xd8, 0x1b, 0x54, + 0x3e, 0xa2, 0x82, 0x79, 0x0d, 0x95, 0xe9, 0xaf, 0x92, 0x0f, 0x78, 0x62, 0xbe, 0x6a, 0xa9, 0x83, + 0xfc, 0x60, 0x7f, 0x3b, 0x24, 0x75, 0x24, 0xc2, 0x69, 0x27, 0xc5, 0x4e, 0xc7, 0x01, 0x24, 0x8d, + 0x4f, 0x69, 0x74, 0x5d, 0xaa, 0x6c, 0x5e, 0x44, 0x5a, 0xa1, 0x44, 0xbe, 0x8d, 0xd0, 0x26, 0xad, + 0xc2, 0x5f, 0x9b, 0x34, 0xa4, 0x42, 0x65, 0x82, 0xbe, 0x17, 0xab, 0x64, 0xe6, 0xf6, 0xc4, 0xfa, + 0xd4, 0xbd, 0xe4, 0x03, 0xcd, 0x13, 0xf1, 0xf5, 0x83, 0xcd, 0xdf, 0x2f, 0x74, 0x49, 0x52, 0x46, + 0xc5, 0x62, 0x9f, 0xa1, 0x1a, 0x32, 0x30, 0x08, 0x02, 0xd6, 0xf0, 0x77, 0x29, 0xca, 0x13, 0x33, + 0x11, 0x07, 0x4b, 0xc2, 0xa3, 0x81, 0x6d, 0x39, 0xef, 0xee, 0x0e, 0xa7, 0xec, 0x3c, 0x8e, 0x2e, + 0xc4, 0x6d, 0x58, 0x9b, 0x3d, 0x72, 0xdb, 0x32, 0xaa, 0x0d, 0x7f, 0xb9, 0xb6, 0x1b, 0x8f, 0x46, + 0xa2, 0xaa, 0xc1, 0x03, 0x2b, 0x25, 0x2e, 0x37, 0xa2, 0xca, 0x2b, 0xa5, 0x44, 0x43, 0xaa, 0x8e, + 0xda, 0x60, 0xaf, 0x2a, 0x7a, 0x53, 0xa9, 0x2a, 0x7a, 0xdd, 0x31, 0x4f, 0xdb, 0xe3, 0x9c, 0xa7, + 0xed, 0x23, 0x7c, 0xac, 0x3d, 0x49, 0xd4, 0x2f, 0xd3, 0x35, 0xfa, 0x7c, 0xd1, 0xa1, 0xb4, 0x19, + 0xa9, 0xda, 0x81, 0x5b, 0x43, 0x45, 0x87, 0xd4, 0x72, 0xca, 0xdf, 0x86, 0x4f, 0xaa, 0x35, 0xd3, + 0xc5, 0x58, 0x05, 0x53, 0xe9, 0x6d, 0x16, 0xc3, 0x14, 0xbd, 0x4e, 0x18, 0xa6, 0xe8, 0x4d, 0xc2, + 0x0a, 0x45, 0xcb, 0xd9, 0xe3, 0x5e, 0x05, 0x8e, 0x78, 0x9d, 0xa7, 0x89, 0x57, 0xc4, 0xdd, 0x69, + 0x9f, 0xbe, 0xcf, 0x6a, 0x13, 0xfc, 0xfe, 0x72, 0xdb, 0x0e, 0x8a, 0x8c, 0x35, 0x4b, 0x5f, 0x23, + 0x92, 0x77, 0x46, 0x7e, 0x85, 0x64, 0x24, 0x15, 0x8a, 0xfc, 0x28, 0x93, 0xce, 0xa0, 0xd2, 0x99, + 0x8e, 0x62, 0xef, 0x73, 0x94, 0xd4, 0x98, 0x7d, 0xba, 0xce, 0xed, 0x69, 0xac, 0x41, 0xcc, 0x22, + 0x37, 0x00, 0xed, 0x0e, 0x50, 0x5c, 0x1c, 0xe5, 0xbb, 0xe3, 0xa5, 0x10, 0x5f, 0x13, 0x8d, 0x60, + 0xad, 0x12, 0xae, 0xc3, 0xb2, 0x5c, 0x0d, 0x4a, 0x61, 0x0d, 0x89, 0x48, 0x8a, 0x7c, 0x25, 0xda, + 0x52, 0xcb, 0x73, 0xad, 0x22, 0xec, 0x44, 0x38, 0x48, 0xd1, 0xf1, 0xcd, 0x14, 0xd1, 0x3c, 0xc2, + 0x7e, 0xf9, 0xfa, 0x04, 0xdd, 0x53, 0x9a, 0x98, 0x37, 0x79, 0x30, 0x5d, 0xc1, 0xe7, 0x3e, 0x15, + 0xe9, 0x92, 0x44, 0x24, 0xeb, 0x11, 0xc8, 0x1e, 0xfb, 0x8b, 0x46, 0xf0, 0xa9, 0x46, 0x67, 0xec, + 0x56, 0xbc, 0x26, 0x22, 0x08, 0x71, 0x31, 0x4f, 0x35, 0x04, 0x54, 0xc4, 0x5d, 0x1e, 0x17, 0xd4, + 0xd2, 0xe8, 0xc8, 0x8b, 0xec, 0x8d, 0x28, 0xe9, 0xcd, 0x05, 0x5b, 0x06, 0xeb, 0x5c, 0x5e, 0xbc, + 0x63, 0xf8, 0x3e, 0xa8, 0xa8, 0x29, 0x88, 0x20, 0xbf, 0x03, 0x2c, 0x15, 0x6e, 0x58, 0x04, 0x3b, + 0x24, 0x45, 0x68, 0xbe, 0x92, 0xb4, 0x2e, 0x49, 0xe9, 0x0a, 0xf3, 0x32, 0x3a, 0xcd, 0x67, 0xcc, + 0x82, 0x63, 0x93, 0xc5, 0x46, 0xb4, 0x9e, 0xec, 0x8d, 0x94, 0x8f, 0xfd, 0x3f, 0x83, 0x6d, 0x0d, + 0x41, 0xe4, 0xb7, 0x42, 0x60, 0x75, 0xc4, 0xd8, 0xc3, 0xda, 0x72, 0x15, 0xbe, 0x71, 0xc8, 0xd9, + 0x44, 0x5a, 0x84, 0x38, 0x9e, 0x4b, 0xb7, 0xf4, 0x40, 0x19, 0xc2, 0x53, 0x15, 0x52, 0xca, 0xaf, + 0x89, 0x32, 0xfe, 0xc7, 0x91, 0x5a, 0xf0, 0x34, 0xe1, 0x48, 0x5a, 0xb7, 0xf6, 0x40, 0xe9, 0x15, + 0xef, 0xb6, 0xf2, 0xce, 0xf7, 0x4f, 0xb4, 0x7b, 0xb7, 0x44, 0xe7, 0xcb, 0x91, 0xf4, 0xd6, 0xd0, + 0xfc, 0xa2, 0x48, 0x3a, 0x5f, 0xff, 0x2f, 0x54, 0xf2, 0x3e, 0x48, 0xe5, 0x2a, 0xed, 0x41, 0xc2, + 0xad, 0x56, 0x3f, 0xe1, 0xd6, 0x99, 0x38, 0x6a, 0x55, 0xc8, 0xab, 0x51, 0x49, 0xd3, 0x71, 0x6b, + 0x85, 0x3e, 0xbe, 0x93, 0x3c, 0xb6, 0xb3, 0x44, 0x29, 0x87, 0xab, 0x49, 0x5b, 0xda, 0xd1, 0x28, + 0xb4, 0x14, 0xa6, 0xf7, 0xf0, 0x77, 0x4f, 0x73, 0xfc, 0xe9, 0x29, 0x81, 0xd3, 0xaf, 0x7b, 0x96, + 0x74, 0x71, 0xe3, 0xe3, 0xd9, 0x59, 0x1a, 0x94, 0x37, 0x0f, 0x7b, 0xa5, 0xfc, 0x3c, 0x51, 0xcc, + 0x85, 0x1b, 0xe7, 0x24, 0x37, 0x7b, 0x84, 0x47, 0x15, 0x28, 0x3f, 0x4a, 0xb0, 0x58, 0x7e, 0x48, + 0x09, 0xf1, 0xa9, 0xdc, 0xf5, 0x29, 0x28, 0x7f, 0x1d, 0x79, 0x86, 0x63, 0x8c, 0x27, 0xde, 0x47, + 0xac, 0xf7, 0xff, 0x30, 0x56, 0xfa, 0xe0, 0x2e, 0xa4, 0xad, 0xda, 0x09, 0xc4, 0x1a, 0x27, 0xf1, + 0xff, 0xb4, 0x8e, 0x35, 0xe2, 0xda, 0x47, 0xf8, 0xdb, 0xa2, 0x9d, 0x63, 0x6a, 0x38, 0xc9, 0xbe, + 0xb7, 0x88, 0x12, 0x01, 0x43, 0x84, 0x5e, 0x87, 0x0a, 0xe5, 0x2b, 0x33, 0xd7, 0x35, 0xc2, 0x1e, + 0xf2, 0xba, 0xc5, 0x58, 0x3f, 0x0b, 0x2f, 0x5f, 0xdf, 0xa8, 0x82, 0x6d, 0x4c, 0xc9, 0xcf, 0x4d, + 0x30, 0x3b, 0x33, 0xf6, 0xd8, 0xb7, 0x78, 0x66, 0x58, 0xfa, 0x27, 0x8c, 0x0b, 0xe5, 0x01, 0x73, + 0x08, 0x68, 0xaf, 0xfa, 0x9a, 0xf3, 0x8b, 0x75, 0x88, 0xb2, 0x67, 0x60, 0x1b, 0xba, 0x98, 0x0b, + 0x2e, 0x80, 0x66, 0x15, 0xbe, 0x7e, 0x21, 0x12, 0xc2, 0xd5, 0x06, 0xd6, 0xf5, 0x42, 0x7e, 0x36, + 0x79, 0x90, 0x97, 0xfb, 0x26, 0x3e, 0xaf, 0x48, 0x84, 0x52, 0x60, 0xe5, 0xc8, 0x32, 0x78, 0xed, + 0xca, 0x97, 0x81, 0xe3, 0xbd, 0xcd, 0x11, 0x23, 0xbd, 0x19, 0xc4, 0x5c, 0xdb, 0xa4, 0x15, 0x69, + 0x53, 0x04, 0x7f, 0xb1, 0xa4, 0x17, 0xf2, 0xd8, 0xa9, 0xb8, 0x94, 0x69, 0xfc, 0xd6, 0xaf, 0x32, + 0xbb, 0x7e, 0x1e, 0x0b, 0x47, 0x23, 0xdb, 0x78, 0xda, 0x96, 0xcf, 0x18, 0x5f, 0xb3, 0x42, 0x42, + 0x5a, 0xaf, 0xf4, 0x99, 0xd9, 0xb2, 0xe9, 0x18, 0x96, 0xdc, 0xb6, 0xb2, 0x68, 0x27, 0xdd, 0x6f, + 0x1f, 0x24, 0x8e, 0x17, 0xbe, 0x1e, 0x51, 0xc1, 0x70, 0x8c, 0xf7, 0x30, 0xad, 0x29, 0x05, 0xb1, + 0xe7, 0xa0, 0xb9, 0xfb, 0x8b, 0xe0, 0x5b, 0x35, 0xe0, 0xfb, 0x36, 0x7b, 0x23, 0xaf, 0x07, 0x1d, + 0x83, 0xa4, 0xcb, 0xae, 0x1c, 0x6d, 0x96, 0x81, 0x1b, 0x79, 0x04, 0xca, 0xf9, 0x2c, 0xe0, 0xba, + 0xb4, 0x4d, 0xf4, 0x98, 0x4e, 0xae, 0xce, 0x51, 0x49, 0x96, 0x42, 0xba, 0xac, 0x5a, 0x73, 0xe3, + 0x71, 0xe2, 0xca, 0x31, 0xb5, 0x37, 0xca, 0xcb, 0x88, 0x4a, 0xab, 0x30, 0xdb, 0x3f, 0xbd, 0x45, + 0x82, 0xd2, 0x3b, 0x1a, 0xb9, 0xe5, 0xd7, 0xa5, 0x61, 0x76, 0x89, 0xda, 0x88, 0x7d, 0xb6, 0xca, + 0xa1, 0x7f, 0xd2, 0x6e, 0x0f, 0xe9, 0x33, 0x1d, 0x21, 0x5d, 0x12, 0x9e, 0x59, 0x07, 0xb6, 0x1c, + 0x2c, 0x1f, 0xd1, 0xec, 0xde, 0xfe, 0x45, 0xb3, 0x6b, 0xe4, 0x3c, 0xaf, 0x7f, 0xd5, 0xb6, 0xa9, + 0x60, 0x79, 0x9a, 0x66, 0xbb, 0x0c, 0xa6, 0xcf, 0xf6, 0x0d, 0x67, 0xf3, 0xdf, 0xa8, 0x70, 0xf9, + 0x88, 0x27, 0x06, 0xfd, 0x0a, 0x48, 0x1d, 0xf9, 0x19, 0x2d, 0x8a, 0xfc, 0x09, 0xbc, 0xbf, 0xec, + 0x4b, 0xf0, 0xfe, 0xb2, 0x42, 0xbc, 0xcf, 0xdf, 0xd2, 0x73, 0xa4, 0xe8, 0x75, 0x2a, 0xe3, 0xd6, + 0x06, 0xc4, 0xfd, 0xd8, 0x26, 0x69, 0x2f, 0x7b, 0x2f, 0x81, 0x32, 0xbf, 0xa7, 0x09, 0x39, 0x40, + 0x17, 0xb6, 0xd2, 0xc5, 0x14, 0xe0, 0x1b, 0x98, 0x36, 0x87, 0x5b, 0xd1, 0x8a, 0xf5, 0xef, 0xc2, + 0xfa, 0xc7, 0x72, 0xf5, 0xd6, 0x33, 0x4e, 0x2d, 0x42, 0x79, 0x0f, 0x79, 0x33, 0x41, 0x0f, 0xe2, + 0x2b, 0x4d, 0x80, 0x7d, 0xa8, 0xb0, 0x37, 0x29, 0x5d, 0xe0, 0x12, 0x9c, 0x91, 0x46, 0x92, 0x19, + 0xdc, 0x60, 0x16, 0xbd, 0x14, 0x92, 0x86, 0x0a, 0x97, 0x2e, 0xe4, 0x68, 0xd0, 0x18, 0xd3, 0xa0, + 0x5d, 0x2a, 0xdc, 0xb0, 0x43, 0xa7, 0x3b, 0xdf, 0x20, 0x8e, 0x54, 0xb4, 0x48, 0x72, 0x3b, 0xfa, + 0xa1, 0x3a, 0xb2, 0x4d, 0xee, 0x40, 0x6e, 0xd4, 0xda, 0x67, 0xf1, 0x57, 0x83, 0xa5, 0x31, 0xbc, + 0xfc, 0xba, 0xf7, 0x97, 0x21, 0x57, 0x15, 0x56, 0x9a, 0xd8, 0x67, 0x8e, 0x8d, 0xf8, 0x18, 0xbc, + 0xb3, 0xd0, 0x2e, 0xdb, 0x9e, 0x90, 0x78, 0xa3, 0xcb, 0xa2, 0x9e, 0x84, 0x4b, 0xba, 0xb1, 0xcf, + 0x89, 0x73, 0xc5, 0xbe, 0x7e, 0x32, 0x45, 0x3a, 0x6c, 0x01, 0x45, 0x47, 0xcc, 0xce, 0x4f, 0x1b, + 0x96, 0x4f, 0x73, 0xc4, 0xbc, 0xf8, 0xd8, 0x59, 0x8a, 0x3f, 0xd4, 0x4d, 0x32, 0xed, 0xc2, 0xcf, + 0xe8, 0x2d, 0x8e, 0xd4, 0xbd, 0x6a, 0x35, 0x9f, 0x64, 0x74, 0xa4, 0x1d, 0xbb, 0x7e, 0x90, 0x56, + 0xec, 0x4d, 0x89, 0xb9, 0x58, 0x6a, 0x39, 0x69, 0x13, 0x0b, 0xdf, 0x7e, 0x0a, 0xed, 0xe8, 0x6c, + 0xcd, 0x96, 0xa3, 0xef, 0x7f, 0xbe, 0x51, 0xd5, 0x80, 0x75, 0xf1, 0x8e, 0xf5, 0xc7, 0x0f, 0xb7, + 0x6e, 0x4a, 0xe0, 0xdb, 0xf4, 0x1c, 0x67, 0xc3, 0xad, 0x89, 0xa2, 0x3d, 0xb7, 0x34, 0xc9, 0x2d, + 0x19, 0xf9, 0x96, 0x90, 0xdc, 0x7a, 0x0b, 0x62, 0x2c, 0xb9, 0x13, 0x7f, 0x5b, 0xe4, 0xc5, 0x6a, + 0x9d, 0xce, 0x37, 0xcc, 0xb8, 0x4a, 0xb6, 0x55, 0x74, 0x39, 0x69, 0x9e, 0xd6, 0x8f, 0xa5, 0xa1, + 0x0c, 0x7d, 0x73, 0x93, 0xe4, 0x60, 0xa9, 0x42, 0x97, 0x6f, 0x75, 0xde, 0xe8, 0xc3, 0x34, 0x73, + 0x3f, 0xb8, 0x62, 0x27, 0x89, 0x2f, 0x42, 0x2e, 0x70, 0x92, 0x4e, 0xe3, 0x3c, 0x31, 0xb9, 0xff, + 0x3d, 0x4d, 0x40, 0x95, 0xa3, 0xa7, 0x68, 0x8f, 0xae, 0xd1, 0xfb, 0x2e, 0xc9, 0x5d, 0x1f, 0x97, + 0x5c, 0xa3, 0xbf, 0x2e, 0xa5, 0x0a, 0xda, 0x88, 0x86, 0x29, 0x26, 0xde, 0x61, 0x30, 0xa5, 0x4a, + 0xf5, 0xde, 0x0a, 0x79, 0x1e, 0x7b, 0x5b, 0xd0, 0xd3, 0x03, 0xf9, 0x9e, 0x7e, 0xf4, 0x8c, 0xb3, + 0x81, 0xe4, 0x6a, 0x9c, 0xb3, 0x16, 0x9a, 0x37, 0xfc, 0x6f, 0xc5, 0xff, 0x4e, 0xfc, 0x5f, 0x8c, + 0xf2, 0x7c, 0x37, 0xc1, 0xb7, 0x4d, 0x87, 0xef, 0x2f, 0x81, 0xe9, 0xee, 0x2f, 0x81, 0xe9, 0xee, + 0x2f, 0xe3, 0x65, 0x54, 0x13, 0xf5, 0xf5, 0x63, 0x2d, 0xbf, 0x82, 0x88, 0x9f, 0x20, 0x5a, 0xc3, + 0xb0, 0x27, 0x8b, 0x51, 0x55, 0x61, 0xf2, 0x5e, 0xc4, 0x93, 0x81, 0x42, 0x39, 0x87, 0xa8, 0x7a, + 0x0a, 0x4a, 0xd4, 0x02, 0x5e, 0xa2, 0xe8, 0x4a, 0x5e, 0x42, 0x85, 0xcf, 0xc6, 0x69, 0xc5, 0x94, + 0xd4, 0x4d, 0x5f, 0xc5, 0x25, 0x6e, 0x84, 0xf9, 0x65, 0x50, 0xbd, 0xeb, 0x39, 0xb9, 0x05, 0x9f, + 0x2a, 0x05, 0x94, 0xd1, 0x5e, 0xa9, 0x36, 0xe6, 0xc5, 0x35, 0x31, 0x29, 0x93, 0x1c, 0xd8, 0x0b, + 0x92, 0xc5, 0x11, 0xf3, 0xbb, 0xa5, 0xe0, 0x01, 0xe4, 0xa4, 0x6f, 0x0f, 0x4b, 0xb5, 0xfe, 0x6e, + 0xa9, 0xfe, 0xc0, 0x19, 0x6d, 0xfc, 0xf6, 0x05, 0x12, 0x73, 0x77, 0x4a, 0x8f, 0xec, 0x4f, 0x74, + 0xc1, 0x50, 0xaf, 0xc7, 0x27, 0xc5, 0xc7, 0x7b, 0xe5, 0xe8, 0xf0, 0x72, 0x79, 0xc7, 0x70, 0xaf, + 0xe9, 0x40, 0x58, 0x89, 0xdd, 0x86, 0xf9, 0x7d, 0x33, 0x45, 0x2a, 0xd9, 0xbb, 0x60, 0xea, 0x6b, + 0x98, 0x5a, 0xf0, 0x25, 0xae, 0x83, 0xde, 0x14, 0xf6, 0x3f, 0xd2, 0x2f, 0x05, 0xd5, 0x55, 0x4a, + 0xac, 0xa6, 0x4b, 0xaa, 0x25, 0xff, 0xe5, 0xf5, 0x51, 0xf6, 0x30, 0x3c, 0x2b, 0xb9, 0xb9, 0x75, + 0x13, 0x52, 0xb1, 0x90, 0x14, 0x0c, 0x2e, 0x93, 0xea, 0xec, 0xf4, 0xd5, 0x32, 0xd9, 0xcf, 0xbc, + 0x54, 0x2f, 0xd2, 0x47, 0x2b, 0xbd, 0x47, 0xfe, 0x23, 0x24, 0xd5, 0x4f, 0x7f, 0x17, 0x63, 0xeb, + 0x21, 0xde, 0xb5, 0xc4, 0x1c, 0xce, 0xd8, 0x1d, 0x21, 0xa9, 0x36, 0x5b, 0xe7, 0xf4, 0xaf, 0x51, + 0x7a, 0x0e, 0x89, 0xf6, 0x04, 0x7b, 0xa0, 0xd1, 0x19, 0x3b, 0x7a, 0x4a, 0xaa, 0xbd, 0x2b, 0xa9, + 0xed, 0xd2, 0x53, 0xa2, 0x9c, 0x52, 0x87, 0x29, 0xe3, 0x2a, 0x79, 0xa3, 0xd8, 0xa5, 0x60, 0xfa, + 0xe6, 0x13, 0xd0, 0xc8, 0xfd, 0xa8, 0x0d, 0xa2, 0x6c, 0x4c, 0x39, 0x9f, 0x3a, 0x05, 0xd1, 0xdb, + 0x92, 0x12, 0xaf, 0x06, 0xc1, 0x4d, 0x66, 0x23, 0x7f, 0xb0, 0x95, 0xac, 0xe2, 0x09, 0x29, 0xfd, + 0xe0, 0xa3, 0x1d, 0x50, 0x94, 0x0c, 0x95, 0xb6, 0xe6, 0xad, 0x27, 0xa0, 0x32, 0xd0, 0x05, 0xf6, + 0xb6, 0xc4, 0x96, 0x13, 0x30, 0x47, 0x35, 0x06, 0x86, 0xe0, 0x99, 0x9a, 0x04, 0xc9, 0x8e, 0xd2, + 0x0a, 0xdd, 0x16, 0xde, 0xe3, 0x9f, 0x2b, 0xd5, 0x06, 0xe6, 0x4a, 0x75, 0x84, 0x95, 0x6a, 0xaa, + 0xe5, 0xa3, 0xd4, 0x6e, 0xb9, 0x5e, 0xf0, 0xfe, 0x16, 0xb0, 0xac, 0x13, 0xf1, 0xb5, 0x6b, 0x83, + 0x60, 0xd9, 0xbf, 0x36, 0x9d, 0xa2, 0x68, 0xec, 0x2b, 0xa1, 0x76, 0x96, 0x27, 0x5a, 0x3b, 0xeb, + 0x09, 0xbc, 0xbf, 0x2b, 0xaa, 0x2d, 0xf9, 0x5f, 0xaf, 0xf5, 0x1a, 0x91, 0xcf, 0x58, 0x42, 0x51, + 0xa4, 0xc8, 0x7e, 0x2d, 0x18, 0x3e, 0xfa, 0x1a, 0xf6, 0xa4, 0x37, 0x11, 0xee, 0x2d, 0x43, 0xaa, + 0x31, 0x2b, 0x6d, 0x88, 0xbe, 0x92, 0xb2, 0xec, 0x5c, 0xd0, 0xeb, 0xdc, 0xd9, 0xa7, 0xf5, 0x0e, + 0xd8, 0xd5, 0x72, 0x4c, 0x35, 0x53, 0x6a, 0x77, 0x59, 0xed, 0x3c, 0x6d, 0xc9, 0xce, 0x05, 0x03, + 0x16, 0x7a, 0xd3, 0x6b, 0xf2, 0x1b, 0x36, 0x2f, 0x20, 0x2c, 0x25, 0x6a, 0x2f, 0xe2, 0xda, 0x8b, + 0x44, 0xed, 0x45, 0x58, 0x7b, 0x2f, 0x45, 0x7d, 0xc7, 0xda, 0xcd, 0x58, 0xbb, 0x19, 0x6b, 0xb7, + 0x5e, 0xa3, 0x76, 0x73, 0x30, 0xa2, 0xd7, 0x1e, 0xe9, 0xa5, 0xf3, 0xa4, 0x99, 0x69, 0x23, 0x45, + 0x7c, 0x4e, 0x5b, 0xb1, 0x7e, 0x37, 0xd7, 0xef, 0x0c, 0x18, 0xd4, 0x4a, 0x3e, 0x67, 0x30, 0x72, + 0x4c, 0xea, 0x32, 0x84, 0xc5, 0x25, 0xa3, 0xd8, 0x86, 0x51, 0x6e, 0x43, 0x00, 0xb6, 0x50, 0x1b, + 0x22, 0x19, 0xa0, 0xd8, 0x1d, 0x2b, 0x60, 0x25, 0x08, 0x7c, 0x7d, 0xe9, 0x04, 0xcd, 0x89, 0xbd, + 0x0b, 0x6a, 0x75, 0x2b, 0xff, 0x71, 0xd6, 0xba, 0x29, 0xc5, 0xbb, 0x97, 0x3c, 0xcb, 0xe4, 0xe8, + 0xff, 0x3a, 0x61, 0xdc, 0x49, 0xfe, 0x6a, 0x82, 0xcb, 0xc0, 0x54, 0x3b, 0x17, 0xcc, 0x81, 0x79, + 0xda, 0x2e, 0xbf, 0x35, 0x11, 0xe9, 0x33, 0xfb, 0xb0, 0x2c, 0xdf, 0xac, 0xd1, 0x0d, 0xfd, 0x6e, + 0x25, 0xb6, 0x19, 0x21, 0x0f, 0x5b, 0x66, 0x4e, 0x84, 0xff, 0x4a, 0xe0, 0xe4, 0xb2, 0xdc, 0x5b, + 0x8b, 0x6f, 0xd6, 0xc8, 0x32, 0xb0, 0x8c, 0x86, 0x07, 0x64, 0x3f, 0xd4, 0xcc, 0xd3, 0xc6, 0x03, + 0x86, 0x44, 0x03, 0x7e, 0x4d, 0x16, 0x63, 0x66, 0x7c, 0xef, 0x57, 0x62, 0x5b, 0xba, 0xa4, 0xba, + 0x44, 0x43, 0xaf, 0x35, 0x11, 0xed, 0xb5, 0x27, 0x22, 0x54, 0xc2, 0xde, 0x90, 0x5a, 0x91, 0xcb, + 0x61, 0xf3, 0x99, 0xb1, 0x04, 0xeb, 0x68, 0x64, 0xc0, 0x18, 0x00, 0x55, 0x0e, 0x18, 0xb6, 0x27, + 0x53, 0x86, 0x9d, 0x91, 0x74, 0xa9, 0xb2, 0x20, 0x23, 0x5d, 0xd9, 0x1b, 0x5f, 0x1f, 0x7b, 0x59, + 0xa2, 0x9a, 0x8d, 0xed, 0xcd, 0x77, 0x35, 0x6b, 0xbb, 0x30, 0x65, 0x5c, 0x2f, 0xc9, 0xd8, 0x9e, + 0xb8, 0x2b, 0xa1, 0x8d, 0xe3, 0xda, 0xdc, 0xd5, 0x4b, 0xd2, 0xe7, 0x2e, 0xbc, 0x1b, 0xe7, 0xbb, + 0x71, 0x7b, 0x2c, 0xb1, 0x4c, 0x0a, 0xa5, 0xfd, 0xf4, 0xbd, 0x32, 0x57, 0x8a, 0x62, 0x6e, 0x13, + 0x5e, 0x5b, 0x46, 0x37, 0xf4, 0x1a, 0x48, 0xa2, 0xa5, 0x52, 0x9c, 0x31, 0xa5, 0x4a, 0x8a, 0xf3, + 0x9b, 0x2a, 0xa9, 0x55, 0x7f, 0x33, 0x9e, 0xdd, 0xd1, 0x29, 0x3d, 0xda, 0x49, 0xd0, 0x6a, 0x53, + 0x42, 0x4c, 0x9f, 0x30, 0xff, 0x00, 0xbf, 0x2f, 0x80, 0xcb, 0x39, 0xb8, 0x0e, 0x57, 0x1d, 0x3d, + 0x41, 0x9e, 0x1e, 0x10, 0x93, 0x27, 0x01, 0xb9, 0x4e, 0x69, 0x68, 0x02, 0x67, 0xf7, 0x8e, 0x10, + 0x44, 0x55, 0xdb, 0x55, 0xbb, 0x46, 0x7a, 0xc9, 0xb3, 0x56, 0x15, 0xee, 0x1a, 0xe1, 0x8a, 0xcc, + 0x62, 0xba, 0x8a, 0xab, 0x31, 0x9d, 0xe0, 0x44, 0x0d, 0xbc, 0xf3, 0x03, 0x93, 0x57, 0xed, 0xeb, + 0xf4, 0x8a, 0x5d, 0x9d, 0xfb, 0x90, 0x16, 0xa8, 0x16, 0xc1, 0xe3, 0xc1, 0x41, 0xd2, 0xdd, 0xfd, + 0xaa, 0xd2, 0x81, 0x23, 0x36, 0xda, 0x2d, 0x2d, 0xc7, 0xb2, 0x9f, 0x46, 0xbc, 0xb1, 0xdc, 0xd9, + 0x28, 0x3c, 0x13, 0x5c, 0x93, 0x63, 0x5a, 0xe5, 0x69, 0x0a, 0xf4, 0xeb, 0xf2, 0xcc, 0xa9, 0xab, + 0xe5, 0x99, 0x2d, 0xe3, 0x35, 0xfd, 0x60, 0xc5, 0x79, 0x5b, 0xba, 0xf5, 0x23, 0x96, 0x68, 0xaa, + 0xf1, 0x6d, 0xd9, 0x95, 0x12, 0x8d, 0xd7, 0xbc, 0x75, 0x9c, 0xb5, 0x5c, 0xf4, 0xb2, 0x77, 0xd4, + 0xaa, 0x73, 0xbe, 0x0c, 0x63, 0x0b, 0x7e, 0x9f, 0x70, 0x76, 0x91, 0x83, 0xb9, 0x02, 0x09, 0x2e, + 0x93, 0x4e, 0x25, 0xd6, 0x33, 0x8a, 0xd4, 0xe6, 0x10, 0xd1, 0xb8, 0x0c, 0x71, 0x1a, 0x87, 0x74, + 0xda, 0x7b, 0xad, 0xdd, 0xb3, 0xc5, 0x38, 0x8f, 0x95, 0xf6, 0x26, 0x5c, 0x09, 0x80, 0x5f, 0x97, + 0x30, 0x17, 0x79, 0x39, 0x6d, 0x76, 0x2e, 0x83, 0xa9, 0x5f, 0x9e, 0x84, 0xa9, 0x74, 0x90, 0xf7, + 0x2d, 0xef, 0x25, 0x0b, 0x06, 0x51, 0x0a, 0x96, 0x13, 0x34, 0xd0, 0x41, 0x3f, 0x73, 0x18, 0x96, + 0x4c, 0xe4, 0x45, 0xe9, 0x1e, 0xfc, 0xbf, 0x37, 0x32, 0x1c, 0x59, 0x3d, 0x2f, 0x24, 0x2d, 0x99, + 0x17, 0x96, 0x52, 0x82, 0x2b, 0xc4, 0x31, 0x63, 0x4c, 0x8a, 0xf2, 0xf2, 0x2c, 0x31, 0xda, 0x3e, + 0x1a, 0x6d, 0x93, 0xf0, 0x87, 0x56, 0xf2, 0xb4, 0x8b, 0xfd, 0xbd, 0xb0, 0xfd, 0x76, 0x4c, 0x71, + 0x49, 0xf7, 0x8c, 0xae, 0xc3, 0xb1, 0xbe, 0x90, 0x18, 0x4e, 0x0d, 0xc6, 0x57, 0x26, 0x49, 0xee, + 0xdd, 0x47, 0x7b, 0x92, 0xdf, 0xde, 0xd0, 0xba, 0xa9, 0x2a, 0xa4, 0x3d, 0x9b, 0x01, 0xfc, 0x7d, + 0xc6, 0x8e, 0xf4, 0xb4, 0x2a, 0xac, 0xad, 0x5a, 0x0e, 0x55, 0x11, 0x6d, 0x85, 0x32, 0x4f, 0x5b, + 0x81, 0x29, 0xab, 0x0e, 0xac, 0x7e, 0x6b, 0x18, 0x29, 0xed, 0x8a, 0x03, 0x3f, 0xd1, 0x56, 0xbd, + 0xb5, 0x86, 0x9e, 0xb2, 0xff, 0xce, 0x6c, 0xea, 0x5a, 0x3d, 0xcf, 0x33, 0x98, 0xf2, 0xec, 0xa1, + 0xd5, 0xef, 0x0c, 0xf3, 0xfe, 0xc4, 0x92, 0x9b, 0x1b, 0xa4, 0x14, 0xc2, 0xc4, 0x73, 0xbf, 0x38, + 0x21, 0xdd, 0x4b, 0x56, 0xcf, 0xd8, 0xe2, 0x3d, 0x55, 0xcd, 0xda, 0x1a, 0xae, 0xed, 0x7e, 0xcc, + 0x7f, 0x3f, 0xe6, 0x5f, 0x73, 0x68, 0xed, 0x3b, 0x6b, 0xb0, 0xae, 0xfb, 0x0f, 0xfd, 0x44, 0x5b, + 0xf3, 0xce, 0x30, 0x3d, 0x65, 0xff, 0xed, 0xd9, 0xd4, 0xd5, 0xf4, 0x74, 0x8d, 0x76, 0xbf, 0xc0, + 0x25, 0x3d, 0x87, 0xf9, 0x9e, 0xc3, 0x7c, 0x2f, 0xbc, 0xb3, 0x3a, 0x32, 0x3c, 0xf8, 0x8d, 0x03, + 0x6b, 0xdf, 0x5a, 0xc3, 0x7b, 0xbf, 0x4b, 0x6e, 0xc6, 0xd1, 0x52, 0x5d, 0xf6, 0xd8, 0xce, 0x7f, + 0x90, 0xee, 0x49, 0x19, 0x7f, 0xf1, 0x21, 0x8e, 0xb4, 0xd8, 0xab, 0x33, 0xe7, 0xc6, 0xd9, 0x2c, + 0xc6, 0x99, 0x79, 0x92, 0xd8, 0xad, 0x51, 0xe9, 0x9e, 0x5b, 0x13, 0xd2, 0xbd, 0x6a, 0x19, 0xef, + 0xc1, 0x5d, 0x35, 0xf2, 0x3c, 0x93, 0x06, 0xb8, 0x1b, 0x47, 0xd5, 0x86, 0x77, 0x12, 0x54, 0xa4, + 0x84, 0xd4, 0x24, 0xb3, 0x84, 0x50, 0x04, 0xd7, 0xa5, 0x50, 0x42, 0x84, 0xf3, 0x98, 0x66, 0x73, + 0x36, 0x8a, 0x73, 0xfb, 0x41, 0xdf, 0x38, 0xf9, 0xe9, 0x3a, 0x86, 0x7d, 0xef, 0xfa, 0x3a, 0xed, + 0xba, 0x1b, 0x94, 0x26, 0x5c, 0xd7, 0x1f, 0x21, 0xdf, 0x79, 0xb6, 0x1f, 0xe0, 0xa9, 0xfc, 0x59, + 0x0e, 0x73, 0x02, 0x8b, 0x44, 0x6c, 0x6b, 0xc4, 0xa3, 0x95, 0x84, 0x4f, 0xd5, 0x8e, 0x41, 0xdb, + 0xf6, 0x7f, 0x80, 0xd2, 0x54, 0x62, 0xd7, 0x3f, 0x80, 0x27, 0x15, 0xad, 0x8a, 0xe3, 0x9c, 0xc7, + 0xbe, 0xd5, 0x25, 0x75, 0x40, 0x85, 0xa3, 0x89, 0xb5, 0x3d, 0xda, 0xd3, 0x56, 0x7c, 0xae, 0x05, + 0x05, 0x7f, 0xeb, 0xc0, 0xae, 0x5a, 0xbe, 0xd5, 0x0d, 0x56, 0x7c, 0xea, 0x46, 0xc2, 0x64, 0x0f, + 0x7f, 0x08, 0x8e, 0x86, 0x0f, 0x73, 0x3c, 0xf5, 0x0b, 0xcb, 0x25, 0xd5, 0x6a, 0x0f, 0x91, 0x16, + 0x76, 0xea, 0xc7, 0x54, 0x56, 0x24, 0x92, 0x3f, 0x35, 0x4a, 0x44, 0x52, 0xb5, 0x3c, 0x3a, 0xc5, + 0xc9, 0xb1, 0xff, 0xa7, 0xb1, 0x75, 0x53, 0x4e, 0xbe, 0xd0, 0xd8, 0x37, 0x6f, 0xe1, 0x8e, 0x4a, + 0x28, 0x6d, 0xf5, 0x34, 0xb5, 0xf5, 0xc3, 0x59, 0xd5, 0x48, 0xe7, 0xaf, 0x33, 0x97, 0xb2, 0xd4, + 0xde, 0x8b, 0x77, 0xf7, 0xac, 0x20, 0xdc, 0xfc, 0xb2, 0xaf, 0x48, 0x0e, 0x15, 0x69, 0x35, 0x21, + 0x25, 0xe6, 0x73, 0x49, 0x1d, 0x72, 0xe8, 0x12, 0xf8, 0x67, 0xad, 0x09, 0xd5, 0x84, 0x91, 0x17, + 0xe9, 0x40, 0xcc, 0x3f, 0xe6, 0x97, 0xe5, 0xb0, 0xf6, 0x7d, 0xa4, 0x2f, 0xc6, 0x74, 0x9d, 0x4f, + 0x32, 0x86, 0xb4, 0xd7, 0xc9, 0x06, 0x7b, 0x49, 0xb5, 0x89, 0xac, 0x70, 0xec, 0x09, 0xb9, 0x6f, + 0x8e, 0x25, 0x0c, 0x35, 0x29, 0xb3, 0xbe, 0x4b, 0xba, 0x4d, 0xec, 0x91, 0x22, 0xb4, 0x07, 0x99, + 0xd7, 0x33, 0x47, 0x50, 0x9e, 0x34, 0x9d, 0xc5, 0x3c, 0x29, 0xe4, 0x5b, 0xc3, 0xb0, 0x34, 0x6d, + 0xc5, 0xdf, 0x74, 0xda, 0x84, 0xbf, 0xf7, 0xa5, 0xc8, 0xbf, 0x77, 0xcc, 0xdf, 0x2f, 0x75, 0x7e, + 0x7b, 0x81, 0xb4, 0x08, 0x79, 0x9a, 0xce, 0x4c, 0xeb, 0xf8, 0xda, 0x95, 0xad, 0x3b, 0x87, 0x53, + 0xc6, 0x6f, 0x0f, 0x61, 0x35, 0x9d, 0x99, 0xbf, 0x6a, 0x84, 0xf1, 0xb5, 0xc4, 0x9f, 0xc2, 0x33, + 0x29, 0x93, 0x12, 0x83, 0x2e, 0x94, 0x9c, 0x3a, 0x7d, 0x33, 0x95, 0x58, 0xad, 0x4b, 0xea, 0xfc, + 0x55, 0xc8, 0x1f, 0x22, 0x2b, 0x6e, 0x3e, 0xcb, 0x56, 0xf2, 0xf3, 0x16, 0x41, 0x4e, 0xde, 0x17, + 0x84, 0x13, 0xa4, 0xd1, 0x2b, 0x75, 0xa6, 0xdd, 0xb6, 0x20, 0x4a, 0xd6, 0xe4, 0x1b, 0x78, 0x76, + 0xda, 0x77, 0x55, 0xae, 0x0f, 0x49, 0x8e, 0xc0, 0x5c, 0x06, 0xcc, 0x45, 0xb2, 0x54, 0x17, 0x62, + 0x66, 0x63, 0xa4, 0x07, 0xcc, 0xf8, 0x6f, 0x51, 0x57, 0x11, 0x8f, 0x90, 0x99, 0x8f, 0xad, 0xa0, + 0x55, 0xb9, 0xd1, 0x27, 0xe3, 0x08, 0xec, 0xa0, 0x11, 0xf8, 0x9e, 0xc5, 0x12, 0x81, 0xff, 0x92, + 0x36, 0xe2, 0x6f, 0x32, 0x35, 0x98, 0x29, 0xda, 0x3f, 0x9c, 0x36, 0x2c, 0x77, 0xd1, 0x09, 0xf3, + 0xf4, 0x1a, 0xee, 0xa0, 0x13, 0x1f, 0xe3, 0x1d, 0x64, 0x2f, 0x40, 0xfa, 0xc0, 0x92, 0x7f, 0x48, + 0xdb, 0xf1, 0xf6, 0x38, 0xdb, 0xbf, 0x97, 0xd8, 0x7c, 0x4f, 0x40, 0x7c, 0x78, 0xf7, 0x1e, 0xac, + 0xd1, 0xcc, 0x29, 0x65, 0x22, 0xe5, 0xd5, 0xf1, 0x3b, 0x22, 0x60, 0xe1, 0x53, 0x89, 0x59, 0xf9, + 0x33, 0x89, 0xdc, 0x7e, 0x8b, 0x45, 0x85, 0x19, 0x4f, 0xe5, 0xa5, 0xc7, 0x19, 0x89, 0x84, 0xdc, + 0x5b, 0x91, 0x58, 0x9f, 0xaa, 0x24, 0x1c, 0x38, 0x63, 0x0d, 0xcb, 0x58, 0xc5, 0x08, 0x6d, 0x20, + 0x55, 0x62, 0xce, 0x41, 0x86, 0x7b, 0x4b, 0xe1, 0x8e, 0xda, 0x72, 0xc3, 0x8e, 0xe1, 0xb4, 0x45, + 0xec, 0xed, 0x4f, 0xd1, 0x4e, 0xd1, 0xfe, 0x69, 0xbb, 0x3f, 0xb4, 0xa7, 0xa9, 0xef, 0xff, 0x38, + 0x20, 0xb3, 0x64, 0x7c, 0x0d, 0x41, 0x52, 0x1a, 0xa6, 0x6a, 0x94, 0x46, 0xd6, 0x82, 0xbe, 0x2e, + 0xdd, 0x28, 0x64, 0x62, 0xe6, 0x7e, 0x27, 0xf9, 0x9c, 0x2e, 0x54, 0x08, 0x75, 0x2c, 0x7b, 0xd8, + 0xed, 0x8d, 0xba, 0xb4, 0x5f, 0xae, 0x4b, 0x64, 0xe6, 0xe4, 0xd8, 0xf1, 0xa4, 0xb3, 0xc9, 0xd1, + 0x03, 0x0e, 0xea, 0xc5, 0x72, 0xe0, 0x7d, 0x79, 0x89, 0x74, 0xff, 0x8d, 0x7b, 0x4c, 0x32, 0x14, + 0xa7, 0x8d, 0x04, 0xbf, 0xaa, 0x85, 0x23, 0x57, 0x83, 0xf1, 0x45, 0xde, 0x1f, 0x34, 0x7a, 0xcd, + 0xa2, 0xec, 0xaf, 0x95, 0x78, 0x74, 0x4c, 0x79, 0xf9, 0x05, 0x2e, 0x11, 0xb2, 0x6f, 0xca, 0x17, + 0x79, 0x10, 0xb6, 0x8d, 0x1d, 0x7f, 0x9a, 0x4a, 0xa0, 0xec, 0x9a, 0xa1, 0x51, 0x32, 0x2e, 0xde, + 0x21, 0xb8, 0x7b, 0xb7, 0xe0, 0xee, 0x8d, 0x8d, 0x89, 0xa2, 0x5e, 0x98, 0x61, 0x55, 0x9a, 0x14, + 0x97, 0x90, 0x8a, 0x24, 0xe0, 0xbe, 0xa2, 0xa4, 0x0a, 0x2f, 0xf0, 0x5e, 0xc9, 0x8f, 0x0b, 0xe5, + 0xb3, 0x7f, 0x5d, 0x6e, 0x6f, 0x72, 0xcc, 0x05, 0x8a, 0x32, 0x71, 0xb0, 0x75, 0x93, 0x88, 0x50, + 0x4a, 0x5e, 0xb8, 0xc9, 0x9f, 0x4a, 0xf8, 0x8c, 0xb6, 0xa3, 0xe1, 0x8c, 0x36, 0x39, 0x48, 0x71, + 0x2b, 0xfb, 0xb4, 0x27, 0x88, 0x06, 0x11, 0xc4, 0xa4, 0x5a, 0xb9, 0x7d, 0x2b, 0x39, 0xda, 0x3b, + 0x8f, 0x9b, 0xd8, 0x31, 0xae, 0x22, 0xbb, 0x5e, 0x1b, 0x79, 0xea, 0x4c, 0x57, 0xdf, 0x38, 0x04, + 0x45, 0xda, 0x4e, 0xfc, 0xbd, 0x41, 0xfb, 0x55, 0x55, 0x93, 0xb6, 0x0b, 0xb9, 0x89, 0x31, 0x31, + 0xef, 0x79, 0x49, 0xd0, 0x13, 0x9b, 0x87, 0x92, 0xa1, 0x0a, 0xc5, 0x9b, 0x11, 0xef, 0xf4, 0xe7, + 0xbd, 0xe5, 0xe2, 0x08, 0x24, 0xe9, 0x94, 0xce, 0x18, 0x2f, 0x6c, 0xe9, 0xb1, 0xd7, 0x95, 0x26, + 0x6a, 0x99, 0xb3, 0x8b, 0x5a, 0x2a, 0x74, 0xc6, 0x1c, 0x55, 0x50, 0xa9, 0xca, 0xce, 0x26, 0x6c, + 0xed, 0xbd, 0x5f, 0xd8, 0xda, 0xe8, 0x9f, 0x6c, 0xad, 0x9d, 0x67, 0x01, 0xb9, 0x43, 0x92, 0x3d, + 0x38, 0x62, 0xde, 0xac, 0x3c, 0x0c, 0x44, 0x22, 0x2b, 0x24, 0xd5, 0xb0, 0x5c, 0x8a, 0x34, 0x4c, + 0x6f, 0x65, 0xa2, 0x21, 0x05, 0x86, 0x23, 0xf6, 0x18, 0x61, 0x65, 0xa9, 0x23, 0x6d, 0x65, 0x1c, + 0x7b, 0x0e, 0x71, 0xec, 0xf9, 0x01, 0x30, 0xec, 0x61, 0xbc, 0x4d, 0xb0, 0x1b, 0xfa, 0xc2, 0x76, + 0x39, 0xb3, 0xb5, 0xe6, 0xda, 0x15, 0x04, 0x05, 0x60, 0xfa, 0x4e, 0x8c, 0x61, 0x25, 0xe3, 0x5c, + 0x19, 0xe5, 0x79, 0x30, 0xf4, 0xe6, 0xbf, 0x10, 0xd2, 0x5a, 0x7c, 0xa5, 0xe1, 0xca, 0xfc, 0x11, + 0x67, 0xcc, 0x57, 0x25, 0x45, 0xd2, 0x96, 0xf6, 0x10, 0xca, 0x3e, 0x91, 0x94, 0x21, 0xd2, 0x23, + 0x85, 0x78, 0x8d, 0x3d, 0x5f, 0xb4, 0x8f, 0xac, 0x38, 0x48, 0x8e, 0x7e, 0xef, 0x75, 0x07, 0xa0, + 0x34, 0xbb, 0xaf, 0x7d, 0x18, 0x65, 0xd3, 0x7d, 0x9d, 0x9b, 0x10, 0x36, 0x9e, 0x23, 0xbc, 0xe7, + 0xec, 0x87, 0x80, 0xd2, 0x23, 0xc9, 0xae, 0x1e, 0xa8, 0x16, 0x76, 0xba, 0x30, 0xc2, 0x3a, 0x35, + 0x06, 0xa5, 0x5f, 0x7e, 0x3f, 0x41, 0x3e, 0xea, 0x4d, 0xba, 0xbc, 0xa5, 0xfb, 0x92, 0xa7, 0x9e, + 0x09, 0x8c, 0x79, 0x79, 0xb0, 0x8a, 0x7d, 0xc9, 0xf3, 0xe9, 0xda, 0xa4, 0xf6, 0xbe, 0xa3, 0x57, + 0xf7, 0x25, 0xdf, 0x92, 0xb3, 0x4d, 0x25, 0x5b, 0xf1, 0xbc, 0x65, 0x69, 0x40, 0xef, 0xcd, 0xa4, + 0xee, 0x4d, 0x9e, 0x9e, 0x3c, 0x39, 0x7f, 0xf2, 0x58, 0xc6, 0xdc, 0x6b, 0xf8, 0x93, 0xe7, 0x5c, + 0x28, 0xbb, 0xbf, 0xfb, 0xbe, 0xe0, 0x25, 0x73, 0x3b, 0x04, 0x19, 0xc5, 0x2d, 0xb7, 0xb6, 0x0f, + 0xd3, 0x3e, 0x45, 0x7f, 0x86, 0xf7, 0x56, 0x0f, 0xf3, 0xde, 0xea, 0x51, 0xc6, 0x3c, 0xaf, 0x7b, + 0xdd, 0x72, 0xcb, 0x55, 0x3b, 0x15, 0x73, 0x0a, 0xe1, 0xeb, 0x5d, 0x94, 0xf7, 0xe7, 0x75, 0x4f, + 0x3b, 0x87, 0x17, 0xfb, 0x02, 0xad, 0xfa, 0xde, 0x00, 0xef, 0x0b, 0x50, 0x9d, 0x7c, 0x16, 0x6f, + 0xc9, 0xe3, 0x2d, 0x79, 0x33, 0xed, 0x0a, 0x28, 0xb4, 0x2b, 0x10, 0x73, 0xf4, 0x4b, 0x4b, 0x9c, + 0xfd, 0x52, 0x8a, 0x77, 0x44, 0x4d, 0x59, 0x1d, 0x27, 0xe6, 0x23, 0xa0, 0x80, 0x8b, 0xd8, 0xb2, + 0x02, 0xaa, 0x1a, 0xb4, 0x11, 0xe4, 0x79, 0x1e, 0x5e, 0x09, 0x55, 0x51, 0x6d, 0x3d, 0x7e, 0xbd, + 0x1e, 0x79, 0x8a, 0x87, 0x75, 0x1e, 0x67, 0x3d, 0xf2, 0x38, 0x0f, 0x0b, 0x1e, 0x27, 0xfb, 0xef, + 0xca, 0xa6, 0xae, 0xa3, 0xa7, 0xb7, 0x7f, 0xa2, 0x6d, 0xc1, 0x5a, 0x47, 0xde, 0x19, 0xc6, 0x32, + 0x46, 0x14, 0xb3, 0x7d, 0x56, 0x64, 0xad, 0x71, 0x35, 0xf6, 0xc6, 0xff, 0xd6, 0x5a, 0x4a, 0xc7, + 0x32, 0xb6, 0x6c, 0x5d, 0xfd, 0xf8, 0xf0, 0x7d, 0x41, 0xa5, 0x5f, 0xba, 0x27, 0x03, 0x62, 0x65, + 0x93, 0x15, 0x0d, 0x8f, 0x20, 0x45, 0x01, 0x61, 0x6e, 0x84, 0xce, 0x3c, 0xa5, 0x7b, 0x75, 0xce, + 0x0f, 0xf9, 0x8e, 0x3c, 0x17, 0xc3, 0x54, 0x77, 0x7d, 0x3a, 0x90, 0xdb, 0x15, 0xcd, 0xee, 0x3b, + 0xd8, 0xff, 0x34, 0x76, 0x12, 0xf0, 0x56, 0xec, 0x49, 0x2f, 0x25, 0x68, 0xfb, 0x97, 0xc5, 0x0e, + 0x40, 0x5c, 0x19, 0xec, 0xdc, 0xd4, 0xf4, 0x19, 0x79, 0xe1, 0x77, 0x11, 0x97, 0xe1, 0x63, 0xed, + 0xce, 0x1b, 0xd2, 0x4e, 0x9b, 0x5b, 0x1e, 0x2e, 0x81, 0x76, 0xe9, 0x86, 0xb0, 0x3c, 0x9c, 0x80, + 0x54, 0x59, 0xfb, 0x0b, 0xc5, 0x1e, 0xb6, 0xcb, 0x2b, 0xf5, 0x5a, 0x58, 0x77, 0x8c, 0xa3, 0x0c, + 0xe9, 0xfe, 0xbb, 0x8d, 0x09, 0x7c, 0x9b, 0xda, 0x5b, 0xd5, 0xc2, 0x3c, 0x3b, 0xc2, 0xc1, 0xd1, + 0xa3, 0x28, 0x67, 0xd3, 0xbe, 0x60, 0x07, 0x73, 0xcc, 0xa4, 0xef, 0x01, 0x52, 0x9c, 0x2d, 0x60, + 0x88, 0x6e, 0xd4, 0x67, 0xf7, 0xf2, 0x70, 0x6d, 0x85, 0x00, 0x71, 0xeb, 0x87, 0xae, 0x9c, 0x04, + 0x02, 0x92, 0x62, 0x99, 0x47, 0xf8, 0x09, 0xbf, 0x28, 0xa3, 0xf3, 0x42, 0xe6, 0xc0, 0x1c, 0x11, + 0x7c, 0x37, 0x7d, 0xa5, 0x2b, 0x6e, 0x38, 0x98, 0x96, 0x1d, 0xa1, 0xab, 0x57, 0x9f, 0xa4, 0x73, + 0x73, 0xd9, 0xd5, 0xf7, 0xe9, 0x51, 0xa3, 0xa4, 0xfd, 0xc1, 0x11, 0x24, 0xbd, 0x73, 0x8b, 0x84, + 0xdc, 0x45, 0x29, 0x9d, 0x99, 0x2a, 0xa1, 0xb7, 0xc6, 0xed, 0xf1, 0xb7, 0x2f, 0x21, 0x5d, 0xac, + 0x70, 0xdc, 0xb6, 0x01, 0xc4, 0xde, 0xdd, 0xd1, 0x46, 0x27, 0xe8, 0xa7, 0xb0, 0x38, 0x32, 0x0b, + 0x3e, 0xa3, 0x19, 0x50, 0x66, 0xa9, 0x0e, 0xda, 0xdf, 0x72, 0x81, 0x5a, 0xe2, 0x35, 0x30, 0x6f, + 0x4e, 0x96, 0x73, 0x5b, 0x9c, 0xed, 0x59, 0xed, 0xd4, 0xd4, 0x09, 0xc5, 0xa0, 0xfb, 0xc9, 0x3f, + 0x84, 0x70, 0x44, 0xb4, 0xa3, 0x28, 0x39, 0xf6, 0xcf, 0x87, 0x5a, 0x37, 0xa9, 0xad, 0x7f, 0x5a, + 0xb6, 0xfa, 0x34, 0x48, 0x34, 0x1d, 0xdb, 0x44, 0xd2, 0x0c, 0xb6, 0x2c, 0x1b, 0x0b, 0x66, 0x8b, + 0x1e, 0x31, 0x49, 0x85, 0x7f, 0x3f, 0x87, 0x7c, 0x0e, 0xd2, 0x7e, 0xe4, 0xb1, 0xf0, 0x97, 0xb5, + 0x0a, 0x6a, 0x12, 0x91, 0xf4, 0x1c, 0xbc, 0x7b, 0x24, 0xe5, 0xf1, 0xc4, 0x10, 0x9a, 0x2a, 0x95, + 0x9f, 0x68, 0x5d, 0xf3, 0xb0, 0x1c, 0xa9, 0x92, 0x31, 0xfa, 0x23, 0x6a, 0x29, 0xbf, 0x25, 0x7e, + 0xa9, 0xcb, 0x13, 0x73, 0xbe, 0x28, 0x95, 0xce, 0x6b, 0x96, 0x4a, 0xf9, 0x5b, 0x78, 0x2f, 0x98, + 0xf8, 0x89, 0x36, 0x88, 0xd7, 0x80, 0x83, 0xf0, 0x46, 0xec, 0xe6, 0x46, 0xf0, 0xe0, 0x9b, 0xde, + 0xb4, 0x59, 0x8c, 0x5c, 0xbd, 0xdc, 0xb9, 0x89, 0xa5, 0xcc, 0xca, 0xc8, 0x48, 0x60, 0x08, 0x4a, + 0xdf, 0x79, 0x95, 0xa3, 0xd7, 0x99, 0xe3, 0xcb, 0x40, 0x11, 0xdc, 0x02, 0xf2, 0xc8, 0x09, 0xa8, + 0x8c, 0x3c, 0x0f, 0xe5, 0x99, 0xf2, 0x89, 0x07, 0x6e, 0x0d, 0x41, 0xa9, 0xbd, 0x98, 0x20, 0x5d, + 0x2a, 0xbf, 0x35, 0x8c, 0x5f, 0x3d, 0x2f, 0x95, 0xe2, 0x6c, 0x3d, 0x35, 0x3d, 0x96, 0x11, 0xca, + 0xb8, 0xe5, 0x6c, 0xc1, 0x10, 0x20, 0x2d, 0x5b, 0xf2, 0xfa, 0x30, 0xd9, 0x89, 0x7c, 0x05, 0x9c, + 0x5a, 0xaf, 0xc2, 0xc9, 0xc6, 0xe4, 0xdd, 0xda, 0x04, 0x79, 0x34, 0x70, 0xf5, 0x21, 0x27, 0x53, + 0x66, 0x27, 0x2f, 0xee, 0x52, 0x8e, 0x27, 0xad, 0x73, 0x92, 0x06, 0x93, 0x53, 0xc1, 0x39, 0x94, + 0x86, 0xaf, 0x7a, 0x27, 0x7c, 0xfb, 0x9f, 0xcb, 0xd8, 0xaf, 0x7c, 0x43, 0x31, 0x5d, 0xa4, 0x3d, + 0x0a, 0xa7, 0xda, 0xe9, 0x5b, 0x8f, 0x23, 0xf7, 0xf6, 0x72, 0xfc, 0xd6, 0x90, 0xe4, 0xc3, 0xf7, + 0x8f, 0x64, 0x6c, 0xf1, 0x10, 0xbd, 0x9d, 0x31, 0x71, 0xc5, 0xdb, 0x00, 0xbe, 0xcd, 0xc4, 0xce, + 0x60, 0xbb, 0x84, 0x2f, 0x0d, 0xf3, 0x42, 0xf2, 0x64, 0x5f, 0x99, 0xdc, 0x4a, 0xf1, 0xef, 0xe0, + 0x9b, 0xda, 0x04, 0xeb, 0x2a, 0x1c, 0xe4, 0xa7, 0x39, 0xda, 0x61, 0xe4, 0xf0, 0x14, 0x7c, 0x3e, + 0x2a, 0x72, 0x93, 0x37, 0xe9, 0x5c, 0xce, 0x13, 0x9c, 0xf3, 0xb4, 0x9e, 0xf3, 0x2c, 0xe6, 0xa4, + 0x28, 0x35, 0xe7, 0x95, 0x5e, 0x99, 0x22, 0x2c, 0x73, 0xac, 0x3c, 0x1c, 0xc3, 0x00, 0x3e, 0x3b, + 0x39, 0x7e, 0xde, 0x89, 0x5c, 0x5a, 0xad, 0xbd, 0x0a, 0x02, 0xe2, 0x54, 0x0b, 0xb6, 0x33, 0xa7, + 0xf0, 0x82, 0x12, 0xbd, 0x9e, 0xf8, 0x3f, 0x6b, 0xa6, 0x74, 0x62, 0xdd, 0xcd, 0x21, 0x9c, 0x85, + 0xe7, 0x78, 0x16, 0xe8, 0xbe, 0xf4, 0xd6, 0x28, 0x18, 0x62, 0xa7, 0xc0, 0x84, 0xb3, 0x63, 0xc3, + 0xd9, 0xb1, 0x84, 0x4f, 0x81, 0xe5, 0xd6, 0x38, 0x98, 0xf0, 0x5a, 0x8a, 0x57, 0x9e, 0x31, 0xbc, + 0x2f, 0xc7, 0xfb, 0x52, 0xbc, 0x2a, 0x78, 0x75, 0x61, 0x9a, 0x03, 0xef, 0x1d, 0x78, 0xaf, 0x84, + 0x4f, 0xe1, 0x0c, 0xc6, 0xc5, 0x0c, 0x12, 0x57, 0x89, 0x2b, 0xb8, 0xe1, 0xe6, 0x21, 0x38, 0xfe, + 0x03, 0x03, 0x94, 0xdc, 0xdc, 0x0c, 0x56, 0xac, 0xd9, 0x0f, 0x33, 0x31, 0xe5, 0x5f, 0xb7, 0x7c, + 0x04, 0x14, 0x61, 0x6f, 0xec, 0xf7, 0xa5, 0xce, 0x8d, 0xb8, 0xea, 0x21, 0x39, 0x76, 0xf8, 0x83, + 0xb9, 0x3d, 0x28, 0x87, 0xac, 0x9b, 0x9b, 0x80, 0x0d, 0xcc, 0x47, 0x2e, 0x27, 0xcd, 0xef, 0xd8, + 0xe4, 0xe1, 0x63, 0xc9, 0xcd, 0x78, 0x57, 0x05, 0xb5, 0xc9, 0xcd, 0x48, 0xc7, 0x02, 0xb9, 0x31, + 0x8e, 0xe0, 0x93, 0x2f, 0xff, 0xc4, 0x94, 0x84, 0x71, 0x3f, 0x8e, 0xa0, 0x9d, 0xfc, 0xf2, 0x1d, + 0x66, 0xef, 0x2d, 0xd9, 0x34, 0x69, 0x98, 0xf0, 0xd6, 0xe1, 0x08, 0xd1, 0xce, 0xc2, 0x74, 0x8a, + 0x27, 0x82, 0xe9, 0x64, 0x9b, 0x63, 0x61, 0x4f, 0x75, 0xe4, 0xb3, 0x61, 0x47, 0x36, 0xea, 0x47, + 0xd6, 0x2e, 0x16, 0x57, 0x34, 0x45, 0x52, 0x70, 0x43, 0x60, 0xc1, 0xe4, 0xe1, 0x64, 0x72, 0x0b, + 0xdf, 0xd7, 0xe2, 0xd5, 0x2c, 0xf4, 0x82, 0x94, 0xee, 0xc2, 0xb6, 0xe0, 0x53, 0x41, 0x3b, 0x0b, + 0x5a, 0x85, 0x92, 0xd6, 0x82, 0xc9, 0xdf, 0xed, 0xe2, 0x38, 0x4a, 0x95, 0xd5, 0xbf, 0xca, 0xb5, + 0xcc, 0x8c, 0x25, 0xe5, 0xdb, 0x33, 0x8b, 0xdf, 0x97, 0x8b, 0xb8, 0x1f, 0x1c, 0x97, 0x42, 0xd8, + 0x95, 0x39, 0x90, 0x57, 0xea, 0x10, 0x1a, 0x10, 0x85, 0x51, 0x44, 0x94, 0x16, 0x9f, 0x1b, 0x4a, + 0xe2, 0xe3, 0x7e, 0x37, 0xd8, 0x74, 0xcf, 0xd8, 0x43, 0xce, 0x90, 0x13, 0xb2, 0x11, 0x44, 0x12, + 0x6b, 0xd3, 0x73, 0x7e, 0x79, 0x52, 0x4a, 0xa6, 0xcb, 0x95, 0x2a, 0x70, 0xa5, 0x4b, 0xf9, 0x5c, + 0xd3, 0x08, 0xe5, 0x8b, 0x76, 0xc7, 0x57, 0xc7, 0x77, 0x8f, 0xaf, 0xd6, 0xa3, 0x70, 0x5a, 0xbe, + 0xaa, 0xb5, 0xdd, 0x17, 0x79, 0xb9, 0xfb, 0x53, 0x1a, 0x90, 0x97, 0xe3, 0x79, 0x1f, 0x79, 0x19, + 0x49, 0xd7, 0x81, 0x7c, 0x5a, 0xd7, 0x70, 0x9c, 0x20, 0x3f, 0xbd, 0xd8, 0xcf, 0xc5, 0x58, 0x9f, + 0xea, 0x1e, 0x80, 0xa5, 0xa4, 0xed, 0xe8, 0xf6, 0x42, 0xaf, 0xc7, 0x0b, 0x19, 0x9c, 0x85, 0x95, + 0x98, 0x7f, 0xd8, 0x51, 0x0d, 0x8b, 0x5d, 0xd5, 0xd0, 0x99, 0x18, 0x80, 0xfb, 0xd3, 0x4b, 0xbc, + 0x43, 0xc3, 0xf2, 0xcd, 0x9f, 0x83, 0xdb, 0xdb, 0x00, 0x01, 0xf6, 0x98, 0x53, 0x6d, 0x73, 0x49, + 0xff, 0x43, 0x06, 0x90, 0x6f, 0x0a, 0x41, 0xb5, 0x77, 0x99, 0xdc, 0x06, 0xad, 0xde, 0x66, 0xa8, + 0xf5, 0x26, 0x20, 0xe8, 0x6d, 0x41, 0x29, 0x20, 0x06, 0x51, 0x6f, 0x23, 0xc4, 0x49, 0x6f, 0xce, + 0xbb, 0x10, 0x7c, 0x8e, 0x2e, 0x39, 0xb3, 0x43, 0xf7, 0x4a, 0x5a, 0xe0, 0x6b, 0xc3, 0x9d, 0xb3, + 0x3b, 0xce, 0x90, 0x2e, 0x3e, 0x5b, 0x4e, 0x94, 0xb3, 0x5c, 0xee, 0x4d, 0xdb, 0x88, 0x43, 0xb2, + 0xcd, 0x52, 0x12, 0x98, 0xaf, 0x83, 0xf8, 0x23, 0xec, 0x61, 0xc7, 0xa8, 0xf0, 0xc6, 0x5a, 0xd0, + 0x1a, 0x4f, 0x83, 0xbd, 0x1f, 0x5b, 0x33, 0xb7, 0xa0, 0x35, 0x5f, 0xd2, 0x0e, 0xaa, 0x53, 0x68, + 0xa2, 0x93, 0xa6, 0x8c, 0xb0, 0xab, 0x9e, 0x3a, 0xd2, 0xba, 0x09, 0xcb, 0x5e, 0xce, 0x27, 0xd0, + 0x52, 0x7a, 0xf1, 0xad, 0xb8, 0x66, 0x1e, 0xb2, 0x83, 0xe9, 0xeb, 0xba, 0xd6, 0xb8, 0xd2, 0x07, + 0x06, 0xe1, 0x19, 0x46, 0x68, 0xf3, 0x4e, 0xf5, 0xe6, 0x52, 0xac, 0xc2, 0x2a, 0x70, 0xea, 0x59, + 0xaf, 0x4c, 0x9e, 0x4c, 0xbc, 0xec, 0xd3, 0xc4, 0x3b, 0x33, 0xd8, 0x0b, 0xb2, 0xd7, 0x5a, 0xdb, + 0xc1, 0x56, 0x7e, 0x63, 0x53, 0x65, 0xb8, 0x6e, 0x4d, 0x28, 0x03, 0x7e, 0x53, 0xf5, 0x17, 0x94, + 0x66, 0xd5, 0x4b, 0x9b, 0xf3, 0x65, 0xdf, 0x5e, 0x3e, 0x42, 0xd6, 0x5f, 0xba, 0xff, 0x60, 0x5f, + 0x4e, 0xbf, 0xd6, 0xe6, 0x14, 0x51, 0x9e, 0xed, 0x3c, 0x56, 0x52, 0xda, 0x1c, 0xe9, 0x86, 0x12, + 0xfc, 0x2f, 0x55, 0x2b, 0xda, 0xda, 0xdb, 0x7a, 0x40, 0xbe, 0x1b, 0xd7, 0xf7, 0xdd, 0x3d, 0xba, + 0x6f, 0xb9, 0x12, 0xfe, 0x2d, 0xbd, 0x9d, 0xd6, 0xbc, 0x19, 0x7f, 0x8d, 0x60, 0xe1, 0x7d, 0x2d, + 0x29, 0x55, 0xa6, 0x74, 0x4d, 0xf3, 0x84, 0x6b, 0x60, 0x4f, 0xb8, 0x24, 0xcf, 0x95, 0x88, 0x73, + 0x6f, 0xf8, 0x11, 0x9f, 0x97, 0xba, 0x90, 0xfe, 0x83, 0xa6, 0x91, 0xf7, 0xff, 0xf1, 0x93, 0x3c, + 0x63, 0xc4, 0x8b, 0x21, 0x0f, 0x89, 0x12, 0x2b, 0xf9, 0x62, 0x2b, 0xee, 0x47, 0xc9, 0x16, 0xbf, + 0x34, 0xf0, 0xf9, 0xb2, 0x99, 0xfd, 0xff, 0xcb, 0x5e, 0xa4, 0xdc, 0x23, 0xa7, 0xf4, 0x3d, 0x44, + 0xed, 0xdb, 0x4b, 0x75, 0x7d, 0xa1, 0xf7, 0x45, 0x59, 0x42, 0x27, 0xe8, 0xad, 0x76, 0xf2, 0x6a, + 0x97, 0x0e, 0x58, 0x42, 0xdf, 0x9f, 0x5a, 0xe2, 0xe4, 0xb3, 0x8b, 0xe0, 0xf7, 0xb5, 0x61, 0x7e, + 0x67, 0x1c, 0xd6, 0xf0, 0x8e, 0x38, 0xad, 0x6c, 0x0a, 0x9d, 0xdf, 0xaa, 0x56, 0xd6, 0xae, 0xb6, + 0xaa, 0xa2, 0x6f, 0xa4, 0xa5, 0x5e, 0x12, 0x1d, 0x47, 0x0e, 0xfc, 0xd9, 0x2b, 0x5a, 0x6a, 0xc1, + 0x96, 0x9a, 0xa6, 0xb5, 0x94, 0x7c, 0x93, 0x16, 0x71, 0x4b, 0x0d, 0xdc, 0x47, 0xcc, 0xc3, 0x2d, + 0x35, 0xe8, 0x2d, 0x35, 0x7e, 0x69, 0x4b, 0x71, 0x54, 0xc9, 0xdf, 0xde, 0x9f, 0xd1, 0x56, 0x9b, + 0xde, 0x56, 0x9b, 0xde, 0x56, 0x5b, 0x46, 0x12, 0x7a, 0xcd, 0xdf, 0xd9, 0xc4, 0xf6, 0x9d, 0x03, + 0x08, 0xbd, 0x5e, 0xa8, 0xc5, 0x95, 0x18, 0xc4, 0x15, 0x17, 0x77, 0xf6, 0x82, 0x5d, 0xf7, 0xfb, + 0x0b, 0xa6, 0xaf, 0x31, 0xe7, 0x7b, 0x71, 0xb9, 0xeb, 0xe0, 0x26, 0xf2, 0x1e, 0x8c, 0x12, 0xae, + 0x51, 0xf7, 0x7d, 0xce, 0xbe, 0x84, 0x2f, 0x5f, 0xd4, 0x23, 0x89, 0x01, 0x1c, 0x24, 0x8f, 0x9e, + 0x23, 0x1f, 0x15, 0xfb, 0xdc, 0xa4, 0x43, 0x1e, 0xc5, 0x3b, 0xbf, 0xc3, 0x54, 0xff, 0xb5, 0x15, + 0x50, 0x33, 0x63, 0xa5, 0xbc, 0x7f, 0xad, 0x6e, 0x8d, 0x62, 0xf6, 0x0d, 0x80, 0xe7, 0x67, 0xe3, + 0x69, 0x8f, 0xbd, 0x38, 0x1e, 0x8e, 0x84, 0x47, 0x36, 0x78, 0x61, 0xf3, 0x03, 0x5e, 0x29, 0x3b, + 0x3a, 0x16, 0xb6, 0xb6, 0x1c, 0xc0, 0xf9, 0x6b, 0x0c, 0xb9, 0xa1, 0xf1, 0x81, 0x23, 0x0f, 0xfc, + 0xdd, 0x03, 0xaf, 0x0f, 0x67, 0x0c, 0xfb, 0x86, 0xf5, 0xef, 0x2d, 0xf8, 0x7d, 0x35, 0x7f, 0x2f, + 0xe7, 0xbe, 0x5f, 0x73, 0xed, 0xef, 0x1d, 0xd0, 0xb8, 0xe6, 0xe0, 0x9a, 0xc7, 0xd7, 0xec, 0x1d, + 0x4e, 0xac, 0x4b, 0x9b, 0xf9, 0x6b, 0x79, 0xf4, 0x81, 0x94, 0x15, 0x71, 0xa3, 0x93, 0x9f, 0x0c, + 0xa3, 0x6b, 0xd2, 0x95, 0x2b, 0xa1, 0xb6, 0x0a, 0x4c, 0xd8, 0xca, 0x2a, 0x9e, 0x8b, 0x19, 0x4a, + 0x8b, 0xbd, 0xd1, 0x5e, 0xbc, 0x4a, 0xc2, 0xd5, 0xe4, 0x41, 0x0c, 0x79, 0xa9, 0x35, 0xe7, 0x19, + 0x67, 0x3e, 0xd9, 0xe7, 0x86, 0x70, 0x84, 0x3a, 0xea, 0x70, 0x2a, 0x6a, 0xbc, 0xd0, 0x86, 0x14, + 0xc2, 0xae, 0x63, 0x93, 0xf5, 0x43, 0x81, 0xa3, 0x9b, 0x90, 0x83, 0x26, 0x0d, 0xe3, 0x56, 0xfa, + 0x17, 0xa3, 0x54, 0xeb, 0x85, 0x28, 0x79, 0x1e, 0xa7, 0x37, 0xc9, 0xb1, 0x4b, 0xaf, 0x67, 0x47, + 0x4b, 0x5a, 0xe4, 0x8f, 0x1d, 0xd8, 0xeb, 0x6b, 0x98, 0xd8, 0x83, 0x39, 0x02, 0xbe, 0x99, 0x23, + 0xd1, 0x6f, 0x87, 0x8a, 0x7d, 0x58, 0x66, 0x4d, 0xbd, 0xe9, 0xe9, 0x86, 0x6f, 0x37, 0x15, 0x93, + 0x4d, 0x9d, 0x4c, 0xbe, 0xaa, 0x7c, 0x25, 0xab, 0xa0, 0x0e, 0x4c, 0xc5, 0xb8, 0x0a, 0x1a, 0x87, + 0x20, 0x38, 0xb3, 0x36, 0xfa, 0xab, 0x7d, 0x03, 0x96, 0xa0, 0x1b, 0xac, 0x2f, 0x87, 0x97, 0x56, + 0x6f, 0x6e, 0x54, 0x7d, 0x75, 0x03, 0x50, 0xfb, 0xfb, 0xdf, 0xfe, 0x6a, 0x5f, 0xbf, 0x93, 0x52, + 0xef, 0x87, 0x7a, 0xc9, 0xd5, 0x54, 0x6f, 0xf4, 0x36, 0x41, 0xf5, 0xfd, 0xd0, 0xd8, 0xf4, 0xf4, + 0x4f, 0xa1, 0x7a, 0xd7, 0xc6, 0x01, 0xd3, 0x81, 0x46, 0xd5, 0x18, 0x09, 0xab, 0xf2, 0xa0, 0x36, + 0x64, 0x78, 0xe3, 0x81, 0x74, 0x0b, 0xe6, 0x33, 0xd5, 0x36, 0xfc, 0xea, 0xd7, 0x03, 0x96, 0x7a, + 0xa4, 0x21, 0xbb, 0x22, 0x4b, 0x03, 0x5b, 0x9a, 0xd4, 0x1a, 0x2c, 0xab, 0x0e, 0xcb, 0xfa, 0x75, + 0xbf, 0x67, 0x3e, 0xf9, 0xdd, 0xf0, 0x63, 0x2e, 0xd9, 0xdd, 0x44, 0xb6, 0x30, 0xd3, 0xca, 0xfb, + 0x9b, 0x01, 0xf3, 0xc1, 0x01, 0xf0, 0x63, 0x89, 0xc4, 0x65, 0x6a, 0xd1, 0x57, 0x7b, 0x2a, 0x50, + 0xc6, 0xb0, 0xb4, 0x47, 0xe7, 0x47, 0x21, 0xd0, 0x81, 0xed, 0x51, 0xcd, 0x6d, 0x0d, 0xf3, 0x1b, + 0xa0, 0x06, 0xef, 0xeb, 0x70, 0x84, 0x67, 0xfa, 0x11, 0xc6, 0x7e, 0xbe, 0xb7, 0xdf, 0x89, 0xe3, + 0x6c, 0xc2, 0x19, 0xac, 0xf9, 0xd9, 0x2b, 0xfd, 0x15, 0xb5, 0x98, 0xef, 0xed, 0x37, 0x7e, 0xbe, + 0x77, 0xc0, 0x86, 0x6f, 0xeb, 0xde, 0x7a, 0xed, 0x67, 0xaf, 0x0c, 0x18, 0x21, 0x24, 0x81, 0x6a, + 0x90, 0x43, 0x53, 0x1a, 0xf0, 0xae, 0x3e, 0x7e, 0xeb, 0xe6, 0xd9, 0xc1, 0xd5, 0x29, 0xaf, 0xa1, + 0xb9, 0x15, 0xbe, 0x08, 0x85, 0x55, 0xae, 0xd2, 0x8c, 0x74, 0x25, 0x8a, 0x70, 0x1b, 0xcf, 0xce, + 0x17, 0x6b, 0x03, 0xdb, 0x72, 0x1e, 0xf2, 0x2c, 0x44, 0xd9, 0xc8, 0x5a, 0x93, 0xf4, 0x14, 0x07, + 0x2a, 0x59, 0x7b, 0x60, 0x76, 0xba, 0x34, 0xb0, 0x0c, 0xcc, 0x35, 0x88, 0x61, 0x9a, 0xce, 0xed, + 0x84, 0xf8, 0xf0, 0x96, 0xf1, 0x5f, 0xfc, 0x66, 0xc0, 0x43, 0xd6, 0x9e, 0x9c, 0xcb, 0xc9, 0xf8, + 0x77, 0x76, 0x7a, 0x8e, 0x5f, 0x78, 0x3a, 0x30, 0x50, 0x4c, 0xdb, 0xf8, 0xf0, 0xe6, 0xf1, 0x9f, + 0xef, 0xa7, 0x73, 0xa1, 0x68, 0x48, 0x35, 0x8a, 0x68, 0x39, 0x39, 0x8b, 0x32, 0x55, 0xf7, 0xe9, + 0x46, 0x96, 0x8d, 0x36, 0xe4, 0x46, 0x4b, 0x5d, 0xf3, 0xa0, 0x52, 0x89, 0x92, 0x05, 0x77, 0x55, + 0x17, 0x74, 0x6a, 0xbd, 0x48, 0x4f, 0x0c, 0x03, 0x50, 0x5c, 0x82, 0x57, 0x23, 0x5e, 0xcd, 0x7c, + 0xb2, 0x6f, 0x4b, 0x39, 0x0a, 0xad, 0xae, 0x52, 0x65, 0x02, 0xd3, 0x6a, 0x8d, 0x28, 0x09, 0x85, + 0x16, 0xed, 0x8b, 0xaf, 0x8f, 0xef, 0x8b, 0xae, 0x57, 0xe5, 0x21, 0xa9, 0xba, 0x0a, 0xec, 0x4a, + 0xd3, 0x5d, 0xad, 0x5a, 0x37, 0x47, 0x0f, 0x88, 0x92, 0xdd, 0x0c, 0x59, 0x3a, 0x1b, 0xf6, 0xb0, + 0xf5, 0xed, 0x3c, 0x28, 0xf7, 0x5a, 0x9c, 0xb3, 0x8d, 0x6b, 0x35, 0x4d, 0x5b, 0xce, 0x7e, 0x32, + 0x29, 0xf2, 0x40, 0x03, 0xe7, 0x3b, 0xe0, 0x04, 0xb1, 0x57, 0x66, 0x58, 0x8f, 0xdc, 0xe5, 0xc1, + 0x6c, 0x6e, 0x01, 0x9b, 0xbe, 0x3e, 0xed, 0x30, 0x8d, 0x96, 0xcf, 0x34, 0x40, 0x16, 0x78, 0x47, + 0xfa, 0x2b, 0x85, 0x0f, 0xdd, 0x8b, 0x6e, 0x8e, 0x28, 0xe0, 0x81, 0x6a, 0xbc, 0xf7, 0xe9, 0xfb, + 0x11, 0x8b, 0x82, 0x8d, 0x7e, 0x2c, 0xe1, 0xae, 0x05, 0xda, 0x51, 0xff, 0x3c, 0xed, 0xd0, 0x5d, + 0x61, 0xed, 0xdd, 0x89, 0xd7, 0xda, 0xe3, 0x77, 0xc5, 0xb5, 0x63, 0x64, 0xdf, 0x75, 0x57, 0x48, + 0x3b, 0xee, 0x2f, 0xc1, 0xd4, 0xf7, 0x11, 0x37, 0xc9, 0xf8, 0xf4, 0xc1, 0x01, 0xec, 0x73, 0x7b, + 0x18, 0x53, 0x4e, 0x90, 0x15, 0x2e, 0xe7, 0x38, 0x49, 0x16, 0xe7, 0xc9, 0xb1, 0x4f, 0xcf, 0x61, + 0x0f, 0x7f, 0x42, 0xbb, 0x6c, 0xb0, 0x0f, 0xcb, 0xea, 0x8e, 0xee, 0xee, 0x29, 0x41, 0x6a, 0x64, + 0x69, 0x6b, 0x6d, 0xeb, 0x42, 0x8a, 0x81, 0x23, 0x8e, 0xff, 0x64, 0xf3, 0x61, 0xf1, 0x5f, 0x8f, + 0xdf, 0x9f, 0xa6, 0xe8, 0xc6, 0xf8, 0xf5, 0x47, 0xa4, 0x45, 0xca, 0x25, 0x9e, 0x25, 0x0d, 0x52, + 0x2e, 0xf1, 0x1c, 0xd7, 0x79, 0x5e, 0xaf, 0xf3, 0x42, 0xae, 0xce, 0x8b, 0xb9, 0x3a, 0x27, 0x1b, + 0xce, 0x68, 0x2f, 0x7a, 0x67, 0x72, 0x7c, 0xeb, 0x3e, 0xe4, 0xa7, 0x17, 0x68, 0x4b, 0xa8, 0xf7, + 0x97, 0xcf, 0xe1, 0x3b, 0x92, 0x8d, 0x2d, 0x43, 0x48, 0xce, 0xaa, 0xe2, 0x5a, 0x46, 0xad, 0xf6, + 0xd2, 0x0e, 0x42, 0xc6, 0x5b, 0xe4, 0x9d, 0x81, 0x39, 0xdf, 0xc7, 0xff, 0xa3, 0x8a, 0xf1, 0xdf, + 0x37, 0xc4, 0xff, 0xda, 0x04, 0x38, 0x1a, 0x38, 0x37, 0xfc, 0xed, 0xd8, 0xa7, 0xf1, 0xb6, 0xf5, + 0x64, 0xfd, 0x67, 0xef, 0xd3, 0x96, 0xbc, 0xdc, 0xa7, 0xa5, 0xfa, 0xf6, 0xe3, 0xaa, 0xc4, 0x5e, + 0x98, 0x8c, 0xec, 0x0f, 0x68, 0x07, 0x5e, 0x4d, 0x8b, 0x7e, 0x1d, 0x7f, 0x30, 0xfe, 0xeb, 0xe8, + 0x83, 0x3e, 0x2b, 0xc5, 0x4a, 0xfc, 0xd3, 0x6d, 0x24, 0xdf, 0x7a, 0x37, 0x5f, 0xd2, 0x5e, 0xa4, + 0xf9, 0x2d, 0x21, 0x7e, 0x46, 0x02, 0xf9, 0xc6, 0xb0, 0xb6, 0xbd, 0xaa, 0x57, 0x6e, 0xd3, 0x26, + 0x50, 0x4a, 0xde, 0x59, 0xd5, 0xa0, 0xbd, 0x5c, 0xd5, 0xac, 0x8d, 0x63, 0x6f, 0x28, 0x8a, 0xdd, + 0x5e, 0xbc, 0x1e, 0xc5, 0xeb, 0xfe, 0xaa, 0x26, 0xed, 0x8d, 0xaa, 0x98, 0xb6, 0x23, 0xcf, 0xd7, + 0xc8, 0x4b, 0x0a, 0xf6, 0x69, 0x5e, 0xcc, 0xf1, 0x35, 0x20, 0x27, 0x22, 0x3f, 0xd1, 0x2e, 0x25, + 0x7a, 0x90, 0xb3, 0xa9, 0x60, 0xab, 0x59, 0x6f, 0xba, 0x44, 0xe7, 0x6c, 0x9a, 0x31, 0xe7, 0x25, + 0x86, 0x97, 0x41, 0x94, 0xc1, 0x84, 0x47, 0x9e, 0xcc, 0x57, 0x6f, 0xb5, 0xbd, 0x37, 0xcf, 0xf7, + 0xdc, 0x18, 0xc2, 0x56, 0x7f, 0x95, 0xf6, 0x52, 0x9d, 0x2f, 0x7a, 0x50, 0x82, 0x14, 0x3c, 0x90, + 0xf4, 0x82, 0xf0, 0x17, 0x10, 0xdd, 0xd7, 0x3d, 0xe8, 0x95, 0x73, 0x5c, 0x0e, 0x42, 0xcb, 0x27, + 0xeb, 0xfd, 0xdd, 0x20, 0x07, 0xdb, 0x7c, 0xd8, 0x82, 0xf0, 0x85, 0x0d, 0x9a, 0x57, 0x0e, 0x62, + 0x0b, 0x28, 0x36, 0x04, 0xeb, 0xb9, 0x9a, 0xbc, 0x45, 0x9e, 0x20, 0x1c, 0x1f, 0x0d, 0x92, 0xad, + 0x8b, 0xaf, 0x0d, 0xdf, 0xc9, 0x98, 0xdf, 0xd8, 0x70, 0xe1, 0x09, 0x8d, 0xbd, 0x1d, 0xaf, 0x41, + 0x4e, 0x06, 0xbf, 0x8c, 0x67, 0x4e, 0x4c, 0x89, 0xdc, 0xf6, 0xc6, 0xe4, 0xa3, 0xed, 0xd4, 0x9b, + 0x6e, 0xb6, 0x28, 0xa6, 0x53, 0x97, 0x3d, 0x57, 0xd4, 0x58, 0x4a, 0x70, 0x81, 0xf3, 0x28, 0xa5, + 0x5b, 0xa9, 0x6e, 0x5f, 0xdb, 0xd5, 0x75, 0x56, 0x8b, 0x3a, 0x9b, 0x92, 0x23, 0x7f, 0xaa, 0x75, + 0xe4, 0xc7, 0xb8, 0xad, 0xed, 0xee, 0x6e, 0xb6, 0xf5, 0xf6, 0x45, 0xf7, 0xa5, 0xda, 0x7c, 0x6d, + 0xf4, 0x0d, 0xae, 0x85, 0x6c, 0xcb, 0xb4, 0x2f, 0xef, 0xc7, 0xd5, 0x39, 0xa9, 0x0f, 0x6d, 0x98, + 0xe3, 0x6e, 0xd1, 0x07, 0x1f, 0xc5, 0x4a, 0xa1, 0xd1, 0xe3, 0x5e, 0x18, 0x45, 0x2f, 0xce, 0x27, + 0xaf, 0x6c, 0x7b, 0x80, 0xcb, 0x78, 0x4e, 0x2f, 0x03, 0x73, 0x18, 0x39, 0x5e, 0x87, 0x8f, 0x3c, + 0x44, 0xfa, 0x4a, 0x46, 0x70, 0x75, 0xfb, 0xd9, 0x17, 0xe8, 0x96, 0x33, 0xda, 0x21, 0xf2, 0x06, + 0xaa, 0x34, 0x20, 0x56, 0x38, 0xc8, 0xbe, 0x22, 0x0f, 0xc5, 0x77, 0x2f, 0x07, 0x47, 0x8c, 0x61, + 0x24, 0xeb, 0xff, 0xde, 0xe5, 0x35, 0x20, 0x06, 0x39, 0xce, 0xde, 0x19, 0x8e, 0x79, 0x67, 0xe2, + 0xfd, 0xbb, 0x7c, 0x7f, 0x14, 0xcb, 0x2f, 0x16, 0x78, 0x48, 0xf7, 0x74, 0xca, 0x58, 0xe5, 0x8f, + 0x07, 0x5b, 0x37, 0xe5, 0xf1, 0xca, 0x1f, 0x0f, 0x73, 0x9c, 0x35, 0x92, 0xed, 0x6b, 0x75, 0xfb, + 0xf0, 0x17, 0x0a, 0xa3, 0xb0, 0xb8, 0x0a, 0xa2, 0xb0, 0x7c, 0x19, 0xb6, 0x9c, 0x2c, 0x67, 0x6c, + 0xa9, 0x7b, 0x40, 0x60, 0x7b, 0xba, 0x5c, 0x84, 0x15, 0x0f, 0xad, 0x86, 0x6a, 0x8e, 0xcb, 0x62, + 0xe0, 0xb8, 0x2c, 0x2f, 0x5e, 0x19, 0x97, 0xc5, 0xad, 0x63, 0x47, 0xe9, 0x38, 0xc9, 0xde, 0x22, + 0x9f, 0xc0, 0x8d, 0x55, 0xf8, 0xac, 0x9d, 0xc5, 0xdf, 0xd3, 0xc2, 0x83, 0x60, 0x02, 0xef, 0x06, + 0x40, 0x7a, 0x03, 0xaf, 0x1f, 0xe1, 0x75, 0x2f, 0xe6, 0x3f, 0x4b, 0xf5, 0x9f, 0xbf, 0xd8, 0xba, + 0xc9, 0x83, 0x5c, 0x00, 0x73, 0x40, 0x5b, 0x5e, 0x16, 0xbc, 0xc0, 0x8f, 0x11, 0x87, 0x14, 0x63, + 0x1f, 0xcd, 0xad, 0x9b, 0x4c, 0xd5, 0xc4, 0x17, 0xa7, 0x16, 0xd3, 0x9c, 0xe5, 0x66, 0x88, 0xe0, + 0x0c, 0xdf, 0x9f, 0x7b, 0x01, 0xc7, 0xec, 0x24, 0x8e, 0xee, 0x09, 0x3d, 0xa2, 0xcd, 0x47, 0x05, + 0x11, 0x6d, 0x4e, 0x5f, 0x11, 0xd1, 0x86, 0x2c, 0x4f, 0x8e, 0x0f, 0x39, 0xda, 0xb0, 0x5d, 0xf8, + 0x7f, 0xf2, 0x6e, 0xcc, 0x81, 0xff, 0x14, 0xeb, 0xc7, 0xc1, 0x11, 0x60, 0x2c, 0xd4, 0x22, 0xd1, + 0x8b, 0xe4, 0xd8, 0x67, 0xbd, 0xba, 0x7f, 0x8c, 0x4a, 0xbd, 0x45, 0xa5, 0xa2, 0x45, 0xe7, 0x56, + 0xfe, 0x89, 0x16, 0x55, 0xfc, 0xe7, 0xb4, 0x08, 0xe1, 0xe6, 0x04, 0x62, 0x88, 0x8b, 0xe2, 0x2b, + 0xbc, 0xbb, 0x84, 0x29, 0x27, 0x09, 0x67, 0x88, 0x32, 0x39, 0x82, 0xa5, 0x99, 0xe3, 0x4b, 0x17, + 0x93, 0x2d, 0x90, 0x32, 0xfb, 0x3b, 0xc3, 0xec, 0x9d, 0xd7, 0x28, 0x66, 0xf5, 0x0f, 0x64, 0xef, + 0xe2, 0x52, 0x17, 0x5f, 0x39, 0x2b, 0x7f, 0x46, 0xeb, 0x8c, 0xa2, 0x7d, 0x0c, 0x81, 0x1e, 0xb5, + 0x82, 0xf8, 0x56, 0x01, 0x79, 0x7f, 0xb8, 0x97, 0x77, 0x1a, 0x4a, 0x05, 0x14, 0xa7, 0x9e, 0x12, + 0xd6, 0x3d, 0x7f, 0xa8, 0x69, 0xdd, 0xa4, 0x1e, 0xe1, 0x28, 0x32, 0x1b, 0xd8, 0xca, 0x5c, 0x66, + 0x39, 0x16, 0x25, 0x1b, 0x61, 0xe1, 0x21, 0x62, 0x46, 0xc8, 0xdf, 0x99, 0xd2, 0x1c, 0x37, 0xa9, + 0x70, 0xb9, 0x8d, 0xac, 0x65, 0x93, 0x7f, 0x8d, 0x7c, 0xe1, 0x61, 0xe6, 0x33, 0x7c, 0xc8, 0x83, + 0x04, 0x84, 0x47, 0x6f, 0x8a, 0x70, 0x62, 0x9b, 0x89, 0x7c, 0x9b, 0xdf, 0x54, 0x21, 0xb8, 0x14, + 0x6f, 0x08, 0xc7, 0x57, 0xc4, 0x3d, 0xd1, 0x63, 0x9b, 0x60, 0x8a, 0x0d, 0x25, 0xc1, 0x52, 0xdd, + 0x57, 0x7d, 0x25, 0x79, 0x7b, 0xf4, 0x2e, 0xc0, 0x6f, 0x91, 0x23, 0x02, 0x07, 0x79, 0x4f, 0xff, + 0xee, 0x38, 0x7b, 0x03, 0x5e, 0x00, 0xae, 0xe8, 0x4f, 0xc1, 0x95, 0x8d, 0xbe, 0x51, 0x18, 0xcb, + 0x83, 0x7d, 0x41, 0xba, 0xa6, 0x7b, 0xf2, 0x72, 0xa1, 0xdc, 0x8e, 0x3c, 0xa4, 0xe0, 0x6e, 0x15, + 0x47, 0xe4, 0x9d, 0x71, 0x3e, 0x73, 0x90, 0xd2, 0x14, 0x7b, 0xcd, 0xa0, 0x52, 0x6c, 0x36, 0x19, + 0x31, 0x55, 0x25, 0xf2, 0x96, 0x73, 0xb6, 0xc7, 0xbf, 0x67, 0xd8, 0x1c, 0x27, 0x9d, 0xa0, 0xf1, + 0xdd, 0x42, 0xbe, 0x30, 0x62, 0x6b, 0xbf, 0xaf, 0xe5, 0xf7, 0xb7, 0x47, 0xbb, 0xa1, 0x22, 0x65, + 0x48, 0x34, 0xa4, 0xe7, 0xa0, 0x0c, 0x51, 0xe1, 0x6b, 0xf0, 0xc6, 0x11, 0xd6, 0xa2, 0xd8, 0x4a, + 0x8a, 0x15, 0xd0, 0x4c, 0x7b, 0x15, 0x96, 0x4a, 0x15, 0xa6, 0x2e, 0x09, 0x3f, 0x60, 0x42, 0x9e, + 0x9f, 0x5f, 0x8f, 0x6d, 0x50, 0x51, 0xa2, 0x58, 0x8a, 0xf2, 0x7c, 0x97, 0x12, 0x75, 0xbb, 0xc0, + 0x61, 0x8f, 0x79, 0x97, 0x41, 0x27, 0xf8, 0xc4, 0xf8, 0x34, 0x9d, 0x37, 0x81, 0x32, 0x0f, 0xfb, + 0x1b, 0x82, 0x4e, 0xe4, 0xeb, 0x28, 0xe6, 0x0e, 0x45, 0x39, 0x07, 0x1e, 0x8b, 0x22, 0x94, 0x92, + 0x43, 0x10, 0xf7, 0x22, 0x16, 0x80, 0x96, 0x5c, 0xcc, 0x91, 0x16, 0xec, 0x77, 0x34, 0xef, 0x73, + 0xd2, 0xe4, 0xc9, 0x7a, 0x97, 0x4a, 0xac, 0xa5, 0xfd, 0x8c, 0xd1, 0x30, 0xd1, 0xdb, 0x68, 0x13, + 0x79, 0x34, 0x15, 0xd1, 0x41, 0x63, 0x1f, 0x23, 0x0f, 0x6e, 0x46, 0x58, 0xd2, 0xa3, 0x30, 0xeb, + 0x12, 0x8b, 0x59, 0xc0, 0xd1, 0xf6, 0xc1, 0x40, 0x88, 0xd7, 0x87, 0xfc, 0xf8, 0xeb, 0xc8, 0xf5, + 0x57, 0x44, 0x1a, 0xc9, 0xa3, 0x13, 0xfb, 0x5c, 0x2f, 0xb2, 0x15, 0xe3, 0x3a, 0x7e, 0x72, 0x49, + 0x2d, 0xdf, 0x93, 0x65, 0xcb, 0xb8, 0xee, 0xd9, 0x70, 0x36, 0x71, 0x2b, 0x9c, 0x2a, 0xa1, 0x8c, + 0xf7, 0x26, 0x79, 0x90, 0xe3, 0xa7, 0xa2, 0x34, 0xfb, 0xf5, 0xb2, 0x19, 0x30, 0x75, 0xa7, 0xda, + 0xc1, 0xf7, 0xa6, 0xb4, 0x6f, 0x49, 0x29, 0xdf, 0x19, 0xd3, 0x22, 0x65, 0x06, 0xc7, 0x53, 0x62, + 0xaf, 0x5f, 0xb6, 0x99, 0xe4, 0xe9, 0x14, 0xaf, 0x66, 0x4c, 0x5b, 0xaf, 0xb6, 0xd4, 0x20, 0xc6, + 0x56, 0x8d, 0x2c, 0xef, 0x56, 0xb6, 0xad, 0x19, 0x92, 0xd4, 0x0c, 0xdf, 0xcf, 0x51, 0xcf, 0xf1, + 0x55, 0xd6, 0xdf, 0x19, 0xdb, 0xd6, 0xa8, 0x8b, 0xf8, 0xce, 0xa0, 0x9e, 0xe7, 0xab, 0x49, 0x3d, + 0xed, 0xfb, 0x9a, 0x1c, 0xd2, 0x3e, 0xab, 0x19, 0x1e, 0xc6, 0xe7, 0x9a, 0x61, 0xb5, 0x86, 0xfc, + 0xc0, 0xa7, 0x8d, 0xd0, 0x8e, 0x92, 0x9e, 0x5b, 0x6e, 0xd7, 0x3e, 0x56, 0x1d, 0xb9, 0x14, 0x93, + 0x5a, 0x8e, 0x29, 0x9f, 0xaa, 0x25, 0x64, 0xdb, 0xcb, 0x12, 0xaa, 0x69, 0x70, 0x6a, 0xcf, 0xf0, + 0xcd, 0x61, 0xa4, 0x5b, 0x1f, 0x43, 0x27, 0x4a, 0x35, 0xbe, 0xbc, 0xdf, 0xf6, 0xa9, 0xf3, 0x89, + 0x46, 0xec, 0xef, 0x61, 0x7f, 0x15, 0xcc, 0x09, 0xf6, 0x40, 0xe5, 0xf6, 0xe4, 0xf7, 0x28, 0x82, + 0x59, 0x91, 0xd2, 0x18, 0x94, 0xc8, 0x33, 0xba, 0x3d, 0xf4, 0xd4, 0x43, 0x2f, 0x6f, 0xe8, 0x35, + 0xd5, 0x48, 0x5b, 0x93, 0x64, 0x6b, 0xf4, 0x52, 0x0f, 0x54, 0xa4, 0x95, 0x3b, 0x1a, 0x80, 0x38, + 0x0b, 0x09, 0x6e, 0x4e, 0x8b, 0x68, 0x1f, 0xf3, 0x80, 0xbc, 0x0f, 0x19, 0x50, 0xee, 0x39, 0xac, + 0xfb, 0xbd, 0x25, 0x58, 0x34, 0x87, 0x4f, 0x81, 0x69, 0x21, 0xca, 0xe3, 0x2a, 0xed, 0x31, 0x1a, + 0xf1, 0x4e, 0x9e, 0x8f, 0xdf, 0x83, 0x0f, 0x6b, 0xab, 0x44, 0xb8, 0x9d, 0xb3, 0x3d, 0xb4, 0xb4, + 0xba, 0x06, 0xb6, 0x86, 0xd3, 0x6e, 0xc1, 0xeb, 0x7b, 0xa4, 0x78, 0x63, 0xa4, 0xd1, 0xde, 0x48, + 0x92, 0xee, 0x63, 0xbb, 0x11, 0x67, 0xc4, 0x21, 0x90, 0x85, 0x51, 0xb2, 0xd4, 0x57, 0x0d, 0x91, + 0x86, 0x8c, 0xe6, 0x1b, 0x46, 0x48, 0x55, 0x7c, 0x45, 0x2f, 0x61, 0x4f, 0xbe, 0x67, 0xf0, 0x79, + 0xc1, 0x47, 0x16, 0x08, 0xe3, 0x97, 0xb4, 0x02, 0x88, 0x26, 0xae, 0x3d, 0x38, 0x4c, 0x71, 0x47, + 0x13, 0x4d, 0xe9, 0xfb, 0x73, 0xf0, 0xb2, 0x7c, 0xe7, 0x0b, 0xda, 0xa5, 0xb4, 0x89, 0x31, 0xc2, + 0xcd, 0xe9, 0x14, 0xc5, 0x78, 0x22, 0xce, 0x39, 0x9d, 0xf4, 0x99, 0xd3, 0x46, 0x1c, 0x9d, 0x56, + 0xb2, 0x2c, 0xbf, 0x35, 0x0e, 0xf6, 0x41, 0xc9, 0x1b, 0x86, 0x00, 0x43, 0x67, 0x2d, 0xc5, 0xa0, + 0x4b, 0x34, 0xd1, 0x3a, 0xf5, 0xa1, 0x4c, 0x3d, 0x32, 0x8e, 0xad, 0x0a, 0x15, 0xf8, 0x85, 0xfd, + 0x18, 0x02, 0x39, 0xcf, 0xa6, 0x0d, 0x5c, 0xe2, 0x1b, 0xa2, 0x7c, 0x61, 0x03, 0xb2, 0x77, 0x98, + 0x7d, 0x9c, 0x5e, 0xca, 0xee, 0xa6, 0x28, 0x64, 0xe9, 0x5b, 0x49, 0x7b, 0x7e, 0x4e, 0xb2, 0x40, + 0xef, 0xe5, 0x7d, 0xbf, 0x4e, 0x5d, 0x67, 0x76, 0x2f, 0x3e, 0x5f, 0x11, 0xc3, 0xc8, 0x1d, 0x12, + 0x3b, 0xbb, 0xec, 0x31, 0x47, 0x89, 0x7d, 0x62, 0x82, 0xaa, 0x04, 0xd8, 0x03, 0x2f, 0xc3, 0x0d, + 0x91, 0x6e, 0xb2, 0xfe, 0x26, 0xbb, 0x6f, 0xbc, 0x93, 0xf9, 0xce, 0x28, 0xf8, 0xbc, 0x41, 0xa0, + 0x68, 0x47, 0xc2, 0x13, 0xef, 0x2d, 0x21, 0x70, 0xe2, 0xfb, 0x0a, 0xde, 0x0f, 0xa8, 0xe4, 0xdf, + 0x39, 0x9c, 0x6b, 0x4e, 0x61, 0x2e, 0x8e, 0xdd, 0x60, 0x64, 0x7f, 0x8e, 0x0a, 0xbf, 0xbd, 0xe9, + 0x9a, 0x6f, 0x25, 0x50, 0xc8, 0x82, 0x1f, 0x61, 0xf1, 0x22, 0x84, 0xa0, 0xf8, 0xae, 0x10, 0xd9, + 0xce, 0x79, 0x67, 0xd3, 0xfe, 0xc0, 0xe7, 0x27, 0x85, 0xc5, 0xf9, 0xdf, 0xfd, 0x56, 0x99, 0x8d, + 0xfd, 0x35, 0xe4, 0xfc, 0x77, 0x58, 0x1c, 0x7a, 0x7c, 0xc3, 0xbc, 0x5f, 0x6e, 0xd2, 0x2d, 0x31, + 0x0e, 0x7f, 0xff, 0xd2, 0xc7, 0xda, 0xa0, 0x79, 0x3b, 0xe9, 0x87, 0x6d, 0x29, 0xb0, 0xae, 0x5f, + 0x01, 0x1b, 0xa0, 0x11, 0xda, 0xe0, 0x5e, 0x20, 0x6b, 0xd3, 0x3a, 0x28, 0xc3, 0x67, 0x5f, 0xce, + 0xa7, 0x59, 0x85, 0x6a, 0xce, 0xdd, 0xcf, 0xb1, 0x0f, 0xab, 0x1d, 0xba, 0x3f, 0x33, 0xa7, 0x9a, + 0xc8, 0xa5, 0x57, 0xaa, 0x1f, 0xe4, 0xee, 0x65, 0xf5, 0x48, 0xee, 0xde, 0xa8, 0xbe, 0x99, 0xbb, + 0x37, 0xa8, 0x7b, 0x72, 0xf7, 0x26, 0xf5, 0x25, 0xfd, 0xde, 0x36, 0x68, 0x24, 0x7f, 0x69, 0x28, + 0xf5, 0x55, 0xf0, 0x8c, 0x94, 0x64, 0x6d, 0xef, 0x0b, 0xbd, 0x15, 0x66, 0x7d, 0x9c, 0x43, 0xd0, + 0xad, 0xc7, 0xa1, 0x62, 0xcf, 0x46, 0xf3, 0x10, 0x9f, 0x6f, 0x23, 0x4f, 0xb1, 0xf0, 0xd4, 0x20, + 0xf8, 0xe7, 0x81, 0xb2, 0xe0, 0x8f, 0xe5, 0x14, 0xaf, 0xc8, 0x26, 0x23, 0x2f, 0x0d, 0x61, 0x28, + 0xba, 0x23, 0x0c, 0x64, 0xf3, 0x6a, 0x60, 0x6f, 0xf5, 0x6e, 0x28, 0xf1, 0xb2, 0x65, 0x04, 0xd2, + 0x42, 0x1d, 0x77, 0x09, 0xbf, 0xdf, 0xbf, 0x50, 0x49, 0x23, 0x28, 0x3b, 0xc2, 0x77, 0xe0, 0x08, + 0x73, 0x64, 0xbc, 0x52, 0x80, 0x14, 0x47, 0x00, 0xa0, 0x5d, 0x66, 0x1a, 0x73, 0xa4, 0xfd, 0x67, + 0xb1, 0x34, 0x0b, 0xc3, 0x45, 0x85, 0x32, 0xcc, 0x51, 0x94, 0xcd, 0xaa, 0x72, 0x27, 0x49, 0xf3, + 0x65, 0xf8, 0x5b, 0x82, 0x2d, 0xef, 0x16, 0xf1, 0x91, 0xa0, 0x0b, 0x97, 0x63, 0x45, 0x06, 0x44, + 0xd4, 0x9d, 0x20, 0xe4, 0x5b, 0x9f, 0xf5, 0x01, 0x41, 0xad, 0xa7, 0x36, 0x63, 0x7f, 0x4d, 0x16, + 0x3a, 0x95, 0x23, 0x2c, 0x37, 0x29, 0x56, 0xe5, 0x82, 0x73, 0xe5, 0xe4, 0x87, 0xc2, 0x68, 0x09, + 0x93, 0x75, 0x1c, 0x3c, 0x8c, 0x57, 0x0d, 0xdf, 0x1e, 0xf5, 0xf5, 0x80, 0x0d, 0x7b, 0xea, 0x81, + 0xb2, 0xed, 0x1b, 0x52, 0x36, 0x7c, 0x2a, 0xe1, 0xa7, 0xf2, 0xed, 0x1b, 0x30, 0xd7, 0x2e, 0xda, + 0xaf, 0xce, 0xf6, 0x9c, 0xfc, 0x64, 0x12, 0x34, 0x79, 0xc1, 0xdf, 0x43, 0xda, 0x7e, 0xf8, 0x6b, + 0xc3, 0xd5, 0x9d, 0xed, 0xb7, 0x59, 0xe8, 0xda, 0xe9, 0x7e, 0x35, 0xb9, 0xdf, 0xb4, 0x97, 0x75, + 0x67, 0x0f, 0xf7, 0xa4, 0x87, 0x7a, 0xa2, 0xeb, 0xf3, 0x99, 0xa9, 0xdf, 0x17, 0x2f, 0x32, 0xcf, + 0x70, 0xcf, 0xb5, 0x6b, 0x98, 0x5e, 0xea, 0x3f, 0xb5, 0x5d, 0x59, 0x2a, 0x8f, 0x61, 0xbe, 0xac, + 0x17, 0xf0, 0xab, 0xc2, 0x31, 0x54, 0x38, 0x36, 0x11, 0x88, 0x51, 0xca, 0x46, 0x01, 0xcb, 0xd2, + 0x7d, 0x8a, 0xbb, 0x89, 0xab, 0xd5, 0x41, 0xd4, 0xed, 0x5a, 0xb5, 0x0f, 0xca, 0xdb, 0x9f, 0x47, + 0x4e, 0x63, 0xb9, 0xe0, 0x06, 0x9a, 0x11, 0xd2, 0x51, 0xfa, 0xb5, 0xa7, 0x97, 0x2e, 0x20, 0xde, + 0x98, 0x76, 0xd4, 0xf4, 0xb6, 0x2d, 0xfc, 0x8c, 0xa8, 0x54, 0x72, 0x6b, 0x36, 0xa2, 0xe6, 0xf6, + 0x41, 0x7d, 0xb7, 0x28, 0x40, 0xa5, 0xac, 0x70, 0x1c, 0xda, 0xc4, 0xde, 0xb8, 0xb2, 0x34, 0x6d, + 0x2b, 0xf7, 0x4c, 0xce, 0xf5, 0x8c, 0x7c, 0x72, 0xf1, 0x77, 0xbf, 0xa4, 0x3d, 0x5a, 0x57, 0x04, + 0xeb, 0x50, 0xcb, 0x0a, 0xde, 0xf3, 0xbb, 0x97, 0xf7, 0xb0, 0xc4, 0x7f, 0x45, 0xef, 0x69, 0x3f, + 0x30, 0x1b, 0x0d, 0x8c, 0x76, 0x76, 0x5d, 0x05, 0xd1, 0xd4, 0x14, 0x0f, 0x38, 0x70, 0xa5, 0x3f, + 0x0f, 0xa6, 0x54, 0xe7, 0x7f, 0x6c, 0x6c, 0x29, 0x17, 0xc1, 0x9b, 0xdc, 0x75, 0x59, 0x93, 0x2a, + 0x0a, 0x46, 0x1a, 0xf1, 0xc3, 0xa7, 0x11, 0x1e, 0xdd, 0x9c, 0x9f, 0x05, 0x8e, 0x1b, 0x27, 0x7c, + 0xca, 0x97, 0xdb, 0xdb, 0xf2, 0x71, 0xab, 0x0b, 0x63, 0x58, 0x8b, 0x88, 0xd3, 0xec, 0x17, 0xda, + 0x9e, 0xf5, 0x7f, 0x8d, 0x72, 0x42, 0x89, 0x6a, 0x47, 0x9e, 0x8a, 0x77, 0xeb, 0x11, 0x62, 0x69, + 0xb7, 0xde, 0x46, 0x78, 0x0a, 0x65, 0x5a, 0xf6, 0xc2, 0x72, 0xf9, 0x7e, 0xc2, 0x38, 0x7c, 0xe2, + 0x7a, 0x58, 0xc4, 0x23, 0xbf, 0x7c, 0x7f, 0xcb, 0x7b, 0x51, 0xdd, 0xe3, 0xea, 0x7c, 0x3a, 0xf5, + 0xf1, 0xb8, 0x68, 0x46, 0x7b, 0x61, 0x31, 0xb6, 0x58, 0xa9, 0x26, 0x9b, 0x2b, 0xf2, 0x1d, 0xf5, + 0x4d, 0xf2, 0x40, 0x62, 0x43, 0xba, 0x64, 0x6f, 0xe2, 0x88, 0x8a, 0xe4, 0xaf, 0x54, 0x78, 0xff, + 0x75, 0x31, 0xb5, 0xfb, 0x66, 0x5a, 0x21, 0xfb, 0x4b, 0x7b, 0xd3, 0x72, 0x44, 0x52, 0xb4, 0x97, + 0x18, 0xdf, 0x5b, 0x57, 0x05, 0xe6, 0xf8, 0xab, 0x43, 0xf3, 0x1b, 0x8d, 0x2c, 0x67, 0xfc, 0x08, + 0x25, 0xac, 0x16, 0x11, 0x87, 0x9a, 0x65, 0x99, 0x6f, 0xa6, 0x2d, 0x4a, 0x13, 0x7d, 0xc3, 0xfe, + 0xf7, 0x1f, 0xc1, 0xb7, 0xa5, 0xfc, 0xb6, 0x30, 0x75, 0x0b, 0xd6, 0x22, 0xe2, 0x98, 0x50, 0x9c, + 0xd0, 0xb8, 0xa3, 0x39, 0xa3, 0x51, 0xfa, 0x54, 0x2b, 0x3e, 0x95, 0x5f, 0x95, 0xdb, 0x45, 0x3b, + 0x95, 0x7f, 0xee, 0x79, 0x8c, 0xa2, 0xc7, 0x27, 0xd2, 0x7d, 0x2f, 0xbe, 0x3e, 0xfd, 0x8d, 0xee, + 0xc1, 0x62, 0x97, 0x7e, 0x56, 0x73, 0x9e, 0x7c, 0x1e, 0x92, 0x6f, 0x1c, 0xf2, 0xab, 0x43, 0xbe, + 0xe3, 0xc8, 0x5b, 0x47, 0x2d, 0xce, 0xf4, 0xce, 0x6e, 0x84, 0x0c, 0xb9, 0x2d, 0x8a, 0xb2, 0x44, + 0x00, 0xf9, 0x39, 0x17, 0x7b, 0x63, 0xf4, 0x04, 0x28, 0x26, 0xfb, 0x1e, 0x9f, 0x21, 0x3e, 0xae, + 0x84, 0xda, 0x37, 0xbc, 0x75, 0x00, 0x39, 0xb2, 0xf2, 0x1f, 0xfe, 0x66, 0x50, 0xa3, 0x16, 0x3c, + 0x11, 0xf2, 0x19, 0xc8, 0xe7, 0xa1, 0xf0, 0x65, 0x1e, 0xff, 0xf7, 0x20, 0xf1, 0xaf, 0x4c, 0xfb, + 0xc8, 0x9f, 0x62, 0xd6, 0x97, 0x22, 0xf6, 0xdf, 0x4e, 0x76, 0x6f, 0xfe, 0xd0, 0xdb, 0x13, 0x88, + 0x67, 0x6c, 0xdb, 0xbb, 0xc0, 0xf4, 0xdd, 0xbd, 0xf1, 0x75, 0xd1, 0xe8, 0xe6, 0x90, 0x90, 0x04, + 0x69, 0x3d, 0x19, 0xd9, 0x4f, 0x9c, 0xac, 0x7b, 0x8f, 0x37, 0x40, 0xba, 0xd1, 0x57, 0xa2, 0x0e, + 0x79, 0x8b, 0x28, 0xba, 0x0a, 0x45, 0xff, 0x69, 0x9a, 0xd4, 0x4a, 0x93, 0x8f, 0xd5, 0xb1, 0x9e, + 0x56, 0x22, 0x9a, 0x2e, 0xe3, 0xd8, 0x94, 0x12, 0x9d, 0x95, 0x3f, 0xe4, 0xa4, 0x78, 0x92, 0x47, + 0x58, 0xdf, 0x96, 0xa4, 0xf7, 0x91, 0x57, 0xb3, 0xf1, 0x30, 0x26, 0xda, 0xd4, 0xba, 0xc2, 0x12, + 0xa6, 0x0e, 0x7c, 0x85, 0x12, 0x4a, 0xc8, 0xef, 0x5c, 0x7b, 0x68, 0x24, 0x86, 0xdc, 0x70, 0x30, + 0x1f, 0x85, 0xd2, 0xed, 0x65, 0x8c, 0x1a, 0xc2, 0xde, 0x45, 0x5d, 0x28, 0xcb, 0x72, 0xf4, 0x2b, + 0x94, 0x2a, 0x10, 0xb3, 0x98, 0x46, 0x7b, 0x51, 0xaa, 0x35, 0x29, 0x1d, 0xd7, 0xbf, 0x4c, 0xfa, + 0x42, 0x3e, 0x11, 0x3d, 0xd2, 0xe2, 0x9b, 0x39, 0x1a, 0x1f, 0x20, 0xcf, 0x56, 0xb3, 0x69, 0xd7, + 0x29, 0x39, 0x36, 0xb5, 0x0e, 0xb1, 0x27, 0xf9, 0x67, 0xb3, 0x6d, 0x0f, 0xf5, 0xae, 0xf4, 0x49, + 0xea, 0x72, 0x94, 0xbb, 0xe3, 0xfe, 0x05, 0x8f, 0xbe, 0x16, 0xef, 0x02, 0xe9, 0xed, 0x83, 0xd8, + 0x46, 0x8a, 0x08, 0x58, 0xad, 0xef, 0x88, 0xc6, 0xc4, 0xc8, 0x53, 0xfe, 0x1d, 0xc3, 0xbd, 0xfe, + 0x20, 0x7e, 0x8b, 0x7c, 0x8e, 0x3e, 0x33, 0xe4, 0x5d, 0x2f, 0x3e, 0xee, 0x6b, 0xb4, 0x2f, 0x7c, + 0xeb, 0x20, 0xce, 0x88, 0x8b, 0x66, 0x84, 0x65, 0xfa, 0x78, 0x5b, 0xe3, 0x53, 0xa1, 0x3b, 0x1b, + 0x91, 0x52, 0x57, 0x14, 0xd4, 0x4c, 0x3e, 0xdd, 0x6c, 0xd8, 0x4a, 0x4b, 0xaf, 0xe1, 0xce, 0x10, + 0xc2, 0x4a, 0xae, 0x9c, 0x6c, 0x2d, 0x01, 0xec, 0x01, 0xb6, 0xdb, 0xf2, 0xf8, 0x7e, 0x2a, 0x51, + 0x31, 0xeb, 0x65, 0x4a, 0xa2, 0x4c, 0xfc, 0xa6, 0x04, 0xdf, 0xda, 0xec, 0x1d, 0x91, 0xdb, 0x36, + 0x40, 0x3e, 0xf6, 0x24, 0x42, 0x12, 0xd0, 0xd9, 0x91, 0xdf, 0x8b, 0x52, 0x85, 0x17, 0xca, 0xb0, + 0x4c, 0x2f, 0xf2, 0xbb, 0xb6, 0xe5, 0x10, 0x00, 0x97, 0xfc, 0xc4, 0xda, 0xeb, 0x47, 0x5d, 0x10, + 0x87, 0xb6, 0x10, 0xf2, 0x81, 0xa7, 0x05, 0xad, 0x89, 0xf8, 0xca, 0xf1, 0x7b, 0x10, 0xb1, 0xab, + 0xdf, 0xe7, 0x33, 0x8b, 0x84, 0x72, 0xbd, 0xf0, 0x4d, 0x22, 0x3b, 0xc9, 0x5e, 0x25, 0x05, 0xc6, + 0x13, 0x08, 0x35, 0x36, 0xa5, 0x81, 0x7c, 0x1a, 0x22, 0x85, 0x73, 0x52, 0x6c, 0x31, 0x84, 0x51, + 0x53, 0xf5, 0xec, 0xef, 0x3c, 0xc8, 0x9a, 0x23, 0xb2, 0x3d, 0xe2, 0x9d, 0x0b, 0xd5, 0xde, 0x12, + 0x96, 0x5b, 0x47, 0x1d, 0x91, 0x3a, 0x37, 0x58, 0x9f, 0xec, 0xd3, 0x2e, 0x22, 0x77, 0xe5, 0xac, + 0xea, 0x02, 0x8b, 0xf6, 0x81, 0xd2, 0xa7, 0x7d, 0xe0, 0x71, 0x41, 0xc0, 0xd1, 0xe1, 0x44, 0x2e, + 0x83, 0x34, 0x04, 0x29, 0x52, 0x96, 0x90, 0x1e, 0xec, 0x11, 0x3a, 0x6d, 0x64, 0x1f, 0xf5, 0xc9, + 0x6a, 0xe0, 0xbd, 0xa5, 0x75, 0x4a, 0x88, 0x71, 0xdf, 0x3c, 0xed, 0x83, 0x85, 0x93, 0x97, 0xf6, + 0x21, 0xe6, 0x2e, 0xf2, 0xce, 0x10, 0xb5, 0x20, 0xcf, 0xbb, 0x9e, 0x29, 0x34, 0xc9, 0x5f, 0x16, + 0xdd, 0xc7, 0xb1, 0x2d, 0x6d, 0xf5, 0x1a, 0xd8, 0x2a, 0xf4, 0x03, 0xb6, 0x65, 0xb2, 0x70, 0x8c, + 0x4b, 0x3a, 0xa1, 0x35, 0xa4, 0x2d, 0xde, 0xaf, 0x09, 0x3e, 0xf5, 0xce, 0xd1, 0xd6, 0x4d, 0xc2, + 0x1f, 0xb7, 0x97, 0x2c, 0xc7, 0x3e, 0x60, 0x3f, 0x64, 0xe4, 0xad, 0xed, 0x70, 0x30, 0xa4, 0x34, + 0x38, 0x45, 0xef, 0x72, 0x2b, 0xe3, 0x2e, 0xec, 0xa1, 0x76, 0xb2, 0x1e, 0x7b, 0xee, 0x9f, 0xb1, + 0x99, 0x21, 0x91, 0xb9, 0x88, 0xe9, 0x6b, 0xc3, 0xa1, 0xaf, 0x8d, 0xde, 0x00, 0x45, 0xcf, 0xcd, + 0x42, 0x36, 0xb5, 0x62, 0xec, 0xf3, 0x0b, 0x13, 0x7c, 0x8a, 0xae, 0xde, 0x53, 0x98, 0x1e, 0x9b, + 0xfc, 0xfc, 0xdd, 0xe4, 0xe6, 0x00, 0xc3, 0xfc, 0x2e, 0x94, 0xb9, 0x53, 0xe5, 0xd3, 0xa0, 0x9e, + 0xbe, 0xdc, 0x7c, 0x50, 0xc0, 0x7d, 0x1f, 0xcb, 0xf6, 0x17, 0x27, 0xe2, 0x08, 0xfb, 0x7b, 0xec, + 0xb4, 0x82, 0x56, 0x1f, 0x5f, 0x3d, 0x12, 0x56, 0xcd, 0x9c, 0xca, 0x91, 0x79, 0x7d, 0x31, 0xe4, + 0x00, 0xac, 0xdb, 0x37, 0xf4, 0x37, 0x0a, 0x18, 0x1d, 0xdd, 0xd0, 0x17, 0x45, 0x0c, 0x69, 0x71, + 0xe0, 0x68, 0xdb, 0xbb, 0x19, 0xa6, 0xe6, 0x22, 0xcf, 0x61, 0xda, 0xb2, 0x1a, 0xe1, 0xa9, 0xd2, + 0x17, 0x43, 0x68, 0xc2, 0x37, 0x6f, 0xbd, 0x8d, 0xf0, 0x74, 0x46, 0x3b, 0x9d, 0x87, 0xa7, 0x23, + 0xa1, 0x3b, 0x63, 0xc8, 0xe9, 0x95, 0xde, 0x49, 0x7e, 0x1f, 0x2b, 0x54, 0x0b, 0xe2, 0x80, 0x92, + 0x09, 0xbc, 0x47, 0x38, 0xab, 0x18, 0xbc, 0x7e, 0x6e, 0x18, 0xe6, 0xdc, 0x49, 0x27, 0x6a, 0xb4, + 0x7b, 0x6d, 0xd4, 0x7b, 0xe7, 0x17, 0xda, 0xa9, 0x86, 0x09, 0x94, 0xe4, 0x6d, 0x14, 0x13, 0xd4, + 0xd1, 0x46, 0x7e, 0x44, 0x9c, 0xbd, 0x1c, 0xff, 0x07, 0x71, 0xf5, 0x9d, 0xc4, 0xf9, 0xba, 0x71, + 0x5d, 0x94, 0x93, 0x96, 0x39, 0x62, 0xf9, 0x19, 0x16, 0x80, 0xff, 0x92, 0x2a, 0x5f, 0x5e, 0xb4, + 0x67, 0x4d, 0x2a, 0x44, 0xf4, 0x7f, 0x00, 0x0c, 0x6d, 0xa2, 0xdc, 0xf6, 0x90, 0xaa, 0xe0, 0xdb, + 0x64, 0xca, 0x9e, 0x29, 0xda, 0x33, 0x9c, 0x0a, 0xd0, 0x5b, 0x5c, 0x1d, 0x95, 0x14, 0x3e, 0x42, + 0xe4, 0x68, 0x0b, 0x51, 0x5b, 0xb0, 0x3e, 0xca, 0x97, 0x49, 0x59, 0x12, 0xbd, 0x50, 0xd1, 0x0f, + 0xd2, 0x39, 0x4c, 0xb1, 0x62, 0xca, 0x5f, 0xa7, 0x2a, 0xf0, 0x9b, 0x4a, 0xfc, 0x06, 0x4b, 0x2d, + 0xba, 0x44, 0x79, 0xc5, 0x77, 0x2a, 0x14, 0x7d, 0x84, 0xef, 0x23, 0x29, 0x28, 0xfa, 0x80, 0x6a, + 0xa6, 0x68, 0x00, 0xf8, 0x66, 0x36, 0xb8, 0xf1, 0x77, 0x26, 0x94, 0x67, 0xc2, 0x2a, 0xc8, 0xc7, + 0x13, 0x52, 0xaf, 0x55, 0x8c, 0x20, 0x79, 0x35, 0xc3, 0x6f, 0xc6, 0xa2, 0xbb, 0x91, 0x35, 0x37, + 0x93, 0x56, 0xab, 0xfc, 0x3b, 0x5c, 0x09, 0xe0, 0xc0, 0xf5, 0x1d, 0xdd, 0x93, 0x06, 0xe9, 0x02, + 0xfb, 0x67, 0xa0, 0x78, 0x54, 0x08, 0x00, 0x29, 0x23, 0xb5, 0x54, 0xa5, 0x7b, 0x83, 0x68, 0x35, + 0x62, 0x94, 0xca, 0xed, 0x21, 0xac, 0x65, 0x25, 0xcd, 0x6a, 0x7b, 0x98, 0x66, 0xbe, 0x2d, 0xc4, + 0x27, 0x89, 0x88, 0x2f, 0x10, 0xd6, 0xee, 0x6d, 0xc7, 0x7e, 0xdd, 0x49, 0x31, 0xbf, 0xb0, 0x6d, + 0xd2, 0x24, 0x7e, 0x59, 0x8c, 0xbc, 0x9c, 0xde, 0xf6, 0x14, 0x68, 0x28, 0x31, 0x17, 0x05, 0x39, + 0xe2, 0x62, 0x49, 0x76, 0x14, 0xb0, 0x34, 0xec, 0xbf, 0x0a, 0x9a, 0xdb, 0x42, 0x1e, 0xc8, 0xda, + 0x28, 0xdd, 0x44, 0xf2, 0x9e, 0x25, 0x11, 0xc2, 0xde, 0x5a, 0xdb, 0xe9, 0x9d, 0x95, 0xef, 0xe5, + 0x1a, 0x9a, 0xe7, 0xd0, 0x0f, 0xf7, 0xdb, 0x7b, 0xc9, 0xae, 0x2f, 0xfe, 0xd7, 0x1b, 0x00, 0xff, + 0x35, 0xa1, 0x27, 0x84, 0x18, 0xa3, 0xa2, 0x3d, 0x7e, 0x67, 0x1c, 0x2a, 0x7e, 0x77, 0x1a, 0x65, + 0x98, 0x6f, 0x0d, 0x03, 0xb5, 0x85, 0x7c, 0x28, 0x63, 0xb9, 0xb3, 0x52, 0x84, 0x6f, 0x2a, 0xe8, + 0x3b, 0xc2, 0x29, 0xe4, 0xcb, 0xde, 0xc2, 0xfe, 0xeb, 0xee, 0x24, 0xcf, 0xe7, 0xee, 0x08, 0xca, + 0x49, 0x83, 0x45, 0x98, 0xfa, 0x06, 0xa6, 0x7e, 0x3d, 0xd5, 0x4b, 0xf5, 0x93, 0x5e, 0x9f, 0x98, + 0x47, 0xf9, 0x61, 0x7f, 0xc8, 0x31, 0xb3, 0x9d, 0x3c, 0xc9, 0x98, 0x2c, 0x3e, 0x40, 0x06, 0xfe, + 0xbb, 0xaf, 0x6b, 0x17, 0xd3, 0xc6, 0x48, 0xa4, 0x7d, 0x4d, 0xf7, 0x47, 0xd4, 0xa6, 0x1f, 0xbe, + 0x86, 0xad, 0xc9, 0x00, 0xc4, 0x33, 0x2e, 0xd0, 0x5b, 0x83, 0x7d, 0x1e, 0xc1, 0x1a, 0x27, 0x22, + 0x38, 0x5b, 0x95, 0x77, 0x46, 0x44, 0xab, 0xe2, 0x7b, 0x22, 0xdf, 0x72, 0xc1, 0x9d, 0xa4, 0x53, + 0xe3, 0x16, 0x10, 0x26, 0x57, 0x63, 0x8d, 0x37, 0xa4, 0x22, 0xdc, 0x63, 0x13, 0xb6, 0x03, 0xa1, + 0x60, 0xca, 0xa1, 0xd7, 0x5b, 0x42, 0x65, 0xfb, 0x43, 0x3f, 0x7c, 0x4d, 0x11, 0xfd, 0xcd, 0x3c, + 0x01, 0xe2, 0x84, 0xf7, 0xf6, 0xf7, 0x29, 0x27, 0xa5, 0x46, 0x7c, 0x3b, 0xe1, 0xce, 0x66, 0xec, + 0xe7, 0x36, 0x2c, 0xa7, 0x3c, 0x65, 0xa7, 0x74, 0xd1, 0xfa, 0xcb, 0xef, 0xf2, 0x7b, 0xdb, 0x9d, + 0x98, 0xc2, 0x73, 0x62, 0xe1, 0x39, 0xd9, 0x85, 0xf9, 0x2a, 0xc8, 0x3b, 0x0b, 0xa6, 0x57, 0x52, + 0x6d, 0x97, 0x5f, 0xe2, 0x71, 0xef, 0xa0, 0x3a, 0x71, 0xe6, 0x9f, 0xf6, 0xd3, 0x18, 0x2f, 0x68, + 0x8f, 0x33, 0x3c, 0x59, 0xa9, 0xbc, 0xcd, 0xe3, 0x77, 0x2e, 0xc0, 0x76, 0x80, 0x6a, 0xc5, 0xd1, + 0xc5, 0xf6, 0xb4, 0x2f, 0xc0, 0xe7, 0x8a, 0x41, 0x89, 0x23, 0x91, 0x99, 0xf0, 0x3f, 0x37, 0xff, + 0x93, 0xf7, 0xe6, 0xfa, 0x46, 0x51, 0x02, 0xda, 0xb0, 0xe4, 0xef, 0xa7, 0x92, 0x54, 0x32, 0x8e, + 0x7e, 0xe5, 0x68, 0x9c, 0x34, 0xf2, 0xb8, 0x5c, 0x9b, 0x68, 0x3b, 0x80, 0x68, 0x9d, 0xaa, 0x30, + 0x3c, 0xc5, 0xa9, 0xb4, 0x42, 0x78, 0x9a, 0xb4, 0xd2, 0x1c, 0x52, 0x69, 0x59, 0x98, 0x82, 0x29, + 0x9e, 0xb7, 0xd2, 0xfc, 0xbc, 0x65, 0x8a, 0xe6, 0x86, 0x90, 0x0a, 0x00, 0xbc, 0x8f, 0x6f, 0x66, + 0xf2, 0x8c, 0x22, 0xfc, 0x0f, 0xde, 0x4c, 0xeb, 0x1a, 0x53, 0xdf, 0x64, 0x0d, 0x03, 0x6b, 0x9a, + 0xa0, 0x6e, 0x5e, 0xaa, 0x9c, 0x56, 0x56, 0xaa, 0x06, 0x7f, 0x2b, 0x07, 0x6a, 0x08, 0x1a, 0x2c, + 0xd7, 0x63, 0xaa, 0x47, 0x75, 0x94, 0x80, 0x51, 0xd2, 0x26, 0x2c, 0x12, 0xcc, 0x5c, 0x52, 0x8e, + 0x23, 0x50, 0xe1, 0xa4, 0x77, 0xdf, 0x82, 0x79, 0x4f, 0x40, 0xca, 0xaa, 0x1a, 0x07, 0x55, 0x5c, + 0xb7, 0x46, 0x5e, 0x53, 0x6e, 0x4b, 0x2f, 0xfd, 0xa6, 0x97, 0xf3, 0x6e, 0xd2, 0xd7, 0xd2, 0x2e, + 0xca, 0xfd, 0x36, 0xce, 0x6d, 0xe2, 0xfa, 0x74, 0x65, 0xc9, 0x30, 0xe6, 0x99, 0xc1, 0x78, 0xa1, + 0xc2, 0x4f, 0x9e, 0xc1, 0xcc, 0xed, 0x1b, 0x7e, 0xf6, 0xda, 0x40, 0x5c, 0x85, 0x4b, 0x73, 0x68, + 0x5c, 0x6b, 0x16, 0xe8, 0x69, 0xbf, 0x19, 0xa8, 0x56, 0x4d, 0xd7, 0x8f, 0x96, 0x6b, 0xe5, 0xd0, + 0xbe, 0x80, 0x62, 0xa3, 0xd5, 0xe8, 0xf3, 0xf9, 0xcb, 0xdd, 0x7d, 0x27, 0xae, 0x1f, 0x2e, 0x27, + 0x18, 0x31, 0x21, 0x5e, 0xc0, 0x6f, 0xda, 0x08, 0x26, 0x8c, 0x3a, 0xbe, 0xc1, 0xe7, 0x2c, 0x0c, + 0x63, 0x3b, 0x30, 0x25, 0x6d, 0x5c, 0x7e, 0xfd, 0x03, 0x2f, 0xc0, 0x1c, 0x6e, 0xcd, 0xcd, 0xe9, + 0x39, 0x7a, 0x6f, 0xcb, 0x78, 0xfc, 0x10, 0x52, 0xfc, 0xcf, 0xe2, 0xe8, 0xd8, 0x3b, 0x37, 0x91, + 0xaf, 0x0f, 0x94, 0x44, 0x24, 0xde, 0x39, 0x7f, 0x99, 0x77, 0x2a, 0x69, 0xff, 0xd1, 0x44, 0x3a, + 0x18, 0x4c, 0xd9, 0xd8, 0x0f, 0x32, 0x71, 0xdd, 0xa3, 0xc8, 0x97, 0xf5, 0x52, 0x54, 0x2e, 0x93, + 0x43, 0x9c, 0x52, 0x3e, 0x45, 0x74, 0xb3, 0x7a, 0x9e, 0x88, 0x3c, 0xc5, 0xa7, 0x94, 0x1e, 0xa4, + 0x25, 0x7d, 0xfa, 0xb7, 0xe4, 0x5d, 0x14, 0xa9, 0x57, 0xd3, 0x19, 0x6d, 0xbb, 0x90, 0x38, 0xd7, + 0xc5, 0x95, 0x66, 0xd6, 0x29, 0x3b, 0xe0, 0x0c, 0xb1, 0x0e, 0x29, 0xd2, 0xda, 0x22, 0x8f, 0x9b, + 0x22, 0x55, 0xb1, 0xdd, 0x29, 0xbf, 0x4b, 0x56, 0x85, 0xb4, 0x1f, 0x79, 0x8b, 0x3d, 0x21, 0x6f, + 0x35, 0x41, 0x76, 0x78, 0xf2, 0x93, 0xf1, 0xaa, 0xb8, 0xf6, 0xb4, 0xf0, 0x3a, 0x86, 0xd4, 0xf4, + 0x69, 0x3b, 0x96, 0xcf, 0x5a, 0xf7, 0x96, 0x74, 0x10, 0xa5, 0x69, 0x3b, 0xe2, 0xe0, 0x72, 0xa5, + 0x2c, 0x4d, 0x11, 0x14, 0x49, 0xeb, 0x44, 0xcf, 0x87, 0x23, 0x11, 0x23, 0xff, 0xf1, 0xbd, 0x96, + 0x8a, 0x6a, 0xc0, 0xf5, 0x58, 0x5a, 0x0d, 0x33, 0xd4, 0x5a, 0xbc, 0x37, 0xf0, 0x7d, 0xb1, 0xea, + 0x51, 0x3c, 0x72, 0x28, 0x6d, 0xa4, 0xaf, 0x54, 0x93, 0xb7, 0x98, 0x7d, 0xed, 0x3c, 0x99, 0xfd, + 0xde, 0xd3, 0xa7, 0xfd, 0x48, 0xe9, 0x07, 0x43, 0x1d, 0x52, 0xfc, 0x00, 0xe9, 0xc2, 0xd0, 0xf3, + 0x32, 0x30, 0x04, 0x5d, 0x60, 0xde, 0x11, 0x4b, 0x95, 0x25, 0x62, 0x69, 0x73, 0x24, 0x62, 0x89, + 0x41, 0x51, 0xca, 0xa8, 0x9a, 0x02, 0xc5, 0xab, 0x24, 0x71, 0x7e, 0x3b, 0xd6, 0x98, 0x36, 0xec, + 0x68, 0x44, 0x58, 0x0a, 0xa5, 0x4a, 0xf0, 0xad, 0xfc, 0xdd, 0x7d, 0xf1, 0xf5, 0xb6, 0x20, 0x48, + 0x23, 0x8d, 0x41, 0x1c, 0xe3, 0x21, 0xf2, 0x70, 0x3c, 0x0f, 0x4b, 0x6a, 0x22, 0xaf, 0xab, 0xc9, + 0xb1, 0xf3, 0x2f, 0x2d, 0x3c, 0x83, 0xd4, 0xd3, 0xca, 0xbb, 0x5a, 0x45, 0xac, 0xad, 0x4d, 0x7b, + 0x8a, 0x14, 0xd9, 0x69, 0x6c, 0x6a, 0x88, 0x75, 0xbb, 0x36, 0xb2, 0x97, 0x2b, 0x4e, 0xb9, 0x00, + 0xc8, 0x53, 0x5a, 0xde, 0x3a, 0x80, 0xa3, 0xb1, 0x4d, 0x9c, 0x5b, 0x57, 0x45, 0xb4, 0x1f, 0xdb, + 0xc9, 0x3b, 0x38, 0x47, 0x74, 0xb2, 0x37, 0x67, 0xa3, 0x3d, 0x15, 0x46, 0x72, 0x0a, 0xea, 0x31, + 0x89, 0xec, 0xcd, 0x0b, 0x2f, 0x98, 0x34, 0x87, 0xb5, 0x30, 0x96, 0x13, 0x7b, 0x59, 0x16, 0x5e, + 0x73, 0xb1, 0xfc, 0xf3, 0xaf, 0xdf, 0x85, 0x23, 0x8f, 0x94, 0xb3, 0x18, 0xcb, 0x2c, 0xb2, 0xcf, + 0xd3, 0x7e, 0xbc, 0x5c, 0x12, 0x11, 0xa7, 0x90, 0xd3, 0x08, 0xd4, 0x61, 0x99, 0x47, 0xba, 0x70, + 0xb5, 0xce, 0xd3, 0xa6, 0xe2, 0xe3, 0xec, 0x2f, 0xb2, 0x74, 0x64, 0xf5, 0xf1, 0xe1, 0x23, 0x21, + 0x7f, 0xac, 0x6a, 0x81, 0xf6, 0xa2, 0xbd, 0x19, 0xdf, 0xfc, 0x28, 0x3e, 0x8e, 0xdf, 0xbd, 0xc8, + 0x5a, 0x48, 0x36, 0xa1, 0x4d, 0x86, 0x65, 0xf5, 0x69, 0xdb, 0x38, 0x85, 0xa2, 0xc8, 0x2b, 0x1e, + 0x9c, 0x99, 0x44, 0x35, 0xce, 0x0b, 0xc0, 0x38, 0xe9, 0x9c, 0x8c, 0x74, 0x0b, 0x9f, 0xa0, 0xd8, + 0x9b, 0x90, 0xf6, 0x63, 0x9d, 0x97, 0xd9, 0x46, 0x3b, 0xf6, 0x7f, 0x7c, 0x11, 0x69, 0xfd, 0x8f, + 0xa8, 0x4d, 0xb4, 0xca, 0xb1, 0x46, 0xda, 0x71, 0x66, 0x18, 0x1c, 0xf0, 0x51, 0x0b, 0x45, 0xdb, + 0xae, 0xae, 0x57, 0xd4, 0xf8, 0xd6, 0x19, 0xed, 0xc7, 0x19, 0x49, 0xd4, 0xab, 0x76, 0x50, 0xfe, + 0xe5, 0xc5, 0xd9, 0x2f, 0xd8, 0x0e, 0xc5, 0x99, 0x91, 0x88, 0x17, 0x10, 0x67, 0xdf, 0xf2, 0x03, + 0xd4, 0x02, 0xb6, 0x16, 0xfa, 0x11, 0x96, 0x77, 0x96, 0xc7, 0xed, 0x5c, 0xa0, 0x4f, 0x3b, 0x8f, + 0x63, 0x77, 0xc1, 0xde, 0x3c, 0xb1, 0xd6, 0x5e, 0x7c, 0xe0, 0x11, 0x47, 0xd1, 0xc1, 0x87, 0x9d, + 0xc5, 0x87, 0x36, 0x88, 0xd1, 0x23, 0x18, 0x13, 0x51, 0x09, 0xd2, 0xd3, 0xe0, 0xd7, 0x01, 0x3e, + 0xe1, 0x03, 0xfc, 0xa2, 0xd7, 0xc2, 0x67, 0x0a, 0x53, 0xed, 0xa1, 0x60, 0xc8, 0x6b, 0xe5, 0x33, + 0x85, 0x4b, 0xf9, 0x33, 0x85, 0x60, 0x98, 0x38, 0x41, 0xb1, 0x32, 0xc4, 0xa9, 0x56, 0x62, 0x4d, + 0x9a, 0xfc, 0xd4, 0xca, 0x59, 0xf8, 0x38, 0xc7, 0x1c, 0x9d, 0x38, 0xbf, 0xa0, 0x73, 0x16, 0x5e, + 0xa1, 0xcb, 0x75, 0xef, 0xb0, 0x7b, 0x51, 0xca, 0x21, 0xe9, 0x69, 0x31, 0xed, 0x8e, 0xa3, 0x4c, + 0xb0, 0x14, 0x25, 0x9d, 0x2e, 0x8e, 0x38, 0x57, 0xec, 0x35, 0x34, 0x7d, 0xcc, 0x3e, 0x55, 0xb3, + 0x6b, 0x2e, 0x52, 0x70, 0x6e, 0x5f, 0x87, 0xfc, 0x91, 0x1e, 0x9b, 0x9a, 0x76, 0xf0, 0x59, 0xdf, + 0xcf, 0x18, 0xdf, 0xcd, 0x5c, 0xe5, 0xec, 0xb4, 0x59, 0xc8, 0xb1, 0xda, 0x23, 0xaa, 0x49, 0xbf, + 0xdb, 0x22, 0x4e, 0xd8, 0xff, 0x70, 0xb1, 0x95, 0xb4, 0x75, 0xc8, 0x7b, 0x2d, 0x71, 0x8e, 0x74, + 0xf2, 0x68, 0x43, 0x89, 0x8b, 0x6c, 0x22, 0x83, 0x8c, 0x0b, 0x5e, 0xa6, 0x78, 0xdf, 0xa4, 0x37, + 0x4b, 0x3e, 0x70, 0x49, 0x6b, 0xc1, 0x31, 0x0f, 0xd7, 0x65, 0x04, 0x79, 0xe7, 0x4e, 0xe4, 0x99, + 0x97, 0x92, 0x06, 0x50, 0xe4, 0x27, 0xda, 0xa4, 0x85, 0xfc, 0xf3, 0x52, 0xac, 0xe5, 0xfd, 0x89, + 0xb5, 0xa4, 0x17, 0xcb, 0x3b, 0x7a, 0x23, 0x55, 0x2d, 0xda, 0xae, 0xaa, 0x66, 0x6d, 0x4f, 0x55, + 0xbb, 0xb6, 0x0f, 0xff, 0xc9, 0x4f, 0xca, 0x9b, 0x55, 0x09, 0xed, 0x40, 0xa4, 0x4f, 0x3b, 0x74, + 0x57, 0x0f, 0xf2, 0xa3, 0x87, 0xf1, 0xd7, 0xa6, 0x1d, 0xc1, 0xf4, 0xa3, 0x55, 0x3d, 0x50, 0xa9, + 0x1d, 0xab, 0x6a, 0xd0, 0x84, 0xb5, 0xd0, 0x89, 0xce, 0x4d, 0x6c, 0xbf, 0x6e, 0x49, 0x3b, 0xdd, + 0x55, 0x50, 0x6e, 0x8f, 0x29, 0x73, 0xc9, 0x67, 0x28, 0x42, 0xd3, 0xbe, 0x42, 0xfe, 0x57, 0x89, + 0x55, 0x11, 0x5f, 0xfb, 0xa6, 0x2a, 0xaf, 0x02, 0x9b, 0x9b, 0x23, 0x3c, 0x4b, 0xe9, 0x4a, 0xe6, + 0x65, 0xe2, 0x96, 0x6e, 0xe8, 0x42, 0xbe, 0x23, 0x94, 0x91, 0xf1, 0xab, 0xc9, 0xc1, 0xeb, 0xab, + 0xc2, 0xda, 0x51, 0xd5, 0x8f, 0x9c, 0xf4, 0x8c, 0x3e, 0x0f, 0xeb, 0xcc, 0x4e, 0x92, 0x46, 0x2d, + 0x42, 0xd5, 0x81, 0x86, 0x33, 0x9a, 0x36, 0x28, 0x39, 0x50, 0x96, 0xcf, 0xd9, 0x6a, 0x98, 0x23, + 0x21, 0xdb, 0x3c, 0x4d, 0x43, 0x38, 0x3d, 0x94, 0xc0, 0xfe, 0xa5, 0x01, 0x3e, 0x62, 0xbe, 0xfe, + 0x69, 0x84, 0xae, 0x5d, 0x6c, 0x03, 0xc1, 0x3a, 0x79, 0x89, 0x07, 0xd2, 0x15, 0x7c, 0xa2, 0x6a, + 0x11, 0x12, 0xf8, 0xf4, 0xb7, 0xa6, 0x79, 0x08, 0x7f, 0xef, 0xa5, 0xdd, 0x98, 0xab, 0x94, 0x2c, + 0x24, 0xb1, 0x07, 0x16, 0x5c, 0x09, 0x5f, 0xcb, 0xb6, 0xfe, 0x8e, 0x3e, 0xed, 0x30, 0x98, 0xf0, + 0xf7, 0x08, 0xd8, 0x6e, 0xed, 0xd3, 0x8e, 0xd1, 0x3e, 0x9a, 0x76, 0x74, 0x70, 0xc9, 0x9e, 0xe1, + 0xb4, 0x55, 0xee, 0xa5, 0xd3, 0x24, 0x84, 0xc6, 0x52, 0xdf, 0x4f, 0xb4, 0x43, 0x26, 0xe4, 0xc8, + 0xd2, 0x4b, 0x85, 0xd7, 0x73, 0xd2, 0xcb, 0xd7, 0xbd, 0xfc, 0x05, 0xf5, 0xfd, 0x09, 0x8a, 0x9f, + 0xd5, 0xc8, 0x7d, 0x3a, 0x89, 0x23, 0xf8, 0x51, 0x55, 0x54, 0x3b, 0x37, 0x28, 0x63, 0x7f, 0xc9, + 0x83, 0xf4, 0x49, 0xd6, 0x9b, 0x27, 0x5f, 0x47, 0x73, 0x70, 0xa6, 0x0d, 0xc9, 0xb1, 0xb3, 0xec, + 0x4b, 0x9c, 0x76, 0x7c, 0x94, 0x86, 0xfc, 0x9e, 0x50, 0x72, 0xec, 0x32, 0x59, 0x4b, 0xd9, 0xa8, + 0x05, 0xbc, 0x83, 0x45, 0x51, 0xc5, 0x9f, 0x62, 0xba, 0x71, 0xd5, 0x5e, 0x01, 0xc2, 0xe9, 0xb8, + 0x1e, 0x85, 0x40, 0x25, 0x8b, 0x1c, 0xa7, 0xdc, 0x2b, 0x47, 0xd7, 0x36, 0x7f, 0x0c, 0x8b, 0x17, + 0xb2, 0x45, 0xbf, 0xd0, 0x45, 0x53, 0x65, 0x77, 0xc2, 0xb1, 0x10, 0xe9, 0xbc, 0x19, 0x21, 0x6d, + 0x6b, 0xeb, 0x26, 0x23, 0x8a, 0xae, 0x37, 0x80, 0xfe, 0xbc, 0xa5, 0x75, 0x93, 0x13, 0x52, 0xef, + 0x26, 0xd6, 0xf4, 0x12, 0xef, 0x3e, 0x75, 0xe3, 0x10, 0x20, 0x06, 0x0a, 0x63, 0x09, 0x8f, 0xbe, + 0x4e, 0x71, 0x03, 0x7f, 0xbe, 0xbf, 0xdf, 0x10, 0xfe, 0x50, 0xd3, 0xec, 0xed, 0x44, 0xf9, 0xc8, + 0xe2, 0x54, 0x8c, 0x9a, 0xf0, 0x6f, 0xa7, 0xef, 0x41, 0x85, 0xc4, 0xde, 0x4e, 0x3d, 0xef, 0xaf, + 0x39, 0xc9, 0x4b, 0x3d, 0xca, 0xcc, 0x76, 0xf2, 0xc7, 0x3a, 0x37, 0x1b, 0x35, 0x37, 0xf6, 0x47, + 0x13, 0x60, 0xbb, 0x3c, 0x55, 0x1e, 0x8a, 0xfe, 0xe5, 0x0a, 0xd2, 0xb8, 0xbb, 0x83, 0x70, 0xfc, + 0x48, 0x23, 0xf9, 0x07, 0x2a, 0xf0, 0xd3, 0x7a, 0xe9, 0x3d, 0x6d, 0xa8, 0xe4, 0xe5, 0xe1, 0xfb, + 0x40, 0x52, 0x0a, 0xf6, 0x92, 0x33, 0xb0, 0x12, 0xee, 0x87, 0xf5, 0xf0, 0x08, 0x6c, 0x81, 0x27, + 0xe1, 0x19, 0xf8, 0x31, 0xec, 0x80, 0x3d, 0xb0, 0x1f, 0xde, 0x84, 0x23, 0xf0, 0x01, 0x4c, 0x82, + 0x13, 0x1a, 0x25, 0x99, 0xe3, 0x9a, 0x91, 0xe6, 0xe1, 0x07, 0xb7, 0x84, 0xc9, 0xd3, 0x34, 0x79, + 0x43, 0x84, 0x1e, 0xb2, 0xec, 0x43, 0x2a, 0x4c, 0x1e, 0xcf, 0xb2, 0xef, 0xf7, 0x29, 0x41, 0xf8, + 0xd7, 0xc7, 0x8b, 0x13, 0xab, 0xd3, 0xb2, 0x42, 0x9a, 0xf8, 0x25, 0x4a, 0x34, 0x39, 0x22, 0xf7, + 0x7c, 0xaa, 0x01, 0x45, 0xca, 0x06, 0x18, 0xb9, 0x9d, 0x3c, 0xbd, 0x02, 0x3c, 0xed, 0x58, 0x4d, + 0xf1, 0xb0, 0x6e, 0x09, 0x73, 0x8c, 0xdf, 0x11, 0xbc, 0x06, 0xf0, 0xba, 0x01, 0xdf, 0x9a, 0xd4, + 0x6e, 0x8e, 0x24, 0xb4, 0x14, 0xd3, 0x14, 0x75, 0x39, 0xfe, 0x3a, 0xd4, 0xce, 0x1b, 0xc2, 0xe0, + 0x8a, 0x84, 0xe3, 0x61, 0xbc, 0xce, 0x55, 0x13, 0xf8, 0xeb, 0xd6, 0x9f, 0xaa, 0xd4, 0x20, 0xe6, + 0xf0, 0xa9, 0x2d, 0xf8, 0xeb, 0x51, 0x1b, 0xb1, 0x5e, 0xf2, 0x33, 0x52, 0x36, 0x34, 0xa5, 0x56, + 0xf0, 0xbd, 0xac, 0x9a, 0x87, 0x2e, 0xab, 0x56, 0xbc, 0x37, 0x65, 0x0c, 0x1c, 0xbd, 0xca, 0x3e, + 0xf4, 0xf9, 0x6f, 0xe9, 0x5a, 0xb1, 0xb6, 0x07, 0xac, 0xcb, 0x25, 0xf2, 0xfe, 0x4b, 0xb1, 0x8d, + 0x50, 0xc6, 0xac, 0x56, 0x8d, 0xec, 0x4b, 0xa9, 0xba, 0x30, 0x16, 0xd1, 0xd4, 0x38, 0x9f, 0x4d, + 0x0c, 0xb1, 0xff, 0x61, 0x5d, 0x8f, 0xaa, 0x60, 0xb7, 0x9e, 0xce, 0xf0, 0xf4, 0xdd, 0x7a, 0x3a, + 0xc7, 0x52, 0xae, 0x27, 0xcf, 0xfc, 0x78, 0x2d, 0x49, 0xb9, 0xd5, 0x12, 0x8a, 0xd2, 0xa2, 0xf3, + 0x2e, 0xe5, 0xca, 0xf3, 0xc8, 0x11, 0x5a, 0xf3, 0x29, 0x29, 0xa3, 0xf2, 0x18, 0xb6, 0x74, 0x4e, + 0x64, 0x44, 0xbd, 0xa8, 0xef, 0xa3, 0x77, 0x7d, 0xd1, 0x3e, 0x3a, 0x7b, 0xe3, 0x25, 0x48, 0x74, + 0x61, 0xcd, 0x1e, 0x37, 0xed, 0x39, 0xf5, 0x14, 0x9e, 0x89, 0x48, 0xf9, 0xa8, 0x41, 0x0b, 0xf3, + 0xfe, 0x6f, 0x49, 0x7b, 0x1f, 0xa6, 0xc4, 0x89, 0xc2, 0x02, 0x6c, 0xe3, 0x9d, 0xe4, 0x0b, 0x97, + 0xf6, 0x33, 0x38, 0x0a, 0xd2, 0xe5, 0x6d, 0x35, 0x1e, 0xf6, 0x53, 0x6f, 0x49, 0x6c, 0x49, 0x29, + 0xbe, 0x22, 0xa2, 0x8c, 0xb9, 0x5d, 0xc5, 0x0e, 0xd7, 0x30, 0xcf, 0x65, 0x28, 0x62, 0x03, 0x84, + 0x2a, 0x88, 0x27, 0x5e, 0x40, 0x69, 0xc9, 0x7e, 0x65, 0x2e, 0xe4, 0xc2, 0x0c, 0x64, 0x79, 0xae, + 0xe7, 0xb3, 0x71, 0xbe, 0xc0, 0xd5, 0xa5, 0x61, 0xbe, 0x40, 0x7a, 0x85, 0x9e, 0xcb, 0x04, 0x71, + 0xda, 0x95, 0x54, 0x4a, 0x06, 0x81, 0xb4, 0x6e, 0xc5, 0xe9, 0x09, 0xf2, 0x53, 0x25, 0x08, 0x2d, + 0xa5, 0x02, 0x6b, 0xc8, 0xdd, 0x02, 0x5e, 0x38, 0xdf, 0xf5, 0xb9, 0x5c, 0x22, 0xfe, 0x62, 0x68, + 0x2e, 0xed, 0xd6, 0x57, 0xd2, 0x6a, 0xbe, 0xb4, 0x18, 0xba, 0x05, 0x0c, 0xde, 0xd2, 0x02, 0x76, + 0xe8, 0x36, 0x20, 0x45, 0x0b, 0x9f, 0x06, 0xc7, 0xdc, 0x38, 0x9d, 0x67, 0xae, 0x04, 0xc5, 0xa0, + 0x56, 0x50, 0x54, 0xbd, 0xbf, 0x20, 0xdb, 0x05, 0x59, 0x41, 0x09, 0x57, 0xc9, 0x9d, 0x19, 0xb1, + 0x6f, 0xdc, 0xac, 0x5f, 0x61, 0xd2, 0xfa, 0xe4, 0x7d, 0x7e, 0x71, 0x82, 0x44, 0x33, 0x6a, 0x6f, + 0x67, 0x4a, 0x23, 0x22, 0x3a, 0xc6, 0xd3, 0xe6, 0x82, 0xdd, 0xd7, 0x1e, 0xdd, 0xff, 0x6e, 0x09, + 0xfb, 0xdf, 0xbf, 0xf2, 0x5d, 0x20, 0xf7, 0xae, 0x68, 0xfa, 0x3b, 0x3d, 0xbe, 0x53, 0x6f, 0x2e, + 0xbe, 0x53, 0xe5, 0xf4, 0xf8, 0x4e, 0x8b, 0x75, 0x0f, 0xc4, 0x1c, 0x4b, 0x84, 0x3c, 0xdd, 0xcf, + 0x05, 0x47, 0x0e, 0x77, 0x51, 0xec, 0x54, 0xa4, 0x89, 0x07, 0xed, 0x62, 0x57, 0x83, 0xe9, 0xd6, + 0x79, 0x8a, 0x8d, 0xe5, 0x98, 0x97, 0x8f, 0x60, 0xe9, 0x74, 0x01, 0x59, 0xda, 0x98, 0x2c, 0x55, + 0x7c, 0x3a, 0x11, 0x27, 0x6f, 0xef, 0xec, 0x95, 0xcf, 0xcf, 0x7e, 0x29, 0xe9, 0x54, 0x44, 0x16, + 0x71, 0x53, 0x89, 0x1f, 0xa1, 0xb9, 0x1f, 0x45, 0x7a, 0xdf, 0xdb, 0x9f, 0x08, 0xf5, 0x75, 0x13, + 0xcf, 0x83, 0x4f, 0x97, 0x7a, 0xd5, 0x44, 0xa8, 0xd7, 0xaa, 0xde, 0xc3, 0xde, 0xfd, 0x3a, 0xc8, + 0x83, 0x5f, 0xba, 0xcd, 0x4b, 0x16, 0x51, 0x53, 0x08, 0xfd, 0xb9, 0x12, 0x0e, 0x57, 0x13, 0x06, + 0x67, 0xaa, 0x1c, 0x88, 0x8e, 0x77, 0x1b, 0x06, 0x0d, 0xaa, 0x3c, 0x28, 0xe3, 0x5c, 0x18, 0x71, + 0xcd, 0x29, 0xaa, 0x09, 0xef, 0x8a, 0xf1, 0xce, 0xb6, 0x66, 0x38, 0x63, 0x1a, 0x5e, 0x4d, 0x67, + 0x30, 0x74, 0xde, 0xa3, 0x4d, 0x29, 0xab, 0x55, 0xa3, 0x88, 0xde, 0xd8, 0x72, 0xc6, 0x62, 0xc9, + 0xf9, 0x8b, 0xdf, 0x4f, 0xf0, 0x8d, 0xdc, 0xc0, 0x62, 0xc2, 0xb6, 0xa4, 0xfb, 0xce, 0xfa, 0x82, + 0x0e, 0xb1, 0xbe, 0x16, 0x20, 0x7e, 0x93, 0x7b, 0x74, 0x4a, 0x61, 0xc8, 0x72, 0x04, 0x7a, 0x2c, + 0x45, 0x3a, 0x1d, 0x37, 0x40, 0x0b, 0x47, 0x1e, 0x0f, 0x41, 0xc7, 0xb4, 0x68, 0x8a, 0xf1, 0xec, + 0xf8, 0x0a, 0x3e, 0x60, 0xb2, 0xb2, 0x75, 0x13, 0xcf, 0x8a, 0x35, 0x6d, 0x23, 0x0d, 0x04, 0xe5, + 0x7a, 0x50, 0xbc, 0x24, 0x2f, 0x3a, 0x54, 0x0b, 0x3f, 0x97, 0xe0, 0x73, 0x07, 0x8e, 0xb9, 0xd0, + 0x4e, 0x70, 0xf1, 0xca, 0x21, 0xed, 0x04, 0xf2, 0x48, 0xef, 0xd3, 0xb5, 0x13, 0x6a, 0x11, 0x7f, + 0x2b, 0xde, 0x38, 0x04, 0xb9, 0xde, 0x10, 0xbe, 0x89, 0xda, 0x69, 0xb7, 0xb7, 0x3c, 0x57, 0x6b, + 0xed, 0x74, 0x08, 0xcb, 0xf9, 0x63, 0x3d, 0x8d, 0x7d, 0xb4, 0xdb, 0x85, 0x5e, 0x24, 0xf5, 0xc4, + 0xe6, 0xc0, 0xf9, 0xa5, 0xaf, 0x28, 0x1a, 0x25, 0x8f, 0x2f, 0xe4, 0xcf, 0x0d, 0x0e, 0x57, 0x33, + 0xfd, 0x5a, 0xc2, 0x56, 0x6a, 0x4a, 0x03, 0xc2, 0xa3, 0xcb, 0xc5, 0x51, 0xff, 0x86, 0x45, 0xec, + 0x2f, 0xa4, 0xb1, 0xd7, 0x17, 0x70, 0x08, 0xd1, 0xdc, 0xa8, 0xf8, 0x98, 0x42, 0x32, 0x75, 0x44, + 0x2a, 0x79, 0x81, 0x38, 0x80, 0x02, 0x0d, 0xb8, 0x8f, 0xa6, 0x8f, 0xc8, 0x67, 0xe6, 0xd6, 0x4d, + 0x34, 0x13, 0xd1, 0x4a, 0xed, 0xb0, 0x3e, 0x13, 0x7c, 0x96, 0xe3, 0x2e, 0xa0, 0x35, 0xb9, 0x98, + 0x97, 0xe5, 0xd7, 0x8e, 0x79, 0x49, 0x11, 0x2a, 0x89, 0xcf, 0xe3, 0xd3, 0xb6, 0x45, 0x07, 0x09, + 0x26, 0x2c, 0xe9, 0x7b, 0xa7, 0xc5, 0xc1, 0x6c, 0x75, 0xa3, 0x74, 0x37, 0x46, 0x65, 0x34, 0x0a, + 0xcc, 0x8a, 0xb4, 0x9c, 0x4e, 0x6c, 0x6b, 0x79, 0x06, 0xc9, 0xff, 0xb8, 0xc2, 0x1e, 0xc9, 0x43, + 0xe0, 0x7a, 0x49, 0x8f, 0x81, 0x56, 0x30, 0x8b, 0xb9, 0x55, 0x42, 0x51, 0x56, 0x92, 0x63, 0x17, + 0x17, 0x61, 0x7f, 0xe5, 0xfc, 0x09, 0x0d, 0xc5, 0x4f, 0x52, 0xbc, 0x40, 0xb1, 0xb0, 0x2d, 0x1c, + 0x79, 0x4d, 0xec, 0xdf, 0x1f, 0xf5, 0x14, 0xc8, 0x79, 0x14, 0xe5, 0xd5, 0x73, 0x45, 0x84, 0x61, + 0x87, 0x07, 0x3a, 0xdd, 0x1e, 0xe3, 0x84, 0xbd, 0x11, 0x29, 0x29, 0x9d, 0x1c, 0x15, 0x91, 0x3d, + 0xdd, 0x70, 0xd1, 0x88, 0xb4, 0x70, 0x52, 0x7b, 0x31, 0xb9, 0xd5, 0x11, 0xca, 0xa6, 0xad, 0x06, + 0x30, 0x27, 0xb7, 0xe2, 0x48, 0x3e, 0xc5, 0x72, 0xcd, 0x1a, 0xde, 0xfd, 0xb3, 0x71, 0x3a, 0x24, + 0xb7, 0x56, 0x43, 0x41, 0x3e, 0x63, 0x72, 0x2b, 0xfb, 0x08, 0x26, 0xc9, 0x5f, 0x61, 0x1b, 0xa6, + 0x89, 0x6c, 0xfc, 0x60, 0xca, 0xad, 0x4d, 0xf0, 0xd5, 0xa8, 0x1d, 0xe6, 0xab, 0x59, 0x3b, 0xc6, + 0xb3, 0xf5, 0x7e, 0x2e, 0x72, 0x70, 0x08, 0xd7, 0xc8, 0xd3, 0x69, 0x73, 0x55, 0x93, 0x76, 0xb0, + 0x2a, 0x89, 0x3c, 0x4a, 0x44, 0x49, 0x0c, 0xb2, 0xc4, 0x73, 0x89, 0x5b, 0x73, 0xff, 0x75, 0x13, + 0x0f, 0x9e, 0xd8, 0x40, 0xfa, 0xec, 0xd8, 0x4e, 0xe4, 0x72, 0x34, 0xe3, 0x87, 0x1b, 0xc8, 0x82, + 0x0a, 0x79, 0x4b, 0xd6, 0x29, 0x50, 0x4b, 0x32, 0xc4, 0x3d, 0x1e, 0x1c, 0x94, 0x88, 0x0f, 0x8c, + 0x91, 0xac, 0xe0, 0xc2, 0x59, 0x9f, 0xe0, 0x12, 0x0c, 0x0e, 0x61, 0xe7, 0x45, 0xe7, 0xab, 0xb6, + 0xc4, 0x73, 0x60, 0x4b, 0xdd, 0x8f, 0xad, 0xf4, 0x71, 0x2b, 0x9f, 0x11, 0xad, 0xf4, 0x7b, 0x8a, + 0x76, 0x86, 0xcf, 0x68, 0x2f, 0x50, 0x7b, 0x32, 0x26, 0x7b, 0xe8, 0xed, 0x71, 0xfc, 0x7b, 0xed, + 0xed, 0xd7, 0x1a, 0x3e, 0x2c, 0x0a, 0x34, 0x9c, 0x7f, 0x02, 0x7c, 0x8f, 0xde, 0x86, 0x92, 0x64, + 0x2e, 0xba, 0x4b, 0x18, 0x8c, 0x6d, 0xc3, 0xe1, 0x13, 0x60, 0xb9, 0x7f, 0xd6, 0xae, 0xe1, 0xd4, + 0x04, 0x95, 0x4b, 0x3e, 0x81, 0xaa, 0x62, 0xda, 0x59, 0xac, 0xf5, 0x19, 0x94, 0xad, 0xce, 0x63, + 0xcb, 0x2e, 0x66, 0x0c, 0xd8, 0xa6, 0x4b, 0xf6, 0x2e, 0xed, 0x12, 0xeb, 0x89, 0x99, 0x70, 0xb5, + 0x54, 0x24, 0x47, 0x98, 0x27, 0xcf, 0x8e, 0x79, 0xd1, 0xc2, 0xc9, 0xa9, 0xba, 0xe4, 0x56, 0x37, + 0x14, 0xa4, 0xc9, 0xc9, 0xad, 0xba, 0x1c, 0x59, 0xec, 0xd5, 0x2d, 0x12, 0x23, 0xf7, 0x38, 0x84, + 0x8d, 0x79, 0x94, 0xe1, 0xa4, 0x9a, 0x56, 0x53, 0x7e, 0xed, 0xd9, 0x1b, 0xb3, 0x90, 0xc2, 0x16, + 0x6d, 0x3c, 0xdb, 0x02, 0x83, 0xdc, 0xba, 0xc6, 0x04, 0x6a, 0x59, 0x96, 0x47, 0x8c, 0x6c, 0x6f, + 0xdd, 0xf4, 0xc3, 0xdf, 0xa8, 0x46, 0x1a, 0x95, 0xcf, 0x2f, 0x2a, 0xb3, 0xf2, 0xb2, 0xc9, 0x97, + 0x9f, 0xc6, 0x13, 0x5d, 0x1f, 0x29, 0x4a, 0xb3, 0xde, 0xca, 0x88, 0x4d, 0xd0, 0xf9, 0x11, 0x39, + 0xe5, 0x14, 0x51, 0xe0, 0xec, 0x23, 0x2a, 0xc7, 0x3d, 0x53, 0x5a, 0x39, 0x3e, 0x9c, 0x39, 0x77, + 0x6f, 0xb4, 0x6f, 0xf8, 0x2a, 0x67, 0xe5, 0x85, 0x75, 0x7b, 0xab, 0x40, 0xe8, 0xf7, 0x29, 0x5e, + 0xbf, 0x09, 0xb2, 0x6d, 0xbe, 0x2a, 0x3e, 0x60, 0xe9, 0x35, 0x4a, 0x29, 0xe4, 0x63, 0xf7, 0x5d, + 0x69, 0x95, 0xa4, 0x6d, 0xb9, 0x2a, 0xe5, 0x91, 0x6c, 0x8c, 0x31, 0xe5, 0x0b, 0xad, 0x9e, 0xb4, + 0x96, 0x6c, 0x8c, 0xb1, 0x7a, 0xca, 0x55, 0x89, 0xb9, 0x1c, 0x98, 0xc3, 0x53, 0xeb, 0x05, 0x77, + 0x8d, 0x17, 0xfc, 0x76, 0x3a, 0xff, 0x5a, 0x06, 0x8b, 0x51, 0xae, 0xb6, 0xb4, 0x87, 0xb1, 0xc7, + 0xd6, 0xd1, 0x70, 0x7f, 0x63, 0x22, 0xd2, 0x17, 0x69, 0x8f, 0xef, 0x8c, 0xf7, 0x07, 0x13, 0x0d, + 0x7d, 0xb5, 0x75, 0xd0, 0x18, 0x1b, 0xba, 0xee, 0xf4, 0x7d, 0xe3, 0xb1, 0xed, 0x91, 0x5e, 0x39, + 0x20, 0x8d, 0x46, 0xfa, 0x1d, 0x7e, 0x43, 0x63, 0x78, 0xd5, 0x75, 0x27, 0xff, 0xeb, 0x9e, 0xe8, + 0x4b, 0xf1, 0x01, 0xb9, 0xc6, 0xb4, 0xbd, 0xa1, 0x9f, 0x46, 0x5d, 0x89, 0x8f, 0x93, 0x0f, 0xa1, + 0xf8, 0x2b, 0xba, 0xbd, 0xd5, 0x10, 0x9f, 0x48, 0xd6, 0x7b, 0xbc, 0xe0, 0xab, 0xf6, 0xf2, 0xf9, + 0x72, 0x1c, 0x6b, 0xad, 0x0b, 0x78, 0xa1, 0xbe, 0xce, 0x0b, 0x11, 0x6c, 0x45, 0xe3, 0x4b, 0xb1, + 0x01, 0xe3, 0x2f, 0x63, 0xff, 0xd8, 0xf0, 0xcb, 0xd8, 0x8e, 0xe8, 0x80, 0xf1, 0x17, 0xd1, 0x5f, + 0x45, 0x7e, 0x11, 0xad, 0x8d, 0x05, 0x1a, 0x94, 0x96, 0x47, 0x5f, 0xcf, 0x14, 0x8d, 0x6e, 0xe8, + 0xb5, 0x04, 0xa3, 0xbe, 0x88, 0x3d, 0xf9, 0xd8, 0xfe, 0xd1, 0x87, 0xfa, 0xca, 0xbc, 0xcd, 0x10, + 0xf7, 0x45, 0x11, 0x87, 0x47, 0xc9, 0x16, 0xc9, 0x1f, 0xf1, 0x2e, 0x80, 0xa0, 0xda, 0xef, 0x9d, + 0xe5, 0x93, 0xdb, 0x58, 0xc2, 0xe5, 0xdd, 0x1f, 0x33, 0xf9, 0xb7, 0x69, 0x9e, 0xd4, 0x2c, 0xc9, + 0xc7, 0x3b, 0x22, 0xf1, 0x3d, 0xbc, 0x97, 0x81, 0xf0, 0x43, 0x91, 0xec, 0x39, 0x8e, 0x18, 0x79, + 0xbf, 0xa1, 0xf8, 0x4e, 0x81, 0xea, 0x1f, 0x78, 0xad, 0x77, 0xc7, 0x28, 0xa6, 0x3d, 0xf9, 0xd8, + 0x14, 0x91, 0xea, 0x73, 0x6f, 0x49, 0x33, 0x2c, 0x7e, 0x77, 0xd4, 0x1f, 0xc5, 0x3a, 0xa2, 0x6d, + 0x0d, 0xac, 0x35, 0x16, 0xf2, 0x46, 0x90, 0x7a, 0x24, 0xa0, 0xd6, 0xdb, 0x04, 0x01, 0x6f, 0x23, + 0xf8, 0x48, 0xf3, 0x45, 0x85, 0xa9, 0x1f, 0xe9, 0x76, 0x61, 0x72, 0xa1, 0x5d, 0x18, 0x47, 0xe1, + 0x20, 0xce, 0x2f, 0x80, 0x70, 0x51, 0xcb, 0x67, 0x67, 0xf3, 0xa0, 0x03, 0xaf, 0xc1, 0xe6, 0x33, + 0x70, 0x6c, 0xc1, 0xe4, 0x54, 0x63, 0xe6, 0xe6, 0x9c, 0xa7, 0xee, 0x3d, 0xac, 0xc9, 0x54, 0x9d, + 0xf7, 0x84, 0x12, 0x79, 0x1e, 0xfc, 0x05, 0xde, 0xec, 0x13, 0x19, 0xe3, 0x63, 0xaf, 0x61, 0xe9, + 0x21, 0xc4, 0x06, 0x6d, 0x54, 0x2b, 0x71, 0x3f, 0x4c, 0xa9, 0xc7, 0x70, 0xdd, 0x21, 0xfe, 0xbe, + 0x4c, 0x56, 0x2b, 0x14, 0x01, 0xfb, 0x18, 0x7b, 0x7e, 0x47, 0xc9, 0xeb, 0x17, 0x27, 0xc0, 0x95, + 0x02, 0xc9, 0x63, 0xff, 0x1a, 0x9d, 0x0a, 0x92, 0x0e, 0xee, 0xcf, 0x76, 0xa7, 0x4c, 0x3f, 0x3f, + 0xc5, 0x72, 0x70, 0x99, 0xe2, 0x96, 0x15, 0xa2, 0x5e, 0x64, 0xd3, 0xeb, 0x42, 0x5e, 0xe8, 0x89, + 0x87, 0xbc, 0x86, 0xcd, 0x1b, 0xbc, 0x12, 0xd9, 0xe6, 0xd0, 0x79, 0x8f, 0x78, 0x43, 0x27, 0xde, + 0x23, 0x64, 0x9f, 0x64, 0x52, 0xda, 0xf1, 0x6a, 0xc0, 0x11, 0x72, 0xcb, 0x95, 0xc9, 0x2d, 0x9e, + 0x6e, 0xf6, 0x34, 0x51, 0x8e, 0xf8, 0xdf, 0x83, 0xbc, 0xff, 0x8f, 0x95, 0x7e, 0x50, 0x84, 0xb7, + 0x30, 0x78, 0xc2, 0xfe, 0x35, 0x7f, 0x3f, 0x18, 0x1a, 0xfe, 0x50, 0x8e, 0x62, 0x0d, 0x18, 0x7c, + 0xd5, 0x28, 0xe7, 0x8f, 0x4f, 0xac, 0xaf, 0xad, 0xa6, 0xf3, 0xe4, 0xe6, 0x3f, 0xc4, 0x35, 0xd7, + 0xec, 0xba, 0x6a, 0x3a, 0x55, 0x76, 0x87, 0x9a, 0x3f, 0xe9, 0xd4, 0xdc, 0xb3, 0xeb, 0xdd, 0xf8, + 0xe6, 0xd7, 0x07, 0x1e, 0xfc, 0xf9, 0xee, 0x3e, 0x83, 0x3d, 0xdc, 0xfe, 0x10, 0x3e, 0x9b, 0xe3, + 0xbf, 0x3e, 0xfa, 0xe0, 0xe8, 0xfa, 0x3e, 0x83, 0x62, 0x6c, 0x1f, 0xde, 0xb9, 0xba, 0xcf, 0xe0, + 0x92, 0xda, 0xd7, 0x8d, 0xe1, 0xb3, 0xdb, 0xd8, 0xfe, 0x00, 0x9d, 0xa1, 0xc6, 0x77, 0x07, 0x5d, + 0x50, 0x12, 0xdf, 0xe7, 0x95, 0x9f, 0x1c, 0x76, 0xc7, 0x9e, 0x3c, 0x01, 0x65, 0xf1, 0xff, 0xde, + 0x05, 0x4f, 0x3c, 0xe4, 0x8e, 0xe2, 0x7d, 0x69, 0xfc, 0xbf, 0x97, 0xc3, 0xc8, 0x7a, 0x2f, 0xb0, + 0x8e, 0x95, 0x49, 0xf4, 0xc7, 0xb3, 0xe8, 0x65, 0x11, 0x57, 0x65, 0x11, 0xce, 0x80, 0xe7, 0xf6, + 0x1e, 0xe2, 0xb2, 0xd8, 0x72, 0xcb, 0x28, 0xa8, 0xf6, 0xe5, 0x67, 0x3b, 0x37, 0xf1, 0xa9, 0x94, + 0x21, 0xb1, 0x16, 0x25, 0x87, 0x3d, 0x91, 0x1e, 0x8a, 0xc7, 0x46, 0x23, 0x7b, 0x69, 0x23, 0x8d, + 0xe8, 0x54, 0xc7, 0x77, 0xb2, 0xb2, 0x5c, 0xc0, 0x4e, 0x31, 0xa5, 0x29, 0xce, 0x03, 0xd2, 0x22, + 0xa7, 0x07, 0xe7, 0x74, 0x99, 0x4e, 0x23, 0x41, 0x6e, 0x44, 0xdc, 0x61, 0x70, 0x66, 0xb5, 0x51, + 0x29, 0x06, 0x5e, 0xed, 0x3b, 0xe3, 0x0e, 0x8b, 0x71, 0x0d, 0xd2, 0xd4, 0x47, 0x94, 0x9c, 0xa7, + 0x99, 0xcb, 0xe3, 0x8c, 0xcf, 0x5f, 0x64, 0x7d, 0x25, 0x1f, 0x45, 0x8b, 0x72, 0x70, 0xb4, 0xa8, + 0x5b, 0xe2, 0x60, 0x08, 0xe2, 0xd3, 0x2d, 0x49, 0x14, 0x06, 0xe9, 0x39, 0x09, 0x1e, 0x4f, 0x0f, + 0x54, 0x07, 0xfb, 0xa1, 0xe4, 0xef, 0x5f, 0xc3, 0x27, 0x13, 0x72, 0xa9, 0xd5, 0xfe, 0x65, 0x60, + 0x7b, 0x6c, 0xff, 0x2d, 0x0b, 0x38, 0x4e, 0xaa, 0x04, 0x15, 0x99, 0x8e, 0x89, 0xe7, 0x01, 0x17, + 0x18, 0x6b, 0x05, 0xfe, 0x5b, 0xc8, 0x71, 0x0b, 0x52, 0xe6, 0xd6, 0x4d, 0x58, 0x7e, 0xd2, 0xe4, + 0x01, 0xa3, 0x7c, 0x30, 0x15, 0x0f, 0x9f, 0x96, 0x4e, 0xe6, 0xea, 0x7e, 0x83, 0xbf, 0x2a, 0xc7, + 0x34, 0xff, 0x15, 0xed, 0x99, 0xc3, 0x6f, 0xca, 0xbc, 0x45, 0xf6, 0x2a, 0xa8, 0x66, 0xeb, 0xfd, + 0x63, 0x5e, 0x29, 0x39, 0xf6, 0xf9, 0x4a, 0x61, 0xef, 0xd6, 0x4a, 0x76, 0x41, 0x6e, 0x8a, 0x4e, + 0x74, 0xd9, 0xd6, 0xba, 0x49, 0x2f, 0xbb, 0x96, 0xb4, 0x70, 0xec, 0x25, 0x5e, 0x3a, 0xc5, 0x32, + 0xd3, 0xe9, 0x19, 0xef, 0x34, 0x21, 0xbf, 0x4e, 0xd6, 0x14, 0xbc, 0x03, 0x95, 0xd5, 0x64, 0xc5, + 0x2f, 0x11, 0x3b, 0x56, 0x63, 0x79, 0x64, 0xfd, 0x2d, 0x74, 0xb5, 0x6c, 0x64, 0x67, 0xe7, 0x9e, + 0x47, 0x3e, 0xdb, 0x1c, 0x06, 0x67, 0xf1, 0xa1, 0x07, 0xde, 0x59, 0xc7, 0xff, 0x05, 0x1e, 0x90, + 0xb2, 0xcf, 0xc2, 0xf7, 0x11, 0x94, 0x64, 0x75, 0xe0, 0x88, 0xbb, 0xcb, 0x00, 0x71, 0x1e, 0x88, + 0xd5, 0x5c, 0x88, 0xfb, 0x3c, 0xe4, 0xf5, 0x08, 0xfb, 0xae, 0x90, 0xdc, 0x89, 0xad, 0x33, 0x60, + 0xeb, 0x00, 0x46, 0x91, 0x6b, 0x7f, 0x12, 0x69, 0x9b, 0xf5, 0x36, 0xf2, 0x40, 0x1b, 0xba, 0x19, + 0x79, 0x6c, 0x29, 0x4a, 0xa3, 0x58, 0xbb, 0x0c, 0x2c, 0x76, 0x7c, 0xda, 0x7c, 0x0a, 0x4c, 0xbf, + 0x7f, 0xed, 0xe6, 0x16, 0xa9, 0x05, 0xdf, 0x59, 0xa4, 0xb8, 0xfe, 0xce, 0x8a, 0xef, 0x2c, 0xf8, + 0xce, 0xcc, 0xef, 0x5a, 0xd5, 0x54, 0xa2, 0x1b, 0x39, 0xe6, 0xf2, 0x2b, 0xc7, 0x66, 0xb2, 0x9f, + 0xac, 0x04, 0x5b, 0x37, 0xe1, 0xdb, 0xb2, 0x74, 0xa9, 0x6e, 0x07, 0xdb, 0x2b, 0xf9, 0xf1, 0x8d, + 0x0f, 0xdf, 0x94, 0x61, 0x3b, 0xb3, 0x69, 0x27, 0x9b, 0x26, 0x27, 0x2b, 0x93, 0x8f, 0x61, 0x6a, + 0x39, 0xe7, 0xf7, 0xa5, 0xcb, 0x74, 0x7f, 0x0f, 0x32, 0xa7, 0xfa, 0x5a, 0xb3, 0xbb, 0xe2, 0x2c, + 0xb5, 0x92, 0xbd, 0x56, 0x46, 0x68, 0xe9, 0x1c, 0x26, 0x4c, 0x82, 0xb0, 0xd4, 0x89, 0xb0, 0xab, + 0xba, 0x70, 0xed, 0x55, 0x23, 0xe4, 0x21, 0xf4, 0x75, 0x20, 0x77, 0x64, 0x10, 0x16, 0x6e, 0x86, + 0x41, 0xb7, 0xa0, 0x99, 0x6e, 0x86, 0xba, 0xc5, 0xef, 0x8c, 0x3b, 0x11, 0x8e, 0x6c, 0xf3, 0x78, + 0xcf, 0x49, 0x4e, 0x5b, 0xf8, 0x8c, 0x0b, 0x0c, 0x2d, 0x2a, 0x14, 0x3d, 0xe9, 0x9b, 0xc7, 0xb2, + 0x05, 0xf9, 0x02, 0xaf, 0x65, 0x29, 0xc1, 0x42, 0x12, 0x43, 0x0a, 0x8a, 0x7a, 0xf1, 0xed, 0x20, + 0x62, 0x83, 0x6a, 0x25, 0x5a, 0x43, 0xeb, 0xeb, 0x95, 0xad, 0xdb, 0xc0, 0x14, 0xa0, 0xf5, 0xb6, + 0x67, 0xcb, 0x36, 0xe4, 0xd1, 0x16, 0x22, 0x4f, 0x57, 0x9f, 0x29, 0xcb, 0x41, 0xcd, 0x08, 0x47, + 0x4f, 0x88, 0x8a, 0xb1, 0x4e, 0x5b, 0x10, 0x5b, 0x54, 0xd3, 0xde, 0xa4, 0x54, 0x9b, 0x6a, 0x49, + 0xac, 0xed, 0x35, 0xfe, 0x6e, 0x1b, 0x59, 0x3c, 0x25, 0xd6, 0xf4, 0x1a, 0xdf, 0xd9, 0x46, 0x5e, + 0x69, 0x10, 0xc2, 0x91, 0x23, 0x42, 0xec, 0x60, 0x51, 0x8a, 0x26, 0x36, 0xfc, 0x7c, 0xbc, 0xd7, + 0xfc, 0xd8, 0xfe, 0xad, 0x0f, 0x51, 0x2e, 0xe7, 0x4c, 0x7c, 0x67, 0xe6, 0x77, 0x56, 0x45, 0xce, + 0xbe, 0xdb, 0xf2, 0x10, 0x7d, 0xe7, 0x98, 0xf9, 0xd2, 0xe6, 0x94, 0x69, 0xc7, 0x36, 0xc2, 0x5b, + 0x45, 0x1b, 0x11, 0x3f, 0x33, 0x04, 0x4e, 0x3e, 0xc2, 0x63, 0x68, 0x4b, 0x87, 0xfe, 0xe3, 0x70, + 0xf8, 0xd9, 0x52, 0x82, 0x43, 0xc7, 0xda, 0x5b, 0x22, 0x60, 0x10, 0xa5, 0x50, 0xbc, 0xf2, 0xba, + 0xa2, 0x27, 0x71, 0xe4, 0x6a, 0xe5, 0x27, 0x70, 0xfd, 0x25, 0x62, 0x29, 0x23, 0xf9, 0x53, 0x2e, + 0x2a, 0x45, 0x7e, 0xc5, 0x8a, 0x94, 0xc0, 0xcf, 0x10, 0x57, 0x8d, 0x34, 0xb4, 0x1a, 0xa9, 0xac, + 0x9f, 0xfd, 0x76, 0xe1, 0xfd, 0xa1, 0x9f, 0x82, 0xff, 0x0a, 0xbf, 0x5d, 0xd9, 0xd4, 0xd5, 0x5f, + 0x00, 0xbb, 0x75, 0x5c, 0x52, 0xcd, 0xef, 0x7e, 0x0a, 0x75, 0x98, 0xb7, 0xe6, 0xed, 0x35, 0xde, + 0x30, 0xd4, 0x28, 0x38, 0x7b, 0x76, 0x37, 0x38, 0x22, 0x6b, 0x18, 0xc2, 0xcc, 0x6f, 0xad, 0xc1, + 0x9a, 0x6a, 0xb0, 0xa6, 0x3a, 0xf2, 0x9d, 0xf1, 0x3d, 0x17, 0x71, 0xeb, 0xc4, 0x63, 0xc9, 0xe4, + 0xb7, 0x4b, 0xf7, 0x09, 0x83, 0x18, 0x89, 0x62, 0x44, 0x25, 0x11, 0x77, 0x28, 0x88, 0x13, 0x1c, + 0x7c, 0xc6, 0xb1, 0x0d, 0xfc, 0x69, 0x57, 0x81, 0x5f, 0xad, 0x6e, 0x6c, 0xb9, 0x92, 0xa3, 0x36, + 0x2f, 0xe7, 0x29, 0x8b, 0x0a, 0xb2, 0xc3, 0x6b, 0x54, 0x08, 0xa6, 0x87, 0x19, 0xa6, 0x21, 0x39, + 0xf6, 0xe9, 0x86, 0x7f, 0xc6, 0x11, 0xf8, 0x3d, 0xf6, 0x5f, 0xa9, 0x92, 0x15, 0xc4, 0x24, 0xe5, + 0xe4, 0xa5, 0x37, 0xf2, 0x3f, 0x29, 0xd2, 0x13, 0x51, 0x4b, 0x91, 0x87, 0xf1, 0x3f, 0xa7, 0x07, + 0xa3, 0x38, 0xba, 0x31, 0x1c, 0xd9, 0x2a, 0xb9, 0x72, 0xe1, 0xe4, 0xa7, 0xfd, 0xc8, 0x0d, 0x0a, + 0x4f, 0x44, 0xe5, 0xd5, 0x14, 0xa1, 0xfa, 0x05, 0xe4, 0xe6, 0xb2, 0xd4, 0xe1, 0x69, 0x47, 0x89, + 0xbf, 0x8f, 0xa8, 0x83, 0x0b, 0xec, 0x64, 0x13, 0x38, 0x8f, 0xa9, 0xc3, 0xea, 0x9a, 0x79, 0x48, + 0x03, 0x5e, 0x59, 0xf8, 0x87, 0x5a, 0xcd, 0x69, 0xad, 0x9d, 0x87, 0xf8, 0x7f, 0xaf, 0x27, 0xb4, + 0xf0, 0x02, 0xd2, 0x0a, 0x6b, 0x1d, 0xe9, 0x21, 0xbd, 0x7a, 0xf0, 0x81, 0x9f, 0xef, 0x41, 0xea, + 0x10, 0x69, 0x7f, 0x48, 0x68, 0x24, 0x1d, 0x78, 0x60, 0x14, 0xa9, 0x82, 0x22, 0xb5, 0x0f, 0xbf, + 0xb4, 0xa6, 0xcf, 0xe0, 0x94, 0xdb, 0xd7, 0x66, 0xa9, 0x84, 0x80, 0xd6, 0x3a, 0x82, 0xde, 0x57, + 0xbd, 0x46, 0xbb, 0x61, 0xf3, 0xb0, 0x27, 0xfc, 0x14, 0xd1, 0x87, 0x15, 0x9d, 0x60, 0x2f, 0xda, + 0xfc, 0x10, 0x3f, 0x95, 0xc6, 0x57, 0xb8, 0x60, 0xe4, 0x01, 0xa4, 0x10, 0x7b, 0x88, 0x42, 0x90, + 0xf5, 0x0b, 0xb5, 0xd6, 0x7d, 0xf7, 0x98, 0xa0, 0x11, 0xad, 0x6c, 0xb3, 0x5f, 0x4d, 0xe3, 0x7b, + 0x53, 0xc9, 0x95, 0xa3, 0x73, 0x61, 0x48, 0x3f, 0x4d, 0x04, 0x01, 0x6b, 0xed, 0xa1, 0x89, 0x08, + 0xf1, 0x0e, 0x04, 0x6b, 0x78, 0xdf, 0x40, 0x70, 0x17, 0x8c, 0xe0, 0x88, 0x34, 0x14, 0xc2, 0xda, + 0x85, 0x8b, 0x02, 0xdf, 0x11, 0xc4, 0xe1, 0x98, 0xec, 0xd5, 0xa1, 0x16, 0xe0, 0x25, 0x61, 0x51, + 0x4c, 0xe3, 0xc4, 0xb3, 0x06, 0xf0, 0x9c, 0x1d, 0xf1, 0xa1, 0x82, 0xd0, 0x92, 0x20, 0xbd, 0x75, + 0x80, 0x75, 0xf6, 0xf0, 0xa3, 0xfb, 0x1d, 0xb8, 0x46, 0xec, 0xa6, 0x43, 0x0f, 0xbd, 0xb3, 0x5a, + 0xfc, 0x4e, 0x83, 0xb5, 0x5c, 0xca, 0x74, 0xbf, 0x2e, 0x6e, 0x58, 0x09, 0x47, 0xd6, 0xfe, 0x7e, + 0xcd, 0x35, 0xa0, 0x0a, 0x71, 0x2d, 0x43, 0x94, 0xf3, 0x5a, 0x10, 0x25, 0xa8, 0xca, 0x2d, 0x51, + 0x84, 0xa7, 0x98, 0x80, 0xa7, 0xc2, 0xf1, 0x60, 0x2c, 0x25, 0x8b, 0x7d, 0x0f, 0xd6, 0xfb, 0x75, + 0x09, 0x6f, 0x03, 0x14, 0xbb, 0xd6, 0x49, 0xb1, 0xb3, 0xab, 0x50, 0x42, 0xab, 0x82, 0x8e, 0x1c, + 0x05, 0xac, 0x7c, 0x67, 0x5c, 0x8f, 0x8c, 0x64, 0xa0, 0xb8, 0x9e, 0xbc, 0x6a, 0x93, 0xd8, 0xa6, + 0xca, 0x74, 0x9c, 0xf4, 0xd2, 0x70, 0x14, 0x42, 0xcc, 0x77, 0x8c, 0x5d, 0x18, 0xd3, 0xd7, 0xf0, + 0x2c, 0x9f, 0xa7, 0x60, 0x0d, 0x7b, 0xc4, 0x1a, 0x9e, 0x66, 0x15, 0x41, 0xe3, 0xca, 0x56, 0x10, + 0x9f, 0x3c, 0x43, 0x76, 0x1a, 0x11, 0x92, 0x8b, 0x68, 0xb4, 0xac, 0xc8, 0xed, 0x79, 0xf2, 0x2d, + 0x9d, 0xbe, 0x02, 0x78, 0x77, 0xc7, 0x96, 0x91, 0xf2, 0xeb, 0x20, 0xb2, 0xad, 0x90, 0xcb, 0xc2, + 0x12, 0x4a, 0x52, 0x15, 0x4a, 0x8b, 0xbd, 0x6d, 0xf3, 0x69, 0x30, 0x28, 0x33, 0xf1, 0x1b, 0x03, + 0xde, 0x19, 0xed, 0x33, 0xd9, 0xe3, 0x5a, 0x27, 0xbd, 0x4f, 0x3b, 0x44, 0x9b, 0xd3, 0x95, 0x98, + 0xaf, 0x1b, 0x5c, 0xb9, 0x9c, 0x9e, 0xc2, 0x9c, 0xe4, 0x65, 0x31, 0x37, 0xaa, 0x96, 0x82, 0x51, + 0x2d, 0xe1, 0xd5, 0x29, 0x28, 0x89, 0xac, 0x78, 0x0a, 0xe1, 0xea, 0xbc, 0xe3, 0x1a, 0x94, 0xa4, + 0x87, 0x28, 0xc9, 0x1f, 0x3f, 0x10, 0x94, 0x04, 0xdf, 0x94, 0x17, 0xbc, 0x39, 0x89, 0x6f, 0xde, + 0x28, 0xa0, 0x26, 0xf9, 0x37, 0x8f, 0xe0, 0x9b, 0xed, 0x82, 0xa2, 0xf0, 0x38, 0xdb, 0xbc, 0xfa, + 0xdc, 0x86, 0x16, 0x63, 0x8f, 0x91, 0x37, 0x40, 0x4c, 0xcd, 0x34, 0x31, 0xd2, 0x25, 0x85, 0x48, + 0x67, 0x92, 0x7c, 0x35, 0x64, 0x63, 0x21, 0xeb, 0xe7, 0xb0, 0x03, 0xfa, 0x99, 0x81, 0x4b, 0xf8, + 0x1c, 0xcb, 0xee, 0x70, 0x92, 0x1d, 0x6a, 0x81, 0xcf, 0x24, 0x8b, 0x12, 0x82, 0xae, 0x61, 0x05, + 0x6c, 0x42, 0x8e, 0x61, 0x79, 0x24, 0x48, 0x73, 0xae, 0x47, 0x13, 0x76, 0x10, 0x9f, 0x84, 0xf2, + 0x7a, 0x07, 0x51, 0x61, 0x77, 0x17, 0xf9, 0xa1, 0xc0, 0x16, 0x15, 0xf4, 0xfa, 0x8f, 0x95, 0x4a, + 0x37, 0xe1, 0x18, 0xae, 0xab, 0x11, 0xf9, 0xaf, 0x15, 0x19, 0xe9, 0xe6, 0x10, 0xac, 0xc0, 0x7c, + 0x82, 0xf7, 0x34, 0xeb, 0xbc, 0xa7, 0xc9, 0x4b, 0xb1, 0xd1, 0x4c, 0x3a, 0x37, 0xda, 0x03, 0x96, + 0x1c, 0x3f, 0xaa, 0x24, 0xc7, 0xce, 0x4d, 0x52, 0x29, 0x37, 0x37, 0xc0, 0x0a, 0x8e, 0x58, 0xd0, + 0x2d, 0x57, 0xfe, 0x87, 0x4a, 0x42, 0xba, 0x72, 0x6e, 0x94, 0xbe, 0xa6, 0x92, 0x90, 0x3b, 0x34, + 0x83, 0xf1, 0x76, 0x8a, 0xca, 0x6a, 0x60, 0x7e, 0xd1, 0xc4, 0xfc, 0xa2, 0x39, 0xa3, 0xac, 0xde, + 0x26, 0x95, 0xe3, 0xfa, 0xf4, 0xb0, 0x6f, 0x92, 0x39, 0xbf, 0x38, 0x03, 0xa1, 0x54, 0x79, 0xbc, + 0x0f, 0x5a, 0xc9, 0x4f, 0x0a, 0x62, 0xf9, 0x20, 0xaf, 0xc0, 0xe3, 0x43, 0xa3, 0x62, 0xe5, 0xb0, + 0xaf, 0x1f, 0xd2, 0xfd, 0xa2, 0xb7, 0x6e, 0xa8, 0xa7, 0x77, 0xff, 0x17, 0x9d, 0xaf, 0x99, 0x85, + 0x3f, 0x9c, 0x02, 0x8f, 0x3d, 0x2e, 0x94, 0x98, 0xdd, 0x79, 0xe8, 0xa5, 0x48, 0xb3, 0x05, 0xa3, + 0x85, 0x5c, 0x5d, 0xcb, 0x7b, 0x41, 0x8b, 0x0a, 0x7f, 0x98, 0xfc, 0x4a, 0xbc, 0x68, 0xf4, 0xcf, + 0xe2, 0x45, 0x5f, 0x60, 0xf8, 0x0c, 0x11, 0x1d, 0x46, 0x4a, 0x52, 0x4a, 0x9c, 0x28, 0xd1, 0x6b, + 0xbc, 0xda, 0x1c, 0x1b, 0x7c, 0xc4, 0x93, 0xc6, 0xa1, 0x92, 0xa2, 0xd2, 0xe9, 0x7c, 0x6a, 0x39, + 0xfe, 0xd3, 0xe8, 0x55, 0x93, 0xcf, 0x4d, 0xa2, 0x3d, 0xfa, 0xbd, 0x0d, 0xef, 0x1d, 0x5c, 0x96, + 0x9f, 0xbc, 0x74, 0x43, 0x64, 0xb0, 0xe3, 0x00, 0x71, 0xa7, 0x52, 0x01, 0x77, 0x1a, 0x60, 0xee, + 0xb4, 0xee, 0x1a, 0x5c, 0xa9, 0xef, 0x1a, 0x5c, 0xa9, 0xf0, 0xb6, 0x50, 0xed, 0x2d, 0x9a, 0x8e, + 0x87, 0xcf, 0x1e, 0xe7, 0x74, 0x0f, 0xf3, 0xa4, 0x01, 0x9c, 0xb9, 0x21, 0xc4, 0x1e, 0x26, 0xc4, + 0x73, 0x38, 0xb6, 0xe4, 0x03, 0x21, 0x8b, 0x3f, 0x94, 0x92, 0x6b, 0x60, 0x8f, 0x80, 0xc0, 0xca, + 0x7f, 0x58, 0xc2, 0x65, 0xb8, 0xfe, 0x23, 0x1c, 0x28, 0xce, 0x87, 0x1a, 0xf9, 0x29, 0x2c, 0x46, + 0x84, 0xbb, 0x18, 0x29, 0xb8, 0xaa, 0x73, 0x9f, 0xb5, 0xc8, 0x7d, 0x06, 0x71, 0xed, 0x91, 0xce, + 0x49, 0x20, 0xc7, 0x85, 0xee, 0xc8, 0x72, 0xa1, 0xc8, 0xbd, 0x29, 0x7f, 0x7b, 0x12, 0x2a, 0x11, + 0x63, 0x38, 0x1e, 0x3b, 0x09, 0xe5, 0x82, 0x2b, 0x8d, 0x3c, 0x27, 0x45, 0x1d, 0x38, 0x7e, 0x01, + 0xe4, 0x39, 0x9f, 0x40, 0x7e, 0xf4, 0x9d, 0x37, 0x6e, 0x4e, 0x48, 0x2d, 0x98, 0x1a, 0xd7, 0x53, + 0xad, 0xc4, 0x89, 0xbe, 0xf3, 0x1a, 0xa6, 0x0a, 0x4e, 0xd4, 0x73, 0x35, 0x27, 0xfa, 0xf1, 0xfb, + 0x58, 0xab, 0x87, 0x71, 0x41, 0xf5, 0x74, 0x4e, 0xf4, 0xe3, 0x1f, 0xe3, 0x9b, 0xea, 0xe9, 0x9c, + 0xe8, 0xc7, 0x9b, 0xb3, 0x3c, 0x27, 0xe6, 0x0f, 0x5d, 0xc1, 0x89, 0x86, 0xae, 0xe6, 0x44, 0xb3, + 0x11, 0x15, 0x09, 0x93, 0x93, 0xf4, 0x67, 0xaf, 0xc6, 0x5e, 0x77, 0xe9, 0xbb, 0xe9, 0x20, 0x2d, + 0xa2, 0xdd, 0x23, 0xe2, 0x3d, 0x11, 0xfe, 0x0c, 0x59, 0x0d, 0x7b, 0x29, 0x24, 0xce, 0xd8, 0x05, + 0x0d, 0x20, 0x0b, 0x05, 0xc1, 0x75, 0x4a, 0x0e, 0x11, 0x5d, 0x06, 0xa5, 0xd0, 0x3e, 0xa8, 0xae, + 0x41, 0xf8, 0xf9, 0xdd, 0x49, 0xb0, 0xfd, 0xf0, 0x24, 0x28, 0xb5, 0x08, 0x3f, 0xbf, 0x3f, 0x09, + 0xa5, 0x38, 0x42, 0xbc, 0x73, 0xd9, 0x6b, 0xa8, 0xc1, 0xf1, 0x21, 0x9b, 0x8c, 0xb4, 0xc9, 0x17, + 0xfa, 0xd9, 0x6f, 0xbe, 0x27, 0x3b, 0xe3, 0xf8, 0x54, 0x9a, 0xd6, 0x4f, 0xef, 0x47, 0x7f, 0xb0, + 0x54, 0x76, 0x86, 0x76, 0x72, 0xce, 0x5a, 0x91, 0xb3, 0x84, 0x73, 0xbe, 0xf1, 0x3d, 0xd9, 0x45, + 0x39, 0xcb, 0x72, 0x39, 0x37, 0x2e, 0x95, 0x5d, 0xa1, 0x5f, 0xe1, 0x4a, 0x4f, 0x19, 0x7f, 0x79, + 0x00, 0xa9, 0xec, 0xb3, 0x5e, 0x49, 0xc0, 0xcd, 0xd9, 0x28, 0x8f, 0x81, 0x2b, 0x5d, 0x9b, 0x83, + 0x1f, 0xeb, 0x57, 0x80, 0x9f, 0x79, 0x04, 0x3f, 0x1f, 0xdb, 0x99, 0x83, 0xfc, 0xc1, 0x2d, 0x2d, + 0x60, 0x88, 0x74, 0x67, 0x21, 0xbe, 0xa0, 0x1c, 0xe2, 0x08, 0x5a, 0x84, 0x6d, 0x1f, 0xde, 0x35, + 0x5f, 0xbb, 0x94, 0x8f, 0x8e, 0x0a, 0x28, 0x64, 0xde, 0xc0, 0xcc, 0xf7, 0xee, 0x1c, 0x85, 0x65, + 0x6b, 0x06, 0x85, 0x63, 0x00, 0x5e, 0x93, 0xba, 0x96, 0x33, 0x75, 0xad, 0x2c, 0xa0, 0xae, 0xae, + 0x74, 0x1c, 0xb1, 0x46, 0x20, 0x1d, 0x11, 0x54, 0xf5, 0xe3, 0xa5, 0xb9, 0xf6, 0xcc, 0xfa, 0x0a, + 0xfd, 0x62, 0xaa, 0xfa, 0x51, 0x82, 0x2d, 0x6a, 0x85, 0x97, 0x0d, 0x37, 0xf6, 0xcc, 0xa5, 0xc3, + 0xdc, 0x15, 0x34, 0xeb, 0x4c, 0xe6, 0x1a, 0x30, 0xc7, 0x34, 0xeb, 0x8c, 0x5f, 0xc0, 0xdc, 0x15, + 0x94, 0x09, 0x69, 0xd6, 0x99, 0xf2, 0x02, 0xb8, 0x9b, 0x46, 0xb3, 0x4e, 0x4f, 0x09, 0xd8, 0xcb, + 0x52, 0x27, 0xfc, 0xf7, 0x09, 0xab, 0x45, 0xcc, 0xeb, 0x4e, 0x29, 0x7a, 0x34, 0x40, 0x3a, 0xc9, + 0x28, 0xc1, 0x5f, 0x6a, 0xaf, 0x45, 0x60, 0x15, 0x87, 0x25, 0x27, 0x51, 0xba, 0xb9, 0xef, 0xd3, + 0x29, 0x5e, 0xe0, 0x6a, 0x8a, 0x57, 0x69, 0xf8, 0x0f, 0x51, 0x3a, 0x5b, 0x9e, 0xd2, 0x7d, 0xb5, + 0x68, 0x88, 0x57, 0x68, 0xad, 0xaf, 0xd4, 0x53, 0xbd, 0x42, 0x37, 0xdd, 0x9e, 0xdb, 0xf5, 0xbe, + 0x3c, 0x28, 0xde, 0x78, 0xcd, 0x8f, 0xee, 0xb7, 0xeb, 0x7b, 0x89, 0xfa, 0x9b, 0x75, 0xc2, 0x4e, + 0x00, 0xa1, 0xc0, 0xcf, 0xb6, 0x0c, 0xdd, 0xb0, 0x38, 0xf3, 0xf5, 0x46, 0x18, 0x94, 0xe2, 0xe1, + 0xbc, 0xbf, 0xaf, 0x5b, 0x42, 0x72, 0xf5, 0xa0, 0x76, 0x4b, 0x58, 0xde, 0x7b, 0xfb, 0x90, 0x3c, + 0x2c, 0xef, 0xf7, 0x07, 0x25, 0x60, 0x3b, 0xad, 0xff, 0x3b, 0x6d, 0xf0, 0x07, 0x61, 0xff, 0xed, + 0x61, 0xf9, 0x75, 0x1c, 0x1f, 0x59, 0x46, 0x8e, 0x41, 0x7e, 0x13, 0xef, 0xfc, 0xf2, 0x04, 0xfe, + 0x86, 0xe4, 0x03, 0xb7, 0x0c, 0xd9, 0xa4, 0xd0, 0x1c, 0xf9, 0xe0, 0x0d, 0x08, 0x6a, 0xf2, 0x61, + 0xfc, 0x5d, 0x28, 0xff, 0x1e, 0x7f, 0x17, 0xc9, 0x47, 0xf0, 0x37, 0x22, 0xff, 0xb3, 0x12, 0xba, + 0x8d, 0x74, 0xe8, 0x7a, 0x59, 0x7f, 0x25, 0x60, 0xef, 0x96, 0xab, 0xa9, 0xf6, 0xbc, 0x0c, 0x78, + 0xcd, 0xb6, 0xf8, 0x91, 0x8a, 0x56, 0xdb, 0x43, 0xd3, 0x73, 0x52, 0x09, 0x0f, 0x57, 0x36, 0x9c, + 0x94, 0x4f, 0x67, 0xca, 0xf3, 0xa9, 0x8e, 0x20, 0xa6, 0x06, 0x94, 0x48, 0xc3, 0xc9, 0x22, 0x43, + 0x61, 0x3a, 0xa7, 0x54, 0x16, 0xa6, 0xb4, 0xbc, 0xd7, 0x22, 0x7c, 0x4a, 0xc9, 0xa4, 0x6d, 0x4d, + 0x5a, 0xd7, 0x01, 0x2f, 0xcc, 0xa9, 0xf1, 0x02, 0xc5, 0x8e, 0xe5, 0xa8, 0x9b, 0xa3, 0x91, 0xfe, + 0x52, 0x7d, 0x2f, 0xd2, 0x76, 0xc5, 0x5e, 0xa4, 0x85, 0xcf, 0x14, 0x76, 0xe2, 0xd7, 0x74, 0x2e, + 0x52, 0x19, 0x40, 0x29, 0xa3, 0x06, 0x65, 0xba, 0xd8, 0x19, 0x4c, 0x5b, 0x09, 0x2e, 0xa2, 0xce, + 0x0b, 0x84, 0x8f, 0xb3, 0x2d, 0xe4, 0x0f, 0x00, 0x66, 0x6b, 0x3b, 0x7d, 0x91, 0xaa, 0xb8, 0xf6, + 0x32, 0x3f, 0x95, 0x6b, 0xe3, 0x55, 0x7d, 0xf8, 0xbb, 0x97, 0x9f, 0x66, 0x69, 0xfb, 0x75, 0x7d, + 0x2f, 0x1b, 0x7b, 0xc5, 0x2e, 0x65, 0xeb, 0xb9, 0x10, 0xe6, 0x7e, 0x23, 0xfa, 0x13, 0xed, 0x0d, + 0xce, 0xa3, 0x68, 0x13, 0xf8, 0x45, 0xa9, 0x76, 0x90, 0xac, 0x59, 0x48, 0xdf, 0xf8, 0x71, 0x63, + 0x72, 0x6c, 0x4a, 0xe1, 0x5d, 0x70, 0x4b, 0x7a, 0x65, 0x8c, 0x7c, 0x4f, 0xea, 0xbe, 0xd5, 0xf4, + 0x1a, 0x8b, 0xb4, 0x63, 0x7c, 0x35, 0x68, 0x27, 0x6a, 0x9a, 0xab, 0x9a, 0xb5, 0xd3, 0x7c, 0x76, + 0x77, 0xd1, 0x2b, 0x7b, 0x83, 0xf4, 0x76, 0xc1, 0xe4, 0xe5, 0xfd, 0xc9, 0x2d, 0x9c, 0x76, 0x49, + 0x4f, 0x33, 0xe0, 0x33, 0x69, 0xfc, 0xcc, 0x12, 0x5e, 0x76, 0x3a, 0x37, 0x55, 0xff, 0x04, 0xdf, + 0xe9, 0xfc, 0xbf, 0x7e, 0x3a, 0xe1, 0xab, 0x5e, 0x8b, 0x7c, 0x87, 0x9c, 0x1c, 0xbb, 0xbc, 0x9c, + 0xdb, 0x2c, 0xb7, 0x9c, 0xa9, 0xb4, 0x68, 0xcf, 0xea, 0x3e, 0xc2, 0xea, 0xd9, 0x62, 0xc1, 0x0b, + 0x4a, 0xf3, 0x29, 0xf0, 0x38, 0x9a, 0xb1, 0x8e, 0x20, 0x52, 0xa6, 0xa7, 0x44, 0x8c, 0x52, 0xa1, + 0xc3, 0xa3, 0x55, 0xe2, 0xaa, 0xc7, 0x34, 0x2f, 0xca, 0x54, 0xba, 0xef, 0xb0, 0xa7, 0x78, 0x4f, + 0xcd, 0xd6, 0xf9, 0xf0, 0x3f, 0xbe, 0x9e, 0x9a, 0xd0, 0xad, 0xe1, 0x74, 0x8b, 0x17, 0x3e, 0xc7, + 0xe9, 0x82, 0x0e, 0x7b, 0xb7, 0x94, 0x14, 0xb6, 0xc6, 0x8f, 0xee, 0xc7, 0x32, 0x7e, 0x1c, 0xd9, + 0x26, 0xe9, 0xf6, 0x2e, 0x22, 0xc6, 0x34, 0x9f, 0x89, 0x47, 0x5d, 0x03, 0xd0, 0x52, 0xeb, 0x85, + 0x84, 0x53, 0x9c, 0xea, 0x74, 0x28, 0x3d, 0x22, 0x66, 0x2e, 0xf9, 0xe9, 0x76, 0x74, 0xf1, 0x79, + 0x6a, 0x54, 0xf8, 0x09, 0x6b, 0x46, 0xbe, 0x40, 0x59, 0x98, 0xe7, 0x16, 0x70, 0x95, 0x60, 0x5e, + 0x7e, 0xf7, 0x0c, 0xdb, 0xa2, 0xdc, 0x90, 0xa6, 0xd8, 0x9d, 0x86, 0x41, 0x03, 0x9d, 0x52, 0x5d, + 0x0a, 0xa1, 0xd4, 0x6e, 0x56, 0xb2, 0x39, 0xb6, 0x93, 0x7f, 0x2b, 0xfb, 0x67, 0x60, 0xf7, 0x62, + 0x0a, 0x72, 0x0c, 0x09, 0xf0, 0x21, 0xe5, 0xae, 0xf5, 0x36, 0x43, 0x20, 0x7c, 0x4a, 0xea, 0xe2, + 0xb8, 0xba, 0x3d, 0xf2, 0x52, 0x08, 0xda, 0xaa, 0x72, 0x5e, 0xaf, 0x9c, 0x8e, 0x1e, 0xb9, 0x8b, + 0x31, 0x42, 0x69, 0x81, 0x7f, 0x2d, 0x7b, 0xce, 0x16, 0xb2, 0x4a, 0x6a, 0x24, 0xbd, 0x29, 0x9c, + 0xbf, 0x59, 0x82, 0xdf, 0xbb, 0xc7, 0x9f, 0xb5, 0xac, 0xa0, 0x7a, 0x19, 0x6f, 0xcd, 0xa1, 0x3b, + 0x94, 0x37, 0xa8, 0x0d, 0x2f, 0xe4, 0x5a, 0xf3, 0x64, 0x41, 0x3f, 0xf6, 0x51, 0x6a, 0xae, 0x97, + 0x2b, 0xf4, 0x53, 0x47, 0x85, 0xad, 0x49, 0xc8, 0x92, 0xd2, 0x45, 0xbb, 0x95, 0xc8, 0x9d, 0x2c, + 0xf6, 0xf4, 0x01, 0x69, 0xc4, 0x96, 0x26, 0x5e, 0x90, 0x92, 0xa9, 0x15, 0xe1, 0xd3, 0x70, 0xcc, + 0xde, 0x0b, 0x9d, 0x01, 0x0f, 0x58, 0xe2, 0x7b, 0xca, 0x3c, 0x30, 0x27, 0xbe, 0x96, 0xe3, 0x25, + 0x97, 0x91, 0x25, 0x4d, 0xfb, 0x9a, 0xf8, 0x2b, 0x2b, 0xc3, 0x44, 0x39, 0x1f, 0x7f, 0x1d, 0x4b, + 0x6d, 0x54, 0x4b, 0xaf, 0x91, 0x1a, 0x9a, 0x1b, 0xc2, 0x9a, 0x7b, 0xf5, 0xf1, 0x76, 0xd8, 0x69, + 0xb4, 0x7b, 0xa5, 0x0c, 0x59, 0x78, 0x6a, 0xbb, 0x58, 0x7b, 0xb3, 0x14, 0xa5, 0xa9, 0xd9, 0x14, + 0x2b, 0x1b, 0xe1, 0xb6, 0x45, 0xd7, 0x6b, 0x09, 0xf2, 0x59, 0x1e, 0xc7, 0x72, 0xc6, 0x2f, 0xaa, + 0x29, 0xaa, 0x57, 0x60, 0x2e, 0x94, 0xd4, 0xb8, 0x90, 0x5b, 0x94, 0x47, 0x1a, 0x6e, 0x0b, 0x01, + 0x79, 0xbc, 0x37, 0xfa, 0xa4, 0x91, 0x05, 0x14, 0xdb, 0xc9, 0xe6, 0x82, 0x9a, 0xf8, 0xf0, 0x44, + 0xc3, 0x96, 0xd0, 0x6d, 0x11, 0xe8, 0xc5, 0xa7, 0x3b, 0xe2, 0xc3, 0x07, 0xc6, 0x37, 0x2f, 0xb8, + 0x2d, 0x0c, 0xfd, 0x8e, 0x9b, 0x9c, 0x1c, 0xa9, 0x79, 0xbe, 0x42, 0x27, 0x07, 0x7a, 0xbc, 0x62, + 0x97, 0xef, 0xfa, 0x7a, 0xc4, 0xef, 0xbb, 0x42, 0x7d, 0x91, 0xba, 0xb9, 0x20, 0x07, 0x91, 0x5e, + 0xbd, 0x1c, 0xeb, 0xab, 0xa9, 0x99, 0x0b, 0x86, 0xda, 0x92, 0x9d, 0x0d, 0xfd, 0x1e, 0xac, 0xd1, + 0x18, 0x70, 0x83, 0xbc, 0x23, 0xdc, 0xaf, 0x8c, 0x46, 0x07, 0xe4, 0x5a, 0x18, 0x8b, 0x0c, 0xc8, + 0x81, 0xe2, 0x5d, 0x0d, 0xbd, 0x72, 0xcd, 0x8c, 0x97, 0xc3, 0xbd, 0xb2, 0xdf, 0x38, 0x16, 0xe9, + 0x2b, 0x8d, 0x84, 0x54, 0xb7, 0x72, 0xbd, 0x1d, 0xbf, 0x53, 0xd8, 0x36, 0x38, 0x23, 0xa9, 0xfd, + 0xbe, 0xe1, 0xdb, 0x96, 0x21, 0x26, 0x93, 0xf9, 0x24, 0xcc, 0x50, 0x27, 0xb7, 0xc7, 0x6e, 0x8b, + 0x81, 0xb1, 0x75, 0x43, 0x46, 0xda, 0xbe, 0x0c, 0x8c, 0xbd, 0x15, 0xbe, 0x47, 0xeb, 0xa4, 0x36, + 0x4a, 0xd3, 0x73, 0xe0, 0x2f, 0xd9, 0x2b, 0x87, 0x5a, 0x37, 0xd4, 0x5d, 0x3f, 0x16, 0xed, 0x2d, + 0xf5, 0x3d, 0x80, 0xbd, 0x90, 0xdb, 0xa3, 0xb7, 0x45, 0xf5, 0x13, 0x34, 0x7c, 0xf3, 0x12, 0xe6, + 0xec, 0x2d, 0x6d, 0x6b, 0xf0, 0xad, 0xa5, 0x77, 0xfa, 0x77, 0xfc, 0xae, 0xe5, 0x3d, 0xc3, 0x25, + 0xc6, 0x39, 0xcf, 0x22, 0xb4, 0x73, 0x5c, 0x7b, 0x67, 0x1f, 0x50, 0xbc, 0x76, 0x47, 0x2d, 0x72, + 0x9b, 0x65, 0x6e, 0x1c, 0x8b, 0xb5, 0xb5, 0x0d, 0x88, 0x03, 0xe2, 0x7c, 0x8e, 0xf7, 0x6c, 0xf6, + 0xb4, 0x71, 0xb8, 0x08, 0xcc, 0xda, 0xb3, 0x7c, 0xad, 0xd4, 0x5e, 0xe0, 0x6b, 0x91, 0xb6, 0x83, + 0xaf, 0x33, 0x10, 0x1b, 0xb5, 0x20, 0x26, 0xa2, 0xfb, 0x0a, 0x6d, 0x2f, 0x9f, 0x40, 0xee, 0xe7, + 0xa7, 0xeb, 0xb4, 0x37, 0x7c, 0xe4, 0x19, 0x7d, 0x82, 0x9f, 0x6c, 0xda, 0x41, 0xc4, 0x3d, 0x95, + 0x74, 0x56, 0x89, 0x4f, 0x65, 0xda, 0x51, 0xcc, 0x77, 0x8c, 0x66, 0xd0, 0x16, 0x84, 0xe2, 0xd1, + 0x1f, 0xa4, 0x4c, 0xa4, 0x1d, 0x8a, 0x69, 0xa3, 0xb8, 0x9a, 0x91, 0xb7, 0x42, 0xc9, 0xa7, 0x8d, + 0xe4, 0x0e, 0xda, 0xb1, 0xf0, 0xf5, 0x41, 0x85, 0x97, 0x34, 0x9d, 0x0f, 0x3a, 0xf5, 0x88, 0x62, + 0xb0, 0x91, 0xfc, 0xcb, 0xf3, 0x39, 0xf7, 0xb3, 0x8c, 0xc7, 0x6c, 0xc9, 0xb1, 0xcf, 0x3a, 0x9b, + 0x4e, 0xc1, 0xad, 0xbf, 0xfb, 0x8d, 0x6b, 0xd6, 0xe1, 0x1f, 0xdc, 0x32, 0x1c, 0x67, 0x9c, 0x96, + 0xb2, 0x88, 0x93, 0xe9, 0x8b, 0x93, 0xc8, 0x3d, 0x2e, 0xe2, 0xfc, 0x97, 0xc4, 0x79, 0x27, 0x14, + 0xe3, 0x17, 0x16, 0xe7, 0x3c, 0xed, 0x52, 0xfb, 0xda, 0xaa, 0x06, 0xed, 0x52, 0xd3, 0x19, 0xed, + 0x34, 0x9d, 0xc3, 0xd2, 0xda, 0x29, 0xe8, 0xb5, 0xac, 0x9d, 0x46, 0xa9, 0xaa, 0x74, 0x64, 0x2d, + 0xd6, 0x77, 0x96, 0x74, 0x14, 0xbd, 0xfe, 0x38, 0xf2, 0x18, 0x17, 0x5f, 0x56, 0xf0, 0x4b, 0xb6, + 0x89, 0x64, 0xdd, 0x83, 0xca, 0x4a, 0x6d, 0xa3, 0xee, 0x69, 0xa3, 0x33, 0xe7, 0xaf, 0x68, 0x1e, + 0x58, 0x2a, 0xaa, 0xe0, 0x0e, 0x57, 0x15, 0xd2, 0x6e, 0xe4, 0x98, 0xf9, 0x4c, 0x3d, 0x49, 0x9e, + 0x33, 0x8d, 0x1f, 0x98, 0x0c, 0x60, 0x26, 0x2f, 0x44, 0xd1, 0x46, 0xa6, 0x87, 0x37, 0x12, 0xb7, + 0x5a, 0x5f, 0x05, 0x17, 0xe2, 0xbf, 0xae, 0xad, 0x82, 0x8b, 0xf1, 0xbd, 0x0b, 0xce, 0x68, 0x8b, + 0xb1, 0x35, 0x9d, 0x04, 0xe9, 0xd3, 0xbc, 0x5c, 0x9a, 0xb5, 0xc5, 0x7a, 0xbb, 0x96, 0x66, 0xa4, + 0x91, 0x07, 0xb1, 0x55, 0x5d, 0xfc, 0x6c, 0xd0, 0x7a, 0x07, 0xa5, 0xcd, 0xeb, 0xaa, 0xc2, 0x5a, + 0x86, 0x9f, 0x8b, 0xb5, 0xe5, 0x55, 0x4d, 0xda, 0x4a, 0x7d, 0x86, 0x86, 0xaa, 0xa2, 0xda, 0xb0, + 0xee, 0xfb, 0x72, 0x1d, 0xcf, 0xd0, 0x06, 0xdd, 0xf7, 0xe5, 0xc6, 0x41, 0x1b, 0x7e, 0x33, 0xc2, + 0x4f, 0x37, 0x6a, 0x5b, 0xf0, 0xcd, 0x13, 0x7c, 0x5f, 0xae, 0x3d, 0x45, 0x91, 0x07, 0xf4, 0x79, + 0x7c, 0xd6, 0xd7, 0x88, 0xf3, 0xf8, 0x1c, 0xd2, 0x87, 0x1d, 0xd8, 0xaa, 0x5a, 0xa6, 0x0f, 0x5b, + 0x75, 0xfa, 0xb0, 0x03, 0xeb, 0xd9, 0xa9, 0xd3, 0x88, 0x97, 0xb1, 0x9e, 0x71, 0x9d, 0x52, 0xed, + 0x65, 0x1d, 0xc2, 0xfd, 0x3a, 0xa5, 0xa2, 0xd8, 0x49, 0x13, 0x3a, 0x0d, 0x3a, 0x58, 0xd5, 0x23, + 0xb7, 0x31, 0x1c, 0x10, 0xd5, 0x3a, 0x4a, 0x63, 0xc3, 0xd6, 0x3c, 0xd3, 0xa9, 0xd6, 0x31, 0xa4, + 0x5a, 0xc7, 0x48, 0x8b, 0x53, 0xd0, 0xa9, 0xd8, 0xe4, 0xa7, 0x2b, 0x93, 0x9b, 0x5d, 0x82, 0x52, + 0x39, 0xb0, 0x64, 0x95, 0x7c, 0xa4, 0xe9, 0x73, 0xbf, 0xf9, 0xd6, 0x10, 0x3c, 0xcb, 0xf3, 0x6d, + 0x15, 0xfa, 0x7a, 0x9f, 0x9a, 0x5b, 0x37, 0x45, 0xa2, 0x14, 0x67, 0x31, 0xfe, 0x80, 0x2f, 0x86, + 0xa5, 0x75, 0xb2, 0xde, 0x0d, 0x8d, 0x73, 0x49, 0x4c, 0x8c, 0x6d, 0xeb, 0x55, 0x1e, 0x44, 0xb3, + 0x63, 0x5b, 0xa4, 0x2d, 0xd5, 0xc7, 0xb0, 0xb7, 0xaa, 0x4f, 0xeb, 0xd4, 0x47, 0x74, 0x06, 0x8e, + 0x28, 0x3d, 0xad, 0xd4, 0xc7, 0x71, 0x88, 0xc7, 0x71, 0x58, 0x1f, 0xc7, 0x75, 0x83, 0x21, 0x1c, + 0xc7, 0x0d, 0xfa, 0x2a, 0x20, 0xe8, 0x1c, 0xd1, 0xc7, 0x6e, 0x0b, 0x8f, 0xdd, 0x13, 0x3a, 0xd4, + 0xf3, 0xa8, 0x12, 0x4c, 0x7a, 0xab, 0x10, 0xbe, 0x51, 0x56, 0x42, 0x5a, 0x89, 0xb3, 0x8c, 0x2d, + 0xbe, 0xc8, 0x76, 0x4f, 0x8e, 0x74, 0xbf, 0xde, 0x37, 0x73, 0x16, 0xae, 0x2f, 0x0c, 0x63, 0xef, + 0x9e, 0xca, 0x41, 0xf3, 0x0c, 0x4c, 0x41, 0xee, 0x56, 0x6d, 0xbc, 0x12, 0x9a, 0x2f, 0xd4, 0x93, + 0xb4, 0xf1, 0xb7, 0x67, 0xb4, 0x4b, 0xfa, 0x3c, 0xd9, 0x72, 0xf3, 0x44, 0xf0, 0xb2, 0x83, 0x3c, + 0x07, 0xb1, 0x56, 0x6c, 0x15, 0xd2, 0xca, 0xb1, 0x4f, 0x26, 0x19, 0x7a, 0x8d, 0x91, 0x28, 0x7d, + 0xc5, 0xd4, 0xaa, 0x3c, 0x65, 0xcd, 0x14, 0x8f, 0x3f, 0x0f, 0xe5, 0x22, 0x6e, 0x88, 0x64, 0xfb, + 0x3f, 0x34, 0x52, 0xea, 0x7f, 0x6c, 0xa4, 0x68, 0x37, 0x97, 0xbd, 0x53, 0x8f, 0x5d, 0x78, 0x43, + 0x1f, 0xab, 0xee, 0x2b, 0xc7, 0xea, 0x93, 0x0e, 0x1c, 0xab, 0x67, 0x0a, 0xc7, 0xea, 0x13, 0xc0, + 0xb1, 0x8a, 0x5c, 0x39, 0x56, 0x9f, 0x94, 0x7c, 0xa5, 0x71, 0x7a, 0x26, 0x39, 0x76, 0xfe, 0x80, + 0x58, 0xe5, 0x91, 0x28, 0xd9, 0xa3, 0x4a, 0xd7, 0xa5, 0x9d, 0x1c, 0x89, 0xb9, 0x18, 0x69, 0xad, + 0xad, 0x6d, 0x98, 0xbd, 0xe1, 0x7f, 0x8d, 0xac, 0x83, 0x7d, 0x8d, 0x5e, 0x13, 0xfb, 0xcc, 0x79, + 0xf6, 0x6f, 0xc7, 0x39, 0xe2, 0x32, 0xae, 0x6b, 0xcc, 0x6d, 0xe7, 0xdc, 0x06, 0x2f, 0xe6, 0xc6, + 0x6b, 0xc9, 0xb4, 0x9c, 0xab, 0x72, 0x39, 0x8b, 0x73, 0xe5, 0xce, 0xa4, 0x72, 0xef, 0x11, 0xe5, + 0x7e, 0x7d, 0x5a, 0xee, 0x96, 0x5c, 0x6e, 0x43, 0x2e, 0x37, 0xc5, 0xa9, 0xb1, 0x75, 0x8a, 0xdc, + 0x65, 0xd3, 0x72, 0xcf, 0xc9, 0xe5, 0x96, 0x73, 0xb9, 0x8d, 0x94, 0xbb, 0x43, 0xe4, 0x2e, 0x2d, + 0xcc, 0xfd, 0xd9, 0xd9, 0x5c, 0xee, 0x22, 0xcc, 0xed, 0xe0, 0xdc, 0x33, 0x28, 0xf7, 0x22, 0x91, + 0xfb, 0x86, 0x69, 0xb9, 0xf7, 0x64, 0xf3, 0xd2, 0x7a, 0x82, 0x73, 0xd5, 0xb3, 0x8d, 0x0f, 0x6a, + 0x5a, 0x0e, 0x5f, 0xcd, 0x98, 0x46, 0x33, 0x04, 0x9c, 0x48, 0x3a, 0x9c, 0x14, 0x21, 0x9c, 0x64, + 0xb1, 0x53, 0x1e, 0x42, 0x08, 0x3f, 0xd1, 0xd3, 0x17, 0x60, 0x28, 0xf2, 0x98, 0x0e, 0xc3, 0x3a, + 0x94, 0x54, 0x14, 0xe0, 0xa8, 0xeb, 0xb4, 0xa7, 0x18, 0x62, 0x9e, 0xd1, 0x21, 0xe6, 0x59, 0x41, + 0x13, 0xae, 0x82, 0x18, 0xf2, 0xc6, 0xf4, 0xa4, 0x5b, 0x40, 0x4c, 0x48, 0x87, 0x98, 0x19, 0x59, + 0x88, 0xf9, 0xa3, 0x1d, 0x21, 0xe6, 0xb9, 0x1c, 0xc4, 0x90, 0x9f, 0x9e, 0x37, 0x11, 0x62, 0xca, + 0xaf, 0x84, 0x98, 0x73, 0xc7, 0x78, 0x87, 0x5d, 0x87, 0x03, 0xee, 0xf9, 0x46, 0x1d, 0x7e, 0xe2, + 0x0c, 0x3f, 0xf9, 0x5e, 0x4b, 0x3a, 0x65, 0x2c, 0x62, 0x3e, 0xbd, 0x08, 0x8c, 0xcc, 0xa1, 0x53, + 0x3f, 0xdf, 0xe0, 0x7e, 0x4e, 0xe8, 0xfd, 0x3c, 0xc8, 0xfd, 0x3c, 0xac, 0xf7, 0xf3, 0xe8, 0xa0, + 0x82, 0xeb, 0xe2, 0x98, 0xde, 0xcb, 0xf7, 0x29, 0xea, 0xb2, 0xde, 0xcb, 0xd3, 0xdc, 0xcb, 0xb3, + 0x85, 0x70, 0x7e, 0xae, 0x17, 0x5b, 0x4d, 0x56, 0x04, 0xe5, 0xe4, 0xf1, 0x62, 0x7f, 0x88, 0x70, + 0xa8, 0x5d, 0xe8, 0x35, 0xc7, 0x91, 0xdb, 0x5b, 0xb5, 0xe0, 0x14, 0xec, 0x77, 0xcd, 0x32, 0xae, + 0xc3, 0x91, 0x7b, 0x4a, 0x5d, 0xaa, 0x38, 0xd2, 0x2a, 0xfb, 0x13, 0x9b, 0xc4, 0x96, 0x35, 0x6b, + 0xbb, 0xb0, 0xec, 0x3d, 0x99, 0x22, 0xd2, 0x0b, 0x67, 0x4c, 0xfc, 0x66, 0x55, 0x8f, 0x64, 0xd1, + 0x5e, 0xa7, 0x32, 0x0a, 0xfc, 0xa3, 0x91, 0x97, 0xb1, 0xb1, 0x9c, 0xe7, 0xb3, 0xd2, 0x02, 0xad, + 0xaf, 0x1d, 0x39, 0x7e, 0xb3, 0xd9, 0x8e, 0x32, 0x3f, 0x73, 0x89, 0x87, 0x76, 0x6e, 0x4c, 0x3d, + 0x81, 0xfc, 0x8c, 0x45, 0x78, 0x5b, 0x3d, 0x4f, 0x9e, 0xe1, 0x43, 0xac, 0x09, 0xe3, 0x13, 0x5c, + 0xbd, 0x4f, 0x71, 0x7a, 0xc1, 0xb6, 0xdc, 0x60, 0x0f, 0xae, 0xae, 0xfc, 0xfb, 0x57, 0x63, 0x22, + 0xd2, 0x30, 0xca, 0x83, 0xd2, 0x63, 0x5e, 0x89, 0x22, 0x8d, 0x0d, 0x42, 0xa3, 0xb4, 0x67, 0xed, + 0xcf, 0x56, 0x1f, 0xfb, 0x41, 0xfb, 0x9a, 0xd4, 0x07, 0x99, 0x9b, 0xc6, 0x57, 0x23, 0xaf, 0x22, + 0xec, 0x59, 0xfd, 0xba, 0x3c, 0xe0, 0x40, 0x09, 0xcb, 0x4e, 0x9a, 0xe6, 0x69, 0x13, 0xfe, 0xca, + 0x29, 0x55, 0xb5, 0xc4, 0x4e, 0xc1, 0x61, 0xf2, 0x44, 0x0f, 0xc7, 0x54, 0x73, 0xec, 0x94, 0x74, + 0x0f, 0xde, 0xcb, 0xd2, 0x12, 0xf6, 0xf4, 0xf7, 0x48, 0xe7, 0x26, 0x27, 0xdc, 0xd2, 0x0c, 0x66, + 0xd1, 0xc2, 0xa9, 0x25, 0x2e, 0x50, 0x8a, 0x26, 0xd6, 0x1e, 0x1a, 0x3e, 0xb4, 0xf6, 0xd0, 0x5a, + 0xa5, 0x21, 0x7c, 0xa2, 0x38, 0x10, 0x3e, 0xeb, 0x82, 0xbc, 0xed, 0xbb, 0x66, 0xa6, 0xbd, 0x4d, + 0x6f, 0x94, 0x76, 0x34, 0x5b, 0x2a, 0x55, 0x38, 0xbb, 0x83, 0xae, 0xdc, 0x02, 0x19, 0xdb, 0x5e, + 0x4a, 0x5a, 0x2c, 0xd8, 0x82, 0x8a, 0x82, 0x16, 0xd4, 0xa8, 0x26, 0xe3, 0x5a, 0xfc, 0xfa, 0xb0, + 0x6a, 0xa4, 0x2b, 0xf9, 0x90, 0xcf, 0xd6, 0x85, 0xb3, 0x91, 0x2d, 0xd7, 0x80, 0xe5, 0x96, 0x63, + 0xb9, 0xa5, 0x28, 0xf1, 0x51, 0xb9, 0x8b, 0xe9, 0xca, 0xe5, 0xda, 0x9d, 0x5e, 0xf6, 0x64, 0xa1, + 0xa0, 0xbc, 0x31, 0x87, 0xf8, 0x94, 0xa9, 0xc3, 0x9d, 0x9b, 0x1c, 0x80, 0xa5, 0x24, 0xa8, 0x14, + 0xbb, 0x7c, 0x60, 0xcd, 0xc1, 0xd5, 0x07, 0xd7, 0x1c, 0x5c, 0x43, 0xfb, 0xa3, 0xc5, 0x01, 0x65, + 0xd0, 0x05, 0xaa, 0xf5, 0xa5, 0xe7, 0xc0, 0x9c, 0x32, 0xee, 0xec, 0x02, 0x13, 0x4a, 0x13, 0x61, + 0xbb, 0x2d, 0xf5, 0x91, 0xf0, 0x46, 0x8e, 0x18, 0x8b, 0x76, 0x56, 0xa6, 0x5a, 0x37, 0xf9, 0xe4, + 0x96, 0xf7, 0xa2, 0x05, 0x5e, 0x83, 0xf8, 0x84, 0xd6, 0xcb, 0x1e, 0x80, 0x7b, 0xdd, 0x16, 0xe3, + 0x03, 0xd8, 0xae, 0x0b, 0x4a, 0x2c, 0xc7, 0xef, 0xdf, 0x13, 0x3e, 0x2d, 0x39, 0x7e, 0x76, 0x5a, + 0xf2, 0x20, 0x75, 0xfc, 0x91, 0xa3, 0x57, 0x72, 0x44, 0x22, 0x1e, 0x83, 0xbc, 0x1e, 0xa4, 0x59, + 0xaf, 0x54, 0x07, 0xe1, 0xdf, 0x4c, 0x9d, 0x2a, 0x48, 0xeb, 0x12, 0xeb, 0xd3, 0x89, 0xc4, 0x36, + 0xb0, 0xa7, 0xa3, 0x6c, 0xdb, 0x71, 0xc1, 0x6b, 0xe1, 0x7d, 0xe2, 0xd9, 0xfa, 0x39, 0x95, 0x25, + 0x11, 0x4a, 0xdb, 0x95, 0x3e, 0xb9, 0x66, 0x54, 0xe8, 0xf6, 0xb9, 0xc0, 0xcc, 0x1a, 0xb8, 0x6e, + 0xb0, 0xb3, 0x56, 0xe1, 0x08, 0x47, 0x7a, 0xc3, 0x56, 0xf2, 0xd7, 0x67, 0x15, 0xc3, 0xf8, 0x36, + 0xb6, 0xa4, 0x73, 0x27, 0x22, 0x48, 0x69, 0xc8, 0x8b, 0x07, 0x79, 0xf3, 0xdb, 0x99, 0xf1, 0x4c, + 0x97, 0xda, 0x75, 0x5f, 0xe2, 0x86, 0x5b, 0x87, 0x4c, 0x64, 0x6c, 0x5b, 0x4a, 0xfe, 0xb2, 0x6f, + 0x5d, 0x08, 0x8e, 0x5b, 0x71, 0x96, 0x6e, 0x1d, 0x80, 0x2e, 0x50, 0x6e, 0xed, 0x86, 0x39, 0xe0, + 0xc2, 0x79, 0xf7, 0x40, 0x89, 0xf8, 0x2e, 0xe1, 0x86, 0xca, 0xde, 0x7b, 0xb0, 0x96, 0x94, 0x53, + 0x97, 0xf3, 0xd3, 0x11, 0x5c, 0x2d, 0x56, 0x94, 0xc4, 0xac, 0xf6, 0x66, 0x1c, 0xd7, 0xcd, 0x4a, + 0x6e, 0x6e, 0xa6, 0x86, 0x0b, 0xee, 0x37, 0xda, 0x9b, 0x33, 0x9e, 0x5c, 0xdd, 0xd5, 0xf9, 0x37, + 0x97, 0x55, 0xb5, 0x82, 0xde, 0x51, 0xaa, 0x6a, 0xbb, 0xb5, 0x17, 0xb6, 0xe8, 0xa5, 0x85, 0xa8, + 0x34, 0x75, 0x69, 0xce, 0x8e, 0xa4, 0xbc, 0xc4, 0x0d, 0x4e, 0xf2, 0x01, 0x9d, 0x91, 0xfe, 0xed, + 0xb9, 0xfc, 0x89, 0x8e, 0x7a, 0x14, 0xfb, 0x57, 0x96, 0x0e, 0x7a, 0x45, 0x2f, 0x58, 0xcb, 0xd3, + 0xbb, 0x10, 0x5a, 0x11, 0x26, 0xe2, 0x5e, 0x6a, 0x7f, 0xc7, 0x7c, 0x6a, 0x7f, 0x7d, 0xf8, 0x63, + 0x94, 0x03, 0xe3, 0xd0, 0x19, 0x1f, 0x60, 0x4c, 0xea, 0x86, 0x32, 0x1a, 0x3b, 0x69, 0xaf, 0xf0, + 0xed, 0x9f, 0xd8, 0x9c, 0x82, 0xa9, 0x55, 0x05, 0xf3, 0xb6, 0x2f, 0xef, 0xe3, 0xc6, 0xeb, 0x05, + 0x92, 0xfa, 0x70, 0x85, 0xd1, 0x3f, 0xc2, 0x91, 0x51, 0x68, 0x33, 0x22, 0x04, 0x9c, 0xa0, 0x73, + 0x30, 0xd7, 0x02, 0xdd, 0x46, 0x77, 0xb1, 0x93, 0xe2, 0x7a, 0x13, 0x2e, 0xd0, 0xa0, 0x8c, 0xb4, + 0x0a, 0x38, 0x32, 0xc7, 0xff, 0x58, 0x34, 0x1e, 0x05, 0x94, 0x2f, 0x2b, 0x1c, 0x64, 0x23, 0x4f, + 0xf6, 0xfa, 0x07, 0xda, 0x36, 0x60, 0x4b, 0x14, 0xfd, 0xd9, 0x38, 0x72, 0x12, 0x64, 0x4e, 0x71, + 0xa0, 0x7c, 0x5a, 0x89, 0x72, 0x69, 0x1b, 0xb8, 0x1c, 0xcb, 0x74, 0xdc, 0x50, 0x5e, 0x20, 0x8b, + 0x96, 0x4d, 0xd7, 0xe4, 0x54, 0x7a, 0xe4, 0x84, 0x88, 0xaa, 0x80, 0xed, 0x3d, 0x79, 0x6b, 0x44, + 0x4e, 0x44, 0x7a, 0xe4, 0xf8, 0xdc, 0x08, 0xc9, 0x3e, 0x74, 0xc2, 0x43, 0x18, 0x4c, 0xd7, 0xb9, + 0x9c, 0xb6, 0x27, 0xa5, 0xbd, 0xa0, 0xef, 0x2e, 0xd1, 0xfe, 0x6e, 0x65, 0x76, 0x3d, 0x70, 0x5c, + 0xcb, 0x60, 0xf3, 0x67, 0xa4, 0x19, 0xa3, 0xd6, 0x2a, 0x55, 0x72, 0x74, 0x74, 0x9b, 0x71, 0x67, + 0xca, 0xe3, 0x73, 0x43, 0xe3, 0x48, 0x0f, 0x98, 0xee, 0x20, 0x9b, 0x78, 0x37, 0x44, 0xf1, 0x9e, + 0x22, 0xae, 0xd9, 0x5c, 0x3d, 0xe4, 0x07, 0x09, 0x65, 0xc5, 0xc7, 0x5d, 0x1d, 0x9d, 0x9b, 0x38, + 0x02, 0xe9, 0x39, 0x3d, 0xc2, 0xe5, 0x1e, 0x25, 0xc2, 0x65, 0x2e, 0xce, 0xee, 0x14, 0xe8, 0x3b, + 0x5f, 0x26, 0x51, 0xff, 0xa5, 0x15, 0x57, 0xee, 0x9d, 0x5d, 0x5a, 0x23, 0x5a, 0x04, 0x75, 0x39, + 0xdf, 0x1d, 0x09, 0x3a, 0x57, 0xbb, 0xb4, 0x81, 0x75, 0x4f, 0x23, 0x3c, 0x12, 0x6e, 0x3d, 0xf2, + 0x53, 0x59, 0x76, 0x67, 0xef, 0x4e, 0x8e, 0x00, 0x75, 0xa7, 0x1e, 0x01, 0xea, 0x4e, 0x8e, 0x00, + 0x75, 0x27, 0x47, 0x80, 0xf2, 0xce, 0x8a, 0xf7, 0x82, 0x0b, 0xff, 0x1d, 0x88, 0xab, 0x64, 0xde, + 0x05, 0xb1, 0x08, 0x9d, 0x6d, 0xf2, 0x39, 0xe6, 0x28, 0xf0, 0x39, 0x86, 0x38, 0xc2, 0x41, 0xba, + 0xfa, 0x8a, 0x8c, 0x6b, 0xa6, 0x2d, 0xdd, 0x89, 0xb0, 0xb4, 0x28, 0xdd, 0x46, 0xfa, 0x7d, 0xf8, + 0x65, 0x46, 0x09, 0xf1, 0xca, 0x8a, 0xe0, 0x5c, 0x3e, 0x69, 0x5f, 0x06, 0xd6, 0x9b, 0x23, 0x50, + 0x8a, 0xb2, 0x60, 0xf9, 0x6d, 0xcb, 0x28, 0x16, 0x95, 0x65, 0x0d, 0xd9, 0xa6, 0xa7, 0xac, 0x37, + 0x37, 0x40, 0x6d, 0xc3, 0x09, 0xa8, 0xbd, 0x79, 0x01, 0x54, 0xaa, 0x06, 0x7c, 0xa2, 0xa8, 0xdf, + 0x66, 0x92, 0xa9, 0x34, 0x23, 0x6b, 0x67, 0xb2, 0xcd, 0x9e, 0xf0, 0x35, 0x96, 0x95, 0xf2, 0xb1, + 0x5e, 0x8f, 0xdb, 0x0b, 0x3e, 0x6c, 0x43, 0xc0, 0x4d, 0x5e, 0x58, 0xe6, 0x41, 0xa7, 0x52, 0x34, + 0xfe, 0x02, 0xb6, 0x01, 0x24, 0x39, 0xf1, 0x02, 0xb6, 0x02, 0x60, 0x52, 0x78, 0x22, 0x9a, 0x3a, + 0xe1, 0x10, 0xed, 0x00, 0x38, 0xa1, 0xf4, 0xc1, 0x93, 0x08, 0x65, 0xd6, 0x5b, 0x1a, 0xa0, 0xf4, + 0xf6, 0x18, 0x94, 0xdf, 0xde, 0xc3, 0x2d, 0x59, 0x2b, 0x5a, 0x72, 0x4b, 0x14, 0x6a, 0xc3, 0x27, + 0xa1, 0x96, 0x4e, 0x6e, 0x54, 0x03, 0x3e, 0x55, 0x26, 0x9e, 0x27, 0xcc, 0x03, 0x4f, 0xd3, 0xb9, + 0x04, 0x3c, 0x48, 0x9e, 0xfe, 0x10, 0x8f, 0x8c, 0x17, 0xec, 0xb1, 0x05, 0xe9, 0x74, 0x26, 0x3d, + 0xa4, 0xef, 0x4c, 0x81, 0xa0, 0xb4, 0xb8, 0xfe, 0x02, 0xf6, 0x1e, 0xc9, 0xe3, 0xfb, 0x07, 0xe4, + 0x82, 0xf4, 0x7b, 0x94, 0x74, 0xcd, 0x20, 0x67, 0x9f, 0x6e, 0x5e, 0x86, 0xe3, 0x6c, 0x28, 0x78, + 0xb2, 0xe5, 0x73, 0xe2, 0x53, 0x29, 0x58, 0x0a, 0x9e, 0xca, 0xc1, 0xe6, 0x74, 0x73, 0x5c, 0x17, + 0x0f, 0xce, 0x5b, 0x25, 0xd3, 0xb4, 0x9d, 0x4a, 0x03, 0xf9, 0xf0, 0x67, 0xcb, 0xb3, 0xd9, 0xec, + 0x37, 0x66, 0xec, 0xf2, 0xe1, 0xc2, 0xd1, 0xe2, 0x9d, 0x07, 0xb1, 0xc7, 0xc4, 0xfa, 0x9d, 0x58, + 0xde, 0x9c, 0x51, 0xa1, 0x97, 0xe9, 0x12, 0x70, 0x93, 0xd3, 0xa8, 0xb4, 0x65, 0xd7, 0x48, 0xde, + 0xc3, 0x9c, 0xae, 0x29, 0x49, 0x10, 0xae, 0xe0, 0xf8, 0xd2, 0x1c, 0x7b, 0x68, 0x17, 0x9d, 0x21, + 0xc9, 0x41, 0xe7, 0x0b, 0xbd, 0x73, 0x84, 0x3f, 0xc6, 0x92, 0x20, 0x28, 0xdb, 0x87, 0xd3, 0xa5, + 0x78, 0xb5, 0x6d, 0x1f, 0xfe, 0xee, 0x2b, 0xf1, 0xb5, 0xf1, 0x57, 0xa2, 0x6b, 0x55, 0xe3, 0x0a, + 0x5c, 0x63, 0x2b, 0xa4, 0x44, 0x43, 0x9a, 0xb0, 0x51, 0x75, 0xf8, 0x04, 0x1c, 0x13, 0xfb, 0x52, + 0x0b, 0x4e, 0x49, 0x7e, 0xa5, 0x25, 0xbf, 0x2f, 0x85, 0x38, 0xc1, 0x85, 0x3d, 0x20, 0xaa, 0xd8, + 0xe6, 0x0c, 0x15, 0xbc, 0xe1, 0x38, 0x10, 0x57, 0x7d, 0xbf, 0x42, 0x99, 0x45, 0xfa, 0xd0, 0x6c, + 0x3d, 0x60, 0x60, 0x8f, 0x25, 0x0f, 0xdd, 0x3c, 0x40, 0x63, 0x89, 0xbf, 0x38, 0x86, 0x91, 0xe7, + 0xc0, 0x72, 0xfd, 0x32, 0x29, 0x01, 0x95, 0xf8, 0xdb, 0x0c, 0xdf, 0x6c, 0xf8, 0x50, 0xea, 0x42, + 0xb8, 0x9a, 0x93, 0x5f, 0xaf, 0xce, 0xbc, 0x77, 0xfd, 0xc5, 0x38, 0x9a, 0x7c, 0xc6, 0x2a, 0xa2, + 0xae, 0x71, 0xec, 0x2e, 0xab, 0xd2, 0xa6, 0x74, 0x89, 0x3d, 0x9e, 0x54, 0xb5, 0x1a, 0xa4, 0x48, + 0x5d, 0x29, 0x6b, 0xa1, 0xff, 0x49, 0xa4, 0x6b, 0xe4, 0x45, 0xc9, 0x05, 0x75, 0xaa, 0x42, 0xe7, + 0x04, 0x3c, 0xa6, 0x66, 0x2c, 0x49, 0xc1, 0x34, 0x8b, 0x6a, 0xd1, 0xdf, 0xfa, 0x49, 0xf6, 0x46, + 0xd8, 0xb0, 0x2c, 0x38, 0x03, 0xa3, 0x76, 0xe1, 0x9b, 0xbf, 0x8e, 0x6c, 0x03, 0xaa, 0x5a, 0x61, + 0x94, 0xaf, 0x64, 0xd9, 0xb1, 0x83, 0x66, 0xc5, 0x4e, 0xfe, 0xee, 0x4c, 0x9c, 0x63, 0x17, 0xbd, + 0xb9, 0xa5, 0x15, 0x6c, 0xb7, 0xb4, 0xe0, 0xfc, 0x74, 0x23, 0x27, 0x2c, 0x76, 0xed, 0x69, 0xff, + 0x7e, 0x56, 0xfe, 0x8c, 0x54, 0xe0, 0x05, 0xde, 0x99, 0xc5, 0xb5, 0xc8, 0xfe, 0xc3, 0x7a, 0x84, + 0x46, 0x0e, 0xd8, 0x52, 0xdc, 0x3e, 0x6e, 0xbf, 0x45, 0x69, 0x23, 0xad, 0x24, 0xd2, 0xf0, 0x50, + 0x4d, 0x78, 0x67, 0xc5, 0x3b, 0xcb, 0xd6, 0xe9, 0xa5, 0x5a, 0x44, 0xc4, 0xc3, 0xad, 0xa1, 0x3b, + 0x1a, 0xc0, 0xb6, 0xa5, 0x1b, 0x39, 0xf5, 0x2b, 0xdf, 0x1d, 0xd9, 0x12, 0xba, 0x23, 0xc2, 0xe7, + 0xf0, 0x4a, 0xcb, 0x7b, 0x95, 0x96, 0xec, 0x7e, 0xe4, 0xfc, 0x7a, 0x84, 0xa1, 0x56, 0xac, 0xbf, + 0xc3, 0x25, 0xf4, 0xac, 0x96, 0xe2, 0x9a, 0xec, 0xaa, 0x2d, 0xe2, 0x7d, 0xc2, 0x85, 0x10, 0x5c, + 0x2e, 0x62, 0x4f, 0x83, 0x94, 0x41, 0x3c, 0x4d, 0xda, 0x1f, 0xd5, 0xd8, 0xc6, 0x7a, 0xbc, 0x3a, + 0x13, 0x6b, 0x90, 0xaa, 0xf6, 0x3b, 0xfa, 0x25, 0xb2, 0xd9, 0x2a, 0x67, 0x3f, 0xf0, 0x16, 0x4c, + 0x31, 0x27, 0x06, 0xa0, 0x26, 0x5d, 0x4f, 0xd6, 0x1a, 0xbd, 0x00, 0x97, 0xc4, 0x68, 0xaf, 0xb0, + 0xbd, 0x34, 0x9c, 0x76, 0xeb, 0x30, 0x66, 0x2f, 0x0b, 0x42, 0x08, 0x9f, 0x2b, 0xf0, 0xb9, 0x15, + 0x9f, 0x4b, 0xf0, 0x59, 0xc5, 0x67, 0x33, 0x47, 0x65, 0xa3, 0x68, 0x92, 0xfb, 0xbc, 0xc5, 0x5e, + 0xf2, 0x58, 0x4d, 0xbe, 0xb8, 0xeb, 0x85, 0x9e, 0xe2, 0xd0, 0x28, 0x51, 0x2c, 0xb2, 0x04, 0x12, + 0xd6, 0x20, 0x7e, 0x2f, 0xdc, 0xbf, 0x99, 0xac, 0xf0, 0xbc, 0xb0, 0x66, 0xa4, 0x0f, 0x28, 0x86, + 0x94, 0xc2, 0x1a, 0x61, 0xa6, 0xcd, 0x74, 0xea, 0xdd, 0x03, 0x46, 0xff, 0x00, 0x44, 0xb7, 0x2f, + 0xe8, 0x5b, 0xe9, 0x1b, 0x80, 0xc6, 0xd1, 0x78, 0x5f, 0xa6, 0x5e, 0x8a, 0xff, 0x3a, 0x88, 0xa2, + 0x46, 0x7c, 0x5f, 0xed, 0x82, 0xdf, 0xef, 0xfb, 0xd5, 0xaf, 0x07, 0xee, 0xad, 0x07, 0x4e, 0x49, + 0x60, 0x4a, 0x9c, 0x53, 0x5a, 0x86, 0x20, 0x88, 0xed, 0xbe, 0xff, 0xba, 0xc6, 0x19, 0x6f, 0xae, + 0x5f, 0xa1, 0xbc, 0xf4, 0x60, 0xca, 0x88, 0xbd, 0xac, 0x51, 0xfd, 0x2b, 0x66, 0xbc, 0xb1, 0x16, + 0x5b, 0x59, 0xfc, 0xd2, 0xfa, 0xd4, 0xca, 0xcd, 0x0b, 0xe6, 0x87, 0x21, 0x34, 0x12, 0x9f, 0x1f, + 0x82, 0x08, 0xb6, 0xaf, 0x17, 0xdb, 0x15, 0x14, 0xf6, 0x49, 0x97, 0xb6, 0xf2, 0x4e, 0xe8, 0x70, + 0xda, 0xa0, 0xb6, 0x39, 0xcc, 0x8e, 0x36, 0xd5, 0xb6, 0xaa, 0xf4, 0xc8, 0xdf, 0x90, 0x17, 0x6d, + 0x6f, 0x12, 0x7b, 0xd3, 0x02, 0xd5, 0x22, 0x3e, 0xfb, 0xd4, 0x41, 0x1c, 0x73, 0x3f, 0x8e, 0x37, + 0xc7, 0x76, 0x4a, 0x59, 0x6a, 0x84, 0x2e, 0x9b, 0x89, 0x34, 0xbc, 0x57, 0xe0, 0xba, 0xff, 0xfb, + 0x37, 0xff, 0xf6, 0x8d, 0x97, 0x44, 0xce, 0x2d, 0x2f, 0xeb, 0x57, 0x55, 0x76, 0x98, 0x73, 0x1e, + 0xe7, 0x14, 0xde, 0x05, 0xba, 0x48, 0xb6, 0x34, 0x35, 0xf3, 0xa0, 0x22, 0x30, 0x0f, 0xe6, 0xe8, + 0x96, 0xc5, 0x36, 0xfc, 0xb7, 0xb0, 0x85, 0xf3, 0x3c, 0x61, 0x7d, 0xf3, 0x7d, 0xf2, 0xfa, 0x7c, + 0x91, 0xa3, 0xd6, 0x2c, 0xe8, 0x73, 0x93, 0xad, 0xec, 0x8e, 0x78, 0x9f, 0x3d, 0xd0, 0x50, 0x83, + 0x92, 0x47, 0xc3, 0x1f, 0x47, 0xe0, 0xe7, 0xaf, 0x0f, 0x94, 0xfa, 0x23, 0x81, 0x3e, 0x6d, 0x2a, + 0x7c, 0x6e, 0x18, 0x7e, 0xf6, 0xda, 0xbd, 0xc2, 0x43, 0x36, 0xe1, 0x1e, 0xb2, 0x76, 0x39, 0x91, + 0xdd, 0x2f, 0x27, 0xe8, 0x74, 0x22, 0x25, 0x09, 0x78, 0x91, 0xfb, 0xd8, 0x13, 0x1c, 0x00, 0x7b, + 0xf3, 0xa4, 0x36, 0xa4, 0x46, 0x10, 0x1a, 0x6c, 0x6a, 0x35, 0xc2, 0x46, 0xbd, 0xea, 0xe2, 0xa8, + 0x0b, 0x0a, 0x42, 0x82, 0x04, 0x5e, 0x3a, 0x33, 0x23, 0xbc, 0xc5, 0x71, 0x37, 0xe9, 0x6c, 0xed, + 0x71, 0xf6, 0x85, 0x15, 0x4a, 0xcd, 0xd1, 0xa3, 0xe6, 0x1c, 0xe0, 0x3e, 0x5b, 0x75, 0x5a, 0xb9, + 0x93, 0x47, 0x62, 0xe7, 0xe3, 0xaf, 0x2b, 0x66, 0x9d, 0x5a, 0xe6, 0xac, 0xd6, 0xe8, 0xcc, 0x83, + 0x57, 0xa7, 0x11, 0xd7, 0x17, 0xae, 0x00, 0xa2, 0x97, 0x78, 0x57, 0x8f, 0xdc, 0xb1, 0x8d, 0x35, + 0xf8, 0x14, 0x8a, 0xb1, 0x98, 0x01, 0x75, 0x95, 0x52, 0x92, 0x4a, 0x28, 0x26, 0xb5, 0x51, 0x91, + 0x7e, 0x31, 0x9e, 0x52, 0x94, 0x10, 0xdb, 0x4d, 0x5b, 0xc8, 0x03, 0x4d, 0x11, 0x58, 0x56, 0x13, + 0x5b, 0xf4, 0xdd, 0x6c, 0xf4, 0x0c, 0x80, 0x1d, 0x76, 0x7a, 0x3f, 0x77, 0xfa, 0x7b, 0xf2, 0xf2, + 0x66, 0xbf, 0x5e, 0x31, 0x25, 0x56, 0xa7, 0xc6, 0x12, 0xc3, 0xa9, 0x9d, 0x14, 0x07, 0xfb, 0x17, + 0xfb, 0x53, 0x26, 0xb2, 0xaa, 0x83, 0x35, 0xaa, 0x72, 0x75, 0x89, 0x29, 0x59, 0x31, 0x29, 0xad, + 0xbc, 0x4e, 0x0f, 0xa9, 0x1d, 0xf6, 0xd6, 0x0c, 0x10, 0x97, 0x96, 0x2a, 0x25, 0xff, 0x2e, 0x74, + 0x02, 0x5b, 0xa4, 0xfb, 0x70, 0x49, 0xd5, 0xaa, 0x75, 0x57, 0xd7, 0x87, 0x5f, 0xcf, 0xb4, 0x7f, + 0x87, 0xbf, 0x38, 0x8e, 0x75, 0xcc, 0x11, 0xb1, 0x04, 0x0a, 0xbf, 0x4b, 0x9b, 0xb0, 0x67, 0x46, + 0xec, 0x95, 0xac, 0x98, 0x85, 0x9e, 0x09, 0xd4, 0x93, 0xbe, 0x3b, 0x7b, 0x77, 0x43, 0x1c, 0xe8, + 0x22, 0x1c, 0x48, 0xfb, 0xe5, 0x61, 0x7b, 0x1f, 0x54, 0x27, 0xb6, 0xf4, 0x23, 0xd7, 0xe3, 0x1a, + 0x4e, 0x6c, 0xa6, 0xab, 0x63, 0xb8, 0x0e, 0xe9, 0xd3, 0x3f, 0x1e, 0xec, 0x95, 0x5d, 0x7f, 0x83, + 0x77, 0xd6, 0x7f, 0x3c, 0xd0, 0x2b, 0x3b, 0xe8, 0x8e, 0xbc, 0x46, 0x79, 0x3c, 0x21, 0x53, 0x35, + 0xeb, 0x2f, 0x3a, 0x3c, 0x61, 0xa5, 0x1a, 0xaa, 0xf9, 0x19, 0xa4, 0xda, 0x74, 0x69, 0xfb, 0xdf, + 0xfc, 0xe3, 0xdb, 0xbd, 0xb2, 0xf3, 0x6f, 0xfc, 0xf8, 0x4d, 0xfb, 0x43, 0x3f, 0x9f, 0xe8, 0xad, + 0x51, 0xdd, 0xca, 0xd7, 0xec, 0xa5, 0xae, 0xd0, 0xef, 0x77, 0xff, 0xe3, 0x1b, 0xbd, 0xc6, 0xbf, + 0xdb, 0xed, 0xfc, 0x1b, 0xd5, 0x98, 0x18, 0xee, 0x95, 0x23, 0x8f, 0x29, 0x36, 0x7b, 0x09, 0xe5, + 0x73, 0x84, 0xde, 0xd9, 0xfd, 0xf3, 0xd7, 0x7b, 0x8d, 0x8f, 0xed, 0x56, 0x1e, 0xd2, 0xdf, 0x8d, + 0x88, 0x53, 0x5c, 0xaf, 0x99, 0xf1, 0xfb, 0x5c, 0x08, 0x2a, 0x21, 0xe4, 0x71, 0x5d, 0x72, 0x74, + 0xfb, 0x3f, 0x20, 0x47, 0x85, 0x5f, 0xf8, 0xdd, 0x60, 0xde, 0xde, 0x05, 0xe6, 0x81, 0xfc, 0x18, + 0x1e, 0xa3, 0x3e, 0x92, 0x25, 0x99, 0xb2, 0x0c, 0x82, 0xaa, 0x43, 0xc1, 0xdc, 0xa3, 0x94, 0xbb, + 0x1c, 0xc7, 0xbd, 0xa4, 0xaf, 0x84, 0xe2, 0x0d, 0xf6, 0x59, 0xf0, 0x1b, 0x4b, 0xaf, 0x71, 0x14, + 0x31, 0x7e, 0x5f, 0x6e, 0xec, 0x15, 0x13, 0x73, 0x35, 0xf5, 0x0e, 0xfd, 0xec, 0xc0, 0x49, 0xf6, + 0x40, 0x7c, 0x5e, 0x4c, 0x1c, 0x14, 0xf2, 0x75, 0x55, 0x48, 0x79, 0x43, 0x7c, 0xbf, 0x98, 0xf5, + 0x44, 0xe4, 0xc8, 0xe3, 0x4c, 0x05, 0x13, 0x7a, 0x54, 0x96, 0x86, 0x6b, 0x44, 0x65, 0x69, 0x10, + 0x51, 0x59, 0x5c, 0xa0, 0xbf, 0x5f, 0x91, 0x58, 0x97, 0x2e, 0xa7, 0xa8, 0x2c, 0x29, 0x0b, 0x97, + 0x61, 0xcd, 0x48, 0xee, 0x61, 0xd5, 0x84, 0x65, 0xbb, 0x98, 0x13, 0xa5, 0xf5, 0x59, 0x29, 0x3c, + 0xb0, 0x71, 0x44, 0x96, 0x65, 0xc8, 0x1b, 0xfa, 0xd8, 0x6a, 0xbd, 0x22, 0xed, 0xf4, 0xe1, 0xdc, + 0x53, 0xec, 0xf9, 0x54, 0x65, 0x0d, 0xf6, 0x99, 0x34, 0x6d, 0x6d, 0x73, 0x71, 0xdd, 0x0e, 0x07, + 0x86, 0xb4, 0xa9, 0x2d, 0xe3, 0xb1, 0xf3, 0xcf, 0xc1, 0x2f, 0x7e, 0x33, 0x90, 0xed, 0xcf, 0xeb, + 0x8a, 0x49, 0x78, 0x54, 0x23, 0x6e, 0x90, 0x63, 0x74, 0xf4, 0x48, 0x22, 0x0a, 0xa2, 0xf1, 0xd6, + 0x36, 0xa9, 0x14, 0xe7, 0xa3, 0x47, 0xf2, 0x65, 0xe6, 0xe4, 0xf9, 0x17, 0xe6, 0x10, 0xe7, 0x50, + 0xcc, 0x1f, 0x7b, 0x28, 0x2f, 0x6d, 0xc6, 0x4e, 0x93, 0xae, 0x8a, 0x54, 0xa9, 0x3c, 0x7c, 0x6b, + 0x02, 0x7f, 0xcd, 0x59, 0xee, 0x2f, 0xe8, 0xa3, 0xb3, 0x2f, 0xe4, 0xba, 0xd8, 0x3a, 0xb3, 0x0e, + 0xd7, 0x34, 0x52, 0x1b, 0xe6, 0xa8, 0xc8, 0x17, 0xf1, 0xfc, 0xe2, 0x48, 0x1a, 0x57, 0x2f, 0xc2, + 0x48, 0x72, 0xec, 0xc2, 0xa2, 0x1a, 0xb6, 0x64, 0xa7, 0x35, 0xc6, 0xd4, 0x1d, 0xb9, 0xc1, 0x4e, + 0xc1, 0x85, 0x4d, 0x10, 0xe7, 0x27, 0xd1, 0x9a, 0x79, 0x66, 0x89, 0x33, 0x43, 0xb1, 0x18, 0x00, + 0xd6, 0xdf, 0x47, 0x7b, 0xed, 0xf2, 0x28, 0xd2, 0x06, 0x18, 0x51, 0xeb, 0x33, 0x0a, 0xa6, 0x76, + 0x61, 0x4a, 0x08, 0x53, 0xee, 0x57, 0x17, 0xe1, 0x17, 0x48, 0x8a, 0xd3, 0xf5, 0x4b, 0x4a, 0xe8, + 0x5b, 0x84, 0xee, 0x20, 0x5e, 0x0d, 0xd8, 0xdf, 0x25, 0xaa, 0xdd, 0xb2, 0x46, 0x22, 0x5b, 0x80, + 0x84, 0x65, 0x0d, 0x69, 0x8f, 0xa5, 0x5a, 0x55, 0xd3, 0xf5, 0xe4, 0x2b, 0xc5, 0xa0, 0x36, 0xe2, + 0xf5, 0x06, 0xbc, 0xd6, 0xe3, 0xf5, 0x7a, 0xbc, 0xd6, 0xe0, 0xb5, 0x04, 0xaf, 0xd5, 0x78, 0x9d, + 0x85, 0x57, 0xe7, 0xf5, 0xe4, 0xa3, 0xc3, 0xa0, 0xce, 0xb9, 0x9e, 0x7c, 0x7e, 0x18, 0xd4, 0xb2, + 0xeb, 0xc9, 0xf3, 0x88, 0x41, 0xa5, 0xc8, 0x45, 0xa5, 0x78, 0x35, 0xe2, 0xd5, 0x0c, 0x06, 0x3a, + 0xf3, 0xb8, 0x8d, 0xf8, 0x44, 0xd3, 0xcd, 0x51, 0x30, 0x7b, 0xcd, 0xf1, 0x2e, 0x9c, 0x69, 0xec, + 0x31, 0xe9, 0x99, 0x11, 0x8f, 0xe2, 0x2b, 0x12, 0x9e, 0xbf, 0x72, 0x23, 0x8e, 0x2b, 0xcc, 0xd3, + 0x0d, 0x1d, 0x34, 0x32, 0x2e, 0x3a, 0x95, 0x17, 0xb6, 0x96, 0x14, 0xf1, 0x32, 0xcb, 0x31, 0x11, + 0xf5, 0x5a, 0xde, 0x67, 0xc1, 0xbb, 0x10, 0x47, 0x41, 0x7e, 0x58, 0x75, 0x0d, 0xaa, 0x98, 0xd6, + 0xa1, 0x53, 0xb2, 0x95, 0x8a, 0xf0, 0x93, 0x07, 0xa4, 0xf1, 0x24, 0x03, 0xc9, 0xce, 0x53, 0xeb, + 0xd8, 0x4a, 0xee, 0x5e, 0xe1, 0x53, 0x4f, 0x46, 0xb9, 0x03, 0x21, 0xf2, 0x22, 0x3d, 0xa1, 0x74, + 0xcb, 0x1e, 0x0b, 0xa5, 0x8e, 0xc1, 0x22, 0xe4, 0x4f, 0x4c, 0x2c, 0x3b, 0xbc, 0xa9, 0x06, 0xf8, + 0xba, 0x5f, 0xf5, 0xb0, 0xdf, 0x4e, 0xba, 0x37, 0xa9, 0x0a, 0x69, 0x54, 0x65, 0xe3, 0x9b, 0x2b, + 0xed, 0xad, 0x9b, 0x3c, 0x89, 0xd1, 0x0d, 0x29, 0x23, 0xcd, 0xb8, 0xca, 0xbb, 0x01, 0x62, 0x9e, + 0x91, 0x46, 0x1c, 0xa3, 0x48, 0x44, 0x2e, 0xfd, 0xa4, 0x80, 0x6c, 0x2e, 0x9d, 0x48, 0x17, 0x38, + 0xee, 0x0e, 0xcf, 0xf6, 0xc2, 0x53, 0x10, 0x64, 0x7c, 0x7d, 0x5d, 0x9a, 0x3c, 0x4c, 0x0b, 0xcd, + 0x2c, 0x85, 0xad, 0xce, 0x8f, 0xb2, 0x16, 0x97, 0x2c, 0xb0, 0xb7, 0xd7, 0x4a, 0x90, 0xc0, 0xde, + 0x0b, 0xad, 0xba, 0x26, 0x68, 0x25, 0xe3, 0xaa, 0xac, 0xd5, 0xbb, 0x01, 0x7b, 0x6d, 0xd1, 0xad, + 0xdf, 0x29, 0x2e, 0x74, 0x94, 0x7c, 0x5c, 0x09, 0xdb, 0xbf, 0x1c, 0xb7, 0x4a, 0x16, 0x80, 0xb6, + 0x42, 0x1f, 0x59, 0x21, 0xe4, 0xd4, 0xe8, 0x54, 0x2d, 0xeb, 0x2f, 0x51, 0x58, 0x8a, 0x2a, 0xe4, + 0x57, 0x77, 0x2b, 0x62, 0xde, 0x27, 0x79, 0x77, 0xff, 0x78, 0x55, 0x52, 0xfb, 0x20, 0xf2, 0x13, + 0xed, 0x64, 0xf8, 0x8c, 0x36, 0x59, 0x15, 0xd7, 0x3e, 0x0a, 0x78, 0xc0, 0xba, 0xa5, 0x87, 0x77, + 0x8c, 0xab, 0x20, 0x84, 0xff, 0x41, 0xf1, 0xf5, 0xff, 0xd8, 0xba, 0x25, 0x74, 0x57, 0x44, 0x3b, + 0x47, 0x67, 0x83, 0xf8, 0xbe, 0xed, 0xaa, 0xf7, 0x47, 0xf8, 0x3d, 0xd9, 0x77, 0x5d, 0x60, 0x2b, + 0xad, 0xb5, 0x71, 0xf2, 0x7e, 0xce, 0x5e, 0x0c, 0xcf, 0x1f, 0xd5, 0xed, 0x45, 0x29, 0xfe, 0x23, + 0xf9, 0x0c, 0xc3, 0x99, 0x62, 0x0d, 0x50, 0x17, 0x42, 0x3a, 0xca, 0xe0, 0xb0, 0x8c, 0xda, 0x8a, + 0x12, 0xbe, 0x47, 0xb7, 0xc1, 0xb7, 0x68, 0xfb, 0x75, 0xeb, 0xc3, 0xf3, 0x8c, 0x75, 0xbc, 0xc2, + 0x93, 0x24, 0xc9, 0x30, 0x88, 0x91, 0xa3, 0xa4, 0xf5, 0xe4, 0x42, 0x4e, 0x2d, 0xb1, 0x86, 0xe2, + 0xc8, 0x47, 0xf7, 0xa4, 0x88, 0x6a, 0x85, 0x7c, 0x2f, 0x83, 0x14, 0xdd, 0xd3, 0x1d, 0xa5, 0xb8, + 0x75, 0x59, 0x28, 0x4a, 0xdb, 0xbc, 0x16, 0xe6, 0x6a, 0xc6, 0x2e, 0x8b, 0x08, 0x5a, 0x4e, 0xf2, + 0x4e, 0x80, 0xf3, 0x31, 0x47, 0x41, 0xee, 0x0d, 0xa9, 0x28, 0xbe, 0x9d, 0xef, 0x85, 0x46, 0x8a, + 0x87, 0x89, 0xbd, 0xc1, 0x76, 0x5d, 0x22, 0x7f, 0x5f, 0xa5, 0x19, 0xf2, 0xbf, 0xac, 0x78, 0x13, + 0xe0, 0x40, 0x4e, 0xcd, 0xe5, 0xb5, 0xe8, 0xde, 0x25, 0x67, 0x13, 0xcf, 0xb7, 0x70, 0xf2, 0xbc, + 0x25, 0xb9, 0x55, 0x89, 0xe2, 0x0c, 0x53, 0xf4, 0x07, 0x1b, 0x53, 0x5a, 0x17, 0xf2, 0xd4, 0x3e, + 0x3d, 0x2e, 0x71, 0xde, 0x53, 0x01, 0xef, 0xe8, 0x0a, 0x2b, 0x59, 0xb6, 0x5d, 0xb3, 0xa9, 0x06, + 0xe7, 0x42, 0xc2, 0x65, 0xd8, 0xce, 0x39, 0x39, 0xbe, 0xb8, 0x94, 0x4f, 0x36, 0xae, 0x4b, 0x93, + 0xdd, 0x80, 0x81, 0xfd, 0x15, 0x6e, 0x58, 0x0e, 0x72, 0xcf, 0x3f, 0x69, 0x60, 0xe5, 0x9d, 0x4a, + 0x4b, 0x3a, 0x69, 0x92, 0xc9, 0x4f, 0x31, 0x47, 0x5b, 0x35, 0x73, 0xe4, 0xd5, 0x20, 0x43, 0xd2, + 0xac, 0x2c, 0x1f, 0x9a, 0x1c, 0xbb, 0x48, 0x27, 0x30, 0x36, 0xf6, 0x7b, 0x4b, 0xde, 0x6a, 0x20, + 0xff, 0xe6, 0x72, 0xa7, 0x9b, 0x7d, 0x91, 0xa9, 0x66, 0xe8, 0xa3, 0x71, 0xce, 0x79, 0x9b, 0xd5, + 0x3d, 0x0c, 0xe2, 0x28, 0xbf, 0x4f, 0xba, 0x40, 0x0e, 0xf2, 0xee, 0x88, 0x92, 0x22, 0xf9, 0xe0, + 0xa3, 0x53, 0xf4, 0xac, 0x3c, 0xca, 0x72, 0xa8, 0xc9, 0x8b, 0x7c, 0x18, 0xf2, 0x3f, 0x09, 0x84, + 0xda, 0x38, 0xae, 0x54, 0xd7, 0x04, 0x69, 0x9b, 0x57, 0xe2, 0xe8, 0x38, 0xbc, 0xf2, 0x02, 0xd6, + 0x48, 0xc4, 0x79, 0xde, 0xc2, 0xfc, 0x88, 0x2c, 0xea, 0x3d, 0xf7, 0x01, 0x73, 0x98, 0x8b, 0xf1, + 0x3f, 0xce, 0xbb, 0xf1, 0xb4, 0x3e, 0xa9, 0x95, 0x3e, 0xd2, 0x93, 0x21, 0x18, 0x11, 0xf2, 0x09, + 0x63, 0xf0, 0x07, 0xd3, 0x15, 0x98, 0xcf, 0xc4, 0x2b, 0x44, 0xd2, 0x35, 0x5c, 0xe9, 0xbc, 0x70, + 0x07, 0xcd, 0x06, 0xf3, 0x48, 0x76, 0x96, 0xd1, 0xba, 0x41, 0x51, 0x4b, 0x28, 0xb2, 0x58, 0x01, + 0x76, 0xae, 0xb1, 0x47, 0x1c, 0xd7, 0xa7, 0x4e, 0xb6, 0xbc, 0x17, 0x65, 0x7e, 0xbf, 0x96, 0x30, + 0x6f, 0xa9, 0xd3, 0x2b, 0x34, 0x10, 0x84, 0x85, 0x9f, 0xeb, 0xa0, 0x43, 0xe0, 0x55, 0xff, 0xed, + 0x51, 0x28, 0xbd, 0x05, 0x71, 0x0d, 0x94, 0x25, 0xd6, 0xb2, 0x1f, 0x66, 0xf2, 0x58, 0xd8, 0x0d, + 0x15, 0x79, 0x3f, 0x0b, 0x5e, 0x5d, 0x77, 0x72, 0xae, 0xb1, 0x75, 0x53, 0x56, 0x4e, 0x34, 0x54, + 0xb2, 0x9c, 0xc8, 0x36, 0x71, 0x14, 0x71, 0x2c, 0x7c, 0xa2, 0x40, 0x9f, 0xf0, 0x0d, 0xf6, 0x07, + 0xc9, 0x1a, 0x01, 0x8e, 0x9b, 0xb2, 0xfa, 0x36, 0xb4, 0xc7, 0x40, 0xe9, 0x08, 0x13, 0x5e, 0x28, + 0x21, 0x4c, 0x47, 0x7b, 0x22, 0xe1, 0x93, 0x05, 0xdf, 0xed, 0xcb, 0x69, 0xe0, 0xd4, 0xe5, 0x3c, + 0xca, 0xba, 0xa1, 0x1c, 0xf9, 0x13, 0x19, 0x42, 0xe1, 0x49, 0x6d, 0x64, 0x30, 0xb4, 0x9d, 0xfd, + 0xe6, 0xd3, 0x3c, 0xcb, 0x95, 0xc9, 0x11, 0x7a, 0x6b, 0x07, 0xe4, 0x70, 0x64, 0xd2, 0x67, 0x4a, + 0x91, 0xdf, 0x80, 0x62, 0xe9, 0xc6, 0x74, 0x0b, 0x22, 0x7d, 0x73, 0xca, 0x8e, 0xbf, 0xb3, 0xd2, + 0x46, 0xd2, 0xbb, 0x56, 0x2b, 0xe9, 0x97, 0xe3, 0x2a, 0xf2, 0xda, 0xf4, 0xec, 0x67, 0xac, 0x38, + 0x87, 0x35, 0x9d, 0x64, 0x1a, 0xe3, 0xe9, 0x7a, 0xa3, 0x55, 0x2f, 0x33, 0xc6, 0x79, 0x6f, 0xf7, + 0x36, 0x96, 0x34, 0x24, 0xf8, 0x06, 0xc9, 0x6f, 0x72, 0xa5, 0xd0, 0x36, 0xf0, 0xce, 0x12, 0x69, + 0xc2, 0x33, 0x73, 0x74, 0xd8, 0x0b, 0x6a, 0x67, 0x61, 0x8b, 0x5a, 0x37, 0xfd, 0xe7, 0xd4, 0xcf, + 0x1a, 0xe3, 0xac, 0x2d, 0x3b, 0x35, 0xce, 0x11, 0x26, 0xb8, 0x56, 0xc4, 0x56, 0xe7, 0xf4, 0x5d, + 0xc1, 0x6d, 0xbc, 0x5f, 0xb1, 0x91, 0xbd, 0xbb, 0xdc, 0x8d, 0x77, 0x6b, 0x88, 0x7f, 0xc0, 0x55, + 0x44, 0x5a, 0x82, 0xa5, 0xaa, 0x6d, 0xd0, 0xb0, 0xfd, 0x39, 0xa4, 0xa4, 0xc6, 0x5f, 0x9c, 0x80, + 0x4a, 0x6c, 0x7f, 0x48, 0xb1, 0xa5, 0x4e, 0x8b, 0x7d, 0xd5, 0x69, 0x91, 0xb8, 0x01, 0x7e, 0x44, + 0x7b, 0x3b, 0x5e, 0x17, 0xd1, 0xa6, 0x8b, 0xa0, 0xd3, 0x5b, 0xfb, 0xf5, 0xe4, 0x79, 0xcb, 0x70, + 0x1b, 0xfd, 0x1a, 0x6f, 0x4e, 0x20, 0x05, 0x9b, 0x95, 0xa7, 0x60, 0x67, 0x38, 0xfe, 0x31, 0xed, + 0xb7, 0x30, 0x7c, 0xb2, 0xd7, 0x98, 0x8f, 0x2a, 0xd5, 0x0e, 0x2a, 0x87, 0x68, 0xd7, 0x63, 0xaf, + 0x21, 0xdd, 0x38, 0x32, 0xfa, 0x82, 0xa4, 0xa4, 0xa2, 0xec, 0xb5, 0x75, 0xdb, 0x57, 0x29, 0xf5, + 0xf4, 0x9b, 0x57, 0x97, 0xfa, 0xe9, 0x5e, 0x21, 0xb9, 0x92, 0xe6, 0xf4, 0xd5, 0x7b, 0x6a, 0x53, + 0xb2, 0xbe, 0xe3, 0xe0, 0x73, 0xea, 0x36, 0x99, 0x8a, 0x88, 0x2f, 0xb6, 0xb1, 0x69, 0x52, 0x3b, + 0xa9, 0xce, 0xf9, 0x1d, 0xe2, 0x8f, 0x77, 0xba, 0xc1, 0x88, 0x23, 0xb5, 0x31, 0xcd, 0xe7, 0xe6, + 0xb9, 0xb8, 0xa2, 0xdd, 0xb0, 0x85, 0xe5, 0x82, 0xa3, 0x48, 0x85, 0x2d, 0xc2, 0x7e, 0xd2, 0xa9, + 0xfb, 0xe7, 0x5d, 0x70, 0x0a, 0x8e, 0x39, 0xdc, 0x48, 0x89, 0xf5, 0xd8, 0x79, 0xee, 0x1e, 0x38, + 0xe6, 0x0a, 0xc2, 0xbf, 0x55, 0x36, 0x3a, 0xe9, 0x37, 0x43, 0x3b, 0xc8, 0x95, 0x4f, 0x53, 0xf4, + 0x0d, 0xcf, 0x7e, 0xf2, 0x22, 0xf2, 0xf9, 0xfb, 0x48, 0x3d, 0xb6, 0x26, 0xe6, 0xc1, 0x4d, 0x28, + 0x81, 0x3e, 0xec, 0xe9, 0x03, 0xd7, 0x3f, 0x9e, 0x42, 0x9e, 0xad, 0x04, 0x69, 0x3e, 0xad, 0xdd, + 0x59, 0xe4, 0x09, 0x84, 0x71, 0x6d, 0x2f, 0x47, 0x57, 0x48, 0x21, 0xdf, 0x2b, 0x23, 0x87, 0x56, + 0xf3, 0x8f, 0x1f, 0xc9, 0x4a, 0xca, 0x47, 0xfe, 0x33, 0xc9, 0x03, 0x08, 0xf5, 0x5a, 0xd7, 0x54, + 0xb6, 0x52, 0x4c, 0x0f, 0xb9, 0x8f, 0x61, 0x4d, 0x94, 0x31, 0x5b, 0x69, 0xe0, 0x32, 0x5c, 0xaa, + 0x0b, 0xbf, 0xaa, 0x4c, 0x91, 0x17, 0x60, 0x2b, 0xed, 0x53, 0xb7, 0x6e, 0x52, 0xcb, 0x3c, 0xfd, + 0xe0, 0x50, 0x65, 0x61, 0x79, 0x97, 0x36, 0xfd, 0xe3, 0x47, 0x28, 0xa1, 0x9c, 0x53, 0x2b, 0xdc, + 0x7d, 0x60, 0xd0, 0xed, 0x2c, 0x52, 0xd9, 0x28, 0x7f, 0x24, 0xcf, 0x11, 0x87, 0x9c, 0xad, 0x51, + 0xc4, 0xb7, 0x78, 0x2d, 0x74, 0xcd, 0xba, 0x2a, 0xd5, 0x97, 0xb3, 0xde, 0x33, 0x1d, 0x22, 0xca, + 0x46, 0x29, 0x4a, 0x7e, 0xd6, 0xe0, 0x3c, 0x28, 0x21, 0xaf, 0x5e, 0x2e, 0x0f, 0x74, 0xb0, 0x75, + 0xc5, 0xa1, 0x74, 0xa3, 0xcd, 0x4d, 0xfa, 0x27, 0x77, 0x85, 0xb4, 0xb3, 0x25, 0xa4, 0x6f, 0xb1, + 0xfa, 0xae, 0xb0, 0x76, 0x8e, 0xfc, 0x3f, 0xb5, 0x87, 0xf0, 0xb9, 0x36, 0xbe, 0x7a, 0x24, 0x3c, + 0x11, 0xc1, 0xb7, 0xe4, 0x53, 0xc1, 0xcc, 0x69, 0x77, 0x72, 0x5a, 0x23, 0x45, 0x8a, 0x41, 0x3a, + 0x7b, 0x16, 0xe9, 0xec, 0xfb, 0xaa, 0x01, 0x29, 0xe5, 0xfb, 0x89, 0xc8, 0x80, 0x31, 0x81, 0xdf, + 0xf4, 0x5b, 0x13, 0x8d, 0x03, 0x20, 0xad, 0xc2, 0xfb, 0x3b, 0xf1, 0x3a, 0x58, 0xed, 0x46, 0x2e, + 0xa9, 0x5b, 0x66, 0x99, 0x3b, 0x65, 0xc0, 0xbb, 0xca, 0x47, 0xf7, 0xdb, 0x9b, 0xd9, 0xbf, 0xce, + 0x33, 0x4a, 0xf3, 0x63, 0xaf, 0xf1, 0x5d, 0x1b, 0x9d, 0x30, 0xdd, 0xd5, 0x03, 0x1e, 0xed, 0x34, + 0xfe, 0x56, 0x6b, 0x1f, 0x45, 0xf0, 0x1e, 0xff, 0xab, 0xb1, 0x54, 0x5c, 0x1d, 0xd4, 0x96, 0x81, + 0x55, 0xd4, 0xae, 0xf8, 0x6a, 0x5f, 0x68, 0x64, 0xf7, 0x5d, 0x71, 0xed, 0x62, 0x04, 0x25, 0x54, + 0x3d, 0xe2, 0x04, 0xb7, 0x8d, 0x23, 0x4d, 0x14, 0x3b, 0x66, 0x7f, 0x67, 0x0d, 0x42, 0x0b, 0x9f, + 0x2a, 0x5f, 0xde, 0xc8, 0x91, 0xa5, 0xe6, 0xf0, 0x0a, 0x14, 0xfd, 0x2d, 0xe3, 0x93, 0xb4, 0xb3, + 0x8c, 0x49, 0x35, 0xa9, 0x43, 0x3f, 0x2b, 0x50, 0xec, 0x4d, 0xc2, 0x2b, 0x97, 0xf0, 0xd0, 0x15, + 0x98, 0xa7, 0x5d, 0x8a, 0xef, 0xa9, 0x21, 0x8f, 0x5a, 0xaf, 0x90, 0xb6, 0xcf, 0xa5, 0x43, 0xd4, + 0x23, 0x6e, 0xc5, 0x9d, 0x03, 0xab, 0xb0, 0xde, 0x8b, 0x54, 0x63, 0xae, 0x25, 0x93, 0x7e, 0x1a, + 0x2f, 0x8a, 0x98, 0x73, 0xe9, 0x9a, 0xad, 0x30, 0xfe, 0xa7, 0xb5, 0xe2, 0x27, 0xda, 0x89, 0xb4, + 0x45, 0x69, 0xb6, 0xf7, 0x69, 0x27, 0xc4, 0xa8, 0xdd, 0xd1, 0xa7, 0x9d, 0x06, 0x0f, 0xfe, 0x7e, + 0x04, 0xd5, 0x8a, 0x18, 0xd3, 0x27, 0x59, 0xe3, 0x6a, 0x9e, 0xf6, 0xbe, 0xc0, 0x57, 0xab, 0xd9, + 0x2f, 0x78, 0xde, 0x87, 0x9c, 0xd8, 0x0d, 0x08, 0x66, 0xe1, 0xa2, 0x9c, 0xe0, 0xa2, 0x0e, 0xe1, + 0xc2, 0xa9, 0xc3, 0x45, 0x56, 0x0b, 0x7b, 0xfa, 0x8c, 0xd9, 0x5d, 0xe0, 0x49, 0xbb, 0x11, 0x1b, + 0x85, 0x52, 0x8e, 0x85, 0x27, 0xa0, 0xd5, 0xde, 0x85, 0x32, 0x9a, 0x0b, 0x7c, 0x29, 0xf2, 0x83, + 0x63, 0x65, 0xfc, 0x37, 0xf3, 0xab, 0xe8, 0xf4, 0xe7, 0xa0, 0xed, 0x62, 0x0e, 0xda, 0xf4, 0xd1, + 0xb3, 0x11, 0xb4, 0x0d, 0x6f, 0x0e, 0xd1, 0x28, 0x92, 0xb4, 0xc7, 0x29, 0x77, 0xea, 0x29, 0x53, + 0xac, 0x91, 0x21, 0xc6, 0xce, 0x48, 0x11, 0x44, 0x88, 0xb7, 0xe2, 0x33, 0x1f, 0x49, 0xb7, 0x9e, + 0xd7, 0xfb, 0x99, 0x88, 0xf4, 0x9a, 0x18, 0x06, 0x2b, 0x54, 0x73, 0x22, 0x92, 0x26, 0x78, 0xbc, + 0x03, 0xe1, 0x31, 0x86, 0xab, 0x7b, 0xaf, 0x80, 0x47, 0x78, 0x39, 0x0f, 0x7d, 0x98, 0xdb, 0xc1, + 0x90, 0x75, 0xcf, 0x97, 0x41, 0x96, 0x3a, 0x07, 0x4b, 0xaa, 0xc5, 0xd6, 0xdc, 0x31, 0xe0, 0xa7, + 0xb9, 0xa7, 0xb7, 0xf9, 0x19, 0x8f, 0x0f, 0xeb, 0x73, 0x2e, 0x34, 0x11, 0x79, 0xc6, 0x3f, 0x2f, + 0xcd, 0xcf, 0x38, 0xd6, 0xcd, 0xab, 0x66, 0xa0, 0xee, 0x2b, 0xc0, 0x4d, 0x41, 0x19, 0x93, 0x13, + 0xf9, 0x32, 0xb2, 0x33, 0x2b, 0xec, 0x2a, 0xd8, 0xaf, 0xd3, 0x61, 0x7d, 0x2e, 0xcf, 0x16, 0xac, + 0x71, 0xe5, 0xae, 0x3e, 0x98, 0xa3, 0x4d, 0x65, 0x67, 0xb1, 0x0a, 0x67, 0x51, 0x9b, 0xa4, 0xd9, + 0xab, 0x21, 0x7f, 0x62, 0xaf, 0xd4, 0x93, 0x3f, 0xb1, 0x5f, 0x07, 0x91, 0x53, 0xab, 0xa3, 0x56, + 0xbc, 0x4a, 0x71, 0x64, 0x80, 0xac, 0x32, 0x4a, 0xf1, 0xdf, 0x86, 0xff, 0x82, 0xb7, 0xfe, 0xb7, + 0x52, 0xb7, 0x82, 0x12, 0x00, 0xeb, 0x18, 0x5d, 0xc0, 0x3b, 0xdb, 0xc8, 0x83, 0xd5, 0xe0, 0x41, + 0x59, 0xe0, 0xa9, 0x47, 0xf0, 0xa9, 0x7c, 0xe4, 0x01, 0x37, 0xe4, 0xf6, 0x67, 0xa9, 0x55, 0x6c, + 0xe5, 0x96, 0x58, 0x9f, 0x32, 0x90, 0x8f, 0x2c, 0xaf, 0x85, 0x4e, 0xb9, 0xf9, 0x6c, 0x1e, 0x29, + 0xc0, 0xe7, 0x6c, 0x07, 0x46, 0x1e, 0xd7, 0xde, 0x46, 0x6c, 0xfe, 0x1e, 0x62, 0x73, 0xbc, 0x6e, + 0xc0, 0xeb, 0xc3, 0x76, 0x2c, 0x8f, 0xbc, 0x21, 0x51, 0x89, 0xb7, 0x87, 0xc0, 0x5c, 0x46, 0x70, + 0xb1, 0x76, 0x73, 0x43, 0x19, 0x41, 0x01, 0x5e, 0xf1, 0x5d, 0x46, 0x40, 0xc8, 0x48, 0x38, 0x8b, + 0x73, 0x30, 0xdf, 0x20, 0xd9, 0xb0, 0x30, 0x9f, 0x49, 0x5e, 0xae, 0x2e, 0xd8, 0x67, 0x38, 0x8c, + 0x4e, 0xf6, 0x1e, 0xa7, 0xb5, 0x28, 0xcd, 0x57, 0xa6, 0x38, 0xbb, 0xc1, 0x51, 0x95, 0xd0, 0xce, + 0x91, 0xe7, 0x25, 0xf2, 0xf2, 0xcd, 0xdf, 0xad, 0xf2, 0x50, 0xac, 0x31, 0x92, 0xa8, 0xac, 0x13, + 0x0f, 0x91, 0x77, 0x44, 0xbc, 0x37, 0xda, 0x8b, 0x0e, 0x3c, 0x84, 0x57, 0x53, 0xc3, 0x1f, 0x4c, + 0x9a, 0x83, 0x7c, 0xd3, 0x9b, 0x1b, 0xfe, 0x50, 0xae, 0xfd, 0xcb, 0x19, 0x28, 0x1d, 0x7d, 0xa4, + 0x0f, 0x73, 0xb6, 0x0f, 0x1f, 0xfa, 0x09, 0x94, 0x6f, 0x5f, 0xdb, 0x67, 0xb0, 0x17, 0xb5, 0xaf, + 0xde, 0x81, 0x69, 0x0e, 0x6b, 0xfb, 0x9a, 0x9f, 0xbf, 0x82, 0xcf, 0x0d, 0xed, 0x0f, 0x05, 0xbb, + 0xc0, 0x26, 0x6c, 0x41, 0xb7, 0x0c, 0x3b, 0x22, 0x5b, 0x4e, 0x20, 0x15, 0x33, 0x3f, 0xb6, 0x7b, + 0xf3, 0x09, 0x28, 0x1b, 0x79, 0x64, 0xf3, 0xda, 0x83, 0x8f, 0x1c, 0x7a, 0x48, 0x6f, 0x8f, 0xd8, + 0xbf, 0x02, 0x6d, 0xb9, 0xa3, 0x4f, 0x3b, 0x87, 0x6b, 0xf9, 0x02, 0x8e, 0xd9, 0x83, 0x69, 0x25, + 0x6f, 0x5d, 0xcd, 0xb4, 0xce, 0xe6, 0x9d, 0x81, 0xab, 0xf7, 0x02, 0x8d, 0xdf, 0xc5, 0xe3, 0x0c, + 0x41, 0x62, 0x6c, 0xcb, 0x68, 0x4d, 0x15, 0x8e, 0xee, 0xa5, 0x1a, 0xdd, 0xee, 0xcc, 0x9c, 0xb3, + 0xa3, 0x32, 0x37, 0x7d, 0x46, 0x76, 0x32, 0x4c, 0x27, 0x39, 0x9a, 0x73, 0x3a, 0x34, 0xcd, 0x8a, + 0xe6, 0xb1, 0x6c, 0xec, 0xf6, 0xb2, 0x0a, 0x7b, 0x48, 0xf7, 0x38, 0x3f, 0xe7, 0x6b, 0x4c, 0xd7, + 0xbf, 0x45, 0x1a, 0xcc, 0xc6, 0xbf, 0x40, 0xba, 0x1e, 0xfe, 0x10, 0xac, 0x0d, 0x1f, 0x22, 0x9f, + 0x47, 0xdc, 0xfb, 0x0b, 0xf8, 0xbd, 0x9b, 0xa3, 0xc3, 0x3d, 0x39, 0x6d, 0xd6, 0x57, 0xe8, 0x5e, + 0xef, 0xb2, 0xb2, 0xcd, 0x13, 0xfa, 0xce, 0xdf, 0x3a, 0xa4, 0xc2, 0x1b, 0x90, 0x1a, 0x6f, 0x24, + 0x7e, 0xc2, 0xcd, 0xfc, 0x44, 0xee, 0xe4, 0xf1, 0x88, 0x03, 0x46, 0x7f, 0x82, 0x7c, 0x05, 0xf3, + 0x09, 0xe4, 0x3f, 0x8c, 0xf6, 0xd6, 0x68, 0xdf, 0xfb, 0x96, 0x10, 0x72, 0xcb, 0xdb, 0xc0, 0xb6, + 0xe0, 0x94, 0xf4, 0x72, 0xe1, 0x49, 0x01, 0x96, 0xb1, 0xa1, 0xf0, 0x44, 0xbc, 0xf0, 0xac, 0x20, + 0xe2, 0x85, 0x45, 0xde, 0x08, 0x74, 0xde, 0x44, 0x5e, 0x45, 0xbf, 0x4b, 0x7e, 0xc7, 0x90, 0x97, + 0x5f, 0x8a, 0x3c, 0xbc, 0x8a, 0xf7, 0x2a, 0xde, 0x2f, 0xc6, 0x6b, 0x1c, 0xaf, 0x4e, 0x2c, 0x65, + 0xa3, 0x17, 0xb9, 0x2a, 0xf0, 0xe0, 0x6f, 0x39, 0xf8, 0xe6, 0xd3, 0x5e, 0x40, 0x20, 0x53, 0x86, + 0x3c, 0x7f, 0x10, 0xf3, 0x74, 0x93, 0xd7, 0x02, 0x2c, 0xad, 0x1f, 0x47, 0xdf, 0x96, 0xb2, 0x37, + 0x90, 0x25, 0x7c, 0xb6, 0xc5, 0xb5, 0xaa, 0xa5, 0xc0, 0x26, 0x74, 0x0f, 0xe5, 0x48, 0x7f, 0x44, + 0xbb, 0x8e, 0x38, 0x76, 0x5d, 0x62, 0xb7, 0x13, 0xe5, 0xb8, 0x4a, 0x97, 0xee, 0xcf, 0x9c, 0xcf, + 0xc5, 0xb0, 0xdf, 0x8e, 0x2b, 0xfa, 0x3d, 0xba, 0x0d, 0x7b, 0xcd, 0xfb, 0x9b, 0xc9, 0xc7, 0xb1, + 0xd7, 0x29, 0xc5, 0x2d, 0x05, 0xec, 0x72, 0xf6, 0xfd, 0x25, 0x33, 0xfb, 0x2e, 0xe9, 0xb8, 0x65, + 0x21, 0x58, 0x70, 0x14, 0x4c, 0x99, 0xd2, 0xd1, 0x35, 0x4b, 0xcb, 0xc2, 0xa7, 0xa1, 0xb4, 0xe1, + 0x24, 0x4a, 0x6f, 0xa7, 0x27, 0xd6, 0xe4, 0xf5, 0xbb, 0xff, 0x9c, 0x11, 0xca, 0x9d, 0x0b, 0x09, + 0x49, 0x82, 0x76, 0x2a, 0x48, 0x9a, 0x70, 0x24, 0x9e, 0x47, 0xbc, 0x0d, 0xb0, 0xde, 0x61, 0x60, + 0x3b, 0xa7, 0x97, 0x91, 0x67, 0x32, 0x15, 0xd8, 0x3a, 0xbd, 0x91, 0x2f, 0x63, 0x6a, 0xca, 0x41, + 0x71, 0x86, 0xf3, 0xef, 0xf6, 0xa1, 0x9c, 0xd1, 0x42, 0x9e, 0x06, 0xe9, 0xd4, 0x82, 0x38, 0x98, + 0x1c, 0x37, 0x6b, 0x4a, 0xbb, 0x88, 0x83, 0xcd, 0x48, 0x38, 0x97, 0x24, 0xd9, 0x90, 0xfe, 0xe4, + 0xb5, 0xad, 0x69, 0xcd, 0x4a, 0x15, 0xf6, 0xde, 0x4c, 0x3e, 0x5b, 0xd4, 0x0d, 0xc8, 0x1d, 0xb2, + 0x34, 0x92, 0xf1, 0x4d, 0x8f, 0xce, 0x7d, 0xb9, 0x23, 0xef, 0xa1, 0x5e, 0xe8, 0x48, 0xe7, 0x3d, + 0x4d, 0xe5, 0xce, 0x42, 0x2d, 0x4a, 0x97, 0x5c, 0xc3, 0xa7, 0xa4, 0xd9, 0x7a, 0x36, 0x17, 0x9c, + 0x93, 0xe6, 0xce, 0xd1, 0x29, 0x4d, 0xdd, 0x41, 0x30, 0x4a, 0xb2, 0x0c, 0x42, 0xc8, 0x3d, 0x37, + 0x11, 0xc4, 0xdf, 0x7b, 0x13, 0xed, 0x15, 0xfd, 0xd5, 0xfc, 0x01, 0x58, 0x85, 0xf0, 0x32, 0x00, + 0xcb, 0x61, 0xe9, 0x4d, 0x43, 0xec, 0xf5, 0x08, 0x65, 0x68, 0x86, 0xaa, 0xa6, 0xc2, 0x39, 0x24, + 0x6f, 0x4c, 0x08, 0x2d, 0x2d, 0x08, 0x2d, 0x1d, 0x58, 0x46, 0x2b, 0xc5, 0x8a, 0xc1, 0xfb, 0x96, + 0xd8, 0xc7, 0x40, 0x5a, 0x3d, 0xe4, 0x27, 0x7f, 0x18, 0xf9, 0xf0, 0x8d, 0x42, 0xf7, 0xe6, 0xf6, + 0xf7, 0xf1, 0x3d, 0x79, 0xe1, 0xb0, 0x33, 0xb4, 0xf9, 0xf0, 0x29, 0x45, 0x7e, 0x95, 0x18, 0xea, + 0x6a, 0xf3, 0x33, 0x36, 0x55, 0xcb, 0x1c, 0x2d, 0xca, 0x4e, 0x59, 0x88, 0x9a, 0x5f, 0x9f, 0xf5, + 0xba, 0x8f, 0x73, 0x55, 0x8b, 0xbc, 0x32, 0xfb, 0x94, 0xaf, 0xf6, 0x42, 0xd4, 0x17, 0x1c, 0x96, + 0xfc, 0xc1, 0xef, 0x6b, 0x01, 0xa8, 0x91, 0xd4, 0xfa, 0x9a, 0x2e, 0x30, 0xbc, 0xd4, 0x3c, 0x20, + 0xd7, 0xcc, 0x0a, 0x74, 0x81, 0x71, 0x7b, 0x62, 0x40, 0xf6, 0x9b, 0xeb, 0xe8, 0x44, 0xef, 0xd5, + 0xe0, 0xac, 0xf8, 0x3e, 0x57, 0xac, 0xe9, 0x7c, 0x97, 0x16, 0xdf, 0xf3, 0xcb, 0x3d, 0x03, 0xb2, + 0x63, 0x16, 0xed, 0x22, 0xc6, 0xfe, 0xf8, 0x8c, 0x16, 0x1f, 0xff, 0xc5, 0xf8, 0x80, 0xac, 0x98, + 0xf5, 0x9d, 0xc3, 0x97, 0x13, 0xeb, 0xd2, 0xb4, 0xf3, 0x58, 0x5d, 0xe1, 0x02, 0x7b, 0xfc, 0x81, + 0xad, 0x31, 0x25, 0xea, 0x5b, 0xcb, 0x9c, 0x28, 0x79, 0x72, 0xab, 0x2e, 0x73, 0xc1, 0xcd, 0x84, + 0x8b, 0x83, 0xab, 0xc7, 0x72, 0x69, 0x25, 0x94, 0x73, 0xf5, 0xc1, 0x70, 0xdd, 0x1a, 0xc4, 0x5c, + 0x36, 0x3d, 0xe5, 0xe6, 0xf8, 0xea, 0x89, 0xb0, 0xab, 0xa9, 0x76, 0x58, 0xe7, 0x51, 0xb3, 0xda, + 0xcf, 0xc8, 0xcf, 0x07, 0x50, 0x5e, 0xa4, 0xfd, 0xed, 0xe8, 0x78, 0xb7, 0xd1, 0xcc, 0xf1, 0x3e, + 0x29, 0xea, 0x27, 0xe9, 0x3d, 0x27, 0x9e, 0x03, 0x6b, 0x3a, 0x22, 0xfc, 0xa5, 0x66, 0x40, 0xf5, + 0xef, 0x18, 0x4e, 0x3b, 0x90, 0xcb, 0xb0, 0x4a, 0x52, 0xba, 0x92, 0xf6, 0xbe, 0x9d, 0x12, 0xc7, + 0x8a, 0x92, 0x2c, 0xfc, 0x9b, 0x32, 0xc9, 0xe1, 0x29, 0xed, 0x5b, 0x61, 0x2c, 0xf5, 0x3b, 0x6d, + 0xc3, 0x83, 0x74, 0x36, 0x64, 0xe4, 0xbd, 0xf0, 0xfd, 0x39, 0x1d, 0x69, 0xf2, 0x72, 0xe6, 0xa9, + 0xf7, 0x42, 0x4d, 0x86, 0x42, 0xaa, 0x7c, 0x8b, 0x25, 0x7f, 0xf2, 0x71, 0x49, 0xbb, 0xb1, 0x6d, + 0x95, 0x10, 0x89, 0x21, 0xb6, 0x19, 0x75, 0xf4, 0x42, 0x49, 0x24, 0x4a, 0x3b, 0x46, 0x48, 0x1d, + 0x2a, 0x79, 0xb7, 0xa3, 0x25, 0x12, 0xe1, 0x3d, 0x8b, 0xd9, 0xe9, 0x1a, 0x8e, 0xfd, 0x50, 0x21, + 0xbe, 0x18, 0x35, 0xa6, 0x9c, 0x89, 0x26, 0x94, 0xcc, 0x1e, 0x61, 0x9d, 0xd8, 0xd9, 0x88, 0x97, + 0xcd, 0xf3, 0xe5, 0x48, 0x9a, 0x77, 0x36, 0x99, 0x2a, 0xdf, 0x41, 0xf1, 0x76, 0x14, 0xb5, 0xd7, + 0xd9, 0xde, 0x16, 0x11, 0x27, 0x13, 0x6a, 0xbd, 0xee, 0xad, 0x93, 0x4a, 0x72, 0x5f, 0x51, 0x52, + 0x84, 0xcf, 0xbd, 0x66, 0xa7, 0x4b, 0xbc, 0x1e, 0x28, 0x99, 0x6f, 0xc0, 0x92, 0x10, 0x87, 0x4f, + 0x1d, 0xa4, 0x92, 0x6e, 0x17, 0x25, 0x29, 0x8e, 0xb6, 0xb6, 0xa8, 0x38, 0xf7, 0xd1, 0x96, 0xb8, + 0x3a, 0xda, 0x62, 0x3b, 0xc5, 0x7d, 0x4b, 0x46, 0x13, 0x31, 0x1f, 0x96, 0xdf, 0xe4, 0x93, 0x07, + 0x67, 0xfd, 0x5b, 0x97, 0x1c, 0x83, 0x9b, 0x86, 0x63, 0x83, 0xf3, 0xf7, 0xaf, 0x3e, 0xb5, 0x71, + 0x38, 0xaa, 0x1e, 0xff, 0x82, 0x88, 0xdd, 0x05, 0x3e, 0x77, 0xb8, 0xa7, 0x1e, 0xde, 0x15, 0x76, + 0x5e, 0xcb, 0xc7, 0x0e, 0x79, 0x14, 0x62, 0x2f, 0xe9, 0x8a, 0x12, 0x8a, 0x8c, 0x96, 0xc3, 0xb4, + 0x28, 0x37, 0x39, 0xff, 0x71, 0x24, 0xd5, 0xdb, 0x7b, 0xc1, 0xa1, 0x90, 0x65, 0x45, 0x39, 0xef, + 0x32, 0x2e, 0x83, 0x4e, 0xdd, 0x77, 0x9d, 0x95, 0x63, 0xbf, 0xe0, 0xf7, 0xb7, 0x3c, 0x07, 0x86, + 0x72, 0xd0, 0xf5, 0xb4, 0xae, 0x8a, 0x66, 0x94, 0xf7, 0x06, 0x77, 0xa5, 0xbf, 0x41, 0xb2, 0xdd, + 0xb2, 0xfc, 0x03, 0x96, 0x5c, 0x01, 0x86, 0x54, 0x39, 0xfb, 0x12, 0xc4, 0x91, 0x97, 0xdf, 0x49, + 0x19, 0x23, 0x23, 0x88, 0xcb, 0x94, 0x8c, 0xa4, 0x0c, 0xe7, 0x3c, 0x0d, 0x75, 0x7d, 0x71, 0x54, + 0x9e, 0xf9, 0xec, 0x4d, 0xd2, 0xa5, 0x47, 0x6b, 0x71, 0x93, 0x47, 0xac, 0x79, 0xb0, 0x58, 0xf7, + 0x26, 0x79, 0xde, 0x04, 0x89, 0xcd, 0x38, 0xab, 0xc7, 0xdc, 0x55, 0xec, 0xdd, 0xef, 0xb0, 0x3d, + 0x96, 0xf5, 0xce, 0x1b, 0xa8, 0x02, 0xd3, 0xc1, 0x8e, 0x1a, 0xa4, 0xfe, 0x87, 0x4e, 0x83, 0x5c, + 0xef, 0x01, 0x43, 0x7b, 0xd3, 0xbb, 0x91, 0x20, 0x72, 0x9d, 0xed, 0x8d, 0x47, 0x9b, 0x95, 0x36, + 0xda, 0x6d, 0xc3, 0xd6, 0xf8, 0xbd, 0x1c, 0xe1, 0x84, 0xcb, 0x2b, 0x11, 0xb1, 0xf4, 0xa6, 0x86, + 0xed, 0x31, 0x9f, 0x8c, 0x7c, 0xfb, 0x2c, 0xe4, 0xda, 0x67, 0x20, 0xcf, 0x6e, 0x44, 0x8e, 0x9d, + 0x7d, 0xd1, 0xb2, 0xec, 0x38, 0x58, 0xf0, 0x85, 0x1e, 0x7d, 0x6f, 0x2a, 0x19, 0xff, 0x75, 0x5d, + 0xa4, 0xa6, 0xd9, 0x1e, 0x53, 0x66, 0xdb, 0x67, 0x39, 0x66, 0xb4, 0xaf, 0x71, 0xce, 0x12, 0x5f, + 0xd4, 0x36, 0x72, 0x9a, 0x85, 0x9f, 0x5e, 0xc6, 0x2f, 0xdb, 0x72, 0xdf, 0x1a, 0xf5, 0x6f, 0x4b, + 0x28, 0x47, 0xdb, 0xb0, 0xdd, 0xe2, 0x98, 0xe1, 0x14, 0xf9, 0xde, 0xc4, 0x94, 0x19, 0x76, 0x51, + 0x02, 0xed, 0x3f, 0x94, 0x0b, 0xcb, 0x73, 0x92, 0xbb, 0x39, 0x76, 0x4a, 0x8d, 0xa2, 0x47, 0x9b, + 0xca, 0xfa, 0xd6, 0x6c, 0x46, 0x19, 0x11, 0xc7, 0xdc, 0x55, 0x35, 0x37, 0x6b, 0xfb, 0x4a, 0x7e, + 0x36, 0x97, 0x83, 0xea, 0xe3, 0xd8, 0x68, 0x32, 0x5c, 0x9f, 0x2e, 0xe7, 0x6b, 0x49, 0xba, 0x8c, + 0xaf, 0xb6, 0x54, 0xd9, 0xad, 0x74, 0x7e, 0x6d, 0x56, 0x2d, 0x81, 0xe7, 0x28, 0x8a, 0xd9, 0xed, + 0x1c, 0xb1, 0x6c, 0xb9, 0x94, 0xf5, 0x26, 0xc9, 0xd1, 0xc4, 0xf6, 0xd0, 0xb9, 0x46, 0x2f, 0xc7, + 0x59, 0x41, 0x7c, 0xfb, 0x14, 0xed, 0x77, 0x62, 0xcd, 0x1b, 0x70, 0x86, 0x37, 0x62, 0xed, 0x23, + 0x54, 0xbb, 0x6b, 0x2e, 0xfb, 0x52, 0x52, 0x14, 0x31, 0xfe, 0x1b, 0x45, 0xd4, 0x87, 0xe6, 0x73, + 0xe5, 0xb0, 0x40, 0x78, 0x16, 0x5b, 0xaa, 0x7b, 0x69, 0x41, 0x1c, 0x8a, 0xb2, 0x89, 0x1c, 0xdf, + 0x33, 0x88, 0x42, 0x2b, 0x5c, 0xc7, 0x2b, 0xca, 0x6a, 0x6f, 0x11, 0xbe, 0x82, 0xbd, 0xdd, 0x60, + 0x86, 0xc0, 0x4d, 0x7d, 0x48, 0x33, 0x16, 0xb0, 0x07, 0x8b, 0x36, 0x84, 0x5d, 0xf3, 0x81, 0x6e, + 0x60, 0xdd, 0x15, 0xcb, 0x63, 0x38, 0x53, 0x72, 0xca, 0x4a, 0x31, 0x95, 0xdb, 0x23, 0x07, 0x43, + 0x14, 0x51, 0x18, 0xdb, 0x5d, 0x05, 0xa5, 0xfc, 0x54, 0x05, 0x65, 0xed, 0x0d, 0x87, 0xc2, 0xf6, + 0x96, 0xac, 0xfd, 0x93, 0x18, 0xc3, 0x9c, 0x47, 0xbb, 0xa5, 0x4c, 0xd9, 0xc9, 0x47, 0x1c, 0x47, + 0xc6, 0x41, 0xca, 0x5e, 0x2e, 0x3c, 0x72, 0x09, 0xad, 0x1a, 0x5a, 0x3f, 0x76, 0x82, 0xe9, 0x08, + 0x43, 0x9f, 0x44, 0xde, 0x28, 0xd9, 0xc3, 0xa3, 0xac, 0x47, 0x57, 0x7f, 0x44, 0xc4, 0xc1, 0x12, + 0x27, 0x94, 0x16, 0x83, 0xbe, 0xcb, 0x91, 0x5d, 0x43, 0x5e, 0xa8, 0xe4, 0xdd, 0x71, 0xca, 0xb9, + 0x54, 0xd8, 0x3a, 0x71, 0xe9, 0x15, 0xfa, 0x8a, 0xc9, 0xae, 0xce, 0x86, 0x42, 0xd8, 0x9e, 0x58, + 0x23, 0xf6, 0x3a, 0xb2, 0xfb, 0x28, 0xba, 0x05, 0x5d, 0x2a, 0xeb, 0x45, 0xa9, 0x96, 0x76, 0x3a, + 0xd9, 0x42, 0xc4, 0x95, 0xf3, 0x2c, 0x48, 0x73, 0x5c, 0xe5, 0x37, 0x41, 0x24, 0x12, 0x69, 0x68, + 0x9a, 0xd4, 0xf6, 0xab, 0x14, 0xb5, 0xc8, 0x34, 0x81, 0xb3, 0x38, 0x42, 0xfa, 0x02, 0x0d, 0x48, + 0x3b, 0x28, 0x9f, 0x19, 0x53, 0x8c, 0x98, 0x62, 0x1c, 0x25, 0x2b, 0x11, 0x40, 0xea, 0x3e, 0x3b, + 0xf9, 0x98, 0xd0, 0xe3, 0x49, 0xbd, 0x79, 0x7b, 0x03, 0x98, 0x6e, 0x8f, 0x00, 0xf6, 0xc3, 0xc3, + 0xde, 0x24, 0x0b, 0xea, 0xca, 0xd5, 0x43, 0xb5, 0xbe, 0x33, 0xee, 0x74, 0x83, 0x85, 0x6b, 0x2c, + 0xc1, 0xba, 0x16, 0xab, 0x86, 0x97, 0x86, 0x49, 0xcf, 0x97, 0xca, 0xe2, 0x92, 0xce, 0xaa, 0x2d, + 0xd7, 0x3a, 0x65, 0x4d, 0x99, 0xd5, 0xc0, 0xca, 0xf2, 0xc3, 0x9b, 0x9a, 0x27, 0x35, 0x17, 0xeb, + 0xca, 0x3f, 0xce, 0xb9, 0x0f, 0xaa, 0x4e, 0xfc, 0xbe, 0x5c, 0x09, 0xb1, 0x16, 0xbe, 0x25, 0x65, + 0xe3, 0x92, 0x36, 0xf3, 0xbb, 0x0f, 0x04, 0x06, 0x11, 0xed, 0x11, 0x35, 0xc6, 0x26, 0xa7, 0x4e, + 0xaa, 0x47, 0xb9, 0x6d, 0x64, 0x21, 0x53, 0x99, 0x1f, 0x03, 0x6a, 0xe9, 0x5b, 0xe3, 0xd8, 0x56, + 0x6a, 0x5b, 0x79, 0x95, 0x6d, 0x05, 0x60, 0xde, 0x5d, 0xaa, 0x7d, 0xc7, 0x70, 0xca, 0xe8, 0x28, + 0x4a, 0xb9, 0xd4, 0xda, 0x6b, 0xb6, 0x4a, 0x76, 0x8a, 0x71, 0x10, 0x35, 0x1e, 0x50, 0x5d, 0x4a, + 0x91, 0xea, 0xc8, 0xb6, 0x26, 0x6d, 0x71, 0x80, 0x6a, 0x5a, 0x51, 0x7a, 0x08, 0x5b, 0x3d, 0x35, + 0xc8, 0x11, 0x4f, 0x45, 0xab, 0xdf, 0x25, 0xe8, 0x77, 0x54, 0x66, 0x7d, 0xa9, 0x4e, 0xc3, 0xbd, + 0x42, 0x23, 0x2b, 0xf8, 0x05, 0xb8, 0xd7, 0x99, 0xc5, 0xbd, 0x6f, 0xed, 0xbe, 0x39, 0xce, 0x3a, + 0x2d, 0x86, 0x86, 0x13, 0x28, 0xa3, 0x3c, 0x84, 0xd8, 0xb8, 0x0b, 0x9f, 0x91, 0x7e, 0xe7, 0x31, + 0x9c, 0xf0, 0x76, 0xc3, 0xb6, 0xed, 0x1d, 0x58, 0x47, 0x27, 0x62, 0xba, 0xc5, 0x34, 0x1b, 0x48, + 0xfd, 0x95, 0x5a, 0x5c, 0x55, 0x14, 0xdd, 0x3c, 0x17, 0x4f, 0xb1, 0xc0, 0x9b, 0xa1, 0x87, 0xe3, + 0xa0, 0x8f, 0x44, 0x6b, 0xc9, 0xcb, 0x8c, 0x71, 0xe4, 0x95, 0x1a, 0x53, 0x22, 0xc4, 0x31, 0x1f, + 0x57, 0xea, 0xf1, 0x18, 0x43, 0xc8, 0xa5, 0xb8, 0xd8, 0x73, 0x58, 0x2f, 0xf9, 0x31, 0x65, 0x4f, + 0x91, 0x12, 0xa6, 0xb0, 0xf6, 0xb0, 0xb0, 0x07, 0x13, 0xfe, 0xb8, 0x71, 0x2c, 0x5b, 0xab, 0xbe, + 0xd5, 0x09, 0x0b, 0x27, 0x2f, 0x0f, 0xd6, 0x46, 0x6b, 0x1a, 0x54, 0x17, 0x69, 0xe9, 0xbd, 0xf5, + 0x06, 0x7e, 0xeb, 0x21, 0xfd, 0xbc, 0xb7, 0x7e, 0x43, 0x71, 0xfb, 0x48, 0xc7, 0xc8, 0x2e, 0xf4, + 0xf0, 0x42, 0xd9, 0x95, 0xc2, 0xf3, 0xb8, 0x55, 0x68, 0x67, 0xa5, 0x5e, 0x57, 0x8c, 0x7a, 0xa4, + 0x18, 0x97, 0x88, 0x4f, 0xcf, 0x16, 0x6f, 0x1e, 0x3a, 0x21, 0x71, 0xe6, 0x7c, 0xc4, 0xb9, 0x22, + 0xbf, 0x1f, 0x5f, 0xa9, 0x10, 0x84, 0x5c, 0x36, 0x7a, 0x3b, 0x40, 0xc1, 0xb5, 0x83, 0x50, 0xa2, + 0xeb, 0x77, 0x39, 0xb9, 0xe5, 0x46, 0xa4, 0x48, 0xf9, 0xba, 0x1c, 0xd9, 0xba, 0x94, 0x04, 0x7b, + 0x63, 0xbc, 0x5f, 0xdd, 0x9f, 0x58, 0x93, 0xf7, 0x2c, 0xe7, 0x88, 0x90, 0x47, 0xb7, 0xe9, 0x5e, + 0x2c, 0xf5, 0xb8, 0xef, 0x07, 0x71, 0xd5, 0x07, 0xe9, 0x4c, 0x86, 0xbc, 0xb0, 0x21, 0xd7, 0xd5, + 0x22, 0xfc, 0xa5, 0x72, 0x1d, 0xc5, 0x50, 0x3b, 0xf1, 0x03, 0x92, 0x18, 0x50, 0xd6, 0x36, 0x5c, + 0xa5, 0x67, 0x58, 0x7b, 0x85, 0xc7, 0x48, 0x31, 0x9e, 0x9e, 0xf0, 0xc7, 0x7c, 0xc2, 0x40, 0x23, + 0x17, 0xd0, 0x47, 0xb3, 0x94, 0xbe, 0xf7, 0x77, 0xb3, 0xe7, 0x00, 0xc3, 0xdb, 0xfb, 0xbd, 0x0b, + 0xa0, 0x5c, 0x1f, 0xdf, 0x4a, 0xf2, 0x3f, 0x46, 0x33, 0xc3, 0xa9, 0x0a, 0x9d, 0x46, 0x14, 0xd4, + 0xe0, 0xc9, 0xf9, 0x89, 0x9c, 0xc5, 0xbe, 0x61, 0x2d, 0xc2, 0x4f, 0x64, 0x90, 0x24, 0x11, 0x4f, + 0x16, 0x26, 0x14, 0x3a, 0xeb, 0x08, 0x51, 0x0f, 0xf4, 0x71, 0x09, 0x20, 0xbf, 0x73, 0x75, 0x6b, + 0x03, 0xd7, 0x6c, 0xad, 0x0b, 0x5b, 0x6b, 0xa3, 0x19, 0x14, 0xfe, 0x40, 0xb9, 0xb5, 0x36, 0xfa, + 0x9e, 0x35, 0x30, 0x4f, 0x81, 0x01, 0xdf, 0x95, 0xea, 0x6d, 0x2d, 0x67, 0x2d, 0xcc, 0x53, 0x58, + 0x4a, 0x9c, 0xcf, 0x4d, 0x94, 0x82, 0xd2, 0x5d, 0x05, 0x2d, 0xf5, 0x42, 0x28, 0x39, 0xf6, 0xb9, + 0x2a, 0xda, 0xca, 0xe7, 0x24, 0xae, 0xac, 0x1f, 0x4e, 0x86, 0x5f, 0xe6, 0x6d, 0xd9, 0xca, 0x31, + 0xef, 0x0f, 0xf5, 0x13, 0x13, 0xac, 0x72, 0x1d, 0xd9, 0x84, 0x94, 0x80, 0xe4, 0xc4, 0x62, 0x41, + 0x09, 0x6a, 0xe6, 0x81, 0xe1, 0x10, 0x4a, 0xe8, 0x48, 0x11, 0x8c, 0x07, 0x91, 0x42, 0x23, 0x04, + 0x46, 0xab, 0x4a, 0x45, 0x4c, 0xef, 0x85, 0x93, 0x93, 0xa7, 0xd5, 0x36, 0x3d, 0xc6, 0x6b, 0xc2, + 0x5f, 0x44, 0x5a, 0x3d, 0xf3, 0xc3, 0xe0, 0xf3, 0xc9, 0xa4, 0xdb, 0x33, 0x3f, 0x04, 0xfe, 0x44, + 0xb8, 0xcf, 0x9f, 0x08, 0xf5, 0x55, 0x6f, 0xc7, 0x12, 0x7a, 0x5d, 0xa3, 0xf8, 0x7d, 0xaf, 0x3d, + 0xef, 0x85, 0xd3, 0x1e, 0xcb, 0xaf, 0x90, 0x8c, 0x61, 0x74, 0x7d, 0xca, 0x38, 0xb7, 0x19, 0xf1, + 0xb7, 0x95, 0x31, 0xc0, 0x56, 0xa7, 0x80, 0xd5, 0x67, 0x72, 0xb0, 0x6a, 0xcb, 0x8e, 0x36, 0x9f, + 0xe5, 0xb5, 0xe0, 0x68, 0xb7, 0x22, 0x36, 0xee, 0x50, 0x22, 0x58, 0x9a, 0x83, 0x71, 0x89, 0xd2, + 0x7c, 0xbe, 0x9c, 0xe2, 0xbe, 0x59, 0x52, 0xa5, 0x24, 0x83, 0xde, 0x7c, 0x83, 0x57, 0x9c, 0xff, + 0x34, 0x56, 0x21, 0xdf, 0xdb, 0xba, 0x69, 0x85, 0x72, 0x88, 0x7a, 0x57, 0x8e, 0xd2, 0x48, 0x91, + 0xe8, 0x1d, 0xf9, 0x4c, 0xf5, 0x55, 0x83, 0x6d, 0xa2, 0x57, 0xe0, 0x66, 0x6c, 0x73, 0x10, 0x9f, + 0x4b, 0xf0, 0x99, 0x31, 0x33, 0x3e, 0xd7, 0x67, 0x47, 0x38, 0x4f, 0x17, 0x84, 0xf5, 0x11, 0xfb, + 0x15, 0x67, 0xef, 0x7d, 0x58, 0xc3, 0x12, 0x6a, 0xad, 0x2a, 0xff, 0xf0, 0x37, 0x26, 0x03, 0x14, + 0xa7, 0x2d, 0x7a, 0xea, 0x09, 0x4a, 0x65, 0x2c, 0x34, 0x48, 0x35, 0xfd, 0xe2, 0x37, 0xe9, 0x6e, + 0x3e, 0x13, 0xac, 0xf5, 0xf6, 0x23, 0x45, 0x0f, 0xe2, 0xfc, 0x85, 0xae, 0xb2, 0xe2, 0xcc, 0x41, + 0x74, 0x15, 0x8e, 0x45, 0x46, 0xa6, 0x13, 0xc4, 0x5c, 0x0b, 0x7b, 0xb8, 0x85, 0xbe, 0x5c, 0x0b, + 0xf5, 0x51, 0x2e, 0x18, 0xd1, 0x82, 0x36, 0x2a, 0x06, 0x9d, 0xaa, 0xba, 0xf2, 0x1c, 0x9f, 0x98, + 0x69, 0xa2, 0xaf, 0xbf, 0x1b, 0x77, 0xf4, 0xe8, 0xde, 0x41, 0xcb, 0x72, 0x3d, 0xbc, 0xc2, 0xf7, + 0x63, 0xe4, 0x79, 0x92, 0x90, 0xb2, 0x9e, 0xa2, 0x7d, 0x44, 0x7d, 0xc8, 0x7f, 0xa3, 0xc3, 0x51, + 0x48, 0xe9, 0xd8, 0xeb, 0x42, 0x95, 0xcf, 0x04, 0x4d, 0x93, 0x17, 0xdf, 0xa5, 0x53, 0x35, 0x81, + 0x0f, 0xf4, 0x96, 0x64, 0x31, 0xcf, 0x63, 0x3a, 0xe6, 0x39, 0x86, 0xf4, 0x83, 0xb9, 0x94, 0xe4, + 0x5f, 0x67, 0x4f, 0xe3, 0x50, 0xa2, 0x5d, 0xc9, 0x3b, 0x44, 0x71, 0x2c, 0xd7, 0x36, 0x4d, 0x7a, + 0x5f, 0x93, 0x0e, 0x3c, 0xba, 0x9f, 0xce, 0xd3, 0x2f, 0x6d, 0xb0, 0x13, 0xa5, 0x77, 0xfe, 0x45, + 0x37, 0xac, 0x03, 0xeb, 0x5f, 0xd0, 0x8e, 0x09, 0x40, 0xe9, 0xb7, 0xd8, 0x57, 0x1c, 0x7d, 0x9f, + 0x97, 0x43, 0x49, 0xf6, 0x26, 0xdc, 0x42, 0xa7, 0x78, 0xc9, 0xbb, 0xb5, 0xe7, 0xb8, 0x96, 0x3e, + 0xd6, 0xf8, 0x5c, 0xa9, 0x5b, 0xef, 0x3e, 0x7b, 0x8d, 0x7a, 0x50, 0xda, 0x40, 0xc8, 0xb0, 0xb3, + 0xb5, 0xe3, 0xbb, 0x42, 0xb3, 0xf4, 0x46, 0x94, 0x49, 0xb5, 0x0f, 0xf8, 0xf7, 0x4c, 0x61, 0x6e, + 0xf2, 0x83, 0x1b, 0x3e, 0xa3, 0x9d, 0xab, 0x8a, 0x6b, 0x93, 0x74, 0x4e, 0x8d, 0xf7, 0x17, 0xf0, + 0xfe, 0x1c, 0x5e, 0xdf, 0xc5, 0xeb, 0xce, 0x2a, 0x6e, 0x9d, 0xb6, 0xeb, 0x2e, 0xbc, 0x6a, 0x7b, + 0x32, 0x30, 0x68, 0xcb, 0x7d, 0xfb, 0x26, 0xb5, 0xa2, 0xe1, 0x8c, 0xb6, 0x2d, 0xdf, 0x5e, 0xfa, + 0x2a, 0xaf, 0x85, 0x9e, 0xd5, 0x2a, 0x65, 0xef, 0xb9, 0x06, 0xe1, 0x43, 0x1e, 0xe5, 0x00, 0xbf, + 0x72, 0x3d, 0x69, 0x2b, 0x48, 0x72, 0xba, 0x71, 0x09, 0xc7, 0x60, 0x93, 0x28, 0x3e, 0xee, 0x3a, + 0xb5, 0x84, 0xef, 0x8b, 0xd3, 0xad, 0x7c, 0x35, 0xa6, 0x32, 0xea, 0x3d, 0x58, 0x43, 0x2d, 0x79, + 0x19, 0xc8, 0x6b, 0x9d, 0x10, 0x7f, 0x98, 0x5e, 0x74, 0x73, 0x02, 0x4c, 0x6d, 0xdb, 0x10, 0x33, + 0x9e, 0xc0, 0x15, 0x96, 0x70, 0xd2, 0x8c, 0xf7, 0x40, 0x6d, 0xc3, 0x49, 0xed, 0x3c, 0xf2, 0x83, + 0xf9, 0xdc, 0x35, 0xed, 0xcf, 0x83, 0x07, 0xa9, 0xee, 0x32, 0xa4, 0x83, 0xf8, 0x2e, 0xbf, 0xbf, + 0xa1, 0x5a, 0xa7, 0x3d, 0x1b, 0x28, 0x1e, 0x2b, 0x45, 0x6c, 0x25, 0x1d, 0x98, 0x16, 0xc8, 0xf2, + 0xbb, 0x8a, 0x33, 0xeb, 0x87, 0x83, 0xbc, 0x88, 0x23, 0x74, 0x94, 0x56, 0x21, 0xd7, 0xa5, 0xce, + 0x61, 0xde, 0xd6, 0x00, 0x52, 0x5a, 0x5c, 0xe5, 0x94, 0xe5, 0x16, 0xe2, 0x69, 0x0d, 0xaa, 0xc1, + 0x81, 0x14, 0x17, 0x39, 0xd9, 0x48, 0x8e, 0x93, 0x3d, 0xd8, 0xf2, 0xde, 0x52, 0x43, 0x96, 0xe3, + 0x61, 0xbc, 0xca, 0x31, 0x3e, 0x79, 0xa7, 0x07, 0x69, 0x13, 0x43, 0x6c, 0x34, 0x47, 0xcd, 0x5b, + 0x0a, 0x68, 0xb9, 0x4f, 0xa7, 0xe5, 0xe1, 0xb7, 0xc6, 0x23, 0x23, 0x44, 0xc9, 0xf1, 0xdf, 0x84, + 0xd0, 0xe7, 0x61, 0x0f, 0x3a, 0x21, 0xf2, 0xcc, 0xa6, 0x2d, 0xe6, 0x5d, 0x5d, 0xaf, 0xf0, 0x94, + 0x40, 0x98, 0x91, 0x6a, 0xa2, 0xf3, 0x63, 0x2f, 0xc5, 0x50, 0x26, 0x1f, 0xa9, 0x39, 0xbe, 0x7c, + 0xe2, 0xa7, 0x24, 0xce, 0xe2, 0x37, 0x2e, 0x31, 0x2b, 0xfa, 0x4c, 0x08, 0x1b, 0x72, 0x1d, 0xfe, + 0x69, 0xc5, 0xc4, 0xfe, 0x60, 0x02, 0x6a, 0x25, 0x42, 0xe9, 0x93, 0x62, 0x2c, 0x28, 0x5f, 0x96, + 0x87, 0xf5, 0xf4, 0x64, 0xe9, 0x29, 0xf9, 0x7b, 0xc5, 0x3c, 0x5b, 0xae, 0xe0, 0x36, 0xf1, 0xcb, + 0x1c, 0x4d, 0x94, 0xc4, 0xf7, 0xba, 0x0c, 0x6f, 0x10, 0x5e, 0x9a, 0x49, 0xc2, 0x7c, 0x7b, 0x9c, + 0x74, 0x33, 0xf4, 0x31, 0x2c, 0xd1, 0xc7, 0x90, 0xbd, 0xe2, 0x2a, 0xff, 0x40, 0xda, 0x33, 0x7c, + 0xf7, 0x28, 0xb5, 0x51, 0x19, 0xc8, 0xb6, 0x9f, 0xb8, 0xd5, 0xb7, 0xc6, 0xdb, 0x9e, 0x03, 0xcb, + 0xd5, 0xa9, 0xed, 0xd7, 0x48, 0x55, 0x7c, 0x26, 0xc1, 0xe7, 0xea, 0x1c, 0x14, 0x8d, 0x12, 0xe3, + 0xae, 0x5a, 0x1c, 0xdb, 0x9a, 0x2c, 0xef, 0xed, 0x08, 0xe5, 0xb0, 0x84, 0xc4, 0xa3, 0x5e, 0xf9, + 0x45, 0x1c, 0x54, 0x9e, 0x6f, 0x22, 0x0e, 0xc3, 0x47, 0xbb, 0x60, 0xe4, 0xdf, 0xd5, 0x35, 0x9d, + 0xc3, 0x40, 0xce, 0xa2, 0x3c, 0x4c, 0x3b, 0x7f, 0xc4, 0x31, 0xa4, 0x98, 0x9f, 0xcf, 0xf2, 0x16, + 0x95, 0x05, 0xbc, 0x45, 0xe5, 0x55, 0xbc, 0xc5, 0x3e, 0xe4, 0x2d, 0xca, 0xa7, 0xf1, 0x16, 0x9e, + 0x2b, 0x24, 0x5d, 0x0b, 0x71, 0x17, 0xdf, 0xd9, 0xc4, 0x98, 0xcf, 0x96, 0x9b, 0xd3, 0x52, 0x9d, + 0xab, 0x20, 0x3c, 0x4c, 0x1a, 0x1f, 0xe5, 0x8e, 0x2e, 0x9d, 0x52, 0x17, 0x62, 0x61, 0x43, 0x9e, + 0x4f, 0x71, 0xfc, 0x55, 0x2b, 0x43, 0x23, 0x4a, 0x0e, 0xa2, 0x5d, 0x06, 0xfd, 0xbc, 0xd4, 0x30, + 0x1d, 0x7b, 0x16, 0x7e, 0x25, 0xfa, 0xce, 0x78, 0xee, 0x6e, 0xb2, 0xbc, 0x98, 0x5f, 0xe7, 0x99, + 0xc7, 0x36, 0xd6, 0x16, 0x17, 0xf9, 0x8b, 0x6e, 0x14, 0x11, 0xbb, 0x1d, 0xb9, 0x58, 0x0b, 0xe4, + 0x8b, 0xfc, 0x57, 0xa7, 0x39, 0x82, 0xed, 0x09, 0xb2, 0x73, 0x33, 0x18, 0xb4, 0x8b, 0x3c, 0xf6, + 0x95, 0x05, 0x3e, 0xab, 0xcf, 0x68, 0x17, 0xf3, 0xd0, 0x8e, 0xeb, 0x7f, 0xaf, 0x83, 0x34, 0x78, + 0x84, 0x0f, 0xfb, 0x9d, 0x64, 0x4f, 0x0c, 0x2f, 0xb0, 0x07, 0x69, 0x03, 0x45, 0x74, 0x17, 0xf4, + 0x8d, 0xca, 0x92, 0x4c, 0xda, 0x89, 0xaa, 0x06, 0xed, 0x34, 0x97, 0x2b, 0xb3, 0x9e, 0xa9, 0xe5, + 0x2a, 0x7f, 0xd8, 0x05, 0x65, 0x57, 0xcf, 0xfe, 0xbf, 0x1e, 0x54, 0x9a, 0x94, 0x2d, 0xaa, 0x3d, + 0x37, 0xfe, 0x67, 0xb0, 0x0f, 0xd9, 0xf1, 0x6f, 0x70, 0x44, 0xed, 0xd9, 0x5a, 0x5f, 0x50, 0x9a, + 0x38, 0xea, 0x32, 0xcf, 0x5b, 0x6a, 0x82, 0x6b, 0x28, 0xd2, 0x5b, 0xfe, 0x05, 0xa5, 0xeb, 0x31, + 0x54, 0xb6, 0x0b, 0xdf, 0xdf, 0xf6, 0xc6, 0x02, 0x3f, 0xcb, 0xd1, 0x69, 0xf3, 0x47, 0x7b, 0xdc, + 0xe3, 0x02, 0xff, 0xd5, 0x92, 0xff, 0x36, 0x5a, 0x9d, 0x2e, 0x8e, 0x5f, 0xd9, 0x0d, 0x0e, 0x4f, + 0x37, 0x2c, 0x26, 0xff, 0xda, 0x69, 0x8a, 0xa6, 0x42, 0x7a, 0x7a, 0xa6, 0x9a, 0xd6, 0xdf, 0xff, + 0xa6, 0x66, 0x19, 0x98, 0xfd, 0x5d, 0x20, 0xff, 0xee, 0x35, 0x94, 0x59, 0x29, 0x46, 0x51, 0xc3, + 0x20, 0x4a, 0xd6, 0x2c, 0xb5, 0xea, 0xa7, 0xca, 0x14, 0x29, 0x9b, 0x69, 0xff, 0xf1, 0x5b, 0x77, + 0xb1, 0xb4, 0xae, 0x53, 0x0b, 0xb1, 0x17, 0x7a, 0xb5, 0xcf, 0x94, 0x0c, 0xe0, 0xb3, 0x89, 0x74, + 0x13, 0xb3, 0x11, 0x3a, 0x19, 0x9a, 0x70, 0xf6, 0x8d, 0x3b, 0x79, 0xf6, 0x3d, 0x04, 0x13, 0x0e, + 0x19, 0x39, 0xcb, 0x2e, 0x68, 0x44, 0xee, 0xd1, 0xe4, 0xeb, 0xe2, 0xdd, 0x47, 0xcb, 0xb5, 0xa0, + 0x82, 0xa3, 0xc9, 0xe3, 0x1a, 0xb3, 0x7b, 0x19, 0x86, 0x4c, 0xf8, 0x3e, 0xa8, 0x9a, 0x95, 0xd0, + 0xf6, 0xe7, 0xe4, 0x68, 0xda, 0xa8, 0xd8, 0x70, 0x0c, 0xcf, 0x65, 0x6d, 0x75, 0x6a, 0xfd, 0xa4, + 0x45, 0x83, 0xfd, 0x0d, 0xd5, 0x7a, 0xa1, 0xae, 0xc6, 0x4b, 0x7c, 0x88, 0x71, 0xe7, 0xcf, 0xf6, + 0x50, 0x7c, 0x5f, 0xa6, 0x63, 0x15, 0x64, 0xbd, 0x83, 0x94, 0xa6, 0x1c, 0xb9, 0x08, 0xe6, 0x04, + 0x79, 0xff, 0x9c, 0x22, 0xa1, 0xae, 0xbc, 0x25, 0x62, 0xdc, 0x89, 0xf9, 0xb6, 0x0a, 0xdf, 0x1a, + 0x1a, 0xca, 0x52, 0x96, 0xa8, 0xa6, 0xa5, 0x0c, 0xb5, 0x6e, 0x68, 0xb4, 0x34, 0xd0, 0x1d, 0xca, + 0xe5, 0x51, 0x7f, 0x10, 0xfe, 0x3f, 0xfe, 0x30, 0xae, 0xb7, 0x0a, 0x7b, 0x08, 0x67, 0xc1, 0x47, + 0x38, 0x04, 0x7b, 0xa1, 0x6c, 0x3e, 0x81, 0x1c, 0xb1, 0x0b, 0xec, 0x9b, 0xbb, 0x60, 0x8e, 0x8f, + 0xf4, 0xa0, 0x66, 0x8e, 0x6e, 0xe8, 0x95, 0x6b, 0x67, 0xfa, 0x1a, 0xf0, 0x5e, 0xa2, 0xfb, 0x1a, + 0xe9, 0xf6, 0x28, 0x34, 0xa2, 0x84, 0x1a, 0x6d, 0x22, 0xae, 0x1f, 0xf9, 0x45, 0xb2, 0x47, 0x7c, + 0xb8, 0x45, 0x58, 0xcc, 0xdf, 0xfe, 0xbe, 0x12, 0xb1, 0x37, 0x8b, 0x96, 0xf0, 0x4e, 0xdb, 0xeb, + 0xe2, 0x74, 0x6b, 0xd6, 0x2a, 0xa1, 0x95, 0xc0, 0x31, 0x49, 0xcb, 0xb3, 0x7a, 0x59, 0xec, 0xe5, + 0xc3, 0xc5, 0x9c, 0x6c, 0x8f, 0xfc, 0xbe, 0x7e, 0xc2, 0x44, 0x7e, 0xba, 0x6d, 0x0d, 0x14, 0x1b, + 0xa9, 0x99, 0xbc, 0xcf, 0x24, 0xf0, 0x6d, 0xba, 0x6b, 0xc1, 0x29, 0xe3, 0xfb, 0x05, 0xbb, 0xec, + 0xf7, 0xb8, 0x7b, 0x8c, 0x87, 0x97, 0x4b, 0x0b, 0x27, 0xa7, 0xb6, 0xab, 0x75, 0xec, 0x27, 0x7e, + 0x2b, 0x73, 0x18, 0x62, 0x46, 0x0c, 0xc8, 0xe5, 0x21, 0xac, 0x20, 0x0e, 0xe9, 0xd3, 0xa1, 0x90, + 0xfc, 0x83, 0x96, 0xe7, 0xd7, 0x0f, 0xe9, 0xa1, 0xec, 0x0d, 0xb9, 0xef, 0x4e, 0x3c, 0x9e, 0xda, + 0x53, 0xb8, 0x77, 0x4f, 0x9a, 0x1e, 0x64, 0x37, 0xc7, 0x27, 0x0d, 0x96, 0xbc, 0x0f, 0x6b, 0x8a, + 0x09, 0x99, 0x59, 0x3a, 0x98, 0xd7, 0x02, 0xa9, 0x73, 0x40, 0xda, 0x64, 0x0f, 0xf1, 0x1e, 0x4c, + 0x1d, 0x71, 0xd9, 0x21, 0x3d, 0x37, 0xd9, 0x08, 0xa6, 0x1d, 0x57, 0xe5, 0x2d, 0x55, 0x1a, 0xec, + 0xa1, 0xcc, 0xd2, 0xfc, 0x89, 0x42, 0x56, 0x1b, 0x95, 0xbe, 0xcb, 0x59, 0x8f, 0x74, 0x43, 0xe3, + 0x95, 0xbb, 0xee, 0xf6, 0x44, 0xfe, 0x2b, 0xad, 0x5a, 0x68, 0xfb, 0x10, 0x46, 0x55, 0xec, 0x8c, + 0xbd, 0xb0, 0x5d, 0x79, 0x4f, 0x82, 0xc4, 0xa1, 0x39, 0x5a, 0x19, 0x32, 0x23, 0x6d, 0xdd, 0x30, + 0x27, 0xbf, 0xfb, 0xcf, 0xfb, 0x36, 0x96, 0xf9, 0xdd, 0x50, 0x0a, 0xb6, 0x9b, 0xba, 0xa1, 0x0c, + 0x4a, 0xf0, 0xf7, 0xeb, 0xf0, 0xb5, 0xf0, 0xc7, 0xba, 0xd6, 0xd1, 0x4e, 0x07, 0xe4, 0xcb, 0x69, + 0xc7, 0x6f, 0xa9, 0x7d, 0x05, 0x5e, 0x9e, 0xc9, 0x96, 0xd0, 0xa0, 0xcb, 0x6b, 0xfb, 0xa9, 0xbd, + 0xb8, 0x32, 0xa2, 0xfa, 0x1e, 0x7c, 0x6d, 0xde, 0xf2, 0x95, 0xe4, 0x94, 0x11, 0x94, 0xb6, 0x70, + 0xf4, 0x3b, 0x84, 0x84, 0x35, 0x22, 0x43, 0x25, 0x3e, 0x75, 0x92, 0x3c, 0x47, 0x9e, 0xce, 0xc1, + 0x81, 0x4f, 0x8b, 0x49, 0xba, 0x25, 0x5f, 0xf5, 0xe0, 0x61, 0x6f, 0xfd, 0x3e, 0x7e, 0x02, 0x94, + 0xd6, 0x06, 0x40, 0x45, 0xfe, 0x98, 0xfd, 0xd9, 0x43, 0x10, 0x9f, 0x96, 0x42, 0x48, 0xe9, 0x97, + 0x8f, 0x91, 0x76, 0xcc, 0xe5, 0x75, 0x05, 0x7b, 0xf6, 0xb5, 0xf9, 0x88, 0xc2, 0xee, 0x2a, 0x58, + 0xcc, 0xba, 0xfd, 0xad, 0x1e, 0x70, 0x21, 0x57, 0x23, 0x6c, 0xbc, 0xd2, 0x8b, 0x94, 0x5e, 0xe8, + 0x1c, 0x34, 0xf0, 0x09, 0x7e, 0x68, 0xd0, 0xb4, 0x7d, 0xf8, 0x3e, 0xd2, 0xf9, 0xf3, 0x21, 0xbe, + 0xf5, 0xd4, 0xc3, 0x87, 0xff, 0xe5, 0x58, 0xfc, 0x91, 0x50, 0xec, 0x54, 0x51, 0x60, 0xa5, 0x24, + 0x3f, 0xc8, 0xb1, 0xb6, 0x4f, 0x83, 0xc7, 0xe9, 0x86, 0x2e, 0x87, 0x1b, 0x96, 0xda, 0xdd, 0xa0, + 0x2a, 0x86, 0x89, 0x07, 0x11, 0x32, 0xe8, 0xeb, 0x17, 0xda, 0xd6, 0xc5, 0x4e, 0x22, 0xb6, 0x30, + 0x8c, 0xae, 0x4b, 0x1d, 0x45, 0x58, 0x33, 0xa2, 0x6c, 0x75, 0xa0, 0x75, 0x93, 0x1e, 0x0f, 0x18, + 0x57, 0x19, 0xae, 0x55, 0xe1, 0x61, 0x9d, 0xd6, 0x5b, 0x37, 0x61, 0x61, 0xfa, 0xb7, 0xb9, 0xe1, + 0x3e, 0xf2, 0x62, 0xe0, 0x35, 0xe1, 0xdd, 0x52, 0x71, 0x17, 0xef, 0xc6, 0xd1, 0xc0, 0x5c, 0x53, + 0x63, 0xec, 0x9d, 0xeb, 0x26, 0xe1, 0xad, 0x29, 0x63, 0x29, 0x84, 0x96, 0x04, 0xef, 0xc0, 0x28, + 0x3f, 0x05, 0xd3, 0x6d, 0x03, 0xe4, 0xe1, 0x0f, 0x7f, 0x4b, 0xc0, 0x38, 0x28, 0xdd, 0x1c, 0x46, + 0xfc, 0xf4, 0x57, 0x7a, 0x8d, 0xb4, 0xc7, 0xe1, 0x15, 0x35, 0x7e, 0xde, 0x89, 0x9c, 0x9d, 0xa9, + 0x93, 0x7c, 0xf2, 0xd9, 0x70, 0x2c, 0x2d, 0x54, 0xaa, 0x0a, 0x9f, 0xfb, 0x48, 0x27, 0x2c, 0x6b, + 0xb5, 0xe2, 0xe9, 0xc5, 0x31, 0xa2, 0xc8, 0x52, 0x1e, 0x07, 0x50, 0xc4, 0x92, 0x76, 0xf2, 0x26, + 0x80, 0xdf, 0xa4, 0x4a, 0x1d, 0xed, 0xe4, 0xaf, 0xde, 0xde, 0x9c, 0xb1, 0xe4, 0xa1, 0xcc, 0xdb, + 0x82, 0xad, 0x8c, 0x40, 0x39, 0xe9, 0x10, 0xa9, 0x30, 0xf9, 0x81, 0x90, 0x1c, 0x83, 0xb4, 0x56, + 0x49, 0x77, 0x32, 0xe4, 0xf6, 0x42, 0x94, 0x70, 0x12, 0xdb, 0x98, 0x1f, 0x41, 0x02, 0xc6, 0x2b, + 0x56, 0xe9, 0xc0, 0x35, 0xe6, 0x13, 0x6b, 0x56, 0x4f, 0x89, 0x91, 0xd4, 0x2b, 0x52, 0xdc, 0x3d, + 0x10, 0xec, 0xdc, 0xe4, 0x08, 0xc2, 0xbf, 0x45, 0x1e, 0x5e, 0x38, 0xa9, 0x2d, 0x55, 0xef, 0xa7, + 0xb8, 0x1b, 0x74, 0xe6, 0xa2, 0x96, 0x29, 0x2e, 0x49, 0x1e, 0xdd, 0x92, 0xb2, 0x5c, 0xbf, 0x0c, + 0x8a, 0xa1, 0x15, 0x7f, 0x67, 0xc0, 0x77, 0xf4, 0xb3, 0x92, 0xf7, 0x95, 0x3e, 0x39, 0xfe, 0x33, + 0x94, 0xb5, 0x53, 0x2d, 0xfa, 0xca, 0x26, 0xf8, 0xf1, 0x21, 0x2d, 0xe8, 0x93, 0x79, 0xcf, 0x3e, + 0x1d, 0x28, 0xc0, 0xb5, 0x8e, 0x02, 0x7e, 0xb0, 0x92, 0xe5, 0xe0, 0x80, 0x12, 0x49, 0x8e, 0xf0, + 0x5d, 0x6d, 0x72, 0x6b, 0x15, 0xb6, 0x5d, 0x8e, 0xb3, 0x8e, 0x63, 0xd6, 0x9f, 0xea, 0x90, 0xa3, + 0xd4, 0xf5, 0x40, 0xa2, 0x21, 0xc5, 0x36, 0xed, 0x9f, 0xf7, 0x76, 0x6e, 0x52, 0x22, 0xdc, 0xde, + 0xfb, 0xf1, 0x1b, 0x43, 0x72, 0xec, 0xb3, 0x93, 0x34, 0xcf, 0x43, 0x41, 0x21, 0x7f, 0x8a, 0xfd, + 0x7e, 0x9f, 0x17, 0xac, 0xf1, 0x71, 0xbf, 0x17, 0x4a, 0xe2, 0xbb, 0xf5, 0xb8, 0x10, 0xb6, 0x82, + 0xb8, 0xce, 0x08, 0x0b, 0xf6, 0x7c, 0xc4, 0x67, 0x73, 0xd6, 0x13, 0xbe, 0xfd, 0x0b, 0x3d, 0xe1, + 0x67, 0x7d, 0x40, 0x5d, 0xeb, 0xfb, 0xa9, 0x97, 0xa7, 0x97, 0x5c, 0x78, 0xce, 0xa0, 0xe8, 0x74, + 0x84, 0x63, 0xf4, 0x9a, 0x4a, 0x82, 0x60, 0xdc, 0x3e, 0x9c, 0x32, 0xd2, 0xce, 0x62, 0xf2, 0xbf, + 0xfb, 0x48, 0x33, 0x8d, 0xf7, 0xe4, 0x69, 0x57, 0x47, 0xf1, 0xea, 0x11, 0xd4, 0x51, 0xf2, 0x27, + 0xef, 0xf6, 0x41, 0x2f, 0x34, 0x2a, 0x64, 0x53, 0x84, 0xd8, 0xa3, 0xb6, 0xb8, 0x3d, 0x7a, 0x78, + 0x00, 0x12, 0xf5, 0xc6, 0xf6, 0xa6, 0x77, 0x07, 0x20, 0x39, 0x38, 0x1b, 0x57, 0x0a, 0xc0, 0xbe, + 0x82, 0x58, 0x4e, 0xbd, 0xf8, 0x37, 0x06, 0x95, 0xf8, 0x4f, 0x57, 0xf1, 0xb7, 0x0b, 0xf6, 0xd1, + 0xbf, 0xb7, 0x88, 0x75, 0x8c, 0x69, 0x87, 0x5c, 0xc6, 0x59, 0xed, 0x4c, 0x6e, 0xad, 0x6b, 0xaa, + 0x8d, 0xb2, 0x3e, 0x85, 0xe6, 0xb5, 0xf0, 0x89, 0x39, 0xcb, 0xc2, 0x53, 0x53, 0x1c, 0xcd, 0x77, + 0x2d, 0xe7, 0xa6, 0xbd, 0x78, 0x99, 0x23, 0xf9, 0xce, 0x16, 0x6f, 0x35, 0x63, 0x7b, 0x94, 0xb5, + 0xa7, 0x92, 0x57, 0x94, 0x67, 0xc2, 0xf2, 0x1a, 0x6b, 0x63, 0xf9, 0x9c, 0x53, 0x47, 0xf5, 0x1c, + 0x7a, 0x19, 0x64, 0xcd, 0x5f, 0xbd, 0xd6, 0xd7, 0x44, 0xf5, 0xc4, 0xfb, 0x90, 0xc6, 0x8b, 0x5c, + 0x23, 0x6d, 0x31, 0xa2, 0x32, 0x7f, 0xf7, 0x5b, 0xd5, 0x50, 0x47, 0xde, 0x30, 0xde, 0x50, 0x8d, + 0x7f, 0xf7, 0x5b, 0xf2, 0x70, 0x91, 0x88, 0xa5, 0xd8, 0x1b, 0x5f, 0xa2, 0x31, 0xc5, 0x6f, 0x32, + 0xd2, 0xe8, 0x0f, 0xd2, 0x96, 0x41, 0xe3, 0xf6, 0x1f, 0xa4, 0xcc, 0xb6, 0x20, 0x98, 0x54, 0x63, + 0xc6, 0x84, 0x3c, 0x81, 0xd1, 0x5b, 0xe4, 0xf3, 0x9b, 0x40, 0xf8, 0xe7, 0xe3, 0x9a, 0xc6, 0xa6, + 0x86, 0xe2, 0xbf, 0x8e, 0xef, 0x0b, 0x62, 0x5b, 0x7c, 0x2d, 0xed, 0x71, 0x5f, 0x3c, 0x9e, 0x59, + 0x09, 0x88, 0x07, 0x8d, 0xa4, 0xd1, 0xe9, 0x46, 0xa8, 0x8e, 0x06, 0x49, 0x67, 0x2d, 0xbe, 0x57, + 0xf4, 0xd3, 0x6b, 0xf4, 0x2d, 0x14, 0xb9, 0xe2, 0xe0, 0x35, 0xc6, 0xfb, 0xb1, 0x65, 0xb2, 0xae, + 0xd3, 0x56, 0x7e, 0x45, 0x9d, 0x46, 0xac, 0xd3, 0x88, 0x75, 0x9a, 0xae, 0x51, 0x27, 0x47, 0x41, + 0xf4, 0x1a, 0x7c, 0xb3, 0xe3, 0xe3, 0x4a, 0x63, 0x3c, 0x63, 0xa2, 0xdd, 0x51, 0xf2, 0x97, 0x45, + 0xba, 0x3e, 0x0e, 0x2f, 0x52, 0x60, 0x6f, 0x13, 0x84, 0xda, 0xd7, 0x79, 0xa3, 0x88, 0x2b, 0x9b, + 0xa0, 0x76, 0xe1, 0x85, 0x71, 0xf0, 0x26, 0x11, 0x8b, 0x46, 0xb2, 0xfe, 0xff, 0x2f, 0xaf, 0x8f, + 0xff, 0x7b, 0x3d, 0x69, 0xe4, 0x3a, 0x3c, 0xc8, 0x7b, 0xbb, 0x10, 0x16, 0xdc, 0x42, 0x3b, 0x97, + 0x7c, 0xde, 0x3a, 0x68, 0xfe, 0x6b, 0x06, 0xc8, 0x7f, 0xa5, 0x77, 0x16, 0xcf, 0x95, 0x1c, 0x9b, + 0xbc, 0x5c, 0x99, 0xdc, 0x8c, 0xcf, 0xc5, 0x7a, 0x4d, 0x1e, 0xa1, 0x87, 0xed, 0x9d, 0xd5, 0xd6, + 0x28, 0x72, 0x24, 0x37, 0xd3, 0x5a, 0xc0, 0xba, 0x3d, 0xde, 0x18, 0xb8, 0xda, 0xa8, 0x6e, 0x07, + 0x59, 0xcc, 0xb7, 0xbc, 0x67, 0x19, 0x52, 0xe1, 0xd2, 0x25, 0xc4, 0x15, 0x6f, 0x20, 0xdc, 0x91, + 0xa4, 0xc4, 0x71, 0x77, 0xe8, 0xec, 0xa1, 0x7a, 0x5a, 0x54, 0x31, 0x7c, 0xb3, 0xd4, 0x4b, 0xf2, + 0x5f, 0x4b, 0xa4, 0x31, 0x12, 0x8b, 0x44, 0x57, 0xd0, 0xf9, 0x07, 0xc0, 0x49, 0xbb, 0xcd, 0xb2, + 0x9a, 0x7c, 0xc1, 0x10, 0x27, 0xbb, 0xc4, 0xc7, 0xf7, 0x86, 0x74, 0xdb, 0x12, 0x2b, 0xdf, 0x15, + 0x21, 0xc7, 0xbb, 0x1f, 0x73, 0xed, 0xe2, 0xa7, 0x62, 0x92, 0xd8, 0xf9, 0xce, 0x48, 0x7e, 0xd4, + 0xd5, 0xec, 0x53, 0x79, 0xda, 0x89, 0x12, 0x32, 0xdd, 0xcd, 0xc6, 0xf4, 0x27, 0x54, 0x07, 0xdf, + 0x7f, 0x03, 0x25, 0x64, 0xba, 0x2a, 0x2c, 0x35, 0x0f, 0x0e, 0x49, 0xea, 0x10, 0x9d, 0xed, 0x38, + 0x36, 0x20, 0xf5, 0x34, 0xa9, 0x19, 0x96, 0x45, 0x2d, 0x24, 0x61, 0x91, 0xc7, 0x93, 0xb4, 0x7a, + 0x9f, 0x19, 0xd7, 0x52, 0x11, 0xae, 0x82, 0x0e, 0xb5, 0x63, 0xd0, 0xbc, 0x7d, 0x78, 0x49, 0x0b, + 0x3e, 0x7f, 0x7d, 0xfb, 0xf0, 0xd2, 0x46, 0xbc, 0x56, 0x50, 0xec, 0x38, 0x35, 0xc8, 0xba, 0xf2, + 0x35, 0x0e, 0x50, 0xfd, 0xe4, 0x97, 0x5f, 0xf5, 0x24, 0x50, 0xee, 0x49, 0x39, 0xa1, 0x1b, 0x57, + 0x8b, 0x4d, 0x9d, 0x83, 0x33, 0x4c, 0xcf, 0x65, 0xf8, 0x2c, 0xe1, 0xb3, 0x95, 0x6b, 0x40, 0xd8, + 0x5a, 0x25, 0x91, 0x2f, 0x1a, 0x3a, 0xcd, 0xf6, 0x34, 0xe5, 0x24, 0x5e, 0xd0, 0x4c, 0x4a, 0x9b, + 0xd8, 0x9b, 0x90, 0xee, 0x4d, 0x44, 0x53, 0x20, 0x75, 0x5a, 0x5a, 0xa9, 0xbf, 0x52, 0xeb, 0xa0, + 0xd5, 0x1b, 0x86, 0x56, 0xfc, 0xef, 0xc0, 0xb1, 0x2b, 0x95, 0x43, 0x20, 0x93, 0xe7, 0x77, 0xd6, + 0x0b, 0x7f, 0x28, 0x75, 0x2f, 0x7b, 0x0e, 0xfb, 0x14, 0x9c, 0x37, 0x85, 0xc0, 0x8d, 0x79, 0x02, + 0x38, 0x27, 0xb5, 0x34, 0xf3, 0x99, 0x56, 0xd6, 0xab, 0x0e, 0x62, 0xbe, 0x8e, 0x03, 0x9b, 0xf0, + 0x8d, 0xb0, 0x34, 0x17, 0x3b, 0x8c, 0x71, 0xec, 0x79, 0x8d, 0xa3, 0x4b, 0xf7, 0x1f, 0x06, 0x70, + 0xa8, 0x00, 0x7b, 0x3a, 0x73, 0x1c, 0x38, 0x8e, 0x73, 0xec, 0x43, 0xed, 0x2c, 0x62, 0x96, 0x87, + 0x97, 0x9a, 0xb8, 0xd7, 0x0f, 0xa5, 0x3a, 0xd8, 0x5e, 0xfc, 0x13, 0xbd, 0xbe, 0x05, 0x57, 0xd7, + 0x37, 0x78, 0x45, 0x6d, 0x7a, 0x4d, 0xbd, 0x5c, 0x53, 0xef, 0x35, 0xeb, 0x59, 0xc4, 0x65, 0x7e, + 0xfa, 0xd5, 0xcb, 0x2c, 0xe8, 0x41, 0xe6, 0x2a, 0xa9, 0x2d, 0x57, 0x2e, 0xf9, 0x46, 0xbf, 0x63, + 0x00, 0xda, 0xc0, 0x80, 0xeb, 0xdc, 0x82, 0x77, 0x8b, 0x70, 0x95, 0x19, 0x22, 0x21, 0x8e, 0xea, + 0xfa, 0x5e, 0x0b, 0xd9, 0xe7, 0x05, 0x72, 0x3a, 0xeb, 0xf5, 0x59, 0xcc, 0x48, 0x7b, 0xa2, 0x24, + 0xaf, 0xeb, 0xd1, 0xcf, 0xfc, 0xd7, 0x88, 0x7e, 0x46, 0xe9, 0x95, 0x79, 0xe9, 0x35, 0xf2, 0x02, + 0x58, 0x22, 0x5b, 0xf0, 0xd7, 0x10, 0xe9, 0xc5, 0x35, 0x31, 0x5b, 0x78, 0xbd, 0xb8, 0x34, 0x25, + 0xf4, 0x0a, 0x53, 0x73, 0x88, 0xfa, 0x15, 0x46, 0x09, 0x73, 0x44, 0x0a, 0x46, 0xf8, 0x40, 0xa6, + 0x62, 0x14, 0xbf, 0x47, 0x5c, 0xfb, 0xa2, 0xe2, 0x01, 0x4b, 0x01, 0xbe, 0xcd, 0xe2, 0xd8, 0xa7, + 0xf9, 0x5f, 0xfc, 0x65, 0xd3, 0x6a, 0x72, 0x77, 0x63, 0x05, 0xf9, 0xf0, 0x7d, 0x8c, 0xf8, 0xdb, + 0xac, 0xd7, 0xbe, 0x2c, 0x2f, 0x26, 0xc3, 0x8d, 0x28, 0x6d, 0x13, 0x87, 0xe5, 0xe2, 0xa7, 0xaf, + 0x83, 0x87, 0x6c, 0x7f, 0xf0, 0x39, 0xc0, 0x91, 0xa6, 0x6a, 0x1f, 0xdd, 0xdf, 0xf0, 0x19, 0xfc, + 0xeb, 0xe3, 0xdf, 0x24, 0xee, 0x8a, 0xe2, 0xae, 0xb1, 0x07, 0x94, 0xda, 0x2f, 0x69, 0x77, 0xc5, + 0x17, 0xbf, 0xd3, 0xad, 0xab, 0x74, 0xad, 0x7c, 0x1c, 0xdd, 0x80, 0x38, 0x13, 0x26, 0x47, 0xb8, + 0x92, 0x01, 0xf9, 0x86, 0x4b, 0xde, 0x5e, 0x70, 0xc0, 0x22, 0xbc, 0x5b, 0xc4, 0x5a, 0x8f, 0x98, + 0x22, 0x76, 0xfa, 0x17, 0x9c, 0x35, 0x81, 0xa7, 0xd1, 0xd9, 0xcf, 0x31, 0x39, 0x4c, 0x13, 0xad, + 0xf3, 0x43, 0xd0, 0x56, 0x17, 0xf2, 0x57, 0x83, 0xf9, 0x00, 0xca, 0x73, 0xf3, 0x11, 0xfe, 0x03, + 0x61, 0x8e, 0x3c, 0x5b, 0x5c, 0xeb, 0x02, 0x63, 0xbd, 0xc1, 0x17, 0x6b, 0x8f, 0xcf, 0x8f, 0x43, + 0xf2, 0x2d, 0xa4, 0x57, 0xf3, 0xf1, 0x1f, 0x1a, 0xfd, 0xd1, 0xf6, 0x05, 0xf3, 0x17, 0x40, 0xeb, + 0xdb, 0x48, 0xd5, 0x30, 0xa5, 0x15, 0x12, 0xf6, 0x0e, 0xdf, 0x5c, 0xb1, 0x66, 0x84, 0x15, 0xa3, + 0xd2, 0x9e, 0xb3, 0x50, 0x74, 0xd1, 0xce, 0x15, 0x43, 0xde, 0x45, 0xe8, 0x47, 0xc8, 0xbb, 0x17, + 0xff, 0x07, 0xbd, 0xcd, 0xb0, 0x32, 0x88, 0x30, 0x83, 0xf8, 0x33, 0x82, 0xff, 0x43, 0x78, 0xdf, + 0x81, 0xd7, 0x7a, 0xfc, 0x1f, 0xc6, 0x56, 0x16, 0xe3, 0x98, 0xad, 0x1b, 0x04, 0xbf, 0x01, 0xa1, + 0x71, 0x03, 0xf6, 0xc3, 0x02, 0x75, 0xc8, 0x87, 0xd4, 0xc1, 0x46, 0x4f, 0xa3, 0xb7, 0x1f, 0x9f, + 0xee, 0xc1, 0xa7, 0x7b, 0x60, 0x04, 0xe1, 0x73, 0x0b, 0xc2, 0xf1, 0xf2, 0x6c, 0x5d, 0x72, 0x1b, + 0xd7, 0x15, 0x87, 0x27, 0x78, 0xb5, 0x5e, 0x84, 0xa7, 0x6e, 0x1a, 0x80, 0x7b, 0xe1, 0x19, 0xac, + 0xed, 0xc7, 0xf8, 0x45, 0x04, 0xb6, 0xe1, 0x6f, 0x3d, 0xbc, 0x88, 0xa5, 0x6f, 0xc7, 0x92, 0x5f, + 0xe2, 0x32, 0xc7, 0xb8, 0xac, 0x5d, 0x58, 0xd6, 0x1e, 0x2c, 0xeb, 0x47, 0x1c, 0xd1, 0x3a, 0x8e, + 0xb4, 0x96, 0x5a, 0x7c, 0x01, 0x5e, 0xe7, 0x12, 0xde, 0xc4, 0x12, 0x0e, 0x72, 0x09, 0x87, 0xb9, + 0x84, 0xa3, 0x58, 0xc2, 0x31, 0x2c, 0xe1, 0x7d, 0x2e, 0xe1, 0x04, 0x97, 0x70, 0x1a, 0x4b, 0x38, + 0x8b, 0x25, 0x4c, 0xe0, 0xd7, 0xe7, 0x39, 0x1a, 0x6e, 0x03, 0x9d, 0xb7, 0x67, 0xe1, 0xee, 0xfa, + 0xe1, 0xe9, 0x70, 0x67, 0x5b, 0x27, 0xfe, 0xae, 0xcf, 0xd8, 0x5e, 0xbc, 0x3e, 0x23, 0xfe, 0x8a, + 0x0e, 0x18, 0x27, 0xcd, 0xf6, 0xd9, 0xf7, 0x22, 0xdc, 0xbd, 0x6f, 0x3b, 0x7c, 0x3d, 0x5c, 0xdf, + 0x92, 0xfb, 0x13, 0x39, 0x9c, 0x4a, 0xb3, 0xbd, 0x17, 0x71, 0x69, 0x23, 0x6b, 0x72, 0x92, 0x55, + 0x9e, 0x39, 0xbe, 0x7b, 0x39, 0x38, 0x3a, 0x90, 0x53, 0x59, 0x84, 0x50, 0xb5, 0x35, 0x23, 0x29, + 0x8d, 0x88, 0x0d, 0x2d, 0x29, 0xb8, 0xde, 0xf6, 0xfe, 0xc2, 0x80, 0xe1, 0xfd, 0xc4, 0x13, 0x91, + 0x27, 0x22, 0xde, 0x22, 0xa5, 0x63, 0xda, 0xd9, 0x3c, 0xae, 0x9b, 0x4f, 0x2b, 0xea, 0x90, 0x66, + 0x3c, 0xb9, 0xa7, 0x6e, 0xe1, 0x41, 0xa4, 0x1b, 0xc1, 0x48, 0x20, 0x76, 0xf0, 0x63, 0xb8, 0x37, + 0x90, 0x40, 0x88, 0x9e, 0xed, 0x35, 0xef, 0xbf, 0xb4, 0xed, 0xf9, 0x48, 0x34, 0x1e, 0x3d, 0xde, + 0x12, 0x5f, 0x81, 0x34, 0x95, 0xb4, 0xba, 0xbc, 0x92, 0xb2, 0x60, 0xf2, 0x33, 0x85, 0x3d, 0x3e, + 0x3a, 0x22, 0x3f, 0xf4, 0x5a, 0x7d, 0x58, 0xe7, 0xc8, 0xab, 0x48, 0x75, 0xbb, 0x90, 0x82, 0xce, + 0x46, 0x5e, 0x5b, 0xe2, 0x5c, 0xa5, 0x9c, 0xa3, 0x52, 0x05, 0xdb, 0x23, 0xf6, 0x46, 0x65, 0x2e, + 0x58, 0x98, 0x63, 0x2a, 0x15, 0x1c, 0x13, 0xdb, 0x44, 0x19, 0x86, 0x8a, 0x22, 0x03, 0xd0, 0xa8, + 0x9a, 0x07, 0x8b, 0x86, 0x0c, 0xf3, 0x69, 0x5f, 0xb9, 0x71, 0x5a, 0x0b, 0xad, 0xd4, 0x42, 0xe2, + 0x5d, 0xa3, 0x43, 0x38, 0xc6, 0xf5, 0xc4, 0x53, 0x52, 0x5b, 0x11, 0x46, 0xee, 0x61, 0xde, 0xc4, + 0xea, 0x25, 0xad, 0x38, 0x2f, 0xdc, 0xeb, 0x9d, 0x15, 0x9b, 0xbc, 0x50, 0xc2, 0x34, 0x12, 0xb9, + 0x00, 0x84, 0x41, 0x8e, 0xba, 0xf2, 0xf6, 0x7e, 0x2c, 0x85, 0xa2, 0x71, 0x62, 0x29, 0xf6, 0x48, + 0xf2, 0xd1, 0xf0, 0x47, 0xda, 0x65, 0x9c, 0x93, 0x45, 0xe4, 0x10, 0x7f, 0xd1, 0x30, 0xce, 0x1c, + 0xd6, 0x86, 0x5f, 0x27, 0x91, 0xbe, 0x52, 0x39, 0x34, 0x1a, 0x9b, 0xf1, 0xdd, 0x92, 0x36, 0x7a, + 0xb7, 0x0a, 0xe9, 0x65, 0xaa, 0x63, 0x83, 0xce, 0x57, 0x50, 0x44, 0xcf, 0x59, 0x1e, 0x6a, 0xc9, + 0x12, 0x2c, 0xa1, 0xd1, 0xde, 0x98, 0x7c, 0x34, 0x57, 0x4a, 0x37, 0xdd, 0x75, 0xd0, 0x5d, 0x7f, + 0xb5, 0x17, 0xda, 0xda, 0x1e, 0xe4, 0x52, 0xfb, 0x91, 0x83, 0x00, 0xfc, 0xc7, 0x32, 0x1b, 0xce, + 0x68, 0x97, 0x10, 0x1e, 0x1e, 0xc6, 0x7c, 0xa9, 0x4e, 0xca, 0x97, 0x12, 0xfc, 0x93, 0x77, 0x26, + 0xe6, 0x4b, 0x60, 0x2e, 0xfc, 0x4a, 0xcf, 0x37, 0x85, 0xf9, 0xee, 0xc1, 0xeb, 0x65, 0xbc, 0xde, + 0xcf, 0xe5, 0xdc, 0x8b, 0x65, 0xcc, 0xcc, 0x95, 0xa3, 0x61, 0xfa, 0x93, 0x74, 0x06, 0x46, 0x5f, + 0x63, 0x0b, 0xeb, 0xa9, 0x5d, 0xa4, 0x83, 0xef, 0x2d, 0xb2, 0x77, 0x20, 0xff, 0xda, 0xe8, 0x0b, + 0x5f, 0xab, 0xe7, 0xd5, 0xd6, 0xbb, 0x45, 0xab, 0x56, 0x50, 0x49, 0x94, 0x1f, 0xc7, 0x42, 0x63, + 0xff, 0xe2, 0x6b, 0xb9, 0x0e, 0x1a, 0x81, 0x6e, 0x2a, 0x0b, 0x7b, 0x97, 0x64, 0x4e, 0xc4, 0x8b, + 0xf5, 0xd3, 0xf8, 0x2e, 0xc1, 0xdf, 0x59, 0x3c, 0xb2, 0x1e, 0xce, 0xdb, 0xa8, 0xd7, 0xea, 0xc5, + 0xb5, 0x4b, 0xdc, 0xbb, 0xc8, 0xbb, 0x9e, 0xca, 0xa5, 0x51, 0xd1, 0x7b, 0x36, 0x9b, 0xfb, 0x34, + 0x9b, 0xfb, 0x27, 0xbe, 0x2e, 0x4f, 0xe0, 0x4c, 0xa7, 0xc1, 0xba, 0x06, 0x67, 0xb0, 0x6d, 0xd1, + 0x42, 0x72, 0x89, 0xfe, 0xdd, 0x46, 0x5a, 0xed, 0x8b, 0x92, 0xf5, 0x5e, 0x68, 0xfd, 0x6e, 0xd3, + 0xb4, 0x99, 0x37, 0x53, 0xcb, 0x5d, 0x91, 0xe4, 0x96, 0xbf, 0x8c, 0xb1, 0x86, 0x43, 0x0c, 0x0c, + 0xdf, 0x03, 0xd8, 0xf0, 0x97, 0x51, 0x4b, 0x14, 0xef, 0xee, 0x27, 0xad, 0x13, 0xb7, 0x7c, 0xf7, + 0x03, 0xc1, 0xa4, 0xcb, 0xda, 0xb1, 0xae, 0x6e, 0x21, 0x73, 0x4e, 0xb3, 0xe9, 0x04, 0x8b, 0x6a, + 0xa3, 0xa8, 0x10, 0xd5, 0xd6, 0xb6, 0x07, 0xc3, 0x67, 0x10, 0x12, 0x8b, 0x28, 0x9e, 0x03, 0xb6, + 0x8e, 0xfa, 0xb6, 0x00, 0x96, 0x24, 0x37, 0xd7, 0x36, 0xea, 0x7d, 0x91, 0xe3, 0xbd, 0x38, 0xde, + 0x56, 0xe4, 0x5f, 0x89, 0x7e, 0x6c, 0x0e, 0x9f, 0xc6, 0xd1, 0x2d, 0xa2, 0xb8, 0x19, 0xf9, 0x2f, + 0x72, 0xfd, 0x2e, 0xe6, 0x3d, 0x2c, 0x8a, 0x80, 0xbc, 0x59, 0x2d, 0x47, 0x8e, 0x11, 0x39, 0x5f, + 0x7f, 0xa3, 0x77, 0x66, 0x30, 0xe9, 0xb5, 0x62, 0xed, 0xec, 0xdd, 0xe1, 0x8f, 0xdc, 0x4b, 0x15, + 0x66, 0x3f, 0xc3, 0x9a, 0x41, 0xb6, 0x4c, 0xd1, 0xf8, 0xea, 0x94, 0x9b, 0xfb, 0x94, 0xa7, 0x9b, + 0x30, 0x7b, 0x4d, 0x01, 0xe5, 0xec, 0xcf, 0xd3, 0xa5, 0xd9, 0xdd, 0xd8, 0x47, 0xcb, 0x12, 0x8a, + 0xd6, 0x3d, 0xeb, 0xee, 0xf1, 0xf8, 0x30, 0xe2, 0xe2, 0xba, 0x0e, 0xc4, 0x29, 0xaa, 0x71, 0x3e, + 0x69, 0xef, 0xd5, 0x61, 0xbf, 0x2d, 0xc8, 0x93, 0x45, 0xc5, 0xdb, 0x60, 0xa8, 0x23, 0xa9, 0x1a, + 0x82, 0xf8, 0xc6, 0x24, 0x01, 0x9d, 0x4a, 0x3c, 0x4d, 0x10, 0x1c, 0x88, 0x7a, 0xcd, 0x1c, 0x75, + 0x83, 0x46, 0x1d, 0xc7, 0x5f, 0xe9, 0xa0, 0x18, 0x84, 0xf6, 0x46, 0x2f, 0xae, 0x3d, 0x8e, 0x62, + 0x4b, 0xad, 0x5c, 0x8a, 0xe3, 0xbf, 0xa2, 0x6d, 0x61, 0x60, 0x00, 0x56, 0xb6, 0x25, 0x50, 0xa6, + 0x1a, 0x6c, 0x0f, 0x61, 0x5d, 0xdd, 0x28, 0x57, 0x2d, 0x6f, 0x0f, 0x23, 0xce, 0xef, 0x0f, 0x14, + 0xdf, 0x1d, 0xa9, 0x37, 0xdc, 0xdd, 0x44, 0x33, 0xc9, 0x5e, 0x3f, 0xaf, 0x4f, 0xd7, 0x8b, 0x92, + 0x94, 0x46, 0xfc, 0x45, 0x69, 0xf6, 0xdc, 0x54, 0xe7, 0xa6, 0xea, 0xb5, 0xf3, 0x41, 0x68, 0x87, + 0x9d, 0x3b, 0xe2, 0x2d, 0xf2, 0xd3, 0x8a, 0x9c, 0xe9, 0xa3, 0x5f, 0x93, 0x3f, 0x81, 0x77, 0x0b, + 0x85, 0xb7, 0xb2, 0x73, 0xf7, 0x53, 0x29, 0x4a, 0x87, 0x5e, 0x0e, 0x20, 0xbe, 0x2c, 0xba, 0x12, + 0xff, 0x9c, 0x7b, 0x32, 0x68, 0x3e, 0x9a, 0xc4, 0x96, 0x34, 0x36, 0x86, 0x26, 0x22, 0x13, 0x0b, + 0x6b, 0x21, 0xbe, 0x17, 0x47, 0xd8, 0xa8, 0xc7, 0xef, 0x32, 0xe8, 0x18, 0xc0, 0x40, 0xd0, 0xe0, + 0x4b, 0x20, 0x7c, 0xde, 0x53, 0x37, 0xe3, 0xf8, 0xc2, 0xf8, 0xab, 0x58, 0xc6, 0x8c, 0x06, 0xa4, + 0x60, 0x8f, 0xbd, 0x8a, 0xdf, 0x2e, 0xf2, 0xcf, 0x8e, 0xef, 0x76, 0x85, 0xe8, 0x24, 0x92, 0x67, + 0x1c, 0x67, 0x64, 0xc1, 0xe4, 0x1f, 0x3e, 0xc0, 0x19, 0xbf, 0x97, 0xb1, 0x10, 0xc2, 0x39, 0xf3, + 0xd1, 0x58, 0x1a, 0x4b, 0xa6, 0x34, 0xcf, 0x8d, 0xf1, 0x65, 0x84, 0xaf, 0xb0, 0x0d, 0x5b, 0x9e, + 0x4e, 0xbe, 0x9b, 0x10, 0x1c, 0xb7, 0x6f, 0xc6, 0xdd, 0xf9, 0x7a, 0x23, 0xc9, 0xcd, 0xc8, 0xa1, + 0x24, 0xdf, 0x79, 0x95, 0xec, 0xcc, 0xb2, 0x79, 0x45, 0xbe, 0xf6, 0xa6, 0x60, 0x93, 0xd7, 0x9a, + 0x2d, 0x4f, 0x85, 0x99, 0xeb, 0xb8, 0x5f, 0x92, 0xbd, 0x71, 0xf4, 0x1f, 0x10, 0xcb, 0xb3, 0x3c, + 0xa8, 0x1a, 0x18, 0x87, 0x15, 0x89, 0x91, 0x72, 0x31, 0x1e, 0x63, 0x6b, 0x96, 0x2f, 0x1c, 0xaf, + 0x3f, 0x24, 0x8f, 0x20, 0xee, 0x3d, 0xf8, 0xe6, 0x16, 0xa4, 0x35, 0xf4, 0xff, 0x74, 0xf2, 0xe9, + 0x64, 0x50, 0x6e, 0x6f, 0x3c, 0xba, 0xb0, 0x6e, 0x46, 0x7b, 0xec, 0x48, 0x42, 0xec, 0x99, 0xb4, + 0x3d, 0x78, 0x7c, 0x93, 0xc0, 0x4b, 0x57, 0x62, 0x73, 0x7b, 0x94, 0x57, 0xa0, 0x25, 0x12, 0x15, + 0x9a, 0x86, 0xb5, 0x4d, 0xc1, 0x46, 0xa2, 0xa6, 0x81, 0x84, 0x37, 0x01, 0x11, 0xac, 0x05, 0x71, + 0x97, 0x3f, 0x86, 0xa3, 0x92, 0x50, 0x57, 0x05, 0xa2, 0x0b, 0x85, 0x1f, 0x30, 0xd2, 0x94, 0xde, + 0xda, 0xba, 0xa9, 0x99, 0x63, 0x20, 0x93, 0xfd, 0x21, 0xe9, 0x77, 0x28, 0xd0, 0x2d, 0xb7, 0x0d, + 0x1f, 0x1f, 0x46, 0xb9, 0xa5, 0xfe, 0xc9, 0x61, 0x94, 0x62, 0x22, 0x47, 0x1f, 0xa6, 0x08, 0x6c, + 0xb8, 0x6a, 0x10, 0xcb, 0x27, 0xb7, 0x22, 0x04, 0x6c, 0x14, 0x39, 0x91, 0xe2, 0x34, 0xfe, 0xcb, + 0x38, 0x8e, 0x3a, 0xc5, 0xb0, 0x27, 0xb9, 0x6c, 0x56, 0xf3, 0xe4, 0xd9, 0xf5, 0xc9, 0xc7, 0x09, + 0x93, 0x8e, 0x3c, 0x8c, 0xe9, 0xc0, 0x31, 0xff, 0x08, 0x8b, 0x3c, 0xde, 0x46, 0xf2, 0xa6, 0x6f, + 0x57, 0xb4, 0x7f, 0x8d, 0x0a, 0xe6, 0x95, 0x5f, 0xb6, 0x4e, 0xcc, 0xf7, 0x5c, 0x7b, 0x9d, 0x98, + 0x23, 0xff, 0xc7, 0xd7, 0xc9, 0x2c, 0x9a, 0x89, 0xb3, 0xc1, 0xff, 0xfd, 0x75, 0xf2, 0xf1, 0xa1, + 0xc2, 0x75, 0xf2, 0xf1, 0xf6, 0x2f, 0x9e, 0xf7, 0x8f, 0x17, 0x5d, 0xb1, 0x4e, 0x8e, 0x5f, 0xbd, + 0x4e, 0x3e, 0x1e, 0xf4, 0x59, 0x71, 0x85, 0x34, 0x4d, 0x24, 0xea, 0x20, 0xfe, 0xaa, 0x6f, 0xf6, + 0xc4, 0x00, 0xd3, 0xaf, 0x62, 0x3f, 0xb4, 0x85, 0xfd, 0x61, 0x84, 0x58, 0x01, 0x61, 0x74, 0xc2, + 0xd2, 0xe6, 0x8a, 0x26, 0xb7, 0xe0, 0xe8, 0x5a, 0x7d, 0x09, 0x4f, 0x78, 0xc1, 0xd9, 0x13, 0x50, + 0x3f, 0x3b, 0xfe, 0xeb, 0xa0, 0x7c, 0x3c, 0x19, 0xdf, 0xe7, 0x97, 0x3d, 0x4d, 0xff, 0xb2, 0xfb, + 0xef, 0xf7, 0x51, 0xfc, 0x4d, 0x9a, 0x93, 0xd8, 0xe4, 0x47, 0xe3, 0x8c, 0xe5, 0x88, 0x12, 0x14, + 0xe3, 0x9c, 0xd5, 0x33, 0xf4, 0xcf, 0x12, 0x70, 0x8a, 0xd2, 0x7d, 0x3f, 0xc2, 0x3d, 0x62, 0x3d, + 0x84, 0xc6, 0x7b, 0x0e, 0x2e, 0xd4, 0xa5, 0xd2, 0x62, 0x9f, 0xac, 0xaf, 0x12, 0xd2, 0xc1, 0xdb, + 0xea, 0x6e, 0xfa, 0x67, 0x2e, 0x8f, 0x77, 0x1f, 0x04, 0xce, 0xe4, 0x5c, 0xed, 0x11, 0x5f, 0x84, + 0xfb, 0xb7, 0x95, 0x6b, 0x9b, 0xad, 0xbf, 0x53, 0x54, 0x30, 0x0d, 0xfd, 0x67, 0xac, 0x96, 0x8f, + 0x94, 0x3f, 0xb1, 0x5a, 0x78, 0x0d, 0xb4, 0xad, 0x39, 0xfe, 0xf0, 0x9f, 0x5c, 0x2d, 0xbc, 0xae, + 0x82, 0x91, 0xda, 0x98, 0xb7, 0x65, 0xfa, 0x6a, 0x89, 0xef, 0x53, 0x57, 0x06, 0xa2, 0xcd, 0x62, + 0xa5, 0xcc, 0xc0, 0x95, 0x82, 0x10, 0x2f, 0xa2, 0x85, 0xb3, 0x2d, 0xf4, 0x96, 0x2b, 0x57, 0x8a, + 0x92, 0xc4, 0x35, 0x32, 0x83, 0xd7, 0xc8, 0xe3, 0x38, 0xfb, 0x8f, 0x88, 0x3c, 0x28, 0xe3, 0x44, + 0xfe, 0x79, 0x1c, 0x47, 0xb7, 0x71, 0xe2, 0x61, 0xa6, 0x55, 0x80, 0xa3, 0x01, 0x84, 0xa3, 0xce, + 0x2c, 0x4e, 0x6e, 0xb1, 0x1b, 0x37, 0x8b, 0x54, 0x09, 0x53, 0x25, 0xc2, 0x31, 0x62, 0x9d, 0xec, + 0x88, 0xf6, 0xaf, 0x53, 0x61, 0x46, 0xeb, 0x97, 0xad, 0x93, 0x19, 0xfe, 0x6b, 0xaf, 0x93, 0x19, + 0x15, 0xff, 0xfb, 0xeb, 0xc4, 0x1f, 0xf5, 0xce, 0x0c, 0xc4, 0x90, 0xe7, 0x9b, 0xb6, 0x4e, 0x04, + 0x74, 0x0b, 0x7d, 0x95, 0xe4, 0xd8, 0x99, 0xd2, 0xc2, 0x75, 0x82, 0x33, 0x35, 0xc8, 0x12, 0x41, + 0xb7, 0x8f, 0xd6, 0x09, 0xad, 0x98, 0xaf, 0xb0, 0x4e, 0x4e, 0xbf, 0x58, 0xb8, 0x4e, 0x4e, 0x3f, + 0xfc, 0xc5, 0x33, 0x7e, 0xba, 0xfa, 0x8a, 0x75, 0x72, 0xf6, 0xea, 0x75, 0x72, 0x3a, 0xe1, 0x33, + 0x4f, 0x24, 0xeb, 0x66, 0x1f, 0x21, 0x0c, 0x8f, 0x98, 0x3b, 0xb7, 0x3e, 0x8a, 0xaf, 0x5c, 0x21, + 0xfe, 0x84, 0x7f, 0xc6, 0xf1, 0x05, 0xbe, 0x30, 0xd1, 0x94, 0x21, 0x08, 0xce, 0x38, 0xfa, 0xd0, + 0x53, 0x1b, 0x04, 0xcc, 0x10, 0x35, 0x51, 0x22, 0x0b, 0xce, 0x96, 0x6b, 0x38, 0xf6, 0x38, 0x12, + 0x7f, 0xbb, 0x9b, 0xf1, 0x9b, 0x85, 0x70, 0xdb, 0xa9, 0x11, 0xa6, 0x2a, 0x8f, 0x8b, 0x35, 0x83, + 0x73, 0x5a, 0xc7, 0x71, 0x22, 0x8b, 0xb3, 0x6b, 0x46, 0x69, 0x64, 0x3e, 0x98, 0x46, 0xe7, 0xf1, + 0xe9, 0x74, 0x25, 0x10, 0xc2, 0xb1, 0x2c, 0x16, 0x6b, 0x06, 0xe9, 0x4f, 0xc4, 0xb1, 0xe0, 0x9d, + 0x8f, 0x91, 0xdb, 0x10, 0xb4, 0x85, 0xf3, 0x67, 0x69, 0x0b, 0xef, 0xac, 0x15, 0xeb, 0x2b, 0xc7, + 0x2c, 0xde, 0xa9, 0x70, 0x69, 0xef, 0x7f, 0xc6, 0xaa, 0x39, 0x79, 0xf2, 0x3f, 0x8b, 0xc6, 0xd4, + 0x36, 0x89, 0xd1, 0xfa, 0x32, 0x1a, 0xa3, 0x24, 0x1e, 0x7d, 0x23, 0x4b, 0x67, 0xe2, 0x5d, 0x20, + 0x5d, 0x4d, 0x69, 0x68, 0xdd, 0x1c, 0xd1, 0x29, 0x8c, 0xa0, 0x45, 0x79, 0xda, 0x92, 0x5d, 0x5b, + 0xd7, 0xa2, 0x31, 0x27, 0xed, 0x7f, 0x9a, 0xc6, 0x18, 0x4a, 0xbf, 0x6c, 0xed, 0x14, 0x5d, 0xb8, + 0xf6, 0xda, 0x29, 0x7a, 0xf7, 0xff, 0x38, 0x8d, 0x61, 0x8e, 0xf1, 0xc3, 0xc3, 0xff, 0xfb, 0x34, + 0xe6, 0xc3, 0xc1, 0xc2, 0xb5, 0xf3, 0x61, 0xf2, 0x8b, 0xe7, 0xfd, 0xc4, 0xb9, 0x2b, 0xd6, 0xce, + 0xb1, 0xab, 0xd7, 0xce, 0x87, 0xd6, 0x3a, 0xf3, 0x91, 0xe4, 0x57, 0xa1, 0x2e, 0x02, 0x4a, 0xfc, + 0x89, 0xd8, 0x1f, 0x56, 0xd2, 0x1a, 0xb1, 0x3e, 0xbe, 0xfb, 0x9a, 0x34, 0x86, 0x3c, 0x46, 0x20, + 0x96, 0x3b, 0xb1, 0x38, 0xcb, 0x85, 0x09, 0x1a, 0xc3, 0x2b, 0x86, 0x21, 0x89, 0x63, 0x21, 0x08, + 0x1a, 0xb3, 0xe5, 0x6a, 0x1a, 0x43, 0x51, 0xfa, 0xc4, 0xba, 0xd2, 0x69, 0x8c, 0x59, 0xa7, 0x31, + 0x5b, 0xf2, 0x34, 0xc6, 0x1f, 0xc9, 0xd2, 0x21, 0xae, 0x8f, 0x79, 0x34, 0x15, 0x3e, 0x7b, 0xe2, + 0x3f, 0x63, 0xad, 0xfc, 0xfb, 0xae, 0xff, 0x2c, 0x0a, 0x53, 0x1b, 0xd1, 0x69, 0x4c, 0xec, 0xca, + 0xb5, 0x22, 0x28, 0x4c, 0xc1, 0x3a, 0x99, 0xf1, 0x65, 0xeb, 0x84, 0x69, 0xd0, 0xb5, 0x57, 0x48, + 0xe4, 0x5f, 0xa6, 0x53, 0x18, 0x96, 0x9e, 0x9b, 0x27, 0x3f, 0x98, 0x4c, 0x3e, 0x5e, 0x40, 0x61, + 0xac, 0x4c, 0x61, 0x1e, 0x2f, 0xa4, 0x30, 0xf0, 0xd1, 0x95, 0x2b, 0x03, 0x8e, 0x5e, 0x7b, 0x65, + 0xc0, 0xde, 0x5c, 0xce, 0xec, 0x4e, 0xe6, 0xf6, 0x82, 0x9c, 0x4f, 0x15, 0xe4, 0x7c, 0x32, 0x97, + 0xb3, 0x57, 0xcf, 0xb9, 0xa1, 0x20, 0xe7, 0xeb, 0xb9, 0x9c, 0x99, 0x2b, 0xf2, 0xa9, 0xd7, 0xcc, + 0x95, 0xb8, 0x22, 0x57, 0xdd, 0x35, 0x73, 0x39, 0xae, 0xe8, 0x47, 0xe9, 0xb5, 0x7a, 0x91, 0x8b, + 0x52, 0xf7, 0xc6, 0x17, 0xe9, 0x0c, 0x29, 0x83, 0x26, 0x3a, 0x03, 0xbe, 0xff, 0xaa, 0x18, 0xcd, + 0xe5, 0xd3, 0x75, 0x5d, 0x5a, 0xf4, 0x48, 0x3c, 0x2e, 0xdd, 0x27, 0x25, 0x9d, 0x2f, 0x89, 0x9d, + 0x35, 0xc7, 0x7f, 0x33, 0x19, 0x74, 0xcb, 0x8d, 0xac, 0x96, 0x5f, 0x6e, 0xbf, 0x4e, 0xd7, 0xd3, + 0xe8, 0xcd, 0x69, 0x60, 0x44, 0xa6, 0x97, 0x5a, 0x69, 0xb8, 0x52, 0xef, 0x5d, 0xdb, 0x39, 0x3d, + 0x72, 0x0c, 0xe9, 0x08, 0xa1, 0xac, 0x5f, 0xea, 0x61, 0xfd, 0x27, 0xcd, 0xa5, 0x7b, 0xa2, 0xa0, + 0x93, 0x69, 0xe1, 0x09, 0xd1, 0x0b, 0xe5, 0x76, 0xdd, 0x87, 0x06, 0x69, 0xab, 0x63, 0x3e, 0x17, + 0xed, 0x09, 0x09, 0xfd, 0x3c, 0xfd, 0x54, 0x2b, 0xef, 0xed, 0x73, 0xd7, 0x7f, 0xe4, 0xac, 0x6c, + 0x9a, 0xe5, 0xcd, 0x95, 0xa9, 0x4f, 0xeb, 0x7a, 0x1b, 0x6f, 0xb0, 0x87, 0xab, 0x90, 0x42, 0xfe, + 0xe9, 0xc4, 0xbe, 0x9f, 0x81, 0x7d, 0x91, 0x98, 0x6f, 0xea, 0x82, 0x07, 0xc0, 0x14, 0xf9, 0x29, + 0x58, 0xf1, 0xbf, 0xc4, 0x37, 0x97, 0xf6, 0xb0, 0xda, 0x69, 0x67, 0xa4, 0x0c, 0xef, 0xcd, 0xfa, + 0x7d, 0x05, 0xe6, 0x8d, 0xc2, 0x1c, 0xfc, 0x8d, 0x83, 0x1d, 0x7f, 0x5b, 0xc0, 0xe9, 0xa5, 0x3d, + 0x46, 0xf7, 0x7c, 0xda, 0x59, 0xae, 0xa6, 0x98, 0xa6, 0x99, 0xef, 0x37, 0x42, 0xc2, 0x2d, 0x1f, + 0xea, 0xc3, 0x91, 0xfb, 0xf9, 0x09, 0x28, 0x4d, 0x99, 0xbd, 0x5d, 0xf8, 0x8d, 0x6f, 0xd0, 0xa0, + 0x96, 0xe3, 0xb3, 0x8d, 0x9f, 0x43, 0xf8, 0x2c, 0xab, 0x26, 0xbc, 0x8b, 0xe3, 0x9d, 0xb4, 0x66, + 0x98, 0x76, 0xed, 0xf9, 0x24, 0x22, 0x0b, 0x4d, 0x5f, 0xa0, 0x4d, 0x14, 0x09, 0xb1, 0xee, 0x48, + 0x40, 0x9c, 0xe8, 0xd1, 0x29, 0x8e, 0x87, 0x2c, 0x6c, 0xbc, 0x10, 0x44, 0x5c, 0x5d, 0xa3, 0xc4, + 0xe8, 0x1c, 0x87, 0xfc, 0x11, 0xa7, 0x8c, 0xd5, 0xd5, 0xe4, 0x1f, 0x06, 0x7f, 0x4b, 0xed, 0x4d, + 0x8e, 0xb9, 0xe0, 0xe7, 0x54, 0xb3, 0x6f, 0x08, 0xca, 0xde, 0xfa, 0x88, 0x3c, 0x6d, 0x86, 0x3f, + 0x02, 0x57, 0xa0, 0x1f, 0x7a, 0xfd, 0xad, 0x35, 0xfd, 0xd0, 0xef, 0x77, 0x81, 0xec, 0x8a, 0x32, + 0xa4, 0x58, 0x38, 0xca, 0x33, 0x48, 0x25, 0x74, 0xfe, 0xa4, 0x8c, 0x93, 0x46, 0xa1, 0x12, 0xfa, + 0x2e, 0xc7, 0x26, 0x38, 0x78, 0x1a, 0x0c, 0x5b, 0x5e, 0xb3, 0xf7, 0x83, 0xaf, 0x6e, 0x19, 0x18, + 0x0f, 0x9d, 0x06, 0xe3, 0xd6, 0xdd, 0xbe, 0x5e, 0x30, 0x8f, 0xfc, 0x56, 0x31, 0x89, 0x35, 0x7f, + 0x68, 0xbc, 0x76, 0x19, 0x8e, 0x28, 0xc5, 0x58, 0xa7, 0x53, 0xab, 0x55, 0xac, 0x65, 0x17, 0x65, + 0x9f, 0x2c, 0x96, 0xb4, 0x03, 0x57, 0x7b, 0x35, 0xf0, 0x2e, 0x45, 0x4d, 0xb3, 0x77, 0x16, 0x62, + 0x1c, 0x33, 0x3e, 0xfb, 0xf8, 0x74, 0xe9, 0xa0, 0x1e, 0x73, 0xf2, 0x29, 0xa5, 0x1f, 0x21, 0x2a, + 0x66, 0x9a, 0xcb, 0x96, 0x3e, 0xd6, 0x02, 0x7a, 0x50, 0xaa, 0x72, 0xfc, 0x28, 0x4b, 0x23, 0xf6, + 0xc3, 0x90, 0x21, 0x6d, 0x7c, 0x7c, 0xeb, 0xf3, 0x4d, 0x3f, 0x27, 0xbb, 0x4c, 0x14, 0xc5, 0xd2, + 0xbe, 0xf0, 0xc8, 0x6f, 0xea, 0x16, 0xd6, 0x34, 0xb7, 0xb7, 0x1c, 0x7e, 0xbd, 0xb6, 0x05, 0xeb, + 0x29, 0x46, 0x48, 0x8d, 0x72, 0x29, 0x88, 0xb9, 0x94, 0x85, 0x8f, 0xfe, 0x86, 0xf0, 0x19, 0xc9, + 0x8e, 0x74, 0x65, 0xcf, 0xa7, 0x33, 0xf8, 0x6b, 0xf2, 0xe9, 0xed, 0x48, 0x84, 0x52, 0xa5, 0xfa, + 0x39, 0xe3, 0x2c, 0x3d, 0x2a, 0x0d, 0x47, 0xec, 0x13, 0xf6, 0x3c, 0x7c, 0x8a, 0x26, 0x6c, 0x79, + 0x6a, 0x6b, 0xbc, 0xe0, 0xa4, 0x28, 0xe5, 0x75, 0x5e, 0xa8, 0x0e, 0x7a, 0xc1, 0xef, 0x20, 0xfd, + 0x03, 0x99, 0xf7, 0xdd, 0xc7, 0x2e, 0xdf, 0xcf, 0x7d, 0x1f, 0xe0, 0x79, 0xcd, 0xda, 0x51, 0x91, + 0xcf, 0x97, 0x7c, 0x7f, 0x2c, 0x05, 0x4f, 0x56, 0xb6, 0xa2, 0x1f, 0xbb, 0x4c, 0xf1, 0x59, 0x2c, + 0xb7, 0x0c, 0xc1, 0xbf, 0x3e, 0xdc, 0x09, 0xa6, 0x1b, 0x68, 0xff, 0xf1, 0x9b, 0x5e, 0x99, 0xf6, + 0x09, 0xd8, 0xee, 0x38, 0x8a, 0xff, 0x0d, 0xba, 0xed, 0xf1, 0x71, 0xb2, 0x54, 0x8d, 0xb8, 0xe1, + 0x9b, 0xa2, 0x6d, 0x96, 0xa1, 0xec, 0x39, 0x06, 0x47, 0xe1, 0x6d, 0x29, 0xb4, 0x4d, 0xc0, 0xb6, + 0xb5, 0xd9, 0x3d, 0x08, 0x19, 0x34, 0x76, 0x46, 0x3b, 0x79, 0x01, 0x34, 0xe0, 0x6f, 0x69, 0x35, + 0xc2, 0x45, 0x5d, 0x15, 0xf4, 0x3e, 0xd9, 0x5a, 0x5b, 0x05, 0xfd, 0x4f, 0x74, 0x81, 0xcc, 0xfe, + 0x6a, 0x67, 0xb3, 0x85, 0x5a, 0x25, 0xcf, 0xda, 0xec, 0x74, 0x05, 0x7d, 0xc5, 0x1a, 0x76, 0x0a, + 0xa6, 0xe0, 0xdb, 0xac, 0xe7, 0x16, 0xd5, 0xc8, 0xd1, 0xd7, 0x24, 0xd2, 0x3c, 0xf6, 0x4a, 0xec, + 0xe9, 0x7d, 0xec, 0xd2, 0x06, 0x77, 0x37, 0xfb, 0xad, 0x14, 0x3e, 0xd7, 0x40, 0xb2, 0xb3, 0xdf, + 0x95, 0xd9, 0x88, 0x6b, 0xc7, 0x1d, 0xf3, 0xc0, 0x96, 0xd8, 0x06, 0x95, 0xe9, 0x92, 0x02, 0x3d, + 0x15, 0xcc, 0x1d, 0x79, 0x8e, 0x75, 0x7f, 0x4b, 0x88, 0x0b, 0x90, 0xdf, 0x49, 0xcf, 0xc1, 0x96, + 0x51, 0xc4, 0x7b, 0x03, 0xf9, 0xa3, 0x41, 0xa8, 0x31, 0x64, 0x2c, 0x58, 0x8b, 0xc1, 0xf6, 0x33, + 0x93, 0x14, 0x41, 0x28, 0xf5, 0x5a, 0x48, 0x4b, 0x3f, 0xfe, 0xd7, 0x58, 0x69, 0x37, 0xae, 0x8c, + 0xbf, 0x6e, 0xa5, 0x7d, 0x50, 0xac, 0xf9, 0xf3, 0xe5, 0x7a, 0x4c, 0xd9, 0x4a, 0x3a, 0x35, 0xc4, + 0x32, 0x6a, 0x39, 0x1e, 0xa8, 0x29, 0xf2, 0x3f, 0x49, 0x53, 0xbe, 0xf9, 0x2c, 0x2e, 0xb9, 0x6e, + 0x84, 0xd4, 0x0f, 0xc1, 0xa8, 0x98, 0x8e, 0x0f, 0xc7, 0xff, 0xbb, 0x89, 0x9e, 0x4d, 0xe1, 0xb3, + 0xad, 0x80, 0x69, 0xa4, 0x17, 0x3a, 0x93, 0x4b, 0x69, 0xa1, 0x96, 0xdc, 0x1c, 0x01, 0x5b, 0x5e, + 0xe3, 0x85, 0x21, 0xb3, 0x33, 0x31, 0x00, 0xfe, 0x94, 0xdd, 0x82, 0xb4, 0x1e, 0x4c, 0x29, 0x3a, + 0xfb, 0x88, 0x47, 0xfe, 0xbf, 0x6c, 0x85, 0x57, 0xa1, 0x2c, 0x64, 0x1f, 0xd6, 0xa4, 0x9d, 0x14, + 0x4d, 0xe1, 0x98, 0x44, 0x1a, 0x28, 0xf6, 0xe8, 0x0a, 0x49, 0xd4, 0xef, 0xa5, 0x7a, 0x8c, 0xf1, + 0x0c, 0xd7, 0x6f, 0x88, 0x67, 0x5a, 0x49, 0xce, 0xc2, 0x9a, 0x26, 0x8f, 0x73, 0xb9, 0x72, 0xa4, + 0x81, 0xe0, 0x2c, 0x67, 0x51, 0xee, 0x76, 0xe0, 0x3c, 0xd1, 0xb9, 0xaa, 0x98, 0x2b, 0x85, 0xe7, + 0x0a, 0x7f, 0x4b, 0xdd, 0x5d, 0xb8, 0x86, 0x29, 0xcd, 0xc6, 0x6b, 0xf8, 0x14, 0x54, 0xce, 0xef, + 0x81, 0xc5, 0x50, 0xab, 0x9a, 0xc3, 0xa7, 0xc0, 0x85, 0xf7, 0xf7, 0x42, 0x2d, 0xfe, 0xf6, 0x42, + 0xdd, 0xfc, 0x56, 0x08, 0xe2, 0x1d, 0xae, 0xd2, 0xf9, 0x38, 0xa3, 0x50, 0x3f, 0x9f, 0xfc, 0x0b, + 0xd7, 0xb0, 0xe7, 0xa0, 0x9a, 0xe8, 0x78, 0x0a, 0xa4, 0x95, 0xde, 0x3e, 0x08, 0x40, 0x08, 0xd7, + 0xb9, 0x94, 0x76, 0x51, 0x7f, 0x09, 0x42, 0x85, 0x2e, 0x99, 0xd0, 0x00, 0xf2, 0x80, 0x6e, 0x4b, + 0x35, 0x1b, 0xdb, 0xb9, 0x54, 0xd8, 0x52, 0x0d, 0xd1, 0xf7, 0xbe, 0x91, 0x01, 0x2c, 0x0f, 0xbb, + 0x82, 0xe3, 0x1b, 0xc0, 0xe7, 0xba, 0x09, 0xec, 0xd3, 0x5f, 0x86, 0xf0, 0xd7, 0x34, 0x82, 0x33, + 0x86, 0x6f, 0x83, 0xf8, 0x5f, 0x1b, 0x1c, 0x00, 0xdf, 0xd1, 0x93, 0x60, 0xcc, 0x8e, 0x78, 0xdb, + 0x06, 0x3b, 0xe1, 0x87, 0xd5, 0xc7, 0x57, 0x1f, 0xdd, 0xcd, 0xeb, 0x63, 0x36, 0xe9, 0xbe, 0x63, + 0xd9, 0xf7, 0x88, 0x31, 0x42, 0xee, 0x32, 0x41, 0xd6, 0x3f, 0x88, 0x6d, 0x56, 0x33, 0xb6, 0x61, + 0xcf, 0x8f, 0xd1, 0xd5, 0x5e, 0x89, 0x76, 0x33, 0x11, 0x8b, 0xc7, 0x99, 0x3b, 0xab, 0x82, 0x00, + 0x7f, 0xd9, 0x91, 0x1c, 0xfb, 0xec, 0x59, 0x1c, 0x93, 0x40, 0x10, 0x57, 0x4f, 0x27, 0x05, 0x93, + 0xed, 0x38, 0x4a, 0x3e, 0x7e, 0xc8, 0xf2, 0xdb, 0x24, 0xa0, 0x68, 0xda, 0x4a, 0x2b, 0x51, 0xe7, + 0xd0, 0xfd, 0x74, 0x78, 0xc2, 0x55, 0x55, 0x88, 0x3b, 0xb0, 0xa7, 0x9f, 0xbd, 0x44, 0x3d, 0xf5, + 0xbb, 0xc1, 0x78, 0xa0, 0x0f, 0xea, 0x0f, 0x60, 0x1f, 0xa8, 0xfd, 0xec, 0xff, 0xab, 0xee, 0xd1, + 0xf1, 0x2c, 0x86, 0x3b, 0x10, 0xb2, 0x2f, 0xf4, 0x59, 0xc9, 0x6e, 0x8d, 0xc7, 0xca, 0x66, 0x5f, + 0x18, 0x3e, 0x09, 0x15, 0x7a, 0xfc, 0xa4, 0xbd, 0x89, 0xf5, 0xa4, 0xcb, 0xa8, 0xc7, 0x73, 0x22, + 0xaf, 0x7c, 0x51, 0x2e, 0x59, 0xe1, 0x73, 0x40, 0x82, 0xa0, 0xba, 0x44, 0x43, 0xaa, 0xe6, 0x30, + 0x42, 0xc4, 0x11, 0x1c, 0x39, 0xaf, 0x88, 0x76, 0x47, 0xd1, 0x79, 0xa3, 0x1c, 0x9d, 0x97, 0xbd, + 0xbe, 0x4c, 0xc4, 0xf8, 0x3e, 0x2a, 0xd6, 0x3c, 0x43, 0xe5, 0x46, 0x82, 0x15, 0x9d, 0x47, 0x60, + 0x9f, 0x85, 0xf5, 0x41, 0xd2, 0xa0, 0x75, 0x09, 0xad, 0xc0, 0xea, 0x1a, 0x2c, 0x19, 0x71, 0x50, + 0x0d, 0x72, 0xed, 0x75, 0x41, 0xd2, 0x10, 0x24, 0x0b, 0x1a, 0xf2, 0xb5, 0xdb, 0xcb, 0xde, 0x37, + 0xb3, 0x38, 0x33, 0xab, 0xcf, 0x70, 0x05, 0xce, 0xbc, 0xb8, 0x2b, 0xfe, 0x6a, 0x4d, 0x33, 0xed, + 0x70, 0x92, 0xb5, 0x07, 0x69, 0xbb, 0x78, 0xe5, 0xe6, 0xc9, 0x8b, 0x6b, 0x92, 0x8f, 0x07, 0x12, + 0x6d, 0x3f, 0xd0, 0x4f, 0x1b, 0xcc, 0xb4, 0xaf, 0xc8, 0x9a, 0x00, 0x8f, 0x67, 0x4b, 0x25, 0xbc, + 0xa3, 0x97, 0x9c, 0xd5, 0x5a, 0xb8, 0xb2, 0xe4, 0xa5, 0xcc, 0xff, 0x16, 0x73, 0xb9, 0xb2, 0xee, + 0x55, 0x8c, 0xb4, 0x15, 0x82, 0xc8, 0x6b, 0xd6, 0xb6, 0x3f, 0xe0, 0x8d, 0xe1, 0x8c, 0x26, 0xc0, + 0xc7, 0xba, 0x03, 0x1e, 0x6f, 0x04, 0x5c, 0x2d, 0xef, 0x05, 0x87, 0x54, 0xb8, 0x68, 0x44, 0x4c, + 0x76, 0x5a, 0xc7, 0x64, 0x64, 0x0b, 0xd4, 0xe2, 0x16, 0xa7, 0x79, 0x09, 0xa8, 0xf6, 0xcc, 0x43, + 0x3c, 0x36, 0x40, 0xb1, 0x36, 0x0b, 0x31, 0x19, 0x53, 0x38, 0x91, 0x6a, 0x5a, 0x55, 0x76, 0xe4, + 0x79, 0xa2, 0x70, 0xab, 0x5c, 0x47, 0x7e, 0x50, 0x8f, 0xd8, 0x4d, 0x89, 0xd5, 0xda, 0x6a, 0x10, + 0xbf, 0xf9, 0x70, 0x35, 0x90, 0xc7, 0x4e, 0x17, 0xe1, 0x36, 0x0f, 0xe3, 0x36, 0xb6, 0xdd, 0x58, + 0x84, 0xd0, 0x16, 0x0d, 0xe3, 0x4a, 0x0c, 0x63, 0x09, 0x32, 0x96, 0x60, 0x75, 0x11, 0xae, 0xf3, + 0x30, 0x26, 0xc4, 0xc1, 0x4b, 0x84, 0xf1, 0xd7, 0x68, 0x0e, 0x29, 0x70, 0x7b, 0x08, 0xbf, 0xc6, + 0xf5, 0x22, 0xfa, 0x48, 0x7e, 0x8a, 0xd3, 0x14, 0xb3, 0xb0, 0x2c, 0x2d, 0xbb, 0xc2, 0xc1, 0xa6, + 0xa7, 0xf6, 0xce, 0x4f, 0x22, 0xec, 0x37, 0x3c, 0xb5, 0x1f, 0xaf, 0x75, 0x08, 0xd3, 0xb5, 0x07, + 0xba, 0xd9, 0x0e, 0x26, 0x48, 0x6b, 0x01, 0xd3, 0xea, 0xc9, 0xf3, 0x47, 0x7b, 0xf2, 0xe8, 0xee, + 0x7a, 0x9a, 0x73, 0xd2, 0xb1, 0xa9, 0x47, 0xa9, 0x1a, 0x39, 0x00, 0xd2, 0xa0, 0x8a, 0xbf, 0xe2, + 0x4b, 0x92, 0xcd, 0x56, 0xad, 0x84, 0x33, 0x31, 0x9b, 0xe2, 0x75, 0x91, 0x75, 0xce, 0xa3, 0xaf, + 0x30, 0xa5, 0xc2, 0x51, 0x78, 0x74, 0x2f, 0xd3, 0xaa, 0x22, 0x9c, 0x83, 0x99, 0x34, 0x96, 0x9f, + 0x06, 0x04, 0xad, 0x42, 0x6c, 0x37, 0x45, 0x11, 0xae, 0x39, 0xcd, 0x9c, 0xf3, 0x74, 0x45, 0x18, + 0xf7, 0x59, 0x8f, 0x47, 0xc7, 0xb8, 0xd6, 0x3c, 0xc6, 0x8d, 0xbc, 0x00, 0x36, 0x61, 0x47, 0x9b, + 0xb6, 0xd1, 0x7a, 0xa1, 0x99, 0x2c, 0x7f, 0x0e, 0x8a, 0x23, 0x1e, 0xf2, 0xde, 0xcf, 0xe5, 0xb3, + 0xe6, 0xcc, 0x05, 0x47, 0x01, 0x3e, 0x5d, 0xc3, 0xf8, 0x74, 0x76, 0x1e, 0x9f, 0xd2, 0xde, 0xb8, + 0x1f, 0xe2, 0xbb, 0x17, 0x9e, 0x2d, 0x9f, 0x8e, 0x57, 0x57, 0x08, 0xbc, 0x8a, 0xbd, 0x8f, 0x07, + 0xc3, 0xe1, 0x0b, 0x1b, 0xf2, 0xd8, 0x15, 0xcb, 0xfc, 0xe4, 0xa3, 0xb9, 0x8d, 0x85, 0x98, 0x15, + 0xb9, 0xe3, 0x88, 0xbd, 0x45, 0x31, 0xd8, 0x8b, 0x3c, 0x0b, 0x11, 0x83, 0x3e, 0x2c, 0x6a, 0x60, + 0x0d, 0xdd, 0x5c, 0x3b, 0x3e, 0x61, 0xfd, 0x38, 0x1e, 0x91, 0x62, 0x94, 0x86, 0xea, 0x04, 0x9e, + 0xfc, 0xac, 0x8c, 0x7d, 0x80, 0x81, 0xdc, 0x2f, 0xbc, 0xb0, 0x2a, 0xa1, 0xc1, 0xf9, 0x8d, 0xd2, + 0x9e, 0xe1, 0x4c, 0x68, 0x74, 0x35, 0xc5, 0x65, 0x23, 0x3c, 0x02, 0x14, 0x29, 0xe0, 0xa5, 0xc4, + 0xea, 0x14, 0xc8, 0xf1, 0xec, 0x08, 0x7d, 0x72, 0x62, 0xda, 0x08, 0xfd, 0xc8, 0xfd, 0xbf, 0x31, + 0x42, 0x9f, 0xc8, 0xf9, 0x11, 0x92, 0x3e, 0xb8, 0x72, 0x84, 0x70, 0x04, 0x1a, 0x83, 0xe1, 0x26, + 0x1c, 0x81, 0x69, 0xe3, 0xf3, 0xdf, 0xbe, 0x6c, 0x7c, 0xce, 0xbf, 0x39, 0x37, 0xf6, 0xe7, 0x8e, + 0xcf, 0xf9, 0x27, 0x05, 0xe7, 0x24, 0x2d, 0xd5, 0xad, 0xa3, 0x5d, 0x5e, 0x23, 0xfb, 0x1a, 0xa1, + 0x77, 0x93, 0x5e, 0x23, 0x59, 0x80, 0xb1, 0xcf, 0xbc, 0x22, 0xa1, 0xc7, 0x73, 0x7e, 0x1b, 0x47, + 0xcd, 0x04, 0x29, 0xa0, 0x98, 0x08, 0x82, 0x17, 0xfd, 0x3a, 0xfe, 0x60, 0xb4, 0x29, 0x3b, 0x3e, + 0xe7, 0xf7, 0x67, 0x7b, 0xcc, 0x67, 0x5c, 0x4d, 0x05, 0xbc, 0x96, 0xf1, 0xca, 0xd5, 0x7d, 0x7e, + 0xfd, 0x35, 0x4a, 0x6f, 0x61, 0x7c, 0xf1, 0x37, 0xd3, 0x67, 0xeb, 0xd3, 0x2e, 0x1a, 0x29, 0x2e, + 0x0d, 0xe0, 0x65, 0x9a, 0x4b, 0xee, 0x03, 0x72, 0xad, 0x8c, 0x21, 0xf5, 0x6f, 0x3f, 0x77, 0x8b, + 0x9d, 0x58, 0x78, 0xb2, 0xa0, 0x07, 0xb5, 0x64, 0xe3, 0x5e, 0x46, 0x3e, 0x0f, 0xd6, 0x96, 0x93, + 0x9f, 0x83, 0x75, 0x58, 0x6a, 0x62, 0x64, 0xaf, 0x2f, 0x5e, 0x67, 0x88, 0xbf, 0xba, 0xe0, 0x6c, + 0x27, 0x1c, 0x7d, 0x25, 0x98, 0x44, 0xfc, 0x17, 0xdf, 0xfa, 0x0a, 0xf2, 0x94, 0xc6, 0x78, 0x2f, + 0xb6, 0xce, 0xca, 0x27, 0x6b, 0x72, 0x6c, 0xf2, 0x8f, 0xbb, 0x92, 0x9b, 0xdf, 0x8d, 0xd6, 0x35, + 0xc5, 0x5f, 0x71, 0x59, 0x9f, 0x58, 0xcb, 0x2d, 0x5b, 0xcf, 0x67, 0xb4, 0x16, 0x4f, 0x54, 0x68, + 0x62, 0x25, 0x37, 0x7b, 0x16, 0xfe, 0xfd, 0xab, 0xd8, 0x8f, 0xd9, 0x5e, 0x03, 0xa7, 0xcc, 0xd2, + 0xf5, 0x9a, 0x3c, 0x98, 0xd3, 0x1a, 0xff, 0x6f, 0xb5, 0xbc, 0x0b, 0xa6, 0xa7, 0x95, 0xeb, 0x18, + 0xb8, 0x34, 0xe7, 0x4b, 0xd2, 0x4e, 0xde, 0x3c, 0xc8, 0x8b, 0x2d, 0x47, 0x2f, 0x25, 0xcb, 0xc9, + 0xb9, 0xec, 0xe1, 0x9c, 0xb8, 0xf6, 0x52, 0x8e, 0xbe, 0x62, 0xc4, 0xb5, 0x5d, 0x9a, 0x58, 0x97, + 0x4e, 0xed, 0xdc, 0xa6, 0xfb, 0x09, 0xaf, 0x74, 0x74, 0x21, 0x45, 0x6a, 0xc5, 0x3b, 0x05, 0xef, + 0x2a, 0xd5, 0x46, 0x1d, 0x1a, 0x83, 0xd3, 0x28, 0x71, 0xb5, 0xa0, 0xc4, 0x2e, 0x48, 0x3b, 0x94, + 0x50, 0xbe, 0x34, 0x5c, 0x77, 0xb4, 0x7f, 0x04, 0xbe, 0x86, 0x9f, 0xed, 0xee, 0x95, 0x6b, 0xc0, + 0x1e, 0xd5, 0x3d, 0x05, 0x0a, 0x3f, 0xcd, 0x3b, 0xc8, 0x2f, 0x6a, 0xb4, 0x32, 0xab, 0xb1, 0x1c, + 0x64, 0x0f, 0xbb, 0x59, 0x3f, 0xf2, 0x64, 0x23, 0x90, 0xf7, 0x09, 0x9f, 0x7d, 0xc2, 0xd5, 0xa3, + 0xf2, 0x69, 0xfd, 0x12, 0x9d, 0xa2, 0x0d, 0xb9, 0xc8, 0xe3, 0x48, 0x61, 0xde, 0x15, 0x89, 0xb5, + 0x69, 0x90, 0x57, 0x29, 0x1e, 0x70, 0x21, 0xa4, 0x47, 0x47, 0xb7, 0x51, 0xd4, 0x3d, 0x4b, 0x37, + 0x72, 0x42, 0xf7, 0xa4, 0x8d, 0x88, 0x0f, 0x1d, 0x6a, 0xd9, 0x28, 0xf5, 0x0e, 0x24, 0x17, 0xa7, + 0x76, 0x62, 0xae, 0x39, 0x14, 0x43, 0x58, 0xf7, 0x46, 0x5e, 0xe2, 0x47, 0xa9, 0x62, 0x05, 0xd4, + 0x48, 0xa6, 0x22, 0x7e, 0x96, 0x29, 0xf7, 0xa2, 0x3d, 0xf1, 0x35, 0x19, 0x69, 0x24, 0x12, 0x80, + 0xe8, 0x2b, 0xdd, 0x46, 0x73, 0x58, 0x02, 0xd5, 0x8c, 0xef, 0x4d, 0xa9, 0x46, 0xc0, 0xfb, 0x3b, + 0xc3, 0x6c, 0xa3, 0xe6, 0x11, 0xfe, 0x95, 0xb3, 0x52, 0x08, 0x7e, 0xbb, 0x37, 0xd2, 0x50, 0x17, + 0x61, 0xbe, 0x9c, 0xe3, 0x0c, 0x9c, 0x9b, 0x64, 0x9f, 0x53, 0x0d, 0x69, 0x5b, 0x3e, 0xed, 0xb3, + 0xbd, 0x9c, 0xf6, 0x02, 0x47, 0x10, 0xd9, 0x6a, 0x89, 0x90, 0xdc, 0x43, 0xe3, 0xee, 0xa6, 0x71, + 0x27, 0xfb, 0x2f, 0x05, 0xef, 0x2a, 0xaf, 0x2a, 0x9d, 0xb0, 0xc5, 0xfd, 0xa4, 0x83, 0x56, 0x27, + 0xc7, 0x5f, 0x5d, 0x38, 0x79, 0xee, 0x19, 0x35, 0x88, 0x3d, 0xb6, 0xce, 0x80, 0xb4, 0x1b, 0x39, + 0x00, 0x0b, 0x7b, 0x4a, 0x24, 0x6f, 0x18, 0xfc, 0x9b, 0x2a, 0x93, 0x43, 0x53, 0xda, 0x5d, 0x21, + 0xe1, 0x71, 0x8f, 0x4e, 0x7a, 0x85, 0x47, 0x4e, 0xf7, 0xdd, 0x6d, 0x6b, 0x07, 0x95, 0xed, 0x6b, + 0xd3, 0x46, 0xd6, 0x2a, 0xdd, 0x95, 0x88, 0x22, 0x27, 0x85, 0x39, 0xf8, 0xd4, 0x81, 0xda, 0x46, + 0x36, 0x44, 0xb6, 0x80, 0x1b, 0x16, 0x59, 0x22, 0x9a, 0x46, 0x51, 0x86, 0xa9, 0x65, 0x3a, 0xa7, + 0x0d, 0x52, 0x19, 0xce, 0x43, 0xa7, 0x25, 0xcc, 0x6f, 0xcc, 0x34, 0x82, 0x59, 0x2a, 0x04, 0xe4, + 0x07, 0xeb, 0x1e, 0x4b, 0x08, 0xdf, 0xd8, 0x68, 0xc4, 0x45, 0x7a, 0xca, 0x82, 0xab, 0xe5, 0x38, + 0xf6, 0xb4, 0x12, 0xd7, 0xd5, 0x91, 0x15, 0xb3, 0xfe, 0xbd, 0x4b, 0x8e, 0xc0, 0x4d, 0xc3, 0x91, + 0xe5, 0xf3, 0xf7, 0xac, 0x39, 0xf5, 0xd0, 0x70, 0x18, 0xcb, 0x2e, 0x17, 0x2b, 0x96, 0x23, 0xbe, + 0x67, 0x46, 0x37, 0x62, 0xbe, 0xed, 0x54, 0x52, 0x7c, 0x1c, 0x73, 0x3f, 0x47, 0xed, 0xa0, 0x2f, + 0xd6, 0x85, 0x30, 0xad, 0x33, 0x3e, 0x3e, 0x38, 0x7f, 0x7c, 0xf5, 0xa9, 0x0d, 0xeb, 0xc8, 0x5a, + 0x7f, 0x88, 0xed, 0x03, 0x8c, 0xb7, 0x47, 0x60, 0x48, 0x8d, 0xec, 0xe8, 0x86, 0xfb, 0xd3, 0xc1, + 0xbf, 0xfb, 0xad, 0x2a, 0xbb, 0xe3, 0x54, 0x26, 0x8e, 0x5d, 0x91, 0x28, 0x51, 0x09, 0xed, 0x68, + 0x60, 0xff, 0xd9, 0x0a, 0xf7, 0xd7, 0x88, 0x14, 0x72, 0x48, 0x35, 0xe0, 0xb8, 0x28, 0x35, 0x98, + 0xc6, 0x65, 0xbc, 0x71, 0x5b, 0x04, 0x14, 0x2c, 0xe7, 0xfe, 0x3b, 0x85, 0x8f, 0x0d, 0x5f, 0xe1, + 0x78, 0x5c, 0x2c, 0xa7, 0xf1, 0x58, 0x21, 0xa9, 0x30, 0xe5, 0x9e, 0x96, 0x4e, 0x96, 0x95, 0xb6, + 0x95, 0x94, 0x9e, 0x11, 0x71, 0x15, 0xc8, 0x5e, 0x95, 0xfc, 0x8b, 0x90, 0x5f, 0x51, 0x37, 0x79, + 0x96, 0x40, 0x3e, 0xc0, 0x8b, 0xf3, 0xc3, 0x1e, 0x6a, 0xf7, 0x76, 0x6e, 0xf2, 0x10, 0xcc, 0x5a, + 0x74, 0xed, 0xb9, 0x35, 0x4e, 0xe4, 0x96, 0x59, 0x0a, 0xa5, 0x53, 0xaa, 0xf3, 0xf6, 0x79, 0x32, + 0x7b, 0xf9, 0x48, 0x84, 0x7b, 0x69, 0xa5, 0x96, 0x47, 0x42, 0xaa, 0xa1, 0x2d, 0x24, 0xf4, 0x8a, + 0xd3, 0x86, 0x5f, 0xed, 0x4f, 0x9d, 0xab, 0x75, 0xc3, 0xd2, 0x8e, 0x28, 0x8e, 0x47, 0xaa, 0x2d, + 0xb2, 0xfb, 0x24, 0xb4, 0xa9, 0x3e, 0xb2, 0x6d, 0x29, 0x9f, 0x0b, 0x4a, 0x7c, 0xdd, 0xe1, 0x5e, + 0x30, 0x08, 0xef, 0xcf, 0x3e, 0xd2, 0x0a, 0x0b, 0x60, 0xef, 0x51, 0xaa, 0xce, 0x73, 0x84, 0xa5, + 0x73, 0xe1, 0xa6, 0xf8, 0x9a, 0x83, 0x21, 0xc2, 0x01, 0x26, 0x09, 0xd7, 0x41, 0xa1, 0xd4, 0x9a, + 0xe5, 0x3d, 0x3d, 0xd3, 0x78, 0xcf, 0xe9, 0x9c, 0x12, 0xb5, 0xb1, 0x8e, 0x79, 0x4f, 0xf9, 0x40, + 0x0f, 0xd4, 0xdb, 0x9b, 0x7d, 0x06, 0xe6, 0x2f, 0xc9, 0xa2, 0xc0, 0x16, 0xdf, 0x67, 0x6f, 0x46, + 0x8e, 0xcb, 0xaa, 0x18, 0xf9, 0x79, 0x6f, 0x62, 0x9e, 0x7c, 0xa8, 0x37, 0x8e, 0x73, 0x5e, 0x92, + 0x8e, 0x60, 0x1b, 0x6b, 0xd9, 0x8b, 0xac, 0xa0, 0x39, 0x6d, 0x59, 0x2a, 0xa3, 0x84, 0xe2, 0x19, + 0x85, 0xd7, 0xb0, 0x8d, 0x30, 0xe7, 0x30, 0xf2, 0xe7, 0xad, 0x77, 0x87, 0x88, 0x43, 0x67, 0x3e, + 0x7a, 0x26, 0x9f, 0x54, 0x2d, 0x21, 0xba, 0x21, 0xf8, 0xa0, 0x54, 0x2b, 0x4a, 0x81, 0x75, 0xed, + 0xb1, 0x23, 0x11, 0x2e, 0xbd, 0x64, 0xfa, 0x97, 0xed, 0x21, 0xb5, 0x64, 0x5a, 0x1b, 0x5e, 0x27, + 0x7e, 0x95, 0x34, 0x71, 0x58, 0x26, 0x25, 0x5e, 0x35, 0x22, 0xf8, 0x55, 0x3e, 0xa5, 0x3c, 0xa6, + 0xf3, 0xaa, 0x43, 0xd3, 0xfd, 0x42, 0xba, 0xc8, 0x1b, 0x0c, 0xca, 0x36, 0xc1, 0x2a, 0xa4, 0xbf, + 0x46, 0x9e, 0xa5, 0xf7, 0x0b, 0x66, 0xec, 0xb0, 0xc3, 0x05, 0xfe, 0x84, 0x07, 0x6b, 0xf7, 0xd0, + 0x0c, 0x21, 0x3c, 0x2e, 0x0d, 0x86, 0x90, 0x6f, 0x6a, 0x6d, 0x4f, 0x46, 0xa2, 0x38, 0x5b, 0x51, + 0xa5, 0xf5, 0x97, 0xfb, 0x53, 0x17, 0xeb, 0xdc, 0xd0, 0xf6, 0xda, 0xab, 0xc8, 0x3f, 0xa7, 0xb0, + 0xb5, 0x51, 0xd5, 0xaf, 0xb7, 0x54, 0xc1, 0x96, 0x22, 0x9d, 0x10, 0xbe, 0x71, 0x46, 0xc2, 0x7e, + 0x68, 0x0c, 0xaf, 0xbc, 0xee, 0xc4, 0x7f, 0x1d, 0x0f, 0x07, 0x7b, 0x98, 0xe3, 0x1a, 0xaf, 0x70, + 0xe1, 0xfc, 0x3d, 0xd0, 0x1e, 0x8b, 0x18, 0xfc, 0x88, 0x6b, 0x14, 0xb8, 0x03, 0xf1, 0x4b, 0xfc, + 0xd5, 0xa0, 0x21, 0xbe, 0x2f, 0x98, 0xac, 0x63, 0x0f, 0x5d, 0xf3, 0xa5, 0x48, 0x5a, 0x89, 0x3d, + 0xba, 0x8f, 0xf9, 0xad, 0xe4, 0xa3, 0xbf, 0x65, 0x6e, 0x8b, 0xe8, 0x42, 0x09, 0xd1, 0xa1, 0x33, + 0xfb, 0x74, 0x6e, 0xab, 0xd4, 0xdb, 0x82, 0x63, 0x9e, 0x40, 0xbe, 0xb5, 0x39, 0xa7, 0x59, 0x9b, + 0x52, 0x3c, 0xf2, 0x41, 0xa4, 0xa5, 0xb6, 0x94, 0xe2, 0x2d, 0xca, 0x52, 0xae, 0x33, 0xf7, 0xf3, + 0xee, 0xa6, 0x95, 0xcb, 0xa0, 0x67, 0x3f, 0xed, 0x6a, 0x26, 0x42, 0x7d, 0x72, 0x5b, 0x34, 0xbb, + 0x3f, 0x72, 0x86, 0xac, 0x34, 0x73, 0xd4, 0x96, 0x63, 0xee, 0x11, 0x8c, 0x5c, 0x73, 0x6f, 0x83, + 0xfc, 0x66, 0xfe, 0xd5, 0x23, 0xe4, 0xb5, 0x92, 0x39, 0xf5, 0x62, 0x3e, 0xe9, 0xc7, 0x92, 0x49, + 0x03, 0xe8, 0xaf, 0xba, 0x48, 0x7f, 0x86, 0xe9, 0xdb, 0x46, 0x3d, 0xba, 0xc1, 0x81, 0x82, 0x12, + 0x57, 0xf1, 0xb8, 0x56, 0x52, 0x2f, 0x99, 0xee, 0xe6, 0xbe, 0x4d, 0x8e, 0xfd, 0xf1, 0x25, 0xa6, + 0xb9, 0x9d, 0x08, 0xb1, 0x7a, 0x4b, 0x72, 0x7e, 0x4e, 0x64, 0xaa, 0xab, 0x40, 0x8b, 0x45, 0xce, + 0xd5, 0xb1, 0x76, 0x5a, 0x5e, 0xd3, 0xb4, 0xbc, 0x54, 0xb2, 0x35, 0x97, 0xd7, 0x21, 0xf6, 0x4c, + 0x04, 0xb5, 0xe4, 0x7d, 0xcd, 0x4a, 0xa5, 0x0a, 0x6c, 0xc4, 0x79, 0x79, 0xc9, 0x9b, 0x2e, 0x24, + 0xc7, 0x4e, 0x6d, 0x8b, 0x3c, 0x4f, 0x56, 0x12, 0x49, 0x45, 0x78, 0xeb, 0xa5, 0xf5, 0x2c, 0x93, + 0x74, 0x47, 0xbb, 0x3d, 0x25, 0xcc, 0xe5, 0x99, 0xe4, 0xae, 0x8f, 0x35, 0xe4, 0xf1, 0x84, 0x1d, + 0xc0, 0x39, 0xde, 0xb7, 0x9b, 0x04, 0xeb, 0x4d, 0x3d, 0xf0, 0x00, 0x94, 0x78, 0x7b, 0x20, 0x04, + 0x64, 0x45, 0x99, 0xdf, 0x3b, 0x2b, 0xdc, 0x63, 0xb5, 0x66, 0xf7, 0xce, 0x90, 0x3f, 0x0b, 0x6d, + 0x17, 0xfa, 0x7f, 0x55, 0x10, 0xcc, 0x5b, 0x38, 0x60, 0xed, 0x14, 0x2d, 0xad, 0x52, 0xee, 0x9a, + 0xd2, 0x74, 0x8f, 0x42, 0x9d, 0x98, 0xa6, 0xd0, 0x5e, 0x6a, 0xce, 0xa3, 0x71, 0x61, 0xeb, 0x4b, + 0xd3, 0xf7, 0x67, 0xdb, 0x7e, 0xf2, 0xa3, 0x2b, 0xdb, 0xad, 0xb7, 0xcd, 0xce, 0x6d, 0x73, 0x62, + 0xdb, 0xa2, 0x2c, 0x95, 0x72, 0xdb, 0xa8, 0x2f, 0x5f, 0xda, 0xbe, 0xe8, 0x17, 0xb4, 0x2f, 0x8a, + 0xff, 0xa5, 0xdc, 0xb2, 0x7b, 0xf0, 0xce, 0x91, 0x6f, 0x19, 0x8d, 0x74, 0x76, 0xf7, 0x95, 0x2c, + 0xdc, 0x84, 0xa5, 0xc0, 0xa5, 0x35, 0xc2, 0x6f, 0x70, 0x21, 0xfd, 0x77, 0x91, 0x87, 0x7d, 0x8a, + 0x5f, 0xec, 0x46, 0xbc, 0x68, 0x21, 0xdf, 0xb8, 0xc4, 0x95, 0xd2, 0xa9, 0x20, 0x71, 0xa3, 0x74, + 0x15, 0xfe, 0x75, 0x09, 0x26, 0x4e, 0x1e, 0xd1, 0x77, 0xc1, 0x40, 0x5a, 0xac, 0x4b, 0xd3, 0x20, + 0x55, 0x53, 0x2f, 0x08, 0x27, 0x94, 0xc3, 0x47, 0x96, 0xc3, 0x70, 0xdc, 0x10, 0x5f, 0x47, 0x7e, + 0xa7, 0x6c, 0xd2, 0x47, 0xa6, 0x09, 0xe9, 0x38, 0x54, 0x40, 0xfc, 0x01, 0x84, 0xa1, 0x9e, 0x02, + 0xb8, 0x28, 0x15, 0x5c, 0xa2, 0xb0, 0xb4, 0xad, 0x8b, 0xb1, 0x06, 0x0d, 0xd6, 0xd9, 0xbe, 0xe1, + 0xd1, 0xdf, 0x22, 0xb6, 0x20, 0x49, 0x68, 0xc3, 0xa3, 0x7b, 0x11, 0x67, 0x10, 0x74, 0xc9, 0x0b, + 0x27, 0x4f, 0x96, 0x30, 0x05, 0x2d, 0xcf, 0xd6, 0x08, 0x9b, 0xaf, 0x28, 0xaf, 0x44, 0x94, 0x77, + 0xd2, 0x26, 0x6c, 0x0a, 0xa6, 0xb5, 0x5b, 0xe8, 0xff, 0x23, 0x64, 0xe6, 0x6b, 0x50, 0xa2, 0x42, + 0xf7, 0x4f, 0xbc, 0xa5, 0xdc, 0xde, 0x22, 0x3f, 0xf5, 0x79, 0x99, 0xa6, 0x89, 0x37, 0x5c, 0xbb, + 0x78, 0x67, 0x16, 0x3a, 0x55, 0x94, 0xee, 0xa7, 0x96, 0x3d, 0xf4, 0xd8, 0x5e, 0xef, 0x4c, 0x2a, + 0x25, 0x57, 0x76, 0xb9, 0x9a, 0xd4, 0xc7, 0x8d, 0xe5, 0xf5, 0xbc, 0xb4, 0x4e, 0x77, 0x7a, 0x1b, + 0xc6, 0xce, 0x76, 0xf1, 0x6a, 0x72, 0x5c, 0xd1, 0x72, 0xab, 0xae, 0xc3, 0xdf, 0x46, 0x23, 0xb1, + 0x4a, 0x62, 0xaa, 0x76, 0x56, 0x50, 0xb5, 0xe4, 0xdd, 0xda, 0xe2, 0x6c, 0x7c, 0x58, 0x57, 0x1f, + 0x58, 0x3c, 0xbd, 0xd0, 0x11, 0xa8, 0x82, 0x45, 0x28, 0xaf, 0x76, 0xd2, 0x88, 0x53, 0xbf, 0xef, + 0x08, 0x81, 0xea, 0x77, 0x81, 0x0d, 0x71, 0xd6, 0x12, 0xe2, 0xc9, 0x88, 0x36, 0x10, 0x9f, 0x46, + 0x7e, 0xfd, 0x4d, 0x6f, 0xb0, 0xcd, 0x9e, 0x4b, 0x60, 0x51, 0xd3, 0x2e, 0x17, 0xc2, 0xe7, 0xce, + 0x0d, 0x38, 0x7a, 0xdb, 0xfc, 0x55, 0xe0, 0x42, 0x6a, 0xa2, 0x6e, 0xc6, 0x56, 0x6c, 0xee, 0x81, + 0x5e, 0x5f, 0x15, 0xb8, 0x11, 0x47, 0x2e, 0x19, 0xe9, 0x62, 0x7f, 0x01, 0xfd, 0xb4, 0x9f, 0x47, + 0xfc, 0x67, 0x24, 0x52, 0x23, 0xc5, 0x5f, 0xf1, 0x87, 0x54, 0xf2, 0x1b, 0x62, 0xd8, 0x1e, 0xef, + 0x53, 0x48, 0x4a, 0x0d, 0x5f, 0x18, 0x86, 0x9f, 0xbd, 0x32, 0x50, 0x4a, 0x92, 0xcc, 0x68, 0xbc, + 0xcf, 0x82, 0x69, 0x66, 0x4e, 0x7b, 0xad, 0xdf, 0xe2, 0x68, 0x6b, 0x63, 0x5f, 0x2a, 0xa9, 0x37, + 0x97, 0x6b, 0x58, 0xea, 0x3d, 0xa3, 0x11, 0xac, 0x79, 0x0b, 0xf3, 0x26, 0xe4, 0x0b, 0x91, 0xbd, + 0x32, 0xa3, 0x9c, 0xe2, 0xc0, 0xf1, 0x20, 0xaa, 0x66, 0xbb, 0x23, 0x02, 0xf7, 0xdc, 0x9a, 0x00, + 0x07, 0xe6, 0xea, 0xcf, 0xbd, 0x47, 0xa9, 0xe0, 0x2c, 0x4a, 0x2d, 0xa6, 0xce, 0x9f, 0x9d, 0x22, + 0xce, 0xb1, 0x68, 0x0f, 0xc2, 0x3f, 0x79, 0x1d, 0x2b, 0x2b, 0x6c, 0x33, 0xfe, 0x2f, 0xf5, 0xcd, + 0x85, 0x72, 0x6e, 0x37, 0xb6, 0x19, 0xff, 0x53, 0xd4, 0x7e, 0xc7, 0x32, 0x28, 0x89, 0x44, 0xea, + 0xa4, 0xf8, 0xab, 0xd7, 0x6c, 0xf7, 0xab, 0xd7, 0x6c, 0x77, 0x69, 0xbe, 0xdd, 0xc8, 0x8f, 0x1b, + 0x02, 0x45, 0xaa, 0xcc, 0xed, 0xef, 0xa4, 0xf6, 0xcf, 0x38, 0xc8, 0xed, 0xaf, 0xd4, 0xdb, 0x27, + 0x61, 0xfb, 0x15, 0xa4, 0xca, 0xab, 0xf8, 0x9c, 0x7b, 0xec, 0x73, 0xf6, 0x7e, 0x8a, 0xfd, 0xe8, + 0xc4, 0x7e, 0x28, 0x98, 0xfb, 0xc7, 0xb9, 0x7c, 0xd8, 0x8f, 0x8f, 0x3b, 0x98, 0xdf, 0x64, 0x39, + 0x70, 0x06, 0x79, 0x5d, 0x54, 0xaa, 0x5d, 0x50, 0x99, 0x8b, 0x99, 0xbc, 0x38, 0x17, 0x09, 0x12, + 0x60, 0x29, 0xc7, 0xbf, 0x04, 0xb8, 0x8f, 0xe3, 0x5f, 0x62, 0x53, 0x38, 0xfe, 0x25, 0x4e, 0x9d, + 0xb6, 0x9c, 0xaf, 0x23, 0x05, 0xb1, 0x51, 0x01, 0x36, 0x68, 0xeb, 0xf4, 0xb8, 0x97, 0x00, 0x19, + 0x6d, 0x63, 0x15, 0xc2, 0x03, 0x47, 0xbd, 0x04, 0xf8, 0xbe, 0x88, 0x7a, 0x89, 0x98, 0xc2, 0xc2, + 0xf1, 0x6f, 0x61, 0x46, 0x69, 0xbc, 0x07, 0xaa, 0xf1, 0xdf, 0x83, 0xff, 0x6e, 0xfc, 0x77, 0x91, + 0xae, 0x27, 0xfb, 0x1d, 0x7f, 0x97, 0x23, 0x3d, 0x7e, 0xaa, 0x3d, 0x7b, 0x23, 0xe2, 0x24, 0xed, + 0xb9, 0xc8, 0x4f, 0xb4, 0x6d, 0xf8, 0xff, 0x22, 0xfe, 0x6f, 0xc7, 0xff, 0x97, 0x0a, 0xb0, 0x53, + 0xf9, 0x55, 0x91, 0x1d, 0x9f, 0xcd, 0x62, 0x27, 0xe7, 0x3c, 0x6d, 0xdb, 0x1d, 0x0d, 0xd0, 0xeb, + 0x9f, 0xa7, 0xed, 0x40, 0x38, 0xcc, 0x28, 0xf3, 0xb4, 0x17, 0x11, 0x2e, 0xfb, 0x3d, 0x7d, 0xda, + 0x4b, 0x77, 0x24, 0x61, 0xd0, 0x83, 0x58, 0xdd, 0x8d, 0x63, 0xe6, 0xc0, 0x59, 0xac, 0x45, 0xc8, + 0x8b, 0xef, 0x55, 0x1a, 0x11, 0x66, 0x0d, 0xf1, 0xdd, 0xf6, 0x98, 0x0f, 0xf9, 0x8e, 0xf0, 0xd9, + 0x72, 0x18, 0x39, 0x09, 0x65, 0x76, 0xd3, 0x01, 0x8a, 0x49, 0xac, 0x22, 0x8c, 0xbb, 0xe3, 0x7b, + 0x94, 0xc6, 0x20, 0xd2, 0x9a, 0xf8, 0x3e, 0xcc, 0x61, 0x0c, 0x9f, 0xed, 0xa2, 0x1c, 0xe5, 0xb1, + 0xb3, 0x2e, 0xa8, 0x4a, 0x68, 0x5d, 0x3e, 0xec, 0xcb, 0xa3, 0x7b, 0xe3, 0xaf, 0x84, 0xcf, 0xd6, + 0x4a, 0x58, 0xfb, 0xf6, 0xda, 0xa2, 0xf8, 0xde, 0x86, 0xb3, 0x71, 0xa8, 0x5a, 0xa0, 0x65, 0xf0, + 0x5d, 0xf5, 0xa3, 0x7b, 0xe2, 0xe3, 0xe1, 0xb3, 0x26, 0x29, 0x98, 0x24, 0x29, 0xba, 0x2a, 0xae, + 0xad, 0xf4, 0xf4, 0xb0, 0xd6, 0xb8, 0x25, 0x3e, 0x7e, 0xe0, 0xa1, 0xd1, 0xd5, 0x4b, 0x8d, 0x23, + 0x0f, 0x51, 0x6c, 0x4f, 0x7f, 0x3f, 0x58, 0x63, 0x67, 0x9f, 0x83, 0x9f, 0xbf, 0xbe, 0xd4, 0xf8, + 0xd8, 0x7e, 0xfc, 0xba, 0x2b, 0xf1, 0x13, 0x4d, 0xed, 0x25, 0x7f, 0xc9, 0x2a, 0xde, 0x75, 0xf5, + 0xda, 0xf0, 0xae, 0x4b, 0x35, 0x2b, 0x4d, 0x72, 0xd7, 0x7b, 0x48, 0x01, 0xaa, 0x6d, 0x89, 0x07, + 0x53, 0xe7, 0x38, 0xe2, 0x43, 0x70, 0x58, 0x56, 0x28, 0xee, 0x43, 0x2f, 0x69, 0xcb, 0x8a, 0x3d, + 0x5e, 0x8a, 0xf2, 0x9c, 0xae, 0xb8, 0x95, 0xec, 0x11, 0xa6, 0xc5, 0x25, 0xc4, 0x94, 0x68, 0x1a, + 0x8a, 0x1f, 0xe1, 0xb1, 0xfe, 0x4c, 0x3b, 0xc0, 0x63, 0x7d, 0x88, 0x4a, 0x69, 0x38, 0x01, 0x1d, + 0x58, 0xeb, 0xe1, 0xaa, 0x3e, 0x4d, 0xd5, 0x8e, 0xe1, 0x6f, 0x97, 0xf6, 0x3e, 0xfe, 0x66, 0xb4, + 0x13, 0xf8, 0xbb, 0x52, 0x3b, 0x8d, 0xb3, 0x1a, 0xd5, 0xce, 0x56, 0x75, 0xc9, 0x4b, 0xb5, 0xf3, + 0xd8, 0x8b, 0xa3, 0x7c, 0x7e, 0xe4, 0x11, 0xe7, 0x47, 0x83, 0x86, 0x35, 0xc3, 0x38, 0x5a, 0x17, + 0xaf, 0x41, 0xd9, 0xce, 0x68, 0x07, 0xb2, 0x73, 0xf3, 0xe8, 0x7e, 0x7c, 0x5a, 0xcc, 0xed, 0xfb, + 0x11, 0xb6, 0x83, 0xd7, 0x20, 0x51, 0xa7, 0x3f, 0x2c, 0xc6, 0x19, 0xba, 0x97, 0xf6, 0x93, 0x89, + 0x6a, 0x09, 0x38, 0x31, 0x9c, 0xce, 0xbe, 0xfd, 0xec, 0x38, 0x52, 0x69, 0xc4, 0x52, 0x5e, 0x17, + 0x45, 0x1d, 0xc1, 0xaf, 0x90, 0xff, 0x4a, 0x8e, 0xbd, 0xbf, 0x22, 0x8b, 0x17, 0x08, 0x1e, 0x16, + 0x9e, 0x02, 0x17, 0x69, 0x3a, 0x2e, 0x79, 0x52, 0x2d, 0xe3, 0xef, 0xac, 0x62, 0xed, 0x92, 0x7e, + 0xa1, 0xa3, 0x2d, 0x4b, 0xcf, 0x52, 0xef, 0xab, 0x60, 0xd8, 0x82, 0xeb, 0xd8, 0x92, 0x02, 0x43, + 0x10, 0xf1, 0x0e, 0xaf, 0x5f, 0xc4, 0x60, 0x4b, 0xb6, 0xe2, 0x5a, 0x65, 0xde, 0x63, 0x11, 0xaf, + 0xe4, 0x2a, 0x48, 0x25, 0xc2, 0x7d, 0x00, 0xeb, 0xb7, 0xf7, 0x40, 0x6b, 0xef, 0xfd, 0x5b, 0x43, + 0x3d, 0xab, 0xfc, 0x3d, 0xd0, 0xe6, 0x9d, 0x19, 0x6c, 0x60, 0x5f, 0xda, 0xda, 0xb7, 0xdf, 0x6f, + 0xdd, 0xe4, 0x87, 0xbe, 0xa5, 0xa3, 0x3d, 0xd0, 0xd1, 0x7b, 0x2f, 0xc2, 0x52, 0xf9, 0xa3, 0xfb, + 0x55, 0xd9, 0xd1, 0x36, 0x1a, 0x4f, 0x9b, 0xdb, 0x36, 0x70, 0x5d, 0xe7, 0xd4, 0x16, 0x1e, 0x89, + 0xc6, 0x80, 0xc4, 0xf1, 0x8c, 0x90, 0x97, 0xf7, 0x87, 0x55, 0xb7, 0x8e, 0x03, 0xe6, 0xe4, 0x70, + 0xc0, 0x6b, 0x03, 0x25, 0x89, 0x86, 0x3e, 0x2b, 0xcd, 0x40, 0x39, 0xf1, 0x7e, 0xeb, 0x76, 0x36, + 0xf4, 0xda, 0x10, 0x03, 0xb0, 0x9f, 0x95, 0xd4, 0x84, 0x6a, 0x7c, 0xfc, 0x75, 0x55, 0x0e, 0xd0, + 0xd9, 0xea, 0x22, 0x5a, 0xff, 0x45, 0xcb, 0x79, 0xfd, 0x2b, 0xdc, 0xcb, 0x2a, 0xf2, 0x10, 0xf1, + 0x49, 0x54, 0xac, 0xfd, 0x4f, 0xb3, 0x57, 0x92, 0x34, 0x2b, 0x11, 0x07, 0x2c, 0x42, 0x1c, 0x80, + 0x2b, 0xbd, 0x28, 0x22, 0xce, 0x87, 0x30, 0x67, 0x05, 0xf1, 0x0f, 0xb5, 0x2e, 0xa8, 0x40, 0x99, + 0xa7, 0x2c, 0x80, 0x6b, 0xbf, 0xce, 0x05, 0xe5, 0x5f, 0xbe, 0xea, 0xf0, 0x7f, 0x0c, 0xff, 0x77, + 0xe1, 0xff, 0x1e, 0xfc, 0xdf, 0x57, 0xb0, 0x0a, 0x2d, 0x5f, 0xbc, 0x0a, 0xed, 0x7d, 0xb8, 0x0a, + 0x17, 0x40, 0xaf, 0xd2, 0xa7, 0x6d, 0xbf, 0x23, 0x0e, 0x19, 0x3b, 0xad, 0xc2, 0x30, 0xe2, 0xf2, + 0x79, 0xb8, 0x0a, 0x43, 0x30, 0xd8, 0x16, 0x7d, 0xa2, 0xe1, 0xf0, 0x82, 0xc3, 0xf1, 0xb6, 0xc8, + 0x96, 0xd8, 0xc1, 0xf0, 0xc1, 0x90, 0x1b, 0xf9, 0x52, 0x67, 0x31, 0x79, 0x71, 0x1c, 0x16, 0xa7, + 0xc6, 0x16, 0xa4, 0x27, 0x86, 0x89, 0x2e, 0x30, 0x19, 0x43, 0xda, 0x59, 0x5c, 0x9f, 0x46, 0x95, + 0xb8, 0x93, 0x4a, 0x7b, 0x0f, 0x4b, 0x38, 0xc4, 0x45, 0x77, 0xf1, 0xfb, 0xb2, 0x12, 0x92, 0x77, + 0x56, 0x9b, 0x8a, 0x11, 0x37, 0x1b, 0x0e, 0x74, 0x41, 0x79, 0x5b, 0x38, 0x8b, 0xbf, 0x38, 0x16, + 0xb7, 0x9a, 0xc5, 0x62, 0x41, 0x29, 0xbe, 0xaf, 0xaa, 0x91, 0x63, 0x8e, 0x33, 0x36, 0x0b, 0x44, + 0x71, 0xed, 0x66, 0xb2, 0x38, 0xad, 0x56, 0x8e, 0xef, 0xad, 0x8a, 0x72, 0x54, 0x5f, 0xc6, 0x6d, + 0x83, 0x12, 0x42, 0x73, 0x1e, 0xb7, 0x85, 0xf3, 0xb8, 0x8d, 0xfa, 0x8f, 0xe5, 0xe6, 0xb1, 0x5b, + 0x58, 0x7b, 0x02, 0xc7, 0xe5, 0x29, 0xfc, 0x7f, 0x26, 0xb1, 0x36, 0xdd, 0x88, 0x50, 0xd5, 0xf6, + 0xca, 0x29, 0x58, 0x24, 0x3c, 0x62, 0xfa, 0x1b, 0xde, 0xde, 0xed, 0x97, 0x57, 0x5c, 0xf7, 0xc1, + 0xb2, 0x03, 0x91, 0xe3, 0xe1, 0xcd, 0xbb, 0x8f, 0x3e, 0x44, 0x6d, 0x58, 0x78, 0x0e, 0xf8, 0x84, + 0x2f, 0x3e, 0x3e, 0xfa, 0x48, 0x2f, 0x9d, 0x9d, 0x93, 0x47, 0x1f, 0x94, 0xa4, 0x46, 0x1e, 0x1e, + 0xb4, 0x1d, 0xa0, 0x75, 0x44, 0x54, 0xd4, 0x82, 0x72, 0x55, 0xe2, 0x5f, 0xce, 0x68, 0xea, 0xf6, + 0x47, 0x96, 0x1a, 0x37, 0x3f, 0x4c, 0xa9, 0xbe, 0x2e, 0xb0, 0x22, 0x1e, 0xeb, 0xfa, 0x97, 0xbd, + 0x3f, 0x7b, 0x73, 0xa9, 0xf1, 0xd1, 0xbd, 0xd8, 0x8e, 0x2b, 0x71, 0x04, 0xdd, 0x75, 0x65, 0x79, + 0x52, 0x5d, 0x62, 0x89, 0x08, 0x7c, 0x91, 0xe5, 0x4a, 0xff, 0x03, 0x18, 0x83, 0xf6, 0x6e, 0x2f, + 0x7d, 0x45, 0x8c, 0x91, 0xd0, 0x4e, 0x04, 0x23, 0x55, 0x49, 0xc6, 0x17, 0xa1, 0x2f, 0xc4, 0x17, + 0xf2, 0x7f, 0x00, 0x5f, 0xd8, 0xb2, 0x18, 0xe1, 0x8c, 0x07, 0x61, 0x68, 0xb1, 0x8e, 0x2f, 0x6c, + 0x8c, 0x2f, 0xda, 0xb2, 0xef, 0x3e, 0xd9, 0x31, 0x0d, 0x5b, 0xd8, 0x04, 0xb6, 0x38, 0x16, 0xa7, + 0x31, 0x71, 0x08, 0x3e, 0xbd, 0x7c, 0xe1, 0xe4, 0xbf, 0x0d, 0xab, 0x15, 0xf4, 0xc5, 0x8a, 0xb2, + 0x43, 0xcf, 0x93, 0x8f, 0x3d, 0x9d, 0x42, 0x6e, 0x2d, 0xc0, 0x15, 0xc7, 0xe8, 0x0b, 0xe8, 0x92, + 0x00, 0x2c, 0x96, 0x1e, 0xde, 0x2b, 0xea, 0x4c, 0x20, 0x77, 0x9b, 0x6a, 0x53, 0xad, 0xfa, 0xb3, + 0x9d, 0x9f, 0xaf, 0xa0, 0xc4, 0xff, 0x7e, 0x36, 0xcf, 0x99, 0xab, 0x76, 0xce, 0x79, 0x4f, 0x7a, + 0xce, 0x74, 0x6e, 0xe3, 0xdf, 0xdf, 0xc8, 0xf3, 0xc8, 0x39, 0x8f, 0xeb, 0x01, 0xdd, 0x3b, 0xf2, + 0x90, 0x7e, 0x9a, 0xb0, 0xc3, 0xd5, 0xe6, 0xed, 0x85, 0xc5, 0xe0, 0xcf, 0xfc, 0x97, 0x46, 0x98, + 0xee, 0xf1, 0x56, 0xab, 0xe3, 0x78, 0x27, 0x6d, 0xe4, 0xe9, 0x07, 0x25, 0xea, 0x79, 0x60, 0xcd, + 0x68, 0x39, 0x8f, 0x3c, 0x2f, 0xdd, 0x18, 0x82, 0xeb, 0xa6, 0x7b, 0xff, 0x01, 0x5b, 0xf8, 0x0c, + 0x94, 0x56, 0x91, 0xff, 0xad, 0x9f, 0x40, 0x79, 0xc3, 0x19, 0x5c, 0xf3, 0x0b, 0xa0, 0xb4, 0xe9, + 0x0c, 0xd8, 0x6f, 0x59, 0x08, 0xa6, 0xdb, 0xe9, 0xec, 0xd6, 0xe2, 0x9a, 0xbd, 0x5c, 0x52, 0x8d, + 0x91, 0xc8, 0x4a, 0xf8, 0xe1, 0x6f, 0x68, 0x47, 0xa1, 0xc0, 0x97, 0xf1, 0xcb, 0x89, 0x48, 0xca, + 0x92, 0x81, 0xbc, 0x6f, 0x63, 0xb2, 0x1d, 0x5d, 0xd1, 0xa2, 0x44, 0xf3, 0x5e, 0x80, 0x54, 0x98, + 0x11, 0xf1, 0xcd, 0x83, 0x52, 0x8e, 0x30, 0x6c, 0xe1, 0x08, 0xc3, 0x30, 0xc3, 0xa1, 0x42, 0xf1, + 0xbb, 0x4a, 0x1f, 0x94, 0x39, 0x37, 0x20, 0x34, 0x56, 0xdf, 0x1a, 0x17, 0x51, 0x5e, 0x2e, 0x27, + 0xc9, 0x8e, 0x9b, 0xd2, 0x6f, 0x45, 0xec, 0x8d, 0xdc, 0x0a, 0x8d, 0xc5, 0x22, 0x31, 0x6a, 0x62, + 0x5c, 0x94, 0x76, 0x7c, 0xf3, 0x06, 0xf8, 0xf0, 0x77, 0x3f, 0x04, 0xf0, 0x77, 0x02, 0x78, 0x77, + 0xf5, 0x0e, 0x9c, 0x3f, 0x50, 0xf1, 0xd7, 0x06, 0x4b, 0x38, 0xe7, 0x10, 0x47, 0x50, 0x5e, 0x83, + 0xbc, 0xe6, 0xce, 0x41, 0x03, 0x45, 0xbf, 0xcb, 0xda, 0xcd, 0x93, 0x6e, 0x19, 0xc2, 0xc8, 0xba, + 0x68, 0x0f, 0xac, 0xf3, 0x20, 0x9c, 0x78, 0x19, 0x27, 0x40, 0x4d, 0xe4, 0xa7, 0x50, 0xc7, 0xf7, + 0xf7, 0x41, 0x3d, 0xde, 0x47, 0xf8, 0x3e, 0x05, 0x8d, 0xcc, 0xc1, 0x52, 0x7c, 0xd9, 0x38, 0x24, + 0x38, 0x2d, 0x0d, 0x49, 0x5d, 0x8e, 0x98, 0x43, 0x67, 0xc8, 0x6c, 0xd5, 0xd2, 0xc6, 0x6f, 0x46, + 0x60, 0xd1, 0x0a, 0xc9, 0xdb, 0x00, 0xf7, 0xf0, 0xd3, 0x06, 0xb8, 0x17, 0xef, 0x97, 0xf0, 0x7d, + 0x06, 0x52, 0x28, 0x47, 0x19, 0xa0, 0x9b, 0x9f, 0xbe, 0x0f, 0xfd, 0xf8, 0x66, 0x10, 0x6b, 0x59, + 0x81, 0xff, 0xab, 0xc8, 0x33, 0x15, 0xc2, 0x4b, 0x39, 0x52, 0xb6, 0x31, 0xa6, 0x34, 0x20, 0xbb, + 0x32, 0x1d, 0x13, 0xcf, 0x83, 0x41, 0xf7, 0x61, 0xf9, 0x6f, 0x21, 0x87, 0x03, 0x5a, 0x37, 0xe1, + 0xfb, 0x27, 0x23, 0x48, 0x55, 0x98, 0x62, 0x14, 0xa1, 0x2c, 0xad, 0xdd, 0xb9, 0x57, 0xb5, 0x7b, + 0xba, 0x91, 0x37, 0xe7, 0x48, 0x10, 0x9d, 0x9b, 0xec, 0x11, 0x25, 0xe9, 0x69, 0xa4, 0xdd, 0x0d, + 0xe1, 0x97, 0xb1, 0x8d, 0x72, 0x8b, 0x5d, 0xd5, 0xc3, 0xe4, 0x21, 0x89, 0x30, 0xa7, 0x31, 0x04, + 0xe6, 0x89, 0x06, 0x1c, 0x81, 0x56, 0x7b, 0x04, 0xf9, 0x52, 0x8a, 0x11, 0x07, 0x7e, 0xa4, 0x71, + 0x3f, 0xdf, 0xdd, 0x6b, 0xc4, 0xd4, 0x36, 0xd5, 0x78, 0x07, 0xf9, 0xe4, 0x6c, 0xeb, 0xe8, 0xe1, + 0x5e, 0x91, 0x3d, 0xe3, 0xfd, 0x2c, 0x09, 0xae, 0xc9, 0x4a, 0x4f, 0xf1, 0xe1, 0x40, 0xc8, 0x9b, + 0x80, 0x75, 0xfa, 0xf3, 0xcd, 0xec, 0x0b, 0x20, 0xce, 0xde, 0xd1, 0xf5, 0xf7, 0xfe, 0x90, 0x77, + 0x01, 0xfb, 0xee, 0xd6, 0xdf, 0x73, 0x7e, 0xb6, 0x26, 0xc3, 0xff, 0x27, 0xf0, 0xff, 0x29, 0xfc, + 0x7f, 0x06, 0xff, 0x9f, 0xc5, 0xff, 0xe7, 0xbe, 0x50, 0xee, 0xbd, 0x3f, 0x47, 0x33, 0xbc, 0xb0, + 0x0e, 0x69, 0xc4, 0xd2, 0x6a, 0x2f, 0x6c, 0xbc, 0xa3, 0x09, 0xba, 0x70, 0x3e, 0x37, 0x20, 0xc7, + 0x96, 0xf2, 0x0e, 0xe0, 0x98, 0x57, 0xd3, 0x99, 0xee, 0x1d, 0x64, 0x2f, 0x34, 0x00, 0x5b, 0x90, + 0xa2, 0x2c, 0xf7, 0x78, 0xe1, 0xa9, 0x3b, 0x1a, 0x61, 0x25, 0x4a, 0x94, 0x4f, 0x60, 0xfa, 0x0a, + 0xa7, 0x17, 0x9e, 0x41, 0xbe, 0x6f, 0xd5, 0xc4, 0xbe, 0x89, 0x53, 0xd0, 0x8a, 0x39, 0x5a, 0x27, + 0x1a, 0x90, 0x1b, 0x6f, 0xa3, 0xde, 0xc6, 0x77, 0xfb, 0xe3, 0x6f, 0xef, 0x8e, 0xff, 0xba, 0xe1, + 0x0f, 0x2b, 0x81, 0x74, 0x2b, 0x77, 0x9f, 0x82, 0x8e, 0x60, 0x92, 0x35, 0xbe, 0xaa, 0xe9, 0x6c, + 0x28, 0x76, 0xa1, 0x1c, 0xb0, 0xed, 0x6d, 0xf8, 0xfc, 0xec, 0xe8, 0x43, 0xdf, 0xb3, 0x4c, 0x8c, + 0x8f, 0xbc, 0x46, 0x25, 0xe0, 0x9c, 0x27, 0x30, 0xed, 0xb9, 0xd1, 0x87, 0xbf, 0xc7, 0xba, 0x7b, + 0xd4, 0x07, 0x6c, 0x65, 0x42, 0x91, 0x8e, 0x6f, 0x20, 0x2f, 0xee, 0x5b, 0x43, 0xbe, 0x22, 0x1c, + 0x55, 0x1b, 0x96, 0x19, 0xa1, 0x77, 0x98, 0x66, 0x09, 0x42, 0x7c, 0x9f, 0x23, 0xbc, 0xf0, 0x5c, + 0x17, 0x04, 0x1a, 0x7e, 0xf1, 0xe6, 0x52, 0x83, 0xaf, 0x68, 0x24, 0x8c, 0xdf, 0xb4, 0x11, 0xee, + 0x7e, 0x7b, 0xf7, 0xcf, 0x5e, 0x43, 0xbc, 0xbd, 0x1b, 0xc7, 0x31, 0x42, 0x3b, 0x3f, 0x48, 0x17, + 0xfe, 0xeb, 0x78, 0xd8, 0xf2, 0x53, 0x80, 0xff, 0x01, 0x10, 0xf9, 0x9e, 0x81, 0x20, 0x92, 0x47, + 0xb9, 0x8e, 0xa2, 0x57, 0x31, 0x4c, 0x2c, 0x6e, 0xdd, 0x74, 0x05, 0xbe, 0xfe, 0x18, 0x5e, 0xd0, + 0xf1, 0xb5, 0x17, 0x5e, 0xf8, 0x02, 0x7c, 0x1d, 0x4f, 0x83, 0x2c, 0x6c, 0x5f, 0x3f, 0xcb, 0xce, + 0xab, 0x0e, 0x6b, 0xb8, 0x26, 0x84, 0x0d, 0x20, 0xdb, 0xe1, 0x8d, 0x78, 0xe9, 0xa4, 0x72, 0x8b, + 0x97, 0xec, 0x4e, 0x9f, 0x40, 0xd8, 0x8d, 0xc3, 0x53, 0x54, 0x9b, 0x17, 0x71, 0x36, 0x3c, 0x33, + 0x0d, 0x5f, 0x0b, 0xcd, 0x9f, 0x67, 0x19, 0xbe, 0x37, 0xfc, 0xe9, 0xb9, 0x44, 0xcc, 0xfd, 0x31, + 0xd4, 0xe4, 0x30, 0xb7, 0x85, 0xf4, 0xc0, 0x68, 0x77, 0xa4, 0x90, 0x0e, 0xb1, 0x94, 0x9f, 0xf5, + 0xe8, 0x06, 0xd2, 0xb3, 0x48, 0x07, 0xcb, 0x59, 0xea, 0x2f, 0xca, 0xe2, 0x6f, 0x92, 0x45, 0x8f, + 0xb0, 0x87, 0x54, 0x5e, 0x31, 0x25, 0x59, 0x3e, 0xe6, 0xe3, 0x09, 0x3e, 0xe9, 0x07, 0x29, 0xf5, + 0xa7, 0x76, 0x08, 0x8e, 0xec, 0xcc, 0xed, 0x10, 0xd4, 0x4d, 0x3b, 0x73, 0x2f, 0x9a, 0xa6, 0xdd, + 0x52, 0x74, 0xa5, 0x04, 0xfc, 0x71, 0x6b, 0xeb, 0x26, 0x21, 0xa3, 0x63, 0x79, 0x53, 0xd3, 0x25, + 0xf8, 0xfc, 0x3e, 0xd6, 0x15, 0xd2, 0x73, 0x59, 0x7e, 0xf7, 0xcb, 0xde, 0x94, 0x7c, 0x54, 0x48, + 0xf8, 0xfa, 0xa9, 0xb4, 0x89, 0xa4, 0x75, 0xb6, 0x99, 0x61, 0x49, 0x5d, 0xdf, 0x75, 0xd2, 0xf7, + 0x10, 0x28, 0x3e, 0xe4, 0x15, 0x65, 0xf1, 0xbe, 0x16, 0x95, 0x22, 0xf6, 0x22, 0xa8, 0x15, 0x7a, + 0x64, 0xa1, 0x82, 0xdd, 0x2d, 0xee, 0xb9, 0xde, 0x32, 0xa6, 0x40, 0x32, 0x59, 0x91, 0x5d, 0x51, + 0x52, 0x6e, 0xd7, 0x4b, 0xec, 0x64, 0x88, 0x2f, 0xf5, 0xfd, 0x85, 0x29, 0xaf, 0x38, 0xa3, 0x33, + 0x89, 0x2f, 0x79, 0xf7, 0x40, 0x50, 0x59, 0x6b, 0x72, 0xb3, 0x67, 0x11, 0x8f, 0xb2, 0x21, 0x36, + 0xf9, 0x61, 0x35, 0xc7, 0x0b, 0xfd, 0x80, 0xde, 0x38, 0x62, 0xc9, 0xcd, 0x8c, 0x75, 0x87, 0x55, + 0x47, 0xa2, 0x87, 0x4f, 0x2e, 0x83, 0x96, 0x79, 0x20, 0xc3, 0x1c, 0x1c, 0x63, 0x3f, 0xd2, 0x00, + 0x05, 0xb1, 0xbf, 0x96, 0x22, 0x2f, 0x83, 0x1c, 0x11, 0x87, 0x3c, 0xf7, 0x4b, 0x15, 0x76, 0xe4, + 0xef, 0xe4, 0xd5, 0x14, 0xbe, 0x0e, 0xdf, 0x2e, 0x4b, 0x87, 0x96, 0x98, 0xf1, 0xda, 0x85, 0x5f, + 0x00, 0x52, 0xd3, 0x10, 0x9c, 0x48, 0x3b, 0xf1, 0xf7, 0xc3, 0x14, 0xc0, 0x59, 0x3a, 0x05, 0x85, + 0x93, 0x82, 0x93, 0xfd, 0x7f, 0x4e, 0xb4, 0x6e, 0xb2, 0xf4, 0xc1, 0x87, 0x6c, 0x05, 0x7f, 0x48, + 0x05, 0xb8, 0x90, 0xa0, 0x33, 0xd3, 0x37, 0xd4, 0x52, 0xbe, 0xee, 0xc5, 0xfa, 0xd7, 0xa4, 0x4d, + 0x88, 0x2d, 0xd7, 0xe0, 0xbb, 0x97, 0xf4, 0x6f, 0x76, 0x70, 0xac, 0x80, 0x37, 0x58, 0xf3, 0x73, + 0xec, 0x77, 0x17, 0x08, 0xef, 0xea, 0x7b, 0x5d, 0xeb, 0x19, 0xc2, 0x37, 0xf2, 0x7a, 0x78, 0x38, + 0x0b, 0xc3, 0xad, 0x9b, 0xbe, 0x04, 0x23, 0x61, 0xfe, 0x2f, 0xd8, 0xe9, 0x8a, 0x8b, 0xda, 0x4e, + 0x4d, 0x88, 0xeb, 0xe9, 0xf5, 0xa4, 0x0b, 0x44, 0xb4, 0x5c, 0xcf, 0xdf, 0xa3, 0xd3, 0xba, 0x38, + 0xe6, 0x35, 0x79, 0x2d, 0xac, 0x1b, 0x39, 0x84, 0x33, 0xf1, 0x35, 0x96, 0x74, 0x6b, 0xb1, 0xcd, + 0xec, 0x39, 0x8f, 0x2c, 0x3b, 0x38, 0xa5, 0xa6, 0x75, 0x13, 0x59, 0xc9, 0xf1, 0xbd, 0xdd, 0xad, + 0x47, 0xa4, 0xbe, 0xf8, 0xb4, 0x0a, 0x17, 0xb7, 0x91, 0xec, 0x9c, 0x02, 0xcd, 0xa7, 0x6e, 0xd4, + 0xfd, 0x8e, 0x92, 0x0f, 0x42, 0xd2, 0x4b, 0x70, 0x5f, 0xe1, 0x73, 0xbe, 0x3a, 0x32, 0x40, 0xda, + 0x33, 0x83, 0x79, 0xca, 0xfd, 0x26, 0xf6, 0xdc, 0x86, 0x78, 0xde, 0xea, 0x1d, 0x82, 0x7f, 0x7d, + 0x7c, 0x2e, 0x94, 0xf0, 0xb3, 0x8c, 0x90, 0x3a, 0x04, 0xff, 0xf6, 0xfd, 0xed, 0x50, 0xc1, 0xcf, + 0x36, 0x98, 0x13, 0xfe, 0x18, 0xdc, 0xe4, 0x81, 0x1e, 0x31, 0x90, 0x13, 0xef, 0x73, 0x67, 0xcc, + 0x97, 0xba, 0x1d, 0x90, 0x76, 0x4d, 0x8b, 0x6b, 0x40, 0x71, 0x78, 0xcd, 0xb7, 0x20, 0xad, 0x95, + 0x6b, 0x32, 0x92, 0x6a, 0xb5, 0xe7, 0x3c, 0xfe, 0x4f, 0x1d, 0xa3, 0x08, 0x02, 0x51, 0xdd, 0xcb, + 0xe8, 0xff, 0x5b, 0x7e, 0x47, 0xfe, 0xb4, 0x2e, 0x65, 0xd6, 0xa3, 0x88, 0x47, 0xf7, 0x91, 0x5f, + 0xef, 0x85, 0x48, 0xdd, 0x40, 0x81, 0x37, 0x91, 0xa6, 0xf6, 0x96, 0xc3, 0x1f, 0x43, 0xa2, 0x66, + 0x61, 0x7b, 0xf3, 0xa1, 0x8f, 0x21, 0x99, 0xb9, 0x30, 0xf1, 0x53, 0x08, 0x0c, 0x92, 0x37, 0x85, + 0x8a, 0xf0, 0x67, 0xf0, 0xaf, 0x0f, 0x2f, 0x2e, 0xf7, 0x99, 0x20, 0xbe, 0x8e, 0xef, 0xd5, 0x0a, + 0xba, 0x7f, 0x40, 0x35, 0x90, 0x17, 0x88, 0x44, 0x53, 0x4a, 0x5e, 0x29, 0xf9, 0x66, 0xa7, 0xe4, + 0x55, 0xd2, 0xa0, 0xb4, 0x7d, 0x7d, 0xda, 0x92, 0x31, 0x8e, 0xae, 0xbf, 0xca, 0x2b, 0x47, 0xcd, + 0xf4, 0xd3, 0x68, 0x2d, 0x5a, 0xd3, 0x5c, 0xb7, 0x30, 0xd0, 0xe4, 0x2d, 0x4a, 0x44, 0xbf, 0x4b, + 0x1a, 0x6a, 0xff, 0x8d, 0xa2, 0x71, 0xd0, 0x29, 0x85, 0xc0, 0x1e, 0x1b, 0x76, 0xd0, 0x6a, 0xad, + 0x6d, 0xd1, 0x31, 0xc7, 0xec, 0x44, 0x8c, 0x73, 0x2d, 0xc7, 0x5c, 0xc2, 0x3e, 0x98, 0x57, 0xb3, + 0xee, 0x95, 0x63, 0x3d, 0x7b, 0xe5, 0x58, 0x7f, 0x95, 0x57, 0x8e, 0x2b, 0xea, 0x9c, 0x9a, 0x60, + 0x9d, 0x19, 0x4b, 0x22, 0x46, 0x3a, 0x71, 0x4f, 0x8e, 0xe7, 0x7c, 0x93, 0x6c, 0xce, 0x79, 0xe5, + 0x68, 0x86, 0x50, 0xfb, 0x46, 0x6f, 0x0b, 0x42, 0x56, 0x33, 0xd4, 0x26, 0xa2, 0x94, 0x6f, 0xcb, + 0x38, 0x9f, 0x1f, 0xe4, 0x3c, 0x73, 0x4c, 0x2d, 0x8d, 0xff, 0x3b, 0x04, 0xed, 0x59, 0x8d, 0xdd, + 0x01, 0xe4, 0x27, 0x1f, 0xcb, 0xea, 0x9f, 0x3a, 0x86, 0x95, 0x65, 0x50, 0xaf, 0xd6, 0x9a, 0x10, + 0x77, 0xc1, 0x75, 0xe9, 0xea, 0x9f, 0x7d, 0x08, 0x7b, 0xd3, 0xae, 0xda, 0x2e, 0x8e, 0x73, 0x47, + 0x27, 0x80, 0xd6, 0x3a, 0x94, 0xe6, 0x7e, 0xff, 0xdb, 0x5f, 0xbd, 0x3d, 0x50, 0xe2, 0xdc, 0xa8, + 0x5a, 0xeb, 0x96, 0x81, 0x69, 0xc1, 0x27, 0xfb, 0xa7, 0x7e, 0x45, 0xd1, 0x63, 0x37, 0xea, 0x34, + 0x61, 0x4f, 0xcb, 0x7b, 0x41, 0x98, 0x16, 0x2b, 0x93, 0x3d, 0x01, 0xe1, 0x6a, 0x72, 0x78, 0xba, + 0xa0, 0x53, 0xf7, 0x9d, 0x73, 0x95, 0x27, 0x45, 0xf6, 0xc1, 0xa7, 0xfb, 0x38, 0x68, 0x3a, 0x67, + 0x02, 0x41, 0x2d, 0x07, 0x41, 0xe9, 0xe5, 0xf5, 0x7a, 0xd4, 0x39, 0x9c, 0x8d, 0x51, 0xca, 0xbe, + 0xd0, 0x4c, 0x0e, 0xe1, 0xad, 0xd0, 0xc6, 0xbe, 0xc5, 0xe7, 0xb2, 0x97, 0x42, 0x59, 0x29, 0x12, + 0xde, 0xcb, 0x15, 0xdd, 0x9f, 0x3c, 0x79, 0x0e, 0x53, 0xb6, 0x9b, 0x28, 0x4a, 0x2e, 0x3e, 0xb1, + 0x57, 0xf9, 0x2f, 0xf5, 0x27, 0x2f, 0x22, 0xf0, 0x91, 0x37, 0x2b, 0x7b, 0x17, 0xeb, 0x62, 0xcd, + 0x85, 0xd2, 0xc1, 0xaf, 0x6f, 0x7f, 0x0e, 0xac, 0xf7, 0x01, 0x6c, 0xa5, 0x68, 0x05, 0x07, 0x56, + 0xfb, 0xef, 0x2a, 0x37, 0x26, 0x3f, 0xb7, 0xc9, 0xb0, 0x48, 0xff, 0x5b, 0xcf, 0xff, 0xe2, 0x2f, + 0x9b, 0x16, 0x87, 0x20, 0xf8, 0x0a, 0x9e, 0xf1, 0xcf, 0x0e, 0xc7, 0x1f, 0xb2, 0x87, 0x3a, 0x57, + 0x2b, 0x33, 0x55, 0x53, 0xdb, 0xb0, 0x3d, 0x64, 0x87, 0x03, 0xc3, 0x0e, 0x49, 0x2d, 0x5f, 0x34, + 0xec, 0x80, 0x83, 0xc3, 0xfe, 0x21, 0xb0, 0x0e, 0x5a, 0x55, 0xb3, 0xb8, 0x66, 0xac, 0xcb, 0xad, + 0x08, 0xd5, 0x25, 0x28, 0xeb, 0x94, 0xa5, 0x6d, 0x2b, 0xa5, 0x9d, 0x6b, 0x53, 0x66, 0xc7, 0x1a, + 0x6c, 0x73, 0x85, 0x42, 0x31, 0x65, 0x57, 0xf3, 0xdd, 0x43, 0x59, 0x2f, 0x72, 0x86, 0xca, 0xac, + 0x87, 0x5a, 0x8e, 0xd8, 0xad, 0x92, 0xb6, 0x31, 0xf9, 0xd6, 0x77, 0x56, 0x21, 0x6d, 0xae, 0x06, + 0xb3, 0xd2, 0x0f, 0x46, 0xf2, 0x1b, 0xe8, 0xaa, 0x06, 0xbb, 0xab, 0x1f, 0xac, 0xee, 0x7e, 0x28, + 0x71, 0x57, 0x43, 0x99, 0xa7, 0x1a, 0x2a, 0xaa, 0x2d, 0xef, 0x3e, 0x10, 0xfe, 0xa4, 0x0b, 0x48, + 0x17, 0x28, 0x7b, 0x4e, 0x74, 0x89, 0x75, 0x49, 0x33, 0x37, 0x8c, 0xbe, 0x08, 0x73, 0xee, 0x03, + 0xeb, 0x1e, 0xa5, 0x1a, 0xe6, 0xe4, 0xad, 0xf5, 0x0d, 0x8f, 0xc8, 0xe7, 0x8d, 0x87, 0xa5, 0x0b, + 0xd6, 0xed, 0xf9, 0x3f, 0x53, 0xd7, 0xcc, 0xf3, 0xb3, 0x86, 0x67, 0x57, 0x64, 0x9f, 0xa1, 0x0d, + 0xff, 0x3d, 0xe0, 0x11, 0x9a, 0x86, 0xfe, 0x98, 0x77, 0x26, 0x79, 0x92, 0xc1, 0xa5, 0xdb, 0x42, + 0xa7, 0x42, 0x5e, 0x03, 0xd2, 0xab, 0x22, 0xae, 0xc9, 0x8d, 0x74, 0xe5, 0xe9, 0x2b, 0x73, 0xf9, + 0x5a, 0x48, 0x8f, 0x83, 0x73, 0xf1, 0x69, 0xd8, 0x25, 0x43, 0xdb, 0xc6, 0xb6, 0xbf, 0x51, 0x62, + 0x77, 0x6f, 0xb8, 0x7b, 0xfd, 0xc2, 0xf3, 0x1b, 0xb4, 0xa6, 0x4f, 0xba, 0x34, 0xe2, 0xa9, 0xbf, + 0xfd, 0x3e, 0xe6, 0x30, 0x7a, 0x4d, 0x44, 0x61, 0x5b, 0x37, 0xd5, 0x01, 0x3f, 0x19, 0xf5, 0x75, + 0xe5, 0xc1, 0xb5, 0xbc, 0xee, 0x3e, 0x23, 0xf9, 0x05, 0x50, 0x0d, 0xf8, 0x4b, 0x56, 0x0f, 0x12, + 0xc5, 0xae, 0xe5, 0xd5, 0x49, 0x98, 0xb6, 0x56, 0x3f, 0x45, 0x42, 0x3a, 0x29, 0x56, 0x92, 0x87, + 0xd7, 0x2d, 0xd1, 0x50, 0x7f, 0xec, 0xf7, 0xaf, 0xfd, 0xfd, 0x6b, 0x88, 0x83, 0x5a, 0x7d, 0xa1, + 0x7f, 0xde, 0xff, 0xc3, 0xfd, 0x57, 0xfa, 0x10, 0xba, 0xf2, 0xcb, 0xac, 0xdd, 0x37, 0xae, 0xe5, + 0x75, 0x69, 0x73, 0x62, 0x1d, 0xaf, 0x64, 0xb3, 0xbe, 0x92, 0xad, 0x57, 0xfb, 0xd7, 0xf9, 0xdc, + 0xe8, 0x99, 0xd5, 0xbe, 0x9e, 0xac, 0x79, 0xc8, 0xf2, 0x83, 0xfc, 0x07, 0xc5, 0x7b, 0x59, 0x3f, + 0x64, 0x6c, 0x72, 0xdf, 0xdf, 0xbf, 0xa1, 0x58, 0xdb, 0x86, 0xb3, 0x56, 0x0d, 0xf6, 0x59, 0x9b, + 0xff, 0xa6, 0x6d, 0xb5, 0x5d, 0x12, 0xfa, 0x8c, 0xff, 0xbc, 0x9b, 0x6a, 0x19, 0x2c, 0x72, 0x5b, + 0xb6, 0x0f, 0xf7, 0x1a, 0x8e, 0x0c, 0xab, 0x72, 0xe7, 0x03, 0xd3, 0xfc, 0x12, 0x8d, 0x4d, 0xbe, + 0xa0, 0xeb, 0xd5, 0xe9, 0xb8, 0x61, 0x72, 0x45, 0xc7, 0xc6, 0xbb, 0x1f, 0x68, 0xfb, 0x9b, 0x5c, + 0xeb, 0x4c, 0xd8, 0x3a, 0xd3, 0x20, 0x62, 0x99, 0x41, 0xb3, 0x2a, 0x0f, 0x5a, 0xf9, 0x6b, 0x7f, + 0x39, 0xe8, 0x5f, 0xf7, 0xeb, 0x16, 0x46, 0xd9, 0xaf, 0x6b, 0x85, 0xf6, 0x8e, 0x65, 0xcf, 0x97, + 0xcc, 0x11, 0xcf, 0xe4, 0xa4, 0x9a, 0x9d, 0x23, 0x4f, 0xe3, 0xdd, 0x8f, 0x34, 0xe0, 0x2c, 0x79, + 0x66, 0x36, 0x7d, 0x72, 0x42, 0x7b, 0x6b, 0x7f, 0x6e, 0xa6, 0xcc, 0xf1, 0xcc, 0x06, 0x10, 0x71, + 0xf0, 0xdc, 0x10, 0xbe, 0x70, 0x02, 0x44, 0xda, 0x09, 0xa0, 0xf9, 0xfb, 0x33, 0x67, 0xcc, 0x28, + 0x5a, 0xb8, 0x70, 0xf2, 0xb3, 0xad, 0xc9, 0xad, 0xbf, 0x7f, 0xf5, 0xa9, 0x07, 0x68, 0xae, 0xfe, + 0x79, 0xfc, 0x87, 0xe3, 0x57, 0xce, 0x94, 0xe0, 0xbe, 0xf2, 0x5f, 0x24, 0xb7, 0x52, 0x3b, 0xdb, + 0xd7, 0xb7, 0xff, 0x80, 0x79, 0xca, 0x75, 0xba, 0x36, 0xe1, 0x35, 0xe6, 0xe8, 0xb3, 0x25, 0xe2, + 0x3b, 0xc4, 0x98, 0xe7, 0xbe, 0xa4, 0xf7, 0x92, 0xc8, 0xfb, 0xff, 0x6f, 0x10, 0x7a, 0x71, 0xa9, + 0x67, 0x76, 0x1b, 0x42, 0x68, 0xbc, 0x07, 0xe1, 0x93, 0xac, 0x93, 0x8c, 0x59, 0x08, 0xbd, 0xe8, + 0x98, 0x0e, 0xa1, 0x3f, 0xfc, 0xad, 0x7d, 0x56, 0x1e, 0x42, 0xab, 0x67, 0xbf, 0xbb, 0xfa, 0x4f, + 0xc1, 0xe8, 0x45, 0xe1, 0x5d, 0x2a, 0x07, 0x65, 0x9f, 0x1e, 0x20, 0x18, 0x6d, 0x7f, 0xf0, 0xab, + 0xc1, 0xe8, 0xa7, 0xaf, 0xeb, 0x5f, 0xe3, 0xcc, 0x5c, 0xbe, 0xe7, 0x8b, 0x66, 0x46, 0xd7, 0x50, + 0x7c, 0x9d, 0xe6, 0xc5, 0xd3, 0x74, 0xf7, 0x23, 0x38, 0x52, 0x9d, 0x77, 0x93, 0xfc, 0xdf, 0x79, + 0xf7, 0x03, 0x77, 0xaf, 0x0f, 0x7f, 0x96, 0x9b, 0x9b, 0x62, 0x8a, 0x1c, 0x45, 0x30, 0x59, 0x9f, + 0x9d, 0x9d, 0x01, 0x7a, 0xfe, 0xb2, 0xf9, 0x11, 0xda, 0xc4, 0x9f, 0x46, 0xd8, 0xef, 0x43, 0x34, + 0x3b, 0xc2, 0xa4, 0x0f, 0xe9, 0x6b, 0xfa, 0xfd, 0x7e, 0x9a, 0x13, 0x7f, 0xe8, 0x9f, 0x5f, 0x7b, + 0x72, 0xc3, 0x93, 0x1b, 0x9e, 0x7a, 0xe8, 0xa9, 0x87, 0xc2, 0xe7, 0x3b, 0x09, 0xbb, 0x76, 0x2e, + 0x3c, 0xa1, 0x69, 0x0d, 0x84, 0x69, 0x17, 0xc0, 0xe2, 0xea, 0x99, 0xdc, 0xdb, 0xe9, 0x7e, 0xc9, + 0xc6, 0x2e, 0x9c, 0xcd, 0xb6, 0x4b, 0xbb, 0xec, 0x25, 0x4f, 0xeb, 0x51, 0x6a, 0x17, 0xb5, 0xd9, + 0x37, 0x63, 0x62, 0x00, 0xee, 0x61, 0x59, 0x3d, 0xce, 0x6f, 0x8b, 0x49, 0x47, 0x53, 0x7f, 0xbb, + 0xd8, 0x67, 0xc5, 0xb7, 0xf7, 0xb2, 0xcc, 0xd9, 0xc2, 0xa3, 0x10, 0x42, 0xa8, 0xe0, 0xb8, 0x45, + 0xec, 0x7f, 0xae, 0x05, 0xff, 0x3b, 0xd8, 0x7f, 0x87, 0xcc, 0xf1, 0xfa, 0x1c, 0x3c, 0xce, 0xc5, + 0x38, 0xce, 0x01, 0x7d, 0x5e, 0x74, 0x79, 0xe9, 0x42, 0x06, 0xa5, 0x0e, 0xec, 0x7d, 0x3c, 0xb3, + 0x52, 0x43, 0xca, 0xba, 0x34, 0xbe, 0xe2, 0x89, 0x69, 0xb8, 0xe9, 0x82, 0x9b, 0xf9, 0x8c, 0x69, + 0x73, 0x79, 0x21, 0x98, 0x1b, 0xcb, 0xa2, 0x7c, 0x9b, 0x3d, 0xc0, 0xcf, 0xb9, 0x56, 0xba, 0x01, + 0xe7, 0xa9, 0xc9, 0x6b, 0x22, 0xfd, 0x6a, 0xdf, 0xec, 0x89, 0xff, 0x1f, 0x75, 0x7f, 0x02, 0x17, + 0x55, 0xd9, 0x3d, 0x80, 0xe3, 0xcf, 0x0c, 0xc3, 0x30, 0xc0, 0x80, 0x23, 0x21, 0x92, 0x92, 0x5d, + 0xc7, 0x69, 0x1c, 0x87, 0x81, 0x19, 0x09, 0x11, 0x95, 0x70, 0x18, 0x06, 0x18, 0x46, 0x44, 0x04, + 0x54, 0xf2, 0x55, 0xbb, 0xa2, 0xcc, 0xb0, 0x83, 0x48, 0x8a, 0xc6, 0xab, 0xb8, 0x46, 0xe6, 0x82, + 0x6b, 0x54, 0xa6, 0x56, 0x56, 0x6a, 0x66, 0x68, 0x5a, 0xa6, 0x66, 0x68, 0x66, 0x6e, 0x29, 0x2e, + 0xb9, 0x65, 0x6a, 0x4a, 0x46, 0xa5, 0xb9, 0x91, 0x29, 0x29, 0xf7, 0x7f, 0xce, 0x73, 0xef, 0x0c, + 0x03, 0xda, 0xf2, 0xbe, 0xdf, 0xf7, 0xf7, 0xff, 0xfd, 0xff, 0xf0, 0x39, 0x73, 0xb7, 0x67, 0x5f, + 0xce, 0x73, 0xce, 0xf3, 0x9c, 0x25, 0x1e, 0x35, 0xa7, 0x0d, 0xee, 0x75, 0x49, 0x54, 0x3e, 0xa4, + 0x4d, 0xa9, 0x6c, 0x52, 0x18, 0x99, 0xbe, 0x8f, 0xb2, 0x85, 0x36, 0xb0, 0xe9, 0xb7, 0xc3, 0xa8, + 0xe3, 0x06, 0xa9, 0xa2, 0xa5, 0x95, 0x66, 0x25, 0x5e, 0x81, 0xff, 0xb1, 0x3c, 0x9f, 0x2d, 0xb2, + 0x94, 0x66, 0xd0, 0x32, 0xfe, 0x36, 0xdb, 0x31, 0x8a, 0x6c, 0x44, 0x26, 0x6f, 0x6d, 0xb3, 0xcd, + 0xa5, 0x35, 0x78, 0xcf, 0xbe, 0x63, 0x1d, 0x79, 0xb3, 0xe4, 0x8f, 0xc0, 0xbf, 0x98, 0xe3, 0x54, + 0xc2, 0xe2, 0xb7, 0x29, 0x03, 0xaf, 0x12, 0x51, 0xea, 0xbc, 0x21, 0x2f, 0xb6, 0x8c, 0x25, 0x4d, + 0xdc, 0x90, 0xb9, 0xea, 0xf8, 0x21, 0x2f, 0x6b, 0x1d, 0x73, 0xdd, 0x5d, 0x2f, 0xe7, 0xf9, 0xa5, + 0x28, 0x42, 0x9f, 0xbc, 0x95, 0x71, 0x7f, 0x8d, 0xdb, 0xb4, 0x2d, 0x73, 0x3d, 0x8e, 0xce, 0x58, + 0x1c, 0x51, 0x1e, 0x54, 0x6a, 0x10, 0xe5, 0x11, 0xb7, 0x1a, 0xe2, 0xbf, 0x73, 0x8e, 0xa8, 0xc4, + 0xc6, 0x06, 0xee, 0xd5, 0x7d, 0xaf, 0xee, 0x4b, 0xb8, 0x7d, 0x9a, 0x7b, 0x65, 0xff, 0x2b, 0xfb, + 0x75, 0xf2, 0xe5, 0xf3, 0x53, 0x67, 0x33, 0x03, 0x16, 0x7e, 0x9d, 0x5a, 0x89, 0x23, 0xcc, 0xd9, + 0xaf, 0x13, 0x5c, 0xad, 0xd9, 0x61, 0xba, 0x8c, 0xd4, 0x8c, 0xe5, 0x35, 0xd3, 0x13, 0x61, 0x52, + 0x46, 0xb5, 0xe1, 0x21, 0xde, 0x57, 0xe8, 0xa1, 0x8a, 0x8d, 0xa2, 0xda, 0xa3, 0xe8, 0x75, 0x19, + 0xe5, 0x2b, 0x53, 0xe8, 0xc9, 0xc8, 0xd8, 0x94, 0x05, 0x8c, 0xf1, 0xe8, 0x5e, 0x2c, 0x8d, 0xa5, + 0x38, 0x83, 0x38, 0x4e, 0x4b, 0xea, 0x92, 0xa9, 0xce, 0x3b, 0x96, 0xac, 0x4b, 0x2a, 0x5a, 0xc5, + 0x0c, 0x44, 0x6b, 0x95, 0x67, 0x3f, 0x24, 0x91, 0x9f, 0xd4, 0xe6, 0x6f, 0x6d, 0x3d, 0x32, 0x1a, + 0x95, 0xd0, 0x7f, 0x03, 0xa0, 0x45, 0x93, 0xf9, 0x18, 0xb7, 0x37, 0x3b, 0xac, 0xe9, 0xc5, 0x35, + 0xdd, 0xde, 0xeb, 0xd4, 0xb8, 0xa7, 0x3e, 0x97, 0xa9, 0x0d, 0x15, 0x6f, 0x5a, 0x67, 0x41, 0x3f, + 0x5e, 0x9a, 0x52, 0x2c, 0xaf, 0x99, 0x55, 0x20, 0x2f, 0xf1, 0xde, 0x34, 0x6b, 0xd4, 0x2e, 0xcb, + 0xb4, 0xf4, 0x18, 0xc0, 0x04, 0x6e, 0xf0, 0x6e, 0x76, 0x81, 0x02, 0xc6, 0x87, 0x77, 0xcd, 0xec, + 0x51, 0xad, 0x34, 0x4f, 0xff, 0xa2, 0xf7, 0x80, 0x22, 0x47, 0x4b, 0x66, 0x50, 0x82, 0x1d, 0x88, + 0x0d, 0x86, 0xbc, 0x88, 0x7a, 0x2a, 0x43, 0x5e, 0x46, 0x3c, 0x80, 0x2d, 0x06, 0xfc, 0x89, 0x01, + 0xc7, 0x4b, 0x96, 0x94, 0xfa, 0x7e, 0x94, 0x18, 0xb4, 0x4e, 0x0d, 0x49, 0xb1, 0x86, 0xef, 0x9d, + 0x18, 0x12, 0x25, 0x58, 0x03, 0xf0, 0xa6, 0x7d, 0x03, 0x25, 0x4e, 0x68, 0xba, 0x1d, 0x94, 0xbc, + 0x18, 0xe2, 0xa6, 0xf3, 0xfe, 0x6c, 0xce, 0xec, 0x9a, 0x42, 0xa2, 0x7d, 0xbf, 0xfd, 0xea, 0xb5, + 0x69, 0xaf, 0x4d, 0x63, 0xa4, 0x55, 0x2f, 0x56, 0xbd, 0x38, 0xb0, 0x31, 0x83, 0xd3, 0xf9, 0x9c, + 0xab, 0x70, 0x62, 0xca, 0xca, 0xfe, 0x46, 0x32, 0xfc, 0xa1, 0xf5, 0xc9, 0x9c, 0xbc, 0x90, 0x71, + 0xe7, 0x7b, 0x27, 0xbc, 0x88, 0x98, 0xf4, 0xee, 0xa8, 0x0b, 0xcd, 0xf7, 0x41, 0x28, 0xd1, 0xf8, + 0x50, 0x7f, 0xde, 0x44, 0x1f, 0x47, 0xa2, 0xb4, 0x62, 0x7d, 0x32, 0x31, 0xea, 0x06, 0x6a, 0x93, + 0xd8, 0x0c, 0xea, 0x8f, 0x5a, 0xe8, 0x13, 0x07, 0x1e, 0x06, 0xee, 0xc8, 0xb8, 0xa4, 0x02, 0x75, + 0x8b, 0x9c, 0xbd, 0x35, 0x8f, 0x97, 0x75, 0xd5, 0x4b, 0xa8, 0x76, 0x30, 0xe4, 0x90, 0xbc, 0x98, + 0xae, 0xef, 0x62, 0xc0, 0x72, 0x3c, 0x4e, 0x70, 0x4f, 0x5e, 0x7c, 0xfe, 0x43, 0x92, 0x4d, 0xfb, + 0xd2, 0xc0, 0xc8, 0x35, 0xc6, 0x33, 0xd7, 0x49, 0x54, 0xda, 0x6c, 0x83, 0xb9, 0xea, 0x30, 0xf0, + 0x7b, 0x11, 0x9b, 0x2c, 0x85, 0x4b, 0x58, 0x22, 0xd9, 0xf3, 0x3f, 0xeb, 0x0b, 0x6f, 0x47, 0x5f, + 0xdc, 0x32, 0xfc, 0x2f, 0xfb, 0xe2, 0x66, 0xd5, 0xa3, 0xfa, 0x82, 0x71, 0xaf, 0x9a, 0x56, 0x35, + 0x6d, 0xf9, 0x8b, 0xcb, 0x5f, 0xd4, 0xca, 0xcf, 0x56, 0x0c, 0x84, 0x35, 0xf9, 0x1f, 0xf4, 0x85, + 0xd4, 0xa5, 0x2f, 0xa4, 0xad, 0xfa, 0x42, 0x2e, 0xf4, 0x45, 0x3c, 0x89, 0xd2, 0xfd, 0xe7, 0x7d, + 0x31, 0x9f, 0x7a, 0xb3, 0xc7, 0x9e, 0x90, 0x40, 0x0f, 0x38, 0xfa, 0x42, 0x4c, 0xb5, 0x81, 0x53, + 0x68, 0xff, 0x48, 0x1f, 0xd9, 0x17, 0xb3, 0xa0, 0x2f, 0xbe, 0x6e, 0xe9, 0x0b, 0xb7, 0x48, 0x97, + 0xbe, 0x80, 0x56, 0x4f, 0x47, 0xdb, 0x72, 0x6e, 0x25, 0xf2, 0x4d, 0xd0, 0x17, 0x7e, 0xd0, 0x17, + 0x9b, 0x66, 0x63, 0x0f, 0x45, 0xc5, 0x3c, 0xdc, 0x17, 0xa8, 0xd1, 0xaf, 0x17, 0xb9, 0xf4, 0x85, + 0x9c, 0xae, 0x64, 0x29, 0xc9, 0xdb, 0x6e, 0xac, 0xe6, 0xfb, 0x42, 0x89, 0x78, 0x6d, 0x1a, 0xb4, + 0x70, 0x86, 0x3a, 0x0e, 0xfa, 0x84, 0xf6, 0x08, 0x94, 0xee, 0x4f, 0x71, 0x97, 0xa6, 0x05, 0x77, + 0x99, 0x5b, 0xe1, 0x2e, 0x48, 0x39, 0xa6, 0xe9, 0xfa, 0x7d, 0x5c, 0x81, 0x00, 0xf7, 0x40, 0xfd, + 0x78, 0x1c, 0x7e, 0xa6, 0x16, 0xf5, 0xa4, 0xbf, 0xdd, 0xf5, 0x0a, 0xd0, 0x69, 0xcb, 0xa7, 0x2d, + 0x9f, 0x16, 0xdb, 0xb8, 0x15, 0xad, 0x39, 0x8d, 0xd0, 0xfa, 0x9c, 0x9d, 0x9d, 0x3a, 0x5b, 0x27, + 0x85, 0xb6, 0x9b, 0x7d, 0x69, 0x7e, 0xff, 0xf8, 0x47, 0xf7, 0x0c, 0x9d, 0x0b, 0xf2, 0x29, 0xc0, + 0xda, 0x92, 0x08, 0xcb, 0x5e, 0xa5, 0xd4, 0x8c, 0x25, 0x8d, 0xa2, 0x1a, 0xc3, 0xf5, 0xe8, 0xff, + 0x4b, 0x65, 0x01, 0xbe, 0xd7, 0xa8, 0x1f, 0x48, 0xcc, 0x9a, 0x01, 0xda, 0x78, 0x9d, 0x18, 0x7a, + 0x46, 0x4e, 0xfd, 0x91, 0xd0, 0xfe, 0xcb, 0x58, 0x10, 0x3a, 0x0f, 0xa5, 0xe1, 0x51, 0xab, 0x18, + 0x7a, 0x27, 0xf2, 0x44, 0x05, 0xd5, 0x8b, 0x5a, 0xd6, 0xd2, 0x67, 0xa1, 0x10, 0xf6, 0x7c, 0x85, + 0x73, 0xc6, 0x78, 0x40, 0x7f, 0xf0, 0xf6, 0x28, 0xa1, 0x8f, 0xf8, 0x27, 0xbe, 0x67, 0x42, 0xbd, + 0x13, 0x1a, 0xcb, 0x08, 0xf4, 0x8b, 0xc4, 0x50, 0x44, 0xe2, 0xab, 0x2c, 0x35, 0x45, 0x24, 0xa2, + 0x60, 0x09, 0xf2, 0x31, 0xff, 0xb3, 0x9e, 0xf1, 0x71, 0xf4, 0xcc, 0x75, 0xaf, 0xff, 0x27, 0x7a, + 0xe6, 0xd7, 0xcc, 0xbf, 0xea, 0x19, 0x5d, 0xfc, 0x1b, 0xbb, 0xde, 0xd8, 0x05, 0x33, 0xe6, 0xe5, + 0x58, 0xa0, 0xdf, 0xb1, 0x7f, 0x52, 0x5f, 0x66, 0xbc, 0xff, 0x7a, 0xd6, 0xd0, 0xb9, 0xf1, 0x50, + 0xdf, 0x24, 0x3c, 0xa2, 0x6f, 0x84, 0x9e, 0x41, 0x59, 0x7c, 0x5f, 0x97, 0x9e, 0x29, 0x85, 0x9e, + 0x59, 0xdc, 0xaa, 0x67, 0x16, 0xb7, 0xea, 0x19, 0x33, 0xed, 0x19, 0xbe, 0x5f, 0x24, 0x42, 0xcf, + 0xf0, 0xfd, 0xe2, 0xee, 0xd2, 0x33, 0xf2, 0xc4, 0x3b, 0xce, 0x9e, 0x31, 0x39, 0x7b, 0x46, 0xc2, + 0xeb, 0x0d, 0x0a, 0xd2, 0xf4, 0x9a, 0x16, 0xdb, 0xf8, 0x4c, 0x01, 0x91, 0xa9, 0xd0, 0x43, 0x99, + 0x96, 0x8c, 0x80, 0x7b, 0x85, 0x16, 0xf8, 0x7b, 0x0d, 0xf0, 0xfd, 0xc0, 0x5d, 0x4b, 0x75, 0x28, + 0x4d, 0x52, 0xc0, 0xdd, 0x05, 0xb8, 0x8f, 0x12, 0xc2, 0xbf, 0x1e, 0xa2, 0x34, 0xa5, 0x7b, 0xf2, + 0xb6, 0x6b, 0xac, 0xb0, 0xe7, 0xeb, 0x4e, 0x3a, 0x39, 0xa5, 0x27, 0x25, 0x4c, 0x7c, 0x2b, 0xf9, + 0x49, 0x0c, 0xa7, 0xd4, 0x7b, 0x29, 0x74, 0xa4, 0xb7, 0xa5, 0x82, 0xb7, 0x14, 0x63, 0x08, 0x41, + 0x1f, 0xc3, 0xd4, 0x16, 0x33, 0x70, 0x0d, 0xf0, 0xd4, 0x2c, 0xd8, 0x77, 0x42, 0x8f, 0x37, 0x97, + 0x9a, 0x54, 0x4c, 0x08, 0x77, 0xb7, 0xea, 0x03, 0xee, 0x3e, 0xa5, 0x9e, 0xa5, 0x40, 0x3b, 0x13, + 0xb2, 0x59, 0x09, 0xa5, 0x62, 0x72, 0x88, 0x54, 0x19, 0x87, 0x92, 0xfa, 0xd4, 0x0f, 0xeb, 0xce, + 0x50, 0xf4, 0x50, 0xe4, 0xe1, 0x90, 0x43, 0x0e, 0xc0, 0x1c, 0x66, 0x18, 0x62, 0xd5, 0xb2, 0x21, + 0x33, 0x54, 0x90, 0xc2, 0x12, 0x48, 0x61, 0xe4, 0x74, 0x08, 0x9f, 0x10, 0x77, 0x8d, 0xbb, 0xfa, + 0xca, 0xc1, 0x12, 0x11, 0xc6, 0x7a, 0x60, 0xb1, 0x56, 0xd8, 0xc7, 0x0e, 0x85, 0x6f, 0x8e, 0x72, + 0x97, 0xc8, 0x01, 0x87, 0x4b, 0xb0, 0xdc, 0x61, 0x86, 0x40, 0xc2, 0xe3, 0x4d, 0xbd, 0x48, 0xef, + 0x8e, 0x5e, 0xb9, 0x93, 0xb7, 0x5d, 0xb5, 0xe9, 0x25, 0x8e, 0xbc, 0xa9, 0x7d, 0x76, 0x0d, 0xe9, + 0x94, 0x1e, 0x63, 0x88, 0x81, 0xf1, 0x5a, 0xc0, 0x35, 0xd3, 0x32, 0x6f, 0xfb, 0xa5, 0x1e, 0x72, + 0xc9, 0x27, 0x0c, 0x94, 0x9b, 0xf7, 0x4d, 0x8d, 0x72, 0xf0, 0x41, 0xd0, 0xce, 0x4e, 0x0b, 0xfa, + 0xbc, 0xe7, 0xe9, 0xc8, 0xbe, 0x3a, 0x5e, 0xda, 0x4c, 0xa1, 0x2e, 0x14, 0xf6, 0x24, 0x74, 0xc4, + 0x57, 0x95, 0x0f, 0xed, 0x9c, 0x4f, 0xa4, 0x1a, 0x4d, 0x8b, 0xfe, 0xee, 0x55, 0xa0, 0xf8, 0x04, + 0xbd, 0x59, 0x29, 0x4f, 0x43, 0xfc, 0x72, 0x9e, 0xda, 0x4d, 0x43, 0x4f, 0xcc, 0x5d, 0x04, 0x69, + 0x38, 0x59, 0x1a, 0x6d, 0x35, 0x41, 0x06, 0x8e, 0xb6, 0x9c, 0x63, 0x0f, 0x9e, 0x74, 0xb0, 0x11, + 0xf2, 0x2e, 0x84, 0x8e, 0xc0, 0xd0, 0x2d, 0x92, 0x73, 0x8e, 0x3d, 0xf7, 0x96, 0xd0, 0xe8, 0x7b, + 0x5a, 0x4e, 0x88, 0xa8, 0x28, 0xc2, 0x52, 0x81, 0x3b, 0xea, 0x55, 0xb5, 0x06, 0x8b, 0xde, 0x9b, + 0xf7, 0x3f, 0x8d, 0xbb, 0xea, 0x8b, 0x6a, 0xc3, 0x12, 0xd1, 0x06, 0x1a, 0xfa, 0x80, 0xa6, 0x67, + 0x64, 0x9e, 0x0e, 0x3a, 0xd5, 0x19, 0xbf, 0x8f, 0x4b, 0x7c, 0x2f, 0x3e, 0x3e, 0x0d, 0x1f, 0x09, + 0xe1, 0xa1, 0x94, 0x8b, 0x8c, 0xd4, 0x66, 0x84, 0x8c, 0xf7, 0x7f, 0xdd, 0x42, 0xe7, 0xf2, 0xf1, + 0xf5, 0x6e, 0x4a, 0x33, 0xdd, 0x5d, 0x12, 0x68, 0xa5, 0x9f, 0xef, 0x08, 0xbe, 0xc2, 0xf9, 0x3a, + 0x2c, 0x47, 0x8f, 0xd6, 0x45, 0x1a, 0xba, 0xd7, 0x6f, 0xc1, 0x94, 0xf9, 0xba, 0xf0, 0xe5, 0x70, + 0xec, 0xf5, 0xb7, 0xa4, 0x46, 0xfd, 0x5c, 0x6b, 0xe8, 0x49, 0x85, 0x85, 0x2f, 0x47, 0x4b, 0x3b, + 0x09, 0xe1, 0x5b, 0x97, 0x3d, 0x82, 0x96, 0x3d, 0x1c, 0x3d, 0x59, 0x43, 0xc9, 0x1c, 0xf5, 0x86, + 0x3c, 0x5c, 0x4a, 0xdd, 0x1b, 0xbf, 0x3e, 0xb2, 0xe6, 0xbd, 0x5b, 0xc7, 0xfe, 0xf3, 0x5a, 0xf3, + 0xad, 0xdf, 0xaa, 0x97, 0xb4, 0xad, 0x66, 0x0d, 0xb4, 0x82, 0xa1, 0x67, 0x6b, 0xbe, 0xf3, 0xa7, + 0xab, 0x98, 0x03, 0xd5, 0x06, 0x22, 0x44, 0x5c, 0xa4, 0xd1, 0x7b, 0xe3, 0xfc, 0x71, 0xc8, 0x3f, + 0xf2, 0x33, 0x09, 0x6b, 0xd4, 0xb6, 0x56, 0xce, 0xb6, 0x5b, 0x2f, 0xd4, 0x8f, 0xc6, 0xc5, 0x3a, + 0x0d, 0xa1, 0xe3, 0xd6, 0x31, 0x0b, 0x1f, 0x15, 0x17, 0x3d, 0x82, 0xcb, 0x45, 0x10, 0x23, 0x8c, + 0xe2, 0x34, 0x6f, 0x6c, 0xc9, 0x21, 0xd8, 0x92, 0x32, 0x83, 0x91, 0xbf, 0x62, 0x8c, 0x54, 0x23, + 0xca, 0x7a, 0xb7, 0xad, 0x11, 0xfa, 0xaa, 0x76, 0xc6, 0xf5, 0x82, 0xb8, 0x42, 0x0c, 0xec, 0x3b, + 0xfe, 0x8e, 0x8f, 0xe7, 0xc8, 0xdb, 0x35, 0x2e, 0xe2, 0x16, 0xea, 0xff, 0xdb, 0x0b, 0x46, 0x00, + 0x95, 0xc5, 0xb1, 0x7e, 0xc0, 0xdd, 0xb5, 0x1b, 0xdb, 0xce, 0x82, 0x86, 0xd3, 0xbc, 0x6c, 0x03, + 0xcc, 0xbd, 0x26, 0x9e, 0x96, 0x6e, 0xc8, 0xd6, 0xbb, 0xf1, 0x7d, 0x64, 0x30, 0x22, 0x27, 0xa4, + 0x87, 0x99, 0x4f, 0xdf, 0x17, 0x22, 0xaf, 0xc1, 0x9f, 0x11, 0x6d, 0xbc, 0xc6, 0xdd, 0x77, 0x49, + 0x4b, 0x18, 0x69, 0x0d, 0x73, 0x9d, 0x69, 0x35, 0x0b, 0x69, 0x05, 0x3d, 0x94, 0xd6, 0x7d, 0xfa, + 0x5e, 0x89, 0x69, 0x59, 0xd7, 0x11, 0xc6, 0x8e, 0xa7, 0x49, 0x21, 0x40, 0x2f, 0xf8, 0x26, 0x6f, + 0x6b, 0xda, 0xc3, 0x7b, 0xa5, 0x81, 0x59, 0x1e, 0xc4, 0x9d, 0xc3, 0x59, 0xae, 0xe7, 0x77, 0xfa, + 0x73, 0x88, 0xaf, 0xac, 0x07, 0x11, 0xd1, 0x3e, 0xa8, 0x45, 0x3b, 0x19, 0x28, 0x43, 0x5a, 0xdc, + 0x2e, 0x9e, 0xd4, 0x4e, 0x2b, 0x35, 0x6e, 0xae, 0xb0, 0xeb, 0x0a, 0xbc, 0xfc, 0xa3, 0x08, 0xb3, + 0xb9, 0xc2, 0x96, 0xc9, 0x5a, 0x4a, 0x59, 0x78, 0xa3, 0x44, 0x3d, 0x18, 0x52, 0x61, 0x4b, 0x35, + 0x65, 0x13, 0x49, 0x4f, 0xc0, 0xbb, 0x44, 0x26, 0xce, 0xe6, 0x8e, 0x10, 0x39, 0x6b, 0x44, 0x5b, + 0x25, 0xa5, 0x22, 0x56, 0xc6, 0x5f, 0x97, 0x18, 0x97, 0x18, 0x7b, 0x9a, 0x20, 0x8c, 0x91, 0xe0, + 0x1b, 0xb9, 0xd8, 0xc8, 0x5d, 0x20, 0x46, 0xa2, 0x60, 0xfd, 0x31, 0x26, 0xfa, 0xcb, 0x13, 0xde, + 0x5e, 0x87, 0xb7, 0x0c, 0xfa, 0x9a, 0x95, 0xc7, 0x10, 0x77, 0x5b, 0xa8, 0x3c, 0x9b, 0xab, 0x23, + 0x6a, 0x9b, 0x1a, 0x53, 0x09, 0x23, 0xc7, 0x8c, 0xc7, 0x8c, 0x90, 0x56, 0xcc, 0xa3, 0x52, 0xc2, + 0x38, 0x50, 0x7a, 0x37, 0xd2, 0xc1, 0xee, 0xf0, 0x95, 0x4b, 0x38, 0x63, 0xb1, 0x48, 0xf5, 0x24, + 0xef, 0xf3, 0x59, 0xf0, 0x03, 0x12, 0xa4, 0xcc, 0x21, 0x2a, 0x5d, 0x0e, 0x50, 0x2c, 0x50, 0x5a, + 0xf4, 0xf9, 0xac, 0xce, 0x26, 0x01, 0xca, 0x6c, 0xe2, 0xa7, 0xea, 0x41, 0x94, 0xb8, 0x6a, 0xc0, + 0xea, 0x21, 0xa1, 0x52, 0x6b, 0x54, 0x52, 0xf3, 0xc7, 0x08, 0xaa, 0x93, 0x6f, 0xa2, 0x7b, 0xe7, + 0x22, 0x7b, 0x3e, 0xd5, 0xb3, 0x1f, 0xeb, 0xd4, 0xb3, 0xf7, 0xa5, 0x3a, 0x41, 0x32, 0x5e, 0x13, + 0xff, 0x4a, 0x23, 0xc5, 0x00, 0x21, 0xae, 0xf3, 0xc3, 0x10, 0xee, 0x98, 0x1b, 0x4a, 0x6b, 0xf2, + 0x86, 0xe6, 0xd5, 0xc0, 0x3b, 0xe7, 0xe1, 0x6e, 0x12, 0x7a, 0x92, 0xa3, 0xbf, 0x62, 0xbd, 0x2c, + 0x22, 0x8d, 0x3f, 0x4d, 0xbd, 0x32, 0xdf, 0x55, 0x3f, 0x9f, 0x0d, 0x13, 0x52, 0x17, 0xf4, 0xfc, + 0xaf, 0x2c, 0xfb, 0xcb, 0xb8, 0xa9, 0x3c, 0xcf, 0xec, 0xf0, 0x1c, 0x6d, 0xc0, 0xfa, 0x6a, 0xa0, + 0xbe, 0x0c, 0xd6, 0x57, 0xdd, 0x83, 0x8c, 0xd0, 0x61, 0x7d, 0x61, 0x75, 0x54, 0x09, 0xf5, 0xd5, + 0xe4, 0xf0, 0xf5, 0x55, 0x63, 0x7d, 0xdd, 0x1c, 0xbb, 0x60, 0x57, 0xe2, 0x05, 0x2c, 0xe6, 0x06, + 0xb5, 0x05, 0x4c, 0x4c, 0xf9, 0xc1, 0x60, 0x7e, 0x14, 0x0f, 0x68, 0xba, 0xe2, 0x97, 0xbc, 0x14, + 0x46, 0xa6, 0x18, 0x56, 0x6e, 0x19, 0xd5, 0xa5, 0xa7, 0xe7, 0xa8, 0x86, 0x54, 0x9c, 0x4f, 0x89, + 0x4d, 0x3f, 0x1c, 0x4e, 0x5e, 0x62, 0x48, 0x75, 0x9e, 0x6b, 0x4a, 0xf9, 0xaf, 0x70, 0x27, 0xb6, + 0xe4, 0x08, 0xf8, 0x6e, 0x89, 0x90, 0x1e, 0x3f, 0x92, 0x31, 0x2d, 0x49, 0x4b, 0x78, 0xc4, 0x3a, + 0x18, 0x5a, 0xc0, 0x57, 0x4b, 0x50, 0x22, 0xf7, 0x51, 0x39, 0x25, 0x2f, 0x49, 0x4d, 0x4d, 0x85, + 0x70, 0x69, 0xf0, 0x9e, 0x45, 0x4b, 0x45, 0xae, 0x69, 0x6e, 0xfb, 0xa1, 0x50, 0xa8, 0x81, 0x08, + 0x6a, 0x60, 0x84, 0x18, 0x6e, 0x0f, 0xa7, 0x3d, 0xa0, 0xe9, 0x07, 0x25, 0x9f, 0xfb, 0xa3, 0xbe, + 0x26, 0x2f, 0x4d, 0x4d, 0x4d, 0xe3, 0x4b, 0x66, 0x80, 0x74, 0xc4, 0x34, 0x1d, 0x97, 0x5a, 0x63, + 0x28, 0x47, 0x9d, 0xeb, 0xcf, 0xb6, 0x2e, 0x67, 0xcb, 0x37, 0x28, 0x25, 0x5f, 0x46, 0x29, 0x4d, + 0x27, 0xb4, 0x35, 0xd6, 0x34, 0x3c, 0xdd, 0x1a, 0x67, 0xd6, 0x6f, 0x75, 0x94, 0x84, 0x96, 0x4a, + 0x28, 0x4d, 0x78, 0x2a, 0x7f, 0x7a, 0x5e, 0x5f, 0xea, 0xec, 0x5d, 0x39, 0xfa, 0x7a, 0x12, 0x80, + 0xf0, 0xbe, 0xd0, 0xfe, 0xfb, 0x73, 0xba, 0xff, 0xc5, 0xf9, 0x4e, 0xd7, 0xff, 0xf0, 0x7c, 0xa7, + 0xab, 0x70, 0xbe, 0xd3, 0xf5, 0xbf, 0x3e, 0xdf, 0xa1, 0xde, 0xe8, 0xdc, 0x6b, 0xd6, 0x10, 0x5f, + 0x9b, 0x06, 0xbe, 0xfb, 0xc1, 0x68, 0x0e, 0xb0, 0xf9, 0x96, 0xf8, 0x2a, 0xf9, 0x33, 0x95, 0x69, + 0xb4, 0x6d, 0x7c, 0x95, 0x15, 0xfc, 0x59, 0x0b, 0x70, 0xb7, 0x42, 0x5b, 0xf1, 0xa7, 0xb6, 0x54, + 0xa6, 0x6b, 0x2c, 0xee, 0x91, 0xe9, 0x81, 0x6e, 0x24, 0x16, 0xdc, 0x89, 0xc2, 0xd3, 0x47, 0x15, + 0xe0, 0x7e, 0x26, 0x57, 0x98, 0x0f, 0xb9, 0x44, 0x49, 0x92, 0x80, 0xa6, 0xf4, 0x45, 0xdd, 0x6d, + 0x3d, 0xfa, 0x3c, 0x31, 0x6b, 0x73, 0x49, 0x27, 0xa5, 0xc9, 0x69, 0x07, 0xd9, 0xbd, 0x66, 0x1d, + 0x9e, 0xb4, 0x8b, 0xef, 0x86, 0xc9, 0xfb, 0xa2, 0x5e, 0x90, 0x19, 0xd3, 0x01, 0x8a, 0x73, 0x04, + 0xea, 0x39, 0xd7, 0x99, 0xd3, 0x8c, 0xe1, 0x03, 0x4f, 0x1c, 0x4a, 0xb3, 0x5a, 0xcd, 0xc3, 0xa8, + 0xb6, 0xac, 0x35, 0x66, 0x18, 0xd5, 0x19, 0xef, 0x1f, 0x43, 0x22, 0x81, 0xe2, 0xff, 0x90, 0x24, + 0xd9, 0x15, 0xd4, 0x86, 0x30, 0xdc, 0xd9, 0xd0, 0x66, 0xbc, 0x8c, 0x95, 0x96, 0xc8, 0x80, 0x9e, + 0x93, 0xea, 0xa5, 0x61, 0x4f, 0xbb, 0x50, 0x73, 0xc8, 0x45, 0x18, 0x93, 0xb7, 0x35, 0x1b, 0xa9, + 0xb5, 0x25, 0x8b, 0x5e, 0x6a, 0x4d, 0xc0, 0x94, 0xc2, 0x62, 0x20, 0xbf, 0x24, 0xcb, 0xb8, 0x4a, + 0xb4, 0x90, 0x84, 0x3a, 0x34, 0x68, 0x7d, 0xff, 0x0e, 0xb5, 0xfc, 0x9b, 0x41, 0x77, 0x11, 0xc7, + 0x0a, 0xba, 0xab, 0xee, 0xd6, 0x22, 0x62, 0xc4, 0x73, 0xcb, 0x30, 0x23, 0x0d, 0xed, 0xee, 0xd0, + 0x62, 0x15, 0xce, 0x2d, 0xb1, 0x24, 0xbe, 0x25, 0xb4, 0x1c, 0x76, 0x29, 0x3d, 0x2f, 0xc5, 0x5d, + 0x3b, 0x69, 0xeb, 0xf1, 0x09, 0x69, 0xd7, 0x02, 0xbd, 0x2e, 0x75, 0xec, 0xbd, 0x85, 0x15, 0x91, + 0x14, 0x83, 0xa7, 0xa5, 0x96, 0x89, 0xa3, 0x7e, 0x05, 0x70, 0x27, 0x8e, 0xee, 0x82, 0xad, 0x1e, + 0x21, 0xf8, 0x29, 0xc0, 0x9c, 0x81, 0x17, 0x13, 0x76, 0xf7, 0x38, 0xd4, 0xf7, 0xb5, 0x4c, 0x28, + 0x76, 0xec, 0x64, 0x49, 0xa8, 0x14, 0x57, 0x8a, 0x4e, 0x9e, 0x3a, 0x1b, 0xfb, 0x61, 0x48, 0x65, + 0xa8, 0xcf, 0x90, 0x17, 0x07, 0xb6, 0xec, 0xe7, 0xca, 0x28, 0x6f, 0x03, 0x7c, 0x1d, 0xf0, 0x2a, + 0xe9, 0xf4, 0x8d, 0x87, 0xf0, 0x94, 0x21, 0xcc, 0x75, 0x7e, 0xb7, 0x53, 0xb0, 0x94, 0x6c, 0x29, + 0x3d, 0x8d, 0xfb, 0x88, 0xd0, 0x1a, 0x96, 0x66, 0x5a, 0x46, 0x0b, 0xac, 0x67, 0x71, 0xc9, 0x0b, + 0x23, 0x8b, 0x48, 0x3a, 0x5a, 0x01, 0xf8, 0xf6, 0x10, 0x94, 0x37, 0xe3, 0xdc, 0x4b, 0xd8, 0x62, + 0x1a, 0x59, 0xf5, 0xdc, 0xea, 0xb9, 0x9a, 0x84, 0x57, 0xf7, 0xbf, 0xba, 0x3f, 0xe6, 0x37, 0x0b, + 0xee, 0xea, 0x9a, 0x19, 0x19, 0xb5, 0xd4, 0x93, 0x12, 0xdb, 0x98, 0x4d, 0x62, 0x7e, 0x82, 0xd2, + 0xe2, 0xae, 0xab, 0x0b, 0x4e, 0x01, 0xfe, 0x29, 0x23, 0x79, 0x11, 0xdd, 0xb3, 0x95, 0x63, 0x39, + 0xea, 0x8a, 0x48, 0x26, 0xdf, 0xc6, 0xf4, 0x9d, 0x24, 0x79, 0x19, 0xbc, 0xb1, 0xd1, 0x37, 0xc5, + 0xc0, 0x0f, 0x5a, 0x48, 0xb9, 0xb0, 0x83, 0x8b, 0x92, 0x05, 0x3a, 0x5a, 0x1e, 0xe4, 0xdd, 0xb0, + 0xed, 0x64, 0x82, 0x64, 0xca, 0xa5, 0x72, 0x15, 0xbf, 0xbb, 0xef, 0x82, 0xb9, 0x16, 0xd1, 0xfd, + 0x56, 0x9a, 0x83, 0xc6, 0x48, 0xef, 0x21, 0x65, 0x9d, 0xd1, 0x91, 0x06, 0xf2, 0x43, 0x80, 0x5b, + 0xf8, 0x5f, 0x79, 0x5d, 0x3c, 0xa5, 0xa7, 0x7c, 0xea, 0x92, 0x79, 0x6a, 0xc6, 0x25, 0x35, 0xa9, + 0x6b, 0xdb, 0x40, 0xbb, 0x44, 0xe2, 0xfe, 0x2a, 0xf5, 0x9f, 0x8a, 0xfb, 0xac, 0xa5, 0xd9, 0x22, + 0xcb, 0xf3, 0x0d, 0xad, 0x3d, 0x4a, 0xe0, 0x18, 0x0c, 0x6b, 0x5d, 0x16, 0x61, 0x87, 0x35, 0x05, + 0x00, 0x39, 0xbd, 0x6c, 0x80, 0x62, 0xe7, 0x79, 0xb7, 0xaa, 0x0d, 0x3f, 0xa6, 0xa3, 0x67, 0xae, + 0xd4, 0x0f, 0x2c, 0xae, 0xb2, 0xe8, 0x1d, 0x02, 0x7d, 0x0b, 0xa9, 0xf2, 0x08, 0xca, 0x5f, 0xd0, + 0x15, 0x15, 0xae, 0x7e, 0x11, 0xe8, 0x87, 0x20, 0x96, 0x30, 0x61, 0xd9, 0x44, 0x3e, 0x00, 0xda, + 0x99, 0xc9, 0x16, 0xc5, 0x97, 0x11, 0x56, 0x13, 0xd5, 0x72, 0x36, 0xad, 0x40, 0x2a, 0xc7, 0x52, + 0xfb, 0x5d, 0xed, 0xd6, 0xf9, 0xf9, 0xbe, 0x1a, 0x5f, 0xd6, 0x6b, 0xe0, 0xcd, 0x86, 0xe6, 0xed, + 0x87, 0x8b, 0xc4, 0xda, 0x64, 0x61, 0x4d, 0x3f, 0xa6, 0xb4, 0xc2, 0x1c, 0x34, 0xe1, 0x1c, 0xb4, + 0xc6, 0x02, 0x3e, 0xf5, 0x83, 0x72, 0xf8, 0xeb, 0xc5, 0x2d, 0xeb, 0x2c, 0xbf, 0x5a, 0xfe, 0xa1, + 0xa0, 0xd2, 0xa7, 0x7e, 0xbc, 0xdc, 0x20, 0xa5, 0x8a, 0x38, 0xd4, 0x01, 0x32, 0xbd, 0x87, 0x5a, + 0x3e, 0xfc, 0xda, 0xde, 0xc4, 0x6b, 0xe8, 0x39, 0x52, 0x09, 0x78, 0x38, 0x95, 0xa6, 0x03, 0x4a, + 0x4c, 0x43, 0xd0, 0xe4, 0x84, 0x91, 0x20, 0x0b, 0xcb, 0x21, 0x72, 0xa7, 0xf4, 0x10, 0x86, 0x40, + 0x39, 0x3d, 0x3f, 0x9a, 0xce, 0x1a, 0x12, 0x60, 0x9f, 0x4c, 0x53, 0xf3, 0x87, 0xd4, 0xfc, 0x1e, + 0x91, 0x5a, 0x39, 0xa5, 0x0f, 0x9d, 0xa5, 0x76, 0xa5, 0x0d, 0x68, 0x8d, 0x56, 0x0b, 0x25, 0x66, + 0x2c, 0x15, 0x7e, 0x1a, 0xf2, 0xa4, 0x65, 0xda, 0xb1, 0x5c, 0x12, 0xad, 0xb4, 0xb6, 0x58, 0x0e, + 0xc1, 0xef, 0x6a, 0x94, 0x6f, 0x72, 0x73, 0xf0, 0x8e, 0x4a, 0xab, 0xe0, 0x15, 0x6d, 0x0f, 0xed, + 0x8d, 0xa0, 0xe4, 0xe7, 0xa9, 0x76, 0x17, 0x50, 0x72, 0xac, 0x91, 0xd2, 0x8c, 0x8a, 0x92, 0x76, + 0xf1, 0xa2, 0xda, 0x69, 0x80, 0x61, 0x52, 0x36, 0x55, 0xd8, 0x94, 0x48, 0x47, 0xc1, 0xbd, 0x68, + 0x91, 0xb1, 0x67, 0xcc, 0x5f, 0xd2, 0x50, 0x32, 0xa1, 0xbd, 0xb7, 0x39, 0x57, 0x1b, 0xd1, 0x9f, + 0x59, 0xdd, 0xfa, 0x7f, 0x43, 0xc2, 0xe4, 0x3f, 0xf5, 0x4c, 0xc2, 0x8d, 0x70, 0xf5, 0x4c, 0xc2, + 0xe5, 0xff, 0x67, 0x9e, 0x49, 0xb8, 0xa8, 0xff, 0xff, 0x94, 0x84, 0x10, 0xfc, 0xa4, 0xf5, 0x75, + 0xcc, 0x4c, 0x98, 0x89, 0x2a, 0xf4, 0xe6, 0xc4, 0x04, 0xd3, 0x99, 0x19, 0x50, 0xa2, 0xd8, 0x54, + 0x61, 0xcf, 0x14, 0x3c, 0x93, 0x4c, 0x31, 0x55, 0xc1, 0xbb, 0x4e, 0xa6, 0x2a, 0x5e, 0xe2, 0xb1, + 0xff, 0x1d, 0x15, 0xc9, 0x58, 0x60, 0x2f, 0x81, 0xb5, 0x25, 0x18, 0x2d, 0x99, 0xc3, 0x1a, 0x24, + 0x56, 0x9a, 0x50, 0xf6, 0x66, 0x29, 0x50, 0xd5, 0x71, 0x80, 0x5d, 0x50, 0x82, 0x18, 0x53, 0xa1, + 0x76, 0x82, 0x18, 0xa6, 0x02, 0x63, 0xc3, 0x9d, 0x92, 0xa9, 0x68, 0x91, 0x9a, 0xa4, 0xda, 0x98, + 0xa1, 0x30, 0x8b, 0xbc, 0x50, 0x0e, 0xe3, 0x92, 0x85, 0x1f, 0xef, 0x19, 0x15, 0x7c, 0x68, 0x7c, + 0xcf, 0x4b, 0x68, 0xb0, 0xb2, 0x62, 0x5f, 0xfe, 0x1d, 0x53, 0x81, 0x23, 0x79, 0x84, 0xc4, 0xa9, + 0x49, 0xd9, 0x40, 0x75, 0x82, 0x01, 0x17, 0x09, 0x2b, 0xac, 0x4a, 0x19, 0xaf, 0x06, 0xfa, 0x9d, + 0x89, 0x05, 0x4a, 0xd6, 0x4b, 0x19, 0x8b, 0x34, 0x2c, 0x60, 0x1b, 0x89, 0x16, 0xc6, 0x3c, 0xd0, + 0xb4, 0x7e, 0xfa, 0x1c, 0x58, 0xad, 0xa3, 0xe0, 0xb7, 0x13, 0x09, 0x0f, 0xd5, 0x93, 0xa8, 0xf3, + 0xf3, 0xb4, 0x1e, 0x69, 0xb3, 0xd0, 0xaa, 0x16, 0xf5, 0x75, 0x6d, 0xd4, 0xc8, 0xd2, 0x66, 0x52, + 0x1c, 0x32, 0x00, 0x71, 0x08, 0xc4, 0x87, 0xd9, 0x5d, 0xd2, 0x7e, 0x13, 0xca, 0xcf, 0x65, 0xf3, + 0x2d, 0x61, 0xf7, 0x85, 0x2b, 0xb4, 0x8c, 0x8d, 0x48, 0xe6, 0x02, 0x7d, 0xf9, 0x16, 0x13, 0x8f, + 0xda, 0xf6, 0xe2, 0x6f, 0x6c, 0x72, 0xb4, 0x43, 0x2f, 0x94, 0x17, 0xfd, 0xb4, 0xac, 0x25, 0x4a, + 0x7a, 0xd2, 0xc5, 0xd3, 0x74, 0xf0, 0xad, 0x15, 0x27, 0x8c, 0xb6, 0xb9, 0xcc, 0x29, 0x0b, 0x42, + 0x5f, 0x86, 0x31, 0xe7, 0x4e, 0x2d, 0x07, 0xe3, 0x1b, 0x94, 0xc6, 0x33, 0x39, 0xb5, 0x13, 0xf1, + 0x0d, 0xd3, 0x52, 0x1a, 0x8a, 0xb3, 0x5f, 0x06, 0x2a, 0x24, 0xfc, 0x74, 0x03, 0xe9, 0x84, 0x92, + 0x16, 0xfc, 0xee, 0x3b, 0xb5, 0xf3, 0xf4, 0x9a, 0xd2, 0xea, 0x68, 0x7d, 0xaa, 0x49, 0x4f, 0x6d, + 0x16, 0xb0, 0xc4, 0xad, 0xe1, 0xbf, 0x2f, 0xdf, 0xfd, 0xd5, 0x6d, 0xcb, 0x77, 0x3f, 0xbf, 0x6d, + 0xf9, 0xee, 0x57, 0x24, 0x5c, 0x23, 0x22, 0x2c, 0x99, 0xe9, 0x15, 0xb4, 0xe8, 0x43, 0x57, 0x26, + 0x58, 0xcf, 0x1c, 0xbb, 0xe2, 0xb8, 0xef, 0x47, 0x2d, 0x1a, 0xe8, 0x09, 0x9b, 0xd0, 0x74, 0x3f, + 0x3b, 0x79, 0x31, 0x60, 0x46, 0xb9, 0x32, 0x01, 0xb0, 0xe4, 0x03, 0xf4, 0x27, 0x89, 0xda, 0x3f, + 0xf0, 0xad, 0x3c, 0x79, 0x31, 0x7a, 0x5e, 0xc3, 0xdd, 0xef, 0x47, 0x94, 0xd7, 0x8f, 0xf5, 0x72, + 0xe6, 0x2b, 0x15, 0xf2, 0x95, 0xb5, 0x2e, 0xdb, 0xc0, 0xa6, 0x3f, 0xea, 0x78, 0xbd, 0x4a, 0x65, + 0xbc, 0x60, 0xeb, 0x0d, 0xa5, 0x0b, 0x1d, 0xb1, 0xfc, 0x05, 0xbc, 0x7f, 0x4c, 0xa7, 0x25, 0xe1, + 0x13, 0x48, 0x80, 0x96, 0x44, 0x52, 0xbd, 0x9c, 0xd7, 0xe8, 0x5b, 0x0b, 0x60, 0x58, 0x6c, 0xb3, + 0xf5, 0x4a, 0x02, 0xad, 0x2d, 0xa1, 0xf7, 0xef, 0xd2, 0x3d, 0x99, 0xe8, 0xba, 0xa4, 0x12, 0x12, + 0xa6, 0x25, 0x7d, 0x61, 0xac, 0xa4, 0xac, 0x98, 0xa6, 0xf4, 0xe0, 0xcf, 0xc0, 0xeb, 0xe8, 0x2e, + 0x01, 0xdd, 0x21, 0x8d, 0x02, 0xdc, 0x34, 0x62, 0x51, 0x05, 0x23, 0xe2, 0x77, 0x32, 0xeb, 0x06, + 0xd2, 0x15, 0x17, 0x53, 0x95, 0x09, 0x3d, 0x62, 0x72, 0xf4, 0x48, 0x4b, 0x2e, 0x8c, 0x9b, 0x70, + 0xff, 0x2e, 0xf5, 0x25, 0xf0, 0x32, 0xd0, 0x25, 0xb8, 0x02, 0xd4, 0xb6, 0xf4, 0x90, 0x50, 0x5e, + 0x25, 0x6f, 0x6f, 0x5f, 0x74, 0xcb, 0x59, 0x13, 0x81, 0x9b, 0xfc, 0x43, 0xa6, 0xf3, 0x18, 0x32, + 0x3b, 0x16, 0xad, 0xff, 0x27, 0x02, 0xf5, 0x80, 0x67, 0x6c, 0x68, 0xbb, 0xd7, 0x13, 0xb5, 0x23, + 0xd0, 0x0b, 0xd2, 0x90, 0xca, 0xd8, 0xab, 0xf4, 0x1b, 0xcb, 0x8f, 0x1a, 0x6a, 0x6b, 0x17, 0xed, + 0x03, 0x7b, 0xd1, 0x13, 0xdc, 0x65, 0xd4, 0xf6, 0x92, 0x14, 0x00, 0xfa, 0x05, 0xe3, 0x50, 0x7d, + 0xd5, 0x97, 0x71, 0x27, 0x97, 0x6a, 0xd0, 0x22, 0x55, 0xe2, 0xd3, 0x12, 0x56, 0x28, 0x95, 0xc0, + 0x6b, 0x36, 0xcd, 0x15, 0x46, 0x22, 0x1f, 0x5a, 0x4a, 0x2d, 0xc0, 0x5a, 0x30, 0x15, 0xdc, 0xc5, + 0x1e, 0x36, 0x0d, 0xd2, 0x16, 0x51, 0x4a, 0x8b, 0xc5, 0x7a, 0xe9, 0x63, 0x08, 0x9b, 0xbc, 0x0c, + 0x4a, 0x23, 0xd6, 0xf9, 0xa4, 0xcf, 0xe6, 0xf3, 0xd1, 0x7b, 0x42, 0xcf, 0x23, 0x37, 0x84, 0xdf, + 0x13, 0xf9, 0x3c, 0x2c, 0x80, 0xfb, 0xa8, 0x0c, 0x82, 0x1b, 0x6d, 0x0d, 0x47, 0x89, 0x5a, 0xd5, + 0xba, 0xc9, 0x6f, 0xd8, 0x8b, 0x50, 0x1a, 0xb4, 0x11, 0x23, 0xd2, 0x7b, 0xd0, 0x5c, 0xbc, 0x04, + 0x4d, 0x5d, 0x2c, 0x0d, 0x6a, 0xe8, 0xfe, 0xa1, 0xf7, 0x40, 0xaa, 0x86, 0xfa, 0x93, 0x80, 0x6f, + 0xd1, 0x80, 0x9a, 0x9e, 0x4b, 0x08, 0xf3, 0x19, 0x1e, 0x63, 0x90, 0x47, 0x25, 0xa5, 0x27, 0x87, + 0xc5, 0x1c, 0xfb, 0xaa, 0x7f, 0x22, 0x49, 0x3a, 0x9f, 0x6c, 0xf9, 0x0a, 0xcf, 0x97, 0x70, 0xe7, + 0x48, 0xef, 0x15, 0xd3, 0x74, 0x6f, 0x38, 0x9e, 0xf6, 0xf2, 0xbb, 0xe6, 0x51, 0xd0, 0xa3, 0x96, + 0xbd, 0x7c, 0xcf, 0xe0, 0x79, 0x36, 0xe6, 0x32, 0xb0, 0xe9, 0xde, 0x50, 0xda, 0x6a, 0x1e, 0xce, + 0x3c, 0x83, 0x20, 0x4f, 0x58, 0x57, 0x86, 0xf2, 0x7b, 0xbf, 0x80, 0x4b, 0x84, 0xdd, 0x34, 0xc4, + 0xd8, 0x51, 0xd4, 0x33, 0x9c, 0x87, 0x60, 0x27, 0x59, 0x28, 0x63, 0xb1, 0x88, 0x89, 0x05, 0xbe, + 0xe4, 0x6f, 0x66, 0xdd, 0x3d, 0xb4, 0x69, 0x25, 0x87, 0x95, 0xdb, 0x47, 0x29, 0xa7, 0xf3, 0x7e, + 0x07, 0xdc, 0xbb, 0xb7, 0xba, 0x97, 0x38, 0xef, 0x7d, 0x1c, 0xf7, 0x4e, 0x6a, 0x2b, 0x90, 0xe7, + 0x66, 0x5c, 0x01, 0x7d, 0x2a, 0x0a, 0x9e, 0x7f, 0x79, 0x2b, 0xa0, 0xbc, 0x4d, 0xcd, 0x55, 0xbc, + 0xc7, 0xc7, 0x16, 0x9b, 0x9b, 0xc2, 0xaa, 0xfd, 0xda, 0xa3, 0xde, 0x3e, 0x28, 0xc3, 0xb7, 0xc9, + 0x43, 0xb8, 0x46, 0xdc, 0x97, 0xc7, 0x7d, 0x75, 0x65, 0x01, 0x91, 0xab, 0x7a, 0x48, 0x0f, 0x29, + 0x35, 0x64, 0x15, 0xac, 0x2e, 0xab, 0x81, 0xcf, 0x5a, 0x4e, 0xa5, 0x6a, 0x15, 0xca, 0xc1, 0x4f, + 0xc7, 0x10, 0x29, 0x3e, 0xc3, 0x9d, 0x91, 0xca, 0x38, 0x23, 0xc8, 0x27, 0x78, 0x9f, 0x9c, 0x1e, + 0x1c, 0xcb, 0x35, 0xa2, 0x46, 0x51, 0xb0, 0x91, 0xbb, 0xaf, 0xcc, 0xa6, 0xbb, 0x63, 0x8d, 0x7a, + 0x19, 0xac, 0x58, 0x9d, 0xf0, 0x4c, 0x5d, 0x15, 0xc2, 0x5d, 0x55, 0x87, 0x70, 0x37, 0x70, 0xd7, + 0x09, 0x7d, 0x08, 0x63, 0x08, 0xdc, 0xa1, 0xe8, 0x66, 0x91, 0xee, 0x70, 0x60, 0x7b, 0x82, 0x3e, + 0x5b, 0x51, 0xff, 0x3c, 0x1c, 0xed, 0x9f, 0xd9, 0x6d, 0xd4, 0xfb, 0x90, 0x88, 0xfa, 0xb9, 0xf7, + 0x37, 0x7d, 0x08, 0x2b, 0x5d, 0xbe, 0xf4, 0xc4, 0xe2, 0xfd, 0xb0, 0x02, 0x29, 0xa8, 0x64, 0xef, + 0x4c, 0x35, 0xae, 0xb5, 0x16, 0x26, 0x5f, 0xf0, 0x01, 0x1a, 0xed, 0xf4, 0x01, 0xaa, 0xe2, 0xe5, + 0xf3, 0x05, 0xdf, 0x7f, 0xe8, 0x49, 0x52, 0x85, 0xbe, 0x42, 0x9d, 0xbe, 0x65, 0x1d, 0xbe, 0x81, + 0x71, 0xc5, 0x94, 0xd1, 0xb0, 0x53, 0x5e, 0x39, 0xc8, 0x78, 0xe3, 0xba, 0xcc, 0xb7, 0x33, 0xb4, + 0xc6, 0x1e, 0x3c, 0x65, 0xd0, 0xe0, 0x29, 0x03, 0xb4, 0x86, 0x3a, 0x84, 0x28, 0xd4, 0xf9, 0xb0, + 0x8e, 0x06, 0x13, 0x56, 0x1b, 0x2c, 0x3d, 0xa4, 0x0a, 0x96, 0xee, 0xd1, 0x05, 0x4b, 0xf7, 0x51, + 0xab, 0x7e, 0xa2, 0x12, 0x02, 0xab, 0x49, 0x0e, 0x91, 0xe8, 0xf2, 0x80, 0x5f, 0x80, 0x35, 0x1e, + 0x5a, 0x60, 0x4f, 0xb1, 0x4f, 0xdd, 0x74, 0xb8, 0x1e, 0x32, 0x7d, 0xc0, 0xd5, 0x95, 0xc8, 0x8f, + 0x4d, 0x87, 0x96, 0x39, 0x11, 0x5c, 0x4e, 0x2e, 0x7f, 0x14, 0xc0, 0x9d, 0x86, 0x77, 0xe7, 0x00, + 0x2e, 0x5a, 0x3f, 0xe0, 0xf6, 0xc0, 0xea, 0xd3, 0x49, 0x90, 0xbf, 0xf7, 0x77, 0x58, 0x55, 0x6d, + 0xf1, 0xc8, 0xae, 0x22, 0x2a, 0xd4, 0xfc, 0x6a, 0x12, 0x3c, 0x1e, 0x01, 0x3d, 0xd1, 0xa3, 0x80, + 0xdb, 0x43, 0x64, 0x13, 0xb8, 0x11, 0xb3, 0x82, 0xe3, 0xb8, 0x7d, 0x5a, 0x9f, 0x67, 0x67, 0x15, + 0xcb, 0xcf, 0x55, 0xa0, 0xd4, 0xd1, 0x26, 0x76, 0x20, 0xca, 0xc7, 0x66, 0xb3, 0x46, 0x8a, 0x3b, + 0xa5, 0xb8, 0xaf, 0x88, 0x74, 0x3b, 0x6a, 0x95, 0x29, 0x22, 0x64, 0xd4, 0x4a, 0x8a, 0x9c, 0xa0, + 0xe6, 0x22, 0xd2, 0xb4, 0xb1, 0x0d, 0xa4, 0xfd, 0xf1, 0xfd, 0xc7, 0xf7, 0x77, 0xfb, 0x80, 0xbb, + 0xbb, 0x8f, 0x0c, 0xad, 0x64, 0x64, 0x75, 0x95, 0x75, 0x15, 0x25, 0xa2, 0x1e, 0xd3, 0x64, 0x44, + 0x09, 0x79, 0x40, 0x7d, 0xe4, 0xc1, 0x05, 0xdc, 0x3e, 0xae, 0x1e, 0xfa, 0xb5, 0x21, 0xf6, 0x1a, + 0xf4, 0x6d, 0x22, 0x77, 0x15, 0xbd, 0xf2, 0xc2, 0xf5, 0x86, 0xd0, 0xbf, 0xf5, 0x8e, 0xfe, 0x55, + 0x93, 0x94, 0x05, 0xc5, 0x5c, 0xcd, 0x0c, 0xdb, 0xcc, 0x60, 0x13, 0x57, 0x47, 0xbd, 0x09, 0x1f, + 0x62, 0x20, 0x15, 0xde, 0xca, 0xf3, 0x83, 0x32, 0x95, 0xb7, 0x74, 0x3a, 0x21, 0xd2, 0x7a, 0xc6, + 0x29, 0xab, 0xfc, 0xe0, 0x50, 0xcc, 0x2f, 0xd2, 0xd3, 0xca, 0xa4, 0x16, 0x6f, 0xe1, 0x2e, 0xdf, + 0xf6, 0xf2, 0x76, 0x04, 0x97, 0x1e, 0x00, 0x5a, 0x09, 0x4f, 0x24, 0x96, 0x0b, 0x27, 0x12, 0x37, + 0x90, 0xa6, 0xd1, 0x09, 0x7d, 0x42, 0xcf, 0x38, 0x0a, 0x81, 0x2a, 0xd0, 0x10, 0x56, 0xa5, 0x91, + 0x1e, 0xd2, 0x64, 0x4b, 0x6b, 0xd5, 0xd9, 0xd2, 0x3d, 0xd4, 0xe6, 0x0a, 0xf5, 0x9c, 0x2d, 0xd0, + 0x53, 0x84, 0x78, 0x41, 0xeb, 0x46, 0x66, 0x8e, 0xa5, 0xf7, 0xe8, 0x05, 0xee, 0x6a, 0x66, 0x18, + 0xbd, 0x17, 0xc3, 0xfd, 0xc7, 0x99, 0xbe, 0xf4, 0x5e, 0x64, 0x23, 0xa2, 0x3d, 0xb0, 0xea, 0x57, + 0xd3, 0x27, 0x37, 0xf8, 0xb2, 0x8e, 0xde, 0x49, 0xe0, 0xfd, 0x7a, 0xd6, 0xf1, 0xe4, 0x01, 0xef, + 0x0f, 0x64, 0x11, 0xb2, 0x95, 0x3e, 0xa1, 0xef, 0xe5, 0x7d, 0xf4, 0xce, 0x13, 0x42, 0xcd, 0x86, + 0x50, 0x7b, 0xe9, 0x53, 0x3b, 0xc8, 0x8f, 0x64, 0xaa, 0xe9, 0xbd, 0x1c, 0xc2, 0x9c, 0x80, 0x18, + 0x7b, 0xe8, 0x13, 0xda, 0xe7, 0x39, 0x46, 0xef, 0x7c, 0x21, 0x46, 0x3a, 0xc4, 0x38, 0x4c, 0x9f, + 0xda, 0xa3, 0xed, 0xa3, 0x2c, 0x22, 0x12, 0xd3, 0x27, 0x3f, 0x78, 0x42, 0xaf, 0xe7, 0xd4, 0x22, + 0xb7, 0x28, 0x14, 0x56, 0x09, 0xb4, 0x7b, 0x8c, 0x72, 0xbe, 0x80, 0x43, 0xe1, 0x49, 0xe6, 0x7c, + 0xf2, 0x82, 0x14, 0x9a, 0x9c, 0x4f, 0x62, 0x78, 0xba, 0xea, 0x7c, 0xf2, 0x84, 0xa7, 0xf3, 0xc2, + 0x53, 0x1e, 0x7d, 0xaa, 0x83, 0x19, 0x27, 0x43, 0x6f, 0xee, 0xca, 0x4a, 0xf4, 0x25, 0x86, 0x4f, + 0xca, 0x35, 0xa4, 0x1c, 0xcb, 0x2d, 0xdc, 0x57, 0xc0, 0xfd, 0x36, 0xe1, 0x1e, 0x6d, 0x2b, 0x6f, + 0x10, 0xee, 0x31, 0xfc, 0x5b, 0xc2, 0x3d, 0xd2, 0x46, 0xcb, 0x84, 0xfb, 0x2a, 0xb8, 0x9f, 0x23, + 0xdc, 0x2f, 0x61, 0xa7, 0x08, 0x77, 0xd5, 0x6c, 0xa9, 0x2a, 0xa7, 0x05, 0x3b, 0x14, 0xfb, 0xd3, + 0xb9, 0x70, 0x03, 0xc6, 0x7c, 0x23, 0xc0, 0x5d, 0x00, 0x07, 0x86, 0xb8, 0xe1, 0x18, 0x41, 0x06, + 0xa3, 0xaa, 0x32, 0x65, 0x01, 0x1b, 0xe5, 0x2c, 0xaf, 0x8c, 0x65, 0x9c, 0xf7, 0xde, 0xac, 0xbf, + 0xf3, 0xde, 0x8b, 0x15, 0x6a, 0x0f, 0xeb, 0x66, 0x36, 0xd5, 0x52, 0x81, 0x11, 0xd6, 0x84, 0x1e, + 0xaa, 0x15, 0x2e, 0x74, 0x71, 0xe1, 0xc3, 0x74, 0x31, 0x8c, 0x24, 0x09, 0xbf, 0xeb, 0xcd, 0x53, + 0xc7, 0x51, 0x68, 0x23, 0x08, 0xbd, 0x25, 0x53, 0x9b, 0xb8, 0x30, 0xf7, 0x90, 0x77, 0xcd, 0x50, + 0xc3, 0x48, 0xe2, 0x67, 0x1b, 0x52, 0xef, 0x03, 0xf0, 0x34, 0x3f, 0x2e, 0x18, 0xa8, 0xcc, 0x32, + 0xf5, 0x69, 0xd4, 0x6a, 0xd8, 0x41, 0xbd, 0xd2, 0x13, 0xe2, 0x6d, 0xcf, 0xce, 0xd4, 0x0a, 0x63, + 0x20, 0x3e, 0x53, 0xce, 0x8f, 0x0d, 0x3c, 0xfd, 0x61, 0x0d, 0xfc, 0x78, 0xb0, 0x47, 0xf2, 0x23, + 0x0f, 0xde, 0x55, 0xb2, 0xe1, 0x42, 0xdf, 0x9b, 0xb3, 0xfa, 0xf2, 0x7d, 0x6f, 0x37, 0x21, 0x7d, + 0x4f, 0xc4, 0xb6, 0x5c, 0xd6, 0xd8, 0x1d, 0xfd, 0xfc, 0x95, 0xb3, 0x2c, 0xbd, 0x56, 0xb0, 0x19, + 0xf4, 0x3a, 0x93, 0x4d, 0xa1, 0xd7, 0x4a, 0xd6, 0x42, 0xaf, 0x73, 0x85, 0x70, 0x55, 0x6c, 0x24, + 0xbd, 0x2e, 0x61, 0x0d, 0xf4, 0x5a, 0xcd, 0x6a, 0x04, 0x1b, 0xa8, 0xbc, 0x2f, 0x42, 0xf9, 0xb1, + 0x19, 0xb0, 0x2a, 0xab, 0xfb, 0x1b, 0x89, 0x96, 0xc9, 0xe1, 0xee, 0xa3, 0x05, 0x40, 0xdc, 0x0d, + 0x43, 0x0c, 0xcc, 0x0c, 0xa4, 0xfc, 0xa2, 0xc3, 0x7f, 0x60, 0xa4, 0xa0, 0x75, 0xe1, 0xc0, 0x39, + 0x71, 0xad, 0xed, 0x38, 0x53, 0xef, 0xa5, 0x72, 0x3a, 0xeb, 0xaa, 0xa8, 0x27, 0xf6, 0x10, 0x7e, + 0xd6, 0x31, 0xb1, 0xc8, 0x4b, 0x30, 0x3a, 0xc2, 0x02, 0xf5, 0xa4, 0xc1, 0x56, 0x0a, 0x24, 0x90, + 0xeb, 0x7a, 0xe9, 0x1e, 0xc0, 0x70, 0x55, 0xd0, 0xb3, 0x4b, 0x00, 0xa8, 0x3e, 0x2e, 0x10, 0x0e, + 0x05, 0x5c, 0x95, 0xa0, 0x49, 0x84, 0xf6, 0xac, 0x4a, 0x54, 0xf2, 0x87, 0xb1, 0x80, 0x72, 0x80, + 0x13, 0x03, 0x48, 0x80, 0x3b, 0xa1, 0x9c, 0xb2, 0x5d, 0x49, 0x75, 0x7b, 0x7d, 0xb9, 0x55, 0xc1, + 0x79, 0xa4, 0x9a, 0x5b, 0x0d, 0xa9, 0xad, 0xa1, 0xfe, 0x39, 0x56, 0x51, 0x6d, 0x74, 0x23, 0xdd, + 0x99, 0x0f, 0x26, 0xd5, 0x42, 0x38, 0x0f, 0x6e, 0x3d, 0x84, 0x2b, 0xe7, 0x6a, 0x20, 0xdc, 0x66, + 0x1a, 0x6e, 0x3d, 0x0d, 0x17, 0x28, 0x84, 0xab, 0x10, 0xc2, 0xf9, 0x70, 0x5b, 0x21, 0xdc, 0x12, + 0x6e, 0x07, 0x84, 0xab, 0xa5, 0xe1, 0xb6, 0x62, 0xb8, 0xbb, 0x37, 0x84, 0x70, 0x4b, 0x84, 0x70, + 0x32, 0x6e, 0x0f, 0x84, 0xab, 0xe0, 0xf6, 0x41, 0xb8, 0x43, 0x34, 0xdc, 0x1e, 0x1a, 0x6e, 0x9f, + 0x10, 0x6e, 0xa6, 0x10, 0x4e, 0xce, 0xd5, 0x41, 0xb8, 0x2a, 0xee, 0x04, 0x84, 0x3b, 0x4d, 0xc3, + 0xd5, 0xd1, 0x70, 0xab, 0x84, 0x70, 0x55, 0x42, 0x38, 0x4f, 0x58, 0x11, 0xf2, 0xc8, 0x4c, 0xee, + 0x22, 0x84, 0xab, 0xa7, 0xe1, 0xce, 0xd1, 0x70, 0x65, 0x42, 0xb8, 0xb9, 0x42, 0x38, 0x2f, 0xae, + 0x01, 0xc2, 0x55, 0x72, 0x57, 0x21, 0xdc, 0x0d, 0x1a, 0xae, 0x81, 0x86, 0x4b, 0x11, 0xc2, 0x55, + 0x0a, 0xe1, 0xbc, 0x01, 0x17, 0xe7, 0x91, 0xb9, 0xfc, 0x3c, 0xa2, 0xe1, 0x1a, 0x69, 0x38, 0xb4, + 0x17, 0x26, 0xdf, 0x72, 0x55, 0xba, 0xd5, 0xa6, 0x66, 0x74, 0xd2, 0xd3, 0xd0, 0xcf, 0x55, 0x43, + 0xa9, 0x75, 0x54, 0x08, 0x53, 0xc6, 0x71, 0x08, 0xb5, 0xd3, 0x78, 0x4b, 0x0f, 0xd1, 0x68, 0x7d, + 0x44, 0xe1, 0x8a, 0x71, 0x37, 0xf3, 0xbe, 0xd5, 0x63, 0x1d, 0xbe, 0xd5, 0x11, 0xbb, 0xb6, 0x99, + 0x3d, 0x72, 0xae, 0x4c, 0x58, 0xbd, 0xe5, 0x38, 0xf3, 0x80, 0x0f, 0x25, 0x3c, 0xdd, 0x00, 0xe3, + 0xc3, 0xa0, 0xe4, 0xb1, 0x32, 0x9e, 0x25, 0x21, 0x1f, 0xce, 0x2a, 0x61, 0x1e, 0x01, 0x36, 0xde, + 0x47, 0xa9, 0x4b, 0x06, 0xa8, 0x0a, 0xf9, 0xd1, 0xda, 0xe2, 0xf6, 0x75, 0xeb, 0x88, 0xa4, 0xae, + 0xa2, 0xae, 0x42, 0x65, 0x90, 0x11, 0xfb, 0x08, 0x27, 0x7e, 0x08, 0xa8, 0x9b, 0x06, 0xf8, 0xa1, + 0x11, 0xd6, 0x8e, 0xbb, 0x0f, 0x53, 0x0e, 0x56, 0xa3, 0x1d, 0x2d, 0xb1, 0xc9, 0x8a, 0xdd, 0x58, + 0x35, 0xb5, 0xe7, 0x72, 0x1f, 0xb1, 0x19, 0x95, 0xd9, 0x14, 0xd3, 0x5a, 0xe0, 0x37, 0xcf, 0x1a, + 0x68, 0x8b, 0x54, 0x6a, 0x6d, 0x38, 0x1d, 0x78, 0x4c, 0xe0, 0x94, 0x73, 0xb1, 0x84, 0xd4, 0xfa, + 0x90, 0x22, 0xe9, 0x9a, 0x5c, 0xce, 0xd5, 0x3b, 0xd6, 0x10, 0xea, 0x09, 0xb9, 0x80, 0xea, 0xbf, + 0x2a, 0x28, 0x9d, 0xcf, 0x20, 0xbd, 0xa3, 0x1c, 0x27, 0x73, 0xcc, 0x22, 0x39, 0xfa, 0xaf, 0xa7, + 0x16, 0xb6, 0x73, 0x89, 0xaa, 0xd4, 0xff, 0xc4, 0x3a, 0xe9, 0x21, 0x28, 0xd9, 0x8d, 0x60, 0x4b, + 0x0b, 0x7d, 0x83, 0x73, 0x8b, 0x62, 0x2f, 0xe7, 0xec, 0xb2, 0xd4, 0x02, 0x85, 0xd3, 0xa0, 0x2a, + 0xe0, 0xae, 0x62, 0x3e, 0xcf, 0x2e, 0x00, 0xfc, 0x12, 0x09, 0x34, 0x16, 0x5a, 0xfc, 0xd3, 0x61, + 0x9b, 0x68, 0xa1, 0x4d, 0xf8, 0xb6, 0x40, 0xdf, 0xe5, 0xa7, 0x6a, 0x4b, 0x49, 0x59, 0xd0, 0xe9, + 0x05, 0x13, 0x3c, 0x4f, 0xae, 0x91, 0xee, 0x4b, 0x6c, 0xba, 0x13, 0x09, 0xfd, 0x6b, 0xb6, 0x33, + 0x74, 0x9f, 0xc2, 0x0d, 0xbd, 0xae, 0xd0, 0x9a, 0xe9, 0x49, 0x50, 0x0d, 0xb4, 0x98, 0x8d, 0xd6, + 0x9f, 0x99, 0xce, 0xca, 0x53, 0xa7, 0x67, 0xbc, 0x5c, 0xec, 0x5b, 0x33, 0xdd, 0x56, 0xc7, 0xfa, + 0x0a, 0x75, 0xbb, 0x10, 0x14, 0x95, 0xb1, 0x00, 0x7a, 0x05, 0x5b, 0x81, 0x83, 0x9a, 0x37, 0xfc, + 0x17, 0x75, 0xec, 0xf8, 0xdf, 0xd4, 0x51, 0xe8, 0xfd, 0x1b, 0xd8, 0xf3, 0x58, 0x43, 0x48, 0x15, + 0x71, 0x42, 0x0f, 0x3e, 0xaf, 0xe3, 0xbb, 0x60, 0x04, 0xec, 0x49, 0x9d, 0x06, 0xa9, 0xdd, 0x28, + 0x71, 0x83, 0x5f, 0x27, 0xe6, 0xa7, 0x78, 0xe1, 0x06, 0xee, 0x64, 0xf0, 0x78, 0xe1, 0xb7, 0xe1, + 0x14, 0xd3, 0x8c, 0xfc, 0xa7, 0xa9, 0xb9, 0xae, 0x22, 0x0f, 0xa5, 0xe5, 0xeb, 0x9a, 0xd6, 0x7f, + 0xd8, 0x0a, 0x1d, 0xfe, 0x9b, 0x56, 0x40, 0x79, 0x14, 0xbd, 0x17, 0x96, 0xba, 0x65, 0xa4, 0xab, + 0x8a, 0x65, 0xd8, 0x63, 0x72, 0xeb, 0x3a, 0x22, 0x1b, 0x26, 0x58, 0xc0, 0xc6, 0xb9, 0x51, 0x0b, + 0x7d, 0x89, 0x34, 0x6f, 0x49, 0xfb, 0x63, 0x6b, 0x21, 0xa7, 0x18, 0x98, 0xef, 0xc6, 0x16, 0x9a, + 0xaa, 0x58, 0x86, 0x73, 0x40, 0x18, 0xff, 0x0d, 0x2d, 0xe3, 0x1f, 0xad, 0x0a, 0x73, 0xcd, 0x90, + 0x5f, 0xbd, 0x93, 0x76, 0x2e, 0xa2, 0xa5, 0x57, 0xf1, 0x18, 0x18, 0xa9, 0xf9, 0xa3, 0xbb, 0xba, + 0x02, 0xfd, 0x49, 0x56, 0xc1, 0xaf, 0x8c, 0xac, 0x06, 0x7e, 0x07, 0x77, 0xd2, 0x25, 0x2c, 0x69, + 0xd4, 0x62, 0x78, 0xde, 0x8b, 0x2e, 0x86, 0x63, 0xa0, 0x64, 0x42, 0x6c, 0x59, 0xed, 0x5a, 0x22, + 0x41, 0x8f, 0xb3, 0x8e, 0x12, 0x3a, 0x28, 0x2c, 0x03, 0x95, 0xad, 0xa1, 0x32, 0x1f, 0x80, 0xe9, + 0x95, 0xc1, 0x74, 0x3d, 0x84, 0xf8, 0x88, 0xfd, 0xbf, 0xa9, 0xc5, 0x7d, 0xac, 0x8d, 0x3f, 0x93, + 0xe5, 0x76, 0x9b, 0x32, 0x05, 0xe8, 0x2b, 0x85, 0xd2, 0x68, 0x05, 0x2a, 0x2b, 0x7f, 0x84, 0x32, + 0x97, 0x5f, 0x85, 0xa2, 0xb2, 0x89, 0x34, 0x02, 0xe5, 0x6f, 0xbe, 0x60, 0x8c, 0x98, 0x4b, 0xa9, + 0xd7, 0x89, 0x69, 0xb4, 0x4d, 0x71, 0x7e, 0xc7, 0x42, 0x4d, 0x93, 0x1f, 0x6e, 0xd3, 0x70, 0xd4, + 0xba, 0x56, 0x3c, 0x05, 0x29, 0x93, 0xe5, 0xfc, 0xa9, 0xe6, 0xed, 0x92, 0x94, 0x05, 0x06, 0xb1, + 0xa5, 0x96, 0x95, 0x0a, 0x7a, 0x32, 0x88, 0x7d, 0x4e, 0xd3, 0xf6, 0x1e, 0x07, 0x34, 0x20, 0xda, + 0xd7, 0xf2, 0x2f, 0x56, 0xb6, 0xd5, 0xc9, 0xa7, 0x7b, 0x6f, 0x49, 0x1d, 0x78, 0x9d, 0x7c, 0x6d, + 0x6b, 0x9d, 0xfc, 0x0e, 0x6d, 0x74, 0xf2, 0x9f, 0x42, 0x9d, 0xfc, 0x9f, 0x89, 0xff, 0x53, 0xa8, + 0x93, 0xbf, 0x8e, 0x04, 0xc2, 0x7d, 0x20, 0xdc, 0xfb, 0x77, 0xb7, 0x12, 0x19, 0xd5, 0xae, 0x94, + 0x97, 0x42, 0xce, 0x26, 0x13, 0xda, 0xbb, 0xf8, 0x2b, 0x4d, 0x7c, 0xc6, 0xea, 0xa2, 0x83, 0xef, + 0xab, 0x34, 0x16, 0xeb, 0x5a, 0xb4, 0x14, 0x5d, 0xbe, 0xcd, 0x85, 0x92, 0x9d, 0x60, 0x2f, 0x02, + 0xe5, 0xb1, 0x47, 0xd0, 0x1f, 0x4c, 0xd2, 0x5b, 0x49, 0xdf, 0x36, 0xfa, 0x83, 0xd1, 0xe8, 0x4f, + 0xf2, 0x2f, 0xf4, 0x07, 0xcd, 0x82, 0xfe, 0xa0, 0x8c, 0x04, 0x00, 0x3f, 0xc4, 0xeb, 0x0e, 0x4a, + 0x48, 0x17, 0xe4, 0x73, 0x8c, 0x84, 0x28, 0x05, 0xdd, 0x42, 0x35, 0xea, 0x16, 0x7e, 0x9e, 0x4e, + 0xb4, 0x82, 0x6e, 0x61, 0x68, 0xcc, 0x75, 0xd2, 0x17, 0xc6, 0x43, 0x18, 0xc4, 0x89, 0xf8, 0x5b, + 0xdd, 0xc2, 0x78, 0xaa, 0x5b, 0x68, 0x22, 0x4b, 0xfe, 0x54, 0xb7, 0x30, 0x8a, 0xf2, 0x90, 0x7a, + 0xa7, 0x7f, 0x87, 0x54, 0x81, 0x7f, 0x0c, 0x77, 0xc8, 0x65, 0xa9, 0x0b, 0x88, 0x3f, 0x8c, 0x96, + 0xc0, 0x7e, 0x05, 0x44, 0xc9, 0xc5, 0x47, 0x87, 0x10, 0x35, 0xcf, 0xe1, 0x48, 0x37, 0x59, 0x3f, + 0x40, 0x8b, 0x6e, 0xd2, 0x75, 0x70, 0x95, 0xdb, 0x14, 0xbc, 0x75, 0x0c, 0x0f, 0x12, 0x9c, 0x4d, + 0x18, 0xa0, 0xf7, 0xa5, 0xf4, 0xd9, 0x0b, 0xe8, 0x8b, 0x50, 0xb4, 0x06, 0x6a, 0x0b, 0x5c, 0xb8, + 0x0f, 0x68, 0x7d, 0x0d, 0xe4, 0x2d, 0xd6, 0x60, 0xcf, 0x12, 0x69, 0x09, 0x8c, 0x22, 0x13, 0x8b, + 0x16, 0x36, 0x4c, 0xd4, 0x0f, 0x85, 0x3f, 0xac, 0x83, 0x72, 0x18, 0x57, 0x30, 0xd7, 0x78, 0x7c, + 0x30, 0x59, 0xcc, 0xca, 0xe9, 0x13, 0xc5, 0x10, 0x93, 0x45, 0x50, 0x1a, 0x8d, 0x8e, 0xb7, 0x6e, + 0x5d, 0xd9, 0x2f, 0x9b, 0xf8, 0x73, 0xd1, 0x38, 0x0f, 0x4d, 0xb1, 0x26, 0x73, 0xc2, 0x55, 0x92, + 0x1e, 0x0c, 0x5f, 0x39, 0xab, 0x4a, 0x8b, 0xd2, 0x94, 0xce, 0x7d, 0xf5, 0x01, 0xb0, 0x2a, 0x52, + 0xdd, 0x7e, 0x8c, 0x03, 0xf3, 0xcb, 0x3f, 0x5c, 0x4b, 0x24, 0x45, 0xe2, 0x3a, 0x13, 0x5c, 0xa5, + 0x45, 0xe2, 0x63, 0x26, 0x5e, 0xe7, 0x7f, 0x93, 0xb9, 0x48, 0x1c, 0x29, 0x02, 0xbc, 0xa1, 0xa0, + 0x7a, 0xff, 0xdb, 0x80, 0x57, 0xb2, 0x12, 0x4d, 0x78, 0x08, 0x17, 0x7d, 0xc2, 0x24, 0x35, 0x91, + 0x27, 0x14, 0x3a, 0xd2, 0xcd, 0x52, 0x71, 0xc2, 0x08, 0x57, 0x35, 0x5e, 0x4f, 0x98, 0x77, 0x9a, + 0xc6, 0x88, 0xc3, 0x3d, 0x60, 0x2e, 0x89, 0xa1, 0x16, 0xe9, 0x86, 0x7c, 0xe2, 0xbb, 0xb1, 0xb6, + 0x80, 0xb8, 0xcf, 0x91, 0xc6, 0x02, 0xb7, 0x72, 0x8d, 0x5a, 0xe8, 0x48, 0x51, 0x59, 0x4c, 0x66, + 0xbe, 0x54, 0x6c, 0xa7, 0x16, 0x39, 0x31, 0x28, 0x53, 0x82, 0x60, 0x6f, 0xc0, 0x3c, 0x46, 0x1c, + 0x49, 0x42, 0x3b, 0xd9, 0x2e, 0xf1, 0xf9, 0x45, 0x4b, 0xa4, 0x09, 0x44, 0x81, 0xde, 0x9f, 0xfa, + 0xc5, 0x71, 0x56, 0x46, 0x9a, 0x52, 0xb1, 0xeb, 0xcb, 0xc1, 0xc6, 0x40, 0x1d, 0x51, 0x59, 0x66, + 0x86, 0x99, 0x63, 0x7f, 0x22, 0xfe, 0xfd, 0x12, 0xb9, 0xe4, 0x9a, 0xd8, 0xac, 0x4e, 0x68, 0x7f, + 0x00, 0xad, 0xbb, 0x70, 0xdc, 0xa2, 0x19, 0x0e, 0x7d, 0x8f, 0xe3, 0x05, 0x5c, 0x72, 0x04, 0xf9, + 0xb8, 0x80, 0x8b, 0x1f, 0x2b, 0x89, 0x08, 0xe1, 0xe2, 0xa1, 0xac, 0x4f, 0x59, 0x2a, 0x4e, 0x1b, + 0x53, 0xcc, 0xa7, 0x63, 0xa1, 0x9c, 0x12, 0x28, 0xa3, 0x7c, 0x63, 0x6d, 0x3e, 0x71, 0x97, 0xb1, + 0x44, 0x72, 0x49, 0xf0, 0xfa, 0x9b, 0xc7, 0xf7, 0xc9, 0x03, 0xb4, 0x37, 0x95, 0x61, 0x27, 0x92, + 0x03, 0x0a, 0xcc, 0xad, 0xc2, 0x0f, 0xe3, 0x4e, 0x8b, 0x88, 0x39, 0x59, 0x3b, 0xe1, 0xee, 0xb2, + 0x01, 0x11, 0xb1, 0x27, 0xf7, 0x64, 0x18, 0x4b, 0x44, 0x9b, 0x66, 0xd9, 0xb4, 0x90, 0xb3, 0xf7, + 0xa2, 0xd9, 0x3a, 0x11, 0x95, 0x10, 0x9d, 0x7d, 0xce, 0x38, 0x41, 0xb4, 0xf4, 0x00, 0xf4, 0x4e, + 0x34, 0xe3, 0x9e, 0x56, 0x01, 0x69, 0x58, 0x69, 0x7d, 0x23, 0x80, 0xab, 0x01, 0x26, 0x16, 0x30, + 0x9d, 0x75, 0xd7, 0x57, 0xcb, 0x6a, 0xd9, 0xb3, 0x8c, 0x5b, 0x5a, 0x05, 0xac, 0xe9, 0x56, 0xbb, + 0x24, 0xcc, 0x0d, 0xed, 0x6d, 0x5b, 0xca, 0x48, 0x24, 0x6f, 0x23, 0x0b, 0xf0, 0x66, 0x5f, 0xa7, + 0x9d, 0x2c, 0x37, 0xa2, 0xe0, 0x46, 0x28, 0x43, 0xb8, 0xbe, 0x86, 0x18, 0xc1, 0xd6, 0x8c, 0x1b, + 0x79, 0x92, 0x1b, 0x8b, 0x56, 0xa1, 0xe8, 0xbd, 0x88, 0xcb, 0x87, 0x9a, 0x48, 0x21, 0x9f, 0x62, + 0xfa, 0xec, 0xc6, 0x95, 0xf2, 0x3d, 0x02, 0x3c, 0x6e, 0xfa, 0xa2, 0x5a, 0xc6, 0xb3, 0xea, 0x03, + 0x2e, 0xbe, 0xa4, 0x91, 0xda, 0x7c, 0x29, 0xa3, 0x21, 0xbc, 0xb8, 0x72, 0x68, 0xdb, 0x0c, 0x6a, + 0x7b, 0xc6, 0x8d, 0x04, 0x70, 0x33, 0xa9, 0x95, 0xad, 0x4a, 0xc8, 0x5f, 0x41, 0xf3, 0xaf, 0x77, + 0xc9, 0xdb, 0x13, 0xb8, 0xe3, 0x64, 0xae, 0x41, 0x68, 0x99, 0x89, 0x71, 0x68, 0x2b, 0xa5, 0x80, + 0x8b, 0xc0, 0xd6, 0x51, 0x19, 0xa9, 0xcd, 0xf3, 0x58, 0xb4, 0x8a, 0x0c, 0xf1, 0xa3, 0xe9, 0x28, + 0xf1, 0x82, 0x94, 0x23, 0x88, 0x86, 0x25, 0x6e, 0x33, 0x19, 0x2b, 0xe0, 0xfd, 0x7a, 0x21, 0x74, + 0xd9, 0xb6, 0x19, 0x76, 0x1d, 0xb6, 0x93, 0x2e, 0xe6, 0x5c, 0x02, 0xe3, 0x5e, 0x85, 0x1e, 0x5b, + 0x9d, 0x56, 0x8e, 0xce, 0x19, 0x95, 0x6e, 0x8b, 0x66, 0xa1, 0xef, 0x1b, 0xc7, 0x9b, 0x93, 0xb5, + 0xa9, 0x33, 0x80, 0xbb, 0x4e, 0xc9, 0xf8, 0x80, 0x4b, 0xd1, 0x65, 0x50, 0xcd, 0x70, 0xd2, 0x5c, + 0xc7, 0xa7, 0x6d, 0x85, 0x96, 0xb5, 0x13, 0xb7, 0xf0, 0x62, 0x5f, 0x57, 0x9b, 0x04, 0x0f, 0xd2, + 0x29, 0x6e, 0x24, 0x6e, 0xe8, 0xbd, 0x29, 0xe5, 0x21, 0x5b, 0x63, 0x36, 0x6e, 0x04, 0xf6, 0x37, + 0xda, 0xc0, 0x12, 0xec, 0xf1, 0x8c, 0xa5, 0xa3, 0x34, 0x5b, 0xb0, 0xe4, 0x93, 0x8f, 0x56, 0x79, + 0x0d, 0xa2, 0x09, 0xed, 0xae, 0x64, 0xd7, 0xc5, 0x5c, 0x32, 0x1a, 0x8c, 0x97, 0x92, 0xc4, 0x33, + 0x71, 0x2c, 0x51, 0x0b, 0x38, 0xc5, 0x82, 0x85, 0x9f, 0x52, 0x08, 0xe5, 0x6b, 0x10, 0x39, 0xc3, + 0x08, 0xfe, 0x85, 0x16, 0xee, 0x46, 0x8b, 0x5b, 0x34, 0x4c, 0x2e, 0x57, 0xce, 0x84, 0x90, 0x20, + 0x71, 0x05, 0x77, 0xe1, 0x8f, 0xcf, 0x89, 0x51, 0x62, 0x74, 0xda, 0x2f, 0xcb, 0xe7, 0x66, 0x42, + 0xf9, 0xa3, 0x05, 0x2b, 0x3f, 0x85, 0xdc, 0x5c, 0x18, 0x15, 0x72, 0xae, 0x8a, 0x52, 0xbe, 0x51, + 0x68, 0xd9, 0x03, 0xea, 0x65, 0xb2, 0x4b, 0x14, 0x51, 0x64, 0x12, 0xc4, 0x59, 0x12, 0x9c, 0xc4, + 0x55, 0xd3, 0x90, 0x79, 0xdc, 0xf2, 0x60, 0xc0, 0xd6, 0x0a, 0x29, 0xb7, 0x4a, 0xb0, 0x55, 0xc3, + 0x8f, 0xce, 0xb7, 0xd4, 0xc6, 0x50, 0xc0, 0x2d, 0x62, 0x05, 0x8d, 0xe7, 0xbb, 0x70, 0x1f, 0xf4, + 0xb7, 0x49, 0xf8, 0x76, 0x1f, 0x70, 0x7c, 0x99, 0xea, 0x03, 0x8a, 0xf7, 0x25, 0x4f, 0x41, 0xae, + 0x44, 0xd6, 0x2b, 0x0e, 0xf2, 0x81, 0xaf, 0x40, 0xa5, 0x8d, 0x70, 0x8e, 0xb4, 0xf5, 0xce, 0x16, + 0x12, 0xc3, 0x38, 0x5a, 0xef, 0x17, 0x4c, 0x22, 0x90, 0x9a, 0x66, 0x44, 0x19, 0x38, 0x6e, 0x6b, + 0xe8, 0x7b, 0x31, 0xb7, 0x59, 0x11, 0x8c, 0xf2, 0x57, 0x40, 0x15, 0x90, 0x8c, 0xe9, 0xb0, 0xd2, + 0x6d, 0xa5, 0xef, 0xdd, 0xb8, 0x1d, 0x06, 0xe0, 0x7c, 0x16, 0xee, 0x82, 0x58, 0x91, 0x96, 0x69, + 0x55, 0xbb, 0x06, 0x57, 0x42, 0x2b, 0xd4, 0xd2, 0x6f, 0x12, 0x6e, 0x0f, 0x7c, 0xf3, 0x5a, 0x58, + 0x0b, 0x31, 0xfb, 0x58, 0x2a, 0xaa, 0x6a, 0x17, 0x5e, 0xe3, 0xe2, 0x63, 0x1a, 0xb8, 0xab, 0x10, + 0x62, 0x1f, 0x0d, 0xd1, 0x81, 0x3b, 0x34, 0x41, 0x04, 0xab, 0x65, 0x1d, 0x7d, 0xea, 0xc8, 0x9d, + 0x60, 0x92, 0x84, 0xb2, 0x27, 0x6b, 0x08, 0x6f, 0x9d, 0x4b, 0x94, 0x0d, 0x2b, 0x53, 0x98, 0x8a, + 0x5a, 0x92, 0xd5, 0xc5, 0xe1, 0x89, 0x1c, 0xda, 0x37, 0xa5, 0x14, 0x81, 0x2f, 0xbf, 0x9b, 0x8e, + 0xdf, 0x4b, 0x09, 0x7e, 0xbb, 0x8f, 0x67, 0x95, 0x61, 0x5d, 0x61, 0x05, 0xa9, 0xec, 0x4b, 0x6d, + 0xf2, 0x84, 0xb5, 0xa7, 0x52, 0x4c, 0x0a, 0xac, 0x51, 0x85, 0x1f, 0x96, 0x7f, 0x5a, 0x38, 0x94, + 0x36, 0x00, 0xcb, 0x3a, 0x03, 0xcb, 0x16, 0x84, 0x25, 0x43, 0x8d, 0xfa, 0x30, 0x3c, 0x83, 0x5c, + 0xf2, 0x85, 0xca, 0xab, 0x6a, 0xaf, 0x9a, 0xe6, 0xd3, 0x7c, 0x18, 0xe3, 0x9b, 0xd6, 0xf0, 0xe9, + 0x98, 0x34, 0xe4, 0x09, 0x07, 0x5e, 0x80, 0xd1, 0xbf, 0xde, 0x81, 0x1b, 0xd4, 0xc4, 0xce, 0xe0, + 0x77, 0x58, 0x0f, 0x09, 0x5a, 0x9b, 0x54, 0x99, 0x85, 0x2f, 0xcb, 0x98, 0x58, 0xe1, 0x6e, 0x0a, + 0xdf, 0x6e, 0x29, 0xc6, 0x70, 0xa3, 0x2a, 0x98, 0x84, 0x61, 0xeb, 0xe3, 0xf9, 0x5d, 0x8b, 0xa4, + 0x85, 0xd2, 0x8c, 0x7b, 0x6a, 0xb4, 0x2e, 0x12, 0x58, 0x87, 0xf0, 0xdd, 0x3a, 0x7d, 0x08, 0xd1, + 0xf0, 0x12, 0x5a, 0xe1, 0x80, 0xbb, 0x80, 0xbe, 0x0b, 0x21, 0x0a, 0x5e, 0x2a, 0xaf, 0xfb, 0x4e, + 0x98, 0x11, 0xd1, 0xca, 0x01, 0x4b, 0x0f, 0xc0, 0xaa, 0xcf, 0xaf, 0x1a, 0x29, 0x4c, 0x92, 0xd2, + 0x91, 0xaf, 0x85, 0x97, 0xac, 0x52, 0x3a, 0x57, 0xe4, 0x07, 0xc9, 0x98, 0x96, 0x1e, 0xf0, 0x35, + 0xc6, 0xde, 0xd7, 0x08, 0x7c, 0xc6, 0x23, 0x46, 0xca, 0x14, 0xc2, 0x78, 0xd0, 0x1d, 0x28, 0x4a, + 0x53, 0x62, 0x0d, 0x21, 0x77, 0xa6, 0xc5, 0x5b, 0x3a, 0xed, 0x9f, 0xce, 0xdc, 0x7a, 0x8a, 0x23, + 0x6a, 0x84, 0x9e, 0xdf, 0x8c, 0xbe, 0x5d, 0xe1, 0x79, 0xab, 0xd0, 0xdb, 0x3b, 0x26, 0x10, 0xc0, + 0xae, 0xd1, 0xd0, 0x9f, 0xf1, 0x29, 0x33, 0xe0, 0xb7, 0x56, 0x90, 0x16, 0x6c, 0xb4, 0x91, 0xa6, + 0xf5, 0x2c, 0x8c, 0x78, 0x68, 0xbd, 0x11, 0x68, 0x4d, 0xe3, 0x9e, 0xc2, 0x71, 0xea, 0xa5, 0xc1, + 0x13, 0x2f, 0x3d, 0x49, 0x52, 0xeb, 0x49, 0xba, 0x01, 0xfd, 0xaf, 0xc5, 0xc2, 0xc8, 0x1c, 0xab, + 0xd1, 0x90, 0x0c, 0xc1, 0x4e, 0x76, 0x18, 0xe0, 0xd6, 0xb9, 0x70, 0x0d, 0x05, 0xee, 0xc8, 0x17, + 0x56, 0xaa, 0xa1, 0x2d, 0x54, 0x48, 0x69, 0xf3, 0x80, 0xa6, 0xbb, 0x2c, 0xda, 0x6a, 0x40, 0x5b, + 0x6e, 0x25, 0x46, 0x3c, 0xe1, 0xc2, 0xfd, 0x2a, 0xf8, 0x0c, 0x78, 0x82, 0x6c, 0x7b, 0x12, 0xfb, + 0xde, 0x60, 0xd2, 0x93, 0x9e, 0xfd, 0xf3, 0x48, 0x20, 0xf4, 0x21, 0xfa, 0x9d, 0xc9, 0x23, 0x41, + 0xfa, 0x14, 0x12, 0x61, 0x9d, 0x85, 0x3e, 0xb1, 0x80, 0x46, 0xd0, 0xc5, 0x5e, 0x27, 0xb1, 0x78, + 0x5e, 0xbc, 0xf4, 0x00, 0x1d, 0x5d, 0x27, 0xa9, 0xf7, 0x80, 0x6a, 0x59, 0x30, 0xd0, 0x22, 0x9d, + 0xe1, 0x6e, 0xbe, 0x5e, 0xa2, 0xd0, 0x93, 0x04, 0x5e, 0x3a, 0x36, 0x79, 0x69, 0x17, 0xa2, 0x97, + 0x30, 0xb0, 0x66, 0x28, 0x34, 0xe2, 0xb3, 0xe8, 0xd9, 0x0b, 0xb9, 0x97, 0x1a, 0x0f, 0x9b, 0x1f, + 0x94, 0xac, 0x4c, 0x9e, 0x8d, 0xd4, 0x54, 0xea, 0x6e, 0xcb, 0x74, 0xcb, 0x6e, 0xf3, 0xf4, 0x3f, + 0x8d, 0xf7, 0x6d, 0x4b, 0x3c, 0xde, 0x6b, 0xcc, 0x9e, 0x0a, 0x96, 0xfa, 0x96, 0x29, 0x25, 0xe1, + 0x1a, 0xa2, 0x66, 0x3b, 0x95, 0x34, 0x6f, 0x9a, 0x6e, 0xc3, 0xfd, 0x8a, 0x32, 0x25, 0xd9, 0x5d, + 0x65, 0xf7, 0xb2, 0xce, 0xb6, 0x4b, 0x98, 0x78, 0xa6, 0xa2, 0x94, 0x6b, 0xd9, 0x43, 0x68, 0x9e, + 0xdd, 0xaa, 0x2d, 0xe6, 0xaa, 0xe9, 0x5e, 0x47, 0xf3, 0x5d, 0x56, 0x5a, 0x4a, 0x58, 0x71, 0xa9, + 0x88, 0xfa, 0x9a, 0x17, 0xf6, 0xd2, 0x2d, 0x3f, 0x46, 0x86, 0xa1, 0x06, 0x3d, 0x9e, 0x3c, 0x17, + 0x8b, 0x6a, 0xe6, 0x8c, 0x4d, 0x52, 0xe7, 0x02, 0x5e, 0x40, 0xff, 0xf4, 0x56, 0x7a, 0x2a, 0x12, + 0x4c, 0xe4, 0x74, 0xd4, 0x99, 0x35, 0xc1, 0x44, 0x02, 0xb8, 0xa2, 0x0c, 0xe8, 0x39, 0xb4, 0x69, + 0xbc, 0x15, 0xf7, 0xc9, 0xf9, 0x51, 0x83, 0x1a, 0x07, 0xf4, 0x6e, 0x5f, 0x4b, 0x19, 0x1e, 0x24, + 0x53, 0x8b, 0x52, 0x17, 0x92, 0x82, 0x78, 0x1e, 0x89, 0x5c, 0x3e, 0xab, 0x24, 0x97, 0xcf, 0xd4, + 0xc3, 0x75, 0x28, 0xb9, 0x5c, 0x17, 0x4a, 0x2e, 0x5f, 0xbc, 0x4a, 0x2e, 0x37, 0xc8, 0xc8, 0xe5, + 0xeb, 0x00, 0x97, 0xe1, 0x7d, 0xc3, 0x69, 0xb8, 0x5f, 0x4f, 0x2e, 0xdf, 0x08, 0x22, 0x97, 0x7f, + 0x65, 0x01, 0x1a, 0x00, 0xe0, 0xfd, 0x4f, 0x73, 0x01, 0x96, 0x03, 0xec, 0x85, 0xe7, 0x55, 0x10, + 0x6f, 0x0d, 0xb9, 0xfc, 0x23, 0xc4, 0xf9, 0x29, 0x05, 0x40, 0x45, 0xfe, 0xec, 0xef, 0xf2, 0xaf, + 0x0a, 0x0e, 0xfe, 0xc8, 0xff, 0xfa, 0x4f, 0x35, 0x34, 0x2e, 0xb5, 0x2f, 0x63, 0x1f, 0x3d, 0xb6, + 0xb4, 0xa8, 0x28, 0x7f, 0x7c, 0x68, 0x7e, 0x4e, 0x66, 0xc9, 0xe8, 0x92, 0x49, 0x4c, 0x78, 0xcf, + 0xd0, 0x9e, 0x8c, 0x26, 0x2c, 0xb4, 0x57, 0x68, 0x98, 0xa1, 0x67, 0x58, 0x0f, 0x1f, 0x2f, 0xd2, + 0x36, 0x08, 0x21, 0xd6, 0xfb, 0xe4, 0xf2, 0x41, 0x19, 0xa9, 0x9f, 0x5c, 0x3a, 0xad, 0x87, 0x27, + 0x94, 0xf0, 0xc0, 0x1d, 0x80, 0xe3, 0xf0, 0x4e, 0xe3, 0x4c, 0x1d, 0xea, 0x76, 0x40, 0xc2, 0x97, + 0xff, 0x5b, 0x19, 0xac, 0xad, 0xbe, 0x78, 0x0b, 0xd7, 0x0e, 0xc2, 0x35, 0x00, 0x2e, 0x22, 0x00, + 0xb1, 0xf0, 0xcc, 0x7f, 0x97, 0x11, 0x89, 0x10, 0xbf, 0xed, 0x7b, 0xc7, 0xb5, 0x9d, 0x6b, 0x7c, + 0xb8, 0x6a, 0xfe, 0x24, 0xbc, 0xa7, 0x70, 0xf5, 0x12, 0xae, 0xcf, 0x60, 0xf8, 0x59, 0x8f, 0xd1, + 0x3c, 0x3d, 0xe1, 0x8a, 0xe1, 0xdd, 0x1e, 0x11, 0xdf, 0x91, 0xae, 0x23, 0x1d, 0x05, 0x7d, 0x96, + 0x91, 0xf6, 0xc2, 0xb3, 0x9f, 0x70, 0x7d, 0x4c, 0xb8, 0xfa, 0x0b, 0xd7, 0x78, 0x4c, 0x03, 0xae, + 0xa9, 0xad, 0xd2, 0x93, 0x11, 0x6f, 0xe1, 0x2a, 0x17, 0xae, 0x43, 0x84, 0x6b, 0x1f, 0xe1, 0x6a, + 0x11, 0xe2, 0x25, 0xc2, 0xd5, 0x03, 0xae, 0x56, 0xfa, 0x1e, 0xe3, 0x5f, 0x3e, 0x5c, 0xe4, 0x28, + 0x1f, 0xee, 0x3a, 0xa1, 0xb5, 0x6e, 0x97, 0x74, 0x7d, 0x84, 0xeb, 0x00, 0x08, 0x57, 0xe2, 0x92, + 0x6e, 0xdf, 0xbf, 0x48, 0x17, 0x9f, 0x93, 0xe0, 0x3a, 0xb6, 0x4d, 0xba, 0xd2, 0x96, 0xfa, 0x2b, + 0x3c, 0x21, 0x8c, 0xbb, 0xa3, 0x13, 0xe1, 0x5e, 0xe3, 0xc8, 0x4b, 0xf8, 0xee, 0xe1, 0x08, 0xe7, + 0x5a, 0x4f, 0xa1, 0x2f, 0xff, 0xea, 0xca, 0xa7, 0x0f, 0xf8, 0x54, 0xb8, 0x4a, 0x84, 0x6b, 0x3b, + 0xe1, 0xda, 0x99, 0x96, 0x0f, 0x56, 0x47, 0x97, 0x38, 0xc4, 0x25, 0x0d, 0xf1, 0x23, 0xde, 0x3f, + 0x2a, 0xbd, 0x8e, 0x2e, 0xe9, 0x89, 0xfe, 0x22, 0x5c, 0xa0, 0x70, 0xc5, 0xba, 0xb5, 0x6b, 0xa9, + 0x1f, 0xe9, 0xee, 0x3a, 0x2e, 0x61, 0xe4, 0xdb, 0xb3, 0x4a, 0xc7, 0xe4, 0x8f, 0x1e, 0x3f, 0x9e, + 0x8c, 0x2f, 0x2d, 0xb1, 0xf3, 0x77, 0xb6, 0x92, 0xcc, 0xe7, 0x4b, 0x4b, 0x8b, 0x0a, 0xf9, 0xa7, + 0xe2, 0x92, 0xa2, 0x62, 0xe1, 0xc3, 0xf3, 0xa5, 0x39, 0xf9, 0x39, 0xa5, 0x93, 0x9c, 0xf3, 0xc4, + 0x5e, 0x32, 0xba, 0x38, 0x3b, 0x67, 0x4c, 0xcb, 0xc4, 0xc9, 0x1f, 0x3d, 0x29, 0xab, 0xa4, 0xe5, + 0x31, 0xa7, 0xb0, 0xf4, 0xf9, 0x9c, 0xd2, 0x9c, 0xa2, 0x42, 0xe7, 0x1b, 0x5b, 0xc9, 0xe8, 0x82, + 0xac, 0x1c, 0x3e, 0xb5, 0xed, 0xe4, 0xa9, 0xf1, 0xe4, 0xa9, 0xfc, 0xb1, 0xa4, 0x20, 0xab, 0xf0, + 0xf9, 0xcc, 0xd1, 0x25, 0xf9, 0xa3, 0x33, 0xb3, 0xf2, 0x1d, 0x25, 0x68, 0x09, 0x86, 0x21, 0xd2, + 0xb3, 0xca, 0x4a, 0x99, 0x81, 0x43, 0xd2, 0xd2, 0x99, 0xcc, 0x2c, 0xa6, 0x18, 0xde, 0x66, 0x8d, + 0x65, 0x26, 0xe6, 0x94, 0x66, 0x33, 0x83, 0x06, 0x3e, 0x97, 0x1c, 0x37, 0xac, 0x55, 0xf8, 0x3f, + 0xbb, 0x1f, 0x3f, 0x69, 0xfc, 0xdf, 0x84, 0xe8, 0xda, 0x95, 0x49, 0x4a, 0x4c, 0x4b, 0x1f, 0x9a, + 0x18, 0x37, 0x8c, 0x31, 0xa7, 0xc6, 0x0c, 0x4b, 0x4c, 0x4e, 0x60, 0xd2, 0xd2, 0x63, 0xd2, 0xe3, + 0x98, 0xe4, 0x41, 0xe9, 0x4c, 0xda, 0x90, 0x94, 0x94, 0x41, 0xa9, 0xe9, 0x71, 0x66, 0xa6, 0x6b, + 0x57, 0x98, 0x74, 0x7f, 0x9f, 0xf4, 0xa3, 0xdf, 0xe2, 0x9f, 0x37, 0xb9, 0x7c, 0xb4, 0x04, 0x20, + 0x15, 0x20, 0x0c, 0xc0, 0x0f, 0xf0, 0xec, 0x2d, 0x80, 0x63, 0x00, 0x9b, 0x00, 0x16, 0x01, 0xc0, + 0xf7, 0x3a, 0xf8, 0x5e, 0x17, 0x26, 0x74, 0x9d, 0x9c, 0x5c, 0xbe, 0x20, 0x25, 0x97, 0xcf, 0x41, + 0xf8, 0x73, 0xf0, 0xed, 0x1c, 0x84, 0x3b, 0x07, 0x71, 0xbe, 0x83, 0xe7, 0xef, 0xe0, 0xf9, 0x3b, + 0x78, 0xfe, 0x0e, 0x9e, 0xcf, 0xc3, 0xf3, 0x79, 0x78, 0x3e, 0xbf, 0xc9, 0x39, 0xb6, 0x2e, 0x5f, + 0x38, 0xd4, 0x72, 0x7f, 0x71, 0x8a, 0x73, 0xbc, 0x5e, 0xbe, 0xb0, 0x8e, 0xd4, 0xf7, 0x67, 0x1c, + 0xd8, 0xd2, 0xe5, 0xda, 0x55, 0xb8, 0xef, 0xee, 0xfa, 0xde, 0xd5, 0x47, 0xe2, 0x83, 0x08, 0xe4, + 0xa1, 0xe9, 0x89, 0xae, 0x97, 0x0a, 0xf7, 0x69, 0xb4, 0x44, 0x69, 0x57, 0xe8, 0xb5, 0xa4, 0x1a, + 0x77, 0x76, 0xb9, 0x93, 0xb0, 0xfa, 0x28, 0x53, 0x16, 0xa0, 0x64, 0x8f, 0xf3, 0xbb, 0xda, 0xe5, + 0xfb, 0xc7, 0xf0, 0x5d, 0xdd, 0xe6, 0xbb, 0xd6, 0xe5, 0xfb, 0x32, 0xf8, 0xae, 0x6d, 0xf3, 0x3d, + 0xd4, 0xe5, 0xfb, 0x04, 0xf8, 0x1e, 0xda, 0xe6, 0x7b, 0x98, 0xcb, 0xf7, 0xa1, 0xf0, 0x3d, 0xac, + 0xcd, 0xf7, 0x08, 0x97, 0xef, 0x11, 0xf0, 0x3d, 0xa2, 0xcd, 0xf7, 0xbe, 0x2e, 0xdf, 0x03, 0xe0, + 0x7b, 0xdf, 0x36, 0xdf, 0xa3, 0x5b, 0xbe, 0x37, 0xdf, 0x81, 0xef, 0xd1, 0x6d, 0xbe, 0x9b, 0x5c, + 0xbe, 0x63, 0xfd, 0x4d, 0x6d, 0xbe, 0xc7, 0xbb, 0x7c, 0xc7, 0xfa, 0xc7, 0xb7, 0xf9, 0x6e, 0x75, + 0xf9, 0x8e, 0xf5, 0xb7, 0x3a, 0xbe, 0x33, 0xed, 0x51, 0x43, 0x0b, 0x68, 0x98, 0xd7, 0xb2, 0xd4, + 0x48, 0xe1, 0xd0, 0xfb, 0xe5, 0x99, 0x84, 0xbc, 0x0b, 0x4f, 0x62, 0xfa, 0xb4, 0x0e, 0xee, 0xdc, + 0x50, 0x0e, 0x88, 0xec, 0xe0, 0x4f, 0xfe, 0xa0, 0xab, 0xdd, 0xec, 0x49, 0x99, 0xfe, 0xf4, 0x4e, + 0x64, 0x67, 0xe8, 0x55, 0x4c, 0xcf, 0x7b, 0xa8, 0x26, 0x84, 0x48, 0x62, 0x8f, 0xa2, 0x57, 0x19, + 0x3d, 0xef, 0x51, 0xa2, 0xac, 0x00, 0xd0, 0x37, 0x9f, 0x92, 0xfa, 0xe2, 0xa1, 0xac, 0xbc, 0xe5, + 0x69, 0x9c, 0x17, 0x6f, 0x37, 0x8d, 0xcc, 0x6c, 0x79, 0x37, 0xa9, 0x8a, 0xfd, 0xb9, 0xe5, 0xa9, + 0xa8, 0x8a, 0x3d, 0xe7, 0x12, 0x7e, 0x28, 0x7b, 0xb8, 0xe5, 0x69, 0xfc, 0xbb, 0x6c, 0x6d, 0xcb, + 0xd3, 0x04, 0x15, 0xbb, 0xc9, 0xe5, 0x69, 0x36, 0xbb, 0xba, 0xe5, 0x69, 0xe2, 0x5c, 0x76, 0x19, + 0xdd, 0x4d, 0x09, 0xfc, 0x6b, 0x39, 0x31, 0x6c, 0x0d, 0xbe, 0x2e, 0xf6, 0xa8, 0xcc, 0xc0, 0x12, + 0xac, 0x7d, 0xb1, 0x50, 0xc7, 0x2e, 0x7c, 0xdb, 0xd8, 0x0a, 0xd9, 0x14, 0xa1, 0x86, 0x7d, 0xb3, + 0xb4, 0x42, 0x1d, 0x87, 0xb3, 0x4c, 0x4b, 0x5e, 0xa3, 0x2b, 0x5c, 0x6b, 0x38, 0xa6, 0x86, 0xd6, + 0x30, 0xa3, 0xe5, 0xcd, 0xd8, 0x00, 0xf6, 0x6a, 0xcb, 0x53, 0x96, 0x2f, 0x7b, 0xde, 0xe5, 0x69, + 0x32, 0x5b, 0xd7, 0xf2, 0x94, 0x93, 0xc4, 0xee, 0xfe, 0xa7, 0xa5, 0x2e, 0x91, 0xd0, 0x9e, 0x3a, + 0xe6, 0xd2, 0x87, 0xf3, 0xa1, 0x0f, 0xab, 0x9d, 0x7d, 0xb8, 0xbc, 0x55, 0x1f, 0x2e, 0xff, 0xbf, + 0xf4, 0x61, 0xc6, 0x0a, 0xd7, 0x1a, 0x3e, 0xdb, 0xf4, 0x70, 0x1f, 0x0e, 0x4f, 0x77, 0xed, 0xc3, + 0x7f, 0x95, 0xb9, 0xf6, 0xe1, 0xbf, 0x9a, 0x5d, 0xfb, 0x70, 0x54, 0xbd, 0x6b, 0x1f, 0x3e, 0xa7, + 0x70, 0xed, 0xc3, 0xe7, 0xe6, 0xba, 0xf6, 0xe1, 0x68, 0xd9, 0x7f, 0xd8, 0x87, 0x22, 0xbb, 0x35, + 0x53, 0x57, 0xc2, 0xd7, 0x7e, 0x6e, 0x96, 0x5c, 0xe8, 0x3f, 0x18, 0xbf, 0x6c, 0x21, 0xda, 0xd2, + 0x82, 0xb7, 0x33, 0xe1, 0x9d, 0x84, 0xbe, 0x5b, 0x86, 0xe5, 0x17, 0xda, 0x24, 0x3c, 0x8b, 0x11, + 0xea, 0x1f, 0x29, 0xd4, 0x7f, 0x82, 0x6b, 0xff, 0xa6, 0xab, 0x5c, 0x6b, 0x3f, 0x24, 0x92, 0xd6, + 0xbe, 0xb4, 0xe5, 0x4d, 0xaa, 0x97, 0x6b, 0xff, 0xa6, 0xd5, 0xb8, 0xf6, 0xef, 0x90, 0x39, 0xae, + 0xfd, 0x3b, 0xe4, 0x0e, 0xbb, 0xbb, 0xe5, 0x69, 0x28, 0xcb, 0x6e, 0x6e, 0x79, 0x1a, 0xf6, 0x1a, + 0xfb, 0xee, 0x7f, 0x58, 0x5b, 0x53, 0xa6, 0x8a, 0xda, 0x08, 0xf3, 0xe7, 0xfb, 0x7c, 0x4c, 0xb9, + 0xb3, 0xc6, 0x55, 0x6c, 0x66, 0x09, 0x5f, 0xcf, 0xd9, 0x6c, 0xa9, 0x50, 0x4b, 0x65, 0x96, 0x51, + 0xa8, 0xa5, 0x63, 0x14, 0x67, 0xb3, 0xbe, 0x2d, 0xf9, 0xc7, 0xdf, 0x75, 0xad, 0x65, 0xca, 0x49, + 0x5a, 0x4b, 0x5b, 0xcb, 0x1b, 0xcb, 0x04, 0xd7, 0x5a, 0x26, 0x0e, 0x75, 0xad, 0xe5, 0xc0, 0x62, + 0xd7, 0x5a, 0x26, 0xee, 0x74, 0xad, 0x65, 0xd2, 0x72, 0x76, 0xf3, 0x7f, 0x38, 0x13, 0xcd, 0x99, + 0x8a, 0x12, 0x1c, 0xd1, 0x56, 0xbe, 0x9e, 0xb6, 0x14, 0xd6, 0x4f, 0xa8, 0x83, 0x17, 0x5f, 0x03, + 0x5b, 0xb4, 0x6b, 0xc9, 0xfb, 0xc8, 0x5c, 0x4b, 0xde, 0x8f, 0xb7, 0x19, 0x18, 0xd5, 0xf2, 0x26, + 0xea, 0x57, 0xd7, 0x92, 0xf7, 0xbb, 0xcb, 0x9e, 0xff, 0x47, 0xe5, 0xf1, 0x86, 0x12, 0x79, 0x29, + 0xdb, 0x53, 0x1f, 0x46, 0x62, 0xbb, 0x81, 0x5e, 0x25, 0xf6, 0x00, 0xc1, 0xa7, 0x51, 0x68, 0x4b, + 0x8a, 0xa1, 0x87, 0x5c, 0xf3, 0xef, 0x49, 0x4f, 0x73, 0x58, 0x9d, 0xcb, 0x1b, 0xc8, 0x9f, 0xe6, + 0x18, 0x60, 0xad, 0xf8, 0xb3, 0xfc, 0xd4, 0xad, 0x5b, 0x20, 0x5c, 0x68, 0x81, 0xe1, 0x42, 0x0b, + 0xb0, 0xac, 0xff, 0x43, 0x38, 0x28, 0xc9, 0x75, 0x8c, 0x46, 0x28, 0x5d, 0xcb, 0x10, 0xa9, 0xa5, + 0x65, 0xb0, 0xba, 0xbc, 0x69, 0xd5, 0x7b, 0xbd, 0xe4, 0xae, 0xbd, 0xd7, 0x7b, 0x2e, 0x5b, 0xf7, + 0x1f, 0x8e, 0xbc, 0x50, 0x01, 0x57, 0x66, 0xf2, 0x38, 0xc6, 0x9e, 0x2d, 0x8c, 0xbc, 0x72, 0x36, + 0x5f, 0xe8, 0x29, 0x5d, 0x56, 0xa0, 0xd0, 0x57, 0xd9, 0xac, 0x4b, 0x5b, 0x69, 0xbd, 0x5c, 0xcb, + 0x19, 0x9a, 0xda, 0x76, 0x94, 0x69, 0xce, 0xba, 0x96, 0x53, 0x67, 0x74, 0x2d, 0x67, 0xf0, 0x61, + 0xd7, 0x51, 0xa6, 0xbb, 0xe5, 0x3a, 0xca, 0x42, 0x76, 0xfe, 0xc7, 0xa3, 0xec, 0xbf, 0xc6, 0xf7, + 0x5d, 0xcb, 0x5c, 0xeb, 0xd0, 0xdd, 0xaf, 0x2d, 0xbe, 0xef, 0x3e, 0xdf, 0xb5, 0x0e, 0x5d, 0x19, + 0xd7, 0x3a, 0xa8, 0xe2, 0x5d, 0xeb, 0xa0, 0x31, 0xff, 0x73, 0x7c, 0x2f, 0x94, 0x3a, 0x4c, 0x18, + 0x19, 0x19, 0xc2, 0xc8, 0x18, 0xe5, 0x9c, 0x1b, 0x5a, 0xa1, 0xbd, 0x93, 0x5c, 0xdb, 0xbb, 0x73, + 0xa3, 0x6b, 0x59, 0xbb, 0xfc, 0xdc, 0x76, 0x5c, 0x3c, 0x61, 0x75, 0x2d, 0x6b, 0x17, 0x83, 0x6b, + 0x59, 0xbb, 0x94, 0xff, 0xc3, 0x71, 0xe1, 0xab, 0xf7, 0x4a, 0x2b, 0x24, 0x8c, 0xde, 0x17, 0x6d, + 0x80, 0x72, 0x9c, 0x65, 0x12, 0x70, 0xb2, 0x73, 0x71, 0x7f, 0x28, 0x8a, 0x7a, 0x67, 0xb5, 0xc2, + 0x37, 0x9b, 0x42, 0x16, 0x0a, 0x1c, 0x85, 0xaf, 0x5d, 0xc6, 0xf8, 0x26, 0x6f, 0xe0, 0x7e, 0xe5, + 0xe3, 0xf2, 0xd2, 0x78, 0xbc, 0xce, 0x21, 0x05, 0x88, 0x79, 0xe4, 0x9c, 0x4b, 0xcc, 0x0a, 0xbb, + 0x3c, 0x15, 0x62, 0x8b, 0x43, 0xb9, 0xdf, 0xd1, 0xaa, 0xce, 0x1b, 0x87, 0x19, 0x5f, 0xc1, 0x5b, + 0x76, 0x98, 0x2a, 0x99, 0xa6, 0x0b, 0x98, 0x5c, 0x15, 0x4a, 0x96, 0x38, 0xd2, 0xe0, 0x73, 0x3f, + 0x52, 0xd7, 0x2a, 0x8d, 0x12, 0x65, 0x72, 0x8b, 0x8c, 0x05, 0x6f, 0xa7, 0x94, 0x96, 0x71, 0x3d, + 0xea, 0xf8, 0xf7, 0x6b, 0x40, 0xb9, 0x5d, 0x67, 0xb9, 0x77, 0x24, 0x2f, 0xd6, 0x7b, 0xb5, 0x3c, + 0x1f, 0x19, 0xeb, 0x4c, 0x49, 0x15, 0xba, 0x03, 0xee, 0x52, 0xe9, 0x73, 0x0a, 0x3d, 0x4d, 0x55, + 0x50, 0xf9, 0x59, 0x3f, 0xa5, 0x75, 0x71, 0x6d, 0xdd, 0xb4, 0x96, 0x53, 0xaf, 0x8c, 0x05, 0xac, + 0x8c, 0x68, 0x09, 0x70, 0xe0, 0xa5, 0x04, 0xf7, 0x5b, 0x92, 0x24, 0xbc, 0xbe, 0x99, 0xca, 0x48, + 0xed, 0x5c, 0x07, 0x3c, 0x65, 0x21, 0x4b, 0x20, 0x6d, 0x47, 0x5a, 0x49, 0x19, 0x68, 0x69, 0x73, + 0x32, 0xef, 0x6f, 0xc8, 0xd9, 0x0a, 0xd5, 0x58, 0xb6, 0xa8, 0x11, 0x54, 0x76, 0x18, 0xeb, 0x30, + 0xdc, 0xf5, 0xeb, 0x81, 0x3d, 0x89, 0x7c, 0xc9, 0x97, 0xd0, 0x9d, 0xb4, 0x0a, 0x7b, 0x94, 0x4b, + 0x0d, 0x36, 0x27, 0x2f, 0x69, 0x93, 0x56, 0x03, 0x4d, 0x25, 0xc8, 0x5a, 0x61, 0x9b, 0xdc, 0xaa, + 0x6e, 0x75, 0x7c, 0xea, 0xff, 0xdf, 0x68, 0x11, 0x2a, 0xc9, 0xc6, 0x4b, 0xfd, 0xc3, 0x68, 0x59, + 0xb8, 0x0f, 0xcf, 0x60, 0xe1, 0x1d, 0xf5, 0xc5, 0xc3, 0x6b, 0x46, 0x3c, 0x18, 0x2e, 0x8c, 0x07, + 0x4a, 0xbf, 0x22, 0xe5, 0x0a, 0xa5, 0xea, 0x8b, 0x39, 0x7e, 0x7d, 0x03, 0x28, 0xe8, 0x03, 0x8c, + 0x51, 0xa8, 0x6b, 0xe0, 0x53, 0x46, 0x62, 0xed, 0x5a, 0x0e, 0x5c, 0xce, 0x22, 0x22, 0x33, 0xad, + 0x21, 0xf2, 0xae, 0x56, 0xd4, 0x10, 0x6c, 0x99, 0x2b, 0x2e, 0xf1, 0x23, 0x9c, 0xf1, 0xe7, 0xb4, + 0x8a, 0x1f, 0x8f, 0xf1, 0x8f, 0xad, 0xfa, 0xdb, 0xf8, 0xbe, 0xce, 0xf8, 0xd6, 0x56, 0xf1, 0x4d, + 0x18, 0xff, 0xf8, 0xd0, 0xbf, 0x8d, 0x2f, 0x77, 0xc6, 0xf7, 0x6a, 0x15, 0x3f, 0x1a, 0xe3, 0x9f, + 0x18, 0xfb, 0xb7, 0xf1, 0x43, 0x1d, 0xf1, 0x9b, 0x5b, 0xd7, 0xbf, 0x2f, 0xc6, 0xff, 0x26, 0xf5, + 0x1f, 0xe6, 0x7f, 0x1f, 0xe2, 0xb7, 0xae, 0x7f, 0x04, 0xc6, 0x3f, 0xa9, 0xfd, 0xdb, 0xf8, 0x0a, + 0x8c, 0x7f, 0x58, 0x0a, 0xf1, 0x5b, 0xd7, 0x3f, 0x8c, 0xc6, 0xdf, 0xf6, 0x0f, 0xe3, 0xfb, 0x43, + 0xfc, 0xd6, 0xf5, 0x0f, 0xc5, 0xf8, 0xa7, 0x74, 0xff, 0xac, 0xfd, 0x31, 0xfe, 0x83, 0xd6, 0xf5, + 0xd7, 0xd2, 0xf8, 0x87, 0xfe, 0x36, 0xbe, 0xda, 0xd1, 0x7e, 0x0f, 0x5a, 0xd7, 0x5f, 0x8d, 0xf1, + 0x4f, 0x57, 0xfd, 0x6d, 0x7c, 0x99, 0xa3, 0xfe, 0x0f, 0x5a, 0xd7, 0x5f, 0x89, 0xf1, 0xcf, 0xc4, + 0x3f, 0x2a, 0x7e, 0xf2, 0x38, 0x5e, 0x6f, 0x87, 0xe7, 0x6b, 0x9b, 0x33, 0x05, 0x1c, 0x87, 0xa9, + 0xca, 0x63, 0xef, 0x41, 0x6a, 0x4f, 0xb6, 0x9c, 0x9e, 0x3f, 0x38, 0x0d, 0x69, 0x2d, 0xb7, 0x97, + 0xd1, 0xf7, 0xfa, 0x36, 0xef, 0x57, 0xd9, 0x53, 0xe8, 0x7b, 0x63, 0x9b, 0xf7, 0xab, 0xed, 0x1a, + 0xfa, 0x7e, 0x50, 0x9b, 0xf7, 0xd5, 0xb6, 0x70, 0x3d, 0xee, 0x91, 0x49, 0xa0, 0xec, 0xab, 0x61, + 0xc4, 0x4d, 0x4e, 0x59, 0xe0, 0x7c, 0x5e, 0x05, 0xcf, 0xb9, 0x2e, 0xcf, 0xcb, 0xe1, 0x79, 0x38, + 0x4a, 0x56, 0xa0, 0x2e, 0x9b, 0x13, 0x0f, 0xd3, 0x32, 0xc6, 0xfc, 0x4c, 0x9c, 0xd8, 0xf2, 0xc1, + 0x31, 0xe0, 0x1b, 0xcb, 0x1d, 0x21, 0xd0, 0xaf, 0x97, 0xaa, 0x88, 0xca, 0x1b, 0x95, 0xd3, 0x75, + 0x41, 0xa6, 0xcb, 0x25, 0xd5, 0x78, 0x92, 0x81, 0xa1, 0x9c, 0x69, 0x57, 0x27, 0x34, 0x35, 0x37, + 0x03, 0xce, 0x68, 0x29, 0xcb, 0x62, 0x97, 0x72, 0x2c, 0x76, 0x29, 0xc3, 0x62, 0x5e, 0x72, 0x1c, + 0x7d, 0x74, 0x51, 0x99, 0xc4, 0x8b, 0x98, 0x03, 0x95, 0x79, 0xee, 0x88, 0x5a, 0xfa, 0x7a, 0xf4, + 0xb7, 0xc0, 0x4b, 0x40, 0x53, 0xe9, 0x67, 0x7a, 0x2f, 0x26, 0x41, 0x70, 0xcf, 0x00, 0xa8, 0xe8, + 0xb9, 0xcb, 0xe5, 0xc3, 0xa3, 0xe3, 0xa0, 0x5f, 0xd0, 0x73, 0x9e, 0x2e, 0x8f, 0x96, 0x66, 0xa6, + 0xe0, 0xf3, 0x8b, 0x71, 0xf4, 0xa5, 0x15, 0x4a, 0x67, 0x93, 0xa3, 0x54, 0x05, 0xb7, 0x1c, 0xda, + 0xa9, 0x1c, 0xf0, 0x2d, 0xbc, 0x71, 0x78, 0x66, 0x77, 0xf4, 0x19, 0x84, 0xb5, 0x14, 0x3f, 0xf7, + 0xb0, 0x9f, 0x03, 0xe8, 0xf1, 0x2e, 0x8c, 0xb1, 0x6b, 0x79, 0x7b, 0xe5, 0xd3, 0x66, 0x12, 0xd9, + 0xb5, 0xdc, 0xfc, 0xb4, 0xb2, 0x3d, 0x89, 0xea, 0x59, 0x2e, 0x72, 0x23, 0x72, 0xf8, 0x25, 0x44, + 0xa1, 0xaa, 0xe0, 0xdb, 0x27, 0x79, 0x08, 0xb7, 0x06, 0xa5, 0x47, 0x54, 0x30, 0xec, 0x34, 0x89, + 0x30, 0x7a, 0x32, 0xe8, 0x29, 0xda, 0x1a, 0x97, 0xf3, 0x52, 0x11, 0xb7, 0x46, 0x38, 0x85, 0xad, + 0xa1, 0x57, 0x77, 0x7a, 0x46, 0xe2, 0x46, 0x3c, 0xe8, 0xc9, 0x98, 0x1b, 0x51, 0xd2, 0xf3, 0x2f, + 0x37, 0x32, 0x96, 0xab, 0xa3, 0x27, 0x2a, 0x27, 0x84, 0xf3, 0xdc, 0xd3, 0xc2, 0x49, 0xef, 0x45, + 0x7a, 0xed, 0xca, 0x35, 0xd0, 0x6b, 0x7b, 0x8e, 0x4a, 0xee, 0x51, 0x49, 0x00, 0x22, 0xce, 0xe5, + 0x4f, 0x46, 0xc4, 0x99, 0xd6, 0xf5, 0x24, 0x00, 0xae, 0xc3, 0x4d, 0x8b, 0x15, 0xc0, 0xed, 0xd4, + 0x4c, 0xb7, 0x7b, 0x15, 0x8b, 0xe0, 0x57, 0x06, 0x4f, 0x78, 0xa6, 0x79, 0xc2, 0x90, 0x1e, 0x6c, + 0xe1, 0xd6, 0x1b, 0xf2, 0xe1, 0xc9, 0xc2, 0x6d, 0x86, 0x2b, 0x7a, 0x13, 0xd9, 0x01, 0x57, 0x29, + 0x5c, 0xf7, 0x40, 0x6c, 0x99, 0xbd, 0xaf, 0x5a, 0x47, 0xfc, 0x30, 0x96, 0x4d, 0x56, 0x7c, 0xa1, + 0x76, 0x46, 0x0f, 0x23, 0xf1, 0x03, 0xaa, 0x40, 0x4e, 0x4f, 0x60, 0x2f, 0xdf, 0xbc, 0x82, 0x72, + 0xdd, 0xbc, 0x25, 0x05, 0x08, 0x21, 0xe9, 0x11, 0x4b, 0xfc, 0xac, 0x1f, 0x70, 0x87, 0x6c, 0x5e, + 0x2c, 0x11, 0xd5, 0xd3, 0x72, 0xef, 0x0b, 0x1e, 0xc0, 0x9d, 0xa3, 0x52, 0xa4, 0x0a, 0x78, 0xaa, + 0x67, 0xf2, 0x49, 0x40, 0x70, 0x36, 0x91, 0x70, 0x57, 0x83, 0xf3, 0x49, 0x27, 0xae, 0x91, 0x81, + 0xd4, 0x65, 0xb8, 0x5b, 0x28, 0x29, 0x16, 0xb3, 0x81, 0xd4, 0xb7, 0xba, 0xa4, 0xd8, 0x8d, 0xf5, + 0x35, 0xd7, 0xda, 0x24, 0xc5, 0x12, 0x56, 0x6a, 0xae, 0xcd, 0x95, 0x16, 0xa3, 0x35, 0x97, 0x13, + 0xc5, 0x3e, 0x35, 0xd3, 0xb3, 0x88, 0x28, 0xfb, 0xc4, 0x74, 0x43, 0x3f, 0x0d, 0xb5, 0xe0, 0x2a, + 0x8a, 0x26, 0x41, 0x24, 0x4c, 0xe4, 0x2b, 0x52, 0x93, 0x4c, 0xb2, 0x8e, 0x58, 0x48, 0x39, 0x39, + 0x27, 0x1a, 0x41, 0xf6, 0x90, 0x3b, 0xa4, 0x0a, 0xca, 0xa8, 0x23, 0x01, 0xd8, 0xe6, 0x7c, 0x49, + 0xef, 0x9a, 0x80, 0xcb, 0xdb, 0xf9, 0xd0, 0xdb, 0xbd, 0xf0, 0x76, 0x0d, 0x7d, 0x2b, 0x6f, 0xfd, + 0xe5, 0x5e, 0x29, 0x7c, 0x69, 0x7c, 0xd4, 0x97, 0x26, 0x15, 0x7c, 0x39, 0xdb, 0x36, 0xa5, 0x3f, + 0xb6, 0xb1, 0xa3, 0x1e, 0x15, 0xfa, 0xfe, 0x5b, 0x10, 0x7a, 0xfd, 0xa3, 0xbe, 0x3c, 0xa8, 0x66, + 0xd1, 0x5b, 0xdb, 0x23, 0xbe, 0x34, 0xaf, 0x60, 0xcb, 0xda, 0xa4, 0x5f, 0xef, 0x56, 0x47, 0x4f, + 0xd1, 0x15, 0x6c, 0xee, 0x23, 0x62, 0xd4, 0xcb, 0x2e, 0xb2, 0xf1, 0x8f, 0x7a, 0xef, 0x3d, 0x02, + 0x28, 0xc0, 0x47, 0xbc, 0xf7, 0x39, 0xcd, 0x06, 0x3c, 0xea, 0xbd, 0xdf, 0x12, 0x9a, 0x8b, 0x3f, + 0x2b, 0x59, 0x7a, 0x80, 0xe5, 0xa5, 0x39, 0x24, 0xac, 0x4c, 0x65, 0x64, 0xfc, 0x6c, 0x4d, 0xac, + 0xbf, 0x69, 0xb1, 0xb2, 0x80, 0x3b, 0xd4, 0x72, 0xb6, 0xe3, 0x94, 0x4a, 0x97, 0x73, 0x55, 0xbc, + 0x3c, 0x12, 0xcc, 0xdc, 0x1b, 0x54, 0xbb, 0xdc, 0xa2, 0xf6, 0x54, 0x27, 0x33, 0x51, 0x15, 0x32, + 0x12, 0x5d, 0x42, 0x98, 0x44, 0x5d, 0x21, 0xcc, 0xf1, 0x0d, 0xdc, 0xb9, 0xfe, 0xb0, 0x5e, 0x68, + 0xac, 0x65, 0xa4, 0x94, 0x0c, 0xb8, 0x47, 0xea, 0x03, 0x4d, 0x03, 0xe1, 0x37, 0x60, 0xb9, 0xc2, + 0x1f, 0xed, 0x9c, 0xd8, 0x99, 0x4c, 0xb9, 0x95, 0xd8, 0x93, 0xd0, 0x2a, 0x8b, 0xcd, 0xc4, 0x06, + 0xc8, 0x09, 0x37, 0xdd, 0x1e, 0x04, 0xbf, 0x33, 0x80, 0xd3, 0x22, 0xc4, 0xcd, 0x16, 0x6a, 0x32, + 0x02, 0xaf, 0xe7, 0x86, 0x7a, 0x26, 0xa7, 0x2b, 0x52, 0x16, 0xa0, 0x76, 0x57, 0x09, 0xb7, 0x69, + 0x3d, 0x11, 0xdb, 0xc4, 0xa9, 0xd3, 0x81, 0x47, 0x73, 0x13, 0x74, 0x92, 0x96, 0x9e, 0xae, 0xa0, + 0xb4, 0x0c, 0xda, 0xad, 0x12, 0x25, 0x5e, 0x25, 0xfe, 0x56, 0xa3, 0x7d, 0x39, 0x23, 0x4e, 0xad, + 0x40, 0x69, 0xcb, 0xba, 0x99, 0xad, 0x65, 0x01, 0x80, 0x12, 0x52, 0xd2, 0x72, 0xf6, 0x87, 0x72, + 0xc6, 0x02, 0xde, 0xa0, 0xe5, 0x44, 0xf9, 0x00, 0xb1, 0xb5, 0xc4, 0x8d, 0x31, 0x32, 0xd3, 0x58, + 0x22, 0x36, 0x52, 0x0b, 0x54, 0xa6, 0xa3, 0xbb, 0x8f, 0xee, 0x8b, 0xb9, 0x21, 0xa3, 0x36, 0x86, + 0x99, 0xe9, 0x19, 0x1f, 0x92, 0xf0, 0x72, 0x92, 0xb2, 0x6b, 0x0a, 0x79, 0xe3, 0x70, 0x19, 0x79, + 0xf5, 0xd0, 0x64, 0xf2, 0xfa, 0xd7, 0xa5, 0x44, 0x39, 0x40, 0x1d, 0xaf, 0x73, 0x53, 0x8b, 0x15, + 0x7e, 0xb4, 0x4e, 0xa1, 0x99, 0x0a, 0x2b, 0x9e, 0x51, 0x96, 0xc8, 0x79, 0xa9, 0xfa, 0xe9, 0x2c, + 0x43, 0xeb, 0x65, 0xa3, 0xf5, 0x42, 0x89, 0x79, 0xac, 0x19, 0x11, 0xe5, 0x42, 0x69, 0x09, 0xd9, + 0x01, 0xbf, 0xc9, 0x7a, 0xa9, 0x05, 0x35, 0x7b, 0x50, 0x63, 0x08, 0x65, 0x3b, 0xea, 0x03, 0x92, + 0xb5, 0x74, 0xbd, 0x81, 0x95, 0x24, 0x14, 0xcb, 0x25, 0x9a, 0x8e, 0x7e, 0x85, 0x45, 0x2a, 0x3d, + 0x81, 0xb6, 0x48, 0x24, 0x11, 0x18, 0xa6, 0xc3, 0xdd, 0x94, 0x05, 0x26, 0x63, 0x4b, 0x49, 0x30, + 0x2c, 0xcc, 0xc0, 0x80, 0x62, 0x11, 0xd5, 0x1e, 0x91, 0x6d, 0xe3, 0x4f, 0x4a, 0xa3, 0x4b, 0xfa, + 0x6f, 0x7a, 0x31, 0x8b, 0x90, 0xbb, 0xa8, 0x93, 0x44, 0x2d, 0x38, 0xa1, 0x36, 0x11, 0x00, 0xcd, + 0x2d, 0x9e, 0xe6, 0xb6, 0x8a, 0x6a, 0x97, 0x39, 0xf2, 0x0a, 0xa0, 0x98, 0x44, 0xa2, 0xa9, 0x60, + 0xe5, 0x34, 0x0d, 0x49, 0x30, 0xcc, 0x7f, 0x2d, 0x49, 0x7d, 0x51, 0x63, 0x34, 0x19, 0x4b, 0x69, + 0x7e, 0x28, 0x19, 0xef, 0xc8, 0x87, 0xc7, 0x3b, 0xe4, 0xa4, 0x5c, 0x44, 0x2d, 0x67, 0x1c, 0x2e, + 0x79, 0x72, 0x13, 0xcc, 0x59, 0x52, 0xf9, 0x4f, 0xf3, 0x23, 0xef, 0xee, 0xa0, 0xb9, 0xe8, 0x2a, + 0xd8, 0x48, 0x9a, 0x96, 0x01, 0xf0, 0x4d, 0x10, 0x4a, 0x5c, 0x88, 0x63, 0xb8, 0x3f, 0xd0, 0xbb, + 0xb1, 0x0c, 0x53, 0xee, 0x04, 0x58, 0xc4, 0xcf, 0xba, 0x86, 0x28, 0x6c, 0x8a, 0x81, 0x0d, 0xc4, + 0xbf, 0x6b, 0x32, 0x51, 0xe0, 0x2a, 0x7c, 0xb8, 0x80, 0x00, 0x53, 0x92, 0x3a, 0x1d, 0x78, 0xc5, + 0x40, 0x58, 0x85, 0x03, 0xd4, 0xc4, 0xb5, 0x4d, 0x58, 0x69, 0x04, 0xd0, 0xdc, 0x26, 0xa3, 0x9f, + 0x5f, 0xdc, 0xcf, 0x74, 0x4c, 0x90, 0xe6, 0x11, 0x2a, 0x37, 0xb5, 0x54, 0xe7, 0xcd, 0xf7, 0x3f, + 0xf4, 0x7e, 0x0e, 0xed, 0xfd, 0x4b, 0x50, 0x12, 0x29, 0xe0, 0xf9, 0x78, 0x22, 0xb1, 0x4e, 0xb7, + 0x89, 0x55, 0xee, 0xf0, 0x1b, 0xcd, 0x46, 0x60, 0x58, 0x75, 0x62, 0x99, 0x18, 0xe6, 0x03, 0x7f, + 0xe7, 0xc6, 0x98, 0xa8, 0x76, 0xdb, 0x01, 0x67, 0xfc, 0x3c, 0x67, 0x7c, 0xb9, 0xce, 0x18, 0x62, + 0x26, 0x12, 0x56, 0xa2, 0x92, 0xb0, 0x62, 0x9e, 0xf6, 0xa7, 0x67, 0xad, 0x0a, 0x87, 0x85, 0xeb, + 0xa8, 0x68, 0x8d, 0x45, 0x43, 0xb4, 0x22, 0x6d, 0xa2, 0x30, 0x4f, 0xc2, 0x5d, 0xe7, 0x09, 0x2f, + 0xa1, 0x42, 0x0e, 0xd0, 0x75, 0xce, 0x8d, 0xa8, 0x0c, 0x26, 0x18, 0x73, 0x1a, 0xfa, 0x24, 0x21, + 0x3a, 0x43, 0x2c, 0x3c, 0x19, 0xe8, 0x53, 0x07, 0x18, 0x89, 0x18, 0xfb, 0x69, 0x88, 0x3d, 0xd0, + 0x31, 0x7a, 0x71, 0xb4, 0xd2, 0xaf, 0x9d, 0x49, 0x14, 0xfd, 0x3a, 0xb0, 0x44, 0xd4, 0xea, 0xab, + 0x11, 0xd6, 0x4c, 0x33, 0xe3, 0x6f, 0xf7, 0x85, 0x77, 0xab, 0xf4, 0x3e, 0x5a, 0x23, 0x4a, 0x08, + 0x68, 0x9f, 0x1b, 0xf0, 0x0b, 0x49, 0x86, 0x70, 0x4e, 0x79, 0x74, 0x26, 0x8f, 0x94, 0x53, 0x0d, + 0x22, 0x7e, 0x35, 0x2d, 0x63, 0x92, 0x94, 0xf0, 0x06, 0xbd, 0xec, 0x86, 0xb9, 0x5b, 0x76, 0x95, + 0x12, 0x55, 0x2e, 0xd5, 0xf3, 0xa9, 0xa6, 0xb2, 0x0c, 0x2d, 0xf1, 0xf6, 0xb6, 0x49, 0xd9, 0xaa, + 0x7d, 0x4e, 0x90, 0xa1, 0xd7, 0x08, 0x32, 0x8b, 0xd1, 0x5a, 0x8b, 0x3a, 0x99, 0x97, 0x78, 0x23, + 0xdb, 0x96, 0x1e, 0x00, 0x0e, 0xe6, 0xf2, 0xcd, 0x43, 0xac, 0x58, 0x6b, 0x52, 0x75, 0x40, 0x09, + 0x4f, 0xa2, 0x90, 0xf1, 0xfa, 0x24, 0xb3, 0x4b, 0x3c, 0xa8, 0xd6, 0xb6, 0x3b, 0xf0, 0xe2, 0x2a, + 0xfa, 0x85, 0x7a, 0x9e, 0x36, 0x10, 0x1b, 0x4a, 0x3b, 0x74, 0xd2, 0x7b, 0x27, 0x2f, 0xa1, 0xb2, + 0xfc, 0x7c, 0x19, 0xa6, 0xb0, 0x6a, 0x26, 0x84, 0x44, 0xca, 0x2b, 0x70, 0x7d, 0xb6, 0x05, 0xc9, + 0x3f, 0xe0, 0xd7, 0x67, 0x9b, 0x45, 0x39, 0x10, 0x57, 0xf3, 0x16, 0x1e, 0x84, 0x8d, 0x80, 0x30, + 0x4f, 0x0f, 0x99, 0x68, 0x0b, 0x95, 0x7f, 0x30, 0x71, 0xc8, 0xd3, 0x18, 0x46, 0x05, 0xe9, 0x19, + 0x31, 0x3d, 0x08, 0x6b, 0x6e, 0x09, 0x09, 0x58, 0xc6, 0x8b, 0x72, 0xbc, 0x62, 0xd5, 0x3c, 0xd5, + 0x40, 0x18, 0x07, 0x84, 0x1b, 0xc1, 0x3f, 0x9b, 0x16, 0xf1, 0x56, 0x66, 0xa8, 0xed, 0x91, 0xbe, + 0x1a, 0xbe, 0x36, 0x91, 0x71, 0x0d, 0xdc, 0x5d, 0xb5, 0x06, 0xc0, 0x5a, 0x4a, 0x58, 0x3f, 0x66, + 0x8c, 0x40, 0x1b, 0xe5, 0xf3, 0xe5, 0x4b, 0x9d, 0xfe, 0xf1, 0x74, 0xdb, 0xcf, 0xe6, 0xe9, 0x27, + 0xe0, 0x3f, 0xf6, 0x96, 0xa6, 0x85, 0x66, 0x4b, 0x06, 0x7e, 0x48, 0xde, 0x42, 0x7b, 0xd0, 0x58, + 0x9d, 0x98, 0x14, 0xf4, 0x7c, 0x04, 0x23, 0x02, 0xe3, 0x5a, 0x5c, 0xa5, 0x35, 0x1c, 0x34, 0x18, + 0x70, 0xbe, 0x32, 0x75, 0xb2, 0x5d, 0x5d, 0x2c, 0x2b, 0x21, 0x6d, 0xa4, 0x9b, 0xfc, 0x55, 0xd3, + 0x61, 0x74, 0xf2, 0xed, 0x92, 0x0c, 0x94, 0x8e, 0x44, 0xc0, 0xd5, 0x94, 0x03, 0xc5, 0x7c, 0xf8, + 0x74, 0x79, 0x9f, 0x04, 0xf8, 0x6c, 0xa9, 0x15, 0xde, 0x2c, 0x12, 0xf4, 0xe2, 0xf4, 0xbc, 0x8e, + 0x3b, 0x6a, 0xd3, 0x09, 0x5c, 0x59, 0x89, 0x40, 0xd9, 0x00, 0x86, 0x8f, 0xee, 0xab, 0x4a, 0xd4, + 0xfa, 0x32, 0x39, 0x44, 0xa7, 0xd3, 0x90, 0x68, 0x56, 0xc9, 0xc4, 0xcb, 0xd1, 0x37, 0x95, 0xc2, + 0xe6, 0x2f, 0x5f, 0xc3, 0x53, 0x47, 0x36, 0x2f, 0xf9, 0x1a, 0xbe, 0xfd, 0xed, 0x72, 0x65, 0xbc, + 0xae, 0xbd, 0x75, 0xb6, 0xed, 0x2c, 0x4b, 0xdc, 0x1a, 0x4b, 0x8d, 0x27, 0x66, 0xa3, 0x54, 0x11, + 0xb5, 0xe9, 0x02, 0xd4, 0x50, 0xaf, 0x7a, 0x4d, 0x7c, 0x0f, 0x2b, 0xe1, 0xe5, 0xff, 0xb5, 0xc4, + 0xbf, 0x84, 0xd9, 0x54, 0x61, 0x57, 0x65, 0xc9, 0x27, 0x28, 0x3e, 0xae, 0xb0, 0x11, 0xb7, 0xad, + 0x10, 0x47, 0xc5, 0xcb, 0x6d, 0x88, 0x3b, 0xc9, 0x2b, 0x50, 0xb4, 0x13, 0xde, 0xc2, 0x9a, 0x2a, + 0x1e, 0x6b, 0x5a, 0x4f, 0xa6, 0xa8, 0x73, 0x09, 0xaf, 0x5f, 0xae, 0xc0, 0x71, 0x21, 0xf2, 0xa0, + 0xfb, 0x1e, 0xee, 0x10, 0xa2, 0xa2, 0xc7, 0x00, 0x32, 0x05, 0x42, 0xcc, 0x01, 0x98, 0xdf, 0xa7, + 0x1c, 0xe6, 0xd0, 0x0a, 0x65, 0x9c, 0xbe, 0x07, 0x50, 0xf2, 0xf9, 0x64, 0x0e, 0xac, 0x15, 0x28, + 0x47, 0xe5, 0x39, 0xb0, 0x89, 0x0b, 0x4c, 0x5e, 0xa6, 0x89, 0x83, 0x35, 0xb0, 0x1a, 0x75, 0x18, + 0xc9, 0x7c, 0xe1, 0x0b, 0xea, 0x78, 0xc6, 0x33, 0x3d, 0xc8, 0x1c, 0xa4, 0x1d, 0x4b, 0xdc, 0xa9, + 0x5e, 0xf4, 0xe4, 0x2c, 0xaf, 0x09, 0x12, 0x5a, 0x26, 0x15, 0xeb, 0x57, 0xe2, 0x09, 0xef, 0xe4, + 0x13, 0xbc, 0xe9, 0xb3, 0x3f, 0x8b, 0xfe, 0x5c, 0xe2, 0x95, 0x1a, 0x32, 0x7f, 0x82, 0xe7, 0xc7, + 0xd3, 0x80, 0xc6, 0x1a, 0x5b, 0x33, 0xcd, 0x46, 0xc4, 0xc7, 0xd8, 0x50, 0x0c, 0x07, 0x77, 0xfb, + 0x18, 0xe0, 0x32, 0x61, 0x1e, 0x76, 0x20, 0xcb, 0x84, 0x52, 0x64, 0x93, 0xd9, 0x34, 0x2f, 0x78, + 0x87, 0x7e, 0x0f, 0x34, 0xf1, 0x90, 0x86, 0xce, 0x29, 0x57, 0x77, 0x83, 0xa7, 0x13, 0x29, 0xfd, + 0xd4, 0xf8, 0x88, 0xb8, 0x8b, 0x84, 0x72, 0xba, 0x0d, 0x6c, 0x6a, 0x1e, 0xda, 0xaa, 0x06, 0xd3, + 0x85, 0x2f, 0xee, 0xc9, 0xcb, 0xd4, 0x52, 0xe9, 0x0c, 0x18, 0x13, 0xb3, 0xa9, 0x7d, 0xda, 0xf5, + 0xa4, 0x5a, 0xef, 0xa6, 0x8c, 0x87, 0xf8, 0xd3, 0x85, 0x5c, 0x97, 0x15, 0xdf, 0xd1, 0xc4, 0xd7, + 0xad, 0x27, 0x54, 0xe7, 0x1f, 0xf7, 0x91, 0xb2, 0xfc, 0x7a, 0xa0, 0x14, 0x99, 0x94, 0xbc, 0x46, + 0xa5, 0xc9, 0xa4, 0xdc, 0x0d, 0x56, 0x41, 0xdf, 0x78, 0x08, 0x6f, 0x3c, 0xb8, 0x1b, 0xca, 0x78, + 0x4d, 0x0f, 0x32, 0x1b, 0xfa, 0x7d, 0x3a, 0x8c, 0x4d, 0xdd, 0xd2, 0x03, 0x09, 0xd7, 0xb8, 0x1b, + 0x9a, 0x38, 0x61, 0x7c, 0xe7, 0x17, 0x7b, 0x32, 0xf1, 0x35, 0x6b, 0xc8, 0x1c, 0x58, 0xcf, 0x4e, + 0x62, 0x89, 0x60, 0x7d, 0xd2, 0x38, 0xf3, 0xdb, 0xf6, 0x60, 0x3d, 0x6d, 0xd3, 0xd9, 0x54, 0xae, + 0x65, 0x26, 0x84, 0x89, 0x86, 0x3a, 0x6f, 0xd0, 0xc4, 0x77, 0xc3, 0xda, 0x69, 0xc8, 0x32, 0x26, + 0x0e, 0x42, 0x57, 0x5b, 0x72, 0x9c, 0x2d, 0xa3, 0x41, 0x6d, 0x39, 0xd6, 0x1f, 0x53, 0xd2, 0xc4, + 0x43, 0xbf, 0x39, 0xde, 0x43, 0xef, 0xf4, 0xc9, 0x27, 0x95, 0xd4, 0x4e, 0xb0, 0x02, 0xd2, 0x58, + 0x02, 0x78, 0x28, 0x68, 0xcb, 0x55, 0x32, 0xc5, 0x16, 0x09, 0xd4, 0xe4, 0x1c, 0xda, 0x37, 0x0a, + 0xec, 0x1b, 0xbb, 0x97, 0xb0, 0xc7, 0xcf, 0xb0, 0x0a, 0x5a, 0xb2, 0xf9, 0xb6, 0x4e, 0x3d, 0xb3, + 0x31, 0x26, 0xeb, 0x5b, 0x2c, 0xa9, 0x81, 0x91, 0x81, 0x94, 0xbf, 0xd9, 0xc8, 0x4a, 0x79, 0x5a, + 0x41, 0x19, 0x6f, 0x5a, 0x4b, 0xa6, 0xe0, 0xca, 0x20, 0x82, 0xd5, 0x58, 0xe4, 0xa7, 0x89, 0x87, + 0x75, 0x66, 0x8a, 0xe0, 0xb7, 0x2e, 0x94, 0xfa, 0x92, 0xf0, 0xc5, 0x95, 0x17, 0xfa, 0x17, 0xe2, + 0x42, 0x0d, 0x3a, 0x01, 0x55, 0xbb, 0xc2, 0xee, 0x95, 0x66, 0xec, 0x63, 0x24, 0x2b, 0x60, 0x1d, + 0xbc, 0x68, 0xd5, 0x10, 0x9f, 0x7c, 0x42, 0x4e, 0x63, 0xbb, 0xf0, 0xbd, 0x09, 0x38, 0x85, 0xa7, + 0xf9, 0xf3, 0xc9, 0x6b, 0xdc, 0x0d, 0xbe, 0x47, 0x81, 0xa2, 0x46, 0xd9, 0x1c, 0xa1, 0x0d, 0x5b, + 0xda, 0xcf, 0xd9, 0x8b, 0xb3, 0x5d, 0xdb, 0xed, 0x7e, 0xa9, 0xb3, 0xdd, 0x82, 0x6a, 0x66, 0xd8, + 0x27, 0x97, 0x28, 0xba, 0xc5, 0x90, 0xf4, 0xa7, 0x8d, 0x24, 0xa3, 0x1b, 0xf4, 0x03, 0x19, 0x81, + 0x54, 0xa4, 0x0a, 0xca, 0xc9, 0xcb, 0x15, 0x93, 0xd9, 0x32, 0x2d, 0x2d, 0x67, 0x39, 0xcd, 0xc5, + 0xd9, 0x1e, 0xd4, 0x72, 0x67, 0x85, 0x5d, 0x46, 0xc7, 0x30, 0xcb, 0x86, 0x0b, 0xed, 0xa1, 0x73, + 0x19, 0x8f, 0x5e, 0x90, 0xeb, 0x32, 0xf4, 0x52, 0x00, 0xf5, 0xd6, 0xf1, 0xfd, 0x84, 0x6d, 0x08, + 0xb3, 0x73, 0x04, 0xd4, 0x2f, 0x83, 0xd5, 0x2a, 0x4d, 0x54, 0xfe, 0x69, 0x09, 0xe0, 0xb6, 0x2e, + 0xad, 0xe7, 0x30, 0x63, 0x02, 0xce, 0x37, 0xb2, 0x27, 0xee, 0x69, 0x51, 0x5d, 0x29, 0x58, 0xef, + 0xae, 0x8d, 0x28, 0xe7, 0x0e, 0x51, 0xdd, 0x88, 0xe8, 0x87, 0x64, 0xd3, 0x89, 0xad, 0x96, 0x3d, + 0x87, 0x7a, 0x21, 0x06, 0xc0, 0x60, 0xaa, 0x64, 0xfd, 0x00, 0xe2, 0x3f, 0x81, 0x58, 0xa7, 0xdb, + 0x0d, 0xc8, 0xbf, 0xd8, 0x3a, 0xb1, 0x1a, 0xc6, 0xa8, 0x44, 0x7b, 0x29, 0xa8, 0x95, 0xc3, 0xf3, + 0x95, 0x25, 0x80, 0xd3, 0xc4, 0xa9, 0x33, 0x62, 0x80, 0x36, 0x85, 0x37, 0xb8, 0x8e, 0xd5, 0x01, + 0xe5, 0x76, 0x9a, 0x71, 0x03, 0x8c, 0x26, 0x47, 0x9d, 0x0f, 0xc4, 0xc3, 0x91, 0x62, 0x8d, 0x4c, + 0xed, 0xcb, 0x06, 0xf2, 0x12, 0x72, 0xdc, 0x6b, 0x10, 0xa2, 0x8b, 0x8b, 0xd4, 0xf6, 0x6c, 0x17, + 0x1f, 0x71, 0x73, 0xa1, 0x0c, 0xa7, 0x59, 0xb1, 0x8a, 0xae, 0xcc, 0xc6, 0x20, 0x07, 0xee, 0xa5, + 0x9a, 0xbd, 0xa1, 0xaa, 0x1c, 0xc2, 0x6b, 0x84, 0x29, 0xe4, 0xeb, 0x08, 0x61, 0x08, 0xf1, 0xb7, + 0x49, 0x7b, 0xe5, 0x90, 0x40, 0x12, 0x68, 0xcd, 0x01, 0x7c, 0xa6, 0x28, 0x8e, 0x76, 0x59, 0x4b, + 0x28, 0x5e, 0x15, 0xb8, 0xbe, 0x71, 0x7c, 0x3a, 0x34, 0x15, 0xb4, 0xf0, 0xb1, 0x04, 0x29, 0x01, + 0xa5, 0xb1, 0xa5, 0x04, 0x18, 0x0a, 0xeb, 0x1d, 0x09, 0xab, 0xbf, 0xca, 0x53, 0xeb, 0x58, 0x03, + 0xe7, 0x08, 0x56, 0x4a, 0x5a, 0x56, 0x3b, 0x06, 0xb1, 0x31, 0xac, 0x37, 0x52, 0x5a, 0x0e, 0x2f, + 0x58, 0x79, 0x4d, 0x38, 0x42, 0xd8, 0x51, 0xca, 0x01, 0xb8, 0x12, 0xb3, 0x43, 0x27, 0x30, 0x27, + 0x17, 0x30, 0xb1, 0xcc, 0xcb, 0x26, 0x33, 0xcb, 0x30, 0x46, 0x79, 0x15, 0x4a, 0xdd, 0xd8, 0x02, + 0x80, 0x26, 0x92, 0xd8, 0x65, 0x24, 0x1f, 0xfd, 0x04, 0xb2, 0x52, 0x71, 0x3e, 0xfa, 0xe6, 0x2e, + 0x13, 0x51, 0x39, 0x43, 0x47, 0x9b, 0x1d, 0xb3, 0x9a, 0xed, 0x81, 0xce, 0x94, 0x7d, 0x31, 0xe5, + 0x62, 0x11, 0x7c, 0x47, 0xdc, 0x9f, 0x82, 0xd6, 0x53, 0xb0, 0x35, 0x29, 0xef, 0x2a, 0x03, 0x1a, + 0xde, 0x02, 0x6b, 0x73, 0x7d, 0xe7, 0x63, 0x6c, 0x27, 0xeb, 0xfb, 0x24, 0xc8, 0xee, 0x87, 0x6d, + 0x84, 0x16, 0x45, 0x78, 0x9d, 0x1c, 0x98, 0x29, 0x2a, 0x75, 0x1a, 0xed, 0xb3, 0x8b, 0xc2, 0x17, + 0x1c, 0x0f, 0xf5, 0x81, 0xa3, 0xf8, 0xaf, 0xc2, 0xec, 0x12, 0xa3, 0xb4, 0xbc, 0x63, 0x7d, 0xc3, + 0x75, 0x05, 0x68, 0x95, 0x16, 0x3d, 0xec, 0x73, 0xc2, 0xaa, 0xb2, 0x0f, 0x68, 0xa2, 0xbe, 0x6a, + 0x8b, 0xd6, 0x53, 0x93, 0x8c, 0xb2, 0x8e, 0x6a, 0xdc, 0x5d, 0x76, 0x48, 0x9f, 0xee, 0x73, 0xf2, + 0xcd, 0x32, 0x12, 0x45, 0x39, 0xca, 0x43, 0xf4, 0xbe, 0x27, 0x95, 0x0a, 0x95, 0x91, 0x58, 0xee, + 0x34, 0x9d, 0x59, 0xe7, 0xe8, 0x53, 0x0c, 0xe5, 0x8d, 0x65, 0xc4, 0x44, 0x79, 0x63, 0x19, 0x09, + 0xe3, 0x79, 0x63, 0x4a, 0x35, 0xfb, 0xeb, 0x43, 0xc9, 0x72, 0x28, 0x29, 0xce, 0xad, 0x9e, 0x80, + 0xff, 0x8b, 0x93, 0x97, 0x21, 0x6f, 0x09, 0x33, 0xcf, 0xf1, 0x36, 0x96, 0xbe, 0x39, 0xe7, 0xf2, + 0x26, 0x86, 0xbe, 0xa9, 0xa7, 0xfa, 0xf7, 0xeb, 0x9d, 0x6f, 0x4d, 0xf4, 0xed, 0x55, 0xa7, 0xe7, + 0xd1, 0x50, 0x4a, 0x69, 0x85, 0x31, 0x56, 0x98, 0xcd, 0x0e, 0x2a, 0xb0, 0x93, 0x4b, 0x2a, 0x61, + 0xc9, 0xdb, 0x38, 0xe4, 0xb9, 0x1b, 0x79, 0x3f, 0x56, 0xa8, 0xd7, 0x56, 0x4a, 0x34, 0xbc, 0x47, + 0xbd, 0x12, 0xb4, 0x69, 0x53, 0xc3, 0x4b, 0xf1, 0x43, 0xdd, 0x94, 0x71, 0x71, 0xd7, 0xb8, 0x7d, + 0xa8, 0x8b, 0x0d, 0x3c, 0xb8, 0xd1, 0x3e, 0xaa, 0xb7, 0x89, 0x48, 0x4c, 0x79, 0x44, 0x8a, 0xb6, + 0x84, 0xf4, 0x5e, 0x68, 0x09, 0x37, 0x63, 0x41, 0x58, 0x39, 0x49, 0x67, 0xe2, 0x8e, 0xd7, 0xd1, + 0xfc, 0x56, 0x21, 0x15, 0xaa, 0x8c, 0x63, 0x06, 0xfb, 0xa1, 0x2f, 0xbc, 0x69, 0xc7, 0x62, 0x8e, + 0x19, 0x7b, 0xc7, 0xc0, 0xfa, 0x1d, 0xdb, 0x3b, 0x9b, 0xf8, 0x13, 0x2f, 0x66, 0x30, 0x6f, 0x4f, + 0xc7, 0x60, 0x44, 0xfe, 0x45, 0x41, 0x4e, 0x54, 0x0a, 0xbd, 0x56, 0x89, 0x7b, 0x55, 0xd0, 0x3b, + 0xd7, 0x46, 0x44, 0x71, 0x6b, 0xa8, 0x0d, 0xc4, 0xbf, 0xb0, 0x6d, 0x23, 0x68, 0x38, 0x6c, 0x72, + 0xbe, 0x91, 0xd3, 0x71, 0xee, 0xd5, 0x42, 0x97, 0x08, 0x3d, 0xb9, 0x44, 0xd0, 0x16, 0x97, 0x23, + 0xaf, 0xaf, 0xd5, 0x50, 0x7f, 0x71, 0x32, 0x62, 0x2c, 0x41, 0x0d, 0x04, 0x05, 0x6a, 0x07, 0x09, + 0x74, 0xf6, 0x39, 0x95, 0x8e, 0xc8, 0x70, 0xdd, 0x26, 0xbc, 0xfd, 0x37, 0xe8, 0xe3, 0xa7, 0x49, + 0xca, 0x02, 0x35, 0x69, 0xd1, 0x40, 0x50, 0xa1, 0xad, 0x18, 0x39, 0x6d, 0x99, 0x70, 0x21, 0x26, + 0xd6, 0x75, 0x2b, 0xd5, 0x76, 0x27, 0x62, 0x35, 0x7e, 0xd5, 0x28, 0xfa, 0xe1, 0x7e, 0x42, 0x75, + 0xe7, 0x6c, 0x58, 0xb3, 0x5e, 0x83, 0x5f, 0x0f, 0xee, 0xf5, 0x7e, 0x80, 0x89, 0xb8, 0x65, 0x30, + 0x33, 0xe2, 0xd4, 0xd9, 0x44, 0xa6, 0x09, 0x26, 0x5e, 0xfd, 0xf2, 0x88, 0x3f, 0x84, 0xc9, 0x23, + 0x01, 0x10, 0x26, 0x8f, 0x74, 0xe4, 0x5e, 0x37, 0x15, 0x70, 0xcb, 0xac, 0x33, 0x61, 0x4c, 0x5c, + 0xa4, 0x72, 0x8b, 0x34, 0xbf, 0x28, 0x62, 0x10, 0x4b, 0x8d, 0x24, 0xaa, 0x2e, 0xde, 0x52, 0xdb, + 0x1a, 0x6b, 0xf1, 0x74, 0x95, 0x2d, 0xc8, 0x0a, 0xb1, 0x20, 0xce, 0x7a, 0xd4, 0x86, 0x87, 0xde, + 0x5d, 0x85, 0xfe, 0xb6, 0x9a, 0x2f, 0x52, 0xbf, 0x62, 0xd5, 0xd1, 0x52, 0xcb, 0x57, 0xe5, 0x91, + 0xe7, 0x2a, 0x18, 0x33, 0x60, 0x6c, 0x0f, 0x67, 0xcc, 0xaa, 0xa7, 0xe2, 0x89, 0xa6, 0x57, 0x01, + 0x57, 0x4d, 0x74, 0x1d, 0x0a, 0xb8, 0xd7, 0x48, 0x28, 0xfc, 0xbe, 0x4e, 0xf4, 0xd0, 0x5f, 0x30, + 0xce, 0xa9, 0x1d, 0xdb, 0x0e, 0x76, 0x49, 0xb1, 0x02, 0x56, 0x20, 0x89, 0x7f, 0x8d, 0x4c, 0xc4, + 0xbf, 0xef, 0x90, 0x4d, 0xda, 0x01, 0xb7, 0xa2, 0x25, 0x62, 0x13, 0x50, 0x81, 0x00, 0xd2, 0x98, + 0x9f, 0x89, 0xe6, 0x29, 0x0b, 0x91, 0x41, 0xcf, 0xf7, 0x39, 0xfe, 0x95, 0x75, 0x86, 0x4d, 0x13, + 0x7b, 0xab, 0x9a, 0x3c, 0x95, 0x48, 0xe4, 0xa6, 0x75, 0x30, 0xdb, 0x4c, 0xe8, 0x15, 0x15, 0xda, + 0x43, 0x86, 0xba, 0x42, 0x2d, 0x79, 0xc3, 0xea, 0x70, 0x25, 0x52, 0x9c, 0x66, 0x0e, 0x77, 0x5b, + 0x92, 0x4f, 0xbc, 0x1c, 0x31, 0x20, 0xb4, 0xdf, 0xc3, 0x61, 0x37, 0x9b, 0xed, 0x41, 0x48, 0xdd, + 0x47, 0x99, 0x98, 0xd8, 0xd4, 0x4a, 0x58, 0x9d, 0xe4, 0xc7, 0x0f, 0x57, 0xcd, 0x6f, 0xf9, 0x1e, + 0x8b, 0x3a, 0x42, 0x89, 0x44, 0x01, 0xf3, 0xd2, 0x5f, 0xef, 0x65, 0xc9, 0x05, 0xaa, 0x90, 0x62, + 0x7f, 0x28, 0x99, 0x01, 0x75, 0x87, 0x0c, 0xe6, 0xd4, 0xca, 0xa3, 0x3f, 0x13, 0x39, 0xdc, 0x33, + 0x50, 0x26, 0xd5, 0x53, 0xb9, 0xb0, 0xae, 0x1b, 0xe0, 0x57, 0x47, 0xc2, 0x89, 0x16, 0x5a, 0x93, + 0xda, 0x91, 0xb4, 0x9a, 0x6c, 0x52, 0xa8, 0x4f, 0x20, 0x6b, 0x8a, 0xbd, 0xc6, 0x2d, 0x47, 0x1d, + 0x19, 0x5d, 0x36, 0xed, 0xd5, 0xbe, 0xd8, 0xc3, 0xb0, 0x1a, 0x41, 0x9b, 0xc2, 0x9c, 0x5f, 0x0e, + 0xab, 0x7f, 0x09, 0x96, 0x8f, 0x86, 0xca, 0xa7, 0x5a, 0x58, 0x32, 0xc7, 0x58, 0xef, 0x65, 0x24, + 0xbc, 0x46, 0x6b, 0x2e, 0x61, 0x94, 0xb1, 0x8a, 0xb5, 0x44, 0x44, 0xfb, 0x45, 0xe1, 0xda, 0x2b, + 0x0f, 0xac, 0xc0, 0x1b, 0x78, 0x09, 0x1a, 0x53, 0xf7, 0xb9, 0x7c, 0x1c, 0xdf, 0x14, 0xaf, 0xa1, + 0x9c, 0x6b, 0x11, 0x70, 0x8a, 0x68, 0xa5, 0xab, 0x88, 0x68, 0xe8, 0x2e, 0x57, 0x14, 0xf3, 0x3e, + 0x70, 0x52, 0x90, 0x0b, 0xac, 0x2e, 0xfc, 0x08, 0x23, 0x76, 0x2d, 0xee, 0x52, 0xc2, 0xc8, 0x84, + 0xb4, 0xee, 0x37, 0xe0, 0x37, 0x94, 0xcd, 0x25, 0x52, 0xe5, 0x80, 0x12, 0x4e, 0x08, 0xf5, 0x2e, + 0x9d, 0xcb, 0x52, 0x53, 0x95, 0x3a, 0x98, 0x84, 0x97, 0xc2, 0xd2, 0x44, 0xc4, 0x25, 0xc4, 0x4f, + 0x47, 0x44, 0x10, 0xd2, 0x5f, 0x39, 0x80, 0x0f, 0x75, 0x7f, 0x3a, 0xae, 0x52, 0x88, 0xff, 0xa8, + 0x0e, 0x5e, 0x11, 0x6f, 0x03, 0x0a, 0xd8, 0x77, 0x7f, 0xc0, 0x85, 0x81, 0x76, 0xa5, 0x90, 0x8b, + 0x08, 0x72, 0x99, 0x4e, 0xbd, 0xb0, 0x41, 0x2c, 0xa2, 0xd0, 0x9b, 0x88, 0x5c, 0xf5, 0xa4, 0xea, + 0x39, 0x96, 0xdc, 0x9f, 0x8e, 0xd7, 0x16, 0x6b, 0xcf, 0x9a, 0x10, 0xaa, 0x55, 0x24, 0xd7, 0x22, + 0x9f, 0x14, 0x0c, 0x7d, 0xa3, 0xb7, 0x07, 0xc0, 0xe8, 0x36, 0x70, 0xbf, 0xc2, 0x6f, 0x18, 0xd7, + 0x10, 0x0e, 0x65, 0x89, 0x0a, 0x26, 0x11, 0xac, 0x7f, 0x3f, 0xf4, 0x7c, 0x8e, 0x6f, 0xa5, 0xf4, + 0xad, 0x0c, 0xde, 0x7a, 0x41, 0x49, 0x3b, 0xc1, 0xf8, 0x7d, 0x8b, 0x97, 0xe9, 0x05, 0x3e, 0x4b, + 0x6e, 0x0b, 0x85, 0x5f, 0x1f, 0x5b, 0x3a, 0xb5, 0x25, 0x24, 0xa7, 0x76, 0xa2, 0xa9, 0x8d, 0x28, + 0x18, 0xd7, 0xc7, 0x42, 0xa9, 0xa5, 0x04, 0x08, 0x3f, 0x81, 0xe2, 0xb8, 0x30, 0x35, 0xb4, 0xe7, + 0x14, 0xd2, 0x62, 0x79, 0x0b, 0xf0, 0xd9, 0xcf, 0x30, 0x5e, 0x63, 0xe3, 0x90, 0x0e, 0x34, 0xf3, + 0xbd, 0xf3, 0x20, 0x39, 0x0c, 0x28, 0x58, 0x43, 0x08, 0x77, 0x8b, 0xf5, 0x9f, 0x42, 0xd0, 0x9a, + 0x51, 0x18, 0xcc, 0x4f, 0x94, 0xc2, 0x9f, 0x40, 0x00, 0xeb, 0xfd, 0x6c, 0x28, 0xe0, 0x7e, 0x2d, + 0x71, 0xdb, 0xf4, 0x01, 0xae, 0xaa, 0x89, 0x37, 0x18, 0x77, 0x76, 0x72, 0x89, 0x84, 0x3e, 0xa9, + 0x22, 0x4d, 0x25, 0x24, 0xcc, 0xf3, 0xd5, 0x5d, 0x2a, 0x79, 0xae, 0x38, 0x75, 0xfa, 0xa5, 0xe9, + 0x89, 0x37, 0x34, 0x24, 0xbc, 0x80, 0x6b, 0xe0, 0xed, 0x86, 0x2c, 0xad, 0x1d, 0x32, 0x87, 0x2d, + 0xc4, 0x10, 0xca, 0x18, 0xa0, 0xc9, 0x31, 0x06, 0x13, 0x69, 0x7a, 0x75, 0xbf, 0x6b, 0x68, 0x43, + 0x3c, 0xe4, 0xdb, 0x40, 0xbd, 0x68, 0xde, 0x08, 0x74, 0x63, 0x51, 0xeb, 0x06, 0xc3, 0xf9, 0xb5, + 0x0d, 0xc7, 0x4a, 0x17, 0xee, 0x4f, 0x6c, 0xe0, 0xee, 0x1b, 0xe2, 0xf9, 0xb4, 0x17, 0xd6, 0xea, + 0x64, 0xbc, 0x4e, 0x8e, 0x23, 0x3e, 0x13, 0x0f, 0x29, 0x88, 0x5a, 0x5a, 0xc9, 0x1e, 0xa9, 0x8c, + 0x2b, 0x16, 0xa1, 0xfc, 0x3e, 0x50, 0x11, 0xd9, 0x7c, 0xbf, 0x2a, 0xe3, 0x0c, 0x72, 0xe0, 0x85, + 0xbd, 0x2c, 0xbb, 0x54, 0x66, 0x61, 0x44, 0x28, 0xb0, 0x35, 0x98, 0x10, 0xee, 0x67, 0xe1, 0x79, + 0x0f, 0x8b, 0xf6, 0x9d, 0x3a, 0xd1, 0x38, 0xd5, 0x4c, 0x1c, 0xb6, 0x34, 0xac, 0xe6, 0x72, 0xa5, + 0x17, 0x7c, 0x9b, 0xcf, 0x76, 0x12, 0xee, 0x34, 0xd4, 0x56, 0xad, 0x07, 0xdf, 0xea, 0x0f, 0xce, + 0x0a, 0xfa, 0xfb, 0x3c, 0x66, 0x16, 0x6c, 0x50, 0x53, 0x2d, 0x5a, 0x1c, 0xbb, 0x1a, 0x18, 0xbb, + 0xc6, 0x08, 0x3d, 0x09, 0x0d, 0xd7, 0x93, 0xb0, 0x48, 0x3d, 0x89, 0xe8, 0xab, 0x27, 0x7d, 0x23, + 0x8b, 0x48, 0x74, 0xff, 0xf2, 0xca, 0x4a, 0xc2, 0xf4, 0x2f, 0x57, 0x2a, 0x89, 0x92, 0x5a, 0x53, + 0xca, 0xc3, 0x12, 0x34, 0xaf, 0x80, 0x3c, 0xac, 0xc2, 0xfd, 0xba, 0x62, 0xa6, 0x6e, 0x01, 0x70, + 0x83, 0x82, 0xe5, 0x56, 0xa5, 0xd5, 0xe0, 0x06, 0xe5, 0x17, 0x5b, 0x76, 0x85, 0x4b, 0x2c, 0xbb, + 0x23, 0xdc, 0x2d, 0x5f, 0x08, 0xe1, 0x0e, 0x3b, 0x6c, 0xb0, 0xc2, 0xb8, 0xa5, 0x1a, 0xb5, 0xad, + 0xe4, 0xf3, 0xa6, 0xfc, 0xb9, 0xe5, 0x94, 0x16, 0xbe, 0x51, 0x58, 0x3f, 0x2e, 0xb5, 0xbc, 0x85, + 0x51, 0x2f, 0x67, 0x9c, 0xdc, 0x24, 0xbf, 0xee, 0xbb, 0xa6, 0xcb, 0xd5, 0x39, 0xce, 0x1e, 0x30, + 0xfe, 0xe2, 0xfd, 0xaa, 0x16, 0xce, 0x73, 0x26, 0x4f, 0x5f, 0xf1, 0xe7, 0x02, 0x4c, 0xa4, 0x0a, + 0x6d, 0x15, 0xe8, 0x89, 0x31, 0xe1, 0x3a, 0xc5, 0x45, 0x0c, 0x9e, 0xcc, 0x1c, 0x8c, 0xe4, 0x29, + 0xed, 0x5e, 0xf5, 0x78, 0x9e, 0xa0, 0x17, 0x03, 0xe5, 0x1d, 0x85, 0x34, 0x51, 0x62, 0x13, 0x37, + 0x3d, 0x79, 0x89, 0xde, 0x48, 0x0c, 0xad, 0xde, 0x77, 0xa0, 0xef, 0x2c, 0xfa, 0x22, 0x32, 0x96, + 0xf2, 0x11, 0x9a, 0xd0, 0x75, 0xc0, 0xaf, 0x78, 0x43, 0x18, 0x25, 0xac, 0xd3, 0xe5, 0xc2, 0xf9, + 0x8e, 0x8c, 0x31, 0x52, 0x9f, 0xcb, 0xa8, 0x59, 0x2c, 0xe1, 0xcf, 0x11, 0x78, 0xad, 0x04, 0x26, + 0x0a, 0xca, 0x60, 0x50, 0xf3, 0xe5, 0x88, 0x1a, 0x00, 0x54, 0x29, 0x94, 0x23, 0x90, 0x96, 0x23, + 0x83, 0xfa, 0x50, 0x7c, 0x44, 0x39, 0x9a, 0x9b, 0x68, 0x9e, 0xe1, 0x2e, 0xef, 0x65, 0x80, 0x57, + 0xf1, 0x5d, 0x12, 0x50, 0xc0, 0xe9, 0x42, 0x29, 0x5a, 0xbe, 0x99, 0x05, 0x2a, 0xab, 0xc2, 0x86, + 0xde, 0x29, 0xd0, 0xb7, 0xaa, 0x3f, 0x7a, 0xa9, 0x80, 0x6b, 0x10, 0x95, 0xe6, 0xf3, 0x81, 0xdf, + 0x68, 0x98, 0xa5, 0x87, 0x1f, 0x2e, 0x6d, 0x94, 0x84, 0x97, 0xeb, 0x87, 0xd2, 0xd6, 0x01, 0xce, + 0xc3, 0x16, 0xb3, 0xa0, 0xfe, 0x04, 0x94, 0x36, 0x23, 0x91, 0x2f, 0xad, 0x81, 0x96, 0xb6, 0x98, + 0xda, 0x28, 0x7b, 0xa8, 0xb4, 0x09, 0x4d, 0xcd, 0x49, 0xc9, 0x8b, 0x1f, 0x2a, 0xad, 0x2f, 0x7d, + 0x97, 0xf4, 0x50, 0x49, 0xdb, 0xd1, 0xf7, 0x91, 0xb4, 0xb4, 0x33, 0xec, 0x52, 0x7d, 0x2c, 0x89, + 0x44, 0x6d, 0x55, 0x1a, 0xbf, 0x88, 0xa0, 0xc5, 0x7c, 0x2c, 0xaf, 0x1c, 0x7e, 0x4d, 0x50, 0xde, + 0x2e, 0x8f, 0x68, 0x5d, 0xb4, 0xbb, 0x6f, 0xa0, 0x38, 0xae, 0x96, 0x5a, 0x58, 0x68, 0xb1, 0x35, + 0xe3, 0xaf, 0x0a, 0x81, 0x96, 0x2d, 0x23, 0x46, 0x5a, 0xde, 0x55, 0x80, 0x9f, 0x6a, 0x85, 0x12, + 0x07, 0xb7, 0x6e, 0xdf, 0x07, 0xaf, 0x25, 0x2f, 0x41, 0x6b, 0x33, 0x2e, 0xef, 0x65, 0xc4, 0x33, + 0x79, 0x09, 0x6f, 0x3d, 0x92, 0xee, 0x66, 0xea, 0xf0, 0xb4, 0xa2, 0xd5, 0x77, 0x2f, 0x1a, 0xe7, + 0x04, 0xff, 0x8e, 0x6a, 0xd3, 0xe0, 0xdb, 0x67, 0xe8, 0xdb, 0x73, 0xd4, 0xfa, 0xd1, 0xfb, 0x2e, + 0xa1, 0xe3, 0x1c, 0x3d, 0x62, 0x97, 0x05, 0x03, 0xcf, 0xc9, 0xd5, 0x43, 0x2d, 0xdb, 0xc3, 0x7c, + 0xf2, 0x2f, 0x7e, 0xb2, 0x76, 0x1d, 0xd1, 0x51, 0x39, 0x3c, 0x7f, 0x9e, 0x82, 0xb7, 0x0b, 0x92, + 0x58, 0x36, 0xbf, 0x62, 0x31, 0xeb, 0x55, 0x22, 0x09, 0x8e, 0xe1, 0xae, 0xb2, 0xfc, 0x49, 0xc6, + 0x55, 0x6c, 0x23, 0xb4, 0x10, 0xc4, 0x4a, 0xa9, 0x67, 0xf7, 0x1b, 0xc1, 0x56, 0x98, 0xfd, 0xb4, + 0x04, 0x34, 0x97, 0x04, 0x58, 0x09, 0xb6, 0x0a, 0x6d, 0x64, 0xa4, 0x9a, 0xc3, 0x12, 0x2a, 0x9d, + 0xc2, 0x64, 0x79, 0x09, 0x72, 0x29, 0x5a, 0x56, 0x41, 0xf3, 0xf2, 0x43, 0x9b, 0xa9, 0xf0, 0xdc, + 0x89, 0x55, 0x40, 0x2e, 0xd2, 0x12, 0x37, 0xd6, 0xab, 0x58, 0x02, 0xe5, 0xd1, 0xb1, 0x9d, 0x4a, + 0xdc, 0x9f, 0x8a, 0x81, 0xab, 0x1f, 0xb4, 0xb9, 0x8a, 0xce, 0x8c, 0xcb, 0x37, 0x0f, 0xe1, 0x9a, + 0x9c, 0xb2, 0xc0, 0xba, 0xc2, 0x86, 0xb9, 0x55, 0x63, 0x4b, 0xc2, 0x35, 0x1e, 0x72, 0x9b, 0x2b, + 0xe4, 0x26, 0x77, 0xf4, 0x88, 0x53, 0xcf, 0x78, 0x8d, 0xa0, 0xd7, 0x5d, 0x43, 0xe7, 0x5d, 0x01, + 0xa5, 0xc9, 0x53, 0x68, 0x4f, 0x5c, 0x84, 0xf8, 0x35, 0x7c, 0x4f, 0x60, 0xec, 0xc4, 0x6b, 0xc4, + 0x3f, 0xa1, 0xe9, 0xbe, 0xa1, 0x54, 0xc4, 0x96, 0x01, 0xf7, 0x86, 0x54, 0x1f, 0x5a, 0x07, 0x91, + 0x11, 0x3f, 0x5e, 0xce, 0x10, 0xb5, 0x01, 0xec, 0xa1, 0x99, 0x68, 0xf3, 0x03, 0x39, 0x95, 0x74, + 0x36, 0x88, 0xbe, 0xf3, 0xb7, 0xf7, 0xcd, 0x0a, 0xa3, 0x77, 0xf1, 0xf6, 0x08, 0x7a, 0x4d, 0xb5, + 0x45, 0xb2, 0x61, 0xd0, 0x2a, 0x3b, 0x58, 0x03, 0xfc, 0xee, 0x61, 0xc4, 0x97, 0xd7, 0x60, 0x9b, + 0xb1, 0x4a, 0x78, 0x3a, 0xc4, 0x06, 0xa1, 0xed, 0x20, 0x36, 0x00, 0x7e, 0xcf, 0xb1, 0x0a, 0xf8, + 0xad, 0x67, 0xbd, 0x68, 0xcb, 0x62, 0xfb, 0x36, 0xd2, 0xb1, 0x2a, 0x47, 0x8f, 0x0b, 0xd4, 0xaa, + 0xc7, 0x64, 0xaa, 0x37, 0x77, 0x9f, 0x9e, 0xdf, 0x42, 0x59, 0xe1, 0x6a, 0x4d, 0xde, 0xf6, 0xc7, + 0xaa, 0x87, 0x46, 0xdf, 0xb5, 0x20, 0x09, 0xb7, 0x4a, 0xa8, 0xe7, 0x1a, 0x3a, 0x5b, 0x70, 0xf4, + 0x85, 0xd0, 0x59, 0x92, 0x81, 0x75, 0x3d, 0x64, 0x70, 0x9c, 0xdd, 0xf1, 0x75, 0x35, 0xc5, 0x42, + 0x6d, 0x03, 0x13, 0x9a, 0xfe, 0x30, 0xb1, 0xb9, 0xad, 0xea, 0x6a, 0xb1, 0x5b, 0x33, 0x3b, 0xd1, + 0x3b, 0xb9, 0x5d, 0x47, 0xaf, 0x7d, 0xec, 0x7c, 0xed, 0xbc, 0x6d, 0x46, 0x96, 0x6f, 0x05, 0xab, + 0x3d, 0x0c, 0x65, 0x89, 0x50, 0xeb, 0xc0, 0xa6, 0x63, 0xe5, 0x50, 0xee, 0xf5, 0xac, 0x0a, 0x7e, + 0x37, 0xb3, 0x5d, 0xb0, 0xd6, 0x13, 0x44, 0xb4, 0x76, 0x7b, 0x68, 0xed, 0x0e, 0xd1, 0xda, 0x9d, + 0xa0, 0xb5, 0x3b, 0xd7, 0xaa, 0x76, 0x95, 0xd6, 0x58, 0x9b, 0x34, 0xb8, 0x80, 0xdb, 0xc3, 0xed, + 0x00, 0xbe, 0x59, 0x1a, 0x6c, 0xa2, 0xa3, 0x0b, 0x79, 0xa0, 0x86, 0x56, 0xb5, 0x5e, 0x03, 0x57, + 0x75, 0xf2, 0xb6, 0xa6, 0x75, 0x8f, 0xa8, 0xb5, 0x9c, 0x5b, 0xf2, 0x97, 0xb5, 0xae, 0x7c, 0x74, + 0xad, 0x9b, 0x92, 0xda, 0xf4, 0x70, 0xa2, 0x3d, 0x43, 0xa8, 0x75, 0x5f, 0x6a, 0xcb, 0x05, 0xdb, + 0xc1, 0x48, 0xaf, 0x3e, 0xb6, 0x64, 0xa1, 0x9f, 0x07, 0xd8, 0x3b, 0x65, 0x45, 0xd2, 0xbb, 0x24, + 0xa1, 0x9f, 0x87, 0xd8, 0xc2, 0x84, 0xda, 0x6b, 0x69, 0xed, 0x55, 0x42, 0xed, 0x83, 0x68, 0xed, + 0x03, 0x68, 0xed, 0x15, 0xb4, 0xf6, 0x5e, 0xb4, 0xb7, 0xb1, 0x0d, 0xea, 0xdb, 0xf6, 0xf0, 0x7f, + 0xd6, 0x0a, 0xf7, 0x56, 0xff, 0x55, 0x2b, 0x34, 0xe3, 0xc9, 0x15, 0x8f, 0x79, 0x42, 0x80, 0xab, + 0x00, 0x5e, 0x25, 0x14, 0x5a, 0x83, 0x9e, 0xae, 0xfa, 0x72, 0xc5, 0x40, 0xb9, 0x94, 0x0a, 0x5a, + 0xb0, 0x65, 0x34, 0x87, 0x72, 0xfa, 0xd4, 0x81, 0x43, 0xfd, 0xc7, 0x99, 0x94, 0xcf, 0x54, 0x73, + 0x95, 0x10, 0x6a, 0x2e, 0xbd, 0xef, 0xce, 0x55, 0x01, 0xae, 0x6e, 0x47, 0xf5, 0x33, 0xe9, 0xfe, + 0x16, 0x6f, 0x07, 0x06, 0xe3, 0x28, 0x44, 0xdc, 0x2a, 0xe1, 0xfc, 0x75, 0x35, 0x7d, 0x16, 0x73, + 0x6b, 0xd0, 0x3e, 0x33, 0x3c, 0xaf, 0xa7, 0xcf, 0x5e, 0x5c, 0x0d, 0xdc, 0x6f, 0xa6, 0xe9, 0xab, + 0xb9, 0xad, 0x31, 0x68, 0x13, 0xc1, 0xc2, 0xed, 0xa0, 0xcf, 0x1d, 0xb9, 0x5a, 0xc4, 0x71, 0x34, + 0x5c, 0x17, 0xe0, 0x84, 0x8d, 0x94, 0x13, 0x76, 0x53, 0x3c, 0x09, 0x9c, 0x30, 0xe0, 0x31, 0x21, + 0x5d, 0x6a, 0x55, 0x0b, 0xfa, 0xb1, 0x0c, 0xb9, 0xe7, 0xe6, 0xbb, 0xae, 0xa7, 0xce, 0xcd, 0x77, + 0x85, 0x53, 0x67, 0x22, 0x9c, 0x3a, 0xcb, 0x84, 0x53, 0x67, 0x05, 0xbd, 0x6a, 0xb8, 0xc0, 0xe0, + 0x04, 0x8e, 0xe7, 0xb4, 0x07, 0x70, 0x0c, 0xbd, 0x5a, 0x39, 0x0d, 0xdd, 0xff, 0x13, 0x71, 0x06, + 0x1a, 0x86, 0xe1, 0x22, 0x85, 0xb3, 0x67, 0x23, 0xfd, 0xee, 0xc3, 0x59, 0x04, 0xdb, 0x2e, 0x29, + 0xc5, 0xde, 0xa8, 0xcf, 0x2d, 0x9c, 0x54, 0x67, 0xd0, 0xb7, 0xed, 0x38, 0x96, 0x8e, 0x9e, 0x82, + 0xe6, 0x3b, 0x65, 0xa2, 0xc5, 0xfb, 0x4d, 0x71, 0xe5, 0x64, 0x20, 0x8c, 0xa3, 0xb8, 0xa6, 0xbb, + 0x68, 0xb7, 0xfc, 0x64, 0xab, 0x91, 0xa4, 0x41, 0x69, 0xdd, 0xcc, 0x70, 0x8a, 0x23, 0x02, 0xec, + 0xd9, 0x14, 0x6f, 0xa0, 0xa4, 0x58, 0x06, 0xbd, 0x52, 0xaf, 0x18, 0x6c, 0x06, 0x0d, 0xa9, 0xb6, + 0x0f, 0xcd, 0x1c, 0x8e, 0x6f, 0x15, 0x22, 0x2a, 0xe3, 0x3a, 0x8a, 0xbe, 0x0d, 0xb6, 0x4f, 0xc8, + 0xf4, 0xa3, 0x77, 0x3d, 0xec, 0x63, 0xe9, 0x55, 0x6b, 0x2b, 0x61, 0x87, 0xd2, 0xbb, 0x14, 0x3b, + 0x7f, 0x1d, 0x2c, 0x5c, 0x75, 0xb6, 0x0c, 0x36, 0x15, 0xc6, 0x54, 0x29, 0x9b, 0x02, 0xbf, 0xe5, + 0xac, 0x15, 0x7e, 0x67, 0xb2, 0x66, 0xf8, 0x9d, 0xcb, 0x46, 0xc3, 0xef, 0x12, 0x36, 0x12, 0x7e, + 0x97, 0xf7, 0x8b, 0x69, 0xbe, 0xc3, 0x86, 0x16, 0x8b, 0x6a, 0xa6, 0x51, 0x7b, 0x76, 0x62, 0xe4, + 0xd2, 0xb0, 0xe7, 0xd8, 0x4e, 0x3a, 0x98, 0xa9, 0x7d, 0x45, 0xac, 0x9f, 0x32, 0x86, 0xf5, 0x0d, + 0x14, 0xd1, 0x51, 0xaa, 0xa3, 0xa3, 0x34, 0x9c, 0xe2, 0x72, 0xdf, 0xe0, 0xc4, 0xe6, 0x1b, 0xc9, + 0x8b, 0x52, 0x16, 0x28, 0x0b, 0x9a, 0x6f, 0xd0, 0xd1, 0x1a, 0xd0, 0x6a, 0xc5, 0x12, 0xc5, 0x35, + 0xdd, 0x69, 0x48, 0x5e, 0xd4, 0xcf, 0xc8, 0xdd, 0x6d, 0xf5, 0xde, 0x8d, 0xbe, 0x6b, 0x6a, 0xb3, + 0xf6, 0x40, 0x4f, 0xd1, 0xf7, 0xf7, 0x5b, 0x85, 0xf5, 0xa0, 0xef, 0x9a, 0x5b, 0xc2, 0x3a, 0x53, + 0x2e, 0x4b, 0x5e, 0xc4, 0x18, 0xd3, 0xd7, 0x10, 0x89, 0x73, 0x5d, 0xa1, 0x29, 0x3f, 0xf4, 0xce, + 0x1d, 0xdf, 0x3d, 0xbb, 0x46, 0xb0, 0x40, 0xdf, 0x92, 0x86, 0x87, 0xe3, 0x3d, 0xcc, 0xa9, 0x73, + 0xc2, 0x6a, 0x51, 0x0c, 0x57, 0x6d, 0xf2, 0xb6, 0x3b, 0xa3, 0x78, 0x7d, 0x6e, 0xbe, 0x5e, 0xb0, + 0xaa, 0x5e, 0x21, 0xb9, 0x38, 0x97, 0xac, 0xb3, 0x6d, 0x72, 0x6b, 0x9c, 0x4d, 0xb6, 0x89, 0xdf, + 0x2f, 0x3d, 0x81, 0x14, 0x11, 0xdd, 0xbd, 0xb9, 0x48, 0x5b, 0xc2, 0x31, 0x06, 0x25, 0x30, 0x8e, + 0x2e, 0xd2, 0xab, 0x98, 0x6b, 0xa0, 0xe7, 0x9a, 0x98, 0xce, 0x6c, 0x9b, 0x14, 0x7d, 0x42, 0x1e, + 0x2e, 0x81, 0x14, 0x24, 0x9d, 0x70, 0xe5, 0xc4, 0xfd, 0x89, 0xe1, 0x68, 0x61, 0x03, 0x2d, 0xe3, + 0xa0, 0xd5, 0x64, 0xe0, 0xf2, 0x03, 0x9b, 0x1b, 0xad, 0x2f, 0xda, 0x55, 0x4c, 0x02, 0x4f, 0xa7, + 0x72, 0x5b, 0x95, 0xf4, 0xac, 0x23, 0xa2, 0x07, 0x7c, 0xcd, 0xc1, 0xaf, 0xc2, 0xfb, 0x4d, 0x02, + 0x16, 0x08, 0xec, 0x1f, 0xd2, 0xdc, 0x68, 0xb2, 0x1b, 0xe2, 0xa8, 0x14, 0x23, 0xf5, 0x06, 0xa7, + 0x34, 0xe2, 0xf8, 0x66, 0xc5, 0x13, 0x64, 0x72, 0x28, 0x81, 0x5d, 0x95, 0xe9, 0x05, 0x57, 0x1c, + 0x43, 0x33, 0x59, 0x5f, 0xb8, 0x43, 0xb9, 0x6f, 0x09, 0x91, 0xd9, 0x60, 0x54, 0x84, 0x69, 0x89, + 0x64, 0x64, 0xcc, 0xa2, 0x44, 0xd6, 0x0b, 0xef, 0x8e, 0xe5, 0x12, 0xd9, 0xa8, 0x18, 0xf4, 0x45, + 0x97, 0x8a, 0x76, 0xf0, 0xbd, 0xca, 0x48, 0xa4, 0xdb, 0xc2, 0x3d, 0x1a, 0xe4, 0x1a, 0x66, 0x5e, + 0x9a, 0x59, 0x67, 0x66, 0xe3, 0x99, 0xc4, 0xaa, 0x9f, 0x81, 0xca, 0x95, 0xf1, 0xf6, 0x04, 0x20, + 0xa4, 0xa4, 0x2a, 0x26, 0x8c, 0x7a, 0xaf, 0x7b, 0xd6, 0x58, 0x15, 0xcb, 0xaa, 0xdb, 0x7c, 0x07, + 0xae, 0xbe, 0x6a, 0x57, 0x18, 0x7a, 0x03, 0x91, 0xd6, 0x41, 0x7a, 0xc3, 0x8d, 0xac, 0xc4, 0x64, + 0x34, 0xc5, 0xa0, 0xee, 0x7e, 0xf3, 0x7d, 0x83, 0x11, 0x66, 0xbc, 0x24, 0x38, 0x91, 0x93, 0xf3, + 0x76, 0x0a, 0x80, 0x5a, 0xf0, 0x0f, 0x8e, 0xe7, 0x54, 0x40, 0x29, 0x44, 0x05, 0x43, 0x9b, 0x70, + 0x66, 0x03, 0xcc, 0x27, 0x08, 0x93, 0xd4, 0x6a, 0x3c, 0x3c, 0x99, 0xbc, 0xad, 0x11, 0x29, 0x97, + 0x11, 0x10, 0x6e, 0x2c, 0xdf, 0x6b, 0xcd, 0x38, 0xba, 0x00, 0xf7, 0x35, 0xae, 0xd1, 0x18, 0x05, + 0xc9, 0x3f, 0xb4, 0x65, 0x5b, 0x8d, 0x32, 0x30, 0x8d, 0xda, 0x94, 0x05, 0xac, 0x8e, 0xee, 0x16, + 0x52, 0xd9, 0x0c, 0xb4, 0xc9, 0x77, 0xe8, 0x06, 0x77, 0x55, 0xe8, 0xef, 0x8b, 0x34, 0x4c, 0x20, + 0xcf, 0xe3, 0xbe, 0x7a, 0x88, 0x15, 0x6b, 0x8c, 0x8c, 0x1c, 0x39, 0x92, 0xe6, 0x7d, 0x02, 0xc6, + 0xbc, 0x4b, 0x4f, 0x82, 0x04, 0x8c, 0x49, 0x71, 0x41, 0x87, 0xe6, 0xbb, 0xa6, 0x0f, 0x9a, 0xef, + 0xd3, 0xfb, 0x00, 0x0e, 0xf9, 0x3d, 0x09, 0xbd, 0xef, 0xc8, 0xc9, 0x8a, 0x11, 0x33, 0xc9, 0x05, + 0x0c, 0x88, 0xf9, 0x39, 0x70, 0x6b, 0x20, 0x84, 0x0a, 0x12, 0x70, 0x2b, 0x23, 0x60, 0x42, 0x95, + 0x80, 0x5d, 0x35, 0x70, 0xaf, 0x13, 0xb0, 0x8b, 0x01, 0xbe, 0x79, 0xc2, 0x73, 0xb8, 0x80, 0x35, + 0x23, 0x85, 0xb0, 0x51, 0x02, 0xd6, 0x44, 0x0d, 0x7a, 0xb3, 0x80, 0x35, 0x2d, 0x02, 0xd6, 0x4c, + 0x12, 0xb0, 0x66, 0x8a, 0x03, 0x2f, 0x01, 0xd6, 0xcc, 0xa0, 0x2d, 0xc4, 0x63, 0x4d, 0x16, 0xee, + 0xc7, 0x0a, 0x58, 0x33, 0x1b, 0xca, 0x91, 0x5f, 0xee, 0x69, 0x32, 0x4f, 0x16, 0xf3, 0xd4, 0xcc, + 0xed, 0x4c, 0x6a, 0xe5, 0xac, 0x05, 0x43, 0x21, 0x56, 0x22, 0x64, 0x51, 0xa6, 0xce, 0x69, 0xcd, + 0x6e, 0x99, 0x60, 0x31, 0xcf, 0x1b, 0x46, 0xd0, 0x22, 0xb4, 0xff, 0x26, 0x60, 0x2c, 0x9b, 0x80, + 0xb1, 0xca, 0xd9, 0x6c, 0x8a, 0x6d, 0x02, 0xec, 0x3a, 0x8a, 0x99, 0xa0, 0xee, 0xf6, 0x50, 0xfa, + 0xa6, 0x83, 0x8d, 0x65, 0x79, 0x5c, 0xd5, 0x91, 0x5a, 0x38, 0x96, 0x91, 0x7e, 0xb0, 0x5a, 0x1a, + 0x83, 0x63, 0x9a, 0xef, 0xb3, 0xf1, 0x80, 0x45, 0x24, 0x78, 0xcf, 0xc9, 0xd9, 0xbe, 0x14, 0xf7, + 0xc8, 0x85, 0x32, 0xfa, 0x4f, 0x16, 0xb3, 0x1a, 0x8a, 0x81, 0xfc, 0x27, 0x4b, 0x28, 0xc5, 0x10, + 0xc4, 0x06, 0xc2, 0xaf, 0x8a, 0xf5, 0xa3, 0xf8, 0x47, 0x1e, 0x29, 0x62, 0x65, 0x51, 0x22, 0x01, + 0x0f, 0xb5, 0x5e, 0x2d, 0x23, 0x5b, 0xd1, 0xf8, 0xa2, 0x84, 0xa6, 0x5b, 0xd9, 0xc9, 0x8b, 0x29, + 0xfe, 0xd1, 0xb6, 0xc2, 0x3f, 0x8b, 0x9d, 0xf8, 0x67, 0x5d, 0x2b, 0xfc, 0xb3, 0x98, 0xe2, 0x1f, + 0x6d, 0x2b, 0xfc, 0x83, 0xef, 0x9a, 0x01, 0x47, 0xa0, 0x2d, 0x69, 0x46, 0x6e, 0xe6, 0x38, 0x5b, + 0xa4, 0x3c, 0x8e, 0x48, 0x6c, 0x9d, 0xf8, 0x70, 0x78, 0x06, 0xe2, 0x88, 0x1d, 0x49, 0xf7, 0x12, + 0x58, 0x55, 0x9b, 0x2f, 0x1e, 0x8e, 0x2f, 0x0c, 0x0d, 0x47, 0x63, 0x4b, 0xe9, 0xbd, 0x07, 0x1f, + 0x52, 0x4f, 0x12, 0x9a, 0x6e, 0xae, 0x49, 0x5e, 0x1c, 0x41, 0xed, 0xe8, 0x60, 0x5f, 0x2c, 0x9a, + 0xb1, 0x68, 0x46, 0xd7, 0x18, 0x5e, 0x72, 0xcc, 0x81, 0xf3, 0x92, 0x17, 0x0b, 0xb8, 0x4d, 0xeb, + 0x82, 0xef, 0x84, 0x77, 0x14, 0xb7, 0xad, 0x73, 0xc1, 0x79, 0x8b, 0x79, 0xdc, 0xe6, 0x12, 0xd6, + 0xc3, 0xe5, 0x1d, 0x3f, 0x6b, 0xb4, 0x24, 0x34, 0xb1, 0xe9, 0x66, 0x49, 0xf2, 0x12, 0xb5, 0x91, + 0x5a, 0x36, 0xc7, 0xfd, 0x46, 0x05, 0xc9, 0xa3, 0x98, 0xce, 0x0c, 0xf7, 0x44, 0xe3, 0x23, 0x9d, + 0xc9, 0x71, 0x5c, 0x31, 0xd4, 0xa4, 0x18, 0xda, 0x43, 0x82, 0xb6, 0xfb, 0x23, 0x83, 0x92, 0x97, + 0x09, 0xd2, 0x5d, 0x0e, 0x1b, 0x1b, 0x65, 0xc2, 0x3a, 0x5b, 0x21, 0xac, 0xb3, 0xbc, 0x55, 0x07, + 0x37, 0xae, 0x4a, 0x58, 0x43, 0xab, 0x85, 0x35, 0x75, 0x15, 0x7d, 0xef, 0x2e, 0x48, 0x85, 0x05, + 0x70, 0x35, 0x14, 0x83, 0x6d, 0x16, 0xe6, 0xc1, 0x56, 0xb8, 0xdf, 0x21, 0x48, 0x7e, 0xd5, 0x0a, + 0xf3, 0x61, 0x9f, 0x21, 0x1e, 0x46, 0xf8, 0x21, 0x61, 0xb5, 0xad, 0x6b, 0xc1, 0xb7, 0xb4, 0x0c, + 0x68, 0xe3, 0xed, 0xa2, 0x60, 0x3b, 0xae, 0x01, 0x77, 0x5e, 0xa9, 0xd4, 0xd5, 0xf2, 0xe0, 0x01, + 0x40, 0x75, 0x0c, 0xe0, 0xd6, 0xb7, 0xea, 0xc7, 0x27, 0x07, 0x36, 0xdd, 0x18, 0xc1, 0xef, 0x84, + 0x53, 0x59, 0x5e, 0xd7, 0x7e, 0x57, 0xd0, 0xf7, 0xd4, 0xce, 0x32, 0xfa, 0x5c, 0xa1, 0xfd, 0x93, + 0x3a, 0x04, 0x2d, 0x38, 0x94, 0x86, 0xe5, 0x11, 0x29, 0x5a, 0x48, 0x88, 0xb9, 0x59, 0x89, 0xf2, + 0x63, 0xe5, 0x68, 0x39, 0xdf, 0x52, 0x9b, 0xc1, 0x53, 0x44, 0xb1, 0xdc, 0x5c, 0x4a, 0x0d, 0x2c, + 0xa1, 0xbc, 0x1f, 0xb6, 0x6b, 0x98, 0xc0, 0x8b, 0xc9, 0xa9, 0x6c, 0xc3, 0x2a, 0x52, 0x88, 0x6d, + 0x79, 0xea, 0x03, 0xae, 0xbc, 0xd8, 0x07, 0xb0, 0x6d, 0x1e, 0x91, 0x09, 0xe9, 0x94, 0xa2, 0xfd, + 0x7e, 0x4b, 0xed, 0x90, 0x0a, 0x4a, 0x65, 0xc5, 0x72, 0x33, 0xe1, 0xd9, 0x4b, 0x48, 0x77, 0x6e, + 0xb1, 0xd7, 0x9f, 0xa6, 0x99, 0xe4, 0x4c, 0xb1, 0xb4, 0x58, 0x4e, 0x29, 0xaf, 0x64, 0x6e, 0xb5, + 0x6b, 0x48, 0x8d, 0x23, 0xa4, 0x52, 0xc0, 0x79, 0xc9, 0x80, 0xf3, 0x80, 0xb7, 0x10, 0xa8, 0xc4, + 0x8b, 0xb8, 0xd3, 0x77, 0x9d, 0x5a, 0x8e, 0x63, 0xd5, 0x34, 0x9e, 0x77, 0x42, 0xd3, 0x75, 0x29, + 0xce, 0x1f, 0x2a, 0x95, 0xc2, 0xeb, 0xd0, 0xf9, 0xe2, 0x33, 0x2b, 0xd1, 0x18, 0x59, 0xf1, 0xab, + 0x87, 0x28, 0x3e, 0x2c, 0x6f, 0x3e, 0x21, 0xd0, 0xd1, 0x95, 0x68, 0x93, 0xd3, 0x81, 0x0f, 0xd1, + 0xf2, 0x8f, 0x80, 0xe1, 0x1c, 0x74, 0x21, 0xf6, 0x24, 0xb5, 0x0b, 0x28, 0xf4, 0x71, 0x35, 0xed, + 0x63, 0x4a, 0x15, 0x12, 0x15, 0x8c, 0x00, 0x9e, 0x22, 0x94, 0x91, 0x10, 0x6e, 0x0d, 0x84, 0x5a, + 0x4f, 0xef, 0x43, 0xb9, 0x1a, 0x98, 0xfb, 0x46, 0x61, 0x2c, 0xc8, 0x48, 0x6f, 0x6e, 0x2b, 0x7c, + 0xa3, 0x63, 0x81, 0x79, 0x8c, 0xab, 0x85, 0x7b, 0x4a, 0x0d, 0x32, 0x0a, 0xde, 0x46, 0x1f, 0xbd, + 0xf7, 0xe1, 0xea, 0xe0, 0xfe, 0x84, 0x40, 0xd1, 0x51, 0x6a, 0x50, 0x18, 0x33, 0x17, 0x21, 0x2d, + 0x39, 0x8f, 0xeb, 0x29, 0x9e, 0x6c, 0x10, 0xf0, 0xe4, 0x55, 0x01, 0xbf, 0x50, 0x8b, 0x62, 0x48, + 0x9f, 0x25, 0x36, 0xfd, 0x3a, 0x16, 0xf0, 0xd9, 0x6a, 0x57, 0xec, 0xc7, 0xf8, 0x50, 0xcd, 0x32, + 0x35, 0x8f, 0xdb, 0xec, 0xa9, 0xb0, 0x76, 0xf2, 0xdc, 0x5c, 0x39, 0x6b, 0x14, 0xb0, 0xa3, 0x99, + 0x5e, 0x55, 0x68, 0xcb, 0x91, 0xe2, 0xb4, 0x10, 0x7b, 0x34, 0x8f, 0xf7, 0x18, 0x85, 0x3d, 0x89, + 0x5e, 0x1f, 0x03, 0x2c, 0x17, 0x45, 0xbf, 0x85, 0xda, 0x35, 0xf4, 0xda, 0xdb, 0x16, 0x45, 0xa9, + 0xff, 0xb9, 0x6c, 0x38, 0xa5, 0xbb, 0x42, 0x91, 0xee, 0x62, 0x35, 0xf0, 0xbb, 0x9a, 0x72, 0x7d, + 0xeb, 0x29, 0x4f, 0xb0, 0x99, 0xf2, 0x04, 0x3b, 0x28, 0x4f, 0xb0, 0x87, 0x52, 0x5b, 0x87, 0x28, + 0x96, 0x3b, 0x41, 0x47, 0xb2, 0x2f, 0x4a, 0x82, 0x50, 0x2c, 0x97, 0x42, 0x65, 0x20, 0xa5, 0x28, + 0x75, 0x28, 0x50, 0x01, 0xa7, 0xdb, 0xe2, 0xbd, 0x6b, 0xc5, 0xff, 0x1b, 0xbc, 0xd7, 0x12, 0xd6, + 0x99, 0x32, 0x41, 0x3c, 0x92, 0xf1, 0x27, 0x78, 0xc8, 0xe5, 0x1d, 0xc5, 0x41, 0x83, 0x1f, 0xc6, + 0x4d, 0x4e, 0x3c, 0x04, 0x38, 0xb5, 0x51, 0x18, 0x97, 0x95, 0x70, 0x8d, 0x48, 0xde, 0x76, 0xf5, + 0x0a, 0xf5, 0x91, 0xd6, 0x8a, 0x7b, 0x19, 0x21, 0xe1, 0x4a, 0xff, 0xc7, 0x63, 0x4f, 0xef, 0x32, + 0xf6, 0x0c, 0x74, 0xec, 0x79, 0xfd, 0x0f, 0xc7, 0x9e, 0xdb, 0x3f, 0x1b, 0x7b, 0xbf, 0x34, 0xfc, + 0x0f, 0xc6, 0x9e, 0xfe, 0x2f, 0xc6, 0x9e, 0xe1, 0xff, 0xad, 0xb1, 0xf7, 0x73, 0xe3, 0xff, 0x53, + 0x63, 0xef, 0xe7, 0x99, 0xff, 0xcf, 0x8d, 0xbd, 0x9f, 0x73, 0xff, 0x6a, 0xec, 0x35, 0x37, 0xd0, + 0xbd, 0x69, 0xde, 0x52, 0x9e, 0x5c, 0x87, 0xd6, 0xf2, 0x9c, 0x9c, 0x73, 0x73, 0x03, 0xd0, 0x83, + 0x57, 0xe9, 0xe8, 0x71, 0x6f, 0x86, 0x1e, 0x6e, 0x6e, 0xa4, 0xf7, 0xc9, 0x2e, 0x74, 0xa2, 0xd4, + 0x85, 0x4e, 0x8c, 0x00, 0x3a, 0x91, 0x13, 0xe8, 0x44, 0x19, 0x19, 0xc4, 0x29, 0xe0, 0x8b, 0x3f, + 0xbd, 0x4f, 0x73, 0xd2, 0x89, 0x32, 0x92, 0xce, 0x31, 0x70, 0xaf, 0xa2, 0xf7, 0x1e, 0x9c, 0x06, + 0xee, 0x91, 0x46, 0x74, 0xab, 0x10, 0x73, 0x06, 0xb8, 0x0f, 0x17, 0xc6, 0x5e, 0x24, 0xdc, 0x47, + 0x09, 0xa3, 0xdd, 0x48, 0x7b, 0xe3, 0x51, 0xd4, 0xa1, 0x8c, 0xf4, 0x02, 0xbe, 0x15, 0xf3, 0x4c, + 0xa7, 0x14, 0x6a, 0x06, 0xc4, 0x1a, 0x51, 0xaa, 0x88, 0x28, 0xe7, 0xb8, 0xb2, 0xc0, 0xd3, 0xf3, + 0xd0, 0xa3, 0xcf, 0x5d, 0x7f, 0x18, 0x8d, 0xbb, 0x5b, 0x71, 0xaa, 0x28, 0x9d, 0xb6, 0x21, 0xd3, + 0x40, 0xef, 0xdd, 0xed, 0x63, 0x9d, 0x9c, 0x6a, 0x3a, 0x5e, 0x2b, 0xc4, 0x94, 0x1a, 0x9c, 0x42, + 0xbf, 0x4a, 0xed, 0xa9, 0xf4, 0xea, 0x61, 0x9b, 0xc2, 0xda, 0xe8, 0x5d, 0xb2, 0xbd, 0xaf, 0xc0, + 0xa5, 0xf6, 0xb2, 0xb3, 0xf4, 0x1a, 0x61, 0xcb, 0x64, 0xf9, 0x7d, 0xa2, 0x34, 0x61, 0x77, 0x24, + 0xdd, 0x1e, 0x4e, 0xaf, 0x83, 0x6c, 0x16, 0xa4, 0xf2, 0x9a, 0xaf, 0x52, 0xca, 0xb0, 0x91, 0xed, + 0x4b, 0xe9, 0xc3, 0x70, 0x4a, 0x1f, 0x86, 0x52, 0xfa, 0x10, 0xc7, 0xaa, 0x3f, 0x1d, 0xab, 0x41, + 0x74, 0xac, 0xaa, 0xe8, 0x58, 0xd5, 0xd1, 0xb1, 0x1a, 0xce, 0x7a, 0xa9, 0x63, 0xe0, 0x9a, 0xce, + 0x8a, 0xc3, 0x45, 0x74, 0x04, 0x48, 0xd0, 0x27, 0x90, 0x30, 0x5a, 0xf9, 0x1d, 0x71, 0xb9, 0x63, + 0x6c, 0xa2, 0xaf, 0xd5, 0xdf, 0x9b, 0xf0, 0x74, 0xd9, 0x39, 0x3e, 0x1d, 0xdf, 0xdc, 0xd0, 0x37, + 0x6a, 0xab, 0x11, 0xea, 0xf8, 0xe2, 0x2e, 0x84, 0xbf, 0xdf, 0x2a, 0xbc, 0x87, 0x10, 0x1e, 0x47, + 0x29, 0x63, 0x85, 0x5e, 0xb3, 0x09, 0xfc, 0x98, 0x75, 0x86, 0x5d, 0x0e, 0x2b, 0x7a, 0x14, 0x13, + 0x8b, 0x96, 0x8c, 0x58, 0x3f, 0xfa, 0x36, 0x92, 0x29, 0xe4, 0xb9, 0x3c, 0xf4, 0x60, 0x00, 0xa1, + 0xfd, 0x6d, 0x52, 0xca, 0xff, 0xe0, 0x7d, 0xb8, 0x0d, 0x4f, 0xca, 0x05, 0x4a, 0x96, 0xcf, 0x51, + 0x8d, 0xe5, 0xac, 0x57, 0xc6, 0x26, 0x2f, 0xd4, 0x12, 0x97, 0xf7, 0x1e, 0x4c, 0x6c, 0x72, 0x15, + 0x7f, 0x76, 0xaa, 0x34, 0x86, 0xf5, 0x20, 0xd2, 0xd8, 0x5f, 0x38, 0x0e, 0x47, 0xed, 0x84, 0x07, + 0x1f, 0xbf, 0x94, 0x15, 0x11, 0x11, 0xc2, 0xdd, 0xff, 0x38, 0x8f, 0x84, 0xdb, 0x88, 0xa8, 0x19, + 0x68, 0x8d, 0x88, 0x4d, 0x89, 0x45, 0x44, 0xd4, 0xb8, 0x28, 0x31, 0x32, 0x84, 0xbb, 0xdb, 0xdb, + 0x4c, 0x0c, 0x11, 0xa2, 0x93, 0x05, 0x5c, 0x53, 0xef, 0x58, 0x12, 0x96, 0x61, 0x86, 0x67, 0x49, + 0x7a, 0x2c, 0xdc, 0x4b, 0x87, 0x58, 0xaa, 0x76, 0x47, 0x58, 0x94, 0x71, 0xdd, 0x06, 0x10, 0x49, + 0x58, 0x0c, 0x63, 0xec, 0x9a, 0x08, 0xb3, 0x23, 0x89, 0x1b, 0x21, 0x50, 0x89, 0x0d, 0x70, 0xed, + 0x9b, 0xbc, 0xed, 0xc7, 0x24, 0xb5, 0x93, 0xae, 0x11, 0xad, 0x52, 0xfb, 0x48, 0x67, 0x00, 0x5d, + 0xc8, 0x02, 0x3d, 0x66, 0x81, 0xf6, 0x70, 0x43, 0x9f, 0xea, 0x91, 0x41, 0xe8, 0x69, 0x48, 0xa0, + 0x0c, 0x59, 0x81, 0x32, 0xcc, 0x16, 0x28, 0xc3, 0x62, 0x81, 0x32, 0x2c, 0x13, 0x28, 0xc1, 0x0a, + 0x81, 0xce, 0xab, 0x14, 0x28, 0xc4, 0x2a, 0x81, 0xc2, 0xab, 0x2e, 0x5b, 0x03, 0x69, 0x6a, 0x80, + 0xc6, 0x7b, 0xde, 0x42, 0xb0, 0x1f, 0xe9, 0xe8, 0xed, 0xc7, 0xad, 0x31, 0x98, 0x50, 0x8a, 0x5f, + 0xe0, 0xac, 0x6a, 0xe8, 0x28, 0xde, 0x2c, 0x58, 0xe5, 0xdd, 0x8a, 0x72, 0xff, 0x02, 0xed, 0x88, + 0xd6, 0x72, 0xe9, 0xee, 0x11, 0x4f, 0xc5, 0x02, 0x55, 0x85, 0x92, 0x9c, 0x40, 0x77, 0xc5, 0xde, + 0x94, 0x89, 0x80, 0xd7, 0x1c, 0x8b, 0xf4, 0x1c, 0x5c, 0xf3, 0x29, 0x0d, 0x06, 0x74, 0x1d, 0xd2, + 0x74, 0x80, 0xcb, 0x66, 0xd2, 0x53, 0x30, 0x35, 0x52, 0x5f, 0xc1, 0xd0, 0x53, 0x94, 0xfa, 0x6a, + 0xe9, 0x6b, 0xe0, 0x39, 0xaf, 0x30, 0xb8, 0x92, 0xe0, 0xa9, 0x00, 0x96, 0x4c, 0xcf, 0xcb, 0x68, + 0x6f, 0xbb, 0x79, 0x91, 0xd2, 0x5b, 0xb8, 0x5b, 0x5e, 0x3e, 0xa1, 0x41, 0x90, 0x6d, 0x7b, 0x3e, + 0xd2, 0x51, 0x72, 0xb4, 0x2d, 0xdc, 0x30, 0xf0, 0x9a, 0x83, 0x6e, 0xd5, 0xfb, 0x0a, 0x2d, 0x84, + 0xfb, 0x03, 0x75, 0xc2, 0xfe, 0xc0, 0x69, 0x26, 0x5d, 0xa5, 0x10, 0xe7, 0xa3, 0xc6, 0x1f, 0xee, + 0xed, 0xd1, 0x56, 0x87, 0x14, 0xf4, 0xde, 0x74, 0x0c, 0x1c, 0xc6, 0x31, 0x00, 0xe5, 0xa3, 0xb6, + 0xe4, 0x0f, 0x5d, 0xa4, 0xfb, 0xf5, 0x0c, 0x3d, 0xc7, 0xf1, 0xd5, 0x8b, 0xd5, 0xb1, 0x54, 0xa7, + 0x44, 0xce, 0xf2, 0x54, 0x1b, 0x50, 0x76, 0x3f, 0x44, 0x01, 0xdd, 0xe6, 0xa0, 0xd9, 0xa2, 0x78, + 0x1e, 0x56, 0xd0, 0x74, 0x51, 0x14, 0x9b, 0xdb, 0xca, 0x28, 0x31, 0xbc, 0x04, 0xee, 0xec, 0x9e, + 0xb9, 0x44, 0x4a, 0x24, 0xf0, 0xeb, 0x4b, 0xa4, 0x3d, 0xd1, 0x07, 0x9a, 0x0c, 0x7e, 0xbb, 0x10, + 0xaf, 0x9e, 0xb4, 0x7d, 0x4d, 0xd9, 0xc4, 0x97, 0xd7, 0xfc, 0x30, 0xad, 0x21, 0x7e, 0x00, 0x01, + 0x5d, 0x73, 0x89, 0x8a, 0x74, 0x82, 0xbb, 0x2e, 0x00, 0x4a, 0x08, 0x1b, 0x4d, 0xd4, 0xf0, 0x2e, + 0x89, 0x68, 0x8a, 0xdd, 0xba, 0x1a, 0x89, 0x8e, 0xa6, 0x67, 0xa0, 0xe9, 0x85, 0xd1, 0xf4, 0xc2, + 0x69, 0x7a, 0x11, 0x5d, 0xcb, 0x51, 0x22, 0x15, 0xb5, 0x4a, 0x78, 0x89, 0x54, 0x9a, 0x8e, 0x51, + 0x99, 0x4b, 0xc2, 0x95, 0x95, 0x8c, 0xcc, 0x21, 0x5f, 0xf4, 0xd0, 0xa9, 0x9b, 0xb4, 0xe5, 0x7c, + 0xed, 0x61, 0xa9, 0x1a, 0xb4, 0x77, 0x4a, 0x65, 0x27, 0xc2, 0xe4, 0xd9, 0x1c, 0x47, 0x64, 0xb6, + 0x50, 0x26, 0x9b, 0xbb, 0x4f, 0xdf, 0x30, 0x8c, 0x86, 0x04, 0xd9, 0x3b, 0x51, 0x9d, 0xa6, 0x09, + 0xbc, 0xdf, 0xef, 0x3e, 0x68, 0x5f, 0xb8, 0x62, 0x18, 0x95, 0xd9, 0x49, 0x7e, 0xde, 0x24, 0x00, + 0x50, 0x16, 0x27, 0x1c, 0xa7, 0xce, 0xba, 0x10, 0x8a, 0xdd, 0xfd, 0x81, 0xba, 0x08, 0x44, 0xc9, + 0x09, 0x71, 0x27, 0xc6, 0x6c, 0x32, 0x99, 0xe2, 0xd8, 0x20, 0x9c, 0xcd, 0x35, 0x71, 0xf9, 0xe2, + 0xbe, 0xd4, 0x8b, 0x45, 0x8d, 0xa9, 0x48, 0x1c, 0x4e, 0x78, 0xdf, 0x49, 0x76, 0xc9, 0x8e, 0x4a, + 0xdb, 0x45, 0x7d, 0x30, 0xc1, 0x93, 0x9b, 0x46, 0x9c, 0xe9, 0x7a, 0x08, 0x11, 0xd7, 0xc4, 0x45, + 0x50, 0x6f, 0x43, 0x72, 0x8d, 0xd9, 0x14, 0x1b, 0x4a, 0xa5, 0x60, 0x80, 0x1a, 0x3f, 0x81, 0x32, + 0x74, 0x25, 0x04, 0xe5, 0xbd, 0x8b, 0xc5, 0xb5, 0xd3, 0xcc, 0xbb, 0x6c, 0xa9, 0xe1, 0x10, 0x0b, + 0xb5, 0x1a, 0x51, 0xe2, 0x1b, 0x71, 0x04, 0x4d, 0x33, 0xd4, 0xb1, 0xff, 0xa3, 0xc3, 0x5e, 0x62, + 0x84, 0xd4, 0xa9, 0x25, 0xe9, 0xe6, 0xf3, 0x10, 0xe3, 0x9c, 0x32, 0xd9, 0xb1, 0x13, 0x44, 0xa5, + 0x04, 0x60, 0x45, 0xc2, 0x12, 0x66, 0x18, 0xeb, 0xac, 0x6c, 0x31, 0xc4, 0xc8, 0xc5, 0xd4, 0x54, + 0xd9, 0xbc, 0xbd, 0x4a, 0xfb, 0x08, 0xff, 0xaa, 0x0e, 0x68, 0x97, 0x4b, 0x04, 0xbf, 0x62, 0x22, + 0xee, 0x95, 0x0d, 0x3d, 0x24, 0x45, 0x7b, 0xb5, 0xf6, 0xa0, 0xe0, 0x5c, 0x98, 0x87, 0xa7, 0x51, + 0xbe, 0x82, 0xb1, 0xf2, 0xd2, 0xb4, 0xcd, 0x1f, 0x3f, 0x55, 0xc0, 0x9d, 0x06, 0x3e, 0x96, 0xd1, + 0xe5, 0xa2, 0x27, 0x51, 0xf4, 0x2a, 0x20, 0x48, 0xe3, 0x14, 0x70, 0x27, 0x8e, 0xd7, 0x31, 0x8e, + 0x9c, 0x51, 0x46, 0x41, 0x82, 0x67, 0xb8, 0xbc, 0x8d, 0x4c, 0x4d, 0x3a, 0x95, 0x67, 0x97, 0xee, + 0x98, 0x0b, 0x98, 0xb7, 0x8b, 0x0e, 0xc2, 0x5a, 0x63, 0xed, 0x29, 0x61, 0x62, 0x69, 0x0c, 0xf1, + 0x0f, 0x77, 0x3b, 0x11, 0xc3, 0x98, 0xd9, 0x68, 0x99, 0x06, 0x4a, 0xe1, 0x63, 0x0f, 0x42, 0xcf, + 0x94, 0xca, 0x1c, 0xa2, 0xa0, 0x3b, 0x69, 0xbe, 0xc5, 0xcd, 0x55, 0x80, 0xd3, 0xea, 0xe2, 0xea, + 0x4c, 0x4f, 0x1b, 0xd1, 0x57, 0x04, 0x09, 0x62, 0xa5, 0xc7, 0x11, 0xcb, 0x0d, 0xa6, 0x7b, 0x64, + 0x8d, 0x2e, 0xed, 0xbc, 0x53, 0x65, 0x86, 0x99, 0x51, 0xff, 0x58, 0x49, 0xe2, 0x35, 0xee, 0x9c, + 0x86, 0xe2, 0x1d, 0x83, 0x49, 0x2b, 0x7b, 0x76, 0x16, 0xb4, 0xed, 0x69, 0x96, 0xed, 0x65, 0x22, + 0x32, 0x19, 0xca, 0x61, 0xf8, 0xd8, 0x92, 0x42, 0xb5, 0xc4, 0x8f, 0xfa, 0xee, 0x88, 0x15, 0xec, + 0x4a, 0xf7, 0x15, 0xe6, 0xa1, 0x1c, 0x31, 0xba, 0x60, 0xbd, 0xed, 0x5c, 0x70, 0x1c, 0xe5, 0x21, + 0xc5, 0x24, 0x90, 0xab, 0x87, 0xfa, 0x9d, 0xa6, 0x3c, 0x64, 0x03, 0x93, 0xa0, 0x4c, 0x72, 0xc8, + 0x84, 0x63, 0xfb, 0xaa, 0x52, 0x37, 0xf3, 0x25, 0x98, 0x63, 0x5b, 0x4e, 0x2d, 0xd5, 0x3a, 0x64, + 0x2e, 0xd6, 0x3b, 0xac, 0xf4, 0xb2, 0x62, 0xc6, 0xc8, 0x28, 0x6c, 0x4d, 0xcc, 0x87, 0x44, 0x46, + 0xbd, 0x73, 0x49, 0xe8, 0x39, 0x71, 0x0e, 0x2f, 0xf5, 0x64, 0x93, 0x75, 0x33, 0x12, 0x3f, 0x08, + 0x19, 0xa3, 0xc4, 0x30, 0x15, 0xad, 0x42, 0x04, 0x39, 0x43, 0x04, 0xb9, 0x86, 0xb0, 0xfc, 0x48, + 0x22, 0xd5, 0x30, 0xd6, 0x35, 0xe8, 0x8f, 0x0a, 0xfd, 0xe3, 0xa9, 0x5b, 0x2c, 0xd1, 0x15, 0xab, + 0x8f, 0x2e, 0x31, 0xd1, 0xd1, 0x45, 0xe5, 0x23, 0xbc, 0x71, 0x4c, 0x43, 0x6f, 0x28, 0xcc, 0xd0, + 0x9b, 0x4f, 0xe5, 0x41, 0x1f, 0xfb, 0xc1, 0xaf, 0x82, 0x28, 0x19, 0xaf, 0x8c, 0x8a, 0xa4, 0x0b, + 0x41, 0xe8, 0x3f, 0x44, 0xed, 0x90, 0xcb, 0x37, 0xa0, 0x67, 0x44, 0x0b, 0xa4, 0x9a, 0x84, 0x5e, + 0xf3, 0x60, 0x36, 0x8d, 0x08, 0xd7, 0x93, 0xa1, 0xc5, 0x5c, 0xcd, 0x3a, 0x22, 0xb6, 0x4b, 0xad, + 0x26, 0xbb, 0x0c, 0x6d, 0xa7, 0x4d, 0xd0, 0xb2, 0xe2, 0x09, 0xa9, 0xea, 0x74, 0x7e, 0x77, 0x8e, + 0xfa, 0x7d, 0x16, 0xe4, 0x3c, 0x4f, 0x2d, 0xd1, 0x0c, 0xd0, 0x7c, 0x81, 0x3e, 0x74, 0xc5, 0x46, + 0xd1, 0xe3, 0x5e, 0x90, 0x6b, 0x18, 0x21, 0x31, 0x04, 0xe5, 0xb1, 0x14, 0x74, 0x8d, 0x58, 0x07, + 0x14, 0x01, 0xfa, 0x0f, 0x16, 0x13, 0x6f, 0x9b, 0x82, 0x18, 0x89, 0xb9, 0xb7, 0x91, 0xea, 0xd1, + 0x49, 0x3b, 0xa6, 0x90, 0x2e, 0xdd, 0x61, 0x4c, 0x11, 0x3f, 0xf8, 0x55, 0x10, 0xb5, 0xd5, 0x64, + 0xcb, 0x8d, 0xf9, 0x85, 0x68, 0xbb, 0x5b, 0x48, 0x00, 0x95, 0x5a, 0x43, 0x0f, 0x83, 0x82, 0x24, + 0xd9, 0x7d, 0xdf, 0x8e, 0x46, 0xa2, 0x35, 0x05, 0x13, 0x1d, 0x84, 0x15, 0x93, 0x08, 0x82, 0xb5, + 0x6a, 0x49, 0x9f, 0x90, 0x03, 0x7c, 0x0e, 0x70, 0x57, 0x3b, 0xe0, 0x17, 0x12, 0x8d, 0x12, 0x3b, + 0x96, 0x3c, 0xa2, 0x75, 0x9c, 0x4d, 0x77, 0x47, 0x2c, 0x64, 0xed, 0x3e, 0x90, 0xf4, 0x15, 0xec, + 0x77, 0xbc, 0x26, 0xce, 0xe3, 0x1e, 0x40, 0x39, 0x20, 0x56, 0x09, 0x87, 0x72, 0xa2, 0xdd, 0x8d, + 0x24, 0x00, 0xde, 0x4f, 0x8f, 0x43, 0xff, 0x20, 0x74, 0xd5, 0x71, 0xb4, 0xae, 0xa0, 0x87, 0xa7, + 0x29, 0x46, 0xaf, 0x8c, 0x3a, 0x41, 0x13, 0xcf, 0x50, 0xe2, 0xa6, 0x8f, 0x21, 0xe1, 0x82, 0xbe, + 0x02, 0xee, 0xcc, 0xf9, 0xc3, 0xd7, 0x28, 0x41, 0x63, 0xc1, 0x88, 0x67, 0xa1, 0xf0, 0xdd, 0x0c, + 0xb9, 0xc0, 0x8a, 0x20, 0x68, 0xeb, 0x4d, 0x10, 0x64, 0xdb, 0x67, 0x62, 0x5e, 0x58, 0x0e, 0x5e, + 0x0f, 0x4f, 0x29, 0xdf, 0x5d, 0xa1, 0x89, 0x61, 0x86, 0x30, 0xeb, 0x89, 0x5f, 0xc6, 0x52, 0xc0, + 0xd6, 0x17, 0xca, 0xe5, 0xbc, 0xee, 0x80, 0x41, 0x4f, 0x50, 0x36, 0x40, 0x02, 0x25, 0x5c, 0x03, + 0xbd, 0x21, 0x81, 0x51, 0x2b, 0x29, 0xd6, 0x42, 0xef, 0xa5, 0x52, 0x3c, 0x55, 0x2f, 0x9c, 0xdf, + 0xc8, 0x43, 0x43, 0x08, 0x4a, 0x02, 0xf9, 0x53, 0xe9, 0x3b, 0x0f, 0x41, 0x5a, 0x6f, 0x5b, 0xd3, + 0x59, 0x2d, 0xb5, 0x17, 0x69, 0x43, 0x6b, 0x8d, 0x12, 0xad, 0x86, 0x74, 0x72, 0xf9, 0x1e, 0x03, + 0xdf, 0xb7, 0xe9, 0xe8, 0x77, 0xfc, 0x6a, 0x93, 0xe8, 0xd0, 0xc3, 0x9c, 0x8e, 0xc7, 0x5a, 0x88, + 0xb1, 0xe0, 0x3b, 0xfa, 0x66, 0x97, 0x07, 0x03, 0x95, 0xcb, 0x5d, 0x45, 0x5a, 0x77, 0x82, 0xa8, + 0x94, 0x94, 0x11, 0x58, 0x7f, 0xea, 0x59, 0x22, 0xfa, 0xb8, 0x17, 0xd0, 0x0c, 0x30, 0xbf, 0xa4, + 0x54, 0xf7, 0x59, 0x4e, 0x35, 0xda, 0x7c, 0x95, 0xf1, 0x06, 0x98, 0xa7, 0xe9, 0xb8, 0x57, 0xd2, + 0x40, 0x25, 0xfe, 0x1a, 0xd4, 0xb9, 0x54, 0xdb, 0x0d, 0x75, 0x63, 0xee, 0x08, 0xba, 0x7a, 0xeb, + 0x05, 0xb9, 0xc1, 0x04, 0x17, 0xb9, 0x41, 0xa0, 0xb2, 0x03, 0xd6, 0x10, 0x0f, 0x56, 0xa1, 0x2c, + 0x80, 0x79, 0x97, 0x43, 0xa9, 0x23, 0x09, 0xbc, 0x79, 0xcc, 0xa5, 0xc4, 0x3d, 0xa1, 0x44, 0xd8, + 0x4b, 0xb2, 0xb0, 0x10, 0xee, 0xe7, 0x7e, 0x31, 0x5c, 0x43, 0x7a, 0x0c, 0x8c, 0x31, 0x09, 0xb5, + 0xd7, 0x2c, 0x15, 0xa8, 0x91, 0xa0, 0x60, 0x18, 0xe7, 0xc0, 0x57, 0xbd, 0x0f, 0x3d, 0x3b, 0x80, + 0x97, 0x32, 0x6e, 0xfe, 0xb8, 0x7b, 0x01, 0x77, 0x03, 0xf0, 0x97, 0x12, 0x66, 0x30, 0xaf, 0xc5, + 0x47, 0x25, 0x79, 0x04, 0x0c, 0x56, 0x4f, 0x31, 0x98, 0x20, 0x65, 0x05, 0x29, 0x37, 0x64, 0xc4, + 0x1c, 0x33, 0xf6, 0x8a, 0xa1, 0x16, 0x2e, 0x29, 0xee, 0xb5, 0x05, 0xba, 0x94, 0x49, 0x66, 0xc8, + 0x26, 0xfe, 0xe9, 0x96, 0x5e, 0x16, 0xe2, 0xc5, 0xe6, 0x0b, 0xb1, 0xf8, 0x3d, 0x79, 0x22, 0x3a, + 0x81, 0xfe, 0x9d, 0xd2, 0x8d, 0x30, 0xef, 0xbc, 0x84, 0x2f, 0x9b, 0x58, 0x0b, 0x5f, 0x67, 0xd1, + 0x56, 0xa0, 0xd9, 0x60, 0x45, 0xbe, 0xc7, 0x52, 0xcc, 0xe3, 0xdb, 0xab, 0x1c, 0x7d, 0x26, 0xc3, + 0xaf, 0x07, 0xa4, 0xa3, 0x32, 0x40, 0x7d, 0xc2, 0x80, 0x36, 0x49, 0x17, 0x72, 0x86, 0x7b, 0x69, + 0x7a, 0x0c, 0xdc, 0x79, 0xa5, 0x1a, 0x23, 0x2a, 0x68, 0xfd, 0xc4, 0xb8, 0x03, 0x7f, 0xa2, 0x92, + 0x96, 0x64, 0x30, 0x94, 0xc1, 0x77, 0xe3, 0xee, 0xb1, 0x06, 0xea, 0x17, 0x0a, 0x3d, 0x3f, 0x85, + 0x70, 0x57, 0x21, 0x6d, 0x0b, 0x63, 0x8c, 0xb9, 0x61, 0x91, 0x69, 0x64, 0x50, 0x3a, 0x2a, 0x3f, + 0x17, 0x0e, 0x73, 0xd2, 0xb2, 0x3b, 0x35, 0x16, 0xf5, 0xdb, 0x82, 0xad, 0xd0, 0x87, 0x14, 0x6b, + 0xd9, 0x48, 0x73, 0xbc, 0x1a, 0xbd, 0xb7, 0x40, 0x89, 0xf4, 0xee, 0x30, 0xca, 0xf9, 0xd8, 0x5e, + 0x2e, 0x2d, 0x1d, 0x95, 0xbc, 0xed, 0x2e, 0xf5, 0x4a, 0x46, 0xeb, 0x45, 0x94, 0x46, 0x15, 0xe0, + 0xad, 0x2d, 0xd7, 0x08, 0xda, 0xc6, 0xb9, 0xc5, 0xaa, 0x50, 0xba, 0x09, 0xa8, 0x49, 0x71, 0x98, + 0x67, 0x24, 0x8c, 0x93, 0x08, 0xf3, 0xc0, 0xdb, 0x55, 0x5c, 0x84, 0xe9, 0x93, 0xc3, 0xf9, 0xd2, + 0x70, 0xcf, 0x13, 0xe6, 0x34, 0x13, 0x93, 0xc2, 0xfa, 0xa2, 0x94, 0x5b, 0x78, 0x54, 0x05, 0x09, + 0x8b, 0x9a, 0xca, 0x69, 0xbd, 0x69, 0x3b, 0xee, 0x53, 0xc7, 0xa5, 0x9a, 0x96, 0x00, 0x4d, 0xa9, + 0xd1, 0x10, 0xdf, 0x16, 0x09, 0x44, 0xec, 0x87, 0xe3, 0xc7, 0x19, 0xb3, 0xa3, 0x0f, 0x36, 0x1b, + 0xf3, 0x09, 0x99, 0x6b, 0x30, 0x56, 0xed, 0x36, 0xb8, 0x5d, 0x32, 0x86, 0xc5, 0xea, 0x3d, 0x2d, + 0xc5, 0x84, 0x38, 0xac, 0xdf, 0x86, 0x93, 0x09, 0xa2, 0x62, 0x6e, 0x60, 0xd3, 0xdd, 0x00, 0x76, + 0x78, 0xa4, 0x96, 0x48, 0x6b, 0xcc, 0x45, 0xe2, 0xd4, 0x58, 0x83, 0x5b, 0x9a, 0x71, 0xd7, 0xee, + 0xa3, 0xb9, 0x44, 0xf2, 0x4d, 0x2e, 0x91, 0xd1, 0x31, 0x47, 0xb1, 0xbe, 0x1d, 0x7d, 0x27, 0xf2, + 0x96, 0xa6, 0x03, 0xbe, 0x81, 0x52, 0xb3, 0x0a, 0xda, 0x0f, 0xcb, 0x68, 0x2f, 0x48, 0xbe, 0x81, + 0x71, 0x0f, 0x78, 0x28, 0x88, 0xd7, 0x59, 0xc1, 0xef, 0x50, 0xf2, 0x5b, 0xaa, 0x54, 0x83, 0x84, + 0xb6, 0xd3, 0x2a, 0x3c, 0x9f, 0xa0, 0xfe, 0x2e, 0x11, 0xb3, 0xef, 0xa0, 0xd4, 0x93, 0x9e, 0x28, + 0x1c, 0x80, 0x92, 0x3d, 0x30, 0x4f, 0x82, 0x00, 0x37, 0x4d, 0xe0, 0xe5, 0x97, 0xa8, 0x3c, 0xf4, + 0x10, 0xee, 0x10, 0x95, 0xeb, 0x45, 0xde, 0x50, 0x38, 0x55, 0x15, 0x68, 0xd8, 0x02, 0xee, 0x90, + 0x8b, 0xdd, 0x50, 0x37, 0xba, 0x7b, 0x80, 0x16, 0x42, 0x4f, 0xd0, 0x6b, 0x3b, 0xba, 0x6b, 0x80, + 0xf6, 0x44, 0x79, 0x2d, 0xd2, 0x06, 0x65, 0x1e, 0x51, 0xd1, 0x5d, 0xe1, 0xae, 0xbc, 0xff, 0x40, + 0x87, 0x0c, 0xa9, 0x56, 0xb0, 0x01, 0x4b, 0xce, 0x3b, 0x43, 0xb8, 0xb7, 0x0e, 0x01, 0xb1, 0xeb, + 0x9c, 0xdf, 0x3c, 0x1e, 0xfa, 0x76, 0x9a, 0x89, 0xa3, 0xd2, 0xd7, 0xbe, 0x16, 0xa3, 0xc9, 0x48, + 0x6d, 0xc6, 0x2a, 0xa8, 0x07, 0x86, 0x8b, 0xa5, 0x87, 0x4e, 0xcc, 0x83, 0x39, 0xe2, 0xd0, 0x2d, + 0xae, 0x54, 0x99, 0x1c, 0xf8, 0x4a, 0x4d, 0xec, 0x85, 0x82, 0x7d, 0xe4, 0x43, 0x98, 0x3a, 0xa5, + 0xb8, 0x4f, 0xd0, 0x73, 0x99, 0xd3, 0x40, 0x8b, 0x12, 0x91, 0x88, 0xf7, 0xdf, 0x00, 0x6f, 0x64, + 0xdc, 0x7d, 0xa0, 0x94, 0x02, 0x1d, 0xbe, 0x11, 0x55, 0x66, 0xf4, 0x1e, 0xd4, 0xca, 0x6a, 0x06, + 0xb1, 0x29, 0x68, 0xe9, 0x50, 0xfb, 0x8c, 0xd7, 0x62, 0xf2, 0xe7, 0x3d, 0x26, 0x32, 0xa6, 0xa3, + 0xb5, 0xcc, 0xac, 0xae, 0xb1, 0xc4, 0xa1, 0x41, 0x86, 0x52, 0xba, 0xeb, 0x05, 0x9f, 0x2d, 0x28, + 0x07, 0x85, 0x96, 0x51, 0xa3, 0x50, 0x1a, 0x0c, 0x56, 0x2a, 0xb3, 0x32, 0x5f, 0xa8, 0x21, 0x8e, + 0x35, 0x89, 0x8b, 0x26, 0x1b, 0x21, 0xab, 0xf4, 0x94, 0x13, 0x87, 0x12, 0x18, 0xf5, 0xe8, 0x27, + 0x85, 0x6a, 0x4d, 0xa3, 0x9d, 0x74, 0x11, 0x70, 0xc9, 0x31, 0xc0, 0x21, 0xe9, 0x2d, 0x80, 0xc7, + 0xa1, 0x87, 0x08, 0x95, 0xbf, 0xb7, 0x4f, 0x76, 0xf8, 0x41, 0xa1, 0xde, 0xa1, 0x34, 0xce, 0xd2, + 0x66, 0xd2, 0x3c, 0x78, 0x29, 0x5c, 0x2c, 0xe9, 0x31, 0x0d, 0x70, 0xd5, 0x94, 0xaa, 0x89, 0x06, + 0x5c, 0xaf, 0xa1, 0x29, 0xe8, 0xf4, 0x49, 0x04, 0xcf, 0x69, 0x70, 0x6d, 0x08, 0x6f, 0xe5, 0x65, + 0xca, 0x99, 0x0e, 0x63, 0x52, 0xa2, 0xd7, 0x94, 0x24, 0x21, 0x95, 0x43, 0xd4, 0xc3, 0x8a, 0x20, + 0x5d, 0xa5, 0x0a, 0xe6, 0xee, 0x7f, 0xba, 0xdb, 0xbe, 0xac, 0x58, 0xc4, 0xfe, 0xdc, 0xda, 0x27, + 0x24, 0xfa, 0x2f, 0x92, 0x56, 0x4c, 0xe5, 0xb8, 0xdf, 0xa9, 0xae, 0x8a, 0x17, 0xfa, 0x39, 0x40, + 0x2f, 0xc7, 0x2c, 0xf3, 0x4f, 0xec, 0x92, 0x58, 0x7e, 0x8c, 0x8c, 0x82, 0xd6, 0x42, 0x7f, 0x13, + 0x2a, 0x68, 0x2d, 0x4d, 0x78, 0x30, 0x91, 0xa3, 0x24, 0xa4, 0x41, 0x2c, 0x36, 0x1e, 0xe1, 0x60, + 0x05, 0x96, 0x03, 0x8e, 0xec, 0x44, 0xeb, 0x12, 0xd8, 0x52, 0x7b, 0xe5, 0x40, 0x47, 0x3a, 0x1a, + 0xc2, 0x8a, 0xcb, 0x48, 0xf7, 0x58, 0xd2, 0xa9, 0xb7, 0x89, 0xc8, 0xa9, 0x9c, 0x50, 0x08, 0x7a, + 0xdd, 0x01, 0x2c, 0xa1, 0x42, 0xd9, 0x9a, 0xdf, 0x28, 0xa7, 0xc3, 0x48, 0x92, 0x2e, 0x44, 0x05, + 0xf1, 0xda, 0xf1, 0x6a, 0xc1, 0x0b, 0x99, 0xd0, 0x97, 0x25, 0x32, 0x9e, 0x12, 0x97, 0x63, 0x5f, + 0x3b, 0x7a, 0x9a, 0x96, 0x39, 0xc0, 0xe9, 0x37, 0xb3, 0x88, 0x04, 0xb6, 0xf6, 0x3b, 0x93, 0x44, + 0x5a, 0x64, 0xe6, 0x1f, 0x25, 0x3d, 0x07, 0xe3, 0xe0, 0x2a, 0xd5, 0x25, 0x28, 0x22, 0x28, 0xe1, + 0x15, 0xa5, 0xd1, 0x13, 0x63, 0x2b, 0x7f, 0x3d, 0xe1, 0x8c, 0x19, 0xfd, 0xf5, 0x4c, 0x20, 0xb0, + 0x42, 0x05, 0x02, 0xde, 0x82, 0x36, 0x44, 0xeb, 0x31, 0x28, 0xa9, 0x91, 0xc9, 0xef, 0x33, 0xf4, + 0x19, 0xeb, 0xf0, 0xd3, 0xe4, 0x69, 0xcf, 0x14, 0xce, 0xb2, 0x70, 0xf7, 0xe2, 0x67, 0x58, 0xfb, + 0x0f, 0xf1, 0x92, 0x2b, 0xf6, 0x32, 0x41, 0x96, 0x83, 0x90, 0x13, 0x6c, 0xbc, 0x20, 0xc3, 0x42, + 0xc8, 0x9a, 0xcc, 0x40, 0x41, 0xd6, 0x83, 0x90, 0x2a, 0x5e, 0x0e, 0x04, 0x42, 0x6c, 0x82, 0x78, + 0x95, 0x82, 0x9c, 0x07, 0x21, 0xcb, 0xb3, 0x80, 0x83, 0x12, 0xa4, 0x3d, 0xd0, 0xce, 0xd6, 0x14, + 0x68, 0xbd, 0x2e, 0x10, 0x62, 0x6e, 0x77, 0x13, 0x41, 0x5c, 0xc4, 0xf7, 0xdd, 0x64, 0x25, 0x60, + 0x7b, 0x9b, 0x58, 0xe9, 0x15, 0x66, 0x02, 0x0c, 0x2e, 0x4a, 0xae, 0x82, 0x55, 0x4d, 0x01, 0xbc, + 0x5a, 0x26, 0x63, 0x96, 0x57, 0x51, 0x7b, 0x3c, 0x19, 0x40, 0xc7, 0x89, 0x49, 0x47, 0xbb, 0x3f, + 0xb4, 0x9e, 0xa2, 0x45, 0xde, 0x5c, 0x1c, 0xcc, 0xfd, 0x41, 0x3a, 0x62, 0x5a, 0x6c, 0x84, 0x75, + 0xba, 0x3d, 0x9c, 0xd0, 0x50, 0xac, 0xae, 0xa3, 0x89, 0xf8, 0xb3, 0x2a, 0xf8, 0xed, 0xc0, 0x76, + 0x81, 0xdf, 0x00, 0xb6, 0x13, 0x84, 0x91, 0xb3, 0xfe, 0x10, 0x46, 0x01, 0x61, 0x44, 0x10, 0x46, + 0x06, 0x25, 0xc1, 0x53, 0x60, 0x11, 0x1d, 0xd3, 0x03, 0x85, 0xf9, 0x52, 0x47, 0x2d, 0xe4, 0x9e, + 0xb6, 0xce, 0xb0, 0x0f, 0x57, 0xe7, 0xc2, 0x48, 0x3c, 0x68, 0x4b, 0xc5, 0xef, 0x1a, 0x33, 0x95, + 0x0c, 0x16, 0x46, 0xbd, 0x8a, 0xd8, 0xa3, 0xa8, 0x6c, 0x1b, 0xa3, 0x87, 0xb7, 0xd4, 0x43, 0xaa, + 0x46, 0x18, 0xf1, 0x3a, 0x26, 0x97, 0x1f, 0xf1, 0x30, 0xde, 0x19, 0x47, 0x5f, 0xd2, 0xd9, 0x6d, + 0x72, 0x8c, 0xf6, 0x09, 0x04, 0xa5, 0x81, 0xcb, 0x83, 0x70, 0x15, 0x42, 0xcb, 0x52, 0x4c, 0x9a, + 0xa2, 0x22, 0x75, 0x31, 0x6f, 0xf3, 0x49, 0x2f, 0x46, 0x0e, 0x0e, 0xf9, 0x51, 0x18, 0x0b, 0xfe, + 0xe8, 0x67, 0x42, 0x89, 0xa3, 0x7e, 0x1a, 0x8e, 0xfa, 0x52, 0xd1, 0xe6, 0x69, 0x59, 0xfe, 0x38, + 0xea, 0x79, 0x89, 0xd5, 0xf0, 0x12, 0x59, 0x17, 0x66, 0xce, 0xdf, 0x78, 0x3f, 0x75, 0xc8, 0x0d, + 0xef, 0x83, 0x51, 0xc2, 0xfb, 0x6f, 0x43, 0x1c, 0x0c, 0xd4, 0x91, 0x60, 0x1f, 0x60, 0x36, 0xb4, + 0x08, 0x11, 0x4f, 0x77, 0x8e, 0x78, 0x93, 0xd2, 0xdc, 0xe2, 0x6d, 0x0d, 0xbe, 0x64, 0xf3, 0xa3, + 0x49, 0x6d, 0x3a, 0x55, 0xdb, 0x1d, 0xf5, 0x6b, 0x97, 0xc0, 0x3c, 0x09, 0x26, 0x1d, 0x3b, 0x96, + 0x43, 0x3b, 0xfb, 0x77, 0xc4, 0xf5, 0xba, 0x03, 0xd2, 0x16, 0x00, 0x81, 0xa6, 0x3c, 0x12, 0x84, + 0x7e, 0xa3, 0x60, 0x0d, 0x58, 0xce, 0x98, 0xe1, 0x57, 0x42, 0xf7, 0x07, 0x08, 0x4a, 0x23, 0x3c, + 0x88, 0x4e, 0x5e, 0x04, 0x7d, 0xca, 0x38, 0xbe, 0x2b, 0xcd, 0x7a, 0xa8, 0x17, 0xcc, 0x22, 0x7e, + 0xdf, 0x71, 0x6c, 0xf2, 0x22, 0xa0, 0x66, 0x55, 0x88, 0x01, 0x1e, 0x99, 0x42, 0x3b, 0x1a, 0x5b, + 0xd2, 0x3a, 0xb6, 0xb0, 0xfb, 0xd0, 0x35, 0x79, 0x91, 0xba, 0x42, 0x69, 0xc4, 0x76, 0x01, 0xde, + 0xc4, 0x8b, 0xbb, 0xcb, 0xa4, 0x21, 0x5d, 0x42, 0xfd, 0x1b, 0xdc, 0x37, 0x85, 0x70, 0xcd, 0x00, + 0xdc, 0xc3, 0x29, 0xc3, 0xea, 0x73, 0x97, 0xc6, 0xd7, 0x24, 0x2f, 0xa2, 0x23, 0xc0, 0xe8, 0xd0, + 0x2c, 0xe8, 0xce, 0x4b, 0x96, 0xa3, 0xcc, 0x73, 0xe1, 0x23, 0x72, 0x94, 0x11, 0x39, 0xef, 0x25, + 0x17, 0xbf, 0xa1, 0x2d, 0x1e, 0x97, 0x34, 0x91, 0x97, 0xae, 0xa6, 0x61, 0xbc, 0xa1, 0x54, 0xbc, + 0xe4, 0x74, 0xb8, 0xc0, 0x5b, 0xc3, 0xca, 0x9e, 0x5a, 0xe1, 0xaa, 0xa5, 0x89, 0x63, 0x1c, 0xf2, + 0xf0, 0x82, 0xf1, 0x28, 0x21, 0x1d, 0xa9, 0x9f, 0x1b, 0x0c, 0x57, 0x03, 0xe3, 0x5e, 0x8d, 0x6d, + 0xca, 0x32, 0x0f, 0xe5, 0xec, 0xcd, 0xe7, 0x0c, 0xb9, 0x4a, 0x30, 0x36, 0x7a, 0xf1, 0xd5, 0xcb, + 0x93, 0xb7, 0xfd, 0xd1, 0x24, 0x70, 0x3a, 0x30, 0xae, 0x61, 0xce, 0x6d, 0x16, 0xd6, 0xd3, 0x7d, + 0x8f, 0x68, 0x4b, 0x58, 0x1b, 0xe3, 0x9a, 0xfe, 0xa8, 0x49, 0x5e, 0x24, 0xc8, 0x0d, 0xe1, 0x7a, + 0x5b, 0xf7, 0xc8, 0x76, 0xf5, 0xa0, 0x61, 0x1c, 0x6b, 0xf1, 0x69, 0x26, 0xed, 0x91, 0x6b, 0xa4, + 0x63, 0x8d, 0xbe, 0x48, 0xd7, 0xe8, 0x7a, 0xc1, 0x5e, 0x3b, 0xf5, 0xe4, 0x82, 0xfa, 0x2d, 0xb8, + 0x9f, 0xaf, 0xc9, 0x77, 0xae, 0xa0, 0x5b, 0xa9, 0x56, 0x4b, 0xbe, 0x93, 0xe6, 0x97, 0x61, 0xbf, + 0xf0, 0x6b, 0x1b, 0xdb, 0x85, 0xae, 0x9b, 0x62, 0xe8, 0x3f, 0x1d, 0xe0, 0xf5, 0x24, 0x15, 0xea, + 0x06, 0xdc, 0x75, 0x8c, 0x45, 0xca, 0x4d, 0x06, 0xf1, 0x6b, 0x5f, 0xf2, 0x90, 0xe6, 0x8b, 0x94, + 0xce, 0xe7, 0x4f, 0x39, 0x10, 0x8b, 0x48, 0x80, 0x93, 0xef, 0x02, 0x9c, 0xba, 0xa4, 0x19, 0xcf, + 0x39, 0x65, 0x65, 0x04, 0xe8, 0x30, 0xe6, 0xf4, 0x0c, 0x6d, 0x30, 0x7a, 0x0f, 0x8c, 0x82, 0x3a, + 0x45, 0xf7, 0x20, 0xd2, 0x7e, 0x30, 0x42, 0x9a, 0x2f, 0xc1, 0xaf, 0x57, 0x33, 0x50, 0x14, 0x35, + 0xef, 0x03, 0x1f, 0x60, 0x65, 0xcc, 0xb0, 0x12, 0xf1, 0xf2, 0x2a, 0x41, 0xe8, 0x49, 0x4f, 0x53, + 0x08, 0x23, 0x21, 0xce, 0x20, 0xb5, 0xd4, 0x86, 0x79, 0xa0, 0x7e, 0xb3, 0x50, 0xd6, 0x65, 0x8c, + 0x99, 0x4a, 0xfe, 0xa3, 0xc6, 0x3d, 0xfa, 0x06, 0x77, 0x13, 0xf4, 0x14, 0x5c, 0x30, 0xbf, 0xda, + 0x6c, 0x85, 0x3e, 0xb3, 0x79, 0xc9, 0xf3, 0x88, 0x0f, 0xe9, 0x82, 0x3b, 0x23, 0xba, 0xb8, 0xe0, + 0x42, 0x12, 0xde, 0x7c, 0x15, 0x4b, 0xa4, 0x42, 0xdf, 0x31, 0x71, 0x6a, 0x33, 0x62, 0x7a, 0x41, + 0x2e, 0x7c, 0xe7, 0xc0, 0x6b, 0xcd, 0x37, 0xd0, 0xff, 0x0b, 0x1f, 0xc3, 0x06, 0x3c, 0x96, 0x08, + 0x53, 0x57, 0x58, 0x0a, 0x78, 0x59, 0x99, 0x7e, 0x32, 0x18, 0xb9, 0xd7, 0x29, 0x77, 0x86, 0x7e, + 0x96, 0xe5, 0x40, 0x17, 0x2a, 0x8e, 0xef, 0x81, 0xde, 0x3b, 0x9c, 0x70, 0x8d, 0xbb, 0xef, 0x1c, + 0x47, 0x77, 0x1c, 0xe1, 0x71, 0x84, 0xa9, 0xcd, 0x25, 0xc4, 0x0f, 0xe6, 0x27, 0xaf, 0x23, 0x3f, + 0x34, 0x7e, 0x68, 0x82, 0x2e, 0xd6, 0x50, 0x48, 0x64, 0x23, 0x2d, 0xfd, 0x2c, 0xcd, 0x97, 0xc2, + 0x0a, 0x89, 0xd7, 0xc8, 0xc4, 0x7e, 0x89, 0xcd, 0xf5, 0xf0, 0x9d, 0xd8, 0x43, 0xd5, 0xb1, 0x11, + 0x78, 0xae, 0xfa, 0x45, 0x78, 0x48, 0xf3, 0x25, 0xcb, 0x6e, 0x4b, 0xad, 0xa3, 0x05, 0x94, 0x71, + 0x31, 0x50, 0x36, 0x94, 0xe8, 0x7f, 0xe5, 0x60, 0x89, 0x48, 0x90, 0xe9, 0xb7, 0x84, 0x1b, 0xa9, + 0x37, 0x93, 0x6c, 0xc7, 0x77, 0xc6, 0xcb, 0xb1, 0xcf, 0xa1, 0x34, 0xfb, 0xf5, 0x20, 0x01, 0x54, + 0xe3, 0x5f, 0x06, 0xbf, 0x62, 0x1b, 0xc3, 0x7a, 0x45, 0x16, 0x34, 0x5f, 0x3a, 0xbd, 0xb7, 0xba, + 0x96, 0x0d, 0xc0, 0xbb, 0xea, 0x5a, 0x46, 0xce, 0xfb, 0x8d, 0x8d, 0x8c, 0x3f, 0x5d, 0xcb, 0x8a, + 0x23, 0xe3, 0xd5, 0xd8, 0xa2, 0xc1, 0xa4, 0x43, 0x5d, 0x85, 0xae, 0xa0, 0xb9, 0xc1, 0x10, 0xe1, + 0xf4, 0x01, 0x2e, 0x78, 0x3c, 0x52, 0xc6, 0x29, 0x49, 0xa9, 0xc8, 0x21, 0x67, 0x8f, 0xbd, 0x11, + 0x51, 0xd0, 0x5c, 0x1f, 0x3c, 0xa0, 0xb9, 0x3e, 0x22, 0x1e, 0xcb, 0x49, 0x7d, 0x1d, 0xc6, 0x31, + 0xde, 0x51, 0x90, 0x7a, 0x84, 0xaf, 0xe5, 0x8b, 0x81, 0xb7, 0x23, 0x39, 0x95, 0xaf, 0x1a, 0xc2, + 0x24, 0xdc, 0x0e, 0xe4, 0xd4, 0xde, 0x7c, 0xcc, 0xe6, 0xc3, 0x3a, 0xcc, 0x27, 0x94, 0xf8, 0xd7, + 0x55, 0x30, 0x98, 0x8f, 0xe1, 0xe1, 0x7c, 0x84, 0x90, 0xeb, 0xf8, 0xde, 0x39, 0x9f, 0x4d, 0x3a, + 0xf1, 0x9e, 0x74, 0x21, 0x7c, 0xfd, 0xc2, 0x5a, 0x46, 0xc6, 0x97, 0xfb, 0xbc, 0xb1, 0x25, 0x57, + 0x2a, 0xf3, 0x0f, 0x25, 0x12, 0xb4, 0x56, 0x14, 0x7f, 0xd2, 0x2e, 0x7b, 0xa8, 0x17, 0x30, 0x9a, + 0x07, 0xa4, 0x75, 0xd5, 0xd1, 0xef, 0xfc, 0xce, 0x48, 0xf3, 0x56, 0x5e, 0x1b, 0xa5, 0xc5, 0x9f, + 0x36, 0x4f, 0x27, 0xa0, 0x57, 0x4b, 0x99, 0x8e, 0xae, 0x75, 0xbe, 0x80, 0x97, 0x5c, 0xd6, 0x3a, + 0x78, 0x0a, 0xa4, 0x23, 0x55, 0x2e, 0x78, 0xdd, 0xa6, 0x1c, 0x15, 0xae, 0x4b, 0xff, 0x80, 0xae, + 0x08, 0x6a, 0x4d, 0x57, 0x8c, 0xe0, 0x6d, 0xec, 0xa0, 0x7f, 0x23, 0xf4, 0x57, 0x6f, 0x40, 0xdf, + 0x7f, 0x40, 0x15, 0x45, 0x52, 0xea, 0xaf, 0x8b, 0x40, 0x05, 0x39, 0x28, 0xd6, 0xa4, 0x16, 0x2a, + 0x48, 0x85, 0x76, 0xe3, 0x89, 0xde, 0x87, 0xe7, 0xde, 0x7e, 0x9f, 0x7e, 0xa2, 0x82, 0xd2, 0xde, + 0xa3, 0xe4, 0x4b, 0xa9, 0x65, 0xbc, 0xa1, 0x9f, 0x5c, 0xe5, 0xee, 0xdb, 0x52, 0xd0, 0x3b, 0x9e, + 0xdd, 0xda, 0x8a, 0xa6, 0x3d, 0xa6, 0x45, 0x9e, 0x30, 0x82, 0xae, 0x9a, 0x41, 0xfa, 0x58, 0x58, + 0x39, 0x07, 0xc2, 0x6c, 0x02, 0x9a, 0x91, 0xc9, 0x17, 0x28, 0xc4, 0x24, 0x57, 0x3f, 0xa4, 0x34, + 0xee, 0x40, 0xc7, 0x8a, 0x49, 0x6d, 0x27, 0xc8, 0x79, 0xdb, 0x09, 0xc5, 0xe2, 0xbf, 0xd2, 0x26, + 0x70, 0xe8, 0x07, 0xa8, 0x05, 0x5f, 0x86, 0x80, 0x7c, 0xa3, 0x13, 0x79, 0x1d, 0x01, 0xd4, 0xc4, + 0x95, 0x3b, 0xf7, 0x2f, 0x50, 0xdf, 0x38, 0x88, 0xda, 0x54, 0xe0, 0xe9, 0x60, 0x0f, 0x9e, 0x6e, + 0xa5, 0xb2, 0xea, 0xe1, 0x40, 0x1d, 0x47, 0x3a, 0x6d, 0xe9, 0x74, 0x12, 0x3c, 0x03, 0x0a, 0xad, + 0xe1, 0xba, 0xae, 0xb7, 0xe8, 0x04, 0xc0, 0x0a, 0x7b, 0x1a, 0x25, 0xa1, 0x90, 0xcb, 0x51, 0xb7, + 0x70, 0x39, 0x54, 0x1f, 0xe0, 0x6b, 0xf4, 0xca, 0x75, 0x9a, 0xdf, 0x75, 0xe1, 0xfb, 0x58, 0x15, + 0xfb, 0x4d, 0xad, 0x46, 0x07, 0x34, 0xba, 0xcf, 0xb3, 0xb3, 0x99, 0x78, 0x86, 0xee, 0x2a, 0x98, + 0x4c, 0xda, 0x28, 0x52, 0xaf, 0xc9, 0x64, 0xf3, 0x51, 0xda, 0x5b, 0xa9, 0x90, 0x4f, 0x43, 0x19, + 0x52, 0xb4, 0x30, 0x49, 0xa5, 0x22, 0xfd, 0xe9, 0x55, 0x6d, 0x4b, 0xa6, 0x7b, 0x8a, 0xf1, 0xf0, + 0x2b, 0x65, 0x51, 0x0a, 0x4d, 0x52, 0x63, 0xc9, 0x17, 0x1b, 0x64, 0x61, 0xc0, 0xf9, 0x6d, 0x32, + 0xc2, 0x9d, 0xa8, 0x06, 0xf8, 0x3d, 0xbb, 0x46, 0x8e, 0x7b, 0x42, 0x5e, 0x76, 0xe9, 0x31, 0xcb, + 0x22, 0xa3, 0x41, 0xd4, 0xcb, 0x48, 0x75, 0xa2, 0x64, 0xd4, 0x3a, 0x8a, 0x1b, 0x50, 0x1c, 0x71, + 0xc9, 0xe8, 0x4b, 0x44, 0x51, 0x2a, 0xa2, 0xed, 0x1c, 0xef, 0xa0, 0x7d, 0xa8, 0x2f, 0xc4, 0x0a, + 0xab, 0xc9, 0xae, 0xc6, 0x94, 0x51, 0x2e, 0xcd, 0x52, 0x5b, 0x55, 0x99, 0x8a, 0x52, 0x17, 0xe7, + 0xc2, 0x20, 0xdd, 0xc5, 0xfb, 0x82, 0x13, 0x01, 0xc7, 0x23, 0x97, 0x73, 0xb5, 0xec, 0xf4, 0xe9, + 0x79, 0x14, 0x63, 0xbb, 0x71, 0x37, 0x82, 0xcd, 0xc0, 0xed, 0x20, 0xa7, 0x73, 0x17, 0xe8, 0xa6, + 0x96, 0x71, 0x13, 0x1b, 0x8b, 0x3a, 0xd0, 0xad, 0xbd, 0xe6, 0x95, 0x73, 0x9b, 0x85, 0xd3, 0xea, + 0x43, 0x4e, 0x29, 0xff, 0x96, 0xf6, 0x32, 0xfc, 0xe7, 0x5c, 0xa1, 0xe0, 0x13, 0xe4, 0x2a, 0x9e, + 0x1e, 0xb7, 0xd8, 0x3f, 0x12, 0x0d, 0x45, 0xba, 0x46, 0x94, 0xea, 0x2c, 0x8b, 0xc9, 0xc5, 0x27, + 0x3d, 0x7e, 0x8f, 0xe4, 0x7b, 0x42, 0x2d, 0x3e, 0x89, 0xde, 0xd6, 0xe9, 0xea, 0x07, 0x2d, 0xe4, + 0xa4, 0x29, 0x06, 0x36, 0x3d, 0x58, 0x9e, 0xbc, 0x4c, 0x65, 0x7c, 0xc4, 0x37, 0xf7, 0xe4, 0x65, + 0x54, 0x0e, 0xa5, 0x8e, 0xd2, 0x14, 0x0f, 0x7f, 0xf7, 0x10, 0xbe, 0x9f, 0xa6, 0xfb, 0x40, 0x8e, + 0xf5, 0x52, 0xeb, 0xe0, 0x29, 0x5d, 0xf8, 0xc9, 0x3d, 0x80, 0x61, 0x0f, 0x39, 0x38, 0x4a, 0x26, + 0x96, 0xa9, 0xe0, 0xa9, 0x0e, 0x32, 0xdd, 0x35, 0x55, 0x07, 0x8d, 0xa4, 0x10, 0x25, 0x6f, 0x7b, + 0x20, 0x63, 0x62, 0x7b, 0x1a, 0x89, 0x97, 0x09, 0x78, 0xb8, 0x9e, 0xe5, 0xa4, 0x1d, 0xdd, 0xe5, + 0x51, 0xc8, 0x8d, 0x80, 0x71, 0x25, 0x26, 0xb4, 0xde, 0xd5, 0x8e, 0x7e, 0x6f, 0xe9, 0x6b, 0x31, + 0xd5, 0x5c, 0xbb, 0x0a, 0xb3, 0x95, 0xde, 0x3d, 0x18, 0xfe, 0xa8, 0x94, 0x81, 0xfa, 0xda, 0x76, + 0x7f, 0x03, 0x13, 0xdb, 0x1e, 0x78, 0x20, 0xd4, 0x93, 0x60, 0x3b, 0x29, 0x07, 0x76, 0x8b, 0xc2, + 0xb5, 0x98, 0x41, 0xef, 0x0f, 0x03, 0x54, 0x26, 0x47, 0xcb, 0x09, 0x3c, 0xa8, 0x9c, 0xef, 0x43, + 0xaa, 0xbd, 0x8d, 0x33, 0x2d, 0x08, 0x96, 0x45, 0xaa, 0x4b, 0x07, 0xab, 0x09, 0x03, 0xed, 0x9e, + 0xfc, 0xa8, 0x56, 0x87, 0xd9, 0x1f, 0xc9, 0xef, 0x95, 0xc6, 0xdc, 0x8a, 0x24, 0x80, 0xcb, 0xe4, + 0xca, 0xf6, 0xc7, 0xb0, 0x1e, 0x31, 0xb4, 0xbc, 0x12, 0xea, 0x9f, 0x1a, 0x4a, 0x09, 0x38, 0x41, + 0x05, 0xe5, 0x89, 0x14, 0x3c, 0xfe, 0xf9, 0xf3, 0xf8, 0x2a, 0x88, 0x6a, 0x78, 0xa3, 0x15, 0x56, + 0xb5, 0x0b, 0x7d, 0xcc, 0xf7, 0xa1, 0x8b, 0x6f, 0x5b, 0x94, 0x0a, 0x1e, 0x95, 0xe9, 0xeb, 0xc2, + 0x25, 0x8e, 0x12, 0x24, 0xec, 0xba, 0xdb, 0xf9, 0x53, 0x7f, 0x8d, 0x2d, 0x89, 0x45, 0xab, 0x15, + 0xb2, 0x62, 0x6f, 0xa6, 0x02, 0xa5, 0x07, 0xd9, 0xa1, 0x6a, 0x78, 0x0a, 0x07, 0x2a, 0x40, 0x8e, + 0x7b, 0xff, 0x5e, 0x36, 0x89, 0xd2, 0xca, 0xca, 0xc3, 0xb2, 0x89, 0x74, 0xf1, 0x01, 0x03, 0x94, + 0xef, 0xf8, 0x3e, 0xf5, 0x4b, 0xac, 0x3f, 0x7a, 0x72, 0x85, 0x27, 0x29, 0x2b, 0x13, 0xee, 0x24, + 0xca, 0x4a, 0x17, 0xca, 0x3b, 0xef, 0xcf, 0xac, 0xb8, 0xba, 0xe2, 0x58, 0x68, 0xa5, 0x70, 0xe4, + 0xd3, 0x74, 0x54, 0x8f, 0x10, 0x4b, 0xae, 0x35, 0x7d, 0x5b, 0x0b, 0xed, 0x15, 0xf8, 0xa8, 0xf6, + 0x52, 0x43, 0x7f, 0x02, 0xa7, 0x10, 0x4a, 0x24, 0xe2, 0x0a, 0x0e, 0x5a, 0x4d, 0x0e, 0xc3, 0x9c, + 0x70, 0x36, 0x0b, 0xc5, 0x56, 0xe8, 0xc5, 0xb9, 0x9c, 0x7a, 0x11, 0x60, 0x8a, 0x35, 0x75, 0x0b, + 0xb0, 0xcd, 0x20, 0x9d, 0x80, 0x96, 0x74, 0x5c, 0x71, 0x69, 0x58, 0x08, 0xdd, 0x49, 0xd7, 0x18, + 0x60, 0xae, 0x55, 0xed, 0xaa, 0xa9, 0xb4, 0x6b, 0xeb, 0x62, 0x58, 0x5f, 0x98, 0xa9, 0x4a, 0xd4, + 0x9d, 0x65, 0x14, 0x75, 0x05, 0x44, 0xd2, 0xcf, 0x28, 0xf4, 0x82, 0x73, 0xd4, 0x34, 0x7d, 0x4c, + 0x7b, 0xc0, 0xad, 0x05, 0xf3, 0x0a, 0x7c, 0xa6, 0x4a, 0xad, 0xa7, 0x1a, 0x68, 0x3a, 0xa0, 0xb2, + 0x74, 0x48, 0x65, 0x09, 0xb4, 0x94, 0x81, 0x3f, 0xd1, 0x85, 0x95, 0x51, 0x03, 0x78, 0x63, 0x97, + 0x0a, 0x77, 0x58, 0x91, 0xae, 0xce, 0x83, 0xe5, 0xcc, 0xac, 0x1c, 0x3a, 0xa4, 0x62, 0xc8, 0x34, + 0x6a, 0x2f, 0xa6, 0x0b, 0xaf, 0x69, 0xfe, 0x60, 0x19, 0xc5, 0x15, 0x0e, 0xbe, 0x23, 0x56, 0x39, + 0xc0, 0x39, 0x3f, 0x8d, 0x54, 0xa3, 0x9e, 0xa7, 0xb8, 0xe4, 0x0e, 0x8a, 0xab, 0x0d, 0x9f, 0xed, + 0x85, 0x1c, 0xd4, 0x9f, 0xf0, 0xd9, 0xe4, 0x7f, 0xcf, 0x67, 0x3f, 0xac, 0xfd, 0x06, 0x18, 0x2c, + 0xdf, 0xb1, 0xaf, 0xe5, 0xc0, 0x60, 0x8f, 0xc6, 0x24, 0xdc, 0xba, 0xe4, 0x65, 0x5a, 0x02, 0x73, + 0x7d, 0xb3, 0x63, 0x17, 0x5d, 0xcd, 0x9f, 0x07, 0xc7, 0x3a, 0x4f, 0x59, 0x36, 0x3b, 0x7c, 0xe3, + 0x08, 0x38, 0x6e, 0x8f, 0x80, 0xe3, 0x0e, 0x51, 0x1c, 0x57, 0xc7, 0x9f, 0x23, 0x03, 0x66, 0xcc, + 0x77, 0xc6, 0xf1, 0xe1, 0xf2, 0x85, 0x53, 0x99, 0x52, 0xc1, 0x23, 0x53, 0xb9, 0xe0, 0x81, 0x69, + 0xa6, 0x90, 0xe6, 0x5c, 0x21, 0xcd, 0x25, 0xf4, 0xea, 0x4e, 0xe5, 0x7c, 0xc4, 0x44, 0xca, 0xad, + 0xa6, 0x69, 0xae, 0xa1, 0x67, 0xb5, 0x0e, 0x79, 0xc1, 0x73, 0x42, 0xba, 0x6e, 0xa4, 0x1b, 0xc5, + 0xaf, 0xb8, 0xaf, 0x55, 0x4f, 0xf7, 0xb4, 0xae, 0x3e, 0x1a, 0x03, 0xc2, 0x97, 0x2a, 0xf4, 0xe9, + 0xf3, 0x68, 0xfc, 0x07, 0x5f, 0xaa, 0x01, 0x6a, 0xff, 0x64, 0x5f, 0x6d, 0x9f, 0x0b, 0x0e, 0xac, + 0x6b, 0xd9, 0x51, 0x43, 0xdc, 0x03, 0x98, 0x59, 0xd3, 0x06, 0x47, 0x79, 0xf1, 0x76, 0x4e, 0x92, + 0xb7, 0x35, 0x67, 0x46, 0x12, 0x2a, 0x15, 0x50, 0x1c, 0x1c, 0xc7, 0x95, 0xb9, 0xa4, 0x71, 0x0e, + 0xda, 0x36, 0xdf, 0x91, 0x8e, 0x56, 0xd0, 0x57, 0x25, 0xcb, 0x11, 0xdb, 0xa2, 0xb7, 0x6e, 0xba, + 0x5e, 0xdd, 0x70, 0xec, 0xca, 0xc5, 0x5c, 0x83, 0x1a, 0x5a, 0x78, 0xff, 0x78, 0xad, 0xe7, 0xde, + 0xc3, 0xfb, 0x72, 0x98, 0x8a, 0xb0, 0x62, 0x9b, 0xbe, 0xa9, 0x7d, 0xa8, 0xae, 0xd4, 0x7e, 0xcc, + 0x83, 0x43, 0xc9, 0xcb, 0x60, 0x7d, 0x95, 0xf7, 0x32, 0x13, 0xdf, 0x47, 0x84, 0x80, 0xb6, 0x7a, + 0x4a, 0xe0, 0x73, 0xec, 0x32, 0xd5, 0xac, 0xa7, 0x70, 0x2f, 0x2f, 0x5e, 0x08, 0x57, 0xad, 0x77, + 0x03, 0xce, 0xf8, 0x5d, 0xd4, 0x10, 0xb0, 0xce, 0xb2, 0xfb, 0x3a, 0xdf, 0xba, 0xd3, 0x37, 0xd3, + 0xed, 0x0e, 0x8e, 0xa8, 0xd1, 0x81, 0x87, 0x5d, 0x4b, 0xe8, 0xdc, 0x0f, 0x4c, 0xa2, 0xfb, 0xb0, + 0x7f, 0x87, 0x19, 0xd1, 0xd3, 0xb7, 0x89, 0x4a, 0x4c, 0xa1, 0xb5, 0x31, 0x33, 0xab, 0x15, 0x76, + 0x7c, 0xbc, 0x04, 0xbf, 0xcc, 0x61, 0xac, 0x97, 0x80, 0xd9, 0xe4, 0x6c, 0x00, 0xc5, 0x8f, 0x63, + 0x05, 0xfc, 0x18, 0x26, 0xbc, 0xf7, 0x55, 0x56, 0xf2, 0xd8, 0x4f, 0xb9, 0x06, 0xbe, 0xfe, 0x03, + 0xdc, 0xe7, 0x38, 0x9f, 0x6b, 0x99, 0x9b, 0x48, 0xdb, 0x02, 0x77, 0x27, 0xb1, 0x2b, 0x9c, 0x75, + 0x25, 0x80, 0xeb, 0x57, 0xa7, 0x2c, 0x60, 0xfc, 0xdb, 0xbc, 0xab, 0x4a, 0x59, 0xf0, 0x77, 0x73, + 0x36, 0x88, 0xb4, 0xec, 0x2f, 0xf7, 0x6f, 0xb5, 0xb7, 0xc1, 0x7b, 0xa5, 0x6a, 0x45, 0x49, 0xb8, + 0x29, 0x3c, 0x04, 0x3d, 0x19, 0x4f, 0x5e, 0x32, 0x4d, 0x21, 0xe3, 0xce, 0xd1, 0x11, 0x5e, 0xcf, + 0x98, 0x91, 0xe2, 0x42, 0xef, 0xa6, 0xf4, 0xdc, 0x99, 0x09, 0x15, 0x9f, 0x9f, 0xc6, 0x53, 0x16, + 0x88, 0x69, 0xb9, 0xab, 0x42, 0xec, 0x1b, 0xd0, 0xfa, 0x75, 0x40, 0xff, 0x50, 0xeb, 0x0d, 0x14, + 0xdb, 0xe6, 0xbb, 0x8c, 0x9c, 0xab, 0x8e, 0xb2, 0xb5, 0x8a, 0xe5, 0xc9, 0x21, 0x17, 0x75, 0x3a, + 0xd8, 0xca, 0x35, 0xfe, 0xc3, 0x18, 0x32, 0xee, 0x06, 0x8c, 0xd0, 0x8b, 0xe8, 0x73, 0xf5, 0xcf, + 0x63, 0x4c, 0x26, 0x13, 0xae, 0x9e, 0x9c, 0xa7, 0xa3, 0x58, 0x84, 0x85, 0x2e, 0xd2, 0xa5, 0x7e, + 0x76, 0x9f, 0xfa, 0xd1, 0x26, 0x64, 0x67, 0x66, 0x28, 0xbd, 0x47, 0xcf, 0xec, 0x95, 0x99, 0x72, + 0x7a, 0x2f, 0xb5, 0x11, 0x51, 0x14, 0x9b, 0x4f, 0xef, 0x3d, 0xed, 0x7d, 0xe9, 0xd5, 0x07, 0xde, + 0x69, 0xf0, 0x74, 0x0f, 0x9e, 0x64, 0xa4, 0x83, 0xbd, 0x6f, 0xa6, 0x2f, 0xdc, 0xb9, 0x51, 0x3f, + 0xec, 0x0a, 0xe7, 0xfb, 0x00, 0x7b, 0x20, 0xbd, 0x76, 0xb4, 0x11, 0xd2, 0xc4, 0x32, 0xca, 0x84, + 0xa7, 0xf1, 0xd4, 0x10, 0x4f, 0x0b, 0xaf, 0x22, 0xb7, 0xcd, 0xd5, 0xc1, 0xdd, 0x25, 0x7a, 0x77, + 0x1a, 0xee, 0x4e, 0xd3, 0xbb, 0x8b, 0xe8, 0xc5, 0x9d, 0x09, 0xe1, 0x4e, 0x43, 0x09, 0xf6, 0xa6, + 0x55, 0xb0, 0xfe, 0x78, 0xaf, 0x0c, 0xe1, 0xea, 0x16, 0x7d, 0xc0, 0x5d, 0xdc, 0x54, 0x31, 0x86, + 0x90, 0x1a, 0x4a, 0x51, 0x9e, 0x9e, 0x2c, 0xa2, 0x12, 0x7e, 0x09, 0x5d, 0x21, 0x16, 0x7a, 0x67, + 0x25, 0xd5, 0xca, 0x84, 0x6e, 0x78, 0x2f, 0xc3, 0xfd, 0x41, 0x81, 0x62, 0x77, 0x63, 0xe2, 0x01, + 0x33, 0x25, 0x73, 0x7c, 0x7e, 0x37, 0x94, 0x09, 0x78, 0xee, 0x84, 0x3d, 0x40, 0x71, 0xbc, 0x4e, + 0x65, 0x46, 0x4f, 0xab, 0xb0, 0xa2, 0xaa, 0x28, 0x67, 0x84, 0x67, 0xe6, 0x92, 0xa5, 0x07, 0xd4, + 0xb1, 0x02, 0x36, 0xc8, 0x87, 0x51, 0xed, 0xb8, 0x2f, 0xa3, 0x71, 0x65, 0xff, 0x45, 0x3c, 0x08, + 0x15, 0x83, 0x1c, 0xb7, 0x40, 0x25, 0xab, 0x78, 0x2f, 0x5a, 0x73, 0x05, 0xea, 0xf7, 0x2a, 0x7c, + 0x3b, 0x04, 0xfd, 0x75, 0x43, 0x69, 0x0e, 0x86, 0xf4, 0xff, 0xaa, 0xdf, 0x18, 0x77, 0x7a, 0x72, + 0xb2, 0x5a, 0xd8, 0xc1, 0xbf, 0x81, 0x9c, 0x8a, 0x86, 0xf7, 0x8a, 0x4c, 0x57, 0xd4, 0x70, 0x18, + 0x7d, 0xb1, 0xbc, 0x6e, 0x2e, 0x9e, 0x45, 0x79, 0xea, 0x13, 0x49, 0x50, 0x8b, 0xf6, 0x1d, 0x60, + 0x01, 0xf4, 0x75, 0xcb, 0x4b, 0x9f, 0x75, 0xb0, 0x27, 0x53, 0x89, 0x33, 0xec, 0x51, 0xc6, 0xe9, + 0x5b, 0x7d, 0x39, 0xab, 0x15, 0x74, 0x0d, 0x52, 0x78, 0xbd, 0x02, 0xea, 0xbb, 0x61, 0x2c, 0xae, + 0xc1, 0xbc, 0xf7, 0xc1, 0xf0, 0x12, 0x8d, 0x9c, 0xee, 0x19, 0x42, 0x0b, 0xe3, 0xdb, 0x62, 0x4f, + 0x61, 0x96, 0x97, 0x0b, 0xf4, 0x04, 0xbf, 0x8b, 0x9e, 0xef, 0x28, 0xbf, 0x73, 0xc6, 0x45, 0xd3, + 0xef, 0x1e, 0xc2, 0xf7, 0xa4, 0x87, 0xbe, 0x77, 0xa1, 0xdf, 0x65, 0xc2, 0x77, 0xdd, 0x43, 0xdf, + 0x83, 0xda, 0xf8, 0x57, 0x77, 0xae, 0xf6, 0x6c, 0x3d, 0x9d, 0xcb, 0x12, 0x9e, 0xc6, 0xf8, 0x7f, + 0x9a, 0x2f, 0x20, 0x88, 0xf3, 0x09, 0xb9, 0xfb, 0x67, 0x7c, 0x01, 0x39, 0xdf, 0xc2, 0x17, 0xfc, + 0xd9, 0x79, 0x93, 0xca, 0xf8, 0x67, 0xe7, 0x4c, 0x3c, 0x5f, 0xf0, 0x67, 0x27, 0x4d, 0xff, 0x90, + 0x2b, 0xb8, 0xd2, 0x96, 0x2b, 0xb0, 0x87, 0x3a, 0xe8, 0xf7, 0x3f, 0xfc, 0x9d, 0x69, 0x8f, 0x2d, + 0x11, 0xbb, 0xa6, 0x4d, 0xa9, 0x77, 0xea, 0xed, 0xf9, 0x9f, 0x52, 0xef, 0x94, 0x9a, 0xd3, 0x13, + 0x95, 0x06, 0xc7, 0x9e, 0x9e, 0xe8, 0x18, 0x33, 0xee, 0x36, 0x97, 0x88, 0x98, 0xd8, 0x4d, 0x6b, + 0x80, 0x9a, 0xcb, 0xe0, 0x77, 0x49, 0x12, 0x1a, 0x65, 0xb8, 0xff, 0x8b, 0x54, 0x9d, 0x8e, 0x52, + 0x75, 0x48, 0xf9, 0x9a, 0xb5, 0xe8, 0x91, 0x1a, 0x28, 0x66, 0x65, 0xda, 0xc3, 0x54, 0x1d, 0xdd, + 0xd5, 0xf1, 0x05, 0x86, 0x20, 0x16, 0xcf, 0xcc, 0xf5, 0x72, 0xba, 0xa7, 0xe8, 0x42, 0xb9, 0xf1, + 0x7b, 0x0b, 0xd4, 0x9b, 0xa1, 0x63, 0x77, 0x21, 0xb6, 0x35, 0x5e, 0xff, 0x5f, 0xd3, 0x75, 0xfc, + 0x4c, 0x8b, 0xec, 0x4b, 0x69, 0xf0, 0x22, 0x9e, 0x06, 0x87, 0x16, 0xf5, 0xa2, 0xe7, 0xcf, 0xbb, + 0x55, 0xfc, 0xe9, 0x21, 0x2b, 0x5f, 0x42, 0x77, 0x30, 0xa4, 0x9f, 0xfc, 0xcc, 0xdd, 0xb7, 0xa5, + 0x02, 0x77, 0x2e, 0xb3, 0x27, 0xd1, 0xd6, 0x36, 0x3b, 0x76, 0x30, 0xd4, 0xc4, 0xde, 0x57, 0xd8, + 0xbf, 0x30, 0x13, 0x46, 0x1f, 0xcb, 0xef, 0x5f, 0x08, 0xe3, 0xba, 0x65, 0xd7, 0xbf, 0xf5, 0x1e, + 0x46, 0xac, 0xeb, 0x1e, 0xc6, 0x88, 0x20, 0xe7, 0x28, 0xaf, 0x74, 0xae, 0x59, 0x82, 0xb4, 0x02, + 0xd2, 0x86, 0x74, 0xb7, 0x20, 0x10, 0x46, 0xfa, 0x56, 0x7e, 0xd6, 0xab, 0x07, 0x32, 0x09, 0xdd, + 0x35, 0x3c, 0xbe, 0x2b, 0x97, 0x97, 0x91, 0x09, 0x64, 0xb2, 0x18, 0x66, 0xee, 0xaa, 0x56, 0x72, + 0xa8, 0x21, 0x76, 0x8b, 0x20, 0x13, 0xdd, 0xd5, 0x3e, 0x45, 0x58, 0xe1, 0x3d, 0x6d, 0x93, 0xd9, + 0x50, 0xfa, 0x4e, 0x63, 0x2f, 0xa4, 0xd7, 0xb1, 0xb6, 0x6c, 0x76, 0x84, 0x20, 0x13, 0xad, 0x16, + 0xf4, 0xad, 0x0d, 0x76, 0xad, 0x20, 0x01, 0x9d, 0xc4, 0x86, 0xe9, 0x44, 0x6c, 0x3c, 0x95, 0xde, + 0xf6, 0xe3, 0xb6, 0x52, 0x49, 0x67, 0xaa, 0xe1, 0xc9, 0xb4, 0xe7, 0x6a, 0xa9, 0xc4, 0xb3, 0x96, + 0x3e, 0x89, 0xb8, 0x7d, 0x96, 0x5d, 0xd4, 0xef, 0xf8, 0x21, 0x36, 0x90, 0xbe, 0xf1, 0x86, 0x35, + 0x91, 0x6a, 0xe8, 0x6a, 0x45, 0xac, 0x54, 0x2d, 0x62, 0xc5, 0x1a, 0xfe, 0x3c, 0x65, 0x80, 0xeb, + 0x79, 0x0a, 0x97, 0xc2, 0x24, 0x50, 0xb9, 0xa1, 0x73, 0xc1, 0x29, 0x74, 0x7d, 0xdb, 0x8a, 0xeb, + 0x1b, 0x7d, 0x27, 0xe3, 0xee, 0x6e, 0x6e, 0x75, 0xe6, 0xe6, 0xba, 0x67, 0xc0, 0xef, 0x36, 0xa9, + 0x4d, 0x4c, 0x02, 0x7f, 0x0a, 0x04, 0x6b, 0x93, 0x8c, 0xf2, 0xf5, 0x62, 0xfe, 0x54, 0x02, 0x56, + 0xea, 0x0a, 0x98, 0x2d, 0x95, 0x0e, 0x5b, 0x06, 0x5f, 0x1b, 0x79, 0x09, 0x95, 0x5e, 0xf5, 0xe8, + 0x6d, 0x14, 0xf2, 0x98, 0x2b, 0xc8, 0x30, 0x2e, 0x41, 0xaf, 0x8a, 0x8f, 0xa0, 0x44, 0x97, 0x33, + 0x09, 0xed, 0xe3, 0x80, 0x9f, 0xae, 0x32, 0xad, 0x01, 0x4e, 0x34, 0x9e, 0x5f, 0x11, 0x84, 0x79, + 0x78, 0xcb, 0x39, 0x07, 0x13, 0x28, 0x67, 0x2e, 0xb7, 0x39, 0xe8, 0xb1, 0x1b, 0x2e, 0x3b, 0xd4, + 0xce, 0xb2, 0xbe, 0x72, 0xd0, 0x3a, 0xd3, 0x9e, 0x4d, 0xeb, 0x6e, 0x76, 0x9c, 0x24, 0xc0, 0xda, + 0x66, 0x04, 0x6a, 0x27, 0x15, 0xca, 0x78, 0x51, 0x58, 0xcf, 0x5a, 0x3c, 0x65, 0xba, 0x31, 0x32, + 0xee, 0xa2, 0xd0, 0x2e, 0xf5, 0xce, 0x9d, 0x14, 0x2b, 0xef, 0xab, 0xd9, 0x89, 0xb1, 0x02, 0x5c, + 0x4e, 0x62, 0x5d, 0x72, 0x63, 0xbc, 0xe9, 0x4a, 0xc2, 0x0a, 0x7b, 0x29, 0x8d, 0x74, 0xcf, 0x4b, + 0x18, 0x4d, 0x88, 0x33, 0xc3, 0x61, 0xc6, 0xd0, 0x55, 0x04, 0xad, 0xb9, 0x34, 0xba, 0xac, 0x21, + 0x21, 0xdc, 0x5d, 0x61, 0xd4, 0x84, 0xb6, 0xe2, 0x93, 0x53, 0x59, 0x2f, 0x7e, 0x74, 0xa0, 0xb4, + 0x31, 0xee, 0x29, 0x3a, 0xd7, 0x0b, 0x19, 0x5d, 0x2f, 0x34, 0xc2, 0xd8, 0xb8, 0x2b, 0xdc, 0xb5, + 0x87, 0xbb, 0x2e, 0xce, 0x3d, 0x31, 0x17, 0xba, 0x94, 0xea, 0xd2, 0x53, 0xdf, 0xec, 0x54, 0x66, + 0xe0, 0x5c, 0x31, 0x61, 0xaf, 0xf2, 0x16, 0x33, 0xa2, 0x90, 0x0b, 0x36, 0xc2, 0xec, 0x33, 0x03, + 0xbe, 0xb1, 0xfc, 0xc9, 0x4e, 0xa3, 0x13, 0x17, 0x68, 0xa1, 0xef, 0x27, 0x93, 0x62, 0xc0, 0x47, + 0x35, 0x88, 0x8f, 0x08, 0x79, 0x17, 0xf8, 0x4d, 0xa8, 0xd5, 0xe9, 0xb9, 0x71, 0xd7, 0x89, 0x4a, + 0x90, 0x54, 0x73, 0x95, 0x47, 0x72, 0x13, 0xec, 0xa1, 0x4a, 0x48, 0x24, 0x8c, 0x0d, 0x99, 0xa5, + 0x36, 0xa5, 0x02, 0x4f, 0xa0, 0xe1, 0x9e, 0x6a, 0x0e, 0xa1, 0x2c, 0x92, 0x16, 0x66, 0x24, 0x60, + 0x9e, 0xc1, 0x4a, 0xab, 0x80, 0xad, 0xca, 0x10, 0xb7, 0x3d, 0x6b, 0x44, 0xdc, 0x36, 0x24, 0x46, + 0x17, 0xab, 0x2a, 0x04, 0x9e, 0x15, 0x67, 0x6d, 0x21, 0xcf, 0xb3, 0xa2, 0xb7, 0xd7, 0xd6, 0xd8, + 0x4d, 0xe0, 0x4a, 0xbd, 0xf4, 0x44, 0x19, 0x0b, 0x78, 0x0d, 0xf0, 0x1b, 0x70, 0xa7, 0x2d, 0xd8, + 0x2d, 0x08, 0x56, 0x78, 0xde, 0xce, 0x69, 0xe0, 0x9f, 0xed, 0xed, 0x32, 0xe9, 0x0f, 0x63, 0x31, + 0x18, 0x35, 0x92, 0x87, 0x77, 0x76, 0xff, 0xc9, 0x1e, 0xae, 0xc3, 0xbe, 0x3c, 0xf0, 0xad, 0x82, + 0xdc, 0x67, 0xf3, 0xba, 0x87, 0xf8, 0xd5, 0x63, 0x0f, 0xbd, 0x39, 0x24, 0xec, 0x95, 0xd6, 0x0b, + 0xde, 0x55, 0x53, 0x74, 0x7a, 0xc2, 0x46, 0xe8, 0xc9, 0xf0, 0xbe, 0x7a, 0x32, 0x0a, 0xc2, 0x25, + 0xf1, 0x3e, 0xee, 0x11, 0xfb, 0x23, 0xd5, 0x91, 0x56, 0x51, 0xf2, 0x00, 0xc6, 0x08, 0x11, 0x75, + 0xd1, 0x16, 0x91, 0x74, 0x7a, 0xf6, 0x91, 0x43, 0xc2, 0x61, 0xcd, 0xc8, 0x03, 0x8e, 0x23, 0xde, + 0xb1, 0xaf, 0x1d, 0x1d, 0x4c, 0x94, 0xe7, 0xf3, 0x08, 0x83, 0x6d, 0x1a, 0x09, 0x2d, 0x3a, 0xd4, + 0x1c, 0xe6, 0xf6, 0xc5, 0x57, 0xa7, 0x63, 0xa0, 0x75, 0x65, 0xd6, 0xc5, 0x76, 0x4d, 0x86, 0x11, + 0xf7, 0x2e, 0xc4, 0x62, 0x62, 0x80, 0x1c, 0xd2, 0xf5, 0x30, 0xf7, 0x49, 0xb8, 0x1e, 0xe6, 0x29, + 0x89, 0xec, 0x0f, 0x7d, 0x23, 0x8d, 0xe1, 0x7e, 0x3f, 0x66, 0xec, 0x1f, 0x43, 0x8c, 0x54, 0x62, + 0x4f, 0x67, 0x93, 0x98, 0xc4, 0x30, 0xfb, 0xd1, 0x3a, 0x16, 0xea, 0x59, 0x4a, 0x50, 0x2e, 0x33, + 0xcc, 0xed, 0x18, 0x9e, 0x31, 0xe6, 0x11, 0x89, 0x26, 0xc5, 0x14, 0xcb, 0x4a, 0x52, 0x63, 0x35, + 0x46, 0xe0, 0x1c, 0xb2, 0x37, 0xc5, 0xda, 0x1a, 0xd9, 0x4c, 0x28, 0xb3, 0x1b, 0xcc, 0xf7, 0x2e, + 0x1b, 0x6b, 0x6d, 0xfe, 0xc5, 0x5c, 0xcd, 0xfb, 0x24, 0xd0, 0x26, 0xa3, 0xa7, 0xc6, 0x3a, 0x1a, + 0x1b, 0x2d, 0x32, 0x89, 0xd1, 0xfe, 0x73, 0x0c, 0xcc, 0xee, 0xaf, 0x8b, 0xf5, 0xc5, 0x32, 0x42, + 0xcc, 0xfd, 0xcd, 0x24, 0x1a, 0x7a, 0x46, 0x99, 0x66, 0xac, 0x33, 0x43, 0x29, 0x4c, 0x4c, 0x1a, + 0xdd, 0x87, 0x36, 0x68, 0xe3, 0x05, 0x7b, 0x79, 0xaf, 0xa5, 0xc5, 0xa5, 0xc6, 0x9e, 0x4e, 0x10, + 0x8b, 0xb9, 0x66, 0x4d, 0xba, 0x75, 0x89, 0x5d, 0x62, 0x8d, 0xb3, 0x2d, 0x73, 0xb4, 0x02, 0xd4, + 0x43, 0xd7, 0x52, 0x7f, 0xc1, 0xbe, 0x6f, 0x10, 0xcf, 0x8d, 0x51, 0xdb, 0xf8, 0xd0, 0xda, 0xc0, + 0x39, 0x79, 0x45, 0xe4, 0x12, 0x26, 0x2c, 0x97, 0x28, 0x2d, 0xe3, 0xab, 0x89, 0x25, 0x9b, 0x6b, + 0x72, 0xc8, 0xee, 0xc0, 0xfa, 0xaf, 0xe5, 0x77, 0x6d, 0x79, 0x8e, 0x09, 0x25, 0xdb, 0xba, 0x96, + 0x93, 0xfa, 0xfe, 0x91, 0xa4, 0x12, 0x30, 0xd2, 0xdc, 0xae, 0x16, 0x52, 0x85, 0x52, 0x34, 0x0e, + 0x9b, 0xda, 0x5a, 0x8b, 0xd6, 0x4b, 0x95, 0x28, 0x5f, 0x88, 0xad, 0x08, 0xb8, 0x30, 0x42, 0x07, + 0x23, 0x50, 0x03, 0xfc, 0x5d, 0xff, 0x1c, 0x22, 0x27, 0xa1, 0xd1, 0x3d, 0x88, 0x6f, 0x78, 0x0f, + 0xa2, 0x88, 0xe8, 0x41, 0xe5, 0x64, 0x15, 0x4a, 0x18, 0xab, 0xc2, 0xd9, 0xc6, 0x0a, 0x6a, 0x57, + 0x15, 0x3d, 0xc5, 0x74, 0xca, 0x14, 0xac, 0x92, 0xd8, 0xe5, 0x82, 0xe5, 0x10, 0x42, 0xce, 0xb1, + 0x92, 0x62, 0x0f, 0x18, 0x53, 0xee, 0x28, 0x25, 0x0b, 0xab, 0xf6, 0x2a, 0xe1, 0x84, 0x24, 0x1e, + 0x69, 0xed, 0xa3, 0xb5, 0x2d, 0x67, 0x26, 0x7a, 0x42, 0xad, 0x13, 0xcd, 0xb7, 0x7c, 0x61, 0xd9, + 0x1d, 0x99, 0x10, 0x5e, 0x44, 0xfa, 0x52, 0x7b, 0x6e, 0x66, 0xc6, 0x4b, 0x29, 0x77, 0x9c, 0xb7, + 0x2c, 0x9b, 0x9b, 0x3a, 0x63, 0xc9, 0x9c, 0xd4, 0xe9, 0xea, 0x38, 0x15, 0xe0, 0x5e, 0x7e, 0x86, + 0xe2, 0xc9, 0x94, 0x86, 0x0f, 0x69, 0x85, 0xd9, 0x1b, 0xe5, 0x7a, 0xaa, 0xa4, 0x22, 0x8e, 0x5c, + 0xf9, 0xfc, 0x78, 0x0f, 0xc7, 0x42, 0x4e, 0x2a, 0x7a, 0x26, 0x13, 0x8e, 0x67, 0x32, 0x7c, 0x4e, + 0x06, 0x3d, 0x89, 0x6f, 0x7d, 0xf6, 0x82, 0xd2, 0xa6, 0x2a, 0xfa, 0x4d, 0x1d, 0x07, 0x61, 0xbd, + 0x1c, 0x56, 0x97, 0xa8, 0x87, 0x63, 0xde, 0x63, 0x44, 0x33, 0x96, 0xc1, 0x53, 0x9a, 0x21, 0x78, + 0x38, 0x68, 0xb1, 0xc3, 0xcc, 0x5b, 0xb2, 0x65, 0xc2, 0x50, 0x96, 0x0f, 0xa5, 0x06, 0xdb, 0x5a, + 0x5f, 0x15, 0x34, 0xf1, 0x70, 0xef, 0xe0, 0xf2, 0x11, 0x2d, 0xd7, 0x08, 0xfd, 0x45, 0x2d, 0xd7, + 0x14, 0xe8, 0x36, 0xe5, 0x12, 0x6d, 0xbe, 0x1a, 0x7d, 0x4c, 0x33, 0x29, 0x26, 0x23, 0xeb, 0x9f, + 0x6a, 0x0c, 0x27, 0x69, 0xa6, 0x4d, 0x26, 0x1b, 0x7f, 0x06, 0xdd, 0xc8, 0x7a, 0x31, 0x89, 0xca, + 0x14, 0x2a, 0x9d, 0x5b, 0xcf, 0x6b, 0x04, 0xc1, 0x7c, 0x97, 0xb0, 0xe2, 0xc5, 0xfb, 0x21, 0x4e, + 0x20, 0x6f, 0x35, 0x15, 0xb5, 0x64, 0xd0, 0x97, 0x70, 0xd2, 0xb5, 0x24, 0xe0, 0x9a, 0x04, 0x4c, + 0xbe, 0x4f, 0x38, 0xd9, 0x44, 0x59, 0x29, 0x85, 0xb0, 0x6a, 0x31, 0xa8, 0x53, 0x73, 0xa6, 0x36, + 0x78, 0x20, 0x77, 0xfa, 0xd9, 0x0f, 0x80, 0x97, 0x2a, 0xe0, 0x4e, 0x03, 0xff, 0xb2, 0x8e, 0x48, + 0x4c, 0x05, 0xdc, 0x09, 0x93, 0xc9, 0x14, 0x0f, 0xd7, 0x93, 0xa6, 0x84, 0xc9, 0x84, 0x5a, 0xbc, + 0xd8, 0xc7, 0x12, 0xb7, 0x35, 0x38, 0x6b, 0x55, 0x69, 0x5b, 0xee, 0x53, 0xed, 0x13, 0xe0, 0xf4, + 0x32, 0x23, 0xb7, 0x20, 0x77, 0x37, 0xd6, 0x4e, 0xdc, 0x98, 0xcc, 0x80, 0x2d, 0xc8, 0x01, 0xca, + 0xec, 0xa3, 0xb6, 0x08, 0x1c, 0x9f, 0x5b, 0x19, 0xc4, 0xf1, 0xc5, 0xa7, 0x0a, 0xb1, 0x9d, 0x88, + 0x7f, 0xa5, 0xf1, 0xd0, 0x86, 0x2e, 0xcb, 0x9a, 0xe9, 0x7d, 0xb2, 0xbd, 0x24, 0x33, 0x90, 0xde, + 0x01, 0x5f, 0x29, 0x0a, 0xa7, 0x77, 0x11, 0xf0, 0x1d, 0x6d, 0xa4, 0x46, 0xd3, 0xa7, 0x41, 0x10, + 0x6f, 0x07, 0xbd, 0x4b, 0x83, 0xf7, 0xc0, 0x59, 0x8a, 0x37, 0xf7, 0x30, 0x12, 0xff, 0x29, 0xc0, + 0x69, 0xb8, 0x75, 0xea, 0x97, 0x4f, 0x82, 0xb8, 0x13, 0xe1, 0xa4, 0x80, 0x09, 0xcf, 0x27, 0x5a, + 0xc0, 0x99, 0x21, 0xdc, 0x3e, 0xe0, 0xf1, 0xcf, 0xc2, 0x0c, 0x30, 0x19, 0xac, 0x55, 0xb5, 0x1b, + 0xf7, 0xe7, 0xcb, 0xc2, 0xbd, 0x96, 0xa0, 0x9d, 0x48, 0xd3, 0x66, 0xa8, 0x13, 0xd0, 0x2a, 0x44, + 0x5c, 0xef, 0x8c, 0x15, 0x08, 0x18, 0x45, 0x5b, 0x63, 0x2a, 0xf4, 0xc3, 0x36, 0x36, 0x88, 0xe3, + 0x8d, 0x25, 0xed, 0x2e, 0xb1, 0x7b, 0x9c, 0xa1, 0x0b, 0xfa, 0x42, 0x8b, 0xec, 0x33, 0xe4, 0x10, + 0x2f, 0x48, 0x9d, 0x09, 0xcb, 0x87, 0x79, 0x56, 0xd2, 0x66, 0x9e, 0x99, 0x0c, 0xc6, 0xbe, 0x21, + 0x90, 0x56, 0x5c, 0xcc, 0xad, 0x4a, 0xb2, 0x71, 0x7f, 0x21, 0x8c, 0xe7, 0x12, 0xd1, 0x22, 0xe3, + 0x89, 0x98, 0x3e, 0x26, 0x12, 0x44, 0x2d, 0x05, 0x9e, 0x84, 0x1c, 0x73, 0xa1, 0xc4, 0x12, 0x13, + 0xe4, 0x0a, 0xa0, 0x55, 0x92, 0xb4, 0x69, 0x93, 0x1f, 0x6c, 0x9b, 0x96, 0x15, 0xa8, 0x34, 0x32, + 0x83, 0x61, 0xdd, 0xdc, 0xc7, 0x4a, 0x53, 0xe1, 0x3d, 0x93, 0x62, 0xad, 0xb2, 0xdd, 0xc1, 0x5d, + 0x2c, 0x55, 0xac, 0x52, 0x0b, 0xd8, 0xda, 0xcc, 0x84, 0x02, 0x26, 0x80, 0x55, 0x3a, 0xad, 0x12, + 0xc2, 0x57, 0x66, 0x11, 0x31, 0xa3, 0x17, 0xc1, 0xf8, 0x95, 0xc3, 0xf8, 0x5d, 0xc5, 0xcb, 0xd6, + 0x8a, 0x7d, 0xad, 0x15, 0x76, 0x2f, 0xa2, 0x23, 0x22, 0xa2, 0x83, 0x27, 0x2f, 0xb1, 0x8e, 0x6b, + 0xa6, 0x77, 0x04, 0x4a, 0xdc, 0xa5, 0x8f, 0x91, 0x74, 0xa9, 0xb1, 0x42, 0xbb, 0x5e, 0x55, 0xc6, + 0xe2, 0x89, 0x24, 0xee, 0x81, 0xe8, 0xcc, 0xfa, 0x50, 0x2a, 0x71, 0x1a, 0xa9, 0x25, 0x29, 0x0b, + 0xe0, 0x9b, 0x21, 0x02, 0xca, 0x65, 0xf0, 0xae, 0xb1, 0x16, 0x02, 0x6f, 0x6e, 0xb0, 0xa2, 0xd6, + 0xaf, 0x61, 0x80, 0x0e, 0xea, 0x8d, 0x67, 0xba, 0xb8, 0x6b, 0x61, 0xd9, 0x05, 0xad, 0xa4, 0xb4, + 0xd4, 0xea, 0x62, 0x2c, 0x13, 0x64, 0xc4, 0x92, 0xc3, 0x35, 0x41, 0x98, 0x3a, 0x47, 0x0b, 0x30, + 0x05, 0x5c, 0x5d, 0xcc, 0x0d, 0x42, 0x36, 0x02, 0x6f, 0x51, 0x64, 0x5c, 0x72, 0xb0, 0x8f, 0x95, + 0xa8, 0xfa, 0xa0, 0x1c, 0xa5, 0x9a, 0xb7, 0x9a, 0xc9, 0x98, 0x29, 0x2d, 0x76, 0x31, 0x38, 0x8e, + 0xab, 0x17, 0x74, 0xf1, 0x1a, 0xb0, 0x55, 0x99, 0x1c, 0xe1, 0x74, 0x2e, 0x11, 0xd6, 0xf8, 0x73, + 0x8e, 0xf5, 0x07, 0xca, 0xd2, 0x25, 0x1c, 0xcb, 0xe3, 0x55, 0x33, 0x80, 0x96, 0x67, 0x00, 0x2d, + 0x8f, 0xf5, 0xbf, 0x2d, 0xcf, 0xb2, 0x03, 0x7d, 0x06, 0xfc, 0x5f, 0xca, 0xa3, 0x8a, 0x85, 0x59, + 0xe5, 0xd8, 0x3b, 0xdb, 0x76, 0x2f, 0x20, 0x65, 0x81, 0x2e, 0x56, 0x19, 0x8a, 0x94, 0x18, 0x86, + 0x75, 0xed, 0x1b, 0x52, 0xe9, 0xe8, 0x9b, 0xfb, 0x94, 0xaa, 0x66, 0x27, 0x40, 0xeb, 0x33, 0xf4, + 0x57, 0xc9, 0x16, 0x6b, 0x2a, 0xd8, 0xfc, 0xc7, 0x8d, 0x24, 0x84, 0xb5, 0x39, 0x31, 0xc1, 0x39, + 0x01, 0x13, 0x58, 0x81, 0x76, 0x45, 0x5b, 0x7a, 0x17, 0x21, 0x35, 0x7f, 0xe7, 0xfe, 0x43, 0x14, + 0xbf, 0x8f, 0xa0, 0x8a, 0x05, 0xac, 0xc3, 0xef, 0x24, 0xf8, 0xf3, 0x3b, 0x09, 0x30, 0xbf, 0xcf, + 0x39, 0xf7, 0x12, 0xe4, 0xb1, 0x2d, 0x4f, 0x65, 0xac, 0xac, 0x5c, 0x34, 0x45, 0x34, 0x19, 0x28, + 0xe5, 0x72, 0x11, 0x94, 0x12, 0xe5, 0x0d, 0x60, 0x3e, 0x3b, 0xa8, 0x65, 0xde, 0x43, 0xf7, 0x7d, + 0x53, 0x30, 0xd4, 0x95, 0xc8, 0xad, 0x09, 0x28, 0x65, 0x25, 0xc8, 0x40, 0xa1, 0xbe, 0xd9, 0x72, + 0x65, 0xac, 0x1a, 0x46, 0x08, 0x70, 0x61, 0x32, 0xe7, 0x1e, 0xd7, 0x39, 0x97, 0x3d, 0x2e, 0x4f, + 0x7e, 0xf7, 0x56, 0xe1, 0xe1, 0xc2, 0x05, 0xe3, 0x9e, 0x12, 0xe5, 0x82, 0x5b, 0x95, 0x3c, 0x05, + 0xe7, 0x54, 0x91, 0x06, 0x66, 0x4b, 0x50, 0x70, 0x22, 0x77, 0x31, 0xca, 0x18, 0x9c, 0xcc, 0x35, + 0xe0, 0xcc, 0x24, 0x72, 0xda, 0x4f, 0xdb, 0xee, 0x45, 0xc1, 0xbc, 0x31, 0xc2, 0xb7, 0x1b, 0xd8, + 0x57, 0x28, 0xeb, 0xcf, 0xdb, 0xc3, 0x45, 0x8b, 0xe4, 0x7c, 0xfd, 0x68, 0xdd, 0x90, 0xf6, 0xc3, + 0xbb, 0x32, 0x2b, 0xe0, 0x20, 0x28, 0xe1, 0x5b, 0xd6, 0x78, 0x58, 0x51, 0x56, 0xf1, 0x2d, 0xc2, + 0x98, 0xd1, 0x86, 0x2b, 0xbc, 0x6d, 0x5c, 0x02, 0xf3, 0x14, 0xe6, 0x9a, 0xc6, 0xb2, 0x3b, 0x5f, + 0x6c, 0x9e, 0xce, 0xd3, 0x96, 0xb0, 0x82, 0xca, 0xff, 0x6a, 0xd6, 0x5e, 0x32, 0x1a, 0x8c, 0x1b, + 0x77, 0x17, 0xca, 0x60, 0x36, 0x6a, 0xca, 0xa0, 0xbd, 0xca, 0xc4, 0x30, 0x27, 0xaa, 0xf5, 0x6e, + 0xc9, 0xdb, 0x7e, 0x57, 0xaa, 0xe8, 0xac, 0x20, 0xcb, 0x05, 0x9b, 0xaf, 0xb1, 0x30, 0x52, 0x4c, + 0x40, 0x45, 0x9b, 0x71, 0x94, 0x00, 0x95, 0xfb, 0xc8, 0x51, 0x82, 0xb1, 0x59, 0xd6, 0x1a, 0x6f, + 0x1f, 0xab, 0x32, 0xc3, 0x7a, 0x28, 0xb3, 0x8f, 0xd0, 0xc5, 0xe2, 0x79, 0xbe, 0x63, 0xcf, 0xf1, + 0xce, 0x21, 0x9a, 0x6a, 0xbc, 0x90, 0x66, 0x2e, 0x1d, 0x7f, 0x26, 0xaa, 0x1f, 0xde, 0x60, 0xfd, + 0x00, 0x68, 0x90, 0x4e, 0x7f, 0x9e, 0xb6, 0xcb, 0x08, 0x14, 0x43, 0x4a, 0x68, 0x93, 0x9e, 0xdf, + 0xeb, 0x59, 0x25, 0xec, 0xf5, 0xe0, 0xae, 0x06, 0x52, 0x5a, 0xe9, 0x40, 0x17, 0x64, 0x00, 0xfd, + 0x30, 0xc2, 0x29, 0xad, 0x89, 0xbb, 0x0b, 0x2d, 0xf2, 0x9a, 0xe7, 0xd4, 0x78, 0x3a, 0x69, 0xe4, + 0x2d, 0x39, 0x8b, 0x22, 0x9d, 0xfb, 0x25, 0x03, 0x5b, 0x9d, 0x5e, 0x2a, 0x5b, 0xa4, 0xb2, 0x04, + 0xe9, 0x7c, 0xc3, 0x43, 0xd4, 0xb0, 0xc3, 0x57, 0x00, 0x4f, 0x15, 0xb7, 0x73, 0xfa, 0x03, 0x30, + 0x52, 0x1e, 0xd6, 0x2c, 0x78, 0xd6, 0xb1, 0xa0, 0x35, 0xb7, 0x16, 0xae, 0xe7, 0x48, 0xb0, 0x8b, + 0x44, 0xbe, 0x82, 0xe7, 0x7a, 0x80, 0x1e, 0x4a, 0x11, 0x76, 0x14, 0x04, 0xbe, 0xc7, 0x49, 0x87, + 0x12, 0xb2, 0xac, 0x7b, 0x2c, 0x94, 0xce, 0x51, 0x17, 0x4d, 0xeb, 0xba, 0xa0, 0xfd, 0xdb, 0x87, + 0x64, 0xab, 0xe4, 0x76, 0x29, 0x95, 0xd2, 0xd3, 0x59, 0xdf, 0xa7, 0x92, 0xf8, 0xb1, 0xdd, 0x91, + 0x12, 0x44, 0xca, 0x57, 0x4e, 0x6d, 0xd5, 0x2a, 0x3b, 0x96, 0x43, 0xa9, 0x43, 0x4c, 0x40, 0x49, + 0x42, 0x7e, 0x2a, 0x29, 0x5a, 0x87, 0xad, 0x50, 0x57, 0x08, 0x79, 0xc8, 0x48, 0xaf, 0x12, 0xce, + 0x35, 0x0f, 0x94, 0xd6, 0xd2, 0xfb, 0xf0, 0x72, 0x50, 0x77, 0x6b, 0xe9, 0x9c, 0x76, 0x78, 0x5b, + 0xc0, 0x73, 0xab, 0xf0, 0x7f, 0x74, 0x6a, 0x28, 0xa5, 0x9a, 0xc5, 0x41, 0x3c, 0xef, 0x0c, 0x58, + 0x62, 0x3e, 0xbf, 0xa3, 0x36, 0x46, 0xc5, 0x6b, 0x77, 0xda, 0xca, 0x59, 0x5e, 0x57, 0x78, 0x99, + 0xb0, 0xaf, 0xf6, 0x8a, 0x5d, 0xe9, 0xd4, 0xda, 0xb4, 0xd2, 0xdd, 0x72, 0x89, 0xb0, 0x8f, 0x96, + 0x2f, 0xec, 0x96, 0x07, 0xb1, 0xa1, 0x78, 0xae, 0x08, 0x54, 0x9f, 0x57, 0x78, 0x36, 0xd0, 0xc4, + 0xd9, 0x38, 0xbe, 0x2b, 0x29, 0x1e, 0x74, 0x8c, 0x6f, 0x83, 0x51, 0x5d, 0xc9, 0x76, 0x11, 0xc2, + 0x6b, 0x95, 0x95, 0xac, 0x9f, 0x70, 0xdf, 0x85, 0xbd, 0x25, 0xec, 0xb3, 0x4b, 0xfe, 0xe1, 0x3e, + 0xfb, 0xa3, 0x65, 0x48, 0x60, 0xb5, 0xe1, 0x77, 0xd5, 0xf1, 0xb4, 0xd5, 0x45, 0x5e, 0x44, 0xf1, + 0x5f, 0xcb, 0x8b, 0x5c, 0x44, 0x2e, 0x4e, 0xe7, 0xa2, 0x1d, 0x03, 0xf9, 0x85, 0xf2, 0x7c, 0x42, + 0xb1, 0xb8, 0x66, 0xa9, 0x4d, 0x09, 0xf3, 0x04, 0xe6, 0xbb, 0x78, 0x85, 0x40, 0xc3, 0x13, 0xf1, + 0x12, 0xa4, 0x44, 0xe0, 0xcd, 0x5c, 0xaa, 0x53, 0x42, 0xc4, 0x33, 0xa1, 0x37, 0xa0, 0xa7, 0x1a, + 0xcf, 0xa3, 0xe4, 0x3a, 0xca, 0xcd, 0x00, 0x37, 0x25, 0xa1, 0x7e, 0x52, 0xbc, 0xe4, 0x74, 0xa7, + 0x5a, 0x6c, 0x63, 0xfd, 0xd0, 0x52, 0xa8, 0xdc, 0x48, 0xb2, 0xed, 0x32, 0xf8, 0xe5, 0xe0, 0x5d, + 0xdf, 0x30, 0xe4, 0x2b, 0xf2, 0x88, 0x52, 0xed, 0x79, 0xb2, 0xd2, 0x50, 0x40, 0xfc, 0xe2, 0xee, + 0x61, 0x1b, 0xea, 0xdd, 0x00, 0x5f, 0x3c, 0xc0, 0xd3, 0x92, 0xbe, 0x24, 0x3f, 0x33, 0x22, 0x98, + 0x04, 0x15, 0x01, 0x93, 0x20, 0xf0, 0x87, 0x8a, 0x56, 0x33, 0x02, 0xbd, 0xb2, 0x1b, 0x2c, 0x5f, + 0xa4, 0xcd, 0xd0, 0xc7, 0xa2, 0x8e, 0x0a, 0x95, 0x7c, 0x36, 0xea, 0xad, 0x30, 0x0f, 0x60, 0x2c, + 0x11, 0x0b, 0x8e, 0x1b, 0x5e, 0x22, 0x52, 0x74, 0xab, 0x95, 0x44, 0x4a, 0x78, 0xcb, 0x58, 0x17, + 0x9d, 0xde, 0x6c, 0x2c, 0x9c, 0x62, 0xc8, 0x07, 0xaa, 0xd6, 0x8d, 0xe2, 0x29, 0xc8, 0x17, 0x38, + 0x52, 0x6d, 0xb5, 0xd1, 0x20, 0xc1, 0xbc, 0xc3, 0x24, 0xf1, 0x31, 0x65, 0xed, 0x1a, 0x46, 0xef, + 0x36, 0x6e, 0x8a, 0x2d, 0x4a, 0xfe, 0xab, 0x52, 0xa4, 0xfe, 0x49, 0x29, 0x5a, 0xe5, 0x6c, 0x74, + 0xe4, 0x8c, 0x65, 0xeb, 0x2b, 0x4e, 0x8b, 0xcb, 0x23, 0x22, 0xeb, 0xe6, 0xb8, 0x22, 0x22, 0x32, + 0x43, 0x1f, 0x07, 0x01, 0x87, 0xdf, 0x25, 0x52, 0x6c, 0xd9, 0x63, 0x30, 0xc6, 0xdc, 0x48, 0x21, + 0x5b, 0x2b, 0x6d, 0x7e, 0xd0, 0xc2, 0xc8, 0xf3, 0x10, 0x91, 0xaa, 0x44, 0xbc, 0x69, 0x29, 0x5c, + 0x83, 0xea, 0xe2, 0x7a, 0x03, 0x6d, 0xe1, 0xc4, 0x71, 0x21, 0x04, 0x68, 0xea, 0x9b, 0x57, 0xd4, + 0x3c, 0xee, 0xdc, 0xdd, 0x3b, 0x8e, 0xa8, 0xa8, 0x2e, 0x85, 0x9a, 0x4a, 0x20, 0xea, 0x04, 0x6b, + 0x8d, 0x58, 0x92, 0x48, 0x28, 0x5f, 0x54, 0x09, 0xea, 0xeb, 0x18, 0xb7, 0x0a, 0xbb, 0x10, 0x8f, + 0x6a, 0x93, 0xbe, 0x50, 0x8e, 0x6d, 0xa6, 0x42, 0x5b, 0x78, 0x1c, 0xb6, 0x0a, 0x8e, 0x3c, 0xaa, + 0x4d, 0xaa, 0xb4, 0x8c, 0x93, 0xb5, 0xc2, 0xe4, 0x31, 0xb7, 0x60, 0xa5, 0xdf, 0x53, 0x14, 0xbd, + 0x19, 0xb8, 0x33, 0x7b, 0xe4, 0x92, 0xb8, 0xde, 0x26, 0x47, 0xce, 0xa5, 0x22, 0xbd, 0xc9, 0x35, + 0x4f, 0xc0, 0xf1, 0x66, 0x62, 0x7c, 0x74, 0x6e, 0xce, 0x7a, 0xc0, 0x0a, 0x70, 0x33, 0x2c, 0x65, + 0x01, 0x5d, 0xe1, 0xf1, 0x6c, 0x3b, 0x0f, 0xd7, 0xf7, 0xd2, 0x07, 0x9b, 0x2b, 0xb3, 0x34, 0x74, + 0x75, 0xf7, 0x86, 0xf1, 0xa5, 0xa6, 0x98, 0x20, 0x10, 0xc6, 0x4f, 0x83, 0xcd, 0x0f, 0xc6, 0x99, + 0x3c, 0x02, 0xf2, 0x66, 0x5e, 0x2e, 0xf6, 0x62, 0xa5, 0xc5, 0x62, 0x61, 0x9f, 0x31, 0x8a, 0x97, + 0xdd, 0x31, 0xc5, 0xb1, 0xa4, 0x79, 0x8d, 0xb0, 0x1f, 0x8f, 0x7b, 0x14, 0x3a, 0xb4, 0xec, 0x09, + 0xa3, 0x3b, 0xbc, 0x65, 0x36, 0x01, 0x3f, 0xb9, 0x1e, 0xdb, 0x96, 0xbc, 0x15, 0x85, 0xb4, 0x8f, + 0x8e, 0x04, 0x6d, 0x4e, 0x06, 0xca, 0x67, 0x49, 0x54, 0xb2, 0x65, 0x37, 0x6a, 0xa2, 0x20, 0x36, + 0x86, 0xba, 0xe7, 0x3f, 0x5c, 0x77, 0xb4, 0x24, 0xab, 0x34, 0xc5, 0xdc, 0x0c, 0x24, 0x1b, 0x0f, + 0x17, 0x65, 0x3a, 0xcf, 0xb8, 0x68, 0x5f, 0xdc, 0x18, 0x4e, 0x57, 0x9c, 0x24, 0x88, 0xd7, 0x65, + 0xd1, 0x55, 0x12, 0xd4, 0x27, 0xb1, 0x85, 0x0a, 0xd2, 0x23, 0x5e, 0xc3, 0x76, 0x09, 0x82, 0x16, + 0x62, 0x68, 0x5f, 0xa8, 0x5c, 0x76, 0x19, 0x9d, 0xfb, 0x9c, 0xce, 0x14, 0x61, 0xdd, 0xb9, 0x11, + 0x84, 0x5e, 0xdc, 0x04, 0x59, 0x7a, 0x85, 0x43, 0x2a, 0x89, 0xb7, 0x68, 0xa7, 0x03, 0x7e, 0x62, + 0x0a, 0x01, 0x1e, 0x9d, 0x39, 0x0f, 0x6b, 0x19, 0x13, 0x0f, 0xe9, 0xc8, 0x29, 0x47, 0xe8, 0x2b, + 0x58, 0xa9, 0x24, 0xe2, 0x03, 0x30, 0xc6, 0x23, 0x9d, 0x67, 0xc2, 0x0d, 0xad, 0x76, 0xdb, 0x1b, + 0x84, 0xdd, 0xf6, 0x1b, 0x42, 0x7e, 0xab, 0xf8, 0xd3, 0x14, 0xd4, 0x4a, 0xe2, 0x77, 0xd6, 0xf4, + 0x44, 0x15, 0xaf, 0xd7, 0x22, 0xcd, 0x7a, 0xbd, 0x10, 0xf9, 0x15, 0x7e, 0xbf, 0x98, 0xdf, 0x3b, + 0x0e, 0xc7, 0xfd, 0x98, 0xdd, 0xb0, 0xce, 0x7b, 0xd1, 0xfd, 0x8d, 0x78, 0xa0, 0x7a, 0x64, 0x1a, + 0x63, 0x62, 0xa3, 0x86, 0x53, 0xc9, 0xe3, 0x6e, 0x05, 0x72, 0x6a, 0x2f, 0x07, 0xf7, 0xa8, 0xf7, + 0x40, 0x0a, 0x04, 0x6a, 0xb2, 0x33, 0x63, 0x41, 0xe8, 0xfb, 0x44, 0xd5, 0x9f, 0x98, 0xec, 0x30, + 0x83, 0xa4, 0xf8, 0x96, 0xda, 0x66, 0x49, 0xc2, 0xb4, 0x23, 0xf3, 0x89, 0x2c, 0x38, 0x89, 0xbb, + 0x2a, 0xdc, 0x7b, 0xc1, 0x7d, 0xa3, 0x0a, 0x53, 0x4e, 0x80, 0x31, 0xa2, 0x80, 0x75, 0xb9, 0x41, + 0xf0, 0x19, 0x50, 0xc6, 0x24, 0x94, 0x12, 0x7f, 0x0d, 0x8e, 0xed, 0x3d, 0x15, 0x4c, 0x3c, 0xee, + 0x5e, 0xab, 0x83, 0xf9, 0xbd, 0x6b, 0x4d, 0x02, 0x4a, 0xd7, 0x61, 0x0a, 0xad, 0xf6, 0xb7, 0x73, + 0x49, 0x17, 0x4d, 0xac, 0x43, 0xea, 0x13, 0x2d, 0x92, 0xea, 0x12, 0xa8, 0xfc, 0x60, 0x88, 0x9e, + 0x30, 0xf1, 0x74, 0x47, 0x1b, 0x4b, 0xe2, 0xba, 0xe7, 0x83, 0xfe, 0x27, 0xaa, 0x94, 0x09, 0xc0, + 0x79, 0xa3, 0xed, 0xba, 0x3a, 0xcb, 0x6e, 0x46, 0x0c, 0x34, 0x4e, 0x45, 0xa4, 0x51, 0x95, 0x00, + 0xd8, 0x9f, 0x81, 0xd1, 0xa1, 0xd4, 0x7a, 0x9e, 0xad, 0xd4, 0x61, 0x4e, 0x40, 0x1b, 0xeb, 0xdd, + 0x5d, 0x47, 0x47, 0xb8, 0x11, 0xde, 0x49, 0xd5, 0xb2, 0xa1, 0x33, 0x22, 0x43, 0xa1, 0x14, 0x7b, + 0x98, 0x78, 0x4a, 0xf7, 0x9e, 0x8d, 0x41, 0xfc, 0x36, 0x56, 0xef, 0xae, 0x47, 0x6b, 0x38, 0xf5, + 0xa8, 0x9f, 0xa9, 0x33, 0xaa, 0x24, 0x19, 0xd3, 0x29, 0xcd, 0xd4, 0x03, 0x77, 0xb7, 0x94, 0xe6, + 0xd8, 0x9b, 0xb2, 0x3f, 0x34, 0x9e, 0x7a, 0xf7, 0x30, 0xab, 0xde, 0x93, 0x0f, 0x8f, 0xe1, 0x50, + 0xe7, 0x29, 0x92, 0xd3, 0xca, 0x28, 0xde, 0x2f, 0xe0, 0xce, 0x16, 0x13, 0xa5, 0xaf, 0xd0, 0xba, + 0xa5, 0x3c, 0x87, 0x8d, 0x7b, 0x03, 0x56, 0x0d, 0x79, 0x72, 0xe4, 0x6e, 0xcb, 0x74, 0xb3, 0x49, + 0x97, 0x00, 0x2c, 0x85, 0xa6, 0x48, 0xb2, 0xe4, 0x10, 0x95, 0xba, 0x48, 0xe8, 0x09, 0x9c, 0x41, + 0xcf, 0x24, 0xa2, 0x36, 0x65, 0x13, 0x0d, 0x72, 0x58, 0xca, 0x04, 0xc8, 0x4f, 0x25, 0x37, 0x72, + 0x9c, 0x5d, 0x83, 0xf5, 0x2e, 0x21, 0x61, 0x3d, 0x88, 0x5a, 0x2f, 0x0a, 0x37, 0xea, 0xbd, 0x5a, + 0xfa, 0xe5, 0xda, 0x66, 0x4d, 0x42, 0x9f, 0x72, 0x8e, 0xa3, 0x32, 0xdc, 0x81, 0x56, 0x93, 0xbd, + 0x5c, 0x17, 0x2f, 0xe8, 0xf4, 0x2b, 0x64, 0x80, 0xe1, 0xc9, 0x93, 0xb6, 0x5c, 0x61, 0xbd, 0x59, + 0x8d, 0xab, 0x50, 0x38, 0x6a, 0x91, 0xd1, 0xd2, 0xd0, 0x5d, 0x72, 0x08, 0x55, 0x4c, 0x84, 0x6f, + 0xeb, 0x1d, 0x63, 0xe0, 0xd7, 0x6d, 0x8f, 0x1e, 0x03, 0xd7, 0x2c, 0x42, 0x1e, 0x81, 0xaa, 0x78, + 0xe4, 0xc0, 0x9d, 0x29, 0x88, 0x1c, 0x29, 0x60, 0xaf, 0x0a, 0xfb, 0x46, 0xc9, 0xe8, 0xc9, 0x0e, + 0xfa, 0x16, 0x2d, 0xde, 0xf1, 0x23, 0x4f, 0x02, 0x6b, 0x2b, 0xae, 0xba, 0x92, 0x30, 0x18, 0xbf, + 0x7a, 0x4f, 0x83, 0xac, 0x0e, 0x46, 0x50, 0x9a, 0x31, 0xcc, 0x08, 0xf7, 0x22, 0xb8, 0x97, 0xa5, + 0x19, 0xb1, 0x6e, 0x06, 0x8b, 0x5e, 0x16, 0x19, 0x03, 0x14, 0x31, 0xf2, 0x61, 0xd0, 0xd7, 0xbf, + 0x47, 0xe3, 0xde, 0x8e, 0x2e, 0x41, 0x1c, 0xca, 0xfd, 0x81, 0xe3, 0x89, 0x52, 0x77, 0x35, 0xc2, + 0x49, 0x0a, 0xda, 0x01, 0x0e, 0x54, 0xe9, 0x49, 0x90, 0x1a, 0x86, 0x09, 0xe5, 0xf7, 0x83, 0xda, + 0xc8, 0xf5, 0xc4, 0xb6, 0xd6, 0x23, 0x41, 0x3f, 0x09, 0x58, 0x97, 0x1b, 0xf4, 0xcc, 0xa6, 0x6e, + 0x66, 0xd2, 0x05, 0x79, 0xd0, 0x3f, 0xdb, 0xb5, 0xa3, 0x7e, 0xa3, 0x84, 0xf3, 0x42, 0xad, 0x9e, + 0x18, 0x22, 0xf5, 0xa4, 0xef, 0x04, 0x12, 0x01, 0xf8, 0xe7, 0xe4, 0xcb, 0xd6, 0x22, 0x12, 0x61, + 0xf7, 0x83, 0xf6, 0x08, 0xa0, 0x3b, 0x0f, 0xb8, 0xc2, 0xfb, 0x95, 0x8a, 0x58, 0x29, 0xbd, 0x12, + 0xab, 0xd9, 0xee, 0x07, 0xeb, 0xb2, 0x1b, 0xb4, 0x8a, 0x17, 0x94, 0x4e, 0x52, 0x8a, 0x7a, 0xac, + 0x62, 0x2a, 0xa3, 0x13, 0x27, 0x58, 0x02, 0x40, 0xab, 0x4b, 0xbb, 0x74, 0xb1, 0xaa, 0xa1, 0x4e, + 0x19, 0x1d, 0xb3, 0x3d, 0x99, 0x8f, 0x63, 0x8b, 0x87, 0xf5, 0x57, 0x8a, 0x5a, 0x79, 0x28, 0x89, + 0x03, 0xbc, 0x6f, 0x6a, 0xab, 0x36, 0xcc, 0xc3, 0x36, 0x8c, 0x32, 0xea, 0x7d, 0xa1, 0x0d, 0xf3, + 0xb0, 0x0d, 0x69, 0x7b, 0x42, 0x1b, 0x86, 0xc7, 0xc0, 0x38, 0x71, 0x6f, 0x69, 0x41, 0xc4, 0xbb, + 0x0e, 0xbd, 0x15, 0x4a, 0x11, 0x87, 0x43, 0x4d, 0x22, 0x01, 0xdb, 0x46, 0x21, 0x55, 0x87, 0x7a, + 0x48, 0xa5, 0x04, 0xcf, 0x41, 0x4f, 0xbc, 0xac, 0x34, 0xc9, 0x7a, 0x00, 0x2e, 0xf4, 0xb6, 0x87, + 0x39, 0xe9, 0x4b, 0x2f, 0x17, 0xad, 0xa6, 0x20, 0x25, 0x2f, 0x5d, 0xe4, 0xe7, 0xa0, 0x61, 0x4c, + 0xef, 0x13, 0xbf, 0xe2, 0x07, 0x8c, 0x69, 0xd7, 0x1a, 0x22, 0xa3, 0xf2, 0xa8, 0x22, 0x7b, 0x97, + 0x8f, 0xff, 0x54, 0x9f, 0x47, 0x4d, 0xd8, 0x92, 0x09, 0x84, 0x2d, 0xa4, 0x92, 0x96, 0x68, 0xb7, + 0x23, 0x33, 0xd3, 0x8f, 0xde, 0x79, 0xd9, 0x33, 0xe8, 0x55, 0x6e, 0x4b, 0x65, 0x93, 0xe9, 0xdd, + 0x58, 0x3b, 0x43, 0xa5, 0x2f, 0xd1, 0x57, 0x3a, 0x3e, 0x77, 0xb5, 0x45, 0xf2, 0xe9, 0xdb, 0x0c, + 0x4a, 0x13, 0x52, 0x69, 0x40, 0x1d, 0xf2, 0xcf, 0x8c, 0xd2, 0xd4, 0x2d, 0x9b, 0x9e, 0x66, 0x3b, + 0xfc, 0x70, 0xe4, 0x91, 0x0a, 0xea, 0x87, 0x23, 0x8f, 0x9b, 0x4a, 0xe4, 0xbc, 0xae, 0x49, 0xcc, + 0x75, 0xa2, 0x6b, 0x25, 0x71, 0x49, 0xb8, 0x72, 0x2b, 0xb4, 0x99, 0x4d, 0x0a, 0x6b, 0x62, 0x27, + 0x22, 0x83, 0x7b, 0x2f, 0x7a, 0xef, 0x4d, 0xbc, 0xac, 0x33, 0xec, 0x85, 0x4c, 0x07, 0xc1, 0x27, + 0xf5, 0x58, 0xc1, 0xff, 0xb4, 0xf4, 0xd3, 0x5f, 0xb8, 0xfb, 0xb6, 0xa1, 0x82, 0xd4, 0x3e, 0xae, + 0x25, 0x80, 0x75, 0x1f, 0xec, 0xa1, 0x6b, 0x89, 0x51, 0x38, 0xa1, 0x42, 0x4d, 0x2c, 0x06, 0x56, + 0x0e, 0x95, 0xa0, 0x97, 0xa2, 0x69, 0xa5, 0x89, 0xe5, 0xa4, 0xee, 0x9c, 0x69, 0xc0, 0xea, 0xf1, + 0x00, 0xb8, 0x16, 0x41, 0x37, 0x45, 0x2e, 0xe8, 0xa6, 0x3c, 0xa4, 0x7f, 0x25, 0x50, 0xc8, 0x11, + 0x02, 0x7d, 0xcc, 0x9f, 0x19, 0x48, 0x6c, 0x6a, 0x41, 0xa6, 0x4e, 0x2c, 0x50, 0xc1, 0x11, 0xf8, + 0x64, 0xd5, 0x12, 0x9f, 0x91, 0xb5, 0x96, 0x8a, 0x30, 0x23, 0xf3, 0x92, 0xb9, 0xea, 0x9f, 0xea, + 0x69, 0xf1, 0xd6, 0x06, 0x22, 0x9d, 0x67, 0x63, 0xea, 0x10, 0x17, 0x7d, 0xc1, 0x13, 0xad, 0xd6, + 0xa4, 0x13, 0xc2, 0x9a, 0x74, 0xce, 0xa1, 0x9f, 0x2e, 0x48, 0x46, 0x5d, 0x2d, 0xf6, 0x75, 0x9c, + 0xfa, 0x0a, 0xde, 0xe8, 0x36, 0x0b, 0x9e, 0x71, 0xd6, 0x3b, 0xf9, 0x29, 0xe7, 0x7c, 0x54, 0x1b, + 0xe9, 0xb9, 0xef, 0x22, 0xe8, 0x29, 0x11, 0xf1, 0xe5, 0xf9, 0x2a, 0x8d, 0xf7, 0xe9, 0x0a, 0xc6, + 0x4c, 0x4f, 0x85, 0xa8, 0xbc, 0x2c, 0xdd, 0xcb, 0x49, 0xa6, 0x72, 0x1f, 0x30, 0xc6, 0x6c, 0x7d, + 0x85, 0xd3, 0xa5, 0xd3, 0xc2, 0xe9, 0xd2, 0x45, 0xc6, 0x1c, 0x9c, 0x02, 0x6b, 0x4e, 0x0b, 0x17, + 0xd5, 0x3b, 0xee, 0x1a, 0x77, 0xc2, 0x85, 0x93, 0xf2, 0x83, 0x96, 0x31, 0x4f, 0x83, 0xd4, 0x18, + 0xb3, 0xb5, 0xca, 0x2e, 0xa5, 0xa9, 0xb4, 0x9c, 0xd3, 0xf2, 0x5c, 0xd5, 0x00, 0xd7, 0x73, 0x5a, + 0x41, 0x5a, 0x36, 0x88, 0x73, 0x48, 0x89, 0xb7, 0x39, 0x0d, 0x95, 0x85, 0xc1, 0x40, 0xf0, 0xb6, + 0xf3, 0xe7, 0xc1, 0xb9, 0x2e, 0x73, 0x60, 0x1d, 0xf1, 0xfb, 0x27, 0x67, 0xa2, 0x82, 0x8c, 0x34, + 0xe5, 0x19, 0x60, 0x0e, 0x22, 0x35, 0xc9, 0xa0, 0xd6, 0x32, 0xac, 0x2b, 0x44, 0x8c, 0x3e, 0xed, + 0x89, 0x5e, 0x54, 0x32, 0x35, 0x5e, 0xb4, 0xbb, 0x02, 0x28, 0x2a, 0x28, 0x1f, 0x7f, 0x5a, 0xfa, + 0x07, 0x4a, 0x2a, 0xfb, 0x17, 0x8b, 0x80, 0x16, 0x92, 0xdb, 0x18, 0x28, 0x89, 0x58, 0x1f, 0x26, + 0x93, 0x08, 0xdf, 0x9d, 0x6b, 0xa2, 0xa5, 0x96, 0xae, 0x8a, 0x74, 0xa7, 0x35, 0x88, 0x7a, 0xbb, + 0x66, 0xf0, 0xdc, 0x55, 0xa1, 0xe6, 0x4b, 0xaf, 0xc5, 0x53, 0xe6, 0x19, 0x1f, 0xc9, 0x64, 0x0e, + 0x8e, 0x19, 0xc6, 0x58, 0x10, 0xea, 0xa7, 0x40, 0xfa, 0x84, 0x8e, 0x61, 0xe0, 0x65, 0xad, 0xc1, + 0xc4, 0x67, 0x84, 0xe0, 0x93, 0x15, 0x3d, 0x83, 0x20, 0x0f, 0x07, 0xdf, 0x25, 0xae, 0x5c, 0x76, + 0x13, 0x9e, 0x68, 0x05, 0xd1, 0x3d, 0x5d, 0xe0, 0xf6, 0xe4, 0x92, 0xd6, 0xb5, 0xc2, 0x54, 0xb1, + 0xa5, 0x50, 0xbf, 0x43, 0xde, 0x03, 0xf8, 0x4d, 0x09, 0x50, 0xc4, 0xbe, 0xfc, 0x3e, 0x36, 0x52, + 0x74, 0xb0, 0xaa, 0x49, 0x29, 0x75, 0xa8, 0xa3, 0x2b, 0x05, 0xea, 0xc9, 0x37, 0x62, 0x0b, 0x78, + 0x19, 0x09, 0x5a, 0x0a, 0x90, 0xc3, 0xf8, 0x94, 0x5b, 0x89, 0xcb, 0xf8, 0xf5, 0x02, 0x6e, 0xf7, + 0x04, 0xcf, 0x8f, 0x90, 0xda, 0x70, 0x0d, 0xae, 0x37, 0xb5, 0xeb, 0x61, 0x94, 0x9b, 0x0a, 0xfc, + 0xc2, 0x34, 0xc4, 0xaf, 0x40, 0xbe, 0x39, 0x97, 0xc8, 0xf2, 0xa5, 0x9b, 0x80, 0x1a, 0x2c, 0x48, + 0xe1, 0xb5, 0x2e, 0xb1, 0x77, 0xd0, 0xb7, 0x12, 0x5f, 0xbb, 0x26, 0x7e, 0xd7, 0x42, 0x67, 0x7a, + 0x8f, 0x6f, 0x69, 0x67, 0xfb, 0x8a, 0xf9, 0xd6, 0x6d, 0x52, 0xbb, 0xd2, 0x72, 0x4d, 0x52, 0x5a, + 0xbb, 0xe6, 0x5d, 0x90, 0x07, 0x8b, 0x3e, 0x2a, 0x53, 0x5a, 0xa7, 0x76, 0xef, 0x84, 0x23, 0x35, + 0x9c, 0x67, 0xad, 0xda, 0x8a, 0x3f, 0xd9, 0x3e, 0xed, 0x9a, 0xda, 0x3d, 0xb4, 0x26, 0x1e, 0x04, + 0xed, 0x8e, 0xa9, 0x61, 0xbd, 0x73, 0xec, 0x12, 0x47, 0xcb, 0xfd, 0x49, 0x1f, 0x35, 0x7f, 0xf1, + 0xc8, 0x3e, 0xba, 0x37, 0xc2, 0x59, 0x8b, 0xe0, 0x36, 0xb5, 0xa0, 0x7d, 0x74, 0x8f, 0x75, 0xed, + 0xa3, 0x7b, 0x46, 0xbe, 0x8f, 0x1c, 0xfd, 0x63, 0x10, 0x53, 0x4c, 0xa2, 0x27, 0xfe, 0x4a, 0x7d, + 0xcb, 0x8a, 0x09, 0xeb, 0x9b, 0x0a, 0xa9, 0xbf, 0xa4, 0x0b, 0x46, 0xf9, 0x3f, 0x5d, 0x05, 0x23, + 0xd1, 0xd6, 0x09, 0xe5, 0xe7, 0x23, 0xf4, 0xa4, 0x53, 0xb8, 0x9e, 0x74, 0x81, 0x5e, 0xe0, 0x35, + 0x7f, 0xe4, 0x32, 0x09, 0x71, 0xb7, 0x4b, 0x8e, 0xe5, 0x90, 0x40, 0xa0, 0x4c, 0xbd, 0xe0, 0x49, + 0x6a, 0x97, 0xd4, 0xe5, 0x90, 0x4e, 0xd6, 0xd8, 0x02, 0x3f, 0xe8, 0x2f, 0x5f, 0xe0, 0xcf, 0xbc, + 0x6a, 0x4c, 0xa3, 0x5c, 0x7c, 0x13, 0xe1, 0xa9, 0x0d, 0x8f, 0x79, 0x5a, 0x59, 0x9e, 0x6f, 0x39, + 0x95, 0xaf, 0x72, 0x60, 0x1f, 0xfe, 0x1c, 0x55, 0x90, 0x32, 0xef, 0x22, 0xec, 0xd3, 0xb4, 0xcc, + 0xb6, 0x96, 0x75, 0x1e, 0xf0, 0x4a, 0x31, 0x11, 0xf0, 0xcf, 0x5d, 0x1c, 0x89, 0x71, 0xc0, 0x25, + 0x0b, 0xf2, 0x1b, 0x32, 0xd2, 0xae, 0x84, 0xd0, 0xdd, 0x27, 0xe7, 0x3e, 0x06, 0xca, 0xe8, 0x3b, + 0xbf, 0xfa, 0xb6, 0xfd, 0x8a, 0xfe, 0xfb, 0x5c, 0x65, 0x3f, 0x1e, 0x8a, 0x2b, 0x37, 0xc1, 0xb8, + 0x43, 0x6a, 0x88, 0x6a, 0x96, 0x4b, 0x59, 0x59, 0x2a, 0x3c, 0x5b, 0xab, 0x6d, 0x77, 0x9d, 0xb1, + 0x34, 0x6d, 0xd3, 0x84, 0x31, 0xca, 0xeb, 0x1d, 0x3b, 0x77, 0x67, 0x54, 0x15, 0x86, 0x7c, 0x1e, + 0xb3, 0x45, 0x21, 0x55, 0x9d, 0xec, 0x2a, 0x97, 0x72, 0x24, 0xc6, 0x15, 0xa7, 0xa1, 0x0f, 0x60, + 0x5b, 0x5b, 0x49, 0x93, 0xa4, 0x47, 0x60, 0x30, 0x39, 0xaf, 0x27, 0xfe, 0x27, 0x67, 0xa1, 0xb9, + 0x82, 0xcf, 0xa3, 0xd6, 0xa7, 0xa1, 0xe9, 0x8f, 0xd0, 0x72, 0x79, 0xc4, 0xce, 0x84, 0x73, 0x57, + 0x82, 0x6a, 0xc0, 0xa2, 0xf6, 0x0a, 0x6a, 0x43, 0xab, 0x78, 0x0d, 0xd8, 0x10, 0xe1, 0xf4, 0xd2, + 0x44, 0xf5, 0x9d, 0x0d, 0xc2, 0x39, 0x73, 0x81, 0xf3, 0x9c, 0xd9, 0xd4, 0x9a, 0x1e, 0x33, 0xc5, + 0xb2, 0xf1, 0x82, 0x3c, 0x85, 0xaf, 0x9d, 0x97, 0x18, 0x6f, 0x47, 0xed, 0xb7, 0xe3, 0xf9, 0x88, + 0x8e, 0xd5, 0x20, 0x9f, 0xd3, 0xdd, 0x42, 0x7d, 0x30, 0x79, 0x99, 0x1c, 0x76, 0x10, 0xa4, 0xac, + 0x22, 0x35, 0x8f, 0x6f, 0x65, 0x56, 0xda, 0x1b, 0x6d, 0xc6, 0xc8, 0x60, 0x85, 0x2f, 0xa0, 0x2b, + 0xbc, 0xa1, 0xd5, 0x0a, 0xbf, 0xda, 0x1a, 0x6b, 0x2f, 0x44, 0x1b, 0x96, 0x35, 0x10, 0x37, 0x13, + 0x53, 0x91, 0x41, 0x59, 0xf8, 0x99, 0x65, 0xe2, 0x6d, 0x4b, 0x3c, 0xf0, 0xa2, 0x7c, 0xb9, 0x85, + 0xd7, 0x2b, 0xa5, 0xe5, 0x46, 0xcd, 0xd2, 0xd8, 0x16, 0xcd, 0xd2, 0x47, 0x70, 0xe2, 0x4e, 0x4d, + 0x14, 0x47, 0x6a, 0xc8, 0x1b, 0xdf, 0x3f, 0x96, 0xb2, 0xa0, 0x8c, 0xa0, 0x26, 0x72, 0x8b, 0x8e, + 0x29, 0xef, 0x51, 0xc3, 0x65, 0x07, 0x4c, 0xc3, 0x6b, 0x08, 0x3b, 0x77, 0xc0, 0x7c, 0xed, 0x11, + 0xad, 0xe4, 0x01, 0xc2, 0x04, 0x79, 0x80, 0x76, 0x36, 0x8d, 0xb0, 0xb6, 0x7b, 0x38, 0xe4, 0x41, + 0xe9, 0x13, 0xf6, 0xa1, 0x8c, 0xa9, 0x60, 0x95, 0x94, 0x0b, 0x7c, 0x1f, 0x28, 0x9e, 0xbf, 0x5c, + 0xd7, 0x05, 0x59, 0xf8, 0x46, 0xe1, 0xbc, 0x99, 0xea, 0xac, 0xc3, 0xcc, 0x37, 0x03, 0x47, 0x0a, + 0xeb, 0xed, 0xf9, 0x97, 0x11, 0xdf, 0x23, 0x3f, 0x62, 0xd9, 0x6d, 0x9e, 0x4e, 0xbd, 0xd0, 0xf0, + 0xb2, 0xe3, 0xd9, 0x74, 0x4e, 0xf8, 0xb9, 0x52, 0xa7, 0xae, 0xa7, 0xf1, 0xaa, 0x04, 0x26, 0x55, + 0x1b, 0x4b, 0xb5, 0xac, 0x20, 0x34, 0xed, 0x13, 0x5f, 0x6d, 0x2c, 0xd2, 0x91, 0x10, 0xb3, 0x0b, + 0xc6, 0x76, 0x9c, 0xcd, 0xf2, 0x72, 0x83, 0x82, 0x1f, 0xbf, 0x63, 0xaa, 0x58, 0x6d, 0x2e, 0xad, + 0x03, 0x70, 0x52, 0x78, 0x22, 0x4c, 0xcf, 0x82, 0xc3, 0xe8, 0x69, 0x1e, 0xc4, 0xc3, 0xdc, 0xf5, + 0x7a, 0x12, 0xc6, 0x9f, 0x5c, 0x6a, 0x08, 0x95, 0xd3, 0xf2, 0xa5, 0x58, 0x91, 0x6a, 0xa0, 0x2a, + 0x07, 0x96, 0x12, 0xa7, 0xff, 0x97, 0x02, 0xea, 0x69, 0x47, 0x7a, 0x0e, 0xb0, 0x0b, 0x52, 0x03, + 0x34, 0x4d, 0xff, 0x16, 0xad, 0xb1, 0x73, 0xc6, 0xfe, 0x79, 0x30, 0xfe, 0x28, 0xc5, 0x50, 0x7a, + 0xed, 0x44, 0x25, 0xc6, 0xd7, 0x22, 0xf7, 0x3c, 0x10, 0xfa, 0x23, 0x82, 0x91, 0x50, 0x6f, 0x7a, + 0x07, 0x18, 0x53, 0x55, 0xad, 0x4a, 0xc6, 0xfb, 0xa6, 0xf9, 0xa6, 0x88, 0xf4, 0x55, 0x0e, 0x34, + 0x00, 0x55, 0x0f, 0x35, 0x46, 0x6a, 0x1c, 0x43, 0x28, 0x74, 0x34, 0x5f, 0x21, 0x4e, 0x21, 0x7f, + 0xc2, 0x89, 0xfe, 0x7c, 0x4e, 0xe4, 0x51, 0xfe, 0x5b, 0x4b, 0xa4, 0x7c, 0xc9, 0x1c, 0xba, 0x6c, + 0x68, 0xc7, 0x2b, 0x52, 0x2c, 0x35, 0x73, 0xd7, 0x80, 0xa7, 0x34, 0xa7, 0x56, 0x62, 0xfc, 0xd0, + 0x0d, 0x64, 0x55, 0x14, 0x94, 0xd1, 0x32, 0xae, 0xe1, 0x81, 0x5e, 0x66, 0xc9, 0x81, 0x51, 0x25, + 0xd3, 0xfb, 0xc0, 0x4a, 0x93, 0x4b, 0x53, 0x90, 0xb5, 0x4e, 0x01, 0xa9, 0x7d, 0xa4, 0x56, 0xd1, + 0x1b, 0x53, 0x18, 0xc6, 0x2a, 0xae, 0x7e, 0xa0, 0x97, 0x58, 0xb2, 0x21, 0x96, 0x44, 0xef, 0x33, + 0xb0, 0xa9, 0x29, 0x3c, 0x79, 0x19, 0xf4, 0x88, 0x97, 0x41, 0x54, 0xd6, 0xae, 0x21, 0xbb, 0x2e, + 0xe6, 0x92, 0x51, 0x6a, 0xe2, 0x6e, 0x23, 0xc7, 0xbc, 0xf4, 0x80, 0x65, 0xb7, 0x4e, 0x3c, 0x62, + 0x76, 0x24, 0x81, 0xbc, 0xdd, 0xd4, 0x62, 0x95, 0x74, 0xc9, 0x1c, 0x17, 0x3b, 0xb1, 0xdc, 0xc2, + 0x3d, 0x0b, 0x0f, 0xa4, 0x55, 0x6a, 0xbd, 0xce, 0xce, 0x70, 0xa4, 0x4f, 0x75, 0x0e, 0x64, 0xc0, + 0xed, 0xfa, 0xc0, 0x38, 0x8f, 0x4f, 0x5e, 0x86, 0x79, 0x1f, 0xdd, 0x13, 0x73, 0xab, 0x52, 0xf4, + 0x70, 0x88, 0xe4, 0x65, 0xa9, 0xe8, 0x93, 0xd3, 0x00, 0x6b, 0x48, 0x68, 0x89, 0x64, 0xd3, 0x1c, + 0xdb, 0x2a, 0x35, 0xa1, 0xbb, 0x8d, 0x72, 0x7b, 0x4a, 0x1b, 0x0e, 0x25, 0xf7, 0x11, 0xbc, 0x1e, + 0xe5, 0x53, 0xfa, 0x1a, 0xf5, 0x3e, 0x8f, 0xe2, 0x53, 0xb4, 0xb1, 0x94, 0x96, 0x76, 0xf2, 0x2a, + 0x4e, 0xe9, 0x93, 0x2e, 0xca, 0x04, 0xda, 0xb3, 0xa8, 0x8d, 0xa0, 0x79, 0x58, 0xeb, 0x9f, 0xee, + 0xb9, 0xe0, 0x99, 0xb2, 0x9c, 0x9e, 0xe1, 0xa3, 0xf6, 0x88, 0x97, 0xde, 0x13, 0x7e, 0x21, 0x4f, + 0x5c, 0x35, 0x61, 0x34, 0xf9, 0xc3, 0x5a, 0x98, 0x24, 0x78, 0xcc, 0x93, 0x14, 0x4b, 0x50, 0xa3, + 0xb5, 0x45, 0x06, 0x54, 0x2d, 0xc8, 0x80, 0xc2, 0xcc, 0xd0, 0x91, 0x5c, 0xe4, 0x18, 0x9c, 0x6b, + 0xb7, 0x0e, 0xd7, 0xdc, 0xbb, 0xbf, 0xba, 0xd0, 0xf6, 0x0a, 0x7d, 0x3e, 0x8c, 0x28, 0x7f, 0xa0, + 0xed, 0x03, 0x05, 0xcc, 0x10, 0xe4, 0xb2, 0x2f, 0xa4, 0x78, 0xd4, 0xbe, 0xd0, 0xdd, 0xda, 0x94, + 0x05, 0x2d, 0xab, 0xbd, 0xd3, 0x07, 0x71, 0x3d, 0x7a, 0xb1, 0xd1, 0x0a, 0x1c, 0x18, 0xce, 0xca, + 0xb0, 0x10, 0xaa, 0x25, 0x2d, 0x93, 0x6b, 0x04, 0x7a, 0xc9, 0x22, 0xec, 0xc4, 0x36, 0xd8, 0xc2, + 0x71, 0x86, 0xe6, 0x13, 0x51, 0x18, 0xb4, 0x83, 0xe8, 0x54, 0x2d, 0xce, 0xfe, 0x54, 0x63, 0x6f, + 0x58, 0xb3, 0x6a, 0x90, 0x5b, 0xe1, 0x31, 0x5a, 0x3e, 0x91, 0x3b, 0xf0, 0x02, 0x52, 0x4b, 0x22, + 0x85, 0x40, 0x2d, 0xdd, 0x31, 0x7d, 0x08, 0x65, 0xc1, 0x52, 0x6b, 0xfa, 0xe7, 0x13, 0x05, 0xd1, + 0xc1, 0xaf, 0x1f, 0x09, 0xe5, 0xf9, 0xe4, 0x56, 0x7c, 0x89, 0xca, 0x51, 0x7a, 0xea, 0xdb, 0x24, + 0x03, 0x29, 0x0c, 0x2b, 0xc9, 0x07, 0x7a, 0x4b, 0x6c, 0xe4, 0xa6, 0xa2, 0x8d, 0x06, 0x27, 0x9e, + 0xa3, 0xed, 0xf2, 0xfb, 0x49, 0xe1, 0x1c, 0x68, 0x15, 0x6d, 0x19, 0x7f, 0x9a, 0x47, 0x20, 0xb4, + 0x4c, 0x10, 0xdd, 0x2f, 0x63, 0x5a, 0xa5, 0xed, 0xef, 0xc4, 0x48, 0xa9, 0x7c, 0xba, 0x05, 0xd9, + 0x04, 0x68, 0xbd, 0x47, 0xa4, 0x5a, 0x41, 0x53, 0xb5, 0xfe, 0x27, 0x69, 0x3a, 0x53, 0x80, 0xd6, + 0xfe, 0x3d, 0x35, 0x65, 0x01, 0x2b, 0x47, 0x1a, 0x0b, 0xd7, 0x61, 0xf4, 0xca, 0x42, 0xdb, 0x5e, + 0x22, 0xf8, 0xe4, 0x09, 0x7a, 0x74, 0xbf, 0x8b, 0x73, 0x91, 0x43, 0x6c, 0xdd, 0xef, 0x77, 0xee, + 0xd0, 0x92, 0x44, 0xfd, 0xb7, 0xfd, 0x7e, 0x67, 0x1f, 0xbf, 0x1f, 0xe8, 0x22, 0x5d, 0x5b, 0x87, + 0x3a, 0x2b, 0xda, 0x90, 0x47, 0x50, 0x38, 0x5b, 0x81, 0xc2, 0xa9, 0x6b, 0xa1, 0x70, 0xac, 0xb3, + 0x00, 0x53, 0x36, 0x0a, 0xf4, 0xcd, 0x55, 0x6a, 0x55, 0xf1, 0x21, 0x0a, 0x47, 0x83, 0xdf, 0xea, + 0xfa, 0xa0, 0x2d, 0x00, 0x5f, 0x55, 0x1c, 0x4f, 0x37, 0xe2, 0xaa, 0x6b, 0x5a, 0x0c, 0xbc, 0xb8, + 0x04, 0x20, 0x08, 0xed, 0x02, 0xd0, 0x9d, 0xde, 0xb0, 0x62, 0xd4, 0x58, 0xc7, 0xb5, 0xcc, 0x0d, + 0xae, 0x3a, 0x3e, 0x2c, 0x52, 0x44, 0x2a, 0x9f, 0x67, 0xa7, 0x33, 0x26, 0x65, 0x2c, 0xb3, 0x96, + 0xca, 0x80, 0x2f, 0x11, 0x56, 0x61, 0x4f, 0x7b, 0x3a, 0xf5, 0x28, 0x82, 0x12, 0x8c, 0x61, 0xbc, + 0x04, 0xa3, 0x70, 0xed, 0x6a, 0x2b, 0x64, 0x79, 0x5f, 0x23, 0xcf, 0xa0, 0x1f, 0x87, 0x59, 0x8f, + 0x11, 0xb1, 0xe0, 0xcf, 0xc1, 0xcb, 0x96, 0xce, 0x06, 0xa8, 0x90, 0x1f, 0x4f, 0x7a, 0x8a, 0xe7, + 0xc2, 0xcd, 0xf4, 0xaa, 0x61, 0xa3, 0xe8, 0x35, 0x88, 0x0d, 0xc7, 0x75, 0xfc, 0x29, 0x0b, 0x09, + 0x44, 0x3f, 0x38, 0xac, 0x34, 0xb5, 0x02, 0xe8, 0x2a, 0x15, 0xa3, 0x05, 0xbc, 0x47, 0x8e, 0x55, + 0x1c, 0x9b, 0x66, 0xad, 0x09, 0x24, 0xb6, 0x9f, 0x59, 0x5f, 0x6a, 0xff, 0x2d, 0x8c, 0x95, 0xd2, + 0x58, 0x3a, 0x26, 0x8e, 0x5a, 0x2b, 0x31, 0xb5, 0xe1, 0xd9, 0x33, 0x50, 0x0e, 0x89, 0xae, 0x28, + 0x7e, 0xaa, 0x38, 0xc0, 0x35, 0x2a, 0xd7, 0x33, 0x2e, 0xe7, 0x37, 0x59, 0x6f, 0x4a, 0x7f, 0x00, + 0x7d, 0x00, 0x14, 0x15, 0x31, 0x58, 0xf3, 0x91, 0xcf, 0x87, 0x16, 0x6b, 0x4f, 0xad, 0x1a, 0x85, + 0x51, 0x2c, 0x64, 0xd8, 0xf5, 0x0b, 0x51, 0x57, 0xc5, 0xf4, 0x31, 0x02, 0x36, 0xe5, 0xe9, 0xaf, + 0x13, 0x7c, 0x8a, 0x4c, 0x14, 0xd4, 0x4e, 0x54, 0xe2, 0x49, 0x4f, 0x17, 0x5d, 0x2d, 0xd6, 0x9c, + 0x0b, 0x4e, 0xe3, 0xea, 0x19, 0xd4, 0x5c, 0x76, 0x50, 0x67, 0x03, 0x81, 0x3a, 0xab, 0x73, 0xe1, + 0x38, 0x51, 0xe2, 0x4a, 0x01, 0x7c, 0x66, 0xa0, 0xdd, 0x0b, 0x7d, 0x99, 0xc3, 0x9d, 0xca, 0xc6, + 0x38, 0x34, 0xec, 0xa1, 0x37, 0x61, 0xe5, 0x63, 0xe2, 0x80, 0x86, 0x70, 0xd1, 0xb1, 0x47, 0x9a, + 0x41, 0xa0, 0xda, 0xa2, 0x1c, 0x3b, 0x5b, 0x8f, 0xa2, 0xda, 0xf0, 0x34, 0xe9, 0x7f, 0xac, 0x87, + 0xfc, 0xd0, 0x5e, 0x90, 0x63, 0x0f, 0x88, 0xee, 0x80, 0xeb, 0xfe, 0xd1, 0x6e, 0x8e, 0x76, 0x02, + 0x61, 0xd5, 0x8c, 0xd1, 0xb9, 0x9f, 0x13, 0x48, 0xf7, 0x6c, 0xbc, 0x6c, 0x7e, 0xa8, 0xdd, 0xc1, + 0x98, 0x00, 0x8f, 0xab, 0xc6, 0x4a, 0xbb, 0xc2, 0xac, 0x79, 0x78, 0x17, 0x06, 0xfa, 0x73, 0xaf, + 0x75, 0x86, 0x3d, 0x53, 0xd0, 0x62, 0xe6, 0xf7, 0x57, 0xd2, 0xdb, 0xda, 0xba, 0x51, 0x91, 0x87, + 0x77, 0x57, 0x70, 0x67, 0x45, 0x90, 0xd3, 0x7c, 0xe4, 0xfe, 0x0a, 0x4d, 0xa3, 0xad, 0xe5, 0x8f, + 0x47, 0xee, 0xae, 0x00, 0xf7, 0xc2, 0xb8, 0xec, 0xb0, 0x18, 0x5a, 0xed, 0xb0, 0x78, 0xd9, 0x18, + 0x81, 0x0a, 0x73, 0x17, 0xa8, 0x30, 0xad, 0x40, 0x85, 0x89, 0x98, 0x4d, 0xb2, 0xa0, 0xbf, 0xb1, + 0x01, 0xf2, 0x9c, 0xc3, 0xb2, 0x5d, 0xff, 0x68, 0xa0, 0xb9, 0x32, 0xa0, 0x9d, 0x47, 0x68, 0xf4, + 0x84, 0x75, 0x48, 0x17, 0xe1, 0x8c, 0x8d, 0xd2, 0x11, 0x29, 0xee, 0x51, 0x08, 0xb2, 0x96, 0x8b, + 0x2c, 0x7b, 0x81, 0xea, 0x09, 0x26, 0x06, 0xda, 0xeb, 0x61, 0xc0, 0xdb, 0x07, 0x29, 0x63, 0xf0, + 0x64, 0xc3, 0xe9, 0x43, 0x83, 0x1c, 0x9b, 0x4d, 0xa9, 0x28, 0x94, 0x7f, 0x29, 0xa4, 0x54, 0x9a, + 0x8c, 0xdf, 0x47, 0x2f, 0x25, 0xaa, 0x34, 0x07, 0x7d, 0xd6, 0x26, 0x0d, 0x86, 0x89, 0xb1, 0x14, + 0xb7, 0x4e, 0x43, 0x19, 0x8b, 0xb2, 0xe4, 0x2a, 0x33, 0x8c, 0x6f, 0x97, 0x34, 0xfc, 0xa1, 0x86, + 0x2d, 0xa9, 0xb0, 0x44, 0xfc, 0x31, 0x9e, 0x0e, 0x6b, 0xcd, 0xd4, 0xff, 0x27, 0x4a, 0x69, 0x3a, + 0x68, 0x3d, 0xf3, 0xa3, 0x68, 0xbd, 0xc9, 0x44, 0x9b, 0xc4, 0x46, 0x6c, 0x03, 0xec, 0x33, 0x4c, + 0xa0, 0x28, 0x75, 0xb1, 0xd4, 0xaa, 0x01, 0xa6, 0x1f, 0x42, 0x29, 0x49, 0xa4, 0x23, 0xd3, 0x1c, + 0xbb, 0xfc, 0x58, 0x3a, 0x9c, 0x85, 0xe7, 0x8c, 0xa9, 0xb3, 0xa8, 0x5c, 0xba, 0x0c, 0xe2, 0xaa, + 0xb2, 0x76, 0x6a, 0x06, 0x2a, 0xd3, 0x90, 0x76, 0xa0, 0x3b, 0xde, 0xbe, 0x74, 0xfd, 0x97, 0x68, + 0x63, 0x01, 0x6f, 0xaa, 0x94, 0x16, 0xa0, 0x00, 0x05, 0xcf, 0x8e, 0x7d, 0xa1, 0xe5, 0xfa, 0x23, + 0x66, 0x36, 0x44, 0xe9, 0x21, 0x0d, 0xdc, 0x3f, 0x8e, 0x8f, 0x76, 0x3f, 0x8f, 0x7b, 0xca, 0x09, + 0x7a, 0x18, 0xf7, 0x24, 0xa2, 0x7f, 0x1c, 0x09, 0x33, 0x01, 0x55, 0xa7, 0x4f, 0x22, 0x46, 0x4d, + 0xac, 0xde, 0x8c, 0x92, 0x3f, 0xa2, 0xe9, 0xc0, 0xcd, 0x1a, 0xc3, 0x43, 0x81, 0x36, 0x70, 0x7a, + 0x52, 0xec, 0x6b, 0x44, 0x2a, 0x0d, 0x65, 0x0a, 0x71, 0xcf, 0x82, 0x89, 0x65, 0x7c, 0xe2, 0xae, + 0x13, 0x0b, 0x4f, 0xed, 0x3d, 0x48, 0xee, 0x5f, 0x44, 0x2c, 0x24, 0x1c, 0x78, 0x5d, 0x6b, 0xa4, + 0x9e, 0x84, 0x5b, 0xf6, 0x40, 0x79, 0x80, 0x46, 0xac, 0x99, 0x99, 0x2f, 0x85, 0x2f, 0xe1, 0xa4, + 0x2f, 0xf0, 0x60, 0x28, 0x8f, 0x29, 0x2b, 0x71, 0x83, 0x95, 0x33, 0xa8, 0xc0, 0xe1, 0x27, 0xac, + 0x90, 0xb5, 0x38, 0xfd, 0x84, 0xa1, 0x57, 0xe1, 0x51, 0x2c, 0x73, 0x02, 0x30, 0xd2, 0x70, 0x13, + 0x3b, 0x0a, 0xb5, 0x58, 0x17, 0xee, 0x71, 0x50, 0xaa, 0x27, 0x8c, 0xc5, 0xcd, 0x55, 0xb1, 0xe1, + 0x46, 0x36, 0x03, 0xad, 0x99, 0x2d, 0xde, 0xc3, 0x78, 0x3a, 0xde, 0x87, 0x03, 0x36, 0x1c, 0x6a, + 0x65, 0x8d, 0x8f, 0x7a, 0xbf, 0xe4, 0x0b, 0xc6, 0x8b, 0x7f, 0x0e, 0x8f, 0x3b, 0x51, 0xcb, 0x76, + 0x59, 0x02, 0x65, 0x79, 0xd6, 0x84, 0xe5, 0x68, 0xf3, 0xd5, 0x98, 0x6a, 0x3d, 0xf1, 0xa5, 0xb3, + 0x6e, 0x39, 0x24, 0x3c, 0xcc, 0xeb, 0x18, 0x4a, 0xf5, 0x41, 0x8d, 0x51, 0x82, 0xaf, 0x45, 0x9e, + 0x2f, 0xe3, 0x43, 0x12, 0xa1, 0x04, 0xea, 0x4a, 0x87, 0x61, 0x0b, 0x29, 0xd7, 0x6f, 0x66, 0x86, + 0x32, 0x3e, 0xda, 0x18, 0x18, 0x0f, 0x94, 0xee, 0x35, 0x98, 0x36, 0x17, 0x11, 0x43, 0xbe, 0xa4, + 0xbf, 0x89, 0x18, 0xa0, 0x0d, 0xc2, 0x6a, 0xac, 0x45, 0x92, 0xfe, 0x56, 0x12, 0x16, 0x7b, 0xc3, + 0xc2, 0x19, 0xe2, 0x51, 0x96, 0x0c, 0x7a, 0x22, 0x3c, 0x2d, 0xfe, 0x9c, 0xc9, 0x10, 0x1b, 0x7b, + 0x63, 0x15, 0x67, 0x48, 0x80, 0x77, 0xd2, 0x68, 0xb7, 0xb4, 0x84, 0xf3, 0x56, 0x47, 0x5f, 0x9f, + 0x35, 0xea, 0x81, 0x96, 0x26, 0x66, 0xc0, 0x35, 0x11, 0xea, 0x0e, 0x36, 0xd2, 0x5c, 0xa2, 0x96, + 0x6b, 0x50, 0x3a, 0x59, 0x4f, 0x74, 0x7d, 0x20, 0x75, 0x62, 0x80, 0xdf, 0x30, 0x12, 0x96, 0x1a, + 0xbf, 0x1c, 0x9e, 0xfa, 0xc4, 0x93, 0xf0, 0xd4, 0x84, 0x15, 0xf0, 0xa6, 0x4f, 0x02, 0x89, 0x28, + 0x16, 0x4d, 0x5b, 0x4f, 0x74, 0xbd, 0xa1, 0x47, 0x09, 0xfa, 0xf9, 0xd1, 0x50, 0xeb, 0x2a, 0xa8, + 0xe9, 0x10, 0xdb, 0x5a, 0xd3, 0x41, 0x38, 0x81, 0xb0, 0x3a, 0x4e, 0x20, 0x54, 0xb1, 0xe8, 0x89, + 0x8d, 0x1f, 0x53, 0xad, 0xcf, 0x1e, 0x04, 0x7a, 0x94, 0x9e, 0x3d, 0xd0, 0x3d, 0x74, 0xa0, 0x47, + 0x51, 0x1f, 0x9a, 0xea, 0x4e, 0xb4, 0xa2, 0x47, 0x05, 0x3a, 0x53, 0xe3, 0x22, 0x13, 0x0a, 0xa5, + 0x06, 0x9e, 0xd7, 0x0c, 0x25, 0xb7, 0xf0, 0x7c, 0xaf, 0xc6, 0x74, 0xa6, 0xb6, 0x1c, 0x67, 0x74, + 0x18, 0xcc, 0x26, 0xc3, 0xb9, 0x8a, 0xc9, 0xe2, 0x57, 0x0e, 0xa2, 0x7d, 0xd5, 0x67, 0xd0, 0x9a, + 0xff, 0x7c, 0xc6, 0x0c, 0x3d, 0xe3, 0x67, 0xc9, 0x23, 0x22, 0xbd, 0x54, 0x99, 0x80, 0x96, 0xa0, + 0x6b, 0xe6, 0x14, 0x95, 0x7e, 0x72, 0x95, 0x04, 0xd9, 0x73, 0x91, 0x77, 0xa5, 0x73, 0x51, 0xe2, + 0xa2, 0xf3, 0x90, 0xde, 0x63, 0x00, 0x61, 0x28, 0xde, 0xd3, 0xe9, 0x73, 0xa9, 0x3c, 0x49, 0x2c, + 0x09, 0x17, 0x28, 0x90, 0x48, 0x3c, 0xe5, 0x50, 0x9a, 0x9c, 0x32, 0x31, 0xa8, 0x77, 0xac, 0x73, + 0xe2, 0xbe, 0x02, 0x57, 0xfd, 0x07, 0x9a, 0xae, 0x1c, 0xd2, 0x0a, 0x62, 0x5e, 0x9e, 0xec, 0xa5, + 0x86, 0x7e, 0x4f, 0x7d, 0x19, 0x72, 0x55, 0x65, 0x11, 0xae, 0x90, 0x4a, 0x4d, 0xdf, 0x77, 0x68, + 0x19, 0xff, 0xb3, 0x3d, 0xa2, 0xff, 0x83, 0xd4, 0x33, 0x5a, 0x6a, 0xc0, 0x73, 0xde, 0x74, 0xc4, + 0x84, 0x90, 0x36, 0x0b, 0x6d, 0x98, 0x0f, 0xb3, 0xca, 0x16, 0xae, 0x27, 0xb9, 0x7d, 0xfd, 0xa1, + 0xe5, 0xc4, 0xb0, 0x5e, 0x46, 0xd8, 0x72, 0xe3, 0x78, 0x1d, 0x59, 0xa6, 0x8d, 0x6c, 0x4d, 0x3b, + 0x12, 0xfe, 0x28, 0x7d, 0x02, 0x6c, 0x0f, 0x41, 0xc6, 0x86, 0xa7, 0xd8, 0x8c, 0x82, 0x8c, 0x8d, + 0x99, 0xda, 0x99, 0xb0, 0xc0, 0xf8, 0x75, 0xac, 0xd6, 0xc3, 0x5c, 0x56, 0x6a, 0xea, 0x11, 0x57, + 0x97, 0x47, 0x22, 0x76, 0xf0, 0x7b, 0x45, 0x33, 0x85, 0x5c, 0x35, 0x0f, 0x49, 0xf4, 0x84, 0xc3, + 0x48, 0xc2, 0x13, 0x92, 0x48, 0x41, 0xb2, 0x27, 0x2a, 0x12, 0x46, 0x16, 0x62, 0x15, 0xfa, 0xdc, + 0x01, 0xf2, 0x31, 0x63, 0x3e, 0x42, 0xae, 0x49, 0x34, 0xd7, 0x14, 0x0d, 0xf6, 0x42, 0xb2, 0xd2, + 0x2a, 0x60, 0xbb, 0x32, 0xfa, 0x5c, 0x44, 0xc6, 0x02, 0x36, 0x8c, 0x30, 0xb8, 0xf3, 0xb8, 0x10, + 0x70, 0xb6, 0xeb, 0x99, 0x27, 0xda, 0xdb, 0x2c, 0x6f, 0x3d, 0xca, 0x70, 0x6e, 0xc0, 0x4a, 0x65, + 0x0e, 0x85, 0x51, 0x36, 0xe0, 0x3a, 0x89, 0x62, 0x12, 0xd0, 0xaa, 0x58, 0x8b, 0xa5, 0xb1, 0x52, + 0x62, 0x32, 0x9b, 0xe2, 0x4d, 0xb1, 0x78, 0x96, 0x4e, 0x36, 0xb7, 0xf1, 0xfe, 0x97, 0x9b, 0xa9, + 0x11, 0x28, 0xb8, 0x29, 0x99, 0x72, 0x9e, 0xa6, 0x83, 0x35, 0x66, 0x3e, 0x5b, 0x26, 0xf8, 0x04, + 0x54, 0xd3, 0x6b, 0x7b, 0xdb, 0x64, 0xd6, 0x20, 0x78, 0x04, 0x4c, 0xc9, 0x8a, 0x16, 0x3c, 0x02, + 0xb2, 0x82, 0x47, 0xc0, 0x51, 0x6c, 0x8a, 0xd5, 0x6c, 0xcb, 0xc0, 0xbd, 0x69, 0xc2, 0x15, 0x8b, + 0x2e, 0xaf, 0x89, 0xa8, 0x28, 0x15, 0xb1, 0xf1, 0x1d, 0x81, 0xe3, 0x23, 0x1e, 0x1d, 0x63, 0x88, + 0xb4, 0x54, 0x54, 0x2e, 0x62, 0x23, 0xe1, 0x4e, 0x06, 0xef, 0x0d, 0xbd, 0x63, 0x88, 0x97, 0x35, + 0xce, 0xa6, 0x29, 0x16, 0x43, 0x0b, 0x87, 0xb1, 0x0c, 0x3c, 0xcb, 0xd9, 0x4e, 0xdd, 0x63, 0x48, + 0xd8, 0x64, 0x11, 0xeb, 0x07, 0xd7, 0x50, 0x56, 0x0e, 0xbf, 0x40, 0x9b, 0x47, 0x4c, 0x2b, 0x13, + 0x3d, 0xca, 0x06, 0x18, 0x17, 0x65, 0x8d, 0xb7, 0x1b, 0x00, 0x93, 0x89, 0x29, 0x55, 0xd3, 0xa5, + 0x8c, 0x44, 0x3e, 0xc6, 0x2a, 0x52, 0x2b, 0x3a, 0x05, 0x6e, 0x03, 0x7e, 0xdf, 0x26, 0xc5, 0x3c, + 0x59, 0x45, 0x18, 0xd9, 0x5a, 0x51, 0xf8, 0x33, 0x2b, 0x53, 0x00, 0xd7, 0xb3, 0x10, 0xde, 0x5b, + 0x63, 0xed, 0xe8, 0xc1, 0xf6, 0x31, 0xaa, 0x05, 0x25, 0xad, 0x99, 0x56, 0x20, 0x33, 0xc1, 0x15, + 0xc0, 0x63, 0xb2, 0x54, 0x1f, 0x07, 0x18, 0x3a, 0x81, 0xee, 0xeb, 0x18, 0x80, 0x23, 0x0a, 0x7f, + 0x48, 0x73, 0xc8, 0x39, 0x73, 0xa8, 0xf4, 0x52, 0x8b, 0x8c, 0x32, 0xee, 0x9a, 0x38, 0x6d, 0xeb, + 0xab, 0x80, 0x66, 0x47, 0xdf, 0x0e, 0x8e, 0x73, 0x78, 0xd4, 0x02, 0x73, 0x9c, 0xc0, 0x23, 0xcd, + 0x7f, 0xff, 0x0a, 0x3d, 0xf9, 0x35, 0xb5, 0xc8, 0x7e, 0xfb, 0x69, 0x89, 0x07, 0xf6, 0xea, 0x26, + 0x2d, 0x95, 0x73, 0xda, 0x37, 0x81, 0x44, 0x68, 0x89, 0x1a, 0xea, 0xa3, 0x25, 0x1a, 0x71, 0x0c, + 0xe1, 0x4c, 0x71, 0x9d, 0xb4, 0x44, 0x8b, 0x2d, 0xcb, 0x71, 0xd3, 0xbf, 0x64, 0x44, 0x16, 0xe3, + 0x17, 0x7b, 0x8e, 0xe5, 0x92, 0xc0, 0xa8, 0x98, 0x5d, 0x5f, 0xd4, 0xe5, 0x92, 0x80, 0xbe, 0xc4, + 0xf2, 0xa5, 0x23, 0x37, 0xcb, 0x04, 0x0b, 0xc7, 0xc4, 0x59, 0x8a, 0x23, 0x39, 0x4b, 0x21, 0xd7, + 0x6c, 0xc9, 0xe6, 0x9a, 0x69, 0x9e, 0x49, 0x34, 0x4f, 0xc8, 0xcf, 0x14, 0x03, 0xb9, 0xc9, 0x4c, + 0x46, 0x05, 0xe4, 0x59, 0x17, 0x03, 0x33, 0x5e, 0x8c, 0x67, 0xb5, 0xb4, 0x05, 0x15, 0xfc, 0xde, + 0xbb, 0x02, 0xa5, 0xc9, 0x81, 0x2f, 0x64, 0xc5, 0x75, 0x31, 0x7a, 0x4f, 0xfe, 0xb4, 0xc1, 0x8d, + 0xc3, 0xfd, 0x63, 0x48, 0x47, 0xeb, 0xc8, 0x87, 0xf2, 0x07, 0x1a, 0xcb, 0x04, 0xd9, 0x03, 0xb8, + 0xaa, 0x31, 0x47, 0xd9, 0x03, 0xbd, 0x2f, 0x9e, 0x87, 0x27, 0x6f, 0xfb, 0xe3, 0x3c, 0x7a, 0xa8, + 0x89, 0x86, 0xf7, 0xa6, 0xd8, 0x00, 0xa8, 0x13, 0xcd, 0x4d, 0xcb, 0xdb, 0x96, 0x98, 0x5d, 0xab, + 0x71, 0xb3, 0x98, 0xf7, 0x7f, 0x75, 0x1a, 0xca, 0x1d, 0x06, 0x29, 0x7c, 0xb5, 0xeb, 0x24, 0xd4, + 0x64, 0x58, 0xc2, 0x79, 0xb3, 0xe5, 0xab, 0x28, 0x89, 0x65, 0x2f, 0x93, 0xb0, 0x70, 0x6f, 0xb1, + 0x7b, 0x4d, 0x25, 0xf0, 0x94, 0x5b, 0x0d, 0xa2, 0x61, 0xc6, 0xba, 0x58, 0xaa, 0x51, 0xde, 0x18, + 0x15, 0xbb, 0xf0, 0xb0, 0xf0, 0x7e, 0xd5, 0x9f, 0xb5, 0xec, 0x1f, 0x73, 0x1d, 0x5f, 0xf4, 0x21, + 0x5c, 0x23, 0x13, 0x6f, 0xc9, 0x06, 0x1c, 0xea, 0xab, 0x97, 0xea, 0xc5, 0x68, 0xb9, 0x25, 0x57, + 0x25, 0x58, 0x55, 0x51, 0xb9, 0x86, 0xd2, 0x7b, 0xa0, 0x7d, 0x68, 0x68, 0x27, 0x4e, 0x2f, 0xc6, + 0xef, 0x43, 0x5e, 0x4c, 0x9f, 0xed, 0x6c, 0xcb, 0x42, 0x88, 0xef, 0xc1, 0xa7, 0x20, 0xc4, 0x35, + 0xb4, 0x8e, 0xcb, 0x14, 0x40, 0xdf, 0x63, 0xdc, 0x96, 0x10, 0x81, 0x43, 0xcc, 0xfd, 0xcc, 0xdc, + 0xdd, 0x21, 0xb1, 0xfd, 0x62, 0xb9, 0x26, 0x6c, 0x9b, 0x74, 0x23, 0xda, 0xde, 0xc7, 0xba, 0xa6, + 0xc7, 0xf4, 0x8b, 0x81, 0xfe, 0xf0, 0x46, 0xdb, 0x84, 0xd4, 0x3e, 0xa1, 0x9c, 0xda, 0x38, 0x13, + 0xd3, 0x93, 0x13, 0xaf, 0x0e, 0xa8, 0xb9, 0xeb, 0x41, 0x4f, 0x60, 0xf1, 0xe4, 0xfa, 0xd0, 0x3f, + 0xd2, 0x1a, 0x87, 0x59, 0x69, 0x37, 0xb4, 0xda, 0x17, 0x2c, 0x11, 0xec, 0x69, 0xf8, 0x09, 0x92, + 0x70, 0xa9, 0x36, 0x96, 0x4d, 0xa7, 0xb4, 0xa8, 0x4c, 0xa0, 0x4c, 0x73, 0x55, 0x39, 0x74, 0x04, + 0xa0, 0x9f, 0xec, 0x6c, 0xde, 0x8b, 0x9b, 0xb3, 0xef, 0x7b, 0x0a, 0x7d, 0x2f, 0x83, 0x71, 0x02, + 0x63, 0xbe, 0x2e, 0x46, 0x38, 0x6d, 0xe2, 0x54, 0xd3, 0x58, 0x83, 0x32, 0x47, 0xf0, 0xaf, 0x2d, + 0x53, 0x56, 0xb0, 0x4a, 0x41, 0x02, 0x4e, 0xec, 0xdc, 0x57, 0xfc, 0x2b, 0x1b, 0x1b, 0xf5, 0xc0, + 0xa9, 0x44, 0xb9, 0xea, 0xf7, 0x0d, 0x10, 0x6c, 0xfe, 0x50, 0xce, 0xf6, 0xa2, 0xd3, 0x1f, 0x2f, + 0xdd, 0x83, 0xa0, 0x72, 0x57, 0x22, 0xa2, 0xc3, 0x39, 0xa8, 0x1f, 0x48, 0x0c, 0xce, 0xfd, 0xfc, + 0x11, 0x34, 0x27, 0xe4, 0xeb, 0x02, 0x95, 0xae, 0x96, 0x7e, 0x44, 0x68, 0x93, 0x02, 0xb8, 0xa8, + 0xe8, 0x96, 0xf6, 0x31, 0xec, 0x20, 0x62, 0x13, 0x94, 0xce, 0x04, 0xb5, 0x04, 0xf0, 0x00, 0x90, + 0x99, 0xb2, 0xa9, 0x65, 0x16, 0x79, 0xb1, 0x04, 0xb8, 0x8c, 0x30, 0x87, 0x86, 0x61, 0xd3, 0x4e, + 0x5e, 0x26, 0x71, 0xe9, 0x01, 0xb4, 0x59, 0x11, 0x45, 0xf8, 0x1d, 0x80, 0x47, 0xea, 0x37, 0x46, + 0xfc, 0x77, 0xfa, 0x8d, 0xb8, 0x9a, 0xe1, 0x0e, 0x82, 0x5a, 0x90, 0x5a, 0x42, 0xe9, 0x6b, 0x94, + 0x8b, 0xb2, 0x13, 0x71, 0x28, 0x3f, 0xab, 0xe3, 0x6e, 0x07, 0x12, 0x94, 0xcc, 0xb3, 0x95, 0x3a, + 0xcf, 0x7b, 0x49, 0xf2, 0xb6, 0xbb, 0xc7, 0xe8, 0xee, 0x02, 0x2b, 0xbc, 0x5b, 0xe5, 0x42, 0x4b, + 0xb7, 0x1a, 0xf7, 0x77, 0x97, 0x84, 0xe5, 0x12, 0x85, 0x21, 0x97, 0xf8, 0x22, 0x7d, 0xaa, 0x0f, + 0x25, 0xab, 0xa2, 0x72, 0x89, 0xbf, 0x65, 0x5c, 0x03, 0x07, 0x57, 0x3f, 0x4b, 0x71, 0x03, 0xa7, + 0xf7, 0xc4, 0xfd, 0x39, 0x08, 0x69, 0xa6, 0xe3, 0xdf, 0xe5, 0x4c, 0xf9, 0x6e, 0x05, 0xca, 0x7a, + 0x13, 0x49, 0x78, 0x30, 0xb5, 0x8d, 0xec, 0x8b, 0xfb, 0x80, 0xbd, 0x12, 0x81, 0xdb, 0x01, 0x7c, + 0xd9, 0x2b, 0x86, 0xee, 0xec, 0x7a, 0xf5, 0x32, 0x12, 0x7f, 0x5a, 0x73, 0xb3, 0x0c, 0xe5, 0xd0, + 0x7c, 0xec, 0x5e, 0x40, 0xa1, 0x06, 0xa6, 0x99, 0x30, 0x3c, 0x95, 0x3d, 0x80, 0x37, 0xc7, 0x1a, + 0x48, 0xa7, 0xb4, 0x44, 0x8c, 0x09, 0x6f, 0xdc, 0xe1, 0x8d, 0x0c, 0xa8, 0xc7, 0x40, 0x4c, 0x01, + 0x9e, 0xa5, 0xf8, 0x5c, 0x07, 0xd4, 0x24, 0xa6, 0x84, 0xda, 0xb5, 0x19, 0x68, 0x73, 0x38, 0x00, + 0x4a, 0xac, 0xc8, 0x40, 0xcb, 0xc4, 0x81, 0x50, 0x7e, 0xbf, 0xc1, 0x18, 0xbb, 0x13, 0x60, 0x3e, + 0xff, 0xc1, 0xb1, 0xbd, 0x62, 0x49, 0x50, 0xb8, 0x16, 0x68, 0x33, 0x35, 0x7c, 0x65, 0x20, 0x6c, + 0x17, 0xf8, 0xa6, 0x84, 0xfc, 0x54, 0xc5, 0xf7, 0xab, 0x4c, 0x75, 0xb1, 0xf0, 0x26, 0xc8, 0x20, + 0xce, 0x30, 0xd6, 0x59, 0xd0, 0xcb, 0x3c, 0xab, 0x85, 0xd9, 0xe5, 0x65, 0x57, 0xd1, 0x70, 0x18, + 0x3e, 0x06, 0xc2, 0xc6, 0x12, 0xd5, 0x84, 0xfb, 0xcb, 0x62, 0x0c, 0xb1, 0x75, 0xfb, 0xe1, 0x5d, + 0x27, 0xc1, 0x46, 0x72, 0xc0, 0x64, 0xd2, 0xd7, 0x2f, 0x4a, 0x4b, 0x3a, 0x45, 0xc6, 0x03, 0x76, + 0x0d, 0x8a, 0x30, 0xc3, 0x28, 0x70, 0xe7, 0xf9, 0x9d, 0x8c, 0x05, 0xa1, 0x2f, 0xeb, 0x9d, 0x56, + 0x7b, 0x4b, 0x44, 0xfc, 0x8c, 0x60, 0xc5, 0xa9, 0x31, 0x11, 0xa2, 0xbd, 0xbb, 0x6a, 0x66, 0xe4, + 0xdf, 0x49, 0x8b, 0x41, 0x7e, 0x2e, 0x40, 0xd4, 0x21, 0x86, 0x68, 0x07, 0xf0, 0xf2, 0x8d, 0x84, + 0x62, 0x3e, 0x2e, 0x79, 0x69, 0xca, 0x82, 0x4e, 0xa4, 0x83, 0x91, 0x04, 0x23, 0x96, 0x23, 0x9c, + 0xde, 0x4d, 0x2f, 0xc7, 0x77, 0x50, 0x22, 0xb5, 0x78, 0x16, 0x7d, 0xe3, 0x0e, 0x63, 0x8d, 0x7f, + 0xa3, 0xc1, 0xb8, 0xd1, 0x66, 0x47, 0x98, 0x08, 0xb2, 0xdc, 0xd8, 0x2b, 0x9e, 0x74, 0x72, 0x84, + 0xa8, 0x36, 0xf6, 0x32, 0x93, 0x20, 0xab, 0xc9, 0x2e, 0x7d, 0x25, 0x97, 0x28, 0x59, 0x2f, 0x6b, + 0x2e, 0xd4, 0x4d, 0xb2, 0x10, 0x38, 0x39, 0xba, 0x8b, 0x59, 0xee, 0xe0, 0xc7, 0xfb, 0x23, 0x85, + 0x64, 0xd6, 0xf0, 0xba, 0x60, 0x68, 0x01, 0x03, 0xf8, 0x8f, 0x6f, 0x6a, 0x11, 0x27, 0x6a, 0x71, + 0x8f, 0x1c, 0xcf, 0xac, 0x75, 0x6d, 0x25, 0xc8, 0x44, 0x3f, 0x03, 0x67, 0x93, 0x8e, 0x9e, 0xb6, + 0x00, 0xeb, 0xe8, 0x49, 0x4a, 0xcb, 0x99, 0xb0, 0xde, 0xdb, 0xf4, 0x1e, 0xd0, 0x33, 0x3e, 0x16, + 0x18, 0x45, 0x3c, 0x46, 0xba, 0x53, 0x66, 0x32, 0x07, 0xc2, 0x5a, 0xd1, 0x57, 0x4b, 0x02, 0x23, + 0xfc, 0xda, 0xae, 0x59, 0xa6, 0x84, 0x2e, 0x5a, 0x12, 0x8c, 0x16, 0x41, 0x80, 0xf2, 0x1f, 0x10, + 0x61, 0x56, 0xca, 0x35, 0x26, 0xf4, 0xc0, 0x02, 0xad, 0x1a, 0x60, 0x32, 0xf9, 0x03, 0xbe, 0x8f, + 0x8a, 0xdd, 0x1c, 0x3b, 0x56, 0x1c, 0x65, 0x0a, 0xf7, 0x8d, 0xf2, 0x36, 0xc4, 0x51, 0xaa, 0x08, + 0xbd, 0x1e, 0x03, 0xfd, 0x44, 0xf7, 0xe2, 0x20, 0x1d, 0xa0, 0x52, 0x72, 0x85, 0xd5, 0x5b, 0x01, + 0x75, 0x90, 0x2a, 0x81, 0x56, 0x53, 0x18, 0xaa, 0x89, 0xc1, 0xc8, 0x7a, 0xd1, 0x35, 0x43, 0x66, + 0x30, 0xd6, 0xed, 0x85, 0x72, 0x46, 0xf5, 0x97, 0x99, 0xec, 0xd0, 0x53, 0x31, 0xc4, 0x98, 0xbc, + 0xed, 0xb7, 0x77, 0x0d, 0xc8, 0x67, 0xd2, 0x5d, 0x67, 0x7e, 0x15, 0x52, 0x1a, 0x81, 0xce, 0xb4, + 0x00, 0xf7, 0xfb, 0x80, 0x3e, 0xab, 0x95, 0x46, 0xba, 0x17, 0x8e, 0xf5, 0x93, 0xa1, 0x64, 0xc0, + 0x6f, 0xc9, 0xa9, 0xf1, 0xb0, 0xde, 0xa8, 0xd3, 0x4c, 0x38, 0xfa, 0x81, 0x66, 0x0d, 0xb7, 0x9a, + 0xd0, 0x33, 0x2d, 0xc4, 0xd2, 0x9d, 0x3c, 0x7c, 0x36, 0x17, 0x28, 0x39, 0x5a, 0xe2, 0x65, 0xa6, + 0xb4, 0x04, 0x6b, 0x02, 0x52, 0x16, 0x2a, 0xb9, 0x7a, 0xa0, 0xd6, 0xa8, 0x89, 0xc1, 0xb6, 0xb7, + 0x49, 0xe1, 0x57, 0x6e, 0x0f, 0x72, 0xc1, 0xdb, 0xd8, 0x4a, 0x5d, 0xf8, 0x56, 0xfa, 0x2d, 0x15, + 0xf1, 0x05, 0xe0, 0x69, 0xb1, 0xde, 0x07, 0x9f, 0x7f, 0xbf, 0x45, 0xf7, 0x90, 0x5b, 0xe2, 0x4d, + 0xa0, 0x2d, 0x07, 0xb3, 0x97, 0xd6, 0x48, 0xda, 0x52, 0xe3, 0x36, 0xab, 0xad, 0x8c, 0xae, 0x95, + 0xb2, 0xba, 0x58, 0xbd, 0xc8, 0x81, 0x73, 0xf9, 0x35, 0xb7, 0xf1, 0x63, 0x41, 0x4a, 0xad, 0x0b, + 0x9e, 0xf5, 0x09, 0xb3, 0x5b, 0x05, 0xb3, 0xfb, 0x8f, 0x28, 0xd4, 0x58, 0x2b, 0x6e, 0xf8, 0xc3, + 0x02, 0xfc, 0x8a, 0x25, 0x9b, 0xee, 0xaa, 0xcb, 0x20, 0x3c, 0x4b, 0xe7, 0x38, 0x8c, 0x06, 0x99, + 0x86, 0xf2, 0x37, 0x26, 0x9c, 0x67, 0x78, 0x42, 0x82, 0xbd, 0x0d, 0x2d, 0xd7, 0xc2, 0xdb, 0x00, + 0x96, 0x70, 0xca, 0x55, 0xc1, 0x0c, 0x6c, 0xd9, 0x6b, 0xe7, 0x6d, 0x3d, 0xb9, 0xf0, 0x35, 0x8e, + 0xfd, 0x73, 0x7f, 0xde, 0x6a, 0x88, 0x92, 0x3f, 0xbf, 0x57, 0xf0, 0xfb, 0x13, 0x70, 0xe7, 0x7f, + 0x14, 0xad, 0x0a, 0xf9, 0x1e, 0x43, 0xf9, 0xe8, 0x1e, 0x54, 0xa2, 0x5a, 0x01, 0xdc, 0x68, 0xc0, + 0xa6, 0xc4, 0x22, 0x75, 0x44, 0x4c, 0x24, 0xcc, 0xfc, 0xd8, 0xc6, 0x2a, 0xee, 0xa3, 0x83, 0x45, + 0x81, 0x75, 0x56, 0x78, 0x1f, 0x58, 0x93, 0x58, 0xe4, 0x1b, 0x6e, 0x44, 0x29, 0xec, 0x98, 0x1b, + 0x55, 0xdc, 0xc6, 0x03, 0x85, 0x12, 0xc7, 0x0e, 0x6c, 0x50, 0x1b, 0xbb, 0x77, 0x2a, 0xc1, 0xee, + 0x1d, 0x95, 0xa9, 0xd0, 0x62, 0x7d, 0x80, 0x32, 0x3d, 0xc9, 0x4b, 0x31, 0x93, 0xc3, 0x2d, 0xd2, + 0x02, 0x01, 0xc0, 0xe5, 0x3f, 0x1e, 0x4b, 0x74, 0x40, 0x81, 0x2b, 0xea, 0xae, 0x01, 0xde, 0xb2, + 0x50, 0xda, 0x57, 0x33, 0x50, 0x98, 0xa7, 0x55, 0x57, 0x49, 0xa0, 0x5e, 0x86, 0x76, 0xb4, 0xa1, + 0xaf, 0x75, 0x44, 0xfb, 0x65, 0x2d, 0x84, 0xf4, 0x85, 0x90, 0x0a, 0x21, 0xa4, 0x9a, 0x86, 0x09, + 0xe0, 0xc3, 0xd4, 0x99, 0xf2, 0xfc, 0xc2, 0xfc, 0x0d, 0xc6, 0x52, 0x12, 0x2e, 0xda, 0x5c, 0x59, + 0x28, 0x33, 0x88, 0xd2, 0xe8, 0x39, 0x74, 0x8d, 0x9b, 0x7d, 0xc4, 0xe3, 0x46, 0xe8, 0xc5, 0x56, + 0x52, 0xa2, 0xb7, 0xb5, 0x14, 0x4f, 0x9b, 0x9c, 0x7b, 0x4f, 0x92, 0x36, 0x92, 0x3d, 0x8f, 0xd0, + 0x3d, 0x77, 0xdd, 0x05, 0xbe, 0x75, 0x1f, 0xbd, 0xd5, 0x39, 0xa5, 0x5e, 0xe5, 0xce, 0xfd, 0xff, + 0x1b, 0xc2, 0x2c, 0xa7, 0x94, 0x3d, 0xb4, 0x82, 0x05, 0x5b, 0x41, 0x17, 0x02, 0x33, 0x3b, 0xde, + 0x79, 0x02, 0xe0, 0xd2, 0x06, 0xe1, 0x3a, 0xe2, 0x7b, 0x02, 0xfd, 0x68, 0xe8, 0x08, 0xda, 0x8c, + 0xf2, 0x83, 0x1a, 0x06, 0x6c, 0xb6, 0x14, 0x4a, 0xc2, 0x65, 0xa9, 0x26, 0x58, 0x73, 0x02, 0x37, + 0x19, 0x0b, 0x24, 0x06, 0x51, 0xaa, 0x31, 0x52, 0x66, 0xd9, 0x13, 0xad, 0x23, 0x9d, 0xfa, 0x8a, + 0x2d, 0x5f, 0x86, 0x25, 0xc4, 0xde, 0xb4, 0x70, 0x1f, 0x7d, 0x59, 0x28, 0x0d, 0x97, 0x9d, 0x48, + 0x18, 0x62, 0x32, 0xc4, 0x44, 0xe5, 0x93, 0x20, 0xa4, 0x28, 0x63, 0x6f, 0x5c, 0xa4, 0xef, 0x61, + 0x6c, 0x24, 0x0f, 0x31, 0xea, 0xe2, 0xc3, 0x42, 0x89, 0x54, 0x1e, 0x43, 0x7e, 0x42, 0x1b, 0x0d, + 0x70, 0xe5, 0xec, 0x66, 0xf8, 0x6d, 0x80, 0x12, 0x24, 0xa1, 0xcc, 0x23, 0x8c, 0x6e, 0x1d, 0x3d, + 0xe3, 0xfa, 0xb3, 0xd1, 0x1d, 0xe3, 0xa7, 0x73, 0xa5, 0x27, 0x94, 0xd3, 0xe8, 0x09, 0x44, 0x40, + 0x98, 0xb1, 0x75, 0x3f, 0x2d, 0xde, 0xa7, 0xf7, 0xa4, 0xbd, 0x14, 0x0b, 0x3d, 0xaa, 0xfd, 0xaa, + 0xd6, 0x60, 0x72, 0xf4, 0xce, 0xc2, 0x3d, 0x42, 0xdf, 0xc4, 0xfe, 0x49, 0xdf, 0xe8, 0x28, 0xf5, + 0xbc, 0xf3, 0xe1, 0xfe, 0xb9, 0x39, 0x47, 0x38, 0x85, 0x78, 0x4b, 0xe0, 0x92, 0x0b, 0x28, 0x97, + 0x6c, 0x22, 0xe1, 0xf4, 0xc4, 0x20, 0xf2, 0x2f, 0xe8, 0x7c, 0x97, 0x5e, 0xba, 0x39, 0x14, 0x7a, + 0x69, 0xd4, 0xe3, 0xf9, 0x44, 0xf7, 0x50, 0xfa, 0x5a, 0x87, 0x5e, 0xca, 0x7f, 0x9f, 0xfa, 0x8d, + 0xbb, 0x74, 0x0c, 0x08, 0x67, 0x40, 0x0e, 0xde, 0x42, 0xb0, 0x8c, 0x80, 0x63, 0x80, 0x52, 0x4d, + 0xb8, 0xf3, 0xfa, 0x77, 0x16, 0x20, 0x79, 0xbb, 0x64, 0x0e, 0x0b, 0x90, 0x37, 0x2f, 0x9e, 0xac, + 0x10, 0xac, 0xaf, 0xcf, 0x71, 0xec, 0x9e, 0x52, 0x1b, 0x90, 0x93, 0xd1, 0x5b, 0x8c, 0xbd, 0xd4, + 0x59, 0x06, 0x94, 0x76, 0xce, 0xe4, 0xe9, 0x0d, 0xc1, 0x72, 0xb2, 0x99, 0xb7, 0x9b, 0xec, 0x94, + 0x4f, 0x68, 0x63, 0xb5, 0x1c, 0x3d, 0x76, 0x18, 0xca, 0x89, 0xa8, 0xaa, 0x16, 0x65, 0x02, 0xff, + 0xf2, 0xec, 0xdb, 0xb5, 0x9e, 0x0a, 0xa0, 0x37, 0x1c, 0xd6, 0x95, 0x91, 0x7b, 0x1a, 0x87, 0xe7, + 0x6c, 0xa4, 0xfe, 0x8b, 0x50, 0x52, 0xbf, 0xfb, 0x06, 0x5c, 0x33, 0xe1, 0x7a, 0x95, 0xb4, 0xfd, + 0xab, 0xff, 0xa6, 0xae, 0xe5, 0x7e, 0xef, 0x56, 0x52, 0x7f, 0x32, 0x9c, 0xd4, 0xdf, 0x2e, 0x83, + 0xf7, 0xab, 0x00, 0x2c, 0xa4, 0xfe, 0x16, 0xc0, 0x57, 0xfe, 0xfc, 0xf7, 0x93, 0x72, 0xf8, 0x06, + 0xdf, 0x4f, 0x1a, 0x49, 0xfd, 0xbe, 0x14, 0xfe, 0xdd, 0x81, 0x93, 0xa4, 0xfe, 0xdb, 0x73, 0xa4, + 0xfe, 0x08, 0x0b, 0xef, 0xb3, 0x21, 0x7c, 0x0d, 0xa9, 0x3f, 0x55, 0x05, 0xe1, 0x20, 0xad, 0x2b, + 0x53, 0x20, 0x9c, 0x86, 0x83, 0x3f, 0xf2, 0x7f, 0xfd, 0x53, 0x0d, 0x8d, 0x4b, 0xed, 0xcb, 0xe4, + 0x8c, 0x29, 0x2a, 0x0c, 0xcd, 0xcf, 0xc9, 0x2c, 0x19, 0x5d, 0x32, 0x89, 0x09, 0x0f, 0x0f, 0x0d, + 0x63, 0x34, 0x61, 0xa1, 0xbd, 0x42, 0xc3, 0x0c, 0x3d, 0xc3, 0x7a, 0xf8, 0x78, 0x11, 0xd7, 0xcf, + 0x84, 0x58, 0xef, 0x93, 0xfa, 0x17, 0x4a, 0xc9, 0x0f, 0x3d, 0x0f, 0xcd, 0xd4, 0x79, 0xce, 0x86, + 0x7b, 0x1b, 0x40, 0x02, 0xc0, 0x12, 0x47, 0xa2, 0x62, 0x68, 0x9b, 0xc9, 0x65, 0x7c, 0x3d, 0xbe, + 0xb8, 0x2f, 0xbc, 0xec, 0x01, 0xd0, 0x1d, 0xa1, 0x82, 0x54, 0xf5, 0x22, 0x28, 0x10, 0x86, 0x6a, + 0x38, 0xa4, 0xea, 0x19, 0xbc, 0x87, 0x6b, 0xb4, 0xe3, 0x1d, 0xa9, 0xff, 0xec, 0x3c, 0xa9, 0xdf, + 0xf9, 0x8c, 0xf3, 0xde, 0xf1, 0x37, 0x15, 0xfe, 0xc9, 0xd4, 0xa9, 0x53, 0xe9, 0xdd, 0x54, 0x0a, + 0x35, 0x35, 0x35, 0x84, 0xdc, 0x80, 0x7f, 0x72, 0xe3, 0xc6, 0x0d, 0x7a, 0x77, 0x83, 0x07, 0x1a, + 0x77, 0x27, 0xb4, 0xf1, 0xce, 0x81, 0x00, 0xe9, 0x00, 0xcf, 0x02, 0x8c, 0x06, 0xc8, 0x05, 0x18, + 0x07, 0x30, 0xe1, 0x91, 0x79, 0xc3, 0xdf, 0x44, 0x42, 0x76, 0x4c, 0x24, 0x51, 0x3b, 0x01, 0x3e, + 0xff, 0x73, 0x20, 0x3c, 0x4c, 0xe5, 0x3e, 0x2f, 0xc6, 0x42, 0x41, 0x5f, 0x38, 0x00, 0x9e, 0xdb, + 0xfd, 0x37, 0x00, 0x71, 0x9b, 0x21, 0xfa, 0x8d, 0x1f, 0x2b, 0x48, 0x24, 0x40, 0xd4, 0x8f, 0x15, + 0x5d, 0x9e, 0xf9, 0x6b, 0x20, 0xcf, 0xfc, 0x48, 0xc8, 0x33, 0x5c, 0x05, 0xf9, 0x37, 0xc4, 0x7b, + 0x80, 0x00, 0x15, 0x7f, 0xe2, 0x22, 0x21, 0x3e, 0x3f, 0x72, 0xdc, 0xb5, 0xff, 0x14, 0x2a, 0x84, + 0xfa, 0x17, 0x13, 0x8f, 0x1d, 0xc5, 0xa2, 0x1f, 0x77, 0x02, 0x7c, 0xfe, 0xa7, 0x40, 0x3c, 0x28, + 0x8c, 0xe7, 0xfe, 0xf7, 0xf5, 0xaf, 0x27, 0x6e, 0x77, 0x01, 0xee, 0xd7, 0x93, 0xc7, 0x1e, 0xfc, + 0x39, 0xdc, 0x06, 0x70, 0x7b, 0x70, 0x11, 0xa0, 0x19, 0xe0, 0x7f, 0x57, 0x7f, 0x37, 0x80, 0x76, + 0x70, 0xdb, 0x1f, 0xd7, 0x83, 0x5a, 0xe2, 0x06, 0xd0, 0x8e, 0xbb, 0x48, 0xfa, 0x03, 0x40, 0xd9, + 0xdc, 0x78, 0xb8, 0x2b, 0xe2, 0xe1, 0x3e, 0xe1, 0xa1, 0x99, 0x4c, 0xa5, 0xc0, 0x41, 0x38, 0xce, + 0x00, 0x10, 0xf9, 0x24, 0xc7, 0x05, 0x3d, 0xc9, 0x35, 0xfb, 0xb6, 0xe3, 0xee, 0x7b, 0xb4, 0xe3, + 0xee, 0xba, 0xbd, 0xc8, 0xdd, 0x10, 0x7d, 0x05, 0x69, 0x5c, 0x86, 0xf4, 0xc6, 0x43, 0x8f, 0xf5, + 0x81, 0xa9, 0xfb, 0x44, 0x33, 0x21, 0xbe, 0x30, 0x3d, 0x3c, 0xee, 0x42, 0xb6, 0x50, 0x72, 0xd1, + 0xc5, 0xff, 0x2a, 0x7f, 0xb8, 0x36, 0x7b, 0x40, 0xfe, 0x90, 0x25, 0xf7, 0xe4, 0xe7, 0x1c, 0x07, + 0xd9, 0x37, 0xeb, 0x2f, 0x70, 0x0f, 0x3a, 0x72, 0x5c, 0x93, 0xf7, 0x75, 0xae, 0xd1, 0x9d, 0xe3, + 0x1a, 0xc4, 0xbf, 0x73, 0x75, 0xa2, 0xa9, 0xdc, 0x2a, 0xb2, 0x9d, 0x33, 0x92, 0xe7, 0x9a, 0x2b, + 0x48, 0xc8, 0x03, 0x42, 0x3a, 0x36, 0x11, 0xe2, 0xd5, 0x48, 0x88, 0x7b, 0x03, 0x4c, 0x59, 0x40, + 0x57, 0x22, 0xe6, 0xff, 0x47, 0xea, 0xff, 0x24, 0xe4, 0x3d, 0xb5, 0x02, 0x16, 0xdd, 0x5a, 0xe2, + 0x01, 0xf0, 0x24, 0xc4, 0x9b, 0xca, 0x5d, 0x84, 0xfc, 0x6e, 0x78, 0x00, 0x40, 0xd2, 0x77, 0xa7, + 0xf2, 0x70, 0x1f, 0xb2, 0xba, 0x0f, 0xcf, 0xcd, 0x30, 0x78, 0x9a, 0xa1, 0xbe, 0x5c, 0x67, 0xa8, + 0xff, 0x33, 0xf0, 0x1c, 0x8a, 0xf5, 0x9f, 0x0a, 0xf5, 0xff, 0x10, 0xea, 0x7f, 0x01, 0xea, 0xff, + 0x23, 0xd4, 0x7f, 0xe2, 0x3f, 0xa9, 0xff, 0xff, 0xe9, 0x4f, 0x24, 0x54, 0x40, 0x8a, 0x74, 0x1f, + 0x40, 0x20, 0x80, 0x01, 0x80, 0x85, 0x0a, 0xd5, 0x5e, 0x04, 0x54, 0x13, 0x49, 0xd0, 0x69, 0x86, + 0x94, 0xb8, 0x55, 0xc0, 0xe7, 0x8b, 0xf0, 0x39, 0x12, 0x3e, 0xfb, 0x02, 0x8f, 0xe1, 0x56, 0x4b, + 0xb1, 0xe1, 0x5f, 0xfe, 0xb9, 0xa1, 0x15, 0x36, 0x68, 0xa3, 0x76, 0xd0, 0x5e, 0x4f, 0x42, 0xdb, + 0xf5, 0x87, 0x76, 0x9c, 0x4a, 0xfb, 0x05, 0xfb, 0xa2, 0x19, 0xfa, 0xe5, 0x01, 0xb4, 0xcf, 0xbd, + 0x76, 0x1c, 0x77, 0x0b, 0xda, 0xa4, 0x1e, 0xda, 0x66, 0x1f, 0xb4, 0x51, 0x15, 0x34, 0x0b, 0xd3, + 0x9f, 0x6b, 0x36, 0x2e, 0xe0, 0xee, 0x57, 0x74, 0xe3, 0xee, 0x11, 0x19, 0x77, 0x8b, 0x88, 0xfb, + 0xd7, 0x13, 0xb2, 0x60, 0x1f, 0x21, 0xdd, 0xaa, 0x08, 0x50, 0x67, 0x04, 0x89, 0x9e, 0xbf, 0xcd, + 0xff, 0xff, 0xed, 0xfa, 0xbb, 0xfe, 0xb5, 0x83, 0x71, 0xd3, 0x0f, 0x30, 0xe0, 0xbf, 0x57, 0x5e, + 0x24, 0xcd, 0x53, 0xff, 0xa7, 0xf5, 0xf7, 0x80, 0xa1, 0x28, 0x57, 0xa0, 0x33, 0x43, 0x42, 0x18, + 0x28, 0x9a, 0x11, 0x8a, 0x66, 0xdc, 0x05, 0xb0, 0xbb, 0x82, 0x18, 0xc7, 0xd6, 0x92, 0x98, 0xc0, + 0x5a, 0x12, 0x5b, 0x59, 0x4b, 0x32, 0xbf, 0xac, 0x20, 0x3d, 0xc7, 0x54, 0x90, 0xc0, 0x2f, 0x20, + 0x3c, 0xd4, 0x58, 0x2e, 0x27, 0x22, 0xc9, 0x3e, 0xe2, 0x26, 0xa9, 0x20, 0x52, 0x00, 0xb9, 0x04, + 0xea, 0x0f, 0x57, 0x03, 0x34, 0x0a, 0x3b, 0xf3, 0x3f, 0xa8, 0xbf, 0x04, 0xf2, 0x16, 0xc1, 0xa3, + 0x07, 0x14, 0xad, 0x1d, 0x14, 0x6d, 0x14, 0x14, 0x2d, 0x1a, 0x21, 0x06, 0xba, 0x5c, 0xc4, 0x92, + 0xa8, 0xd8, 0x0c, 0x32, 0x32, 0x22, 0x99, 0x24, 0x55, 0xad, 0xac, 0x50, 0x65, 0x7c, 0x7e, 0xd1, + 0xef, 0xf1, 0xa9, 0x77, 0xbd, 0x6f, 0x71, 0xcd, 0xde, 0x3f, 0x70, 0x0f, 0xdc, 0xc6, 0x70, 0xf7, + 0xbc, 0xbb, 0x73, 0xb7, 0x3a, 0x2e, 0xe0, 0xea, 0xbb, 0x3d, 0xc9, 0xed, 0x4b, 0xf8, 0x9c, 0xab, + 0x9a, 0x31, 0x95, 0x63, 0x54, 0x50, 0xff, 0x97, 0xfe, 0x9b, 0xfa, 0x67, 0x43, 0xbd, 0x0f, 0x09, + 0x30, 0x17, 0x00, 0x56, 0xf5, 0x18, 0xf8, 0x16, 0x5b, 0x49, 0x48, 0xe6, 0x1e, 0x42, 0x7a, 0x66, + 0x42, 0x25, 0x77, 0xff, 0x3f, 0x54, 0x7f, 0x74, 0xd3, 0x00, 0xf7, 0xa3, 0x80, 0x4a, 0x8a, 0x2e, + 0x05, 0x18, 0x0b, 0xf5, 0x97, 0x11, 0x12, 0x05, 0x45, 0x1d, 0xf9, 0xf4, 0x7d, 0x92, 0xb4, 0xf0, + 0x47, 0xa8, 0xff, 0xca, 0x8b, 0x7e, 0x81, 0xff, 0xd3, 0xfa, 0x23, 0x2d, 0xe0, 0xc1, 0xd3, 0x0f, + 0x33, 0x4b, 0x85, 0xf1, 0x6c, 0x10, 0xae, 0xe1, 0xc2, 0xe8, 0xc3, 0x67, 0xb1, 0x83, 0xd8, 0x71, + 0x01, 0x89, 0x70, 0x95, 0x0a, 0x73, 0x41, 0x26, 0x5c, 0x3d, 0x85, 0xf8, 0x5e, 0xc2, 0xd5, 0x57, + 0x78, 0xe7, 0x2f, 0x84, 0x57, 0x0b, 0x57, 0x8d, 0x70, 0xd5, 0x0a, 0x57, 0x9d, 0x70, 0x0d, 0x6d, + 0x99, 0x5e, 0x8e, 0xb2, 0xcd, 0x5e, 0x2f, 0xa4, 0x83, 0xf7, 0x46, 0x97, 0x7b, 0x9d, 0xcb, 0xbd, + 0xa4, 0xe5, 0x7e, 0xd6, 0x0d, 0x97, 0xfb, 0x7d, 0x2e, 0xf7, 0xab, 0x5c, 0xee, 0x37, 0xbb, 0xc4, + 0x0d, 0x74, 0x79, 0x3f, 0xd7, 0xe5, 0xbe, 0xac, 0xd5, 0x3c, 0xfc, 0x41, 0x1c, 0xfa, 0xd0, 0xdc, + 0xfc, 0x41, 0xbc, 0xfc, 0xe1, 0x77, 0x6e, 0xe7, 0x1f, 0x7e, 0xe7, 0xde, 0xe9, 0x11, 0xef, 0xca, + 0x1e, 0x7e, 0x27, 0x5a, 0xfd, 0xf0, 0x3b, 0xd9, 0x86, 0x87, 0xdf, 0x79, 0x86, 0x3d, 0xfc, 0xce, + 0x63, 0xd1, 0xc3, 0xef, 0xa4, 0x97, 0x1e, 0x91, 0xc7, 0x1c, 0x97, 0x27, 0xff, 0x7f, 0xd0, 0xbf, + 0x62, 0xa1, 0x7f, 0x7d, 0x69, 0xbf, 0xd6, 0xcf, 0x3a, 0x27, 0x74, 0x90, 0xaf, 0x70, 0x6d, 0x27, + 0xdc, 0x2b, 0x84, 0x6f, 0xf8, 0x97, 0xfc, 0x88, 0x74, 0x3d, 0x68, 0xba, 0xf5, 0x2f, 0x6a, 0x84, + 0x78, 0x06, 0x61, 0x6c, 0x38, 0xd2, 0x0a, 0x13, 0xe2, 0xe3, 0x7d, 0x84, 0x70, 0x8f, 0x63, 0xa8, + 0xaf, 0x70, 0x8d, 0x16, 0xbe, 0x99, 0x5c, 0xc2, 0xc5, 0xbb, 0x84, 0xb3, 0x0a, 0xf9, 0xe9, 0x84, + 0x74, 0x25, 0x7f, 0x51, 0x17, 0xb1, 0x30, 0x46, 0xc5, 0x02, 0xfe, 0x16, 0x0b, 0xe9, 0x89, 0x69, + 0x3d, 0xf8, 0x7b, 0x3f, 0x97, 0x7c, 0x02, 0x5c, 0xee, 0x3b, 0xb9, 0xe4, 0xd9, 0x45, 0x78, 0xa7, + 0x14, 0xde, 0x39, 0xc6, 0xb8, 0x9b, 0x30, 0xc6, 0x49, 0x62, 0xec, 0xa0, 0xe4, 0xf8, 0x98, 0xd8, + 0x38, 0xbc, 0x26, 0x0e, 0x8c, 0x49, 0xc0, 0x6b, 0x71, 0xa1, 0x9d, 0xc1, 0x6b, 0x4c, 0x6a, 0x82, + 0xc9, 0x2f, 0x7c, 0x68, 0x59, 0xce, 0x98, 0x41, 0x85, 0xa4, 0xfe, 0x73, 0xac, 0x27, 0x61, 0xc6, + 0x66, 0xd9, 0xf2, 0x47, 0x97, 0x66, 0x31, 0x3d, 0x43, 0x81, 0x31, 0x61, 0x62, 0x8b, 0x8a, 0x27, + 0x95, 0xe4, 0xd8, 0xb3, 0x4b, 0x99, 0x9e, 0x7d, 0xfa, 0xf4, 0x0a, 0x01, 0x3e, 0xc5, 0xc0, 0x58, + 0xb3, 0x46, 0x17, 0x86, 0xe4, 0x17, 0x3d, 0x5f, 0xcc, 0x24, 0x8c, 0xce, 0xc9, 0xcf, 0x9f, 0xc4, + 0x8c, 0x2e, 0x1c, 0xcb, 0x0c, 0x1c, 0x5d, 0x92, 0xc7, 0xc4, 0x8c, 0xcd, 0xcf, 0x2a, 0x71, 0x59, + 0xdb, 0x7f, 0x78, 0xe6, 0x24, 0xca, 0x72, 0x41, 0x8d, 0x25, 0xe4, 0x87, 0xbe, 0xeb, 0xe0, 0xd7, + 0x1d, 0x6a, 0x27, 0x13, 0xee, 0xa5, 0x84, 0x81, 0x7f, 0xfe, 0x5e, 0x02, 0xef, 0x15, 0xe4, 0x87, + 0x88, 0xcd, 0xf0, 0x55, 0xc1, 0xbf, 0x17, 0xee, 0x2b, 0xe0, 0x9f, 0xbf, 0x67, 0x48, 0x05, 0x74, + 0x15, 0xde, 0xe3, 0x9d, 0x58, 0x22, 0xdc, 0x8b, 0xc4, 0x22, 0xb1, 0x82, 0xbf, 0x17, 0x89, 0xdd, + 0x24, 0xee, 0x52, 0x0f, 0x99, 0xcc, 0xd3, 0xd3, 0xcb, 0xcb, 0xdb, 0x5b, 0x0e, 0x7f, 0x3e, 0xf0, + 0xe7, 0x0b, 0x7f, 0xed, 0xe0, 0x4f, 0x21, 0xfc, 0xb5, 0x17, 0xfe, 0xfc, 0x84, 0xbf, 0xc7, 0x84, + 0x3f, 0xff, 0x36, 0x7f, 0x1d, 0xda, 0xfc, 0x05, 0xb4, 0xf9, 0xeb, 0xd8, 0xe6, 0x2f, 0xf0, 0x6f, + 0xfe, 0x1e, 0xff, 0x9b, 0xbf, 0x4e, 0x7f, 0xf3, 0xd7, 0xf9, 0xaf, 0xff, 0x82, 0x68, 0xfd, 0x25, + 0xee, 0xee, 0x52, 0xf8, 0xf3, 0x80, 0x3f, 0x99, 0xf0, 0xe7, 0x29, 0xfc, 0x79, 0xb5, 0xf9, 0xf3, + 0x6e, 0xf3, 0x27, 0xff, 0x9b, 0x3f, 0x9f, 0xbf, 0xf9, 0xf3, 0xfd, 0x3f, 0xfe, 0xb5, 0xfb, 0x3f, + 0xfe, 0xc1, 0xd4, 0x69, 0x8f, 0xbd, 0xe9, 0xe8, 0xbb, 0xb6, 0xfd, 0xf4, 0x77, 0xfd, 0xf1, 0x7f, + 0x6c, 0xff, 0xce, 0x41, 0xff, 0xc7, 0xbf, 0x27, 0xfe, 0x8f, 0x7f, 0xa4, 0x7e, 0x6e, 0x1d, 0xa9, + 0x5f, 0x98, 0x42, 0xcf, 0xc8, 0x88, 0xa8, 0x0b, 0xc5, 0x8d, 0xf5, 0x2f, 0x5f, 0x84, 0xf7, 0x19, + 0xc2, 0x8c, 0xec, 0x22, 0xe0, 0x4b, 0x58, 0x5f, 0x16, 0xed, 0x11, 0xde, 0x3d, 0x26, 0xe0, 0x46, + 0x9c, 0x9b, 0xee, 0x04, 0xed, 0x1c, 0x04, 0x02, 0xe0, 0x5c, 0xf5, 0x07, 0x90, 0x03, 0x04, 0x01, + 0x88, 0x01, 0xfc, 0x00, 0xbc, 0x00, 0x3a, 0x01, 0x48, 0x01, 0x02, 0x00, 0x7c, 0x01, 0xba, 0x00, + 0x88, 0x00, 0xda, 0x03, 0x78, 0x02, 0x3c, 0x0e, 0x80, 0xff, 0x1d, 0xf0, 0xbc, 0x07, 0xe0, 0x09, + 0x00, 0x37, 0x80, 0xc7, 0x00, 0xbc, 0x01, 0x3a, 0x03, 0x78, 0x00, 0x74, 0x04, 0x78, 0x34, 0x6d, + 0x2b, 0x72, 0xc1, 0xdb, 0x6e, 0x02, 0x48, 0x04, 0x70, 0x17, 0x40, 0x2a, 0x80, 0x87, 0x00, 0x32, + 0x01, 0x3c, 0x05, 0xf0, 0x12, 0xc0, 0x5b, 0x00, 0xb9, 0x00, 0x3e, 0x14, 0xe4, 0x10, 0x76, 0x2e, + 0x40, 0x12, 0xc0, 0x21, 0xf4, 0x7d, 0x07, 0xb0, 0x1e, 0x00, 0xbd, 0x82, 0x5d, 0x05, 0x08, 0x02, + 0x58, 0x0e, 0x30, 0x02, 0xe0, 0x1c, 0x40, 0x14, 0xc0, 0x0e, 0x80, 0x72, 0x80, 0xfb, 0x00, 0x62, + 0x80, 0xe9, 0x00, 0x26, 0x80, 0xdd, 0x00, 0x4a, 0x80, 0xb7, 0x00, 0x32, 0x01, 0x2e, 0x01, 0xf8, + 0x01, 0x2c, 0x02, 0x48, 0x05, 0x38, 0x06, 0x10, 0x06, 0xb0, 0x09, 0xa0, 0x04, 0xe0, 0x16, 0x80, + 0x17, 0xc0, 0x1c, 0x00, 0x2b, 0xc0, 0x01, 0x00, 0x2d, 0xc0, 0x3a, 0x80, 0x5c, 0x80, 0x9f, 0x01, + 0x3a, 0x01, 0xbc, 0x06, 0x30, 0x1c, 0xe0, 0x2c, 0x40, 0x5f, 0x80, 0x6d, 0x00, 0x93, 0x01, 0x9a, + 0x00, 0xa4, 0x00, 0xb3, 0x01, 0xe2, 0x01, 0xf6, 0x02, 0xa8, 0x01, 0xde, 0x05, 0xb0, 0x01, 0x5c, + 0x01, 0x08, 0x00, 0x58, 0x06, 0x30, 0x14, 0xe0, 0x24, 0x40, 0x04, 0xc0, 0xc7, 0x00, 0x13, 0x00, + 0xee, 0x00, 0xf8, 0x02, 0xcc, 0x07, 0x48, 0x06, 0x38, 0x0c, 0x10, 0x0a, 0xb0, 0x01, 0xa0, 0x10, + 0xe0, 0x57, 0x80, 0x2e, 0x00, 0x2b, 0x00, 0x46, 0x01, 0x9c, 0x07, 0x88, 0x06, 0xd8, 0x09, 0x30, + 0x05, 0xa0, 0x19, 0x40, 0x04, 0x30, 0x0d, 0x20, 0x06, 0x60, 0x17, 0x40, 0x57, 0x80, 0x37, 0x01, + 0x46, 0x03, 0x7c, 0x0f, 0xd0, 0x1e, 0x60, 0x21, 0xc0, 0x60, 0x80, 0xa3, 0x00, 0x3d, 0x01, 0x36, + 0x02, 0x8c, 0x03, 0xb8, 0x09, 0xe0, 0x09, 0xf0, 0x12, 0x40, 0x22, 0xc0, 0x7e, 0x80, 0x1e, 0x00, + 0x6b, 0x01, 0x72, 0x00, 0x7e, 0x02, 0x78, 0x1c, 0xe0, 0x55, 0x80, 0x67, 0x01, 0xce, 0x00, 0xf4, + 0x01, 0xf8, 0x14, 0x60, 0x12, 0xc0, 0x3d, 0x3a, 0x4a, 0x65, 0x64, 0x16, 0x40, 0x1c, 0xc0, 0x97, + 0x00, 0x4f, 0x01, 0xbc, 0x03, 0x90, 0x85, 0xeb, 0x0b, 0x40, 0x07, 0x80, 0xa5, 0x00, 0x43, 0x00, + 0xbe, 0x01, 0xe8, 0x05, 0xb0, 0x05, 0xe0, 0x79, 0x80, 0xdf, 0x00, 0x7c, 0x00, 0xe6, 0x01, 0x0c, + 0x04, 0xf8, 0x1a, 0x20, 0x04, 0xe0, 0x03, 0x00, 0x94, 0x0f, 0xbd, 0x06, 0xf0, 0x04, 0xc0, 0x1b, + 0x00, 0x23, 0x01, 0xbe, 0x03, 0x78, 0x06, 0xe0, 0x33, 0x80, 0x7f, 0x03, 0x3c, 0x00, 0x78, 0x8c, + 0x78, 0x8a, 0x00, 0xc8, 0x62, 0xb8, 0x02, 0x90, 0x34, 0xb8, 0x02, 0x90, 0xe3, 0x70, 0x05, 0x20, + 0x4f, 0xc3, 0x15, 0x80, 0x7c, 0x04, 0x57, 0x00, 0x32, 0x1e, 0xae, 0x00, 0xe4, 0x36, 0x5c, 0x01, + 0x60, 0x44, 0x7a, 0x8a, 0x00, 0xc8, 0xcb, 0x70, 0x05, 0x20, 0x03, 0xe0, 0x0a, 0x40, 0x0e, 0xc2, + 0x15, 0x80, 0x04, 0xc3, 0x15, 0x80, 0xbc, 0x0f, 0x57, 0x00, 0x92, 0x07, 0x57, 0x00, 0xf2, 0x0b, + 0x5c, 0x01, 0x60, 0x0e, 0x79, 0x8a, 0x00, 0xc8, 0xeb, 0x70, 0x05, 0x20, 0xff, 0x82, 0x2b, 0x00, + 0xf9, 0x16, 0xae, 0x00, 0xa4, 0x1f, 0x5c, 0x01, 0xc8, 0x76, 0xb8, 0x02, 0x90, 0x17, 0xe0, 0x0a, + 0x40, 0xfe, 0x80, 0x2b, 0x00, 0xcc, 0x18, 0x4f, 0x11, 0x00, 0x79, 0x11, 0xae, 0x00, 0x24, 0x01, + 0xae, 0x00, 0xe4, 0x2b, 0xb8, 0x02, 0x90, 0xee, 0x70, 0x05, 0x20, 0xef, 0xc1, 0x15, 0x80, 0xd8, + 0xe1, 0x0a, 0x40, 0x7e, 0x84, 0x2b, 0x00, 0xcc, 0x5d, 0x4f, 0x11, 0x00, 0x79, 0x05, 0xae, 0x00, + 0x64, 0x18, 0x5c, 0x01, 0xc8, 0x29, 0xb8, 0x02, 0x90, 0xde, 0x70, 0x05, 0x20, 0x9f, 0xc0, 0x15, + 0x80, 0x4c, 0x84, 0x2b, 0x00, 0xf9, 0x1d, 0xae, 0x00, 0x80, 0x85, 0x3c, 0x45, 0x00, 0x64, 0x01, + 0x5c, 0x01, 0xc8, 0x20, 0xb8, 0x02, 0x90, 0x23, 0x70, 0x05, 0x20, 0x7a, 0xb8, 0x02, 0x90, 0x0f, + 0xe1, 0x0a, 0x40, 0x8a, 0xe0, 0x0a, 0x40, 0xae, 0xc3, 0x15, 0x80, 0x3c, 0x09, 0x57, 0x00, 0xb2, + 0x12, 0xae, 0x00, 0xe4, 0x39, 0xb8, 0x02, 0x90, 0x0b, 0x70, 0x05, 0x20, 0xfd, 0xe1, 0x0a, 0x40, + 0x3e, 0x87, 0x2b, 0x00, 0x99, 0x0a, 0x57, 0x00, 0xc2, 0xc1, 0x95, 0xa3, 0xf8, 0xc1, 0x83, 0x18, + 0x01, 0x18, 0x00, 0x16, 0x40, 0x01, 0x90, 0x02, 0x60, 0x00, 0x28, 0x06, 0x90, 0x01, 0x58, 0x00, + 0x34, 0x00, 0xd9, 0x00, 0x81, 0x00, 0x19, 0x00, 0x91, 0x00, 0x65, 0x00, 0x12, 0x00, 0x33, 0x80, + 0x0a, 0x60, 0x2c, 0x80, 0x3f, 0x40, 0x3a, 0x40, 0x38, 0x40, 0x29, 0x80, 0x1b, 0xa4, 0x30, 0x03, + 0x20, 0x16, 0xe0, 0x0b, 0x80, 0x6e, 0x00, 0x6f, 0x03, 0x8c, 0x01, 0xb8, 0x4c, 0xf1, 0xd4, 0x3f, + 0xe1, 0xf1, 0x45, 0x8f, 0xc0, 0x87, 0x6d, 0xf1, 0x62, 0x5b, 0xfc, 0xd8, 0x16, 0x4f, 0x3a, 0x00, + 0x57, 0x47, 0x22, 0xf3, 0xf0, 0x94, 0x7a, 0xb9, 0x7b, 0x4b, 0xe4, 0x6e, 0x3e, 0x62, 0x5f, 0x51, + 0x3b, 0xd7, 0xbc, 0xc4, 0x2e, 0xe9, 0xb8, 0xbb, 0xe0, 0x56, 0x99, 0x80, 0x47, 0xe5, 0x4e, 0x3a, + 0x9b, 0xa7, 0xdb, 0x91, 0x6f, 0x09, 0x42, 0x92, 0x51, 0xa0, 0x35, 0x91, 0x9e, 0x8e, 0x04, 0x40, + 0x1e, 0x09, 0xf7, 0xd6, 0x59, 0xba, 0xc5, 0xc9, 0x33, 0x7b, 0xc8, 0xfb, 0x20, 0xe3, 0x79, 0xb1, + 0x4d, 0xfd, 0x5c, 0xf3, 0x94, 0x0a, 0x79, 0xc9, 0x85, 0x3c, 0x02, 0x85, 0xb4, 0x0d, 0x42, 0x9a, + 0xac, 0x90, 0x56, 0xad, 0xd0, 0x24, 0x15, 0xff, 0x79, 0xf4, 0xff, 0xf3, 0x9f, 0x23, 0x43, 0x0f, + 0x52, 0x5f, 0xeb, 0x06, 0xf0, 0x18, 0x40, 0x17, 0x80, 0x27, 0x01, 0xb4, 0x00, 0xbd, 0x01, 0x80, + 0x3f, 0xa8, 0x1d, 0x0a, 0x30, 0x86, 0x7e, 0xc3, 0x7d, 0x6e, 0x0f, 0xc3, 0xb2, 0x5f, 0x7d, 0x47, + 0xeb, 0x5e, 0xf5, 0x1c, 0xbc, 0xcd, 0xa3, 0x60, 0xcf, 0xe3, 0xc5, 0xb9, 0x8d, 0x0b, 0x7e, 0x1a, + 0xf3, 0x4e, 0xaf, 0x15, 0x63, 0x97, 0xbe, 0xed, 0xfb, 0x6d, 0x65, 0xd8, 0xa4, 0x73, 0x5b, 0x57, + 0x5f, 0xfc, 0xe6, 0xa7, 0x2e, 0xaf, 0x1c, 0x3b, 0x53, 0xe9, 0xf9, 0x71, 0x52, 0xf0, 0x94, 0x8d, + 0xe5, 0x9f, 0xfd, 0xb8, 0x35, 0xc4, 0xa3, 0xea, 0xf3, 0x27, 0x16, 0x3e, 0xf1, 0x89, 0x62, 0x6c, + 0x6e, 0x0d, 0x73, 0xeb, 0xf6, 0xa7, 0xe3, 0x2c, 0x33, 0x77, 0xc6, 0x9c, 0xef, 0x74, 0xf6, 0xc4, + 0xbf, 0x0b, 0xbe, 0xab, 0xff, 0xa5, 0xf1, 0xc4, 0x96, 0xc1, 0x33, 0x8e, 0xcf, 0xfa, 0xea, 0xb1, + 0xfc, 0xea, 0xa1, 0x63, 0xf3, 0xd6, 0xd4, 0x3e, 0xc8, 0xbc, 0x37, 0x79, 0x4e, 0xd6, 0xfe, 0xab, + 0xfe, 0xa2, 0x11, 0x83, 0xc6, 0x48, 0xf3, 0xcf, 0x34, 0xb5, 0x7b, 0x66, 0xcc, 0x3c, 0x99, 0xcf, + 0x6f, 0xfd, 0x0a, 0x99, 0x7d, 0x49, 0x39, 0x8a, 0x51, 0xdf, 0xb0, 0x31, 0xf5, 0x6f, 0xd9, 0xc7, + 0x95, 0x44, 0xb9, 0xd5, 0x1f, 0x1d, 0x20, 0x39, 0x91, 0x70, 0xcc, 0x67, 0xd6, 0x83, 0x77, 0xbc, + 0xb6, 0xe4, 0xf5, 0xda, 0xb2, 0xa6, 0xc9, 0xb4, 0xa9, 0x3a, 0xff, 0xdb, 0xed, 0xfb, 0x4f, 0xae, + 0xdf, 0x71, 0xcf, 0x18, 0x76, 0x3a, 0xff, 0x72, 0xdc, 0x85, 0x11, 0xcf, 0x9f, 0x3b, 0xe9, 0x73, + 0xe4, 0xfd, 0xa3, 0xcf, 0x3c, 0xab, 0x3e, 0x63, 0x58, 0x3f, 0xf8, 0x3c, 0xe9, 0xbb, 0xef, 0xd4, + 0xe0, 0x8a, 0xcf, 0xeb, 0x46, 0x07, 0x74, 0xdd, 0xdc, 0xb8, 0x65, 0xe8, 0x47, 0x7b, 0xba, 0x1d, + 0xd9, 0xb6, 0xf4, 0xd5, 0xad, 0x9f, 0xbd, 0xd3, 0x4e, 0x23, 0xde, 0xba, 0xe2, 0x39, 0xf7, 0x4a, + 0xd9, 0x5e, 0xf9, 0x99, 0x4d, 0x1b, 0xbd, 0x7f, 0x52, 0xe9, 0x8b, 0xca, 0x5f, 0xcc, 0xc8, 0x4e, + 0x6a, 0xbf, 0x6b, 0xf4, 0x13, 0xef, 0x7f, 0x6c, 0x0b, 0x79, 0x66, 0xc2, 0xb9, 0x98, 0x2a, 0xd1, + 0xb7, 0xe3, 0xa4, 0xd5, 0xc7, 0x98, 0x1d, 0xd7, 0xbf, 0x51, 0x68, 0xc7, 0x6d, 0x9c, 0xf5, 0x92, + 0xf4, 0xe3, 0x2d, 0x4f, 0xae, 0xfc, 0xbc, 0xfe, 0x9d, 0x86, 0xad, 0x27, 0x9e, 0x2e, 0xf3, 0xd8, + 0xff, 0x56, 0x3b, 0x72, 0x2f, 0x7c, 0x99, 0xe7, 0x9a, 0xf9, 0xdf, 0xfb, 0x56, 0x07, 0x4e, 0xcd, + 0xf5, 0xd9, 0x2e, 0x2b, 0x78, 0x26, 0x64, 0xe1, 0xd8, 0xfc, 0x57, 0xae, 0x8c, 0x19, 0x21, 0xca, + 0xcb, 0x1b, 0xdc, 0x18, 0x94, 0x3f, 0x3a, 0x73, 0x56, 0x96, 0xe1, 0xf4, 0xad, 0x4c, 0x92, 0x9c, + 0x2f, 0x5d, 0x7a, 0xad, 0xb3, 0xe8, 0x9d, 0x17, 0xa6, 0xcb, 0x1a, 0x77, 0xfd, 0xd6, 0x6e, 0xcf, + 0xb0, 0xac, 0x9a, 0x33, 0x7b, 0xfd, 0x3e, 0xf9, 0x29, 0xe5, 0xe5, 0x9d, 0x5b, 0x7f, 0xbe, 0xff, + 0x69, 0x65, 0x79, 0xe6, 0x77, 0x4f, 0x5c, 0xe8, 0x70, 0x36, 0x24, 0x71, 0xee, 0xf1, 0xf2, 0xdb, + 0x7f, 0x9c, 0x48, 0xca, 0x1a, 0xb8, 0x69, 0x74, 0x46, 0xdf, 0x2d, 0x83, 0x0f, 0xbf, 0xbd, 0x83, + 0x94, 0x9e, 0xd8, 0x6e, 0xb8, 0x64, 0xbd, 0xf0, 0x4e, 0xcc, 0x33, 0xa7, 0x97, 0x9e, 0x5a, 0x7d, + 0x74, 0x4f, 0xc1, 0xf1, 0x93, 0x8d, 0x7f, 0xc4, 0xe6, 0xfc, 0x94, 0x1b, 0x5e, 0x78, 0xe6, 0xfe, + 0x07, 0xf6, 0xca, 0xf8, 0xb3, 0xec, 0xd6, 0x3a, 0xb3, 0x24, 0x64, 0xfc, 0xd3, 0x6e, 0x4f, 0xfc, + 0xb0, 0xce, 0x2b, 0xe9, 0xb9, 0xef, 0x7c, 0xca, 0xf7, 0xa7, 0xb8, 0x8f, 0x8b, 0xea, 0x2e, 0x8e, + 0x59, 0xb7, 0xd3, 0x5b, 0xa1, 0xd8, 0x2f, 0x67, 0x66, 0x0f, 0xcb, 0xde, 0xf2, 0x14, 0x53, 0x34, + 0xeb, 0xa3, 0x4f, 0x6d, 0x27, 0x3c, 0x0f, 0x8f, 0xae, 0x5f, 0x39, 0xea, 0xfc, 0x3d, 0xdf, 0x1e, + 0x67, 0xf6, 0x57, 0xd7, 0xd4, 0x55, 0x2b, 0xbf, 0x3a, 0xb5, 0x66, 0xf3, 0xb3, 0x1f, 0x3d, 0xd3, + 0x31, 0x74, 0xb3, 0xcf, 0xb4, 0x4f, 0x3e, 0x1b, 0xd1, 0xaf, 0x76, 0x5b, 0xfe, 0x07, 0xd7, 0xb6, + 0xce, 0x60, 0x5e, 0xfb, 0xfc, 0xa3, 0x8f, 0xdd, 0x3e, 0xbe, 0x24, 0x2f, 0xdd, 0x78, 0xec, 0xb5, + 0x9f, 0xbf, 0x49, 0xe8, 0xf3, 0xc6, 0xb1, 0x89, 0x1f, 0x4a, 0xbe, 0x55, 0x77, 0x18, 0x7f, 0x2e, + 0x60, 0xc6, 0xe5, 0x31, 0xde, 0x7e, 0x4b, 0xc6, 0xf6, 0x9b, 0xe9, 0x53, 0x90, 0x1b, 0x3d, 0x39, + 0x77, 0xf8, 0x9a, 0x7a, 0xdf, 0x23, 0xde, 0x8b, 0x3d, 0xb9, 0x37, 0xbc, 0xc8, 0x86, 0xee, 0xff, + 0xf6, 0x58, 0xb1, 0xf1, 0x46, 0xbb, 0xc5, 0xe6, 0x17, 0x65, 0x6f, 0x1f, 0xeb, 0x22, 0xba, 0x95, + 0x9d, 0x23, 0xdd, 0xdd, 0xfc, 0x7b, 0xe6, 0xb0, 0x91, 0x15, 0x59, 0xf6, 0x83, 0x8f, 0xe7, 0x47, + 0x8c, 0x2b, 0xcc, 0x93, 0xfe, 0xd8, 0x7c, 0xa2, 0xf3, 0x84, 0x97, 0x8e, 0x07, 0x5f, 0x54, 0x9c, + 0x9d, 0x3c, 0xdc, 0xfe, 0x9d, 0xf5, 0xd0, 0xbd, 0x4f, 0x2f, 0x14, 0xcd, 0xdf, 0x79, 0xfd, 0x5e, + 0xc7, 0x4f, 0x76, 0xc6, 0xb2, 0x35, 0xf3, 0xbf, 0x39, 0x79, 0xf2, 0xed, 0x86, 0x37, 0x8f, 0x2e, + 0x9e, 0x12, 0x79, 0x7a, 0xf7, 0x9e, 0x41, 0x17, 0x6e, 0xa5, 0x1e, 0xdd, 0x6e, 0xbf, 0xf9, 0xee, + 0x8e, 0x61, 0xf6, 0xfe, 0x5b, 0xa4, 0xdf, 0x59, 0x36, 0x45, 0x0c, 0x38, 0xed, 0x13, 0x7c, 0xf6, + 0x43, 0xaf, 0xce, 0x49, 0x11, 0x6e, 0xd6, 0x3b, 0x31, 0x92, 0xc9, 0xec, 0x05, 0xf6, 0xfa, 0x17, + 0x6b, 0xec, 0x17, 0x86, 0xf4, 0x2c, 0x9c, 0x7f, 0x3d, 0x3e, 0x67, 0xe7, 0xa4, 0x83, 0xa3, 0x3f, + 0x9a, 0xbb, 0xc3, 0x36, 0xa3, 0xd3, 0x53, 0x45, 0xc7, 0x56, 0xa5, 0x66, 0x5f, 0x8a, 0x38, 0x24, + 0x9f, 0xb8, 0x74, 0xbb, 0x77, 0x82, 0x9b, 0x52, 0x1c, 0xf0, 0xe9, 0x10, 0x77, 0xb5, 0xfe, 0xcb, + 0x6d, 0xfd, 0x76, 0x6e, 0xfa, 0xcc, 0x5b, 0x13, 0xbc, 0x79, 0xf8, 0xa2, 0x11, 0x1f, 0xe5, 0x4a, + 0x76, 0x9f, 0xe2, 0xde, 0xdb, 0x52, 0x77, 0xa4, 0xa7, 0xee, 0xcc, 0x8a, 0x97, 0xff, 0x75, 0x7e, + 0xc3, 0x13, 0xaf, 0x8f, 0xdd, 0x5d, 0x73, 0x75, 0xcc, 0x2d, 0xf5, 0xf3, 0xb9, 0x6f, 0x2f, 0x17, + 0x17, 0x2c, 0xf6, 0x5a, 0xee, 0x29, 0x5d, 0xfb, 0x8b, 0x6f, 0x44, 0xff, 0x12, 0x0f, 0xfb, 0x2c, + 0x77, 0x32, 0xec, 0xb1, 0xa5, 0x9f, 0x5b, 0xa7, 0x5f, 0xda, 0x3a, 0xd9, 0xff, 0x85, 0x8d, 0xc1, + 0x1b, 0xe4, 0x1f, 0x77, 0x8e, 0x5c, 0x74, 0x6c, 0xfe, 0xeb, 0x3f, 0x7c, 0xb3, 0xd3, 0xa7, 0xfc, + 0xdc, 0xf5, 0x4f, 0xbc, 0xbf, 0xbd, 0xd0, 0x75, 0xf6, 0xf1, 0x63, 0x27, 0x6e, 0x9e, 0xb8, 0x64, + 0xca, 0xfe, 0xee, 0xa3, 0xbb, 0x4f, 0x9e, 0x9d, 0x51, 0x38, 0x6d, 0x67, 0xc0, 0xd7, 0x77, 0x3e, + 0x55, 0xff, 0xab, 0xa8, 0x66, 0xe2, 0xf7, 0x81, 0x9f, 0x24, 0x4c, 0xac, 0x94, 0x0d, 0xbf, 0xc2, + 0xb5, 0xcb, 0x2d, 0xb6, 0x49, 0xfb, 0x1d, 0x68, 0x2f, 0xf2, 0x1e, 0xb1, 0x20, 0x6b, 0x05, 0x77, + 0x37, 0x73, 0x43, 0xce, 0xe8, 0x3c, 0xee, 0x78, 0x40, 0xfe, 0x91, 0xb8, 0x55, 0x5e, 0x97, 0xca, + 0x4e, 0xf9, 0x1c, 0xfb, 0x35, 0x59, 0x32, 0x23, 0xbd, 0x8f, 0xdb, 0x47, 0xbb, 0xdf, 0xb3, 0xab, + 0x47, 0xd7, 0xb1, 0x01, 0xbf, 0x27, 0xe6, 0x24, 0x0c, 0x8c, 0x2e, 0x9c, 0xf8, 0xed, 0x86, 0xa3, + 0xb9, 0xd6, 0x33, 0x27, 0x87, 0x9f, 0x33, 0x5e, 0xf0, 0xb6, 0xf5, 0x3e, 0xdd, 0xef, 0xc6, 0xda, + 0x1d, 0x1b, 0xd2, 0xce, 0x6f, 0x5f, 0xf1, 0x65, 0xc2, 0xa6, 0x23, 0x53, 0x0d, 0x5b, 0xb8, 0x9f, + 0x3e, 0xfb, 0xec, 0x56, 0xd0, 0x81, 0x6d, 0xbb, 0xe7, 0xa4, 0x7d, 0xb4, 0xd8, 0xa0, 0xda, 0xfc, + 0xf6, 0xbb, 0xdb, 0xea, 0x22, 0xdc, 0xbf, 0x3e, 0x25, 0x5d, 0x9c, 0x7e, 0x7e, 0x58, 0x8f, 0x6e, + 0x67, 0xec, 0x9f, 0x7f, 0x64, 0x9b, 0x1c, 0xba, 0x67, 0xb4, 0x75, 0xeb, 0xc8, 0xec, 0xce, 0x62, + 0x6d, 0x51, 0xf0, 0x92, 0xcd, 0xde, 0x3b, 0x7b, 0x7f, 0x21, 0x9f, 0xff, 0xe6, 0x70, 0xf7, 0x0b, + 0x9d, 0x43, 0xc4, 0xd7, 0xe7, 0xe1, 0xfc, 0x7f, 0xbc, 0x73, 0xcf, 0x98, 0xb0, 0x88, 0xcc, 0xe9, + 0xc1, 0x21, 0x69, 0x5f, 0x8c, 0xcd, 0xff, 0x52, 0xf2, 0xef, 0x89, 0x8d, 0x71, 0x43, 0x87, 0xbf, + 0x37, 0x7b, 0x50, 0xcc, 0xb2, 0xaf, 0xf6, 0x9d, 0x99, 0x23, 0x3b, 0xba, 0x7b, 0x7b, 0x62, 0xd3, + 0xf5, 0x86, 0x39, 0x97, 0x1b, 0xcf, 0x1c, 0x5c, 0xbf, 0x65, 0x90, 0x7c, 0xcb, 0x86, 0x29, 0x03, + 0x57, 0xcc, 0x08, 0x99, 0xff, 0x62, 0x75, 0xd0, 0x11, 0xeb, 0x6e, 0xbf, 0xc1, 0x69, 0x67, 0xba, + 0x29, 0xca, 0x1a, 0x8b, 0x8f, 0x8f, 0xbe, 0x1e, 0xb3, 0x28, 0x74, 0xc3, 0xa9, 0x21, 0xbd, 0xb7, + 0x5c, 0xf1, 0x0f, 0xaa, 0xde, 0x72, 0xca, 0x7d, 0xc6, 0xcc, 0x65, 0xd3, 0x3b, 0x57, 0x3f, 0xfb, + 0x3a, 0x59, 0x1b, 0x58, 0x13, 0xd2, 0xf4, 0xed, 0xda, 0x88, 0x83, 0xaf, 0x5d, 0x99, 0x38, 0x72, + 0x24, 0x97, 0x9f, 0x1f, 0x74, 0x22, 0xa6, 0xff, 0x85, 0xaf, 0x87, 0xfb, 0xae, 0x58, 0x3a, 0x53, + 0xf5, 0xd6, 0xdc, 0x95, 0x1d, 0x2e, 0xbf, 0xb7, 0x29, 0x9e, 0xd9, 0xb9, 0x76, 0xe2, 0xe8, 0x9b, + 0x0d, 0xdf, 0xbf, 0xdb, 0x70, 0xbb, 0xee, 0xc7, 0x2f, 0xce, 0xcf, 0x50, 0x9d, 0xfd, 0x72, 0x53, + 0xd6, 0xc8, 0x91, 0x1b, 0xd6, 0x99, 0xe3, 0x57, 0xfe, 0x52, 0x94, 0x77, 0x48, 0x33, 0xa1, 0xf8, + 0x41, 0x4e, 0x9f, 0x9e, 0x79, 0x1b, 0x18, 0xed, 0xf0, 0xeb, 0xde, 0x1e, 0x9e, 0x3a, 0xbf, 0xa0, + 0xc8, 0x82, 0x0b, 0xf1, 0x11, 0xb7, 0xf7, 0x8e, 0xf4, 0xd8, 0x74, 0xad, 0x38, 0x7d, 0x5c, 0x63, + 0x5e, 0x96, 0x61, 0xbb, 0xf6, 0xf6, 0xef, 0x6f, 0xf5, 0xdc, 0xfd, 0xf1, 0x4b, 0x41, 0x0b, 0x9f, + 0xaf, 0xf2, 0x58, 0x15, 0xde, 0x71, 0xe5, 0x8e, 0x3f, 0x7c, 0x67, 0xce, 0xdb, 0xf6, 0xd4, 0xda, + 0xf3, 0x93, 0xa2, 0x36, 0x5d, 0x8f, 0x1c, 0x7f, 0x7b, 0x12, 0x97, 0xdb, 0x60, 0xd9, 0x19, 0xf3, + 0x65, 0xe7, 0x7f, 0x67, 0x9c, 0xd7, 0x46, 0xdd, 0x98, 0x34, 0xc8, 0xfd, 0xa7, 0xcc, 0x29, 0xe6, + 0xdd, 0x83, 0x42, 0x5e, 0xfc, 0x36, 0x3d, 0x68, 0xef, 0x92, 0x0e, 0x73, 0x44, 0xf3, 0x7c, 0xb7, + 0x1b, 0xdf, 0xed, 0xd6, 0x30, 0xe3, 0xf3, 0xc8, 0x33, 0xbb, 0x23, 0x57, 0x7d, 0xe9, 0xd3, 0x75, + 0x7b, 0x63, 0x92, 0xd7, 0xb2, 0xf7, 0x16, 0x3c, 0x36, 0x6f, 0xd9, 0xe1, 0x11, 0x87, 0x88, 0x67, + 0xdc, 0xa9, 0x9e, 0x96, 0xc2, 0xa6, 0xcc, 0x97, 0x27, 0x7e, 0x9f, 0x76, 0x60, 0xdb, 0xf6, 0x91, + 0xe9, 0x6f, 0xaf, 0xca, 0xef, 0x50, 0x39, 0xaf, 0xff, 0xc9, 0x85, 0xcb, 0x7c, 0x5f, 0x39, 0x7f, + 0xaa, 0x3a, 0xe5, 0xab, 0x43, 0x6b, 0xdb, 0x5f, 0xfd, 0xbe, 0xe9, 0xd8, 0x6f, 0x4d, 0x07, 0x17, + 0x97, 0x64, 0x9e, 0x1a, 0x91, 0x37, 0xe9, 0xca, 0x13, 0xc6, 0xf4, 0x2d, 0xe7, 0x9f, 0x1d, 0x34, + 0x73, 0x65, 0x80, 0xaf, 0x5f, 0x46, 0xbb, 0x0e, 0xdd, 0x1e, 0x57, 0x45, 0x16, 0x9f, 0x7d, 0xa6, + 0x5b, 0xcc, 0xeb, 0x59, 0x0f, 0xf2, 0xde, 0x2b, 0xbf, 0x32, 0xfc, 0xca, 0xb0, 0x83, 0x9e, 0x4f, + 0x25, 0xd7, 0x45, 0x8e, 0x15, 0x2d, 0xdc, 0xf0, 0x76, 0xe0, 0x9c, 0x95, 0x97, 0x9e, 0x7e, 0xef, + 0x50, 0x57, 0xed, 0x8e, 0x07, 0xec, 0x07, 0xaa, 0xef, 0x3f, 0xdc, 0xdc, 0xbf, 0xee, 0xd7, 0x95, + 0x7e, 0x33, 0x42, 0x66, 0x7b, 0x6e, 0xca, 0xdf, 0x6f, 0x51, 0xbd, 0x5f, 0x97, 0xd6, 0xe1, 0xe7, + 0x3f, 0xa6, 0xc4, 0xf7, 0xb8, 0x94, 0x35, 0x31, 0x5b, 0xdf, 0x7f, 0xd2, 0x9d, 0x08, 0x95, 0xe5, + 0x93, 0x27, 0x3c, 0x3b, 0x97, 0x4a, 0xfc, 0xb4, 0xbd, 0x06, 0xa4, 0xed, 0xb8, 0x95, 0x6a, 0x99, + 0xf7, 0xd1, 0xa4, 0xac, 0xf3, 0xc5, 0xec, 0x94, 0xeb, 0x3d, 0x7f, 0xbc, 0x72, 0xbb, 0xb9, 0xf9, + 0xc1, 0xee, 0xcf, 0xbf, 0xa9, 0x5b, 0x58, 0x7e, 0xe8, 0xe0, 0xaa, 0x67, 0x66, 0xcc, 0x89, 0x68, + 0x7a, 0x6d, 0xa1, 0xc7, 0xf6, 0x8d, 0x3b, 0xd2, 0xcb, 0xd6, 0xbc, 0x97, 0xd5, 0xa7, 0xdf, 0x8c, + 0xea, 0x01, 0xca, 0xea, 0xb5, 0x5e, 0x9e, 0x5b, 0x9a, 0xf6, 0x2b, 0x36, 0x1c, 0xac, 0x7c, 0xee, + 0xfa, 0xc8, 0x41, 0xf1, 0x8d, 0xf9, 0xbe, 0x05, 0x67, 0xfa, 0x7f, 0x5d, 0xba, 0xdb, 0x77, 0xee, + 0xed, 0xe1, 0x7e, 0xb1, 0x3f, 0xc7, 0x74, 0x13, 0xef, 0xca, 0x2f, 0xde, 0x75, 0x7a, 0x62, 0x4c, + 0xc5, 0x2b, 0x11, 0xa7, 0x12, 0xe6, 0x87, 0x5c, 0x91, 0xbe, 0x43, 0xb6, 0x7c, 0xb9, 0xa3, 0xf3, + 0xcc, 0x99, 0xe3, 0x62, 0xe6, 0x74, 0xca, 0x1e, 0xbe, 0xfd, 0x5f, 0xb1, 0x13, 0x1b, 0xaa, 0x87, + 0xe7, 0x9f, 0x39, 0xd3, 0x21, 0x64, 0x50, 0x17, 0x79, 0xc4, 0x94, 0xe7, 0xba, 0x77, 0x0e, 0x59, + 0x1e, 0x4d, 0x82, 0xbe, 0xfb, 0xb4, 0x9a, 0xf8, 0xad, 0x9a, 0xd1, 0x33, 0xed, 0xe5, 0x0d, 0x99, + 0x55, 0x8b, 0xb6, 0xa4, 0x1d, 0xfd, 0xae, 0xf1, 0xcb, 0x80, 0x3d, 0xd7, 0x1b, 0x87, 0x5d, 0xdf, + 0xfd, 0xde, 0x92, 0x3b, 0x67, 0x96, 0x7d, 0xb3, 0xc1, 0x63, 0xc7, 0x4f, 0x9f, 0x04, 0xcd, 0x5b, + 0xb3, 0xbc, 0xe7, 0xf9, 0xbc, 0x59, 0xda, 0xeb, 0xda, 0x03, 0x79, 0x93, 0xae, 0x1d, 0x2f, 0xb6, + 0xac, 0xbf, 0x3b, 0xb2, 0x73, 0xd1, 0xf7, 0xf1, 0xda, 0x50, 0xdb, 0xf9, 0x88, 0xef, 0xa7, 0x7e, + 0xe9, 0xb1, 0x2a, 0xbd, 0x21, 0x7d, 0xcc, 0xc0, 0xdb, 0x59, 0x4a, 0xf1, 0xa6, 0xdb, 0x3f, 0x74, + 0x5e, 0xbb, 0x7b, 0xb5, 0x61, 0xe6, 0x42, 0x7b, 0x8f, 0x95, 0xab, 0xd4, 0xf5, 0x5f, 0x6e, 0xd8, + 0xfa, 0xe0, 0xfc, 0xca, 0x7b, 0x27, 0x6f, 0x1f, 0xea, 0x7b, 0xa4, 0xe1, 0xc1, 0x0b, 0x15, 0x6b, + 0xf3, 0x76, 0xbc, 0xba, 0x69, 0xf8, 0x83, 0x4d, 0x2b, 0x3d, 0xa3, 0xdf, 0x9f, 0x19, 0x39, 0x55, + 0x17, 0xa4, 0xaa, 0xe9, 0xe5, 0xd1, 0xe1, 0x66, 0x17, 0x6d, 0x7c, 0x98, 0x47, 0xcf, 0x89, 0xe3, + 0x2d, 0xc5, 0xdf, 0x6f, 0x1e, 0x9c, 0x57, 0xf7, 0xdb, 0xe4, 0xf8, 0x19, 0x11, 0x63, 0x46, 0x6e, + 0x9a, 0x78, 0xb0, 0xe9, 0x54, 0xf2, 0xb1, 0xef, 0xaf, 0xb4, 0xbb, 0x77, 0x68, 0xcb, 0xa1, 0x8b, + 0xa7, 0x66, 0xce, 0xfb, 0x70, 0x99, 0x9f, 0xf5, 0xe3, 0x79, 0xdd, 0xbc, 0xdf, 0x58, 0x55, 0xbc, + 0x6f, 0xe6, 0xf6, 0x98, 0x97, 0xdc, 0xba, 0x8d, 0x8c, 0xef, 0x14, 0x99, 0xef, 0xd1, 0xb3, 0x43, + 0xff, 0x3d, 0x1a, 0x5f, 0xdf, 0x59, 0xf6, 0x41, 0xd5, 0xa6, 0x29, 0xe9, 0x6b, 0xdd, 0x86, 0x4c, + 0x6a, 0xaa, 0x4d, 0xca, 0x3c, 0x38, 0x6d, 0x5a, 0xe4, 0x97, 0x4f, 0x56, 0x77, 0x6b, 0x1c, 0xf5, + 0x91, 0xef, 0x7b, 0x6f, 0xac, 0xeb, 0xb0, 0xec, 0xdc, 0x0f, 0xe9, 0xa4, 0xf3, 0xfd, 0x41, 0x3d, + 0x87, 0x9f, 0xca, 0xcc, 0x7c, 0xf5, 0xf0, 0xa4, 0xb4, 0xd3, 0x89, 0xdf, 0x0f, 0xea, 0x98, 0xd2, + 0x34, 0x65, 0xe8, 0x0b, 0xa7, 0x42, 0x96, 0x66, 0x1e, 0x0a, 0x3a, 0x11, 0x32, 0x6f, 0xce, 0x63, + 0xe1, 0xcb, 0xb6, 0xa7, 0x3e, 0xb9, 0xbd, 0x61, 0xa1, 0x74, 0xd5, 0x99, 0xba, 0x51, 0x53, 0x6e, + 0x5f, 0x4d, 0xc8, 0xda, 0xfd, 0x41, 0xbe, 0x65, 0x61, 0xe1, 0xf3, 0x69, 0xab, 0xf4, 0x7d, 0xfd, + 0x22, 0x1a, 0xba, 0x79, 0x7a, 0xac, 0x95, 0xa9, 0xd2, 0x73, 0xdb, 0xf7, 0xcf, 0x0a, 0x5e, 0xf6, + 0xde, 0xa4, 0xfa, 0x05, 0x3b, 0x2c, 0xef, 0xac, 0x5e, 0xd8, 0xd9, 0xf6, 0xd9, 0x1c, 0x6d, 0xf7, + 0x5b, 0x07, 0x77, 0x5c, 0xfc, 0xa5, 0x6e, 0xde, 0x9b, 0xb5, 0x0f, 0xce, 0x67, 0x9e, 0xb9, 0x72, + 0xbd, 0x9b, 0xff, 0x8e, 0xef, 0x3f, 0xf3, 0x79, 0xaf, 0xee, 0xbe, 0x7a, 0xce, 0x8c, 0xfe, 0xfd, + 0x17, 0x6e, 0x9a, 0x52, 0x5c, 0xa7, 0xfa, 0x34, 0xe7, 0x60, 0x87, 0xbb, 0xa6, 0x2b, 0xf1, 0xfd, + 0xfe, 0xf5, 0x60, 0xe2, 0xe4, 0x73, 0x59, 0x79, 0x5b, 0xbe, 0x9c, 0x32, 0xbc, 0xf1, 0xd7, 0x34, + 0xcf, 0xde, 0xbf, 0x5b, 0x22, 0x27, 0x6c, 0xf5, 0xdc, 0xb0, 0xf1, 0x4d, 0xbf, 0x95, 0x37, 0xe6, + 0xf4, 0x3f, 0xf4, 0xf4, 0x62, 0xd5, 0x83, 0x12, 0x4a, 0xe8, 0xec, 0xce, 0xed, 0xed, 0x36, 0xf3, + 0x44, 0xa1, 0x38, 0x7e, 0xe7, 0xb3, 0x1e, 0x9e, 0x6b, 0xce, 0x49, 0x0f, 0xee, 0xfe, 0x45, 0x32, + 0xaf, 0x7c, 0x93, 0xfb, 0xa0, 0x80, 0x59, 0xbe, 0x8f, 0x0d, 0xde, 0xda, 0xee, 0x68, 0xbf, 0x05, + 0x3e, 0xaf, 0xcc, 0x3a, 0x29, 0x1f, 0x72, 0xfd, 0x7b, 0xcf, 0x4e, 0xf7, 0xc6, 0xca, 0x4e, 0x2f, + 0x4e, 0xf3, 0x5a, 0x11, 0xe2, 0xe5, 0x3d, 0x22, 0xe1, 0x99, 0x20, 0xf5, 0xdb, 0xc5, 0x4f, 0xd4, + 0xef, 0x4f, 0x78, 0xf2, 0xad, 0x89, 0x5d, 0xba, 0xb0, 0x4f, 0xf4, 0xe8, 0xac, 0xf7, 0x5e, 0xdf, + 0xe9, 0xda, 0xe8, 0xd7, 0x03, 0xdf, 0xbf, 0xb0, 0xfb, 0xf1, 0x9c, 0x2d, 0xbf, 0xf9, 0xf5, 0xba, + 0xb5, 0xef, 0xb1, 0xdf, 0xab, 0xb9, 0xf6, 0x1b, 0xd5, 0xef, 0x2a, 0xc6, 0x27, 0x2d, 0xec, 0x10, + 0x35, 0xdc, 0xdf, 0xbf, 0xd9, 0xd0, 0x2d, 0x60, 0xeb, 0xfc, 0xc9, 0x1d, 0x27, 0xd7, 0x0f, 0x8c, + 0x1c, 0x18, 0x7f, 0xb1, 0xcf, 0x02, 0xdd, 0xa9, 0x7e, 0xfb, 0x17, 0xcd, 0xef, 0xeb, 0x7d, 0xf7, + 0xd3, 0xfe, 0xe6, 0x5f, 0xa3, 0xa2, 0x67, 0xcf, 0xf4, 0x8e, 0xaa, 0xed, 0x9b, 0xfa, 0x8c, 0x38, + 0x25, 0x2b, 0x62, 0x54, 0xc7, 0x8c, 0xde, 0xcb, 0xff, 0x5d, 0xd4, 0xeb, 0xec, 0x17, 0x11, 0xe1, + 0x81, 0x6b, 0x45, 0x3d, 0x87, 0x7d, 0x3e, 0xd3, 0xb0, 0xf4, 0x9b, 0x8f, 0xc2, 0x8e, 0xe7, 0xfd, + 0xfc, 0x74, 0x7b, 0xd1, 0x77, 0xaa, 0xbc, 0x1f, 0xaa, 0x9e, 0x5a, 0xbb, 0xe0, 0xbd, 0xee, 0xd7, + 0x7b, 0x36, 0xab, 0x43, 0xfe, 0xb5, 0xbf, 0x5b, 0xe6, 0xc0, 0x24, 0xe5, 0xaa, 0xee, 0x2f, 0x30, + 0x57, 0x5e, 0x55, 0x76, 0x55, 0xdd, 0xee, 0xa0, 0x2d, 0xdb, 0xac, 0x09, 0xde, 0x76, 0xfe, 0xc9, + 0x1e, 0xf7, 0xd9, 0x78, 0x4d, 0xb4, 0xd7, 0xb8, 0x90, 0x71, 0x41, 0x8d, 0xba, 0x8f, 0x26, 0x7c, + 0x11, 0xfa, 0xdb, 0xbe, 0xd7, 0xf4, 0xbd, 0xdf, 0xfa, 0xa0, 0xf8, 0xb5, 0x79, 0xb5, 0xe3, 0x32, + 0x7e, 0xfc, 0x7d, 0x7c, 0x97, 0x67, 0x37, 0x94, 0x9c, 0x7b, 0xfa, 0xd5, 0x89, 0x8b, 0x9f, 0x0a, + 0x9a, 0x30, 0x78, 0x50, 0x70, 0x69, 0xc7, 0x9b, 0x25, 0xcf, 0x7f, 0xf3, 0x7a, 0xdc, 0x94, 0x97, + 0xce, 0x95, 0x4d, 0x1d, 0xf0, 0xf1, 0xa0, 0x7f, 0xfb, 0xc8, 0x02, 0xca, 0x8f, 0x64, 0x76, 0x9d, + 0x54, 0x51, 0xba, 0xba, 0xcc, 0xd4, 0x65, 0xf1, 0x64, 0xc9, 0xaa, 0x03, 0x2f, 0xec, 0x3d, 0xf0, + 0x20, 0x7f, 0x47, 0x68, 0x4d, 0xc1, 0x14, 0xf3, 0x8b, 0x45, 0x91, 0x4d, 0xe7, 0x0b, 0x9b, 0xaa, + 0x7e, 0xca, 0xdb, 0x32, 0x3b, 0x3f, 0x77, 0xe2, 0xd5, 0x7f, 0x65, 0xf7, 0x4c, 0x15, 0xe7, 0xdc, + 0x8e, 0xec, 0x95, 0xf9, 0xe1, 0x54, 0xd9, 0x98, 0x82, 0x0e, 0xfd, 0x47, 0x07, 0xbf, 0x6f, 0x63, + 0x7f, 0xda, 0x35, 0x38, 0xeb, 0xdd, 0x53, 0x27, 0xc6, 0x8e, 0xfd, 0xec, 0xb2, 0x4d, 0xe9, 0xb6, + 0xcd, 0x7e, 0x31, 0x67, 0x9e, 0xe5, 0xd4, 0x41, 0x26, 0xb1, 0xc3, 0x9b, 0x1d, 0x07, 0xa4, 0x3d, + 0x99, 0x6c, 0x5d, 0xf8, 0xfc, 0xa4, 0x41, 0xe7, 0xc7, 0xdc, 0x4f, 0x0e, 0xf2, 0x3c, 0x98, 0x34, + 0xfc, 0x93, 0x45, 0x03, 0xab, 0xbf, 0x7b, 0x27, 0x7e, 0xcf, 0x6b, 0xd5, 0x09, 0xd2, 0x1b, 0x1f, + 0xc6, 0x19, 0x93, 0xef, 0x98, 0xa7, 0xab, 0x76, 0xc5, 0x7c, 0x1d, 0x66, 0x36, 0xb6, 0xcb, 0x18, + 0x6f, 0x4a, 0xbc, 0xa2, 0x8d, 0x7d, 0x79, 0xee, 0x13, 0xe9, 0x37, 0xb3, 0x53, 0x86, 0x3c, 0x2d, + 0xb6, 0x0f, 0x7b, 0x7e, 0x47, 0xf4, 0xd0, 0x4f, 0x4e, 0x7a, 0xa6, 0xdd, 0xad, 0x9d, 0x9b, 0xda, + 0x77, 0xdd, 0xf6, 0x94, 0x72, 0xff, 0x4b, 0x83, 0x77, 0x4e, 0xf9, 0x66, 0xf8, 0xa5, 0x3e, 0x0d, + 0xff, 0x62, 0xd2, 0x2e, 0x3c, 0x6b, 0xbb, 0x36, 0x3b, 0x63, 0xf5, 0x8b, 0x1b, 0x47, 0xfe, 0xb2, + 0x30, 0x7c, 0x44, 0x8f, 0x3f, 0xdc, 0x46, 0x15, 0xc5, 0x0d, 0x7f, 0xee, 0x03, 0x7d, 0xc1, 0xf7, + 0xbd, 0x3a, 0x57, 0x5c, 0xfc, 0x7d, 0xdc, 0x27, 0x97, 0x36, 0x1e, 0xf9, 0xf5, 0xf2, 0xf8, 0x77, + 0xce, 0x5c, 0x89, 0xfa, 0x68, 0xc4, 0x8f, 0xcd, 0x67, 0xf2, 0x7e, 0xd8, 0x6a, 0x0f, 0xab, 0x9f, + 0xec, 0xe3, 0x7e, 0x5d, 0x6d, 0x8d, 0xfc, 0xb5, 0x9e, 0x69, 0x77, 0xf5, 0xad, 0x15, 0x43, 0xaf, + 0xb1, 0x8d, 0xa3, 0x1b, 0xf4, 0x97, 0xea, 0x7f, 0xba, 0x56, 0x79, 0xfc, 0x97, 0xf7, 0x23, 0xe6, + 0xfc, 0x9c, 0x33, 0xe2, 0xb3, 0x07, 0x8f, 0x6d, 0xbd, 0x71, 0xff, 0xe8, 0xb1, 0xaf, 0x9a, 0x5f, + 0xc9, 0x5f, 0xc1, 0x0d, 0x91, 0xae, 0x6d, 0xea, 0xa4, 0xd0, 0xfd, 0x71, 0x7a, 0x72, 0xe7, 0x7b, + 0x2b, 0xf6, 0x98, 0xee, 0x8e, 0xd8, 0xf0, 0xfc, 0x6d, 0xf2, 0x93, 0xe5, 0xd6, 0xee, 0x19, 0x53, + 0x6f, 0xcc, 0x7c, 0x46, 0x7d, 0x33, 0x7e, 0x58, 0xfb, 0x46, 0xcf, 0x98, 0x25, 0xbf, 0x1d, 0x0c, + 0x7e, 0xfb, 0xf7, 0x79, 0x4b, 0x9b, 0xee, 0x0c, 0xe2, 0xbe, 0x3e, 0x53, 0x36, 0x92, 0x3d, 0xbd, + 0xad, 0xf7, 0xb0, 0xb3, 0xf7, 0x5f, 0xf2, 0xfd, 0x36, 0xfa, 0x72, 0x9f, 0xf3, 0xe3, 0x7e, 0xdb, + 0x71, 0xe1, 0xa3, 0x95, 0x2f, 0x7f, 0xf7, 0x5b, 0xd7, 0x63, 0xe7, 0x7a, 0x0f, 0xf8, 0xe1, 0x54, + 0x9e, 0xfc, 0xf4, 0xc9, 0xb5, 0xb6, 0xeb, 0x27, 0xae, 0x9f, 0xfe, 0xf8, 0x9b, 0x90, 0x4d, 0xd3, + 0xea, 0x32, 0x57, 0x4b, 0x8e, 0xae, 0x3a, 0xfc, 0xf4, 0xf1, 0x2b, 0xc5, 0xb9, 0xc7, 0x54, 0x9d, + 0x46, 0x7e, 0x39, 0xaa, 0x59, 0xb1, 0x67, 0xf9, 0x92, 0xee, 0x7b, 0xcf, 0x6a, 0xa7, 0x7c, 0x15, + 0x68, 0x4c, 0xdc, 0x3d, 0x6c, 0xe8, 0xa1, 0x2f, 0x96, 0x46, 0xfd, 0xb1, 0xeb, 0xf8, 0xf4, 0xb7, + 0x6a, 0xdb, 0x37, 0x2c, 0x3d, 0x38, 0xf0, 0xc3, 0x35, 0x07, 0x16, 0x7c, 0xb9, 0x72, 0xdf, 0xfe, + 0x17, 0xf6, 0xee, 0xf7, 0x6e, 0x7f, 0xf3, 0x90, 0xd9, 0xa3, 0xf4, 0xeb, 0xd9, 0x05, 0xb1, 0x47, + 0x6a, 0x8f, 0x77, 0x3a, 0x2c, 0xfe, 0x34, 0x64, 0xe1, 0x87, 0xcb, 0x8c, 0x55, 0x05, 0xf7, 0x27, + 0x2e, 0x0a, 0x36, 0x85, 0x2e, 0xfe, 0x49, 0xf3, 0xf8, 0xb2, 0x77, 0xa3, 0x97, 0xbf, 0x32, 0x36, + 0xfd, 0xfd, 0xa5, 0xca, 0x9f, 0x6f, 0x2d, 0xb9, 0x58, 0xf1, 0xe5, 0xca, 0x1d, 0x5f, 0xdd, 0x5d, + 0x31, 0xe5, 0x83, 0x23, 0xcb, 0x23, 0x1f, 0x5b, 0xf6, 0x46, 0xd3, 0xa4, 0x37, 0xab, 0xb7, 0x14, + 0xa9, 0x5e, 0x9d, 0xe8, 0xfe, 0xd8, 0xeb, 0x3d, 0xb7, 0x5b, 0x5f, 0xbb, 0x7d, 0xf4, 0xdf, 0xf3, + 0x5e, 0xea, 0x65, 0x98, 0x3b, 0xe0, 0x39, 0x8f, 0xf9, 0x3e, 0xdf, 0x8f, 0x5a, 0x70, 0xe4, 0xe5, + 0x9c, 0x39, 0x15, 0x6f, 0x5c, 0x7d, 0xd9, 0xf4, 0xfb, 0xb7, 0x2f, 0x49, 0x12, 0xa7, 0x57, 0xee, + 0xed, 0xb6, 0x65, 0xc6, 0x6b, 0x63, 0x2b, 0xa7, 0x67, 0xf8, 0x7e, 0x5e, 0xd1, 0xa5, 0xe6, 0xca, + 0xb4, 0x73, 0x67, 0x8f, 0xce, 0x5c, 0x7c, 0x28, 0x7d, 0xd6, 0xe0, 0x77, 0xc7, 0xbc, 0xd8, 0x31, + 0xb0, 0xef, 0xec, 0x6f, 0x4a, 0x7c, 0xd6, 0x5e, 0xaa, 0x5b, 0xb5, 0x86, 0xd9, 0xf6, 0xca, 0x3a, + 0x9b, 0xe4, 0xf0, 0xfb, 0xab, 0x0b, 0xef, 0x6d, 0xf8, 0xa5, 0xac, 0xfc, 0xc3, 0x1e, 0x7e, 0x03, + 0x3e, 0x28, 0x5a, 0xef, 0xb7, 0xfe, 0x83, 0xbd, 0x4f, 0xbd, 0x77, 0x73, 0x5a, 0xe0, 0xbb, 0x4f, + 0xff, 0xa2, 0x5f, 0xfd, 0xfc, 0x90, 0x09, 0xef, 0x7c, 0xd2, 0x3f, 0x66, 0xd5, 0xdd, 0x1e, 0x7b, + 0xde, 0xec, 0x1b, 0x7b, 0xfb, 0xed, 0xf2, 0x07, 0xeb, 0xde, 0xda, 0xf9, 0xca, 0x1b, 0x5b, 0xf6, + 0x8c, 0xaf, 0xdb, 0x2c, 0x7d, 0xfc, 0xc7, 0x8f, 0x8d, 0xef, 0xed, 0xfc, 0x64, 0xfa, 0xd7, 0x2f, + 0x6d, 0xfa, 0xfa, 0x5b, 0xf9, 0x47, 0xed, 0x36, 0xf6, 0xdb, 0x98, 0xd8, 0x2e, 0xb3, 0xe6, 0xe5, + 0xac, 0x21, 0xdb, 0x4f, 0x29, 0xb3, 0xb7, 0x75, 0xb0, 0x3c, 0xb7, 0x35, 0xed, 0x8e, 0xf4, 0xd3, + 0x85, 0xcb, 0x7b, 0xee, 0x38, 0x3f, 0x67, 0xf3, 0x67, 0x41, 0x17, 0x67, 0x7c, 0x3e, 0x7c, 0xd4, + 0xd9, 0x9d, 0xd5, 0xe1, 0xd7, 0x70, 0xfe, 0x6f, 0xdd, 0x61, 0xcf, 0x5a, 0xe7, 0xb9, 0xef, 0x65, + 0xbf, 0x2d, 0x1f, 0xfe, 0xba, 0x20, 0xf3, 0x95, 0x61, 0xbd, 0xcf, 0xdf, 0x08, 0x7b, 0x2a, 0xef, + 0xb9, 0x73, 0x6f, 0x9c, 0x8a, 0xfc, 0xf4, 0xcb, 0xcd, 0x9a, 0xeb, 0xff, 0x96, 0x0d, 0x9a, 0x53, + 0xf4, 0xd9, 0xc5, 0xb1, 0xa7, 0x44, 0x2f, 0x8a, 0xac, 0x27, 0x3f, 0xdf, 0x7a, 0x2b, 0xf7, 0xf4, + 0x77, 0x17, 0x2f, 0x4c, 0x7c, 0x3a, 0x63, 0x8c, 0x62, 0x68, 0xca, 0xe3, 0xc3, 0x56, 0x36, 0xbc, + 0x63, 0x68, 0x6a, 0x52, 0xac, 0xf4, 0x37, 0xad, 0xbf, 0x3b, 0xee, 0xc2, 0x0b, 0xb5, 0xfb, 0xec, + 0x5f, 0xbd, 0xf7, 0xc1, 0xf3, 0x25, 0xb2, 0xd8, 0xaf, 0x0f, 0x17, 0xa9, 0x97, 0x7e, 0x30, 0xb5, + 0x38, 0xa4, 0x7d, 0x60, 0x87, 0xfe, 0xab, 0x3f, 0xf9, 0xe3, 0xc5, 0xc0, 0xba, 0x15, 0x9d, 0x8e, + 0x34, 0x74, 0x7f, 0x6b, 0xfc, 0x02, 0x53, 0xcd, 0x5e, 0x66, 0xbd, 0x6c, 0x72, 0xc2, 0xfe, 0x55, + 0x61, 0x1f, 0x46, 0x07, 0xce, 0xdf, 0xf7, 0x2f, 0xaf, 0x7e, 0xf6, 0x2d, 0x9b, 0x5e, 0x24, 0x75, + 0xfa, 0x94, 0xc8, 0x9c, 0x57, 0xae, 0x3e, 0x27, 0x9f, 0xf5, 0xec, 0x8d, 0x4b, 0xcf, 0xfc, 0xf0, + 0xca, 0x8b, 0x59, 0xb3, 0x5f, 0x3c, 0xfa, 0x5d, 0xdf, 0x8b, 0x9b, 0x8f, 0x2c, 0x18, 0x34, 0x7c, + 0xe2, 0xd3, 0x9a, 0xfe, 0x3f, 0xd7, 0x2b, 0x66, 0xa7, 0x66, 0x4c, 0xbc, 0x6c, 0xbc, 0x76, 0xda, + 0xe7, 0xee, 0xe0, 0xcf, 0xb3, 0x6f, 0x04, 0xdf, 0x7d, 0xd3, 0xf2, 0xca, 0xca, 0x3d, 0xc3, 0x95, + 0x06, 0xed, 0xa5, 0x15, 0xc3, 0x06, 0x4d, 0x4d, 0x2c, 0xba, 0xf3, 0xd5, 0x6f, 0xb2, 0xc5, 0xdf, + 0x18, 0xdf, 0xfb, 0x77, 0xc1, 0xfd, 0xda, 0xc0, 0x5e, 0x2b, 0xeb, 0x92, 0xe7, 0x75, 0xfb, 0x24, + 0x78, 0xe5, 0xb2, 0xc0, 0x2f, 0xbb, 0x6b, 0xa7, 0xae, 0xda, 0xf6, 0x20, 0xe1, 0x71, 0x71, 0x0c, + 0x53, 0xae, 0x68, 0x5c, 0xb0, 0x68, 0x8d, 0xa5, 0xe1, 0xf7, 0xd7, 0xfd, 0x33, 0x9e, 0xe9, 0xb6, + 0xa6, 0x7f, 0x46, 0xcf, 0x27, 0xaa, 0x3e, 0x7e, 0xe9, 0xcd, 0xdf, 0x8f, 0xfb, 0x4f, 0x38, 0x92, + 0xbb, 0xfe, 0xc0, 0x9a, 0x76, 0x3b, 0xa7, 0x7a, 0x7c, 0x2f, 0xfd, 0x82, 0x9d, 0x39, 0x6a, 0x55, + 0xf1, 0xb1, 0x2b, 0x41, 0x1d, 0x3f, 0x69, 0x5c, 0xbb, 0xf5, 0xd9, 0xa4, 0x0e, 0x17, 0xa2, 0x8e, + 0xee, 0xfe, 0x71, 0x56, 0xce, 0x94, 0x8a, 0x8b, 0x2f, 0x1c, 0xd4, 0xfb, 0x7e, 0x31, 0xd1, 0x92, + 0x77, 0xd0, 0xa7, 0xdd, 0x5b, 0xe3, 0x37, 0x66, 0x7f, 0x35, 0x5a, 0xf2, 0x55, 0x8f, 0x33, 0x5b, + 0x57, 0x25, 0x99, 0x8b, 0xaa, 0x7f, 0xbb, 0x7f, 0x9c, 0xab, 0xfa, 0xd5, 0x96, 0x32, 0x65, 0xe8, + 0xd9, 0xde, 0x9d, 0x7d, 0x3f, 0xed, 0x3e, 0xf0, 0x63, 0x77, 0xa3, 0x66, 0x75, 0xcd, 0xf5, 0xbd, + 0x41, 0xf2, 0xca, 0xb7, 0xa7, 0x7d, 0x5b, 0xd3, 0xa9, 0x8f, 0xfd, 0xd4, 0xd4, 0xe0, 0x63, 0x65, + 0x0b, 0x17, 0x17, 0x3e, 0xd9, 0xd8, 0x4f, 0xfd, 0xbb, 0xdb, 0x8c, 0xd7, 0xaa, 0x6c, 0x0b, 0xf5, + 0xfd, 0x2b, 0x7b, 0x2c, 0xce, 0xb8, 0xb6, 0xd9, 0xcc, 0xa6, 0xcb, 0xef, 0x7a, 0xf4, 0xec, 0x32, + 0x70, 0xcd, 0x85, 0x77, 0x6f, 0x1e, 0xd9, 0xd6, 0xbc, 0xe8, 0xc2, 0xd5, 0xf8, 0xd0, 0xad, 0x2f, + 0xa5, 0xbf, 0xde, 0xd1, 0x7e, 0xb5, 0x7b, 0xb1, 0x78, 0xdc, 0x0d, 0xcb, 0xf6, 0xfd, 0x49, 0xfa, + 0xf3, 0xdf, 0xde, 0xab, 0x30, 0x8c, 0x89, 0xfb, 0x71, 0x48, 0x5e, 0xff, 0x55, 0xcb, 0x8f, 0xcf, + 0xf8, 0xea, 0xde, 0xae, 0x88, 0xec, 0x8e, 0x93, 0xe6, 0xb4, 0x2b, 0xa9, 0x1f, 0xd9, 0xfb, 0xe0, + 0x88, 0xef, 0x53, 0x36, 0x24, 0xa7, 0x73, 0xc6, 0x3b, 0x0d, 0xd5, 0x4f, 0x6d, 0x78, 0xb9, 0x72, + 0x7c, 0x40, 0xef, 0xeb, 0x01, 0x92, 0xe9, 0xc6, 0xbb, 0x3b, 0xa2, 0xbb, 0xbf, 0xd1, 0xf5, 0xa7, + 0x27, 0x55, 0xaf, 0x0e, 0x29, 0x8b, 0x79, 0xf9, 0xe2, 0xa9, 0x0f, 0x9f, 0x1e, 0x51, 0x73, 0xe0, + 0xda, 0xb3, 0x1f, 0xf7, 0x1b, 0xf2, 0xc3, 0xd1, 0x51, 0x09, 0x29, 0x53, 0x6a, 0xb8, 0xab, 0x8f, + 0x7f, 0x93, 0xd9, 0xaf, 0x6b, 0xfe, 0xd9, 0x17, 0xe3, 0x3d, 0xf7, 0x85, 0xfd, 0xf4, 0x63, 0xf1, + 0xfc, 0xf9, 0xd3, 0x35, 0xd7, 0x56, 0x9c, 0xa8, 0x1a, 0x7c, 0x6f, 0xe3, 0xf4, 0xfa, 0xa1, 0xcf, + 0xf5, 0xcd, 0xe8, 0xd9, 0xf7, 0xbd, 0x05, 0x9e, 0x33, 0x9e, 0x7c, 0xba, 0xf0, 0x8a, 0xcf, 0xec, + 0x5d, 0xb2, 0x2d, 0x7d, 0xdf, 0x2d, 0xf8, 0xcc, 0xf8, 0xfd, 0x6a, 0xf7, 0xfb, 0xb3, 0x77, 0x75, + 0x4c, 0xec, 0xa1, 0xff, 0xf0, 0xb7, 0x64, 0x6b, 0x98, 0x72, 0xc2, 0xed, 0x39, 0x2b, 0xda, 0x2f, + 0xab, 0x0e, 0xde, 0x59, 0xc6, 0xbc, 0x72, 0xe6, 0x89, 0xb2, 0xc6, 0xfd, 0x03, 0x6a, 0x2d, 0x1b, + 0x42, 0x8f, 0x3d, 0x10, 0xd5, 0xe6, 0xc6, 0xd8, 0xde, 0xf9, 0x7d, 0xd9, 0xa8, 0xa0, 0x41, 0xda, + 0x3e, 0x93, 0x46, 0xae, 0x5c, 0xf6, 0xca, 0x0f, 0xdd, 0x6e, 0xde, 0x1a, 0x98, 0xf7, 0xb8, 0xfb, + 0x6f, 0xa7, 0xa6, 0xb0, 0x3f, 0x66, 0x1e, 0x9d, 0xff, 0xdc, 0xf9, 0x8f, 0x7f, 0xd9, 0xed, 0x39, + 0x3f, 0x75, 0xf2, 0x96, 0x9f, 0x7a, 0x67, 0x93, 0xf8, 0x33, 0x75, 0x3b, 0xba, 0xee, 0xa8, 0xbc, + 0xd0, 0xf3, 0x67, 0xc3, 0x98, 0xa1, 0x0b, 0x94, 0x27, 0xef, 0x8d, 0x7e, 0x2d, 0x77, 0x85, 0xc4, + 0xe3, 0xb3, 0x77, 0x3f, 0xfb, 0x5c, 0xb4, 0xeb, 0xf4, 0x07, 0x9b, 0x0b, 0x23, 0x3a, 0xc8, 0x3c, + 0xd3, 0x9e, 0x28, 0x49, 0x7e, 0xed, 0x9d, 0xc3, 0x3d, 0xb8, 0x4f, 0x5e, 0x98, 0xdd, 0xbe, 0xdd, + 0x57, 0xdf, 0x97, 0x2e, 0x52, 0x9c, 0xf9, 0x5a, 0xbb, 0x7e, 0xe7, 0x9a, 0xc8, 0xc7, 0xdb, 0xc7, + 0x57, 0xbc, 0x33, 0xa1, 0xdb, 0xe9, 0xbd, 0xb6, 0xe7, 0xd9, 0xc9, 0x22, 0x45, 0xc9, 0x91, 0x0d, + 0xcd, 0x07, 0xc6, 0xef, 0x7f, 0x7d, 0xd8, 0xea, 0x9b, 0xca, 0xeb, 0x81, 0xcb, 0x12, 0x1e, 0x7c, + 0xd0, 0x67, 0x6d, 0x5c, 0xfb, 0x51, 0x87, 0x26, 0x0c, 0xfc, 0x55, 0x7a, 0xf8, 0xe6, 0x4b, 0x63, + 0xce, 0x99, 0xd5, 0xf3, 0xc6, 0xde, 0x8d, 0x69, 0xb8, 0xa7, 0x9f, 0x34, 0x38, 0x66, 0x71, 0x97, + 0xf0, 0x34, 0xf5, 0xc6, 0xb3, 0xbf, 0xbc, 0x76, 0xf2, 0xf3, 0x8f, 0xee, 0xed, 0xfd, 0xc9, 0x3b, + 0xee, 0xcd, 0xb9, 0x8f, 0xdf, 0xf0, 0xcd, 0x7c, 0x33, 0x29, 0xc7, 0x23, 0xea, 0xf5, 0xc1, 0x3b, + 0x67, 0x76, 0x8f, 0xf8, 0x76, 0xd9, 0xa2, 0x57, 0x7b, 0x85, 0x86, 0x36, 0xa7, 0xa8, 0xd3, 0x3f, + 0x7d, 0x75, 0x45, 0xc3, 0xf9, 0xfb, 0x73, 0x47, 0x8e, 0xf3, 0x0b, 0xff, 0x3e, 0x60, 0xe2, 0xda, + 0x88, 0xd0, 0xc3, 0xed, 0xe7, 0x24, 0xbe, 0xef, 0xd6, 0xff, 0x4a, 0xdc, 0xf6, 0x19, 0xd3, 0x98, + 0xcb, 0x17, 0x17, 0x4e, 0xf8, 0xd7, 0x88, 0x3b, 0x8f, 0x25, 0xfe, 0xf4, 0xec, 0x83, 0x9b, 0x43, + 0xa2, 0xab, 0xf3, 0xa7, 0x4b, 0xbb, 0x9e, 0x88, 0x1e, 0x6d, 0xde, 0xfb, 0xf2, 0xe1, 0x75, 0x53, + 0x7a, 0xaf, 0x3d, 0x72, 0x72, 0x6a, 0x4c, 0x64, 0xe1, 0x17, 0xea, 0x91, 0xe5, 0x13, 0x5e, 0xfa, + 0x68, 0xcf, 0x81, 0x5f, 0x4f, 0x3e, 0xfb, 0xc4, 0xc9, 0xa2, 0xef, 0xdf, 0xdc, 0xe8, 0x75, 0xdb, + 0xbf, 0x4b, 0xfd, 0x80, 0x35, 0x93, 0xa6, 0x3d, 0x76, 0x30, 0xe7, 0xd4, 0xfb, 0x13, 0x7d, 0x37, + 0x7d, 0xba, 0xfb, 0xcd, 0x11, 0xa2, 0x29, 0x7b, 0xfb, 0x2c, 0x5f, 0xdb, 0x5c, 0xa1, 0xea, 0xf0, + 0xea, 0x0f, 0x11, 0xab, 0x22, 0xbc, 0xe7, 0x07, 0x0d, 0x2e, 0x9c, 0x6d, 0x0b, 0x78, 0x2f, 0xfa, + 0xec, 0xb8, 0xdd, 0xba, 0xa2, 0xf3, 0xba, 0x25, 0xc7, 0x3f, 0x4d, 0xf4, 0x94, 0x4c, 0xbb, 0xb1, + 0x71, 0xeb, 0x95, 0xa5, 0x6f, 0xfb, 0x24, 0xbe, 0xd0, 0x79, 0x63, 0x68, 0x97, 0xd8, 0x63, 0xd1, + 0x96, 0x3f, 0x0a, 0x9f, 0x0d, 0xf9, 0xe9, 0xdb, 0x3b, 0x5f, 0x0c, 0xb6, 0x2f, 0x7c, 0xf7, 0x50, + 0xcd, 0xda, 0x27, 0x4b, 0xe5, 0x87, 0x27, 0xdb, 0x3e, 0x1d, 0xbd, 0xe4, 0xbc, 0xbb, 0xf4, 0x26, + 0xce, 0xff, 0x65, 0x06, 0x8f, 0x89, 0xba, 0xd1, 0xbe, 0xbf, 0x6e, 0x1b, 0xec, 0xf9, 0xea, 0xe3, + 0x7b, 0x0a, 0x3c, 0x16, 0x34, 0xe6, 0x16, 0xf7, 0x7a, 0x67, 0xcc, 0x4f, 0x6f, 0x2f, 0x1d, 0xbb, + 0x22, 0xac, 0xf2, 0x5b, 0xdf, 0xd5, 0x5b, 0xcf, 0x4d, 0xea, 0xf2, 0xd3, 0x37, 0x17, 0x2b, 0xcf, + 0x1c, 0x7b, 0x25, 0x38, 0xe9, 0x63, 0xcf, 0xcf, 0xca, 0x37, 0x4e, 0xf1, 0x08, 0xd9, 0xfa, 0xe3, + 0xc2, 0x27, 0x3e, 0xaf, 0x1a, 0xab, 0xf8, 0xe4, 0x89, 0x5b, 0x4c, 0x4d, 0xae, 0x65, 0xdc, 0xa7, + 0xb7, 0xcf, 0xc7, 0xec, 0x9c, 0xf9, 0xef, 0x13, 0x67, 0x3b, 0xfd, 0x52, 0xff, 0x5d, 0xc1, 0xe0, + 0x2d, 0x27, 0x1a, 0xbf, 0x9a, 0x75, 0x7c, 0xc6, 0xd0, 0xea, 0xfc, 0xc7, 0x6a, 0xd7, 0xe4, 0x8d, + 0x9d, 0x7c, 0x2f, 0xf3, 0xc1, 0xd5, 0xfd, 0x59, 0x73, 0x06, 0x8d, 0x10, 0xf9, 0x9f, 0xc9, 0x97, + 0x8e, 0x19, 0xf3, 0x4c, 0xbb, 0xa6, 0xdf, 0x7c, 0x64, 0xf3, 0xf6, 0x31, 0x85, 0xfd, 0x46, 0x29, + 0x72, 0x92, 0xea, 0x63, 0xd8, 0x6f, 0x4a, 0xc6, 0xd9, 0xdf, 0x3a, 0x5a, 0xef, 0x16, 0x95, 0x70, + 0x42, 0x32, 0xe0, 0xc1, 0x2c, 0x9f, 0x63, 0x79, 0x5b, 0xbc, 0xde, 0x69, 0x5a, 0xb3, 0xa5, 0x57, + 0x7e, 0xf5, 0x26, 0xd3, 0xc9, 0xfd, 0xdb, 0xbf, 0x35, 0xde, 0xdb, 0xb1, 0xfe, 0x72, 0xfe, 0xe9, + 0xb0, 0xe7, 0x47, 0x5c, 0x88, 0x3b, 0xe2, 0x73, 0xf2, 0xdc, 0xb3, 0xcf, 0x1c, 0x7d, 0x7f, 0xbd, + 0xe1, 0x8c, 0xba, 0x2f, 0x39, 0x3f, 0xb8, 0x62, 0xf0, 0xa9, 0x7d, 0x01, 0xa3, 0xeb, 0x3e, 0xdf, + 0xd2, 0xb8, 0xb9, 0x6b, 0xb7, 0x3d, 0x1f, 0x0d, 0x7d, 0x75, 0xe9, 0xb6, 0x23, 0xed, 0xde, 0xf9, + 0x6c, 0xeb, 0x8a, 0xad, 0x62, 0x8d, 0xac, 0xd2, 0xfd, 0xb9, 0x4d, 0x67, 0xe4, 0x7b, 0x55, 0x3f, + 0x79, 0x6f, 0x7c, 0xb1, 0xbc, 0x48, 0xdf, 0x3e, 0x29, 0x3b, 0xe3, 0xfd, 0x27, 0x46, 0xef, 0x7a, + 0x26, 0xc4, 0xf6, 0x71, 0x55, 0xcc, 0xb9, 0x09, 0xd2, 0x71, 0xdf, 0x8a, 0x76, 0x30, 0xc7, 0xaa, + 0xb5, 0x8a, 0x6f, 0xae, 0xbf, 0x34, 0x6b, 0xe3, 0xb8, 0x27, 0xb7, 0x7c, 0x2c, 0x7d, 0xa7, 0xfe, + 0xf3, 0x95, 0x4f, 0x9f, 0xd8, 0xda, 0xf0, 0xd6, 0x7e, 0x8f, 0xb2, 0xf0, 0x7b, 0xa4, 0xdd, 0xfc, + 0x35, 0x9e, 0xcb, 0x02, 0xab, 0x7d, 0xbf, 0xdf, 0xee, 0x93, 0x3b, 0x35, 0xe4, 0x99, 0x02, 0xd9, + 0x2b, 0xf9, 0x63, 0x17, 0x8a, 0x46, 0x8c, 0xb9, 0xd2, 0x38, 0x38, 0x2f, 0x2f, 0x73, 0x74, 0x7e, + 0xd0, 0x69, 0x43, 0xd6, 0xac, 0x64, 0x92, 0x79, 0xeb, 0xda, 0x52, 0x69, 0xfe, 0x0b, 0xef, 0x88, + 0x3a, 0xef, 0x6a, 0x94, 0x4d, 0x1f, 0xb6, 0xa7, 0xdd, 0x6f, 0x7b, 0xcf, 0xd4, 0x64, 0xa5, 0xfc, + 0xf4, 0x89, 0xdf, 0xcf, 0x5b, 0x77, 0xbe, 0x5c, 0x5e, 0xf9, 0xe9, 0xfd, 0x0b, 0x4f, 0x7c, 0x97, + 0x99, 0x18, 0x72, 0xb6, 0xc3, 0xed, 0xf2, 0xe3, 0x73, 0xb3, 0x92, 0x4e, 0xfc, 0x91, 0x31, 0x7a, + 0xd3, 0xc0, 0xc3, 0x83, 0xb7, 0xf4, 0x2d, 0x25, 0x3b, 0xde, 0xbe, 0x64, 0xd8, 0x7e, 0x22, 0xe6, + 0x9d, 0x0b, 0xd6, 0x53, 0x4b, 0x4f, 0x3f, 0x53, 0xb0, 0xe7, 0xe8, 0xea, 0x3f, 0x1a, 0x4f, 0x1e, + 0xcf, 0xfd, 0x29, 0x27, 0xf6, 0xfe, 0x99, 0xc2, 0xf0, 0xf8, 0x4a, 0xfb, 0x07, 0x75, 0x5b, 0xd9, + 0xb3, 0xe3, 0x43, 0x24, 0xe6, 0x1f, 0x9e, 0x70, 0x7b, 0xfa, 0xb9, 0x24, 0xaf, 0x75, 0xfb, 0xcb, + 0x7d, 0xbe, 0x8b, 0x1a, 0xe7, 0x9e, 0xb2, 0x2e, 0x46, 0xdc, 0x5d, 0xa1, 0xf0, 0xde, 0x39, 0x9b, + 0x91, 0xef, 0x7f, 0x6a, 0x4b, 0xf6, 0xb0, 0x8f, 0x66, 0x15, 0x31, 0x9e, 0x27, 0x6c, 0x9f, 0xae, + 0xac, 0x1f, 0x7d, 0xd8, 0xf7, 0xde, 0xf9, 0x51, 0xd5, 0xfb, 0xcf, 0xf4, 0x50, 0x56, 0xd7, 0xd5, + 0x6c, 0x5e, 0x73, 0xea, 0xab, 0x8e, 0xcf, 0x7c, 0xf4, 0xec, 0x34, 0x9f, 0xcd, 0xa1, 0xfd, 0x46, + 0x7c, 0xf6, 0xc9, 0x07, 0xf9, 0xdb, 0x6a, 0x99, 0x19, 0x5b, 0xaf, 0x7d, 0xfc, 0xd1, 0xe7, 0xaf, + 0xc9, 0x2f, 0x7d, 0xec, 0xf6, 0xda, 0xb1, 0x8d, 0xa5, 0x7d, 0x12, 0xbe, 0xf9, 0xf9, 0xc3, 0x89, + 0xc7, 0xde, 0xe8, 0xa0, 0xfe, 0x56, 0x32, 0x23, 0xe0, 0xdc, 0x78, 0x3f, 0xef, 0x31, 0x97, 0x67, + 0xf6, 0x1b, 0xbb, 0x24, 0x3a, 0xb7, 0xc0, 0x67, 0xcd, 0xf0, 0xdc, 0xc9, 0xde, 0x47, 0x7c, 0xeb, + 0xdf, 0xe0, 0x3c, 0x17, 0x77, 0xdf, 0x40, 0xbc, 0x36, 0xae, 0xf0, 0xf8, 0xb7, 0x79, 0x71, 0xbb, + 0x1b, 0xc7, 0xde, 0x96, 0xbd, 0x98, 0x7d, 0x4b, 0xd4, 0xa5, 0x79, 0xb7, 0x34, 0x67, 0xe4, 0xb0, + 0xcc, 0xdf, 0x0f, 0xda, 0xb3, 0x2a, 0xc6, 0x45, 0xe4, 0x3f, 0xfe, 0xa3, 0x34, 0xaf, 0x70, 0x42, + 0xe7, 0x13, 0xcd, 0x17, 0x83, 0x8f, 0xbf, 0x34, 0x7c, 0xf2, 0x59, 0xc5, 0x21, 0xeb, 0x77, 0xf6, + 0xa2, 0x0b, 0x9f, 0xde, 0xbb, 0x77, 0x7d, 0xe7, 0xfc, 0xd8, 0x9d, 0x9f, 0x74, 0xfc, 0x66, 0x7e, + 0x0d, 0xdb, 0xf0, 0xf6, 0xc9, 0x93, 0x53, 0x16, 0x1f, 0x7d, 0x73, 0xcf, 0xee, 0xd3, 0x91, 0xa9, + 0xb7, 0x2e, 0x0c, 0xba, 0x69, 0xdf, 0x7e, 0xd4, 0x3e, 0x6c, 0xc7, 0xbb, 0xdf, 0x49, 0xb7, 0xf4, + 0x1f, 0x10, 0xb1, 0xc9, 0x72, 0x36, 0xd8, 0xe7, 0x74, 0x52, 0x67, 0xaf, 0x0f, 0xef, 0x58, 0xdd, + 0x22, 0xd8, 0xc9, 0x92, 0x98, 0x2f, 0xae, 0xb3, 0x17, 0x86, 0x5c, 0xb0, 0xaf, 0xb9, 0x3e, 0xbf, + 0xb0, 0xe7, 0xa4, 0x9d, 0x39, 0xf1, 0x73, 0x3f, 0x1a, 0x7d, 0xb0, 0xd3, 0x0c, 0xdb, 0x8e, 0x55, + 0xc7, 0x8a, 0x9e, 0x8a, 0xb8, 0x94, 0x9d, 0xba, 0x74, 0xa2, 0xfc, 0x90, 0x5b, 0x82, 0xf7, 0xf6, + 0x4f, 0x03, 0xc4, 0x4a, 0xbd, 0xda, 0x7d, 0xc8, 0xce, 0x7e, 0xdb, 0xbe, 0xd4, 0x78, 0x7f, 0xb6, + 0x69, 0xd1, 0xf0, 0xcd, 0xc1, 0x92, 0xdc, 0x8f, 0x46, 0xbc, 0xc7, 0x9d, 0xda, 0xdd, 0xf3, 0x48, + 0xdd, 0x96, 0x97, 0x57, 0x9c, 0xd1, 0x3d, 0xb1, 0xe1, 0xfc, 0xbf, 0x6a, 0x76, 0x8f, 0x7d, 0x5d, + 0x7d, 0x6b, 0xcc, 0xd5, 0xe5, 0x6f, 0xe7, 0x3e, 0xef, 0xb5, 0xb8, 0x40, 0xbc, 0x56, 0xea, 0xb9, + 0xbc, 0x7f, 0x84, 0xef, 0x2f, 0xb3, 0xec, 0x1e, 0x25, 0x8f, 0x0d, 0x23, 0xee, 0xd3, 0xad, 0x9f, + 0x2f, 0xf5, 0x9f, 0xbc, 0xf5, 0xd2, 0x86, 0xe0, 0x8d, 0x2f, 0x44, 0x76, 0xfe, 0x58, 0xfe, 0xfa, + 0xfc, 0x63, 0x8b, 0x7c, 0x76, 0x7e, 0xf3, 0xc3, 0x27, 0xd7, 0xcf, 0x95, 0x77, 0xbd, 0xf0, 0xad, + 0xf7, 0x89, 0x63, 0xc7, 0x67, 0x9b, 0x2e, 0x9d, 0xb8, 0x79, 0xf7, 0xa3, 0xef, 0xb2, 0x0b, 0x67, + 0x9c, 0x7d, 0xf2, 0xeb, 0x80, 0x9d, 0xd3, 0xfe, 0xa5, 0xfe, 0xf4, 0xce, 0xf7, 0x13, 0x6b, 0x8a, + 0x26, 0x26, 0x7c, 0x12, 0x78, 0x65, 0xb8, 0xac, 0xb2, 0x38, 0xb7, 0x1d, 0x77, 0xa0, 0x9f, 0xd4, + 0x36, 0xc2, 0x5b, 0xd4, 0x9e, 0x5b, 0x91, 0xb5, 0x20, 0x67, 0x43, 0xe6, 0xdd, 0xe3, 0x5c, 0xde, + 0xe8, 0xb8, 0x23, 0xf9, 0x01, 0x65, 0x97, 0xbc, 0x56, 0xfd, 0x7a, 0xcc, 0xe7, 0x54, 0xfa, 0x0c, + 0x49, 0xf2, 0xee, 0x8f, 0xdc, 0xfa, 0x8c, 0x56, 0xdb, 0xdf, 0xfb, 0x3d, 0x80, 0xad, 0x1b, 0x98, + 0x90, 0x93, 0xf8, 0xed, 0xc4, 0xc2, 0x68, 0x6b, 0xee, 0xd1, 0x0d, 0xe7, 0x86, 0x9f, 0x3c, 0x63, + 0xf3, 0xbe, 0x60, 0xbc, 0xd1, 0xef, 0x74, 0xef, 0xb4, 0x0d, 0x3b, 0xd6, 0x7e, 0xb9, 0x62, 0xfb, + 0xf9, 0xa9, 0x47, 0x36, 0x25, 0xfc, 0xc4, 0x6d, 0x31, 0x04, 0xdd, 0xfa, 0xec, 0xb3, 0x39, 0xbb, + 0xb7, 0x1d, 0x30, 0x2c, 0xfe, 0x28, 0xed, 0xdd, 0xb7, 0x37, 0xab, 0xdc, 0x23, 0xea, 0xb6, 0x2d, + 0x96, 0x9e, 0xfa, 0xba, 0xc7, 0xb0, 0xf3, 0xe9, 0x9f, 0xdb, 0xcf, 0x74, 0x0b, 0x9d, 0x6c, 0xfb, + 0x68, 0xab, 0x75, 0xf4, 0x1e, 0x71, 0xe7, 0xec, 0x91, 0x4b, 0x82, 0x8b, 0xb4, 0xbd, 0x77, 0x7a, + 0x6f, 0x7e, 0x73, 0xbe, 0xfc, 0x8b, 0xce, 0x17, 0xdc, 0x87, 0xcf, 0xbb, 0x2e, 0x0e, 0xc1, 0xf9, + 0x1f, 0xd3, 0xb3, 0xf3, 0xe3, 0xd3, 0x33, 0x23, 0xc2, 0xbe, 0x48, 0x0b, 0x09, 0x96, 0x7c, 0x99, + 0x3f, 0x36, 0xae, 0x71, 0xe2, 0xbf, 0x67, 0xbf, 0x37, 0x7c, 0xe8, 0x57, 0xcb, 0x62, 0x06, 0xc9, + 0xe6, 0x9c, 0xd9, 0x97, 0xb8, 0x7d, 0xf7, 0xd1, 0x39, 0x0d, 0xd7, 0x9b, 0x0e, 0x9e, 0x69, 0xbc, + 0x2c, 0x1f, 0xb4, 0x65, 0xfd, 0xc0, 0x29, 0x1b, 0xb6, 0xcc, 0x0f, 0x99, 0xb1, 0xe2, 0x48, 0x50, + 0xf5, 0x8b, 0x83, 0xfd, 0x76, 0x5b, 0x15, 0xdd, 0xce, 0xa4, 0x1d, 0x2f, 0x6e, 0x2c, 0x5b, 0x14, + 0x73, 0x7d, 0xf4, 0x90, 0x53, 0x1b, 0x42, 0xfd, 0xaf, 0x6c, 0xe9, 0x7d, 0x6a, 0x4b, 0x75, 0xd0, + 0xb2, 0x99, 0x33, 0xdc, 0x9f, 0xad, 0xee, 0x3c, 0x3d, 0x70, 0x2d, 0x79, 0xfd, 0xdb, 0xa6, 0x90, + 0x9a, 0xd7, 0x0e, 0x46, 0xac, 0x1d, 0x39, 0x72, 0xe2, 0x95, 0xa0, 0xfc, 0x7c, 0xee, 0x42, 0xff, + 0x98, 0x13, 0x2b, 0x7c, 0x87, 0x7f, 0xfd, 0x96, 0x6a, 0xe6, 0xd2, 0xcb, 0x1d, 0x56, 0xce, 0x65, + 0xe2, 0x37, 0xbd, 0x37, 0x7a, 0xe2, 0xda, 0x9d, 0xef, 0x7e, 0xdf, 0x70, 0xf3, 0xc7, 0xba, 0xdb, + 0x0d, 0xaa, 0x19, 0xe7, 0xbf, 0xc8, 0xda, 0xf4, 0xe5, 0xd9, 0x75, 0x1b, 0x46, 0x8e, 0xfc, 0x65, + 0x65, 0xbc, 0x59, 0x73, 0x28, 0xaf, 0x28, 0xe7, 0x41, 0xf1, 0x84, 0x0d, 0x79, 0x3d, 0xfb, 0x5c, + 0x1f, 0xae, 0x65, 0x74, 0x9e, 0x1e, 0xde, 0x05, 0x91, 0x41, 0x7e, 0xb7, 0x23, 0xe2, 0x2f, 0x6c, + 0xf2, 0x18, 0xb9, 0x77, 0x5c, 0x7a, 0xf1, 0x35, 0x43, 0x56, 0x5e, 0xe3, 0xef, 0xb7, 0xb5, 0xdb, + 0x3f, 0xde, 0xdd, 0xf3, 0xad, 0xe7, 0x17, 0x06, 0xbd, 0x14, 0xbe, 0xca, 0xa3, 0xea, 0x8f, 0x1d, + 0x2b, 0x3b, 0x6e, 0x9b, 0x37, 0xd3, 0x77, 0xd2, 0xf9, 0xb5, 0x4f, 0x45, 0x5e, 0xdf, 0x14, 0xc5, + 0x4d, 0xba, 0x3d, 0x7e, 0xa7, 0xa5, 0x21, 0xf7, 0xdf, 0x9d, 0xbf, 0x8c, 0x89, 0xd2, 0x9e, 0xcf, + 0x70, 0x1f, 0x34, 0xe9, 0x86, 0x79, 0x4a, 0xe6, 0x4f, 0x2f, 0x86, 0x0c, 0xda, 0xbd, 0x37, 0x28, + 0xfd, 0x5b, 0xd1, 0x9c, 0x0e, 0x4b, 0x8c, 0xdb, 0x7d, 0xe7, 0xcd, 0x68, 0xe8, 0xf6, 0xee, 0xee, + 0x33, 0x91, 0x9f, 0xfb, 0x7c, 0xb9, 0x2a, 0x32, 0xa9, 0x71, 0x7b, 0xd7, 0x05, 0xef, 0x2d, 0xf3, + 0x3a, 0xbc, 0x6c, 0xde, 0x63, 0x9e, 0xe4, 0xd0, 0x08, 0x4b, 0xcf, 0x53, 0x71, 0x2f, 0x67, 0x36, + 0x15, 0x1e, 0x48, 0xfb, 0x7e, 0x62, 0xfa, 0xc8, 0xed, 0xdb, 0x3a, 0xe4, 0xaf, 0x7a, 0xfb, 0x64, + 0xff, 0x79, 0x95, 0xaf, 0xf8, 0x2e, 0x5b, 0x98, 0x52, 0x7d, 0xea, 0x7c, 0xfb, 0xb5, 0x87, 0xbe, + 0x3a, 0xd6, 0xf4, 0xfd, 0xd5, 0xc5, 0x07, 0x9b, 0x7e, 0x1b, 0x71, 0x2a, 0xb3, 0xe4, 0x89, 0x2b, + 0x93, 0xf2, 0xce, 0x6f, 0x49, 0x37, 0xae, 0x9c, 0x39, 0xe8, 0xd9, 0x0c, 0x3f, 0xdf, 0x80, 0xc7, + 0xbb, 0x75, 0x68, 0x77, 0xb6, 0x38, 0x52, 0xf5, 0x7a, 0x4c, 0xb7, 0x67, 0xde, 0xcb, 0x7b, 0x90, + 0x05, 0xec, 0x7f, 0xf9, 0x53, 0x9e, 0x07, 0x87, 0x8d, 0x8d, 0xac, 0x4b, 0x7e, 0x7b, 0xc3, 0x42, + 0xd1, 0xa5, 0x95, 0x73, 0x02, 0xbb, 0x1e, 0x7a, 0xef, 0x69, 0xf6, 0xc1, 0x0e, 0xed, 0x87, 0xdf, + 0xab, 0x3e, 0xf8, 0xb5, 0xae, 0xff, 0xe6, 0x90, 0x19, 0x7e, 0x2b, 0xf3, 0x37, 0x79, 0xce, 0x7e, + 0x5f, 0x65, 0xd9, 0xff, 0x73, 0x87, 0xb4, 0xba, 0x1e, 0xf1, 0x53, 0xfe, 0xc8, 0x9e, 0x98, 0x75, + 0xe9, 0xce, 0xa4, 0xfe, 0xfa, 0x4f, 0x2c, 0xaa, 0x88, 0xd2, 0xce, 0x9e, 0x4f, 0xf4, 0xd2, 0xfa, + 0x49, 0x6e, 0xed, 0x48, 0x1b, 0xf0, 0xd1, 0x3c, 0x4b, 0x6a, 0xf1, 0xf9, 0xac, 0x49, 0x3d, 0xaf, + 0x4f, 0x61, 0x9b, 0x6f, 0x5f, 0xf9, 0xf1, 0xf3, 0xdd, 0x0f, 0x9a, 0xcb, 0x17, 0xd6, 0x7d, 0xf3, + 0xcc, 0xaa, 0x83, 0x87, 0x9a, 0x22, 0xe6, 0xcc, 0xd8, 0xee, 0xb1, 0xf0, 0xb5, 0xb2, 0xf4, 0x1d, + 0x1b, 0xfb, 0x64, 0xbd, 0xb7, 0x66, 0x40, 0xf5, 0x8c, 0x7e, 0x5e, 0x6b, 0xab, 0x95, 0xfb, 0x9b, + 0xb6, 0x78, 0x56, 0x1e, 0xdc, 0xa0, 0x18, 0x34, 0xf2, 0xfa, 0x73, 0xbe, 0xf9, 0x8d, 0xf1, 0x5f, + 0xf7, 0x3f, 0x53, 0x30, 0xd7, 0x77, 0x77, 0x69, 0xac, 0xdf, 0xf0, 0xdb, 0xe2, 0x6e, 0x31, 0x3f, + 0xef, 0x2a, 0xce, 0xdf, 0x55, 0x11, 0x33, 0xf1, 0x74, 0xc2, 0xa9, 0x88, 0x57, 0xa4, 0x57, 0x42, + 0xe6, 0x7f, 0xb9, 0x85, 0xbc, 0x33, 0x73, 0x66, 0xe7, 0x1d, 0x9d, 0xe6, 0xc4, 0x8c, 0xfb, 0xd7, + 0xf6, 0xe1, 0xd9, 0xd5, 0x0d, 0x13, 0x63, 0xcf, 0x9c, 0xc9, 0x1f, 0xde, 0x65, 0x50, 0x48, 0x87, + 0xe7, 0xa6, 0x44, 0xc8, 0x97, 0x87, 0x74, 0xee, 0xfe, 0x5d, 0x10, 0x89, 0xf6, 0x23, 0xd5, 0x9f, + 0xa6, 0xf5, 0x9c, 0xb1, 0xaa, 0x2a, 0x73, 0xc3, 0xcb, 0x47, 0xd3, 0xb6, 0x2c, 0x0a, 0xf8, 0xb2, + 0xf1, 0xbb, 0x61, 0x8d, 0xd7, 0xf7, 0x2c, 0x79, 0x6f, 0xf7, 0xf5, 0x6f, 0x96, 0x9d, 0xb9, 0xf3, + 0xd3, 0x0e, 0x8f, 0x0d, 0x6b, 0xe6, 0x05, 0x7d, 0x92, 0x77, 0xbe, 0xe7, 0x72, 0x60, 0xff, 0x67, + 0x5d, 0x9b, 0x94, 0x77, 0x60, 0xbd, 0xa5, 0xf8, 0x78, 0x51, 0xe7, 0x91, 0x77, 0x43, 0xb5, 0xf1, + 0xdf, 0x7f, 0x1f, 0x71, 0xde, 0xb6, 0xca, 0xe3, 0xcb, 0xa9, 0x63, 0xd2, 0x1b, 0xd2, 0x95, 0x59, + 0xb7, 0x07, 0xfe, 0x70, 0x7b, 0x93, 0x78, 0xf5, 0xee, 0xb5, 0x9d, 0xed, 0x0b, 0x67, 0x1a, 0xd4, + 0xab, 0x56, 0xf6, 0xd8, 0xba, 0xe1, 0xcb, 0xfa, 0x7b, 0x2b, 0xcf, 0x3f, 0xe8, 0x7b, 0xe8, 0xf6, + 0xc9, 0x17, 0x1e, 0x34, 0x1c, 0xd9, 0x91, 0xb7, 0xb6, 0xe2, 0xc1, 0xf0, 0x4d, 0xaf, 0x46, 0x7b, + 0xae, 0xdc, 0x34, 0x35, 0x72, 0xe6, 0xfb, 0x35, 0xaa, 0x20, 0xdd, 0xcd, 0x0e, 0x1e, 0xbd, 0xc2, + 0xe2, 0xb5, 0x5d, 0xc6, 0x4f, 0xec, 0xe9, 0xb1, 0xf9, 0xfb, 0x62, 0xcb, 0x6f, 0x75, 0x79, 0x83, + 0x23, 0x66, 0xc4, 0x4f, 0x9e, 0xb8, 0x69, 0xe4, 0x98, 0xe4, 0x53, 0x4d, 0x07, 0xdb, 0x5d, 0xf9, + 0xfe, 0x18, 0xb0, 0xff, 0xf7, 0xe6, 0xcd, 0x3c, 0x75, 0xd1, 0xea, 0xb7, 0xec, 0x43, 0xef, 0x6e, + 0xf3, 0x3e, 0xde, 0x57, 0xbc, 0xea, 0x8d, 0x97, 0x62, 0xb6, 0xcf, 0x8c, 0x1f, 0xd9, 0xcd, 0xcd, + 0x23, 0x3f, 0xb2, 0xd3, 0x9e, 0xfe, 0x1d, 0x7a, 0xce, 0xf2, 0xf5, 0xd5, 0x98, 0xaa, 0x07, 0xd9, + 0xdd, 0xd6, 0xa6, 0x4f, 0xa9, 0x6d, 0x9a, 0x34, 0x64, 0xda, 0xc1, 0xcc, 0xa4, 0x27, 0xbf, 0x8c, + 0x9c, 0x36, 0xaa, 0xb1, 0x5b, 0xf5, 0x1b, 0xef, 0xf9, 0x7e, 0x74, 0x6e, 0x59, 0x87, 0x75, 0x9d, + 0x49, 0xfa, 0x0f, 0xc3, 0x7b, 0x0e, 0xba, 0xff, 0x6a, 0x66, 0xe6, 0xa9, 0xd3, 0x69, 0x93, 0x0e, + 0x77, 0x1c, 0xf4, 0x7d, 0xe2, 0xd0, 0x29, 0x4d, 0x29, 0x4b, 0x43, 0x4e, 0xbd, 0x70, 0x22, 0xe8, + 0x50, 0xe6, 0x63, 0x73, 0xe6, 0x85, 0xa4, 0x6e, 0x5f, 0x16, 0xbe, 0xb0, 0x61, 0xfb, 0x93, 0x75, + 0x67, 0x56, 0x49, 0xaf, 0xde, 0x9e, 0x32, 0xea, 0x83, 0xdd, 0x59, 0x09, 0x85, 0x0b, 0x2d, 0xf9, + 0xfa, 0x55, 0x69, 0xcf, 0x37, 0x44, 0xf8, 0xf5, 0x5d, 0xeb, 0xe1, 0xd9, 0x2d, 0x37, 0x5d, 0x25, + 0x0b, 0xce, 0xea, 0xdf, 0xbe, 0x7e, 0xd2, 0x7b, 0xcb, 0xde, 0xb1, 0xec, 0x58, 0x60, 0xeb, 0xbc, + 0x70, 0x75, 0x77, 0xed, 0x9c, 0xcf, 0x2e, 0xee, 0x38, 0x78, 0xeb, 0xcd, 0x79, 0x75, 0xbf, 0x64, + 0x9e, 0x7f, 0x50, 0xdb, 0xed, 0xfa, 0x95, 0x33, 0x9f, 0x7d, 0xbf, 0xc3, 0xff, 0x7e, 0xdd, 0x7b, + 0x3e, 0xfd, 0x67, 0xcc, 0x51, 0x4f, 0xd9, 0xb4, 0xb0, 0xff, 0xa7, 0xaa, 0xba, 0xe2, 0xbb, 0x1d, + 0x0e, 0xe6, 0xf4, 0x8b, 0xbf, 0x62, 0x9a, 0x3c, 0xf1, 0xc1, 0xbf, 0xb6, 0xe4, 0x65, 0x9d, 0x6b, + 0x1c, 0x3e, 0xe5, 0xcb, 0xde, 0x9e, 0x69, 0xbf, 0x4e, 0x88, 0xb4, 0xfc, 0xbe, 0x71, 0x83, 0xe7, + 0xd6, 0x1b, 0x2b, 0xfd, 0xde, 0x7c, 0xfa, 0x50, 0xff, 0x39, 0x25, 0x0f, 0x54, 0x8b, 0x71, 0xfe, + 0xf7, 0xce, 0xdd, 0x2d, 0x2a, 0x3c, 0x31, 0xd3, 0xed, 0xd9, 0x9d, 0xf1, 0xe2, 0x73, 0x6b, 0x3c, + 0x3d, 0x7e, 0xd9, 0x7d, 0x50, 0xba, 0xa9, 0x7c, 0x9e, 0x64, 0x56, 0xc0, 0x20, 0xf7, 0xad, 0x83, + 0x1f, 0xf3, 0x5d, 0xd0, 0xef, 0x68, 0xbb, 0x93, 0xb3, 0x5e, 0xf1, 0xf9, 0xfe, 0xfa, 0x10, 0xf9, + 0xd8, 0x7b, 0x9d, 0x3c, 0xd3, 0x16, 0x9f, 0x96, 0x79, 0x85, 0xac, 0xf0, 0x7a, 0x26, 0x61, 0x84, + 0x77, 0xf1, 0xdb, 0xea, 0xa0, 0x84, 0xfd, 0xf5, 0x4f, 0x74, 0x99, 0xf8, 0xd6, 0x93, 0x3d, 0x9e, + 0x60, 0xbb, 0xac, 0xf7, 0xd6, 0x77, 0x7e, 0x7d, 0xf4, 0xb5, 0x4e, 0xbb, 0x2f, 0xbc, 0x1f, 0xf8, + 0xdb, 0x96, 0x9c, 0xc7, 0xf7, 0xdd, 0xea, 0xe5, 0xc7, 0x55, 0xff, 0xfe, 0xd8, 0xbb, 0xea, 0x8d, + 0xed, 0x17, 0x26, 0x8d, 0x57, 0xf8, 0x0f, 0x8f, 0xea, 0xd0, 0xcd, 0xd0, 0xec, 0x3f, 0x79, 0xfe, + 0xd6, 0x80, 0x81, 0xf5, 0x93, 0x3b, 0x5e, 0x8c, 0x1f, 0x18, 0x79, 0x4a, 0xb7, 0xa0, 0xcf, 0xfc, + 0x45, 0xfb, 0xfb, 0x7d, 0x7a, 0xd7, 0xbb, 0x6f, 0xd4, 0xaf, 0xe6, 0xfe, 0xde, 0x33, 0x67, 0x47, + 0xa7, 0xf6, 0xad, 0x8d, 0xca, 0x4a, 0x11, 0x3f, 0x93, 0xd1, 0x71, 0x54, 0x44, 0xd1, 0xbf, 0x97, + 0xf7, 0x8e, 0xf8, 0xe2, 0x6c, 0x2f, 0xd1, 0xda, 0xc0, 0xf0, 0x99, 0x9f, 0x0f, 0xeb, 0xf9, 0xd1, + 0x37, 0x4b, 0x0d, 0x3f, 0xe7, 0x1d, 0x0f, 0xfb, 0x4e, 0xd4, 0xfe, 0xe9, 0xaa, 0x1f, 0xf2, 0x54, + 0xef, 0x2d, 0x58, 0xfb, 0x54, 0x73, 0xcf, 0xeb, 0xdd, 0xf7, 0xff, 0x2b, 0x44, 0x9d, 0x34, 0x30, + 0xb3, 0xdb, 0x0b, 0xdd, 0x57, 0x29, 0x95, 0xaf, 0x5e, 0x61, 0x3a, 0xdc, 0x56, 0x75, 0xd5, 0x6c, + 0x2e, 0xd3, 0x3e, 0x79, 0x7e, 0x5b, 0x70, 0x3c, 0x7b, 0xbf, 0xc7, 0x38, 0xaf, 0x68, 0x4d, 0x63, + 0xd0, 0xb8, 0x90, 0x2f, 0x26, 0x7c, 0xa4, 0x7b, 0x6d, 0xdf, 0x6f, 0xa1, 0x1f, 0xbc, 0xd5, 0x5b, + 0x5f, 0x3b, 0xef, 0xb5, 0xe2, 0xdf, 0x7f, 0xcc, 0x18, 0xb7, 0xe1, 0xd9, 0x2e, 0xe3, 0x5f, 0x7d, + 0xfa, 0x5c, 0x49, 0xd0, 0x53, 0x8b, 0x27, 0x06, 0x0f, 0x1a, 0x3c, 0xa1, 0xe4, 0x66, 0xc7, 0xd2, + 0xb8, 0xd7, 0xbf, 0x79, 0xbe, 0xec, 0xdc, 0x4b, 0x53, 0x06, 0x7d, 0x3c, 0x60, 0x6a, 0x80, 0xcc, + 0xe7, 0xdf, 0x5d, 0x33, 0x8f, 0x94, 0xaf, 0x2e, 0xad, 0x98, 0xb4, 0xb8, 0x8b, 0xa9, 0xec, 0xc0, + 0x2a, 0xc9, 0xe4, 0x07, 0x07, 0xf6, 0xbe, 0x50, 0x13, 0xba, 0x23, 0xff, 0x45, 0xf3, 0x94, 0x82, + 0xf3, 0x4d, 0x91, 0x45, 0x3f, 0x55, 0x35, 0x15, 0xe6, 0xcf, 0xde, 0x92, 0xf7, 0xaf, 0xab, 0x13, + 0x73, 0xc5, 0xa9, 0x3d, 0xb3, 0x7b, 0x45, 0xde, 0xce, 0x91, 0x4d, 0xfd, 0x30, 0xb3, 0x7f, 0x87, + 0x82, 0x31, 0xb6, 0xf7, 0x83, 0x47, 0x0f, 0xde, 0xf5, 0x13, 0x7b, 0xe2, 0xd4, 0xbb, 0x59, 0x97, + 0x3f, 0x1b, 0x3b, 0x76, 0x9b, 0x9b, 0xd2, 0x36, 0x2f, 0xe7, 0xa2, 0x9d, 0x39, 0x78, 0xca, 0xd2, + 0xf1, 0xcd, 0x0e, 0x89, 0xc9, 0x4f, 0xa6, 0x0d, 0x98, 0xf4, 0xfc, 0x42, 0xeb, 0xfd, 0x31, 0xe7, + 0x07, 0x1d, 0xf4, 0x0c, 0x4a, 0x5e, 0xf4, 0xc9, 0xf0, 0xa4, 0x77, 0xbe, 0xab, 0x1e, 0x58, 0xfd, + 0xda, 0x9e, 0xf8, 0x0f, 0x6f, 0x48, 0x13, 0xee, 0x24, 0x1b, 0xe3, 0x76, 0xa9, 0xa6, 0x9b, 0xcd, + 0x61, 0x5f, 0xc7, 0x8c, 0xcf, 0x68, 0x67, 0xd4, 0x5e, 0x49, 0x34, 0x3d, 0x31, 0xf7, 0xe5, 0xd8, + 0x94, 0xec, 0x9b, 0xe9, 0x76, 0xf1, 0xd3, 0x43, 0xa2, 0x77, 0x3c, 0x3f, 0xcc, 0xf3, 0xe4, 0x27, + 0x43, 0xe7, 0xd6, 0xde, 0x4d, 0xdb, 0xbe, 0xae, 0x6f, 0xea, 0x25, 0xff, 0xf2, 0x94, 0x6f, 0xa6, + 0xec, 0x1c, 0xdc, 0xd0, 0xe7, 0xd2, 0xf0, 0x0b, 0x69, 0xcc, 0xbf, 0x66, 0x5f, 0xb3, 0x3d, 0xbb, + 0xf1, 0xc5, 0xd5, 0x19, 0xe1, 0x0b, 0x7f, 0x19, 0xe9, 0xf6, 0x47, 0x8f, 0x11, 0xc3, 0xe3, 0x8a, + 0x46, 0x15, 0xe8, 0x3f, 0x78, 0xae, 0xa2, 0x73, 0xaf, 0xef, 0x3f, 0x19, 0xf7, 0xfb, 0xc5, 0x5f, + 0x8f, 0x6c, 0xbc, 0x74, 0xe6, 0x9d, 0xf1, 0x97, 0x47, 0x7c, 0x14, 0x75, 0x25, 0xef, 0x4c, 0xf3, + 0x8f, 0x61, 0xf6, 0xad, 0x3f, 0xb8, 0xfb, 0x4c, 0xae, 0x8f, 0xb4, 0xaa, 0xaf, 0xb7, 0x63, 0xea, + 0x7f, 0x1d, 0xba, 0xe2, 0xad, 0xab, 0xa3, 0x1b, 0xd9, 0x6b, 0xf5, 0x97, 0xf4, 0x0d, 0xc7, 0x2b, + 0xaf, 0xfd, 0x34, 0x27, 0xe2, 0xfd, 0x5f, 0x3e, 0x1b, 0x91, 0xf3, 0xf3, 0x8d, 0xad, 0x8f, 0x3d, + 0xf8, 0xea, 0xd8, 0xd1, 0xfb, 0x2b, 0xf2, 0x5f, 0x69, 0x5e, 0x2b, 0x1d, 0xc2, 0xe9, 0x14, 0x9d, + 0x9a, 0x3a, 0x4f, 0x3e, 0xfd, 0x87, 0x69, 0xcf, 0x8a, 0x7b, 0xcf, 0x6f, 0x18, 0x71, 0xd7, 0xf2, + 0x13, 0xb9, 0x3d, 0x75, 0xc6, 0xee, 0x5b, 0xea, 0x67, 0x66, 0xde, 0x68, 0x3f, 0x2c, 0xfe, 0xe6, + 0x92, 0x18, 0xcf, 0xc6, 0xb7, 0x83, 0x0f, 0xfe, 0xd6, 0xb4, 0x74, 0xde, 0xef, 0x5f, 0x73, 0x83, + 0xee, 0xb0, 0x23, 0xcb, 0xce, 0x0c, 0xeb, 0xbd, 0xed, 0xb4, 0xef, 0x4b, 0xf7, 0xcf, 0xf6, 0xb9, + 0x1c, 0xfd, 0xed, 0x8e, 0xdf, 0xc6, 0x9d, 0x7f, 0x79, 0xe5, 0x47, 0x17, 0x8e, 0x75, 0xfd, 0xed, + 0xbb, 0x1f, 0x06, 0xf4, 0x3e, 0x77, 0x5a, 0x9e, 0x77, 0xea, 0xba, 0x6d, 0xed, 0xc9, 0x8f, 0x4f, + 0x5f, 0x3f, 0x31, 0x6d, 0x53, 0xc8, 0x37, 0x92, 0xd5, 0x99, 0x75, 0x4f, 0x1f, 0x5e, 0x75, 0x34, + 0xb7, 0xf8, 0xca, 0xf1, 0x91, 0x9d, 0x54, 0xc7, 0x14, 0xcd, 0xa3, 0xbe, 0xec, 0xbe, 0x64, 0xf9, + 0x9e, 0x29, 0xda, 0xb3, 0x7b, 0x13, 0x8d, 0x81, 0x5f, 0x1d, 0x1a, 0x3a, 0x6c, 0xf7, 0x1f, 0x51, + 0x4b, 0xbf, 0x78, 0x6b, 0xfa, 0xf1, 0x5d, 0x4b, 0x1b, 0xda, 0xd7, 0xae, 0xf9, 0x70, 0xe0, 0xc1, + 0x95, 0x5f, 0x2e, 0x80, 0x9e, 0xda, 0xbf, 0xef, 0x66, 0x7b, 0xef, 0xfd, 0xa5, 0x1e, 0xe6, 0x43, + 0xb1, 0x05, 0xb3, 0xbf, 0xee, 0x74, 0xbc, 0xf6, 0x48, 0xc8, 0xa7, 0xe2, 0xc3, 0xc6, 0x65, 0x1f, + 0x2e, 0x9c, 0x78, 0xbf, 0xa0, 0x2a, 0xd4, 0x14, 0xbc, 0xe8, 0x71, 0xcd, 0x4f, 0x8b, 0x97, 0x47, + 0xbf, 0xbb, 0xec, 0xfd, 0xf4, 0xb1, 0xaf, 0xdc, 0xfa, 0x59, 0xb9, 0xf4, 0xcb, 0x8a, 0x8b, 0x4b, + 0xee, 0x7e, 0xb5, 0x63, 0xe5, 0x91, 0x0f, 0xa6, 0xac, 0x58, 0xf6, 0x58, 0xe4, 0xf2, 0x37, 0x27, + 0x35, 0xbd, 0xa1, 0x2a, 0xda, 0x52, 0xfd, 0x98, 0xfb, 0xc4, 0x57, 0xad, 0xdb, 0x7b, 0xbe, 0xfe, + 0xef, 0xa3, 0xb7, 0x5f, 0x33, 0xf4, 0x7a, 0x69, 0x9e, 0xc7, 0x73, 0x03, 0xe6, 0x8e, 0xfa, 0xde, + 0x67, 0x7e, 0xce, 0xcb, 0x47, 0x16, 0x5c, 0x7d, 0xa3, 0x62, 0xce, 0xb7, 0xbf, 0x9b, 0x5e, 0x9e, + 0x9e, 0x28, 0x79, 0x69, 0x4b, 0xb7, 0xbd, 0x95, 0x95, 0x63, 0x5f, 0x9b, 0xf1, 0xb9, 0x6f, 0xc6, + 0xf4, 0x2b, 0x35, 0x5d, 0x2a, 0x8e, 0x9e, 0x3d, 0x37, 0x2d, 0xfd, 0xd0, 0xe2, 0x99, 0x63, 0xde, + 0x1d, 0x3c, 0xab, 0x6f, 0x60, 0xc7, 0x17, 0x7d, 0x4a, 0xbe, 0x99, 0xbd, 0xaa, 0xee, 0xd2, 0xda, + 0x57, 0xb6, 0x31, 0x6b, 0x0e, 0x4b, 0x6c, 0xeb, 0xee, 0x15, 0xae, 0x7e, 0xbf, 0xbc, 0xec, 0x97, + 0x0d, 0x03, 0xfc, 0x7a, 0x7c, 0xe8, 0xb7, 0xbe, 0xe8, 0x83, 0xa7, 0xf6, 0x7e, 0xb0, 0x3e, 0x70, + 0xda, 0xcd, 0xf7, 0xf4, 0xbf, 0x3c, 0xfd, 0xee, 0x84, 0x21, 0xcf, 0xaf, 0x8e, 0xe9, 0xff, 0xc9, + 0x3b, 0x7b, 0x7a, 0xdc, 0x5d, 0x75, 0x3b, 0xb6, 0xef, 0x9b, 0xeb, 0x1e, 0x94, 0xbf, 0xfd, 0xc6, + 0x2b, 0x3b, 0xdf, 0xaa, 0x1b, 0xbf, 0x67, 0xcb, 0x8f, 0x8f, 0x4b, 0x37, 0xef, 0x7c, 0xcf, 0xf8, + 0xf1, 0x4b, 0x5f, 0x4f, 0xff, 0x44, 0xfe, 0xed, 0xd7, 0x9b, 0xfa, 0x6d, 0x6c, 0xf7, 0x51, 0x66, + 0xbb, 0xc4, 0x8d, 0x43, 0xb2, 0x5e, 0xae, 0xc9, 0x56, 0x9e, 0xda, 0xfe, 0x9c, 0xa5, 0xc3, 0x36, + 0xe9, 0x9d, 0xb4, 0xad, 0x3d, 0x97, 0x2f, 0xfc, 0x74, 0xf3, 0x9c, 0xf3, 0x3b, 0x66, 0x5c, 0x0c, + 0xfa, 0xec, 0xec, 0xa8, 0xe1, 0x9f, 0x5f, 0x0b, 0xaf, 0xde, 0x89, 0xf3, 0x3f, 0xcb, 0xbe, 0x63, + 0xeb, 0xcb, 0xfb, 0x3c, 0xd7, 0xfd, 0xfa, 0xe1, 0x16, 0xbf, 0x61, 0xaf, 0x64, 0x2e, 0x08, 0xbb, + 0x71, 0xbe, 0xf7, 0xb9, 0xe7, 0xf2, 0x9e, 0xfa, 0x34, 0xf2, 0xd4, 0x1b, 0xd7, 0x35, 0x9b, 0xbf, + 0x9c, 0x33, 0x48, 0xf6, 0xef, 0xb1, 0x17, 0x3f, 0x2b, 0x02, 0xf6, 0xff, 0xd4, 0xd6, 0xcf, 0x4f, + 0x5a, 0xbf, 0x3b, 0x9d, 0x7b, 0xeb, 0xe9, 0x89, 0x17, 0x2e, 0x0e, 0x55, 0x8c, 0xc9, 0x58, 0x39, + 0xec, 0xf1, 0x94, 0x26, 0xc3, 0x3b, 0x0d, 0xfe, 0x2b, 0x15, 0x4d, 0xe3, 0xee, 0xae, 0x37, 0xed, + 0xab, 0x7d, 0xe1, 0xc2, 0x07, 0xef, 0x7d, 0x65, 0x8f, 0x95, 0x95, 0x3c, 0xaf, 0x2e, 0x3a, 0xfc, + 0x75, 0xf1, 0xd4, 0x0f, 0x96, 0x76, 0x08, 0x6c, 0x1f, 0xf2, 0xc7, 0x27, 0xab, 0xfb, 0xaf, 0xa8, + 0x0b, 0x7c, 0xb1, 0x7b, 0xc3, 0x91, 0x4e, 0xa6, 0x05, 0xe3, 0xdf, 0x5a, 0xcf, 0xec, 0xad, 0xd9, + 0x9f, 0x30, 0x59, 0x16, 0xfd, 0x61, 0xd8, 0xaa, 0x7f, 0xed, 0x9b, 0x1f, 0xb8, 0xc5, 0xde, 0xcf, + 0xab, 0x8e, 0xbc, 0xb8, 0x29, 0x27, 0x32, 0x45, 0x2f, 0x7f, 0xee, 0xea, 0x2b, 0x97, 0x6e, 0x3c, + 0x3b, 0xeb, 0xc5, 0x57, 0x7e, 0x78, 0xe6, 0xe8, 0x8b, 0xb3, 0xb3, 0x36, 0x5f, 0xec, 0xfb, 0xdd, + 0xf0, 0x41, 0x0b, 0x8e, 0xf4, 0xd7, 0x3c, 0x3d, 0x71, 0xb6, 0xa2, 0xfe, 0xe7, 0xcb, 0x13, 0x33, + 0x52, 0x7d, 0x4e, 0x5f, 0x33, 0x66, 0x7f, 0x3e, 0xf8, 0xee, 0x9b, 0x77, 0x83, 0x6f, 0xec, 0x59, + 0xf9, 0x8a, 0x45, 0x6b, 0x50, 0x0e, 0x1f, 0x34, 0x6c, 0xc5, 0xa5, 0x3b, 0x45, 0x89, 0x53, 0x17, + 0xcb, 0x7e, 0xfb, 0xea, 0xdf, 0xef, 0x19, 0xbf, 0x09, 0xac, 0xbd, 0x5f, 0x90, 0x5c, 0xb7, 0xb2, + 0x57, 0xf0, 0x27, 0xdd, 0xe6, 0x7d, 0x19, 0xb8, 0x6c, 0xe5, 0xaa, 0xa9, 0xda, 0xee, 0x8f, 0x27, + 0x3c, 0xd8, 0x56, 0xce, 0xc4, 0x88, 0x17, 0x2d, 0x68, 0x54, 0xfc, 0xde, 0x60, 0x59, 0xf3, 0x4c, + 0x86, 0xff, 0xeb, 0x19, 0xfd, 0xd7, 0x74, 0xfb, 0xb8, 0xea, 0x89, 0x9e, 0xc7, 0x7f, 0x7f, 0xf3, + 0xa5, 0xdc, 0x23, 0x13, 0xfc, 0xdb, 0xad, 0x39, 0xb0, 0xfe, 0x7b, 0x8f, 0xa9, 0x3b, 0x67, 0xb2, + 0x5f, 0x48, 0x8f, 0x15, 0xaf, 0x1a, 0xf5, 0x49, 0xc7, 0xa0, 0x2b, 0xcf, 0x6e, 0x5d, 0xdb, 0x18, + 0x75, 0xa1, 0x43, 0xd2, 0xac, 0x1f, 0x77, 0x1f, 0xbd, 0x58, 0x31, 0x25, 0xc7, 0x57, 0x7f, 0xf0, + 0x85, 0x3c, 0xcb, 0xc4, 0x2f, 0xde, 0x6a, 0xe7, 0x73, 0xf0, 0xab, 0xec, 0x8d, 0xe3, 0x7b, 0x7c, + 0x25, 0x19, 0x9d, 0xb4, 0x6a, 0xeb, 0x99, 0xdf, 0xaa, 0x8b, 0xcc, 0x55, 0xdc, 0xf1, 0xfb, 0x53, + 0x52, 0x6c, 0xbf, 0x76, 0xee, 0x7d, 0x76, 0xe8, 0xc0, 0xee, 0x9f, 0xfa, 0x6a, 0x8c, 0xee, 0x1f, + 0xef, 0xbd, 0x5e, 0xb3, 0xfa, 0xed, 0x4a, 0x79, 0x50, 0xa7, 0x9a, 0x6f, 0xa7, 0x4d, 0x3d, 0x65, + 0xef, 0xb3, 0xb0, 0xec, 0x58, 0x70, 0xe3, 0x93, 0x85, 0x8b, 0xdd, 0x7e, 0x57, 0xf7, 0xb3, 0x55, + 0xbd, 0x36, 0xa3, 0xb2, 0xbf, 0x7e, 0xe1, 0xb5, 0x8c, 0xc5, 0x3d, 0xd2, 0x59, 0xf3, 0xe6, 0x9e, + 0x1e, 0x77, 0xe5, 0x17, 0xd6, 0x0c, 0xec, 0xb2, 0xed, 0xc8, 0xcd, 0x77, 0xaf, 0x5e, 0x58, 0xd4, + 0xfc, 0xd2, 0xd6, 0xd0, 0x78, 0x7b, 0xc7, 0xd7, 0xd3, 0xc5, 0xc5, 0xdd, 0xaf, 0x6e, 0xb7, 0xdc, + 0x18, 0x77, 0x5e, 0x9f, 0xb4, 0xdf, 0x50, 0x71, 0xef, 0xdb, 0x21, 0x3f, 0xc6, 0x8d, 0x59, 0xbe, + 0xaa, 0x7f, 0xde, 0xbd, 0xaf, 0x66, 0x1c, 0xef, 0x98, 0x1d, 0xb1, 0xab, 0xa4, 0xdd, 0x9c, 0x49, + 0x07, 0x7b, 0x8f, 0xac, 0xdf, 0x90, 0xf2, 0xfd, 0x08, 0x23, 0x97, 0x9e, 0xfc, 0x54, 0x75, 0xc3, + 0x9d, 0xf1, 0x95, 0x2f, 0x6f, 0x08, 0xb8, 0xde, 0x3b, 0xe0, 0xae, 0x71, 0xba, 0xe4, 0x8d, 0xee, + 0xd1, 0x3b, 0x54, 0x4f, 0xfe, 0xd4, 0x35, 0xa6, 0x6c, 0xc8, 0xab, 0x1f, 0x9e, 0xba, 0xf8, 0xf2, + 0x81, 0x9a, 0x11, 0x4f, 0xf7, 0xfb, 0xf8, 0xd9, 0x6b, 0xa3, 0x8e, 0xfe, 0x30, 0xa4, 0x66, 0x4a, + 0x4a, 0xc2, 0x37, 0x8f, 0x5f, 0xe5, 0xf2, 0xbb, 0xf6, 0xcb, 0xf4, 0x8c, 0x7f, 0xf1, 0xec, 0x8f, + 0x3f, 0x85, 0xed, 0x9b, 0x3e, 0x7f, 0x7e, 0xf1, 0x89, 0x15, 0xd7, 0x34, 0x1b, 0xef, 0x0d, 0xae, + 0x7a, 0x6e, 0x68, 0xfd, 0xf4, 0xbe, 0x3d, 0x33, 0xfa, 0xce, 0xf0, 0x5c, 0xf0, 0xde, 0x95, 0xc2, + 0xa7, 0x9f, 0x94, 0xed, 0x9a, 0xed, 0x53, 0xf0, 0x6e, 0xdf, 0x2d, 0xab, 0xbf, 0x37, 0x7e, 0xb6, + 0x6b, 0xf6, 0x7d, 0x77, 0x7d, 0x8f, 0xc4, 0x8e, 0xd6, 0xe4, 0xdf, 0x3e, 0xbc, 0x3d, 0x41, 0x19, + 0xb6, 0xac, 0xfd, 0x8a, 0x39, 0x65, 0x3b, 0x83, 0xab, 0x9f, 0x38, 0xf3, 0x0a, 0x33, 0x60, 0x7f, + 0x63, 0x59, 0xe8, 0x06, 0x4b, 0x6d, 0xad, 0xe8, 0xc1, 0xb1, 0x77, 0x6c, 0x31, 0xb9, 0x41, 0xa3, + 0x96, 0xfd, 0x3e, 0xa9, 0x8f, 0x76, 0xd0, 0x2b, 0xcb, 0x56, 0x8e, 0xbc, 0x75, 0xb3, 0xdb, 0x0f, + 0xee, 0x8f, 0xe7, 0x0d, 0x64, 0xa7, 0x9c, 0xfa, 0x6d, 0xfe, 0xd1, 0xcc, 0x1f, 0x7f, 0xf9, 0xf8, + 0xfc, 0x73, 0xa9, 0xf3, 0x3d, 0x77, 0xf7, 0xfe, 0x69, 0xcb, 0xe4, 0x33, 0xf1, 0x24, 0x1b, 0xd8, + 0xff, 0xba, 0x9f, 0x7b, 0x5e, 0xa8, 0x5c, 0x30, 0x74, 0x8c, 0x61, 0xf4, 0xbd, 0x93, 0x4a, 0xc9, + 0x8a, 0xdc, 0xd7, 0x80, 0xfd, 0xf7, 0x38, 0xbd, 0x4b, 0xf4, 0x79, 0x44, 0xe1, 0xe6, 0x0f, 0xd2, + 0x3c, 0x65, 0x1d, 0x5e, 0x4b, 0x2e, 0x79, 0x82, 0xeb, 0x71, 0xf8, 0x9d, 0xf6, 0xb3, 0x5f, 0xf8, + 0xa4, 0xf4, 0xfb, 0xaf, 0xda, 0x7d, 0x7d, 0x46, 0xb1, 0x68, 0xcd, 0xce, 0xf5, 0xda, 0xf8, 0xf6, + 0x8f, 0x47, 0x76, 0x9b, 0xf0, 0x4e, 0xc5, 0xf3, 0xb6, 0xbd, 0xa7, 0x15, 0xa2, 0xc9, 0x6c, 0xf3, + 0x86, 0x23, 0x25, 0xaf, 0xef, 0x1f, 0x7f, 0x40, 0x79, 0x73, 0xf5, 0xb0, 0x84, 0x65, 0x81, 0xd7, + 0xd7, 0xf6, 0xf9, 0xe0, 0xc1, 0xa1, 0x51, 0xed, 0xe3, 0xa4, 0xbf, 0x0e, 0x9c, 0x30, 0xe6, 0xa5, + 0x9b, 0x87, 0xe7, 0xa9, 0xcd, 0xe7, 0x1a, 0x62, 0xee, 0x8e, 0x1d, 0x3c, 0x49, 0x7f, 0x2f, 0xbc, + 0xcb, 0xe2, 0x98, 0xb3, 0x1b, 0xd5, 0x69, 0x9f, 0x9f, 0x7c, 0xed, 0x97, 0x9f, 0xf6, 0xde, 0xfb, + 0x68, 0xee, 0x9b, 0x71, 0xde, 0x99, 0xbe, 0x37, 0x1e, 0xf7, 0xc8, 0x49, 0x7a, 0x73, 0xe7, 0xe0, + 0xd7, 0xa3, 0xbe, 0x8d, 0xe8, 0x3e, 0xb3, 0xd7, 0xab, 0x8b, 0x96, 0xa5, 0x34, 0x87, 0x86, 0xbe, + 0xfa, 0x69, 0xba, 0xfa, 0xfe, 0xf9, 0x86, 0x15, 0x7e, 0xe3, 0x46, 0xce, 0x9d, 0x18, 0xf0, 0x7d, + 0xf8, 0xe1, 0xd0, 0x88, 0xb5, 0xef, 0x27, 0xce, 0x69, 0x1f, 0x77, 0xa5, 0xbf, 0x1b, 0x33, 0x6d, + 0xc6, 0xf6, 0x09, 0x0b, 0x2f, 0x5e, 0x7e, 0xec, 0xce, 0x88, 0x7f, 0x3d, 0x78, 0xf6, 0xa7, 0xc4, + 0xea, 0xe8, 0x21, 0x37, 0xbb, 0x4a, 0xa7, 0xe7, 0x9b, 0x47, 0x47, 0x9f, 0x58, 0x77, 0xf8, 0xe5, + 0xbd, 0x47, 0xd6, 0xf6, 0x9e, 0x12, 0x19, 0x33, 0xf5, 0xe4, 0x48, 0xf5, 0x17, 0x85, 0x1f, 0xbd, + 0x34, 0xa1, 0xfc, 0xe4, 0xaf, 0x07, 0xf6, 0x14, 0x9d, 0x7c, 0xe2, 0x59, 0xaf, 0x8d, 0x6f, 0x7e, + 0x5f, 0xdf, 0xc5, 0xff, 0xf6, 0xb4, 0x49, 0x6b, 0x06, 0x9c, 0xca, 0x39, 0xf8, 0xd8, 0x26, 0xdf, + 0x89, 0xef, 0x8f, 0x78, 0x73, 0xf7, 0xa7, 0x7d, 0xf6, 0x4e, 0x11, 0x55, 0x34, 0xaf, 0x5d, 0xfe, + 0xc3, 0xab, 0x1d, 0x54, 0xde, 0x11, 0xab, 0x22, 0x0a, 0x07, 0x07, 0xcd, 0x7f, 0x2f, 0xc0, 0x36, + 0x7b, 0xf7, 0xb8, 0xb3, 0xd1, 0xba, 0xf3, 0x45, 0xba, 0xc4, 0x4f, 0x8f, 0x2f, 0xb9, 0x31, 0x4d, + 0xe2, 0xb9, 0xf4, 0xca, 0xd6, 0x8d, 0x2f, 0x24, 0xfa, 0xbc, 0xdd, 0x25, 0x74, 0x63, 0x67, 0x4b, + 0xf4, 0xb1, 0xd8, 0x90, 0x67, 0x0b, 0xff, 0xf8, 0xe2, 0xce, 0xb7, 0x3f, 0xbd, 0xbb, 0xd0, 0x3e, + 0xf8, 0xc9, 0xb5, 0x35, 0x87, 0x26, 0x1f, 0x96, 0x97, 0x2e, 0x19, 0xfd, 0xa9, 0xed, 0xa6, 0xd4, + 0xfd, 0x3c, 0xcb, 0x4b, 0x50, 0xa4, 0xa0, 0x2c, 0xab, 0xbf, 0x8c, 0x8c, 0xf7, 0xf3, 0x20, 0x4f, + 0xc2, 0x7d, 0x31, 0x5a, 0x92, 0x21, 0x9e, 0xa4, 0x56, 0xe1, 0x41, 0x25, 0xc1, 0x58, 0x2a, 0xdf, + 0xea, 0x49, 0x56, 0x09, 0x52, 0x6c, 0x15, 0x00, 0x46, 0x78, 0xbe, 0x08, 0xdf, 0x51, 0xd2, 0x2b, + 0x03, 0x20, 0x10, 0x9e, 0xab, 0x1e, 0xf3, 0x20, 0xfd, 0xe0, 0xbe, 0x0c, 0x7d, 0xaf, 0xc2, 0x73, + 0x5d, 0x7b, 0x0f, 0x2a, 0x69, 0x85, 0x96, 0x69, 0x34, 0xf0, 0x5c, 0x03, 0x57, 0xfc, 0xaf, 0x04, + 0xb0, 0xc0, 0xf3, 0x0d, 0x85, 0x07, 0x95, 0xbf, 0x4d, 0x07, 0xf0, 0xef, 0x20, 0x23, 0x97, 0x21, + 0x7e, 0x30, 0x41, 0xa3, 0x3f, 0x32, 0x12, 0x0e, 0xdf, 0xf7, 0x41, 0x7c, 0x94, 0x84, 0x1a, 0x8b, + 0x16, 0x8b, 0xe1, 0x79, 0x0d, 0x95, 0xd5, 0x95, 0x91, 0x99, 0x00, 0x66, 0x78, 0x6e, 0x50, 0x78, + 0xd0, 0xf4, 0x46, 0x50, 0x89, 0x38, 0x4f, 0x52, 0xed, 0xef, 0x41, 0xd2, 0x04, 0x29, 0xb8, 0x28, + 0x78, 0x3e, 0x0d, 0xf5, 0xe9, 0x28, 0x48, 0xcd, 0xe9, 0xe0, 0x79, 0x2b, 0xfa, 0x03, 0x73, 0x4a, + 0xd6, 0x79, 0x92, 0xbb, 0x0a, 0x5e, 0x12, 0x06, 0xa5, 0xe0, 0xfc, 0x20, 0xff, 0xb7, 0x21, 0xff, + 0x6e, 0x82, 0x14, 0x5c, 0x18, 0x7c, 0xdf, 0x03, 0xf9, 0x7b, 0x0b, 0x52, 0x73, 0x4a, 0x78, 0x5e, + 0xdd, 0x4a, 0xb2, 0xce, 0x93, 0xd4, 0x43, 0x7c, 0x0f, 0x41, 0x0a, 0xae, 0x13, 0x3c, 0x2f, 0x81, + 0xfc, 0x63, 0x05, 0x29, 0xb8, 0xbe, 0xf0, 0x7c, 0x02, 0xf2, 0x7f, 0x4c, 0x90, 0x9a, 0xd3, 0xc2, + 0xf3, 0xe6, 0x56, 0x92, 0x75, 0x9e, 0xa4, 0x51, 0xe1, 0x41, 0x25, 0xc5, 0x50, 0x0a, 0x2e, 0xc0, + 0x08, 0x6d, 0x0b, 0xf9, 0x3f, 0x2d, 0x48, 0xc1, 0x45, 0xc0, 0xf7, 0x43, 0x90, 0x7f, 0x3b, 0x41, + 0x6a, 0x4e, 0x0d, 0xcf, 0xeb, 0x5b, 0x49, 0xd6, 0x79, 0x92, 0xab, 0x0a, 0x0f, 0x2a, 0xa9, 0x36, + 0x8a, 0x4a, 0xc4, 0x79, 0x92, 0xe5, 0x90, 0xff, 0x18, 0x41, 0x0a, 0x2e, 0x1a, 0x9e, 0xcf, 0x41, + 0xfe, 0x9d, 0x05, 0xa9, 0xb9, 0x50, 0x78, 0xde, 0xd1, 0x4a, 0xb2, 0xce, 0x93, 0xdc, 0x17, 0xfa, + 0x1f, 0xa5, 0xe0, 0xda, 0x43, 0xfd, 0x67, 0x08, 0xfd, 0x3f, 0x8e, 0x4a, 0xc4, 0x79, 0x92, 0xdd, + 0x42, 0xff, 0x8f, 0xa6, 0x12, 0x74, 0x9e, 0x54, 0x82, 0xb0, 0x45, 0xb2, 0xce, 0x93, 0x5c, 0x12, + 0xfa, 0xff, 0x59, 0x2a, 0x11, 0xe7, 0x49, 0x16, 0x09, 0xfd, 0x3f, 0x89, 0x4a, 0xc4, 0x79, 0x92, + 0x63, 0x42, 0xff, 0xe7, 0x50, 0x09, 0x3a, 0x4f, 0x2a, 0x61, 0xd8, 0x22, 0x59, 0xe7, 0x49, 0x6e, + 0x09, 0xfd, 0x8f, 0x52, 0x70, 0x1d, 0x14, 0x32, 0x91, 0x58, 0xe8, 0xff, 0xe7, 0xa9, 0x44, 0x9c, + 0x27, 0x39, 0x20, 0xf4, 0x7f, 0x16, 0x95, 0xa0, 0xf3, 0xa4, 0x12, 0x88, 0x2d, 0x92, 0x75, 0x9e, + 0xe4, 0x67, 0xa1, 0xff, 0x47, 0x52, 0x89, 0x38, 0x4f, 0xf2, 0x9a, 0xd0, 0xff, 0xff, 0xa6, 0x12, + 0x71, 0x9e, 0xe4, 0xac, 0xd0, 0xff, 0x05, 0x54, 0x82, 0xce, 0x93, 0x4a, 0x28, 0xb6, 0x48, 0xd6, + 0x79, 0x92, 0x26, 0xa1, 0xff, 0x31, 0xce, 0x63, 0x50, 0xff, 0x2f, 0x84, 0xfe, 0x1f, 0x0f, 0x80, + 0xd2, 0x71, 0x7b, 0x85, 0xfe, 0x1f, 0x43, 0x25, 0xa4, 0x3c, 0xa9, 0x04, 0x63, 0x8b, 0xe4, 0x94, + 0x27, 0xb9, 0x22, 0xf4, 0xff, 0xbf, 0x00, 0x50, 0xda, 0x6d, 0x99, 0xd0, 0xff, 0x2f, 0x00, 0xa0, + 0x74, 0xdb, 0x49, 0xa1, 0xff, 0xd1, 0x17, 0x31, 0x4a, 0xcb, 0xa1, 0x84, 0x23, 0xa6, 0xf7, 0x32, + 0x00, 0x4a, 0xd3, 0xdd, 0x11, 0xfa, 0x7f, 0x18, 0x40, 0x47, 0x97, 0xfe, 0x9f, 0x08, 0x80, 0xd2, + 0x69, 0x87, 0x85, 0xfe, 0xb7, 0x03, 0xa0, 0xb4, 0xdb, 0x06, 0x2a, 0xf7, 0x25, 0x23, 0x2f, 0x02, + 0xa0, 0x34, 0xdc, 0xaf, 0x42, 0xff, 0x3f, 0x07, 0x80, 0xd2, 0x66, 0x2b, 0x84, 0xfe, 0x9f, 0x0a, + 0x80, 0xd2, 0x65, 0xe7, 0x85, 0xfe, 0x2f, 0x02, 0x40, 0x69, 0x35, 0x94, 0x90, 0xc4, 0xf4, 0x16, + 0x00, 0xa0, 0x34, 0x5b, 0xf3, 0xdf, 0xcc, 0xff, 0x5d, 0x6d, 0xe6, 0xff, 0x9b, 0x6d, 0xe6, 0xff, + 0xf7, 0x6d, 0xe6, 0xff, 0xc2, 0x36, 0xf3, 0xff, 0x68, 0x9b, 0xf9, 0xbf, 0xb1, 0xcd, 0xfc, 0xbf, + 0xf9, 0x37, 0xf3, 0x7f, 0x7f, 0x9b, 0xf9, 0xbf, 0xb6, 0xcd, 0xfc, 0xff, 0xa9, 0xcd, 0xfc, 0x7f, + 0xb5, 0xcd, 0xfc, 0x3f, 0xd3, 0x66, 0xfe, 0x7f, 0xda, 0x66, 0xfe, 0xdf, 0xfb, 0x9b, 0xf9, 0xff, + 0x65, 0x9b, 0xf9, 0xff, 0x4e, 0x9b, 0xf9, 0xff, 0x43, 0x9b, 0xf9, 0xbf, 0xb4, 0xcd, 0xfc, 0xff, + 0xa6, 0xcd, 0xfc, 0xdf, 0xd2, 0x66, 0xfe, 0xff, 0xf6, 0x37, 0xf3, 0xff, 0xeb, 0x36, 0xf3, 0xff, + 0x83, 0x36, 0xf3, 0xff, 0x5a, 0x9b, 0xf9, 0xff, 0x46, 0x9b, 0xf9, 0xff, 0x5d, 0x9b, 0xf9, 0xff, + 0x59, 0x9b, 0xf9, 0xff, 0xe0, 0x6f, 0xe6, 0xff, 0x17, 0x6d, 0xe6, 0xff, 0xdb, 0x6d, 0xe6, 0xff, + 0xe5, 0x36, 0xf3, 0x7f, 0x71, 0x9b, 0xf9, 0x7f, 0xbc, 0xcd, 0xfc, 0xff, 0xa8, 0xcd, 0xfc, 0xbf, + 0xfd, 0x37, 0xf3, 0xff, 0x60, 0x9b, 0xf9, 0xff, 0x7e, 0x9b, 0xf9, 0xff, 0x4b, 0x9b, 0xf9, 0xff, + 0x7a, 0x9b, 0xf9, 0xff, 0x6d, 0x9b, 0xf9, 0xbf, 0xbd, 0xcd, 0xfc, 0xff, 0xe3, 0x6f, 0xe6, 0xff, + 0x57, 0x6d, 0xe6, 0xff, 0x7b, 0x6d, 0xe6, 0xff, 0x8f, 0x6d, 0xe6, 0xff, 0x2b, 0x6d, 0xe6, 0xff, + 0xa9, 0x36, 0xf3, 0xff, 0x93, 0x36, 0xf3, 0xff, 0xf7, 0xbf, 0x99, 0xff, 0x47, 0xda, 0xcc, 0xff, + 0x0f, 0xdb, 0xcc, 0xff, 0xeb, 0x6d, 0xe6, 0xff, 0xca, 0x36, 0xf3, 0xff, 0x42, 0x9b, 0xf9, 0xff, + 0x79, 0x9b, 0xf9, 0xcf, 0x29, 0xdc, 0x89, 0xa8, 0xa3, 0xbb, 0x48, 0xf4, 0x98, 0x3b, 0x69, 0xdf, + 0xd9, 0x5d, 0x21, 0x6a, 0xef, 0x4e, 0xdc, 0x1f, 0x77, 0x97, 0x88, 0x3a, 0xb8, 0x93, 0x98, 0x27, + 0xdc, 0x8d, 0x22, 0xf8, 0xee, 0x16, 0xe8, 0x2e, 0x16, 0xf9, 0xbb, 0x93, 0xae, 0x41, 0xee, 0x8c, + 0xc8, 0xcf, 0x9d, 0x78, 0x76, 0x72, 0x97, 0x89, 0x02, 0xdc, 0xc9, 0x34, 0xa3, 0x3b, 0x21, 0xf0, + 0x5d, 0x0c, 0xf1, 0xa7, 0x41, 0xfc, 0xc7, 0x3b, 0xbb, 0x07, 0x62, 0x7c, 0x8f, 0xc7, 0xdd, 0xa5, + 0x18, 0x7f, 0xf4, 0x13, 0xee, 0x2c, 0xc6, 0x97, 0x04, 0xba, 0xbb, 0x61, 0xfc, 0x9e, 0x41, 0xee, + 0x06, 0x8c, 0xef, 0xd3, 0xc9, 0x5d, 0x8e, 0xf1, 0x77, 0x61, 0x7c, 0xa2, 0x80, 0xf1, 0xe1, 0x47, + 0xc7, 0x20, 0xd6, 0x44, 0x4a, 0xe5, 0xf7, 0xbd, 0x61, 0x4c, 0xc8, 0xd1, 0x3a, 0x13, 0x5a, 0x7f, + 0x86, 0xf1, 0xd6, 0x8e, 0xc9, 0x29, 0xfc, 0x3b, 0xad, 0x9f, 0xd6, 0x0a, 0x3e, 0x6e, 0x54, 0x3f, + 0x40, 0x4a, 0xdb, 0xca, 0x13, 0xd2, 0xf4, 0x86, 0xb4, 0xda, 0x41, 0x4e, 0x8f, 0xc1, 0x68, 0xe8, + 0x0c, 0x2d, 0xd5, 0x0d, 0x7a, 0xe3, 0x69, 0xe8, 0xa1, 0x58, 0xe8, 0xf9, 0x31, 0xd0, 0xdb, 0x33, + 0x60, 0x64, 0x7f, 0x41, 0x2e, 0x8b, 0xc4, 0x82, 0xe4, 0xa7, 0x58, 0x48, 0x01, 0xcb, 0xe4, 0x03, + 0xf1, 0x1e, 0x87, 0xd1, 0xdf, 0x13, 0x46, 0xfc, 0x68, 0x18, 0xf9, 0xbb, 0x44, 0x22, 0xd1, 0x34, + 0xb1, 0xc8, 0x4d, 0x24, 0x11, 0x49, 0x45, 0x32, 0x91, 0x5c, 0xa4, 0x10, 0x05, 0x8a, 0x18, 0x91, + 0x41, 0x64, 0x14, 0xb1, 0xbc, 0xed, 0x00, 0x45, 0x9b, 0xff, 0xf6, 0xc2, 0xbf, 0x9f, 0xf0, 0xff, + 0x98, 0xf0, 0xef, 0x2f, 0xfc, 0x77, 0x10, 0xfe, 0x15, 0x30, 0x27, 0xbe, 0x68, 0x15, 0xcb, 0x11, + 0xda, 0x11, 0x2a, 0x00, 0xfe, 0x3b, 0xc2, 0x7f, 0x20, 0xfc, 0x3f, 0x0e, 0xff, 0x9d, 0xe0, 0xbf, + 0x33, 0xfc, 0x07, 0xc1, 0xff, 0x13, 0xf0, 0x6f, 0x24, 0xc6, 0xe7, 0x4b, 0x73, 0xf2, 0x73, 0x4a, + 0x27, 0x39, 0xcd, 0x34, 0x8c, 0x2d, 0x1a, 0xef, 0xbc, 0xb7, 0x97, 0x8c, 0x2e, 0xce, 0xce, 0x19, + 0xd3, 0xf2, 0x22, 0xa7, 0xb0, 0xf4, 0xf9, 0x9c, 0xd2, 0x1c, 0x17, 0xab, 0x0e, 0x63, 0xa0, 0x6d, + 0x9f, 0xe3, 0x7f, 0x8b, 0x6c, 0xc2, 0x4d, 0x18, 0xbd, 0x6d, 0x79, 0x7e, 0x2a, 0x7f, 0xec, 0x53, + 0xe3, 0x49, 0x28, 0x74, 0x4a, 0x11, 0x99, 0x58, 0x54, 0x92, 0x97, 0x99, 0x55, 0x38, 0x26, 0xbb, + 0x25, 0x85, 0x49, 0x99, 0x59, 0x25, 0x0f, 0xe5, 0x64, 0xce, 0x19, 0x9f, 0xf7, 0x27, 0x9f, 0x1e, + 0x4e, 0x02, 0x03, 0xf3, 0xc9, 0xf3, 0xbf, 0x71, 0xc9, 0x43, 0xfb, 0xa6, 0x3d, 0x9b, 0x46, 0xf4, + 0x7d, 0xc9, 0x53, 0xe3, 0xf5, 0x63, 0xb3, 0x6c, 0xcf, 0x3d, 0x35, 0x9e, 0xff, 0xf2, 0xe8, 0x14, + 0xfb, 0xd2, 0xdc, 0xb4, 0x5a, 0x2d, 0x63, 0x1e, 0x94, 0xdc, 0x3d, 0x9d, 0x89, 0x33, 0x27, 0xa6, + 0x33, 0xe9, 0x96, 0x38, 0x26, 0x7e, 0x50, 0x52, 0xd2, 0xa0, 0x61, 0x89, 0xc9, 0x09, 0x4c, 0x52, + 0x62, 0x72, 0x5c, 0x5a, 0xd7, 0xae, 0x0c, 0x04, 0xc2, 0xe4, 0x63, 0x52, 0x63, 0x69, 0x0e, 0x34, + 0xa2, 0xb9, 0x64, 0xf4, 0xc4, 0xac, 0x12, 0x92, 0x5e, 0x54, 0x94, 0x4f, 0x52, 0x4a, 0x8a, 0x72, + 0xb3, 0xc6, 0x94, 0x92, 0xf4, 0x92, 0xd1, 0xe3, 0xb3, 0xc7, 0x8c, 0x2e, 0x24, 0xe6, 0xac, 0x09, + 0x39, 0x63, 0xb2, 0xc8, 0x80, 0x9c, 0x31, 0x79, 0x24, 0xa6, 0xb8, 0x38, 0x71, 0x4c, 0x51, 0x21, + 0x81, 0x98, 0x7d, 0xd3, 0x26, 0x8d, 0x2f, 0xcd, 0x2a, 0xd0, 0x63, 0x02, 0x38, 0x3e, 0x81, 0xad, + 0x2e, 0x29, 0x29, 0x2a, 0x61, 0xc6, 0x66, 0x8d, 0x29, 0x1a, 0x9b, 0x53, 0x68, 0x67, 0x0a, 0xb3, + 0x26, 0x52, 0xf3, 0x1a, 0xcc, 0xd8, 0xd1, 0xa5, 0xa3, 0x49, 0x8e, 0xcd, 0x56, 0x3c, 0xba, 0x64, + 0x7c, 0x56, 0x8b, 0x35, 0x8d, 0xe4, 0xac, 0x89, 0x89, 0x8e, 0xcf, 0x4c, 0x69, 0xc9, 0xf3, 0x85, + 0x63, 0x60, 0xc0, 0x8f, 0x6d, 0xfd, 0x3a, 0xa7, 0x70, 0xc2, 0xe8, 0xfc, 0x9c, 0xb1, 0xff, 0xbc, + 0x66, 0x58, 0xb0, 0xd8, 0xfc, 0xd1, 0xe3, 0xc7, 0x67, 0x41, 0xb3, 0x41, 0x0a, 0xa5, 0x93, 0x8a, + 0xe1, 0xae, 0xb8, 0xd0, 0x1e, 0xea, 0x78, 0x22, 0x54, 0xbb, 0xce, 0xf9, 0xcd, 0x59, 0x9e, 0x81, + 0x45, 0x13, 0xfe, 0x3f, 0xcc, 0xfd, 0x0d, 0x7c, 0x54, 0xd5, 0xb5, 0x30, 0x8c, 0xaf, 0x73, 0x66, + 0x32, 0x0c, 0xc9, 0x18, 0xc7, 0x18, 0xd3, 0x18, 0x53, 0x3c, 0x4e, 0x87, 0x71, 0x98, 0x0c, 0x99, + 0x21, 0x8d, 0x34, 0x4d, 0x53, 0x9c, 0x4c, 0x26, 0x61, 0x32, 0x84, 0x31, 0x4e, 0x02, 0xa6, 0x94, + 0x87, 0x1e, 0x43, 0x32, 0x03, 0x31, 0x1f, 0xd3, 0x21, 0xa4, 0x29, 0x6f, 0x5e, 0x9c, 0x99, 0x04, + 0x0c, 0x1f, 0xf2, 0x2d, 0xd7, 0x5a, 0xdb, 0xeb, 0xed, 0xf5, 0xb6, 0x18, 0x50, 0x23, 0x52, 0x9a, + 0x9b, 0x72, 0x31, 0x22, 0xf5, 0x41, 0xa4, 0x3e, 0x01, 0x23, 0xa5, 0x5e, 0xaa, 0x88, 0x80, 0x88, + 0x28, 0xd4, 0x22, 0xd2, 0x08, 0x39, 0xff, 0xb5, 0xf6, 0x39, 0x33, 0x99, 0x04, 0xb4, 0xed, 0xbd, + 0xf7, 0x7d, 0x7e, 0xff, 0xc0, 0x99, 0xb3, 0xf7, 0x3e, 0xfb, 0x63, 0xed, 0xb5, 0xd7, 0x5e, 0x7b, + 0xad, 0xfd, 0xb1, 0xf6, 0xe2, 0x7a, 0x28, 0x6e, 0x5e, 0xdc, 0xf4, 0x20, 0xd1, 0x07, 0x54, 0x2e, + 0x5e, 0xd8, 0xba, 0x34, 0x54, 0x0f, 0xb3, 0x97, 0x2e, 0x59, 0xbc, 0x10, 0xca, 0x9b, 0x97, 0x20, + 0x88, 0x4d, 0xf5, 0xcd, 0xad, 0x50, 0xd5, 0xb2, 0xb4, 0xb9, 0x0e, 0x5c, 0x2d, 0x0b, 0x65, 0x6f, + 0x75, 0x7d, 0x3b, 0x86, 0x31, 0x5c, 0x80, 0xaf, 0x78, 0x76, 0x21, 0xfd, 0xe0, 0xe3, 0x02, 0x57, + 0x19, 0x94, 0x35, 0xb6, 0x04, 0x11, 0x33, 0x25, 0x2e, 0xfc, 0xef, 0xbb, 0x6f, 0x36, 0xb8, 0xdc, + 0xe0, 0x76, 0x41, 0xe9, 0xec, 0x39, 0xe0, 0x7e, 0x30, 0x54, 0x57, 0x47, 0xa8, 0x77, 0xdf, 0x37, + 0xbb, 0x14, 0xdc, 0x2d, 0x4d, 0xf5, 0x50, 0x56, 0x5c, 0x0d, 0x55, 0x65, 0x55, 0x50, 0x8c, 0x09, + 0x59, 0xab, 0xcc, 0xa9, 0x72, 0x42, 0x6e, 0xa8, 0x7e, 0xe1, 0x8f, 0x17, 0x36, 0x22, 0x5e, 0x18, + 0x27, 0x18, 0xf3, 0xdb, 0x5c, 0x5f, 0x5f, 0x27, 0xd4, 0x21, 0x98, 0x08, 0x2e, 0xd5, 0x00, 0x21, + 0xac, 0x7f, 0xb0, 0x49, 0xa8, 0x47, 0xe8, 0xc0, 0xbf, 0xb8, 0xb1, 0x5e, 0x60, 0x0d, 0x12, 0x0f, + 0x66, 0x1e, 0x86, 0x55, 0xd9, 0xb9, 0xb8, 0x79, 0xc9, 0x52, 0xbf, 0x7f, 0xf1, 0xc2, 0xc5, 0x58, + 0x0b, 0xa1, 0xa9, 0xbe, 0xa9, 0x05, 0xb3, 0xa8, 0xc5, 0x10, 0x64, 0x28, 0xb1, 0x08, 0x0b, 0x5b, + 0x9a, 0x82, 0x88, 0x8d, 0x5a, 0xcc, 0xab, 0xad, 0x3e, 0xb4, 0x84, 0xd0, 0x42, 0x81, 0x21, 0x04, + 0xaa, 0x55, 0x58, 0x54, 0xff, 0x60, 0x1d, 0xc6, 0x5d, 0xb8, 0xa8, 0x1e, 0x09, 0x63, 0x69, 0xf3, + 0x43, 0xcd, 0x2d, 0x3f, 0x6a, 0x16, 0x28, 0x45, 0xa8, 0x7e, 0x09, 0x45, 0xc5, 0x3c, 0x5b, 0x17, + 0xb5, 0xd4, 0x81, 0xd2, 0x86, 0xc2, 0x8f, 0x16, 0x37, 0xd7, 0xb5, 0xfc, 0x48, 0x58, 0xb2, 0x78, + 0x59, 0x7d, 0x3c, 0xba, 0x92, 0x07, 0xf2, 0xba, 0xc0, 0x12, 0x61, 0x49, 0x7d, 0x2b, 0xc4, 0x32, + 0x0d, 0x2d, 0x14, 0x9a, 0x16, 0x2f, 0xc1, 0xa6, 0x58, 0xb8, 0x28, 0x9e, 0x41, 0x6d, 0x63, 0xcb, + 0xc2, 0x87, 0x04, 0xb9, 0x0d, 0x95, 0xa0, 0x25, 0xad, 0x2d, 0xa1, 0xfa, 0xd8, 0x97, 0xc6, 0xfa, + 0xe6, 0x40, 0xeb, 0xa2, 0x25, 0xd0, 0xda, 0xd2, 0x22, 0x34, 0x3d, 0xd8, 0xfc, 0x63, 0x25, 0x40, + 0x20, 0xa2, 0x5c, 0xbc, 0xa4, 0xf5, 0xc1, 0xe6, 0x85, 0xf5, 0xc2, 0x92, 0x1f, 0x37, 0xd5, 0xb6, + 0x34, 0x2e, 0x89, 0x67, 0x80, 0xb4, 0x5a, 0x1f, 0x4b, 0xc8, 0x00, 0x88, 0x17, 0xb6, 0xb8, 0x35, + 0x96, 0x3e, 0x54, 0x1f, 0xac, 0x7f, 0xb0, 0x75, 0x6c, 0x92, 0xa9, 0x53, 0x09, 0xbe, 0x25, 0x44, + 0xe7, 0x88, 0xef, 0xa9, 0x2d, 0xfe, 0xa9, 0x0c, 0x86, 0x78, 0x24, 0xe4, 0x48, 0xf5, 0xa1, 0x07, + 0x1b, 0x6d, 0x37, 0xca, 0x3a, 0x06, 0xcc, 0xd8, 0xd0, 0xb1, 0x29, 0x58, 0x29, 0xd7, 0xa5, 0xf8, + 0x92, 0x50, 0xaa, 0xb0, 0xff, 0xc1, 0x90, 0x50, 0xfb, 0x20, 0x83, 0x20, 0xd6, 0x40, 0xac, 0xad, + 0xe5, 0xe6, 0x19, 0x0d, 0x8c, 0x65, 0xaf, 0x04, 0x7f, 0x75, 0x4e, 0x5f, 0x55, 0xfa, 0x8d, 0xe0, + 0x8d, 0x9d, 0x23, 0x38, 0xb5, 0xff, 0xdc, 0xa8, 0xfb, 0x77, 0x5b, 0x63, 0x16, 0x77, 0xf0, 0x99, + 0xac, 0xbc, 0x8d, 0xca, 0xb9, 0x5c, 0x7a, 0xdf, 0xa5, 0x9c, 0x57, 0xb8, 0x5b, 0xf1, 0x43, 0x42, + 0x7c, 0x66, 0x3f, 0x87, 0xec, 0x0e, 0xd9, 0x52, 0x6d, 0xc9, 0x55, 0xcd, 0x20, 0xd8, 0x52, 0x9d, + 0xbf, 0x72, 0xb7, 0x4b, 0x92, 0xfb, 0xc7, 0x70, 0xea, 0xff, 0x61, 0x36, 0x00, 0x8b, 0xe6, 0x33, + 0x3b, 0x6e, 0xf8, 0xcd, 0xaf, 0xd7, 0xe6, 0xd2, 0x31, 0xfb, 0x80, 0x56, 0x48, 0xf5, 0x3e, 0x27, + 0x7d, 0x22, 0xdb, 0xb5, 0x94, 0x6d, 0x17, 0xdb, 0x52, 0x63, 0x36, 0xe1, 0x58, 0x4a, 0x6d, 0x42, + 0xca, 0x70, 0x40, 0xe7, 0xc3, 0xd4, 0x7c, 0xae, 0xf4, 0x39, 0xa4, 0x8a, 0xfc, 0xcf, 0xde, 0x10, + 0x52, 0xe5, 0x7b, 0xb1, 0x84, 0x3c, 0xa3, 0x97, 0xe5, 0xbb, 0xdc, 0x98, 0xcb, 0x27, 0xc7, 0x72, + 0x90, 0xcb, 0xde, 0xf7, 0xf8, 0x98, 0x1c, 0xe6, 0x1b, 0xbc, 0xd6, 0x1f, 0xd3, 0xc1, 0x07, 0x2c, + 0x57, 0x4d, 0x10, 0x2a, 0xe5, 0x08, 0x33, 0xff, 0x0a, 0xd2, 0x77, 0xce, 0x7a, 0x37, 0x27, 0x40, + 0x6d, 0xf7, 0x6e, 0xc6, 0xb7, 0x54, 0xe4, 0x63, 0x39, 0x54, 0x32, 0x4b, 0x78, 0x7a, 0x76, 0x33, + 0x4e, 0x9a, 0xc1, 0xb3, 0x79, 0x60, 0x30, 0x12, 0xcf, 0x29, 0x97, 0x2c, 0xba, 0x89, 0xf2, 0x59, + 0xb4, 0x54, 0xf9, 0x26, 0xee, 0x0a, 0xb5, 0x6c, 0xf1, 0xd2, 0xe8, 0xb8, 0x87, 0xee, 0x8a, 0xc8, + 0x98, 0xec, 0xe6, 0x93, 0x13, 0x72, 0xab, 0xa8, 0x59, 0x8f, 0xd0, 0x88, 0x63, 0xea, 0x5a, 0x10, + 0x83, 0x81, 0xdd, 0x45, 0x11, 0x0e, 0x38, 0x13, 0x60, 0x31, 0x7b, 0x37, 0xdb, 0x92, 0x13, 0x63, + 0xef, 0x7b, 0x9a, 0x62, 0x17, 0xcd, 0x67, 0xb1, 0xb3, 0x3d, 0x61, 0x7f, 0x9d, 0x2d, 0x79, 0x34, + 0x3e, 0xd6, 0x9a, 0xc2, 0xf5, 0xff, 0xb3, 0x35, 0x94, 0xed, 0x79, 0x92, 0xfd, 0x4d, 0xef, 0x0f, + 0x65, 0x6b, 0xd4, 0xb2, 0x95, 0xe9, 0x91, 0x5a, 0xd6, 0x76, 0xc9, 0x46, 0xb2, 0x4f, 0x6d, 0xe1, + 0x27, 0x05, 0x52, 0x6d, 0xdf, 0xa6, 0x74, 0x64, 0x71, 0x53, 0x3a, 0x56, 0xb9, 0x1e, 0xc3, 0x4c, + 0x63, 0xc2, 0xf6, 0xb3, 0x30, 0xc3, 0x98, 0xb0, 0x5e, 0x16, 0x66, 0x19, 0x13, 0xf6, 0x24, 0x0b, + 0xcb, 0x18, 0x13, 0xd6, 0xcd, 0xc2, 0xd2, 0xc6, 0x84, 0xb5, 0xb2, 0xb0, 0xd4, 0x31, 0x61, 0xe2, + 0x0d, 0xd2, 0x56, 0x54, 0xae, 0x0f, 0x72, 0xc6, 0x18, 0xcd, 0xb4, 0x40, 0xfa, 0xe4, 0x0e, 0x38, + 0x3d, 0xb1, 0x1f, 0x2c, 0x93, 0x3d, 0x90, 0x57, 0x7c, 0x0e, 0xa6, 0xc7, 0xea, 0x7b, 0xed, 0x48, + 0x2b, 0x10, 0xbe, 0xf8, 0x46, 0xc1, 0x79, 0x78, 0x1f, 0xfe, 0x3b, 0x50, 0x7c, 0xb1, 0xbb, 0x8e, + 0x6e, 0x33, 0xf7, 0x6e, 0xf6, 0x45, 0x6b, 0xd6, 0x07, 0x85, 0xde, 0xa8, 0xff, 0x94, 0xb3, 0x87, + 0x3b, 0xab, 0x2f, 0x02, 0xfd, 0x64, 0x07, 0x77, 0xfe, 0x9e, 0x0e, 0xe9, 0x2a, 0x77, 0x11, 0xdb, + 0x5a, 0xcd, 0x5d, 0x62, 0xee, 0x4f, 0x99, 0xfb, 0xb2, 0xb3, 0x81, 0xbb, 0x82, 0xf1, 0x46, 0x30, + 0xde, 0xed, 0x93, 0x1d, 0x3c, 0x8f, 0xa1, 0x1c, 0xaf, 0x61, 0xbf, 0xda, 0x92, 0xbf, 0xc2, 0xa9, + 0xff, 0x48, 0x76, 0x42, 0xbc, 0xd4, 0x63, 0x18, 0x23, 0x2b, 0xd0, 0xce, 0xc2, 0xb3, 0x82, 0x63, + 0xc3, 0x53, 0x03, 0x95, 0x2c, 0xdc, 0x14, 0xbc, 0x7b, 0x4c, 0x78, 0x5a, 0xc0, 0xcc, 0xc2, 0xbf, + 0x35, 0x2e, 0x7e, 0x86, 0x3f, 0x5f, 0xa9, 0x39, 0x62, 0xcb, 0xdb, 0x3f, 0x52, 0x59, 0xb9, 0x3e, + 0xee, 0x4f, 0x45, 0xbf, 0x23, 0xc1, 0x9f, 0x85, 0x7e, 0xbb, 0x72, 0x5f, 0x0e, 0x17, 0xa3, 0x5d, + 0xa1, 0xd0, 0xe4, 0x36, 0x4e, 0x34, 0x2f, 0x82, 0x64, 0x4f, 0xa5, 0x3f, 0x37, 0x28, 0x86, 0x38, + 0x77, 0x71, 0x9c, 0x1e, 0x0a, 0xcd, 0x64, 0x1d, 0x36, 0x57, 0x98, 0x65, 0xbf, 0x0a, 0xc9, 0xdf, + 0xee, 0x40, 0x49, 0x36, 0xd5, 0xe0, 0x88, 0x7f, 0x4d, 0xb6, 0x57, 0x09, 0x5a, 0x5f, 0xf8, 0x83, + 0xee, 0x3f, 0x0e, 0x98, 0xa3, 0x53, 0x3c, 0xa0, 0xae, 0xaa, 0x0a, 0x72, 0xf2, 0xad, 0x73, 0xf3, + 0xd5, 0xcc, 0xbe, 0xf3, 0x21, 0xf7, 0x07, 0xf6, 0x02, 0xa3, 0xdb, 0x54, 0x8e, 0xf4, 0x99, 0x44, + 0xb4, 0xf8, 0x1f, 0xe5, 0xb6, 0x89, 0xe5, 0x88, 0xf1, 0xc2, 0x21, 0xef, 0x16, 0x85, 0xfe, 0x01, + 0x7a, 0xf0, 0xab, 0x96, 0x7d, 0xbd, 0xcf, 0x96, 0x12, 0x0b, 0xf7, 0x1b, 0x58, 0x48, 0x4d, 0xf9, + 0xc7, 0xd2, 0x1b, 0x36, 0x1d, 0xbb, 0x49, 0xa0, 0xd7, 0xfd, 0x10, 0x59, 0xa3, 0x67, 0xee, 0x56, + 0x11, 0x60, 0x6d, 0xf1, 0x47, 0x90, 0xe4, 0x2c, 0xf9, 0xc9, 0x21, 0x31, 0xb3, 0xe4, 0xd2, 0x01, + 0x78, 0xf3, 0xb5, 0xf2, 0x3f, 0x1f, 0x80, 0x3f, 0x1e, 0x22, 0x0b, 0x7a, 0x20, 0x95, 0x5f, 0xd2, + 0x0e, 0xb6, 0x71, 0x46, 0xad, 0x3e, 0x33, 0x0d, 0x34, 0x9c, 0x34, 0xa8, 0xe3, 0x60, 0xe2, 0xc2, + 0x63, 0x58, 0x92, 0x9a, 0xe5, 0xbb, 0x90, 0x59, 0x69, 0x44, 0x38, 0x94, 0xd2, 0x8c, 0x9e, 0x92, + 0x80, 0x60, 0xe3, 0xdd, 0x8d, 0x72, 0x3f, 0xfa, 0x8f, 0x45, 0x18, 0x33, 0xcf, 0xdd, 0x24, 0xbd, + 0x41, 0xb1, 0xf2, 0xf6, 0x90, 0x05, 0x47, 0x71, 0x92, 0x0c, 0x23, 0x85, 0x52, 0x1d, 0xbe, 0xdd, + 0xeb, 0xdd, 0x62, 0x4b, 0x41, 0xdf, 0x51, 0x06, 0x33, 0x59, 0xe5, 0x9d, 0x44, 0xdf, 0x64, 0xdb, + 0xe6, 0xdf, 0xd1, 0x3a, 0x2d, 0x30, 0x89, 0x72, 0xc7, 0xde, 0xf4, 0x71, 0xb6, 0x4e, 0xbe, 0xef, + 0x52, 0xaf, 0x3f, 0xa9, 0xd5, 0x00, 0x3c, 0xac, 0x0f, 0xeb, 0xcd, 0xc0, 0xc9, 0xee, 0x5b, 0x1c, + 0xc0, 0xa1, 0x8f, 0x8f, 0xfb, 0x78, 0x6a, 0x97, 0x7b, 0x0d, 0xb9, 0x5a, 0xa3, 0xd7, 0xa6, 0x8d, + 0xdd, 0xa1, 0x30, 0x3f, 0x9c, 0xd8, 0x32, 0xd7, 0xaa, 0x4d, 0xec, 0xd6, 0x4f, 0xdb, 0x04, 0xd9, + 0xf2, 0x2a, 0xe2, 0x86, 0x60, 0x5b, 0xa2, 0xdc, 0xb9, 0xd0, 0x6a, 0x50, 0xb5, 0x8e, 0x58, 0x1b, + 0xf8, 0x54, 0x76, 0x67, 0x30, 0x59, 0xe6, 0xd5, 0x07, 0x9a, 0x0d, 0xa0, 0x84, 0xe4, 0x5a, 0x20, + 0xe0, 0x33, 0xa8, 0x14, 0x5f, 0x5f, 0x3e, 0x04, 0x0a, 0x3c, 0x3d, 0xbc, 0xc5, 0x9f, 0xc1, 0x28, + 0xec, 0xc7, 0xe3, 0x28, 0xcc, 0x62, 0xa5, 0xfe, 0x9a, 0x61, 0x98, 0x20, 0xc7, 0xbf, 0xfa, 0x84, + 0xe0, 0x30, 0x94, 0x62, 0x9c, 0x32, 0xb2, 0x66, 0x67, 0x48, 0x52, 0x72, 0xf9, 0x25, 0xbb, 0x51, + 0x59, 0x3d, 0xc6, 0x57, 0x12, 0xcf, 0xc7, 0x4b, 0x7e, 0x3b, 0xf2, 0x4b, 0xd7, 0x55, 0x79, 0xec, + 0x10, 0x94, 0xbb, 0x41, 0xa8, 0x77, 0x22, 0x77, 0xc9, 0x64, 0x77, 0xf4, 0x29, 0x63, 0x83, 0x60, + 0x03, 0xad, 0xc1, 0x86, 0x78, 0xc3, 0xef, 0xf8, 0x2d, 0x9d, 0x6e, 0x86, 0x91, 0x47, 0x00, 0x3b, + 0x6f, 0xb2, 0x41, 0xa6, 0xa0, 0x0a, 0x71, 0xa3, 0x14, 0x6a, 0x84, 0x80, 0xc5, 0x66, 0x83, 0x6c, + 0x9b, 0xca, 0x06, 0x41, 0xef, 0xe0, 0xf3, 0xe8, 0x62, 0x3c, 0x05, 0x53, 0x1b, 0x0d, 0x4e, 0x41, + 0x15, 0x87, 0x81, 0x6c, 0x4c, 0xeb, 0x89, 0x67, 0x93, 0x95, 0x7d, 0xf7, 0x07, 0x05, 0xbc, 0x11, + 0xf3, 0x0a, 0x94, 0xc9, 0x74, 0x40, 0x18, 0x36, 0x81, 0xaf, 0x73, 0x6c, 0xde, 0x66, 0x08, 0x98, + 0xc6, 0xe4, 0x2d, 0xb0, 0xbc, 0x1d, 0x36, 0xde, 0xa6, 0x96, 0xb1, 0x4e, 0x76, 0xab, 0x95, 0xbb, + 0x65, 0xde, 0x75, 0x30, 0xeb, 0xc7, 0x45, 0x74, 0xaf, 0x8c, 0xd9, 0x6c, 0x03, 0x7b, 0xbe, 0x0d, + 0x72, 0x83, 0xe9, 0x63, 0x60, 0x75, 0x30, 0x7a, 0xff, 0x45, 0x9b, 0xf7, 0x28, 0xdd, 0x1b, 0xa5, + 0x46, 0x8a, 0x49, 0xb7, 0x01, 0xdd, 0x6c, 0x37, 0x72, 0x9e, 0xb9, 0x53, 0x64, 0xda, 0xb9, 0x07, + 0x79, 0x0e, 0xb3, 0x24, 0x4c, 0x37, 0x8b, 0xa9, 0x0b, 0x73, 0x40, 0xcb, 0xb8, 0xbf, 0x33, 0xe0, + 0xb7, 0xbb, 0x83, 0x37, 0x0f, 0x76, 0x9f, 0x09, 0x97, 0xb3, 0x5b, 0xb1, 0x99, 0xad, 0xc8, 0x11, + 0x2c, 0xaa, 0x18, 0xe9, 0x64, 0x4b, 0xe5, 0x7a, 0x7b, 0xa9, 0x4d, 0x8b, 0x10, 0xa2, 0xcb, 0x08, + 0x21, 0xd5, 0x68, 0xb9, 0xd8, 0xde, 0x7a, 0x9b, 0x1a, 0xa1, 0x96, 0xcb, 0x22, 0xbb, 0x86, 0xfa, + 0xc9, 0xa5, 0x90, 0x1c, 0x48, 0xc7, 0xb0, 0x1c, 0x90, 0x6f, 0x31, 0x56, 0x6e, 0x47, 0x8a, 0xd9, + 0x73, 0x9e, 0x5f, 0xe4, 0x5d, 0x7a, 0xff, 0x7a, 0x66, 0x21, 0x1f, 0xf9, 0x83, 0xc9, 0x2b, 0xdf, + 0x30, 0xa7, 0x2e, 0x64, 0x76, 0xac, 0xed, 0x98, 0xab, 0xcf, 0xe8, 0xb0, 0x50, 0x88, 0x05, 0xdb, + 0x93, 0xfa, 0xe4, 0xa9, 0xab, 0x9f, 0x5a, 0x1c, 0x58, 0x0b, 0x2f, 0xd9, 0x87, 0x26, 0xab, 0x94, + 0xf7, 0x9c, 0xf2, 0x92, 0xcd, 0xfd, 0xf4, 0x7e, 0xf9, 0xa6, 0xa5, 0x66, 0x5b, 0x0e, 0x9f, 0x85, + 0x3d, 0x8c, 0xec, 0xc0, 0x16, 0x91, 0xad, 0x3b, 0x84, 0x24, 0x9d, 0x20, 0x21, 0x4b, 0xbb, 0x7e, + 0xe0, 0xbc, 0xf7, 0x34, 0x41, 0x14, 0x96, 0xe1, 0x6f, 0x17, 0x74, 0x4c, 0x6e, 0x82, 0x95, 0xb0, + 0x1c, 0xe3, 0x26, 0xbb, 0x9b, 0xe0, 0x39, 0x77, 0x03, 0xfc, 0xd2, 0xbb, 0x15, 0x71, 0x12, 0xc5, + 0x67, 0x25, 0x3e, 0xab, 0x59, 0xaf, 0x7d, 0x16, 0x1a, 0x02, 0x76, 0xfc, 0x6d, 0x0e, 0x58, 0xe8, + 0x6e, 0x77, 0x8c, 0xd9, 0x80, 0x31, 0x6b, 0xbd, 0x5b, 0x11, 0x8f, 0x53, 0xa1, 0x19, 0x9f, 0x06, + 0xb2, 0x2c, 0x7b, 0xed, 0xc0, 0x64, 0x07, 0xd4, 0x12, 0x06, 0x03, 0xa0, 0x0a, 0xb5, 0x43, 0xf1, + 0x39, 0xe9, 0x8a, 0xcd, 0x0d, 0x76, 0xf9, 0xe6, 0x08, 0x6b, 0x11, 0x9c, 0x7a, 0xad, 0x4e, 0x50, + 0x7f, 0xd0, 0x3d, 0xd8, 0x65, 0x75, 0xfc, 0x69, 0xe0, 0x4f, 0x6f, 0xcc, 0xfe, 0x04, 0xfa, 0x4c, + 0x37, 0x1d, 0x5d, 0xf7, 0xa7, 0x0b, 0x60, 0x37, 0x94, 0x18, 0xa6, 0x60, 0xdf, 0xc9, 0x67, 0x39, + 0xee, 0xc2, 0xa7, 0x97, 0x2c, 0x53, 0x0a, 0x33, 0xe5, 0xfb, 0xc8, 0x0f, 0x0f, 0xb8, 0x83, 0xdd, + 0x40, 0x76, 0x71, 0x6d, 0x9c, 0x2d, 0xd9, 0x50, 0xe6, 0xdd, 0x38, 0xd5, 0x01, 0x7a, 0xd6, 0xdb, + 0x40, 0xa5, 0x15, 0x4a, 0xa6, 0xb2, 0xbb, 0x9a, 0xac, 0x1b, 0xc8, 0xb2, 0x63, 0x80, 0xdd, 0xb4, + 0x28, 0x5b, 0xdc, 0xb7, 0xa5, 0x94, 0x5c, 0xec, 0x06, 0xf7, 0x0f, 0xbb, 0x01, 0x5b, 0x24, 0x59, + 0x28, 0xf3, 0x6e, 0xc0, 0x74, 0x5a, 0x39, 0x1d, 0x3f, 0x68, 0x28, 0x31, 0x4d, 0x21, 0x0b, 0xce, + 0xac, 0xcc, 0x5e, 0x2a, 0x97, 0xca, 0xab, 0x59, 0x9f, 0x1b, 0x46, 0x3a, 0x8c, 0x95, 0xa2, 0x53, + 0x62, 0xff, 0xc2, 0xf9, 0x1c, 0x64, 0xe2, 0x93, 0x8d, 0x4f, 0xba, 0xaf, 0x2b, 0xc8, 0xf7, 0x76, + 0xf9, 0x91, 0x61, 0x8d, 0xc3, 0xf5, 0xbd, 0xde, 0xfe, 0xab, 0xdb, 0x14, 0xd9, 0x68, 0x92, 0xa7, + 0x07, 0xf2, 0x02, 0x99, 0xec, 0xa6, 0xb7, 0x3c, 0xc2, 0xcf, 0xd5, 0x4b, 0x88, 0x9f, 0x3c, 0xd9, + 0xd6, 0x25, 0xef, 0x1b, 0x97, 0xb2, 0x18, 0xbf, 0x37, 0x27, 0xa4, 0x2c, 0x53, 0x52, 0x96, 0xb1, + 0x94, 0xfd, 0x98, 0xb2, 0x4c, 0x49, 0x99, 0x39, 0x2e, 0x65, 0x11, 0x7e, 0xcf, 0x57, 0x52, 0xd6, + 0x79, 0x76, 0x80, 0x33, 0xb0, 0x20, 0x38, 0x23, 0xb1, 0x37, 0x20, 0x07, 0x4b, 0x67, 0xb6, 0x81, + 0x67, 0xd8, 0x00, 0xdb, 0xcd, 0xeb, 0xed, 0xff, 0xe2, 0x0c, 0xa3, 0xcc, 0x12, 0x8c, 0x0b, 0xdc, + 0x01, 0xa4, 0x8b, 0x1d, 0x60, 0xf5, 0xab, 0xdb, 0x67, 0x88, 0x7c, 0x7b, 0x01, 0xc5, 0x73, 0xfe, + 0x4a, 0xe6, 0x6f, 0x05, 0xd9, 0x36, 0xb2, 0xd9, 0xeb, 0xb4, 0x59, 0xc0, 0x19, 0xa7, 0xdc, 0x4c, + 0x2c, 0x23, 0x23, 0x50, 0x33, 0x9e, 0xca, 0x66, 0x0d, 0x7f, 0xf1, 0x9c, 0xf7, 0x31, 0x13, 0x8c, + 0x0b, 0xff, 0xae, 0xf7, 0x31, 0x03, 0x08, 0x56, 0xc8, 0xc0, 0x94, 0x42, 0x20, 0xcb, 0x53, 0xe2, + 0x57, 0x7b, 0x8a, 0x03, 0x69, 0xb6, 0x14, 0x7b, 0x09, 0xf5, 0x21, 0x56, 0x3b, 0x06, 0x3d, 0xd6, + 0x30, 0x03, 0xa1, 0x29, 0xc4, 0xdc, 0xb3, 0x6e, 0x98, 0x7b, 0xe5, 0x57, 0xe4, 0x9e, 0x35, 0x3e, + 0xf7, 0xbc, 0x12, 0xdb, 0x44, 0x39, 0xf7, 0x2f, 0x8e, 0x2a, 0xb9, 0x67, 0x21, 0x47, 0x38, 0x3e, + 0x2e, 0xbd, 0xc3, 0xdb, 0x3f, 0x7c, 0x45, 0xc1, 0x1d, 0xdd, 0x1c, 0xd6, 0x08, 0xb2, 0x05, 0x75, + 0x80, 0xee, 0x36, 0x1c, 0xbd, 0x4d, 0x6a, 0xb3, 0xca, 0xd7, 0xe5, 0x79, 0xdc, 0x7f, 0xf9, 0x58, + 0xd7, 0xb1, 0x2e, 0x41, 0x9d, 0x88, 0x55, 0x0b, 0xf1, 0x18, 0x2c, 0x09, 0x31, 0xa4, 0x60, 0x75, + 0x98, 0x71, 0xbe, 0xc9, 0xb3, 0x61, 0xba, 0x3f, 0x57, 0x0c, 0x5a, 0x2d, 0x30, 0xfd, 0xf8, 0xa3, + 0xb6, 0x14, 0xca, 0xd3, 0x66, 0x3f, 0x46, 0xb0, 0x6c, 0x15, 0xca, 0x84, 0xb0, 0xd0, 0x00, 0xd3, + 0x05, 0xf4, 0xd7, 0x3c, 0xca, 0xda, 0xd3, 0xed, 0xeb, 0x12, 0xb5, 0x3f, 0xfd, 0x7d, 0x3b, 0xcc, + 0x1e, 0x1e, 0x1e, 0xda, 0xdd, 0xd5, 0x7c, 0x40, 0x70, 0x1d, 0xde, 0x6f, 0xc0, 0x38, 0x6f, 0x1e, + 0x70, 0xbe, 0xd0, 0xad, 0xd4, 0x17, 0xdb, 0x83, 0xa0, 0xf5, 0x61, 0x19, 0x1e, 0x05, 0xda, 0x2c, + 0xc1, 0x63, 0x78, 0x88, 0x3b, 0xfb, 0xd8, 0x41, 0xeb, 0x2c, 0x84, 0xc6, 0x21, 0x26, 0x0b, 0x1e, + 0xe6, 0xfa, 0xe5, 0x32, 0x90, 0xef, 0x42, 0xa9, 0x5c, 0x3f, 0x2a, 0x57, 0xd2, 0x2d, 0x27, 0xd8, + 0x7b, 0x62, 0x5c, 0x3e, 0x59, 0xe6, 0xff, 0x37, 0xba, 0xff, 0xe4, 0xbe, 0x0b, 0xd2, 0x1e, 0x76, + 0x27, 0x8c, 0xdb, 0x32, 0xd1, 0x94, 0x6c, 0x73, 0x20, 0xec, 0xc5, 0x50, 0x66, 0xe5, 0xcd, 0x29, + 0x26, 0xaf, 0xf3, 0x79, 0xc8, 0xc5, 0x27, 0xcf, 0xf3, 0x1c, 0x4a, 0x49, 0x90, 0xb4, 0x4b, 0xc6, + 0x54, 0xd2, 0x0e, 0xe4, 0x4b, 0x13, 0x65, 0xbe, 0x64, 0x76, 0x58, 0x9b, 0xf9, 0xac, 0xca, 0xf5, + 0x9e, 0x87, 0xb8, 0x2b, 0xfe, 0x34, 0xc2, 0x8f, 0xa7, 0x11, 0xba, 0xe6, 0xbe, 0xec, 0x8e, 0xb8, + 0x5f, 0x76, 0x45, 0x44, 0x4d, 0x08, 0xa5, 0x96, 0x10, 0x08, 0x54, 0x97, 0x32, 0xc1, 0x45, 0xe3, + 0x4d, 0xae, 0xec, 0xab, 0xc2, 0x50, 0x97, 0xf5, 0x21, 0x94, 0x9c, 0x30, 0x2c, 0x1f, 0xc8, 0xc5, + 0xf2, 0x48, 0x67, 0x56, 0x5b, 0x59, 0x2e, 0x0f, 0x8c, 0xe6, 0x82, 0x2d, 0x13, 0xe2, 0x58, 0xba, + 0x99, 0x72, 0x2e, 0xf7, 0x3a, 0xc0, 0xc3, 0xfc, 0xce, 0xc4, 0x7c, 0x0c, 0x8e, 0x10, 0x6c, 0x3c, + 0xc0, 0x6e, 0x0f, 0xc8, 0x60, 0x77, 0x2f, 0xf1, 0x2f, 0x0c, 0x34, 0xea, 0x8c, 0x8b, 0x41, 0x7d, + 0xef, 0xce, 0x4c, 0xc8, 0xac, 0x10, 0x93, 0x4b, 0x2f, 0x65, 0xc2, 0xbd, 0x3d, 0xb0, 0x35, 0xb3, + 0xc2, 0xd7, 0x5d, 0x1d, 0x09, 0xea, 0x7a, 0xbb, 0xfd, 0x83, 0x1e, 0xa7, 0x7f, 0xd1, 0xbd, 0x33, + 0xc1, 0x65, 0x7b, 0x88, 0xbb, 0x08, 0xb9, 0xf8, 0x7b, 0x09, 0x6b, 0x3c, 0xd3, 0x3f, 0x8f, 0x6e, + 0x8b, 0x34, 0x80, 0xbb, 0xd8, 0xfd, 0x72, 0x55, 0xb1, 0xbb, 0xd8, 0x59, 0x1c, 0x75, 0x20, 0x66, + 0x72, 0x59, 0xa8, 0x0d, 0xf2, 0xaa, 0x1c, 0x88, 0xab, 0x5c, 0x0c, 0xc9, 0x13, 0x38, 0x8a, 0xe3, + 0x1b, 0x8d, 0x93, 0x17, 0x8b, 0xe3, 0x2b, 0x8e, 0xc5, 0xb9, 0x97, 0xee, 0xb3, 0xf3, 0x88, 0x1a, + 0xf6, 0x76, 0xb1, 0x3a, 0xa6, 0x23, 0xdd, 0xaf, 0x0e, 0xa4, 0xde, 0xdb, 0x08, 0x1b, 0xc0, 0x81, + 0xbf, 0x5b, 0xc0, 0x29, 0xa6, 0x0a, 0xa5, 0xf7, 0x2e, 0x02, 0x1d, 0xfa, 0x17, 0x41, 0x2a, 0x38, + 0x83, 0x5c, 0xef, 0xca, 0x07, 0xd8, 0x8d, 0xc3, 0x58, 0xdf, 0x42, 0x4f, 0x27, 0x52, 0xe9, 0xc5, + 0xd1, 0xbb, 0x9f, 0x96, 0x41, 0xa1, 0x0d, 0x1c, 0x54, 0x0e, 0x95, 0x8f, 0x63, 0x6e, 0xae, 0xdb, + 0xe9, 0xde, 0xb7, 0x29, 0xfa, 0x76, 0x04, 0x35, 0x10, 0x1b, 0x38, 0xe9, 0xce, 0x27, 0xbb, 0x8b, + 0x6e, 0x98, 0xda, 0xf0, 0xaa, 0x95, 0x3b, 0xde, 0x6d, 0xc8, 0xe1, 0x79, 0x23, 0xec, 0x0c, 0x37, + 0xf2, 0x46, 0xce, 0x30, 0x5b, 0x28, 0x11, 0xf8, 0xd2, 0x0b, 0x50, 0x87, 0xb8, 0x4b, 0x23, 0x39, + 0xa2, 0x1d, 0x30, 0x7e, 0x5d, 0x7f, 0x57, 0x63, 0xea, 0xe3, 0x2b, 0xcc, 0xea, 0x06, 0xde, 0xd7, + 0x75, 0xb2, 0x6b, 0x19, 0x88, 0xba, 0x27, 0xba, 0x2c, 0x49, 0xe8, 0x5b, 0x71, 0x72, 0x45, 0x3b, + 0xd1, 0x66, 0x1a, 0xbb, 0x43, 0x6a, 0x3e, 0xf6, 0xb4, 0x9b, 0x90, 0xff, 0x3f, 0x47, 0xa9, 0x89, + 0xaa, 0x83, 0xe0, 0x69, 0x81, 0xc2, 0x80, 0x86, 0xbe, 0x89, 0x6a, 0xfc, 0xad, 0x14, 0x66, 0xa3, + 0x44, 0x93, 0xcb, 0x62, 0xcf, 0x33, 0xcc, 0x96, 0x4b, 0x19, 0x79, 0xda, 0xde, 0x02, 0x05, 0x6f, + 0xbb, 0x11, 0x3a, 0xf7, 0xa6, 0x16, 0x68, 0x38, 0x52, 0x66, 0x98, 0x4d, 0xf7, 0xc9, 0xb8, 0x5f, + 0x96, 0xbf, 0x4b, 0x7a, 0x19, 0x2e, 0xc5, 0xb7, 0x9f, 0x6e, 0xd9, 0x45, 0x9a, 0x2d, 0xcb, 0x6f, + 0x01, 0xfb, 0xa6, 0x83, 0xb6, 0x72, 0x76, 0x53, 0x2f, 0xab, 0x25, 0xdd, 0x6a, 0xba, 0x71, 0xdf, + 0xe1, 0xfd, 0x38, 0xda, 0x4c, 0xc7, 0x92, 0x3d, 0x81, 0xb9, 0x71, 0xd8, 0x16, 0x28, 0xb0, 0xc9, + 0xbe, 0x0a, 0x94, 0x83, 0x9c, 0x6f, 0x0d, 0xa0, 0x74, 0x33, 0xc3, 0x5d, 0xe2, 0x7e, 0x05, 0x43, + 0xbc, 0x64, 0x87, 0xfc, 0xf0, 0x00, 0x96, 0x84, 0x38, 0x1a, 0x8c, 0x22, 0xfe, 0x7c, 0xa5, 0x9f, + 0x16, 0x48, 0xc6, 0xe4, 0xfc, 0xd2, 0xd2, 0x4f, 0xbb, 0x25, 0x53, 0xb2, 0x02, 0xeb, 0x1b, 0x09, + 0x77, 0xc1, 0xbf, 0x23, 0xdf, 0xad, 0x6a, 0x80, 0x0f, 0x56, 0x19, 0x8b, 0xdf, 0x1a, 0x78, 0xeb, + 0xe0, 0x5b, 0x07, 0x4b, 0xcf, 0x41, 0x5f, 0xe9, 0xa5, 0x6d, 0x80, 0x9c, 0x5b, 0x08, 0xd4, 0x7a, + 0xb6, 0xf3, 0x93, 0xfc, 0x59, 0x4c, 0xca, 0x5b, 0x23, 0x7c, 0x1b, 0x35, 0xc3, 0x6d, 0xa3, 0x92, + 0xde, 0xdd, 0x0e, 0x7e, 0x92, 0xc5, 0x0a, 0xeb, 0xf2, 0x93, 0x86, 0x4a, 0x87, 0x9c, 0xc8, 0x0d, + 0x84, 0x20, 0x84, 0x80, 0x8f, 0x92, 0x35, 0x6a, 0xc3, 0x6c, 0xc4, 0x7a, 0x41, 0x1b, 0x4c, 0x57, + 0x63, 0x3b, 0xcd, 0xc0, 0x36, 0xd0, 0x90, 0x6d, 0x7e, 0x49, 0x62, 0x77, 0x31, 0x6d, 0x59, 0x4e, + 0xfd, 0x62, 0x12, 0x62, 0xc2, 0x2c, 0x7a, 0x31, 0x5d, 0x26, 0x8a, 0x97, 0xd9, 0xf2, 0x2d, 0x66, + 0xc8, 0x63, 0x06, 0x73, 0xad, 0x30, 0xc4, 0x7a, 0xe4, 0x8c, 0x05, 0x8f, 0x04, 0xaf, 0xbc, 0x11, + 0x66, 0x2d, 0xe8, 0x60, 0x54, 0xe1, 0xa4, 0x3a, 0x50, 0x29, 0x86, 0xd9, 0x88, 0xb1, 0xe9, 0x58, + 0xfb, 0x22, 0xcf, 0x23, 0x01, 0x5d, 0xc7, 0x9d, 0x65, 0x1a, 0xe3, 0x4c, 0xba, 0x43, 0x48, 0x9c, + 0xdf, 0x71, 0x6f, 0x99, 0x06, 0x5d, 0xbf, 0x10, 0x2f, 0x19, 0x18, 0xe6, 0xe2, 0xed, 0xe7, 0x63, + 0xed, 0x57, 0x8d, 0xe3, 0x2e, 0xc3, 0xe3, 0x17, 0x07, 0x5b, 0x71, 0x10, 0x86, 0x0a, 0x96, 0xbb, + 0x57, 0xc6, 0x1a, 0xe2, 0xcc, 0x2d, 0x38, 0x8a, 0x2f, 0x9a, 0x25, 0xa3, 0xd6, 0x58, 0x5c, 0xfa, + 0xa9, 0x7b, 0x1c, 0xd6, 0x30, 0x2f, 0x17, 0xca, 0x1d, 0x5d, 0x54, 0x37, 0xea, 0x0b, 0x46, 0xa0, + 0x36, 0x1b, 0x72, 0x19, 0xf8, 0xd1, 0x7e, 0x44, 0x74, 0x4b, 0xf7, 0xc6, 0xb8, 0x07, 0xaa, 0x1c, + 0x83, 0x2d, 0xe0, 0x18, 0x74, 0xd1, 0xbd, 0x48, 0x61, 0xea, 0x31, 0x79, 0x58, 0x3e, 0xdd, 0x3a, + 0x97, 0x8b, 0xb2, 0x5e, 0xde, 0x51, 0x87, 0xad, 0x04, 0xfb, 0x90, 0x0b, 0xf2, 0xa6, 0xd3, 0x0d, + 0x5d, 0x25, 0x47, 0x1d, 0x47, 0xb1, 0x45, 0xf1, 0x4b, 0xae, 0x05, 0xbf, 0x16, 0xaa, 0xf0, 0x4b, + 0xae, 0xad, 0x14, 0xf2, 0xc6, 0xd5, 0xa2, 0x9a, 0xd5, 0xc2, 0x17, 0xaf, 0x85, 0x3a, 0x4f, 0x55, + 0x55, 0x8c, 0xd4, 0xc6, 0x27, 0x52, 0x1b, 0xe6, 0x58, 0x54, 0x50, 0x42, 0x94, 0x63, 0xd3, 0x51, + 0xbd, 0x08, 0x1a, 0x8a, 0x5f, 0x3a, 0x3c, 0xdc, 0xef, 0xdd, 0x84, 0x98, 0xf3, 0x3a, 0x9d, 0x6e, + 0xa7, 0xfc, 0xdd, 0xee, 0x64, 0xb7, 0xaa, 0xdc, 0xe4, 0xdd, 0x44, 0x25, 0xd1, 0x2d, 0x03, 0x5f, + 0x8e, 0xb3, 0xe1, 0xad, 0x79, 0x2a, 0xdf, 0x75, 0xa5, 0x21, 0x15, 0x3b, 0x58, 0x5e, 0xc9, 0x58, + 0x56, 0x59, 0xac, 0xac, 0xf2, 0xe1, 0x61, 0xaf, 0x77, 0x0b, 0x96, 0xe5, 0x21, 0x1c, 0x29, 0xdf, + 0x9d, 0xec, 0x9e, 0x98, 0x9b, 0x98, 0xf6, 0x63, 0xce, 0xdd, 0x3e, 0x96, 0xb2, 0x87, 0x0b, 0xb0, + 0x15, 0x78, 0x43, 0x0c, 0xe3, 0x7b, 0x58, 0x9b, 0xcc, 0xa0, 0xfc, 0xb0, 0x5f, 0x15, 0xc5, 0xca, + 0x1b, 0xd9, 0xa3, 0xdc, 0xca, 0x44, 0x76, 0xbb, 0x5d, 0x4c, 0xc6, 0x2f, 0x44, 0x7d, 0x71, 0xa2, + 0x59, 0x96, 0x37, 0x67, 0x20, 0x37, 0x29, 0x64, 0x5c, 0x9c, 0xf1, 0x12, 0x23, 0x88, 0x06, 0x03, + 0xf5, 0xbc, 0x46, 0xc6, 0x49, 0x6b, 0x50, 0x6f, 0x4b, 0x13, 0xaa, 0x74, 0x76, 0xf8, 0xae, 0x19, + 0xfc, 0xbc, 0x2f, 0x2a, 0x68, 0x07, 0xa3, 0xa2, 0xce, 0xe4, 0x11, 0xe6, 0x31, 0xfa, 0x1b, 0x62, + 0xf7, 0x30, 0xea, 0x68, 0xbc, 0xa1, 0x99, 0x00, 0x93, 0x5b, 0x96, 0xbe, 0x36, 0xbf, 0xf6, 0xd8, + 0x41, 0x1a, 0x9b, 0x6c, 0xa9, 0xee, 0x87, 0xa4, 0x2b, 0x6c, 0x84, 0xd8, 0x83, 0x9a, 0xa4, 0x97, + 0xee, 0x2b, 0xae, 0x5c, 0x1f, 0xd7, 0x8b, 0xf3, 0x8c, 0x2c, 0xbe, 0x5f, 0x10, 0xcd, 0x46, 0x0b, + 0xf0, 0x06, 0xe7, 0xe8, 0x8c, 0x92, 0x30, 0xea, 0xce, 0x16, 0xd5, 0x33, 0xcf, 0x02, 0xff, 0x9b, + 0x73, 0x90, 0xec, 0x3f, 0x26, 0xa7, 0xa5, 0xdb, 0xa0, 0x71, 0xec, 0xe9, 0x40, 0xbe, 0x3f, 0x15, + 0xf5, 0x6e, 0x94, 0xec, 0x70, 0x74, 0xd2, 0x6d, 0x3c, 0x50, 0x72, 0x81, 0xa5, 0xa8, 0xb0, 0xfe, + 0x40, 0xbe, 0x4f, 0xd7, 0x96, 0xba, 0xf9, 0x35, 0xd9, 0x3f, 0x26, 0x8d, 0x0d, 0xd4, 0x18, 0x9f, + 0xa5, 0x19, 0x9f, 0xc2, 0xfb, 0x43, 0xf9, 0xa6, 0xe9, 0x19, 0x33, 0xac, 0x5a, 0x4b, 0xb9, 0x59, + 0x67, 0xf6, 0x3a, 0xa3, 0xce, 0x4e, 0x79, 0xdc, 0x62, 0x23, 0x4c, 0xb3, 0x3c, 0xc2, 0x58, 0x12, + 0x47, 0x2f, 0x19, 0x57, 0xc7, 0x3d, 0x0e, 0x7f, 0xbe, 0xd1, 0xca, 0x5d, 0x34, 0x59, 0xb9, 0x4b, + 0x74, 0x7f, 0x14, 0xb6, 0x4d, 0xc2, 0xa8, 0x61, 0xe4, 0xba, 0x1c, 0x55, 0xa8, 0x2d, 0x19, 0x54, + 0xa3, 0xa3, 0x84, 0x89, 0x5b, 0xe9, 0xf0, 0x95, 0xa0, 0x34, 0x7f, 0x93, 0x3c, 0x8a, 0x0a, 0x0e, + 0x94, 0x79, 0x79, 0x6a, 0x41, 0x86, 0x47, 0x83, 0x67, 0x1b, 0x8e, 0x0c, 0xd9, 0xd3, 0xc3, 0xdf, + 0x72, 0x02, 0x2f, 0xa8, 0x28, 0x7c, 0x70, 0x11, 0x16, 0x4a, 0x77, 0xe7, 0xaa, 0xed, 0x66, 0xd8, + 0x22, 0x66, 0x8d, 0xf9, 0xd6, 0x04, 0x3a, 0xe5, 0xdb, 0x54, 0x48, 0x1d, 0x2c, 0x61, 0x6e, 0x0d, + 0xb3, 0xf1, 0xee, 0x92, 0xb5, 0x1e, 0x6a, 0x61, 0x83, 0x95, 0xe7, 0x89, 0xf7, 0x0b, 0x9c, 0xa1, + 0x4c, 0xf0, 0xd0, 0x7d, 0x61, 0x08, 0x3f, 0xe3, 0xfc, 0x48, 0x59, 0x96, 0xc3, 0x74, 0xd7, 0xb2, + 0x8d, 0xee, 0x7b, 0xcf, 0x03, 0xd2, 0x8c, 0x7c, 0xdd, 0x2f, 0xbc, 0xdc, 0xa8, 0x91, 0x73, 0x65, + 0x37, 0xc8, 0x75, 0xc4, 0xf0, 0xe4, 0x9d, 0x23, 0xf5, 0xd2, 0xdd, 0x52, 0x66, 0x2d, 0xca, 0x0b, + 0xde, 0x9c, 0x72, 0xe9, 0x8a, 0xf3, 0x59, 0xe9, 0x2a, 0x3e, 0xbd, 0xcb, 0xb9, 0x20, 0x97, 0xe3, + 0x90, 0xfa, 0x42, 0x5c, 0x4e, 0xb1, 0xb4, 0xeb, 0xb1, 0x83, 0x1d, 0x5c, 0x2b, 0xb4, 0x49, 0x22, + 0xc0, 0xcf, 0xd9, 0xad, 0x5e, 0xb0, 0xc1, 0x1e, 0x68, 0xae, 0x35, 0x31, 0xd7, 0xd4, 0x40, 0x61, + 0x6d, 0x32, 0x73, 0x71, 0xfe, 0xe5, 0x62, 0x1b, 0x73, 0xe5, 0xb2, 0xbb, 0x5a, 0xb1, 0x95, 0xfc, + 0x8d, 0xa2, 0xec, 0xca, 0x0b, 0x94, 0xd5, 0xe7, 0x32, 0xd7, 0x37, 0x03, 0x2e, 0xf6, 0x2e, 0xf5, + 0x57, 0x8a, 0x8e, 0xa0, 0xd4, 0xdb, 0xe9, 0x77, 0x9b, 0xcc, 0xa0, 0x16, 0x9d, 0x9e, 0xa8, 0x7f, + 0x86, 0x91, 0x5c, 0x05, 0x56, 0xfa, 0xcd, 0xa3, 0x7b, 0xb8, 0x59, 0xcd, 0xcd, 0xce, 0x4d, 0xa2, + 0x31, 0x07, 0x7d, 0xd2, 0x2e, 0x31, 0x9b, 0xbd, 0xfb, 0xc4, 0xf4, 0x5c, 0x8a, 0x93, 0xca, 0x7c, + 0x57, 0x45, 0x0d, 0x7b, 0xf7, 0x16, 0x7f, 0x2c, 0x5d, 0x51, 0xe4, 0x87, 0xd8, 0x2d, 0xad, 0xbe, + 0x90, 0xb4, 0xb3, 0xd3, 0xaf, 0xf1, 0x44, 0x69, 0x06, 0x05, 0x7f, 0x5d, 0x24, 0x4b, 0xab, 0x3e, + 0x66, 0xfa, 0xec, 0xa9, 0xcb, 0x7b, 0xac, 0x0e, 0x65, 0x7e, 0xc5, 0x8a, 0xb2, 0x20, 0xcd, 0x11, + 0x9c, 0x1a, 0x7e, 0xda, 0xec, 0x40, 0x77, 0x2a, 0xb9, 0x3f, 0x9f, 0x4b, 0xf2, 0x1a, 0x83, 0x01, + 0x31, 0x67, 0x0c, 0xd3, 0x08, 0xe2, 0x07, 0x15, 0x50, 0x9e, 0x98, 0xdf, 0x39, 0x84, 0x18, 0xe0, + 0x14, 0x1b, 0xc5, 0x4f, 0x5d, 0x4d, 0x66, 0xb3, 0x98, 0x00, 0x43, 0x39, 0x44, 0x9f, 0xb9, 0xd2, + 0x09, 0xc4, 0xdf, 0x29, 0xc4, 0xe5, 0x59, 0xa4, 0xe9, 0x8f, 0xa5, 0x13, 0x4c, 0xbe, 0xab, 0x30, + 0x33, 0xa8, 0xf8, 0xbd, 0x58, 0x02, 0xa5, 0x3a, 0x0d, 0x6a, 0x33, 0xd2, 0x8b, 0x7c, 0xcb, 0x2e, + 0x6c, 0xa2, 0x32, 0x10, 0xc7, 0xab, 0x3d, 0x5d, 0x81, 0x0e, 0x05, 0x4e, 0xd2, 0xa0, 0x4f, 0x7d, + 0x76, 0xcc, 0x08, 0x4c, 0xde, 0x6c, 0x1b, 0x07, 0xa5, 0x5c, 0x8b, 0x5f, 0x12, 0x94, 0x6c, 0x74, + 0x9b, 0xeb, 0xb1, 0x82, 0x1d, 0xf3, 0x5f, 0x40, 0xa9, 0x51, 0xe7, 0x65, 0xa9, 0xbf, 0xa8, 0x55, + 0x52, 0x03, 0x5f, 0xa6, 0xa4, 0x3f, 0x6d, 0x31, 0x54, 0xae, 0xc7, 0x5a, 0x84, 0x03, 0xea, 0xdb, + 0x1d, 0xc8, 0x8e, 0x94, 0x9c, 0xbe, 0xf8, 0xb4, 0x72, 0xbd, 0x88, 0xa4, 0xc8, 0x60, 0xf5, 0x99, + 0x1d, 0x72, 0x7d, 0x79, 0xbd, 0x67, 0x25, 0x8e, 0x00, 0xef, 0x20, 0x54, 0xc0, 0x8d, 0x8c, 0xcd, + 0x19, 0xeb, 0x78, 0x48, 0xce, 0x9b, 0x3b, 0x15, 0xe2, 0x5b, 0x69, 0x8c, 0xa3, 0x99, 0x8d, 0x6c, + 0x0c, 0x1f, 0x22, 0x37, 0xc3, 0xc8, 0x59, 0xc3, 0x54, 0xe9, 0x90, 0x11, 0x30, 0xfc, 0x09, 0xe6, + 0xdf, 0x9f, 0xc3, 0xf8, 0x82, 0xb4, 0x87, 0x62, 0xe4, 0x78, 0xa5, 0x81, 0x1c, 0x6c, 0x33, 0x69, + 0x7f, 0xce, 0x2c, 0xe9, 0x40, 0x4e, 0x29, 0x4a, 0x7e, 0x18, 0x9b, 0xe6, 0x5f, 0x30, 0x8f, 0x41, + 0x7f, 0xa6, 0x92, 0x63, 0x07, 0xe2, 0x4d, 0x27, 0x34, 0x49, 0x43, 0x74, 0xc7, 0xd4, 0x5d, 0x48, + 0xc9, 0x06, 0xb5, 0xb1, 0x08, 0x40, 0xf5, 0xb1, 0xf2, 0xfd, 0x24, 0xc6, 0x3e, 0x26, 0x3c, 0xc4, + 0x8d, 0xb0, 0x5e, 0x97, 0x47, 0xba, 0xe4, 0x63, 0x07, 0x11, 0xef, 0x7b, 0x46, 0x6f, 0x2b, 0x26, + 0xb9, 0x9b, 0xb4, 0x45, 0xcc, 0x3d, 0x11, 0x03, 0x19, 0x84, 0x01, 0x51, 0xcf, 0xe6, 0xa8, 0xf6, + 0xd0, 0x17, 0x6b, 0x17, 0xb5, 0x09, 0x42, 0x31, 0x18, 0xd0, 0x2a, 0xb9, 0xff, 0x12, 0x7d, 0xc7, + 0x02, 0x3a, 0xc5, 0x77, 0x5c, 0xe4, 0x7f, 0x72, 0x28, 0xc4, 0x1b, 0xa7, 0xca, 0x75, 0xc4, 0x90, + 0x8c, 0x56, 0x10, 0xb5, 0x04, 0xa5, 0x11, 0x7e, 0x72, 0x28, 0x5e, 0x06, 0xc3, 0x27, 0xc3, 0xa1, + 0xdb, 0xd3, 0xd9, 0x92, 0x36, 0xb6, 0xcd, 0xb1, 0x3e, 0x79, 0x88, 0xd1, 0xac, 0x62, 0x92, 0x33, + 0xfe, 0xc5, 0x10, 0x93, 0x7b, 0x17, 0x60, 0xb8, 0x86, 0xdd, 0xa3, 0xc5, 0x07, 0xd5, 0xb1, 0xd6, + 0x8a, 0xa5, 0x08, 0xcc, 0xf7, 0x3c, 0xe2, 0x47, 0x8d, 0x5e, 0xda, 0x85, 0x14, 0xfd, 0xac, 0xd4, + 0x17, 0x30, 0xe3, 0xef, 0x55, 0xbf, 0x89, 0x51, 0x9c, 0x4a, 0x3a, 0x8f, 0xf4, 0x7f, 0x35, 0xc7, + 0x2d, 0x5d, 0x44, 0xaa, 0xbb, 0xc4, 0xa8, 0xee, 0x3c, 0x6b, 0xc9, 0x3a, 0x51, 0x4d, 0xfd, 0x1a, + 0x73, 0x63, 0x33, 0x10, 0xc3, 0x19, 0x42, 0x85, 0xa1, 0x49, 0xba, 0x6a, 0x2c, 0x95, 0xb5, 0x0f, + 0xba, 0x19, 0xa2, 0x15, 0xe1, 0xc6, 0xbc, 0x7a, 0x03, 0x1a, 0xc4, 0x71, 0xaf, 0x10, 0x35, 0xf0, + 0x72, 0xcd, 0x46, 0xf2, 0x04, 0x1d, 0xbb, 0x2f, 0xac, 0x9b, 0xe6, 0xe5, 0xb0, 0x96, 0x20, 0x4d, + 0x67, 0xbf, 0xed, 0xb6, 0xd4, 0x10, 0xa0, 0xee, 0xa1, 0xa5, 0x38, 0x0a, 0x6f, 0x3e, 0xcb, 0x74, + 0x0f, 0x2d, 0xcd, 0x83, 0xa0, 0x7c, 0x57, 0xe0, 0x59, 0x11, 0x10, 0x90, 0x5b, 0x6b, 0x63, 0xda, + 0x05, 0xab, 0x41, 0x86, 0x09, 0x34, 0x74, 0x87, 0x51, 0xdf, 0xac, 0xf3, 0x70, 0x5c, 0xd4, 0xfd, + 0xf4, 0xf7, 0x6d, 0x58, 0xb2, 0xa8, 0xa6, 0x37, 0xe3, 0xc6, 0x1c, 0x72, 0x63, 0x67, 0x4c, 0x07, + 0x30, 0xcb, 0x61, 0xb3, 0x12, 0xc3, 0x70, 0xa4, 0xb0, 0x07, 0xd4, 0x82, 0xc3, 0xb9, 0x01, 0xa9, + 0xad, 0x08, 0x4e, 0x5d, 0x71, 0xe7, 0xe2, 0xef, 0x7f, 0x1e, 0x2a, 0xf9, 0x88, 0xbb, 0x88, 0xa5, + 0xe6, 0x8b, 0x30, 0x71, 0x9f, 0x21, 0x4d, 0x17, 0xc1, 0x74, 0x77, 0x06, 0x40, 0xf3, 0x64, 0x2d, + 0xc0, 0x30, 0xf3, 0xe9, 0x03, 0xa0, 0x36, 0xd5, 0x2e, 0x63, 0x6e, 0x2d, 0xf6, 0x85, 0x27, 0x6a, + 0x0b, 0x99, 0x9b, 0xdd, 0x93, 0x55, 0x9b, 0xc9, 0xdc, 0x3c, 0xd2, 0xf1, 0x49, 0xe6, 0x52, 0xf9, + 0x61, 0x62, 0x33, 0xf6, 0x05, 0xa0, 0x5b, 0xe4, 0x59, 0x88, 0x06, 0xe3, 0x19, 0x6a, 0x81, 0xaf, + 0xc0, 0xd0, 0x64, 0x16, 0x42, 0x3d, 0xaa, 0xbb, 0x36, 0x43, 0x88, 0xc5, 0x48, 0x46, 0xff, 0xa9, + 0x5a, 0xe4, 0x0f, 0x18, 0x63, 0x01, 0x0b, 0x49, 0x0d, 0x80, 0x6a, 0x3e, 0x86, 0x44, 0x31, 0x24, + 0xcc, 0x42, 0xbe, 0x86, 0x50, 0x6c, 0xa9, 0x9d, 0xce, 0xdc, 0xb7, 0xe2, 0xd7, 0xcb, 0x4a, 0xc9, + 0xb7, 0xa0, 0xfb, 0xe7, 0xcc, 0x95, 0xe6, 0x07, 0xed, 0x25, 0x11, 0x54, 0xaf, 0x32, 0xdf, 0x6d, + 0x18, 0x1f, 0x4b, 0x55, 0xbb, 0x45, 0x50, 0xf3, 0x2c, 0xe4, 0x0e, 0xd4, 0xda, 0xf2, 0x6b, 0xe5, + 0x1a, 0xde, 0x8e, 0x5f, 0x77, 0xe2, 0xd7, 0x53, 0xf8, 0xb5, 0x81, 0x85, 0x7c, 0x1d, 0xbf, 0xfa, + 0x6b, 0x21, 0x69, 0xad, 0x08, 0x49, 0x65, 0x2c, 0xa4, 0x84, 0x66, 0x1d, 0x6a, 0x3b, 0x98, 0xdb, + 0x84, 0x18, 0xb1, 0x2b, 0xa5, 0x1b, 0x30, 0xe6, 0x09, 0xa5, 0x74, 0x01, 0xdd, 0x72, 0xe9, 0x77, + 0x61, 0xe9, 0x6d, 0x98, 0x76, 0x1b, 0xf3, 0x19, 0x31, 0xfc, 0x00, 0xe6, 0x76, 0x0c, 0x43, 0xfa, + 0x59, 0x88, 0x05, 0x73, 0xe8, 0x50, 0x4a, 0x37, 0xa3, 0xdb, 0x5a, 0x0b, 0x9a, 0x4a, 0x11, 0x34, + 0x32, 0x6c, 0xd6, 0x00, 0x4c, 0xd0, 0xd6, 0x83, 0xe6, 0x04, 0xf3, 0x4d, 0xc3, 0xbc, 0x2c, 0xf8, + 0x6d, 0x07, 0xf9, 0x36, 0xe6, 0xe2, 0xb7, 0xda, 0x5a, 0x07, 0xfb, 0xe2, 0x45, 0x98, 0x52, 0x95, + 0xb2, 0x5d, 0x88, 0xf3, 0x27, 0x98, 0x6b, 0xb6, 0x1f, 0x26, 0x0c, 0x8b, 0xc0, 0x1d, 0x61, 0xbe, + 0x4a, 0xcc, 0xdd, 0x8b, 0x79, 0x15, 0xb0, 0xd4, 0x53, 0xf1, 0xdb, 0x3b, 0x98, 0xd7, 0x59, 0xe6, + 0xdb, 0x44, 0xfc, 0xa6, 0x36, 0x9b, 0xb9, 0xed, 0x98, 0x6f, 0xb0, 0x1e, 0x26, 0xe4, 0x33, 0xdf, + 0x46, 0x8c, 0xb7, 0x3b, 0x96, 0xc7, 0xc6, 0x2d, 0xf8, 0x2d, 0x8c, 0xdf, 0xd6, 0xea, 0x22, 0x5d, + 0x40, 0xbc, 0x6c, 0xc2, 0x13, 0xa2, 0xc3, 0x90, 0xc3, 0x9d, 0x15, 0x2c, 0xa0, 0xee, 0x8d, 0xe0, + 0xd7, 0xad, 0xd8, 0xdf, 0x92, 0x9d, 0xdb, 0xb9, 0xb3, 0x3e, 0x6c, 0xa3, 0x09, 0xdd, 0x9e, 0x08, + 0xc6, 0x89, 0xde, 0xed, 0x50, 0xfc, 0xed, 0xd4, 0xb6, 0x8c, 0xa3, 0xa8, 0x85, 0x58, 0x9c, 0xba, + 0xbb, 0x31, 0x8c, 0x3b, 0xcf, 0xdc, 0x35, 0x4c, 0x3f, 0x55, 0x1b, 0xb6, 0x2b, 0x7e, 0xb7, 0x50, + 0x8e, 0x3a, 0x4e, 0x7e, 0x50, 0x3b, 0x3a, 0x9f, 0xea, 0x8b, 0x62, 0x2f, 0xd7, 0x0a, 0x2e, 0xe7, + 0x06, 0xfc, 0x6e, 0x46, 0x99, 0x30, 0x95, 0x6e, 0x5d, 0xad, 0x41, 0x3e, 0x3b, 0x21, 0x4b, 0xb8, + 0x2e, 0x2e, 0x86, 0xaa, 0xbf, 0xd5, 0x00, 0x1a, 0xee, 0x4a, 0x62, 0x3a, 0xcd, 0xc5, 0xc4, 0x74, + 0x9a, 0x93, 0x0c, 0x22, 0x4d, 0x1e, 0xea, 0xd8, 0xc2, 0x2a, 0x4a, 0xa3, 0x19, 0x64, 0x30, 0x8d, + 0x8c, 0x49, 0xb3, 0x67, 0x4c, 0x9a, 0xe7, 0xc6, 0xd4, 0x64, 0x84, 0xa5, 0x7a, 0x82, 0x52, 0xf1, + 0xfc, 0x98, 0x54, 0x2b, 0xc7, 0xa4, 0x1a, 0x53, 0x7f, 0x8a, 0x89, 0x61, 0x75, 0xdf, 0x72, 0xf3, + 0x9a, 0x31, 0x69, 0x7c, 0x63, 0xd2, 0xb8, 0x62, 0xd0, 0xf1, 0x1a, 0x05, 0xba, 0x3c, 0xaa, 0x11, + 0xaf, 0x1d, 0x93, 0x66, 0xd2, 0x98, 0x34, 0xfa, 0x78, 0x39, 0x94, 0x4e, 0x2b, 0xa7, 0x4b, 0x1a, + 0x66, 0xb5, 0x1a, 0x66, 0xee, 0x4f, 0xc6, 0xc0, 0x2f, 0x87, 0xbd, 0x4d, 0x5a, 0x74, 0xd2, 0x10, + 0xdd, 0x2d, 0x66, 0x4b, 0xa2, 0xf9, 0x41, 0x8a, 0x43, 0xa3, 0x91, 0x9c, 0x13, 0xbb, 0x53, 0x3e, + 0x9b, 0xc5, 0xec, 0x95, 0x67, 0x57, 0x93, 0xb6, 0xc9, 0xb7, 0x6c, 0xdd, 0x20, 0xb6, 0x5a, 0x78, + 0x56, 0x89, 0xdb, 0xc5, 0x72, 0x5d, 0x6e, 0x28, 0x31, 0xf4, 0xa0, 0x8c, 0xb9, 0x03, 0x9a, 0x59, + 0x68, 0x33, 0x86, 0x4e, 0xfa, 0x92, 0x92, 0xd2, 0xb1, 0xa4, 0x8d, 0xa8, 0xef, 0xc7, 0x21, 0x0c, + 0x4a, 0x42, 0x98, 0xa5, 0x2a, 0x50, 0xca, 0xb5, 0x5b, 0x12, 0xf3, 0x32, 0xf4, 0x2b, 0xf3, 0x9b, + 0x5f, 0x02, 0x4b, 0x9a, 0xf0, 0xd8, 0x8d, 0x72, 0x53, 0x9f, 0x23, 0xc8, 0xd4, 0xa7, 0x84, 0x92, + 0xbb, 0xe8, 0x1e, 0x5e, 0x6d, 0x2c, 0x3f, 0xf5, 0x11, 0x16, 0x7e, 0x48, 0x86, 0x8e, 0x66, 0x3e, + 0x6f, 0x80, 0x07, 0x2d, 0x8b, 0xb9, 0x4d, 0x86, 0x47, 0xfd, 0x54, 0xce, 0xd8, 0x1c, 0x36, 0x28, + 0xe1, 0xdd, 0x5f, 0x89, 0x1f, 0x39, 0x8f, 0x3a, 0x56, 0xda, 0x02, 0x76, 0x17, 0xb0, 0x95, 0xee, + 0x38, 0xab, 0x0a, 0xeb, 0xd8, 0x5a, 0x12, 0x71, 0x29, 0x94, 0xc7, 0x8b, 0x84, 0xd2, 0xcd, 0xaf, + 0xa1, 0x4c, 0x5a, 0x24, 0x8f, 0x2e, 0x86, 0x92, 0x6f, 0xb4, 0x80, 0x75, 0xb4, 0xf6, 0x6a, 0x23, + 0xa6, 0x17, 0xbe, 0x02, 0x93, 0xcf, 0xa0, 0x5c, 0xa7, 0x8b, 0xd7, 0x9e, 0x77, 0xb2, 0x5e, 0xa1, + 0xfa, 0x44, 0x86, 0x50, 0x75, 0xe6, 0x46, 0xe5, 0xaa, 0x06, 0xb1, 0x5c, 0x87, 0x52, 0xae, 0x43, + 0x2e, 0x37, 0x67, 0x4c, 0xa9, 0xaa, 0xe7, 0x58, 0x7a, 0xe1, 0x2b, 0x70, 0xfe, 0xec, 0x0d, 0xcb, + 0x6d, 0xa3, 0xda, 0xaa, 0x82, 0x58, 0x0b, 0x2a, 0x57, 0x17, 0xcf, 0x6f, 0x01, 0x0b, 0xaf, 0xf9, + 0x4a, 0xda, 0xd3, 0xb1, 0x98, 0xf9, 0x0a, 0xe4, 0xd6, 0x9c, 0xb1, 0x39, 0x64, 0x2b, 0xe1, 0xe9, + 0x5f, 0x89, 0x73, 0x96, 0x07, 0x7f, 0x51, 0x9e, 0xbb, 0xe0, 0xcf, 0x7e, 0x9b, 0x6e, 0xf1, 0xec, + 0x8a, 0xe5, 0xc1, 0x1f, 0x53, 0xc2, 0x07, 0x13, 0xfa, 0x4f, 0x23, 0x74, 0xc9, 0xfd, 0x87, 0xef, + 0x67, 0xbf, 0xbb, 0xd8, 0xef, 0x73, 0x4a, 0xcc, 0x5f, 0xde, 0xde, 0x00, 0x13, 0xe0, 0x39, 0x16, + 0xf6, 0x04, 0xa5, 0x62, 0xe1, 0x72, 0x79, 0xa9, 0xfa, 0x1d, 0xf0, 0x9c, 0xa8, 0x55, 0xea, 0xaf, + 0x67, 0x71, 0xda, 0x94, 0x74, 0xcd, 0xc4, 0x31, 0x0d, 0x50, 0x15, 0xd1, 0x45, 0x64, 0x9c, 0xf3, + 0xf3, 0xa7, 0x38, 0xa0, 0x37, 0x0e, 0x89, 0x57, 0x89, 0x57, 0x26, 0x58, 0xa1, 0x17, 0xdf, 0x33, + 0x46, 0x31, 0x29, 0x53, 0x2f, 0x6f, 0x55, 0x62, 0x18, 0xaf, 0xcb, 0x29, 0x0d, 0x73, 0xda, 0x15, + 0xcf, 0x49, 0x86, 0x08, 0xb8, 0xab, 0x09, 0x3d, 0x7e, 0x07, 0xb0, 0x5a, 0x20, 0xdf, 0x8e, 0x41, + 0x9c, 0xe6, 0xd9, 0x01, 0xfb, 0x63, 0x70, 0x07, 0x39, 0x21, 0x1c, 0x87, 0x9b, 0xb5, 0x1b, 0xb7, + 0x37, 0x9e, 0x1a, 0xb8, 0x9d, 0xc4, 0x71, 0xb8, 0x1d, 0xe3, 0x6b, 0x7b, 0x83, 0x54, 0xdd, 0xf1, + 0x38, 0xa9, 0xf2, 0x3d, 0x63, 0x88, 0xcd, 0xa8, 0xb0, 0x6a, 0x5c, 0xac, 0xda, 0xf1, 0x39, 0x21, + 0x7c, 0xab, 0xc7, 0xc5, 0x99, 0x91, 0xd8, 0xaa, 0x6c, 0x7d, 0x13, 0xd3, 0xb0, 0x16, 0xcf, 0xf0, + 0x60, 0xab, 0x06, 0xf4, 0x0a, 0x6c, 0x19, 0x0c, 0x0a, 0xe0, 0x52, 0x15, 0xbf, 0x86, 0xc1, 0x0a, + 0x48, 0x5d, 0x06, 0x99, 0xb6, 0x98, 0x1e, 0xd2, 0x78, 0x83, 0x5e, 0xa2, 0xbf, 0x9e, 0x5a, 0xe1, + 0x00, 0xa6, 0xd3, 0x2b, 0xfc, 0x41, 0x8f, 0x18, 0x6d, 0x23, 0xac, 0x22, 0xd7, 0xd5, 0x18, 0x5c, + 0xce, 0x8d, 0x62, 0x32, 0xf1, 0x5c, 0x79, 0x95, 0x84, 0xc5, 0x7e, 0x82, 0xc1, 0x63, 0x88, 0x41, + 0x7a, 0x83, 0x92, 0xa8, 0x57, 0x5c, 0x5f, 0x8e, 0xc8, 0xd2, 0xa5, 0xe6, 0xc4, 0x4a, 0x59, 0xfe, + 0x15, 0xa5, 0xe4, 0x33, 0x3c, 0xe5, 0x4e, 0xa1, 0xb8, 0x2b, 0xd1, 0x6f, 0x64, 0xfe, 0x49, 0x63, + 0xda, 0x96, 0xc2, 0x75, 0x9e, 0xe7, 0x51, 0xae, 0xd3, 0xe0, 0xe8, 0x69, 0x37, 0xac, 0x2e, 0xbe, + 0x00, 0x05, 0x31, 0x3d, 0xce, 0xc8, 0x34, 0xa6, 0xcb, 0xb9, 0xf1, 0x3b, 0x91, 0x33, 0x63, 0xb3, + 0xdf, 0xca, 0xad, 0xde, 0xde, 0xf1, 0xf7, 0x7c, 0x5f, 0xad, 0x53, 0x66, 0xc8, 0x6d, 0xf1, 0x3d, + 0x19, 0x8a, 0x84, 0x3a, 0xb2, 0x8b, 0x24, 0x54, 0x76, 0x47, 0x76, 0x39, 0x54, 0xdb, 0x3c, 0x50, + 0x67, 0xf2, 0x5a, 0xcc, 0x60, 0x18, 0x95, 0x52, 0x2d, 0xb2, 0x94, 0x0a, 0x29, 0xab, 0xb1, 0x95, + 0xd6, 0xf9, 0xb5, 0xf6, 0x26, 0x48, 0xcf, 0x71, 0xc3, 0x3a, 0xf4, 0x6d, 0xf2, 0x6b, 0xf3, 0x9a, + 0x20, 0x23, 0xa7, 0x1c, 0x36, 0x61, 0x59, 0xd5, 0x2f, 0x7c, 0x8c, 0x7a, 0x3d, 0xa4, 0xd4, 0xca, + 0x52, 0xe8, 0x99, 0x79, 0xa5, 0xc3, 0x52, 0x83, 0x79, 0x96, 0xc0, 0x7f, 0xd0, 0x3d, 0x18, 0x35, + 0x39, 0xfe, 0x30, 0xf0, 0x87, 0xd7, 0x67, 0x7e, 0x04, 0x7d, 0x33, 0x3f, 0xeb, 0x03, 0x21, 0x07, + 0x32, 0x03, 0x7a, 0x9b, 0x95, 0x4f, 0xb3, 0x01, 0x71, 0x67, 0xe7, 0x76, 0xc8, 0xac, 0x5c, 0x8f, + 0xa1, 0x42, 0x20, 0xad, 0x77, 0x3b, 0xe8, 0x03, 0xba, 0xf8, 0xae, 0x8c, 0x4d, 0x58, 0xfa, 0x76, + 0x48, 0xf7, 0x0b, 0x62, 0xa1, 0xf0, 0x10, 0xa4, 0x0b, 0xf6, 0x02, 0x10, 0x9a, 0x60, 0xb5, 0xb0, + 0x08, 0xec, 0xb2, 0x86, 0x7f, 0xb5, 0xc2, 0xd7, 0x55, 0xd3, 0x29, 0xaa, 0xdb, 0xa0, 0x1d, 0xfa, + 0xb6, 0x83, 0xba, 0xfe, 0x98, 0x92, 0x36, 0x07, 0xd2, 0xbd, 0x9b, 0x30, 0xe7, 0x74, 0x96, 0x73, + 0x36, 0x96, 0x17, 0xcf, 0x13, 0x43, 0xb3, 0x2b, 0xb1, 0x2d, 0x82, 0x7c, 0x2f, 0xea, 0xab, 0xd2, + 0x02, 0x53, 0x85, 0xf3, 0x59, 0xd4, 0x31, 0x9f, 0x87, 0xea, 0x00, 0x24, 0xff, 0x82, 0xea, 0x82, + 0x79, 0x67, 0x10, 0x26, 0x51, 0xb6, 0x46, 0xa9, 0x2b, 0x79, 0x93, 0x30, 0x3b, 0x08, 0xc6, 0x16, + 0xa8, 0x64, 0xbb, 0x5f, 0x78, 0x92, 0x80, 0x77, 0x86, 0x5b, 0x74, 0x06, 0x38, 0x12, 0x9e, 0xf6, + 0xc3, 0x4c, 0x80, 0xad, 0xa2, 0x7a, 0xda, 0xfd, 0xb0, 0xd5, 0x17, 0xae, 0xee, 0x0e, 0xe9, 0x76, + 0x86, 0xfd, 0xc7, 0x28, 0x0f, 0x1b, 0xc2, 0x08, 0x8b, 0x6c, 0x4d, 0xd0, 0x0b, 0xd6, 0x80, 0x16, + 0xdf, 0xbb, 0xc0, 0xe1, 0xcf, 0xc4, 0x76, 0x72, 0xe7, 0x2d, 0x06, 0x1d, 0xe2, 0xdb, 0x4a, 0x73, + 0xb5, 0xf6, 0x45, 0x90, 0x8a, 0xf8, 0x77, 0x18, 0xa7, 0xc2, 0x4a, 0xbf, 0xda, 0x98, 0xc3, 0x0d, + 0x33, 0x3e, 0xbd, 0x0e, 0x7f, 0x1d, 0xa8, 0xff, 0x4a, 0x04, 0x21, 0x57, 0x27, 0x24, 0x69, 0xc2, + 0xc4, 0xda, 0x75, 0x74, 0xef, 0xf0, 0x08, 0x4a, 0xf0, 0x57, 0x85, 0xa4, 0x13, 0xdd, 0x1e, 0xd2, + 0x91, 0xf7, 0x79, 0x92, 0x48, 0xc7, 0xc6, 0xbc, 0x2a, 0xf3, 0xcd, 0xa0, 0x97, 0x77, 0x31, 0xd8, + 0xc0, 0x66, 0x03, 0xbb, 0x7c, 0xcf, 0x2a, 0x6a, 0x6e, 0x32, 0xe4, 0x53, 0xb0, 0x24, 0x4e, 0xb9, + 0x71, 0xb5, 0xbb, 0x72, 0x3d, 0xe9, 0x0d, 0x36, 0x2a, 0x8b, 0x66, 0x31, 0x0b, 0x90, 0x36, 0xec, + 0x62, 0xf2, 0xc9, 0x6e, 0xcc, 0xeb, 0xa9, 0x93, 0xab, 0x02, 0x0d, 0x38, 0x92, 0xf0, 0x1b, 0x5f, + 0xaa, 0xfd, 0x04, 0x79, 0x12, 0xbd, 0xcf, 0xb0, 0xbb, 0xdc, 0x8b, 0xc1, 0x1e, 0xbf, 0x5d, 0xd5, + 0x06, 0xae, 0x58, 0xfe, 0xf7, 0xf2, 0xce, 0xc0, 0x98, 0x7c, 0xf3, 0x6d, 0x04, 0x7d, 0x11, 0xe6, + 0x5b, 0x44, 0xab, 0x9c, 0xa2, 0x16, 0xf3, 0xb5, 0x63, 0xae, 0x2e, 0x25, 0xd7, 0x8b, 0x4a, 0xae, + 0x67, 0xb1, 0x67, 0xbb, 0x43, 0x1c, 0xe6, 0x9b, 0xdf, 0xc1, 0xd9, 0xca, 0xc0, 0xce, 0x6e, 0xc2, + 0x2b, 0xa2, 0xb5, 0x52, 0x31, 0x97, 0x85, 0xe4, 0xb3, 0x10, 0x3b, 0x8b, 0x53, 0x84, 0xfe, 0x02, + 0x31, 0x83, 0x85, 0xe4, 0xb3, 0x10, 0x3b, 0x8b, 0x53, 0x44, 0xb0, 0x61, 0xfd, 0xad, 0x87, 0x0f, + 0x1c, 0x3e, 0x80, 0xb8, 0x6c, 0x44, 0xd8, 0xac, 0x89, 0xf0, 0xe1, 0x77, 0x11, 0xc7, 0xc3, 0x0a, + 0x8c, 0xe3, 0xa8, 0xea, 0xc6, 0x18, 0xad, 0x88, 0x11, 0x6b, 0xd5, 0x2a, 0x6c, 0x83, 0x76, 0xdb, + 0x6c, 0x70, 0x21, 0x14, 0x82, 0xc0, 0x3b, 0x1d, 0x6e, 0x87, 0xc7, 0x11, 0x00, 0x29, 0xe8, 0x71, + 0x06, 0xa2, 0xf2, 0x7d, 0x8a, 0x54, 0xb6, 0xbc, 0x66, 0x8e, 0xf9, 0x39, 0xe4, 0x35, 0xf2, 0x52, + 0xf2, 0x77, 0xb3, 0x32, 0x18, 0x7d, 0x12, 0x34, 0xf2, 0x7c, 0xf7, 0xae, 0x70, 0x5d, 0x2e, 0x85, + 0x6f, 0x88, 0xca, 0x31, 0x95, 0x34, 0x18, 0x67, 0xe3, 0xf3, 0xf2, 0x0d, 0x85, 0x62, 0x2a, 0x61, + 0x58, 0x9a, 0x71, 0x72, 0x95, 0x3f, 0x0d, 0x75, 0x46, 0xcd, 0x58, 0xfc, 0x2b, 0xd8, 0x39, 0xae, + 0x60, 0x67, 0x28, 0x86, 0xf3, 0x71, 0xd8, 0xd4, 0x51, 0x1e, 0x23, 0x27, 0x11, 0x9f, 0x30, 0x72, + 0x49, 0x49, 0x73, 0x5e, 0xc1, 0x5b, 0x7e, 0x1e, 0xed, 0x1e, 0x00, 0x3b, 0x57, 0x64, 0x83, 0x3c, + 0x6c, 0x73, 0x8d, 0xbd, 0x05, 0x0a, 0x5b, 0x21, 0x5f, 0xab, 0xac, 0x84, 0x54, 0xcb, 0xf5, 0xca, + 0x71, 0xc0, 0xba, 0xbc, 0x16, 0xa0, 0xbb, 0x1e, 0x27, 0x62, 0xcc, 0xe9, 0x4a, 0xcc, 0x19, 0x37, + 0x88, 0xb7, 0x49, 0x84, 0x91, 0xa7, 0xb1, 0xec, 0x0a, 0xec, 0xc7, 0x88, 0x43, 0xb3, 0xe3, 0x8f, + 0x03, 0x7f, 0x3c, 0x54, 0x7e, 0x1e, 0xfa, 0xfe, 0x78, 0x01, 0x5c, 0xb6, 0x0e, 0xd2, 0x22, 0x38, + 0xd1, 0xf6, 0x10, 0x77, 0x9e, 0xab, 0x63, 0x3e, 0x8e, 0x5b, 0xe4, 0x7c, 0x9e, 0x6b, 0x0c, 0xf2, + 0x36, 0x07, 0x17, 0x44, 0xc8, 0xeb, 0x38, 0xc2, 0x36, 0xdd, 0x88, 0x5d, 0x13, 0x52, 0xcb, 0xb9, + 0x5f, 0x75, 0xe8, 0x1c, 0xa0, 0x5d, 0x08, 0x5c, 0x6b, 0xc2, 0xca, 0xc2, 0x2f, 0x6f, 0xb4, 0xb2, + 0x40, 0xdf, 0x71, 0x0c, 0xa8, 0x40, 0x4d, 0x9d, 0x6e, 0x97, 0xc5, 0x47, 0xe1, 0xc9, 0x56, 0xb6, + 0x5e, 0x4e, 0xb3, 0x2c, 0x76, 0x6c, 0x55, 0x97, 0xc1, 0x0c, 0xeb, 0x76, 0x3e, 0x0f, 0x56, 0x3f, + 0xed, 0x0e, 0x71, 0xbc, 0x78, 0x16, 0x48, 0x1f, 0x4a, 0xa3, 0x2f, 0x36, 0x33, 0x6c, 0xb2, 0x71, + 0x31, 0x4a, 0x18, 0x0c, 0x0f, 0x86, 0x47, 0x57, 0x3d, 0x69, 0x37, 0x0c, 0x8e, 0xb4, 0x02, 0xcd, + 0x5c, 0x19, 0xe8, 0xc6, 0xcf, 0x29, 0xb0, 0xc9, 0x58, 0x6a, 0x9c, 0x02, 0xeb, 0xac, 0x98, 0xbf, + 0x72, 0x6b, 0xb0, 0x4c, 0xe9, 0x8f, 0xb1, 0x76, 0xae, 0xc9, 0xe5, 0xdf, 0x89, 0xbe, 0xf3, 0x88, + 0xc0, 0xbb, 0xc2, 0x94, 0x13, 0x86, 0x04, 0xcb, 0xe5, 0x7b, 0x34, 0xe5, 0x58, 0x72, 0x9b, 0x5b, + 0x95, 0xbe, 0xa0, 0x94, 0x87, 0xb1, 0xe6, 0x07, 0x91, 0x3b, 0x89, 0xed, 0xbd, 0x2b, 0xfd, 0x19, + 0x08, 0x53, 0xf0, 0xf0, 0x2b, 0x38, 0x5e, 0x4d, 0x18, 0xd5, 0x72, 0x44, 0x27, 0xbb, 0x1d, 0x98, + 0xf5, 0xd7, 0x19, 0xae, 0xca, 0xf5, 0x66, 0xc7, 0xa8, 0x9f, 0xee, 0x46, 0xa6, 0x5c, 0x0c, 0x4e, + 0xa1, 0xcc, 0x52, 0x12, 0x02, 0x51, 0x6f, 0x19, 0x3c, 0x3c, 0x70, 0x64, 0xed, 0xae, 0x48, 0xb3, + 0x7a, 0x53, 0xb4, 0xa6, 0xbb, 0x6a, 0x15, 0x69, 0x5c, 0xcd, 0xe7, 0x8e, 0x3e, 0x82, 0xb4, 0x31, + 0xff, 0xc8, 0xca, 0x63, 0xcf, 0x43, 0xcd, 0xaf, 0xf7, 0x37, 0x6b, 0x1e, 0x5f, 0x7d, 0xe4, 0x79, + 0x68, 0xac, 0x5a, 0x21, 0x68, 0xac, 0x9c, 0x67, 0x45, 0x73, 0x17, 0x4a, 0xd9, 0xab, 0xa9, 0xae, + 0xc4, 0x27, 0x90, 0x1e, 0xcc, 0x40, 0x6b, 0x02, 0x56, 0x4c, 0xe3, 0x68, 0xe3, 0x62, 0xed, 0xa3, + 0xb4, 0x4e, 0x03, 0xc6, 0xcb, 0x44, 0xb9, 0x24, 0x6b, 0x2c, 0xd6, 0xaf, 0xb8, 0xd9, 0xcc, 0xe0, + 0x0e, 0xba, 0x11, 0x96, 0x3b, 0x4a, 0xbc, 0x8b, 0xdd, 0x46, 0x4b, 0xfb, 0x30, 0x90, 0x2e, 0xfc, + 0x3a, 0x2d, 0xb6, 0x7d, 0x40, 0x63, 0x59, 0x04, 0x59, 0x62, 0xaa, 0x6b, 0xc0, 0x0f, 0x49, 0xa4, + 0xcd, 0xb9, 0xd1, 0x9f, 0xa1, 0xc8, 0xfc, 0xc9, 0x4a, 0x4c, 0x0d, 0x1d, 0xc6, 0xf2, 0x6b, 0x9c, + 0x4e, 0xc4, 0x89, 0xba, 0x95, 0x6b, 0xe7, 0x4a, 0x2e, 0x40, 0x87, 0xb2, 0x8e, 0x50, 0xe8, 0x71, + 0xfa, 0x0d, 0xb6, 0x46, 0xc8, 0x84, 0x30, 0x8e, 0x79, 0x1d, 0x86, 0xd9, 0xb4, 0xce, 0x63, 0x54, + 0x13, 0xef, 0xc5, 0x18, 0xc4, 0x93, 0xb7, 0xa2, 0xa4, 0x98, 0x97, 0x3f, 0x15, 0xb4, 0xee, 0x7d, + 0x38, 0x16, 0x69, 0x0c, 0xda, 0xea, 0x88, 0x9d, 0xee, 0xe9, 0xd6, 0x56, 0x87, 0xdb, 0xb8, 0x8d, + 0x07, 0x62, 0x75, 0xa0, 0xd6, 0xa2, 0xdd, 0x14, 0xf8, 0x0e, 0x8f, 0x8f, 0xa7, 0xac, 0x21, 0xa4, + 0x53, 0xcb, 0x60, 0xdb, 0x5f, 0xa1, 0xef, 0x38, 0x92, 0xa9, 0x83, 0xb7, 0x0c, 0xae, 0x3a, 0x13, + 0x8e, 0xed, 0x8e, 0x71, 0x2f, 0x02, 0x3e, 0xd6, 0x8e, 0xc5, 0x17, 0x38, 0xba, 0x83, 0x77, 0xbe, + 0x92, 0xd2, 0x8a, 0xfe, 0xf6, 0xe2, 0xb3, 0x12, 0xdd, 0xc4, 0xd9, 0x9d, 0x47, 0xb0, 0xbc, 0x1c, + 0xe4, 0xde, 0xdf, 0x56, 0x15, 0x1e, 0xad, 0xc9, 0x48, 0x0f, 0xc2, 0xa8, 0x76, 0xef, 0x9b, 0x3e, + 0x15, 0x34, 0xee, 0x57, 0x28, 0x9c, 0x6a, 0xe2, 0x8b, 0xfa, 0x3a, 0x63, 0x6b, 0x49, 0x4a, 0xfd, + 0xb8, 0x10, 0x37, 0xb6, 0x7e, 0x72, 0xdc, 0x58, 0x2e, 0xe4, 0x6b, 0xe5, 0x28, 0xad, 0x12, 0xb2, + 0x1b, 0xb1, 0x5a, 0x43, 0xa9, 0x0c, 0x88, 0x25, 0x27, 0xdf, 0x06, 0x05, 0x54, 0xce, 0xfe, 0x42, + 0x2a, 0xe7, 0x77, 0xb4, 0xee, 0xb5, 0x5c, 0x7a, 0xec, 0xa0, 0x82, 0xcd, 0x93, 0xe3, 0x6b, 0x2e, + 0x8c, 0xd6, 0x21, 0x95, 0xad, 0xc6, 0x20, 0xcd, 0x78, 0xfb, 0x3f, 0x1f, 0xa2, 0x59, 0x4e, 0xee, + 0x38, 0xb6, 0x6d, 0xba, 0x3f, 0x1b, 0xfb, 0x96, 0x9a, 0x51, 0x5c, 0x11, 0x8a, 0x5d, 0x09, 0x7d, + 0x05, 0xa9, 0x22, 0x9d, 0xc5, 0x10, 0x49, 0x9e, 0x41, 0x09, 0x29, 0x80, 0x29, 0x77, 0x50, 0x4a, + 0x1c, 0xff, 0x1b, 0x41, 0x7b, 0xf8, 0x60, 0x08, 0xd2, 0xf4, 0xef, 0x95, 0xd3, 0x1a, 0x40, 0x2b, + 0xa4, 0x9b, 0x81, 0x7b, 0xcf, 0xe3, 0x76, 0x3a, 0x9d, 0x6d, 0x90, 0x61, 0x06, 0xfe, 0xbd, 0x59, + 0xee, 0x12, 0x67, 0x09, 0x96, 0xbf, 0xa8, 0xe4, 0x02, 0x27, 0x2a, 0xad, 0xd4, 0x87, 0xe9, 0xd2, + 0xe5, 0x11, 0xeb, 0xae, 0xb0, 0x1b, 0x7c, 0x2b, 0xe6, 0xae, 0xae, 0xe9, 0x12, 0x35, 0xed, 0xf0, + 0xd8, 0xc1, 0x65, 0xd0, 0xbf, 0x03, 0x47, 0xf3, 0x5f, 0x22, 0x95, 0x8a, 0xa1, 0xd1, 0x9d, 0x65, + 0xd5, 0x4c, 0xfa, 0x31, 0x31, 0xd8, 0xad, 0x28, 0xf9, 0xf4, 0x7f, 0x9e, 0x89, 0xb2, 0x56, 0x66, + 0x02, 0x44, 0x59, 0x6c, 0x67, 0xab, 0x93, 0xe4, 0x7c, 0xcc, 0x5d, 0xc7, 0xee, 0xaa, 0x16, 0x47, + 0xfb, 0x9a, 0xe0, 0x09, 0x82, 0x98, 0x85, 0xb8, 0xd3, 0x21, 0xb4, 0xd3, 0xb4, 0x60, 0x28, 0x7e, + 0xf3, 0x65, 0x0b, 0x42, 0xf1, 0x9f, 0xaf, 0xe9, 0x3f, 0x7b, 0x5c, 0xe5, 0x0b, 0xf7, 0x3e, 0x0f, + 0xa2, 0xff, 0x44, 0x22, 0x45, 0x8e, 0x52, 0x23, 0xa3, 0x45, 0x1b, 0xb4, 0x9b, 0x6c, 0xd0, 0x6a, + 0xc6, 0xde, 0x23, 0xc7, 0xf8, 0xe2, 0x84, 0x22, 0x59, 0xb0, 0x3b, 0xbc, 0x51, 0x5e, 0xd9, 0xd2, + 0x04, 0xb0, 0x01, 0xcb, 0xce, 0xc4, 0x7e, 0xa6, 0x67, 0x3d, 0x39, 0x3e, 0x12, 0xd5, 0xc8, 0x58, + 0x55, 0x8d, 0xc1, 0x6a, 0xb6, 0x3f, 0x6d, 0x14, 0xfe, 0xcb, 0xf3, 0xe4, 0x19, 0x67, 0x82, 0x50, + 0x70, 0x2c, 0xe8, 0x16, 0xb4, 0xa1, 0x2b, 0x03, 0x11, 0xc1, 0x11, 0x82, 0x65, 0x88, 0x36, 0xc4, + 0x65, 0xd6, 0xee, 0x2d, 0x01, 0x44, 0xee, 0x99, 0x2e, 0x13, 0x94, 0x75, 0x76, 0x4c, 0x78, 0x75, + 0xa5, 0x35, 0xe9, 0x83, 0xe7, 0x1e, 0xb5, 0x23, 0xf6, 0x08, 0x76, 0xab, 0xff, 0xf8, 0x9b, 0x17, + 0xc0, 0xea, 0x8b, 0x1c, 0xde, 0x87, 0x7d, 0xcd, 0x11, 0xd0, 0x18, 0xcb, 0xb1, 0xbe, 0x67, 0x88, + 0x13, 0x0a, 0xc8, 0x23, 0x7b, 0xc7, 0xf3, 0xc8, 0xb6, 0x51, 0x7e, 0x40, 0x1c, 0xd0, 0x80, 0x1c, + 0xb0, 0x8d, 0x23, 0xd8, 0x63, 0xfd, 0x48, 0xde, 0x7b, 0xc6, 0x79, 0x11, 0x3a, 0xbb, 0xf3, 0x57, + 0xee, 0x16, 0x38, 0x2b, 0xef, 0xa4, 0x29, 0xb0, 0x41, 0xe1, 0xbd, 0x2e, 0xb8, 0x38, 0x1d, 0x99, + 0xdd, 0xbd, 0x25, 0xf0, 0x69, 0xa1, 0x0d, 0xca, 0xee, 0x2d, 0x85, 0x4b, 0x33, 0x6c, 0xe0, 0xb9, + 0x77, 0x26, 0x5c, 0xa6, 0x15, 0xdf, 0x7b, 0xcb, 0x38, 0x28, 0xc4, 0x51, 0xe6, 0xde, 0xd9, 0x1c, + 0x4f, 0x58, 0xe4, 0xd4, 0x36, 0x0f, 0xa7, 0x45, 0x4c, 0x9e, 0x57, 0x46, 0x99, 0x79, 0x48, 0x6b, + 0xd9, 0xca, 0x6d, 0xb9, 0x6f, 0x53, 0xa9, 0xf7, 0x56, 0x72, 0xfa, 0x7b, 0x4b, 0xb8, 0x34, 0xa7, + 0x8d, 0x4b, 0xbf, 0xb3, 0x03, 0xc7, 0x92, 0xdb, 0x16, 0x84, 0x43, 0x57, 0xf6, 0x85, 0x6d, 0xc5, + 0x5c, 0x66, 0x5e, 0xda, 0xbd, 0xc5, 0x5c, 0x81, 0x52, 0x93, 0x4d, 0xf7, 0x3a, 0xb8, 0x42, 0x8c, + 0x55, 0xc4, 0x62, 0x7d, 0x77, 0xe0, 0xe5, 0xeb, 0x31, 0x6b, 0x04, 0x1c, 0x81, 0x1c, 0x81, 0xba, + 0x78, 0x0e, 0x0e, 0xa5, 0xd7, 0x3e, 0x8e, 0xbd, 0xf6, 0x0a, 0x52, 0x61, 0x7b, 0xc9, 0x87, 0xd8, + 0x83, 0xcb, 0xe1, 0xaa, 0xb3, 0x05, 0x4e, 0xe0, 0x73, 0x12, 0xeb, 0x73, 0x0a, 0xeb, 0x72, 0x06, + 0xeb, 0x71, 0xf6, 0xde, 0x32, 0xb8, 0x84, 0xf5, 0x38, 0x77, 0xef, 0x6c, 0xb8, 0x8c, 0x10, 0x9f, + 0x88, 0x41, 0xac, 0xb4, 0x35, 0xc2, 0xed, 0xed, 0xbf, 0xb4, 0x7a, 0x8a, 0x93, 0x24, 0x49, 0x31, + 0x5b, 0x0e, 0x75, 0xfe, 0x0a, 0xc3, 0xda, 0xe4, 0x55, 0x4e, 0x74, 0x2d, 0x27, 0x4a, 0x14, 0xd3, + 0x46, 0x69, 0xf5, 0x52, 0xe3, 0x14, 0x0f, 0x49, 0xba, 0x3e, 0xe4, 0x82, 0x28, 0x7b, 0x12, 0x2f, + 0x84, 0x2b, 0xbf, 0xb4, 0x60, 0x8d, 0x50, 0xda, 0xab, 0x86, 0xd5, 0xad, 0x1c, 0xc9, 0x8d, 0x86, + 0x51, 0x5e, 0xe0, 0xd6, 0x39, 0x81, 0x93, 0xa9, 0x83, 0xe5, 0x3d, 0x03, 0xcb, 0xd2, 0xb4, 0x72, + 0xb1, 0x5d, 0x91, 0x24, 0xfd, 0x73, 0x15, 0xf2, 0x3a, 0xa5, 0x7d, 0x86, 0x71, 0xa2, 0xd9, 0x2b, + 0x6a, 0x74, 0x00, 0x1d, 0x81, 0x0a, 0xfd, 0xed, 0xfe, 0xcb, 0x46, 0x37, 0x8d, 0x60, 0xdf, 0xde, + 0x2f, 0x16, 0xda, 0x78, 0xef, 0x63, 0xb4, 0x4f, 0xd1, 0xe4, 0x11, 0x3c, 0x06, 0x67, 0xc2, 0x2a, + 0x68, 0xaa, 0x3e, 0xaf, 0x00, 0x58, 0x8a, 0x49, 0x28, 0x4b, 0x66, 0x19, 0x67, 0xe9, 0xef, 0x60, + 0x3e, 0x8d, 0x07, 0xfc, 0x9f, 0x8a, 0xbc, 0x71, 0x96, 0x27, 0xcd, 0xbf, 0xcf, 0xe9, 0x90, 0xf7, + 0xfd, 0x76, 0xc8, 0xfb, 0x1f, 0x71, 0xa8, 0x35, 0xa5, 0x06, 0x01, 0xb1, 0x8d, 0x0a, 0x8c, 0x71, + 0x94, 0x3f, 0xb8, 0x69, 0x36, 0x5e, 0x70, 0x08, 0x45, 0x74, 0x5c, 0x20, 0x1e, 0x5a, 0xc4, 0xe8, + 0xc7, 0xe5, 0x6e, 0xe7, 0x00, 0x75, 0x37, 0x90, 0x69, 0xe7, 0x36, 0x17, 0x14, 0x14, 0x9f, 0x83, + 0x9a, 0xc9, 0x6e, 0x94, 0xcb, 0x7a, 0x60, 0x3e, 0xba, 0xe7, 0xa3, 0xbb, 0x26, 0x28, 0x4d, 0x76, + 0x40, 0x1f, 0x3e, 0xc7, 0x69, 0xc7, 0x1a, 0xd3, 0x3f, 0xfc, 0x42, 0x72, 0x65, 0x98, 0xed, 0xa2, + 0x65, 0x7b, 0x25, 0x5d, 0xd9, 0x6c, 0x5e, 0xfd, 0x3c, 0xed, 0x05, 0x65, 0xab, 0x9e, 0xd3, 0x41, + 0x2b, 0xef, 0x2c, 0x44, 0x5e, 0xae, 0x63, 0x21, 0xf7, 0x80, 0x9e, 0x49, 0x88, 0xe9, 0x28, 0xf1, + 0x65, 0x6e, 0x3c, 0xc0, 0x66, 0x40, 0x68, 0x25, 0xa2, 0x8c, 0xf6, 0x89, 0xca, 0x37, 0xaa, 0xb3, + 0xf5, 0x50, 0x96, 0x47, 0xa9, 0xbc, 0xff, 0x56, 0xc7, 0xf6, 0xbb, 0xef, 0xc2, 0x3c, 0xdd, 0xc8, + 0x4b, 0xca, 0x31, 0x0e, 0xdb, 0x1d, 0x86, 0xad, 0x41, 0xf2, 0x3a, 0xed, 0x31, 0x62, 0xbb, 0xd5, + 0x46, 0x73, 0xa0, 0xf4, 0xa8, 0x39, 0xe5, 0x99, 0xe4, 0xb9, 0x7d, 0x0f, 0xe4, 0xd3, 0x7a, 0x1a, + 0x37, 0xe8, 0x2c, 0x73, 0xce, 0x5c, 0x06, 0xed, 0x92, 0x58, 0xa3, 0xac, 0x0a, 0x4e, 0x0f, 0x98, + 0x6a, 0xd3, 0xe4, 0xb5, 0xc0, 0x80, 0x95, 0xbd, 0xef, 0xf1, 0x17, 0x89, 0x76, 0xe6, 0xfa, 0x56, + 0x40, 0x8e, 0xe3, 0xf6, 0x5b, 0x44, 0xa3, 0x99, 0x56, 0xef, 0xd4, 0xa8, 0x7b, 0xa9, 0x99, 0xfe, + 0x9b, 0x19, 0xdf, 0xf5, 0x97, 0x8a, 0xfa, 0x6f, 0xf2, 0x0c, 0x33, 0x68, 0x44, 0x75, 0x11, 0xfe, + 0x22, 0x2d, 0xe6, 0x8f, 0x59, 0xd1, 0xdb, 0x8a, 0x3a, 0x42, 0x57, 0xa0, 0x40, 0x5e, 0x7f, 0x8a, + 0xad, 0xb9, 0x71, 0x65, 0x0c, 0x17, 0xdf, 0x42, 0x76, 0xe5, 0x00, 0x33, 0xc9, 0x62, 0x28, 0x95, + 0x78, 0xc0, 0xbe, 0xf1, 0x80, 0xc1, 0x89, 0x75, 0x36, 0xb2, 0x19, 0xa1, 0xb2, 0x02, 0x10, 0x97, + 0x7b, 0x56, 0xd0, 0x2e, 0x45, 0x77, 0xbb, 0xea, 0x13, 0x59, 0xdf, 0xbd, 0xbc, 0xc7, 0xa2, 0xac, + 0x8d, 0x61, 0x9f, 0x4d, 0x41, 0x8c, 0xf0, 0xf2, 0xfa, 0xda, 0x35, 0x5f, 0x01, 0xa0, 0x5f, 0xd6, + 0x89, 0xe7, 0x8a, 0x4e, 0xb6, 0x5f, 0xe7, 0x84, 0xa7, 0x8c, 0x76, 0xf0, 0xd8, 0x52, 0xec, 0x1d, + 0xaa, 0x8f, 0x37, 0x0c, 0xd8, 0xb4, 0xf2, 0xca, 0xdf, 0x67, 0xc7, 0x62, 0x79, 0xc0, 0xde, 0x2f, + 0xcb, 0x83, 0xad, 0xd1, 0x65, 0x7a, 0x5c, 0x18, 0xe7, 0x49, 0x96, 0xd7, 0x56, 0xcf, 0x4c, 0xfc, + 0xdd, 0x80, 0x12, 0x5f, 0x6c, 0x47, 0xf1, 0x9e, 0xc4, 0x1d, 0xc5, 0x28, 0x0d, 0x5a, 0xe8, 0x5b, + 0xa0, 0x91, 0xed, 0x51, 0x96, 0x57, 0x99, 0x76, 0x18, 0x21, 0x30, 0xdf, 0x10, 0x5b, 0x63, 0xa3, + 0xfd, 0xc9, 0x8e, 0xaf, 0x4a, 0x6f, 0x7c, 0x88, 0xb7, 0x18, 0x54, 0x72, 0x6c, 0x65, 0x3f, 0x32, + 0x67, 0xf5, 0x28, 0xfb, 0x91, 0x63, 0xeb, 0x5a, 0x7c, 0xcc, 0x85, 0xbd, 0xcc, 0x65, 0x57, 0x57, + 0xbc, 0x5b, 0x71, 0x55, 0x6e, 0xf3, 0x44, 0x8d, 0x5a, 0xfa, 0xe5, 0xdf, 0xda, 0x73, 0x5c, 0x94, + 0x67, 0x6a, 0x01, 0x01, 0x47, 0x09, 0x23, 0x8e, 0xed, 0x66, 0x5b, 0x4a, 0x6c, 0xa5, 0x5a, 0xf7, + 0x4d, 0x28, 0xd4, 0x4a, 0xfe, 0x32, 0x43, 0xca, 0xe8, 0x4e, 0x6b, 0xb6, 0x27, 0x7b, 0x53, 0x7c, + 0x9f, 0x75, 0xd4, 0x42, 0xbd, 0xeb, 0xd4, 0x7f, 0xbc, 0x61, 0x8c, 0xed, 0x8b, 0x3e, 0x89, 0x2a, + 0x79, 0x6c, 0xc7, 0x74, 0x34, 0xbe, 0x03, 0xfb, 0x97, 0xe2, 0x02, 0x0b, 0xcc, 0x5f, 0x21, 0x24, + 0x8d, 0x95, 0x68, 0x03, 0x45, 0x28, 0x8d, 0xca, 0xeb, 0x64, 0x52, 0xa1, 0xdd, 0x26, 0xef, 0x9f, + 0x3f, 0xa6, 0xec, 0xac, 0x3a, 0x66, 0x50, 0x8d, 0xc9, 0x35, 0x61, 0xaf, 0x35, 0xb5, 0x87, 0xa8, + 0x0b, 0x05, 0xe4, 0xaf, 0x23, 0x79, 0xed, 0x20, 0x50, 0xed, 0x8b, 0x62, 0x33, 0x07, 0xb4, 0xf7, + 0xda, 0xba, 0x48, 0x5e, 0xef, 0x53, 0xd6, 0xb7, 0xc0, 0xfd, 0xc1, 0x8c, 0x42, 0xab, 0x8d, 0x33, + 0x5b, 0x6c, 0x9c, 0xd5, 0xdc, 0xc2, 0xd9, 0x59, 0x59, 0x67, 0x6c, 0x1a, 0xb6, 0x93, 0xbd, 0x88, + 0xad, 0xe9, 0xf9, 0x51, 0x5f, 0x3a, 0xf5, 0xff, 0x0c, 0xe9, 0x56, 0xd0, 0xda, 0x64, 0x40, 0xc3, + 0x7c, 0x27, 0x9c, 0x2a, 0x81, 0x6a, 0xf8, 0x4e, 0xbb, 0xf1, 0xd8, 0x7a, 0x3a, 0x49, 0x91, 0xb7, + 0xc7, 0xa6, 0x41, 0x89, 0x8b, 0x52, 0x7f, 0x48, 0xbc, 0x02, 0xa9, 0x99, 0x4e, 0xa8, 0xa4, 0x2b, + 0xf3, 0x99, 0x7a, 0x83, 0xda, 0x98, 0x84, 0x7c, 0x2b, 0x55, 0xbe, 0x09, 0xdd, 0x9f, 0xee, 0x53, + 0x61, 0xaf, 0x57, 0x91, 0x94, 0x22, 0xe4, 0x69, 0xc1, 0xbf, 0x4f, 0xe6, 0x0e, 0xf3, 0x3b, 0x90, + 0x1f, 0xc2, 0x97, 0xc1, 0xab, 0xec, 0xb1, 0x36, 0x62, 0x9b, 0x21, 0xbc, 0x28, 0xfb, 0xc2, 0x07, + 0xab, 0x8e, 0x84, 0x8f, 0x44, 0x8e, 0x44, 0x34, 0x34, 0xef, 0xd6, 0x57, 0xfe, 0x97, 0xcc, 0x2b, + 0x28, 0xdf, 0xe8, 0xfd, 0x00, 0x3b, 0x84, 0x87, 0xa0, 0x96, 0xf5, 0x3e, 0x2b, 0x9d, 0x53, 0x10, + 0xbe, 0xa9, 0xad, 0x6d, 0x32, 0xd8, 0x92, 0x9c, 0xbf, 0xc2, 0x11, 0xf0, 0x21, 0xd8, 0x81, 0xcf, + 0x36, 0x77, 0x50, 0x0b, 0xac, 0x55, 0x4f, 0x4f, 0x5a, 0x34, 0x45, 0xde, 0xbd, 0x9b, 0xcd, 0x52, + 0x37, 0x7b, 0xb6, 0xc3, 0x40, 0x60, 0x91, 0x2d, 0x07, 0xb6, 0xe1, 0xb3, 0x23, 0x36, 0xf2, 0x9b, + 0xc0, 0x0c, 0xc7, 0xc2, 0xe3, 0x77, 0x5d, 0x22, 0xfd, 0xa6, 0xd2, 0x1e, 0x12, 0x83, 0xc3, 0xe8, + 0xb2, 0x96, 0xd2, 0x6e, 0x76, 0x1c, 0x51, 0xf4, 0x01, 0x0b, 0x96, 0x3f, 0x80, 0x12, 0xbf, 0x7a, + 0x54, 0x6e, 0x31, 0x35, 0xe2, 0x58, 0x42, 0x71, 0x39, 0x16, 0xaf, 0xb0, 0xaa, 0xb3, 0x66, 0x8d, + 0xa7, 0xd3, 0xff, 0x89, 0xbc, 0xe3, 0x9a, 0xf6, 0x76, 0x98, 0x51, 0x97, 0x44, 0xe9, 0xc4, 0x8e, + 0xd2, 0x49, 0xbe, 0x3c, 0xeb, 0x42, 0xf8, 0xd1, 0x10, 0x06, 0xfb, 0x66, 0x5e, 0xd2, 0x5e, 0x41, + 0xb8, 0x48, 0x72, 0xff, 0x39, 0xf2, 0x56, 0xde, 0xa6, 0xf3, 0xf6, 0x8f, 0x5c, 0x64, 0xf2, 0xfc, + 0x76, 0x56, 0xe3, 0xc7, 0x83, 0x1c, 0x9b, 0x69, 0x08, 0xa3, 0x5f, 0x8b, 0xef, 0x76, 0x25, 0x76, + 0x10, 0xeb, 0xd4, 0x87, 0xbc, 0x60, 0x11, 0xbe, 0xf7, 0xe0, 0x5b, 0x34, 0x5b, 0x61, 0x97, 0xd1, + 0xf5, 0xd6, 0xfe, 0xb7, 0xf6, 0x0b, 0xc9, 0x63, 0x6b, 0x42, 0xbb, 0xba, 0x71, 0x8c, 0x3d, 0x4f, + 0xb5, 0xb1, 0x96, 0x50, 0x5d, 0xee, 0x76, 0x81, 0xda, 0xb4, 0x03, 0x7a, 0xef, 0x6e, 0x84, 0x3d, + 0xd8, 0x47, 0x1a, 0xa1, 0x0f, 0xeb, 0x94, 0x3c, 0x5a, 0x27, 0x94, 0xff, 0xf5, 0x7d, 0x9b, 0x03, + 0x5a, 0xc1, 0xc9, 0xe2, 0x17, 0xfa, 0xba, 0xe6, 0x46, 0xd9, 0x1c, 0xce, 0xb9, 0xbb, 0x4b, 0x41, + 0x8b, 0x72, 0xe5, 0xa7, 0x38, 0x6e, 0x6e, 0xc3, 0x27, 0x8e, 0x45, 0xa3, 0x63, 0x1c, 0xf6, 0x74, + 0x63, 0xca, 0x73, 0x82, 0x2e, 0x78, 0xcb, 0xdd, 0x0e, 0x50, 0xdf, 0xdd, 0x81, 0x54, 0x76, 0x16, + 0xb4, 0xa6, 0xb0, 0xf1, 0x21, 0xd0, 0x5b, 0x9c, 0xad, 0x30, 0x9b, 0x69, 0xf1, 0x74, 0xfa, 0x03, + 0xc7, 0x34, 0x4d, 0xd6, 0x76, 0x50, 0x89, 0xcb, 0x32, 0x2d, 0xc0, 0x65, 0x58, 0x80, 0xd7, 0x5b, + 0x40, 0x95, 0xa6, 0xea, 0x53, 0x2d, 0xe4, 0xd3, 0xd4, 0xbd, 0x1c, 0xfe, 0x82, 0x87, 0xf3, 0xab, + 0x9d, 0xb7, 0x89, 0x35, 0xcb, 0x20, 0x4b, 0x9d, 0xc9, 0x9d, 0xd2, 0xf1, 0xa4, 0xe6, 0x4a, 0x56, + 0xf5, 0xf1, 0x2e, 0xa1, 0xec, 0xf0, 0x7e, 0x9e, 0xd6, 0x6b, 0x25, 0x59, 0x6e, 0x7d, 0x61, 0xe0, + 0x7f, 0x0d, 0xb8, 0x40, 0xc7, 0x49, 0x83, 0x3e, 0x65, 0x47, 0xe7, 0x07, 0xab, 0xc2, 0xdc, 0x0b, + 0xbf, 0xfb, 0x5f, 0x8a, 0x8f, 0xe8, 0x0b, 0xfd, 0xaf, 0x8c, 0xfa, 0xc3, 0x5c, 0x56, 0xd8, 0x17, + 0xad, 0x59, 0xed, 0x7b, 0x34, 0x5e, 0xbb, 0xad, 0x95, 0xeb, 0x7b, 0xa3, 0xb5, 0x20, 0xf9, 0x69, + 0x2f, 0x0a, 0x3b, 0x19, 0x46, 0x94, 0x9a, 0xae, 0xcf, 0x01, 0x7b, 0x15, 0x8d, 0xcf, 0x5c, 0xed, + 0x5c, 0x6c, 0x0f, 0xa7, 0xbf, 0x32, 0x38, 0x63, 0xac, 0x54, 0xae, 0x9c, 0xb4, 0x49, 0x93, 0x69, + 0x28, 0xbf, 0x03, 0x66, 0xc4, 0x4e, 0x45, 0xdc, 0x5d, 0x01, 0xce, 0x82, 0x3d, 0x90, 0x87, 0x94, + 0xe4, 0x9c, 0xd6, 0x01, 0x79, 0x28, 0x52, 0x32, 0x17, 0xb7, 0x01, 0x35, 0x01, 0x39, 0x6c, 0x2b, + 0x68, 0xc8, 0x25, 0xcf, 0xa0, 0x3a, 0xb7, 0x41, 0x1a, 0xf9, 0xf0, 0x3d, 0x49, 0x79, 0x1b, 0x90, + 0xb6, 0x80, 0x9d, 0xc7, 0xb9, 0xca, 0xc6, 0x7d, 0xd4, 0x73, 0x8c, 0x4d, 0xb4, 0x1b, 0x92, 0xf1, + 0x4c, 0x5f, 0x8e, 0x43, 0xba, 0x4a, 0xbb, 0x8c, 0x0d, 0x6a, 0xda, 0x09, 0xa3, 0xf0, 0x94, 0xbd, + 0xd4, 0x87, 0xbb, 0xce, 0xdb, 0xd4, 0xee, 0x26, 0x4c, 0xd5, 0x00, 0x06, 0x6a, 0xb9, 0xe4, 0x13, + 0x6c, 0x97, 0xaf, 0xc3, 0x5f, 0x8d, 0x63, 0xc1, 0x54, 0xe9, 0xaa, 0xb7, 0x7f, 0x78, 0x17, 0xf2, + 0x86, 0x9e, 0xb8, 0xee, 0x7f, 0x65, 0xbc, 0xee, 0x3f, 0x99, 0x74, 0x7f, 0xfc, 0x1e, 0xc8, 0x1f, + 0x53, 0x9a, 0x09, 0xd3, 0xab, 0xe5, 0x1d, 0x00, 0x77, 0x9e, 0x64, 0xd4, 0x8b, 0x12, 0xae, 0x80, + 0x39, 0x8a, 0xa9, 0xf1, 0x9c, 0xe7, 0xd1, 0x49, 0xa5, 0x8a, 0x8f, 0x5d, 0xd9, 0xd2, 0x59, 0x5a, + 0xa1, 0x97, 0xb9, 0x54, 0x41, 0x9e, 0xb1, 0x85, 0xcb, 0x36, 0xd9, 0x38, 0xc1, 0xd4, 0xc2, 0x19, + 0xd9, 0xee, 0x92, 0x45, 0x86, 0x64, 0xa3, 0x6a, 0x74, 0x1c, 0xf1, 0xcf, 0x1b, 0xdd, 0x4d, 0x64, + 0x86, 0xa0, 0xba, 0xb7, 0xab, 0xce, 0x4d, 0x75, 0xd9, 0x9b, 0xea, 0x0e, 0xb9, 0xbf, 0x60, 0x72, + 0xcb, 0x53, 0xf2, 0x1e, 0x85, 0x07, 0xba, 0x74, 0x34, 0xcd, 0x01, 0xb5, 0x66, 0x84, 0x25, 0x39, + 0xbd, 0x08, 0x84, 0xa1, 0xf5, 0xca, 0xa9, 0x20, 0xbb, 0x81, 0x4f, 0xcc, 0x53, 0x3e, 0x17, 0xa1, + 0x9c, 0xf8, 0xcb, 0x4e, 0xe4, 0x4d, 0x01, 0x5d, 0x02, 0x77, 0x62, 0x63, 0x09, 0x72, 0x25, 0x75, + 0x55, 0x38, 0x34, 0x61, 0x67, 0xb8, 0x3e, 0x8d, 0x4e, 0x08, 0x18, 0xdc, 0x6f, 0x5e, 0x85, 0x53, + 0x1d, 0xd9, 0xc2, 0xb4, 0x6e, 0x4c, 0x45, 0x67, 0x27, 0x51, 0xc6, 0x13, 0xb0, 0x6f, 0xeb, 0x5b, + 0xd5, 0x86, 0xa2, 0x48, 0xf6, 0xcf, 0x7e, 0x57, 0x2a, 0xcf, 0x4b, 0x15, 0x21, 0x39, 0x6c, 0xb6, + 0x71, 0x34, 0xcb, 0x14, 0x82, 0x32, 0x6e, 0x5f, 0xe7, 0x0b, 0x91, 0x13, 0x6b, 0xaa, 0xa2, 0xfe, + 0x33, 0xc1, 0x3b, 0x07, 0x22, 0x15, 0xef, 0xaa, 0x75, 0xca, 0x69, 0x2d, 0xa4, 0x0b, 0xe4, 0x10, + 0xd9, 0x74, 0x16, 0xca, 0xdb, 0x2f, 0xed, 0xa2, 0x5d, 0x71, 0xa5, 0xe7, 0x61, 0xba, 0xe0, 0x89, + 0x63, 0xfd, 0x50, 0xe2, 0x69, 0xb6, 0xe2, 0x4b, 0xdd, 0x60, 0x98, 0x35, 0x7a, 0x66, 0x2b, 0x21, + 0xde, 0xab, 0xf2, 0x39, 0x2d, 0x94, 0x9f, 0xf8, 0xd6, 0xe9, 0x43, 0xcf, 0x83, 0x7e, 0x74, 0x5f, + 0xdb, 0xb5, 0x43, 0x06, 0xaa, 0xd7, 0x0d, 0x76, 0xbc, 0x5d, 0x7b, 0xd5, 0x78, 0xa7, 0x72, 0x1a, + 0x27, 0x8f, 0x4e, 0xe3, 0x20, 0x3c, 0xd9, 0x74, 0xaa, 0x44, 0xb2, 0x30, 0x48, 0x3e, 0x1a, 0x03, + 0xc9, 0xbc, 0x44, 0x48, 0x84, 0x25, 0xdd, 0x20, 0x26, 0x97, 0x60, 0x6f, 0x7e, 0xf1, 0x95, 0x40, + 0x32, 0x4a, 0x98, 0x7a, 0xff, 0xa7, 0xad, 0x80, 0xd2, 0xa9, 0x36, 0x11, 0x26, 0x86, 0x63, 0x5d, + 0x6c, 0xd7, 0x45, 0xc1, 0x0c, 0x1c, 0x79, 0x8b, 0x70, 0xe4, 0x75, 0x60, 0x9d, 0x5d, 0x58, 0x96, + 0x9b, 0x9d, 0x91, 0xe9, 0x97, 0xa2, 0x82, 0x3c, 0x9f, 0x9d, 0xe6, 0xd9, 0x06, 0x0d, 0x01, 0x1d, + 0xfe, 0xb6, 0xa1, 0xb4, 0xbb, 0x0d, 0x42, 0x81, 0x36, 0xb6, 0x37, 0x5d, 0xa7, 0xec, 0x4d, 0x77, + 0x7b, 0xfb, 0xaf, 0x18, 0xe2, 0xa7, 0x42, 0xd5, 0xad, 0x85, 0x48, 0xe1, 0x72, 0xbb, 0xee, 0x9d, + 0x75, 0x01, 0x0a, 0x72, 0x2c, 0x50, 0x88, 0x63, 0xd2, 0x4d, 0x6d, 0x6a, 0x25, 0x74, 0x30, 0xa4, + 0xa6, 0xd3, 0x28, 0xbc, 0x09, 0xe3, 0xce, 0x18, 0x8d, 0x6b, 0x6b, 0x80, 0x19, 0x90, 0x7f, 0x7d, + 0xcc, 0x07, 0xf6, 0xb9, 0xa3, 0x2e, 0xd4, 0x51, 0xb9, 0x2b, 0x98, 0x9b, 0x40, 0x67, 0x78, 0x98, + 0x04, 0x3a, 0xc0, 0xf6, 0xcc, 0x91, 0xe4, 0xe9, 0x31, 0xcc, 0x66, 0x32, 0x5a, 0x83, 0xc5, 0xc1, + 0xc6, 0xf2, 0xfe, 0x91, 0x03, 0x46, 0xc7, 0x18, 0x08, 0x0b, 0x50, 0xd7, 0x25, 0xc9, 0xd8, 0x88, + 0x10, 0xea, 0xf9, 0x26, 0xe9, 0xaf, 0xa8, 0xf5, 0x3e, 0x0b, 0x19, 0xf8, 0x64, 0x89, 0xb9, 0xbb, + 0xe4, 0x15, 0xa1, 0x1e, 0x56, 0xc7, 0x1e, 0x56, 0xc7, 0x1e, 0xac, 0x63, 0xb6, 0x07, 0x63, 0xf8, + 0xf5, 0xa1, 0x9c, 0x32, 0x2e, 0xb6, 0x9b, 0x05, 0x61, 0x08, 0xed, 0x92, 0x57, 0x3d, 0x12, 0x73, + 0xff, 0x36, 0xe6, 0x1e, 0xab, 0xbf, 0x16, 0x65, 0xf4, 0xfd, 0xf8, 0x9c, 0xc5, 0xd4, 0xd3, 0x03, + 0x9e, 0x31, 0xf1, 0x0a, 0x51, 0x63, 0x1d, 0x96, 0xe3, 0xf9, 0xb3, 0xc5, 0x5c, 0xd6, 0x63, 0xd2, + 0x6d, 0x20, 0x94, 0xd0, 0x49, 0x97, 0x9a, 0x75, 0xa4, 0x63, 0x08, 0x4e, 0x94, 0x60, 0xd3, 0x7f, + 0xf6, 0x86, 0xa9, 0x08, 0x7b, 0xd7, 0x06, 0xe3, 0x54, 0x98, 0x3e, 0xb4, 0x4e, 0x70, 0x62, 0x2b, + 0x1e, 0xf9, 0x32, 0x28, 0xc7, 0x94, 0xf0, 0x1d, 0x2c, 0xe1, 0xf1, 0xf8, 0xae, 0xb3, 0xeb, 0x63, + 0x57, 0xcb, 0xb1, 0xe3, 0x67, 0x20, 0xaa, 0x31, 0xfe, 0x22, 0x05, 0xf2, 0x5c, 0x3a, 0xcf, 0xe0, + 0xed, 0xff, 0x62, 0x86, 0xd9, 0xa1, 0x70, 0x29, 0xa5, 0x5d, 0xe4, 0x5d, 0x48, 0x01, 0x7d, 0x4e, + 0x23, 0xd9, 0xa6, 0xc0, 0xdf, 0x2c, 0xc4, 0x1a, 0xff, 0x93, 0x43, 0x54, 0x86, 0x5f, 0x2d, 0x9a, + 0x7f, 0x72, 0x88, 0x95, 0x23, 0xb0, 0x72, 0xb2, 0xa8, 0x1c, 0x3f, 0x9d, 0xb2, 0xba, 0x89, 0x49, + 0xd9, 0xa7, 0x27, 0x8b, 0xf9, 0x72, 0xdf, 0xce, 0x8a, 0x71, 0x3b, 0xdb, 0x4d, 0xd8, 0xaf, 0x18, + 0xaf, 0xbb, 0xa5, 0x82, 0x7d, 0x93, 0x77, 0x9f, 0x25, 0xb3, 0x1d, 0x46, 0xfd, 0x9f, 0xbd, 0x5a, + 0xb9, 0x9e, 0x52, 0xa3, 0x6b, 0x0f, 0x6a, 0x70, 0x31, 0xed, 0x2d, 0x5b, 0x5e, 0xbb, 0x41, 0xfe, + 0xda, 0x4a, 0x3d, 0xd4, 0x48, 0xf3, 0x48, 0xed, 0xe0, 0x45, 0x19, 0xa3, 0x49, 0x6a, 0xa3, 0xde, + 0x5d, 0x90, 0xed, 0xdd, 0x54, 0xfe, 0xb1, 0xb4, 0x9f, 0xe8, 0x03, 0xb1, 0xa1, 0xf3, 0x6e, 0x9a, + 0xf9, 0xb1, 0x74, 0x4c, 0xf1, 0xa5, 0x78, 0x37, 0x09, 0x7c, 0x15, 0xa3, 0x80, 0x90, 0x0a, 0xb9, + 0x06, 0x70, 0xe9, 0xdf, 0xe9, 0x78, 0x5f, 0x2f, 0xb5, 0x7d, 0xa7, 0x83, 0xe3, 0xa4, 0xf6, 0x3b, + 0x9c, 0xd2, 0x2f, 0x69, 0x17, 0x14, 0x0e, 0x51, 0xbd, 0xca, 0x7b, 0x57, 0x4e, 0x85, 0xb4, 0x36, + 0x67, 0x96, 0xb4, 0xe1, 0x3b, 0x1d, 0x20, 0x48, 0x51, 0xf6, 0xdb, 0x85, 0xbf, 0x6a, 0x69, 0x25, + 0x49, 0x63, 0x7b, 0x37, 0xa5, 0xe1, 0xd8, 0xb2, 0x33, 0xea, 0xd7, 0x30, 0xdf, 0x72, 0xe4, 0xb8, + 0xdb, 0xf0, 0x2b, 0x2f, 0x1d, 0x62, 0x31, 0x0f, 0xb0, 0xdf, 0x83, 0x77, 0x74, 0x80, 0x4a, 0x3a, + 0xc2, 0x7e, 0xdf, 0x64, 0x5f, 0x4f, 0xb0, 0xf0, 0xe3, 0xec, 0xf7, 0x1d, 0x16, 0x7e, 0x86, 0xfd, + 0x7e, 0x10, 0x54, 0xf5, 0x46, 0x03, 0x2e, 0xa4, 0xf6, 0x68, 0xc0, 0xaa, 0x2f, 0x02, 0x1e, 0x7d, + 0x69, 0x39, 0x38, 0x2e, 0x77, 0x54, 0x4a, 0x6f, 0xd0, 0xfb, 0xff, 0xad, 0x94, 0x4e, 0x8a, 0xf9, + 0xe4, 0x5a, 0xae, 0x84, 0x3c, 0x4c, 0x21, 0x06, 0x72, 0x85, 0x95, 0x90, 0x08, 0x85, 0xe8, 0xc9, + 0x15, 0x55, 0x42, 0x3a, 0x31, 0xa4, 0xf4, 0x63, 0xe9, 0x7c, 0xac, 0xcf, 0x74, 0x14, 0xc5, 0xce, + 0xbe, 0x15, 0x7f, 0x2c, 0xb5, 0x19, 0x3c, 0xd6, 0x26, 0x26, 0x9f, 0x37, 0xc8, 0xbc, 0x97, 0x46, + 0x82, 0xf9, 0x6a, 0x49, 0xa4, 0x91, 0xe0, 0xab, 0xcf, 0x0f, 0x0a, 0xf7, 0x7b, 0x16, 0x83, 0xda, + 0x9f, 0xaa, 0xab, 0x7c, 0x5f, 0x4f, 0x3a, 0x8d, 0x7b, 0xc0, 0x15, 0x46, 0xbe, 0xcb, 0x79, 0x97, + 0x7e, 0x6f, 0x3d, 0x8d, 0x1f, 0xa6, 0x72, 0xa1, 0x01, 0xf4, 0xf6, 0x29, 0xa0, 0x0e, 0x68, 0x75, + 0x0e, 0xd4, 0xca, 0xeb, 0x44, 0xab, 0x61, 0x0a, 0x68, 0x5a, 0x33, 0x87, 0xd6, 0xb7, 0x71, 0xed, + 0x6a, 0x99, 0x97, 0x8f, 0xec, 0x61, 0x7c, 0xa0, 0x42, 0xa8, 0xf2, 0xa0, 0xf6, 0x39, 0x17, 0xf3, + 0xc9, 0x73, 0x08, 0xab, 0x5c, 0x1b, 0xc4, 0xe9, 0x86, 0xfb, 0x3d, 0x1b, 0x91, 0x1e, 0x3a, 0xb6, + 0x3f, 0x7b, 0x70, 0x04, 0xe5, 0x6c, 0xda, 0xab, 0x9b, 0x69, 0xc8, 0xb9, 0x2e, 0xfd, 0x6e, 0xc6, + 0x1d, 0x94, 0xf2, 0x45, 0x0d, 0x9d, 0x8b, 0x25, 0xc9, 0xb6, 0x22, 0xbb, 0x66, 0x3d, 0x9d, 0xa1, + 0xa6, 0xf2, 0xa9, 0xf4, 0x40, 0x21, 0xfe, 0xf2, 0x48, 0x9f, 0x0e, 0xbf, 0xd7, 0x66, 0x01, 0xbd, + 0x0d, 0x21, 0xc1, 0xda, 0xdd, 0x72, 0x7f, 0x58, 0x1e, 0x1d, 0xef, 0x38, 0xcb, 0xe6, 0x1e, 0xf2, + 0xe8, 0xdb, 0x68, 0x68, 0x76, 0x03, 0x52, 0xdf, 0xa4, 0x1b, 0xc5, 0xcf, 0xf6, 0xdb, 0x1d, 0x2c, + 0x85, 0xda, 0xde, 0x01, 0x9c, 0xa0, 0x35, 0xfe, 0xe0, 0x1f, 0x29, 0xed, 0x96, 0xbd, 0x37, 0x2a, + 0xed, 0xf6, 0x19, 0x5f, 0x56, 0xda, 0x6d, 0xe7, 0xaf, 0x2f, 0x4d, 0x96, 0x32, 0x8a, 0x0c, 0x02, + 0xb6, 0x1f, 0xf6, 0x04, 0xbd, 0x71, 0x11, 0xa6, 0xe3, 0x49, 0x8a, 0x90, 0xcf, 0xb2, 0x26, 0xd7, + 0x28, 0xe3, 0xbd, 0xcb, 0x84, 0xe3, 0xfc, 0xd8, 0xf3, 0x96, 0x28, 0x79, 0xe6, 0xe2, 0xf8, 0x2f, + 0x9f, 0xb6, 0x7c, 0x16, 0xb4, 0x8c, 0x5f, 0xa6, 0xe1, 0x58, 0x9c, 0x44, 0x71, 0xdb, 0x39, 0x45, + 0xa3, 0xd9, 0xc3, 0x4e, 0x0d, 0x4a, 0xd8, 0x3e, 0x6a, 0x3a, 0xcb, 0x2c, 0x24, 0xa1, 0x94, 0x50, + 0x24, 0x9d, 0x22, 0xda, 0x60, 0x2d, 0x8c, 0x23, 0x12, 0x8e, 0x1a, 0x82, 0x91, 0x74, 0xb6, 0x87, + 0xa8, 0x74, 0x59, 0x1e, 0xa0, 0xf3, 0x9d, 0xb9, 0x5d, 0x98, 0x3b, 0xd3, 0xe1, 0xf4, 0xdb, 0x14, + 0x38, 0xb2, 0x0c, 0xea, 0x78, 0xce, 0xbb, 0x29, 0xd7, 0xb9, 0xb1, 0x56, 0x53, 0x5a, 0x2c, 0x2e, + 0x39, 0x15, 0x9a, 0xcb, 0x4d, 0x88, 0x05, 0xd3, 0xfd, 0xd6, 0x87, 0x60, 0xfa, 0x1e, 0x79, 0x55, + 0x3b, 0x8d, 0x51, 0x92, 0x8e, 0x51, 0x12, 0x70, 0x6a, 0x94, 0x4b, 0x9f, 0x26, 0x2c, 0xb1, 0xfa, + 0x26, 0x8f, 0xa9, 0x2f, 0xc0, 0x39, 0x23, 0xd6, 0xe2, 0xd4, 0x6a, 0xea, 0xed, 0x24, 0x05, 0x35, + 0x6a, 0x9d, 0xdb, 0x61, 0x3a, 0xa6, 0x78, 0x63, 0x28, 0x3a, 0x14, 0x15, 0xf8, 0xb1, 0x27, 0x4f, + 0xad, 0x94, 0xa2, 0x8f, 0xc9, 0xf8, 0x80, 0x3c, 0xc9, 0xeb, 0xed, 0xbf, 0xc6, 0x4e, 0x08, 0xb6, + 0x02, 0xf2, 0xdf, 0xd3, 0xaa, 0x64, 0x31, 0x1b, 0x25, 0x4e, 0x6c, 0x0d, 0x5b, 0x0a, 0xf1, 0x68, + 0xc1, 0x55, 0xd3, 0x25, 0x0c, 0x28, 0xba, 0x7a, 0xd4, 0x17, 0xdd, 0xf5, 0xac, 0x74, 0xb5, 0xfe, + 0x1d, 0xca, 0xd7, 0xb9, 0xdb, 0x0c, 0x77, 0x7b, 0x61, 0x7a, 0x50, 0x88, 0x6c, 0x87, 0x05, 0x6c, + 0xff, 0x65, 0x2d, 0xed, 0x99, 0x14, 0x35, 0x3e, 0x06, 0x05, 0x49, 0x5d, 0xb4, 0xfe, 0x79, 0x24, + 0xe2, 0xd9, 0x9d, 0x09, 0xfe, 0x73, 0x94, 0xab, 0x2f, 0x1c, 0x3b, 0xdb, 0x28, 0xd7, 0x21, 0x8e, + 0x2b, 0x53, 0x2b, 0xcc, 0x1c, 0x1e, 0x79, 0x52, 0x4c, 0xb7, 0x4d, 0x92, 0x4b, 0x8f, 0x5b, 0x31, + 0xd0, 0x29, 0x65, 0x9e, 0x51, 0x28, 0xfd, 0xe3, 0xf9, 0xd9, 0xd2, 0x09, 0xb9, 0x45, 0xa0, 0xc0, + 0x54, 0x6e, 0xbe, 0x5f, 0xb0, 0x42, 0x59, 0xc0, 0x95, 0x27, 0xf7, 0xbb, 0x62, 0xc4, 0x56, 0x81, + 0x68, 0x92, 0xe9, 0x89, 0x38, 0xeb, 0xb5, 0x83, 0x4a, 0x3e, 0x26, 0xd4, 0xc1, 0xca, 0x84, 0xaa, + 0xa0, 0x3e, 0xb2, 0x4d, 0x81, 0x36, 0xc3, 0x06, 0x72, 0x3c, 0xa4, 0x05, 0x03, 0x3b, 0xc5, 0xa3, + 0xf4, 0xa5, 0x6c, 0x18, 0x93, 0x7b, 0xde, 0x57, 0xe4, 0xde, 0x98, 0x90, 0x7b, 0x1e, 0xe6, 0xae, + 0xbd, 0x51, 0xee, 0xd7, 0xf6, 0x8f, 0xcf, 0x1d, 0xdb, 0xfd, 0x0a, 0x69, 0x9b, 0xe6, 0x26, 0xd4, + 0x40, 0x90, 0x9e, 0x51, 0x72, 0xd6, 0x9b, 0x72, 0x40, 0x1f, 0x4c, 0x1f, 0x2f, 0xbd, 0x1b, 0xe9, + 0x2c, 0xa3, 0x4a, 0x3e, 0xcf, 0xeb, 0x6e, 0x64, 0x67, 0x19, 0xe7, 0x51, 0x6b, 0xe5, 0x38, 0xa5, + 0x61, 0x6a, 0x47, 0xe2, 0x70, 0x2b, 0xab, 0x99, 0x34, 0x3d, 0x2c, 0xd3, 0x5f, 0x4c, 0x96, 0xc6, + 0xaf, 0x4f, 0x18, 0x31, 0xd4, 0xde, 0x00, 0x6a, 0x3a, 0xdb, 0x7b, 0x36, 0x2c, 0x6b, 0x38, 0xe8, + 0xd7, 0xb0, 0xd3, 0xbc, 0xa8, 0x53, 0xa0, 0x5b, 0x1b, 0x73, 0x1b, 0x61, 0x28, 0x1c, 0x10, 0x91, + 0x5a, 0xc6, 0x9e, 0xef, 0x4d, 0x53, 0x28, 0x85, 0x95, 0x3d, 0xfc, 0x4e, 0xfc, 0x84, 0x6f, 0xd1, + 0xc9, 0xd5, 0x8f, 0x1d, 0x34, 0xdd, 0x34, 0xa7, 0x93, 0xd6, 0xb7, 0xf4, 0x95, 0xa2, 0x01, 0xc7, + 0x38, 0x55, 0xfc, 0x94, 0xbd, 0x23, 0x90, 0x2d, 0x60, 0xd9, 0xc2, 0x22, 0x48, 0x3e, 0x7c, 0x70, + 0xda, 0xb3, 0xd2, 0xc8, 0x36, 0xf0, 0xad, 0xde, 0xb5, 0xda, 0xff, 0x36, 0x52, 0xc5, 0xb0, 0xd2, + 0x8e, 0x45, 0xd2, 0x31, 0x6a, 0x47, 0xb9, 0x0f, 0xd8, 0x0b, 0x4d, 0xe5, 0x46, 0xec, 0x03, 0x0c, + 0xe3, 0x4e, 0x84, 0x7d, 0x65, 0x02, 0xce, 0xdb, 0xc5, 0x79, 0x37, 0x38, 0xe1, 0xc9, 0x2b, 0x27, + 0x3c, 0x65, 0xc8, 0x5c, 0x0c, 0x2b, 0x25, 0xa8, 0x03, 0x54, 0xb2, 0x31, 0xb7, 0x12, 0x75, 0xeb, + 0xc4, 0xde, 0x12, 0xc3, 0x4a, 0xde, 0x14, 0x0c, 0x03, 0x27, 0xb6, 0x15, 0x47, 0x6d, 0x25, 0x66, + 0x2b, 0xb1, 0xa9, 0xad, 0x14, 0xaa, 0xbc, 0xa5, 0x42, 0xe1, 0x3e, 0x5a, 0xe2, 0x3e, 0x22, 0xbf, + 0xf1, 0x80, 0xa0, 0x45, 0x78, 0x75, 0x31, 0x4e, 0x10, 0xa7, 0x0c, 0x2b, 0x6a, 0xac, 0x4e, 0xe5, + 0xfc, 0x64, 0x17, 0x69, 0x61, 0xfe, 0x8e, 0x04, 0xfe, 0x1f, 0x14, 0x73, 0x59, 0x8f, 0x5d, 0x04, + 0x05, 0xe3, 0x7a, 0xec, 0x3c, 0x82, 0x2d, 0x58, 0x34, 0xb8, 0x03, 0x9c, 0xb1, 0x32, 0x11, 0x83, + 0x76, 0x06, 0x83, 0x39, 0x16, 0x3b, 0xde, 0x37, 0xac, 0x14, 0x9b, 0x4a, 0x62, 0xab, 0x69, 0x45, + 0xb1, 0x14, 0xb7, 0xb5, 0xcb, 0xdf, 0xe7, 0x5e, 0x37, 0x16, 0xc8, 0xf4, 0x5b, 0x50, 0x80, 0xbc, + 0x0a, 0x35, 0x1a, 0x10, 0x68, 0x4e, 0x83, 0x4e, 0x35, 0xc8, 0x54, 0x20, 0x6b, 0x05, 0xe8, 0x97, + 0xa9, 0x00, 0xb5, 0x02, 0xfb, 0x43, 0x0a, 0x15, 0x6c, 0x22, 0x2a, 0x78, 0xec, 0x20, 0xb5, 0xe8, + 0x6d, 0xed, 0xc8, 0x99, 0x55, 0xa8, 0xe7, 0x61, 0xfb, 0x61, 0xb9, 0xf6, 0x6d, 0x74, 0xa2, 0x58, + 0x1d, 0x6f, 0x5d, 0x0d, 0x6b, 0xcd, 0x77, 0x76, 0xad, 0x8e, 0x8d, 0x44, 0x58, 0x2a, 0x3b, 0xa5, + 0x2e, 0x30, 0xdc, 0x18, 0xad, 0x90, 0xe5, 0xd7, 0x6a, 0xad, 0x48, 0xcb, 0xb7, 0x04, 0x6a, 0xed, + 0x39, 0x71, 0x9c, 0xcc, 0xc5, 0xde, 0x93, 0x13, 0xeb, 0x3d, 0x57, 0x87, 0x95, 0xde, 0xe3, 0xc2, + 0xde, 0x93, 0x85, 0x2d, 0xa2, 0x8e, 0xf7, 0x9e, 0x7c, 0x13, 0xc2, 0xa7, 0xd0, 0x76, 0x0a, 0xd2, + 0x9f, 0xd2, 0x2e, 0x4a, 0x1b, 0xd2, 0xe9, 0x72, 0x59, 0x5a, 0xcf, 0x62, 0xa3, 0xf8, 0x68, 0xcd, + 0xd5, 0x63, 0x60, 0xc8, 0x60, 0x30, 0xf0, 0x08, 0x43, 0x43, 0x02, 0x0c, 0x0b, 0xc6, 0xc0, 0xd0, + 0x96, 0x00, 0x43, 0x06, 0xc2, 0xc0, 0xc7, 0x61, 0x28, 0xf0, 0x44, 0x03, 0x79, 0x5f, 0x09, 0x87, + 0x3e, 0x06, 0xc7, 0xc8, 0x26, 0x05, 0x0e, 0xc5, 0x02, 0x86, 0x0c, 0x87, 0x9d, 0xf8, 0xfa, 0x22, + 0x1a, 0xf1, 0xe8, 0x24, 0x7a, 0x20, 0xb3, 0x36, 0x19, 0xe5, 0x27, 0x1e, 0x47, 0x97, 0x42, 0x31, + 0x9b, 0x9d, 0x5f, 0xa2, 0x91, 0xe1, 0x0d, 0xd1, 0x62, 0x44, 0x9a, 0x89, 0xfb, 0x0f, 0x88, 0x59, + 0x71, 0xf7, 0xe3, 0x58, 0x07, 0xfc, 0xd2, 0x16, 0x9b, 0xbf, 0xdc, 0xab, 0xcc, 0x62, 0xe9, 0x64, + 0x9b, 0x05, 0x74, 0xc2, 0x15, 0xc7, 0xa2, 0x74, 0xd2, 0x96, 0x50, 0x56, 0xc9, 0xa6, 0x18, 0xb2, + 0x15, 0x82, 0xbf, 0x69, 0x09, 0xa1, 0x05, 0xb4, 0xa4, 0x87, 0x09, 0xa3, 0x67, 0x64, 0xf7, 0x8e, + 0xdf, 0x13, 0x24, 0x6b, 0x9d, 0x6c, 0x74, 0x6a, 0x91, 0xe7, 0x28, 0xf1, 0x9b, 0xc0, 0xea, 0x93, + 0x46, 0xf2, 0x64, 0xc0, 0x84, 0xb5, 0x41, 0x59, 0x24, 0xe0, 0x50, 0x6a, 0xb5, 0xc0, 0x6c, 0xc1, + 0x5c, 0xd3, 0xb1, 0x17, 0xab, 0xdb, 0x62, 0xda, 0xc3, 0x1e, 0x31, 0xfd, 0x06, 0xa1, 0xbb, 0x7b, + 0x7b, 0x40, 0x1b, 0xa7, 0x5b, 0xb3, 0x21, 0x3d, 0x56, 0x5f, 0x79, 0x1d, 0x03, 0x25, 0x02, 0xad, + 0x2d, 0x1d, 0x5b, 0x37, 0x3b, 0x36, 0x1e, 0x3f, 0x30, 0x20, 0x1e, 0x61, 0x35, 0xcf, 0x56, 0xac, + 0xe2, 0x60, 0x7d, 0x10, 0x9a, 0x74, 0x53, 0xa5, 0xa1, 0x4a, 0x81, 0xc6, 0xaa, 0x40, 0x33, 0x43, + 0x81, 0xa6, 0x48, 0x28, 0xa7, 0x5d, 0x38, 0x02, 0xe6, 0x95, 0xb0, 0xb6, 0x87, 0xbe, 0xc3, 0x9b, + 0x45, 0x41, 0xb8, 0xee, 0x8b, 0x01, 0x7d, 0x6f, 0x6e, 0x16, 0x35, 0x6f, 0x9e, 0x43, 0x8e, 0xbc, + 0x8a, 0x8d, 0xcf, 0x10, 0xb3, 0x53, 0x80, 0x38, 0x76, 0x61, 0x89, 0x6e, 0x13, 0x7f, 0x34, 0x3a, + 0x56, 0xae, 0x30, 0xd1, 0x29, 0x58, 0x2b, 0x8e, 0xd6, 0x45, 0x36, 0x1b, 0x54, 0xc4, 0xad, 0x39, + 0xb8, 0x98, 0x7c, 0x41, 0x67, 0x86, 0xf4, 0x3f, 0x39, 0xf4, 0xd3, 0xdf, 0x87, 0x60, 0xf3, 0x6b, + 0x41, 0x8e, 0x78, 0x89, 0x25, 0xe5, 0x89, 0xd5, 0xbb, 0xba, 0x17, 0x9a, 0x49, 0xbf, 0xcc, 0xc8, + 0xeb, 0x96, 0x76, 0xe7, 0x75, 0x83, 0x5f, 0xeb, 0x0b, 0xfb, 0xba, 0x71, 0xb4, 0x46, 0x39, 0xe2, + 0x83, 0x35, 0xed, 0xfa, 0xbe, 0xce, 0x7a, 0xed, 0x9b, 0x03, 0xbe, 0x6e, 0xa4, 0xe9, 0xa1, 0x5d, + 0xdd, 0xfe, 0x6c, 0xf3, 0xc4, 0x63, 0x61, 0x9a, 0x4f, 0x80, 0x70, 0xb3, 0xde, 0x04, 0x55, 0x9d, + 0x1f, 0xac, 0xe9, 0xd0, 0xee, 0xe9, 0xac, 0x57, 0x1b, 0x5c, 0x41, 0x30, 0x73, 0xef, 0xad, 0x95, + 0xcf, 0xfb, 0x9a, 0x26, 0xe2, 0x3b, 0xdc, 0xa2, 0x6e, 0x7b, 0xb8, 0x4c, 0x65, 0x50, 0x55, 0x45, + 0xa2, 0x5d, 0x9b, 0x5f, 0x11, 0x05, 0xab, 0x83, 0xcd, 0x8f, 0x62, 0x78, 0x51, 0x07, 0xd0, 0xfa, + 0x17, 0x70, 0xdc, 0xa6, 0x75, 0xd1, 0xae, 0x0d, 0xeb, 0x66, 0x7d, 0x76, 0x56, 0x6a, 0xe3, 0xbe, + 0x16, 0x39, 0x00, 0xb3, 0xcf, 0xa3, 0x5e, 0xe4, 0x05, 0xfb, 0xec, 0x4f, 0x8f, 0x81, 0x59, 0x65, + 0x4d, 0x7a, 0xf2, 0x51, 0x51, 0xf7, 0xde, 0xaa, 0xe8, 0xa4, 0x5c, 0xcd, 0x3b, 0xeb, 0x6e, 0x8f, + 0xb4, 0xc3, 0xfd, 0x87, 0xa4, 0x4f, 0x9d, 0xae, 0xaa, 0xae, 0xba, 0x73, 0xff, 0xf9, 0x0a, 0x52, + 0x82, 0xfd, 0x8f, 0xaf, 0x60, 0x0d, 0x32, 0xa8, 0x54, 0xbf, 0x9e, 0x9d, 0x17, 0xb2, 0xfb, 0xba, + 0x59, 0x7f, 0x01, 0xc9, 0xc4, 0xfc, 0x02, 0xfb, 0x06, 0x52, 0xe6, 0xae, 0xb5, 0x75, 0xe9, 0x66, + 0x27, 0xb6, 0x53, 0x91, 0x13, 0x25, 0xb9, 0x8c, 0xb7, 0x7d, 0xe1, 0x5d, 0x61, 0xff, 0x15, 0x91, + 0xe8, 0xab, 0x28, 0x7b, 0x0f, 0xd0, 0x5a, 0x96, 0x43, 0x58, 0x4b, 0xbb, 0x0c, 0x62, 0xe7, 0xb7, + 0x69, 0xc6, 0x80, 0xe8, 0x56, 0x28, 0x2a, 0x2f, 0xb9, 0xcf, 0x1b, 0xa3, 0x6f, 0x85, 0x7a, 0x77, + 0xc8, 0xf3, 0x03, 0x44, 0xdb, 0xd8, 0x1a, 0x3a, 0xcf, 0x26, 0x79, 0x16, 0x7f, 0x6f, 0x2f, 0xa3, + 0xe2, 0xf8, 0xcc, 0x90, 0x31, 0x2c, 0xa4, 0xc9, 0x74, 0xae, 0x8c, 0x2c, 0x79, 0x28, 0x2d, 0x66, + 0xe2, 0x28, 0x2b, 0x04, 0x41, 0x3f, 0x15, 0x6e, 0x0d, 0x41, 0xda, 0x54, 0xf8, 0x9a, 0x50, 0x4c, + 0x67, 0x0c, 0x05, 0x07, 0xfd, 0x26, 0xee, 0xc5, 0x60, 0x92, 0x0b, 0x7f, 0x03, 0xdb, 0x1a, 0x6b, + 0xdb, 0xbc, 0x47, 0x49, 0x72, 0x4c, 0x89, 0x59, 0xbb, 0xb8, 0xfa, 0xa4, 0x8d, 0xe6, 0xa4, 0x7a, + 0xdd, 0x0f, 0xf1, 0x06, 0xa4, 0xd5, 0x06, 0xab, 0x83, 0x24, 0x53, 0x83, 0x47, 0xe0, 0xe9, 0xec, + 0x2e, 0x69, 0x6e, 0x58, 0xdb, 0x6a, 0x92, 0xcc, 0xc6, 0xe6, 0x67, 0xa5, 0xfc, 0x8a, 0x12, 0xf2, + 0xa9, 0x66, 0x76, 0x93, 0x34, 0x32, 0x2c, 0xee, 0x06, 0xb2, 0x4c, 0x81, 0xa3, 0x16, 0x9d, 0xa6, + 0x3a, 0xbd, 0x98, 0xce, 0xea, 0x0b, 0xf2, 0x39, 0x1e, 0xc8, 0x16, 0xd6, 0xc9, 0xa7, 0x5c, 0x9c, + 0x8e, 0x8a, 0x8f, 0x2b, 0x74, 0xf2, 0xec, 0x15, 0xd6, 0xf1, 0xa2, 0xfb, 0x83, 0x19, 0x79, 0x26, + 0xd4, 0x0d, 0xa9, 0x7c, 0x1c, 0x3f, 0x76, 0xe1, 0xd3, 0x3b, 0x5a, 0x27, 0x1a, 0xd7, 0x51, 0x5a, + 0x20, 0x28, 0x12, 0x56, 0xc9, 0xcd, 0x34, 0x66, 0x0d, 0x21, 0x0c, 0x28, 0x79, 0xb0, 0xf2, 0x98, + 0xdc, 0x9d, 0x57, 0xab, 0x68, 0xea, 0x00, 0xdb, 0xa8, 0x2c, 0xc4, 0xc6, 0xa7, 0x06, 0xac, 0x41, + 0x55, 0x24, 0xa7, 0x58, 0xba, 0xec, 0xc4, 0x11, 0xdd, 0xca, 0xea, 0x6c, 0x99, 0x0a, 0xe9, 0x9a, + 0x15, 0x00, 0xc8, 0x82, 0x34, 0xb6, 0xa4, 0xd2, 0xe1, 0x91, 0x46, 0xef, 0x26, 0x1c, 0x89, 0xdb, + 0x25, 0xc9, 0x56, 0x54, 0xec, 0x9b, 0xe9, 0x64, 0xd6, 0x40, 0xf2, 0xd9, 0xfa, 0x4d, 0xd8, 0x3f, + 0x9f, 0xe2, 0xc8, 0xdf, 0x59, 0xdd, 0x3e, 0xb5, 0xa9, 0x66, 0x0e, 0x7f, 0xd1, 0xc1, 0x24, 0xbc, + 0xcc, 0x50, 0x32, 0xf6, 0x55, 0x43, 0x2c, 0x06, 0xcd, 0xd0, 0x91, 0x1c, 0x21, 0x7f, 0xeb, 0x45, + 0xb9, 0x6f, 0xee, 0x3e, 0x77, 0xd4, 0xe7, 0x24, 0x8d, 0x98, 0xc5, 0xe9, 0x1f, 0x51, 0xb0, 0xf6, + 0x05, 0x3b, 0x67, 0xc6, 0xac, 0xc1, 0xb8, 0xae, 0xb3, 0x06, 0xf3, 0x71, 0x45, 0x87, 0x34, 0xa8, + 0x60, 0xe7, 0x3c, 0x62, 0xa7, 0x80, 0x66, 0x26, 0x49, 0xce, 0x32, 0x36, 0xa1, 0x9c, 0x85, 0xb0, + 0xa3, 0x9c, 0x3a, 0xec, 0x9c, 0x2a, 0x49, 0xc4, 0x03, 0x50, 0x33, 0xc0, 0x7e, 0x4b, 0x1c, 0x21, + 0x66, 0x3b, 0x83, 0x64, 0x29, 0x7c, 0x24, 0x79, 0x26, 0xec, 0x8b, 0xab, 0x6c, 0xad, 0x2a, 0x13, + 0x7b, 0xf9, 0xdc, 0x56, 0x1e, 0xf5, 0x32, 0x7e, 0x19, 0x78, 0x36, 0x35, 0xa9, 0x71, 0x5c, 0xe1, + 0x30, 0xa5, 0x05, 0x71, 0x9e, 0x03, 0xbd, 0xf8, 0xec, 0x92, 0x71, 0x4e, 0xf6, 0x34, 0x30, 0xf5, + 0x65, 0x7c, 0x46, 0x94, 0x1c, 0xfa, 0xad, 0xb1, 0x1c, 0xd2, 0xb5, 0x3c, 0xed, 0x6c, 0xa1, 0xf9, + 0x64, 0x91, 0xaf, 0x1c, 0xb8, 0xc3, 0x21, 0x9d, 0x47, 0xf7, 0x84, 0x2a, 0x40, 0xd7, 0xc7, 0xa8, + 0x91, 0x7f, 0x72, 0x07, 0xa6, 0x92, 0x2e, 0xe0, 0xaf, 0x24, 0x5d, 0x44, 0x2d, 0x59, 0x2b, 0xfd, + 0x19, 0x25, 0xa6, 0xcb, 0xb4, 0xf7, 0xb7, 0x41, 0xc3, 0x56, 0x21, 0xa4, 0x13, 0x91, 0x3b, 0x8a, + 0xa5, 0x4f, 0x59, 0x8a, 0xbf, 0x90, 0x34, 0x75, 0xdd, 0xb7, 0x4b, 0xec, 0xdb, 0x67, 0x46, 0x9a, + 0x2f, 0xea, 0xa5, 0x93, 0x43, 0xd8, 0x4a, 0xc9, 0x84, 0xf3, 0xab, 0xaf, 0x7a, 0x37, 0xc7, 0x5a, + 0xa9, 0x7c, 0x76, 0xf1, 0x4c, 0x9a, 0xf9, 0xb8, 0xba, 0x4e, 0x69, 0xa5, 0x76, 0x8a, 0x23, 0x7f, + 0x67, 0xad, 0x74, 0xde, 0xa6, 0x2e, 0x1f, 0xfe, 0xab, 0x6c, 0x81, 0x48, 0x6e, 0xa5, 0xec, 0x58, + 0x0c, 0x6c, 0xa5, 0xcb, 0xd8, 0x1a, 0xb2, 0x34, 0x40, 0xad, 0x74, 0x39, 0xe0, 0x76, 0x3a, 0x45, + 0x21, 0xe1, 0xfb, 0xb0, 0x2d, 0x29, 0xe1, 0xfb, 0xb0, 0xdc, 0x8a, 0xec, 0x7b, 0xff, 0x55, 0x07, + 0x93, 0x24, 0xfa, 0xff, 0xba, 0x25, 0xd6, 0x82, 0xd4, 0x62, 0xd9, 0x1d, 0xd2, 0x21, 0x6a, 0x31, + 0xcf, 0x0a, 0x7f, 0x5f, 0x2b, 0x72, 0x3e, 0xe4, 0xbb, 0x24, 0xbf, 0xd0, 0x7a, 0x45, 0x3e, 0x8e, + 0x6f, 0x05, 0xd9, 0x36, 0xf8, 0xe6, 0xb2, 0x9b, 0xdf, 0x8e, 0x0a, 0x49, 0xa3, 0xfb, 0x6f, 0x6c, + 0x2a, 0xd9, 0x76, 0x49, 0x02, 0xde, 0xdb, 0x41, 0x92, 0x2d, 0xe8, 0x14, 0x64, 0x07, 0x2f, 0x1e, + 0xa4, 0xb9, 0x0f, 0x5d, 0x23, 0xbf, 0x60, 0xc5, 0x99, 0x47, 0x91, 0x97, 0x98, 0x37, 0xbf, 0x26, + 0xf0, 0x65, 0xd8, 0xc7, 0x37, 0x86, 0x73, 0xf9, 0x37, 0xc2, 0xd3, 0x4b, 0x45, 0xeb, 0x9e, 0x2c, + 0xbf, 0x26, 0x0b, 0xca, 0x92, 0x5e, 0xd7, 0x9f, 0x74, 0xf8, 0xf5, 0xc4, 0xc7, 0xa4, 0xb0, 0xa8, + 0x15, 0x5c, 0xc6, 0x62, 0x7b, 0x11, 0x84, 0xcd, 0x9e, 0x9f, 0xbc, 0xbc, 0x6b, 0x6d, 0xf3, 0xdb, + 0x47, 0x1e, 0x39, 0xb6, 0xc6, 0xb7, 0x6a, 0xf7, 0xaa, 0xe6, 0x33, 0x38, 0xb2, 0x5f, 0x8d, 0xad, + 0xea, 0x25, 0xae, 0xa9, 0x8d, 0xda, 0x97, 0x18, 0xa5, 0x45, 0x85, 0x03, 0xb1, 0xd3, 0xa2, 0x46, + 0x92, 0xf3, 0x49, 0xc6, 0x6f, 0x62, 0xb4, 0xc7, 0xce, 0x38, 0xe2, 0x73, 0x1e, 0x1f, 0x76, 0xf2, + 0x0c, 0x9f, 0x2b, 0xf2, 0xd8, 0x47, 0x96, 0x48, 0xca, 0x87, 0xaf, 0x18, 0xbc, 0x5b, 0x8c, 0xa0, + 0xec, 0xf9, 0xe0, 0x98, 0x75, 0x12, 0xc2, 0x56, 0x76, 0xee, 0xf6, 0x58, 0x1c, 0xef, 0x16, 0x33, + 0x3c, 0x1e, 0x95, 0x63, 0x60, 0x7b, 0xf2, 0x4a, 0x0c, 0xc1, 0xd3, 0xd5, 0x02, 0xaa, 0x1d, 0xe5, + 0x1f, 0x61, 0x9b, 0xb3, 0x9e, 0x4a, 0x32, 0xce, 0xf0, 0x1b, 0xf2, 0x0e, 0x5d, 0xd5, 0x86, 0xeb, + 0xd6, 0x96, 0x46, 0xed, 0x79, 0xcc, 0xf5, 0xf6, 0x7f, 0x7e, 0x50, 0xd1, 0x2c, 0xae, 0x62, 0xdc, + 0x3a, 0x83, 0xca, 0x14, 0x9b, 0x91, 0x3c, 0xda, 0x87, 0x1c, 0x41, 0xe5, 0x9b, 0x4c, 0x92, 0x73, + 0xc3, 0x64, 0x17, 0x34, 0xe7, 0x74, 0x80, 0xc4, 0x57, 0x4b, 0x7b, 0xf1, 0x7d, 0x3a, 0x25, 0x4d, + 0xda, 0x97, 0x33, 0x4b, 0x7a, 0x35, 0xa1, 0xbc, 0x05, 0x56, 0x87, 0x72, 0xbe, 0xb0, 0xb7, 0x72, + 0x3d, 0xe6, 0x95, 0x5d, 0xf2, 0x31, 0xf2, 0x1f, 0x87, 0xb0, 0x2a, 0x21, 0x4e, 0x21, 0xf1, 0x4b, + 0xa9, 0x37, 0xa8, 0xc6, 0x6f, 0xbb, 0xe9, 0xfc, 0x63, 0xc2, 0xb7, 0x49, 0xca, 0x37, 0x3a, 0xff, + 0x78, 0x3c, 0xc6, 0x91, 0xf8, 0xcc, 0xd1, 0x18, 0x7f, 0xbd, 0x2a, 0xc7, 0x20, 0xfe, 0xff, 0x48, + 0x5f, 0x90, 0x6a, 0xd3, 0x21, 0xd7, 0x91, 0xdb, 0x2b, 0x02, 0xf7, 0x49, 0x42, 0xcc, 0x23, 0x14, + 0x8f, 0xc1, 0xe3, 0x43, 0x08, 0xcc, 0xa0, 0xad, 0x5c, 0xaf, 0x0b, 0x97, 0x15, 0x97, 0x94, 0xfa, + 0xf3, 0x42, 0x49, 0x3b, 0xb7, 0x81, 0xbe, 0xce, 0x92, 0x10, 0xfb, 0x69, 0x25, 0xdf, 0x8f, 0xa5, + 0x77, 0x82, 0x1a, 0xe2, 0xe3, 0x95, 0xeb, 0x43, 0x1a, 0x66, 0x45, 0xa8, 0x1d, 0xf3, 0xad, 0x61, + 0xab, 0xd1, 0xbb, 0x75, 0x61, 0xea, 0x3d, 0xb4, 0x0a, 0x18, 0x9c, 0xd8, 0x4b, 0x39, 0x00, 0x37, + 0x2f, 0x21, 0x0f, 0xd1, 0x4a, 0x33, 0xc8, 0xa5, 0x01, 0x0d, 0xe6, 0x32, 0x24, 0x52, 0xfd, 0x0e, + 0xb2, 0xda, 0x24, 0x53, 0x7e, 0xac, 0x27, 0x01, 0x97, 0x8a, 0xdf, 0xa7, 0xb3, 0xf3, 0x93, 0x57, + 0xf0, 0xb9, 0x88, 0xcf, 0xd0, 0xfd, 0xeb, 0xef, 0x6c, 0x92, 0xde, 0x85, 0x09, 0xf8, 0xfb, 0x0e, + 0xa8, 0xb0, 0x0f, 0xf5, 0xb2, 0x55, 0xd2, 0xd3, 0x5b, 0xcf, 0xb0, 0x76, 0x75, 0x60, 0x79, 0x6f, + 0x88, 0xc4, 0xb3, 0x29, 0xd5, 0x25, 0xea, 0xa1, 0xf8, 0x1c, 0xfc, 0x3b, 0x52, 0x3d, 0x45, 0x67, + 0x90, 0x75, 0x61, 0xe2, 0xcb, 0xfe, 0xf9, 0x1e, 0x27, 0x9d, 0xdb, 0xc5, 0x94, 0x67, 0x71, 0x94, + 0xd0, 0xdf, 0x30, 0x75, 0xff, 0x95, 0x03, 0x6c, 0xad, 0xd2, 0xe1, 0x6f, 0x10, 0x1b, 0x58, 0xdc, + 0x53, 0x5f, 0x11, 0xf7, 0x49, 0x25, 0xae, 0x43, 0xac, 0xd6, 0x85, 0x83, 0xcd, 0x01, 0xc1, 0x5f, + 0x11, 0xe4, 0x7a, 0x3b, 0x9b, 0xb2, 0x05, 0x15, 0xad, 0x8c, 0xd2, 0xe8, 0xb1, 0xa9, 0x07, 0xa9, + 0x26, 0xa2, 0x6d, 0x10, 0x54, 0x1f, 0x74, 0x4f, 0x46, 0x7c, 0x69, 0xdb, 0x7c, 0x9d, 0xa2, 0xe9, + 0x3b, 0x28, 0x0f, 0x49, 0xbb, 0x44, 0x7e, 0x19, 0xd7, 0xce, 0x89, 0x99, 0xcb, 0x39, 0xec, 0xf5, + 0x69, 0x6d, 0xe0, 0x9c, 0xe9, 0x74, 0xe2, 0x38, 0xb3, 0xcb, 0x59, 0xea, 0x74, 0x59, 0x93, 0x2b, + 0x57, 0x8e, 0xe2, 0xf5, 0x8a, 0x36, 0x81, 0x2a, 0x8e, 0xca, 0xad, 0x3d, 0x92, 0x29, 0xea, 0x12, + 0x53, 0x8c, 0xc6, 0xfe, 0xfc, 0xed, 0x78, 0xbb, 0x1f, 0xc4, 0xb8, 0xae, 0xc0, 0x24, 0x1a, 0xfd, + 0xa5, 0x77, 0x7c, 0xe1, 0xc9, 0x0e, 0xe8, 0x65, 0xee, 0x77, 0x99, 0x7b, 0xd7, 0x6d, 0x4d, 0xd2, + 0x7b, 0xf0, 0x1c, 0xe2, 0x45, 0x83, 0xf4, 0x7d, 0x0a, 0x0e, 0x78, 0x66, 0x32, 0xd7, 0x59, 0x38, + 0x8f, 0x6d, 0x24, 0xa2, 0xeb, 0x3c, 0xec, 0xc7, 0x5a, 0x5c, 0x9a, 0x5c, 0x0c, 0x03, 0x2c, 0xdd, + 0xeb, 0x2c, 0xdd, 0x9e, 0x56, 0x48, 0x9f, 0x2a, 0x1d, 0x9c, 0xec, 0x84, 0x3e, 0x0f, 0x96, 0x1e, + 0x98, 0x8e, 0x31, 0x2f, 0xc2, 0x59, 0x16, 0x3a, 0x84, 0xa1, 0xc7, 0xb1, 0xfc, 0x2b, 0xf2, 0xfe, + 0x8c, 0xc9, 0x6e, 0x38, 0xc5, 0x52, 0xbe, 0xe5, 0x0b, 0x8b, 0x6a, 0xcc, 0xe7, 0x14, 0xa6, 0x3f, + 0x81, 0x23, 0x89, 0xbc, 0x6f, 0x26, 0x7e, 0x56, 0x14, 0xb9, 0xc5, 0x29, 0x92, 0xb7, 0x89, 0x5b, + 0x18, 0x15, 0x6e, 0x61, 0x66, 0x5c, 0xdc, 0x94, 0xa2, 0xf0, 0x71, 0x1d, 0x71, 0xd0, 0xcb, 0x23, + 0x4a, 0x7f, 0xa6, 0x73, 0x30, 0xa8, 0xc1, 0xcb, 0xfb, 0xf0, 0xe5, 0x30, 0xfe, 0x2a, 0xca, 0xdb, + 0xcd, 0x01, 0xa3, 0x81, 0x47, 0x89, 0xbb, 0x61, 0x54, 0xe2, 0xf6, 0x84, 0x9b, 0x80, 0x3f, 0x85, + 0x72, 0x77, 0x73, 0x6c, 0x65, 0x81, 0x3f, 0xe6, 0xe9, 0x81, 0xfd, 0x7e, 0x2d, 0xfe, 0x1e, 0xc0, + 0x74, 0xfb, 0x95, 0x3e, 0xfd, 0x09, 0xf5, 0xe9, 0xe4, 0xb0, 0xf4, 0x29, 0xf6, 0xe9, 0xcb, 0x4a, + 0x79, 0xeb, 0xe4, 0xfe, 0xac, 0x9c, 0x47, 0x05, 0xfe, 0x49, 0x73, 0x54, 0xc1, 0x34, 0x7d, 0x0d, + 0x62, 0xbb, 0x54, 0xb0, 0x7e, 0x7c, 0x26, 0xa1, 0x1f, 0xd3, 0x97, 0xb9, 0xec, 0x0b, 0x37, 0xa6, + 0x17, 0x8b, 0x46, 0xf9, 0x3b, 0x72, 0x2c, 0x73, 0x11, 0x9c, 0xbe, 0x29, 0x4d, 0x70, 0x79, 0x37, + 0xc4, 0x46, 0xa5, 0xb2, 0xfb, 0x7c, 0xb3, 0x6d, 0xba, 0xd9, 0xc3, 0x9f, 0x5d, 0x61, 0x16, 0xbe, + 0x32, 0x59, 0x8a, 0x5c, 0x8a, 0x1b, 0x8b, 0x85, 0x7a, 0x5b, 0x11, 0xf5, 0x5e, 0x6c, 0xe3, 0x78, + 0x0c, 0xce, 0x8c, 0x63, 0xe8, 0x8b, 0x6c, 0xd4, 0x1b, 0x4e, 0xb3, 0xc0, 0x6f, 0xaa, 0x38, 0x1c, + 0x05, 0xbf, 0xf0, 0x34, 0x40, 0xd7, 0xdc, 0x01, 0x17, 0x85, 0x5e, 0xbd, 0xa3, 0x01, 0x9e, 0x93, + 0xae, 0xa1, 0x94, 0xb5, 0x17, 0x6b, 0x7b, 0x96, 0xad, 0x11, 0x9c, 0x0a, 0xe8, 0x50, 0xe6, 0x3f, + 0x61, 0x77, 0xbc, 0xf0, 0x72, 0x1d, 0x6f, 0xe7, 0xf2, 0xe0, 0x88, 0xe3, 0x88, 0xa3, 0x80, 0xab, + 0x72, 0xd9, 0xd5, 0x8d, 0x6a, 0x8d, 0x03, 0xc7, 0x52, 0x07, 0xa6, 0x1c, 0xb9, 0xc3, 0x25, 0x73, + 0x57, 0x84, 0xa9, 0xdb, 0xbb, 0x55, 0x86, 0x80, 0xcd, 0xb5, 0x20, 0x8d, 0x7d, 0xda, 0xc7, 0xc6, + 0x46, 0xc6, 0x1f, 0x60, 0x13, 0xe3, 0xc1, 0x18, 0x23, 0xfe, 0x45, 0x4f, 0xf8, 0x0d, 0x14, 0xb0, + 0x36, 0xea, 0x23, 0x6d, 0x73, 0xf6, 0xf0, 0xe7, 0x41, 0x06, 0x35, 0xe9, 0x8e, 0x02, 0x83, 0x64, + 0x12, 0xfb, 0x7a, 0x9c, 0xe9, 0xa2, 0xca, 0x97, 0xb9, 0x72, 0xfb, 0x68, 0x70, 0x44, 0xe5, 0x5b, + 0x39, 0xd6, 0x3a, 0x15, 0x2c, 0xd6, 0x01, 0x39, 0x8f, 0xcb, 0xa9, 0xf1, 0x3c, 0xf2, 0xf1, 0xeb, + 0x79, 0xd6, 0x9f, 0x1b, 0xe0, 0x7c, 0x62, 0x1e, 0xfe, 0x4c, 0x31, 0x73, 0x0c, 0x3c, 0x66, 0x65, + 0xcf, 0xa3, 0x9c, 0x63, 0x5b, 0x60, 0x9e, 0x59, 0x6e, 0x05, 0x35, 0xc9, 0x05, 0x97, 0x9e, 0x1b, + 0x95, 0x0b, 0xa8, 0x07, 0x53, 0x8a, 0x4b, 0x6d, 0x0a, 0x76, 0xed, 0xb2, 0x3c, 0x86, 0xf9, 0x58, + 0xa0, 0x0d, 0xe5, 0xa5, 0x86, 0xc1, 0x1e, 0x08, 0xc9, 0xb9, 0xfe, 0xb9, 0x2f, 0x2e, 0xab, 0x65, + 0xe3, 0x38, 0x4c, 0x21, 0x03, 0xb4, 0x6a, 0x0b, 0xcb, 0xc7, 0xe5, 0xef, 0xbd, 0x41, 0xfe, 0x19, + 0x37, 0xc8, 0x7f, 0x39, 0xb6, 0x48, 0xc3, 0x91, 0x1e, 0x58, 0x66, 0xe3, 0x58, 0x6e, 0x35, 0xd7, + 0xe5, 0x2f, 0x32, 0xab, 0x93, 0x0a, 0x7d, 0xfd, 0xe5, 0xb2, 0x02, 0x07, 0xb3, 0x11, 0x95, 0xb0, + 0xef, 0x8d, 0xe6, 0x08, 0x0f, 0xb0, 0x1e, 0x45, 0xf6, 0x0e, 0x69, 0x95, 0xcf, 0x6a, 0x6a, 0x91, + 0xf7, 0x3d, 0x58, 0x50, 0x96, 0x28, 0x68, 0x81, 0x19, 0x74, 0x86, 0x7c, 0xef, 0xcb, 0x9e, 0x16, + 0x70, 0x06, 0x32, 0x0c, 0xbe, 0xe2, 0x0f, 0x61, 0x22, 0xd3, 0xa3, 0x92, 0x51, 0x7e, 0x27, 0x6d, + 0x7c, 0xc0, 0x7f, 0x25, 0xc8, 0x7d, 0xb0, 0x2d, 0x17, 0xaa, 0x1e, 0x69, 0x85, 0x76, 0xd2, 0xdf, + 0xa0, 0xa0, 0xa2, 0xfc, 0x3c, 0x4c, 0xb3, 0xaa, 0x5c, 0x2b, 0x69, 0x3f, 0xab, 0x27, 0x1a, 0x50, + 0x57, 0x45, 0xc5, 0x3a, 0x8f, 0xde, 0x3f, 0x5d, 0xf0, 0x29, 0x73, 0x40, 0x2b, 0x75, 0x7a, 0x28, + 0xf7, 0x2f, 0xd7, 0x99, 0x61, 0x36, 0x70, 0xfe, 0x36, 0xb6, 0xef, 0x8c, 0xff, 0xf7, 0x01, 0x7f, + 0x23, 0x86, 0x7c, 0x17, 0x54, 0xfe, 0xba, 0x9a, 0x6e, 0x8b, 0x47, 0x98, 0x0a, 0x6a, 0x0b, 0xe6, + 0x9f, 0x96, 0x19, 0x98, 0xaf, 0xe3, 0xa4, 0x7f, 0xae, 0xd5, 0x68, 0x38, 0xe9, 0x84, 0x98, 0x4d, + 0x3b, 0x04, 0x98, 0xfb, 0x79, 0x51, 0xcf, 0x33, 0x69, 0xce, 0xc8, 0x69, 0xa2, 0x28, 0x07, 0xda, + 0x9c, 0xdc, 0x85, 0xb5, 0x72, 0xc8, 0xb1, 0xc8, 0x82, 0xb0, 0xa8, 0x1b, 0x5c, 0x69, 0x50, 0x9f, + 0xf8, 0x97, 0x7d, 0x13, 0x32, 0x5e, 0x46, 0xa9, 0x24, 0xdc, 0xac, 0xee, 0x5f, 0xe5, 0x3f, 0xdf, + 0xbf, 0xaa, 0x19, 0xa4, 0xc6, 0x20, 0x88, 0xa9, 0x6c, 0x6d, 0x66, 0x9f, 0x28, 0xaf, 0xd1, 0xfc, + 0xb1, 0xe2, 0xdd, 0xa2, 0xab, 0x31, 0x3d, 0x16, 0x71, 0x50, 0x60, 0x45, 0x5d, 0x76, 0xba, 0x0d, + 0x66, 0x04, 0x34, 0xe5, 0x1f, 0xc1, 0x71, 0x51, 0x8d, 0xbf, 0x7d, 0xa4, 0x87, 0x15, 0xaa, 0xdc, + 0xbf, 0xcb, 0xeb, 0x80, 0x69, 0x6f, 0xfe, 0x4e, 0x14, 0x74, 0x69, 0x58, 0x8b, 0x2c, 0x9d, 0x85, + 0xd5, 0x22, 0x0d, 0x6b, 0x61, 0x01, 0xfe, 0xc5, 0x01, 0xbf, 0x16, 0x43, 0xb0, 0x16, 0x01, 0xbd, + 0xcd, 0x8d, 0x72, 0x59, 0x0d, 0x5b, 0x09, 0x1b, 0xc2, 0x51, 0xb1, 0x08, 0xa9, 0x4f, 0x1d, 0x5b, + 0x19, 0xa7, 0xd5, 0x09, 0x1c, 0x0f, 0xcd, 0x2c, 0x55, 0x92, 0xc5, 0x31, 0xeb, 0x63, 0xe9, 0xdd, + 0x76, 0xc8, 0x44, 0xfd, 0x26, 0xf4, 0xee, 0xb1, 0x88, 0xa7, 0x24, 0xa0, 0xff, 0xed, 0x47, 0xd0, + 0x8b, 0x7d, 0x56, 0xd3, 0xb7, 0x1d, 0x76, 0x61, 0xbf, 0x19, 0xb9, 0x93, 0x4e, 0xd7, 0x4d, 0xbb, + 0x93, 0x6e, 0x92, 0xc8, 0xbb, 0x93, 0xce, 0x3c, 0x7d, 0x93, 0x56, 0xcb, 0x62, 0xfa, 0x4b, 0x2e, + 0xdc, 0x60, 0x37, 0xcc, 0x5c, 0x83, 0xc3, 0x38, 0x93, 0xd9, 0x89, 0xa4, 0xdd, 0x30, 0x34, 0x33, + 0xdd, 0xe7, 0x29, 0xf1, 0xa7, 0x7f, 0x8b, 0xac, 0x4b, 0x75, 0xdd, 0x3d, 0x1b, 0x7a, 0xef, 0x76, + 0xc1, 0xae, 0xaf, 0x75, 0xc0, 0x2d, 0xf0, 0x1c, 0xc2, 0x61, 0x83, 0x69, 0xa1, 0x77, 0x07, 0x23, + 0x1f, 0x77, 0xa3, 0xe6, 0x47, 0x56, 0x77, 0x1c, 0xb3, 0x2e, 0x66, 0xbe, 0x5b, 0xfc, 0xd9, 0x31, + 0x30, 0x69, 0x8f, 0x3e, 0x7a, 0x9d, 0xcd, 0xc7, 0x58, 0xfe, 0x25, 0xf1, 0xfc, 0xb5, 0x81, 0x1a, + 0x9d, 0x0d, 0x9c, 0xf0, 0x4d, 0x9a, 0xb1, 0xb0, 0x3b, 0xcc, 0xdd, 0x53, 0x66, 0x83, 0x5a, 0x3e, + 0xff, 0xc5, 0x66, 0x66, 0xb5, 0x6c, 0x07, 0xaf, 0xc3, 0xdb, 0x7f, 0x8d, 0xc9, 0xbb, 0xb4, 0xf3, + 0x5a, 0xe4, 0x7d, 0x61, 0x23, 0xf7, 0x5e, 0xcf, 0x6f, 0xf7, 0x35, 0x5f, 0xa6, 0x13, 0x69, 0x64, + 0x4d, 0xd3, 0x66, 0x45, 0x4d, 0x41, 0x8e, 0xd7, 0x28, 0xc7, 0x93, 0x2d, 0x9a, 0xca, 0x9a, 0x2f, + 0xea, 0xa9, 0x44, 0xa7, 0x34, 0x5f, 0x67, 0x66, 0x7c, 0x59, 0x34, 0x37, 0xc0, 0x0c, 0xb6, 0x3f, + 0x73, 0x03, 0xb3, 0x87, 0x90, 0x26, 0x7a, 0xd9, 0xda, 0xe9, 0x27, 0xb6, 0x14, 0x3a, 0x6b, 0x40, + 0x33, 0xe3, 0x46, 0x9d, 0x69, 0xfe, 0x6e, 0xfa, 0x76, 0x46, 0xcc, 0x73, 0xde, 0x4a, 0xf3, 0xb4, + 0x58, 0x56, 0xf2, 0xcc, 0xe1, 0x91, 0x34, 0xd9, 0x7a, 0x2f, 0x72, 0x88, 0x49, 0x14, 0xca, 0x60, + 0x4d, 0x8e, 0x85, 0xcd, 0x65, 0x16, 0xb5, 0xe4, 0x39, 0x33, 0x2a, 0xbf, 0x48, 0x27, 0xaf, 0x62, + 0x7d, 0xe9, 0x9c, 0xd2, 0x60, 0xcc, 0xb2, 0xe5, 0x7f, 0x7d, 0xc6, 0x89, 0x59, 0x6b, 0x55, 0x66, + 0x22, 0x31, 0x46, 0x36, 0xca, 0xcf, 0x99, 0x1b, 0x0f, 0x88, 0x02, 0xb6, 0xc8, 0xed, 0x2f, 0x44, + 0xda, 0xa0, 0x4c, 0xb5, 0xaf, 0xd3, 0x58, 0xfc, 0xd6, 0xcb, 0xe6, 0x87, 0xb8, 0x53, 0x7f, 0x3c, + 0x78, 0xa2, 0xdb, 0x90, 0xbf, 0x0d, 0x5e, 0x0c, 0xfb, 0xba, 0x77, 0x75, 0xfb, 0x8f, 0xa3, 0xcc, + 0xad, 0x93, 0x29, 0x58, 0xa0, 0x33, 0x30, 0x02, 0xa6, 0x35, 0x9a, 0x5b, 0xc0, 0x1c, 0xeb, 0xd5, + 0x46, 0x8e, 0xac, 0x14, 0x9d, 0xf0, 0xdc, 0xe9, 0xc4, 0x92, 0x99, 0x1b, 0x5d, 0xb7, 0x18, 0xb9, + 0x13, 0xab, 0xf1, 0x9d, 0x76, 0x67, 0x31, 0xdc, 0x6a, 0x00, 0x67, 0xb1, 0xbb, 0xf8, 0x44, 0x39, + 0xba, 0xd3, 0x65, 0x37, 0xba, 0x6e, 0x33, 0xc0, 0x89, 0x55, 0xf8, 0xce, 0xb8, 0xd3, 0x01, 0x5f, + 0x53, 0x24, 0x6d, 0x2d, 0xad, 0xb5, 0xb1, 0xd6, 0x34, 0xa3, 0xa6, 0xf9, 0x29, 0x9b, 0x7d, 0xd2, + 0x22, 0x77, 0xcf, 0xaa, 0xdc, 0xc2, 0x4e, 0xfc, 0x51, 0x4b, 0xa7, 0xa1, 0xae, 0x4f, 0x36, 0x0d, + 0xf5, 0xc6, 0x70, 0x0c, 0x83, 0xd9, 0x6a, 0x6a, 0x41, 0x5a, 0x05, 0x2c, 0x9a, 0x61, 0xb1, 0x8d, + 0xee, 0xb1, 0x42, 0x28, 0x0b, 0x10, 0xca, 0x22, 0x13, 0x59, 0x3e, 0x52, 0xec, 0x96, 0x99, 0x41, + 0x3e, 0x47, 0x74, 0xc2, 0x8d, 0xe5, 0x9a, 0x65, 0x37, 0xba, 0xa6, 0x08, 0xfc, 0x89, 0x6e, 0x7c, + 0x5b, 0x10, 0xe6, 0x1c, 0x92, 0xf2, 0xc9, 0x9e, 0x6c, 0xab, 0x95, 0x41, 0x93, 0x34, 0x7b, 0x78, + 0xc4, 0x2f, 0x73, 0x76, 0xb6, 0x76, 0xe8, 0xf1, 0x75, 0x31, 0x68, 0xc8, 0xee, 0x66, 0xda, 0xac, + 0xe1, 0x91, 0xa7, 0xbd, 0x8f, 0xc9, 0xf0, 0x50, 0x2d, 0xd8, 0x2c, 0x7c, 0x92, 0x77, 0xab, 0x51, + 0x5e, 0x63, 0x26, 0xad, 0x2d, 0x85, 0x34, 0x25, 0x84, 0x5b, 0x89, 0x25, 0xa4, 0xd7, 0x84, 0x07, + 0xa3, 0xe6, 0x38, 0xf4, 0x1d, 0x45, 0xb4, 0x72, 0x78, 0xdf, 0x05, 0x9a, 0x47, 0xb8, 0x77, 0x86, + 0x85, 0xe6, 0xb9, 0x6c, 0x50, 0x41, 0x92, 0xf5, 0x4b, 0x5f, 0x0b, 0x4e, 0x49, 0x98, 0x57, 0xa1, + 0x55, 0xa9, 0x32, 0xda, 0x5d, 0x1d, 0x94, 0x68, 0x07, 0x32, 0xd6, 0xac, 0x1a, 0xfb, 0x8e, 0x93, + 0x24, 0x2c, 0x2b, 0x7d, 0xcb, 0x72, 0x3e, 0x0f, 0xf9, 0xf8, 0x14, 0x08, 0x8e, 0x92, 0x0b, 0x90, + 0x5f, 0x7a, 0x01, 0x0a, 0xfe, 0xe9, 0xf5, 0x9f, 0x1c, 0x62, 0x31, 0xf6, 0x07, 0xa5, 0xde, 0xc7, + 0xfc, 0xa9, 0x42, 0x49, 0xef, 0x06, 0xbf, 0xd6, 0x82, 0xf1, 0x04, 0x8a, 0x57, 0x86, 0xf1, 0xec, + 0x8f, 0x1d, 0x64, 0x31, 0xf6, 0x1a, 0x4a, 0x6c, 0xb7, 0xd8, 0x6e, 0x1b, 0x9d, 0xb7, 0xb0, 0xc0, + 0xdb, 0xe1, 0xc4, 0x9d, 0x8b, 0xcc, 0x6a, 0x2a, 0x40, 0x0f, 0xb6, 0x4e, 0x0d, 0xf6, 0x28, 0x79, + 0xa6, 0xad, 0x82, 0x66, 0xda, 0xae, 0x75, 0x59, 0xe7, 0xfc, 0xec, 0x02, 0xb8, 0x84, 0xd4, 0x06, + 0xec, 0x77, 0x27, 0xc3, 0x28, 0x75, 0x94, 0x98, 0x2b, 0x7f, 0x72, 0x01, 0xdc, 0x82, 0x4e, 0x0e, + 0x31, 0xb3, 0xf9, 0x7c, 0xc1, 0x25, 0xd6, 0x59, 0x92, 0xdf, 0x5e, 0x2b, 0x24, 0xc9, 0x5a, 0xe0, + 0xc1, 0x30, 0x9d, 0xab, 0xea, 0x5d, 0xd1, 0xac, 0xb6, 0x40, 0xd5, 0x8a, 0x7f, 0x7a, 0x5d, 0x74, + 0xe4, 0xa6, 0xbc, 0xb3, 0x4e, 0x98, 0x20, 0x7f, 0x7d, 0x83, 0xbe, 0xe6, 0xf7, 0x3e, 0xd2, 0xac, + 0xa6, 0x51, 0x00, 0x71, 0x98, 0x84, 0x7c, 0x2f, 0x3f, 0x06, 0xdf, 0x3b, 0x61, 0xc3, 0xcc, 0x37, + 0xff, 0x37, 0xc6, 0xb0, 0x0f, 0xae, 0xa2, 0x93, 0x65, 0xc2, 0x9f, 0xb5, 0xe0, 0x5b, 0xf3, 0x9b, + 0xb7, 0x9a, 0xf6, 0xf8, 0x56, 0x1b, 0x4a, 0x7e, 0x7d, 0xb8, 0x69, 0xab, 0x50, 0xc6, 0xea, 0xd5, + 0xc7, 0xac, 0xb8, 0xc5, 0x77, 0xb9, 0x8c, 0xd4, 0x92, 0x9f, 0xf6, 0x4d, 0xb2, 0x93, 0x99, 0xfa, + 0x98, 0xd4, 0x77, 0x6f, 0x4c, 0xea, 0xd3, 0xa1, 0xd4, 0xa7, 0x8f, 0xe9, 0x85, 0x09, 0x1a, 0x20, + 0x5f, 0x3e, 0x7c, 0x75, 0xb9, 0x6c, 0x0f, 0x98, 0x64, 0xb9, 0xa4, 0x82, 0x98, 0xee, 0x47, 0xdf, + 0xbc, 0x5b, 0xac, 0x30, 0x16, 0x53, 0xb2, 0x15, 0xcf, 0xa4, 0xb4, 0xf2, 0x73, 0xe0, 0xcd, 0xa9, + 0x40, 0x69, 0x3f, 0x85, 0xf6, 0x4f, 0xb2, 0x19, 0xef, 0xb9, 0x28, 0x1b, 0xaa, 0x4d, 0x9a, 0x98, + 0x6e, 0x47, 0x31, 0xf7, 0xa0, 0x04, 0xa3, 0x3e, 0x83, 0x9a, 0x5d, 0xed, 0xe4, 0x32, 0xf0, 0x3b, + 0x49, 0x5e, 0x2f, 0x83, 0xe6, 0xa0, 0x84, 0x1a, 0xdc, 0x15, 0x9a, 0x11, 0x63, 0x5a, 0xc0, 0x45, + 0xe2, 0x3f, 0x8f, 0x9c, 0x60, 0xfb, 0xb6, 0x50, 0xb6, 0xb5, 0xa9, 0xe3, 0x36, 0x50, 0x07, 0x64, + 0x1b, 0xa8, 0xea, 0xa7, 0x51, 0x4e, 0xbe, 0x82, 0xf2, 0xed, 0x36, 0x5a, 0xfb, 0xc3, 0xf0, 0x1d, + 0x4e, 0x0b, 0xfc, 0x32, 0x7f, 0xcf, 0xfb, 0xfa, 0x7b, 0x3a, 0x38, 0x0e, 0x78, 0xf4, 0xd9, 0x27, + 0xb3, 0x9d, 0x06, 0x50, 0xa8, 0xbc, 0x67, 0xdc, 0x53, 0x0c, 0xba, 0x7b, 0x1c, 0x90, 0x3a, 0xb9, + 0x03, 0xc0, 0x01, 0xe0, 0x41, 0xa9, 0xf9, 0xa2, 0x3c, 0x9a, 0xaa, 0x0a, 0x2d, 0x66, 0x48, 0x36, + 0x2f, 0x02, 0xcd, 0x72, 0x1c, 0x81, 0x73, 0xca, 0xa4, 0x53, 0xd6, 0x14, 0x11, 0x54, 0x19, 0x6d, + 0x90, 0x91, 0x2e, 0x9f, 0x15, 0x41, 0xde, 0x6e, 0x05, 0x8e, 0xec, 0xa6, 0xad, 0x0c, 0xaf, 0xb4, + 0x82, 0x8a, 0xf9, 0xf9, 0xf7, 0xba, 0x57, 0x86, 0x4d, 0xa5, 0xdf, 0x5b, 0xa3, 0xeb, 0x0c, 0x83, + 0x3e, 0xa5, 0x36, 0x8f, 0xbd, 0x93, 0xeb, 0x00, 0xd6, 0x31, 0xd7, 0x84, 0xda, 0x74, 0xf6, 0x56, + 0xd5, 0x39, 0xd9, 0x9b, 0xab, 0x07, 0xd5, 0x79, 0x51, 0x8e, 0x35, 0x11, 0xb5, 0xdc, 0x13, 0xa2, + 0x89, 0xb9, 0xf5, 0xb5, 0xc9, 0xec, 0x7d, 0x73, 0x5d, 0x86, 0x98, 0xc9, 0x5c, 0x69, 0x0b, 0xf5, + 0xf4, 0xbe, 0x65, 0x02, 0xc6, 0xea, 0x47, 0xe9, 0xbd, 0x98, 0xac, 0x32, 0x06, 0x55, 0xbd, 0x6b, + 0xea, 0x40, 0xd5, 0x83, 0x72, 0xbf, 0x15, 0xd4, 0xf2, 0x79, 0x16, 0x06, 0x47, 0x12, 0xc1, 0xd5, + 0x15, 0xee, 0xb2, 0xc2, 0x04, 0xe6, 0xd7, 0xbc, 0xd7, 0xdd, 0x15, 0xbe, 0x7f, 0x45, 0xe5, 0x5a, + 0x4f, 0xb1, 0x7f, 0x92, 0xb8, 0xdc, 0xa8, 0xab, 0x89, 0x8e, 0x5a, 0x08, 0xb6, 0x40, 0xd9, 0x8a, + 0xb7, 0xd7, 0x08, 0xce, 0xf2, 0x8b, 0x5a, 0x4e, 0xac, 0x45, 0xfe, 0x8f, 0x9a, 0xda, 0xf5, 0x3b, + 0xf9, 0x4c, 0x34, 0x73, 0x98, 0x6e, 0xd3, 0xc8, 0xeb, 0x5e, 0xa8, 0x81, 0x9d, 0x45, 0x5d, 0xb9, + 0x9b, 0xad, 0xc8, 0xcd, 0xa2, 0x35, 0x33, 0x95, 0x71, 0xfa, 0x1e, 0x48, 0x17, 0x1a, 0xd8, 0xde, + 0xbd, 0x74, 0xe0, 0x65, 0x17, 0x87, 0x70, 0x29, 0x61, 0x07, 0x00, 0xb9, 0x3e, 0xb6, 0x8b, 0x55, + 0xd3, 0xf9, 0xb0, 0x74, 0x41, 0x0a, 0xdd, 0xbc, 0xb3, 0xb3, 0x1e, 0xb8, 0xfd, 0x47, 0x3b, 0xed, + 0xdf, 0x29, 0xd0, 0x78, 0xbf, 0x00, 0x1e, 0x04, 0x30, 0x43, 0x01, 0x8e, 0x75, 0x5e, 0x98, 0x07, + 0x7e, 0xae, 0x0f, 0xec, 0xb0, 0x05, 0x3e, 0xe1, 0xfa, 0xe4, 0x7f, 0x70, 0x1c, 0xf5, 0x9a, 0x42, + 0x1c, 0xf1, 0x37, 0xe1, 0x7b, 0x06, 0xbe, 0x57, 0xe3, 0xdb, 0x83, 0xef, 0x28, 0xe5, 0x6f, 0xa7, + 0x33, 0xdc, 0xed, 0xac, 0x24, 0x27, 0x8a, 0xf9, 0xc0, 0x35, 0x2a, 0x6e, 0x35, 0xba, 0x45, 0xc5, + 0xad, 0x41, 0x77, 0x35, 0xb9, 0x69, 0x1e, 0x4c, 0x5e, 0x3b, 0xaa, 0x0e, 0xdf, 0x45, 0xa7, 0x33, + 0xe5, 0x30, 0xce, 0xaf, 0x39, 0xb5, 0xba, 0x3a, 0x4a, 0x72, 0x2a, 0xc6, 0x2e, 0xc2, 0xd8, 0xa6, + 0xf1, 0x76, 0x94, 0x6f, 0x88, 0x95, 0x34, 0xa4, 0x6e, 0x55, 0x0c, 0x27, 0x7f, 0x6d, 0x55, 0x70, + 0x92, 0x87, 0xba, 0x0a, 0x5b, 0xa3, 0x41, 0x89, 0xed, 0xa8, 0x27, 0x4a, 0x23, 0x1f, 0xd2, 0x5a, + 0xab, 0xab, 0x01, 0xc8, 0xca, 0xf7, 0x21, 0x41, 0x5d, 0x1d, 0xee, 0x7d, 0x64, 0xe1, 0x3c, 0x53, + 0x03, 0x4c, 0x0f, 0x26, 0xbf, 0x13, 0x16, 0x66, 0x1e, 0xfe, 0xdf, 0x28, 0x13, 0x74, 0x5f, 0x5f, + 0x86, 0xf5, 0xfa, 0x32, 0x98, 0x35, 0xde, 0xc9, 0x5e, 0x98, 0x8e, 0x9c, 0x6f, 0xc7, 0x6e, 0xf9, + 0xe4, 0xf7, 0x2c, 0x83, 0x57, 0x50, 0x9f, 0xee, 0x8e, 0xf3, 0xcc, 0xd5, 0x82, 0x7a, 0xb0, 0x8b, + 0xcd, 0x29, 0x9f, 0x37, 0x39, 0xfe, 0x70, 0x0e, 0xa6, 0xff, 0xad, 0xba, 0x5c, 0x5f, 0xce, 0x15, + 0x66, 0x5d, 0xd7, 0xb4, 0x8e, 0xac, 0xa8, 0x62, 0xef, 0x3a, 0x2f, 0xd8, 0x33, 0x89, 0xd7, 0x16, + 0xe2, 0x18, 0xc0, 0xc7, 0x2c, 0x74, 0x57, 0xae, 0x47, 0x2a, 0x5c, 0x51, 0x0f, 0x57, 0xcf, 0x98, + 0xca, 0xac, 0x53, 0xa5, 0x53, 0x86, 0x06, 0xa0, 0xf3, 0xf6, 0x0d, 0x95, 0xdd, 0xc5, 0x7f, 0xee, + 0x06, 0xd3, 0xc4, 0xa3, 0x3d, 0xe0, 0x17, 0xe7, 0x8e, 0x9e, 0xbd, 0x62, 0x72, 0x29, 0xeb, 0x37, + 0xd1, 0x70, 0xd4, 0xcc, 0xfa, 0x0d, 0x9d, 0xbf, 0xea, 0x8e, 0x86, 0x99, 0x4b, 0xfd, 0x9e, 0x9b, + 0xbe, 0xb1, 0x13, 0x5a, 0x49, 0x44, 0xcf, 0xe1, 0x68, 0xd8, 0x0c, 0x13, 0x98, 0x5f, 0xf3, 0xde, + 0xea, 0x70, 0xb4, 0xf8, 0x62, 0xa6, 0x4e, 0x17, 0x2e, 0x2f, 0xf5, 0xba, 0x02, 0xea, 0xdd, 0xdd, + 0xb5, 0xbf, 0x2c, 0x3f, 0x0b, 0xda, 0x7f, 0x7f, 0xa5, 0xce, 0x6e, 0x76, 0xff, 0xe4, 0xb5, 0xc9, + 0x15, 0xd0, 0x8c, 0x4f, 0xe8, 0xc9, 0xb5, 0xc8, 0x41, 0xda, 0xe8, 0x3c, 0xbe, 0xf3, 0x57, 0x28, + 0x1f, 0xee, 0xc0, 0x67, 0x9b, 0x4d, 0x4b, 0x1c, 0xe3, 0xaf, 0x5b, 0x91, 0x02, 0x4f, 0xb1, 0x59, + 0x03, 0xd4, 0xc2, 0xfc, 0x21, 0x94, 0xfb, 0xb7, 0xe1, 0x33, 0xba, 0x83, 0x17, 0x4c, 0x70, 0x34, + 0x7c, 0xf4, 0x7a, 0x8b, 0xd9, 0xcc, 0x1a, 0x54, 0x0c, 0x2f, 0x9f, 0xcb, 0xb6, 0x67, 0x5d, 0xa8, + 0xc7, 0xd9, 0xb1, 0xbe, 0x03, 0xc8, 0xdb, 0x27, 0x19, 0x6e, 0x17, 0xb8, 0x93, 0xdd, 0x7c, 0x18, + 0x1e, 0x7e, 0xf8, 0x61, 0x3e, 0x22, 0x61, 0x52, 0x4d, 0x04, 0xc2, 0xe1, 0xf0, 0x91, 0xb0, 0xf0, + 0x72, 0x55, 0xd4, 0x13, 0xf5, 0xbf, 0x33, 0x46, 0xe7, 0xde, 0xa3, 0xec, 0xfe, 0x3c, 0x1f, 0x5b, + 0xe3, 0xa1, 0x5d, 0x80, 0x38, 0xaa, 0x55, 0x98, 0x72, 0xa0, 0xd6, 0x9c, 0x03, 0x0d, 0xcc, 0x6a, + 0x47, 0x1d, 0x72, 0xd0, 0xe9, 0x42, 0xc5, 0xe8, 0xfe, 0x45, 0x4f, 0x0f, 0x77, 0xca, 0x5f, 0x2d, + 0xb0, 0xd3, 0x2d, 0xa3, 0x33, 0xea, 0x52, 0xe1, 0x64, 0x07, 0x77, 0x2a, 0x50, 0x44, 0x16, 0x58, + 0x05, 0x2d, 0x4a, 0xd2, 0x5a, 0x0b, 0x9c, 0x7c, 0x94, 0xce, 0x31, 0x06, 0x92, 0x85, 0xa4, 0xe4, + 0xf0, 0xc7, 0x7d, 0x9d, 0x02, 0xed, 0x28, 0x91, 0x4f, 0x63, 0xfa, 0x4f, 0x1a, 0x1a, 0xb8, 0x53, + 0xdf, 0x08, 0x67, 0x82, 0xaf, 0xbb, 0x86, 0x59, 0x75, 0x50, 0x83, 0xff, 0x40, 0x42, 0x29, 0xaf, + 0x52, 0x29, 0x64, 0xbb, 0xc3, 0x52, 0xf2, 0x9f, 0xfb, 0xc9, 0xe2, 0x3e, 0x93, 0x3e, 0x6e, 0xa2, + 0x51, 0xe0, 0xf2, 0x3c, 0x79, 0x14, 0x60, 0x92, 0x09, 0xa8, 0xf6, 0x57, 0x3e, 0x6a, 0xd2, 0x91, + 0x26, 0x9d, 0xbd, 0x7a, 0x36, 0x8e, 0xa6, 0xcb, 0x0a, 0xde, 0x5e, 0x5f, 0x7e, 0x01, 0x8a, 0x3a, + 0x20, 0xfb, 0xb6, 0xf7, 0xbc, 0xee, 0x32, 0x67, 0x19, 0x5b, 0xf5, 0x60, 0xad, 0xbd, 0x36, 0xbc, + 0x76, 0x2a, 0x6b, 0xed, 0xa9, 0xd4, 0xda, 0x6b, 0xc3, 0xcc, 0xa5, 0xb4, 0x36, 0x5b, 0x15, 0x49, + 0x22, 0xea, 0x08, 0x47, 0xc2, 0x53, 0x61, 0x02, 0xf3, 0x6b, 0xde, 0x5b, 0x15, 0x8e, 0x84, 0x74, + 0xc7, 0x23, 0x72, 0x6b, 0x63, 0x69, 0xea, 0x20, 0x9d, 0x78, 0x2e, 0x20, 0x9b, 0x25, 0x04, 0x15, + 0x9b, 0x8b, 0xe4, 0x99, 0x6e, 0xee, 0x80, 0xa2, 0x98, 0xb5, 0xfd, 0x47, 0x8e, 0xb1, 0xd5, 0x0b, + 0xe9, 0x9e, 0x53, 0x71, 0xc8, 0x69, 0x5d, 0xa7, 0x84, 0x59, 0x75, 0xb0, 0x2a, 0x70, 0xeb, 0xd8, + 0x7d, 0x14, 0x6a, 0x37, 0xca, 0x47, 0xec, 0xfc, 0x5b, 0xff, 0x67, 0x6c, 0x8e, 0x80, 0x9d, 0x68, + 0x4e, 0xc6, 0xb1, 0x56, 0x67, 0x7f, 0x08, 0x3a, 0x90, 0x62, 0x8a, 0x88, 0x17, 0xdb, 0xf8, 0x5c, + 0xac, 0xe1, 0xd7, 0xb5, 0x64, 0x23, 0x81, 0xe9, 0x8d, 0x0e, 0xec, 0xd9, 0x07, 0xe5, 0x78, 0xb6, + 0x1c, 0xf0, 0xb0, 0x58, 0x13, 0xb1, 0x8c, 0xc4, 0xef, 0x3d, 0x42, 0x0e, 0x14, 0xea, 0xd8, 0xa9, + 0x78, 0x94, 0x83, 0xe5, 0xb8, 0xc0, 0x62, 0x72, 0xe3, 0x62, 0x86, 0x31, 0xe6, 0x8c, 0x1b, 0xc6, + 0xe4, 0xb1, 0xc7, 0xf6, 0x7f, 0xd6, 0x15, 0x8f, 0x39, 0x37, 0xbe, 0x1f, 0x1a, 0xe0, 0x8c, 0x02, + 0x67, 0xa5, 0x02, 0xa5, 0xea, 0x86, 0x50, 0x1a, 0xe5, 0x58, 0x94, 0xce, 0xbe, 0x08, 0x78, 0x25, + 0xae, 0x7a, 0x2c, 0x04, 0xdc, 0xc8, 0x98, 0x58, 0x6a, 0x25, 0x56, 0xd2, 0xb8, 0x58, 0xc7, 0xc6, + 0xc4, 0xd2, 0x28, 0xb1, 0x34, 0xe3, 0x62, 0xed, 0xa4, 0xef, 0x5a, 0xec, 0xe1, 0xf0, 0x9d, 0x98, + 0x25, 0x62, 0xda, 0x37, 0xc0, 0xd6, 0xbe, 0xd5, 0x41, 0x5e, 0xd4, 0xc9, 0x27, 0xb7, 0xe7, 0xb0, + 0x13, 0xca, 0xe1, 0xc8, 0x98, 0xfa, 0x4e, 0xa0, 0xfa, 0x5e, 0xda, 0x12, 0xcf, 0xcb, 0x8f, 0x98, + 0xc9, 0x1b, 0x87, 0x93, 0x64, 0x86, 0x93, 0xb4, 0x78, 0x1c, 0x67, 0x6e, 0x0e, 0x4c, 0xf7, 0x0b, + 0xa2, 0x69, 0x4c, 0xac, 0x14, 0x96, 0xd3, 0xf9, 0x78, 0xac, 0x6c, 0x61, 0x66, 0xcd, 0x23, 0x42, + 0xa6, 0xff, 0x6d, 0x92, 0xb9, 0xca, 0xe8, 0xcc, 0x73, 0x41, 0x82, 0x5c, 0x6e, 0x8f, 0xcb, 0xe5, + 0xd3, 0x14, 0xb9, 0x3c, 0x0f, 0xa5, 0xe1, 0x6f, 0x2a, 0xf4, 0xa3, 0x4e, 0xa0, 0x1f, 0x59, 0x06, + 0x46, 0xee, 0x2d, 0x7f, 0x43, 0xf5, 0x98, 0xac, 0xa4, 0x33, 0x1a, 0x8c, 0xc9, 0x46, 0xd0, 0xcb, + 0x4e, 0xc2, 0xff, 0xd7, 0x73, 0x6f, 0x56, 0xbe, 0x70, 0x31, 0xea, 0x56, 0x72, 0x9e, 0xbb, 0x9c, + 0x13, 0x93, 0x9d, 0x33, 0x75, 0x61, 0xba, 0x5b, 0x2a, 0x90, 0x41, 0xb1, 0x90, 0x57, 0xdf, 0x34, + 0x9a, 0x1a, 0xe5, 0xa8, 0xbc, 0xff, 0x7c, 0x95, 0xce, 0x29, 0x5d, 0x25, 0x9a, 0x0a, 0xb5, 0x98, + 0x91, 0x97, 0xb4, 0xb1, 0x78, 0xaa, 0xc1, 0xed, 0x50, 0x8b, 0xb8, 0x41, 0xac, 0x7c, 0xca, 0x76, + 0xab, 0xee, 0x0e, 0x3f, 0xa0, 0x68, 0x62, 0xf1, 0xf3, 0x73, 0xca, 0x39, 0x22, 0xd9, 0x8e, 0xf5, + 0xd8, 0x55, 0xce, 0x97, 0xee, 0xfd, 0xb2, 0x55, 0x4e, 0xd2, 0x3b, 0x84, 0x19, 0x46, 0x3a, 0x4b, + 0x84, 0xda, 0x15, 0xb3, 0x28, 0x28, 0x9f, 0x83, 0xc9, 0x36, 0xc9, 0x2b, 0x97, 0x6f, 0x18, 0x92, + 0x8d, 0xb1, 0x30, 0xd9, 0x9a, 0xe0, 0xcf, 0x11, 0x36, 0x35, 0xdb, 0x93, 0x00, 0xf0, 0xb8, 0x27, + 0xdc, 0x8c, 0xbf, 0x56, 0x9a, 0x67, 0x7c, 0xda, 0xa8, 0xd3, 0x44, 0x01, 0x78, 0x13, 0x61, 0x64, + 0xd6, 0xb0, 0xd4, 0xa1, 0x68, 0x9a, 0xf3, 0xc8, 0xef, 0x7d, 0xcc, 0x4a, 0x72, 0xbd, 0xd1, 0xf9, + 0x2f, 0x41, 0x5e, 0xf0, 0x30, 0x6b, 0xa0, 0xf2, 0x7c, 0x60, 0x11, 0xad, 0x4d, 0xea, 0xb6, 0x2d, + 0xf9, 0xf1, 0x92, 0x56, 0xd0, 0xfb, 0xd3, 0x74, 0xdb, 0xea, 0xdb, 0xeb, 0x17, 0x42, 0x3a, 0xd5, + 0x2e, 0xdf, 0x51, 0xb3, 0x5a, 0x54, 0xe7, 0x77, 0x20, 0x8e, 0x69, 0xd6, 0xe6, 0x69, 0xaa, 0xbd, + 0x64, 0x12, 0x66, 0xb3, 0xf9, 0xc4, 0xa3, 0x95, 0xeb, 0x45, 0x83, 0x36, 0x07, 0xe9, 0xf4, 0x47, + 0x34, 0x32, 0x63, 0x2c, 0xd5, 0x96, 0x01, 0x51, 0x9f, 0xdf, 0x21, 0x49, 0x62, 0x72, 0x3e, 0xed, + 0xbc, 0xa1, 0x94, 0x7c, 0x88, 0x37, 0xa6, 0x28, 0xd0, 0x67, 0x50, 0x88, 0x24, 0xd1, 0x2d, 0x02, + 0x1d, 0xea, 0x1a, 0x59, 0x6b, 0xa6, 0xbd, 0x00, 0x42, 0x68, 0xa2, 0xbc, 0xcf, 0xee, 0x5a, 0x08, + 0xe1, 0x69, 0x30, 0xd0, 0x19, 0xdc, 0xcc, 0x36, 0xad, 0x12, 0x56, 0x4d, 0x3b, 0x94, 0x05, 0x87, + 0x09, 0x55, 0x2f, 0x91, 0x6f, 0x93, 0xe2, 0x71, 0x1b, 0x3d, 0x9d, 0x7e, 0x47, 0xd0, 0x78, 0x43, + 0x79, 0xc2, 0x8c, 0x9a, 0x66, 0xb6, 0x31, 0x76, 0xde, 0x6a, 0x1d, 0x86, 0xa8, 0xb1, 0x25, 0x33, + 0x0d, 0xb3, 0x82, 0xc6, 0xd1, 0x3b, 0x6d, 0x28, 0x37, 0x41, 0x25, 0xef, 0x2a, 0x97, 0x4f, 0x10, + 0x60, 0x1a, 0xd4, 0x4e, 0x49, 0x87, 0x0f, 0x25, 0xd1, 0x89, 0x13, 0x06, 0x0f, 0xdb, 0xab, 0x6e, + 0xb6, 0x77, 0xeb, 0x0c, 0x0e, 0x31, 0xcf, 0xb4, 0x18, 0xcc, 0x7f, 0x78, 0xfd, 0x0f, 0xaf, 0xd3, + 0x39, 0x1d, 0x1c, 0x51, 0x6f, 0xed, 0x7b, 0x06, 0xb4, 0xfe, 0x6c, 0x5a, 0x35, 0x1e, 0xdd, 0x8b, + 0x70, 0xdb, 0x1e, 0xc0, 0xf1, 0xce, 0x99, 0x67, 0xa6, 0x99, 0xf1, 0x34, 0xc3, 0xc4, 0x56, 0x39, + 0x2f, 0xaf, 0x81, 0x4e, 0xf3, 0xed, 0x75, 0xba, 0x94, 0xbc, 0x1b, 0xe3, 0xe7, 0xcf, 0xb2, 0xc7, + 0xd8, 0x79, 0xcd, 0x45, 0x6c, 0xa3, 0x06, 0x9e, 0x68, 0x1d, 0x56, 0xd1, 0xd5, 0xe3, 0xf6, 0x5e, + 0xc7, 0x59, 0x92, 0xfd, 0x1b, 0xb1, 0x51, 0x43, 0x31, 0xd2, 0x6e, 0x35, 0xa3, 0xb2, 0x5b, 0x8d, + 0x6c, 0x31, 0x0b, 0x66, 0x99, 0x82, 0xfc, 0xc0, 0xcf, 0x63, 0x7a, 0xa7, 0x85, 0x9d, 0x93, 0x6c, + 0x34, 0xdf, 0xa4, 0xe9, 0x92, 0x24, 0xc9, 0x48, 0x2b, 0x7c, 0x23, 0xe7, 0x63, 0x3b, 0xd1, 0xf8, + 0x34, 0x83, 0x7a, 0xf4, 0x4c, 0x9e, 0x85, 0xce, 0xf8, 0x81, 0x60, 0x81, 0xcc, 0xca, 0x30, 0xdb, + 0x29, 0x51, 0xc8, 0x4e, 0xaf, 0x29, 0xa7, 0xea, 0x2c, 0x37, 0x69, 0x56, 0xb0, 0x1c, 0x92, 0x64, + 0x59, 0x89, 0xf5, 0xca, 0x24, 0xb6, 0x7f, 0x79, 0x35, 0x8d, 0x2e, 0x2f, 0x3d, 0x26, 0x7f, 0x51, + 0x4e, 0x5b, 0xe8, 0x31, 0x2f, 0x0b, 0x08, 0xec, 0xcb, 0x13, 0x28, 0x2f, 0x3e, 0x81, 0x50, 0xa8, + 0x98, 0xef, 0xe7, 0xb6, 0x24, 0x76, 0x23, 0x4c, 0x38, 0x7e, 0xf3, 0x4b, 0x62, 0xdc, 0x9f, 0x63, + 0xdc, 0x66, 0x8c, 0xcb, 0x33, 0xdf, 0x2f, 0x30, 0xcf, 0x1b, 0xc5, 0xfa, 0x37, 0xb2, 0x3f, 0x12, + 0x8f, 0xb5, 0x63, 0x34, 0x16, 0x9d, 0x6d, 0x8c, 0x87, 0xff, 0x3a, 0x31, 0x9c, 0xd3, 0xc5, 0xc3, + 0xfb, 0xc6, 0xc4, 0xbf, 0x14, 0x87, 0xec, 0xb7, 0x63, 0xc2, 0x8f, 0xb3, 0xb0, 0x03, 0xa8, 0x53, + 0x19, 0xbf, 0xa4, 0x5e, 0xbf, 0x17, 0xc9, 0x8a, 0x4b, 0x17, 0xc6, 0x3d, 0xa8, 0xeb, 0x2a, 0x2b, + 0xae, 0xe6, 0x9b, 0x05, 0xf6, 0x86, 0x46, 0xbb, 0xae, 0xab, 0xc4, 0x55, 0x56, 0x15, 0xf0, 0x35, + 0x2d, 0xd0, 0x74, 0xfd, 0xb6, 0x77, 0x87, 0x44, 0xe7, 0x52, 0xea, 0x7d, 0x62, 0xbe, 0xae, 0x8b, + 0xee, 0x98, 0x0b, 0x4c, 0xd2, 0x75, 0x2d, 0xf1, 0x2f, 0x81, 0x40, 0x86, 0xae, 0x6b, 0x76, 0x95, + 0x0b, 0xfc, 0x05, 0x09, 0xb9, 0x1e, 0x11, 0x1b, 0x13, 0x7c, 0x47, 0xc5, 0x05, 0x09, 0xbe, 0xb7, + 0xc5, 0xca, 0x04, 0xdf, 0xf3, 0xa2, 0x33, 0xc1, 0xf7, 0x8e, 0x98, 0x1f, 0xaf, 0xc9, 0xfb, 0x72, + 0x5b, 0x14, 0x86, 0x15, 0xdc, 0xa5, 0x26, 0xc4, 0x7b, 0x5f, 0xd4, 0x25, 0xf8, 0x5e, 0x42, 0x5d, + 0x71, 0xbe, 0x59, 0xb1, 0x1d, 0xeb, 0xcf, 0x52, 0xbe, 0x20, 0x8f, 0xc5, 0xf0, 0x50, 0x2c, 0x1c, + 0x29, 0xe5, 0xe9, 0xdb, 0x69, 0x16, 0xcf, 0x4e, 0xb6, 0xb6, 0x3c, 0xe1, 0x16, 0x94, 0xdb, 0x0d, + 0x16, 0x48, 0x27, 0xbd, 0x3f, 0x76, 0x86, 0x53, 0xb6, 0x91, 0x4a, 0x33, 0xee, 0xf4, 0x65, 0xf4, + 0x34, 0xe4, 0x4b, 0x1f, 0x8c, 0x52, 0x18, 0xd2, 0x13, 0xd2, 0xa3, 0xf1, 0x26, 0x36, 0x7f, 0x6a, + 0x6c, 0x6b, 0x54, 0x56, 0x41, 0xc8, 0xe2, 0x52, 0x19, 0x52, 0xe2, 0x86, 0xa1, 0x47, 0x63, 0x21, + 0x88, 0xf5, 0x0d, 0xe3, 0x30, 0x9f, 0x11, 0x87, 0x2d, 0x09, 0xb5, 0xe5, 0xa3, 0x32, 0x6c, 0xb4, + 0xf7, 0xdf, 0xa0, 0x1e, 0x3d, 0xf9, 0x89, 0xbe, 0x18, 0xc5, 0x46, 0xd9, 0xfc, 0x9c, 0x41, 0xd4, + 0x18, 0x68, 0x65, 0xea, 0x97, 0xf1, 0xd4, 0xc8, 0xeb, 0xae, 0x3e, 0x3e, 0x5a, 0x33, 0xee, 0xe0, + 0xed, 0x74, 0x93, 0x17, 0xd6, 0x8c, 0x1b, 0xb0, 0x30, 0x6e, 0x68, 0x4e, 0xd1, 0x74, 0x31, 0x6e, + 0x9b, 0x44, 0x6b, 0xed, 0xc3, 0xa9, 0x64, 0x1d, 0x84, 0xc5, 0x9c, 0x2b, 0xaf, 0x9e, 0x5b, 0x1d, + 0x86, 0xd9, 0xce, 0x7f, 0xa1, 0x5d, 0xe5, 0x41, 0x5e, 0xb6, 0xbe, 0x4c, 0xab, 0xa9, 0x5c, 0x81, + 0xe0, 0xb0, 0x2e, 0x42, 0x8e, 0xfb, 0x9c, 0xc2, 0x71, 0x73, 0x75, 0xcf, 0xc9, 0x1c, 0xd7, 0x6f, + 0x8c, 0x97, 0x4d, 0xeb, 0xec, 0xd9, 0xa3, 0x65, 0xc3, 0x59, 0x2c, 0x5b, 0x45, 0x65, 0xc3, 0x3b, + 0x72, 0x1c, 0x5b, 0x86, 0xb7, 0xff, 0x8b, 0x43, 0xf1, 0xf6, 0x00, 0x94, 0xa0, 0x73, 0x41, 0xaf, + 0x0b, 0x37, 0x2d, 0x5d, 0xb2, 0x38, 0x10, 0xaa, 0x35, 0xeb, 0xc2, 0x75, 0x2d, 0x0b, 0x97, 0x06, + 0x3c, 0xb5, 0x28, 0xe9, 0x3f, 0xd8, 0xbc, 0xb8, 0x09, 0x63, 0xac, 0x14, 0x9b, 0x71, 0xe4, 0x6b, + 0x5e, 0xd2, 0x1a, 0x70, 0x63, 0xbc, 0x96, 0xb6, 0xc5, 0xfe, 0x90, 0xe8, 0xd7, 0x85, 0x97, 0xb4, + 0x2c, 0x6d, 0x0e, 0x58, 0xc9, 0x9e, 0x71, 0x70, 0xf1, 0xc2, 0x56, 0xff, 0x02, 0x11, 0x25, 0x29, + 0x82, 0x0c, 0x4b, 0x3d, 0xa5, 0x0b, 0xb7, 0xd6, 0xb7, 0xb7, 0xfa, 0x51, 0x47, 0x84, 0x13, 0x34, + 0x1f, 0xfd, 0x12, 0xd9, 0xea, 0x3d, 0xce, 0x5c, 0xcb, 0xd0, 0x75, 0x84, 0xb9, 0x5a, 0xc8, 0x0a, + 0x17, 0x73, 0x2d, 0x46, 0xd7, 0x5e, 0xe6, 0x7a, 0x10, 0x5d, 0xbb, 0x98, 0xeb, 0x01, 0x74, 0xf5, + 0x30, 0xd7, 0xfd, 0xe8, 0x7a, 0x2a, 0x5e, 0x43, 0x3a, 0xb5, 0x51, 0x18, 0xaf, 0xa1, 0x06, 0xeb, + 0xa7, 0x06, 0xbb, 0x32, 0xca, 0xe0, 0xb7, 0x2b, 0x03, 0x42, 0x69, 0x6c, 0x94, 0x61, 0xed, 0xe3, + 0x21, 0xae, 0xc5, 0xa4, 0xa2, 0x1f, 0xf9, 0x85, 0x44, 0x3c, 0x0d, 0x5f, 0x8a, 0xe7, 0x62, 0x52, + 0xb0, 0x34, 0x29, 0xb1, 0x94, 0xe1, 0xa1, 0xf1, 0xa5, 0x30, 0xfb, 0xae, 0x45, 0x92, 0x9a, 0xf4, + 0x07, 0x06, 0xd9, 0x3a, 0x79, 0xb6, 0xfd, 0xa5, 0x55, 0x0a, 0x6e, 0x91, 0xa7, 0x0d, 0x07, 0x47, + 0x71, 0x2b, 0xd5, 0x89, 0x20, 0xb9, 0xbd, 0x3f, 0xa4, 0x33, 0x5a, 0xc8, 0x79, 0x0f, 0xe0, 0x78, + 0x6d, 0x47, 0x5d, 0xa3, 0x02, 0xf9, 0x6e, 0x25, 0xe8, 0x6c, 0x74, 0xb2, 0x5f, 0x8f, 0xbf, 0x74, + 0xb2, 0xbc, 0x0a, 0xb2, 0x91, 0x0f, 0x5b, 0xf1, 0xb1, 0xd3, 0x6c, 0x1a, 0x42, 0x50, 0xc0, 0x7a, + 0xcf, 0x9f, 0x51, 0xca, 0x11, 0x4b, 0x51, 0x96, 0x62, 0x3b, 0x10, 0x4f, 0xfb, 0x5e, 0x95, 0xe7, + 0xf7, 0xfc, 0xd3, 0x99, 0xfc, 0xc2, 0xc2, 0x4a, 0x78, 0x23, 0xd2, 0x47, 0xf1, 0x5f, 0xe1, 0xf4, + 0x7d, 0x7b, 0xe8, 0xac, 0x66, 0x00, 0x25, 0x08, 0xb2, 0x28, 0x86, 0x7a, 0x8f, 0xbe, 0xf5, 0x0b, + 0x51, 0x67, 0xa2, 0x5b, 0x86, 0x30, 0xc4, 0x08, 0x35, 0xeb, 0xe9, 0x2c, 0x94, 0x8e, 0x6c, 0x96, + 0x15, 0xe0, 0xc8, 0x25, 0xcb, 0x50, 0xe9, 0x89, 0x0f, 0x8e, 0xd2, 0x35, 0xca, 0x99, 0x66, 0x9e, + 0x9d, 0x94, 0xe5, 0x5a, 0x75, 0xa7, 0xb6, 0x19, 0x8a, 0x8b, 0xff, 0xac, 0xbd, 0x49, 0xe0, 0xd2, + 0x8b, 0x20, 0xf5, 0xd4, 0xb6, 0xc1, 0x6e, 0x7c, 0xdf, 0x7e, 0xea, 0x99, 0xc1, 0x88, 0xf1, 0x4e, + 0x8a, 0xc7, 0xf6, 0x14, 0xd2, 0x49, 0x67, 0x33, 0xa4, 0x1b, 0x16, 0x81, 0x96, 0x66, 0x60, 0x6f, + 0x8d, 0x6a, 0x81, 0xdc, 0xb7, 0x46, 0xb4, 0x1c, 0xd3, 0xf3, 0xd3, 0x29, 0x6e, 0x6c, 0xae, 0x91, + 0xac, 0x4c, 0x90, 0xde, 0x65, 0x98, 0x02, 0xcb, 0xac, 0x8b, 0x61, 0xba, 0x65, 0x31, 0x34, 0x14, + 0x5f, 0x3e, 0x06, 0xe6, 0x29, 0xd0, 0x26, 0xa8, 0x2d, 0x64, 0x65, 0x67, 0x0a, 0x58, 0x4c, 0x1a, + 0x4d, 0xa7, 0x24, 0x8d, 0x0c, 0xef, 0x7e, 0xb4, 0x4e, 0x67, 0xba, 0x89, 0xd6, 0x41, 0x39, 0xcd, + 0xd6, 0x95, 0x38, 0xf6, 0x82, 0x6d, 0x31, 0x9d, 0x9d, 0xc2, 0xdf, 0x3c, 0x28, 0x98, 0xf5, 0x31, + 0xc7, 0xcf, 0xc2, 0xb4, 0x93, 0xec, 0x6e, 0x29, 0xdb, 0xee, 0x06, 0x1c, 0x57, 0x57, 0xd7, 0xf3, + 0xa7, 0x56, 0x61, 0x5e, 0xa1, 0xbe, 0x15, 0x75, 0x5a, 0x8b, 0x5a, 0x54, 0x67, 0xab, 0x45, 0x6d, + 0xf9, 0xc7, 0x23, 0x23, 0xb6, 0x12, 0xb0, 0x97, 0x5e, 0x36, 0x43, 0x66, 0x9e, 0x16, 0xf6, 0xa8, + 0x91, 0xb2, 0x8f, 0x64, 0xe7, 0x69, 0xa5, 0xbd, 0x1a, 0x5a, 0x61, 0xcf, 0x48, 0xdb, 0x4d, 0xa7, + 0x5d, 0x5f, 0xcd, 0xb0, 0x00, 0xb7, 0xdb, 0x4c, 0x7b, 0xef, 0xa1, 0xbf, 0xba, 0xbb, 0x7a, 0x35, + 0x8e, 0xe9, 0x76, 0xb2, 0xc8, 0x35, 0xf3, 0x2c, 0x70, 0x74, 0xc7, 0xcf, 0x24, 0xfc, 0xb6, 0x17, + 0xe3, 0xf8, 0x1b, 0xc9, 0x4a, 0x3b, 0xfa, 0x78, 0xf4, 0xf1, 0xfe, 0x05, 0xe8, 0x53, 0xa1, 0x4f, + 0x85, 0x3e, 0x95, 0xbf, 0x12, 0x7d, 0x6a, 0xf4, 0xa9, 0xd1, 0xa7, 0xf6, 0x3b, 0xd1, 0x97, 0x84, + 0xbe, 0x24, 0xf4, 0x25, 0xf9, 0xf3, 0xd1, 0xa7, 0x41, 0x9f, 0x06, 0x7d, 0x1a, 0xbf, 0x09, 0x7d, + 0x13, 0xd0, 0x37, 0x01, 0x7d, 0x13, 0xfc, 0x99, 0x95, 0xdd, 0x26, 0x37, 0xd9, 0x75, 0x9b, 0x34, + 0x05, 0xb4, 0x18, 0xa2, 0xf5, 0x6b, 0x2a, 0x57, 0xff, 0xf6, 0x40, 0x6d, 0x94, 0x20, 0x27, 0xcb, + 0x54, 0xff, 0xf4, 0xfb, 0x99, 0x1f, 0x71, 0xbc, 0x50, 0xd1, 0xbb, 0xa6, 0x31, 0xf3, 0x1b, 0x4e, + 0x68, 0xee, 0x5f, 0xd3, 0x92, 0x3f, 0x29, 0xbf, 0x4f, 0xca, 0xcc, 0xef, 0x03, 0x21, 0x45, 0xd4, + 0x64, 0x6a, 0x44, 0x7e, 0x92, 0x66, 0xff, 0xf3, 0x50, 0x30, 0x14, 0x45, 0xa9, 0x24, 0x3f, 0x3f, + 0xcf, 0xac, 0xdc, 0xb8, 0xb0, 0x0b, 0x29, 0x6b, 0x61, 0x72, 0x55, 0xc4, 0x0f, 0x23, 0x9f, 0xa2, + 0x3e, 0x9a, 0x82, 0xb8, 0x0f, 0xed, 0x0c, 0xd7, 0xf1, 0x02, 0x37, 0x3a, 0x23, 0x49, 0xe7, 0xf1, + 0x49, 0xf6, 0xc4, 0x1e, 0x93, 0x4d, 0xad, 0x49, 0xfb, 0xb2, 0x7b, 0xa3, 0x75, 0x48, 0x5f, 0x9e, + 0x68, 0x80, 0x2c, 0x0f, 0x99, 0x91, 0x5e, 0x2d, 0xa0, 0x93, 0x75, 0xbc, 0xb7, 0x7a, 0xe4, 0x98, + 0x6f, 0x6d, 0x03, 0x3d, 0xba, 0xd3, 0x1f, 0xeb, 0x01, 0xb2, 0x4d, 0x9a, 0xfd, 0xd8, 0x36, 0x36, + 0x17, 0xc5, 0xac, 0x77, 0x78, 0xd0, 0xed, 0xd7, 0xdc, 0x45, 0xb7, 0xa5, 0xeb, 0x8d, 0x77, 0xca, + 0x37, 0xe8, 0xdd, 0x4b, 0x32, 0xab, 0x1d, 0xf3, 0xb6, 0x98, 0xf9, 0x63, 0xd1, 0x72, 0x76, 0xaf, + 0xd3, 0x6c, 0xa4, 0xde, 0xe6, 0x03, 0xb3, 0xf0, 0xf7, 0xa1, 0x6e, 0x5a, 0x6b, 0x34, 0x59, 0xa0, + 0x70, 0x6b, 0x0f, 0x84, 0xb6, 0x86, 0x0d, 0xfc, 0x91, 0x1e, 0xb0, 0x68, 0x22, 0x44, 0x09, 0x3b, + 0xc3, 0xb5, 0x34, 0x9f, 0x34, 0xdd, 0xc6, 0xbb, 0x83, 0x66, 0xa0, 0x1b, 0xaa, 0xb0, 0xcc, 0x66, + 0x7c, 0x1a, 0xf0, 0x99, 0x87, 0xe9, 0x3c, 0x74, 0xca, 0xe0, 0xf0, 0x39, 0x70, 0x52, 0xd9, 0x21, + 0xc8, 0x33, 0x4b, 0x23, 0xbb, 0x22, 0xb5, 0xea, 0x4d, 0xb4, 0x8f, 0xac, 0x78, 0x1a, 0x57, 0x15, + 0xf6, 0x9f, 0xc3, 0xf4, 0x33, 0x0e, 0xef, 0xa7, 0x3d, 0x71, 0x37, 0xfa, 0x7a, 0x34, 0x6a, 0xf2, + 0x91, 0x8c, 0x8c, 0xdc, 0x36, 0xd7, 0x62, 0x81, 0xe9, 0x56, 0x84, 0x25, 0xd7, 0x02, 0xa1, 0xdd, + 0xe1, 0x3a, 0x8d, 0xa7, 0x33, 0x30, 0x57, 0xe4, 0x4d, 0xb0, 0xa1, 0x93, 0xce, 0x11, 0xa3, 0xae, + 0x45, 0x38, 0xca, 0x64, 0xb2, 0x90, 0xce, 0xa6, 0xb2, 0xdd, 0x8a, 0xfa, 0xa8, 0xdd, 0xfb, 0x98, + 0xa8, 0x0f, 0xd1, 0x2e, 0xd4, 0xb4, 0x78, 0xc8, 0x56, 0x8c, 0x6d, 0x27, 0x78, 0x8e, 0x3f, 0x42, + 0x61, 0x42, 0xa9, 0x3b, 0xb8, 0x08, 0xbc, 0x5b, 0xfe, 0xb0, 0xf9, 0x0f, 0xdb, 0xd9, 0x0d, 0x4d, + 0x3a, 0xa2, 0xe8, 0xa3, 0x58, 0xd7, 0xc9, 0x25, 0x10, 0x0a, 0xf2, 0xbd, 0x9d, 0x75, 0xf9, 0xec, + 0xe6, 0x1c, 0x2c, 0x19, 0x75, 0x71, 0xbb, 0x16, 0x26, 0x17, 0x43, 0x99, 0xde, 0xae, 0xe5, 0xe4, + 0x53, 0xc5, 0x08, 0xd5, 0xdc, 0x8f, 0x9e, 0x79, 0x31, 0x3c, 0xd0, 0x03, 0x3e, 0xba, 0x2b, 0x49, + 0x47, 0xfd, 0x22, 0xa9, 0x36, 0x59, 0xf0, 0x21, 0xae, 0x91, 0xa6, 0x47, 0xf6, 0x09, 0x96, 0x8c, + 0x7e, 0xc4, 0x6e, 0xe1, 0xae, 0xf0, 0xc2, 0x45, 0x98, 0x6f, 0xc3, 0xee, 0xf0, 0x42, 0xcb, 0x96, + 0x4e, 0x1d, 0x52, 0x01, 0xc7, 0x2f, 0xd4, 0x90, 0x25, 0x70, 0x8e, 0xa7, 0x15, 0x23, 0x2c, 0x61, + 0xfa, 0x60, 0x67, 0xcc, 0xf2, 0xc6, 0x50, 0xe7, 0x64, 0x67, 0x46, 0xbf, 0x98, 0x67, 0x50, 0xd1, + 0x8e, 0x32, 0x0e, 0xeb, 0xb0, 0xd0, 0xc2, 0xf6, 0x8d, 0xf2, 0x9b, 0xc2, 0x5b, 0xc2, 0x47, 0x23, + 0xbb, 0x3a, 0xeb, 0x78, 0x13, 0x6f, 0x53, 0x39, 0x7f, 0x35, 0xd8, 0x03, 0xd3, 0x63, 0xa9, 0xfe, + 0xd0, 0x93, 0xd1, 0x1f, 0xbb, 0x6f, 0x41, 0xd6, 0x48, 0x58, 0xeb, 0xe6, 0x63, 0xef, 0x2e, 0xa0, + 0xb9, 0x89, 0xfc, 0x63, 0x74, 0xb6, 0x24, 0x6f, 0x08, 0x5b, 0xf9, 0x74, 0xdd, 0x27, 0x33, 0x87, + 0xaf, 0xfd, 0x1c, 0x5b, 0xfa, 0x54, 0xf7, 0xd3, 0xba, 0x1e, 0x82, 0x1a, 0x42, 0xb5, 0xc8, 0x99, + 0x48, 0xcf, 0x42, 0x58, 0x42, 0x35, 0xeb, 0x69, 0xcf, 0x2a, 0xd6, 0x45, 0x47, 0x16, 0x33, 0x54, + 0x4f, 0x32, 0xa9, 0xe0, 0x32, 0x62, 0x04, 0x71, 0x53, 0x57, 0x8d, 0xf5, 0x6e, 0x20, 0xbc, 0x04, + 0x41, 0x6f, 0xaf, 0xe1, 0x71, 0x94, 0x2f, 0xc3, 0xb6, 0x99, 0xfb, 0x71, 0x02, 0x26, 0x68, 0x26, + 0xf1, 0xf0, 0x80, 0x1d, 0x31, 0x26, 0xeb, 0xb9, 0x86, 0xa4, 0x7d, 0x3d, 0x90, 0xc7, 0xda, 0xfb, + 0xe5, 0x69, 0xe1, 0x4c, 0xda, 0xe9, 0x57, 0x66, 0xc0, 0x38, 0x6f, 0x1e, 0xf8, 0x66, 0x0f, 0x34, + 0x76, 0xd3, 0x8e, 0x6d, 0x92, 0x16, 0x16, 0x20, 0x7e, 0xdb, 0x26, 0x37, 0x40, 0x33, 0xd4, 0x2e, + 0xe7, 0x27, 0xcf, 0x84, 0x05, 0x58, 0xae, 0x6f, 0x67, 0x0f, 0x2c, 0xaf, 0xab, 0xa0, 0xb9, 0xb4, + 0x8d, 0x03, 0x18, 0x27, 0x46, 0x7f, 0xdd, 0xf5, 0x05, 0xec, 0x7e, 0x2d, 0xd4, 0xfa, 0xb0, 0xc4, + 0x05, 0x95, 0xeb, 0x99, 0x7c, 0x6a, 0x5c, 0xc6, 0xf5, 0xf7, 0xc0, 0xca, 0x40, 0x46, 0x87, 0x0a, + 0xf5, 0xc0, 0x0c, 0x6a, 0xb9, 0x0d, 0x48, 0x97, 0x54, 0x1b, 0x3d, 0x2c, 0xd4, 0xc8, 0xb9, 0x62, + 0x2e, 0x6d, 0x58, 0x97, 0x48, 0x1d, 0x70, 0xcb, 0x31, 0xf7, 0x05, 0xf5, 0x64, 0x61, 0x87, 0xea, + 0xe4, 0x40, 0x7a, 0x0d, 0x3d, 0x40, 0xb6, 0xe7, 0xac, 0x0f, 0x70, 0x1b, 0x1a, 0xa0, 0xce, 0xd0, + 0x90, 0xf1, 0xa4, 0xc5, 0x92, 0xf1, 0xd4, 0xdb, 0xab, 0x8a, 0xa0, 0xaa, 0xec, 0x9b, 0x2b, 0x6b, + 0x40, 0x09, 0xd9, 0x72, 0x6b, 0xa4, 0x06, 0x7c, 0xab, 0x26, 0x97, 0x67, 0x3c, 0x39, 0xc7, 0x21, + 0xaf, 0x0b, 0xa7, 0x4d, 0xcf, 0x04, 0xd9, 0xc5, 0x5a, 0x8d, 0xa3, 0x33, 0xe5, 0x47, 0x56, 0x0b, + 0xc5, 0xbe, 0x45, 0xb0, 0x09, 0xf5, 0x7e, 0xa9, 0x36, 0x53, 0xc6, 0x05, 0xf6, 0xac, 0x53, 0xab, + 0x9e, 0xd6, 0xdf, 0x23, 0xe3, 0x06, 0x24, 0x31, 0xe3, 0x13, 0xb7, 0xfc, 0x45, 0x13, 0xa6, 0x2f, + 0x82, 0x83, 0x66, 0x00, 0x39, 0xa0, 0x99, 0x81, 0xc1, 0xd5, 0x16, 0x87, 0xaf, 0x69, 0xe2, 0x4a, + 0xab, 0x25, 0xe3, 0xf1, 0xaa, 0x95, 0x08, 0x63, 0x1b, 0xc2, 0x1e, 0xf2, 0x45, 0x36, 0x85, 0x11, + 0x53, 0xa1, 0x39, 0xb4, 0x07, 0x86, 0x41, 0x6e, 0x00, 0x5f, 0x04, 0x43, 0x1a, 0xc8, 0xba, 0x5a, + 0x6d, 0x25, 0xf5, 0x16, 0xa1, 0x14, 0xe9, 0x54, 0x15, 0xa7, 0xd3, 0x32, 0xec, 0x39, 0x73, 0x2f, + 0x3c, 0xfb, 0xdb, 0x78, 0x0b, 0x61, 0x98, 0xf3, 0xed, 0x30, 0xb5, 0x0a, 0x7e, 0x99, 0xf1, 0x4e, + 0x44, 0x98, 0x69, 0x29, 0x9d, 0xf6, 0x6b, 0x2d, 0x64, 0x92, 0x4e, 0x50, 0x86, 0xa5, 0x38, 0x8f, + 0x84, 0x85, 0xe2, 0x69, 0xd8, 0x3a, 0x5a, 0x0a, 0x69, 0xab, 0x62, 0x65, 0xf9, 0x37, 0x39, 0x7b, + 0xc0, 0x4f, 0xe7, 0x04, 0x09, 0xe7, 0xb4, 0x53, 0x40, 0x2e, 0x77, 0xcf, 0x2a, 0x3f, 0x5c, 0xeb, + 0xc3, 0x78, 0xf3, 0x36, 0x85, 0x51, 0x47, 0xd7, 0x10, 0x5d, 0x52, 0x9b, 0xa2, 0xee, 0xce, 0xb1, + 0xb3, 0x12, 0x5b, 0xb0, 0x55, 0x1b, 0x60, 0x9e, 0x2d, 0xcd, 0xbb, 0x59, 0xf0, 0x31, 0x4b, 0x31, + 0x00, 0xdd, 0x1e, 0xcc, 0x8b, 0x76, 0xf5, 0x12, 0x2d, 0x21, 0xe6, 0xa9, 0x8f, 0x99, 0x51, 0xb3, + 0x44, 0x0c, 0x23, 0x96, 0x9f, 0x7a, 0xf3, 0x80, 0xf3, 0x87, 0xdd, 0x58, 0x76, 0xc6, 0x93, 0x18, + 0xb2, 0xe5, 0x96, 0x88, 0x16, 0x68, 0xcf, 0x0f, 0xfa, 0x8a, 0xc9, 0x82, 0x60, 0xf1, 0xa7, 0xdd, + 0x40, 0x98, 0x35, 0x10, 0x66, 0x22, 0xd8, 0xcb, 0x73, 0xa9, 0x74, 0x82, 0xe8, 0x6f, 0x43, 0x40, + 0xe5, 0xfb, 0xb0, 0x37, 0x56, 0x21, 0x35, 0xb3, 0xbe, 0x8a, 0xa3, 0xcd, 0xd5, 0x61, 0x92, 0x76, + 0x42, 0x1c, 0xd6, 0xc6, 0x1f, 0xfb, 0x26, 0xc2, 0xd5, 0x53, 0x0c, 0x46, 0x47, 0x0c, 0x42, 0x6a, + 0x99, 0xf1, 0x10, 0x1a, 0x62, 0x10, 0xd2, 0x4c, 0x22, 0x62, 0x03, 0x7d, 0x8e, 0x44, 0x08, 0x09, + 0x63, 0xcb, 0xd4, 0xfd, 0xd1, 0xd8, 0x29, 0x0d, 0x84, 0x71, 0x1e, 0xa3, 0xe6, 0x97, 0x9b, 0x34, + 0x47, 0x18, 0x94, 0x21, 0x3a, 0xd7, 0xa1, 0xa5, 0x5b, 0xe6, 0x48, 0x86, 0xa8, 0xfb, 0x24, 0x0e, + 0x69, 0xff, 0x5f, 0x87, 0x65, 0x6c, 0x31, 0x18, 0x93, 0x3b, 0xd4, 0x7b, 0xa2, 0xfe, 0xd4, 0x20, + 0x2f, 0xea, 0x97, 0xab, 0xf7, 0x46, 0xfd, 0xda, 0xa0, 0x6a, 0xf4, 0xb4, 0x43, 0xc7, 0x55, 0x59, + 0x17, 0x57, 0x38, 0x3a, 0xad, 0x7c, 0x26, 0xf4, 0x79, 0xb9, 0xa7, 0xcb, 0x94, 0x17, 0xeb, 0xff, + 0x7f, 0xfd, 0xf9, 0xdf, 0xee, 0xf9, 0xfc, 0x20, 0xeb, 0xf9, 0xcd, 0x4a, 0xcf, 0x6f, 0xff, 0x9f, + 0xef, 0xf9, 0x98, 0xbf, 0xe1, 0x06, 0x7d, 0x3b, 0x75, 0x6c, 0xdf, 0xc6, 0x72, 0x19, 0xb5, 0x29, + 0xd4, 0xf0, 0x54, 0x07, 0xbf, 0x67, 0x05, 0xf6, 0x5e, 0xcf, 0x03, 0x49, 0x9b, 0x1a, 0x20, 0x38, + 0x18, 0x9e, 0x86, 0xd4, 0xa1, 0xb4, 0xca, 0x96, 0x5b, 0x57, 0x20, 0xde, 0xbb, 0x27, 0xbb, 0x33, + 0x9e, 0xb4, 0x73, 0x55, 0x0e, 0xd9, 0x12, 0x26, 0x52, 0xd6, 0xf4, 0x1a, 0x90, 0xfb, 0x25, 0xd9, + 0x12, 0x7b, 0xf3, 0xb5, 0x92, 0x4f, 0x1f, 0x07, 0xdf, 0x62, 0xa5, 0x67, 0xa6, 0xc9, 0xb0, 0xde, + 0xa8, 0x4f, 0x1a, 0x1c, 0x74, 0xc2, 0x7f, 0xd5, 0xd3, 0x58, 0xe3, 0x29, 0xd4, 0x27, 0xd1, 0x3f, + 0x20, 0xa7, 0x9d, 0x88, 0xfd, 0x11, 0x69, 0x2f, 0xdc, 0xdb, 0x1d, 0xbb, 0x25, 0x0c, 0xf1, 0xb7, + 0x00, 0xeb, 0x12, 0xda, 0x38, 0x30, 0xd9, 0x0d, 0x21, 0xc4, 0xd8, 0xf2, 0xda, 0xe0, 0x72, 0x7e, + 0x6f, 0x77, 0x5d, 0x03, 0xeb, 0x3d, 0x0b, 0xa8, 0xa7, 0x5a, 0xc1, 0xb7, 0x72, 0x72, 0x99, 0x8c, + 0xc5, 0xaf, 0xee, 0xa1, 0x0c, 0x4b, 0x03, 0x16, 0xcd, 0xc1, 0x18, 0xfe, 0x7e, 0x37, 0xed, 0x05, + 0x2d, 0xd4, 0x5c, 0x87, 0x41, 0x2a, 0x55, 0xce, 0xdf, 0xff, 0x73, 0x71, 0xf9, 0x20, 0xad, 0x1b, + 0x3a, 0xa0, 0x01, 0xa9, 0x8e, 0x60, 0x99, 0xbe, 0x0c, 0xb2, 0x68, 0xdc, 0x2a, 0x4d, 0x1c, 0xb7, + 0x58, 0x9b, 0x25, 0x94, 0x24, 0x56, 0xd0, 0xdd, 0x6f, 0x69, 0xd3, 0x62, 0xfc, 0x6b, 0x30, 0xec, + 0x0c, 0x6a, 0x6f, 0xdc, 0xf3, 0x5e, 0xbe, 0xbe, 0xe7, 0xc5, 0x6a, 0x4f, 0x3d, 0x86, 0x7a, 0x8e, + 0x27, 0x12, 0x80, 0x6b, 0xbf, 0xfc, 0xfb, 0x7b, 0x63, 0x02, 0x85, 0xc3, 0xb5, 0x66, 0x71, 0x3e, + 0xd1, 0xf6, 0x7f, 0xa5, 0xaf, 0x5c, 0x7e, 0x23, 0x21, 0x27, 0x1d, 0xea, 0xe0, 0x28, 0x73, 0x13, + 0xa7, 0x12, 0xf5, 0xd4, 0xfb, 0xc6, 0xf7, 0x96, 0xd1, 0xdd, 0x1e, 0x6c, 0x4f, 0x04, 0x4a, 0x52, + 0xdf, 0xef, 0xa4, 0xf1, 0x5b, 0x1a, 0x59, 0xa8, 0x6e, 0x83, 0xb2, 0x92, 0x59, 0xc3, 0x97, 0x4f, + 0xc6, 0x7a, 0xca, 0xe5, 0x56, 0x94, 0xe5, 0xb1, 0x76, 0xf5, 0x19, 0x58, 0xea, 0x63, 0x35, 0xeb, + 0xd9, 0x49, 0xf3, 0x64, 0x76, 0x8b, 0x4a, 0x0f, 0x6a, 0x92, 0xb4, 0xc6, 0x17, 0x22, 0xee, 0x80, + 0xad, 0x4e, 0x78, 0x0f, 0xb1, 0xba, 0xab, 0x8e, 0x84, 0x65, 0x4b, 0xc1, 0x3b, 0xbb, 0x6b, 0x0b, + 0x37, 0xbe, 0x4c, 0x14, 0x41, 0x9c, 0xf2, 0x1f, 0xc1, 0x07, 0xf2, 0xc6, 0x04, 0x3c, 0x62, 0x29, + 0x96, 0xe2, 0xb3, 0x23, 0xc3, 0x2f, 0xbc, 0x5c, 0x4b, 0xd6, 0x4f, 0xff, 0x01, 0xac, 0x4a, 0x4e, + 0x71, 0x3e, 0xe1, 0xe3, 0xbf, 0x82, 0xd5, 0xcf, 0xda, 0xe5, 0x9c, 0x82, 0x6a, 0x99, 0x07, 0x8d, + 0x62, 0x15, 0x5d, 0xc9, 0xe8, 0x4a, 0xc0, 0x6a, 0x91, 0x3c, 0x07, 0x47, 0x7a, 0x55, 0x26, 0xca, + 0xea, 0xec, 0x9c, 0xee, 0x6e, 0x79, 0x9e, 0xfe, 0x92, 0x11, 0x65, 0x34, 0xe5, 0xbe, 0x98, 0xb3, + 0xcc, 0x92, 0xd4, 0x49, 0x9a, 0x7b, 0x22, 0xf9, 0x0c, 0xdd, 0x47, 0xd9, 0x99, 0x76, 0x94, 0xdd, + 0x82, 0x16, 0xc4, 0xb3, 0x3a, 0xa0, 0x65, 0x73, 0x2d, 0xe1, 0x40, 0x06, 0xdb, 0x49, 0x91, 0xc3, + 0x6c, 0x6c, 0xa2, 0x34, 0x1a, 0x93, 0xde, 0x30, 0x55, 0x57, 0x1d, 0xc0, 0xd3, 0x24, 0xb7, 0xee, + 0xea, 0xaa, 0xd3, 0x3c, 0x1e, 0x3d, 0xda, 0x25, 0xf2, 0x46, 0xda, 0x8b, 0x41, 0x67, 0x01, 0xa6, + 0xcb, 0x32, 0xf1, 0x64, 0x27, 0xb6, 0x88, 0x93, 0xd5, 0x94, 0xf8, 0x15, 0xdd, 0xc6, 0x58, 0x66, + 0x46, 0xca, 0xff, 0x70, 0x1b, 0x8d, 0x33, 0xc0, 0x8d, 0xf2, 0x2c, 0x59, 0x42, 0x7d, 0x20, 0x2a, + 0x96, 0xc5, 0x78, 0x5b, 0x26, 0x8f, 0x14, 0x21, 0xc7, 0xde, 0xfe, 0x9b, 0x71, 0x3d, 0xd2, 0xc4, + 0xbd, 0x1a, 0xeb, 0x91, 0xaf, 0x50, 0x8f, 0x2c, 0x48, 0xec, 0x91, 0x11, 0xec, 0x1b, 0x91, 0x5d, + 0x91, 0xba, 0xdd, 0xa2, 0x3a, 0x38, 0x22, 0x9f, 0x14, 0xd3, 0x65, 0xa3, 0x34, 0x9f, 0x62, 0x4b, + 0x46, 0xac, 0xe8, 0x64, 0x6c, 0x70, 0x86, 0x51, 0x6c, 0x70, 0x19, 0x9e, 0xed, 0x64, 0xdb, 0x94, + 0x4b, 0xc5, 0xb7, 0x91, 0x59, 0xd2, 0xde, 0x0e, 0xe9, 0xf8, 0xd0, 0xf9, 0xe1, 0xcc, 0x20, 0x8f, + 0x75, 0xb6, 0x22, 0x4d, 0xa5, 0x4f, 0xa6, 0xbd, 0x59, 0x7a, 0xc2, 0x59, 0xa3, 0xc6, 0x45, 0xbd, + 0x3d, 0x93, 0xdc, 0x01, 0x75, 0xc8, 0x82, 0xad, 0xf7, 0x43, 0xa4, 0x2c, 0x35, 0x93, 0x75, 0xd9, + 0x6a, 0x90, 0xf3, 0x57, 0x84, 0xaf, 0xe6, 0x03, 0xa2, 0x6e, 0xd4, 0xf7, 0x10, 0xad, 0x51, 0xeb, + 0x08, 0x83, 0x98, 0x9b, 0x49, 0x6e, 0xe7, 0x5a, 0x92, 0x1d, 0x2c, 0x83, 0x94, 0x5b, 0x21, 0xd6, + 0xc1, 0x53, 0xd5, 0x2d, 0xd7, 0x82, 0x8d, 0xbb, 0xe8, 0x3f, 0x7c, 0xf5, 0x61, 0x49, 0x92, 0xe8, + 0xa4, 0x30, 0x3b, 0x0f, 0xe6, 0x94, 0xe5, 0x4c, 0x4c, 0x13, 0x25, 0x2e, 0x88, 0xff, 0x5e, 0x7b, + 0xf3, 0x35, 0xa1, 0xfc, 0x30, 0xf2, 0xc7, 0x6e, 0x2b, 0x3b, 0x17, 0x49, 0x52, 0xc1, 0xf2, 0x99, + 0x34, 0xd6, 0x58, 0xed, 0xdf, 0x7c, 0x1c, 0xd0, 0xb7, 0x1a, 0x43, 0xd5, 0xf8, 0x5e, 0x87, 0x6f, + 0x0d, 0xbe, 0x97, 0xd1, 0xbe, 0x06, 0x7c, 0xe6, 0x51, 0x3f, 0x09, 0x52, 0xfc, 0x36, 0xe2, 0x5c, + 0x34, 0x46, 0xe2, 0x53, 0xc6, 0x76, 0x48, 0x12, 0x35, 0x8d, 0x18, 0x7f, 0x60, 0xa2, 0xf3, 0xfe, + 0x2d, 0x8a, 0x7d, 0xb5, 0x6c, 0x61, 0x91, 0x7c, 0xef, 0x5c, 0x20, 0x0d, 0xc7, 0xa2, 0x6d, 0x90, + 0xe9, 0x4f, 0xbd, 0x0b, 0x75, 0x5d, 0xd4, 0xd4, 0xc9, 0xee, 0xca, 0x88, 0xfc, 0x50, 0x6c, 0xd2, + 0x94, 0x59, 0x3c, 0x23, 0xea, 0xbc, 0xd9, 0x6c, 0x3f, 0xe1, 0xa4, 0x6f, 0x14, 0x67, 0xec, 0xa6, + 0xf4, 0xcc, 0xfa, 0xa7, 0x63, 0xa0, 0x05, 0x52, 0xa7, 0x39, 0x32, 0x76, 0x05, 0xc7, 0xa5, 0x64, + 0xa9, 0x4c, 0xf1, 0x72, 0x04, 0x96, 0xff, 0x6a, 0xfc, 0xd5, 0xc1, 0x72, 0xfc, 0xd5, 0xc3, 0xba, + 0xbb, 0x68, 0x8e, 0x76, 0x59, 0x62, 0x3a, 0xda, 0x53, 0x65, 0x20, 0xfb, 0x73, 0x34, 0x53, 0xcd, + 0x2d, 0x88, 0x9a, 0xf8, 0x33, 0x6b, 0x82, 0xf7, 0x0e, 0x46, 0xce, 0x77, 0x0f, 0x76, 0x9a, 0x1d, + 0x7f, 0x7c, 0x59, 0xd9, 0xcf, 0xb8, 0x58, 0x86, 0xc4, 0xaf, 0x2d, 0x3e, 0x0f, 0x29, 0x6c, 0x2e, + 0x65, 0x0a, 0x64, 0xb6, 0x71, 0xbb, 0xc3, 0x01, 0x7d, 0x06, 0xf6, 0x25, 0x7c, 0xa7, 0x7b, 0xc2, + 0xfe, 0x9a, 0x8d, 0x07, 0xc4, 0x05, 0x9e, 0x67, 0xa0, 0x21, 0xe0, 0xb5, 0x77, 0x40, 0xb2, 0xe8, + 0x33, 0x2e, 0x56, 0xa8, 0xc4, 0x85, 0x1c, 0x47, 0x1f, 0x48, 0xc6, 0xd0, 0x74, 0xe4, 0x33, 0xe9, + 0xec, 0x44, 0x7e, 0x9a, 0x09, 0xf5, 0x3a, 0x46, 0x4f, 0x1a, 0x5f, 0xb7, 0xe7, 0x0e, 0xff, 0x30, + 0xfa, 0x8d, 0x89, 0x7e, 0x4c, 0x63, 0x0d, 0xa4, 0x56, 0x77, 0x8b, 0x94, 0x4e, 0x23, 0xa7, 0x09, + 0xde, 0xdc, 0xfb, 0x0c, 0xe4, 0xfa, 0x35, 0xf8, 0xeb, 0x0d, 0x68, 0x8a, 0x2f, 0x1e, 0x48, 0x12, + 0xb3, 0x05, 0xae, 0x4d, 0x77, 0x66, 0xdb, 0x50, 0x58, 0xe0, 0x10, 0x96, 0x54, 0x72, 0x05, 0x6f, + 0x3f, 0xf1, 0xcc, 0x11, 0x5a, 0x61, 0x06, 0x41, 0x2b, 0xef, 0xfc, 0x22, 0x5b, 0x2d, 0xb4, 0x6f, + 0x0c, 0x79, 0xa5, 0x59, 0xa6, 0xe1, 0x94, 0xbe, 0x51, 0x1a, 0x4e, 0xd9, 0x11, 0x4c, 0xea, 0x8d, + 0x36, 0x41, 0xca, 0xd3, 0x1e, 0xfa, 0xfd, 0x39, 0x59, 0xa5, 0x0a, 0x64, 0x7b, 0x36, 0xfb, 0x35, + 0xe8, 0x52, 0xfb, 0xd3, 0xc8, 0x72, 0x3e, 0x49, 0x15, 0xfc, 0x13, 0xfe, 0x34, 0x66, 0x69, 0x42, + 0x77, 0xf7, 0x8f, 0xe1, 0xd4, 0x66, 0x01, 0x32, 0x45, 0x48, 0x09, 0x92, 0x6d, 0xab, 0x00, 0x68, + 0x4c, 0xc6, 0x35, 0xd8, 0xdf, 0x4c, 0xd8, 0x63, 0x4d, 0x6d, 0x96, 0xdd, 0x34, 0xa7, 0x7d, 0x80, + 0x49, 0x1d, 0x99, 0xe8, 0x4a, 0x4e, 0xa4, 0x6a, 0xa2, 0x61, 0xa4, 0xce, 0x74, 0xa4, 0x55, 0xed, + 0xad, 0x7b, 0xe0, 0xce, 0x6e, 0x90, 0x5d, 0xd2, 0x9a, 0x6e, 0x4e, 0x09, 0xd3, 0x76, 0xf3, 0xe5, + 0x67, 0x41, 0x35, 0xb9, 0x82, 0xc5, 0x62, 0xda, 0x2f, 0xc3, 0x7f, 0x88, 0xbe, 0x3b, 0xa7, 0x1d, + 0x00, 0xf9, 0xdd, 0xad, 0x56, 0xde, 0x49, 0xca, 0x5b, 0xa3, 0xbc, 0x27, 0x90, 0x1d, 0x9b, 0xc9, + 0xe5, 0x90, 0x4e, 0x27, 0x11, 0x89, 0xde, 0x43, 0x13, 0x77, 0xca, 0x6d, 0xc5, 0xed, 0x46, 0xed, + 0xa2, 0x29, 0x79, 0x77, 0xb8, 0x29, 0x59, 0xa4, 0x75, 0x3c, 0x4d, 0x50, 0x8d, 0x1a, 0x2b, 0xa4, + 0x85, 0x95, 0x92, 0xb9, 0xee, 0x89, 0xc5, 0x67, 0x21, 0x19, 0xb9, 0x7d, 0x7a, 0xf0, 0x87, 0x34, + 0x6f, 0xfd, 0x47, 0xcc, 0xc1, 0xb3, 0x91, 0xf6, 0x40, 0x63, 0xcb, 0x5a, 0x03, 0xea, 0x36, 0x1e, + 0xe3, 0xab, 0x06, 0x55, 0xe8, 0xd3, 0xfb, 0xd5, 0x4e, 0x15, 0x6a, 0x9c, 0xea, 0xa3, 0xf4, 0x2d, + 0x1b, 0x7d, 0x74, 0x53, 0xa9, 0xf6, 0x28, 0x87, 0x3e, 0xa3, 0xe2, 0xd3, 0x1f, 0xe5, 0x32, 0x3b, + 0x11, 0x1a, 0x35, 0x41, 0x63, 0xc6, 0x32, 0x2c, 0x58, 0x9f, 0xdb, 0x9f, 0x85, 0x09, 0x8f, 0x03, + 0x86, 0x26, 0x8d, 0x0b, 0xd5, 0xb0, 0x50, 0xcd, 0xb8, 0xd0, 0x24, 0x16, 0x3a, 0x61, 0x5c, 0xa8, + 0x9a, 0x85, 0x5e, 0x5f, 0xcb, 0xd4, 0xb6, 0x2f, 0xad, 0x23, 0xc6, 0x9f, 0x38, 0x2e, 0x97, 0x9b, + 0x59, 0x2e, 0xc9, 0x4a, 0x28, 0xb3, 0xad, 0x16, 0x30, 0xe3, 0x37, 0xed, 0x1d, 0x3b, 0xe0, 0x6b, + 0xec, 0x5b, 0xca, 0xb8, 0x14, 0x19, 0x8f, 0x03, 0x62, 0x48, 0x47, 0x18, 0xa2, 0x99, 0x09, 0x1c, + 0x55, 0xac, 0x81, 0x2c, 0xe4, 0x2e, 0xe9, 0xec, 0xc4, 0xa9, 0xc2, 0xeb, 0xe5, 0x56, 0xa6, 0x76, + 0x43, 0xae, 0x20, 0x04, 0x4b, 0x91, 0x47, 0x90, 0xf5, 0x85, 0xdd, 0x08, 0x65, 0xee, 0xfd, 0xe1, + 0x90, 0xee, 0xfd, 0x6d, 0x06, 0x26, 0xcd, 0x69, 0x41, 0x81, 0x96, 0x6e, 0x67, 0x88, 0xee, 0x0e, + 0x37, 0x66, 0x63, 0x1b, 0x25, 0xe1, 0x3b, 0x13, 0xdf, 0x9a, 0xdd, 0xe1, 0xb9, 0xaf, 0xb8, 0x3b, + 0x91, 0xee, 0xf9, 0x0d, 0xaf, 0x98, 0xb4, 0xa2, 0x86, 0x6e, 0xd7, 0x6d, 0xe3, 0x3e, 0x5e, 0xb3, + 0x32, 0xc2, 0xec, 0xc6, 0xa8, 0x83, 0xc2, 0x4a, 0x3a, 0xad, 0x74, 0xa7, 0xbc, 0x2f, 0x70, 0x46, + 0x7a, 0xe5, 0x7a, 0x8c, 0x7b, 0xe7, 0xe1, 0x57, 0x64, 0x7e, 0xba, 0x91, 0x2c, 0x25, 0x26, 0x97, + 0x0f, 0x9f, 0xef, 0x61, 0x73, 0xc2, 0xcc, 0xd2, 0x0c, 0x72, 0xb9, 0x1c, 0xba, 0x06, 0x91, 0xc6, + 0x5a, 0x01, 0x5d, 0x8a, 0xfd, 0x71, 0xe6, 0x67, 0xbc, 0x2b, 0x81, 0xdf, 0xc6, 0x6a, 0xd0, 0x56, + 0x8a, 0x10, 0xd2, 0x0c, 0xd7, 0x09, 0xa5, 0xbe, 0x34, 0xae, 0xbf, 0x81, 0xf0, 0xa6, 0xcf, 0x1a, + 0xfe, 0x24, 0xab, 0x9c, 0xcd, 0xb6, 0x88, 0x22, 0xcd, 0xa3, 0xa3, 0x2e, 0xaa, 0xf3, 0xe7, 0x31, + 0x8c, 0x64, 0xa3, 0x76, 0x9a, 0xb9, 0x29, 0x6c, 0xe3, 0x70, 0x8c, 0xa7, 0x1b, 0x8b, 0x09, 0x2f, + 0x5b, 0x62, 0x39, 0xd2, 0xee, 0x53, 0x4a, 0x5f, 0xb3, 0x1e, 0xfb, 0x87, 0x2e, 0x50, 0x40, 0x69, + 0x29, 0x6f, 0xeb, 0x22, 0xd0, 0x23, 0x1d, 0xd2, 0xc9, 0x5a, 0xed, 0x2d, 0xbb, 0x1f, 0x07, 0x59, + 0x1f, 0x61, 0xba, 0x0e, 0x85, 0x65, 0x1b, 0xcc, 0x90, 0x4e, 0x12, 0x9e, 0x24, 0x61, 0x49, 0x42, + 0xed, 0xda, 0x38, 0xfe, 0x8d, 0x94, 0x03, 0x96, 0x98, 0x3d, 0xae, 0xc4, 0x31, 0x2d, 0xc1, 0x66, + 0xa2, 0x2c, 0x20, 0xf4, 0xd2, 0x3c, 0x52, 0x1a, 0xb5, 0x4b, 0xa8, 0x9c, 0xf0, 0x84, 0x78, 0x2d, + 0x9f, 0x5c, 0x02, 0xea, 0x60, 0x79, 0xaf, 0x5c, 0xcf, 0x23, 0x4a, 0xbe, 0xd9, 0x01, 0x9a, 0xd1, + 0x66, 0xf5, 0xfc, 0x38, 0x4f, 0xae, 0x67, 0xbc, 0x96, 0xd3, 0xe3, 0x65, 0xff, 0x23, 0x35, 0xb5, + 0xe3, 0xa8, 0xcc, 0x6a, 0x42, 0x5c, 0x3a, 0xcd, 0x5e, 0x00, 0xbe, 0x4e, 0x2c, 0x99, 0xa4, 0xb7, + 0x74, 0x56, 0xe7, 0x88, 0x12, 0x92, 0xee, 0xe1, 0xfc, 0x5b, 0xe4, 0xd6, 0xfe, 0xc7, 0xea, 0xe8, + 0xe9, 0x54, 0x6a, 0xf6, 0x7d, 0xa5, 0x66, 0xdf, 0x67, 0x35, 0xfb, 0xbe, 0x52, 0xb3, 0x37, 0x94, + 0xdc, 0x70, 0x9c, 0x86, 0x3d, 0x72, 0xcd, 0xce, 0xd7, 0xfc, 0x8f, 0xd7, 0xcc, 0xf8, 0xff, 0x51, + 0xcd, 0x52, 0x43, 0x01, 0xa5, 0x56, 0x01, 0x56, 0xab, 0x00, 0xab, 0x55, 0x63, 0x3c, 0x9f, 0xf9, + 0x04, 0x4f, 0x75, 0x98, 0xe0, 0x59, 0xa8, 0x45, 0xf8, 0xfa, 0x3f, 0xea, 0xa8, 0x59, 0x4f, 0x61, + 0x06, 0xa8, 0x8e, 0x50, 0xdd, 0x6a, 0x1d, 0x0c, 0x96, 0xed, 0xf0, 0x4d, 0x59, 0x23, 0x50, 0x60, + 0xdb, 0x0e, 0x79, 0x6c, 0x66, 0x2c, 0x7d, 0x3c, 0x97, 0x96, 0xfb, 0x91, 0x7c, 0x2a, 0xbf, 0xed, + 0x87, 0x54, 0x26, 0xf6, 0xa2, 0x74, 0xba, 0x63, 0x1c, 0xf3, 0x16, 0x6a, 0xd6, 0x33, 0xab, 0x86, + 0x59, 0xcc, 0x9e, 0xac, 0x49, 0x84, 0xa4, 0x06, 0x36, 0x5a, 0x24, 0xf7, 0x45, 0x9b, 0x34, 0x34, + 0x4a, 0x8c, 0x19, 0x37, 0xd2, 0xe9, 0x5b, 0x20, 0x95, 0x8d, 0x1b, 0x56, 0x94, 0x8b, 0xbe, 0xc0, + 0xf8, 0x0e, 0x16, 0x3f, 0x83, 0x49, 0xe3, 0x7a, 0xd2, 0x56, 0x93, 0xcc, 0x72, 0xec, 0x00, 0xa8, + 0xf3, 0x31, 0xed, 0xca, 0x36, 0x9e, 0xc6, 0x11, 0xd8, 0x33, 0x7b, 0xf8, 0xa3, 0x8c, 0x59, 0x4c, + 0x96, 0x2f, 0x1f, 0x3e, 0xb7, 0x8d, 0xc5, 0x27, 0x49, 0x7e, 0x6b, 0xa2, 0x24, 0xcf, 0x1f, 0x12, + 0x41, 0x65, 0x88, 0x69, 0x4d, 0xa3, 0x33, 0x7e, 0xff, 0xd8, 0x6c, 0x04, 0x7e, 0x7b, 0xbc, 0xaa, + 0x9b, 0x34, 0xa1, 0xd1, 0xb9, 0x91, 0x17, 0x06, 0xfc, 0x6b, 0xbf, 0x62, 0x66, 0xe4, 0xb1, 0xb8, + 0xac, 0xbd, 0x65, 0x8c, 0xcc, 0x3e, 0x4f, 0x04, 0x7e, 0x13, 0x9d, 0xaa, 0x47, 0xd8, 0x36, 0xcd, + 0x1a, 0x3e, 0x57, 0x8d, 0x72, 0xe9, 0xb7, 0x49, 0x13, 0xa5, 0x79, 0xa1, 0xf2, 0x4f, 0xb5, 0x50, + 0x7e, 0x7e, 0xe2, 0x4a, 0xa6, 0xc1, 0x73, 0xa8, 0xc1, 0x4f, 0xa2, 0x9c, 0x12, 0xf4, 0x77, 0x4e, + 0xd1, 0xdf, 0x2b, 0xd9, 0x5a, 0xd6, 0x45, 0xaa, 0x17, 0xcd, 0x1c, 0x21, 0x46, 0x22, 0x75, 0xb4, + 0x1b, 0x01, 0xcb, 0xdc, 0x29, 0x4b, 0xe3, 0xfb, 0xac, 0x58, 0xdf, 0xe2, 0xcb, 0x8f, 0x4b, 0x24, + 0x23, 0x67, 0xa0, 0x5c, 0xcc, 0xe6, 0xde, 0x77, 0xc8, 0xf6, 0xc0, 0x19, 0xfe, 0x9e, 0x62, 0x6e, + 0x15, 0x73, 0x6f, 0x29, 0xf9, 0x90, 0xe3, 0x4d, 0xa9, 0x47, 0x57, 0xcd, 0xed, 0x46, 0xde, 0xce, + 0x59, 0x91, 0x7d, 0x66, 0x62, 0x9a, 0xbe, 0xb0, 0xdf, 0x8f, 0x7e, 0x9e, 0xf9, 0x78, 0xf4, 0xd5, + 0xa0, 0x4f, 0xc5, 0x7c, 0x2a, 0xf4, 0x79, 0x68, 0x04, 0x63, 0x3e, 0x35, 0xfa, 0x8a, 0x68, 0xe4, + 0x62, 0xbe, 0x24, 0xf4, 0xe5, 0xd2, 0x88, 0xc5, 0x7c, 0x1a, 0xf4, 0x09, 0x34, 0x52, 0x31, 0xdf, + 0x04, 0xf4, 0xa5, 0x55, 0x76, 0x1b, 0xa8, 0x84, 0x5c, 0xd0, 0xa2, 0x8f, 0xf6, 0xb9, 0xad, 0xde, + 0xfc, 0x0a, 0x41, 0x80, 0x63, 0xca, 0x82, 0x9d, 0xab, 0xea, 0xe8, 0x1c, 0x17, 0xd5, 0x6b, 0x41, + 0x6c, 0x5e, 0x80, 0xd5, 0xaf, 0xe1, 0x01, 0x6e, 0x30, 0x3c, 0x0d, 0xc7, 0xe2, 0x1b, 0xe9, 0xb0, + 0xb2, 0x86, 0x5b, 0xcc, 0xe6, 0x43, 0xd2, 0xec, 0x63, 0x67, 0xec, 0xc6, 0xea, 0xb7, 0xbe, 0xea, + 0xb8, 0x86, 0x3b, 0xaa, 0x37, 0x2d, 0xd8, 0x8c, 0x6d, 0xfb, 0xa6, 0x2c, 0xc3, 0x2e, 0x10, 0x2b, + 0x49, 0x6f, 0xa6, 0x96, 0xfe, 0x2f, 0xeb, 0xce, 0x4a, 0xce, 0x71, 0xdd, 0x99, 0xce, 0xd3, 0x59, + 0xff, 0x86, 0xee, 0x3c, 0x4e, 0x43, 0xfb, 0xe0, 0xe8, 0x18, 0x0d, 0xfa, 0x13, 0x71, 0xde, 0x7f, + 0x55, 0xd7, 0xfb, 0x60, 0x6d, 0xe2, 0x6c, 0x13, 0xeb, 0x83, 0x34, 0xdb, 0x94, 0xd7, 0xa6, 0xde, + 0x2d, 0xeb, 0xcf, 0x66, 0xd4, 0xf4, 0x8c, 0x41, 0x4e, 0x14, 0x98, 0x0e, 0x00, 0x47, 0xc2, 0x83, + 0x91, 0x41, 0x66, 0x4d, 0x88, 0xe9, 0x00, 0xf9, 0x64, 0x9b, 0x43, 0xa8, 0x24, 0x9b, 0x72, 0x06, + 0x98, 0x13, 0xc1, 0x91, 0x39, 0x52, 0xaf, 0xa7, 0x3d, 0xc5, 0xfc, 0x13, 0xb2, 0x76, 0x12, 0xd0, + 0x88, 0x74, 0xfe, 0x4c, 0xb1, 0x66, 0xca, 0xd1, 0xea, 0x63, 0x94, 0xa4, 0x60, 0xa4, 0xab, 0x2e, + 0x2c, 0x41, 0x27, 0x43, 0xb4, 0x70, 0x5d, 0xcd, 0x7a, 0xac, 0x03, 0x4a, 0x94, 0x81, 0x6a, 0x99, + 0xa3, 0x28, 0xda, 0x8a, 0x6c, 0x19, 0x4a, 0x85, 0x50, 0x15, 0xfd, 0xfd, 0xda, 0x0a, 0xe3, 0x7d, + 0xd4, 0xcb, 0xb5, 0x31, 0xcd, 0x83, 0xb8, 0xcf, 0x99, 0x5f, 0x28, 0xdc, 0x27, 0xb9, 0x55, 0x22, + 0x89, 0x13, 0x21, 0x39, 0xcf, 0x6a, 0x09, 0x70, 0x8a, 0xf4, 0xaa, 0x16, 0x1c, 0xad, 0x0d, 0xc8, + 0x43, 0x5b, 0xf9, 0x5d, 0x04, 0x1d, 0xad, 0x83, 0x28, 0x7c, 0x58, 0x0b, 0xca, 0x5c, 0x6b, 0x9c, + 0xf7, 0x65, 0x8e, 0xf5, 0x4f, 0x1b, 0xe7, 0xb7, 0x8f, 0xf3, 0xa7, 0x8c, 0xf3, 0x27, 0x8f, 0xf3, + 0x4f, 0x1c, 0xe7, 0xd7, 0x66, 0x42, 0x25, 0xe3, 0xb5, 0xa2, 0x81, 0xf6, 0x4f, 0x51, 0xbb, 0x95, + 0x0f, 0x9f, 0xca, 0xb8, 0xb1, 0xfc, 0x41, 0x75, 0x3b, 0xfd, 0x2a, 0xd5, 0xa0, 0x66, 0x7d, 0x8b, + 0xa2, 0x27, 0x12, 0xcf, 0x8d, 0xdb, 0x2a, 0x4b, 0x46, 0xad, 0x74, 0x74, 0x16, 0x84, 0x59, 0xf2, + 0xb0, 0xd3, 0xdd, 0x1c, 0xe9, 0xb4, 0x5b, 0x87, 0x74, 0x76, 0x65, 0x5f, 0xdd, 0x3e, 0xe3, 0xa2, + 0xb8, 0xbe, 0xbe, 0x9b, 0xdd, 0x6f, 0xa3, 0x6e, 0xd5, 0x88, 0xda, 0xe0, 0xc4, 0xde, 0x68, 0x3d, + 0x6a, 0xde, 0x9e, 0xce, 0x26, 0x80, 0x9f, 0x23, 0x9d, 0xd1, 0x7b, 0x6b, 0x22, 0x35, 0x30, 0xcd, + 0x90, 0x51, 0x83, 0xe1, 0x16, 0x92, 0xcc, 0xfc, 0x19, 0x02, 0x3f, 0x18, 0x25, 0x2b, 0xb7, 0xa3, + 0x5f, 0x76, 0x6e, 0x0c, 0x10, 0x8d, 0x69, 0x03, 0xb4, 0xbf, 0x2b, 0xc9, 0xa6, 0xf5, 0xf6, 0xff, + 0xe5, 0x29, 0xb2, 0xb8, 0x17, 0x84, 0x5d, 0x3d, 0x10, 0x0d, 0xcc, 0xc0, 0x16, 0x89, 0x1a, 0x9c, + 0x6f, 0xee, 0xc3, 0x7f, 0x09, 0x1a, 0x26, 0xad, 0x12, 0xa1, 0x86, 0x59, 0x1c, 0xd3, 0x30, 0xf3, + 0x48, 0xc3, 0x2c, 0x86, 0xd5, 0x79, 0xa4, 0x61, 0x16, 0xc3, 0xba, 0x3c, 0xd2, 0x30, 0x8b, 0x61, + 0x19, 0x8e, 0x33, 0x2b, 0x49, 0x83, 0x44, 0xcd, 0x5b, 0x37, 0xba, 0x8e, 0xa6, 0xd4, 0x65, 0x1f, + 0x8d, 0x76, 0x4a, 0x1d, 0x77, 0xd3, 0xad, 0xbd, 0x41, 0x0b, 0xd2, 0x99, 0x5d, 0x5f, 0x04, 0xa5, + 0xf8, 0x36, 0xe3, 0xbb, 0x1c, 0xdf, 0x02, 0xbe, 0xbf, 0x8f, 0xef, 0x4c, 0x7c, 0x07, 0xf0, 0x4d, + 0x33, 0x1e, 0x3f, 0xc4, 0xb7, 0x96, 0x56, 0x6e, 0x70, 0x34, 0x5a, 0x46, 0x67, 0x98, 0x03, 0xa9, + 0xec, 0xbc, 0x9c, 0x19, 0x73, 0x34, 0x12, 0xcd, 0x2b, 0x2b, 0x75, 0xce, 0x2f, 0x09, 0x9f, 0xf1, + 0x25, 0xe1, 0xd3, 0xc7, 0x87, 0xa3, 0x3b, 0x7b, 0xd4, 0x8f, 0x14, 0x9b, 0x5d, 0xb9, 0x3e, 0x88, + 0xa5, 0x63, 0x0f, 0xbc, 0x86, 0x6d, 0xc7, 0x66, 0x15, 0x62, 0xeb, 0x77, 0x45, 0x05, 0x64, 0xbf, + 0x1a, 0xdb, 0x8d, 0xd9, 0x4b, 0xc6, 0x36, 0xb4, 0x92, 0x75, 0x10, 0x33, 0xd9, 0x16, 0x6e, 0x61, + 0xb7, 0xd5, 0x14, 0x29, 0xf7, 0x73, 0x5d, 0xd2, 0xe9, 0x61, 0x1a, 0xf6, 0xb9, 0xf3, 0xcb, 0x0a, + 0xfa, 0x23, 0xf8, 0x3e, 0xa5, 0xcc, 0x44, 0x9c, 0xa0, 0x59, 0x06, 0x9a, 0x81, 0xf0, 0xeb, 0xee, + 0xee, 0x80, 0xd3, 0x0d, 0x7d, 0x20, 0x60, 0x88, 0x99, 0xe6, 0x22, 0xfc, 0x5a, 0x16, 0x72, 0x04, + 0x8c, 0xec, 0x2e, 0x62, 0xbe, 0x4d, 0xe3, 0x89, 0x36, 0x6a, 0x5c, 0xd1, 0x65, 0x20, 0xa6, 0x2d, + 0xbb, 0xb9, 0x3f, 0xda, 0x98, 0x1c, 0xba, 0x38, 0x14, 0xc9, 0xa2, 0xb9, 0x20, 0x7e, 0x19, 0x57, + 0x7c, 0x5e, 0x92, 0x42, 0xda, 0x9d, 0xdd, 0xf5, 0xc0, 0xad, 0x65, 0xa7, 0xab, 0x57, 0x06, 0x27, + 0xf4, 0x46, 0x1b, 0x81, 0x5b, 0x9e, 0x56, 0x04, 0x37, 0xef, 0x44, 0xbd, 0x90, 0x6b, 0x25, 0xaa, + 0xe1, 0x9a, 0x11, 0x97, 0x13, 0x89, 0x6e, 0xb8, 0x3a, 0x4f, 0x17, 0xfe, 0x2e, 0x60, 0x36, 0x63, + 0xc8, 0x55, 0x8d, 0x5f, 0xb4, 0x58, 0x4f, 0xbe, 0x75, 0xa2, 0xbb, 0x3d, 0x63, 0x2f, 0x3b, 0x31, + 0x95, 0x83, 0x78, 0x78, 0x08, 0x04, 0xef, 0x06, 0xe3, 0xe8, 0x1e, 0x0e, 0x3b, 0xca, 0x16, 0xd9, + 0xc6, 0x35, 0x93, 0x4b, 0x21, 0x93, 0xb0, 0x83, 0xd4, 0x92, 0xbb, 0x8c, 0x33, 0x24, 0x9d, 0x7e, + 0xc6, 0x48, 0xb3, 0xf7, 0x96, 0x2a, 0xea, 0x3d, 0x79, 0x82, 0x6e, 0x01, 0x51, 0xbf, 0xd7, 0x90, + 0xf4, 0xde, 0x33, 0x02, 0x85, 0x7b, 0xd8, 0x1c, 0xa9, 0x8f, 0xed, 0x9a, 0x69, 0x84, 0x89, 0xb1, + 0x7b, 0x90, 0x30, 0x6c, 0x2e, 0xed, 0x13, 0x41, 0xde, 0x15, 0x2f, 0x0b, 0xc3, 0xa6, 0xb3, 0x30, + 0x0b, 0x58, 0xc6, 0x84, 0xce, 0x50, 0x42, 0x3d, 0x63, 0x42, 0x9d, 0xce, 0x9e, 0x8c, 0x7e, 0x41, + 0x37, 0x3f, 0xfc, 0xde, 0xb3, 0x93, 0x4b, 0x33, 0x68, 0x5f, 0xa1, 0x91, 0xed, 0x08, 0x48, 0x1a, + 0x13, 0x4b, 0x4b, 0x3c, 0xdf, 0xc8, 0x0d, 0x45, 0x2c, 0xfc, 0xdb, 0x51, 0x84, 0x5d, 0xa7, 0x70, + 0xa6, 0xe9, 0x01, 0x3a, 0xa3, 0x3a, 0x23, 0x90, 0x4c, 0x27, 0x0e, 0x02, 0x6a, 0xda, 0x97, 0x13, + 0xe3, 0x99, 0x4c, 0xda, 0x31, 0x03, 0x93, 0x97, 0xae, 0x15, 0x20, 0x57, 0xcc, 0x5f, 0x36, 0x72, + 0x30, 0xf2, 0x76, 0x18, 0x4b, 0x79, 0xea, 0x48, 0x74, 0x30, 0x82, 0xe3, 0xca, 0x16, 0xa4, 0xf6, + 0xe8, 0x64, 0x17, 0xac, 0xbc, 0xad, 0x03, 0x95, 0x21, 0xa3, 0x6d, 0x16, 0x08, 0xa8, 0xb1, 0x17, + 0x89, 0xf0, 0xf1, 0xba, 0xe0, 0xb0, 0x42, 0x2d, 0x57, 0x29, 0x04, 0x7b, 0x82, 0x0d, 0xf9, 0x83, + 0x8d, 0x74, 0x14, 0xb6, 0x47, 0xb8, 0x1d, 0x6e, 0x66, 0xbb, 0x82, 0x6d, 0x20, 0xd0, 0x83, 0x25, + 0xec, 0xa4, 0xd3, 0xea, 0xcc, 0x76, 0x13, 0xe9, 0xfa, 0xd9, 0x64, 0x69, 0x48, 0xa1, 0x9e, 0x46, + 0x85, 0x5a, 0xea, 0xcc, 0xc8, 0x15, 0x94, 0x7b, 0xee, 0x6a, 0x68, 0x5f, 0x04, 0x8e, 0x23, 0x29, + 0xb3, 0xd8, 0xaa, 0xb1, 0xf7, 0xb1, 0x2f, 0x69, 0xb3, 0x4c, 0xd6, 0x66, 0xb9, 0xd4, 0x66, 0x14, + 0x83, 0xf6, 0xa6, 0x7a, 0x1f, 0x33, 0xae, 0xb9, 0x21, 0x7e, 0xbf, 0x04, 0xeb, 0x0a, 0x46, 0x6f, + 0x80, 0x79, 0x86, 0x67, 0xc4, 0xeb, 0x68, 0xa8, 0xd5, 0x41, 0xb8, 0xa6, 0xf5, 0x54, 0x66, 0xed, + 0x23, 0x8d, 0xe1, 0x56, 0xc7, 0x70, 0xab, 0x21, 0xab, 0x7e, 0x7e, 0x92, 0xbc, 0xfb, 0xbf, 0x38, + 0x47, 0xf7, 0x77, 0xc2, 0xe3, 0x34, 0xa7, 0xca, 0x2c, 0xe1, 0x59, 0xd9, 0x3a, 0xea, 0x63, 0x09, + 0xfe, 0x19, 0x58, 0xda, 0x0c, 0x16, 0xe2, 0x51, 0x42, 0x9c, 0x6c, 0x54, 0xa1, 0x13, 0x5c, 0x42, + 0x2e, 0x4a, 0xc3, 0x18, 0xa2, 0x25, 0x9d, 0xd5, 0xfb, 0x18, 0xd9, 0x2d, 0xa2, 0xbb, 0x8e, 0x36, + 0xec, 0x00, 0x2d, 0xb5, 0x0a, 0xcd, 0xd3, 0x65, 0x3c, 0xde, 0x3a, 0xb2, 0x3f, 0xfc, 0xa7, 0x7d, + 0x93, 0xbd, 0x19, 0x4f, 0x91, 0xf5, 0x97, 0xc1, 0xe8, 0x91, 0xf0, 0xe4, 0xe2, 0x8c, 0x2d, 0xc5, + 0xe7, 0x60, 0xd3, 0x64, 0x77, 0x4a, 0x46, 0xf1, 0xb9, 0x89, 0x2b, 0xf1, 0x6d, 0x28, 0x3e, 0x97, + 0xbc, 0x0c, 0xdf, 0xb9, 0xcc, 0x3a, 0x1d, 0x8c, 0xb6, 0x58, 0x87, 0x5a, 0x9e, 0x95, 0x0a, 0x42, + 0xc9, 0x45, 0x2d, 0x38, 0x17, 0xc3, 0xa6, 0x1a, 0x76, 0x6f, 0xa4, 0xba, 0xdd, 0xff, 0x89, 0xd3, + 0x21, 0x87, 0x4d, 0x5c, 0x59, 0x13, 0x0e, 0xb5, 0x63, 0x6f, 0xbb, 0x18, 0x8b, 0x95, 0xbc, 0x0c, + 0x43, 0x2a, 0x28, 0x64, 0x5a, 0x07, 0x70, 0xea, 0x4d, 0xce, 0x6d, 0x19, 0xdb, 0xf0, 0x79, 0x1a, + 0x9f, 0x1d, 0xf8, 0x3c, 0xc9, 0x78, 0xc6, 0x0c, 0x41, 0x39, 0xb9, 0x47, 0xb7, 0x59, 0x09, 0xdc, + 0x60, 0x84, 0xad, 0x69, 0x5c, 0x7c, 0x1c, 0x0c, 0x8b, 0x53, 0xe6, 0x99, 0xcc, 0xe9, 0x5e, 0xe3, + 0xc4, 0xa1, 0x55, 0x56, 0xe7, 0x9f, 0xf6, 0xcd, 0xfe, 0xf4, 0x2c, 0xcc, 0xc2, 0x70, 0xc4, 0xd4, + 0x93, 0xbb, 0xc3, 0x2d, 0x3e, 0x23, 0xf8, 0xa2, 0xb4, 0x4f, 0xc0, 0xe4, 0xfa, 0xc3, 0xfe, 0x99, + 0x17, 0xfb, 0xc0, 0xfc, 0x50, 0xca, 0x3c, 0xb3, 0xee, 0xd8, 0xda, 0x63, 0x5d, 0x85, 0x79, 0x6e, + 0x66, 0x39, 0x3d, 0xf6, 0xc5, 0x44, 0x5f, 0x52, 0x8e, 0xad, 0x39, 0xd6, 0x55, 0x80, 0x5f, 0xfa, + 0x4a, 0x6b, 0xd3, 0xfd, 0xe9, 0xe5, 0x17, 0x0f, 0x00, 0x7d, 0xcb, 0xb4, 0xa6, 0xcf, 0xed, 0xcb, + 0x49, 0x9f, 0x5b, 0xcb, 0x0b, 0x7c, 0xc1, 0x5c, 0xc2, 0x8d, 0xc9, 0xf9, 0x87, 0x7d, 0xf4, 0xc5, + 0x98, 0x83, 0xe5, 0xa3, 0xfb, 0x0f, 0xaf, 0x4f, 0x5f, 0xb2, 0x0d, 0x0a, 0x52, 0xfa, 0x2a, 0x6a, + 0xcd, 0xfe, 0xd4, 0x99, 0x17, 0xb1, 0x0b, 0x4c, 0x95, 0xd3, 0x2c, 0xcc, 0x3c, 0x12, 0x31, 0x15, + 0xff, 0xe1, 0x65, 0x8a, 0x7d, 0xb7, 0x33, 0x65, 0x9e, 0x01, 0x06, 0xc3, 0xa8, 0xed, 0x83, 0x54, + 0x4b, 0xab, 0xad, 0x87, 0x5f, 0xbe, 0xab, 0x3c, 0x65, 0x1e, 0x9d, 0xa6, 0x63, 0xfb, 0x5b, 0x0e, + 0x29, 0xab, 0x61, 0x75, 0x96, 0x16, 0x58, 0x64, 0x9e, 0x23, 0x34, 0x61, 0x1f, 0xac, 0x44, 0x9e, + 0xaf, 0x73, 0xf6, 0xa4, 0x7b, 0x59, 0x1f, 0xfb, 0x6e, 0xba, 0xcf, 0x54, 0x21, 0x54, 0xb4, 0xa3, + 0xec, 0x2b, 0xda, 0x3d, 0x95, 0xa4, 0x49, 0xa5, 0x7b, 0x69, 0xf4, 0x4d, 0xf7, 0x1e, 0x89, 0x58, + 0x8b, 0xff, 0xf4, 0x32, 0x61, 0x60, 0xaa, 0x23, 0x65, 0xde, 0x6c, 0x94, 0xb7, 0x9d, 0xb9, 0xe9, + 0x73, 0xcd, 0x20, 0xaa, 0x9d, 0x8b, 0x80, 0xf7, 0x85, 0x6b, 0xba, 0x77, 0x85, 0x9b, 0x0f, 0x89, + 0x5e, 0x92, 0xee, 0xd2, 0xbd, 0x21, 0x0e, 0x39, 0x98, 0xc6, 0xd7, 0x25, 0xb8, 0xc8, 0x52, 0xdd, + 0x60, 0xd8, 0xea, 0xf8, 0xd3, 0x00, 0x4b, 0xeb, 0x4e, 0x99, 0x27, 0x68, 0x07, 0xbb, 0x07, 0xc3, + 0xdf, 0x66, 0xf2, 0x28, 0xc9, 0x7f, 0x4e, 0x73, 0xfa, 0xdc, 0xaa, 0x9e, 0x8c, 0xa7, 0x99, 0xfc, + 0x9d, 0x6a, 0x9f, 0xa6, 0xe5, 0xe5, 0x51, 0x7c, 0x63, 0x4f, 0xc6, 0x36, 0x01, 0xcb, 0x27, 0x89, + 0xa8, 0x71, 0x5b, 0x0e, 0x59, 0x65, 0x47, 0x5f, 0x03, 0xef, 0xeb, 0x3c, 0xd9, 0x39, 0x7b, 0x78, + 0xc4, 0x2d, 0xa6, 0xda, 0x54, 0x36, 0x92, 0x91, 0xb6, 0x56, 0x75, 0xca, 0x1a, 0x5d, 0xf3, 0x27, + 0x6d, 0x60, 0x29, 0x82, 0xd3, 0xd5, 0x87, 0x68, 0x8c, 0x25, 0x39, 0xcc, 0xaa, 0x3b, 0xde, 0x8d, + 0x3c, 0xc0, 0x6a, 0x6d, 0x48, 0x59, 0x40, 0x79, 0xd1, 0xa8, 0x4c, 0x92, 0x27, 0x95, 0x3b, 0x79, + 0x51, 0xca, 0xbc, 0x14, 0xb6, 0x52, 0x94, 0xee, 0x65, 0xfd, 0x14, 0xf3, 0x12, 0x4a, 0xe9, 0xee, + 0x4e, 0x16, 0xd7, 0x57, 0x15, 0xa6, 0xd8, 0xb4, 0x3a, 0x46, 0xeb, 0x5b, 0xdf, 0xf0, 0xa6, 0xcc, + 0x63, 0x71, 0x7d, 0xa3, 0x6b, 0x5e, 0xdf, 0xc0, 0xda, 0x94, 0x5c, 0x3e, 0x0b, 0x6f, 0xbe, 0x56, + 0x72, 0xe9, 0x71, 0x90, 0xeb, 0x35, 0xb8, 0xd6, 0xe4, 0xc8, 0xbb, 0xf5, 0xc8, 0xfd, 0xa6, 0xb2, + 0x6f, 0xa1, 0x8e, 0x4a, 0x75, 0x9e, 0x84, 0x78, 0xa2, 0xf2, 0xd2, 0xb0, 0x9e, 0x6c, 0xe6, 0x6d, + 0x42, 0x2d, 0x9f, 0x36, 0xc1, 0xc7, 0x15, 0x7f, 0x6a, 0x86, 0x5b, 0x8a, 0xd3, 0xe7, 0x0a, 0x0e, + 0x3a, 0x9b, 0xf4, 0x4d, 0x7c, 0x26, 0x3b, 0x53, 0x16, 0xf8, 0xa2, 0x31, 0x58, 0x4c, 0xa5, 0xde, + 0xcd, 0x35, 0x9d, 0xb2, 0x95, 0xc6, 0x5e, 0x6c, 0xa1, 0x26, 0x90, 0xc8, 0x1e, 0xb6, 0x55, 0x86, + 0x8d, 0x20, 0x31, 0x58, 0x52, 0x16, 0xc8, 0xf2, 0x26, 0xe5, 0x7f, 0x57, 0x31, 0xd2, 0xd8, 0x1c, + 0x5b, 0x13, 0xdb, 0x0d, 0x86, 0x6d, 0x9b, 0xab, 0xb7, 0x2d, 0x42, 0x77, 0xbe, 0x8d, 0x76, 0xb8, + 0x58, 0xb1, 0x9d, 0xf5, 0x41, 0xc4, 0x37, 0xb6, 0xdb, 0xa2, 0x94, 0xc2, 0xea, 0x70, 0x9b, 0x80, + 0x72, 0xe6, 0x45, 0xa2, 0x12, 0x67, 0x2b, 0xcd, 0xee, 0xa7, 0xfb, 0x7c, 0x9d, 0x56, 0xd5, 0xf1, + 0xce, 0xe3, 0x2b, 0x85, 0xb2, 0xe2, 0xb3, 0x29, 0xf3, 0xac, 0xc9, 0xc7, 0xbb, 0x97, 0x81, 0xcd, + 0x85, 0x3c, 0x6d, 0x16, 0x14, 0x99, 0xca, 0xac, 0x49, 0x16, 0x1e, 0xe9, 0x7e, 0x8b, 0x70, 0x87, + 0x7c, 0x23, 0x40, 0xc9, 0x25, 0x37, 0xb0, 0xdb, 0xf9, 0x78, 0xca, 0x23, 0x2f, 0x3f, 0x93, 0x97, + 0x67, 0x52, 0x84, 0x62, 0x5f, 0x77, 0x7f, 0x77, 0xa3, 0xda, 0xb7, 0x52, 0x28, 0xfd, 0xa6, 0x1b, + 0xe8, 0xbe, 0x18, 0x7b, 0xf3, 0xbc, 0x59, 0x67, 0x93, 0x7e, 0x66, 0xb8, 0xe9, 0xc8, 0xa3, 0xbe, + 0x50, 0x26, 0xd0, 0x6d, 0x3e, 0x4d, 0x69, 0x1b, 0xf0, 0x97, 0x34, 0x37, 0x6b, 0x0b, 0xe4, 0x5b, + 0xda, 0xb4, 0x28, 0x81, 0xfd, 0xf4, 0xf7, 0xad, 0x90, 0x7f, 0x0b, 0xed, 0x9f, 0x39, 0x16, 0xbf, + 0x89, 0xec, 0x30, 0xd2, 0x85, 0xe7, 0x91, 0x40, 0x96, 0x30, 0x93, 0xec, 0xfd, 0xb9, 0x71, 0x54, + 0x72, 0x2f, 0xd5, 0x26, 0x7e, 0xdd, 0xe6, 0x63, 0xab, 0x54, 0x7c, 0x51, 0x0b, 0x48, 0x7e, 0x1c, + 0xe7, 0x69, 0xfc, 0x2f, 0x32, 0x26, 0x59, 0x34, 0xfe, 0xd4, 0xe2, 0x0b, 0xe0, 0x9c, 0x75, 0x01, + 0x44, 0xa7, 0x83, 0xed, 0xe0, 0x73, 0xa2, 0x7c, 0xcc, 0x93, 0x5e, 0x93, 0xf4, 0xb3, 0x23, 0x91, + 0x92, 0x4f, 0x69, 0x2e, 0xd7, 0x52, 0x2e, 0xf2, 0x55, 0xe1, 0xa2, 0xc9, 0x81, 0xe1, 0x5c, 0xd0, + 0x3c, 0x42, 0x5f, 0xde, 0x79, 0xa4, 0xaa, 0xec, 0x9e, 0x95, 0xed, 0x40, 0xf7, 0x0f, 0x24, 0xfd, + 0x7c, 0x30, 0x5c, 0x1d, 0xd2, 0x42, 0x15, 0xc2, 0x3c, 0x67, 0x85, 0x67, 0x45, 0xf3, 0x1b, 0xcb, + 0x80, 0xc9, 0x6e, 0xab, 0xc9, 0xbe, 0x5a, 0x6e, 0x11, 0xb3, 0xcc, 0x3f, 0x9f, 0xdd, 0xe0, 0xf7, + 0xbb, 0x0e, 0x28, 0x32, 0xa7, 0x14, 0x5a, 0x4b, 0xfe, 0xf4, 0xca, 0x9f, 0xde, 0x98, 0xfd, 0x09, + 0xf5, 0x8f, 0xb3, 0x20, 0x16, 0x54, 0x75, 0x5a, 0xfc, 0xbf, 0xbd, 0x80, 0xf5, 0xcf, 0xfd, 0xcf, + 0xdf, 0xff, 0xe7, 0xef, 0x67, 0x5d, 0x3a, 0x06, 0x58, 0x8b, 0xa9, 0x80, 0x32, 0x74, 0x20, 0x0b, + 0x71, 0x77, 0x9b, 0x8d, 0x33, 0xf0, 0x34, 0x47, 0x41, 0x27, 0x25, 0xe4, 0xba, 0x7e, 0x07, 0xa9, + 0xa0, 0x6a, 0xa5, 0x67, 0xa5, 0x7f, 0x7f, 0x55, 0x14, 0xcb, 0x8c, 0xfa, 0x9f, 0x12, 0x51, 0x68, + 0x1f, 0x6c, 0x48, 0x29, 0x1c, 0x74, 0xd8, 0x07, 0xaa, 0x57, 0xff, 0xf6, 0x80, 0xff, 0xd3, 0x8d, + 0x07, 0xc4, 0x19, 0x6c, 0xde, 0x8d, 0xc7, 0x91, 0xc4, 0x4e, 0x34, 0x5a, 0xf2, 0x79, 0xa6, 0x23, + 0xef, 0x96, 0x36, 0x98, 0xce, 0xf9, 0x8a, 0xf3, 0x22, 0x9b, 0x5f, 0x6b, 0x85, 0x10, 0xb7, 0xaf, + 0x33, 0x1a, 0x3d, 0xb9, 0x86, 0xc6, 0x57, 0xdf, 0x2a, 0x03, 0x6c, 0x5a, 0xe5, 0x89, 0x34, 0x9f, + 0x3b, 0xb9, 0x7a, 0x7a, 0xd4, 0xd7, 0x5d, 0xb3, 0xa6, 0xaf, 0xbb, 0x71, 0xaf, 0xb2, 0xb3, 0x2a, + 0x9f, 0xdd, 0xc2, 0x40, 0xf7, 0xab, 0x65, 0xd3, 0x9e, 0x75, 0x2b, 0x4a, 0x4e, 0xcc, 0xf2, 0x17, + 0xe5, 0xad, 0x6d, 0x55, 0xe7, 0x75, 0xc0, 0x04, 0x51, 0xd3, 0xaa, 0xc2, 0xf7, 0x6a, 0x83, 0xc6, + 0xc7, 0xee, 0x05, 0xb8, 0x67, 0x8f, 0x24, 0x65, 0xa2, 0xd6, 0xd4, 0x2e, 0xa1, 0xe4, 0xd3, 0x81, + 0xa5, 0x5a, 0x00, 0xbf, 0xbc, 0xf8, 0x72, 0x8b, 0x7a, 0x77, 0x38, 0xe0, 0xdf, 0x15, 0x69, 0xd1, + 0x33, 0xc9, 0xf6, 0x35, 0xe2, 0xa0, 0x6f, 0x22, 0x07, 0x16, 0xad, 0x98, 0x57, 0x66, 0x5f, 0x38, + 0x90, 0x3a, 0x1a, 0xee, 0xc3, 0x70, 0xdf, 0xa2, 0xe4, 0x7e, 0x51, 0xdf, 0x9a, 0xbc, 0x2b, 0x82, + 0x9c, 0x62, 0x51, 0xf2, 0x5e, 0x51, 0x8d, 0xbf, 0xfb, 0x3c, 0x9d, 0x81, 0x54, 0xa4, 0xcc, 0x74, + 0xb3, 0x8a, 0x95, 0xaa, 0x11, 0xd3, 0xcc, 0x20, 0x97, 0x2f, 0x6a, 0xd1, 0xc5, 0x20, 0x0a, 0x81, + 0x6f, 0x45, 0xcd, 0x6a, 0x41, 0xb5, 0x67, 0x45, 0x63, 0xb8, 0xe2, 0x5d, 0x75, 0x87, 0xbc, 0xce, + 0x2f, 0x90, 0x35, 0x05, 0xa4, 0x26, 0xa4, 0xa8, 0x82, 0x38, 0x7e, 0x34, 0xad, 0xea, 0x10, 0xab, + 0x41, 0x68, 0x69, 0x19, 0xf7, 0xd8, 0x41, 0x06, 0x33, 0xa8, 0xf6, 0x22, 0xd4, 0x39, 0xa0, 0x29, + 0x39, 0x07, 0xdc, 0xce, 0x55, 0x2d, 0x9a, 0xdd, 0x64, 0xb7, 0xe4, 0x17, 0xbb, 0x56, 0xa1, 0x96, + 0xf3, 0xb8, 0x31, 0x59, 0x9e, 0x49, 0xe5, 0xff, 0xf9, 0x48, 0xc4, 0x5c, 0xfc, 0xc7, 0x97, 0x47, + 0x61, 0x2e, 0xf9, 0x30, 0x79, 0x19, 0x0e, 0xf1, 0xf9, 0xdd, 0x60, 0x30, 0x67, 0xec, 0x5e, 0xae, + 0xff, 0x79, 0xd7, 0xde, 0x48, 0xa3, 0x7b, 0x39, 0xcc, 0xb8, 0xc5, 0x3a, 0xe1, 0xfd, 0xe7, 0x0c, + 0x9a, 0x22, 0x73, 0xc6, 0xae, 0xb5, 0xc5, 0xd3, 0xca, 0x32, 0x76, 0xd1, 0xbc, 0xa2, 0x05, 0x7b, + 0xdd, 0x1d, 0x2b, 0x33, 0x01, 0xf5, 0x06, 0xed, 0x6d, 0xdb, 0x32, 0x76, 0x65, 0x72, 0xd5, 0x91, + 0xbb, 0x50, 0x8b, 0x31, 0x2e, 0xca, 0xd8, 0x1d, 0xd2, 0x6f, 0x5a, 0x7d, 0xf2, 0x57, 0xd3, 0x66, + 0x66, 0xec, 0x2a, 0xfd, 0xd4, 0x7d, 0xf1, 0x2e, 0x4f, 0xc6, 0x6e, 0x51, 0x4f, 0xf9, 0xbc, 0xff, + 0xfc, 0xfa, 0x45, 0x19, 0xbb, 0x8e, 0x74, 0xdd, 0x55, 0x9c, 0xb1, 0xfb, 0xfe, 0x83, 0xd2, 0x16, + 0xa7, 0xb3, 0x2a, 0x5a, 0xb7, 0x56, 0x04, 0xfe, 0x14, 0x95, 0x28, 0xdf, 0x68, 0x85, 0x78, 0xec, + 0x30, 0x38, 0x4a, 0x3e, 0xe4, 0xff, 0x99, 0x74, 0x01, 0xec, 0x31, 0xd3, 0xba, 0xa1, 0x5d, 0xff, + 0x78, 0x74, 0x14, 0xce, 0xbe, 0x48, 0x63, 0x19, 0xc2, 0x39, 0x25, 0x79, 0x59, 0xae, 0xfa, 0xfd, + 0xe7, 0xd7, 0x61, 0x8e, 0x54, 0x92, 0x41, 0xd9, 0x01, 0x79, 0xeb, 0x23, 0x99, 0xf2, 0xee, 0xc7, + 0x04, 0x98, 0x0c, 0x32, 0x4c, 0xab, 0x4e, 0x3e, 0x3d, 0xcd, 0x95, 0xb1, 0xab, 0xe4, 0xcf, 0xe6, + 0x8b, 0x77, 0x95, 0x23, 0x4c, 0x19, 0x72, 0x2e, 0xef, 0xef, 0x58, 0x45, 0x50, 0x45, 0x09, 0x2a, + 0x91, 0x37, 0x96, 0xd3, 0xbd, 0x5b, 0xc9, 0x7b, 0x08, 0x22, 0x6c, 0x0b, 0xfd, 0xe6, 0x7d, 0x18, + 0xcb, 0x9c, 0xdc, 0xff, 0xe2, 0xcb, 0x8d, 0x8e, 0xff, 0x66, 0x79, 0xba, 0xc4, 0x92, 0x28, 0xff, + 0xd6, 0xd4, 0x5d, 0x88, 0xe1, 0x07, 0x56, 0x63, 0x89, 0xc9, 0x66, 0xfe, 0xfd, 0x1d, 0xdd, 0x94, + 0xb7, 0x2b, 0x21, 0xef, 0xae, 0x1b, 0xe4, 0x8d, 0xe9, 0x10, 0x1f, 0x91, 0xb3, 0xbf, 0x98, 0xe6, + 0xcc, 0xd8, 0xd5, 0xf1, 0xe9, 0xf1, 0xc8, 0x5d, 0x65, 0x19, 0x74, 0x93, 0xfc, 0x53, 0x0f, 0x78, + 0x28, 0x9f, 0xf7, 0x7b, 0x56, 0x60, 0x2e, 0xd5, 0x11, 0x3a, 0x29, 0x8a, 0xb4, 0xb7, 0x0a, 0xf5, + 0xb5, 0x01, 0x56, 0xa3, 0x01, 0x6c, 0xd1, 0x28, 0xab, 0xcb, 0x5e, 0x6c, 0xd7, 0xeb, 0xea, 0x82, + 0x92, 0x9e, 0xf6, 0x76, 0xac, 0x0b, 0x7b, 0x27, 0x94, 0x67, 0x96, 0xeb, 0xb2, 0x56, 0xae, 0x4b, + 0xf9, 0x25, 0xac, 0x4b, 0xc5, 0x8d, 0xea, 0xd2, 0x71, 0xd3, 0x9e, 0x48, 0xa3, 0x73, 0xce, 0x7f, + 0xa3, 0x2e, 0xad, 0x7f, 0x21, 0x3e, 0xf6, 0x00, 0xe1, 0x7f, 0xa2, 0x5c, 0x8b, 0xb9, 0x11, 0xb2, + 0xd0, 0xc8, 0xa0, 0xdf, 0x1f, 0x87, 0x7e, 0xdf, 0xff, 0x27, 0xd0, 0x4f, 0x44, 0xe8, 0xdd, 0xa5, + 0xe7, 0xa4, 0xcb, 0xff, 0x0d, 0xf8, 0x3f, 0x1f, 0x8a, 0xdc, 0xe5, 0xc4, 0xdc, 0xd3, 0x4b, 0x3e, + 0x94, 0x3e, 0x1b, 0xad, 0xc5, 0x82, 0x08, 0x95, 0x82, 0xfd, 0x5e, 0x87, 0xfd, 0x3e, 0x8d, 0xfa, + 0x7d, 0x48, 0x23, 0xea, 0xa9, 0xd7, 0x53, 0x9f, 0x15, 0x35, 0xd4, 0xeb, 0x43, 0x13, 0x36, 0xbf, + 0x86, 0x7d, 0x7e, 0x8d, 0xb1, 0x5c, 0x50, 0xfd, 0xc7, 0xef, 0x1a, 0xe1, 0xaa, 0x23, 0xb6, 0x67, + 0x41, 0xee, 0xf7, 0xb4, 0xaf, 0xcf, 0x83, 0xf2, 0x5c, 0x00, 0xf8, 0xbe, 0xcd, 0xaf, 0x8d, 0xee, + 0xee, 0xd9, 0x58, 0x59, 0x8e, 0xbf, 0x6b, 0x6b, 0x04, 0x73, 0xc6, 0x53, 0x83, 0xab, 0x96, 0x41, + 0xe1, 0x34, 0x2d, 0xa0, 0x7b, 0x8b, 0x7e, 0x5a, 0x6c, 0x67, 0x8b, 0x6f, 0x95, 0x99, 0xfa, 0xd6, + 0x0a, 0x7f, 0xb3, 0xbc, 0xbf, 0xcc, 0xe4, 0x40, 0xce, 0x8c, 0xbc, 0xa3, 0x55, 0xbf, 0x25, 0x82, + 0x5c, 0xe4, 0xd6, 0x5d, 0x5d, 0x8d, 0x2e, 0x13, 0x7c, 0xb8, 0x7d, 0x25, 0xd5, 0xb7, 0x24, 0x63, + 0x97, 0x91, 0xb0, 0x89, 0xda, 0xae, 0xc9, 0xf5, 0xb5, 0x4e, 0x33, 0x98, 0xc8, 0x55, 0xf2, 0x35, + 0xac, 0xb3, 0x99, 0xab, 0x8e, 0xde, 0xe5, 0xc4, 0xfe, 0x8d, 0xb9, 0xb5, 0xe9, 0xb7, 0x46, 0xcf, + 0x3c, 0x45, 0x6b, 0xaa, 0xa6, 0xe2, 0x99, 0x7f, 0x31, 0x5f, 0xc4, 0x1e, 0xac, 0xfd, 0x70, 0x5b, + 0x04, 0x73, 0x38, 0x16, 0xb9, 0xcb, 0x45, 0xd4, 0xc8, 0x27, 0xd3, 0x0e, 0x1c, 0x2d, 0x98, 0x38, + 0xb6, 0x77, 0x98, 0x3b, 0xda, 0x89, 0xff, 0x56, 0x9b, 0x4a, 0x10, 0x2b, 0x58, 0x76, 0x87, 0xfe, + 0xc9, 0x28, 0x72, 0xa8, 0x5b, 0xf7, 0x74, 0x35, 0x96, 0x59, 0x55, 0x1f, 0x3e, 0xb7, 0x96, 0xca, + 0x46, 0xbe, 0x82, 0xe5, 0xa6, 0xe7, 0x52, 0x89, 0x33, 0xbf, 0xb6, 0xd2, 0x8d, 0xaa, 0x2d, 0xba, + 0xca, 0xa8, 0x6c, 0x37, 0x57, 0xdd, 0x75, 0x97, 0x8b, 0xe0, 0xc2, 0x96, 0xd2, 0x3f, 0xd9, 0x75, + 0xfe, 0x5f, 0x09, 0x52, 0x93, 0x73, 0xe6, 0x5f, 0x90, 0xbb, 0xcc, 0xa2, 0xf6, 0xfc, 0x70, 0xfb, + 0x23, 0x54, 0x7a, 0x94, 0x4a, 0x27, 0x1e, 0x6e, 0xbc, 0x27, 0x13, 0x02, 0xcd, 0x34, 0x6f, 0xb0, + 0xf1, 0xd8, 0x86, 0x17, 0x33, 0x19, 0x47, 0x23, 0xa8, 0x65, 0xc9, 0x6b, 0x37, 0x72, 0x10, 0x13, + 0xbc, 0x1f, 0xaf, 0xb3, 0x21, 0xa1, 0xce, 0x99, 0x09, 0x75, 0x4e, 0x6c, 0x67, 0x4c, 0x1d, 0x51, + 0xea, 0x8c, 0xe5, 0x66, 0x2a, 0xe5, 0xbe, 0xcf, 0x6a, 0x2d, 0xd3, 0x51, 0xd5, 0x0a, 0x1d, 0xdb, + 0x7b, 0x54, 0x9b, 0x3a, 0xf3, 0xaf, 0xca, 0x0e, 0xa2, 0x6f, 0xd6, 0xa0, 0xee, 0x2c, 0x24, 0x7d, + 0xd2, 0x2d, 0xef, 0xf4, 0x33, 0xd1, 0x4e, 0xbf, 0x1c, 0x4e, 0x39, 0x6b, 0x7b, 0xf4, 0x79, 0x1c, + 0xcd, 0x15, 0x8c, 0x28, 0x94, 0xc4, 0xb0, 0x42, 0xfc, 0xcd, 0xac, 0x1a, 0x4b, 0x81, 0x0a, 0x2e, + 0x90, 0x06, 0x15, 0x38, 0x6f, 0x44, 0x85, 0x71, 0xac, 0xc4, 0xa1, 0x63, 0x58, 0x91, 0xa1, 0x63, + 0x77, 0x47, 0xe6, 0x6b, 0x15, 0xac, 0x6c, 0xaa, 0x78, 0xe2, 0x45, 0x46, 0x29, 0xbb, 0x89, 0x0e, + 0x68, 0xcf, 0x14, 0xdd, 0x93, 0xdb, 0x58, 0x66, 0x4c, 0x7a, 0xaf, 0xa7, 0x8b, 0xca, 0x45, 0x7a, + 0xa6, 0x5d, 0xc8, 0x0a, 0x2e, 0xa2, 0xa8, 0x6a, 0x92, 0xcb, 0x49, 0xe5, 0xc6, 0x76, 0x95, 0x2b, + 0xa9, 0xc3, 0xa7, 0xfe, 0x6d, 0x5a, 0xa9, 0x4c, 0x09, 0x5a, 0xa5, 0xdc, 0xf7, 0x9e, 0x5d, 0x83, + 0x79, 0x0c, 0x46, 0xee, 0x72, 0x64, 0xec, 0x7e, 0xf1, 0x6c, 0xc6, 0x93, 0xf5, 0x70, 0x4d, 0xa4, + 0x3b, 0x9a, 0xd5, 0xbc, 0x10, 0xe3, 0xaa, 0x2f, 0x63, 0xbd, 0x2d, 0x6a, 0x78, 0x71, 0xa0, 0xd1, + 0x61, 0xe2, 0xdf, 0x8b, 0xb7, 0x44, 0x6c, 0x1f, 0xfb, 0xad, 0x9d, 0xda, 0x78, 0x6f, 0x8b, 0x95, + 0x47, 0x5c, 0x35, 0xa8, 0xdf, 0xb0, 0xea, 0x04, 0xeb, 0x6d, 0x25, 0x7f, 0xce, 0x54, 0xb8, 0xea, + 0x7b, 0xac, 0x97, 0xc9, 0xa5, 0xd1, 0xd8, 0xae, 0xe6, 0xd1, 0xd5, 0x2b, 0xf7, 0x1f, 0xd2, 0xa8, + 0xa8, 0x4c, 0x3a, 0xff, 0xda, 0x98, 0x1d, 0xcf, 0x7d, 0x5b, 0xc6, 0xaf, 0xc7, 0xe6, 0x2f, 0xa6, + 0x7b, 0xc2, 0x2d, 0xe9, 0x63, 0xbf, 0xfb, 0x58, 0xa9, 0x4e, 0xcc, 0x1b, 0x35, 0xa9, 0xdd, 0x09, + 0x79, 0xe9, 0x51, 0xdf, 0x32, 0x7f, 0x79, 0x5e, 0x63, 0x53, 0xd1, 0xdd, 0x31, 0x8d, 0x86, 0x1b, + 0xe6, 0xec, 0xd0, 0xe3, 0x88, 0x4a, 0x14, 0x75, 0x7f, 0x3c, 0xff, 0x92, 0xb3, 0xb0, 0x09, 0x75, + 0x9a, 0x8c, 0xbb, 0x3a, 0xe0, 0xd4, 0x9a, 0xa7, 0x53, 0x26, 0x95, 0x9c, 0x9d, 0xb8, 0x12, 0xfd, + 0x06, 0xe6, 0xef, 0x4b, 0xb1, 0x94, 0x9c, 0x4d, 0x5e, 0x86, 0xfe, 0x5c, 0xe6, 0x3f, 0x94, 0x32, + 0x3d, 0x56, 0x4e, 0x50, 0x4b, 0x75, 0x16, 0xe1, 0xcf, 0x7b, 0x69, 0x7e, 0x8f, 0x6c, 0xc1, 0xd0, + 0x9e, 0x1c, 0xa3, 0x8d, 0x56, 0xf0, 0x10, 0x62, 0xc8, 0xb3, 0x81, 0xa1, 0xed, 0x26, 0xd4, 0x33, + 0x1c, 0x26, 0x0e, 0xb1, 0xdd, 0x90, 0xb1, 0xeb, 0x1e, 0xc2, 0x76, 0x6c, 0x96, 0xb3, 0x93, 0xd6, + 0x3d, 0xf0, 0xdd, 0x23, 0xd7, 0x80, 0xad, 0xf4, 0x58, 0x18, 0xcd, 0x87, 0xcf, 0xfc, 0xcb, 0x3d, + 0xc5, 0x19, 0xbb, 0x42, 0x7f, 0x61, 0xda, 0x2c, 0x61, 0xfb, 0x99, 0x4e, 0x4c, 0x3d, 0x97, 0xe6, + 0xb8, 0x77, 0x33, 0x2b, 0xcc, 0x3f, 0x6f, 0xd3, 0x4e, 0x2e, 0xc9, 0xe8, 0x8d, 0xe7, 0x85, 0xb4, + 0x92, 0x47, 0x3b, 0xa4, 0xb4, 0xd3, 0xf9, 0x13, 0xb3, 0x30, 0x67, 0x5a, 0xb7, 0xd2, 0x66, 0xf0, + 0x65, 0x2a, 0x74, 0xb3, 0xf0, 0xb2, 0xe2, 0x13, 0xe5, 0xb7, 0x44, 0xb4, 0xaa, 0x1a, 0x56, 0x0e, + 0xea, 0xe5, 0xe9, 0xf1, 0xb4, 0x3f, 0x8d, 0xad, 0x33, 0xb1, 0x93, 0xe3, 0x67, 0xc7, 0xce, 0xe8, + 0xb1, 0x9a, 0xdc, 0x84, 0xd8, 0x74, 0x91, 0xb5, 0x61, 0xb2, 0xf4, 0xd3, 0x45, 0xf5, 0x70, 0x26, + 0xd4, 0x23, 0x7a, 0xe3, 0x7a, 0x30, 0x2a, 0x65, 0xf5, 0x68, 0xfd, 0xcb, 0x50, 0x78, 0x32, 0xf1, + 0xe8, 0xd4, 0x10, 0x9f, 0x58, 0x13, 0x96, 0xf7, 0x44, 0xcc, 0xdb, 0x12, 0xcf, 0xab, 0x87, 0x5a, + 0x6a, 0x7c, 0x6e, 0xce, 0x06, 0xe2, 0xf3, 0x6f, 0xf5, 0x60, 0x0e, 0x9a, 0x05, 0x71, 0x1c, 0x5c, + 0x3b, 0xc3, 0xd2, 0xa7, 0x1c, 0xe9, 0xc9, 0xe8, 0xdd, 0x14, 0xae, 0x59, 0xdf, 0xaa, 0x45, 0x99, + 0x0f, 0x75, 0xe8, 0xff, 0x3f, 0x85, 0xb6, 0xa0, 0x66, 0x7d, 0x70, 0x02, 0xfa, 0x7a, 0xe3, 0xb3, + 0x8a, 0xb4, 0x2f, 0x8e, 0xd9, 0xf7, 0x21, 0x4b, 0x3a, 0xa8, 0x65, 0xd8, 0x3d, 0x3d, 0x10, 0x45, + 0x69, 0xf1, 0x13, 0x83, 0x2f, 0xc8, 0xf7, 0x3e, 0x03, 0x56, 0x7f, 0x8d, 0xe0, 0x09, 0x81, 0x50, + 0xf4, 0x17, 0x69, 0xe0, 0x61, 0x76, 0xbe, 0x5e, 0xe3, 0x59, 0x04, 0x9b, 0xfc, 0x05, 0xbe, 0xc8, + 0xc9, 0xee, 0x9a, 0xee, 0x56, 0x61, 0x57, 0xc4, 0x7f, 0xd6, 0xd3, 0x00, 0xbb, 0xfd, 0x16, 0xfc, + 0xed, 0xf7, 0x1b, 0xf1, 0xf7, 0x55, 0xff, 0x24, 0x59, 0x1f, 0xf3, 0x2c, 0xe2, 0xd2, 0xfc, 0x69, + 0xf2, 0x6c, 0x86, 0x2a, 0xec, 0x3f, 0xef, 0x74, 0xc4, 0x66, 0xa4, 0xbf, 0x81, 0x7a, 0x86, 0xbb, + 0x21, 0x25, 0x83, 0xec, 0x27, 0x5d, 0x74, 0x78, 0x37, 0xa3, 0xdb, 0x40, 0x36, 0x93, 0x6c, 0x96, + 0x94, 0x2c, 0x77, 0x03, 0x6c, 0xb2, 0x25, 0xcf, 0x1a, 0xbe, 0xe4, 0xf4, 0x3e, 0x86, 0x7e, 0x93, + 0xbb, 0x61, 0xe2, 0x4a, 0x5a, 0xf3, 0x42, 0x99, 0xde, 0x8c, 0xf1, 0x72, 0x29, 0x1e, 0xad, 0xea, + 0x6c, 0xfc, 0x43, 0xe5, 0xfa, 0x10, 0xd9, 0xcb, 0x12, 0x48, 0xa7, 0xe1, 0xff, 0x99, 0xf8, 0x9c, + 0x07, 0xb5, 0x1a, 0xbf, 0xb6, 0x2a, 0x42, 0xab, 0x43, 0xfe, 0x53, 0xa4, 0xb1, 0x91, 0x95, 0xd9, + 0xc3, 0xe7, 0x32, 0x9e, 0x2e, 0xbe, 0xf8, 0x78, 0xea, 0x64, 0x77, 0xc6, 0xd3, 0xad, 0xc9, 0x43, + 0xdd, 0x67, 0x56, 0xb7, 0x25, 0x1f, 0x45, 0x0d, 0xeb, 0xcc, 0x9a, 0x5d, 0x9d, 0x75, 0x3a, 0x51, + 0x67, 0x4a, 0x9a, 0xd7, 0x69, 0x54, 0x85, 0xe8, 0x0e, 0x23, 0x95, 0x90, 0x54, 0x13, 0xde, 0x15, + 0xae, 0xcf, 0x62, 0x73, 0x5f, 0xe9, 0x36, 0x35, 0x3b, 0x63, 0x8d, 0xb8, 0xbb, 0xfa, 0x0b, 0x66, + 0xf5, 0x0c, 0x54, 0x3c, 0xb5, 0xc1, 0x32, 0x35, 0xdb, 0x7b, 0xae, 0xd9, 0xd5, 0xe9, 0x07, 0x88, + 0xb2, 0xd6, 0xf6, 0x18, 0xd4, 0xd5, 0x11, 0x59, 0x53, 0xfc, 0x6f, 0xb6, 0x79, 0x46, 0x9e, 0xba, + 0xba, 0x58, 0xce, 0x29, 0xb1, 0xed, 0xe9, 0x64, 0xd2, 0x9a, 0x13, 0xf4, 0xbb, 0x76, 0x90, 0x20, + 0xfa, 0xfc, 0x1d, 0xb6, 0xde, 0x0a, 0x7c, 0x90, 0xf5, 0x6f, 0x8f, 0x51, 0x5d, 0x13, 0x95, 0x4f, + 0x9d, 0x30, 0xbe, 0xfa, 0x8f, 0xf4, 0xf4, 0x5f, 0x10, 0xa4, 0xcb, 0xfe, 0xc2, 0xe6, 0x1b, 0xb1, + 0xfc, 0x7c, 0x75, 0x8d, 0x53, 0xce, 0x09, 0x39, 0x6c, 0xbc, 0x7c, 0x43, 0xb1, 0x6f, 0x95, 0x11, + 0xdb, 0x43, 0x68, 0x48, 0xc9, 0x62, 0x29, 0x53, 0xb0, 0x54, 0xaf, 0x49, 0x4b, 0xe7, 0x85, 0x24, + 0xa0, 0x3b, 0xd8, 0x24, 0xc9, 0xa2, 0x7a, 0xef, 0xd9, 0xd5, 0x54, 0x72, 0xa9, 0x5c, 0xb2, 0x09, + 0x4b, 0xfc, 0xda, 0x0a, 0x94, 0x06, 0xe8, 0x3d, 0xae, 0xe4, 0x65, 0xfa, 0x27, 0xc2, 0xe7, 0xfe, + 0x95, 0x60, 0x5c, 0xf6, 0x99, 0x52, 0x72, 0xe6, 0x74, 0xad, 0xa6, 0x24, 0x96, 0xd7, 0x7b, 0xdb, + 0x1f, 0xc1, 0x9c, 0xe6, 0xc5, 0xe9, 0x9e, 0x95, 0xe7, 0xc2, 0x71, 0x92, 0xff, 0x6f, 0x96, 0xa2, + 0xa7, 0x3c, 0xae, 0xcb, 0x1d, 0x65, 0xb4, 0xc6, 0xca, 0x07, 0x94, 0x16, 0x1c, 0xcf, 0x2b, 0x59, + 0xce, 0x9d, 0x37, 0x2e, 0x61, 0x94, 0x57, 0x2e, 0xbb, 0x24, 0x97, 0x10, 0x04, 0x26, 0x7f, 0xec, + 0x17, 0x33, 0xf3, 0x26, 0x7e, 0x6f, 0x4c, 0x4b, 0xd6, 0xb0, 0xf2, 0xc4, 0x77, 0x0c, 0x94, 0xee, + 0x26, 0x94, 0x46, 0xe6, 0xb5, 0x41, 0xc6, 0x37, 0xb5, 0xc0, 0xec, 0x4d, 0xfe, 0x33, 0xc9, 0x4a, + 0xd3, 0xf3, 0x0a, 0xe2, 0xb8, 0x7c, 0x3f, 0x5e, 0x4b, 0x5a, 0xf7, 0xa7, 0x9d, 0x35, 0xb7, 0xaf, + 0x40, 0x39, 0x80, 0xde, 0x3d, 0xb2, 0x14, 0x40, 0xab, 0x47, 0x06, 0xb9, 0x96, 0x11, 0xa5, 0x96, + 0x7f, 0x79, 0x3b, 0xc2, 0x6a, 0x69, 0xfa, 0xf2, 0x9c, 0xdf, 0x67, 0x75, 0x9f, 0x4b, 0x3b, 0xd8, + 0x77, 0xfb, 0xc2, 0x2f, 0x0e, 0x34, 0x83, 0x14, 0x9c, 0x79, 0x0e, 0x7b, 0x1d, 0xd9, 0xdb, 0xc6, + 0x9e, 0xf7, 0xe7, 0xb5, 0xde, 0xc7, 0xca, 0xcf, 0x61, 0xaf, 0xe3, 0x19, 0xed, 0x3f, 0x66, 0xd3, + 0xc9, 0x76, 0xf7, 0x3f, 0x23, 0x4b, 0x6a, 0x46, 0x72, 0x7d, 0x54, 0x59, 0xb3, 0xde, 0xd3, 0x15, + 0xd0, 0xd9, 0x3c, 0x60, 0xac, 0x78, 0xb7, 0xa8, 0x48, 0x84, 0x2b, 0x1b, 0xe8, 0x4d, 0x3c, 0x3b, + 0x7e, 0x32, 0xcd, 0x06, 0x7a, 0x1c, 0xb9, 0x9f, 0x44, 0xbd, 0xf0, 0xa9, 0xb7, 0x5e, 0xbb, 0x27, + 0xf2, 0x38, 0x28, 0xbe, 0x2d, 0xb7, 0x85, 0x51, 0x4f, 0x5e, 0x85, 0x63, 0xf8, 0x93, 0x9e, 0x88, + 0x5f, 0x3f, 0x18, 0x36, 0x3a, 0xde, 0x1a, 0x28, 0xbd, 0xb8, 0x0d, 0x7c, 0xd8, 0xf3, 0xc5, 0x05, + 0xbe, 0x6d, 0x19, 0x3b, 0xaa, 0x22, 0xa5, 0x4c, 0xd2, 0xd5, 0xe7, 0xc5, 0xa4, 0x59, 0x0d, 0x5b, + 0xeb, 0xa6, 0x98, 0x6f, 0x1d, 0x8c, 0xc5, 0xd5, 0x45, 0x64, 0xa9, 0xab, 0x34, 0x26, 0x75, 0xe5, + 0x65, 0x82, 0xa8, 0xff, 0x64, 0x95, 0xb1, 0xf8, 0xad, 0xd8, 0x4e, 0x6e, 0x0b, 0xed, 0xe4, 0x1e, + 0xcd, 0x7f, 0xe2, 0x4a, 0x1c, 0xc7, 0x69, 0x27, 0xf7, 0xaa, 0xd8, 0x3a, 0x19, 0xbb, 0xeb, 0xe6, + 0x87, 0x7f, 0xff, 0x39, 0xc1, 0xf8, 0x19, 0xc1, 0xcf, 0x4b, 0x2f, 0x40, 0xba, 0xbc, 0x5e, 0xd9, + 0x16, 0x95, 0xef, 0x96, 0xf3, 0x97, 0x8d, 0x9e, 0x0f, 0x6c, 0x1b, 0x89, 0x9d, 0x0f, 0x5c, 0x5d, + 0xc6, 0xce, 0x07, 0x66, 0xc9, 0xe7, 0x03, 0x83, 0x74, 0xef, 0x52, 0x76, 0xf0, 0x8b, 0xde, 0xa8, + 0x3f, 0xd3, 0xf3, 0x3c, 0x9d, 0xe0, 0x17, 0x53, 0x13, 0xcf, 0x0a, 0x8a, 0x7c, 0xeb, 0xb5, 0xc4, + 0xf3, 0x82, 0xde, 0x1f, 0xb2, 0xb3, 0x8e, 0xd7, 0xbc, 0x4b, 0x83, 0x73, 0xbc, 0x4b, 0x69, 0x87, + 0xd3, 0xc6, 0x0b, 0xa0, 0x3e, 0x7c, 0x40, 0xbe, 0x8f, 0x6e, 0xb3, 0x5e, 0xbe, 0x8f, 0xce, 0x66, + 0x63, 0xf3, 0xfb, 0xfa, 0xd8, 0xfc, 0x91, 0xcd, 0x01, 0x6a, 0x2f, 0x96, 0x7d, 0xcb, 0x16, 0x1b, + 0xed, 0x6d, 0x94, 0xdd, 0x3d, 0x74, 0x2f, 0x71, 0x91, 0x60, 0x51, 0xd6, 0xff, 0xe8, 0x66, 0x8a, + 0x19, 0xe9, 0xb6, 0x22, 0x44, 0x21, 0x9d, 0x77, 0x34, 0xd2, 0x7d, 0x14, 0x66, 0x30, 0x26, 0xc9, + 0x3d, 0x3f, 0x66, 0xef, 0x86, 0x72, 0x33, 0xa8, 0x64, 0x1a, 0x1e, 0x8a, 0x38, 0x4b, 0xdc, 0x25, + 0xce, 0x52, 0x77, 0xe9, 0xd1, 0x15, 0x5b, 0xbb, 0x94, 0x94, 0xec, 0x1e, 0x8b, 0xc1, 0x4e, 0x79, + 0x6e, 0x41, 0xfa, 0x73, 0xfb, 0xcd, 0x65, 0x2e, 0x4f, 0x34, 0x90, 0x66, 0xe6, 0xab, 0xd8, 0xbd, + 0x7c, 0xd2, 0xc5, 0x85, 0x1a, 0x3a, 0xa3, 0x0e, 0x37, 0x63, 0x6b, 0x71, 0xd2, 0x7b, 0x0b, 0xb5, + 0x14, 0x53, 0xf1, 0xcb, 0x5f, 0x99, 0x4f, 0x60, 0x36, 0x53, 0xc2, 0x5d, 0x15, 0xef, 0xaa, 0x8b, + 0xe2, 0x16, 0xec, 0x32, 0x99, 0x8d, 0x3e, 0x5a, 0xf7, 0xe2, 0xa9, 0x64, 0x19, 0x32, 0xc4, 0xe6, + 0x1a, 0xbf, 0x15, 0xdb, 0x36, 0x6d, 0x28, 0x4c, 0xab, 0x74, 0x2c, 0x8f, 0x28, 0xcb, 0x83, 0x1f, + 0xec, 0xa4, 0xb1, 0x06, 0x43, 0x80, 0xfb, 0x54, 0x13, 0xa6, 0x30, 0xd4, 0x86, 0xcf, 0x2a, 0xfb, + 0x6f, 0xcf, 0x86, 0x6e, 0xde, 0xb9, 0xa6, 0x2e, 0x15, 0x35, 0xcb, 0x4f, 0x30, 0x75, 0xd6, 0x50, + 0xf8, 0x68, 0xb4, 0x6a, 0x0d, 0xb3, 0xe8, 0x77, 0x71, 0x6c, 0x3e, 0x4a, 0xcd, 0xe2, 0x7b, 0xc5, + 0x30, 0x8f, 0xa7, 0x67, 0x7e, 0x74, 0xae, 0x52, 0x48, 0x26, 0x2a, 0xbc, 0xad, 0x97, 0x46, 0xc4, + 0x34, 0xfd, 0x50, 0xe4, 0x68, 0x94, 0x76, 0x17, 0x2b, 0x6f, 0x5e, 0x79, 0xab, 0x94, 0xb7, 0x5a, + 0x79, 0x27, 0x29, 0x6f, 0x8d, 0xf2, 0x9e, 0xa0, 0xbc, 0xb5, 0xca, 0x7b, 0xa2, 0xf2, 0x4e, 0x56, + 0xde, 0x29, 0xca, 0x5b, 0xa7, 0xbc, 0x6f, 0x52, 0xde, 0xa9, 0xca, 0xfb, 0x66, 0x7a, 0x17, 0x9f, + 0x05, 0x7d, 0x6f, 0xb7, 0x1f, 0xa4, 0xf6, 0xd2, 0x73, 0xb7, 0xf5, 0x2a, 0xf0, 0xf2, 0xb4, 0x7b, + 0xcd, 0x08, 0x71, 0xe8, 0xb7, 0xd0, 0x2d, 0xa7, 0xa2, 0xa6, 0x9c, 0xb5, 0xf3, 0xee, 0xab, 0xb7, + 0x3d, 0x5f, 0x0b, 0x52, 0xa1, 0x90, 0x22, 0x78, 0x02, 0x00, 0x47, 0x10, 0x0b, 0xab, 0x67, 0x7e, + 0x24, 0x5d, 0xc4, 0x9a, 0xa4, 0xb1, 0x9c, 0x2d, 0x4a, 0x4d, 0x2c, 0x4a, 0x4d, 0x2c, 0x4a, 0x4d, + 0x2c, 0x4a, 0x4d, 0x2c, 0x4a, 0x4d, 0x2c, 0x4a, 0x4d, 0x2c, 0x4a, 0x4d, 0x2c, 0x4a, 0x4d, 0x2c, + 0x4a, 0x4d, 0x2c, 0x4a, 0x4d, 0x2c, 0x4a, 0x4d, 0x2c, 0x4a, 0x4d, 0x2c, 0x4a, 0x4d, 0x2c, 0x4a, + 0x4d, 0x2c, 0x72, 0x4d, 0x4a, 0xcf, 0x81, 0x9e, 0xda, 0xa5, 0x1e, 0xa4, 0x50, 0xe8, 0xe2, 0xbe, + 0xf0, 0xe1, 0x97, 0x43, 0x37, 0x0f, 0x44, 0x44, 0xd2, 0x22, 0x33, 0xe9, 0x7b, 0x55, 0xd8, 0x13, + 0xf6, 0x7f, 0x3a, 0x86, 0x56, 0x79, 0xf9, 0xe6, 0x94, 0x78, 0x3d, 0x37, 0x51, 0x3d, 0x05, 0x15, + 0xa3, 0x9f, 0xa8, 0x72, 0x23, 0x08, 0x4a, 0x8f, 0x22, 0x5c, 0x4b, 0xc3, 0x27, 0x75, 0xf4, 0xac, + 0x2c, 0xd9, 0xeb, 0xd4, 0x72, 0xb4, 0x53, 0xdf, 0xa8, 0xff, 0x75, 0xf8, 0xe4, 0xaa, 0x9a, 0x6e, + 0xe4, 0x3f, 0x9f, 0xd0, 0x19, 0x59, 0x85, 0xde, 0xb2, 0x8d, 0x4e, 0xb6, 0xa3, 0x9d, 0x27, 0xae, + 0x09, 0xe1, 0xf2, 0x61, 0x69, 0xbf, 0x2d, 0x4b, 0xc6, 0xab, 0x69, 0x60, 0xf7, 0x6a, 0xff, 0xa7, + 0x72, 0xce, 0xf2, 0x1d, 0x96, 0x45, 0xf9, 0x16, 0x1b, 0x27, 0x18, 0x6d, 0x9c, 0xb9, 0xa5, 0xc3, + 0xd6, 0x41, 0x16, 0x87, 0xe0, 0xc9, 0xe2, 0x0b, 0xf0, 0xd4, 0xac, 0x0b, 0x5c, 0x76, 0x90, 0x13, + 0x06, 0x06, 0xc3, 0xbf, 0x3d, 0xe0, 0xbf, 0x62, 0xbe, 0x99, 0x4e, 0x9d, 0xc3, 0x93, 0x36, 0x75, + 0x9b, 0x70, 0x74, 0x3d, 0xd9, 0x67, 0x95, 0xb6, 0xa0, 0x9c, 0xa3, 0x52, 0x6e, 0xd4, 0xd5, 0x97, + 0x0e, 0x4b, 0xa2, 0x6c, 0x77, 0xb5, 0x72, 0x3d, 0x59, 0xe9, 0x0a, 0x90, 0x55, 0x17, 0x56, 0x27, + 0x0b, 0x9c, 0x44, 0x4e, 0x21, 0xc7, 0x4c, 0xf8, 0xa6, 0x8e, 0x7d, 0xf3, 0x1f, 0x10, 0x6c, 0x9c, + 0xf1, 0x85, 0x15, 0x42, 0x52, 0xc5, 0xbb, 0xd6, 0x22, 0xf9, 0x36, 0x4b, 0xe2, 0x15, 0x9b, 0x0b, + 0xe4, 0x33, 0x81, 0x33, 0xec, 0x64, 0xbb, 0x91, 0xad, 0x00, 0xa1, 0x6c, 0x27, 0xaf, 0xef, 0xa9, + 0x9f, 0x0e, 0x71, 0xb6, 0x62, 0xec, 0x53, 0x20, 0xdb, 0x74, 0x8b, 0x59, 0x6d, 0x39, 0x1a, 0x21, + 0x4b, 0x2d, 0xac, 0x97, 0xc3, 0x91, 0x4e, 0xa6, 0x2b, 0xc3, 0x7b, 0xdd, 0x83, 0x91, 0xb2, 0x30, + 0x59, 0x43, 0xd9, 0x5c, 0x20, 0x1a, 0xa8, 0x3d, 0x4c, 0x40, 0xbd, 0xf0, 0xc4, 0xac, 0xdf, 0xb0, + 0x1b, 0x7a, 0xd5, 0x40, 0xfa, 0xf6, 0x7b, 0xdd, 0x86, 0x69, 0x99, 0xf0, 0x62, 0x98, 0xe4, 0xf6, + 0x80, 0xd6, 0xa0, 0x6d, 0x53, 0xed, 0xeb, 0xf4, 0x1f, 0x99, 0x79, 0x56, 0xba, 0x6a, 0x98, 0x65, + 0x74, 0x16, 0xcb, 0xa9, 0x41, 0x65, 0x37, 0x4f, 0x01, 0xf5, 0xbf, 0x87, 0xa9, 0x14, 0xd9, 0xfe, + 0x24, 0x9b, 0xaf, 0xc6, 0x1c, 0xcc, 0xdc, 0xb1, 0x88, 0x0c, 0x85, 0x1c, 0xa6, 0x61, 0xb9, 0xbe, + 0x1a, 0xa6, 0x16, 0x50, 0x03, 0x8d, 0x5b, 0xb2, 0xfd, 0x46, 0xea, 0x79, 0x13, 0xd8, 0x49, 0x39, + 0xc1, 0x8e, 0xe3, 0xb0, 0xbd, 0x00, 0x7e, 0x13, 0x36, 0x4d, 0x01, 0xed, 0x6f, 0xc2, 0x66, 0xbb, + 0x1b, 0x30, 0x67, 0x3b, 0x41, 0x41, 0xf9, 0xb7, 0x43, 0x99, 0x7a, 0x5f, 0xd7, 0xf5, 0xf9, 0x8f, + 0x96, 0xfb, 0x0f, 0x96, 0xa1, 0xfb, 0xbf, 0x50, 0x86, 0xfe, 0xff, 0x42, 0x19, 0xe9, 0xff, 0x17, + 0xca, 0xc8, 0xfc, 0xbf, 0x50, 0x46, 0xf6, 0x7f, 0xb5, 0x0c, 0x0b, 0xf7, 0xf6, 0x57, 0x96, 0x62, + 0xc0, 0x12, 0xa8, 0xa4, 0x17, 0x22, 0xc2, 0x14, 0x10, 0x5e, 0x88, 0xb0, 0x52, 0x22, 0x16, 0x7b, + 0x0d, 0xfc, 0x36, 0x22, 0x70, 0x14, 0x9b, 0xf2, 0x1b, 0xe8, 0xa4, 0x14, 0x1a, 0x4c, 0xc1, 0xd6, + 0x41, 0x39, 0xb9, 0x4f, 0x50, 0xae, 0x13, 0x30, 0x57, 0x8b, 0xea, 0xed, 0x4e, 0x8a, 0xf5, 0x6a, + 0x24, 0x56, 0x8e, 0xa0, 0x1a, 0xec, 0xa4, 0x5c, 0x59, 0x3e, 0xe1, 0xf1, 0xf4, 0x7f, 0x24, 0x22, + 0xd7, 0x42, 0xae, 0x51, 0xe9, 0x39, 0xe9, 0x44, 0xc9, 0x87, 0x20, 0xb4, 0xdf, 0xd9, 0xb7, 0xba, + 0x1e, 0xae, 0x1e, 0x0a, 0x9d, 0xd8, 0x17, 0xfd, 0xc3, 0xcb, 0xfb, 0xbb, 0x8c, 0xb3, 0x4c, 0xbc, + 0xd2, 0x13, 0x5b, 0x51, 0x16, 0x54, 0xbf, 0xa0, 0xc0, 0x43, 0xf5, 0x1e, 0xe8, 0x8a, 0xc1, 0x43, + 0x36, 0x3c, 0xcd, 0x9c, 0xd3, 0xe5, 0x76, 0x9d, 0xa8, 0x20, 0xae, 0x33, 0x01, 0x04, 0xd7, 0xe1, + 0xfd, 0x56, 0xed, 0xf1, 0x6e, 0x8a, 0x77, 0x20, 0x42, 0x61, 0x6a, 0x16, 0x46, 0x2b, 0x7a, 0xc2, + 0x34, 0x2d, 0x58, 0xa7, 0x2d, 0x82, 0xff, 0x08, 0x8f, 0xc7, 0x1f, 0xc2, 0xc4, 0xfa, 0xb4, 0x65, + 0x1a, 0x41, 0xfc, 0xbd, 0xce, 0x9a, 0xd5, 0x21, 0xd5, 0xce, 0xce, 0xfa, 0x95, 0xa8, 0xcf, 0x66, + 0x13, 0x3c, 0x6d, 0xaa, 0xfd, 0x9d, 0x01, 0x6b, 0xcd, 0x1a, 0xb9, 0x77, 0x23, 0x67, 0xb8, 0xe3, + 0x4b, 0x38, 0x83, 0x5d, 0xe6, 0x0c, 0xfe, 0xe3, 0x65, 0x61, 0x23, 0xc8, 0xd6, 0x1a, 0x63, 0x1c, + 0x67, 0x28, 0x91, 0xe3, 0x44, 0x47, 0x39, 0x8e, 0x72, 0x92, 0xa6, 0x83, 0xce, 0x38, 0x8a, 0x30, + 0xbc, 0x15, 0x9f, 0x4d, 0x24, 0xb7, 0x60, 0xcb, 0xb4, 0x80, 0x9e, 0x2c, 0xe1, 0x1a, 0xf4, 0x86, + 0x16, 0x48, 0x47, 0x5e, 0x2e, 0xa4, 0xdf, 0xde, 0xce, 0xf5, 0x45, 0xe6, 0xec, 0xdf, 0xa5, 0xf6, + 0xab, 0x7d, 0x11, 0x31, 0xd5, 0xc3, 0xfb, 0xb5, 0xad, 0xea, 0x2d, 0x11, 0x03, 0x4f, 0x7b, 0xdf, + 0x7c, 0xe1, 0xdd, 0xe1, 0x80, 0xa6, 0x5d, 0xd5, 0x17, 0xa9, 0x3b, 0x2a, 0x44, 0x2a, 0xde, 0x05, + 0x79, 0x0f, 0x54, 0x01, 0x9b, 0x1f, 0x79, 0x88, 0xd9, 0xc3, 0xcb, 0xf7, 0xd3, 0x6e, 0x03, 0x2e, + 0xc8, 0x21, 0x4e, 0x8d, 0xef, 0x6f, 0x63, 0xbb, 0x69, 0x47, 0xf7, 0x1c, 0xe4, 0x2b, 0xf7, 0xf0, + 0xf5, 0x63, 0x4c, 0xb3, 0x3f, 0x3d, 0x16, 0x0b, 0xbf, 0x98, 0x9d, 0x3d, 0xec, 0x74, 0x8d, 0x95, + 0xe4, 0xa8, 0xad, 0xdb, 0xd9, 0x69, 0x1d, 0x73, 0x6f, 0x67, 0x6d, 0x96, 0x0d, 0x0c, 0x39, 0xa0, + 0xa3, 0x95, 0x2f, 0x9b, 0x45, 0xb6, 0x5e, 0x7a, 0xcf, 0x29, 0x8a, 0x2b, 0x3a, 0x31, 0xad, 0x7d, + 0x43, 0xc4, 0xa8, 0xea, 0xed, 0xa4, 0x93, 0xfd, 0x38, 0x26, 0x61, 0xbc, 0x0d, 0x9d, 0x36, 0x38, + 0x82, 0x50, 0xd8, 0x38, 0xf9, 0x3c, 0xbe, 0x77, 0xcb, 0xd6, 0x28, 0x2b, 0x53, 0xb0, 0xa9, 0x58, + 0x3e, 0x9d, 0x4a, 0x3e, 0xb4, 0xf7, 0xc3, 0x3e, 0xb9, 0x01, 0xcc, 0x60, 0x65, 0x3a, 0x9f, 0x05, + 0x25, 0x1d, 0xcc, 0x15, 0x21, 0xb1, 0x63, 0xbe, 0x66, 0xba, 0x41, 0x91, 0x4a, 0x41, 0x28, 0xac, + 0x3b, 0xc3, 0x0b, 0x75, 0xa4, 0x47, 0x82, 0x55, 0x54, 0xc7, 0xef, 0xe9, 0xc2, 0x31, 0x0b, 0x71, + 0xa6, 0x66, 0xeb, 0xd0, 0x8b, 0x84, 0xc5, 0xca, 0xbe, 0xa8, 0x5a, 0xe7, 0x36, 0x94, 0x6b, 0x9f, + 0x81, 0x74, 0x7c, 0xb4, 0xf8, 0x64, 0x32, 0xbd, 0xdc, 0xee, 0xdc, 0x80, 0xe1, 0x6a, 0x7c, 0x74, + 0x77, 0x75, 0xe0, 0x20, 0x08, 0x40, 0x77, 0x51, 0x0b, 0xf8, 0x98, 0xf1, 0xb1, 0xe2, 0x63, 0xc7, + 0xa7, 0x00, 0x9f, 0xa2, 0x92, 0xb3, 0x49, 0xf6, 0xbb, 0xca, 0xa1, 0x11, 0x9f, 0x4a, 0x7c, 0x2a, + 0xee, 0x72, 0xdc, 0x31, 0x10, 0x94, 0xf0, 0x77, 0xff, 0xb8, 0x93, 0x33, 0x24, 0x57, 0xb3, 0x7d, + 0x67, 0x6c, 0x77, 0x49, 0x6d, 0xfc, 0x3c, 0x49, 0x8d, 0xbc, 0xcf, 0xa8, 0x0d, 0xc4, 0x34, 0x13, + 0x7f, 0xb6, 0xd3, 0xd7, 0x19, 0xb4, 0xf5, 0xd2, 0x9e, 0xe0, 0x9b, 0xf7, 0x47, 0x02, 0xc9, 0x02, + 0x7f, 0xbf, 0x7c, 0xff, 0x72, 0x1e, 0xd6, 0x2b, 0x3f, 0x90, 0xb9, 0xab, 0x07, 0x8c, 0x81, 0xb4, + 0x78, 0x1b, 0xc9, 0x3b, 0xa6, 0xf2, 0x2b, 0xd7, 0x23, 0x6e, 0xb4, 0x58, 0x5f, 0xda, 0x11, 0x93, + 0x4e, 0xf3, 0x46, 0x22, 0x48, 0xe9, 0xb1, 0x3d, 0x61, 0xdf, 0xa3, 0x7b, 0x5e, 0xc9, 0xb2, 0x97, + 0x1e, 0xa9, 0x27, 0x53, 0xd9, 0x0d, 0xb6, 0x56, 0xde, 0x21, 0x05, 0x5d, 0xc1, 0x82, 0xde, 0xe7, + 0x21, 0xdb, 0xbf, 0x8c, 0xc1, 0xd2, 0x8e, 0xb9, 0xd1, 0x0e, 0x3a, 0xc1, 0xaf, 0x9b, 0x1c, 0xdb, + 0x1f, 0xd5, 0xc3, 0xac, 0x43, 0x1b, 0xfd, 0xda, 0xc9, 0xca, 0xfe, 0x28, 0x77, 0xfb, 0x1d, 0x87, + 0xd8, 0x2a, 0xb6, 0xbc, 0x6b, 0x0b, 0xe9, 0xc4, 0x14, 0xdb, 0xad, 0x54, 0x84, 0xad, 0x91, 0xed, + 0xdc, 0x8e, 0xad, 0x69, 0x63, 0x7a, 0x41, 0xbf, 0xa4, 0x65, 0xf6, 0x65, 0x4c, 0xcc, 0x4a, 0x09, + 0xdb, 0xe3, 0x85, 0x52, 0xb9, 0x3e, 0xb6, 0xcf, 0x8b, 0xee, 0x34, 0x11, 0x93, 0x47, 0x77, 0xee, + 0xd0, 0x29, 0x28, 0x76, 0xa7, 0xa8, 0x8d, 0xd9, 0xad, 0x26, 0xab, 0x46, 0x37, 0x33, 0x89, 0xbe, + 0x5f, 0x2a, 0x52, 0xec, 0x44, 0xa8, 0xe4, 0xdb, 0x9a, 0xc8, 0x2a, 0x34, 0xab, 0x89, 0x3b, 0x7e, + 0x82, 0x69, 0x86, 0x27, 0xd2, 0x98, 0x1c, 0x6b, 0x15, 0xd1, 0x1a, 0xd4, 0xf7, 0x46, 0x9a, 0x2c, + 0x26, 0x33, 0x14, 0x19, 0xb9, 0xa1, 0x4e, 0x7d, 0x11, 0x08, 0xbd, 0xd1, 0xfa, 0x2c, 0xba, 0x61, + 0xe8, 0xfd, 0x6d, 0x55, 0xe1, 0x81, 0xe7, 0x21, 0xfd, 0x83, 0x6d, 0x87, 0x31, 0xf6, 0x5d, 0x4e, + 0x28, 0x0a, 0xca, 0x67, 0xb0, 0xee, 0x34, 0xdd, 0xc9, 0x2c, 0x4f, 0xed, 0x27, 0xdb, 0xb8, 0x74, + 0x4f, 0xa2, 0xbc, 0xf7, 0xe7, 0x56, 0xa3, 0xb1, 0x31, 0xb6, 0x3b, 0xf0, 0xd6, 0x4c, 0xcf, 0x0e, + 0xea, 0x0f, 0xb7, 0xea, 0x3d, 0x5b, 0xfc, 0x5a, 0x74, 0xab, 0xfd, 0x70, 0xab, 0x3a, 0x98, 0xd2, + 0xbb, 0xc9, 0xaf, 0x0e, 0xe9, 0x8c, 0x11, 0x83, 0x15, 0x74, 0x16, 0x2b, 0xf6, 0xd1, 0xea, 0x9c, + 0x46, 0x50, 0x4b, 0xe7, 0x4d, 0x16, 0x28, 0x30, 0x5a, 0xa0, 0x28, 0x37, 0xc9, 0x3c, 0x55, 0x3a, + 0xdf, 0x01, 0xc5, 0xe7, 0x92, 0xec, 0x39, 0x6e, 0xe9, 0x78, 0xf1, 0x39, 0xfe, 0x22, 0xbe, 0x4f, + 0x14, 0x9f, 0x83, 0x46, 0x7c, 0x9f, 0xc2, 0x77, 0x35, 0xbe, 0x2f, 0xe2, 0x3b, 0x88, 0xef, 0x4b, + 0xf8, 0xae, 0xc1, 0xf7, 0x95, 0x9c, 0x62, 0xe9, 0x40, 0x70, 0x52, 0xef, 0xa6, 0x7a, 0x48, 0xfb, + 0xb9, 0x90, 0x36, 0x18, 0xb6, 0x7f, 0x47, 0x2b, 0x5b, 0x4d, 0x9d, 0x0f, 0x3e, 0xde, 0xcc, 0x6f, + 0x53, 0x19, 0x55, 0x3b, 0xd4, 0x0e, 0xf5, 0xf1, 0xa4, 0x56, 0x70, 0x6b, 0xe6, 0x69, 0x9e, 0xd4, + 0xf4, 0x4c, 0x58, 0x34, 0x61, 0x70, 0xc2, 0x10, 0xcc, 0xd0, 0x76, 0x4f, 0x0c, 0xea, 0x04, 0x9d, + 0xf1, 0xa6, 0x83, 0xa9, 0x99, 0x37, 0xbb, 0x6f, 0xde, 0xa0, 0xcf, 0xd4, 0xe7, 0xe9, 0xaf, 0xdc, + 0xb2, 0xe0, 0x96, 0xb9, 0xb7, 0xbc, 0x8d, 0xf2, 0x6f, 0x93, 0x74, 0x40, 0x84, 0x09, 0x67, 0x62, + 0xae, 0xa4, 0x57, 0x63, 0x2e, 0xce, 0x4b, 0xfb, 0x7b, 0x50, 0x8a, 0x41, 0x9f, 0x30, 0x4b, 0xcc, + 0x0a, 0x21, 0x2d, 0xc1, 0x39, 0xb2, 0x04, 0x75, 0x8b, 0x50, 0xd5, 0xe5, 0xeb, 0x46, 0xad, 0xe1, + 0xd6, 0xd3, 0xdb, 0x8e, 0x86, 0x2b, 0xa3, 0x26, 0x77, 0xf0, 0xe6, 0xde, 0x68, 0xdd, 0xa9, 0x9c, + 0x72, 0xe9, 0x00, 0x4a, 0x94, 0x5c, 0x80, 0x59, 0x84, 0x58, 0x73, 0xa7, 0x7f, 0x86, 0xbc, 0x8f, + 0x55, 0xb6, 0xac, 0xe1, 0x25, 0xdb, 0x9b, 0x99, 0x77, 0x74, 0xc0, 0x9d, 0xd2, 0xd5, 0x3b, 0x3a, + 0xa4, 0x35, 0xd2, 0x35, 0x66, 0xab, 0x4a, 0xbe, 0xff, 0x89, 0x7d, 0x0b, 0x71, 0xc6, 0x08, 0xed, + 0x5e, 0x6a, 0x45, 0xfe, 0x89, 0x74, 0x4b, 0x27, 0x12, 0xc8, 0x9a, 0x87, 0xbc, 0x1b, 0x4b, 0x43, + 0x7d, 0x09, 0xec, 0x5a, 0x0b, 0xca, 0x8f, 0x29, 0x01, 0xa3, 0xa0, 0x7a, 0xaf, 0x5b, 0x39, 0xa9, + 0xac, 0x3a, 0xb1, 0x8a, 0x4e, 0xb3, 0x08, 0x0e, 0x77, 0x30, 0x13, 0x62, 0x5a, 0x0a, 0xd9, 0x28, + 0x9f, 0xd2, 0x01, 0xa7, 0x06, 0xda, 0xe9, 0xb4, 0x95, 0x3e, 0x3d, 0x78, 0xf3, 0x40, 0xa7, 0x6c, + 0xfd, 0x11, 0xd6, 0x9e, 0x5d, 0x43, 0xbe, 0x4a, 0xda, 0x23, 0x6c, 0xf4, 0xd3, 0xe9, 0x3c, 0xa3, + 0x98, 0xb1, 0x33, 0x5c, 0x97, 0xf6, 0xbd, 0x28, 0x4b, 0x81, 0x94, 0x1f, 0xfa, 0xba, 0x31, 0x22, + 0xc2, 0xc8, 0x86, 0x10, 0xf7, 0xde, 0x33, 0x63, 0x77, 0xf8, 0x3f, 0xd4, 0x4d, 0x90, 0x4e, 0x51, + 0x4e, 0x17, 0x68, 0x55, 0x30, 0x31, 0xa0, 0x0e, 0x4e, 0x44, 0xaa, 0x49, 0x31, 0x86, 0x5b, 0x01, + 0xfb, 0x2e, 0x8c, 0xcc, 0x23, 0x1c, 0xe9, 0x35, 0x88, 0xa3, 0x30, 0x8e, 0x06, 0xb7, 0x9e, 0x7e, + 0xe6, 0x68, 0x04, 0x71, 0xe4, 0x40, 0xb9, 0x9e, 0x70, 0xe4, 0x96, 0x0e, 0x60, 0x1f, 0xd5, 0xeb, + 0x54, 0x74, 0xcf, 0x3a, 0x2b, 0x6f, 0x3d, 0x41, 0x78, 0x73, 0x48, 0x60, 0x67, 0xa2, 0x4f, 0x80, + 0x12, 0xba, 0x97, 0x42, 0xa5, 0xf6, 0x78, 0xfd, 0x93, 0x05, 0xd5, 0x89, 0xee, 0x10, 0xb7, 0x2f, + 0x2c, 0x44, 0x10, 0x07, 0x1c, 0xa4, 0x05, 0x8c, 0x77, 0x94, 0x48, 0x57, 0x4f, 0xac, 0xc1, 0xdf, + 0x51, 0x4c, 0x5a, 0x20, 0x53, 0x3e, 0x87, 0x40, 0x50, 0xb2, 0x53, 0x38, 0xbc, 0xb1, 0x13, 0xf1, + 0xa9, 0x52, 0x5a, 0x35, 0x9d, 0x60, 0xbb, 0xb9, 0xe1, 0x3a, 0xd8, 0xee, 0x8c, 0xc1, 0x16, 0x2f, + 0x4f, 0x7d, 0x57, 0x09, 0xa8, 0x95, 0x92, 0x0a, 0xa9, 0x24, 0x2a, 0xff, 0x0e, 0x87, 0x74, 0x4d, + 0x50, 0xd1, 0x58, 0x4b, 0xf7, 0x53, 0xc8, 0xa3, 0x1c, 0x7e, 0x93, 0x98, 0x35, 0xcd, 0x1b, 0x97, + 0xaf, 0xba, 0xbe, 0xfc, 0xd4, 0x73, 0x5f, 0x8e, 0x9b, 0x78, 0xf9, 0x19, 0x41, 0x28, 0x83, 0x81, + 0xce, 0xbb, 0x68, 0x57, 0x1b, 0x9d, 0xed, 0xc1, 0xd2, 0xd1, 0xad, 0xfb, 0x47, 0xea, 0x1e, 0x52, + 0x1b, 0x23, 0xd4, 0x26, 0x98, 0x86, 0xc7, 0x34, 0x8b, 0xc6, 0xc0, 0xe0, 0xff, 0xca, 0xf6, 0x71, + 0x8c, 0xc1, 0x43, 0xba, 0x52, 0xea, 0xf4, 0xbf, 0xa7, 0x54, 0x71, 0x94, 0x66, 0x89, 0x0b, 0xe9, + 0x45, 0xba, 0xdb, 0x1b, 0x82, 0x49, 0xc6, 0xb0, 0x02, 0x07, 0xf2, 0x5a, 0xe4, 0xe1, 0x0e, 0xab, + 0xab, 0xb7, 0xab, 0x8e, 0xb7, 0x3a, 0xd8, 0x9d, 0xbb, 0x8b, 0xe8, 0xfc, 0x12, 0x1b, 0x91, 0xa6, + 0xe3, 0x88, 0x24, 0x73, 0x34, 0xba, 0xc1, 0x39, 0x7d, 0x53, 0x58, 0xe0, 0xf0, 0x9d, 0x59, 0x72, + 0x59, 0x0b, 0xb4, 0xf3, 0x7f, 0x53, 0x58, 0xe4, 0x0d, 0xa9, 0x38, 0x12, 0xa6, 0xb8, 0x83, 0xf2, + 0x0e, 0x99, 0x7b, 0x4e, 0x31, 0x4a, 0x94, 0x21, 0xcc, 0xb0, 0xc9, 0x56, 0xd0, 0xc6, 0xc1, 0xf4, + 0xf8, 0xba, 0x3f, 0xbc, 0x21, 0xa4, 0x6e, 0xec, 0x01, 0x07, 0x72, 0x70, 0x87, 0x1f, 0x6e, 0xaa, + 0xc5, 0xbe, 0xe5, 0x08, 0x69, 0x8c, 0x44, 0x4b, 0x2a, 0x4c, 0xb7, 0x9c, 0x70, 0x72, 0x53, 0x85, + 0x61, 0xd6, 0xcf, 0xde, 0x30, 0xa4, 0xdc, 0xf1, 0x3d, 0x69, 0x90, 0xdd, 0x19, 0x33, 0x98, 0xe3, + 0x90, 0x86, 0x7c, 0xeb, 0xe2, 0xf5, 0xa1, 0x1b, 0x18, 0xe5, 0xb3, 0x97, 0x64, 0x61, 0xc4, 0xd1, + 0x8b, 0x23, 0x61, 0x9d, 0xee, 0x6b, 0xcf, 0x4a, 0x83, 0xca, 0x7a, 0x85, 0xc3, 0xf3, 0xac, 0x34, + 0x14, 0x50, 0xf7, 0xad, 0xf3, 0xef, 0x31, 0x15, 0x27, 0x40, 0xc4, 0xdd, 0x18, 0x22, 0x16, 0x1b, + 0xb5, 0x52, 0xdd, 0xd0, 0x28, 0xb6, 0xd9, 0x28, 0x4c, 0xb0, 0x4d, 0x60, 0xb0, 0xa9, 0x63, 0xb0, + 0xe9, 0x7a, 0xff, 0x0e, 0xd8, 0x8c, 0x63, 0x60, 0x33, 0xff, 0x8f, 0xc0, 0x56, 0x30, 0x06, 0x36, + 0x63, 0x48, 0x8b, 0xbc, 0xdd, 0x02, 0x7a, 0xe4, 0x73, 0x13, 0x03, 0x65, 0x0a, 0x6f, 0x64, 0x14, + 0xa5, 0x4b, 0xfe, 0x72, 0xae, 0x48, 0x3b, 0xd3, 0x65, 0x6e, 0xd5, 0xdb, 0xa9, 0xf4, 0xef, 0x3f, + 0x50, 0xff, 0xfe, 0xe2, 0x71, 0xa2, 0x8d, 0x78, 0x09, 0x99, 0xc1, 0x89, 0x27, 0xfe, 0x85, 0x46, + 0xa6, 0x81, 0x08, 0xd2, 0xba, 0x95, 0xc2, 0x43, 0xdc, 0x5d, 0xc5, 0x28, 0x63, 0x24, 0x9c, 0x30, + 0x8a, 0xf1, 0x1f, 0xe2, 0x38, 0x22, 0xf0, 0x7a, 0x2a, 0x3b, 0xe5, 0xf1, 0x2f, 0xef, 0xd1, 0x06, + 0x95, 0x6c, 0x79, 0x59, 0xee, 0xb7, 0x27, 0xdc, 0x47, 0xc2, 0xd4, 0x97, 0x64, 0x19, 0x73, 0x30, + 0xc2, 0xe6, 0x40, 0xe1, 0xbd, 0x35, 0x83, 0x9d, 0xb1, 0x7c, 0xdb, 0x92, 0xe5, 0x1e, 0xeb, 0xa1, + 0x53, 0x5d, 0x82, 0x61, 0xaa, 0x74, 0x60, 0x4a, 0x31, 0xe8, 0xa6, 0x94, 0x82, 0xde, 0xbc, 0x66, + 0x8a, 0x0b, 0xd4, 0xd8, 0x3b, 0x0a, 0x50, 0xc2, 0x28, 0xea, 0xe0, 0x11, 0x3b, 0x99, 0x37, 0xe2, + 0x8c, 0x04, 0x19, 0x3b, 0x39, 0x37, 0x15, 0x74, 0xdf, 0x0f, 0x93, 0x75, 0xa2, 0x3a, 0x48, 0xbe, + 0xe8, 0xa1, 0x53, 0x57, 0x5a, 0xa5, 0x0f, 0x1a, 0x83, 0x13, 0x06, 0xa2, 0x27, 0xb6, 0x07, 0xaf, + 0xec, 0x0f, 0x87, 0xb2, 0x48, 0xaa, 0xa5, 0x5a, 0x24, 0x1f, 0xb9, 0xae, 0x16, 0x7c, 0xac, 0x16, + 0x41, 0x6e, 0x80, 0x20, 0x54, 0x1b, 0x54, 0x27, 0x57, 0x09, 0xc5, 0x41, 0xd5, 0x40, 0x84, 0x9d, + 0xac, 0xa8, 0x40, 0x29, 0x9c, 0x6e, 0xe0, 0xf4, 0xc8, 0x27, 0xe9, 0x03, 0xea, 0xb6, 0x9b, 0xc4, + 0x42, 0x94, 0x4f, 0x4e, 0xbd, 0x58, 0x00, 0x15, 0xc1, 0x89, 0x98, 0xa2, 0x9a, 0x7c, 0xbf, 0x2d, + 0x80, 0xca, 0x50, 0x12, 0x72, 0xf2, 0x1a, 0xc4, 0xee, 0xad, 0xc6, 0x30, 0xc6, 0xd6, 0xec, 0x7c, + 0x16, 0xeb, 0x37, 0x89, 0xea, 0x77, 0x66, 0xcd, 0x03, 0x51, 0x11, 0x92, 0xe7, 0xb6, 0xe9, 0x8d, + 0x9d, 0xa2, 0xdc, 0x3a, 0x1f, 0xa1, 0xfc, 0xf7, 0x75, 0x63, 0xd8, 0xa4, 0x3d, 0xc5, 0xbe, 0x5d, + 0x59, 0x29, 0xc3, 0x1b, 0xba, 0xb2, 0x3f, 0x92, 0xc8, 0x45, 0x92, 0x85, 0xaf, 0xc2, 0xbb, 0xb2, + 0x53, 0x8e, 0xe1, 0xbd, 0xcc, 0xd1, 0x1b, 0x51, 0x5a, 0x9e, 0x6e, 0x58, 0x87, 0x89, 0x51, 0x84, + 0xc6, 0x11, 0x4a, 0x35, 0x46, 0xda, 0x34, 0xbb, 0x9f, 0x25, 0x49, 0x62, 0xe2, 0x93, 0x84, 0xf5, + 0xe0, 0xcd, 0xc6, 0x30, 0xd1, 0x6f, 0x00, 0x92, 0x0e, 0x59, 0x4b, 0x7b, 0x57, 0x10, 0x87, 0xe8, + 0x5b, 0x87, 0xbf, 0x2e, 0xf9, 0x6e, 0xee, 0x89, 0xdb, 0x58, 0x0f, 0x47, 0xa8, 0xe5, 0xbe, 0x4f, + 0xb4, 0xfa, 0xc4, 0x3a, 0x43, 0xea, 0x9b, 0xcf, 0x4a, 0x07, 0x36, 0x63, 0xbf, 0x91, 0x57, 0x41, + 0x3e, 0x3f, 0x4a, 0xd0, 0x4d, 0x8c, 0x5e, 0x07, 0xdd, 0x4d, 0x31, 0xe8, 0x10, 0x03, 0x77, 0xee, + 0xeb, 0x34, 0x14, 0x97, 0x7c, 0xc8, 0x71, 0x93, 0xcb, 0x41, 0x3c, 0xb7, 0x26, 0x78, 0xe7, 0x40, + 0x27, 0xeb, 0x29, 0x75, 0xe7, 0xd6, 0x84, 0x6e, 0xde, 0xd7, 0x29, 0x14, 0xd7, 0x74, 0x4f, 0x76, + 0xc3, 0xfc, 0xb3, 0x6b, 0x42, 0x9f, 0x0e, 0x45, 0x76, 0x5e, 0xe5, 0x26, 0xd5, 0x6a, 0x42, 0x93, + 0xb0, 0x2d, 0x59, 0x2d, 0x5e, 0xbe, 0x83, 0x6a, 0xa1, 0xdd, 0x83, 0x7d, 0x75, 0x51, 0xe8, 0x16, + 0xec, 0x13, 0x0d, 0x30, 0x9f, 0x34, 0xa0, 0xdf, 0xf6, 0x59, 0x5d, 0xa2, 0x5b, 0x86, 0x55, 0x3b, + 0x54, 0xb5, 0xce, 0x17, 0xc1, 0x01, 0xf8, 0xd6, 0xd3, 0x3b, 0x8e, 0x76, 0x61, 0xf9, 0xc5, 0xed, + 0x7c, 0x5f, 0xb4, 0xee, 0x24, 0xed, 0x65, 0xcb, 0x53, 0xce, 0x20, 0x49, 0x52, 0x66, 0x11, 0x14, + 0x1c, 0xe9, 0x3a, 0x12, 0x29, 0x50, 0xf1, 0x2e, 0x98, 0x70, 0x4f, 0x57, 0xa6, 0xdc, 0x5f, 0x17, + 0x51, 0xab, 0x20, 0x26, 0x16, 0xbd, 0x38, 0xb0, 0xd0, 0x64, 0x48, 0x11, 0xf7, 0xb1, 0x54, 0xd3, + 0x62, 0xa9, 0x84, 0xe2, 0xe2, 0xb3, 0x50, 0x70, 0xf8, 0x80, 0x33, 0xb8, 0x4d, 0x89, 0x2f, 0xea, + 0xcc, 0xa9, 0x25, 0x32, 0x04, 0x53, 0x59, 0x8f, 0x5b, 0x14, 0x4a, 0x43, 0x68, 0x0f, 0xe4, 0x94, + 0x21, 0x47, 0x6f, 0x92, 0x8e, 0x43, 0x23, 0xfb, 0xad, 0xa0, 0x35, 0x3f, 0xa8, 0x46, 0x0c, 0x9e, + 0xc0, 0xe7, 0x22, 0x3e, 0xa7, 0x90, 0x97, 0xdf, 0x8a, 0xef, 0x4b, 0x32, 0x1d, 0xaf, 0x73, 0x2b, + 0x37, 0x26, 0xca, 0xf5, 0xbc, 0x97, 0xea, 0xf9, 0x39, 0x9d, 0x24, 0x5b, 0x14, 0x4c, 0x33, 0x92, + 0xcc, 0x50, 0x87, 0x5a, 0x8a, 0x88, 0xf2, 0xd8, 0xa0, 0xa1, 0xd4, 0x5a, 0x86, 0x72, 0xd2, 0xf1, + 0x9c, 0x06, 0xa8, 0x90, 0x86, 0x82, 0x9c, 0xc5, 0x02, 0xd5, 0x1f, 0x6d, 0x63, 0xf7, 0xa0, 0x1f, + 0x33, 0xa4, 0x20, 0x96, 0xcf, 0x9a, 0x8a, 0x85, 0xa9, 0xd2, 0xb1, 0x81, 0x4e, 0xb6, 0xe7, 0x04, + 0x39, 0x8a, 0xe0, 0xc8, 0x36, 0x03, 0x57, 0x68, 0x06, 0xd4, 0x44, 0xf4, 0x9a, 0x5d, 0xe1, 0xba, + 0x0c, 0x6a, 0xa7, 0x09, 0x3b, 0xb1, 0x9d, 0x22, 0xa3, 0x9c, 0x43, 0x3c, 0x80, 0x14, 0x76, 0x56, + 0x57, 0x0a, 0x37, 0xd7, 0x7a, 0xbf, 0x53, 0x2a, 0x0d, 0x59, 0xb4, 0x82, 0x43, 0x94, 0x63, 0xae, + 0xa4, 0x98, 0x6c, 0xff, 0x84, 0x12, 0x57, 0xe0, 0x5e, 0xd8, 0x57, 0x7b, 0x2a, 0x6f, 0xaa, 0x34, + 0x64, 0x72, 0x08, 0x5a, 0xa1, 0x94, 0x5f, 0x49, 0xab, 0x00, 0xe7, 0xb7, 0x6f, 0x09, 0x07, 0x0b, + 0x68, 0x9f, 0xea, 0x3d, 0x74, 0x12, 0x8b, 0xda, 0x71, 0x11, 0x42, 0x9a, 0x87, 0x79, 0xea, 0xfd, + 0x0b, 0x50, 0x31, 0x82, 0xea, 0x95, 0x08, 0xdf, 0x90, 0xa9, 0x54, 0xc9, 0x37, 0x97, 0xf2, 0x65, + 0x16, 0x98, 0xf4, 0xb1, 0x7c, 0xf7, 0x44, 0x6b, 0x4f, 0x21, 0x1c, 0x43, 0x86, 0x14, 0xcc, 0x39, + 0xe9, 0x24, 0xe6, 0xa8, 0x68, 0x0c, 0xfd, 0xc1, 0x6f, 0x51, 0xce, 0xf6, 0xbc, 0x98, 0xad, 0x9b, + 0x10, 0x6a, 0xf0, 0x73, 0x23, 0xa7, 0xd6, 0xcc, 0x89, 0xd2, 0xed, 0x44, 0x58, 0xc6, 0x2d, 0x81, + 0x54, 0x2a, 0x63, 0x41, 0xac, 0x8c, 0x1a, 0xf2, 0xcd, 0x1d, 0x53, 0xa2, 0x66, 0xcf, 0xdf, 0x2e, + 0x31, 0x34, 0x81, 0xf2, 0x3d, 0xb3, 0x66, 0xd9, 0x35, 0x31, 0x9f, 0xa5, 0xe9, 0xfe, 0x3b, 0xd2, + 0x3c, 0xbc, 0xaf, 0x73, 0x59, 0xca, 0x91, 0x15, 0x9f, 0xac, 0x59, 0xf6, 0xd7, 0x27, 0xc2, 0x43, + 0x2b, 0x82, 0x40, 0xe7, 0xf9, 0x5f, 0xf8, 0x58, 0x1a, 0x5c, 0x98, 0x66, 0x99, 0x68, 0x4d, 0x65, + 0x6d, 0x5a, 0x23, 0xf7, 0x6e, 0xd1, 0xce, 0x28, 0xa5, 0x01, 0x16, 0x2d, 0x2b, 0x78, 0xbb, 0xfb, + 0xed, 0x15, 0xf7, 0x84, 0x6b, 0x14, 0x5c, 0x55, 0x45, 0xfc, 0x67, 0x89, 0x6e, 0xe8, 0x1b, 0xa5, + 0xad, 0x87, 0x91, 0x6c, 0x4a, 0x1d, 0xfa, 0xfa, 0xce, 0x4d, 0x01, 0xb8, 0xd4, 0xee, 0x69, 0xe0, + 0x83, 0x7e, 0x99, 0x3e, 0x42, 0x44, 0x1f, 0x9f, 0x1d, 0x19, 0x43, 0x61, 0x13, 0xc7, 0x53, 0x18, + 0x8e, 0x31, 0x22, 0x51, 0x18, 0x69, 0x4b, 0x24, 0x0d, 0xaf, 0x73, 0x7b, 0xb7, 0x8e, 0xa1, 0xb2, + 0x7f, 0x62, 0xb9, 0xac, 0x46, 0xad, 0xb6, 0x11, 0x2a, 0x83, 0x24, 0x93, 0xd6, 0x28, 0xe9, 0xaf, + 0x28, 0xe9, 0xeb, 0x90, 0x73, 0x15, 0xa0, 0x9e, 0x2b, 0x0e, 0x86, 0xdd, 0x21, 0x2d, 0x30, 0x1b, + 0x9f, 0x63, 0xf3, 0x78, 0x91, 0xe5, 0x51, 0x16, 0x44, 0xfe, 0x16, 0x62, 0xdc, 0x0d, 0x79, 0xc8, + 0xb2, 0x60, 0x3a, 0xfa, 0x92, 0x76, 0x76, 0xd5, 0xcd, 0xa5, 0x5d, 0x39, 0x1c, 0xb7, 0xd0, 0x3b, + 0x05, 0xb9, 0xd7, 0x8d, 0xf8, 0xb9, 0x6d, 0x82, 0x8d, 0xac, 0xea, 0x9d, 0xde, 0x54, 0x87, 0x1a, + 0x8b, 0x4e, 0x3a, 0x20, 0x6b, 0x2f, 0x66, 0x2b, 0xed, 0xc7, 0x96, 0x75, 0x97, 0xca, 0xf5, 0x4c, + 0xbf, 0x81, 0xbf, 0xb4, 0x87, 0xa4, 0xc9, 0xc5, 0x77, 0xec, 0x17, 0xe1, 0x2f, 0xcd, 0xce, 0x9e, + 0x3b, 0xf6, 0xc7, 0xe8, 0x1f, 0xfb, 0x46, 0xf5, 0xfb, 0xdb, 0xac, 0x8e, 0xaa, 0x75, 0x86, 0x59, + 0xa6, 0x72, 0x21, 0x95, 0xe8, 0x9e, 0x9d, 0x92, 0xfb, 0x58, 0x1a, 0xba, 0xa3, 0x52, 0x3a, 0x4b, + 0x96, 0xff, 0xbf, 0xb3, 0x08, 0x78, 0x69, 0x10, 0x79, 0x12, 0x08, 0xc5, 0xbb, 0xba, 0x65, 0xfa, + 0x57, 0x0f, 0x61, 0xbb, 0xae, 0x4a, 0xa0, 0xff, 0x7d, 0x56, 0xb7, 0xdd, 0x91, 0xe3, 0x95, 0x0e, + 0x79, 0xa6, 0x4a, 0x67, 0x91, 0xe2, 0xd6, 0xb1, 0x11, 0xff, 0xac, 0x15, 0x65, 0xb4, 0x32, 0x1c, + 0x1b, 0xfd, 0x1d, 0x7f, 0xfa, 0x58, 0x3a, 0x44, 0x1c, 0x5f, 0x48, 0x7d, 0xef, 0x19, 0x76, 0x3f, + 0xec, 0xb1, 0x10, 0xe4, 0x91, 0x4c, 0x50, 0x2c, 0x9d, 0xc5, 0x1e, 0x77, 0xc8, 0x54, 0x8e, 0x7c, + 0xfd, 0xd8, 0xbe, 0xce, 0x13, 0xcf, 0x1c, 0x79, 0x16, 0xd3, 0x15, 0xff, 0xe9, 0xe5, 0x3f, 0xbd, + 0xf1, 0x27, 0x82, 0x62, 0x2e, 0xa6, 0xcb, 0x05, 0xce, 0x5e, 0xfc, 0x9d, 0x66, 0x82, 0x43, 0x3e, + 0xbb, 0x68, 0x2d, 0x9e, 0x8d, 0xd2, 0xd5, 0xae, 0x75, 0x0a, 0x34, 0x65, 0x04, 0xcd, 0x28, 0xd7, + 0x14, 0x77, 0xde, 0xd1, 0x24, 0x1d, 0x92, 0xce, 0x9e, 0xc0, 0x1e, 0x30, 0x19, 0xb5, 0xf9, 0x3c, + 0x2d, 0x42, 0xc3, 0x91, 0xef, 0x30, 0xd6, 0xdd, 0x8e, 0xa5, 0x32, 0xe9, 0x02, 0xe1, 0xf3, 0x6b, + 0x82, 0xb7, 0x8b, 0xa0, 0xea, 0x21, 0xfb, 0xf5, 0xd2, 0x59, 0x94, 0x10, 0x92, 0x02, 0x3a, 0x19, + 0x53, 0x41, 0xba, 0x3d, 0x64, 0x13, 0x86, 0x68, 0x94, 0xb6, 0x7a, 0x8d, 0xda, 0xea, 0x2f, 0x4f, + 0xa0, 0x1e, 0x42, 0xe7, 0x26, 0xdc, 0xa1, 0xdb, 0x8c, 0x64, 0x45, 0xc9, 0x1d, 0x98, 0x61, 0x48, + 0x61, 0x32, 0x85, 0x43, 0x1e, 0x5f, 0x54, 0xbb, 0xc7, 0x72, 0x06, 0x53, 0x31, 0xf6, 0xf6, 0x33, + 0x4c, 0xa2, 0xd0, 0x92, 0x6e, 0x52, 0x15, 0xd9, 0xd7, 0xf9, 0x26, 0x72, 0x7d, 0x84, 0xa6, 0x9b, + 0xa0, 0x41, 0xfa, 0x71, 0xdc, 0x71, 0x20, 0x98, 0x61, 0x0c, 0x63, 0x9b, 0x54, 0x2a, 0x6d, 0x52, + 0x23, 0xb7, 0x49, 0x4e, 0xa9, 0x74, 0x4c, 0xc0, 0x5e, 0x62, 0x48, 0xdd, 0xd7, 0x79, 0x24, 0xc2, + 0xce, 0x65, 0x22, 0x46, 0xb2, 0xf4, 0x79, 0xa5, 0x69, 0xf1, 0x76, 0x59, 0x06, 0x59, 0x9c, 0x50, + 0x1a, 0x6b, 0x17, 0x95, 0x71, 0xec, 0xf8, 0x21, 0xee, 0xb3, 0x20, 0x56, 0xef, 0x40, 0x1c, 0x63, + 0x4f, 0x3e, 0x24, 0xcc, 0xb2, 0x4f, 0x54, 0xec, 0x2a, 0xc5, 0xda, 0x65, 0xf9, 0x57, 0xb5, 0x0b, + 0x96, 0xbf, 0x9f, 0xb5, 0x8d, 0xfb, 0xc6, 0x6d, 0x93, 0x95, 0x81, 0x90, 0x60, 0xdb, 0xc8, 0x2d, + 0x43, 0x90, 0x58, 0x4b, 0x13, 0xdb, 0x85, 0x7f, 0x8a, 0xe4, 0xab, 0x04, 0x68, 0x76, 0x23, 0x34, + 0xfb, 0x09, 0x9a, 0x58, 0x5b, 0xc8, 0x78, 0x47, 0x4e, 0x15, 0x79, 0x13, 0x7d, 0x79, 0x13, 0xa9, + 0x9d, 0xb4, 0x10, 0xc7, 0xf9, 0x69, 0xc2, 0x39, 0xed, 0xc8, 0x23, 0x88, 0x70, 0xf4, 0x75, 0xe1, + 0x28, 0x47, 0xf6, 0xe4, 0xdc, 0xc1, 0xaf, 0xb1, 0x31, 0xf7, 0x3a, 0xec, 0xf3, 0x05, 0x7f, 0x17, + 0xf6, 0x5d, 0x31, 0xec, 0x87, 0x32, 0x8d, 0x11, 0xcf, 0x0a, 0x4c, 0xa7, 0x36, 0x4c, 0xd8, 0xb4, + 0x02, 0x73, 0x74, 0xe1, 0xf8, 0x53, 0xb8, 0x21, 0xd2, 0xdb, 0x03, 0xd6, 0x85, 0x69, 0x9e, 0x9e, + 0x3b, 0x06, 0x14, 0x48, 0xbe, 0x20, 0x48, 0x38, 0xb2, 0x9d, 0x61, 0x7f, 0x71, 0xa0, 0x4e, 0xb3, + 0x61, 0x15, 0xba, 0xcc, 0x9b, 0x07, 0xde, 0x3c, 0x07, 0xf9, 0xd8, 0x5e, 0x0e, 0x4c, 0x95, 0x2a, + 0x70, 0x62, 0x32, 0xc1, 0xb2, 0x99, 0x2c, 0x09, 0x38, 0xfa, 0xc9, 0x4a, 0x66, 0xd2, 0x13, 0x61, + 0x92, 0xe0, 0x0d, 0x40, 0xf2, 0x87, 0xd5, 0xad, 0xff, 0x23, 0x72, 0xa9, 0x61, 0xec, 0x25, 0x07, + 0x0e, 0xe3, 0xd8, 0x2f, 0xcb, 0xf5, 0x17, 0xde, 0x41, 0xec, 0xa7, 0x8b, 0xf0, 0x67, 0x27, 0xc1, + 0xc1, 0x75, 0x50, 0x4c, 0x1f, 0x7e, 0xd5, 0x9f, 0x83, 0x92, 0xaa, 0x15, 0x41, 0xfc, 0xc2, 0xd1, + 0x99, 0x20, 0x2d, 0x3b, 0xc7, 0x9f, 0x20, 0xc7, 0x70, 0x35, 0x5f, 0x2e, 0xc7, 0xfc, 0x7c, 0xc5, + 0xbb, 0x3b, 0x20, 0xfd, 0xdd, 0x1e, 0xc8, 0xf6, 0x3c, 0x12, 0xc8, 0xdb, 0xf8, 0xbf, 0x99, 0x4d, + 0x16, 0x3d, 0x72, 0x0b, 0xed, 0xa8, 0xe4, 0x2c, 0xa6, 0x26, 0xfa, 0x65, 0x9b, 0x3b, 0x31, 0x69, + 0x90, 0xe2, 0xfb, 0xad, 0xb2, 0x76, 0x4b, 0xb3, 0x9a, 0xb9, 0xaa, 0xf7, 0xee, 0x73, 0xcf, 0x74, + 0xce, 0x34, 0xa8, 0xe4, 0xb9, 0xcf, 0x77, 0x22, 0xa4, 0xc1, 0x2b, 0x73, 0x9f, 0x8f, 0x1c, 0x21, + 0xfd, 0x46, 0xb5, 0xb3, 0x87, 0xce, 0x30, 0x11, 0xae, 0xf6, 0xdd, 0x2e, 0xf3, 0xea, 0xdc, 0x24, + 0x11, 0x2e, 0x40, 0x6e, 0x12, 0xc9, 0xcb, 0xa1, 0x3b, 0x8c, 0x11, 0x56, 0x0b, 0x2f, 0x83, 0xc5, + 0x9d, 0x58, 0x13, 0x58, 0xf7, 0xe5, 0x35, 0xd9, 0x8d, 0x75, 0x08, 0xe8, 0x59, 0xae, 0xb9, 0xca, + 0x08, 0x00, 0x9f, 0xec, 0x20, 0x09, 0x90, 0x69, 0xee, 0x6a, 0x72, 0x05, 0xb3, 0x31, 0x54, 0x47, + 0xae, 0x8e, 0x6b, 0xa2, 0x93, 0xbd, 0x39, 0xb1, 0x30, 0x1e, 0xc7, 0x6e, 0x4e, 0x15, 0x8d, 0xd8, + 0x87, 0xd0, 0x4f, 0xe3, 0x81, 0xc8, 0xe4, 0x63, 0xea, 0x15, 0x62, 0x86, 0xe2, 0xda, 0x8f, 0xa9, + 0x27, 0x8a, 0x5a, 0xf2, 0x61, 0x4d, 0xb4, 0x37, 0x96, 0x9d, 0xd9, 0x1c, 0xaa, 0x2e, 0x74, 0xfb, + 0xce, 0x4d, 0xf5, 0x93, 0xf6, 0x92, 0xed, 0x90, 0x4c, 0xc6, 0x7d, 0xfb, 0xcf, 0x35, 0xb3, 0x99, + 0x8b, 0xe4, 0xb6, 0x49, 0xc6, 0xce, 0x8e, 0xab, 0x38, 0x9a, 0xf6, 0x19, 0xa7, 0x4a, 0xe7, 0xb7, + 0xec, 0x00, 0xf5, 0xcf, 0x31, 0xd6, 0x5b, 0x3b, 0x40, 0x1b, 0x6f, 0x0b, 0xaa, 0x7f, 0x21, 0xb6, + 0xc8, 0x74, 0xc1, 0x0a, 0xba, 0x0d, 0x8f, 0xc4, 0x5b, 0x05, 0xc6, 0xb5, 0x0a, 0xdc, 0xb8, 0x55, + 0x70, 0x64, 0x23, 0x28, 0xd4, 0x01, 0x75, 0x90, 0x6e, 0x00, 0xc0, 0x51, 0x52, 0x0b, 0x42, 0x5a, + 0x7b, 0x4a, 0xe8, 0xe1, 0x32, 0xae, 0x2f, 0x1c, 0xe0, 0x43, 0x70, 0xf8, 0x65, 0x66, 0x7b, 0x13, + 0x96, 0xdd, 0xda, 0x1f, 0x0e, 0xe8, 0xda, 0x52, 0x77, 0x2b, 0xa7, 0xb6, 0x69, 0x55, 0x72, 0x8a, + 0x1b, 0xac, 0x9e, 0xa8, 0x5f, 0x8d, 0xe5, 0x6b, 0xdb, 0xd5, 0x7d, 0x24, 0x49, 0xeb, 0x3c, 0x2b, + 0x03, 0x1a, 0x51, 0xd3, 0x31, 0x22, 0xf2, 0x1d, 0x5f, 0x08, 0x1a, 0x76, 0xcb, 0xc9, 0x93, 0x64, + 0xa5, 0x98, 0xcd, 0x38, 0x6a, 0xd9, 0xac, 0x59, 0x11, 0x59, 0xa5, 0x61, 0x5a, 0x2e, 0xd9, 0x91, + 0x32, 0x32, 0x79, 0xc2, 0x2c, 0x4c, 0x81, 0xfc, 0x40, 0xb2, 0x7c, 0x16, 0xf4, 0x4b, 0xcf, 0x81, + 0x2a, 0xb6, 0x91, 0xd8, 0x29, 0x3d, 0xba, 0xd3, 0x2c, 0xd3, 0xac, 0x58, 0x30, 0x53, 0xec, 0x6c, + 0x3d, 0x95, 0x60, 0x67, 0x6b, 0x0b, 0xc3, 0x8d, 0x36, 0x98, 0x4c, 0x63, 0x15, 0xac, 0x64, 0x6f, + 0x41, 0xd6, 0x53, 0x64, 0xeb, 0xae, 0xde, 0xc7, 0xd8, 0x5e, 0x0e, 0x60, 0xbb, 0xa8, 0x32, 0x99, + 0xad, 0x9d, 0x5a, 0x5b, 0x8e, 0x7c, 0x8a, 0xf8, 0xec, 0x79, 0xd6, 0x02, 0xda, 0xe0, 0x24, 0x63, + 0x38, 0x78, 0x55, 0xac, 0x60, 0x73, 0xd9, 0xd1, 0xba, 0xac, 0x2d, 0x61, 0x1b, 0xb8, 0x5b, 0xcd, + 0x30, 0x3a, 0x93, 0x2d, 0xcf, 0x40, 0x8b, 0x19, 0x1b, 0xa2, 0x94, 0xdb, 0x20, 0xcd, 0x5c, 0x43, + 0xdc, 0x02, 0x97, 0x55, 0x3e, 0xcf, 0x83, 0xd8, 0xd6, 0x39, 0x63, 0xa7, 0xdb, 0xae, 0x55, 0xbc, + 0x5b, 0xa4, 0x9c, 0x6e, 0xa3, 0xdb, 0x9a, 0x59, 0xed, 0x27, 0xc5, 0x67, 0x2d, 0xd3, 0x99, 0x7d, + 0xe8, 0x94, 0x80, 0xfe, 0xae, 0x72, 0x10, 0x9c, 0xcf, 0xa0, 0x16, 0x95, 0x30, 0x6b, 0xac, 0xdc, + 0x26, 0x6f, 0x37, 0x35, 0x81, 0x56, 0xa9, 0xf1, 0xfe, 0x84, 0x1a, 0xf7, 0xc9, 0x16, 0x24, 0x82, + 0x13, 0xb0, 0x2e, 0x45, 0x75, 0x00, 0x3b, 0x90, 0xe6, 0x37, 0x05, 0xe6, 0x31, 0x4d, 0xb5, 0xa8, + 0x75, 0xc2, 0x7e, 0x1a, 0x5b, 0x0a, 0x4e, 0xd3, 0x5c, 0x7d, 0x41, 0xf0, 0x0a, 0x1b, 0x71, 0x8a, + 0x8a, 0x3f, 0x96, 0xae, 0x22, 0x56, 0x33, 0x90, 0x33, 0x7c, 0xc7, 0x47, 0x52, 0x6d, 0xc1, 0x89, + 0x55, 0xc8, 0x0b, 0x0b, 0xee, 0x8f, 0x12, 0x7d, 0xd2, 0x68, 0x1f, 0x9a, 0xb0, 0x33, 0x5a, 0x7f, + 0x82, 0xe4, 0x5e, 0x1b, 0xb0, 0x7b, 0xb7, 0x50, 0x16, 0xf2, 0xf6, 0x7f, 0xd0, 0xc5, 0xac, 0x78, + 0xe4, 0x80, 0xda, 0x76, 0xab, 0x12, 0x12, 0xda, 0x88, 0xa5, 0x1f, 0xde, 0x6c, 0x84, 0xa1, 0xed, + 0xa0, 0xbd, 0xdb, 0x29, 0x5b, 0x94, 0x0d, 0xaa, 0x11, 0x96, 0x45, 0x7e, 0xa3, 0x29, 0x07, 0xd2, + 0x19, 0x5e, 0xd7, 0xd1, 0x97, 0xbb, 0x4b, 0x20, 0x3d, 0x94, 0x62, 0x8c, 0xd4, 0x50, 0x8b, 0xca, + 0x67, 0xb2, 0xbf, 0x60, 0x98, 0xf9, 0x58, 0xa7, 0x93, 0xce, 0x33, 0x9b, 0xd6, 0x31, 0x8b, 0x54, + 0x09, 0x98, 0x09, 0xde, 0xd4, 0xbb, 0xc1, 0x9f, 0xe6, 0xd9, 0x06, 0x45, 0xb1, 0x7d, 0x2a, 0x0a, + 0x66, 0x40, 0xa6, 0x07, 0x8b, 0x42, 0x0f, 0xfd, 0x8a, 0x65, 0x31, 0xe5, 0xa4, 0x66, 0xaa, 0xa9, + 0x51, 0x99, 0xad, 0x20, 0x5b, 0x75, 0x8d, 0xb1, 0x53, 0x9d, 0x70, 0xd9, 0xb3, 0x83, 0x59, 0x32, + 0xf9, 0x24, 0x3e, 0x7f, 0x6d, 0x25, 0xca, 0x1b, 0x3d, 0x69, 0x0b, 0xc7, 0x10, 0x9f, 0xf9, 0x81, + 0x3c, 0x65, 0x35, 0x24, 0x47, 0x59, 0x0d, 0xc1, 0x58, 0x94, 0x0b, 0xed, 0x4c, 0x61, 0xfb, 0x5b, + 0xd2, 0x6d, 0xc9, 0x4a, 0x18, 0x3b, 0xbf, 0x4c, 0x16, 0xc2, 0x5b, 0x81, 0x9d, 0x0e, 0xd5, 0xd9, + 0x6e, 0x8a, 0xad, 0x61, 0x50, 0x19, 0x6c, 0xbf, 0x10, 0x9d, 0x5b, 0xaf, 0x28, 0xfe, 0x28, 0x89, + 0xe6, 0x0d, 0x33, 0x5f, 0x18, 0xa8, 0xcd, 0x2d, 0xf9, 0xe8, 0x8e, 0x3d, 0x2f, 0x0e, 0xd4, 0x9b, + 0x36, 0x74, 0x87, 0xae, 0x0e, 0x44, 0xd8, 0x49, 0x24, 0xfb, 0xe0, 0x6a, 0x6c, 0x9b, 0x0a, 0x8c, + 0x59, 0xb9, 0xa1, 0x7b, 0x4c, 0x58, 0x25, 0x86, 0x35, 0x5e, 0x17, 0xb3, 0xd1, 0x13, 0x0d, 0x64, + 0x25, 0x40, 0x98, 0x43, 0xb7, 0x91, 0x8c, 0xce, 0x09, 0x61, 0x4b, 0xe6, 0xe7, 0x78, 0x20, 0x3b, + 0xf1, 0x7c, 0x65, 0x8c, 0x02, 0x65, 0xcc, 0xc6, 0x71, 0x9c, 0x1a, 0xe4, 0xd8, 0x7a, 0xc5, 0xb5, + 0x51, 0x9a, 0x93, 0x77, 0x0a, 0x04, 0x25, 0xd4, 0x5c, 0x29, 0x46, 0x7e, 0x3c, 0xae, 0x45, 0x30, + 0xdf, 0xb1, 0x9f, 0xf6, 0x17, 0x18, 0xf4, 0xad, 0x37, 0xef, 0x8a, 0xf8, 0x35, 0x06, 0x33, 0x38, + 0xc4, 0xb4, 0xd6, 0x4c, 0x74, 0x27, 0x1b, 0xcc, 0x77, 0x1c, 0xd8, 0xb4, 0x0d, 0xfd, 0xc8, 0x41, + 0x64, 0xeb, 0xdc, 0x6c, 0x3f, 0xd1, 0x06, 0xda, 0xc1, 0x6f, 0xb5, 0xc1, 0x53, 0x26, 0x1b, 0x6c, + 0x43, 0xea, 0xdf, 0x81, 0x3c, 0x61, 0x57, 0xf1, 0x05, 0x98, 0x3f, 0xfb, 0x02, 0x74, 0x38, 0x6b, + 0xfe, 0xe3, 0x80, 0x7f, 0x18, 0x5b, 0xf1, 0x69, 0x61, 0x36, 0xc2, 0x4a, 0x56, 0x93, 0x33, 0x8f, + 0x44, 0x7c, 0x3f, 0xca, 0x9c, 0x4f, 0xab, 0x56, 0xfe, 0x8b, 0x08, 0x47, 0xaf, 0x51, 0x3f, 0x13, + 0x63, 0xda, 0x3b, 0xe0, 0x66, 0xcf, 0xc2, 0x00, 0xeb, 0x3b, 0x7e, 0x9d, 0x98, 0x5e, 0xd5, 0xcd, + 0x5c, 0xe7, 0xc5, 0xe4, 0xf2, 0x0b, 0xb0, 0xc0, 0x54, 0x11, 0xe4, 0xc4, 0x02, 0xe1, 0x7e, 0xfd, + 0x1e, 0x70, 0xdc, 0x42, 0x96, 0xfc, 0x39, 0x3a, 0xb3, 0x88, 0x2e, 0x07, 0xa8, 0x99, 0x3f, 0x09, + 0xfd, 0x9a, 0xca, 0x6e, 0x43, 0x77, 0x90, 0xa3, 0x3c, 0x85, 0xb0, 0x93, 0x4e, 0x09, 0xb5, 0x7a, + 0xbe, 0xef, 0xd7, 0xf8, 0xc2, 0x2f, 0x0c, 0xf8, 0x2f, 0x9b, 0x2a, 0x42, 0xdc, 0x11, 0xd4, 0x58, + 0x0b, 0xee, 0xd8, 0xd4, 0xf5, 0x10, 0xa8, 0xaa, 0xff, 0xe3, 0x75, 0xff, 0x45, 0x4f, 0x24, 0x90, + 0x8a, 0xbc, 0x0d, 0x54, 0x65, 0x21, 0x6e, 0x67, 0xb7, 0x1f, 0x54, 0x33, 0x9c, 0x2d, 0xb0, 0x1c, + 0xa1, 0x59, 0x6e, 0xb8, 0x99, 0xd6, 0xf7, 0xe0, 0x89, 0x82, 0x3b, 0x8e, 0xcd, 0x9f, 0xde, 0xb5, + 0x73, 0x8d, 0xff, 0x72, 0x08, 0x44, 0x43, 0xc1, 0xd7, 0x03, 0xd9, 0x3c, 0xed, 0xf5, 0x91, 0x8e, + 0x75, 0xcd, 0xfc, 0xdc, 0xdd, 0x51, 0x70, 0xeb, 0x32, 0x28, 0x54, 0xa3, 0x76, 0x41, 0x96, 0x73, + 0x5d, 0xd3, 0x51, 0xa2, 0xd8, 0x1d, 0xf1, 0xbf, 0x8d, 0x39, 0x16, 0xb4, 0x73, 0x7d, 0x2b, 0xfd, + 0x59, 0xb6, 0x0e, 0xe2, 0xb2, 0x50, 0x88, 0xef, 0x53, 0xfd, 0xab, 0xa1, 0x8c, 0xbd, 0x75, 0xe0, + 0x14, 0x4d, 0x21, 0xc9, 0x56, 0x2c, 0x87, 0xef, 0x39, 0x28, 0x87, 0xef, 0xa9, 0xc0, 0xf0, 0x54, + 0x9b, 0x07, 0x7d, 0x1e, 0x70, 0xb6, 0xdf, 0x6a, 0x73, 0x41, 0xa1, 0x41, 0x8b, 0xf2, 0x1a, 0x6f, + 0xe0, 0xcd, 0xb0, 0x33, 0xbc, 0x90, 0x37, 0x73, 0xb9, 0xb7, 0xb4, 0x72, 0x1f, 0xf6, 0x18, 0xf8, + 0xaa, 0x08, 0xa6, 0xae, 0x46, 0x98, 0x57, 0xfa, 0x75, 0xb4, 0xa3, 0x47, 0x55, 0xb5, 0x30, 0x19, + 0xe5, 0x9f, 0xae, 0x10, 0xbf, 0x73, 0x65, 0x20, 0x0b, 0xd3, 0x7b, 0x2d, 0xea, 0x82, 0x0e, 0xd4, + 0xde, 0x70, 0x5c, 0xa3, 0x1b, 0x4f, 0xac, 0x2e, 0x5b, 0x19, 0xe4, 0x89, 0x7a, 0x76, 0xd6, 0xff, + 0xbe, 0x85, 0xef, 0x60, 0xdc, 0x1a, 0xb3, 0xce, 0xec, 0xca, 0x84, 0xc7, 0x55, 0x77, 0xba, 0xa0, + 0x0a, 0xb9, 0xae, 0xb7, 0xfa, 0x79, 0xf0, 0x16, 0x7e, 0x1f, 0xf1, 0x73, 0x53, 0xdf, 0xf3, 0x50, + 0xd8, 0x94, 0xd9, 0x92, 0x7d, 0xac, 0x0b, 0xdb, 0xad, 0xec, 0xce, 0xa5, 0x6e, 0x0e, 0x7c, 0x18, + 0xc3, 0x59, 0xb8, 0xc4, 0x0d, 0x62, 0xaa, 0xd3, 0x06, 0x3e, 0x51, 0xfb, 0xd3, 0xdf, 0xdf, 0xd9, + 0x81, 0x08, 0xf6, 0x99, 0x1c, 0xff, 0xf4, 0x8a, 0x39, 0xd9, 0x9a, 0xf2, 0xf1, 0x0e, 0x84, 0xd7, + 0x63, 0x4e, 0xfe, 0x88, 0xde, 0x44, 0x0d, 0x1e, 0xd7, 0x4a, 0x53, 0xd9, 0x1f, 0x5e, 0xfd, 0xc3, + 0xeb, 0xb6, 0x59, 0x50, 0x63, 0xe6, 0xce, 0xec, 0x30, 0xb9, 0xfe, 0x70, 0x01, 0x66, 0xfc, 0xd3, + 0x05, 0xf0, 0xd0, 0x3d, 0x25, 0x33, 0xff, 0xd2, 0x0e, 0xb6, 0x16, 0x98, 0x01, 0xd3, 0x6d, 0x0e, + 0xc8, 0xcd, 0xc4, 0x3c, 0xad, 0x74, 0x87, 0x2a, 0xa6, 0xdb, 0xf8, 0x3c, 0x4c, 0xcf, 0xe8, 0xfa, + 0x5a, 0x0b, 0x54, 0x01, 0xf7, 0xad, 0xd9, 0xc0, 0x63, 0xaa, 0x1a, 0x0f, 0x86, 0xf9, 0x4f, 0xe2, + 0xd7, 0x5c, 0xaa, 0x87, 0x19, 0xaa, 0xba, 0xac, 0xc9, 0x1f, 0x3e, 0x67, 0xd6, 0x60, 0xda, 0xe9, + 0x94, 0x4e, 0xe4, 0x4f, 0xae, 0x15, 0xd4, 0x28, 0xa5, 0x5e, 0xc1, 0x38, 0xd3, 0x29, 0x0e, 0xca, + 0x0b, 0xa9, 0x26, 0x57, 0xd5, 0x1a, 0x6b, 0xca, 0xa1, 0x88, 0x41, 0x73, 0xa4, 0x8b, 0x68, 0x96, + 0x56, 0xb1, 0xb1, 0xd5, 0xe6, 0x17, 0xdc, 0x5a, 0x85, 0x6d, 0xe5, 0x9f, 0xf4, 0xc2, 0x00, 0x72, + 0x8f, 0x3c, 0xaa, 0x3b, 0x9d, 0x12, 0x19, 0x0c, 0x13, 0x95, 0xda, 0xef, 0x89, 0x69, 0xbe, 0xff, + 0x31, 0x50, 0x07, 0x23, 0xc7, 0xcd, 0x36, 0xa8, 0x3e, 0x10, 0xf9, 0xf7, 0xfd, 0x01, 0x18, 0x39, + 0xe2, 0xe9, 0xf4, 0xf3, 0x26, 0xd4, 0x7e, 0x9f, 0xe8, 0xb4, 0x26, 0x7f, 0xf4, 0x9c, 0xb9, 0xec, + 0x9f, 0x5e, 0xb7, 0xc2, 0xf1, 0xf0, 0x2c, 0xa4, 0xf4, 0xff, 0x7c, 0xd5, 0x36, 0x9b, 0xd5, 0xa4, + 0x86, 0x41, 0x93, 0x89, 0x39, 0x4d, 0xc7, 0x3c, 0xef, 0xe9, 0x83, 0x9f, 0x0c, 0x54, 0xaf, 0x21, + 0x9e, 0xd5, 0xa2, 0xf3, 0xad, 0xf8, 0xe3, 0x21, 0x4b, 0xe9, 0x7f, 0xbe, 0xf2, 0xc2, 0xef, 0x6b, + 0x4f, 0x08, 0x74, 0xd7, 0x24, 0x42, 0x49, 0xf9, 0x0c, 0xad, 0xec, 0xe0, 0xf6, 0x3c, 0x0f, 0x79, + 0xf1, 0x96, 0xcc, 0x40, 0x6e, 0xd3, 0xdf, 0xc1, 0xb3, 0xb0, 0x64, 0xb9, 0xc5, 0x6a, 0x01, 0xb6, + 0x21, 0x9c, 0x33, 0x08, 0x73, 0xef, 0xac, 0xa1, 0x13, 0xc9, 0x7f, 0x78, 0xdd, 0x7c, 0xff, 0xed, + 0x2b, 0xfa, 0xc0, 0x7c, 0x7f, 0x51, 0xea, 0xed, 0x2b, 0xfb, 0x38, 0xcb, 0xfd, 0xe6, 0x99, 0x3f, + 0xf9, 0xbd, 0x55, 0x77, 0x6a, 0xe5, 0x77, 0x56, 0xf6, 0xf1, 0x22, 0x8c, 0x18, 0x3d, 0x9d, 0x81, + 0x74, 0x0b, 0x42, 0x7f, 0x30, 0xf2, 0xef, 0xbf, 0x0b, 0x24, 0xe7, 0xde, 0x42, 0xed, 0x2c, 0xa8, + 0xdb, 0xc0, 0xc2, 0x9d, 0x79, 0xf6, 0xed, 0x15, 0x42, 0xe9, 0xe1, 0xdf, 0x15, 0x5f, 0x6c, 0x07, + 0xd6, 0x9f, 0x18, 0xae, 0xa9, 0x3f, 0xd1, 0x7d, 0x95, 0x04, 0x93, 0x45, 0x83, 0x18, 0x7d, 0xd4, + 0x9a, 0x74, 0x08, 0x31, 0x8a, 0xd2, 0x66, 0x86, 0x35, 0xa9, 0x6a, 0x25, 0xc3, 0xe3, 0x0a, 0x51, + 0x63, 0x4e, 0x25, 0x8a, 0xf2, 0x44, 0xfc, 0x3f, 0x1f, 0x8a, 0x0e, 0x45, 0xdf, 0xda, 0xc8, 0x7a, + 0x5b, 0x17, 0xe3, 0x43, 0x52, 0xc2, 0x7d, 0x43, 0x41, 0xb6, 0x7b, 0x68, 0x48, 0xb9, 0x1f, 0x78, + 0x3e, 0x8d, 0x68, 0x86, 0xaa, 0xaa, 0x55, 0x64, 0xfd, 0xfc, 0xfb, 0xe1, 0xc1, 0x55, 0x74, 0xfe, + 0x52, 0x78, 0x08, 0x74, 0x55, 0xdd, 0x18, 0xa2, 0x37, 0xc0, 0xa6, 0xe7, 0x41, 0x3c, 0xd2, 0x8d, + 0x54, 0xed, 0xa2, 0xdd, 0x6c, 0x23, 0xd2, 0x60, 0x37, 0xc6, 0xb0, 0xdb, 0x68, 0x1c, 0xce, 0xc7, + 0x5f, 0x2b, 0xb8, 0x51, 0x53, 0x25, 0x7f, 0x3e, 0x90, 0x6d, 0xb0, 0x02, 0x1c, 0xf5, 0x8a, 0xd0, + 0x57, 0xc1, 0x7e, 0x2b, 0xc1, 0xd1, 0xca, 0x99, 0x79, 0x36, 0x47, 0xb3, 0xa3, 0xaa, 0x0b, 0x29, + 0xb0, 0xc2, 0x8c, 0xba, 0xd1, 0x87, 0x3d, 0x55, 0x51, 0x9b, 0x13, 0x2a, 0x97, 0x73, 0xd8, 0x2a, + 0x05, 0x55, 0x2b, 0x11, 0x1b, 0xf9, 0x6f, 0x77, 0xda, 0x4a, 0xa1, 0xba, 0x35, 0x75, 0x57, 0xb8, + 0x7e, 0x52, 0x3b, 0x8a, 0x4b, 0xc0, 0xbd, 0xb7, 0xa3, 0x15, 0xd2, 0xa7, 0x50, 0xdd, 0x2b, 0x57, + 0x7c, 0xd4, 0x33, 0xd4, 0x75, 0x24, 0xda, 0xae, 0x1f, 0xec, 0xaa, 0x5e, 0x85, 0x12, 0x48, 0xc5, + 0xfe, 0xc8, 0x50, 0xd4, 0xec, 0xfc, 0xe3, 0xbe, 0x3f, 0x5e, 0x80, 0xa2, 0xcc, 0xf4, 0x2c, 0x2b, + 0x70, 0xf9, 0x56, 0xe0, 0x65, 0xfb, 0xbb, 0xe7, 0x9e, 0xd9, 0xb0, 0x82, 0x78, 0x01, 0x48, 0x7e, + 0xed, 0x2d, 0x4e, 0xe0, 0xe8, 0xfe, 0x0d, 0xad, 0x9a, 0x6c, 0xbb, 0xf3, 0x65, 0xf2, 0xfe, 0xbd, + 0x65, 0x37, 0x1f, 0x58, 0x11, 0x10, 0xfa, 0xc2, 0x0b, 0x53, 0x51, 0xe3, 0xa1, 0x92, 0x9e, 0x3d, + 0xb2, 0xa2, 0x32, 0xec, 0x5b, 0x65, 0x99, 0xf0, 0xe1, 0xb3, 0x55, 0x2b, 0x0e, 0x46, 0x86, 0x56, + 0x9c, 0x7d, 0x66, 0x43, 0x57, 0x7b, 0x6a, 0x5f, 0xb8, 0xde, 0x10, 0x8b, 0x61, 0x29, 0x65, 0x50, + 0xf1, 0x66, 0x47, 0xe5, 0x5a, 0x8b, 0xee, 0xa3, 0x1d, 0xc7, 0x1e, 0x3d, 0xd2, 0x25, 0xc3, 0x83, + 0x94, 0x58, 0x79, 0x20, 0x72, 0xac, 0xcb, 0xec, 0xfa, 0xe3, 0x7e, 0x84, 0xc7, 0x91, 0x95, 0x9e, + 0x89, 0xf0, 0x14, 0x34, 0x22, 0x3c, 0x0c, 0x0a, 0xca, 0x4b, 0x86, 0x4c, 0x9b, 0xc4, 0x2c, 0xcc, + 0x6f, 0xb5, 0x38, 0xb0, 0x37, 0x63, 0x2f, 0x6f, 0xbf, 0xf9, 0x60, 0x57, 0x7f, 0x78, 0xa1, 0x31, + 0x56, 0xdf, 0x23, 0x5d, 0x95, 0xe1, 0xfe, 0x70, 0xad, 0xda, 0xb7, 0x4a, 0xd4, 0xcb, 0xa5, 0x51, + 0x58, 0x50, 0x3f, 0xf8, 0x28, 0x96, 0x32, 0x81, 0x30, 0x88, 0xe5, 0xac, 0xa5, 0xfa, 0x99, 0xdd, + 0x3f, 0xb9, 0x00, 0xae, 0x7f, 0xdf, 0x8f, 0x72, 0xc7, 0x15, 0x8b, 0xeb, 0xa7, 0x87, 0x7e, 0x7b, + 0x01, 0xdc, 0x0b, 0x33, 0x98, 0xb6, 0xa3, 0xbf, 0x9b, 0x64, 0xed, 0x52, 0xc8, 0x5c, 0xf6, 0x75, + 0xe3, 0x0a, 0xac, 0xfb, 0x56, 0x73, 0x19, 0xf6, 0x0f, 0x13, 0x8e, 0xd5, 0xf9, 0x3f, 0xf9, 0x7d, + 0xf9, 0xa5, 0x45, 0xb0, 0xeb, 0xd1, 0x85, 0xe9, 0x5b, 0x1e, 0x5d, 0x06, 0xb7, 0xec, 0xaa, 0xe1, + 0x6a, 0x38, 0xdf, 0x8a, 0xfe, 0x47, 0xfd, 0x97, 0xc4, 0x45, 0x66, 0xaf, 0xc5, 0x2d, 0x2e, 0xff, + 0xed, 0x2b, 0x0b, 0x9d, 0xd6, 0x16, 0xa8, 0xfe, 0xd9, 0xef, 0x67, 0x5f, 0x5e, 0x04, 0x3f, 0x7d, + 0x05, 0xe3, 0x9e, 0x61, 0x71, 0x77, 0x8f, 0xc6, 0x3d, 0xfc, 0xfb, 0x5d, 0x9d, 0x0b, 0x8f, 0x6c, + 0xe9, 0x34, 0xbb, 0xb1, 0x37, 0x15, 0x58, 0x54, 0xb7, 0xff, 0x2f, 0xe0, 0xaa, 0x56, 0xf8, 0xd6, + 0xfa, 0x2f, 0x1f, 0x7e, 0x05, 0xe1, 0xda, 0x2f, 0xee, 0x36, 0x97, 0xc4, 0x4b, 0xea, 0x19, 0x5f, + 0xd2, 0xe1, 0xdf, 0x8b, 0x6f, 0xdf, 0xd1, 0x48, 0xe3, 0x04, 0xfe, 0xf2, 0xc0, 0xe3, 0xaf, 0x0a, + 0x54, 0x0f, 0x44, 0xe7, 0x3e, 0x3a, 0x77, 0xad, 0x30, 0x9b, 0xe6, 0x2a, 0xeb, 0x4f, 0x90, 0x35, + 0x29, 0x18, 0x94, 0x63, 0xf5, 0x45, 0xc9, 0xc6, 0x24, 0xf6, 0xbc, 0x81, 0xe2, 0x8f, 0x59, 0x6c, + 0x9e, 0xee, 0x9a, 0x84, 0x9d, 0x58, 0xba, 0xfb, 0xa7, 0xfb, 0xcd, 0x37, 0x59, 0x2b, 0x6e, 0x6f, + 0xa2, 0x78, 0xf8, 0x8b, 0x5f, 0x30, 0x8f, 0x8a, 0xaf, 0x37, 0xc5, 0x72, 0x5c, 0xc6, 0xf7, 0x47, + 0xeb, 0x8f, 0xb3, 0xdc, 0xa2, 0x82, 0xeb, 0xeb, 0x74, 0x62, 0x5b, 0xdd, 0x8f, 0xf9, 0x15, 0x7f, + 0x02, 0x6a, 0xb1, 0x19, 0x7f, 0x93, 0xcc, 0xae, 0xaf, 0x37, 0x42, 0x12, 0x24, 0x89, 0x22, 0xb6, + 0x8d, 0xc6, 0x9f, 0x19, 0xc3, 0x32, 0x8e, 0x1e, 0xba, 0x63, 0x2b, 0x58, 0x8b, 0x1e, 0xc2, 0x3e, + 0x6b, 0x61, 0x38, 0x5d, 0x08, 0x99, 0xad, 0x5f, 0x17, 0x8d, 0x48, 0x4b, 0x1a, 0x7f, 0x06, 0xd1, + 0x8a, 0x39, 0x89, 0xe2, 0xca, 0x34, 0x35, 0xd4, 0x25, 0xc2, 0xb5, 0x46, 0xfc, 0x96, 0x14, 0xd0, + 0xb4, 0xa6, 0x18, 0xa3, 0x62, 0x36, 0x4b, 0xf3, 0x63, 0xc8, 0x6c, 0xff, 0xba, 0xb1, 0x4b, 0x4c, + 0x7d, 0xf1, 0x02, 0x58, 0xeb, 0xb4, 0x2f, 0x5c, 0x00, 0x7b, 0x3d, 0x5c, 0xcb, 0x32, 0xc2, 0x99, + 0xd5, 0x9b, 0xf7, 0x7d, 0xb0, 0x7a, 0x43, 0xb4, 0x95, 0x7b, 0x0f, 0x7b, 0x43, 0xf9, 0x87, 0xc0, + 0x99, 0xd6, 0x96, 0x9f, 0x05, 0xee, 0xee, 0x0a, 0xd0, 0xe1, 0x78, 0x6d, 0xdd, 0xba, 0x6a, 0x5e, + 0x27, 0x4a, 0x6e, 0x6a, 0xba, 0x87, 0x62, 0x6b, 0xb7, 0x7c, 0x92, 0x0d, 0xfd, 0xfa, 0xfd, 0x11, + 0x94, 0x30, 0x0a, 0x48, 0x9a, 0x54, 0xfa, 0xb3, 0x95, 0x9d, 0xd4, 0xa3, 0x73, 0x37, 0x46, 0xec, + 0xcf, 0x66, 0x93, 0x72, 0x8a, 0x02, 0x7b, 0x56, 0x7e, 0x90, 0xfb, 0x90, 0xdd, 0x68, 0x1e, 0x62, + 0xf7, 0x99, 0x6f, 0x44, 0x6d, 0x4a, 0xac, 0x43, 0x0d, 0x22, 0x7f, 0xd9, 0x84, 0xfe, 0x70, 0x93, + 0xf6, 0xbd, 0x55, 0xd1, 0xac, 0xaa, 0xce, 0xca, 0xf0, 0xfd, 0x61, 0x0b, 0x77, 0xe2, 0x59, 0x4f, + 0x52, 0x93, 0x16, 0xfb, 0x5b, 0x92, 0x2f, 0x2a, 0xa6, 0xeb, 0x92, 0xa4, 0xf0, 0xc2, 0x42, 0x99, + 0x66, 0xed, 0x1d, 0x1c, 0xb7, 0xf1, 0x77, 0x22, 0xef, 0xeb, 0xee, 0x0b, 0xb7, 0xc4, 0xd3, 0x6c, + 0xe8, 0xa2, 0x34, 0x07, 0x27, 0x64, 0xfc, 0xce, 0xb7, 0x4a, 0x96, 0x07, 0x02, 0xea, 0x3d, 0xab, + 0x70, 0xdc, 0x8e, 0x06, 0xf8, 0xaa, 0x28, 0xd2, 0x9b, 0x96, 0xf6, 0xe2, 0xf5, 0x85, 0x9b, 0x31, + 0xb4, 0x79, 0x2d, 0xbb, 0x99, 0x7c, 0x33, 0x7e, 0x97, 0x77, 0xd6, 0xb0, 0xb3, 0x85, 0x33, 0xc8, + 0x5a, 0x42, 0x11, 0x42, 0xe9, 0x4e, 0xb7, 0xa0, 0xc4, 0x47, 0xb7, 0x87, 0x6b, 0xde, 0xa3, 0x99, + 0x06, 0x0b, 0x4c, 0x10, 0x1c, 0xe5, 0x17, 0x33, 0x39, 0xb6, 0x5e, 0xc4, 0xd3, 0x9a, 0x24, 0x7e, + 0xd3, 0x2a, 0xdf, 0x26, 0xb2, 0xdb, 0xbc, 0x39, 0x3a, 0xd1, 0x3e, 0xf3, 0xd2, 0x31, 0x10, 0x52, + 0x12, 0xef, 0x8c, 0x34, 0x91, 0xd4, 0xd9, 0xd0, 0xee, 0x3d, 0xf6, 0x3c, 0x58, 0x6d, 0x1a, 0x76, + 0x0f, 0x32, 0xdd, 0x53, 0x7e, 0x3a, 0x79, 0xba, 0x7c, 0x87, 0xbc, 0x50, 0xe6, 0x5e, 0xc4, 0x1b, + 0x28, 0xe4, 0xa6, 0x34, 0xab, 0x03, 0xf9, 0xa3, 0xdb, 0x50, 0x22, 0xa4, 0xd0, 0x6d, 0xc5, 0x24, + 0x1f, 0xfe, 0x66, 0xc0, 0x8f, 0x03, 0x32, 0xb5, 0x26, 0x48, 0x26, 0xa7, 0x6f, 0x8d, 0x52, 0xbe, + 0xbd, 0xf8, 0x2f, 0x7d, 0x60, 0xd1, 0xbe, 0xbd, 0x66, 0xec, 0xdd, 0xc4, 0x74, 0x3b, 0x32, 0x8c, + 0x60, 0x29, 0x49, 0xa3, 0xa5, 0xb0, 0xf3, 0x19, 0x7c, 0x2b, 0xb0, 0x3b, 0xc8, 0xbf, 0xc5, 0x6e, + 0x1f, 0xff, 0x8e, 0x50, 0xec, 0x5e, 0x04, 0x9c, 0xe0, 0xa0, 0xdf, 0xd8, 0x6e, 0x66, 0xcb, 0x98, + 0xbb, 0x7b, 0xad, 0xf2, 0xad, 0x6d, 0x3b, 0xaf, 0xcf, 0xcb, 0x43, 0x77, 0x8a, 0xa4, 0xd1, 0x6e, + 0xcc, 0xd8, 0xfd, 0x8a, 0x6c, 0xa5, 0x21, 0xd3, 0x96, 0x24, 0xdf, 0xb6, 0x4e, 0xf7, 0xfb, 0xda, + 0x52, 0x6d, 0x2a, 0x6f, 0xff, 0xb5, 0x11, 0xb2, 0xa5, 0xa5, 0x40, 0x3c, 0xb7, 0xfc, 0x52, 0x01, + 0x60, 0x5a, 0x75, 0x60, 0x92, 0x68, 0xca, 0x4c, 0xcf, 0x40, 0x6e, 0x94, 0x66, 0xa5, 0xbe, 0xa1, + 0xef, 0xba, 0xa5, 0x04, 0xb8, 0x5b, 0x8a, 0xd1, 0xdd, 0xed, 0x0b, 0x8b, 0x6a, 0xc1, 0x19, 0x84, + 0xdf, 0x0c, 0xd4, 0x1e, 0x17, 0x8d, 0x54, 0x47, 0x77, 0xb0, 0x0f, 0x62, 0xb7, 0x4e, 0x92, 0x5e, + 0x7c, 0xad, 0x87, 0xd9, 0xe7, 0x52, 0x34, 0xd0, 0xfd, 0x61, 0xba, 0x35, 0x5e, 0x58, 0x47, 0xf7, + 0x41, 0x0b, 0xd1, 0xf8, 0x5d, 0xd2, 0x1d, 0xde, 0xa5, 0x70, 0xfa, 0xc9, 0x74, 0x38, 0xfd, 0xd3, + 0x8b, 0xf8, 0x9c, 0xc5, 0xe7, 0x3c, 0x9c, 0xee, 0xc7, 0xe7, 0x85, 0x02, 0x38, 0xfd, 0xeb, 0x6a, + 0x38, 0xfd, 0x0b, 0x2b, 0x9c, 0xde, 0xe9, 0x80, 0xd3, 0xff, 0xdc, 0x8a, 0x61, 0x1b, 0xe0, 0xf4, + 0xbf, 0x2c, 0xc7, 0xf7, 0x25, 0x38, 0xfd, 0x1b, 0x0c, 0xff, 0x8d, 0x0b, 0x4e, 0x6f, 0xc7, 0x6f, + 0xff, 0x7a, 0x0a, 0xdd, 0xdd, 0x18, 0x77, 0x07, 0xc6, 0xed, 0x43, 0xff, 0x09, 0x38, 0xfd, 0x74, + 0x18, 0xe3, 0x55, 0xc0, 0xe9, 0xdd, 0xf3, 0xf1, 0x79, 0x0a, 0x4e, 0xbf, 0x88, 0xf9, 0xfd, 0xeb, + 0x59, 0x89, 0x0e, 0x7a, 0xfc, 0x77, 0xff, 0x8c, 0x73, 0x4b, 0x7d, 0x85, 0xc2, 0x8f, 0x5a, 0x42, + 0x0f, 0xd5, 0xd6, 0x37, 0x2f, 0x5c, 0x94, 0xdb, 0xb8, 0xb8, 0x36, 0xf4, 0x60, 0xe8, 0xc7, 0x42, + 0xfe, 0x3d, 0xb9, 0x79, 0x82, 0x39, 0x2f, 0x17, 0x5f, 0xf6, 0x69, 0x79, 0x53, 0x6e, 0x4a, 0x86, + 0xeb, 0xe2, 0x00, 0x78, 0xae, 0xc2, 0xe9, 0x9f, 0x20, 0x3c, 0xfb, 0xae, 0x84, 0xa7, 0x4e, 0x44, + 0x98, 0x7f, 0xf2, 0x28, 0x3e, 0x8b, 0xf1, 0x19, 0x88, 0x65, 0xcf, 0x59, 0xe0, 0xf4, 0xe3, 0x3b, + 0x99, 0xf3, 0xf4, 0x93, 0xee, 0x07, 0x62, 0x59, 0x08, 0xee, 0x07, 0x9b, 0xeb, 0x1a, 0xeb, 0x43, + 0x00, 0xdf, 0x0f, 0xd4, 0xb7, 0x36, 0xd7, 0xb7, 0xb7, 0x3e, 0x18, 0x0c, 0x2e, 0x5e, 0xd8, 0xd2, + 0xfc, 0xbf, 0x04, 0xc5, 0x21, 0xf8, 0x5b, 0x96, 0x36, 0xd7, 0x15, 0x0a, 0x93, 0x97, 0x08, 0xc9, + 0x50, 0x72, 0x9f, 0xb7, 0xd0, 0x86, 0x7f, 0xf7, 0x2d, 0x6d, 0x0d, 0x2e, 0x6d, 0x15, 0x1e, 0x58, + 0xdc, 0x5c, 0xd7, 0xf2, 0x23, 0x5b, 0x49, 0xc5, 0x7d, 0x55, 0xa5, 0xb6, 0xe2, 0x39, 0xd5, 0xf7, + 0xd9, 0x1e, 0x28, 0x2e, 0xaf, 0x06, 0x03, 0x08, 0x06, 0x28, 0xa9, 0x28, 0x87, 0xea, 0xfb, 0xee, + 0xab, 0xa8, 0xf4, 0x95, 0x43, 0xee, 0xe2, 0x66, 0x7f, 0x0b, 0xd8, 0x0a, 0xe1, 0xfe, 0xa5, 0x2d, + 0xad, 0xf5, 0xf1, 0xc2, 0xcd, 0xf6, 0xf6, 0xc9, 0xf6, 0x82, 0xf6, 0x29, 0xc9, 0x50, 0xd5, 0xfa, + 0x60, 0xa8, 0x35, 0x1e, 0x5e, 0x28, 0x04, 0x5b, 0x43, 0xc2, 0x77, 0x85, 0xc9, 0xc1, 0x64, 0x60, + 0x81, 0x2d, 0x2d, 0x0f, 0x5d, 0x17, 0xc5, 0x75, 0x5f, 0x95, 0xf3, 0xc1, 0x25, 0xf5, 0x2c, 0x9a, + 0x55, 0xa8, 0xaa, 0x0f, 0x34, 0xd5, 0x37, 0xb7, 0x26, 0x26, 0xa2, 0x68, 0xf0, 0x80, 0xb3, 0xa4, + 0xa5, 0xd9, 0xbf, 0x38, 0x60, 0x9e, 0x22, 0x34, 0xb7, 0xb4, 0x0a, 0x8b, 0x9b, 0x82, 0x8d, 0xf5, + 0x14, 0xb1, 0xbe, 0x2e, 0x57, 0xa8, 0x9c, 0xf6, 0x5d, 0x2a, 0x5e, 0xa8, 0xcc, 0x63, 0x6f, 0x4c, + 0x56, 0xec, 0x75, 0x95, 0xfa, 0xb0, 0x19, 0xaa, 0x5b, 0x5a, 0x1a, 0x97, 0xd8, 0xca, 0x09, 0xe8, + 0x71, 0x61, 0xae, 0xc5, 0x4b, 0x1e, 0x62, 0xe1, 0x9e, 0xa9, 0x73, 0x8a, 0x4b, 0x85, 0xd2, 0xf6, + 0xfa, 0x85, 0x4b, 0x5b, 0xeb, 0x61, 0x4e, 0xb0, 0xee, 0xc1, 0xc4, 0x8a, 0x19, 0x26, 0x2f, 0x31, + 0x58, 0x85, 0x8a, 0xfb, 0x4a, 0x66, 0x31, 0xe8, 0xe2, 0xf5, 0x8c, 0xc7, 0xb0, 0x15, 0xd7, 0xd5, + 0xb9, 0x17, 0xd7, 0xd5, 0xd5, 0x37, 0xbb, 0xea, 0xdb, 0x16, 0x2f, 0xac, 0x2f, 0x14, 0x66, 0x22, + 0x78, 0xde, 0x39, 0x15, 0x15, 0x42, 0xb0, 0x65, 0x31, 0xc2, 0x17, 0x5a, 0x72, 0x57, 0x62, 0x74, + 0x5f, 0x7d, 0x53, 0x4b, 0x5b, 0xfd, 0xdf, 0x4e, 0x91, 0xf8, 0xc7, 0xc1, 0xe9, 0x9f, 0x9d, 0x4f, + 0x70, 0xe7, 0x29, 0x6e, 0x2b, 0x51, 0xdb, 0x38, 0xb7, 0xe2, 0x67, 0x33, 0x0d, 0x74, 0x6e, 0x22, + 0xb5, 0xaa, 0x19, 0x04, 0x5b, 0x2a, 0x59, 0x4a, 0x92, 0x24, 0xf7, 0x8f, 0x91, 0x92, 0x88, 0x43, + 0x49, 0x45, 0xf3, 0x89, 0x03, 0x04, 0x81, 0x6e, 0x7c, 0xc4, 0x3e, 0xce, 0x6e, 0xa7, 0x64, 0x0f, + 0xc6, 0xf8, 0xe9, 0xce, 0xd1, 0x18, 0xb4, 0xe7, 0xc6, 0x87, 0x39, 0xf0, 0xb9, 0xd2, 0xe7, 0x90, + 0x2a, 0xf2, 0x3f, 0x7b, 0x43, 0x48, 0xb5, 0xb2, 0x39, 0x1b, 0xc8, 0x33, 0x3a, 0xee, 0xa1, 0x1b, + 0xc8, 0x32, 0x30, 0x8d, 0x54, 0xe4, 0x63, 0x69, 0x2a, 0x6a, 0x68, 0xa6, 0x45, 0x4c, 0xcc, 0xed, + 0x27, 0xf3, 0x66, 0xa2, 0xde, 0xfc, 0x9d, 0xb3, 0x6c, 0x37, 0x38, 0xe9, 0xe2, 0xce, 0x04, 0x58, + 0x3c, 0xde, 0xcd, 0xec, 0xde, 0xd6, 0xd1, 0xb2, 0xf7, 0x52, 0xec, 0xa2, 0xf9, 0x2c, 0x76, 0xb6, + 0x27, 0xec, 0xaf, 0xb3, 0x25, 0x27, 0xc4, 0xcf, 0x93, 0xf7, 0x94, 0x33, 0xbb, 0x4f, 0x72, 0xee, + 0xce, 0x58, 0xee, 0x09, 0xb1, 0x7c, 0xde, 0xcd, 0x09, 0x30, 0x55, 0x32, 0xab, 0x18, 0x7a, 0x3a, + 0xa5, 0x0b, 0x69, 0x06, 0xcf, 0xe6, 0x81, 0xc1, 0xc8, 0xe8, 0x9d, 0x8b, 0x54, 0xca, 0x63, 0x07, + 0xe9, 0x06, 0xc8, 0x0a, 0x90, 0xef, 0xc9, 0xa4, 0x79, 0x1c, 0x94, 0x51, 0x74, 0x74, 0xb7, 0xba, + 0x82, 0x1d, 0x76, 0x73, 0xa6, 0xb3, 0x81, 0xcb, 0x28, 0x3e, 0x07, 0x6d, 0x93, 0xdd, 0xb0, 0xdc, + 0xd9, 0x03, 0xcb, 0xd0, 0xbd, 0x0c, 0xdd, 0x6d, 0xf8, 0xee, 0xc2, 0xf7, 0x5a, 0x0c, 0xeb, 0x46, + 0x37, 0xad, 0x35, 0x75, 0xc9, 0x96, 0x91, 0xe0, 0x09, 0x0c, 0xdb, 0x8a, 0xee, 0xad, 0xe8, 0xde, + 0x84, 0xef, 0xa7, 0xf1, 0xbd, 0x03, 0xc3, 0xb6, 0xa1, 0x7b, 0x1b, 0xba, 0x9f, 0xc6, 0xb7, 0x3b, + 0x7e, 0x4f, 0xe3, 0x11, 0xf4, 0xf5, 0x8f, 0xf1, 0x9d, 0x1d, 0xf5, 0xdd, 0x86, 0x5a, 0x32, 0x4c, + 0xc3, 0xb4, 0x79, 0xb7, 0xb1, 0x5b, 0xdf, 0xf0, 0xeb, 0x74, 0xcc, 0x61, 0x06, 0x86, 0x14, 0xa2, + 0xbb, 0x10, 0xdd, 0xd3, 0x95, 0x3b, 0xcf, 0x77, 0x06, 0x39, 0xf9, 0x26, 0x4f, 0x94, 0xc3, 0x8f, + 0x61, 0x3b, 0xd1, 0x48, 0xe8, 0x98, 0x89, 0x79, 0x0b, 0xb3, 0x46, 0x6f, 0x1d, 0xa6, 0x59, 0xb3, + 0x3d, 0x4f, 0x96, 0x9f, 0x03, 0x01, 0x65, 0x38, 0x4b, 0x70, 0x42, 0xec, 0xcb, 0xd5, 0xa3, 0x93, + 0x1d, 0x5c, 0x16, 0x8e, 0x73, 0x93, 0x82, 0xea, 0x31, 0x61, 0x93, 0x02, 0x65, 0x41, 0xd5, 0x98, + 0x10, 0x43, 0xc0, 0x18, 0x4c, 0x1a, 0x13, 0x62, 0xf2, 0xd3, 0x1d, 0x40, 0xdf, 0xa6, 0x10, 0x9b, + 0x85, 0x33, 0x78, 0xfb, 0x47, 0x76, 0x56, 0xae, 0x8f, 0xfb, 0x27, 0xa1, 0xff, 0x17, 0x09, 0xfe, + 0x2c, 0xf4, 0x6f, 0x62, 0x73, 0x2c, 0x3b, 0x6d, 0xc9, 0x82, 0xc3, 0x66, 0x26, 0xfb, 0x53, 0x28, + 0x79, 0x3c, 0x85, 0x71, 0x3a, 0xc2, 0xa0, 0xfa, 0x08, 0xd2, 0x51, 0x3f, 0x3e, 0xbd, 0xb7, 0x15, + 0x32, 0x99, 0xff, 0x12, 0x64, 0x93, 0xff, 0x27, 0x83, 0x48, 0xcf, 0xe8, 0x57, 0xf3, 0x60, 0x44, + 0x8d, 0xd7, 0xcc, 0xbe, 0xfd, 0x05, 0x47, 0x64, 0xac, 0xfd, 0x9d, 0x2f, 0xcb, 0xf7, 0x9c, 0xe1, + 0x53, 0x10, 0x4a, 0x3f, 0xb2, 0xde, 0xda, 0x80, 0xa5, 0x3e, 0x37, 0x92, 0x4a, 0xf3, 0xaf, 0xbe, + 0x6a, 0xa4, 0x56, 0x8e, 0xcb, 0x10, 0x0b, 0xe3, 0x10, 0x98, 0xca, 0x87, 0x47, 0xf4, 0xde, 0x2d, + 0x09, 0x10, 0x6f, 0x49, 0x80, 0x76, 0x4b, 0x02, 0xa4, 0x64, 0x91, 0x50, 0x10, 0xb5, 0x1e, 0xa4, + 0x01, 0xd2, 0x08, 0x13, 0x30, 0xf9, 0xaa, 0xdd, 0xc2, 0x65, 0xb8, 0x07, 0x70, 0xac, 0xa2, 0x19, + 0x24, 0xb3, 0x77, 0xa9, 0x52, 0x66, 0x3a, 0xbb, 0xa9, 0xcd, 0x2c, 0x82, 0x94, 0xcf, 0xce, 0x2a, + 0x14, 0x9a, 0x51, 0x03, 0xb3, 0x6a, 0x8d, 0x13, 0x8d, 0x5e, 0x5b, 0x85, 0xb2, 0xab, 0x05, 0xb8, + 0xb5, 0x24, 0x3d, 0x72, 0x2b, 0x3d, 0xdb, 0x01, 0xf3, 0xe5, 0x96, 0x07, 0xf3, 0x43, 0x9c, 0xbb, + 0x38, 0x9e, 0x77, 0xb5, 0xd9, 0xc1, 0x64, 0x8e, 0x45, 0x53, 0x5c, 0xf2, 0x8c, 0xf3, 0x94, 0x32, + 0xb0, 0x4e, 0x71, 0x42, 0x7a, 0x90, 0x9f, 0xe2, 0x00, 0xcc, 0x1b, 0x2e, 0x0b, 0x7a, 0x4d, 0xf8, + 0x61, 0xe9, 0x07, 0x12, 0x9d, 0xd0, 0xac, 0x07, 0x38, 0x93, 0xb0, 0x8b, 0x30, 0x9b, 0x74, 0x28, + 0x28, 0x83, 0x1a, 0xa8, 0x85, 0x46, 0x58, 0x06, 0xdd, 0xb0, 0x15, 0x9e, 0x86, 0x9d, 0x30, 0x00, + 0x6f, 0xd0, 0x9d, 0x4e, 0x34, 0xc7, 0x18, 0xe4, 0xc5, 0x0c, 0xc5, 0xbd, 0x23, 0xa4, 0x16, 0xb3, + 0x15, 0xf7, 0x53, 0x41, 0x6d, 0x64, 0x07, 0xcb, 0x7f, 0xab, 0x12, 0xb2, 0x2e, 0xa4, 0xef, 0x94, + 0x43, 0xba, 0x58, 0x48, 0x47, 0x50, 0x10, 0x8f, 0x33, 0x57, 0x28, 0xe4, 0x10, 0x4f, 0x31, 0xd7, + 0x22, 0x2c, 0x25, 0x0c, 0x16, 0x51, 0x64, 0xbe, 0x79, 0xd0, 0xc8, 0x01, 0xfa, 0xd8, 0xfd, 0x51, + 0x81, 0x0a, 0x68, 0xe4, 0xc9, 0xe7, 0x62, 0xbe, 0x19, 0xd0, 0xa8, 0x26, 0xdf, 0x74, 0xe6, 0xb3, + 0xd3, 0xbd, 0x3c, 0xe8, 0x33, 0x33, 0x9f, 0x01, 0x1a, 0xf5, 0xe4, 0xcb, 0xf2, 0xec, 0x00, 0x7b, + 0x20, 0x7d, 0x0a, 0x49, 0xd5, 0x76, 0x51, 0xc7, 0xbe, 0x69, 0xa0, 0x51, 0xc0, 0x6f, 0xc5, 0x17, + 0xc0, 0x88, 0x58, 0xce, 0xc2, 0xfe, 0x3b, 0x28, 0xd0, 0x1d, 0xa6, 0x30, 0x32, 0x3c, 0x65, 0x16, + 0x64, 0x22, 0x8d, 0x9f, 0x4d, 0xa4, 0x71, 0xea, 0x99, 0x86, 0xf8, 0x1d, 0xd8, 0x52, 0x72, 0x62, + 0xab, 0xd9, 0x92, 0x63, 0x7b, 0x5c, 0x9e, 0xee, 0x8a, 0xdd, 0x96, 0x45, 0x77, 0xaf, 0xce, 0x67, + 0xfb, 0xb2, 0x69, 0x3f, 0xb6, 0x50, 0x68, 0xa6, 0x93, 0x32, 0x2d, 0xc8, 0x85, 0xd2, 0x03, 0x45, + 0xa5, 0x1f, 0x61, 0xde, 0x9e, 0xd1, 0xbc, 0x51, 0x87, 0xdd, 0x24, 0xa6, 0x0a, 0x8b, 0xc0, 0x9c, + 0xa6, 0x0f, 0xa8, 0x77, 0xa6, 0x07, 0x90, 0x82, 0x05, 0xbd, 0xff, 0x13, 0xa7, 0x93, 0xee, 0x9a, + 0x4f, 0x88, 0xf9, 0x2a, 0x4a, 0x32, 0x4e, 0x3b, 0x8f, 0x39, 0xab, 0xe5, 0x53, 0x2b, 0x45, 0x28, + 0x47, 0x1a, 0x39, 0xb3, 0xd6, 0x42, 0x94, 0x30, 0x0b, 0x84, 0xa0, 0x75, 0x6c, 0x9b, 0xb3, 0xfb, + 0x62, 0x97, 0xa1, 0x2c, 0xae, 0xbb, 0xdb, 0x09, 0xfa, 0xbb, 0x5d, 0x90, 0x79, 0x77, 0x29, 0xa4, + 0x97, 0x0f, 0x4b, 0xcd, 0xa2, 0x59, 0x70, 0xe8, 0x36, 0x84, 0xe1, 0xa9, 0x9b, 0xfd, 0x93, 0xc8, + 0xde, 0x23, 0x9d, 0x1e, 0x67, 0xf6, 0xbc, 0x1d, 0x81, 0x64, 0xb2, 0x6f, 0xf8, 0x93, 0x93, 0xd8, + 0x42, 0x6a, 0x4c, 0x65, 0x46, 0x0c, 0x09, 0x31, 0x0c, 0x21, 0x7e, 0x0e, 0x94, 0x13, 0x66, 0x2a, + 0xc6, 0x60, 0x66, 0x93, 0x61, 0x56, 0x02, 0x66, 0x12, 0x6e, 0x0a, 0x17, 0x52, 0x10, 0xd6, 0x22, + 0xf9, 0x06, 0x9e, 0x22, 0x46, 0xb5, 0x26, 0xa4, 0x5a, 0x93, 0xd7, 0xd3, 0x19, 0x40, 0xe9, 0x3e, + 0x20, 0x06, 0xa7, 0x8f, 0x85, 0xd7, 0x48, 0xf0, 0x56, 0x4c, 0x46, 0x0a, 0x9d, 0x8c, 0x14, 0x3a, + 0xb9, 0x04, 0x32, 0x51, 0x83, 0x48, 0x77, 0xa3, 0x06, 0x4f, 0xdc, 0x97, 0x6f, 0x2c, 0xff, 0x68, + 0x5c, 0xd9, 0x1f, 0x41, 0x9b, 0xc1, 0x73, 0xe3, 0xb2, 0xe9, 0x74, 0xa0, 0xcc, 0x8d, 0xe7, 0x17, + 0xc9, 0xd8, 0xb2, 0x17, 0x9a, 0xdd, 0x84, 0x2f, 0x93, 0xd7, 0x56, 0x0e, 0x99, 0x41, 0xcb, 0x0d, + 0xca, 0xc6, 0x21, 0x11, 0x4b, 0x4d, 0xc5, 0x52, 0xd3, 0xd8, 0x2d, 0x8f, 0x72, 0x8f, 0x38, 0x43, + 0xa7, 0xc8, 0xc9, 0xbe, 0x67, 0x42, 0x8f, 0x48, 0x87, 0x2c, 0xec, 0x13, 0xb9, 0x50, 0x04, 0x4e, + 0xa8, 0x84, 0xb9, 0x50, 0x07, 0xeb, 0x9c, 0x0d, 0x30, 0x49, 0xd4, 0xb0, 0x71, 0x6c, 0xd2, 0x3d, + 0x8b, 0x40, 0x03, 0x19, 0x62, 0x10, 0xc3, 0x04, 0x16, 0xa6, 0x06, 0x81, 0x85, 0x65, 0x8a, 0xf3, + 0x31, 0xcc, 0xc0, 0xc2, 0x92, 0xc0, 0xc0, 0xc2, 0xb2, 0x44, 0x37, 0x86, 0x19, 0x59, 0x98, 0x06, + 0x8c, 0x2c, 0x2c, 0x5b, 0xcc, 0xa7, 0xfc, 0x28, 0x3d, 0xc5, 0xa7, 0xef, 0x48, 0x21, 0xf2, 0xbc, + 0x6c, 0x96, 0xa0, 0x37, 0xc8, 0xf7, 0x47, 0x64, 0x4c, 0x2e, 0xc6, 0xd4, 0xc9, 0x74, 0xe3, 0x6d, + 0x80, 0xfc, 0x26, 0x6c, 0xad, 0x4c, 0xeb, 0x43, 0x89, 0xf4, 0x2c, 0x15, 0xcd, 0xfc, 0x68, 0x1c, + 0x2d, 0x9f, 0x07, 0xf3, 0x18, 0xac, 0x25, 0xd0, 0x32, 0xc3, 0x97, 0x4e, 0xa6, 0x5b, 0xa7, 0xc3, + 0xbb, 0x94, 0x1e, 0xa4, 0x5f, 0x83, 0x71, 0xa2, 0xa1, 0x19, 0xd6, 0x96, 0x7e, 0x02, 0x5d, 0xbf, + 0x7e, 0x2d, 0x50, 0xf7, 0xc2, 0x87, 0x90, 0x19, 0x58, 0x60, 0x6c, 0xc6, 0x1e, 0xbc, 0xc9, 0xaf, + 0xde, 0xfc, 0x9a, 0xc8, 0x1b, 0x3c, 0x14, 0xe6, 0x2f, 0x32, 0xde, 0xcf, 0xd6, 0x1c, 0x52, 0x3d, + 0x9b, 0xe6, 0x32, 0x59, 0xdc, 0x90, 0xbc, 0x2f, 0x6c, 0x2c, 0xb6, 0x59, 0xc0, 0xca, 0x46, 0xd3, + 0xf7, 0xa9, 0x1d, 0x27, 0x6a, 0xc8, 0x2f, 0xcf, 0x44, 0x7f, 0x9b, 0x2c, 0x22, 0x64, 0x32, 0x6d, + 0x44, 0x6f, 0xb8, 0x5f, 0xb6, 0xfd, 0xe6, 0xd9, 0xe8, 0xdf, 0x29, 0x6a, 0x49, 0xff, 0x72, 0x21, + 0x9d, 0x8f, 0x89, 0x8b, 0x25, 0xd2, 0x8d, 0x76, 0xc8, 0xe9, 0x4f, 0xca, 0xf0, 0x91, 0xec, 0x40, + 0xeb, 0x3d, 0x9e, 0xe7, 0x21, 0xdd, 0xdf, 0x1c, 0xe4, 0x7a, 0x9f, 0x07, 0x7d, 0xbd, 0xdf, 0x96, + 0xc2, 0x6e, 0x6f, 0xc5, 0x1e, 0xb9, 0xaf, 0xd7, 0x28, 0xdf, 0x04, 0x5d, 0x68, 0x4b, 0x61, 0x23, + 0x3d, 0x9d, 0x53, 0x3c, 0xbd, 0x97, 0x57, 0xe4, 0x07, 0xa3, 0xe0, 0x70, 0x6e, 0x83, 0xcc, 0x90, + 0xf6, 0xae, 0x62, 0xc8, 0xa6, 0xb5, 0x2f, 0xa4, 0x28, 0xc3, 0x28, 0x6e, 0x46, 0x36, 0xa1, 0xf6, + 0x90, 0x45, 0x29, 0x59, 0x2a, 0x23, 0x9b, 0xa9, 0xa7, 0x5c, 0xdf, 0x66, 0x92, 0x83, 0x43, 0x1e, + 0xe9, 0x13, 0xc7, 0xf9, 0x6b, 0x5e, 0x79, 0x9c, 0xa7, 0x1d, 0xeb, 0xb4, 0xff, 0x1c, 0x43, 0xf5, + 0x88, 0xe3, 0x93, 0x4a, 0x68, 0x3c, 0x9e, 0x34, 0x28, 0x87, 0xd0, 0xbd, 0x1c, 0x4a, 0xc8, 0x2f, + 0xaf, 0x0b, 0x89, 0x8e, 0xa6, 0x32, 0x8c, 0xe6, 0xf5, 0x54, 0xec, 0x66, 0xed, 0x7b, 0x67, 0xa0, + 0x06, 0xed, 0xc0, 0x11, 0xd9, 0x25, 0x43, 0xf5, 0x1f, 0x2b, 0x4d, 0x0e, 0x92, 0x99, 0xc8, 0xa2, + 0xb9, 0x32, 0x72, 0xe4, 0x89, 0x74, 0x07, 0x72, 0xb2, 0x0c, 0xff, 0xbe, 0x5e, 0x33, 0xc3, 0xc5, + 0xb8, 0xef, 0x73, 0xd9, 0xbd, 0x33, 0x51, 0x1a, 0x9b, 0x50, 0x7b, 0x2b, 0xa2, 0x11, 0x70, 0xd6, + 0xb0, 0x34, 0xc3, 0xfb, 0x98, 0x11, 0x12, 0xc2, 0x3e, 0xf3, 0x3e, 0x66, 0x91, 0xed, 0x56, 0xd2, + 0xba, 0x5e, 0x38, 0x50, 0x89, 0x23, 0xb8, 0xcc, 0x15, 0xf6, 0xe2, 0xf8, 0x91, 0x8d, 0xbd, 0x59, + 0x23, 0x38, 0x0d, 0xa8, 0x53, 0x86, 0x38, 0x83, 0xc3, 0x10, 0x11, 0x1a, 0x21, 0xdb, 0xe0, 0xbc, + 0x6b, 0x31, 0xcd, 0x63, 0x90, 0x9b, 0xad, 0xbd, 0xa8, 0x85, 0xdb, 0x68, 0x76, 0x8f, 0xed, 0xd9, + 0xc5, 0xb0, 0xbb, 0xc8, 0x46, 0x9d, 0x8e, 0x5c, 0xb4, 0x0f, 0x76, 0xd6, 0x05, 0xb0, 0xe7, 0xa8, + 0x82, 0x1c, 0x59, 0xc4, 0x6c, 0x85, 0xd9, 0xc3, 0x23, 0x47, 0x90, 0x47, 0xe9, 0x75, 0x61, 0xe4, + 0x51, 0xfa, 0x40, 0x32, 0x7b, 0xdf, 0xe2, 0xcf, 0x10, 0x35, 0xc4, 0xad, 0xc4, 0x54, 0x84, 0x42, + 0xc3, 0xf8, 0xb8, 0xda, 0xb7, 0x9d, 0xd6, 0x03, 0x11, 0xce, 0x9b, 0xbc, 0x5b, 0x05, 0xb9, 0x7e, + 0x07, 0x84, 0x1c, 0xc8, 0xfe, 0xa0, 0x3b, 0xb1, 0x7f, 0x4b, 0x85, 0x16, 0xb9, 0x7f, 0x4f, 0xc2, + 0xfc, 0x8d, 0x88, 0xe3, 0x02, 0x19, 0x03, 0xd2, 0x53, 0x16, 0x0a, 0x75, 0x20, 0xff, 0x43, 0x5c, + 0xd2, 0xde, 0x9b, 0x3d, 0x73, 0xbd, 0x5b, 0x73, 0x1c, 0xa0, 0x66, 0xf7, 0xd9, 0x9a, 0xdb, 0xad, + 0xc7, 0xd6, 0x0b, 0x2e, 0xa1, 0xb3, 0x8d, 0x5b, 0x06, 0xb9, 0x45, 0x70, 0xfa, 0xdf, 0xec, 0x62, + 0xf0, 0x3a, 0xa8, 0x16, 0x88, 0x1a, 0x0b, 0x41, 0x35, 0xd7, 0xb3, 0x42, 0x81, 0xaa, 0xc2, 0x8a, + 0x7e, 0xa3, 0xea, 0x83, 0xd5, 0x9e, 0x15, 0x81, 0x74, 0x43, 0x52, 0xac, 0xac, 0x9c, 0xb0, 0x19, + 0xfc, 0x74, 0x8b, 0xcf, 0xa0, 0xf3, 0xd7, 0x66, 0x1c, 0x23, 0x3e, 0xe8, 0xf6, 0xac, 0x0c, 0x64, + 0xcd, 0xfe, 0x4c, 0x0b, 0x58, 0xbe, 0x86, 0xda, 0x68, 0xcf, 0xdc, 0xa9, 0xac, 0x6c, 0x16, 0xab, + 0xc7, 0xf9, 0x6b, 0xad, 0xda, 0xd7, 0xc9, 0x6a, 0xa7, 0x36, 0xcc, 0xf4, 0x6e, 0x54, 0xea, 0x07, + 0xd2, 0x72, 0xa4, 0xf7, 0xfc, 0xc0, 0x3c, 0xac, 0x47, 0xbe, 0x92, 0x77, 0x03, 0xd6, 0x2b, 0x53, + 0x74, 0x0b, 0x19, 0x01, 0x1d, 0x49, 0x1c, 0x36, 0xa0, 0x9b, 0xcb, 0x2a, 0xd7, 0x0b, 0xb9, 0x64, + 0x1f, 0x5e, 0x91, 0x3e, 0xc0, 0x50, 0xe2, 0xdd, 0x58, 0xb9, 0xde, 0x17, 0xad, 0x5c, 0x47, 0x18, + 0xea, 0x8d, 0x36, 0x0f, 0x1a, 0x66, 0x7f, 0xd0, 0x3d, 0x2a, 0xc1, 0x3a, 0xb7, 0xb3, 0x53, 0x19, + 0x46, 0xd1, 0x41, 0x63, 0x20, 0x72, 0x76, 0xc3, 0xe8, 0x98, 0xc7, 0xfa, 0x02, 0xca, 0xaf, 0xf2, + 0x2e, 0xa0, 0x7d, 0x6f, 0x57, 0xae, 0x67, 0x5a, 0x35, 0xbb, 0x5f, 0xcd, 0x3a, 0xbb, 0x15, 0xe8, + 0x5e, 0xb5, 0x7f, 0x73, 0xd2, 0xbd, 0x6a, 0xff, 0xa6, 0x15, 0x9f, 0xc2, 0x78, 0x29, 0x8c, 0x26, + 0xb7, 0x2a, 0x77, 0xdc, 0xbe, 0x2a, 0x0e, 0xd2, 0x4d, 0xed, 0x74, 0xb2, 0xb4, 0x75, 0x44, 0xa1, + 0xe4, 0x1d, 0xc6, 0x3b, 0x15, 0xd9, 0xb2, 0x4f, 0xa1, 0xe6, 0x0e, 0xa4, 0xe6, 0xb0, 0xad, 0x01, + 0x25, 0x8b, 0x7c, 0x03, 0xe6, 0xf4, 0x84, 0x96, 0xee, 0x82, 0x54, 0x7d, 0xac, 0xd4, 0xf1, 0x24, + 0xcd, 0xe7, 0x06, 0x80, 0xdf, 0x86, 0xb4, 0xd2, 0x9a, 0xa3, 0xc2, 0x16, 0x6b, 0x97, 0xef, 0xe1, + 0xae, 0x59, 0x6f, 0x72, 0xcc, 0x5d, 0xe3, 0x74, 0x96, 0x0f, 0x5f, 0x1d, 0xa0, 0x56, 0xda, 0x66, + 0xb7, 0xe2, 0xef, 0x6f, 0x8f, 0xcc, 0x1e, 0xbe, 0xfa, 0x73, 0x5b, 0x09, 0x14, 0x88, 0xcb, 0xb1, + 0x0d, 0xc7, 0xb7, 0x5a, 0x83, 0xa8, 0x15, 0x5c, 0x8c, 0x9a, 0x44, 0xa4, 0xde, 0xf9, 0x0c, 0x6b, + 0x38, 0x06, 0x9a, 0x88, 0xea, 0x27, 0x09, 0x2e, 0x94, 0x21, 0xd5, 0x64, 0x91, 0xcf, 0xcc, 0x6e, + 0xb3, 0x0d, 0xe4, 0x61, 0x8d, 0x40, 0x28, 0xf3, 0x6e, 0x60, 0x37, 0x1d, 0x67, 0xc9, 0x6b, 0xb9, + 0xdf, 0xde, 0x3f, 0xf3, 0x2f, 0x5a, 0x55, 0xee, 0xbf, 0x33, 0xec, 0x26, 0x79, 0xfb, 0xbf, 0xb8, + 0x4c, 0xeb, 0xd3, 0x98, 0x8f, 0xda, 0xbb, 0x55, 0x71, 0xb1, 0x93, 0xc5, 0x0a, 0x7d, 0xf6, 0x7f, + 0x31, 0x62, 0xc6, 0xd4, 0xd8, 0x7e, 0x21, 0xac, 0x6b, 0x81, 0x90, 0x12, 0x82, 0x71, 0x63, 0x35, + 0xc0, 0x45, 0xe7, 0xad, 0xc4, 0x29, 0x9f, 0xc8, 0xb5, 0x01, 0xad, 0x11, 0x7e, 0xbb, 0x15, 0x65, + 0x47, 0x1b, 0xe2, 0x24, 0xc5, 0xbb, 0x45, 0x09, 0x47, 0x17, 0xd6, 0x7f, 0x6d, 0x8e, 0x4a, 0x3e, + 0x0b, 0x31, 0x7b, 0xf8, 0x8b, 0x43, 0xb9, 0xac, 0xb6, 0x56, 0xd6, 0x02, 0x58, 0x5f, 0x2b, 0xed, + 0xb3, 0x13, 0xd2, 0xc7, 0xd5, 0x77, 0x39, 0xf6, 0x1d, 0x2b, 0xd6, 0xb6, 0x0d, 0x6b, 0x1b, 0x52, + 0x6a, 0xbb, 0x55, 0xae, 0xad, 0xcd, 0x4a, 0xb7, 0x09, 0x8f, 0x88, 0x4a, 0x5d, 0x3d, 0xac, 0xae, + 0x33, 0x95, 0xba, 0xda, 0x59, 0xb9, 0x76, 0x5b, 0x4a, 0x1c, 0x9e, 0xa4, 0xb1, 0xd0, 0x28, 0xd4, + 0x85, 0xf5, 0x1f, 0xbe, 0x4c, 0xb2, 0xad, 0x8c, 0x01, 0xc2, 0x55, 0x1c, 0x07, 0x5b, 0x47, 0x71, + 0x30, 0x3c, 0x6c, 0x8e, 0x51, 0xf1, 0x02, 0x71, 0x0c, 0x27, 0x82, 0xe3, 0x34, 0x23, 0x18, 0x70, + 0x24, 0x72, 0x22, 0x8c, 0xbf, 0x4b, 0xe1, 0xd5, 0x5a, 0x94, 0xeb, 0x65, 0x4b, 0x96, 0x89, 0x5c, + 0xa9, 0x7f, 0x78, 0xcb, 0xe8, 0x77, 0x1a, 0x07, 0x69, 0xb7, 0x02, 0xe5, 0x49, 0xb2, 0x3c, 0x7c, + 0x03, 0x8a, 0xd8, 0x19, 0x5e, 0x07, 0xf3, 0xdd, 0x85, 0x9c, 0xb2, 0x05, 0xec, 0xe0, 0x66, 0x3e, + 0x03, 0x54, 0xa0, 0x6c, 0x5f, 0xc9, 0xdc, 0x26, 0xa8, 0x46, 0x77, 0x8d, 0x22, 0xff, 0xcf, 0xc7, + 0x58, 0xf9, 0x20, 0x32, 0xdf, 0x67, 0x50, 0x87, 0x54, 0xb7, 0x08, 0xbf, 0x36, 0x1a, 0x52, 0x5a, + 0x8b, 0x86, 0xd6, 0x63, 0x5b, 0xfd, 0x22, 0x24, 0xed, 0x0c, 0x07, 0xac, 0x4a, 0xbd, 0x53, 0xbc, + 0xfd, 0x7f, 0x1d, 0xa9, 0x5c, 0x8f, 0xbd, 0x43, 0x9f, 0x10, 0x72, 0x3e, 0xd6, 0x3f, 0x10, 0x3a, + 0xb7, 0x77, 0x29, 0xd9, 0x94, 0x55, 0xa8, 0xf8, 0x38, 0x3b, 0x45, 0x3f, 0x24, 0x9e, 0xf0, 0xce, + 0x91, 0x76, 0xd0, 0x09, 0x22, 0x93, 0xd6, 0x8c, 0xf2, 0x5b, 0xd0, 0x92, 0xe3, 0x90, 0xae, 0x58, + 0x9b, 0x39, 0x53, 0x0e, 0x96, 0xbb, 0xc1, 0x26, 0x9d, 0x72, 0x3e, 0x2b, 0x9d, 0x65, 0xee, 0x69, + 0xd2, 0xf9, 0x92, 0x8f, 0xa5, 0x2b, 0x39, 0xe5, 0xd2, 0x45, 0x0c, 0xbb, 0x84, 0xee, 0x53, 0x98, + 0x4f, 0x85, 0xc9, 0x41, 0x3d, 0xac, 0xef, 0x55, 0x94, 0xd9, 0x4c, 0xd8, 0x62, 0x6c, 0x64, 0xeb, + 0x3b, 0xc5, 0x64, 0xb8, 0x0c, 0xf2, 0xcb, 0xf3, 0x73, 0xfd, 0x5e, 0xc2, 0x4f, 0x2b, 0x27, 0x42, + 0xd2, 0x32, 0x59, 0x53, 0x50, 0xbf, 0xa3, 0xcf, 0x01, 0x7b, 0x15, 0xe8, 0x10, 0xd6, 0x5a, 0x50, + 0x0f, 0xc8, 0xbb, 0xb4, 0x12, 0x64, 0x9b, 0x64, 0xfc, 0xb7, 0x8e, 0x7b, 0x07, 0x92, 0x65, 0x7d, + 0x3a, 0x71, 0xec, 0x08, 0x94, 0xc9, 0x3a, 0x34, 0xf0, 0xf2, 0x38, 0x6a, 0x75, 0xc8, 0xab, 0xdd, + 0x01, 0x7b, 0x0c, 0x82, 0x3d, 0x73, 0x59, 0x3c, 0x61, 0x2a, 0xed, 0x24, 0xf1, 0x5e, 0xcf, 0x45, + 0x08, 0x12, 0xb5, 0xb7, 0x15, 0x64, 0x5c, 0xe1, 0xc8, 0xd4, 0x7f, 0x65, 0x80, 0x49, 0x9f, 0xf2, + 0x08, 0x1b, 0xe7, 0x2f, 0x44, 0xdd, 0x18, 0xd3, 0x60, 0x9c, 0x2a, 0x5d, 0xb1, 0xe4, 0x40, 0x9e, + 0x9f, 0xb7, 0xa8, 0x46, 0xcb, 0xc8, 0xc5, 0xe6, 0x93, 0xf1, 0x79, 0x75, 0x0b, 0x8e, 0xe1, 0xfa, + 0xca, 0xf5, 0xec, 0xde, 0xb9, 0x11, 0xd2, 0xc4, 0x18, 0x65, 0x7e, 0xd3, 0x96, 0x03, 0xd3, 0x31, + 0xef, 0x7d, 0xf1, 0x5b, 0xc4, 0x4f, 0x32, 0x5a, 0x9c, 0x80, 0xbd, 0xb0, 0x5d, 0xa9, 0x0b, 0xdd, + 0x3d, 0x63, 0x81, 0x9d, 0xd6, 0x1c, 0xf0, 0xf4, 0xae, 0x5c, 0xc8, 0x5b, 0x01, 0xb1, 0x7b, 0x35, + 0x9e, 0xc3, 0xb7, 0x94, 0x1c, 0xc2, 0xb1, 0x1b, 0xb8, 0x0d, 0x60, 0xbc, 0xe9, 0x7b, 0x51, 0xa5, + 0xd4, 0xc1, 0x60, 0xb8, 0x17, 0x63, 0xb7, 0xa8, 0xb1, 0xd5, 0xae, 0x06, 0x1f, 0x26, 0x77, 0x23, + 0x73, 0xe7, 0x30, 0x1a, 0x92, 0x76, 0xe5, 0x94, 0x49, 0x7d, 0xcc, 0xfd, 0x99, 0xb4, 0x27, 0xa7, + 0x49, 0xba, 0x2a, 0x0d, 0x04, 0x79, 0xfc, 0xbe, 0x3f, 0xc7, 0x25, 0x1d, 0xc0, 0x72, 0x0e, 0xe1, + 0x33, 0xe8, 0xe9, 0xf2, 0x6b, 0x69, 0x3f, 0x3f, 0x85, 0x1b, 0x54, 0x4a, 0xce, 0x4f, 0xd8, 0x92, + 0x67, 0x7f, 0x2c, 0xed, 0xb2, 0xa5, 0xb2, 0x39, 0x53, 0xec, 0x55, 0x57, 0xd2, 0xf3, 0x09, 0xc7, + 0xe9, 0x7e, 0x3d, 0xd6, 0x3f, 0x95, 0xf5, 0xb3, 0x37, 0x58, 0x88, 0xcc, 0xe9, 0x75, 0xde, 0xfe, + 0xcf, 0xfb, 0x50, 0x22, 0xa2, 0xfd, 0x06, 0x72, 0x2f, 0xec, 0x95, 0xbf, 0x92, 0xb6, 0xa0, 0x50, + 0x24, 0xd6, 0xfa, 0xf3, 0x79, 0xa4, 0x1f, 0xf3, 0x43, 0xa8, 0x6d, 0xe4, 0xc9, 0x3b, 0x1d, 0xf8, + 0x57, 0x3d, 0x7a, 0xfc, 0x1d, 0x50, 0xfa, 0x68, 0xff, 0xb0, 0xc8, 0xfa, 0x7b, 0x6a, 0x0c, 0xb3, + 0x52, 0xae, 0x15, 0xc4, 0x45, 0xb2, 0x65, 0x07, 0xe2, 0xb1, 0xf3, 0xc2, 0x89, 0xfc, 0xca, 0xcc, + 0xf8, 0x15, 0x1f, 0x75, 0xa6, 0x23, 0xa5, 0xc1, 0x6c, 0x99, 0x37, 0x6c, 0x65, 0x98, 0xbb, 0x17, + 0x61, 0xda, 0x1a, 0x83, 0x6d, 0x38, 0xd9, 0x22, 0xef, 0x42, 0x1d, 0x9b, 0x2f, 0xdf, 0xa1, 0x50, + 0x00, 0xc5, 0xb9, 0xbc, 0x17, 0xdb, 0x63, 0x25, 0xe6, 0x46, 0xf7, 0x93, 0xec, 0x34, 0x3f, 0x84, + 0xed, 0xb1, 0x76, 0x21, 0x6f, 0x76, 0xdc, 0xa8, 0x3d, 0x2e, 0x5f, 0xfc, 0x2f, 0xb6, 0x47, 0xc5, + 0xf8, 0xf6, 0x20, 0xdf, 0x53, 0x7a, 0x6c, 0x91, 0x32, 0xe9, 0x00, 0x73, 0xdf, 0x22, 0x1d, 0x1a, + 0x6d, 0x05, 0x4c, 0x3b, 0xc8, 0x5a, 0x6c, 0x08, 0x5b, 0xec, 0x18, 0x42, 0x72, 0x1c, 0x9f, 0x13, + 0x09, 0x2d, 0x36, 0x34, 0x9e, 0xd6, 0x2e, 0xcf, 0x8d, 0xd1, 0x1a, 0xe7, 0x60, 0xb5, 0x47, 0xaa, + 0x45, 0x4e, 0x90, 0x4c, 0x3c, 0x3f, 0x90, 0x3f, 0x5a, 0x7b, 0xd4, 0xc3, 0xcd, 0x06, 0xfc, 0x36, + 0xda, 0xde, 0xee, 0x26, 0x6c, 0x6f, 0xa0, 0x9b, 0x8b, 0x31, 0x17, 0x93, 0xdc, 0xda, 0xcb, 0x39, + 0xba, 0x99, 0xc9, 0x39, 0x13, 0xdb, 0x90, 0xb5, 0x4f, 0xf9, 0xf0, 0x67, 0x47, 0x90, 0xd7, 0xca, + 0xa3, 0x0b, 0xbb, 0xd5, 0xc0, 0x33, 0x13, 0xa9, 0xfa, 0x2c, 0x83, 0xa0, 0x94, 0x95, 0x85, 0xed, + 0xf4, 0x9d, 0x22, 0x99, 0xb7, 0xc2, 0xe0, 0xe8, 0xdc, 0x01, 0xb3, 0xef, 0xef, 0x20, 0x9b, 0x8f, + 0x7f, 0x3c, 0xf4, 0xc7, 0x43, 0x66, 0x36, 0x3e, 0x2e, 0xdf, 0xf5, 0xce, 0xa3, 0x6c, 0xac, 0x76, + 0xd2, 0x8d, 0xb3, 0xa3, 0x63, 0xc0, 0x67, 0xb4, 0x3b, 0xbd, 0xd7, 0x80, 0xee, 0x98, 0xcc, 0x62, + 0x8d, 0xd7, 0xc5, 0xe0, 0xf2, 0x6e, 0x54, 0xe6, 0xf1, 0xa6, 0x23, 0xad, 0x4d, 0xa0, 0x30, 0x9a, + 0x0d, 0xc4, 0x14, 0x3b, 0x30, 0x65, 0x73, 0x3e, 0x1b, 0x4b, 0x0c, 0x53, 0xa5, 0x1d, 0x36, 0x8e, + 0xee, 0x28, 0x65, 0xe9, 0x52, 0x49, 0xe6, 0x20, 0x4b, 0x38, 0x3f, 0x7b, 0x43, 0x54, 0x17, 0x75, + 0xd0, 0x69, 0x50, 0x0c, 0x9d, 0x2a, 0xf5, 0x62, 0x8a, 0x74, 0x73, 0x35, 0x41, 0x44, 0xbc, 0xb3, + 0xd7, 0xeb, 0x67, 0x16, 0xd4, 0x71, 0x54, 0x68, 0x15, 0xd3, 0x18, 0x25, 0x33, 0xec, 0x7d, 0x7e, + 0x2a, 0x81, 0xd2, 0x35, 0xe5, 0xc3, 0x97, 0xde, 0x50, 0x70, 0x90, 0x24, 0xe3, 0x80, 0x68, 0x1c, + 0xf5, 0x97, 0x06, 0x54, 0xea, 0x50, 0x82, 0xa6, 0x59, 0x06, 0x05, 0x1f, 0xaa, 0x04, 0x6c, 0x2c, + 0x4f, 0xc0, 0x45, 0x48, 0x70, 0x98, 0x10, 0x13, 0xb4, 0x0a, 0x4e, 0xf2, 0xc2, 0xa5, 0x0d, 0xf2, + 0xa8, 0x29, 0xfa, 0x94, 0x5a, 0x22, 0x6e, 0x73, 0x21, 0xd6, 0x23, 0x3e, 0xf7, 0x5a, 0xe4, 0x11, + 0x31, 0x5b, 0x28, 0x31, 0xb8, 0xac, 0x1e, 0xc2, 0x87, 0x5c, 0x4b, 0x5b, 0x92, 0xa1, 0x8c, 0x64, + 0x29, 0x67, 0x29, 0x59, 0xf9, 0x57, 0x38, 0xcb, 0x16, 0x53, 0x15, 0xe5, 0x5b, 0xb9, 0x5e, 0x57, + 0x0a, 0x9c, 0x3f, 0x99, 0xf1, 0xf9, 0x6d, 0x8a, 0xce, 0x4e, 0xfb, 0xdd, 0xba, 0x68, 0x07, 0x93, + 0xf7, 0x87, 0x36, 0x60, 0x30, 0xba, 0x65, 0x5d, 0x88, 0x6a, 0xcf, 0x74, 0xac, 0x42, 0xa3, 0xd6, + 0xe8, 0x0d, 0xe4, 0xce, 0xfc, 0x04, 0xdc, 0x89, 0xda, 0x9a, 0xa7, 0x07, 0x5c, 0x7e, 0x3a, 0xb3, + 0xeb, 0x6a, 0xe5, 0x94, 0xda, 0xde, 0x70, 0x3e, 0x80, 0x9d, 0xfb, 0xe6, 0x8d, 0x5a, 0x13, 0xca, + 0xc6, 0x01, 0xaf, 0x39, 0x95, 0x59, 0xd2, 0x38, 0x2b, 0xb8, 0x46, 0x73, 0x32, 0x38, 0xe3, 0x92, + 0x9e, 0x3a, 0x21, 0xfc, 0xd5, 0xd1, 0xf0, 0x6b, 0x5e, 0xa2, 0xc1, 0x18, 0xcf, 0x97, 0x67, 0x33, + 0x62, 0xeb, 0x27, 0x8e, 0x6c, 0xb9, 0x0c, 0x3b, 0x96, 0x11, 0x28, 0x32, 0xa5, 0x32, 0xab, 0x1f, + 0x67, 0x85, 0x92, 0x2f, 0xc9, 0xbf, 0xe4, 0xc6, 0xf9, 0xc7, 0x73, 0x63, 0xb7, 0xe7, 0xd9, 0xf3, + 0x8c, 0x6e, 0x53, 0xaa, 0x7c, 0xbe, 0xda, 0x98, 0xaa, 0x89, 0xb2, 0x1c, 0x47, 0x63, 0x1f, 0x9a, + 0x79, 0x0e, 0xcc, 0x62, 0x16, 0xed, 0x7e, 0xa5, 0xbb, 0xe2, 0x98, 0x3e, 0x39, 0x71, 0x5f, 0xd8, + 0x50, 0x2c, 0x78, 0xac, 0x25, 0x58, 0x4a, 0xf7, 0x6f, 0xce, 0x81, 0xdd, 0x7f, 0x22, 0x41, 0x97, + 0x55, 0x27, 0xa4, 0x7e, 0x75, 0x34, 0x7c, 0xb4, 0xdc, 0x0a, 0x9d, 0x8c, 0x6b, 0xb3, 0x9b, 0x66, + 0xcf, 0xe4, 0xd5, 0x40, 0xd2, 0x68, 0x42, 0xad, 0xe2, 0x7c, 0xc4, 0xfc, 0x18, 0x3d, 0xd9, 0xd0, + 0x88, 0xa5, 0x6b, 0x76, 0xad, 0x0a, 0x68, 0x0d, 0x0e, 0xe1, 0x16, 0xff, 0x65, 0xd1, 0x92, 0x50, + 0xce, 0xac, 0x2f, 0xab, 0x9f, 0xdc, 0x1a, 0x89, 0xdf, 0x43, 0x79, 0x65, 0x5c, 0x4c, 0xca, 0x71, + 0x3a, 0xc4, 0x77, 0x50, 0xde, 0x3d, 0x41, 0xf2, 0xae, 0xc5, 0x8d, 0x94, 0x56, 0x0e, 0xb9, 0x28, + 0x9f, 0x14, 0xd8, 0x68, 0x87, 0x7d, 0x09, 0xca, 0x29, 0x2e, 0x94, 0x51, 0x4a, 0xc1, 0x6d, 0xf2, + 0x32, 0x6d, 0xe5, 0x64, 0x31, 0xc2, 0x64, 0x73, 0xa3, 0x94, 0x1f, 0xcb, 0x6d, 0x1e, 0xcd, 0x79, + 0xbc, 0xf0, 0x11, 0x2c, 0xc7, 0xaf, 0x3b, 0x8d, 0x39, 0xd0, 0x16, 0x9c, 0x7b, 0xfd, 0x3c, 0x86, + 0x5f, 0x2f, 0x02, 0xb7, 0xe5, 0xb7, 0x67, 0x51, 0x23, 0xe7, 0xcd, 0x6e, 0xc1, 0x21, 0xaa, 0x7f, + 0x72, 0x48, 0x70, 0x0a, 0xfa, 0x80, 0x7c, 0x52, 0xf9, 0x8c, 0xa8, 0x9c, 0x58, 0xe6, 0x44, 0x61, + 0xc2, 0x58, 0x3d, 0x09, 0xf9, 0x3a, 0x85, 0xbb, 0x2d, 0x0e, 0x67, 0x0b, 0xe4, 0x2d, 0x23, 0x3b, + 0x02, 0xb9, 0x06, 0xbd, 0xf5, 0xa1, 0x18, 0x4f, 0x44, 0x99, 0x18, 0x43, 0x6a, 0x9e, 0x87, 0x5c, + 0x63, 0xa6, 0x81, 0x57, 0xc2, 0xb7, 0xd0, 0xac, 0x8d, 0x15, 0x9e, 0x8c, 0x0a, 0x1a, 0x5f, 0x78, + 0xdc, 0x0c, 0x14, 0xa0, 0xe4, 0xac, 0x89, 0xd9, 0x47, 0xfa, 0x8e, 0xd6, 0xa0, 0x42, 0xe9, 0x9f, + 0xa5, 0x92, 0x76, 0x58, 0xd8, 0xc8, 0xea, 0xd7, 0xdc, 0x4b, 0x7b, 0xaf, 0xf2, 0x0c, 0xa3, 0x14, + 0xe3, 0xad, 0x7c, 0xd4, 0xb7, 0x62, 0xef, 0x0a, 0x7f, 0xd4, 0x83, 0x30, 0x20, 0x2f, 0xdb, 0x84, + 0x72, 0x6b, 0xfa, 0xe4, 0x99, 0x30, 0x69, 0xb2, 0x0b, 0x0c, 0x93, 0x1b, 0x51, 0x70, 0xc9, 0xc2, + 0x5f, 0x3d, 0x64, 0xdc, 0xd3, 0x01, 0x13, 0x20, 0x9d, 0xe6, 0x62, 0xc1, 0x64, 0xb7, 0x41, 0xe1, + 0x3d, 0x0e, 0x30, 0xdb, 0x5b, 0x60, 0xc6, 0x3d, 0x6e, 0xb0, 0xa0, 0xdf, 0x89, 0x7e, 0xeb, 0x64, + 0xd4, 0x8f, 0x21, 0x77, 0x32, 0xd9, 0xa6, 0xca, 0x8b, 0x97, 0xe0, 0x47, 0xb8, 0x0a, 0x51, 0xdf, + 0x4f, 0x45, 0x9d, 0x35, 0x41, 0xdb, 0x1f, 0xa5, 0xda, 0x91, 0x70, 0x82, 0x7b, 0x6d, 0x02, 0x35, + 0x8b, 0x72, 0x2f, 0x34, 0xbb, 0xda, 0xc0, 0x90, 0x1e, 0xd0, 0x2a, 0x75, 0xf9, 0x65, 0xe5, 0x5a, + 0x5f, 0xe7, 0xde, 0x4e, 0xff, 0x79, 0xc3, 0x68, 0xbf, 0xf2, 0x52, 0xbc, 0x44, 0x1a, 0x64, 0xbd, + 0xb7, 0x25, 0xa1, 0x2d, 0xe3, 0xfd, 0x97, 0x49, 0x89, 0x82, 0xb2, 0x17, 0x6e, 0x00, 0xfb, 0x85, + 0xc1, 0xe8, 0xb5, 0xb1, 0x35, 0x89, 0x27, 0x44, 0x99, 0x4b, 0xc4, 0x29, 0xaf, 0x03, 0x39, 0x5a, + 0x03, 0x97, 0x89, 0x58, 0xd9, 0xcf, 0x34, 0xa4, 0x65, 0xad, 0xd0, 0xa6, 0x50, 0xd7, 0xd5, 0x4b, + 0xb2, 0x14, 0x4c, 0x36, 0x48, 0x69, 0x6d, 0xd7, 0xc4, 0x1f, 0x8d, 0x1e, 0xed, 0xa4, 0xbb, 0x5f, + 0xb9, 0x49, 0x2c, 0xaf, 0x4e, 0x39, 0x2f, 0x36, 0x4a, 0xb1, 0x9d, 0x06, 0xca, 0xdc, 0xb8, 0x1e, + 0x29, 0x2f, 0x9d, 0xb9, 0x3f, 0x87, 0xcc, 0xa0, 0x84, 0xf2, 0x6e, 0x36, 0xf3, 0x5d, 0x06, 0x01, + 0xe5, 0x5e, 0x23, 0x73, 0x7f, 0x0a, 0x66, 0xb2, 0xea, 0xa5, 0xcc, 0x9e, 0xdb, 0x69, 0xf6, 0xfc, + 0x09, 0xd4, 0x41, 0x99, 0x7f, 0x18, 0x0a, 0x82, 0x1c, 0xa6, 0x2a, 0x52, 0x24, 0x66, 0x07, 0xba, + 0x5d, 0x18, 0xdb, 0x8d, 0x4f, 0x45, 0x48, 0x3f, 0x66, 0xee, 0x5c, 0xc7, 0x66, 0xce, 0x33, 0x69, + 0xff, 0x0f, 0xcd, 0xcf, 0xc5, 0xeb, 0xd5, 0x66, 0x4f, 0xae, 0x78, 0xd7, 0x45, 0xb7, 0x7f, 0x38, + 0x62, 0x73, 0xa6, 0x37, 0xe6, 0x87, 0xbb, 0x18, 0x3f, 0x74, 0xf6, 0xfc, 0x3d, 0xfc, 0x10, 0xf9, + 0x8b, 0xd6, 0xc4, 0xc9, 0x2b, 0x52, 0x63, 0x66, 0x83, 0x7c, 0xf2, 0x2a, 0x56, 0x6c, 0x36, 0x28, + 0x6e, 0x97, 0xc0, 0x49, 0x3a, 0xaa, 0x2c, 0x61, 0x92, 0x3e, 0x4d, 0xda, 0xcf, 0xdd, 0x25, 0x90, + 0x3d, 0x99, 0xb4, 0xe1, 0x4f, 0xae, 0x9b, 0x19, 0x4a, 0xa5, 0xb3, 0x76, 0xb2, 0xdc, 0x2a, 0x4b, + 0xfb, 0xc4, 0x5d, 0x68, 0x8d, 0x27, 0xa6, 0x21, 0xb3, 0x11, 0xe0, 0x6d, 0xf1, 0x14, 0xf2, 0x7c, + 0x4e, 0xe1, 0xfa, 0xff, 0x3e, 0xda, 0x06, 0x34, 0x7f, 0x85, 0xed, 0x7d, 0x1e, 0x53, 0x30, 0x49, + 0x04, 0x65, 0x21, 0x37, 0x68, 0x99, 0xfb, 0x16, 0x1c, 0xf1, 0xca, 0x41, 0x8f, 0xf8, 0x4b, 0x27, + 0xab, 0x68, 0x4f, 0x0c, 0x7b, 0x6e, 0x09, 0x68, 0x98, 0xeb, 0x4c, 0xc9, 0x05, 0x86, 0xaf, 0xa7, + 0xac, 0x3f, 0x20, 0x29, 0x81, 0xea, 0xc9, 0xe6, 0x36, 0x67, 0x18, 0xbd, 0xa8, 0x15, 0x0a, 0x39, + 0x13, 0x8d, 0xa4, 0x0b, 0xb6, 0xd3, 0xed, 0x7b, 0xbf, 0xd5, 0xd1, 0x08, 0xbf, 0x67, 0x64, 0x26, + 0x5b, 0x9f, 0x11, 0x69, 0x4f, 0xbf, 0xac, 0x03, 0x67, 0x04, 0x96, 0xd5, 0x66, 0x30, 0x57, 0x7a, + 0x60, 0x6e, 0xed, 0x02, 0xe6, 0xba, 0x15, 0x29, 0xea, 0x49, 0xd1, 0xcc, 0xdc, 0x53, 0x03, 0x8d, + 0xb5, 0x3a, 0xe6, 0xb2, 0xd2, 0x0e, 0x69, 0xb1, 0x9a, 0xb9, 0x6d, 0x81, 0x3a, 0xf6, 0xb6, 0xfb, + 0x43, 0x62, 0x83, 0x15, 0x35, 0x31, 0x76, 0x8a, 0x4f, 0x87, 0x63, 0xb5, 0x05, 0x9e, 0xf2, 0x6e, + 0xb6, 0x86, 0x45, 0x47, 0xcc, 0x2d, 0x92, 0x7c, 0x40, 0xfa, 0x73, 0x89, 0x68, 0x89, 0xcf, 0x5a, + 0x16, 0x09, 0x3d, 0xb0, 0x53, 0x9c, 0x3e, 0x99, 0x74, 0xb8, 0x9d, 0x62, 0xae, 0x1c, 0xc3, 0xbb, + 0x45, 0x4c, 0x56, 0xe2, 0x3a, 0xd9, 0x2e, 0xd9, 0x8c, 0x78, 0x7c, 0x1d, 0xc6, 0xdf, 0x2d, 0x6a, + 0x58, 0xfc, 0xdd, 0xc2, 0xec, 0xb1, 0xb3, 0xf4, 0xd2, 0x74, 0xb6, 0x4b, 0x4c, 0x27, 0xcf, 0x2d, + 0xe3, 0x98, 0x64, 0x83, 0xf4, 0x80, 0x45, 0x99, 0x27, 0xdc, 0x4f, 0x77, 0x51, 0x09, 0x18, 0x12, + 0x5f, 0x51, 0x4a, 0x36, 0x41, 0x6e, 0x54, 0xd1, 0xd9, 0x7b, 0xe9, 0x4e, 0x25, 0x79, 0x86, 0xde, + 0xc1, 0xda, 0xab, 0x04, 0xf1, 0xf3, 0xd3, 0xb4, 0x78, 0xcb, 0x2e, 0xf3, 0x84, 0x69, 0xac, 0x71, + 0x39, 0x62, 0xf3, 0x6c, 0x05, 0x06, 0xb2, 0x89, 0xcf, 0xee, 0xb2, 0x1d, 0x33, 0x1b, 0x81, 0x9c, + 0xd2, 0x6d, 0x80, 0xfc, 0x22, 0x48, 0x1f, 0x5a, 0xdf, 0x16, 0x93, 0x97, 0x8e, 0xd2, 0x3b, 0xa4, + 0xde, 0x19, 0xf6, 0x9b, 0x3c, 0x08, 0x81, 0x5f, 0xc0, 0xdf, 0xdb, 0xfc, 0x59, 0x3a, 0x1b, 0xa8, + 0x20, 0xc3, 0x9f, 0xa6, 0xb3, 0x49, 0x7f, 0x81, 0xaf, 0xf9, 0x93, 0x0d, 0xd4, 0x86, 0xc7, 0x91, + 0x86, 0xb4, 0xb2, 0x8b, 0xa8, 0xc7, 0x95, 0x4d, 0xb5, 0x91, 0x67, 0xf6, 0x72, 0xe9, 0xa6, 0xfa, + 0x16, 0x28, 0x62, 0xb3, 0x62, 0x36, 0x28, 0x68, 0x45, 0x89, 0xd9, 0x17, 0x45, 0x2c, 0x34, 0xc6, + 0x67, 0xe2, 0x2f, 0xb2, 0x3e, 0xbc, 0xd7, 0x5e, 0x34, 0x61, 0x70, 0x2c, 0xcf, 0xb5, 0xd0, 0x7e, + 0x8f, 0x5f, 0x1a, 0x78, 0xc4, 0xc1, 0x84, 0x0f, 0x56, 0x8d, 0xe2, 0xc0, 0x0c, 0x26, 0x87, 0x7f, + 0xae, 0xd8, 0x21, 0xa4, 0x8d, 0x9b, 0x19, 0xa8, 0x10, 0x2d, 0x64, 0x27, 0xc7, 0x98, 0x84, 0xf4, + 0x02, 0x13, 0x06, 0xb1, 0x0c, 0xea, 0xad, 0xcd, 0x14, 0x26, 0xbb, 0xa5, 0x5f, 0x9a, 0xf6, 0x50, + 0x0a, 0x5b, 0x92, 0xa8, 0x31, 0x85, 0xb1, 0x8d, 0x49, 0xa3, 0x78, 0xec, 0x6e, 0x36, 0x53, 0xe5, + 0x5b, 0x59, 0xb9, 0x46, 0xd4, 0x74, 0x70, 0xb3, 0x86, 0x47, 0xda, 0x8d, 0x9a, 0xaa, 0x68, 0xf1, + 0x05, 0x28, 0x88, 0x41, 0xc9, 0xc6, 0xa2, 0x0d, 0x1f, 0xac, 0x16, 0x5c, 0x87, 0xf7, 0xc9, 0x96, + 0x52, 0x0c, 0xa5, 0x89, 0xfc, 0xb0, 0x1d, 0x04, 0x75, 0x6c, 0x0e, 0x89, 0x66, 0x99, 0x85, 0x22, + 0xda, 0x1f, 0x45, 0xe7, 0x0a, 0xb4, 0x40, 0xb8, 0x56, 0x8f, 0xea, 0x1b, 0x6e, 0x23, 0x04, 0x5a, + 0x43, 0xc2, 0x68, 0x6d, 0x8c, 0x0e, 0x94, 0x89, 0xb2, 0x6d, 0x36, 0xc8, 0x64, 0x36, 0x44, 0x78, + 0x6f, 0xff, 0xc8, 0xab, 0x34, 0x83, 0xcb, 0x6e, 0xee, 0x41, 0xdf, 0xb5, 0x73, 0x64, 0x73, 0x72, + 0x94, 0x6f, 0x8e, 0x6f, 0x65, 0xea, 0x3d, 0xb2, 0x8f, 0x56, 0xf4, 0x04, 0x87, 0xc1, 0x43, 0xbd, + 0x5a, 0xd4, 0x20, 0x1d, 0x3e, 0x77, 0x6d, 0x54, 0x92, 0x69, 0x53, 0x66, 0xa1, 0xe1, 0xcd, 0xd7, + 0xdc, 0x3f, 0x7c, 0x1c, 0x6c, 0x5a, 0xb6, 0xb2, 0x2c, 0xc4, 0x7b, 0xb1, 0x9e, 0xa4, 0x37, 0x45, + 0x2e, 0xb2, 0x31, 0x9b, 0x3b, 0xe9, 0xd8, 0x2e, 0x6a, 0xba, 0x31, 0x93, 0x78, 0xe4, 0x4f, 0xdd, + 0xa0, 0x67, 0x74, 0xf6, 0x57, 0x8a, 0xcf, 0x64, 0xa6, 0xa7, 0x51, 0x96, 0x8c, 0xe7, 0x3f, 0x72, + 0x1e, 0x31, 0x44, 0xf7, 0x6b, 0xa5, 0x8e, 0x9d, 0xad, 0x34, 0x90, 0x76, 0xa5, 0xff, 0x86, 0x13, + 0x92, 0x47, 0xc7, 0x1e, 0x29, 0x39, 0x46, 0xb1, 0x36, 0x9e, 0xe6, 0x83, 0xc9, 0xc6, 0x0f, 0x9b, + 0x31, 0xd7, 0xb0, 0x5d, 0xce, 0x72, 0x79, 0x3f, 0x02, 0x1d, 0x9b, 0x55, 0x63, 0xe5, 0x15, 0x9f, + 0x85, 0xa7, 0x47, 0x4b, 0x42, 0x0c, 0x66, 0x1a, 0x1c, 0xa3, 0x32, 0x4c, 0xa2, 0xdc, 0x22, 0xcf, + 0xc4, 0xb9, 0x3f, 0x98, 0x61, 0xb0, 0x22, 0xfe, 0x68, 0x87, 0x56, 0x3b, 0xdd, 0xa1, 0x02, 0x3c, + 0x88, 0x95, 0x89, 0x63, 0x9a, 0x90, 0x34, 0x46, 0x07, 0x64, 0x3a, 0x0d, 0xcd, 0xa3, 0x1b, 0x34, + 0x46, 0x30, 0x25, 0x11, 0xd5, 0x78, 0x1c, 0x7e, 0xa3, 0xd2, 0x17, 0x3a, 0xd8, 0x2d, 0x3c, 0x93, + 0x34, 0x2b, 0x58, 0x3e, 0xda, 0x50, 0x80, 0xcd, 0xf3, 0x68, 0x50, 0x87, 0xda, 0x21, 0xee, 0xa6, + 0x96, 0x77, 0x75, 0x78, 0x97, 0x26, 0xe6, 0xde, 0x0e, 0xe2, 0x59, 0x92, 0x62, 0x09, 0x8b, 0x28, + 0x37, 0xc4, 0x35, 0x4f, 0x33, 0xf8, 0xba, 0x04, 0xf5, 0xe8, 0x4e, 0x24, 0x94, 0x72, 0x68, 0x77, + 0x7a, 0x09, 0xca, 0x65, 0xf1, 0x95, 0xe5, 0x6b, 0x1b, 0x68, 0xcc, 0x23, 0x6b, 0x90, 0x8e, 0xec, + 0xd1, 0xdb, 0x9a, 0x2c, 0xd8, 0x73, 0x49, 0x26, 0x6f, 0x85, 0x9f, 0x1c, 0x12, 0x67, 0x04, 0xb5, + 0x89, 0xd0, 0xb3, 0x15, 0x1f, 0xbb, 0x73, 0x13, 0xea, 0x62, 0x6a, 0x6b, 0x93, 0xac, 0xed, 0xd0, + 0x19, 0x72, 0x21, 0xf9, 0x54, 0x37, 0x93, 0x8f, 0xd4, 0xe6, 0xb0, 0xc8, 0x63, 0xbd, 0x98, 0x54, + 0x6f, 0xf6, 0x30, 0x6e, 0xbe, 0x87, 0x4a, 0xa0, 0x5b, 0x88, 0xb0, 0x84, 0xbc, 0x98, 0x05, 0xe9, + 0xb7, 0x0e, 0xbe, 0x75, 0x50, 0x14, 0x8c, 0x69, 0xb4, 0x9b, 0x95, 0xf5, 0x1a, 0x45, 0x2a, 0x48, + 0x1c, 0xfd, 0x8d, 0xce, 0x5d, 0x6c, 0x34, 0xc0, 0x51, 0x42, 0x2d, 0xb7, 0xa1, 0x91, 0xec, 0x7e, + 0xf2, 0x06, 0x46, 0xf3, 0xa3, 0x2d, 0x4f, 0xb7, 0x55, 0xb0, 0xbb, 0x60, 0xd2, 0xe4, 0x36, 0x91, + 0x57, 0x17, 0x58, 0x3b, 0xeb, 0x83, 0x60, 0x9f, 0x02, 0x69, 0xa3, 0xf3, 0xb5, 0xec, 0xbb, 0x0d, + 0xd4, 0x38, 0x92, 0x99, 0xbd, 0xfd, 0xd2, 0x8e, 0xca, 0xf5, 0x8a, 0x26, 0xa1, 0x9c, 0x78, 0x60, + 0x6b, 0x31, 0xd5, 0x74, 0x03, 0x36, 0xf2, 0x0f, 0xa3, 0xe1, 0x56, 0x94, 0x57, 0x94, 0xfe, 0x6c, + 0x78, 0x48, 0xb1, 0x70, 0x94, 0x3c, 0x0a, 0xa1, 0x2f, 0x5a, 0xb9, 0x06, 0xf5, 0xef, 0xec, 0xde, + 0x68, 0xed, 0x10, 0xca, 0xdc, 0xc6, 0xc4, 0x99, 0x61, 0x5b, 0x05, 0xf6, 0x35, 0x0f, 0x64, 0xd2, + 0xd8, 0x2a, 0x82, 0xd4, 0x28, 0x8f, 0xb1, 0x8a, 0xed, 0x1d, 0x23, 0x96, 0x6d, 0x67, 0xe3, 0x6a, + 0xaa, 0xe0, 0xb8, 0xab, 0x05, 0xbb, 0x6d, 0x3a, 0xbb, 0x25, 0x3c, 0x55, 0x59, 0x3b, 0x42, 0x3a, + 0x25, 0xfe, 0xbc, 0x4b, 0xb6, 0x5f, 0x61, 0x81, 0x74, 0x76, 0x36, 0x5f, 0x2b, 0x9f, 0xcd, 0xf7, + 0xd3, 0x5d, 0xd4, 0x99, 0xe3, 0x61, 0x41, 0x79, 0x38, 0x1d, 0xcb, 0xd3, 0x53, 0xef, 0x13, 0x61, + 0xe4, 0xaa, 0xdc, 0x0b, 0xbd, 0x3f, 0xf4, 0xce, 0x91, 0xd6, 0xd2, 0x9c, 0x99, 0x31, 0x75, 0xf3, + 0x6b, 0x48, 0x4d, 0x6f, 0xa3, 0xb4, 0xb3, 0x08, 0xe8, 0xce, 0x2d, 0x23, 0x8e, 0xe7, 0x4d, 0xd2, + 0x71, 0xf9, 0x76, 0xc3, 0x90, 0xa2, 0x6b, 0x5f, 0xbb, 0x3a, 0x2a, 0xf1, 0xa1, 0x96, 0x7a, 0x4a, + 0xb1, 0x51, 0xb5, 0x6f, 0x4c, 0xe8, 0x79, 0x0c, 0xe9, 0x1d, 0x0d, 0x11, 0x1c, 0x18, 0x76, 0x09, + 0xc3, 0x9e, 0x2c, 0x39, 0x07, 0x86, 0x9c, 0x72, 0xe4, 0xd2, 0xb4, 0x83, 0x6d, 0x5a, 0x88, 0x23, + 0x3b, 0xb7, 0x82, 0x2a, 0xa7, 0x44, 0x3a, 0x61, 0x68, 0x92, 0x4e, 0xb5, 0x41, 0xc6, 0x14, 0xb8, + 0xd9, 0xcc, 0x7d, 0xb0, 0x23, 0xc7, 0x25, 0x9d, 0xc5, 0x90, 0xf3, 0xe4, 0xb7, 0x70, 0x1f, 0x3c, + 0x6b, 0x4a, 0xca, 0x29, 0x95, 0x2e, 0x2e, 0x83, 0x2c, 0x33, 0xdc, 0xfc, 0xd1, 0x33, 0x39, 0xc5, + 0xd2, 0x95, 0x70, 0x57, 0xb8, 0x33, 0x1c, 0xa1, 0xd9, 0x88, 0xcd, 0xaf, 0xc5, 0xfb, 0xe3, 0xdb, + 0x48, 0x6b, 0x79, 0x4e, 0x0b, 0xd8, 0x4d, 0x6c, 0x1e, 0x04, 0xbf, 0x94, 0x50, 0x28, 0xd2, 0x74, + 0x11, 0x59, 0x92, 0x62, 0xbe, 0x3d, 0x42, 0x93, 0x74, 0x09, 0xeb, 0x62, 0xa0, 0x9e, 0x45, 0xb3, + 0xbc, 0x7b, 0x79, 0x11, 0x54, 0xe9, 0x1b, 0x0f, 0xc4, 0xc2, 0xe4, 0x1d, 0x1c, 0xb4, 0x97, 0x83, + 0x62, 0xf6, 0x8e, 0xc5, 0xa2, 0x88, 0x61, 0xe7, 0x6f, 0x10, 0x76, 0x4a, 0x99, 0xff, 0x39, 0x35, + 0x1a, 0x2a, 0x02, 0x7f, 0x54, 0x40, 0x29, 0x3b, 0xa0, 0x23, 0x7b, 0x0c, 0x7e, 0xe0, 0xa2, 0xa8, + 0x41, 0xf8, 0x4d, 0x8d, 0x90, 0x89, 0xb2, 0x77, 0x36, 0x59, 0x90, 0xa2, 0x15, 0x8d, 0x9c, 0x4a, + 0x69, 0x43, 0x4e, 0x03, 0xec, 0x94, 0x68, 0xaf, 0x41, 0x99, 0xc0, 0x66, 0x68, 0x51, 0xe3, 0x92, + 0x47, 0xe6, 0x93, 0xb2, 0xf4, 0x99, 0x83, 0xe3, 0xb5, 0xb4, 0x96, 0x7d, 0xfb, 0x6c, 0xec, 0x37, + 0x83, 0xc3, 0x32, 0x85, 0xe6, 0x67, 0x51, 0xab, 0x88, 0x85, 0xef, 0x64, 0x3e, 0xcc, 0x1d, 0x75, + 0x0c, 0x99, 0x67, 0x44, 0x8d, 0xe0, 0xd9, 0x4e, 0xf7, 0xd8, 0x1b, 0x34, 0x89, 0x2b, 0x1b, 0x14, + 0x86, 0x6d, 0xf2, 0x9c, 0x61, 0xaa, 0xb4, 0x21, 0x36, 0x33, 0xc1, 0x66, 0x36, 0x9e, 0x64, 0x73, + 0x3a, 0x1f, 0x4a, 0x5b, 0x72, 0x1e, 0x82, 0x4c, 0xe9, 0x71, 0xe6, 0xbb, 0x24, 0x3d, 0x99, 0x53, + 0x26, 0x3d, 0xc5, 0xdc, 0x57, 0xa4, 0xa7, 0x11, 0xef, 0xdb, 0x94, 0x59, 0xa0, 0x1d, 0x39, 0x4d, + 0xd2, 0x5a, 0xa9, 0x57, 0x99, 0x07, 0xda, 0x85, 0xed, 0x24, 0xcf, 0x09, 0x9d, 0x97, 0xf6, 0x38, + 0x9f, 0x95, 0x67, 0x84, 0x54, 0x1f, 0x4b, 0xfb, 0xd1, 0xcd, 0x66, 0x84, 0x54, 0x9f, 0xca, 0xf3, + 0x74, 0xf8, 0x0c, 0xe1, 0x73, 0x2c, 0xb4, 0xe5, 0xc8, 0xa3, 0x09, 0xb2, 0x6c, 0x81, 0xbd, 0x03, + 0xe6, 0x1f, 0x1e, 0xb8, 0xdb, 0x0d, 0xe9, 0x77, 0x23, 0x56, 0x21, 0x75, 0x74, 0x1d, 0x1c, 0x47, + 0x92, 0x2c, 0xe4, 0x2b, 0x99, 0xd8, 0xe3, 0x64, 0x68, 0xeb, 0x12, 0x57, 0x44, 0x50, 0x73, 0x52, + 0x6a, 0x2b, 0x66, 0xa2, 0x96, 0x99, 0xf9, 0x0d, 0x6c, 0x27, 0xd4, 0x45, 0x1a, 0xc0, 0x35, 0x9a, + 0x3e, 0x71, 0xa5, 0x45, 0xe4, 0x4d, 0x3c, 0xb6, 0xdb, 0x71, 0x46, 0x13, 0x6b, 0xcd, 0xf2, 0x3e, + 0x05, 0x9f, 0x51, 0x25, 0xa8, 0x07, 0x9e, 0x95, 0xce, 0xfa, 0x27, 0x89, 0x56, 0xdd, 0x14, 0xd4, + 0x84, 0xb4, 0x7e, 0x5a, 0x9f, 0x99, 0x18, 0x2b, 0x45, 0xd4, 0x58, 0x71, 0x2c, 0x1b, 0x59, 0x49, + 0x2d, 0xce, 0x5c, 0x6b, 0x69, 0x54, 0xf1, 0x0f, 0xb1, 0x54, 0x17, 0xfd, 0x79, 0xa2, 0x43, 0x97, + 0xc3, 0x52, 0x09, 0x41, 0xae, 0x77, 0x3b, 0xca, 0x2a, 0xc9, 0xc8, 0x15, 0x04, 0x39, 0x4d, 0x0c, + 0x5a, 0x92, 0x6c, 0x51, 0x46, 0x99, 0x15, 0xcf, 0xe9, 0xbc, 0x9c, 0x13, 0xad, 0x56, 0xf8, 0x07, + 0x0e, 0x3c, 0x2b, 0x5d, 0x21, 0x7b, 0x35, 0x62, 0x50, 0xb7, 0x1d, 0xe9, 0x10, 0x30, 0x8f, 0x79, + 0x76, 0xac, 0xb5, 0xce, 0x01, 0x5c, 0x40, 0x8b, 0xbf, 0xbc, 0xdf, 0xc3, 0xd6, 0x8c, 0xa6, 0x4a, + 0xe7, 0x9d, 0xbf, 0xa2, 0x15, 0x05, 0x36, 0x4b, 0x89, 0x3e, 0x92, 0xc8, 0xe5, 0x15, 0xad, 0xbb, + 0x66, 0x81, 0xa0, 0x48, 0xdf, 0x93, 0x08, 0x03, 0xf2, 0xc9, 0xa3, 0xd1, 0x71, 0x6a, 0x64, 0x93, + 0xee, 0x21, 0xcc, 0x3b, 0x33, 0xa0, 0x4b, 0xc0, 0xee, 0x4a, 0xd6, 0x2f, 0x46, 0x21, 0x09, 0x0b, + 0x53, 0xa5, 0xab, 0xcc, 0xbf, 0xcf, 0x0c, 0x58, 0xbb, 0x13, 0x88, 0x9f, 0x37, 0x90, 0x6f, 0x9c, + 0x08, 0xa6, 0xb3, 0x99, 0x97, 0x3a, 0x76, 0xd2, 0x30, 0x35, 0x28, 0xdc, 0x80, 0xdb, 0x22, 0xcf, + 0x9a, 0xd6, 0x01, 0x02, 0xa4, 0x31, 0x9e, 0x95, 0x3e, 0x8e, 0xe7, 0xea, 0x82, 0xc2, 0x58, 0x7e, + 0xeb, 0xfd, 0x21, 0xed, 0x85, 0x83, 0xd3, 0xfb, 0x05, 0x38, 0xfd, 0xca, 0x55, 0x7c, 0x2e, 0xe1, + 0x73, 0x05, 0x4e, 0xff, 0xef, 0xc7, 0xe1, 0xf4, 0x81, 0x3e, 0x38, 0xfd, 0x3b, 0x1d, 0x3e, 0x0e, + 0x7c, 0xaa, 0xe1, 0xf4, 0xc1, 0xf9, 0xf8, 0xee, 0xc2, 0xf7, 0x93, 0x70, 0xfa, 0xb5, 0x3a, 0x38, + 0xfd, 0xea, 0x36, 0x8c, 0x83, 0xe9, 0x5e, 0xed, 0xfa, 0x1f, 0xdc, 0x1d, 0xda, 0xf4, 0x60, 0xeb, + 0x22, 0xbf, 0x3f, 0x38, 0xba, 0x37, 0x74, 0x5a, 0xee, 0xb4, 0xb1, 0x7b, 0x43, 0xc7, 0xc5, 0x90, + 0x77, 0x86, 0xbe, 0xd2, 0x8f, 0x70, 0xed, 0x0f, 0x4f, 0xa1, 0x9d, 0xa1, 0xaf, 0x3c, 0x83, 0xcf, + 0x23, 0xf8, 0xbc, 0x1d, 0xcf, 0xdb, 0x80, 0x94, 0x77, 0x55, 0xde, 0x19, 0xba, 0xbf, 0x9a, 0xbd, + 0xef, 0xfa, 0xea, 0xbd, 0x80, 0xaf, 0x38, 0xfe, 0xd6, 0x5e, 0xc0, 0x57, 0xdc, 0xff, 0xc0, 0x5e, + 0x40, 0x0e, 0x32, 0xc6, 0xa4, 0x6d, 0xff, 0xf2, 0x9d, 0x7f, 0xaf, 0x2c, 0x1a, 0xbf, 0xf3, 0xef, + 0x95, 0x9a, 0x71, 0x3b, 0xff, 0x6a, 0x12, 0x77, 0xfe, 0xbd, 0x52, 0x39, 0x7e, 0xe7, 0xdf, 0x2b, + 0xe2, 0xf5, 0x3b, 0xff, 0x5e, 0x09, 0x7a, 0x37, 0xff, 0x8d, 0xdd, 0x7e, 0x99, 0xa3, 0xbb, 0xfd, + 0x70, 0x9c, 0x03, 0xe4, 0x5c, 0x5c, 0x83, 0xc6, 0xc3, 0x37, 0xf0, 0xaf, 0x38, 0x83, 0xd2, 0x2e, + 0xae, 0x39, 0x23, 0xc8, 0xed, 0xe2, 0x9a, 0x10, 0x1b, 0xbb, 0x22, 0x81, 0x64, 0x0c, 0x89, 0x34, + 0xab, 0x31, 0x84, 0xac, 0x2b, 0xaa, 0x65, 0x3a, 0xf2, 0x70, 0x18, 0xce, 0x61, 0x2a, 0x75, 0x50, + 0xf2, 0x30, 0x39, 0xd2, 0x36, 0xc1, 0x39, 0xd3, 0xdb, 0x0f, 0xc9, 0x79, 0x33, 0x73, 0xef, 0xbc, + 0x77, 0xa2, 0xf7, 0x47, 0xb4, 0x5a, 0x9f, 0x37, 0x81, 0x2f, 0x96, 0xfe, 0x3c, 0x83, 0x83, 0x99, + 0x94, 0x2e, 0x14, 0xa6, 0xb3, 0xf4, 0xfc, 0x4c, 0xe9, 0xcf, 0x37, 0x8a, 0x8f, 0x12, 0x1c, 0x14, + 0x4d, 0xe0, 0xcb, 0x30, 0xbe, 0xa6, 0x5d, 0x22, 0x3b, 0x96, 0x6d, 0x52, 0x99, 0xea, 0xd5, 0x70, + 0x3a, 0xc7, 0xf3, 0xf0, 0xb0, 0xdd, 0x99, 0x0e, 0xf4, 0x2e, 0xd4, 0x3e, 0xc1, 0x7b, 0x92, 0x5a, + 0xb2, 0x74, 0x49, 0x30, 0xa9, 0x59, 0xe7, 0x5e, 0x91, 0x57, 0x6a, 0x99, 0xe8, 0x5b, 0x71, 0x6e, + 0x3b, 0xe9, 0x45, 0x27, 0xd7, 0xe6, 0x6b, 0xc5, 0x4c, 0x5d, 0x92, 0x74, 0xb2, 0x29, 0xd5, 0xbd, + 0x02, 0x39, 0x1c, 0xb7, 0xe1, 0x77, 0x16, 0xed, 0xb9, 0x1d, 0x24, 0xad, 0x9f, 0x5c, 0xe3, 0xe3, + 0x5f, 0x0c, 0x7b, 0xa0, 0x29, 0x5b, 0x50, 0x0d, 0x76, 0x79, 0xc2, 0x2d, 0xea, 0x2a, 0x7e, 0x30, + 0x4c, 0xbc, 0xbd, 0xed, 0x61, 0xb2, 0xd3, 0x29, 0x3a, 0x67, 0x68, 0xc4, 0x5c, 0x0f, 0xd7, 0xa8, + 0x11, 0x54, 0x1b, 0xba, 0x44, 0xb5, 0xa0, 0xde, 0xd0, 0xe9, 0x09, 0x37, 0xa6, 0xba, 0xc2, 0x33, + 0x34, 0x08, 0xbd, 0x96, 0x4e, 0x0f, 0xd3, 0x29, 0x2a, 0xac, 0x55, 0xba, 0x7d, 0x02, 0xef, 0x40, + 0x28, 0x81, 0x6a, 0x15, 0x04, 0x31, 0x77, 0x30, 0x5c, 0xc5, 0x7b, 0xc2, 0xcd, 0x57, 0x3c, 0x7c, + 0xa3, 0xfc, 0xed, 0xaf, 0xec, 0x1b, 0x1f, 0x0c, 0x97, 0x41, 0x38, 0x22, 0xa6, 0x52, 0x3d, 0x06, + 0x70, 0x14, 0x75, 0x47, 0xdd, 0xfb, 0xc2, 0x51, 0xc4, 0x61, 0xc7, 0x8d, 0xea, 0x6f, 0x4b, 0x4d, + 0x76, 0x40, 0x98, 0x24, 0x1c, 0x7a, 0xcb, 0xfd, 0xf5, 0x46, 0x38, 0x22, 0xbc, 0x26, 0x42, 0x20, + 0xea, 0x3d, 0x11, 0x7f, 0x75, 0x42, 0x08, 0xca, 0x92, 0xa8, 0x31, 0xef, 0x10, 0x4a, 0x37, 0xee, + 0x27, 0x8e, 0xd4, 0x94, 0xd5, 0xd5, 0x69, 0xd1, 0x8a, 0xea, 0xb7, 0x57, 0x9c, 0x5c, 0xe3, 0x59, + 0xd1, 0x7c, 0x45, 0x54, 0x1f, 0xeb, 0x3a, 0xda, 0xe9, 0xe9, 0x22, 0xd7, 0xc9, 0xb5, 0x27, 0xd7, + 0x74, 0xdc, 0xbb, 0xa7, 0xb3, 0xde, 0x9c, 0x01, 0xbc, 0x0a, 0x1e, 0xd6, 0xa8, 0xa0, 0x38, 0x93, + 0xe3, 0xd5, 0xf0, 0xf0, 0x56, 0xb5, 0x38, 0x69, 0x99, 0x54, 0x96, 0x74, 0x30, 0x2c, 0xb7, 0x85, + 0xa9, 0x88, 0x96, 0xda, 0x5a, 0xc1, 0xb3, 0xc2, 0xff, 0x4b, 0xf1, 0xc8, 0x50, 0xb4, 0x4a, 0xe5, + 0x89, 0xb2, 0x1a, 0x6b, 0x68, 0xee, 0x93, 0x03, 0x16, 0x2b, 0xda, 0xfa, 0xf0, 0xfe, 0xce, 0x17, + 0x22, 0xc1, 0x87, 0xcb, 0x60, 0x5f, 0xb8, 0x2b, 0xd2, 0xd5, 0x85, 0xdf, 0x75, 0x09, 0x90, 0x69, + 0x3d, 0xaa, 0xc6, 0xb4, 0x44, 0x48, 0x3b, 0xc2, 0x65, 0x9a, 0xae, 0x95, 0x24, 0x97, 0x7e, 0x09, + 0x4e, 0x78, 0x03, 0x60, 0x9e, 0xe1, 0xa0, 0xd8, 0x1b, 0x6d, 0xcc, 0x4c, 0x4c, 0x29, 0x30, 0x78, + 0x3c, 0x91, 0x46, 0x8f, 0xe8, 0xd5, 0xf0, 0xd2, 0x80, 0x87, 0x6f, 0x49, 0x0f, 0x4a, 0x65, 0x30, + 0x80, 0x58, 0xc6, 0x96, 0x17, 0x36, 0xec, 0x33, 0x6a, 0x4f, 0x6d, 0xf3, 0xeb, 0xc7, 0xb5, 0x95, + 0x81, 0xf4, 0x46, 0xe2, 0xd2, 0xd8, 0xd2, 0x19, 0xae, 0x70, 0x02, 0x7d, 0x6a, 0x51, 0x7f, 0x2a, + 0xa2, 0xfb, 0xa6, 0xe9, 0x64, 0xe7, 0xf5, 0x78, 0xb7, 0xf3, 0x69, 0x04, 0x49, 0x44, 0x70, 0xb6, + 0x39, 0x76, 0x47, 0x9b, 0x84, 0x58, 0xbe, 0x98, 0x8f, 0x8e, 0x52, 0x33, 0x78, 0x5e, 0x16, 0x6b, + 0x94, 0x72, 0x2a, 0x8b, 0xcf, 0x4a, 0x2f, 0x19, 0x19, 0x8c, 0x26, 0xed, 0x99, 0x5f, 0x90, 0x2d, + 0xd8, 0xae, 0x4e, 0x0f, 0x34, 0x9a, 0x0c, 0x7c, 0x59, 0x64, 0x1f, 0x8e, 0x17, 0x06, 0x90, 0x53, + 0xd0, 0x2e, 0x94, 0xd0, 0xc3, 0xfb, 0xc2, 0xad, 0x2f, 0x1d, 0x89, 0xca, 0xf1, 0x4f, 0xfe, 0x82, + 0xc5, 0xd4, 0x25, 0xc2, 0x36, 0x10, 0x55, 0xf4, 0xa7, 0xeb, 0xe0, 0x2a, 0x20, 0x7a, 0x18, 0x5f, + 0xcb, 0x0e, 0xa4, 0x5c, 0xad, 0x2b, 0x4c, 0x94, 0x4d, 0xfd, 0x22, 0x24, 0x39, 0x79, 0x51, 0xed, + 0xe3, 0xc9, 0x62, 0xee, 0x81, 0xb0, 0xff, 0xb2, 0x87, 0x0f, 0x64, 0xa4, 0xf1, 0xee, 0x08, 0xc3, + 0xd3, 0xcb, 0x06, 0xed, 0xfb, 0xdb, 0x0c, 0x40, 0x25, 0x8a, 0xea, 0x10, 0x88, 0x1a, 0x76, 0x73, + 0x3a, 0x68, 0x78, 0x70, 0xe8, 0x79, 0x9a, 0xb7, 0x0e, 0x77, 0x12, 0xfd, 0xee, 0x43, 0xfa, 0x1d, + 0x0f, 0x95, 0x8e, 0x87, 0xef, 0xb5, 0xe8, 0xb5, 0x03, 0x70, 0x67, 0x42, 0x28, 0x2f, 0x5b, 0x60, + 0xbd, 0x21, 0xed, 0xce, 0x30, 0x73, 0x26, 0xc8, 0xe2, 0xf8, 0x24, 0x78, 0x18, 0x87, 0xdc, 0x87, + 0xdf, 0x86, 0xf4, 0x24, 0x6c, 0xbb, 0x97, 0x64, 0x1b, 0xb7, 0x67, 0xdd, 0x16, 0x87, 0x6c, 0x39, + 0xe1, 0x6c, 0xb9, 0xb9, 0x58, 0x50, 0xcb, 0x96, 0xbc, 0x6e, 0x96, 0x4c, 0x0e, 0xab, 0xea, 0xc4, + 0x3a, 0xb2, 0xfe, 0x73, 0xb3, 0x44, 0xf6, 0xc1, 0xbf, 0x5b, 0x67, 0xbb, 0xc9, 0xa6, 0x21, 0xeb, + 0xd8, 0x67, 0xbb, 0xad, 0x0e, 0xba, 0xb3, 0x40, 0x76, 0xff, 0x69, 0x00, 0xc3, 0x75, 0xe4, 0x7e, + 0xaf, 0xbb, 0xfc, 0xb2, 0x16, 0x6c, 0x29, 0x72, 0x2c, 0xca, 0x7b, 0x70, 0x6d, 0x48, 0x22, 0xde, + 0xd3, 0xa2, 0x1e, 0x0c, 0x8b, 0x1a, 0x56, 0xea, 0xc0, 0x78, 0xfe, 0x24, 0x3a, 0xfe, 0xbd, 0x93, + 0x7a, 0xf9, 0xab, 0x91, 0x95, 0x61, 0x0f, 0xdf, 0xa4, 0xc1, 0xda, 0x3d, 0x3c, 0xa6, 0xaf, 0xcb, + 0xfd, 0xb9, 0x53, 0xcc, 0x44, 0x0a, 0xe3, 0x09, 0x2f, 0xe3, 0xf1, 0x21, 0x9f, 0xd4, 0xf8, 0xdb, + 0x7c, 0x90, 0xfa, 0x37, 0xa6, 0x4d, 0x0c, 0xd5, 0x7a, 0x97, 0x7e, 0x19, 0x5f, 0x64, 0xfa, 0x16, + 0x87, 0xf4, 0xc2, 0x2b, 0xfc, 0x61, 0xaf, 0xac, 0x5d, 0xc9, 0x63, 0xf9, 0x21, 0x35, 0x9c, 0x7e, + 0xfd, 0x04, 0x3e, 0xc7, 0xf0, 0x39, 0x0e, 0xa7, 0x0f, 0x67, 0xc2, 0xe9, 0x23, 0x41, 0x38, 0xfd, + 0x7f, 0x9e, 0x82, 0xd3, 0x43, 0xbd, 0x70, 0xfa, 0x0d, 0x3b, 0xbe, 0x5d, 0xf8, 0xc6, 0xf1, 0x7c, + 0x68, 0x03, 0x9c, 0x7e, 0xd3, 0x88, 0xdf, 0x70, 0xcc, 0x3f, 0x3c, 0x80, 0xef, 0x45, 0xff, 0xc3, + 0x63, 0xf9, 0xe2, 0xfa, 0xfa, 0xfa, 0x25, 0x8b, 0x9b, 0x03, 0xb5, 0x0f, 0x2e, 0x19, 0x1d, 0xd3, + 0xed, 0xb9, 0xdf, 0xbc, 0x7e, 0x4c, 0xbf, 0x41, 0x4c, 0x79, 0x6c, 0x7f, 0x7d, 0x2b, 0xc2, 0x79, + 0x31, 0x62, 0x9e, 0x88, 0xa3, 0xf7, 0xeb, 0xff, 0x2f, 0x3e, 0x55, 0xf8, 0xec, 0x4e, 0x1c, 0xdb, + 0x0f, 0x1e, 0x90, 0xc7, 0xf6, 0x43, 0x05, 0xb1, 0x93, 0x00, 0xbf, 0x17, 0x63, 0x9f, 0xbf, 0x7c, + 0x8c, 0x7f, 0x5d, 0xf7, 0xb7, 0xc6, 0xf8, 0xd7, 0xd3, 0xff, 0x81, 0x31, 0x5e, 0x35, 0x76, 0x8c, + 0x7f, 0xdd, 0xf5, 0xe5, 0x63, 0xfc, 0xeb, 0xf9, 0xe3, 0xc7, 0xf8, 0xd7, 0x0f, 0x7c, 0xd5, 0x18, + 0xff, 0x7a, 0xf6, 0xf8, 0x31, 0xfe, 0x75, 0xeb, 0xf5, 0x63, 0xfc, 0xeb, 0x45, 0xff, 0xc8, 0x18, + 0xff, 0x29, 0xb8, 0xe0, 0x53, 0xce, 0xf5, 0x8d, 0x4f, 0xa1, 0x8e, 0xa8, 0x06, 0x14, 0xbf, 0x30, + 0xce, 0x6f, 0x18, 0xe7, 0x37, 0x27, 0xf8, 0xb3, 0x12, 0xdc, 0x99, 0x63, 0xe2, 0xe1, 0x68, 0x23, + 0xbb, 0x1d, 0x20, 0x87, 0xd3, 0xf9, 0x01, 0x79, 0x8e, 0x40, 0x86, 0x07, 0xe1, 0xcc, 0xe5, 0xcc, + 0xa1, 0xe0, 0x40, 0x84, 0x76, 0x58, 0x1b, 0x9c, 0xf6, 0x0e, 0xe9, 0x24, 0x6a, 0x8a, 0xa7, 0x7f, + 0xef, 0x46, 0xa9, 0x77, 0x3e, 0xf3, 0x1f, 0x67, 0xfe, 0xea, 0xb8, 0x94, 0x2c, 0x87, 0x1e, 0x64, + 0xa1, 0x45, 0xe3, 0x42, 0xf7, 0xb3, 0x50, 0xfb, 0xb8, 0xd0, 0xbd, 0x2c, 0x54, 0x3f, 0x2e, 0xb4, + 0x8f, 0x85, 0x0a, 0xe3, 0x42, 0x77, 0x52, 0xe8, 0xa1, 0x8b, 0xe3, 0x42, 0x77, 0xb0, 0xb8, 0x30, + 0x1a, 0x1a, 0xe4, 0xe4, 0x9e, 0xf6, 0xf7, 0xc8, 0x36, 0xda, 0x30, 0xdc, 0x29, 0xf7, 0xe0, 0xaf, + 0x92, 0x6b, 0xcc, 0xc0, 0x77, 0x3d, 0x8c, 0x5c, 0xcd, 0xc8, 0xf1, 0x51, 0x7a, 0x0b, 0x4e, 0x8b, + 0xfa, 0x89, 0xa8, 0xbb, 0xf4, 0x93, 0x52, 0xf7, 0xef, 0x90, 0x6a, 0x32, 0x94, 0xd1, 0x29, 0xd5, + 0x44, 0x37, 0xb8, 0xe0, 0x60, 0xa4, 0x7d, 0x05, 0xbe, 0x46, 0x1c, 0xdc, 0x13, 0xc1, 0x6f, 0x11, + 0xf9, 0x1b, 0xa5, 0x65, 0xdf, 0xf6, 0xd1, 0x37, 0x1a, 0x91, 0x5b, 0xd4, 0xe7, 0x7e, 0x21, 0x6a, + 0x5c, 0x2b, 0xce, 0xfd, 0xab, 0x59, 0xfb, 0x42, 0xa4, 0x29, 0x8b, 0x67, 0xb9, 0x18, 0x54, 0x47, + 0xa2, 0x5a, 0x0e, 0xb5, 0x0f, 0xbf, 0xa6, 0x8b, 0xcc, 0x3b, 0x9f, 0x8c, 0x88, 0xf3, 0x71, 0x5c, + 0xd0, 0x18, 0xf8, 0x4d, 0x9d, 0xa2, 0xda, 0xa0, 0xda, 0x14, 0xc5, 0xd1, 0x53, 0xef, 0x8a, 0xc8, + 0xf2, 0x8d, 0x3c, 0x9e, 0x8a, 0x59, 0x58, 0x12, 0x8d, 0x20, 0x69, 0x2c, 0x54, 0xdd, 0x0e, 0x62, + 0xde, 0x91, 0x88, 0xa6, 0x4b, 0xc2, 0x8f, 0x98, 0xd7, 0xd7, 0x02, 0x9f, 0x7a, 0xba, 0x1a, 0x33, + 0x58, 0xcd, 0xff, 0x2a, 0x73, 0x7b, 0x33, 0xea, 0x50, 0x34, 0x6a, 0x8a, 0xc9, 0x7c, 0x84, 0xa0, + 0xea, 0x8e, 0x74, 0x87, 0x69, 0x7e, 0xec, 0xcb, 0x64, 0x1c, 0x5d, 0xf8, 0xe1, 0x6e, 0xb2, 0x07, + 0xa9, 0x61, 0x30, 0x92, 0xb4, 0x43, 0x32, 0x98, 0xec, 0x63, 0xfb, 0x9f, 0x6e, 0x88, 0xef, 0x9d, + 0xd7, 0x8d, 0x71, 0xde, 0xa5, 0x58, 0x97, 0x74, 0xac, 0x41, 0xba, 0x2b, 0xec, 0x8a, 0xec, 0x0c, + 0x37, 0xea, 0x08, 0xfb, 0x34, 0xa3, 0xb9, 0x33, 0xdc, 0x92, 0x18, 0x57, 0x1b, 0x94, 0x64, 0xde, + 0x4a, 0xdf, 0x6e, 0xd4, 0x36, 0x28, 0xfb, 0x46, 0xfc, 0x16, 0x1c, 0xfb, 0x11, 0x2e, 0x36, 0x2f, + 0x7d, 0x39, 0xb1, 0x24, 0x81, 0x97, 0xb1, 0x09, 0x61, 0x6a, 0x2f, 0x91, 0x2c, 0x68, 0x84, 0xfd, + 0xe2, 0x18, 0x49, 0x84, 0x93, 0x63, 0xb0, 0x55, 0x0a, 0xd7, 0xc6, 0x57, 0x64, 0x99, 0x2b, 0xbc, + 0xc2, 0xac, 0x25, 0x49, 0xeb, 0xe4, 0xa3, 0xb2, 0xa4, 0x75, 0xb4, 0xf3, 0xed, 0x15, 0x9e, 0x4e, + 0x26, 0x73, 0xad, 0x39, 0xf9, 0x28, 0xca, 0x5c, 0x2b, 0xea, 0x67, 0x98, 0x78, 0xbe, 0x93, 0x72, + 0x35, 0x73, 0x32, 0x55, 0x6c, 0xed, 0xd2, 0x74, 0xde, 0x4b, 0xa5, 0xe4, 0x11, 0x9d, 0xb0, 0x36, + 0xde, 0x0f, 0x5f, 0x7b, 0x6f, 0xad, 0x89, 0x1b, 0xa5, 0x86, 0xf7, 0xd6, 0x58, 0x58, 0x4b, 0xa1, + 0x04, 0xde, 0xe5, 0xdf, 0x20, 0xee, 0x19, 0x0c, 0x6b, 0x3a, 0xa9, 0x75, 0x50, 0xfe, 0xbc, 0x84, + 0x63, 0x8a, 0x86, 0xdd, 0x9f, 0x03, 0x27, 0xc2, 0x38, 0x76, 0x62, 0x8a, 0x70, 0xe7, 0x8b, 0x51, + 0x3e, 0x4a, 0xf1, 0xc3, 0xd1, 0xb1, 0x63, 0x95, 0xa7, 0x53, 0xf1, 0x7f, 0x16, 0x1f, 0xb5, 0x6f, + 0x30, 0x76, 0x91, 0x2d, 0x6a, 0x03, 0x62, 0x48, 0xa6, 0x56, 0x1d, 0x59, 0xc1, 0x83, 0x96, 0x49, + 0x37, 0x92, 0xc3, 0x9a, 0xfc, 0xb2, 0xf4, 0x24, 0x2e, 0xa0, 0xf6, 0x94, 0xe9, 0xf8, 0x3a, 0xb9, + 0xc4, 0xe9, 0x76, 0x7e, 0xe2, 0x74, 0xef, 0xc3, 0xbe, 0x16, 0x3d, 0xbc, 0x4f, 0x86, 0x70, 0xba, + 0x16, 0xe5, 0x87, 0xaf, 0xe9, 0x54, 0x90, 0xd9, 0x92, 0x4c, 0xb7, 0xb2, 0x48, 0x0d, 0xa7, 0xb7, + 0x89, 0xda, 0xb6, 0xc5, 0x65, 0x2a, 0xba, 0x81, 0x12, 0xdb, 0x37, 0x75, 0xac, 0x94, 0x26, 0x5b, + 0xb0, 0xbe, 0x91, 0x7c, 0x66, 0x00, 0x85, 0xb6, 0x00, 0x56, 0x8f, 0x42, 0x7c, 0x2f, 0x96, 0xd1, + 0x3c, 0x2a, 0xad, 0x45, 0x64, 0x69, 0xcd, 0x50, 0xf4, 0x12, 0xe1, 0x59, 0x24, 0xb8, 0x50, 0xe6, + 0xa9, 0x89, 0xc3, 0xb5, 0xea, 0xf0, 0xbe, 0x51, 0xa9, 0x0d, 0x29, 0xac, 0xc8, 0xc4, 0x97, 0x75, + 0xbe, 0x1a, 0x0e, 0x98, 0xe5, 0x14, 0x34, 0xfa, 0x1a, 0x80, 0x67, 0xb4, 0xe0, 0x76, 0x7c, 0xe2, + 0x70, 0x0f, 0xb4, 0xae, 0x1a, 0x54, 0xe4, 0xb6, 0x13, 0xbf, 0xa0, 0xdc, 0x13, 0x29, 0x6f, 0x5f, + 0x54, 0xe0, 0x6e, 0x2c, 0xb7, 0x11, 0x5e, 0x91, 0x8e, 0xd2, 0xc6, 0xe1, 0x07, 0x60, 0x25, 0x96, + 0x99, 0xec, 0x0a, 0xcb, 0x39, 0x52, 0xef, 0x0e, 0x49, 0x1b, 0x0f, 0xa0, 0xec, 0xd6, 0x7d, 0x24, + 0x62, 0xe2, 0x5e, 0x45, 0xd9, 0x2d, 0x74, 0xfb, 0xce, 0xee, 0xc6, 0xd4, 0xd0, 0x07, 0x47, 0xba, + 0xe5, 0xfe, 0x76, 0xf2, 0x29, 0x51, 0x13, 0xba, 0x7d, 0x53, 0xf7, 0xfb, 0xdb, 0xd8, 0xad, 0x6d, + 0x3a, 0x5f, 0x58, 0x17, 0xa6, 0xe9, 0x0c, 0x3f, 0xef, 0xeb, 0x3e, 0x19, 0x0e, 0x2d, 0x3f, 0xd2, + 0x7d, 0x81, 0xd9, 0x48, 0x55, 0xe8, 0x21, 0x42, 0x74, 0x90, 0x3f, 0x81, 0x77, 0x62, 0xa9, 0x3c, + 0x93, 0xe1, 0x22, 0x15, 0x61, 0xb2, 0xcf, 0x90, 0x28, 0xc1, 0x7d, 0x19, 0x8e, 0x67, 0x14, 0x19, + 0xc1, 0xc4, 0x61, 0xfb, 0xaa, 0xb1, 0xc7, 0x64, 0x8d, 0xed, 0x25, 0xbf, 0x09, 0xc7, 0x7b, 0xc1, + 0x49, 0x0b, 0xf0, 0x2b, 0x40, 0xba, 0x08, 0x41, 0xdd, 0x89, 0x7f, 0x83, 0x52, 0x2d, 0xa3, 0x6f, + 0xf2, 0x9f, 0x78, 0x1a, 0x5c, 0x5a, 0x10, 0xf8, 0x98, 0x5c, 0x47, 0x3d, 0x87, 0x5c, 0x66, 0x87, + 0x95, 0xe7, 0x57, 0x32, 0x7e, 0xc8, 0xc9, 0xb8, 0x3d, 0x1e, 0x56, 0x24, 0x3d, 0xe5, 0x1e, 0x94, + 0xf7, 0xba, 0x2d, 0x0e, 0xb6, 0xa3, 0x8c, 0x49, 0x7a, 0x96, 0x9b, 0xde, 0x0e, 0xa3, 0x74, 0xa7, + 0x8b, 0x49, 0x77, 0xcc, 0xa7, 0x96, 0xbf, 0xbd, 0x1d, 0x16, 0x34, 0xc8, 0x11, 0x93, 0x35, 0xe1, + 0x01, 0xcc, 0xe7, 0xed, 0x15, 0x28, 0xcf, 0x86, 0x5f, 0x26, 0x0a, 0x4d, 0xc2, 0xbe, 0xb1, 0x82, + 0xf5, 0x8d, 0x15, 0x08, 0x1d, 0xe2, 0xe2, 0x37, 0x4a, 0xcf, 0x58, 0x1d, 0x45, 0x9c, 0x67, 0x8f, + 0xa1, 0xe9, 0xa4, 0x31, 0x7d, 0x5e, 0x1f, 0x5e, 0x31, 0x5e, 0xce, 0x2b, 0xba, 0x41, 0x5f, 0xa1, + 0xfb, 0x8e, 0x58, 0x5f, 0x18, 0xa5, 0xff, 0xb1, 0x7a, 0x5a, 0x06, 0x51, 0x73, 0x22, 0x7d, 0x88, + 0x6a, 0xe2, 0x4b, 0xc2, 0x0d, 0xf8, 0x92, 0x2d, 0x55, 0xce, 0x8b, 0xe8, 0x8d, 0xc9, 0x2a, 0xd7, + 0x8d, 0x3f, 0x8d, 0xd7, 0xf1, 0x38, 0xcf, 0x0d, 0x78, 0x64, 0x8c, 0xef, 0x31, 0x59, 0xf1, 0xef, + 0x93, 0xe3, 0x16, 0xd6, 0x85, 0x5a, 0x9a, 0x72, 0x17, 0xc9, 0xc7, 0x68, 0x85, 0x69, 0xb9, 0xd3, + 0xc7, 0x0a, 0x6f, 0xec, 0xf3, 0x54, 0xe5, 0x33, 0x93, 0xd8, 0xde, 0x72, 0xc3, 0x99, 0xd2, 0x4b, + 0x1c, 0xa7, 0x95, 0xd0, 0x5d, 0x88, 0xcf, 0x1d, 0x70, 0xfa, 0xc4, 0x1b, 0x72, 0x96, 0xba, 0x12, + 0x57, 0xd9, 0xe2, 0xc6, 0xfa, 0xaa, 0x1f, 0x2f, 0x69, 0xad, 0x6f, 0x42, 0xff, 0x4d, 0x63, 0x93, + 0x43, 0x58, 0x99, 0x9b, 0x61, 0x7b, 0x5a, 0xe5, 0xf7, 0x37, 0x98, 0x4c, 0xa7, 0xfc, 0xed, 0xff, + 0xdd, 0xff, 0x7e, 0xed, 0xf0, 0xd1, 0xe3, 0xef, 0x9d, 0x38, 0x79, 0xea, 0xfd, 0xd3, 0x1f, 0x7c, + 0x78, 0xf6, 0xdc, 0x47, 0x1f, 0x9f, 0xff, 0xe4, 0xc2, 0x9f, 0xff, 0xf2, 0xe9, 0xa5, 0xcb, 0x9f, + 0x0d, 0xff, 0xf5, 0x8b, 0xab, 0x2f, 0xf5, 0xfe, 0xe2, 0x5f, 0x7f, 0xf5, 0x9b, 0xdd, 0xef, 0x3e, + 0xf7, 0xcc, 0x4b, 0xbb, 0xb6, 0xbd, 0xf4, 0xea, 0xb1, 0x97, 0x5e, 0x78, 0xe9, 0xa5, 0x7f, 0xfb, + 0xf5, 0xc5, 0x97, 0xf0, 0xaf, 0xa7, 0xff, 0xa5, 0x33, 0x57, 0x5e, 0xfa, 0x97, 0x1d, 0xe4, 0xde, + 0xfe, 0xdb, 0x97, 0x9e, 0x1a, 0x78, 0xe5, 0xad, 0x97, 0x5e, 0x7a, 0x76, 0xaa, 0xc1, 0x20, 0xee, + 0xfa, 0xfc, 0x25, 0xe9, 0x25, 0xdb, 0xd3, 0xf4, 0xe1, 0xa5, 0xdc, 0xbe, 0x97, 0x5e, 0xda, 0x77, + 0xf0, 0xe5, 0xd7, 0x0f, 0xfc, 0xfe, 0x8d, 0xff, 0x73, 0xe8, 0xcd, 0xa1, 0x97, 0x8e, 0xbc, 0xfd, + 0x9f, 0x7f, 0x7c, 0x69, 0xc1, 0xf2, 0x67, 0x5f, 0xfa, 0x4d, 0xef, 0x4b, 0x86, 0xdc, 0x97, 0xe0, + 0xf4, 0xb5, 0x2d, 0x70, 0x66, 0xe2, 0x1e, 0x38, 0xa3, 0x7b, 0x12, 0xce, 0xa4, 0xf4, 0xa0, 0xbf, + 0x17, 0xce, 0x00, 0xca, 0xdb, 0x92, 0x16, 0xce, 0x68, 0xd6, 0xa2, 0xff, 0x14, 0x9c, 0x1e, 0x41, + 0xa9, 0x74, 0x64, 0x13, 0x3e, 0x58, 0xfb, 0x11, 0x2f, 0x7e, 0xd7, 0xe1, 0x7b, 0x08, 0x9f, 0x65, + 0xf8, 0x84, 0xe0, 0xcc, 0xad, 0xd9, 0x70, 0xe6, 0x8e, 0x01, 0x38, 0x73, 0xe7, 0x5c, 0x38, 0x33, + 0x29, 0x8c, 0xfe, 0x02, 0x38, 0x73, 0x5b, 0x19, 0x9c, 0x31, 0xe6, 0xc1, 0x99, 0xbb, 0x9e, 0x42, + 0x7f, 0x14, 0xce, 0xa4, 0xab, 0xf1, 0xa9, 0x86, 0x33, 0x93, 0xf1, 0x49, 0xdf, 0x0f, 0x67, 0xbe, + 0x36, 0x1d, 0xdf, 0x27, 0x31, 0x5e, 0x3a, 0xbe, 0x8f, 0xb0, 0xbd, 0x0e, 0x67, 0x1c, 0xbd, 0x6c, + 0x07, 0xc3, 0xe9, 0x77, 0x82, 0x6c, 0xaf, 0x2f, 0xe8, 0x13, 0x5b, 0x2f, 0x5d, 0x96, 0x8a, 0xdf, + 0x79, 0x4f, 0x79, 0x7f, 0x36, 0xf6, 0xec, 0xec, 0xd7, 0x7f, 0x50, 0x09, 0xf2, 0x15, 0x6b, 0xca, + 0xef, 0xa4, 0x7f, 0xff, 0xf3, 0x45, 0x00, 0xfb, 0x85, 0x9b, 0x33, 0x01, 0x72, 0x7b, 0x3e, 0x3d, + 0x8b, 0xbf, 0x9f, 0x5c, 0xee, 0xc3, 0xdf, 0xed, 0x59, 0xf8, 0x3d, 0xf7, 0x99, 0x73, 0x7d, 0xec, + 0x17, 0xc3, 0xed, 0x3d, 0x77, 0x60, 0x9c, 0x3b, 0xbf, 0x4d, 0xf1, 0xaf, 0xff, 0x53, 0x49, 0xdb, + 0x37, 0xea, 0xe1, 0x66, 0xf5, 0x5b, 0x8b, 0xed, 0x2e, 0x7b, 0x4f, 0xcf, 0x9a, 0xa7, 0xc1, 0x51, + 0x3d, 0x54, 0xed, 0xa8, 0xde, 0x96, 0xbc, 0x6d, 0x5b, 0xc7, 0xc4, 0x39, 0xae, 0xb7, 0xaa, 0xdd, + 0xbe, 0x9e, 0xa7, 0x2c, 0xe1, 0x74, 0x43, 0xcf, 0xaf, 0x86, 0xa0, 0xb6, 0x92, 0x9b, 0xdd, 0xd0, + 0x33, 0xd4, 0xd3, 0x33, 0xe1, 0xdd, 0x39, 0x1e, 0x5f, 0x65, 0xb7, 0x6d, 0x64, 0xa8, 0x2f, 0xe9, + 0x81, 0xaf, 0x5d, 0x1b, 0x9e, 0x63, 0x79, 0x2e, 0xe5, 0x8b, 0xa1, 0x0b, 0x8f, 0xcd, 0x2f, 0x7d, + 0xff, 0x93, 0xff, 0x55, 0xdb, 0x97, 0x7c, 0xe7, 0x7c, 0xe9, 0x4f, 0x73, 0xe6, 0x7c, 0x31, 0xf2, + 0xa3, 0x1f, 0x7d, 0xfe, 0xa3, 0x3f, 0xb4, 0x49, 0x23, 0xd2, 0xc8, 0xc3, 0x23, 0xa4, 0xad, 0x48, + 0x23, 0x63, 0x8b, 0x4f, 0xbf, 0x49, 0x0f, 0xd5, 0x73, 0x1c, 0xa0, 0xae, 0x96, 0xa9, 0x66, 0x4e, + 0x71, 0xa3, 0x3a, 0xa9, 0xba, 0x7b, 0xbd, 0xfe, 0xe2, 0x89, 0xee, 0x39, 0xdf, 0x9f, 0x93, 0x74, + 0x5b, 0x75, 0xcf, 0xc6, 0x5b, 0x7e, 0xc8, 0xf7, 0xcc, 0xb9, 0xbf, 0xfa, 0xf4, 0x9c, 0xea, 0x4f, + 0x0e, 0xcf, 0x79, 0xac, 0xec, 0x93, 0x39, 0xdf, 0xaf, 0xbe, 0xed, 0xb6, 0x6a, 0xe9, 0xff, 0xcc, + 0x39, 0xf5, 0xc1, 0xc8, 0x1c, 0x07, 0xc5, 0x97, 0x73, 0xfe, 0x13, 0xfd, 0x1d, 0x97, 0xdd, 0xd2, + 0xd5, 0x39, 0x23, 0xcd, 0x9f, 0x48, 0x97, 0x9f, 0xfb, 0xe2, 0x9d, 0x4f, 0x7e, 0xfb, 0xcf, 0xd2, + 0xe7, 0x4b, 0xe7, 0x49, 0xd2, 0xde, 0x4f, 0x9e, 0xdf, 0xdb, 0x23, 0x7d, 0xfe, 0xa7, 0x1f, 0xec, + 0xfb, 0x5c, 0x1a, 0xee, 0x97, 0x76, 0x3f, 0x23, 0x49, 0x9f, 0x4b, 0xe7, 0xde, 0x9d, 0x53, 0x73, + 0xaf, 0xb4, 0xa7, 0xa7, 0x67, 0xf7, 0xbb, 0x52, 0x4f, 0xd5, 0x67, 0x5f, 0xf4, 0xf4, 0x0c, 0x6d, + 0xbf, 0xf0, 0xf0, 0xa5, 0x24, 0x4f, 0xe9, 0x17, 0xd7, 0x86, 0xf9, 0xfd, 0xdb, 0xdf, 0xfd, 0xeb, + 0xb5, 0x9b, 0x2c, 0xfa, 0x0b, 0x9f, 0xee, 0xed, 0xd7, 0xff, 0xe2, 0x4f, 0xa7, 0x3f, 0x3f, 0xf7, + 0x0b, 0xb8, 0x75, 0x78, 0xbb, 0x1b, 0xba, 0x1f, 0xd1, 0xae, 0x76, 0xe3, 0x68, 0x35, 0x98, 0x1c, + 0x56, 0x6a, 0xa2, 0x94, 0x2b, 0xff, 0x8e, 0x9c, 0x7c, 0xea, 0x79, 0x84, 0xe1, 0x61, 0x06, 0x09, + 0xfb, 0x3d, 0x51, 0x96, 0x7a, 0xf3, 0x88, 0x34, 0x58, 0x9a, 0xf4, 0xb5, 0x11, 0x69, 0xc0, 0xa5, + 0x9b, 0x30, 0x22, 0xed, 0x77, 0xe9, 0x66, 0xe2, 0x6f, 0x69, 0x3a, 0x62, 0x66, 0x7f, 0x99, 0x1a, + 0xdd, 0x03, 0x65, 0x6a, 0x0c, 0x1f, 0x74, 0xdd, 0x86, 0x71, 0x4e, 0xbc, 0x4a, 0xf1, 0x13, 0xf3, + 0x8c, 0xfd, 0x6e, 0xa7, 0xdf, 0xfb, 0xdf, 0xc2, 0x54, 0x17, 0x61, 0xdb, 0x9a, 0xbd, 0xd2, 0x40, + 0xf1, 0xe1, 0xea, 0xe5, 0xd2, 0x36, 0xed, 0x2f, 0xb6, 0x2d, 0x97, 0xe6, 0x94, 0xfe, 0xae, 0x7a, + 0xf9, 0x08, 0xb5, 0xd7, 0x8c, 0x91, 0x9e, 0xa7, 0xab, 0x61, 0xf9, 0xb5, 0x39, 0xb3, 0x7a, 0x7a, + 0x46, 0x46, 0x92, 0xd5, 0x3f, 0x98, 0x33, 0x63, 0x44, 0xbf, 0xcd, 0x36, 0xb2, 0x77, 0x44, 0xad, + 0x7a, 0xe0, 0xda, 0x8c, 0x11, 0x41, 0xb3, 0x7d, 0x78, 0xb9, 0xa4, 0xbf, 0x69, 0xce, 0xa9, 0x11, + 0xe9, 0x17, 0x59, 0x3d, 0xb7, 0x8c, 0x48, 0x1f, 0xcf, 0x99, 0xf3, 0xc8, 0x88, 0x74, 0x45, 0xba, + 0x7a, 0x2f, 0xe6, 0x0f, 0x5c, 0xac, 0xc4, 0x51, 0x06, 0x90, 0x1b, 0xaa, 0x5f, 0xd2, 0xb2, 0x34, + 0xb4, 0xb0, 0xfe, 0xef, 0x63, 0x35, 0x8b, 0x9b, 0x83, 0x4b, 0x5b, 0x73, 0xeb, 0xd8, 0xe9, 0x70, + 0x98, 0x30, 0xa7, 0xb9, 0xf9, 0xc1, 0xa6, 0x7a, 0x54, 0x2f, 0xca, 0x2b, 0x0a, 0xa1, 0xe4, 0xc1, + 0x66, 0x3a, 0xfe, 0x1e, 0xac, 0x0f, 0xf9, 0x5b, 0x42, 0x4d, 0x42, 0xb0, 0xf1, 0xc1, 0x1f, 0x0b, + 0x0f, 0x2e, 0xad, 0x5b, 0xdc, 0x22, 0x2c, 0x6c, 0x69, 0x6a, 0xc2, 0x0c, 0xef, 0x82, 0xc5, 0x8d, + 0x8d, 0xf5, 0x81, 0x07, 0x1b, 0x7f, 0xd0, 0xb8, 0xb8, 0xf9, 0x21, 0x28, 0x71, 0x4d, 0x75, 0x15, + 0x43, 0x5d, 0xcb, 0xa8, 0xb2, 0xb9, 0xb4, 0x75, 0x71, 0xe3, 0xe2, 0xd6, 0x1f, 0xc7, 0xfd, 0xad, + 0x8b, 0x9b, 0xea, 0x43, 0xb1, 0xc2, 0x0a, 0xa1, 0x38, 0x18, 0x6c, 0xac, 0xff, 0x81, 0xbb, 0xac, + 0x0a, 0x72, 0x43, 0x4b, 0x42, 0x0b, 0x31, 0xa4, 0xc4, 0x65, 0xb7, 0x4f, 0xc3, 0x5f, 0xdf, 0x7d, + 0xb3, 0xf1, 0xb7, 0x7a, 0x2e, 0x14, 0xcf, 0x2e, 0x9f, 0x59, 0x0c, 0x25, 0x15, 0xe8, 0x2b, 0xab, + 0x12, 0x4a, 0xb0, 0x1a, 0x81, 0xfa, 0xf2, 0xe6, 0x56, 0xb8, 0x6f, 0x69, 0xab, 0xd0, 0xe2, 0x17, + 0x9a, 0xea, 0x9b, 0x5a, 0x42, 0x3f, 0xc6, 0x4a, 0xca, 0xa0, 0x3e, 0xd8, 0xd8, 0xd8, 0xb2, 0xf0, + 0xc1, 0xd6, 0x7a, 0xa1, 0x76, 0xa9, 0xdf, 0x5f, 0x1f, 0x5a, 0x92, 0x6c, 0xae, 0x46, 0xe5, 0x78, + 0x21, 0xa5, 0x42, 0x35, 0x58, 0x70, 0x2e, 0xf5, 0xcf, 0xae, 0x6f, 0xaa, 0xfe, 0x71, 0xb0, 0x5e, + 0x68, 0x09, 0xb6, 0x2e, 0x6e, 0x69, 0xce, 0x9d, 0x12, 0xab, 0x64, 0x4b, 0xb0, 0xbe, 0x59, 0x68, + 0x5d, 0x54, 0x8f, 0x39, 0x2e, 0x59, 0xf2, 0x60, 0xa0, 0x5e, 0x08, 0xb6, 0x84, 0x5a, 0x73, 0xaf, + 0xfb, 0x5a, 0x6e, 0xbb, 0x4f, 0x08, 0xd5, 0xff, 0x70, 0x69, 0xfd, 0x92, 0x56, 0x61, 0x49, 0x6b, + 0x68, 0xe9, 0xc2, 0xd6, 0xa5, 0xa1, 0xfa, 0xb1, 0xd1, 0xe8, 0x14, 0xbf, 0xb0, 0xb4, 0x79, 0x71, + 0xab, 0x30, 0xb9, 0xb1, 0x2e, 0xf6, 0xe5, 0xc1, 0x85, 0x0b, 0x31, 0x5f, 0x81, 0x55, 0x4c, 0xa8, + 0x0b, 0x2d, 0x6e, 0xab, 0x2f, 0x14, 0x14, 0xdc, 0x09, 0xb5, 0x08, 0xf3, 0x43, 0x4b, 0x16, 0x2f, + 0xc3, 0x7c, 0xea, 0x10, 0xd1, 0x0f, 0x41, 0x88, 0xfd, 0xfa, 0x4a, 0xab, 0x7d, 0xdf, 0xb3, 0x55, + 0x59, 0x2b, 0xbe, 0x5b, 0x71, 0xdf, 0x03, 0xa5, 0xbe, 0x92, 0xe2, 0xaa, 0x52, 0xf4, 0xcd, 0xae, + 0xf8, 0xee, 0xec, 0xe2, 0xef, 0x39, 0x4b, 0x13, 0xc3, 0x7c, 0xdf, 0xf5, 0xdd, 0x57, 0x32, 0xcb, + 0x57, 0xee, 0x9a, 0x49, 0x3e, 0xcf, 0x77, 0x3d, 0xf7, 0x55, 0x94, 0x97, 0x56, 0x53, 0xe4, 0x72, + 0x8c, 0x5c, 0x52, 0x7d, 0x5f, 0x79, 0xd5, 0x7d, 0xe8, 0x2b, 0xa9, 0xfa, 0x6e, 0xc9, 0x7d, 0x5e, + 0xa4, 0x89, 0xea, 0xaa, 0xca, 0xe2, 0x92, 0xd2, 0x2a, 0x0c, 0xaa, 0x9a, 0xfb, 0xdd, 0x2a, 0xf7, + 0x7d, 0x0f, 0x60, 0x58, 0x55, 0xf9, 0x7d, 0x5e, 0x0c, 0x70, 0x97, 0x7d, 0x17, 0x9b, 0xa3, 0xac, + 0xdc, 0x57, 0x45, 0xe9, 0xcb, 0x9c, 0xdf, 0x2d, 0x2b, 0xaf, 0x28, 0x75, 0xce, 0x29, 0x2b, 0xc3, + 0x18, 0xb6, 0x59, 0x36, 0xaf, 0xd5, 0x55, 0xfa, 0x5d, 0x57, 0x71, 0x75, 0x71, 0x69, 0x4d, 0xb5, + 0x6d, 0x96, 0xd5, 0x57, 0xfa, 0x5d, 0x5f, 0x69, 0xd5, 0x7d, 0x73, 0x7c, 0x25, 0xa5, 0x72, 0x40, + 0x55, 0xf9, 0x77, 0xab, 0x4a, 0x8a, 0xbd, 0xe5, 0xde, 0xea, 0x52, 0xdf, 0xdc, 0xe2, 0x0a, 0x96, + 0xa2, 0xb2, 0xe4, 0xbb, 0x95, 0x15, 0xc5, 0xdf, 0x2b, 0x71, 0xb9, 0x8a, 0x31, 0x46, 0xcd, 0x77, + 0x6b, 0x2a, 0xef, 0x93, 0xb3, 0xfa, 0xde, 0x77, 0xbf, 0x17, 0x73, 0xc2, 0x7d, 0xac, 0x39, 0x96, + 0x08, 0x15, 0x02, 0x92, 0x95, 0x30, 0x1b, 0x5f, 0x21, 0x6c, 0x8a, 0xa5, 0xad, 0x4b, 0xb1, 0x45, + 0x7f, 0x2c, 0xd4, 0xb7, 0x2f, 0x6c, 0x5c, 0xba, 0x04, 0x91, 0x76, 0x17, 0x94, 0x2b, 0x48, 0x6b, + 0x5e, 0xda, 0x54, 0x8b, 0xe4, 0x8c, 0x24, 0xe0, 0x47, 0xca, 0x8f, 0xb5, 0x77, 0x21, 0xc3, 0x79, + 0xac, 0xb8, 0x18, 0x99, 0x0a, 0x44, 0xd3, 0x42, 0x6b, 0x4b, 0x8b, 0xd0, 0xd8, 0xd2, 0x8c, 0x82, + 0x6b, 0x69, 0x28, 0xd4, 0x12, 0x12, 0x7e, 0xb4, 0x88, 0x12, 0x06, 0x1f, 0x0c, 0xd1, 0x0c, 0x89, + 0x60, 0x28, 0x69, 0x69, 0x6e, 0x0d, 0xb5, 0x34, 0x1a, 0x30, 0xbf, 0xfa, 0xc6, 0x3a, 0x61, 0x71, + 0xb3, 0x30, 0xbb, 0x65, 0x69, 0x73, 0x6b, 0xe3, 0xe2, 0x25, 0xad, 0x85, 0xc9, 0x93, 0x97, 0x8c, + 0x25, 0x38, 0x70, 0x95, 0x97, 0xc2, 0x7d, 0x95, 0xa5, 0xde, 0xa9, 0xbe, 0x07, 0xe4, 0xf7, 0x7d, + 0x15, 0x2e, 0xd9, 0xe1, 0x2d, 0x7d, 0x00, 0x9b, 0xae, 0xd8, 0x05, 0x0f, 0xf8, 0xca, 0xab, 0x4b, + 0x81, 0x59, 0xb9, 0x80, 0xaa, 0xd2, 0xd2, 0x59, 0x50, 0x5a, 0x83, 0xc4, 0xec, 0x2d, 0x15, 0xbc, + 0x88, 0xab, 0xb8, 0xe7, 0x3e, 0xa7, 0x07, 0xca, 0xbd, 0x65, 0xf7, 0x61, 0x8e, 0x55, 0xb3, 0x04, + 0xe6, 0xaa, 0x2c, 0xf6, 0x95, 0x7a, 0xab, 0x5d, 0xe5, 0x3e, 0x70, 0x95, 0x56, 0x94, 0x52, 0x1e, + 0x98, 0x5f, 0x75, 0x29, 0x05, 0x90, 0x6d, 0x08, 0x70, 0xcd, 0xa9, 0x64, 0xef, 0x32, 0x5f, 0x69, + 0x29, 0x73, 0x54, 0x95, 0x56, 0x57, 0xfa, 0xee, 0xab, 0x2e, 0x2d, 0xa9, 0x26, 0x67, 0xc9, 0x7d, + 0xb3, 0x67, 0x63, 0x7a, 0x04, 0xc2, 0x5b, 0x3c, 0xbb, 0x14, 0x33, 0x77, 0x97, 0x3b, 0xcb, 0x63, + 0x5e, 0x81, 0x8a, 0x81, 0xd9, 0xf7, 0xf9, 0x4a, 0x85, 0x92, 0xe2, 0x12, 0x77, 0x29, 0x90, 0xe9, + 0x0d, 0xa1, 0xec, 0x3e, 0x9f, 0x50, 0xe2, 0x2e, 0xf6, 0x41, 0x59, 0xc5, 0x9c, 0x2a, 0x37, 0x54, + 0x61, 0x81, 0xa5, 0xde, 0xd9, 0xf7, 0xb9, 0x30, 0x75, 0xd5, 0x0f, 0x88, 0x02, 0xaa, 0xbe, 0x57, + 0x55, 0x5d, 0x3a, 0x1b, 0xaa, 0x30, 0x87, 0x1f, 0xb0, 0x22, 0x4b, 0xee, 0xab, 0xfc, 0xde, 0x0f, + 0x10, 0xa2, 0x1f, 0x94, 0xb9, 0x15, 0x78, 0xc9, 0xa5, 0x54, 0x8a, 0x9c, 0x65, 0xee, 0x1f, 0x94, + 0x21, 0xad, 0x2b, 0xb1, 0xe7, 0xf8, 0x58, 0x94, 0xb9, 0xf7, 0x55, 0xcc, 0x41, 0x90, 0x08, 0x3d, + 0x42, 0x45, 0xb9, 0x17, 0x01, 0x29, 0x9e, 0x55, 0x2a, 0xbb, 0xe6, 0x54, 0x95, 0xfa, 0x60, 0x6a, + 0xec, 0x6f, 0x8e, 0x77, 0x96, 0xf7, 0xbe, 0x07, 0xbc, 0x8a, 0x0f, 0xbc, 0xb3, 0xa1, 0xb8, 0x0a, + 0x2a, 0x6b, 0xa0, 0xaa, 0x02, 0x6c, 0xb0, 0xe4, 0xc7, 0x4b, 0x0a, 0x89, 0x79, 0xc4, 0x38, 0x43, + 0x65, 0x45, 0x9c, 0x6d, 0xcc, 0x25, 0x26, 0x11, 0x0c, 0xd5, 0xfb, 0x97, 0x08, 0x4d, 0x2d, 0xd8, + 0x05, 0x5b, 0x42, 0xb0, 0xb0, 0xa5, 0xae, 0x7e, 0x49, 0x7d, 0xeb, 0x28, 0x4f, 0x9a, 0x53, 0x5d, + 0x36, 0x75, 0xda, 0x74, 0xe4, 0x7b, 0xad, 0x4b, 0x17, 0x33, 0x1e, 0x10, 0xfb, 0x70, 0xbd, 0x85, + 0x14, 0xb2, 0x64, 0x12, 0xf7, 0xd4, 0x37, 0xb7, 0x15, 0x2e, 0xac, 0xab, 0x7b, 0x10, 0xa0, 0x1c, + 0xbb, 0x11, 0xc3, 0xad, 0xdc, 0x9d, 0x15, 0x63, 0x28, 0x02, 0x23, 0x2b, 0x28, 0xae, 0x45, 0xc6, + 0x01, 0x55, 0x8b, 0x5a, 0x7e, 0xf4, 0x03, 0xa2, 0xc1, 0x1f, 0x94, 0x93, 0x35, 0x94, 0x85, 0x48, + 0xc6, 0xf5, 0x75, 0x42, 0xeb, 0x8f, 0x90, 0xef, 0xdd, 0x75, 0x9d, 0x44, 0x88, 0xcf, 0xe4, 0x04, + 0x8b, 0x1a, 0x71, 0xcb, 0x1a, 0xb6, 0x02, 0x60, 0x27, 0x74, 0x2e, 0xe5, 0xd1, 0xfe, 0xa7, 0x0d, + 0x1b, 0xbc, 0x73, 0xc8, 0xd6, 0x59, 0x41, 0x61, 0x7c, 0x37, 0xc3, 0x90, 0xbc, 0x9b, 0x81, 0x66, + 0x54, 0xde, 0x5a, 0x74, 0xaa, 0x9b, 0xec, 0xc6, 0xe7, 0x74, 0xc0, 0xe9, 0x77, 0x1d, 0xd2, 0xc9, + 0x9c, 0x0e, 0xc2, 0x86, 0x74, 0x86, 0x7d, 0x6b, 0x67, 0xdf, 0xce, 0xdd, 0xd1, 0x01, 0xc9, 0xd2, + 0x05, 0x25, 0xc6, 0x25, 0xe7, 0xb3, 0xd2, 0x15, 0x3a, 0x3f, 0x41, 0xfb, 0x9e, 0xfe, 0xd8, 0x18, + 0x9f, 0x8f, 0x49, 0x8d, 0x59, 0xb1, 0xe4, 0x34, 0x33, 0x3f, 0x96, 0xfe, 0xc4, 0xce, 0xed, 0x49, + 0xaa, 0x43, 0x05, 0x1d, 0x90, 0xf6, 0xc7, 0x81, 0xe0, 0x8c, 0xb1, 0xbb, 0x90, 0xe4, 0x33, 0xd1, + 0xff, 0x3f, 0xf6, 0xfe, 0x3d, 0xbe, 0xa9, 0xeb, 0x4a, 0x14, 0xc7, 0xf7, 0x91, 0x65, 0x21, 0x84, + 0xe2, 0x28, 0x8e, 0xe2, 0x71, 0xa9, 0x2f, 0x3d, 0xa8, 0x42, 0x11, 0xb6, 0xec, 0xe3, 0x38, 0x0e, + 0xe3, 0x52, 0x0f, 0x91, 0xe5, 0x07, 0xb2, 0x30, 0xc2, 0x91, 0x0d, 0xf1, 0xe4, 0xd2, 0xf4, 0x18, + 0x6c, 0xc9, 0x06, 0x3f, 0x54, 0x59, 0x10, 0xc2, 0xf8, 0xdb, 0x91, 0x8d, 0x43, 0x9d, 0x84, 0xc6, + 0x04, 0x08, 0x65, 0x7a, 0xf3, 0xed, 0x64, 0x72, 0x73, 0x53, 0x86, 0x90, 0x84, 0x52, 0x26, 0x97, + 0xcb, 0x65, 0x32, 0x2e, 0x4d, 0x33, 0x84, 0x52, 0x0a, 0x84, 0x52, 0x4a, 0x99, 0x94, 0xa6, 0x8c, + 0x93, 0x92, 0x07, 0x94, 0xd2, 0x34, 0x35, 0x46, 0xe7, 0xb7, 0xd6, 0xda, 0xe7, 0xe8, 0x61, 0x4c, + 0x4a, 0xe7, 0xf7, 0xfb, 0xe3, 0xf7, 0x87, 0xce, 0xc7, 0xf2, 0x39, 0xfb, 0xfd, 0x5a, 0x7b, 0xed, + 0xb5, 0xd6, 0xde, 0x7b, 0x2d, 0x76, 0xce, 0x56, 0xac, 0x5c, 0x15, 0x8b, 0x95, 0x77, 0xd7, 0x32, + 0xd9, 0xb0, 0x67, 0x20, 0x64, 0x5c, 0x2b, 0xec, 0xdb, 0xd0, 0xf3, 0x09, 0x3f, 0x45, 0x77, 0x7c, + 0xc3, 0xf1, 0xd8, 0xe2, 0x3f, 0x18, 0x3f, 0xf5, 0x6d, 0x0f, 0x5a, 0xf1, 0x46, 0x23, 0xba, 0xa5, + 0xfb, 0x8c, 0xef, 0xe2, 0xfd, 0x43, 0x57, 0xac, 0x65, 0x04, 0x6d, 0xc7, 0x89, 0xf7, 0x55, 0x7c, + 0x1a, 0xb4, 0xda, 0x7c, 0x96, 0x4a, 0xb6, 0x20, 0x29, 0x5d, 0x03, 0x2e, 0x67, 0x10, 0x6d, 0x45, + 0xfd, 0x22, 0xc6, 0x4c, 0x77, 0xad, 0x86, 0xd5, 0x6e, 0xfa, 0x9c, 0xd5, 0x28, 0x29, 0x9c, 0x83, + 0xbb, 0x7f, 0x06, 0x96, 0x8b, 0x3a, 0x28, 0x84, 0x9d, 0x2c, 0xcf, 0x56, 0xc4, 0x84, 0x90, 0x99, + 0x5c, 0xfb, 0xe9, 0xc6, 0x73, 0x21, 0xc4, 0xbb, 0xc6, 0x1c, 0xb9, 0x77, 0x7a, 0x07, 0x4a, 0xab, + 0xe6, 0x78, 0x59, 0xc9, 0x1c, 0x37, 0x9b, 0x17, 0x56, 0xe0, 0xff, 0xfc, 0xe4, 0x79, 0x2f, 0xb1, + 0x21, 0xe5, 0xb4, 0xe6, 0x95, 0xe4, 0x79, 0xae, 0xc0, 0xe0, 0xc2, 0x0f, 0x58, 0x2e, 0x5a, 0x96, + 0x0d, 0x32, 0xc5, 0xd2, 0xf0, 0xd1, 0xf2, 0x02, 0x65, 0x3f, 0xd7, 0x43, 0x2b, 0xe9, 0xec, 0xec, + 0x06, 0xfd, 0x23, 0x95, 0xa9, 0x32, 0xc7, 0x9f, 0x99, 0x6b, 0xb9, 0x0c, 0x71, 0x8b, 0xb6, 0x63, + 0x9d, 0x94, 0x25, 0x9e, 0x9a, 0xf0, 0x6f, 0xf1, 0x1f, 0x88, 0x57, 0x92, 0x65, 0x0b, 0x1d, 0xb7, + 0x19, 0x9e, 0x94, 0x3e, 0x9e, 0xba, 0xaa, 0xa5, 0x4c, 0xa6, 0xf8, 0x19, 0x70, 0x5b, 0xa9, 0xba, + 0x45, 0x50, 0x8e, 0x19, 0x65, 0xf2, 0x21, 0x29, 0xc7, 0xd5, 0xcb, 0x8c, 0xd8, 0x86, 0xe4, 0x5e, + 0x74, 0xba, 0x16, 0x91, 0xe4, 0x3d, 0xe2, 0xeb, 0x72, 0x42, 0xa2, 0xda, 0x4b, 0xb6, 0xab, 0xf5, + 0x36, 0xd4, 0xb3, 0x68, 0x09, 0x2f, 0x3f, 0xfe, 0x12, 0x43, 0x2b, 0x5b, 0xfa, 0x2f, 0xfa, 0x98, + 0xc9, 0xf3, 0xb4, 0xe7, 0x9f, 0x99, 0x3e, 0xb9, 0xa3, 0x9e, 0xd8, 0xb3, 0xb4, 0xe1, 0x19, 0x32, + 0x4c, 0x79, 0xe2, 0xf0, 0x89, 0xc3, 0x51, 0x66, 0xcd, 0xb7, 0xf9, 0x44, 0x5d, 0xf2, 0x44, 0x95, + 0xa7, 0xcc, 0xa9, 0xdd, 0xc2, 0xe6, 0xb7, 0x90, 0x3b, 0x58, 0xf3, 0xbd, 0xfd, 0x6c, 0x3a, 0x2b, + 0xc0, 0x2f, 0xb2, 0x80, 0x26, 0xe2, 0x17, 0xe4, 0x6e, 0xc7, 0x77, 0xa2, 0x84, 0x32, 0x5e, 0xab, + 0x8a, 0x05, 0x85, 0xbd, 0xcc, 0x6e, 0x47, 0x5d, 0x5f, 0xbd, 0xcc, 0x05, 0x35, 0x2e, 0xb5, 0x17, + 0x01, 0x9f, 0xb5, 0x6a, 0xcf, 0x60, 0x97, 0x2e, 0xba, 0x0a, 0xb5, 0xd2, 0x86, 0x8c, 0x91, 0x2c, + 0x18, 0x51, 0xbc, 0xd1, 0xbb, 0x35, 0xa4, 0x0f, 0xeb, 0x50, 0xdb, 0x2b, 0xd6, 0x1a, 0xad, 0x00, + 0x07, 0x2b, 0xcc, 0x45, 0x80, 0x08, 0xcc, 0xc1, 0x52, 0x3a, 0x95, 0xd5, 0xcd, 0xca, 0x2d, 0x16, + 0x2b, 0xc3, 0xfd, 0xbf, 0xbb, 0xdc, 0xcc, 0x58, 0x7f, 0x91, 0x4d, 0x97, 0x74, 0xb6, 0x62, 0x56, + 0x1e, 0x18, 0x90, 0x04, 0x3a, 0x2b, 0xa1, 0x7c, 0x99, 0x74, 0xcb, 0xca, 0xeb, 0x7c, 0x2f, 0xb3, + 0x73, 0xa1, 0x1c, 0x39, 0x1f, 0xf8, 0xf8, 0x7b, 0xd9, 0x97, 0x8d, 0x33, 0x82, 0x7a, 0xd9, 0x14, + 0x06, 0xe6, 0x68, 0x5f, 0xac, 0xe7, 0x43, 0x59, 0x67, 0x17, 0xee, 0xf2, 0x68, 0xe9, 0xbd, 0xab, + 0x99, 0x39, 0x35, 0xad, 0xaf, 0x9b, 0x9d, 0x0c, 0x19, 0xa1, 0xf4, 0x57, 0x98, 0x31, 0xe4, 0x04, + 0xd7, 0xf1, 0x50, 0xa1, 0xef, 0x15, 0x96, 0x1f, 0x2a, 0x90, 0x6d, 0x62, 0xb5, 0xc5, 0x82, 0x7b, + 0x39, 0xae, 0x6e, 0xba, 0x9d, 0xdd, 0x20, 0x56, 0x07, 0x36, 0x58, 0x46, 0x03, 0x43, 0xb2, 0xde, + 0x61, 0x5e, 0xc7, 0xf6, 0x0d, 0xf5, 0xbc, 0xe3, 0x29, 0x77, 0xb2, 0x39, 0x30, 0x06, 0x6c, 0xdd, + 0x9c, 0xd5, 0x82, 0x95, 0x45, 0xe1, 0xbf, 0x85, 0xf5, 0x8b, 0x45, 0x82, 0x25, 0x32, 0xe3, 0x5d, + 0xd4, 0xaf, 0x1b, 0x5b, 0x84, 0x1c, 0xf9, 0xb0, 0x54, 0xc9, 0x84, 0x07, 0x62, 0x52, 0x91, 0x60, + 0xf6, 0x3f, 0xd3, 0x38, 0x02, 0xfe, 0x43, 0xf5, 0x9a, 0xcd, 0x56, 0xcd, 0x7f, 0x5b, 0xe3, 0x08, + 0xc0, 0x4e, 0x25, 0x6a, 0x21, 0xa6, 0x18, 0xc3, 0xe4, 0x52, 0x43, 0xd0, 0xd6, 0xc5, 0xc9, 0xd8, + 0x7b, 0x8f, 0x1f, 0x1f, 0x38, 0x8e, 0xb6, 0x2d, 0x36, 0xd9, 0x8b, 0x84, 0xfc, 0xb0, 0x9f, 0x7a, + 0xd5, 0x0f, 0x6d, 0xdb, 0x5c, 0x7b, 0x91, 0x3d, 0x8d, 0x6d, 0x13, 0x0a, 0xe8, 0x2c, 0x32, 0xb4, + 0x0d, 0x47, 0x12, 0xdb, 0xd7, 0xf0, 0xab, 0xfe, 0x82, 0xf4, 0x53, 0x59, 0x92, 0x8e, 0x9f, 0x57, + 0xbe, 0x26, 0x46, 0x4c, 0xae, 0x55, 0x08, 0x77, 0xd7, 0x23, 0x74, 0x96, 0x6b, 0x16, 0x9e, 0x52, + 0x21, 0xb7, 0x9c, 0xf8, 0xf2, 0x24, 0xe2, 0x74, 0x71, 0xb8, 0x58, 0x72, 0x49, 0x79, 0x1f, 0x4f, + 0xc2, 0x25, 0xcf, 0x4f, 0x91, 0xb6, 0xb1, 0xed, 0xa2, 0x3b, 0x9c, 0x90, 0x2d, 0x5f, 0x8f, 0x10, + 0x1e, 0x89, 0xe0, 0xf9, 0xe5, 0x5f, 0xfc, 0x2f, 0x18, 0x07, 0x5f, 0xf2, 0x14, 0x5e, 0xbc, 0x06, + 0x38, 0xee, 0x86, 0x85, 0x97, 0x58, 0x2e, 0xb4, 0x2f, 0xcf, 0xf3, 0x5d, 0x3a, 0x75, 0x02, 0x38, + 0x8f, 0xc6, 0xe2, 0x55, 0xe6, 0x7a, 0x70, 0xd4, 0x00, 0x2c, 0xda, 0x17, 0xdc, 0x74, 0xd6, 0x7f, + 0x06, 0x9d, 0xc4, 0x76, 0x86, 0xf3, 0xd0, 0x26, 0x57, 0xca, 0xec, 0xae, 0x48, 0xf9, 0x5e, 0x90, + 0xa2, 0x2f, 0xa3, 0x4b, 0xbd, 0x61, 0xa6, 0xf3, 0x1f, 0x98, 0x38, 0xda, 0x38, 0x82, 0x27, 0xef, + 0x50, 0xa2, 0xaf, 0xe9, 0x9c, 0x86, 0xd9, 0xe2, 0x9c, 0xdd, 0xc1, 0x5c, 0xac, 0x94, 0x7a, 0x60, + 0xac, 0xf6, 0x09, 0x98, 0xf1, 0xbb, 0x58, 0x43, 0xc8, 0x23, 0x15, 0xb2, 0x52, 0xf4, 0xb9, 0x7d, + 0x3e, 0xc4, 0x71, 0x81, 0xef, 0x4e, 0x56, 0x10, 0x14, 0xe1, 0xbf, 0x18, 0x9c, 0x09, 0x61, 0x0d, + 0x68, 0xb1, 0x2e, 0x7e, 0x10, 0x35, 0x13, 0x60, 0xac, 0x9c, 0xab, 0x04, 0x75, 0x98, 0x5f, 0x83, + 0x67, 0x27, 0xc3, 0xb3, 0xe9, 0x0d, 0x78, 0x93, 0x2b, 0x8e, 0xd6, 0x0c, 0x21, 0x35, 0xd7, 0x4b, + 0xcd, 0xe6, 0xd3, 0x69, 0xc1, 0x40, 0xd8, 0x9a, 0x7e, 0x06, 0x05, 0x6f, 0xd2, 0x41, 0x4a, 0x4b, + 0x00, 0xca, 0xe0, 0xf5, 0xc8, 0x2d, 0x9c, 0x0b, 0xf0, 0xee, 0x7c, 0x22, 0x1c, 0x87, 0xb7, 0x91, + 0xcf, 0x64, 0xf8, 0x32, 0xa3, 0x86, 0xe0, 0x0b, 0xc3, 0xf0, 0x65, 0xe1, 0x27, 0x83, 0xfe, 0x78, + 0xa8, 0x71, 0x44, 0x84, 0x11, 0x5d, 0x8e, 0x7b, 0x35, 0xb8, 0x53, 0x60, 0x84, 0x3e, 0x9c, 0xcf, + 0xcf, 0x40, 0xdf, 0xcb, 0x68, 0x0c, 0x0d, 0x9b, 0x07, 0x03, 0x31, 0x94, 0x08, 0xe3, 0x7e, 0x2c, + 0x8c, 0xd5, 0x39, 0x3a, 0x29, 0x8e, 0x1a, 0x03, 0x0a, 0x49, 0xa7, 0xc6, 0x58, 0x49, 0x09, 0x61, + 0x39, 0x6e, 0x9b, 0x7b, 0xac, 0xe6, 0xfd, 0x64, 0x9f, 0xb4, 0x8c, 0x94, 0xae, 0x62, 0xc7, 0x24, + 0x23, 0xfc, 0x3f, 0x4a, 0xba, 0xdb, 0x29, 0xfe, 0x6d, 0x71, 0xe8, 0x7b, 0x17, 0x3f, 0x47, 0x27, + 0x7c, 0x42, 0x1a, 0xac, 0xcf, 0xa7, 0xf4, 0xa3, 0xda, 0x23, 0xb7, 0xa3, 0x2e, 0x05, 0xc8, 0x01, + 0xe2, 0x9c, 0x84, 0x3a, 0x89, 0x30, 0xbe, 0x5f, 0x24, 0xbb, 0x53, 0x14, 0x9a, 0x5b, 0x50, 0xb8, + 0x8a, 0x95, 0xab, 0xf7, 0x89, 0xdf, 0xf0, 0x6f, 0x9b, 0x19, 0x2b, 0x79, 0xd2, 0xbf, 0x4d, 0x5c, + 0x64, 0x03, 0xdf, 0xc0, 0xe3, 0x49, 0xec, 0x83, 0x6e, 0xda, 0x47, 0xba, 0x23, 0x98, 0x4b, 0xb0, + 0xb3, 0x37, 0x6c, 0x4c, 0x86, 0x42, 0xa9, 0xe5, 0x38, 0x1f, 0x3d, 0xa5, 0x4c, 0xc0, 0x51, 0xf2, + 0xad, 0x52, 0x67, 0x2e, 0x8c, 0x40, 0xc8, 0x06, 0xae, 0xe3, 0xa1, 0x52, 0x18, 0xb1, 0xfc, 0x50, + 0x9e, 0xec, 0xfc, 0xf9, 0x0f, 0x2d, 0x77, 0xd2, 0xcc, 0x5d, 0xc5, 0x67, 0x6e, 0x5e, 0x8c, 0xaf, + 0x5d, 0x0e, 0x2c, 0x71, 0x03, 0x5f, 0x47, 0xbe, 0x37, 0xda, 0x73, 0x06, 0xdc, 0x2e, 0x3e, 0x1b, + 0x3e, 0x3d, 0x8a, 0x7a, 0x08, 0x92, 0xee, 0xf1, 0x46, 0x70, 0x8b, 0x5a, 0x0b, 0xee, 0x78, 0xdf, + 0xc1, 0xd0, 0xce, 0x62, 0x20, 0x26, 0x31, 0x75, 0xf6, 0x70, 0xdb, 0x86, 0x78, 0xc3, 0xcc, 0xc9, + 0xa1, 0xce, 0x7f, 0x60, 0xbc, 0x02, 0xa0, 0xb5, 0x01, 0xc6, 0x6f, 0x17, 0xab, 0x84, 0xd4, 0xc6, + 0xe4, 0x1a, 0xd4, 0x82, 0x9a, 0x8a, 0xbe, 0x6d, 0xc3, 0x1c, 0x06, 0xa2, 0xda, 0xdc, 0xf2, 0x3a, + 0xdc, 0xa8, 0xdd, 0x39, 0x19, 0xff, 0xee, 0x7e, 0x64, 0x8a, 0x98, 0x98, 0x86, 0x33, 0xb2, 0x10, + 0x1f, 0x40, 0xa8, 0x25, 0x0d, 0x63, 0x64, 0xa5, 0xe3, 0x0b, 0x08, 0xb7, 0x92, 0x2b, 0x6b, 0x32, + 0xb6, 0xc0, 0xb3, 0x74, 0xb6, 0x19, 0x6a, 0x89, 0x0f, 0x25, 0xda, 0xa0, 0xea, 0xb5, 0x18, 0x3f, + 0x48, 0xab, 0x17, 0xb4, 0x7a, 0x36, 0xea, 0x45, 0xb5, 0x27, 0x47, 0x96, 0x6e, 0x50, 0x1c, 0x98, + 0xc8, 0x6d, 0x19, 0xc1, 0x53, 0xf7, 0x78, 0x9f, 0x4f, 0x5d, 0x31, 0x61, 0x15, 0x82, 0x39, 0x73, + 0x3e, 0xe8, 0xd4, 0x20, 0xc4, 0xe1, 0x68, 0x19, 0x89, 0xfe, 0xb7, 0x3a, 0x1d, 0xf4, 0x44, 0x09, + 0x87, 0x0f, 0x9c, 0x2d, 0xd7, 0x87, 0xd4, 0xb9, 0x35, 0x13, 0x73, 0x8f, 0xce, 0xaa, 0xd3, 0xf1, + 0x33, 0xfe, 0x30, 0x42, 0xe6, 0x84, 0xd6, 0x3e, 0x75, 0xd5, 0xd4, 0xb4, 0x64, 0x25, 0x73, 0xc4, + 0x7a, 0xb4, 0x8c, 0xd8, 0x9c, 0xcc, 0xb5, 0x77, 0x27, 0x2b, 0x0d, 0x35, 0xe3, 0x0d, 0x44, 0x9e, + 0x37, 0xe5, 0x69, 0xc4, 0x12, 0x26, 0x60, 0xa6, 0x45, 0xca, 0x78, 0xcb, 0x94, 0xf9, 0x5a, 0xda, + 0x42, 0x5d, 0xcb, 0x88, 0xe4, 0x63, 0x66, 0xd4, 0x62, 0x25, 0xb3, 0x89, 0x38, 0xcc, 0xc8, 0xf3, + 0x9e, 0x42, 0xa1, 0x1c, 0x53, 0x5c, 0x1b, 0x4f, 0x85, 0x76, 0x4d, 0xcf, 0xd5, 0x04, 0xe9, 0x9b, + 0xb5, 0xf7, 0x66, 0x2d, 0x77, 0x48, 0x59, 0xb2, 0x98, 0x35, 0xba, 0x8b, 0xc9, 0x21, 0x2b, 0x6a, + 0xe4, 0x0f, 0xe5, 0xc0, 0xff, 0x43, 0x41, 0x2a, 0x4d, 0x59, 0xde, 0x32, 0x42, 0x61, 0x2d, 0xa1, + 0x7e, 0xc8, 0xa5, 0x31, 0xe5, 0xae, 0x50, 0x21, 0xeb, 0x22, 0x8b, 0x43, 0x5d, 0xdc, 0x12, 0x2a, + 0x49, 0x94, 0x73, 0x70, 0xcd, 0xe7, 0x73, 0xac, 0xcc, 0xdb, 0x38, 0x42, 0xb9, 0x55, 0xfa, 0x76, + 0x09, 0xeb, 0x42, 0x26, 0x6d, 0xe6, 0x51, 0xff, 0xb4, 0xf5, 0x3a, 0xc8, 0x32, 0x11, 0x9e, 0xc1, + 0xcc, 0x4b, 0x96, 0x16, 0xff, 0xb8, 0x65, 0x04, 0xd6, 0x95, 0x36, 0xd6, 0x21, 0x1b, 0x9a, 0xc8, + 0x9a, 0x11, 0xfa, 0x7e, 0xda, 0xc5, 0xeb, 0x20, 0x44, 0x83, 0x8c, 0x3d, 0x05, 0x10, 0xf5, 0x06, + 0xce, 0x35, 0xa2, 0x2c, 0x86, 0xd1, 0x0e, 0x76, 0xca, 0x29, 0xf3, 0x8d, 0x84, 0x4f, 0x0b, 0xd9, + 0x85, 0x90, 0x03, 0x6f, 0x0d, 0xfd, 0xe2, 0xff, 0x6a, 0x37, 0x19, 0xa8, 0xb7, 0x50, 0xaf, 0xc2, + 0x7c, 0x9b, 0xc1, 0xae, 0x57, 0xe1, 0xe2, 0x79, 0xb9, 0xcd, 0x07, 0x7d, 0x14, 0x4a, 0x8c, 0x80, + 0x0b, 0xca, 0xa5, 0xef, 0x67, 0x48, 0xbf, 0x48, 0xae, 0x94, 0x8d, 0xa5, 0xfc, 0x62, 0x14, 0xf5, + 0x96, 0x13, 0xee, 0x2b, 0xc7, 0xf8, 0x0f, 0x8e, 0xd6, 0xb0, 0xbb, 0xdc, 0x42, 0xb9, 0xec, 0x58, + 0x37, 0xef, 0xcc, 0xc8, 0x42, 0xd2, 0x70, 0x5e, 0x78, 0x3b, 0xca, 0x8b, 0xb3, 0x96, 0x01, 0xb4, + 0x8e, 0xd5, 0x04, 0x01, 0x92, 0xc7, 0x4a, 0x06, 0x5d, 0x26, 0x03, 0x5a, 0x21, 0xba, 0x20, 0xae, + 0x12, 0x92, 0x74, 0xe9, 0x26, 0x3b, 0xde, 0xfd, 0x74, 0xbf, 0xb9, 0x8b, 0xd5, 0x84, 0xd8, 0xf4, + 0x17, 0xbf, 0x2e, 0xe0, 0x3d, 0xd5, 0xf7, 0xf1, 0x0c, 0xfa, 0x7f, 0xfe, 0xa7, 0x6b, 0xed, 0xbc, + 0xd3, 0x23, 0xf5, 0x97, 0x74, 0xcb, 0x0a, 0x7d, 0x32, 0x9b, 0x6e, 0xa7, 0x1b, 0x9c, 0xa6, 0xb0, + 0x72, 0x37, 0x6a, 0xcf, 0x47, 0x7b, 0xb2, 0x40, 0x53, 0xc0, 0x8a, 0xef, 0x0c, 0xce, 0x8c, 0x64, + 0xef, 0x45, 0x7a, 0x75, 0xb7, 0x7d, 0x31, 0xf8, 0x9b, 0xef, 0x06, 0x8a, 0x91, 0x9d, 0x64, 0x16, + 0xe8, 0x99, 0x4d, 0x10, 0x7e, 0x28, 0x54, 0x18, 0xcd, 0xdd, 0x87, 0xe1, 0x9b, 0xba, 0xf5, 0x91, + 0x6c, 0xd9, 0x18, 0xfd, 0x1c, 0xb8, 0xbe, 0x1e, 0xf9, 0x02, 0xa4, 0x59, 0x97, 0x92, 0xe2, 0xd7, + 0x90, 0xe2, 0x21, 0x88, 0xdf, 0x10, 0x5c, 0x41, 0x31, 0x96, 0x77, 0x5b, 0x23, 0xb7, 0x43, 0x9c, + 0x66, 0x6b, 0x25, 0xc3, 0xf4, 0x68, 0x53, 0x2c, 0x5b, 0x36, 0x45, 0xbf, 0x00, 0xdf, 0xee, 0x6e, + 0x63, 0xe4, 0xf3, 0x30, 0x56, 0xb9, 0xf2, 0x3c, 0x73, 0x0c, 0x1a, 0x92, 0x15, 0x2a, 0xc1, 0xb7, + 0x51, 0x17, 0x72, 0xf0, 0x1c, 0x21, 0x9f, 0xf3, 0x08, 0xdf, 0xa5, 0xfd, 0xec, 0xd7, 0x9b, 0xf1, + 0xa4, 0xa8, 0x85, 0xe6, 0xda, 0x81, 0x4f, 0xfc, 0x78, 0x1b, 0xdb, 0xf8, 0x7a, 0xe4, 0xbf, 0x61, + 0x8d, 0xf5, 0xb9, 0xdd, 0x30, 0x82, 0xd1, 0x3b, 0xb1, 0x76, 0xd9, 0xe5, 0xdd, 0x6e, 0x28, 0x61, + 0x3a, 0xfa, 0x1b, 0x5f, 0xe9, 0x2e, 0x80, 0x52, 0xa7, 0x91, 0xff, 0x27, 0xdd, 0x4c, 0x1f, 0xc1, + 0xb2, 0xf1, 0x7c, 0xae, 0xf1, 0x59, 0x48, 0xbd, 0x3b, 0x7a, 0x3b, 0x85, 0xf8, 0x7b, 0x98, 0x71, + 0x53, 0xe4, 0x8e, 0xbd, 0xb1, 0x6e, 0x66, 0x1c, 0x02, 0xff, 0x75, 0xd1, 0x7c, 0xf4, 0xd7, 0x35, + 0x77, 0xe7, 0x45, 0xee, 0xda, 0x1b, 0x83, 0xd0, 0x1e, 0xc8, 0x25, 0x6f, 0x5f, 0xac, 0x8b, 0x19, + 0x97, 0xcb, 0x4c, 0xf7, 0xed, 0xc8, 0x4c, 0xcc, 0x5d, 0x77, 0xa5, 0x87, 0xe9, 0xae, 0x46, 0x3f, + 0x8f, 0x71, 0xa7, 0xbd, 0x86, 0xf6, 0x8a, 0x29, 0x67, 0x0f, 0xe4, 0x40, 0xad, 0xc9, 0xba, 0x04, + 0xf8, 0xfb, 0x3b, 0x3d, 0x0f, 0x45, 0x03, 0x18, 0x43, 0x90, 0xbb, 0xc5, 0x88, 0x8d, 0x6a, 0x95, + 0x0f, 0xb9, 0x39, 0xd1, 0xcf, 0x60, 0x46, 0x3b, 0x61, 0x94, 0xca, 0x2c, 0xb3, 0xec, 0xb5, 0x94, + 0xea, 0x43, 0xa8, 0xd1, 0xc1, 0x1e, 0x73, 0xf4, 0xc1, 0x7d, 0xe0, 0x3f, 0xed, 0xaa, 0xcc, 0xa6, + 0xbd, 0x4f, 0xfe, 0x1f, 0x41, 0xcf, 0x0f, 0xd3, 0xd7, 0xc7, 0xe0, 0x7f, 0x0e, 0xe2, 0x6f, 0xa7, + 0x3e, 0x63, 0x98, 0x4f, 0x4f, 0x01, 0x85, 0x5c, 0x86, 0x72, 0x1e, 0x46, 0xed, 0xcd, 0x13, 0x59, + 0x38, 0x07, 0xda, 0xa1, 0xe9, 0x90, 0x7e, 0x27, 0xc5, 0x9b, 0x06, 0x35, 0xbe, 0xd8, 0x93, 0xc3, + 0xfb, 0x19, 0x72, 0xf8, 0x36, 0x84, 0x30, 0x72, 0x99, 0x20, 0xd5, 0x9b, 0xbc, 0xdf, 0xc1, 0x7f, + 0x50, 0x2a, 0x82, 0x95, 0xb4, 0x88, 0xe5, 0x4b, 0x68, 0x5b, 0xe0, 0x36, 0x84, 0xdf, 0x79, 0xfe, + 0x32, 0x7e, 0x8f, 0x97, 0x19, 0x8e, 0xc9, 0xcc, 0x30, 0x2a, 0xdd, 0x86, 0xdc, 0x49, 0x19, 0x6b, + 0x19, 0x09, 0x32, 0xc3, 0x5e, 0x71, 0x35, 0xcb, 0x47, 0xfa, 0x97, 0xdf, 0x06, 0xb5, 0x37, 0xca, + 0x7a, 0x7b, 0x37, 0x2b, 0x2d, 0xab, 0x64, 0x67, 0x61, 0x05, 0xb2, 0x7c, 0xff, 0x23, 0xe6, 0x82, + 0x58, 0x9b, 0x24, 0xb4, 0x6a, 0x50, 0xe0, 0x3f, 0x70, 0xf5, 0x08, 0xde, 0x58, 0xff, 0x74, 0x73, + 0xcb, 0x88, 0x37, 0x6a, 0xe4, 0xd8, 0x7f, 0xcc, 0xa2, 0x9d, 0x77, 0x60, 0x86, 0x32, 0x48, 0xf7, + 0x5b, 0xd1, 0x0d, 0x78, 0xcd, 0x08, 0xa9, 0x96, 0xe5, 0x56, 0x2a, 0xa7, 0x50, 0x23, 0x0c, 0x7c, + 0xfb, 0x80, 0x82, 0x75, 0xc1, 0x2a, 0x2f, 0x42, 0x79, 0x40, 0x6f, 0xcf, 0x8e, 0x0d, 0xdb, 0xe9, + 0x46, 0xd2, 0x7f, 0xfe, 0xc9, 0x0b, 0x7d, 0xf1, 0x09, 0xfa, 0x02, 0x24, 0xe7, 0xdb, 0x56, 0xb3, + 0x02, 0x2c, 0xdb, 0xee, 0x64, 0x96, 0x7d, 0x2f, 0x53, 0xd9, 0x16, 0x69, 0x3a, 0xe0, 0x68, 0x23, + 0xad, 0xac, 0x32, 0x42, 0x3d, 0xb7, 0xe2, 0x66, 0xd0, 0xd9, 0x21, 0x0d, 0xc6, 0x45, 0xfa, 0xe1, + 0x7b, 0x54, 0xcf, 0xec, 0x0b, 0x1c, 0x93, 0xff, 0xe9, 0x08, 0xaf, 0x19, 0x50, 0x30, 0x50, 0x6a, + 0x13, 0x94, 0x8a, 0xf0, 0x96, 0x7d, 0xfc, 0xe6, 0xa5, 0x64, 0xef, 0xba, 0xbb, 0x83, 0x59, 0x01, + 0xeb, 0x26, 0xca, 0xca, 0x25, 0x5e, 0x06, 0x62, 0xfd, 0x12, 0x5b, 0x96, 0xfd, 0x04, 0xa4, 0xdf, + 0x0c, 0xf4, 0x7b, 0x3e, 0xaf, 0xff, 0x54, 0xfd, 0x95, 0x52, 0x8f, 0xe5, 0xd4, 0x72, 0xb4, 0x20, + 0xc2, 0xb2, 0x1b, 0xf1, 0x5e, 0x04, 0xd0, 0x99, 0x59, 0x6a, 0x9d, 0x86, 0xd4, 0x7c, 0xdf, 0xa7, + 0x7c, 0xcb, 0x00, 0xb3, 0x58, 0x70, 0x2f, 0x4f, 0x0e, 0xb8, 0x56, 0x93, 0xb5, 0x69, 0xab, 0x3a, + 0xaa, 0xb9, 0x78, 0xaf, 0x62, 0x1f, 0x2f, 0x25, 0x30, 0xd5, 0xa8, 0xe8, 0x3f, 0xf9, 0x8f, 0x63, + 0xff, 0x71, 0xcc, 0xb3, 0x3d, 0x91, 0x33, 0xa7, 0x5c, 0x59, 0xf6, 0x46, 0x35, 0xcf, 0x1c, 0xd4, + 0x38, 0xf2, 0xfb, 0x75, 0x74, 0x53, 0x9c, 0xe9, 0x4f, 0x42, 0xde, 0xf9, 0x90, 0x0f, 0x94, 0x80, + 0x39, 0x73, 0x3e, 0x9b, 0x53, 0xc8, 0x15, 0x05, 0xa5, 0xdd, 0x6c, 0x14, 0x78, 0x49, 0x3d, 0x61, + 0x4a, 0xc4, 0x16, 0xa6, 0x39, 0xfd, 0x9e, 0xa5, 0x4d, 0x7f, 0x0b, 0x29, 0x3a, 0xa4, 0xdb, 0xf0, + 0xee, 0x7b, 0xcb, 0x88, 0x99, 0x8e, 0x96, 0x05, 0x8d, 0xc4, 0x6b, 0xe6, 0xcb, 0x3e, 0xc0, 0x85, + 0x65, 0x73, 0xfa, 0x6b, 0x96, 0x34, 0x31, 0x80, 0xb6, 0x62, 0x95, 0xba, 0x61, 0x68, 0xd5, 0x23, + 0xe1, 0xca, 0xc1, 0x5b, 0x48, 0x62, 0x31, 0x52, 0x6e, 0x68, 0xf3, 0x18, 0xf5, 0x34, 0x40, 0xbe, + 0x55, 0x35, 0x90, 0x02, 0xd6, 0x22, 0xe2, 0x6a, 0x61, 0x85, 0xb0, 0x46, 0x1a, 0x81, 0x0b, 0x32, + 0x02, 0x8e, 0x37, 0x53, 0x4d, 0x9d, 0xa9, 0x10, 0xaa, 0xb7, 0x60, 0x8d, 0xa1, 0x3f, 0x7f, 0xc2, + 0xed, 0x79, 0xe8, 0x99, 0xf9, 0x25, 0x9c, 0x0f, 0x40, 0xe7, 0xfc, 0xd9, 0x1e, 0xca, 0x3a, 0xa5, + 0x42, 0xa8, 0x8f, 0xe8, 0x3c, 0x23, 0xe2, 0x4b, 0x99, 0x09, 0x2a, 0xbd, 0x67, 0xc9, 0x69, 0xe1, + 0xda, 0x02, 0xc6, 0x21, 0xd5, 0x4f, 0x50, 0xaf, 0xc1, 0x9e, 0x97, 0x85, 0x0e, 0x48, 0xf5, 0x1d, + 0x98, 0xd7, 0x21, 0x99, 0x65, 0x6d, 0xe7, 0x2d, 0xe7, 0xf5, 0xc8, 0x1a, 0xfe, 0x8c, 0x91, 0x87, + 0xfe, 0xde, 0x43, 0x70, 0x94, 0xb5, 0x82, 0x66, 0x4a, 0xbe, 0xff, 0xc0, 0xef, 0x9e, 0xc3, 0x99, + 0xf2, 0x87, 0x60, 0xcb, 0x48, 0xd5, 0xa5, 0x2c, 0xf9, 0xc4, 0x28, 0x8c, 0x8d, 0x33, 0x1e, 0x0f, + 0x9a, 0xd5, 0xb1, 0xda, 0x0e, 0x54, 0x50, 0x4e, 0xea, 0x1c, 0xa2, 0xb1, 0xcb, 0x4f, 0x9d, 0x3f, + 0x59, 0x79, 0x12, 0xb3, 0xd5, 0xfa, 0x9f, 0x86, 0x1a, 0x1b, 0xc4, 0x62, 0xa1, 0x03, 0x61, 0x31, + 0xaa, 0x23, 0xdc, 0x36, 0x01, 0xfd, 0x71, 0x12, 0xf0, 0x90, 0x1e, 0xf0, 0x19, 0xea, 0x7b, 0xb2, + 0x86, 0x16, 0x70, 0x6b, 0x62, 0xbc, 0x6e, 0x22, 0xd4, 0x4d, 0xd4, 0x7a, 0xa3, 0x43, 0xeb, 0x0d, + 0xdd, 0x9b, 0xea, 0x2c, 0xda, 0x4e, 0xbd, 0xc1, 0xb2, 0xda, 0x24, 0x26, 0xd6, 0xfa, 0x37, 0xc3, + 0x0a, 0xf1, 0x22, 0x62, 0x6b, 0xc8, 0xeb, 0x15, 0x17, 0xe4, 0x75, 0x6e, 0xe3, 0xb9, 0x8d, 0xb6, + 0x3a, 0xfb, 0x1d, 0xa2, 0xc7, 0xd5, 0xc8, 0xf5, 0x32, 0x7d, 0x1a, 0xb0, 0x79, 0xd0, 0xf2, 0x2a, + 0xcc, 0xa4, 0x02, 0x3b, 0xbc, 0x5b, 0x46, 0xfe, 0xe5, 0x63, 0xe6, 0x0a, 0xd5, 0x01, 0x84, 0x17, + 0x04, 0xdd, 0x64, 0x09, 0x7b, 0xbe, 0x46, 0xf7, 0x5d, 0x76, 0x03, 0xf4, 0xd9, 0xa5, 0x1c, 0xff, + 0x81, 0x2b, 0x3b, 0x92, 0x34, 0x1f, 0xd1, 0xe5, 0x30, 0x1f, 0x79, 0x6b, 0x73, 0xd0, 0x9a, 0xe0, + 0x81, 0x2b, 0x87, 0x48, 0xcb, 0x89, 0x49, 0x0b, 0x03, 0x1a, 0xa7, 0x2e, 0xe5, 0x7e, 0x1c, 0xd3, + 0x89, 0xd4, 0xb2, 0x1c, 0x8e, 0x27, 0xc6, 0xb7, 0x5f, 0x18, 0x86, 0x9e, 0x38, 0xcc, 0xa1, 0x09, + 0xf1, 0x00, 0xb8, 0xe2, 0xc0, 0x45, 0x5b, 0x43, 0xce, 0x00, 0x40, 0x2c, 0xae, 0x59, 0x40, 0x0b, + 0x21, 0xc4, 0x8b, 0x40, 0xf5, 0xdc, 0xc6, 0x79, 0x1a, 0xe8, 0x05, 0x67, 0x38, 0x8e, 0xb6, 0x91, + 0x21, 0xf6, 0x66, 0x48, 0x7b, 0x28, 0x64, 0x40, 0x1b, 0x84, 0x14, 0xff, 0x50, 0x90, 0x09, 0x07, + 0x3d, 0xb0, 0x46, 0x61, 0xaa, 0x4f, 0x30, 0xf7, 0x1e, 0x0d, 0xcf, 0x5d, 0x7a, 0x17, 0x47, 0xef, + 0xf7, 0x3b, 0xd5, 0xb9, 0x7a, 0x9a, 0x64, 0x46, 0x1b, 0x61, 0x24, 0x5b, 0x4e, 0x8c, 0xd2, 0xdc, + 0x86, 0xb1, 0x04, 0x9f, 0x28, 0x7c, 0x9f, 0x86, 0x74, 0x5d, 0xe9, 0xb0, 0x21, 0x5a, 0xa0, 0xff, + 0x8b, 0x59, 0x69, 0x3a, 0x6e, 0xb5, 0x59, 0xd0, 0x8a, 0x12, 0xf0, 0x09, 0x02, 0xb5, 0x68, 0xec, + 0x8e, 0x43, 0x38, 0xe6, 0x78, 0xdb, 0xb2, 0xd4, 0x0d, 0x6b, 0x23, 0xb6, 0xa7, 0x64, 0x12, 0x8c, + 0x41, 0x0a, 0x3b, 0xa4, 0x40, 0xdd, 0xff, 0x80, 0x1d, 0x44, 0x1a, 0x4f, 0x8f, 0xad, 0x53, 0x1b, + 0x51, 0x76, 0xd5, 0x85, 0x98, 0xde, 0x00, 0x7d, 0x19, 0x07, 0x6a, 0xc8, 0xed, 0x0d, 0x77, 0x30, + 0xde, 0x9b, 0x96, 0xe5, 0x76, 0xd4, 0xbb, 0xc1, 0xd8, 0x73, 0xde, 0x75, 0x02, 0x43, 0x1d, 0x25, + 0xe8, 0xfb, 0x37, 0x7a, 0x55, 0x72, 0x53, 0x22, 0x65, 0x55, 0x11, 0xff, 0x21, 0x79, 0x59, 0x99, + 0x7f, 0x33, 0x59, 0x81, 0x40, 0x59, 0xc2, 0xc6, 0x92, 0x8d, 0x62, 0x2f, 0xfa, 0xc0, 0x58, 0xc0, + 0xbb, 0xea, 0x77, 0x46, 0xe1, 0x5f, 0x0f, 0xaf, 0xc8, 0xf7, 0xf6, 0x70, 0x99, 0xcd, 0x2f, 0x7e, + 0xa3, 0x71, 0xd4, 0x84, 0x83, 0xed, 0x66, 0x89, 0xcd, 0x67, 0xf3, 0x82, 0x39, 0x92, 0x81, 0xfb, + 0xf3, 0xdb, 0xa5, 0x9e, 0x5c, 0x15, 0x23, 0x29, 0x5f, 0x8a, 0x36, 0x8e, 0x78, 0xca, 0xde, 0x57, + 0xd2, 0x46, 0x9f, 0xee, 0xb4, 0xe1, 0xf8, 0xc1, 0x0c, 0xa8, 0x54, 0xe1, 0xfa, 0x64, 0x54, 0x0f, + 0x70, 0x6d, 0xc7, 0x59, 0x0e, 0x50, 0x6d, 0x80, 0xef, 0x7c, 0x5c, 0x01, 0xa1, 0xfe, 0xa3, 0x65, + 0x95, 0xc2, 0x62, 0xf0, 0x9b, 0x0e, 0xeb, 0xa9, 0x1e, 0x67, 0x07, 0x42, 0x6a, 0x69, 0x15, 0xd2, + 0x12, 0xe1, 0xec, 0x3d, 0x2f, 0xa1, 0x9d, 0x68, 0xa0, 0x29, 0x60, 0xfc, 0x3e, 0x1a, 0x87, 0xb2, + 0xf5, 0x45, 0x8b, 0x98, 0x97, 0xee, 0xa5, 0x7c, 0xc4, 0x92, 0x67, 0xbe, 0x36, 0xe1, 0x2c, 0xff, + 0xe4, 0xb0, 0x6f, 0x5a, 0xd0, 0x17, 0x69, 0x73, 0x75, 0xab, 0x34, 0xb2, 0x0a, 0xaf, 0x1f, 0x41, + 0x5b, 0x91, 0x7e, 0x0a, 0x95, 0x01, 0xac, 0x54, 0x56, 0xbf, 0xcf, 0xa2, 0xdf, 0x7f, 0x9f, 0x85, + 0x83, 0x79, 0xb8, 0x72, 0x70, 0x7d, 0x83, 0xc4, 0xff, 0xa2, 0x66, 0x33, 0x31, 0x94, 0x93, 0x84, + 0x68, 0xd4, 0xa9, 0x80, 0x5a, 0xfa, 0xf0, 0xf6, 0x7a, 0x96, 0xcb, 0xbf, 0x06, 0xa1, 0x44, 0x66, + 0xca, 0x0a, 0x78, 0x9f, 0x80, 0xf7, 0x43, 0x11, 0x05, 0xfe, 0x37, 0x47, 0x00, 0x8f, 0x28, 0x7e, + 0xcf, 0x34, 0xf8, 0x1f, 0xa0, 0x3b, 0x73, 0x12, 0xe0, 0x43, 0xbc, 0x59, 0x38, 0x4b, 0xe5, 0x83, + 0x3d, 0x09, 0x49, 0x23, 0x59, 0x8e, 0xff, 0xc5, 0x65, 0x56, 0x81, 0x14, 0xfa, 0xd6, 0xb7, 0xe8, + 0x3e, 0x07, 0xde, 0x92, 0xaa, 0x24, 0x19, 0xe6, 0x27, 0xe1, 0x39, 0xe8, 0x73, 0xfd, 0x0c, 0xf8, + 0x18, 0xd1, 0xe7, 0xac, 0x2e, 0xc5, 0xc7, 0x8c, 0x96, 0xa0, 0xc8, 0x15, 0x9c, 0xe3, 0xd6, 0x19, + 0x88, 0x07, 0xdf, 0x25, 0x00, 0xbd, 0xaf, 0xd3, 0x51, 0x6f, 0x5c, 0x84, 0xde, 0xc0, 0xfc, 0x62, + 0x69, 0xae, 0x4d, 0x9c, 0x96, 0x04, 0x98, 0x2b, 0x40, 0x98, 0x03, 0xfc, 0xef, 0xe6, 0xfc, 0x17, + 0xea, 0xa8, 0xe3, 0x33, 0xd5, 0xb3, 0x8f, 0x28, 0x73, 0xbc, 0x37, 0x76, 0x5e, 0xb5, 0x8d, 0x76, + 0xc6, 0xb7, 0x4b, 0x67, 0x40, 0xbd, 0xff, 0x1c, 0xba, 0xbd, 0xe1, 0x61, 0x96, 0x42, 0xdb, 0xe3, + 0x98, 0xbd, 0x16, 0x51, 0xee, 0xae, 0xe2, 0xd4, 0x29, 0xd4, 0xe4, 0x50, 0x58, 0xa1, 0xd2, 0x5e, + 0x43, 0x3e, 0x07, 0xea, 0xba, 0x5c, 0xb5, 0x1b, 0x2e, 0x43, 0x58, 0x4b, 0x52, 0x72, 0x82, 0x76, + 0x7c, 0x20, 0xed, 0xbb, 0xa2, 0x3b, 0xec, 0x4c, 0xca, 0x4e, 0x6c, 0xc8, 0x15, 0x36, 0x87, 0x1a, + 0x91, 0x03, 0x3e, 0x9b, 0x1b, 0x16, 0x26, 0xc9, 0x4e, 0x0a, 0x91, 0xfb, 0x88, 0xb0, 0x5c, 0x27, + 0xbb, 0x9d, 0xdb, 0xac, 0x27, 0xdb, 0x90, 0x40, 0x61, 0x7e, 0xe8, 0xe7, 0x1c, 0x03, 0x94, 0xd1, + 0x45, 0xfc, 0xe6, 0x13, 0x10, 0xb3, 0xf9, 0x06, 0xd9, 0x48, 0x21, 0x6b, 0xf4, 0x1f, 0xf8, 0xe0, + 0x15, 0x80, 0x9c, 0x0e, 0x8d, 0x02, 0x16, 0x16, 0x93, 0x5d, 0x75, 0xd4, 0x8c, 0x68, 0xe4, 0xd4, + 0xea, 0x07, 0xcf, 0xa1, 0x0c, 0xe5, 0x83, 0x0e, 0x9a, 0x3b, 0xd4, 0x07, 0xc2, 0x4e, 0x95, 0x6f, + 0x29, 0x10, 0x0b, 0x75, 0x06, 0xe0, 0xf4, 0x4d, 0xa4, 0xe3, 0xe1, 0xc0, 0x07, 0x6d, 0x8d, 0x23, + 0xb0, 0x16, 0x98, 0x13, 0x6e, 0x4f, 0xe3, 0x08, 0x7c, 0x15, 0x02, 0xc4, 0x1d, 0xf8, 0x60, 0x1e, + 0xd2, 0x20, 0x42, 0x0f, 0x9e, 0x6c, 0x4f, 0x8e, 0xfd, 0xf5, 0x66, 0xa8, 0x71, 0x39, 0xda, 0x1b, + 0xa3, 0x56, 0xac, 0x0e, 0xf3, 0x36, 0xd4, 0xa8, 0x25, 0x3b, 0x78, 0x39, 0x55, 0x65, 0xc8, 0xb9, + 0xa9, 0xe5, 0x3b, 0x39, 0xc7, 0xf7, 0xbb, 0x58, 0xcb, 0xc8, 0xc2, 0xf1, 0x2b, 0x7e, 0x28, 0xaf, + 0x25, 0x06, 0x7c, 0x43, 0x0c, 0x38, 0x21, 0x78, 0xcb, 0xfc, 0x1e, 0x10, 0x71, 0xe6, 0x5b, 0x49, + 0xff, 0xcb, 0x3b, 0x3e, 0xe4, 0xd3, 0x1e, 0xb2, 0xa5, 0xb4, 0x3f, 0xee, 0xc2, 0xd3, 0x87, 0x69, + 0x3e, 0x62, 0x9a, 0xcb, 0x91, 0xe6, 0x5a, 0x70, 0xf3, 0xbe, 0xbb, 0x18, 0x51, 0xf9, 0x39, 0xaa, + 0xd3, 0x47, 0x2f, 0x02, 0xde, 0x58, 0xc5, 0xca, 0xa9, 0x65, 0x58, 0x33, 0x27, 0xda, 0x2e, 0x23, + 0x2e, 0xf6, 0x42, 0x0b, 0xf6, 0xcc, 0x72, 0xd2, 0x1d, 0xc6, 0x6f, 0x66, 0xed, 0xd1, 0xfa, 0x10, + 0x72, 0xf2, 0x62, 0xea, 0x8b, 0x15, 0x6a, 0x6b, 0x9f, 0xc2, 0x3e, 0xd3, 0x01, 0x56, 0xbb, 0x68, + 0xc5, 0x1b, 0x99, 0xa4, 0x3f, 0x49, 0xed, 0xd1, 0xdf, 0x5e, 0x56, 0x7b, 0xd4, 0xbc, 0x70, 0xfc, + 0xb7, 0x17, 0xfc, 0x5b, 0xd5, 0xde, 0xdd, 0x6a, 0xf3, 0xf1, 0x59, 0x95, 0x76, 0x7a, 0xd5, 0x82, + 0xf3, 0x93, 0xdf, 0x37, 0x45, 0x29, 0xb2, 0x28, 0x25, 0xb4, 0x48, 0x96, 0xa8, 0x72, 0xe3, 0x05, + 0xa8, 0x99, 0xb6, 0xb0, 0xd9, 0xb1, 0x34, 0x6c, 0x49, 0xb3, 0x19, 0x80, 0xf3, 0x71, 0x15, 0x50, + 0x47, 0xc5, 0xdc, 0x3a, 0xdc, 0xb5, 0xa3, 0x38, 0xeb, 0x60, 0x35, 0x22, 0x79, 0x01, 0xc7, 0x61, + 0xa8, 0xeb, 0x23, 0x99, 0x02, 0x65, 0xb4, 0xa4, 0xcf, 0x23, 0x8f, 0xf7, 0x0e, 0x50, 0x57, 0x16, + 0xe2, 0x94, 0x89, 0xf7, 0x94, 0x67, 0xd9, 0x8a, 0x54, 0x49, 0xad, 0x7a, 0x0b, 0xdf, 0xbe, 0x69, + 0xce, 0x6a, 0xe1, 0x13, 0x80, 0x38, 0x9f, 0xf0, 0x09, 0xca, 0xe6, 0xfa, 0xb9, 0x44, 0xba, 0x14, + 0xa5, 0xd7, 0x62, 0x93, 0xad, 0xd1, 0xde, 0x29, 0x7c, 0xf2, 0xf4, 0x61, 0xf9, 0xa1, 0xff, 0x7d, + 0x32, 0xd8, 0x88, 0x10, 0x45, 0x98, 0xc8, 0x80, 0x36, 0xde, 0x65, 0xfd, 0x17, 0xdd, 0xc2, 0x27, + 0xd4, 0x6a, 0xa8, 0xd9, 0xc4, 0x2a, 0x7b, 0x21, 0xc9, 0xf8, 0xa8, 0x4e, 0x5c, 0x17, 0x1f, 0xc9, + 0x34, 0x74, 0x0b, 0xc7, 0x15, 0x80, 0x80, 0xb4, 0xda, 0xd0, 0x59, 0x61, 0xd9, 0x2c, 0xfa, 0xec, + 0x40, 0x69, 0xd1, 0x7d, 0xdc, 0xe7, 0x1a, 0x7e, 0x65, 0x26, 0x39, 0x66, 0xfc, 0x14, 0xca, 0xc6, + 0x1c, 0xbd, 0x42, 0x83, 0x1d, 0xea, 0x15, 0xe5, 0x1a, 0xad, 0x36, 0xaf, 0x2d, 0x38, 0x3d, 0x82, + 0xfa, 0xad, 0x27, 0x5e, 0x47, 0x0e, 0xd6, 0xb2, 0x5c, 0xc6, 0xb5, 0x5d, 0x9f, 0xe8, 0x87, 0xed, + 0x04, 0x5f, 0xce, 0xc0, 0x20, 0xac, 0x31, 0x2e, 0xd4, 0xb4, 0x81, 0x7a, 0xa7, 0xd5, 0x15, 0xa6, + 0x00, 0xdc, 0x45, 0xac, 0x94, 0xb4, 0xea, 0xc6, 0x60, 0x45, 0x0c, 0x88, 0xb1, 0x44, 0xa9, 0x07, + 0xe8, 0x16, 0x31, 0xd0, 0xf1, 0x82, 0x8b, 0xcb, 0x06, 0x9d, 0x28, 0x1b, 0x6c, 0x9e, 0x62, 0x0c, + 0x1e, 0x4e, 0xef, 0xf3, 0x96, 0x91, 0xf4, 0x5e, 0xb7, 0xc7, 0x26, 0xf7, 0x77, 0x3c, 0x8f, 0xfa, + 0xdb, 0x31, 0xb9, 0xbf, 0xe7, 0x34, 0x30, 0xfd, 0x9c, 0xd5, 0xac, 0x01, 0xa8, 0xcc, 0xd5, 0xc2, + 0x15, 0xea, 0xf7, 0x2b, 0xd8, 0xef, 0xcb, 0x19, 0x87, 0x03, 0xb4, 0x92, 0xe6, 0x58, 0x0a, 0x6d, + 0xbf, 0xf2, 0x0f, 0x47, 0x79, 0xdb, 0xe5, 0x15, 0xff, 0xf7, 0x22, 0x70, 0x2e, 0xcb, 0xa4, 0xdc, + 0x49, 0xed, 0xad, 0xc1, 0xf1, 0xa0, 0x1b, 0xd2, 0x86, 0xb9, 0x34, 0x1e, 0x77, 0xbb, 0x85, 0x2b, + 0x8e, 0x00, 0x97, 0xdd, 0xa6, 0x8d, 0xc1, 0x8c, 0x85, 0xe3, 0xd7, 0x37, 0x4e, 0x31, 0x06, 0xf9, + 0xb2, 0xd9, 0x99, 0x1c, 0x83, 0x1d, 0x89, 0xd1, 0xaf, 0x80, 0xd1, 0xb7, 0x62, 0x1d, 0xa2, 0x5c, + 0xfb, 0xe1, 0x66, 0xd9, 0x96, 0x52, 0x3a, 0xf5, 0x64, 0xd0, 0x1c, 0x18, 0xc4, 0x7d, 0x8e, 0xd9, + 0xab, 0x99, 0x8b, 0x59, 0x12, 0x79, 0x9c, 0xc1, 0x1e, 0x2d, 0x80, 0x91, 0x04, 0x38, 0xd7, 0x8b, + 0x0f, 0x88, 0x1d, 0xc2, 0x15, 0xd9, 0x02, 0xeb, 0x98, 0x3e, 0x68, 0x10, 0x51, 0x1b, 0xf8, 0x1a, + 0xb1, 0x83, 0xc3, 0x50, 0xf0, 0x22, 0xb7, 0x0b, 0x57, 0x4a, 0x7a, 0x63, 0x1d, 0x40, 0x00, 0x86, + 0xcd, 0x37, 0xf4, 0xfa, 0x82, 0x39, 0xbd, 0xac, 0x00, 0xa0, 0x2a, 0x71, 0x03, 0xdd, 0xce, 0xa0, + 0x54, 0x5d, 0x7a, 0xcf, 0xd3, 0xfd, 0xf3, 0x94, 0xdd, 0x12, 0xe8, 0xd7, 0x71, 0x66, 0x84, 0x7e, + 0x1d, 0x4f, 0xe8, 0x19, 0x2a, 0xb5, 0x21, 0x34, 0xc3, 0x8a, 0x07, 0xd0, 0x3c, 0x0e, 0xd0, 0xdc, + 0xb8, 0x07, 0xad, 0x9c, 0x63, 0xff, 0x19, 0x13, 0xf0, 0x6c, 0x24, 0x78, 0x1e, 0xb7, 0xe7, 0x4e, + 0x0d, 0xc3, 0x13, 0x75, 0x29, 0xfd, 0x67, 0x4e, 0xf6, 0x1f, 0xc1, 0x30, 0xd9, 0x4d, 0x0c, 0xee, + 0xe2, 0x30, 0x8c, 0xab, 0x2b, 0xf5, 0x9f, 0x84, 0x5c, 0x94, 0x30, 0x2e, 0xcf, 0x14, 0x81, 0x6a, + 0x05, 0xaa, 0x09, 0x65, 0x9e, 0x0f, 0x43, 0xcf, 0x19, 0xa0, 0x5c, 0xbd, 0x6c, 0x4e, 0xa4, 0x3b, + 0xaf, 0x61, 0x07, 0xff, 0xd7, 0xa0, 0x8e, 0xfa, 0xd0, 0x2c, 0xdf, 0xab, 0x80, 0xdb, 0x0d, 0xa4, + 0x47, 0x11, 0x6d, 0x4a, 0x1b, 0x02, 0x9b, 0xa1, 0xd7, 0xb8, 0x35, 0xb5, 0xab, 0x09, 0x7b, 0x7a, + 0x36, 0x5c, 0xc1, 0xa7, 0xe8, 0xb3, 0x40, 0x58, 0xb0, 0xc7, 0xb4, 0x36, 0x4c, 0x86, 0x53, 0xc4, + 0x0e, 0xea, 0x0e, 0xa0, 0x39, 0x89, 0xa1, 0x9e, 0x39, 0x22, 0x17, 0x68, 0xba, 0x81, 0xbe, 0xb4, + 0x07, 0xb0, 0x8d, 0x84, 0x94, 0xa7, 0x12, 0x45, 0x5c, 0x83, 0xd8, 0x0b, 0x4f, 0xde, 0xd7, 0xe8, + 0x55, 0x4d, 0x51, 0x30, 0x5a, 0x0b, 0x89, 0x62, 0xa3, 0xba, 0xeb, 0xe5, 0x0a, 0xbb, 0x07, 0x66, + 0xbe, 0x51, 0xcc, 0x6d, 0x8a, 0xc1, 0x2c, 0x70, 0x38, 0x0a, 0x69, 0xbc, 0xb6, 0x02, 0xfe, 0xad, + 0x0e, 0xc4, 0x92, 0x65, 0xd8, 0x7c, 0xe1, 0x94, 0x12, 0x7d, 0x83, 0xc1, 0xc3, 0xda, 0xe8, 0x94, + 0x2e, 0x40, 0x0b, 0x91, 0x30, 0xf3, 0xec, 0xc1, 0x5c, 0xa4, 0xed, 0xce, 0x7e, 0x81, 0xef, 0x04, + 0x11, 0x0d, 0xb7, 0xde, 0xe1, 0x41, 0x1d, 0x35, 0x8b, 0x38, 0x8d, 0x88, 0x7a, 0xc1, 0x9e, 0x69, + 0x19, 0xa9, 0xbd, 0x62, 0x14, 0x1c, 0xab, 0xb9, 0x8d, 0xc5, 0xe0, 0xc5, 0x7f, 0xb9, 0xc4, 0x9c, + 0x3d, 0xcb, 0x1c, 0x1e, 0x1e, 0xc7, 0x51, 0x44, 0xe5, 0x43, 0x2c, 0x9b, 0x69, 0x0b, 0xc0, 0x46, + 0xf5, 0xd5, 0x7c, 0x25, 0x09, 0x1b, 0x55, 0x57, 0x77, 0x2a, 0xfb, 0x9e, 0x0c, 0xea, 0x3d, 0x78, + 0x3e, 0x5b, 0xb2, 0xc4, 0xb4, 0x1c, 0xeb, 0x62, 0x90, 0x27, 0x4b, 0xe4, 0x79, 0x20, 0xff, 0x20, + 0x9b, 0x9f, 0xa0, 0xab, 0xcc, 0x37, 0xc3, 0xdb, 0x49, 0x9d, 0xc0, 0x10, 0x62, 0x81, 0x10, 0x2b, + 0x96, 0x41, 0x21, 0x1a, 0xa4, 0xec, 0x42, 0xed, 0xc3, 0x12, 0x70, 0xf7, 0xd0, 0x9f, 0x24, 0xd5, + 0x85, 0x30, 0x58, 0x51, 0x1d, 0xe8, 0xab, 0xc5, 0x79, 0x0e, 0x29, 0xfd, 0xda, 0x71, 0xe5, 0x59, + 0xff, 0x96, 0x84, 0x9f, 0x88, 0x37, 0x81, 0x10, 0xc2, 0xec, 0x5f, 0x75, 0x90, 0xfe, 0x13, 0x29, + 0x27, 0xfc, 0xd5, 0xba, 0x34, 0x2b, 0x30, 0xa8, 0xdd, 0x31, 0x25, 0x0f, 0x46, 0x3a, 0x38, 0x80, + 0xcb, 0x85, 0x92, 0x3a, 0x68, 0xd4, 0x00, 0x96, 0x5c, 0x5f, 0xc5, 0x3d, 0x6d, 0xb4, 0x24, 0x88, + 0x76, 0x01, 0x49, 0x2a, 0xaf, 0x4f, 0x5a, 0x67, 0x54, 0xfd, 0x2d, 0x00, 0x67, 0x3a, 0x43, 0x2c, + 0x7a, 0xcc, 0x92, 0xee, 0x67, 0x8d, 0x4c, 0x7f, 0x77, 0x67, 0x04, 0x8d, 0xb4, 0xe5, 0x6a, 0xf8, + 0x0b, 0x6d, 0xd1, 0x40, 0x1c, 0xd2, 0x48, 0x91, 0xcc, 0xd7, 0xb7, 0x39, 0x84, 0xb3, 0xbb, 0x19, + 0x7c, 0x9c, 0xec, 0x61, 0xd5, 0x76, 0x26, 0xf8, 0x5b, 0xe6, 0xb2, 0xf9, 0xd8, 0x43, 0x64, 0x93, + 0xd0, 0xc9, 0xe6, 0x07, 0xed, 0x66, 0x20, 0x6b, 0x82, 0x66, 0xe0, 0x1b, 0xdc, 0x80, 0x13, 0xdc, + 0x0f, 0x8e, 0xca, 0x26, 0xf8, 0xf6, 0xc3, 0xb7, 0x3f, 0xc5, 0x66, 0x24, 0xd3, 0x76, 0x86, 0x48, + 0x6e, 0x51, 0x90, 0xca, 0x39, 0x07, 0x4d, 0x80, 0x73, 0x0a, 0x44, 0xb4, 0x64, 0x68, 0x0e, 0x33, + 0xda, 0xeb, 0x41, 0x97, 0x9f, 0xe4, 0xd5, 0x6a, 0xbf, 0xe2, 0x8e, 0x1a, 0x50, 0x29, 0x7a, 0xfb, + 0x4b, 0xb4, 0x42, 0x14, 0x34, 0x26, 0xb0, 0x36, 0xc2, 0xb3, 0xaa, 0x25, 0x96, 0x79, 0x57, 0xd1, + 0x4e, 0x0e, 0x0f, 0x3d, 0x10, 0xe7, 0xd6, 0x73, 0xb6, 0x84, 0x72, 0x80, 0x5a, 0xb5, 0x20, 0x1d, + 0x0a, 0xb9, 0xd6, 0xc8, 0xb3, 0xf0, 0x0b, 0x5a, 0x67, 0x9c, 0xd3, 0xc1, 0x9a, 0x05, 0x0b, 0x69, + 0xc1, 0x79, 0x38, 0x11, 0x1e, 0xe4, 0x7d, 0x36, 0xc7, 0x2d, 0x98, 0xd1, 0x3e, 0x03, 0x8e, 0x93, + 0xaa, 0x4d, 0x02, 0xea, 0x1e, 0x61, 0x48, 0x1b, 0xff, 0x6c, 0xa7, 0x3c, 0xcf, 0x62, 0xe9, 0x32, + 0x73, 0xdd, 0x9e, 0x96, 0xef, 0x19, 0x63, 0xb2, 0x0d, 0xfa, 0x60, 0x7e, 0xd0, 0x60, 0x39, 0xc8, + 0x4a, 0xe4, 0x3c, 0xf8, 0x96, 0xe8, 0xbb, 0x58, 0x36, 0xc1, 0xf7, 0x17, 0x56, 0xe8, 0x2d, 0x07, + 0x95, 0x7f, 0x0b, 0x0c, 0x04, 0x86, 0xf7, 0x0d, 0xf4, 0xbc, 0x49, 0xb7, 0xf7, 0x50, 0xc7, 0x88, + 0x91, 0x72, 0xad, 0x47, 0x4b, 0xa0, 0xb9, 0xf9, 0x66, 0x01, 0xe8, 0x7f, 0x83, 0x59, 0x50, 0x9e, + 0x0b, 0x1a, 0xee, 0x3c, 0xc8, 0xbe, 0x6a, 0x64, 0x81, 0xd8, 0xbe, 0x58, 0xcf, 0x18, 0xc6, 0x46, + 0x5c, 0xa7, 0xed, 0x25, 0x3b, 0x1a, 0x71, 0x1c, 0xc3, 0xcc, 0xe2, 0x64, 0x76, 0xc4, 0x45, 0x4d, + 0x83, 0xb8, 0x33, 0x69, 0xd7, 0xf4, 0x3d, 0xea, 0x24, 0x93, 0xb7, 0x83, 0xcd, 0xf1, 0x1f, 0xb8, + 0x3e, 0x5f, 0xdd, 0x95, 0xb4, 0xf8, 0x5e, 0x12, 0x64, 0xa2, 0x6f, 0x90, 0x5e, 0x00, 0x2a, 0x11, + 0xdc, 0x6d, 0x21, 0x4b, 0x52, 0x07, 0x84, 0x19, 0x75, 0x4e, 0x84, 0x39, 0x96, 0xd3, 0x76, 0x1d, + 0x50, 0xdb, 0x8a, 0xa8, 0xbb, 0x30, 0xac, 0xee, 0xc0, 0x8c, 0x15, 0x3e, 0x4f, 0xeb, 0x6c, 0x6e, + 0x38, 0xeb, 0x8d, 0x18, 0x60, 0x99, 0xe9, 0xbf, 0xde, 0x85, 0xd8, 0xee, 0xf8, 0x20, 0xdf, 0xfd, + 0xa2, 0x71, 0xd2, 0xa9, 0x30, 0x61, 0x89, 0xb2, 0x72, 0x27, 0x2b, 0x38, 0xb5, 0x93, 0x3d, 0xaf, + 0x41, 0x1b, 0x41, 0xb1, 0x45, 0x83, 0xb4, 0xe3, 0x83, 0xbc, 0x4d, 0xb8, 0x0f, 0xc0, 0x4a, 0x9d, + 0x01, 0x1a, 0x6d, 0x4b, 0x08, 0xb5, 0x3c, 0x37, 0xcb, 0x7a, 0xf8, 0xff, 0x30, 0x60, 0x1e, 0xeb, + 0x81, 0x41, 0x3a, 0x1b, 0xb1, 0x8a, 0x59, 0x1c, 0x9d, 0xa4, 0x45, 0xc6, 0x18, 0x86, 0xc8, 0x6c, + 0x48, 0x36, 0xd0, 0x7b, 0x33, 0xe4, 0x39, 0x1d, 0xda, 0xf3, 0x44, 0xe3, 0x08, 0x94, 0xb0, 0xeb, + 0x54, 0xcc, 0x29, 0xb1, 0x8a, 0xb5, 0x48, 0x57, 0x40, 0x5d, 0x17, 0x8d, 0x4f, 0x54, 0xa2, 0xb6, + 0x42, 0xb5, 0x05, 0x33, 0xd4, 0x95, 0xd5, 0xdc, 0xaf, 0x9b, 0x5b, 0x27, 0x74, 0xac, 0x55, 0xd0, + 0x3a, 0x02, 0x6a, 0xca, 0xb0, 0x31, 0xb4, 0x7c, 0x2c, 0x28, 0x62, 0x95, 0x2b, 0xfb, 0xd9, 0x58, + 0x89, 0xfe, 0xe0, 0x50, 0x97, 0xae, 0xc4, 0xc0, 0x35, 0x44, 0x6c, 0x1e, 0xb6, 0xe9, 0xfa, 0xa7, + 0x7f, 0xf4, 0xcf, 0x18, 0xe3, 0xef, 0x95, 0xcd, 0x03, 0x7b, 0xbe, 0x01, 0x61, 0x5a, 0x2f, 0x4f, + 0x83, 0xd1, 0xab, 0xf4, 0x7e, 0xad, 0x82, 0x85, 0xb3, 0x46, 0x07, 0x23, 0xd3, 0x7f, 0xb3, 0x13, + 0x35, 0x7e, 0xbc, 0x3d, 0xea, 0xfd, 0xda, 0x30, 0xf3, 0x3f, 0x73, 0xfa, 0x1b, 0xe2, 0x34, 0xe0, + 0x72, 0xac, 0x28, 0x9b, 0xc2, 0xfe, 0x3f, 0x10, 0x5b, 0x69, 0xdd, 0xf1, 0x8d, 0x7e, 0xf7, 0xa9, + 0x8d, 0xe1, 0xd1, 0x37, 0x62, 0xbe, 0xa1, 0x20, 0x53, 0x3a, 0x34, 0x1d, 0x49, 0xfd, 0x64, 0x03, + 0xab, 0xa2, 0x02, 0x56, 0xca, 0x02, 0xb2, 0x86, 0x9a, 0x55, 0x3b, 0x1e, 0xef, 0xf7, 0x6f, 0x11, + 0x35, 0x1d, 0xaa, 0xcf, 0x9a, 0x2d, 0xac, 0x11, 0x38, 0xf1, 0x6d, 0x66, 0x27, 0x5b, 0x0c, 0xb3, + 0x0c, 0x38, 0x0d, 0xa7, 0x93, 0xe9, 0xa3, 0xcc, 0xe9, 0xa3, 0x3d, 0x80, 0x83, 0x72, 0x34, 0x40, + 0xd2, 0x3f, 0xff, 0x36, 0x55, 0xfb, 0x56, 0x87, 0x39, 0x17, 0x52, 0xac, 0x30, 0x17, 0x52, 0xfc, + 0x87, 0x20, 0xd7, 0xe9, 0x84, 0x7f, 0x67, 0xc3, 0xdc, 0x28, 0xd5, 0x6e, 0x7f, 0x05, 0x17, 0x20, + 0x76, 0x6f, 0xe6, 0x29, 0x0f, 0xc4, 0x4d, 0x94, 0xb2, 0x44, 0x74, 0x43, 0x69, 0x9e, 0xa0, 0x03, + 0xca, 0xaa, 0x81, 0xb4, 0xb3, 0x12, 0x78, 0xe8, 0x79, 0x18, 0x3f, 0x27, 0xce, 0xa8, 0xf1, 0x0b, + 0x24, 0xed, 0x33, 0xec, 0x1f, 0xec, 0x19, 0x8e, 0x2a, 0x44, 0x15, 0x14, 0x90, 0x85, 0xdc, 0xe5, + 0xde, 0x6e, 0xe5, 0x61, 0xa0, 0x67, 0x8d, 0x5c, 0x5b, 0x09, 0xd1, 0xe1, 0x66, 0xe0, 0x71, 0xcd, + 0x4b, 0x63, 0x62, 0x8c, 0xe3, 0x5c, 0x3a, 0x07, 0x82, 0x50, 0xa2, 0x42, 0xc8, 0xd2, 0xc1, 0x34, + 0x6c, 0xb4, 0x3d, 0x15, 0x1b, 0x1d, 0x1f, 0x3c, 0xfe, 0x2a, 0xe0, 0x52, 0x84, 0x1b, 0xb4, 0x40, + 0xb5, 0x8a, 0xea, 0x57, 0x90, 0xa8, 0x8f, 0x0b, 0xd7, 0x32, 0xaa, 0x4f, 0x33, 0xd7, 0x12, 0xa4, + 0xed, 0xc2, 0xe2, 0x0d, 0x00, 0x17, 0xd4, 0x15, 0xd6, 0x1d, 0x17, 0x42, 0x17, 0x5a, 0x14, 0x84, + 0xb5, 0xcb, 0x1a, 0x9e, 0x7e, 0xfe, 0x25, 0x87, 0x2f, 0xca, 0xd6, 0x31, 0xda, 0xef, 0x6b, 0x93, + 0x75, 0x4e, 0x06, 0x70, 0x54, 0xc4, 0x76, 0x90, 0xec, 0xe2, 0x19, 0x28, 0x71, 0x68, 0xcf, 0x63, + 0x2b, 0x72, 0x03, 0x83, 0x2d, 0x4f, 0x46, 0xb2, 0xf6, 0x0e, 0xf2, 0xd5, 0x1b, 0xcf, 0xd0, 0xd3, + 0x0d, 0xb6, 0x82, 0xaa, 0xab, 0xc6, 0xf8, 0xd9, 0x61, 0xb2, 0xa7, 0x78, 0x08, 0xdc, 0xdb, 0x51, + 0x9f, 0xa8, 0x56, 0xd7, 0xb3, 0xb1, 0x6f, 0x0f, 0x49, 0xb5, 0x50, 0xa7, 0x3a, 0xe6, 0xc4, 0x34, + 0x32, 0x9b, 0x38, 0xa0, 0xe2, 0x4a, 0x0b, 0xd4, 0xd3, 0x28, 0x4d, 0x17, 0xe7, 0xb2, 0xe7, 0x9b, + 0x91, 0xe2, 0x40, 0x9d, 0x5c, 0x07, 0x14, 0x92, 0x67, 0xab, 0x7d, 0x61, 0xb6, 0x49, 0x38, 0x9b, + 0xeb, 0xd8, 0xe6, 0x81, 0xe3, 0xb1, 0xb2, 0xb0, 0x91, 0x59, 0x4a, 0x77, 0x30, 0x6f, 0xac, 0xfa, + 0x77, 0x4c, 0x10, 0xa7, 0xd3, 0xee, 0x96, 0x0e, 0x68, 0x15, 0x6a, 0x77, 0x54, 0xa8, 0xd3, 0x6d, + 0x1b, 0xb0, 0xe9, 0x4e, 0x0e, 0x96, 0x85, 0xf3, 0xd9, 0xd6, 0x51, 0x69, 0x3a, 0xce, 0x2a, 0x2f, + 0xa4, 0xf1, 0x1f, 0xf8, 0x53, 0x03, 0xe6, 0xa9, 0xe2, 0x8a, 0x4a, 0xa2, 0x51, 0x80, 0xc6, 0x92, + 0x72, 0x89, 0x4e, 0x8f, 0xfa, 0xb7, 0x26, 0x74, 0xf2, 0x3e, 0x07, 0xb5, 0xd7, 0x07, 0xdc, 0xf7, + 0x01, 0xc5, 0xb0, 0xa7, 0x8b, 0x99, 0x82, 0x33, 0x45, 0x2b, 0xdd, 0x46, 0x21, 0x7a, 0x28, 0x11, + 0x6f, 0x9d, 0x67, 0x15, 0xdd, 0x89, 0x2b, 0xc4, 0xbb, 0x27, 0x75, 0x02, 0xac, 0xb8, 0xc2, 0xf1, + 0x81, 0xf9, 0x28, 0x4d, 0xd4, 0x46, 0x20, 0x07, 0xa0, 0xc9, 0x20, 0x01, 0x97, 0xf4, 0xe9, 0x49, + 0xff, 0xd6, 0xaa, 0xab, 0x67, 0xd4, 0x10, 0xdc, 0x33, 0x2e, 0x73, 0x7b, 0x3b, 0x99, 0x00, 0xe1, + 0xeb, 0x25, 0x23, 0xc1, 0x9b, 0xc8, 0x73, 0x42, 0x8d, 0xbb, 0xe0, 0x8b, 0x2b, 0x19, 0x69, 0x68, + 0x03, 0x08, 0x9d, 0xc5, 0x62, 0x2b, 0x2d, 0x77, 0xf5, 0xe3, 0xdb, 0x53, 0xc8, 0xfe, 0x51, 0xd6, + 0x93, 0xad, 0x69, 0x81, 0x5b, 0xca, 0x05, 0xba, 0xb9, 0x12, 0xe9, 0x12, 0x68, 0x85, 0x84, 0x12, + 0xcf, 0xf8, 0x6e, 0x87, 0x1b, 0xad, 0x51, 0x93, 0x9e, 0x65, 0x79, 0x52, 0xdd, 0xfa, 0x6e, 0xa8, + 0xdb, 0x8c, 0xfa, 0xf1, 0x4f, 0xe7, 0xf9, 0xb7, 0x55, 0xfd, 0xfe, 0xa6, 0x75, 0xdb, 0x96, 0x56, + 0xb7, 0x19, 0xbc, 0x6e, 0xf1, 0x55, 0x5c, 0x2f, 0x27, 0xd4, 0x81, 0x53, 0xb2, 0xc8, 0xc3, 0x91, + 0xce, 0x26, 0x98, 0xa3, 0x4e, 0x47, 0xb3, 0xd8, 0x05, 0xfd, 0xec, 0x64, 0x2f, 0xa2, 0x6d, 0xb4, + 0x45, 0xe3, 0xf1, 0x7c, 0xb9, 0xc6, 0x52, 0xc2, 0x8c, 0x41, 0x17, 0xc0, 0x70, 0x09, 0x33, 0x55, + 0x7f, 0xac, 0x63, 0x51, 0x05, 0x31, 0x7a, 0x69, 0x6b, 0xd5, 0x27, 0xc3, 0xcc, 0x67, 0x09, 0x99, + 0x5e, 0xdb, 0xc9, 0x74, 0x2b, 0xad, 0x90, 0xc6, 0x11, 0x88, 0xed, 0x05, 0x8c, 0x2e, 0x1b, 0xcd, + 0x4c, 0x51, 0x82, 0x51, 0x39, 0x3f, 0xac, 0xec, 0x19, 0x0c, 0x75, 0x91, 0x95, 0xb5, 0x67, 0x5c, + 0x5c, 0x6f, 0xf7, 0xde, 0xb0, 0x4e, 0xee, 0xb1, 0x0f, 0x62, 0xff, 0x4f, 0x6a, 0x4f, 0xce, 0xa2, + 0xf1, 0x3f, 0x06, 0xfd, 0xcf, 0xa8, 0x6d, 0x29, 0x01, 0xdf, 0x58, 0x29, 0x59, 0x93, 0xc3, 0xd6, + 0x78, 0x7b, 0x58, 0x0e, 0xf1, 0x46, 0x05, 0x9e, 0x6f, 0x49, 0x39, 0xbc, 0x25, 0xd7, 0x9f, 0xc3, + 0x96, 0x2c, 0x1a, 0xbf, 0xfe, 0x31, 0xe0, 0xba, 0xfe, 0xd7, 0x62, 0xa1, 0x59, 0x6d, 0xfa, 0xb0, + 0x49, 0xb6, 0x90, 0xee, 0x93, 0x67, 0xa8, 0xb4, 0x31, 0xc0, 0xe5, 0x26, 0xe0, 0x2f, 0x3a, 0x80, + 0x72, 0xb2, 0xaa, 0xe3, 0x61, 0x4a, 0x8e, 0x07, 0xd7, 0x02, 0xa7, 0xce, 0x6f, 0xd4, 0xa5, 0xdd, + 0x0d, 0x6b, 0x16, 0xcc, 0xe9, 0x92, 0x62, 0x58, 0x7e, 0x9a, 0xec, 0xb7, 0xd1, 0x6d, 0xa8, 0x87, + 0x0b, 0x2b, 0xd9, 0x98, 0xbe, 0xc2, 0x09, 0xff, 0xb3, 0x75, 0x8b, 0xc7, 0xe3, 0xc7, 0xc4, 0x85, + 0x0e, 0x4b, 0x10, 0xf7, 0x61, 0x0a, 0x00, 0xde, 0xdd, 0xd0, 0xba, 0x22, 0x80, 0xf6, 0xed, 0x89, + 0x93, 0x71, 0xdb, 0xf3, 0x2a, 0x59, 0x96, 0xdc, 0x2c, 0x66, 0x9d, 0xc7, 0x73, 0x75, 0x0f, 0x97, + 0x66, 0xe9, 0xdc, 0xec, 0xfe, 0x2f, 0xbb, 0x95, 0x15, 0xe1, 0xfb, 0xeb, 0xd8, 0x9b, 0xb1, 0x0f, + 0x9f, 0xf4, 0x55, 0x07, 0xad, 0x3c, 0x15, 0xd7, 0xb2, 0x0f, 0xf5, 0x74, 0xc8, 0x4c, 0x78, 0x98, + 0xfb, 0xa1, 0xc4, 0x9a, 0xc3, 0xb2, 0xd0, 0x40, 0x2b, 0x76, 0xb1, 0x72, 0x16, 0xe8, 0x1f, 0x77, + 0x90, 0x09, 0x95, 0x96, 0x62, 0x25, 0x82, 0xb4, 0x48, 0x68, 0x26, 0xfc, 0xd7, 0x05, 0x0b, 0x7c, + 0xd5, 0x21, 0x83, 0xef, 0x65, 0x65, 0x53, 0x30, 0x07, 0xfe, 0x6f, 0x0f, 0x99, 0xd7, 0x0a, 0xb2, + 0x69, 0xad, 0x4e, 0x36, 0x78, 0xaa, 0x01, 0xff, 0x66, 0xf5, 0xb3, 0xca, 0x62, 0x65, 0x85, 0xad, + 0x58, 0x79, 0xf8, 0xd7, 0x8f, 0x8b, 0x75, 0x27, 0x7e, 0x50, 0x96, 0xe5, 0xfd, 0xc1, 0x47, 0x8f, + 0x9f, 0xf8, 0x81, 0x6d, 0xa1, 0x6d, 0xd8, 0x5c, 0xcd, 0xb2, 0x42, 0x4c, 0x99, 0x87, 0x14, 0x07, + 0xe6, 0x48, 0xbb, 0x8c, 0x6e, 0xfb, 0x70, 0xcd, 0x16, 0x58, 0x79, 0x8b, 0x95, 0x77, 0x90, 0xe6, + 0x58, 0x78, 0x51, 0xa3, 0xf6, 0x08, 0x7a, 0xba, 0x95, 0x5f, 0xf9, 0x0f, 0xfc, 0xe1, 0x0d, 0x5a, + 0x71, 0x77, 0xc3, 0x8a, 0x8b, 0xfb, 0xbb, 0x46, 0xd4, 0x56, 0x8e, 0x27, 0x49, 0xc0, 0xa7, 0x2d, + 0xe9, 0xf3, 0xa9, 0x0e, 0x7c, 0xb6, 0x84, 0x4c, 0x44, 0x95, 0x14, 0x2b, 0xfd, 0x72, 0x0f, 0xa7, + 0xbd, 0xa3, 0xe6, 0x53, 0xbb, 0x80, 0x3e, 0xaa, 0x0e, 0xba, 0xea, 0x3f, 0x14, 0x16, 0xc0, 0x28, + 0x6d, 0x4d, 0xd0, 0x35, 0x11, 0x27, 0x23, 0x79, 0x7f, 0x1b, 0xfa, 0xb6, 0x8c, 0x9c, 0x80, 0x78, + 0x73, 0xba, 0x95, 0x4d, 0x40, 0xbd, 0x14, 0x42, 0xdc, 0x25, 0x53, 0xc6, 0xad, 0x48, 0x8b, 0xbb, + 0x5d, 0xb0, 0x10, 0xfd, 0x58, 0xac, 0x7c, 0x27, 0x49, 0xe1, 0x78, 0x76, 0xe9, 0x0a, 0x54, 0x8a, + 0x18, 0x35, 0xb9, 0x94, 0x93, 0x0e, 0x5d, 0x3a, 0x29, 0x29, 0x96, 0xd9, 0x71, 0xb4, 0x8b, 0x99, + 0xd9, 0x11, 0xf0, 0x15, 0x09, 0x0b, 0x82, 0xf9, 0xf0, 0x7f, 0x89, 0x4a, 0xcb, 0x17, 0x79, 0x57, + 0x0b, 0x4b, 0x34, 0x6a, 0x1e, 0xe5, 0x8a, 0xa7, 0x9d, 0x30, 0x67, 0x96, 0xa6, 0x53, 0xb2, 0xd0, + 0x47, 0x96, 0xa0, 0x19, 0xe5, 0x66, 0x2a, 0x84, 0xad, 0x13, 0xdd, 0xb3, 0x3d, 0x80, 0x09, 0x07, + 0x49, 0xaa, 0x02, 0x98, 0xf0, 0x8f, 0x5b, 0xf8, 0xba, 0x93, 0xb2, 0xce, 0xe0, 0xce, 0x12, 0xe0, + 0xb3, 0xab, 0xfd, 0x78, 0x42, 0x93, 0x5c, 0x6a, 0xdc, 0x3f, 0xbd, 0x89, 0xb3, 0x15, 0x60, 0xc1, + 0x06, 0x39, 0xea, 0x30, 0xc7, 0x24, 0x35, 0x8e, 0xf1, 0x20, 0x4d, 0x19, 0xcd, 0x5c, 0x26, 0xa3, + 0x7c, 0xcd, 0x32, 0x1b, 0x75, 0x06, 0xbd, 0x48, 0xe7, 0x18, 0xf2, 0x1b, 0x3e, 0x6a, 0xd0, 0x2b, + 0x6f, 0x60, 0xdb, 0x54, 0x8b, 0x26, 0x96, 0x1b, 0x75, 0xd5, 0x90, 0x36, 0x3d, 0x63, 0x98, 0xea, + 0x2a, 0xcf, 0xb3, 0x3f, 0x89, 0x74, 0xf9, 0xe4, 0x38, 0xb8, 0xc7, 0x14, 0xcc, 0x4f, 0xa1, 0xe6, + 0x81, 0xa2, 0xfa, 0x3d, 0xd1, 0xff, 0xc0, 0x6b, 0xe9, 0xec, 0x4f, 0x6a, 0x77, 0x99, 0x13, 0xbc, + 0xc0, 0x9d, 0x80, 0xeb, 0x9e, 0xb2, 0x93, 0xdd, 0x90, 0x50, 0x19, 0xd5, 0x45, 0x3f, 0x67, 0x11, + 0xc9, 0xff, 0x0a, 0x80, 0x37, 0xd5, 0x53, 0x5f, 0xde, 0x83, 0x32, 0xa8, 0x04, 0x35, 0xbb, 0x07, + 0xc3, 0xc2, 0x3a, 0x08, 0x05, 0x7c, 0x20, 0x9a, 0x38, 0xfd, 0x09, 0x23, 0xe2, 0xc2, 0xf9, 0xe7, + 0x84, 0x11, 0x71, 0xe2, 0x88, 0xc0, 0xfc, 0xb3, 0x37, 0x4b, 0x59, 0xea, 0x0c, 0x74, 0x71, 0x3b, + 0x8d, 0xd7, 0x9a, 0x13, 0x73, 0x4c, 0x5e, 0xf8, 0x91, 0x72, 0x0c, 0x77, 0xf7, 0xaf, 0xaf, 0xe7, + 0xe7, 0x01, 0x84, 0x05, 0x25, 0x26, 0xc3, 0x37, 0xe0, 0xbd, 0xc4, 0x5a, 0xac, 0xb8, 0x2d, 0x3a, + 0xd2, 0x4f, 0x2f, 0xac, 0x60, 0x6c, 0xff, 0x6b, 0x2f, 0x2b, 0x3b, 0x43, 0xa6, 0xb0, 0x61, 0x0e, + 0xb6, 0x9b, 0x09, 0x0e, 0xde, 0x3a, 0x82, 0xf2, 0xdd, 0x2a, 0x5c, 0xbf, 0x8c, 0xbb, 0x38, 0xdc, + 0xc7, 0x73, 0x9f, 0xf1, 0x18, 0x41, 0xf8, 0x2e, 0xa2, 0x29, 0x91, 0xb6, 0x3a, 0x70, 0xf5, 0x5d, + 0x94, 0xd1, 0x21, 0x4d, 0x99, 0x4c, 0x05, 0xd0, 0x37, 0xab, 0x71, 0xc4, 0xac, 0x03, 0x2a, 0x22, + 0x57, 0xac, 0xb1, 0x2d, 0x52, 0xcf, 0x06, 0x21, 0x9f, 0x5c, 0x23, 0x3f, 0x8c, 0x36, 0x39, 0xb9, + 0xfc, 0x3e, 0x35, 0x8c, 0x5b, 0x92, 0x49, 0x96, 0x23, 0x4d, 0xbb, 0x69, 0xac, 0x99, 0x50, 0x2b, + 0x17, 0xb6, 0xf9, 0x4f, 0xb9, 0xaa, 0xb5, 0x83, 0x42, 0x79, 0x55, 0x54, 0xb7, 0x4e, 0x90, 0xf5, + 0xf0, 0x9f, 0x71, 0x49, 0x0d, 0xf6, 0x3b, 0xd6, 0x80, 0xcf, 0x5d, 0xdc, 0x7d, 0xac, 0x81, 0xd9, + 0x3c, 0xa7, 0x81, 0xf7, 0xbf, 0x38, 0x44, 0xa3, 0x50, 0x0d, 0xa3, 0xd0, 0xad, 0x1c, 0x4b, 0x1f, + 0x83, 0xc4, 0x08, 0x07, 0xc3, 0xf3, 0x81, 0x92, 0x03, 0x4a, 0x03, 0xe2, 0xb8, 0xfd, 0x07, 0x7e, + 0x37, 0x46, 0xd2, 0x01, 0x6e, 0xf9, 0x08, 0xe7, 0x8b, 0x5e, 0x9d, 0x2f, 0x2e, 0x94, 0xae, 0xe0, + 0x7c, 0x71, 0x04, 0x54, 0xde, 0x45, 0x8f, 0x5a, 0xd8, 0x82, 0x39, 0x1c, 0x32, 0xaf, 0x5f, 0x26, + 0x19, 0xf1, 0xa8, 0xc4, 0x52, 0x46, 0x8c, 0x42, 0xfe, 0xf4, 0x5c, 0xc2, 0xee, 0xfd, 0x73, 0xb0, + 0x5e, 0xd5, 0x50, 0xea, 0x62, 0x65, 0x27, 0x72, 0x74, 0x21, 0x53, 0xc4, 0x74, 0x77, 0x15, 0x8e, + 0x0a, 0x1b, 0x32, 0x17, 0xb3, 0x2c, 0xc5, 0x1d, 0xec, 0x48, 0x19, 0x1d, 0xbf, 0xc4, 0xea, 0x61, + 0x94, 0x61, 0x4d, 0xed, 0x56, 0x96, 0x40, 0xdd, 0x7c, 0xdc, 0x37, 0x31, 0x42, 0x2f, 0xa9, 0x23, + 0x84, 0xfb, 0x4c, 0x6e, 0x95, 0xea, 0xcf, 0xd5, 0x52, 0x62, 0x9b, 0xc1, 0x7f, 0x7d, 0xe3, 0x88, + 0x54, 0xac, 0xf8, 0xd0, 0xa5, 0xd6, 0x94, 0xf0, 0xb4, 0x6c, 0x55, 0xeb, 0xb7, 0x4d, 0xed, 0xdd, + 0x55, 0x1c, 0x43, 0x14, 0xe8, 0x95, 0x02, 0x6c, 0xb1, 0xc6, 0x09, 0x4a, 0x73, 0x01, 0xbf, 0x4b, + 0x1a, 0x27, 0x7c, 0xfd, 0x21, 0xce, 0x09, 0x6b, 0xb6, 0xf9, 0x26, 0xf3, 0xd5, 0x4b, 0x2e, 0xc5, + 0xcf, 0x00, 0xad, 0x5b, 0xea, 0x90, 0x04, 0xb7, 0xbd, 0x57, 0x68, 0x74, 0xf4, 0x0a, 0xcd, 0x61, + 0x8b, 0x23, 0xe6, 0x7b, 0x55, 0xa8, 0x09, 0xb9, 0xa5, 0x6a, 0x96, 0x8f, 0xb8, 0x02, 0xf5, 0xe3, + 0x92, 0x2c, 0x2b, 0xd7, 0xf3, 0xdd, 0xa8, 0x78, 0x6a, 0x84, 0xef, 0xed, 0x7c, 0xee, 0xa4, 0x24, + 0x09, 0xcb, 0xf9, 0xf7, 0x97, 0x4a, 0x00, 0xbf, 0x21, 0xed, 0x54, 0x29, 0x36, 0xfa, 0x37, 0x93, + 0x7e, 0x82, 0xa1, 0xa0, 0x08, 0xb9, 0x78, 0x43, 0xb3, 0x60, 0xe6, 0xe5, 0x12, 0x65, 0x36, 0x76, + 0xff, 0x29, 0x95, 0xd2, 0xcd, 0xc1, 0x5c, 0x65, 0x53, 0x38, 0x0b, 0x38, 0x07, 0xc4, 0x74, 0xd9, + 0xc0, 0xe9, 0x14, 0x2c, 0xb9, 0x24, 0x38, 0x89, 0x5a, 0x44, 0x7b, 0xb9, 0x22, 0x90, 0xb6, 0x76, + 0xa0, 0x14, 0x9d, 0x40, 0x37, 0xb9, 0x1c, 0xaa, 0xcd, 0x5c, 0xc0, 0x7a, 0x2f, 0x09, 0xb1, 0x90, + 0x45, 0x3d, 0xc1, 0x39, 0xa6, 0xdb, 0x4d, 0x7d, 0xf1, 0xb0, 0xb6, 0x1b, 0x9e, 0xef, 0xe0, 0x96, + 0x18, 0x80, 0xea, 0x2b, 0x87, 0xba, 0x97, 0x02, 0x3f, 0xe5, 0x02, 0x2a, 0xd0, 0x29, 0xd5, 0x90, + 0xb5, 0x3b, 0x11, 0x4a, 0x01, 0x4a, 0x50, 0x51, 0xf7, 0x63, 0x3f, 0xb7, 0x89, 0xf8, 0xdc, 0x7c, + 0xcc, 0x33, 0x98, 0x37, 0x29, 0x4f, 0x13, 0xd4, 0x4e, 0x87, 0x7c, 0x0d, 0xd4, 0x4e, 0x8f, 0xe9, + 0xe8, 0x34, 0xe1, 0x55, 0xef, 0x7b, 0x95, 0xc8, 0x21, 0x95, 0x43, 0xad, 0x90, 0x3f, 0xa8, 0x04, + 0xd8, 0x02, 0xce, 0x44, 0x70, 0x4e, 0xc6, 0x4a, 0xa4, 0xb1, 0xcc, 0xa4, 0x62, 0x2e, 0xc6, 0xf6, + 0x38, 0x9f, 0x9c, 0xeb, 0x63, 0x7a, 0xcf, 0x6e, 0xa0, 0x05, 0x76, 0x33, 0x71, 0xbd, 0xeb, 0xec, + 0x88, 0x94, 0x8d, 0x96, 0x76, 0x24, 0xfd, 0xa2, 0x4b, 0x50, 0xc7, 0xdb, 0xf0, 0x34, 0x80, 0x64, + 0x02, 0xba, 0x10, 0xe8, 0xbd, 0xb9, 0x5c, 0x16, 0x94, 0x0f, 0x75, 0xca, 0x96, 0xf4, 0x5a, 0x58, + 0xd2, 0x5f, 0x74, 0x01, 0xcf, 0x9b, 0x05, 0xb4, 0x7c, 0x5e, 0xbb, 0x21, 0x97, 0xfa, 0x11, 0xb5, + 0xaf, 0x86, 0x6c, 0xea, 0x49, 0x19, 0xa4, 0xc3, 0x93, 0x3f, 0x33, 0x1f, 0x29, 0xe2, 0x10, 0x72, + 0xc0, 0xc7, 0xce, 0x7d, 0x8c, 0xeb, 0xa9, 0x95, 0x09, 0x49, 0xaa, 0xe0, 0x24, 0xab, 0xb2, 0xe7, + 0x70, 0x7c, 0xfe, 0xe1, 0x28, 0x9e, 0xb1, 0xec, 0xaf, 0x54, 0x65, 0x28, 0xda, 0xc9, 0x51, 0xe8, + 0x35, 0x1c, 0xdb, 0x94, 0x14, 0x26, 0xd5, 0x0e, 0xad, 0x05, 0x79, 0x4d, 0x15, 0xfe, 0xcc, 0x92, + 0x51, 0x04, 0xde, 0x10, 0x77, 0x13, 0xb9, 0x5e, 0x47, 0xb4, 0x36, 0xa5, 0xe5, 0x02, 0xf0, 0x9b, + 0xcf, 0x25, 0xd8, 0x2d, 0x23, 0xb8, 0x1e, 0xa0, 0x84, 0x12, 0xc6, 0x05, 0x4f, 0x59, 0x63, 0x1e, + 0x27, 0x34, 0x0a, 0xdd, 0xd6, 0xc9, 0x50, 0x72, 0x61, 0xbd, 0xc1, 0x27, 0xff, 0x06, 0x9f, 0x02, + 0xff, 0x89, 0xe4, 0xfa, 0x71, 0x83, 0x84, 0xae, 0x59, 0x5c, 0x64, 0x73, 0x27, 0xf5, 0x99, 0x5d, + 0xdf, 0x0c, 0xd4, 0x09, 0x2f, 0xb5, 0x08, 0xe6, 0x74, 0x07, 0x13, 0xfd, 0x9b, 0x71, 0xfd, 0x68, + 0x19, 0x99, 0xbc, 0x82, 0x4c, 0x9c, 0x54, 0x57, 0x10, 0x80, 0x78, 0xda, 0xdb, 0xd7, 0x76, 0x04, + 0xf2, 0x71, 0x05, 0x48, 0x5f, 0x51, 0x12, 0x79, 0xce, 0xc0, 0xff, 0xfe, 0xcd, 0xea, 0xda, 0x62, + 0x25, 0xde, 0xf1, 0x86, 0xb4, 0x7c, 0xf5, 0x98, 0xd4, 0x0a, 0xbb, 0xff, 0x04, 0x40, 0x17, 0x43, + 0xe8, 0x12, 0x7b, 0x05, 0x27, 0xcc, 0x42, 0x97, 0xab, 0xb1, 0x10, 0xc2, 0xcd, 0x77, 0xb2, 0xf9, + 0xc1, 0x59, 0xc8, 0xb3, 0x49, 0xb7, 0xa1, 0x9e, 0xe0, 0x44, 0xee, 0x7a, 0xa0, 0x82, 0xf2, 0x03, + 0x4f, 0xc2, 0xea, 0x80, 0x67, 0x57, 0x0e, 0xc4, 0x27, 0xb8, 0x3f, 0xf0, 0xa2, 0x97, 0xc3, 0x42, + 0x31, 0x5f, 0x37, 0x8c, 0x28, 0xf3, 0x08, 0x19, 0x6d, 0x8b, 0xd0, 0xe6, 0x9f, 0xec, 0x87, 0xf1, + 0xab, 0x55, 0xc7, 0x05, 0xd6, 0x16, 0x1e, 0x87, 0xbd, 0x4b, 0x79, 0x9b, 0x78, 0xcd, 0x9d, 0x3c, + 0x6f, 0xc6, 0x8e, 0x52, 0xdd, 0x61, 0xb4, 0x90, 0xda, 0x9b, 0x8b, 0x3a, 0x66, 0x4d, 0xa8, 0xad, + 0x38, 0xf0, 0x24, 0x3f, 0x87, 0xc3, 0x86, 0x2d, 0xa3, 0x8e, 0x7a, 0xcb, 0xe7, 0x42, 0x06, 0x92, + 0xaa, 0x5c, 0xf1, 0x58, 0x7c, 0xc8, 0x13, 0x3d, 0x89, 0x79, 0x79, 0x81, 0x2a, 0xa7, 0xfc, 0x8c, + 0x98, 0x1f, 0xcd, 0x47, 0x3f, 0xf9, 0x61, 0x6e, 0xd5, 0xa9, 0xb9, 0x11, 0x2e, 0xb8, 0x33, 0x34, + 0xdf, 0xb7, 0x9b, 0x19, 0x43, 0x16, 0xaa, 0x87, 0x19, 0x65, 0x15, 0xb0, 0xae, 0x4d, 0x97, 0xad, + 0xe0, 0xab, 0x57, 0x5b, 0xae, 0xf9, 0xf2, 0x3a, 0x1b, 0x08, 0xee, 0xf6, 0x00, 0xf6, 0xb6, 0xdb, + 0x1b, 0xe4, 0x7c, 0xa4, 0x74, 0x2d, 0x3e, 0x3c, 0x3b, 0x77, 0xed, 0xa8, 0xbd, 0x12, 0x77, 0x9c, + 0x51, 0x07, 0xf4, 0xb5, 0xab, 0x96, 0x3b, 0x01, 0x47, 0x32, 0xcd, 0x22, 0x1e, 0x42, 0xb3, 0x40, + 0xd2, 0x2e, 0x4d, 0x8e, 0x68, 0x87, 0x3c, 0xff, 0xe5, 0xb7, 0x48, 0x0d, 0xa1, 0x44, 0x1d, 0x35, + 0xee, 0x23, 0x04, 0x02, 0xc7, 0x9a, 0x02, 0xcb, 0x30, 0x32, 0x2e, 0xd2, 0x89, 0xa7, 0xc3, 0x90, + 0x34, 0xff, 0xd2, 0x04, 0x24, 0x92, 0x8c, 0x2d, 0xcd, 0x55, 0x7e, 0x03, 0x94, 0x56, 0x20, 0x94, + 0x96, 0x22, 0x5e, 0x23, 0x59, 0x35, 0x4a, 0x16, 0x68, 0x55, 0xe2, 0x70, 0x83, 0xbd, 0x55, 0x49, + 0x23, 0x83, 0x52, 0x38, 0x7d, 0xd8, 0x28, 0xcf, 0xf4, 0x6d, 0x08, 0xcd, 0x8a, 0x08, 0x7b, 0x37, + 0x84, 0xdc, 0xc0, 0xb5, 0x6f, 0x08, 0xfa, 0x7c, 0x83, 0xdd, 0xfa, 0x3d, 0x83, 0x6d, 0x0d, 0xe1, + 0x69, 0x2a, 0xdd, 0xe6, 0xf5, 0x0d, 0x76, 0x99, 0x45, 0x5d, 0x4d, 0x6c, 0xcf, 0x2e, 0x66, 0x5d, + 0x69, 0x45, 0xfb, 0x60, 0xa1, 0x1c, 0xe0, 0x43, 0xc1, 0xb5, 0x67, 0xa0, 0x4d, 0x1f, 0x99, 0x26, + 0xe7, 0x03, 0xdd, 0x6a, 0x85, 0x9c, 0x06, 0x7b, 0x8e, 0xd8, 0x74, 0x35, 0x03, 0x7b, 0x06, 0xda, + 0x0f, 0x9d, 0x8a, 0x01, 0xae, 0x30, 0xe2, 0xfa, 0x05, 0x78, 0xcd, 0x80, 0x96, 0x06, 0x91, 0x9b, + 0x30, 0x9b, 0x79, 0xcb, 0xa4, 0x0e, 0x96, 0x0f, 0x10, 0x46, 0x7b, 0x3f, 0x37, 0x5b, 0x2f, 0xfe, + 0xbc, 0x1c, 0xd6, 0x68, 0xb8, 0xb9, 0x1c, 0x96, 0x78, 0x83, 0xc6, 0xc4, 0x7a, 0x69, 0xc1, 0x73, + 0x57, 0xb5, 0xe3, 0xca, 0xf6, 0x14, 0x69, 0xac, 0x91, 0xce, 0x62, 0xdc, 0x28, 0x9d, 0xb5, 0xf3, + 0x79, 0x93, 0x98, 0xeb, 0xc6, 0x1b, 0xf7, 0x8d, 0x52, 0xf2, 0x20, 0x6a, 0x47, 0x69, 0x16, 0x9b, + 0xb0, 0x94, 0xf4, 0x3d, 0x0c, 0xc4, 0x57, 0x29, 0xb3, 0x9d, 0x9f, 0x6d, 0xb5, 0xaa, 0xb3, 0x7d, + 0xa6, 0xd8, 0xc4, 0x43, 0x22, 0x2c, 0xd7, 0x82, 0xb2, 0x0f, 0x9c, 0x5b, 0x8a, 0x59, 0x93, 0xcc, + 0xe3, 0xac, 0xc7, 0xdd, 0x16, 0xdf, 0x3f, 0xc3, 0x38, 0xe1, 0xe9, 0x18, 0x68, 0x0d, 0x49, 0xfd, + 0x0c, 0xbf, 0xf6, 0x7a, 0xdd, 0x1e, 0x37, 0xed, 0xe7, 0x4e, 0x43, 0xbd, 0x09, 0x83, 0x31, 0xf2, + 0x37, 0xfe, 0x7a, 0x38, 0x36, 0x10, 0x73, 0xb2, 0xe9, 0x78, 0x92, 0x06, 0xa1, 0x18, 0x68, 0x88, + 0xe7, 0x27, 0xc9, 0x5f, 0x35, 0x19, 0x1d, 0xe4, 0x45, 0xe9, 0x0d, 0xbf, 0x26, 0xcd, 0x0b, 0x94, + 0x7e, 0x1a, 0xe6, 0x1a, 0x1b, 0x20, 0x7f, 0xb4, 0xef, 0x1e, 0x1b, 0xc4, 0xbc, 0xb0, 0x27, 0x3b, + 0x26, 0x97, 0x1d, 0x65, 0x56, 0x8c, 0xef, 0xf1, 0x78, 0x86, 0x92, 0x65, 0x0f, 0x62, 0xd9, 0x7b, + 0x06, 0xb4, 0x12, 0x51, 0x16, 0x91, 0x22, 0x75, 0x6e, 0x4e, 0xba, 0x48, 0x7e, 0x37, 0x98, 0x94, + 0x33, 0xdf, 0x6a, 0xbb, 0x6e, 0x48, 0x91, 0x93, 0x92, 0xe2, 0xf6, 0x94, 0x14, 0x16, 0x35, 0xc5, + 0x1d, 0x49, 0x29, 0x23, 0x69, 0xfc, 0x0e, 0x14, 0xa2, 0x34, 0xb1, 0x1b, 0x66, 0xcb, 0x2a, 0xba, + 0xcd, 0x73, 0xcb, 0xf9, 0xec, 0x79, 0x1c, 0x68, 0xea, 0x40, 0x61, 0x37, 0xb3, 0x94, 0x17, 0x1b, + 0xf5, 0x6b, 0x59, 0x9e, 0x93, 0x09, 0xeb, 0x58, 0x3e, 0xd6, 0xb9, 0xc1, 0x5b, 0xe3, 0xa9, 0x49, + 0xa9, 0xf3, 0x50, 0x7a, 0x9d, 0x8f, 0x6f, 0xf0, 0x79, 0x42, 0xd6, 0x32, 0x9d, 0xf7, 0x07, 0xfd, + 0xc2, 0x6f, 0x5e, 0x69, 0xda, 0x78, 0x34, 0xb6, 0x76, 0xc6, 0xf6, 0x81, 0xf7, 0x5e, 0x41, 0x0b, + 0x3d, 0xe7, 0x1e, 0x77, 0x18, 0x22, 0x33, 0xde, 0x7d, 0xc9, 0x7b, 0xe8, 0xc2, 0xce, 0xd3, 0x31, + 0xd4, 0x1e, 0x36, 0x4d, 0x29, 0x24, 0xd9, 0xe3, 0xb7, 0x37, 0x8a, 0x59, 0xbf, 0xd9, 0x89, 0xd2, + 0xe5, 0xbf, 0x57, 0xbe, 0x4d, 0x92, 0xcd, 0x68, 0x52, 0xb2, 0x79, 0x11, 0x70, 0xe2, 0xeb, 0xb0, + 0x4e, 0x27, 0xa4, 0x9a, 0x6b, 0x75, 0x73, 0xab, 0x85, 0x8e, 0x28, 0x4a, 0x35, 0xf7, 0xec, 0x7f, + 0xac, 0x4b, 0x57, 0xa8, 0xff, 0x4b, 0xda, 0xb6, 0x19, 0x67, 0x31, 0xa6, 0xd2, 0x64, 0x9b, 0xd9, + 0xe2, 0x42, 0x6f, 0xd8, 0xc9, 0xce, 0xbd, 0x04, 0xdf, 0x06, 0xff, 0x33, 0xa7, 0x1e, 0xb3, 0xd5, + 0xbe, 0x7d, 0x91, 0x59, 0xe7, 0xd4, 0xff, 0x65, 0x7d, 0x86, 0x70, 0xbc, 0xe7, 0xf1, 0x95, 0x05, + 0x3b, 0x1e, 0x0b, 0x5b, 0x4e, 0xc7, 0x22, 0x97, 0xdf, 0x1c, 0xe0, 0x6d, 0xeb, 0x67, 0x24, 0x01, + 0x75, 0x6b, 0xfa, 0xa4, 0x51, 0x02, 0xca, 0xe1, 0x12, 0xad, 0xd7, 0x85, 0x9d, 0xc7, 0x77, 0x32, + 0x4b, 0x34, 0x7b, 0x1f, 0x9e, 0x50, 0xcb, 0xa3, 0x39, 0x89, 0x33, 0x03, 0x65, 0xc7, 0x63, 0x6e, + 0x92, 0x9b, 0xc9, 0xa9, 0xab, 0x27, 0x4a, 0x0c, 0x0f, 0x5c, 0x3b, 0x43, 0x32, 0x40, 0x11, 0x21, + 0x0e, 0x68, 0xf1, 0xf3, 0x24, 0xc3, 0x06, 0x5c, 0x0e, 0xbc, 0xab, 0x85, 0xce, 0x6c, 0x77, 0x83, + 0x1f, 0x97, 0x4c, 0xee, 0xa0, 0x35, 0xc5, 0x64, 0xbe, 0x8f, 0x89, 0xc6, 0x5f, 0x05, 0x0d, 0x4d, + 0x31, 0xe8, 0xbf, 0x2b, 0x7b, 0x00, 0xdf, 0x35, 0x0d, 0xa2, 0x2e, 0x6a, 0xdf, 0x60, 0x6f, 0x5e, + 0x8a, 0x1c, 0x1d, 0xd2, 0x41, 0xee, 0xeb, 0x49, 0xd3, 0x55, 0x99, 0x93, 0xd9, 0x8b, 0x95, 0x33, + 0x76, 0xd4, 0x82, 0xfc, 0x15, 0xda, 0xb9, 0x99, 0x41, 0xf8, 0xdd, 0xa2, 0x69, 0xa9, 0xc6, 0x5d, + 0x3d, 0xa2, 0x94, 0xec, 0x2a, 0x6d, 0x54, 0x4e, 0x9a, 0x8d, 0x45, 0x55, 0xb2, 0x34, 0x3b, 0xad, + 0x0d, 0x95, 0x24, 0xbf, 0x84, 0x1c, 0xf8, 0x89, 0xb9, 0x2f, 0x1b, 0xf8, 0x09, 0xd7, 0x1e, 0xbb, + 0x9a, 0x26, 0x29, 0x55, 0xc0, 0x94, 0x6e, 0x94, 0x7e, 0x8d, 0x5f, 0x51, 0x77, 0x7f, 0x8c, 0x9e, + 0x7b, 0x8d, 0x0c, 0x31, 0x14, 0xd9, 0x11, 0x5d, 0xaa, 0x4c, 0xa0, 0xed, 0x55, 0xe2, 0x3d, 0x70, + 0x45, 0xec, 0x56, 0x26, 0x38, 0x6d, 0x59, 0xbc, 0x02, 0x4f, 0x68, 0x75, 0xb9, 0x3d, 0x5b, 0xd5, + 0x9d, 0xe1, 0xa4, 0x14, 0x9f, 0x09, 0x76, 0xf0, 0xa3, 0x53, 0xe6, 0x67, 0xef, 0x45, 0x39, 0xbe, + 0xb6, 0x03, 0x3e, 0x5f, 0xa5, 0x99, 0xb5, 0x39, 0x0c, 0x10, 0x35, 0x41, 0x6b, 0xf4, 0x55, 0xf5, + 0x0e, 0xc3, 0x58, 0xe9, 0xb3, 0x94, 0x43, 0x79, 0xd8, 0x72, 0x7c, 0xeb, 0xa4, 0xbd, 0x01, 0xf1, + 0xb3, 0xf3, 0x0c, 0x79, 0x9b, 0x06, 0xb9, 0xcd, 0x0c, 0x0e, 0xc9, 0xb8, 0x03, 0x3d, 0xff, 0x94, + 0x08, 0xf5, 0x15, 0xc3, 0x15, 0xcc, 0x31, 0xec, 0xed, 0xa0, 0x5a, 0x6e, 0xe7, 0x12, 0x81, 0x29, + 0xf2, 0x52, 0x2d, 0xd1, 0x05, 0x73, 0x6d, 0x90, 0x26, 0xcd, 0xf6, 0xcc, 0xb2, 0xbf, 0xdd, 0xf0, + 0xc0, 0x11, 0xe5, 0x35, 0x8f, 0xa7, 0x69, 0xb0, 0xed, 0x95, 0xf4, 0xd0, 0x1b, 0xda, 0xee, 0xfc, + 0xec, 0x5a, 0x06, 0x8d, 0x9e, 0xad, 0xc4, 0x2f, 0x70, 0x89, 0x88, 0x59, 0xb9, 0xc0, 0x6f, 0x2f, + 0x22, 0x45, 0xf9, 0x19, 0x79, 0x7d, 0x29, 0x3c, 0x1d, 0xf8, 0x44, 0xfd, 0x4d, 0x7a, 0x51, 0xc7, + 0x57, 0x7a, 0x4d, 0x77, 0xb8, 0x23, 0x40, 0x12, 0x93, 0x2e, 0xc0, 0xac, 0xa8, 0x8b, 0xdf, 0x70, + 0x83, 0xcc, 0x24, 0x27, 0x45, 0x66, 0xc2, 0x04, 0xdc, 0x8b, 0xb1, 0x9f, 0x7a, 0x95, 0x89, 0xf5, + 0xd4, 0x6f, 0xaa, 0x3c, 0x84, 0x73, 0x66, 0xc6, 0x88, 0x8e, 0x38, 0xc4, 0x0e, 0xdc, 0xb3, 0x47, + 0x9a, 0xcd, 0x62, 0xc9, 0x65, 0x4d, 0x82, 0x19, 0xf8, 0x83, 0x15, 0xee, 0xc4, 0x2a, 0xc9, 0x48, + 0x8e, 0x02, 0xf0, 0xff, 0xe9, 0x2b, 0x24, 0x19, 0xe9, 0x65, 0x2e, 0x23, 0xc3, 0x2f, 0x84, 0x28, + 0xc4, 0xc5, 0x66, 0xb7, 0x8e, 0x85, 0x6a, 0xcc, 0x6e, 0x3d, 0x7b, 0x90, 0x6c, 0x33, 0xdc, 0xe3, + 0x36, 0xea, 0xe5, 0xf9, 0x28, 0xa5, 0x0c, 0x19, 0xcd, 0x83, 0x8c, 0x65, 0xbd, 0xdf, 0x2b, 0x86, + 0xb3, 0x52, 0x65, 0x2e, 0x46, 0x03, 0xe7, 0x17, 0x3f, 0xad, 0x53, 0x65, 0x2e, 0x6d, 0x81, 0x41, + 0xe0, 0x76, 0xda, 0xee, 0xe9, 0x67, 0x3a, 0xa3, 0x1e, 0x77, 0xe0, 0x69, 0x2e, 0xb8, 0xf9, 0x5c, + 0x08, 0x55, 0xd8, 0x21, 0x76, 0xe3, 0x20, 0xf4, 0x17, 0x97, 0x79, 0xdc, 0x2f, 0xe9, 0x16, 0xd2, + 0xf8, 0x27, 0xb4, 0xd1, 0xe5, 0x25, 0xfa, 0xb2, 0x06, 0xe5, 0xd0, 0xda, 0x68, 0x70, 0xf9, 0x8d, + 0x8c, 0x27, 0xce, 0xf2, 0x35, 0xeb, 0x3f, 0x78, 0xa2, 0x03, 0x77, 0xe2, 0xff, 0x8c, 0x0c, 0x67, + 0xad, 0xfd, 0xc9, 0xf4, 0x95, 0xdb, 0xe9, 0x26, 0xf9, 0x4d, 0x5e, 0x3a, 0xf5, 0xfd, 0x47, 0x6e, + 0x55, 0xba, 0x0e, 0x66, 0x56, 0x7e, 0x5a, 0xec, 0x18, 0x62, 0x3b, 0xdf, 0xe6, 0x60, 0x09, 0xcf, + 0x2f, 0x65, 0x15, 0x2f, 0x64, 0x05, 0x0b, 0xc7, 0xff, 0xd8, 0x90, 0x72, 0x72, 0x40, 0xd4, 0x4e, + 0x0e, 0xa8, 0x36, 0x91, 0x55, 0x8a, 0x1d, 0x77, 0xd2, 0xb0, 0x9f, 0x09, 0x33, 0x3e, 0x0b, 0xf3, + 0x25, 0x17, 0x70, 0x90, 0xc7, 0xc1, 0x29, 0xd5, 0x32, 0xb2, 0xc6, 0xaa, 0xbf, 0xdb, 0x07, 0xd8, + 0xe5, 0x25, 0xc2, 0xad, 0x96, 0x04, 0xb5, 0x42, 0xb1, 0xf1, 0x14, 0xb9, 0x74, 0x07, 0xcc, 0x8b, + 0x67, 0xfd, 0x07, 0x3e, 0xb9, 0x4a, 0xb3, 0x7f, 0x06, 0xa7, 0x4c, 0x38, 0xfd, 0x5e, 0x3a, 0xdf, + 0xd9, 0x2b, 0x14, 0x00, 0x27, 0x6d, 0x77, 0x34, 0xe3, 0x29, 0x4c, 0x3c, 0x4d, 0x03, 0xeb, 0x82, + 0xc4, 0xf9, 0xab, 0x6b, 0x0f, 0xdb, 0x99, 0x58, 0x6d, 0xf3, 0xa9, 0x27, 0x14, 0x5a, 0x38, 0x86, + 0x09, 0x1a, 0x7c, 0x80, 0xc9, 0x42, 0xfe, 0x70, 0xd6, 0x9e, 0xdd, 0xa8, 0x9b, 0xba, 0xea, 0x92, + 0x90, 0x7f, 0xe2, 0x90, 0xd9, 0xc9, 0xbe, 0x1c, 0x8f, 0x07, 0x2b, 0xe1, 0x7d, 0x4f, 0x5c, 0x09, + 0x96, 0xcb, 0x46, 0xf3, 0x5f, 0xb3, 0x2f, 0x3b, 0xf3, 0x43, 0x86, 0xa6, 0xc1, 0x55, 0x57, 0x65, + 0x3b, 0xe6, 0x23, 0xea, 0xb4, 0x9c, 0x70, 0x0e, 0x62, 0x2e, 0x09, 0xf8, 0x36, 0x68, 0x7b, 0xea, + 0xcb, 0xcd, 0x9c, 0xf2, 0xd5, 0xe8, 0x4f, 0xec, 0x53, 0x3b, 0xd1, 0x9f, 0x36, 0xdd, 0xda, 0x19, + 0x63, 0xff, 0x8c, 0x6d, 0x5c, 0xcb, 0xe6, 0x39, 0x8d, 0xfa, 0xb1, 0x9d, 0x62, 0x15, 0xee, 0x5c, + 0x10, 0x2c, 0x27, 0x66, 0x14, 0x49, 0x0b, 0x75, 0x2a, 0xe4, 0x57, 0x20, 0x4c, 0xeb, 0x06, 0x71, + 0x55, 0x44, 0xc8, 0x3e, 0x71, 0x08, 0xe9, 0x2b, 0x3c, 0xc3, 0xac, 0x61, 0x47, 0xb4, 0x5c, 0x8d, + 0x50, 0xfd, 0x07, 0xc2, 0xff, 0xb2, 0xde, 0x53, 0xc8, 0x9c, 0xb0, 0x7e, 0x3c, 0xc1, 0xa9, 0x4c, + 0x58, 0xf9, 0xf1, 0xbc, 0x8b, 0x13, 0xf8, 0x7a, 0x97, 0xeb, 0x4e, 0xe4, 0x9b, 0x0e, 0x00, 0x3d, + 0x14, 0x34, 0x36, 0xfc, 0xaa, 0x60, 0x42, 0x66, 0xf1, 0x15, 0xc0, 0x6b, 0x65, 0x4b, 0x33, 0x80, + 0x22, 0x6c, 0x4e, 0xdc, 0x37, 0x66, 0x82, 0x4e, 0x74, 0xab, 0xb4, 0x22, 0x5a, 0xe1, 0xdc, 0x22, + 0xba, 0x13, 0xd2, 0x99, 0xf7, 0x6f, 0x46, 0x2f, 0x11, 0x35, 0x60, 0xfc, 0xf5, 0x93, 0x1b, 0x63, + 0x1b, 0x61, 0xbd, 0xa7, 0x58, 0x39, 0x29, 0xb1, 0x6e, 0xe7, 0xb1, 0x88, 0x62, 0xb2, 0xfc, 0xfa, + 0x89, 0xa1, 0xd8, 0x10, 0xac, 0x8d, 0xeb, 0x98, 0xd3, 0xb7, 0x6f, 0x68, 0x25, 0x63, 0x5b, 0x80, + 0xe7, 0xc6, 0x95, 0x7c, 0x9b, 0x5d, 0x2b, 0xe9, 0xeb, 0xb3, 0x72, 0x83, 0x66, 0x5d, 0xcd, 0xa7, + 0x0c, 0x2d, 0x8c, 0x19, 0x99, 0x7c, 0x86, 0x56, 0x84, 0x24, 0x6d, 0x54, 0x98, 0x42, 0x1b, 0x15, + 0xaa, 0x74, 0x46, 0x21, 0x95, 0x3b, 0xed, 0x00, 0x70, 0x6a, 0x67, 0x06, 0xe4, 0x17, 0x61, 0x55, + 0x34, 0x00, 0x57, 0x79, 0x56, 0xe5, 0x88, 0x00, 0x7e, 0xf1, 0xc6, 0xe3, 0xdc, 0x45, 0x00, 0x67, + 0xbb, 0x99, 0x35, 0x01, 0x63, 0xb9, 0x12, 0x43, 0xeb, 0xc0, 0x12, 0x9d, 0x6b, 0xba, 0xaa, 0xda, + 0x7b, 0xe3, 0xfc, 0x78, 0xc1, 0x44, 0xf2, 0xbc, 0x10, 0xed, 0x95, 0xe3, 0x5d, 0xe2, 0x32, 0xb1, + 0x91, 0x5a, 0x21, 0xdc, 0x1a, 0xb5, 0x06, 0xf4, 0xbf, 0x1e, 0xed, 0xbf, 0x42, 0x3f, 0x93, 0xdc, + 0xbe, 0x7e, 0xfc, 0xfa, 0xc5, 0x94, 0x76, 0xf6, 0x50, 0x9e, 0xe5, 0xbc, 0x1e, 0xea, 0x1e, 0x41, + 0x32, 0xb4, 0x11, 0xc7, 0x0b, 0x60, 0x14, 0xa9, 0x00, 0x8b, 0xb6, 0x4a, 0xde, 0xff, 0x1d, 0x6c, + 0x4f, 0x97, 0xe3, 0xd6, 0x7a, 0x04, 0x72, 0x2d, 0x22, 0xa9, 0xd4, 0xa7, 0x78, 0x66, 0x18, 0xa1, + 0xb3, 0x80, 0x70, 0x47, 0x25, 0xee, 0xe7, 0x10, 0x54, 0x14, 0xe2, 0x5e, 0x0e, 0xd0, 0x33, 0x44, + 0xc9, 0xdd, 0x62, 0xab, 0xce, 0xc4, 0x6e, 0x6d, 0x84, 0xa1, 0xd5, 0x7a, 0xc9, 0xc5, 0x2c, 0xb5, + 0xe3, 0x13, 0x57, 0x53, 0xe0, 0xab, 0x46, 0x74, 0x03, 0xbc, 0xe0, 0xdd, 0x09, 0x0a, 0x4d, 0x09, + 0x29, 0xe4, 0x90, 0x77, 0x3a, 0xb6, 0x78, 0x7c, 0xc2, 0xb6, 0x6f, 0xc3, 0x0a, 0xe0, 0x9a, 0x8b, + 0x38, 0x67, 0x9d, 0x12, 0xdb, 0x91, 0x84, 0xc7, 0x71, 0xdf, 0x9d, 0x00, 0x27, 0xd5, 0x00, 0x27, + 0x1b, 0x08, 0x4e, 0x8e, 0x1a, 0x8b, 0x98, 0x8e, 0x7d, 0x0e, 0x6f, 0x8f, 0x41, 0xcb, 0x5d, 0xc9, + 0x1d, 0x17, 0xc0, 0x87, 0xcc, 0x72, 0xe7, 0xe9, 0x98, 0xbc, 0x0b, 0x77, 0xae, 0x00, 0x2b, 0x63, + 0x9f, 0xda, 0x00, 0x3b, 0xf1, 0x3e, 0xa5, 0x9d, 0xd5, 0xee, 0x5c, 0xa0, 0x31, 0x5c, 0x12, 0x5a, + 0xfd, 0x72, 0x22, 0xff, 0x2a, 0xb3, 0x09, 0x9c, 0x6d, 0x77, 0x42, 0x4e, 0x68, 0x53, 0x76, 0xb3, + 0x5d, 0xdb, 0x3d, 0xdc, 0x08, 0xbe, 0x45, 0xec, 0x73, 0x11, 0xdd, 0xa1, 0x18, 0xde, 0x2b, 0xc7, + 0xb3, 0xa6, 0x50, 0x2e, 0x83, 0x72, 0xa1, 0x87, 0xf1, 0x9c, 0x30, 0x96, 0xa1, 0x8e, 0x9b, 0x88, + 0x67, 0x31, 0xb4, 0x72, 0x2a, 0xc3, 0x6a, 0xcd, 0x4d, 0x11, 0x01, 0xef, 0x62, 0xe0, 0xbe, 0x4a, + 0x02, 0x12, 0xa1, 0x1c, 0xc4, 0xb5, 0x00, 0x89, 0xc0, 0x49, 0x5d, 0x31, 0x91, 0xf5, 0x31, 0x3c, + 0xeb, 0x61, 0xe5, 0x92, 0x66, 0xe0, 0xcd, 0xcd, 0x24, 0xab, 0xad, 0x41, 0xfb, 0x06, 0x1a, 0x8f, + 0x4d, 0x58, 0xf0, 0xb2, 0x7a, 0x9b, 0xb1, 0x00, 0x28, 0x31, 0xd1, 0xe3, 0x86, 0xd1, 0xf8, 0xab, + 0xfb, 0xdd, 0xcc, 0x44, 0x5f, 0x79, 0xf7, 0xe3, 0xb9, 0x65, 0xfc, 0xba, 0x0b, 0xbe, 0x72, 0xe8, + 0xcb, 0x0a, 0x5f, 0x16, 0x4f, 0x2f, 0xcb, 0x23, 0xd7, 0x9d, 0xe0, 0xca, 0xa5, 0xaf, 0x5c, 0x83, + 0x7b, 0x5a, 0x17, 0xb8, 0xac, 0x55, 0x97, 0x98, 0x49, 0x95, 0x34, 0xf7, 0xa3, 0xf6, 0xfa, 0x14, + 0x37, 0x3f, 0xeb, 0xf0, 0x55, 0xb2, 0x0c, 0x65, 0x49, 0xdf, 0x19, 0x2c, 0x04, 0x88, 0x72, 0x35, + 0xa3, 0x14, 0x21, 0x64, 0x20, 0x09, 0x83, 0x39, 0x6c, 0x2c, 0x56, 0xd7, 0x6f, 0x5d, 0x9b, 0xef, + 0x99, 0x20, 0x63, 0xbb, 0x38, 0xac, 0x79, 0xbe, 0xfb, 0x97, 0xcc, 0x21, 0xd1, 0x43, 0x38, 0x12, + 0x46, 0x73, 0xe1, 0xf8, 0xf8, 0xee, 0xc4, 0x5a, 0xc9, 0x74, 0x39, 0x22, 0xf2, 0x60, 0x16, 0x9e, + 0xa7, 0xa4, 0xe3, 0x1c, 0xc9, 0x2d, 0xe6, 0x59, 0xad, 0xe5, 0x99, 0xcc, 0x4f, 0x78, 0x9d, 0x43, + 0xdf, 0xf1, 0xc1, 0xc2, 0x18, 0xca, 0x35, 0x0a, 0x0e, 0xf2, 0x9c, 0x6d, 0x4b, 0x6f, 0x8d, 0xd6, + 0xff, 0xfe, 0x68, 0x1b, 0x13, 0xd6, 0x4b, 0xd3, 0xff, 0x6b, 0xf5, 0x40, 0xf9, 0x4c, 0x12, 0xb2, + 0x85, 0x32, 0xcb, 0x9d, 0xc1, 0x5c, 0xf1, 0x2e, 0x9d, 0x1b, 0x60, 0x1b, 0x6f, 0x9d, 0xb1, 0xc2, + 0x18, 0x9e, 0x4f, 0xe1, 0x67, 0x6d, 0x4e, 0x3c, 0xa3, 0xc2, 0x39, 0x53, 0x1e, 0xc6, 0x35, 0x4f, + 0x85, 0x31, 0x17, 0xed, 0xff, 0x74, 0x69, 0x27, 0xdb, 0x26, 0xc3, 0xa5, 0x60, 0x4d, 0x87, 0x4b, + 0xc1, 0x7a, 0x13, 0xb8, 0xd4, 0x7b, 0xb6, 0xc8, 0x95, 0x69, 0x71, 0x91, 0x22, 0xf1, 0x25, 0x66, + 0x8b, 0x5f, 0xb3, 0x86, 0x8c, 0xf0, 0x1b, 0x11, 0xe4, 0x1c, 0x7c, 0x27, 0xe7, 0x84, 0x7d, 0x80, + 0xbe, 0x93, 0xfd, 0x55, 0x94, 0xd2, 0x5f, 0x45, 0x6a, 0x7f, 0x15, 0xb1, 0x3b, 0xa0, 0x46, 0x78, + 0x53, 0x31, 0x07, 0xb0, 0x53, 0x25, 0xee, 0xc2, 0x61, 0x89, 0x8d, 0x23, 0x6a, 0x99, 0x76, 0xde, + 0x2e, 0xa1, 0x20, 0xb5, 0x9e, 0x5f, 0xde, 0xce, 0xef, 0x3f, 0xf7, 0xe2, 0x3e, 0x4d, 0x3e, 0xac, + 0x75, 0xbb, 0x84, 0xfc, 0x39, 0x8b, 0x12, 0x7b, 0x77, 0xb4, 0x4b, 0xab, 0x9d, 0xef, 0xc5, 0x95, + 0x17, 0x67, 0xd2, 0xa5, 0x43, 0x2d, 0x23, 0x89, 0x7b, 0xc2, 0xc6, 0xbb, 0xfa, 0x51, 0xdb, 0x83, + 0x3d, 0x86, 0x7b, 0x8e, 0x84, 0x19, 0xe9, 0xa6, 0x35, 0xdf, 0x03, 0x14, 0xac, 0x98, 0x1f, 0xed, + 0x51, 0xbc, 0x88, 0xf8, 0xde, 0x6e, 0x49, 0xf4, 0x2d, 0xc7, 0xcc, 0x07, 0x7e, 0x6f, 0xc1, 0x3c, + 0xf0, 0xec, 0xd5, 0x9c, 0xd5, 0x30, 0x24, 0x7a, 0x2e, 0x5d, 0xb9, 0x35, 0xe8, 0xc0, 0xd6, 0xd2, + 0x6e, 0xb0, 0x05, 0xf7, 0xc3, 0x26, 0x7c, 0x58, 0x26, 0xe4, 0x62, 0x16, 0x70, 0x6d, 0x41, 0x1a, + 0x34, 0x7f, 0xca, 0x96, 0xeb, 0x6e, 0xde, 0x72, 0x92, 0x24, 0xe9, 0xd3, 0xcf, 0x65, 0x01, 0x0d, + 0x9a, 0x6f, 0x73, 0xbf, 0x3d, 0xfa, 0xf6, 0x5b, 0xc7, 0x1f, 0xc7, 0xb7, 0x25, 0x9f, 0x4e, 0x51, + 0x1c, 0x17, 0xa7, 0x07, 0x06, 0xf6, 0x0d, 0xf4, 0x5c, 0x50, 0xef, 0xe8, 0x5f, 0x46, 0xea, 0x51, + 0x44, 0xbd, 0x19, 0x8d, 0xce, 0x0e, 0xe2, 0x0f, 0x75, 0xde, 0xae, 0xac, 0x2f, 0x2d, 0x1c, 0x57, + 0xf6, 0xe1, 0x79, 0x76, 0xc4, 0x08, 0xaa, 0xdf, 0x5f, 0xab, 0x6e, 0xab, 0xea, 0xbe, 0x4f, 0x75, + 0xe7, 0xa9, 0xee, 0x7b, 0x55, 0x77, 0x3e, 0xe0, 0x93, 0x59, 0xaa, 0xdf, 0x3d, 0xaa, 0xdf, 0x4c, + 0xa2, 0x74, 0xbb, 0xb2, 0x8a, 0x55, 0x77, 0x01, 0xe0, 0x91, 0xdc, 0x49, 0x78, 0x25, 0x37, 0x15, + 0xaf, 0x20, 0xcd, 0xa8, 0x9e, 0x0a, 0x49, 0xd1, 0x48, 0x72, 0xdd, 0xaf, 0xca, 0xc1, 0xea, 0x6d, + 0x9d, 0xac, 0x12, 0x38, 0x4c, 0x39, 0x71, 0x66, 0xfe, 0x60, 0x42, 0x43, 0xb4, 0x46, 0x65, 0xd6, + 0x00, 0xed, 0x7d, 0x1b, 0x2b, 0xb0, 0xa5, 0xda, 0x39, 0xa9, 0x00, 0xfc, 0x8f, 0xa7, 0xff, 0x6b, + 0xe6, 0x74, 0x30, 0x91, 0xb9, 0x20, 0x46, 0xce, 0x14, 0x31, 0x72, 0x31, 0x06, 0xde, 0x3f, 0x49, + 0xe7, 0x58, 0xf8, 0x19, 0x76, 0xb1, 0x02, 0x79, 0x16, 0x3c, 0x95, 0x4a, 0x16, 0x44, 0xb7, 0x03, + 0x45, 0xa6, 0x28, 0x4a, 0x3d, 0xdd, 0x9a, 0xf7, 0xae, 0xbb, 0x63, 0x1b, 0x5a, 0x75, 0x6f, 0x1c, + 0xb1, 0xc6, 0x16, 0xd2, 0x8d, 0x79, 0xd5, 0x07, 0x5a, 0x6d, 0x67, 0xd0, 0x07, 0x8b, 0xf8, 0xb9, + 0xe2, 0xbb, 0xdc, 0xa4, 0xe5, 0x65, 0x11, 0x0f, 0x01, 0x97, 0x7a, 0x9a, 0x38, 0xa5, 0xf6, 0x1d, + 0x74, 0x62, 0x77, 0x7e, 0x38, 0x6f, 0xb6, 0x9b, 0x6e, 0xc6, 0x77, 0x54, 0x5f, 0x64, 0x5d, 0xb3, + 0xeb, 0x99, 0x13, 0xbf, 0xa1, 0xde, 0x77, 0x51, 0xbd, 0x3b, 0x92, 0xf5, 0x4e, 0xdc, 0x12, 0xe8, + 0xf0, 0x1f, 0x88, 0x1f, 0x45, 0xbb, 0x8d, 0x2c, 0x18, 0xca, 0x49, 0x6b, 0xdb, 0x82, 0x84, 0xc5, + 0x93, 0xa4, 0x85, 0x9e, 0x2e, 0xbc, 0x7b, 0x71, 0x83, 0xd5, 0x9e, 0x42, 0x56, 0x11, 0xca, 0xd1, + 0xe8, 0x4a, 0xc8, 0xaf, 0x9f, 0xee, 0x59, 0x94, 0xa7, 0xf9, 0x75, 0x90, 0x9f, 0x31, 0xcd, 0xaf, + 0x99, 0xfc, 0x2c, 0x69, 0x7e, 0x6e, 0xf5, 0x8e, 0x46, 0xaa, 0x9f, 0xab, 0x71, 0x44, 0x75, 0xe1, + 0xce, 0xe4, 0xac, 0xc6, 0x11, 0xad, 0x77, 0x2b, 0x50, 0xc2, 0x58, 0xe0, 0x00, 0x0e, 0xcf, 0xa9, + 0xee, 0x3f, 0x85, 0xff, 0x9f, 0x3a, 0x66, 0xd3, 0xb3, 0x81, 0x74, 0x2d, 0x16, 0x5c, 0x57, 0x90, + 0x70, 0xce, 0xfe, 0xe4, 0x7d, 0x1e, 0x56, 0x28, 0xea, 0x22, 0xb7, 0xff, 0x66, 0xe7, 0xf1, 0x01, + 0xdc, 0x91, 0x19, 0x1c, 0x4a, 0xc6, 0xc2, 0x15, 0x18, 0x62, 0xbd, 0x46, 0x7c, 0x25, 0xe4, 0x92, + 0x16, 0x62, 0x81, 0x90, 0x67, 0xf1, 0x04, 0x53, 0xea, 0x49, 0x6b, 0x0a, 0xc1, 0x1b, 0x27, 0x37, + 0xfa, 0x96, 0x87, 0xf0, 0xde, 0x99, 0x6e, 0xb2, 0x3e, 0x0d, 0x08, 0xa9, 0x40, 0x69, 0x18, 0xf4, + 0xa3, 0x31, 0x7c, 0x3b, 0x70, 0xbd, 0xe6, 0xe8, 0xe5, 0x37, 0x62, 0x22, 0x9e, 0x1a, 0x2f, 0x0f, + 0x2b, 0x62, 0x2c, 0x8c, 0x78, 0x51, 0x44, 0x57, 0x54, 0x99, 0x3d, 0x48, 0x7c, 0xa6, 0xd1, 0x5e, + 0x6a, 0x9c, 0x40, 0xe8, 0x89, 0x31, 0xf4, 0x09, 0x0c, 0xb4, 0xc4, 0x4a, 0x57, 0xb1, 0xc2, 0xef, + 0xfd, 0xa0, 0xe7, 0x4c, 0xda, 0xfd, 0x1c, 0x37, 0xd2, 0x35, 0xb0, 0x12, 0x55, 0x4c, 0xba, 0x9f, + 0x53, 0x43, 0xf7, 0x76, 0x60, 0xad, 0x15, 0xb3, 0x26, 0xdd, 0xcf, 0x61, 0xec, 0x08, 0x59, 0x33, + 0x09, 0x02, 0x35, 0xd9, 0xd6, 0x15, 0x01, 0xee, 0xa1, 0x62, 0x52, 0x2b, 0x3a, 0xd0, 0x5a, 0x1f, + 0xc2, 0x81, 0x2d, 0x35, 0xdf, 0xcd, 0x64, 0xd9, 0x29, 0x8a, 0x7c, 0xf8, 0xd9, 0xc5, 0x6c, 0xed, + 0x9c, 0x45, 0x6c, 0x3d, 0x7c, 0x8f, 0x39, 0x4c, 0xec, 0xeb, 0x08, 0x6f, 0x37, 0x85, 0x42, 0xeb, + 0x24, 0x28, 0x2c, 0x53, 0xe7, 0x5d, 0xf6, 0xe4, 0x59, 0x45, 0x77, 0x58, 0x5d, 0x91, 0x38, 0xac, + 0x29, 0xa8, 0xdd, 0xc1, 0xa4, 0x9e, 0x16, 0xbb, 0x40, 0x7a, 0x24, 0xf8, 0x9d, 0x15, 0x65, 0x41, + 0x4d, 0xe3, 0x08, 0xda, 0x54, 0x85, 0x35, 0xa4, 0x12, 0xed, 0x34, 0x02, 0x6e, 0xbc, 0xdc, 0x32, + 0xa2, 0x6a, 0x44, 0x2f, 0xd0, 0xa4, 0x62, 0x84, 0xd9, 0x72, 0x6c, 0x1d, 0xd8, 0x9f, 0x5f, 0x1c, + 0xcc, 0x67, 0x81, 0x58, 0xcb, 0x40, 0x59, 0x07, 0x2b, 0xfc, 0xfe, 0x68, 0xcf, 0x45, 0xf5, 0xbc, + 0x17, 0x69, 0x9b, 0x41, 0x0b, 0x8a, 0xc0, 0x6f, 0x61, 0xcf, 0xd7, 0x44, 0x67, 0xfc, 0xe7, 0x4e, + 0xb5, 0x05, 0x35, 0xc0, 0xed, 0x5b, 0xa9, 0xfe, 0x35, 0xa2, 0x40, 0xbe, 0x2e, 0xfc, 0x46, 0x1b, + 0x06, 0x17, 0xeb, 0x67, 0x57, 0xf1, 0xf8, 0x74, 0xf7, 0x4c, 0x1f, 0xce, 0x87, 0x79, 0xaf, 0xbb, + 0xc7, 0x7d, 0x23, 0x86, 0x40, 0x3b, 0x94, 0xc0, 0xb9, 0x86, 0x5b, 0x46, 0xb4, 0xf3, 0x59, 0xfc, + 0xdc, 0x78, 0x05, 0xe2, 0x06, 0x84, 0x5e, 0xd1, 0x11, 0x28, 0x83, 0x11, 0x7d, 0xfa, 0x70, 0x98, + 0x45, 0x2e, 0x1f, 0xda, 0x20, 0x37, 0xdb, 0x8d, 0x2d, 0x83, 0x4e, 0x80, 0x81, 0xbd, 0xfb, 0x86, + 0x59, 0xc8, 0x10, 0x88, 0x89, 0x1e, 0xd9, 0x6d, 0x23, 0x88, 0x79, 0x33, 0x16, 0x99, 0xf1, 0x9b, + 0x97, 0x4e, 0x7f, 0x6f, 0x98, 0xcd, 0xa9, 0x06, 0xae, 0xee, 0x22, 0xab, 0x68, 0xde, 0xfc, 0xf4, + 0x61, 0xa0, 0x94, 0x72, 0x21, 0xbc, 0xe2, 0xed, 0xc3, 0xb6, 0x3b, 0x42, 0xfa, 0xa6, 0x01, 0xdb, + 0x00, 0xb4, 0x73, 0x18, 0xf3, 0x84, 0x76, 0x8e, 0xc1, 0x2a, 0xc7, 0xd8, 0x01, 0xf8, 0xda, 0x19, + 0x66, 0x51, 0x88, 0x89, 0xd0, 0x65, 0x2b, 0x35, 0xb2, 0x96, 0xd8, 0x3a, 0x65, 0xff, 0x00, 0xe4, + 0x3f, 0xf8, 0xfd, 0x43, 0x3d, 0x17, 0x9d, 0xba, 0xef, 0x1f, 0x0a, 0x3a, 0xe4, 0x3c, 0xcc, 0xc7, + 0xf6, 0xb5, 0x7c, 0xf6, 0xbd, 0xb7, 0x56, 0xea, 0xc5, 0x7a, 0x3b, 0xf5, 0x98, 0x6c, 0x8a, 0xb0, + 0xd2, 0x7e, 0x45, 0x89, 0x42, 0x6f, 0xee, 0x8f, 0xf5, 0x9c, 0x5b, 0x77, 0xf9, 0xf0, 0x06, 0xb1, + 0x88, 0xb9, 0x42, 0x79, 0xfc, 0xfe, 0x50, 0x2e, 0xe3, 0x37, 0x78, 0x37, 0x0f, 0xa1, 0x36, 0x82, + 0x2e, 0x5d, 0xd8, 0x42, 0xb7, 0xaa, 0x99, 0x44, 0xf2, 0x13, 0x84, 0x61, 0xa9, 0xd4, 0xc9, 0xcf, + 0x15, 0x6c, 0xd6, 0x34, 0x91, 0x60, 0x2d, 0x66, 0x03, 0xb1, 0x8f, 0xa1, 0xeb, 0x6e, 0x7f, 0x73, + 0x88, 0xda, 0xb5, 0xc7, 0x49, 0xed, 0x02, 0xbf, 0x8a, 0xd9, 0x07, 0x51, 0x72, 0x82, 0x3a, 0x9e, + 0x0a, 0x0a, 0x12, 0x5a, 0xa4, 0x2c, 0x30, 0xa6, 0xd4, 0xbf, 0xe1, 0x59, 0x5f, 0x44, 0x3d, 0x3b, + 0xf0, 0xb5, 0xf0, 0x22, 0xf3, 0x7e, 0x71, 0x11, 0x73, 0xe2, 0xf7, 0xbd, 0xfd, 0xac, 0x80, 0x15, + 0xcc, 0xc1, 0x31, 0xf3, 0xc2, 0xff, 0x7c, 0xd6, 0x00, 0xcc, 0xe8, 0xdd, 0xa8, 0x11, 0x15, 0xb0, + 0xe6, 0xf2, 0x6a, 0x2e, 0x87, 0x7d, 0xf8, 0x3e, 0x84, 0xc4, 0x15, 0x9e, 0x55, 0xac, 0x6d, 0x8e, + 0x97, 0x35, 0xdf, 0xd7, 0xcb, 0x6c, 0xac, 0xa5, 0x14, 0xb8, 0x5f, 0xef, 0xe8, 0x07, 0xc3, 0x03, + 0x40, 0x81, 0xdd, 0x80, 0xe1, 0x0d, 0xbe, 0x42, 0xf6, 0x15, 0x3e, 0x8a, 0xd7, 0x77, 0x25, 0x47, + 0x11, 0xf7, 0x18, 0xfc, 0x4b, 0x49, 0x93, 0xd9, 0xb8, 0xa7, 0x5b, 0x89, 0x7f, 0xbe, 0x9f, 0x7d, + 0x5e, 0x19, 0x57, 0x75, 0x72, 0x19, 0xbc, 0xdd, 0xe0, 0xfb, 0x5d, 0xba, 0xa5, 0x84, 0xb2, 0x53, + 0x37, 0x69, 0xf7, 0xe1, 0xe7, 0x1d, 0xae, 0x92, 0x0c, 0xa6, 0x9b, 0x19, 0xeb, 0x3f, 0x52, 0x3e, + 0x41, 0x88, 0x86, 0x58, 0x66, 0x7e, 0xd3, 0xdb, 0x0e, 0x6b, 0x3a, 0xe4, 0x53, 0xad, 0x7c, 0x02, + 0xff, 0xf5, 0x4a, 0x5c, 0xcd, 0xcd, 0x24, 0xa1, 0x2d, 0x3b, 0x3d, 0x59, 0xbe, 0x3a, 0x10, 0x47, + 0x69, 0x86, 0x1d, 0xfa, 0x30, 0x8c, 0xfc, 0x1f, 0xd0, 0x09, 0x85, 0x4c, 0x68, 0x06, 0xb8, 0xd8, + 0x1b, 0x6b, 0xb7, 0x12, 0x17, 0x97, 0x45, 0x7c, 0x9d, 0x6e, 0xf3, 0xc0, 0x7b, 0xc3, 0x11, 0xeb, + 0xf1, 0x01, 0xd2, 0x3e, 0x00, 0x0d, 0xb6, 0xb1, 0xf3, 0x8f, 0x7f, 0xbe, 0x4a, 0xb9, 0xfe, 0x79, + 0x77, 0x32, 0x5f, 0xa8, 0xe5, 0x27, 0x28, 0x89, 0xa4, 0x7c, 0x9f, 0xc5, 0x3a, 0xa2, 0x8c, 0x40, + 0xf4, 0xd9, 0xba, 0x99, 0x39, 0x9c, 0x62, 0xbf, 0x50, 0x34, 0xb5, 0xc4, 0x54, 0xa9, 0x1e, 0xe3, + 0x52, 0x3d, 0x4d, 0x76, 0x9a, 0x90, 0x9b, 0xf2, 0x76, 0xda, 0xb4, 0x93, 0x92, 0xf3, 0x8a, 0x95, + 0x89, 0xb1, 0x45, 0xba, 0x0d, 0xa8, 0xf7, 0xd4, 0xee, 0x46, 0x0a, 0x19, 0x60, 0x2f, 0xcf, 0xec, + 0x64, 0x2b, 0x99, 0x6e, 0x85, 0xc9, 0xe8, 0x04, 0x0c, 0x22, 0x84, 0x74, 0x81, 0xc1, 0x40, 0xac, + 0x71, 0xf8, 0xb5, 0x58, 0xcf, 0x98, 0x6f, 0x30, 0x04, 0xf8, 0xf2, 0xf8, 0xe0, 0xf1, 0x58, 0x2a, + 0x0e, 0x72, 0xc4, 0x42, 0xcd, 0x4f, 0x1f, 0xde, 0xfa, 0x96, 0xec, 0x35, 0x17, 0x52, 0xca, 0x4a, + 0x63, 0x21, 0xa5, 0xe4, 0xf2, 0x61, 0x7d, 0x0a, 0x1f, 0x9b, 0x9d, 0xc2, 0xc7, 0x1a, 0x90, 0x7a, + 0x72, 0x36, 0xd9, 0x8c, 0x27, 0x87, 0x4f, 0x22, 0x3f, 0x3b, 0x6d, 0x6e, 0x0c, 0xe6, 0xfe, 0x70, + 0xe0, 0xf1, 0xc6, 0x27, 0x5e, 0x7b, 0xbc, 0x67, 0x9f, 0xac, 0xa3, 0xd3, 0xb7, 0x09, 0x09, 0x25, + 0xb6, 0x45, 0xd2, 0x25, 0x5b, 0x11, 0xe7, 0xf7, 0xbd, 0xcb, 0xca, 0xb0, 0x0d, 0xf5, 0x51, 0x56, + 0x2e, 0x88, 0x50, 0x86, 0x3c, 0x0b, 0xe8, 0x32, 0x9d, 0x99, 0xb1, 0x95, 0x2b, 0x2c, 0xbc, 0xfe, + 0x41, 0x23, 0xa7, 0xab, 0x65, 0x53, 0x60, 0xa0, 0x11, 0x4f, 0xa7, 0xbf, 0x13, 0x46, 0x39, 0xf7, + 0xa7, 0x6a, 0x9e, 0x40, 0x2d, 0x55, 0x88, 0xf6, 0x62, 0x92, 0x7d, 0x9a, 0x48, 0x6b, 0xde, 0x15, + 0x3e, 0xca, 0x30, 0xb6, 0x0b, 0x95, 0x2b, 0x54, 0x1e, 0x5a, 0x03, 0xfd, 0xd8, 0xa6, 0xe9, 0xe7, + 0x61, 0xec, 0x58, 0x29, 0x96, 0x09, 0x09, 0x2a, 0x98, 0x58, 0x0f, 0x65, 0xd6, 0xa8, 0x3d, 0x56, + 0xa1, 0x96, 0x58, 0x4a, 0x5c, 0x82, 0xfe, 0xd7, 0x8b, 0xbc, 0xd5, 0x9e, 0x6a, 0xa2, 0x14, 0xb3, + 0x89, 0x83, 0xde, 0x40, 0xfe, 0x06, 0x55, 0x92, 0x32, 0x2d, 0xac, 0xec, 0xd9, 0x00, 0xf8, 0x7d, + 0x93, 0xdc, 0x8f, 0x35, 0xdb, 0x3f, 0xd0, 0xb3, 0x5f, 0x8e, 0x98, 0x2d, 0x5a, 0xcd, 0x15, 0x25, + 0x68, 0x54, 0xfd, 0x2f, 0xbe, 0xf7, 0x38, 0x70, 0xf0, 0xf7, 0xe4, 0xeb, 0xf9, 0x5e, 0x0c, 0xe4, + 0x78, 0x4f, 0x3e, 0xcf, 0x71, 0x88, 0xfc, 0x0d, 0xbf, 0xde, 0x34, 0x1c, 0x1b, 0xbe, 0x27, 0x7f, + 0x1a, 0xd4, 0xf6, 0x0f, 0x78, 0xbe, 0xfa, 0x8f, 0x2e, 0xff, 0x16, 0xf8, 0xfe, 0x54, 0xac, 0xf1, + 0x76, 0x28, 0x0a, 0x7c, 0x27, 0x21, 0xe9, 0x0a, 0xc1, 0x3b, 0x6a, 0xb4, 0x0a, 0x40, 0x7b, 0x9c, + 0x1c, 0x5e, 0xf4, 0x05, 0xca, 0x79, 0x3a, 0xf5, 0x22, 0xbc, 0x37, 0x5c, 0xf5, 0x3b, 0xa3, 0x0e, + 0xb8, 0x91, 0x75, 0x38, 0x6b, 0x88, 0x7a, 0x81, 0x39, 0x90, 0x32, 0x7b, 0x72, 0x95, 0x71, 0xf8, + 0x2f, 0x27, 0xa0, 0x93, 0xe6, 0x10, 0xbc, 0x65, 0x92, 0xc0, 0x92, 0x56, 0x9c, 0x04, 0x84, 0xae, + 0x02, 0x9c, 0x8d, 0x30, 0x6a, 0x4f, 0xc2, 0xa8, 0x7a, 0x8e, 0xb9, 0x5b, 0xb9, 0xec, 0xea, 0x56, + 0xae, 0xaa, 0x63, 0xf0, 0x61, 0xca, 0x59, 0x3c, 0x8b, 0x56, 0xd6, 0xc2, 0x8f, 0x94, 0x8f, 0xf1, + 0xc6, 0x52, 0x52, 0xa7, 0x17, 0x94, 0x7b, 0x17, 0x95, 0x6e, 0x51, 0xae, 0x91, 0xae, 0x42, 0xac, + 0x8f, 0x51, 0xf9, 0xdd, 0xe7, 0xbb, 0xd9, 0xed, 0xca, 0x15, 0x51, 0xe7, 0x75, 0x7b, 0x47, 0x61, + 0xde, 0xfc, 0x51, 0xd4, 0x9d, 0x8f, 0xc1, 0xfb, 0xd3, 0xcf, 0x7b, 0x94, 0x3f, 0x91, 0x56, 0x28, + 0x4b, 0xf2, 0x06, 0xcf, 0xf5, 0xcd, 0xa4, 0x53, 0x4f, 0xab, 0xb5, 0x39, 0x51, 0xeb, 0x1a, 0x9c, + 0xaf, 0x74, 0x8a, 0x8e, 0x76, 0x3f, 0xf8, 0xe9, 0x14, 0x56, 0x89, 0xfc, 0x2f, 0xd0, 0x2f, 0xf6, + 0x45, 0x5c, 0xc3, 0x18, 0x62, 0x81, 0xdb, 0x54, 0x2c, 0x00, 0x1c, 0xcd, 0x17, 0x00, 0x0b, 0xb0, + 0x59, 0x5f, 0xc0, 0xf5, 0x59, 0xf4, 0x6c, 0x85, 0xb7, 0x99, 0x39, 0x12, 0xd8, 0xe0, 0x36, 0x7e, + 0xdf, 0x0a, 0x25, 0x95, 0xe3, 0x63, 0x2a, 0x36, 0x58, 0x40, 0x90, 0x9f, 0x1d, 0xc9, 0x42, 0x3b, + 0x38, 0x40, 0xdb, 0x58, 0xf7, 0xc6, 0x82, 0x25, 0xaa, 0x54, 0x27, 0x39, 0x4b, 0xa6, 0xe3, 0x2c, + 0x21, 0x19, 0xcf, 0x0c, 0x72, 0x9b, 0x7e, 0xfd, 0x78, 0x6c, 0xc0, 0x11, 0x4b, 0x39, 0x3b, 0xcc, + 0xb4, 0x73, 0x48, 0x0f, 0x8c, 0xa8, 0x52, 0x58, 0x2b, 0xe0, 0xd8, 0x30, 0xb4, 0xe6, 0x0c, 0xfc, + 0xf0, 0x54, 0xe1, 0x9b, 0x40, 0x7f, 0x8c, 0x4a, 0x46, 0x6d, 0x57, 0xe3, 0xee, 0x0b, 0xb0, 0x5a, + 0x3b, 0xe9, 0x1e, 0x68, 0x89, 0xc4, 0x80, 0x92, 0x1d, 0x73, 0x38, 0xf0, 0xe4, 0x24, 0x5a, 0xd2, + 0x22, 0xcd, 0x3c, 0xf4, 0xbd, 0x2c, 0x49, 0x1d, 0x93, 0x76, 0x24, 0xbc, 0x61, 0x00, 0x54, 0xe7, + 0x91, 0xd0, 0x4c, 0xb1, 0x50, 0x98, 0x47, 0xf7, 0xc9, 0x2d, 0x50, 0xeb, 0x54, 0xeb, 0x9b, 0x51, + 0x0c, 0x69, 0x8a, 0xe1, 0x99, 0x99, 0xf6, 0xae, 0xe3, 0xb1, 0xd2, 0x2f, 0x1b, 0x0d, 0xfe, 0x6b, + 0x30, 0x0b, 0x4c, 0x2c, 0x0f, 0x70, 0x76, 0x09, 0xab, 0xf3, 0xe2, 0xbe, 0x02, 0xf2, 0x98, 0xcb, + 0xe5, 0xf9, 0x89, 0xef, 0xff, 0x25, 0x97, 0x24, 0xbe, 0x7f, 0x28, 0xdb, 0xa4, 0x45, 0xcc, 0x48, + 0xf5, 0xf5, 0xd2, 0x89, 0x07, 0xee, 0x7f, 0x51, 0x36, 0x69, 0xdf, 0xbf, 0xd4, 0xab, 0x37, 0x5d, + 0x83, 0x24, 0xc9, 0xd6, 0xab, 0x50, 0xf4, 0x55, 0xc7, 0x57, 0x1b, 0x69, 0x87, 0x28, 0x3e, 0xea, + 0x7d, 0xaf, 0x92, 0x76, 0x88, 0x9c, 0xdd, 0x64, 0x51, 0xd4, 0x4d, 0x33, 0xf9, 0x60, 0x52, 0x17, + 0x1c, 0xcc, 0xb5, 0x4d, 0x21, 0x96, 0x75, 0x1c, 0xf8, 0x50, 0x3d, 0xde, 0xd4, 0x86, 0x79, 0x63, + 0x89, 0x2c, 0xd9, 0x3b, 0xd4, 0xce, 0xb2, 0x0e, 0x3a, 0xba, 0x98, 0x11, 0x2d, 0xb4, 0x06, 0x86, + 0x61, 0xf5, 0x09, 0xa7, 0x5a, 0x84, 0xf5, 0x94, 0x79, 0xc3, 0xf7, 0x75, 0x41, 0x6b, 0x46, 0xe7, + 0xe0, 0x6d, 0xc1, 0x53, 0xf4, 0xff, 0x0c, 0xfc, 0x2f, 0x65, 0x6f, 0xc2, 0xda, 0x74, 0x04, 0x7e, + 0x27, 0x89, 0x3a, 0x3b, 0x4e, 0xff, 0x8f, 0xd2, 0xff, 0x63, 0x40, 0xed, 0x9c, 0x03, 0x1e, 0x2e, + 0x56, 0x7f, 0x51, 0x58, 0x40, 0xb5, 0x2f, 0x93, 0xcc, 0x74, 0x23, 0x72, 0x8f, 0x7f, 0xbb, 0xd3, + 0x84, 0x52, 0x4f, 0x61, 0x09, 0xf9, 0x57, 0x48, 0x7a, 0xff, 0x76, 0x88, 0x29, 0xc3, 0xaf, 0x2d, + 0x9c, 0x05, 0x3d, 0xde, 0xe6, 0x29, 0x64, 0x17, 0xe6, 0xf4, 0x23, 0xc2, 0x12, 0x2e, 0xaa, 0xef, + 0x8f, 0x81, 0x87, 0xf4, 0xd2, 0x5e, 0x23, 0x69, 0xef, 0xc8, 0xd2, 0x61, 0xfd, 0xd7, 0xb3, 0x99, + 0x16, 0xf3, 0x63, 0x10, 0xfc, 0xa7, 0x95, 0xfa, 0xf5, 0x86, 0xba, 0x6c, 0xa8, 0xfb, 0x47, 0xf1, + 0x43, 0x62, 0x76, 0xca, 0x8d, 0xb1, 0x3f, 0xb4, 0x30, 0x8f, 0x33, 0x7e, 0x08, 0xfd, 0x9f, 0x3e, + 0x2c, 0x17, 0x58, 0x3e, 0x07, 0x58, 0x51, 0x0c, 0xe5, 0xc2, 0x7f, 0x5b, 0x30, 0xb7, 0xea, 0x0f, + 0xc3, 0xec, 0x8e, 0x7e, 0x26, 0xc6, 0x0f, 0xc9, 0x86, 0xc0, 0xf0, 0x81, 0xe1, 0x9e, 0xf3, 0x62, + 0x76, 0x53, 0xac, 0x0a, 0xe2, 0xca, 0xf6, 0x5c, 0xa0, 0x3b, 0xe8, 0xae, 0x0e, 0xde, 0xd8, 0xb1, + 0x05, 0x4d, 0x55, 0x7f, 0x30, 0xaa, 0x71, 0xc3, 0x8c, 0x62, 0x2c, 0x80, 0xf1, 0x56, 0x60, 0xec, + 0x4f, 0xcb, 0x1f, 0x57, 0x43, 0x58, 0xee, 0xdc, 0xf8, 0x21, 0x88, 0x59, 0x14, 0xb4, 0xa1, 0xdd, + 0xec, 0x03, 0x03, 0xbd, 0xd6, 0xea, 0x3f, 0xe4, 0x33, 0xf3, 0x5c, 0x56, 0x14, 0x3f, 0x14, 0x34, + 0x5a, 0x26, 0x58, 0x91, 0x28, 0xc8, 0xf8, 0x16, 0x65, 0x9d, 0xe5, 0x07, 0x81, 0xd8, 0x81, 0x58, + 0xcf, 0x61, 0xcb, 0x41, 0x98, 0x4b, 0xb0, 0x8e, 0x47, 0xb2, 0xa3, 0x4c, 0xd5, 0x22, 0x55, 0xe0, + 0x20, 0x0e, 0x40, 0x67, 0x0a, 0xeb, 0x07, 0x5e, 0x02, 0x7e, 0x12, 0x4a, 0x72, 0x0c, 0x13, 0x87, + 0xac, 0xe9, 0x3b, 0xd0, 0x7b, 0x5e, 0x42, 0xab, 0x11, 0xd0, 0x73, 0x0b, 0xa2, 0x07, 0x4f, 0x7d, + 0xd3, 0xa1, 0xea, 0x21, 0x9b, 0x78, 0x97, 0x38, 0x87, 0x98, 0xef, 0x65, 0xe5, 0x20, 0x42, 0x30, + 0x50, 0x9c, 0x47, 0x6a, 0x60, 0x74, 0xc0, 0x3d, 0xba, 0xec, 0x07, 0xde, 0x81, 0x9a, 0xaa, 0xfb, + 0xaa, 0xd8, 0x49, 0x70, 0xbd, 0xc1, 0xed, 0x72, 0x43, 0xf8, 0x71, 0x5f, 0x55, 0x68, 0x96, 0xcf, + 0x4d, 0xa7, 0x2c, 0x27, 0x70, 0x2c, 0xce, 0x15, 0xa5, 0x42, 0xd8, 0x7a, 0x98, 0x67, 0xeb, 0x05, + 0x48, 0x71, 0x58, 0xcd, 0xef, 0x28, 0xe4, 0x77, 0x14, 0xdc, 0x47, 0x55, 0xf7, 0x31, 0x70, 0x1f, + 0x03, 0xf7, 0x99, 0x65, 0xda, 0xc9, 0xcb, 0x73, 0x35, 0x30, 0xea, 0xe0, 0x73, 0x4e, 0xf3, 0x11, + 0x62, 0x35, 0x00, 0x03, 0x62, 0xb7, 0x72, 0x9e, 0xc6, 0xcd, 0x2e, 0xa2, 0x7c, 0xe1, 0x4c, 0x4f, + 0x81, 0xb8, 0x78, 0x36, 0xce, 0x50, 0x82, 0xeb, 0x73, 0xcd, 0xe9, 0xa5, 0x8a, 0xc5, 0xca, 0x85, + 0x90, 0x99, 0x4e, 0x34, 0xaa, 0x27, 0x8f, 0xc1, 0xe7, 0x7d, 0xf2, 0xd1, 0x6b, 0x3e, 0x50, 0xc6, + 0xf1, 0x44, 0x19, 0x32, 0x94, 0x21, 0x83, 0xcf, 0xa9, 0x84, 0x4f, 0x1b, 0xf8, 0xb4, 0x25, 0xec, + 0xb6, 0xea, 0xe7, 0x34, 0xb2, 0x36, 0x67, 0xb1, 0x72, 0x39, 0x54, 0xa1, 0xe6, 0x00, 0x3d, 0x09, + 0x70, 0x1f, 0x6b, 0x4b, 0xb6, 0x7c, 0xdd, 0xa4, 0x96, 0xe7, 0x00, 0x45, 0xb8, 0x8a, 0x5d, 0x48, + 0xd4, 0x40, 0xb3, 0x0b, 0x0b, 0x79, 0x09, 0x17, 0xc1, 0xf5, 0x69, 0xc2, 0xf5, 0xb1, 0xa6, 0x09, + 0x6e, 0xe2, 0x45, 0xd9, 0x5d, 0x08, 0x38, 0xcc, 0x55, 0x8b, 0xdc, 0xbf, 0x0d, 0x6d, 0x6f, 0xff, + 0xe7, 0xb9, 0x6f, 0x39, 0x6e, 0x33, 0x6c, 0x50, 0x94, 0xf8, 0xa1, 0x75, 0xd9, 0x75, 0x7a, 0x0c, + 0x89, 0xbb, 0xc4, 0xc5, 0xcd, 0x1b, 0x66, 0x67, 0xa9, 0x6d, 0xdf, 0x91, 0x5e, 0x6e, 0x24, 0xdb, + 0xae, 0xe6, 0xa6, 0xe4, 0xf9, 0x1e, 0x0b, 0xce, 0x94, 0x6d, 0x89, 0x1a, 0xfe, 0x24, 0x6d, 0xf6, + 0x13, 0x1f, 0x71, 0xcd, 0xd8, 0x32, 0xa2, 0xd2, 0x3a, 0x95, 0xf1, 0xe7, 0x12, 0xf7, 0x6e, 0xe8, + 0x2c, 0x0d, 0xde, 0x37, 0x41, 0xfe, 0x30, 0xeb, 0xbd, 0xa8, 0x61, 0xdf, 0xe3, 0xed, 0xfe, 0xb7, + 0xdf, 0x2a, 0xfd, 0xf2, 0x0e, 0x8e, 0x95, 0x72, 0x80, 0xaa, 0x9c, 0xc9, 0x44, 0xe6, 0x80, 0x79, + 0x5c, 0x7e, 0x0f, 0x40, 0x85, 0x5c, 0x32, 0xbb, 0x4a, 0x90, 0x65, 0x27, 0xfc, 0x6f, 0x93, 0x6d, + 0xc0, 0x2d, 0x9c, 0x93, 0x0b, 0xe0, 0x3b, 0x26, 0xe7, 0x49, 0x82, 0xb7, 0x43, 0x58, 0x20, 0x1b, + 0xe8, 0x9d, 0x38, 0x09, 0xce, 0xef, 0xe0, 0x48, 0x3a, 0x28, 0xc3, 0x88, 0xba, 0x73, 0xff, 0xe3, + 0xaf, 0xa3, 0xff, 0x6d, 0xdf, 0x00, 0x40, 0xad, 0xa7, 0x9b, 0x09, 0x26, 0xf2, 0x79, 0xd0, 0x5a, + 0xc9, 0xee, 0x24, 0xbf, 0x92, 0xee, 0xb5, 0xe4, 0xf3, 0x4d, 0xd2, 0xbe, 0x81, 0x3e, 0x05, 0xdd, + 0x85, 0xe8, 0xf3, 0xce, 0x74, 0xd2, 0xca, 0x85, 0x3e, 0x3c, 0x4d, 0x60, 0xdf, 0x00, 0xa4, 0x8f, + 0xe3, 0xf7, 0xb9, 0x5f, 0x5a, 0x51, 0x3f, 0x98, 0x96, 0x5b, 0x55, 0xd4, 0x82, 0xf1, 0x84, 0x77, + 0xbb, 0x73, 0xc8, 0xfd, 0x55, 0x08, 0xbd, 0x1d, 0xf0, 0xf2, 0x87, 0xe4, 0xfa, 0x7a, 0xf4, 0x0e, + 0x0a, 0x25, 0x6b, 0x4c, 0xff, 0xf1, 0x0f, 0xa8, 0x61, 0x4c, 0x46, 0xbd, 0x12, 0xe8, 0xba, 0x3d, + 0x9a, 0x4f, 0x61, 0x3b, 0xbb, 0xe7, 0x93, 0xbb, 0x03, 0x42, 0xef, 0x22, 0x9f, 0xed, 0xe4, 0x7e, + 0x01, 0x68, 0x21, 0x26, 0x3c, 0x41, 0xdf, 0x5e, 0xd2, 0xef, 0x85, 0x61, 0xeb, 0xc9, 0x8d, 0x5a, + 0xc3, 0xfe, 0x0a, 0x2d, 0xa1, 0x90, 0xcb, 0x19, 0x9d, 0x49, 0x61, 0x0f, 0x93, 0xab, 0x98, 0xd2, + 0x05, 0xe8, 0x7b, 0x2f, 0xc4, 0xfb, 0x3c, 0x85, 0x79, 0xc8, 0xdd, 0x07, 0xee, 0x02, 0xd9, 0x4f, + 0xdf, 0x7a, 0xf3, 0x80, 0xaa, 0x03, 0xcc, 0xd1, 0xc3, 0xd8, 0x66, 0x6a, 0x5b, 0x3c, 0xfa, 0x20, + 0xc5, 0xb6, 0x76, 0x97, 0x53, 0x9c, 0x13, 0xa4, 0x09, 0x6c, 0x80, 0xf6, 0xa5, 0x30, 0xfc, 0x4f, + 0xe0, 0x0e, 0xa0, 0x9b, 0x5d, 0xa1, 0xf0, 0xc7, 0xc0, 0xfd, 0x85, 0x7d, 0x03, 0x40, 0x25, 0x9d, + 0x83, 0xda, 0xbc, 0x43, 0x71, 0x7e, 0x45, 0xf9, 0xa2, 0xd5, 0xe5, 0x63, 0x3d, 0x56, 0x8a, 0xb5, + 0x9f, 0x7c, 0xde, 0x85, 0x58, 0xaf, 0x41, 0x2c, 0xb2, 0x36, 0x75, 0xee, 0x3d, 0xf2, 0x43, 0x9d, + 0x61, 0x3b, 0xc9, 0x7d, 0x99, 0xdc, 0x1f, 0x43, 0x9c, 0x2d, 0x10, 0x67, 0x1b, 0xa5, 0xfb, 0x21, + 0xfa, 0xe9, 0xb3, 0xd0, 0x02, 0x6d, 0xcf, 0x02, 0x1a, 0x17, 0x1b, 0xc5, 0xba, 0x1e, 0x8a, 0xf4, + 0x58, 0x28, 0x86, 0x89, 0xdc, 0x97, 0x83, 0xcb, 0x65, 0x99, 0xc2, 0xf3, 0x29, 0x05, 0x0b, 0xf1, + 0xd6, 0x4f, 0x90, 0x4b, 0x17, 0x5c, 0x20, 0xf3, 0xd6, 0x53, 0x99, 0xfa, 0x69, 0xa1, 0x72, 0x35, + 0xf5, 0x2f, 0xc9, 0x6d, 0x08, 0xce, 0x92, 0x6d, 0xe4, 0xfe, 0x1d, 0xb9, 0x4d, 0x21, 0xaa, 0xf5, + 0x3b, 0x2e, 0x74, 0x19, 0x75, 0x21, 0x03, 0xb9, 0xee, 0xa1, 0xb3, 0x1d, 0x5f, 0xbb, 0xf9, 0x89, + 0x30, 0x3c, 0x19, 0xe4, 0xf9, 0x2e, 0xdd, 0xb8, 0x9a, 0xcb, 0x9e, 0xe7, 0x92, 0xc3, 0x82, 0x83, + 0xaa, 0xb4, 0x36, 0x28, 0x72, 0xe9, 0xa4, 0x68, 0xab, 0xaa, 0xfa, 0x2d, 0x9b, 0x6d, 0x33, 0x1a, + 0x05, 0x9c, 0xa3, 0xf0, 0x6d, 0xb3, 0x61, 0xc8, 0x1d, 0x7b, 0x87, 0x7b, 0x3d, 0x55, 0x97, 0x01, + 0xaf, 0x5b, 0x58, 0x53, 0xb0, 0x02, 0xe8, 0xd5, 0x46, 0xa4, 0x53, 0xe1, 0x3d, 0x8d, 0xe9, 0x82, + 0x4e, 0x78, 0x0b, 0x2c, 0x2b, 0x28, 0x9a, 0x9d, 0xca, 0xeb, 0x4c, 0x1f, 0xcc, 0x0f, 0x33, 0xf8, + 0xba, 0xc4, 0xb2, 0x83, 0xb9, 0x28, 0xe7, 0xa6, 0x13, 0x55, 0x31, 0xcd, 0x82, 0x89, 0x46, 0x1b, + 0xdd, 0x8f, 0xf6, 0xd1, 0x2b, 0x21, 0xcc, 0x0d, 0x34, 0x52, 0x8d, 0x5d, 0x62, 0x8d, 0xb4, 0xaf, + 0x08, 0xdc, 0x37, 0xa4, 0x11, 0xed, 0x6e, 0x58, 0x4b, 0x67, 0x3b, 0xa6, 0x1b, 0xb3, 0xb0, 0x1e, + 0x68, 0x09, 0x1b, 0xb9, 0xa6, 0xc2, 0xe9, 0x67, 0x77, 0x19, 0x99, 0xcb, 0xb8, 0xae, 0xf4, 0xcc, + 0x48, 0xed, 0xb8, 0x62, 0x5d, 0x7c, 0x89, 0xb9, 0x16, 0xd1, 0x9e, 0x3f, 0x8c, 0xc9, 0x79, 0xb1, + 0x0e, 0x6a, 0x5a, 0xda, 0xa2, 0x3b, 0xf1, 0x23, 0x8b, 0xe5, 0xeb, 0x6c, 0x16, 0xcb, 0xb3, 0x7a, + 0x37, 0x94, 0x55, 0x7f, 0xff, 0xdf, 0x83, 0x1e, 0x5b, 0x1d, 0xb8, 0xef, 0x69, 0x11, 0xf2, 0x5c, + 0x40, 0x5b, 0x71, 0xbf, 0x12, 0xe0, 0x45, 0xf0, 0x4c, 0x8b, 0x7a, 0x9a, 0x7f, 0xef, 0xab, 0xac, + 0xb1, 0x57, 0x0f, 0xb3, 0xb2, 0x51, 0x12, 0x24, 0xfc, 0x8f, 0x1c, 0xc2, 0x3e, 0xf5, 0xe6, 0x1c, + 0x8c, 0x39, 0xac, 0x7a, 0xd5, 0xc1, 0x55, 0x62, 0x9d, 0xb9, 0x94, 0xd5, 0xb6, 0x08, 0xc1, 0x70, + 0x62, 0x5f, 0x5b, 0x0f, 0xd8, 0x2e, 0xdc, 0x62, 0x4c, 0x39, 0x23, 0xa7, 0x07, 0xaa, 0xa3, 0xc1, + 0x56, 0xe7, 0xfd, 0x5a, 0x0b, 0xdf, 0xbd, 0x2a, 0xe0, 0xb7, 0x4e, 0x28, 0x6e, 0x8e, 0x58, 0x07, + 0xb1, 0xf3, 0x21, 0xb6, 0xc4, 0xdc, 0xfc, 0x0e, 0xb6, 0x4a, 0xed, 0xba, 0x60, 0x95, 0xd6, 0xa3, + 0x8d, 0x6b, 0xbc, 0x8f, 0x27, 0xe3, 0x2a, 0xdb, 0x14, 0x34, 0xd9, 0xea, 0xcc, 0xf7, 0xb0, 0xe6, + 0x16, 0x21, 0x94, 0x73, 0x76, 0x40, 0xcc, 0x5e, 0x16, 0xdb, 0xf3, 0x2a, 0x73, 0xb5, 0x33, 0x25, + 0x5f, 0xd3, 0x7a, 0x83, 0x34, 0x1c, 0xf4, 0xa6, 0x13, 0x7b, 0xb3, 0xb0, 0x57, 0x30, 0x3a, 0x7b, + 0x05, 0x73, 0xa1, 0x24, 0x58, 0x1c, 0x92, 0x60, 0xc5, 0x9b, 0x7c, 0xfd, 0xc5, 0xe7, 0x46, 0x16, + 0x8e, 0xc7, 0x37, 0x97, 0x18, 0x1e, 0xfa, 0x46, 0xed, 0xf8, 0xf5, 0x0b, 0xc8, 0xab, 0xb3, 0x9f, + 0x4b, 0x06, 0xc4, 0x8a, 0xef, 0xd4, 0x4b, 0x66, 0xa0, 0x45, 0xb7, 0xaa, 0xe5, 0xe3, 0xad, 0x02, + 0x58, 0x26, 0xfe, 0x7b, 0xcc, 0x55, 0xbd, 0x67, 0x43, 0x97, 0xce, 0xe5, 0x3e, 0x88, 0x58, 0x3a, + 0x57, 0x95, 0xc9, 0xe5, 0x48, 0xd9, 0xd2, 0x34, 0x6a, 0x8d, 0xe5, 0xd4, 0x53, 0x46, 0x09, 0xfc, + 0xee, 0x09, 0x99, 0xce, 0x3e, 0xb5, 0xfd, 0xa9, 0xc0, 0x90, 0xbc, 0x8b, 0xdf, 0x72, 0xa4, 0xfa, + 0x9c, 0xa1, 0xfa, 0x88, 0x58, 0x9f, 0x12, 0x49, 0xc8, 0x87, 0xba, 0x14, 0x40, 0x5d, 0x44, 0xac, + 0x4b, 0xed, 0x25, 0x76, 0xcf, 0xe2, 0xf1, 0xb8, 0xbe, 0xfe, 0x22, 0xcb, 0x76, 0xdd, 0x4e, 0x37, + 0x2e, 0x8c, 0x0b, 0xc7, 0xaf, 0x37, 0x2e, 0x42, 0x3d, 0xc8, 0xbc, 0x5e, 0x26, 0xaa, 0x57, 0x83, + 0x24, 0x09, 0x76, 0xfc, 0xd1, 0xfe, 0x1c, 0xd6, 0x6d, 0x1d, 0x95, 0x78, 0x5f, 0xc8, 0x96, 0xd2, + 0xeb, 0x06, 0xbc, 0xb9, 0x13, 0x1e, 0x1f, 0x7d, 0x55, 0xc8, 0x17, 0x17, 0x8a, 0x74, 0x8e, 0xd0, + 0xb6, 0x58, 0xd6, 0xd9, 0x1a, 0x20, 0xae, 0x00, 0x71, 0x6b, 0x2c, 0x77, 0xe0, 0x8a, 0xd6, 0x34, + 0xfc, 0xda, 0x70, 0x97, 0x4e, 0xac, 0xa6, 0x35, 0x47, 0xbd, 0x1d, 0x09, 0x54, 0x6d, 0x36, 0xde, + 0x71, 0x03, 0x6a, 0xb1, 0x92, 0x5b, 0xe9, 0x03, 0x28, 0x74, 0x9d, 0x1a, 0x86, 0x94, 0x3a, 0x48, + 0x69, 0x3e, 0x3b, 0xbc, 0x7d, 0x18, 0xda, 0xc5, 0x94, 0x55, 0x29, 0x2d, 0x3b, 0x4f, 0x9c, 0xc6, + 0x39, 0xe2, 0x67, 0xb8, 0x55, 0x3f, 0x3b, 0xda, 0x7b, 0xa7, 0x1a, 0x2f, 0x01, 0x8e, 0xd2, 0xcc, + 0xb9, 0xca, 0xeb, 0x76, 0xb5, 0xce, 0xcb, 0x3d, 0x5b, 0x70, 0x35, 0x36, 0x32, 0x66, 0x08, 0xea, + 0x23, 0x3a, 0xfb, 0x00, 0x7c, 0x19, 0xe1, 0xcb, 0xb8, 0x61, 0x4b, 0xcd, 0xe8, 0x2a, 0x03, 0x5b, + 0xa5, 0x63, 0x4c, 0x07, 0x7e, 0xd9, 0x21, 0xf8, 0x36, 0xf2, 0x6f, 0x86, 0xdf, 0x22, 0x7c, 0xd7, + 0x8c, 0x06, 0xe1, 0x0b, 0xa8, 0x37, 0xb4, 0xb2, 0x94, 0x75, 0x99, 0xb4, 0x0c, 0x3e, 0xc7, 0xd2, + 0x64, 0xcf, 0xdd, 0xca, 0x19, 0xce, 0x67, 0x5c, 0x7b, 0x1f, 0x7b, 0xdb, 0xd9, 0xab, 0xf7, 0xba, + 0x24, 0x7d, 0xa3, 0x47, 0x62, 0x65, 0x51, 0x56, 0x72, 0x3b, 0xde, 0x64, 0xd1, 0xd5, 0x40, 0x9f, + 0x97, 0x11, 0xe5, 0xf8, 0x06, 0xce, 0x12, 0x4b, 0x8e, 0xe3, 0x76, 0xdc, 0x0b, 0xcd, 0xaa, 0x01, + 0x3e, 0x18, 0x75, 0x52, 0x4d, 0xa3, 0xda, 0x07, 0xd4, 0x3d, 0x6e, 0xda, 0x21, 0x9a, 0x68, 0xe3, + 0xf5, 0x0f, 0xe6, 0xf8, 0x06, 0x13, 0xd4, 0x3c, 0x13, 0xce, 0xce, 0xeb, 0x67, 0xd9, 0x78, 0xf6, + 0x88, 0xeb, 0xa0, 0x13, 0xd8, 0x0a, 0x58, 0x33, 0x7c, 0x83, 0x80, 0x0d, 0xdf, 0x09, 0x67, 0xef, + 0x79, 0x12, 0xde, 0xa7, 0x11, 0x7e, 0x74, 0xf5, 0x50, 0xf3, 0x65, 0x78, 0x77, 0xae, 0x90, 0x91, + 0xf6, 0xdd, 0xe7, 0xf0, 0xe6, 0xa8, 0x93, 0x7f, 0x6f, 0x4b, 0xd5, 0x83, 0x95, 0x7b, 0x36, 0xb1, + 0x9b, 0xd5, 0x2f, 0x65, 0x17, 0xd2, 0x49, 0x61, 0x3c, 0x0f, 0x2d, 0xe9, 0xf1, 0xf6, 0x1a, 0xde, + 0x20, 0x40, 0xbd, 0xf0, 0x78, 0xaf, 0x85, 0x4e, 0x26, 0x5b, 0x64, 0x19, 0x7a, 0x8d, 0xd6, 0xfd, + 0x77, 0x1e, 0x94, 0xcd, 0xd0, 0x57, 0xfa, 0x90, 0x85, 0x5c, 0xcb, 0x35, 0x3d, 0x57, 0x72, 0x23, + 0x96, 0xab, 0x96, 0xe5, 0xbc, 0x49, 0x59, 0x16, 0xa2, 0x62, 0x50, 0x0f, 0xd6, 0xe4, 0x12, 0xcc, + 0x3e, 0x89, 0xdd, 0x1b, 0xca, 0xa1, 0x3c, 0x97, 0x4a, 0x26, 0xd4, 0x3a, 0x07, 0xb4, 0x12, 0xf4, + 0x66, 0xc8, 0xc5, 0xdb, 0x5d, 0x75, 0x49, 0x5f, 0x73, 0x62, 0xd4, 0xe2, 0xbc, 0xf6, 0x11, 0xde, + 0x63, 0x0f, 0xd1, 0x0d, 0x76, 0xb5, 0x0e, 0x4b, 0x93, 0xba, 0xb6, 0x28, 0xd6, 0x8f, 0x81, 0xff, + 0xce, 0x8e, 0x33, 0x35, 0xf4, 0xe1, 0x64, 0x28, 0xe6, 0x54, 0xc8, 0x38, 0x3e, 0xa8, 0xbe, 0xa4, + 0xaf, 0xaf, 0xfa, 0xdd, 0x7e, 0x86, 0xfc, 0x7d, 0x9c, 0xe1, 0x9d, 0xb4, 0x16, 0xe6, 0xed, 0x5b, + 0x87, 0xfa, 0xf0, 0xc7, 0xbe, 0x64, 0x05, 0xd8, 0x5c, 0x80, 0x75, 0x00, 0xc8, 0x5c, 0x80, 0x98, + 0x39, 0xce, 0x20, 0xe7, 0xe6, 0x13, 0x3f, 0x3a, 0xf1, 0x03, 0x8f, 0xf3, 0xda, 0xc7, 0x0b, 0x7f, + 0x9f, 0xaf, 0xa3, 0xfe, 0x5e, 0x46, 0x74, 0xfd, 0x93, 0x3d, 0x2c, 0xde, 0x86, 0x73, 0x44, 0xe7, + 0x45, 0x49, 0x9f, 0xcc, 0xe2, 0xea, 0xf9, 0x38, 0xc0, 0x36, 0xc0, 0xbf, 0x4b, 0x92, 0xbe, 0x99, + 0xb7, 0x48, 0xec, 0xd5, 0x2f, 0xf7, 0x94, 0x76, 0x28, 0xc9, 0x1b, 0xc1, 0x1c, 0xba, 0xf5, 0xf9, + 0xa8, 0x2b, 0x9e, 0x38, 0x7b, 0xd4, 0xa5, 0xa0, 0xfe, 0x80, 0xef, 0x5c, 0xc6, 0xf5, 0x55, 0xa3, + 0x3c, 0x8b, 0x60, 0x1e, 0xa5, 0x40, 0x57, 0xa9, 0x55, 0x6d, 0x49, 0x98, 0x1f, 0x2f, 0x55, 0x61, + 0xde, 0x80, 0x56, 0xd0, 0x21, 0x57, 0x45, 0x93, 0x81, 0x4d, 0x4a, 0x13, 0x4a, 0xa6, 0xf9, 0xd3, + 0xc4, 0x94, 0x69, 0xbe, 0x06, 0x9c, 0x3c, 0xee, 0x19, 0x17, 0xa0, 0x66, 0x8c, 0xf2, 0x7e, 0x76, + 0x87, 0x7a, 0xa6, 0x93, 0x4e, 0x42, 0xa9, 0xb7, 0xf6, 0xf8, 0xf9, 0xb7, 0x65, 0xc0, 0x75, 0xe9, + 0xb5, 0x13, 0x51, 0xef, 0xac, 0xf2, 0xae, 0x66, 0x82, 0xa6, 0xf9, 0x26, 0x38, 0xdf, 0x72, 0x27, + 0x9d, 0xcc, 0x2a, 0xa3, 0x3b, 0x8e, 0x4e, 0xf3, 0xea, 0x39, 0x12, 0x6b, 0x09, 0x8a, 0x96, 0x22, + 0xf6, 0x10, 0xf8, 0xb8, 0x43, 0x66, 0xc4, 0xe6, 0x74, 0x5a, 0xbe, 0x36, 0x88, 0x27, 0x14, 0xed, + 0xe2, 0x13, 0xd0, 0x1b, 0x86, 0xc0, 0x13, 0xf2, 0xb3, 0xd4, 0x23, 0x5c, 0x72, 0xcb, 0x70, 0x47, + 0xc7, 0x01, 0xfd, 0x00, 0xbc, 0x9e, 0xc4, 0xbe, 0x40, 0xe7, 0x50, 0x74, 0xa4, 0x21, 0x04, 0xb5, + 0x72, 0xcd, 0xc4, 0x3e, 0x24, 0x2e, 0xc6, 0x66, 0xab, 0x16, 0x3d, 0x68, 0x6d, 0xd1, 0x67, 0x09, + 0x1a, 0x60, 0x0d, 0x45, 0x0b, 0xd3, 0x5f, 0xcd, 0x05, 0x3e, 0xa5, 0x79, 0x18, 0x35, 0x1f, 0xef, + 0x1f, 0xe8, 0x19, 0xe3, 0xd6, 0x74, 0x51, 0xbe, 0xb9, 0xf5, 0xad, 0x84, 0xd4, 0xf1, 0x2c, 0xb4, + 0x6f, 0xf9, 0xcf, 0x46, 0x93, 0xfa, 0xc2, 0xe3, 0xb1, 0x94, 0xef, 0x4d, 0x36, 0xb7, 0xbd, 0x93, + 0x99, 0x92, 0x1a, 0x74, 0x91, 0xe7, 0xae, 0x3a, 0x87, 0xa7, 0xa8, 0x90, 0x36, 0x2d, 0x4d, 0x4a, + 0xf9, 0x0f, 0xb5, 0x8c, 0xc0, 0x7c, 0x30, 0x87, 0x2e, 0xa4, 0xd8, 0x1e, 0x58, 0xa5, 0x33, 0x54, + 0x5f, 0xd4, 0x99, 0x26, 0x6b, 0xdc, 0xd7, 0x76, 0x93, 0x90, 0x07, 0x3a, 0xbd, 0x87, 0x53, 0xcb, + 0xf1, 0x9c, 0x39, 0x6e, 0x21, 0x1e, 0x9a, 0x3f, 0x07, 0xd2, 0xe8, 0xf2, 0xe7, 0xf8, 0x74, 0x56, + 0xd2, 0x50, 0x36, 0x9a, 0x9e, 0x1e, 0x73, 0x4c, 0xa9, 0x67, 0xaa, 0x6b, 0x13, 0xdf, 0xa9, 0x49, + 0xe4, 0xbd, 0x4a, 0x88, 0xd3, 0x29, 0xfd, 0x79, 0x58, 0x4f, 0x4b, 0xb2, 0x9e, 0x07, 0x3f, 0x2b, + 0x8f, 0x48, 0x9b, 0xa6, 0x39, 0x39, 0x3d, 0x37, 0xd2, 0x6f, 0x58, 0x88, 0x1a, 0x25, 0xde, 0x79, + 0x2c, 0x9c, 0xc8, 0x8b, 0x34, 0xae, 0x15, 0x84, 0x48, 0x2b, 0xf7, 0x3b, 0xdb, 0xa1, 0x4f, 0xdd, + 0x90, 0xf2, 0xdb, 0x73, 0xdc, 0x3a, 0x9d, 0xa6, 0x45, 0x99, 0xee, 0x67, 0xa2, 0xd4, 0xbf, 0x32, + 0x57, 0x62, 0x8b, 0xc2, 0x8a, 0x84, 0x3a, 0xbe, 0x0a, 0x75, 0xba, 0x50, 0x8f, 0xd4, 0x1f, 0x7f, + 0x4b, 0xb8, 0x06, 0x70, 0x88, 0x7a, 0xcc, 0xf1, 0xfb, 0x13, 0x66, 0x95, 0x80, 0x0a, 0x81, 0x41, + 0x46, 0xd7, 0x1f, 0x58, 0x01, 0xcc, 0x2c, 0xbc, 0x63, 0x25, 0x92, 0x7b, 0x9c, 0xd9, 0xc3, 0xe5, + 0xc7, 0x47, 0x24, 0xdc, 0x85, 0x80, 0xd5, 0xb7, 0x0a, 0x20, 0x0c, 0x6a, 0x5a, 0x80, 0xf7, 0xec, + 0xec, 0x2c, 0x24, 0x8a, 0x6e, 0xa0, 0xb5, 0x6a, 0x80, 0xd6, 0x2a, 0x4f, 0x91, 0xa3, 0x7a, 0xa0, + 0x46, 0x3c, 0xce, 0x8b, 0x18, 0x82, 0x7b, 0x01, 0x00, 0x2d, 0x2e, 0xd5, 0xa6, 0x2a, 0xb5, 0x8b, + 0x5a, 0xf4, 0xff, 0x86, 0xe7, 0xa4, 0xb5, 0xc8, 0x42, 0xbe, 0xaf, 0x4e, 0xf2, 0xcd, 0x27, 0xdf, + 0x1f, 0x4c, 0xf2, 0xb5, 0x86, 0x2c, 0xd4, 0xfa, 0x63, 0xd4, 0xf6, 0xbd, 0x30, 0x86, 0xfd, 0x50, + 0xa6, 0x95, 0x56, 0x6d, 0xb3, 0xb8, 0x4a, 0xe8, 0x27, 0xad, 0x39, 0x40, 0xcb, 0x4f, 0x96, 0x06, + 0x78, 0x56, 0x09, 0x43, 0xf0, 0xdb, 0x78, 0x5f, 0x3f, 0x93, 0x84, 0x61, 0xf8, 0x6f, 0x17, 0x9e, + 0x40, 0x5b, 0xb8, 0xc2, 0x26, 0x3a, 0x73, 0x79, 0x41, 0x78, 0xaa, 0xf1, 0xa2, 0xb0, 0xc5, 0x53, + 0x28, 0x6c, 0xf5, 0xec, 0x12, 0xb6, 0xdd, 0xd7, 0xff, 0x1b, 0x8b, 0xf0, 0x2c, 0xca, 0x25, 0x84, + 0xef, 0x80, 0xfb, 0x39, 0x48, 0xf9, 0x02, 0xfc, 0x5e, 0xa4, 0xd4, 0x3b, 0xe1, 0xff, 0x1c, 0x61, + 0x17, 0xfc, 0xd7, 0x0b, 0xbb, 0x29, 0x8f, 0x57, 0x28, 0xe6, 0x9e, 0xaa, 0x8b, 0xc2, 0x10, 0xf0, + 0x92, 0x7b, 0x21, 0xc5, 0x6b, 0xf0, 0x3b, 0x00, 0xbf, 0xd7, 0xe1, 0x77, 0x08, 0x52, 0xbe, 0x09, + 0xef, 0xc3, 0x90, 0xfb, 0x51, 0x2c, 0xed, 0x9d, 0x9f, 0x0b, 0xc7, 0x20, 0xee, 0x0e, 0x88, 0x7b, + 0x52, 0xad, 0xdf, 0x69, 0xf5, 0x7d, 0x16, 0xe2, 0xbd, 0x03, 0xbf, 0x77, 0xe1, 0x37, 0x06, 0x71, + 0x9e, 0x85, 0x38, 0xfd, 0x72, 0x9e, 0xd8, 0xc1, 0xe6, 0x51, 0x7f, 0x9c, 0x81, 0x56, 0x3f, 0x87, + 0x37, 0x6f, 0x70, 0xb7, 0x0d, 0xe2, 0x74, 0xc1, 0x2f, 0x0a, 0xbf, 0xf0, 0x64, 0x68, 0x64, 0xf9, + 0x7b, 0xd3, 0xf6, 0x32, 0xe3, 0x2b, 0xf0, 0x6c, 0xfb, 0x14, 0x7e, 0x96, 0xc9, 0x7e, 0x09, 0x58, + 0xfa, 0x10, 0x67, 0x2e, 0xac, 0xa5, 0x28, 0x19, 0xb2, 0x22, 0xbe, 0x39, 0x7d, 0x9c, 0xe3, 0xf4, + 0xfb, 0x2e, 0x00, 0xf6, 0x28, 0x75, 0x75, 0xd0, 0x1e, 0xbd, 0xf9, 0x20, 0xd7, 0x55, 0xf8, 0x0a, + 0xab, 0x0c, 0x21, 0x44, 0x39, 0x59, 0xfe, 0xd3, 0x87, 0x6d, 0xbe, 0x67, 0x8e, 0xa0, 0xed, 0x09, + 0x18, 0xb5, 0x7d, 0x38, 0x07, 0x51, 0x06, 0x9c, 0xd4, 0x77, 0x15, 0x66, 0x11, 0x26, 0x76, 0xb3, + 0x0a, 0x5b, 0xb7, 0xd0, 0x05, 0xf1, 0xba, 0x85, 0xfe, 0x7f, 0x38, 0xea, 0xea, 0x06, 0x8c, 0xfb, + 0x8a, 0xf2, 0x46, 0x91, 0x5b, 0x08, 0x73, 0xbd, 0x54, 0x24, 0xb9, 0x56, 0x25, 0xa9, 0x30, 0x1f, + 0x50, 0x1b, 0xc1, 0x10, 0xbc, 0xf3, 0x43, 0xfd, 0x3e, 0x68, 0x6f, 0x28, 0x0f, 0xf0, 0x6b, 0x9c, + 0xb0, 0xe0, 0x35, 0xda, 0x83, 0x6a, 0x24, 0x2e, 0x57, 0x46, 0x18, 0x98, 0xbd, 0x4a, 0xb8, 0xc8, + 0xe6, 0xab, 0x5f, 0x1f, 0x27, 0x6d, 0x9f, 0xe0, 0x5e, 0xa2, 0xd0, 0x15, 0xaa, 0x54, 0xa9, 0xfe, + 0xdb, 0xb9, 0xce, 0x3b, 0x21, 0x4a, 0xe9, 0xdb, 0xf0, 0xe6, 0x8b, 0x10, 0x0e, 0xce, 0x4c, 0xd5, + 0x8f, 0x7d, 0x1d, 0x65, 0x4c, 0x5d, 0x28, 0xd5, 0x13, 0xd6, 0xd1, 0x09, 0x83, 0x75, 0x40, 0x81, + 0x5c, 0x75, 0x75, 0x73, 0x39, 0xb8, 0xd6, 0xdb, 0xe8, 0x4f, 0x35, 0x0c, 0x00, 0x2c, 0xe6, 0x53, + 0x7f, 0x78, 0x21, 0x97, 0x30, 0xe7, 0xf8, 0xd1, 0x0e, 0x22, 0xe4, 0xdc, 0x15, 0x34, 0xca, 0x0e, + 0x9b, 0x1b, 0x71, 0x5a, 0xba, 0x06, 0x6e, 0xfe, 0x05, 0xf8, 0xfb, 0x5d, 0xf4, 0xd7, 0xca, 0x4c, + 0x1f, 0x57, 0xe4, 0x20, 0xfe, 0x4b, 0xf6, 0xae, 0xb9, 0xb1, 0xb2, 0xbe, 0x8e, 0xf6, 0xae, 0x2e, + 0xd5, 0x6c, 0x53, 0x5f, 0xc2, 0x92, 0x99, 0x58, 0x7e, 0x4f, 0xc9, 0x3d, 0xe9, 0x66, 0xcb, 0xa6, + 0x8e, 0x48, 0xd6, 0xad, 0xc7, 0xea, 0xa2, 0x6c, 0x6c, 0xa8, 0x43, 0x3f, 0xd7, 0xf8, 0x18, 0x7c, + 0x2f, 0x87, 0xdf, 0xbd, 0x6c, 0xac, 0x71, 0x48, 0x2d, 0x67, 0xcc, 0xdb, 0xcf, 0xc6, 0x9a, 0x1f, + 0xc6, 0xfd, 0x28, 0xf8, 0xfe, 0x47, 0xf8, 0x1d, 0x62, 0x63, 0x4b, 0x8d, 0x64, 0x0f, 0x71, 0xcc, + 0x0b, 0x2b, 0x87, 0xf7, 0x0f, 0x6c, 0x6c, 0xd9, 0x79, 0xd5, 0xfd, 0x3b, 0x36, 0x56, 0x3f, 0x97, + 0x8d, 0xfd, 0xad, 0x13, 0xdc, 0xd9, 0xf0, 0x6d, 0x80, 0x5f, 0x09, 0x1b, 0xfb, 0xef, 0x7b, 0x79, + 0x78, 0xbd, 0x17, 0x7e, 0xcb, 0xd8, 0xd8, 0xf2, 0x1a, 0xd5, 0xbd, 0x14, 0x7e, 0x7f, 0xc7, 0xc6, + 0xbe, 0xe2, 0x56, 0xdd, 0xeb, 0xe1, 0xf7, 0x14, 0xb8, 0x27, 0x54, 0xf7, 0x37, 0xe1, 0xf7, 0x02, + 0x1b, 0x7b, 0x78, 0xbf, 0xea, 0xfe, 0x9f, 0x6c, 0xcc, 0xf7, 0x00, 0x1b, 0x5b, 0xf9, 0x0e, 0xaf, + 0x8f, 0x6f, 0x01, 0xfc, 0xda, 0xd9, 0x58, 0xdb, 0x26, 0x1e, 0xee, 0xfb, 0x29, 0xfc, 0xae, 0xb2, + 0xb1, 0x76, 0xd5, 0xbd, 0xe8, 0x21, 0xf8, 0x7d, 0x8d, 0x8d, 0x85, 0x22, 0xe0, 0x36, 0xc1, 0x77, + 0x0c, 0x7e, 0x63, 0x6c, 0xac, 0xf3, 0xa8, 0x1a, 0xfe, 0x9f, 0x6c, 0xac, 0x21, 0x17, 0x7e, 0xf7, + 0xc1, 0x32, 0x0a, 0x6d, 0x6d, 0x30, 0xb2, 0xb1, 0x55, 0xc3, 0x68, 0x3f, 0x10, 0xc2, 0x3e, 0x01, + 0x77, 0x2d, 0x1b, 0xeb, 0xdd, 0x02, 0xee, 0x69, 0xf0, 0xdd, 0x0b, 0xbf, 0xd7, 0xd9, 0x58, 0xb8, + 0x81, 0xa7, 0x6d, 0xf8, 0xdf, 0xf0, 0x3b, 0xcd, 0xc6, 0xbe, 0xa6, 0x57, 0xdd, 0x27, 0xd8, 0xd8, + 0x62, 0x91, 0x8d, 0x45, 0x1e, 0x56, 0xe3, 0xbf, 0x07, 0xee, 0xef, 0xb2, 0xb1, 0x47, 0xec, 0xbc, + 0xae, 0xfe, 0x06, 0xf8, 0x3d, 0xc1, 0xc6, 0xd6, 0xbf, 0xa9, 0xba, 0xa1, 0x5f, 0xfd, 0xaf, 0xb1, + 0xb1, 0xfe, 0xa3, 0xbc, 0x3c, 0xff, 0x3f, 0xc1, 0xef, 0x5f, 0xd9, 0xd8, 0xd7, 0x5f, 0x51, 0xc3, + 0xcf, 0xc2, 0x6f, 0x9c, 0x8d, 0xfd, 0xbd, 0x5a, 0x9e, 0xff, 0xf7, 0x6c, 0x6c, 0xc9, 0x57, 0xd8, + 0xd8, 0x80, 0x81, 0xbb, 0x97, 0xb4, 0xc0, 0x6f, 0x90, 0x8d, 0x0d, 0x5e, 0xe1, 0xf1, 0x97, 0xac, + 0x85, 0xdf, 0x0e, 0x36, 0xb6, 0x61, 0x87, 0x1a, 0xfe, 0xad, 0xc9, 0xd6, 0xe4, 0x52, 0x2d, 0xcd, + 0xf9, 0xdb, 0x1f, 0x69, 0x42, 0x90, 0xc0, 0x8f, 0xea, 0x86, 0x7a, 0x56, 0xd5, 0xd5, 0xd9, 0xda, + 0xc7, 0xe6, 0xf4, 0x99, 0xd8, 0x9c, 0xe2, 0xb2, 0xd2, 0xbe, 0xe9, 0xf4, 0xdf, 0x94, 0x9e, 0xa4, + 0x6a, 0x71, 0xad, 0xab, 0xa9, 0x39, 0x50, 0xef, 0x5f, 0x28, 0xd5, 0xa5, 0x85, 0x34, 0x06, 0x96, + 0x2c, 0x6e, 0x6c, 0x96, 0xaa, 0x58, 0x55, 0xdf, 0xea, 0x1b, 0x6c, 0xd8, 0xcd, 0xe9, 0x13, 0xd9, + 0xa3, 0xac, 0x87, 0xf5, 0xf4, 0xb2, 0x47, 0xdb, 0xfb, 0xd2, 0xd2, 0xa1, 0x89, 0xae, 0xea, 0x1a, + 0x96, 0x5e, 0x8c, 0xb4, 0xd8, 0xe5, 0x5f, 0xd2, 0x50, 0xef, 0x47, 0xdb, 0x6c, 0xdc, 0xb0, 0x1a, + 0x5a, 0x3c, 0x6b, 0xa8, 0xf5, 0xd3, 0xbb, 0x79, 0x89, 0xb4, 0x88, 0xd5, 0xae, 0xec, 0xe8, 0x65, + 0xb5, 0x5d, 0x7d, 0xed, 0xac, 0xbe, 0xce, 0x55, 0xeb, 0xaf, 0xa9, 0x4f, 0xaf, 0x4e, 0xba, 0xa3, + 0xb6, 0xa7, 0x0d, 0x1b, 0xd8, 0xdc, 0xda, 0xb7, 0x1a, 0xad, 0x9d, 0x89, 0xed, 0x3d, 0x6d, 0x9d, + 0x3d, 0x21, 0xd3, 0x0d, 0x91, 0xea, 0x83, 0x37, 0x78, 0xf1, 0x1e, 0xba, 0xc1, 0x77, 0x75, 0x67, + 0x18, 0x3e, 0x5a, 0x6a, 0xab, 0x97, 0x36, 0xd7, 0x92, 0x29, 0xbd, 0xbb, 0x55, 0x53, 0x76, 0xd8, + 0x7d, 0xcd, 0xf3, 0xd9, 0xfc, 0x66, 0x09, 0x5a, 0xdd, 0xdc, 0x1d, 0x9e, 0xd3, 0xb5, 0x26, 0xf9, + 0xd7, 0x96, 0x4c, 0xd2, 0x9e, 0x62, 0x50, 0x6d, 0x65, 0xa4, 0xbd, 0x35, 0x8a, 0x16, 0xd5, 0xa2, + 0xed, 0xdd, 0xe1, 0x5e, 0x32, 0x4e, 0x8f, 0x16, 0xda, 0x4c, 0xc9, 0xd8, 0xd5, 0x54, 0x40, 0x67, + 0xcf, 0xaa, 0xf6, 0x95, 0xd1, 0x84, 0x89, 0xb6, 0xae, 0xce, 0x9e, 0xf6, 0x1b, 0x87, 0x47, 0xaa, + 0x72, 0x55, 0x05, 0x16, 0x2e, 0x45, 0x7b, 0x66, 0x4d, 0x30, 0x46, 0xb5, 0xeb, 0xda, 0x57, 0xae, + 0x89, 0xb6, 0xa7, 0x45, 0xab, 0x6b, 0xed, 0xec, 0xaa, 0x8a, 0xaa, 0xaf, 0xf9, 0x62, 0x53, 0x7b, + 0x94, 0x0c, 0xf5, 0x45, 0xda, 0xa3, 0x6b, 0x22, 0x3d, 0x22, 0x5a, 0xff, 0x12, 0x83, 0x10, 0xb6, + 0x26, 0xd2, 0x0e, 0x65, 0x74, 0x77, 0x92, 0x11, 0x37, 0x8c, 0xb0, 0x72, 0x4d, 0x24, 0xd2, 0xde, + 0x13, 0x15, 0xfb, 0x56, 0x46, 0x3a, 0xc3, 0x51, 0x53, 0x00, 0xfa, 0x74, 0xb1, 0xe4, 0x9f, 0xde, + 0x0c, 0x41, 0x3d, 0xed, 0x8f, 0xa4, 0xa5, 0xa7, 0x74, 0x26, 0xa6, 0x46, 0xa1, 0xa2, 0xb8, 0x1f, + 0x99, 0x9b, 0x33, 0x4d, 0xaa, 0xce, 0x9a, 0xae, 0x28, 0xff, 0x3f, 0x5f, 0xac, 0xe9, 0xec, 0x23, + 0xa3, 0x89, 0xdc, 0xae, 0x60, 0x6b, 0x0f, 0x76, 0x0b, 0x14, 0xdf, 0x2a, 0xd6, 0x2c, 0x69, 0x52, + 0x3b, 0x0d, 0x0b, 0x30, 0xf9, 0x97, 0x2e, 0xf6, 0xa0, 0x81, 0x3d, 0xbf, 0xb4, 0x98, 0x2a, 0xc0, + 0x83, 0xb8, 0x89, 0xbb, 0x3e, 0xf1, 0xd1, 0xde, 0x35, 0xe2, 0x23, 0x9d, 0x7d, 0x1d, 0x62, 0xb4, + 0x57, 0xfc, 0xda, 0x9a, 0xf6, 0xc8, 0xa3, 0x26, 0x96, 0x92, 0x80, 0x97, 0x45, 0x76, 0xef, 0xd8, + 0xa4, 0x21, 0xf7, 0x2f, 0x41, 0x23, 0x7e, 0x0f, 0x56, 0x05, 0xd0, 0xb2, 0x5f, 0x6d, 0x20, 0xb0, + 0x24, 0x80, 0x20, 0x58, 0x55, 0xdf, 0x00, 0x2f, 0x57, 0xed, 0x03, 0xd2, 0x22, 0xd7, 0x42, 0x34, + 0xda, 0xb7, 0xb0, 0x16, 0xfe, 0xa1, 0xb5, 0x3e, 0x88, 0xd4, 0x52, 0xdf, 0x04, 0x3d, 0xbd, 0xe8, + 0x06, 0xa0, 0x47, 0xb8, 0x6c, 0x68, 0xaa, 0x9d, 0x0a, 0x38, 0x1b, 0x5a, 0x57, 0xa4, 0x79, 0x3c, + 0x58, 0xef, 0xaf, 0x59, 0xf2, 0xa0, 0x0b, 0xad, 0xbf, 0xc1, 0xec, 0xaa, 0xaa, 0x5e, 0x94, 0x9c, + 0x9b, 0xac, 0x7a, 0x89, 0x7f, 0xfe, 0x3d, 0xa5, 0xd2, 0x7d, 0xa5, 0xd2, 0xbc, 0xf2, 0x52, 0xa9, + 0xbc, 0xa2, 0x54, 0xaa, 0x0a, 0x2c, 0x69, 0x2a, 0xa6, 0x50, 0x49, 0x35, 0x95, 0x37, 0x9f, 0x5c, + 0xc5, 0x4d, 0xd1, 0xd6, 0x48, 0x14, 0x96, 0x93, 0xc6, 0xd6, 0x68, 0x07, 0xab, 0x56, 0x07, 0xab, + 0xa6, 0x33, 0x02, 0x40, 0xd3, 0x8b, 0x5d, 0x60, 0x62, 0xd5, 0xf3, 0xd3, 0xbb, 0xbe, 0xb1, 0xaa, + 0xd9, 0x0b, 0x93, 0xad, 0xaa, 0xa6, 0x06, 0x2d, 0x1b, 0x7a, 0x97, 0x3c, 0x88, 0xa6, 0x11, 0x6b, + 0x9b, 0xc8, 0x12, 0x62, 0xa0, 0x76, 0xf1, 0x92, 0x65, 0x38, 0x03, 0x1f, 0x58, 0xca, 0x4d, 0x23, + 0x7a, 0x6b, 0xab, 0x20, 0x1a, 0x9b, 0xe3, 0x2f, 0x99, 0xd3, 0xb4, 0x40, 0x9c, 0x62, 0xf6, 0xb3, + 0xc6, 0x48, 0x6f, 0x77, 0x38, 0x9a, 0x16, 0x12, 0xa8, 0x86, 0xe1, 0x7f, 0x60, 0x4d, 0x67, 0xf4, + 0x46, 0x3c, 0x82, 0x56, 0xf2, 0x92, 0xa5, 0xf0, 0x3a, 0x04, 0x6a, 0x1b, 0x1b, 0xaa, 0xaa, 0xd1, + 0xdd, 0xb8, 0x34, 0x50, 0xfb, 0x37, 0x75, 0x4b, 0x02, 0xe4, 0xe0, 0xc6, 0xf4, 0xa0, 0xf0, 0x40, + 0x7b, 0x5f, 0x67, 0x1b, 0x34, 0x8b, 0x45, 0xb4, 0x8f, 0x95, 0x5d, 0x9d, 0x94, 0x9d, 0x78, 0xf3, + 0x67, 0x69, 0x53, 0x6d, 0xf5, 0x92, 0xa5, 0xfe, 0x66, 0x13, 0x62, 0xb6, 0x7b, 0x4b, 0xfb, 0x44, + 0x9e, 0x9d, 0xe6, 0x22, 0xd3, 0x8b, 0xfe, 0xaa, 0x06, 0xcd, 0x5d, 0x53, 0xdf, 0x54, 0xe5, 0x69, + 0xa8, 0xad, 0xd1, 0xdc, 0x73, 0x8a, 0x11, 0x62, 0xd3, 0x5b, 0xb5, 0xa6, 0x07, 0x7f, 0x30, 0x77, + 0xb0, 0xcb, 0x01, 0x3a, 0xc3, 0x91, 0xde, 0x50, 0xa4, 0xb5, 0x5b, 0x6c, 0xed, 0x03, 0xc7, 0x8a, + 0xd6, 0x95, 0xab, 0x43, 0x91, 0xde, 0x35, 0x30, 0x47, 0xc1, 0x1f, 0xad, 0x58, 0x9a, 0x4c, 0x6a, + 0x27, 0x4e, 0x9f, 0x5e, 0xd3, 0x8b, 0x53, 0x39, 0x1c, 0xe9, 0xec, 0xe1, 0xb3, 0x2e, 0x25, 0x32, + 0x4c, 0x96, 0xbb, 0xfb, 0x54, 0x18, 0x36, 0xa1, 0x4d, 0xc2, 0x2a, 0x7f, 0x8d, 0x54, 0x47, 0xe0, + 0xad, 0xe5, 0xef, 0x84, 0x76, 0x87, 0x4b, 0xd4, 0x19, 0x38, 0x17, 0xc1, 0x3b, 0xb2, 0xa6, 0x47, + 0x74, 0xb6, 0x46, 0x42, 0x6b, 0xba, 0xa1, 0x37, 0xfa, 0xc8, 0x9c, 0xe7, 0x23, 0xed, 0x6d, 0x73, + 0xa1, 0xad, 0xda, 0xb8, 0x25, 0x72, 0xe2, 0x26, 0x4a, 0x6f, 0x11, 0xb9, 0x03, 0x56, 0x60, 0xb5, + 0xfe, 0x65, 0xf3, 0xd9, 0x54, 0x91, 0xaa, 0x68, 0xc8, 0x52, 0xe3, 0xb6, 0xf7, 0xac, 0x65, 0x84, + 0x15, 0x1b, 0xaa, 0x3c, 0x08, 0xf2, 0x4d, 0x8b, 0xea, 0x1b, 0xd3, 0x12, 0x82, 0x7f, 0x6d, 0x83, + 0xcb, 0x03, 0xc0, 0x0d, 0xc3, 0x98, 0x1a, 0xd0, 0x54, 0xff, 0x50, 0x2d, 0xc0, 0x08, 0xf4, 0xe4, + 0xca, 0xd5, 0x09, 0xa8, 0xed, 0x43, 0x97, 0x88, 0x16, 0x3e, 0xc5, 0xce, 0x3e, 0xc2, 0xd9, 0x2b, + 0x1e, 0x8d, 0xb6, 0x43, 0x85, 0x03, 0xdc, 0x92, 0x68, 0x7b, 0x5b, 0x22, 0x10, 0x8d, 0x54, 0xf6, + 0x75, 0x43, 0xbb, 0x4b, 0xfe, 0xcc, 0xc2, 0xc5, 0x96, 0xf6, 0xf4, 0xfd, 0xd9, 0x46, 0x41, 0x24, + 0x68, 0x4d, 0x2d, 0xb4, 0x26, 0x6d, 0xc6, 0x3e, 0xd8, 0xf1, 0x28, 0xc3, 0x71, 0xe8, 0x6a, 0xed, + 0x4b, 0x22, 0xe0, 0xb6, 0xce, 0x36, 0x11, 0x2d, 0x95, 0x42, 0xae, 0x30, 0xea, 0x1c, 0xfd, 0x15, + 0xaf, 0x6d, 0xed, 0x5a, 0x03, 0x68, 0xf9, 0x86, 0xc8, 0x88, 0x51, 0xdb, 0xdb, 0x5c, 0x10, 0xad, + 0xb5, 0xaf, 0xb7, 0x67, 0x0a, 0x6a, 0x0e, 0xd6, 0xeb, 0x07, 0x76, 0xa8, 0xdf, 0x9f, 0x07, 0x0a, + 0x6c, 0x1b, 0xfc, 0x80, 0xee, 0xa9, 0xdb, 0x07, 0xbf, 0x37, 0xe0, 0x77, 0x0a, 0x7e, 0x17, 0xe0, + 0x07, 0xb4, 0xcd, 0x42, 0x3d, 0xfc, 0xac, 0xf0, 0xb3, 0xc3, 0xaf, 0x1c, 0x7e, 0x35, 0xf0, 0x6b, + 0x86, 0x5f, 0x1b, 0xfc, 0x80, 0xbe, 0x59, 0xb8, 0x19, 0x7e, 0xcf, 0xc1, 0x6f, 0x0f, 0xfc, 0x46, + 0xe1, 0x77, 0x1c, 0x7e, 0xe7, 0xe1, 0x77, 0x19, 0xe8, 0x33, 0xa4, 0xe7, 0x2c, 0xf0, 0x03, 0x3a, + 0xc5, 0x5b, 0x0a, 0x3f, 0xb7, 0x5a, 0xa6, 0x66, 0x4f, 0x91, 0x21, 0x67, 0x10, 0x2e, 0x9b, 0x7c, + 0xcb, 0x8a, 0xef, 0x44, 0xb2, 0x8f, 0xff, 0xaa, 0x9f, 0x19, 0x99, 0xf1, 0xaf, 0xfa, 0x95, 0xc7, + 0xd8, 0xf4, 0xbb, 0xfb, 0x89, 0x5a, 0x34, 0x89, 0x6e, 0xe0, 0x5f, 0xc6, 0x6a, 0x3f, 0x7d, 0xe6, + 0x48, 0x22, 0xfe, 0x8b, 0x37, 0x58, 0xfd, 0x93, 0x53, 0xac, 0xfe, 0x8d, 0xd5, 0xd9, 0x27, 0x59, + 0xfd, 0xf3, 0x24, 0x6c, 0xf8, 0x8d, 0xd5, 0x59, 0xfd, 0x5b, 0xa4, 0x19, 0xa9, 0xb1, 0x97, 0x7c, + 0x8a, 0xb1, 0x2b, 0x97, 0x73, 0xd9, 0x33, 0x50, 0xd3, 0xcb, 0xa4, 0x19, 0xc9, 0xf8, 0xb5, 0x13, + 0x5c, 0x8a, 0x9b, 0xb0, 0x0c, 0x38, 0x56, 0x67, 0xbe, 0xc1, 0x32, 0xe0, 0x58, 0x5d, 0x41, 0xba, + 0x65, 0x40, 0xdb, 0xa2, 0x70, 0x59, 0x9a, 0x5e, 0xe7, 0x02, 0xd9, 0x62, 0x5b, 0x94, 0xa0, 0xdc, + 0x67, 0x8a, 0x33, 0xb8, 0x2c, 0x89, 0x4e, 0x4b, 0x7d, 0xcd, 0xfb, 0xde, 0x02, 0xbc, 0x51, 0xec, + 0x72, 0x55, 0x02, 0x5d, 0x6c, 0x14, 0xeb, 0xd6, 0x09, 0xb2, 0x2e, 0x30, 0xe4, 0xdb, 0x11, 0x1c, + 0x6f, 0x1a, 0x0a, 0x31, 0x41, 0x8f, 0xed, 0xf7, 0x36, 0xa6, 0x72, 0xf3, 0x85, 0x68, 0xb3, 0xed, + 0x43, 0xf2, 0x97, 0x27, 0x71, 0xf9, 0x25, 0xdc, 0x15, 0xd4, 0xdb, 0x6a, 0xe5, 0xf2, 0x39, 0x35, + 0xcc, 0x26, 0xea, 0x8f, 0x0f, 0x1d, 0x8f, 0xd1, 0x2f, 0x16, 0x61, 0xea, 0x8d, 0x40, 0x07, 0x5a, + 0x20, 0x02, 0x1e, 0xae, 0x24, 0x85, 0xa3, 0xab, 0x4d, 0x7e, 0xcb, 0x10, 0x5a, 0xb8, 0x8a, 0x39, + 0x7e, 0x79, 0xd4, 0xf3, 0x8c, 0xe7, 0x65, 0xa6, 0x2f, 0x6a, 0x62, 0x96, 0x2f, 0xf7, 0xfb, 0xff, + 0xc4, 0x8c, 0x45, 0xab, 0x99, 0x9e, 0x99, 0xaa, 0x3e, 0x62, 0xc6, 0xb0, 0xc1, 0x86, 0x67, 0x42, + 0x93, 0x16, 0xbe, 0xbe, 0xee, 0xbc, 0xad, 0x65, 0xe8, 0xc2, 0x26, 0xdb, 0x9d, 0x76, 0xfd, 0xda, + 0x38, 0xf0, 0x33, 0x25, 0xfe, 0x57, 0x26, 0xc6, 0xc5, 0x26, 0xaa, 0x65, 0x17, 0xed, 0x54, 0xa2, + 0xae, 0x1e, 0x0b, 0xa4, 0x1a, 0xf3, 0xae, 0x21, 0xdb, 0x45, 0x14, 0xa3, 0xfe, 0x43, 0x66, 0xa5, + 0x5b, 0x42, 0x75, 0x2d, 0x1b, 0x1d, 0x2d, 0xa4, 0x55, 0x75, 0x28, 0xb5, 0x2e, 0x09, 0xb9, 0x5b, + 0x3f, 0x97, 0x07, 0xa4, 0xdb, 0x5a, 0xa4, 0x9d, 0x41, 0x33, 0xde, 0x30, 0xf0, 0xf6, 0xf3, 0x9b, + 0xfe, 0x71, 0x87, 0xfd, 0x0b, 0x2e, 0x4d, 0xc3, 0xa6, 0x85, 0xf4, 0xe1, 0x41, 0x8a, 0x30, 0x93, + 0x67, 0xe6, 0x7e, 0x2e, 0x10, 0x33, 0x0b, 0xac, 0x10, 0x75, 0x62, 0xb2, 0xcf, 0x93, 0x36, 0xcd, + 0x42, 0x59, 0x67, 0x41, 0x1d, 0x9a, 0xb1, 0x9e, 0x77, 0xf9, 0x69, 0xee, 0xb8, 0x15, 0xb5, 0x22, + 0x89, 0xbd, 0xba, 0xfc, 0x42, 0x49, 0x27, 0xda, 0x2c, 0x41, 0x13, 0x59, 0x83, 0x59, 0x8e, 0xfa, + 0xd8, 0xe9, 0x2b, 0xd0, 0xef, 0x3c, 0x37, 0x62, 0x37, 0xac, 0xfd, 0x6a, 0x5d, 0x96, 0x13, 0xb5, + 0x9b, 0x0a, 0xd8, 0xb2, 0x89, 0xb5, 0x3e, 0x77, 0x30, 0x5f, 0xca, 0x06, 0x6e, 0x50, 0xc6, 0xdb, + 0x32, 0xf0, 0xa6, 0xbd, 0xd3, 0x70, 0x36, 0xee, 0xa2, 0x49, 0x75, 0x3a, 0xa3, 0xe7, 0x55, 0x9d, + 0x99, 0x5a, 0x3e, 0x68, 0xbf, 0x1d, 0xcf, 0xad, 0xea, 0x68, 0xef, 0x76, 0xa2, 0x0e, 0xc2, 0x0f, + 0xe2, 0x9d, 0xa6, 0xb5, 0x4a, 0x4a, 0x6e, 0xfd, 0x90, 0x1b, 0x63, 0x2f, 0x50, 0x7e, 0x16, 0x35, + 0x3f, 0xd2, 0x12, 0x1d, 0x36, 0xe1, 0xc8, 0x6c, 0x7d, 0xcb, 0xd5, 0xab, 0x2b, 0x40, 0x89, 0x98, + 0xe8, 0xb6, 0x77, 0xb0, 0xe3, 0x7c, 0x77, 0x80, 0x1d, 0xe6, 0x52, 0x6c, 0xa1, 0x63, 0xe1, 0xb8, + 0xa2, 0x97, 0x65, 0x73, 0x21, 0xcc, 0x31, 0x63, 0x70, 0x99, 0xad, 0x90, 0x99, 0x6e, 0xac, 0xaf, + 0xd3, 0x4d, 0x27, 0x34, 0x2a, 0x24, 0xb3, 0x34, 0x4d, 0x32, 0xf8, 0xb7, 0x56, 0x5d, 0xd2, 0x89, + 0xbf, 0x38, 0xec, 0x71, 0x29, 0xcd, 0xd2, 0x2a, 0x66, 0xd2, 0x59, 0xa5, 0x85, 0xba, 0x7c, 0xa8, + 0x73, 0x01, 0xd5, 0x79, 0xa3, 0x5a, 0x67, 0x2b, 0xaf, 0x33, 0xd6, 0xc4, 0x1e, 0xf0, 0x6d, 0x09, + 0x92, 0xf4, 0x6f, 0xf9, 0xc4, 0x92, 0x4b, 0xc2, 0x87, 0xfc, 0xd4, 0x9f, 0xf7, 0xbd, 0x0a, 0x5d, + 0x8a, 0x1d, 0xd3, 0x31, 0xef, 0xd6, 0x54, 0xe8, 0x74, 0xb2, 0x60, 0x5e, 0xaa, 0x3c, 0x2f, 0xb2, + 0x5e, 0x74, 0xcf, 0xae, 0x62, 0xdb, 0xe4, 0x87, 0xa9, 0x94, 0x7f, 0xb4, 0xdf, 0xf6, 0xc0, 0xe0, + 0x5a, 0x86, 0xf2, 0x99, 0x89, 0x77, 0x1d, 0x0c, 0xfa, 0x53, 0xef, 0x3f, 0x10, 0xb7, 0x48, 0xfc, + 0xbc, 0x33, 0xb5, 0xdf, 0x37, 0x14, 0xb4, 0xc9, 0xa5, 0x92, 0xa6, 0xc7, 0x0e, 0xb9, 0xe9, 0x03, + 0xf1, 0x06, 0x3b, 0xb3, 0x65, 0xb9, 0x6a, 0x70, 0x57, 0x9c, 0x38, 0x79, 0x5d, 0xd4, 0x6a, 0xab, + 0x49, 0x81, 0x65, 0x70, 0xe3, 0xb9, 0x36, 0x77, 0x81, 0xf2, 0x3e, 0x97, 0x99, 0x2e, 0xb9, 0xa4, + 0xec, 0xc0, 0x3d, 0x00, 0xcf, 0xab, 0x6c, 0x33, 0xd5, 0xf2, 0xe5, 0x49, 0xb5, 0xcc, 0x9f, 0xb2, + 0x96, 0x4c, 0x68, 0xa3, 0x7a, 0xfe, 0x1f, 0xde, 0x1b, 0x6c, 0xb3, 0x56, 0xd7, 0x12, 0x16, 0x9c, + 0x85, 0xe5, 0xab, 0x3b, 0xf1, 0xc0, 0xc1, 0xa2, 0x2b, 0xee, 0xc0, 0x5b, 0xe9, 0xc2, 0x2c, 0x48, + 0xe7, 0x72, 0x51, 0x7d, 0xa9, 0xac, 0x37, 0xc3, 0x73, 0x5c, 0x75, 0x89, 0x39, 0x7c, 0xa5, 0x96, + 0xef, 0xc8, 0x29, 0x5f, 0x7a, 0x83, 0xf2, 0x3e, 0xad, 0xe5, 0x4d, 0xed, 0xa9, 0xa3, 0x5c, 0xdf, + 0xb0, 0x31, 0xca, 0x6f, 0x07, 0xb9, 0x8e, 0x38, 0x7d, 0x50, 0x8a, 0x69, 0x6d, 0x1b, 0xf9, 0xed, + 0xd9, 0xf3, 0x04, 0x40, 0xca, 0x73, 0x8e, 0x06, 0x8b, 0x35, 0xb0, 0x89, 0xce, 0x9b, 0x5c, 0x85, + 0xff, 0xd3, 0x43, 0x1f, 0x4b, 0x33, 0x50, 0x5b, 0x71, 0xd5, 0xef, 0x8d, 0x4c, 0xd6, 0xe1, 0x9d, + 0xf4, 0xd0, 0xfa, 0x5c, 0x91, 0xce, 0x98, 0x5c, 0x81, 0xff, 0xd3, 0x43, 0x1f, 0xc2, 0x7f, 0x53, + 0x68, 0x0c, 0xa0, 0xe9, 0x39, 0x71, 0x11, 0xd5, 0xeb, 0x6c, 0x98, 0x20, 0x03, 0xef, 0x62, 0x86, + 0xbc, 0xaa, 0xdf, 0x39, 0x98, 0x7b, 0x16, 0xd2, 0x3a, 0x95, 0xaf, 0xfa, 0xbc, 0x13, 0xd6, 0x25, + 0x62, 0x39, 0x65, 0xa6, 0x34, 0xe0, 0x9d, 0xdc, 0x20, 0x53, 0x6a, 0xd4, 0xf0, 0x5f, 0x87, 0xb3, + 0xb4, 0x70, 0xf0, 0x2d, 0x29, 0xef, 0x67, 0xd9, 0x78, 0xbf, 0x0a, 0xe6, 0x73, 0x1d, 0x8d, 0x85, + 0x1e, 0x7c, 0xac, 0xb6, 0x69, 0x7c, 0xb4, 0x54, 0x57, 0xea, 0x58, 0x91, 0x0f, 0xdd, 0xc6, 0x42, + 0x79, 0x77, 0x87, 0x7f, 0x0d, 0x59, 0x56, 0x63, 0x0a, 0xea, 0x3d, 0x6a, 0xb9, 0xc1, 0xce, 0xaa, + 0x94, 0xb0, 0xb3, 0x4a, 0xf6, 0x4b, 0x1f, 0x18, 0x51, 0x47, 0xb5, 0x94, 0xea, 0xf2, 0x9f, 0xb7, + 0x36, 0xaa, 0x3a, 0x03, 0xf5, 0xfc, 0xef, 0xa2, 0xa5, 0xa7, 0x46, 0xb4, 0x11, 0xc5, 0x5d, 0xd5, + 0xa0, 0x88, 0xf0, 0xa7, 0x6c, 0x52, 0xc7, 0xf4, 0x0f, 0x7c, 0x4c, 0x61, 0xb5, 0xc1, 0x51, 0x3d, + 0x04, 0xa3, 0x7a, 0xac, 0x90, 0x46, 0x15, 0x6a, 0x51, 0xea, 0xc3, 0x1d, 0xf4, 0xf3, 0xd1, 0x38, + 0x8d, 0xd0, 0xee, 0x12, 0x86, 0xbb, 0x34, 0x11, 0x5d, 0x94, 0xc6, 0x4d, 0x29, 0x50, 0xad, 0xf2, + 0xbe, 0x68, 0x9b, 0x66, 0xe7, 0x3e, 0xdf, 0x26, 0x37, 0xca, 0xa4, 0xf4, 0xbd, 0x61, 0xde, 0x1b, + 0xca, 0xa0, 0xd3, 0x3d, 0xaf, 0x5f, 0x60, 0x8b, 0xc6, 0x15, 0x58, 0x1d, 0x22, 0x0c, 0x7b, 0xf1, + 0x7a, 0xb3, 0x8b, 0x05, 0x73, 0x69, 0xaf, 0x2f, 0x84, 0x98, 0xa0, 0x71, 0xa4, 0xa0, 0x92, 0x99, + 0x64, 0x3f, 0xe6, 0xe3, 0x98, 0x41, 0xf5, 0xe9, 0xf1, 0xb9, 0x43, 0x56, 0x9b, 0x01, 0xbf, 0xaf, + 0x9f, 0xb4, 0xd5, 0x51, 0x2a, 0x60, 0xfc, 0xe5, 0x42, 0xed, 0x5b, 0x22, 0xad, 0xd5, 0x91, 0x75, + 0xd0, 0x8b, 0xd6, 0x85, 0x1f, 0x08, 0x4c, 0x7e, 0x9e, 0xf2, 0x3b, 0x05, 0xf3, 0x66, 0xb4, 0x71, + 0xc4, 0xb9, 0xb0, 0xdf, 0x14, 0xd1, 0xd9, 0x4d, 0x54, 0x83, 0xbc, 0x12, 0x33, 0x9d, 0x45, 0xa1, + 0xd2, 0xe2, 0xcf, 0x37, 0x8e, 0xf4, 0x9b, 0xd4, 0xba, 0xbd, 0x88, 0xb7, 0x78, 0x22, 0xbc, 0xee, + 0x83, 0x76, 0xb7, 0x0b, 0x75, 0x46, 0xb1, 0x85, 0xe3, 0xf1, 0xb0, 0x68, 0xd0, 0x6a, 0x0a, 0x73, + 0x20, 0x99, 0x36, 0xd8, 0x38, 0x22, 0xaf, 0xb2, 0x99, 0xa0, 0x96, 0x86, 0x44, 0x2d, 0x2b, 0x35, + 0x58, 0xb6, 0x53, 0x9e, 0xf1, 0x5d, 0xbe, 0x58, 0x77, 0x41, 0xc2, 0x0f, 0x7b, 0xf8, 0xd3, 0x84, + 0xbf, 0x1e, 0x5a, 0xa0, 0x83, 0xd2, 0x17, 0xf2, 0x36, 0xc8, 0xa2, 0xf6, 0x85, 0x56, 0xf2, 0xd4, + 0xd6, 0x70, 0x1d, 0x74, 0x0c, 0xe0, 0xa2, 0x1f, 0x62, 0xf2, 0x16, 0x0c, 0xfa, 0x36, 0x86, 0x66, + 0x62, 0x4a, 0x1c, 0x39, 0xe8, 0x8f, 0x49, 0x23, 0x67, 0xc3, 0x7b, 0xbb, 0x1c, 0xf2, 0x74, 0xfd, + 0x93, 0x70, 0x44, 0xbf, 0x55, 0x34, 0x20, 0xd4, 0xf1, 0xf3, 0x6d, 0x28, 0xc1, 0xbc, 0x1f, 0xed, + 0x3a, 0x5b, 0xe9, 0x5c, 0xdb, 0x87, 0xfc, 0x5c, 0x1b, 0x41, 0xd5, 0x78, 0x3a, 0x54, 0x91, 0x05, + 0x85, 0x9b, 0xe1, 0x0b, 0x3f, 0x42, 0x56, 0xbd, 0x21, 0xfa, 0xe1, 0xa9, 0x6f, 0x26, 0x71, 0x85, + 0x0b, 0x6f, 0x19, 0x14, 0x24, 0xb1, 0x45, 0xfd, 0xdc, 0x14, 0x6c, 0x81, 0x16, 0x75, 0x48, 0x9a, + 0xe9, 0x60, 0xc9, 0x93, 0x3f, 0x85, 0x16, 0x59, 0xb7, 0x5e, 0xb1, 0x15, 0x2b, 0x13, 0xa1, 0x5c, + 0xb2, 0x03, 0xf8, 0x31, 0xb5, 0x16, 0x70, 0x24, 0x40, 0xd1, 0x0b, 0xf5, 0x1f, 0x29, 0x1f, 0xda, + 0x9b, 0x49, 0xc7, 0xfa, 0x2a, 0x39, 0xea, 0xcb, 0x0f, 0x4e, 0x3c, 0xfd, 0x63, 0xd1, 0xd8, 0x14, + 0x13, 0xbb, 0x54, 0x9d, 0xf5, 0x56, 0x9b, 0x25, 0x64, 0x69, 0x1a, 0xd8, 0x33, 0xb0, 0x52, 0xff, + 0xf3, 0x1f, 0xc8, 0x8e, 0x85, 0xbf, 0x37, 0x2a, 0xb2, 0x78, 0x20, 0xd6, 0x56, 0xb0, 0xf9, 0xb1, + 0x9f, 0x8f, 0xca, 0x79, 0xb6, 0x2c, 0xbc, 0x11, 0xcd, 0x14, 0xaa, 0xc5, 0xe1, 0xc0, 0x46, 0x5f, + 0xac, 0x4b, 0x2f, 0x37, 0xf4, 0xb3, 0x03, 0x1b, 0x43, 0x7a, 0xeb, 0xe7, 0x83, 0xe7, 0x49, 0xab, + 0x4f, 0x8e, 0x2d, 0x2b, 0x2a, 0xf2, 0x18, 0x30, 0x3e, 0x25, 0x2d, 0x4f, 0x38, 0x02, 0xaf, 0x71, + 0xbb, 0x41, 0x8b, 0xe4, 0x4d, 0xbe, 0x6e, 0xe5, 0x72, 0x10, 0x63, 0x98, 0x12, 0x31, 0xcc, 0x1c, + 0x23, 0xc7, 0x77, 0xa0, 0x86, 0xb2, 0x54, 0xdc, 0xa8, 0xb5, 0x76, 0xbd, 0x09, 0xda, 0xc4, 0x7c, + 0xb0, 0x4e, 0x84, 0xcc, 0xbe, 0x0d, 0x21, 0x23, 0x8f, 0xaf, 0x9c, 0x4b, 0xe0, 0x06, 0xdd, 0xfa, + 0x49, 0x23, 0xb4, 0xde, 0x2a, 0x66, 0x93, 0x86, 0xbc, 0x37, 0x54, 0x09, 0x6a, 0x62, 0xe5, 0xaf, + 0x2f, 0x49, 0x5f, 0xf9, 0xf9, 0x5d, 0xf6, 0x05, 0x3a, 0xa7, 0x24, 0x10, 0x84, 0xc5, 0xf9, 0x29, + 0xe2, 0x67, 0x45, 0xb7, 0xcd, 0xc9, 0xc4, 0xbd, 0x3b, 0x59, 0x01, 0xb8, 0x9e, 0xa2, 0x90, 0xb3, + 0xeb, 0x85, 0x7e, 0x16, 0xc9, 0x3f, 0x39, 0x62, 0x27, 0x98, 0x5e, 0x4b, 0x30, 0x3e, 0x71, 0x9a, + 0x74, 0x0d, 0x3f, 0x84, 0xa7, 0xdc, 0xf7, 0x6e, 0x0c, 0xba, 0xe4, 0x46, 0x1a, 0xc7, 0x7b, 0xa3, + 0xf9, 0xa7, 0x46, 0x28, 0xfc, 0x1c, 0x9e, 0xeb, 0x27, 0xcc, 0x64, 0x91, 0xf5, 0x81, 0xc7, 0x64, + 0x53, 0xd3, 0x63, 0x0f, 0x1e, 0xf2, 0x0e, 0xd6, 0x78, 0x64, 0x9d, 0xc7, 0xc3, 0xb1, 0xb4, 0x8a, + 0xb3, 0x8f, 0xb9, 0x58, 0xd8, 0xb4, 0x67, 0x63, 0xc8, 0x00, 0x39, 0x6e, 0x0c, 0x5e, 0xf0, 0x79, + 0x42, 0x5b, 0x80, 0x12, 0x99, 0x85, 0x33, 0xe5, 0x6e, 0xd4, 0x30, 0x34, 0xbf, 0x71, 0x24, 0x6c, + 0xe5, 0xb3, 0xee, 0xee, 0x3b, 0xc0, 0x5d, 0x08, 0x6e, 0xc0, 0x7e, 0xee, 0x7e, 0x7e, 0xeb, 0xfd, + 0x6f, 0x47, 0x68, 0x45, 0x7d, 0x95, 0x76, 0x3a, 0xc6, 0xea, 0x2b, 0x6f, 0x69, 0x35, 0xe5, 0xb5, + 0xf5, 0x46, 0x2d, 0x49, 0x7c, 0x06, 0xab, 0x69, 0x1e, 0x1f, 0x05, 0x75, 0x35, 0x45, 0xfd, 0xa1, + 0x43, 0xc1, 0x3c, 0xd9, 0x4e, 0x6b, 0xec, 0xf1, 0xe4, 0x0a, 0x8a, 0xa7, 0xbc, 0xa6, 0x5c, 0x3f, + 0x7f, 0xe5, 0x2e, 0x40, 0xed, 0x20, 0x88, 0x63, 0x2b, 0x1d, 0x50, 0x23, 0x9a, 0x0d, 0xf5, 0xf5, + 0xb7, 0x86, 0x63, 0xd9, 0x2b, 0x54, 0xa7, 0xa5, 0xd1, 0x82, 0x64, 0x9d, 0x0a, 0x59, 0x70, 0x66, + 0x1a, 0x64, 0x2c, 0x4b, 0xcc, 0x83, 0x1e, 0xb9, 0xdf, 0x4e, 0xb8, 0x95, 0x8f, 0x5e, 0x21, 0xe2, + 0xcf, 0xb5, 0x62, 0x31, 0x03, 0x4c, 0xfa, 0xb3, 0xd1, 0x9f, 0x1d, 0xb1, 0x15, 0xc3, 0x3a, 0x66, + 0xd9, 0x33, 0x10, 0x32, 0x73, 0x98, 0x29, 0xea, 0x66, 0x05, 0x4c, 0x0c, 0x2b, 0x45, 0x80, 0xb5, + 0xf1, 0x8e, 0x2f, 0xd9, 0x46, 0xaa, 0xd3, 0xec, 0x11, 0x2d, 0xba, 0xc4, 0xec, 0xa2, 0xbb, 0xc8, + 0xc9, 0x36, 0xa5, 0x62, 0x9b, 0xfa, 0xaf, 0x38, 0x6e, 0xa3, 0xdc, 0xbf, 0x23, 0x17, 0x4c, 0x09, + 0x69, 0xbf, 0x6a, 0xab, 0x44, 0x5c, 0x60, 0xcb, 0xe6, 0xfd, 0xb2, 0x9e, 0xc9, 0x67, 0x27, 0x8d, + 0x46, 0xcf, 0x2d, 0x8d, 0xc6, 0x3a, 0x6a, 0xf9, 0xfa, 0x49, 0xa3, 0x91, 0xde, 0xf2, 0xbf, 0x4b, + 0xb4, 0x7c, 0xbe, 0xec, 0x4d, 0x40, 0xac, 0x39, 0x09, 0xaf, 0xc1, 0x3c, 0xa4, 0xb5, 0xef, 0xbe, + 0x23, 0x35, 0x76, 0xd4, 0x84, 0xfa, 0x6e, 0xb4, 0x71, 0xfb, 0xec, 0x51, 0xf3, 0x7f, 0x8d, 0xea, + 0x6e, 0x83, 0xba, 0x5b, 0xa9, 0xee, 0x03, 0xb7, 0x54, 0xf7, 0x1e, 0xaa, 0xfb, 0x37, 0xa3, 0xd6, + 0x64, 0xdd, 0xed, 0x93, 0xeb, 0xfe, 0x54, 0xa2, 0xee, 0xa5, 0xf2, 0x02, 0x5e, 0x77, 0x1b, 0x59, + 0xe4, 0x10, 0x3b, 0x99, 0x78, 0xe2, 0xb0, 0xbd, 0x93, 0x55, 0xfc, 0xec, 0x08, 0x59, 0x1e, 0x77, + 0xd9, 0x4a, 0x87, 0xad, 0x81, 0x81, 0xd9, 0x03, 0xc3, 0x16, 0xcf, 0xde, 0x9d, 0x16, 0xb9, 0x60, + 0xea, 0x1a, 0xd7, 0x50, 0x8d, 0x6d, 0x3a, 0xde, 0xae, 0xe8, 0x8d, 0xfd, 0xfe, 0xad, 0xbf, 0xa0, + 0xdf, 0xff, 0xe7, 0x67, 0xf6, 0xfb, 0x0b, 0x7f, 0x51, 0xbf, 0xbf, 0xf0, 0x5f, 0xe9, 0xf7, 0x54, + 0x2a, 0x45, 0x39, 0xc7, 0xe9, 0x96, 0x29, 0x39, 0x98, 0xc4, 0xe9, 0x33, 0x0d, 0x8b, 0xf9, 0x97, + 0xc6, 0x2f, 0x90, 0x86, 0xd6, 0x62, 0x48, 0x5f, 0xcc, 0xcc, 0x85, 0xc5, 0x10, 0x03, 0x4f, 0x75, + 0x5a, 0xed, 0x6e, 0xb1, 0xa6, 0x04, 0x78, 0x06, 0x68, 0x37, 0x52, 0x55, 0x67, 0x8b, 0xdc, 0xf1, + 0xf7, 0xb9, 0xa5, 0xc1, 0xac, 0x3d, 0xbe, 0x6f, 0x04, 0x0d, 0x25, 0x58, 0xdb, 0xdd, 0x44, 0x87, + 0x1d, 0xe1, 0x77, 0xec, 0xf9, 0x37, 0x72, 0x80, 0x10, 0xf7, 0x43, 0x87, 0x5b, 0x2c, 0x62, 0x96, + 0xde, 0x1e, 0x47, 0x11, 0xb3, 0xf6, 0x76, 0x6c, 0x8f, 0xf9, 0x36, 0xf4, 0xae, 0x90, 0xa6, 0x69, + 0xa7, 0x55, 0x1d, 0xee, 0xaa, 0x0f, 0x98, 0x50, 0xe4, 0x8d, 0x5f, 0xb0, 0x1b, 0x4f, 0x6d, 0x10, + 0x75, 0x01, 0xe0, 0x1a, 0x89, 0x62, 0x6d, 0x46, 0xad, 0x90, 0xa1, 0xf9, 0xe2, 0x42, 0x9b, 0x5b, + 0x9c, 0x41, 0x3e, 0x9b, 0x3f, 0x77, 0x90, 0x99, 0xf6, 0x33, 0x47, 0x77, 0xfc, 0x43, 0x71, 0x35, + 0x33, 0xe3, 0x39, 0xe9, 0x13, 0x1f, 0xe0, 0x1d, 0x84, 0xf8, 0x85, 0xb7, 0x8f, 0x8a, 0x59, 0x3c, + 0x0e, 0xda, 0x58, 0x07, 0xca, 0x02, 0x39, 0xbc, 0x1a, 0x9b, 0x45, 0xb5, 0x63, 0x5b, 0xcb, 0xd7, + 0xaf, 0x60, 0xb9, 0x6d, 0xb1, 0xa3, 0xe6, 0x8b, 0x77, 0x42, 0x0e, 0xef, 0xdb, 0x8a, 0xd8, 0x79, + 0xea, 0xe7, 0x97, 0x1d, 0xd3, 0xa9, 0x9d, 0xdf, 0x41, 0xfe, 0x27, 0x7e, 0x52, 0xca, 0xf6, 0x7c, + 0x97, 0x70, 0xd6, 0x69, 0x6e, 0x15, 0x32, 0x2b, 0x07, 0x35, 0xab, 0xee, 0x41, 0x0b, 0x7e, 0xc6, + 0x39, 0xd5, 0x4c, 0x04, 0x0a, 0x2e, 0x5f, 0xeb, 0x09, 0x87, 0x3b, 0x72, 0xf9, 0xe4, 0x37, 0x29, + 0x77, 0x37, 0x70, 0xaa, 0xfb, 0xe3, 0x17, 0xc8, 0xae, 0xd7, 0x7e, 0x82, 0x85, 0x1f, 0x01, 0x7d, + 0x86, 0x21, 0xbb, 0xed, 0xec, 0x6e, 0xa8, 0x21, 0xdb, 0x2f, 0xde, 0xf6, 0xb7, 0x31, 0xdf, 0x60, + 0x28, 0x1f, 0x39, 0xf8, 0xfa, 0x1f, 0x69, 0x9a, 0x5a, 0x6d, 0x9c, 0xc2, 0x7d, 0x51, 0xce, 0x21, + 0xff, 0xc3, 0x9a, 0x7f, 0xe3, 0x88, 0xe7, 0xe5, 0xf8, 0x85, 0x00, 0xfc, 0xf0, 0x36, 0x8b, 0xa3, + 0x5b, 0xb9, 0x5a, 0x04, 0xeb, 0x5e, 0xfc, 0x43, 0xad, 0x6c, 0xa9, 0x38, 0x7e, 0x41, 0xd2, 0x49, + 0x33, 0xe0, 0xfd, 0xa1, 0xe8, 0x96, 0x00, 0xdf, 0xa8, 0xe7, 0x69, 0xc7, 0xea, 0x8f, 0x7a, 0xbb, + 0xe3, 0x97, 0x31, 0x17, 0x5d, 0xcc, 0x76, 0x9b, 0x61, 0x40, 0x51, 0xe2, 0x97, 0xd5, 0x75, 0x9c, + 0xfa, 0x41, 0xd5, 0x42, 0x6c, 0xc5, 0xf6, 0x5e, 0x7f, 0x57, 0xb5, 0x5a, 0x79, 0x24, 0x84, 0x14, + 0xc4, 0x65, 0x87, 0xdb, 0x46, 0x14, 0x75, 0xfc, 0x18, 0xad, 0x49, 0x16, 0xdb, 0x0c, 0x3b, 0x51, + 0x5c, 0xf1, 0xc3, 0x74, 0x96, 0xe2, 0x5d, 0x4a, 0xf3, 0x0a, 0x8c, 0xea, 0x05, 0xe0, 0x13, 0xb3, + 0xe0, 0x9b, 0x9f, 0xcd, 0x81, 0x5a, 0x86, 0x66, 0x89, 0xd8, 0xab, 0x4e, 0xb5, 0x57, 0xcf, 0x53, + 0xaa, 0x5d, 0xd4, 0x9b, 0x50, 0x53, 0x58, 0x25, 0x66, 0xc0, 0x7a, 0x4d, 0x39, 0x01, 0x87, 0x28, + 0x7e, 0x46, 0x19, 0xe7, 0xa9, 0x0c, 0x9f, 0x03, 0x4f, 0x0a, 0x55, 0xde, 0x34, 0x4f, 0x2c, 0xbb, + 0x9c, 0x74, 0x9c, 0x1c, 0xb8, 0x6e, 0xd6, 0x5a, 0x49, 0xed, 0xdb, 0x8f, 0x7b, 0xb8, 0xd0, 0x96, + 0x65, 0x10, 0x0a, 0x25, 0xf9, 0x0f, 0x4c, 0x7c, 0x28, 0xae, 0x62, 0x76, 0x84, 0x16, 0x58, 0x85, + 0x2c, 0x21, 0x93, 0xcd, 0x18, 0x18, 0xe0, 0x31, 0xb5, 0x7e, 0x22, 0x38, 0x64, 0x36, 0x88, 0xf5, + 0xf6, 0x5b, 0x55, 0x1f, 0xc5, 0x2f, 0x57, 0xff, 0x6e, 0x87, 0xc0, 0xa1, 0x49, 0x4b, 0x69, 0xd9, + 0xe0, 0x29, 0xad, 0x10, 0xe6, 0x2c, 0x62, 0x22, 0xb4, 0x83, 0xad, 0x55, 0x28, 0xfd, 0xeb, 0xb2, + 0xd9, 0xd6, 0x40, 0xf1, 0xfc, 0xb0, 0xe6, 0x3c, 0x6f, 0xab, 0x91, 0xee, 0xe0, 0xb9, 0xe1, 0xcd, + 0x18, 0x4c, 0x55, 0xfd, 0x3e, 0x13, 0x2c, 0x31, 0xcf, 0x3d, 0x46, 0xe6, 0xa8, 0x11, 0x9b, 0x78, + 0x8e, 0x25, 0xdf, 0x48, 0x42, 0x3e, 0xf4, 0x44, 0x01, 0xb5, 0x69, 0x47, 0x3d, 0xcc, 0x01, 0x74, + 0x41, 0xde, 0xcc, 0x69, 0x26, 0xbf, 0x2d, 0x30, 0x46, 0xf3, 0x50, 0x6b, 0x04, 0xe6, 0xe4, 0xd9, + 0xc9, 0x2c, 0xb3, 0x1b, 0x98, 0x15, 0xf8, 0x6f, 0x33, 0xda, 0xf4, 0x84, 0x59, 0xe1, 0xd3, 0x66, + 0xc5, 0x5d, 0x34, 0x2b, 0x38, 0x65, 0x1c, 0x3f, 0x8b, 0xeb, 0x7d, 0x2a, 0x7c, 0xfb, 0x72, 0xd6, + 0xf2, 0x90, 0xef, 0xc8, 0xa8, 0x3b, 0x5d, 0x17, 0xb6, 0x22, 0x55, 0x13, 0x3f, 0x48, 0x54, 0x0d, + 0xf4, 0xf4, 0xb5, 0xf3, 0x4e, 0x96, 0x36, 0x1f, 0x52, 0x7b, 0x19, 0x56, 0xeb, 0x6b, 0xc7, 0xf8, + 0x48, 0x5f, 0x43, 0x6e, 0x37, 0x7f, 0x3f, 0x9d, 0x5a, 0x50, 0x4c, 0xf2, 0xfe, 0xa9, 0xf8, 0x6f, + 0x5f, 0xd9, 0x2d, 0xe1, 0x4a, 0xe2, 0x6b, 0x7d, 0x0b, 0x26, 0xf1, 0xdf, 0xb3, 0xa8, 0xb4, 0x80, + 0x84, 0xfa, 0x95, 0xc6, 0x7c, 0x0f, 0x90, 0x5e, 0xb4, 0x00, 0xe9, 0xcf, 0x98, 0x82, 0x0b, 0xbf, + 0x16, 0xf8, 0xcb, 0xb8, 0x70, 0xc4, 0xe9, 0x95, 0xb8, 0x1e, 0xe5, 0x53, 0x3d, 0xff, 0xf6, 0x56, + 0xe9, 0x08, 0xba, 0xbf, 0xe0, 0xd6, 0xb8, 0xaa, 0x74, 0xda, 0xd2, 0xd7, 0xce, 0x31, 0x34, 0x9e, + 0xa3, 0xc6, 0xbb, 0xb7, 0xbe, 0x2e, 0x96, 0x4f, 0x2d, 0xfb, 0x29, 0x52, 0x6e, 0x0e, 0x4e, 0xdb, + 0x21, 0xdd, 0x51, 0x30, 0x55, 0x2a, 0xa2, 0xa0, 0x17, 0xc8, 0xbe, 0xc4, 0x3a, 0xe0, 0x10, 0x7b, + 0x59, 0x3e, 0x9d, 0x0a, 0xc9, 0xa5, 0x5c, 0x7e, 0x0e, 0xeb, 0x60, 0x8c, 0xf3, 0xe5, 0xb2, 0xc1, + 0xe6, 0xfe, 0x62, 0x23, 0xb3, 0xae, 0x05, 0x3e, 0x65, 0xad, 0x55, 0xa3, 0x11, 0xf0, 0x3b, 0x92, + 0xad, 0x71, 0x53, 0xe8, 0xf2, 0x0d, 0x85, 0xcc, 0xa9, 0xbd, 0x80, 0xf6, 0x39, 0x6a, 0x2a, 0x35, + 0x3a, 0x6a, 0x41, 0x19, 0xb4, 0x5f, 0xa4, 0xf6, 0xbf, 0x7f, 0x8b, 0xed, 0x7f, 0xf3, 0x33, 0xdb, + 0x7f, 0x35, 0xd1, 0xfe, 0xef, 0x50, 0xfb, 0xc7, 0x79, 0xfb, 0x17, 0x3d, 0x84, 0x5a, 0x8f, 0xb5, + 0xf6, 0xbb, 0x26, 0xb7, 0xff, 0x6a, 0x4a, 0xfb, 0x97, 0xc9, 0x2b, 0x1c, 0xbd, 0x4c, 0x24, 0x29, + 0x5c, 0x89, 0x5c, 0x5e, 0x68, 0x91, 0x6a, 0x99, 0x3d, 0x95, 0x6e, 0x5a, 0x14, 0x5c, 0x6b, 0x3f, + 0x3d, 0xc2, 0x29, 0x27, 0x5b, 0x36, 0xf9, 0x84, 0x79, 0x7a, 0xf1, 0xbf, 0x53, 0x5f, 0x1d, 0xe5, + 0x7c, 0x62, 0xbc, 0x8c, 0x73, 0xa5, 0x44, 0x39, 0x01, 0x45, 0x95, 0xda, 0x2f, 0xeb, 0x6f, 0xec, + 0x17, 0xa0, 0xb7, 0x1a, 0xfa, 0x1b, 0x35, 0xfa, 0x12, 0x57, 0x44, 0x4d, 0x83, 0x72, 0x69, 0x9e, + 0xc4, 0x8a, 0x88, 0xbf, 0x7e, 0x0a, 0x52, 0x31, 0x36, 0xec, 0x7b, 0x95, 0xb9, 0x42, 0x3e, 0xa4, + 0x49, 0x48, 0x1a, 0x75, 0xdc, 0xa6, 0x27, 0xba, 0x9c, 0xbe, 0xcd, 0x59, 0x4c, 0x08, 0xe5, 0xc1, + 0x7f, 0x5d, 0xa8, 0xc0, 0x97, 0x15, 0x7c, 0x08, 0x2d, 0x79, 0xed, 0x01, 0x18, 0x7b, 0x70, 0x54, + 0x5e, 0xa0, 0x7d, 0x3f, 0x3c, 0x2a, 0x97, 0x69, 0xdf, 0xcb, 0x47, 0x65, 0x87, 0x58, 0x05, 0x35, + 0xe9, 0x65, 0xe5, 0x28, 0x9f, 0xa4, 0xf4, 0x16, 0x4a, 0x6f, 0x85, 0xf4, 0x33, 0x51, 0xe3, 0x9a, + 0xac, 0xf7, 0xc5, 0x1e, 0xa6, 0x7b, 0x2c, 0xb2, 0xb9, 0x0e, 0x56, 0xd0, 0xa7, 0x63, 0x78, 0xa2, + 0xd4, 0xe3, 0x86, 0x35, 0x9e, 0x28, 0xc4, 0x54, 0x4e, 0x64, 0xd1, 0xd7, 0xd2, 0x39, 0x11, 0x58, + 0xc3, 0xcf, 0xa8, 0x9c, 0xa4, 0x93, 0x38, 0xc9, 0x33, 0x49, 0x4e, 0x72, 0x51, 0xf4, 0xd6, 0x39, + 0x49, 0x9d, 0x9e, 0xc6, 0x31, 0x16, 0x3d, 0x93, 0xe4, 0x24, 0x49, 0x47, 0xf3, 0xcc, 0x54, 0xaa, + 0x5e, 0x59, 0xdb, 0xc8, 0xa5, 0x13, 0x6f, 0x02, 0xb6, 0x3d, 0xe9, 0x78, 0x34, 0x49, 0x41, 0xdb, + 0x49, 0x86, 0xbe, 0xe8, 0xff, 0x86, 0xef, 0x76, 0x2d, 0xc2, 0xd2, 0x48, 0x42, 0xb1, 0x8d, 0xd3, + 0x0c, 0x42, 0x10, 0xf0, 0xac, 0xf8, 0xfd, 0x8b, 0xc8, 0x15, 0x09, 0x0f, 0x55, 0x7d, 0xa4, 0x9c, + 0xf1, 0x75, 0x90, 0x1e, 0x57, 0xbd, 0x3c, 0x0b, 0xbe, 0x8c, 0x21, 0x4b, 0x64, 0xfa, 0xde, 0x5d, + 0xcc, 0xfc, 0x15, 0xce, 0xe1, 0xa0, 0xdc, 0xa2, 0x03, 0xed, 0x45, 0x86, 0xef, 0xdc, 0x43, 0xbe, + 0xf2, 0xfb, 0x68, 0x73, 0x25, 0x94, 0x23, 0x4d, 0x93, 0xf4, 0x65, 0x1d, 0x4c, 0x94, 0xa6, 0x7b, + 0xbe, 0x2b, 0x17, 0x82, 0x5f, 0x7e, 0xc8, 0x92, 0xf4, 0x43, 0xe9, 0xb9, 0x6c, 0x05, 0xdf, 0x82, + 0x90, 0x98, 0xe6, 0xab, 0x23, 0x1b, 0x26, 0xc0, 0x0b, 0xc5, 0x0d, 0xe5, 0x8c, 0x74, 0xa1, 0xdb, + 0x60, 0x7d, 0xb1, 0x87, 0x66, 0x6a, 0xd2, 0x14, 0x5f, 0x6c, 0x19, 0x95, 0xcc, 0x39, 0x2a, 0x58, + 0x97, 0x81, 0xc7, 0x02, 0x8e, 0xf3, 0x4c, 0xc8, 0xe8, 0xf3, 0x70, 0xae, 0xcb, 0xe7, 0x09, 0x32, + 0x76, 0x80, 0x56, 0xb1, 0x04, 0x4f, 0xa7, 0xae, 0x40, 0x67, 0xa6, 0xe0, 0xeb, 0xba, 0x54, 0xbe, + 0x6e, 0x81, 0xbc, 0x82, 0x7a, 0xf5, 0xc7, 0x5c, 0x83, 0x7a, 0xfc, 0x0c, 0xe7, 0xed, 0xd2, 0x6e, + 0xdd, 0xa1, 0x7e, 0xb3, 0x3c, 0xe0, 0xf0, 0x72, 0xc3, 0xc2, 0x1e, 0xe0, 0xf1, 0x64, 0xfd, 0x67, + 0x71, 0x7a, 0x11, 0x13, 0x5a, 0x8a, 0x0c, 0x2b, 0x7b, 0x38, 0xa7, 0x87, 0x52, 0x2b, 0x1b, 0xe7, + 0xf4, 0x64, 0x6b, 0xba, 0x24, 0x4f, 0xe3, 0xf7, 0xae, 0xbf, 0xd1, 0x38, 0x62, 0x5b, 0x88, 0x63, + 0x12, 0x5f, 0x01, 0x94, 0x2e, 0xe2, 0x4c, 0xf3, 0x67, 0xd2, 0x95, 0xb8, 0x52, 0xec, 0xd1, 0xf0, + 0x67, 0x92, 0x26, 0x5e, 0xf4, 0x8b, 0x5b, 0xa7, 0x89, 0x17, 0xfd, 0xe7, 0x67, 0xd1, 0xc4, 0x8b, + 0xc6, 0xfe, 0x12, 0x9a, 0x58, 0x8b, 0xfd, 0x97, 0xd1, 0xc4, 0xb0, 0x52, 0xed, 0x46, 0xfe, 0x9c, + 0xce, 0xba, 0xc2, 0xda, 0xb2, 0x30, 0x8a, 0x27, 0x5e, 0xf9, 0xf9, 0x30, 0x6a, 0xcd, 0xc5, 0xbf, + 0x40, 0xc6, 0x32, 0x8f, 0xda, 0xf4, 0x49, 0xf4, 0x6a, 0x72, 0x66, 0xb8, 0x18, 0x8c, 0x5a, 0x9a, + 0x44, 0xb6, 0xc1, 0x98, 0x94, 0xb1, 0xb0, 0xab, 0xa8, 0x75, 0xda, 0x06, 0x34, 0x9c, 0x4a, 0x8b, + 0x92, 0x2c, 0xa5, 0x10, 0x7d, 0xae, 0x6a, 0x72, 0x15, 0x3c, 0x63, 0x8b, 0x54, 0xd8, 0xfd, 0xca, + 0x0a, 0xb2, 0xdd, 0xe4, 0x66, 0xbe, 0x0d, 0x68, 0xd3, 0xa6, 0x08, 0xcf, 0xda, 0x7d, 0x51, 0xd9, + 0x1d, 0x11, 0x8a, 0xaa, 0x94, 0x3d, 0xe4, 0x72, 0x29, 0xfb, 0x60, 0xb5, 0xdd, 0x4f, 0xdf, 0xb3, + 0x95, 0x83, 0x45, 0xd5, 0xca, 0x28, 0x7d, 0xdb, 0x94, 0x37, 0xc0, 0xff, 0x30, 0x7d, 0x3b, 0x94, + 0xa3, 0xf0, 0x7d, 0x9c, 0xbe, 0x8b, 0x94, 0x53, 0x45, 0xb5, 0xca, 0x19, 0xfa, 0xb6, 0x03, 0xef, + 0x5a, 0xa5, 0x9c, 0xc7, 0xef, 0xac, 0xdf, 0x2b, 0x17, 0x8a, 0xdc, 0xca, 0xfb, 0x10, 0xef, 0x43, + 0xf8, 0x5d, 0xc6, 0x56, 0x35, 0xdc, 0x11, 0xdd, 0x7d, 0xea, 0x9b, 0x24, 0xdb, 0x7b, 0xde, 0xce, + 0xc8, 0xb2, 0xcb, 0xcc, 0xb5, 0x0c, 0xf0, 0x69, 0xde, 0x54, 0x6d, 0x83, 0x3e, 0xd7, 0x64, 0x28, + 0xd9, 0xea, 0xdb, 0xf0, 0xd9, 0xb0, 0xe4, 0xee, 0x57, 0xb6, 0x71, 0x59, 0x4a, 0x0a, 0x8f, 0xf2, + 0xe2, 0x67, 0x73, 0x25, 0xa9, 0x71, 0x27, 0x1a, 0xb8, 0xc6, 0x91, 0x4a, 0xd4, 0x42, 0x20, 0x02, + 0xae, 0xb6, 0xa3, 0x76, 0x3c, 0x87, 0xc4, 0x5c, 0x84, 0x59, 0x7a, 0xc8, 0xf2, 0x6c, 0x87, 0xef, + 0xb1, 0x50, 0x9b, 0x2d, 0x1b, 0x66, 0x73, 0x35, 0xce, 0x66, 0x27, 0x0b, 0x79, 0xd0, 0x9e, 0x21, + 0xd2, 0x4c, 0xd0, 0x12, 0x3b, 0xda, 0x02, 0xb5, 0xe9, 0x31, 0x2c, 0xbe, 0x1c, 0x75, 0xce, 0x93, + 0x54, 0xc9, 0xea, 0x78, 0x4c, 0xb6, 0x88, 0xb9, 0xc7, 0x63, 0x85, 0x26, 0xe4, 0xf8, 0x69, 0x65, + 0x3a, 0x8d, 0x3a, 0xcb, 0x50, 0x2b, 0x72, 0xe3, 0x08, 0xb4, 0xbf, 0x9a, 0xb0, 0x5e, 0x96, 0xba, + 0x37, 0x12, 0xe0, 0xfa, 0x8f, 0x49, 0xcb, 0x05, 0x69, 0xf1, 0xfa, 0xe3, 0x65, 0xae, 0xa5, 0xd7, + 0xe8, 0x76, 0x49, 0xc6, 0x1a, 0xa7, 0x64, 0x54, 0x21, 0xd9, 0x41, 0x38, 0x93, 0x53, 0x34, 0x0d, + 0xb5, 0xaa, 0xcc, 0xc5, 0xaa, 0xed, 0xac, 0xe8, 0x3a, 0x7c, 0xab, 0x00, 0xb3, 0xcd, 0x2b, 0x5c, + 0xcd, 0x8c, 0xbf, 0xfc, 0xc9, 0x2f, 0x7f, 0x52, 0x3f, 0x1e, 0x1f, 0x03, 0xda, 0xed, 0xae, 0xd3, + 0x1b, 0x4e, 0x6f, 0x00, 0x0c, 0x5b, 0x8c, 0x3a, 0x32, 0x6d, 0x4b, 0xdf, 0x7e, 0xeb, 0xed, 0xb7, + 0x38, 0x8d, 0xd9, 0x38, 0x52, 0x58, 0x7d, 0x00, 0xeb, 0x76, 0x0e, 0xef, 0x49, 0x3a, 0x03, 0xfb, + 0x39, 0x3e, 0xdd, 0xe5, 0xdb, 0x06, 0xff, 0x5f, 0x80, 0xbc, 0x2c, 0xa1, 0x36, 0xcc, 0x31, 0xf8, + 0xf0, 0xa2, 0x4b, 0xc6, 0x4a, 0xcf, 0xff, 0x72, 0xc0, 0x68, 0x75, 0x2d, 0xc3, 0xb3, 0xfb, 0x5d, + 0xf9, 0xb2, 0x87, 0x74, 0xe3, 0x33, 0x69, 0x06, 0x6a, 0x15, 0x77, 0xb9, 0xb9, 0x2e, 0xc5, 0x90, + 0x4b, 0xec, 0x35, 0x56, 0x88, 0x79, 0xaa, 0x4d, 0xee, 0x18, 0x5a, 0xea, 0x64, 0x46, 0xb1, 0x04, + 0x2d, 0x37, 0x20, 0x8e, 0xc7, 0x13, 0xff, 0x80, 0x31, 0xfc, 0xbc, 0x7c, 0xb1, 0x20, 0x78, 0x00, + 0x60, 0xd9, 0xb7, 0xe8, 0x03, 0x66, 0x84, 0x72, 0xf2, 0x83, 0x66, 0xd9, 0x00, 0x7d, 0xe6, 0xfe, + 0xe5, 0xa8, 0x78, 0x57, 0xf0, 0x13, 0xa9, 0x81, 0xb9, 0x4a, 0x4c, 0xa8, 0x47, 0x5d, 0x42, 0x8d, + 0x79, 0xa4, 0x53, 0x3a, 0xde, 0xac, 0xea, 0x6c, 0xc4, 0xfb, 0x5e, 0xbd, 0xcc, 0x25, 0x75, 0x28, + 0x13, 0xac, 0xd4, 0x52, 0x89, 0x3a, 0x41, 0x38, 0x8f, 0x67, 0x77, 0xe3, 0xc9, 0x5f, 0x94, 0x69, + 0x6b, 0xf8, 0xb7, 0x90, 0x85, 0xba, 0x92, 0xb2, 0x6c, 0xa7, 0x1b, 0x56, 0xfd, 0xa4, 0x14, 0x3b, + 0x20, 0xba, 0xd8, 0x3a, 0x1b, 0x6b, 0x1a, 0x88, 0x66, 0xed, 0x1b, 0x68, 0x9f, 0xb7, 0x2f, 0x16, + 0x2c, 0x51, 0xa1, 0xef, 0x39, 0x07, 0x0b, 0x39, 0x54, 0x7c, 0xb7, 0x11, 0xb5, 0x61, 0xa9, 0xf8, + 0xfb, 0x9c, 0x8c, 0x3b, 0x3a, 0xc8, 0x2d, 0x3c, 0x81, 0xd6, 0xaf, 0xd7, 0x0a, 0x80, 0x49, 0xab, + 0x23, 0x3a, 0xbb, 0x59, 0xa3, 0x0e, 0x3c, 0xd5, 0x04, 0x3d, 0x79, 0x00, 0x37, 0x95, 0xbe, 0xea, + 0x50, 0xde, 0x9c, 0x5a, 0xa6, 0xb7, 0x3f, 0x23, 0x9a, 0x2e, 0x0c, 0x17, 0xc6, 0xe4, 0x79, 0xe0, + 0x5b, 0xe6, 0xab, 0x46, 0xa9, 0xb8, 0x24, 0xb1, 0x72, 0x2e, 0xc9, 0xbe, 0x4e, 0xe3, 0x0f, 0x3e, + 0xc8, 0xa7, 0x94, 0x37, 0x8e, 0x50, 0x7a, 0xb3, 0xcd, 0xc7, 0x7b, 0x09, 0x70, 0x64, 0x79, 0x21, + 0xac, 0xef, 0xd8, 0xde, 0x16, 0xa0, 0x1d, 0xc4, 0xfc, 0x20, 0x8b, 0x7f, 0x6c, 0x5f, 0x28, 0x5b, + 0x70, 0x6c, 0x1e, 0xe4, 0xf7, 0x4b, 0x8d, 0x35, 0xab, 0xa8, 0x0f, 0x8d, 0x21, 0x59, 0x85, 0x0e, + 0x5f, 0xfd, 0xf8, 0x75, 0xab, 0x7f, 0x9b, 0x7d, 0x35, 0x87, 0xd5, 0xc6, 0x91, 0xf5, 0x15, 0x67, + 0x47, 0x1c, 0x0d, 0xb2, 0x0b, 0xd6, 0x19, 0xbd, 0x3d, 0xdb, 0x41, 0xfa, 0x70, 0xb8, 0x74, 0x9b, + 0x4a, 0xde, 0xaa, 0xa6, 0xfb, 0x8a, 0x7f, 0xab, 0x3d, 0x80, 0x29, 0xb0, 0xa7, 0x09, 0x72, 0x8f, + 0xa9, 0x21, 0x5f, 0x05, 0xce, 0xe7, 0x10, 0xde, 0x68, 0xe4, 0xbb, 0x1b, 0x46, 0x0b, 0x49, 0x9a, + 0x2f, 0x20, 0x1e, 0x87, 0x76, 0x14, 0x10, 0x7d, 0x70, 0x21, 0x49, 0x1f, 0x34, 0xac, 0x9c, 0x02, + 0x0b, 0x7e, 0x06, 0xfd, 0xde, 0xd0, 0x1b, 0xbd, 0x90, 0xc4, 0x81, 0x8e, 0xc4, 0x9e, 0x94, 0x06, + 0xed, 0x38, 0x53, 0x26, 0x9c, 0x53, 0xee, 0xa2, 0x5d, 0x80, 0x90, 0xa3, 0xb7, 0x4c, 0xbf, 0x9f, + 0x4a, 0xae, 0x3f, 0x12, 0x50, 0x99, 0x0d, 0xff, 0x93, 0xaf, 0x41, 0x0d, 0x2f, 0xdd, 0xd2, 0x1a, + 0x14, 0xa1, 0xba, 0xfe, 0xef, 0xcf, 0x5a, 0x83, 0x1a, 0x5e, 0x4f, 0x60, 0xeb, 0x72, 0xd9, 0x83, + 0xb7, 0x4b, 0x09, 0x07, 0x1e, 0xc0, 0x3d, 0xd6, 0xa9, 0xe2, 0xfd, 0x25, 0xab, 0x4f, 0xfa, 0xba, + 0xd9, 0xf0, 0xa3, 0x5b, 0xa4, 0xbb, 0xb7, 0x51, 0xad, 0x4f, 0x7c, 0x66, 0xad, 0x4f, 0x27, 0x6a, + 0xdd, 0x2c, 0xaf, 0x48, 0x72, 0x11, 0x36, 0xb7, 0xef, 0x9f, 0x99, 0x33, 0x38, 0x8b, 0xcb, 0xc3, + 0x44, 0x94, 0x81, 0xc5, 0x66, 0xc7, 0x86, 0x71, 0x67, 0x9a, 0xdf, 0x30, 0x9f, 0x69, 0xb7, 0xc8, + 0xf9, 0xc9, 0x35, 0x55, 0xcb, 0x27, 0x6a, 0xfd, 0xcb, 0xe4, 0x4c, 0x37, 0xdb, 0x1b, 0x53, 0xda, + 0xa6, 0xde, 0x2d, 0xfb, 0x2c, 0x1c, 0x3f, 0x39, 0x64, 0xa2, 0x4e, 0x0b, 0x49, 0x2f, 0x45, 0x75, + 0xad, 0xe5, 0xb4, 0x2e, 0xde, 0x21, 0x20, 0x5a, 0xb7, 0x60, 0x32, 0xad, 0xdb, 0xf0, 0xcb, 0xd4, + 0x7e, 0xd6, 0x74, 0x72, 0xde, 0xac, 0xb7, 0xf5, 0x5d, 0xd4, 0xdb, 0xef, 0xa5, 0x52, 0xbb, 0xb0, + 0x36, 0x9e, 0x0a, 0xda, 0xe9, 0xbc, 0x75, 0x1e, 0xdd, 0x7b, 0x1b, 0x5b, 0x2c, 0x12, 0xee, 0x9f, + 0x9f, 0x98, 0x67, 0x30, 0x2d, 0x21, 0x6d, 0xa9, 0x93, 0xa0, 0xba, 0xa4, 0x18, 0xd6, 0xbf, 0x62, + 0xa0, 0x65, 0xbf, 0x11, 0x34, 0xfa, 0x06, 0x82, 0x46, 0xc0, 0xee, 0x75, 0x2e, 0x41, 0x36, 0xbb, + 0x7c, 0x90, 0xdb, 0xb7, 0x5d, 0x0c, 0xc2, 0xcf, 0x48, 0x26, 0xcf, 0x77, 0x01, 0x27, 0x8e, 0x01, + 0xd5, 0xdc, 0xad, 0x9c, 0x0f, 0xad, 0xa7, 0xf5, 0x65, 0x96, 0xcd, 0x00, 0x3c, 0xbf, 0x40, 0xf1, + 0xae, 0x3a, 0xb8, 0x55, 0x8a, 0x3c, 0x0a, 0xc9, 0x85, 0x72, 0xd7, 0xb1, 0x9f, 0xa8, 0xf7, 0x1c, + 0xcd, 0x72, 0x21, 0x60, 0x34, 0x8c, 0xf5, 0x31, 0x52, 0x1b, 0xe1, 0xf8, 0x9e, 0x97, 0x98, 0x3e, + 0x68, 0xba, 0xbb, 0x5f, 0x51, 0x26, 0x3e, 0x87, 0x56, 0x7b, 0x29, 0xf6, 0x11, 0x88, 0xbd, 0x11, + 0xef, 0x31, 0x2d, 0x1c, 0x8f, 0x3f, 0xcc, 0x75, 0x3e, 0x84, 0x58, 0x56, 0x8f, 0x9d, 0x4a, 0x07, + 0x9c, 0x61, 0x92, 0x74, 0x00, 0x5d, 0x47, 0xa1, 0xfc, 0xf7, 0x43, 0x0b, 0x48, 0x16, 0xff, 0x9d, + 0xd4, 0xf2, 0x29, 0xfe, 0x2c, 0xd1, 0x6d, 0xde, 0xc9, 0x73, 0x0d, 0xe6, 0x46, 0xe2, 0xd0, 0x47, + 0x7a, 0x8a, 0x39, 0x88, 0xda, 0xf5, 0xb2, 0xb8, 0x04, 0x7f, 0x6d, 0x0b, 0xb6, 0xe1, 0x42, 0xd0, + 0xf0, 0xe5, 0x7e, 0x26, 0x28, 0xef, 0xc3, 0xf7, 0x87, 0xc1, 0x00, 0x61, 0x6d, 0x5f, 0xe2, 0xa6, + 0xbf, 0xc7, 0x36, 0x0d, 0x70, 0xba, 0x4f, 0xc5, 0xe9, 0x50, 0x7b, 0xfb, 0x0c, 0x72, 0x21, 0x1e, + 0xb7, 0x1a, 0x8b, 0x58, 0x36, 0x7b, 0x24, 0xc8, 0x6b, 0x8d, 0x38, 0xf5, 0x38, 0xac, 0x33, 0xd9, + 0x14, 0xfe, 0x22, 0x60, 0x67, 0x1e, 0x33, 0x8f, 0xb4, 0xfd, 0x6c, 0xa7, 0x3e, 0x31, 0xdb, 0xa6, + 0x91, 0xdf, 0x2a, 0x94, 0xe3, 0x93, 0xff, 0xd7, 0xa1, 0x35, 0xd3, 0x70, 0x4c, 0xae, 0x23, 0x06, + 0xb1, 0x00, 0xfc, 0x32, 0xdd, 0x46, 0x6a, 0xd9, 0x0a, 0xda, 0x8f, 0x7b, 0x83, 0x5a, 0xc6, 0x52, + 0x7b, 0x36, 0xe4, 0x25, 0x9d, 0xad, 0x0e, 0x0a, 0xdf, 0x8b, 0xe9, 0x79, 0x9f, 0x5d, 0x6f, 0x83, + 0x6f, 0xc4, 0xe6, 0x15, 0xc8, 0x11, 0x58, 0x2b, 0x51, 0x7e, 0xa4, 0x9b, 0x0f, 0x7e, 0x45, 0x74, + 0x67, 0xd0, 0x76, 0x77, 0x2d, 0x33, 0x52, 0x9a, 0xaf, 0x73, 0x8b, 0x1e, 0xba, 0x02, 0x82, 0x88, + 0xb9, 0x92, 0x01, 0x75, 0xc6, 0x55, 0x3c, 0xc7, 0xed, 0xc8, 0xd3, 0x7d, 0xb2, 0xb1, 0xc5, 0x65, + 0x78, 0xbe, 0x81, 0x74, 0x01, 0x17, 0x68, 0xad, 0x9b, 0xb8, 0xc2, 0xf3, 0x9f, 0x20, 0x3d, 0xbf, + 0x51, 0x01, 0x56, 0xc9, 0x73, 0xb8, 0x8b, 0xb5, 0xec, 0x87, 0xde, 0x0d, 0xde, 0x1f, 0xda, 0x0c, + 0x76, 0x6a, 0xf9, 0xc4, 0x38, 0x9e, 0xc3, 0x10, 0x46, 0xd5, 0xb8, 0xbb, 0x21, 0xd6, 0x0e, 0x71, + 0x15, 0xb3, 0x39, 0x3a, 0x58, 0x3e, 0xea, 0xaf, 0x00, 0x5e, 0xe9, 0x6a, 0x91, 0x57, 0x99, 0x40, + 0x89, 0x0b, 0x7c, 0x7f, 0x0a, 0xdf, 0x57, 0x39, 0x4c, 0x4d, 0x6c, 0xc1, 0xda, 0x4d, 0x9c, 0x74, + 0xae, 0x66, 0x96, 0x5f, 0x1c, 0xfd, 0xc5, 0x51, 0xac, 0xa5, 0x03, 0x6f, 0xcf, 0xbd, 0x21, 0xaf, + 0xb3, 0xbb, 0x98, 0x3e, 0x6c, 0xe1, 0x5c, 0xf2, 0xf5, 0x66, 0x1a, 0x99, 0x65, 0x5f, 0x37, 0xbf, + 0xb3, 0x29, 0x3c, 0x71, 0x2c, 0x16, 0xf8, 0x86, 0x34, 0x0d, 0xe9, 0x81, 0x96, 0x11, 0x17, 0x0b, + 0x6c, 0xa4, 0xdd, 0x55, 0x8a, 0x55, 0x88, 0x77, 0x54, 0x50, 0xee, 0xca, 0x77, 0x7a, 0x37, 0x63, + 0xfb, 0x43, 0xf9, 0x77, 0x7b, 0x98, 0x19, 0xeb, 0x60, 0x5b, 0x44, 0x78, 0xc8, 0xe4, 0x6c, 0xc6, + 0xb2, 0xe4, 0x3c, 0xee, 0xbe, 0xee, 0xa7, 0xd6, 0x86, 0xa0, 0x1e, 0x7a, 0x58, 0x69, 0x0d, 0x24, + 0x29, 0x1a, 0xa4, 0x7a, 0x79, 0x11, 0x1e, 0xaf, 0x1d, 0xd3, 0x7a, 0x89, 0x43, 0x22, 0x9f, 0x53, + 0x32, 0x8b, 0x2f, 0xc0, 0xd9, 0xb7, 0x78, 0x1e, 0xf5, 0x40, 0x83, 0xc7, 0x53, 0x3f, 0x7e, 0xed, + 0xb2, 0xfc, 0xf5, 0x30, 0x5a, 0x2e, 0xc3, 0xdb, 0x49, 0xc4, 0xeb, 0xe0, 0xfd, 0xa9, 0xe0, 0x32, + 0xe0, 0xbb, 0x02, 0x62, 0x11, 0xd4, 0x01, 0xe8, 0x0f, 0x92, 0x14, 0xa2, 0xf6, 0x15, 0x23, 0xe5, + 0x23, 0xcb, 0xa5, 0x91, 0x78, 0x9a, 0x4f, 0x8f, 0x3c, 0xcb, 0x1c, 0x43, 0x28, 0x4e, 0xf1, 0xfb, + 0x3a, 0xea, 0x16, 0x50, 0xbf, 0x9f, 0xe2, 0xda, 0xd8, 0x01, 0xaf, 0x09, 0x36, 0x58, 0x73, 0x79, + 0x0b, 0xb4, 0x96, 0x60, 0x2b, 0xa9, 0xe4, 0x38, 0x51, 0x70, 0x4c, 0x89, 0x00, 0x7f, 0xe5, 0xc0, + 0xf6, 0x09, 0xa5, 0xfe, 0x03, 0xd7, 0x08, 0x2f, 0x8c, 0xc7, 0x53, 0xf1, 0xc2, 0x35, 0x1b, 0xf1, + 0x92, 0xec, 0xfa, 0xfa, 0x28, 0x52, 0xf6, 0xa7, 0xa8, 0x35, 0x1c, 0x8b, 0xfa, 0xa6, 0xe2, 0xaa, + 0x94, 0xdd, 0x89, 0xb3, 0x21, 0x7b, 0xd4, 0x53, 0x04, 0x51, 0xf8, 0xad, 0x43, 0xec, 0xb5, 0xf8, + 0x7f, 0xdc, 0xe2, 0x49, 0x82, 0xb6, 0xa4, 0x74, 0xa6, 0xf0, 0x06, 0xe9, 0xcc, 0xe2, 0xef, 0x6a, + 0xd2, 0x19, 0x5d, 0x65, 0x11, 0xac, 0x9b, 0x8b, 0x5f, 0xe2, 0xd2, 0x19, 0x7f, 0x43, 0x34, 0x9a, + 0x94, 0xce, 0x00, 0xf5, 0x55, 0x1a, 0x14, 0xa7, 0x4a, 0x47, 0x94, 0x26, 0x13, 0xae, 0x00, 0x14, + 0x4e, 0x38, 0x52, 0x76, 0xc7, 0x90, 0x5e, 0x83, 0xfa, 0x54, 0x93, 0x0c, 0xda, 0xcd, 0xdc, 0x40, + 0x83, 0xaf, 0x23, 0xf9, 0x0d, 0xce, 0x85, 0xb1, 0xc5, 0xdf, 0xa6, 0x32, 0x1e, 0x4e, 0xe5, 0x75, + 0xf0, 0x74, 0x03, 0xe7, 0x5d, 0x8f, 0xc7, 0x90, 0xbe, 0x46, 0xdb, 0xb8, 0xbd, 0x11, 0x57, 0x21, + 0xb3, 0xf4, 0x76, 0x6d, 0xdb, 0xe8, 0x1b, 0xec, 0x0d, 0x6a, 0x96, 0xe1, 0x5b, 0x46, 0x0a, 0x99, + 0x04, 0x54, 0x12, 0xab, 0x10, 0xdd, 0x81, 0x61, 0xbc, 0xff, 0x5b, 0x62, 0x7c, 0x67, 0xd0, 0xbe, + 0x30, 0xf0, 0x84, 0x68, 0x02, 0xd8, 0xac, 0xd6, 0x6c, 0x45, 0x85, 0x90, 0xba, 0x5a, 0x07, 0xf0, + 0x99, 0x8d, 0x7e, 0x7c, 0x5f, 0xa0, 0x85, 0x81, 0x5f, 0x05, 0xed, 0x09, 0xbc, 0x89, 0xb6, 0x6d, + 0xdf, 0x3e, 0x2a, 0xea, 0x78, 0xa8, 0xa7, 0x7c, 0x1d, 0x03, 0x4a, 0x4a, 0xf7, 0xcc, 0x91, 0x34, + 0xae, 0x78, 0x93, 0x46, 0x2d, 0x42, 0x8e, 0xbd, 0x2c, 0x1a, 0x74, 0xf9, 0x80, 0x72, 0x0b, 0xe1, + 0x7d, 0xc3, 0x72, 0x1b, 0xda, 0x71, 0x36, 0xe2, 0xdd, 0x77, 0x94, 0x3d, 0xfb, 0x06, 0x42, 0x96, + 0xf4, 0x14, 0x72, 0xee, 0x8d, 0xad, 0x2c, 0x64, 0xbe, 0x3b, 0x81, 0x67, 0xfb, 0x8e, 0x44, 0x5c, + 0x17, 0xab, 0x91, 0x80, 0xfe, 0x63, 0x5e, 0x72, 0xcd, 0x66, 0x0d, 0xe4, 0x6a, 0x24, 0x97, 0x8d, + 0x35, 0x03, 0xad, 0xdc, 0x42, 0xdf, 0x0e, 0xb6, 0x1c, 0x7a, 0x47, 0xa6, 0xef, 0x62, 0xd6, 0x46, + 0xf7, 0xe0, 0x3a, 0x00, 0x0e, 0xba, 0xe0, 0x17, 0xb6, 0xcd, 0x88, 0xd6, 0xf0, 0x1d, 0xe0, 0xeb, + 0xcf, 0x13, 0xbc, 0xbb, 0xa7, 0x1a, 0x27, 0xed, 0x94, 0x01, 0xac, 0x3f, 0xe6, 0x74, 0x7e, 0x0c, + 0x57, 0xa9, 0xde, 0x59, 0xb6, 0x45, 0xa2, 0x89, 0x7a, 0xae, 0x44, 0xce, 0x25, 0x1f, 0x4b, 0x8a, + 0x8f, 0x7e, 0xad, 0x15, 0xed, 0xf8, 0x22, 0xfd, 0x9d, 0x26, 0x53, 0xbc, 0xed, 0xb3, 0x65, 0x8a, + 0x74, 0x5a, 0xa6, 0x91, 0xc3, 0x6f, 0x7c, 0x1f, 0x72, 0x64, 0x62, 0xaf, 0xd0, 0x55, 0x28, 0x09, + 0xd1, 0xc4, 0x09, 0x36, 0xc6, 0xf6, 0xcb, 0x22, 0x9e, 0x34, 0x83, 0x3e, 0x79, 0x45, 0x3d, 0x6d, + 0xc6, 0xb4, 0xd3, 0x66, 0xd8, 0x4f, 0xa8, 0x7b, 0x08, 0x4f, 0x96, 0x09, 0xe1, 0xe4, 0xc9, 0xb2, + 0x85, 0x97, 0xd8, 0x41, 0x79, 0xbd, 0xaf, 0x90, 0x19, 0x83, 0x11, 0x3c, 0x47, 0x46, 0xfb, 0xb7, + 0xda, 0x49, 0x32, 0x9e, 0x7a, 0x2d, 0xbf, 0xd3, 0x29, 0x07, 0xac, 0x7f, 0x9d, 0x5f, 0x60, 0xd6, + 0xd1, 0xe9, 0x3a, 0x1d, 0xfb, 0x7c, 0xd0, 0xf8, 0x57, 0x07, 0x59, 0x61, 0x3e, 0x93, 0xf5, 0x7f, + 0x85, 0x1a, 0x06, 0x07, 0x64, 0x5d, 0x84, 0xed, 0x19, 0xe8, 0x39, 0x5b, 0x75, 0x49, 0xe8, 0x38, + 0x31, 0xea, 0x71, 0xf2, 0x73, 0x66, 0xc2, 0x72, 0x69, 0x91, 0x20, 0x7b, 0x5e, 0xe5, 0x27, 0xab, + 0xfc, 0x2b, 0xf9, 0xe9, 0x27, 0x61, 0x39, 0x3f, 0x67, 0x46, 0x67, 0xcc, 0x06, 0x49, 0x07, 0x13, + 0x71, 0x76, 0x4b, 0x2e, 0x09, 0x0d, 0x53, 0x9f, 0x33, 0xf3, 0x87, 0x6f, 0x89, 0xf6, 0x94, 0xa9, + 0x94, 0xfe, 0x49, 0x72, 0xee, 0x34, 0x2a, 0xce, 0xff, 0x44, 0x82, 0x8a, 0xbb, 0xf1, 0xa4, 0xd9, + 0x0b, 0x7f, 0x99, 0x8c, 0xfb, 0x2f, 0xd8, 0xe9, 0x3b, 0x48, 0x5c, 0x74, 0x37, 0x33, 0x16, 0x16, + 0x33, 0x73, 0x64, 0xf3, 0xc9, 0x6f, 0x46, 0xe9, 0xc4, 0xe4, 0xf5, 0x51, 0x5b, 0x2e, 0x8c, 0x1f, + 0xf0, 0xd1, 0x30, 0xf3, 0x75, 0x72, 0x18, 0x2d, 0x2c, 0xc3, 0x58, 0x7d, 0xea, 0x24, 0xa9, 0x16, + 0xb7, 0xb7, 0x54, 0x51, 0x79, 0x87, 0xba, 0xff, 0xa1, 0x9e, 0x1b, 0x3c, 0x1b, 0xd9, 0x54, 0x27, + 0x44, 0x99, 0xaa, 0x0d, 0xe6, 0xf5, 0x75, 0xc5, 0x9a, 0x36, 0x18, 0xc7, 0xe2, 0xbb, 0x73, 0x69, + 0x9f, 0x04, 0x65, 0xb9, 0x59, 0x8e, 0x19, 0xc9, 0x5d, 0x36, 0x65, 0x99, 0x94, 0x0d, 0x6d, 0xdc, + 0x4c, 0x14, 0x15, 0xe9, 0xf5, 0xa7, 0x93, 0x86, 0x5b, 0xa8, 0xbf, 0x9e, 0xd2, 0xf6, 0xcd, 0x80, + 0x77, 0x5f, 0x41, 0x34, 0x45, 0x6d, 0xe2, 0x54, 0x93, 0xd7, 0xa6, 0xe7, 0x7b, 0x45, 0x48, 0x45, + 0x04, 0x67, 0xc9, 0x25, 0x58, 0xa7, 0xae, 0x99, 0x36, 0xca, 0x7b, 0xa2, 0x81, 0xd2, 0x6f, 0xe5, + 0xdf, 0xb2, 0x7e, 0xe1, 0x45, 0x66, 0x84, 0xf8, 0xb4, 0xeb, 0xa4, 0x6c, 0x83, 0xf8, 0x27, 0xe9, + 0xec, 0x11, 0xba, 0xf2, 0x6c, 0x7a, 0x75, 0xd7, 0x6d, 0x26, 0xed, 0xfa, 0xbd, 0x99, 0xac, 0x4f, + 0xfc, 0x30, 0xd5, 0xc7, 0xca, 0xb5, 0xcf, 0x34, 0xa8, 0xda, 0x67, 0xb8, 0xc6, 0x40, 0x82, 0x82, + 0xab, 0x69, 0x90, 0xf0, 0xcc, 0x2d, 0x41, 0xc2, 0x72, 0xaa, 0xd9, 0x3f, 0xa5, 0x4a, 0x8d, 0xb4, + 0x1d, 0x8f, 0xb8, 0x8f, 0x73, 0x4c, 0xfe, 0xd7, 0xa8, 0x74, 0x9f, 0xba, 0xe3, 0x31, 0x53, 0x76, + 0x4a, 0x7a, 0x92, 0x53, 0x1d, 0x88, 0x37, 0x26, 0xe1, 0xa0, 0x71, 0xe4, 0x33, 0xa0, 0x80, 0xeb, + 0xd1, 0xfb, 0x5a, 0xaa, 0x84, 0xd8, 0xff, 0xaf, 0x53, 0x9d, 0x55, 0xa9, 0xb4, 0xd9, 0x7b, 0x85, + 0x02, 0xa7, 0x24, 0x88, 0x53, 0x4a, 0xdc, 0x4c, 0x5c, 0x5e, 0x08, 0x23, 0xc2, 0x79, 0x83, 0xb3, + 0xc0, 0xa9, 0xea, 0x43, 0x62, 0x9a, 0xfc, 0x71, 0x87, 0xe6, 0xa2, 0xdd, 0x30, 0xfc, 0x7e, 0xdd, + 0x53, 0x7b, 0x93, 0x93, 0x2d, 0x6b, 0x21, 0x7f, 0x1f, 0xf5, 0xc0, 0xa1, 0xf2, 0x4a, 0x96, 0x7a, + 0xaa, 0xc5, 0x8c, 0xd2, 0x4f, 0x55, 0xc2, 0x59, 0xea, 0xdb, 0x12, 0xb2, 0xdf, 0x98, 0x83, 0x2d, + 0x77, 0x52, 0x1a, 0xbd, 0xc7, 0x23, 0xeb, 0xa3, 0xc2, 0x7a, 0x21, 0x5d, 0x1e, 0xca, 0xa5, 0xa1, + 0x84, 0x1d, 0xc6, 0x48, 0x1a, 0x1a, 0xf5, 0xd5, 0x06, 0x67, 0x41, 0x9e, 0x33, 0x23, 0x65, 0x75, + 0x02, 0xdf, 0x23, 0xa0, 0x13, 0x63, 0x48, 0x51, 0xbf, 0x43, 0xe7, 0x60, 0xe8, 0x9c, 0x6f, 0x8d, + 0x6a, 0xeb, 0x6c, 0xca, 0x79, 0x7e, 0xec, 0x96, 0x46, 0xb7, 0x99, 0xda, 0x76, 0x76, 0xd2, 0x3c, + 0x4f, 0x3f, 0x01, 0xd3, 0x45, 0xb2, 0x72, 0x6d, 0x54, 0x71, 0x76, 0xaf, 0xbd, 0xc5, 0x51, 0xa5, + 0xb9, 0x8d, 0xfb, 0x14, 0x15, 0x06, 0xed, 0x3c, 0x85, 0xff, 0xbd, 0x5b, 0xe4, 0x23, 0x77, 0x51, + 0xcd, 0x7e, 0x9f, 0x7a, 0xa2, 0xe2, 0x06, 0x0c, 0x34, 0x9e, 0xc0, 0x40, 0xab, 0xe4, 0x75, 0x09, + 0x78, 0x08, 0xc0, 0xea, 0x67, 0xa5, 0x1d, 0x16, 0x51, 0x74, 0x8b, 0x4e, 0x56, 0x7e, 0x3c, 0xb6, + 0xe8, 0x12, 0x2b, 0x38, 0x1e, 0x2b, 0x42, 0xca, 0x6c, 0x6c, 0x09, 0xe3, 0x6b, 0xc4, 0x44, 0x9d, + 0x6c, 0xb5, 0x59, 0x48, 0xd3, 0x0d, 0xeb, 0xcd, 0x59, 0x36, 0x70, 0xe1, 0x71, 0x2a, 0xbb, 0x1c, + 0x75, 0x9c, 0x52, 0xbc, 0xd9, 0x14, 0xab, 0x81, 0x78, 0x66, 0xeb, 0x9f, 0xe3, 0x2e, 0xe5, 0x02, + 0xdc, 0xe1, 0xd0, 0xd6, 0x14, 0x5c, 0x4f, 0x70, 0x5d, 0xb1, 0x59, 0x42, 0x79, 0xf6, 0xe4, 0x0a, + 0x10, 0xa6, 0x33, 0x06, 0xff, 0x7f, 0xb0, 0x7e, 0x2c, 0xb9, 0xff, 0xa6, 0xeb, 0x87, 0x35, 0x6d, + 0xfd, 0x98, 0x50, 0xe1, 0x8a, 0x60, 0x6a, 0x49, 0xc3, 0xad, 0xaf, 0x1d, 0x4b, 0x5a, 0xec, 0xb7, + 0xfd, 0xed, 0x4d, 0xd7, 0x8e, 0x25, 0x5f, 0xb9, 0xc9, 0xda, 0x31, 0x01, 0xd0, 0x75, 0xf0, 0x96, + 0xd7, 0x8e, 0x0f, 0xff, 0x7f, 0xb7, 0x76, 0x84, 0xda, 0xca, 0x2b, 0xb5, 0x75, 0xa2, 0x1c, 0xd6, + 0x09, 0x75, 0xbc, 0xfe, 0xab, 0xab, 0x44, 0x57, 0xca, 0x2a, 0xd1, 0x93, 0xbe, 0x4a, 0x2c, 0x59, + 0xa9, 0xad, 0x12, 0x8e, 0xa9, 0x56, 0x89, 0xac, 0x3f, 0xb7, 0x4a, 0x2c, 0xe9, 0x48, 0x5b, 0x25, + 0xb2, 0x6e, 0xb2, 0x4a, 0x64, 0xa5, 0xad, 0x12, 0xe7, 0x52, 0x56, 0x89, 0x77, 0x6e, 0xb2, 0x4a, + 0xdc, 0x80, 0x43, 0x96, 0xac, 0xba, 0xf5, 0x15, 0x62, 0xc9, 0xda, 0xa9, 0xf6, 0xc4, 0xe3, 0x6d, + 0x7c, 0x85, 0x58, 0x32, 0x48, 0x25, 0xb7, 0x4d, 0x5a, 0x21, 0x10, 0x97, 0xac, 0xfa, 0x4b, 0x70, + 0x49, 0xba, 0x4c, 0x6a, 0xc9, 0x93, 0xb7, 0x88, 0x4b, 0x9e, 0xa2, 0x1a, 0x7e, 0xeb, 0xb3, 0x64, + 0x52, 0x4b, 0x76, 0x24, 0x20, 0xd2, 0x2f, 0x2f, 0x4f, 0xe0, 0x92, 0x79, 0xb0, 0xb6, 0x58, 0x80, + 0x2a, 0x34, 0x87, 0xf4, 0xbe, 0x01, 0x7e, 0x23, 0x63, 0xc9, 0xb3, 0x5c, 0xc2, 0x0b, 0xf8, 0x63, + 0x26, 0xa5, 0x7c, 0x8b, 0xa7, 0xd4, 0x76, 0x73, 0xd5, 0xdd, 0xa9, 0x5b, 0x92, 0x46, 0xfd, 0x7f, + 0x79, 0xe7, 0xfc, 0x91, 0xde, 0xc8, 0xea, 0x15, 0xbd, 0xbd, 0xab, 0x53, 0xae, 0x9b, 0x97, 0x97, + 0x94, 0xa6, 0x5f, 0x37, 0xbf, 0x21, 0x0e, 0xbf, 0x69, 0x3e, 0xf4, 0x0e, 0x1b, 0xfb, 0x37, 0xa3, + 0xde, 0x85, 0x37, 0xcd, 0x87, 0x7e, 0x0c, 0xbf, 0xef, 0xb2, 0xb1, 0x27, 0xcd, 0x3c, 0x73, 0xa0, + 0xe8, 0xf9, 0xcd, 0x65, 0xfc, 0xce, 0xb2, 0x4c, 0x1f, 0xf5, 0x00, 0x0a, 0x52, 0x1f, 0xd5, 0x9d, + 0x95, 0xbc, 0x2e, 0xc5, 0xc6, 0x1e, 0xaf, 0x4d, 0xaf, 0x9c, 0x0e, 0xfd, 0xfc, 0xf0, 0x7b, 0x10, + 0xd8, 0xe0, 0x54, 0xbf, 0xbf, 0x85, 0x5f, 0x6b, 0xc2, 0x4f, 0x20, 0xbf, 0x95, 0xf0, 0xeb, 0x4c, + 0x26, 0x25, 0xbf, 0xd5, 0xf4, 0xad, 0xc5, 0xcb, 0xd2, 0xb1, 0x1b, 0xfb, 0x88, 0xe2, 0x45, 0xe1, + 0xf7, 0x68, 0xc2, 0x4b, 0x4f, 0x7e, 0x7f, 0x97, 0x16, 0x2d, 0x9b, 0xea, 0x37, 0x34, 0x45, 0xda, + 0x27, 0xe1, 0xb7, 0x3d, 0x51, 0x86, 0x95, 0xfc, 0x76, 0xc0, 0xef, 0x85, 0x44, 0xb4, 0xbb, 0xc8, + 0xef, 0xc5, 0xb4, 0xba, 0xe4, 0x91, 0xdf, 0xcb, 0xf0, 0xfb, 0xd7, 0x84, 0xdf, 0x5f, 0x91, 0xdf, + 0xbf, 0xa5, 0xc5, 0xcb, 0x27, 0xbf, 0xa3, 0xe9, 0xe5, 0x66, 0x25, 0xeb, 0xa2, 0xc5, 0x73, 0x92, + 0xdf, 0xcf, 0xd2, 0xfc, 0xe6, 0x52, 0xda, 0x5f, 0x4c, 0x91, 0x16, 0xc6, 0xec, 0xf1, 0xdf, 0x0a, + 0x82, 0xea, 0x55, 0x4c, 0x7e, 0x1f, 0xc0, 0xef, 0x0f, 0x4c, 0xf3, 0x2b, 0xa1, 0xb4, 0x7f, 0x9c, + 0x22, 0xad, 0xc2, 0xc6, 0x9e, 0xd0, 0x0b, 0x77, 0xa8, 0x5e, 0x65, 0xe8, 0xf7, 0x84, 0x81, 0xbe, + 0x35, 0xbf, 0x7b, 0xb1, 0xaf, 0x9e, 0xc8, 0xb9, 0xb1, 0xaf, 0x9e, 0xb0, 0xc2, 0xef, 0x73, 0x09, + 0xaf, 0x4a, 0xf2, 0xfb, 0x3c, 0xfc, 0xc4, 0x44, 0x9d, 0xff, 0x86, 0xfc, 0x6c, 0xf0, 0x73, 0x25, + 0xfc, 0x16, 0x90, 0x5f, 0x09, 0xfc, 0xfe, 0x26, 0x91, 0xf6, 0xfe, 0x9b, 0x8e, 0xe5, 0x51, 0x88, + 0x77, 0x7f, 0x22, 0xad, 0x9b, 0xd2, 0x56, 0xc1, 0xaf, 0x21, 0xe1, 0x57, 0x45, 0x7e, 0x00, 0x57, + 0x4f, 0xb4, 0x24, 0xfc, 0x3c, 0xe4, 0xf7, 0x10, 0xfc, 0x56, 0x26, 0xfc, 0xaa, 0x6f, 0x56, 0xc6, + 0x13, 0xed, 0x69, 0xfd, 0x5c, 0x47, 0x7e, 0xbd, 0x69, 0x7e, 0x0b, 0xc9, 0xef, 0xd1, 0x34, 0x3f, + 0xef, 0x54, 0x13, 0x30, 0xc6, 0x36, 0xd7, 0x21, 0x0c, 0xc3, 0xbb, 0x49, 0x7d, 0x2f, 0x4c, 0x0d, + 0x4f, 0xbb, 0x57, 0xac, 0x4e, 0x41, 0x3e, 0x17, 0xdb, 0x7b, 0x56, 0x76, 0x4c, 0xa9, 0x08, 0xa0, + 0xb3, 0x27, 0xba, 0xa6, 0x33, 0xda, 0xd9, 0xdb, 0x93, 0xf0, 0x99, 0x7c, 0x97, 0x39, 0xd4, 0xda, + 0x16, 0xed, 0xed, 0xed, 0x4a, 0x49, 0xb2, 0x32, 0x25, 0x76, 0x28, 0xd2, 0x1a, 0xee, 0xe8, 0x5c, + 0x99, 0x0c, 0xed, 0x6a, 0x7d, 0xb4, 0x3d, 0x92, 0x74, 0x46, 0x7a, 0x7b, 0xa3, 0x2b, 0xbb, 0x5a, + 0xfb, 0xfa, 0x58, 0x5b, 0x67, 0xdf, 0xea, 0x92, 0xce, 0x9e, 0x60, 0x2f, 0x53, 0xff, 0xe3, 0xed, + 0xd7, 0xb6, 0x48, 0x6f, 0x98, 0xcd, 0x67, 0x61, 0x78, 0x85, 0x78, 0xb4, 0x44, 0xc5, 0xf1, 0xe6, + 0x67, 0x09, 0xde, 0xfe, 0x14, 0xab, 0x3b, 0x3a, 0xc3, 0x74, 0x77, 0x7c, 0xb5, 0x4b, 0xac, 0x6b, + 0xed, 0x8b, 0x6a, 0xdf, 0x55, 0x3d, 0x8f, 0xf2, 0xcf, 0x94, 0x52, 0x12, 0xcd, 0xf6, 0x68, 0xb9, + 0x7b, 0x12, 0xf7, 0xe0, 0x6b, 0x19, 0xbf, 0x57, 0xfd, 0x20, 0xab, 0x5a, 0xd1, 0xbb, 0x26, 0x5a, + 0x52, 0x52, 0xc2, 0x6f, 0x27, 0x3f, 0x00, 0xfe, 0x6b, 0xa2, 0x6d, 0xbd, 0x8f, 0xf4, 0xb0, 0x07, + 0x3b, 0x7b, 0xe0, 0x8d, 0x57, 0xb0, 0xc5, 0xb6, 0x48, 0xeb, 0x23, 0xed, 0x11, 0xe6, 0x67, 0x4b, + 0xf0, 0x6e, 0x7f, 0xb8, 0x15, 0xef, 0xa6, 0xb2, 0x45, 0x6c, 0x69, 0xb8, 0xad, 0x15, 0xf2, 0x6a, + 0x6a, 0xef, 0xe2, 0xf7, 0xf1, 0x7b, 0xa2, 0x78, 0xf7, 0x96, 0x55, 0xd1, 0x0d, 0x53, 0xf2, 0x6b, + 0x85, 0x22, 0x9a, 0x7a, 0x5a, 0xc3, 0x7d, 0x1d, 0xbd, 0x51, 0x56, 0x85, 0x8e, 0x0e, 0xc8, 0x72, + 0x49, 0x4f, 0xd7, 0xa3, 0x22, 0x76, 0x5d, 0x1f, 0x2b, 0x46, 0x5f, 0xba, 0xe6, 0xdf, 0xc7, 0x8a, + 0xd8, 0xb2, 0x4e, 0x28, 0x6c, 0xc5, 0xa3, 0xac, 0x1e, 0xc2, 0xd8, 0x3d, 0xac, 0xa6, 0x3d, 0xda, + 0xda, 0xd9, 0xd5, 0x47, 0xce, 0x3e, 0x2a, 0x9b, 0x2d, 0x61, 0xd5, 0xbd, 0xe1, 0x47, 0x59, 0x35, + 0x0b, 0xb4, 0xf7, 0xb4, 0x76, 0xb7, 0x63, 0xbd, 0x03, 0xac, 0x1e, 0xfa, 0x30, 0xd2, 0xdd, 0x4a, + 0x43, 0x07, 0x1e, 0xf5, 0x0c, 0xaf, 0xaf, 0xf6, 0x69, 0xc5, 0x2e, 0x65, 0x0d, 0xed, 0xad, 0x6b, + 0xdb, 0x45, 0x68, 0x26, 0x6b, 0x60, 0x8d, 0x6b, 0xa0, 0x56, 0x8f, 0xb4, 0x3e, 0xca, 0x1a, 0x21, + 0xfb, 0xae, 0xf6, 0x28, 0x65, 0x51, 0x47, 0xc9, 0xf1, 0xab, 0xb6, 0x3b, 0x1c, 0x7d, 0x54, 0x8c, + 0x46, 0x5a, 0xfb, 0x3a, 0x70, 0xb4, 0x43, 0xed, 0x6a, 0x5f, 0xe2, 0xd5, 0x64, 0x6d, 0x58, 0xee, + 0xbf, 0xff, 0xfe, 0xb4, 0xb0, 0x29, 0xef, 0xb0, 0x6e, 0x12, 0x35, 0x2c, 0x01, 0x3f, 0x17, 0xfc, + 0xee, 0x4e, 0xbd, 0x5b, 0xaa, 0xba, 0xf1, 0x7b, 0xb6, 0xea, 0x76, 0xa9, 0x6e, 0x2d, 0xdc, 0x9e, + 0x76, 0x0f, 0xd5, 0x76, 0xab, 0xf7, 0x50, 0x61, 0x2d, 0x51, 0xef, 0xa1, 0x0e, 0x75, 0xdd, 0xfa, + 0x3d, 0xd4, 0xa1, 0x1d, 0x37, 0xbf, 0x87, 0x3a, 0x34, 0x3c, 0xf9, 0x1e, 0xea, 0x13, 0x07, 0x3f, + 0xeb, 0x1e, 0xea, 0x50, 0x78, 0xf2, 0x3d, 0xd4, 0xa1, 0xd8, 0x8d, 0xf7, 0x50, 0x87, 0x36, 0xdf, + 0x70, 0x0f, 0xd5, 0xf6, 0x97, 0xdc, 0x43, 0xad, 0xd0, 0x61, 0x1b, 0x87, 0x3d, 0xe9, 0x14, 0x48, + 0xa8, 0x0c, 0xf3, 0xfe, 0x66, 0x1e, 0xe6, 0x99, 0x75, 0x94, 0xda, 0x49, 0x34, 0xc3, 0xb0, 0xdf, + 0xce, 0xd6, 0xd2, 0x2e, 0xf1, 0xc4, 0x78, 0x2a, 0x35, 0xa0, 0xdd, 0xd8, 0x74, 0x17, 0x68, 0x16, + 0x97, 0x55, 0xdb, 0x33, 0xf3, 0xd4, 0x9d, 0xa8, 0x84, 0x4f, 0x7c, 0x45, 0xd2, 0x27, 0x69, 0xab, + 0xf9, 0xfa, 0x19, 0xed, 0x36, 0x57, 0x85, 0xcd, 0x5e, 0x81, 0x96, 0x53, 0xa1, 0x85, 0x50, 0x83, + 0xe1, 0x07, 0x6b, 0xc7, 0x95, 0x53, 0x92, 0x97, 0x89, 0xfe, 0x2d, 0x0e, 0x96, 0xf0, 0xed, 0xf4, + 0x6f, 0xa1, 0xdd, 0xd1, 0x7c, 0xe4, 0x90, 0x7c, 0x1b, 0xf0, 0xcc, 0x4e, 0xc8, 0x5c, 0x0d, 0x6d, + 0xf5, 0xfc, 0x13, 0x49, 0xd5, 0x9e, 0x93, 0x74, 0x92, 0x1e, 0x52, 0x62, 0x8f, 0xeb, 0xa4, 0x2c, + 0xde, 0x8f, 0xc4, 0x69, 0xaa, 0xdc, 0x0d, 0x4a, 0x12, 0xc4, 0xb2, 0x70, 0x65, 0x44, 0xf0, 0x56, + 0xa5, 0x68, 0xd9, 0xe7, 0xda, 0x91, 0x55, 0x8b, 0xf1, 0x5a, 0x59, 0x90, 0x4f, 0xc0, 0xbf, 0xc5, + 0xce, 0x50, 0x3b, 0x32, 0x8e, 0x2a, 0xc4, 0xe8, 0x4f, 0x8b, 0xb1, 0x06, 0xea, 0x16, 0x53, 0x43, + 0x56, 0xa4, 0x85, 0x7c, 0xc3, 0xbf, 0xe5, 0x6e, 0x6e, 0x4d, 0x0a, 0xc3, 0xea, 0xd2, 0xc2, 0xbe, + 0x45, 0x61, 0x66, 0x35, 0xac, 0x30, 0xa1, 0xb7, 0xd1, 0x45, 0xa1, 0x3b, 0x29, 0xd4, 0xa2, 0x86, + 0x9a, 0x27, 0x85, 0x3e, 0x48, 0xa1, 0x56, 0x1e, 0x2a, 0x7c, 0x9c, 0x96, 0xef, 0xbf, 0x50, 0x58, + 0xbe, 0x1a, 0x76, 0x32, 0x2d, 0xec, 0x4d, 0x0a, 0x2b, 0x50, 0xc3, 0x5e, 0xf3, 0xae, 0x8f, 0x3f, + 0xc5, 0x47, 0x18, 0x7c, 0x2b, 0x48, 0x2b, 0xe0, 0xf3, 0x40, 0xfd, 0x79, 0xa0, 0x2f, 0x26, 0x48, + 0x1e, 0x3c, 0xf6, 0xad, 0x32, 0x08, 0x11, 0x31, 0x84, 0x6d, 0xe4, 0x3e, 0x2f, 0x1f, 0x06, 0x1f, + 0x3b, 0xf8, 0x44, 0xb9, 0x7b, 0x9f, 0x08, 0x6e, 0x27, 0xb8, 0xdb, 0xb8, 0xfb, 0xff, 0xe0, 0xf9, + 0x85, 0x52, 0x70, 0x37, 0x73, 0xf7, 0xeb, 0x6f, 0x82, 0xdb, 0x05, 0xee, 0x1a, 0x57, 0x53, 0x2d, + 0x8e, 0xd0, 0xf3, 0xe2, 0x6a, 0x26, 0x6e, 0x7d, 0x0b, 0xca, 0x18, 0xb2, 0xbb, 0xef, 0x46, 0x0b, + 0x31, 0x85, 0x52, 0xff, 0xa8, 0x1b, 0xa8, 0x01, 0x0b, 0xf2, 0xd6, 0xe2, 0x2a, 0x65, 0xc2, 0xe6, + 0x64, 0x46, 0x18, 0x4d, 0x8b, 0x77, 0x3d, 0x33, 0x48, 0x82, 0x7f, 0x0d, 0xa4, 0x28, 0x77, 0x35, + 0xe1, 0x7d, 0x63, 0xb2, 0xb6, 0x61, 0x92, 0xee, 0xa4, 0x3d, 0xa7, 0x1d, 0x8d, 0x23, 0xe0, 0x2e, + 0x4d, 0xb8, 0x87, 0xc9, 0xed, 0x4c, 0xb8, 0xd7, 0x91, 0xdb, 0x9e, 0x70, 0x77, 0x90, 0x5b, 0x4c, + 0xb8, 0x5b, 0x1a, 0x47, 0x6c, 0x45, 0xac, 0x02, 0xdb, 0xab, 0xb4, 0x01, 0xb5, 0xcb, 0xd8, 0x8b, + 0x49, 0x6b, 0x3b, 0xd7, 0x1b, 0x28, 0x76, 0x7e, 0xaa, 0x05, 0x9e, 0xeb, 0x15, 0xe4, 0x67, 0x4d, + 0xf3, 0xb3, 0x93, 0x5f, 0x9a, 0xf5, 0x9e, 0xeb, 0x16, 0xf2, 0x4b, 0xb3, 0xde, 0x33, 0x31, 0xd1, + 0x38, 0xe2, 0xdb, 0x1a, 0x52, 0xad, 0x73, 0x4a, 0x10, 0x0a, 0x7e, 0xef, 0x53, 0x3c, 0x7d, 0x5a, + 0xbc, 0x53, 0x50, 0xab, 0x45, 0x49, 0xdb, 0xb3, 0x40, 0x67, 0x9b, 0x90, 0xce, 0x6e, 0xd0, 0x73, + 0x5d, 0xa6, 0xe0, 0x2a, 0x62, 0x05, 0x41, 0xa6, 0x2c, 0x93, 0x99, 0x22, 0xa7, 0xcd, 0x35, 0x39, + 0x69, 0xef, 0x5c, 0xf5, 0xf9, 0xfa, 0x0d, 0x3e, 0xc1, 0xc4, 0x3c, 0x9b, 0x27, 0xf2, 0x93, 0x3b, + 0xa5, 0xc0, 0xb5, 0xdb, 0xc9, 0x9a, 0x36, 0x6a, 0xe1, 0x77, 0xfd, 0x7c, 0x54, 0x5a, 0x8d, 0x16, + 0x6a, 0xf0, 0x0e, 0x8d, 0xe7, 0x7f, 0x89, 0x95, 0xa3, 0x55, 0x2c, 0x0b, 0x2d, 0x6c, 0xd9, 0x16, + 0xbb, 0x02, 0x68, 0x4b, 0xe7, 0xb5, 0x57, 0x99, 0x18, 0xb4, 0xd9, 0xa1, 0xc5, 0x72, 0x29, 0x9e, + 0x65, 0x55, 0x63, 0x78, 0xd2, 0xc2, 0x4d, 0xb2, 0x75, 0x5d, 0xc1, 0x99, 0x91, 0x85, 0xe3, 0xca, + 0x90, 0x94, 0x8b, 0x37, 0xf8, 0xd0, 0x8a, 0x70, 0xf0, 0x38, 0xb6, 0xa3, 0x4b, 0x9b, 0x81, 0x07, + 0x55, 0xfd, 0xb6, 0x51, 0x67, 0x2f, 0x5b, 0x07, 0xb5, 0xeb, 0x17, 0xf3, 0x48, 0x6f, 0xe6, 0x74, + 0x80, 0x77, 0xe7, 0x0a, 0xfe, 0x2d, 0x84, 0x1c, 0xf4, 0xd6, 0x05, 0x99, 0x61, 0x9e, 0xcc, 0x84, + 0x0e, 0x72, 0x99, 0x50, 0x17, 0xb4, 0x39, 0x86, 0x30, 0x03, 0xfe, 0xb3, 0x64, 0xa6, 0x7b, 0xb8, + 0x70, 0x35, 0xb3, 0xf3, 0xb3, 0x38, 0x86, 0x32, 0xa8, 0x2d, 0xd9, 0x51, 0xb6, 0x37, 0xd8, 0xfc, + 0x04, 0x41, 0x80, 0xe9, 0xec, 0x18, 0x32, 0x13, 0x5a, 0x09, 0xe3, 0xef, 0x74, 0xff, 0xe2, 0x50, + 0xd5, 0x87, 0xcc, 0x3a, 0xd7, 0x0b, 0xd0, 0xb8, 0x9b, 0xe5, 0x57, 0x7f, 0xc8, 0xf2, 0xe7, 0xd6, + 0xe3, 0xbd, 0x3f, 0xcf, 0x77, 0x11, 0xbf, 0xea, 0x98, 0x7f, 0xcb, 0x5c, 0x98, 0xb5, 0x50, 0x63, + 0x9b, 0xd4, 0x4f, 0xe4, 0xbd, 0x9c, 0xc8, 0xd3, 0x03, 0x70, 0x29, 0x6b, 0xb9, 0xca, 0x2c, 0xfb, + 0x0d, 0x4c, 0x05, 0xd8, 0x28, 0x06, 0xb1, 0xcb, 0xd4, 0x51, 0x74, 0x91, 0xed, 0x8c, 0xa0, 0x9a, + 0xb6, 0x23, 0x2d, 0x6d, 0x87, 0x96, 0x16, 0x78, 0x44, 0x96, 0xbd, 0x11, 0x6f, 0xec, 0x91, 0xc5, + 0x8a, 0xdb, 0x23, 0x82, 0x53, 0x78, 0x6f, 0xf7, 0xe3, 0xbb, 0x99, 0x99, 0xac, 0xe8, 0x81, 0xcf, + 0xaf, 0xff, 0x79, 0xc3, 0x6e, 0xa6, 0x77, 0x2d, 0x85, 0xd9, 0x51, 0x05, 0x6b, 0x56, 0x05, 0xf4, + 0x76, 0x25, 0x7d, 0xeb, 0x98, 0x5b, 0x6a, 0x66, 0x35, 0xe0, 0xf6, 0x8a, 0xdd, 0xcc, 0xbe, 0xf5, + 0x2d, 0x98, 0x57, 0x15, 0x38, 0x9f, 0xe6, 0xa2, 0xdd, 0x5f, 0x96, 0xad, 0xd5, 0xc3, 0x5a, 0x3b, + 0x7e, 0xfd, 0xbc, 0xa6, 0x75, 0x97, 0x6a, 0xb5, 0x45, 0xad, 0x53, 0x38, 0xad, 0x4e, 0x61, 0xad, + 0x4e, 0xfc, 0xb6, 0x85, 0xfe, 0xb2, 0xa3, 0x88, 0x20, 0x02, 0xfa, 0x6a, 0xd1, 0x55, 0x23, 0x8b, + 0x76, 0x9d, 0x1a, 0xb1, 0x79, 0x6c, 0x2f, 0x33, 0x2b, 0xea, 0xdd, 0xdc, 0xac, 0xc7, 0xd3, 0x4c, + 0x23, 0x57, 0x80, 0xf3, 0xc5, 0xbc, 0x0c, 0xd0, 0x37, 0xc9, 0x19, 0x2b, 0x27, 0x66, 0x6c, 0xb5, + 0x64, 0x91, 0xcc, 0xa8, 0xa7, 0x14, 0x20, 0x1c, 0xbf, 0x75, 0xa8, 0x5b, 0x93, 0x5b, 0x80, 0x0c, + 0xbe, 0x49, 0x3e, 0xc5, 0x64, 0x57, 0x33, 0xa0, 0xd6, 0xae, 0x98, 0x19, 0xa1, 0xb6, 0x65, 0x89, + 0xda, 0xde, 0x45, 0x38, 0x3b, 0x9f, 0x8f, 0xa9, 0xfe, 0xe1, 0xa9, 0xc6, 0x54, 0x9e, 0xc7, 0xeb, + 0x48, 0xf5, 0xc8, 0x66, 0x72, 0xfd, 0x55, 0xa3, 0x55, 0x6a, 0x60, 0x6d, 0xf6, 0x1e, 0xa6, 0xe7, + 0xe7, 0x5c, 0xf5, 0x0e, 0xac, 0x9b, 0x98, 0x5a, 0x37, 0x82, 0x05, 0x68, 0x63, 0x8e, 0x56, 0xfb, + 0x64, 0xec, 0xac, 0x4f, 0xa7, 0x8a, 0x2d, 0x1f, 0x77, 0xa5, 0xf5, 0x46, 0x84, 0xd9, 0xea, 0x5c, + 0x9d, 0xb4, 0xba, 0x0e, 0x42, 0xef, 0x1b, 0xc9, 0x65, 0xc5, 0x13, 0x11, 0xb8, 0xa7, 0x92, 0xb5, + 0x0f, 0x6f, 0xe2, 0x6c, 0xce, 0x13, 0x8b, 0x99, 0x3e, 0xf6, 0x32, 0x33, 0x27, 0x35, 0x50, 0x3a, + 0xd8, 0xe8, 0xcb, 0x84, 0x75, 0x9d, 0x98, 0x2a, 0x45, 0x33, 0x24, 0x23, 0xd9, 0x9e, 0x95, 0xce, + 0xa0, 0x06, 0x56, 0x98, 0xd7, 0xe9, 0xf6, 0xe3, 0x59, 0xad, 0x4f, 0x00, 0x1b, 0x0d, 0xbb, 0x56, + 0x6b, 0x25, 0x4b, 0x51, 0xa3, 0x95, 0x75, 0xc9, 0x05, 0x38, 0xfe, 0xd8, 0xd6, 0xa9, 0xfa, 0x5c, + 0xca, 0xf3, 0xf6, 0xb2, 0x30, 0x60, 0x10, 0x8b, 0xda, 0xcf, 0x27, 0xf1, 0xf4, 0xfc, 0x4d, 0xf2, + 0xd0, 0x7f, 0x76, 0x1e, 0xd7, 0x8e, 0x26, 0xf2, 0x58, 0x25, 0x7a, 0xf0, 0x64, 0x2f, 0x8c, 0x80, + 0x3d, 0xc2, 0xca, 0x20, 0x1f, 0x57, 0xa3, 0x0a, 0x85, 0x0d, 0x52, 0x34, 0x9f, 0xb1, 0x46, 0x15, + 0x3e, 0x9b, 0x25, 0x37, 0x6b, 0x01, 0x98, 0x5c, 0x2e, 0x76, 0xa8, 0x30, 0xd9, 0x80, 0x30, 0x89, + 0xb7, 0xc6, 0xa9, 0xaf, 0xa7, 0x33, 0x19, 0x62, 0xb4, 0xd1, 0x88, 0xe6, 0x89, 0x5d, 0xbc, 0xa7, + 0xed, 0x0d, 0xa9, 0x7d, 0x6d, 0xf3, 0x24, 0x75, 0x79, 0xbe, 0xf9, 0x32, 0xee, 0x5b, 0xc5, 0xf7, + 0x8b, 0x4b, 0xa9, 0x87, 0xf1, 0x54, 0xcb, 0x7e, 0xa7, 0xda, 0x57, 0x5c, 0xbf, 0x2e, 0xac, 0x49, + 0x7b, 0x56, 0x98, 0xe8, 0xae, 0x3a, 0x13, 0xb6, 0xc9, 0x84, 0x1b, 0x74, 0x2c, 0x94, 0x03, 0x6f, + 0x37, 0xed, 0x9b, 0xa2, 0x56, 0x5e, 0xb4, 0x5c, 0x6c, 0x17, 0x6b, 0x24, 0x27, 0x73, 0x49, 0x66, + 0x69, 0x86, 0x6d, 0x21, 0x40, 0x21, 0x53, 0xd7, 0x3f, 0x99, 0xea, 0x65, 0xfa, 0xf3, 0xf5, 0x92, + 0xf2, 0xd0, 0x9a, 0xcb, 0x38, 0xca, 0x75, 0xd0, 0xc6, 0x6a, 0x7a, 0x6e, 0xee, 0x14, 0xcd, 0xb9, + 0xd8, 0xb3, 0xc2, 0xd4, 0x3d, 0x0b, 0x63, 0x71, 0x59, 0xac, 0x29, 0x87, 0x9e, 0x94, 0x3a, 0x80, + 0x46, 0x2d, 0x05, 0x2c, 0x6b, 0x67, 0xe5, 0x12, 0xe0, 0x5f, 0x2d, 0xa7, 0x42, 0xaa, 0x97, 0xa7, + 0x1a, 0xf5, 0x4e, 0xe0, 0xfd, 0x5c, 0x45, 0x01, 0x1a, 0xa9, 0x54, 0xec, 0x64, 0x05, 0xa2, 0x0e, + 0xbe, 0xca, 0x5d, 0x0f, 0x40, 0x1f, 0x84, 0x71, 0x27, 0xd7, 0xf7, 0x58, 0xc8, 0x45, 0x65, 0xe9, + 0x78, 0xdd, 0x25, 0x0f, 0xeb, 0xb0, 0xd5, 0x8a, 0x9d, 0x6a, 0xdd, 0x6b, 0x53, 0xeb, 0xee, 0x73, + 0x07, 0xcb, 0xf0, 0x1c, 0x1c, 0x84, 0xd8, 0xd0, 0x82, 0x48, 0xc8, 0xa6, 0x5a, 0x96, 0x2f, 0x48, + 0x52, 0x7c, 0xd7, 0xae, 0x84, 0x85, 0xe4, 0xb7, 0xac, 0x5b, 0x2b, 0x60, 0x0a, 0xa8, 0xab, 0x68, + 0xf6, 0x28, 0x0a, 0xee, 0xbd, 0xcb, 0xe5, 0x5a, 0x9b, 0xc5, 0x85, 0xfe, 0xcd, 0x89, 0x36, 0x73, + 0x58, 0xca, 0x9a, 0xba, 0xc5, 0x9e, 0x6a, 0x5b, 0x8d, 0x58, 0xe7, 0xea, 0xa0, 0xb1, 0xdb, 0xeb, + 0xab, 0x0e, 0xb1, 0x89, 0x8b, 0x49, 0x68, 0x5c, 0x08, 0x78, 0xe7, 0xee, 0x72, 0xa3, 0xd5, 0x41, + 0x38, 0xc5, 0xc9, 0x71, 0x4a, 0x59, 0x62, 0x44, 0x3c, 0x7f, 0x7e, 0x44, 0xb8, 0xfe, 0x61, 0xf8, + 0xa2, 0xf3, 0x94, 0xb4, 0xc2, 0x8c, 0xa6, 0xcd, 0xc8, 0xb0, 0xec, 0xa0, 0xb3, 0xa5, 0xb3, 0x28, + 0xa7, 0xfc, 0x29, 0x71, 0x08, 0xbb, 0x76, 0x25, 0xca, 0x12, 0x1a, 0xac, 0x6b, 0xb8, 0x06, 0x5a, + 0xb4, 0x7f, 0xf9, 0xf4, 0x61, 0xa2, 0x8b, 0x7f, 0xf6, 0xcc, 0x91, 0xb0, 0x08, 0x34, 0x11, 0x52, + 0x1f, 0x0f, 0x41, 0x8b, 0x67, 0x8a, 0xee, 0xd9, 0xfd, 0xb0, 0x46, 0x34, 0x33, 0x23, 0xbc, 0xc7, + 0x36, 0xef, 0x80, 0x11, 0xc3, 0x7b, 0x41, 0x8b, 0x98, 0x5d, 0xa3, 0xa9, 0xa7, 0xb2, 0xbd, 0x38, + 0xc5, 0x69, 0x5b, 0x93, 0xaa, 0xa7, 0x84, 0x2c, 0x6d, 0x42, 0x58, 0x3e, 0x51, 0x44, 0x5f, 0xfd, + 0xac, 0x35, 0x1c, 0x75, 0xd6, 0xab, 0xf4, 0xf2, 0x3a, 0xd5, 0x17, 0x6d, 0x24, 0xa8, 0xf9, 0xa8, + 0x9a, 0xec, 0x23, 0x53, 0xc5, 0x9f, 0x38, 0xae, 0x9e, 0xd7, 0x6a, 0x41, 0x2b, 0x2e, 0xd8, 0x4b, + 0xf6, 0x6e, 0x66, 0x76, 0x26, 0x56, 0xfe, 0x85, 0x57, 0x8c, 0x0c, 0xfa, 0xc7, 0xa8, 0x49, 0x4d, + 0xf3, 0x9d, 0x6c, 0x9e, 0x77, 0x08, 0xd6, 0xa5, 0xbf, 0xf6, 0x6e, 0xb0, 0x3a, 0x59, 0x85, 0x77, + 0xf0, 0x54, 0x0d, 0xc4, 0x33, 0x6e, 0xf6, 0x94, 0xe3, 0xda, 0xf4, 0x25, 0x6f, 0xac, 0xd2, 0x7d, + 0xee, 0x87, 0xa5, 0x1d, 0xcc, 0xb4, 0xf9, 0x98, 0x68, 0x2d, 0xea, 0x8f, 0x65, 0xb1, 0x2c, 0x65, + 0x8f, 0xf7, 0x87, 0x45, 0xd5, 0xca, 0x3e, 0x72, 0x09, 0xca, 0x7e, 0xef, 0x1b, 0x45, 0x35, 0xca, + 0x41, 0x72, 0x65, 0x2b, 0xa3, 0xde, 0x43, 0x45, 0x1e, 0xe5, 0x0d, 0x72, 0x4d, 0x53, 0x0e, 0x57, + 0x7a, 0x8b, 0xfc, 0xfc, 0x84, 0xb4, 0xc4, 0xbc, 0xdd, 0xca, 0x1e, 0xa0, 0x87, 0xf2, 0x71, 0x5d, + 0xf9, 0xd6, 0x61, 0x3c, 0xef, 0x6a, 0xa3, 0x1c, 0x2d, 0x46, 0xa5, 0x05, 0xd2, 0x2c, 0x57, 0xf3, + 0x93, 0x21, 0xb7, 0x36, 0xfa, 0xd6, 0x2b, 0xb8, 0xa6, 0x1a, 0x79, 0x3d, 0xbc, 0xa3, 0xeb, 0x74, + 0x3b, 0x62, 0x10, 0xd6, 0xa5, 0x96, 0x14, 0x86, 0x34, 0x51, 0xb5, 0x9c, 0x75, 0x0f, 0xc6, 0x8a, + 0xdc, 0x4a, 0x3f, 0x94, 0x13, 0x93, 0x04, 0x28, 0xa7, 0x05, 0xed, 0x90, 0xa6, 0x95, 0x30, 0x04, + 0xf5, 0x18, 0xa6, 0xd8, 0x3a, 0x65, 0x93, 0x9a, 0x6b, 0x05, 0xe6, 0x1a, 0xd5, 0x6d, 0x8b, 0x41, + 0x4e, 0x9b, 0xd5, 0xb6, 0x6d, 0x83, 0x96, 0xed, 0x50, 0x4b, 0x78, 0x96, 0x72, 0x7d, 0x4e, 0x2d, + 0xe3, 0x05, 0xc8, 0x61, 0x27, 0x94, 0xb0, 0x9b, 0x4a, 0x18, 0x82, 0x12, 0xac, 0x58, 0x02, 0xde, + 0xf0, 0x2b, 0xd9, 0x86, 0xb2, 0x61, 0xf0, 0x29, 0x90, 0x2a, 0x31, 0xe5, 0xe2, 0xf1, 0xb8, 0xdf, + 0xbf, 0x5d, 0xb2, 0x92, 0xc5, 0x2b, 0xcd, 0x77, 0x9a, 0x7f, 0x7b, 0x51, 0xff, 0xa8, 0x07, 0x5a, + 0x75, 0xaa, 0x08, 0x62, 0xe3, 0x39, 0x71, 0x70, 0x65, 0xe3, 0x1d, 0x67, 0x65, 0x42, 0x39, 0x0f, + 0x39, 0x5f, 0x28, 0xc2, 0x59, 0x61, 0x54, 0xde, 0xaf, 0xfa, 0x08, 0xe2, 0x78, 0xf9, 0x69, 0x71, + 0xdc, 0x05, 0x4d, 0xac, 0x57, 0x1f, 0x29, 0xef, 0xa7, 0xac, 0xe1, 0x22, 0x5a, 0xec, 0x50, 0x2a, + 0x34, 0x39, 0x73, 0x29, 0x5a, 0x10, 0x10, 0x0b, 0x13, 0x63, 0x8d, 0xda, 0x9c, 0x4f, 0x8c, 0x3a, + 0x3a, 0xb2, 0x5d, 0x51, 0xb6, 0x36, 0xff, 0xf4, 0x48, 0xfd, 0xf8, 0xf5, 0xfd, 0x32, 0x52, 0x13, + 0xf9, 0xd2, 0x5d, 0x52, 0x16, 0x9e, 0xb7, 0xa2, 0x7a, 0xdd, 0x49, 0xa7, 0x73, 0x2c, 0x3e, 0xf0, + 0x0f, 0xd9, 0xf1, 0x4c, 0x2c, 0x3f, 0xa3, 0x9b, 0xb2, 0x46, 0x3a, 0x13, 0xb3, 0x08, 0x78, 0xbf, + 0xa1, 0x98, 0xa3, 0xc9, 0xb7, 0x35, 0xb8, 0x1f, 0xe7, 0x52, 0xa5, 0x19, 0x65, 0xc2, 0x30, 0x93, + 0x2a, 0xec, 0xab, 0x18, 0xc9, 0xcd, 0x87, 0x7f, 0x25, 0x99, 0xea, 0xf9, 0x39, 0xad, 0x6d, 0x74, + 0x02, 0xc9, 0xab, 0x6a, 0xfc, 0x46, 0x5b, 0x29, 0x80, 0x95, 0xba, 0x0a, 0x00, 0x02, 0xaf, 0x51, + 0xcc, 0xdf, 0xa2, 0x25, 0x73, 0x5a, 0x7b, 0x8c, 0x9e, 0x3b, 0x2d, 0xc0, 0xad, 0xcb, 0xb3, 0xc8, + 0xff, 0x12, 0x4f, 0x51, 0xf1, 0x5c, 0x63, 0xba, 0x15, 0x25, 0xb4, 0x8c, 0x87, 0x18, 0x01, 0x6d, + 0x34, 0xa5, 0x94, 0x96, 0x76, 0x2a, 0xcc, 0x35, 0xb9, 0xb4, 0xda, 0x64, 0x69, 0x26, 0xf5, 0xa4, + 0x98, 0xd1, 0x93, 0x4b, 0xa5, 0xa9, 0x56, 0x8f, 0xb4, 0x9d, 0x04, 0x56, 0x46, 0xb3, 0x05, 0x7a, + 0x4f, 0x9b, 0x1b, 0x52, 0x2e, 0x8d, 0x2a, 0xea, 0xe9, 0xae, 0x1c, 0xad, 0x61, 0x59, 0x0b, 0xc7, + 0x27, 0xd6, 0xf9, 0xb7, 0x92, 0x2f, 0xda, 0x4d, 0xb3, 0x70, 0x5f, 0xff, 0x56, 0xd4, 0xe6, 0x60, + 0x03, 0x3f, 0x1c, 0x91, 0xef, 0x1f, 0x0e, 0xf1, 0x13, 0xde, 0x5c, 0xab, 0x6e, 0xae, 0xaa, 0xc9, + 0xf9, 0x61, 0xd9, 0x14, 0x66, 0xb2, 0x81, 0xb8, 0x67, 0xa5, 0xe1, 0xa3, 0x06, 0xc6, 0x77, 0x82, + 0x80, 0x3a, 0x47, 0xca, 0xd8, 0x0e, 0x98, 0x81, 0xac, 0x79, 0x3a, 0x01, 0x6b, 0xce, 0x03, 0x9c, + 0x19, 0x36, 0x27, 0x2d, 0x57, 0x2a, 0xf3, 0xe9, 0x8e, 0x7c, 0x19, 0xb7, 0x2c, 0x77, 0xfa, 0x89, + 0x22, 0x0f, 0x60, 0x82, 0x6a, 0x17, 0x8c, 0xea, 0x33, 0x47, 0x10, 0x9b, 0xfe, 0x8f, 0x4a, 0xd9, + 0x8d, 0x54, 0x95, 0x54, 0x02, 0xbf, 0x19, 0x09, 0x0d, 0xee, 0xb1, 0xa0, 0x05, 0x68, 0x47, 0x27, + 0xe0, 0x57, 0xc0, 0x57, 0xfd, 0x05, 0x80, 0xff, 0xb6, 0x4d, 0x15, 0xab, 0xdb, 0x68, 0xf7, 0xbb, + 0x96, 0xf9, 0xb6, 0x07, 0x0f, 0x8a, 0xd5, 0x55, 0xef, 0x67, 0xbb, 0x80, 0xba, 0xd7, 0xca, 0xcd, + 0xc3, 0x74, 0xb4, 0x0b, 0x35, 0x8c, 0x67, 0x3f, 0xd1, 0x7e, 0x5f, 0x11, 0xd4, 0x2f, 0xbe, 0xb9, + 0x9f, 0x55, 0x42, 0x1d, 0xcf, 0x01, 0x95, 0x23, 0x76, 0xc7, 0x37, 0x3b, 0x2c, 0xb5, 0x08, 0x95, + 0xea, 0x7d, 0x8f, 0xa1, 0xb8, 0xa6, 0x0d, 0x18, 0xb5, 0xca, 0xdb, 0xea, 0xa4, 0xb9, 0x48, 0x23, + 0x5f, 0x7b, 0x08, 0x69, 0xbc, 0xfa, 0xf1, 0x6b, 0xc0, 0x4b, 0x24, 0x61, 0x39, 0xfe, 0xac, 0x06, + 0x57, 0x98, 0x0f, 0x50, 0x8a, 0x50, 0x37, 0xff, 0x36, 0x9b, 0x3f, 0x69, 0x61, 0x4c, 0x29, 0x01, + 0x1e, 0x09, 0xb0, 0x7c, 0xb6, 0x4b, 0xcc, 0x0b, 0x39, 0x45, 0xa0, 0xe0, 0xc4, 0x98, 0xb8, 0x6c, + 0x36, 0xbc, 0x99, 0x9e, 0xe6, 0x8a, 0x29, 0xfe, 0x6c, 0x51, 0x0f, 0x33, 0xc6, 0x9f, 0xb3, 0xc3, + 0xea, 0x49, 0x27, 0x45, 0x9f, 0x93, 0xf7, 0x02, 0x0c, 0xdb, 0x7d, 0xff, 0x8c, 0xe7, 0x62, 0x84, + 0xf5, 0xeb, 0x58, 0x05, 0xd4, 0xf5, 0x0c, 0xd4, 0x35, 0x32, 0x1d, 0xc6, 0x82, 0xac, 0x84, 0xd2, + 0x19, 0xf9, 0x5d, 0xb0, 0xfa, 0x9e, 0xb1, 0x79, 0x60, 0xd5, 0x75, 0xe2, 0x39, 0x26, 0xa0, 0xc4, + 0xf3, 0x6d, 0x0d, 0x49, 0xbd, 0xd5, 0x5a, 0x08, 0xf8, 0x97, 0x0e, 0xb3, 0x2a, 0x5c, 0x21, 0xfe, + 0x54, 0x0d, 0x54, 0x61, 0x58, 0x97, 0xa2, 0xdb, 0x3a, 0x17, 0x66, 0x70, 0x0d, 0x60, 0xac, 0x67, + 0x8b, 0x1a, 0x10, 0x4b, 0x20, 0x34, 0x28, 0x2f, 0x68, 0x29, 0xab, 0x2e, 0x0f, 0x0b, 0x30, 0x87, + 0x77, 0x92, 0xbf, 0x5e, 0xd9, 0x0d, 0x6b, 0x64, 0x27, 0xf4, 0x60, 0x07, 0x2b, 0x51, 0xf6, 0x00, + 0x74, 0xed, 0x93, 0x18, 0xdd, 0xfa, 0x2c, 0x84, 0x15, 0x7b, 0x21, 0xd7, 0xeb, 0x4f, 0x14, 0x14, + 0x23, 0x78, 0x9b, 0x61, 0xab, 0xf6, 0x3f, 0x4d, 0x7b, 0x89, 0x79, 0xf5, 0xd0, 0x4f, 0xeb, 0x9f, + 0x3d, 0xfb, 0x4d, 0xa4, 0x37, 0xbf, 0xb5, 0x03, 0x57, 0xd1, 0xff, 0xf1, 0x9a, 0x9d, 0xd9, 0x74, + 0x51, 0xa3, 0xda, 0x1e, 0xbf, 0x1d, 0x6f, 0x89, 0xce, 0x4b, 0xb4, 0xaf, 0xcb, 0x9e, 0x58, 0x7b, + 0xd1, 0x82, 0xd7, 0x2f, 0x46, 0xd7, 0xb2, 0xe8, 0xa9, 0x53, 0xdf, 0x74, 0x52, 0xfa, 0x42, 0x4a, + 0x2f, 0xfb, 0xd4, 0xba, 0xeb, 0x00, 0xcf, 0x54, 0x13, 0x26, 0xc2, 0x3a, 0x9e, 0x43, 0x2e, 0x85, + 0x6a, 0x48, 0xd8, 0x48, 0x22, 0x39, 0x0c, 0xd5, 0xb0, 0x26, 0x51, 0x43, 0x4b, 0xa2, 0x86, 0xb5, + 0xbc, 0x86, 0x62, 0x35, 0x8e, 0x24, 0xea, 0xdb, 0x46, 0x38, 0x77, 0xb0, 0xe0, 0x0b, 0x78, 0x96, + 0xb2, 0x62, 0x35, 0x72, 0x8c, 0x68, 0xdf, 0x25, 0x09, 0xc9, 0xd7, 0x9b, 0x9d, 0xa4, 0x3d, 0x07, + 0xea, 0x66, 0xe6, 0x35, 0xb3, 0xb9, 0x98, 0xde, 0xae, 0x77, 0x50, 0x3c, 0x5e, 0x7b, 0xd4, 0x27, + 0x13, 0xd4, 0xb8, 0x64, 0xbd, 0xff, 0xc0, 0xa7, 0xcf, 0xc2, 0xca, 0x9f, 0xb0, 0xb6, 0x54, 0xe4, + 0x8e, 0x6f, 0xa3, 0x5c, 0x9d, 0xe9, 0xf2, 0x1c, 0xf0, 0xdf, 0x84, 0x96, 0x70, 0x22, 0x42, 0x54, + 0xcd, 0x47, 0x29, 0x28, 0x21, 0x1d, 0x4c, 0x45, 0x5d, 0x4c, 0x8c, 0xbf, 0xe0, 0x79, 0x39, 0xbe, + 0xb3, 0xc8, 0x17, 0xdf, 0x8d, 0x35, 0x85, 0x75, 0xbd, 0x9e, 0x99, 0x8b, 0xea, 0xe2, 0x3b, 0x8a, + 0x6a, 0xe2, 0xc3, 0xae, 0x19, 0x54, 0x87, 0xe2, 0xf8, 0x26, 0xaa, 0x85, 0x73, 0x9d, 0x50, 0x38, + 0x4d, 0xad, 0x49, 0xe3, 0x7c, 0xbc, 0xab, 0xbb, 0xc9, 0xa3, 0x27, 0xdb, 0x3d, 0xdd, 0xf1, 0x61, + 0x5b, 0x77, 0x7c, 0x9b, 0xa7, 0x74, 0x07, 0xb3, 0x19, 0x81, 0x2b, 0x4e, 0xab, 0xf5, 0xc4, 0x53, + 0xc0, 0x13, 0x2c, 0x4f, 0xc0, 0xc3, 0xfe, 0x22, 0x88, 0x8d, 0x2b, 0x22, 0x41, 0xc4, 0x28, 0xea, + 0x55, 0xc3, 0x15, 0x91, 0xfa, 0xf8, 0x70, 0xa2, 0x8f, 0x93, 0xab, 0xe2, 0x7e, 0xde, 0xcb, 0xfe, + 0x03, 0x7f, 0x3c, 0x39, 0xa9, 0x97, 0x0d, 0x30, 0x77, 0xce, 0x61, 0x2f, 0x07, 0x86, 0x1c, 0x4d, + 0xe2, 0xc2, 0xfd, 0x9b, 0xdb, 0x19, 0xf0, 0x1f, 0xb5, 0x30, 0xde, 0x3e, 0x67, 0x71, 0x7c, 0xd8, + 0x51, 0xe7, 0x2a, 0x8e, 0xef, 0x88, 0x08, 0x76, 0xb5, 0xce, 0x4a, 0x9e, 0xc6, 0x65, 0xc5, 0x37, + 0x41, 0x6e, 0x72, 0xc2, 0x8e, 0x30, 0xf4, 0xe4, 0x1f, 0x03, 0x38, 0x97, 0x9c, 0x30, 0x97, 0xe4, + 0x52, 0x9a, 0x3b, 0xd3, 0x61, 0xee, 0x74, 0xe1, 0xdc, 0x11, 0xeb, 0x00, 0xeb, 0xd1, 0xec, 0x09, + 0x59, 0xa7, 0x9a, 0x9d, 0xce, 0x66, 0xdf, 0xb6, 0xe0, 0x51, 0x3e, 0xea, 0x90, 0xcf, 0x0b, 0xd0, + 0x0f, 0x9b, 0xc5, 0x3b, 0xe8, 0x96, 0xd3, 0x8e, 0xe4, 0x09, 0x1d, 0x6a, 0xc9, 0x55, 0xb1, 0x0e, + 0xe8, 0x47, 0x98, 0xf1, 0x7f, 0xec, 0xc0, 0x9b, 0xe1, 0x74, 0xa7, 0x4d, 0x56, 0x31, 0x5d, 0x19, + 0xd9, 0x32, 0x05, 0xfc, 0x5a, 0x01, 0x6b, 0x13, 0xf0, 0xdf, 0x63, 0x8f, 0x15, 0x46, 0x95, 0xb5, + 0x4a, 0x58, 0x79, 0xfa, 0xb0, 0x1c, 0x5d, 0x78, 0x79, 0x98, 0xfd, 0xfc, 0xc7, 0x3f, 0x3f, 0x8c, + 0x67, 0x6f, 0x7f, 0x3e, 0x81, 0x61, 0xb9, 0x77, 0x9a, 0x05, 0x96, 0x15, 0x72, 0xad, 0xc8, 0x81, + 0x37, 0xde, 0xfc, 0x14, 0x98, 0x2e, 0x28, 0xca, 0xf0, 0x56, 0x06, 0x43, 0x16, 0xf8, 0xbf, 0x21, + 0x98, 0x2b, 0xe7, 0x04, 0x62, 0x98, 0x87, 0x6c, 0x0c, 0x6c, 0x88, 0x2a, 0xb2, 0x2e, 0x30, 0x58, + 0x7b, 0x11, 0x38, 0xac, 0xbb, 0xf6, 0xbe, 0x04, 0xfc, 0xf1, 0x2c, 0xa0, 0x7f, 0x67, 0xfc, 0x66, + 0x97, 0xce, 0xcd, 0xbe, 0x10, 0xf3, 0xc0, 0xf7, 0xfd, 0x6f, 0x0e, 0x7c, 0xf0, 0x64, 0xac, 0xda, + 0xec, 0x06, 0x4a, 0xd7, 0x8c, 0x96, 0xda, 0x7c, 0xb9, 0xc1, 0x61, 0x8f, 0x5b, 0x9e, 0x09, 0xdc, + 0x8e, 0x9e, 0xec, 0x05, 0x87, 0xf3, 0xc9, 0xbe, 0xa5, 0xa2, 0x10, 0x05, 0xde, 0x40, 0x36, 0x4f, + 0x39, 0x06, 0x6c, 0x44, 0x6a, 0xca, 0x51, 0xac, 0x52, 0x53, 0x80, 0xfb, 0xc5, 0x6a, 0xa4, 0xa9, + 0x38, 0x3f, 0x69, 0xc8, 0x05, 0x4e, 0x88, 0x28, 0x4e, 0x5b, 0x8d, 0xd6, 0x67, 0xa8, 0x01, 0x2c, + 0x7b, 0x42, 0xac, 0x56, 0xe5, 0x2d, 0xb5, 0x3f, 0x1f, 0xad, 0xfe, 0x20, 0xdb, 0x75, 0x77, 0x7d, + 0x76, 0xb9, 0xe7, 0xa5, 0xec, 0xd2, 0xaa, 0x0f, 0xb2, 0x4b, 0xef, 0xf6, 0x82, 0x1b, 0x28, 0xcb, + 0x6f, 0x5f, 0x54, 0x65, 0x2b, 0x02, 0x70, 0x9c, 0x88, 0x23, 0xf4, 0xae, 0x2e, 0x5a, 0x33, 0xce, + 0xd1, 0x2d, 0x60, 0xa3, 0xe7, 0x25, 0xa6, 0xf7, 0x6c, 0x95, 0x17, 0xd8, 0x58, 0x34, 0x0e, 0x21, + 0x38, 0xca, 0xbb, 0x51, 0x42, 0x09, 0xf9, 0x17, 0x26, 0x57, 0x3b, 0xd2, 0xe4, 0x90, 0x6a, 0x45, + 0x94, 0x65, 0xe3, 0x59, 0xdc, 0x84, 0x7e, 0x03, 0xd1, 0x8a, 0x74, 0x04, 0x1f, 0x23, 0x80, 0x36, + 0xe0, 0x4b, 0xfc, 0x07, 0xfe, 0xd0, 0xa6, 0xca, 0x08, 0x2d, 0xb0, 0x9e, 0x33, 0xf6, 0xac, 0xab, + 0x99, 0xc6, 0x74, 0x95, 0xe2, 0x82, 0xb8, 0xa5, 0xf4, 0xfd, 0x98, 0x52, 0x1e, 0x16, 0x80, 0x06, + 0xaa, 0x20, 0xd7, 0x93, 0x4a, 0x25, 0x7c, 0xbb, 0xe9, 0x7b, 0x58, 0xa9, 0x81, 0x6f, 0x2f, 0x7d, + 0x3f, 0xae, 0x34, 0xc0, 0x77, 0x23, 0x7d, 0x7f, 0x53, 0x81, 0xd9, 0x08, 0xf4, 0x1c, 0x7e, 0x6f, + 0x05, 0x9a, 0xce, 0x0d, 0xf4, 0x1c, 0x7e, 0x3f, 0xaa, 0xb4, 0x41, 0xae, 0x1d, 0x11, 0x5d, 0x51, + 0x95, 0xd2, 0x25, 0xd6, 0xc0, 0x0c, 0xd0, 0x2b, 0x61, 0xa0, 0xbd, 0x3f, 0x52, 0x50, 0x1f, 0xfc, + 0xf3, 0x22, 0x4a, 0x08, 0x8d, 0x00, 0x1d, 0x25, 0x96, 0xb9, 0x6c, 0x56, 0x80, 0xdd, 0xe1, 0x66, + 0x7f, 0x6d, 0xef, 0x67, 0x6e, 0xd4, 0x02, 0x25, 0x0c, 0x53, 0x0e, 0x6d, 0xca, 0xfe, 0x88, 0x1b, + 0x52, 0x1f, 0x24, 0x57, 0x3b, 0xcc, 0xab, 0x2a, 0xa2, 0x33, 0x01, 0xe9, 0xe3, 0x5d, 0x3c, 0xd4, + 0x92, 0xa7, 0x1c, 0x25, 0x77, 0x08, 0xef, 0xe3, 0xa1, 0xf5, 0x71, 0xe5, 0x54, 0x58, 0x07, 0x35, + 0x38, 0xa3, 0x96, 0x77, 0x4e, 0x6c, 0x82, 0x1e, 0xb4, 0xe0, 0x1e, 0x3a, 0xd7, 0xdb, 0x95, 0xf5, + 0xbe, 0xb8, 0x8a, 0x79, 0x68, 0xbd, 0xb6, 0x50, 0xcc, 0xfd, 0xb6, 0x9a, 0x22, 0x18, 0x01, 0xe5, + 0xa0, 0xac, 0x7b, 0xfa, 0xb0, 0xd6, 0x1f, 0xf1, 0x46, 0xc0, 0x1f, 0xfc, 0x3b, 0x12, 0x6f, 0x09, + 0xb7, 0x01, 0xb6, 0x59, 0x4e, 0xae, 0xbe, 0xb8, 0x0c, 0xdf, 0x6d, 0xf4, 0x1d, 0x8d, 0x77, 0x44, + 0x94, 0xa2, 0xaa, 0x78, 0x17, 0xb9, 0xd6, 0xc4, 0xc3, 0xf0, 0x1d, 0xe5, 0x7d, 0x18, 0x5f, 0x07, + 0xe9, 0xfb, 0x79, 0x0f, 0xc6, 0x63, 0x48, 0x7b, 0x40, 0xaa, 0x21, 0x72, 0xf7, 0xc4, 0x87, 0x8b, + 0x9a, 0xe2, 0x9b, 0x78, 0xcf, 0xc5, 0x37, 0x23, 0x7e, 0xa3, 0xef, 0x01, 0xc0, 0x4e, 0x6e, 0x98, + 0x9f, 0xf8, 0x3d, 0x18, 0x7f, 0x0e, 0xbe, 0x5f, 0xa0, 0xef, 0x0d, 0x80, 0xc7, 0xdc, 0xf1, 0xdd, + 0xf4, 0x3d, 0x14, 0xdf, 0x03, 0xdf, 0xfb, 0xf8, 0x08, 0xc4, 0xf7, 0xc3, 0x37, 0xef, 0x99, 0xad, + 0xf1, 0x51, 0xf8, 0xe6, 0x3d, 0xb3, 0x39, 0x7e, 0x18, 0xbe, 0x79, 0xaf, 0x3c, 0x1a, 0x3f, 0x0e, + 0xf5, 0x38, 0x85, 0x23, 0x10, 0x3f, 0x03, 0xfd, 0xbe, 0xbf, 0xa8, 0x3e, 0x7e, 0x0e, 0xe6, 0x79, + 0x23, 0xf6, 0x3f, 0xf6, 0x7e, 0x28, 0x47, 0x74, 0xdf, 0xd1, 0xcf, 0x2c, 0xec, 0x4b, 0xf4, 0xbf, + 0x42, 0xf4, 0xa9, 0xbd, 0xf5, 0x22, 0x8e, 0x44, 0x96, 0xce, 0xf7, 0x12, 0x9e, 0x50, 0xd4, 0xed, + 0x23, 0x68, 0xd5, 0x4d, 0x86, 0x56, 0xb4, 0x53, 0x1f, 0x11, 0x36, 0xbc, 0x04, 0x5c, 0x38, 0xd0, + 0x90, 0xb3, 0xdd, 0x6c, 0x19, 0xbe, 0x45, 0x93, 0xab, 0x19, 0x6f, 0x12, 0x60, 0x5f, 0x02, 0xb5, + 0x2b, 0x28, 0xe7, 0x01, 0x1b, 0x16, 0x28, 0x17, 0x00, 0x16, 0xde, 0x97, 0x72, 0x00, 0x1a, 0xcf, + 0x13, 0x34, 0x3a, 0xfd, 0x07, 0xae, 0x9c, 0x46, 0x69, 0x36, 0xa6, 0xb1, 0xb9, 0xc3, 0xa8, 0xcb, + 0xf2, 0x34, 0xf5, 0x7f, 0x16, 0xcb, 0x8f, 0x9f, 0x47, 0x18, 0x8c, 0x03, 0x75, 0x1c, 0xd3, 0x33, + 0x21, 0xfe, 0x7e, 0x51, 0x6d, 0xfc, 0x43, 0xfa, 0xd6, 0xc5, 0x2f, 0xe3, 0x69, 0xeb, 0xc7, 0x66, + 0xc6, 0xaf, 0x12, 0x95, 0x2f, 0xc4, 0x3f, 0x8d, 0xe8, 0xa1, 0x75, 0x13, 0xe4, 0x32, 0x29, 0x0c, + 0x46, 0x54, 0x4f, 0xdf, 0x3a, 0xc5, 0x08, 0xdf, 0x66, 0xfa, 0x9e, 0xa6, 0x58, 0xe0, 0x5b, 0xe3, + 0x0b, 0xf2, 0xe1, 0xbb, 0x80, 0xbe, 0xa7, 0x2b, 0x22, 0xd4, 0x0a, 0xa9, 0x3f, 0x27, 0xd6, 0x2c, + 0x7e, 0x9e, 0xe8, 0xc6, 0x6b, 0x78, 0xe6, 0xff, 0xca, 0x7c, 0x94, 0xc2, 0xdf, 0x50, 0x37, 0xa8, + 0x0d, 0x70, 0x20, 0xb5, 0xca, 0x3a, 0x5e, 0x1b, 0xa5, 0x9f, 0x6a, 0x63, 0x52, 0x62, 0xbc, 0x36, + 0xca, 0x10, 0xc1, 0xd4, 0xb0, 0x5a, 0x9b, 0x4d, 0x74, 0xb3, 0x74, 0xb3, 0x5a, 0x9f, 0x6d, 0xf0, + 0xbd, 0x43, 0xad, 0xcf, 0xb3, 0xf0, 0xfd, 0x9c, 0x5a, 0x9f, 0x17, 0xe0, 0x7b, 0xa7, 0x5a, 0x9f, + 0xdd, 0x50, 0x17, 0xa2, 0x15, 0xc8, 0x72, 0xd6, 0x53, 0xd0, 0x5b, 0xd1, 0x64, 0x9d, 0x7e, 0xf7, + 0x22, 0xee, 0x1b, 0xa4, 0xd6, 0xa9, 0x88, 0x78, 0x74, 0x80, 0xe1, 0x54, 0x09, 0x01, 0x8c, 0xb3, + 0x86, 0x93, 0xaa, 0x08, 0xe7, 0x6e, 0x7d, 0x0b, 0x46, 0x0c, 0xf9, 0xd3, 0xe3, 0xea, 0xae, 0x84, + 0x05, 0xf5, 0xdb, 0xa1, 0x1f, 0x62, 0x72, 0x1a, 0x33, 0x98, 0x85, 0x90, 0xee, 0x53, 0xd2, 0x5c, + 0xc7, 0x30, 0xc4, 0xbe, 0x98, 0xa4, 0xf9, 0x66, 0xb4, 0x54, 0xa0, 0xbc, 0x2e, 0xd6, 0xa8, 0x39, + 0xf4, 0x53, 0xe9, 0xe0, 0x8f, 0x63, 0x1c, 0xff, 0xd4, 0x86, 0x12, 0x6e, 0xb3, 0x8a, 0xa3, 0x4a, + 0xf0, 0xc6, 0x27, 0xd7, 0x66, 0x31, 0xae, 0x97, 0x4d, 0x30, 0xc6, 0x24, 0xf5, 0xbe, 0xfc, 0x0e, + 0xe2, 0x22, 0xa8, 0x69, 0x35, 0xf4, 0x1d, 0x6a, 0x96, 0x31, 0x96, 0x75, 0x30, 0x63, 0x2e, 0x72, + 0xa1, 0x03, 0xf9, 0xc8, 0x91, 0x0d, 0x95, 0xd6, 0x54, 0x5d, 0xb6, 0xb0, 0xad, 0x87, 0x8b, 0xea, + 0x95, 0xcb, 0x84, 0xaf, 0x3e, 0x44, 0x0e, 0x0a, 0x52, 0x8e, 0xe1, 0xdd, 0x01, 0x80, 0xb8, 0x05, + 0xcf, 0x1c, 0x21, 0x98, 0xb2, 0xf1, 0xdc, 0xff, 0x20, 0x73, 0x1d, 0x24, 0xec, 0xa9, 0xe4, 0xe9, + 0x7f, 0x45, 0x6f, 0xf3, 0xa5, 0x52, 0x91, 0xf6, 0xd5, 0xd9, 0x2e, 0xdf, 0x96, 0xe0, 0x3b, 0x28, + 0x51, 0x0f, 0x99, 0x24, 0x2b, 0xd5, 0x64, 0x08, 0x6a, 0xb2, 0x5a, 0xd5, 0xa3, 0x66, 0xa0, 0x1c, + 0xf7, 0x8b, 0x77, 0xa6, 0x4a, 0xe8, 0x2f, 0x8b, 0xaa, 0xd4, 0xde, 0x9c, 0xa8, 0x3d, 0xf8, 0xd0, + 0xda, 0xa9, 0x83, 0x35, 0xfb, 0x65, 0xe5, 0xa0, 0xad, 0x1a, 0xea, 0x93, 0x7f, 0x63, 0x4f, 0xaf, + 0x67, 0xa4, 0xcf, 0xac, 0x32, 0x5e, 0xaa, 0x9e, 0x54, 0xda, 0xad, 0xd9, 0x54, 0xb5, 0xab, 0xda, + 0x7e, 0xc4, 0x5a, 0xd1, 0x42, 0xd2, 0x2d, 0x98, 0x51, 0xc2, 0xa1, 0x15, 0xb3, 0xb8, 0xf4, 0x3b, + 0xd4, 0x40, 0x6f, 0xc0, 0xed, 0x42, 0x33, 0x97, 0x8b, 0x07, 0x59, 0xf6, 0xeb, 0xb2, 0xcd, 0x1c, + 0x43, 0x19, 0x10, 0xe0, 0xab, 0x02, 0xfa, 0xca, 0x02, 0xec, 0xce, 0xe8, 0x0b, 0xc3, 0xbf, 0x23, + 0x33, 0xdd, 0xd7, 0xa1, 0x2f, 0x74, 0x78, 0x53, 0xe2, 0x4f, 0xcd, 0x5c, 0xea, 0x25, 0xb3, 0xec, + 0x5d, 0x8e, 0x42, 0xa2, 0x03, 0x0b, 0x61, 0xfd, 0xf1, 0xfc, 0x7c, 0x94, 0xc6, 0xaa, 0x9a, 0x56, + 0xb6, 0x23, 0x34, 0x96, 0xd5, 0xaa, 0xb4, 0xed, 0x88, 0xb1, 0x08, 0x77, 0x57, 0x43, 0xfd, 0x29, + 0x36, 0x73, 0x38, 0x14, 0x2c, 0x83, 0x35, 0xce, 0x2a, 0xdb, 0x45, 0x17, 0x73, 0xed, 0x81, 0xb9, + 0x1f, 0x4c, 0xa1, 0x90, 0xa1, 0x87, 0x1b, 0x92, 0x32, 0x3c, 0x67, 0x8d, 0xd3, 0x1a, 0x3c, 0x43, + 0x72, 0x85, 0x9d, 0x7c, 0xde, 0x87, 0x99, 0x5a, 0xd6, 0xaa, 0x44, 0x8a, 0xb5, 0xf2, 0xcc, 0xf4, + 0xf4, 0xa9, 0x23, 0xe4, 0xc4, 0x11, 0xda, 0x06, 0x23, 0x94, 0xac, 0xe5, 0x7e, 0x92, 0x1e, 0xd3, + 0xd8, 0x7f, 0x7c, 0x46, 0xbc, 0xb3, 0x71, 0x24, 0x75, 0x6c, 0x3e, 0x1e, 0xd2, 0x76, 0x54, 0x6c, + 0xd5, 0xc0, 0x63, 0x70, 0xbf, 0x41, 0xe0, 0xef, 0x06, 0x43, 0x4c, 0xff, 0x0a, 0x60, 0x75, 0x55, + 0xea, 0x6d, 0xab, 0x4d, 0xf0, 0xae, 0xcd, 0xbc, 0x2f, 0x44, 0x0f, 0xf0, 0xc4, 0xb5, 0x98, 0x16, + 0x7b, 0x10, 0x28, 0x0b, 0x13, 0xbd, 0xb3, 0x82, 0x33, 0x65, 0x84, 0x65, 0xa3, 0x6d, 0xb3, 0x6c, + 0x72, 0xd4, 0xd2, 0xd7, 0x4e, 0x66, 0xc4, 0xfb, 0x43, 0x7a, 0x99, 0x72, 0x6d, 0x99, 0x2a, 0x57, + 0x92, 0x31, 0xbb, 0x9d, 0xab, 0x52, 0x7b, 0x1a, 0xf5, 0x0e, 0xdd, 0x24, 0xae, 0x2e, 0xca, 0x80, + 0x3a, 0xcf, 0x4f, 0xa7, 0xb5, 0x52, 0xea, 0x48, 0xfc, 0xb5, 0x58, 0x4b, 0xab, 0xd5, 0xa7, 0x6b, + 0x8f, 0x9e, 0xfe, 0x66, 0xed, 0xf8, 0x47, 0x1f, 0xaf, 0x1b, 0x3d, 0xf3, 0x4d, 0x79, 0x05, 0xc2, + 0x0b, 0x4a, 0x0f, 0x42, 0x79, 0x2b, 0x4c, 0xf4, 0xa5, 0x6b, 0xf7, 0xcb, 0x3e, 0xfa, 0xca, 0x0e, + 0xd6, 0xc8, 0xb3, 0xb8, 0x74, 0x06, 0xb0, 0xc9, 0x51, 0x4a, 0x0d, 0xb8, 0x5e, 0x39, 0x25, 0x31, + 0xe2, 0xf3, 0x2d, 0x72, 0x41, 0x22, 0x74, 0x94, 0x42, 0xe9, 0xfe, 0x3a, 0x5a, 0x42, 0x45, 0x29, + 0x06, 0xdf, 0xc3, 0x8e, 0x0a, 0x78, 0xcf, 0x49, 0xc5, 0xe6, 0xc7, 0x45, 0xa4, 0x3d, 0x36, 0x61, + 0xbb, 0xb3, 0x56, 0xd8, 0x6a, 0x8d, 0x73, 0xa1, 0xdf, 0x6f, 0x0f, 0xb2, 0xac, 0x65, 0x93, 0xe7, + 0xa0, 0xcc, 0xb2, 0x3c, 0xe9, 0xad, 0x4f, 0xcc, 0xee, 0xcb, 0xe9, 0xb3, 0x3b, 0x0f, 0x67, 0xf7, + 0x86, 0xd2, 0xea, 0xc4, 0xec, 0xe6, 0xd4, 0xc8, 0x65, 0x3e, 0xc2, 0x1f, 0x19, 0x39, 0xfc, 0x7e, + 0x54, 0x87, 0xa9, 0x08, 0x9f, 0x7c, 0x27, 0xf1, 0x55, 0x31, 0xb9, 0x54, 0x82, 0x30, 0x81, 0xc2, + 0xb6, 0xf0, 0xd9, 0xaf, 0x3b, 0xe0, 0x48, 0xd4, 0xc2, 0xe9, 0xf9, 0xc5, 0x28, 0x40, 0xaf, 0x9e, + 0x24, 0xa1, 0xf7, 0xef, 0x45, 0x89, 0xed, 0xba, 0xf6, 0x3a, 0xa0, 0x00, 0x4b, 0xf0, 0x9b, 0x1d, + 0x69, 0x17, 0xe1, 0xfb, 0x2e, 0xf8, 0xee, 0x81, 0x77, 0x31, 0xf9, 0xed, 0xe6, 0x3a, 0x21, 0x80, + 0x63, 0xfc, 0x36, 0x60, 0x92, 0xd7, 0x23, 0x7f, 0x43, 0xa9, 0xca, 0xda, 0x99, 0x30, 0x0f, 0x42, + 0x2a, 0x29, 0x04, 0xa5, 0xcc, 0xf9, 0x91, 0x6a, 0x0a, 0xf1, 0xb6, 0xe7, 0x82, 0x7f, 0x15, 0x7d, + 0xbb, 0x20, 0x56, 0x29, 0x84, 0x15, 0x44, 0x16, 0x92, 0xbb, 0x12, 0x42, 0xbc, 0xf4, 0x35, 0x1f, + 0xbe, 0xea, 0x28, 0x6d, 0x0d, 0x86, 0x23, 0xa7, 0x81, 0xe1, 0xae, 0xd5, 0x2a, 0x56, 0x72, 0xd7, + 0x7f, 0xc8, 0x5c, 0x36, 0x66, 0x37, 0xab, 0xbc, 0xc4, 0x6a, 0x8d, 0x03, 0x0a, 0xe5, 0xc0, 0xb7, + 0xd5, 0xb6, 0xd8, 0xf3, 0x4f, 0x62, 0x03, 0xed, 0x72, 0x03, 0xb4, 0x62, 0xef, 0x7c, 0xf0, 0x9c, + 0x3c, 0x73, 0xae, 0x4a, 0x33, 0xca, 0x46, 0xfa, 0xea, 0x67, 0x22, 0xef, 0xb9, 0xcb, 0x2d, 0x28, + 0xb5, 0x66, 0xef, 0xd8, 0xef, 0x04, 0x7e, 0xfc, 0xc2, 0x14, 0xfc, 0x38, 0xc4, 0xe2, 0x3b, 0x56, + 0x1f, 0x1c, 0xc5, 0x9a, 0xa8, 0xb5, 0x18, 0xb4, 0xbb, 0x71, 0xbf, 0xff, 0x71, 0x7e, 0x7f, 0x8f, + 0xfb, 0xd9, 0x6c, 0x26, 0x2d, 0x54, 0xbc, 0x53, 0xa5, 0xf3, 0xcf, 0x00, 0xc4, 0x9c, 0x83, 0xdf, + 0x79, 0x1a, 0xb5, 0x33, 0x6a, 0x4e, 0x83, 0x68, 0x8b, 0x5b, 0xee, 0x40, 0x49, 0x88, 0x20, 0xc8, + 0x7e, 0x7a, 0xeb, 0xe4, 0x3a, 0x7a, 0x67, 0xc9, 0x0b, 0xe8, 0xad, 0x97, 0xe7, 0xd1, 0x3b, 0x5b, + 0x2e, 0xa1, 0xb7, 0x41, 0x76, 0xd0, 0x7b, 0x9a, 0x3c, 0x8b, 0xde, 0x46, 0x39, 0x8f, 0xde, 0xd3, + 0xe5, 0x1c, 0x7a, 0x9b, 0x64, 0x03, 0xbd, 0x67, 0xa8, 0x10, 0xe1, 0x20, 0x7c, 0x66, 0x00, 0x4a, + 0x5d, 0x17, 0x16, 0xca, 0x99, 0xf7, 0x10, 0xb4, 0xf2, 0x58, 0x12, 0xb7, 0xe1, 0x68, 0xfb, 0x76, + 0x33, 0x67, 0x70, 0x1d, 0x51, 0xaa, 0xb4, 0x66, 0x46, 0x12, 0x5c, 0xba, 0xe2, 0x8c, 0x98, 0xde, + 0x05, 0x9a, 0x49, 0xd9, 0x07, 0x63, 0xa1, 0xbf, 0xc1, 0x77, 0xbf, 0x47, 0xb8, 0xc1, 0xef, 0xe0, + 0xc2, 0x0f, 0xf5, 0x2e, 0x5c, 0x2b, 0x1f, 0x9f, 0x06, 0x38, 0x7d, 0x77, 0xf2, 0x4c, 0xc8, 0xf5, + 0x4f, 0x90, 0x77, 0x2b, 0xeb, 0x57, 0x14, 0xfb, 0x22, 0x47, 0x35, 0x4a, 0x8a, 0xe3, 0x1f, 0x02, + 0x7e, 0x80, 0x39, 0x8d, 0x36, 0xca, 0x01, 0x4b, 0x3a, 0x03, 0x31, 0x4e, 0x71, 0x2f, 0xb0, 0x36, + 0x8e, 0xcc, 0x75, 0x33, 0xa7, 0xcc, 0x39, 0x84, 0x82, 0x9b, 0x61, 0x04, 0x99, 0x5d, 0x1b, 0x25, + 0xa9, 0x34, 0xca, 0xf1, 0x36, 0x71, 0x3e, 0x29, 0x55, 0x2a, 0xfd, 0xf8, 0x97, 0x9f, 0x39, 0x82, + 0xfc, 0x6e, 0x76, 0xc5, 0xcd, 0x25, 0xd3, 0xdf, 0x7d, 0x76, 0xb2, 0x64, 0x9a, 0x5b, 0x69, 0x2a, + 0x9d, 0x8f, 0xf6, 0x98, 0xec, 0xbd, 0xac, 0xbc, 0x4c, 0x62, 0xf3, 0x4b, 0x25, 0xb6, 0xc0, 0x01, + 0x1c, 0x4b, 0x94, 0xa1, 0xb4, 0xbf, 0xfa, 0x8a, 0x93, 0xed, 0xed, 0x04, 0x8c, 0x6e, 0xde, 0xd3, + 0xc9, 0x4c, 0xcb, 0x54, 0xad, 0x27, 0x51, 0xe1, 0xde, 0x2a, 0x66, 0xbc, 0xd7, 0xcd, 0x4c, 0x95, + 0xab, 0x98, 0xb1, 0x02, 0x68, 0xbb, 0xd2, 0xaa, 0xcd, 0xc7, 0xbe, 0x77, 0xb4, 0x2b, 0x77, 0x8b, + 0xbf, 0x5c, 0xa8, 0xf3, 0xac, 0xbd, 0x7d, 0x6c, 0xc5, 0x21, 0x0f, 0xc4, 0xd1, 0x47, 0x85, 0xb2, + 0x42, 0x88, 0xd5, 0xc9, 0x0c, 0xa5, 0xee, 0xcd, 0x3f, 0xf8, 0xde, 0xb1, 0x2e, 0xeb, 0xe6, 0xaa, + 0x32, 0x56, 0x57, 0x15, 0xbd, 0xfd, 0x42, 0xeb, 0x68, 0x15, 0xe4, 0x60, 0xb0, 0x02, 0x95, 0x2b, + 0x3e, 0x40, 0x6b, 0xeb, 0x3c, 0x57, 0x93, 0x44, 0xb2, 0x55, 0x96, 0x3f, 0x6f, 0x15, 0x33, 0x6c, + 0xff, 0x2d, 0xb4, 0x7d, 0x11, 0x2b, 0x20, 0x3f, 0x81, 0x89, 0xe5, 0xc0, 0xb9, 0x6e, 0xfb, 0x2d, + 0xc0, 0xb7, 0x8f, 0xd9, 0x3d, 0xaf, 0x32, 0x67, 0xf5, 0x25, 0x92, 0x90, 0xaf, 0x2b, 0xd5, 0x35, + 0xfc, 0x6a, 0xb9, 0x99, 0xdb, 0x88, 0x82, 0x16, 0x5d, 0x86, 0x16, 0x21, 0x07, 0xe9, 0xb4, 0xf5, + 0x32, 0x17, 0xb4, 0xa6, 0x0c, 0x5a, 0x35, 0xcf, 0x9e, 0x68, 0x51, 0xd5, 0xef, 0x00, 0xc9, 0x40, + 0xef, 0x96, 0xcf, 0x65, 0xc6, 0x79, 0xee, 0xca, 0xea, 0x67, 0x0f, 0xfd, 0xeb, 0x8f, 0xbb, 0x72, + 0x4a, 0xb3, 0x50, 0x8e, 0xcd, 0x6b, 0x3e, 0xea, 0x81, 0x70, 0x13, 0x84, 0x9b, 0xe6, 0x55, 0x69, + 0xe1, 0x65, 0x59, 0x5b, 0x3c, 0xc9, 0x96, 0x41, 0x3e, 0x86, 0x3d, 0x1d, 0xa8, 0x5f, 0x7d, 0x5f, + 0x55, 0xc8, 0x7d, 0x0f, 0xf0, 0x58, 0xf7, 0x54, 0x31, 0x83, 0xd8, 0x48, 0xad, 0x28, 0x77, 0x05, + 0xd4, 0x56, 0x58, 0xcb, 0xa1, 0xdd, 0xdb, 0x7e, 0x00, 0xf5, 0xcd, 0x57, 0xdb, 0x50, 0x50, 0x06, + 0x7d, 0xb5, 0x65, 0x54, 0xaa, 0x87, 0x9e, 0xbd, 0x44, 0xb2, 0x79, 0xb4, 0x0b, 0xe5, 0xe6, 0xf6, + 0xe5, 0x1b, 0x88, 0xc6, 0xa2, 0x36, 0x9c, 0x03, 0x2a, 0x00, 0x2d, 0xfa, 0x35, 0xc0, 0x08, 0x37, + 0xba, 0x7a, 0x59, 0xb3, 0x98, 0x47, 0x3b, 0x35, 0x2c, 0xeb, 0xf5, 0x76, 0x07, 0xc0, 0x27, 0xee, + 0x0c, 0x32, 0xdd, 0x43, 0x2b, 0x58, 0x56, 0xae, 0xaa, 0xa3, 0x86, 0x65, 0xb5, 0xa8, 0xb6, 0xe1, + 0x61, 0xb9, 0x02, 0x5c, 0x7b, 0x90, 0xa8, 0x02, 0xb4, 0xb2, 0x7b, 0x75, 0x85, 0x59, 0xa3, 0x10, + 0xb2, 0xae, 0xc8, 0x79, 0x2a, 0xdd, 0xc0, 0xf7, 0xcd, 0x8d, 0xe0, 0xf7, 0x0e, 0xda, 0x2e, 0xe6, + 0xbb, 0xaa, 0x59, 0x9f, 0xbc, 0xc6, 0xdf, 0x1f, 0x03, 0xfc, 0x72, 0x18, 0x5c, 0x94, 0xbe, 0x63, + 0x9e, 0x75, 0x9a, 0xf6, 0x63, 0xb2, 0x98, 0x5d, 0x42, 0xd9, 0x9a, 0x13, 0xfe, 0x1b, 0x01, 0x33, + 0xb9, 0x13, 0x74, 0x24, 0xee, 0x1e, 0xdb, 0x93, 0x50, 0x9b, 0xf5, 0x22, 0xcc, 0x3d, 0x17, 0xb4, + 0xf6, 0xf7, 0x46, 0x86, 0x1a, 0x2c, 0x0c, 0xb1, 0xfb, 0xff, 0x55, 0x51, 0xc8, 0x6e, 0xfd, 0x7c, + 0xb2, 0x5b, 0x6f, 0x12, 0x21, 0x07, 0xd5, 0x76, 0xbd, 0x85, 0xe5, 0xb1, 0x02, 0x66, 0x13, 0x9f, + 0x06, 0x2c, 0x5d, 0x8e, 0x3d, 0x25, 0x5b, 0xe0, 0xbf, 0x41, 0x36, 0xc1, 0x7f, 0xa3, 0xac, 0x87, + 0xff, 0x26, 0xf1, 0x71, 0xd4, 0xf4, 0xa7, 0xd6, 0xd2, 0x3b, 0x55, 0x2d, 0x21, 0xdc, 0xeb, 0x70, + 0xd1, 0x9c, 0x87, 0x72, 0x17, 0x41, 0xb9, 0xaf, 0xf1, 0xbd, 0x9e, 0x29, 0x5b, 0x84, 0x73, 0xd2, + 0xbc, 0x9d, 0x7a, 0xc2, 0x64, 0x2c, 0xe1, 0x6b, 0x97, 0xee, 0x0a, 0xb5, 0xad, 0x12, 0xe5, 0x60, + 0xaf, 0xbc, 0x83, 0x72, 0xb0, 0x57, 0xa0, 0x47, 0xd9, 0x29, 0x6c, 0x25, 0xd3, 0x97, 0x19, 0xc5, + 0x3b, 0xf8, 0xaa, 0x8a, 0xda, 0x9b, 0x57, 0x88, 0xe6, 0x18, 0x4a, 0xec, 0xe1, 0x7b, 0x07, 0xf9, + 0x0a, 0x21, 0x3b, 0xf9, 0x64, 0x03, 0x9f, 0x8c, 0xf6, 0x75, 0x07, 0xd5, 0xb5, 0xb8, 0xa7, 0xbd, + 0x41, 0x5d, 0x81, 0x19, 0x7b, 0x42, 0x5e, 0xfe, 0xbd, 0x9f, 0x41, 0x8a, 0xc1, 0xc2, 0x61, 0x80, + 0x63, 0x37, 0xfc, 0x6a, 0x44, 0xda, 0x0d, 0x80, 0xbe, 0x73, 0xdb, 0xab, 0xf9, 0xa9, 0x09, 0xf2, + 0x99, 0x26, 0x2e, 0x05, 0xbf, 0x1a, 0xee, 0x53, 0xda, 0xcb, 0xea, 0x24, 0x63, 0x19, 0xfc, 0x97, + 0xcb, 0x4b, 0xbd, 0xf0, 0xd5, 0x0d, 0x3d, 0x64, 0x2c, 0xed, 0x86, 0xb6, 0x18, 0xcb, 0xaa, 0xa4, + 0xe9, 0xd2, 0x0c, 0xc9, 0x6c, 0xaf, 0x91, 0xc5, 0x52, 0xaf, 0x9c, 0x03, 0xbe, 0x26, 0xf4, 0x95, + 0x4d, 0xea, 0x17, 0x50, 0x94, 0x6a, 0x8c, 0x5a, 0xff, 0x16, 0xef, 0xe8, 0x10, 0xd9, 0x7e, 0xad, + 0xba, 0xc4, 0x2a, 0x89, 0xba, 0xa3, 0x95, 0x9c, 0xee, 0xd4, 0x16, 0xc0, 0xfa, 0x73, 0xa5, 0xb0, + 0x8b, 0xd9, 0xd7, 0xb2, 0x79, 0xd0, 0x7f, 0xa7, 0x9f, 0x74, 0x42, 0x5f, 0xd8, 0xab, 0x7d, 0x5b, + 0x60, 0x3d, 0x3a, 0xa3, 0xea, 0x36, 0x39, 0xce, 0xad, 0xad, 0x5d, 0x9f, 0x40, 0x88, 0x60, 0x4f, + 0x94, 0xc1, 0x9a, 0x73, 0x7f, 0x15, 0xb3, 0x97, 0x16, 0x31, 0xc3, 0xfd, 0x6e, 0xe6, 0x38, 0x09, + 0x6b, 0x6e, 0x53, 0x15, 0xf8, 0x38, 0x8f, 0xaf, 0x66, 0xa6, 0x26, 0x37, 0xf8, 0x15, 0x8a, 0x04, + 0x17, 0x3c, 0x5d, 0x5c, 0x07, 0x63, 0x61, 0xb1, 0x79, 0xc0, 0x85, 0x1a, 0x90, 0x03, 0x30, 0x29, + 0x81, 0x13, 0xb0, 0x05, 0xc2, 0xcc, 0xb5, 0x14, 0xb9, 0x13, 0x31, 0x60, 0x03, 0xb7, 0xbd, 0x8b, + 0x56, 0xee, 0xa5, 0x28, 0x5f, 0xc3, 0x70, 0x7b, 0xb5, 0x2d, 0x40, 0xe1, 0x05, 0x94, 0xba, 0x46, + 0x4b, 0x2d, 0x7a, 0xd4, 0xda, 0x5c, 0xa4, 0x1b, 0xdc, 0xf3, 0xf8, 0xb8, 0xff, 0x7c, 0xb4, 0x1e, + 0xe1, 0x10, 0xd6, 0x36, 0x29, 0x87, 0xdb, 0x75, 0xbf, 0xef, 0x82, 0xbd, 0x09, 0xd7, 0x07, 0x55, + 0xdf, 0x95, 0x19, 0x6a, 0xab, 0x3f, 0x01, 0x18, 0x02, 0x6a, 0x6f, 0x78, 0xbb, 0x97, 0x95, 0x24, + 0x68, 0xac, 0x86, 0x54, 0x8a, 0x8d, 0x8d, 0x4d, 0xca, 0x2f, 0x3f, 0x99, 0x9f, 0x9a, 0x83, 0x5b, + 0xcd, 0xc1, 0x93, 0x9a, 0x3f, 0xdb, 0x7d, 0x63, 0x7e, 0xf2, 0x2b, 0x3c, 0x2f, 0x7b, 0x9f, 0x91, + 0xa9, 0xb1, 0x36, 0x26, 0x62, 0x25, 0xe1, 0x77, 0xf8, 0xbf, 0x54, 0xe2, 0xfc, 0x29, 0xca, 0x83, + 0xe5, 0x85, 0x46, 0x6c, 0xd6, 0xcd, 0x67, 0x00, 0xc4, 0x99, 0xa9, 0xee, 0x76, 0x56, 0xe2, 0x0a, + 0x3d, 0x79, 0x5d, 0x79, 0xe2, 0xb1, 0x67, 0x8e, 0xd0, 0x1e, 0xc3, 0x4d, 0xd6, 0x94, 0x57, 0x9f, + 0x9f, 0x62, 0x4d, 0xb9, 0x80, 0xd8, 0xab, 0xb0, 0x97, 0xd5, 0x40, 0x3e, 0x5e, 0xe0, 0x61, 0x10, + 0xf3, 0x16, 0x33, 0xf1, 0xd4, 0x93, 0xa2, 0x07, 0xf8, 0x04, 0x8b, 0xec, 0x52, 0xf7, 0x74, 0x2b, + 0x24, 0x18, 0x63, 0x56, 0xf9, 0x1a, 0xdf, 0x45, 0xea, 0xd6, 0x6a, 0x07, 0x90, 0x52, 0x91, 0x26, + 0x51, 0x3c, 0x5e, 0x0a, 0x34, 0xc6, 0xbc, 0x22, 0x66, 0x3a, 0xbd, 0x9a, 0x19, 0x6c, 0x1e, 0x67, + 0x27, 0xe4, 0xb1, 0x1e, 0xe1, 0xa3, 0xa2, 0x10, 0x56, 0xd9, 0x9a, 0xc5, 0xbf, 0x8b, 0x31, 0x9b, + 0xa7, 0xf4, 0x0e, 0xef, 0xe8, 0x9e, 0xa7, 0x7a, 0xcc, 0xa9, 0x71, 0xcf, 0x78, 0x6d, 0xb5, 0xae, + 0x07, 0x54, 0xdc, 0x6b, 0x87, 0x39, 0xe3, 0x05, 0x8c, 0xc5, 0x71, 0xb3, 0xab, 0xb4, 0x1a, 0x5c, + 0x78, 0x5e, 0xa9, 0x5c, 0xf4, 0x21, 0x6c, 0x22, 0x2e, 0x56, 0x4f, 0x25, 0x54, 0x00, 0xc6, 0xae, + 0xbc, 0x59, 0x7d, 0x4a, 0x6b, 0xa0, 0x46, 0x83, 0x6a, 0x7f, 0x15, 0xa8, 0x3a, 0x0c, 0x71, 0x6f, + 0xc6, 0x65, 0x97, 0x58, 0x29, 0xe0, 0xec, 0xf2, 0xc2, 0x22, 0x66, 0x57, 0x77, 0x13, 0x06, 0x69, + 0x3d, 0x4f, 0x9c, 0xac, 0x49, 0x8e, 0x8d, 0x03, 0x75, 0x06, 0x32, 0xf3, 0x36, 0xc2, 0x3c, 0x46, + 0xa3, 0x8b, 0x30, 0xcf, 0xfc, 0x45, 0x97, 0x98, 0xb3, 0x08, 0x28, 0xae, 0xfa, 0xf1, 0xf8, 0x01, + 0xa0, 0xc4, 0xdd, 0xe6, 0xcd, 0x48, 0x1f, 0x07, 0x73, 0x6d, 0x35, 0x65, 0x3b, 0x21, 0x9d, 0x0e, + 0xf7, 0xc1, 0xc2, 0xc2, 0xc6, 0x18, 0x70, 0x34, 0x8b, 0xa1, 0x65, 0xc9, 0x79, 0x7b, 0x8a, 0xee, + 0xff, 0x56, 0xf2, 0x3d, 0xb6, 0x0a, 0x5c, 0x39, 0x48, 0x0b, 0x53, 0x21, 0xee, 0xf2, 0xdf, 0xa5, + 0xad, 0x04, 0x42, 0xff, 0x8a, 0x7c, 0xf5, 0x0c, 0x95, 0x67, 0x05, 0x63, 0x7b, 0xb9, 0x56, 0x7d, + 0xdd, 0x61, 0xc0, 0x98, 0xfd, 0x09, 0x0e, 0xb3, 0x65, 0x45, 0x0e, 0x5f, 0x21, 0x20, 0xe4, 0x15, + 0x98, 0x4f, 0x7a, 0xed, 0x04, 0x96, 0x10, 0xe0, 0x27, 0xad, 0xc0, 0x7f, 0x3b, 0xf8, 0xef, 0x05, + 0xfa, 0xdf, 0xce, 0xf1, 0xb0, 0x6e, 0x67, 0x0a, 0x64, 0x2d, 0x4e, 0xb6, 0x10, 0xcf, 0x4d, 0xaa, + 0x10, 0xef, 0xfe, 0xd9, 0x0f, 0xc5, 0x4a, 0x6c, 0x0b, 0x59, 0x6e, 0xd4, 0xbb, 0x7a, 0xb8, 0x24, + 0xa8, 0x3c, 0x56, 0x75, 0x91, 0xe9, 0xe6, 0x78, 0x99, 0xc9, 0xb3, 0x8b, 0x19, 0xe0, 0xdb, 0x00, + 0xdf, 0x3a, 0x78, 0x5b, 0xe0, 0x9d, 0x8f, 0x5a, 0x9c, 0xe1, 0xdb, 0x0a, 0xdf, 0x16, 0xa8, 0x63, + 0x0d, 0x40, 0x91, 0x8b, 0x43, 0x11, 0xac, 0xe6, 0x3a, 0xb9, 0xe0, 0x33, 0xb8, 0xf8, 0x6a, 0x47, + 0x6e, 0xf0, 0x3c, 0xc5, 0xb3, 0x7c, 0x66, 0x3c, 0x8f, 0x1d, 0xe2, 0xf1, 0x56, 0x08, 0xef, 0x4e, + 0xd5, 0x0a, 0x68, 0xe9, 0x0b, 0xd8, 0x02, 0xf3, 0xcb, 0x58, 0x7b, 0x58, 0xf1, 0x11, 0x4e, 0x55, + 0xd9, 0xef, 0x3c, 0x98, 0xc7, 0xe2, 0x93, 0x6b, 0x11, 0xeb, 0xec, 0x54, 0xf3, 0xf8, 0xce, 0x4d, + 0xf2, 0x90, 0xa5, 0xc5, 0xcc, 0x05, 0xb4, 0x8c, 0x53, 0x6a, 0xd0, 0x76, 0xd9, 0xae, 0x1f, 0x06, + 0x2e, 0x5f, 0xaf, 0xb5, 0x29, 0x7d, 0x1f, 0xcf, 0xe6, 0xfe, 0xa2, 0x8f, 0x19, 0x81, 0x66, 0x55, + 0x6d, 0xbd, 0x9a, 0x57, 0x29, 0x0a, 0xac, 0x21, 0x06, 0x92, 0x48, 0x1b, 0x4b, 0xfb, 0x99, 0xe5, + 0xc4, 0x21, 0x59, 0x2f, 0x7a, 0x9a, 0x87, 0x21, 0xb6, 0x85, 0xca, 0x9e, 0x39, 0xf5, 0x18, 0xa0, + 0xd6, 0x9a, 0xb5, 0xf8, 0xff, 0x29, 0x67, 0x71, 0xb2, 0xb4, 0x1b, 0xf0, 0xc1, 0xe2, 0x74, 0xb8, + 0x54, 0x7b, 0xd8, 0xb6, 0x1f, 0xef, 0x1c, 0xcf, 0xfc, 0x8c, 0xfe, 0x5b, 0x5c, 0x18, 0x20, 0x8d, + 0x04, 0xa7, 0xd5, 0xbe, 0xfe, 0xf3, 0x29, 0xb0, 0xc7, 0xcf, 0xe2, 0x3a, 0xe4, 0x3f, 0x70, 0xed, + 0x34, 0xf0, 0x21, 0x5d, 0x88, 0xcb, 0xbc, 0x3f, 0x40, 0xcc, 0xe6, 0x1d, 0xad, 0x84, 0x95, 0xa3, + 0x1c, 0xd6, 0x0c, 0xa8, 0x99, 0xdd, 0x06, 0xfd, 0xbc, 0xf8, 0x13, 0xa3, 0x62, 0xcf, 0xa9, 0xbd, + 0x92, 0xaf, 0x38, 0x4c, 0xae, 0x0e, 0xc4, 0xf2, 0x13, 0xa7, 0x6f, 0x52, 0x6b, 0x7e, 0xd6, 0xaf, + 0x40, 0xc5, 0x25, 0x53, 0x8d, 0xc2, 0x59, 0x68, 0x57, 0x16, 0xdf, 0xa9, 0x9c, 0x84, 0xe3, 0x9e, + 0x06, 0x1c, 0x37, 0xeb, 0xe6, 0x38, 0xee, 0x5f, 0xce, 0x4f, 0xc6, 0x71, 0x78, 0x46, 0xda, 0x21, + 0x31, 0x6b, 0xa8, 0x4c, 0xca, 0xd2, 0xe4, 0xea, 0x4e, 0x16, 0x18, 0x12, 0xf5, 0xa9, 0xb2, 0x75, + 0x3b, 0x72, 0xee, 0xd5, 0x40, 0x35, 0xe8, 0x93, 0x3b, 0x81, 0x48, 0x6f, 0xf0, 0x3b, 0x52, 0x9a, + 0xbd, 0xdd, 0x8a, 0x05, 0x40, 0xab, 0x36, 0x42, 0x6e, 0xcd, 0x76, 0xa7, 0xb6, 0x1f, 0xef, 0xcc, + 0x3a, 0x13, 0x83, 0x51, 0x6e, 0xb6, 0xd5, 0x9c, 0xf8, 0x2d, 0x83, 0x35, 0xdd, 0x06, 0x74, 0x07, + 0xea, 0x4b, 0x5b, 0x08, 0xb4, 0x40, 0x3d, 0xee, 0x30, 0xda, 0x0a, 0x71, 0xd5, 0x43, 0x89, 0x6b, + 0x0b, 0x50, 0xb7, 0xde, 0x40, 0xd5, 0x16, 0xc0, 0xb6, 0x40, 0xeb, 0xfa, 0x02, 0xee, 0xcd, 0x40, + 0x1f, 0xe0, 0x09, 0x41, 0x4e, 0x33, 0x73, 0xc9, 0xab, 0xad, 0x83, 0xcd, 0xff, 0xfe, 0x04, 0x2a, + 0x14, 0x0e, 0xea, 0x91, 0x2b, 0x01, 0xfa, 0xd3, 0xae, 0xe2, 0x41, 0x27, 0xf0, 0xbf, 0x0b, 0xbe, + 0xa7, 0x86, 0x95, 0x62, 0x98, 0x17, 0x20, 0x95, 0x4e, 0x35, 0xb0, 0x52, 0xdd, 0x00, 0xc2, 0xb9, + 0x54, 0xc5, 0xca, 0xc9, 0x67, 0x1a, 0xab, 0xe0, 0x90, 0x2f, 0xb9, 0x59, 0x25, 0x52, 0x2e, 0x62, + 0x35, 0xe0, 0x46, 0x11, 0x31, 0x27, 0xf6, 0x2b, 0xb7, 0xd6, 0x0b, 0xad, 0x3a, 0x0a, 0x14, 0x38, + 0xe2, 0xa0, 0x66, 0xe8, 0xe3, 0x16, 0xc0, 0x41, 0xcb, 0x55, 0x1c, 0x04, 0x3c, 0xad, 0xae, 0x65, + 0x45, 0x25, 0x5a, 0x0b, 0x01, 0xea, 0x6d, 0xa8, 0x3d, 0x2f, 0x2a, 0xec, 0x43, 0x3a, 0xf6, 0x3b, + 0x1a, 0x4f, 0x9d, 0xf5, 0x29, 0xcc, 0xf3, 0x53, 0x2a, 0x8e, 0x6a, 0x56, 0x25, 0x5d, 0x4c, 0x78, + 0x3d, 0xaa, 0xdf, 0x87, 0xa1, 0x67, 0xe5, 0x0a, 0xa0, 0xa1, 0x80, 0x5f, 0x44, 0x3c, 0x86, 0xfc, + 0x63, 0x1b, 0xcb, 0xba, 0x48, 0x5f, 0x48, 0xdb, 0x1e, 0x04, 0x6a, 0xb3, 0x91, 0x5c, 0x50, 0x4e, + 0xd6, 0x66, 0xfa, 0x9a, 0x01, 0x14, 0xf2, 0x0b, 0xe0, 0xff, 0x46, 0x79, 0x3f, 0xc0, 0x33, 0x50, + 0xcf, 0x76, 0x97, 0x86, 0xb5, 0xb2, 0xf6, 0x4c, 0x05, 0x25, 0xaa, 0xb4, 0x7f, 0x3b, 0xc7, 0x5b, + 0x78, 0x06, 0xc6, 0xb3, 0x55, 0xc4, 0xdd, 0x7b, 0x1d, 0xc7, 0x5c, 0x40, 0xb5, 0x70, 0xac, 0x7b, + 0x0e, 0x77, 0x56, 0x28, 0x44, 0x3f, 0x45, 0x88, 0x19, 0x70, 0xbe, 0x9e, 0xb8, 0x81, 0x02, 0xe8, + 0xdf, 0x59, 0xc8, 0x37, 0x3f, 0xf1, 0xff, 0xee, 0xe1, 0x6b, 0xfe, 0x53, 0x36, 0x27, 0x33, 0x03, + 0x15, 0xb8, 0x51, 0xee, 0xa7, 0xf4, 0xc2, 0xe4, 0xf4, 0x64, 0xd1, 0x61, 0x07, 0x3f, 0xcf, 0xec, + 0x88, 0xd1, 0x49, 0xeb, 0x27, 0x54, 0xab, 0xec, 0xa8, 0x99, 0xfa, 0x4e, 0xa0, 0x78, 0x3a, 0x68, + 0x2f, 0xf1, 0xdb, 0x0e, 0x46, 0xa9, 0x2c, 0xa8, 0xa9, 0x62, 0x73, 0x2d, 0xab, 0x91, 0x56, 0x33, + 0x33, 0xd7, 0x6e, 0xb1, 0x59, 0x62, 0x0d, 0x30, 0x42, 0x8d, 0xf0, 0x6b, 0x16, 0x9b, 0x90, 0x86, + 0xc4, 0x7d, 0x2a, 0xac, 0x73, 0xe3, 0x48, 0x68, 0xbe, 0x2d, 0x4b, 0x36, 0xf0, 0x3a, 0x51, 0x0d, + 0xb2, 0xd2, 0xcb, 0xa7, 0x92, 0x67, 0xa1, 0x9c, 0xbf, 0x05, 0x25, 0x69, 0x26, 0x9c, 0xab, 0xd7, + 0x51, 0xe3, 0x1e, 0xd3, 0x7d, 0xdd, 0xd6, 0x94, 0x6e, 0xef, 0xf7, 0xba, 0x5f, 0x3d, 0x3f, 0x5a, + 0xa0, 0xf5, 0x26, 0x9e, 0xb9, 0x4f, 0xc1, 0x7c, 0x3a, 0x7b, 0x82, 0x16, 0xaf, 0x05, 0x5a, 0xdc, + 0x16, 0xa0, 0xf4, 0xb3, 0x92, 0xe9, 0x81, 0xdb, 0xe5, 0x3d, 0x65, 0xe2, 0x6d, 0xc1, 0x5d, 0x04, + 0x1b, 0xc0, 0xfa, 0xe4, 0x72, 0x54, 0x0c, 0x3b, 0x3e, 0xe5, 0xdc, 0x6e, 0xe6, 0x25, 0xa0, 0xa5, + 0x1b, 0x3c, 0x67, 0x89, 0x63, 0xaf, 0xca, 0xeb, 0x6a, 0x54, 0x79, 0x5d, 0x37, 0xc9, 0xeb, 0xf8, + 0x7b, 0x27, 0x60, 0x99, 0x7e, 0x86, 0x78, 0xfb, 0x15, 0x35, 0xd7, 0x17, 0xa6, 0x86, 0x05, 0x88, + 0xb1, 0x29, 0x59, 0x77, 0x5f, 0x11, 0xbb, 0x0d, 0xf5, 0x9f, 0x7a, 0x0f, 0xd5, 0x0c, 0x3a, 0x01, + 0x43, 0xd1, 0xc9, 0xb2, 0x55, 0x7c, 0x66, 0x72, 0xfc, 0xc5, 0x71, 0xd9, 0x42, 0x9a, 0xa1, 0xea, + 0x8e, 0xc8, 0xc3, 0x90, 0x47, 0x1d, 0xae, 0x95, 0x3c, 0x9f, 0x7a, 0xc8, 0xc7, 0xb4, 0x9a, 0xc5, + 0x98, 0x39, 0x8c, 0xd6, 0xb2, 0x0b, 0xb0, 0xe7, 0xf1, 0x2e, 0x83, 0xd4, 0x01, 0x23, 0x47, 0x5c, + 0xad, 0xb8, 0x5a, 0xe5, 0xa4, 0x16, 0xa5, 0xf6, 0x24, 0x96, 0xe5, 0x70, 0xb2, 0x5c, 0xc0, 0x11, + 0x39, 0x36, 0x17, 0xb3, 0x8a, 0x2e, 0x66, 0x71, 0x2d, 0xc3, 0xbb, 0xb4, 0x54, 0x0b, 0xf0, 0x85, + 0x90, 0xdc, 0xb9, 0x55, 0xcc, 0x32, 0xd7, 0xc3, 0xac, 0xa4, 0xcb, 0xe3, 0xb8, 0xd4, 0x8f, 0x33, + 0x03, 0xca, 0x98, 0x32, 0x47, 0xa0, 0xfc, 0x82, 0x98, 0x16, 0x42, 0xf4, 0xba, 0x98, 0x02, 0xb3, + 0xda, 0x1c, 0xd3, 0x31, 0xf6, 0x3e, 0x40, 0xe6, 0x76, 0xe8, 0x1d, 0xdc, 0xcb, 0xde, 0x2c, 0x26, + 0xea, 0x8d, 0x30, 0x95, 0xf5, 0x5b, 0xe0, 0xc5, 0x3b, 0x58, 0x85, 0xea, 0xba, 0x0e, 0x38, 0x04, + 0x56, 0x40, 0xa2, 0xa8, 0x60, 0x1e, 0x32, 0x17, 0xda, 0xdc, 0x41, 0x7a, 0x0a, 0x7e, 0x15, 0x91, + 0x82, 0x93, 0x23, 0x1c, 0x4a, 0xe3, 0x39, 0x32, 0x8b, 0x6f, 0xe1, 0xb9, 0x60, 0xaf, 0x3d, 0x7d, + 0xd8, 0x06, 0xa9, 0x9e, 0x39, 0x02, 0x7d, 0x82, 0xe7, 0x00, 0x5e, 0x2c, 0x77, 0xcb, 0x8e, 0x9b, + 0x50, 0xa9, 0x29, 0x2b, 0x68, 0x3c, 0xca, 0x35, 0x3b, 0xf6, 0x23, 0x8f, 0x5c, 0x7e, 0x03, 0x06, + 0xff, 0x27, 0xc0, 0xe0, 0xf9, 0x37, 0xc7, 0xe0, 0x07, 0xe4, 0x1b, 0xcf, 0xe4, 0xe1, 0xfd, 0xd4, + 0xe4, 0xa5, 0xb5, 0x28, 0x1a, 0x6e, 0x2d, 0x2f, 0x45, 0x83, 0xc6, 0xa5, 0x7f, 0x5d, 0x52, 0xaa, + 0xde, 0x31, 0x35, 0xb1, 0xf4, 0x18, 0x53, 0xdd, 0x56, 0xe5, 0x77, 0x4e, 0xff, 0x2d, 0xc0, 0xc6, + 0x46, 0x2d, 0xcc, 0x29, 0x3c, 0x06, 0xdf, 0x25, 0xf0, 0x33, 0xc3, 0xaf, 0x0b, 0x23, 0x84, 0x99, + 0x4c, 0xf7, 0x0e, 0xc3, 0x82, 0x4c, 0x77, 0x12, 0xc3, 0x3a, 0x9c, 0x5f, 0x38, 0xb7, 0xa0, 0x16, + 0x6b, 0xd0, 0xde, 0x7a, 0xda, 0xcd, 0x5e, 0xdd, 0xde, 0x57, 0x99, 0x25, 0x68, 0xfb, 0x6c, 0x2b, + 0xf7, 0x9c, 0x6f, 0x0d, 0x27, 0x66, 0xc7, 0xc4, 0x69, 0x17, 0xe2, 0x2d, 0xb2, 0x8c, 0x8d, 0x1c, + 0x54, 0xb9, 0xdb, 0xe6, 0x4f, 0xbd, 0x97, 0xfb, 0xcc, 0x11, 0xa0, 0x43, 0xcd, 0xa9, 0x67, 0x69, + 0xb1, 0x2f, 0x6b, 0xf4, 0xa4, 0x87, 0x75, 0x0d, 0xd6, 0x7f, 0x34, 0x97, 0x8d, 0x9d, 0xe9, 0x10, + 0xe6, 0xb2, 0xb7, 0xd9, 0xd8, 0xa1, 0x31, 0xf8, 0x41, 0xaf, 0x9e, 0x1e, 0x4d, 0xdc, 0x99, 0xd5, + 0xb1, 0xb1, 0x37, 0xff, 0x10, 0x23, 0x0b, 0xc2, 0xff, 0x9e, 0x17, 0x43, 0x11, 0xe4, 0xd8, 0xbf, + 0xdf, 0x1b, 0x23, 0xeb, 0xcb, 0xff, 0xbe, 0x10, 0xde, 0x06, 0x78, 0xb7, 0xc4, 0xc8, 0x22, 0xf1, + 0xbf, 0xf7, 0xc4, 0x50, 0xed, 0xc0, 0xd8, 0xbf, 0x6f, 0x84, 0xf7, 0x74, 0x78, 0xff, 0x53, 0x8c, + 0xac, 0x22, 0xff, 0xfb, 0xcb, 0xf0, 0x9e, 0x01, 0xef, 0x1f, 0xc3, 0x3b, 0x07, 0xde, 0x57, 0xe1, + 0x9d, 0xcf, 0xc6, 0x0e, 0xdf, 0xc6, 0x2d, 0x40, 0x1f, 0x76, 0xf0, 0xdb, 0x5d, 0x87, 0x2b, 0xb8, + 0xa5, 0xe1, 0xc3, 0x75, 0xdc, 0x62, 0xf1, 0xe1, 0x16, 0x46, 0xe5, 0x1d, 0xee, 0xe0, 0xd6, 0x9e, + 0x0f, 0xff, 0x1d, 0xb7, 0x7c, 0x7c, 0xf8, 0x71, 0x46, 0xe5, 0x1c, 0x06, 0xee, 0x1d, 0xcb, 0x39, + 0xfc, 0x1d, 0x6e, 0x7d, 0xf9, 0xf0, 0x6e, 0x46, 0xe5, 0x1c, 0xfe, 0x37, 0xba, 0xe7, 0x38, 0x76, + 0xf8, 0x04, 0xdd, 0x03, 0x1d, 0x3b, 0xfc, 0x2b, 0x78, 0x43, 0x2b, 0x0f, 0x5f, 0x82, 0xf7, 0x9d, + 0x6c, 0xec, 0x2d, 0xba, 0x1b, 0x0b, 0x6f, 0xbc, 0x23, 0x7a, 0x17, 0xbc, 0xbf, 0x08, 0x6f, 0x11, + 0xde, 0xf7, 0xd0, 0xcd, 0xb1, 0xb1, 0xb7, 0xee, 0x67, 0xa8, 0x15, 0x68, 0xec, 0x2d, 0x3f, 0xbc, + 0x4b, 0xe1, 0xfd, 0x15, 0x78, 0xdf, 0x03, 0x6f, 0xac, 0x47, 0x19, 0xbc, 0xf1, 0x76, 0xda, 0xbd, + 0xf0, 0xfe, 0x7f, 0xe0, 0x5d, 0x0e, 0xef, 0x6f, 0xe0, 0xdd, 0x4e, 0x78, 0x6f, 0xc6, 0xfb, 0x9c, + 0xf0, 0xc6, 0x7a, 0x79, 0xe0, 0xfd, 0x3f, 0x78, 0xfb, 0xde, 0xfa, 0x27, 0xde, 0xbe, 0xb7, 0x76, + 0xf1, 0xf6, 0xbd, 0xf5, 0x7f, 0x78, 0xfb, 0xde, 0x3a, 0xc1, 0xdb, 0xf7, 0xd6, 0x6f, 0x79, 0xfb, + 0x8e, 0x60, 0x6c, 0xe8, 0xcf, 0x23, 0x9f, 0xe3, 0xed, 0x3c, 0xe2, 0xe4, 0xed, 0x3c, 0x52, 0xc9, + 0xdb, 0x79, 0xa4, 0x99, 0xb7, 0xf3, 0x48, 0x0f, 0x6f, 0xe7, 0x91, 0x6f, 0xf0, 0xfc, 0x8f, 0xbc, + 0xc8, 0xc6, 0x7e, 0x08, 0xed, 0xf9, 0x61, 0x01, 0xfc, 0x9e, 0x65, 0x63, 0x6f, 0x40, 0x9e, 0x6f, + 0x80, 0xfb, 0x8d, 0x17, 0xb8, 0xff, 0x1b, 0xbb, 0xd9, 0xd8, 0x8f, 0xec, 0xf0, 0x83, 0xba, 0xfe, + 0x08, 0x70, 0xff, 0x8f, 0x1a, 0xe0, 0xd7, 0x0c, 0xbf, 0xe5, 0x6a, 0x3a, 0xf8, 0xfd, 0xa8, 0x0d, + 0x7e, 0x5d, 0xf0, 0x83, 0x39, 0xf3, 0xa3, 0x21, 0xf8, 0x6d, 0x82, 0xdf, 0xb3, 0xc9, 0xf0, 0x3f, + 0xf7, 0xfb, 0xd1, 0x3e, 0xf8, 0x1d, 0x84, 0xdf, 0xa9, 0x5b, 0x4f, 0x93, 0x96, 0xfe, 0x1c, 0xfc, + 0x3e, 0x04, 0x58, 0x83, 0x36, 0xbc, 0x69, 0xff, 0xcb, 0xd3, 0xbf, 0xe9, 0x82, 0x1f, 0xb4, 0xef, + 0xcd, 0xca, 0xd6, 0xae, 0xf6, 0x48, 0xb4, 0xa4, 0xa3, 0xb7, 0x77, 0xf5, 0x6d, 0x26, 0xf5, 0x46, + 0x79, 0xd2, 0x0b, 0x2d, 0x97, 0x57, 0x88, 0xc9, 0x79, 0xae, 0xda, 0x20, 0x3f, 0x72, 0x50, 0xa0, + 0x11, 0x3a, 0x72, 0x44, 0xa0, 0x11, 0x3a, 0x72, 0x51, 0xa0, 0x11, 0x3a, 0x32, 0x31, 0x40, 0x23, + 0xf3, 0xe3, 0xbb, 0x06, 0x68, 0x64, 0x7e, 0x5c, 0x26, 0xd0, 0xc8, 0xfc, 0x38, 0x20, 0xd0, 0xc8, + 0xfc, 0xb8, 0x47, 0xa0, 0x91, 0xf9, 0xf1, 0xa6, 0x01, 0x1a, 0x99, 0x1f, 0xff, 0xa3, 0x40, 0x23, + 0xf3, 0xe3, 0x7f, 0x85, 0x37, 0xe0, 0x81, 0x1f, 0xff, 0x0a, 0xde, 0xb7, 0xb1, 0xb1, 0xa3, 0x3a, + 0x81, 0x20, 0xff, 0xe8, 0xdd, 0xf0, 0xbe, 0x1d, 0xde, 0x1e, 0x81, 0x20, 0xf4, 0xe8, 0x72, 0x5e, + 0xfe, 0xd1, 0xc7, 0x06, 0x05, 0x7a, 0x3f, 0x07, 0x6f, 0xa8, 0xc7, 0xd1, 0xff, 0x0d, 0x6f, 0x28, + 0xef, 0xe8, 0x2f, 0xe0, 0x0d, 0xe5, 0x1d, 0xbd, 0x02, 0x6f, 0x28, 0xe7, 0x27, 0x66, 0x78, 0x43, + 0x39, 0x3f, 0x99, 0x0d, 0x6f, 0x28, 0xe7, 0x27, 0x5f, 0x82, 0x37, 0x40, 0xe8, 0x4f, 0xfc, 0x3a, + 0x2a, 0xef, 0x27, 0x41, 0x1d, 0x95, 0xf7, 0x93, 0x75, 0x83, 0x42, 0x2e, 0xf4, 0xc6, 0x4f, 0x9e, + 0xd4, 0x31, 0x3d, 0xe4, 0xf7, 0x93, 0x5d, 0xbc, 0x9c, 0x9f, 0x1c, 0xdd, 0x40, 0xe5, 0xfc, 0xe4, + 0x03, 0xd5, 0x7d, 0x7d, 0x88, 0xda, 0x7d, 0x6c, 0xe6, 0x90, 0x80, 0xed, 0x3e, 0xf6, 0x25, 0x88, + 0x0d, 0xed, 0x3e, 0xb6, 0x12, 0xde, 0x00, 0x45, 0xc7, 0xfe, 0x0e, 0xfc, 0xa1, 0xfd, 0xc7, 0xb6, + 0x0f, 0x51, 0xfb, 0x8f, 0xbd, 0x3c, 0x44, 0xf5, 0x39, 0xf6, 0xef, 0xf0, 0x86, 0xf6, 0x1f, 0x7b, + 0x77, 0x88, 0xda, 0xff, 0x53, 0xfd, 0x10, 0xd5, 0xeb, 0xa7, 0xb6, 0x21, 0xaa, 0xd7, 0x4f, 0x2b, + 0x87, 0xa8, 0x3e, 0x3f, 0x7d, 0x70, 0x88, 0xea, 0xf3, 0xd3, 0xbf, 0x1b, 0xa2, 0xf6, 0xff, 0xf4, + 0x1f, 0x86, 0xa8, 0xfd, 0x3f, 0x3d, 0xa8, 0xa7, 0xf6, 0xff, 0xf4, 0x3f, 0xf4, 0x34, 0x43, 0x8f, + 0x67, 0xf3, 0xfa, 0x1c, 0x2f, 0x51, 0xdf, 0xfe, 0x69, 0xd4, 0x0f, 0xc7, 0x3b, 0xa7, 0xd1, 0x78, + 0x1c, 0xff, 0xfa, 0x34, 0x1a, 0x8f, 0xe3, 0xdf, 0x9a, 0x46, 0x33, 0xe6, 0xf8, 0x0b, 0xd3, 0x68, + 0x5c, 0x8e, 0xff, 0x70, 0x1a, 0xd5, 0xeb, 0xf8, 0xc9, 0x69, 0x34, 0x2e, 0xc7, 0x3f, 0x9c, 0x46, + 0xe3, 0x72, 0x02, 0x1c, 0x58, 0xaf, 0x13, 0x79, 0xd3, 0x68, 0x5c, 0x4e, 0x38, 0xa7, 0xd1, 0xb8, + 0x9c, 0xb8, 0x77, 0x1a, 0xd5, 0xeb, 0x44, 0xfd, 0x34, 0xaa, 0xd7, 0x89, 0xa5, 0xd3, 0xa8, 0x5e, + 0x27, 0x06, 0x78, 0xb9, 0x27, 0x9e, 0x37, 0x52, 0x7f, 0x9c, 0x38, 0xa8, 0xba, 0x8f, 0xab, 0xef, + 0x8f, 0x4c, 0xe4, 0x7f, 0xd2, 0xc8, 0xdd, 0x27, 0x25, 0xf5, 0xbd, 0x44, 0x7d, 0xf7, 0xa8, 0xef, + 0x4d, 0xea, 0xfb, 0x9f, 0xee, 0xe0, 0xf1, 0xd5, 0x7c, 0x4e, 0xbe, 0xa3, 0xbe, 0xaf, 0xf1, 0xf7, + 0xdb, 0x9f, 0xb3, 0x52, 0xf8, 0xdb, 0x7f, 0xad, 0xba, 0x97, 0xdd, 0xc5, 0xdd, 0x6b, 0xee, 0xa2, + 0xf6, 0xbe, 0xad, 0xce, 0xec, 0xb7, 0xbf, 0xab, 0xbe, 0x0f, 0xcd, 0xe6, 0xe1, 0xff, 0x31, 0x9b, + 0x87, 0x5f, 0xe7, 0xfe, 0xa7, 0x0a, 0xd4, 0x77, 0x45, 0x29, 0x85, 0x9f, 0x6a, 0x56, 0xdd, 0xe1, + 0xef, 0x71, 0xf7, 0xf0, 0x3d, 0xfc, 0xfd, 0x8f, 0xf7, 0x50, 0xba, 0x53, 0x3f, 0xbc, 0x87, 0xfa, + 0xf1, 0xd4, 0x7b, 0xdf, 0x23, 0x78, 0xfa, 0x99, 0x9e, 0xc7, 0xff, 0x99, 0x5d, 0x7d, 0x57, 0xaa, + 0xef, 0x26, 0xf5, 0x1d, 0x51, 0xdf, 0xdf, 0x54, 0xdf, 0xdf, 0x2d, 0x2e, 0xa6, 0xf5, 0x12, 0x2d, + 0xd3, 0x06, 0xd1, 0xae, 0x70, 0x71, 0x31, 0xab, 0xb8, 0xdd, 0x0f, 0xae, 0xda, 0x9e, 0xde, 0x35, + 0xa1, 0x0e, 0x71, 0x71, 0x7b, 0x77, 0x6f, 0xe4, 0xd1, 0xd9, 0x22, 0xf8, 0x36, 0xf5, 0x06, 0xa3, + 0x8f, 0xb4, 0x46, 0xda, 0xc5, 0x3a, 0x6e, 0xef, 0x9b, 0x3c, 0x03, 0xed, 0x2b, 0x7b, 0xd7, 0xb6, + 0x47, 0x5a, 0x57, 0x74, 0xb5, 0x8b, 0x55, 0x38, 0x2d, 0xc1, 0x57, 0x68, 0xbc, 0xbd, 0x31, 0xd2, + 0xde, 0xd7, 0x27, 0x76, 0xf7, 0xae, 0xe9, 0x6b, 0x17, 0x57, 0xac, 0x89, 0x46, 0x7b, 0x7b, 0xd0, + 0xfc, 0x30, 0x5e, 0x7e, 0xee, 0xec, 0x59, 0xd3, 0x5e, 0xc2, 0x76, 0x16, 0xa2, 0x7d, 0xf5, 0xf9, + 0xa2, 0x28, 0xce, 0x29, 0xad, 0xe8, 0x5a, 0x27, 0x16, 0x8b, 0x6c, 0x56, 0x2d, 0x59, 0xe5, 0x06, + 0x8f, 0xf2, 0x75, 0xfc, 0x1f, 0x78, 0xde, 0x78, 0xdb, 0xdc, 0xdb, 0x1a, 0x69, 0xa3, 0x5a, 0xac, + 0x58, 0xd3, 0x27, 0x06, 0xd1, 0x36, 0xb7, 0xd4, 0xda, 0xd6, 0x46, 0xc5, 0x91, 0x59, 0x6f, 0x56, + 0xdf, 0xd5, 0xd5, 0x1e, 0x6a, 0xed, 0x12, 0x35, 0xdf, 0xd6, 0x95, 0x68, 0x54, 0x59, 0x74, 0xf6, + 0xb6, 0xb5, 0xcd, 0x4d, 0x04, 0x76, 0xf6, 0xf4, 0x45, 0x23, 0x6b, 0x56, 0x62, 0xce, 0xac, 0xa6, + 0x73, 0x6d, 0x67, 0x1f, 0x7c, 0x88, 0x2b, 0x1e, 0x15, 0xd7, 0xb7, 0x47, 0x7a, 0x59, 0xb5, 0x77, + 0x51, 0x6a, 0x04, 0x35, 0xdf, 0xe6, 0x40, 0x55, 0xe3, 0xb2, 0x29, 0xfc, 0x1b, 0x23, 0x90, 0xbe, + 0xab, 0xbd, 0x2d, 0xd4, 0x2e, 0xae, 0xed, 0xec, 0xed, 0x6a, 0x4d, 0x4d, 0x12, 0x69, 0x5d, 0xa9, + 0x5a, 0x1b, 0x67, 0x0d, 0x9d, 0x3d, 0xed, 0xe2, 0x3d, 0xa5, 0xf7, 0x94, 0x8a, 0xce, 0xaa, 0xb9, + 0x62, 0xad, 0xd8, 0xbd, 0x06, 0xa2, 0x42, 0x7b, 0x53, 0x43, 0xe1, 0x11, 0x9d, 0x75, 0x10, 0xaa, + 0x06, 0x4a, 0xd5, 0xbd, 0xaa, 0x4d, 0xe8, 0x44, 0x44, 0xb2, 0x7c, 0x2c, 0x06, 0x23, 0xad, 0xdd, + 0xed, 0x22, 0xbf, 0xcf, 0xad, 0x05, 0x84, 0xd7, 0x44, 0x3a, 0xa1, 0xbf, 0xa1, 0x86, 0x51, 0xf0, + 0x59, 0x13, 0xd6, 0x02, 0x96, 0xf6, 0xac, 0xee, 0xe9, 0x7d, 0xa4, 0x47, 0xac, 0x6e, 0x5c, 0xaa, + 0xfa, 0xb4, 0xaf, 0x6b, 0x5f, 0xa9, 0xf5, 0xa7, 0x78, 0xc3, 0x85, 0x7c, 0x71, 0xd2, 0x8d, 0xfc, + 0x29, 0x06, 0x41, 0x64, 0x50, 0x6e, 0x47, 0xd2, 0x95, 0xa2, 0x1f, 0x40, 0x64, 0x50, 0x35, 0xf8, + 0x16, 0xd3, 0x6e, 0xfd, 0x8b, 0x50, 0x66, 0xb8, 0xb5, 0xa7, 0x2f, 0x2d, 0x0f, 0xbc, 0xdf, 0x1f, + 0x04, 0x88, 0x48, 0xfa, 0xb4, 0xae, 0x69, 0xeb, 0xec, 0x2d, 0x69, 0x6b, 0x5f, 0xdb, 0x09, 0xdd, + 0xc6, 0xf0, 0x3e, 0x7b, 0x6f, 0x57, 0x7b, 0xc2, 0x1d, 0x82, 0x36, 0x87, 0x7b, 0x01, 0xf1, 0x6b, + 0x1e, 0xab, 0xdb, 0x1f, 0x5d, 0xd1, 0x0b, 0xe0, 0x90, 0xf0, 0x88, 0x46, 0xf0, 0x0e, 0x3f, 0xaa, + 0x0d, 0x48, 0xf8, 0x74, 0x76, 0xb7, 0x47, 0x92, 0x39, 0x76, 0xb6, 0x26, 0x95, 0x90, 0x70, 0xfd, + 0x02, 0x49, 0x67, 0x77, 0x67, 0xdf, 0xca, 0x14, 0xe7, 0x8a, 0xde, 0xde, 0x28, 0x0c, 0x75, 0x6b, + 0x58, 0x4c, 0x52, 0x8e, 0x3c, 0xcd, 0xca, 0xde, 0x30, 0x76, 0x9b, 0xaa, 0xe5, 0x40, 0xd4, 0xf4, + 0x1f, 0x40, 0xf5, 0x23, 0xbd, 0xe0, 0xec, 0xed, 0x85, 0x24, 0x1d, 0x9d, 0x6d, 0x6d, 0x10, 0xa2, + 0x76, 0x3d, 0xeb, 0xe9, 0x15, 0xbb, 0x69, 0x22, 0xe1, 0x98, 0x61, 0xcb, 0xd6, 0x74, 0x71, 0x6b, + 0xd0, 0xdd, 0xad, 0xab, 0xdb, 0xc5, 0x44, 0xfb, 0x93, 0xfe, 0xbd, 0xa8, 0x42, 0xe0, 0x66, 0xfe, + 0xc9, 0x0e, 0x4a, 0xf3, 0x4e, 0xd6, 0xbd, 0x7e, 0x89, 0x6a, 0xe2, 0xfe, 0x91, 0xce, 0x68, 0x07, + 0x95, 0xde, 0xd7, 0x19, 0xea, 0x01, 0xb0, 0x87, 0xd2, 0xa5, 0x60, 0xa4, 0xb7, 0x1b, 0x9a, 0xd7, + 0xda, 0x86, 0x2a, 0x0a, 0xa0, 0x4b, 0x01, 0x5a, 0x52, 0xfc, 0x57, 0x76, 0xf5, 0xf6, 0x25, 0x6b, + 0x94, 0x9a, 0x0b, 0x0f, 0x51, 0xcb, 0x4e, 0x0d, 0x50, 0x41, 0x54, 0x5c, 0x19, 0x69, 0x07, 0xe0, + 0xef, 0x09, 0x91, 0xf5, 0x6a, 0xc0, 0x0f, 0x6a, 0xb0, 0xd6, 0x09, 0x10, 0x0d, 0x90, 0x44, 0xf7, + 0x24, 0x5f, 0x0e, 0x91, 0x8b, 0xab, 0xe7, 0x55, 0xac, 0x16, 0x6b, 0xd7, 0xad, 0x6c, 0x0f, 0xd3, + 0xf4, 0x59, 0x4b, 0x56, 0xe8, 0xc5, 0x95, 0x1d, 0xed, 0x2b, 0x57, 0xf7, 0xad, 0xe9, 0x26, 0x85, + 0x0c, 0x9e, 0x56, 0x28, 0x3e, 0xe1, 0xd3, 0xa0, 0xd6, 0x50, 0xf3, 0xd0, 0x0a, 0x65, 0xd5, 0xbd, + 0x1c, 0xf8, 0xd5, 0xfe, 0xee, 0xea, 0xec, 0x8b, 0x42, 0xa5, 0xa3, 0x90, 0x61, 0x7b, 0x1b, 0xf3, + 0xa7, 0x8d, 0x43, 0x72, 0xa6, 0xf4, 0xb5, 0x47, 0x00, 0x89, 0xf5, 0x31, 0x67, 0xef, 0x8a, 0xbe, + 0xb9, 0x62, 0x7d, 0x4f, 0x67, 0xb4, 0x89, 0x66, 0xb9, 0xd8, 0x1b, 0x14, 0x5b, 0x7b, 0xc4, 0xaa, + 0xc6, 0xe6, 0x00, 0x6b, 0x6a, 0xef, 0x86, 0x89, 0xd2, 0x0b, 0xed, 0xea, 0xec, 0x41, 0xcf, 0x4e, + 0x15, 0x95, 0xf4, 0x45, 0x51, 0xbd, 0xc3, 0x62, 0x35, 0xdb, 0x48, 0x7b, 0x7b, 0x9b, 0x18, 0x7d, + 0x04, 0xfa, 0x28, 0x81, 0x6b, 0xba, 0x57, 0x62, 0xe3, 0xda, 0x13, 0x8d, 0x8b, 0xc2, 0x98, 0xf7, + 0xb0, 0xaa, 0x68, 0xb4, 0xbd, 0x1b, 0x8a, 0x46, 0xab, 0xec, 0xed, 0x88, 0x26, 0x5b, 0x01, 0xa9, + 0xac, 0x6d, 0x17, 0xeb, 0x97, 0xa8, 0x56, 0xcb, 0x59, 0x53, 0x6b, 0x0f, 0x82, 0x15, 0xb5, 0x50, + 0x84, 0x74, 0xa9, 0x2d, 0xe2, 0x06, 0xc2, 0x53, 0x33, 0xc1, 0x2c, 0x12, 0x69, 0xc5, 0xd6, 0x20, + 0x0e, 0x2b, 0x0d, 0x99, 0x8a, 0x32, 0xda, 0xd7, 0x45, 0xdb, 0x7b, 0xda, 0xfa, 0x50, 0xc1, 0x03, + 0xb6, 0x2a, 0xd2, 0xda, 0x13, 0x4a, 0xd4, 0xba, 0xa3, 0xbd, 0xb5, 0x0d, 0xa2, 0x23, 0x24, 0x75, + 0xf5, 0xae, 0x6c, 0x8d, 0xde, 0x98, 0x33, 0x1a, 0x9f, 0xef, 0x05, 0x60, 0xeb, 0x86, 0x81, 0x6e, + 0x05, 0x4c, 0xd7, 0xa7, 0x75, 0x46, 0x72, 0x20, 0x53, 0x91, 0x0a, 0x1f, 0xd5, 0x85, 0x2a, 0x66, + 0xd1, 0xca, 0xe4, 0x0d, 0x48, 0x19, 0x04, 0xc8, 0x1c, 0x4d, 0xd0, 0x63, 0x89, 0xe2, 0xe2, 0x5e, + 0x68, 0x6d, 0x6f, 0xa4, 0x29, 0xdc, 0xbe, 0x72, 0xd2, 0x30, 0x75, 0xf5, 0x22, 0x4c, 0x21, 0xa8, + 0x4e, 0x0a, 0xe8, 0x83, 0x0a, 0x44, 0xd5, 0x90, 0xc5, 0x69, 0x21, 0xcd, 0xdd, 0xe1, 0x40, 0x6b, + 0xdf, 0xa4, 0xe8, 0x9e, 0xae, 0xa8, 0xa7, 0x33, 0xba, 0xb8, 0x35, 0x3c, 0xc9, 0x3f, 0xd0, 0x1e, + 0xc2, 0x65, 0x20, 0xdd, 0x73, 0x31, 0x0c, 0xd2, 0xb2, 0x46, 0xc8, 0x9f, 0xf1, 0x65, 0x09, 0xc6, + 0x7c, 0x61, 0x70, 0x9d, 0xbf, 0xfd, 0x11, 0xe7, 0xdc, 0x34, 0x9f, 0x3a, 0x18, 0x70, 0xf4, 0x02, + 0x34, 0x13, 0x02, 0x14, 0xf1, 0xa8, 0x96, 0x07, 0xf6, 0x65, 0xeb, 0x5a, 0x18, 0x25, 0x5c, 0x19, + 0x51, 0xd1, 0xc6, 0x9a, 0x30, 0xe2, 0x2e, 0x00, 0x0e, 0x44, 0x79, 0x00, 0x91, 0x7d, 0x2b, 0x23, + 0x9d, 0x1c, 0x1e, 0xa0, 0x7f, 0xdb, 0x12, 0xdd, 0x78, 0x03, 0x36, 0xe6, 0x5d, 0xc9, 0x51, 0xf2, + 0x7c, 0x31, 0x81, 0x48, 0x12, 0x09, 0x26, 0x21, 0x6b, 0x1e, 0x3d, 0x81, 0xb1, 0xe7, 0x8b, 0x89, + 0x8c, 0x49, 0x17, 0x87, 0x18, 0x7d, 0x34, 0xdc, 0x9e, 0x0c, 0x16, 0x09, 0x85, 0xf4, 0xdc, 0x1d, + 0xe5, 0x93, 0xb7, 0x5d, 0xc4, 0x3a, 0xba, 0x52, 0x4a, 0x49, 0x47, 0x5c, 0xdd, 0xed, 0x3d, 0x6b, + 0xc4, 0x4e, 0x00, 0x8c, 0xa9, 0xfc, 0xfb, 0xd6, 0xac, 0x98, 0x22, 0x08, 0xfc, 0xc2, 0x5d, 0xad, + 0x3d, 0xed, 0x2c, 0x0a, 0x68, 0x11, 0x60, 0x00, 0xa3, 0x88, 0x2b, 0x7a, 0xd7, 0x89, 0x95, 0xd0, + 0xef, 0x5d, 0x0f, 0xe1, 0x72, 0x9b, 0x9e, 0x00, 0x15, 0x98, 0x34, 0x41, 0x6d, 0xda, 0x7b, 0xa0, + 0x5b, 0x6f, 0x1e, 0x04, 0x00, 0xdc, 0x07, 0x20, 0x9e, 0xe8, 0x06, 0x6c, 0x17, 0xe6, 0xdf, 0xf7, + 0x68, 0x1f, 0x96, 0xd0, 0x47, 0xd1, 0x18, 0xd0, 0x00, 0x62, 0xd3, 0x83, 0x6a, 0xdb, 0xfb, 0x6e, + 0xde, 0x30, 0xcc, 0x99, 0x6b, 0x72, 0x81, 0x42, 0x11, 0x35, 0xd2, 0xa4, 0x86, 0x89, 0x19, 0x5d, + 0x13, 0x01, 0xd0, 0x46, 0x3c, 0x81, 0x88, 0x2d, 0xd1, 0x6f, 0x14, 0x47, 0x9b, 0x0b, 0x91, 0xf6, + 0x95, 0xed, 0x30, 0x73, 0xdb, 0x90, 0x7e, 0xa8, 0xaf, 0xa9, 0x5e, 0xdc, 0xc8, 0x1e, 0x69, 0xef, + 0x8c, 0xb4, 0x89, 0xed, 0x2b, 0x3b, 0x80, 0xe4, 0x69, 0x5d, 0xd3, 0xc7, 0x93, 0xae, 0xec, 0xed, + 0x0e, 0x47, 0xda, 0x3b, 0xda, 0x69, 0x15, 0x64, 0x89, 0x8e, 0x27, 0xd4, 0x8d, 0xd3, 0x2b, 0x7d, + 0xb9, 0x4b, 0x19, 0xa3, 0xbe, 0xd5, 0x9d, 0xe1, 0x30, 0x64, 0xdf, 0xbb, 0x22, 0xda, 0xda, 0xd9, + 0x83, 0x99, 0xb5, 0xa6, 0xcc, 0xbf, 0x64, 0xbc, 0x10, 0x82, 0x5c, 0x32, 0x04, 0x01, 0xf4, 0x91, + 0x08, 0xce, 0x9d, 0xde, 0x48, 0x5b, 0x4a, 0x4f, 0xdd, 0xb8, 0x9a, 0x73, 0x98, 0xd1, 0xc2, 0x71, + 0x69, 0x4f, 0x5f, 0x00, 0x52, 0x3a, 0x0b, 0xc8, 0x0d, 0xe8, 0x9a, 0x48, 0x74, 0x4d, 0x98, 0xd5, + 0xf6, 0xb4, 0x21, 0x0d, 0x27, 0xb6, 0x75, 0xf2, 0x35, 0x08, 0xb0, 0x8b, 0x48, 0x92, 0x95, 0x07, + 0x1a, 0x57, 0x47, 0x13, 0xe8, 0x78, 0x4d, 0x0f, 0xac, 0xfc, 0x84, 0x7c, 0xc5, 0x9a, 0x25, 0x4d, + 0xb0, 0xe4, 0xac, 0x5c, 0x0d, 0x50, 0xa8, 0x75, 0x19, 0x43, 0x7c, 0x09, 0xc8, 0x5e, 0xc3, 0x67, + 0xb8, 0xbc, 0x8a, 0x2b, 0x00, 0x23, 0xac, 0x86, 0x76, 0x00, 0x26, 0xeb, 0x49, 0x90, 0x4f, 0x3c, + 0xa4, 0x33, 0x0a, 0x8d, 0x83, 0x9e, 0x22, 0xac, 0xcd, 0xfd, 0x80, 0x08, 0x00, 0x24, 0x02, 0xd0, + 0xdb, 0xc6, 0xb1, 0x2f, 0xf7, 0x4d, 0x2c, 0x0b, 0x30, 0x50, 0xdc, 0x27, 0x25, 0x1b, 0x4c, 0x92, + 0x86, 0x06, 0x71, 0x34, 0x91, 0x8a, 0x85, 0xb9, 0x04, 0xfd, 0xb9, 0xb6, 0xb5, 0x0b, 0x9a, 0x04, + 0x3d, 0x1d, 0xed, 0x84, 0xaf, 0xf5, 0x9c, 0xa0, 0x53, 0x2b, 0x8e, 0xc0, 0xb2, 0xb2, 0xab, 0x53, + 0xea, 0x23, 0xbd, 0x40, 0xa8, 0x91, 0xa7, 0xa3, 0xb5, 0xa7, 0x0d, 0x68, 0x5f, 0x42, 0xb5, 0x00, + 0x13, 0xd8, 0xf1, 0x51, 0xf0, 0x03, 0x84, 0xbd, 0x32, 0x89, 0x1c, 0x53, 0x09, 0x24, 0x5e, 0x11, + 0x2c, 0x52, 0xf3, 0xe9, 0x6b, 0x0f, 0x21, 0x52, 0x4f, 0xc4, 0xe6, 0x14, 0x94, 0xd4, 0xd5, 0xd6, + 0x06, 0x9d, 0xde, 0x33, 0x69, 0x78, 0xd2, 0xc8, 0x2a, 0x8d, 0x9e, 0x53, 0x69, 0x2b, 0xea, 0x00, + 0x04, 0x90, 0x08, 0xa1, 0xb4, 0xb4, 0x7e, 0x69, 0x4b, 0xc1, 0xd4, 0x93, 0x49, 0xb1, 0xf4, 0x12, + 0x6e, 0xa0, 0xcb, 0xd2, 0x83, 0x27, 0xa9, 0x7b, 0x9a, 0x14, 0x0a, 0x7d, 0x8b, 0x43, 0x94, 0xee, + 0x99, 0x46, 0xd7, 0xf1, 0xa0, 0x95, 0xad, 0x09, 0xe0, 0x57, 0x7b, 0x5a, 0x9b, 0x00, 0x40, 0x20, + 0x90, 0x4a, 0x25, 0x2d, 0xf1, 0x24, 0x32, 0x30, 0x3d, 0xe7, 0xc9, 0x34, 0xe1, 0x0d, 0x95, 0x49, + 0x23, 0x10, 0x79, 0x68, 0x82, 0x4a, 0x84, 0xc9, 0x49, 0x8d, 0x88, 0xe2, 0x7a, 0xd6, 0xbe, 0x7a, + 0x52, 0xe2, 0x1b, 0x88, 0xc9, 0xe4, 0xc0, 0x11, 0x55, 0x09, 0x9d, 0xcc, 0xd7, 0xe9, 0xa4, 0x4f, + 0xb8, 0xf7, 0x11, 0xc0, 0xc5, 0x80, 0xe9, 0xbb, 0xa8, 0xcf, 0x09, 0x80, 0x93, 0x98, 0x3a, 0x8d, + 0x16, 0x4d, 0x2f, 0x0b, 0x08, 0xd3, 0x24, 0xf9, 0xc6, 0x83, 0x10, 0x59, 0x53, 0x25, 0xd7, 0x40, + 0xf7, 0xb8, 0x12, 0x43, 0xd9, 0xd1, 0xda, 0x47, 0xde, 0x1c, 0x92, 0x13, 0x14, 0x0c, 0xa1, 0x36, + 0x95, 0x82, 0xc0, 0x04, 0x69, 0x83, 0x59, 0x32, 0x29, 0xeb, 0xc4, 0x4c, 0x4f, 0xa3, 0x78, 0xd5, + 0xe6, 0x01, 0xd9, 0x0b, 0x5d, 0xde, 0xa6, 0x21, 0x3f, 0x80, 0xe9, 0xd6, 0xc9, 0x20, 0x98, 0x24, + 0x8d, 0x13, 0xe8, 0x01, 0xe1, 0xa5, 0x8f, 0x66, 0x47, 0x82, 0x58, 0xd6, 0xf0, 0x28, 0x22, 0x8b, + 0x04, 0xae, 0xbc, 0xe7, 0x16, 0xe2, 0x94, 0x4d, 0x11, 0x07, 0x28, 0x5a, 0x2d, 0x38, 0x3d, 0x30, + 0x85, 0x10, 0x85, 0xd9, 0x4b, 0xb3, 0x1a, 0x59, 0x4d, 0x24, 0xcc, 0x71, 0x55, 0x4a, 0xd4, 0x39, + 0x49, 0xc3, 0xdf, 0x08, 0xec, 0x44, 0xd0, 0x4f, 0x86, 0xab, 0x74, 0x1d, 0x66, 0x93, 0x01, 0x3a, + 0xd2, 0x7b, 0xb3, 0x20, 0x20, 0xff, 0x6f, 0x12, 0xe2, 0x45, 0x9e, 0x40, 0x5d, 0x9f, 0x78, 0x88, + 0xa6, 0xe1, 0x0a, 0x1e, 0x69, 0x86, 0xd8, 0x64, 0x89, 0x05, 0xb6, 0xe2, 0xdd, 0x54, 0xb1, 0x97, + 0xe9, 0x51, 0x7b, 0x12, 0xde, 0x34, 0x97, 0xf5, 0x96, 0x1f, 0x34, 0xc5, 0x50, 0x2b, 0x6f, 0xee, + 0xe7, 0x82, 0x57, 0x45, 0x63, 0x20, 0xe6, 0xc9, 0xf7, 0xaf, 0xb1, 0x49, 0x4c, 0x4f, 0x3a, 0x96, + 0x7a, 0x51, 0xf3, 0x68, 0xe3, 0xb0, 0x68, 0x09, 0xe9, 0xbf, 0x3f, 0x1a, 0xfc, 0x84, 0xf4, 0x9b, + 0x9b, 0xa5, 0x0e, 0xa6, 0x67, 0x46, 0xa9, 0x8a, 0xe9, 0xe5, 0x7d, 0xde, 0xf7, 0x4a, 0x45, 0xd4, + 0x32, 0x8a, 0x16, 0xf2, 0x6c, 0x3a, 0xdd, 0xc0, 0xdf, 0xb3, 0x18, 0x0b, 0x92, 0x86, 0xfe, 0xd1, + 0x32, 0xb9, 0xcb, 0xe7, 0xe9, 0x6a, 0xa4, 0xef, 0x6f, 0x63, 0x18, 0x63, 0x7f, 0xaf, 0x48, 0x82, + 0xc4, 0x6a, 0xc7, 0x95, 0xe7, 0x48, 0xef, 0xd4, 0xd8, 0x0f, 0xd6, 0xdb, 0x74, 0x9e, 0x2a, 0x6f, + 0xd5, 0x5a, 0x56, 0x97, 0xf5, 0xe6, 0x80, 0x94, 0xd5, 0x84, 0x67, 0x1d, 0xb7, 0xf0, 0x14, 0x1e, + 0x8f, 0xd7, 0x73, 0xde, 0x17, 0xf9, 0xfb, 0x43, 0x83, 0x92, 0xc0, 0xfd, 0xe9, 0x5c, 0xa8, 0x9d, + 0x97, 0xc2, 0x18, 0xa6, 0xfb, 0xb0, 0x1e, 0xcf, 0x54, 0xfe, 0xe0, 0xac, 0x54, 0x9a, 0xcf, 0x24, + 0x92, 0x96, 0x2b, 0x75, 0x78, 0xce, 0xa5, 0xe1, 0x57, 0x7a, 0x33, 0xe9, 0xa1, 0x9d, 0xf0, 0xbe, + 0x27, 0x2e, 0x70, 0xfa, 0xc5, 0x12, 0x9d, 0x8e, 0x34, 0x19, 0x33, 0x61, 0xa3, 0x47, 0x62, 0xf9, + 0xa4, 0xa5, 0x58, 0x08, 0x0c, 0x4a, 0x1e, 0x21, 0xdf, 0xc8, 0x98, 0x25, 0x94, 0xab, 0x69, 0xc4, + 0x7a, 0xf3, 0x41, 0xb1, 0xca, 0xdb, 0x81, 0xf7, 0x86, 0x03, 0x03, 0xbe, 0x58, 0x97, 0x39, 0xe1, + 0xdf, 0x2d, 0x9b, 0x12, 0xdf, 0x50, 0x23, 0xff, 0x81, 0xf8, 0x01, 0xc9, 0x2d, 0xd8, 0xe9, 0xb6, + 0x62, 0xaf, 0x90, 0x6f, 0x99, 0x60, 0x82, 0xe4, 0x15, 0xf2, 0x13, 0x71, 0x76, 0x48, 0xa8, 0xc7, + 0x65, 0xbb, 0xe8, 0xb6, 0x1c, 0x64, 0x82, 0xc7, 0xc9, 0x84, 0xe6, 0x18, 0xc6, 0x17, 0xbb, 0x74, + 0x06, 0x8b, 0x93, 0x6b, 0x75, 0x32, 0x33, 0x26, 0x84, 0xcc, 0x8b, 0xa0, 0x05, 0x6f, 0xd6, 0xc0, + 0xf7, 0x6d, 0x41, 0x4b, 0x61, 0x07, 0x33, 0xd1, 0x2e, 0xb9, 0x81, 0xfb, 0xa2, 0x66, 0xcd, 0x9f, + 0x1d, 0xc5, 0x36, 0xbe, 0xf9, 0x7f, 0xab, 0x3f, 0xd4, 0x19, 0xec, 0x9e, 0x85, 0x97, 0x84, 0x7c, + 0x17, 0xea, 0xc6, 0xf8, 0xc4, 0xbb, 0x8e, 0xcd, 0x92, 0x6e, 0x13, 0x25, 0x41, 0xa4, 0xde, 0x39, + 0x10, 0x2f, 0x2c, 0x74, 0xcf, 0xc4, 0xb2, 0x8a, 0x99, 0x50, 0xf5, 0x11, 0xcb, 0x82, 0xda, 0xd8, + 0x29, 0xe5, 0x31, 0x48, 0xa9, 0xa3, 0x94, 0x76, 0x9e, 0x12, 0xd2, 0xd8, 0x31, 0x8d, 0xe4, 0xd2, + 0xe9, 0x20, 0xdd, 0x02, 0xd1, 0x8d, 0xa3, 0x0e, 0xb5, 0x73, 0x95, 0xdd, 0xb6, 0x85, 0x59, 0x04, + 0x03, 0x63, 0xcd, 0xc7, 0xd9, 0x71, 0xf6, 0x79, 0x37, 0x23, 0xfd, 0x5e, 0x6f, 0xfe, 0x26, 0xcc, + 0x28, 0xe5, 0x99, 0x42, 0xd4, 0xdd, 0x80, 0x1a, 0x41, 0x2b, 0x44, 0x48, 0xab, 0x8b, 0xe1, 0x5e, + 0xb0, 0xb9, 0x9b, 0x39, 0x98, 0x75, 0x65, 0x6e, 0xd5, 0x25, 0xe8, 0xd7, 0x8a, 0xb2, 0x7e, 0xe1, + 0xaa, 0x6b, 0xb1, 0xff, 0x95, 0x89, 0x23, 0xb2, 0x99, 0xfb, 0xa0, 0x4b, 0x79, 0xd1, 0xb6, 0x18, + 0x73, 0x88, 0xaf, 0x88, 0x2a, 0x73, 0x3d, 0x3a, 0xba, 0x77, 0xdd, 0xaf, 0x5f, 0x72, 0x49, 0x50, + 0xf7, 0x15, 0x94, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, + 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, + 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, + 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, + 0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, + 0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, + 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, + 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, + 0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, + 0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, + 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, + 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, + 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, + 0xf3, 0x64, 0x9e, 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xc9, 0x3c, 0x99, 0x27, 0xf3, 0x64, 0x9e, + 0xcc, 0x93, 0x79, 0x32, 0x4f, 0xe6, 0xf9, 0xff, 0xb0, 0x67, 0xf5, 0xc1, 0x6d, 0x55, 0xd9, 0xfd, + 0xbc, 0x67, 0x59, 0x7e, 0x11, 0x8a, 0x51, 0x82, 0xcb, 0x98, 0xe0, 0x26, 0xd7, 0x42, 0x15, 0x42, + 0x92, 0x25, 0xd9, 0xc9, 0x7a, 0x4d, 0xd6, 0x9b, 0x95, 0x64, 0x5b, 0x91, 0x1d, 0xe7, 0x45, 0xeb, + 0x84, 0xad, 0x77, 0xf8, 0x7a, 0xb2, 0xfd, 0x24, 0x3b, 0xd1, 0x57, 0x64, 0x39, 0x38, 0xc1, 0x03, + 0xb2, 0x13, 0x52, 0x37, 0x64, 0x6b, 0x27, 0x71, 0x20, 0xbb, 0xcd, 0x0e, 0x0c, 0x43, 0x4b, 0xc8, + 0x00, 0xcd, 0x06, 0xca, 0xb2, 0x99, 0xcc, 0x22, 0x42, 0x66, 0x87, 0x05, 0x96, 0x86, 0x0c, 0xed, + 0xd0, 0x96, 0xa9, 0x0d, 0xb3, 0xdb, 0xa4, 0x0c, 0x1f, 0x86, 0xa6, 0xd4, 0x9b, 0x75, 0xfc, 0x7a, + 0xee, 0x7d, 0x92, 0x31, 0x5b, 0x76, 0xff, 0x68, 0xff, 0xbd, 0x3f, 0xcf, 0xbb, 0x1f, 0xe7, 0x9e, + 0x7b, 0xee, 0xb9, 0xf7, 0x9e, 0x7b, 0xee, 0xb9, 0x32, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0xc7, 0xff, 0x01, 0x60, 0xef, 0xd0, 0x40, 0x02, 0x80, 0x6a, 0xb8, 0x09, 0x56, 0xc1, 0xcd, + 0x50, 0x03, 0x7f, 0x0a, 0xab, 0x35, 0x6d, 0xc5, 0x0a, 0xf9, 0xb7, 0x30, 0x87, 0x7f, 0x80, 0x3c, + 0x1e, 0x30, 0xd1, 0x8f, 0xf2, 0x07, 0xba, 0xb6, 0x6c, 0x25, 0x5d, 0x5b, 0x36, 0x93, 0x2d, 0x19, + 0x35, 0x1b, 0xcd, 0x0d, 0xa4, 0xe2, 0x64, 0xeb, 0xee, 0xc1, 0x9c, 0x9a, 0x24, 0xd1, 0x54, 0x1f, + 0xe9, 0x1c, 0xe8, 0xc9, 0x46, 0xb3, 0x03, 0xea, 0x20, 0xb4, 0xa4, 0x33, 0xbb, 0xb3, 0x03, 0xf1, + 0xfe, 0x1c, 0x79, 0x9a, 0x34, 0xf8, 0xea, 0xeb, 0x09, 0x6c, 0xeb, 0x57, 0x09, 0xeb, 0xdd, 0xaa, + 0xee, 0x52, 0x13, 0xe9, 0x4c, 0x52, 0x4d, 0xe5, 0xc8, 0x36, 0x35, 0x9a, 0x74, 0x13, 0x08, 0x24, + 0x12, 0xa4, 0x8b, 0x72, 0x0f, 0x92, 0x2e, 0x75, 0x50, 0xcd, 0xee, 0x52, 0xfb, 0x3c, 0xe0, 0x6b, + 0xf0, 0xf8, 0xbe, 0xe1, 0xc1, 0xce, 0x0d, 0xf0, 0xff, 0x87, 0x9c, 0x91, 0x77, 0xb6, 0x45, 0xb3, + 0x89, 0xdd, 0xa4, 0x6d, 0xb8, 0x57, 0xcd, 0xe4, 0x06, 0xd2, 0xa9, 0x5a, 0x53, 0xa4, 0x05, 0xbe, + 0xa7, 0xf6, 0xe6, 0xd2, 0x59, 0x08, 0xf4, 0xf5, 0x65, 0xd5, 0xc1, 0x41, 0x00, 0x05, 0xc0, 0x88, + 0x5f, 0x57, 0x80, 0xce, 0x1e, 0x48, 0x33, 0x88, 0x00, 0x59, 0xb8, 0x78, 0xac, 0x4f, 0xec, 0x1a, + 0xdd, 0x9a, 0x8f, 0x7d, 0x81, 0xf4, 0x59, 0x00, 0x9f, 0xc5, 0xec, 0x5f, 0xb1, 0x22, 0xb6, 0xaa, + 0xe5, 0x2a, 0xf2, 0x2c, 0x0b, 0xfa, 0x7f, 0x52, 0x88, 0x57, 0x6e, 0xf9, 0x2d, 0x18, 0x00, 0x36, + 0x5d, 0x05, 0xa3, 0x7c, 0x19, 0xc4, 0x0c, 0xdc, 0x50, 0x80, 0x97, 0x67, 0x84, 0x4c, 0x19, 0xcd, + 0x3f, 0x10, 0xb0, 0xdf, 0xf4, 0x2c, 0xf8, 0x9a, 0x1f, 0xd4, 0xea, 0xfd, 0xf0, 0x23, 0xfc, 0x8e, + 0xe3, 0xf7, 0x48, 0xfd, 0x88, 0x90, 0x83, 0x86, 0xfa, 0x11, 0x11, 0x04, 0xa8, 0x1f, 0x01, 0x10, + 0x2c, 0x48, 0x59, 0x21, 0xe4, 0x51, 0x16, 0x58, 0x60, 0x13, 0xa6, 0x12, 0xfc, 0xf8, 0x2d, 0xf9, + 0x67, 0x30, 0xd7, 0x33, 0x32, 0x02, 0x1d, 0x10, 0x37, 0x8d, 0x08, 0x37, 0xcc, 0x23, 0xf3, 0xbf, + 0xe4, 0x21, 0x1c, 0x72, 0x6c, 0xde, 0xf4, 0x31, 0x58, 0x48, 0x27, 0x6d, 0x2f, 0x7b, 0xb7, 0xd9, + 0x0d, 0xa2, 0x64, 0x04, 0x31, 0xb6, 0x1a, 0x53, 0x21, 0xbe, 0x9a, 0x8c, 0xd0, 0x6d, 0xb5, 0xb2, + 0x14, 0xe7, 0x61, 0x01, 0x88, 0x02, 0x1c, 0xd8, 0x61, 0x84, 0x84, 0x1f, 0x40, 0x24, 0x23, 0x50, + 0xa0, 0xad, 0xf0, 0x2e, 0x8e, 0x61, 0x04, 0x4b, 0xcc, 0x88, 0xe5, 0xf7, 0x18, 0xa7, 0x81, 0x71, + 0x2a, 0x87, 0x5e, 0x43, 0x0a, 0x59, 0x42, 0x91, 0xe3, 0x00, 0xab, 0x82, 0x3f, 0x0e, 0x1e, 0xd5, + 0xf5, 0xf2, 0x2e, 0xa7, 0xa3, 0x7b, 0x97, 0xd3, 0xd1, 0x2b, 0x2b, 0xd7, 0xce, 0xe3, 0xba, 0x4c, + 0x7f, 0x96, 0x97, 0x77, 0x2a, 0xf3, 0xe1, 0x4b, 0xcd, 0xeb, 0xbe, 0x73, 0x3b, 0xce, 0xb7, 0xe6, + 0xbb, 0x13, 0xce, 0x2d, 0xd1, 0xaa, 0xc8, 0x44, 0xc3, 0x1a, 0x08, 0xe4, 0x61, 0xed, 0x2b, 0x48, + 0xfb, 0x51, 0xe7, 0xb4, 0xbb, 0x59, 0x1e, 0x72, 0x82, 0x73, 0x9c, 0x2c, 0x9b, 0x1c, 0xb7, 0x4a, + 0xe2, 0xa8, 0x86, 0x1a, 0xc6, 0xb7, 0x59, 0x03, 0xb6, 0x26, 0x00, 0x7b, 0x93, 0x00, 0xd6, 0xe6, + 0x85, 0xd7, 0x67, 0x97, 0xd7, 0xbe, 0x82, 0x43, 0xee, 0x0c, 0x05, 0x6a, 0x5f, 0x11, 0x20, 0x14, + 0x90, 0x77, 0x9e, 0x3e, 0x14, 0x73, 0x58, 0x9b, 0x5f, 0x5f, 0xb8, 0xf0, 0x75, 0x2d, 0x95, 0xb5, + 0xe7, 0x00, 0x6a, 0x5f, 0x15, 0x20, 0xab, 0xe1, 0xee, 0xbd, 0x5e, 0xaa, 0x05, 0x47, 0x4f, 0xe7, + 0x13, 0x00, 0xa7, 0x6d, 0x92, 0x38, 0x46, 0x47, 0x89, 0x59, 0xd7, 0xce, 0x3f, 0xa8, 0x51, 0x2d, + 0xe4, 0x9d, 0x1d, 0x99, 0xea, 0x9a, 0xd8, 0xca, 0xb5, 0xf3, 0xb8, 0x0c, 0x5f, 0xd6, 0x01, 0xf6, + 0xdb, 0xc2, 0xff, 0xf8, 0xca, 0xdf, 0xcf, 0xc3, 0x9c, 0xa8, 0xa8, 0x12, 0xcd, 0xcb, 0x0e, 0xa8, + 0xdb, 0xed, 0xbe, 0x6a, 0xb0, 0x45, 0xc8, 0x59, 0xaa, 0x97, 0xbc, 0xd3, 0xa6, 0x6b, 0x31, 0x56, + 0x8d, 0x5a, 0x74, 0x8c, 0xc6, 0xa5, 0x17, 0x26, 0x63, 0x06, 0x72, 0x40, 0xe9, 0x08, 0x8d, 0xd9, + 0x33, 0xd5, 0x06, 0xa4, 0x1b, 0x42, 0x63, 0xf2, 0x4e, 0x07, 0xf6, 0xa9, 0x7d, 0xb8, 0xda, 0xf0, + 0xc2, 0xbe, 0x98, 0xaf, 0x75, 0x4c, 0xe7, 0xfe, 0x83, 0x1c, 0x95, 0xa1, 0xb1, 0xda, 0xbd, 0xd5, + 0x40, 0x0e, 0x5c, 0x7c, 0x48, 0x01, 0xad, 0x13, 0xa5, 0x1a, 0xba, 0x7f, 0xe0, 0x7c, 0x85, 0x08, + 0xf2, 0x10, 0x8c, 0x54, 0x40, 0xf8, 0xd2, 0xcc, 0x4c, 0x1b, 0x5a, 0xe4, 0xcd, 0x3d, 0x5e, 0x2f, + 0xac, 0x0a, 0xdf, 0x2f, 0x64, 0x34, 0xed, 0x5a, 0xa3, 0x7c, 0x38, 0x32, 0x91, 0x01, 0x9f, 0x17, + 0x56, 0x7b, 0x61, 0x29, 0x0d, 0x79, 0x48, 0xb1, 0x5e, 0x47, 0xeb, 0x9d, 0xd3, 0x15, 0x15, 0xf4, + 0x34, 0xdf, 0x54, 0x0d, 0x60, 0x0b, 0x07, 0x4f, 0x82, 0x01, 0xed, 0xf6, 0xdd, 0xda, 0x5f, 0x82, + 0x05, 0xf3, 0x46, 0xcc, 0xdd, 0xb8, 0xbb, 0xeb, 0xd6, 0xd1, 0x3d, 0x36, 0x87, 0x83, 0xeb, 0x20, + 0x1c, 0xb4, 0x8d, 0xc9, 0x43, 0xd6, 0x2d, 0x5b, 0x3e, 0xd5, 0xce, 0x93, 0x2d, 0xc1, 0xc8, 0xe7, + 0x79, 0x80, 0xff, 0xb4, 0xf8, 0x9a, 0xf3, 0x60, 0x71, 0x80, 0xe0, 0x69, 0x97, 0x87, 0x3c, 0xed, + 0x19, 0xa0, 0x1c, 0x98, 0xee, 0xa9, 0x16, 0x7c, 0xcd, 0x20, 0xc8, 0x7b, 0xd0, 0xa6, 0x9a, 0x01, + 0xf2, 0x20, 0xdf, 0x0f, 0x22, 0xad, 0x75, 0xf8, 0x77, 0x38, 0x29, 0x45, 0x10, 0x4a, 0x94, 0x2c, + 0xb6, 0x59, 0x44, 0xb4, 0x47, 0x29, 0x26, 0x61, 0x9f, 0x32, 0x7a, 0xce, 0x30, 0xaf, 0xc0, 0xbc, + 0x23, 0xc3, 0xfa, 0x5d, 0xe9, 0xc6, 0xb4, 0x9c, 0xf6, 0x9a, 0xf1, 0x63, 0xc9, 0x88, 0x25, 0x6d, + 0x86, 0xb6, 0x54, 0xe0, 0x67, 0x40, 0xde, 0xeb, 0x71, 0x3c, 0x29, 0x03, 0xe6, 0x80, 0x11, 0xfa, + 0x0c, 0x52, 0x01, 0xca, 0xe5, 0xfb, 0x25, 0x49, 0xde, 0x23, 0x49, 0x7f, 0xe6, 0x67, 0xed, 0x13, + 0x54, 0x3b, 0x92, 0x82, 0xc6, 0xcc, 0x55, 0xc9, 0x83, 0x63, 0xdf, 0x86, 0x36, 0x6b, 0xb8, 0x23, + 0xdf, 0x32, 0x2b, 0x41, 0xfd, 0x63, 0x12, 0x6c, 0xcb, 0xc7, 0x40, 0x9b, 0x43, 0x9e, 0xc1, 0xad, + 0x5b, 0x09, 0x49, 0xa4, 0xef, 0x53, 0xb3, 0x40, 0x4b, 0x43, 0x99, 0x0c, 0x2d, 0xe5, 0xb2, 0xd1, + 0x54, 0x5c, 0xf5, 0x90, 0x96, 0x68, 0xea, 0xd6, 0x1c, 0x89, 0x26, 0x12, 0xe9, 0xde, 0x68, 0x4e, + 0x25, 0x51, 0x92, 0x52, 0xef, 0x23, 0x83, 0xba, 0x9b, 0x1b, 0xcc, 0x45, 0x7b, 0x77, 0x98, 0x80, + 0xba, 0xc0, 0x4e, 0xda, 0x8c, 0x8e, 0x04, 0x08, 0x21, 0xdf, 0x53, 0xb3, 0x83, 0x7a, 0xb1, 0x4b, + 0xdd, 0x35, 0x50, 0x2a, 0x22, 0xd3, 0xb6, 0xdd, 0x19, 0x75, 0x3d, 0x41, 0x07, 0x4a, 0x16, 0x5d, + 0x22, 0x56, 0x59, 0xd3, 0xe6, 0x74, 0x9f, 0x9a, 0xc0, 0x8a, 0x93, 0x40, 0x73, 0x2a, 0x4d, 0x52, + 0xd1, 0xa4, 0xba, 0x01, 0x48, 0x2d, 0x98, 0xb6, 0xe6, 0xa2, 0xd9, 0x1c, 0x21, 0xd0, 0x86, 0x2e, + 0x15, 0x01, 0x5b, 0x07, 0xf6, 0xa8, 0x34, 0x4f, 0x46, 0xe3, 0x03, 0xbd, 0x24, 0x16, 0x1d, 0xcc, + 0x91, 0xa4, 0x9a, 0x4c, 0x67, 0x77, 0x43, 0x6f, 0xff, 0x40, 0xa6, 0x54, 0x2e, 0x66, 0x99, 0x6c, + 0x3a, 0x87, 0x4e, 0x6d, 0xd3, 0x40, 0xef, 0x0e, 0x88, 0xe8, 0x65, 0x9c, 0x23, 0x84, 0x06, 0xb2, + 0x83, 0x54, 0x66, 0x70, 0x77, 0x4e, 0x1d, 0xc4, 0x9c, 0xb6, 0x6f, 0xa6, 0x6e, 0x5b, 0x9f, 0x25, + 0x2a, 0x4c, 0x32, 0xfd, 0xd1, 0x41, 0x95, 0x34, 0x78, 0x1b, 0x4c, 0xcc, 0x1f, 0x42, 0xa7, 0x9a, + 0x82, 0xba, 0x0d, 0x24, 0x50, 0x5c, 0x87, 0x3e, 0x13, 0xdc, 0xd9, 0x92, 0x4e, 0xf4, 0xb5, 0x44, + 0x33, 0xb9, 0xa1, 0xac, 0x7a, 0x37, 0x69, 0x8f, 0xa7, 0xd2, 0x59, 0x7a, 0x03, 0x04, 0xb6, 0x6c, + 0xad, 0xdb, 0xc0, 0x7c, 0x3b, 0xae, 0x60, 0x32, 0x93, 0x4e, 0x0c, 0xa4, 0x54, 0x13, 0xe0, 0x82, + 0xf5, 0xa9, 0x3d, 0x43, 0xf1, 0x6f, 0xb7, 0xa7, 0x06, 0x72, 0x2d, 0x38, 0x57, 0xb8, 0x13, 0x7d, + 0xac, 0x9a, 0xbb, 0xdb, 0x04, 0x2d, 0x91, 0x3b, 0x70, 0xde, 0x8d, 0x4d, 0xbe, 0x46, 0x1f, 0x4d, + 0xd7, 0xb1, 0x74, 0x2d, 0x4b, 0x1b, 0x68, 0xda, 0xd6, 0xa2, 0xe7, 0xbe, 0x7a, 0x96, 0xfa, 0x7c, + 0x40, 0x42, 0xac, 0x4b, 0x1d, 0x56, 0x9b, 0x9a, 0x1a, 0x58, 0x5a, 0x0f, 0x91, 0x96, 0x2e, 0xb8, + 0x13, 0xaf, 0x9f, 0x20, 0xea, 0x7d, 0x37, 0xb9, 0x2f, 0x3a, 0x48, 0xa2, 0xb9, 0x25, 0x84, 0x58, + 0x74, 0x87, 0xda, 0x43, 0xa7, 0xf4, 0x15, 0xea, 0x40, 0x6a, 0x57, 0x34, 0x31, 0xd0, 0xf7, 0x55, + 0xe2, 0x0e, 0x35, 0x9b, 0x52, 0x13, 0xa4, 0x37, 0x9d, 0x4c, 0xe2, 0x3d, 0x46, 0xf5, 0x27, 0xb7, + 0xc2, 0xad, 0xb8, 0xcd, 0x81, 0xcd, 0x45, 0x33, 0xa1, 0x25, 0xdd, 0x4c, 0x3a, 0x71, 0xfd, 0x03, + 0x09, 0x15, 0x77, 0x88, 0xa5, 0x4b, 0xea, 0x64, 0x5b, 0x74, 0x70, 0x07, 0xe8, 0xd6, 0xd3, 0x9b, + 0x55, 0xa9, 0xed, 0x0c, 0xe0, 0xdc, 0x07, 0xa2, 0x89, 0xe2, 0x1e, 0x91, 0x7e, 0x35, 0xda, 0xa7, + 0x66, 0x6b, 0x4d, 0x8b, 0x43, 0xa3, 0x1a, 0x77, 0xb3, 0xbd, 0x18, 0x64, 0x7b, 0x8e, 0x66, 0xc1, + 0x46, 0xa2, 0xeb, 0x8f, 0xd3, 0xa5, 0x45, 0xba, 0xf9, 0x58, 0xbc, 0x93, 0x31, 0xe0, 0xa2, 0x17, + 0x17, 0xd3, 0xd1, 0xb5, 0x2d, 0x74, 0xef, 0xd6, 0x76, 0x79, 0x63, 0x67, 0xdb, 0xb6, 0xc0, 0xd6, + 0x4d, 0x6e, 0xe2, 0xbb, 0xcd, 0xf4, 0x87, 0x37, 0xb5, 0x9e, 0x6e, 0x6a, 0xb1, 0x35, 0x92, 0xcb, + 0xd2, 0x6d, 0x1d, 0x4a, 0x45, 0x77, 0x45, 0x07, 0x12, 0xd1, 0x9e, 0x84, 0xfa, 0x65, 0xc7, 0x18, + 0x52, 0x54, 0x5c, 0x9b, 0xd4, 0x12, 0x11, 0x1e, 0x13, 0xbb, 0x9f, 0x4b, 0x2c, 0x29, 0x1c, 0x7c, + 0x70, 0xf1, 0x70, 0xf4, 0x91, 0xc1, 0xa1, 0xde, 0x5e, 0x75, 0x30, 0x36, 0x94, 0x48, 0xec, 0x46, + 0xce, 0x3b, 0x8b, 0x6c, 0x77, 0x93, 0x96, 0x7e, 0x15, 0x67, 0x35, 0x94, 0x24, 0xc9, 0x81, 0xc1, + 0x64, 0x34, 0xd7, 0xdb, 0xaf, 0x4f, 0xba, 0x87, 0xad, 0x77, 0x2a, 0x7d, 0x1f, 0xdd, 0x80, 0xaf, + 0x3f, 0x68, 0xf4, 0x84, 0x91, 0x58, 0x3a, 0x8b, 0x57, 0xb5, 0xda, 0xeb, 0xf1, 0x78, 0x48, 0xe9, + 0x60, 0x9a, 0x00, 0x3d, 0x61, 0xa1, 0x40, 0x6f, 0x9c, 0xa3, 0xe3, 0x9d, 0xd3, 0x65, 0x65, 0xf2, + 0x90, 0x3c, 0x54, 0xa2, 0x1c, 0xa9, 0xfe, 0x7d, 0xca, 0xf1, 0xf7, 0xfe, 0x17, 0xcf, 0x7c, 0x89, + 0x42, 0x6b, 0x4f, 0x34, 0x87, 0xf3, 0xe1, 0x42, 0xa9, 0x76, 0xdf, 0x5c, 0xa9, 0x16, 0xbe, 0x44, + 0x1a, 0x48, 0x1a, 0xaa, 0x4e, 0xcd, 0xe3, 0xbd, 0x64, 0xb6, 0x39, 0x40, 0x8a, 0x1b, 0x6d, 0xfd, + 0x60, 0x56, 0xba, 0xa8, 0x67, 0x22, 0x90, 0x2d, 0x0f, 0x07, 0xdc, 0xbb, 0xf1, 0x3a, 0x31, 0xc8, + 0xcf, 0x69, 0xeb, 0x6d, 0xb0, 0x6e, 0x84, 0x40, 0xbc, 0x51, 0x44, 0x2f, 0x79, 0xbd, 0x16, 0xf7, + 0x58, 0x83, 0xc4, 0xb4, 0xd8, 0xea, 0xa1, 0x3d, 0xbc, 0xda, 0xef, 0xf7, 0x30, 0x8e, 0x51, 0x5e, + 0x31, 0x38, 0x0b, 0x5e, 0x31, 0xbc, 0x1b, 0xe6, 0x0c, 0x33, 0x1b, 0x99, 0x77, 0x97, 0x8f, 0x84, + 0xb3, 0x0e, 0x8d, 0x51, 0x3e, 0x94, 0x8f, 0x6c, 0xf9, 0x14, 0x2c, 0x1d, 0x63, 0xb1, 0x1a, 0x56, + 0xbf, 0x42, 0x75, 0x5c, 0xf5, 0x84, 0x17, 0xbd, 0x30, 0xb0, 0xb9, 0x54, 0x77, 0x47, 0x26, 0x14, + 0x37, 0x61, 0x52, 0x6b, 0x83, 0xb0, 0xfe, 0x9d, 0x03, 0x98, 0x36, 0xd2, 0x96, 0x01, 0xa2, 0x8f, + 0x85, 0x63, 0xcf, 0x19, 0xce, 0x7a, 0x97, 0x3b, 0xfd, 0x38, 0xea, 0x07, 0xce, 0x7b, 0x33, 0x42, + 0x16, 0x16, 0xb5, 0x78, 0x29, 0x03, 0x9d, 0xd3, 0x9d, 0x06, 0x3a, 0x5b, 0x68, 0x72, 0xa4, 0x71, + 0xa4, 0x04, 0xfa, 0x65, 0x80, 0xcf, 0xcd, 0x09, 0x8c, 0xf8, 0x4c, 0x58, 0xba, 0xec, 0x73, 0x83, + 0xe5, 0x54, 0x02, 0xcc, 0x58, 0x7e, 0x0f, 0xcb, 0x2b, 0xb1, 0x5c, 0x89, 0xe5, 0x0b, 0x8c, 0xa3, + 0x0a, 0x4b, 0xbf, 0x60, 0xa5, 0x1b, 0xb1, 0x74, 0xd6, 0x6b, 0xa6, 0x5a, 0x96, 0x13, 0x3a, 0xfe, + 0xcd, 0x3d, 0x78, 0x2b, 0xb9, 0xc1, 0x8c, 0xb7, 0x12, 0xa5, 0xd5, 0xd1, 0x9b, 0x6b, 0xd5, 0x79, + 0xf9, 0x30, 0xa3, 0x56, 0x16, 0xa9, 0x4d, 0xf2, 0xe1, 0xf6, 0x8f, 0xa0, 0x9a, 0x95, 0x5b, 0x18, + 0xc7, 0x13, 0xf2, 0x61, 0xaf, 0x59, 0x3e, 0x8c, 0xb3, 0xae, 0xf1, 0x9c, 0x45, 0x6a, 0x84, 0xd6, + 0x71, 0x5d, 0xb4, 0xdb, 0xcf, 0xcb, 0x47, 0xda, 0xaf, 0x48, 0x02, 0xa3, 0x76, 0xe9, 0x5c, 0xf8, + 0xe9, 0xb4, 0x83, 0x5f, 0x2d, 0x33, 0x79, 0x11, 0x9d, 0xb6, 0xb1, 0xd4, 0xe7, 0x5e, 0xac, 0x5f, + 0xc7, 0x24, 0x13, 0xef, 0x08, 0x6d, 0x07, 0x4b, 0xe7, 0x74, 0x0d, 0xc8, 0x6c, 0x54, 0x56, 0x1a, + 0x22, 0x5e, 0x30, 0xc4, 0xdd, 0x56, 0x10, 0x47, 0x71, 0x7d, 0x85, 0x98, 0xd5, 0x0a, 0xa1, 0x51, + 0xe2, 0x3f, 0x7d, 0x02, 0xec, 0xb1, 0x55, 0x5e, 0xa0, 0xb3, 0xea, 0x7f, 0xad, 0x7b, 0xc2, 0xec, + 0xd7, 0xb4, 0x3f, 0x2f, 0x84, 0xf3, 0xad, 0x7e, 0x79, 0x28, 0x58, 0xfc, 0xc2, 0x97, 0x9a, 0x9a, + 0x6c, 0x78, 0xe3, 0xda, 0xd3, 0x60, 0xb3, 0x7b, 0xc1, 0x61, 0xdb, 0x74, 0xf4, 0x9c, 0xd7, 0xe4, + 0x15, 0xf1, 0x16, 0xb6, 0xd1, 0x7e, 0x37, 0x65, 0x1d, 0xfa, 0x8c, 0x13, 0xed, 0xfa, 0x2c, 0xa7, + 0xd8, 0xbe, 0xee, 0x8d, 0x1b, 0xbc, 0x65, 0x8a, 0x91, 0xb5, 0xa4, 0xe5, 0xa9, 0xee, 0x89, 0x0e, + 0x8c, 0x02, 0x58, 0x6d, 0xb7, 0xbe, 0xd3, 0xdd, 0x13, 0xba, 0x6d, 0x94, 0x8f, 0xb4, 0xeb, 0xb6, + 0x31, 0x15, 0xde, 0xa1, 0x31, 0xdb, 0x28, 0x7f, 0x48, 0x9e, 0xf2, 0x9a, 0x58, 0xe9, 0x07, 0x4c, + 0x5a, 0x35, 0x31, 0xe0, 0x2c, 0x6a, 0xe4, 0xa1, 0xef, 0x4f, 0x84, 0x2f, 0x7d, 0x67, 0x83, 0x2d, + 0x0d, 0xeb, 0x70, 0x3e, 0x4d, 0xa8, 0x51, 0xb3, 0x33, 0x0d, 0xfe, 0x06, 0x2f, 0x84, 0xcc, 0x79, + 0x1a, 0xc9, 0xf7, 0x82, 0xb0, 0xad, 0x23, 0x10, 0x77, 0xd8, 0x4c, 0x7a, 0x3c, 0x64, 0x45, 0xeb, + 0x14, 0xcb, 0x3b, 0xc6, 0xe2, 0x86, 0x86, 0x66, 0x28, 0xf7, 0x0a, 0x5e, 0x40, 0xb9, 0xc3, 0xda, + 0x1c, 0x93, 0x7d, 0x54, 0x09, 0x62, 0xfc, 0xf3, 0xb2, 0xa6, 0xf5, 0x54, 0x85, 0x87, 0x2b, 0xca, + 0x8a, 0x6d, 0x5f, 0xb0, 0xb6, 0xa7, 0x14, 0xfb, 0x52, 0x19, 0x15, 0x45, 0x19, 0xe5, 0x5f, 0xca, + 0xf8, 0x1d, 0xe3, 0x7b, 0x1e, 0xe7, 0xb2, 0xe0, 0x8d, 0xa0, 0x8e, 0x55, 0x4e, 0x93, 0xed, 0x4f, + 0xbc, 0xd7, 0x31, 0xea, 0x19, 0xdd, 0x4a, 0x22, 0x13, 0x2f, 0xd0, 0x13, 0x96, 0xdb, 0x05, 0x0f, + 0x08, 0x9b, 0xaf, 0x2e, 0xbc, 0xa4, 0xdc, 0x65, 0x4d, 0x60, 0x44, 0x99, 0x80, 0x2a, 0x70, 0x67, + 0xd6, 0x9c, 0xda, 0x9b, 0x5c, 0xef, 0xae, 0xb8, 0xf4, 0x9c, 0xd5, 0x78, 0x6e, 0x2c, 0xee, 0x23, + 0xcb, 0xb2, 0x0b, 0x85, 0xd1, 0x53, 0x27, 0xa1, 0x4a, 0xb5, 0x59, 0xbd, 0xe0, 0xbe, 0x98, 0x3f, + 0x7d, 0x12, 0xaa, 0x7b, 0xaa, 0xbd, 0x2e, 0x30, 0xe9, 0x63, 0xca, 0x8f, 0xb0, 0x75, 0xcd, 0xc7, + 0x0d, 0xa1, 0xfd, 0xe7, 0xf7, 0x77, 0xed, 0xeb, 0xda, 0x1b, 0x39, 0x88, 0x16, 0xe7, 0x82, 0xca, + 0x53, 0xfb, 0x52, 0x7f, 0x6b, 0xdf, 0xfa, 0x22, 0x1d, 0xcb, 0xe8, 0xd8, 0x34, 0x0c, 0xca, 0x65, + 0xe7, 0x58, 0x71, 0xfd, 0x7e, 0xb1, 0x78, 0xee, 0x68, 0xed, 0x2d, 0x4c, 0x31, 0x50, 0xa6, 0xa9, + 0x44, 0x25, 0x9e, 0x59, 0xb0, 0x79, 0x9d, 0x60, 0x61, 0x6d, 0x6f, 0xb3, 0xf3, 0x48, 0xc8, 0x76, + 0xd4, 0xd0, 0x01, 0x06, 0x46, 0xfb, 0x67, 0xf9, 0x08, 0x9e, 0x41, 0x71, 0x0f, 0x90, 0xf2, 0xce, + 0xe9, 0x91, 0xf9, 0xee, 0x09, 0x66, 0x0d, 0x1b, 0xf4, 0x33, 0x69, 0xeb, 0x2f, 0x5b, 0xc5, 0xb8, + 0xde, 0xdf, 0xa4, 0xef, 0xfb, 0xd1, 0xee, 0x09, 0x7d, 0x27, 0x37, 0x63, 0x7a, 0xce, 0xa7, 0x74, + 0xd8, 0x5d, 0x18, 0x50, 0xb9, 0xa0, 0xca, 0x5b, 0xc6, 0xf8, 0x34, 0xdc, 0x55, 0x26, 0xd7, 0x68, + 0xc0, 0xd2, 0xed, 0x54, 0x86, 0x17, 0x6d, 0x84, 0xcd, 0xab, 0x06, 0xe7, 0xc5, 0x34, 0x36, 0x4a, + 0x54, 0x4e, 0xd7, 0x58, 0xe4, 0x61, 0x9c, 0x9b, 0x13, 0xe7, 0x36, 0x96, 0x7a, 0xc9, 0xd6, 0xc5, + 0xd6, 0xd1, 0x68, 0xef, 0xc8, 0xe1, 0xdc, 0x50, 0x93, 0x45, 0x4b, 0xb0, 0xea, 0x7e, 0x60, 0x00, + 0x9c, 0xde, 0x30, 0xb8, 0xe3, 0x3e, 0xf3, 0x89, 0x50, 0x60, 0x53, 0x1b, 0x18, 0x62, 0x6c, 0x4e, + 0xc6, 0x1b, 0x4b, 0x96, 0xa6, 0xdc, 0x18, 0x7c, 0x1a, 0xc3, 0x90, 0x34, 0xb8, 0x75, 0xff, 0xe0, + 0xc4, 0x53, 0x52, 0x69, 0x94, 0x2f, 0x94, 0x66, 0x25, 0xdf, 0xa1, 0xed, 0x43, 0x79, 0xeb, 0xed, + 0x49, 0x8c, 0x10, 0x87, 0x81, 0x04, 0x9f, 0x0a, 0x27, 0xb5, 0x67, 0xb0, 0xb7, 0xd6, 0x54, 0xe3, + 0x1a, 0xd9, 0x7b, 0x01, 0xcc, 0xda, 0x33, 0x2e, 0xec, 0x63, 0x6c, 0xd1, 0x4e, 0xb1, 0xfa, 0x2a, + 0xed, 0x05, 0xac, 0xe3, 0x2a, 0x6a, 0x2f, 0xb1, 0xfa, 0xcd, 0xda, 0x59, 0xea, 0x09, 0x2d, 0x60, + 0xc8, 0x53, 0xaa, 0xcb, 0xaf, 0x15, 0x82, 0xcf, 0x6a, 0xf3, 0xb6, 0x61, 0xf4, 0x45, 0x54, 0x07, + 0x1b, 0xce, 0xd1, 0xec, 0x1b, 0x01, 0x29, 0x23, 0x5a, 0x93, 0x20, 0x65, 0xd7, 0x9c, 0xce, 0xc7, + 0x8d, 0xe4, 0x2c, 0x8d, 0xbe, 0xbb, 0xf2, 0xdd, 0xe3, 0x0f, 0xf8, 0x7f, 0x9e, 0x8f, 0x7d, 0xe8, + 0x6a, 0x07, 0x49, 0xe7, 0x66, 0xda, 0xdf, 0x51, 0xf2, 0x88, 0xf4, 0xa5, 0xd6, 0x7e, 0xf5, 0x77, + 0x4d, 0xb8, 0x6a, 0xcd, 0x30, 0x83, 0x6f, 0x03, 0x9a, 0xcf, 0xd2, 0x9c, 0xdc, 0xb0, 0x1e, 0xb2, + 0x83, 0x21, 0xe1, 0xdc, 0x43, 0xd4, 0x36, 0xe2, 0x06, 0x68, 0xf3, 0x83, 0x15, 0x82, 0x01, 0x8c, + 0xaf, 0xed, 0xd0, 0x96, 0x87, 0xec, 0x7d, 0xb4, 0x2d, 0x6e, 0x84, 0x36, 0xf0, 0x2b, 0x55, 0x41, + 0x7f, 0xd8, 0x6f, 0x06, 0x58, 0xd3, 0x43, 0xeb, 0x16, 0x05, 0xb9, 0xc1, 0xc7, 0x46, 0xba, 0xa7, + 0x74, 0x72, 0x77, 0x41, 0x63, 0x79, 0xee, 0xc1, 0x90, 0x78, 0x7e, 0x6f, 0xf7, 0x44, 0x5c, 0x62, + 0x6d, 0x7d, 0x4a, 0xb8, 0xf5, 0xd5, 0xed, 0x7a, 0x79, 0xbb, 0xd2, 0xdc, 0xfa, 0x6a, 0x4c, 0x2f, + 0x67, 0x14, 0x9f, 0x54, 0x86, 0xef, 0xb0, 0x1b, 0x31, 0xad, 0x2c, 0xf2, 0xee, 0x52, 0x98, 0x2f, + 0x37, 0x8e, 0x28, 0x55, 0x48, 0x85, 0x22, 0x75, 0x9f, 0xee, 0x05, 0x8c, 0x07, 0xe4, 0x29, 0xea, + 0xad, 0x8c, 0x93, 0xa5, 0xd1, 0xba, 0x27, 0x90, 0xcb, 0x18, 0xaf, 0xc6, 0xb3, 0x55, 0x1a, 0xcb, + 0x83, 0x63, 0xd9, 0x8a, 0x63, 0x59, 0xb1, 0xb5, 0xbc, 0xd8, 0xf2, 0x43, 0x26, 0xd1, 0x50, 0xac, + 0x3d, 0x56, 0x94, 0xf8, 0xa8, 0x2e, 0x11, 0xfd, 0x21, 0x5b, 0x29, 0xe2, 0x02, 0x03, 0xea, 0x6d, + 0xd1, 0x3d, 0xb0, 0xf1, 0x6f, 0x4a, 0xa7, 0x10, 0x2d, 0x9d, 0xfa, 0xb7, 0x99, 0x75, 0xc0, 0x5a, + 0x75, 0x3b, 0x7b, 0x5a, 0x6f, 0x55, 0xfc, 0xf4, 0x1c, 0x5c, 0xfd, 0x80, 0xb6, 0x05, 0x98, 0xf5, + 0xc6, 0x6d, 0x45, 0x8e, 0x33, 0xf2, 0xa4, 0x7d, 0x3b, 0x84, 0x22, 0x13, 0xec, 0x64, 0x11, 0xf3, + 0x91, 0xcd, 0x8d, 0x4d, 0x62, 0x1c, 0x2a, 0x66, 0x1e, 0x7d, 0x43, 0x59, 0x59, 0xe4, 0xb9, 0x20, + 0x4f, 0x46, 0x26, 0x1e, 0x7d, 0x23, 0x18, 0x52, 0x0c, 0xf8, 0xd4, 0x15, 0x36, 0x7f, 0xac, 0x3d, + 0x63, 0x7e, 0x84, 0xda, 0x4b, 0x8c, 0xb0, 0xf6, 0xdf, 0x94, 0xe6, 0xea, 0xf5, 0xa0, 0x25, 0x4c, + 0x51, 0x5a, 0x85, 0x81, 0xf9, 0x34, 0x73, 0x47, 0x30, 0x6e, 0x77, 0x6d, 0x07, 0xa7, 0x36, 0x85, + 0xa9, 0x47, 0x3b, 0x86, 0x69, 0x83, 0x76, 0xdc, 0xe1, 0x14, 0xad, 0xae, 0xed, 0xa2, 0x5d, 0x7b, + 0x1c, 0x53, 0xa7, 0xf6, 0xe4, 0xd1, 0xd7, 0xd1, 0x76, 0x9f, 0xd5, 0x9e, 0xc4, 0xef, 0xf1, 0x61, + 0xc0, 0xf4, 0x38, 0x7e, 0xc7, 0xf0, 0x9b, 0x62, 0x5a, 0x55, 0xe3, 0x9c, 0x2d, 0xf1, 0x95, 0x04, + 0x6d, 0xaa, 0xd6, 0xaf, 0xcd, 0xd5, 0xee, 0x80, 0x2a, 0x6d, 0xfe, 0xbb, 0xcf, 0x82, 0xe4, 0x40, + 0x0a, 0xe9, 0xcc, 0x80, 0xd5, 0xac, 0x88, 0xdb, 0xf2, 0x91, 0xf1, 0x8e, 0x13, 0x78, 0x2a, 0xbe, + 0x70, 0x05, 0x40, 0xb2, 0xc2, 0xc5, 0xfc, 0xc5, 0xd1, 0x8e, 0x50, 0xcc, 0x80, 0x7b, 0x59, 0x49, + 0xad, 0xf1, 0x96, 0xb3, 0xd4, 0x72, 0xab, 0x41, 0x31, 0x33, 0x39, 0x58, 0x33, 0x60, 0xcd, 0x0a, + 0x5d, 0xa3, 0x17, 0xf1, 0xef, 0x42, 0xfe, 0x42, 0x9e, 0x72, 0x91, 0x7a, 0x09, 0x0e, 0xfd, 0x04, + 0xdf, 0x70, 0xed, 0x9e, 0x66, 0xba, 0x4e, 0x64, 0x99, 0xd5, 0xec, 0x68, 0xb1, 0x9b, 0x94, 0xf5, + 0xb6, 0x88, 0xbe, 0x1a, 0x15, 0x15, 0x68, 0xf7, 0xfb, 0x5c, 0x01, 0xed, 0xa0, 0x2b, 0xac, 0x4d, + 0x5a, 0x37, 0xca, 0x87, 0xc2, 0xd9, 0x7e, 0xe6, 0xd1, 0x2b, 0x56, 0xd0, 0x1a, 0x49, 0x6a, 0x93, + 0x91, 0x71, 0x6a, 0xa9, 0xd6, 0x3a, 0xed, 0x20, 0xa9, 0xd3, 0xf6, 0xb9, 0xd1, 0xd3, 0xc4, 0x0a, + 0xb6, 0x16, 0xbb, 0xd9, 0x11, 0x70, 0xf9, 0x41, 0xa2, 0x67, 0x0c, 0xfd, 0xf8, 0x9b, 0x98, 0x6b, + 0x9b, 0xb7, 0x69, 0x17, 0x30, 0x47, 0x3b, 0xd7, 0xde, 0x29, 0xd2, 0xdf, 0xc5, 0x1c, 0xed, 0x5f, + 0x7b, 0x0f, 0xf3, 0x7f, 0x7f, 0x77, 0xbb, 0x36, 0x93, 0xd1, 0x70, 0xc4, 0x5f, 0xe3, 0x77, 0x99, + 0x84, 0x88, 0xc5, 0x9c, 0x0f, 0xb7, 0x75, 0x46, 0x62, 0xad, 0x04, 0xdf, 0xd8, 0x48, 0xfb, 0xc8, + 0xd3, 0x24, 0x18, 0x5c, 0x1b, 0xb5, 0x59, 0x6b, 0x93, 0x20, 0xa1, 0x56, 0x57, 0x30, 0x37, 0x63, + 0x3e, 0xa7, 0xdb, 0x47, 0xc5, 0xcd, 0x6e, 0x36, 0x0f, 0x6b, 0x48, 0x3e, 0xe4, 0xad, 0x60, 0x14, + 0x17, 0x09, 0xc9, 0x93, 0x54, 0x3f, 0xa5, 0x92, 0x49, 0xfe, 0x08, 0xd7, 0x79, 0x16, 0xbf, 0x2b, + 0x59, 0xa0, 0x6f, 0x72, 0xdd, 0x6f, 0xea, 0xf1, 0x8c, 0xde, 0x97, 0xf2, 0x53, 0xea, 0xf5, 0xc5, + 0x98, 0x86, 0xca, 0x0a, 0x0f, 0x2f, 0xfb, 0x21, 0x8b, 0x5f, 0xd6, 0xd1, 0x5b, 0x81, 0xb4, 0x66, + 0xc1, 0x53, 0x07, 0x92, 0x62, 0x7f, 0x60, 0xcd, 0xcf, 0xf3, 0x49, 0x69, 0x35, 0xbe, 0x25, 0xdf, + 0xff, 0xbb, 0x83, 0x7f, 0xd1, 0xf5, 0x97, 0x5d, 0xf9, 0xe7, 0x3f, 0xd6, 0x4e, 0x24, 0x2f, 0x7b, + 0xea, 0xb4, 0xf1, 0x8b, 0xcf, 0x6a, 0x27, 0x5c, 0x21, 0x6d, 0x9e, 0x44, 0x58, 0x4c, 0x56, 0x8d, + 0xbe, 0xcf, 0x01, 0x95, 0xa8, 0xc1, 0x09, 0x77, 0x1d, 0x52, 0x85, 0x23, 0xbf, 0xc4, 0x79, 0x8c, + 0x2b, 0x6f, 0xb9, 0x36, 0x82, 0xc4, 0xf6, 0x7d, 0xa5, 0x75, 0x07, 0x58, 0xc8, 0xc6, 0xe7, 0x2f, + 0xd0, 0xdb, 0x3a, 0x5c, 0x68, 0xcd, 0x2b, 0x22, 0xf6, 0xf1, 0x7b, 0x25, 0xf4, 0x5b, 0xf3, 0x5e, + 0x03, 0xdd, 0x2f, 0xef, 0x6d, 0xe8, 0x5f, 0x57, 0xc8, 0x67, 0xe6, 0xde, 0x74, 0x03, 0xd5, 0x24, + 0xc6, 0xbc, 0x75, 0xc5, 0xb7, 0x16, 0xe3, 0x2c, 0x01, 0xa0, 0x14, 0x67, 0x85, 0x87, 0x85, 0x15, + 0xba, 0xce, 0xde, 0x4a, 0xaf, 0x11, 0x65, 0xbc, 0x49, 0xef, 0xb5, 0x6f, 0x9e, 0xd4, 0x6f, 0x9c, + 0x58, 0x25, 0x72, 0x8b, 0x79, 0x41, 0xe7, 0xc6, 0x7b, 0x9b, 0xf9, 0x6e, 0x26, 0x4d, 0xd1, 0x4f, + 0x91, 0xee, 0x87, 0x6f, 0x91, 0xcb, 0x56, 0x93, 0x01, 0xa1, 0xaa, 0x96, 0x79, 0x46, 0x58, 0x5f, + 0x2a, 0x5b, 0x00, 0x36, 0x44, 0x26, 0xd0, 0xde, 0x5b, 0x6f, 0x49, 0x6a, 0x53, 0xe0, 0xc4, 0xf4, + 0x18, 0x78, 0x30, 0x3d, 0x0e, 0x0d, 0xc1, 0x01, 0xe8, 0xf2, 0x2e, 0x73, 0xb5, 0x6b, 0x93, 0x7a, + 0x0c, 0x62, 0x45, 0x1b, 0x09, 0xf9, 0xd7, 0xfa, 0xa1, 0xab, 0x18, 0xf9, 0xb5, 0x8a, 0xd6, 0xda, + 0xa4, 0xf6, 0xb8, 0x68, 0xc7, 0xf4, 0x49, 0xd1, 0xd9, 0x3d, 0x51, 0xa4, 0xeb, 0x72, 0x1b, 0x4b, + 0x63, 0x61, 0xeb, 0x47, 0xa2, 0x88, 0xe9, 0xac, 0x68, 0xc4, 0xf4, 0x8a, 0x68, 0xc2, 0x74, 0x4e, + 0xac, 0xac, 0x6f, 0x13, 0x1c, 0xba, 0x2f, 0xaa, 0x1f, 0x09, 0x16, 0xae, 0xcd, 0x2a, 0xc6, 0xfa, + 0x11, 0x3f, 0xe6, 0xf5, 0x23, 0xf2, 0xd0, 0xb5, 0xcf, 0x31, 0xdd, 0x79, 0xed, 0xca, 0xa2, 0xc4, + 0x39, 0xe9, 0x98, 0x36, 0xbc, 0xa4, 0x76, 0xf2, 0xda, 0x5b, 0x4b, 0x6a, 0x67, 0xaf, 0xbd, 0xb6, + 0xa4, 0xf6, 0xd6, 0xb5, 0xbb, 0x96, 0xd4, 0x66, 0x16, 0xfe, 0x69, 0x49, 0xed, 0x93, 0x85, 0x97, + 0xd0, 0x43, 0x6b, 0x9a, 0xa6, 0xfb, 0x6e, 0xb6, 0x52, 0x49, 0xbc, 0x15, 0x17, 0xbc, 0x2f, 0xca, + 0x8f, 0x20, 0xed, 0x12, 0x6b, 0x99, 0x29, 0xb5, 0xb0, 0x1b, 0xb0, 0xda, 0xc9, 0x2c, 0xca, 0xbd, + 0xfc, 0xfb, 0xfb, 0xe9, 0xf9, 0xba, 0xee, 0xc5, 0x46, 0x51, 0x01, 0x18, 0x73, 0x61, 0xd4, 0xaa, + 0x4d, 0x79, 0xeb, 0x34, 0xdd, 0x77, 0xdc, 0x4f, 0xda, 0xe4, 0x49, 0x3d, 0x6e, 0xaa, 0xd8, 0x6f, + 0x6d, 0x93, 0x0f, 0x05, 0x9f, 0xf2, 0x1a, 0xf1, 0x16, 0x15, 0x29, 0x07, 0xd9, 0x28, 0x4f, 0xea, + 0xf7, 0x5b, 0xe0, 0x13, 0x21, 0x68, 0xc5, 0xa8, 0x78, 0xe1, 0x73, 0x94, 0x6c, 0x33, 0x3f, 0x0b, + 0x6b, 0x50, 0x99, 0xa9, 0x9e, 0x2a, 0x1a, 0x97, 0x6b, 0x9a, 0xae, 0x69, 0x30, 0x88, 0xf1, 0xf4, + 0x06, 0xa5, 0x06, 0x5b, 0xff, 0x81, 0xb5, 0xae, 0xc4, 0xd6, 0xc2, 0x57, 0x5a, 0xe5, 0xc8, 0x41, + 0x9b, 0x9b, 0xc6, 0xc7, 0xda, 0x9e, 0x8e, 0x96, 0xb8, 0x01, 0x6d, 0xe9, 0x80, 0x1e, 0x7f, 0xd7, + 0xce, 0xc3, 0x5c, 0xdf, 0x29, 0x20, 0x59, 0xc3, 0x62, 0xbc, 0xed, 0x40, 0x6b, 0x3d, 0x8e, 0x11, + 0xb8, 0x50, 0xa2, 0x5c, 0x1b, 0x5e, 0x2c, 0xed, 0x63, 0xfa, 0x1e, 0xd2, 0x2d, 0x2f, 0x23, 0x2e, + 0x8d, 0xd2, 0xbb, 0xf5, 0x18, 0x89, 0x79, 0xe1, 0xff, 0xba, 0x0b, 0xa3, 0x44, 0x7f, 0x7c, 0x5d, + 0x71, 0x25, 0xd1, 0x37, 0x82, 0x13, 0x53, 0x0f, 0x78, 0x30, 0x6d, 0x80, 0x86, 0xda, 0xed, 0xa2, + 0x15, 0xad, 0x01, 0xbd, 0x23, 0x5a, 0x03, 0x7a, 0x47, 0xd1, 0x29, 0x9f, 0xf9, 0xef, 0xb9, 0xa5, + 0x2f, 0x02, 0x9b, 0x47, 0x74, 0xc6, 0x41, 0xd8, 0x80, 0x63, 0x1e, 0xd7, 0x3d, 0xef, 0xa9, 0xb1, + 0x18, 0x08, 0xfa, 0x7a, 0xbd, 0x28, 0x4f, 0x15, 0xb9, 0x52, 0xa2, 0xd5, 0x8e, 0xe7, 0xaa, 0xe8, + 0xb5, 0xde, 0xd1, 0xfd, 0x19, 0xf5, 0x50, 0xd4, 0x2f, 0x7f, 0x6b, 0x04, 0x04, 0xed, 0x58, 0x0e, + 0x46, 0x04, 0xc7, 0x75, 0xb8, 0x03, 0x93, 0x0e, 0x3c, 0x69, 0x2e, 0xea, 0x57, 0xa7, 0x30, 0x66, + 0x1b, 0x4b, 0x4a, 0xc4, 0xf8, 0x9b, 0x13, 0x85, 0xbd, 0xf1, 0x7b, 0x8a, 0x2f, 0x02, 0x8d, 0xae, + 0x7a, 0x69, 0x7f, 0x8c, 0x06, 0x2a, 0xc5, 0xda, 0xe9, 0x46, 0x8b, 0x45, 0x1d, 0x3e, 0x2c, 0x9e, + 0x9f, 0x2a, 0x36, 0xce, 0x74, 0x29, 0x1a, 0x09, 0xa2, 0xfd, 0x2b, 0xab, 0xb1, 0xcf, 0xe3, 0xb4, + 0x1f, 0x46, 0xf2, 0x3f, 0xa3, 0xf1, 0x12, 0xbb, 0x13, 0xf2, 0xf1, 0x66, 0x2a, 0x7f, 0x7f, 0xbe, + 0xeb, 0xa1, 0x25, 0x31, 0xd0, 0x43, 0x29, 0xdc, 0x01, 0x2a, 0xb3, 0x18, 0x09, 0x99, 0xec, 0x1d, + 0x7b, 0xc0, 0x25, 0x6b, 0x8f, 0x2b, 0xff, 0x66, 0x6f, 0x75, 0xb5, 0x68, 0xf3, 0x1d, 0x28, 0x31, + 0x86, 0x9e, 0xde, 0xde, 0xca, 0x46, 0xfa, 0x54, 0xbf, 0x1f, 0xa5, 0x4a, 0x7d, 0x44, 0x65, 0x25, + 0xab, 0x61, 0xfc, 0x50, 0xdc, 0xdb, 0x13, 0xa2, 0xbd, 0x7b, 0x42, 0x5f, 0x8b, 0x3a, 0x5c, 0x8b, + 0xb2, 0x55, 0xc1, 0xe7, 0x44, 0x2b, 0x5d, 0xb3, 0x3a, 0xbf, 0xe8, 0x5c, 0xba, 0xa7, 0xe8, 0xa7, + 0x8f, 0x1b, 0x47, 0xe9, 0xef, 0xa3, 0xa7, 0xf3, 0x7d, 0x11, 0xfd, 0x94, 0xbb, 0xdb, 0xe9, 0xcc, + 0x24, 0xfa, 0x8a, 0xa8, 0x22, 0xcc, 0x13, 0x18, 0xf3, 0xf4, 0x47, 0x49, 0x8c, 0xc0, 0xef, 0xc5, + 0x58, 0xda, 0xa9, 0x7b, 0x07, 0x3a, 0xf2, 0x3d, 0xe4, 0x96, 0x02, 0xf3, 0x0b, 0x2c, 0xd5, 0xbd, + 0xae, 0x74, 0x87, 0xee, 0x31, 0xe8, 0x6c, 0x17, 0x39, 0x17, 0x6a, 0x52, 0x25, 0x8b, 0xca, 0x08, + 0x61, 0xff, 0x97, 0x36, 0xa4, 0xad, 0x47, 0x8b, 0xc8, 0xeb, 0x2f, 0x44, 0x29, 0xf6, 0xb5, 0x2f, + 0x44, 0xbf, 0x3e, 0x27, 0x6b, 0xbf, 0x50, 0x65, 0x05, 0xd4, 0x15, 0xbd, 0xda, 0x2d, 0x01, 0xd8, + 0x40, 0xb0, 0x5e, 0xeb, 0x47, 0x1f, 0xe4, 0x7f, 0x1b, 0x57, 0x4c, 0xbb, 0xd2, 0x72, 0xf5, 0x33, + 0x13, 0xdc, 0x0e, 0x22, 0xfd, 0xcd, 0x5a, 0x56, 0x42, 0x48, 0xc3, 0x58, 0x7d, 0x0f, 0x8e, 0xf1, + 0x36, 0x93, 0xf7, 0x66, 0xc9, 0xb7, 0x29, 0x0b, 0xee, 0x1d, 0xc0, 0xee, 0x72, 0x05, 0xe6, 0x1a, + 0xd9, 0x2f, 0xea, 0xf7, 0xea, 0x3f, 0x83, 0x00, 0xac, 0x9d, 0x17, 0x01, 0xa6, 0x3f, 0xc3, 0x1c, + 0x68, 0x6e, 0x61, 0xbf, 0x4d, 0x1a, 0xf5, 0x77, 0xf1, 0xda, 0x02, 0xfb, 0x75, 0x98, 0xc5, 0xa5, + 0x4d, 0x04, 0xdf, 0x4b, 0xd5, 0x92, 0x88, 0xf1, 0x8a, 0x61, 0xf8, 0x7a, 0x45, 0x1c, 0xae, 0x20, + 0xe2, 0xaf, 0xc7, 0xf1, 0x0d, 0xa8, 0x7d, 0xbb, 0x2f, 0x2b, 0x9c, 0xcb, 0x63, 0x3c, 0x6f, 0xa0, + 0xbf, 0x5b, 0xda, 0xe1, 0xfd, 0x87, 0x33, 0x42, 0x61, 0x0c, 0xa3, 0x7b, 0x56, 0xdf, 0x9f, 0x27, + 0xe2, 0x07, 0xe3, 0x4b, 0x39, 0xfe, 0x63, 0x3c, 0x0b, 0x21, 0xa1, 0x30, 0xba, 0x3f, 0xaf, 0x9f, + 0xf9, 0x6a, 0x7b, 0x29, 0xa6, 0x69, 0xbb, 0xaa, 0x65, 0x31, 0x76, 0xc6, 0x37, 0xa7, 0xd7, 0x0f, + 0x55, 0xa8, 0xb7, 0x09, 0x5f, 0x44, 0x96, 0xae, 0x3c, 0xd6, 0x2c, 0xb4, 0x84, 0xbb, 0x21, 0xec, + 0x7f, 0x2c, 0xfd, 0x61, 0xf0, 0x29, 0xf9, 0x70, 0x16, 0xbc, 0x81, 0x3f, 0xc6, 0xd3, 0x31, 0x96, + 0x7c, 0xa1, 0x73, 0xda, 0x50, 0x43, 0x23, 0x61, 0xaa, 0x7f, 0xe1, 0x1c, 0x5d, 0x13, 0x73, 0x41, + 0x3e, 0xa3, 0x55, 0xea, 0x3b, 0xd1, 0x3d, 0x71, 0x96, 0xda, 0x9d, 0x94, 0x01, 0xdc, 0x93, 0xbf, + 0x52, 0xcc, 0x6c, 0xcd, 0x04, 0x6c, 0x5f, 0xd9, 0x3d, 0x91, 0x01, 0xc5, 0x88, 0xd2, 0xaa, 0x98, + 0xdc, 0x2a, 0x5a, 0x2a, 0xc9, 0xa5, 0xba, 0xde, 0xd5, 0xd4, 0x39, 0xdd, 0x52, 0x86, 0x92, 0x07, + 0xc3, 0x97, 0x48, 0x33, 0xbe, 0xdc, 0xaa, 0xf1, 0x75, 0x53, 0x83, 0x91, 0x38, 0x39, 0x4d, 0xdf, + 0x3a, 0x59, 0x22, 0x5c, 0x18, 0x3f, 0x45, 0x5f, 0x3a, 0xfd, 0x99, 0x8a, 0xc2, 0x68, 0x60, 0x56, + 0xaa, 0x20, 0x52, 0x6e, 0xae, 0x30, 0x76, 0x7e, 0xd4, 0x1a, 0xdc, 0xf8, 0x99, 0x04, 0xed, 0x1f, + 0xa2, 0xae, 0xf8, 0x26, 0x51, 0x36, 0x38, 0xc3, 0xff, 0x7a, 0x19, 0x0c, 0x3f, 0xfd, 0x55, 0x8f, + 0xef, 0xf9, 0xd7, 0x54, 0xf7, 0x4f, 0x7f, 0x15, 0xb7, 0xd8, 0x27, 0x75, 0xda, 0x5f, 0xbf, 0x71, + 0xeb, 0x66, 0x7c, 0x05, 0x3c, 0xfc, 0xfc, 0x6b, 0x71, 0x93, 0x75, 0xd9, 0xe1, 0xf1, 0xda, 0x00, + 0x18, 0x14, 0xd1, 0x71, 0xe8, 0xd0, 0x49, 0x1c, 0x69, 0x99, 0x62, 0x71, 0x84, 0xf5, 0x7b, 0x35, + 0x76, 0x16, 0x75, 0x15, 0x33, 0x42, 0xe7, 0x74, 0xb3, 0x41, 0x1e, 0x5a, 0x4f, 0xc0, 0x57, 0xdf, + 0xb0, 0x76, 0xdd, 0x37, 0x1a, 0xbf, 0xd9, 0x74, 0xfb, 0x92, 0x62, 0xb4, 0xa7, 0xb7, 0x4f, 0x8d, + 0xd1, 0xff, 0xa9, 0xdc, 0x30, 0xaf, 0x15, 0xe0, 0xe5, 0x8b, 0x98, 0x63, 0xe5, 0xe5, 0x0b, 0x74, + 0xdf, 0x57, 0xc3, 0xf4, 0x6c, 0x83, 0x3c, 0xe4, 0x15, 0x71, 0x87, 0xa5, 0x8c, 0x09, 0xbd, 0x0b, + 0xbe, 0x05, 0x61, 0x39, 0xae, 0xc4, 0x27, 0xdd, 0x13, 0xbe, 0xff, 0x61, 0xef, 0xef, 0x03, 0xa3, + 0xaa, 0xae, 0x85, 0x71, 0x78, 0xcd, 0x64, 0x08, 0xc3, 0x30, 0xc6, 0x31, 0x8e, 0xe9, 0x94, 0xa6, + 0x78, 0x38, 0x4e, 0xc6, 0x21, 0x99, 0x64, 0x42, 0x8c, 0x88, 0x69, 0xc4, 0xc9, 0xe4, 0x83, 0xc9, + 0x10, 0x86, 0x38, 0x89, 0x36, 0xb5, 0x54, 0x4f, 0x42, 0x32, 0x93, 0xc0, 0x24, 0x19, 0x27, 0x13, + 0x8c, 0xdc, 0x3c, 0x76, 0x12, 0x22, 0x06, 0xa4, 0x82, 0x82, 0xd4, 0xf6, 0x7a, 0x7b, 0x6d, 0x1f, + 0x9f, 0x5e, 0x6a, 0xd5, 0x52, 0x2f, 0xb5, 0x94, 0x97, 0x5f, 0x9f, 0x48, 0xb9, 0x5e, 0xb4, 0xdc, + 0x3e, 0x80, 0x68, 0xb9, 0x5e, 0xae, 0x5a, 0x2f, 0x56, 0x44, 0x54, 0x4a, 0xa9, 0x0d, 0x18, 0x72, + 0xde, 0xb5, 0xd6, 0x3e, 0xf3, 0x91, 0x80, 0xad, 0xfd, 0x3d, 0xf7, 0xfd, 0xef, 0x0d, 0x9c, 0x39, + 0xfb, 0xec, 0xef, 0xbd, 0xf6, 0xda, 0x6b, 0xaf, 0xb5, 0xf6, 0xde, 0x6b, 0xd3, 0x9a, 0x80, 0x0d, + 0x47, 0xc6, 0x15, 0xe1, 0x73, 0x37, 0xd0, 0x2a, 0xc6, 0x5b, 0x67, 0x9e, 0xd0, 0x7b, 0x41, 0x05, + 0xaf, 0x0e, 0x6e, 0xd8, 0x87, 0x5f, 0xa5, 0x51, 0x9d, 0xfd, 0xda, 0x40, 0x7f, 0x2a, 0x5e, 0x4e, + 0x38, 0x4f, 0xb8, 0x09, 0x87, 0x40, 0xbd, 0x61, 0xc2, 0x48, 0xba, 0xfa, 0x27, 0x02, 0xfd, 0x51, + 0x15, 0xcb, 0x98, 0xed, 0x36, 0x21, 0xbc, 0xcc, 0x4b, 0x2e, 0xa8, 0x8f, 0x2a, 0x26, 0x5f, 0x82, + 0x66, 0xf7, 0xc0, 0xd6, 0x96, 0xcd, 0x96, 0x39, 0xa1, 0xb3, 0xf6, 0xbb, 0x1d, 0x77, 0x93, 0x2c, + 0x56, 0xb9, 0x18, 0xeb, 0xe1, 0x42, 0x49, 0xdc, 0x89, 0xf8, 0x70, 0x48, 0x68, 0x07, 0xe6, 0xe8, + 0x09, 0x73, 0xfc, 0xc3, 0x21, 0x92, 0x64, 0x4a, 0xb1, 0x66, 0xcd, 0xd8, 0xf3, 0xed, 0x03, 0x26, + 0x47, 0xe5, 0x57, 0xbe, 0xfb, 0x0a, 0x2c, 0x23, 0x2c, 0x1c, 0x65, 0x89, 0x6d, 0x06, 0xa6, 0x59, + 0x54, 0xcf, 0x58, 0x49, 0x5a, 0x88, 0x5b, 0x4e, 0x60, 0x1a, 0x23, 0xa7, 0x79, 0x54, 0x91, 0xdd, + 0x59, 0x6e, 0x7d, 0x60, 0x7b, 0xe3, 0xe6, 0x42, 0xe4, 0x46, 0x2c, 0x37, 0x22, 0xd7, 0x23, 0xca, + 0x7f, 0x14, 0xfd, 0x67, 0x04, 0xb6, 0x35, 0x6e, 0xde, 0x96, 0x68, 0x41, 0xae, 0x01, 0x65, 0xd3, + 0x2c, 0x92, 0x11, 0x1d, 0xd0, 0x34, 0x12, 0x1a, 0x8b, 0x9a, 0x10, 0x03, 0x9c, 0x28, 0x53, 0x55, + 0x2a, 0x30, 0xf9, 0xa6, 0xef, 0xbd, 0xd2, 0x52, 0x07, 0x8e, 0x03, 0xac, 0x9d, 0x15, 0x4b, 0x2a, + 0xcb, 0xac, 0x5d, 0x3c, 0x9f, 0xe4, 0xd2, 0x39, 0x96, 0xda, 0x0b, 0x93, 0x2f, 0x48, 0x59, 0x27, + 0x76, 0xc4, 0xae, 0x1c, 0x1b, 0xb2, 0xdc, 0x90, 0x2e, 0xe5, 0x6b, 0xc3, 0x88, 0x57, 0x13, 0x08, + 0xdd, 0x77, 0x62, 0x26, 0xc2, 0xdd, 0x86, 0xb7, 0xcc, 0x66, 0xcc, 0x73, 0xa3, 0x96, 0xa7, 0x35, + 0x23, 0xfd, 0x9a, 0xbf, 0x92, 0x5e, 0xca, 0x48, 0xef, 0x0f, 0x76, 0x74, 0xb7, 0x46, 0xa3, 0x1d, + 0xed, 0x52, 0x41, 0xbb, 0xd4, 0x76, 0x5f, 0xbc, 0x43, 0xaa, 0x26, 0xfd, 0x72, 0xac, 0x23, 0x4c, + 0x9a, 0xc4, 0x78, 0xaf, 0x54, 0xd7, 0xda, 0x17, 0x77, 0x49, 0x05, 0x51, 0xa9, 0x98, 0x7f, 0x16, + 0xa7, 0x9c, 0xce, 0x82, 0xbe, 0xf9, 0x2e, 0x29, 0x14, 0x69, 0x0d, 0xf7, 0x49, 0x05, 0xa5, 0x8b, + 0x06, 0x4c, 0x49, 0xd5, 0x73, 0x46, 0x5e, 0x5a, 0x36, 0x99, 0x49, 0xa4, 0xfe, 0x3e, 0xd2, 0x1f, + 0x67, 0xa6, 0x13, 0x9a, 0xd8, 0x92, 0x58, 0x47, 0x5f, 0x6f, 0x7f, 0x6c, 0x65, 0x07, 0xf4, 0xf4, + 0x76, 0x77, 0xf7, 0x03, 0x2b, 0x92, 0xc9, 0x11, 0xa5, 0x1f, 0x7a, 0x96, 0x2d, 0xbb, 0x3d, 0xa9, + 0x5c, 0xed, 0x5a, 0x2b, 0x54, 0x9d, 0x42, 0x79, 0x69, 0x82, 0xfa, 0xa4, 0x37, 0xe5, 0x4d, 0xf1, + 0xfa, 0x3a, 0xe2, 0xfd, 0x51, 0x13, 0xdc, 0xe1, 0x0d, 0x62, 0xc1, 0x26, 0xb8, 0xb3, 0x23, 0xd6, + 0xdb, 0xd8, 0x1a, 0xee, 0x80, 0xa6, 0xa6, 0xbb, 0x9b, 0x48, 0xd9, 0x48, 0xda, 0x7c, 0xf0, 0x23, + 0x85, 0xcd, 0x3f, 0x0b, 0xe3, 0x5f, 0xde, 0xa1, 0x9b, 0x0f, 0xed, 0xf8, 0xce, 0xc5, 0x27, 0x0f, + 0xc6, 0xe7, 0x0e, 0x8b, 0x15, 0x44, 0xad, 0x60, 0xa9, 0x7c, 0x41, 0xc9, 0x02, 0x13, 0xb8, 0x73, + 0x70, 0x8c, 0x1a, 0x71, 0x34, 0x9b, 0x71, 0xbc, 0x5a, 0x5c, 0xbd, 0x60, 0xc5, 0x91, 0x3f, 0xec, + 0x62, 0xac, 0x2b, 0xd5, 0x3b, 0x88, 0x8e, 0xac, 0x8b, 0x9a, 0x7f, 0xf7, 0x63, 0x29, 0x4b, 0xae, + 0x84, 0x19, 0x60, 0xc8, 0xd4, 0xfe, 0x85, 0xbd, 0xa9, 0xaf, 0x41, 0xd9, 0x2b, 0x65, 0xa5, 0xb5, + 0x85, 0x42, 0x2f, 0x28, 0x65, 0xe1, 0x8c, 0xa1, 0x9e, 0x01, 0xd2, 0x0f, 0xca, 0xe9, 0xb8, 0xe5, + 0xf6, 0x34, 0x5f, 0xb0, 0x46, 0xd2, 0x37, 0xbc, 0xe5, 0x31, 0x0b, 0x6d, 0xe5, 0xe2, 0x32, 0xa7, + 0x1b, 0xec, 0x2e, 0xd2, 0x3d, 0xa1, 0x04, 0x8f, 0x65, 0x97, 0x16, 0xba, 0xa1, 0xdc, 0x9e, 0x95, + 0xa1, 0x65, 0x34, 0x20, 0x1f, 0xa4, 0x27, 0x1e, 0x42, 0xf5, 0xc9, 0xfe, 0x14, 0xdf, 0xc1, 0xf3, + 0x2f, 0xcd, 0x54, 0xe1, 0xbb, 0x24, 0x7d, 0xcc, 0xfc, 0xce, 0x0e, 0x37, 0x60, 0x0c, 0x8f, 0xc3, + 0x43, 0xb3, 0x4a, 0xd8, 0x2f, 0xf9, 0x65, 0x4f, 0xba, 0x76, 0x17, 0xb7, 0x48, 0x59, 0x4d, 0x09, + 0xf7, 0x0c, 0xe4, 0x7f, 0xfb, 0x8c, 0x34, 0x3b, 0xc4, 0x48, 0x47, 0x22, 0x74, 0x17, 0x5f, 0xfa, + 0x84, 0x74, 0x01, 0xb3, 0xb2, 0x31, 0xc5, 0x52, 0x49, 0x2f, 0xcf, 0x70, 0xd5, 0x60, 0x1d, 0x9f, + 0x24, 0x7d, 0x49, 0xc3, 0x5b, 0x0d, 0xc8, 0x49, 0x72, 0xaa, 0xd8, 0x22, 0x35, 0x19, 0x3f, 0xbf, + 0x4a, 0xc4, 0x27, 0xbe, 0xce, 0x5d, 0x83, 0xd3, 0x44, 0x2d, 0x8e, 0x52, 0x2f, 0x38, 0xdd, 0x7e, + 0xb0, 0x53, 0x0a, 0xc4, 0xc5, 0x27, 0x6f, 0x13, 0xba, 0xac, 0x80, 0xb1, 0x04, 0x74, 0xb4, 0x8e, + 0x63, 0xf0, 0x57, 0x23, 0x4e, 0xe7, 0xdf, 0x87, 0x5c, 0x5b, 0x0e, 0xc2, 0x10, 0x0c, 0x15, 0x2e, + 0xd2, 0x6b, 0xfe, 0xd2, 0x0d, 0xd8, 0xb6, 0x4a, 0x92, 0x29, 0x39, 0xcf, 0x1d, 0x0e, 0xe2, 0xe6, + 0xcd, 0xe1, 0x00, 0x97, 0xb3, 0xc1, 0x0d, 0x34, 0x76, 0xbf, 0xb2, 0x8d, 0x46, 0x21, 0xce, 0x94, + 0x60, 0x60, 0xbe, 0x3c, 0x7f, 0xb3, 0x18, 0x97, 0xe4, 0x93, 0x35, 0xc1, 0x3e, 0x8f, 0x67, 0xf8, + 0x9c, 0x65, 0x9f, 0x7f, 0xc8, 0xf0, 0x39, 0x21, 0xa0, 0x80, 0x33, 0x5a, 0x89, 0xce, 0x59, 0x33, + 0x86, 0x3e, 0x6f, 0xd4, 0x8c, 0xad, 0x86, 0xac, 0xa3, 0x81, 0xe7, 0x26, 0x0e, 0x71, 0x8c, 0x57, + 0xe4, 0xc1, 0x99, 0x2a, 0x40, 0x1a, 0xb6, 0xde, 0x1a, 0x6f, 0x2d, 0x42, 0x11, 0xe9, 0xa9, 0xb1, + 0x10, 0xb2, 0x74, 0xf3, 0x43, 0xd9, 0xc8, 0xbb, 0x41, 0xd6, 0x08, 0xd2, 0x0d, 0x9c, 0xd1, 0x9d, + 0x07, 0x59, 0x9e, 0x46, 0x18, 0xf8, 0x3d, 0x42, 0xef, 0x97, 0xff, 0xfd, 0xc0, 0x16, 0xa4, 0x44, + 0x90, 0xd5, 0xc6, 0x5f, 0x7b, 0x91, 0x57, 0xf5, 0x63, 0xfb, 0x46, 0x91, 0x8a, 0xe0, 0x4c, 0x72, + 0xf1, 0x69, 0x07, 0x34, 0x6e, 0x0e, 0xb7, 0x3f, 0x72, 0x00, 0xfb, 0x84, 0x35, 0x29, 0x14, 0x7a, + 0x71, 0x8b, 0xbb, 0x1a, 0x4a, 0x11, 0x0b, 0x4b, 0x5d, 0x03, 0x60, 0x58, 0x7a, 0x01, 0x8c, 0xa4, + 0xe9, 0x55, 0xb2, 0x03, 0x7f, 0x67, 0xd4, 0x05, 0xfa, 0x34, 0x58, 0x1f, 0x15, 0xb0, 0xc6, 0x96, + 0xd4, 0x86, 0x0c, 0xfe, 0x9a, 0xb0, 0xe4, 0xf5, 0x98, 0x3d, 0xd8, 0xe7, 0x96, 0x18, 0x32, 0x8d, + 0x52, 0xd5, 0xe1, 0x17, 0xe7, 0xed, 0x7d, 0xf3, 0xd9, 0x33, 0x57, 0x8c, 0x42, 0x90, 0xfc, 0x3d, + 0xa1, 0x77, 0x28, 0xff, 0x2c, 0x09, 0xb9, 0x0c, 0x2a, 0xa1, 0xd9, 0xe9, 0xc1, 0x56, 0x80, 0xfe, + 0x20, 0xd7, 0x66, 0x50, 0x5a, 0x85, 0x9c, 0x73, 0x03, 0xca, 0xf3, 0x16, 0x79, 0x07, 0x58, 0xaf, + 0xeb, 0x44, 0x41, 0xd8, 0x10, 0xac, 0x93, 0x1a, 0x1b, 0x37, 0xf8, 0xb7, 0x84, 0xb3, 0xcd, 0x75, + 0xd0, 0x1e, 0xfa, 0x3d, 0xc7, 0x5c, 0xe3, 0x68, 0xf0, 0xf6, 0x42, 0x89, 0xd2, 0x50, 0x72, 0xb5, + 0x7e, 0xc9, 0x19, 0x70, 0x14, 0x21, 0x1f, 0xb4, 0x8e, 0xf0, 0x71, 0xfb, 0x83, 0xfa, 0x6a, 0xc4, + 0xeb, 0x25, 0xd5, 0xef, 0x4b, 0xa2, 0x0d, 0xcc, 0x2b, 0x85, 0x8d, 0x38, 0x83, 0x0f, 0xcc, 0xd4, + 0x29, 0x26, 0x84, 0x6e, 0x2e, 0xbb, 0x01, 0x69, 0xe9, 0xcc, 0xc0, 0x9e, 0x09, 0xd6, 0xeb, 0x05, + 0x31, 0xaf, 0xc6, 0x87, 0xf6, 0xe2, 0x6f, 0xe8, 0x39, 0xe4, 0x1f, 0x29, 0x5d, 0x80, 0x7e, 0x09, + 0xfa, 0xe1, 0x52, 0x2d, 0x7e, 0x25, 0x78, 0x80, 0x7e, 0x91, 0xdb, 0x5a, 0x72, 0x61, 0xe2, 0xae, + 0xc0, 0x56, 0xf2, 0xcf, 0xd2, 0xb9, 0x69, 0x04, 0x92, 0xff, 0x93, 0x28, 0xd1, 0xb1, 0x16, 0xcf, + 0x5f, 0x1b, 0xb6, 0xba, 0xf5, 0xde, 0x7f, 0xf2, 0x0d, 0x58, 0x10, 0x7b, 0xb0, 0x8c, 0x32, 0x96, + 0x6a, 0xe7, 0x22, 0x74, 0x64, 0x94, 0xf5, 0x40, 0xf8, 0x33, 0xf4, 0x8e, 0x63, 0x7f, 0xed, 0x99, + 0x78, 0x82, 0x65, 0x55, 0x84, 0xcb, 0x6c, 0x50, 0xe6, 0x70, 0xae, 0x90, 0x4c, 0xfb, 0xe9, 0x27, + 0x94, 0x96, 0x61, 0x06, 0x72, 0x21, 0x54, 0xb8, 0x41, 0x2a, 0x84, 0x85, 0x5b, 0x86, 0x90, 0x6b, + 0xd1, 0x71, 0x0e, 0xef, 0x72, 0x0e, 0x77, 0x46, 0xb3, 0xb9, 0xbe, 0xaf, 0x33, 0x7e, 0x5a, 0xbf, + 0x73, 0x70, 0xc9, 0x85, 0x4f, 0xf7, 0x2a, 0xf9, 0x46, 0x17, 0xd6, 0xcd, 0x12, 0xb2, 0x6a, 0x35, + 0x75, 0x81, 0x1d, 0x1f, 0x49, 0xe8, 0xfe, 0xa5, 0x86, 0xa8, 0x1a, 0x53, 0x5d, 0xd5, 0x24, 0x07, + 0x50, 0x2f, 0x84, 0x8e, 0xc8, 0xd5, 0x94, 0xc7, 0x64, 0x5b, 0xaa, 0x5d, 0x46, 0x6e, 0xd7, 0x19, + 0x6a, 0xef, 0xa7, 0x3d, 0xa2, 0xbd, 0x33, 0x20, 0xe5, 0xff, 0xb6, 0xd6, 0xde, 0xfc, 0x92, 0xe1, + 0x29, 0xfe, 0xe3, 0xe4, 0x2f, 0xf8, 0x42, 0x47, 0x67, 0xd6, 0x1c, 0x2a, 0xab, 0xfe, 0xc2, 0xa7, + 0xbb, 0x95, 0x35, 0x1a, 0xaf, 0xe8, 0xd4, 0xb9, 0x10, 0xd3, 0xb3, 0x9c, 0xd0, 0x3c, 0xf2, 0xde, + 0xa6, 0xf7, 0x46, 0x97, 0xfd, 0xd1, 0x68, 0x55, 0xbc, 0xfe, 0x44, 0xc4, 0x28, 0x83, 0x71, 0x08, + 0xae, 0x55, 0x16, 0xb6, 0x0c, 0x49, 0x1e, 0xa3, 0x13, 0x6b, 0x6e, 0x0a, 0x17, 0x4a, 0x7d, 0x3e, + 0xf8, 0xe9, 0x58, 0x9b, 0x2c, 0xdf, 0x51, 0x68, 0x7c, 0x63, 0xc3, 0x9e, 0xc4, 0x4a, 0x1b, 0x97, + 0x35, 0xcb, 0xcd, 0xba, 0xa8, 0xfc, 0x8f, 0xb0, 0xf5, 0xa4, 0xcf, 0xb1, 0x2a, 0x26, 0xff, 0x50, + 0x38, 0x5b, 0xaa, 0x92, 0x2c, 0xa1, 0x5d, 0xc1, 0x6a, 0x45, 0xef, 0xad, 0x7e, 0x61, 0x35, 0xe4, + 0x74, 0x6c, 0x12, 0x9a, 0xd9, 0xd0, 0x19, 0x84, 0x5a, 0x00, 0x39, 0xa3, 0xdf, 0x22, 0x8f, 0x4c, + 0xeb, 0xbe, 0xc7, 0x00, 0x44, 0x2b, 0x65, 0x6e, 0xc7, 0xa3, 0xc4, 0xf3, 0x61, 0x2b, 0x2f, 0x8c, + 0x26, 0x7b, 0x95, 0xe0, 0x8f, 0x6d, 0x41, 0xbe, 0x23, 0xdd, 0xc6, 0xb4, 0xef, 0xdb, 0xe8, 0xcb, + 0x58, 0xa2, 0x8d, 0xb7, 0xf9, 0x8b, 0x18, 0x2b, 0x87, 0xa9, 0x26, 0xb4, 0xf2, 0x31, 0x38, 0xd1, + 0x88, 0xdc, 0x9c, 0xb7, 0x66, 0x2d, 0xf2, 0xb1, 0x13, 0x77, 0x0d, 0xe8, 0xb0, 0x3e, 0x38, 0x5e, + 0xd1, 0x1d, 0xa4, 0xb7, 0xd7, 0x83, 0x2e, 0x3f, 0xca, 0xdb, 0x15, 0xf8, 0xd4, 0xc1, 0xf8, 0xed, + 0xcf, 0x88, 0xa7, 0x7d, 0x5b, 0x6a, 0x43, 0xc9, 0xf8, 0xf7, 0x0d, 0xe2, 0x3d, 0x6a, 0xc3, 0xe7, + 0x10, 0x8c, 0x6f, 0xda, 0x02, 0xe3, 0x0f, 0x1f, 0x84, 0xf1, 0x47, 0x4e, 0xe0, 0x63, 0x86, 0xf1, + 0x0d, 0xe7, 0x60, 0xfc, 0x5b, 0x8d, 0x30, 0x7e, 0x4f, 0x1b, 0x8c, 0x27, 0xa2, 0x30, 0xfe, 0x0d, + 0x4c, 0xff, 0x8d, 0xbd, 0xf8, 0x1c, 0xa3, 0xd5, 0x2b, 0x18, 0x5f, 0xf9, 0x24, 0xe6, 0x17, 0xc7, + 0x07, 0xbf, 0xbf, 0xbf, 0x09, 0xc6, 0xbb, 0x3d, 0x30, 0xfe, 0xbd, 0x08, 0x8c, 0xdf, 0xb7, 0x1b, + 0xc6, 0xfb, 0x77, 0xc0, 0xf8, 0xfd, 0x46, 0x18, 0x5f, 0xe3, 0x43, 0x77, 0x39, 0x8c, 0x3f, 0x84, + 0xf1, 0xee, 0xc3, 0x39, 0x69, 0x8d, 0x15, 0xdd, 0x8b, 0x60, 0x7c, 0xcb, 0x01, 0x8c, 0xef, 0x82, + 0xf1, 0x5e, 0x2c, 0xef, 0x1f, 0xb1, 0xac, 0xef, 0xb5, 0xe0, 0x1b, 0x25, 0xeb, 0xd1, 0xa7, 0xb0, + 0x5c, 0xcc, 0xa7, 0xf7, 0x24, 0x7e, 0x3f, 0x01, 0xe3, 0x1b, 0x3b, 0x69, 0x95, 0x0b, 0x1f, 0x8c, + 0xf3, 0xfd, 0x1a, 0x18, 0x7f, 0xea, 0x34, 0xba, 0x47, 0x69, 0xad, 0x0b, 0xeb, 0x8b, 0x7e, 0x03, + 0xf9, 0xf8, 0x76, 0xc2, 0x78, 0x0f, 0xd6, 0xe5, 0x1f, 0xd1, 0xbd, 0xfd, 0x0c, 0x7e, 0x63, 0x1d, + 0x9e, 0xc4, 0xef, 0xff, 0xb5, 0x13, 0xf3, 0xc2, 0x77, 0x37, 0xc6, 0xff, 0xde, 0x2e, 0x18, 0xdf, + 0x56, 0x0a, 0xe3, 0x83, 0xd8, 0xc6, 0x95, 0x65, 0x30, 0xfe, 0x3f, 0xb1, 0x2e, 0x11, 0xcc, 0xe3, + 0x7b, 0x58, 0x87, 0x6d, 0x98, 0xff, 0x20, 0x96, 0x3f, 0x8a, 0x6d, 0xfd, 0xbe, 0x1d, 0xc6, 0xd7, + 0x62, 0x1b, 0xff, 0x57, 0x33, 0x86, 0xbf, 0x8d, 0xf9, 0x1e, 0xc7, 0x7c, 0x31, 0xfc, 0x31, 0x14, + 0x16, 0x9e, 0xc0, 0xf6, 0x3f, 0x81, 0x79, 0x3e, 0x31, 0x86, 0x0f, 0xe6, 0xf3, 0x0d, 0x0c, 0x7f, + 0x0a, 0xeb, 0xfc, 0xd8, 0x7e, 0x7c, 0x63, 0x39, 0xdb, 0x30, 0xdd, 0xc3, 0x4f, 0xd2, 0x3a, 0x1e, + 0xad, 0xdc, 0x61, 0xdd, 0xb0, 0x2e, 0x5b, 0x31, 0xdf, 0xef, 0x61, 0x3d, 0x37, 0xe2, 0xbb, 0x97, + 0xea, 0xb8, 0x02, 0xcb, 0x46, 0xb8, 0xf4, 0x60, 0x5d, 0x56, 0x20, 0x6c, 0x56, 0x60, 0x3b, 0x5b, + 0xb0, 0x1e, 0x2d, 0x0d, 0x30, 0x7e, 0xa7, 0x05, 0xeb, 0x81, 0x79, 0x3f, 0x88, 0x75, 0x1b, 0xc4, + 0xb4, 0x0f, 0x0e, 0xd2, 0x7a, 0x1f, 0xe6, 0x83, 0x30, 0xda, 0x84, 0xe9, 0xff, 0x07, 0xd6, 0xe9, + 0x41, 0xcc, 0xe3, 0x5e, 0x4c, 0xff, 0x10, 0xc2, 0xfc, 0x3e, 0xca, 0x03, 0x61, 0xd2, 0x8e, 0xed, + 0x5f, 0x8b, 0xdf, 0x7f, 0x87, 0xb0, 0xfd, 0x3b, 0x84, 0xd9, 0xdf, 0x61, 0x9a, 0xaf, 0x63, 0xfa, + 0x3b, 0xb1, 0x4f, 0x7b, 0x0c, 0x58, 0x3e, 0xd6, 0x53, 0x31, 0xa4, 0xfb, 0xfd, 0x6e, 0xac, 0xef, + 0xff, 0x3c, 0x43, 0x3b, 0x72, 0x60, 0xfc, 0x27, 0xd8, 0x57, 0x3b, 0x10, 0xa6, 0x3f, 0xc3, 0xb6, + 0xbf, 0x60, 0x11, 0xe1, 0x3f, 0xc2, 0xbe, 0xfe, 0xf1, 0x1c, 0x18, 0x7f, 0xee, 0x4e, 0x7c, 0x46, + 0xf0, 0xd9, 0x83, 0xcf, 0x9b, 0x18, 0x57, 0xc2, 0x07, 0xcb, 0xfb, 0xc9, 0x7a, 0x7c, 0xbe, 0x27, + 0xe2, 0x3e, 0x3f, 0xfa, 0x37, 0x6f, 0x64, 0x1a, 0xdf, 0x88, 0xe5, 0x3f, 0x8f, 0x75, 0x7e, 0x1e, + 0xe1, 0xfa, 0xbf, 0x10, 0xd7, 0x7e, 0x68, 0x4e, 0x87, 0xad, 0xc4, 0xb0, 0x1f, 0x4a, 0xc2, 0xfd, + 0x43, 0xac, 0xe3, 0x0b, 0x18, 0xe7, 0x85, 0x11, 0xda, 0xb7, 0x15, 0xf8, 0xe8, 0xe2, 0x44, 0x70, + 0x6b, 0xa0, 0x3f, 0x6f, 0x2c, 0xd0, 0x3f, 0x3d, 0x4b, 0xe2, 0x7c, 0x0a, 0xb0, 0x15, 0xaf, 0x45, + 0x74, 0xc5, 0xb3, 0x06, 0x60, 0xdc, 0x81, 0x10, 0x77, 0x5c, 0x8b, 0x90, 0x39, 0x29, 0xc2, 0x3b, + 0x68, 0x19, 0x36, 0xc2, 0x5b, 0xbb, 0xee, 0x03, 0xfb, 0x1d, 0xb5, 0xc1, 0x0a, 0x29, 0xd3, 0x4b, + 0x6a, 0xed, 0xee, 0x0a, 0xb7, 0x16, 0x77, 0x2f, 0x5c, 0xb4, 0x5a, 0x2a, 0xbf, 0xb1, 0xa4, 0x54, + 0x72, 0x96, 0x95, 0x88, 0x7d, 0x5b, 0xf3, 0xaf, 0x30, 0xa5, 0x37, 0x60, 0xe1, 0x93, 0x8f, 0xcf, + 0x1c, 0x64, 0xe5, 0xf5, 0x30, 0xbe, 0xe0, 0x3f, 0x13, 0x44, 0x30, 0xc7, 0x17, 0x4c, 0x26, 0x48, + 0x9d, 0x3a, 0x5e, 0x76, 0x0d, 0xbe, 0x67, 0xe0, 0x7b, 0x3e, 0xbe, 0xb3, 0xf1, 0x5d, 0x81, 0xef, + 0x99, 0xf8, 0x6e, 0xe4, 0x05, 0x83, 0xf1, 0xb2, 0x4e, 0x7c, 0xcf, 0xc2, 0xf7, 0x3a, 0x7c, 0x9b, + 0xf0, 0xbd, 0x39, 0x41, 0xc4, 0x78, 0xbc, 0xec, 0x59, 0x7c, 0xe7, 0xe0, 0xfb, 0xf5, 0x04, 0xed, + 0x61, 0x1b, 0x2f, 0xfb, 0x58, 0xb4, 0xfe, 0x06, 0xda, 0xf6, 0xa4, 0xc3, 0xf7, 0x1c, 0xe0, 0xf2, + 0x6e, 0x70, 0x02, 0x97, 0x77, 0x43, 0x05, 0x70, 0x79, 0x37, 0xf8, 0x81, 0xcb, 0xbb, 0xe1, 0x1b, + 0xc0, 0xe5, 0xdc, 0xb0, 0x1a, 0xb8, 0x9c, 0x1b, 0x06, 0x80, 0xcb, 0xb9, 0x81, 0x24, 0x0e, 0x2c, + 0xe7, 0x86, 0x87, 0x81, 0xcb, 0xb9, 0xe1, 0xfb, 0x40, 0x93, 0xee, 0xf8, 0x0d, 0xff, 0x8c, 0xef, + 0xab, 0xf0, 0xfd, 0x22, 0xbe, 0x91, 0x43, 0xbc, 0xe1, 0x30, 0x09, 0x42, 0xf8, 0x7e, 0x07, 0xdf, + 0x88, 0x41, 0x37, 0xfc, 0x11, 0xdf, 0xd7, 0xc0, 0x78, 0xf9, 0x0c, 0xda, 0x76, 0x85, 0xef, 0xab, + 0xf1, 0x3d, 0x0f, 0xdf, 0xf3, 0x68, 0xa9, 0x0c, 0xdf, 0xa5, 0xf8, 0x46, 0xcc, 0x2b, 0xbf, 0x15, + 0xdf, 0x0b, 0xf0, 0x4d, 0xf5, 0xc0, 0x11, 0x55, 0x7e, 0x3b, 0x09, 0xd0, 0xf8, 0xbe, 0x1b, 0xdf, + 0x38, 0xe2, 0xcb, 0xbb, 0xf0, 0x8d, 0x23, 0xb9, 0x3c, 0x86, 0xef, 0x2a, 0x7c, 0x53, 0xbd, 0xbc, + 0xf8, 0xfe, 0x1f, 0xf8, 0xae, 0xc6, 0xf7, 0x3a, 0xd1, 0xce, 0xf2, 0xed, 0xa2, 0x9d, 0xe5, 0xff, + 0x28, 0xda, 0x59, 0xfe, 0x9c, 0x68, 0x67, 0xf9, 0x4b, 0xa2, 0x9d, 0xe5, 0x6f, 0x8a, 0x76, 0x96, + 0xff, 0x09, 0x18, 0xae, 0x37, 0xe6, 0x88, 0xf6, 0xde, 0xf8, 0x65, 0xd1, 0xde, 0x1b, 0x17, 0x88, + 0xf6, 0xde, 0x58, 0x2f, 0xda, 0x7b, 0xe3, 0x4a, 0xd1, 0xde, 0x1b, 0x07, 0x45, 0xfe, 0x37, 0xfe, + 0x3d, 0x8c, 0xcf, 0xc7, 0x91, 0x3b, 0x1f, 0x29, 0x40, 0x21, 0xd6, 0xab, 0x10, 0x47, 0x48, 0x21, + 0x7e, 0x17, 0x55, 0x0a, 0xff, 0x22, 0xc4, 0xe8, 0x22, 0x1c, 0xb9, 0x45, 0x38, 0xca, 0x8a, 0x8e, + 0xe2, 0x83, 0x18, 0x59, 0x84, 0xb8, 0x54, 0x74, 0x4e, 0x4b, 0x47, 0x71, 0x10, 0xbf, 0x5c, 0x58, + 0x17, 0x17, 0xc2, 0xc7, 0x85, 0x54, 0xc6, 0x85, 0x54, 0xc2, 0x55, 0x9e, 0x0e, 0xff, 0x6b, 0x8f, + 0x0b, 0x47, 0xb7, 0x0b, 0x47, 0xaf, 0x2b, 0xf2, 0xf9, 0xd3, 0x4c, 0x49, 0x8f, 0xd4, 0xd3, 0x85, + 0x23, 0xd1, 0x85, 0x6d, 0x70, 0xed, 0xfd, 0x7f, 0x91, 0x1e, 0x47, 0x95, 0x0b, 0xdb, 0xe7, 0xc2, + 0xf6, 0xb9, 0x8e, 0xd3, 0x1e, 0x0f, 0xa9, 0x42, 0x2a, 0x1d, 0x28, 0x68, 0x24, 0x41, 0xa6, 0x0f, + 0x4c, 0xb5, 0xb1, 0x58, 0x6f, 0x8c, 0x7d, 0x4a, 0x17, 0x45, 0x06, 0xd0, 0x13, 0x4c, 0x8d, 0xd5, + 0x92, 0xa4, 0x45, 0xe2, 0xed, 0x3c, 0x2b, 0x57, 0xa7, 0x52, 0x08, 0xbf, 0x65, 0xbd, 0xed, 0xfd, + 0x91, 0x0e, 0x4c, 0x2e, 0x35, 0x75, 0x84, 0x79, 0x2b, 0x64, 0x41, 0xa4, 0x9f, 0x3e, 0x9d, 0x14, + 0x3e, 0x5f, 0x5a, 0x1e, 0x0a, 0xa1, 0xd4, 0xa2, 0x45, 0xae, 0xeb, 0xef, 0x59, 0xc9, 0x12, 0xce, + 0xe5, 0xc3, 0xb5, 0x9e, 0xfa, 0xa9, 0x8e, 0x31, 0xe1, 0xc6, 0xff, 0xad, 0x63, 0x4c, 0xb8, 0xf1, + 0x2d, 0x1d, 0x63, 0xc2, 0x8d, 0x7f, 0x18, 0x62, 0x0c, 0x58, 0x68, 0x1a, 0x62, 0x0c, 0x58, 0x78, + 0xbd, 0x8e, 0x31, 0x60, 0xe1, 0x12, 0x1d, 0x63, 0xc0, 0xc2, 0x95, 0x3a, 0xc6, 0x80, 0x85, 0x43, + 0x43, 0x8c, 0x01, 0x0b, 0xb7, 0xe9, 0x18, 0x03, 0x16, 0x3e, 0x8f, 0x6f, 0xa4, 0x04, 0x0b, 0x8f, + 0xe2, 0xfb, 0x0a, 0x7c, 0xff, 0x59, 0xc7, 0x23, 0xed, 0xa6, 0x7c, 0x7c, 0x5f, 0x89, 0xef, 0x9b, + 0x74, 0x3c, 0x22, 0x6e, 0xba, 0x4d, 0x94, 0x7f, 0xd3, 0xda, 0x61, 0x1d, 0xbf, 0x1f, 0xc3, 0x37, + 0xd6, 0xe3, 0xa6, 0x67, 0xf0, 0x8d, 0xe5, 0xdd, 0xf4, 0x1b, 0x7c, 0x63, 0x79, 0x37, 0xbd, 0x87, + 0x6f, 0x2c, 0x67, 0x91, 0x0e, 0xdf, 0x58, 0xce, 0xa2, 0x3c, 0x7c, 0x63, 0x39, 0x8b, 0x4a, 0xf0, + 0x8d, 0x23, 0x62, 0x51, 0xb5, 0x9e, 0xcb, 0x5b, 0xf4, 0x75, 0x3d, 0x97, 0xb7, 0xa8, 0x7b, 0x58, + 0x97, 0x8b, 0x58, 0xb2, 0x28, 0xa1, 0x07, 0x03, 0xe6, 0xb7, 0xe8, 0x1f, 0x45, 0x39, 0x8b, 0x5e, + 0x5c, 0xc7, 0xe5, 0x2c, 0x7a, 0x5b, 0xfb, 0x3e, 0x3b, 0xc2, 0xed, 0xbe, 0xf9, 0xca, 0x11, 0x1d, + 0xb5, 0xfb, 0xe6, 0x12, 0x8c, 0x8d, 0xed, 0xbe, 0xb9, 0x05, 0xdf, 0x88, 0x75, 0x37, 0x47, 0xd1, + 0x1f, 0xdb, 0x7f, 0xf3, 0x43, 0x23, 0xdc, 0xfe, 0x9b, 0x7f, 0x30, 0xc2, 0xf5, 0xb9, 0x79, 0x2f, + 0xbe, 0xb1, 0xfd, 0x37, 0xff, 0x76, 0x84, 0xdb, 0x7f, 0xf3, 0xf9, 0x11, 0xae, 0x57, 0xc5, 0x17, + 0x46, 0xb8, 0x5e, 0x15, 0x0b, 0x46, 0xb8, 0x3e, 0x15, 0x0d, 0x23, 0x5c, 0x9f, 0x8a, 0xe8, 0x08, + 0xb7, 0xbf, 0xe2, 0xe1, 0x11, 0x6e, 0x7f, 0xc5, 0x4f, 0x0d, 0xdc, 0xfe, 0x8a, 0x23, 0x06, 0xa6, + 0x08, 0x15, 0x17, 0x44, 0x7d, 0xbe, 0x72, 0x9d, 0xf6, 0xae, 0x9e, 0xc9, 0x70, 0xf8, 0xca, 0x5d, + 0x33, 0xb9, 0x3f, 0xbe, 0xd2, 0x37, 0x93, 0xfb, 0xe3, 0x2b, 0x9b, 0x66, 0xf2, 0xc8, 0xfc, 0xca, + 0x77, 0x66, 0x72, 0xbf, 0x7c, 0x65, 0xf7, 0x4c, 0xae, 0xd7, 0x57, 0xfe, 0x75, 0x26, 0xf7, 0xcb, + 0x57, 0x7e, 0x37, 0x93, 0xfb, 0xe5, 0x2b, 0x7f, 0x9a, 0xc9, 0xf5, 0xaa, 0x9c, 0x3d, 0x93, 0xfb, + 0xa5, 0xf2, 0xcb, 0x33, 0xb9, 0x5f, 0x2a, 0x9d, 0x33, 0xb9, 0x5e, 0x95, 0x8b, 0x67, 0x72, 0xbd, + 0x2a, 0xfd, 0x33, 0xb9, 0x5e, 0x95, 0x6b, 0x44, 0xb9, 0x95, 0xdf, 0x36, 0x32, 0x3c, 0x2a, 0x7f, + 0xaa, 0x7d, 0xff, 0x8b, 0xf6, 0x7e, 0xc7, 0x24, 0xfc, 0x2f, 0x8a, 0xef, 0x5b, 0xec, 0xda, 0xbb, + 0x46, 0x7b, 0xaf, 0xd4, 0xde, 0x43, 0xda, 0x7b, 0xfb, 0x55, 0x1c, 0xff, 0x16, 0x2d, 0x9f, 0x5b, + 0x5e, 0xd5, 0xde, 0x67, 0xc4, 0x7b, 0x71, 0x8e, 0x95, 0xc3, 0x17, 0xbb, 0xb4, 0xef, 0xa5, 0xd7, + 0x88, 0xef, 0x55, 0xd7, 0x70, 0x7b, 0x17, 0x6b, 0x14, 0x64, 0xf1, 0x13, 0xda, 0xfb, 0xe7, 0xf3, + 0x44, 0xf8, 0x91, 0x79, 0x22, 0xfc, 0xac, 0xf0, 0xbf, 0xf5, 0x2a, 0xed, 0x5d, 0x5c, 0xca, 0xe1, + 0xb7, 0xd6, 0x6b, 0xdf, 0x1d, 0x3f, 0x15, 0xdf, 0xff, 0x63, 0x81, 0x78, 0x6f, 0x5b, 0xc0, 0xe9, + 0x6e, 0xdd, 0xbd, 0x80, 0xe1, 0x78, 0xeb, 0xf1, 0x9f, 0x32, 0x3e, 0xdd, 0x7a, 0x5e, 0xc4, 0xf7, + 0x7c, 0x51, 0x7b, 0x2f, 0xd0, 0xde, 0x3e, 0xed, 0x1d, 0xd6, 0xde, 0xc3, 0xda, 0x5b, 0xab, 0x8f, + 0xe7, 0x85, 0xb4, 0x4e, 0xab, 0xca, 0x5b, 0x5d, 0x53, 0x5b, 0x47, 0xbe, 0x4b, 0x7f, 0x81, 0xcf, + 0x2b, 0xf8, 0xfc, 0x3b, 0x3e, 0x1f, 0xe0, 0xf3, 0x67, 0x18, 0x6f, 0xc0, 0xde, 0x6a, 0xc8, 0xc3, + 0xc7, 0x81, 0xcf, 0x8d, 0xf8, 0x20, 0x47, 0xd8, 0x80, 0x1c, 0x45, 0xc3, 0xfd, 0xf8, 0x3c, 0x86, + 0xcf, 0x3f, 0xe3, 0xf3, 0x5b, 0x7c, 0x70, 0x96, 0x6f, 0xf8, 0xa0, 0x31, 0xd6, 0x1b, 0x8e, 0xb5, + 0x76, 0xa7, 0xb4, 0x11, 0xa6, 0xaf, 0xb6, 0x76, 0xc5, 0x79, 0x3b, 0x53, 0x7b, 0x17, 0x52, 0x8e, + 0x56, 0x1c, 0xc9, 0x6b, 0xba, 0xe2, 0xf7, 0x91, 0x3a, 0x25, 0xd4, 0xd5, 0xd3, 0xd5, 0xd7, 0x59, + 0x02, 0xcb, 0x7a, 0x63, 0x1d, 0x25, 0x25, 0x25, 0x83, 0x4d, 0xfd, 0x7d, 0xd1, 0x8e, 0x9e, 0xf6, + 0xc1, 0x60, 0x47, 0x5b, 0x6f, 0x6f, 0x7c, 0xb0, 0x91, 0x36, 0x9e, 0x49, 0xbd, 0xa1, 0x50, 0x2a, + 0x42, 0x75, 0x6f, 0x4f, 0xbc, 0xab, 0xa7, 0xbf, 0x03, 0x1a, 0x7a, 0xc3, 0x9f, 0x1d, 0x9b, 0x02, + 0x53, 0x31, 0x4d, 0x4c, 0x76, 0x90, 0x70, 0x64, 0x12, 0x91, 0x22, 0x8d, 0xb0, 0x24, 0xc3, 0xa6, + 0xd1, 0xa0, 0x29, 0xc1, 0xda, 0xd6, 0x68, 0xa9, 0xa7, 0x97, 0x5a, 0xd1, 0xdf, 0xd3, 0xae, 0xf9, + 0xd7, 0x6b, 0xfb, 0xe8, 0xb4, 0xed, 0x5a, 0xd8, 0xe4, 0x0e, 0xa9, 0x55, 0xdb, 0x46, 0x8d, 0x28, + 0x64, 0x26, 0xaa, 0x23, 0x28, 0x4b, 0x33, 0x72, 0xa5, 0xcd, 0x3f, 0xc5, 0x67, 0x0f, 0xef, 0x38, + 0x1f, 0x6f, 0xfe, 0x57, 0x7c, 0x5e, 0xc3, 0xe7, 0x77, 0xf8, 0x20, 0x97, 0xd2, 0x8c, 0x1c, 0x1c, + 0x4e, 0x7f, 0xe3, 0xb7, 0x23, 0xd6, 0xdf, 0x8e, 0x73, 0xc4, 0xed, 0x38, 0x6f, 0xde, 0x5e, 0x82, + 0xcf, 0xcd, 0xf8, 0xdc, 0x72, 0xd9, 0x5d, 0xeb, 0xe3, 0xb7, 0xd7, 0x68, 0xef, 0x65, 0xf8, 0x7c, + 0x0d, 0x9f, 0x56, 0xed, 0x7b, 0x35, 0x3e, 0x71, 0xcd, 0x4d, 0x73, 0x38, 0x34, 0x21, 0xbb, 0xd2, + 0x7c, 0x0b, 0x48, 0x4d, 0xf8, 0x2c, 0xc3, 0xa7, 0x05, 0x9f, 0x00, 0x3e, 0x77, 0xe2, 0x73, 0x07, + 0x3e, 0xd5, 0xf8, 0xd4, 0x2f, 0xab, 0x6a, 0x5a, 0x7a, 0x0b, 0x5c, 0x82, 0x10, 0x4b, 0x3a, 0xe2, + 0xd5, 0xd5, 0xbc, 0x73, 0x3d, 0x94, 0x86, 0x9e, 0x73, 0xbe, 0xd4, 0x25, 0xc0, 0xd1, 0xd5, 0x1d, + 0x8d, 0x74, 0x10, 0xe0, 0x3a, 0xda, 0x4b, 0x4c, 0xd0, 0xdf, 0xda, 0x91, 0x56, 0x5b, 0xe1, 0x07, + 0xb2, 0x47, 0x77, 0xb7, 0x77, 0x74, 0xf7, 0x0f, 0x4c, 0x61, 0xa0, 0x58, 0x69, 0x05, 0xb5, 0xc1, + 0xe0, 0x72, 0xac, 0x57, 0x75, 0x6f, 0x7f, 0xa4, 0x9d, 0xb3, 0x4a, 0xed, 0x81, 0x0b, 0xc5, 0x3a, + 0x3a, 0xa4, 0xbe, 0x08, 0x7a, 0xd1, 0x46, 0xbb, 0x79, 0x10, 0x40, 0x57, 0x47, 0x4f, 0x6f, 0x7f, + 0xb8, 0x33, 0xb9, 0x87, 0x90, 0x50, 0x29, 0xc4, 0xbb, 0x39, 0xe3, 0xb4, 0xdd, 0xd0, 0x8b, 0x9d, + 0x2f, 0x36, 0x1e, 0x26, 0x33, 0x6d, 0xed, 0xe1, 0xca, 0xf5, 0x60, 0xcf, 0x44, 0x22, 0xd8, 0x4f, + 0xf1, 0x8e, 0x58, 0xac, 0x3f, 0x1a, 0xc7, 0x5e, 0x8e, 0xad, 0xe9, 0x88, 0xf5, 0xcd, 0x03, 0x6d, + 0xc2, 0x9a, 0x16, 0xb1, 0xa9, 0x37, 0x14, 0xc7, 0xc8, 0x92, 0x8f, 0x76, 0x40, 0xf2, 0x26, 0xc5, + 0xa6, 0xaf, 0x66, 0xa4, 0xae, 0xe9, 0xea, 0x8b, 0xd2, 0x36, 0xbe, 0x8e, 0x18, 0xd0, 0xbe, 0x3c, + 0xa9, 0xb3, 0xb7, 0xbf, 0xaf, 0x63, 0x75, 0x47, 0x07, 0x6d, 0x89, 0xac, 0x13, 0xdb, 0x06, 0x11, + 0xa5, 0xc5, 0x36, 0xc6, 0xfe, 0xa8, 0x44, 0xbb, 0xf8, 0xbb, 0x56, 0x76, 0x88, 0x3a, 0x56, 0x63, + 0xfe, 0xa4, 0x8c, 0xab, 0xee, 0xed, 0x8d, 0x68, 0xdb, 0x47, 0xa5, 0x56, 0x9e, 0xbd, 0xa2, 0x70, + 0x7b, 0x4f, 0x5f, 0x7f, 0x34, 0xda, 0x1b, 0x23, 0x55, 0x61, 0x0a, 0xca, 0x18, 0xd8, 0x2b, 0x66, + 0xb8, 0x62, 0x8c, 0xd4, 0x89, 0x75, 0x44, 0xc0, 0x9b, 0xa0, 0xbb, 0xbf, 0x27, 0x7c, 0x2f, 0xe6, + 0x05, 0x8c, 0x74, 0x7d, 0x3d, 0xbd, 0xbd, 0xd1, 0xf4, 0x36, 0x53, 0xa1, 0x24, 0x4c, 0x31, 0xaa, + 0x88, 0xc7, 0x88, 0x8e, 0x1d, 0xed, 0x2e, 0x89, 0xf7, 0x80, 0x72, 0x59, 0xd3, 0x95, 0x8b, 0x8d, + 0xbd, 0x7d, 0xf1, 0x62, 0x6d, 0xef, 0x27, 0xf7, 0xcb, 0x32, 0x01, 0xe2, 0x68, 0x6b, 0x18, 0x3b, + 0x81, 0x37, 0x5e, 0xe2, 0x90, 0x80, 0xaf, 0x53, 0x07, 0x7e, 0x43, 0x5a, 0xa6, 0x95, 0x8e, 0xfd, + 0x41, 0xbb, 0x26, 0xdb, 0x79, 0x9b, 0x2c, 0xb3, 0x03, 0x34, 0x29, 0x47, 0x25, 0xa7, 0x5c, 0xd0, + 0x27, 0xcf, 0x77, 0x71, 0x51, 0xe2, 0x77, 0x3e, 0x77, 0x5f, 0xad, 0xe8, 0x3e, 0x91, 0xf7, 0x3c, + 0x20, 0x38, 0xdf, 0xdb, 0x8a, 0x10, 0x20, 0xa8, 0x21, 0x24, 0xe6, 0x41, 0xb0, 0x63, 0x65, 0x2f, + 0xf6, 0x0c, 0x65, 0x2a, 0xf6, 0x94, 0xce, 0x83, 0xe2, 0x62, 0x86, 0x5c, 0x7a, 0xd4, 0x49, 0xe8, + 0x03, 0xc5, 0x52, 0x7f, 0xcf, 0xea, 0x9e, 0xde, 0x7b, 0x7b, 0xa4, 0x62, 0x30, 0xa5, 0x77, 0x8d, + 0x26, 0x77, 0x6a, 0x56, 0x48, 0x0d, 0x48, 0x04, 0xfa, 0xe2, 0x5a, 0x0d, 0xbc, 0xc9, 0x76, 0xbb, + 0x24, 0x5f, 0x57, 0xb8, 0x33, 0x19, 0x60, 0x02, 0x5f, 0x6b, 0xac, 0x9d, 0x6b, 0xd0, 0xd6, 0xdf, + 0x87, 0x74, 0xaa, 0x3f, 0x12, 0x77, 0x6b, 0x23, 0x57, 0xea, 0x20, 0xd4, 0x80, 0xfa, 0x48, 0xa4, + 0x23, 0xdc, 0x1a, 0x49, 0x8e, 0x67, 0x24, 0x5a, 0x2b, 0x69, 0x58, 0x27, 0xbd, 0x09, 0x63, 0x62, + 0xfd, 0xdc, 0x53, 0x50, 0xd3, 0x25, 0xb6, 0x3b, 0x4b, 0x6d, 0xf7, 0x49, 0x6b, 0x3b, 0x62, 0xbd, + 0x50, 0xed, 0x5b, 0x9a, 0x19, 0x41, 0xcb, 0xb1, 0x39, 0x58, 0xd5, 0x78, 0xc7, 0x65, 0xfc, 0x1b, + 0x63, 0x98, 0x1e, 0x61, 0x89, 0xf0, 0x5e, 0xd3, 0xd5, 0x1b, 0x69, 0xcd, 0x4c, 0x12, 0x6b, 0x45, + 0xfc, 0x11, 0xee, 0x06, 0xda, 0x91, 0xbb, 0xa0, 0x74, 0x01, 0x0a, 0x17, 0x55, 0xf3, 0xa5, 0x5a, + 0xa9, 0xbb, 0x1f, 0xa3, 0xe2, 0x38, 0xc8, 0x0c, 0xc5, 0x3f, 0xc9, 0x59, 0x87, 0xa1, 0x5a, 0xa0, + 0xbb, 0xba, 0x37, 0x1a, 0xeb, 0xa5, 0x8a, 0xa7, 0x22, 0x36, 0x65, 0xd0, 0x2a, 0x1c, 0x46, 0xdd, + 0x88, 0x66, 0x5a, 0x40, 0xb4, 0x3f, 0xd6, 0x85, 0x08, 0x8d, 0x35, 0x4c, 0xe2, 0xbb, 0x08, 0xb8, + 0x5d, 0x83, 0x77, 0x75, 0xe3, 0xed, 0x9a, 0xcf, 0x94, 0xc1, 0x0c, 0x48, 0xea, 0xa3, 0x9d, 0x5d, + 0x2b, 0xfb, 0xd2, 0x3e, 0x91, 0xd6, 0xfb, 0x70, 0x90, 0xa5, 0xbf, 0x31, 0xc7, 0xfe, 0x2e, 0xde, + 0x47, 0x9b, 0xf2, 0xc2, 0x72, 0x3b, 0xd3, 0x5f, 0xed, 0xbd, 0x19, 0xb1, 0xb1, 0x6a, 0xe8, 0xc6, + 0x54, 0x2b, 0x33, 0x13, 0x74, 0x0c, 0x44, 0x5b, 0x7b, 0xfa, 0xa6, 0xe4, 0x41, 0x93, 0x49, 0x08, + 0x89, 0x7c, 0xda, 0xa7, 0xb5, 0xbf, 0xbd, 0xab, 0xb7, 0xa4, 0xbd, 0x83, 0x87, 0x1d, 0x60, 0xfa, + 0xbe, 0xde, 0x48, 0x47, 0xea, 0x3b, 0x8c, 0x6d, 0xa6, 0x51, 0x96, 0xf2, 0x58, 0xdd, 0x71, 0x5f, + 0x5b, 0x2f, 0x22, 0x42, 0xca, 0x23, 0x8e, 0xf0, 0x5e, 0x4d, 0xd9, 0xa6, 0x7d, 0xba, 0xba, 0x3b, + 0x62, 0xe9, 0x1c, 0xbb, 0x5a, 0x53, 0x23, 0x47, 0x94, 0x9f, 0xf1, 0xd9, 0xdd, 0xd5, 0xb7, 0x32, + 0xe3, 0x93, 0x66, 0x24, 0xec, 0xea, 0xd6, 0xa8, 0x04, 0xf7, 0xf6, 0xc6, 0x56, 0xb7, 0x75, 0xf4, + 0xac, 0xec, 0x14, 0x69, 0x56, 0xf6, 0x46, 0x09, 0x6c, 0xad, 0xed, 0x71, 0xa4, 0x05, 0x7d, 0x12, + 0xf4, 0xc7, 0xbb, 0x22, 0x34, 0x1d, 0x42, 0x6b, 0xac, 0x17, 0x3f, 0x71, 0x44, 0x4b, 0xd0, 0xd9, + 0xd5, 0xde, 0x2e, 0x41, 0x14, 0x51, 0x7b, 0x1a, 0xe0, 0x92, 0xd8, 0x0f, 0x3d, 0xbd, 0x99, 0xd4, + 0x10, 0x1b, 0x9b, 0xa4, 0xa3, 0xdd, 0xad, 0xab, 0x3b, 0xa4, 0x54, 0xfc, 0xb4, 0x7f, 0x2f, 0x4e, + 0x95, 0x9f, 0xe9, 0x9f, 0x86, 0xd9, 0x14, 0xef, 0x74, 0x73, 0xea, 0x97, 0x8b, 0xce, 0x97, 0xee, + 0xed, 0x8a, 0x77, 0x72, 0xe9, 0x7d, 0x5d, 0xe1, 0x1e, 0x1c, 0x09, 0x58, 0xba, 0x3b, 0x14, 0xeb, + 0xed, 0xc6, 0x16, 0xb7, 0xb6, 0x23, 0xd9, 0x20, 0xcc, 0x42, 0x04, 0xca, 0xf0, 0x5f, 0x19, 0xe9, + 0xed, 0x4b, 0xd7, 0x28, 0x33, 0x17, 0x11, 0xa2, 0x95, 0x9d, 0x19, 0xa0, 0x61, 0xad, 0xd8, 0x42, + 0xce, 0xeb, 0x23, 0x82, 0x50, 0x68, 0xc1, 0x49, 0x20, 0x60, 0x34, 0x24, 0x18, 0xdd, 0xd3, 0x7c, + 0x05, 0x92, 0x2e, 0xab, 0x26, 0x69, 0x3c, 0x75, 0xd4, 0x49, 0x5a, 0xc3, 0xc7, 0x9c, 0xa4, 0x95, + 0xda, 0x9e, 0x6c, 0xa6, 0xe0, 0x4c, 0x1e, 0x52, 0x3e, 0x0d, 0x5a, 0x0d, 0x93, 0x1e, 0xc9, 0x42, + 0xa1, 0xba, 0x57, 0x8c, 0x07, 0x0d, 0xde, 0x91, 0x2e, 0x24, 0x23, 0xed, 0x1d, 0x62, 0x6d, 0x07, + 0xc9, 0x5b, 0x66, 0x3f, 0xa4, 0x07, 0x4f, 0x9f, 0x98, 0x6a, 0xc0, 0xd9, 0xdb, 0xd6, 0x37, 0x9f, + 0xf7, 0xac, 0x37, 0xf1, 0xc0, 0x47, 0xaa, 0x4e, 0x9b, 0xcb, 0xab, 0x1a, 0x9b, 0x83, 0xd0, 0x44, + 0x8b, 0x4d, 0x9d, 0xc8, 0xd9, 0x10, 0x75, 0x47, 0xcf, 0x2e, 0x8d, 0xba, 0x20, 0x4d, 0x8b, 0x77, + 0x24, 0x29, 0x31, 0x4d, 0x87, 0x38, 0xb1, 0xdc, 0x8b, 0x30, 0x4a, 0x91, 0x9f, 0xee, 0x95, 0xd4, + 0xb8, 0x8e, 0x54, 0xe3, 0xe2, 0xd8, 0xe7, 0x3d, 0x50, 0x15, 0x8f, 0x77, 0x74, 0x63, 0xd1, 0x38, + 0x09, 0xc5, 0x3a, 0xfa, 0x69, 0x67, 0x3d, 0x71, 0x5a, 0x1d, 0x52, 0xfd, 0xf2, 0x60, 0xc7, 0x3d, + 0xfd, 0x48, 0xfc, 0xa0, 0xa9, 0xb5, 0x87, 0x30, 0x8d, 0x5b, 0x28, 0x61, 0xba, 0xcc, 0x16, 0x09, + 0x6e, 0x2d, 0x33, 0x13, 0xca, 0x22, 0x95, 0x56, 0x6a, 0x0d, 0x51, 0xb7, 0x72, 0x97, 0x69, 0x54, + 0xa4, 0x63, 0x20, 0x8e, 0xdc, 0x57, 0x9f, 0xd4, 0xdb, 0xcf, 0xad, 0xe2, 0x1d, 0xea, 0xc9, 0x5a, + 0x8b, 0x6d, 0xfe, 0x8c, 0x49, 0xda, 0x36, 0xf9, 0xe9, 0x39, 0xc7, 0x91, 0xa7, 0xe8, 0x45, 0x64, + 0xeb, 0xc6, 0x8e, 0xe6, 0xc9, 0x26, 0x09, 0x8c, 0x74, 0x47, 0x66, 0xd2, 0x19, 0xd1, 0xab, 0x4b, + 0x34, 0x62, 0x93, 0x2c, 0x53, 0x3b, 0xf1, 0x91, 0xee, 0x04, 0xcc, 0x3c, 0xc5, 0x48, 0x2c, 0xeb, + 0xc5, 0xd6, 0xf6, 0xc6, 0x9a, 0xa2, 0x1d, 0x2b, 0xa7, 0x75, 0x53, 0xa4, 0x97, 0x70, 0x8a, 0x50, + 0x75, 0x5a, 0x40, 0x1f, 0x56, 0x20, 0xae, 0x85, 0x2c, 0x9b, 0x12, 0xd2, 0xdc, 0x1d, 0x0d, 0xb6, + 0xf6, 0x4d, 0x8b, 0xee, 0x8d, 0xc4, 0xbd, 0x5d, 0xf1, 0x65, 0xad, 0xd1, 0x69, 0xfe, 0x41, 0x5e, + 0xe8, 0x9b, 0xe6, 0xb9, 0x0c, 0x3b, 0xe9, 0x8e, 0x46, 0xcc, 0x5f, 0x70, 0x1f, 0xd4, 0xe7, 0x4b, + 0x42, 0x03, 0x81, 0x8e, 0x7b, 0x9d, 0xf3, 0xa7, 0xf8, 0xd4, 0x61, 0x87, 0x93, 0x17, 0x52, 0x9e, + 0x30, 0x52, 0x8d, 0xfb, 0x92, 0x79, 0x30, 0x93, 0x94, 0x3c, 0xb0, 0x30, 0x95, 0x69, 0x40, 0x2a, + 0x88, 0x18, 0xd9, 0xb7, 0x32, 0xd6, 0x25, 0xf0, 0x01, 0xe1, 0xdb, 0x9e, 0x02, 0xe3, 0x25, 0x04, + 0x5a, 0x80, 0x52, 0x50, 0xe9, 0x0a, 0x29, 0x45, 0x48, 0x52, 0x09, 0xa6, 0xd1, 0x6f, 0x11, 0x3d, + 0x45, 0xc4, 0x2b, 0x52, 0x33, 0x30, 0x92, 0xb0, 0x30, 0xf2, 0x27, 0xf1, 0xfb, 0xa2, 0x1d, 0xe9, + 0x60, 0x89, 0x49, 0x48, 0xc6, 0xf9, 0x0f, 0xaa, 0xa3, 0x2b, 0xa3, 0x94, 0xa9, 0x84, 0x0b, 0x79, + 0xc7, 0x7e, 0xa9, 0x0b, 0x11, 0xe3, 0x72, 0xfe, 0x7d, 0xfd, 0x6d, 0x97, 0x09, 0x42, 0xbf, 0x68, + 0xa4, 0xb5, 0xa7, 0x03, 0xe2, 0x48, 0x29, 0x11, 0x07, 0x28, 0x8a, 0xd4, 0xd6, 0x3b, 0x20, 0x55, + 0x22, 0xdc, 0x23, 0xb4, 0xb4, 0x39, 0x2d, 0xc1, 0x72, 0x24, 0x65, 0x4d, 0x58, 0x9b, 0x8e, 0x1e, + 0x04, 0xeb, 0x67, 0x07, 0x21, 0x02, 0xf7, 0x21, 0x8a, 0xa7, 0xc0, 0x40, 0xed, 0xa2, 0xfc, 0x93, + 0xc7, 0x9e, 0x38, 0x1a, 0x20, 0x43, 0x20, 0x21, 0x57, 0x28, 0xda, 0xde, 0xf7, 0xd9, 0x0d, 0xa3, + 0x9c, 0xbf, 0xda, 0xd5, 0xd3, 0xde, 0x4b, 0xdd, 0x4b, 0xa4, 0x91, 0x07, 0x35, 0x0e, 0x4c, 0x64, + 0xfd, 0x10, 0xb5, 0x89, 0x4e, 0x10, 0x61, 0x4b, 0xc1, 0x8d, 0xe3, 0x24, 0xc7, 0x42, 0xac, 0x63, + 0x65, 0x07, 0x8e, 0x5c, 0x5a, 0x36, 0x96, 0xea, 0x6b, 0xaa, 0x97, 0x35, 0xc2, 0xbd, 0x1d, 0x5d, + 0xb1, 0x76, 0xa9, 0x63, 0x65, 0x67, 0xaf, 0xb4, 0xb2, 0x55, 0xac, 0x19, 0x77, 0xf5, 0xac, 0xec, + 0xed, 0x8e, 0xc6, 0x3a, 0x3a, 0x3b, 0x78, 0x62, 0x84, 0x14, 0xe0, 0x99, 0x74, 0xd3, 0xf0, 0x9a, + 0x3a, 0x03, 0x66, 0xf4, 0x51, 0xdf, 0xea, 0x2e, 0x5e, 0xe4, 0xee, 0x6d, 0x8b, 0xb7, 0x22, 0xd7, + 0x87, 0x99, 0xb5, 0x66, 0x8c, 0xbf, 0x74, 0xbc, 0x30, 0xa1, 0x5c, 0x3a, 0x84, 0x10, 0xf4, 0xde, + 0x18, 0x8d, 0x9d, 0xde, 0x58, 0x7b, 0x06, 0xa4, 0x2e, 0x9d, 0xe0, 0x05, 0xce, 0x24, 0xc3, 0x69, + 0xb6, 0x9f, 0x3a, 0x01, 0x64, 0x00, 0x0b, 0x39, 0x10, 0xe6, 0xe1, 0xfa, 0xa3, 0x74, 0xda, 0x8b, + 0x99, 0xc9, 0xf6, 0x2e, 0x31, 0x07, 0x21, 0x75, 0x11, 0xdc, 0xf3, 0x6d, 0x8d, 0xab, 0xe3, 0x29, + 0x72, 0xdc, 0xdf, 0x83, 0xcc, 0x80, 0x58, 0x58, 0xaf, 0x59, 0xde, 0x84, 0x53, 0xce, 0xca, 0xd5, + 0x88, 0x85, 0x49, 0x90, 0x01, 0xd1, 0x4b, 0x24, 0xf6, 0x49, 0x7a, 0xc6, 0x22, 0x67, 0x1b, 0x52, + 0x84, 0xd5, 0xd8, 0x0e, 0xa4, 0x64, 0x3d, 0x29, 0x8e, 0x4a, 0x84, 0x74, 0xc5, 0xb1, 0x71, 0x08, + 0x29, 0xa6, 0xda, 0xc2, 0x0f, 0xf9, 0x02, 0x24, 0x22, 0x88, 0xbd, 0xed, 0x82, 0xfa, 0x0a, 0xdf, + 0xd4, 0xb4, 0x80, 0x1d, 0x25, 0x7c, 0x32, 0xb2, 0xa1, 0x24, 0x53, 0xc8, 0x20, 0xf5, 0x26, 0x71, + 0xb4, 0x38, 0x96, 0x20, 0x79, 0xde, 0x6a, 0xda, 0x62, 0xbd, 0x56, 0x71, 0x42, 0x96, 0x95, 0x91, + 0x2e, 0x77, 0x5f, 0x67, 0x07, 0xb2, 0xf5, 0x21, 0xac, 0x74, 0x27, 0x8b, 0x1f, 0x82, 0xd4, 0x22, + 0x4e, 0x10, 0xe0, 0xe3, 0xe8, 0x87, 0x04, 0x7b, 0x65, 0x9a, 0x38, 0x66, 0xf2, 0x4c, 0xa2, 0x22, + 0x54, 0x64, 0xd2, 0xa7, 0xaf, 0x23, 0x4c, 0x44, 0x3d, 0x15, 0x5b, 0x30, 0x55, 0xee, 0x08, 0x8a, + 0x03, 0xdd, 0x29, 0xf6, 0x32, 0xd5, 0x7d, 0x2b, 0x2f, 0xe9, 0xb9, 0x14, 0xbb, 0xc5, 0x00, 0x20, + 0x04, 0xd1, 0xf6, 0x2e, 0x64, 0xc2, 0xa5, 0x3d, 0x83, 0x52, 0x4f, 0xe7, 0xce, 0xa6, 0x96, 0x70, + 0x09, 0xab, 0x36, 0x35, 0x58, 0xe3, 0x80, 0x3e, 0x23, 0x14, 0x61, 0x4b, 0x5d, 0x34, 0xd5, 0x73, + 0x0a, 0xab, 0x27, 0x82, 0x56, 0xb6, 0xa6, 0x90, 0x3f, 0x79, 0xe6, 0x4c, 0x1b, 0x00, 0xc8, 0x20, + 0xd0, 0x40, 0x4c, 0x25, 0x9e, 0xc6, 0x19, 0x4e, 0xcd, 0x79, 0x3a, 0x9b, 0x78, 0x49, 0x65, 0xa6, + 0xf0, 0x8c, 0x22, 0x34, 0xc5, 0x38, 0xe2, 0xe0, 0xe4, 0x46, 0xc4, 0x69, 0x3e, 0xeb, 0x58, 0x3d, + 0x2d, 0xf1, 0x25, 0xfc, 0x65, 0xba, 0xe3, 0x98, 0xd1, 0x44, 0x20, 0x8b, 0x79, 0x3a, 0xed, 0x13, + 0x25, 0x9d, 0x06, 0x51, 0xfa, 0x08, 0xc3, 0x9c, 0x11, 0x38, 0x4d, 0xa9, 0xa7, 0xb0, 0xa7, 0x53, + 0xcb, 0x42, 0x5e, 0x35, 0xcd, 0xbe, 0x89, 0x20, 0x22, 0xd6, 0x5c, 0xc9, 0x7e, 0x04, 0x8f, 0x2b, + 0xd5, 0x95, 0x9d, 0xad, 0x7d, 0xec, 0x2d, 0x30, 0x39, 0xc5, 0xc1, 0x30, 0x69, 0xd3, 0x38, 0x08, + 0x4a, 0x30, 0xa5, 0x33, 0x4b, 0xa6, 0x65, 0x9d, 0x1a, 0xe9, 0x53, 0x98, 0x60, 0xad, 0x79, 0x24, + 0x9e, 0xaf, 0x44, 0x51, 0x5e, 0x23, 0x7e, 0xe2, 0x74, 0xdd, 0xd4, 0x74, 0x69, 0x6e, 0x39, 0x45, + 0x1e, 0x08, 0x5f, 0xfa, 0x78, 0x74, 0xa4, 0xf8, 0xe7, 0x24, 0x1d, 0x25, 0x62, 0x91, 0xa2, 0x95, + 0x0b, 0x3e, 0x47, 0x9c, 0xb2, 0xcb, 0xc4, 0x41, 0x8e, 0x36, 0x19, 0x3c, 0x35, 0x30, 0x83, 0x11, + 0xc5, 0xd1, 0xcb, 0xa3, 0x9a, 0xb6, 0xfe, 0x10, 0xaf, 0x4e, 0xb3, 0x52, 0xaa, 0xce, 0x69, 0xb6, + 0xfe, 0x52, 0x64, 0x67, 0x1e, 0x7f, 0x3a, 0x5e, 0x09, 0x86, 0xff, 0x33, 0xb0, 0x9c, 0x98, 0xff, + 0xcf, 0x08, 0x42, 0x89, 0xe0, 0x33, 0x42, 0x7c, 0x24, 0x26, 0x68, 0xf3, 0xd3, 0xd4, 0x90, 0x4b, + 0x45, 0x07, 0x11, 0xce, 0x47, 0x59, 0xab, 0xda, 0xfa, 0x20, 0x79, 0xa6, 0x55, 0x38, 0x90, 0x6b, + 0x13, 0x8e, 0x46, 0xac, 0x62, 0x9a, 0x57, 0x4b, 0x31, 0xa8, 0x97, 0x78, 0x34, 0x75, 0xa2, 0xf4, + 0x8c, 0xf1, 0x88, 0x1f, 0xa1, 0xc4, 0xd5, 0x3c, 0xd9, 0x53, 0x6a, 0xa8, 0xe9, 0x48, 0x72, 0x60, + 0xf0, 0xf5, 0x65, 0xcb, 0xbe, 0xa1, 0x49, 0xfd, 0x49, 0xb6, 0x2c, 0x29, 0x89, 0x9a, 0x44, 0x60, + 0x06, 0x53, 0xc8, 0x7a, 0x9f, 0x82, 0x7e, 0xde, 0x2a, 0xd5, 0x97, 0x54, 0x8e, 0x48, 0x2c, 0x43, + 0x60, 0x16, 0x3e, 0xc1, 0x50, 0x0a, 0xf1, 0x9d, 0x93, 0x7a, 0x99, 0xa8, 0xb7, 0xf7, 0x76, 0x68, + 0x9a, 0xb9, 0x2e, 0x52, 0xe4, 0x60, 0x3e, 0xe9, 0xc8, 0x42, 0x29, 0x51, 0x2c, 0x14, 0x11, 0x26, + 0x68, 0xaa, 0xaa, 0x71, 0x16, 0xb4, 0xbb, 0x0a, 0xda, 0xe7, 0x2f, 0x86, 0x60, 0x2d, 0x54, 0x69, + 0x7f, 0x10, 0x6c, 0x82, 0x3a, 0xed, 0x0f, 0xea, 0x96, 0x43, 0x63, 0x2d, 0xd4, 0xd4, 0x43, 0x73, + 0x3d, 0x54, 0x09, 0xe4, 0x67, 0x2d, 0x84, 0x13, 0x33, 0xba, 0x45, 0xba, 0xbe, 0xa0, 0xef, 0xfa, + 0xf9, 0x15, 0xa6, 0xf8, 0xca, 0xbb, 0x03, 0x88, 0xcf, 0x25, 0x91, 0x9e, 0xbb, 0x51, 0x7a, 0x47, + 0xff, 0x82, 0x76, 0xf2, 0x6b, 0xea, 0x0a, 0x33, 0x0c, 0xc9, 0xa3, 0xb4, 0xbc, 0xa4, 0x3c, 0x32, + 0xc0, 0xbe, 0x8d, 0x0d, 0xac, 0x97, 0xbc, 0x85, 0x76, 0x5e, 0xf1, 0xf7, 0xed, 0x74, 0x88, 0x36, + 0xf5, 0x5d, 0xc7, 0x5b, 0xbf, 0xd2, 0xa1, 0xc8, 0x3b, 0x8a, 0x2f, 0x08, 0xd6, 0xb3, 0xf2, 0x24, + 0x43, 0xc7, 0xc6, 0x98, 0xd8, 0xd9, 0xd5, 0x27, 0x21, 0x03, 0x14, 0x27, 0xf1, 0xbd, 0xc4, 0x04, + 0xb5, 0x01, 0x68, 0x6a, 0x10, 0x1d, 0xc1, 0xea, 0x93, 0x48, 0xd2, 0x02, 0x45, 0x85, 0x09, 0xb8, + 0xfd, 0x15, 0xac, 0x38, 0x6a, 0xba, 0x24, 0x33, 0xf4, 0x0b, 0x66, 0xa4, 0x4b, 0x8e, 0x5a, 0x4a, + 0xd7, 0x54, 0x93, 0x11, 0x20, 0xc8, 0x0b, 0x7b, 0x37, 0x03, 0xcf, 0xcf, 0x0d, 0x38, 0xb5, 0x24, + 0x73, 0x6f, 0xa6, 0xdd, 0x6d, 0x54, 0x00, 0x7f, 0x05, 0xa7, 0x7c, 0x7d, 0x35, 0xf9, 0x55, 0xcf, + 0xf3, 0x19, 0x62, 0x80, 0xd8, 0x0c, 0x47, 0x64, 0x0b, 0x7d, 0x7d, 0xb5, 0xd4, 0x25, 0x92, 0xaf, + 0x23, 0x12, 0xc5, 0xdc, 0x82, 0xb5, 0x52, 0xb2, 0x47, 0xb0, 0xcb, 0x62, 0xac, 0xd2, 0xed, 0x13, + 0xf6, 0x32, 0x8a, 0x25, 0x3a, 0x75, 0x2d, 0xb4, 0xbc, 0xce, 0xf9, 0xa6, 0x60, 0x93, 0x94, 0xec, + 0x2f, 0x0c, 0x0a, 0xd6, 0x36, 0xd5, 0x36, 0x9b, 0xea, 0x96, 0xa3, 0xb3, 0xae, 0x37, 0xd6, 0xd6, + 0xd5, 0x8e, 0x31, 0x1a, 0x6b, 0xf1, 0xab, 0xb1, 0x23, 0xd6, 0xdd, 0x45, 0xf1, 0x6b, 0xea, 0xf1, + 0xab, 0xa6, 0xab, 0x8f, 0x5a, 0x83, 0x9f, 0xb5, 0x01, 0xfc, 0xac, 0xed, 0xd1, 0xbe, 0x9a, 0x28, + 0xb0, 0xa9, 0xb3, 0xf7, 0x5e, 0xa9, 0x3e, 0x78, 0x9b, 0x44, 0xe7, 0x9e, 0xfb, 0x98, 0x55, 0xeb, + 0xef, 0x33, 0x35, 0xa7, 0x82, 0x32, 0x31, 0xa1, 0xab, 0x27, 0xd4, 0x6b, 0x0a, 0xa6, 0x82, 0x68, + 0x5e, 0x24, 0xb6, 0x91, 0x14, 0x27, 0x7d, 0x5d, 0xed, 0x22, 0xd2, 0xf5, 0x7d, 0x34, 0xc7, 0xc4, + 0x51, 0x40, 0x32, 0x55, 0x2d, 0x93, 0x06, 0xb4, 0x3f, 0xe9, 0x3e, 0xed, 0x0f, 0xd3, 0x32, 0xa2, + 0xdc, 0x81, 0x6c, 0x4a, 0x31, 0x6b, 0xd9, 0x6e, 0x49, 0xc6, 0x71, 0xf1, 0x1c, 0xd0, 0x45, 0x3d, + 0xd4, 0x77, 0x4b, 0x32, 0xbe, 0xa9, 0x2e, 0x23, 0x13, 0x6c, 0x26, 0x0e, 0x14, 0x4a, 0xca, 0x43, + 0x23, 0xe9, 0x6f, 0x0a, 0x7a, 0x33, 0xe3, 0x10, 0x69, 0x17, 0x9b, 0x0e, 0xa7, 0xc5, 0xfa, 0xea, + 0x25, 0xb1, 0x90, 0x8e, 0xb5, 0x4f, 0x8f, 0xd5, 0x70, 0x49, 0x2c, 0x4d, 0x64, 0xca, 0x8c, 0xf5, + 0xd5, 0x8c, 0x12, 0xdb, 0xda, 0x30, 0xe2, 0xbd, 0x31, 0xe4, 0xc5, 0x45, 0xa9, 0xf8, 0x8d, 0x23, + 0x38, 0x1d, 0x35, 0xa3, 0xd8, 0x7b, 0xf1, 0x2f, 0x15, 0x99, 0x0b, 0x67, 0x9f, 0x29, 0xd1, 0x33, + 0xca, 0x8f, 0x68, 0x7f, 0xa9, 0x24, 0x5c, 0x93, 0x94, 0x6f, 0x66, 0xb2, 0x60, 0x55, 0x3a, 0x59, + 0x9f, 0xf6, 0x97, 0xac, 0x7f, 0x6b, 0x2c, 0xd6, 0x7a, 0x9f, 0x33, 0xe5, 0x2b, 0x88, 0x0c, 0x65, + 0x35, 0x7f, 0x7a, 0xdb, 0xab, 0xff, 0x42, 0x26, 0x7d, 0x2b, 0xbb, 0xba, 0xa4, 0xcf, 0x93, 0xcb, + 0x6d, 0xcd, 0x52, 0xa9, 0xf6, 0x87, 0x89, 0xb1, 0x47, 0xe3, 0x12, 0xe2, 0xba, 0xa9, 0xa9, 0x81, + 0x3a, 0x9c, 0xf0, 0x86, 0xb4, 0xa8, 0xad, 0x97, 0x0e, 0x5a, 0xc9, 0x89, 0x4e, 0x56, 0xd7, 0x56, + 0x90, 0x27, 0x59, 0x44, 0x40, 0x1c, 0x0d, 0x5e, 0x3e, 0x55, 0x6a, 0xc8, 0x4a, 0x4e, 0x74, 0x6a, + 0xa9, 0xd0, 0xa5, 0xa5, 0xaa, 0xb9, 0x7c, 0x2a, 0x6d, 0x3c, 0x4b, 0x4e, 0x74, 0x68, 0x69, 0xd0, + 0xa5, 0xa5, 0x69, 0x4e, 0xa6, 0x21, 0x34, 0xc6, 0x38, 0xf4, 0x4d, 0x14, 0xc7, 0x25, 0x05, 0x35, + 0x20, 0xdc, 0xe7, 0xc2, 0x71, 0x8d, 0x7d, 0xd1, 0xda, 0x15, 0x9f, 0x6f, 0xf2, 0xd5, 0x6a, 0xe1, + 0x28, 0xf0, 0x47, 0xa2, 0x74, 0x4e, 0x7e, 0x59, 0x6a, 0x66, 0x69, 0x4f, 0xd2, 0x70, 0x13, 0xd4, + 0x2d, 0x83, 0x3a, 0x56, 0x63, 0xa4, 0x7c, 0x82, 0x5e, 0xb6, 0xc3, 0x90, 0xf4, 0x40, 0x1a, 0x55, + 0x5a, 0xd6, 0x82, 0xde, 0x5f, 0x85, 0xaf, 0x12, 0x46, 0x64, 0x78, 0x97, 0x93, 0x77, 0x03, 0x34, + 0x50, 0xaf, 0x67, 0x78, 0x2f, 0x42, 0xef, 0xaf, 0x7a, 0xe1, 0xab, 0x98, 0xa0, 0x01, 0x82, 0x55, + 0x50, 0x45, 0xfd, 0x2b, 0x3a, 0x41, 0xa8, 0xa2, 0x79, 0x58, 0x89, 0x15, 0xe9, 0x16, 0xa4, 0xd9, + 0x40, 0x05, 0x90, 0x15, 0x8a, 0x60, 0x35, 0x54, 0x35, 0x55, 0xd7, 0xd7, 0x5f, 0x12, 0x97, 0xf2, + 0xa4, 0x88, 0x92, 0x09, 0x6e, 0x6b, 0x86, 0x64, 0xef, 0xc1, 0x6d, 0xd8, 0x77, 0xc2, 0xca, 0x4f, + 0x55, 0x4d, 0x49, 0x09, 0x36, 0xf1, 0xd6, 0x5b, 0xd9, 0xa4, 0x85, 0x84, 0x6d, 0x27, 0xc6, 0x81, + 0x1a, 0x6e, 0xc2, 0x49, 0x2f, 0xd2, 0xa1, 0xcd, 0x7f, 0x75, 0xc8, 0x6c, 0x06, 0x3b, 0x88, 0x16, + 0xf4, 0xc4, 0x85, 0x42, 0x1c, 0xea, 0x58, 0x7f, 0x9d, 0xd4, 0xf7, 0x07, 0x52, 0xeb, 0x48, 0x04, + 0x14, 0x9a, 0x3d, 0xe9, 0xad, 0xcd, 0xbc, 0x2c, 0x19, 0xa6, 0x6d, 0x1c, 0x50, 0x03, 0xca, 0x22, + 0x48, 0x16, 0x0a, 0x22, 0xed, 0xf3, 0x61, 0xa5, 0xb6, 0x8a, 0x40, 0xc1, 0xc9, 0x22, 0x70, 0x6a, + 0x8a, 0xb4, 0x4b, 0x1c, 0x4b, 0x12, 0xa5, 0x45, 0x3a, 0x5a, 0x49, 0xeb, 0x73, 0xf9, 0x2c, 0xa6, + 0x24, 0x6d, 0x43, 0xe2, 0xd5, 0x23, 0x65, 0xa8, 0xee, 0x39, 0x38, 0x96, 0x0c, 0x26, 0x03, 0x0b, + 0x55, 0xb7, 0x37, 0x2f, 0xaf, 0x0f, 0xd4, 0x37, 0x4f, 0x0d, 0x99, 0x77, 0x49, 0x50, 0x2a, 0x4f, + 0x12, 0xda, 0xa6, 0x2c, 0x06, 0x60, 0xa2, 0xfe, 0x88, 0xd6, 0xf4, 0xb4, 0x1e, 0xcc, 0x99, 0x5e, + 0x23, 0xa0, 0x9a, 0xf5, 0xcf, 0x07, 0xd2, 0x8f, 0x24, 0x97, 0xe8, 0xfa, 0xa6, 0x04, 0x8b, 0x85, + 0x04, 0xc1, 0x62, 0xb4, 0xf3, 0x12, 0x9d, 0xd0, 0xe6, 0xf5, 0x71, 0x1a, 0x4d, 0x6f, 0x57, 0x91, + 0x5a, 0x3b, 0xe9, 0x43, 0xe4, 0x25, 0x44, 0x6f, 0x4d, 0x2e, 0x03, 0xb4, 0xb7, 0xc6, 0x5b, 0x99, + 0xcc, 0xd2, 0xb2, 0x15, 0x2d, 0x67, 0x34, 0x73, 0x38, 0x91, 0x68, 0x14, 0x7f, 0xd9, 0x0b, 0x6b, + 0x49, 0xaa, 0xf7, 0x35, 0x1d, 0xda, 0xaa, 0x4b, 0xdf, 0xe5, 0xe2, 0xb4, 0xb6, 0xa1, 0xd8, 0xd0, + 0xcf, 0x3a, 0x0d, 0x66, 0x93, 0xfb, 0x32, 0x70, 0x5d, 0xd3, 0x2f, 0x4e, 0x2b, 0x39, 0xb3, 0xd0, + 0xe4, 0x12, 0x10, 0x09, 0x27, 0xe9, 0x75, 0x1e, 0x06, 0x4b, 0xb2, 0x69, 0x49, 0x5e, 0x8d, 0x3d, + 0x97, 0xb3, 0x70, 0x9e, 0x66, 0xc1, 0x4c, 0xa6, 0xb4, 0x0f, 0xcf, 0xc0, 0x92, 0xf8, 0xc6, 0x74, + 0x28, 0xfa, 0x23, 0xe4, 0x93, 0x66, 0x26, 0x88, 0x1d, 0x99, 0x9e, 0x5a, 0xe3, 0xd7, 0x32, 0x05, + 0x06, 0x94, 0x4b, 0xa3, 0xfd, 0x49, 0x31, 0x07, 0x48, 0x5f, 0xa1, 0x41, 0x92, 0x3b, 0x4e, 0x43, + 0x17, 0xcd, 0xaa, 0x4b, 0x3a, 0x6f, 0x67, 0x27, 0x21, 0x17, 0x86, 0xb9, 0x90, 0x04, 0xf4, 0x88, + 0xfe, 0xc0, 0x78, 0x97, 0x4f, 0xce, 0x8c, 0x0c, 0x40, 0x10, 0x07, 0x07, 0x12, 0x9a, 0x74, 0x53, + 0x82, 0x1d, 0xdd, 0x97, 0xac, 0x1a, 0xcd, 0x27, 0xdf, 0xde, 0x35, 0x0c, 0xa1, 0x78, 0x5f, 0x47, + 0x24, 0x04, 0xd5, 0x98, 0x8a, 0x95, 0x13, 0xc8, 0xc9, 0xd7, 0x72, 0xfc, 0x8e, 0xf8, 0x2d, 0x98, + 0x5f, 0x13, 0xa2, 0x18, 0x79, 0x23, 0xaf, 0x17, 0x6e, 0x8d, 0xb5, 0x11, 0x07, 0xdf, 0xdd, 0xda, + 0x03, 0x4d, 0xfd, 0x62, 0x8d, 0x66, 0xba, 0xbe, 0x6b, 0xda, 0x7a, 0xc4, 0xa5, 0xcb, 0x11, 0x99, + 0xeb, 0x0f, 0x53, 0x96, 0x1d, 0x2e, 0x5d, 0x75, 0x80, 0x69, 0xa2, 0x2a, 0x08, 0xe1, 0x34, 0xf5, + 0x39, 0x9d, 0xc9, 0x4f, 0xeb, 0xfe, 0x53, 0x3e, 0xc2, 0x7e, 0x58, 0x47, 0x5f, 0x47, 0x6b, 0x0c, + 0xc1, 0x79, 0x89, 0x11, 0x31, 0x27, 0x85, 0xcf, 0x9f, 0x62, 0x3d, 0x6c, 0xc1, 0xcd, 0x37, 0xdf, + 0x58, 0x8c, 0x3f, 0x37, 0x49, 0xa0, 0xb1, 0x43, 0x29, 0x4b, 0x62, 0xe9, 0x7c, 0x9a, 0x24, 0x09, + 0x96, 0xc7, 0x3b, 0x49, 0x64, 0x44, 0xd6, 0xbf, 0x0f, 0x93, 0xb5, 0xdd, 0x47, 0x43, 0x8f, 0x34, + 0x25, 0x8c, 0xd6, 0xf7, 0xf6, 0x10, 0x10, 0xa0, 0xaa, 0xa1, 0xd1, 0x57, 0x25, 0x4d, 0xdd, 0xd1, + 0x46, 0x1f, 0xbc, 0xab, 0x7f, 0x81, 0xe4, 0x2c, 0xbb, 0xa9, 0xa4, 0xf4, 0xe6, 0x12, 0x2c, 0x6d, + 0x11, 0xed, 0x5d, 0x4b, 0x09, 0x9a, 0xa4, 0x85, 0x09, 0x74, 0xdc, 0xfb, 0x39, 0x96, 0xfb, 0xd2, + 0x91, 0x90, 0xb2, 0xd5, 0xf6, 0xc4, 0x35, 0x65, 0x70, 0x85, 0x46, 0xfb, 0x52, 0xc1, 0x15, 0x92, + 0xc6, 0x19, 0x8b, 0x10, 0x49, 0xe3, 0x8b, 0x53, 0x5f, 0x5a, 0x02, 0x6c, 0xe1, 0xca, 0xce, 0x8e, + 0xf6, 0x7e, 0x1a, 0x3a, 0x4c, 0x7e, 0xab, 0x68, 0x49, 0x53, 0xb0, 0x62, 0x1c, 0xb3, 0xa0, 0x1d, + 0x0a, 0x0b, 0x0b, 0xa5, 0x86, 0xde, 0x70, 0x98, 0x26, 0x18, 0x5a, 0x3c, 0xac, 0x30, 0x11, 0xd3, + 0x79, 0x69, 0x3f, 0x57, 0x06, 0x6e, 0x6f, 0x68, 0x58, 0x4c, 0x75, 0x10, 0x03, 0x8e, 0xaa, 0x51, + 0x55, 0xc1, 0x66, 0x87, 0x68, 0x1b, 0xd3, 0x74, 0xff, 0xf4, 0x9a, 0x6e, 0x86, 0x7d, 0x96, 0xf4, + 0xb2, 0x87, 0xb4, 0xac, 0x2f, 0xcc, 0xea, 0x5c, 0x13, 0x2d, 0x8d, 0x69, 0xfc, 0x1e, 0xce, 0x1f, + 0xa6, 0xd4, 0x2a, 0x29, 0xd1, 0x1d, 0xf6, 0x10, 0x12, 0x10, 0x22, 0x29, 0xe2, 0x6a, 0x2c, 0xe5, + 0x2d, 0xb4, 0xe8, 0xa4, 0x14, 0xe8, 0xa8, 0x98, 0xb2, 0xb0, 0xb9, 0xba, 0x6b, 0xe5, 0xea, 0x6e, + 0x12, 0x8b, 0x62, 0xb7, 0x70, 0x13, 0xe9, 0x3b, 0xde, 0x1a, 0x9e, 0xf2, 0x9d, 0x54, 0x47, 0x69, + 0x53, 0xdc, 0x00, 0x1b, 0xb0, 0xc1, 0x48, 0x69, 0x3d, 0x55, 0x9a, 0x1c, 0x50, 0xf8, 0xbc, 0x5b, + 0xd2, 0xd1, 0xb0, 0x3e, 0x44, 0x40, 0xb4, 0x7e, 0x0b, 0xf4, 0x73, 0x37, 0x91, 0xc4, 0x80, 0xe2, + 0x17, 0x48, 0x45, 0xbc, 0xe1, 0x41, 0x0b, 0x6c, 0xe8, 0xe8, 0x21, 0xcf, 0xcb, 0x98, 0xd5, 0xd1, + 0xf4, 0x6b, 0x29, 0xba, 0xdf, 0xcd, 0xfb, 0xb9, 0xfa, 0xb4, 0x75, 0x02, 0x4a, 0xd0, 0x4c, 0x82, + 0x0d, 0x6b, 0xb1, 0x2b, 0xa0, 0x48, 0xe2, 0x69, 0xbb, 0x5c, 0x4c, 0x55, 0x03, 0x52, 0xc1, 0x0d, + 0xe8, 0x22, 0xf4, 0xa1, 0xc3, 0x2a, 0x08, 0x7c, 0x97, 0xa6, 0xa3, 0x9b, 0x4a, 0x39, 0x89, 0x6c, + 0x6a, 0xc1, 0xa9, 0x6f, 0x93, 0xb6, 0x1c, 0x83, 0x3d, 0x83, 0x35, 0xaa, 0xee, 0x44, 0xb0, 0x69, + 0xf3, 0x4d, 0x0f, 0xc2, 0x7f, 0x5a, 0xea, 0xf9, 0x60, 0x6a, 0x8c, 0x21, 0x81, 0xa3, 0x85, 0xcd, + 0xcf, 0x15, 0x7b, 0xaa, 0xa4, 0x39, 0x55, 0x82, 0x04, 0x53, 0xb1, 0x74, 0x3b, 0x76, 0x3e, 0x62, + 0x00, 0x29, 0xdd, 0x79, 0x03, 0xc2, 0x4a, 0xce, 0x31, 0xb9, 0x4a, 0xec, 0xbc, 0x5c, 0x3c, 0xde, + 0xce, 0x10, 0xa5, 0x95, 0x5c, 0x41, 0xa6, 0xd3, 0x91, 0xea, 0x32, 0xb2, 0x10, 0xbe, 0x38, 0x23, + 0x47, 0x90, 0xf9, 0x62, 0x83, 0x4b, 0xa9, 0xbd, 0x24, 0x26, 0xc1, 0xf2, 0x4f, 0xc9, 0x04, 0xa9, + 0x8c, 0x14, 0x69, 0x45, 0xd0, 0xd2, 0xf4, 0xdf, 0xef, 0x9a, 0x52, 0x1b, 0xcc, 0x69, 0x00, 0x0b, + 0x60, 0x21, 0x59, 0xb4, 0xf8, 0xff, 0x47, 0xb2, 0xb7, 0x50, 0x70, 0x46, 0xfb, 0x84, 0xb2, 0x64, + 0x65, 0x06, 0x70, 0x93, 0x59, 0xcd, 0xd7, 0xe2, 0x13, 0x73, 0x93, 0xc2, 0xff, 0xbf, 0xa5, 0x0e, + 0x5a, 0x34, 0x22, 0x78, 0x22, 0xff, 0x94, 0xbc, 0x4f, 0x90, 0x12, 0x93, 0x40, 0x2b, 0xce, 0xc7, + 0xbd, 0x11, 0xd3, 0xdf, 0xd4, 0xe0, 0xd4, 0x88, 0xa6, 0x79, 0xfd, 0xf3, 0xb6, 0x7a, 0x19, 0xca, + 0x90, 0x5a, 0xaf, 0x6a, 0xfd, 0x1e, 0xff, 0x8c, 0xf6, 0x2e, 0x17, 0x90, 0x89, 0x12, 0x61, 0xe7, + 0xa8, 0x7d, 0xd3, 0x23, 0xb2, 0xb5, 0xc8, 0xcb, 0x27, 0xfe, 0x1b, 0x60, 0xd2, 0x36, 0x55, 0x07, + 0x92, 0x01, 0x93, 0x9e, 0xfb, 0xd2, 0x6d, 0xf8, 0x4b, 0xa0, 0x21, 0x9d, 0xfe, 0xf4, 0xc6, 0xfe, + 0x95, 0x11, 0x69, 0x4a, 0x73, 0x3d, 0x62, 0x25, 0xa2, 0xa0, 0x4f, 0x02, 0x9c, 0x6d, 0xd2, 0x34, + 0x99, 0x4e, 0xb6, 0x41, 0x8a, 0xdf, 0x35, 0x2d, 0xbb, 0x3d, 0xb0, 0xe4, 0xab, 0x55, 0x0d, 0x0d, + 0x77, 0xfb, 0x6a, 0xab, 0x6a, 0x6a, 0x83, 0x77, 0xd7, 0xd7, 0xa4, 0x88, 0x13, 0x98, 0x34, 0x1e, + 0x38, 0x95, 0x7d, 0x46, 0x10, 0x0e, 0xdd, 0x62, 0x26, 0xa4, 0x6d, 0xb1, 0xde, 0xd5, 0x1d, 0x3d, + 0x29, 0x70, 0x17, 0x6b, 0xf9, 0xf2, 0xe6, 0x95, 0xbf, 0x10, 0x01, 0xeb, 0xa5, 0x29, 0x1d, 0xb0, + 0x91, 0x7d, 0xfd, 0x51, 0xda, 0x90, 0x43, 0x5b, 0x21, 0xba, 0x69, 0x5f, 0xd1, 0xbc, 0x79, 0xa6, + 0x3e, 0x2c, 0xf6, 0x16, 0x91, 0x82, 0xeb, 0x7e, 0x4b, 0xba, 0xf6, 0x26, 0x53, 0x46, 0x6a, 0xd2, + 0x7b, 0x8b, 0xed, 0x4e, 0x3d, 0x42, 0x81, 0x4f, 0x46, 0xbf, 0x92, 0xcc, 0xcc, 0x5f, 0xcf, 0xa8, + 0x29, 0x63, 0x23, 0x90, 0x50, 0x4d, 0x12, 0xe4, 0xa2, 0x82, 0xdf, 0xc1, 0xb9, 0x44, 0xd3, 0xfa, + 0xf2, 0x9c, 0x92, 0x86, 0x61, 0x65, 0x41, 0xdf, 0x62, 0x16, 0x0c, 0xf8, 0x0c, 0x5f, 0x06, 0xc5, + 0x06, 0xda, 0xfe, 0xf3, 0xf5, 0x82, 0xbe, 0x6f, 0x48, 0x53, 0x18, 0x6f, 0x48, 0x19, 0x99, 0xcb, + 0x14, 0x40, 0x34, 0xd6, 0x52, 0x63, 0xcd, 0xb0, 0x2a, 0xf1, 0x24, 0x8b, 0x4d, 0xd3, 0x5d, 0xe6, + 0x27, 0x1d, 0x74, 0x0c, 0xb6, 0x76, 0x27, 0x77, 0xf4, 0x24, 0x79, 0x34, 0xda, 0x01, 0xc6, 0xf3, + 0x61, 0x3c, 0x1e, 0xa3, 0xe4, 0x29, 0xb7, 0x58, 0x5a, 0xd7, 0xb6, 0x4a, 0x51, 0xaa, 0x9a, 0xde, + 0x3e, 0xd2, 0x8a, 0x41, 0x63, 0x75, 0x3d, 0x60, 0x46, 0x58, 0x24, 0x2d, 0x06, 0xd3, 0x1e, 0x96, + 0xd5, 0xb4, 0x21, 0xaf, 0x96, 0x57, 0x8b, 0x71, 0xc6, 0x68, 0xe8, 0x6d, 0x6d, 0x6f, 0xea, 0x08, + 0xc3, 0xed, 0x3d, 0x11, 0xcd, 0x55, 0xbd, 0xa4, 0xa5, 0x86, 0x76, 0x2e, 0x61, 0x13, 0xd6, 0xa4, + 0x8e, 0x26, 0x52, 0x73, 0x2e, 0xb3, 0xfb, 0x5f, 0x07, 0xe3, 0xdf, 0x38, 0xa8, 0xb9, 0xed, 0x49, + 0x4f, 0xb2, 0xc5, 0xb8, 0xfc, 0x63, 0xf5, 0x8c, 0xef, 0xbd, 0x4a, 0x3a, 0x41, 0xbc, 0xa8, 0xbc, + 0x10, 0x7c, 0x0e, 0xbf, 0xd4, 0x0b, 0xe5, 0x6b, 0xc8, 0x86, 0xe8, 0xf8, 0x3d, 0x07, 0xe8, 0xac, + 0x7f, 0xc9, 0x9f, 0xae, 0x1d, 0x84, 0x1a, 0x90, 0x2c, 0x59, 0xd9, 0x00, 0xa5, 0xd7, 0x7a, 0x60, + 0x1e, 0x7e, 0x57, 0x80, 0x7c, 0x2d, 0x59, 0xf9, 0xbc, 0xce, 0xeb, 0x06, 0xbb, 0xaf, 0x17, 0x24, + 0xb7, 0x31, 0xf0, 0x98, 0xe4, 0x71, 0x7e, 0xa9, 0x71, 0xb3, 0xec, 0x89, 0xe6, 0xcb, 0x86, 0xb7, + 0x7f, 0xb4, 0xf6, 0xca, 0x7d, 0x0f, 0xe4, 0x9e, 0xb3, 0xc1, 0xd7, 0x12, 0xb1, 0x89, 0xe7, 0x13, + 0xa1, 0xd3, 0xd1, 0xac, 0xb1, 0x75, 0x73, 0x2a, 0x21, 0x6b, 0x4f, 0x22, 0x64, 0xbc, 0x6a, 0x10, + 0x45, 0x4a, 0xa3, 0x92, 0x7d, 0x15, 0xe5, 0x61, 0xac, 0x3a, 0x09, 0xb3, 0x82, 0xeb, 0xa2, 0xc6, + 0x9d, 0xeb, 0x42, 0xdb, 0xd6, 0x40, 0x3d, 0x97, 0xbc, 0x24, 0x59, 0x72, 0x15, 0x48, 0xb9, 0x59, + 0xd9, 0x3a, 0x2c, 0xb9, 0xea, 0x33, 0x4b, 0xde, 0x86, 0x25, 0x17, 0x82, 0x34, 0xad, 0xec, 0x3f, + 0x7e, 0xfe, 0xb2, 0x5b, 0x36, 0x72, 0xe9, 0x64, 0x73, 0x64, 0xbc, 0xe4, 0x15, 0xb7, 0x71, 0x09, + 0xd7, 0x21, 0xb0, 0xb5, 0x4c, 0xbf, 0x26, 0xe7, 0xf7, 0x5d, 0x6b, 0xb3, 0xf6, 0x3d, 0x50, 0xcb, + 0xf5, 0x91, 0x3c, 0xc1, 0x84, 0xe5, 0xac, 0x8d, 0x4f, 0xdc, 0x97, 0x1c, 0x76, 0x03, 0xc5, 0xc8, + 0xab, 0x84, 0x2b, 0x7e, 0xdf, 0x85, 0xb9, 0xeb, 0xf6, 0x3d, 0x30, 0x25, 0xfc, 0x35, 0x11, 0x7e, + 0xaa, 0x7e, 0x9a, 0xff, 0xbf, 0x0b, 0xff, 0x93, 0x19, 0xfe, 0x49, 0xdb, 0x65, 0x25, 0xff, 0x29, + 0xc2, 0x7e, 0x3f, 0x3d, 0xcd, 0xef, 0x84, 0xff, 0x89, 0xe9, 0xfe, 0xef, 0x0a, 0xff, 0x77, 0xa6, + 0xfb, 0xbf, 0x4f, 0xfe, 0x31, 0xdd, 0xbe, 0xe1, 0x4b, 0x4a, 0xf8, 0x90, 0x42, 0x24, 0xcf, 0xdb, + 0xfe, 0xe8, 0xcc, 0xfd, 0x09, 0xcb, 0xf3, 0x4e, 0x60, 0x78, 0xe8, 0xbc, 0x4e, 0xd0, 0x37, 0x6e, + 0x96, 0x8c, 0xcd, 0x89, 0x86, 0xb7, 0x2a, 0x2b, 0xe9, 0x64, 0x57, 0xa0, 0x9f, 0xf0, 0x23, 0xd0, + 0x2f, 0x2f, 0x63, 0xdb, 0xb4, 0x1f, 0xa9, 0xef, 0xe8, 0xab, 0x8c, 0xc6, 0x70, 0x0e, 0xd9, 0x15, + 0x25, 0xab, 0x9c, 0x89, 0x2a, 0xb2, 0xbc, 0x59, 0x58, 0x1f, 0xe8, 0x4b, 0xc7, 0x28, 0xac, 0x37, + 0x27, 0xc8, 0x7c, 0x48, 0x5b, 0xa9, 0xec, 0x3d, 0x34, 0x6a, 0x37, 0xd2, 0x19, 0x52, 0xc9, 0x6b, + 0x9f, 0x65, 0xd4, 0x41, 0x56, 0x28, 0x27, 0x70, 0xcf, 0xb9, 0x68, 0xd5, 0x49, 0x0b, 0xec, 0x1c, + 0x6d, 0x3b, 0xa7, 0x98, 0xf1, 0xeb, 0x4c, 0xf2, 0x2b, 0xd0, 0xc7, 0x31, 0xb2, 0xd1, 0x6f, 0x20, + 0xd0, 0x87, 0xbf, 0xe3, 0xf4, 0x8b, 0x78, 0x29, 0x3b, 0x8d, 0x0e, 0xb0, 0xeb, 0xec, 0x01, 0x7f, + 0x0f, 0x48, 0xe1, 0x00, 0x9d, 0x6b, 0x14, 0x67, 0x29, 0xd9, 0x02, 0x53, 0x82, 0x6c, 0x7b, 0x7c, + 0xf5, 0x9c, 0x7f, 0x28, 0x94, 0xcb, 0xae, 0x43, 0x7c, 0x22, 0x30, 0x9b, 0xdd, 0x47, 0xa4, 0x1a, + 0x29, 0x4b, 0xd6, 0xfb, 0xd6, 0x42, 0xb6, 0x7b, 0x06, 0xb6, 0xc2, 0x5f, 0x3a, 0x78, 0xf1, 0x7e, + 0x69, 0x06, 0x9f, 0x83, 0x5b, 0x21, 0xce, 0x74, 0x35, 0xbc, 0x55, 0x53, 0x89, 0x2d, 0xbc, 0x87, + 0x4e, 0xb6, 0xa4, 0xdb, 0x90, 0x6c, 0x1f, 0x78, 0x8c, 0xc6, 0x64, 0x0b, 0xb5, 0xf0, 0x5c, 0x0e, + 0x17, 0x6e, 0x23, 0xb9, 0xa9, 0xa6, 0x14, 0x4e, 0x75, 0x85, 0x32, 0xad, 0x96, 0x75, 0xe9, 0x5a, + 0x12, 0x1e, 0xb5, 0x9c, 0xf0, 0x43, 0x37, 0x9f, 0xab, 0x6e, 0x39, 0x56, 0x33, 0xb6, 0x3a, 0x97, + 0x5d, 0xbb, 0x44, 0x4d, 0xd9, 0xbd, 0x3b, 0xb0, 0x95, 0x6b, 0x37, 0x22, 0xcd, 0x9e, 0x5a, 0xbb, + 0x06, 0x10, 0x7d, 0x90, 0x09, 0x5f, 0xdf, 0x7b, 0xa5, 0x40, 0x35, 0xb4, 0x73, 0x1d, 0x1d, 0xb0, + 0x7f, 0xa8, 0x6e, 0xe8, 0xa5, 0xa1, 0xf5, 0xc3, 0x50, 0x4d, 0xb5, 0x2d, 0xd5, 0x37, 0xbc, 0x05, + 0xe6, 0x54, 0x7d, 0x33, 0xd2, 0xd8, 0x41, 0x3f, 0x44, 0x36, 0x55, 0xf5, 0xc3, 0xf4, 0x6b, 0x1c, + 0x22, 0xbb, 0x5f, 0x30, 0x24, 0x25, 0x12, 0x60, 0x1c, 0x66, 0xf7, 0x30, 0xbb, 0x87, 0xc0, 0x18, + 0x36, 0x18, 0x5f, 0x84, 0x6b, 0xd1, 0x97, 0x5c, 0xfb, 0xe0, 0xda, 0x24, 0x3c, 0xd2, 0x65, 0x71, + 0xff, 0xdc, 0x43, 0xa5, 0xc9, 0x48, 0x43, 0xb0, 0xe7, 0xae, 0x0c, 0x1b, 0xc0, 0x03, 0x57, 0xa1, + 0xeb, 0x5a, 0xcc, 0x09, 0xf3, 0xb9, 0x0a, 0x44, 0x3d, 0x08, 0x2e, 0xa5, 0xb2, 0xe8, 0x41, 0x82, + 0x4a, 0x0c, 0xca, 0x10, 0x2a, 0x64, 0x5f, 0xf0, 0x6b, 0xa3, 0x35, 0x2f, 0xae, 0xce, 0x65, 0x57, + 0x23, 0xa6, 0x43, 0x58, 0xb0, 0xbb, 0x99, 0x21, 0x31, 0x90, 0x09, 0x07, 0xea, 0x45, 0x3e, 0x91, + 0x37, 0x80, 0xfd, 0x65, 0x4e, 0xf6, 0x17, 0xc2, 0x4f, 0x1f, 0x32, 0x69, 0x3d, 0xf1, 0x1c, 0xf6, + 0x44, 0x7f, 0x61, 0x7d, 0xb2, 0xa6, 0xc6, 0x31, 0x98, 0xcd, 0xb6, 0x63, 0xfb, 0xc8, 0xee, 0x23, + 0x58, 0x31, 0x6e, 0x56, 0xc8, 0x2e, 0x1b, 0x87, 0x1f, 0xd1, 0x57, 0x61, 0x5d, 0xe7, 0x38, 0x7a, + 0xf4, 0x67, 0x1d, 0xab, 0xcd, 0x6f, 0xfa, 0xb7, 0x86, 0x73, 0xa4, 0xab, 0x62, 0x3a, 0xa2, 0x75, + 0x5f, 0xef, 0xa1, 0x5c, 0xc8, 0x26, 0x9d, 0x11, 0xa4, 0xab, 0xb0, 0xb4, 0xfb, 0x1b, 0xde, 0x72, + 0x02, 0xdb, 0x65, 0x23, 0x1c, 0x9c, 0x65, 0x87, 0xe9, 0x2d, 0xb8, 0x73, 0x0b, 0xb6, 0xc0, 0xc2, + 0xae, 0xf6, 0x9a, 0x17, 0x43, 0x5c, 0xff, 0x3b, 0x3b, 0xb9, 0xfe, 0x30, 0xa5, 0xfe, 0x35, 0x72, + 0xb5, 0x24, 0x5a, 0x80, 0x50, 0xa9, 0xc9, 0x0f, 0xf4, 0x4b, 0x46, 0xb6, 0x9e, 0xb8, 0x8d, 0x6d, + 0x7d, 0x38, 0xb9, 0x76, 0x72, 0xaa, 0x76, 0xb6, 0x8c, 0xda, 0x99, 0xb1, 0x76, 0x64, 0x19, 0x7a, + 0xce, 0xa5, 0x75, 0x43, 0x46, 0x41, 0xe4, 0xf2, 0x24, 0xb5, 0xfa, 0xb1, 0x57, 0x5a, 0x01, 0x72, + 0x0e, 0x8f, 0xe1, 0xaf, 0xb1, 0xe1, 0xad, 0x19, 0x40, 0x56, 0x21, 0xce, 0x8c, 0xd9, 0x75, 0x92, + 0x51, 0xef, 0xc1, 0x3c, 0x4b, 0xe8, 0x7d, 0x06, 0x76, 0x6e, 0x0c, 0xdb, 0xed, 0x1e, 0xc9, 0x8f, + 0xb1, 0xec, 0x77, 0x8c, 0x5a, 0xe8, 0x04, 0x77, 0x76, 0x28, 0xd7, 0x98, 0x80, 0x19, 0x7e, 0x7d, + 0x98, 0xad, 0xe2, 0xfe, 0xc9, 0x66, 0x49, 0x9c, 0xeb, 0x6c, 0x78, 0x2b, 0xeb, 0x4a, 0xc4, 0xba, + 0x26, 0xd9, 0xf8, 0xfe, 0x8b, 0x30, 0x53, 0x5a, 0x60, 0x00, 0x2f, 0xc8, 0x9e, 0xf7, 0x5f, 0xd4, + 0xfd, 0x6b, 0xda, 0x9d, 0xb5, 0xbe, 0xea, 0x0f, 0x86, 0xcb, 0xc0, 0x87, 0xa0, 0xf0, 0x75, 0xbb, + 0xb1, 0x84, 0x4e, 0x2e, 0x8b, 0x3e, 0xfd, 0xba, 0x93, 0x61, 0x92, 0xfd, 0x19, 0x30, 0xc9, 0x16, + 0x30, 0x09, 0xdc, 0x23, 0xd1, 0xbe, 0x7f, 0x7d, 0x20, 0x1a, 0x38, 0xa4, 0x4c, 0x06, 0xee, 0xf9, + 0x5a, 0x62, 0xa5, 0x53, 0x26, 0xba, 0x81, 0xb8, 0x99, 0x7b, 0x8c, 0x6c, 0x68, 0x0b, 0x2c, 0x29, + 0x3b, 0x76, 0x7b, 0xa2, 0x23, 0x42, 0x56, 0x09, 0x61, 0xa2, 0x3d, 0x47, 0x3e, 0xf6, 0x35, 0x4f, + 0xdb, 0x85, 0xd0, 0x0a, 0x79, 0x0b, 0xe1, 0x44, 0x6c, 0x70, 0xcb, 0x50, 0xcb, 0x90, 0x7c, 0xec, + 0xff, 0xee, 0xdf, 0x96, 0xa1, 0xf6, 0xbd, 0x87, 0x86, 0xbe, 0x96, 0xe8, 0xc8, 0xa6, 0xdc, 0xdb, + 0x2f, 0xf0, 0x48, 0xd5, 0x97, 0x1d, 0xa3, 0x83, 0x61, 0x21, 0x03, 0x95, 0x93, 0x8b, 0xa5, 0x95, + 0x01, 0xf6, 0x56, 0x56, 0x38, 0x9f, 0x2c, 0x84, 0xba, 0xc5, 0xa9, 0xd5, 0xb5, 0x30, 0x92, 0x3a, + 0x9d, 0x6e, 0x21, 0x7b, 0xa1, 0xd8, 0x06, 0x8b, 0x56, 0x53, 0x1b, 0xe5, 0x7c, 0x9b, 0xa7, 0x6d, + 0x3c, 0xac, 0x47, 0xc8, 0x62, 0x7a, 0x51, 0xf3, 0x40, 0xff, 0x7f, 0x67, 0x9d, 0x43, 0x4f, 0x07, + 0xfa, 0x49, 0x03, 0x82, 0xfc, 0xc3, 0x6d, 0xfd, 0x28, 0x49, 0x3a, 0x91, 0xff, 0xa4, 0xff, 0xa5, + 0x8b, 0x06, 0xe6, 0x93, 0xd9, 0x56, 0x8d, 0x09, 0x27, 0x96, 0xd1, 0x04, 0x38, 0x8c, 0x6e, 0x98, + 0xf0, 0xb0, 0x0d, 0xeb, 0x60, 0x89, 0xce, 0x41, 0x3d, 0xd0, 0x84, 0xef, 0x88, 0x31, 0x65, 0xd9, + 0xba, 0xff, 0xba, 0x8f, 0xc9, 0x42, 0x0d, 0x18, 0xa2, 0xba, 0x40, 0x3f, 0xc6, 0xb9, 0x9e, 0xe2, + 0xd0, 0xec, 0xe2, 0x66, 0x2b, 0x38, 0x6e, 0x73, 0xf2, 0x7c, 0x38, 0x59, 0xd5, 0x40, 0xae, 0xc1, + 0x20, 0x37, 0xfa, 0x1f, 0x09, 0x59, 0xe6, 0xf9, 0xc0, 0xe8, 0xdd, 0x01, 0x86, 0xea, 0x93, 0x60, + 0x90, 0x36, 0x60, 0x2e, 0x3e, 0xb2, 0x22, 0x03, 0xc6, 0x96, 0x51, 0x79, 0x34, 0xd0, 0x2f, 0x4e, + 0xe7, 0x3b, 0x91, 0xdb, 0x70, 0xf0, 0x99, 0xe1, 0xdd, 0x64, 0xff, 0x64, 0x8e, 0xc3, 0x05, 0x85, + 0x4e, 0x17, 0x94, 0x14, 0xba, 0xa0, 0xcc, 0xe5, 0xd2, 0xcb, 0x25, 0x2e, 0xbd, 0xa3, 0x30, 0xa2, + 0x2f, 0x54, 0xcc, 0x7f, 0xff, 0x6f, 0xf7, 0xc3, 0x20, 0xac, 0x85, 0x01, 0x58, 0x03, 0xf2, 0x52, + 0xd7, 0x52, 0xc4, 0x1e, 0x43, 0x1c, 0xca, 0x8b, 0xc0, 0xc2, 0x36, 0x1a, 0x73, 0x8f, 0x26, 0x24, + 0x3d, 0x8d, 0x0c, 0x43, 0xda, 0xc6, 0x41, 0x05, 0x8e, 0x51, 0x0c, 0xb7, 0x7b, 0x5e, 0x7b, 0x51, + 0xd2, 0xd5, 0x24, 0xaa, 0xfe, 0x68, 0x84, 0xea, 0xb3, 0x38, 0x72, 0xf4, 0x69, 0x8b, 0x04, 0xcb, + 0x4e, 0xe9, 0xd6, 0xba, 0x73, 0x02, 0x7b, 0x54, 0xbf, 0x14, 0x48, 0xdb, 0x35, 0x50, 0x4d, 0xbe, + 0x55, 0x3a, 0xef, 0xb2, 0x0b, 0x6a, 0x79, 0x60, 0x3b, 0xba, 0x1a, 0xf9, 0xf7, 0x2e, 0xfe, 0x8d, + 0xf0, 0xef, 0x68, 0x60, 0x7b, 0xd5, 0x29, 0xdd, 0x76, 0xb7, 0xd1, 0xed, 0x03, 0x1f, 0xfb, 0x3c, + 0xc5, 0x36, 0xa6, 0x24, 0xdf, 0x2a, 0xbd, 0x95, 0xbe, 0xf5, 0x9d, 0x81, 0xed, 0xc4, 0x3f, 0x21, + 0x4f, 0x42, 0xfe, 0xe6, 0x28, 0xc8, 0xf0, 0xfe, 0x86, 0x6c, 0xa2, 0xbc, 0xcf, 0xfb, 0x62, 0x36, + 0x58, 0x76, 0x61, 0xf2, 0x98, 0xdb, 0x43, 0xd6, 0x43, 0x26, 0x0f, 0xd1, 0xe9, 0xfb, 0x60, 0xa2, + 0x65, 0x73, 0x6c, 0x06, 0x72, 0x28, 0xc7, 0x30, 0xed, 0x20, 0xe7, 0xb0, 0x91, 0xca, 0xd0, 0x6f, + 0x4f, 0xd5, 0xf5, 0x08, 0x7e, 0xed, 0x4f, 0x7f, 0x5d, 0xf7, 0x0a, 0xdb, 0xfc, 0x59, 0xad, 0x9f, + 0x84, 0x45, 0xd1, 0xc9, 0x17, 0x9f, 0xd6, 0x4f, 0x32, 0x1c, 0x2c, 0xf2, 0xd2, 0xad, 0x63, 0x62, + 0x44, 0xa9, 0x25, 0x9a, 0x9d, 0x27, 0x84, 0xb1, 0x7e, 0xb2, 0x71, 0x33, 0x43, 0xd8, 0x36, 0xaf, + 0x1a, 0x0a, 0xe7, 0xd5, 0x40, 0xc9, 0xbc, 0x5a, 0x28, 0x9b, 0x57, 0xa7, 0x97, 0xe7, 0x2d, 0xd1, + 0x3b, 0xe6, 0x2d, 0xd3, 0x17, 0x0a, 0x2b, 0x4f, 0xc2, 0xde, 0x50, 0xf2, 0x74, 0x33, 0x52, 0x15, + 0x9b, 0xc3, 0xe7, 0x24, 0x7b, 0x44, 0x64, 0xc7, 0x32, 0x1f, 0x1f, 0x1b, 0x3e, 0x56, 0xb2, 0x69, + 0x89, 0x8f, 0x19, 0x1f, 0x23, 0x3e, 0x06, 0x77, 0x2e, 0x9f, 0xd0, 0x96, 0x9c, 0x1e, 0x69, 0x29, + 0xc5, 0x95, 0xcc, 0x0d, 0x6f, 0xd9, 0xa6, 0xcc, 0x57, 0x44, 0x9b, 0x0a, 0xeb, 0xb7, 0xbe, 0xac, + 0xd9, 0xd4, 0x36, 0x04, 0xd6, 0x3e, 0xae, 0xa3, 0x13, 0xef, 0x7a, 0xe4, 0xcc, 0xcc, 0x1e, 0x1d, + 0x84, 0x73, 0xe4, 0x05, 0x38, 0xaa, 0xce, 0x5e, 0x37, 0x0a, 0x70, 0x62, 0x34, 0xd0, 0x17, 0x05, + 0xe5, 0x02, 0x52, 0x02, 0xb2, 0xfe, 0x6d, 0xc5, 0xb9, 0xaf, 0x02, 0x9f, 0x32, 0xb6, 0x22, 0x79, + 0x9c, 0xac, 0x48, 0x92, 0xed, 0x3d, 0x7b, 0x37, 0x58, 0x53, 0x96, 0x24, 0xdf, 0x16, 0x96, 0x24, + 0x1d, 0x11, 0x58, 0x48, 0xd0, 0x36, 0xba, 0x80, 0x6c, 0x26, 0x82, 0x6e, 0x8f, 0xd4, 0x0d, 0x36, + 0x57, 0xa7, 0xfe, 0x2c, 0x42, 0x63, 0x9b, 0xec, 0x91, 0x22, 0x20, 0xcf, 0xf3, 0x40, 0x1b, 0x86, + 0x3c, 0xe9, 0xc2, 0x54, 0x45, 0xdd, 0xea, 0x09, 0xf5, 0x78, 0x49, 0xb1, 0x7a, 0xd2, 0x55, 0xac, + 0x9e, 0x2e, 0x2c, 0x56, 0xcf, 0x38, 0x8b, 0xd5, 0x73, 0x8e, 0x62, 0x75, 0xdc, 0x5e, 0xac, 0x4e, + 0x78, 0xab, 0x14, 0x80, 0x49, 0x29, 0xf8, 0xd3, 0x89, 0x84, 0x05, 0x72, 0xc3, 0x00, 0xdb, 0xdb, + 0x4a, 0xa3, 0x59, 0x3b, 0x47, 0xc3, 0xa1, 0x0e, 0x61, 0xd9, 0x17, 0xe0, 0xa4, 0xa5, 0x12, 0xf4, + 0x3b, 0x47, 0x43, 0x00, 0xbf, 0x51, 0x7c, 0x1c, 0xcf, 0x12, 0x16, 0xf1, 0xaf, 0x42, 0xbf, 0x3d, + 0x8a, 0x70, 0x5f, 0x83, 0x31, 0x47, 0xda, 0xac, 0xec, 0xbe, 0x3a, 0xbc, 0x82, 0xdf, 0x64, 0xfd, + 0xf6, 0xbb, 0xca, 0x5d, 0xec, 0xce, 0x0b, 0xc7, 0xf8, 0xfd, 0x05, 0xb2, 0x1e, 0xaf, 0xc4, 0xed, + 0xab, 0xc0, 0x80, 0x25, 0x8f, 0x48, 0x08, 0xd9, 0xf7, 0x46, 0x5f, 0x1b, 0x53, 0xa2, 0x2e, 0xf4, + 0xf1, 0x57, 0x85, 0x7a, 0xd0, 0xf7, 0x5c, 0x11, 0xba, 0xd5, 0xe3, 0xe6, 0x2a, 0xd0, 0xf5, 0xdc, + 0x85, 0xdf, 0xa7, 0x4a, 0x30, 0x16, 0x7e, 0xe9, 0x7b, 0x11, 0x70, 0x4a, 0x83, 0x4b, 0x7c, 0x65, + 0xe1, 0xd7, 0x71, 0x65, 0x71, 0xa1, 0xf8, 0x32, 0xe0, 0xd7, 0x51, 0xa5, 0xd4, 0x29, 0xbe, 0x66, + 0xe0, 0xd7, 0x41, 0x45, 0x76, 0x88, 0xaf, 0x6c, 0xfc, 0xda, 0xaf, 0x58, 0xed, 0xe2, 0x6b, 0x26, + 0x7e, 0xed, 0x55, 0xb2, 0xd9, 0x06, 0x96, 0xbe, 0x71, 0x23, 0xbd, 0x43, 0x30, 0x39, 0x59, 0xaa, + 0x2b, 0x0a, 0x30, 0xb4, 0x8e, 0xab, 0x27, 0x8a, 0x96, 0xa8, 0x27, 0x8b, 0xea, 0xd4, 0xd3, 0x45, + 0xb5, 0xea, 0x99, 0xa2, 0x1a, 0xf5, 0x5c, 0x51, 0xb5, 0x3a, 0x5e, 0xe4, 0x55, 0x27, 0xfc, 0x55, + 0xe1, 0x42, 0xd7, 0xd2, 0x47, 0x0e, 0x94, 0x57, 0xbd, 0xf6, 0xca, 0x6b, 0xaf, 0xd4, 0xfe, 0x69, + 0xc7, 0xdb, 0x4a, 0x76, 0x53, 0x55, 0x71, 0xd9, 0x28, 0x7c, 0x6d, 0x14, 0xeb, 0x7e, 0x4e, 0xcf, + 0xf6, 0x63, 0x6b, 0x12, 0x64, 0xed, 0xf0, 0xb7, 0x63, 0x55, 0x1f, 0xa8, 0x13, 0xd7, 0x77, 0x83, + 0x45, 0x9d, 0xb8, 0xae, 0x1b, 0xcc, 0xe0, 0x47, 0xda, 0x50, 0xe9, 0xed, 0x02, 0xdf, 0x7c, 0x1f, + 0x2c, 0x8c, 0xd2, 0x59, 0x7a, 0x4f, 0xc3, 0x87, 0x2b, 0x26, 0xd4, 0x5d, 0x81, 0x6f, 0x20, 0x65, + 0xd4, 0x29, 0xa0, 0xc6, 0x63, 0x7a, 0xfc, 0xed, 0x89, 0x65, 0xe1, 0x6f, 0x67, 0x0c, 0xe1, 0xa3, + 0xb6, 0xc5, 0x66, 0xe0, 0xef, 0x8a, 0x58, 0x36, 0xfe, 0xde, 0x11, 0x9b, 0x89, 0xbf, 0x8d, 0x31, + 0x23, 0xfe, 0xfa, 0x11, 0x6f, 0x72, 0xc2, 0xb9, 0xee, 0x2b, 0x10, 0xf7, 0x4c, 0xc2, 0x6e, 0xb1, + 0xb0, 0x81, 0x8f, 0xf3, 0xca, 0x9b, 0x16, 0xba, 0xb1, 0x80, 0xee, 0x51, 0x98, 0x0f, 0xf9, 0x0b, + 0x06, 0xbf, 0xa9, 0xc2, 0x77, 0xfd, 0x5d, 0x90, 0x1f, 0x9a, 0xbb, 0x60, 0x30, 0xa1, 0x13, 0xee, + 0x70, 0xee, 0x0d, 0xec, 0x0f, 0x9e, 0x04, 0xdc, 0xe0, 0x81, 0xef, 0x7a, 0x13, 0xca, 0x5c, 0xbf, + 0xf3, 0x0c, 0x78, 0x13, 0xb1, 0x99, 0x16, 0xb2, 0xe3, 0x68, 0xf9, 0x2f, 0xdf, 0x6d, 0x2f, 0xab, + 0x17, 0xde, 0xf6, 0x99, 0xb1, 0x41, 0x21, 0x3d, 0xce, 0x82, 0x39, 0x48, 0xcb, 0xfb, 0x98, 0x26, + 0x22, 0xef, 0x87, 0x34, 0x68, 0xbc, 0xe0, 0x50, 0x54, 0x87, 0x73, 0xec, 0x1c, 0x76, 0x1f, 0xdb, + 0xb9, 0xb1, 0xcd, 0xc2, 0xae, 0xa3, 0x8c, 0x2d, 0x1b, 0xc3, 0x7a, 0xd9, 0x24, 0x95, 0x64, 0xe5, + 0xd9, 0xab, 0x98, 0x27, 0xc5, 0x71, 0x22, 0x38, 0x3c, 0xe2, 0x72, 0xed, 0xf5, 0xcc, 0xe7, 0xe6, + 0xf8, 0x6b, 0x22, 0x46, 0x18, 0x51, 0x55, 0x00, 0x25, 0x5b, 0x3f, 0x42, 0x90, 0xdb, 0xb5, 0x31, + 0x94, 0x6b, 0x46, 0x9f, 0x8b, 0x9f, 0x84, 0x4c, 0x05, 0xd5, 0x59, 0x79, 0x0e, 0xcc, 0xb1, 0xed, + 0x9c, 0xcb, 0x4b, 0x36, 0x35, 0xa0, 0x10, 0x07, 0x52, 0x4e, 0xf5, 0x59, 0x1f, 0x54, 0xbd, 0x8f, + 0x7c, 0xaa, 0xa5, 0x6c, 0x6f, 0xe0, 0xbc, 0xb4, 0x8e, 0xc2, 0x2e, 0x8e, 0x70, 0x8c, 0x35, 0x48, + 0xdb, 0xf0, 0x3d, 0x79, 0x07, 0xd9, 0x99, 0x15, 0xbc, 0xae, 0xef, 0x3d, 0x89, 0xec, 0x7d, 0x98, + 0x09, 0x42, 0x0d, 0x6f, 0x49, 0x38, 0x9f, 0x95, 0x7f, 0x61, 0xac, 0xaa, 0xae, 0xea, 0x57, 0x5f, + 0x1d, 0xfa, 0x2a, 0x52, 0x12, 0x6a, 0xd1, 0x3d, 0xee, 0x1c, 0x7f, 0x22, 0x6c, 0x8c, 0xe9, 0x90, + 0x2e, 0x05, 0x95, 0x06, 0xb2, 0x9e, 0xe2, 0xbe, 0x81, 0xac, 0xa7, 0xa0, 0xaf, 0x4d, 0x86, 0x6f, + 0x0c, 0x91, 0x3d, 0x4f, 0xb7, 0xc7, 0xe5, 0xe1, 0x76, 0xe0, 0xdc, 0xe0, 0x4f, 0x84, 0xe6, 0x20, + 0x05, 0x39, 0xa3, 0x2a, 0xfa, 0x84, 0x8a, 0x75, 0x36, 0x27, 0x9e, 0xc4, 0x76, 0x85, 0xf2, 0x70, + 0x1c, 0xa3, 0x1f, 0xd9, 0x71, 0x92, 0x3c, 0x6c, 0xa3, 0x64, 0x12, 0x6b, 0x56, 0x18, 0x55, 0xc9, + 0xda, 0x8d, 0x7c, 0xad, 0x3b, 0x87, 0x6c, 0x8f, 0xc8, 0x3d, 0x3a, 0xab, 0xa4, 0xf3, 0xbd, 0x97, + 0x18, 0x23, 0xee, 0x01, 0x67, 0x4d, 0x9d, 0xeb, 0x6e, 0x79, 0x3e, 0x54, 0x5c, 0xd7, 0x08, 0x15, + 0xd2, 0x8b, 0xe8, 0x5a, 0x8c, 0xae, 0xc5, 0xe8, 0xba, 0xb2, 0xa4, 0x51, 0x1a, 0xc2, 0x78, 0x7a, + 0x4a, 0x25, 0xf8, 0x63, 0x8f, 0x8e, 0xa0, 0x88, 0xfd, 0x7e, 0x45, 0x8a, 0xd7, 0xf5, 0x18, 0xbf, + 0x00, 0x33, 0x70, 0xdc, 0x65, 0x23, 0xdf, 0xdc, 0x27, 0x5d, 0x19, 0xe8, 0xa5, 0x70, 0x18, 0x44, + 0x41, 0x4f, 0xa3, 0x40, 0xb7, 0x56, 0x22, 0xb5, 0xc6, 0x7a, 0x7b, 0xde, 0x0b, 0xbc, 0x46, 0x73, + 0xb9, 0xf9, 0x27, 0x6c, 0x9d, 0x01, 0x79, 0x49, 0xb2, 0xf0, 0xdc, 0xfe, 0x0c, 0x72, 0x20, 0xaf, + 0x95, 0x90, 0x15, 0x2e, 0xa3, 0x56, 0xce, 0xb6, 0xc0, 0x05, 0x15, 0xf9, 0x11, 0xb2, 0xd5, 0x82, + 0xdf, 0xfd, 0x81, 0x70, 0x89, 0x87, 0x60, 0x84, 0x72, 0xf3, 0x51, 0xdf, 0x7b, 0x0b, 0xca, 0xc8, + 0x7e, 0x57, 0xc8, 0x82, 0x33, 0x02, 0xdb, 0x7c, 0xec, 0xaa, 0x6b, 0x24, 0x4b, 0x2c, 0x2e, 0x9e, + 0x1f, 0x97, 0xb9, 0x2b, 0x71, 0x7e, 0x85, 0xb4, 0xdd, 0xb6, 0xc3, 0x8a, 0x3b, 0x87, 0x6c, 0x87, + 0x00, 0xdb, 0xf7, 0x28, 0x38, 0x4e, 0xd4, 0xab, 0x72, 0x45, 0xd4, 0x8c, 0x58, 0x82, 0xbc, 0x4d, + 0x7a, 0xfe, 0x92, 0x3d, 0xc2, 0x72, 0xaf, 0xb0, 0x08, 0xeb, 0xbe, 0x5b, 0x69, 0x8b, 0xde, 0x74, + 0x9d, 0x07, 0x6b, 0xa4, 0xd9, 0x20, 0xcc, 0x22, 0xfc, 0xb6, 0x44, 0x57, 0x4c, 0x4f, 0x67, 0xf7, + 0x38, 0x20, 0x6a, 0x9b, 0xee, 0xeb, 0xd0, 0x2c, 0xb9, 0x25, 0xe9, 0xa1, 0x1d, 0xfc, 0xeb, 0xc2, + 0x26, 0xb6, 0x76, 0x69, 0xc0, 0x32, 0x64, 0x2e, 0x63, 0xc3, 0xa5, 0x75, 0x15, 0xf3, 0x97, 0x02, + 0xfa, 0xbb, 0xaa, 0x4e, 0x81, 0xbf, 0xc0, 0x07, 0x41, 0xef, 0xd3, 0x10, 0xa8, 0x3e, 0x05, 0x81, + 0x82, 0x7a, 0xfc, 0x46, 0x68, 0xb9, 0x9f, 0x06, 0xd3, 0x35, 0x83, 0x58, 0x9a, 0xd1, 0x5b, 0x08, + 0xb3, 0xd0, 0xa5, 0x87, 0x2b, 0xd1, 0x9f, 0x6e, 0x7e, 0xc9, 0xc5, 0xb8, 0x15, 0x51, 0xb5, 0xc0, + 0x03, 0x8b, 0x6f, 0xa2, 0x18, 0x39, 0xd7, 0xfb, 0x71, 0xc6, 0x5e, 0x71, 0xbd, 0x07, 0xac, 0x38, + 0x8b, 0x27, 0xeb, 0x66, 0xd1, 0xac, 0x15, 0xb3, 0x1d, 0xd9, 0x23, 0x66, 0x69, 0x15, 0xc8, 0x8d, + 0x9b, 0x05, 0x8d, 0x55, 0x57, 0xcd, 0xf3, 0x42, 0x9b, 0x36, 0x93, 0xf9, 0x75, 0xd6, 0x05, 0x9d, + 0x3a, 0x49, 0x27, 0xc7, 0xc9, 0x2a, 0x0f, 0xd6, 0x4d, 0xb3, 0xaa, 0xa3, 0xdf, 0x39, 0x1c, 0x8e, + 0xe3, 0xe8, 0x72, 0x88, 0x36, 0x0b, 0x18, 0x60, 0x9b, 0x9c, 0xdc, 0xa6, 0x5d, 0x53, 0xda, 0xb4, + 0xb5, 0xa4, 0x92, 0xce, 0x31, 0xa7, 0xca, 0x66, 0x5b, 0xb1, 0xd8, 0xb2, 0xbc, 0xe8, 0x0c, 0xb2, + 0x36, 0x46, 0xed, 0xd9, 0xab, 0x40, 0xae, 0x62, 0x64, 0x97, 0x13, 0x72, 0xb1, 0xc5, 0x39, 0x14, + 0x8e, 0xef, 0xb9, 0xd8, 0x9a, 0x39, 0xd8, 0xf2, 0x39, 0xd8, 0xf2, 0x3c, 0x49, 0xaf, 0xdc, 0x19, + 0xcd, 0xbb, 0x6c, 0x89, 0xff, 0xf9, 0xd7, 0x4b, 0x64, 0x28, 0x31, 0xbc, 0xa8, 0x9c, 0xd2, 0x19, + 0x60, 0xc2, 0xbc, 0x73, 0xc8, 0xbd, 0x36, 0x1f, 0x72, 0xa3, 0xfa, 0x0c, 0x6e, 0xe4, 0xae, 0xe0, + 0x70, 0xd4, 0x42, 0x76, 0x16, 0xd5, 0xdc, 0xb4, 0xfd, 0xa6, 0x94, 0x6b, 0xd8, 0x3d, 0x88, 0x73, + 0x47, 0x36, 0xce, 0xcc, 0x94, 0xcf, 0x97, 0x71, 0x96, 0xa6, 0x6f, 0x64, 0x73, 0xa2, 0xdf, 0x44, + 0x0e, 0xc3, 0xce, 0x5f, 0x7a, 0x70, 0x52, 0xe8, 0x6f, 0xb6, 0x80, 0x8b, 0xbf, 0xbf, 0x08, 0xa5, + 0x29, 0x1c, 0xd2, 0x23, 0x0f, 0x53, 0xce, 0xbe, 0x16, 0x58, 0xe4, 0x0e, 0x20, 0x1d, 0xfe, 0x09, + 0x78, 0xaa, 0x3e, 0x06, 0x5b, 0xe0, 0xb9, 0x89, 0x55, 0xd8, 0x22, 0xb6, 0xe1, 0x58, 0x5a, 0xa2, + 0xc0, 0xc5, 0xdf, 0x6b, 0x76, 0x49, 0x09, 0x6f, 0x35, 0xdc, 0xbd, 0x7d, 0x9b, 0xc0, 0x5d, 0xd1, + 0x3f, 0x92, 0x13, 0x4a, 0xd8, 0x4e, 0xb2, 0x4b, 0xd8, 0x22, 0x2c, 0x0d, 0x68, 0x70, 0x30, 0x0a, + 0x4c, 0xd2, 0xac, 0xca, 0x97, 0x40, 0x49, 0x92, 0xf2, 0xb1, 0x95, 0x1a, 0x8d, 0xe7, 0x68, 0xd8, + 0x84, 0x5f, 0xae, 0x40, 0xbf, 0x3b, 0x27, 0x48, 0x77, 0x5f, 0xe4, 0x10, 0x75, 0x70, 0xe7, 0x34, + 0xa1, 0x3b, 0x0a, 0xe4, 0x26, 0x7a, 0x24, 0x72, 0x20, 0x5a, 0x81, 0x74, 0xe8, 0x6d, 0xf2, 0x95, + 0x7a, 0xd5, 0x09, 0xb7, 0x13, 0x4c, 0xc4, 0x77, 0x96, 0x3a, 0xd5, 0x49, 0xdf, 0x58, 0x44, 0x5f, + 0x93, 0xd0, 0xca, 0x5f, 0x95, 0xe2, 0xc3, 0xcd, 0x94, 0x17, 0x59, 0xdc, 0x8a, 0x5a, 0x53, 0x90, + 0xab, 0x93, 0x3c, 0xf3, 0x06, 0x29, 0x9c, 0xad, 0x8a, 0xaa, 0xb3, 0x56, 0x80, 0x91, 0xde, 0x86, + 0xfd, 0x60, 0xf6, 0x6e, 0x41, 0xce, 0xd5, 0xc2, 0xf4, 0x09, 0xf3, 0x45, 0xaa, 0x2a, 0x7b, 0x3d, + 0xd5, 0xef, 0x43, 0x50, 0xd1, 0x1f, 0x6a, 0xf9, 0xe7, 0x03, 0xed, 0x17, 0x34, 0x7b, 0xef, 0x65, + 0x29, 0x7b, 0xef, 0xce, 0x0c, 0x7b, 0xef, 0xf9, 0xe6, 0x4e, 0x28, 0x06, 0x39, 0x64, 0x63, 0x6b, + 0x58, 0x63, 0x97, 0xb7, 0xfa, 0xee, 0x36, 0xd9, 0x05, 0x34, 0x4c, 0x75, 0x09, 0x1c, 0x1d, 0x0e, + 0xef, 0x2a, 0x08, 0xb2, 0x7d, 0x2d, 0xa4, 0x8f, 0x75, 0x9e, 0x1b, 0x3d, 0x10, 0xb4, 0xb3, 0x2d, + 0xb0, 0x5b, 0x2b, 0x1c, 0xbd, 0xe0, 0x72, 0x72, 0x5c, 0xe4, 0xb4, 0xf7, 0xa8, 0xa3, 0x6c, 0xc3, + 0xf3, 0xb2, 0x9c, 0xb2, 0x93, 0x39, 0xe5, 0xef, 0x1c, 0x4c, 0x73, 0xca, 0x44, 0xa1, 0xaf, 0x43, + 0x3e, 0x59, 0xd1, 0xaf, 0x18, 0x8e, 0xaa, 0x3b, 0x1f, 0x0f, 0x8d, 0xdf, 0x31, 0x1c, 0x9b, 0xd8, + 0x3f, 0xe4, 0xfd, 0x27, 0xb2, 0x79, 0x45, 0xb6, 0x1c, 0x25, 0xaf, 0xaf, 0x73, 0xb6, 0xec, 0x9e, + 0x4d, 0x3d, 0xf4, 0xbf, 0x2f, 0x90, 0x75, 0x1b, 0xb2, 0xd6, 0x94, 0x65, 0x93, 0x3c, 0x87, 0xf7, + 0x5d, 0x77, 0x80, 0x4a, 0xad, 0xe6, 0x3c, 0x1e, 0x7b, 0xc5, 0xe5, 0x23, 0x29, 0xee, 0x11, 0x73, + 0xb2, 0xef, 0x44, 0x9f, 0x5f, 0x35, 0x08, 0xb3, 0xc0, 0x78, 0xd5, 0xa0, 0xfa, 0x04, 0xcc, 0x9a, + 0x47, 0xd4, 0x0c, 0x67, 0x5d, 0x7e, 0x4f, 0x82, 0x6d, 0xc1, 0x20, 0xc2, 0xc1, 0xea, 0xed, 0x84, + 0xbc, 0x05, 0x34, 0xf6, 0xa5, 0x05, 0x5e, 0xb0, 0x2c, 0x18, 0x9c, 0x2d, 0x43, 0x2e, 0xa6, 0xca, + 0xc6, 0x19, 0xeb, 0xa4, 0xce, 0x3b, 0xaf, 0x5e, 0xe7, 0xf7, 0xee, 0xd0, 0xd5, 0xa1, 0xbb, 0x0e, + 0xdd, 0x5e, 0xd2, 0x42, 0xe9, 0x02, 0xf8, 0xd5, 0x88, 0x5f, 0x2d, 0x18, 0xd2, 0x8c, 0xee, 0x66, + 0x74, 0x37, 0x62, 0x88, 0x51, 0xb7, 0x02, 0xbf, 0xee, 0xc2, 0xaf, 0x10, 0x86, 0xb4, 0xa1, 0xbb, + 0x0d, 0xdd, 0x77, 0x61, 0x48, 0x96, 0x6e, 0x15, 0x7e, 0x45, 0xf0, 0x2b, 0x8e, 0x21, 0x51, 0x74, + 0x47, 0xd1, 0x1d, 0xc1, 0x10, 0xbd, 0x6e, 0x00, 0x7d, 0xee, 0x97, 0x8c, 0xd9, 0xd4, 0x51, 0x6b, + 0xa9, 0xbe, 0xba, 0xf5, 0x32, 0xb4, 0x0c, 0x49, 0x43, 0xc8, 0x0b, 0x1a, 0xe6, 0xf9, 0x74, 0xc3, + 0xf8, 0xac, 0x15, 0xad, 0xc1, 0x74, 0xa3, 0x98, 0x0e, 0x7b, 0x5f, 0xb7, 0x09, 0xdd, 0x9b, 0xd0, + 0x3d, 0x8a, 0x29, 0x0c, 0xba, 0x6d, 0xf8, 0xb5, 0x1d, 0xbf, 0xbe, 0x87, 0x21, 0xdf, 0x45, 0xf7, + 0x77, 0xd1, 0xbd, 0x1d, 0x43, 0x74, 0xba, 0x1f, 0xe0, 0xd7, 0x53, 0xf8, 0xf5, 0x0c, 0x86, 0xec, + 0x40, 0xf7, 0x0e, 0x74, 0x3f, 0x55, 0x7d, 0x52, 0x6f, 0x9d, 0x57, 0xaf, 0xcf, 0xf7, 0xee, 0xd0, + 0xdb, 0xd0, 0x6d, 0x43, 0xb7, 0x15, 0x63, 0xe7, 0xe8, 0x76, 0xe2, 0x57, 0x27, 0x7e, 0x45, 0x31, + 0x24, 0x82, 0x6e, 0xac, 0xb1, 0xbe, 0x53, 0x48, 0x07, 0x52, 0x55, 0xd5, 0x49, 0xdd, 0xf3, 0x87, + 0xcf, 0x33, 0xa5, 0x9b, 0x22, 0x3b, 0x69, 0x63, 0xf5, 0x13, 0x1b, 0x70, 0x7b, 0x7e, 0x19, 0x4c, + 0xb0, 0xac, 0xf0, 0x4a, 0xd5, 0x47, 0xfa, 0xc1, 0x62, 0x9f, 0x7e, 0xc4, 0xfb, 0x9c, 0x3e, 0x51, + 0xfd, 0x91, 0x3e, 0x51, 0x5c, 0xaf, 0x1f, 0x44, 0xbf, 0x8d, 0xe8, 0xf7, 0x28, 0xfa, 0x3d, 0x8c, + 0x7e, 0x0f, 0xa3, 0xdf, 0x46, 0xf4, 0xdb, 0x4e, 0x32, 0x43, 0x72, 0xcc, 0xeb, 0xf7, 0xd3, 0x97, + 0x68, 0x31, 0xf7, 0x91, 0xbc, 0x80, 0xda, 0x28, 0x91, 0x6d, 0xdd, 0xff, 0xe3, 0xd3, 0x95, 0x62, + 0x4b, 0xca, 0xc9, 0xdd, 0xd9, 0xac, 0x5b, 0x34, 0x8f, 0xe9, 0xb8, 0xae, 0xd2, 0xdb, 0xa9, 0xf3, + 0xb8, 0x51, 0x52, 0x99, 0x6a, 0x2b, 0xcd, 0x2e, 0x6c, 0xa5, 0xc5, 0x78, 0xb4, 0x6d, 0xe7, 0xb9, + 0x4f, 0x5d, 0x74, 0x82, 0x6c, 0x9e, 0x85, 0xcd, 0x22, 0xff, 0xa8, 0x6e, 0x9e, 0x47, 0x3f, 0xc9, + 0xe1, 0xff, 0xc8, 0x96, 0x94, 0xa6, 0x85, 0xc7, 0xf4, 0xf3, 0xaa, 0xb4, 0xf0, 0xa7, 0xa7, 0x84, + 0xcf, 0x15, 0xb5, 0x65, 0x2d, 0xa6, 0x5f, 0xf2, 0xf8, 0x3a, 0x61, 0x16, 0xe1, 0xe8, 0x21, 0x4f, + 0xb1, 0x47, 0xdf, 0xde, 0x98, 0x61, 0xa5, 0xd8, 0xf0, 0x7a, 0x56, 0x76, 0xf5, 0xc9, 0x2c, 0xd3, + 0xbc, 0xfa, 0xac, 0x5c, 0xef, 0x8e, 0x2c, 0xc4, 0xaa, 0xac, 0x1c, 0x74, 0x9b, 0xc8, 0xea, 0x96, + 0x66, 0xa3, 0x6a, 0x87, 0xce, 0x4b, 0xb8, 0x76, 0x7d, 0x3d, 0xdb, 0x31, 0xf5, 0x5e, 0xb7, 0x14, + 0x53, 0x2e, 0xd5, 0x69, 0x96, 0xf1, 0x8a, 0x51, 0x22, 0x2a, 0x46, 0x89, 0xa8, 0x18, 0x25, 0xa2, + 0x62, 0x94, 0x88, 0x8a, 0x51, 0x22, 0x2a, 0x6e, 0xd0, 0x17, 0xe2, 0x98, 0xd8, 0xf3, 0xe9, 0x41, + 0x2c, 0x6d, 0x40, 0x50, 0x28, 0xe4, 0x5b, 0xf4, 0x64, 0xf9, 0x69, 0xc5, 0x84, 0x46, 0x8b, 0xba, + 0xc0, 0x5a, 0xf5, 0x11, 0x4a, 0x24, 0x34, 0x1e, 0x8c, 0x81, 0x7e, 0x41, 0xa3, 0x88, 0x07, 0x74, + 0xd4, 0xdb, 0x03, 0x57, 0x23, 0x4e, 0x22, 0x15, 0x9e, 0x4f, 0x9c, 0x19, 0x71, 0x5e, 0xc4, 0xa7, + 0xa1, 0xcc, 0x78, 0x17, 0xce, 0x7a, 0xa4, 0xff, 0x38, 0x2b, 0x6c, 0x9c, 0x09, 0xce, 0xcf, 0x6d, + 0x92, 0xb7, 0x90, 0x74, 0x6c, 0x6f, 0xc4, 0x79, 0x05, 0xfb, 0x5b, 0x8c, 0xfc, 0x52, 0xd9, 0x0e, + 0x8e, 0x59, 0x9a, 0x36, 0x45, 0x7f, 0x68, 0x18, 0xff, 0x25, 0x70, 0x54, 0x8e, 0x49, 0x6b, 0x46, + 0x9b, 0xe5, 0x6a, 0xca, 0x23, 0x7a, 0xc5, 0xce, 0xe1, 0x0e, 0x0b, 0xce, 0x7b, 0xba, 0x77, 0x77, + 0x30, 0xbf, 0x3a, 0x46, 0xf2, 0x7a, 0x4a, 0xa7, 0x69, 0x4e, 0xd6, 0xc7, 0x5e, 0xef, 0xa0, 0xfa, + 0xcc, 0xba, 0xa4, 0x3e, 0x1f, 0xe8, 0xd6, 0xe2, 0x3c, 0xb3, 0x94, 0xeb, 0x43, 0x12, 0xf5, 0x1a, + 0xee, 0x87, 0x5d, 0x28, 0xd3, 0xd1, 0x4c, 0xac, 0xde, 0xbc, 0x85, 0xad, 0xd7, 0x95, 0x56, 0x9d, + 0x52, 0x2f, 0xb8, 0xfc, 0xc9, 0x76, 0x5e, 0xef, 0xd1, 0x7f, 0xe2, 0x06, 0x8a, 0xc3, 0xb1, 0xf7, + 0x69, 0x34, 0x7e, 0x76, 0x8a, 0x5b, 0xb0, 0x4a, 0x90, 0xe4, 0x68, 0xa5, 0x32, 0x3b, 0xb6, 0x60, + 0x09, 0x62, 0x1c, 0x4b, 0x86, 0x07, 0x11, 0xf7, 0x3a, 0x65, 0xe2, 0x44, 0xcf, 0x4a, 0x0c, 0x87, + 0x8b, 0x2f, 0x89, 0x3b, 0x44, 0x98, 0x1f, 0x2d, 0xb3, 0xfb, 0x1c, 0x81, 0xc3, 0x63, 0x34, 0xef, + 0x77, 0x67, 0x43, 0x95, 0x05, 0x14, 0x83, 0xbe, 0xea, 0x63, 0xf5, 0x1a, 0xd6, 0xd3, 0x5f, 0xe3, + 0xc5, 0x99, 0xb2, 0x1e, 0x4c, 0x37, 0x56, 0x21, 0xdd, 0x38, 0x05, 0x12, 0xba, 0x2d, 0x38, 0x63, + 0x4a, 0xa5, 0x83, 0xea, 0xdb, 0x87, 0xc7, 0x70, 0x6e, 0xb6, 0xa3, 0x8f, 0xf5, 0xd0, 0x46, 0xa4, + 0xa5, 0x36, 0xfc, 0xca, 0xe7, 0xf6, 0x50, 0x0b, 0xbd, 0x53, 0x5b, 0x98, 0x2e, 0x2f, 0x05, 0x17, + 0x03, 0x18, 0x91, 0xc2, 0x5b, 0xb1, 0x07, 0xf2, 0xbd, 0x3f, 0x02, 0x1b, 0xba, 0x6d, 0xe8, 0xb6, + 0x72, 0xfa, 0x8f, 0x74, 0xa3, 0xb2, 0x7f, 0x4a, 0x6a, 0xb1, 0x56, 0x72, 0x0e, 0xd3, 0x57, 0x20, + 0xb7, 0x4e, 0xe9, 0x8d, 0xac, 0x79, 0xa4, 0xb8, 0x8d, 0x5a, 0xdc, 0x86, 0x14, 0x2c, 0x5f, 0x9f, + 0x06, 0xcb, 0xfb, 0xe7, 0xfb, 0xf5, 0x6c, 0x1d, 0xb0, 0xf4, 0xf7, 0x1a, 0xdc, 0xcc, 0xda, 0xdc, + 0x18, 0xd1, 0x9f, 0x75, 0x0f, 0x8e, 0x90, 0x6a, 0x2f, 0xbf, 0xea, 0xb4, 0xfe, 0x02, 0xce, 0xca, + 0x12, 0xce, 0xc4, 0xf6, 0x28, 0xe0, 0x5c, 0x9c, 0x8f, 0xf9, 0x79, 0xdc, 0x2e, 0xfd, 0x05, 0x4e, + 0xf9, 0xe7, 0xa9, 0x29, 0x99, 0x47, 0x7c, 0x46, 0x7f, 0x21, 0x94, 0x1d, 0x35, 0xce, 0xf7, 0xe8, + 0x2f, 0xa0, 0xf4, 0x8b, 0xe4, 0x30, 0x6c, 0x25, 0xda, 0xbf, 0xe0, 0x8a, 0xad, 0x2f, 0x97, 0x23, + 0x95, 0xfa, 0xf6, 0xaf, 0xa9, 0x4e, 0x17, 0x3f, 0x41, 0xec, 0x05, 0x31, 0x1b, 0x22, 0xbc, 0x65, + 0xea, 0x1b, 0x89, 0xa4, 0xfb, 0x23, 0x02, 0x3b, 0xf5, 0x56, 0xd9, 0x3b, 0x15, 0x3b, 0x6b, 0x18, + 0x56, 0x6e, 0x53, 0x2d, 0xd2, 0x21, 0x79, 0xe3, 0x75, 0x9d, 0x58, 0x3b, 0x83, 0x1d, 0x7f, 0xed, + 0x1b, 0xe6, 0xd5, 0xe3, 0xef, 0xdd, 0xc2, 0x9e, 0x2d, 0x54, 0x90, 0x2d, 0x55, 0xf7, 0x7c, 0x30, + 0xb9, 0x67, 0x51, 0x0d, 0x17, 0x38, 0xc8, 0x06, 0x9e, 0x3b, 0xc7, 0x5d, 0x8f, 0xf3, 0x39, 0xd7, + 0x11, 0x67, 0x51, 0xd7, 0x77, 0x0e, 0x06, 0x9e, 0xfb, 0xf4, 0x6d, 0xaa, 0x2d, 0xd5, 0x42, 0xdc, + 0x75, 0x71, 0xeb, 0x62, 0xb2, 0x36, 0x59, 0xe2, 0x86, 0x72, 0x64, 0x19, 0xe8, 0x16, 0x14, 0x0f, + 0xce, 0x76, 0x35, 0x38, 0x71, 0xde, 0x6a, 0x5f, 0xad, 0xb3, 0xba, 0x56, 0x33, 0xa7, 0xfa, 0x7c, + 0x21, 0xec, 0x12, 0xf2, 0xf6, 0x2e, 0xb2, 0x84, 0x48, 0x92, 0x3d, 0x3c, 0x6d, 0x2e, 0xc4, 0x19, + 0xe4, 0x4a, 0x74, 0x3d, 0x89, 0xf2, 0xb2, 0x6c, 0x29, 0x84, 0x6f, 0xb2, 0x7e, 0xce, 0x84, 0xf2, + 0x70, 0x02, 0xa5, 0xe0, 0x11, 0xa5, 0xcc, 0xff, 0x40, 0x78, 0xae, 0x9c, 0x45, 0xf6, 0xe6, 0xcc, + 0x43, 0x64, 0x79, 0x26, 0x44, 0x76, 0x6e, 0xdb, 0x4a, 0x9c, 0xe0, 0x77, 0x39, 0xa1, 0xdc, 0x6e, + 0x1c, 0x20, 0x2b, 0x30, 0xfa, 0x6b, 0x3c, 0xf0, 0xcd, 0x82, 0x25, 0x90, 0x28, 0xa8, 0x83, 0x11, + 0xff, 0x70, 0xb8, 0x04, 0x4b, 0x00, 0xf8, 0x66, 0xc8, 0x71, 0x4d, 0x0d, 0xdc, 0x1f, 0x05, 0x8b, + 0xc1, 0xe9, 0xf9, 0xf7, 0xb1, 0xc2, 0x86, 0xff, 0x98, 0x80, 0x71, 0x87, 0x5f, 0xf2, 0x22, 0xe6, + 0x8d, 0x4a, 0x37, 0x1e, 0x00, 0xc2, 0x86, 0x8b, 0x5b, 0x14, 0xb3, 0xad, 0x10, 0xee, 0xb7, 0x9b, + 0xc8, 0x4e, 0x26, 0x8c, 0xfa, 0x1f, 0x08, 0x59, 0x11, 0x0e, 0x59, 0xd4, 0xe2, 0x9d, 0x51, 0xb2, + 0xb6, 0x18, 0x32, 0x28, 0x0d, 0x8f, 0xbd, 0xe2, 0x37, 0xdc, 0xc1, 0x36, 0xe4, 0xf7, 0x27, 0x18, + 0x87, 0x46, 0x31, 0x8e, 0x9e, 0x64, 0x3a, 0x50, 0xdd, 0x06, 0x77, 0xb6, 0x7b, 0xa6, 0x48, 0xf1, + 0x0b, 0x23, 0x87, 0x92, 0x7d, 0x39, 0x9b, 0x7f, 0x5d, 0x24, 0x87, 0x4b, 0x28, 0x8c, 0xea, 0xe8, + 0xfd, 0xe9, 0x59, 0x6e, 0x3f, 0x71, 0x8b, 0xf7, 0xe3, 0xf3, 0x4d, 0xd2, 0xcf, 0x10, 0x3f, 0x83, + 0x69, 0x73, 0x68, 0x26, 0x47, 0x9a, 0x4c, 0x76, 0x60, 0x67, 0x06, 0xf6, 0x4c, 0x3e, 0x47, 0xe9, + 0x4b, 0xae, 0x15, 0xb4, 0x88, 0xf8, 0x1d, 0x19, 0xf9, 0x14, 0xb6, 0xb9, 0xa7, 0x6f, 0x1c, 0x95, + 0x2c, 0x61, 0xa3, 0x31, 0x01, 0xd7, 0xe2, 0xdc, 0x71, 0x16, 0x79, 0x35, 0x71, 0x77, 0x0f, 0xdf, + 0x54, 0x44, 0x76, 0x83, 0x11, 0xf2, 0xf9, 0xd5, 0x1f, 0x83, 0xe4, 0xea, 0x05, 0x0b, 0xf2, 0x7e, + 0xaf, 0x08, 0x5c, 0x27, 0x3e, 0x87, 0xf2, 0x51, 0xb2, 0x65, 0x4f, 0x30, 0x91, 0xfb, 0x62, 0xae, + 0x2d, 0xf4, 0x09, 0xd9, 0xe7, 0xc5, 0x7c, 0x8d, 0x76, 0x5a, 0x45, 0x50, 0xf9, 0x86, 0xbf, 0xf1, + 0x05, 0x3e, 0xf3, 0x30, 0xf1, 0x13, 0x61, 0xd6, 0x84, 0x2f, 0xe8, 0xf6, 0x0f, 0x45, 0x58, 0xeb, + 0xbb, 0xe0, 0xeb, 0x64, 0x91, 0x97, 0xec, 0xca, 0x62, 0xef, 0x5a, 0xc9, 0x5e, 0xad, 0xa4, 0xd7, + 0x27, 0xbe, 0x09, 0x09, 0x10, 0x9c, 0xa5, 0xe3, 0x4e, 0xd2, 0x75, 0xf8, 0xbd, 0x91, 0x10, 0x7f, + 0xed, 0xa3, 0x50, 0xec, 0x00, 0x95, 0x6c, 0xf5, 0xa9, 0x1e, 0xb2, 0xc7, 0x5b, 0x92, 0x70, 0x67, + 0xd5, 0x5e, 0x50, 0x07, 0x02, 0x8f, 0x3a, 0x98, 0xab, 0xbb, 0xfe, 0x69, 0x49, 0x4f, 0x37, 0x6d, + 0x90, 0xe5, 0x66, 0xb2, 0xe4, 0x9c, 0x8c, 0x93, 0x0c, 0x77, 0xec, 0xf3, 0x7a, 0x7d, 0xde, 0xb7, + 0xfd, 0xd1, 0x6f, 0x92, 0xe5, 0xe7, 0x74, 0x28, 0x41, 0x46, 0x29, 0x14, 0xa5, 0x03, 0x50, 0x0e, + 0xa7, 0x7d, 0x34, 0x46, 0x9c, 0x26, 0x77, 0xa9, 0x11, 0xc8, 0xc6, 0xe2, 0xe4, 0x21, 0x2d, 0xee, + 0x1e, 0xd5, 0x84, 0x33, 0x8c, 0xc7, 0x6b, 0x21, 0xbb, 0xb6, 0x44, 0x9f, 0xdd, 0x7a, 0x3b, 0x41, + 0x89, 0xa0, 0xac, 0x17, 0x52, 0xca, 0x6b, 0xb9, 0x8d, 0x9b, 0x49, 0xaa, 0x5f, 0x90, 0x40, 0x6e, + 0xcc, 0x20, 0x17, 0xf2, 0x2d, 0x32, 0x26, 0xb2, 0xc5, 0xcb, 0xbd, 0x21, 0x71, 0x7e, 0x3f, 0xa0, + 0x32, 0x9b, 0x12, 0xf6, 0x6b, 0x69, 0xa4, 0x20, 0xd5, 0xd8, 0x45, 0x32, 0x3e, 0xc2, 0x20, 0x8a, + 0xb9, 0xc5, 0xdd, 0x59, 0x18, 0x2f, 0xc2, 0xb1, 0x07, 0xf8, 0xae, 0x98, 0xb8, 0x1d, 0x9a, 0x86, + 0x5d, 0xab, 0xf4, 0x64, 0x0f, 0xd2, 0xba, 0x57, 0x60, 0xfc, 0xdb, 0xee, 0xc1, 0x75, 0x6f, 0x23, + 0x5c, 0x6d, 0x48, 0x05, 0x1a, 0x90, 0x26, 0xe4, 0xf3, 0xb7, 0x01, 0x79, 0x62, 0xe5, 0xd0, 0x66, + 0xc1, 0xdf, 0xe3, 0x37, 0xf2, 0xf7, 0x18, 0xde, 0x48, 0x77, 0xb4, 0xf0, 0xf7, 0x0c, 0x28, 0xc5, + 0xef, 0x16, 0xc1, 0xd9, 0xe3, 0xf7, 0x4c, 0x58, 0x84, 0xdf, 0xcd, 0xf8, 0x5d, 0xc9, 0xdf, 0x46, + 0xf0, 0x44, 0x57, 0x70, 0xfa, 0x1a, 0xa4, 0x31, 0x3e, 0xa9, 0xba, 0x9a, 0xf9, 0x7d, 0xf5, 0x75, + 0xe2, 0xfd, 0xe0, 0x37, 0xfe, 0x9f, 0x40, 0x63, 0xc8, 0x48, 0x12, 0xc3, 0x82, 0xed, 0xd0, 0x88, + 0x18, 0xd0, 0x22, 0x67, 0x09, 0xfb, 0x89, 0x58, 0xd7, 0x16, 0xaa, 0x35, 0x3e, 0x2b, 0xd8, 0xfe, + 0x25, 0xc2, 0x7b, 0xfe, 0xdd, 0x54, 0xfb, 0x8b, 0x2f, 0x50, 0xed, 0x31, 0x6e, 0x82, 0x2c, 0xe2, + 0x87, 0x69, 0x3c, 0xfc, 0x04, 0x9a, 0x53, 0xb9, 0x34, 0x6f, 0x47, 0xb8, 0x72, 0xfa, 0x74, 0xba, + 0x4d, 0x4a, 0x33, 0xb6, 0xf6, 0x2c, 0xb7, 0xb4, 0x85, 0x2c, 0xb1, 0x3a, 0x20, 0xdc, 0x98, 0xb2, + 0xc6, 0xaa, 0x27, 0x4b, 0xca, 0xb3, 0x76, 0x04, 0xb6, 0x3b, 0xc1, 0x9d, 0xa5, 0xf9, 0xe9, 0x02, + 0xdb, 0x0b, 0xd3, 0x5f, 0xe2, 0x66, 0x1b, 0xa9, 0x84, 0x6c, 0xca, 0x1a, 0x92, 0xb9, 0x2e, 0xf8, + 0x01, 0xd7, 0xc6, 0x49, 0xb5, 0x21, 0x5a, 0x43, 0x76, 0x6e, 0x6b, 0x68, 0x1d, 0xb3, 0x81, 0x35, + 0x2c, 0x12, 0x42, 0x3f, 0x1f, 0xa1, 0x2f, 0x91, 0xc5, 0x5b, 0xb2, 0xed, 0x3c, 0xc7, 0x0d, 0x45, + 0xd4, 0xa7, 0x5c, 0xa3, 0x39, 0x7c, 0xe7, 0xd2, 0x9e, 0x49, 0x0b, 0xd5, 0x55, 0xab, 0x65, 0x11, + 0x5b, 0xdf, 0x3c, 0x46, 0xad, 0x6a, 0x42, 0xb9, 0x82, 0xb0, 0xe3, 0x62, 0x19, 0xe1, 0x46, 0x23, + 0xdd, 0xb8, 0x94, 0x6d, 0x9e, 0x41, 0x76, 0xda, 0x31, 0x07, 0xe6, 0x54, 0xe6, 0x2f, 0x26, 0x9e, + 0x7f, 0x32, 0x8f, 0xed, 0xe2, 0xae, 0x43, 0xca, 0xb3, 0x8e, 0x29, 0xcf, 0x5c, 0x9c, 0x05, 0x16, + 0xbb, 0xd9, 0xb6, 0xa7, 0x96, 0xeb, 0x52, 0xce, 0x75, 0xb8, 0x89, 0xa0, 0x65, 0x6b, 0x78, 0xcb, + 0x20, 0xd6, 0x1f, 0x6f, 0xe7, 0x79, 0xa5, 0xcc, 0xee, 0xa1, 0xfb, 0x38, 0x3c, 0xaf, 0xab, 0xe7, + 0x8a, 0xba, 0xc1, 0xa0, 0x8e, 0xd3, 0x4d, 0x37, 0xd8, 0x33, 0x75, 0x8e, 0x7a, 0xd2, 0x5e, 0x20, + 0x6d, 0x37, 0x2d, 0x79, 0x5f, 0xdd, 0x8d, 0x32, 0x69, 0xa7, 0xa2, 0x97, 0x3c, 0x48, 0x07, 0x8c, + 0x62, 0xf6, 0xdd, 0x57, 0xea, 0xce, 0xf1, 0x75, 0xab, 0xe7, 0x04, 0x67, 0x5f, 0xfb, 0xc7, 0x1d, + 0xf0, 0xd8, 0x98, 0xdb, 0x84, 0xd0, 0x62, 0x9d, 0xc4, 0x2b, 0x8b, 0xa8, 0x0d, 0xcc, 0xc3, 0x7c, + 0xd8, 0x00, 0xea, 0x49, 0xd2, 0xad, 0x89, 0x32, 0x31, 0x07, 0xbd, 0x1d, 0xb8, 0xcc, 0xb7, 0xa6, + 0x95, 0x59, 0xb9, 0x73, 0x07, 0xe4, 0xb7, 0x2d, 0x14, 0xf9, 0x52, 0x4e, 0x42, 0x96, 0x13, 0x92, + 0x82, 0x56, 0x9b, 0x39, 0x18, 0x2f, 0xef, 0xc4, 0x46, 0xc9, 0xa3, 0x18, 0xa5, 0x89, 0xb1, 0x37, + 0xff, 0xe3, 0xd9, 0xa6, 0x61, 0xff, 0x70, 0xe8, 0x1c, 0x95, 0x64, 0x2f, 0x56, 0x4f, 0xbb, 0xba, + 0xd5, 0x33, 0xa2, 0xac, 0xaf, 0x6d, 0xa6, 0x92, 0x10, 0xd7, 0x70, 0xbe, 0xfc, 0xf4, 0x34, 0xa6, + 0xb2, 0x44, 0xf2, 0x24, 0xb2, 0xc1, 0x9b, 0x2f, 0xb1, 0xbd, 0x73, 0x85, 0xec, 0x21, 0x1b, 0x8d, + 0x63, 0x70, 0xad, 0x1d, 0x29, 0x18, 0xdf, 0x1b, 0x44, 0xf5, 0x3b, 0xe1, 0x7b, 0x6f, 0x31, 0x4a, + 0xd7, 0x76, 0x1d, 0xd7, 0xf0, 0xe4, 0xb4, 0x1a, 0x02, 0x3c, 0xac, 0xd5, 0x23, 0x7b, 0x09, 0x43, + 0xc4, 0xe1, 0x29, 0xea, 0xd1, 0x77, 0xaa, 0x27, 0x8a, 0x96, 0xaa, 0x27, 0x8b, 0xbc, 0xe2, 0x8e, + 0x91, 0xb5, 0xe7, 0xde, 0xf8, 0x96, 0x13, 0x47, 0xeb, 0xbf, 0xbc, 0x34, 0x78, 0xe2, 0xf8, 0xb7, + 0x68, 0x67, 0xc1, 0xbf, 0xc8, 0x58, 0x97, 0x19, 0xd8, 0x6f, 0xb3, 0xa5, 0x9a, 0xc0, 0x16, 0xb6, + 0xa9, 0x6a, 0x09, 0xe5, 0xd0, 0xed, 0x1c, 0x64, 0x7d, 0x9b, 0x74, 0x5e, 0xe1, 0x37, 0x35, 0x68, + 0xea, 0x19, 0x86, 0x59, 0x02, 0x86, 0xcc, 0xf1, 0xda, 0x42, 0x73, 0xb6, 0xbe, 0x8c, 0xf3, 0xe4, + 0x1b, 0x92, 0xc7, 0xec, 0x84, 0x2b, 0xc0, 0x18, 0x32, 0xc5, 0xc2, 0xf3, 0xaa, 0x60, 0x9b, 0xa2, + 0x8f, 0x03, 0x62, 0xdc, 0x87, 0x2b, 0x06, 0xd5, 0xb1, 0x4c, 0xf8, 0x72, 0xcd, 0xff, 0x90, 0x59, + 0x73, 0x2d, 0x6f, 0x27, 0x8e, 0x58, 0x0d, 0xa6, 0xfb, 0x0e, 0x11, 0x4c, 0x93, 0xd0, 0x42, 0x8a, + 0x59, 0x86, 0x14, 0xd9, 0x86, 0xb8, 0x9a, 0x8f, 0x38, 0x2b, 0x49, 0x45, 0x90, 0x4b, 0xb3, 0x40, + 0xa4, 0xdd, 0x0e, 0xc1, 0x61, 0x92, 0x36, 0xf7, 0x0f, 0x61, 0xdb, 0xd7, 0xcb, 0x7a, 0xbe, 0x8d, + 0x28, 0x1b, 0x67, 0x79, 0x8b, 0xa2, 0x7f, 0xec, 0x15, 0x59, 0x4f, 0xf7, 0xa1, 0xaa, 0x10, 0x36, + 0xc4, 0x8c, 0x8a, 0x3e, 0x06, 0xaf, 0xbd, 0x48, 0x3e, 0x67, 0xf0, 0x0f, 0x7d, 0x0c, 0x69, 0x9f, + 0x83, 0xf8, 0x87, 0x3e, 0xfa, 0xb4, 0xcf, 0xd3, 0xf8, 0x77, 0xc7, 0x8b, 0xbe, 0xa1, 0x6d, 0x2f, + 0x2a, 0xe6, 0xb8, 0x4e, 0x36, 0xfd, 0xd7, 0xd3, 0xb2, 0x7e, 0x5f, 0x22, 0x24, 0x27, 0x86, 0xaf, + 0xf7, 0x40, 0x6e, 0xdd, 0xf0, 0xbf, 0xfc, 0x18, 0xe6, 0xe2, 0x93, 0xc7, 0xf6, 0x64, 0x47, 0xd1, + 0x35, 0x87, 0x5d, 0xc3, 0x8a, 0xa1, 0x7c, 0x50, 0x55, 0x25, 0x13, 0xce, 0x17, 0x66, 0x61, 0xbd, + 0xda, 0x0e, 0x02, 0x3a, 0xd8, 0xc6, 0xe1, 0x52, 0x2f, 0xeb, 0xc4, 0xf6, 0xa8, 0x7c, 0xff, 0x82, + 0xb0, 0x39, 0xcd, 0xbc, 0xad, 0x27, 0x09, 0xc1, 0x28, 0xdd, 0x0a, 0x9a, 0x13, 0x33, 0x8e, 0x0d, + 0x85, 0x4d, 0x72, 0x27, 0xc8, 0xe5, 0xf3, 0xc1, 0x89, 0x79, 0x3a, 0x41, 0xe6, 0xf6, 0xde, 0x51, + 0xa6, 0x0f, 0x56, 0xd5, 0x79, 0xf7, 0x79, 0xc3, 0xab, 0xe2, 0x50, 0xae, 0x73, 0xe8, 0xf5, 0xeb, + 0x80, 0xda, 0x47, 0x2d, 0x36, 0x52, 0x8b, 0x85, 0x0f, 0xb6, 0x2f, 0xbb, 0x6c, 0x90, 0xec, 0xd2, + 0x6f, 0x7d, 0xf9, 0xb5, 0x97, 0x85, 0x1f, 0xb6, 0x90, 0xfc, 0xf4, 0xc2, 0x8f, 0x56, 0xbc, 0xb1, + 0x85, 0xfb, 0x7c, 0xc3, 0xdb, 0xf6, 0x29, 0xa6, 0x98, 0xce, 0x61, 0x7a, 0xef, 0x47, 0xfb, 0xab, + 0x42, 0x24, 0xef, 0x9a, 0x24, 0x2c, 0x77, 0x5d, 0x27, 0x96, 0x6b, 0xc2, 0x5f, 0x39, 0xdd, 0x22, + 0xc1, 0x43, 0x8b, 0xf1, 0xd1, 0x32, 0x2c, 0xe9, 0x49, 0xcf, 0x43, 0x3a, 0x51, 0xc9, 0xd3, 0x92, + 0x90, 0xf6, 0x31, 0x86, 0x6b, 0x73, 0xad, 0x18, 0xbb, 0xd8, 0x76, 0xbe, 0x63, 0xc7, 0x73, 0x31, + 0xb3, 0xaf, 0x53, 0xd0, 0xa0, 0x1e, 0x07, 0x96, 0x72, 0xc6, 0x7f, 0x63, 0xe3, 0xd5, 0xc1, 0x0f, + 0x3d, 0x66, 0x6d, 0x24, 0xa6, 0xf0, 0xa4, 0x2a, 0xe7, 0x52, 0x3c, 0x41, 0xfc, 0x33, 0xa6, 0x53, + 0xa5, 0x46, 0xd4, 0xed, 0xea, 0x19, 0xae, 0x1b, 0x8f, 0x8c, 0xaa, 0x82, 0xa9, 0xe9, 0xdc, 0x7c, + 0x9f, 0xcc, 0x01, 0x67, 0xe3, 0x66, 0xa3, 0x1e, 0x2c, 0xe1, 0x39, 0xc9, 0x9c, 0x8a, 0x3c, 0x98, + 0x1a, 0x43, 0x0e, 0xf6, 0x50, 0x8f, 0x48, 0xc5, 0xea, 0x19, 0x3b, 0xad, 0x80, 0x74, 0xab, 0xa7, + 0x05, 0xde, 0x11, 0x5f, 0xeb, 0x60, 0xa9, 0x03, 0x79, 0xac, 0xd9, 0x60, 0x0c, 0xd7, 0x20, 0x77, + 0x35, 0xcb, 0x97, 0x88, 0x49, 0x87, 0x86, 0xf8, 0x2e, 0x86, 0x33, 0x92, 0x87, 0x24, 0xd5, 0xaa, + 0x4f, 0x46, 0x81, 0xe4, 0x53, 0xfb, 0x86, 0x02, 0xe6, 0x0b, 0x69, 0x6d, 0x4f, 0xde, 0x38, 0xcf, + 0x8f, 0xbc, 0xfa, 0x20, 0xa5, 0x83, 0x1e, 0x90, 0x74, 0xf6, 0x1b, 0x26, 0x12, 0x06, 0xb2, 0xb9, + 0x2f, 0xb8, 0x1b, 0xe2, 0xfc, 0xa8, 0xde, 0xb4, 0x1e, 0x8f, 0xfc, 0x7e, 0xe0, 0x86, 0x09, 0xa0, + 0xd0, 0xef, 0x6a, 0xef, 0x27, 0x4a, 0x4b, 0x74, 0x76, 0xe4, 0xe3, 0x66, 0x84, 0x57, 0xe9, 0x3d, + 0xea, 0x5b, 0xb7, 0x78, 0x74, 0xf6, 0xb8, 0x41, 0x09, 0xd2, 0x2c, 0x81, 0xa9, 0x5f, 0xb1, 0xe8, + 0x89, 0x8f, 0x7a, 0x7f, 0x94, 0x25, 0xf9, 0xe7, 0xab, 0xce, 0x1a, 0xc5, 0xfa, 0xfa, 0xa4, 0x83, + 0x2c, 0x4c, 0x17, 0x7e, 0x81, 0x35, 0x6a, 0x5a, 0xdc, 0xfd, 0x34, 0x5e, 0xe4, 0xd5, 0x90, 0xe3, + 0xf2, 0xd3, 0xfd, 0x85, 0x49, 0x9d, 0x45, 0xe1, 0xdd, 0x98, 0xdf, 0xce, 0x26, 0xbd, 0x5f, 0x1f, + 0x79, 0x3a, 0x19, 0x53, 0xab, 0xe1, 0x77, 0x59, 0x32, 0xe0, 0x31, 0x2b, 0xcd, 0x32, 0xce, 0x47, + 0x16, 0x61, 0x6e, 0x28, 0xc7, 0x3c, 0x1f, 0xe7, 0x52, 0x23, 0x8d, 0x0a, 0xdf, 0x8b, 0x63, 0x43, + 0x42, 0x6e, 0x28, 0xd5, 0x93, 0x86, 0x9e, 0x38, 0x66, 0x84, 0x31, 0x53, 0x85, 0xc3, 0xcf, 0xb0, + 0x6d, 0xed, 0x5c, 0xba, 0x11, 0x46, 0xa5, 0xbb, 0x62, 0xd8, 0xf7, 0xd5, 0x15, 0x8d, 0x9b, 0x85, + 0xf6, 0x5d, 0xb3, 0xb4, 0x9e, 0xdc, 0x03, 0x91, 0x93, 0xc4, 0x7c, 0xa3, 0x93, 0xb9, 0xd9, 0x4e, + 0xe4, 0xa8, 0x19, 0xd7, 0xc3, 0x77, 0x51, 0xae, 0xfe, 0x75, 0x21, 0x07, 0x72, 0xaa, 0xf9, 0x4a, + 0xb6, 0x77, 0x07, 0xca, 0x52, 0x1e, 0xc9, 0x12, 0xfa, 0x04, 0x69, 0x7d, 0x3e, 0xc9, 0x38, 0x24, + 0xf1, 0x54, 0x91, 0xf4, 0x83, 0x9c, 0x80, 0x92, 0x9f, 0x2c, 0xe9, 0xf0, 0x33, 0xb2, 0x87, 0x65, + 0x66, 0x2b, 0xca, 0x2f, 0x56, 0x2e, 0xd3, 0x20, 0x4a, 0x8e, 0x82, 0x62, 0xd6, 0x5c, 0x7a, 0x71, + 0x33, 0x43, 0x8d, 0x59, 0x5b, 0xab, 0x07, 0xc7, 0xf4, 0x7a, 0x2c, 0xa6, 0x7a, 0x08, 0x1b, 0xdd, + 0x98, 0xbb, 0x71, 0xf7, 0x0e, 0xb0, 0xe1, 0xc8, 0xa0, 0xf2, 0xcf, 0xc5, 0x31, 0x75, 0xdc, 0x80, + 0xfe, 0x3e, 0xcd, 0xdf, 0x28, 0xfc, 0xd1, 0x37, 0x8b, 0xa9, 0xc0, 0x1a, 0x74, 0xe9, 0x78, 0xae, + 0xcd, 0xd7, 0x68, 0xd7, 0xa5, 0xed, 0xac, 0x70, 0x68, 0xf9, 0xdb, 0x57, 0x63, 0x3e, 0x66, 0xff, + 0xba, 0xf0, 0xdc, 0x17, 0x9e, 0xc6, 0xbc, 0x6c, 0x76, 0x8f, 0x94, 0x1b, 0x3a, 0x13, 0xd3, 0xf3, + 0x1a, 0xc5, 0x6f, 0xa2, 0xe2, 0xbd, 0x4f, 0x39, 0x26, 0x6a, 0x2e, 0x99, 0x44, 0xcd, 0x1b, 0x34, + 0x18, 0xa2, 0xdc, 0x52, 0x2f, 0xe0, 0xef, 0x5a, 0xa5, 0xf1, 0x49, 0x24, 0x87, 0x9f, 0x93, 0x53, + 0x12, 0x2a, 0xeb, 0x9b, 0xad, 0x5a, 0x6a, 0x10, 0x52, 0x4c, 0x32, 0xdd, 0xf3, 0xbc, 0x0a, 0x2a, + 0xe4, 0x1d, 0xf5, 0x5c, 0x5a, 0xaa, 0x9d, 0x1a, 0x5b, 0xf4, 0xb3, 0xdd, 0xe8, 0x00, 0x94, 0x09, + 0xe6, 0xa4, 0x75, 0xbc, 0x08, 0xe3, 0x1c, 0xc9, 0x33, 0xcf, 0x0b, 0x39, 0x0b, 0xaa, 0x21, 0x57, + 0xe8, 0x03, 0x3c, 0x29, 0x39, 0xdb, 0x11, 0x88, 0xca, 0x53, 0xf5, 0xc1, 0x61, 0x6f, 0x54, 0xc5, + 0xb6, 0xbc, 0x60, 0x06, 0x55, 0x0d, 0x17, 0x22, 0xef, 0x9e, 0x73, 0x8d, 0x90, 0x37, 0x4f, 0x81, + 0x95, 0xfa, 0x10, 0xfb, 0xd3, 0x86, 0x6e, 0x92, 0x58, 0xad, 0x28, 0x89, 0x5c, 0x59, 0x80, 0x52, + 0x0f, 0xd2, 0x71, 0xb3, 0xec, 0x8f, 0xca, 0x3c, 0x62, 0x4a, 0x1e, 0x7b, 0x85, 0x29, 0x2b, 0xa4, + 0x69, 0xcc, 0xa2, 0x0a, 0x07, 0x38, 0x02, 0x3c, 0xe2, 0x4b, 0x32, 0x47, 0xbc, 0x54, 0xa2, 0xbf, + 0xd0, 0x94, 0x10, 0x73, 0x61, 0xc8, 0x58, 0x3a, 0x08, 0xf6, 0xc3, 0x2f, 0x2a, 0xd9, 0xa4, 0x55, + 0x82, 0x4d, 0x76, 0xe3, 0xd1, 0x44, 0x5d, 0x62, 0x7f, 0xc2, 0x3d, 0x9b, 0x69, 0x50, 0x96, 0xa0, + 0x41, 0xfb, 0x2a, 0x9d, 0x1e, 0xed, 0xce, 0xc3, 0x06, 0x67, 0x16, 0xca, 0x24, 0x16, 0x5a, 0x0b, + 0x88, 0x7a, 0xb1, 0x5d, 0x56, 0xa9, 0x81, 0xcb, 0xaf, 0xb3, 0x7b, 0x10, 0x96, 0x46, 0xba, 0xf3, + 0x19, 0xeb, 0x69, 0xb0, 0x8f, 0x16, 0x54, 0x83, 0xb9, 0xc0, 0x8b, 0x69, 0x46, 0xc2, 0x26, 0x6a, + 0x05, 0xcb, 0x29, 0x47, 0xe6, 0xfb, 0xc1, 0x24, 0xf9, 0x65, 0x91, 0xc6, 0x24, 0x99, 0x71, 0x06, + 0xcc, 0x57, 0x8f, 0x25, 0xe9, 0x1a, 0xad, 0x8f, 0xd8, 0x7d, 0xf6, 0x59, 0x0e, 0xe6, 0x31, 0xaa, + 0x6e, 0x9e, 0x36, 0x83, 0xaf, 0x42, 0x18, 0x87, 0xfe, 0xf9, 0x24, 0x58, 0x3b, 0x72, 0xe4, 0x59, + 0x47, 0x12, 0x28, 0x99, 0xd8, 0x82, 0x89, 0x9d, 0x43, 0xed, 0x95, 0xc4, 0x29, 0x55, 0xd5, 0x2c, + 0x61, 0x2b, 0xf7, 0x81, 0xad, 0x7c, 0x27, 0x26, 0x5b, 0xa4, 0xaf, 0x6a, 0xc5, 0x2f, 0x6d, 0x2d, + 0x9a, 0xbf, 0x9f, 0x20, 0x1d, 0x3b, 0x59, 0x15, 0xd5, 0xb4, 0xeb, 0x92, 0x92, 0xa7, 0x51, 0xdb, + 0x2c, 0xda, 0x91, 0x41, 0x6d, 0x1d, 0x3b, 0x4e, 0xb3, 0x2b, 0x72, 0x3e, 0x9b, 0xd4, 0xe3, 0x54, + 0x2f, 0x77, 0x0e, 0xce, 0x3b, 0x6e, 0x98, 0x8d, 0xd2, 0x8e, 0x19, 0x5b, 0x30, 0x21, 0x74, 0xc9, + 0x38, 0x7f, 0x18, 0xfc, 0xba, 0x70, 0x9e, 0x64, 0xcc, 0xb5, 0x99, 0x75, 0x20, 0xa1, 0x9c, 0xe4, + 0x09, 0x8e, 0x4a, 0x46, 0xb3, 0x05, 0xa4, 0xf0, 0x27, 0x2c, 0x73, 0xd1, 0xcd, 0x24, 0x3c, 0xa6, + 0x26, 0xf5, 0x31, 0x15, 0xb9, 0x84, 0x73, 0x62, 0x06, 0x40, 0xde, 0x72, 0x91, 0xf3, 0x3e, 0x50, + 0xf3, 0xc7, 0x1d, 0xf4, 0x3b, 0x81, 0x12, 0xaf, 0xf4, 0xc8, 0x01, 0x6f, 0xc2, 0x3b, 0x64, 0xfb, + 0xa2, 0x6f, 0xa4, 0xbc, 0x86, 0x56, 0x45, 0xe7, 0x94, 0xef, 0xc8, 0xb2, 0xcd, 0x10, 0x5f, 0xc6, + 0x1b, 0xc0, 0xb0, 0x43, 0x17, 0x2e, 0xb7, 0xcd, 0xc8, 0x36, 0xa8, 0x87, 0xcc, 0x06, 0x98, 0xd5, + 0xab, 0xbf, 0xdb, 0x50, 0xa8, 0x8b, 0xe7, 0x9f, 0x78, 0xd6, 0x0e, 0xef, 0x6f, 0x1c, 0x79, 0xc0, + 0xa1, 0x7b, 0xff, 0xa1, 0x5c, 0x03, 0x51, 0x1e, 0x49, 0xf7, 0xf5, 0xb1, 0x23, 0xeb, 0x0e, 0x0f, + 0x07, 0x47, 0x07, 0x2c, 0xbb, 0x47, 0x43, 0xcf, 0x35, 0xbc, 0x95, 0x5f, 0xc9, 0xa3, 0x6c, 0x11, + 0x97, 0x35, 0x6e, 0xe7, 0x12, 0xb1, 0xf6, 0xb6, 0x18, 0x44, 0xc1, 0x6a, 0xf3, 0x0d, 0x97, 0x79, + 0x5f, 0x7d, 0xf9, 0xd5, 0x97, 0xf3, 0x6e, 0x78, 0x3c, 0xcb, 0x9a, 0x25, 0xbe, 0x8c, 0x65, 0x60, + 0x78, 0x5c, 0x17, 0x96, 0xac, 0x59, 0xd9, 0x7a, 0x2c, 0x4f, 0xcf, 0xe5, 0xe9, 0xdf, 0x1f, 0xe5, + 0xd0, 0x31, 0x69, 0x56, 0x70, 0x28, 0x6e, 0xdc, 0x35, 0x14, 0xda, 0x87, 0x79, 0x8b, 0x19, 0xba, + 0x74, 0x5a, 0xde, 0xd6, 0x18, 0xca, 0x4c, 0x7f, 0x4b, 0xde, 0x0b, 0xe1, 0xfd, 0xa5, 0x44, 0xb1, + 0x0f, 0x55, 0x63, 0xde, 0x06, 0x91, 0xb7, 0xf9, 0xb3, 0xf3, 0xfe, 0xcb, 0xf5, 0x9e, 0x33, 0xad, + 0xde, 0xc6, 0x43, 0x7a, 0xcc, 0x55, 0x8f, 0xb9, 0x1e, 0x10, 0xb9, 0xa2, 0x74, 0x95, 0x60, 0x7d, + 0x42, 0xc0, 0xd5, 0xc3, 0x74, 0x9d, 0xc6, 0x2a, 0x64, 0x1f, 0x61, 0xdd, 0x8f, 0xd1, 0x5b, 0x53, + 0xcb, 0x58, 0x44, 0x3b, 0x02, 0xef, 0x7f, 0x9d, 0xd6, 0x4e, 0xef, 0x7f, 0x72, 0xe9, 0xc7, 0xe0, + 0xb2, 0x93, 0x6b, 0x17, 0xdd, 0xd1, 0x72, 0xf3, 0x16, 0x4b, 0x91, 0xce, 0x21, 0xee, 0x37, 0x41, + 0xd7, 0xf5, 0xbe, 0x44, 0x99, 0x47, 0x68, 0x33, 0xaa, 0x8e, 0xb0, 0xec, 0x68, 0x1e, 0x04, 0xb2, + 0xf1, 0x8e, 0xfc, 0x62, 0x6d, 0x60, 0xcb, 0x5c, 0x68, 0xd9, 0x6c, 0x06, 0x30, 0x85, 0xb2, 0xfd, + 0x35, 0xa1, 0xa0, 0xb2, 0x02, 0xdd, 0xb3, 0xc2, 0x7e, 0x33, 0xdd, 0x4c, 0x13, 0x30, 0xd3, 0xfd, + 0xe4, 0x85, 0xfe, 0xf5, 0xe1, 0x23, 0x38, 0xda, 0x06, 0x70, 0x4e, 0xac, 0x0e, 0x3c, 0xc2, 0x2e, + 0x49, 0xaa, 0x0e, 0x6c, 0x49, 0xfb, 0x35, 0xad, 0x67, 0x89, 0xd4, 0xea, 0x9e, 0x8d, 0x98, 0x38, + 0x13, 0x59, 0x3c, 0x0c, 0xbd, 0xf6, 0xc1, 0xce, 0xf2, 0xe0, 0xfa, 0xc6, 0xcd, 0xd1, 0xfb, 0x77, + 0xae, 0x8f, 0x3c, 0xea, 0xad, 0x51, 0xf4, 0x03, 0x3a, 0xef, 0x4d, 0x9d, 0x2e, 0x4e, 0x65, 0xe2, + 0xf4, 0x57, 0xc8, 0xde, 0xc0, 0x23, 0x2e, 0xf0, 0xba, 0xa1, 0x82, 0xf6, 0x71, 0x56, 0xbd, 0xe9, + 0xbe, 0x42, 0xbb, 0x11, 0x36, 0x11, 0xe2, 0xdb, 0x70, 0xab, 0x7e, 0x27, 0x78, 0x58, 0x5a, 0x37, + 0x14, 0x5a, 0x04, 0xa5, 0x90, 0xfd, 0x4f, 0x51, 0x4c, 0xf6, 0x9f, 0xcb, 0xdf, 0x1f, 0xa6, 0xe2, + 0xe5, 0x90, 0x0e, 0x51, 0x68, 0x1a, 0x14, 0x98, 0xe4, 0xdb, 0x5b, 0xab, 0x3e, 0x49, 0xc5, 0x16, + 0x9a, 0x89, 0x41, 0xe5, 0x04, 0xfb, 0x9f, 0x9f, 0xe6, 0xbf, 0x46, 0x39, 0xc8, 0xfe, 0x13, 0xd3, + 0xfc, 0x47, 0x95, 0x5d, 0xec, 0xaf, 0xa6, 0xfc, 0x2b, 0x25, 0xa4, 0x6e, 0xc8, 0xf1, 0x2e, 0x14, + 0x1c, 0x1f, 0x72, 0x42, 0x4e, 0x94, 0x8a, 0x9c, 0x28, 0x15, 0x39, 0x21, 0x17, 0x7d, 0x66, 0x09, + 0x98, 0xd3, 0x6a, 0x8e, 0xb0, 0xfd, 0xef, 0xd5, 0x33, 0xe4, 0xed, 0x58, 0xa7, 0x76, 0xfe, 0x1e, + 0x4e, 0xe5, 0xc5, 0xf2, 0x9a, 0xf7, 0x01, 0x05, 0x0c, 0x27, 0xd9, 0xb5, 0x23, 0x1d, 0x22, 0x38, + 0x0d, 0x05, 0xd4, 0x85, 0x1c, 0xf2, 0xe3, 0x54, 0x88, 0x8f, 0xbf, 0x9f, 0x0b, 0x3c, 0xea, 0x5a, + 0xad, 0x5b, 0xdb, 0xb2, 0xd9, 0xbf, 0x5d, 0xe8, 0x65, 0xe4, 0x9c, 0x7d, 0x09, 0x57, 0x95, 0x22, + 0xb9, 0x4b, 0xb0, 0x5c, 0xbe, 0x49, 0xc3, 0xbb, 0x1f, 0xe3, 0xdc, 0x41, 0x7d, 0xce, 0xb3, 0x4b, + 0xb6, 0x7f, 0x7b, 0x18, 0x2e, 0xbe, 0xc3, 0x2b, 0xbc, 0x6f, 0x28, 0x70, 0xf1, 0x18, 0xc7, 0xf9, + 0x3f, 0xd3, 0xea, 0x72, 0x04, 0xeb, 0xb2, 0x82, 0x5d, 0xff, 0x35, 0xad, 0xc4, 0xdf, 0x73, 0x89, + 0x8d, 0x7f, 0x73, 0x89, 0xd1, 0x54, 0x89, 0xac, 0x1b, 0xf1, 0x4e, 0x4c, 0xcb, 0x57, 0xe5, 0x7c, + 0xef, 0xfa, 0x9b, 0xf3, 0xb5, 0xa5, 0xf2, 0xe5, 0x38, 0xd5, 0x57, 0xa7, 0xf2, 0x05, 0xd8, 0xc3, + 0x3e, 0x79, 0x81, 0x47, 0xb5, 0xbe, 0x32, 0x65, 0xf4, 0x0b, 0xf7, 0x49, 0xb5, 0xcc, 0xa5, 0x6e, + 0xe7, 0x95, 0xa2, 0xa9, 0xe5, 0x3a, 0xa9, 0x5c, 0x4b, 0x09, 0xc5, 0xa7, 0x51, 0x24, 0x6a, 0x50, + 0x5d, 0xaa, 0xd5, 0xc0, 0xb2, 0x57, 0xac, 0x34, 0x6f, 0x0f, 0x67, 0x73, 0xf9, 0x47, 0x30, 0x97, + 0xa7, 0x3e, 0x57, 0x0e, 0x8b, 0x3f, 0x2b, 0x07, 0x77, 0x91, 0x8e, 0x31, 0xbe, 0xba, 0x41, 0x69, + 0xe1, 0x77, 0x5b, 0xaa, 0x25, 0x7c, 0x23, 0x5b, 0x75, 0x87, 0xb8, 0x13, 0xa9, 0x3a, 0x1a, 0x78, + 0x54, 0x61, 0x0c, 0x5a, 0xb2, 0x30, 0x15, 0xa3, 0xd0, 0x9d, 0xbd, 0xec, 0xc2, 0x85, 0xbd, 0x81, + 0xed, 0x25, 0x50, 0xb2, 0x9e, 0xc6, 0x54, 0x49, 0x22, 0xb0, 0x5d, 0x06, 0x69, 0x26, 0x8f, 0x99, + 0xe6, 0x92, 0x04, 0xc7, 0xbf, 0x19, 0x53, 0xf2, 0xe8, 0x59, 0xd2, 0x90, 0x4a, 0x29, 0xe1, 0xb8, + 0xd9, 0x73, 0x61, 0xd8, 0x05, 0x5a, 0x9c, 0xe5, 0x81, 0x47, 0xe5, 0x3a, 0x4e, 0x15, 0xa0, 0x55, + 0xff, 0x4f, 0x77, 0xb3, 0xef, 0x5d, 0xa9, 0xf8, 0x36, 0x8e, 0x1f, 0x94, 0x3c, 0x31, 0x44, 0xf3, + 0x92, 0x21, 0xb1, 0x36, 0xb9, 0xa4, 0x55, 0xf1, 0xf3, 0xbb, 0x7f, 0x5a, 0xbc, 0x42, 0x19, 0xe3, + 0x95, 0x5d, 0x95, 0x8a, 0x37, 0xa0, 0xf0, 0xca, 0xfc, 0x92, 0x4d, 0xd3, 0xe2, 0xa1, 0xe4, 0x5f, + 0xb2, 0x45, 0x8b, 0xb3, 0x19, 0x6b, 0x09, 0xb0, 0x93, 0xdd, 0xff, 0x33, 0xb3, 0x85, 0x81, 0x3d, + 0xe7, 0xdf, 0x70, 0x79, 0x52, 0xed, 0xdb, 0x73, 0x61, 0x24, 0x1f, 0x67, 0x08, 0x4b, 0x76, 0x49, + 0x42, 0xc0, 0x76, 0x49, 0x6b, 0xe0, 0xd1, 0xfc, 0xf5, 0x4a, 0x9c, 0xdd, 0x3f, 0x9c, 0x96, 0xf2, + 0x49, 0x4a, 0x29, 0x79, 0x03, 0x5b, 0x28, 0xe5, 0xf9, 0x8f, 0x5a, 0x36, 0x57, 0xc2, 0xad, 0xe0, + 0x0d, 0x6b, 0x29, 0x07, 0x02, 0x8f, 0x56, 0xae, 0x57, 0x2a, 0xd8, 0xfd, 0xa3, 0x54, 0xca, 0x32, + 0x77, 0x36, 0xdd, 0xf6, 0xf7, 0x4d, 0xbe, 0xed, 0x2f, 0x9d, 0x9e, 0xbf, 0x20, 0x55, 0x2a, 0xd6, + 0xd7, 0x45, 0xd4, 0xcf, 0xac, 0xc0, 0x85, 0x8d, 0xec, 0xf3, 0x4c, 0x2a, 0x07, 0x25, 0x99, 0x03, + 0xdf, 0xb6, 0x98, 0xaa, 0x3b, 0x7d, 0x95, 0xa4, 0x73, 0xf8, 0x89, 0x46, 0x93, 0x75, 0x8a, 0x8c, + 0xed, 0x99, 0xab, 0xc1, 0xe1, 0x50, 0xe0, 0xd1, 0xe8, 0x95, 0x63, 0x48, 0x3f, 0xc5, 0x98, 0x5c, + 0xf2, 0x7a, 0xe0, 0xd1, 0x96, 0xcd, 0xc1, 0xf5, 0xbf, 0x5c, 0xdf, 0xfe, 0x86, 0xf8, 0x46, 0x28, + 0x89, 0xde, 0x39, 0x96, 0x2a, 0xaf, 0xf3, 0xb3, 0x6b, 0x9c, 0x51, 0xde, 0x7f, 0xa4, 0xca, 0x73, + 0x71, 0x79, 0xb3, 0x05, 0xbd, 0x46, 0xaa, 0x5c, 0x87, 0xb0, 0xfa, 0x05, 0xa8, 0x8b, 0xad, 0x1a, + 0x0d, 0x16, 0x25, 0x9f, 0x4f, 0x95, 0x7c, 0x48, 0x7c, 0x2b, 0x8b, 0xf9, 0x9d, 0x1e, 0xc3, 0xbc, + 0x53, 0x60, 0x89, 0x9a, 0xa2, 0xc1, 0x8c, 0xc9, 0x3e, 0xa3, 0x58, 0xb1, 0xd6, 0x34, 0xdf, 0xe5, + 0x2d, 0x9b, 0x15, 0x2e, 0xdf, 0xf7, 0x45, 0xca, 0x4f, 0x81, 0xf3, 0x2b, 0x48, 0xf7, 0x8b, 0x25, + 0x25, 0x84, 0x5c, 0x2a, 0x6e, 0x98, 0x97, 0x7d, 0x7c, 0x9f, 0x69, 0x2e, 0xf1, 0x8b, 0x82, 0x17, + 0x41, 0x5e, 0xd7, 0xc7, 0x61, 0xb9, 0x4c, 0x6b, 0x91, 0x2f, 0x9a, 0xdc, 0x49, 0x3c, 0x25, 0xc5, + 0xd0, 0x38, 0x5c, 0xe6, 0xcb, 0xa4, 0x0a, 0x2d, 0xde, 0x0a, 0xe2, 0xcc, 0x7c, 0x25, 0x53, 0x25, + 0xc8, 0x25, 0x1f, 0x22, 0x07, 0x35, 0xdb, 0xd7, 0x09, 0x92, 0x90, 0x17, 0x91, 0xff, 0x97, 0x08, + 0x0a, 0xa4, 0x3f, 0xd9, 0xf7, 0x9c, 0x92, 0xfb, 0xb3, 0x03, 0x61, 0x33, 0x72, 0x44, 0xb3, 0xe9, + 0xe4, 0x05, 0xcb, 0x92, 0x5e, 0xbb, 0x25, 0x74, 0x4a, 0xe3, 0xbc, 0x58, 0x4b, 0xba, 0xef, 0x39, + 0x96, 0xfa, 0x3f, 0x5c, 0x61, 0x50, 0xdf, 0x16, 0xb2, 0x15, 0xc6, 0x37, 0xc9, 0x3d, 0x59, 0xfa, + 0x9f, 0xbe, 0x8f, 0x32, 0xa9, 0x4c, 0x12, 0x87, 0x7d, 0x15, 0x1c, 0xfb, 0xd9, 0x47, 0x59, 0xd9, + 0x11, 0x2b, 0x6b, 0xb2, 0x78, 0x95, 0x6f, 0x3b, 0xe9, 0xc5, 0xcc, 0x5e, 0x0f, 0x71, 0xfe, 0xf6, + 0xbb, 0x53, 0x6d, 0x4a, 0xf2, 0xef, 0x15, 0x57, 0xd3, 0x7a, 0xf2, 0x5c, 0xef, 0x7c, 0x94, 0xf7, + 0xba, 0x34, 0x19, 0xc0, 0x81, 0x32, 0xc0, 0x3b, 0x49, 0x6e, 0x9e, 0xb5, 0xf8, 0x73, 0x43, 0x46, + 0x6d, 0xdf, 0x93, 0x03, 0x25, 0xd8, 0x6b, 0x89, 0xa6, 0x28, 0x86, 0x52, 0x92, 0xec, 0x8d, 0x02, + 0x06, 0x6e, 0x93, 0xd4, 0xa8, 0x98, 0x73, 0xe7, 0xc3, 0xac, 0xe7, 0x91, 0xca, 0xf5, 0x64, 0xb3, + 0x4c, 0x73, 0xe6, 0xba, 0x4e, 0xe4, 0xd0, 0x0d, 0xf2, 0x28, 0xd6, 0xcd, 0xc0, 0xeb, 0x1c, 0x06, + 0xb1, 0x1e, 0xb7, 0x08, 0xf9, 0x7b, 0x21, 0xd1, 0xd8, 0x3d, 0xfa, 0x42, 0xf5, 0x2d, 0xc8, 0xc9, + 0x2b, 0xd1, 0x39, 0xbc, 0xf8, 0x28, 0x8b, 0x7e, 0x46, 0x6b, 0xf8, 0x73, 0x7f, 0x36, 0x54, 0x50, + 0x05, 0x73, 0xc4, 0xfc, 0x23, 0x17, 0x42, 0x61, 0x78, 0x8e, 0xb3, 0x10, 0xe6, 0xca, 0xab, 0xc0, + 0x21, 0xe9, 0x5d, 0x4b, 0x93, 0xbb, 0xa4, 0x12, 0x23, 0x14, 0x57, 0xcc, 0x91, 0x12, 0x85, 0x17, + 0xc2, 0x1c, 0xbb, 0x6e, 0x7f, 0x22, 0xb4, 0xe7, 0x0b, 0xd5, 0x3a, 0x07, 0xf2, 0xfa, 0xf9, 0x9a, + 0x9c, 0x53, 0x6a, 0x9f, 0xc5, 0xb7, 0xea, 0x99, 0xc4, 0x2a, 0x26, 0xca, 0xdc, 0xa3, 0xf6, 0x46, + 0xff, 0xa3, 0x1a, 0xc5, 0x34, 0xed, 0x4b, 0xd8, 0xab, 0xf8, 0x76, 0xfb, 0x2d, 0xca, 0x5c, 0xcc, + 0xc7, 0x84, 0x7d, 0xa1, 0x27, 0x7d, 0x37, 0x4b, 0x82, 0x79, 0xda, 0x4d, 0x96, 0x39, 0xfe, 0x47, + 0xc3, 0x46, 0xde, 0xc7, 0x77, 0x9c, 0x74, 0x25, 0x24, 0x4b, 0x98, 0xc5, 0x9a, 0x4e, 0x0e, 0xad, + 0x6d, 0x61, 0x6b, 0x4e, 0x27, 0xd7, 0x2d, 0x4b, 0x49, 0x37, 0x6a, 0x21, 0x2d, 0x7d, 0x2d, 0xe7, + 0x1a, 0x92, 0x14, 0x07, 0xdd, 0xd9, 0x63, 0xa7, 0x93, 0x01, 0xd7, 0x2a, 0xb9, 0xee, 0x2c, 0xc9, + 0x83, 0x33, 0x42, 0x0e, 0xdf, 0x7e, 0x97, 0x08, 0x9b, 0x5a, 0x86, 0x25, 0x2f, 0xc2, 0xeb, 0x38, + 0x6b, 0xbc, 0xde, 0x32, 0x98, 0x93, 0xeb, 0x7d, 0x82, 0x6b, 0xf2, 0xdd, 0x8c, 0x63, 0xc3, 0xe0, + 0xce, 0xa9, 0xe5, 0x7d, 0x3a, 0x81, 0x47, 0xdd, 0x25, 0x3a, 0x17, 0xe9, 0x3c, 0xd5, 0xc7, 0x1d, + 0x1e, 0x5e, 0xe3, 0x48, 0x84, 0x6d, 0xee, 0xab, 0x39, 0x66, 0x83, 0x88, 0x89, 0x73, 0xce, 0xd5, + 0x7c, 0x8b, 0x12, 0xf3, 0xf4, 0xbe, 0x3b, 0x93, 0xbe, 0x62, 0xff, 0x51, 0x72, 0xdd, 0x8e, 0xea, + 0xad, 0xb7, 0x66, 0xd6, 0x5b, 0xe2, 0xf5, 0x56, 0xc2, 0x8b, 0x50, 0xb6, 0xbd, 0x44, 0x67, 0x55, + 0x48, 0x0a, 0x1f, 0xc5, 0xd6, 0x6d, 0x97, 0x89, 0xf7, 0x3b, 0x6d, 0x87, 0x90, 0xb3, 0xea, 0x94, + 0xee, 0x29, 0x6d, 0xe5, 0x95, 0xbe, 0x6d, 0xd2, 0x2a, 0x9d, 0x55, 0xee, 0x04, 0x13, 0x72, 0xfb, + 0x10, 0x36, 0x5a, 0xbe, 0xb8, 0xf3, 0x4b, 0xe1, 0x4f, 0x14, 0x94, 0xf7, 0xb4, 0x5d, 0xe9, 0x7a, + 0x51, 0x9a, 0x3b, 0x47, 0xea, 0xd1, 0x89, 0xbd, 0x9e, 0x36, 0x4d, 0x86, 0xb5, 0x90, 0x86, 0x8a, + 0x71, 0x30, 0x7b, 0xe7, 0x8f, 0x50, 0x76, 0xf5, 0x63, 0x8c, 0xed, 0xca, 0x9c, 0xcf, 0x08, 0x75, + 0x49, 0x55, 0xb2, 0x25, 0xf4, 0x0e, 0xc6, 0x79, 0xea, 0x33, 0xe3, 0x18, 0x45, 0x9c, 0x47, 0x0e, + 0x48, 0x46, 0xed, 0xf6, 0xb7, 0x32, 0x87, 0xcf, 0x91, 0x63, 0xf7, 0xc5, 0x41, 0xb1, 0x20, 0xee, + 0x18, 0xb1, 0x6f, 0xcd, 0x2c, 0x63, 0x97, 0x04, 0x87, 0xc5, 0x7d, 0xf4, 0x8d, 0x1b, 0x77, 0x0e, + 0xb7, 0x9d, 0x68, 0x4e, 0xc8, 0x4b, 0xdf, 0x1b, 0x15, 0x21, 0x42, 0x3a, 0xd6, 0xd6, 0x25, 0xcb, + 0xec, 0x1e, 0xd2, 0xba, 0xfb, 0xda, 0xc1, 0xec, 0x46, 0x99, 0x00, 0x2c, 0xde, 0x9f, 0xf0, 0xae, + 0x8e, 0x0a, 0x2e, 0xb5, 0x1c, 0xc7, 0x35, 0x42, 0x99, 0x28, 0x98, 0x18, 0x6b, 0xbf, 0xbe, 0xc0, + 0xda, 0x6a, 0xa1, 0x43, 0x35, 0xd4, 0x9e, 0x82, 0x4e, 0x1e, 0xd3, 0x26, 0xa1, 0x35, 0xde, 0xb7, + 0x50, 0xec, 0x62, 0x6f, 0xd0, 0xd6, 0x0d, 0xd3, 0x7a, 0x2a, 0x5f, 0xe4, 0x32, 0xfa, 0x4c, 0x2d, + 0xcf, 0xfd, 0xf6, 0x4c, 0x3d, 0x95, 0x3b, 0x87, 0x25, 0x25, 0x86, 0x66, 0x6e, 0xa5, 0x3a, 0xf9, + 0xbb, 0x5f, 0xfc, 0x6a, 0x07, 0xe4, 0x26, 0xf7, 0xf4, 0x70, 0x98, 0x9d, 0xc2, 0x92, 0x10, 0x22, + 0x6d, 0x9c, 0x16, 0x8f, 0x74, 0x72, 0xc6, 0x98, 0x70, 0xc9, 0x62, 0x47, 0x90, 0x80, 0x9d, 0x34, + 0x2f, 0x49, 0xed, 0x84, 0x5e, 0x05, 0xe5, 0xcb, 0x1c, 0xee, 0xf7, 0x53, 0xb4, 0x72, 0x3b, 0x39, + 0xe9, 0x00, 0x96, 0xe8, 0x87, 0xa5, 0xac, 0x94, 0xce, 0x03, 0xe5, 0x66, 0xa7, 0xce, 0x1e, 0xa0, + 0x75, 0x0c, 0xc6, 0xb0, 0x7b, 0x11, 0xc3, 0xf4, 0xee, 0x9c, 0xf4, 0xba, 0x75, 0x54, 0xb7, 0x73, + 0x5d, 0xc8, 0x24, 0x7c, 0xf6, 0x48, 0x2d, 0x9b, 0xed, 0x85, 0x3a, 0x97, 0xd8, 0x67, 0x16, 0x6a, + 0x56, 0x56, 0xd0, 0xfe, 0x69, 0x1c, 0x0d, 0x66, 0x1e, 0x0d, 0x35, 0x2d, 0xd8, 0x17, 0x16, 0x17, + 0xcc, 0xde, 0x9d, 0x68, 0x5b, 0xc4, 0x2e, 0x93, 0x0c, 0xfb, 0xd6, 0x85, 0x5d, 0x6e, 0x17, 0x71, + 0xb6, 0xf8, 0x7d, 0x85, 0xe0, 0x61, 0xb8, 0xa4, 0x6d, 0x5c, 0x92, 0x29, 0xb0, 0x55, 0x6e, 0x88, + 0xb1, 0xce, 0x4a, 0xfd, 0x2e, 0x8d, 0x01, 0xc9, 0xeb, 0x6c, 0xa4, 0x5c, 0x43, 0x4f, 0xb9, 0x0d, + 0x42, 0xb2, 0xf5, 0xed, 0xd1, 0x62, 0xa6, 0xea, 0xd4, 0xf0, 0xd6, 0x0a, 0x8d, 0x1e, 0x2c, 0x5a, + 0xec, 0xac, 0xc7, 0xfa, 0xe7, 0xb8, 0xe7, 0x63, 0x09, 0x62, 0x8c, 0xfd, 0x96, 0xf6, 0x61, 0xa5, + 0xc7, 0x18, 0xc5, 0x37, 0x37, 0xfb, 0x27, 0x42, 0xa0, 0xcb, 0x73, 0x44, 0x40, 0xff, 0x8b, 0x5f, + 0xa3, 0xcb, 0xec, 0x2f, 0x02, 0x53, 0x04, 0x39, 0xbb, 0xc2, 0xd5, 0x90, 0xc7, 0xa9, 0x3e, 0x11, + 0xa9, 0x70, 0xbc, 0x61, 0xef, 0xd1, 0x4d, 0xd6, 0x48, 0x17, 0xae, 0x91, 0x69, 0x47, 0xd4, 0x33, + 0x92, 0x47, 0xbb, 0xfd, 0x0e, 0x60, 0xd7, 0x55, 0xab, 0xc1, 0x0c, 0xc6, 0x79, 0xab, 0x21, 0x07, + 0x4c, 0x5e, 0x8f, 0xa5, 0x08, 0x66, 0x2f, 0xf0, 0x80, 0x15, 0xbf, 0x73, 0xc1, 0x26, 0xf6, 0xef, + 0x18, 0x8b, 0xf0, 0xd7, 0x14, 0xce, 0x5e, 0xb0, 0x1a, 0xe6, 0x40, 0x9e, 0x5c, 0x8c, 0xe9, 0x72, + 0x25, 0xa3, 0x54, 0xe3, 0xf2, 0x26, 0x69, 0x9d, 0x03, 0xc2, 0xab, 0x30, 0xa5, 0x99, 0x64, 0xa2, + 0xb0, 0xab, 0xcd, 0x68, 0xa6, 0x33, 0x2e, 0x2d, 0x4a, 0x0e, 0xcb, 0x4b, 0xb9, 0xf8, 0x6b, 0x0d, + 0xf9, 0x15, 0x93, 0x5c, 0xcd, 0x54, 0xba, 0x51, 0xc9, 0xd5, 0x5c, 0x71, 0xc5, 0xa8, 0xb9, 0xe6, + 0x08, 0xee, 0xab, 0xde, 0x92, 0xac, 0xb3, 0xec, 0x82, 0x3c, 0xae, 0xa1, 0x25, 0x0a, 0x52, 0x4d, + 0xba, 0x1c, 0x45, 0xbf, 0x86, 0xee, 0x7b, 0x23, 0xe8, 0xf3, 0xbd, 0xc1, 0xf5, 0x45, 0x9c, 0x42, + 0x9f, 0x82, 0xa4, 0x8d, 0x62, 0x10, 0x36, 0x0c, 0x32, 0x3c, 0xab, 0x4f, 0x62, 0x5b, 0x68, 0x0f, + 0xc1, 0x0e, 0xb0, 0xa2, 0xdb, 0x82, 0x6e, 0x6a, 0xd5, 0x95, 0x60, 0xf4, 0x76, 0x42, 0x0e, 0xfa, + 0x3a, 0x17, 0xe0, 0x4c, 0x41, 0xfb, 0xd1, 0x08, 0xf6, 0xb7, 0x96, 0x91, 0xf6, 0xc2, 0x4d, 0xf7, + 0x15, 0x32, 0xe4, 0xeb, 0x6f, 0xc7, 0xdc, 0x2d, 0x49, 0xdc, 0xb9, 0x35, 0xcb, 0x1b, 0xf6, 0xfe, + 0x13, 0xf7, 0x9a, 0xba, 0x28, 0x9f, 0x24, 0x16, 0x87, 0x69, 0x2d, 0x28, 0xa0, 0xdb, 0x95, 0x6b, + 0x38, 0x3d, 0x2b, 0x9a, 0xb5, 0x2f, 0x61, 0x31, 0x9c, 0x34, 0x0e, 0x66, 0x8d, 0xad, 0xbf, 0xff, + 0xca, 0x03, 0x0f, 0xe6, 0x57, 0x82, 0x7e, 0xef, 0x50, 0xd8, 0x3c, 0xb7, 0x12, 0xb2, 0x7e, 0x39, + 0x14, 0xb6, 0x04, 0x87, 0x15, 0xc4, 0x84, 0xb5, 0x30, 0xc7, 0x09, 0xba, 0xe6, 0x61, 0xc5, 0x2c, + 0x7b, 0x5b, 0x86, 0x0b, 0xbf, 0xa8, 0x7f, 0x80, 0xee, 0xb7, 0x1e, 0xd4, 0xed, 0x4d, 0x84, 0xcd, + 0xf7, 0x67, 0xfd, 0x32, 0x11, 0xce, 0x25, 0x1e, 0x41, 0x31, 0x07, 0x87, 0xef, 0x9f, 0xdc, 0xff, + 0x60, 0x70, 0xdd, 0x4b, 0x0f, 0x2a, 0xa6, 0xe0, 0xf0, 0xe0, 0xe4, 0xfe, 0xf5, 0xe8, 0x5e, 0x7f, + 0xbf, 0xee, 0x97, 0xb4, 0x1a, 0xf0, 0x83, 0x1e, 0x83, 0xc3, 0xf4, 0xfa, 0x03, 0x31, 0x3d, 0x8e, + 0xa8, 0xba, 0xc1, 0x2c, 0x4c, 0xdb, 0x7e, 0xbf, 0x4e, 0xae, 0x96, 0xbc, 0x98, 0x3e, 0x5f, 0x32, + 0xc8, 0xc7, 0x9a, 0x12, 0xab, 0x2e, 0x48, 0x86, 0xba, 0xc4, 0xa1, 0xc4, 0x23, 0x89, 0x03, 0x89, + 0xe0, 0x88, 0x54, 0x73, 0x78, 0xff, 0xe1, 0x03, 0x4a, 0xb9, 0x64, 0x28, 0xbb, 0x6c, 0x98, 0x32, + 0x47, 0xf6, 0x4a, 0xd5, 0x92, 0xc1, 0xf2, 0xef, 0x53, 0x43, 0xa5, 0x9a, 0xe0, 0xe8, 0xeb, 0xa3, + 0x55, 0x67, 0x9c, 0x74, 0x55, 0xde, 0x4b, 0x54, 0x82, 0x64, 0x70, 0xd9, 0x4a, 0x6c, 0xf2, 0x4b, + 0xf2, 0xbf, 0x62, 0xcc, 0x73, 0x99, 0xf9, 0xbc, 0xb7, 0xe9, 0xf5, 0x11, 0xc9, 0x8b, 0x79, 0x01, + 0x3c, 0x71, 0xbf, 0x1e, 0x6b, 0xd2, 0x10, 0xcb, 0xc2, 0xfa, 0x75, 0x0e, 0xea, 0x24, 0x2f, 0xd6, + 0x70, 0xae, 0x6c, 0xc3, 0xf4, 0x06, 0xf9, 0x45, 0x2a, 0xc1, 0x6e, 0xa8, 0x1b, 0x3e, 0x3a, 0xfc, + 0xd8, 0xf0, 0x81, 0xe1, 0xe0, 0xc8, 0x31, 0xfc, 0xa7, 0x84, 0xca, 0x38, 0xb4, 0x6c, 0x5a, 0xa8, + 0x5c, 0xfd, 0xea, 0xfe, 0xea, 0x3f, 0xf8, 0xf4, 0x38, 0xf3, 0x79, 0x73, 0x39, 0x46, 0xee, 0x25, + 0x31, 0x30, 0x5c, 0xe7, 0x98, 0xa5, 0x38, 0xb0, 0x6e, 0x36, 0xd9, 0xe6, 0xa8, 0x96, 0x6b, 0x1c, + 0x63, 0x8e, 0x17, 0x9b, 0x36, 0x10, 0xfd, 0x88, 0x9c, 0xcb, 0x2c, 0x89, 0x6a, 0x68, 0x37, 0x22, + 0x75, 0x9d, 0xdc, 0x9f, 0x90, 0xbc, 0x36, 0x4b, 0x08, 0x26, 0x7d, 0x48, 0xf1, 0xc4, 0x3e, 0x1f, + 0x13, 0x52, 0xf1, 0x5c, 0xa4, 0xda, 0x89, 0xeb, 0xfc, 0x60, 0x90, 0x82, 0xcc, 0x0f, 0x6c, 0x50, + 0x1c, 0x97, 0xdf, 0x11, 0xa1, 0xe4, 0x5c, 0xba, 0x93, 0x87, 0xe7, 0xa8, 0x0a, 0xbb, 0xd1, 0x59, + 0xef, 0x08, 0x10, 0xfe, 0x08, 0x9a, 0x50, 0x7f, 0x4f, 0x26, 0x06, 0x09, 0x6a, 0x10, 0xd5, 0xf1, + 0x4c, 0xed, 0x50, 0x1a, 0x16, 0x0c, 0x06, 0xce, 0xab, 0x17, 0x64, 0xf8, 0xdd, 0x06, 0x18, 0x1a, + 0xfb, 0x10, 0x74, 0xf3, 0xaa, 0xd4, 0x89, 0xb2, 0xfc, 0xb0, 0xb1, 0xfa, 0xac, 0x05, 0xe6, 0xd5, + 0xab, 0x13, 0xc1, 0xc4, 0x37, 0x46, 0xcd, 0xcd, 0xaa, 0x1a, 0x7a, 0x5d, 0x71, 0x5c, 0x2e, 0xae, + 0x9c, 0x1f, 0x36, 0xd0, 0x9b, 0xe2, 0x21, 0x7d, 0xdd, 0x16, 0x7a, 0x43, 0x86, 0x23, 0x89, 0x43, + 0x43, 0x87, 0xb0, 0x7d, 0x8f, 0x8c, 0x6d, 0x1b, 0x15, 0x67, 0x65, 0x8c, 0x28, 0xa9, 0x9b, 0x8b, + 0x68, 0x5f, 0x50, 0xd8, 0x42, 0xbb, 0xfc, 0x5a, 0x1a, 0x78, 0x3c, 0xcd, 0x0a, 0xf4, 0x2b, 0x74, + 0xc6, 0xe4, 0x7e, 0x71, 0x27, 0x72, 0xfd, 0x23, 0x5c, 0xd3, 0xf4, 0xfe, 0x1e, 0x0b, 0xcd, 0x8f, + 0x2b, 0x0c, 0x62, 0x77, 0xa2, 0xd3, 0xe7, 0x9a, 0xe5, 0x34, 0x15, 0x42, 0x09, 0x51, 0x26, 0xd0, + 0xda, 0xf6, 0xbf, 0xa6, 0xb5, 0xcd, 0xca, 0x75, 0x9d, 0x5b, 0x75, 0x1a, 0x70, 0x0c, 0x2a, 0xfa, + 0xe0, 0x3a, 0x73, 0x0b, 0x7e, 0x8f, 0x0b, 0x9a, 0x57, 0x7f, 0x5c, 0xc9, 0x0b, 0xae, 0x53, 0x0c, + 0x52, 0xc3, 0x1a, 0xe0, 0x3d, 0x8a, 0x67, 0x85, 0xbf, 0x1f, 0x38, 0x17, 0x7d, 0x46, 0xb9, 0xd5, + 0x87, 0x7f, 0x75, 0xf8, 0x57, 0x55, 0x67, 0x46, 0xb3, 0x1c, 0xc6, 0xe8, 0xc4, 0x4b, 0x09, 0x29, + 0xeb, 0xd0, 0x03, 0xda, 0x2e, 0x67, 0xaf, 0xd8, 0xe1, 0x4c, 0xeb, 0xb6, 0x9c, 0xb6, 0x60, 0x5a, + 0x5a, 0x2b, 0xef, 0x73, 0x56, 0x7e, 0xfb, 0x2b, 0x69, 0x29, 0xd7, 0xc5, 0x58, 0x8d, 0x75, 0xb1, + 0x37, 0x28, 0x06, 0xb9, 0xe1, 0xb1, 0x57, 0x38, 0xf5, 0x0f, 0x6f, 0xaa, 0x06, 0xcb, 0x4d, 0xb5, + 0x90, 0xeb, 0x5f, 0x8f, 0x1c, 0x75, 0x9d, 0x7d, 0x69, 0x54, 0xcc, 0x20, 0xcf, 0xfb, 0x47, 0xc2, + 0x4e, 0xb1, 0xba, 0xeb, 0xbf, 0x2d, 0x33, 0x57, 0x69, 0xb6, 0xb4, 0x44, 0xa3, 0x74, 0x08, 0x0b, + 0xe6, 0x6a, 0x10, 0x4a, 0x1c, 0x2f, 0x72, 0x49, 0xcd, 0x67, 0x27, 0xf7, 0x8d, 0x4d, 0x5d, 0x27, + 0xf2, 0x0f, 0xfd, 0xb5, 0x75, 0xa2, 0x7f, 0xbb, 0x7f, 0xea, 0x3a, 0x91, 0xef, 0xbd, 0x9b, 0x91, + 0x3f, 0x48, 0xea, 0xd6, 0x9d, 0xc0, 0xfa, 0xf4, 0x26, 0x6f, 0xb5, 0xb2, 0xa8, 0xb4, 0x10, 0x5c, + 0x41, 0xda, 0x39, 0xea, 0x0a, 0xcb, 0xbb, 0x9f, 0x06, 0x67, 0x38, 0xaf, 0xa0, 0x06, 0xec, 0x38, + 0x1f, 0x5a, 0xaa, 0x4f, 0x41, 0x3e, 0xb7, 0xc5, 0x14, 0xac, 0x56, 0x72, 0x82, 0xab, 0x20, 0x47, + 0x31, 0xd2, 0x2f, 0x86, 0x3b, 0xed, 0x41, 0xff, 0xa3, 0xa1, 0xfd, 0xfe, 0xea, 0xf0, 0x62, 0x7b, + 0x93, 0x62, 0xe5, 0x74, 0xa6, 0xa8, 0x45, 0xd3, 0xc0, 0x1b, 0x9a, 0xaa, 0x59, 0x37, 0x7f, 0x12, + 0xc3, 0xe7, 0x96, 0x56, 0x8b, 0xde, 0xf5, 0x3f, 0x22, 0x64, 0x14, 0xd6, 0xb8, 0x72, 0x4c, 0x75, + 0x5b, 0x7a, 0xa5, 0xa3, 0xe1, 0x89, 0x4c, 0x1e, 0xc1, 0xff, 0xbf, 0x3f, 0x7b, 0x2d, 0x4b, 0xb4, + 0x2c, 0xcd, 0x23, 0xd0, 0xdd, 0xd7, 0x17, 0x8f, 0xb9, 0x34, 0x5e, 0xdb, 0x09, 0xf6, 0x7a, 0x87, + 0xce, 0x11, 0x20, 0x0d, 0x9d, 0xff, 0x35, 0xe6, 0xc1, 0x72, 0xd8, 0xfd, 0x0e, 0xce, 0xd2, 0xa3, + 0x61, 0xe2, 0xd5, 0x58, 0x2b, 0xc5, 0x1a, 0xf4, 0x0f, 0x74, 0x77, 0xc9, 0x5e, 0xd6, 0xf4, 0x9d, + 0x76, 0x91, 0xbe, 0xda, 0x1a, 0x96, 0xbd, 0xc8, 0xf1, 0xa3, 0x44, 0x70, 0x41, 0xf6, 0x23, 0x6d, + 0xc9, 0x4a, 0xca, 0x05, 0x7e, 0xf4, 0x0d, 0xd3, 0x4e, 0x6b, 0xab, 0x62, 0x68, 0x3c, 0x05, 0xd7, + 0x0a, 0x0d, 0x96, 0x90, 0x0e, 0x7c, 0x63, 0x69, 0xde, 0x1b, 0x79, 0xb0, 0x59, 0x76, 0xc0, 0xf1, + 0x0a, 0x82, 0xde, 0xfb, 0x3f, 0x76, 0xe3, 0x78, 0x49, 0x40, 0x12, 0xa7, 0xb5, 0xfd, 0x5e, 0x6b, + 0x79, 0x1f, 0xde, 0x69, 0xbb, 0x47, 0xdb, 0x37, 0x5b, 0xc9, 0xf7, 0xc9, 0x5b, 0x77, 0x25, 0xda, + 0xac, 0xb4, 0x67, 0x8e, 0xce, 0x61, 0x25, 0x4b, 0xb6, 0x7b, 0x94, 0xb9, 0xc4, 0x9f, 0x53, 0x6e, + 0x4b, 0xb3, 0xb5, 0xdc, 0x32, 0xf6, 0xcc, 0x21, 0x16, 0x72, 0x5d, 0xd2, 0x5a, 0xee, 0xa5, 0x25, + 0x97, 0xc4, 0xb2, 0x25, 0x57, 0x59, 0xb5, 0x75, 0x10, 0xb1, 0x3b, 0x50, 0xec, 0x3c, 0xf3, 0x0a, + 0xde, 0x56, 0xec, 0xdc, 0xe2, 0x95, 0x18, 0x43, 0x52, 0xde, 0xb2, 0x07, 0x9a, 0x4a, 0x74, 0xd7, + 0xfb, 0xf1, 0x89, 0x38, 0xfc, 0x74, 0xb6, 0x4f, 0xc2, 0xdf, 0xa2, 0xc8, 0x1c, 0xd2, 0x94, 0xb2, + 0xec, 0x64, 0x61, 0x3c, 0x27, 0xcd, 0x9d, 0x58, 0x13, 0x3b, 0x9e, 0x92, 0xb9, 0x08, 0xd7, 0x50, + 0xea, 0xba, 0x61, 0x10, 0xf9, 0xc8, 0x5c, 0x84, 0xfc, 0x8f, 0x48, 0xe7, 0x49, 0xab, 0x4c, 0x8a, + 0x49, 0x60, 0x60, 0x6a, 0xa5, 0x65, 0xb0, 0xac, 0x08, 0xf1, 0xaf, 0xea, 0xa6, 0x2a, 0x70, 0x21, + 0xc7, 0x6a, 0xf5, 0x57, 0x85, 0xb2, 0xaf, 0xf7, 0x20, 0xf7, 0x96, 0xbd, 0xf3, 0xc7, 0xe0, 0x0c, + 0xe5, 0x06, 0x91, 0x8f, 0x28, 0x58, 0x0a, 0x56, 0x4d, 0x22, 0x5b, 0xaf, 0xcc, 0xf1, 0x27, 0xbe, + 0xca, 0x92, 0x4c, 0x0d, 0xc9, 0x4e, 0xc6, 0xaa, 0x0f, 0xc0, 0x22, 0xc2, 0x54, 0x53, 0x72, 0xed, + 0x2a, 0xcd, 0xf3, 0xf3, 0x5d, 0xc9, 0x9d, 0x60, 0x61, 0x3c, 0x90, 0x64, 0x94, 0x75, 0xc3, 0x73, + 0x90, 0x8f, 0xce, 0xa1, 0xfb, 0x93, 0x69, 0xbf, 0x92, 0xfb, 0x8a, 0xc2, 0xaa, 0x24, 0x2f, 0x50, + 0x98, 0x96, 0x17, 0x7b, 0x59, 0x9e, 0xa1, 0x15, 0x16, 0xab, 0xdc, 0xab, 0xd5, 0xd3, 0x84, 0x3c, + 0xb5, 0x85, 0x79, 0xc8, 0x3a, 0xe4, 0xdb, 0x0a, 0x21, 0x27, 0x36, 0x73, 0x6c, 0x28, 0x17, 0xa9, + 0x08, 0xce, 0x49, 0x12, 0xbe, 0x69, 0x6e, 0x92, 0x48, 0x3e, 0x8f, 0x41, 0x6e, 0x21, 0x5c, 0x49, + 0x9a, 0xd1, 0xff, 0xda, 0xc1, 0x75, 0xde, 0xab, 0x88, 0x1c, 0x1a, 0x14, 0xb3, 0x64, 0xd2, 0x46, + 0xfe, 0x2c, 0x3a, 0xbd, 0xa3, 0xad, 0x2f, 0xd1, 0xfe, 0xc5, 0x7a, 0xe4, 0x61, 0xf5, 0xc8, 0xc3, + 0x92, 0x5c, 0x4c, 0x2b, 0x0f, 0x7b, 0xd4, 0x1a, 0x85, 0x56, 0x9b, 0x46, 0xbf, 0x30, 0x48, 0x2b, + 0x89, 0x82, 0xb3, 0x46, 0xdf, 0x36, 0x6d, 0xaf, 0x97, 0x39, 0xdd, 0xc6, 0x4b, 0xd7, 0x23, 0x90, + 0x9f, 0x3f, 0x49, 0x3a, 0xed, 0x42, 0x44, 0x1b, 0xf4, 0x6f, 0x70, 0xf6, 0x42, 0x23, 0xb6, 0xa9, + 0x45, 0x01, 0xc3, 0x01, 0xe4, 0x9d, 0x0a, 0x42, 0x60, 0x88, 0x4a, 0xb5, 0x66, 0x27, 0x14, 0xd3, + 0xfd, 0xb7, 0xc1, 0x51, 0xe4, 0xf3, 0x17, 0x2a, 0x26, 0xa9, 0xb6, 0x79, 0x34, 0x5a, 0xec, 0xf6, + 0xc0, 0x42, 0xb3, 0x05, 0x4a, 0x43, 0xd9, 0xc1, 0xd1, 0x81, 0x52, 0x45, 0x3f, 0x40, 0xbb, 0x09, + 0xcb, 0x62, 0xa0, 0xe4, 0xc9, 0x55, 0xaf, 0xbe, 0xf8, 0xea, 0xcb, 0xaf, 0xbe, 0x58, 0xfd, 0x87, + 0xc7, 0x0f, 0x89, 0x7b, 0xd1, 0x69, 0xd5, 0xa5, 0xd0, 0x68, 0xb1, 0x59, 0x21, 0xa9, 0x63, 0x5f, + 0xf9, 0x86, 0xbb, 0x0a, 0xca, 0xe4, 0x5a, 0x2c, 0xa5, 0x24, 0x54, 0x81, 0x61, 0xf3, 0x41, 0x97, + 0x0d, 0x18, 0x86, 0x7c, 0x5b, 0x5b, 0x61, 0x0c, 0x82, 0x1b, 0x0a, 0xab, 0xfe, 0xe3, 0xc5, 0xff, + 0xf8, 0xb7, 0xff, 0x78, 0x71, 0xe9, 0x9f, 0x8e, 0x1d, 0xc2, 0x9a, 0xdb, 0xe4, 0x2b, 0x38, 0x8f, + 0x8c, 0x78, 0x2b, 0xdf, 0x50, 0xf4, 0x31, 0x55, 0xaa, 0xb5, 0x5a, 0x30, 0xc7, 0xae, 0x70, 0x36, + 0xfe, 0x46, 0x42, 0x26, 0x5a, 0x85, 0x07, 0x35, 0xf8, 0x80, 0xa2, 0x8f, 0x77, 0x4a, 0xb5, 0x16, + 0x0b, 0xc6, 0x5c, 0x19, 0x06, 0xdd, 0x33, 0x6d, 0x0b, 0xd1, 0x75, 0x3b, 0xba, 0xca, 0xdb, 0xe6, + 0xa0, 0xab, 0x06, 0xb9, 0x99, 0xb3, 0xf8, 0x6e, 0xc4, 0xf7, 0xf3, 0x28, 0xa3, 0x81, 0x6e, 0x2f, + 0xf2, 0x53, 0x63, 0xe8, 0xd3, 0x82, 0x3e, 0x8f, 0xe3, 0xbb, 0x0d, 0x79, 0xdb, 0x9d, 0x8a, 0x0b, + 0x5d, 0x7d, 0xe1, 0x60, 0x1b, 0xf1, 0x92, 0xed, 0x18, 0xf2, 0x4b, 0x7c, 0x47, 0x31, 0x64, 0xbb, + 0xb2, 0x16, 0x5d, 0xfd, 0xe8, 0x73, 0x02, 0xdf, 0x03, 0xe8, 0x33, 0xa2, 0x28, 0xbb, 0x84, 0xe4, + 0x90, 0xdb, 0xb2, 0x51, 0xd1, 0x4b, 0x73, 0xe9, 0xb4, 0xf7, 0x52, 0x3f, 0xef, 0x76, 0x3f, 0x2e, + 0x76, 0xd6, 0x2e, 0x3d, 0x09, 0xba, 0x35, 0x90, 0x67, 0xc1, 0x92, 0xee, 0x14, 0x71, 0x0b, 0x83, + 0x14, 0xb7, 0xf0, 0xae, 0x3d, 0x2c, 0x5d, 0x8a, 0x14, 0xee, 0x2b, 0x08, 0x36, 0xbc, 0xa7, 0x73, + 0x7f, 0xcb, 0x66, 0x07, 0xc4, 0x41, 0x76, 0x43, 0x09, 0xa6, 0x71, 0x46, 0xbb, 0x76, 0x0e, 0x87, + 0xcc, 0x8a, 0x25, 0x6a, 0x44, 0xe8, 0x97, 0x21, 0xd4, 0xb3, 0xa3, 0x11, 0xf4, 0xc9, 0xe1, 0xbc, + 0x0c, 0xae, 0x5c, 0x25, 0xd7, 0x35, 0x57, 0xc9, 0xe3, 0x2f, 0xb3, 0x2b, 0x57, 0xbf, 0x9e, 0x76, + 0x56, 0x63, 0xfe, 0x86, 0x41, 0xa8, 0x9c, 0x7b, 0xbf, 0x45, 0x59, 0x45, 0xe9, 0xc3, 0xd3, 0xd3, + 0xe4, 0x60, 0x9a, 0x5c, 0xb1, 0xff, 0xcf, 0x95, 0xeb, 0x7b, 0x89, 0xe2, 0x57, 0xce, 0xf5, 0xbd, + 0xe4, 0x5f, 0x1f, 0x59, 0x54, 0xb3, 0xfe, 0x7e, 0x53, 0x5c, 0xa7, 0x94, 0x5f, 0x36, 0xdd, 0x5f, + 0x2a, 0xcb, 0x14, 0x87, 0xa5, 0x1f, 0x43, 0x0d, 0x72, 0xcc, 0x33, 0xdd, 0xd9, 0xd8, 0x9a, 0x85, + 0x42, 0x83, 0xd5, 0x48, 0x37, 0x4a, 0x8f, 0xbb, 0x4e, 0x7c, 0x89, 0xf6, 0xc3, 0xcd, 0x14, 0x7a, + 0xad, 0x5b, 0x46, 0x91, 0xb6, 0x43, 0x70, 0x1d, 0xb5, 0x11, 0x47, 0xc5, 0x6f, 0x14, 0x4f, 0x46, + 0x69, 0xa6, 0x5d, 0x42, 0x3f, 0x91, 0xaa, 0x21, 0x8e, 0xa7, 0x2c, 0x2a, 0xa5, 0x74, 0xae, 0x6f, + 0xec, 0x5a, 0x0f, 0x54, 0x60, 0x29, 0x15, 0x8a, 0xa9, 0xe9, 0x81, 0xbf, 0xff, 0x37, 0x05, 0xa7, + 0xfe, 0xc2, 0xda, 0x35, 0xba, 0x38, 0x3c, 0xbf, 0xae, 0x5d, 0xef, 0xd0, 0x05, 0x1f, 0xf0, 0x0f, + 0x87, 0x1b, 0x63, 0xd2, 0xf3, 0x23, 0x61, 0x3f, 0xd2, 0x95, 0x4d, 0xe1, 0xdc, 0x36, 0x13, 0x8e, + 0x3e, 0xfd, 0xf3, 0x9b, 0x42, 0xf9, 0x4a, 0x5e, 0xde, 0x04, 0x14, 0x2b, 0x65, 0xa9, 0xf3, 0x26, + 0xc5, 0x81, 0x3d, 0x13, 0x6f, 0x2b, 0xd6, 0xe0, 0x56, 0x65, 0xae, 0xd0, 0x6a, 0x90, 0x1f, 0xd2, + 0xc5, 0x6d, 0x0e, 0x4f, 0xe3, 0x66, 0xc5, 0x14, 0x2d, 0xe6, 0xb1, 0x88, 0x74, 0xd1, 0x8f, 0x23, + 0x20, 0xd4, 0xec, 0xd2, 0x1f, 0x5f, 0x77, 0x3f, 0xcc, 0x35, 0x28, 0x35, 0x9c, 0x73, 0x4e, 0x9b, + 0x31, 0x46, 0xf9, 0xda, 0x94, 0xdc, 0xbc, 0xfd, 0x4a, 0x89, 0x76, 0xd6, 0x88, 0x6e, 0x86, 0xde, + 0xa4, 0xe4, 0x62, 0x9e, 0xf9, 0x02, 0x4a, 0xd8, 0xe2, 0x54, 0x8e, 0x92, 0x21, 0x99, 0x63, 0x70, + 0xfd, 0x5e, 0x1c, 0x37, 0x1d, 0x2f, 0x50, 0x6d, 0xa3, 0xd2, 0xce, 0x91, 0x90, 0x3f, 0xa6, 0x7b, + 0x9e, 0x6b, 0xcb, 0xa7, 0xf9, 0x3e, 0xab, 0xb6, 0x65, 0x9f, 0xa7, 0xb6, 0x83, 0xa0, 0x04, 0x38, + 0x37, 0x4b, 0x9b, 0x31, 0x4a, 0x79, 0xcd, 0x55, 0x6c, 0x96, 0x6b, 0xf2, 0xc6, 0x94, 0x72, 0x91, + 0x17, 0x8e, 0xab, 0x6b, 0x68, 0xef, 0xcc, 0xa7, 0x27, 0x90, 0x43, 0xc2, 0xdc, 0xe8, 0x5b, 0xab, + 0x2b, 0xa4, 0xf2, 0x33, 0xa6, 0x6a, 0xfa, 0xad, 0xe0, 0xfa, 0x17, 0xd6, 0x87, 0x9e, 0x23, 0x18, + 0x20, 0xde, 0xff, 0xf0, 0xe8, 0x7a, 0xc4, 0x65, 0x84, 0x01, 0x97, 0x90, 0xa3, 0x95, 0x30, 0x15, + 0x06, 0x59, 0x98, 0xf7, 0xe8, 0x14, 0x18, 0x64, 0x5d, 0x16, 0x06, 0xc3, 0xbb, 0x18, 0x06, 0x4a, + 0xa3, 0x56, 0xdb, 0x64, 0x4f, 0x61, 0x7d, 0xb1, 0xb6, 0x8b, 0x44, 0x6e, 0x82, 0x96, 0x70, 0x7d, + 0xcb, 0x15, 0x1b, 0xe6, 0x29, 0x09, 0x9f, 0xbf, 0x50, 0xe3, 0x07, 0x88, 0x02, 0x84, 0xe0, 0xd3, + 0x72, 0xee, 0x27, 0x8b, 0xd6, 0x4f, 0x73, 0x14, 0x2b, 0x42, 0x14, 0x94, 0x52, 0x91, 0x2f, 0xdd, + 0x91, 0x7d, 0xe1, 0x1d, 0xae, 0xa5, 0x80, 0xa7, 0x19, 0x39, 0x88, 0x64, 0x5e, 0xe6, 0x28, 0x24, + 0x73, 0x53, 0x8c, 0xe2, 0xdc, 0xaa, 0x6b, 0xa9, 0x94, 0xa3, 0x69, 0x49, 0x6d, 0x81, 0xfe, 0x35, + 0x38, 0x3e, 0x15, 0xb8, 0xf8, 0x28, 0xd1, 0x5d, 0x4a, 0x27, 0x38, 0x70, 0xcc, 0xf1, 0x29, 0x9a, + 0x75, 0xed, 0x77, 0x3b, 0x88, 0x43, 0x17, 0xfb, 0xf9, 0xc5, 0xba, 0x61, 0x7b, 0xea, 0xac, 0x51, + 0x72, 0x76, 0x34, 0x93, 0x8e, 0x88, 0x66, 0x2a, 0x0c, 0x5d, 0xc5, 0xa1, 0xe9, 0x35, 0x6d, 0xe6, + 0x72, 0x96, 0x2e, 0xbd, 0x94, 0x8b, 0xe3, 0x9d, 0x69, 0x93, 0xbc, 0x3f, 0x4c, 0xec, 0x53, 0x3e, + 0x9b, 0xa9, 0x17, 0x3d, 0x78, 0x94, 0x68, 0x3f, 0xdd, 0xe7, 0x0e, 0x6f, 0xd0, 0xdc, 0x89, 0x5c, + 0x43, 0x4e, 0x13, 0xf1, 0x6e, 0x39, 0x65, 0xc8, 0xc5, 0x35, 0x55, 0xdd, 0x88, 0xb3, 0xa8, 0xdf, + 0x13, 0xc2, 0x5e, 0xf4, 0x57, 0x75, 0x03, 0x6c, 0x73, 0xe0, 0x9c, 0xe5, 0xdf, 0x8a, 0xb1, 0x37, + 0xa2, 0xcc, 0x0d, 0x30, 0x3b, 0xec, 0x43, 0x1e, 0xc6, 0xa9, 0x54, 0x6a, 0x5f, 0x65, 0xf2, 0x52, + 0xb1, 0xeb, 0x23, 0x3a, 0xf9, 0xe2, 0x8f, 0x81, 0x79, 0x3b, 0x79, 0x35, 0x18, 0x79, 0x96, 0x4b, + 0x72, 0x73, 0x7b, 0x15, 0xf3, 0xf5, 0x7e, 0x3e, 0x75, 0xc7, 0xf3, 0xaf, 0xa3, 0xda, 0x71, 0x75, + 0x68, 0x4c, 0x69, 0x4e, 0xa6, 0xa4, 0x34, 0x52, 0x11, 0x4a, 0x02, 0xb9, 0x38, 0x1b, 0x3b, 0x29, + 0x75, 0x2a, 0x5d, 0x69, 0xc1, 0x6a, 0xb0, 0x82, 0x33, 0x33, 0xb5, 0x42, 0x3b, 0x17, 0x9c, 0x37, + 0xb2, 0x84, 0xac, 0x58, 0xfc, 0x9e, 0x88, 0x99, 0xb9, 0x41, 0xa3, 0xe0, 0x06, 0x35, 0x5e, 0x30, + 0xb5, 0xd6, 0xce, 0x73, 0x71, 0x8e, 0xbd, 0x11, 0x71, 0x8a, 0x67, 0xf8, 0x8b, 0x2f, 0x31, 0xd7, + 0x79, 0x36, 0xbd, 0xd7, 0x22, 0xbd, 0xa7, 0x03, 0xf9, 0xa6, 0x8f, 0x70, 0x76, 0xfd, 0xcc, 0x7d, + 0x19, 0x72, 0xa3, 0x74, 0x15, 0xf2, 0xe7, 0x1e, 0x92, 0xb2, 0x24, 0x8b, 0xec, 0x91, 0x1e, 0x99, + 0x7e, 0x56, 0x82, 0x78, 0x32, 0xd5, 0x30, 0xe5, 0xc4, 0x44, 0x6c, 0xb4, 0x99, 0xcf, 0x4a, 0xe4, + 0xfe, 0xf4, 0x24, 0x18, 0x43, 0x66, 0x71, 0x62, 0xe2, 0xd2, 0xd3, 0x12, 0x7f, 0x4b, 0x3d, 0x90, + 0x47, 0xd5, 0x3b, 0x67, 0xd9, 0x73, 0x1c, 0x39, 0x74, 0x2b, 0xbd, 0x7e, 0xbf, 0x54, 0x4d, 0xe7, + 0x1b, 0xe4, 0x1a, 0x2e, 0xbb, 0x5a, 0xb4, 0xb2, 0xe1, 0x2d, 0x8f, 0xb0, 0x68, 0xd1, 0x85, 0x75, + 0x7d, 0x44, 0xba, 0x6d, 0x5e, 0x17, 0x69, 0x96, 0xc5, 0x1e, 0x39, 0xac, 0x2d, 0x97, 0x23, 0x6a, + 0x7b, 0xc9, 0x3e, 0xa1, 0xff, 0xab, 0x70, 0x89, 0x76, 0x62, 0x75, 0x82, 0xe1, 0x79, 0xb1, 0x3a, + 0xb0, 0x45, 0x6e, 0x14, 0x3a, 0x6d, 0x45, 0x4f, 0x5a, 0x46, 0x6e, 0x67, 0x45, 0x4a, 0x67, 0x6a, + 0x70, 0xf4, 0xe8, 0xac, 0xee, 0x22, 0x30, 0x09, 0xd9, 0x65, 0xe9, 0x0a, 0xdf, 0x80, 0x1e, 0x92, + 0x1a, 0x28, 0x86, 0xce, 0x20, 0x8d, 0x94, 0x9f, 0x9f, 0xd2, 0x59, 0xbf, 0xba, 0xcf, 0x37, 0x5c, + 0xe3, 0x0d, 0xf3, 0x4a, 0xc5, 0xd2, 0x58, 0x66, 0x3c, 0x5e, 0xcb, 0x31, 0x0a, 0x0d, 0xab, 0x6a, + 0xf8, 0x02, 0x69, 0x87, 0xae, 0x44, 0xdc, 0x24, 0x6d, 0x9e, 0xcd, 0xb9, 0x1a, 0x64, 0xb6, 0x3d, + 0x60, 0x91, 0x22, 0xd0, 0xa6, 0x71, 0x98, 0x0f, 0x2b, 0xfa, 0xef, 0x1c, 0x14, 0x9a, 0x9a, 0xa5, + 0xc3, 0x22, 0xa7, 0x7a, 0xa1, 0xc5, 0xda, 0x86, 0x23, 0x94, 0x39, 0xde, 0x57, 0x79, 0x65, 0x68, + 0xe9, 0x77, 0xb5, 0x72, 0x78, 0x5f, 0x47, 0xc9, 0x46, 0x1c, 0xc1, 0x85, 0x59, 0xfa, 0xf4, 0x1a, + 0x81, 0xdf, 0x1b, 0xce, 0xe5, 0x52, 0x47, 0x1b, 0x4f, 0xe9, 0xae, 0xd7, 0x72, 0x3f, 0x29, 0xb8, + 0x60, 0x4e, 0xff, 0xd3, 0xe9, 0xf5, 0x4c, 0xca, 0xae, 0xa2, 0xaf, 0xb1, 0x6f, 0xc4, 0x2a, 0xca, + 0x1c, 0x8d, 0x73, 0xcb, 0xd5, 0x38, 0x37, 0x2a, 0xa1, 0x81, 0xdb, 0x55, 0xca, 0xd0, 0x25, 0x5d, + 0x7d, 0x4e, 0x88, 0xf6, 0xb6, 0x65, 0xa3, 0x9c, 0x9f, 0x87, 0xef, 0x99, 0xc8, 0xcf, 0xe9, 0x93, + 0x7a, 0x52, 0x51, 0x1b, 0xa1, 0x73, 0x4c, 0xf3, 0xde, 0xd0, 0x03, 0x09, 0x5d, 0x21, 0x73, 0xde, + 0x39, 0xcc, 0x79, 0x1b, 0x35, 0x2a, 0x73, 0x5c, 0xe8, 0x32, 0xbd, 0xf3, 0xd3, 0xab, 0x18, 0x99, + 0xeb, 0x17, 0x49, 0xbd, 0x66, 0xa5, 0x5c, 0x48, 0x3a, 0xcb, 0x9c, 0xe4, 0xba, 0x03, 0xd5, 0xc3, + 0x51, 0x08, 0x73, 0x49, 0xbf, 0x32, 0xb6, 0xee, 0xc0, 0x03, 0x62, 0x2d, 0x61, 0xec, 0x69, 0x98, + 0x13, 0x36, 0x43, 0x21, 0x48, 0x90, 0xc3, 0x35, 0x38, 0x94, 0xa1, 0xfb, 0xac, 0x14, 0xf2, 0x14, + 0x8e, 0x0f, 0xec, 0x71, 0x3a, 0x29, 0xdb, 0x9e, 0x2b, 0xe9, 0xbf, 0x91, 0x88, 0x65, 0x3f, 0x9f, + 0x68, 0xfe, 0x95, 0x6f, 0x9d, 0xef, 0x57, 0x35, 0xeb, 0x14, 0xfd, 0x1a, 0x9d, 0x80, 0xa1, 0xe4, + 0x3d, 0xbc, 0x4f, 0x32, 0xd2, 0xb8, 0x91, 0x3d, 0xaf, 0x8e, 0x39, 0xcb, 0x1e, 0x5f, 0xe1, 0xaf, + 0x0e, 0xe1, 0x3c, 0x84, 0xfc, 0xd2, 0xec, 0xc3, 0xfb, 0x0e, 0x1f, 0x38, 0x7c, 0xa0, 0xea, 0xec, + 0x28, 0xcc, 0xf3, 0xc0, 0x8a, 0xea, 0x93, 0xd0, 0xfc, 0x82, 0xc0, 0xaf, 0x1f, 0x43, 0x0e, 0x6b, + 0x05, 0x5b, 0x14, 0x63, 0x54, 0x95, 0x13, 0x18, 0xda, 0xa2, 0xe9, 0xd1, 0x0d, 0x42, 0xa2, 0xd2, + 0xf6, 0x9b, 0xe9, 0xb8, 0x04, 0xc4, 0x36, 0xbb, 0x13, 0xe6, 0x48, 0x59, 0xd8, 0x82, 0xe1, 0x97, + 0x46, 0x12, 0xeb, 0x30, 0xfe, 0x9c, 0xa4, 0xd6, 0xbd, 0x26, 0x2d, 0x7f, 0xd5, 0x3b, 0x34, 0x4b, + 0x32, 0xd6, 0x22, 0x98, 0xf5, 0x85, 0x6a, 0x98, 0x65, 0x29, 0x82, 0x2b, 0x91, 0x97, 0x33, 0x84, + 0xe7, 0xb2, 0x16, 0x31, 0x57, 0x66, 0x1b, 0x20, 0x64, 0x87, 0x63, 0xca, 0x99, 0xaa, 0x43, 0xa2, + 0x6c, 0x8b, 0x3e, 0xb9, 0x1f, 0x15, 0xf9, 0xf2, 0x7a, 0x92, 0xe5, 0x28, 0xaf, 0x11, 0x84, 0x54, + 0x81, 0x17, 0x4b, 0xa7, 0x75, 0x17, 0xfd, 0xbe, 0x44, 0x38, 0x47, 0x40, 0xcd, 0x4c, 0x27, 0xe8, + 0xaf, 0x0c, 0x7b, 0xf0, 0x6d, 0x80, 0x2b, 0x43, 0x8b, 0x13, 0x4f, 0x43, 0xde, 0xd8, 0x70, 0x78, + 0xe1, 0x35, 0x74, 0x8a, 0xeb, 0x4a, 0x71, 0x82, 0x08, 0xcb, 0xfa, 0x00, 0xcb, 0xd2, 0x4e, 0x13, + 0xd1, 0xfa, 0x38, 0xed, 0x8b, 0xdc, 0xe9, 0x84, 0x59, 0xbd, 0x39, 0x66, 0xc2, 0x9d, 0x2b, 0x43, + 0xd9, 0x1c, 0xef, 0x50, 0x72, 0xaf, 0x63, 0x83, 0x36, 0xd6, 0xe5, 0x12, 0xbd, 0xc3, 0x5b, 0x1d, + 0x05, 0xff, 0x50, 0xc8, 0xaa, 0xd8, 0x0e, 0x0d, 0xfb, 0x87, 0x23, 0x46, 0x59, 0xcf, 0xa7, 0x32, + 0x0c, 0x2d, 0x43, 0x6b, 0x74, 0x52, 0x95, 0xdd, 0x12, 0x3a, 0x29, 0xf5, 0xe8, 0x65, 0x5e, 0xef, + 0xb1, 0x28, 0xd6, 0x43, 0xdf, 0x69, 0xd2, 0x85, 0x2e, 0x48, 0x8d, 0x8c, 0x99, 0x26, 0xd9, 0x17, + 0xcb, 0x56, 0x4e, 0xa3, 0x0c, 0x9e, 0x8d, 0x1c, 0x98, 0x3e, 0xaa, 0xa6, 0xe9, 0xc0, 0xcd, 0x29, + 0x7a, 0xa5, 0xc9, 0x32, 0x33, 0x58, 0x96, 0x31, 0x3c, 0x9f, 0x08, 0x29, 0x36, 0xfc, 0xb6, 0x90, + 0xdd, 0x16, 0x9d, 0x1e, 0xd4, 0x8b, 0xd7, 0x78, 0x34, 0xdc, 0x58, 0xc3, 0x32, 0xaa, 0x85, 0x76, + 0x4f, 0x92, 0x2e, 0xe6, 0xf5, 0xc7, 0x7f, 0x76, 0xa0, 0xed, 0x82, 0x90, 0xe0, 0x28, 0x07, 0x8c, + 0x3b, 0x49, 0x71, 0xd9, 0x26, 0xd1, 0x5e, 0xa3, 0x01, 0x7f, 0x73, 0x5f, 0x78, 0x1a, 0xf2, 0xc3, + 0x66, 0x3e, 0xc5, 0x9c, 0x25, 0x28, 0x7c, 0x41, 0xb5, 0xa6, 0x51, 0xa0, 0x33, 0x42, 0x4f, 0xa4, + 0xe8, 0x61, 0x8e, 0x3f, 0xd1, 0x7b, 0x17, 0x9f, 0x03, 0x40, 0x3c, 0x92, 0x7d, 0xaf, 0xd2, 0xbd, + 0xdd, 0x9f, 0xc8, 0xf7, 0x8c, 0x82, 0x90, 0xed, 0x1d, 0x40, 0x54, 0xd9, 0xbf, 0x2e, 0xd4, 0x7c, + 0x28, 0xc1, 0x9c, 0xe6, 0x27, 0x72, 0xd4, 0x48, 0x1a, 0x8c, 0x27, 0x71, 0xb6, 0xf4, 0xd0, 0xba, + 0xb7, 0x8b, 0xe8, 0xe7, 0x77, 0x2f, 0x4d, 0x4d, 0xfe, 0x94, 0x9e, 0xa4, 0xc6, 0xb0, 0xb5, 0x8e, + 0xa9, 0xba, 0x88, 0x51, 0x3c, 0xd7, 0xb1, 0x60, 0x14, 0x92, 0xba, 0x5d, 0x41, 0x6f, 0xdd, 0xb4, + 0x8f, 0x9b, 0xd7, 0x21, 0x7e, 0x59, 0x22, 0xd6, 0xaa, 0x68, 0x97, 0x71, 0xa9, 0x13, 0x72, 0x68, + 0xc7, 0x5e, 0x7a, 0xdd, 0x88, 0xe4, 0x35, 0x01, 0x3d, 0xef, 0x8f, 0x71, 0x6e, 0xc3, 0x39, 0x56, + 0x99, 0xf3, 0xf3, 0x97, 0x43, 0xda, 0x0e, 0xca, 0xa6, 0x55, 0xe0, 0x4a, 0xcd, 0x77, 0x39, 0x38, + 0xd3, 0x5c, 0x15, 0x7a, 0x27, 0x39, 0x7f, 0xa5, 0xb4, 0x1d, 0xc9, 0xbd, 0x82, 0x15, 0x64, 0xf7, + 0x48, 0x8c, 0x52, 0x07, 0x8f, 0xd2, 0xfa, 0x53, 0xba, 0xa7, 0x14, 0xd7, 0xf5, 0x5e, 0xc8, 0xfb, + 0xc2, 0x2a, 0xdd, 0xf5, 0x70, 0x15, 0x51, 0xa7, 0x2f, 0xd0, 0xde, 0xbf, 0x2b, 0xa5, 0x86, 0x14, + 0xbe, 0x0a, 0x6a, 0xf5, 0xce, 0x35, 0xab, 0xe1, 0x2a, 0xdd, 0xf5, 0x38, 0xfb, 0xce, 0x71, 0xc0, + 0x4b, 0xc3, 0xe1, 0x57, 0xea, 0x86, 0xc7, 0x68, 0xcf, 0xf5, 0x9c, 0xa4, 0xdd, 0x2b, 0xa4, 0x58, + 0xa9, 0xfd, 0xa3, 0xd4, 0xdf, 0x6b, 0x74, 0x4a, 0x9e, 0x84, 0xf3, 0xb5, 0x58, 0xdb, 0x95, 0xb3, + 0x7e, 0xf7, 0x23, 0x49, 0x27, 0x34, 0x36, 0xc9, 0x75, 0x4f, 0xc4, 0x63, 0x94, 0x36, 0xc3, 0x6f, + 0xe0, 0x1b, 0xa9, 0x94, 0xd6, 0xa2, 0x51, 0x4d, 0xbe, 0x16, 0xb3, 0xc5, 0x70, 0x5a, 0xeb, 0x21, + 0xe6, 0xbe, 0x52, 0x82, 0x47, 0xce, 0x92, 0x93, 0x60, 0x45, 0x99, 0x22, 0x97, 0xf1, 0xe9, 0x4a, + 0x59, 0xcf, 0x79, 0x93, 0x96, 0x63, 0xdf, 0xcf, 0x4f, 0x21, 0x16, 0x9c, 0x24, 0xd9, 0x3e, 0xa9, + 0x83, 0xa0, 0xdd, 0x70, 0xb4, 0x8e, 0x67, 0xd7, 0xb5, 0x0c, 0x4b, 0x1e, 0xda, 0x1d, 0x7d, 0xb1, + 0x52, 0x40, 0x7b, 0xea, 0xee, 0x68, 0x94, 0xdf, 0x3d, 0xfe, 0xa1, 0xb0, 0x51, 0xae, 0xa2, 0x55, + 0x9b, 0x8b, 0x0b, 0xb5, 0xfd, 0x72, 0x8b, 0x9d, 0x08, 0xff, 0xc2, 0x9c, 0x35, 0xb0, 0x10, 0x7b, + 0xa6, 0x79, 0xdd, 0x7b, 0x0f, 0x49, 0x59, 0xb1, 0xf4, 0x49, 0x7a, 0xcb, 0x0b, 0xe2, 0x04, 0xcc, + 0xf7, 0xa2, 0x3a, 0x47, 0x42, 0x01, 0xd8, 0x7e, 0x63, 0x04, 0x72, 0x20, 0xc7, 0x5b, 0x28, 0x4e, + 0xcd, 0x23, 0xff, 0x61, 0x2a, 0x6c, 0x70, 0x12, 0x77, 0xd7, 0x29, 0x15, 0x83, 0x35, 0x1c, 0x90, + 0x8b, 0xc1, 0xe2, 0xaa, 0xa5, 0xf4, 0x52, 0x0d, 0xd2, 0x14, 0x4b, 0xc8, 0xcb, 0x39, 0x98, 0x24, + 0x7d, 0x73, 0xe2, 0xbd, 0x51, 0xc7, 0x2e, 0xb2, 0xfc, 0xf3, 0xde, 0xe8, 0x92, 0xb3, 0x46, 0x94, + 0xd0, 0x9a, 0x86, 0xe5, 0xd5, 0xea, 0x84, 0x74, 0x35, 0xc7, 0x2f, 0xb9, 0xed, 0x21, 0xff, 0x70, + 0xe8, 0xb4, 0xec, 0x97, 0xb2, 0xc4, 0xf7, 0x63, 0xaf, 0x28, 0x0e, 0xa9, 0x86, 0x4e, 0x80, 0x63, + 0x4e, 0xdd, 0xc8, 0xfb, 0x58, 0x83, 0xc3, 0x8d, 0xdf, 0x6a, 0x1c, 0x41, 0x1c, 0x72, 0xe1, 0x6c, + 0x31, 0xdc, 0xf6, 0x30, 0xe7, 0xac, 0xf7, 0x6e, 0x25, 0x7d, 0xcc, 0x60, 0xd2, 0x9e, 0xc6, 0xe2, + 0xc2, 0x7a, 0xbb, 0xc9, 0x1e, 0xf0, 0x93, 0x8e, 0xc4, 0x78, 0x1d, 0xf2, 0x85, 0xcb, 0x66, 0xd0, + 0xac, 0x8a, 0x73, 0x44, 0x31, 0xbe, 0xaf, 0xa0, 0xd9, 0x68, 0x59, 0x2e, 0x9f, 0x8c, 0x33, 0x65, + 0x9c, 0xdc, 0x7b, 0x16, 0xfc, 0x21, 0x6b, 0xd5, 0x87, 0xe0, 0x2f, 0x22, 0xcb, 0x0a, 0xcf, 0x42, + 0x00, 0xdd, 0x01, 0x74, 0xfb, 0xb1, 0x55, 0x7e, 0x84, 0xdb, 0x96, 0xe4, 0xee, 0x63, 0xa1, 0x3b, + 0x5a, 0x76, 0xd3, 0xb4, 0x1c, 0x2c, 0xfe, 0x62, 0xec, 0xe1, 0xec, 0x2f, 0xb1, 0xfd, 0x85, 0xc6, + 0x0f, 0xc1, 0x82, 0xcf, 0x55, 0xfc, 0x75, 0xa5, 0xb7, 0x18, 0xe1, 0xf5, 0x2c, 0xe4, 0xe1, 0x33, + 0x07, 0x9f, 0xb9, 0x58, 0x56, 0x6e, 0x28, 0xbb, 0x68, 0x95, 0xae, 0x12, 0x72, 0xd1, 0x5d, 0xc6, + 0xee, 0x52, 0x28, 0x43, 0x77, 0x21, 0xbb, 0xcb, 0xa1, 0x10, 0x31, 0x48, 0x47, 0x67, 0x29, 0x30, + 0x07, 0x0b, 0xe4, 0xe0, 0xec, 0x76, 0x85, 0xb0, 0xc9, 0x80, 0xe3, 0xe8, 0x59, 0x90, 0x51, 0x0e, + 0x37, 0xe1, 0x7b, 0x21, 0xc6, 0xee, 0x86, 0xc5, 0xb0, 0x10, 0x5b, 0x46, 0xcf, 0x62, 0x7c, 0x78, + 0x27, 0xc8, 0xb2, 0x3b, 0xa6, 0xd5, 0xce, 0x66, 0x2c, 0x46, 0x9c, 0xcf, 0x09, 0x5b, 0xa5, 0x6e, + 0xa8, 0x88, 0x9e, 0x39, 0x84, 0x69, 0x15, 0x83, 0x65, 0x42, 0xfd, 0xdd, 0xce, 0xd1, 0xf6, 0xf1, + 0x17, 0x04, 0xff, 0xb1, 0x4a, 0xb7, 0x08, 0xcb, 0x31, 0x33, 0xa4, 0xb8, 0x34, 0xa5, 0x99, 0xf5, + 0x69, 0x9e, 0x90, 0x25, 0x59, 0xfe, 0xab, 0x1b, 0x69, 0x67, 0x0d, 0x3c, 0x8c, 0x65, 0x7b, 0xc3, + 0xd9, 0x50, 0x0c, 0x48, 0xa1, 0xd0, 0x5d, 0x47, 0x6e, 0x35, 0x41, 0xbb, 0xbc, 0x09, 0xbf, 0xbf, + 0xc4, 0xd4, 0x9a, 0x67, 0x84, 0x65, 0x62, 0x84, 0xd1, 0x3a, 0xaf, 0xa5, 0x58, 0xa3, 0xd2, 0x76, + 0x8d, 0x4a, 0xe7, 0x73, 0x4d, 0x1f, 0xcc, 0xac, 0xa9, 0x98, 0x39, 0x78, 0x06, 0x17, 0xb3, 0x47, + 0x21, 0xed, 0x00, 0xe4, 0x3d, 0x48, 0xa2, 0xdf, 0x1e, 0x9f, 0xd6, 0x2e, 0xab, 0xa2, 0xff, 0xfb, + 0x7f, 0x93, 0xae, 0xc0, 0xde, 0x47, 0x0a, 0x30, 0xdd, 0xd2, 0x15, 0xaf, 0xdd, 0xf7, 0x82, 0x85, + 0x74, 0x4e, 0x92, 0x1b, 0x6c, 0x76, 0x38, 0x9a, 0x38, 0x3a, 0x2c, 0xdd, 0xe3, 0x04, 0x7f, 0xe2, + 0xab, 0xdc, 0x9b, 0x35, 0x43, 0x47, 0x86, 0x1c, 0x55, 0xbf, 0x7d, 0xf1, 0xba, 0x9d, 0xbb, 0x01, + 0x67, 0xc6, 0xbe, 0x51, 0x10, 0x76, 0x38, 0xae, 0xaf, 0x07, 0xe3, 0x91, 0xa1, 0x79, 0x1b, 0x6c, + 0x70, 0x28, 0xe1, 0xf0, 0xfc, 0x76, 0xac, 0x00, 0xc3, 0x6d, 0x99, 0xe1, 0x7e, 0x30, 0x1e, 0x4a, + 0xcc, 0xdb, 0x68, 0x04, 0xe4, 0x7f, 0x8d, 0x05, 0xf8, 0xd0, 0x5e, 0x06, 0xb3, 0x38, 0xc9, 0x57, + 0xc9, 0xe3, 0xa9, 0x91, 0x75, 0x15, 0x79, 0xce, 0x0d, 0xde, 0x1f, 0x61, 0xad, 0x7e, 0x84, 0xf2, + 0xd3, 0x23, 0xf8, 0x6b, 0x56, 0x40, 0x97, 0x28, 0xf4, 0x49, 0xcb, 0x64, 0xb1, 0x0f, 0xc1, 0x44, + 0xd6, 0x5a, 0xb0, 0x37, 0x23, 0xb4, 0x4a, 0x53, 0x93, 0xa0, 0xd5, 0x81, 0x23, 0x43, 0x52, 0xbf, + 0x0d, 0x78, 0x06, 0x7a, 0xfd, 0xfa, 0x65, 0x60, 0x2c, 0x7a, 0xc8, 0x06, 0x48, 0x17, 0x0d, 0xde, + 0xad, 0xf8, 0x6b, 0xb6, 0x2f, 0x93, 0x3d, 0x55, 0x7f, 0x30, 0xaa, 0x87, 0x3f, 0x04, 0x33, 0xcf, + 0x4a, 0x16, 0xe4, 0x25, 0x46, 0xc3, 0x96, 0xd8, 0xe4, 0xf3, 0xa3, 0x21, 0xd0, 0x65, 0x2b, 0x03, + 0x88, 0x61, 0x66, 0x25, 0x52, 0xd8, 0x0d, 0x46, 0x94, 0x56, 0x0c, 0x51, 0x75, 0x27, 0xa6, 0x0a, + 0x95, 0x08, 0x99, 0x2b, 0xb0, 0x67, 0xf2, 0x34, 0x52, 0x08, 0x27, 0x98, 0x09, 0xc6, 0x6c, 0x51, + 0x06, 0x63, 0x28, 0x51, 0x5a, 0xfb, 0x25, 0xab, 0x47, 0x38, 0x9a, 0xcd, 0x51, 0x9d, 0xb2, 0xa6, + 0xa0, 0x09, 0x21, 0xd8, 0xc4, 0xf9, 0x1b, 0xe8, 0x24, 0x81, 0x63, 0x23, 0xf6, 0xfa, 0xa6, 0x9f, + 0x7d, 0x08, 0x86, 0xa4, 0xae, 0x90, 0xec, 0x07, 0x15, 0x8d, 0x1a, 0x61, 0x1e, 0xd6, 0x90, 0xb4, + 0x0a, 0xf0, 0x34, 0x97, 0x18, 0xc4, 0x3c, 0xa9, 0x3c, 0x1f, 0xaf, 0xfa, 0x89, 0x12, 0xd7, 0x66, + 0x94, 0x48, 0xe5, 0x60, 0x09, 0xc8, 0x2d, 0x99, 0xa9, 0x35, 0xca, 0x1c, 0xae, 0x83, 0x99, 0xcb, + 0x55, 0x91, 0xd6, 0x22, 0xf7, 0x4a, 0xfe, 0xf4, 0x8d, 0x3d, 0x69, 0x56, 0xec, 0x76, 0x6c, 0xb9, + 0xb4, 0x1a, 0x0c, 0xe9, 0xba, 0x20, 0xec, 0x0d, 0x05, 0x4b, 0x21, 0x15, 0x4f, 0x5a, 0xca, 0x90, + 0x06, 0xb5, 0xcd, 0x39, 0x8a, 0x69, 0x8c, 0xca, 0x5c, 0x1c, 0xb5, 0x66, 0xaa, 0xcd, 0x1e, 0x86, + 0x4f, 0x66, 0xad, 0x15, 0x98, 0x1c, 0x23, 0x6c, 0xa9, 0x14, 0xa7, 0xa2, 0x17, 0x93, 0x56, 0x15, + 0xe7, 0x93, 0x15, 0xd2, 0x7c, 0x30, 0x38, 0xbb, 0x70, 0xfc, 0x3a, 0x78, 0x1d, 0x38, 0xdb, 0xbb, + 0x45, 0x81, 0x2c, 0xdb, 0x3f, 0x9f, 0xc6, 0x94, 0x1a, 0x9e, 0x48, 0x3a, 0x5a, 0xb5, 0xf1, 0x22, + 0xf5, 0xc2, 0x1e, 0x34, 0xef, 0x16, 0xfa, 0x96, 0x04, 0x49, 0x14, 0x0a, 0xe8, 0x0f, 0x64, 0xc6, + 0xb4, 0xeb, 0x8e, 0x0e, 0x1d, 0x1d, 0x9e, 0x9f, 0x70, 0x02, 0x87, 0x96, 0x22, 0x1d, 0x32, 0x84, + 0xca, 0x28, 0x77, 0x4e, 0x65, 0xc4, 0x54, 0xb7, 0x61, 0x9a, 0x6d, 0x9f, 0x91, 0xe6, 0xb6, 0x79, + 0x0d, 0xd8, 0x06, 0x80, 0x1d, 0x52, 0x7d, 0xd2, 0x42, 0xc6, 0x04, 0xd9, 0x53, 0x45, 0x59, 0xe2, + 0x67, 0x07, 0x43, 0x79, 0xf3, 0x22, 0xbc, 0x2b, 0x26, 0xa2, 0x49, 0x15, 0x01, 0xb2, 0x43, 0xa3, + 0xf8, 0x76, 0x3e, 0x33, 0xbd, 0xa6, 0xf3, 0xb7, 0x18, 0x41, 0x6e, 0x14, 0x6b, 0xf4, 0xbc, 0x3a, + 0x66, 0x94, 0x1e, 0x95, 0x83, 0xfc, 0x6d, 0x20, 0x9c, 0x9d, 0xb7, 0x8a, 0xf3, 0x59, 0xa5, 0xe5, + 0x63, 0x22, 0x3f, 0xc5, 0xe0, 0xf4, 0xc5, 0x00, 0x43, 0xcc, 0x60, 0xc6, 0x5f, 0x4c, 0x43, 0xfb, + 0x1e, 0x34, 0xe9, 0x64, 0x54, 0xb1, 0xfe, 0xec, 0xfd, 0xa9, 0xfd, 0x7f, 0x1d, 0xf6, 0x3f, 0xad, + 0x05, 0xec, 0x98, 0xa8, 0x19, 0x92, 0xab, 0xaa, 0xfe, 0x60, 0xd3, 0x1d, 0x3e, 0x8d, 0xfd, 0x61, + 0x6c, 0x4e, 0xc4, 0x90, 0xf3, 0xe9, 0xb8, 0x70, 0x28, 0x51, 0xfa, 0x15, 0x63, 0x76, 0xe0, 0x53, + 0x1c, 0xed, 0x2f, 0x21, 0x7f, 0x67, 0xc2, 0xa7, 0xcc, 0xfb, 0x0c, 0xc6, 0x88, 0x80, 0x51, 0x58, + 0x95, 0xd1, 0xed, 0xfa, 0xc5, 0xc9, 0x74, 0xcd, 0x9d, 0x3e, 0xe5, 0x85, 0xf9, 0x3e, 0x1e, 0x23, + 0x4f, 0xb8, 0x30, 0x4e, 0x21, 0xb6, 0x52, 0xa2, 0xd5, 0x6c, 0x0b, 0x9f, 0x03, 0x73, 0x09, 0x2c, + 0xd5, 0x35, 0x2a, 0x35, 0xf3, 0x6f, 0xc7, 0x90, 0xdb, 0x35, 0x9c, 0x40, 0x78, 0x15, 0x6e, 0x9a, + 0x8f, 0x78, 0x18, 0xd5, 0xcd, 0xf7, 0x10, 0x8e, 0xd1, 0x2c, 0x75, 0xf9, 0x18, 0x54, 0x3a, 0x8f, + 0x0f, 0x80, 0x97, 0x70, 0x44, 0x5c, 0xe1, 0x36, 0xd3, 0x2e, 0xb3, 0x69, 0x23, 0x22, 0x3b, 0x4a, + 0x39, 0x1c, 0x88, 0xa9, 0x14, 0x9b, 0xc7, 0xc5, 0x51, 0x1c, 0x13, 0xe8, 0xc3, 0x75, 0x6a, 0xe6, + 0x1a, 0xe5, 0x72, 0x8d, 0x00, 0x46, 0xb4, 0x91, 0xb3, 0x57, 0x09, 0x3a, 0x9f, 0xc5, 0x12, 0xbb, + 0x53, 0x98, 0x8a, 0x65, 0x16, 0x35, 0x80, 0x81, 0xeb, 0xa5, 0x72, 0xbd, 0x74, 0x45, 0x55, 0x62, + 0xff, 0x67, 0xc8, 0xe4, 0xf8, 0x16, 0xd6, 0x82, 0x7a, 0x79, 0xd7, 0x2f, 0x3e, 0x9a, 0x0a, 0xd3, + 0xe2, 0x6f, 0x19, 0xa1, 0x28, 0xc0, 0x61, 0x8f, 0x7f, 0x76, 0x8e, 0xd4, 0x06, 0x86, 0xe4, 0x32, + 0xc5, 0xcb, 0x23, 0xed, 0xd2, 0x96, 0x50, 0xbd, 0x34, 0x88, 0x28, 0x58, 0x5b, 0xad, 0x2d, 0x58, + 0x97, 0x22, 0xf2, 0x31, 0x70, 0x0e, 0x34, 0xc2, 0x50, 0x16, 0xe5, 0x3a, 0x19, 0x1d, 0x62, 0xf4, + 0x48, 0x5c, 0xa3, 0x29, 0xb8, 0x54, 0x4c, 0xe3, 0x1c, 0xeb, 0xe4, 0x0c, 0xe0, 0xf8, 0xc9, 0xe3, + 0xb9, 0x56, 0x3b, 0xb3, 0xec, 0xf0, 0x49, 0x8d, 0x29, 0x2c, 0xfd, 0x2e, 0x9f, 0xca, 0x58, 0x2a, + 0x7b, 0x52, 0x3e, 0x3f, 0x4c, 0xd9, 0x1f, 0x28, 0xb5, 0xcf, 0x72, 0xf8, 0x94, 0x9c, 0xd8, 0x97, + 0xdf, 0xd9, 0x41, 0x7c, 0xf1, 0xd8, 0x90, 0xa3, 0xcf, 0x28, 0x68, 0xa9, 0x05, 0x53, 0x78, 0xd3, + 0xb4, 0x30, 0x74, 0x9c, 0xd6, 0xe8, 0x88, 0x92, 0x4a, 0x96, 0x90, 0x41, 0xc9, 0x91, 0x74, 0x92, + 0x07, 0x85, 0x16, 0x03, 0x9d, 0x76, 0xe6, 0xd6, 0x19, 0x91, 0x7f, 0xf1, 0xfc, 0x14, 0x31, 0x31, + 0x74, 0x46, 0x3b, 0xcf, 0x8c, 0x39, 0x23, 0x07, 0x6d, 0xf5, 0x27, 0x22, 0x7a, 0xc7, 0xec, 0xcb, + 0x94, 0x90, 0x3b, 0xad, 0x84, 0xd7, 0x15, 0xbd, 0xa3, 0x9a, 0x4b, 0x41, 0xee, 0x89, 0xce, 0x5f, + 0x63, 0x39, 0x66, 0x2e, 0xc7, 0x12, 0x1a, 0x9f, 0x5e, 0x4a, 0xf8, 0x92, 0x52, 0x7a, 0xff, 0x5f, + 0x94, 0x22, 0xd6, 0xcd, 0x24, 0x23, 0xca, 0x6f, 0xa9, 0x72, 0xc8, 0x92, 0xac, 0xa0, 0xe0, 0x29, + 0x7f, 0xad, 0x9d, 0x14, 0xa2, 0x69, 0xc8, 0x84, 0xb6, 0x8c, 0xa5, 0xe0, 0x6f, 0xd7, 0x64, 0x68, + 0xca, 0xee, 0xf9, 0xeb, 0x27, 0xc6, 0x91, 0xb3, 0xab, 0x70, 0xf6, 0x8a, 0xd3, 0xb5, 0x0b, 0xdd, + 0x50, 0xf8, 0xc8, 0x01, 0xb9, 0x21, 0x0a, 0xdf, 0xfe, 0x35, 0x73, 0xce, 0xcf, 0x39, 0x21, 0xec, + 0xaf, 0xbd, 0xa0, 0xee, 0x91, 0x6a, 0xb6, 0xbe, 0x1c, 0x65, 0xae, 0xf5, 0xe2, 0x8e, 0x42, 0x40, + 0xd9, 0xc6, 0xce, 0x63, 0x60, 0xae, 0xdb, 0x85, 0xf8, 0x91, 0xb2, 0x8d, 0xb5, 0xec, 0xc7, 0x9a, + 0x0d, 0x25, 0xde, 0xdb, 0xa2, 0xbc, 0x82, 0xb3, 0x4d, 0x22, 0xbc, 0x9f, 0x76, 0x98, 0xe0, 0xec, + 0xbe, 0x49, 0xd1, 0xaf, 0x55, 0xc9, 0xa2, 0xd9, 0x8a, 0x4a, 0xd6, 0xc9, 0x9d, 0xa6, 0x92, 0xed, + 0xc5, 0x6c, 0x1b, 0xd0, 0x8c, 0x5c, 0x85, 0x58, 0xf3, 0x05, 0xdd, 0xa3, 0x48, 0xc7, 0x65, 0xe4, + 0x94, 0xc9, 0x42, 0x00, 0xa0, 0xf4, 0x38, 0x3c, 0x02, 0x30, 0x2b, 0x64, 0x44, 0x29, 0x74, 0x2d, + 0x8e, 0xf8, 0xb8, 0x7e, 0x98, 0xd4, 0x94, 0x23, 0x3b, 0xf8, 0x2b, 0x44, 0xf2, 0xd2, 0x55, 0x1e, + 0xf8, 0xe6, 0x3c, 0x2f, 0xac, 0x15, 0x31, 0x31, 0x87, 0x46, 0x5a, 0x1d, 0x5f, 0xf6, 0x62, 0xd4, + 0xce, 0x36, 0x2b, 0x8e, 0x39, 0x29, 0xd7, 0x4a, 0x89, 0xed, 0xb0, 0x6a, 0xfb, 0x79, 0x2a, 0x0a, + 0x89, 0x57, 0x3d, 0x4d, 0xba, 0x8e, 0xa8, 0xb5, 0xc8, 0x23, 0x4e, 0x9d, 0xe2, 0x73, 0xae, 0xa8, + 0x56, 0x68, 0x05, 0xa9, 0x35, 0xc5, 0x15, 0xee, 0x19, 0xcb, 0x84, 0x45, 0xe9, 0xed, 0x6e, 0x53, + 0x0c, 0x72, 0x5d, 0x70, 0xbf, 0x5b, 0x87, 0x2d, 0x4e, 0x30, 0xef, 0xc3, 0x7a, 0x84, 0xf8, 0x36, + 0x5e, 0x49, 0x66, 0x1b, 0xcd, 0xc5, 0x7e, 0xf4, 0xdb, 0x4e, 0x67, 0x8d, 0xc5, 0x5a, 0xf0, 0x3d, + 0x6f, 0x62, 0xce, 0xe7, 0x78, 0xa7, 0x25, 0x52, 0xbf, 0xe2, 0x87, 0x51, 0x8e, 0xe4, 0x33, 0xf6, + 0xc5, 0xdd, 0xe8, 0x3f, 0xe1, 0x36, 0xb0, 0x2d, 0xc4, 0xd3, 0x38, 0xf3, 0xdd, 0x2f, 0x76, 0xf1, + 0xf0, 0x7e, 0xa6, 0x3a, 0xb7, 0xc9, 0x17, 0x81, 0x51, 0xde, 0xa3, 0x74, 0xbf, 0x1b, 0xb0, 0xb4, + 0x11, 0xa1, 0x5f, 0xf9, 0xb9, 0x9e, 0x6d, 0x75, 0x50, 0xfa, 0xbd, 0xa9, 0x9c, 0xfe, 0x51, 0xe4, + 0xc4, 0xf0, 0x17, 0x79, 0x95, 0x89, 0xbc, 0xe4, 0x5a, 0xd1, 0x5e, 0x61, 0x59, 0x12, 0xe5, 0x2d, + 0x55, 0xae, 0x61, 0x1e, 0xab, 0x0d, 0x67, 0xfa, 0x75, 0x61, 0x17, 0xe6, 0xe0, 0xf0, 0xaf, 0x0b, + 0x1b, 0xa3, 0x59, 0x58, 0xa6, 0x55, 0x21, 0x9d, 0x01, 0xef, 0xa6, 0x63, 0x1b, 0x06, 0x7e, 0x3a, + 0x59, 0x10, 0x15, 0xa7, 0xf5, 0xf6, 0x69, 0x27, 0x64, 0x2b, 0xd5, 0x83, 0x62, 0xdd, 0x57, 0xf6, + 0x91, 0x1d, 0x1b, 0xb6, 0x67, 0xa2, 0x4b, 0xea, 0x5e, 0x65, 0x5f, 0xca, 0x4a, 0x93, 0x21, 0xc3, + 0xae, 0x0a, 0xe2, 0x99, 0xd8, 0x37, 0x69, 0x5f, 0xad, 0x1f, 0x54, 0x48, 0x8a, 0xcf, 0xc5, 0x99, + 0x22, 0xc7, 0xb5, 0x74, 0xea, 0x19, 0x3f, 0xd6, 0x2e, 0xbe, 0xa3, 0x9d, 0x9a, 0xba, 0x5d, 0xdd, + 0x2f, 0xf6, 0x29, 0xd8, 0x49, 0x0f, 0x5f, 0xca, 0x30, 0x3a, 0x28, 0x76, 0xea, 0x7c, 0x65, 0x10, + 0xf4, 0xea, 0x1b, 0x45, 0xc4, 0x2b, 0xeb, 0xd4, 0xe3, 0xd1, 0x15, 0xd8, 0xf6, 0xb7, 0xf9, 0x0b, + 0xd4, 0x13, 0xf8, 0x46, 0x26, 0x53, 0x3d, 0xa9, 0x85, 0x9e, 0x26, 0x2a, 0xaa, 0x9e, 0xb3, 0x54, + 0x82, 0x8c, 0xb1, 0xc6, 0x8b, 0x96, 0xa9, 0xfb, 0xbf, 0xf6, 0xac, 0xba, 0x5f, 0xea, 0xc6, 0x67, + 0x93, 0xa3, 0x47, 0x47, 0x67, 0xab, 0xcd, 0x64, 0x77, 0x09, 0xfb, 0xfa, 0xc0, 0x1a, 0xb6, 0xbe, + 0xf4, 0xd8, 0x2b, 0x74, 0x82, 0xfd, 0x66, 0xda, 0xf7, 0x72, 0x40, 0xb2, 0x64, 0x27, 0xbe, 0x79, + 0x06, 0x20, 0x96, 0x8f, 0xf3, 0x13, 0xc0, 0xee, 0x8c, 0x19, 0xaa, 0x02, 0x9e, 0xc1, 0x82, 0xea, + 0xa0, 0x01, 0xdf, 0x2b, 0x30, 0x83, 0x11, 0x7c, 0xff, 0xe5, 0x7f, 0x1b, 0xe1, 0x7b, 0xf8, 0xfb, + 0x94, 0x13, 0x47, 0x2d, 0xf2, 0x5b, 0xf4, 0x1b, 0x72, 0x74, 0xe2, 0xaf, 0x42, 0x34, 0xe5, 0x8e, + 0x44, 0x6c, 0x62, 0x5f, 0x02, 0xeb, 0x7a, 0x52, 0x69, 0x74, 0x38, 0x59, 0xc7, 0xbf, 0xbd, 0x65, + 0x73, 0x30, 0x41, 0xa7, 0x3e, 0xcd, 0xdd, 0xd4, 0xde, 0xb6, 0x45, 0xd8, 0xee, 0x2c, 0xf5, 0x0d, + 0xa5, 0xb4, 0x08, 0x53, 0xa9, 0x07, 0x14, 0xa7, 0x8b, 0xf2, 0xa0, 0xbd, 0xb8, 0x06, 0x8c, 0x81, + 0x21, 0x6d, 0x79, 0x18, 0xc3, 0x80, 0x31, 0x72, 0x4a, 0x28, 0xc4, 0x48, 0xf9, 0x1e, 0x7e, 0x56, + 0x7d, 0xdb, 0x5d, 0xac, 0xee, 0xe7, 0xb5, 0xff, 0x43, 0x28, 0xe1, 0xf1, 0x79, 0x01, 0xd5, 0x59, + 0x54, 0xad, 0xee, 0x0f, 0x65, 0xd3, 0x89, 0x9a, 0x65, 0xaf, 0x8a, 0x75, 0xeb, 0x65, 0x6f, 0x30, + 0xaf, 0xac, 0xed, 0x7e, 0xa8, 0xfa, 0x50, 0x3d, 0xb8, 0xf5, 0x65, 0x1a, 0xaf, 0x9f, 0x9e, 0x16, + 0xa7, 0xac, 0x71, 0xec, 0xa0, 0x3c, 0xe8, 0xea, 0x04, 0xc9, 0x8f, 0x10, 0x0c, 0xe7, 0x50, 0xae, + 0xbc, 0xae, 0xae, 0xde, 0xbc, 0xb3, 0x71, 0xb3, 0x5c, 0x5d, 0xd4, 0x05, 0x16, 0x01, 0xd9, 0xab, + 0x58, 0xa6, 0xb9, 0xaa, 0x0e, 0x66, 0xe1, 0x2c, 0x60, 0x32, 0x93, 0x86, 0xfd, 0x8d, 0x50, 0x8f, + 0xab, 0x0b, 0x9c, 0xb2, 0x77, 0x5e, 0x17, 0x49, 0x31, 0x6e, 0xbd, 0x6f, 0x40, 0x55, 0x05, 0x9d, + 0xba, 0xd7, 0x93, 0x9a, 0x7f, 0xe6, 0x70, 0x3d, 0xce, 0x66, 0xd6, 0x43, 0xec, 0x36, 0x87, 0x4d, + 0xde, 0x12, 0xc8, 0xf9, 0xb2, 0x38, 0x83, 0xf7, 0x11, 0x58, 0x8b, 0xe9, 0x0c, 0xde, 0x73, 0x60, + 0xab, 0xfe, 0x08, 0x6c, 0xc5, 0xf5, 0x60, 0xfd, 0xb2, 0x07, 0xae, 0x2c, 0xc6, 0x92, 0xc1, 0x22, + 0xd6, 0x12, 0xec, 0x0f, 0x73, 0x3d, 0x96, 0x40, 0xce, 0xbc, 0x6e, 0xf5, 0x00, 0xb4, 0xc8, 0xd5, + 0xc8, 0xb1, 0xd9, 0x0e, 0x3d, 0xab, 0x9e, 0x44, 0x09, 0x73, 0xe1, 0xbc, 0x2e, 0x64, 0xce, 0x2b, + 0xd0, 0xb5, 0xb8, 0x74, 0x10, 0xfc, 0x87, 0x3f, 0x54, 0xf7, 0xcb, 0x18, 0xfb, 0x3a, 0x92, 0xe3, + 0x7e, 0x04, 0x64, 0xc0, 0x78, 0x03, 0x72, 0x49, 0x7e, 0xb1, 0x93, 0x4d, 0xb5, 0x50, 0x98, 0xbd, + 0x96, 0x21, 0xf1, 0x36, 0xc2, 0xce, 0x2c, 0xb4, 0xc4, 0x6a, 0x3e, 0x62, 0xcc, 0x7e, 0xff, 0x48, + 0xd8, 0x42, 0xd0, 0xa0, 0x19, 0xb9, 0xcc, 0x23, 0xd5, 0x48, 0x1b, 0x6a, 0xb6, 0x48, 0x08, 0x17, + 0xb6, 0x82, 0xf9, 0x84, 0xd0, 0xa1, 0xcf, 0x2b, 0xb3, 0x07, 0x1c, 0x3d, 0x59, 0x26, 0xff, 0xd6, + 0x90, 0xd0, 0xc5, 0x90, 0xed, 0xc6, 0x6d, 0xdf, 0xfe, 0xb5, 0xbd, 0x08, 0x79, 0x2c, 0x7d, 0x90, + 0x67, 0xf1, 0x9d, 0x4f, 0x67, 0x65, 0xaf, 0xb4, 0x21, 0xbc, 0xfd, 0xbc, 0x93, 0x44, 0xd3, 0x4d, + 0x1e, 0x0d, 0x35, 0x92, 0xcd, 0xb0, 0x55, 0x1a, 0x67, 0x1d, 0xf1, 0x6f, 0x09, 0x77, 0x26, 0x75, + 0xb5, 0xf2, 0xd2, 0xa8, 0x90, 0x79, 0x4a, 0x84, 0xae, 0x17, 0x25, 0xa6, 0xed, 0xac, 0x3b, 0x4f, + 0x28, 0xb9, 0xda, 0x7e, 0x4c, 0xd2, 0x25, 0xcb, 0xde, 0x9f, 0xa2, 0xfc, 0xdc, 0xe8, 0xdf, 0x12, + 0x3a, 0x85, 0x31, 0x9e, 0xfa, 0xac, 0x30, 0xa1, 0x77, 0xd5, 0x4e, 0xc1, 0xbf, 0xd5, 0x30, 0x12, + 0xe8, 0x0f, 0xfe, 0x18, 0xe7, 0xf6, 0xb3, 0x9a, 0x8e, 0x1f, 0x92, 0x36, 0x0e, 0x85, 0x75, 0x43, + 0xb2, 0x02, 0x75, 0x9d, 0x97, 0x7a, 0x42, 0x58, 0x32, 0xcc, 0xd0, 0xad, 0xcb, 0xce, 0xd4, 0xe9, + 0x51, 0xda, 0x23, 0xee, 0x28, 0x84, 0x63, 0x29, 0xed, 0x00, 0x84, 0xf3, 0xc9, 0x8e, 0xbf, 0xe4, + 0x97, 0xbd, 0xc8, 0x0b, 0x67, 0xb1, 0x6e, 0x68, 0x23, 0x62, 0xa9, 0x70, 0x6d, 0xc9, 0xd4, 0x23, + 0x2e, 0x22, 0x9d, 0x86, 0x31, 0xa9, 0x3f, 0x75, 0x78, 0x90, 0x42, 0x91, 0x76, 0x66, 0x90, 0xf2, + 0x73, 0x20, 0xad, 0x76, 0x16, 0x61, 0xbe, 0xd5, 0xbb, 0xd7, 0xb5, 0xeb, 0xa5, 0x9a, 0xe8, 0x77, + 0x0f, 0x8d, 0x86, 0xc9, 0xd2, 0x5f, 0xa8, 0xfa, 0x03, 0x08, 0xf1, 0xcc, 0xb4, 0xe5, 0xfa, 0x1a, + 0x38, 0xc6, 0x7a, 0x01, 0x2f, 0x43, 0x28, 0xa9, 0xf5, 0xc9, 0xff, 0x3c, 0x96, 0x53, 0x96, 0x7f, + 0xac, 0xee, 0xa4, 0xd5, 0x7b, 0xb2, 0x89, 0xe1, 0x70, 0xc3, 0x08, 0xce, 0x87, 0x9b, 0x30, 0xf6, + 0x96, 0x5c, 0x37, 0x3c, 0x64, 0xd6, 0x81, 0x3e, 0xec, 0xc4, 0xdf, 0xac, 0xf0, 0x62, 0xfc, 0xd5, + 0x85, 0xee, 0x20, 0x8c, 0x0d, 0x14, 0x8a, 0xfe, 0xba, 0xe7, 0x00, 0xef, 0x02, 0x61, 0xf7, 0xed, + 0x3b, 0x15, 0x3e, 0xc7, 0x14, 0xb8, 0xf9, 0xd2, 0xb0, 0x57, 0xc6, 0x15, 0xc6, 0xf4, 0x80, 0xff, + 0xd2, 0xb0, 0x5f, 0x6e, 0x61, 0x19, 0x7a, 0x1d, 0x8e, 0x36, 0x3e, 0xdd, 0x11, 0x68, 0x4d, 0xc6, + 0xb1, 0x43, 0xe3, 0xe6, 0x01, 0x53, 0xfd, 0xc7, 0xa0, 0xd0, 0x7a, 0xf6, 0x57, 0x0f, 0x2e, 0xb9, + 0xa0, 0x96, 0xaf, 0x6d, 0x7f, 0x63, 0xf3, 0xe0, 0xc0, 0x71, 0x1c, 0x7d, 0x4c, 0xb3, 0x4f, 0xb1, + 0x6c, 0x98, 0xe7, 0xfd, 0x09, 0x28, 0x28, 0x97, 0x67, 0x05, 0x1e, 0x73, 0x00, 0xd9, 0x25, 0x69, + 0xdc, 0xac, 0x59, 0x25, 0x39, 0xa1, 0x59, 0x25, 0x71, 0xb9, 0x6b, 0xa1, 0x54, 0xb3, 0x48, 0x52, + 0xee, 0xae, 0x83, 0x45, 0x9a, 0x35, 0x92, 0xca, 0xaa, 0x8f, 0xa1, 0xd3, 0xed, 0x03, 0x8f, 0x66, + 0x8d, 0xa4, 0x06, 0xbf, 0xa3, 0x64, 0x2b, 0x59, 0xb3, 0x46, 0xd2, 0x80, 0xdf, 0x11, 0xfc, 0x6e, + 0xd4, 0xac, 0x91, 0x34, 0x47, 0xe3, 0x6c, 0x8d, 0xa4, 0x05, 0x4b, 0x5c, 0x81, 0x50, 0x55, 0xaa, + 0xc9, 0x12, 0xa0, 0xb0, 0x47, 0xb2, 0x46, 0x76, 0x43, 0x1c, 0x61, 0xa8, 0xf8, 0x87, 0xc2, 0x65, + 0xfe, 0x9f, 0x40, 0x44, 0xd8, 0x14, 0x09, 0xf4, 0x42, 0xa4, 0x04, 0xbe, 0x37, 0xe4, 0x9e, 0xe9, + 0x76, 0x63, 0xde, 0x64, 0x93, 0x04, 0x92, 0x36, 0x40, 0x8a, 0x5f, 0xa6, 0xbd, 0xb6, 0x7c, 0x0e, + 0xb4, 0x13, 0x53, 0x74, 0xa6, 0x52, 0x74, 0xca, 0xf0, 0xe8, 0x4f, 0x30, 0xb6, 0x4e, 0xb3, 0x61, + 0x92, 0xe0, 0xb4, 0xe9, 0x74, 0xef, 0x6a, 0xe9, 0xec, 0x4a, 0x29, 0x86, 0x28, 0x49, 0xff, 0x12, + 0x83, 0xe6, 0x6f, 0x55, 0x6c, 0x74, 0x76, 0x56, 0xf3, 0xcd, 0x67, 0x4b, 0x23, 0xe3, 0xec, 0x9f, + 0x43, 0xb6, 0x34, 0x49, 0xf3, 0xd9, 0x34, 0x12, 0x82, 0xc9, 0x3d, 0xda, 0xfa, 0x63, 0xa3, 0xa6, + 0x57, 0x73, 0xb3, 0x1d, 0x07, 0xd7, 0x1a, 0xc8, 0x73, 0xc3, 0xf5, 0xc9, 0xb9, 0x7c, 0xc9, 0xa9, + 0x2c, 0xd9, 0xad, 0xed, 0xee, 0xb9, 0xe7, 0x00, 0xdf, 0xcf, 0x30, 0x01, 0x26, 0xec, 0x41, 0xb2, + 0x0b, 0x53, 0xea, 0x2e, 0xd4, 0x59, 0xd3, 0x3c, 0x81, 0xb6, 0xf6, 0x81, 0x1c, 0x15, 0x87, 0xba, + 0x84, 0xff, 0xcf, 0xf5, 0x92, 0x5e, 0x5a, 0xaa, 0x69, 0x11, 0x4b, 0xc4, 0x6e, 0x61, 0xd2, 0xcc, + 0x09, 0xeb, 0x3c, 0x38, 0x03, 0x5b, 0x32, 0x35, 0xcd, 0xc1, 0x44, 0xcb, 0x10, 0x6b, 0x9a, 0x4f, + 0x09, 0x8b, 0x3c, 0x12, 0xdd, 0xf5, 0x61, 0x43, 0x4e, 0x2d, 0x1f, 0xeb, 0x27, 0x11, 0x2e, 0x6c, + 0xd8, 0xa9, 0x94, 0x12, 0xcf, 0x14, 0x31, 0x49, 0xb3, 0xc9, 0x4e, 0x90, 0xdd, 0xa3, 0x48, 0x58, + 0x87, 0x22, 0xc8, 0xa1, 0x3b, 0x3d, 0x84, 0xd5, 0x36, 0xb9, 0xd1, 0x32, 0x1f, 0x66, 0xef, 0x2c, + 0x82, 0xd9, 0x1d, 0x79, 0xce, 0x23, 0x2d, 0x1b, 0x1d, 0x41, 0xd6, 0xe2, 0x1c, 0xf0, 0x6e, 0x23, + 0xab, 0xcf, 0x95, 0xc4, 0x3f, 0x3f, 0xaa, 0x9c, 0xfc, 0x3c, 0x5c, 0xe2, 0xa2, 0xc5, 0x76, 0xe2, + 0x12, 0x0b, 0xf5, 0x85, 0x8c, 0x73, 0x4f, 0x30, 0x8e, 0xc9, 0x58, 0x5e, 0xa1, 0xde, 0x21, 0x4e, + 0xdd, 0x04, 0xfe, 0x4e, 0xec, 0x86, 0x16, 0x7b, 0xb0, 0xb9, 0x07, 0x6c, 0x7c, 0xf6, 0xa4, 0x74, + 0xd7, 0x3a, 0xb2, 0xfc, 0x94, 0xdc, 0x29, 0x15, 0xd8, 0x99, 0xdc, 0x5f, 0xed, 0x7d, 0x5a, 0x2f, + 0xe3, 0xe3, 0xc0, 0xa7, 0x90, 0xfb, 0x05, 0x74, 0x8f, 0xd3, 0x0d, 0x0c, 0xb4, 0x27, 0x9b, 0x63, + 0xfe, 0x36, 0x19, 0x93, 0x66, 0x22, 0xaf, 0x57, 0x09, 0xae, 0x81, 0x85, 0x7a, 0x29, 0xeb, 0xbd, + 0xd1, 0xa5, 0x9f, 0x18, 0xad, 0xee, 0x6b, 0x48, 0x0b, 0xe9, 0x5e, 0xb8, 0x48, 0xc4, 0x1d, 0x4f, + 0xc6, 0xc5, 0x3e, 0xb9, 0x86, 0x7c, 0xc5, 0x1a, 0x94, 0x5f, 0x9b, 0x5f, 0x96, 0x5f, 0x31, 0x6d, + 0xaf, 0x36, 0xc9, 0x8f, 0x85, 0x41, 0xef, 0xae, 0x1e, 0xc8, 0xe9, 0xd8, 0xe1, 0xba, 0x83, 0xa5, + 0x9b, 0x61, 0xfb, 0x2a, 0xbd, 0x43, 0x58, 0xaf, 0xd2, 0x69, 0xd6, 0x2b, 0xe9, 0x24, 0xc4, 0x92, + 0x0b, 0x93, 0x2b, 0x02, 0x5b, 0xed, 0x50, 0xb2, 0x91, 0xec, 0x13, 0x91, 0xed, 0x72, 0x41, 0xbf, + 0x05, 0x85, 0x73, 0x79, 0x78, 0xf5, 0xf8, 0x4d, 0xb2, 0xb7, 0x22, 0xce, 0x7e, 0xb8, 0x9d, 0x9c, + 0xa6, 0x21, 0xb0, 0x35, 0xfd, 0x4d, 0xbb, 0x91, 0xb1, 0x6e, 0x39, 0x64, 0xaf, 0x86, 0x38, 0xc6, + 0x18, 0xac, 0xd1, 0x35, 0x25, 0x94, 0x52, 0xa9, 0xea, 0xf0, 0x8b, 0x87, 0x0f, 0x90, 0x75, 0x06, + 0x47, 0x63, 0x70, 0xc8, 0x5e, 0xf5, 0xda, 0x8b, 0xaf, 0xbd, 0x52, 0xfb, 0xc9, 0x0e, 0x90, 0x83, + 0xb6, 0x22, 0xb8, 0x62, 0xf7, 0x7c, 0xb8, 0x22, 0x62, 0xb6, 0x3f, 0x24, 0x6d, 0xf0, 0x56, 0x2b, + 0x06, 0x4a, 0xb3, 0x73, 0xa8, 0xe7, 0x20, 0xf2, 0xdf, 0xe7, 0x34, 0x8b, 0x7a, 0x01, 0x9d, 0x0b, + 0x69, 0xbb, 0x4e, 0x1f, 0x0e, 0xf3, 0x69, 0xc6, 0xe5, 0xd7, 0x73, 0x2b, 0x8d, 0xe9, 0x56, 0x3e, + 0xf6, 0x0a, 0xd6, 0x44, 0x52, 0x2a, 0xa4, 0xbb, 0xe8, 0x34, 0x08, 0xeb, 0xa0, 0x67, 0xbb, 0xe9, + 0xd7, 0xc4, 0xbf, 0x57, 0x24, 0x4f, 0x0b, 0xa6, 0xb9, 0xf8, 0xe5, 0x81, 0xa4, 0x25, 0xd4, 0xe0, + 0x46, 0x1a, 0x5d, 0xbb, 0x36, 0xf6, 0xec, 0x4b, 0xee, 0xc3, 0x16, 0xb6, 0x20, 0x4a, 0x65, 0xa2, + 0xd2, 0xf6, 0xdb, 0x94, 0x7c, 0xe2, 0xe9, 0xa4, 0x6a, 0xe6, 0xea, 0xbc, 0x97, 0xe1, 0xea, 0xde, + 0x66, 0x6d, 0xf5, 0x37, 0x84, 0x0d, 0x09, 0xd2, 0x3f, 0x4b, 0xd7, 0x94, 0x97, 0xe8, 0xe4, 0xb0, + 0xb5, 0xc9, 0x7b, 0x8b, 0x57, 0x27, 0x87, 0xcc, 0xd0, 0x23, 0x81, 0xce, 0x2e, 0xd6, 0xdd, 0x48, + 0x47, 0xb0, 0xd7, 0x99, 0xca, 0x45, 0xcf, 0xb9, 0x90, 0x46, 0x5a, 0x9c, 0x4b, 0x3f, 0x41, 0x63, + 0x19, 0xe5, 0x5c, 0xa3, 0xdc, 0x0d, 0xb6, 0xdc, 0x62, 0xb8, 0x12, 0xf9, 0x1c, 0x4b, 0x7c, 0xe6, + 0xfe, 0x44, 0x28, 0x1f, 0x65, 0x83, 0xfc, 0x35, 0x33, 0x5f, 0x1a, 0x0e, 0xe5, 0x62, 0x4f, 0x74, + 0xee, 0xdc, 0x01, 0xd6, 0x0e, 0xe3, 0xa1, 0x61, 0x7c, 0xdb, 0x56, 0xde, 0xc9, 0x7a, 0x8b, 0x96, + 0x22, 0x9f, 0xfa, 0x7b, 0x9c, 0xb9, 0x4f, 0xe1, 0xf3, 0x51, 0xd1, 0x6d, 0xea, 0xd9, 0x22, 0xb2, + 0x66, 0xfd, 0x09, 0xfe, 0x5a, 0xd5, 0x0b, 0x5f, 0xaa, 0x52, 0x27, 0xdd, 0xc5, 0x90, 0x8f, 0x9c, + 0xe6, 0xef, 0x11, 0x06, 0x59, 0xee, 0xf9, 0x60, 0xc4, 0x87, 0xf6, 0x73, 0xe8, 0xd2, 0x2b, 0x17, + 0x25, 0x8b, 0xdd, 0x0b, 0x46, 0x79, 0x1c, 0x47, 0xed, 0xbc, 0x3f, 0xdd, 0x20, 0x2c, 0x5f, 0xdb, + 0x8b, 0xd5, 0xe3, 0x8e, 0x62, 0xed, 0xbc, 0x14, 0x5b, 0xbf, 0x59, 0x54, 0x4a, 0xb5, 0x74, 0xa0, + 0xfc, 0x8f, 0x92, 0x0d, 0xf2, 0x11, 0x20, 0x59, 0x8b, 0xe1, 0x0b, 0x92, 0x25, 0x36, 0x73, 0x5f, + 0x22, 0x54, 0x48, 0xd2, 0x5b, 0xd8, 0x3e, 0x30, 0xf3, 0xc0, 0x50, 0x68, 0xae, 0xb3, 0x10, 0x6c, + 0x4b, 0xce, 0xd8, 0xe0, 0xe7, 0xfb, 0xdb, 0xa8, 0xe6, 0x6b, 0xd0, 0x6d, 0xfc, 0xf9, 0x58, 0x5b, + 0xf6, 0x6d, 0x23, 0xbb, 0x13, 0xed, 0x9d, 0x5c, 0xf3, 0x50, 0x91, 0x5f, 0xfd, 0x3d, 0xd6, 0xfe, + 0x54, 0xed, 0x29, 0xb0, 0xfc, 0xec, 0x57, 0xe2, 0x34, 0xd1, 0x4b, 0x09, 0xe4, 0xe3, 0x92, 0xed, + 0xb0, 0x71, 0x3b, 0xf2, 0xb1, 0x1d, 0x5e, 0x6e, 0x87, 0xfd, 0x32, 0xed, 0xd0, 0xff, 0xf5, 0x76, + 0x34, 0x7c, 0x68, 0xce, 0x57, 0x0f, 0x69, 0x36, 0x45, 0xfe, 0x2a, 0x35, 0x90, 0xca, 0xd8, 0x3e, + 0x18, 0xc6, 0xa0, 0xb3, 0x6f, 0x3c, 0xcf, 0xf8, 0xb4, 0x5d, 0x89, 0x1e, 0xb1, 0xd3, 0x33, 0xaa, + 0xb3, 0xaf, 0xd6, 0x79, 0x95, 0x39, 0xbb, 0x9e, 0xc6, 0xde, 0xc8, 0xc5, 0x5f, 0x5b, 0xbb, 0x19, + 0xdb, 0x38, 0x47, 0x3b, 0x85, 0x9c, 0x6b, 0xaf, 0x92, 0x73, 0x43, 0xef, 0xa0, 0x8f, 0x58, 0x85, + 0x5b, 0xa3, 0x59, 0x4e, 0x30, 0x90, 0x5c, 0xab, 0xec, 0x27, 0x59, 0x1a, 0x67, 0x11, 0xae, 0x03, + 0x96, 0x94, 0x2f, 0x17, 0xd2, 0xf9, 0x33, 0xb6, 0x66, 0xaf, 0x63, 0x5b, 0xf6, 0x9a, 0x65, 0xa6, + 0xe5, 0x5d, 0x7c, 0x4a, 0x29, 0xc0, 0x96, 0x99, 0xf2, 0x95, 0xb9, 0x9a, 0xbd, 0xfb, 0x74, 0xf8, + 0x28, 0x87, 0x97, 0x08, 0xcb, 0x4d, 0xd2, 0x2a, 0x4d, 0x4b, 0x52, 0xe7, 0x26, 0x5e, 0x9b, 0xed, + 0x3f, 0x6b, 0xf1, 0x1e, 0x77, 0xeb, 0x71, 0x66, 0xcd, 0x0e, 0x6c, 0x6d, 0x4a, 0x60, 0x2c, 0x23, + 0xe5, 0xc6, 0x31, 0xf3, 0x2f, 0x89, 0xf9, 0xaf, 0x98, 0xe3, 0x56, 0x51, 0x9e, 0x14, 0xc4, 0x50, + 0x1b, 0x3e, 0xd6, 0x8c, 0xf0, 0x3f, 0x51, 0x4e, 0x93, 0x7b, 0x39, 0xa7, 0x20, 0xf6, 0xb6, 0x05, + 0x31, 0x73, 0x88, 0x62, 0x87, 0xf3, 0xe8, 0x2c, 0x8b, 0x88, 0xd5, 0x78, 0x75, 0x2a, 0x17, 0x2b, + 0xc7, 0x22, 0xfc, 0x1d, 0x0a, 0xdb, 0x32, 0x62, 0x7c, 0x85, 0x6d, 0x92, 0xc5, 0x33, 0xe2, 0x58, + 0xc2, 0x0d, 0xcf, 0x23, 0x6e, 0xb7, 0x67, 0xc6, 0x52, 0x38, 0x56, 0x20, 0x15, 0xab, 0x13, 0x31, + 0x0e, 0x73, 0xab, 0xfd, 0x83, 0x0d, 0x7e, 0x76, 0x12, 0xf1, 0x7f, 0x0e, 0x8e, 0xed, 0x74, 0xec, + 0x8d, 0x1c, 0x5b, 0x4a, 0xda, 0xb1, 0x12, 0xe7, 0xfb, 0x6f, 0x5d, 0x8c, 0xfd, 0x58, 0xea, 0x74, + 0x43, 0x39, 0xf2, 0x3d, 0x8b, 0x90, 0xa9, 0xa9, 0x44, 0x62, 0xe5, 0xb1, 0x1b, 0xee, 0x1a, 0x8e, + 0x8e, 0xef, 0x4f, 0xb8, 0xb3, 0xc9, 0x5e, 0x17, 0x5b, 0xad, 0x9b, 0x1d, 0xd8, 0x33, 0x31, 0xc0, + 0xa7, 0xc1, 0x68, 0x27, 0xcc, 0x93, 0x4b, 0x3f, 0x40, 0x02, 0xb2, 0x1a, 0x2c, 0x28, 0x39, 0x5d, + 0xb8, 0x98, 0x5d, 0x92, 0xa5, 0x7f, 0x90, 0xee, 0x9d, 0x50, 0x0a, 0x33, 0x53, 0x90, 0xc6, 0x49, + 0xd8, 0xfd, 0xc2, 0x34, 0x91, 0x5d, 0xcf, 0x80, 0xa1, 0x2d, 0xdb, 0xbe, 0xcc, 0xff, 0x60, 0x98, + 0x56, 0x83, 0x9a, 0x59, 0xd3, 0x79, 0x88, 0xe9, 0x6d, 0x50, 0x0a, 0x92, 0xdc, 0xb2, 0x2b, 0x11, + 0xca, 0xb6, 0x6f, 0xb1, 0xfb, 0x14, 0xbb, 0x31, 0x0b, 0x72, 0xc3, 0xd9, 0x5b, 0x86, 0x0f, 0x8d, + 0x2a, 0xc6, 0xea, 0x33, 0x4e, 0xb0, 0x6f, 0x90, 0x8c, 0x72, 0x50, 0xde, 0x42, 0xe3, 0xe7, 0xd1, + 0xe1, 0xeb, 0xaa, 0xc0, 0x60, 0xf7, 0x3c, 0xf6, 0x63, 0xc8, 0xc7, 0x78, 0x96, 0xb0, 0x95, 0x66, + 0xf9, 0x8c, 0x13, 0x1d, 0xe6, 0xe4, 0xe9, 0x39, 0xb2, 0xbc, 0xf7, 0xb5, 0xe4, 0xdd, 0x15, 0xdc, + 0x3e, 0xa7, 0xd6, 0x3e, 0xc4, 0xe8, 0x1a, 0xb2, 0x1f, 0xc5, 0x67, 0x79, 0x48, 0x37, 0x66, 0x0e, + 0xec, 0xf9, 0xf4, 0xbb, 0xc9, 0xd6, 0xe9, 0x6c, 0xd1, 0x99, 0xc8, 0xb3, 0xd6, 0x54, 0x9d, 0x31, + 0xce, 0xb4, 0x1b, 0x09, 0x0e, 0x63, 0xeb, 0x1c, 0x1e, 0x7b, 0x04, 0x2c, 0x55, 0x7f, 0x74, 0xb2, + 0x7d, 0xc3, 0x50, 0xce, 0xf5, 0x5e, 0xd2, 0xb6, 0xcf, 0xf7, 0x80, 0x05, 0x25, 0x95, 0x13, 0x6b, + 0x2d, 0x6f, 0x6c, 0x2a, 0xac, 0xa5, 0xb3, 0xa9, 0xff, 0x4f, 0x9d, 0xa2, 0xb7, 0x7b, 0xa6, 0xe6, + 0x8d, 0x70, 0x30, 0x21, 0x07, 0xd5, 0x40, 0xe7, 0x54, 0x09, 0x1a, 0x38, 0xbe, 0x5c, 0x0c, 0xc5, + 0x9d, 0x3f, 0x7f, 0xa5, 0xad, 0xf4, 0x67, 0x07, 0xda, 0xcb, 0xb9, 0x7f, 0x5e, 0x5c, 0x2a, 0xac, + 0x67, 0x3c, 0x26, 0xd6, 0x57, 0xd8, 0xef, 0x3f, 0xf1, 0x8b, 0x6e, 0x6d, 0xe0, 0x93, 0xaa, 0xb7, + 0xd9, 0x02, 0x8f, 0x29, 0x1e, 0x29, 0xb7, 0xd0, 0x1f, 0x7a, 0xe2, 0xb1, 0x57, 0xf6, 0x7c, 0x2b, + 0xec, 0x93, 0x97, 0xbd, 0xfa, 0x21, 0x18, 0x7e, 0xfe, 0x72, 0x7b, 0x85, 0xc8, 0x41, 0x58, 0x4e, + 0x08, 0x3c, 0x3a, 0x25, 0x87, 0x47, 0x91, 0x2e, 0x18, 0xc4, 0xda, 0x08, 0xe6, 0xf0, 0x28, 0xef, + 0xfe, 0x99, 0x95, 0xb2, 0xbe, 0x51, 0xf8, 0xf3, 0x97, 0xc3, 0x86, 0xc2, 0x87, 0x14, 0xbd, 0x63, + 0xd9, 0xcf, 0x0e, 0x84, 0xc4, 0xae, 0x5d, 0xa3, 0xbd, 0xf1, 0xf0, 0x49, 0xda, 0x83, 0x82, 0x1c, + 0xf9, 0xc6, 0x47, 0x7e, 0x7d, 0xbd, 0x0f, 0x0c, 0xaf, 0x3d, 0x43, 0xb6, 0x20, 0x07, 0x27, 0xd8, + 0xd2, 0x17, 0xce, 0xeb, 0x2f, 0x55, 0xd2, 0xef, 0xbf, 0xae, 0x27, 0xbd, 0x9d, 0x43, 0xec, 0xdd, + 0x25, 0x1b, 0x37, 0xf4, 0x4b, 0x0f, 0x73, 0x4a, 0xff, 0xf2, 0x92, 0x3d, 0x69, 0xb3, 0xc4, 0xcb, + 0xfc, 0xd1, 0x9e, 0x4f, 0xf7, 0x2f, 0xf9, 0x40, 0x7d, 0x5b, 0x58, 0x09, 0x95, 0x3c, 0xd7, 0x74, + 0xc2, 0x2c, 0x98, 0x75, 0x63, 0x27, 0xad, 0x15, 0x6a, 0x96, 0x72, 0xac, 0xd5, 0x67, 0x76, 0x43, + 0x41, 0x3d, 0x5b, 0x59, 0xb1, 0x14, 0x2c, 0x65, 0xab, 0x2b, 0x12, 0xbe, 0xed, 0x8d, 0x9b, 0x93, + 0xe7, 0x21, 0xc9, 0xf2, 0x07, 0x96, 0x61, 0xa6, 0x87, 0xec, 0x8f, 0x6c, 0x19, 0x4d, 0x5a, 0xe5, + 0xfa, 0xd7, 0xf5, 0xe2, 0x0e, 0xac, 0x74, 0x9f, 0x4b, 0x74, 0x67, 0x89, 0xd6, 0xe7, 0x64, 0xad, + 0x72, 0xad, 0xf4, 0xc6, 0x26, 0xa7, 0xb1, 0x65, 0x84, 0xf6, 0x62, 0xd1, 0xca, 0x59, 0x3c, 0x72, + 0x74, 0x14, 0x5b, 0x69, 0x30, 0xba, 0x10, 0x7b, 0x8b, 0xc3, 0xa6, 0xaa, 0xd3, 0x50, 0xce, 0xa7, + 0xc3, 0x0f, 0x62, 0x6f, 0x4b, 0xd4, 0x9f, 0xff, 0xfb, 0x02, 0xfa, 0x49, 0x64, 0xad, 0x0f, 0xe3, + 0x11, 0xd5, 0xf2, 0x49, 0x2e, 0x28, 0x15, 0x96, 0x4c, 0x7f, 0xba, 0xaf, 0xdd, 0x22, 0x17, 0xe9, + 0x2f, 0x48, 0xde, 0xaa, 0x33, 0xb6, 0x6b, 0x25, 0x63, 0xcd, 0xd0, 0xd8, 0x10, 0xc2, 0x3d, 0x9b, + 0x4e, 0x36, 0xe0, 0x48, 0xfb, 0x7d, 0xaa, 0xf5, 0x00, 0x23, 0x05, 0xb5, 0x6c, 0xf7, 0xda, 0x25, + 0x7b, 0xc4, 0x9e, 0x04, 0x5a, 0xb5, 0xa5, 0x9d, 0x64, 0x75, 0x09, 0xda, 0x79, 0x37, 0x13, 0xf1, + 0x2d, 0xf4, 0xa4, 0x96, 0x16, 0xf9, 0x14, 0x3a, 0x41, 0x5d, 0x98, 0xdc, 0xa9, 0xee, 0xf1, 0x3f, + 0x8d, 0xb3, 0x86, 0x37, 0x2a, 0xed, 0x7c, 0x1a, 0xf2, 0xdb, 0x2b, 0x92, 0x3b, 0x1c, 0x24, 0xac, + 0xa1, 0x62, 0xce, 0x2d, 0x14, 0x27, 0x62, 0x23, 0xda, 0x89, 0xd8, 0x02, 0xde, 0x3d, 0x64, 0x1f, + 0xa5, 0x3d, 0x45, 0x6c, 0xe1, 0xc9, 0xa0, 0x18, 0xe5, 0x5c, 0x05, 0xd4, 0x9a, 0xbf, 0xff, 0xb7, + 0x4b, 0x5a, 0xf9, 0x12, 0xaf, 0x7e, 0xcc, 0xd1, 0xca, 0x35, 0xe0, 0xc8, 0xbd, 0x42, 0x58, 0x4e, + 0x2b, 0xf4, 0x14, 0xbe, 0xc2, 0x34, 0xf3, 0x8a, 0x64, 0x9f, 0xfb, 0xde, 0x5b, 0xb0, 0x18, 0x47, + 0x8d, 0x1d, 0xa1, 0xea, 0x44, 0x88, 0xba, 0x90, 0x36, 0x97, 0x6a, 0x12, 0xc6, 0x9b, 0xbb, 0xc5, + 0xfb, 0xf5, 0xa5, 0xa7, 0xc1, 0xe0, 0xe8, 0x51, 0x27, 0x98, 0x2f, 0xbe, 0xc2, 0x87, 0x2e, 0x71, + 0x66, 0x91, 0xed, 0xb0, 0x59, 0x68, 0xbd, 0x9b, 0x4e, 0x2d, 0x62, 0xac, 0x88, 0xb9, 0x88, 0x30, + 0x20, 0x64, 0xd9, 0xf5, 0x63, 0x9c, 0x1f, 0x4c, 0x28, 0xc3, 0x7e, 0x6b, 0xe7, 0x8f, 0x91, 0x5e, + 0xf1, 0x38, 0xb8, 0xcd, 0x97, 0xb2, 0x22, 0xa3, 0x9d, 0x0f, 0xbb, 0xad, 0x35, 0xb0, 0x95, 0xdf, + 0xa3, 0x49, 0xdb, 0x31, 0x2c, 0xbb, 0x6e, 0x63, 0xae, 0xf1, 0x2e, 0xa4, 0x42, 0x26, 0x6e, 0xd9, + 0x15, 0xdc, 0x32, 0x2b, 0x73, 0xa8, 0x07, 0x5d, 0xab, 0xc1, 0xf6, 0x0f, 0x1f, 0x20, 0x6d, 0xe6, + 0xba, 0x90, 0xed, 0x38, 0xc4, 0x3e, 0xd2, 0xc7, 0x59, 0xff, 0x9f, 0x0f, 0x20, 0x3f, 0x94, 0x97, + 0x94, 0xa9, 0x39, 0x1c, 0xc3, 0x2e, 0x3e, 0xad, 0xdd, 0x46, 0x32, 0x35, 0x9f, 0x97, 0xb0, 0xfd, + 0x9b, 0xb4, 0x5d, 0x39, 0x1a, 0xf7, 0x8d, 0xbd, 0x61, 0xec, 0xbe, 0xc3, 0xa1, 0x4f, 0xee, 0x25, + 0x63, 0xe9, 0xf3, 0xa0, 0xc3, 0x2f, 0x7f, 0x5d, 0x29, 0x97, 0xe6, 0x03, 0xe9, 0x78, 0xbb, 0x88, + 0x23, 0x4a, 0x72, 0x43, 0xac, 0x2b, 0xb5, 0xac, 0xa3, 0x55, 0x28, 0x6d, 0xaf, 0x19, 0xce, 0xb9, + 0x36, 0xba, 0x07, 0x06, 0x79, 0x84, 0x11, 0xb9, 0xc6, 0x79, 0x55, 0xe8, 0x40, 0x2a, 0x04, 0x92, + 0xe7, 0x1a, 0xc8, 0x62, 0x68, 0x89, 0xb6, 0x63, 0x9e, 0xda, 0x5a, 0xa2, 0xad, 0xce, 0xe3, 0x37, + 0x5b, 0xb0, 0x9d, 0xf2, 0xb5, 0xc6, 0xa5, 0x59, 0x77, 0xad, 0x24, 0x6c, 0x27, 0x6d, 0xae, 0x13, + 0x29, 0xb9, 0x8b, 0x29, 0x3b, 0xdb, 0x2f, 0x9d, 0x49, 0xfb, 0x65, 0xf7, 0xa8, 0xfb, 0x68, 0x56, + 0x6e, 0xd9, 0x4c, 0x7c, 0xf9, 0xff, 0xbe, 0xa0, 0x38, 0x04, 0xfe, 0x8d, 0x8d, 0x84, 0xe6, 0xd0, + 0xae, 0x91, 0x36, 0xb2, 0x88, 0x4a, 0x56, 0xf6, 0xb2, 0xb4, 0x1d, 0x5c, 0x56, 0x3a, 0x65, 0x60, + 0x0f, 0x46, 0x01, 0x79, 0xb9, 0xa3, 0x18, 0xe6, 0x01, 0x09, 0xf3, 0xd8, 0xd4, 0xb2, 0x19, 0xe7, + 0xe6, 0x7c, 0xb2, 0x6b, 0x23, 0xf0, 0xa2, 0x94, 0xec, 0xc2, 0x4a, 0x24, 0x1f, 0x14, 0x22, 0x6e, + 0xd8, 0xb3, 0x8e, 0x6e, 0x44, 0x2c, 0xda, 0xa3, 0xde, 0xe1, 0xe8, 0xa6, 0xb2, 0x94, 0x9c, 0x17, + 0xa8, 0x8f, 0xb3, 0x77, 0x51, 0xff, 0x9a, 0x1c, 0x1e, 0xe9, 0xea, 0xd0, 0x47, 0xc8, 0x7b, 0xeb, + 0x89, 0xc2, 0xd6, 0x9e, 0x45, 0xfa, 0x6a, 0x12, 0xf4, 0xd5, 0xe9, 0xa9, 0x3a, 0xe7, 0x04, 0x94, + 0xe6, 0x2d, 0xf6, 0xd5, 0x4c, 0x53, 0x8f, 0xe1, 0xac, 0x6f, 0x90, 0x4c, 0x89, 0xa1, 0x35, 0x18, + 0x33, 0xbc, 0xc8, 0xff, 0xac, 0x7e, 0x00, 0x71, 0xec, 0x15, 0xc6, 0x83, 0xe7, 0x97, 0x09, 0x0c, + 0xd9, 0x8e, 0xb5, 0x32, 0x0b, 0x3a, 0x77, 0xdb, 0x6f, 0xf0, 0x2b, 0x45, 0x29, 0x83, 0x39, 0x62, + 0xde, 0x51, 0xfc, 0x52, 0xee, 0x91, 0x8d, 0x38, 0x86, 0x82, 0xcf, 0x27, 0x3a, 0x02, 0x5a, 0x1e, + 0xeb, 0xff, 0x52, 0x1e, 0x3c, 0xab, 0x1b, 0xdc, 0xc6, 0x8c, 0xbc, 0x16, 0x71, 0x5e, 0xc8, 0x9b, + 0xba, 0x85, 0x26, 0x67, 0xcf, 0x64, 0x7b, 0xe3, 0x66, 0x65, 0xf1, 0x4f, 0x5f, 0x6c, 0x2b, 0xf9, + 0xc5, 0x2b, 0x1d, 0x85, 0x3f, 0x7d, 0x31, 0x6c, 0x91, 0x12, 0x2e, 0xff, 0x7f, 0x9e, 0x02, 0xc3, + 0x3f, 0x1c, 0x98, 0x17, 0xa0, 0xd1, 0xf7, 0x8b, 0x57, 0xc2, 0x26, 0xc9, 0xbc, 0x85, 0x2c, 0x1c, + 0x23, 0x15, 0x95, 0xb7, 0xd1, 0x5c, 0xa5, 0xe4, 0xc8, 0x7e, 0xbb, 0x47, 0xdc, 0xd3, 0xa2, 0xda, + 0xbf, 0x73, 0x90, 0xa0, 0x34, 0xb9, 0x18, 0xa1, 0x89, 0xb2, 0xd8, 0xa0, 0x38, 0xf5, 0x5a, 0x4a, + 0x36, 0x57, 0x89, 0x92, 0x62, 0xcf, 0x31, 0x44, 0xa9, 0xb6, 0xce, 0xac, 0x63, 0xc3, 0xbc, 0x46, + 0x6a, 0x90, 0x56, 0x31, 0x44, 0x4b, 0x5e, 0x20, 0x1e, 0xd7, 0x41, 0xb6, 0xbd, 0xda, 0x24, 0xb7, + 0xd8, 0xb5, 0x90, 0x95, 0x69, 0x39, 0xc9, 0xed, 0xe7, 0xf9, 0x3d, 0x5f, 0x81, 0x8b, 0x6f, 0x32, + 0x55, 0xf8, 0x0d, 0x4b, 0xbf, 0x47, 0x44, 0xbb, 0x53, 0xa3, 0x2b, 0x4b, 0xb4, 0x3a, 0xd8, 0x2f, + 0x46, 0x57, 0xf0, 0x09, 0x21, 0xb5, 0x61, 0xea, 0x7c, 0xf7, 0x20, 0x8d, 0xb2, 0x54, 0x2e, 0x71, + 0x7a, 0x8b, 0x7d, 0x20, 0x58, 0x43, 0x27, 0xd2, 0x00, 0x57, 0x61, 0x96, 0xfe, 0x01, 0xc6, 0x2b, + 0x84, 0xc7, 0xc5, 0x55, 0x8e, 0x08, 0xd5, 0x2c, 0x0e, 0x6c, 0x99, 0x4a, 0x8f, 0xe3, 0x62, 0x1d, + 0x5d, 0xf6, 0x26, 0xe6, 0x33, 0xe4, 0x0f, 0xca, 0xb1, 0x3f, 0x9f, 0x17, 0xe7, 0xa1, 0x11, 0xdf, + 0x1e, 0x08, 0x01, 0xfc, 0xc0, 0x3f, 0x42, 0x76, 0x47, 0xb9, 0xaf, 0x07, 0xb0, 0x97, 0x91, 0xc2, + 0xd1, 0xd9, 0x8e, 0xb0, 0x43, 0xec, 0x6c, 0x0c, 0xfe, 0x5b, 0xe6, 0xbc, 0x87, 0xbd, 0x49, 0x73, + 0xa2, 0x80, 0xfe, 0x76, 0xe6, 0xbd, 0x72, 0xc3, 0x0b, 0x25, 0xff, 0x61, 0x84, 0xf8, 0x4f, 0xc7, + 0x3a, 0x5c, 0xc9, 0x14, 0x97, 0xed, 0xbb, 0xa9, 0x29, 0x25, 0xba, 0xa9, 0x67, 0xe7, 0xf0, 0x4a, + 0xbd, 0x1d, 0xc4, 0xa9, 0xfb, 0xd0, 0xb0, 0x42, 0x9a, 0x17, 0xb3, 0x54, 0x84, 0x33, 0x09, 0x62, + 0xea, 0xd1, 0x84, 0x62, 0x38, 0x8a, 0xbd, 0xe5, 0x68, 0xf2, 0x6f, 0xc5, 0x7e, 0x6a, 0xa0, 0xf6, + 0x4d, 0x3c, 0x8e, 0xbd, 0xa4, 0x17, 0xbb, 0x47, 0xfe, 0x3a, 0x7f, 0x2c, 0xe4, 0x00, 0x89, 0xe5, + 0x00, 0x49, 0x93, 0x03, 0xcc, 0x3b, 0xe6, 0xbc, 0xb9, 0xf7, 0xfb, 0x60, 0x0c, 0x67, 0xb3, 0x75, + 0x7d, 0xe2, 0x85, 0x73, 0x51, 0x42, 0xc9, 0x09, 0x9b, 0x69, 0xfd, 0x41, 0xf8, 0xd1, 0x7a, 0x9b, + 0x7a, 0xba, 0xfa, 0x24, 0x38, 0x97, 0x9c, 0x04, 0x1f, 0x59, 0x87, 0x52, 0x2c, 0xe6, 0xab, 0xd4, + 0xff, 0x08, 0x1b, 0xe5, 0x59, 0xb4, 0x97, 0x4c, 0x9a, 0x15, 0xdc, 0xf0, 0xf3, 0x97, 0x43, 0xa7, + 0x49, 0xb7, 0x4d, 0x1a, 0xe2, 0x64, 0x5e, 0x65, 0x83, 0xe0, 0x7b, 0xf5, 0x24, 0xe4, 0x54, 0x9f, + 0x79, 0x1c, 0x28, 0x55, 0x5c, 0xba, 0x34, 0xdd, 0x6d, 0xaf, 0xa8, 0x1f, 0x79, 0xbd, 0x4d, 0xc3, + 0xed, 0xbf, 0xc7, 0xd4, 0x13, 0xa4, 0x15, 0x4f, 0xd5, 0xa4, 0x13, 0xcc, 0x61, 0x17, 0xca, 0x18, + 0x27, 0x8a, 0x82, 0xea, 0x49, 0xe4, 0x14, 0xac, 0x28, 0x41, 0x9c, 0x60, 0x39, 0x32, 0x79, 0x63, + 0x14, 0x51, 0x5c, 0x73, 0x5a, 0x66, 0x40, 0x59, 0xc1, 0x20, 0xec, 0x85, 0xf1, 0x59, 0x49, 0xc1, + 0xa3, 0x4b, 0x3c, 0x2f, 0x20, 0x5e, 0x68, 0x33, 0x2b, 0xc0, 0x13, 0x9a, 0x1d, 0x68, 0x3a, 0x4f, + 0x4d, 0x2b, 0xfd, 0xff, 0x91, 0xe4, 0xd0, 0x0a, 0x06, 0x05, 0x2c, 0xbc, 0xab, 0xd8, 0x3a, 0x59, + 0x4e, 0x01, 0xa6, 0x84, 0xdc, 0x82, 0x66, 0xc8, 0xdb, 0xfa, 0x32, 0xcf, 0x8d, 0x74, 0x4e, 0x69, + 0x4e, 0x01, 0xad, 0x61, 0xcf, 0xad, 0x3f, 0x05, 0x3e, 0x5e, 0x43, 0x41, 0xaa, 0x86, 0x08, 0x65, + 0x09, 0x59, 0x25, 0xfd, 0x89, 0x51, 0xa9, 0x21, 0x65, 0xbd, 0x34, 0x81, 0x2d, 0x3c, 0x47, 0xf6, + 0x9a, 0xa8, 0x04, 0x5f, 0xdc, 0x29, 0xac, 0xda, 0xa7, 0x2c, 0x8a, 0xeb, 0x37, 0x6a, 0xb3, 0xa5, + 0x58, 0x8b, 0x58, 0x43, 0x79, 0xd9, 0x1b, 0x88, 0x93, 0xd0, 0xf6, 0x95, 0x96, 0x26, 0x6d, 0x05, + 0x33, 0xee, 0xe4, 0xf8, 0x3a, 0xc1, 0xc7, 0x6d, 0xc6, 0x31, 0x28, 0xb8, 0xe6, 0xe0, 0xa7, 0xcc, + 0xd1, 0xa3, 0xf4, 0xce, 0x31, 0xf2, 0xc8, 0xae, 0xac, 0x08, 0x69, 0x9a, 0x43, 0x5c, 0x3c, 0xdd, + 0x83, 0x51, 0x32, 0xcc, 0x61, 0xac, 0x69, 0x68, 0x72, 0x53, 0x0c, 0x82, 0x56, 0xec, 0x20, 0x4a, + 0xac, 0xe4, 0xcf, 0x16, 0x9c, 0x9a, 0xaa, 0x84, 0x6f, 0x5f, 0xae, 0x14, 0x24, 0x3c, 0x4c, 0x61, + 0x84, 0x35, 0x95, 0x9f, 0x3f, 0x25, 0x15, 0x58, 0x90, 0xf6, 0x19, 0x33, 0xe5, 0x81, 0xa6, 0x30, + 0xf1, 0xee, 0x17, 0x47, 0x04, 0xa7, 0x8f, 0xa1, 0xe6, 0x70, 0x3e, 0xdf, 0xec, 0x95, 0x8e, 0x31, + 0xcc, 0x31, 0xda, 0x04, 0x77, 0x8f, 0x31, 0xac, 0x61, 0x71, 0x07, 0x58, 0x3a, 0xc6, 0x0f, 0x38, + 0x86, 0x27, 0xc5, 0xff, 0x0b, 0x08, 0x54, 0xd0, 0xae, 0x17, 0xec, 0x39, 0xbb, 0xd6, 0x73, 0x77, + 0x92, 0x54, 0x7d, 0xf4, 0x27, 0x90, 0x1f, 0x1b, 0xdf, 0x97, 0x70, 0x56, 0xd5, 0x9e, 0x56, 0x77, + 0x0b, 0x68, 0x26, 0xf9, 0x0e, 0x01, 0x49, 0x6f, 0x44, 0xdd, 0x8f, 0x94, 0x07, 0xfb, 0x85, 0xad, + 0x2c, 0xef, 0xb9, 0x68, 0xa2, 0x5d, 0x96, 0x54, 0x77, 0x6d, 0x17, 0xbd, 0xe5, 0xc4, 0x46, 0xc5, + 0xe8, 0x9c, 0x78, 0xf3, 0xd9, 0x5f, 0x7e, 0x2c, 0x6c, 0xcc, 0xa6, 0xa1, 0xbe, 0xa8, 0x82, 0x31, + 0x06, 0xd3, 0x62, 0xb9, 0x4e, 0xad, 0xdc, 0x3a, 0x51, 0x8a, 0x7d, 0xb5, 0x7e, 0x63, 0xfd, 0x85, + 0x89, 0xbd, 0x8a, 0xcb, 0x3f, 0x1c, 0x26, 0xc9, 0x31, 0x37, 0x64, 0x4e, 0x96, 0x4c, 0x18, 0xe3, + 0xc7, 0x27, 0x44, 0x27, 0xb3, 0x0c, 0xcc, 0xf3, 0xb3, 0x35, 0x2d, 0x7b, 0xb5, 0x23, 0x37, 0x74, + 0x28, 0x69, 0xf5, 0x3d, 0x79, 0x06, 0x1f, 0x08, 0x37, 0xad, 0x4e, 0x6d, 0x9c, 0xa6, 0x24, 0xd5, + 0x0a, 0x21, 0xa9, 0x86, 0xcb, 0x92, 0xd8, 0xc6, 0x96, 0x32, 0x4c, 0x7c, 0x5e, 0x9c, 0xad, 0x59, + 0x34, 0xfd, 0x4a, 0x9c, 0x99, 0x74, 0xcf, 0x4e, 0xd9, 0xeb, 0x2e, 0x27, 0x3b, 0x60, 0x0a, 0xed, + 0x38, 0xbd, 0x92, 0xf6, 0x6f, 0x21, 0x07, 0x60, 0x0d, 0x7b, 0x3e, 0x2b, 0x7d, 0xb3, 0xee, 0xd2, + 0xf4, 0x3c, 0x86, 0x8c, 0xa9, 0x31, 0xe4, 0x12, 0xd6, 0x52, 0x84, 0x85, 0x4d, 0x61, 0x09, 0xa2, + 0x94, 0xf8, 0x0b, 0x3b, 0x51, 0x57, 0x84, 0x4d, 0xa9, 0x58, 0x85, 0x61, 0x2d, 0x78, 0x22, 0xdc, + 0x63, 0x2e, 0x62, 0x88, 0x86, 0x98, 0xbf, 0x2e, 0xe5, 0x33, 0x69, 0xb2, 0x76, 0x26, 0x21, 0x28, + 0x76, 0x83, 0xa6, 0xcf, 0x93, 0x86, 0xb2, 0x0b, 0xaa, 0xc1, 0xa9, 0x98, 0x91, 0xce, 0x39, 0x7f, + 0x3e, 0x16, 0x36, 0xbc, 0x80, 0x32, 0x15, 0x9f, 0x22, 0x95, 0xdd, 0xc8, 0x4d, 0xeb, 0x7f, 0xac, + 0xaa, 0xea, 0xc7, 0x30, 0x87, 0x4f, 0x9a, 0x7e, 0x9c, 0x3c, 0x65, 0x97, 0x3c, 0x43, 0x9a, 0xd2, + 0x99, 0x9b, 0x93, 0x76, 0xe7, 0x17, 0xc9, 0x4c, 0xe7, 0xdc, 0xcc, 0xf9, 0xd8, 0x93, 0xb5, 0x72, + 0x02, 0xd7, 0xc4, 0xce, 0xb3, 0xd2, 0xe3, 0x5a, 0x4d, 0x16, 0xa7, 0x6b, 0x52, 0x06, 0x41, 0x3e, + 0x15, 0x91, 0xac, 0x0b, 0x6d, 0x8c, 0xde, 0x3d, 0x84, 0x75, 0x19, 0x0a, 0x99, 0xa8, 0x2e, 0x64, + 0xe5, 0x5e, 0xc9, 0xa6, 0xda, 0x6a, 0xe7, 0x79, 0xd7, 0x24, 0x25, 0xb6, 0xe4, 0x5a, 0x80, 0x44, + 0xfa, 0x46, 0xde, 0xfb, 0xd5, 0xec, 0xd7, 0x2c, 0xe8, 0x67, 0x6a, 0x16, 0xcd, 0xa4, 0x01, 0x3d, + 0x1a, 0xaa, 0x3f, 0xa5, 0xdb, 0xae, 0x44, 0xcc, 0x25, 0x04, 0x9d, 0x50, 0x43, 0xda, 0x92, 0x56, + 0x73, 0x9b, 0xb6, 0x8f, 0x7c, 0xab, 0xd4, 0x03, 0x41, 0xef, 0x16, 0x57, 0x0f, 0xf8, 0x99, 0x57, + 0x94, 0xec, 0x79, 0x5a, 0x8c, 0x07, 0x52, 0x31, 0x02, 0xcc, 0x07, 0xe6, 0xbb, 0xbc, 0x49, 0xab, + 0x55, 0xa1, 0x37, 0x14, 0x9b, 0x9b, 0x2c, 0x4b, 0x3c, 0xf6, 0x65, 0xde, 0xa3, 0x26, 0x35, 0xc8, + 0x01, 0xb1, 0x43, 0x0d, 0x65, 0x90, 0x55, 0x59, 0x7c, 0x5f, 0xdf, 0xe4, 0x26, 0xd2, 0xfb, 0x85, + 0x46, 0x52, 0xdf, 0x09, 0xe5, 0x04, 0xf2, 0x6c, 0x95, 0x74, 0x43, 0xb3, 0xef, 0x3d, 0x55, 0x0d, + 0x90, 0x46, 0xbd, 0x12, 0x47, 0x56, 0x8d, 0xfb, 0x4a, 0x92, 0x05, 0xa0, 0xae, 0x71, 0x73, 0xc3, + 0x5b, 0xb7, 0xaa, 0x38, 0x53, 0x18, 0x02, 0x21, 0xb2, 0x97, 0xdc, 0xb8, 0x39, 0xd0, 0x47, 0x3c, + 0x1e, 0xc2, 0x54, 0x5b, 0x3d, 0x9d, 0x7c, 0x43, 0xf6, 0x48, 0x5d, 0x20, 0xeb, 0x9d, 0xea, 0x24, + 0x7c, 0xb3, 0xc4, 0x09, 0x6b, 0xd3, 0xb7, 0x10, 0x25, 0xb9, 0x3f, 0xb7, 0x89, 0xf6, 0xaa, 0x69, + 0x77, 0xf3, 0xd0, 0x2d, 0x5c, 0xc8, 0x21, 0x92, 0x0d, 0x66, 0x96, 0xda, 0x9a, 0xb5, 0x75, 0x9e, + 0x06, 0x6d, 0x04, 0xd6, 0xd0, 0x7a, 0x0f, 0x5b, 0x47, 0xfd, 0x66, 0x38, 0x1b, 0x39, 0xd3, 0xb5, + 0x4a, 0x19, 0xdb, 0xe2, 0xb9, 0x9f, 0xef, 0xbb, 0xf8, 0xe6, 0x75, 0x1e, 0x58, 0x7b, 0xdd, 0x2a, + 0xf0, 0x43, 0x02, 0x7f, 0xcb, 0x61, 0x44, 0xf2, 0x57, 0xbf, 0x0f, 0xa3, 0xd1, 0x00, 0xad, 0xa5, + 0xd0, 0xdd, 0x46, 0xff, 0x67, 0x00, 0xfc, 0x4a, 0x3e, 0x95, 0xc9, 0x52, 0x6c, 0x21, 0x62, 0x71, + 0x21, 0x68, 0xab, 0x17, 0x62, 0x26, 0x10, 0x27, 0x4f, 0xd9, 0xe6, 0x02, 0xf5, 0x57, 0xa9, 0x39, + 0x17, 0x64, 0xc4, 0xb6, 0x8d, 0x83, 0xa4, 0x53, 0xca, 0x8e, 0x43, 0x21, 0xdb, 0x0c, 0x24, 0x8b, + 0x7d, 0x15, 0x89, 0xfb, 0x75, 0xca, 0xfd, 0x88, 0x75, 0x3a, 0x87, 0x2f, 0xcf, 0x12, 0x1c, 0xb5, + 0x64, 0x91, 0xe6, 0xf1, 0xd5, 0x97, 0x8d, 0x37, 0x82, 0xfe, 0x71, 0x5d, 0xe8, 0x14, 0x69, 0xac, + 0xb8, 0x5f, 0xbe, 0xab, 0x8d, 0x69, 0x9a, 0x21, 0xdb, 0x10, 0x5a, 0xe5, 0x6b, 0x41, 0x71, 0x46, + 0xd5, 0x9d, 0x23, 0x61, 0xc9, 0x6d, 0x10, 0xe7, 0xf8, 0x4a, 0x12, 0x6e, 0x43, 0x3a, 0x56, 0xc8, + 0x28, 0xcd, 0xfc, 0x60, 0xc7, 0x48, 0x42, 0xc9, 0x0e, 0x3e, 0xe0, 0x9c, 0x1b, 0x3a, 0xea, 0xcf, + 0x0e, 0x9b, 0xcd, 0x59, 0x20, 0x87, 0x1d, 0xfe, 0xac, 0xd0, 0x27, 0x8a, 0x84, 0x6e, 0x57, 0x68, + 0x4e, 0xed, 0x07, 0xa0, 0xb3, 0xe4, 0xd2, 0x2e, 0xc1, 0xc3, 0x07, 0xa8, 0xcc, 0x51, 0x1d, 0xce, + 0xed, 0x31, 0x45, 0x1f, 0x57, 0x79, 0x5e, 0x9f, 0xd0, 0x38, 0x7c, 0xb7, 0xb0, 0xdf, 0x2c, 0xf7, + 0xd2, 0x5d, 0x0e, 0x8a, 0x3c, 0xa0, 0x22, 0xd6, 0xda, 0x74, 0x59, 0xe2, 0x7e, 0x86, 0xe6, 0xef, + 0x69, 0xb7, 0x33, 0x10, 0xa7, 0xfe, 0x89, 0x62, 0x0c, 0x26, 0x5a, 0x36, 0xc8, 0x57, 0x85, 0xde, + 0x40, 0x6e, 0xc0, 0x29, 0x42, 0xe8, 0xe6, 0x04, 0x0a, 0x9d, 0x78, 0x25, 0xca, 0xe7, 0x62, 0x2f, + 0x4e, 0x68, 0xdc, 0xfc, 0xed, 0x00, 0x49, 0x6e, 0x60, 0x6c, 0x87, 0xbe, 0x3d, 0x3c, 0xc7, 0xd7, + 0x8d, 0x5c, 0x5a, 0x31, 0x58, 0xc4, 0x8d, 0x29, 0x2c, 0xbf, 0xee, 0x51, 0xe9, 0x8c, 0xb5, 0x55, + 0xac, 0xb3, 0x7f, 0x36, 0x97, 0xcf, 0xe7, 0xd1, 0xdd, 0x60, 0xc1, 0x7a, 0x5a, 0x11, 0x77, 0xaa, + 0xa7, 0x58, 0x6d, 0x5d, 0x94, 0xf6, 0x49, 0x59, 0xae, 0xb1, 0x23, 0x4e, 0xe5, 0x2b, 0xc6, 0x5d, + 0x64, 0x09, 0x76, 0x8e, 0xb0, 0x04, 0x8b, 0x3e, 0x3e, 0xcd, 0x47, 0xb3, 0x0d, 0x4b, 0x67, 0x4d, + 0x92, 0xf6, 0x9e, 0x61, 0x71, 0x92, 0x66, 0x26, 0x29, 0x5c, 0xa1, 0x47, 0x2a, 0xca, 0xca, 0xd6, + 0x4e, 0xef, 0x2f, 0x15, 0xbb, 0x7e, 0xe7, 0x7b, 0x78, 0x87, 0x69, 0x3e, 0xb8, 0x90, 0xd3, 0xcb, + 0x29, 0x58, 0x9d, 0x95, 0x0d, 0xc7, 0x58, 0x9a, 0x94, 0x5c, 0xdd, 0x20, 0x57, 0x7d, 0x04, 0xc7, + 0xe5, 0x08, 0xc8, 0x88, 0x51, 0xc7, 0xa5, 0x12, 0x38, 0x96, 0x9d, 0x40, 0xba, 0x63, 0x17, 0x37, + 0x31, 0x14, 0x2c, 0x03, 0x6b, 0xa6, 0x8d, 0x5c, 0xed, 0x86, 0x90, 0x7c, 0x6f, 0x21, 0x78, 0xd9, + 0xe2, 0x6a, 0x25, 0x86, 0xfa, 0x30, 0xb4, 0x11, 0x43, 0x1b, 0x30, 0xb4, 0x01, 0x43, 0x7d, 0x05, + 0x0d, 0x50, 0xc3, 0xf7, 0x96, 0x55, 0xdf, 0xb8, 0x5a, 0xe7, 0x01, 0x27, 0xce, 0x05, 0x7c, 0xeb, + 0xcb, 0xe4, 0x51, 0xe4, 0x88, 0xcb, 0xa5, 0x22, 0xbd, 0x27, 0x98, 0xb8, 0xde, 0xa3, 0xf7, 0x84, + 0x8c, 0xd7, 0xd3, 0x3d, 0x33, 0xa0, 0xf7, 0x68, 0x56, 0x9b, 0x8a, 0x84, 0x6b, 0x82, 0xee, 0x66, + 0xcb, 0x2e, 0x58, 0xad, 0xf7, 0x80, 0x4d, 0xec, 0xf9, 0xf7, 0x93, 0x3d, 0xdb, 0x97, 0x38, 0x8f, + 0xef, 0x49, 0xab, 0xc0, 0xda, 0x22, 0x6e, 0x31, 0xf3, 0x69, 0xb0, 0xf4, 0x70, 0xc8, 0x1a, 0x11, + 0xa2, 0xf9, 0x65, 0x93, 0xb5, 0x1b, 0xda, 0x0d, 0x65, 0xdf, 0x81, 0x9c, 0xdf, 0x49, 0x6c, 0x03, + 0xdf, 0x52, 0x03, 0xf9, 0x64, 0x6f, 0x62, 0x1e, 0xf1, 0xcd, 0x4b, 0x69, 0x66, 0x1d, 0x04, 0x05, + 0x26, 0xfd, 0xf4, 0x9e, 0x72, 0xb6, 0x99, 0x76, 0xad, 0x97, 0x8a, 0xdd, 0x76, 0x8c, 0x1d, 0x01, + 0xd9, 0x8f, 0x54, 0x5a, 0x58, 0xce, 0x2d, 0x49, 0x9e, 0x4c, 0x2e, 0xa5, 0x3b, 0xa4, 0x58, 0xce, + 0xd4, 0xce, 0xe4, 0x00, 0xa0, 0xd4, 0xa6, 0xd9, 0x1c, 0x06, 0x78, 0x81, 0xe7, 0xf0, 0xb7, 0xc9, + 0xba, 0x2f, 0xca, 0x71, 0x17, 0xd4, 0x1f, 0x28, 0xb4, 0x8a, 0x48, 0xb7, 0xa9, 0x57, 0x37, 0x6e, + 0x76, 0x58, 0x42, 0x67, 0xa9, 0xbe, 0x58, 0x8e, 0xd0, 0x5f, 0x46, 0xa6, 0xd4, 0x5b, 0x7e, 0xe4, + 0x80, 0x32, 0x17, 0xc7, 0xba, 0x15, 0xac, 0xf5, 0x27, 0x11, 0xcb, 0x37, 0x5d, 0xd7, 0x09, 0x76, + 0x30, 0x38, 0xf1, 0xd7, 0x49, 0x16, 0x31, 0xec, 0xbc, 0x6f, 0xfe, 0x4d, 0x4e, 0xb9, 0x90, 0x76, + 0xfd, 0xc9, 0x8f, 0xca, 0xc1, 0xeb, 0x78, 0x0f, 0x20, 0xce, 0x40, 0x64, 0x39, 0x9d, 0xea, 0x64, + 0x80, 0x17, 0xc3, 0xb6, 0xaa, 0x93, 0x50, 0xae, 0x9d, 0x0e, 0x7f, 0x54, 0x61, 0x4b, 0xc6, 0x9c, + 0xf6, 0x13, 0xc1, 0x0b, 0xa8, 0xe6, 0xc6, 0xcd, 0x6e, 0x2f, 0xdf, 0x1d, 0x62, 0x46, 0xe9, 0xc1, + 0x23, 0xf6, 0xc4, 0x93, 0xa4, 0x88, 0x12, 0xa2, 0x44, 0xbc, 0x46, 0x12, 0xb3, 0xec, 0xe0, 0x44, + 0x6c, 0x71, 0xb8, 0xe0, 0xd8, 0xa5, 0x18, 0x86, 0x14, 0x20, 0xba, 0xeb, 0x5b, 0x21, 0x23, 0x6b, + 0x1e, 0x3f, 0x42, 0x0e, 0xbc, 0x81, 0x57, 0x77, 0x09, 0x87, 0x36, 0x92, 0xd5, 0x63, 0xb2, 0x94, + 0x40, 0x16, 0x3e, 0xa4, 0x08, 0xd8, 0x09, 0x97, 0x08, 0x8f, 0xa4, 0x0d, 0x04, 0x19, 0x74, 0xf9, + 0xb4, 0x90, 0x46, 0xc2, 0x23, 0xc2, 0x21, 0x69, 0x83, 0xc0, 0xd1, 0x22, 0x3f, 0xc2, 0x32, 0x99, + 0xeb, 0x0f, 0x5b, 0x36, 0xcb, 0x0d, 0x22, 0x4f, 0xb5, 0x44, 0xd3, 0x84, 0xb3, 0x2c, 0xc6, 0xb7, + 0x48, 0x20, 0x6d, 0xa5, 0x9e, 0x0b, 0x7b, 0xa9, 0x4d, 0x13, 0x91, 0x96, 0xcd, 0xbb, 0x9e, 0xd6, + 0x59, 0x71, 0x0c, 0xad, 0xc2, 0x59, 0x27, 0xfb, 0xa7, 0xfb, 0x50, 0xea, 0x63, 0x7b, 0xcf, 0x62, + 0x8d, 0xfd, 0xa7, 0xfb, 0x42, 0x66, 0x8e, 0x17, 0x6c, 0xd9, 0x8c, 0x39, 0x89, 0xb0, 0x53, 0xec, + 0xe3, 0x69, 0xd9, 0xec, 0xf5, 0x88, 0x7b, 0x25, 0x02, 0xf7, 0xd0, 0xbe, 0x2d, 0x18, 0x7f, 0x7d, + 0x13, 0x3e, 0x9d, 0xf8, 0x28, 0xf8, 0xb4, 0xc3, 0xf8, 0x6f, 0x77, 0xe3, 0xf8, 0x50, 0xe1, 0xff, + 0xf6, 0xcf, 0x7e, 0x47, 0x6d, 0xb0, 0x42, 0x6a, 0x8d, 0xf5, 0xf6, 0x95, 0x44, 0xba, 0xda, 0x62, + 0xad, 0xb1, 0xfb, 0xa4, 0xf2, 0x05, 0x25, 0x65, 0x92, 0xb3, 0xac, 0xe4, 0xc6, 0x92, 0xb2, 0xd2, + 0x05, 0x65, 0xf3, 0xaf, 0x30, 0x41, 0x66, 0x30, 0x80, 0x7f, 0x02, 0xc6, 0x5f, 0xc3, 0xe7, 0xd8, + 0xce, 0xa1, 0xf9, 0xb3, 0x3a, 0xd0, 0xfd, 0x11, 0x3e, 0xff, 0x07, 0x6b, 0x95, 0x9f, 0xca, 0xd5, + 0x81, 0x3e, 0x51, 0x76, 0x8d, 0xbf, 0x3e, 0xb6, 0xba, 0x23, 0xd6, 0xd3, 0x11, 0x29, 0x89, 0x75, + 0xf4, 0xf5, 0xf6, 0xc7, 0x56, 0x76, 0xc0, 0xb2, 0xd6, 0xfb, 0x24, 0xe9, 0x26, 0x89, 0x32, 0xcf, + 0xac, 0x89, 0x0e, 0xdb, 0xf4, 0x78, 0xb2, 0x56, 0x51, 0xed, 0x4e, 0x74, 0x71, 0x43, 0x9c, 0xb8, + 0x4f, 0x51, 0x55, 0x89, 0xf6, 0xbd, 0x36, 0x2a, 0xee, 0xa4, 0xa3, 0xb9, 0x57, 0x9c, 0xf6, 0xa0, + 0xf3, 0x20, 0x99, 0xb7, 0xd6, 0xbd, 0xb6, 0x25, 0x1d, 0x83, 0xd6, 0x34, 0xe9, 0xbe, 0x39, 0x7d, + 0x89, 0xfa, 0x67, 0x3a, 0x1f, 0xf2, 0x0f, 0xbf, 0x11, 0x37, 0xcf, 0x09, 0x3b, 0x5a, 0x37, 0x92, + 0x4d, 0x71, 0xb2, 0x9a, 0xa4, 0x56, 0x06, 0x39, 0x4d, 0x03, 0xed, 0x7b, 0x09, 0x2b, 0x53, 0x72, + 0x1b, 0x23, 0xe9, 0xf7, 0x2b, 0x27, 0x05, 0x17, 0x41, 0x7a, 0xc9, 0x8c, 0xba, 0xec, 0xa4, 0xd5, + 0xc3, 0xcc, 0xd8, 0xaf, 0x37, 0x52, 0xec, 0xca, 0x15, 0x1c, 0x9b, 0xe8, 0x47, 0x3b, 0xed, 0xb4, + 0x4b, 0xc5, 0x7f, 0x5c, 0x5b, 0x99, 0x4c, 0xad, 0x9d, 0xbd, 0xb6, 0x23, 0x99, 0x7b, 0x46, 0xac, + 0xdd, 0x2c, 0x5d, 0x27, 0xeb, 0xd4, 0x28, 0x4e, 0xf4, 0xc4, 0xa0, 0x8c, 0xf6, 0x43, 0xf9, 0xb7, + 0x8e, 0x1d, 0x1a, 0x4a, 0xcd, 0xf2, 0xb4, 0x2a, 0x9c, 0x9f, 0x69, 0x43, 0xda, 0x9d, 0x43, 0x7b, + 0xd9, 0x5e, 0x77, 0xa5, 0x38, 0x04, 0xb6, 0xad, 0x30, 0x0f, 0x29, 0xaf, 0xd8, 0x7d, 0xc5, 0x1a, + 0x9f, 0x32, 0xba, 0x69, 0xc4, 0x11, 0x88, 0xce, 0x4c, 0xed, 0xa8, 0x7c, 0xdd, 0x41, 0x94, 0xe2, + 0x37, 0xb4, 0xaf, 0x89, 0xce, 0xd3, 0xc2, 0x53, 0xc1, 0x11, 0x29, 0xd7, 0x9c, 0x48, 0xd0, 0x79, + 0xac, 0xe6, 0x36, 0x5e, 0x07, 0xe1, 0x2f, 0x7d, 0xb8, 0xb2, 0xcd, 0xc3, 0x2e, 0x5d, 0x28, 0xa6, + 0xb8, 0xd8, 0x35, 0x33, 0xec, 0xa7, 0xf0, 0x36, 0x13, 0x7f, 0xcd, 0x08, 0xdd, 0xa9, 0x94, 0xb0, + 0xcb, 0x18, 0xa6, 0xb7, 0x0e, 0xf4, 0x21, 0x9f, 0x77, 0x8b, 0xd2, 0x18, 0x9d, 0x4f, 0xfc, 0xab, + 0x94, 0x50, 0xea, 0xa2, 0x66, 0x65, 0x9c, 0x52, 0x48, 0x7b, 0x01, 0xbe, 0x3c, 0xaa, 0x2c, 0xc4, + 0xf7, 0xf8, 0xeb, 0x95, 0x4a, 0x49, 0x54, 0x55, 0xde, 0x76, 0x21, 0xdd, 0x12, 0xa7, 0x72, 0xa5, + 0xca, 0x75, 0x67, 0x80, 0x4e, 0x0f, 0x05, 0x0b, 0x81, 0x63, 0x3f, 0xa0, 0xd0, 0xcd, 0x91, 0x06, + 0xef, 0x16, 0x94, 0x0c, 0xf4, 0x76, 0x03, 0xdd, 0x9b, 0xc4, 0xd6, 0xd1, 0x0e, 0xf1, 0x79, 0x12, + 0x50, 0x03, 0x72, 0x75, 0xaa, 0xd5, 0x6d, 0x49, 0x7b, 0xe5, 0x0d, 0x95, 0xe2, 0x9e, 0x09, 0x1e, + 0x43, 0xe7, 0xad, 0x4e, 0x7c, 0xca, 0x61, 0xfc, 0xa3, 0x03, 0xfc, 0x9c, 0x5f, 0x9d, 0x0f, 0xe7, + 0xed, 0x27, 0xe1, 0x7c, 0xf7, 0x69, 0x38, 0xff, 0x7d, 0x1b, 0x9c, 0xff, 0x1a, 0xbe, 0x23, 0xe8, + 0x37, 0xfc, 0x38, 0x9c, 0xaf, 0xb0, 0xc3, 0xf9, 0xc1, 0x0b, 0x70, 0x5e, 0x09, 0xc1, 0xf9, 0xef, + 0xfa, 0xe0, 0xfc, 0x62, 0x05, 0xce, 0xd7, 0x1e, 0x83, 0xf3, 0x4b, 0xda, 0x31, 0x9e, 0x07, 0xce, + 0x17, 0x8c, 0xc0, 0xf9, 0x72, 0x7c, 0xee, 0xdc, 0x01, 0xe7, 0x6f, 0x78, 0x12, 0xce, 0x5b, 0x22, + 0x70, 0xfe, 0xeb, 0x98, 0xd7, 0x77, 0xd3, 0x48, 0x7d, 0xfe, 0x2b, 0x87, 0xe0, 0xfc, 0xba, 0xa3, + 0x70, 0xfe, 0xc1, 0x16, 0x8c, 0x8b, 0xf1, 0x6e, 0x6e, 0x80, 0xf3, 0x4f, 0x36, 0x62, 0x19, 0xe5, + 0x18, 0xf7, 0x09, 0x38, 0x5f, 0x37, 0x06, 0xe7, 0xf3, 0xde, 0x86, 0xf3, 0x81, 0x33, 0x70, 0xfe, + 0x16, 0x2c, 0x6b, 0x1d, 0x96, 0xfb, 0xe4, 0x38, 0x9c, 0x4f, 0x60, 0xd9, 0x56, 0x2c, 0xa3, 0x15, + 0xe3, 0xb5, 0x46, 0xe1, 0xfc, 0xdf, 0xe3, 0xf7, 0xdf, 0x63, 0xf9, 0xeb, 0xb0, 0xfe, 0xeb, 0x30, + 0x0f, 0xdf, 0x39, 0x38, 0xbf, 0x0c, 0xfd, 0xbe, 0xb3, 0x1b, 0xdf, 0x98, 0xe6, 0xb6, 0x3c, 0x38, + 0x5f, 0x7f, 0x10, 0xdd, 0x58, 0xce, 0x3f, 0x58, 0x30, 0xee, 0x4b, 0x70, 0xbe, 0xa1, 0x06, 0xce, + 0x6f, 0xfc, 0x08, 0xeb, 0xbd, 0x05, 0xdb, 0x39, 0x88, 0x65, 0xae, 0xc0, 0xf2, 0x30, 0xaf, 0x11, + 0x4c, 0x1b, 0xc6, 0x3c, 0x42, 0x58, 0xf6, 0x26, 0x6c, 0xf3, 0x10, 0xd6, 0xe3, 0x01, 0xac, 0x43, + 0x35, 0x86, 0xff, 0x5d, 0x33, 0x9c, 0x6f, 0xc3, 0x3c, 0xe6, 0x9a, 0xd1, 0x0f, 0xdf, 0x0f, 0xec, + 0xc4, 0xf6, 0x4e, 0x20, 0x7c, 0x72, 0xe0, 0xfc, 0xad, 0xcf, 0xc3, 0xf9, 0x4a, 0x2b, 0x86, 0x61, + 0xfc, 0xf9, 0xbf, 0xc7, 0x3a, 0x62, 0x3b, 0x6e, 0xc3, 0x36, 0x8f, 0x24, 0xe0, 0xfc, 0x1d, 0x95, + 0x18, 0x77, 0x13, 0x7e, 0x63, 0xfa, 0x75, 0x98, 0xc6, 0x8f, 0x75, 0x09, 0x61, 0xb9, 0x23, 0x4f, + 0xa1, 0x1f, 0xbe, 0xd7, 0xbf, 0x83, 0x71, 0x30, 0xee, 0x83, 0x46, 0x7c, 0x1f, 0xc7, 0x6f, 0xac, + 0xc7, 0x1d, 0x18, 0xf7, 0x51, 0x84, 0xd7, 0x9c, 0x13, 0x70, 0xfe, 0x8b, 0x98, 0xf7, 0x97, 0x30, + 0xce, 0x17, 0xb1, 0x3e, 0x7f, 0x87, 0xf9, 0x05, 0xfd, 0x08, 0x93, 0x4e, 0x84, 0x3d, 0xc2, 0xf5, + 0xbb, 0x08, 0xc3, 0x2f, 0x63, 0xb9, 0x83, 0xd8, 0x07, 0x56, 0xcc, 0x7b, 0x29, 0xba, 0xc3, 0xf8, + 0x6e, 0xdd, 0x8b, 0x71, 0xb0, 0xed, 0x77, 0xbe, 0x8e, 0x6d, 0xc5, 0xb6, 0xac, 0xc5, 0xbe, 0xfb, + 0x1a, 0xf6, 0x87, 0x15, 0xdb, 0x5d, 0x80, 0xb0, 0xba, 0x71, 0x11, 0x9c, 0x7f, 0xf8, 0x7e, 0x38, + 0xff, 0xcb, 0x6d, 0x18, 0xc7, 0x80, 0x69, 0xb0, 0x2e, 0xd7, 0x60, 0x3b, 0x97, 0xe2, 0xf7, 0x20, + 0xc2, 0x63, 0x2e, 0xb6, 0xb7, 0x07, 0xcb, 0xf0, 0x63, 0x3b, 0x07, 0xb0, 0xcc, 0x47, 0xb1, 0x5f, + 0x57, 0x62, 0xbc, 0x95, 0x03, 0x08, 0x83, 0xfd, 0x08, 0xaf, 0x51, 0x6c, 0x43, 0xb3, 0xe8, 0xc7, + 0x65, 0x9f, 0x88, 0xb7, 0x1f, 0xcb, 0x8e, 0x20, 0xde, 0x5c, 0x83, 0x7d, 0xb3, 0x09, 0xf3, 0x5e, + 0x8c, 0x75, 0x7f, 0x10, 0xcb, 0x6e, 0xc1, 0xef, 0x0a, 0x8c, 0xbf, 0x14, 0xfb, 0xf1, 0xba, 0x17, + 0x10, 0xa7, 0xd0, 0xcf, 0x8e, 0xfd, 0xfe, 0x7d, 0xcc, 0xbf, 0x1b, 0xf3, 0x7a, 0x52, 0xc3, 0x87, + 0x08, 0xe2, 0x40, 0x28, 0x8e, 0xe9, 0x24, 0x84, 0x3b, 0x86, 0xd5, 0x62, 0xfd, 0xd7, 0x9b, 0xd3, + 0xf8, 0x32, 0x2c, 0x11, 0x4d, 0xf7, 0x56, 0x37, 0x36, 0x48, 0x05, 0x7d, 0x2e, 0xa9, 0x66, 0xc1, + 0x2d, 0x05, 0x51, 0xa9, 0xa6, 0x8c, 0x7f, 0x6f, 0xe0, 0xdf, 0x72, 0xfc, 0x75, 0x49, 0x4b, 0xee, + 0x90, 0x0a, 0xa2, 0x26, 0x9c, 0xbb, 0xf0, 0x2f, 0x15, 0x71, 0xfa, 0xb7, 0x54, 0xdf, 0x5b, 0x1b, + 0x8b, 0x71, 0x40, 0xdf, 0x7d, 0x7d, 0xc1, 0x8e, 0x7b, 0xfa, 0x3b, 0xfa, 0xe2, 0x70, 0x5b, 0x7f, + 0x47, 0x7f, 0x47, 0x63, 0xeb, 0xca, 0xd5, 0x1d, 0x71, 0xe8, 0x6e, 0x5d, 0xdd, 0xb1, 0xe4, 0x8e, + 0xd6, 0x58, 0x47, 0x2b, 0x44, 0x7a, 0x7b, 0xc2, 0xab, 0xfa, 0xbb, 0xa3, 0xb0, 0x12, 0xbf, 0xe2, + 0x1d, 0x2b, 0x7b, 0xa1, 0xbd, 0x23, 0xd2, 0xc1, 0x8e, 0x95, 0xad, 0x91, 0x08, 0xbd, 0x7a, 0xef, + 0x6d, 0xed, 0x8a, 0x03, 0x52, 0xf1, 0xfe, 0x6e, 0xf2, 0xee, 0xec, 0x8d, 0xb4, 0x37, 0xb7, 0xf6, + 0xad, 0xa6, 0xcc, 0xe3, 0x1d, 0xdd, 0xc9, 0xfc, 0xe3, 0x5d, 0xed, 0xf7, 0x21, 0xe5, 0xfe, 0x2a, + 0xc6, 0xad, 0xeb, 0x8d, 0x55, 0x77, 0xb6, 0xc6, 0x20, 0x8e, 0xb1, 0x28, 0xed, 0xdd, 0x0b, 0x6e, + 0x2e, 0xc5, 0x6c, 0xba, 0xa3, 0x58, 0x62, 0x73, 0x57, 0x77, 0x07, 0xdd, 0xcf, 0x05, 0x33, 0xa0, + 0xe0, 0x6f, 0x9a, 0xaf, 0xc6, 0x3f, 0xb6, 0xe3, 0x13, 0xc1, 0x67, 0x60, 0x9a, 0xff, 0x0e, 0x7c, + 0x90, 0x92, 0x7c, 0x7c, 0x08, 0x9f, 0x13, 0xf8, 0x8c, 0x0b, 0xff, 0x33, 0x66, 0x7c, 0x9a, 0xf1, + 0xc1, 0xb9, 0xf3, 0x0c, 0xca, 0x28, 0x67, 0xb6, 0xe0, 0xf3, 0x14, 0x3e, 0xbb, 0xf1, 0x39, 0x88, + 0xcf, 0xdb, 0xf8, 0x9c, 0x83, 0xf1, 0x3f, 0x18, 0xf1, 0xc9, 0xc7, 0xa7, 0x14, 0x9f, 0x1a, 0x91, + 0xf6, 0x0f, 0x2d, 0xe9, 0xfc, 0xff, 0x80, 0x65, 0xfe, 0x21, 0x81, 0x0f, 0x75, 0xe6, 0x83, 0x9a, + 0x1f, 0x96, 0xf7, 0x87, 0x63, 0xf8, 0x60, 0x1e, 0x7f, 0x38, 0x8d, 0xcf, 0x84, 0xf0, 0x3f, 0x6b, + 0xc3, 0x07, 0xe9, 0xcc, 0xd9, 0x86, 0x74, 0xfa, 0xb3, 0x98, 0xfe, 0xec, 0x2e, 0x7c, 0x8e, 0xe2, + 0x83, 0xf5, 0x3b, 0x7b, 0x06, 0x9f, 0x71, 0x18, 0xff, 0xa3, 0x01, 0x1f, 0x27, 0x3e, 0x51, 0x7c, + 0xb0, 0x6e, 0x7f, 0xdc, 0x89, 0x0f, 0xfa, 0x9f, 0xf3, 0xe0, 0x33, 0x8a, 0x0f, 0xb6, 0xe7, 0x4f, + 0x98, 0xdf, 0x9f, 0xb0, 0x5e, 0x7f, 0x6a, 0xc4, 0x07, 0xf3, 0xf9, 0xd3, 0x33, 0xf8, 0x20, 0x0d, + 0xfb, 0x13, 0xc6, 0xfb, 0x13, 0xce, 0xc4, 0x9f, 0x58, 0xf0, 0xa9, 0xc4, 0x07, 0xc3, 0x3e, 0x19, + 0xc1, 0xe7, 0x71, 0x7c, 0xb0, 0x7d, 0x9f, 0x60, 0xda, 0x4f, 0x4e, 0xc2, 0xf8, 0x9f, 0xb1, 0x6d, + 0x7f, 0xc6, 0xf4, 0x7f, 0x46, 0x38, 0xfc, 0xf9, 0x09, 0x7c, 0xb0, 0x8c, 0x3f, 0xa3, 0xff, 0x38, + 0x96, 0x3d, 0x8e, 0x70, 0x19, 0xc7, 0xf8, 0xe3, 0xd8, 0x86, 0xf3, 0x18, 0xe7, 0x7c, 0x03, 0x3e, + 0xe8, 0x77, 0x1e, 0xf3, 0x39, 0x8f, 0x30, 0x3d, 0x8f, 0x30, 0x3a, 0x8f, 0x6d, 0xbb, 0x80, 0x70, + 0xbc, 0x20, 0xe1, 0x83, 0xed, 0xba, 0x80, 0xf9, 0x5c, 0x88, 0xe3, 0x83, 0xf5, 0xbb, 0x80, 0xf9, + 0x7d, 0x8a, 0xe9, 0x3e, 0xc5, 0xfa, 0x7c, 0x8a, 0x79, 0x7c, 0x8a, 0xf5, 0x99, 0xb0, 0xe2, 0xe3, + 0x82, 0xf3, 0xe6, 0x15, 0xf8, 0xc6, 0x76, 0x4c, 0xb4, 0xe0, 0x83, 0xf9, 0x4d, 0x60, 0xbb, 0x27, + 0x30, 0xfc, 0x22, 0xc6, 0xbf, 0x88, 0x65, 0x5e, 0xdc, 0x25, 0x60, 0x73, 0x11, 0xd3, 0x4e, 0x62, + 0x1b, 0x26, 0x6b, 0xf0, 0xc1, 0x34, 0x93, 0xd8, 0x3f, 0x93, 0xfb, 0xf1, 0xc1, 0xf8, 0x1a, 0x8b, + 0x33, 0xae, 0x2e, 0xc2, 0x07, 0xeb, 0xa6, 0xb6, 0x5f, 0x8a, 0x13, 0x2a, 0xf6, 0xab, 0x8a, 0xf1, + 0x55, 0xec, 0x0b, 0x15, 0xe9, 0x1b, 0x20, 0x1d, 0x01, 0x1c, 0xff, 0x80, 0x63, 0x1b, 0xa7, 0xb4, + 0xf3, 0xb0, 0x0b, 0x1f, 0xa4, 0x23, 0x80, 0xe3, 0x15, 0x70, 0x8c, 0xea, 0x70, 0xac, 0xe9, 0x70, + 0x0c, 0xea, 0x90, 0xbe, 0xea, 0x9a, 0x2f, 0x8b, 0x67, 0xe7, 0x75, 0x71, 0xed, 0x8d, 0x74, 0x4d, + 0x87, 0xe3, 0x56, 0x87, 0x74, 0x4b, 0x87, 0xb4, 0x19, 0xa5, 0x81, 0xf3, 0xfa, 0xce, 0x4b, 0xe3, + 0xeb, 0x91, 0x26, 0x65, 0x95, 0x4f, 0xf7, 0x26, 0x5e, 0xe9, 0x2d, 0xa4, 0xda, 0x87, 0x3a, 0xa1, + 0x6c, 0x16, 0x42, 0xeb, 0xbd, 0x0f, 0xf0, 0x3b, 0x00, 0xe7, 0xaf, 0xda, 0x9d, 0xc9, 0x7e, 0xb5, + 0x67, 0x70, 0x5f, 0x37, 0x96, 0x96, 0x2c, 0x2c, 0x9f, 0xca, 0x7e, 0x41, 0x02, 0x66, 0x1e, 0x21, + 0x5b, 0x1b, 0xf8, 0x7e, 0x55, 0x7b, 0x1f, 0xd5, 0xde, 0xaf, 0xd1, 0x3b, 0x0d, 0x89, 0x93, 0x67, + 0xf1, 0xb9, 0x00, 0xe3, 0xef, 0x67, 0xe1, 0x33, 0x0b, 0x9f, 0xab, 0xf1, 0x99, 0x83, 0xcf, 0x3c, + 0x7c, 0xe6, 0xe3, 0x73, 0x03, 0x3e, 0x88, 0x29, 0xef, 0x57, 0xe3, 0x83, 0xd0, 0x7c, 0x1f, 0x31, + 0xea, 0x7d, 0xec, 0xcd, 0xf7, 0xb1, 0x87, 0xde, 0x47, 0xc8, 0xbf, 0x8f, 0xdc, 0xe5, 0xfb, 0xc8, + 0x5d, 0xbe, 0x8f, 0x18, 0xf0, 0x3e, 0x62, 0xd3, 0xfb, 0x88, 0x95, 0xef, 0x63, 0x4f, 0xbf, 0x9f, + 0x1c, 0x6d, 0xd7, 0xe2, 0x43, 0x3a, 0x8b, 0xaf, 0xe3, 0x43, 0xb3, 0x2d, 0x71, 0x6c, 0x2f, 0xe0, + 0x43, 0xf5, 0x38, 0x87, 0x6c, 0x41, 0x2e, 0x3e, 0x0b, 0xf0, 0x59, 0x8e, 0x69, 0xb0, 0x57, 0xde, + 0x1f, 0xc6, 0x67, 0x54, 0x4b, 0x4b, 0x1b, 0xf4, 0x89, 0xda, 0x59, 0xf0, 0xb1, 0xe2, 0x23, 0x11, + 0x00, 0xf0, 0x71, 0xd6, 0xf4, 0xf6, 0xdd, 0xbd, 0xe0, 0xa6, 0xbb, 0x6b, 0x07, 0x5a, 0xbb, 0xbb, + 0x7a, 0x3a, 0x80, 0x3f, 0x17, 0xe1, 0x67, 0xa0, 0x63, 0x20, 0x9e, 0x6a, 0x9b, 0x41, 0x4b, 0x69, + 0xd4, 0xde, 0x38, 0xcf, 0x7d, 0x1d, 0xfb, 0xf5, 0xeb, 0x48, 0x67, 0xbf, 0xfe, 0x26, 0x3e, 0x2f, + 0x7d, 0x56, 0xbc, 0x44, 0xd2, 0x17, 0x3c, 0x20, 0x65, 0xd1, 0xbb, 0xca, 0x2b, 0xa2, 0x26, 0x20, + 0xeb, 0x7d, 0x7c, 0x4e, 0xe1, 0xf3, 0x01, 0x3e, 0xa7, 0xf1, 0xf9, 0x10, 0x9f, 0x8f, 0xf0, 0xf9, + 0x18, 0x1f, 0x1c, 0xee, 0x59, 0xe3, 0xf8, 0x5c, 0xc0, 0xe7, 0x22, 0x3e, 0x08, 0x6f, 0x83, 0x9e, + 0xd2, 0x71, 0x05, 0x6f, 0xbc, 0xfb, 0xf6, 0x9e, 0x86, 0xde, 0x95, 0xab, 0x21, 0xbf, 0xa7, 0x37, + 0x2e, 0x75, 0xf4, 0xf4, 0xf6, 0x87, 0x3b, 0xa5, 0xee, 0x8e, 0xee, 0x5e, 0xec, 0xc4, 0xd6, 0x35, + 0xad, 0x5d, 0x91, 0xd6, 0xb6, 0x48, 0x07, 0x5c, 0x1d, 0x8d, 0xf5, 0xae, 0xec, 0xe8, 0xeb, 0x93, + 0xe2, 0xf4, 0x29, 0x85, 0xfa, 0x23, 0x11, 0xb8, 0xa2, 0xad, 0xb5, 0x5d, 0x42, 0x9a, 0x19, 0x8d, + 0x20, 0xa9, 0x85, 0xd9, 0xf4, 0xd5, 0xd3, 0xdf, 0xdd, 0xd6, 0x11, 0x83, 0x39, 0x31, 0x24, 0xa3, + 0x5d, 0xb1, 0x8e, 0x76, 0xe4, 0xc8, 0xc3, 0x48, 0x67, 0x7b, 0xe2, 0x52, 0x77, 0x57, 0x5f, 0x5f, + 0x57, 0x4f, 0x18, 0xf2, 0xd7, 0xb4, 0x46, 0xfa, 0x3b, 0xa4, 0xd6, 0x50, 0xbc, 0x23, 0x26, 0xad, + 0xee, 0xb8, 0xef, 0xde, 0xde, 0x58, 0x7b, 0x2a, 0x70, 0xce, 0xbd, 0x31, 0x24, 0xe0, 0x5a, 0x2e, + 0x52, 0x6f, 0x28, 0x95, 0xbc, 0x0f, 0xae, 0xea, 0xef, 0xe9, 0x6e, 0x8d, 0xaf, 0xec, 0xc4, 0x3c, + 0xef, 0xe9, 0xef, 0x8d, 0x77, 0xf4, 0x81, 0x9c, 0xca, 0x3b, 0x82, 0xd0, 0x96, 0xba, 0x7a, 0x30, + 0xe7, 0xae, 0x76, 0xa9, 0x37, 0x26, 0xc5, 0x7b, 0x7b, 0x25, 0x9a, 0x09, 0xe0, 0x0b, 0xa1, 0x2e, + 0xac, 0x6c, 0x57, 0x9f, 0xc4, 0x4d, 0x1b, 0xe8, 0x58, 0xd9, 0xcf, 0xd5, 0x87, 0x2f, 0x26, 0x23, + 0xe3, 0x34, 0xd0, 0xd5, 0x2e, 0xb2, 0x10, 0x52, 0xc1, 0x35, 0x3d, 0xbd, 0x52, 0x7b, 0x47, 0xa8, + 0xb5, 0x3f, 0x12, 0x97, 0xda, 0xb1, 0x05, 0x2b, 0xe3, 0x08, 0x07, 0xb8, 0xaa, 0xb7, 0x6d, 0x15, + 0x3a, 0x29, 0xa7, 0xae, 0x1e, 0xa9, 0xbf, 0xaf, 0x03, 0xf2, 0x34, 0x9f, 0xd6, 0x08, 0x4e, 0x34, + 0xed, 0xf7, 0x61, 0xe6, 0x5d, 0x7d, 0x58, 0x4b, 0x6b, 0x2a, 0x0d, 0x17, 0x19, 0xea, 0xed, 0xef, + 0x69, 0x4f, 0xa5, 0x4e, 0xfb, 0x7c, 0x29, 0x59, 0xfe, 0xbd, 0x5d, 0x3d, 0xed, 0xbd, 0xf7, 0x62, + 0x89, 0x7d, 0x2b, 0x63, 0x5d, 0xd1, 0x78, 0x57, 0x6f, 0x4f, 0x2a, 0x36, 0x37, 0x02, 0x9b, 0xd8, + 0x01, 0xd7, 0x52, 0x2b, 0xc4, 0xf4, 0x24, 0xb5, 0xae, 0xa4, 0x48, 0x52, 0xfc, 0xbe, 0x68, 0x87, + 0xd4, 0xdf, 0xb3, 0xba, 0xa7, 0xf7, 0xde, 0x1e, 0xb0, 0x26, 0xf3, 0x6f, 0xed, 0x4e, 0x81, 0x01, + 0xac, 0x29, 0x78, 0x88, 0xc0, 0x08, 0x75, 0xf1, 0xb5, 0xe9, 0x76, 0x50, 0x65, 0x10, 0xc0, 0xa9, + 0x8e, 0xa2, 0x1c, 0xe1, 0xea, 0xf6, 0xae, 0xbe, 0xd5, 0x1c, 0xc4, 0x69, 0xb1, 0x5b, 0xdb, 0xc1, + 0xc6, 0x7e, 0x98, 0xe2, 0xde, 0x58, 0x57, 0xbc, 0xa3, 0x18, 0xf1, 0x00, 0xa7, 0x53, 0x0a, 0xc0, + 0xb4, 0x5c, 0x62, 0xeb, 0x4a, 0x14, 0xab, 0xfa, 0xb0, 0x0d, 0x6b, 0xba, 0x10, 0x43, 0xa4, 0xd6, + 0x38, 0xa1, 0x04, 0x45, 0x98, 0x06, 0x0c, 0xf2, 0xbd, 0x0f, 0x2c, 0xd4, 0xae, 0xee, 0xd6, 0x9e, + 0xfb, 0xa4, 0x48, 0xc7, 0x9a, 0x8e, 0x08, 0x76, 0xa3, 0x48, 0x28, 0x39, 0xb1, 0xe3, 0xd6, 0xf4, + 0x46, 0xb0, 0x47, 0xe7, 0x27, 0xeb, 0xd7, 0x8d, 0xc0, 0xa2, 0x8c, 0xae, 0xe8, 0xeb, 0xe8, 0x58, + 0x2d, 0x85, 0x10, 0x17, 0xfb, 0x63, 0x1d, 0x60, 0xc5, 0xb9, 0x97, 0xbb, 0x1d, 0x63, 0xa5, 0x7a, + 0xfa, 0x8a, 0x64, 0x2d, 0x19, 0x33, 0xe5, 0x74, 0x3b, 0x53, 0xf5, 0x95, 0x42, 0xb1, 0xde, 0x6e, + 0x89, 0xd9, 0x01, 0x02, 0xb3, 0x2d, 0x89, 0x1a, 0xdc, 0xac, 0x74, 0xb4, 0x34, 0xce, 0x50, 0xc7, + 0x66, 0xf8, 0x5f, 0x43, 0x35, 0x6a, 0x15, 0x80, 0x91, 0x6a, 0x96, 0x37, 0x49, 0x54, 0x22, 0x5c, + 0x45, 0xf8, 0xc2, 0x45, 0xf7, 0x48, 0xed, 0xb1, 0xae, 0x35, 0x1d, 0xf0, 0x65, 0xf4, 0xc1, 0xc1, + 0xd3, 0x81, 0x43, 0x29, 0x1e, 0xeb, 0xea, 0x60, 0x8c, 0x49, 0x63, 0x92, 0x35, 0x5d, 0xb3, 0xbe, + 0xde, 0x10, 0xa3, 0xee, 0xea, 0x4c, 0xf4, 0xa2, 0x6f, 0x2c, 0x2c, 0x97, 0x06, 0x53, 0xa4, 0xb7, + 0xb5, 0x9d, 0x2b, 0xd3, 0x89, 0x3d, 0x0d, 0x5f, 0x0c, 0xf5, 0xf7, 0x88, 0xce, 0xa7, 0x8a, 0x74, + 0xe1, 0xa8, 0xeb, 0x20, 0x28, 0x50, 0x64, 0xcc, 0x9c, 0x46, 0x11, 0xf9, 0x53, 0x37, 0xa3, 0x57, + 0x9e, 0xe6, 0x45, 0x9f, 0xd2, 0xca, 0xde, 0x48, 0xa4, 0xab, 0x8f, 0x1a, 0x6d, 0xcd, 0xf4, 0x8e, + 0x23, 0xef, 0xd2, 0xdb, 0x1f, 0x4f, 0x79, 0xf6, 0xf7, 0xb0, 0x77, 0x47, 0x2c, 0xd6, 0x1b, 0x03, + 0x4b, 0x5b, 0x7f, 0x28, 0x44, 0x63, 0x70, 0x4d, 0x47, 0x2c, 0x14, 0xe9, 0xbd, 0x17, 0x66, 0x15, + 0x16, 0x16, 0x7a, 0x11, 0x24, 0xab, 0xc1, 0xca, 0x75, 0x9a, 0x36, 0xa2, 0xbe, 0x7c, 0x07, 0x77, + 0x9d, 0x24, 0x17, 0xf4, 0xc9, 0xc9, 0xee, 0x4b, 0xe3, 0xd0, 0xb5, 0xd3, 0x42, 0xa7, 0xc3, 0xfc, + 0xfa, 0xc6, 0x48, 0x47, 0x6b, 0x1f, 0x21, 0x6f, 0x5f, 0x47, 0x2c, 0xae, 0xa1, 0x81, 0x16, 0xbb, + 0x47, 0x22, 0x64, 0x11, 0xb0, 0x75, 0x6a, 0xf1, 0x62, 0x1d, 0x48, 0x73, 0x10, 0x67, 0x3e, 0x33, + 0xe2, 0x75, 0x7f, 0x39, 0x22, 0xbd, 0xc1, 0x3a, 0xad, 0x52, 0x8c, 0x39, 0x5f, 0x08, 0x70, 0x2f, + 0x27, 0xfb, 0x37, 0x15, 0xd9, 0x16, 0xd0, 0xfa, 0x39, 0x8a, 0x24, 0x83, 0x91, 0x4f, 0x0b, 0x70, + 0x7c, 0xad, 0xb7, 0x5f, 0x5a, 0x76, 0x7b, 0x53, 0xf3, 0x5f, 0x2a, 0x6b, 0x1e, 0x5c, 0x97, 0x59, + 0x58, 0x67, 0x2b, 0x0e, 0x13, 0xc6, 0x2f, 0xb7, 0x80, 0x84, 0x80, 0x79, 0x76, 0xb0, 0x23, 0x8e, + 0x28, 0x32, 0xb3, 0xba, 0xb5, 0x67, 0x65, 0x47, 0x04, 0xae, 0x6a, 0x12, 0x43, 0x3e, 0x26, 0x58, + 0x52, 0x22, 0xab, 0x84, 0x5a, 0x44, 0x04, 0x91, 0x56, 0x4a, 0xb5, 0x11, 0x6c, 0x1f, 0x8e, 0x99, + 0xda, 0x9e, 0xf6, 0xfa, 0x10, 0x54, 0xc4, 0x3b, 0xb1, 0x09, 0x34, 0x32, 0x5a, 0x7b, 0xda, 0x19, + 0xbb, 0xfa, 0xa3, 0xd1, 0xde, 0x3e, 0x1a, 0xd8, 0xbd, 0x52, 0x5b, 0x07, 0xd1, 0xac, 0x76, 0xaa, + 0x4d, 0x32, 0x06, 0x93, 0x14, 0xa9, 0xb7, 0x27, 0x82, 0x23, 0x12, 0x29, 0x52, 0x47, 0x08, 0x49, + 0x68, 0xbb, 0x56, 0x0f, 0xfa, 0x0b, 0x6b, 0x4f, 0x97, 0xf6, 0x90, 0xef, 0x5a, 0x7c, 0x5e, 0xc6, + 0xe7, 0xff, 0xe0, 0x73, 0x18, 0x9f, 0x77, 0xf0, 0x39, 0x89, 0xcf, 0x69, 0x7c, 0x50, 0xc6, 0x85, + 0x3f, 0xe2, 0x7c, 0xe9, 0x16, 0xf3, 0xe6, 0x95, 0xc8, 0x5d, 0x5e, 0xf9, 0x23, 0x80, 0xab, 0x71, + 0xce, 0xbc, 0x7a, 0x23, 0xc0, 0xf5, 0x38, 0x83, 0x5d, 0x7f, 0x55, 0x72, 0x0a, 0xfc, 0x66, 0x6d, + 0x43, 0x1d, 0x9c, 0x3f, 0x70, 0x16, 0x20, 0xeb, 0x8f, 0x70, 0x7e, 0x2c, 0x7b, 0x39, 0x56, 0x43, + 0xaa, 0x0a, 0x22, 0xcc, 0xbb, 0x17, 0x2e, 0x5a, 0x2d, 0x35, 0x75, 0xc4, 0x1b, 0xa9, 0x95, 0xa9, + 0x66, 0xc4, 0x10, 0x47, 0x4a, 0x90, 0xfd, 0xef, 0x88, 0x47, 0xc9, 0x1f, 0x52, 0x11, 0x28, 0x4d, + 0x31, 0xa5, 0x81, 0x58, 0x3c, 0x9c, 0xd2, 0xec, 0x64, 0xb0, 0x21, 0x50, 0xd0, 0x57, 0x21, 0x41, + 0x41, 0x1b, 0xfe, 0x64, 0xfa, 0x12, 0xea, 0xc7, 0x4a, 0x04, 0xe1, 0x41, 0x09, 0xa1, 0xad, 0x3f, + 0x9d, 0x18, 0xb9, 0xfa, 0x78, 0x17, 0x0d, 0xb3, 0x94, 0x4f, 0x1d, 0x82, 0x4a, 0x74, 0x45, 0x5a, + 0xf7, 0xd3, 0xf4, 0xb5, 0xa6, 0x8a, 0x29, 0x39, 0x76, 0x0c, 0x44, 0x5b, 0x7b, 0xfa, 0x3e, 0x47, + 0x32, 0xa8, 0xe6, 0xc4, 0xd5, 0xd0, 0x50, 0xef, 0x6d, 0x62, 0x67, 0x43, 0x57, 0x5b, 0x1f, 0xd4, + 0xd4, 0xde, 0x21, 0xbe, 0x6a, 0x3a, 0xd6, 0xf4, 0x41, 0x83, 0x08, 0x00, 0xe1, 0xd5, 0x04, 0x75, + 0xcb, 0x03, 0xcd, 0xc2, 0x5d, 0xd7, 0x4b, 0x93, 0x61, 0x6d, 0xe0, 0x8e, 0xaa, 0xa0, 0xc8, 0xa8, + 0x31, 0xd6, 0x11, 0xea, 0x73, 0xd7, 0xf6, 0xac, 0x29, 0xae, 0x8a, 0x21, 0x62, 0x20, 0xee, 0x7b, + 0x7b, 0x11, 0x85, 0x97, 0x11, 0xe9, 0x04, 0x08, 0x74, 0xdc, 0x2b, 0x35, 0x8a, 0x99, 0x1b, 0xda, + 0x8b, 0x97, 0x15, 0x63, 0xb5, 0xfa, 0xe3, 0x44, 0x44, 0xa1, 0xb9, 0x17, 0x89, 0x54, 0x0c, 0x07, + 0x76, 0x73, 0x6f, 0x7b, 0xeb, 0x7d, 0xf0, 0x35, 0xc6, 0x30, 0x72, 0x35, 0x21, 0x3a, 0xe0, 0x6b, + 0x59, 0x2f, 0xbf, 0x9a, 0x11, 0xf5, 0xe8, 0xfd, 0xd5, 0x8e, 0xf6, 0x1e, 0xe1, 0x6a, 0xee, 0xec, + 0x8f, 0xb1, 0xa3, 0x2e, 0xd6, 0xc5, 0xf1, 0x5b, 0x31, 0x43, 0x72, 0xf8, 0x5b, 0x7b, 0xa0, 0xae, + 0xa3, 0x0d, 0x96, 0xa1, 0xac, 0x54, 0x15, 0x8d, 0x91, 0x7e, 0x0c, 0xfc, 0xfd, 0x3d, 0xf8, 0x44, + 0xa0, 0xaa, 0x3f, 0x8c, 0xbd, 0x16, 0x85, 0xe5, 0x2b, 0xe3, 0x10, 0xe8, 0x5d, 0x03, 0x35, 0x1d, + 0x2b, 0xe1, 0x3e, 0xac, 0x4f, 0x3b, 0x74, 0x17, 0xb7, 0x63, 0xad, 0xda, 0x8b, 0xbb, 0xf1, 0x57, + 0x34, 0xab, 0x02, 0xba, 0x7a, 0xe2, 0xfd, 0x53, 0xfb, 0x60, 0x10, 0xa6, 0x23, 0xe9, 0xad, 0xb7, + 0xde, 0x0a, 0xee, 0xce, 0xde, 0xee, 0x0e, 0x77, 0xfc, 0x5e, 0x84, 0x74, 0x8f, 0x9b, 0x94, 0x7b, + 0x6e, 0x24, 0xf1, 0x6e, 0xec, 0x16, 0x77, 0x89, 0xbb, 0x43, 0x30, 0x61, 0x25, 0x2b, 0x11, 0x05, + 0x9c, 0xf3, 0x25, 0x92, 0xfe, 0x3a, 0x68, 0xbe, 0x8d, 0x77, 0xe2, 0xd0, 0x6b, 0xeb, 0x0d, 0xf7, + 0xf7, 0x49, 0xd4, 0x43, 0xc4, 0xf9, 0xcc, 0x93, 0xe8, 0xf7, 0x96, 0x82, 0x01, 0xa9, 0xae, 0x81, + 0x7e, 0xab, 0x56, 0x32, 0xa7, 0x53, 0xd0, 0x8e, 0x42, 0xa8, 0x9b, 0xfe, 0xb7, 0x9b, 0x20, 0xd8, + 0xdf, 0x23, 0x21, 0x30, 0x9b, 0x3a, 0x3b, 0x90, 0x48, 0xfc, 0xe5, 0x72, 0x7b, 0x90, 0xdb, 0xfb, + 0xef, 0x2a, 0xb6, 0x96, 0xdb, 0xda, 0x18, 0x5c, 0xbe, 0xa4, 0xa6, 0x3e, 0x58, 0xf1, 0x17, 0x0b, + 0x0e, 0x77, 0xc4, 0x05, 0x42, 0x13, 0xa7, 0xc6, 0xe5, 0x57, 0x14, 0xb4, 0x57, 0x48, 0xc8, 0xe3, + 0x35, 0x20, 0x6b, 0xc2, 0xb3, 0xd1, 0x7d, 0x52, 0xe9, 0x00, 0x0a, 0xd4, 0x44, 0x7e, 0x34, 0xde, + 0x41, 0x30, 0x12, 0x05, 0xed, 0x25, 0x84, 0x25, 0x6d, 0x48, 0xc9, 0xef, 0xa3, 0x6a, 0xf6, 0x87, + 0x5d, 0x44, 0xcd, 0x70, 0xdc, 0x49, 0x5d, 0xf1, 0x79, 0x26, 0x12, 0xc7, 0x97, 0x74, 0xc4, 0x6b, + 0x38, 0x77, 0xc2, 0xa6, 0x74, 0xc3, 0x42, 0x48, 0x80, 0xae, 0x2f, 0xe8, 0xbb, 0xde, 0x44, 0x7d, + 0x57, 0x91, 0xea, 0xc0, 0xea, 0xe5, 0x81, 0xa6, 0xe5, 0x0d, 0xb5, 0x15, 0x50, 0x48, 0xce, 0x0a, + 0x08, 0x56, 0x7d, 0xb5, 0x02, 0xea, 0xd1, 0xd1, 0xd4, 0x5c, 0x43, 0xaf, 0xe5, 0xb7, 0x37, 0xb3, + 0x9b, 0xdf, 0xb5, 0xc1, 0x20, 0x7f, 0xf0, 0x5b, 0x8c, 0xac, 0x40, 0x7d, 0xc3, 0x94, 0x4c, 0x70, + 0xf8, 0x9a, 0xe8, 0x27, 0x55, 0x80, 0xc0, 0x97, 0xa9, 0x18, 0x44, 0xd8, 0x0d, 0xa2, 0x83, 0xaa, + 0x1b, 0xea, 0xa1, 0xba, 0xbf, 0x2f, 0x8e, 0x13, 0xbe, 0xf0, 0xe0, 0x0c, 0xff, 0x12, 0xf4, 0xc4, + 0xe4, 0xf7, 0xdf, 0xd5, 0x6d, 0x58, 0x58, 0x60, 0x79, 0xf5, 0xf2, 0x65, 0x8d, 0xcb, 0x9b, 0xea, + 0x9b, 0xeb, 0x97, 0x07, 0x50, 0xf6, 0x59, 0x1e, 0x68, 0xf8, 0xda, 0x14, 0x1f, 0x1a, 0xf1, 0x15, + 0x82, 0xab, 0x2b, 0x5e, 0xd9, 0xdb, 0x13, 0xea, 0x0a, 0xf7, 0xc7, 0x5a, 0x99, 0x35, 0xa9, 0xae, + 0x20, 0xba, 0x86, 0x03, 0xb0, 0x26, 0x86, 0xb4, 0x20, 0x09, 0x8b, 0x0a, 0x37, 0xfe, 0x51, 0x80, + 0xbb, 0xea, 0xf6, 0xe6, 0xe5, 0xee, 0xea, 0x86, 0xe5, 0x4d, 0xb5, 0xee, 0xa6, 0x65, 0x55, 0xc1, + 0x66, 0x40, 0x12, 0x11, 0x47, 0xb2, 0xd5, 0x1f, 0x2d, 0x6e, 0xa2, 0xb9, 0x02, 0x67, 0x0f, 0xa8, + 0xef, 0xc1, 0x01, 0xd4, 0x1a, 0x91, 0x18, 0x12, 0xbd, 0xd1, 0xfb, 0x62, 0x5d, 0xe1, 0xce, 0xb8, + 0xf4, 0x23, 0x69, 0xc1, 0xcd, 0x37, 0xdf, 0x58, 0x4c, 0x02, 0x99, 0x4b, 0x6a, 0xee, 0xec, 0x10, + 0x44, 0xb7, 0x86, 0x18, 0xb1, 0xde, 0x28, 0xf3, 0x54, 0xcd, 0x1d, 0xad, 0xdd, 0x25, 0xa6, 0x06, + 0xec, 0xe8, 0x1e, 0x9a, 0x31, 0x68, 0xd4, 0x21, 0x3f, 0x9d, 0x8c, 0xd9, 0xd8, 0xdf, 0x16, 0xe9, + 0x5a, 0x29, 0x69, 0xc1, 0x25, 0xa6, 0x3b, 0x3a, 0x62, 0x44, 0xf3, 0xa4, 0xa6, 0x3b, 0x02, 0xe5, + 0xe5, 0x37, 0xdd, 0x78, 0x93, 0x0b, 0x71, 0xa7, 0x0b, 0x39, 0x67, 0xf4, 0xa2, 0x32, 0x8a, 0x4b, + 0x6f, 0x2c, 0x2e, 0xbd, 0x09, 0x29, 0x37, 0x37, 0xa8, 0xa4, 0x0d, 0x09, 0x13, 0x30, 0xb5, 0x2e, + 0x14, 0xad, 0x2a, 0x08, 0x2c, 0x96, 0x44, 0x87, 0x37, 0x54, 0x70, 0x3f, 0x61, 0xfd, 0xc3, 0xdc, + 0x79, 0x0d, 0x15, 0xb7, 0x23, 0x27, 0x90, 0xf6, 0xeb, 0xe3, 0x5e, 0xf4, 0xdd, 0x1e, 0x58, 0x7a, + 0x77, 0xb0, 0xb6, 0x61, 0x79, 0xf5, 0x82, 0x85, 0xd3, 0xb9, 0x20, 0x53, 0x46, 0xe8, 0xa2, 0xcf, + 0x08, 0x0c, 0x54, 0x2d, 0xab, 0xfd, 0x8c, 0xa0, 0xda, 0x96, 0xe6, 0xcb, 0x84, 0xe0, 0x28, 0x11, + 0x23, 0x04, 0xc7, 0x4d, 0xe9, 0xc2, 0xc8, 0xc0, 0xa5, 0x51, 0x4a, 0x96, 0xd5, 0x2e, 0xab, 0xbb, + 0xbb, 0xda, 0x57, 0xdf, 0xa8, 0x39, 0xb1, 0xf8, 0xaa, 0x06, 0xcd, 0xbd, 0xb4, 0xbe, 0x7a, 0xa9, + 0xe6, 0xac, 0xab, 0x6a, 0x6a, 0xd6, 0x9c, 0x8d, 0xb7, 0x7b, 0x1b, 0xea, 0x91, 0x78, 0xdf, 0xd7, + 0xe7, 0x45, 0x16, 0x45, 0x5b, 0x33, 0x38, 0x3f, 0xa3, 0x22, 0xb5, 0x7e, 0x70, 0x3e, 0xeb, 0x88, + 0xe6, 0xbe, 0x1e, 0x9f, 0x02, 0x4d, 0xba, 0x4c, 0xad, 0x74, 0x64, 0xb8, 0x53, 0x61, 0xa4, 0x17, + 0x76, 0xdc, 0xed, 0xfb, 0xc3, 0x1c, 0x30, 0x9e, 0x7b, 0x75, 0xcc, 0x77, 0x18, 0xe6, 0x06, 0x8e, + 0x2a, 0x7a, 0xc5, 0xe6, 0x7b, 0x0f, 0xc6, 0xdc, 0x7a, 0xbe, 0x63, 0x55, 0xbd, 0xa5, 0xbd, 0x71, + 0xb3, 0x0c, 0x0d, 0x6f, 0x65, 0xf1, 0xda, 0x5c, 0xda, 0x7f, 0x71, 0x8d, 0x9d, 0xf7, 0x0e, 0xdd, + 0x72, 0x42, 0x06, 0x5a, 0xab, 0xa7, 0xf0, 0x86, 0xf7, 0x4d, 0xa0, 0x9e, 0x73, 0x76, 0xa9, 0x13, + 0x81, 0x57, 0xc5, 0x89, 0x1b, 0xa9, 0x53, 0x67, 0x95, 0x9c, 0xb0, 0xad, 0xc0, 0xa3, 0x36, 0x3f, + 0x72, 0xc0, 0xf7, 0x9e, 0x67, 0xcc, 0x6d, 0xa2, 0x7d, 0xde, 0x94, 0x8b, 0x1b, 0x25, 0xf1, 0xff, + 0x78, 0x8e, 0x7f, 0x57, 0x60, 0x4e, 0xe7, 0xcd, 0x56, 0xb1, 0x0f, 0x84, 0xb4, 0xfa, 0x98, 0x9f, + 0xde, 0x9b, 0x90, 0x21, 0xf0, 0xba, 0xa4, 0x7b, 0x77, 0x34, 0xc8, 0x2e, 0xda, 0x29, 0xa0, 0xc0, + 0xbb, 0x1b, 0x25, 0x7d, 0x70, 0xd8, 0x5b, 0x6a, 0x84, 0xab, 0x76, 0x3a, 0xc1, 0x06, 0xfe, 0x52, + 0x1b, 0xb1, 0x1c, 0x39, 0xc1, 0xa1, 0xe0, 0x70, 0xf3, 0x4e, 0x23, 0x04, 0x2e, 0xa8, 0x27, 0x1b, + 0xde, 0x82, 0x6c, 0x4a, 0x81, 0xf5, 0xdd, 0xe7, 0x5a, 0xa5, 0xa7, 0xb5, 0x02, 0xb9, 0xe1, 0xad, + 0x6a, 0x98, 0xe6, 0xe7, 0xbc, 0x8c, 0x9f, 0xe7, 0x32, 0x7e, 0x75, 0x97, 0xf1, 0x6b, 0x48, 0xfa, + 0x7d, 0xce, 0x76, 0xfe, 0xe2, 0xaf, 0xb5, 0xd3, 0x3f, 0xbc, 0xda, 0xfc, 0xee, 0x06, 0xef, 0x4e, + 0x1b, 0xb4, 0x0c, 0xdd, 0xf6, 0x8a, 0x3a, 0x3e, 0xad, 0xbc, 0x55, 0x97, 0xa9, 0xc3, 0x9a, 0xcb, + 0xf8, 0x0d, 0x5e, 0xc6, 0x6f, 0xf8, 0x32, 0x7e, 0xa3, 0x97, 0xf1, 0x7b, 0xf8, 0x32, 0x7e, 0xdb, + 0x2e, 0xe3, 0xf7, 0xdd, 0xcb, 0xf8, 0x3d, 0x73, 0x19, 0xbf, 0xe7, 0x2f, 0xe3, 0xb7, 0xfb, 0x32, + 0x7e, 0xbf, 0xbc, 0x8c, 0xdf, 0xa1, 0xcb, 0xf8, 0xbd, 0x9e, 0xf6, 0x2b, 0x1d, 0xf3, 0xaf, 0x5b, + 0x9d, 0xf3, 0xee, 0x06, 0xa9, 0xea, 0xdd, 0x8d, 0xb2, 0x57, 0x3e, 0x76, 0xdb, 0xaf, 0xd5, 0x09, + 0x84, 0xa5, 0x39, 0x89, 0x27, 0xa9, 0x34, 0xef, 0x24, 0xd3, 0x10, 0xe4, 0x4d, 0x7a, 0x00, 0xb1, + 0x4a, 0xb2, 0xf5, 0x65, 0xbb, 0x4e, 0xac, 0xfb, 0x4b, 0x9d, 0xb0, 0x73, 0xf9, 0x49, 0x75, 0x42, + 0xd2, 0x07, 0xfa, 0x03, 0xcf, 0x82, 0x85, 0xe3, 0x3e, 0x0b, 0xb9, 0xf6, 0xf9, 0x60, 0x48, 0xba, + 0x25, 0x7d, 0xf2, 0x0b, 0xe0, 0xdd, 0x0d, 0x0b, 0x86, 0x6d, 0xf9, 0x52, 0xd6, 0xbb, 0xa3, 0xf3, + 0x12, 0x36, 0xe7, 0xbc, 0x11, 0x9b, 0x7d, 0xde, 0x8f, 0xc0, 0x62, 0x73, 0x89, 0x7a, 0x49, 0x38, + 0xa6, 0x7e, 0x37, 0x6a, 0x41, 0x9c, 0x0c, 0x0e, 0x35, 0xe9, 0x43, 0xe7, 0x10, 0x13, 0x0d, 0xc9, + 0x3a, 0x95, 0xc2, 0xef, 0xfe, 0xfe, 0xaa, 0x75, 0x19, 0x21, 0xe6, 0xcc, 0xf6, 0xf9, 0xe9, 0x8e, + 0x0b, 0xa3, 0xac, 0xc7, 0x5a, 0x95, 0x65, 0xf6, 0xe3, 0xe7, 0xc4, 0xaf, 0x7f, 0xf9, 0x6b, 0xf8, + 0xc5, 0xe5, 0x68, 0x6d, 0xa7, 0x96, 0xd3, 0x3d, 0xc3, 0xb0, 0x22, 0x59, 0x0a, 0xb5, 0xeb, 0x08, + 0xdd, 0xfa, 0x82, 0x35, 0x4f, 0x7f, 0x53, 0x6d, 0xb9, 0x0e, 0xf3, 0xd5, 0x73, 0xf4, 0x96, 0xab, + 0x78, 0x6c, 0x9f, 0x71, 0x82, 0x06, 0x63, 0x51, 0x37, 0x5d, 0x4b, 0xe2, 0xdd, 0x51, 0x59, 0x6f, + 0x7c, 0x91, 0x76, 0x75, 0x5e, 0x6c, 0x3e, 0x31, 0xfa, 0x37, 0xd6, 0xfd, 0xd0, 0xe7, 0xaf, 0xfb, + 0xbb, 0x1b, 0xe4, 0x2a, 0xac, 0xfd, 0x22, 0x61, 0xdb, 0x2d, 0x59, 0x77, 0x0a, 0x7f, 0x77, 0x43, + 0x1c, 0xe6, 0x0d, 0xdb, 0x4c, 0x72, 0x55, 0x6a, 0x1d, 0xac, 0xec, 0x6f, 0xac, 0xc7, 0xbf, 0xff, + 0x55, 0x5a, 0xf4, 0xf9, 0xf2, 0x79, 0xe7, 0xbf, 0x29, 0x9f, 0x0f, 0xfe, 0x9b, 0xf2, 0x39, 0xfb, + 0xdf, 0x94, 0xcf, 0xf9, 0xcf, 0xd1, 0x4f, 0x94, 0x86, 0xe6, 0x87, 0xf3, 0xc6, 0xa7, 0xc4, 0xac, + 0x30, 0xb5, 0xff, 0x24, 0x5d, 0x10, 0x71, 0x85, 0x4e, 0x82, 0x66, 0xe2, 0xc9, 0xf4, 0xfe, 0xbd, + 0x18, 0xc8, 0xec, 0x5b, 0x43, 0x2a, 0xac, 0x50, 0x27, 0x70, 0xf7, 0xdd, 0x8d, 0xc1, 0x61, 0xc9, + 0x2b, 0xd7, 0x0a, 0x1c, 0xbe, 0xce, 0x03, 0x39, 0xb2, 0x41, 0xca, 0xc2, 0x90, 0x9a, 0x98, 0xea, + 0x87, 0xb0, 0x3e, 0x06, 0x92, 0x0e, 0x73, 0x90, 0x2e, 0x8b, 0x3b, 0x8b, 0xa7, 0xe2, 0x0d, 0x8d, + 0x3d, 0x77, 0xd6, 0xbb, 0x1b, 0xdd, 0xfa, 0x77, 0x37, 0xb8, 0x75, 0xb2, 0x21, 0x6a, 0x68, 0x85, + 0x2b, 0x56, 0xb9, 0x75, 0x6c, 0xb5, 0xe1, 0xbc, 0xe9, 0x80, 0x38, 0x79, 0xac, 0xd1, 0x90, 0x0b, + 0x9f, 0xee, 0xcb, 0xa0, 0x2d, 0x25, 0x97, 0xd6, 0x3f, 0x7b, 0x88, 0x74, 0xae, 0x72, 0xd4, 0x06, + 0x92, 0xfe, 0x77, 0xa3, 0xef, 0x8f, 0xd2, 0x59, 0x95, 0x33, 0x40, 0x96, 0x86, 0xd3, 0x71, 0x25, + 0x2d, 0xae, 0x37, 0xf1, 0xbb, 0x0d, 0xef, 0x6f, 0xd0, 0x0f, 0x51, 0x0c, 0xa6, 0x46, 0xbf, 0x89, + 0xc1, 0xd8, 0x70, 0x98, 0xec, 0xca, 0x53, 0xed, 0x53, 0x74, 0x43, 0xa7, 0xc5, 0x2f, 0xd1, 0x69, + 0xf4, 0x58, 0xf4, 0x59, 0xa1, 0xde, 0xc0, 0xed, 0x97, 0x25, 0x9c, 0x0b, 0x4f, 0x8c, 0x8a, 0xbc, + 0xa3, 0x5c, 0x37, 0x87, 0x9e, 0xf2, 0x53, 0x5f, 0x91, 0x41, 0xa3, 0x9a, 0x39, 0x97, 0xd0, 0x45, + 0x43, 0x1a, 0xfa, 0x19, 0xfe, 0xd8, 0xe2, 0xec, 0xc7, 0x33, 0xfd, 0x4b, 0x33, 0xf3, 0xdb, 0xcf, + 0xf9, 0x11, 0x65, 0x4e, 0xd1, 0xd9, 0xd2, 0xb1, 0x24, 0x0d, 0x8e, 0x83, 0xd5, 0x09, 0x59, 0x92, + 0xfe, 0x84, 0x4f, 0xb6, 0xe5, 0xbe, 0x88, 0x33, 0xd8, 0x85, 0x29, 0xf4, 0x38, 0x15, 0x0f, 0x69, + 0x8c, 0x25, 0x06, 0xb9, 0x36, 0xf9, 0xc5, 0xdb, 0x0e, 0x70, 0x1c, 0xad, 0xac, 0xcf, 0x87, 0x83, + 0xc7, 0xf5, 0x9f, 0x8b, 0x56, 0x88, 0x36, 0x56, 0x64, 0xf6, 0x8f, 0x7b, 0x3e, 0xb8, 0xf0, 0x71, + 0xe2, 0x63, 0xc7, 0x47, 0xc2, 0x27, 0x1f, 0x1f, 0x1b, 0x3e, 0x56, 0xce, 0x9f, 0x76, 0x9b, 0x9e, + 0xaf, 0xa4, 0x13, 0xef, 0x29, 0xbe, 0x00, 0x69, 0x72, 0x6e, 0x32, 0xbf, 0x77, 0x37, 0xd0, 0xcd, + 0x5b, 0x97, 0xc2, 0xcc, 0xd5, 0x03, 0x5e, 0xb1, 0x8f, 0xd1, 0x5d, 0x49, 0xeb, 0x97, 0xee, 0x4a, + 0xec, 0x94, 0x2d, 0x6e, 0x23, 0xbf, 0xef, 0xc3, 0xdc, 0x2d, 0xec, 0xea, 0xc1, 0x56, 0xd0, 0x3b, + 0x8c, 0x65, 0xd1, 0x9b, 0xf6, 0xa6, 0xd2, 0xbb, 0x83, 0xda, 0x85, 0xef, 0x76, 0x79, 0x39, 0xe2, + 0xfd, 0x0f, 0xb0, 0xf4, 0xca, 0xcc, 0x32, 0x6c, 0xfb, 0x1c, 0xba, 0x4c, 0xaa, 0x2d, 0x79, 0x9c, + 0x4e, 0x78, 0x9c, 0xce, 0xe3, 0x53, 0xd9, 0x34, 0x5b, 0x08, 0x4b, 0xb4, 0xd5, 0xb6, 0xcf, 0x3f, + 0x8e, 0x8f, 0xcf, 0xfe, 0xeb, 0x30, 0x5c, 0x04, 0x0e, 0xdd, 0xbb, 0x0f, 0x79, 0x47, 0x6c, 0xa5, + 0x8b, 0x80, 0x4f, 0x1e, 0xe4, 0x2b, 0x00, 0xd6, 0xe0, 0xba, 0xa6, 0xe1, 0xa8, 0xc5, 0x3b, 0x94, + 0x8b, 0xbe, 0xce, 0x55, 0xf0, 0x76, 0xe0, 0xb1, 0xdb, 0x0e, 0xaa, 0xa7, 0xfd, 0xc3, 0xbd, 0x40, + 0xa7, 0xd1, 0xc1, 0x1c, 0xb5, 0xc6, 0x24, 0xcd, 0xff, 0x15, 0x95, 0x66, 0xb8, 0xfc, 0x4b, 0xf0, + 0x8e, 0x71, 0x72, 0xf2, 0x37, 0x99, 0x6d, 0x94, 0x32, 0xc2, 0xe2, 0x74, 0xa3, 0xf8, 0xbe, 0x24, + 0xf6, 0x27, 0xc3, 0xd2, 0xd8, 0x37, 0x79, 0x20, 0x1d, 0x36, 0x1d, 0xd7, 0xdf, 0xdd, 0xf8, 0xee, + 0x43, 0x84, 0xef, 0x27, 0x12, 0x49, 0x8c, 0xc7, 0x76, 0x70, 0x1c, 0xa7, 0x7e, 0x0d, 0xe6, 0xf1, + 0xee, 0xc6, 0x54, 0x2e, 0x2f, 0x60, 0x8c, 0xfc, 0x74, 0xf9, 0x51, 0x5d, 0x2b, 0xcc, 0x5a, 0xc3, + 0x25, 0x61, 0x4f, 0x66, 0x7d, 0xa8, 0xf1, 0x0d, 0xa9, 0x3a, 0x70, 0xf8, 0x1d, 0xa9, 0xf0, 0x8f, + 0xa6, 0x86, 0x27, 0xdb, 0x36, 0xf9, 0xc6, 0xa5, 0x3c, 0xcb, 0xe4, 0xd1, 0xcb, 0xf0, 0x31, 0x62, + 0x5c, 0x1e, 0x8f, 0xc1, 0xe5, 0xd3, 0x68, 0xe3, 0x4c, 0x84, 0x5f, 0x36, 0xfd, 0xe5, 0xd2, 0xa4, + 0xfd, 0x6e, 0x4d, 0xc5, 0x73, 0xc1, 0x00, 0xac, 0x85, 0x35, 0xa6, 0xfb, 0x41, 0xce, 0x26, 0xa8, + 0xdb, 0xc1, 0xac, 0x07, 0x29, 0x7c, 0x96, 0x6e, 0xc1, 0x08, 0x9f, 0xc6, 0x5f, 0x53, 0xf8, 0xf7, + 0xf8, 0x5b, 0x14, 0x2e, 0xc1, 0xdf, 0xe2, 0x90, 0x61, 0xad, 0x4e, 0xb1, 0xa3, 0xab, 0xb4, 0xa3, + 0x10, 0x7f, 0x6f, 0x6e, 0xb3, 0xd3, 0x19, 0xb7, 0xa4, 0x0c, 0xe0, 0xa4, 0xbb, 0x55, 0xf5, 0x06, + 0x80, 0xd2, 0x63, 0x89, 0xfb, 0x75, 0xc9, 0xfc, 0x94, 0x43, 0xec, 0xda, 0x87, 0x74, 0x77, 0x26, + 0xd1, 0x5d, 0x9a, 0x75, 0xfd, 0x33, 0xc2, 0xfa, 0x9a, 0x11, 0xc6, 0xca, 0x09, 0x01, 0xe3, 0x98, + 0x29, 0x70, 0x61, 0xb2, 0x1c, 0x6b, 0x06, 0xae, 0xac, 0x42, 0xbd, 0x43, 0x77, 0xbf, 0xc0, 0x29, + 0x8b, 0x7f, 0x5d, 0x04, 0xc0, 0x64, 0xfc, 0x57, 0xb8, 0xb6, 0x66, 0x5d, 0xd3, 0x03, 0xde, 0x11, + 0xef, 0x12, 0x39, 0xcb, 0x9e, 0x4d, 0x1c, 0x97, 0x43, 0x27, 0xeb, 0xcd, 0x3a, 0x30, 0x75, 0x23, + 0x3e, 0xdf, 0xa5, 0xcb, 0xd6, 0x41, 0xe9, 0xd5, 0x43, 0xd1, 0xfc, 0xe0, 0x92, 0xa6, 0x07, 0xfc, + 0xeb, 0x7a, 0xde, 0x20, 0x5c, 0x8c, 0x49, 0x66, 0xba, 0x9f, 0x4d, 0x1f, 0x2b, 0x8d, 0x56, 0x0a, + 0x9c, 0x6b, 0x7a, 0x60, 0xd5, 0x29, 0xe3, 0x4c, 0xba, 0x03, 0x27, 0x56, 0x9c, 0xf2, 0x5b, 0xb2, + 0x3a, 0x17, 0xf1, 0x75, 0x41, 0x34, 0x3f, 0xe9, 0x83, 0xf2, 0xc1, 0x69, 0xc4, 0xcc, 0x09, 0x01, + 0x2b, 0x1b, 0x44, 0xad, 0x6b, 0x4c, 0x03, 0x6a, 0xfd, 0x05, 0xb5, 0x2d, 0xf0, 0x18, 0xfa, 0xdb, + 0x92, 0xf8, 0x8f, 0x78, 0x3e, 0xac, 0x85, 0xf8, 0x38, 0x24, 0x85, 0x2f, 0x9c, 0xc6, 0xe2, 0x1d, + 0xc1, 0x90, 0x92, 0xcc, 0x34, 0xec, 0x6f, 0x64, 0xff, 0xbc, 0xb4, 0xbf, 0x5b, 0xef, 0xc5, 0x31, + 0x83, 0x65, 0x1f, 0x0d, 0x3c, 0x66, 0xbf, 0x56, 0xa3, 0x75, 0x3a, 0x33, 0x40, 0x6b, 0x87, 0x09, + 0x7f, 0xd7, 0xb6, 0x19, 0x8c, 0x09, 0x98, 0xa1, 0xf9, 0xeb, 0xa7, 0xfb, 0x23, 0x0c, 0xe8, 0x5b, + 0xc7, 0xdf, 0x43, 0x30, 0xe3, 0x57, 0x9e, 0x2d, 0x43, 0xc9, 0x7a, 0x44, 0x53, 0x34, 0xd5, 0x6a, + 0xcb, 0xfb, 0x62, 0x14, 0xfc, 0xfa, 0xf0, 0x42, 0x7f, 0x56, 0xb8, 0xac, 0x49, 0xdf, 0x94, 0x45, + 0xb7, 0x96, 0x4c, 0xcf, 0x0b, 0xa9, 0xee, 0x17, 0xa7, 0xe7, 0xb7, 0x65, 0x28, 0x7c, 0x40, 0x31, + 0xbf, 0xa0, 0x0f, 0x1b, 0xa3, 0x2a, 0xa6, 0xe7, 0x3d, 0xf6, 0x59, 0x39, 0x53, 0x70, 0x8b, 0xe6, + 0x84, 0xfd, 0x53, 0xe6, 0x84, 0x77, 0x04, 0x3d, 0x24, 0xfb, 0x0b, 0xde, 0xdc, 0x77, 0x37, 0x36, + 0x0d, 0xaf, 0x01, 0xda, 0x45, 0x25, 0xf9, 0xe3, 0x6a, 0xd0, 0xeb, 0xb7, 0x85, 0x40, 0xbd, 0x70, + 0x8d, 0x57, 0x55, 0x1b, 0xde, 0x5a, 0x92, 0x9e, 0x27, 0x26, 0x05, 0x15, 0x2b, 0xc4, 0x94, 0x6b, + 0x90, 0xb7, 0xb4, 0x63, 0xbd, 0x1d, 0x34, 0x17, 0xe4, 0x62, 0xad, 0xae, 0x3e, 0x34, 0xd4, 0x9c, + 0x10, 0x3c, 0x81, 0x93, 0x76, 0x31, 0x3a, 0xa5, 0x06, 0xd9, 0x68, 0x99, 0x13, 0xce, 0xb6, 0xbc, + 0xd1, 0x04, 0xca, 0xb8, 0xd7, 0x66, 0x37, 0x5a, 0xbe, 0x84, 0x5f, 0xff, 0x21, 0xbe, 0x7e, 0x1d, + 0xc0, 0xd2, 0x8e, 0xff, 0x3a, 0xe0, 0x00, 0xb9, 0x81, 0x78, 0x05, 0xb2, 0x21, 0xfc, 0xcd, 0x29, + 0xbc, 0x34, 0x8d, 0xd7, 0x19, 0x3f, 0xcc, 0x94, 0x9a, 0xa6, 0xd0, 0xa0, 0xf6, 0xbf, 0x8d, 0x2f, + 0x3c, 0xfe, 0xc5, 0xbf, 0x4e, 0x2f, 0xa5, 0x74, 0xb9, 0x25, 0x71, 0xb2, 0x07, 0xed, 0xb3, 0x43, + 0x38, 0x57, 0xd6, 0x9f, 0x40, 0x9a, 0x73, 0xf1, 0x4e, 0x19, 0x42, 0x38, 0x4a, 0x2e, 0x7a, 0x85, + 0xe5, 0xa0, 0x34, 0xdd, 0x78, 0x77, 0x43, 0x52, 0xea, 0xfc, 0x5b, 0x79, 0xe6, 0xe3, 0xd2, 0xe7, + 0xa8, 0xd3, 0x59, 0x01, 0x73, 0x47, 0x7d, 0xb9, 0xae, 0xe1, 0x83, 0x99, 0x59, 0xc8, 0x13, 0xbf, + 0x40, 0x36, 0xfe, 0x97, 0xa7, 0xca, 0xcf, 0xdc, 0x4b, 0xcf, 0x16, 0xfa, 0x12, 0x53, 0xe1, 0x45, + 0xed, 0x31, 0xdc, 0x35, 0x5d, 0x72, 0x63, 0x9a, 0xf9, 0x4e, 0xb2, 0xbd, 0x86, 0xc5, 0xcb, 0x3f, + 0x56, 0xc1, 0xbe, 0x5c, 0xf6, 0x4b, 0x55, 0xb9, 0xc7, 0x42, 0x13, 0xb2, 0x9e, 0x7d, 0x9d, 0x76, + 0x9d, 0x4c, 0x76, 0x8f, 0x9e, 0x5f, 0xfe, 0xb1, 0x0e, 0xcb, 0x5c, 0x32, 0x8d, 0x56, 0xaa, 0xc7, + 0x93, 0xb9, 0x91, 0x84, 0xf4, 0xee, 0x86, 0xa3, 0xc3, 0x47, 0x87, 0xa2, 0x50, 0x5a, 0xea, 0x84, + 0xa4, 0xc4, 0x94, 0xf6, 0x5f, 0xb0, 0x2e, 0xed, 0xfb, 0xb9, 0xf9, 0x04, 0xd7, 0x5f, 0x82, 0x4f, + 0xe0, 0xc2, 0x27, 0x9f, 0xfc, 0x25, 0xdd, 0x00, 0xb5, 0x20, 0x2b, 0x44, 0xbb, 0xef, 0xa6, 0xe1, + 0x4f, 0x95, 0x34, 0x1f, 0x65, 0xb4, 0xf9, 0x60, 0x96, 0xba, 0x90, 0xcb, 0xeb, 0x02, 0x6b, 0xe0, + 0x05, 0xaa, 0x5b, 0xe6, 0x5c, 0x86, 0x3c, 0x43, 0x4e, 0x1c, 0x34, 0xea, 0xef, 0x40, 0x6c, 0x66, + 0x9b, 0xe6, 0x19, 0x73, 0xc5, 0x94, 0xd9, 0x1c, 0xdb, 0xf0, 0xd4, 0xb4, 0x32, 0xa6, 0x87, 0xef, + 0xc8, 0x0c, 0x1f, 0xe4, 0xfa, 0x35, 0x8d, 0xc8, 0x59, 0xc4, 0xa7, 0xea, 0xf7, 0x39, 0xae, 0x7a, + 0xf7, 0xa1, 0xe0, 0xba, 0xb5, 0x73, 0x69, 0xd7, 0x9f, 0x54, 0x1d, 0x53, 0x83, 0x55, 0x62, 0xfc, + 0x49, 0xd5, 0x57, 0x55, 0xa9, 0x6a, 0x90, 0xfa, 0x73, 0xf1, 0xd4, 0x79, 0x96, 0xda, 0xa6, 0xdf, + 0x18, 0x9f, 0xd4, 0x64, 0xf6, 0xe9, 0xfd, 0xf2, 0xc3, 0x64, 0x69, 0x24, 0xff, 0x49, 0x9a, 0x34, + 0x98, 0x74, 0xcf, 0xd3, 0xe4, 0xc1, 0x14, 0xdf, 0x9c, 0xa3, 0x69, 0x83, 0xce, 0x7f, 0xff, 0x29, + 0x71, 0xfb, 0xc0, 0x25, 0xf3, 0xd2, 0x93, 0x99, 0x7e, 0xce, 0x2c, 0x9a, 0xad, 0x93, 0x9a, 0x0a, + 0xac, 0xb3, 0x94, 0x6e, 0x1b, 0xf1, 0xdf, 0xef, 0x6e, 0x14, 0x12, 0xe8, 0x55, 0x3b, 0x6d, 0xe0, + 0x04, 0xd2, 0xe8, 0x20, 0x8f, 0x78, 0x4e, 0x50, 0x4d, 0x1e, 0x2f, 0x38, 0xc3, 0x6b, 0x90, 0x35, + 0x4e, 0xe1, 0xa7, 0xb5, 0x76, 0xe9, 0x9e, 0x9f, 0xde, 0xae, 0xd2, 0x74, 0xd8, 0x76, 0xb7, 0x2e, + 0xf6, 0x65, 0x1c, 0x85, 0x31, 0x19, 0xec, 0xd7, 0xae, 0x21, 0x57, 0xb3, 0x1b, 0xd8, 0x27, 0x22, + 0x5d, 0xcb, 0xe3, 0xef, 0x12, 0x1a, 0xa2, 0x6b, 0xcb, 0xd4, 0x94, 0x7c, 0x6e, 0xdc, 0xbb, 0xf9, + 0xf3, 0xf0, 0xa8, 0x44, 0xb7, 0x6f, 0xa8, 0x82, 0xfc, 0xeb, 0xaa, 0x41, 0xba, 0xae, 0x06, 0xec, + 0xa9, 0x91, 0xb8, 0x88, 0xf1, 0x05, 0x92, 0x3c, 0xbe, 0xbd, 0xd4, 0x58, 0xf1, 0xee, 0x06, 0x07, + 0x42, 0xe5, 0xa5, 0x89, 0x19, 0x4f, 0xbe, 0xbe, 0xd3, 0x66, 0x70, 0x66, 0xbd, 0x34, 0x01, 0x95, + 0x6f, 0x6f, 0x7a, 0x7b, 0xd3, 0x01, 0x7c, 0xff, 0x6e, 0xd3, 0xef, 0x36, 0xbd, 0x3e, 0xe2, 0x2c, + 0xb5, 0x19, 0x47, 0x27, 0xa0, 0xcc, 0xb7, 0xff, 0xf5, 0x91, 0x01, 0x38, 0xb1, 0x31, 0x36, 0x9b, + 0xe6, 0x1c, 0xdd, 0x44, 0xe0, 0x31, 0x8d, 0x8f, 0x2d, 0x44, 0x9a, 0x5b, 0x6a, 0x33, 0xfb, 0x87, + 0xc3, 0x46, 0x3b, 0xf2, 0xa9, 0x13, 0x77, 0x29, 0xd9, 0xfc, 0x6e, 0xa1, 0xba, 0x48, 0x55, 0x0c, + 0xd5, 0x29, 0xb8, 0xfc, 0xee, 0x86, 0x79, 0x7b, 0x49, 0xaf, 0x68, 0x33, 0xe2, 0x8c, 0xf9, 0x1b, + 0xf1, 0x4d, 0xfc, 0x2d, 0x7f, 0xbf, 0x94, 0xfa, 0x9e, 0xe4, 0xef, 0x17, 0x52, 0xdf, 0x17, 0xf9, + 0xfb, 0x87, 0xa9, 0xef, 0x09, 0xfe, 0xde, 0x9e, 0x49, 0x7f, 0x27, 0xad, 0x99, 0x92, 0x5f, 0x62, + 0xec, 0x91, 0x03, 0x34, 0x97, 0x78, 0xff, 0xe9, 0xda, 0xa8, 0x4d, 0x85, 0x2c, 0xb7, 0xee, 0xdd, + 0x51, 0xdf, 0x3d, 0x46, 0xd6, 0x2d, 0xde, 0x78, 0x42, 0xba, 0xbb, 0x65, 0xb3, 0x7c, 0xed, 0x55, + 0x58, 0x13, 0xc4, 0x3c, 0xec, 0xf3, 0x2c, 0x1d, 0xed, 0x67, 0xe5, 0x7d, 0xbc, 0xfa, 0xc2, 0x45, + 0x80, 0xd2, 0x1a, 0x59, 0x35, 0x9f, 0x78, 0xdd, 0x09, 0xe1, 0x32, 0x97, 0x87, 0xf2, 0xc6, 0x11, + 0x27, 0x49, 0x1e, 0xff, 0x0e, 0x70, 0x86, 0x6d, 0x6c, 0x71, 0x1f, 0xb9, 0x29, 0xb2, 0x95, 0xf3, + 0xde, 0xfa, 0x35, 0x79, 0xaf, 0x6f, 0x26, 0x9f, 0xc9, 0xef, 0xc9, 0x35, 0x94, 0x6a, 0xb2, 0x2d, + 0x3a, 0xa3, 0xe1, 0x2d, 0x8f, 0x76, 0x2a, 0x7b, 0x11, 0x9d, 0x7e, 0x93, 0xc8, 0x0e, 0xa4, 0xfe, + 0x60, 0x4c, 0x97, 0xda, 0x63, 0x5c, 0xc1, 0x27, 0xca, 0x40, 0xe7, 0xa1, 0x13, 0x2d, 0xc7, 0x1b, + 0x64, 0x8f, 0x88, 0x91, 0x0c, 0xbf, 0xb8, 0xa5, 0xfe, 0x03, 0xd8, 0x79, 0xbd, 0x5f, 0xbf, 0x2b, + 0x95, 0x62, 0xf0, 0x46, 0xba, 0xb3, 0xf2, 0x64, 0xc1, 0x20, 0x9c, 0xb7, 0x58, 0xd5, 0x53, 0x1c, + 0x7f, 0x7d, 0x66, 0x8e, 0xb2, 0xc7, 0xe1, 0xb7, 0x9b, 0xbc, 0x5e, 0x9f, 0x37, 0xf6, 0xa1, 0xb9, + 0x0a, 0x74, 0x2b, 0x6b, 0x1c, 0x45, 0xea, 0x89, 0xeb, 0xeb, 0xd5, 0x13, 0x65, 0x7b, 0xdd, 0x39, + 0x37, 0x0c, 0x2e, 0x3b, 0x0f, 0xfa, 0x1b, 0xbc, 0x60, 0xb8, 0xc1, 0x0f, 0xd9, 0x37, 0x0c, 0x22, + 0x1c, 0x8c, 0xce, 0x2c, 0x6f, 0x8d, 0xaf, 0xe6, 0x86, 0x1a, 0x30, 0xdd, 0x50, 0x0d, 0xe6, 0x1b, + 0x06, 0x5d, 0x77, 0x03, 0xc6, 0x93, 0x91, 0x83, 0xc2, 0xf0, 0x7e, 0xc8, 0xad, 0x7e, 0x1f, 0x79, + 0xf3, 0xaa, 0x6f, 0x3c, 0x84, 0xb9, 0xe5, 0x84, 0x9e, 0x91, 0x0b, 0xd5, 0x48, 0x41, 0xbd, 0x1a, + 0xb9, 0x5c, 0x6e, 0xd8, 0x0a, 0xa3, 0x5d, 0x47, 0x65, 0xa3, 0x9f, 0x09, 0xf1, 0xcf, 0xcc, 0x25, + 0xe4, 0xc8, 0x95, 0x70, 0x7e, 0xc6, 0x9a, 0x54, 0x88, 0x05, 0x43, 0x72, 0xb9, 0x1c, 0x2b, 0x97, + 0x93, 0xc7, 0xe5, 0xd8, 0x24, 0xd1, 0xfa, 0xf5, 0xda, 0xfd, 0x9a, 0x49, 0x18, 0xdc, 0x4f, 0xa7, + 0x9f, 0x3e, 0x3a, 0x08, 0x25, 0xf4, 0xfe, 0xd8, 0x06, 0x65, 0x05, 0x0d, 0xe0, 0x48, 0xb5, 0x77, + 0x0d, 0x9d, 0x13, 0xa0, 0x73, 0xfa, 0x74, 0xce, 0x50, 0x3b, 0x91, 0x65, 0x96, 0x57, 0xa9, 0x27, + 0x44, 0x5e, 0xe9, 0xdd, 0xdc, 0x74, 0x97, 0x78, 0xf5, 0xfb, 0x6a, 0xe3, 0x54, 0x08, 0xd3, 0x39, + 0x83, 0xe4, 0x8d, 0x7d, 0x8b, 0x2b, 0x5c, 0x3a, 0xa7, 0xb1, 0x30, 0xc7, 0x3f, 0x14, 0xca, 0xc5, + 0x58, 0xe7, 0xff, 0xf5, 0xe9, 0xa4, 0xcd, 0x00, 0xe4, 0x08, 0x3f, 0x21, 0x6b, 0xb9, 0x76, 0xb6, + 0x6e, 0xf5, 0xde, 0xb3, 0x6e, 0x20, 0xcb, 0x1e, 0x8b, 0x9e, 0x14, 0xf7, 0x79, 0x87, 0x00, 0x7e, + 0x29, 0x67, 0x27, 0x6f, 0xb3, 0x74, 0xf2, 0x6e, 0x6f, 0x61, 0x83, 0xbc, 0xea, 0x03, 0x1c, 0xcf, + 0x45, 0xea, 0xc4, 0xd7, 0x12, 0x87, 0x1e, 0xb2, 0xc3, 0xd7, 0x87, 0x95, 0x80, 0xd9, 0x02, 0xf6, + 0x50, 0x9d, 0xd9, 0x09, 0x77, 0x80, 0x2e, 0xb4, 0x18, 0xdf, 0xb5, 0xa0, 0x0f, 0x2d, 0xc4, 0x77, + 0x10, 0xa7, 0x84, 0x12, 0x7c, 0x57, 0x80, 0x21, 0x44, 0x37, 0xa4, 0xce, 0x70, 0xfa, 0xe5, 0x86, + 0x9d, 0x9b, 0xc2, 0xa6, 0xe0, 0x26, 0xff, 0x55, 0xa1, 0x73, 0xf2, 0x2c, 0x45, 0x2f, 0xc3, 0xcf, + 0x5e, 0xd4, 0x6e, 0x24, 0xb7, 0x28, 0x65, 0x52, 0x55, 0x70, 0x74, 0xd7, 0x68, 0xdb, 0x73, 0xd2, + 0xd5, 0xa1, 0x47, 0x15, 0xfb, 0xd6, 0x57, 0xa2, 0xb9, 0x3b, 0x37, 0x44, 0xf2, 0x7d, 0x03, 0x90, + 0xcb, 0x75, 0x7c, 0xc1, 0xd7, 0x09, 0x7c, 0x0b, 0xd9, 0x8d, 0x7b, 0xb5, 0xbd, 0xf5, 0x8b, 0x64, + 0xc6, 0x66, 0xb5, 0xdd, 0xb7, 0xf6, 0xe2, 0x5c, 0x0a, 0xc9, 0x3a, 0xe8, 0x84, 0x96, 0xcd, 0x8a, + 0xc4, 0xf1, 0x5f, 0x76, 0xeb, 0xb5, 0xdb, 0xc9, 0x73, 0x32, 0xdb, 0xa2, 0xe8, 0x07, 0x80, 0x78, + 0xed, 0x15, 0x83, 0x04, 0xdd, 0x23, 0x43, 0x74, 0x03, 0x9e, 0x74, 0xdb, 0xbc, 0x7a, 0x30, 0x49, + 0xb7, 0x2d, 0x18, 0x04, 0x2b, 0xe4, 0x92, 0xc5, 0x6c, 0xf9, 0xb6, 0x14, 0x7d, 0x79, 0x34, 0xaa, + 0x6a, 0xf7, 0xef, 0x9d, 0xe6, 0xfb, 0xf7, 0xb2, 0x9c, 0x39, 0xc2, 0x5e, 0x3b, 0xd2, 0xde, 0xab, + 0x83, 0x89, 0x18, 0xa4, 0xfa, 0xb5, 0x99, 0xf7, 0x96, 0x9b, 0x62, 0x61, 0x1e, 0x35, 0x65, 0x4a, + 0x8f, 0xb4, 0x94, 0xf8, 0x4a, 0x3a, 0x7d, 0x25, 0xce, 0x26, 0xdf, 0x78, 0x82, 0xd2, 0x78, 0xcb, + 0x8c, 0x6c, 0x45, 0x55, 0xf2, 0xdf, 0xaf, 0x53, 0xe8, 0x16, 0x64, 0x57, 0x48, 0x1f, 0x7c, 0xd0, + 0x62, 0x0b, 0x9d, 0x73, 0xe9, 0x8f, 0x0f, 0x1f, 0x5f, 0x2f, 0xd5, 0x1e, 0xfe, 0x17, 0x5f, 0x74, + 0x14, 0xbc, 0xff, 0x24, 0x6e, 0x5d, 0x5b, 0x94, 0x2f, 0x9b, 0xec, 0xd9, 0x6b, 0xf8, 0xde, 0x8b, + 0x89, 0x77, 0xdc, 0x1e, 0x60, 0xfb, 0xa2, 0xfe, 0x9f, 0x60, 0xba, 0x5c, 0xd9, 0x9f, 0x2a, 0x3d, + 0x10, 0x25, 0xab, 0xe0, 0x25, 0xf6, 0x99, 0x4e, 0xff, 0xfd, 0x28, 0x7b, 0xfc, 0xfd, 0xbf, 0xb9, + 0x6b, 0xa0, 0xdc, 0x69, 0x72, 0x2f, 0x85, 0xca, 0x5c, 0x2b, 0x72, 0xb0, 0xae, 0x70, 0xae, 0xd4, + 0xf0, 0xc8, 0x7e, 0xb9, 0x17, 0x2a, 0xd7, 0x40, 0xde, 0x55, 0x2f, 0x8c, 0xf6, 0x00, 0x3c, 0xe9, + 0x7f, 0x10, 0xfb, 0xfa, 0x61, 0xe9, 0x8a, 0x43, 0xdf, 0x22, 0x1b, 0x4e, 0x87, 0x5f, 0x72, 0xfb, + 0xa0, 0xd4, 0xd5, 0xc8, 0x7b, 0xea, 0xd7, 0x68, 0x76, 0x38, 0xf9, 0x5e, 0x3b, 0x19, 0x67, 0x17, + 0x69, 0xc6, 0x96, 0x61, 0xb6, 0x2b, 0x39, 0xd4, 0x93, 0x6f, 0xaf, 0x21, 0x8b, 0x3e, 0xc9, 0x96, + 0xca, 0x6e, 0x70, 0x71, 0xed, 0x7e, 0xa8, 0x80, 0xda, 0x23, 0x2c, 0x46, 0x1e, 0x5a, 0x2f, 0xc3, + 0x89, 0x0d, 0xee, 0x2a, 0x58, 0x44, 0x36, 0x48, 0x1d, 0x55, 0x74, 0x42, 0x0e, 0x69, 0x7e, 0x4e, + 0x12, 0x12, 0x79, 0xeb, 0xbc, 0x65, 0x8b, 0x40, 0xc2, 0xda, 0x48, 0x3f, 0x81, 0x9a, 0x3b, 0xd7, + 0x9d, 0x78, 0xe8, 0xe8, 0x3a, 0x6a, 0x97, 0xd9, 0x8a, 0xed, 0xf2, 0x04, 0xbf, 0x85, 0xad, 0x29, + 0x47, 0x68, 0xe6, 0x60, 0xcd, 0xdd, 0xa1, 0xc2, 0xfb, 0x81, 0xee, 0x69, 0x52, 0x64, 0xac, 0x6f, + 0x7e, 0xf4, 0xda, 0xb1, 0xa1, 0x58, 0xce, 0xf3, 0x89, 0xb0, 0x25, 0xb7, 0x12, 0xae, 0xc6, 0xb7, + 0x11, 0xdf, 0xd6, 0xe7, 0x13, 0x21, 0xfd, 0xfd, 0xba, 0xa8, 0x2e, 0xb8, 0x09, 0xeb, 0x60, 0x11, + 0xf5, 0xcb, 0x84, 0x4e, 0xba, 0x8e, 0xe2, 0x66, 0x91, 0xc9, 0x32, 0x71, 0x32, 0x8f, 0xcf, 0xc4, + 0xf1, 0x19, 0x43, 0x1d, 0x9d, 0x90, 0x65, 0xab, 0x53, 0xda, 0x59, 0xa8, 0xe7, 0xa3, 0xea, 0xce, + 0x8d, 0xa1, 0x16, 0x7b, 0x13, 0x7e, 0x3f, 0xb8, 0xd2, 0x50, 0x3e, 0x08, 0x0f, 0x0a, 0xaa, 0x56, + 0xfd, 0x81, 0xda, 0x18, 0x5d, 0x5e, 0x97, 0xee, 0xf9, 0x2d, 0x74, 0x8e, 0xe2, 0x3f, 0x0d, 0xd8, + 0xdf, 0x7a, 0xc5, 0x2c, 0x7f, 0x91, 0xee, 0xdb, 0x05, 0x3a, 0xbf, 0x37, 0xfa, 0xb3, 0xb1, 0xb6, + 0x33, 0x14, 0xf6, 0xde, 0x6b, 0xd1, 0x74, 0xec, 0x63, 0xd7, 0x7b, 0xf4, 0x06, 0x25, 0x18, 0x9d, + 0xdc, 0xb9, 0x31, 0xdc, 0xf0, 0xda, 0x2b, 0xaf, 0xbd, 0x82, 0xa3, 0x7b, 0xe2, 0x9f, 0x4f, 0x81, + 0xa1, 0xdd, 0x52, 0x52, 0x39, 0x13, 0xc0, 0x9c, 0x3e, 0x97, 0x49, 0x67, 0x18, 0x92, 0x37, 0xed, + 0x28, 0xb9, 0xb2, 0x53, 0x1d, 0x3f, 0x32, 0x74, 0x64, 0xa8, 0xfa, 0xac, 0xd1, 0x70, 0xfd, 0x06, + 0x1b, 0xdc, 0x36, 0x2a, 0x39, 0xd5, 0x89, 0xd0, 0x49, 0xcd, 0xd2, 0xc0, 0x2e, 0x9a, 0x09, 0x1b, + 0x12, 0xc2, 0xaa, 0x3c, 0x9d, 0x6f, 0x75, 0xac, 0x82, 0xc4, 0x6f, 0x7f, 0xfd, 0xdb, 0x5f, 0x27, + 0xa9, 0xb4, 0xaf, 0x2a, 0x4d, 0x55, 0xe9, 0x84, 0xb2, 0xd3, 0x53, 0x7f, 0x1a, 0x76, 0x4a, 0x9e, + 0x79, 0x83, 0xbc, 0x4b, 0x79, 0xe7, 0x52, 0x1c, 0xdd, 0x71, 0x58, 0x76, 0x61, 0xf2, 0x9c, 0x42, + 0x77, 0x30, 0x7c, 0x39, 0xb0, 0x3d, 0x38, 0xdc, 0xb8, 0x79, 0xd7, 0xd6, 0x8e, 0xb3, 0x48, 0xa1, + 0x46, 0x53, 0xe7, 0x97, 0x34, 0xbb, 0xdb, 0x7c, 0xab, 0xc1, 0x2a, 0x18, 0x75, 0x74, 0xe9, 0x0d, + 0x97, 0xa3, 0x43, 0x05, 0xab, 0xc1, 0x01, 0xa3, 0xe2, 0xac, 0x09, 0xcf, 0x40, 0x8b, 0x33, 0xf9, + 0xe7, 0x42, 0x4f, 0xed, 0x87, 0xb0, 0x42, 0x4a, 0xf5, 0xd0, 0x64, 0x22, 0xc3, 0xbd, 0x49, 0xf2, + 0xd8, 0xe9, 0xcc, 0x33, 0xd9, 0xf9, 0x28, 0x6f, 0xd9, 0xec, 0xf7, 0x84, 0xe6, 0xe0, 0x4c, 0xdc, + 0x82, 0xb4, 0x80, 0xef, 0xd6, 0x66, 0xab, 0x89, 0xe7, 0xbf, 0x79, 0x86, 0x4e, 0xc7, 0x28, 0xde, + 0xc2, 0x62, 0xd8, 0x69, 0xef, 0x86, 0x51, 0x94, 0x1e, 0x36, 0xc4, 0x61, 0x0d, 0xca, 0xf0, 0x72, + 0x37, 0x54, 0x2c, 0xf9, 0x10, 0x76, 0x3a, 0xe9, 0x24, 0x08, 0xd2, 0xbd, 0x2b, 0xdf, 0x49, 0xd2, + 0xbd, 0xa2, 0x5a, 0xd8, 0xe9, 0xbe, 0x02, 0xc7, 0x90, 0x13, 0x73, 0xae, 0x64, 0x4b, 0x23, 0x76, + 0xa4, 0xb6, 0x61, 0xb2, 0xbd, 0x40, 0xf3, 0x1a, 0x8e, 0x0e, 0x03, 0x8e, 0xff, 0x04, 0xc1, 0xdc, + 0xbc, 0x03, 0xe0, 0xc7, 0xff, 0x46, 0xe7, 0xb1, 0xe7, 0x75, 0xc1, 0x28, 0xdd, 0x1f, 0x87, 0x34, + 0x60, 0x9b, 0xd6, 0xf2, 0x91, 0xcc, 0xb6, 0xb8, 0x07, 0x13, 0x90, 0x75, 0x0e, 0xcc, 0xee, 0x5e, + 0x48, 0x80, 0x85, 0xbf, 0xc8, 0x32, 0xcc, 0x20, 0xaf, 0xa0, 0xd8, 0xf8, 0xfb, 0x34, 0xe4, 0x7b, + 0x7f, 0x02, 0x12, 0xbb, 0x3f, 0x04, 0x3b, 0xba, 0x9d, 0xec, 0x3e, 0x03, 0x2e, 0x74, 0x97, 0xb2, + 0xfb, 0x23, 0x28, 0x47, 0xf7, 0x22, 0x76, 0x7f, 0x0c, 0x95, 0xe8, 0xf6, 0xb0, 0xfb, 0x0f, 0x50, + 0x83, 0x6e, 0x1f, 0xbb, 0xff, 0x08, 0x0d, 0x58, 0xca, 0x28, 0x59, 0xcb, 0xc4, 0xaf, 0x3f, 0x43, + 0xb3, 0xe4, 0x71, 0x77, 0xc2, 0x6e, 0x68, 0xe1, 0xef, 0xb3, 0xb0, 0x82, 0xed, 0x74, 0x92, 0xfb, + 0x02, 0xb4, 0x47, 0x75, 0xd8, 0xd2, 0x4e, 0xfe, 0x1a, 0x87, 0x08, 0x86, 0x44, 0xf1, 0x89, 0xc7, + 0xcc, 0x47, 0x36, 0xbb, 0x7a, 0x81, 0xf8, 0xc9, 0x1c, 0x9e, 0xad, 0x3b, 0xe5, 0xd5, 0x90, 0x78, + 0xf5, 0xe5, 0x57, 0x5f, 0x96, 0x6e, 0xfb, 0xe9, 0x91, 0xf6, 0xf2, 0xf4, 0x98, 0x91, 0x72, 0x85, + 0x25, 0x42, 0xed, 0xdc, 0x5c, 0x8a, 0xce, 0xc9, 0x1e, 0x19, 0xa9, 0xe2, 0x75, 0x1e, 0x30, 0x58, + 0x2a, 0xd5, 0x49, 0xb2, 0xfe, 0x2f, 0x5f, 0x95, 0x3d, 0x74, 0x2b, 0x72, 0x37, 0x47, 0x86, 0xaa, + 0x4e, 0x81, 0x19, 0xe7, 0x57, 0x33, 0x59, 0x6d, 0x4f, 0x8f, 0x8f, 0xe8, 0x8a, 0x43, 0x0f, 0x89, + 0x59, 0xad, 0x81, 0x68, 0x5f, 0x84, 0x68, 0xef, 0x25, 0x27, 0x93, 0x9f, 0x21, 0xa8, 0xf3, 0xe9, + 0xc0, 0x6c, 0xe4, 0x47, 0x2a, 0x43, 0x66, 0xf7, 0x7c, 0x60, 0x2b, 0x1b, 0xef, 0xfd, 0x0e, 0xf1, + 0xd1, 0x29, 0x4e, 0xb3, 0xbe, 0xf7, 0x7b, 0xc1, 0x21, 0x36, 0x6e, 0x4e, 0x9d, 0x0d, 0x06, 0x97, + 0xee, 0xdd, 0x87, 0xbd, 0x0f, 0xcc, 0x29, 0xed, 0x04, 0x7f, 0x2d, 0xf2, 0x1e, 0x76, 0xef, 0x48, + 0x70, 0xbd, 0xf7, 0xc1, 0xb9, 0xf8, 0x6d, 0x9e, 0x49, 0x37, 0xa3, 0xc2, 0x64, 0x70, 0x7d, 0xd3, + 0x03, 0xc9, 0x6f, 0x1c, 0xd9, 0x1f, 0x19, 0x1f, 0x84, 0x19, 0xe8, 0x6e, 0xc2, 0x30, 0x6b, 0xcb, + 0x88, 0xbc, 0xc0, 0x07, 0xd1, 0x01, 0xe4, 0xff, 0xec, 0xa4, 0xef, 0x80, 0x37, 0x31, 0xa4, 0x19, + 0x43, 0x24, 0x4a, 0x25, 0x42, 0x29, 0x6d, 0x60, 0x0f, 0x1c, 0xa2, 0x58, 0xa4, 0x99, 0xc0, 0x58, + 0xbb, 0x31, 0x56, 0xf5, 0xd4, 0xf4, 0x42, 0x5f, 0x02, 0xdf, 0xc3, 0x90, 0xe5, 0xc9, 0xf4, 0x5a, + 0xca, 0xed, 0x19, 0xa5, 0x48, 0x1c, 0x6b, 0x00, 0x63, 0xb5, 0x4c, 0x8b, 0x15, 0xcd, 0x88, 0x95, + 0xcf, 0xb1, 0x82, 0x18, 0xab, 0x7e, 0x5a, 0x2c, 0x7f, 0x46, 0x2c, 0x2b, 0xc7, 0x72, 0x61, 0xac, + 0x00, 0xc6, 0xca, 0x4b, 0x86, 0x78, 0x87, 0x53, 0x61, 0x16, 0x79, 0x66, 0x46, 0xdd, 0xf4, 0x4d, + 0x0f, 0x84, 0x60, 0xf2, 0x1d, 0xd2, 0xe8, 0x04, 0x5e, 0xf7, 0x0e, 0x5b, 0x67, 0x1a, 0xf4, 0x50, + 0xda, 0x0d, 0x30, 0x87, 0x74, 0x5c, 0xa4, 0x97, 0xc4, 0xef, 0x99, 0xf8, 0x6d, 0xc2, 0xef, 0xeb, + 0x7a, 0x49, 0xeb, 0x3e, 0x9c, 0x3e, 0x13, 0xcc, 0xe3, 0x8e, 0x67, 0x84, 0xe6, 0x29, 0xf3, 0x9e, + 0x03, 0xc2, 0x73, 0x93, 0x61, 0x52, 0xb5, 0x65, 0xac, 0x64, 0x98, 0xb5, 0xc3, 0xea, 0xcd, 0x3b, + 0xa5, 0xac, 0x13, 0xa3, 0x8d, 0x9b, 0x45, 0xcf, 0x6b, 0xa7, 0x7f, 0x99, 0x6e, 0x10, 0xd5, 0x23, + 0x6d, 0xc6, 0xd4, 0xf9, 0x93, 0xb1, 0x71, 0xae, 0xe4, 0x4f, 0xcd, 0x9a, 0xb3, 0x53, 0xb3, 0x66, + 0xae, 0xf7, 0x06, 0x6d, 0xd6, 0x9c, 0x2d, 0x28, 0x8a, 0x9b, 0xac, 0x5d, 0x19, 0x71, 0xbc, 0x9a, + 0x09, 0x6b, 0x48, 0x4b, 0x6e, 0xf7, 0xf8, 0x56, 0x81, 0xee, 0xd5, 0x97, 0x7d, 0xf7, 0x3c, 0x2e, + 0xec, 0x75, 0x69, 0x9c, 0x02, 0x9d, 0x8b, 0xcc, 0x3c, 0x6f, 0x49, 0x65, 0xa7, 0x5b, 0x12, 0x83, + 0xdc, 0x5c, 0x9c, 0x3b, 0xac, 0x6e, 0xa0, 0xd4, 0xc2, 0x5f, 0xa4, 0xa3, 0x13, 0x68, 0xe2, 0x54, + 0x25, 0xc9, 0x2a, 0x94, 0xda, 0x31, 0x05, 0x06, 0xaf, 0xaf, 0xa3, 0x3b, 0xc8, 0x31, 0xbd, 0x45, + 0x4b, 0xdf, 0x99, 0x4c, 0x5f, 0x91, 0x48, 0xa7, 0x77, 0xb0, 0x7d, 0xd5, 0x52, 0x89, 0xe0, 0x47, + 0xf3, 0x4b, 0x9e, 0x1b, 0xbe, 0x44, 0x35, 0x78, 0x21, 0xb7, 0xcd, 0x31, 0xa5, 0x16, 0x59, 0xcf, + 0x27, 0xda, 0xac, 0x6e, 0x5d, 0xba, 0x16, 0xe9, 0x5c, 0x1a, 0xde, 0x32, 0x24, 0xcf, 0x8c, 0xf6, + 0x12, 0xdf, 0x10, 0x07, 0xab, 0x8d, 0x34, 0xf0, 0x62, 0x2e, 0xbd, 0x09, 0xbc, 0x65, 0x4e, 0x86, + 0x8d, 0x56, 0x5b, 0xaa, 0xab, 0x51, 0xf2, 0x62, 0x7d, 0xe8, 0xd4, 0xf7, 0x2b, 0x2d, 0x9b, 0xb3, + 0xe9, 0x9e, 0xdd, 0x2d, 0x6e, 0x2f, 0xf2, 0xb2, 0xd7, 0x2a, 0xbb, 0xc5, 0x79, 0xfa, 0xb5, 0x30, + 0x08, 0x25, 0xb3, 0x6a, 0x1e, 0x5c, 0xfa, 0xe7, 0x01, 0x70, 0x5f, 0xe1, 0xd8, 0x5c, 0x62, 0xf4, + 0x3f, 0x88, 0x23, 0xc3, 0x4a, 0x96, 0x0f, 0x3e, 0x3a, 0x48, 0x96, 0xe9, 0x3f, 0xb6, 0x05, 0xb6, + 0x21, 0x9f, 0x38, 0x17, 0x69, 0xe7, 0x1c, 0xb7, 0xd9, 0xfb, 0xa0, 0xb4, 0x44, 0x5e, 0x62, 0x5f, + 0xe2, 0x58, 0xe2, 0x5c, 0x52, 0xb8, 0x44, 0xeb, 0xb3, 0xfe, 0x96, 0xcd, 0xc9, 0xd3, 0xed, 0xb7, + 0x2e, 0xce, 0xcc, 0xed, 0x91, 0x03, 0x99, 0xf9, 0x44, 0xcd, 0x44, 0x7f, 0x03, 0x8f, 0xb5, 0x6c, + 0x16, 0xf1, 0x25, 0x9d, 0x48, 0xe1, 0x02, 0x5a, 0xa1, 0xca, 0x9c, 0x13, 0xcc, 0xc5, 0x7c, 0x0e, + 0xb8, 0xb4, 0x44, 0xa3, 0xe9, 0x52, 0xf6, 0xa1, 0xf5, 0x48, 0x7f, 0x66, 0xa4, 0x28, 0x7a, 0xcc, + 0x08, 0xd3, 0x28, 0xfa, 0x12, 0xd8, 0x29, 0xf0, 0x6b, 0x70, 0x42, 0xbb, 0x1f, 0xba, 0x92, 0xce, + 0xda, 0x24, 0xc3, 0xb5, 0xf3, 0x9b, 0x8b, 0xe8, 0xd4, 0x33, 0xd9, 0x7c, 0x94, 0x68, 0xd6, 0x5a, + 0x0d, 0x15, 0xf6, 0xd5, 0x30, 0xba, 0x04, 0x65, 0x11, 0x3a, 0x8b, 0x4e, 0xdc, 0xfc, 0x95, 0x5b, + 0x92, 0x77, 0x46, 0x37, 0xbc, 0x95, 0x9f, 0xb4, 0x42, 0x49, 0x77, 0xf6, 0xac, 0x02, 0xd9, 0xd1, + 0x09, 0x36, 0x9a, 0x47, 0xfd, 0x3f, 0x46, 0x5e, 0x16, 0xe0, 0x84, 0x7f, 0x15, 0x48, 0xf8, 0x3e, + 0x9e, 0x3c, 0xcd, 0x29, 0x4e, 0x62, 0x7e, 0x34, 0x32, 0xe5, 0x24, 0x29, 0xc0, 0x5e, 0x9c, 0x1d, + 0xeb, 0xd2, 0xa7, 0x0c, 0xf1, 0xcb, 0x3b, 0xe5, 0x6b, 0xf1, 0x94, 0xaf, 0x0a, 0x3e, 0xb9, 0x6d, + 0x4b, 0xf9, 0x2d, 0xc6, 0x92, 0x2b, 0x52, 0x63, 0x23, 0x82, 0x75, 0xb6, 0x10, 0x8d, 0x56, 0xcc, + 0xf6, 0xab, 0x8e, 0x0e, 0x1f, 0x1d, 0x66, 0x9e, 0x46, 0xcb, 0x8f, 0x6f, 0x47, 0x39, 0x29, 0x2f, + 0x8d, 0xb6, 0xd6, 0x91, 0x26, 0xbc, 0x84, 0xea, 0x2c, 0x37, 0x52, 0xec, 0x68, 0x73, 0x7a, 0x3e, + 0xf6, 0x3f, 0x1a, 0x36, 0xa7, 0x39, 0x22, 0xd5, 0xf0, 0x97, 0x4e, 0x8a, 0x26, 0xef, 0xab, 0x5b, + 0x54, 0xe1, 0x08, 0xd0, 0xdd, 0xe6, 0xcc, 0xc3, 0x7c, 0x40, 0xb7, 0x8a, 0x3b, 0x21, 0x04, 0xfa, + 0x72, 0xe2, 0x83, 0x8e, 0xed, 0xda, 0xfa, 0xf2, 0x63, 0xaf, 0x44, 0xab, 0xeb, 0x80, 0xf4, 0xd8, + 0xea, 0x33, 0x76, 0x0f, 0x49, 0x0a, 0xfa, 0x72, 0x92, 0x6a, 0xde, 0xfb, 0x00, 0x4c, 0xd7, 0x0c, + 0xc2, 0x2c, 0x30, 0x5e, 0x33, 0xa8, 0x8e, 0xc2, 0xac, 0x1b, 0x07, 0xa1, 0x0c, 0xac, 0xf8, 0xeb, + 0x81, 0x3c, 0x0a, 0x7f, 0x2b, 0x00, 0x36, 0xbe, 0x3d, 0x91, 0xec, 0xf2, 0x35, 0x14, 0xf8, 0x40, + 0xae, 0x3e, 0x05, 0xbb, 0x0a, 0xea, 0x61, 0x21, 0xa7, 0xce, 0x43, 0x37, 0xbe, 0x7f, 0x67, 0x86, + 0xdd, 0xd4, 0xa6, 0xcc, 0x73, 0xdb, 0x4e, 0x61, 0x0f, 0xf7, 0x1d, 0x6a, 0xe3, 0x89, 0xd1, 0x79, + 0x1e, 0xb0, 0x45, 0x9b, 0x99, 0xb3, 0x59, 0xaa, 0x71, 0x35, 0x00, 0x2f, 0xc5, 0xac, 0x28, 0x79, + 0x0d, 0x89, 0x18, 0x12, 0x59, 0xdc, 0x94, 0xab, 0x4f, 0x82, 0x84, 0x3c, 0xbe, 0xd3, 0xbb, 0x03, + 0xec, 0xe8, 0xb6, 0xa3, 0x5b, 0x2a, 0x1d, 0x84, 0x45, 0x87, 0x4f, 0x81, 0xcc, 0x27, 0xbe, 0x8f, + 0xb0, 0x45, 0xb6, 0xa4, 0xcb, 0x9b, 0x72, 0x45, 0x85, 0x2b, 0x3a, 0x93, 0xcf, 0xf8, 0xbf, 0x5e, + 0xe0, 0x81, 0xc5, 0xe1, 0xf6, 0x68, 0x56, 0xea, 0xcb, 0x2b, 0x0d, 0x8e, 0xbd, 0xb9, 0xe7, 0x50, + 0xd4, 0xc9, 0xf1, 0x62, 0x32, 0xdd, 0x38, 0x5f, 0x11, 0xf6, 0x12, 0x7c, 0xde, 0xfb, 0x73, 0x54, + 0x87, 0xd4, 0x8d, 0xce, 0xa1, 0xd7, 0x60, 0xbd, 0x2c, 0xdc, 0x9f, 0x14, 0x2b, 0xe2, 0x7d, 0x1a, + 0x2a, 0x94, 0xb9, 0x53, 0xcf, 0x02, 0x7f, 0x34, 0xe5, 0x1c, 0x72, 0x28, 0xdb, 0x6d, 0xc2, 0xb1, + 0xf7, 0x0e, 0xc1, 0xfd, 0x24, 0xf6, 0x14, 0xa7, 0x3b, 0x86, 0x79, 0xd7, 0x69, 0x77, 0x0e, 0xc6, + 0x39, 0x24, 0x17, 0x6b, 0x92, 0xe2, 0x2a, 0xc9, 0xe6, 0x13, 0xc9, 0xf4, 0x6a, 0x54, 0x0e, 0xa4, + 0x31, 0x8b, 0xe3, 0xa5, 0xb5, 0x25, 0x39, 0x18, 0x2b, 0xce, 0xb3, 0x6d, 0xee, 0xd6, 0x97, 0x15, + 0xc9, 0xef, 0x84, 0x2f, 0x46, 0x6c, 0xb2, 0x13, 0x16, 0x86, 0x73, 0xcd, 0x3b, 0x6a, 0x96, 0x37, + 0xe9, 0x20, 0x27, 0xcc, 0x37, 0xa2, 0x87, 0xf4, 0x72, 0x95, 0xe4, 0xb5, 0x5b, 0x42, 0xc7, 0xe5, + 0x59, 0x04, 0x41, 0xe4, 0x68, 0xf3, 0xf9, 0x06, 0xa0, 0x5c, 0xa5, 0x34, 0x7a, 0x6f, 0x1d, 0x8c, + 0x3d, 0x03, 0x79, 0x66, 0x5a, 0x4f, 0x1d, 0x0d, 0xcd, 0x95, 0x5c, 0xe0, 0x08, 0xdb, 0xec, 0x2e, + 0xca, 0x85, 0xe4, 0x88, 0xaa, 0x33, 0xa3, 0x3a, 0xd9, 0xb8, 0x46, 0x25, 0xcb, 0x25, 0x13, 0x17, + 0x9c, 0xcd, 0xfe, 0x6d, 0xa1, 0x83, 0x8f, 0x1c, 0x60, 0xee, 0xbb, 0x9d, 0x2c, 0x6a, 0x68, 0xa7, + 0xf3, 0xdf, 0x46, 0x89, 0x8c, 0x6d, 0x5f, 0xa5, 0xa5, 0x5d, 0x3a, 0x7d, 0x2d, 0xce, 0x5c, 0x8b, + 0xb3, 0xdc, 0xda, 0x0d, 0x7d, 0x49, 0x3b, 0xf0, 0x7a, 0x47, 0x0e, 0x6b, 0x8b, 0xef, 0xe7, 0xd3, + 0xfb, 0x01, 0xac, 0x97, 0x39, 0xc5, 0x2f, 0x18, 0xc2, 0x56, 0xd9, 0x44, 0x67, 0x7c, 0x2f, 0x0e, + 0xc4, 0x0a, 0xea, 0xc4, 0x3d, 0x75, 0x65, 0x4a, 0xa1, 0xb0, 0x91, 0xa3, 0x59, 0xca, 0xa1, 0xbb, + 0x2c, 0x72, 0xdd, 0xb9, 0xde, 0x7f, 0x12, 0x6b, 0x97, 0x4e, 0x20, 0x9d, 0xeb, 0x45, 0xb2, 0x3a, + 0xea, 0x4c, 0xca, 0x85, 0x35, 0xf9, 0x1a, 0xff, 0x5c, 0xe5, 0x08, 0xf8, 0x87, 0xc2, 0x6b, 0x84, + 0x0e, 0xcc, 0x0e, 0x31, 0x99, 0xde, 0x51, 0xfd, 0x4e, 0xb2, 0x95, 0x58, 0xe2, 0xf4, 0x22, 0x7d, + 0x3b, 0x9f, 0xd3, 0xec, 0x6c, 0xfe, 0xf7, 0x83, 0xff, 0x7e, 0x90, 0xed, 0x13, 0xce, 0xc1, 0xb0, + 0x67, 0x30, 0xec, 0xb4, 0xbb, 0x10, 0x79, 0x3b, 0x17, 0x72, 0x98, 0x8f, 0x91, 0xa5, 0xfd, 0xd0, + 0x71, 0x65, 0x2e, 0xdd, 0x39, 0x22, 0x21, 0x0d, 0xa1, 0x99, 0xca, 0xbe, 0x83, 0xac, 0xce, 0x31, + 0xe6, 0xa2, 0x44, 0xa1, 0xaa, 0x64, 0x99, 0x26, 0x26, 0x70, 0x30, 0x12, 0xfb, 0xb2, 0x78, 0x2b, + 0x1c, 0x92, 0xbc, 0xe3, 0x46, 0xdc, 0xfd, 0xe9, 0x24, 0x4c, 0xa9, 0x70, 0xeb, 0x49, 0x4e, 0xbf, + 0x01, 0x34, 0xc9, 0x36, 0x6f, 0x57, 0x22, 0x54, 0xc1, 0xfe, 0x06, 0xf2, 0x61, 0xf9, 0xd3, 0xa5, + 0x38, 0x93, 0x96, 0x4c, 0x5a, 0x36, 0xdb, 0x6b, 0x5e, 0x1b, 0xf3, 0x27, 0x7a, 0x6d, 0x96, 0x42, + 0x55, 0x45, 0x49, 0xb3, 0x22, 0x9c, 0x83, 0xbf, 0xee, 0x3b, 0xfe, 0xc5, 0xf7, 0x40, 0x4d, 0xad, + 0x62, 0xb0, 0xd7, 0x78, 0x6b, 0xd3, 0x73, 0x50, 0x69, 0x6d, 0xf5, 0x19, 0xa3, 0x4e, 0xf2, 0x3f, + 0xb2, 0x5f, 0x9a, 0x75, 0x68, 0xf4, 0x85, 0x44, 0x87, 0x0d, 0xb9, 0x29, 0x83, 0x75, 0x02, 0xdc, + 0x6e, 0x61, 0xd9, 0x9a, 0xef, 0x64, 0x88, 0xaa, 0x8a, 0x31, 0x36, 0x40, 0xb0, 0x25, 0x59, 0xa0, + 0x46, 0xbb, 0xef, 0xee, 0xd6, 0x32, 0x97, 0xae, 0x44, 0x5f, 0x98, 0x65, 0x0f, 0x88, 0xdd, 0x6e, + 0x94, 0x9f, 0x13, 0xd2, 0x3a, 0x1e, 0x39, 0x3b, 0x0e, 0xbe, 0x5f, 0x31, 0x3e, 0x9c, 0x13, 0xbe, + 0x64, 0x39, 0x3b, 0x9a, 0x73, 0x68, 0x24, 0x79, 0x07, 0x80, 0x98, 0xfd, 0x43, 0x39, 0x69, 0x3d, + 0x88, 0xd7, 0xa3, 0xd4, 0x05, 0x47, 0x08, 0xf7, 0xec, 0x08, 0x3b, 0x9a, 0x33, 0xaf, 0xaf, 0x05, + 0xc3, 0xf5, 0x4b, 0x70, 0x6e, 0xab, 0xab, 0xfe, 0x00, 0xae, 0x90, 0x0c, 0x69, 0xfe, 0xb2, 0xc9, + 0xf0, 0x85, 0x1a, 0x9c, 0x9f, 0x9f, 0x06, 0x8b, 0x34, 0xfb, 0xc4, 0x28, 0x8e, 0x13, 0x4b, 0xa6, + 0x3e, 0x05, 0xa9, 0x59, 0x72, 0x6e, 0xc0, 0x99, 0x51, 0x4e, 0x59, 0x3d, 0xbc, 0xd8, 0x2c, 0x30, + 0x0d, 0xb9, 0x08, 0x23, 0xfa, 0x98, 0x89, 0xa6, 0xb2, 0x8f, 0xb8, 0x11, 0x9b, 0x6a, 0x06, 0x08, + 0xdd, 0x1a, 0x9c, 0x45, 0x5f, 0x92, 0x3c, 0x9a, 0xd6, 0x21, 0x07, 0x7b, 0xce, 0x1a, 0xb5, 0x1e, + 0xa2, 0x1e, 0x34, 0x09, 0xbb, 0x03, 0x28, 0x17, 0x1c, 0x13, 0xb4, 0x32, 0x3a, 0x63, 0xe7, 0x50, + 0x07, 0xe8, 0x3e, 0x3a, 0x32, 0x54, 0xfa, 0x15, 0x9b, 0xb8, 0xd3, 0xc3, 0x0c, 0xcd, 0x50, 0x01, + 0x0d, 0x10, 0xd5, 0xfd, 0x66, 0x5a, 0xbe, 0xe5, 0x98, 0x6f, 0x8f, 0x96, 0x2b, 0xe8, 0xf6, 0xc5, + 0x54, 0x94, 0xc4, 0xaa, 0xc0, 0x82, 0x0f, 0xd9, 0x2a, 0x7f, 0x7e, 0x6a, 0x6c, 0x9d, 0x41, 0xb1, + 0x61, 0xfc, 0x10, 0x59, 0x31, 0x9f, 0x96, 0x8f, 0x15, 0xfd, 0x1d, 0x9a, 0xcd, 0xf1, 0xc1, 0xfa, + 0x8f, 0x81, 0x74, 0x26, 0x4e, 0xa2, 0x29, 0x6f, 0xf5, 0xb8, 0xcd, 0x82, 0x83, 0xba, 0xb4, 0x45, + 0x93, 0xe7, 0xd8, 0x7a, 0xa8, 0x8d, 0x29, 0xe6, 0xa9, 0xa8, 0x09, 0x61, 0x66, 0x8d, 0xa9, 0x05, + 0x55, 0xe0, 0x92, 0x1a, 0x70, 0x5e, 0xe9, 0x81, 0xc5, 0xb4, 0x93, 0x2f, 0x23, 0x9d, 0x0e, 0x61, + 0xe7, 0x0c, 0x26, 0xdc, 0x50, 0x7f, 0x61, 0x72, 0x77, 0x60, 0x9b, 0xe0, 0x38, 0xb0, 0xde, 0x56, + 0x92, 0xef, 0xa5, 0x2a, 0xaf, 0xc5, 0xeb, 0x04, 0x1d, 0xc3, 0xde, 0x30, 0x2d, 0x55, 0x29, 0xa5, + 0x0a, 0x6c, 0x73, 0x68, 0x29, 0xe0, 0xe4, 0x25, 0x29, 0x2c, 0xd3, 0x52, 0x2c, 0x12, 0x29, 0xec, + 0xc9, 0x14, 0xbb, 0x2f, 0x49, 0x61, 0x9f, 0x96, 0xc2, 0x23, 0x52, 0x24, 0xa1, 0x09, 0xeb, 0x2f, + 0x49, 0x61, 0x93, 0x4c, 0xca, 0x0a, 0x21, 0x1f, 0x6a, 0x69, 0x0d, 0xb5, 0x17, 0x26, 0x71, 0xdc, + 0xa4, 0xee, 0x3f, 0x4f, 0xba, 0xf4, 0x49, 0x17, 0xd2, 0x89, 0x47, 0x63, 0x61, 0xa6, 0x55, 0x65, + 0x6c, 0xed, 0x71, 0xce, 0x34, 0x38, 0x4a, 0x0a, 0x4c, 0x8e, 0xc4, 0xfa, 0x28, 0x5c, 0xd0, 0x30, + 0xa2, 0x24, 0x81, 0xfe, 0x38, 0xdf, 0xa6, 0x1a, 0x4f, 0x96, 0x43, 0xd6, 0xcb, 0x9e, 0x40, 0x2e, + 0x78, 0xd4, 0x9d, 0x13, 0xcb, 0x15, 0xb6, 0x76, 0x2e, 0x46, 0xb4, 0x7b, 0x2f, 0x65, 0x87, 0xae, + 0x90, 0xee, 0x4a, 0x1d, 0x0e, 0xc7, 0x62, 0xb9, 0x9a, 0xb6, 0x3d, 0x6b, 0x8d, 0x25, 0xa9, 0x4d, + 0x0a, 0x1b, 0xa3, 0x3a, 0xa6, 0x38, 0x66, 0xa2, 0x95, 0xea, 0x58, 0xac, 0xa8, 0x4e, 0xa7, 0xcc, + 0x8d, 0x1a, 0xa7, 0x4b, 0x64, 0x38, 0x72, 0x72, 0x39, 0xc6, 0xf7, 0x92, 0x3a, 0x19, 0xd2, 0x83, + 0x21, 0x3e, 0xe1, 0x88, 0xa9, 0x3d, 0x45, 0x37, 0x14, 0xb2, 0x6d, 0xd9, 0x0b, 0xf6, 0x04, 0xc7, + 0x1a, 0x68, 0xa1, 0x71, 0xac, 0x4f, 0x8e, 0x60, 0x1c, 0x01, 0xee, 0xd4, 0x08, 0xf0, 0x6a, 0xba, + 0x43, 0x1c, 0xd1, 0x0e, 0xac, 0x59, 0x3c, 0x8b, 0x57, 0xe7, 0x84, 0x56, 0xd7, 0x22, 0x55, 0xfb, + 0x6d, 0xa1, 0x89, 0x47, 0x7e, 0x55, 0x68, 0x0c, 0x3e, 0x20, 0xcd, 0x98, 0x5e, 0x0b, 0x3b, 0x84, + 0xf2, 0xd8, 0x76, 0xd2, 0x1e, 0xf5, 0xb9, 0x64, 0x3d, 0xf8, 0xae, 0xc6, 0x37, 0xa4, 0x6a, 0x9c, + 0x73, 0x66, 0xa4, 0xc7, 0x6b, 0x81, 0x17, 0x39, 0x8f, 0xb9, 0x7c, 0x47, 0x07, 0xb5, 0x38, 0x7b, + 0x4d, 0x3e, 0xbb, 0x05, 0x0d, 0x30, 0x23, 0x1d, 0xa7, 0xaf, 0x3b, 0x31, 0xe5, 0xa3, 0x52, 0x11, + 0x18, 0x62, 0xfa, 0xe7, 0x13, 0x61, 0xa2, 0x18, 0x0e, 0xba, 0x97, 0x35, 0x2d, 0x9f, 0x6a, 0x65, + 0x79, 0x63, 0xe5, 0x48, 0xef, 0xb5, 0xd2, 0xbc, 0x5e, 0xe5, 0x2e, 0x79, 0x36, 0xa7, 0x57, 0x92, + 0xf9, 0xc8, 0x45, 0x38, 0xe2, 0x49, 0xb7, 0xfd, 0x43, 0xe4, 0xfa, 0xac, 0xac, 0x2b, 0x31, 0x28, + 0x73, 0xed, 0x5e, 0xb2, 0x00, 0xaa, 0xf9, 0x4f, 0xd1, 0xa4, 0xf9, 0x87, 0x43, 0xef, 0x10, 0xbf, + 0x35, 0xa5, 0x24, 0xb2, 0xd6, 0x73, 0xac, 0x71, 0x73, 0x5c, 0xd5, 0xea, 0x1d, 0x41, 0xf8, 0x79, + 0x4b, 0xc9, 0x6a, 0xc4, 0xa0, 0x46, 0xa3, 0xcb, 0x0a, 0x19, 0x62, 0xd8, 0x97, 0x73, 0xe3, 0xba, + 0x34, 0xd4, 0xe0, 0x15, 0x92, 0x13, 0x0a, 0xa2, 0xa3, 0x66, 0x30, 0x16, 0x54, 0x0b, 0xeb, 0xd1, + 0x19, 0x6d, 0x9f, 0xf1, 0x99, 0x6d, 0x1f, 0xa6, 0xb6, 0x93, 0x0d, 0x73, 0x6a, 0x7f, 0x28, 0x4f, + 0x0b, 0xc9, 0x68, 0xad, 0xb7, 0xfa, 0xf2, 0x6d, 0x0d, 0x67, 0x5f, 0xa6, 0xb5, 0xd5, 0xe9, 0xd6, + 0x3a, 0xa6, 0xb6, 0x76, 0xdd, 0xf4, 0xd6, 0x6a, 0x79, 0x7a, 0xd7, 0xa4, 0xda, 0x5a, 0x9a, 0xe5, + 0x1b, 0xd3, 0xe4, 0xf7, 0xbf, 0x86, 0x2f, 0x86, 0xff, 0x3f, 0xbe, 0x7c, 0x4e, 0x7c, 0xc1, 0xb1, + 0x2f, 0xf5, 0xa4, 0x67, 0x37, 0xbb, 0xa9, 0x65, 0x38, 0x9a, 0x35, 0x36, 0xd4, 0x94, 0x20, 0x8b, + 0xbe, 0x1d, 0x88, 0x37, 0xd1, 0xc4, 0xd8, 0x3a, 0x94, 0x33, 0xf6, 0x59, 0x2a, 0x21, 0x7f, 0x6c, + 0x5d, 0xd8, 0x81, 0xbc, 0xb2, 0x55, 0x94, 0x61, 0xcc, 0x02, 0x5d, 0x98, 0xd6, 0xc8, 0xc7, 0x14, + 0x2a, 0x0f, 0x19, 0x79, 0x61, 0xbb, 0x7f, 0x7f, 0x42, 0xd1, 0xaf, 0x05, 0x0c, 0x9d, 0x11, 0xd6, + 0x56, 0x14, 0x30, 0x8d, 0x77, 0x7a, 0x6c, 0x67, 0x46, 0xec, 0x01, 0x8a, 0x9d, 0x1d, 0x96, 0x52, + 0xb1, 0xa3, 0xd3, 0x63, 0xa3, 0x74, 0x6f, 0xa4, 0x3b, 0x95, 0xb1, 0x95, 0x8b, 0xfc, 0x0f, 0xf0, + 0xad, 0x38, 0xd6, 0x54, 0x4b, 0x5f, 0xf2, 0x8f, 0xb0, 0x8f, 0x37, 0xc3, 0x67, 0x1d, 0xfb, 0x44, + 0xd3, 0x3e, 0x62, 0x1d, 0x3f, 0xc9, 0x2b, 0x94, 0xa2, 0x44, 0xbb, 0x73, 0xa8, 0xdd, 0x24, 0xe8, + 0x26, 0xce, 0xf2, 0xe5, 0x74, 0xc7, 0xf3, 0xe1, 0x03, 0xfe, 0xa1, 0x50, 0x36, 0xdd, 0x1c, 0xa8, + 0x18, 0xe8, 0xee, 0xbb, 0x14, 0xcf, 0xc6, 0xeb, 0x84, 0xbe, 0x01, 0x83, 0x81, 0xec, 0x4c, 0x66, + 0xee, 0x39, 0xf3, 0xa4, 0xef, 0x41, 0x9e, 0x22, 0x45, 0xda, 0x53, 0x77, 0xff, 0xf1, 0xfd, 0xe8, + 0x73, 0x24, 0x3d, 0xdd, 0x8f, 0x4e, 0x36, 0x3f, 0x53, 0xfe, 0xc3, 0x52, 0xd6, 0xd8, 0xb0, 0xb8, + 0xeb, 0x78, 0xaa, 0x1e, 0x4a, 0xf2, 0x98, 0x9d, 0x2c, 0x81, 0x9a, 0xb0, 0x0e, 0xcf, 0x90, 0xee, + 0x2b, 0x79, 0x4b, 0x74, 0x52, 0xa7, 0xea, 0xd4, 0x2c, 0x4c, 0x69, 0xf7, 0x78, 0xdc, 0xe9, 0x7f, + 0x1a, 0x9c, 0xf8, 0x0e, 0xc6, 0x66, 0x08, 0x09, 0xa0, 0xd0, 0xa3, 0x18, 0x7e, 0xf6, 0x6f, 0x61, + 0x8b, 0x7c, 0x45, 0x9c, 0x2d, 0x59, 0x5e, 0x0c, 0x14, 0x12, 0x8e, 0x9e, 0x4e, 0xf2, 0x76, 0x6c, + 0xc3, 0x8c, 0x2c, 0xb5, 0x19, 0x71, 0xb6, 0x66, 0xce, 0x90, 0x2c, 0xea, 0x93, 0xcd, 0x67, 0xec, + 0xe9, 0x23, 0xf8, 0x26, 0xc9, 0xf2, 0x15, 0xb2, 0x3f, 0x95, 0xd2, 0x86, 0x01, 0xec, 0x41, 0xee, + 0xd1, 0x98, 0xf1, 0xfd, 0x34, 0xd6, 0xce, 0x13, 0xb2, 0x62, 0x6c, 0x4b, 0x28, 0x07, 0xe7, 0x6c, + 0x29, 0xaa, 0xd2, 0x9c, 0x88, 0xf8, 0xbf, 0x45, 0xb3, 0x95, 0x3d, 0x2a, 0x47, 0x20, 0xf7, 0x91, + 0x03, 0x8a, 0x7d, 0xe7, 0x8f, 0x20, 0x27, 0x94, 0x1f, 0xef, 0xaf, 0xd3, 0xef, 0xff, 0x11, 0xe4, + 0x85, 0x73, 0xc5, 0x2d, 0xe2, 0xf6, 0xf9, 0x90, 0xbb, 0x6b, 0x07, 0xe4, 0xae, 0xd4, 0x4b, 0xf5, + 0x72, 0x95, 0x7c, 0x55, 0xe8, 0x18, 0xfb, 0x37, 0x16, 0x74, 0xc2, 0x42, 0x90, 0xe8, 0xce, 0x0f, + 0xf8, 0x62, 0x38, 0x1b, 0xbf, 0xe6, 0x82, 0xd1, 0x48, 0x37, 0xe5, 0x8a, 0x2f, 0x19, 0xcc, 0xf8, + 0x65, 0xc0, 0x2f, 0x53, 0x74, 0x62, 0x6c, 0x07, 0x14, 0x12, 0xd7, 0x80, 0x3e, 0x33, 0xb4, 0xf0, + 0x12, 0xb0, 0x19, 0x69, 0xb3, 0xb3, 0x8d, 0xbf, 0x2a, 0xc0, 0xce, 0x35, 0x24, 0x7b, 0x96, 0x52, + 0xb8, 0x04, 0x47, 0x17, 0x41, 0xe0, 0x4e, 0xa4, 0x0c, 0x32, 0xd9, 0xae, 0x64, 0x9e, 0x52, 0x5b, + 0x09, 0x27, 0x2a, 0x27, 0x15, 0x22, 0x4c, 0x4c, 0x5a, 0x2c, 0x85, 0x25, 0x7a, 0x03, 0xaf, 0x80, + 0xe9, 0x63, 0x59, 0xf6, 0xb4, 0xa5, 0xea, 0xbc, 0xe4, 0x3d, 0xd2, 0x7c, 0xb3, 0x8d, 0x39, 0x3e, + 0xa9, 0xf9, 0x3f, 0x23, 0xfc, 0xc9, 0x1e, 0x1a, 0xfa, 0xd8, 0x30, 0x1c, 0xa5, 0xfd, 0xda, 0x0b, + 0xea, 0x31, 0x6d, 0x4d, 0xcb, 0x22, 0x2c, 0x33, 0x9e, 0x5c, 0xa4, 0xf1, 0xce, 0x26, 0x99, 0x6e, + 0x80, 0x20, 0x69, 0xe2, 0x09, 0x61, 0x1b, 0x0d, 0xb9, 0xb8, 0x33, 0xa4, 0x95, 0xc8, 0xc4, 0x87, + 0xd8, 0x8a, 0x23, 0x09, 0x37, 0xf1, 0x44, 0x55, 0x19, 0x7a, 0x6a, 0xb2, 0xc2, 0x97, 0xa1, 0xa9, + 0x76, 0x77, 0x82, 0x09, 0x4a, 0x59, 0xce, 0xba, 0x25, 0x53, 0xcb, 0x2f, 0x6e, 0xae, 0x2e, 0xa9, + 0x4c, 0x64, 0x25, 0x66, 0xa6, 0x35, 0xfa, 0x1c, 0xaf, 0x3e, 0x33, 0x9e, 0x90, 0x68, 0xf5, 0x21, + 0x0e, 0xf9, 0x7a, 0x5a, 0x52, 0x73, 0x7b, 0xa0, 0x5c, 0x8a, 0x80, 0xdf, 0xbf, 0x85, 0xe6, 0x10, + 0x47, 0x27, 0xd0, 0x0d, 0xc8, 0xc8, 0x1b, 0xb1, 0x35, 0xf1, 0x58, 0x8a, 0x37, 0xda, 0x89, 0x38, + 0xe4, 0x3c, 0x7c, 0x60, 0x00, 0x6c, 0xa5, 0xa3, 0x28, 0xc1, 0x4c, 0xd5, 0xcc, 0x15, 0x8a, 0x19, + 0x68, 0x93, 0x88, 0xc3, 0x72, 0x99, 0x27, 0x93, 0x6f, 0xfe, 0xd2, 0x5e, 0xa8, 0xf0, 0x81, 0xf7, + 0x46, 0x9f, 0x8e, 0x6f, 0x57, 0xde, 0x33, 0xf9, 0xb4, 0x13, 0x1a, 0x37, 0x87, 0xed, 0x6e, 0x71, + 0xbf, 0xf1, 0xf9, 0x1f, 0x3e, 0xce, 0x32, 0x4c, 0x85, 0x6c, 0x60, 0x2b, 0x96, 0x3f, 0x74, 0xd3, + 0x4a, 0xc1, 0x51, 0x58, 0x84, 0xb8, 0xbb, 0x5f, 0xdc, 0x11, 0x46, 0xeb, 0x51, 0xf8, 0xf5, 0x02, + 0xd2, 0x50, 0xb2, 0x67, 0xae, 0x78, 0x7f, 0xcc, 0x1c, 0xf6, 0x22, 0xb6, 0x5a, 0x59, 0x36, 0x00, + 0xf2, 0xb2, 0x0c, 0x3a, 0x39, 0x12, 0xaa, 0x10, 0xa9, 0xec, 0x20, 0x37, 0x64, 0x68, 0x3f, 0xd2, + 0x9a, 0xff, 0x36, 0xbe, 0x6b, 0x81, 0x2c, 0x9a, 0xba, 0xa1, 0x32, 0x43, 0xcb, 0x8f, 0x42, 0x32, + 0xe6, 0x5a, 0x1a, 0x57, 0xd7, 0x88, 0x9b, 0x03, 0x27, 0x91, 0xb2, 0xcb, 0x52, 0xcd, 0xe1, 0xfd, + 0xd7, 0xd1, 0xbc, 0xea, 0x62, 0x8d, 0x07, 0x0a, 0x1c, 0x5c, 0x87, 0x33, 0x38, 0xcf, 0x8c, 0x9f, + 0xec, 0xb5, 0x1b, 0xc4, 0x5d, 0x42, 0xc2, 0x52, 0x33, 0xf6, 0xfb, 0x9e, 0x8b, 0x07, 0x05, 0x26, + 0x94, 0x54, 0x3e, 0x68, 0x84, 0xb4, 0x74, 0xb2, 0x4d, 0x8b, 0xd1, 0xc7, 0xbf, 0xfd, 0x4b, 0x2e, + 0x5c, 0xdc, 0xcb, 0x96, 0xba, 0xe8, 0xeb, 0xef, 0xf8, 0x37, 0x91, 0xfa, 0xde, 0xc0, 0xbf, 0x0f, + 0x8b, 0x1b, 0xa5, 0x4a, 0x36, 0xf2, 0xd7, 0xb7, 0xf9, 0xf7, 0x3b, 0xa9, 0x38, 0xff, 0xc8, 0xbf, + 0xdf, 0x4f, 0x7d, 0xb3, 0x75, 0xdc, 0x93, 0xcf, 0x06, 0xb6, 0x72, 0xbd, 0x7e, 0x4e, 0xab, 0xeb, + 0x27, 0x7f, 0xc9, 0x75, 0xdb, 0x8e, 0x32, 0xf3, 0x22, 0x9b, 0x0b, 0x5b, 0x12, 0x61, 0x0b, 0xa2, + 0xf6, 0xa5, 0x17, 0x3e, 0x7d, 0x5c, 0xc9, 0xd5, 0xfa, 0xd9, 0x89, 0x78, 0xfd, 0x98, 0xb4, 0x94, + 0xfa, 0xd9, 0xd1, 0xc8, 0x37, 0x2b, 0xfd, 0x3e, 0x13, 0x6a, 0x51, 0x43, 0xba, 0xa7, 0xd5, 0xdd, + 0x64, 0x85, 0x1d, 0x54, 0x9c, 0x77, 0x84, 0xac, 0x76, 0xfe, 0x29, 0x39, 0x13, 0xaa, 0x94, 0x47, + 0x9c, 0x78, 0xd2, 0xb5, 0xa9, 0x55, 0x2f, 0x4b, 0xa0, 0x5f, 0xd6, 0xc7, 0x67, 0xac, 0xe1, 0x3d, + 0x8f, 0x83, 0x70, 0xbf, 0xb8, 0xcd, 0x91, 0x74, 0x0f, 0x30, 0x59, 0x8e, 0x7c, 0x6d, 0x25, 0x49, + 0x75, 0x76, 0x5f, 0x61, 0x0e, 0xdf, 0x02, 0x9d, 0x1b, 0xcb, 0x22, 0xc9, 0x5b, 0xcd, 0x77, 0xf1, + 0x9d, 0x5f, 0x76, 0x8f, 0xa2, 0x1f, 0x4c, 0xe3, 0x59, 0xa8, 0x04, 0x90, 0x1a, 0xad, 0x27, 0x3c, + 0x75, 0xcf, 0x70, 0x67, 0xa3, 0x54, 0xef, 0xe7, 0x79, 0x7c, 0xaf, 0x6f, 0xed, 0xc4, 0xd3, 0x62, + 0x65, 0xd6, 0xe1, 0xe1, 0xd6, 0x1f, 0x8d, 0x83, 0x03, 0x9c, 0x95, 0x64, 0x5d, 0x83, 0xd7, 0x6e, + 0xd7, 0xf0, 0xdd, 0x81, 0x76, 0x69, 0x49, 0x2a, 0x2f, 0x05, 0xf3, 0x31, 0x69, 0xb9, 0x18, 0x1a, + 0x37, 0x23, 0x5e, 0xf1, 0x1a, 0xaf, 0xd2, 0x43, 0xf7, 0x2c, 0x17, 0x0c, 0xf2, 0x49, 0x68, 0x8b, + 0x6c, 0xb2, 0x83, 0x63, 0x26, 0x87, 0x98, 0xd2, 0x69, 0x71, 0x6c, 0xa6, 0xdd, 0x9b, 0x92, 0x29, + 0x1d, 0xab, 0xc0, 0x6c, 0x47, 0x3e, 0x20, 0x9d, 0xef, 0xa7, 0xcf, 0x34, 0x6e, 0xce, 0x2c, 0x31, + 0xaa, 0xee, 0x7c, 0x28, 0x9c, 0x2b, 0xe6, 0xf9, 0xf2, 0x41, 0x68, 0x47, 0x49, 0x21, 0x3b, 0x1a, + 0xd6, 0xf8, 0x9d, 0x09, 0x61, 0x33, 0x4e, 0xec, 0x77, 0x7e, 0x7a, 0x7b, 0x72, 0xdd, 0xe1, 0x72, + 0x7e, 0xbe, 0xf7, 0x6e, 0xc6, 0xb9, 0xc8, 0x91, 0xe3, 0x1f, 0x0a, 0xb7, 0x89, 0xbb, 0x96, 0x30, + 0x67, 0xa2, 0xe8, 0x62, 0x5d, 0x2f, 0x2d, 0xdb, 0x6e, 0xf3, 0x3f, 0x4a, 0x77, 0x71, 0xb1, 0x8e, + 0xe2, 0xf1, 0x29, 0x1a, 0x8a, 0x42, 0xb0, 0xfb, 0x06, 0xb2, 0x3e, 0x26, 0xdb, 0xd8, 0xc9, 0xd9, + 0x6e, 0x11, 0x30, 0x75, 0x97, 0x62, 0x60, 0x67, 0xfd, 0x86, 0x9a, 0xa7, 0xe9, 0x2b, 0x74, 0xa5, + 0xa4, 0xaf, 0x78, 0x82, 0x34, 0xbe, 0x52, 0x95, 0xec, 0x95, 0xae, 0xda, 0xb2, 0x25, 0x94, 0x4b, + 0xb7, 0x48, 0x6f, 0xd9, 0x01, 0x86, 0x90, 0x91, 0xf6, 0x5e, 0xa1, 0xcb, 0x48, 0x37, 0x7c, 0x05, + 0xee, 0xa1, 0xf5, 0x6b, 0x5a, 0x7d, 0xad, 0x45, 0x4c, 0xa0, 0x33, 0x07, 0x62, 0xbf, 0xfe, 0x9e, + 0x85, 0x9a, 0x75, 0xdd, 0xca, 0x8c, 0x3a, 0xb8, 0x41, 0xa2, 0x7b, 0xc5, 0x50, 0xbe, 0xc9, 0x23, + 0x7b, 0xc0, 0x19, 0xb3, 0xae, 0xbd, 0x64, 0xa3, 0x9b, 0xe8, 0x92, 0x85, 0x7c, 0xfe, 0x3f, 0x77, + 0x36, 0xd2, 0xfa, 0x99, 0x91, 0xe0, 0x44, 0x3b, 0x0e, 0xc4, 0x4a, 0xaa, 0x90, 0xa6, 0xa5, 0x34, + 0xbd, 0x2e, 0xf9, 0x0c, 0x19, 0x3b, 0x83, 0x87, 0x54, 0x8f, 0x5f, 0xe2, 0xf3, 0xc3, 0x24, 0x8d, + 0x8f, 0x41, 0x1c, 0x34, 0xbf, 0x7c, 0xbe, 0xdb, 0xd7, 0x43, 0x37, 0x04, 0xd3, 0x0d, 0xeb, 0x27, + 0x46, 0xb9, 0xe4, 0x24, 0xd5, 0xaf, 0x90, 0xc8, 0x52, 0x78, 0x27, 0x1c, 0xaa, 0xbf, 0xa0, 0x0e, + 0x2e, 0xb9, 0xa0, 0x3e, 0xac, 0xb8, 0x34, 0xf9, 0x4b, 0xdc, 0xda, 0x63, 0x09, 0x6c, 0xcb, 0xd4, + 0x7e, 0xa6, 0x64, 0x33, 0xbe, 0xcb, 0xcd, 0xee, 0xb5, 0xe7, 0x86, 0x0e, 0x09, 0xfb, 0xd1, 0xb4, + 0x56, 0xc9, 0xd6, 0x92, 0xd9, 0x56, 0x2b, 0x71, 0x66, 0x4b, 0xc8, 0xb6, 0x6f, 0x59, 0xd4, 0x98, + 0xb9, 0x82, 0x4a, 0xdc, 0x6b, 0xd8, 0x7e, 0x62, 0xd4, 0x91, 0x60, 0xae, 0x90, 0xfa, 0xe5, 0x49, + 0xc9, 0x4b, 0x5a, 0x9d, 0x70, 0x8e, 0x3d, 0x48, 0xa9, 0x1c, 0xde, 0x5d, 0xe2, 0x36, 0xb4, 0xad, + 0xa4, 0x77, 0x26, 0xab, 0xc7, 0xb4, 0xc2, 0x98, 0xdc, 0xd1, 0xa1, 0x98, 0xa3, 0x29, 0x7e, 0x71, + 0x72, 0x9f, 0xb1, 0x10, 0xb2, 0xe0, 0xc5, 0xd0, 0x69, 0xb1, 0x73, 0xc3, 0xcd, 0x76, 0xf8, 0xa6, + 0xdb, 0x04, 0x95, 0x3b, 0x71, 0xae, 0xfd, 0x11, 0xc5, 0xcb, 0x48, 0xb9, 0x57, 0xb4, 0xfe, 0x56, + 0x79, 0x2a, 0x07, 0x84, 0x7c, 0xcf, 0xc1, 0x30, 0xdd, 0xd6, 0xa7, 0xe9, 0x62, 0x18, 0x52, 0x85, + 0xf0, 0x84, 0xb3, 0x10, 0x9e, 0x2c, 0x2c, 0x04, 0xb2, 0xef, 0xb9, 0x0d, 0xc7, 0xd3, 0x36, 0xac, + 0x7b, 0x82, 0xc7, 0x77, 0x0e, 0xdd, 0x14, 0x26, 0x21, 0x2d, 0xe5, 0x59, 0x82, 0x6e, 0xad, 0x30, + 0xe2, 0x1c, 0x40, 0xe9, 0xcf, 0x5b, 0x12, 0x2e, 0xc0, 0xfc, 0xf6, 0xf3, 0x7d, 0x9d, 0x16, 0x29, + 0x1b, 0xd3, 0x1c, 0x90, 0xaa, 0x31, 0x54, 0x17, 0xd8, 0xd2, 0xb8, 0x39, 0x6a, 0xc8, 0xb4, 0x0b, + 0x78, 0xe9, 0x7c, 0xc7, 0x36, 0x9c, 0xdb, 0x5a, 0x36, 0x73, 0x0b, 0x7f, 0x15, 0xa6, 0xdb, 0x30, + 0xe8, 0x96, 0x20, 0x7d, 0x23, 0xf9, 0x18, 0x34, 0x1f, 0x94, 0x49, 0x2f, 0x9e, 0x61, 0x9f, 0x6c, + 0xcd, 0x67, 0x06, 0xfa, 0xbc, 0xc9, 0x3e, 0x33, 0xd0, 0xc7, 0x92, 0xea, 0xc9, 0x83, 0xe8, 0xbf, + 0x8b, 0xfd, 0x01, 0xfd, 0xe7, 0x60, 0x3b, 0x12, 0x29, 0xbe, 0xc8, 0x8c, 0x33, 0x00, 0xc9, 0x3e, + 0xd4, 0x17, 0xed, 0xc8, 0x4d, 0x24, 0xc2, 0x56, 0x91, 0x8e, 0x74, 0x92, 0xb4, 0xa3, 0x02, 0xd3, + 0x0e, 0x70, 0x5a, 0x1d, 0xa6, 0x45, 0xe8, 0x60, 0x7e, 0x8f, 0xa3, 0xdf, 0x68, 0xe3, 0x66, 0x76, + 0xef, 0x45, 0xf7, 0x20, 0x87, 0xeb, 0x31, 0x5c, 0x42, 0x78, 0x3d, 0x43, 0x9a, 0xf6, 0x98, 0xe8, + 0xdd, 0x3c, 0xbe, 0xb7, 0x02, 0xe1, 0xf1, 0xdc, 0x41, 0x84, 0xdc, 0x33, 0x5a, 0xbc, 0x17, 0xb9, + 0xb6, 0xd4, 0xc6, 0x06, 0xad, 0x45, 0x2f, 0x26, 0x79, 0x69, 0x6e, 0x31, 0xf5, 0xdf, 0xaa, 0x74, + 0xff, 0x45, 0xe9, 0xbc, 0xda, 0xde, 0x4c, 0xdb, 0x83, 0x38, 0x82, 0x27, 0x84, 0x5d, 0x56, 0xec, + 0xf3, 0x7c, 0x8d, 0xfb, 0x04, 0xd8, 0xc1, 0x98, 0xcc, 0x77, 0xc6, 0x12, 0x16, 0xd2, 0x5d, 0x20, + 0x70, 0x08, 0x29, 0xea, 0x46, 0xac, 0xa7, 0x29, 0xb0, 0xad, 0x65, 0x73, 0xfc, 0x8b, 0x74, 0x53, + 0xdc, 0x74, 0x89, 0x4a, 0xd8, 0xf3, 0x96, 0xfc, 0x38, 0xcb, 0xeb, 0xd3, 0xb3, 0x7c, 0xd5, 0x07, + 0x60, 0xbb, 0xde, 0x07, 0x26, 0x89, 0xac, 0xb6, 0x2f, 0xcc, 0xdc, 0x5b, 0x75, 0x3d, 0x8e, 0xe5, + 0x50, 0x12, 0xba, 0x64, 0xb1, 0xb4, 0x05, 0xe9, 0x36, 0xad, 0x1f, 0x58, 0x30, 0x87, 0xc2, 0x0c, + 0x3e, 0x7f, 0x0b, 0x4a, 0x64, 0x4b, 0x53, 0xe9, 0x4c, 0x7c, 0xff, 0x1a, 0xa8, 0xf1, 0xe4, 0x9e, + 0x00, 0xb2, 0xbf, 0x1a, 0xb8, 0x5d, 0x35, 0xd0, 0xed, 0xba, 0x2e, 0x5d, 0x51, 0x40, 0x35, 0x64, + 0xe2, 0xa3, 0x03, 0x8a, 0x68, 0x0d, 0xfa, 0x7d, 0xd5, 0xe5, 0x7d, 0x56, 0x2d, 0x65, 0xf7, 0x07, + 0x6a, 0x39, 0xba, 0x17, 0xb1, 0xfb, 0xb4, 0x5a, 0x49, 0x37, 0x82, 0xab, 0x1e, 0xfe, 0xfa, 0x48, + 0xad, 0xe1, 0xfb, 0x75, 0x7d, 0xfc, 0xf5, 0xa1, 0xda, 0x80, 0x21, 0x8d, 0xec, 0xfe, 0x58, 0x6d, + 0x46, 0xff, 0x16, 0x76, 0x9f, 0x51, 0xe9, 0x86, 0x5e, 0x85, 0xdd, 0x7f, 0x50, 0xdb, 0xd1, 0xbf, + 0x93, 0xdd, 0x67, 0xd5, 0x08, 0xfa, 0x47, 0xd9, 0xfd, 0x47, 0x35, 0xae, 0xdd, 0xdc, 0x3b, 0xc0, + 0xdf, 0xe7, 0xd4, 0x41, 0xfc, 0x1e, 0x3f, 0xf9, 0xb6, 0x9a, 0xe0, 0xef, 0x3f, 0xa9, 0x23, 0x52, + 0xb5, 0xc5, 0x09, 0xb3, 0xc8, 0x56, 0x74, 0x51, 0xbd, 0x3a, 0xca, 0xbe, 0x17, 0xd5, 0x4d, 0x5c, + 0x9b, 0x2d, 0xfc, 0x75, 0x41, 0xdd, 0x86, 0xf5, 0x7c, 0x9c, 0xdc, 0x06, 0xbd, 0xfa, 0x04, 0xba, + 0x9f, 0x64, 0x37, 0xa8, 0x4f, 0xa1, 0x7b, 0x07, 0xbb, 0x75, 0xea, 0x33, 0xe8, 0xde, 0xc9, 0xf1, + 0xff, 0xac, 0xee, 0x42, 0xf7, 0x6e, 0x76, 0x9f, 0x57, 0xf7, 0x62, 0xbd, 0xc6, 0xd8, 0xad, 0xaa, + 0xfb, 0xe9, 0x36, 0x60, 0x76, 0x9f, 0x52, 0x0f, 0xa2, 0xff, 0x21, 0x76, 0x8f, 0xab, 0x47, 0xb1, + 0xac, 0x63, 0xec, 0xfe, 0x54, 0x3d, 0x2e, 0x6e, 0x1d, 0x46, 0xf7, 0xa4, 0x7a, 0x02, 0xe3, 0x9f, + 0x64, 0xf7, 0x27, 0xea, 0x69, 0xba, 0x8f, 0x81, 0x6e, 0x90, 0xc6, 0x67, 0x5c, 0xc3, 0x11, 0xd9, + 0xd5, 0xad, 0x1a, 0xb4, 0x1d, 0x7c, 0x79, 0xbc, 0xf3, 0xb5, 0x9c, 0xe4, 0x15, 0xd2, 0xc9, 0x7b, + 0xa0, 0xd7, 0x80, 0x29, 0x06, 0xaa, 0x3e, 0x54, 0x5d, 0x72, 0x9d, 0x1d, 0xe3, 0xb9, 0x56, 0x09, + 0x7d, 0x5e, 0xf4, 0x4b, 0xa9, 0xd5, 0x94, 0x14, 0x0e, 0x08, 0xfe, 0x33, 0xdb, 0x5a, 0x75, 0x1a, + 0x0e, 0xcd, 0xf7, 0xc1, 0x31, 0xef, 0x33, 0x70, 0xb4, 0xfa, 0x34, 0x1c, 0x9d, 0x5f, 0x0f, 0x87, + 0xa4, 0x62, 0x75, 0x60, 0xbe, 0x07, 0x46, 0x28, 0xd7, 0x5b, 0xd5, 0x1e, 0xe3, 0x7c, 0x86, 0x27, + 0x8c, 0x48, 0x2e, 0x18, 0xc9, 0xc4, 0x23, 0x2c, 0x4d, 0x0a, 0xc3, 0xcc, 0x15, 0xee, 0x62, 0x35, + 0x91, 0xa4, 0x39, 0x7c, 0xcf, 0xb0, 0x7d, 0x5a, 0xac, 0x7c, 0x8c, 0xd5, 0x50, 0x58, 0xac, 0x6e, + 0xc1, 0x99, 0xf1, 0x81, 0x70, 0x8d, 0xff, 0x81, 0x50, 0x76, 0x21, 0xf1, 0x05, 0x6f, 0xe1, 0x88, + 0xd7, 0xd2, 0x61, 0x2c, 0xa7, 0x13, 0x82, 0x23, 0x92, 0x21, 0x96, 0x81, 0xd9, 0xe8, 0x6b, 0xc3, + 0xb4, 0x73, 0xa5, 0xda, 0xa9, 0x1c, 0xac, 0x62, 0x44, 0x98, 0x38, 0xf1, 0xb1, 0x45, 0x9d, 0x19, + 0xfc, 0x10, 0xdf, 0xc1, 0x9d, 0x7d, 0xc1, 0x8f, 0x7d, 0x47, 0xbb, 0xd7, 0x62, 0x06, 0x7b, 0xb6, + 0x80, 0x97, 0x9a, 0x4f, 0xab, 0x54, 0xd9, 0xe3, 0xd4, 0x82, 0x3b, 0x12, 0x27, 0x46, 0xa5, 0x1a, + 0xa4, 0xd9, 0xe5, 0x72, 0xb5, 0x79, 0x3e, 0x43, 0x75, 0x6d, 0x12, 0xaa, 0xac, 0xc1, 0x08, 0xe2, + 0x48, 0xb0, 0x1d, 0x3e, 0x10, 0x07, 0x2b, 0xf1, 0xd6, 0x95, 0x64, 0x41, 0x2d, 0x06, 0x75, 0x3a, + 0xa9, 0x4e, 0x26, 0x98, 0x76, 0x31, 0x4c, 0x8f, 0xbb, 0x0a, 0xe9, 0x1c, 0xea, 0xce, 0xa1, 0x88, + 0x5e, 0x06, 0x89, 0x6c, 0xa2, 0xdb, 0x5e, 0x7d, 0x59, 0xa4, 0x3b, 0x7c, 0x00, 0x5d, 0xba, 0x60, + 0x22, 0xa3, 0xb6, 0xc8, 0x35, 0x49, 0x38, 0x73, 0x21, 0x4c, 0x9f, 0x41, 0x58, 0x19, 0x58, 0x3f, + 0x7b, 0xfe, 0xd9, 0x43, 0xb4, 0x46, 0x8e, 0x21, 0xc5, 0xea, 0xdb, 0x74, 0x67, 0x31, 0xca, 0x87, + 0x54, 0x2b, 0xa3, 0x92, 0xc7, 0x71, 0x90, 0x63, 0x39, 0x1f, 0x91, 0x6b, 0x68, 0x9f, 0x05, 0xc5, + 0x1b, 0x40, 0x7e, 0x60, 0xe7, 0xb3, 0xaa, 0x27, 0x64, 0xa3, 0xd0, 0xc0, 0x9e, 0xf1, 0x37, 0x10, + 0x36, 0xd6, 0x96, 0xcd, 0x61, 0x30, 0x6c, 0xa7, 0x51, 0xc4, 0xf7, 0x7c, 0x58, 0x31, 0x9f, 0x67, + 0xd5, 0xc6, 0x54, 0x9c, 0x17, 0x30, 0xc4, 0xc2, 0x71, 0x46, 0x68, 0x3c, 0x71, 0x1c, 0x0b, 0xe7, + 0xa3, 0xa4, 0xe2, 0x3c, 0x8a, 0x21, 0x66, 0x8e, 0xd3, 0x43, 0x63, 0x8b, 0xe3, 0x98, 0x39, 0x9f, + 0x68, 0xa8, 0x54, 0xaa, 0x4e, 0xe2, 0x9d, 0x7f, 0x07, 0x3c, 0x1e, 0xce, 0x67, 0x6e, 0xee, 0x2d, + 0x94, 0xbe, 0x04, 0x54, 0x9f, 0x29, 0x41, 0xa8, 0x1a, 0x3c, 0x34, 0xf6, 0x94, 0x6c, 0x4c, 0x17, + 0xbd, 0x5f, 0xd4, 0xf2, 0x58, 0x88, 0xfa, 0xe6, 0x58, 0x2a, 0xf5, 0x1c, 0xa4, 0xd1, 0x7b, 0xc3, + 0x56, 0x2d, 0xd5, 0x93, 0xc4, 0x4d, 0x1a, 0x72, 0x69, 0x04, 0x70, 0xfb, 0xbb, 0xd5, 0x04, 0x42, + 0x36, 0x1f, 0xe1, 0x60, 0x4f, 0xc3, 0xec, 0x8b, 0x83, 0x94, 0x72, 0x3e, 0xfa, 0x83, 0xe9, 0x8b, + 0xdd, 0xea, 0x43, 0x30, 0x0b, 0xdd, 0x12, 0x54, 0x60, 0x2c, 0xe9, 0xd0, 0x33, 0x30, 0x82, 0xb0, + 0x5c, 0x8c, 0xb8, 0xeb, 0x9f, 0x4f, 0x77, 0x2d, 0x3f, 0x03, 0x01, 0xc4, 0xdd, 0x00, 0xe2, 0xae, + 0xdf, 0x5e, 0x7b, 0x23, 0xd9, 0xa1, 0xcf, 0x29, 0x68, 0x00, 0x0b, 0xf3, 0x8d, 0x27, 0xc0, 0x5a, + 0x40, 0x29, 0x6d, 0x05, 0x11, 0x18, 0x81, 0xfc, 0x02, 0xca, 0x51, 0xc2, 0x5f, 0x3b, 0xd8, 0xe5, + 0xda, 0x14, 0xe6, 0x58, 0xbe, 0x48, 0x36, 0xc2, 0xdb, 0xbd, 0x2e, 0x58, 0x85, 0x2e, 0x23, 0xac, + 0x9e, 0xdf, 0x00, 0x11, 0x5a, 0x09, 0xc4, 0xfc, 0x07, 0x30, 0xff, 0x38, 0xe6, 0x1f, 0xc7, 0xfc, + 0xa3, 0xe8, 0x4e, 0xd0, 0xd8, 0x9a, 0xbf, 0x8a, 0xf6, 0x39, 0x21, 0x3e, 0x2d, 0xe6, 0x7e, 0xdd, + 0x82, 0xfe, 0xdb, 0xb0, 0x86, 0x51, 0x78, 0x1c, 0x7f, 0x3d, 0xf0, 0x04, 0xfe, 0x36, 0xc2, 0x93, + 0xf8, 0xab, 0xc0, 0xdb, 0xf8, 0xfb, 0x24, 0xb4, 0x60, 0xcd, 0xcf, 0x70, 0x3f, 0x67, 0x63, 0xfc, + 0xa7, 0x14, 0x4b, 0x0a, 0x3a, 0xd9, 0xf3, 0x3b, 0xe1, 0x29, 0x78, 0x2a, 0x85, 0x8d, 0xc6, 0xf9, + 0x5d, 0xb0, 0x03, 0x76, 0x28, 0x39, 0x54, 0x0e, 0xcd, 0x23, 0x18, 0xee, 0x82, 0x1d, 0x8c, 0x15, + 0xc5, 0x6a, 0x3e, 0xaf, 0xf3, 0x9c, 0x5f, 0xbf, 0x0d, 0x4b, 0xdc, 0x85, 0x39, 0xef, 0x86, 0xdd, + 0xf8, 0x7b, 0x0c, 0xc4, 0xfe, 0xc8, 0x67, 0x55, 0x5f, 0xd8, 0x10, 0x43, 0xee, 0x2c, 0x06, 0xe8, + 0x6e, 0x09, 0x1b, 0xe2, 0x16, 0xd2, 0x49, 0xa3, 0xbb, 0x33, 0x9c, 0x5d, 0x3a, 0x08, 0x1e, 0x9a, + 0x93, 0xf0, 0x2b, 0x1a, 0xce, 0x2e, 0x1b, 0x04, 0xbd, 0xa2, 0xdf, 0xfa, 0x32, 0x8f, 0x96, 0x6c, + 0xe4, 0x80, 0x0d, 0xa4, 0xa3, 0x74, 0x10, 0x1c, 0x28, 0xfe, 0x81, 0x90, 0xfe, 0xdb, 0xbf, 0xc6, + 0xf7, 0x21, 0xa1, 0x35, 0xaa, 0x49, 0x24, 0x86, 0x12, 0xc3, 0xb2, 0x31, 0x31, 0x24, 0xcf, 0xc2, + 0xc7, 0x84, 0xcf, 0xec, 0xc4, 0x50, 0xcc, 0xe2, 0xab, 0xc2, 0x38, 0x27, 0x43, 0x58, 0xde, 0x70, + 0x02, 0x5d, 0xb6, 0xb0, 0x21, 0x2a, 0x11, 0xdf, 0x31, 0x9c, 0x98, 0x5f, 0x05, 0x63, 0x58, 0xb3, + 0x1d, 0xb0, 0x1f, 0x7f, 0x77, 0xc2, 0x01, 0xfc, 0xb5, 0xc1, 0x41, 0x7f, 0xb7, 0xba, 0x2f, 0x2c, + 0x30, 0x9c, 0x38, 0x95, 0x3d, 0xe3, 0x13, 0x1a, 0x2f, 0x0a, 0x59, 0x0a, 0xb6, 0xe8, 0x38, 0x95, + 0x1c, 0x96, 0xa4, 0x6a, 0xe3, 0x49, 0xe6, 0x79, 0x20, 0x96, 0xe6, 0x7a, 0x7e, 0x13, 0xb3, 0xf0, + 0xbd, 0xe6, 0x46, 0xc6, 0x51, 0x23, 0x42, 0xa7, 0xd4, 0xd1, 0xad, 0x2e, 0x62, 0x7e, 0xcb, 0x2a, + 0x76, 0x8d, 0x64, 0x1d, 0xb4, 0x7b, 0xa2, 0xba, 0xa1, 0x67, 0x60, 0x8c, 0xef, 0x88, 0xa2, 0x10, + 0x63, 0xd5, 0xd9, 0x1d, 0xb0, 0x04, 0xb9, 0x9b, 0x68, 0xfe, 0x54, 0x4e, 0x4e, 0x12, 0x12, 0xf8, + 0x47, 0xb1, 0x6c, 0x69, 0x28, 0xaa, 0x12, 0x0f, 0x17, 0x9b, 0xa4, 0x1d, 0x7c, 0xf3, 0xfc, 0x60, + 0x96, 0x8c, 0xdc, 0xab, 0x09, 0xec, 0xdf, 0x83, 0x88, 0xf5, 0x2e, 0x78, 0x42, 0xab, 0x73, 0xb1, + 0xea, 0x64, 0x1e, 0x08, 0x7b, 0xe0, 0x21, 0x5a, 0xc5, 0xb1, 0x88, 0xb1, 0x6c, 0x7a, 0x7a, 0xfe, + 0x52, 0xe4, 0xab, 0x1a, 0x6a, 0x2f, 0x7c, 0xb2, 0xea, 0xdb, 0xbf, 0x4e, 0xd5, 0xf8, 0xf7, 0x6c, + 0x2b, 0x1a, 0xf4, 0x1b, 0x8d, 0x2e, 0xe6, 0x1a, 0x40, 0x9f, 0x83, 0x35, 0x9f, 0xa0, 0xfc, 0xb4, + 0xb1, 0xe0, 0xc4, 0xf0, 0x0a, 0x7b, 0x04, 0x9e, 0x20, 0xde, 0x31, 0xcd, 0x8d, 0xfb, 0x22, 0xb0, + 0x42, 0x93, 0x0a, 0xfe, 0x8b, 0xa4, 0x02, 0x5f, 0x37, 0xdf, 0x7a, 0xa6, 0x69, 0xc1, 0x68, 0x35, + 0x95, 0xf2, 0xa1, 0xfe, 0xe2, 0x5a, 0x21, 0x1c, 0xff, 0xf4, 0xbd, 0xc6, 0xcd, 0x9a, 0x76, 0xea, + 0x69, 0x67, 0xb1, 0x3a, 0x81, 0xef, 0x1f, 0xd0, 0x7d, 0x2f, 0x7c, 0x16, 0xef, 0xbf, 0x90, 0x93, + 0xb3, 0x6b, 0xf2, 0x9e, 0x28, 0x97, 0x64, 0xeb, 0xe1, 0xe9, 0x7c, 0xd2, 0xb9, 0x46, 0xa4, 0x34, + 0x34, 0x72, 0x8d, 0x24, 0x1d, 0xe2, 0xdb, 0x4e, 0x14, 0x16, 0x1f, 0xba, 0xa1, 0x5c, 0xa2, 0xd4, + 0x44, 0x1b, 0x88, 0x86, 0x10, 0xad, 0x49, 0xe1, 0x2f, 0xed, 0x7d, 0x15, 0xf4, 0xb3, 0x8c, 0xee, + 0x35, 0x3a, 0xb7, 0x0a, 0x61, 0xbf, 0x90, 0x72, 0xc9, 0x4c, 0xa1, 0xd8, 0x33, 0x7d, 0x94, 0xbc, + 0xe4, 0x97, 0x62, 0x16, 0x2e, 0xd1, 0xa7, 0xfe, 0x91, 0xb0, 0x19, 0xa9, 0xb6, 0x41, 0xab, 0x65, + 0x1e, 0x4a, 0x6f, 0xe6, 0x24, 0x35, 0xfc, 0xe3, 0xeb, 0x28, 0xc7, 0x3f, 0xa8, 0x7d, 0xcf, 0xc4, + 0xef, 0x97, 0xf0, 0x1b, 0x73, 0xe6, 0xfb, 0xe3, 0xa9, 0x67, 0x2c, 0xe8, 0xf7, 0x24, 0xfb, 0x59, + 0x53, 0x7e, 0x56, 0xf4, 0xdb, 0xc4, 0x7e, 0xe6, 0x94, 0x1f, 0xd6, 0xf1, 0x8f, 0x03, 0xec, 0x67, + 0x4b, 0xf1, 0x98, 0xc5, 0xaa, 0x0d, 0x7d, 0xb1, 0xfd, 0xfe, 0x07, 0x92, 0xfc, 0x23, 0xad, 0xa7, + 0x11, 0x47, 0xfa, 0x47, 0xbb, 0x36, 0xb2, 0xe8, 0xb6, 0xcd, 0x64, 0x6c, 0x3b, 0x8d, 0x44, 0x0c, + 0x33, 0x6a, 0x61, 0x52, 0x2a, 0x0c, 0x67, 0x18, 0x0c, 0x93, 0x02, 0x7b, 0xce, 0x9e, 0xa6, 0x30, + 0xd6, 0xcc, 0xe5, 0xa5, 0x72, 0x3c, 0x41, 0x10, 0x3a, 0x7b, 0x84, 0x42, 0xbe, 0x73, 0x90, 0x71, + 0xdd, 0x12, 0xb5, 0xc8, 0xc5, 0xaa, 0x31, 0x8d, 0xe5, 0x92, 0x99, 0xee, 0x7c, 0x9f, 0x3c, 0x4e, + 0x77, 0x36, 0x5c, 0xae, 0x2f, 0x94, 0xb9, 0x19, 0xbe, 0x36, 0xc5, 0x92, 0xfc, 0x62, 0x0a, 0x8c, + 0xae, 0xe9, 0xfd, 0xa4, 0x98, 0xc8, 0x5f, 0x39, 0x49, 0xbf, 0x88, 0xcf, 0x88, 0x8f, 0x93, 0x75, + 0x28, 0xe9, 0x1b, 0x50, 0x36, 0x7c, 0xdc, 0xf7, 0xde, 0x62, 0x7d, 0xa1, 0xce, 0x75, 0x79, 0x6d, + 0x28, 0xe9, 0x65, 0x77, 0xd3, 0x58, 0xe6, 0xbd, 0x84, 0xef, 0x83, 0xcd, 0x5d, 0x4d, 0x77, 0x78, + 0x11, 0x2f, 0x03, 0x92, 0xf7, 0x27, 0x60, 0xd7, 0xf6, 0x26, 0x3a, 0xdd, 0x35, 0xe0, 0xd2, 0x76, + 0x43, 0x96, 0xba, 0x6b, 0xa1, 0x9c, 0xdd, 0x7f, 0x82, 0x45, 0x6e, 0x2f, 0x54, 0x6a, 0x3b, 0x16, + 0x3d, 0x28, 0x3f, 0xd6, 0x68, 0xbb, 0x15, 0x7d, 0x98, 0xb6, 0x41, 0xdb, 0x9f, 0xd8, 0x88, 0xee, + 0x66, 0x6d, 0xaf, 0x24, 0xdf, 0xfd, 0xad, 0xed, 0x95, 0x54, 0xd0, 0xdd, 0xae, 0xed, 0x8f, 0xec, + 0x44, 0x77, 0x44, 0xdb, 0x1f, 0xc9, 0x7b, 0x19, 0xf1, 0x19, 0xc0, 0x67, 0x30, 0x66, 0x3b, 0xb2, + 0xd9, 0x55, 0xa7, 0xed, 0x6f, 0xc8, 0x8e, 0xad, 0x38, 0x34, 0xa4, 0xed, 0x39, 0x1b, 0x44, 0xf8, + 0x76, 0x6a, 0xf2, 0xba, 0x7e, 0xaa, 0x9e, 0x98, 0x79, 0xa6, 0xc7, 0xe7, 0x79, 0xe1, 0x71, 0x21, + 0x43, 0x06, 0xee, 0xb9, 0x6d, 0x33, 0xdf, 0x38, 0x55, 0x25, 0xf7, 0x40, 0x45, 0x15, 0xdd, 0x5e, + 0x43, 0x27, 0x96, 0x9e, 0x53, 0x7f, 0x49, 0x56, 0xd7, 0x6f, 0x19, 0xa5, 0x55, 0xbf, 0xdb, 0xe8, + 0x96, 0x70, 0x5b, 0x60, 0x6b, 0xe3, 0x66, 0x7b, 0x82, 0xb8, 0xf3, 0xc5, 0xd6, 0x0c, 0xdf, 0x6d, + 0xe8, 0x4b, 0xab, 0x82, 0x95, 0x6e, 0xa0, 0x18, 0xb4, 0x12, 0xca, 0x5f, 0x7a, 0x11, 0x12, 0x9b, + 0xf5, 0x5f, 0x4f, 0xcb, 0xfa, 0x0f, 0x36, 0x3c, 0x3a, 0x6c, 0xd7, 0x1d, 0x4d, 0xc8, 0xfa, 0x0f, + 0xd1, 0x75, 0x68, 0xc8, 0x37, 0x10, 0x90, 0x0e, 0xfd, 0x04, 0xa1, 0x99, 0x4c, 0x63, 0x14, 0xf7, + 0x18, 0x35, 0x6e, 0x4e, 0xef, 0x39, 0x77, 0x54, 0xd9, 0xaf, 0x76, 0x14, 0x81, 0xa1, 0xb0, 0x08, + 0x8c, 0xfe, 0xe1, 0x6e, 0x84, 0x90, 0x19, 0xe5, 0x81, 0x19, 0xff, 0xd8, 0x06, 0x59, 0xef, 0x98, + 0x1f, 0x00, 0x98, 0xfd, 0x73, 0x74, 0x1d, 0xb3, 0xaf, 0x86, 0x1c, 0x1e, 0xf7, 0x48, 0x2b, 0x60, + 0xa6, 0x58, 0xd7, 0x5f, 0x5c, 0x83, 0x32, 0x7a, 0xea, 0x76, 0xde, 0xb7, 0x7e, 0x28, 0xdd, 0x33, + 0x0a, 0x16, 0x9b, 0x75, 0x2c, 0x74, 0x01, 0x63, 0xe7, 0x0a, 0x2a, 0xa1, 0x3f, 0x48, 0x2d, 0xb9, + 0xe5, 0x84, 0x53, 0x6f, 0x1e, 0x06, 0x78, 0xee, 0xca, 0x9e, 0x60, 0xf6, 0x08, 0x80, 0xfe, 0x3f, + 0x7c, 0x03, 0x33, 0x7e, 0x86, 0x33, 0x0c, 0xd7, 0x9d, 0x76, 0x90, 0xe9, 0x3e, 0x22, 0x69, 0x88, + 0xee, 0x5c, 0x5b, 0x5c, 0xa3, 0x85, 0x3d, 0xd6, 0xb8, 0x99, 0x38, 0x43, 0x5d, 0x77, 0x2f, 0xc0, + 0xb1, 0x12, 0x68, 0x7a, 0xd0, 0x37, 0xa0, 0xeb, 0xc6, 0x11, 0x89, 0x69, 0x8e, 0x26, 0x34, 0xf7, + 0x63, 0x74, 0x37, 0x5b, 0xf6, 0x88, 0xaa, 0xbe, 0xfd, 0x0f, 0x08, 0x2b, 0x7d, 0xc5, 0x4f, 0x93, + 0x79, 0x1e, 0x4d, 0x1c, 0x4d, 0xbc, 0xb7, 0xf1, 0x68, 0xe2, 0xfd, 0x8d, 0x94, 0xfb, 0xcc, 0x43, + 0x22, 0xe7, 0x54, 0x9c, 0x74, 0xde, 0x83, 0x94, 0x33, 0x9d, 0x19, 0x7f, 0xf8, 0x19, 0x91, 0xb7, + 0x0c, 0x47, 0x12, 0x47, 0x12, 0x4e, 0xdd, 0x07, 0x9b, 0x8e, 0x8c, 0x1c, 0x1a, 0x3a, 0x9a, 0x48, + 0x85, 0x25, 0xd3, 0x44, 0x7a, 0x3d, 0x25, 0x10, 0x7c, 0x90, 0x6b, 0xc9, 0x29, 0x88, 0x33, 0xa6, + 0x1a, 0xf1, 0x77, 0x3a, 0x67, 0xf9, 0xb3, 0xea, 0xdc, 0xb8, 0x39, 0x56, 0xf1, 0x7c, 0x22, 0xa2, + 0x0f, 0x26, 0x68, 0x27, 0xcf, 0xdb, 0xf2, 0xc0, 0x6c, 0x59, 0x7a, 0x3e, 0xd1, 0xb6, 0x88, 0x6e, + 0x99, 0x0f, 0x3e, 0xe8, 0x32, 0x04, 0xd7, 0xbb, 0xeb, 0xa0, 0xc4, 0x52, 0x04, 0xe6, 0x26, 0xa0, + 0xdb, 0x0e, 0x4f, 0x9e, 0x36, 0x23, 0xc8, 0xda, 0xf2, 0xc9, 0x7e, 0x01, 0xa8, 0x69, 0x88, 0xbf, + 0x2d, 0x3b, 0x11, 0xe2, 0x8a, 0xa1, 0x69, 0x44, 0xf9, 0x25, 0xdd, 0x43, 0x05, 0x57, 0x84, 0x3b, + 0x63, 0xe5, 0x47, 0x36, 0xd3, 0x19, 0x46, 0xc9, 0x0d, 0xe5, 0x5b, 0xb6, 0x92, 0x96, 0x37, 0x36, + 0xf3, 0xf9, 0x44, 0x77, 0xa3, 0xe4, 0x09, 0x8e, 0x0e, 0xea, 0xf7, 0x8e, 0x76, 0xe4, 0x04, 0x47, + 0x0f, 0x1f, 0xd0, 0x7a, 0x6c, 0xbb, 0xe2, 0x60, 0x4e, 0xeb, 0xec, 0xa0, 0xba, 0x37, 0xd1, 0x33, + 0x97, 0x7b, 0xf6, 0xea, 0xcb, 0xf5, 0xac, 0xbc, 0x00, 0x39, 0xd4, 0x2a, 0xd1, 0xb7, 0x5c, 0xa3, + 0xf3, 0x7e, 0x2b, 0x72, 0xbe, 0x67, 0x96, 0x72, 0xdf, 0x62, 0x3a, 0xda, 0x35, 0x8d, 0xed, 0x5a, + 0xa6, 0xf5, 0x1f, 0xdd, 0x28, 0x15, 0xd8, 0xde, 0xb8, 0x39, 0x1b, 0xa0, 0xf4, 0x5a, 0x0f, 0x94, + 0x69, 0x31, 0xd2, 0x3e, 0x37, 0xb0, 0x8f, 0x1b, 0xca, 0x28, 0x55, 0x3a, 0xbe, 0x15, 0xb2, 0xf5, + 0x50, 0x9a, 0x0a, 0x43, 0x9f, 0x7c, 0xc8, 0xce, 0xd6, 0x7c, 0x66, 0x4e, 0x8d, 0x4b, 0x39, 0x55, + 0x78, 0xb4, 0x10, 0xed, 0x9b, 0xe0, 0xf9, 0xd6, 0xbe, 0x63, 0x23, 0xc7, 0x46, 0x94, 0x06, 0xb3, + 0x0e, 0xda, 0xc3, 0x8b, 0xda, 0x8c, 0xf8, 0x5e, 0x16, 0xaa, 0x54, 0x1c, 0xf8, 0xee, 0x0e, 0xe7, + 0xe2, 0xef, 0x7d, 0xa1, 0x12, 0xeb, 0x4f, 0xa0, 0xec, 0x9a, 0x5e, 0xb8, 0x01, 0x74, 0xca, 0x5c, + 0x39, 0xea, 0x03, 0x45, 0x6f, 0x7d, 0x31, 0xf7, 0x8b, 0xa1, 0x0b, 0x4a, 0x9e, 0x75, 0xf8, 0x9a, + 0x3a, 0xf4, 0x35, 0x96, 0x5d, 0x61, 0x1d, 0xba, 0xc6, 0x03, 0xba, 0xe6, 0x8d, 0x1c, 0x96, 0x1f, + 0xda, 0xe9, 0xcd, 0x75, 0xae, 0x86, 0x3c, 0x6d, 0x05, 0xe4, 0x60, 0xad, 0xd6, 0x72, 0x7d, 0x0b, + 0xad, 0xed, 0x8b, 0xd2, 0x6d, 0x89, 0x42, 0x8c, 0xc1, 0xa3, 0x92, 0xfd, 0xea, 0x33, 0xa1, 0xb1, + 0x4d, 0xc4, 0xf9, 0x12, 0xe6, 0x29, 0x61, 0xac, 0xab, 0x06, 0xa1, 0x02, 0xf4, 0x5a, 0x7c, 0x93, + 0x88, 0x8f, 0xae, 0xec, 0x29, 0x31, 0xb3, 0x32, 0xc2, 0xd3, 0xbe, 0x86, 0x54, 0xfa, 0x19, 0x22, + 0x5c, 0x77, 0x0e, 0xe7, 0x8f, 0x47, 0x53, 0xe1, 0xd9, 0x5a, 0xaa, 0x32, 0xe1, 0x7b, 0x49, 0xf9, + 0x33, 0x29, 0xbd, 0xd7, 0x09, 0xc4, 0xdf, 0xd0, 0x4d, 0x5e, 0x6a, 0xc6, 0x49, 0x85, 0xdb, 0xd5, + 0x5d, 0x7c, 0xe7, 0x8b, 0xce, 0x1e, 0xc0, 0x74, 0x32, 0x72, 0x08, 0xdd, 0xea, 0x9b, 0xe2, 0x9c, + 0xc8, 0x97, 0x90, 0x63, 0x53, 0x7f, 0xcf, 0xbf, 0x1f, 0x66, 0x52, 0x3a, 0xe4, 0xaf, 0x3f, 0x42, + 0x59, 0xf0, 0x6c, 0x91, 0x4f, 0xbd, 0x80, 0xb4, 0xff, 0x13, 0x74, 0x7f, 0x82, 0x6e, 0xba, 0xcb, + 0xa5, 0xa2, 0xfa, 0x43, 0xf5, 0x85, 0xa8, 0x33, 0x63, 0x45, 0x60, 0x10, 0x66, 0xaa, 0xbf, 0xc4, + 0x18, 0x6f, 0x62, 0x8c, 0xfd, 0x5f, 0x19, 0x84, 0x59, 0xea, 0x11, 0xae, 0x29, 0xd3, 0x93, 0x5b, + 0x46, 0x1b, 0x49, 0x3e, 0x7b, 0x3d, 0xed, 0xb3, 0xd8, 0xca, 0x23, 0x79, 0x58, 0x50, 0xb6, 0x23, + 0x09, 0xda, 0xf7, 0x8d, 0xa3, 0x6d, 0xe8, 0x83, 0x51, 0x8c, 0xf7, 0xc6, 0x54, 0xae, 0x8d, 0xca, + 0x4a, 0x9f, 0xdb, 0x63, 0x4b, 0x21, 0x1f, 0xd6, 0x18, 0xd4, 0x1d, 0x34, 0xbf, 0x89, 0xd5, 0x17, + 0x49, 0xfe, 0x0c, 0xfd, 0xe4, 0xc2, 0xcb, 0xea, 0x27, 0x2d, 0x99, 0xfa, 0x49, 0x5e, 0x11, 0x61, + 0x0d, 0x65, 0x52, 0x3b, 0x49, 0xfc, 0x2e, 0xad, 0xb8, 0xd6, 0x18, 0x84, 0xbe, 0x1b, 0x61, 0x07, + 0xa4, 0x2b, 0x73, 0x89, 0x3d, 0x17, 0x43, 0xc8, 0x19, 0x39, 0x8d, 0x7a, 0x9c, 0xdf, 0x3c, 0x71, + 0xa8, 0xd3, 0xef, 0x7f, 0x20, 0xf0, 0xdc, 0xc4, 0x2a, 0x96, 0xfb, 0x4a, 0x69, 0xdd, 0x38, 0x53, + 0xff, 0xa1, 0x96, 0x64, 0xea, 0x0e, 0xa7, 0x9c, 0xba, 0x51, 0xe9, 0x7e, 0x66, 0x69, 0x06, 0x8d, + 0x7c, 0xfd, 0x37, 0x43, 0x00, 0xaf, 0x17, 0x0d, 0x92, 0x95, 0x3e, 0x95, 0x66, 0x5e, 0xa2, 0xff, + 0xe3, 0xdc, 0x43, 0x46, 0xed, 0x24, 0xcf, 0x15, 0xd9, 0x43, 0x74, 0x11, 0x8b, 0x3d, 0xdb, 0x51, + 0x49, 0x46, 0xc8, 0x78, 0x4f, 0xdc, 0xc3, 0x49, 0xdf, 0xb8, 0xca, 0xab, 0xcb, 0xcf, 0x68, 0x2b, + 0x62, 0x73, 0x64, 0x10, 0xab, 0xcd, 0xc9, 0x70, 0xfe, 0xda, 0xbd, 0x18, 0xc7, 0x82, 0x77, 0x89, + 0x71, 0x06, 0x98, 0xc3, 0x2b, 0xbc, 0xc5, 0x2a, 0xa4, 0xf2, 0x24, 0x4b, 0xdd, 0x0f, 0x5f, 0x2e, + 0x5f, 0x7b, 0xf6, 0xe5, 0xcb, 0xc1, 0x32, 0x1c, 0x97, 0x2f, 0x03, 0x21, 0x6e, 0xf6, 0x2f, 0x49, + 0xf2, 0xfb, 0x3c, 0x97, 0x7e, 0x58, 0x33, 0x31, 0x29, 0xee, 0xa1, 0xa7, 0xbd, 0x78, 0xa9, 0x9d, + 0x78, 0xcc, 0x3b, 0x3b, 0x79, 0xd5, 0x6f, 0x76, 0xc8, 0x68, 0xb7, 0xa0, 0xe8, 0x6e, 0x50, 0xb2, + 0x07, 0x0a, 0xea, 0x0c, 0x71, 0x90, 0x8d, 0x62, 0x3f, 0x9e, 0x6c, 0xd0, 0x76, 0xe3, 0xe9, 0xc5, + 0x4a, 0xb0, 0x87, 0xef, 0xac, 0x52, 0x3b, 0x49, 0xeb, 0x65, 0x37, 0x3a, 0xc0, 0x51, 0x6f, 0x0f, + 0x64, 0xe2, 0xab, 0xd3, 0x53, 0x54, 0xad, 0x4e, 0x44, 0xad, 0x88, 0x41, 0xc4, 0xab, 0x9c, 0xa6, + 0xf3, 0x73, 0x57, 0x6f, 0xe4, 0xdd, 0x63, 0x25, 0xa4, 0x09, 0x29, 0xf2, 0xaa, 0xe7, 0x10, 0x43, + 0x3b, 0x11, 0x43, 0xc7, 0x1d, 0x2e, 0xd8, 0x8d, 0x92, 0xe6, 0x3a, 0xba, 0x03, 0xd9, 0xff, 0x34, + 0x78, 0x43, 0x79, 0xb4, 0x8e, 0xf6, 0xfe, 0xf6, 0x68, 0x41, 0x7a, 0x85, 0x8d, 0xf6, 0x69, 0xda, + 0x0b, 0xc1, 0x1b, 0x56, 0x38, 0xa7, 0x51, 0x91, 0x93, 0x1b, 0xea, 0x31, 0x0f, 0xb1, 0x43, 0xea, + 0xe6, 0x9d, 0xb4, 0x46, 0xf3, 0xfe, 0x0e, 0xed, 0x2b, 0xce, 0xf1, 0x36, 0x24, 0xe3, 0x61, 0xff, + 0x75, 0x0a, 0x7f, 0xa9, 0x1a, 0x71, 0xf8, 0x64, 0xed, 0x87, 0xea, 0x04, 0xdf, 0xb0, 0xb4, 0x4b, + 0xec, 0xa0, 0xfa, 0x6a, 0x1a, 0x4e, 0x3a, 0xe4, 0xd8, 0xcc, 0x6a, 0x63, 0x12, 0x4e, 0xf3, 0xf8, + 0x46, 0x22, 0xed, 0x6e, 0xbb, 0x8c, 0xf6, 0xf9, 0x87, 0xe9, 0x3e, 0x63, 0xc2, 0xd3, 0xbc, 0x9d, + 0xda, 0x2e, 0x91, 0x83, 0x66, 0x97, 0xe0, 0xb5, 0x96, 0x9c, 0x86, 0x15, 0xca, 0xdc, 0xf4, 0xda, + 0x8a, 0xd8, 0x17, 0x27, 0x74, 0x8f, 0x81, 0x37, 0x5a, 0x68, 0x5d, 0xe5, 0x49, 0xbe, 0xd3, 0xd2, + 0x88, 0xbf, 0x2e, 0x94, 0x69, 0x7b, 0xa1, 0x14, 0x65, 0xda, 0x5e, 0x28, 0x47, 0x99, 0xb6, 0x17, + 0x16, 0xa1, 0x4c, 0xdb, 0x0b, 0x95, 0x60, 0xc7, 0x5f, 0x0f, 0x38, 0xf1, 0x17, 0x79, 0x32, 0x5a, + 0x3b, 0xc1, 0xc7, 0xc2, 0x77, 0xb9, 0x72, 0x4e, 0xeb, 0xa2, 0x2c, 0x27, 0x9d, 0x7f, 0x72, 0x84, + 0xc6, 0xc6, 0xce, 0x8d, 0x61, 0xb1, 0x46, 0x61, 0x48, 0x6b, 0x6e, 0x11, 0x62, 0x66, 0x5e, 0xad, + 0x36, 0x14, 0x62, 0x4a, 0xad, 0x76, 0x46, 0x94, 0x76, 0x2d, 0xb0, 0x4d, 0x31, 0x4b, 0x4b, 0xd3, + 0xeb, 0x27, 0x19, 0x75, 0xcb, 0x8e, 0xeb, 0x92, 0xbd, 0x3c, 0x38, 0xc2, 0x9a, 0x69, 0xe0, 0x31, + 0x3b, 0x53, 0xdc, 0xdb, 0x2e, 0x56, 0xf3, 0x71, 0xc4, 0xee, 0x99, 0x3c, 0x21, 0x56, 0xf1, 0x41, + 0x68, 0x3f, 0xf5, 0x52, 0x0f, 0x2c, 0xa4, 0x3b, 0xa5, 0xa5, 0x46, 0xc9, 0x62, 0x27, 0x1c, 0xa2, + 0x13, 0x5d, 0xd9, 0xd2, 0xac, 0x60, 0x42, 0x99, 0x43, 0xe7, 0xd5, 0xaa, 0xff, 0xb0, 0x48, 0x17, + 0x4c, 0xec, 0x4a, 0x44, 0x4e, 0x36, 0x8e, 0xfa, 0xb7, 0x84, 0xde, 0xa0, 0x5d, 0xde, 0xef, 0x3f, + 0x2d, 0x76, 0x01, 0xe0, 0x48, 0x76, 0x4e, 0x59, 0x45, 0xa1, 0xbd, 0x92, 0x57, 0x93, 0x46, 0xdb, + 0x5d, 0x3a, 0x6a, 0xce, 0xdc, 0x35, 0x90, 0xbc, 0x27, 0x08, 0x53, 0xf8, 0x8e, 0x0c, 0xb1, 0xce, + 0x1b, 0xe1, 0x18, 0xb2, 0x59, 0x2a, 0xc1, 0x3a, 0x5d, 0x2f, 0x76, 0x62, 0x54, 0x71, 0x4c, 0xc9, + 0xd5, 0x49, 0x52, 0x98, 0x21, 0x7b, 0xea, 0x3e, 0x84, 0x8c, 0xfd, 0x01, 0x65, 0xf6, 0xaa, 0xe9, + 0xb5, 0xb0, 0xd0, 0x2d, 0xa7, 0xae, 0x64, 0x7c, 0xba, 0xf3, 0x8a, 0xd2, 0xfc, 0xf3, 0x91, 0xb0, + 0x29, 0xe3, 0x94, 0x0d, 0xc2, 0x99, 0xcc, 0xcf, 0x87, 0x63, 0x35, 0x63, 0xab, 0xb3, 0x79, 0x3f, + 0x41, 0xa7, 0x03, 0xa1, 0x6c, 0x4c, 0xc0, 0xb5, 0x88, 0xb9, 0xe6, 0x8c, 0xdd, 0x0c, 0xab, 0xc1, + 0xaa, 0x2c, 0x36, 0xff, 0x98, 0xee, 0x2b, 0x04, 0x6b, 0xa8, 0xcc, 0xbc, 0x3a, 0xb7, 0x1c, 0x6c, + 0xa1, 0xc2, 0x9f, 0x7d, 0x00, 0x73, 0x42, 0xf6, 0x0c, 0xfd, 0xac, 0x21, 0xed, 0x9e, 0x5c, 0x4f, + 0x37, 0x35, 0x36, 0x25, 0x30, 0x27, 0x67, 0x38, 0xdb, 0xe1, 0xb5, 0x5f, 0x1d, 0xfa, 0x65, 0x7a, + 0x1f, 0x84, 0xd8, 0xe7, 0x9d, 0xb9, 0xf2, 0x32, 0xc1, 0xeb, 0x35, 0x38, 0x3a, 0x5b, 0x48, 0x97, + 0x5b, 0xa2, 0xb3, 0x57, 0x4f, 0x95, 0x09, 0x68, 0x97, 0xe2, 0xf3, 0x3b, 0x60, 0x77, 0x28, 0x5b, + 0x9e, 0xa9, 0x80, 0xfe, 0x4d, 0xa4, 0x40, 0x9d, 0x66, 0xba, 0xe1, 0xe2, 0x3f, 0x11, 0x87, 0x8f, + 0xf6, 0xe4, 0xb3, 0xfb, 0xf5, 0x70, 0x23, 0xbf, 0xdf, 0x08, 0x07, 0xf9, 0xfd, 0x5a, 0x08, 0xb2, + 0xbc, 0x4a, 0x19, 0xbb, 0xdf, 0xa1, 0x9d, 0xf1, 0x3d, 0x39, 0xec, 0xfe, 0x1d, 0xfa, 0x17, 0xd2, + 0x0d, 0x42, 0xf4, 0xa5, 0x93, 0x30, 0x64, 0x8c, 0x5d, 0x4e, 0xf4, 0xcf, 0x45, 0xff, 0x43, 0xee, + 0x6c, 0xdf, 0xc0, 0x95, 0x4f, 0xa2, 0xeb, 0x20, 0xbb, 0xbe, 0x8f, 0xae, 0x7d, 0x51, 0xc3, 0xce, + 0xe1, 0x90, 0x9d, 0xbf, 0x7f, 0x10, 0xd8, 0xa3, 0xd6, 0x20, 0x45, 0xb8, 0x0b, 0x67, 0xa5, 0x41, + 0xb2, 0xd0, 0xaf, 0xde, 0xf9, 0xed, 0x5f, 0xe3, 0x9c, 0xa5, 0x53, 0xdb, 0x50, 0xaa, 0x3d, 0x50, + 0x75, 0x41, 0x75, 0xf8, 0x93, 0x71, 0x9f, 0x0a, 0x6c, 0x99, 0x1a, 0x73, 0x21, 0xc6, 0x4b, 0xc6, + 0x85, 0x1f, 0x72, 0x9c, 0xff, 0x39, 0x3d, 0x8e, 0xa2, 0xb0, 0xff, 0xff, 0x52, 0xfc, 0xfc, 0xfe, + 0xa1, 0x92, 0xcd, 0x6f, 0xc2, 0xdf, 0x83, 0x22, 0x26, 0xd2, 0x27, 0xce, 0xc9, 0xdb, 0x8d, 0xf9, + 0x54, 0x70, 0xe8, 0x0e, 0x0c, 0x7d, 0xee, 0xd2, 0xb2, 0x94, 0x3c, 0x0e, 0xfd, 0x11, 0x86, 0x6e, + 0x49, 0xa7, 0x4d, 0xd6, 0x37, 0xa6, 0x7f, 0x7e, 0x38, 0x1c, 0xed, 0x46, 0xfe, 0x3e, 0x6c, 0x43, + 0xb8, 0x5a, 0xa3, 0x59, 0x3b, 0x89, 0x46, 0x9c, 0x8a, 0x19, 0x9e, 0x1f, 0x0e, 0x81, 0xde, 0x80, + 0x75, 0x1c, 0xd7, 0xa4, 0xfa, 0x71, 0xd2, 0x10, 0x14, 0xad, 0x02, 0xa3, 0xda, 0x7e, 0xe9, 0xda, + 0x21, 0xf2, 0x87, 0xc5, 0xe4, 0x2f, 0x30, 0xee, 0x50, 0x82, 0x78, 0x44, 0xc2, 0x39, 0xb1, 0x73, + 0x44, 0x97, 0x23, 0x75, 0xd2, 0x4e, 0x80, 0xfa, 0x33, 0xa3, 0x3a, 0xba, 0x25, 0x3b, 0x86, 0x63, + 0x95, 0xe4, 0x26, 0x35, 0xdf, 0x4e, 0xa1, 0xdf, 0x63, 0x0d, 0x4a, 0x76, 0x51, 0x8d, 0xda, 0xae, + 0x98, 0x48, 0x5b, 0x52, 0x14, 0x1d, 0x35, 0x67, 0x96, 0x42, 0xb7, 0xe3, 0xd2, 0xde, 0x00, 0x2c, + 0xe7, 0x0b, 0x99, 0xe5, 0x08, 0x5d, 0x44, 0xd8, 0x2e, 0x4e, 0xe6, 0x5d, 0xd9, 0x83, 0xe1, 0xdf, + 0x14, 0x27, 0x50, 0x92, 0xb4, 0xf3, 0x2b, 0x46, 0xc4, 0x94, 0xf7, 0x88, 0xd6, 0xc4, 0xf4, 0x5c, + 0x62, 0x9e, 0x1f, 0x31, 0x07, 0xcb, 0x2c, 0x24, 0x2a, 0xac, 0xac, 0xd1, 0xda, 0x96, 0x8f, 0x3c, + 0x89, 0x56, 0x3f, 0xd1, 0x42, 0x65, 0x85, 0x16, 0xa2, 0xc7, 0x9c, 0x4e, 0x22, 0x67, 0x90, 0x3d, + 0x85, 0x2f, 0x40, 0x08, 0x15, 0x75, 0xab, 0xa7, 0xd5, 0x76, 0xd9, 0x14, 0xaf, 0x70, 0x5c, 0x91, + 0xbd, 0x0e, 0xe7, 0xb0, 0x4e, 0x94, 0x81, 0xbf, 0xc9, 0xd2, 0x60, 0x1b, 0x6b, 0xd9, 0x0c, 0x4e, + 0xbf, 0x62, 0xa0, 0x52, 0x38, 0x87, 0xec, 0x34, 0x77, 0xf0, 0x9d, 0x83, 0xa5, 0xb3, 0xc3, 0x21, + 0xae, 0xcd, 0xa0, 0x13, 0x64, 0xb3, 0x80, 0x85, 0xd8, 0x5d, 0x1e, 0x32, 0xe3, 0xac, 0x55, 0xc7, + 0xb3, 0x16, 0xed, 0x26, 0xfd, 0x32, 0x87, 0xc4, 0x24, 0x8f, 0x92, 0x2d, 0x35, 0xa6, 0x56, 0x9c, + 0x72, 0x69, 0xdf, 0x79, 0xe8, 0x23, 0x94, 0xda, 0xdb, 0x71, 0x4c, 0x18, 0x43, 0x27, 0x94, 0x10, + 0xcf, 0xc2, 0x7b, 0xb4, 0xf8, 0x11, 0xd9, 0xc4, 0xef, 0x01, 0xd6, 0xbc, 0x21, 0x86, 0x84, 0x73, + 0x8a, 0x1a, 0xd4, 0x71, 0x2c, 0x35, 0x07, 0xe7, 0xb0, 0x09, 0xe4, 0x61, 0x67, 0x87, 0x0d, 0xe8, + 0x1a, 0x97, 0xba, 0xd5, 0xbb, 0xa4, 0x62, 0xf5, 0x4e, 0x9c, 0x5d, 0xc6, 0xb9, 0xd4, 0x39, 0x76, + 0x90, 0x67, 0x8a, 0xf2, 0xfd, 0xc3, 0x34, 0x0f, 0x33, 0x17, 0xf8, 0xe1, 0x8a, 0x09, 0xb5, 0x94, + 0xe6, 0x16, 0xa4, 0x90, 0xce, 0xe0, 0xb0, 0xf2, 0x78, 0xe0, 0x1e, 0x1c, 0xa9, 0xe3, 0x62, 0xd5, + 0xa5, 0x44, 0x8f, 0xfd, 0x36, 0xee, 0xa8, 0x2d, 0x64, 0xcd, 0x92, 0xff, 0xc7, 0x60, 0x09, 0x9b, + 0x08, 0xff, 0xe0, 0x30, 0x96, 0x54, 0xca, 0x18, 0x32, 0x3b, 0x49, 0x81, 0x91, 0x8e, 0xcd, 0x4a, + 0xd2, 0xc7, 0xe9, 0x1a, 0xa5, 0x30, 0xe9, 0x5f, 0x26, 0xb0, 0x36, 0x13, 0xbc, 0xbf, 0xff, 0x74, + 0xd8, 0xc4, 0xef, 0xc3, 0x21, 0xd0, 0xed, 0x7a, 0xfd, 0xc1, 0x64, 0xde, 0xa1, 0x5c, 0xc6, 0x1d, + 0x5a, 0x61, 0xcf, 0xa7, 0x55, 0x24, 0xec, 0xa1, 0x51, 0xef, 0x56, 0x3e, 0x21, 0xe3, 0x94, 0xb3, + 0xed, 0x45, 0x60, 0xe1, 0xb0, 0xef, 0xf2, 0x3e, 0xc0, 0x1e, 0xe4, 0x67, 0x2d, 0x04, 0xab, 0x1e, + 0x33, 0xd7, 0xe8, 0x28, 0xd6, 0x08, 0x74, 0x6d, 0xd1, 0x99, 0x3b, 0x9f, 0x55, 0xc7, 0xbb, 0xcd, + 0xce, 0x25, 0x4e, 0x84, 0xda, 0xdb, 0x25, 0xe8, 0x57, 0x16, 0xeb, 0xa3, 0x1b, 0xa4, 0xd1, 0x55, + 0x23, 0xa3, 0xb4, 0x1b, 0xce, 0xa5, 0x9c, 0x1a, 0x87, 0xd9, 0x6a, 0x41, 0x39, 0xf5, 0xb7, 0xce, + 0x88, 0xb0, 0x1a, 0x97, 0x8d, 0x47, 0x46, 0x89, 0xd3, 0x94, 0x3d, 0xd2, 0x02, 0x1f, 0x1c, 0xda, + 0xf4, 0x02, 0xed, 0x97, 0xfb, 0x5e, 0x7c, 0xe6, 0xae, 0x51, 0x7c, 0xff, 0xb2, 0x8c, 0xf7, 0x5e, + 0x5b, 0xf4, 0xf0, 0x0c, 0x0c, 0x42, 0x0c, 0x3a, 0xe1, 0x2e, 0x9c, 0x09, 0xed, 0xc8, 0xd1, 0x61, + 0x2d, 0x6e, 0xee, 0x84, 0xb7, 0xc1, 0xae, 0xb9, 0xde, 0x01, 0xc7, 0x7c, 0x0f, 0x48, 0xb4, 0x77, + 0xaf, 0xfa, 0x7d, 0xd8, 0x22, 0x79, 0x5e, 0x18, 0x0d, 0xdf, 0x91, 0xfb, 0x45, 0xcb, 0x8b, 0x92, + 0xd1, 0xaf, 0x0b, 0x9d, 0xa5, 0x58, 0xf3, 0x3b, 0x61, 0x04, 0xac, 0x9a, 0x6b, 0x14, 0x6c, 0x9a, + 0x6b, 0x13, 0xe4, 0x6b, 0xae, 0xb8, 0xc8, 0x17, 0x5d, 0x83, 0x60, 0xd6, 0x5c, 0x06, 0x30, 0x62, + 0xbe, 0x06, 0xca, 0xb7, 0x71, 0x03, 0xe5, 0xda, 0x96, 0xf7, 0x8b, 0x7f, 0x0d, 0x19, 0xa9, 0xed, + 0x3a, 0x37, 0xc2, 0x16, 0xfd, 0x25, 0x84, 0x94, 0x72, 0x57, 0xaa, 0xac, 0xe3, 0xc1, 0x44, 0x6c, + 0x72, 0x5f, 0xc2, 0x39, 0x84, 0x61, 0xe2, 0x4c, 0x43, 0x1e, 0xcd, 0x4c, 0xf6, 0x06, 0xc2, 0x88, + 0xe4, 0x59, 0x26, 0xda, 0x0f, 0x2c, 0x59, 0x83, 0x5b, 0x4b, 0xcc, 0x4e, 0x0f, 0xe5, 0x71, 0x7d, + 0x23, 0x96, 0x91, 0x86, 0xf5, 0x36, 0xde, 0xbb, 0xf1, 0x0a, 0xbb, 0x07, 0x91, 0xc2, 0x4c, 0x48, + 0x4b, 0xbc, 0x5b, 0x10, 0x37, 0x27, 0xd8, 0x7a, 0x43, 0x99, 0x1f, 0x7b, 0x8e, 0x38, 0x15, 0xc6, + 0xa2, 0x43, 0xe2, 0x7e, 0xed, 0x4a, 0x90, 0x6a, 0xb1, 0x5f, 0x2c, 0x21, 0x9e, 0x3f, 0xd3, 0x33, + 0x34, 0xe2, 0xc7, 0xec, 0xcb, 0xcd, 0x9f, 0x28, 0x8f, 0x60, 0x2f, 0xe2, 0xac, 0x5d, 0x99, 0xb4, + 0x2b, 0x51, 0x2a, 0x39, 0x74, 0x62, 0xaf, 0x03, 0x8f, 0xd3, 0xc5, 0xb4, 0x8b, 0x2b, 0x36, 0x89, + 0xa3, 0xae, 0x3c, 0xb7, 0x52, 0xa5, 0xd1, 0x47, 0x7c, 0x7a, 0x15, 0x71, 0x57, 0x6f, 0x07, 0x98, + 0xc7, 0xfa, 0x25, 0xdf, 0x64, 0x9c, 0x95, 0xe1, 0x73, 0x22, 0x65, 0xf3, 0x43, 0xba, 0x84, 0xd2, + 0x64, 0x31, 0xa5, 0xc1, 0x19, 0x72, 0x1a, 0xa5, 0xc9, 0xc5, 0x5a, 0x6a, 0xfb, 0x10, 0xae, 0xec, + 0xe1, 0x73, 0xbc, 0x66, 0x3a, 0x25, 0x27, 0xee, 0x6f, 0xfb, 0xda, 0x66, 0xb7, 0x5e, 0xcc, 0xee, + 0x97, 0xe4, 0x27, 0xe6, 0x70, 0x3a, 0x4d, 0x6a, 0x9c, 0x92, 0xa3, 0x47, 0xcb, 0xd1, 0x98, 0x91, + 0xa3, 0xc1, 0x7e, 0xad, 0xc8, 0x0f, 0x65, 0x93, 0x43, 0x7c, 0x57, 0x71, 0x95, 0x33, 0x87, 0xb4, + 0x4f, 0xc4, 0x75, 0xf1, 0xd9, 0x5a, 0x3e, 0xdb, 0x0b, 0xd7, 0xa5, 0xcf, 0xf6, 0xc2, 0x3c, 0xb0, + 0xbb, 0xbd, 0xe2, 0x6c, 0x2f, 0x20, 0x6b, 0xed, 0xae, 0x16, 0x67, 0x7b, 0xc1, 0x21, 0xce, 0xf6, + 0xe2, 0xc3, 0xe7, 0x7a, 0x91, 0xff, 0x30, 0xf8, 0x73, 0x43, 0x73, 0x64, 0x3d, 0xf3, 0xdb, 0xd4, + 0x22, 0xa3, 0x7f, 0x5d, 0xc8, 0x80, 0x61, 0xe2, 0xf4, 0x39, 0x85, 0xe6, 0xe0, 0xdc, 0x65, 0x42, + 0xdf, 0x6c, 0x94, 0x64, 0xc7, 0x4f, 0xcd, 0x47, 0x0a, 0x67, 0x3d, 0xca, 0x16, 0x39, 0x2e, 0xfe, + 0x40, 0xf0, 0x9c, 0x74, 0x5a, 0x05, 0x6b, 0x5f, 0xfa, 0x37, 0xf5, 0x05, 0xc3, 0xfc, 0xed, 0x6f, + 0xd0, 0xef, 0xa9, 0x85, 0x19, 0x7d, 0x21, 0x7c, 0xbe, 0xfe, 0x57, 0xfa, 0xc2, 0xf6, 0xb7, 0xf6, + 0x85, 0xb8, 0x7d, 0x7a, 0xf1, 0xe2, 0x42, 0x9d, 0x4b, 0x27, 0x79, 0xed, 0xd5, 0x21, 0xa3, 0x37, + 0x17, 0x65, 0x5a, 0xe4, 0x11, 0x9a, 0x46, 0xa8, 0x7d, 0xdf, 0xfe, 0xb5, 0x22, 0xe5, 0x8e, 0x05, + 0x1f, 0x52, 0x0c, 0x72, 0xf5, 0xb7, 0x7f, 0xbd, 0xfb, 0xa1, 0x5e, 0x83, 0xc5, 0x16, 0xfa, 0xe8, + 0x9a, 0xbd, 0x50, 0xb1, 0x1b, 0xbe, 0xb0, 0x17, 0xa4, 0x1d, 0xba, 0xe6, 0x87, 0xe4, 0x19, 0xc4, + 0x97, 0x90, 0xe6, 0xe0, 0xd4, 0x93, 0xa4, 0xf1, 0x56, 0xf2, 0xbf, 0x30, 0xb4, 0x03, 0x82, 0x0f, + 0x61, 0x6c, 0x5a, 0x8b, 0xf4, 0x04, 0x13, 0xb9, 0xb6, 0xd0, 0x69, 0x65, 0xe0, 0x0b, 0x09, 0xcd, + 0x97, 0xf2, 0x38, 0xeb, 0x7f, 0x20, 0x62, 0x76, 0xcd, 0xa8, 0x59, 0x8f, 0x79, 0x15, 0xef, 0x46, + 0x7f, 0xaf, 0x1b, 0x6e, 0x58, 0x6b, 0x12, 0x5a, 0x26, 0xa1, 0xf1, 0x8a, 0x83, 0x75, 0x06, 0xcb, + 0xde, 0xd9, 0xa4, 0xb7, 0x60, 0xbd, 0x47, 0xc2, 0xe9, 0x6c, 0x4a, 0xfa, 0xa1, 0x3c, 0xee, 0x82, + 0x10, 0xca, 0xb0, 0x96, 0x19, 0xd7, 0xee, 0xa5, 0x5d, 0x91, 0x8a, 0x51, 0x94, 0x10, 0x9c, 0x81, + 0x65, 0x98, 0xc8, 0xdf, 0x72, 0x93, 0xd1, 0x19, 0x3a, 0xe5, 0x2d, 0xdb, 0x0d, 0xa5, 0x86, 0xa0, + 0x67, 0xcb, 0x52, 0xe4, 0x7a, 0x07, 0x93, 0x77, 0x5b, 0x2f, 0x26, 0x39, 0x33, 0x27, 0xa3, 0x3f, + 0x00, 0xf6, 0xf8, 0x1f, 0x8d, 0x2c, 0x54, 0xe6, 0x12, 0x67, 0x4d, 0xba, 0xb4, 0xa3, 0x23, 0x72, + 0xf6, 0xf6, 0x11, 0x1e, 0xaf, 0x87, 0xfc, 0x89, 0x6e, 0x80, 0xef, 0x1e, 0xe3, 0x1d, 0xb9, 0x8e, + 0x42, 0xb0, 0xbc, 0x30, 0x12, 0x3a, 0x66, 0x7c, 0x14, 0x66, 0x22, 0xd7, 0x6e, 0x25, 0xce, 0x5d, + 0x2e, 0x14, 0x12, 0xe9, 0xce, 0xa1, 0x9e, 0xc6, 0xee, 0x28, 0x72, 0x89, 0xe6, 0x50, 0x1e, 0xf2, + 0x97, 0x90, 0xdc, 0x47, 0xb9, 0x71, 0xa3, 0x26, 0x35, 0x36, 0x53, 0xee, 0x6b, 0xdc, 0x75, 0x59, + 0xbb, 0x9e, 0x86, 0xd2, 0x90, 0x01, 0xf3, 0x72, 0x51, 0x59, 0x72, 0x36, 0x97, 0xf3, 0xba, 0x0c, + 0x75, 0x43, 0x47, 0x86, 0xb6, 0x0e, 0xed, 0x4b, 0x50, 0xae, 0x05, 0x55, 0x60, 0x0d, 0xcb, 0x7c, + 0xdf, 0x78, 0xbe, 0x56, 0x82, 0x59, 0xf0, 0x0c, 0xc2, 0xb2, 0x50, 0x70, 0x08, 0x63, 0x58, 0x84, + 0x06, 0xa2, 0x46, 0xdb, 0xb7, 0xbc, 0x58, 0x2e, 0xd4, 0xd9, 0xbd, 0xce, 0x1c, 0x57, 0x56, 0xd3, + 0xfa, 0x35, 0x20, 0xcf, 0xe0, 0x9d, 0xd4, 0xbf, 0xa1, 0x99, 0x36, 0x94, 0x8d, 0xd8, 0x6a, 0x55, + 0x6c, 0x92, 0x37, 0x38, 0x6c, 0x19, 0x0b, 0xae, 0xdb, 0xbb, 0x6e, 0x65, 0x76, 0xcc, 0x84, 0xfe, + 0x6f, 0x90, 0xad, 0x87, 0xd4, 0x1d, 0xdc, 0x9c, 0x8f, 0xdb, 0x64, 0xaf, 0x92, 0xaa, 0x70, 0x1c, + 0x94, 0xfb, 0x73, 0xc3, 0xa5, 0xe9, 0x53, 0x43, 0x55, 0x67, 0x8d, 0xaa, 0xa2, 0x6f, 0x1a, 0xb5, + 0x58, 0xe8, 0xbc, 0x52, 0xc8, 0x10, 0x1c, 0x55, 0xc8, 0x26, 0x9b, 0x3b, 0x6c, 0xf8, 0xd9, 0x81, + 0xd0, 0x49, 0xb3, 0x05, 0xdc, 0x21, 0x7d, 0x70, 0x54, 0x32, 0xda, 0xc5, 0xf9, 0x89, 0x8a, 0x42, + 0xbd, 0x23, 0x10, 0x07, 0x87, 0xce, 0x59, 0x6b, 0xaf, 0xb6, 0xe4, 0x23, 0x27, 0x9f, 0x1b, 0x6e, + 0xc6, 0xf8, 0xb7, 0x84, 0x03, 0x9c, 0xca, 0xc7, 0xf6, 0x35, 0xec, 0x8a, 0x47, 0x68, 0xe6, 0x5c, + 0xab, 0x79, 0xcd, 0xb6, 0xc1, 0x09, 0xc1, 0x75, 0x74, 0xaa, 0x38, 0xf9, 0xbd, 0x1b, 0xc2, 0x63, + 0xb2, 0xc9, 0x32, 0x27, 0x9c, 0x47, 0x69, 0x43, 0x06, 0xd9, 0xa4, 0x3c, 0xc3, 0x29, 0x4f, 0x91, + 0x55, 0x25, 0xe5, 0x49, 0x71, 0x8f, 0xf3, 0x8a, 0x4a, 0x8d, 0xcf, 0xd7, 0xd9, 0x7b, 0x40, 0x5e, + 0x72, 0x0a, 0x16, 0x65, 0x48, 0x41, 0x77, 0x22, 0xe7, 0x22, 0x29, 0x66, 0x7b, 0x27, 0xe4, 0x20, + 0xe4, 0x37, 0x69, 0x37, 0x1f, 0x9f, 0xc1, 0x36, 0xa7, 0xe3, 0xbc, 0xc4, 0x77, 0x6f, 0x26, 0xcf, + 0x74, 0x2d, 0x42, 0x08, 0x78, 0x11, 0x02, 0xab, 0x9c, 0x7a, 0xd9, 0xe7, 0xb7, 0x85, 0x2e, 0xd8, + 0x0d, 0xdb, 0x46, 0xeb, 0x86, 0x71, 0xbe, 0x9d, 0x0f, 0x15, 0xaa, 0x1a, 0xd2, 0x37, 0x0d, 0x93, + 0x26, 0xef, 0xed, 0xc8, 0x5a, 0x98, 0xa3, 0x5f, 0x72, 0x1e, 0x47, 0x17, 0x88, 0x9d, 0x45, 0x8c, + 0x4d, 0xe5, 0xd8, 0x57, 0x06, 0x71, 0x3e, 0x5f, 0x2a, 0x37, 0xc2, 0xd8, 0xba, 0xf0, 0x3b, 0x48, + 0xbf, 0xe9, 0xec, 0x99, 0x41, 0xbb, 0x7d, 0xd4, 0x13, 0x3a, 0x44, 0xbc, 0xbf, 0xe8, 0x4f, 0x7f, + 0xa9, 0x53, 0x17, 0x1a, 0xa3, 0xf2, 0xf3, 0xb5, 0x7d, 0xd8, 0x8b, 0xca, 0x9c, 0x3a, 0x47, 0x80, + 0x76, 0xa0, 0xd3, 0xd9, 0x34, 0xe4, 0x3b, 0xb3, 0x71, 0x7c, 0x36, 0x2a, 0x25, 0x87, 0x0f, 0xd8, + 0xa3, 0xa3, 0x16, 0xc5, 0xe1, 0xaf, 0xe6, 0x9d, 0xbb, 0x86, 0xee, 0x39, 0x51, 0xf3, 0xa1, 0x8d, + 0xb1, 0x89, 0x31, 0x9c, 0x6d, 0x83, 0x1b, 0xa4, 0x1a, 0x0d, 0x66, 0x77, 0xd1, 0x6d, 0xa9, 0xe9, + 0xfa, 0x60, 0x59, 0x26, 0xed, 0x36, 0x6a, 0xda, 0x93, 0x5d, 0x86, 0x94, 0x28, 0xa0, 0xa7, 0x73, + 0xc7, 0x2a, 0xb6, 0x70, 0xd1, 0x54, 0xbd, 0xbb, 0xa3, 0x13, 0x0e, 0x29, 0x12, 0xc2, 0x1f, 0x67, + 0xf8, 0x5d, 0x89, 0x90, 0x55, 0xaa, 0xc6, 0x99, 0xd2, 0xa4, 0xed, 0x51, 0xa0, 0x7c, 0x4d, 0xdd, + 0xd9, 0x8e, 0x26, 0xff, 0xd6, 0xd0, 0xf1, 0x6f, 0xff, 0x9a, 0xcf, 0x7b, 0x9b, 0xc5, 0xbe, 0xa9, + 0x23, 0x43, 0x34, 0x9a, 0xb8, 0xf5, 0x77, 0x49, 0xb9, 0x11, 0x27, 0x4a, 0x4d, 0xba, 0xb0, 0x55, + 0xdc, 0xe7, 0x9a, 0x1c, 0x07, 0xbf, 0x88, 0xf2, 0x5a, 0x9c, 0x26, 0x2f, 0xff, 0xe2, 0x18, 0xf2, + 0x79, 0x8b, 0xd2, 0x63, 0xa7, 0xb7, 0x30, 0x39, 0x9e, 0xe8, 0x96, 0xd8, 0x47, 0x13, 0x6e, 0x5d, + 0x32, 0x55, 0x1d, 0xc2, 0xf1, 0x91, 0x44, 0x4d, 0x82, 0x77, 0x9b, 0x66, 0xd3, 0xe9, 0x98, 0xa4, + 0x1d, 0x1d, 0xa6, 0x61, 0x67, 0x68, 0x9f, 0x79, 0xed, 0xc7, 0xbc, 0x07, 0x57, 0x9f, 0xd2, 0x4e, + 0x1d, 0xe7, 0xd3, 0x9a, 0x53, 0xb5, 0x53, 0x59, 0x6e, 0x37, 0x38, 0x7d, 0x03, 0x59, 0x13, 0xb4, + 0x8b, 0x35, 0x49, 0x29, 0x1d, 0xd3, 0x74, 0x53, 0xa5, 0x59, 0xc4, 0x7f, 0xf2, 0xf9, 0x1b, 0xb3, + 0xd0, 0x4d, 0x11, 0xfd, 0x96, 0xb2, 0x97, 0xa2, 0xfb, 0x4b, 0x7a, 0xd1, 0x22, 0xf7, 0x15, 0x62, + 0x75, 0xb1, 0x91, 0x63, 0xd0, 0x99, 0x80, 0xb0, 0x76, 0x9f, 0xb8, 0x62, 0x10, 0xb4, 0x95, 0xac, + 0x3a, 0x39, 0x74, 0x21, 0x73, 0xac, 0xac, 0x4e, 0xc7, 0x67, 0x90, 0x54, 0xc5, 0x9e, 0x3c, 0xcf, + 0x57, 0x08, 0x25, 0x0f, 0x23, 0xcd, 0xd6, 0x8b, 0x3d, 0x5c, 0x22, 0x8f, 0x3d, 0x09, 0xa1, 0xd1, + 0x21, 0x2b, 0x4e, 0xc9, 0x73, 0x7b, 0x8e, 0xaa, 0x92, 0x1c, 0x61, 0x87, 0xd2, 0xee, 0x1d, 0xa4, + 0xb5, 0xa3, 0x39, 0xf2, 0x6c, 0xd7, 0x12, 0x1a, 0xd1, 0x48, 0x91, 0xf2, 0xac, 0x63, 0x52, 0xb6, + 0x0b, 0x9a, 0xd6, 0x23, 0xd5, 0x3d, 0x19, 0x7c, 0x60, 0xf7, 0x03, 0x61, 0x83, 0x94, 0xa5, 0x7c, + 0xe4, 0x7f, 0x20, 0x64, 0x78, 0x61, 0x3d, 0xba, 0x67, 0x08, 0xca, 0x20, 0xf6, 0x48, 0x5e, 0xb2, + 0xc3, 0x6f, 0x36, 0x8d, 0x71, 0xec, 0x7d, 0x25, 0x75, 0x4e, 0xd3, 0xab, 0xad, 0x8c, 0x59, 0x96, + 0x5c, 0x40, 0x0e, 0x64, 0xab, 0xb6, 0xea, 0x88, 0xa1, 0x38, 0x1f, 0x1b, 0xa6, 0x7d, 0x1b, 0x93, + 0xdf, 0x34, 0xe3, 0x04, 0xb6, 0x92, 0x06, 0x83, 0x66, 0x25, 0xc4, 0xc8, 0xfc, 0x48, 0x4e, 0xfa, + 0x64, 0x95, 0x3a, 0xda, 0xb8, 0xd9, 0x7e, 0xb7, 0x23, 0xb9, 0x27, 0x53, 0x94, 0x38, 0x97, 0xf7, + 0x87, 0xcd, 0x0e, 0x1b, 0x69, 0x6f, 0x1e, 0x6b, 0xb7, 0xfc, 0xe9, 0x3d, 0x73, 0x6a, 0x49, 0xb2, + 0x5f, 0xd3, 0xf1, 0x51, 0x32, 0x77, 0xd2, 0x79, 0xe9, 0x8c, 0x33, 0x30, 0x19, 0x3a, 0xbe, 0x74, + 0xfc, 0xcb, 0x9f, 0x14, 0x8c, 0x9e, 0x3e, 0xf4, 0x13, 0x30, 0x22, 0x87, 0xb6, 0x47, 0x7d, 0xb3, + 0x71, 0xb3, 0xd8, 0xcd, 0x65, 0xf7, 0x3a, 0xe8, 0x24, 0x10, 0xe8, 0x4c, 0xda, 0x99, 0x40, 0xfd, + 0x94, 0x33, 0x81, 0x15, 0x70, 0x12, 0x4a, 0xa0, 0x01, 0xde, 0xe0, 0x3d, 0x63, 0x59, 0x24, 0x3b, + 0xd3, 0xed, 0xdd, 0x6c, 0x85, 0xa3, 0x30, 0xbd, 0xbf, 0x5c, 0x2d, 0x51, 0xe6, 0xd0, 0x7e, 0x39, + 0xf5, 0x71, 0xd6, 0xfb, 0xfc, 0x12, 0x69, 0x3b, 0x72, 0xda, 0xb0, 0x23, 0x46, 0x96, 0x6c, 0xf3, + 0xd0, 0xe7, 0x7b, 0x0e, 0x94, 0x92, 0xe8, 0x6c, 0x7a, 0x0a, 0x76, 0x86, 0xc3, 0x07, 0x68, 0x0d, + 0xb7, 0xfe, 0x82, 0x1a, 0x0c, 0x6c, 0x4b, 0xf9, 0x5a, 0x84, 0x6f, 0x86, 0x8f, 0xfd, 0x12, 0x1f, + 0x5b, 0xd2, 0x87, 0xac, 0xaf, 0x95, 0xfc, 0x42, 0x3b, 0x0b, 0x47, 0x6b, 0x35, 0x0d, 0x38, 0x67, + 0x5d, 0xcd, 0xb3, 0x48, 0x91, 0xb6, 0xd7, 0xf1, 0xff, 0x4b, 0xdb, 0xfb, 0xc0, 0x47, 0x51, 0x9d, + 0x7b, 0xe3, 0xcf, 0x6c, 0x36, 0xcb, 0xb2, 0x2c, 0xeb, 0x12, 0xd7, 0x34, 0xd2, 0x14, 0x87, 0x71, + 0x58, 0x96, 0xcd, 0x92, 0x5d, 0xd3, 0x94, 0xe6, 0x62, 0x8a, 0x9b, 0xcd, 0x26, 0x6c, 0x96, 0x90, + 0xa6, 0x1b, 0xa4, 0x29, 0xe5, 0xda, 0x31, 0x24, 0xb3, 0x10, 0x12, 0xb2, 0x8d, 0x31, 0x4d, 0xb9, + 0x79, 0x71, 0x93, 0x00, 0x46, 0x44, 0x88, 0x80, 0x96, 0xf6, 0xda, 0xbe, 0xde, 0x5b, 0x6b, 0x11, + 0xff, 0x45, 0x4a, 0x29, 0xa5, 0xd4, 0xa6, 0x94, 0xeb, 0x45, 0xca, 0xf5, 0x06, 0xa4, 0x14, 0x2d, + 0x55, 0xa4, 0x54, 0x11, 0x51, 0x29, 0xa5, 0x16, 0x62, 0xc8, 0xfc, 0x9e, 0xe7, 0x9c, 0xd9, 0x3f, + 0x09, 0x60, 0xdb, 0xfb, 0xde, 0x1f, 0x7c, 0x26, 0x33, 0x7b, 0xe6, 0xcc, 0xf9, 0x7f, 0x9e, 0xf3, + 0x9c, 0xe7, 0x3c, 0xcf, 0xf7, 0x79, 0x32, 0xa9, 0x33, 0xb6, 0xc9, 0x19, 0xa8, 0xde, 0xc8, 0xce, + 0xd7, 0x4f, 0x28, 0x64, 0xc7, 0x60, 0x8d, 0x32, 0x54, 0xf6, 0xe1, 0x27, 0x95, 0xb4, 0x5e, 0x1a, + 0x79, 0x89, 0xd0, 0xad, 0xb9, 0x97, 0xee, 0x39, 0xb3, 0xdd, 0x38, 0x43, 0x5c, 0xa4, 0x45, 0xef, + 0x05, 0x1f, 0xe1, 0xf4, 0xc8, 0x65, 0xbf, 0xf9, 0x8f, 0xdf, 0x1c, 0x0c, 0x6f, 0x6a, 0xa6, 0xb5, + 0x8b, 0xcf, 0xd4, 0xee, 0x96, 0x5c, 0x29, 0x73, 0x4b, 0x9c, 0xa3, 0x1e, 0x69, 0x2f, 0x86, 0xe3, + 0x4d, 0xd6, 0xc4, 0xcc, 0x25, 0xbd, 0x62, 0xb6, 0xfe, 0xe5, 0x5c, 0x73, 0xfd, 0xc3, 0x36, 0x31, + 0x1f, 0x61, 0xeb, 0xa6, 0x7d, 0x5a, 0x23, 0x71, 0x6a, 0x4c, 0x0f, 0x2f, 0x43, 0x35, 0x39, 0x2b, + 0xdb, 0x40, 0x59, 0x49, 0x16, 0x09, 0x51, 0xab, 0xbe, 0x6a, 0x6d, 0x25, 0x6d, 0x39, 0x29, 0x53, + 0xb6, 0x3a, 0xb9, 0xc5, 0xd4, 0xa0, 0x0c, 0x8a, 0x82, 0xf9, 0xdb, 0xfb, 0x31, 0xaf, 0xe6, 0xf4, + 0x58, 0x21, 0x0a, 0xc5, 0xd1, 0x64, 0xe5, 0x7c, 0xe5, 0xa4, 0x7f, 0x35, 0x43, 0x84, 0x64, 0x2a, + 0x76, 0xa6, 0x05, 0x98, 0x11, 0x15, 0xed, 0x85, 0x2e, 0x72, 0x57, 0x68, 0x89, 0xd2, 0x6a, 0x35, + 0x11, 0xf9, 0x37, 0x50, 0xd3, 0xbf, 0x37, 0x47, 0xba, 0xf7, 0x76, 0xab, 0x4f, 0x28, 0xfa, 0x0c, + 0x26, 0xf4, 0x29, 0x92, 0x44, 0xd3, 0x89, 0x2b, 0x9f, 0x7d, 0xab, 0xa0, 0x6c, 0x68, 0xe4, 0x34, + 0xc9, 0x08, 0x18, 0x07, 0x9e, 0x59, 0xb5, 0x89, 0x66, 0xec, 0x2e, 0xdc, 0x87, 0x1e, 0xed, 0x89, + 0xdc, 0xbf, 0xfb, 0x7e, 0xf5, 0x6d, 0x71, 0x9c, 0xbe, 0x0e, 0xeb, 0xb6, 0xac, 0x57, 0x9d, 0x65, + 0x1e, 0xe2, 0xba, 0xa3, 0x57, 0x9d, 0xe0, 0x0a, 0xb8, 0x8f, 0xa2, 0x13, 0xdc, 0x27, 0x52, 0xb2, + 0xaa, 0xa2, 0x02, 0xb9, 0x84, 0xac, 0xb5, 0xae, 0x8f, 0xc1, 0xa2, 0xda, 0xa5, 0x19, 0xb0, 0x55, + 0x66, 0x16, 0x51, 0x23, 0x2b, 0x66, 0x81, 0x32, 0x0b, 0xa9, 0xb6, 0x91, 0x46, 0x5a, 0xc9, 0x7b, + 0x20, 0x20, 0x23, 0x78, 0x63, 0x4d, 0xcf, 0xae, 0xd5, 0x75, 0xd6, 0x58, 0xc7, 0xad, 0x7e, 0xd8, + 0xe2, 0xca, 0x08, 0x94, 0x2a, 0x86, 0x76, 0x4d, 0x0a, 0xa7, 0xeb, 0x66, 0x05, 0x0a, 0x42, 0xe0, + 0xcb, 0xe0, 0xab, 0x42, 0xba, 0x8c, 0x69, 0xa4, 0x80, 0x97, 0x14, 0x77, 0xc9, 0x69, 0xd6, 0x90, + 0x7c, 0x76, 0xe1, 0x3c, 0xe5, 0xda, 0xbe, 0xf9, 0x63, 0xe2, 0xb4, 0xea, 0x28, 0x5c, 0x27, 0x19, + 0x37, 0x59, 0x82, 0xf3, 0xab, 0xea, 0x2a, 0x99, 0x6a, 0x95, 0xab, 0x51, 0x3f, 0x67, 0x2f, 0x8a, + 0x09, 0x64, 0x8d, 0xad, 0x9a, 0x99, 0xb6, 0xe7, 0x04, 0xd5, 0xa5, 0x53, 0x04, 0x0b, 0xd3, 0xd6, + 0x9d, 0x97, 0x36, 0x82, 0x89, 0x86, 0xac, 0xf5, 0x4e, 0x40, 0x8a, 0x7b, 0x46, 0x01, 0x83, 0x8f, + 0xb4, 0x20, 0xb5, 0x75, 0x34, 0xdb, 0x84, 0x60, 0xcc, 0x3e, 0x1a, 0x33, 0x89, 0x5b, 0x74, 0xb0, + 0xb8, 0x51, 0x8c, 0x95, 0x4f, 0x3a, 0xee, 0x19, 0x61, 0x71, 0x3e, 0x49, 0x9c, 0xcf, 0x3e, 0x19, + 0x33, 0xeb, 0x2b, 0x63, 0x2d, 0xc6, 0x9a, 0x2d, 0x7a, 0x60, 0xaf, 0x6a, 0xc2, 0xbf, 0x5b, 0xa3, + 0xb9, 0x0c, 0x5b, 0x8b, 0x2c, 0xbf, 0xad, 0x74, 0x26, 0x8c, 0x3d, 0x61, 0xa7, 0x55, 0x9b, 0x64, + 0x7b, 0x4a, 0x07, 0x59, 0x00, 0xe1, 0x1b, 0x92, 0xd0, 0x1a, 0x89, 0xc6, 0x29, 0xaa, 0x34, 0xb1, + 0x6d, 0x76, 0xbb, 0xeb, 0xd8, 0xc6, 0x0e, 0x58, 0x79, 0x0b, 0xb3, 0x3d, 0xad, 0x23, 0xda, 0xdf, + 0xbc, 0xf0, 0x6f, 0xa6, 0x65, 0x1f, 0x9b, 0x96, 0xf5, 0x26, 0xe4, 0xa0, 0xb2, 0x53, 0x56, 0xf2, + 0xcc, 0xba, 0x0a, 0xc7, 0x00, 0x7d, 0x89, 0xef, 0xcd, 0x58, 0xdf, 0xf5, 0xee, 0x62, 0xb8, 0x1c, + 0x99, 0xed, 0xa1, 0xbf, 0xd9, 0xde, 0x09, 0x62, 0x59, 0x55, 0x9f, 0x04, 0x6d, 0x9e, 0xa3, 0x1b, + 0xdb, 0x73, 0x99, 0x1d, 0xce, 0x02, 0x97, 0x9f, 0x69, 0xe8, 0xcf, 0xc2, 0x77, 0xe5, 0x55, 0x7d, + 0x64, 0x59, 0xdf, 0x66, 0xcc, 0x2e, 0x06, 0x0f, 0x95, 0x8f, 0x95, 0x4e, 0xac, 0xdd, 0x68, 0xf5, + 0x23, 0xb7, 0xb2, 0x2f, 0x6d, 0xb6, 0xcf, 0xaa, 0xde, 0xf8, 0xc8, 0x41, 0x4c, 0x3d, 0x1f, 0xcb, + 0x6c, 0x6c, 0xcd, 0x40, 0x0e, 0x70, 0xa9, 0xe4, 0x01, 0x7b, 0xdb, 0x08, 0x6b, 0xf9, 0x67, 0xdc, + 0xc0, 0xac, 0xe3, 0xa0, 0x96, 0x74, 0x2c, 0x0e, 0xb4, 0xba, 0x8e, 0x6c, 0x94, 0xb9, 0xf5, 0xd4, + 0x63, 0x84, 0x9f, 0x26, 0x65, 0xf2, 0xfe, 0x51, 0x9e, 0x63, 0x96, 0x2e, 0x23, 0xa3, 0xcb, 0xc3, + 0xf5, 0x68, 0x60, 0xaf, 0xe8, 0xc7, 0x9a, 0x9a, 0xa7, 0x2d, 0xc5, 0x49, 0xc7, 0xea, 0xc2, 0x5a, + 0x00, 0xd9, 0x80, 0x56, 0x23, 0xe6, 0xe6, 0x4a, 0xcf, 0x8d, 0x5a, 0x4c, 0xee, 0xef, 0x65, 0xed, + 0x15, 0x13, 0xe8, 0x84, 0x7d, 0x5a, 0x25, 0xae, 0x30, 0x13, 0x30, 0x76, 0x36, 0xf1, 0x1a, 0xcc, + 0xba, 0x12, 0xa9, 0x86, 0xb2, 0xd8, 0xed, 0x01, 0xb3, 0xda, 0xc9, 0x72, 0xad, 0xc7, 0xd5, 0x6b, + 0x22, 0xd7, 0xe8, 0xf9, 0xb7, 0x27, 0xdc, 0xb4, 0x7a, 0xdb, 0xd5, 0x29, 0x69, 0xf6, 0xbc, 0x0b, + 0xd8, 0x28, 0x78, 0x1d, 0x9f, 0x5c, 0xdc, 0x3e, 0x45, 0xb3, 0xb3, 0xef, 0xaa, 0x71, 0xe4, 0xcc, + 0x66, 0xad, 0x94, 0xe1, 0xb4, 0x26, 0x5a, 0x08, 0x39, 0x31, 0x4b, 0xf8, 0x19, 0x9c, 0x85, 0x6f, + 0xe3, 0xfa, 0x9a, 0xcb, 0xe2, 0x19, 0xd3, 0xd2, 0x32, 0xf3, 0xb4, 0x90, 0xae, 0xbd, 0x84, 0xed, + 0x65, 0x8e, 0x1a, 0xdc, 0x20, 0xaf, 0xd1, 0xfb, 0x90, 0x95, 0x55, 0x69, 0x64, 0xab, 0x7f, 0x80, + 0x69, 0xe8, 0x1e, 0x4c, 0x7d, 0x39, 0xfc, 0x0a, 0x96, 0x11, 0x5b, 0xd8, 0x6b, 0x0d, 0x75, 0x08, + 0x5f, 0x62, 0xfb, 0xb7, 0xe7, 0xd9, 0xdf, 0xdf, 0xa5, 0x76, 0x71, 0xf9, 0x0f, 0x62, 0xda, 0xf7, + 0x60, 0xdc, 0xb8, 0x02, 0x23, 0x8d, 0x0c, 0xbf, 0xc0, 0x1c, 0x95, 0x65, 0x2c, 0xcd, 0xb4, 0x26, + 0x6a, 0x3b, 0x4a, 0x1f, 0xcb, 0xe6, 0x50, 0xf9, 0xb8, 0x30, 0xb3, 0x3c, 0x54, 0xac, 0x45, 0x8c, + 0xf8, 0x4b, 0xb1, 0x09, 0x69, 0xf1, 0x33, 0x48, 0x6b, 0x8d, 0x4a, 0xa1, 0x58, 0xcd, 0x46, 0x91, + 0xb9, 0x9f, 0x64, 0x5e, 0x17, 0x94, 0xc5, 0x2c, 0x66, 0x71, 0x5a, 0x69, 0xfc, 0x7c, 0x16, 0xe1, + 0x93, 0x83, 0xce, 0xf6, 0x14, 0xb8, 0x32, 0x3c, 0x8d, 0x64, 0x21, 0xfa, 0xaa, 0x44, 0x7d, 0xd0, + 0x6a, 0xc0, 0xfd, 0x84, 0xde, 0xfe, 0x55, 0x7b, 0x3e, 0x1e, 0x21, 0x3b, 0x30, 0xbc, 0x9f, 0x66, + 0xc8, 0x3e, 0x16, 0x7d, 0xf7, 0x24, 0x56, 0xdd, 0xcb, 0xf3, 0x52, 0x07, 0x94, 0xef, 0x5c, 0x83, + 0xce, 0x6d, 0xbb, 0x16, 0x9d, 0xc3, 0x70, 0x5d, 0x17, 0xde, 0x87, 0xb4, 0xed, 0x13, 0xe8, 0x9a, + 0x2d, 0x90, 0x75, 0x2b, 0xb7, 0x62, 0xda, 0x12, 0x08, 0x30, 0xaa, 0x66, 0x4f, 0x50, 0xb5, 0x76, + 0xc8, 0xbe, 0xb1, 0xa6, 0x7b, 0x67, 0x4f, 0x82, 0xaa, 0x39, 0x0d, 0x18, 0x03, 0x29, 0x36, 0x52, + 0xb5, 0x8c, 0x74, 0xaa, 0x56, 0xc4, 0x4e, 0x15, 0x2b, 0x13, 0xf6, 0x87, 0x9f, 0x9c, 0x5f, 0x56, + 0xb8, 0xbb, 0xc5, 0x70, 0x55, 0x9e, 0x39, 0xff, 0x2f, 0x79, 0x5e, 0x4d, 0x4b, 0xbf, 0xf8, 0xe1, + 0x95, 0x61, 0x92, 0x02, 0xca, 0x2d, 0x86, 0x22, 0x8f, 0xd7, 0x50, 0xec, 0x6a, 0x31, 0xf8, 0x5d, + 0x5e, 0x43, 0x10, 0xc7, 0x05, 0xc1, 0x37, 0x14, 0xb9, 0x6f, 0x30, 0xad, 0x41, 0x66, 0xb9, 0x90, + 0x6b, 0xd9, 0xde, 0x6e, 0x0e, 0x78, 0x0d, 0x9f, 0xc7, 0x75, 0x0f, 0x63, 0x8e, 0x3a, 0x2f, 0xcc, + 0xe4, 0x78, 0xee, 0x6c, 0x2d, 0x3c, 0xe5, 0xe6, 0x16, 0x66, 0x6d, 0x12, 0x14, 0x16, 0x83, 0x8b, + 0x4b, 0x1e, 0x46, 0x56, 0x22, 0xb7, 0x5b, 0x97, 0xef, 0x85, 0x27, 0x9c, 0x61, 0x8c, 0x6d, 0xd1, + 0xd7, 0xcd, 0x63, 0xb2, 0xbe, 0x0f, 0xd4, 0x4e, 0x88, 0x74, 0x96, 0x61, 0x89, 0x9a, 0x94, 0x29, + 0x11, 0x76, 0x6e, 0x68, 0xfd, 0x34, 0xfe, 0x32, 0xee, 0x8c, 0xaf, 0x38, 0xbf, 0x37, 0x8e, 0x3b, + 0x9a, 0x38, 0xa1, 0x1f, 0xe2, 0x2a, 0x9b, 0xc5, 0xe2, 0x4d, 0x50, 0x2d, 0xb8, 0x2a, 0xe2, 0x3e, + 0x87, 0x10, 0x8c, 0xbc, 0x4c, 0x97, 0x4b, 0x93, 0xd9, 0xb9, 0x2d, 0x5f, 0x25, 0x87, 0xbf, 0xf8, + 0xa1, 0x81, 0xe1, 0xd0, 0xcc, 0x21, 0x1d, 0x98, 0x80, 0xdb, 0x86, 0xfb, 0x4b, 0x0b, 0xe3, 0x8e, + 0xef, 0x51, 0xe8, 0xbc, 0x8f, 0x7c, 0xc0, 0x1c, 0xf0, 0x18, 0xf0, 0xef, 0x3e, 0xb3, 0x11, 0xe7, + 0x6e, 0x87, 0x4c, 0x76, 0x08, 0x8d, 0xcc, 0xea, 0xad, 0xc9, 0xd9, 0x0c, 0x8e, 0x5d, 0x0f, 0xd6, + 0x1b, 0x9c, 0xa5, 0xae, 0x79, 0x62, 0x33, 0xae, 0xde, 0x61, 0x71, 0x42, 0xaa, 0x45, 0x31, 0x3e, + 0x95, 0x52, 0xd4, 0x4b, 0x39, 0x99, 0x4a, 0xf9, 0x93, 0x81, 0x15, 0xe7, 0x77, 0xb1, 0x52, 0x8a, + 0xe5, 0xe4, 0x31, 0xc9, 0x09, 0x4a, 0x0e, 0xc6, 0x9b, 0xa0, 0xda, 0x77, 0x3d, 0xa8, 0x1a, 0x2b, + 0xde, 0xd3, 0xb4, 0x40, 0xc1, 0x01, 0x70, 0x22, 0x0d, 0x75, 0x4e, 0xc0, 0xbd, 0xd6, 0x4c, 0x42, + 0x5e, 0x18, 0x69, 0xc3, 0xf2, 0x2e, 0x10, 0x8d, 0xec, 0xfc, 0x57, 0x53, 0x8b, 0x74, 0x19, 0x1a, + 0xb3, 0xfc, 0x7a, 0x2f, 0xec, 0x9d, 0x50, 0x31, 0x34, 0x52, 0xcf, 0x38, 0xaa, 0x1c, 0xe4, 0x61, + 0xdc, 0xa3, 0xde, 0x7e, 0x11, 0xe7, 0x40, 0xe2, 0x8d, 0xdd, 0x4b, 0x52, 0x87, 0xff, 0xc2, 0xf4, + 0xb0, 0xfe, 0xed, 0xb8, 0xfb, 0x70, 0x02, 0xe1, 0x74, 0x77, 0x76, 0x26, 0x6c, 0x66, 0x9d, 0x02, + 0xf1, 0x1d, 0x87, 0x0f, 0x9c, 0x5e, 0x97, 0x46, 0xcb, 0xa9, 0x26, 0x1f, 0xa5, 0xed, 0x3d, 0x0c, + 0x4c, 0x46, 0x33, 0xf9, 0x5a, 0x96, 0xb2, 0x5c, 0x97, 0x48, 0xd4, 0xf7, 0x30, 0x74, 0x3a, 0x35, + 0x66, 0x0f, 0x53, 0x34, 0xea, 0x2c, 0xc1, 0x80, 0xe9, 0xdc, 0x92, 0xbe, 0x83, 0x49, 0xb3, 0xfe, + 0x71, 0xa4, 0x59, 0xff, 0x58, 0xb9, 0x9e, 0x15, 0x3b, 0x61, 0x77, 0x5c, 0x87, 0x2f, 0x79, 0x4c, + 0x5f, 0xb9, 0x2f, 0xf2, 0xbd, 0xb3, 0xb3, 0x2a, 0xf0, 0x3c, 0xd8, 0xf1, 0x72, 0x78, 0x2b, 0xb0, + 0xee, 0x5d, 0xd1, 0x95, 0x9e, 0x15, 0x50, 0xbe, 0x97, 0xd7, 0xaa, 0x84, 0xc6, 0x90, 0x1c, 0xf8, + 0xcd, 0xbe, 0xdf, 0x1c, 0xb4, 0x6e, 0xd7, 0xf1, 0xf7, 0x8a, 0xc4, 0x3c, 0x70, 0x22, 0xdd, 0xca, + 0x51, 0xf3, 0x89, 0x03, 0x63, 0x54, 0xfd, 0x04, 0x59, 0xf4, 0xcc, 0xc7, 0x3c, 0xbd, 0x36, 0xda, + 0x19, 0xff, 0x62, 0x47, 0xd5, 0x66, 0xa4, 0x32, 0x0e, 0xce, 0xc1, 0x62, 0xcd, 0x68, 0x07, 0x6c, + 0x9f, 0x8b, 0x57, 0x19, 0x7b, 0x7b, 0xb4, 0x9b, 0x6c, 0x8c, 0x65, 0x3b, 0xc3, 0x14, 0x23, 0xfb, + 0xcf, 0x6e, 0xf5, 0x5c, 0x02, 0x01, 0xa1, 0xd2, 0xc8, 0x25, 0x36, 0xd7, 0x2c, 0xfb, 0x96, 0x94, + 0x3d, 0x0e, 0x61, 0x8d, 0xe9, 0x36, 0x4d, 0x77, 0x25, 0x4f, 0xfc, 0x70, 0x97, 0xeb, 0xcd, 0x87, + 0x39, 0xac, 0x3f, 0xbf, 0xec, 0x15, 0x70, 0x5f, 0x73, 0x54, 0xdf, 0x7d, 0x13, 0xbd, 0x4e, 0xbc, + 0x51, 0x90, 0x8f, 0x4e, 0x84, 0x7a, 0x92, 0xa1, 0x75, 0x69, 0xa1, 0xd9, 0xc9, 0xd0, 0x68, 0x2a, + 0x54, 0xb5, 0xd1, 0xce, 0x8e, 0x5b, 0x52, 0x06, 0xfc, 0x4a, 0x95, 0x64, 0xe0, 0x67, 0xee, 0xcc, + 0xca, 0xa3, 0x50, 0xbc, 0x31, 0x2a, 0xa7, 0xf7, 0x59, 0xe0, 0x87, 0xa1, 0x0e, 0x63, 0x46, 0xaa, + 0xef, 0x99, 0x3e, 0x84, 0x8b, 0x4e, 0x1e, 0x74, 0xdb, 0xcc, 0x0e, 0xc5, 0x92, 0xd8, 0x29, 0x72, + 0xbd, 0x08, 0x92, 0x44, 0x70, 0x7e, 0x36, 0x39, 0xa6, 0x8c, 0xfc, 0x84, 0x94, 0x9f, 0xf1, 0xbb, + 0x32, 0xda, 0x05, 0xee, 0x8b, 0xc5, 0x9f, 0xcb, 0x4f, 0x69, 0xb9, 0xf7, 0x29, 0x3f, 0xdb, 0x8f, + 0x13, 0x47, 0xc4, 0x5b, 0x27, 0xc1, 0xad, 0x55, 0xdd, 0x49, 0x63, 0x6c, 0x8e, 0xe4, 0xa6, 0x19, + 0xca, 0xd0, 0xfa, 0x4e, 0xae, 0x0e, 0x35, 0x6b, 0xe7, 0xf3, 0x4a, 0xb4, 0x73, 0x1c, 0x87, 0x44, + 0x9a, 0xa9, 0x9d, 0x4b, 0xf9, 0x8c, 0xf0, 0x70, 0x0a, 0x13, 0x94, 0x20, 0x10, 0x68, 0x17, 0xc8, + 0x2a, 0xd0, 0x4e, 0xbc, 0xf0, 0x26, 0xd1, 0xf4, 0xf0, 0x81, 0xd2, 0xf7, 0xb5, 0xf3, 0x8f, 0x30, + 0x59, 0xf6, 0x15, 0xab, 0xcc, 0xcf, 0x19, 0x3a, 0x9d, 0x80, 0xb4, 0xd4, 0xa2, 0x4b, 0xb2, 0x4e, + 0x28, 0x86, 0x60, 0xb7, 0x94, 0xc1, 0x65, 0xdb, 0xfa, 0x99, 0xf3, 0xfb, 0xc1, 0x4e, 0x2e, 0xd9, + 0xbe, 0x16, 0x8d, 0xbc, 0x5e, 0x2f, 0x16, 0xcd, 0xa1, 0xf3, 0x79, 0xa7, 0xbe, 0x27, 0x71, 0xb6, + 0x80, 0x4f, 0x6e, 0x81, 0xc2, 0xd1, 0xb8, 0x64, 0x38, 0xda, 0x78, 0xef, 0x34, 0x79, 0x0d, 0xf3, + 0x87, 0xb4, 0x5d, 0x55, 0x8f, 0x26, 0xfb, 0x2d, 0xf1, 0x26, 0x46, 0xda, 0x53, 0x7a, 0xbf, 0x59, + 0x63, 0x23, 0xfd, 0x3d, 0x6a, 0x87, 0x6b, 0x26, 0x3c, 0xa6, 0x18, 0x3a, 0xb4, 0x64, 0x9c, 0x6f, + 0xb0, 0xaf, 0x3b, 0xae, 0xf1, 0x75, 0x67, 0xda, 0xd7, 0x16, 0xd2, 0x67, 0x50, 0x67, 0xe3, 0xd7, + 0x8f, 0x27, 0xdf, 0xaf, 0x66, 0x5f, 0xce, 0xb9, 0xc6, 0x97, 0x0f, 0xa4, 0x7d, 0x99, 0xc5, 0x34, + 0x21, 0xcc, 0xec, 0x7c, 0xee, 0xa0, 0xe2, 0xc0, 0x14, 0x4e, 0x62, 0xc8, 0xea, 0xe8, 0xac, 0xf0, + 0x6a, 0xe4, 0x5b, 0x2d, 0x3a, 0x85, 0x79, 0x3b, 0xb0, 0x19, 0x69, 0xd6, 0x14, 0x6e, 0xd3, 0x3b, + 0xb2, 0xde, 0x45, 0xa7, 0x0a, 0xc8, 0x23, 0x4d, 0xed, 0xe9, 0x35, 0x87, 0xb7, 0x90, 0x84, 0xc0, + 0xe7, 0x77, 0xa6, 0xd0, 0x3e, 0x59, 0xcf, 0xdf, 0x51, 0x40, 0x7b, 0x36, 0xdc, 0xaf, 0x79, 0x90, + 0xf6, 0xfb, 0x9c, 0xb4, 0x67, 0x63, 0xeb, 0x06, 0xcd, 0xae, 0xfe, 0xc6, 0x6b, 0xdb, 0x21, 0xa9, + 0x36, 0x46, 0x8d, 0xa2, 0x3a, 0x8d, 0x2c, 0x66, 0xfb, 0x1a, 0xe0, 0x9a, 0x00, 0x6c, 0x77, 0x93, + 0xc3, 0x64, 0xd3, 0x16, 0x2e, 0x9b, 0x56, 0x73, 0x15, 0xd3, 0xd1, 0xee, 0x0e, 0x81, 0xe4, 0x9f, + 0xa9, 0xd3, 0x6b, 0x66, 0x33, 0xfc, 0xb8, 0x2e, 0x05, 0x1a, 0x4e, 0x48, 0x49, 0xb0, 0x1f, 0x1d, + 0x64, 0xe3, 0x4d, 0xd2, 0x92, 0xc0, 0x0f, 0x68, 0x3d, 0xd0, 0x46, 0x58, 0x5b, 0x3c, 0x4c, 0x72, + 0x04, 0xaf, 0xdd, 0x3b, 0x91, 0x66, 0xc0, 0xf3, 0x95, 0x6c, 0x06, 0xe4, 0xa8, 0x0c, 0xf1, 0x87, + 0x59, 0xfd, 0xa7, 0x64, 0x27, 0x77, 0x6a, 0x6c, 0xbd, 0x74, 0xce, 0xc4, 0x31, 0x32, 0x13, 0xac, + 0xee, 0x99, 0x60, 0x97, 0x9b, 0x21, 0x67, 0x94, 0xd5, 0x92, 0x9f, 0x9d, 0x75, 0x3d, 0x8b, 0xbc, + 0x51, 0x16, 0x6b, 0xbb, 0xd7, 0x90, 0x57, 0xdb, 0x5e, 0xbd, 0x91, 0xe1, 0xec, 0xae, 0xc3, 0x90, + 0x66, 0x6d, 0x98, 0xec, 0x49, 0x49, 0xe7, 0xfa, 0xca, 0x1e, 0xa2, 0x7f, 0xc8, 0xe7, 0x81, 0xd0, + 0xc4, 0xf0, 0x98, 0x98, 0xe5, 0xdd, 0x67, 0x81, 0xd9, 0x1b, 0x87, 0xf2, 0xf3, 0x60, 0xab, 0x38, + 0xae, 0x26, 0xde, 0x7a, 0x65, 0x47, 0xbc, 0xc1, 0x2a, 0xce, 0x3d, 0xfc, 0x9f, 0xa2, 0xaf, 0xd7, + 0x2a, 0x8d, 0x53, 0x2c, 0xa4, 0xd3, 0x8f, 0xb3, 0xce, 0xd3, 0x4a, 0x72, 0x78, 0xda, 0xf9, 0x09, + 0xd8, 0x42, 0x99, 0xbc, 0xf4, 0x2e, 0x0a, 0x23, 0x9b, 0x35, 0x3a, 0xeb, 0x14, 0x71, 0xef, 0xaa, + 0x90, 0x4e, 0x63, 0x1b, 0xe9, 0x1b, 0xe2, 0x5b, 0x1c, 0xf9, 0x61, 0x76, 0x56, 0x09, 0xaa, 0x85, + 0xdb, 0x54, 0xbb, 0x40, 0x11, 0x59, 0x2a, 0xe3, 0x44, 0xbf, 0xde, 0x0e, 0x99, 0x3a, 0x4e, 0x4f, + 0x0e, 0x3b, 0xc1, 0xfb, 0xaf, 0xe8, 0x41, 0x2b, 0x59, 0x09, 0x9f, 0xc1, 0xdd, 0x69, 0xb7, 0x6a, + 0x9f, 0x4e, 0x1c, 0xc9, 0x7f, 0xc1, 0x96, 0x8e, 0x82, 0x72, 0x3a, 0x5d, 0xde, 0xb4, 0x0a, 0xd8, + 0xdb, 0x77, 0x91, 0x17, 0x5e, 0xeb, 0x65, 0x76, 0x7a, 0xb4, 0x1e, 0x8f, 0x18, 0x99, 0xec, 0xca, + 0x1e, 0x5d, 0x8a, 0xfb, 0x2b, 0x87, 0x73, 0x39, 0x6c, 0x65, 0xf8, 0xab, 0x7b, 0x46, 0xda, 0xc9, + 0x52, 0x5c, 0x0d, 0x2a, 0x86, 0x6f, 0xfd, 0xda, 0x6b, 0xc1, 0xf5, 0xd5, 0x11, 0x5a, 0xaa, 0x69, + 0x89, 0xf6, 0x18, 0x79, 0x9c, 0xce, 0x9f, 0xa8, 0x4d, 0xd2, 0x4a, 0x87, 0x3d, 0x4b, 0x72, 0x82, + 0xa8, 0x9d, 0xd3, 0x23, 0xad, 0x5b, 0xe2, 0x36, 0xc7, 0x4f, 0xa6, 0xec, 0xe1, 0xae, 0x54, 0x29, + 0xe6, 0x44, 0x7c, 0xc9, 0xc0, 0xa9, 0x56, 0x78, 0x75, 0x94, 0xa4, 0x6e, 0x84, 0x15, 0x46, 0xf6, + 0x63, 0xc3, 0x38, 0x96, 0x4c, 0xcc, 0x42, 0x8b, 0x9d, 0x51, 0xb2, 0xd3, 0xac, 0xa3, 0x6c, 0xce, + 0x63, 0x9f, 0x92, 0x96, 0x2f, 0xae, 0x28, 0xa2, 0x97, 0x53, 0x20, 0xea, 0x21, 0x42, 0xdc, 0xdf, + 0x33, 0x62, 0x67, 0xfd, 0x43, 0x28, 0x03, 0x33, 0x49, 0x5b, 0x3e, 0x06, 0xf2, 0x4c, 0xed, 0xa2, + 0xa7, 0x59, 0xbb, 0xc4, 0xcf, 0xc1, 0x48, 0x9f, 0x2e, 0x81, 0xc5, 0x91, 0x86, 0xc1, 0xd1, 0x1a, + 0x8b, 0x0f, 0x74, 0xab, 0x4d, 0x24, 0xe3, 0x64, 0x18, 0x1c, 0xdd, 0xd1, 0xc9, 0x69, 0x18, 0x1c, + 0x06, 0x1d, 0x27, 0xe3, 0x10, 0x5b, 0x87, 0x17, 0xe1, 0xef, 0xcc, 0xe8, 0xe4, 0x34, 0xd4, 0x8d, + 0xab, 0xdf, 0x9b, 0xd2, 0xde, 0xc7, 0xc6, 0xbe, 0x17, 0x2d, 0xb5, 0xf1, 0xc4, 0x6a, 0xca, 0xcf, + 0xe6, 0xb0, 0x26, 0x9e, 0xd4, 0x39, 0x56, 0xf2, 0x74, 0x8e, 0x9d, 0x61, 0x8d, 0x3b, 0x3e, 0xf6, + 0x0c, 0x8b, 0xcf, 0x57, 0x28, 0xe6, 0xf3, 0x35, 0x5f, 0xc0, 0x1d, 0x7e, 0xc0, 0x63, 0x53, 0x3c, + 0x2e, 0x5c, 0x33, 0x9d, 0xa4, 0xff, 0x8f, 0xfc, 0xbc, 0x7b, 0x02, 0x3b, 0x53, 0xbe, 0x80, 0x23, + 0xd5, 0xee, 0x8c, 0xe8, 0x27, 0xcc, 0x27, 0xe5, 0x07, 0x71, 0x75, 0xb1, 0x97, 0x9d, 0x45, 0x1e, + 0x29, 0x8b, 0xeb, 0xef, 0xa9, 0x07, 0x13, 0x72, 0x3d, 0x1d, 0xa3, 0xc8, 0x96, 0x8e, 0xeb, 0x15, + 0xf3, 0x5c, 0x85, 0xe4, 0x42, 0x2b, 0xd2, 0x5d, 0x84, 0x3e, 0x70, 0x15, 0x56, 0x2c, 0x9c, 0x7e, + 0x00, 0x79, 0x7e, 0x3a, 0x27, 0x72, 0xb2, 0xf1, 0xa5, 0x2d, 0x31, 0x54, 0xef, 0x17, 0xfd, 0xf6, + 0xfd, 0xfc, 0x04, 0x1d, 0x6b, 0xa4, 0x63, 0x85, 0x4e, 0x0b, 0x80, 0x11, 0xfb, 0x56, 0x6c, 0x8d, + 0x72, 0x9a, 0x9e, 0x2e, 0x81, 0xc3, 0xdd, 0xa4, 0x39, 0x11, 0xce, 0xce, 0x10, 0x8a, 0x13, 0x36, + 0xcd, 0x1c, 0xff, 0xa3, 0x8c, 0x38, 0x81, 0xeb, 0x5a, 0x35, 0xb3, 0x56, 0x43, 0xfa, 0x45, 0xfc, + 0x4c, 0xa8, 0x23, 0xe3, 0x0a, 0x59, 0xd7, 0x5f, 0x83, 0xaf, 0xc9, 0x49, 0xe3, 0x6b, 0xec, 0x7a, + 0x4f, 0x58, 0x53, 0xf8, 0xd0, 0xbe, 0xd9, 0xc8, 0x83, 0xda, 0xe4, 0x1a, 0x9a, 0x7f, 0x3f, 0xdc, + 0xa3, 0xa3, 0xc2, 0xe4, 0xca, 0xa5, 0xce, 0x2c, 0xb2, 0xae, 0x88, 0x9a, 0x48, 0x23, 0x4c, 0x7b, + 0x92, 0xe9, 0x57, 0x6d, 0xc1, 0x79, 0xdf, 0xa3, 0x9e, 0x0e, 0x3c, 0x8d, 0x7b, 0xb8, 0xcd, 0x49, + 0xeb, 0xc8, 0x61, 0x76, 0x86, 0x18, 0x70, 0xd9, 0x02, 0xc8, 0xbb, 0x04, 0x36, 0xd1, 0x0e, 0x0f, + 0xc7, 0x69, 0x62, 0x8c, 0x62, 0xde, 0x3f, 0x7c, 0x85, 0xcf, 0x35, 0x35, 0x8b, 0x46, 0x29, 0xed, + 0x57, 0xe5, 0x38, 0x93, 0xa5, 0xed, 0x77, 0x02, 0xce, 0x77, 0x8e, 0x5a, 0x9d, 0x81, 0xab, 0x5c, + 0xae, 0x76, 0x86, 0xc6, 0xed, 0x28, 0x8b, 0xe9, 0x6e, 0xbe, 0xc6, 0x71, 0x69, 0x89, 0xd6, 0xa9, + 0xdb, 0x05, 0x23, 0xdf, 0xec, 0xb4, 0xc9, 0xcb, 0x29, 0xa7, 0xc0, 0x0f, 0x2b, 0x86, 0xb4, 0x57, + 0xaa, 0xb6, 0x78, 0x90, 0x3f, 0x22, 0x6d, 0x53, 0x7b, 0x1e, 0xd8, 0x0d, 0xa0, 0xfd, 0xf5, 0x53, + 0x7e, 0xa0, 0xd9, 0x61, 0x0f, 0x0e, 0xa8, 0x41, 0x92, 0x96, 0x08, 0xf6, 0x68, 0x31, 0x49, 0xc9, + 0x5a, 0x66, 0x85, 0x37, 0xa9, 0x05, 0x5c, 0x16, 0xcd, 0x4a, 0xf7, 0x1d, 0x39, 0x5e, 0xbd, 0x91, + 0xbc, 0x05, 0x4c, 0x0d, 0x63, 0xc9, 0x22, 0xd3, 0xf1, 0xef, 0x4d, 0x9d, 0x5a, 0x5c, 0x98, 0x14, + 0x70, 0x0b, 0x59, 0x84, 0xf6, 0x28, 0xd8, 0x57, 0x0a, 0x8a, 0x25, 0x50, 0xa6, 0x98, 0xe4, 0x10, + 0xee, 0xfe, 0x0d, 0x98, 0xdf, 0x5d, 0xf9, 0xc5, 0xd4, 0xb7, 0xec, 0x2c, 0xdf, 0x46, 0x92, 0xc3, + 0xe1, 0x33, 0xd3, 0x71, 0xa7, 0x8e, 0x74, 0x72, 0xc8, 0xee, 0x16, 0xec, 0x24, 0x8d, 0x26, 0x29, + 0x3e, 0xd2, 0x9c, 0x61, 0xda, 0x25, 0xb2, 0x31, 0x51, 0x88, 0xfd, 0x45, 0xf2, 0x5f, 0xb2, 0x4e, + 0xc6, 0x11, 0x21, 0x96, 0x90, 0x76, 0x21, 0x96, 0xca, 0x14, 0x73, 0x1c, 0x89, 0x2b, 0x26, 0xf2, + 0x19, 0x27, 0x4c, 0xc2, 0xdd, 0x3d, 0xc9, 0x21, 0x9f, 0xa1, 0x3d, 0xab, 0x6a, 0x57, 0x16, 0x4b, + 0xdc, 0xee, 0xf7, 0x71, 0xfa, 0x1d, 0xad, 0x62, 0xf6, 0xbc, 0x66, 0xea, 0x07, 0x92, 0xfb, 0xe0, + 0xb7, 0x74, 0xba, 0x65, 0x6e, 0xb3, 0x1e, 0x5d, 0xc7, 0x62, 0x91, 0x56, 0x82, 0x1b, 0xdc, 0x60, + 0x10, 0x48, 0x9a, 0xb8, 0x61, 0xde, 0x59, 0x61, 0x92, 0x34, 0x31, 0x91, 0xa2, 0x0b, 0xd4, 0x29, + 0xe6, 0x3c, 0x1c, 0xc5, 0x98, 0x23, 0x9d, 0x7f, 0xa8, 0x31, 0x46, 0xd1, 0x9e, 0x24, 0x6c, 0xf9, + 0x95, 0xa4, 0x35, 0x53, 0x29, 0x41, 0x2a, 0x25, 0x37, 0x48, 0xba, 0x44, 0x34, 0xbc, 0x06, 0xd7, + 0x09, 0x8a, 0xd9, 0x49, 0x31, 0x27, 0x13, 0x5e, 0x39, 0x08, 0x62, 0xd8, 0x2d, 0x4c, 0x52, 0xad, + 0xde, 0x89, 0x21, 0xe4, 0x4e, 0xc5, 0xb9, 0x64, 0x31, 0xcd, 0xf3, 0x0d, 0x6f, 0x8a, 0x32, 0xfc, + 0x96, 0x26, 0x9b, 0x62, 0x27, 0xed, 0xaf, 0x2f, 0xef, 0x0f, 0xad, 0x0e, 0x06, 0x15, 0x73, 0x20, + 0x48, 0x96, 0xfd, 0x2b, 0x85, 0xab, 0x6a, 0x50, 0x3d, 0xaa, 0x06, 0x5b, 0x48, 0xeb, 0x52, 0xb2, + 0xe8, 0x6d, 0xe1, 0xe0, 0xa1, 0x5c, 0x43, 0x62, 0x64, 0x0b, 0xa6, 0x0d, 0xb0, 0x8e, 0xa5, 0x3e, + 0x99, 0x10, 0xca, 0xd8, 0x0a, 0xf5, 0x36, 0x95, 0x8a, 0xad, 0x03, 0x67, 0xa2, 0x66, 0xd2, 0x69, + 0x09, 0x07, 0x99, 0x7d, 0x23, 0x6f, 0xf3, 0xd6, 0xb4, 0x36, 0x37, 0xf3, 0xfa, 0x90, 0xf4, 0xc1, + 0xe0, 0xd6, 0xae, 0x08, 0x84, 0x5c, 0x69, 0x9c, 0x1e, 0xa2, 0xbe, 0x20, 0x59, 0x2a, 0x96, 0x05, + 0x46, 0xc4, 0x40, 0x5f, 0xc2, 0x1e, 0xfa, 0x87, 0x7b, 0x00, 0x7b, 0x17, 0xec, 0xd5, 0xd4, 0x3a, + 0x59, 0x1c, 0x8b, 0x3c, 0x6a, 0xa1, 0xd1, 0x41, 0xad, 0x35, 0x42, 0xab, 0x1a, 0xd3, 0x34, 0xdc, + 0x6e, 0xa0, 0x15, 0x43, 0xb1, 0x12, 0x9f, 0x27, 0xf8, 0x14, 0x63, 0xc7, 0xa7, 0xca, 0x89, 0x9e, + 0x99, 0xb0, 0x6c, 0x45, 0xfa, 0x58, 0xfc, 0x98, 0xc6, 0x22, 0xce, 0x9d, 0xb2, 0xa8, 0x09, 0xcb, + 0xe9, 0x57, 0x8c, 0x18, 0xf6, 0x0b, 0x0a, 0x4b, 0x68, 0x90, 0x12, 0x42, 0x63, 0x02, 0xe7, 0xd5, + 0x9b, 0x38, 0x27, 0xd1, 0x67, 0xcf, 0x0b, 0x8d, 0x34, 0x8a, 0x13, 0xb6, 0x1c, 0xfc, 0x3d, 0xdb, + 0x13, 0x5d, 0xf5, 0x16, 0x39, 0xc1, 0x15, 0x09, 0x84, 0x54, 0x71, 0xd2, 0xc3, 0x07, 0x98, 0x3d, + 0x41, 0x57, 0xe9, 0x9f, 0x72, 0x70, 0x8d, 0xaa, 0x89, 0x93, 0xb4, 0xf6, 0x2b, 0xbd, 0xe1, 0x17, + 0x7a, 0x8d, 0xea, 0x85, 0x24, 0xc6, 0x34, 0xd2, 0x53, 0x67, 0x40, 0x2e, 0x75, 0xd9, 0x5a, 0x0d, + 0x1c, 0x07, 0xc3, 0x0d, 0xd1, 0xbb, 0xa4, 0x71, 0x84, 0x39, 0xe1, 0x81, 0x68, 0x81, 0x04, 0xf2, + 0x04, 0x2e, 0x29, 0xc5, 0x1e, 0x90, 0xa5, 0x71, 0x72, 0x66, 0x72, 0xb7, 0x9c, 0x2d, 0x4d, 0xa8, + 0xee, 0x76, 0x5a, 0xf8, 0x0e, 0x3b, 0xec, 0x5f, 0xf8, 0xab, 0x50, 0x4f, 0xb0, 0x14, 0x69, 0x75, + 0x29, 0xdb, 0x2f, 0x77, 0xe6, 0x43, 0xab, 0x81, 0xc7, 0x66, 0x36, 0x4e, 0x36, 0x49, 0xc7, 0xee, + 0x52, 0x8c, 0xab, 0xa2, 0x81, 0x52, 0xa4, 0xd0, 0x6c, 0xd6, 0x33, 0x29, 0xea, 0x70, 0xe2, 0xcc, + 0x27, 0xdc, 0xa5, 0x3a, 0x63, 0x99, 0xfd, 0x3d, 0x4d, 0xd9, 0x74, 0x26, 0xfe, 0xde, 0x26, 0x29, + 0x85, 0xbe, 0xd4, 0xd7, 0xa6, 0x29, 0x6e, 0x1d, 0x9f, 0x31, 0xa0, 0x88, 0x34, 0x23, 0xdc, 0xa0, + 0x73, 0x5e, 0xfc, 0xec, 0x69, 0x7d, 0x21, 0xd0, 0x79, 0xba, 0xf6, 0x24, 0xb5, 0x07, 0xed, 0x02, + 0xf8, 0x59, 0x10, 0xe3, 0xe2, 0x1b, 0xf5, 0xb6, 0x33, 0x88, 0x25, 0x24, 0xd3, 0x3c, 0xb9, 0x25, + 0x5d, 0xd7, 0x89, 0x76, 0x07, 0xfa, 0x79, 0xe3, 0x6d, 0x66, 0xf2, 0xbc, 0x78, 0x4a, 0xd4, 0xb1, + 0x25, 0x46, 0x53, 0x9d, 0xab, 0x39, 0xef, 0x84, 0x8e, 0x12, 0xf2, 0xa3, 0x66, 0xe4, 0xb4, 0xac, + 0xb8, 0x33, 0xb7, 0xe7, 0xe3, 0xee, 0x79, 0x2c, 0xc7, 0xe5, 0x22, 0x8e, 0xeb, 0x52, 0xf8, 0x7e, + 0xdc, 0xe3, 0x33, 0x7e, 0x0b, 0x69, 0xc8, 0x41, 0xb2, 0x6f, 0xc9, 0x78, 0x3f, 0x6a, 0x63, 0xf7, + 0x0f, 0xbe, 0xcc, 0xb8, 0x53, 0xc5, 0xe8, 0xeb, 0xd4, 0x46, 0x18, 0x07, 0x76, 0x89, 0xd1, 0x4f, + 0x33, 0xb7, 0x84, 0x5c, 0xfc, 0x18, 0xe7, 0xc2, 0xa2, 0x4b, 0x45, 0x66, 0xf7, 0x66, 0xd8, 0xc4, + 0x64, 0x7f, 0xc8, 0x6b, 0x45, 0x3d, 0x69, 0x7b, 0x5b, 0x20, 0x8c, 0x48, 0x2f, 0xe0, 0x6e, 0xc9, + 0x40, 0x68, 0x33, 0x7c, 0x1d, 0x60, 0xd2, 0x0e, 0x17, 0x7e, 0x53, 0xaf, 0x98, 0x88, 0x6e, 0xaf, + 0xd4, 0xa6, 0x07, 0x70, 0xb7, 0x30, 0xe1, 0xf4, 0x03, 0xa4, 0xd3, 0x14, 0x35, 0x31, 0x4c, 0x3f, + 0x23, 0xfe, 0x45, 0x7e, 0x9e, 0xf1, 0xcd, 0x9b, 0xb0, 0x74, 0x45, 0x62, 0x90, 0xda, 0xe9, 0xbd, + 0x6f, 0xa5, 0xce, 0x2e, 0xd5, 0x6c, 0xda, 0x5d, 0x23, 0x15, 0x18, 0x22, 0x24, 0x1c, 0x4a, 0x89, + 0xa4, 0xc4, 0x06, 0xab, 0x5e, 0x0f, 0x89, 0xd7, 0x23, 0x6a, 0x66, 0xf7, 0x73, 0x6a, 0xae, 0xec, + 0x81, 0xc7, 0x45, 0x0f, 0x9c, 0x54, 0x0d, 0xa2, 0x81, 0x78, 0x1a, 0xc5, 0x81, 0x21, 0x8f, 0x31, + 0xed, 0x30, 0xde, 0x0a, 0xe7, 0x08, 0x6b, 0x47, 0xcf, 0xe7, 0xb1, 0xb4, 0x7c, 0x2c, 0xcc, 0x8b, + 0x4e, 0xa6, 0xd7, 0xa0, 0x4c, 0xd1, 0xdf, 0xfe, 0x20, 0xed, 0xad, 0xa8, 0xbf, 0xc5, 0x76, 0xf0, + 0x7a, 0xe0, 0x09, 0x3e, 0x03, 0x9f, 0x1f, 0x60, 0xeb, 0x4b, 0x0e, 0xd1, 0x30, 0x1d, 0x35, 0x34, + 0xc5, 0xa5, 0xce, 0xf1, 0x78, 0x90, 0x4b, 0x35, 0xe9, 0x5c, 0xaa, 0x45, 0x2c, 0x3f, 0xfc, 0x12, + 0x71, 0xa9, 0x29, 0x1e, 0xb5, 0x13, 0xf4, 0x34, 0x4d, 0x5e, 0x18, 0x9d, 0x1e, 0xf2, 0xa6, 0x8b, + 0x3c, 0x10, 0x59, 0xdb, 0x06, 0x7c, 0x4f, 0xc1, 0xb8, 0x52, 0x2b, 0x93, 0x6d, 0xbe, 0xed, 0x24, + 0x8f, 0x1c, 0x3e, 0xc6, 0x97, 0x66, 0x26, 0xf9, 0xd2, 0x51, 0x5f, 0x73, 0xde, 0x54, 0xe5, 0x2d, + 0xf4, 0x81, 0xba, 0x97, 0xb4, 0x31, 0xc9, 0xbe, 0x09, 0xe9, 0x14, 0xc0, 0xd6, 0x4e, 0x60, 0xcf, + 0xc4, 0x95, 0xf6, 0xb1, 0xfc, 0x0d, 0x5c, 0x83, 0xef, 0x9f, 0x07, 0x5c, 0x29, 0xbe, 0x34, 0x9b, + 0xca, 0x9e, 0xf0, 0x0b, 0x70, 0x57, 0xd8, 0x49, 0x9c, 0x69, 0x80, 0x2c, 0x8a, 0x91, 0x33, 0x9d, + 0xcb, 0xf8, 0x52, 0x92, 0xd7, 0x10, 0xca, 0x44, 0x3b, 0xb6, 0xf1, 0x25, 0xc6, 0x97, 0xf2, 0xf2, + 0x95, 0xb3, 0xf2, 0x11, 0xba, 0xd9, 0x5a, 0xe4, 0x4b, 0x4d, 0x63, 0xf8, 0xd2, 0x60, 0x1a, 0x5f, + 0x6a, 0x67, 0xf1, 0xb3, 0x59, 0x7c, 0x63, 0x7b, 0x41, 0x79, 0x46, 0x92, 0x3f, 0xed, 0x51, 0xa7, + 0xc8, 0x13, 0x4e, 0xaf, 0xe3, 0xbf, 0x99, 0x2e, 0x4f, 0x2e, 0xed, 0xd4, 0x93, 0xe3, 0xc4, 0x46, + 0xdc, 0x34, 0x72, 0xaf, 0x67, 0x90, 0x42, 0x22, 0x85, 0x59, 0xa9, 0x89, 0x99, 0xa3, 0x74, 0xb0, + 0x0c, 0x2e, 0xc1, 0x6d, 0x60, 0xa8, 0x31, 0x21, 0x42, 0x3b, 0xd1, 0xb5, 0x31, 0x7d, 0x9c, 0x87, + 0xa5, 0xfd, 0x00, 0xe3, 0x7d, 0xf7, 0x26, 0x39, 0x58, 0xc3, 0xe9, 0x5e, 0xe4, 0xf4, 0x6d, 0x18, + 0xd6, 0xeb, 0xe2, 0xd8, 0xcb, 0xd9, 0x54, 0x87, 0x8e, 0x28, 0x47, 0xd2, 0x18, 0x8e, 0x57, 0x33, + 0x44, 0xdd, 0xc4, 0x19, 0xef, 0x1c, 0x03, 0xf1, 0x6f, 0x4c, 0x56, 0xb6, 0x3e, 0x91, 0x3e, 0xd2, + 0xac, 0x0e, 0xa9, 0xf4, 0xd5, 0x5f, 0xbd, 0xfa, 0xb2, 0x3c, 0x03, 0x57, 0x63, 0x07, 0x43, 0x55, + 0x31, 0xc6, 0xd2, 0xec, 0x1d, 0xb8, 0xc6, 0x60, 0x82, 0x7f, 0xba, 0x7a, 0xbe, 0xe8, 0xd6, 0xa7, + 0x96, 0x56, 0x90, 0x4d, 0xec, 0x2c, 0x32, 0x5f, 0x2c, 0x9f, 0x4a, 0x33, 0xc6, 0x84, 0x33, 0x66, + 0xdb, 0x55, 0x33, 0xa6, 0x8c, 0xef, 0xeb, 0xb1, 0xe4, 0xc8, 0xc7, 0x25, 0xf0, 0x32, 0xfd, 0x9d, + 0xd7, 0x94, 0xe3, 0x3e, 0x4e, 0x34, 0xe3, 0x2a, 0x7d, 0xee, 0xcf, 0x5c, 0x5b, 0x9f, 0x7b, 0xac, + 0x9e, 0x57, 0x52, 0x4f, 0x7b, 0xdc, 0x58, 0xfe, 0x98, 0x4b, 0x30, 0xf4, 0x35, 0x23, 0x23, 0xb1, + 0x2e, 0xec, 0x5a, 0xcb, 0x3d, 0xd6, 0x72, 0x74, 0x7a, 0x1f, 0x5f, 0x33, 0xae, 0xf9, 0xb6, 0xea, + 0xeb, 0x62, 0x89, 0xdd, 0x1e, 0xe9, 0x62, 0x7a, 0x25, 0x17, 0xa5, 0x90, 0x92, 0xc5, 0x9e, 0x2c, + 0x4c, 0x4f, 0xc5, 0x24, 0x56, 0x28, 0x84, 0xc2, 0x33, 0xde, 0x7e, 0xb3, 0x7a, 0x46, 0x34, 0xa7, + 0xf0, 0xc9, 0x08, 0xf7, 0x1d, 0x69, 0xa1, 0x03, 0x6b, 0xb7, 0x9d, 0xaf, 0x3e, 0xc8, 0xb5, 0xf6, + 0x33, 0x59, 0x6d, 0x49, 0xbe, 0xc1, 0x3d, 0xa6, 0xf6, 0x1e, 0xac, 0xbd, 0x64, 0xc1, 0x36, 0xa3, + 0xf3, 0x9f, 0x6a, 0xd6, 0x6a, 0x9e, 0x0a, 0x2c, 0x3b, 0x5b, 0x53, 0x95, 0xf0, 0xfd, 0x38, 0x2a, + 0x32, 0x69, 0x07, 0x3d, 0x77, 0x48, 0x7b, 0x3c, 0x29, 0x25, 0xaa, 0xf4, 0x66, 0xb2, 0xdd, 0x2f, + 0xf9, 0x8b, 0x49, 0x84, 0x91, 0x1c, 0xd2, 0xea, 0x35, 0x29, 0x16, 0x7e, 0xc7, 0xf8, 0xb1, 0xe4, + 0xbb, 0x5c, 0x3d, 0xfe, 0xf6, 0x54, 0xfc, 0x2f, 0xbf, 0x14, 0x5a, 0xab, 0x98, 0x3a, 0x49, 0x22, + 0x56, 0x2e, 0x59, 0x38, 0x9f, 0xed, 0x33, 0x71, 0x09, 0x2c, 0x54, 0x27, 0x64, 0x90, 0x84, 0x6d, + 0x34, 0xba, 0xbc, 0x12, 0xf5, 0x16, 0xad, 0xcc, 0xdb, 0xd3, 0xf0, 0xf8, 0x0c, 0x29, 0x99, 0x92, + 0x6a, 0x6d, 0xf5, 0x24, 0x75, 0x13, 0x3c, 0xa4, 0xd1, 0x98, 0x92, 0x59, 0xa5, 0xf6, 0x32, 0x10, + 0xb9, 0x5a, 0xa7, 0x3e, 0x91, 0xde, 0xb5, 0x90, 0x83, 0xae, 0xdf, 0xb2, 0x23, 0x7b, 0x89, 0xe7, + 0xf5, 0x96, 0xc0, 0x42, 0x6f, 0x00, 0xee, 0xf2, 0x96, 0xc2, 0xac, 0xd1, 0xa7, 0x84, 0xc8, 0xe5, + 0x13, 0xde, 0xe5, 0x94, 0x98, 0x38, 0xda, 0x02, 0x1c, 0xc3, 0x67, 0x91, 0x14, 0xc4, 0x7c, 0x06, + 0xc6, 0x41, 0x6e, 0xcc, 0x76, 0xd5, 0xdb, 0x48, 0xf8, 0x79, 0x8c, 0x01, 0xe6, 0x39, 0x74, 0xfa, + 0x64, 0x2e, 0x12, 0x5b, 0x60, 0x56, 0xb8, 0x2f, 0x8a, 0x7c, 0x6e, 0xa0, 0x54, 0x51, 0x98, 0x44, + 0xf2, 0xa0, 0x13, 0x02, 0x5e, 0x58, 0x12, 0x5b, 0x32, 0xb8, 0xd1, 0xeb, 0x17, 0xea, 0x25, 0x86, + 0x11, 0xce, 0xa8, 0x81, 0x9d, 0xf0, 0x3f, 0x0f, 0x1f, 0xc0, 0xb6, 0xb2, 0xef, 0xd8, 0x06, 0x8e, + 0x68, 0x96, 0x94, 0x21, 0x7b, 0x85, 0x7a, 0x26, 0x79, 0x67, 0xa8, 0xe6, 0x23, 0xfd, 0x12, 0xfe, + 0x16, 0x05, 0xd2, 0x64, 0x0b, 0xdb, 0xd5, 0x4b, 0x0f, 0xff, 0xd2, 0x1b, 0x12, 0x96, 0x06, 0x9e, + 0x17, 0x9a, 0xda, 0x71, 0x67, 0x83, 0x6f, 0x30, 0x37, 0x86, 0xc2, 0x77, 0x8b, 0x0a, 0x06, 0x86, + 0x42, 0x29, 0x45, 0x5e, 0x3d, 0x0b, 0x66, 0xc5, 0xc4, 0xce, 0xa0, 0xcd, 0x62, 0x05, 0x69, 0xfa, + 0xed, 0x88, 0xb7, 0x80, 0x41, 0x76, 0xdc, 0xcc, 0x7c, 0x96, 0xbe, 0xcd, 0x7c, 0x96, 0x9e, 0xb4, + 0xda, 0xe1, 0x0e, 0xfc, 0xc6, 0x96, 0x88, 0x87, 0x5f, 0x74, 0xe3, 0x3e, 0xcb, 0xec, 0x0a, 0xc9, + 0xf4, 0x45, 0x77, 0x8b, 0x8d, 0xf9, 0xbd, 0x14, 0xa3, 0x67, 0xf0, 0xef, 0xf8, 0xe8, 0x29, 0xbb, + 0x83, 0x9d, 0x61, 0x9b, 0xc2, 0x80, 0x1c, 0xfa, 0x71, 0x5e, 0x2f, 0x99, 0x9d, 0x62, 0x69, 0xfb, + 0xdd, 0x40, 0xb9, 0x10, 0x1a, 0x6d, 0x13, 0x79, 0xe9, 0xb1, 0xa8, 0x7a, 0xee, 0x48, 0x5b, 0xbd, + 0xb0, 0xc8, 0x9b, 0x59, 0x31, 0x34, 0xa2, 0x26, 0x10, 0x78, 0x71, 0xfd, 0x99, 0xc0, 0xc6, 0xd8, + 0x33, 0x24, 0x83, 0x48, 0x48, 0xc5, 0xf8, 0xc9, 0x1e, 0x9d, 0x87, 0xab, 0x76, 0xac, 0x53, 0x55, + 0xbe, 0x0b, 0xb6, 0x28, 0x60, 0x3a, 0xd7, 0x01, 0x4a, 0x5b, 0x4c, 0xeb, 0x84, 0x0e, 0x08, 0x3c, + 0x0f, 0x05, 0x98, 0xce, 0x94, 0x79, 0x43, 0x23, 0x66, 0xa6, 0x39, 0xb6, 0x18, 0xe3, 0x15, 0x04, + 0x7c, 0x21, 0x90, 0x42, 0x0f, 0x1f, 0x08, 0x08, 0x4a, 0x91, 0xfd, 0x66, 0x56, 0xde, 0xfc, 0x3a, + 0x3b, 0x2b, 0xb1, 0x93, 0xca, 0xab, 0xc2, 0xb8, 0x1d, 0x0a, 0xfd, 0xc6, 0xba, 0x8e, 0xdb, 0x16, + 0x2e, 0x89, 0xda, 0x14, 0x18, 0xf7, 0x78, 0xb8, 0x04, 0xd7, 0x8c, 0xfd, 0xf8, 0xf4, 0x68, 0xab, + 0x10, 0xe9, 0xdd, 0xdd, 0xbb, 0x62, 0x3f, 0xbe, 0x81, 0x71, 0xbd, 0xe1, 0xd5, 0x18, 0xfe, 0x0c, + 0x86, 0xaf, 0xda, 0xbb, 0xba, 0x2e, 0x68, 0x5a, 0x4b, 0x72, 0x2c, 0xd1, 0x94, 0x8e, 0x9a, 0x47, + 0x58, 0x16, 0x26, 0x15, 0x7b, 0xbc, 0x00, 0xb9, 0x1e, 0xcc, 0x7f, 0x14, 0xe2, 0xc8, 0x3a, 0xfd, + 0xc4, 0xcb, 0x0b, 0xb3, 0x48, 0x6b, 0xd0, 0x3b, 0x17, 0x0a, 0xc2, 0xa5, 0xb8, 0x76, 0x18, 0x58, + 0xdd, 0xb8, 0x1e, 0x5c, 0x81, 0x22, 0xe9, 0xc8, 0xef, 0x05, 0xc4, 0x4f, 0xef, 0xa0, 0x36, 0xb3, + 0x8b, 0x91, 0x34, 0x9d, 0x3a, 0xb3, 0x62, 0x4b, 0xb4, 0x80, 0x0a, 0x99, 0xc3, 0x31, 0x8d, 0x3c, + 0x2c, 0xad, 0x12, 0x5e, 0xec, 0x6a, 0x30, 0xc4, 0xc8, 0xb3, 0x45, 0xc1, 0xa4, 0x78, 0x08, 0x22, + 0xab, 0x91, 0x7f, 0x1e, 0xa2, 0xde, 0xc7, 0x99, 0x93, 0x13, 0x35, 0x61, 0x4b, 0x83, 0x62, 0x4a, + 0xb4, 0x77, 0xb2, 0x5d, 0xa5, 0x6b, 0xb4, 0xb5, 0x2d, 0xad, 0xad, 0x61, 0xe4, 0xf1, 0x54, 0x6b, + 0x67, 0xf6, 0x51, 0x1b, 0xe7, 0x93, 0xee, 0xd8, 0xfd, 0xe2, 0xb8, 0xf4, 0x5a, 0x7b, 0x09, 0xdb, + 0x1e, 0x32, 0xdb, 0x31, 0xee, 0xc2, 0x98, 0x20, 0x41, 0xd2, 0x37, 0x55, 0x17, 0xf9, 0xa6, 0xc2, + 0x39, 0x15, 0x76, 0x09, 0x1c, 0x95, 0x25, 0x7d, 0x6e, 0xe0, 0xa8, 0x30, 0x0e, 0xae, 0x1e, 0x8c, + 0x8f, 0x09, 0x25, 0x2b, 0xef, 0x45, 0xe1, 0x35, 0x98, 0x5e, 0x3e, 0xcd, 0x98, 0x4c, 0x97, 0xcb, + 0x0b, 0x0b, 0x5d, 0x65, 0x4e, 0xd2, 0xf3, 0x7e, 0x46, 0x06, 0x77, 0x50, 0x99, 0xcd, 0x52, 0x37, + 0x46, 0xd6, 0x2b, 0xf9, 0x44, 0x47, 0x55, 0x17, 0xb6, 0xce, 0x4c, 0x10, 0xf4, 0x33, 0xf4, 0x48, + 0x16, 0x98, 0x04, 0xed, 0x17, 0x56, 0x01, 0x6e, 0xae, 0xb3, 0xe9, 0x56, 0xb5, 0xa5, 0x76, 0x9f, + 0xf9, 0x17, 0x5d, 0x8e, 0xc8, 0x43, 0xf6, 0x9b, 0xd4, 0x7d, 0xee, 0xc0, 0xcd, 0x9d, 0x20, 0x22, + 0x25, 0x6f, 0x81, 0x39, 0x30, 0xbb, 0x93, 0x46, 0x4e, 0xa0, 0x03, 0xbe, 0x7d, 0xc8, 0x5b, 0x06, + 0xe5, 0xde, 0x4a, 0xc8, 0x77, 0xcd, 0x23, 0x7f, 0x16, 0x86, 0x7a, 0x67, 0x79, 0xe4, 0x41, 0xac, + 0x51, 0xb9, 0xd9, 0x07, 0xa6, 0xa5, 0xe4, 0xbb, 0x20, 0xc4, 0x7d, 0x4a, 0x84, 0x7f, 0x6c, 0xa6, + 0x5f, 0xb3, 0x91, 0x92, 0xcc, 0x96, 0xc7, 0x21, 0x7f, 0x5e, 0x49, 0x08, 0x56, 0x24, 0xf5, 0xc1, + 0xd1, 0xb1, 0x83, 0x46, 0x7a, 0x24, 0x4e, 0x63, 0x1d, 0x7b, 0x47, 0xa5, 0x51, 0x8e, 0x2d, 0x77, + 0xd7, 0x9e, 0xe7, 0x21, 0x5c, 0x0f, 0x99, 0x8d, 0x62, 0xe6, 0xe0, 0x9a, 0x44, 0x0a, 0x99, 0x34, + 0x42, 0xcb, 0xa9, 0x67, 0x6b, 0xa1, 0x75, 0x1c, 0x49, 0x8e, 0xda, 0x84, 0x9d, 0x71, 0x8c, 0x15, + 0x1a, 0x9d, 0x72, 0xbb, 0xb0, 0x2b, 0xae, 0x32, 0x49, 0x41, 0xa4, 0x8b, 0xc6, 0x83, 0x3a, 0x8b, + 0x8d, 0x02, 0x1f, 0xc9, 0x40, 0x55, 0xf7, 0xe8, 0xb8, 0x94, 0x82, 0xea, 0x4a, 0x2f, 0x83, 0x71, + 0x88, 0x97, 0xc1, 0x78, 0x41, 0x82, 0x9a, 0x2e, 0x4c, 0xab, 0xab, 0x01, 0x32, 0x5e, 0x77, 0x96, + 0x63, 0xc8, 0x69, 0x67, 0xb9, 0x27, 0x93, 0x49, 0x52, 0x21, 0xe3, 0x68, 0x9b, 0x46, 0xfa, 0x74, + 0x6e, 0x2f, 0x94, 0xbb, 0x5a, 0x20, 0x3f, 0xd5, 0xeb, 0x19, 0x67, 0x99, 0x1e, 0xfe, 0x42, 0x2a, + 0x2b, 0xa1, 0xd9, 0x2c, 0xc5, 0xb2, 0xee, 0xeb, 0x6e, 0x37, 0xee, 0xea, 0xc2, 0xda, 0xf6, 0xba, + 0xcd, 0xce, 0x4a, 0x8a, 0x4f, 0x27, 0xe1, 0x5f, 0xfe, 0x65, 0xa8, 0x2b, 0x58, 0x72, 0x62, 0xed, + 0x89, 0xb5, 0x79, 0xcf, 0xc3, 0xec, 0xa5, 0x20, 0x62, 0xc9, 0x70, 0x57, 0x74, 0x3f, 0xa7, 0x4d, + 0x51, 0x63, 0xf8, 0xfe, 0x15, 0x17, 0xa4, 0x08, 0x95, 0xcd, 0x7a, 0x1b, 0x58, 0xcc, 0x10, 0x35, + 0x31, 0xdb, 0x22, 0x33, 0xa3, 0x47, 0xb9, 0x9c, 0xba, 0xe0, 0x3c, 0x33, 0x5b, 0x67, 0x80, 0xa4, + 0x69, 0x51, 0xb3, 0xfd, 0x5d, 0x4d, 0xab, 0xb9, 0x1f, 0xd7, 0x95, 0x12, 0xa2, 0x38, 0x3b, 0xd9, + 0x4c, 0xc0, 0xf2, 0xdf, 0xdf, 0x64, 0xb1, 0xdf, 0x1c, 0x35, 0xb1, 0xd9, 0x7b, 0x30, 0x40, 0xbb, + 0xf0, 0xfd, 0x4c, 0x7e, 0xd6, 0xbe, 0x1b, 0xfb, 0xb1, 0xa1, 0x32, 0x66, 0x3f, 0x8c, 0x77, 0x2c, + 0x6d, 0xe0, 0xf0, 0x01, 0xd1, 0x3c, 0xd8, 0x3b, 0xca, 0xcb, 0x1a, 0xd9, 0xac, 0x7f, 0x44, 0xa3, + 0x0e, 0xdf, 0xe7, 0x4b, 0x81, 0xc1, 0xf8, 0x35, 0xe6, 0x66, 0x41, 0xd5, 0x9e, 0xcb, 0x2f, 0xe1, + 0xec, 0x0c, 0x60, 0x2b, 0xb0, 0xf1, 0x49, 0x71, 0xa7, 0x62, 0x8d, 0xcc, 0x84, 0x2c, 0xd4, 0x02, + 0xb3, 0x6b, 0xee, 0x27, 0x8d, 0x4b, 0x6f, 0x08, 0x66, 0x63, 0x2b, 0xba, 0x6a, 0xba, 0x4e, 0xac, + 0x8d, 0x09, 0x27, 0xd6, 0xf6, 0x77, 0x35, 0x98, 0x5b, 0xb5, 0xbc, 0xae, 0xa5, 0xa0, 0x38, 0xf4, + 0xfa, 0x8f, 0x8a, 0x9b, 0xac, 0x83, 0xc5, 0x33, 0xe1, 0x27, 0x1f, 0x42, 0x78, 0x09, 0x5c, 0xf9, + 0x0e, 0xb5, 0x36, 0x6f, 0x3f, 0xa9, 0xec, 0x55, 0x0c, 0xc3, 0x16, 0x0b, 0xff, 0xb1, 0xb7, 0xe4, + 0x2f, 0xe6, 0x61, 0xc5, 0x67, 0x9f, 0xda, 0xe4, 0x0e, 0xf7, 0xa9, 0x4e, 0x3e, 0x82, 0x71, 0x9f, + 0x9f, 0xa9, 0x4e, 0xc6, 0xbf, 0x26, 0xa2, 0xe3, 0xe4, 0xd3, 0xd9, 0x50, 0x54, 0xb3, 0x5a, 0x2f, + 0xdf, 0x4e, 0x33, 0x7c, 0xa5, 0x77, 0xcf, 0x03, 0xea, 0x21, 0xb1, 0xac, 0x13, 0x08, 0xe9, 0xcb, + 0x9e, 0x43, 0xf1, 0xa3, 0xab, 0xc2, 0xd0, 0x64, 0x66, 0x71, 0xad, 0x8a, 0x11, 0xef, 0xf5, 0xac, + 0x85, 0xca, 0xdb, 0xed, 0xbf, 0xbd, 0x6e, 0x0b, 0x39, 0xc9, 0x5e, 0xe6, 0x1c, 0x6b, 0xa1, 0x4a, + 0xa9, 0xf4, 0x1a, 0xed, 0x63, 0xad, 0xda, 0x73, 0x69, 0x5b, 0xf5, 0x46, 0x57, 0x29, 0xcf, 0x3b, + 0xb0, 0x93, 0xb5, 0x0a, 0x9b, 0x17, 0x79, 0xeb, 0xcd, 0x58, 0x77, 0xea, 0xff, 0xc0, 0x8f, 0xb1, + 0x15, 0x6c, 0x91, 0xb5, 0x7b, 0x71, 0xd4, 0xab, 0xa0, 0xb5, 0x22, 0xdd, 0x94, 0x9c, 0xc6, 0x63, + 0xab, 0x3d, 0x19, 0x27, 0x7a, 0xf2, 0x4d, 0x6f, 0xac, 0x45, 0xca, 0x37, 0xbb, 0x03, 0xe4, 0x32, + 0xef, 0x7c, 0xc8, 0x77, 0x4f, 0x70, 0xb7, 0xc0, 0x5d, 0xb8, 0xaf, 0xb0, 0xb2, 0xd8, 0xc7, 0xc9, + 0xba, 0x03, 0xcb, 0xb6, 0x88, 0xe3, 0x56, 0x92, 0xbf, 0x0e, 0x9c, 0x21, 0x05, 0x21, 0x60, 0x35, + 0x02, 0x58, 0xed, 0x7e, 0x90, 0xff, 0xa6, 0x19, 0xd3, 0x96, 0xb1, 0x93, 0xe6, 0xdc, 0xc1, 0x5d, + 0x58, 0x9f, 0x25, 0xb3, 0x69, 0xbc, 0x05, 0x84, 0xd1, 0xbd, 0x2d, 0x4c, 0x16, 0xc9, 0x93, 0xa4, + 0xe9, 0x5a, 0xf5, 0xf8, 0xeb, 0x49, 0xec, 0xe5, 0x52, 0x08, 0xb8, 0x02, 0xee, 0xf5, 0xf9, 0xd6, + 0x37, 0xd6, 0x3a, 0x2b, 0x95, 0x5c, 0x99, 0x21, 0x43, 0x0e, 0x0f, 0x86, 0x71, 0x45, 0x84, 0x33, + 0x62, 0x4d, 0xd8, 0x47, 0x33, 0x15, 0xde, 0x70, 0xfe, 0x67, 0xed, 0xfd, 0xd2, 0x8d, 0xea, 0x49, + 0x6c, 0xdd, 0xc5, 0xab, 0xc6, 0x0d, 0xdc, 0x4f, 0xba, 0x22, 0x0d, 0x00, 0xd5, 0x83, 0x71, 0xdf, + 0xed, 0x66, 0xae, 0x99, 0x67, 0xc1, 0xff, 0x36, 0x98, 0x0c, 0x16, 0xf7, 0x83, 0xca, 0xac, 0xf0, + 0x23, 0x7c, 0xbf, 0xe9, 0xee, 0x55, 0xdc, 0xd2, 0x04, 0xe4, 0x37, 0x16, 0xa5, 0xa5, 0xdb, 0x17, + 0xfe, 0x2c, 0x4b, 0xb5, 0xd7, 0xfd, 0x3c, 0x2c, 0x52, 0x2c, 0xe6, 0x02, 0x9c, 0xf2, 0x10, 0x35, + 0x04, 0x1e, 0x89, 0xac, 0xae, 0x7d, 0xa8, 0x16, 0xc3, 0x76, 0xb3, 0x76, 0x1b, 0x19, 0x72, 0x5b, + 0xb0, 0x6d, 0xf2, 0x57, 0x81, 0x52, 0xbf, 0x2a, 0xfa, 0xaf, 0xff, 0xf5, 0xed, 0x43, 0x44, 0x7f, + 0xf1, 0x9a, 0x83, 0x7b, 0x81, 0x08, 0x0f, 0x51, 0xce, 0xeb, 0xf7, 0x73, 0xab, 0xa2, 0xf8, 0xb7, + 0x38, 0x31, 0x7f, 0x57, 0xdd, 0xab, 0xf8, 0x92, 0xcf, 0xad, 0x8a, 0x9c, 0x78, 0x56, 0x6c, 0xab, + 0xda, 0x94, 0xec, 0x55, 0xed, 0x4a, 0x96, 0x9e, 0x76, 0x54, 0x31, 0xeb, 0x4f, 0xf7, 0xa4, 0x56, + 0xa7, 0xb2, 0xa1, 0x8f, 0xf6, 0x27, 0x31, 0xed, 0x75, 0x7d, 0x32, 0xa4, 0x89, 0x77, 0x31, 0x4e, + 0x26, 0x9b, 0x71, 0x30, 0xdb, 0x20, 0xb7, 0xc9, 0xaa, 0xc7, 0x30, 0xd3, 0xb9, 0x68, 0xf2, 0xeb, + 0x85, 0xf8, 0xf5, 0xda, 0xe4, 0xd7, 0x13, 0x93, 0x4f, 0x5e, 0x88, 0x24, 0x9f, 0xad, 0x55, 0x9b, + 0x30, 0x95, 0x15, 0x53, 0xe7, 0xc2, 0x16, 0x66, 0x2f, 0x80, 0xe9, 0x2a, 0x93, 0x29, 0xdd, 0xa9, + 0x2d, 0x10, 0x01, 0x2b, 0x3e, 0x45, 0xc4, 0x87, 0xa6, 0x12, 0x7d, 0x36, 0x4e, 0xad, 0x64, 0x98, + 0x90, 0xb3, 0xb8, 0x1d, 0xbb, 0x10, 0xac, 0xba, 0x57, 0xc6, 0x56, 0x98, 0x16, 0x4c, 0xe8, 0x21, + 0x5d, 0x8e, 0x21, 0x05, 0x5c, 0x88, 0x2d, 0x3c, 0x9b, 0x51, 0xc0, 0x13, 0x6e, 0x68, 0x82, 0xa1, + 0x4d, 0x6e, 0x93, 0x62, 0x70, 0x96, 0xc7, 0x04, 0x4f, 0xa6, 0x02, 0x1f, 0x3b, 0xd3, 0xe4, 0x0c, + 0x07, 0xaf, 0x92, 0x33, 0xbc, 0x32, 0x0a, 0x13, 0x58, 0xe3, 0x27, 0x7c, 0x23, 0xfb, 0x12, 0xe8, + 0x90, 0x3e, 0xf2, 0xe7, 0x51, 0x4a, 0x7b, 0x20, 0xc3, 0x42, 0x57, 0x20, 0xdc, 0xad, 0x9a, 0x02, + 0x59, 0xb8, 0x2b, 0x0f, 0xe3, 0x7a, 0x74, 0xb9, 0x23, 0x34, 0x6f, 0x48, 0xdb, 0xc9, 0xc6, 0xe9, + 0x64, 0x92, 0x53, 0xee, 0xc0, 0x3d, 0x7b, 0x53, 0xb1, 0x58, 0x93, 0x58, 0xad, 0xa7, 0x13, 0x9d, + 0xb6, 0x7b, 0x6d, 0x62, 0x69, 0x55, 0x1f, 0x93, 0x9c, 0x3e, 0x42, 0x6b, 0x6c, 0xab, 0x88, 0x14, + 0xf7, 0x60, 0x56, 0x31, 0x8c, 0xc7, 0xfb, 0x3e, 0xb2, 0xd6, 0xc6, 0x67, 0xe4, 0x58, 0xa2, 0x59, + 0x8a, 0x11, 0x79, 0x5d, 0x2b, 0xc7, 0x77, 0x6a, 0xbd, 0x1d, 0xa9, 0x7b, 0x7e, 0x20, 0x8b, 0xfd, + 0x02, 0xe1, 0x75, 0x96, 0x8b, 0xb9, 0xe6, 0x69, 0x86, 0xfe, 0x7c, 0x88, 0xf6, 0x70, 0x9a, 0x87, + 0xa5, 0xb9, 0x47, 0x0b, 0xea, 0x1e, 0x1c, 0x76, 0xb5, 0x7e, 0x61, 0x07, 0xa1, 0xfa, 0x64, 0xc5, + 0x46, 0xf0, 0xd7, 0xf6, 0x56, 0x89, 0x56, 0x24, 0xc1, 0xa8, 0x98, 0x03, 0x6e, 0x4d, 0xc3, 0x90, + 0x47, 0xe5, 0x44, 0x99, 0xf9, 0x69, 0x4a, 0x6e, 0xb2, 0xcc, 0xb8, 0x5b, 0xbe, 0x46, 0xa9, 0x03, + 0xa3, 0x4a, 0xed, 0xc6, 0xd4, 0x94, 0x31, 0x75, 0x55, 0xfe, 0xd6, 0x57, 0x58, 0xbb, 0x62, 0xe2, + 0xc6, 0xa2, 0xb3, 0x58, 0x3d, 0x7c, 0xad, 0x2b, 0xf0, 0xef, 0x22, 0xac, 0x6f, 0x15, 0xde, 0x23, + 0x78, 0x6f, 0xc0, 0x7b, 0x15, 0xde, 0xcb, 0x30, 0xf5, 0x90, 0x42, 0xde, 0x6e, 0xac, 0x2c, 0xbe, + 0x89, 0x71, 0x43, 0x12, 0xcb, 0xcf, 0xc4, 0x6a, 0x9d, 0x45, 0x75, 0x1e, 0x29, 0xe2, 0x75, 0x1e, + 0xa9, 0xa6, 0xd4, 0xb1, 0x27, 0x66, 0xb3, 0x5a, 0xda, 0xb0, 0xce, 0x06, 0x9c, 0x9b, 0xbb, 0x62, + 0x16, 0xdc, 0x01, 0x7c, 0xba, 0x66, 0xbd, 0x63, 0x80, 0x74, 0xf9, 0x90, 0xf6, 0xe4, 0x28, 0xa0, + 0x19, 0x5c, 0xe1, 0x9c, 0x81, 0xa3, 0xeb, 0xca, 0x86, 0xae, 0x0c, 0x21, 0x77, 0x68, 0xdc, 0xb9, + 0x5e, 0xb5, 0x04, 0x3c, 0x9a, 0xc6, 0xec, 0xef, 0x57, 0x8f, 0xa9, 0x51, 0xf9, 0x98, 0x1a, 0xd9, + 0x30, 0xd7, 0x4d, 0xa3, 0xea, 0x23, 0xb3, 0xfe, 0x2b, 0xd6, 0xfb, 0xaf, 0x50, 0xef, 0x3b, 0x1b, + 0xde, 0xb1, 0xf5, 0xf1, 0x2d, 0x95, 0x5b, 0x1e, 0x5b, 0xee, 0x2b, 0x71, 0x5e, 0xee, 0x2b, 0x5b, + 0x59, 0xb9, 0x1d, 0x31, 0x41, 0x31, 0xe7, 0x0c, 0x28, 0x84, 0x83, 0x48, 0x68, 0xd5, 0xd6, 0xd4, + 0x99, 0x84, 0x78, 0x7d, 0x5d, 0xf1, 0xd9, 0xa3, 0xf6, 0xaa, 0x4c, 0x57, 0x1c, 0xc6, 0xff, 0xe3, + 0x9a, 0x16, 0x74, 0x3e, 0xa4, 0xa7, 0xa1, 0x9f, 0x0b, 0xe1, 0x9e, 0x17, 0x98, 0x6d, 0x75, 0x9a, + 0xe6, 0x07, 0x24, 0x64, 0x00, 0xb3, 0x39, 0xe6, 0x01, 0xf7, 0x31, 0xe1, 0x24, 0xfb, 0x9b, 0xf5, + 0x84, 0x6d, 0x4f, 0x48, 0xf7, 0xba, 0xac, 0x72, 0x31, 0x72, 0x8a, 0x2b, 0x52, 0xc8, 0xf7, 0x6c, + 0xc7, 0x69, 0x9d, 0x1e, 0x01, 0xc7, 0xf4, 0x46, 0x30, 0x62, 0xee, 0x73, 0x92, 0x28, 0xf9, 0xba, + 0x77, 0x80, 0x95, 0x9a, 0xb2, 0x98, 0xf6, 0x22, 0x89, 0xef, 0xa5, 0x2c, 0x42, 0xdc, 0x67, 0x3d, + 0x66, 0x9a, 0x4e, 0x3e, 0x4c, 0x0c, 0xae, 0xae, 0x14, 0x62, 0x7e, 0xfa, 0x69, 0x8e, 0xb2, 0xdf, + 0x15, 0x96, 0x4b, 0xc8, 0xfe, 0x92, 0x9d, 0xa2, 0xec, 0x41, 0xda, 0x6a, 0x6a, 0xb7, 0xa7, 0x21, + 0xfa, 0x83, 0x56, 0x1f, 0x28, 0x6b, 0xcd, 0xd2, 0x7d, 0x0f, 0x64, 0x92, 0xc6, 0x3a, 0xd7, 0x98, + 0x15, 0x25, 0xb9, 0x44, 0x26, 0x59, 0x86, 0xd8, 0x3a, 0x85, 0xdb, 0x63, 0x8a, 0x4c, 0xff, 0xf1, + 0xc7, 0x03, 0xea, 0x45, 0x71, 0x53, 0xeb, 0x14, 0x66, 0x95, 0xdf, 0x94, 0xf0, 0xa0, 0x1b, 0x4c, + 0x78, 0xaa, 0x2c, 0xe1, 0x5e, 0x34, 0x1a, 0x16, 0x90, 0xdc, 0x37, 0xa1, 0x7d, 0x45, 0x16, 0x74, + 0x24, 0xdd, 0xdc, 0xfc, 0xb2, 0x32, 0xeb, 0xc7, 0x07, 0x90, 0xdf, 0xca, 0x62, 0x1e, 0xb8, 0x8c, + 0x52, 0x5c, 0x31, 0x92, 0x45, 0x23, 0xf1, 0x6a, 0x84, 0x24, 0x3a, 0x06, 0xed, 0x21, 0x8b, 0x72, + 0x94, 0x42, 0x24, 0x59, 0x64, 0x3b, 0xdc, 0xfd, 0xdc, 0xab, 0xe1, 0x58, 0x9d, 0x83, 0x2b, 0x1d, + 0x5c, 0xf2, 0x79, 0xe5, 0x84, 0x6e, 0x47, 0x8d, 0x2b, 0xd4, 0x68, 0x4b, 0xea, 0x3c, 0xff, 0x95, + 0x13, 0xd2, 0xb8, 0xb6, 0xd9, 0xed, 0x27, 0x8f, 0x3d, 0xc4, 0x74, 0x3d, 0x99, 0xc5, 0x2a, 0xae, + 0x2d, 0xc5, 0x18, 0x3a, 0xc2, 0xac, 0x52, 0x9f, 0xe1, 0xde, 0x94, 0xe1, 0x7b, 0x12, 0xc8, 0x13, + 0x4d, 0xdd, 0x9a, 0x76, 0xe5, 0x64, 0x3b, 0x94, 0x67, 0xb0, 0x98, 0x24, 0x69, 0x36, 0xe7, 0x4f, + 0x34, 0xdd, 0x4f, 0xa1, 0x12, 0x3b, 0xd7, 0xd3, 0x9e, 0x54, 0x5a, 0xc5, 0x66, 0x4c, 0xd5, 0x05, + 0x5b, 0xaf, 0x19, 0x7f, 0x81, 0x77, 0xdc, 0x5c, 0x86, 0x29, 0x5a, 0xb5, 0xb9, 0x96, 0xb0, 0x8a, + 0x9a, 0xaf, 0x9c, 0xa4, 0x27, 0x09, 0x8e, 0x74, 0x5b, 0xbb, 0xb0, 0x5c, 0x23, 0x75, 0x05, 0xc8, + 0xb7, 0x00, 0x79, 0xed, 0xbd, 0xf2, 0x66, 0xd4, 0x3c, 0xa9, 0x13, 0xbc, 0x57, 0x4e, 0x46, 0xe2, + 0xe2, 0xdc, 0xd2, 0xf7, 0xaf, 0x9c, 0x7c, 0x75, 0x40, 0x34, 0xa4, 0x63, 0x19, 0x26, 0xf3, 0xb6, + 0x8c, 0xad, 0x83, 0xc7, 0xcf, 0x73, 0x1f, 0x39, 0xc9, 0x56, 0xca, 0x17, 0x75, 0xc9, 0x1c, 0xa1, + 0x2c, 0x74, 0x90, 0x3a, 0x1a, 0xd3, 0x41, 0x6b, 0xd3, 0x3d, 0x5d, 0xd9, 0xe6, 0x7e, 0xe4, 0x82, + 0xf9, 0x7f, 0x39, 0x03, 0x81, 0xfc, 0x91, 0x93, 0x8a, 0xd1, 0xe9, 0x0f, 0x7c, 0x9a, 0x63, 0x51, + 0x8c, 0x9c, 0x4c, 0xb4, 0x02, 0xf3, 0x40, 0x7c, 0x32, 0xd1, 0x06, 0x23, 0x63, 0xea, 0xc4, 0xad, + 0x7e, 0x47, 0x4e, 0x7a, 0x33, 0xe6, 0xf3, 0xba, 0x3d, 0x2a, 0xc3, 0xb7, 0x7e, 0xf5, 0x9b, 0x5f, + 0xe7, 0xaf, 0xab, 0x7a, 0x14, 0xeb, 0x66, 0x38, 0x12, 0xd7, 0xeb, 0xe6, 0x2e, 0xf9, 0x8b, 0x8b, + 0xd5, 0x6d, 0x44, 0xaf, 0xdb, 0xc8, 0xc9, 0x48, 0xb7, 0x18, 0x96, 0x4a, 0x5f, 0xdd, 0x97, 0x5e, + 0xaf, 0x8a, 0xf7, 0x47, 0x4e, 0x72, 0xdb, 0x5f, 0x6c, 0xcf, 0xa5, 0x89, 0xf6, 0x1c, 0x95, 0x67, + 0xc4, 0x6b, 0x49, 0xb4, 0xa3, 0x0c, 0x89, 0xfc, 0xf3, 0x7b, 0xc6, 0xb4, 0xa5, 0x27, 0xd1, 0x96, + 0x69, 0xf9, 0xc5, 0x59, 0x7e, 0x63, 0x5a, 0x92, 0xe5, 0x38, 0x2e, 0xdd, 0xfa, 0x38, 0x6a, 0x93, + 0xac, 0xfc, 0x17, 0xf7, 0x70, 0xe1, 0x35, 0x31, 0xe9, 0xe3, 0xe3, 0xd5, 0x1b, 0x15, 0x59, 0xcc, + 0xea, 0xdf, 0x1c, 0x95, 0x28, 0x04, 0x69, 0xe1, 0x06, 0xa4, 0x6b, 0x26, 0xd2, 0x69, 0x6a, 0x75, + 0x95, 0x0b, 0xdc, 0x5e, 0x98, 0xda, 0x15, 0xb9, 0x8d, 0x26, 0xaf, 0x15, 0xdb, 0xe3, 0xf2, 0xc4, + 0x81, 0xaa, 0x47, 0x5d, 0x7e, 0xc2, 0xdf, 0x91, 0x13, 0xf4, 0xc2, 0xea, 0xcd, 0xc3, 0xd5, 0x1b, + 0xbc, 0x6e, 0x86, 0x4f, 0x35, 0x29, 0xe5, 0x0f, 0x2b, 0x1f, 0xa4, 0xc0, 0xab, 0xfb, 0xd2, 0xad, + 0x20, 0x4a, 0x2f, 0x1e, 0x80, 0xf4, 0xdf, 0x98, 0xb6, 0x27, 0x7f, 0x2d, 0xcb, 0xd9, 0x91, 0xc8, + 0x99, 0xf2, 0x13, 0xc7, 0x91, 0x44, 0xf3, 0xca, 0xce, 0x84, 0xee, 0x0d, 0xc7, 0x38, 0xa6, 0x73, + 0x23, 0x29, 0x72, 0x6b, 0x18, 0x2c, 0xd3, 0x70, 0x3d, 0x06, 0x23, 0xfe, 0x75, 0x80, 0x15, 0xff, + 0xe6, 0xa4, 0x7c, 0x65, 0x8c, 0x6c, 0x4a, 0x78, 0xab, 0x2e, 0x32, 0xb8, 0x46, 0xe1, 0x73, 0x11, + 0x4d, 0x63, 0xf8, 0xfb, 0x02, 0xf3, 0x59, 0x43, 0xa8, 0x28, 0x76, 0xae, 0x89, 0xc4, 0xed, 0x31, + 0x69, 0x56, 0xb9, 0x33, 0x3c, 0xc6, 0xd1, 0x32, 0x29, 0xa7, 0x9f, 0x50, 0xac, 0xee, 0xd0, 0xea, + 0x4c, 0x32, 0x43, 0x19, 0x17, 0x0d, 0xe9, 0xa8, 0xa0, 0x6c, 0x24, 0x1d, 0x42, 0xca, 0x1a, 0x1a, + 0xec, 0xc6, 0xbf, 0x95, 0x78, 0x55, 0xbb, 0x96, 0xc3, 0xa1, 0xe9, 0x65, 0x70, 0x88, 0x9d, 0x7a, + 0x1d, 0xa4, 0x13, 0x29, 0xa4, 0xa8, 0xc0, 0x71, 0xfd, 0xc4, 0x3c, 0xe8, 0xc7, 0x38, 0xf5, 0xb8, + 0xab, 0x2c, 0xf2, 0x96, 0x43, 0x31, 0xe9, 0x6e, 0x30, 0x7c, 0xe4, 0x10, 0xf8, 0xbd, 0xf3, 0x20, + 0x29, 0x1f, 0xfe, 0xf8, 0x75, 0x0f, 0x94, 0x7c, 0x08, 0xb5, 0xa5, 0x97, 0x09, 0x2f, 0x19, 0x69, + 0x7f, 0x51, 0x12, 0x15, 0x19, 0x79, 0x19, 0x31, 0xe9, 0x05, 0xf0, 0xe3, 0xa3, 0x48, 0xc9, 0xeb, + 0x91, 0xba, 0xf4, 0x4f, 0xaf, 0xe4, 0x39, 0x8e, 0x38, 0x74, 0x7f, 0x81, 0x32, 0xff, 0xc5, 0x64, + 0x80, 0x22, 0x2f, 0x4b, 0xff, 0x5a, 0xd5, 0xc6, 0x9f, 0x24, 0xe0, 0x58, 0xe1, 0x52, 0x30, 0x85, + 0xeb, 0xab, 0xe5, 0xeb, 0xb2, 0x64, 0x2e, 0xa5, 0xf3, 0x11, 0x0e, 0x38, 0x21, 0x61, 0x84, 0xbb, + 0xa3, 0x32, 0xf7, 0x6b, 0xcd, 0xb5, 0xde, 0xc4, 0x19, 0x60, 0xef, 0x27, 0x1b, 0x5f, 0x9b, 0xb4, + 0x0c, 0xac, 0x3f, 0x3a, 0x03, 0xd6, 0x2f, 0x33, 0x7b, 0xf2, 0x80, 0x9f, 0x9d, 0xde, 0xb0, 0x73, + 0xe9, 0xe2, 0xd9, 0x2e, 0xc1, 0x49, 0x27, 0xcd, 0x64, 0x09, 0x5b, 0x2f, 0x07, 0x7f, 0xb3, 0x3f, + 0x1d, 0x83, 0x10, 0x57, 0x31, 0x8e, 0x81, 0xe7, 0x86, 0xab, 0xac, 0xc5, 0xd5, 0x02, 0xeb, 0xb3, + 0x64, 0x25, 0xae, 0x0d, 0xab, 0x9e, 0x63, 0xdd, 0xce, 0xd2, 0xdf, 0xfe, 0x8a, 0xdb, 0x33, 0x30, + 0x2b, 0x0a, 0xb2, 0x13, 0xcf, 0x96, 0x71, 0x14, 0xfc, 0xf8, 0x3d, 0x30, 0x26, 0xd1, 0x64, 0x4c, + 0x31, 0xd0, 0xad, 0xd9, 0x8b, 0xb5, 0x13, 0x3a, 0xf6, 0xcf, 0x19, 0xf2, 0x9f, 0xe5, 0x12, 0x5c, + 0x55, 0xb1, 0x1c, 0x6c, 0xef, 0x5c, 0xdc, 0xb7, 0x89, 0xe9, 0xbd, 0xca, 0x50, 0x7a, 0x02, 0xba, + 0xe5, 0xd8, 0xac, 0x30, 0xae, 0xf3, 0x6a, 0xbe, 0x77, 0x39, 0xf2, 0xea, 0x2e, 0xfc, 0x6b, 0x07, + 0x0f, 0xfe, 0x75, 0x90, 0xa5, 0x2d, 0x5c, 0x7a, 0xef, 0x79, 0x90, 0xc5, 0xa0, 0x5c, 0x5a, 0xfa, + 0x21, 0xe4, 0x7a, 0x9a, 0x98, 0x2c, 0xe1, 0x3b, 0x64, 0x33, 0xca, 0xec, 0xc9, 0x5e, 0x4a, 0x7a, + 0x69, 0xca, 0x49, 0xda, 0xc0, 0xd9, 0x52, 0x56, 0x65, 0xaa, 0x25, 0x21, 0xad, 0x54, 0x9a, 0xc4, + 0xac, 0x84, 0x75, 0x19, 0x6b, 0x81, 0x34, 0xdb, 0x32, 0x25, 0xc2, 0xf4, 0x35, 0xd3, 0x2c, 0xcc, + 0xbe, 0xf5, 0x6b, 0x65, 0x8a, 0x53, 0x47, 0x0c, 0xea, 0x7f, 0xb0, 0x85, 0x59, 0xf2, 0x7e, 0x6b, + 0x80, 0x34, 0x63, 0x92, 0xd6, 0x66, 0xb8, 0x42, 0x87, 0xee, 0x71, 0x41, 0x7a, 0x3a, 0x1c, 0x9b, + 0x80, 0xf9, 0xc5, 0xd5, 0x12, 0x36, 0x12, 0xd7, 0xc4, 0xa8, 0x7b, 0x6c, 0x6a, 0x00, 0x1e, 0x4b, + 0x3f, 0xd7, 0xbc, 0x46, 0x9c, 0xc7, 0x31, 0xce, 0xe3, 0xa9, 0x38, 0x3a, 0x06, 0xbb, 0x9d, 0x7c, + 0xf4, 0x8a, 0x5f, 0x9a, 0xea, 0x07, 0x92, 0x36, 0x59, 0xd3, 0xbd, 0x9a, 0x7b, 0x74, 0xbf, 0xa6, + 0xba, 0xac, 0x7b, 0x8f, 0x76, 0x88, 0x7b, 0x10, 0x25, 0x7f, 0xa5, 0xd7, 0xc9, 0xe3, 0x10, 0xe6, + 0x71, 0x28, 0x91, 0x07, 0x8e, 0x9b, 0xf3, 0x7c, 0xce, 0x3a, 0x6d, 0x69, 0x7e, 0x4c, 0xab, 0x77, + 0xc4, 0xeb, 0x49, 0xa3, 0xeb, 0x04, 0x6b, 0xc5, 0x76, 0xd2, 0xfe, 0xc3, 0xba, 0x8f, 0xd6, 0xca, + 0x50, 0xf8, 0x39, 0xcd, 0xc4, 0x01, 0x3a, 0x91, 0x4e, 0xf0, 0x43, 0x48, 0x8f, 0x66, 0x62, 0xdc, + 0x99, 0x1a, 0xe1, 0x25, 0x75, 0xe0, 0x08, 0x98, 0xa9, 0x5d, 0x4c, 0x69, 0x32, 0x4a, 0xc1, 0x57, + 0xf7, 0x8f, 0xa1, 0x43, 0xae, 0xc4, 0x49, 0x42, 0x1b, 0xb0, 0x5c, 0x32, 0xd2, 0x51, 0x9f, 0x48, + 0x17, 0xd0, 0x9f, 0xab, 0x9d, 0x4c, 0xd2, 0xa3, 0x6b, 0xd5, 0xe7, 0x09, 0xac, 0xcf, 0x13, 0xa3, + 0xdb, 0x95, 0x66, 0xa0, 0x44, 0xf4, 0x77, 0x96, 0x18, 0x60, 0x9e, 0x8b, 0xf6, 0x89, 0xe6, 0x1a, + 0x86, 0xa9, 0x0c, 0x5a, 0x9d, 0x44, 0x9e, 0xe1, 0x89, 0x63, 0x28, 0x3d, 0x03, 0x82, 0x3d, 0x1e, + 0xb8, 0xcd, 0x8c, 0x9b, 0x9e, 0x34, 0x1f, 0xc7, 0x1a, 0x9f, 0x53, 0xe9, 0x36, 0x83, 0x7f, 0x0b, + 0xcf, 0x8a, 0xe9, 0xa5, 0xe4, 0x12, 0x17, 0xc8, 0x6a, 0x2d, 0xfd, 0x63, 0x78, 0x56, 0xd4, 0x77, + 0xa3, 0xcf, 0x3f, 0x52, 0x32, 0xf5, 0x8c, 0x91, 0xb1, 0xe7, 0x1f, 0x9f, 0xd8, 0xb7, 0xdb, 0xb0, + 0x2d, 0xb6, 0x7d, 0xd2, 0x18, 0x4b, 0xf3, 0x8b, 0xb3, 0x05, 0xe3, 0x6e, 0x49, 0x61, 0xef, 0xd3, + 0x79, 0xf1, 0x58, 0xdd, 0xe1, 0x8c, 0x53, 0xfa, 0x69, 0xcd, 0x98, 0x12, 0xfc, 0xbd, 0x38, 0x5f, + 0xa3, 0xdb, 0xc5, 0x68, 0xfd, 0x07, 0xdb, 0xe5, 0xda, 0x75, 0xdc, 0x8b, 0xe5, 0xde, 0x9b, 0x56, + 0x47, 0xbe, 0x46, 0xe1, 0xca, 0xc4, 0xed, 0x69, 0xa5, 0x50, 0xf8, 0x66, 0x75, 0x78, 0xf3, 0x01, + 0x71, 0x7c, 0xb2, 0xc7, 0x45, 0xf2, 0x1b, 0x41, 0xda, 0x5f, 0xa5, 0x67, 0x41, 0x70, 0xb0, 0x1e, + 0x4f, 0xeb, 0x6f, 0xa6, 0x21, 0x99, 0x58, 0xbd, 0x7c, 0xfa, 0xe8, 0x61, 0x7a, 0x07, 0xb4, 0x9f, + 0x7b, 0x9c, 0xd7, 0x68, 0x21, 0xb3, 0xd3, 0x4f, 0x9c, 0x65, 0xfc, 0x5d, 0x63, 0x2c, 0xe7, 0x1f, + 0x18, 0x63, 0xe9, 0x7b, 0x8d, 0xeb, 0x69, 0x3f, 0x19, 0x12, 0x88, 0x69, 0x6c, 0x8c, 0xdd, 0xf4, + 0x3f, 0xd0, 0xea, 0xbe, 0x73, 0xa4, 0x93, 0x63, 0x8c, 0xb8, 0x0d, 0xf9, 0x19, 0xcc, 0x2f, 0x26, + 0x18, 0x16, 0x91, 0x75, 0xa3, 0x61, 0x01, 0xd3, 0xbb, 0x07, 0x21, 0xcd, 0xef, 0x63, 0x9e, 0x7f, + 0xa4, 0x53, 0x32, 0x71, 0x4d, 0x7c, 0x97, 0x3f, 0xe1, 0xed, 0x31, 0x6a, 0x97, 0x9a, 0x90, 0x42, + 0x7a, 0x18, 0xa2, 0x66, 0x3e, 0xee, 0x3f, 0x8e, 0xc6, 0x6e, 0x1e, 0x7c, 0x16, 0x63, 0x26, 0xfd, + 0x3f, 0xca, 0x7e, 0xdd, 0xb7, 0xeb, 0x9e, 0x51, 0xbe, 0x0c, 0x00, 0xa9, 0xbe, 0x0b, 0x06, 0x6f, + 0x0a, 0x82, 0x19, 0x7b, 0x21, 0x67, 0x5a, 0x05, 0x58, 0xc4, 0x72, 0x71, 0xe6, 0x48, 0x67, 0xaa, + 0x55, 0x7c, 0x46, 0x83, 0xdf, 0x0a, 0x9f, 0x23, 0x2a, 0x17, 0x28, 0x39, 0x03, 0x47, 0x5f, 0xf8, + 0x55, 0xd4, 0x81, 0x6b, 0x6e, 0xa9, 0xb4, 0x02, 0x2c, 0x29, 0x6b, 0xe5, 0x26, 0x07, 0x7b, 0x3b, + 0x98, 0x86, 0xe4, 0x66, 0x57, 0x2a, 0xc5, 0x00, 0xa5, 0xae, 0xe4, 0x5c, 0x1d, 0xbf, 0xd9, 0x22, + 0x96, 0x3a, 0xed, 0x52, 0x69, 0xf8, 0x61, 0xf5, 0x94, 0xc8, 0x6d, 0x24, 0xd9, 0xf7, 0x18, 0x2f, + 0x1c, 0x7e, 0x34, 0x6a, 0x95, 0x57, 0xe0, 0xde, 0xc6, 0xcf, 0xce, 0x3e, 0x4d, 0xec, 0x4e, 0x7a, + 0xbb, 0xf7, 0xab, 0xf6, 0x14, 0x92, 0xf9, 0x0c, 0x6c, 0x55, 0xc5, 0x38, 0x63, 0x2e, 0x38, 0xa8, + 0xde, 0xe9, 0x48, 0xe8, 0xf8, 0xc6, 0xce, 0x90, 0xcc, 0x3d, 0xe9, 0x18, 0xfb, 0xd8, 0x96, 0xe3, + 0x69, 0xaf, 0xcf, 0xef, 0x70, 0x89, 0x23, 0xc9, 0x8d, 0xc4, 0x03, 0xcf, 0x8e, 0xac, 0x0e, 0x75, + 0x08, 0x1d, 0x84, 0x24, 0x37, 0xd2, 0x9b, 0x8e, 0x24, 0x37, 0x12, 0xd7, 0x91, 0xe4, 0xe2, 0xcc, + 0x23, 0xed, 0x86, 0x64, 0x28, 0xe9, 0x58, 0x7f, 0xc0, 0xce, 0x6d, 0x4e, 0xc9, 0xfe, 0xa4, 0x65, + 0xe4, 0x93, 0xac, 0x84, 0x59, 0xa9, 0x12, 0x4a, 0x16, 0x39, 0xd3, 0x09, 0x8a, 0x89, 0xdd, 0x99, + 0x8f, 0x5b, 0x6d, 0x90, 0x7b, 0x60, 0xd2, 0x4e, 0x60, 0x29, 0xac, 0xd1, 0x76, 0xa6, 0x61, 0xd2, + 0x5f, 0xfa, 0xfe, 0x48, 0x3c, 0x66, 0x4e, 0x95, 0xf4, 0xef, 0xcf, 0x1d, 0x39, 0xae, 0x82, 0xab, + 0x72, 0x35, 0xea, 0xb9, 0x1a, 0xd3, 0x72, 0xe5, 0x56, 0x79, 0x27, 0x92, 0x88, 0x87, 0x84, 0x7c, + 0xbb, 0x60, 0x0c, 0x3f, 0x99, 0xc5, 0x70, 0xb2, 0x7c, 0xf8, 0xd7, 0x18, 0xcd, 0x96, 0x1a, 0xc1, + 0x7a, 0xb5, 0xbd, 0xac, 0x8e, 0x74, 0xc6, 0x56, 0x5d, 0xbc, 0xc8, 0x16, 0xce, 0x17, 0xfb, 0xe0, + 0x97, 0x49, 0x2e, 0xd3, 0x27, 0x31, 0xaf, 0xce, 0x5e, 0xc8, 0x91, 0x91, 0xc2, 0x10, 0xaf, 0x08, + 0xff, 0x5d, 0x67, 0x6c, 0xf3, 0x96, 0x1b, 0x90, 0x4b, 0x98, 0x32, 0x9a, 0x5b, 0xd4, 0x75, 0x17, + 0x7d, 0x4c, 0x5e, 0x30, 0x49, 0x31, 0xb4, 0x0a, 0xd3, 0x02, 0xe0, 0xe9, 0xde, 0x24, 0x77, 0x39, + 0xe1, 0xf4, 0x83, 0xe4, 0xcb, 0x8f, 0x72, 0x61, 0x68, 0x0a, 0xdd, 0x84, 0xa4, 0xc0, 0x3d, 0x8a, + 0xe1, 0xaa, 0x28, 0xa6, 0x59, 0xaa, 0x2b, 0xb1, 0xe1, 0x81, 0xee, 0xfe, 0x6e, 0xb5, 0x16, 0xf7, + 0xa0, 0x3d, 0x51, 0x47, 0xab, 0x61, 0x07, 0xfe, 0x45, 0x0e, 0x21, 0x14, 0xfb, 0xf3, 0xc0, 0xa6, + 0xac, 0x62, 0x30, 0x2a, 0xd6, 0xd8, 0x9f, 0x7f, 0xb9, 0x49, 0xb1, 0xd0, 0xef, 0x56, 0x73, 0x77, + 0x5c, 0xee, 0x0a, 0xaf, 0x6e, 0xf6, 0x61, 0xad, 0x7c, 0xfd, 0x64, 0xe5, 0x6a, 0x66, 0x16, 0x75, + 0x23, 0xb5, 0x1b, 0x75, 0xdf, 0x3e, 0x7b, 0xb4, 0x62, 0xfd, 0xcc, 0x96, 0xeb, 0xc2, 0x98, 0x7d, + 0xcc, 0x8b, 0xec, 0xc3, 0x07, 0x44, 0x73, 0xe5, 0x9b, 0xc6, 0x5c, 0x5d, 0x47, 0x9a, 0xd7, 0xb2, + 0x85, 0xd7, 0x52, 0x47, 0x9f, 0xe8, 0x66, 0x7a, 0x3c, 0x2b, 0x89, 0x9e, 0xe9, 0x2d, 0x59, 0xc0, + 0xea, 0x3f, 0x58, 0x37, 0x39, 0xd9, 0x96, 0x69, 0x5e, 0x23, 0x98, 0xad, 0x6d, 0x39, 0x6b, 0x6b, + 0xf2, 0x1c, 0x61, 0xed, 0x27, 0x3c, 0x89, 0x62, 0xa4, 0x33, 0x21, 0xa4, 0xb1, 0x7b, 0x46, 0x9a, + 0x98, 0xa7, 0x26, 0x2a, 0x1b, 0xe3, 0xcc, 0x89, 0xbf, 0xc0, 0x76, 0x12, 0xe9, 0x2b, 0xa4, 0x0c, + 0xb6, 0xd1, 0x1e, 0x28, 0xb0, 0xdd, 0x1c, 0x7a, 0xcf, 0x0a, 0x44, 0x57, 0x92, 0xf6, 0xeb, 0xa2, + 0x58, 0x8a, 0x9c, 0xea, 0x7e, 0xc5, 0x68, 0x1f, 0x88, 0xac, 0x96, 0x2b, 0xec, 0x37, 0xb7, 0x42, + 0x16, 0xec, 0xec, 0x8a, 0x9a, 0xc3, 0xb8, 0x13, 0xaf, 0x59, 0xa3, 0x9e, 0x09, 0xd8, 0x09, 0xa7, + 0x61, 0x27, 0x61, 0xc1, 0x19, 0x23, 0x1c, 0x05, 0xe9, 0x4d, 0xe3, 0x58, 0x1f, 0x84, 0x1d, 0x49, + 0x6f, 0x31, 0x86, 0xab, 0x3d, 0x85, 0x21, 0xa7, 0x22, 0xf3, 0xf3, 0x76, 0xb7, 0x0d, 0x4b, 0xe7, + 0x22, 0xbd, 0x4b, 0x29, 0x2b, 0xcd, 0x92, 0x02, 0x84, 0x1d, 0xd3, 0x6a, 0xc0, 0x43, 0xb6, 0xcd, + 0x24, 0xcf, 0x95, 0x22, 0x25, 0xef, 0x6b, 0x9b, 0x15, 0x83, 0x7d, 0x80, 0x9d, 0x35, 0xce, 0x56, + 0x3f, 0xb2, 0xef, 0x85, 0xd9, 0xe4, 0x47, 0x34, 0x85, 0x78, 0xa4, 0x53, 0xaa, 0xe3, 0xad, 0x9b, + 0x8f, 0x3c, 0x84, 0xbb, 0x54, 0x0a, 0x7b, 0xc6, 0x03, 0x58, 0x6b, 0x90, 0xad, 0x09, 0xdc, 0x23, + 0x35, 0x87, 0xce, 0xde, 0xb1, 0xbf, 0x96, 0xe2, 0x9d, 0xac, 0x4a, 0xab, 0x74, 0x4f, 0x56, 0xc1, + 0xd2, 0x73, 0x60, 0xc6, 0x3c, 0x9c, 0x3c, 0x0f, 0x75, 0x28, 0x91, 0xbe, 0x1e, 0xbf, 0x08, 0x57, + 0x34, 0x07, 0xdf, 0xeb, 0x6a, 0xce, 0xf6, 0x66, 0x7d, 0xcf, 0xd9, 0xd8, 0x49, 0x7c, 0x8e, 0x33, + 0xa9, 0x85, 0xeb, 0x4f, 0xec, 0x2e, 0xb5, 0x69, 0x7c, 0x77, 0xa9, 0x39, 0x23, 0xeb, 0x5d, 0x59, + 0x62, 0xd0, 0x9e, 0x13, 0x35, 0xf3, 0x72, 0xbb, 0xcc, 0x69, 0x9e, 0x80, 0xa1, 0xe4, 0xa2, 0x59, + 0x10, 0xcd, 0xe9, 0x3e, 0x15, 0x9c, 0xa0, 0x4a, 0x09, 0xad, 0xda, 0xf0, 0xda, 0xa8, 0x59, 0xb7, + 0xac, 0x78, 0x92, 0x97, 0x77, 0xe4, 0x7b, 0xcc, 0x87, 0xd3, 0xa3, 0x54, 0x52, 0xec, 0x4d, 0x6b, + 0x9a, 0x2f, 0x90, 0x60, 0xe9, 0xc5, 0x22, 0x18, 0xbd, 0x87, 0xc5, 0xd9, 0x60, 0xcc, 0x2f, 0x86, + 0xcb, 0xfd, 0xe7, 0x98, 0x86, 0xd0, 0x04, 0xd2, 0xbc, 0xa9, 0xea, 0x73, 0xf9, 0xf5, 0xdd, 0x8d, + 0x43, 0x82, 0x36, 0x43, 0x3b, 0xb8, 0x68, 0xae, 0x96, 0x71, 0x9b, 0xc8, 0xe8, 0xb1, 0x6b, 0xe4, + 0xe9, 0xae, 0xde, 0xc8, 0xec, 0x77, 0x25, 0xc2, 0xca, 0xfb, 0xd1, 0x91, 0xa8, 0x2d, 0xc5, 0xf3, + 0xb1, 0x7e, 0xb3, 0xf2, 0xd2, 0xa6, 0xd1, 0x88, 0xe1, 0x14, 0x8f, 0x37, 0x5a, 0x2b, 0x60, 0x78, + 0x30, 0xd9, 0xff, 0xa7, 0x99, 0xf6, 0x59, 0x89, 0xb3, 0x4a, 0x6e, 0x4a, 0xa0, 0x1e, 0x67, 0x18, + 0x5b, 0x4f, 0x1f, 0x79, 0x88, 0x70, 0x78, 0xc9, 0xaf, 0x06, 0xa1, 0x76, 0xbd, 0xf9, 0xa8, 0x8b, + 0x74, 0x55, 0xf7, 0x2b, 0x4e, 0xa6, 0xe3, 0xe6, 0x77, 0xfa, 0x90, 0x5f, 0xcf, 0x10, 0x83, 0x55, + 0x7d, 0xb5, 0x1b, 0x71, 0x94, 0x86, 0x53, 0xd6, 0xbd, 0x51, 0x5b, 0x04, 0xbf, 0x11, 0x91, 0x43, + 0xa5, 0x13, 0xb3, 0x26, 0xf2, 0x92, 0x71, 0x71, 0x65, 0xc6, 0x1e, 0x5a, 0xe3, 0x66, 0x6a, 0xa7, + 0x23, 0x5d, 0x9b, 0x08, 0x9b, 0xfe, 0xbc, 0x02, 0x86, 0xc7, 0x92, 0x69, 0x3f, 0xf9, 0x3f, 0x48, + 0xdb, 0x44, 0x69, 0x7b, 0x9a, 0x31, 0xed, 0x71, 0x7b, 0x36, 0x44, 0xc3, 0x72, 0xb3, 0x76, 0x3a, + 0x2f, 0x8c, 0xdc, 0x13, 0x61, 0xbc, 0x59, 0x92, 0x18, 0xc0, 0x55, 0x0f, 0x0f, 0x98, 0x3d, 0xb8, + 0x86, 0x4e, 0x8c, 0x32, 0x2b, 0xdf, 0x15, 0xd6, 0x92, 0x0b, 0xbd, 0xe3, 0x14, 0x07, 0x3d, 0x37, + 0x59, 0x7e, 0x73, 0x80, 0xbe, 0xc0, 0x92, 0x64, 0x61, 0xe8, 0xe5, 0xbc, 0x10, 0x7b, 0x36, 0xd9, + 0x3d, 0xd8, 0x4e, 0x58, 0xaa, 0xf7, 0xf6, 0x13, 0x6a, 0x71, 0x74, 0x0a, 0x7b, 0xde, 0x8d, 0xcf, + 0x19, 0xd1, 0x2c, 0xf6, 0xfc, 0xa2, 0x95, 0xf6, 0x3e, 0x26, 0xf6, 0x7c, 0x90, 0xce, 0x6c, 0xdf, + 0xdc, 0xc7, 0xcb, 0xef, 0x99, 0xf8, 0xa5, 0xb5, 0xf9, 0x13, 0xbf, 0x72, 0x3f, 0x8e, 0x8b, 0x8f, + 0x30, 0x4e, 0x7d, 0xb4, 0xb1, 0x8e, 0xf4, 0x5f, 0xe6, 0xd3, 0xe9, 0x8a, 0x12, 0xc0, 0xa7, 0xe6, + 0x68, 0x3b, 0xfe, 0xfd, 0x26, 0xfe, 0x7e, 0x05, 0xc7, 0x00, 0x93, 0x5a, 0x8c, 0xa8, 0x79, 0x7e, + 0xed, 0x22, 0x93, 0x3e, 0x33, 0x29, 0xb8, 0x21, 0x8c, 0xad, 0x74, 0x69, 0xe5, 0x92, 0x3d, 0x5d, + 0xcd, 0x00, 0x4f, 0x90, 0x06, 0xeb, 0xb8, 0x26, 0x6c, 0xaf, 0x4b, 0x34, 0xd6, 0xf0, 0x9b, 0x71, + 0xec, 0x9b, 0x82, 0xf4, 0x6f, 0xd4, 0x4e, 0x42, 0xc4, 0xf3, 0x4e, 0x60, 0x7c, 0x3e, 0xbd, 0x75, + 0x24, 0xde, 0xae, 0xd4, 0xf6, 0xc4, 0x55, 0x3a, 0x77, 0xfa, 0x88, 0x5a, 0x3a, 0xd1, 0xba, 0x9e, + 0x58, 0x11, 0x78, 0x6d, 0x7a, 0xeb, 0x56, 0x5d, 0xa7, 0x75, 0x27, 0x24, 0x7b, 0xce, 0xba, 0x87, + 0x68, 0xc0, 0x4e, 0x3a, 0x81, 0x27, 0xec, 0x31, 0x9e, 0x86, 0xd7, 0x87, 0x23, 0x9c, 0xa5, 0xf0, + 0x9b, 0x01, 0xc5, 0xdc, 0x9f, 0x85, 0xeb, 0xf2, 0xa6, 0xc8, 0x3a, 0x86, 0x6c, 0x93, 0xa3, 0x82, + 0x66, 0xf4, 0xe0, 0x6e, 0xa5, 0x66, 0xad, 0x8c, 0x35, 0x21, 0x1a, 0x3a, 0xee, 0xa7, 0x2d, 0x48, + 0x1e, 0xca, 0x74, 0x34, 0x61, 0xa1, 0x8f, 0x7c, 0x08, 0x33, 0x2f, 0x83, 0xb9, 0xb1, 0x8c, 0x81, + 0x6e, 0x75, 0x32, 0xf6, 0x59, 0x7d, 0x22, 0x8c, 0x34, 0x40, 0x43, 0xbf, 0x0a, 0xf6, 0x28, 0xa6, + 0x76, 0x81, 0x34, 0xcf, 0x5c, 0x86, 0x9a, 0xd5, 0x84, 0xdc, 0xe6, 0x9e, 0xa9, 0x0d, 0x8b, 0x86, + 0x77, 0x7a, 0x07, 0xbb, 0xdf, 0xe9, 0x25, 0xdf, 0x3e, 0x83, 0xdd, 0x84, 0x59, 0x8d, 0x54, 0xe0, + 0xe2, 0xc7, 0xaf, 0x1c, 0x5d, 0xeb, 0x31, 0x9e, 0x5e, 0x9b, 0x40, 0x34, 0xd6, 0x1e, 0xe3, 0xfe, + 0xbe, 0x4f, 0xc4, 0x59, 0x5e, 0xfa, 0xb3, 0x69, 0x2d, 0xae, 0xbd, 0x53, 0x8f, 0xae, 0x15, 0xcb, + 0x6a, 0x52, 0xf8, 0xd1, 0x17, 0x8e, 0xbe, 0xd0, 0x0b, 0x79, 0x01, 0xed, 0x7c, 0xb8, 0x54, 0xb5, + 0xc6, 0x0c, 0xfd, 0x6b, 0x9a, 0x4c, 0x35, 0xdd, 0xf4, 0xdb, 0xf5, 0xac, 0x76, 0xde, 0xe9, 0x81, + 0x6c, 0xa4, 0x62, 0xbb, 0xbc, 0x13, 0xe6, 0xbf, 0xaf, 0x5d, 0xc4, 0x19, 0x94, 0x51, 0x36, 0x34, + 0xbc, 0x9b, 0x49, 0x74, 0xf4, 0xbe, 0x82, 0xef, 0x91, 0x9d, 0x04, 0xf6, 0xd3, 0xa3, 0x2b, 0x3f, + 0xb5, 0xa7, 0x1b, 0xef, 0x1b, 0xc4, 0xd2, 0xc3, 0x03, 0x56, 0x3b, 0x52, 0x17, 0x5c, 0x4f, 0x9c, + 0xe6, 0x48, 0x0f, 0xf6, 0x98, 0x8d, 0xb0, 0x91, 0x93, 0xdf, 0x34, 0xe2, 0x38, 0xbd, 0x48, 0x73, + 0xac, 0x59, 0x99, 0x5c, 0x0c, 0xb7, 0xef, 0x59, 0xd7, 0x5c, 0x4b, 0xdf, 0xd8, 0xed, 0xd1, 0x59, + 0x8c, 0x2a, 0x85, 0x59, 0x3f, 0x5e, 0x0c, 0x2d, 0x45, 0xae, 0x6f, 0xcf, 0x70, 0x38, 0xf9, 0x5d, + 0x01, 0xf5, 0x45, 0xb3, 0x67, 0x4f, 0xbc, 0xd9, 0xc5, 0xf1, 0xbd, 0xdf, 0x79, 0x80, 0x2c, 0x11, + 0x88, 0x13, 0x65, 0xc8, 0x13, 0x86, 0x77, 0x09, 0x5f, 0x78, 0xdd, 0x8c, 0x12, 0x30, 0x22, 0xf7, + 0x64, 0xd6, 0xad, 0xf7, 0x48, 0x8f, 0x6e, 0x2f, 0xd7, 0xa3, 0xf3, 0xf9, 0xc4, 0x12, 0xa9, 0xc4, + 0x3e, 0x89, 0x69, 0x68, 0x89, 0xd1, 0x8b, 0x4c, 0x3f, 0xe4, 0x03, 0xfc, 0x9b, 0xc7, 0xce, 0x99, + 0x67, 0xaa, 0x16, 0x7e, 0x0a, 0x1b, 0x79, 0x80, 0xd2, 0xcc, 0x9a, 0x64, 0x12, 0xb4, 0x41, 0xab, + 0x00, 0xe3, 0x97, 0x98, 0xc5, 0x40, 0x80, 0x38, 0xeb, 0xd9, 0x72, 0x45, 0x2b, 0x38, 0x4b, 0x7e, + 0xfb, 0xcb, 0xdf, 0xfe, 0xfa, 0xc8, 0x83, 0x74, 0x6f, 0x87, 0xec, 0xc9, 0x73, 0xff, 0x5c, 0x34, + 0x28, 0x4d, 0xc8, 0x9e, 0x01, 0x82, 0x29, 0x43, 0x1b, 0x8c, 0x3c, 0x60, 0xcd, 0xc0, 0x2f, 0x5e, + 0x6f, 0x9f, 0x49, 0x76, 0xa2, 0xc1, 0x2e, 0x29, 0x20, 0x75, 0x89, 0x96, 0xbe, 0xde, 0xca, 0x37, + 0xad, 0x5c, 0xc7, 0xdf, 0xce, 0x29, 0x0d, 0xb6, 0x70, 0xe1, 0x68, 0x4c, 0x5b, 0x1c, 0xb1, 0x59, + 0x79, 0xcd, 0x5a, 0xa1, 0x76, 0x89, 0x69, 0x09, 0x1e, 0xc4, 0xdf, 0xd9, 0xec, 0x69, 0x3f, 0xf9, + 0xce, 0xf9, 0xd6, 0xaf, 0xdb, 0x85, 0x40, 0x20, 0xd0, 0xac, 0xe5, 0x76, 0x0a, 0x2b, 0x85, 0x55, + 0x09, 0x94, 0x7f, 0xb7, 0x6b, 0xa6, 0x46, 0x38, 0x98, 0x1b, 0x44, 0xbb, 0x29, 0x7e, 0x9f, 0xa6, + 0xbd, 0xd9, 0x6a, 0xdd, 0x11, 0x6f, 0x58, 0x95, 0x76, 0x5e, 0x29, 0x81, 0x1b, 0x6a, 0x21, 0x04, + 0xb3, 0xa1, 0x00, 0xda, 0xf4, 0xff, 0x93, 0xa1, 0x1e, 0x62, 0x79, 0x4b, 0xc1, 0xa8, 0xb9, 0x95, + 0x08, 0xbb, 0x67, 0x2b, 0x61, 0x76, 0x17, 0x95, 0x00, 0xbb, 0xcb, 0xca, 0xec, 0x7c, 0x17, 0x18, + 0x19, 0xf2, 0x64, 0x6e, 0xa0, 0x4c, 0xf1, 0x90, 0xc6, 0x1e, 0xe9, 0x80, 0x05, 0xcb, 0xa9, 0x0c, + 0x4a, 0x2e, 0xfb, 0xbd, 0x2f, 0xd4, 0x1d, 0x09, 0x28, 0x0c, 0xb7, 0xef, 0xcb, 0x38, 0x66, 0x23, + 0xa5, 0x8a, 0x91, 0x30, 0x20, 0x4a, 0x08, 0xa3, 0x90, 0x6b, 0x9a, 0x0e, 0x8a, 0x5c, 0x5a, 0x5f, + 0x87, 0xe3, 0x37, 0xcb, 0x35, 0xe1, 0xf6, 0x80, 0x36, 0xf9, 0xf6, 0x32, 0xad, 0x40, 0x9c, 0x50, + 0x1b, 0x6f, 0xcd, 0xa4, 0xb3, 0xd5, 0xcc, 0xfe, 0xb4, 0xb2, 0x16, 0xe0, 0xd2, 0x6e, 0xc5, 0x2b, + 0x1b, 0x0a, 0x30, 0x97, 0xc9, 0x4a, 0xbe, 0x6b, 0x02, 0xe6, 0x54, 0x1a, 0xb5, 0x86, 0x03, 0xd1, + 0x5c, 0xfa, 0xb6, 0xe3, 0x8a, 0x32, 0x19, 0x9f, 0x1d, 0xec, 0x59, 0x50, 0x6c, 0xac, 0x7c, 0x93, + 0x15, 0x53, 0xc7, 0x88, 0x62, 0xe8, 0x18, 0x46, 0xfe, 0xe9, 0x59, 0x2d, 0x5b, 0xcd, 0xe1, 0xed, + 0xc7, 0x75, 0x34, 0x47, 0xd6, 0xeb, 0xf7, 0xb5, 0x4a, 0x4e, 0x98, 0xde, 0x4a, 0x84, 0x96, 0xfe, + 0xde, 0x19, 0xdd, 0x8e, 0x99, 0x62, 0x9e, 0xa2, 0x96, 0x8e, 0x42, 0xa6, 0x93, 0xa5, 0x96, 0x8f, + 0x5c, 0x48, 0xb3, 0x96, 0xdf, 0x2a, 0xec, 0xc0, 0xd6, 0x6d, 0x30, 0x61, 0x8f, 0x64, 0x6b, 0x6e, + 0x96, 0xb2, 0xa8, 0x3a, 0x79, 0x7f, 0x8c, 0x4d, 0x99, 0xfb, 0x36, 0x32, 0x7e, 0x8f, 0x7d, 0xef, + 0x63, 0xdf, 0xfb, 0xd8, 0xf7, 0xb2, 0xea, 0x14, 0x9b, 0xb5, 0x2c, 0xc9, 0x05, 0x27, 0xaf, 0xfa, + 0x42, 0xc6, 0x2f, 0x3a, 0xd8, 0x17, 0x2e, 0xf6, 0x85, 0x8b, 0x9f, 0x8b, 0x10, 0x9e, 0xd3, 0x7b, + 0x83, 0x3a, 0xca, 0x30, 0x5b, 0x95, 0xa3, 0x4b, 0xad, 0x85, 0x60, 0x31, 0x6b, 0x51, 0xdf, 0x68, + 0xcf, 0x9d, 0x4e, 0x3f, 0x3b, 0xf3, 0x4e, 0xe3, 0xa1, 0x3e, 0xb5, 0x17, 0x2c, 0x2e, 0x88, 0x74, + 0x07, 0x3e, 0xeb, 0x02, 0xd7, 0x3c, 0x6e, 0x77, 0x85, 0x1c, 0x21, 0x79, 0xc1, 0x70, 0x73, 0x69, + 0x65, 0x21, 0xd3, 0x88, 0xdd, 0xc5, 0x7d, 0xa1, 0xa5, 0xdb, 0xd0, 0x05, 0x70, 0xbd, 0xbb, 0x10, + 0xc6, 0x9e, 0x55, 0x0b, 0x7c, 0xe5, 0xe1, 0xb2, 0x68, 0x36, 0xf9, 0x77, 0xa3, 0x6f, 0x5e, 0x9c, + 0x2c, 0x43, 0xf5, 0x46, 0xa2, 0xf0, 0xef, 0xfd, 0x56, 0x09, 0x27, 0x43, 0x17, 0x26, 0x43, 0x0f, + 0x2b, 0x85, 0xe1, 0xfb, 0xa3, 0xb3, 0x92, 0x3c, 0x71, 0x27, 0xc9, 0xa9, 0xdb, 0x99, 0x4d, 0xea, + 0xf0, 0x45, 0x86, 0x47, 0xe8, 0x97, 0x09, 0xa7, 0x9c, 0x38, 0xa3, 0x44, 0x9c, 0x76, 0xe7, 0xb8, + 0x70, 0xb7, 0xea, 0x52, 0x4c, 0x2c, 0x85, 0xdf, 0x61, 0x7e, 0x90, 0xd1, 0xe6, 0xb5, 0xf8, 0xca, + 0xd3, 0x53, 0x67, 0x5e, 0x5e, 0x9a, 0xb5, 0x02, 0x1c, 0x5f, 0x65, 0x51, 0x2b, 0x8d, 0x1a, 0x42, + 0xa2, 0xb0, 0x18, 0xc8, 0x7f, 0x31, 0xb6, 0x6a, 0xa1, 0x3e, 0xc2, 0x76, 0x73, 0x9f, 0x51, 0x19, + 0x85, 0xba, 0xc7, 0xae, 0x22, 0x6a, 0x71, 0xee, 0xb3, 0xcb, 0xe7, 0xc7, 0xf5, 0xac, 0x58, 0xf7, + 0xec, 0x45, 0x88, 0xd1, 0x41, 0xdd, 0x9b, 0x58, 0x08, 0x67, 0x4e, 0xa5, 0xee, 0x3d, 0xac, 0x1a, + 0x9f, 0x17, 0xe8, 0x1e, 0xc3, 0x6a, 0xb1, 0xb7, 0x65, 0x6d, 0xb1, 0xee, 0x65, 0x4c, 0xc1, 0x37, + 0xf5, 0xba, 0x5f, 0xb1, 0xa5, 0xf8, 0xdc, 0xa4, 0xfb, 0x12, 0x8b, 0x61, 0x3b, 0x4d, 0x56, 0x4d, + 0xbe, 0x66, 0xea, 0x39, 0x1f, 0xf6, 0x20, 0xe6, 0xd2, 0xa6, 0xfb, 0x02, 0xeb, 0xc0, 0x91, 0xb2, + 0xfa, 0xcb, 0xbf, 0x0a, 0x66, 0x20, 0x4f, 0x9a, 0x81, 0x25, 0xeb, 0xd4, 0x7d, 0x7e, 0xc5, 0xd9, + 0x37, 0x16, 0x2a, 0x5b, 0xc2, 0x53, 0x06, 0xbe, 0x5d, 0xad, 0x7b, 0x3d, 0xeb, 0x45, 0x6a, 0xb0, + 0x5e, 0xf7, 0xfc, 0xd5, 0x87, 0x39, 0x6d, 0xd1, 0x3d, 0x82, 0x6d, 0xc5, 0xe7, 0xc7, 0x74, 0x6f, + 0x68, 0x8f, 0xe7, 0x95, 0x69, 0x4f, 0xe8, 0x1e, 0xcc, 0xb6, 0x61, 0xf8, 0x33, 0xba, 0xe7, 0xaf, + 0x7e, 0x7c, 0x66, 0x1e, 0xc5, 0xf0, 0xda, 0x3b, 0xf7, 0x7d, 0x6d, 0x00, 0x57, 0x92, 0x22, 0x66, + 0x59, 0xfb, 0x12, 0xf7, 0x73, 0xf3, 0xb9, 0xd3, 0x98, 0x6b, 0xae, 0x34, 0x2f, 0x26, 0xe8, 0x2d, + 0xf6, 0x78, 0x8c, 0xf4, 0xc8, 0x77, 0x63, 0x5d, 0x73, 0xb5, 0xbd, 0xe4, 0xb5, 0x93, 0x8d, 0xea, + 0x5c, 0x67, 0x72, 0x17, 0x28, 0xec, 0xd7, 0xb1, 0xbe, 0xb9, 0x8f, 0x56, 0x1b, 0xd3, 0xb0, 0xd8, + 0xc2, 0x6c, 0x1d, 0xb1, 0x3f, 0xa2, 0x91, 0xda, 0xd5, 0x38, 0x77, 0x57, 0x37, 0x80, 0x30, 0x70, + 0x7c, 0xb5, 0xef, 0xf6, 0x10, 0x9f, 0xbb, 0x85, 0x48, 0x67, 0x44, 0xc8, 0x16, 0x76, 0x82, 0x75, + 0x7a, 0x27, 0x5c, 0x36, 0x9c, 0xc6, 0x3e, 0xf7, 0xb0, 0xa7, 0x8b, 0xf8, 0x24, 0xd1, 0x53, 0x86, + 0x11, 0x9f, 0x72, 0xd8, 0x93, 0x83, 0xce, 0x5c, 0xd9, 0x93, 0x4c, 0x18, 0xf6, 0xd3, 0x83, 0x4c, + 0x13, 0xde, 0x3e, 0x1d, 0x67, 0x1b, 0xe4, 0x4c, 0x27, 0x1f, 0x4c, 0xb9, 0xf8, 0x17, 0x53, 0x0c, + 0x67, 0x44, 0xc5, 0x98, 0x40, 0x16, 0x41, 0xfa, 0x4c, 0xda, 0x1a, 0xe5, 0xf6, 0x7f, 0x8f, 0x53, + 0x1b, 0x4e, 0xa7, 0xfd, 0xf3, 0x1c, 0xfc, 0x92, 0xbd, 0x4d, 0x48, 0xa0, 0x58, 0xa9, 0x1d, 0xdc, + 0xfb, 0x23, 0xc5, 0xb8, 0xce, 0x97, 0x32, 0x4b, 0xd7, 0xc5, 0x7a, 0x86, 0x38, 0x8e, 0xec, 0xa4, + 0x76, 0x76, 0xb1, 0x0b, 0xcb, 0xf1, 0xda, 0xa1, 0xd7, 0x0e, 0xa5, 0x21, 0x1c, 0x12, 0x56, 0xed, + 0x62, 0xaf, 0x47, 0xf7, 0xb3, 0xe3, 0xb9, 0xbe, 0x9f, 0x9d, 0x6f, 0x1f, 0x92, 0x26, 0xc4, 0x16, + 0x1f, 0x8d, 0xb7, 0x2f, 0x3e, 0xf6, 0xac, 0x96, 0xc5, 0xd2, 0xe4, 0x16, 0x8e, 0xc6, 0xfe, 0x07, + 0x75, 0x0c, 0xed, 0x8c, 0x14, 0x86, 0x36, 0xe3, 0x65, 0x45, 0xe6, 0x85, 0x67, 0xb2, 0xe4, 0x49, + 0xfa, 0xe0, 0xf1, 0x24, 0x7d, 0xf0, 0x30, 0x9f, 0xab, 0xae, 0x3c, 0xb0, 0x4a, 0x84, 0xe2, 0xc9, + 0x2c, 0xbd, 0xf9, 0xf8, 0x53, 0xec, 0x1d, 0x9a, 0x62, 0x25, 0xca, 0x41, 0xf4, 0x86, 0xd1, 0xac, + 0x0c, 0x99, 0xdb, 0x4d, 0x66, 0x93, 0x4d, 0x31, 0xf5, 0xba, 0xde, 0xe3, 0x3b, 0x94, 0xec, 0x0e, + 0x2d, 0x11, 0x53, 0xb1, 0xf0, 0x67, 0x8a, 0x83, 0x29, 0xe5, 0x47, 0x2d, 0xc9, 0xba, 0x9f, 0xc0, + 0xdf, 0x3e, 0xf6, 0x5b, 0x4c, 0xfe, 0x76, 0xe1, 0x9e, 0x85, 0xbc, 0x6d, 0x85, 0xb9, 0x45, 0x35, + 0xa6, 0x6b, 0x64, 0x5c, 0xf5, 0x19, 0x7d, 0x4d, 0x95, 0x9c, 0x63, 0x7c, 0x6b, 0x1f, 0xeb, 0x21, + 0x6d, 0xd6, 0x70, 0x5f, 0x33, 0xed, 0x95, 0xb5, 0x1d, 0xdd, 0xaa, 0x15, 0xd7, 0x07, 0x87, 0x6a, + 0x8a, 0x6c, 0xc3, 0xbd, 0x0d, 0x21, 0x78, 0xdb, 0x77, 0x30, 0xbd, 0x5f, 0xe6, 0x71, 0xeb, 0x77, + 0xb0, 0x25, 0x06, 0x8a, 0x58, 0xf3, 0xc0, 0xd4, 0x0a, 0x26, 0xef, 0xee, 0xc6, 0x7d, 0x80, 0x2b, + 0x81, 0xa1, 0x74, 0x63, 0x77, 0x2f, 0xf9, 0x14, 0xe7, 0x3b, 0x42, 0x6b, 0xd2, 0x06, 0x45, 0xc7, + 0xfd, 0x09, 0x77, 0x45, 0x2d, 0xa5, 0x43, 0xda, 0x07, 0x48, 0xbf, 0x4c, 0xb4, 0xd2, 0xb3, 0x50, + 0x0b, 0xc9, 0xcf, 0xfe, 0x26, 0xc2, 0xe5, 0xe7, 0xd9, 0xfc, 0xe0, 0x16, 0xc1, 0xef, 0x33, 0x84, + 0x4b, 0x43, 0x2a, 0xe4, 0x5c, 0x56, 0x0a, 0x1b, 0x05, 0xf7, 0xa9, 0x9e, 0xab, 0x50, 0x0f, 0x6e, + 0xb8, 0x1a, 0xe1, 0x92, 0x64, 0x78, 0x41, 0x3f, 0x97, 0xbc, 0xc9, 0x5f, 0x1b, 0x6b, 0x2f, 0x4a, + 0xfb, 0xe9, 0x58, 0xee, 0x40, 0xd7, 0x58, 0xcf, 0xe8, 0x4c, 0x9f, 0x6d, 0x8c, 0x6f, 0x74, 0x66, + 0x03, 0x3a, 0xc6, 0x3b, 0x3a, 0x3f, 0xa7, 0x26, 0xc9, 0xed, 0x68, 0x7b, 0xcf, 0xd1, 0xf2, 0xdc, + 0x71, 0xaf, 0x5d, 0xcb, 0xde, 0x93, 0xcb, 0x74, 0x13, 0xd8, 0xa4, 0x4a, 0x4e, 0xc2, 0xce, 0x93, + 0x9d, 0xc8, 0xbf, 0xcd, 0x70, 0x79, 0x46, 0xdb, 0x75, 0xbe, 0xc1, 0x10, 0xa4, 0x98, 0x4d, 0xb7, + 0x48, 0xe8, 0x87, 0x66, 0xb2, 0x6e, 0x69, 0x9e, 0x12, 0x26, 0xed, 0x89, 0x1b, 0xdb, 0xc0, 0x41, + 0x67, 0x37, 0x07, 0xc2, 0xf1, 0x26, 0xe4, 0xaf, 0x70, 0xf6, 0x18, 0x15, 0x63, 0xe4, 0x69, 0xc2, + 0x7b, 0x0d, 0x19, 0x13, 0x08, 0x0e, 0xbe, 0x02, 0x6f, 0x09, 0x38, 0x08, 0xa7, 0xd4, 0x5b, 0x05, + 0xb9, 0x62, 0x40, 0x2a, 0x2d, 0x1b, 0xd2, 0x76, 0x92, 0x87, 0xd4, 0x64, 0x8d, 0x3e, 0x22, 0xe9, + 0x0a, 0x61, 0x95, 0xa4, 0x70, 0x15, 0xae, 0xd2, 0xd8, 0x3e, 0x90, 0xd0, 0xcc, 0x29, 0x9a, 0x43, + 0x96, 0xf7, 0xf8, 0xc6, 0x53, 0xe4, 0x05, 0xf2, 0xba, 0x2a, 0x33, 0x0f, 0x25, 0x0e, 0xe6, 0xb7, + 0xa4, 0xd7, 0x15, 0x66, 0xfe, 0x42, 0x1f, 0xad, 0xde, 0x38, 0xf7, 0xac, 0xa6, 0xb5, 0x8e, 0xdf, + 0x11, 0x6f, 0x36, 0x11, 0x4e, 0xa7, 0x62, 0xc4, 0xbf, 0x9f, 0xbf, 0x89, 0x59, 0x36, 0x91, 0x16, + 0xae, 0x0c, 0xea, 0xd1, 0x70, 0x30, 0x6a, 0x99, 0x7b, 0x4e, 0x1b, 0xb9, 0xb9, 0x13, 0x66, 0x6a, + 0x23, 0x64, 0x31, 0xde, 0xc9, 0xfd, 0x0c, 0x60, 0xa9, 0x8b, 0x8a, 0xa4, 0x66, 0x30, 0x8b, 0xcd, + 0xb8, 0x61, 0x9e, 0x09, 0x0e, 0xe7, 0x4c, 0xc8, 0x09, 0xcc, 0xd4, 0x34, 0x71, 0x12, 0xf1, 0xfc, + 0x52, 0x97, 0xe4, 0x47, 0x7a, 0x8e, 0x1c, 0x9e, 0xcb, 0x5f, 0x71, 0x4e, 0x1b, 0x94, 0xec, 0x52, + 0x89, 0x38, 0xa9, 0xb6, 0x4b, 0xec, 0xc2, 0x76, 0x30, 0x05, 0xe3, 0xad, 0x24, 0xe7, 0x2d, 0xf1, + 0x66, 0xf8, 0x4a, 0x98, 0x4f, 0xd4, 0x99, 0xcc, 0xae, 0x58, 0x23, 0x8d, 0x1d, 0x26, 0x59, 0x73, + 0xb4, 0xc1, 0xdc, 0x21, 0x6d, 0x8a, 0x32, 0xd9, 0x4b, 0xab, 0x42, 0x16, 0xc6, 0x30, 0x56, 0x6d, + 0x8e, 0x74, 0x33, 0x6a, 0xeb, 0xa6, 0x5d, 0x54, 0x64, 0xdd, 0x4f, 0xf7, 0xad, 0x38, 0x45, 0x27, + 0x12, 0xb9, 0xb9, 0xc9, 0xf3, 0xae, 0x93, 0xa4, 0xa7, 0xee, 0x12, 0xbc, 0x01, 0x08, 0xce, 0xfb, + 0x10, 0x2a, 0xf3, 0x32, 0x02, 0x73, 0xdb, 0x08, 0x01, 0xec, 0xd8, 0xca, 0xe0, 0xeb, 0x1b, 0x31, + 0xbd, 0x70, 0x67, 0xe9, 0x89, 0x8d, 0x15, 0x43, 0x23, 0x27, 0xef, 0x98, 0x0b, 0x05, 0xb4, 0x93, + 0x44, 0x0e, 0x76, 0x9a, 0x0a, 0x86, 0x36, 0x92, 0x0b, 0x7b, 0x2b, 0x20, 0x88, 0x6b, 0xa0, 0x80, + 0x61, 0xb5, 0x48, 0xbb, 0xdb, 0xeb, 0x6a, 0xf1, 0xe9, 0x8b, 0xf8, 0x54, 0x57, 0x57, 0x88, 0x4f, + 0x15, 0xf8, 0xd4, 0x54, 0x37, 0x05, 0x9f, 0x4a, 0xf1, 0xa9, 0xa0, 0x0e, 0x0c, 0x73, 0xc2, 0xa4, + 0x33, 0x49, 0x88, 0x98, 0x32, 0xa6, 0xe1, 0xc3, 0xf4, 0x48, 0x6f, 0xba, 0x0a, 0x9f, 0x65, 0xdc, + 0x3b, 0xd1, 0xd7, 0x0b, 0x90, 0xd7, 0x7f, 0x14, 0xef, 0x77, 0x12, 0x0a, 0x38, 0xde, 0x6b, 0xf0, + 0x9d, 0x59, 0xa9, 0xc4, 0xa7, 0x16, 0xc2, 0xb0, 0xab, 0xcb, 0xc5, 0xa7, 0x65, 0xf8, 0x44, 0xfa, + 0xe1, 0x2b, 0xf0, 0x2e, 0xe3, 0x7d, 0x09, 0xee, 0x89, 0x4e, 0x13, 0x4a, 0x3b, 0x3e, 0xb7, 0x45, + 0x17, 0xb2, 0x9d, 0xe0, 0x3d, 0x18, 0x36, 0xa8, 0x50, 0xac, 0x7b, 0x31, 0x16, 0x21, 0x71, 0x76, + 0x60, 0xc8, 0x8b, 0x14, 0x0b, 0x47, 0x45, 0x08, 0x77, 0xbe, 0xf6, 0xda, 0x38, 0x9d, 0xbf, 0x86, + 0x7b, 0x54, 0xb2, 0x43, 0x3a, 0xe6, 0xd5, 0xb5, 0x7b, 0x59, 0xbb, 0x6d, 0xe2, 0xed, 0x26, 0x95, + 0x46, 0x7a, 0xec, 0x37, 0xab, 0x98, 0xb6, 0xf0, 0x38, 0xd6, 0xd7, 0x40, 0xf5, 0x5d, 0x05, 0x53, + 0x5c, 0x60, 0x88, 0x0d, 0xbe, 0x41, 0x9a, 0x9c, 0x21, 0xae, 0xf5, 0x81, 0x39, 0x3c, 0xda, 0x0e, + 0x8a, 0xc3, 0x6b, 0xc3, 0x96, 0xbf, 0xad, 0x48, 0xd0, 0xd3, 0xe8, 0x61, 0x68, 0x42, 0x19, 0x83, + 0xdd, 0x14, 0x93, 0x5b, 0xf9, 0xb5, 0x22, 0xbf, 0xbf, 0xa3, 0x67, 0xc5, 0xb1, 0xda, 0x5e, 0x6f, + 0x08, 0x42, 0x84, 0x3f, 0xc3, 0xec, 0x40, 0x44, 0x9e, 0x27, 0xff, 0xe2, 0xc5, 0x9e, 0x15, 0x67, + 0x31, 0xc7, 0x7c, 0x86, 0x13, 0x51, 0x29, 0xda, 0x89, 0xc3, 0x60, 0x96, 0x65, 0x18, 0xa3, 0xf6, + 0x79, 0x58, 0x80, 0xef, 0x4c, 0x38, 0x92, 0xe9, 0x24, 0x94, 0xe9, 0x03, 0xb1, 0x27, 0xbb, 0x62, + 0xd6, 0x9f, 0x2c, 0xde, 0x89, 0xde, 0xcc, 0xaa, 0xcd, 0x47, 0xe3, 0x1c, 0xfb, 0x08, 0xde, 0xc6, + 0x11, 0x1f, 0xe2, 0x23, 0x09, 0x67, 0x4c, 0x28, 0x7d, 0x2c, 0x05, 0xbc, 0x50, 0xea, 0xb5, 0xf1, + 0xf1, 0x94, 0xc0, 0x9a, 0x65, 0xb6, 0x50, 0x0e, 0xaa, 0xcb, 0x27, 0xb5, 0x07, 0xf4, 0x25, 0xda, + 0x03, 0x6b, 0x8c, 0xed, 0xe1, 0xeb, 0xd4, 0x06, 0x0f, 0x0f, 0x60, 0x9d, 0x0a, 0xa9, 0x75, 0x25, + 0xbf, 0x34, 0x89, 0xb7, 0x2e, 0xb3, 0x62, 0x11, 0x12, 0x69, 0xe7, 0x83, 0xc8, 0x46, 0x2a, 0xb6, + 0x95, 0xcc, 0xda, 0x2a, 0x87, 0x52, 0x27, 0x7d, 0xd6, 0x44, 0x0e, 0x4c, 0x93, 0x76, 0x6e, 0x18, + 0xdb, 0x30, 0xea, 0x89, 0xf4, 0xec, 0x7a, 0x1e, 0x0a, 0x9b, 0x8f, 0x29, 0x12, 0xd6, 0x3a, 0xa4, + 0xe4, 0x5e, 0xab, 0x44, 0x8a, 0xe9, 0x0e, 0xe4, 0x8c, 0xa0, 0x20, 0xf2, 0x3c, 0x04, 0xf1, 0xdb, + 0x20, 0xee, 0xee, 0xac, 0xe1, 0x16, 0x28, 0x88, 0xc2, 0x95, 0xda, 0x04, 0x7a, 0x0f, 0xf3, 0x58, + 0x23, 0xa6, 0x30, 0x80, 0x8b, 0x0a, 0x9c, 0x82, 0x6b, 0x8c, 0xfd, 0x88, 0x77, 0x29, 0x3c, 0x8e, + 0x73, 0x91, 0xfc, 0x5f, 0x05, 0x81, 0x64, 0x81, 0x01, 0x42, 0x94, 0xf8, 0xd7, 0x2d, 0x48, 0x4f, + 0x72, 0x46, 0xd1, 0x93, 0x5c, 0x3a, 0x21, 0x4d, 0xd2, 0x13, 0xc3, 0x55, 0x1e, 0x1f, 0x88, 0x72, + 0x3b, 0xae, 0x75, 0xe6, 0xc4, 0xcf, 0xa9, 0x74, 0x9a, 0xdd, 0x02, 0xf6, 0x6b, 0x9e, 0x6a, 0x15, + 0x89, 0x4b, 0x61, 0x27, 0x93, 0x8e, 0x26, 0xfd, 0xbc, 0x30, 0xcc, 0x6d, 0x33, 0x61, 0x6e, 0xab, + 0x1e, 0x25, 0x07, 0xdb, 0xcc, 0x0d, 0x37, 0x48, 0x86, 0xb7, 0x9e, 0x12, 0x85, 0x94, 0xd7, 0x66, + 0xac, 0xa9, 0x20, 0xa6, 0xbc, 0xac, 0xaf, 0x47, 0xde, 0xe2, 0x18, 0x3b, 0x69, 0xb2, 0xe8, 0x34, + 0x7d, 0xb4, 0xe7, 0x04, 0xa6, 0xcb, 0x80, 0x74, 0xa3, 0xbd, 0x36, 0xe9, 0x2f, 0xfc, 0x7f, 0x60, + 0x2b, 0xf3, 0xe5, 0xb1, 0xb6, 0x32, 0x84, 0x13, 0x94, 0xb0, 0xbd, 0x99, 0x43, 0xeb, 0x80, 0xc1, + 0x4d, 0xeb, 0xe8, 0x7e, 0x0f, 0xd9, 0x5f, 0x65, 0x3b, 0x26, 0x4b, 0x26, 0x8e, 0xc3, 0xca, 0x24, + 0x67, 0x07, 0xe8, 0x5c, 0x23, 0xd2, 0xb3, 0xbb, 0x47, 0x7d, 0x5b, 0xcc, 0x48, 0xc7, 0xf5, 0xc5, + 0x3e, 0x3a, 0x14, 0x7a, 0xa7, 0x78, 0x0e, 0xb6, 0xd1, 0x62, 0xb7, 0x17, 0x14, 0x97, 0x17, 0xea, + 0x39, 0x6e, 0xe4, 0xdc, 0xf3, 0xbd, 0x42, 0x98, 0xbc, 0x98, 0x17, 0xa6, 0xed, 0x02, 0x26, 0xb0, + 0x5d, 0x00, 0xd9, 0xb4, 0x5e, 0x74, 0xf9, 0x9d, 0x69, 0xbc, 0x7f, 0xb8, 0x27, 0x4a, 0xa8, 0x77, + 0x66, 0x1d, 0x67, 0x4e, 0x64, 0x5f, 0x5a, 0xb9, 0xce, 0x98, 0xd6, 0x98, 0x0c, 0x29, 0xe6, 0x21, + 0xc3, 0xdf, 0x71, 0x42, 0xd4, 0x47, 0x7b, 0xb6, 0x73, 0x5f, 0x6e, 0x1b, 0x49, 0x7a, 0xa5, 0x99, + 0xa2, 0x7b, 0xa5, 0xe9, 0x76, 0xfa, 0xb9, 0xdd, 0x3b, 0xff, 0x52, 0x4f, 0xa5, 0x9b, 0x52, 0xc0, + 0xb9, 0xff, 0x44, 0x78, 0x4d, 0x54, 0x3f, 0x55, 0xc8, 0x88, 0x93, 0x5d, 0x9e, 0x4a, 0x73, 0x74, + 0x83, 0xab, 0x11, 0x5c, 0xc4, 0xdd, 0xad, 0x84, 0xc9, 0x0e, 0x31, 0x73, 0x61, 0x7c, 0xb4, 0xc4, + 0xf3, 0xf4, 0x83, 0xf8, 0x65, 0x23, 0x52, 0x87, 0x1e, 0xb7, 0xff, 0x77, 0x03, 0x73, 0xdf, 0x07, + 0xa1, 0xe4, 0x1c, 0x08, 0xd2, 0x3c, 0x31, 0x73, 0xd4, 0x4e, 0x6b, 0x76, 0x2d, 0x44, 0xd6, 0x4c, + 0x5e, 0x13, 0xf8, 0x6c, 0x2d, 0x59, 0xbd, 0xc8, 0x0b, 0xc8, 0x0f, 0x18, 0xee, 0x4e, 0x18, 0x2a, + 0x04, 0x59, 0x44, 0x8a, 0xba, 0x9f, 0x6c, 0xc6, 0xbd, 0x83, 0x8c, 0x73, 0xc9, 0xa5, 0xfb, 0xc6, + 0xf3, 0x78, 0xf1, 0x2d, 0x47, 0xfd, 0xce, 0x38, 0xcb, 0x51, 0xbf, 0x75, 0x8f, 0x78, 0xc5, 0xdc, + 0xb7, 0x01, 0x7e, 0x27, 0x30, 0xfd, 0x11, 0xee, 0x33, 0x2f, 0x88, 0xf1, 0x1d, 0x38, 0x63, 0xb9, + 0xa7, 0xbc, 0x4a, 0xfc, 0x95, 0xc3, 0x7d, 0xe1, 0xb5, 0xca, 0x47, 0x38, 0xe6, 0x96, 0x2d, 0x71, + 0x8a, 0x46, 0xde, 0x60, 0xdc, 0x10, 0xcd, 0x65, 0x5c, 0x7d, 0x90, 0x73, 0xf5, 0xec, 0xd4, 0xa2, + 0x2c, 0xe5, 0x8b, 0xe5, 0x58, 0x0f, 0xd9, 0xf5, 0xa5, 0xe9, 0xda, 0x75, 0x4e, 0x2f, 0x65, 0x3a, + 0x7c, 0xb9, 0x90, 0x23, 0x5a, 0x4e, 0xf7, 0xe2, 0xaa, 0x9e, 0x3b, 0xbd, 0x0c, 0x77, 0xf1, 0xe7, + 0x60, 0xb1, 0x54, 0x93, 0xd2, 0x07, 0x48, 0xa5, 0x31, 0x12, 0x4f, 0x7b, 0x5e, 0xff, 0x49, 0x69, + 0x23, 0xef, 0x60, 0x55, 0x4d, 0xa4, 0xc1, 0xfb, 0xed, 0x43, 0x8c, 0x3b, 0x65, 0x56, 0xcc, 0x8c, + 0xe7, 0x35, 0xc5, 0x16, 0x0f, 0xae, 0xe7, 0xa7, 0x88, 0x9d, 0x74, 0x5e, 0x51, 0x78, 0x6d, 0x3e, + 0x40, 0x3b, 0x95, 0x90, 0xd1, 0x8e, 0x30, 0x19, 0xad, 0x7b, 0x26, 0x98, 0xf3, 0x67, 0x82, 0xd5, + 0x3e, 0x13, 0x6e, 0x2c, 0xf2, 0x13, 0x26, 0x56, 0xc6, 0xfb, 0x8c, 0x6b, 0xfb, 0x17, 0x9c, 0x37, + 0xfb, 0x74, 0xbc, 0xa0, 0x48, 0x52, 0x13, 0xec, 0x74, 0xfb, 0xa7, 0xca, 0x33, 0x38, 0xae, 0xb5, + 0x13, 0x12, 0xb8, 0x40, 0xdc, 0x76, 0x54, 0xf5, 0xc4, 0x32, 0xd2, 0x3d, 0x93, 0x47, 0xed, 0x25, + 0xef, 0x8f, 0x9c, 0x8e, 0x7d, 0xaa, 0x1c, 0x5a, 0xb9, 0x2e, 0xcd, 0x28, 0x2f, 0xdc, 0x31, 0xd3, + 0xc0, 0xfd, 0x24, 0x6f, 0x25, 0x8b, 0x53, 0x36, 0x1a, 0x1f, 0x61, 0x69, 0x35, 0x92, 0x7f, 0x5a, + 0x58, 0x4b, 0xfb, 0xd8, 0x73, 0x8b, 0x82, 0xff, 0x19, 0xcd, 0x62, 0x4f, 0xcb, 0xcc, 0xe3, 0x68, + 0x5d, 0x67, 0xcf, 0x8d, 0x69, 0x65, 0xfc, 0x3e, 0x96, 0x91, 0x46, 0x6e, 0x19, 0xe7, 0x94, 0xd9, + 0x9b, 0x0f, 0x92, 0x6f, 0x8c, 0xfa, 0x9b, 0xa3, 0x4e, 0x7f, 0xc2, 0x2f, 0xbb, 0xa4, 0xeb, 0x28, + 0xb9, 0xf8, 0x1b, 0xb3, 0x6e, 0x79, 0xf7, 0x3a, 0x8e, 0x73, 0x16, 0x53, 0xaf, 0x51, 0x3d, 0xe1, + 0xb1, 0xa6, 0xe5, 0x43, 0xfe, 0x45, 0x76, 0xa5, 0x4e, 0xf5, 0x04, 0x51, 0x4f, 0x79, 0xbd, 0x7e, + 0x5f, 0xeb, 0xa1, 0x55, 0xa5, 0x9b, 0xc5, 0xfd, 0x63, 0xa8, 0x79, 0xe4, 0x34, 0xdf, 0x27, 0xb2, + 0xf8, 0x6b, 0xa3, 0x04, 0x07, 0x8a, 0x9b, 0x14, 0x3a, 0x9d, 0x48, 0xa6, 0xf8, 0x12, 0xa6, 0x58, + 0x9f, 0xcf, 0x5a, 0x57, 0x31, 0xac, 0x02, 0xd1, 0x2a, 0x99, 0xc8, 0x4a, 0x21, 0x5a, 0x40, 0xb3, + 0xbc, 0xe3, 0xff, 0x94, 0x1b, 0xb9, 0xfd, 0x26, 0x8e, 0xb5, 0x7c, 0x2c, 0xb3, 0xde, 0xf6, 0x2c, + 0x6c, 0xbb, 0x64, 0x6a, 0x83, 0x40, 0x46, 0xc2, 0xc2, 0x53, 0xb1, 0x8d, 0x7e, 0xab, 0xef, 0xce, + 0x0f, 0x91, 0xdf, 0xed, 0x73, 0xaf, 0x71, 0x9f, 0xd7, 0xe0, 0xd1, 0x8e, 0x92, 0x4f, 0x60, 0xf6, + 0x7c, 0xab, 0x76, 0x02, 0x9f, 0x99, 0xcf, 0x6b, 0x98, 0xca, 0xe4, 0xdb, 0xcc, 0xe7, 0x35, 0x48, + 0xda, 0xb9, 0xbc, 0x72, 0xed, 0x3c, 0x7b, 0xce, 0xd3, 0x2e, 0xe6, 0xcd, 0xd5, 0x2e, 0xd1, 0xfe, + 0xab, 0x15, 0xda, 0x0e, 0x1d, 0x7d, 0x88, 0xa1, 0x42, 0xfd, 0x3b, 0x93, 0x0c, 0xe3, 0x8e, 0xab, + 0x1f, 0x3b, 0x31, 0xb5, 0xe3, 0xe2, 0x6d, 0xa8, 0x9d, 0x48, 0xa2, 0x44, 0x61, 0x8c, 0x49, 0x90, + 0xe6, 0xd7, 0x67, 0x0b, 0xdb, 0xdf, 0xe8, 0x32, 0xc3, 0x2f, 0x14, 0x20, 0x9d, 0x93, 0x25, 0xc2, + 0x36, 0x62, 0x94, 0x85, 0xfa, 0xfe, 0xfd, 0xe8, 0x68, 0x14, 0x3c, 0x1a, 0x13, 0xad, 0x86, 0x40, + 0x80, 0xcf, 0x38, 0xa6, 0x9d, 0xb7, 0x52, 0xca, 0x94, 0x21, 0x69, 0xe1, 0xbf, 0x08, 0xb9, 0xee, + 0x4e, 0x31, 0x23, 0x12, 0x4f, 0x3f, 0x3b, 0x64, 0x33, 0x13, 0xf3, 0xbe, 0x5f, 0x18, 0x55, 0xba, + 0x4c, 0x7d, 0x96, 0x1c, 0x0b, 0xc7, 0x5b, 0xa4, 0xc0, 0x67, 0xcd, 0x40, 0xed, 0xff, 0x7e, 0x2b, + 0xdf, 0xcb, 0xdf, 0xbe, 0x85, 0x59, 0x62, 0xdb, 0x5a, 0xf3, 0xca, 0x05, 0x6e, 0xf7, 0xcf, 0x50, + 0x55, 0x85, 0x56, 0x03, 0xc7, 0x61, 0xa5, 0x9d, 0x5f, 0xa0, 0x34, 0x81, 0xb4, 0x47, 0x6f, 0x18, + 0x2e, 0xc0, 0x5e, 0x1d, 0x4f, 0xbd, 0x05, 0xcc, 0xfc, 0x5c, 0x80, 0x69, 0xe2, 0x20, 0xa5, 0x6a, + 0xca, 0x25, 0x34, 0x75, 0x86, 0x99, 0x9e, 0x65, 0x2f, 0x30, 0x8f, 0x30, 0x7b, 0x55, 0x76, 0x36, + 0x14, 0x35, 0x04, 0xec, 0x32, 0x47, 0x42, 0xf0, 0x82, 0xd9, 0x44, 0xde, 0x10, 0xb3, 0xc6, 0x22, + 0xb7, 0xa4, 0x30, 0x59, 0x53, 0x33, 0x9e, 0xc2, 0xc8, 0x4b, 0xe6, 0x1d, 0x84, 0x99, 0x55, 0xe4, + 0xf1, 0xb2, 0xd5, 0xdf, 0x1f, 0xe8, 0x4b, 0x69, 0x00, 0x45, 0x46, 0xd1, 0x5b, 0x6a, 0x3d, 0x61, + 0x2f, 0xd3, 0x88, 0x60, 0xfa, 0x9f, 0xe4, 0x45, 0x55, 0x5b, 0xc8, 0x6c, 0xcf, 0x33, 0xb9, 0xed, + 0xb9, 0x6e, 0xd5, 0x6c, 0x21, 0xef, 0x87, 0xb2, 0xbf, 0x4d, 0x50, 0x4c, 0x62, 0x99, 0x5c, 0xd6, + 0x96, 0xe1, 0xca, 0x44, 0x1a, 0x98, 0xbf, 0x0a, 0x68, 0x1f, 0xf0, 0x4f, 0xfd, 0x8a, 0x35, 0xb2, + 0x4e, 0x0c, 0xbb, 0x2c, 0xde, 0x79, 0x90, 0xdf, 0x96, 0xc1, 0xb0, 0xe1, 0xbd, 0xaa, 0xc3, 0x1a, + 0x80, 0x8c, 0xa8, 0x8a, 0x7f, 0x05, 0xf6, 0xd7, 0x10, 0x6d, 0x52, 0x94, 0x30, 0xa8, 0x36, 0x16, + 0xbe, 0x88, 0xc2, 0xd5, 0x45, 0xca, 0x22, 0x8c, 0x7b, 0x2b, 0x93, 0x3d, 0xaf, 0x8a, 0xfa, 0xf0, + 0xef, 0x57, 0xa3, 0x6e, 0xfc, 0xfb, 0xcf, 0x51, 0xe2, 0x60, 0xef, 0x88, 0x12, 0x97, 0xec, 0x8e, + 0x92, 0x0d, 0xa4, 0x2b, 0x4a, 0xf6, 0xbc, 0x33, 0xa2, 0x56, 0xfc, 0xdb, 0xc9, 0x24, 0xc6, 0xd3, + 0xd4, 0x2c, 0x96, 0x76, 0x4e, 0x9b, 0x41, 0x31, 0xcb, 0x21, 0xf2, 0x6c, 0x25, 0x87, 0x22, 0xbd, + 0x4a, 0x3c, 0xf1, 0x2c, 0x86, 0x1f, 0xde, 0xef, 0x34, 0xb3, 0x9c, 0x8d, 0x0b, 0x7a, 0x14, 0xe3, + 0xc2, 0x9e, 0x63, 0x3d, 0x3a, 0xfe, 0xd1, 0x36, 0xa7, 0xbf, 0x9a, 0x23, 0x95, 0x5e, 0xa8, 0x78, + 0x4f, 0x98, 0xc4, 0xca, 0x32, 0x39, 0x9c, 0x15, 0x75, 0x39, 0x70, 0x4f, 0x10, 0xc0, 0xcb, 0x4b, + 0xf6, 0x13, 0x8f, 0xdc, 0x84, 0xe1, 0xd5, 0x1b, 0x95, 0xa5, 0xe1, 0x2c, 0x35, 0x5b, 0x32, 0xca, + 0x4c, 0xe7, 0x73, 0x78, 0x76, 0x21, 0xa8, 0xf9, 0xfc, 0xbd, 0x72, 0xea, 0x96, 0x46, 0xec, 0x95, + 0xcf, 0xd2, 0x17, 0xa3, 0xde, 0x9b, 0xf9, 0xfb, 0xea, 0x8d, 0xdc, 0x47, 0xa2, 0x35, 0x80, 0x3b, + 0x3d, 0x1b, 0xd3, 0xc7, 0xdc, 0x33, 0x52, 0x59, 0xbd, 0xb1, 0xad, 0x55, 0x59, 0x19, 0x0e, 0x44, + 0xed, 0x90, 0x47, 0x78, 0x2e, 0x22, 0xf9, 0x03, 0x23, 0xfb, 0x51, 0x7b, 0x68, 0xb9, 0x30, 0xa9, + 0x6a, 0xcf, 0x95, 0xa3, 0xb5, 0x1b, 0xc3, 0xd8, 0xba, 0x51, 0xc6, 0xf7, 0x89, 0x0f, 0x12, 0xb6, + 0x87, 0x62, 0xc8, 0x9f, 0x80, 0xa5, 0x80, 0x91, 0xad, 0x6d, 0xa0, 0xcc, 0xa1, 0x5e, 0x15, 0xef, + 0x57, 0xdc, 0xab, 0x90, 0xb1, 0xd7, 0xbf, 0xb6, 0x33, 0xeb, 0x91, 0x1c, 0x71, 0x6e, 0xd9, 0xd0, + 0x95, 0xb3, 0xc8, 0x75, 0x94, 0x3a, 0xed, 0x5e, 0x13, 0xb7, 0x1a, 0x41, 0x5e, 0xfe, 0x3c, 0xe7, + 0xf8, 0x08, 0xfd, 0xba, 0x2d, 0x9a, 0xf2, 0xa6, 0x8d, 0x6b, 0x44, 0x77, 0x74, 0x87, 0xb2, 0x97, + 0x34, 0x0c, 0x69, 0x6f, 0xe7, 0x66, 0xfa, 0xee, 0x82, 0x31, 0x66, 0x1d, 0x24, 0xf4, 0x1b, 0x20, + 0x54, 0x94, 0x34, 0xea, 0xd4, 0x08, 0x59, 0xd1, 0x70, 0xc0, 0x2d, 0xe4, 0x38, 0x23, 0x1d, 0x50, + 0x71, 0x56, 0xc8, 0x51, 0x7c, 0xb3, 0xdc, 0x90, 0x15, 0xfa, 0x15, 0xf9, 0xce, 0x24, 0x04, 0x98, + 0x92, 0xf7, 0xe8, 0x1c, 0xb9, 0x04, 0x5b, 0x54, 0xb2, 0xca, 0x66, 0x66, 0x8d, 0xb3, 0x21, 0xec, + 0x57, 0xcd, 0x1c, 0x1f, 0xce, 0x05, 0xce, 0x1a, 0x6e, 0x61, 0x11, 0x5e, 0x1d, 0x7d, 0x89, 0xf0, + 0xa6, 0x08, 0x2f, 0x64, 0x71, 0xf1, 0xb5, 0xf1, 0xe0, 0xbe, 0xc2, 0xc6, 0xb1, 0xb3, 0x05, 0x0a, + 0xb1, 0x54, 0x45, 0xa3, 0xf1, 0xde, 0xf2, 0xf3, 0xc0, 0x1c, 0x13, 0xfa, 0xef, 0x6f, 0x52, 0xbd, + 0xcd, 0xd0, 0x0f, 0x1e, 0xcf, 0x44, 0xb2, 0x13, 0x85, 0x7e, 0xc2, 0x83, 0x20, 0xbb, 0xf6, 0x0e, + 0xc0, 0xfd, 0xe4, 0x6c, 0xb9, 0x19, 0x7a, 0x9d, 0xe5, 0xae, 0xb9, 0x62, 0x31, 0x5c, 0xbe, 0xe1, + 0x54, 0xc2, 0x4b, 0x0b, 0x9d, 0x0d, 0xb7, 0x48, 0xbc, 0x44, 0x52, 0x5a, 0xbc, 0xd1, 0xb1, 0xbe, + 0x7d, 0x28, 0x8f, 0xbc, 0xb7, 0xf5, 0x7b, 0xac, 0xb8, 0x1b, 0x7b, 0x92, 0x51, 0x4b, 0xe6, 0x73, + 0x5e, 0x0d, 0xb4, 0x1a, 0x13, 0xa7, 0xcc, 0xec, 0xf7, 0x64, 0x69, 0x42, 0x3b, 0x3f, 0xa3, 0x1d, + 0xf1, 0x66, 0x7a, 0x27, 0xe2, 0xfc, 0x99, 0x55, 0xbd, 0x91, 0x2c, 0xc4, 0x0c, 0xb1, 0xd3, 0xbd, + 0x79, 0x7e, 0x78, 0xa6, 0xd5, 0xd8, 0xf3, 0x2c, 0x0c, 0xb0, 0x77, 0xba, 0x2f, 0x79, 0x29, 0x0f, + 0xe7, 0x14, 0xae, 0xcd, 0x51, 0xe3, 0xb7, 0x0f, 0x29, 0x16, 0x57, 0xc9, 0x6b, 0xbf, 0x7c, 0xed, + 0x10, 0x86, 0xc9, 0x2c, 0xd5, 0x6e, 0xd2, 0xc5, 0x31, 0xcf, 0xc4, 0x51, 0xf5, 0xab, 0xa8, 0x99, + 0xaf, 0x18, 0xda, 0x93, 0xce, 0x3c, 0xc8, 0x91, 0xf3, 0x20, 0xd7, 0x95, 0x87, 0xfc, 0x19, 0x5b, + 0xd5, 0xf1, 0xaf, 0x4b, 0x35, 0x62, 0x3e, 0x86, 0x4e, 0x03, 0xf9, 0x20, 0xc1, 0x16, 0x2d, 0x77, + 0x1a, 0x39, 0xde, 0x1e, 0x93, 0xa2, 0xd9, 0x48, 0x0e, 0x24, 0x21, 0xb7, 0xcd, 0xa8, 0xf1, 0xb0, + 0x68, 0x50, 0x8b, 0x58, 0x29, 0x0d, 0x8c, 0x86, 0x7e, 0x03, 0x4b, 0x6e, 0x62, 0x4f, 0xdf, 0xd4, + 0xb5, 0x41, 0xe8, 0xbb, 0x53, 0x0c, 0x15, 0x8e, 0xd5, 0x62, 0x24, 0x46, 0xa7, 0xcb, 0xc2, 0xd6, + 0x56, 0x61, 0x7d, 0x57, 0x78, 0xb5, 0x6a, 0x70, 0x65, 0x4c, 0xc3, 0x1d, 0xc0, 0xb4, 0x52, 0xc8, + 0x45, 0x4e, 0xcf, 0x8f, 0x97, 0x0f, 0xaf, 0x22, 0x71, 0x26, 0x9c, 0x8c, 0x1a, 0x29, 0x24, 0x2d, + 0x67, 0x42, 0xd1, 0x9c, 0xe8, 0x75, 0x43, 0x2e, 0xd5, 0xb7, 0x9f, 0x7c, 0x5b, 0xe7, 0xb2, 0x3e, + 0xd1, 0xd7, 0x20, 0x1a, 0x49, 0x6c, 0x77, 0xe2, 0x51, 0x8c, 0x01, 0x6c, 0x63, 0x7c, 0x5f, 0x94, + 0xfc, 0xd6, 0xa5, 0x7f, 0x5b, 0x94, 0xfc, 0xb6, 0x68, 0xec, 0xb7, 0xd9, 0x84, 0xdc, 0x83, 0x74, + 0x76, 0x37, 0x97, 0x30, 0x35, 0x91, 0x3e, 0x16, 0xf1, 0x6c, 0x12, 0xaf, 0xe9, 0x1e, 0x0c, 0x31, + 0x8e, 0x0a, 0x39, 0x32, 0xad, 0x09, 0x0a, 0xa1, 0x10, 0x53, 0xf6, 0x70, 0xff, 0x31, 0xce, 0xe7, + 0xc8, 0x22, 0x92, 0xb0, 0xac, 0x58, 0x0b, 0xac, 0xe2, 0xdf, 0xb1, 0xe7, 0x1e, 0xfd, 0x8b, 0x4e, + 0xc2, 0x3a, 0xc4, 0x5d, 0x1b, 0xc3, 0x61, 0x3f, 0x7c, 0x20, 0x60, 0xa7, 0xf3, 0x7f, 0xce, 0x6f, + 0x27, 0x7e, 0xc5, 0x2c, 0x98, 0x0a, 0xe9, 0xb1, 0x14, 0x87, 0x4b, 0xa3, 0x16, 0x1f, 0xd6, 0xa4, + 0x26, 0xe4, 0x0b, 0x31, 0xec, 0x13, 0x6d, 0x5a, 0x08, 0xf9, 0xcc, 0x4c, 0xc2, 0x19, 0xb9, 0xe2, + 0xc2, 0xf9, 0x47, 0x7d, 0x6d, 0x7a, 0xa9, 0x85, 0xec, 0x69, 0xcd, 0x2f, 0xc1, 0x2d, 0xb5, 0xf7, + 0xb7, 0x66, 0xee, 0xb8, 0xbf, 0x61, 0xf6, 0x1b, 0xf7, 0xfb, 0x6e, 0xef, 0xe0, 0xf2, 0x5b, 0x19, + 0xac, 0x60, 0x43, 0x1e, 0xd0, 0x07, 0x9e, 0xce, 0xf1, 0xb0, 0x36, 0x0e, 0x3a, 0x16, 0xb2, 0x47, + 0x71, 0xb4, 0x0a, 0xd3, 0x4a, 0xf0, 0x6e, 0x66, 0xa1, 0x06, 0x85, 0xfa, 0xdc, 0x18, 0x5e, 0xdb, + 0x4c, 0x68, 0xd2, 0xc6, 0x51, 0x1c, 0xa2, 0x89, 0x66, 0x78, 0x2d, 0xc3, 0xb7, 0x17, 0xe7, 0xb8, + 0x5a, 0x80, 0xb0, 0x4b, 0x9e, 0xa1, 0xb3, 0x39, 0x91, 0x7c, 0x1c, 0x2e, 0x05, 0x09, 0xa9, 0xdd, + 0x89, 0x58, 0x56, 0xeb, 0x18, 0x1c, 0x40, 0x0c, 0x7d, 0x69, 0x1e, 0xf9, 0xca, 0x98, 0x9f, 0x0c, + 0x3f, 0x34, 0xbd, 0x12, 0x6c, 0x52, 0x40, 0x5c, 0x46, 0xf5, 0xa5, 0x96, 0x44, 0x0a, 0x64, 0x29, + 0x39, 0x0b, 0xb2, 0xb3, 0x17, 0x39, 0x55, 0x17, 0x43, 0x0c, 0x76, 0x89, 0x0f, 0x4e, 0x9b, 0x07, + 0x2e, 0x67, 0x84, 0xd9, 0x6a, 0xcc, 0x93, 0x73, 0x62, 0x82, 0xe2, 0x90, 0x42, 0xe1, 0xad, 0xaa, + 0x95, 0xf1, 0xae, 0xe4, 0x95, 0x7d, 0xbd, 0x72, 0x17, 0xf9, 0x04, 0xac, 0x3f, 0x23, 0x1a, 0x16, + 0x30, 0x64, 0x9a, 0x51, 0xda, 0x3b, 0x86, 0x48, 0x17, 0xee, 0x88, 0xbb, 0xc4, 0x79, 0x05, 0x38, + 0x1a, 0x3c, 0xfe, 0xef, 0xfe, 0x5a, 0x31, 0xcd, 0xec, 0xeb, 0x85, 0xc8, 0x03, 0xb5, 0xbd, 0x3b, + 0x1f, 0xa8, 0xbf, 0xc8, 0xf1, 0x54, 0x4b, 0x31, 0xad, 0xa9, 0x0f, 0x98, 0x61, 0x46, 0x09, 0xac, + 0x3f, 0xdd, 0x2b, 0xc7, 0x71, 0x27, 0x60, 0x4e, 0x69, 0x13, 0xa5, 0x95, 0xf9, 0x25, 0xac, 0xbd, + 0x91, 0xd7, 0x1d, 0x69, 0x46, 0x2e, 0xd5, 0xd9, 0x85, 0x75, 0xb6, 0xe6, 0xb1, 0x1d, 0x64, 0x1d, + 0xf6, 0xc1, 0x33, 0xd1, 0xc5, 0xf3, 0xce, 0x8d, 0xae, 0xa7, 0xdc, 0x04, 0xa2, 0x22, 0xfe, 0xe4, + 0x2c, 0xd8, 0xd4, 0x9c, 0xeb, 0x79, 0x10, 0x95, 0x03, 0x72, 0x96, 0x7a, 0x42, 0x74, 0x70, 0x3f, + 0x1d, 0x62, 0x1e, 0xac, 0x1f, 0x8c, 0x4b, 0xfe, 0x57, 0x07, 0x02, 0x2f, 0xf4, 0xc2, 0xd5, 0xf9, + 0x73, 0x7d, 0x6d, 0xdc, 0xcb, 0x36, 0x03, 0x93, 0x48, 0x33, 0x14, 0x5a, 0xa6, 0x4d, 0x2b, 0x93, + 0x36, 0x6d, 0x30, 0xb9, 0x63, 0x9c, 0x09, 0x39, 0xba, 0xb4, 0xaa, 0x03, 0xf9, 0x82, 0x99, 0xe9, + 0x9a, 0xdb, 0x58, 0xcb, 0x31, 0x7a, 0xfe, 0x4c, 0xce, 0xb9, 0x49, 0xb5, 0x30, 0x74, 0x3c, 0x53, + 0x2c, 0xaa, 0x7b, 0xfc, 0x34, 0x6a, 0xe7, 0x13, 0xc8, 0x7a, 0x4c, 0xc6, 0x88, 0x79, 0xca, 0x84, + 0xdf, 0x83, 0x79, 0x32, 0xef, 0xf5, 0x19, 0x74, 0x8e, 0x30, 0xec, 0x88, 0xdd, 0x58, 0x0e, 0x1d, + 0x86, 0xdd, 0x5d, 0x0d, 0xed, 0xe1, 0x6e, 0x35, 0x1b, 0xfb, 0xa0, 0x19, 0xe7, 0x26, 0x71, 0x2f, + 0xdb, 0xe9, 0x9c, 0x96, 0x70, 0xcc, 0x94, 0x45, 0x54, 0x9e, 0x34, 0xad, 0xdf, 0xf2, 0x14, 0x1a, + 0x0f, 0x95, 0x91, 0x76, 0x26, 0x5e, 0x26, 0xcd, 0x4b, 0x95, 0xd2, 0x79, 0x95, 0xd6, 0x2f, 0xd9, + 0x16, 0xb3, 0x92, 0xf6, 0x5c, 0x55, 0x52, 0x1d, 0x11, 0x8d, 0xd0, 0x54, 0x90, 0x33, 0xc9, 0xc1, + 0xde, 0xc9, 0x45, 0x9e, 0x22, 0x70, 0x78, 0x9f, 0x44, 0x18, 0x36, 0x26, 0x89, 0xf9, 0x94, 0x74, + 0x7a, 0xb1, 0xcf, 0xbc, 0x7c, 0x15, 0xc2, 0x95, 0xc0, 0x83, 0x65, 0x0c, 0x73, 0x9c, 0x94, 0xaf, + 0x6c, 0xf4, 0x4e, 0x24, 0x0d, 0xa6, 0x79, 0x1f, 0x62, 0xab, 0xfe, 0x80, 0xcd, 0xc1, 0x74, 0x1b, + 0x2d, 0x59, 0xd7, 0xa9, 0xfd, 0x03, 0xc9, 0x60, 0x39, 0x9d, 0x4d, 0x9e, 0x0b, 0x98, 0xc8, 0x53, + 0x14, 0x95, 0xc2, 0xfd, 0x35, 0x9a, 0x1b, 0xa3, 0x53, 0x1a, 0x25, 0xa3, 0x30, 0x87, 0x3a, 0xec, + 0x02, 0xa6, 0xe0, 0xf9, 0xe4, 0x14, 0x68, 0xad, 0x12, 0x53, 0xb8, 0x6e, 0x91, 0x6b, 0x63, 0x2a, + 0x61, 0x1c, 0xa4, 0xab, 0x99, 0x66, 0x6c, 0x6d, 0x6e, 0x13, 0x39, 0x9b, 0x23, 0x60, 0x0c, 0x5d, + 0x22, 0xb4, 0x64, 0x57, 0x4b, 0x66, 0xa1, 0xbb, 0x25, 0xb3, 0x48, 0x6e, 0xc9, 0xf4, 0x23, 0xab, + 0x35, 0x07, 0x79, 0x29, 0x0f, 0x5e, 0xae, 0x36, 0x98, 0x8b, 0x79, 0xce, 0x1f, 0xd2, 0x48, 0x9f, + 0xe3, 0xf2, 0x0b, 0x3e, 0xc2, 0x7b, 0xd0, 0x56, 0x47, 0x21, 0xa3, 0xb1, 0x0e, 0x79, 0x23, 0x8d, + 0xf4, 0x3a, 0x03, 0x75, 0x59, 0x24, 0x2d, 0xcc, 0xb8, 0x0b, 0x7f, 0xc7, 0x55, 0xc8, 0x20, 0x1c, + 0xf7, 0x4b, 0xf8, 0x4c, 0xbe, 0x2c, 0xd6, 0xe2, 0xbd, 0x07, 0xc3, 0x76, 0x21, 0xe5, 0xa6, 0x30, + 0xb2, 0xb0, 0x8f, 0xd7, 0x51, 0x1a, 0x6b, 0x48, 0x8f, 0x00, 0xef, 0x6b, 0xf1, 0xed, 0x56, 0x7c, + 0x9b, 0x8b, 0xcf, 0x0f, 0x44, 0xb3, 0x1a, 0x40, 0x18, 0xc6, 0xa7, 0x75, 0x18, 0xda, 0x2d, 0x56, + 0xe2, 0x0c, 0x8e, 0x31, 0x8d, 0x33, 0xdc, 0xb3, 0x86, 0x37, 0xab, 0xd9, 0xdc, 0x8e, 0xb4, 0xea, + 0x51, 0x67, 0x1c, 0x47, 0x04, 0x76, 0x8f, 0xe8, 0x9f, 0x3a, 0x0f, 0x6f, 0x35, 0x6d, 0xba, 0x1d, + 0x0a, 0x5d, 0xa5, 0x7f, 0xde, 0x0a, 0x81, 0x19, 0x60, 0xa6, 0x5d, 0x7a, 0xa4, 0x9b, 0x6b, 0x45, + 0xd0, 0x35, 0xbd, 0xd7, 0x0c, 0xb7, 0xce, 0x07, 0x5b, 0x4c, 0xc8, 0xca, 0x71, 0x85, 0xac, 0x82, + 0xf6, 0x80, 0x4a, 0xfa, 0x61, 0x17, 0xf0, 0x69, 0x9d, 0x7a, 0xae, 0x26, 0xae, 0x9e, 0x51, 0x40, + 0x93, 0xc4, 0xca, 0x8a, 0x33, 0x9a, 0x96, 0xe5, 0xd2, 0x34, 0x16, 0x4e, 0x31, 0xce, 0xb1, 0xb8, + 0x6f, 0x63, 0x8c, 0x53, 0x18, 0x03, 0x22, 0xeb, 0x9d, 0xd6, 0x98, 0x40, 0x12, 0xb6, 0xac, 0x9b, + 0xf1, 0xcd, 0x1a, 0x16, 0xe7, 0x3c, 0x3e, 0xad, 0x55, 0xcf, 0x62, 0x9c, 0xb7, 0xaf, 0x5f, 0xde, + 0x8c, 0xf6, 0x54, 0x79, 0x69, 0xa4, 0xe1, 0xa8, 0xc1, 0xab, 0xe4, 0xcf, 0xbd, 0x30, 0x89, 0x56, + 0x1f, 0xf3, 0xa8, 0xd2, 0xf6, 0x98, 0x61, 0x2a, 0x96, 0x56, 0x81, 0x91, 0x0d, 0xa2, 0x41, 0x9c, + 0x57, 0x13, 0x6f, 0x34, 0x89, 0x4b, 0x91, 0x06, 0xdf, 0x47, 0x33, 0x1d, 0x6b, 0x8a, 0x57, 0xe9, + 0xf9, 0xad, 0x10, 0xc6, 0x9a, 0x46, 0x4f, 0x85, 0x6f, 0x8a, 0x66, 0x45, 0x1e, 0x2a, 0x79, 0x17, + 0x6c, 0x3f, 0x1b, 0x5c, 0x02, 0x86, 0x26, 0xf1, 0x21, 0xec, 0x03, 0x55, 0x06, 0x27, 0xa1, 0xea, + 0xdd, 0x15, 0x59, 0xef, 0xb1, 0xb6, 0x0b, 0x62, 0x79, 0x64, 0x2d, 0x61, 0x77, 0x68, 0xdd, 0x58, + 0xe2, 0x1e, 0x2c, 0x31, 0xf5, 0xcc, 0x02, 0xd2, 0x31, 0x54, 0x4f, 0x5f, 0xbf, 0xcc, 0x86, 0x7d, + 0xd7, 0x2b, 0x33, 0x79, 0x9b, 0x1e, 0x55, 0xe2, 0xb5, 0x7a, 0x89, 0x1f, 0xa5, 0x11, 0xa2, 0xf6, + 0xd5, 0xf4, 0xa8, 0xeb, 0x15, 0xb8, 0x32, 0x48, 0xfd, 0x90, 0x6c, 0xf3, 0xee, 0x64, 0x9b, 0xaf, + 0x4e, 0xb4, 0xf9, 0x95, 0xe7, 0xb0, 0xf4, 0x20, 0xec, 0xc6, 0x31, 0xf0, 0x0c, 0xc5, 0x45, 0x4e, + 0xb1, 0x32, 0xd7, 0x6e, 0x35, 0x69, 0xbd, 0x18, 0x6a, 0xb7, 0xba, 0x00, 0x39, 0x8f, 0xa8, 0xb9, + 0xe2, 0x0c, 0x08, 0xd9, 0x26, 0xc5, 0x8e, 0x77, 0x43, 0x36, 0x72, 0xa6, 0xd6, 0x0c, 0xad, 0x57, + 0x35, 0x54, 0xff, 0x2a, 0x5c, 0x16, 0x35, 0xda, 0x6f, 0x52, 0xec, 0x84, 0x6e, 0x1b, 0x03, 0xfb, + 0x4d, 0x5e, 0xa6, 0x83, 0x53, 0xbd, 0x71, 0x2f, 0xd4, 0xed, 0xde, 0x05, 0x0d, 0x3b, 0x23, 0x0f, + 0x89, 0x95, 0x76, 0xca, 0x1b, 0x30, 0xfe, 0x47, 0x98, 0x9b, 0x9f, 0xe5, 0x16, 0x4e, 0xe4, 0xe4, + 0x0a, 0xe5, 0xe6, 0xea, 0x79, 0xf9, 0x78, 0x5e, 0xea, 0xe8, 0x3c, 0xcc, 0x8a, 0x11, 0xf3, 0xfd, + 0x3b, 0x72, 0x52, 0x00, 0x2e, 0x62, 0xda, 0xd5, 0xd7, 0x6f, 0x4b, 0xa1, 0xfd, 0xef, 0x6e, 0xcb, + 0xf5, 0x66, 0x28, 0x7d, 0x1f, 0x84, 0xa9, 0x15, 0x60, 0x8b, 0x60, 0x2b, 0x0e, 0xaf, 0x63, 0xa5, + 0xf6, 0xd4, 0x74, 0x37, 0xda, 0x9c, 0xb8, 0xca, 0x72, 0x1b, 0x79, 0x41, 0x6a, 0xbb, 0x8f, 0x74, + 0xea, 0x38, 0x1a, 0x1d, 0x9d, 0xd6, 0xb8, 0xee, 0x31, 0x8f, 0x49, 0xd9, 0xbd, 0x14, 0x6c, 0x61, + 0x92, 0x0c, 0xc2, 0x70, 0x39, 0xa5, 0x31, 0xec, 0xd7, 0xcb, 0x07, 0xf0, 0x1c, 0x96, 0x10, 0xe0, + 0x89, 0xd1, 0x65, 0x84, 0x23, 0xbc, 0x8c, 0x84, 0x27, 0x70, 0xbd, 0x1a, 0xf7, 0x3b, 0x54, 0x73, + 0x64, 0x7d, 0x04, 0xc7, 0xd8, 0xc7, 0x17, 0x46, 0x97, 0x08, 0xfa, 0xfe, 0x91, 0x12, 0x7d, 0xbc, + 0x93, 0x4a, 0xf4, 0xf1, 0x73, 0x7a, 0x89, 0x72, 0xb1, 0x3c, 0x8e, 0x51, 0xa5, 0x09, 0x4a, 0xfe, + 0x5b, 0xff, 0xde, 0xf9, 0x92, 0xd6, 0x62, 0x58, 0xae, 0x45, 0xed, 0x80, 0x3b, 0x2e, 0x73, 0x3b, + 0x72, 0xa3, 0xed, 0xd1, 0x40, 0x00, 0xf7, 0xa4, 0x2e, 0xc5, 0xe1, 0x9a, 0xc4, 0x29, 0x60, 0x9a, + 0x8f, 0xee, 0x20, 0x3b, 0x7b, 0x7c, 0x9b, 0xe3, 0x6d, 0x0d, 0x1d, 0xaa, 0xde, 0x48, 0x56, 0x01, + 0xe4, 0x53, 0x20, 0xd3, 0xcc, 0xcf, 0x9a, 0x90, 0x32, 0xcb, 0xb8, 0x0f, 0x21, 0xa4, 0xe7, 0x42, + 0x3a, 0x6f, 0xf2, 0x84, 0x7f, 0xff, 0x21, 0x78, 0xc2, 0x76, 0x15, 0x0c, 0xeb, 0x7e, 0x7e, 0x10, + 0xe7, 0xda, 0x13, 0x81, 0xac, 0x36, 0xe2, 0xad, 0x9f, 0x9b, 0x77, 0x86, 0x9d, 0xaf, 0xcc, 0xc0, + 0x7e, 0xc9, 0xaf, 0x73, 0xd1, 0x6e, 0x10, 0x67, 0x4f, 0x1d, 0x3b, 0xe3, 0xb8, 0x15, 0x63, 0x8b, + 0x4a, 0x10, 0x9f, 0xa6, 0xe3, 0xdb, 0x57, 0x68, 0xef, 0x48, 0x18, 0x3b, 0xe4, 0x97, 0x86, 0xed, + 0x2f, 0x41, 0x98, 0x42, 0x34, 0x11, 0xf7, 0x95, 0x20, 0xac, 0xe3, 0xa8, 0x34, 0xc2, 0x79, 0x42, + 0xd8, 0x65, 0x3b, 0x4b, 0x00, 0xf2, 0x2c, 0xb6, 0x0a, 0xc3, 0x4e, 0x28, 0xb3, 0xf5, 0x53, 0x1c, + 0xcc, 0xc5, 0x30, 0x85, 0xed, 0x47, 0xcd, 0xec, 0xa4, 0x26, 0x4b, 0xb1, 0xfd, 0x84, 0x4a, 0x93, + 0x8d, 0xa5, 0x30, 0xe0, 0x4c, 0x5a, 0xc8, 0x7e, 0x99, 0x1d, 0xc3, 0xda, 0x03, 0x9f, 0xea, 0xd4, + 0xd6, 0x69, 0x9a, 0x52, 0x4c, 0x5f, 0x32, 0xec, 0xa9, 0x19, 0xaa, 0x88, 0x31, 0x4e, 0x52, 0x0c, + 0xe1, 0xed, 0x70, 0x50, 0xb5, 0x22, 0x17, 0x3a, 0x07, 0xd7, 0xfc, 0x55, 0x18, 0xba, 0x29, 0xc6, + 0xfe, 0xb2, 0x77, 0x07, 0xf1, 0xeb, 0x35, 0xf8, 0xf5, 0x5a, 0x4d, 0xab, 0x79, 0xb0, 0x8d, 0xb0, + 0x29, 0xb7, 0xb0, 0xf0, 0x1d, 0x18, 0xde, 0xa5, 0x7c, 0xc0, 0x9e, 0x9f, 0xc4, 0xe7, 0x6e, 0x8c, + 0xb3, 0x9a, 0xe2, 0x60, 0x8c, 0xd6, 0x9f, 0xff, 0x5a, 0xc5, 0x7a, 0x09, 0xdd, 0xec, 0x6d, 0xaf, + 0x63, 0x20, 0xf2, 0xa0, 0xfd, 0x46, 0xb6, 0x62, 0x18, 0xf1, 0xcd, 0x59, 0x16, 0xda, 0x8a, 0xdf, + 0xf4, 0x28, 0xcf, 0xbd, 0x40, 0xcf, 0xaa, 0x63, 0x40, 0x9c, 0xf7, 0xf3, 0x5f, 0x63, 0xbd, 0xab, + 0xed, 0x9f, 0x66, 0x74, 0x03, 0x29, 0x82, 0xd0, 0x88, 0x31, 0x56, 0xcf, 0xc5, 0xf6, 0x14, 0xe7, + 0x29, 0x9c, 0x06, 0xac, 0xa2, 0x79, 0xc9, 0xbe, 0x2e, 0xa4, 0x1a, 0xe2, 0xfb, 0xfb, 0x15, 0x0b, + 0xfb, 0x2d, 0xe3, 0x73, 0xaf, 0x9d, 0x66, 0x87, 0x2d, 0xf2, 0x90, 0x4c, 0xf5, 0x9b, 0xae, 0x1a, + 0xec, 0x9f, 0x61, 0xef, 0xcc, 0x58, 0xbb, 0x2c, 0xfd, 0x2c, 0x02, 0xeb, 0x88, 0xe3, 0xb7, 0x94, + 0xc6, 0xaf, 0x63, 0x80, 0xe2, 0xc3, 0x1b, 0x91, 0x87, 0x68, 0x5f, 0xaf, 0x1e, 0xa4, 0xb8, 0x70, + 0x42, 0x0c, 0x4c, 0xea, 0xd4, 0x7a, 0x41, 0x28, 0xc3, 0xf4, 0xb1, 0xb6, 0xab, 0x91, 0x6b, 0x97, + 0x98, 0x97, 0xf2, 0xc2, 0xa8, 0x95, 0xc5, 0xd8, 0x83, 0x39, 0xc5, 0x95, 0xd3, 0xec, 0xf9, 0x39, + 0xc7, 0x30, 0xb8, 0x71, 0x35, 0x50, 0xf4, 0xfe, 0xb8, 0x23, 0x3a, 0x9b, 0x9d, 0x78, 0x4d, 0x8b, + 0x16, 0xd4, 0x99, 0x59, 0x8f, 0xe7, 0x2b, 0x2e, 0x13, 0x68, 0xaf, 0x91, 0x8e, 0x64, 0x9d, 0xa4, + 0xe4, 0x32, 0x09, 0x42, 0x36, 0x7b, 0xf7, 0x55, 0x35, 0x4b, 0x49, 0xc9, 0x0c, 0x56, 0xa9, 0x46, + 0xaa, 0x91, 0x7d, 0xa6, 0xa6, 0x61, 0xca, 0x0b, 0xae, 0x57, 0x62, 0x5c, 0x07, 0x2e, 0xe2, 0xfb, + 0x42, 0xc7, 0x80, 0x33, 0xf4, 0xf3, 0x03, 0x51, 0x33, 0xa3, 0xe4, 0x48, 0x43, 0xc5, 0xf9, 0x8a, + 0x85, 0xf9, 0xb3, 0xe3, 0xab, 0x33, 0x8e, 0xcb, 0x2b, 0x1d, 0xd8, 0x9e, 0x66, 0xf2, 0xf0, 0x01, + 0xad, 0xd4, 0x46, 0x75, 0x76, 0xe6, 0xed, 0xc3, 0x5b, 0xb5, 0xe7, 0xaf, 0xe7, 0x70, 0x9f, 0x4f, + 0x5a, 0x70, 0x59, 0x6c, 0xef, 0x9d, 0x5b, 0x75, 0xef, 0x0b, 0x07, 0xeb, 0x60, 0x64, 0x8b, 0xf2, + 0x06, 0xdf, 0xd9, 0x12, 0x8a, 0x79, 0x3e, 0xee, 0x6c, 0x71, 0xac, 0x17, 0x7b, 0xbc, 0xe0, 0x47, + 0x8e, 0xc4, 0x17, 0xf8, 0x01, 0xa1, 0xe5, 0x17, 0x5f, 0x4a, 0xf2, 0x24, 0x56, 0xef, 0x38, 0xee, + 0x37, 0x38, 0xe3, 0x3c, 0xe1, 0x8d, 0x22, 0x67, 0xb2, 0x99, 0x23, 0x21, 0xc6, 0xb4, 0xfe, 0x35, + 0xaa, 0x03, 0xb9, 0x0e, 0x0f, 0x96, 0xc6, 0xd2, 0xc1, 0x6c, 0x53, 0x99, 0xd6, 0xee, 0x7e, 0xb2, + 0x38, 0x4c, 0xec, 0x03, 0xe6, 0xd0, 0x99, 0x8a, 0xe8, 0x21, 0x9e, 0xca, 0x72, 0xfa, 0xa1, 0x0e, + 0x50, 0xa4, 0x34, 0xdf, 0x86, 0x99, 0x8f, 0xae, 0x66, 0x56, 0xb4, 0x83, 0x74, 0x9e, 0x4c, 0xbe, + 0x0c, 0x63, 0xa0, 0xd8, 0x8f, 0xc7, 0xb9, 0x77, 0xc3, 0x15, 0xc7, 0x48, 0x53, 0x9c, 0x9d, 0xfd, + 0x77, 0x5e, 0xdb, 0x76, 0x9a, 0x21, 0xee, 0xd2, 0x2e, 0x03, 0x9b, 0x8d, 0x64, 0x07, 0x4c, 0x6a, + 0x64, 0x48, 0x43, 0x2c, 0xac, 0x1c, 0x8d, 0x1d, 0x99, 0xb0, 0x2a, 0x93, 0x08, 0xc7, 0xb0, 0xa4, + 0xa6, 0xb7, 0x76, 0x63, 0xdb, 0x95, 0x9d, 0xbd, 0x0d, 0x76, 0xe2, 0xf3, 0xa7, 0xc5, 0x7a, 0xc9, + 0xd7, 0x09, 0xc7, 0x5d, 0x5a, 0x0e, 0xd2, 0xb4, 0xa5, 0xb8, 0xf7, 0x66, 0xd8, 0x13, 0x64, 0x2f, + 0x20, 0xc7, 0x15, 0x4f, 0xe2, 0x6b, 0xe4, 0x3a, 0x49, 0x97, 0x89, 0x7c, 0xcd, 0xac, 0x62, 0xbe, + 0x66, 0xb2, 0xe5, 0x1e, 0xd1, 0x3f, 0xad, 0x1a, 0xbf, 0x66, 0x7e, 0x5d, 0xc9, 0xcf, 0x4c, 0x02, + 0x1b, 0x9d, 0xfb, 0xb3, 0x2a, 0x92, 0x90, 0xaf, 0xcc, 0x71, 0xe9, 0xa5, 0xc4, 0x5a, 0xe0, 0x6e, + 0x94, 0xf9, 0xbd, 0x5f, 0x45, 0x71, 0xa3, 0xd5, 0xcc, 0x1f, 0x88, 0xee, 0x81, 0x87, 0x21, 0xe3, + 0xd9, 0x90, 0xcf, 0x25, 0x0b, 0x21, 0x1b, 0xf9, 0x89, 0x51, 0x5c, 0xd3, 0xbe, 0xa4, 0x97, 0x64, + 0x13, 0xee, 0xb1, 0x9d, 0x1c, 0xc9, 0x12, 0xb9, 0x79, 0xa4, 0x98, 0x6a, 0x0e, 0x43, 0x81, 0xb5, + 0xe2, 0x6e, 0xf9, 0x54, 0x6b, 0x94, 0x23, 0xa0, 0x56, 0x6f, 0x4c, 0x6a, 0xd1, 0x73, 0x8b, 0x41, + 0x92, 0xfb, 0x31, 0xbf, 0x8d, 0x51, 0xb2, 0x92, 0xb2, 0x32, 0x5c, 0x85, 0x9d, 0xd5, 0x1b, 0xa5, + 0xc8, 0x68, 0x7f, 0x66, 0x09, 0x1f, 0x66, 0x5f, 0x4a, 0x8c, 0x0d, 0x92, 0xde, 0x15, 0x63, 0xfb, + 0xfa, 0x71, 0x7c, 0x04, 0x91, 0x37, 0xf4, 0xd1, 0x7e, 0x77, 0x85, 0xb1, 0xb5, 0x43, 0xb1, 0x33, + 0x3d, 0xf7, 0x30, 0xc7, 0x21, 0x54, 0x6d, 0x98, 0x73, 0xc2, 0x03, 0x01, 0x08, 0xa4, 0x27, 0xce, + 0xb0, 0x21, 0xf3, 0x89, 0xaf, 0x36, 0x13, 0x36, 0x64, 0x3e, 0x72, 0xb4, 0x25, 0x7f, 0x3e, 0x00, + 0xc4, 0x69, 0x05, 0x90, 0xd3, 0x62, 0xde, 0x42, 0x71, 0x67, 0xe9, 0x29, 0x9f, 0xdd, 0x49, 0x9e, + 0xa2, 0xdc, 0x86, 0xea, 0x35, 0xa2, 0xa1, 0x70, 0xa2, 0xdb, 0xaf, 0x18, 0x3d, 0xc1, 0x40, 0x60, + 0x14, 0x67, 0xed, 0x67, 0xe7, 0xb0, 0x9f, 0xf2, 0x8e, 0x1b, 0xe3, 0x53, 0xd4, 0x37, 0x8a, 0x73, + 0xa6, 0x38, 0x9f, 0xf1, 0x8e, 0x0b, 0xb5, 0xc0, 0x02, 0x1e, 0x8b, 0x61, 0x3f, 0xba, 0x54, 0x5b, + 0x38, 0xa0, 0x5a, 0xb0, 0xf5, 0x7d, 0x09, 0x5d, 0xda, 0xbd, 0x1b, 0xa2, 0x36, 0xe6, 0x49, 0xc2, + 0x2c, 0xd9, 0x38, 0x86, 0x23, 0xee, 0x15, 0xea, 0x39, 0xbf, 0xcd, 0x7c, 0x93, 0x96, 0x21, 0x97, + 0x50, 0x41, 0x67, 0xe8, 0x48, 0xf3, 0x3f, 0x0a, 0xaf, 0x56, 0xad, 0x3f, 0x39, 0x54, 0x2f, 0xdf, + 0xdc, 0x49, 0xfe, 0x16, 0x15, 0x4a, 0xad, 0x16, 0x7f, 0x3b, 0x6e, 0x26, 0x6d, 0x7a, 0xad, 0x66, + 0xbd, 0x12, 0xbe, 0x51, 0x74, 0x55, 0xec, 0xe9, 0x6d, 0xb8, 0xa4, 0x54, 0xc9, 0x13, 0xdb, 0x3b, + 0x94, 0xdc, 0x56, 0xaf, 0x3d, 0x97, 0xc9, 0x1e, 0x4d, 0x56, 0x01, 0x66, 0x47, 0xcf, 0x67, 0x93, + 0x67, 0xaf, 0x07, 0xb3, 0x40, 0x39, 0x23, 0x4f, 0x6c, 0xe5, 0xf8, 0x8f, 0xd9, 0x1c, 0x99, 0x7d, + 0xa4, 0x20, 0xdc, 0xc3, 0x7d, 0xb4, 0x72, 0xa9, 0x98, 0x98, 0xd9, 0xd7, 0x3b, 0xb8, 0xbe, 0xff, + 0xc1, 0x86, 0x5d, 0x52, 0xa5, 0xb2, 0x9d, 0x30, 0xc8, 0x46, 0x2e, 0xca, 0x13, 0x03, 0x82, 0xf2, + 0x1c, 0xef, 0x93, 0xa2, 0x02, 0x92, 0x44, 0xe1, 0x2e, 0xb2, 0x3c, 0xda, 0x49, 0xeb, 0x9a, 0x01, + 0xc6, 0xd8, 0x2d, 0xab, 0x38, 0xb2, 0x64, 0x99, 0x28, 0x03, 0xbe, 0x63, 0xd8, 0x5e, 0x4b, 0x71, + 0x36, 0xce, 0xf1, 0x92, 0x14, 0x29, 0x07, 0xff, 0xfa, 0x20, 0x57, 0x0a, 0xda, 0x6f, 0x16, 0x2b, + 0xd4, 0x21, 0xf2, 0x9f, 0xb9, 0xbb, 0xb7, 0xde, 0x6e, 0x27, 0xbe, 0x97, 0xa4, 0xbd, 0x26, 0x56, + 0xe6, 0xb3, 0xb4, 0x6e, 0xc6, 0x08, 0x2b, 0x3b, 0xc7, 0xb3, 0x1c, 0x68, 0x66, 0x9e, 0x92, 0x82, + 0x3c, 0xaf, 0xd4, 0x1a, 0x4a, 0xe7, 0xac, 0xdc, 0x87, 0xdd, 0x1c, 0x03, 0x8e, 0x90, 0x5c, 0xdc, + 0x2b, 0xc9, 0x69, 0xe7, 0x7e, 0x26, 0x76, 0xee, 0x57, 0xa6, 0x6b, 0xff, 0xd9, 0x44, 0x3f, 0xf3, + 0xea, 0x6c, 0x72, 0x31, 0x1d, 0xc0, 0x8e, 0xf4, 0x73, 0xc0, 0xd5, 0xea, 0x64, 0x2c, 0xb1, 0xc8, + 0xcf, 0x51, 0x5c, 0xa4, 0x91, 0x68, 0x92, 0xa1, 0x9d, 0xc9, 0x59, 0x86, 0x87, 0x48, 0x2e, 0xc7, + 0xd0, 0x1f, 0x99, 0x5d, 0x4f, 0xb8, 0x85, 0xfc, 0xa6, 0xe9, 0x38, 0xa3, 0x46, 0xac, 0x28, 0xf3, + 0x8f, 0xf2, 0x7e, 0x2f, 0xfb, 0xbb, 0x05, 0x67, 0x4a, 0x9b, 0x7e, 0xd6, 0xc1, 0xc6, 0xdb, 0x54, + 0xc2, 0xc5, 0xfe, 0xda, 0x35, 0xbf, 0xf5, 0x25, 0xbf, 0xdd, 0xca, 0xfe, 0x6e, 0x23, 0x6b, 0x8a, + 0x31, 0xdf, 0xfa, 0xe4, 0xaf, 0x25, 0xfc, 0xe5, 0x16, 0x17, 0xb8, 0xc1, 0x59, 0xe1, 0xb2, 0xe1, + 0xdb, 0x5a, 0x71, 0x92, 0x94, 0xd9, 0x96, 0x7b, 0x74, 0x63, 0xbb, 0x31, 0x21, 0xa1, 0x63, 0x9e, + 0xa4, 0xfc, 0x74, 0xf6, 0x6c, 0x8d, 0xdf, 0x57, 0x56, 0x59, 0x1e, 0xb5, 0x92, 0x8d, 0x5e, 0xc6, + 0x9f, 0x55, 0x0f, 0x9b, 0xff, 0xc0, 0xe9, 0xfa, 0x3b, 0xbd, 0xb8, 0x6b, 0x1f, 0x86, 0x4b, 0xef, + 0xb4, 0x7b, 0x8d, 0xc8, 0x77, 0x4c, 0x20, 0x3c, 0x0e, 0xe2, 0xec, 0xab, 0xfa, 0xd8, 0x79, 0x7e, + 0x16, 0xce, 0x69, 0xab, 0x44, 0x36, 0x52, 0xb7, 0x71, 0x89, 0x3e, 0x43, 0x8b, 0x28, 0xe6, 0xd4, + 0xf3, 0x0e, 0x29, 0x9f, 0xef, 0x46, 0x3d, 0x58, 0x13, 0x1f, 0xb6, 0x76, 0x21, 0x52, 0x11, 0x97, + 0x32, 0x5b, 0xcc, 0x92, 0xc6, 0xc9, 0x46, 0x67, 0xa6, 0xa7, 0x3c, 0xe5, 0xf9, 0x19, 0xf9, 0xa9, + 0xb5, 0x51, 0xd7, 0xe8, 0xd3, 0xeb, 0xa9, 0xa4, 0x63, 0xf5, 0x1e, 0x6c, 0x51, 0xec, 0xe1, 0x78, + 0xb3, 0xf5, 0x78, 0xfc, 0x3b, 0xf1, 0xf0, 0x1a, 0x75, 0x1f, 0xb3, 0xae, 0x16, 0xb8, 0x9f, 0x38, + 0x66, 0x71, 0xe8, 0xe5, 0xd6, 0x39, 0x54, 0x2a, 0x91, 0xce, 0xdf, 0x1c, 0x63, 0x4f, 0xb8, 0x49, + 0x8b, 0xb3, 0x36, 0x2e, 0xee, 0x4b, 0xd9, 0x74, 0x32, 0xb9, 0xbf, 0x95, 0xe1, 0x61, 0x4c, 0x11, + 0x67, 0x68, 0xc3, 0xd1, 0x1c, 0xe6, 0x3b, 0x03, 0x7b, 0xf9, 0x2b, 0x0f, 0xa4, 0x7d, 0x2d, 0x54, + 0xdd, 0x9b, 0xb4, 0xdd, 0x1f, 0xe5, 0x2b, 0xe4, 0xda, 0xde, 0x41, 0x46, 0x0e, 0x25, 0x50, 0x80, + 0x65, 0xdc, 0xf3, 0x93, 0x16, 0x8e, 0xdc, 0x0c, 0x56, 0xd2, 0x9f, 0x8a, 0x3a, 0x46, 0xdb, 0xf0, + 0xcf, 0xa5, 0x5a, 0x19, 0xe7, 0xbe, 0xaf, 0x5d, 0x9a, 0xff, 0xbe, 0x76, 0x9a, 0x10, 0xd7, 0x7f, + 0x91, 0xed, 0x9e, 0x68, 0x5a, 0xa3, 0x69, 0x23, 0x6f, 0x71, 0xac, 0x13, 0x42, 0x34, 0x47, 0x5a, + 0xb9, 0x85, 0x9f, 0x1f, 0xa8, 0x30, 0xce, 0x28, 0xce, 0xd4, 0x4e, 0x47, 0x45, 0x92, 0x02, 0xe5, + 0xf9, 0xb5, 0xd3, 0x3a, 0xe6, 0x71, 0x66, 0x2a, 0x4e, 0xf4, 0x25, 0x05, 0x4c, 0x6f, 0x24, 0xbe, + 0xe6, 0x96, 0xc9, 0x44, 0x17, 0x7e, 0x91, 0x9d, 0x48, 0xc3, 0x34, 0x20, 0x62, 0x28, 0xb3, 0x04, + 0x77, 0x79, 0xe9, 0x34, 0x04, 0x16, 0xf4, 0xea, 0x1e, 0x65, 0xd8, 0xea, 0xf0, 0x8b, 0x95, 0x89, + 0x53, 0x37, 0xd5, 0x1c, 0x8b, 0x3a, 0xe3, 0x98, 0xde, 0xbe, 0xb4, 0xf4, 0xce, 0x78, 0x8d, 0xf3, + 0x59, 0x49, 0x99, 0x3f, 0x0e, 0x9e, 0xe2, 0x8a, 0xfc, 0x99, 0x18, 0x9e, 0x8a, 0x73, 0x0e, 0xf3, + 0x4c, 0xbd, 0xad, 0xf6, 0xe0, 0x5b, 0x57, 0xf9, 0x6b, 0x2f, 0xbd, 0x76, 0xa8, 0xe2, 0xc2, 0x01, + 0x58, 0x09, 0x79, 0xfe, 0x91, 0x41, 0xe4, 0x14, 0xdf, 0xd8, 0xfb, 0xac, 0x76, 0x6e, 0x89, 0x29, + 0xb0, 0x45, 0x21, 0x3b, 0x8a, 0xd4, 0xd7, 0xa7, 0x47, 0x7d, 0x4d, 0x28, 0xf1, 0xa7, 0x25, 0x30, + 0x74, 0x81, 0xa6, 0x69, 0x79, 0x25, 0xda, 0xe9, 0x3c, 0xe2, 0xa3, 0x05, 0xed, 0xa2, 0x21, 0xae, + 0x61, 0x53, 0x5a, 0xe3, 0x7e, 0xb2, 0xf1, 0xc2, 0xd1, 0x4b, 0x03, 0x95, 0xbc, 0xb8, 0x8b, 0x78, + 0x57, 0x7d, 0x8a, 0x83, 0xc5, 0xcb, 0xd4, 0x2e, 0x2a, 0x32, 0x7b, 0xca, 0xc0, 0xa7, 0xc9, 0x69, + 0xb9, 0x5c, 0x4c, 0xcf, 0x25, 0xf3, 0x19, 0xd2, 0xcb, 0x07, 0xbf, 0x1d, 0xbc, 0xa4, 0x97, 0x7b, + 0x7a, 0x6c, 0x8b, 0x24, 0xda, 0xa3, 0x35, 0xea, 0xec, 0x52, 0x20, 0x73, 0xd5, 0xe9, 0x5e, 0x17, + 0x8d, 0x42, 0x83, 0x1b, 0xc2, 0xcf, 0x8e, 0x0c, 0xe2, 0xcc, 0x6c, 0x1e, 0x19, 0x3c, 0x7c, 0x60, + 0x6a, 0xbc, 0x17, 0xf2, 0x16, 0x8c, 0x0c, 0x46, 0xd6, 0xd6, 0xae, 0xc7, 0xba, 0x9d, 0x5f, 0x02, + 0xda, 0x94, 0xef, 0xbe, 0xc2, 0xfb, 0xd5, 0x33, 0xf1, 0x2b, 0x6b, 0xf3, 0xe6, 0x8d, 0x0c, 0x3a, + 0xcb, 0x14, 0x30, 0x2e, 0x94, 0x66, 0x6a, 0x27, 0x79, 0x8d, 0x44, 0xc1, 0x14, 0xd7, 0xb4, 0xe1, + 0x9b, 0x57, 0xde, 0xb4, 0x27, 0xde, 0x80, 0xdb, 0x86, 0x34, 0x4d, 0xf2, 0xd6, 0x0c, 0x09, 0x76, + 0xd2, 0x7f, 0xa1, 0x29, 0xc3, 0x92, 0x91, 0x9d, 0x91, 0x0f, 0x55, 0x19, 0x61, 0xc3, 0x25, 0xe3, + 0x64, 0xe3, 0xe4, 0x8c, 0xf5, 0x46, 0xa3, 0xc1, 0x4e, 0x4f, 0xf4, 0xdf, 0x60, 0x27, 0x3e, 0x26, + 0x9a, 0x9b, 0x1c, 0x33, 0x26, 0x1a, 0x0f, 0x35, 0x6b, 0xf4, 0x11, 0x71, 0x0a, 0x73, 0x3c, 0x34, + 0xa6, 0x7d, 0x93, 0x23, 0x2a, 0xe3, 0xa0, 0x1b, 0xdb, 0x57, 0x7d, 0x51, 0x81, 0x8c, 0x81, 0xeb, + 0xc5, 0x31, 0x6e, 0xa0, 0x3e, 0x18, 0x3d, 0xe6, 0x42, 0xcd, 0x38, 0x46, 0x53, 0xa3, 0x0e, 0x32, + 0xba, 0x31, 0x17, 0xf5, 0xba, 0x29, 0x54, 0x8a, 0x54, 0xe3, 0xf4, 0x1e, 0x9b, 0x3c, 0xa6, 0xc7, + 0xf2, 0x71, 0x45, 0x36, 0x62, 0xff, 0x5e, 0x54, 0x5c, 0x2b, 0x0d, 0x79, 0x65, 0x78, 0x17, 0xc7, + 0xf4, 0x56, 0x22, 0x2f, 0x33, 0x96, 0x75, 0x38, 0xc0, 0x2d, 0x5c, 0x30, 0x4d, 0x6a, 0x45, 0x46, + 0xb3, 0xde, 0x8b, 0xfa, 0xd8, 0xec, 0x70, 0xd3, 0x77, 0x24, 0x65, 0xa4, 0x1e, 0x14, 0xc7, 0x0d, + 0xde, 0x3f, 0x18, 0x17, 0x5b, 0xcd, 0xc0, 0x7a, 0xd4, 0x38, 0xaa, 0xee, 0xbb, 0x3c, 0x73, 0x23, + 0xf7, 0xe3, 0x3e, 0xe8, 0x25, 0xd1, 0x36, 0xb8, 0x81, 0xf9, 0x1c, 0x3c, 0x98, 0x17, 0x1a, 0x39, + 0xaa, 0x18, 0x9c, 0x25, 0xd7, 0x6d, 0xaf, 0x6e, 0x6a, 0x2f, 0x42, 0xdd, 0xbe, 0x6e, 0x0c, 0x45, + 0x9a, 0xa0, 0x84, 0xd3, 0xfb, 0x22, 0xaf, 0x64, 0xe4, 0x10, 0x7f, 0x2f, 0xcd, 0x1c, 0x39, 0xc4, + 0xe2, 0x14, 0x4b, 0xcd, 0x23, 0x47, 0xc5, 0x2f, 0x1d, 0x3e, 0x20, 0x35, 0x6b, 0xc3, 0xaf, 0x1e, + 0x48, 0xb4, 0xaf, 0x58, 0x60, 0x86, 0xc1, 0x38, 0x52, 0x86, 0x3f, 0x9b, 0x8d, 0xe2, 0x84, 0xc3, + 0xfd, 0x5b, 0x8d, 0x35, 0x6b, 0xc2, 0x6b, 0x5a, 0x40, 0x8b, 0x29, 0xcf, 0x8d, 0x2e, 0x23, 0xce, + 0xa2, 0xaa, 0x91, 0x13, 0x9e, 0xb9, 0xf9, 0x13, 0xc8, 0x47, 0x19, 0xd9, 0xf4, 0x8c, 0x1c, 0xd7, + 0xf3, 0x34, 0xf0, 0xfe, 0x4f, 0x94, 0xc7, 0xf0, 0x4a, 0x21, 0xe6, 0xe1, 0xb3, 0x44, 0x3b, 0xae, + 0xf3, 0xfe, 0xb9, 0x18, 0xf8, 0x66, 0x6a, 0xc3, 0xd4, 0xb7, 0x3e, 0x8b, 0x58, 0x56, 0x76, 0xde, + 0x6c, 0x58, 0xb0, 0x46, 0x09, 0x5c, 0x27, 0x76, 0x3c, 0xb2, 0x86, 0xc7, 0x4f, 0xd4, 0x00, 0xeb, + 0x80, 0xa5, 0x3f, 0xd2, 0x75, 0xa4, 0x4b, 0xba, 0x27, 0x07, 0x5e, 0x7d, 0xb9, 0xf4, 0x4f, 0x5b, + 0x8d, 0xd2, 0xf8, 0x57, 0xfb, 0xcd, 0xc6, 0x1f, 0xff, 0x47, 0x14, 0xb4, 0x7a, 0x65, 0x97, 0x3c, + 0xcf, 0x39, 0x37, 0xdf, 0xe6, 0x69, 0x1e, 0x39, 0x61, 0x9e, 0x09, 0x30, 0xf2, 0x3b, 0xd2, 0x99, + 0x1b, 0x95, 0x7a, 0x92, 0x3e, 0x21, 0xef, 0x35, 0x1b, 0x79, 0x19, 0xdc, 0x31, 0xbd, 0x48, 0xb4, + 0x01, 0x04, 0x0f, 0x79, 0x3b, 0x74, 0xe2, 0xec, 0x62, 0x2b, 0xdd, 0x73, 0x8a, 0x94, 0x7c, 0x3e, + 0xa4, 0x64, 0x27, 0x9f, 0xdf, 0xc5, 0xfd, 0x84, 0xfe, 0xfc, 0x81, 0x91, 0x6b, 0xbe, 0x3a, 0xf7, + 0xd2, 0xaa, 0xc1, 0x3c, 0x5c, 0x0e, 0x5e, 0xaf, 0xa7, 0x84, 0x5d, 0xd4, 0x97, 0xc8, 0x47, 0xac, + 0x21, 0x0c, 0x4f, 0x18, 0x18, 0x3d, 0x7f, 0x52, 0xb3, 0x47, 0xd8, 0xe0, 0x9e, 0x40, 0xe9, 0x87, + 0x9f, 0x05, 0xab, 0xda, 0x31, 0x3a, 0x35, 0x3e, 0xbb, 0xd3, 0xd2, 0xac, 0xa3, 0xbe, 0xe4, 0x72, + 0x7a, 0x36, 0x5b, 0x90, 0xc2, 0x12, 0x55, 0x49, 0x50, 0x12, 0xae, 0xdd, 0x91, 0xa0, 0xac, 0x02, + 0x79, 0x81, 0x30, 0x50, 0xfb, 0x7d, 0xa5, 0xcb, 0xcb, 0x35, 0xfb, 0x52, 0x29, 0xe5, 0x28, 0x55, + 0x69, 0xf9, 0xfa, 0x79, 0x8d, 0xf0, 0x1b, 0xa0, 0x30, 0xaf, 0xc0, 0x6a, 0x3b, 0x85, 0xd7, 0x96, + 0x2c, 0xcd, 0xd3, 0xca, 0x75, 0x32, 0x7d, 0x66, 0x7e, 0xbc, 0x85, 0xa7, 0xd2, 0x09, 0x22, 0x5b, + 0x7b, 0xac, 0x4b, 0xe1, 0x56, 0x70, 0x2c, 0x09, 0x3a, 0x91, 0x2a, 0x7f, 0xfb, 0x10, 0xe9, 0x08, + 0xd1, 0xa8, 0x2a, 0xb9, 0xd0, 0x0b, 0xf9, 0x66, 0x45, 0x12, 0xdb, 0x3a, 0x80, 0xfa, 0x54, 0x74, + 0xe1, 0x7a, 0x68, 0xa7, 0x35, 0xdd, 0x9c, 0x3a, 0x19, 0x5f, 0x15, 0xe9, 0xa9, 0x5d, 0xbf, 0x0b, + 0x29, 0x5b, 0xbd, 0x69, 0x17, 0xf5, 0xcf, 0x11, 0x56, 0x32, 0x80, 0x27, 0xc4, 0x08, 0x8e, 0x02, + 0x5f, 0x2f, 0xf9, 0xaa, 0x39, 0xd3, 0x8f, 0x6f, 0xea, 0x0b, 0xdb, 0xc7, 0xed, 0xea, 0xaa, 0xcf, + 0x67, 0x63, 0x9a, 0xcd, 0xbd, 0xc3, 0x07, 0xac, 0xdb, 0x74, 0x4f, 0x67, 0x39, 0x53, 0x83, 0x60, + 0x9d, 0x5a, 0xce, 0xe5, 0xe1, 0xc8, 0xab, 0x38, 0xdc, 0xe6, 0xd3, 0x0f, 0x05, 0xd7, 0x28, 0x8b, + 0x4b, 0x98, 0x17, 0x33, 0xc2, 0x28, 0xc7, 0x1e, 0x30, 0x54, 0xf5, 0xf1, 0x1a, 0x93, 0x37, 0x05, + 0x86, 0xad, 0xd4, 0x47, 0x5e, 0xae, 0xe5, 0x79, 0x4c, 0x27, 0x3a, 0xdf, 0x19, 0x6e, 0x67, 0x3e, + 0x82, 0x7e, 0xb1, 0x43, 0xb1, 0x8b, 0x5f, 0x4d, 0x52, 0xeb, 0x2d, 0x91, 0x9e, 0xea, 0x8d, 0x54, + 0xc2, 0x86, 0xb3, 0x09, 0xa4, 0xf4, 0x5f, 0xec, 0x20, 0x44, 0x72, 0x8e, 0x46, 0x3e, 0xf2, 0x84, + 0x2e, 0xe9, 0x67, 0x9e, 0xae, 0x71, 0x5d, 0xb8, 0xfc, 0x8b, 0x93, 0xa4, 0x7f, 0x81, 0xf7, 0x0b, + 0xda, 0x45, 0x76, 0x1f, 0xd6, 0x2e, 0x79, 0x6d, 0x65, 0xef, 0x93, 0x0d, 0x9e, 0xde, 0x9a, 0xc3, + 0x1c, 0x75, 0x23, 0xb9, 0x82, 0x4e, 0x21, 0x2c, 0x98, 0x8c, 0x3f, 0x6b, 0xc3, 0x2a, 0xc3, 0x4d, + 0x61, 0xf6, 0x29, 0x19, 0x55, 0x7b, 0x2e, 0x99, 0xd8, 0x08, 0xe6, 0x92, 0x7a, 0x2b, 0x47, 0xe5, + 0xb8, 0x5a, 0xa2, 0xcd, 0xfc, 0xe1, 0x22, 0x3f, 0x84, 0x3c, 0x11, 0xf3, 0x0c, 0x4c, 0xfb, 0x57, + 0xe4, 0x87, 0x8a, 0x68, 0x6f, 0x43, 0xbe, 0x0a, 0xc1, 0x85, 0xdc, 0x63, 0x30, 0xc5, 0x11, 0x35, + 0x4f, 0xf1, 0x06, 0xa1, 0xd0, 0x1b, 0x06, 0x9f, 0xb7, 0x1c, 0x3c, 0xde, 0xb9, 0xe0, 0xf2, 0x96, + 0x81, 0xcc, 0xf8, 0x1e, 0x36, 0xf2, 0x12, 0x3c, 0x10, 0x3b, 0xb9, 0xd0, 0x77, 0x67, 0xa4, 0x6b, + 0x4c, 0xa8, 0x44, 0x29, 0x3b, 0xef, 0x04, 0x17, 0x84, 0x1c, 0xea, 0x2c, 0xf2, 0x68, 0xc1, 0xb8, + 0x06, 0x2c, 0x01, 0x5d, 0xc8, 0x3d, 0x36, 0x71, 0xff, 0x7c, 0x51, 0x27, 0xa1, 0x81, 0xa5, 0xd0, + 0x77, 0x12, 0xdc, 0x0f, 0xee, 0x78, 0xad, 0x09, 0x2f, 0x57, 0xe4, 0x0f, 0x96, 0xf8, 0xda, 0x20, + 0xd7, 0x3a, 0x6e, 0x63, 0x88, 0x09, 0xc8, 0xeb, 0xb8, 0x9a, 0xc1, 0x2e, 0x93, 0xc6, 0xf1, 0xb3, + 0xcc, 0xd3, 0x0b, 0xed, 0xe4, 0x0b, 0xb1, 0xed, 0x1e, 0xc7, 0xf6, 0x31, 0x95, 0x0d, 0x69, 0x16, + 0xee, 0x0b, 0x8b, 0xf1, 0x30, 0x2e, 0xeb, 0xb3, 0xc4, 0x69, 0x6a, 0x8f, 0xab, 0x0b, 0x71, 0xbc, + 0x3c, 0x41, 0xab, 0x82, 0x86, 0xab, 0x02, 0x2e, 0xea, 0xa0, 0x06, 0xad, 0xcd, 0xb8, 0xb6, 0xf7, + 0xab, 0xc5, 0xd6, 0x99, 0x60, 0xd0, 0x7e, 0xa0, 0x16, 0xe2, 0x6f, 0xa3, 0xb6, 0x43, 0x45, 0x3a, + 0x60, 0xa2, 0xd1, 0x35, 0x10, 0x95, 0xf4, 0xd4, 0x5d, 0x98, 0xfa, 0x51, 0xac, 0x85, 0x29, 0x95, + 0xb2, 0xe9, 0x15, 0x17, 0x8e, 0x3f, 0x35, 0x9b, 0xe6, 0x81, 0x70, 0x1b, 0xee, 0x10, 0xbb, 0xe9, + 0xf4, 0xd5, 0xb4, 0xdb, 0xb0, 0x1a, 0x59, 0x58, 0x8d, 0xbe, 0x63, 0x94, 0xeb, 0x15, 0x36, 0xcf, + 0x70, 0xde, 0x7c, 0xa1, 0xbe, 0x76, 0x63, 0x7e, 0xdc, 0x8b, 0xa9, 0x7a, 0x4d, 0xf3, 0x87, 0x46, + 0x5e, 0xac, 0x7a, 0x94, 0xd9, 0x8f, 0xb0, 0x59, 0x63, 0xea, 0x96, 0xfd, 0xed, 0xc0, 0x6c, 0xd4, + 0xb6, 0x90, 0x8f, 0x50, 0x09, 0xee, 0xec, 0x5a, 0x29, 0xec, 0xe9, 0xaa, 0x37, 0xb5, 0x66, 0x21, + 0xc7, 0x3c, 0x87, 0xd9, 0x24, 0xb9, 0xc1, 0x41, 0x1e, 0xfa, 0xb0, 0x0c, 0x8f, 0xd2, 0x2e, 0x98, + 0xbe, 0x8d, 0x42, 0x26, 0x8b, 0x4f, 0x96, 0xb2, 0xaa, 0x39, 0x7c, 0xbf, 0xea, 0xc8, 0xb7, 0xe0, + 0xca, 0x46, 0xdf, 0x58, 0xc2, 0x98, 0x96, 0x6a, 0xcc, 0x0b, 0x6b, 0x38, 0x4a, 0xcb, 0xce, 0x82, + 0x6b, 0x77, 0x8f, 0xfa, 0x44, 0xd9, 0x7b, 0x60, 0x2d, 0x79, 0x5f, 0x1b, 0x0e, 0x34, 0x6b, 0xeb, + 0x31, 0xaf, 0x3e, 0x37, 0x59, 0xa0, 0xf6, 0xe5, 0x85, 0xb4, 0xad, 0x79, 0xe5, 0xda, 0x63, 0x4e, + 0x83, 0xa7, 0x51, 0xbb, 0x24, 0xda, 0xee, 0x8c, 0x77, 0x0a, 0x7b, 0xe3, 0xf5, 0x20, 0x9c, 0x8d, + 0x65, 0xf5, 0x6f, 0x40, 0xfa, 0x79, 0x4a, 0x72, 0x6b, 0xc3, 0x66, 0x6c, 0x32, 0x7c, 0x3e, 0x46, + 0x78, 0xad, 0x24, 0xa3, 0xcb, 0x2d, 0x06, 0xe3, 0xbe, 0xb5, 0x51, 0x13, 0xb3, 0xc8, 0x5a, 0x1f, + 0xbe, 0x1f, 0x39, 0xde, 0xb9, 0x09, 0x6f, 0xb8, 0xd5, 0xdd, 0x61, 0xcc, 0x21, 0x6a, 0x39, 0xba, + 0x1d, 0xeb, 0xd7, 0x15, 0x35, 0x2c, 0xee, 0x66, 0x67, 0x96, 0x6b, 0xb1, 0x25, 0xf3, 0x07, 0xb7, + 0xe3, 0xfa, 0x0a, 0x1c, 0xaf, 0xac, 0x7a, 0xa3, 0x07, 0xa2, 0x2b, 0x18, 0x6d, 0x29, 0xf1, 0x82, + 0x54, 0x56, 0xf5, 0x30, 0xd3, 0xf0, 0x50, 0x58, 0x48, 0xa5, 0xd7, 0x44, 0xbe, 0x73, 0x71, 0xdf, + 0xcd, 0xfc, 0xa2, 0x61, 0x78, 0x15, 0x0b, 0xaf, 0xf5, 0x9a, 0x78, 0x4c, 0x0a, 0x37, 0x52, 0xf8, + 0x2c, 0x16, 0xbe, 0x24, 0x11, 0x1f, 0x43, 0x24, 0x16, 0xb2, 0x22, 0x11, 0x33, 0xcc, 0x30, 0x78, + 0x43, 0xbf, 0x0c, 0x76, 0x29, 0x96, 0x56, 0x50, 0x4c, 0xad, 0x06, 0xc5, 0xd0, 0x4a, 0x9e, 0x58, + 0x8d, 0x31, 0xb3, 0x44, 0xfc, 0x1a, 0x60, 0x3d, 0x0d, 0x9b, 0x5f, 0xee, 0x14, 0xba, 0xd7, 0xe2, + 0x78, 0x1c, 0xdf, 0xbd, 0x76, 0xf4, 0x48, 0x16, 0xf9, 0x99, 0xeb, 0xc1, 0x00, 0xee, 0xa5, 0xf0, + 0xca, 0xc4, 0xcb, 0x84, 0xd7, 0x38, 0xd1, 0x10, 0xf0, 0x87, 0xfc, 0x27, 0x43, 0xf6, 0x38, 0x7f, + 0x9a, 0xe4, 0x07, 0x41, 0x34, 0x9c, 0xec, 0xc5, 0xbb, 0x61, 0x52, 0x00, 0x32, 0x58, 0x2b, 0xcc, + 0x22, 0x7f, 0xd6, 0x9a, 0x16, 0xcd, 0x25, 0x2c, 0xa3, 0xd2, 0xf3, 0xe6, 0x89, 0xd2, 0xf8, 0x60, + 0x7c, 0x5f, 0x5c, 0xee, 0xba, 0xad, 0x13, 0x67, 0x95, 0x79, 0x6a, 0x04, 0x2c, 0x4a, 0x8e, 0xfe, + 0x6e, 0x5c, 0xe2, 0x9d, 0x62, 0xc2, 0x1d, 0xb5, 0x59, 0x7e, 0x40, 0x36, 0xd7, 0x76, 0xd3, 0xee, + 0x5f, 0x82, 0x40, 0x49, 0xa8, 0xe4, 0x64, 0x05, 0xf2, 0x8b, 0x5b, 0xed, 0x5d, 0xfc, 0xd7, 0xa4, + 0x12, 0x10, 0x24, 0x38, 0xf9, 0x00, 0xde, 0x0d, 0x98, 0x63, 0x46, 0xcc, 0xdc, 0xbf, 0x5d, 0xbb, + 0x14, 0xcd, 0xc7, 0x39, 0x67, 0x65, 0x92, 0xa7, 0x2c, 0xc2, 0x23, 0xc3, 0x11, 0xf7, 0x58, 0xd5, + 0x9e, 0x8f, 0x3f, 0xd2, 0x67, 0x9d, 0x1d, 0xf9, 0x99, 0xbb, 0xe4, 0x0c, 0x3e, 0xc3, 0x90, 0x1b, + 0x39, 0x9b, 0x17, 0xd0, 0xb6, 0x46, 0x70, 0x2c, 0xb0, 0x31, 0x82, 0x77, 0x15, 0xae, 0x0c, 0x21, + 0x0f, 0xfd, 0x98, 0x9c, 0x21, 0xcf, 0x6b, 0x07, 0xdc, 0xb1, 0x31, 0xb4, 0xe4, 0x0c, 0x23, 0x96, + 0x30, 0x97, 0x38, 0x9f, 0x11, 0xad, 0xce, 0x9a, 0x90, 0x5e, 0xbf, 0xd3, 0xab, 0xb0, 0x30, 0x4d, + 0x5b, 0x92, 0x95, 0x0a, 0x23, 0x1e, 0xf3, 0x38, 0xed, 0x98, 0x20, 0xfc, 0x23, 0xb3, 0x15, 0xb9, + 0x97, 0x03, 0x63, 0xc6, 0xef, 0x9e, 0x8f, 0x07, 0x3c, 0xfe, 0xd4, 0x18, 0x36, 0x0c, 0x62, 0xda, + 0x39, 0xff, 0x68, 0xda, 0x83, 0x0f, 0xe2, 0x8a, 0xd7, 0xfb, 0x3f, 0x29, 0x15, 0xfb, 0x72, 0x3d, + 0xb6, 0x64, 0x6f, 0xde, 0x52, 0xb0, 0x6a, 0x7d, 0x92, 0xdf, 0x3c, 0x83, 0x3c, 0x5a, 0x63, 0x49, + 0x08, 0xc1, 0x4d, 0xa6, 0x92, 0xb2, 0x19, 0xdb, 0x5b, 0xbd, 0x11, 0x63, 0x6e, 0xad, 0xde, 0xb0, + 0x8a, 0xf6, 0x11, 0x55, 0x5a, 0x07, 0xce, 0xa6, 0x36, 0xc9, 0xea, 0x2a, 0xf7, 0x64, 0x88, 0x01, + 0x5c, 0x1b, 0x5f, 0x94, 0x9b, 0xb5, 0x0e, 0xd9, 0x4d, 0x36, 0xc6, 0x27, 0x7b, 0x9d, 0xf0, 0xee, + 0x83, 0x9e, 0x66, 0xad, 0xef, 0xf7, 0xbf, 0x42, 0x2e, 0x6b, 0x7d, 0xde, 0x32, 0x4c, 0xb9, 0x33, + 0x0f, 0xe7, 0x93, 0xf6, 0x58, 0xc1, 0x0a, 0xb0, 0xb5, 0x6b, 0xbb, 0x2a, 0xa2, 0x26, 0xa4, 0x08, + 0xe3, 0x95, 0xc9, 0x34, 0x33, 0x71, 0x06, 0xa9, 0x74, 0x4e, 0x85, 0x29, 0xd0, 0x0c, 0xb6, 0x0e, + 0x3e, 0x40, 0x1e, 0x60, 0x58, 0xa9, 0xff, 0x14, 0x75, 0xb0, 0xfb, 0x05, 0x8c, 0x13, 0x20, 0x4a, + 0x03, 0xbd, 0x98, 0x57, 0x11, 0xce, 0xee, 0x46, 0x4c, 0xb9, 0x57, 0x9c, 0x91, 0xd6, 0x56, 0xec, + 0xa4, 0x6b, 0xf0, 0x81, 0x51, 0x35, 0x4e, 0x86, 0xa5, 0x6a, 0x4c, 0xe7, 0xd5, 0x6c, 0x46, 0xfc, + 0x8b, 0xf8, 0x59, 0xb3, 0x75, 0xf0, 0x51, 0x2f, 0x20, 0xef, 0xbb, 0x1a, 0xe7, 0x7d, 0x9c, 0xea, + 0x39, 0xfb, 0x28, 0xd3, 0x88, 0x9f, 0xa9, 0xad, 0xc6, 0x36, 0x21, 0x5f, 0x3d, 0x26, 0xc5, 0xf6, + 0xf3, 0xff, 0x54, 0x2d, 0x24, 0xc7, 0x00, 0x63, 0xbe, 0x4d, 0x99, 0x23, 0xe6, 0x83, 0x51, 0x29, + 0xfa, 0x47, 0x73, 0x65, 0x79, 0x3d, 0x87, 0xd4, 0xac, 0x59, 0x7b, 0xec, 0xd5, 0xf7, 0xb5, 0x4e, + 0xc2, 0xfb, 0xdb, 0xdf, 0x93, 0x5d, 0x0c, 0xa6, 0x5d, 0xdd, 0x0d, 0xea, 0xd1, 0xee, 0xc2, 0xdb, + 0x5d, 0xb8, 0xf7, 0x10, 0x0d, 0x80, 0xed, 0x03, 0x39, 0x20, 0x83, 0x0f, 0xe6, 0x40, 0x25, 0xb5, + 0xe9, 0xe0, 0x26, 0x29, 0xae, 0x2c, 0x64, 0xad, 0x9b, 0x35, 0x18, 0x28, 0x88, 0x2b, 0x61, 0xfd, + 0xd9, 0x90, 0x15, 0x57, 0xe6, 0xd0, 0xb3, 0x27, 0xf2, 0xdd, 0x97, 0x7f, 0x3f, 0x20, 0x6d, 0x50, + 0x7c, 0xfc, 0xcd, 0x96, 0x8a, 0xa3, 0xfe, 0x82, 0x6e, 0x45, 0xe2, 0xbf, 0x66, 0x8d, 0xdf, 0x92, + 0x71, 0x14, 0xb2, 0xba, 0x95, 0x2c, 0x57, 0x89, 0x6c, 0xa6, 0x53, 0x62, 0x78, 0x0f, 0xd7, 0xcc, + 0x93, 0x48, 0xa1, 0xeb, 0x90, 0xa3, 0xb4, 0x1e, 0x7e, 0x56, 0xeb, 0xd8, 0xf3, 0xac, 0xb6, 0x55, + 0x85, 0x91, 0x39, 0x4e, 0x13, 0x7e, 0xd3, 0xe6, 0xb1, 0x52, 0x4c, 0xb2, 0x27, 0x23, 0xdc, 0x0e, + 0x9a, 0x8d, 0xa3, 0x57, 0x25, 0x92, 0x69, 0x26, 0xe9, 0x28, 0x0c, 0x9f, 0xc5, 0x11, 0x4d, 0x36, + 0xd7, 0x8f, 0x33, 0x6f, 0x30, 0xcc, 0x7b, 0xca, 0xcf, 0x45, 0x6e, 0x6d, 0x20, 0x67, 0x48, 0xc4, + 0xaf, 0x36, 0xe1, 0x4a, 0x4c, 0xc8, 0x99, 0x26, 0x5a, 0xa3, 0xd2, 0x79, 0xa1, 0x3a, 0x93, 0x3c, + 0xaf, 0x0d, 0x14, 0x0f, 0xe6, 0x3a, 0xac, 0x4c, 0xa1, 0x9d, 0x7a, 0xc9, 0x59, 0x5c, 0x3d, 0x71, + 0x14, 0x8d, 0xe5, 0x7f, 0xb8, 0xdf, 0x27, 0xf5, 0x84, 0xf2, 0x0a, 0xd1, 0xf8, 0x3b, 0xb9, 0xff, + 0x3c, 0x91, 0xca, 0xc7, 0xa4, 0x08, 0xd9, 0x54, 0xda, 0xab, 0x4b, 0x1a, 0xe9, 0x66, 0xa5, 0xec, + 0x56, 0x0f, 0x3a, 0xf1, 0x7d, 0x72, 0x0d, 0x32, 0xf0, 0x35, 0x08, 0xa9, 0xe6, 0xbc, 0xb4, 0xf8, + 0x19, 0x48, 0xdb, 0x74, 0xef, 0x7d, 0xcc, 0xee, 0xbb, 0x92, 0xf8, 0x88, 0xa2, 0x99, 0xda, 0x60, + 0x14, 0x2e, 0x83, 0x02, 0x97, 0x0b, 0xc9, 0x73, 0x29, 0x5c, 0x3e, 0x82, 0x8f, 0x47, 0x8a, 0xf1, + 0x2a, 0xc4, 0xab, 0x08, 0x2e, 0x9f, 0x88, 0xe1, 0x75, 0x1a, 0x2e, 0xff, 0x7e, 0x0b, 0x5e, 0xbd, + 0x70, 0xf9, 0x77, 0x2e, 0xbc, 0xcb, 0x70, 0xf9, 0x18, 0xc0, 0xe5, 0xd7, 0x30, 0xfc, 0xc4, 0x21, + 0xb8, 0xfc, 0xa6, 0x1d, 0x2e, 0x9f, 0xdc, 0x8f, 0xef, 0xf0, 0xfd, 0x6b, 0x95, 0x90, 0xf8, 0x77, + 0xf9, 0xb7, 0x7e, 0xb8, 0xfc, 0xba, 0x0f, 0xc3, 0x30, 0xcd, 0xa3, 0x21, 0x7e, 0xbd, 0xda, 0x86, + 0xd7, 0x79, 0x8c, 0x8f, 0xe9, 0x9f, 0xc4, 0xe7, 0xb7, 0x8c, 0x78, 0x3f, 0x0e, 0x97, 0x8f, 0x9f, + 0xe0, 0xdf, 0xbc, 0xba, 0x17, 0xe3, 0x75, 0x60, 0x1e, 0x98, 0xf6, 0x5b, 0xf8, 0xed, 0x6f, 0x30, + 0xce, 0x31, 0x11, 0xd3, 0xc0, 0xe7, 0xdf, 0xe1, 0x77, 0x27, 0xe2, 0xf8, 0x0e, 0xdf, 0xbf, 0x59, + 0x8d, 0x17, 0x96, 0xe9, 0xc4, 0x25, 0xdc, 0xa6, 0x69, 0xf0, 0xff, 0xfa, 0x4f, 0x5e, 0x58, 0x16, + 0x99, 0x2d, 0xde, 0xdb, 0xb6, 0xac, 0x69, 0x59, 0xdb, 0x37, 0xf3, 0x9b, 0x96, 0xd5, 0xb5, 0xde, + 0xdd, 0xfa, 0x4d, 0xb1, 0xf0, 0xb6, 0xfc, 0xdb, 0x0a, 0x45, 0x57, 0x41, 0xfe, 0xe7, 0xf2, 0x0b, + 0x7c, 0xb7, 0x15, 0xcc, 0x98, 0x68, 0x81, 0x31, 0x51, 0x20, 0x3c, 0x0c, 0x97, 0x0f, 0x7f, 0x0f, + 0x2e, 0x9f, 0x3a, 0xda, 0x35, 0x63, 0x3c, 0x36, 0xe5, 0xe1, 0x0d, 0x78, 0x2d, 0xc7, 0xeb, 0xc5, + 0x64, 0xda, 0x2a, 0x5c, 0x1e, 0x6c, 0xe2, 0xb5, 0x3b, 0xb2, 0x45, 0x0f, 0xbb, 0x05, 0x2f, 0x9a, + 0x73, 0x5f, 0xc5, 0x8b, 0xfa, 0x68, 0x2b, 0x5e, 0xbb, 0xf0, 0xfa, 0x0d, 0x5e, 0x17, 0x49, 0x9f, + 0x94, 0x64, 0x5e, 0x78, 0x7d, 0x91, 0xc5, 0xbd, 0x1d, 0x16, 0x41, 0x07, 0x7c, 0x0b, 0x7e, 0x0c, + 0x47, 0xe1, 0xcf, 0xc2, 0x24, 0xc1, 0x27, 0x54, 0x25, 0x53, 0x17, 0xb0, 0xbd, 0x9e, 0xd0, 0x9f, + 0xa7, 0xe3, 0x35, 0x8d, 0x6a, 0x43, 0x7d, 0x49, 0x97, 0xd7, 0x56, 0xb3, 0x02, 0x44, 0xe2, 0x26, + 0x43, 0x1d, 0x9a, 0x86, 0x74, 0xe1, 0xf2, 0x61, 0x99, 0x46, 0x47, 0xf1, 0x62, 0xb2, 0x75, 0x8e, + 0x81, 0x8e, 0xfc, 0xc2, 0xbc, 0xba, 0xb0, 0x8b, 0x62, 0x78, 0x52, 0x31, 0x08, 0x8b, 0x38, 0x82, + 0x29, 0x18, 0xf2, 0xb5, 0xbf, 0x82, 0x4d, 0x31, 0x7c, 0xf7, 0x15, 0xd1, 0xc6, 0xb9, 0x4d, 0x28, + 0x90, 0xfd, 0x9f, 0xeb, 0xc4, 0xd9, 0x9c, 0x8d, 0xdf, 0x68, 0xc5, 0x11, 0xf6, 0x4d, 0x65, 0x2d, + 0x5f, 0xd3, 0xd3, 0x53, 0x5b, 0x4c, 0x58, 0x9f, 0xb7, 0x9f, 0x49, 0xf9, 0xf5, 0x4d, 0x2b, 0x4b, + 0x65, 0xd5, 0x66, 0xc6, 0x0d, 0x27, 0x63, 0x1f, 0xc9, 0xa5, 0xd8, 0xc5, 0x8b, 0x59, 0xec, 0x5c, + 0xa4, 0x88, 0xf5, 0xe4, 0x0f, 0x2a, 0x19, 0xbf, 0x90, 0x7b, 0x26, 0x66, 0x48, 0x5c, 0x3c, 0xf5, + 0x60, 0x22, 0xf5, 0xb4, 0x58, 0x0b, 0xaa, 0x36, 0xa7, 0x95, 0xa9, 0x1a, 0xe7, 0x05, 0xae, 0x45, + 0xad, 0x50, 0xe0, 0x86, 0x2c, 0x29, 0xbc, 0x79, 0x60, 0xb0, 0x2b, 0x25, 0xaf, 0xa5, 0x5c, 0x1e, + 0x39, 0x48, 0x3e, 0x11, 0x39, 0x06, 0x6d, 0x65, 0x89, 0x19, 0xe7, 0x15, 0x20, 0xa7, 0xd1, 0x38, + 0x25, 0x18, 0x0f, 0x77, 0x35, 0x5a, 0x83, 0x5d, 0x34, 0xe3, 0x5f, 0x3d, 0x8f, 0xf7, 0x7b, 0x13, + 0x4f, 0xc1, 0x38, 0x72, 0xd0, 0x5d, 0x8d, 0x34, 0xea, 0x16, 0x26, 0xdf, 0xc7, 0xd9, 0xf7, 0x82, + 0x99, 0xa7, 0x03, 0xb9, 0x34, 0x9b, 0x70, 0x2e, 0xb6, 0x51, 0x5a, 0xc6, 0x60, 0x3c, 0xd2, 0x8d, + 0x5f, 0x18, 0x83, 0x5d, 0x35, 0xdd, 0x14, 0xff, 0x68, 0x07, 0x69, 0xed, 0xb6, 0x41, 0x79, 0xbc, + 0xbc, 0x2b, 0xd2, 0x75, 0xb8, 0x9b, 0x6c, 0x6c, 0x2a, 0x71, 0x8d, 0xa7, 0x6f, 0x70, 0x07, 0x01, + 0x84, 0x81, 0xaa, 0x69, 0x75, 0x53, 0x9c, 0x42, 0xc8, 0x3f, 0x0b, 0xa2, 0xc6, 0xb5, 0xbf, 0xf4, + 0x65, 0xd0, 0x13, 0xbb, 0x97, 0x16, 0x64, 0x54, 0xbe, 0x49, 0xb6, 0x3c, 0x4e, 0x81, 0x71, 0x07, + 0xfe, 0x50, 0x49, 0xc0, 0xdf, 0x76, 0xc3, 0x60, 0xfc, 0xd5, 0xae, 0x5d, 0x5d, 0x75, 0xc6, 0x4d, + 0x3d, 0x11, 0xff, 0x97, 0x0e, 0x6a, 0x17, 0x78, 0x1c, 0x2a, 0x13, 0x40, 0x22, 0x5d, 0xd2, 0xd6, + 0x9b, 0x85, 0x69, 0xbe, 0x34, 0x10, 0xf2, 0x17, 0x42, 0xa8, 0x64, 0xff, 0x2f, 0x8f, 0xf6, 0x84, + 0x02, 0x81, 0x40, 0xa8, 0x64, 0xe0, 0x97, 0x83, 0xdd, 0xfc, 0x8b, 0x4a, 0xb2, 0x63, 0x64, 0xf1, + 0x8b, 0x91, 0x50, 0x3b, 0x05, 0x17, 0xb8, 0x85, 0x50, 0x20, 0x54, 0xba, 0xef, 0x3f, 0x30, 0xd6, + 0xaf, 0x0e, 0xec, 0x3b, 0xf8, 0xab, 0xe3, 0x6b, 0x8e, 0x04, 0x43, 0xc1, 0xc3, 0xc1, 0x50, 0x49, + 0x02, 0x23, 0x39, 0x81, 0x31, 0x85, 0xb4, 0x53, 0x46, 0x1a, 0x97, 0xb4, 0x75, 0xb9, 0x72, 0x04, + 0x7f, 0xb9, 0xa6, 0x85, 0xc0, 0x47, 0x68, 0x52, 0xf8, 0xec, 0xc1, 0x67, 0x17, 0xd3, 0x9d, 0xab, + 0xd3, 0xfd, 0x80, 0xe6, 0x83, 0x20, 0xcc, 0x20, 0x8e, 0x51, 0x0a, 0xfb, 0x3a, 0xb5, 0x76, 0xd2, + 0xf3, 0x7c, 0xf5, 0x19, 0x86, 0x88, 0x4c, 0xbf, 0x63, 0xf4, 0xfb, 0x68, 0xd2, 0x82, 0x43, 0x0f, + 0x6d, 0x64, 0xb1, 0x9a, 0xc6, 0x84, 0xd6, 0xb3, 0xd0, 0x33, 0xa9, 0x50, 0x1d, 0x3d, 0x2d, 0x5f, + 0x98, 0xd1, 0xec, 0x64, 0x31, 0x66, 0xb3, 0x18, 0x3b, 0x93, 0x5f, 0x14, 0xb2, 0xd4, 0x63, 0xa9, + 0x2f, 0x62, 0x42, 0x02, 0xe9, 0x4a, 0x9c, 0xed, 0xac, 0x90, 0x6d, 0x8c, 0xfa, 0xb6, 0x61, 0xed, + 0x98, 0x66, 0xe2, 0xa9, 0xc5, 0xb2, 0x9f, 0xe9, 0x0b, 0x66, 0xa9, 0x4a, 0xc5, 0x59, 0x5c, 0x3b, + 0x2a, 0x53, 0xba, 0x6a, 0xe4, 0x67, 0x10, 0xbe, 0x10, 0x9d, 0x42, 0x3e, 0x0f, 0xa3, 0x39, 0xb8, + 0x66, 0xe4, 0x81, 0x0d, 0xb9, 0x32, 0x86, 0x58, 0x79, 0x2a, 0x81, 0xd6, 0x3b, 0x59, 0x0c, 0x97, + 0xbe, 0x07, 0x49, 0x6f, 0x28, 0x23, 0x17, 0xa6, 0x87, 0x21, 0xab, 0xb0, 0x93, 0xb4, 0x2f, 0x70, + 0x14, 0xa6, 0x52, 0x7b, 0x89, 0x7e, 0xfb, 0x70, 0x54, 0x2e, 0x66, 0x76, 0x50, 0x84, 0x00, 0xf4, + 0x4e, 0xef, 0x58, 0x0d, 0x73, 0xa2, 0xe4, 0xfa, 0x49, 0x5f, 0x81, 0x33, 0xe4, 0x1c, 0x2f, 0xdb, + 0xfa, 0xb9, 0x26, 0x84, 0x59, 0xf7, 0x09, 0x4a, 0x7a, 0xec, 0xb7, 0x0e, 0x76, 0x5d, 0xd3, 0xdb, + 0x28, 0xc0, 0x29, 0xec, 0x0d, 0x09, 0x7b, 0xc3, 0xe6, 0x9d, 0x90, 0xf0, 0x21, 0x4a, 0x5c, 0xc0, + 0x0d, 0xff, 0xde, 0x0a, 0x62, 0x29, 0xf3, 0xc6, 0x79, 0xe2, 0x26, 0x3f, 0x4c, 0x0c, 0x34, 0xc2, + 0x14, 0xbc, 0x44, 0xf6, 0xee, 0xf1, 0xd4, 0x3b, 0xc6, 0x7b, 0x47, 0x62, 0x73, 0x46, 0xa7, 0x4e, + 0x9a, 0xfb, 0xd8, 0xb7, 0xd9, 0x51, 0x85, 0xc5, 0xff, 0x7e, 0x2a, 0xfe, 0x74, 0x3f, 0xcc, 0xf6, + 0x75, 0x82, 0xf5, 0xf0, 0x59, 0xc8, 0x4e, 0x8d, 0x0e, 0xdc, 0x4d, 0x66, 0x4f, 0x0d, 0x81, 0x99, + 0xfc, 0x67, 0x21, 0x17, 0x6c, 0x14, 0x1f, 0x60, 0xdf, 0xfd, 0x5b, 0xea, 0x3b, 0xb6, 0x7b, 0x1c, + 0x5b, 0x03, 0xdc, 0xf3, 0x88, 0x61, 0xf6, 0x1e, 0xf9, 0xe9, 0xcf, 0x11, 0x57, 0x2f, 0x2a, 0x26, + 0x2a, 0x65, 0x60, 0x13, 0xfb, 0x35, 0x45, 0xb4, 0x70, 0xeb, 0x99, 0x4a, 0x2b, 0xd7, 0x39, 0x94, + 0x41, 0x0e, 0xcd, 0x67, 0x36, 0xb1, 0x24, 0x37, 0xf9, 0x52, 0x1c, 0x77, 0x25, 0x8f, 0x56, 0x6f, + 0x74, 0xf9, 0xe7, 0xea, 0x98, 0x33, 0x30, 0x0e, 0x43, 0x36, 0x57, 0x6f, 0xfc, 0x1c, 0x72, 0xaa, + 0xf3, 0x98, 0x05, 0x2d, 0x86, 0x15, 0x73, 0xeb, 0xd8, 0xc2, 0xb8, 0xfe, 0xfc, 0x28, 0x59, 0xca, + 0xb2, 0x67, 0xa0, 0x70, 0x8c, 0x6b, 0x48, 0xbd, 0xc1, 0xa7, 0x9c, 0x64, 0xb8, 0xf1, 0xa7, 0xd8, + 0x13, 0xcf, 0xdd, 0xb0, 0xa2, 0xba, 0xe2, 0x9c, 0xe1, 0x77, 0xf3, 0x75, 0xdc, 0x99, 0xcc, 0x1f, + 0x7b, 0xad, 0x3c, 0x0d, 0x53, 0x37, 0x92, 0xed, 0x0f, 0xe8, 0x9c, 0x57, 0x0f, 0xc5, 0x9c, 0x89, + 0xbb, 0x12, 0x9a, 0x5b, 0x00, 0xf6, 0xb9, 0xfd, 0x35, 0x0f, 0xe1, 0x3e, 0xb3, 0xd9, 0x3b, 0x91, + 0x62, 0x1f, 0x8d, 0xeb, 0xcf, 0x9b, 0x15, 0x80, 0xc7, 0xb0, 0xf4, 0x86, 0xd9, 0x2f, 0x84, 0x9a, + 0x4e, 0x7e, 0x97, 0xbe, 0x21, 0xdd, 0xe0, 0x71, 0x83, 0xc9, 0x2f, 0x7b, 0xe9, 0xcb, 0x0a, 0x96, + 0x1b, 0xc6, 0x83, 0x0d, 0xcf, 0xe0, 0x57, 0x5b, 0xaa, 0x37, 0x72, 0x3c, 0x18, 0x59, 0x78, 0x6f, + 0xdd, 0xd1, 0x2e, 0x42, 0xc4, 0xa1, 0x6f, 0x92, 0xef, 0x13, 0x39, 0x37, 0xb5, 0xf8, 0xdd, 0xfe, + 0xc8, 0x43, 0xac, 0x3c, 0xec, 0x2b, 0x92, 0xb0, 0x50, 0xde, 0xec, 0x77, 0xaa, 0x7c, 0x52, 0x5a, + 0xe9, 0xb6, 0xa4, 0x97, 0xae, 0x7a, 0x63, 0xeb, 0xec, 0x1d, 0xf1, 0x26, 0x43, 0x24, 0x4e, 0x28, + 0xbe, 0x87, 0x47, 0x5a, 0x27, 0x88, 0x77, 0xbf, 0x30, 0x50, 0x97, 0xd3, 0xd7, 0x1b, 0x29, 0xf9, + 0x5c, 0x09, 0x98, 0x23, 0x7e, 0x6c, 0x17, 0xd3, 0xe7, 0x02, 0x64, 0xdd, 0x47, 0x9a, 0x98, 0x35, + 0x5d, 0xca, 0x1b, 0xcc, 0x86, 0x4f, 0x92, 0xd9, 0xd8, 0x15, 0xb3, 0x88, 0xe7, 0x89, 0x16, 0xd5, + 0xcd, 0xce, 0xc2, 0x3a, 0x72, 0xcf, 0xd6, 0x90, 0x81, 0xbb, 0xdb, 0x2c, 0xc5, 0x44, 0x18, 0xb8, + 0xca, 0x1b, 0xc4, 0x19, 0xbd, 0xd3, 0xfb, 0x9b, 0x01, 0xc5, 0xa1, 0x8f, 0x8d, 0x53, 0xfc, 0xec, + 0x85, 0x9d, 0x2c, 0x1b, 0xab, 0xd7, 0x29, 0x7b, 0xb9, 0x25, 0xbc, 0xd7, 0x86, 0xdc, 0x17, 0x8e, + 0x81, 0x3a, 0xcb, 0xe6, 0x97, 0x71, 0x8e, 0x5d, 0xe2, 0x78, 0xe6, 0x3a, 0x6e, 0x25, 0x21, 0x70, + 0x9a, 0x13, 0x52, 0x10, 0x59, 0xc7, 0xb2, 0xb4, 0x56, 0x43, 0x71, 0x5d, 0x3b, 0x7e, 0x75, 0x3b, + 0x18, 0xea, 0x56, 0xe0, 0xfd, 0x53, 0x60, 0xac, 0x53, 0xad, 0x4b, 0xc7, 0xfd, 0x14, 0x2c, 0x4b, + 0xee, 0xc2, 0xdf, 0x26, 0xb0, 0xd6, 0x2d, 0xf4, 0xe1, 0x4e, 0x30, 0x5a, 0x5d, 0x80, 0xdf, 0xd7, + 0x94, 0x58, 0x4b, 0x60, 0x42, 0x5d, 0xd0, 0xc0, 0xa8, 0xf4, 0x91, 0xae, 0x82, 0xdb, 0x73, 0x90, + 0xbb, 0xb5, 0x1b, 0x40, 0x04, 0x17, 0x5e, 0x39, 0xfa, 0x95, 0x7c, 0xb2, 0xfa, 0x61, 0xca, 0x12, + 0xbb, 0xe2, 0xc0, 0xfb, 0x2d, 0x4b, 0xcc, 0x8a, 0x15, 0xef, 0x9f, 0xa9, 0x23, 0xbf, 0x6f, 0xdd, + 0x89, 0x92, 0xd1, 0x79, 0x5a, 0x91, 0xc9, 0x65, 0x76, 0xda, 0xc2, 0xab, 0xa3, 0x93, 0xe7, 0xe1, + 0xfe, 0x2d, 0xcf, 0x4c, 0x56, 0x12, 0x91, 0x6e, 0x71, 0x3e, 0xc3, 0x30, 0x1e, 0x44, 0xea, 0x71, + 0x81, 0x59, 0x4c, 0x1a, 0xd8, 0xef, 0x17, 0x65, 0x20, 0xab, 0x0f, 0x29, 0xc8, 0xbd, 0xae, 0x32, + 0xdf, 0xdc, 0xb9, 0x29, 0x5c, 0x38, 0x39, 0x54, 0xe8, 0x02, 0x0b, 0xae, 0x7c, 0xf6, 0x22, 0xdc, + 0xc7, 0x1e, 0x18, 0xb6, 0xd9, 0xb1, 0xdc, 0x86, 0x7d, 0xc3, 0x50, 0x7c, 0xbc, 0xeb, 0x78, 0x7c, + 0x16, 0xd6, 0xc1, 0x67, 0x30, 0xf9, 0x2f, 0x95, 0x7b, 0x8b, 0x85, 0xb7, 0x3e, 0x1b, 0xbf, 0x03, + 0x02, 0xd1, 0x04, 0xcf, 0x38, 0xb8, 0xba, 0x03, 0x8a, 0xdc, 0x60, 0xc2, 0xf5, 0x32, 0x83, 0xf4, + 0x00, 0x18, 0x12, 0x12, 0xf6, 0x67, 0xc1, 0x6d, 0xbd, 0x20, 0x05, 0x4b, 0xfe, 0x94, 0xa3, 0xb9, + 0xcd, 0xaf, 0xf7, 0xbe, 0xde, 0xfb, 0xe1, 0x43, 0x52, 0xe6, 0xbb, 0x0f, 0x6c, 0x5a, 0xe3, 0x16, + 0xde, 0x7d, 0xe8, 0x3b, 0x5d, 0x83, 0x6b, 0x8a, 0x0c, 0x5c, 0x1a, 0xd2, 0x3b, 0x2c, 0xf4, 0x49, + 0xc6, 0x50, 0x49, 0xb8, 0x24, 0x9a, 0x5b, 0x60, 0x30, 0x94, 0x40, 0x86, 0x2a, 0x16, 0x19, 0x56, + 0xd6, 0xeb, 0x6f, 0xff, 0x43, 0x7f, 0x67, 0xb5, 0x96, 0x82, 0x61, 0x89, 0xc9, 0x14, 0xa7, 0xd9, + 0x58, 0x13, 0x28, 0x30, 0x9c, 0xae, 0x38, 0x13, 0xde, 0x3f, 0x6c, 0x99, 0x83, 0x6b, 0x51, 0xe0, + 0x68, 0x89, 0x29, 0x30, 0x32, 0x75, 0xdf, 0xb0, 0xe3, 0x5f, 0x68, 0xef, 0x7b, 0xaa, 0x62, 0x4b, + 0x09, 0xd9, 0x60, 0x6a, 0x9a, 0x64, 0x38, 0xd2, 0x7d, 0xb4, 0xeb, 0xc3, 0x75, 0x1c, 0xcd, 0x48, + 0x16, 0xde, 0x5d, 0xb7, 0xa5, 0x8b, 0x56, 0x2d, 0x63, 0x71, 0xe2, 0x4c, 0xb2, 0x48, 0xf2, 0x86, + 0xc0, 0x21, 0x8f, 0x2f, 0x02, 0x6c, 0xc9, 0xee, 0x68, 0x80, 0x59, 0x86, 0x7a, 0xe8, 0x4c, 0x50, + 0x0c, 0xb0, 0x96, 0x3a, 0xc5, 0xfc, 0x0b, 0xe2, 0x48, 0x12, 0xfd, 0x3b, 0x90, 0xe6, 0xa8, 0x26, + 0xa4, 0xf8, 0x71, 0xc5, 0x12, 0x0e, 0x46, 0x4d, 0xa2, 0x7f, 0x6a, 0x09, 0x18, 0x4b, 0xc8, 0x16, + 0x9f, 0xb5, 0x38, 0xb3, 0x1f, 0x20, 0x7c, 0x01, 0xbd, 0x5d, 0xd9, 0x99, 0x27, 0xa5, 0x9f, 0xe3, + 0x1c, 0xef, 0x06, 0x97, 0xad, 0x0d, 0x18, 0xbd, 0x2d, 0x0f, 0xf7, 0xa8, 0x05, 0x8a, 0x3f, 0xbc, + 0x46, 0xb5, 0x63, 0x2e, 0xdc, 0x2f, 0xe9, 0x93, 0xe4, 0xb9, 0x54, 0x99, 0x1c, 0x13, 0xfa, 0xd7, + 0xa8, 0xd9, 0xa3, 0x42, 0x79, 0x7e, 0xd8, 0xaf, 0x25, 0x74, 0x8e, 0x1c, 0x4c, 0xe6, 0x33, 0x40, + 0x3d, 0x18, 0xd4, 0x4f, 0x36, 0x7d, 0xb3, 0xe5, 0xf1, 0x4e, 0x5b, 0x6a, 0xd5, 0x71, 0xfa, 0x2b, + 0xde, 0x1b, 0xbd, 0xda, 0x20, 0xf5, 0xed, 0x8e, 0xe6, 0x33, 0x89, 0xa5, 0x89, 0xe6, 0x85, 0x62, + 0x10, 0x6f, 0xd4, 0xcf, 0xec, 0x26, 0xa4, 0xaf, 0x38, 0xd1, 0xc9, 0xa2, 0x3f, 0xb2, 0x14, 0xa6, + 0x90, 0xcd, 0x36, 0x8f, 0x4d, 0xf8, 0x06, 0x38, 0xa3, 0x6e, 0x64, 0x38, 0xbf, 0x69, 0x2b, 0x0e, + 0xe5, 0xbf, 0x98, 0xdb, 0x07, 0x9b, 0xb9, 0xcc, 0x66, 0x7c, 0x5b, 0xf5, 0xc6, 0xe4, 0xda, 0x1e, + 0x62, 0x75, 0x9d, 0x2d, 0x55, 0xb3, 0x15, 0xd1, 0x1e, 0x5e, 0x0a, 0x62, 0xd4, 0x92, 0xd2, 0x8f, + 0xc0, 0x9d, 0x4a, 0x36, 0x7b, 0x63, 0x8d, 0xcd, 0x49, 0xd3, 0x28, 0x0b, 0x8f, 0xd5, 0xa0, 0xf0, + 0xf2, 0x35, 0xca, 0x2a, 0x85, 0x46, 0x5b, 0x45, 0x61, 0x9e, 0x82, 0x9e, 0xeb, 0xb6, 0x84, 0x9d, + 0x32, 0xd3, 0xd3, 0xae, 0x4a, 0xa6, 0xd6, 0x8b, 0x25, 0x97, 0x99, 0x87, 0xa4, 0xd4, 0x89, 0x3a, + 0xf3, 0x49, 0x4f, 0xb6, 0xc2, 0xac, 0xef, 0x9d, 0x38, 0x6f, 0x72, 0xf3, 0xcc, 0xce, 0xf1, 0x2e, + 0x90, 0x6d, 0x8a, 0x2b, 0xdc, 0x13, 0xcd, 0x65, 0x6d, 0x9f, 0xa0, 0x15, 0x36, 0x66, 0x5d, 0x6c, + 0x54, 0xad, 0x76, 0xb2, 0x51, 0x30, 0x85, 0x57, 0xab, 0x46, 0xea, 0x0d, 0x9c, 0x61, 0x81, 0x64, + 0x3f, 0x1c, 0xac, 0x7c, 0xb3, 0x5e, 0xef, 0x6f, 0xae, 0x73, 0x82, 0x5f, 0xd8, 0x74, 0x5e, 0x9a, + 0xad, 0x92, 0xe3, 0x07, 0xb9, 0x9e, 0x32, 0xe5, 0x27, 0x83, 0x0b, 0xfb, 0x89, 0xe7, 0x4a, 0xc8, + 0xf2, 0x62, 0x30, 0x39, 0xc6, 0xb2, 0x45, 0x3f, 0xf3, 0x7e, 0x4c, 0xf4, 0xc6, 0x58, 0x1e, 0xdf, + 0x1f, 0x57, 0x8c, 0xab, 0x71, 0xbc, 0x25, 0x66, 0x33, 0xcb, 0xeb, 0x15, 0x2a, 0x3d, 0xcf, 0x8d, + 0x69, 0x95, 0x98, 0x3d, 0x16, 0xb7, 0x4d, 0xae, 0x70, 0x2f, 0x6a, 0x87, 0x0e, 0xd2, 0x30, 0x33, + 0x33, 0x1b, 0x3d, 0x8b, 0x1b, 0xa9, 0x5f, 0xed, 0x3a, 0xc2, 0x8c, 0x33, 0x03, 0x7c, 0x46, 0x05, + 0xf8, 0x80, 0xe4, 0x4f, 0x74, 0x7e, 0x9e, 0xa1, 0x0d, 0x3e, 0x24, 0x96, 0x73, 0xdb, 0x10, 0x89, + 0xaf, 0xea, 0x47, 0xa4, 0xac, 0x7c, 0xc1, 0x70, 0x3f, 0xc0, 0x49, 0x88, 0x4d, 0x3c, 0xf9, 0xbc, + 0x6b, 0x2e, 0xff, 0x75, 0x8b, 0x26, 0xce, 0x2d, 0x39, 0x8f, 0xc4, 0x49, 0x30, 0xc4, 0x73, 0xd9, + 0x59, 0x19, 0xfd, 0x55, 0x6d, 0x73, 0xac, 0x31, 0xb0, 0x8f, 0x0b, 0x77, 0xe1, 0xf6, 0x64, 0xbd, + 0xd2, 0xc9, 0xe5, 0x4e, 0xb1, 0x68, 0x39, 0xec, 0x8b, 0xaf, 0xca, 0x79, 0xb1, 0x2b, 0x5a, 0xdd, + 0x90, 0x8d, 0x6d, 0x65, 0xee, 0xef, 0x8a, 0xce, 0x9e, 0x52, 0x0c, 0x76, 0x0c, 0xf1, 0x84, 0xbb, + 0xa2, 0x85, 0x8a, 0xca, 0x30, 0xfa, 0x7b, 0xa3, 0x72, 0x9d, 0x85, 0x3d, 0xc5, 0xd5, 0x05, 0xca, + 0x14, 0xf6, 0xd4, 0x17, 0xe5, 0x21, 0x5b, 0xd5, 0x80, 0x22, 0x8a, 0x4f, 0xe1, 0x58, 0x2b, 0xf6, + 0x3d, 0x05, 0x26, 0x65, 0x96, 0xfd, 0x29, 0x18, 0xa7, 0xf8, 0x0a, 0x28, 0x3f, 0x21, 0xfc, 0x14, + 0xe9, 0xf1, 0x28, 0x39, 0x7a, 0xee, 0xf4, 0xcb, 0x2a, 0x19, 0xc9, 0x3a, 0xbc, 0x1c, 0x7e, 0x69, + 0x57, 0x2c, 0xf9, 0xc6, 0xb7, 0x9e, 0xdf, 0x68, 0x57, 0x0c, 0x35, 0x3d, 0x91, 0x9e, 0xda, 0x75, + 0x22, 0xd9, 0x55, 0x7d, 0x44, 0x76, 0xda, 0xdc, 0x77, 0x31, 0x43, 0xe8, 0x2c, 0x90, 0x43, 0xde, + 0x0a, 0xb0, 0xcb, 0x36, 0x36, 0xaa, 0x65, 0xa6, 0xb9, 0x68, 0x0f, 0xf4, 0x29, 0x93, 0x9d, 0x7e, + 0xb1, 0x46, 0x5a, 0x0e, 0x46, 0xf9, 0x80, 0xfc, 0x32, 0xce, 0x31, 0x3b, 0xef, 0x5b, 0x6c, 0xed, + 0xb7, 0x91, 0x1b, 0x30, 0xea, 0xf6, 0x17, 0xb8, 0xe6, 0xe8, 0xdc, 0x92, 0x2f, 0xa5, 0x9d, 0x81, + 0xbb, 0x84, 0x29, 0x35, 0xb4, 0x4a, 0x4d, 0x51, 0xed, 0xd8, 0x77, 0x93, 0x91, 0xbe, 0x86, 0x37, + 0xbf, 0x4c, 0xdf, 0x8f, 0x5c, 0x4a, 0x69, 0x66, 0x24, 0xfc, 0x62, 0x88, 0xb3, 0x71, 0xdd, 0xaa, + 0xe0, 0x1c, 0x17, 0xac, 0x73, 0x2d, 0x85, 0x2c, 0x66, 0xf1, 0xb2, 0x4a, 0x1e, 0x9f, 0x4a, 0x11, + 0xe7, 0x28, 0xd9, 0x6b, 0x4f, 0x56, 0xc9, 0x9f, 0xb3, 0x65, 0xda, 0x3c, 0x98, 0xac, 0xd8, 0x03, + 0x4f, 0x83, 0x25, 0x85, 0x2e, 0x35, 0xb2, 0x36, 0x4d, 0xe7, 0x03, 0x39, 0x2d, 0x75, 0xce, 0xdc, + 0x73, 0x38, 0xd3, 0x53, 0xe8, 0x53, 0x87, 0x4a, 0xcf, 0xa6, 0xf8, 0x45, 0xcd, 0x88, 0xf3, 0x6c, + 0x32, 0x9b, 0x67, 0x96, 0x54, 0x0a, 0x69, 0xb1, 0x5f, 0xe2, 0x1c, 0x23, 0x5b, 0x57, 0x91, 0x27, + 0x94, 0x2b, 0x9c, 0x84, 0x57, 0xf0, 0x69, 0x36, 0xe6, 0x2a, 0x1d, 0x80, 0xcf, 0x93, 0xf9, 0x73, + 0xbf, 0x41, 0x35, 0x85, 0x0d, 0xea, 0x29, 0xbb, 0x81, 0x5b, 0xb7, 0x13, 0x6e, 0xa8, 0x68, 0xe8, + 0xeb, 0xe2, 0x1c, 0x13, 0xc7, 0x76, 0x77, 0x02, 0xd3, 0xed, 0x28, 0xa2, 0x74, 0x58, 0x2a, 0xc1, + 0xb4, 0x54, 0x82, 0x7a, 0x2a, 0x96, 0xb0, 0x21, 0x6a, 0xac, 0xe9, 0x51, 0xdf, 0x48, 0xa4, 0xc4, + 0xf5, 0x3a, 0xb6, 0xc4, 0x75, 0x1c, 0x71, 0x86, 0xcc, 0x5e, 0xf5, 0x75, 0xc5, 0x88, 0x63, 0xc8, + 0x2c, 0xe5, 0xa8, 0x97, 0x02, 0x7e, 0x9c, 0x4d, 0x02, 0xc7, 0x21, 0x40, 0x0e, 0xfc, 0x17, 0x87, + 0x07, 0x5a, 0x6f, 0xde, 0xd1, 0x5b, 0x9f, 0x2d, 0x01, 0x43, 0x55, 0xf2, 0xb7, 0x4d, 0xd9, 0xd9, + 0xd5, 0xc0, 0x74, 0x45, 0xe0, 0xb7, 0x51, 0xc2, 0x29, 0x11, 0x69, 0x6f, 0xc4, 0xe2, 0xfe, 0xdf, + 0x31, 0x71, 0xc5, 0x36, 0x5b, 0x32, 0xee, 0x3b, 0x14, 0x57, 0x3b, 0xc9, 0xb1, 0x0a, 0xe6, 0x14, + 0xc8, 0x66, 0x97, 0xcd, 0x59, 0xe1, 0xfe, 0x74, 0x3b, 0x90, 0x57, 0x2d, 0x7d, 0x1e, 0xe5, 0xe1, + 0x3c, 0x7a, 0x10, 0xe7, 0xd1, 0x10, 0xce, 0xa3, 0x29, 0x38, 0x8f, 0x2e, 0xa4, 0xcd, 0xa3, 0x35, + 0xc8, 0x4f, 0x32, 0x8b, 0x55, 0x5d, 0xfe, 0x7b, 0x4c, 0xba, 0x91, 0xe6, 0x0a, 0xcd, 0xa3, 0xce, + 0x89, 0xe7, 0xb6, 0x79, 0x04, 0xc3, 0x5a, 0x9a, 0x45, 0x52, 0xe0, 0xd5, 0x97, 0x0c, 0x5d, 0xb4, + 0x59, 0xb7, 0x76, 0xe5, 0xd0, 0x29, 0x73, 0x6b, 0x5d, 0x8e, 0xb5, 0x8b, 0xa1, 0xc1, 0xce, 0xb2, + 0x76, 0xd9, 0xe9, 0x1e, 0x60, 0x33, 0x04, 0x67, 0x82, 0xb5, 0xab, 0x97, 0x7e, 0xcf, 0xa6, 0x39, + 0x42, 0x45, 0x54, 0x3b, 0x15, 0x8c, 0xd3, 0x47, 0x61, 0x38, 0x57, 0x28, 0x0d, 0xb5, 0x51, 0xa9, + 0x64, 0x7a, 0xec, 0xe0, 0x9b, 0xa4, 0x2c, 0xe2, 0x4f, 0xf6, 0x49, 0x4a, 0x35, 0xd3, 0x35, 0x79, + 0x58, 0xa9, 0xa2, 0x7b, 0xc1, 0x97, 0x14, 0x0b, 0xdd, 0xed, 0x93, 0x42, 0xf1, 0x02, 0xbf, 0xf8, + 0x80, 0x52, 0x44, 0x68, 0x1c, 0xba, 0x4f, 0x3f, 0x0c, 0x17, 0x84, 0x2f, 0x33, 0xcf, 0x00, 0x91, + 0xb8, 0x92, 0x73, 0xed, 0x37, 0xc1, 0xb8, 0x18, 0xd7, 0xe7, 0xd2, 0x83, 0xe2, 0x8d, 0x38, 0x97, + 0x2e, 0xd0, 0x5c, 0xaa, 0x64, 0x7a, 0x83, 0x62, 0x8b, 0xee, 0xc1, 0x9c, 0xe8, 0x5c, 0x36, 0xf6, + 0x8c, 0x6b, 0xf0, 0x79, 0x30, 0xeb, 0xa7, 0x3e, 0x2d, 0x90, 0x9b, 0xb0, 0xf9, 0x20, 0x2c, 0x5c, + 0xb3, 0x0b, 0xb9, 0xaa, 0x2f, 0x44, 0xdd, 0xcc, 0x2f, 0x45, 0xca, 0xfa, 0xfb, 0x1c, 0xae, 0x2d, + 0xb9, 0x62, 0x29, 0x8e, 0x4c, 0x6e, 0x65, 0x4b, 0xfe, 0x93, 0x0d, 0xb2, 0x45, 0x8e, 0xd0, 0x08, + 0x08, 0x6f, 0x52, 0x4f, 0xe3, 0x2c, 0x30, 0x89, 0x86, 0xaf, 0xc4, 0x75, 0x54, 0x6c, 0x36, 0x1e, + 0xb8, 0xac, 0xe9, 0x6d, 0x19, 0x2f, 0x80, 0xcb, 0x7f, 0xbc, 0x84, 0x17, 0x72, 0x19, 0x67, 0x5d, + 0x78, 0xf5, 0xc1, 0xe5, 0x77, 0xf1, 0xf7, 0x99, 0x7a, 0xb8, 0x7c, 0xce, 0x8f, 0xf7, 0xc7, 0xf1, + 0xbe, 0x7a, 0x94, 0xac, 0xe6, 0xf2, 0xbb, 0x6d, 0x78, 0xe1, 0xb7, 0xe7, 0xf6, 0xc2, 0xe5, 0xf7, + 0x3a, 0xf1, 0xbe, 0x00, 0xef, 0x07, 0x30, 0x0c, 0xaf, 0x33, 0xa7, 0xff, 0x17, 0xe5, 0x41, 0x2d, + 0x2d, 0xb1, 0x94, 0x2c, 0xa8, 0x20, 0xff, 0xb6, 0xd1, 0xa2, 0xa0, 0xb4, 0xb7, 0xc0, 0xe4, 0x40, + 0x7f, 0x78, 0x12, 0x86, 0xc6, 0x15, 0x75, 0xb9, 0xc7, 0xdf, 0x85, 0xcf, 0xdf, 0xc6, 0xeb, 0x5f, + 0xf0, 0x7a, 0x29, 0x91, 0xa4, 0x01, 0x6b, 0x74, 0xea, 0x38, 0xaf, 0xc1, 0xdb, 0xb5, 0x70, 0xf9, + 0x82, 0xca, 0x9f, 0xff, 0x64, 0xe4, 0x52, 0x9c, 0x0b, 0x59, 0x78, 0xcf, 0xc4, 0xdf, 0xf9, 0x14, + 0x19, 0xef, 0xa4, 0x9f, 0x94, 0x91, 0xaa, 0xf5, 0x69, 0x37, 0xb6, 0x92, 0x9f, 0xc7, 0x3d, 0x3d, + 0x1b, 0xaf, 0xed, 0x2c, 0xfe, 0xa8, 0x96, 0xf9, 0xcb, 0xb9, 0xd1, 0xbf, 0x2f, 0x2d, 0xd6, 0xef, + 0xb3, 0xf9, 0x77, 0x1f, 0x3d, 0xc6, 0xf3, 0xf8, 0xe8, 0x14, 0xcf, 0xe3, 0xaf, 0x6a, 0x7a, 0x1e, + 0x91, 0x96, 0x96, 0x36, 0x98, 0xdf, 0xd0, 0x76, 0x37, 0x7f, 0xba, 0xd6, 0x1f, 0xf6, 0xf6, 0x9e, + 0x65, 0xcd, 0x78, 0x5b, 0xd2, 0x74, 0xf7, 0x3d, 0xf7, 0x40, 0x73, 0xda, 0x33, 0x7b, 0xf9, 0xd5, + 0x2f, 0x7e, 0xb1, 0x5a, 0x4c, 0x86, 0xfd, 0xb3, 0x78, 0xe7, 0x8a, 0x65, 0xcd, 0xb1, 0xa6, 0x86, + 0xe6, 0x86, 0x15, 0x6d, 0x0d, 0xf5, 0xf4, 0x62, 0x69, 0x4b, 0xbd, 0xe8, 0xeb, 0x98, 0xe6, 0x2b, + 0xaa, 0x15, 0x97, 0xdc, 0xdd, 0xd4, 0x84, 0x81, 0x2d, 0x2b, 0x44, 0x16, 0x99, 0x82, 0x63, 0xa2, + 0x6b, 0xda, 0x3d, 0x33, 0x2c, 0x57, 0x25, 0x53, 0x81, 0x9f, 0xb7, 0xaa, 0x77, 0x2f, 0x69, 0x10, + 0x2b, 0x82, 0xe2, 0xb4, 0x7b, 0xae, 0x8e, 0xf0, 0xc5, 0xba, 0xc6, 0x86, 0x25, 0x6d, 0x2c, 0x09, + 0xcb, 0xa8, 0x52, 0x8d, 0x29, 0xfc, 0xcc, 0x99, 0x62, 0xac, 0x75, 0x59, 0xfb, 0xdd, 0x6d, 0x0d, + 0x7a, 0xa6, 0x18, 0x00, 0x65, 0xad, 0xad, 0x2d, 0xad, 0xb3, 0xc5, 0xba, 0xbb, 0xef, 0x69, 0xa0, + 0x0f, 0xbf, 0xb6, 0xa4, 0xa5, 0xa1, 0x75, 0x49, 0x83, 0x5e, 0xd8, 0x68, 0x4b, 0x5b, 0xa2, 0xdc, + 0x54, 0x60, 0xb1, 0xad, 0x45, 0xbc, 0x77, 0xc5, 0xf2, 0x15, 0x2d, 0xdf, 0x58, 0x21, 0x2e, 0x4b, + 0x96, 0x6a, 0x5a, 0xbd, 0x05, 0x12, 0xe9, 0x52, 0x32, 0xa9, 0xa2, 0x41, 0x2b, 0xe6, 0x9d, 0x56, + 0x14, 0x56, 0x8a, 0xa4, 0xec, 0xee, 0x1d, 0x5f, 0xda, 0x73, 0x38, 0x31, 0xfa, 0xe8, 0xcf, 0xf5, + 0x65, 0x78, 0x7f, 0x28, 0xfc, 0x5b, 0x32, 0xbc, 0x3f, 0x14, 0xff, 0x03, 0x32, 0x3c, 0xe1, 0x6f, + 0xc9, 0xf0, 0xfe, 0xd0, 0x74, 0x7d, 0x19, 0xde, 0x1f, 0x16, 0x8f, 0x95, 0xe1, 0xfd, 0xf1, 0xf4, + 0x27, 0xc9, 0xf0, 0xfe, 0x78, 0x7c, 0xac, 0x0c, 0xef, 0x0f, 0x0b, 0xae, 0x96, 0xe1, 0xfd, 0xa1, + 0xfe, 0x7f, 0x2e, 0xc3, 0x63, 0x08, 0x44, 0x66, 0x69, 0xa9, 0x21, 0x98, 0x86, 0x50, 0x21, 0xe8, + 0x58, 0xc6, 0x67, 0x18, 0x37, 0xdb, 0x0c, 0xe6, 0xd8, 0xb8, 0x14, 0xbe, 0xc5, 0x34, 0xbf, 0x21, + 0x88, 0x34, 0xff, 0x6c, 0xc9, 0x59, 0xa8, 0x9e, 0x16, 0x82, 0xda, 0xc0, 0x76, 0x58, 0x80, 0xcf, + 0x0b, 0xf0, 0xb9, 0x9a, 0xa4, 0x24, 0xa3, 0xa4, 0x59, 0xeb, 0x30, 0x74, 0x13, 0xc6, 0xd8, 0x80, + 0xcf, 0x1b, 0xf0, 0x79, 0x1d, 0xde, 0x17, 0xa7, 0xc7, 0x10, 0x3e, 0x4a, 0xfd, 0x62, 0x2d, 0x43, + 0x52, 0x82, 0x5b, 0x88, 0x2b, 0x7f, 0xff, 0xc8, 0x34, 0xbf, 0x70, 0x81, 0xa1, 0x70, 0x74, 0x92, + 0x4e, 0xc0, 0xe9, 0x46, 0xed, 0x4c, 0xc9, 0x59, 0x83, 0x27, 0x2f, 0xa4, 0x9d, 0x63, 0xbf, 0x5b, + 0xb4, 0xf3, 0xf8, 0xdb, 0x87, 0xbf, 0x2f, 0x06, 0x9e, 0xe5, 0x98, 0x0d, 0x98, 0x42, 0xb3, 0x76, + 0x06, 0xbf, 0x1e, 0xca, 0xb0, 0x23, 0xd7, 0xef, 0x8f, 0x06, 0x98, 0x4c, 0x69, 0xc8, 0xa0, 0xd6, + 0xd2, 0xaf, 0x42, 0xfe, 0x4b, 0x28, 0x60, 0xbf, 0x9c, 0x5c, 0xde, 0xf4, 0xf1, 0x45, 0xf6, 0x2b, + 0x87, 0xff, 0xfa, 0x8b, 0x11, 0x73, 0x7d, 0xa3, 0x76, 0x63, 0xd2, 0x83, 0x0c, 0xe9, 0x29, 0x36, + 0x6b, 0x27, 0x3d, 0xcd, 0xda, 0x69, 0x3a, 0x03, 0xa0, 0xd5, 0x98, 0x71, 0x54, 0x66, 0x67, 0x55, + 0xd4, 0x53, 0xf6, 0x01, 0x48, 0x29, 0x54, 0x9e, 0x2b, 0x87, 0x4a, 0xde, 0x83, 0x6a, 0x29, 0x89, + 0xc1, 0xa6, 0x59, 0xd2, 0xde, 0xbd, 0x44, 0x1c, 0x55, 0x9a, 0x4d, 0x65, 0x48, 0x36, 0x93, 0xa6, + 0xc5, 0xe9, 0x36, 0x4c, 0xf1, 0x39, 0xed, 0x58, 0x9e, 0x5f, 0x1b, 0x46, 0xda, 0x3f, 0x59, 0x6c, + 0xd4, 0x86, 0x6b, 0xb6, 0x41, 0x3e, 0xdd, 0x99, 0xd6, 0x03, 0xad, 0x67, 0x93, 0xe9, 0xf4, 0x36, + 0x65, 0x23, 0x99, 0xc8, 0x7f, 0x4c, 0xee, 0x8b, 0x46, 0xe7, 0x3e, 0x72, 0x0e, 0xb9, 0xbb, 0xb4, + 0xfc, 0x09, 0xa5, 0x8c, 0x95, 0xe0, 0xeb, 0x1c, 0xa7, 0x4c, 0x9c, 0x8d, 0xbc, 0xca, 0x78, 0x57, + 0x55, 0xf8, 0x39, 0x43, 0xa5, 0x6a, 0x67, 0x65, 0xf9, 0x66, 0x2c, 0x83, 0xca, 0x32, 0xd3, 0x6f, + 0xa8, 0xcc, 0x6b, 0x32, 0x54, 0x6a, 0x17, 0xf3, 0x02, 0xda, 0xa5, 0xbc, 0xb0, 0x36, 0x2c, 0x2e, + 0x67, 0xa5, 0xb9, 0xe8, 0x9d, 0x90, 0x2a, 0xcd, 0x62, 0x63, 0xc2, 0xe7, 0x09, 0xe3, 0xef, 0xcc, + 0x72, 0x95, 0x6b, 0x85, 0x70, 0x61, 0xee, 0x07, 0xc2, 0x47, 0xe9, 0x1c, 0x19, 0xc7, 0x0d, 0xa5, + 0x13, 0x65, 0xa6, 0xa5, 0x4a, 0xf3, 0xc1, 0xca, 0x70, 0x3c, 0xad, 0x31, 0xcb, 0x5b, 0xdb, 0x19, + 0xdf, 0x33, 0x6f, 0xcc, 0xbe, 0xca, 0x98, 0xdc, 0x47, 0x55, 0x90, 0x0f, 0x3c, 0xaf, 0x8b, 0x59, + 0x69, 0x0e, 0x99, 0xde, 0xd6, 0xbf, 0xc7, 0x9d, 0xbc, 0x4c, 0xbb, 0x03, 0x3b, 0xeb, 0x9b, 0xaf, + 0xa5, 0xf9, 0x11, 0x01, 0x09, 0x4b, 0x40, 0x3b, 0x41, 0xef, 0x78, 0xf2, 0x9f, 0x92, 0xcc, 0x11, + 0xbf, 0x38, 0xba, 0x0d, 0xcc, 0xa2, 0x81, 0x50, 0x88, 0x92, 0x48, 0xdd, 0x97, 0x78, 0x1b, 0x88, + 0x15, 0xb2, 0x6d, 0x17, 0xe3, 0x88, 0x19, 0xaf, 0x48, 0xde, 0x15, 0x3a, 0x99, 0x2d, 0xf1, 0x2c, + 0xdc, 0x47, 0xe6, 0x47, 0xb6, 0xb0, 0x96, 0x59, 0x85, 0x94, 0x23, 0xa0, 0xf7, 0x13, 0x6b, 0x11, + 0x6c, 0x8d, 0x4b, 0xde, 0x09, 0xd8, 0x1e, 0xcb, 0x61, 0x4a, 0x22, 0x1f, 0xd5, 0x54, 0xb3, 0x45, + 0x3f, 0x31, 0x32, 0xf2, 0xd1, 0xc2, 0xda, 0x66, 0x0e, 0xf5, 0x15, 0xb5, 0xcd, 0x3c, 0x6a, 0x9b, + 0x34, 0x8b, 0x5d, 0xfc, 0x3e, 0xd9, 0x36, 0x49, 0x8c, 0x15, 0x31, 0xa6, 0x31, 0x2c, 0x7e, 0x9b, + 0x98, 0x67, 0x70, 0xd1, 0x59, 0x70, 0x24, 0x3e, 0xdd, 0x6f, 0x70, 0x91, 0xad, 0x03, 0x6b, 0xb1, + 0x95, 0x31, 0x47, 0xba, 0xff, 0x63, 0x6d, 0x36, 0x93, 0x50, 0x36, 0x8e, 0x42, 0xc5, 0x48, 0xc3, + 0x76, 0x25, 0x8b, 0x58, 0x1c, 0xf7, 0x49, 0x54, 0x0c, 0x19, 0x53, 0x8d, 0x74, 0x4f, 0x0f, 0x60, + 0xda, 0x01, 0x9e, 0x22, 0xb3, 0x9a, 0x25, 0xcf, 0xda, 0x16, 0x86, 0x15, 0x7b, 0xf9, 0x83, 0x57, + 0xb8, 0x36, 0xb1, 0x14, 0x8e, 0x39, 0x52, 0x74, 0xa3, 0x0d, 0x14, 0x6b, 0xb8, 0x5b, 0xc5, 0xdd, + 0x70, 0x9b, 0x16, 0xd9, 0x0e, 0xf6, 0x74, 0x6b, 0x61, 0x66, 0x13, 0x62, 0xd4, 0x65, 0xab, 0x66, + 0xd9, 0x26, 0x87, 0x14, 0x9f, 0x13, 0xf9, 0x1e, 0x2e, 0x93, 0x74, 0xc6, 0x89, 0x07, 0x0a, 0xf7, + 0xa9, 0x93, 0x15, 0x13, 0x3e, 0x59, 0x03, 0x7d, 0xc8, 0xe5, 0x9b, 0xd5, 0x8b, 0xfa, 0x5e, 0x73, + 0x43, 0xc0, 0xaf, 0x58, 0xab, 0xd7, 0x89, 0x11, 0x26, 0x7d, 0x38, 0x40, 0x9a, 0x34, 0x95, 0xba, + 0x67, 0x83, 0x36, 0x71, 0x67, 0xbc, 0xa1, 0x0e, 0x77, 0x77, 0x0b, 0x9c, 0x06, 0x43, 0xe9, 0x30, + 0xec, 0xe8, 0x51, 0x43, 0xc4, 0x37, 0x67, 0x68, 0xfd, 0xdd, 0x4b, 0xfc, 0x4e, 0xc3, 0xb1, 0xee, + 0x63, 0x3d, 0xb7, 0xe2, 0x48, 0x28, 0x02, 0xa7, 0xf1, 0x8f, 0x4f, 0xdf, 0xbf, 0x49, 0x71, 0xb7, + 0x1b, 0x76, 0x75, 0x47, 0x6d, 0xd9, 0xc5, 0x90, 0x81, 0xf7, 0x2c, 0x9c, 0x4f, 0x2e, 0x25, 0x9b, + 0xb8, 0x3b, 0x96, 0xb6, 0x4d, 0x99, 0x4c, 0x96, 0xb9, 0x91, 0xee, 0x77, 0xd6, 0x1d, 0xde, 0x57, + 0xdd, 0x2b, 0xdb, 0xdb, 0x31, 0x56, 0xc3, 0x13, 0xca, 0xc1, 0x84, 0x0f, 0x3f, 0x23, 0xb7, 0x72, + 0xe0, 0x92, 0x84, 0x21, 0xe3, 0xce, 0xea, 0x24, 0x76, 0x16, 0xdf, 0x03, 0x29, 0xe4, 0x07, 0xc2, + 0x18, 0x7e, 0x38, 0x6a, 0x65, 0x25, 0x3f, 0x48, 0xf5, 0x0a, 0xf4, 0x25, 0xcb, 0x7e, 0x8a, 0xef, + 0x76, 0xf4, 0xf8, 0xe6, 0xa8, 0x6b, 0x2c, 0x75, 0x48, 0xa3, 0x0c, 0xc6, 0xd1, 0x94, 0x21, 0x98, + 0x98, 0x97, 0x34, 0x26, 0x69, 0x2f, 0x32, 0x5e, 0xa6, 0x79, 0x19, 0xd2, 0xe7, 0x65, 0x4f, 0xcc, + 0xa0, 0xcf, 0xcb, 0x50, 0x5e, 0xa3, 0x21, 0x84, 0x23, 0x30, 0x90, 0x9c, 0x93, 0x97, 0xd2, 0xe7, + 0x64, 0xa5, 0x91, 0xdb, 0x26, 0x93, 0xec, 0x0e, 0xe7, 0x43, 0x0b, 0xc7, 0x3f, 0x22, 0xbb, 0x0e, + 0x3e, 0x3e, 0xe6, 0x38, 0xaa, 0x37, 0x92, 0x9e, 0x99, 0x14, 0x79, 0xf5, 0x80, 0x78, 0x5b, 0x2f, + 0x20, 0xb7, 0xec, 0xdf, 0x49, 0x76, 0x22, 0x26, 0x91, 0x24, 0xee, 0x17, 0x38, 0xe6, 0x24, 0xf1, + 0xb9, 0x5e, 0x9c, 0xa1, 0x64, 0xe3, 0x91, 0xf8, 0x8a, 0x76, 0x15, 0xa4, 0xd9, 0xdd, 0x0a, 0x64, + 0x59, 0xc3, 0x77, 0x2f, 0x83, 0xdd, 0x91, 0xae, 0xb6, 0x82, 0x9d, 0x5d, 0x51, 0xa3, 0x23, 0x47, + 0x3d, 0xa7, 0x6b, 0x6d, 0x5b, 0x23, 0x5d, 0x03, 0x5d, 0x3a, 0x0a, 0x1a, 0xe9, 0x55, 0xd9, 0xb1, + 0x04, 0x0e, 0xdd, 0x9b, 0xc4, 0x8b, 0xa9, 0xdc, 0xe5, 0xaf, 0xf7, 0x02, 0xf3, 0x6b, 0xd7, 0xa7, + 0xd8, 0xf1, 0xad, 0x1b, 0x5b, 0x62, 0x33, 0x93, 0x92, 0x9b, 0xf5, 0xd3, 0xdd, 0xb3, 0xb4, 0x46, + 0x59, 0xd9, 0xa8, 0x2a, 0x26, 0xab, 0x97, 0x5c, 0x87, 0x17, 0x6e, 0x8d, 0x65, 0xa5, 0x5b, 0x2a, + 0xb0, 0x91, 0xdf, 0x11, 0xbb, 0x65, 0xa5, 0x90, 0x03, 0x52, 0xe6, 0x5b, 0x4f, 0xed, 0xeb, 0x59, + 0x78, 0x40, 0xfb, 0x48, 0x35, 0x07, 0xfc, 0x35, 0xf1, 0xc6, 0x73, 0xd5, 0xfb, 0x23, 0xc6, 0xd0, + 0xea, 0xd0, 0xfe, 0x76, 0xe1, 0xdd, 0xa7, 0x6b, 0x7a, 0xc4, 0x8c, 0x77, 0x7a, 0x07, 0x7b, 0xc6, + 0xfa, 0x0e, 0x97, 0xe3, 0x35, 0x3d, 0xe4, 0x5b, 0xe3, 0xa6, 0x00, 0xd8, 0xad, 0x06, 0xb2, 0x16, + 0xc5, 0xbf, 0x06, 0x55, 0x56, 0xb2, 0xa6, 0xe1, 0x0a, 0xf3, 0xbe, 0x19, 0x8c, 0xec, 0x1e, 0x24, + 0x4f, 0xa5, 0xec, 0x69, 0x9d, 0x1e, 0xb2, 0x08, 0xa9, 0x09, 0x21, 0xaf, 0x15, 0xb3, 0x91, 0x4a, + 0x78, 0x23, 0xa2, 0x4b, 0xd7, 0xf9, 0xfa, 0xd6, 0xaf, 0xdb, 0x88, 0xc7, 0xff, 0xfa, 0x6e, 0x9c, + 0x31, 0x2e, 0xbb, 0x37, 0x03, 0x47, 0xd3, 0x16, 0x31, 0x58, 0xbd, 0x91, 0x8d, 0x91, 0x0f, 0x22, + 0xdd, 0xb8, 0xaf, 0x70, 0xd3, 0xac, 0x96, 0x22, 0xfd, 0xdd, 0x75, 0xc7, 0xd3, 0xa4, 0x42, 0xe1, + 0x58, 0x56, 0xba, 0x6d, 0xc4, 0x62, 0x1a, 0x8d, 0x13, 0xf8, 0x49, 0x91, 0x13, 0xdb, 0x91, 0x79, + 0xd2, 0x23, 0xeb, 0x03, 0x73, 0x55, 0x1f, 0xd3, 0xe8, 0x8b, 0x38, 0xfb, 0xcd, 0x20, 0x46, 0xa6, + 0x3e, 0x68, 0x86, 0xea, 0x8d, 0xf2, 0xd7, 0x9c, 0x8c, 0x4b, 0x99, 0x43, 0xf6, 0x57, 0x2e, 0x8c, + 0xef, 0x71, 0xb7, 0x00, 0x79, 0xf4, 0x65, 0x7a, 0x6d, 0xed, 0xd0, 0x06, 0x15, 0x43, 0xda, 0x0e, + 0xc5, 0x27, 0xd6, 0xc8, 0xb1, 0x22, 0x50, 0xa6, 0x78, 0x8d, 0xde, 0x4c, 0xec, 0x93, 0x84, 0x8f, + 0x52, 0xa7, 0xd7, 0xc8, 0xb4, 0xb8, 0xb6, 0xc8, 0x11, 0x0a, 0xe1, 0xe7, 0xeb, 0x58, 0xd6, 0x1e, + 0x31, 0x8f, 0xca, 0x8a, 0x25, 0x7d, 0x29, 0x61, 0x89, 0x54, 0xdc, 0xf9, 0xb7, 0xca, 0x25, 0xc6, + 0xa8, 0x44, 0x9b, 0x5f, 0x56, 0x72, 0x7f, 0x72, 0x40, 0x75, 0x48, 0x9c, 0xae, 0x9a, 0xa4, 0xae, + 0x40, 0x9f, 0x62, 0x92, 0x22, 0xb7, 0xe2, 0x0e, 0x50, 0x0a, 0x89, 0xd5, 0xac, 0x3d, 0xde, 0xe0, + 0xe5, 0x66, 0xba, 0xc2, 0x2d, 0xc4, 0xb3, 0xe0, 0xe8, 0xca, 0x95, 0xe1, 0xfd, 0x75, 0x5b, 0xe2, + 0x21, 0x7f, 0xc0, 0x3f, 0xd8, 0x6d, 0xe8, 0x61, 0x23, 0xad, 0x27, 0x31, 0xd2, 0xb2, 0x73, 0xd4, + 0x93, 0xcc, 0xbf, 0x58, 0x72, 0xa4, 0x31, 0x4f, 0x53, 0xff, 0xe0, 0xd8, 0xf4, 0x1a, 0x08, 0x6b, + 0x48, 0x9e, 0x81, 0x21, 0xdd, 0xec, 0x2b, 0x87, 0xf8, 0x25, 0x31, 0x96, 0x03, 0x8a, 0x41, 0x2f, + 0xd7, 0xa5, 0x48, 0xbc, 0xb6, 0x6b, 0x67, 0xbc, 0xee, 0x0c, 0x1f, 0xc9, 0xbc, 0x87, 0x9d, 0x64, + 0xcd, 0xd9, 0x08, 0x36, 0xd9, 0xc3, 0x38, 0xa0, 0x4d, 0xa2, 0xc7, 0xe0, 0x5b, 0x84, 0xd4, 0x96, + 0xd0, 0x2b, 0x74, 0x5a, 0x07, 0x14, 0xb6, 0x78, 0x54, 0x98, 0x8b, 0x85, 0xdd, 0x35, 0x2a, 0x4c, + 0x06, 0x6c, 0x41, 0xec, 0x27, 0xd6, 0x6e, 0x52, 0x72, 0x9d, 0xf2, 0x13, 0xfa, 0x09, 0xd9, 0xe3, + 0xfd, 0x89, 0xac, 0x76, 0x4c, 0x64, 0x37, 0xff, 0xa7, 0x63, 0x84, 0x73, 0xc0, 0xec, 0xba, 0x9c, + 0xe4, 0x8d, 0xf7, 0x4f, 0x17, 0x7e, 0x7c, 0x46, 0x1b, 0x8e, 0x1a, 0x91, 0x92, 0x49, 0xa2, 0x7f, + 0x6a, 0x29, 0x4c, 0x9e, 0x1a, 0x84, 0x29, 0x53, 0x03, 0x20, 0x71, 0x1a, 0xb6, 0x38, 0xcd, 0x52, + 0x0b, 0xa9, 0x95, 0x7f, 0x94, 0xd4, 0xb1, 0xf8, 0x2a, 0x09, 0x23, 0xf6, 0xa3, 0xd4, 0xc2, 0x6c, + 0x36, 0x1c, 0x32, 0xed, 0xa3, 0xb3, 0xfa, 0x9f, 0x82, 0xa2, 0xfa, 0x7c, 0xd9, 0xff, 0x9b, 0x01, + 0xfc, 0x7f, 0x10, 0xff, 0xbf, 0x0b, 0xc5, 0xce, 0xa5, 0x60, 0x76, 0x6e, 0xc2, 0xbf, 0x56, 0xe7, + 0x76, 0xd2, 0xc8, 0x00, 0x33, 0xce, 0xa5, 0xa7, 0xc0, 0x4f, 0x94, 0x35, 0xd2, 0xc7, 0x57, 0x61, + 0x27, 0xa7, 0x1b, 0x56, 0x92, 0xe0, 0xbd, 0xd3, 0x4b, 0xed, 0x3d, 0xb8, 0x0d, 0xfc, 0x9c, 0x96, + 0x60, 0xfb, 0x52, 0x7f, 0x19, 0x77, 0xc4, 0x97, 0x18, 0x44, 0xa1, 0xba, 0x17, 0xd7, 0x82, 0xf3, + 0x64, 0x53, 0xc3, 0xfa, 0x80, 0xbe, 0x59, 0x86, 0xd4, 0x2c, 0x0b, 0xbf, 0x5a, 0x0a, 0x48, 0x1d, + 0x90, 0x72, 0x8d, 0xf7, 0x12, 0x2e, 0x47, 0x35, 0x6f, 0x17, 0xa2, 0x48, 0x64, 0x21, 0x22, 0x4e, + 0x62, 0xe9, 0x1a, 0xf5, 0x58, 0xec, 0x1c, 0x43, 0xaa, 0xae, 0x3a, 0x2c, 0x71, 0xcf, 0x5a, 0x14, + 0xee, 0x64, 0x71, 0xc6, 0xbc, 0x67, 0x2b, 0x30, 0xf6, 0x1e, 0xce, 0x07, 0xf9, 0xdb, 0x87, 0x70, + 0x47, 0xc1, 0xa9, 0x4e, 0x3e, 0xae, 0x50, 0xc5, 0xbf, 0x3d, 0xe4, 0xbd, 0xd1, 0x3b, 0x93, 0xac, + 0x86, 0xab, 0x37, 0x56, 0x9c, 0x63, 0x6b, 0xb8, 0x43, 0x24, 0xf4, 0xd6, 0xa7, 0x31, 0xbd, 0x3c, + 0x56, 0xcf, 0xed, 0xe0, 0x57, 0x2c, 0x91, 0xee, 0x9d, 0xdb, 0xa1, 0xa8, 0xe1, 0x10, 0xc3, 0x98, + 0x33, 0x26, 0xbc, 0x08, 0xde, 0x41, 0x36, 0xbe, 0x21, 0x4c, 0xb7, 0x1a, 0x73, 0xb3, 0x81, 0x07, + 0x29, 0x40, 0xe5, 0x6b, 0x67, 0x20, 0x8b, 0x38, 0x66, 0x27, 0xa6, 0x4a, 0x78, 0x7c, 0x6d, 0xf0, + 0xad, 0x5f, 0xaf, 0x2a, 0x7a, 0x63, 0xa3, 0xa7, 0x18, 0x39, 0x18, 0x0f, 0xd7, 0x2b, 0x54, 0x0a, + 0xb1, 0xef, 0x8b, 0xbd, 0xf9, 0x98, 0x87, 0xae, 0x97, 0xa7, 0x3a, 0xc8, 0xef, 0xe4, 0xc8, 0xd1, + 0xda, 0x8d, 0xfd, 0xcf, 0x83, 0xbf, 0xc1, 0x14, 0x21, 0x64, 0x4d, 0xff, 0xfc, 0x0f, 0xc0, 0xea, + 0xca, 0x56, 0x8f, 0xfc, 0xf6, 0x43, 0xf0, 0x47, 0xba, 0x43, 0x2d, 0xe0, 0xa7, 0xcb, 0x3b, 0xce, + 0x9b, 0x21, 0x96, 0xb3, 0xb6, 0xa1, 0xdd, 0x8a, 0xdb, 0x13, 0x56, 0x5e, 0xc7, 0xb9, 0x4c, 0x1a, + 0x6d, 0xcc, 0xcb, 0x87, 0xce, 0x8b, 0x58, 0xbd, 0x59, 0xe4, 0x93, 0x74, 0xee, 0x9f, 0xcd, 0x02, + 0xd3, 0x7c, 0xb1, 0x2a, 0xb6, 0x95, 0xfe, 0xd7, 0x37, 0xba, 0xa8, 0x1c, 0xeb, 0xe7, 0x0f, 0x8d, + 0x2c, 0x0d, 0x6f, 0x52, 0x0f, 0x10, 0xfa, 0x28, 0x8e, 0x9d, 0x22, 0x71, 0xc2, 0x3b, 0xbd, 0xa3, + 0x29, 0xa3, 0x13, 0x66, 0x10, 0xe7, 0x00, 0xc2, 0x36, 0x66, 0x29, 0xdd, 0xcd, 0x10, 0x4f, 0x46, + 0xd3, 0x4e, 0xbf, 0x8b, 0x10, 0xe1, 0x56, 0x62, 0x2d, 0x8b, 0x9d, 0x58, 0xe3, 0x36, 0xe8, 0x28, + 0x3a, 0xbe, 0x71, 0x65, 0xe1, 0xeb, 0x1b, 0x3b, 0x8b, 0x4f, 0x6c, 0xcc, 0x67, 0xf5, 0x55, 0x3a, + 0x44, 0xbf, 0x54, 0x2a, 0x22, 0x05, 0x7a, 0xa7, 0x37, 0x85, 0x79, 0x28, 0x3f, 0x0f, 0x85, 0x1e, + 0xfc, 0xc2, 0x3b, 0x1f, 0x29, 0x54, 0xa5, 0x6b, 0x9e, 0x33, 0xa0, 0x90, 0x0e, 0x6c, 0x21, 0xb5, + 0x08, 0xe3, 0x52, 0x12, 0x6d, 0x62, 0xa8, 0xda, 0x73, 0x65, 0x80, 0xb5, 0x49, 0x91, 0xde, 0x26, + 0x45, 0xd4, 0x26, 0x72, 0xb6, 0x3a, 0x28, 0x4f, 0x70, 0x56, 0xba, 0xe6, 0x13, 0x8d, 0xa3, 0xd4, + 0x89, 0xcb, 0x21, 0xc4, 0x8e, 0xa3, 0xf1, 0x77, 0x7a, 0x8f, 0xc5, 0xa9, 0xb6, 0x8c, 0xbe, 0x99, + 0xa8, 0x6f, 0xc9, 0x37, 0x8c, 0x7e, 0xa2, 0x0c, 0x5a, 0xab, 0x02, 0xb0, 0x15, 0x5b, 0x90, 0x68, + 0x16, 0xbd, 0x2b, 0x4f, 0xb6, 0x17, 0xf9, 0x49, 0xf7, 0xcb, 0xd8, 0xef, 0xde, 0x1b, 0xa9, 0x57, + 0x88, 0x8f, 0x4a, 0xa4, 0xca, 0x74, 0x74, 0x8d, 0xec, 0x94, 0xda, 0x48, 0x56, 0xb5, 0xba, 0x77, + 0xe5, 0xd6, 0xef, 0xbe, 0xa2, 0x18, 0x3c, 0x21, 0x71, 0x81, 0xd7, 0x77, 0x06, 0xe8, 0x5d, 0xa2, + 0xec, 0x25, 0x1f, 0xb0, 0x14, 0x4f, 0x8b, 0x35, 0x8a, 0x28, 0x2d, 0xa0, 0x19, 0x31, 0xf8, 0xc2, + 0x19, 0x1c, 0x4b, 0x12, 0x72, 0x7a, 0x8c, 0xfa, 0xd1, 0xfd, 0x79, 0xa8, 0x34, 0x1b, 0xab, 0x7b, + 0x25, 0xbb, 0x7a, 0x62, 0xee, 0x7b, 0xd8, 0x3b, 0x93, 0x93, 0xa3, 0x64, 0x3d, 0xa1, 0xd3, 0xff, + 0xa9, 0xaf, 0xc3, 0x7f, 0x9c, 0x70, 0xf1, 0x87, 0x32, 0xb6, 0x92, 0xb5, 0xbd, 0x46, 0x88, 0x16, + 0xb9, 0xd2, 0x82, 0xb4, 0xf9, 0xdc, 0x94, 0x92, 0x75, 0x5e, 0xa9, 0x22, 0xca, 0xcc, 0x50, 0x50, + 0x73, 0xd8, 0xe8, 0x6c, 0xa3, 0xfd, 0x2a, 0xd2, 0xab, 0xc7, 0xbc, 0xb8, 0x5a, 0x9d, 0x5f, 0x00, + 0xbd, 0x58, 0xbb, 0xf5, 0x78, 0xf5, 0xe1, 0xb5, 0x85, 0xfc, 0xe1, 0xe1, 0x2e, 0xcb, 0xc7, 0xf6, + 0x8e, 0xc7, 0x38, 0x8e, 0xdb, 0xe7, 0x4e, 0x97, 0x7c, 0x08, 0x4f, 0x94, 0x9c, 0xd1, 0xce, 0x7b, + 0x43, 0x10, 0xa3, 0xaf, 0x4e, 0xf7, 0x02, 0xee, 0x4d, 0xb0, 0xcd, 0x3b, 0xbc, 0x61, 0xe8, 0x64, + 0x21, 0x0f, 0x41, 0xbc, 0x35, 0xd3, 0x5b, 0x02, 0xab, 0x31, 0x95, 0x64, 0x8a, 0xc8, 0xa7, 0xfa, + 0x24, 0x58, 0xc8, 0x90, 0x67, 0x71, 0x07, 0x32, 0x84, 0xdf, 0x57, 0xde, 0x49, 0xbf, 0xaa, 0x31, + 0xc5, 0x18, 0xfe, 0x5a, 0x10, 0xa1, 0x5f, 0xb5, 0x2c, 0x85, 0x4d, 0xb0, 0x98, 0xa1, 0xc6, 0x2a, + 0x31, 0x33, 0xf9, 0x3a, 0xc5, 0xef, 0x97, 0xe2, 0xd5, 0xf4, 0xf0, 0x01, 0x3a, 0x07, 0x3d, 0xfd, + 0x3d, 0x2c, 0x59, 0x68, 0x8c, 0x27, 0x31, 0xeb, 0xb4, 0x79, 0x90, 0x2d, 0xfa, 0xb9, 0xe7, 0x2e, + 0xbe, 0x6f, 0xc5, 0x37, 0xeb, 0x75, 0xb9, 0x2b, 0x61, 0x03, 0xc9, 0x38, 0x0a, 0x3c, 0xce, 0x26, + 0xb0, 0x39, 0xf3, 0x0c, 0x41, 0xef, 0x44, 0xd6, 0x5b, 0xc4, 0x55, 0x4b, 0x69, 0x5c, 0x75, 0x27, + 0x95, 0x92, 0xd1, 0xea, 0x66, 0x6c, 0xb5, 0x52, 0x4e, 0x83, 0x29, 0x6c, 0xf1, 0xa8, 0x30, 0x17, + 0x0b, 0xbb, 0x6b, 0x54, 0x18, 0x79, 0x70, 0x27, 0xca, 0xfb, 0xf1, 0x89, 0x04, 0x4d, 0xfe, 0xd8, + 0xc1, 0xb4, 0x13, 0x1a, 0xc1, 0xc9, 0xa4, 0x81, 0x76, 0xd2, 0x8b, 0xf8, 0xf8, 0x95, 0x9f, 0x32, + 0xba, 0x8c, 0xbd, 0x2d, 0x61, 0x89, 0x6d, 0x38, 0x6e, 0x26, 0x4f, 0x43, 0xca, 0x8c, 0x63, 0x48, + 0xa2, 0x52, 0x77, 0xa6, 0xe8, 0x32, 0xf9, 0xca, 0xb2, 0x7a, 0x90, 0x62, 0x10, 0xff, 0x18, 0x03, + 0xe2, 0xec, 0x68, 0xed, 0x43, 0xba, 0x55, 0xcc, 0xf6, 0x3b, 0x66, 0x6e, 0xd3, 0x47, 0x2b, 0x2a, + 0xd2, 0xfd, 0xa7, 0xc0, 0xce, 0x50, 0x73, 0x67, 0x10, 0x25, 0xd4, 0x2d, 0xe0, 0x8a, 0x90, 0xe6, + 0x91, 0x94, 0x51, 0x44, 0x9a, 0x5c, 0x2c, 0x2f, 0x23, 0x1f, 0x53, 0xa2, 0x40, 0xf2, 0xd9, 0x22, + 0x98, 0x25, 0xc8, 0xb4, 0x62, 0x77, 0x2b, 0x32, 0xd9, 0x22, 0xbb, 0x6a, 0x5e, 0x3b, 0x20, 0xb6, + 0xf5, 0x42, 0xa0, 0x44, 0xb1, 0xee, 0xf6, 0x37, 0xe4, 0xee, 0x2a, 0x59, 0x92, 0x23, 0x56, 0x47, + 0x4a, 0x74, 0x5e, 0xc4, 0xdf, 0x0a, 0x05, 0xb0, 0xb3, 0xab, 0xee, 0x28, 0x52, 0x68, 0x27, 0xad, + 0xb7, 0xfc, 0x8c, 0x96, 0x2c, 0x5f, 0x72, 0x04, 0xf9, 0x41, 0x4c, 0xd9, 0x8c, 0x3b, 0x2d, 0x33, + 0xf9, 0x72, 0x95, 0xb6, 0x61, 0x09, 0x71, 0x05, 0xad, 0x7c, 0x33, 0x37, 0x57, 0x5f, 0x3f, 0x99, + 0x3f, 0x43, 0x1a, 0xdd, 0x32, 0x18, 0x02, 0xc3, 0x20, 0x19, 0xf6, 0x3d, 0x05, 0x41, 0xca, 0x15, + 0xe3, 0xfb, 0x91, 0xbf, 0x44, 0x0e, 0x8f, 0xb5, 0x4f, 0x0e, 0x71, 0x98, 0xaa, 0x8d, 0xcb, 0x8e, + 0x91, 0xa2, 0x6e, 0x23, 0x4c, 0x5f, 0xb1, 0x5a, 0x39, 0x95, 0x86, 0x96, 0xeb, 0x85, 0x1c, 0xdc, + 0xd7, 0x8c, 0xe5, 0xed, 0x66, 0x93, 0x8f, 0x9a, 0xd1, 0x54, 0x87, 0xd9, 0x39, 0x67, 0x31, 0xef, + 0xbe, 0x46, 0xe6, 0xe9, 0xd7, 0x8c, 0x2d, 0x6d, 0x57, 0xec, 0xa3, 0x77, 0x2b, 0x5c, 0xc2, 0xc1, + 0x71, 0x71, 0x39, 0xa7, 0x42, 0xda, 0x81, 0xa3, 0x78, 0xad, 0xb4, 0xd8, 0xbc, 0x5d, 0x19, 0x8f, + 0x40, 0x9c, 0xef, 0x32, 0xa4, 0xe5, 0x56, 0x1a, 0xad, 0x97, 0x30, 0x75, 0xa4, 0xec, 0xc5, 0x18, + 0x0b, 0x47, 0xe7, 0x07, 0xad, 0x09, 0x2c, 0x6d, 0x4c, 0x6f, 0x01, 0x8e, 0xbb, 0x5a, 0xfc, 0xa2, + 0x1a, 0xd7, 0x61, 0x1b, 0x8e, 0x3d, 0xb3, 0x1b, 0x67, 0xe3, 0x1e, 0xaa, 0xed, 0x42, 0xa4, 0xfc, + 0x45, 0x1d, 0x21, 0xa4, 0x84, 0x9e, 0xd7, 0x37, 0x2a, 0xb3, 0x19, 0xff, 0xbe, 0x3d, 0x96, 0xc9, + 0x77, 0x8f, 0x64, 0xab, 0xec, 0x45, 0x2e, 0x00, 0x7c, 0x64, 0x4f, 0x20, 0xd2, 0xfe, 0x9e, 0x30, + 0xc2, 0xa8, 0xc7, 0x53, 0xbb, 0x48, 0x43, 0xa4, 0x87, 0x28, 0x02, 0xce, 0xfa, 0x7d, 0x8a, 0x8d, + 0x3f, 0x93, 0xbd, 0x31, 0xfe, 0xbe, 0x80, 0xbc, 0x6a, 0x11, 0xb3, 0x2f, 0x11, 0xb8, 0x35, 0x04, + 0xc9, 0x48, 0x80, 0xf9, 0x68, 0x43, 0x4a, 0xfc, 0x11, 0x3b, 0xdd, 0xb7, 0x42, 0x30, 0xfc, 0x0c, + 0x51, 0x6e, 0xd8, 0x8f, 0x33, 0x2b, 0xa8, 0xe7, 0x6f, 0x48, 0xe5, 0x1f, 0x0b, 0x0e, 0x6e, 0xc4, + 0xbb, 0x0f, 0x67, 0x67, 0x31, 0xa1, 0x39, 0xe3, 0xdd, 0x8f, 0xf7, 0xa2, 0x79, 0x1f, 0x82, 0xa7, + 0x3d, 0x74, 0x8c, 0xad, 0x10, 0xc6, 0x36, 0xa2, 0x41, 0x7f, 0xdd, 0x81, 0xf4, 0x08, 0xf7, 0x83, + 0x98, 0x4e, 0x88, 0xa8, 0x0d, 0xad, 0xd3, 0x58, 0xda, 0xf1, 0x89, 0xf2, 0x72, 0x14, 0xcf, 0xe8, + 0x22, 0xe6, 0xd9, 0x95, 0xf0, 0x19, 0x13, 0xab, 0x8f, 0x1f, 0x4b, 0xb3, 0x94, 0x59, 0x5c, 0x7b, + 0xa1, 0x92, 0xbd, 0x41, 0x8a, 0x9a, 0xe6, 0x15, 0xa2, 0x52, 0x9c, 0x2b, 0x2d, 0xc7, 0xf1, 0x83, + 0x31, 0xd2, 0xd7, 0x05, 0xd2, 0x1d, 0xc5, 0x75, 0xac, 0x38, 0x41, 0x95, 0x95, 0xb5, 0x2e, 0x6c, + 0x59, 0x2c, 0x57, 0xe8, 0xea, 0x32, 0x11, 0x66, 0x0a, 0xc6, 0x9f, 0xe8, 0xf5, 0x60, 0xb9, 0xd2, + 0xf2, 0x85, 0xf3, 0xe2, 0x82, 0x76, 0xda, 0xd7, 0xb8, 0xb4, 0xe1, 0xfe, 0x9e, 0x25, 0x06, 0x27, + 0x20, 0xbf, 0xb1, 0x4d, 0xbb, 0x84, 0xa3, 0xbd, 0x07, 0x67, 0x54, 0x31, 0xf3, 0x50, 0x59, 0x99, + 0x98, 0x63, 0x89, 0x32, 0xa9, 0x1e, 0x56, 0x83, 0x4a, 0x96, 0xda, 0xa8, 0xb2, 0xc2, 0xe3, 0xec, + 0x9c, 0x38, 0xbd, 0x54, 0xc1, 0x5d, 0x4f, 0x83, 0x7d, 0xc9, 0x1c, 0xda, 0x51, 0x8c, 0x5d, 0x33, + 0xa3, 0x31, 0xe4, 0x1a, 0x08, 0xcd, 0xcc, 0x2a, 0x95, 0xa6, 0xd7, 0x8c, 0x6a, 0x9b, 0x1a, 0x7d, + 0xd3, 0x71, 0xc7, 0xf1, 0xf0, 0x01, 0x45, 0xc4, 0x39, 0x6d, 0xa4, 0x37, 0xef, 0xf4, 0xb2, 0x55, + 0x61, 0x01, 0xee, 0xc8, 0x8c, 0x22, 0xfb, 0x3d, 0x75, 0x9d, 0x19, 0x57, 0x1a, 0x69, 0xc1, 0xab, + 0x07, 0xa4, 0x49, 0x4e, 0x73, 0x75, 0x4f, 0xb8, 0x4b, 0x3d, 0xc2, 0xf8, 0x93, 0x2d, 0xb8, 0x12, + 0x10, 0xcf, 0x58, 0x3c, 0xad, 0x1a, 0xfc, 0xb8, 0x22, 0x4c, 0x46, 0x6e, 0xac, 0x38, 0x9a, 0x85, + 0x63, 0x62, 0xe5, 0x95, 0x6c, 0xee, 0x49, 0x9a, 0xc6, 0x29, 0xee, 0xb2, 0xfd, 0x29, 0x54, 0xec, + 0xd0, 0x3b, 0xb7, 0xcd, 0x66, 0xb8, 0x69, 0x5e, 0x90, 0x71, 0xdc, 0xba, 0x44, 0x87, 0x13, 0x68, + 0x3f, 0x2d, 0x65, 0xec, 0xdb, 0x06, 0x41, 0xf2, 0xde, 0x8c, 0xbc, 0x9f, 0xff, 0x37, 0x2f, 0xcb, + 0xad, 0x5b, 0x41, 0xe9, 0xdc, 0x45, 0x27, 0xb1, 0x6d, 0x7c, 0xb6, 0xf6, 0xe3, 0x4e, 0xbf, 0xde, + 0x29, 0xc1, 0x3b, 0x0f, 0x20, 0xb7, 0x64, 0xfd, 0xed, 0x2f, 0xa5, 0x1a, 0xc6, 0xcb, 0x3b, 0xbc, + 0x95, 0xc8, 0xbb, 0x06, 0x40, 0x66, 0x63, 0x59, 0x44, 0xae, 0x73, 0x7d, 0xd5, 0x61, 0xe4, 0xd9, + 0x2c, 0x0c, 0x65, 0x1c, 0x57, 0x95, 0xd3, 0xcf, 0xd3, 0xde, 0x6e, 0xbc, 0xa9, 0x6a, 0x33, 0xe9, + 0xdb, 0xb3, 0x90, 0x8f, 0xf0, 0xd9, 0xc0, 0x64, 0x9a, 0x9f, 0xaa, 0xda, 0x9c, 0x5f, 0x5c, 0x32, + 0x0a, 0x49, 0x95, 0xca, 0xa9, 0x58, 0xf4, 0x9d, 0x1f, 0x68, 0xab, 0x18, 0x27, 0xbb, 0x5e, 0xdf, + 0x89, 0x22, 0x5f, 0x47, 0xa8, 0x32, 0xda, 0x6c, 0xf6, 0xcb, 0x8b, 0x73, 0xd2, 0xcc, 0x64, 0x42, + 0x7b, 0x34, 0x97, 0x7e, 0xfa, 0x7d, 0x27, 0xf3, 0x28, 0x65, 0x21, 0x9e, 0xa2, 0xec, 0x03, 0x61, + 0x13, 0xae, 0xbf, 0x43, 0x33, 0x43, 0xc2, 0xee, 0x99, 0x55, 0xc2, 0xe3, 0x79, 0xb4, 0x5b, 0xa6, + 0x95, 0xc7, 0xa4, 0x0d, 0xe3, 0xef, 0x6d, 0x33, 0x57, 0x08, 0xb9, 0xc2, 0x4e, 0x26, 0xcb, 0xb2, + 0xd0, 0x9e, 0x74, 0xd8, 0xa3, 0x8f, 0x9c, 0xe0, 0x4c, 0x8c, 0xf5, 0xc7, 0x42, 0xe1, 0xb1, 0x58, + 0xf1, 0x4c, 0xbf, 0xf0, 0x04, 0xfd, 0xfa, 0xf8, 0x84, 0xf0, 0x0c, 0xbb, 0x3b, 0x84, 0x7e, 0x7b, + 0x31, 0xd8, 0x31, 0x7c, 0x7f, 0xe0, 0x39, 0x61, 0x2f, 0x5e, 0x03, 0xf8, 0xdb, 0x80, 0xbf, 0x5f, + 0x9f, 0x19, 0x16, 0x36, 0x88, 0x64, 0x8b, 0x3f, 0xa8, 0xfb, 0x68, 0x6d, 0xd6, 0xce, 0x79, 0x9a, + 0x13, 0x72, 0x3a, 0xb6, 0x06, 0xd3, 0x0e, 0x89, 0xef, 0x92, 0x90, 0xa3, 0xac, 0xda, 0xf3, 0xb1, + 0x3d, 0xb9, 0x2a, 0xe5, 0x24, 0x47, 0x4b, 0x23, 0xf5, 0x7a, 0x9a, 0xd7, 0xbb, 0xa4, 0x7c, 0x16, + 0xa9, 0xbd, 0x8f, 0x76, 0xbf, 0xc4, 0xc1, 0x32, 0x1f, 0x8b, 0x48, 0x6f, 0x5c, 0xe4, 0x4d, 0x9d, + 0x5a, 0xb2, 0xcc, 0x6b, 0xe4, 0x7b, 0x68, 0xbe, 0x77, 0x56, 0xe9, 0xb4, 0xc9, 0x8c, 0x25, 0x33, + 0x8a, 0x71, 0xd1, 0x40, 0x48, 0xab, 0x30, 0xd4, 0x4f, 0xf8, 0x65, 0xec, 0x59, 0x98, 0xa3, 0xcc, + 0xd6, 0x43, 0x8f, 0x29, 0x6c, 0xed, 0xff, 0x63, 0xd8, 0xab, 0xef, 0xba, 0xc9, 0x1b, 0x65, 0x32, + 0x7e, 0x96, 0x1e, 0xff, 0x2e, 0x4a, 0xad, 0xd5, 0x24, 0x76, 0xf1, 0x9d, 0x85, 0x35, 0x37, 0xe1, + 0x97, 0x61, 0x0e, 0xa1, 0xd2, 0x15, 0x61, 0x89, 0x8a, 0x71, 0xad, 0xb1, 0xb9, 0xc2, 0xaf, 0xbd, + 0x07, 0x59, 0x84, 0xf8, 0xa5, 0x23, 0x7f, 0xf9, 0x90, 0x56, 0x58, 0xd8, 0x38, 0xf1, 0xa4, 0x61, + 0x43, 0x8b, 0x6c, 0x86, 0xf9, 0x70, 0x3c, 0x38, 0x99, 0xc5, 0x2f, 0xcd, 0x3a, 0x37, 0x9b, 0x8d, + 0x3e, 0xd2, 0x03, 0x53, 0xa6, 0xb4, 0xfb, 0x8e, 0x6d, 0xec, 0xf4, 0x9c, 0xd8, 0xb8, 0xd2, 0xa5, + 0x73, 0xa9, 0x1e, 0xe4, 0xd4, 0x91, 0x1b, 0x9a, 0x77, 0x99, 0x64, 0x31, 0xba, 0xaf, 0x74, 0x8b, + 0x3e, 0xd7, 0x89, 0x9b, 0x7b, 0x2e, 0xdc, 0x04, 0xb3, 0xa2, 0x16, 0x2e, 0xd3, 0xcd, 0x3c, 0x5d, + 0xbb, 0x91, 0x51, 0x1c, 0x0b, 0x93, 0xc9, 0xe9, 0x7b, 0x2a, 0x8e, 0xc8, 0xa3, 0x8f, 0x91, 0x4b, + 0xba, 0x95, 0x94, 0x9d, 0x38, 0x7c, 0x1c, 0xf1, 0x36, 0xb7, 0xdb, 0x10, 0x94, 0xca, 0xf3, 0x70, + 0xfd, 0xd4, 0x2e, 0xb5, 0x69, 0xdf, 0x3e, 0x44, 0x6b, 0xfb, 0x1f, 0xbf, 0xf8, 0xad, 0x5f, 0x23, + 0xfd, 0xf0, 0x23, 0xdf, 0x6a, 0xdf, 0xb4, 0xdd, 0xe0, 0x5b, 0x35, 0xee, 0xc5, 0xae, 0x86, 0x82, + 0x29, 0xd8, 0xa6, 0x78, 0x77, 0x33, 0xed, 0x25, 0xa6, 0xa5, 0xc0, 0x34, 0x98, 0x2c, 0xb8, 0x52, + 0x90, 0x8f, 0xa9, 0xc9, 0x4e, 0xbf, 0x62, 0x73, 0x22, 0xd5, 0x71, 0x81, 0x62, 0x72, 0xf9, 0x15, + 0x83, 0x0c, 0xcc, 0x73, 0x55, 0x99, 0x7e, 0x9a, 0xbe, 0x23, 0xa6, 0xf5, 0x13, 0xa6, 0x19, 0x84, + 0x7b, 0x90, 0xa2, 0x0c, 0x31, 0xff, 0x4c, 0x53, 0x18, 0xee, 0x51, 0x0e, 0x49, 0xd1, 0xd3, 0x4e, + 0xb8, 0xcf, 0xe9, 0xde, 0x1e, 0x8f, 0x31, 0xde, 0xd5, 0x8a, 0x97, 0x99, 0x79, 0x93, 0x58, 0x46, + 0x35, 0x4a, 0xa3, 0x4a, 0xbb, 0x89, 0xae, 0xff, 0xb1, 0x2c, 0xc6, 0xbc, 0x23, 0x71, 0xe9, 0xb1, + 0x3c, 0x8f, 0xea, 0xf5, 0x1b, 0xdc, 0x7f, 0x90, 0x9e, 0x9d, 0xee, 0x47, 0x5c, 0x2b, 0xca, 0x9d, + 0x56, 0x05, 0x36, 0x66, 0xf9, 0x32, 0x81, 0xb5, 0xd3, 0x7a, 0x66, 0xef, 0xe2, 0x8f, 0x2e, 0x62, + 0x67, 0x19, 0xb3, 0x52, 0x5e, 0x1b, 0xaf, 0x92, 0x1b, 0x5a, 0xa2, 0xb3, 0xd8, 0x29, 0xbd, 0x4d, + 0xf2, 0x40, 0xc1, 0x91, 0x67, 0x20, 0x6b, 0x5a, 0x09, 0x64, 0x29, 0x84, 0x1f, 0x92, 0x85, 0x97, + 0x1b, 0xaf, 0xfc, 0x69, 0x95, 0xe0, 0xc4, 0xf5, 0xb7, 0x80, 0xa4, 0x07, 0x5c, 0xbe, 0x88, 0x3d, + 0x39, 0x99, 0xc9, 0xad, 0x27, 0xa4, 0x95, 0x5d, 0x5f, 0xdb, 0xbe, 0xf5, 0x6b, 0x71, 0x02, 0xd3, + 0xa6, 0x1f, 0x64, 0x56, 0x79, 0x96, 0x04, 0x0f, 0x41, 0x68, 0xc2, 0x32, 0xee, 0xab, 0x45, 0x0b, + 0x1b, 0x83, 0xdf, 0xe9, 0x7f, 0x40, 0x75, 0x49, 0x4b, 0x49, 0xd2, 0xa6, 0xb6, 0x96, 0x9e, 0x85, + 0x63, 0xd8, 0x57, 0xd6, 0x98, 0x51, 0x8e, 0xe3, 0xdd, 0x2c, 0xef, 0xa5, 0x7a, 0x13, 0xf5, 0x6e, + 0x15, 0x70, 0x64, 0x2e, 0x40, 0x5e, 0x7f, 0xe8, 0xc7, 0x2f, 0xab, 0x61, 0xbe, 0x7b, 0x8d, 0x9a, + 0x49, 0x2f, 0x4e, 0x2d, 0x50, 0x72, 0x4a, 0xdf, 0x85, 0xe0, 0xd5, 0xdf, 0x29, 0x93, 0x31, 0xbc, + 0x9e, 0xc2, 0x5b, 0x4d, 0x72, 0x57, 0x32, 0x3c, 0xac, 0x18, 0x36, 0xbf, 0x9c, 0xd8, 0xcd, 0xe2, + 0xd3, 0x78, 0xee, 0x79, 0xe5, 0x9f, 0x0c, 0x34, 0xf3, 0x24, 0x7d, 0xe6, 0xe1, 0x0e, 0xd6, 0x26, + 0x4e, 0x42, 0x5e, 0x87, 0x49, 0x20, 0x3b, 0x2c, 0x67, 0xb6, 0x45, 0x2d, 0x39, 0xc5, 0x20, 0xec, + 0x8e, 0xab, 0xf9, 0x8a, 0xe5, 0x9d, 0x75, 0x4c, 0x4f, 0x71, 0x8e, 0x62, 0xd6, 0x9f, 0xee, 0x42, + 0x4e, 0x68, 0x9f, 0xb7, 0x02, 0x44, 0x6f, 0x29, 0xe4, 0xb2, 0xdd, 0x68, 0x8e, 0x54, 0x5d, 0xf9, + 0xa6, 0xff, 0x31, 0xa4, 0x94, 0x8c, 0x46, 0xfe, 0xb1, 0x9e, 0x5b, 0x8d, 0x8e, 0xa5, 0x85, 0xd5, + 0x1b, 0x69, 0xb6, 0x61, 0xbc, 0x7b, 0xaf, 0xa2, 0x77, 0x2b, 0xf8, 0x58, 0x66, 0xd2, 0x0e, 0x33, + 0xa1, 0x9b, 0xd3, 0xde, 0x9d, 0x28, 0x82, 0x3e, 0x7b, 0xbf, 0xd3, 0xbf, 0x0d, 0x9c, 0x6a, 0xae, + 0x38, 0xa9, 0x3a, 0x4e, 0xf6, 0x26, 0x18, 0xf2, 0xa8, 0x18, 0xd0, 0xf7, 0xc2, 0x66, 0xa9, 0x1a, + 0xb9, 0xad, 0xc3, 0xa4, 0x07, 0x82, 0xdc, 0xb8, 0x15, 0x57, 0x7c, 0xb3, 0x7c, 0x0b, 0x52, 0xd5, + 0xc9, 0x84, 0x22, 0x88, 0xf3, 0x0a, 0x53, 0x9a, 0x47, 0xeb, 0xc6, 0x0f, 0x4a, 0xcf, 0xc0, 0xd0, + 0xd4, 0x0a, 0xf8, 0x68, 0x2a, 0xd1, 0xc3, 0xed, 0x82, 0x71, 0x6a, 0x48, 0x30, 0x07, 0xb6, 0x09, + 0x56, 0xbc, 0xdb, 0x31, 0x6c, 0x08, 0x4e, 0x0b, 0xb9, 0xec, 0x1e, 0x16, 0x72, 0xd8, 0xfd, 0x90, + 0xe0, 0x28, 0x3b, 0x03, 0xdf, 0x99, 0x1a, 0x16, 0x44, 0x8c, 0x27, 0xe3, 0xe5, 0x8a, 0x15, 0x4f, + 0xf5, 0x0b, 0x9e, 0x56, 0xc3, 0xd4, 0x12, 0xa1, 0x40, 0x64, 0x98, 0xcf, 0xf0, 0x51, 0x56, 0x31, + 0x84, 0x8e, 0xc4, 0x31, 0x64, 0x56, 0xeb, 0x52, 0x76, 0x9f, 0x4d, 0x39, 0x8c, 0xe4, 0x08, 0x73, + 0xe8, 0x7e, 0xe5, 0x2e, 0xa1, 0x7c, 0x6a, 0x85, 0x10, 0xc0, 0x2b, 0x8c, 0x29, 0xdc, 0x85, 0x97, + 0x4a, 0xe1, 0xc3, 0x83, 0xc2, 0x5a, 0xba, 0x6b, 0xdb, 0x85, 0x15, 0xf8, 0xae, 0x0e, 0xaf, 0x46, + 0xbc, 0xd6, 0xe1, 0xd5, 0x8a, 0xed, 0x32, 0x91, 0xd3, 0x31, 0x26, 0xaf, 0x6d, 0xe3, 0xd2, 0x02, + 0x8e, 0x6c, 0x98, 0x86, 0x56, 0x93, 0x85, 0x7b, 0xf8, 0x82, 0xda, 0x31, 0xbb, 0x57, 0x7e, 0x0e, + 0x51, 0x1b, 0x17, 0x0f, 0x46, 0x70, 0x1c, 0xa7, 0x4e, 0x12, 0x38, 0x1a, 0x85, 0x78, 0x37, 0x9d, + 0xc1, 0x8c, 0xd6, 0xba, 0xd2, 0x71, 0x2d, 0xcc, 0x81, 0x3e, 0xdd, 0xef, 0xad, 0xd3, 0x83, 0xa3, + 0x02, 0xdb, 0xcc, 0x11, 0xf8, 0x41, 0xd9, 0x07, 0xf0, 0x1d, 0xbe, 0xea, 0xc0, 0xa3, 0x6c, 0x1d, + 0xf9, 0x25, 0x3c, 0x31, 0xb3, 0x0a, 0xb6, 0x05, 0x9e, 0x83, 0x67, 0xf0, 0xde, 0x3f, 0x93, 0xb5, + 0x1b, 0xec, 0x65, 0xf7, 0x30, 0xec, 0x66, 0xf7, 0x43, 0xb0, 0x13, 0xdf, 0x0f, 0xe0, 0x85, 0xab, + 0x0a, 0x1c, 0xc0, 0xeb, 0x50, 0x4c, 0x98, 0xe9, 0x87, 0x23, 0xf4, 0xd6, 0x60, 0x86, 0x63, 0x33, + 0xc3, 0xf0, 0x3a, 0x7b, 0xf6, 0xc3, 0x1b, 0xf8, 0x7c, 0x8a, 0x3d, 0x2f, 0x82, 0x0f, 0xf0, 0x99, + 0x4e, 0x39, 0x78, 0xdd, 0x7f, 0xcd, 0xeb, 0x5e, 0xc8, 0x79, 0x31, 0x13, 0x5f, 0x8b, 0x08, 0x8b, + 0xac, 0x3e, 0xa1, 0xbf, 0x43, 0x9e, 0x6e, 0x1c, 0xc4, 0x61, 0x2b, 0xd9, 0x57, 0x4b, 0xe5, 0xa3, + 0xb6, 0x94, 0xfc, 0x3a, 0x21, 0xe1, 0xab, 0x34, 0x72, 0x6c, 0x49, 0x8e, 0x2b, 0xc9, 0x76, 0x54, + 0x0e, 0xba, 0xd8, 0x29, 0xcc, 0x7a, 0x4e, 0x83, 0xb8, 0x9f, 0xa2, 0x14, 0x0e, 0xe5, 0xf5, 0xe3, + 0xf2, 0x38, 0xb4, 0x57, 0x23, 0xfe, 0x83, 0x24, 0xa4, 0x2e, 0xdc, 0xa1, 0xe1, 0x0a, 0xe2, 0x73, + 0x2d, 0x17, 0x2e, 0xcc, 0x7b, 0xef, 0xef, 0x38, 0x13, 0x71, 0xb0, 0x33, 0x11, 0xb3, 0x6a, 0x44, + 0xfe, 0xd7, 0x2c, 0x06, 0x45, 0x7c, 0x56, 0x16, 0x5d, 0x63, 0xbf, 0xa0, 0x7c, 0xe2, 0x29, 0x88, + 0x27, 0x75, 0x0a, 0xa2, 0xa7, 0xd3, 0xc3, 0xce, 0x3e, 0xac, 0x63, 0xcf, 0x3e, 0xda, 0x84, 0xb1, + 0xfb, 0x89, 0x40, 0x80, 0xce, 0x3c, 0xb0, 0x75, 0x02, 0xe9, 0xe7, 0x1e, 0x3e, 0x1d, 0x0b, 0x8b, + 0x24, 0xdd, 0x4e, 0x6a, 0x63, 0x5a, 0x9f, 0xdd, 0x06, 0x99, 0x70, 0xec, 0xa6, 0xf9, 0x0d, 0x32, + 0x9d, 0xae, 0xd0, 0x7a, 0xc4, 0x3d, 0xcc, 0x57, 0xed, 0x19, 0x19, 0xd6, 0x25, 0x07, 0xe6, 0x9d, + 0x9b, 0xa3, 0xc6, 0x9a, 0xed, 0x06, 0x39, 0x21, 0xe1, 0x06, 0x92, 0x2f, 0xe6, 0x38, 0x1b, 0x85, + 0x0b, 0x15, 0x67, 0xb1, 0x3d, 0x2a, 0x47, 0x9d, 0x9f, 0x61, 0xcf, 0xb1, 0x35, 0x2d, 0xbd, 0x45, + 0x0a, 0x71, 0x5c, 0xdb, 0x6b, 0x48, 0x42, 0x61, 0x57, 0x5d, 0x94, 0x07, 0x95, 0xfe, 0x43, 0x95, + 0xce, 0x27, 0xae, 0xb7, 0xcb, 0xa9, 0xde, 0x98, 0xae, 0xc1, 0x88, 0xfc, 0x15, 0xa4, 0x72, 0x76, + 0x61, 0xce, 0x73, 0xcf, 0x5e, 0x75, 0x72, 0x47, 0x39, 0xeb, 0x7d, 0x21, 0xfa, 0xc9, 0xeb, 0x56, + 0xfa, 0x59, 0x1d, 0x5f, 0x5f, 0x17, 0xb3, 0x33, 0x77, 0xb6, 0x1a, 0x0d, 0xa6, 0x21, 0x89, 0x1e, + 0xd3, 0xcf, 0xd8, 0x2e, 0x52, 0xdb, 0x92, 0x74, 0x88, 0x4e, 0x2b, 0x68, 0xcd, 0x0d, 0x6f, 0x37, + 0x54, 0xab, 0x36, 0x3a, 0xe3, 0x46, 0x7a, 0x76, 0x00, 0x5b, 0xa9, 0xba, 0x7a, 0x63, 0x5e, 0xa3, + 0xa1, 0x5a, 0xbb, 0x98, 0xd7, 0x0c, 0x56, 0xe4, 0xd5, 0x9a, 0xc1, 0x7e, 0xad, 0xf3, 0x46, 0xe2, + 0xab, 0x9c, 0x3a, 0x5f, 0x45, 0xb3, 0x0f, 0x0a, 0xa9, 0xc5, 0xd3, 0x52, 0x5d, 0xa0, 0xda, 0xf9, + 0xc9, 0x3a, 0xa6, 0x1b, 0xc3, 0x74, 0x17, 0x54, 0x6f, 0xc4, 0x31, 0x69, 0xcf, 0x73, 0x1b, 0x16, + 0x50, 0x2c, 0x1c, 0x99, 0xa9, 0x73, 0x92, 0x37, 0x3d, 0xc0, 0xb4, 0x16, 0xef, 0xd4, 0xce, 0x5f, + 0xa3, 0x7c, 0xb5, 0x7a, 0x4a, 0x06, 0x4c, 0xc9, 0x89, 0x29, 0xd5, 0xb2, 0x12, 0xd6, 0x6a, 0xe7, + 0x59, 0x09, 0x2f, 0xb2, 0x12, 0x52, 0x39, 0x1d, 0xc9, 0x72, 0x9e, 0x1f, 0x55, 0xce, 0x33, 0x58, + 0xce, 0x73, 0xba, 0x85, 0xfb, 0xb5, 0xea, 0xbf, 0x58, 0x4f, 0x3f, 0x13, 0x47, 0xc4, 0x4b, 0x98, + 0xfe, 0x62, 0x96, 0xfe, 0xe2, 0x7f, 0xa4, 0x05, 0x88, 0x9b, 0x49, 0xa4, 0x2c, 0x63, 0x7c, 0x4c, + 0x55, 0xd1, 0x53, 0x25, 0x44, 0x78, 0xaa, 0xbf, 0xc2, 0x52, 0x55, 0x58, 0x7a, 0xd6, 0x6b, 0x9d, + 0x16, 0x61, 0x7a, 0xe7, 0x31, 0xbd, 0x8b, 0xfc, 0xbc, 0x88, 0xe9, 0x18, 0x0d, 0x4d, 0x08, 0xe2, + 0x25, 0xe2, 0x95, 0x83, 0x57, 0x2e, 0x0c, 0x65, 0x1b, 0x61, 0xc8, 0xb1, 0x1f, 0xef, 0x45, 0x30, + 0x64, 0x5d, 0x80, 0xf7, 0x6a, 0xbc, 0xaf, 0x87, 0xa1, 0x1b, 0x1e, 0xc3, 0xe7, 0xa5, 0x78, 0xd1, + 0xbb, 0x13, 0x78, 0x5d, 0x84, 0xa1, 0x2c, 0x3f, 0x5e, 0xbb, 0x60, 0x28, 0xe7, 0x71, 0xfc, 0xc6, + 0x8e, 0xf7, 0x0e, 0xbc, 0x30, 0x6e, 0x0e, 0xc6, 0xf9, 0x94, 0x15, 0x2f, 0x0f, 0xc6, 0xf3, 0x30, + 0x8d, 0x8d, 0x21, 0x47, 0xe8, 0x7f, 0x51, 0xef, 0xa8, 0xa1, 0x23, 0x76, 0xf7, 0x8a, 0x7b, 0x96, + 0xb5, 0xac, 0x48, 0x6a, 0x1f, 0xdd, 0xdd, 0xbc, 0x2c, 0x7a, 0xf7, 0xcc, 0xe6, 0x59, 0x45, 0xcb, + 0x99, 0x51, 0xda, 0x68, 0x45, 0xa4, 0xab, 0xa2, 0x93, 0x36, 0xd2, 0x90, 0xb9, 0x10, 0x4b, 0x7a, + 0xa9, 0x7b, 0xc6, 0xf8, 0x15, 0xf8, 0x2c, 0xc1, 0xd0, 0xb8, 0x3f, 0xe3, 0x7d, 0x41, 0x32, 0x27, + 0xd2, 0x55, 0x2a, 0xe6, 0x65, 0x9f, 0xd0, 0x51, 0xda, 0xb2, 0x42, 0x5d, 0x16, 0xbd, 0xb7, 0x75, + 0xd9, 0x8a, 0xa8, 0x58, 0xd7, 0x72, 0x77, 0x6b, 0xfd, 0x6c, 0x71, 0x49, 0xfd, 0x17, 0xa6, 0xc5, + 0xc4, 0x66, 0x35, 0xfa, 0x85, 0x69, 0xf5, 0x62, 0xac, 0xb5, 0xa5, 0x9e, 0xee, 0xf7, 0x2c, 0x5b, + 0xd9, 0xf0, 0x85, 0x69, 0xbe, 0xa2, 0x0e, 0xb1, 0xed, 0x9b, 0x31, 0x7a, 0x2a, 0xe8, 0xb0, 0x00, + 0x0f, 0xa4, 0x48, 0x0d, 0xed, 0x74, 0x5f, 0xd1, 0xf0, 0x0d, 0xba, 0x35, 0xac, 0xa0, 0x4f, 0x2c, + 0x30, 0x73, 0x8e, 0xb8, 0x44, 0x4f, 0xbe, 0xa1, 0xde, 0x23, 0x62, 0xa2, 0x33, 0x45, 0xd2, 0xd1, + 0x49, 0xe4, 0x79, 0x77, 0x1b, 0x96, 0x5c, 0x54, 0xef, 0x5e, 0xd6, 0xd4, 0x50, 0x3f, 0xd5, 0x02, + 0x3c, 0xee, 0x92, 0xa5, 0x77, 0x2f, 0x5b, 0x31, 0xea, 0x87, 0x58, 0xdf, 0xb2, 0xa2, 0x21, 0xbd, + 0xae, 0xcd, 0x0d, 0xcd, 0x2d, 0x58, 0xd5, 0xf9, 0x81, 0x48, 0xc9, 0x7c, 0xd1, 0x4f, 0x85, 0xf2, + 0xb0, 0xf2, 0x89, 0xf4, 0x68, 0x81, 0xbb, 0xeb, 0xeb, 0xa9, 0x36, 0xad, 0x77, 0x37, 0xf3, 0x1a, + 0xdd, 0xc3, 0x0b, 0x5a, 0xb7, 0xac, 0xed, 0x9e, 0x2f, 0x4c, 0xe3, 0xef, 0x5b, 0xbf, 0x30, 0xad, + 0xa9, 0x43, 0xaf, 0x13, 0x3e, 0x34, 0xdf, 0xdd, 0x91, 0x78, 0xb6, 0x40, 0xf2, 0x3b, 0xf1, 0xee, + 0x36, 0x71, 0x4c, 0xe2, 0x18, 0xd4, 0xd6, 0xaa, 0x67, 0x53, 0x7e, 0xf7, 0x3d, 0x6d, 0xe2, 0x7c, + 0x5e, 0x94, 0x54, 0x5e, 0x7a, 0x61, 0xcb, 0x5b, 0xee, 0x5d, 0x51, 0xaf, 0x27, 0x33, 0x2d, 0x36, + 0xfb, 0xfa, 0xad, 0x79, 0x4f, 0x43, 0xeb, 0xb2, 0xbb, 0x9b, 0xf8, 0x73, 0xfd, 0xb2, 0xbb, 0x31, + 0x16, 0x36, 0x50, 0x7d, 0xcb, 0x3d, 0xc9, 0x0e, 0x2d, 0x69, 0x6a, 0x6a, 0x59, 0x12, 0xa0, 0x84, + 0x30, 0x2f, 0x58, 0xb0, 0xb4, 0x41, 0x54, 0xef, 0x5d, 0xb1, 0x84, 0xb5, 0xdc, 0xb4, 0x7b, 0x5c, + 0x33, 0xc4, 0x65, 0xf7, 0x88, 0x2b, 0x5a, 0xda, 0xc4, 0x34, 0x55, 0xab, 0x7c, 0x0b, 0xff, 0xa8, + 0x2c, 0xd1, 0x60, 0xff, 0xc0, 0x87, 0xe5, 0xad, 0x0d, 0x0d, 0xff, 0x68, 0x66, 0xf4, 0xcd, 0xff, + 0x24, 0xaf, 0xf9, 0x77, 0x2f, 0x6f, 0x08, 0xb6, 0xdc, 0x53, 0xd5, 0x52, 0xdf, 0x20, 0x4e, 0x9f, + 0x76, 0xcf, 0x74, 0xf6, 0xc7, 0x02, 0x69, 0xf6, 0x8d, 0x43, 0xe4, 0x10, 0x2c, 0xa9, 0x17, 0x35, + 0xf5, 0x6f, 0xea, 0x47, 0x0d, 0x8d, 0x7b, 0xe6, 0x6f, 0xe8, 0x47, 0x0d, 0x8d, 0xdb, 0xf9, 0xf7, + 0xea, 0x47, 0xe1, 0x5e, 0x43, 0xfe, 0x3b, 0x74, 0xa4, 0x86, 0xc6, 0x9d, 0xbe, 0xae, 0x8e, 0xd4, + 0xd0, 0xb8, 0xa3, 0x63, 0x74, 0xa4, 0x86, 0x2c, 0xc3, 0x9f, 0xa0, 0x23, 0x35, 0x34, 0x6e, 0xef, + 0x18, 0x1d, 0xa9, 0xa1, 0x71, 0x87, 0xae, 0xd2, 0x91, 0x1a, 0x1a, 0x77, 0xe2, 0xff, 0x45, 0x47, + 0x2a, 0x16, 0x64, 0x56, 0x55, 0x06, 0xcf, 0x0a, 0x90, 0x13, 0x68, 0x63, 0x14, 0xce, 0xe5, 0xa5, + 0x56, 0xd0, 0x06, 0x54, 0x73, 0x2c, 0x8b, 0xb4, 0x19, 0x14, 0x53, 0x6c, 0x12, 0xe9, 0x75, 0x72, + 0x84, 0x6c, 0xed, 0x1c, 0xf3, 0xbd, 0x67, 0x76, 0x56, 0x30, 0xaf, 0x7f, 0xf6, 0xc9, 0x60, 0xc8, + 0xd4, 0x06, 0xe4, 0x19, 0x20, 0x93, 0xe5, 0x31, 0x86, 0x4c, 0xc2, 0xed, 0xef, 0x0c, 0xe4, 0x98, + 0xc0, 0x3b, 0x9e, 0x4a, 0x69, 0xd6, 0xf7, 0x04, 0xab, 0x60, 0x4a, 0x1e, 0xf6, 0x86, 0xf8, 0x0a, + 0x79, 0x78, 0xcb, 0xb1, 0x66, 0x12, 0x3a, 0x36, 0xec, 0xc0, 0x7d, 0x05, 0x52, 0x4d, 0xb2, 0xf9, + 0x38, 0x19, 0x0e, 0xaf, 0x80, 0x27, 0x54, 0xd3, 0x17, 0x3a, 0xc1, 0x0f, 0x4f, 0x14, 0xe4, 0xc3, + 0x13, 0xb3, 0x0d, 0xc1, 0x32, 0x9f, 0x50, 0xe3, 0x1f, 0x0c, 0x1c, 0xf4, 0xb7, 0xc3, 0xac, 0xcc, + 0x4e, 0x28, 0x26, 0x39, 0xa1, 0xe6, 0xcd, 0xb8, 0x43, 0x08, 0x44, 0xbd, 0x26, 0x96, 0xfa, 0xbf, + 0xf1, 0xd4, 0x4f, 0x90, 0x0f, 0x3a, 0x87, 0x95, 0xbc, 0x4c, 0x68, 0x2b, 0xc0, 0x50, 0xf8, 0xd6, + 0xbc, 0x50, 0x69, 0xa0, 0x74, 0x7a, 0x29, 0x88, 0x9f, 0xc7, 0x54, 0xc1, 0xf5, 0xf9, 0x00, 0xb8, + 0x21, 0x0f, 0x0c, 0x60, 0x7b, 0x3d, 0xf0, 0x85, 0x32, 0x78, 0x42, 0x0c, 0xc6, 0xee, 0x2b, 0x07, + 0x29, 0x83, 0x34, 0xde, 0x4b, 0x87, 0x34, 0x0b, 0xb3, 0x08, 0x1a, 0x8f, 0x1c, 0xf1, 0x72, 0x90, + 0x6b, 0x7a, 0x43, 0xe4, 0x01, 0x3d, 0x83, 0xa5, 0x3f, 0x90, 0xf4, 0x77, 0x69, 0x55, 0x40, 0x18, + 0x08, 0x98, 0x24, 0x43, 0x0d, 0xc9, 0xfe, 0x8b, 0x5d, 0xc1, 0xd9, 0x65, 0xf2, 0x5c, 0xb1, 0x13, + 0xfe, 0xaf, 0xa6, 0xb5, 0x8b, 0xa1, 0xd2, 0xb0, 0x49, 0x9d, 0x62, 0xed, 0x86, 0x71, 0x9a, 0x56, + 0x07, 0xc2, 0x36, 0x2e, 0xf5, 0x11, 0x1e, 0xc7, 0xf7, 0x1f, 0x6a, 0x9a, 0xb3, 0x18, 0xde, 0x05, + 0x70, 0x9b, 0x03, 0x65, 0xa1, 0xb2, 0xb7, 0xe7, 0x7b, 0xcb, 0xa0, 0x10, 0xd3, 0x5a, 0xe5, 0xca, + 0x08, 0x04, 0x43, 0xc1, 0xb7, 0x2b, 0xdd, 0x19, 0x14, 0x6e, 0xcf, 0x24, 0xdf, 0x4a, 0x05, 0xc6, + 0xd2, 0x8f, 0x72, 0x00, 0xdb, 0x6a, 0x06, 0xac, 0xcd, 0x02, 0x83, 0x00, 0xe3, 0x6e, 0x29, 0x81, + 0xa2, 0xd6, 0x71, 0xfb, 0xe2, 0x52, 0x49, 0xc6, 0x38, 0x4c, 0x31, 0x80, 0x79, 0xdc, 0x81, 0x79, + 0x90, 0xa4, 0xb1, 0x78, 0x80, 0x10, 0x8d, 0x7c, 0x8a, 0xc3, 0xda, 0x03, 0x22, 0xee, 0x6a, 0x0b, + 0xf0, 0xae, 0xb0, 0x7c, 0x73, 0x15, 0xa7, 0x68, 0xd0, 0x4b, 0x33, 0x25, 0xc7, 0x8b, 0x29, 0x00, + 0xee, 0x92, 0x8a, 0x30, 0x67, 0x42, 0x7a, 0xf1, 0x29, 0xc5, 0xa6, 0xb8, 0x76, 0x09, 0x40, 0x61, + 0x48, 0x2e, 0x73, 0x8c, 0x6f, 0x94, 0x90, 0x8d, 0x80, 0xa6, 0x95, 0x7e, 0xd4, 0x41, 0x18, 0xda, + 0x6b, 0xd5, 0xa0, 0x6e, 0xeb, 0x5f, 0x1e, 0xe9, 0x7a, 0xf1, 0x79, 0x28, 0x5c, 0x42, 0xa8, 0x6a, + 0x07, 0xc8, 0xda, 0x1f, 0xa0, 0xc6, 0x88, 0xbb, 0x89, 0xa2, 0xcd, 0xbf, 0x74, 0x63, 0x37, 0xe7, + 0x8f, 0xbf, 0x21, 0x53, 0x75, 0xe8, 0x71, 0xc5, 0x48, 0x97, 0xd5, 0xa8, 0x69, 0xea, 0x71, 0xb2, + 0x53, 0x23, 0x54, 0x3e, 0x1e, 0x5e, 0x07, 0xb0, 0xc1, 0x65, 0x95, 0x32, 0x15, 0x13, 0xfe, 0xc5, + 0xd0, 0xd9, 0x13, 0xa9, 0x57, 0x78, 0x5f, 0x7c, 0xbe, 0x04, 0x5c, 0x1c, 0x4d, 0xe3, 0xf3, 0x7e, + 0x70, 0x63, 0x9f, 0xdc, 0x51, 0x0e, 0x03, 0x6b, 0x4a, 0x87, 0xae, 0xac, 0xfc, 0x5b, 0xfd, 0x21, + 0xe6, 0x81, 0x98, 0x9d, 0x07, 0x53, 0xcb, 0x33, 0x98, 0x07, 0x74, 0xa0, 0x34, 0xde, 0x0e, 0xfd, + 0x7e, 0x20, 0x36, 0xee, 0xa5, 0xb8, 0x62, 0x17, 0x33, 0xfa, 0xba, 0x84, 0x0f, 0x60, 0x2d, 0xf9, + 0x52, 0x02, 0xc0, 0x72, 0x31, 0xeb, 0xa1, 0xba, 0x33, 0xb8, 0x1b, 0x08, 0x9a, 0x7a, 0x08, 0x03, + 0xe4, 0x85, 0x5f, 0xd5, 0xc1, 0x48, 0x3c, 0x62, 0xb2, 0x9a, 0xc0, 0xa0, 0xc2, 0xc8, 0x6c, 0x97, + 0x95, 0xa5, 0x7e, 0x9c, 0xa7, 0x6e, 0xcf, 0x03, 0x5b, 0xed, 0x46, 0xf2, 0xe1, 0xa4, 0x92, 0x4e, + 0xae, 0xf0, 0x29, 0x3f, 0xee, 0x47, 0x83, 0xb1, 0x1b, 0x5b, 0x81, 0x6b, 0xf7, 0xe8, 0x72, 0x48, + 0x07, 0xd3, 0x4e, 0x98, 0x23, 0x57, 0x89, 0x38, 0x87, 0x8a, 0x5c, 0x82, 0xcb, 0x10, 0xf4, 0x03, + 0x4b, 0xe7, 0x43, 0x9e, 0x4e, 0xed, 0xc6, 0x76, 0x20, 0xb4, 0x7d, 0x26, 0xd1, 0x18, 0x74, 0x42, + 0x74, 0x41, 0x38, 0x18, 0xcd, 0x11, 0x3b, 0x89, 0x4d, 0x90, 0x4a, 0x59, 0xe8, 0x77, 0xf8, 0xaf, + 0xb0, 0x5f, 0x95, 0x70, 0xac, 0x9c, 0x49, 0x85, 0x63, 0x88, 0x45, 0xe4, 0xcf, 0xcf, 0x28, 0xb9, + 0xa3, 0xde, 0xed, 0x47, 0x7e, 0x7b, 0x9b, 0xfe, 0xee, 0x94, 0xf2, 0xef, 0x2c, 0xc7, 0x61, 0xbd, + 0x5d, 0x1a, 0xc9, 0xf6, 0xdb, 0x87, 0x65, 0x61, 0xe5, 0x17, 0xc8, 0xa7, 0x04, 0xc9, 0x3d, 0xfd, + 0x86, 0x56, 0x03, 0xf3, 0xcf, 0xf5, 0x8a, 0xd8, 0x49, 0xda, 0xea, 0x52, 0xe7, 0x7d, 0x44, 0x41, + 0xed, 0x21, 0x3f, 0xf9, 0xd5, 0x30, 0x14, 0x27, 0x10, 0x05, 0x9c, 0xd0, 0x0c, 0xb0, 0x3d, 0x5a, + 0x48, 0xf8, 0x04, 0x99, 0x99, 0x6d, 0x2e, 0x1e, 0xbb, 0xf4, 0x32, 0x0c, 0x8d, 0xb7, 0x79, 0x1a, + 0x89, 0x52, 0x5c, 0x79, 0xd4, 0x9b, 0xe1, 0x2d, 0xa6, 0x50, 0xca, 0x77, 0xfc, 0x2d, 0xa9, 0xf9, + 0xe1, 0x64, 0xa1, 0x6e, 0x96, 0x9e, 0x2b, 0xc3, 0xb4, 0x5a, 0x3b, 0x0f, 0x20, 0x06, 0xa5, 0x52, + 0xca, 0x85, 0xa5, 0x9f, 0x49, 0xb8, 0x43, 0x2d, 0x56, 0xeb, 0x6a, 0x81, 0x74, 0xe0, 0xad, 0x4e, + 0xa3, 0x72, 0xdc, 0xda, 0xc3, 0x75, 0xe7, 0x5d, 0xec, 0xdb, 0xad, 0x3d, 0xa2, 0x51, 0xcf, 0x79, + 0x8a, 0x58, 0x3a, 0x26, 0x57, 0x23, 0x1f, 0x01, 0xe9, 0x39, 0xb2, 0xdf, 0x9f, 0xaf, 0xe0, 0x72, + 0xd9, 0x2d, 0x74, 0xfa, 0x5d, 0xcb, 0xfc, 0x6e, 0x1b, 0x8a, 0x3b, 0x84, 0x50, 0x10, 0xc7, 0xe1, + 0x59, 0x73, 0x1e, 0x64, 0x82, 0x9d, 0xf0, 0x8d, 0x91, 0x5a, 0x61, 0xaf, 0xb6, 0x8e, 0x1f, 0xe8, + 0x42, 0xba, 0x33, 0xe8, 0xce, 0x03, 0xd9, 0xbd, 0x1c, 0xc4, 0x9f, 0x0d, 0x13, 0xfd, 0x59, 0xd2, + 0xee, 0xc8, 0x83, 0x2c, 0x7b, 0x31, 0xdc, 0x30, 0xd0, 0x1d, 0x6d, 0x33, 0x18, 0xe0, 0x86, 0x4e, + 0xc8, 0x35, 0x70, 0x0a, 0x33, 0x3e, 0x4c, 0x76, 0x8e, 0x56, 0x03, 0x4c, 0xc4, 0x91, 0xbc, 0xc9, + 0x6e, 0xb8, 0x13, 0xac, 0x38, 0x2e, 0xea, 0xcc, 0x77, 0xae, 0x75, 0x1b, 0xdf, 0x7f, 0x56, 0x29, + 0xc7, 0x37, 0xe6, 0x25, 0x56, 0xb7, 0xe9, 0x9f, 0xd7, 0xbc, 0x37, 0x3f, 0x54, 0x16, 0x28, 0x53, + 0x0a, 0xc5, 0xf9, 0xa5, 0x7f, 0xa9, 0x85, 0x98, 0x59, 0xaf, 0x75, 0x46, 0xd5, 0xbd, 0x32, 0x21, + 0x29, 0x02, 0xdb, 0xdd, 0x0e, 0x8d, 0xff, 0x32, 0x43, 0xd0, 0xb2, 0xbb, 0x0d, 0x8a, 0xa5, 0x0d, + 0x3c, 0x58, 0x5b, 0x53, 0xa6, 0x62, 0x6e, 0x73, 0xd0, 0x93, 0x31, 0x33, 0xbc, 0x26, 0xea, 0xd9, + 0xf3, 0x34, 0xc8, 0x75, 0x4e, 0x26, 0x1b, 0xe4, 0x5f, 0xb4, 0x57, 0x6d, 0x11, 0x33, 0x25, 0x13, + 0xa6, 0x4b, 0x2d, 0xf2, 0xbd, 0x44, 0x8b, 0x50, 0x2a, 0x38, 0x8f, 0xcc, 0x60, 0x73, 0xd6, 0xb0, + 0xf3, 0x54, 0x07, 0x8b, 0xbd, 0x3d, 0x31, 0xf6, 0x48, 0x52, 0xc8, 0xf5, 0xa6, 0xb8, 0x47, 0x0c, + 0xd1, 0xcc, 0x71, 0xf2, 0xa2, 0x26, 0x5f, 0xb1, 0x40, 0xa8, 0x1d, 0x06, 0x03, 0x9b, 0xa1, 0x65, + 0x7f, 0x32, 0x43, 0xd9, 0xf9, 0x6d, 0x90, 0x95, 0x75, 0xf8, 0x65, 0xbb, 0xfd, 0xcc, 0x78, 0x03, + 0x68, 0xe7, 0xe3, 0x82, 0xfc, 0xb5, 0x84, 0x1d, 0x88, 0x4b, 0x97, 0xd5, 0x3a, 0x69, 0xaf, 0x1b, + 0x6e, 0xc3, 0x3e, 0xd5, 0x6d, 0x10, 0x1f, 0x2f, 0x87, 0xec, 0x81, 0x48, 0x77, 0xcc, 0xde, 0xdf, + 0xad, 0x9e, 0xd5, 0x6d, 0x9f, 0x1e, 0x2f, 0xcf, 0xe2, 0x36, 0x1f, 0xb8, 0x52, 0x9c, 0x67, 0x3b, + 0x64, 0xb3, 0x5c, 0x51, 0xf1, 0x2e, 0xd8, 0x71, 0x05, 0xb6, 0x7a, 0xcd, 0xb8, 0xff, 0x78, 0x4e, + 0xf7, 0xed, 0x7a, 0x23, 0xd2, 0x29, 0x17, 0xae, 0x58, 0x8e, 0x1a, 0xbf, 0xd5, 0xaf, 0x5d, 0x41, + 0xaa, 0x39, 0x99, 0xf9, 0x89, 0xb4, 0xb7, 0xde, 0x51, 0x2e, 0x0c, 0x74, 0x91, 0x05, 0x28, 0xb3, + 0xec, 0x20, 0xc4, 0x32, 0x68, 0x9f, 0x30, 0xf7, 0x43, 0x10, 0x49, 0x86, 0x9a, 0xd5, 0x49, 0xf6, + 0xb9, 0x9f, 0xdb, 0xeb, 0x25, 0xbb, 0x65, 0x03, 0xc9, 0x4e, 0xc9, 0x8f, 0x28, 0x93, 0x05, 0x3e, + 0x92, 0xc0, 0x6b, 0x82, 0xc1, 0x9a, 0x0c, 0xf5, 0x8d, 0x6c, 0x37, 0xad, 0xfe, 0xf6, 0x0c, 0x4a, + 0x6f, 0x5f, 0x5c, 0xb7, 0x53, 0xca, 0x31, 0xbb, 0x71, 0x44, 0x64, 0x45, 0xed, 0x59, 0xc5, 0x80, + 0x54, 0x55, 0x2c, 0xa6, 0xb1, 0xf8, 0x87, 0x6d, 0x8a, 0x6c, 0xc8, 0x80, 0x71, 0x62, 0x31, 0x60, + 0x8e, 0xe1, 0x8c, 0xa8, 0x8d, 0xeb, 0xe8, 0x90, 0x2d, 0x72, 0x1c, 0xde, 0xd9, 0xa6, 0x7f, 0x3b, + 0x27, 0x0b, 0x57, 0x56, 0xa4, 0xc9, 0x37, 0x64, 0x0b, 0x77, 0x66, 0x58, 0x33, 0x20, 0xb3, 0x2e, + 0x8b, 0x56, 0x4b, 0xd0, 0x9c, 0xc2, 0x9d, 0x3d, 0x24, 0x8b, 0x79, 0xe7, 0x29, 0xa4, 0xc5, 0x48, + 0xb3, 0x97, 0x38, 0x78, 0xf8, 0x3f, 0x77, 0xbd, 0x57, 0x11, 0x2a, 0x09, 0x94, 0xec, 0x88, 0xd7, + 0x1b, 0x44, 0xb2, 0x79, 0x97, 0xa7, 0x05, 0x40, 0x64, 0x2b, 0xf4, 0x64, 0xaf, 0xe0, 0x75, 0x43, + 0xb6, 0x17, 0x58, 0x9d, 0x69, 0xcd, 0x74, 0xb3, 0x35, 0xd3, 0xc0, 0xfa, 0xf0, 0x67, 0xc9, 0x31, + 0x9e, 0x9b, 0x90, 0x60, 0x74, 0x92, 0xff, 0x4e, 0xfb, 0x3f, 0xd2, 0x9f, 0x76, 0xe1, 0x5d, 0xb3, + 0x23, 0x8e, 0x7d, 0xda, 0xc5, 0xfb, 0x52, 0xf2, 0x47, 0x1e, 0x20, 0x54, 0x63, 0xf2, 0x94, 0x90, + 0xd5, 0x45, 0xda, 0x0f, 0x87, 0x07, 0x7c, 0x5d, 0x3a, 0x9f, 0xd3, 0x02, 0xf6, 0x92, 0xb3, 0x10, + 0x9e, 0x16, 0x82, 0x48, 0x60, 0x3b, 0x54, 0xe1, 0x73, 0x15, 0x3e, 0x87, 0xf1, 0x5e, 0x8c, 0xf7, + 0x20, 0x86, 0xf9, 0xf1, 0xd9, 0x8f, 0xcf, 0xc5, 0x73, 0xcf, 0x42, 0x2d, 0xa1, 0x3b, 0x05, 0x7e, + 0xc8, 0xfd, 0xae, 0x15, 0xe5, 0xe2, 0x1e, 0x9a, 0x8f, 0xc9, 0x23, 0x9c, 0x4e, 0x31, 0xca, 0xf4, + 0x22, 0xf5, 0x33, 0xd3, 0x7d, 0x04, 0x2e, 0x2b, 0x71, 0x11, 0x96, 0x40, 0xc8, 0x59, 0x21, 0x57, + 0xe9, 0x76, 0xea, 0x12, 0x1b, 0xcf, 0x97, 0x91, 0x43, 0x63, 0x3c, 0xc8, 0x95, 0xe3, 0x32, 0x10, + 0x02, 0x0e, 0xd2, 0xb0, 0x30, 0xf5, 0x71, 0xd1, 0xe3, 0x8a, 0x2c, 0x35, 0x81, 0xeb, 0xd5, 0x97, + 0x43, 0x5f, 0xdf, 0x2a, 0xe0, 0x1e, 0x8f, 0xce, 0x93, 0x5d, 0x0c, 0x91, 0x4d, 0x20, 0xf9, 0x3a, + 0x93, 0x1a, 0xbf, 0x21, 0x06, 0x64, 0xbb, 0x7a, 0x3c, 0xe6, 0xd0, 0x6d, 0xc4, 0x1b, 0x39, 0x37, + 0xe3, 0xe6, 0x32, 0xe7, 0x81, 0xbc, 0x79, 0x60, 0xf9, 0x74, 0x27, 0x9d, 0xa9, 0x7e, 0x3a, 0x08, + 0xe3, 0x6f, 0x2f, 0x05, 0x5b, 0x5e, 0x25, 0xd8, 0xf5, 0x58, 0x9d, 0x54, 0x63, 0x69, 0x3e, 0xff, + 0x35, 0x72, 0x41, 0x0f, 0x6d, 0x6f, 0x17, 0x90, 0x72, 0xf4, 0x4a, 0x56, 0x8f, 0x9f, 0x34, 0x90, + 0x49, 0x13, 0xd5, 0x9c, 0x81, 0xe5, 0x55, 0xc4, 0x26, 0xca, 0x3d, 0xdb, 0xd7, 0x8b, 0x63, 0x8a, + 0x34, 0xa9, 0x17, 0x90, 0x3c, 0x86, 0xd7, 0x7b, 0x81, 0xd3, 0x4f, 0x61, 0x4c, 0xfe, 0x5d, 0x3c, + 0xdb, 0xcf, 0x63, 0x32, 0x1f, 0x47, 0xf3, 0xc4, 0x89, 0x7a, 0x1c, 0xe6, 0x17, 0xf3, 0x38, 0x44, + 0x32, 0x42, 0x3d, 0x81, 0xcf, 0xfa, 0x40, 0x9a, 0xc0, 0xa4, 0x56, 0x11, 0x29, 0xd1, 0x76, 0x55, + 0xed, 0xcc, 0x6f, 0x92, 0x14, 0xd0, 0xcb, 0x53, 0x47, 0xbf, 0xc8, 0x43, 0x9d, 0x2e, 0x8f, 0x91, + 0x48, 0x1f, 0x39, 0x9a, 0x43, 0x96, 0x90, 0x25, 0x1f, 0x40, 0x31, 0xc6, 0xe3, 0x9c, 0x1b, 0x5f, + 0x5d, 0xba, 0x53, 0x3e, 0x53, 0x49, 0x16, 0xc6, 0xf8, 0x57, 0xe2, 0x33, 0x33, 0xd9, 0xdf, 0x1b, + 0xf9, 0x78, 0xe2, 0xf6, 0x9c, 0x2c, 0x64, 0x36, 0xfb, 0x5b, 0x99, 0x08, 0x8f, 0xf1, 0x3e, 0x2a, + 0x90, 0x43, 0x2e, 0x33, 0x61, 0x3e, 0x38, 0xab, 0x28, 0x1f, 0xd2, 0x0e, 0x90, 0x57, 0x40, 0xb1, + 0x62, 0xd0, 0xcf, 0xb1, 0x64, 0xc5, 0xc5, 0xfc, 0x90, 0x5b, 0xd8, 0x18, 0x76, 0xec, 0xec, 0x52, + 0xc9, 0x2f, 0x79, 0x4f, 0x34, 0xab, 0x15, 0x70, 0x6e, 0x4c, 0xda, 0xd5, 0x15, 0x35, 0xcb, 0x7e, + 0x31, 0x4b, 0x7d, 0xfd, 0x91, 0x83, 0x4c, 0xbb, 0xa1, 0x9b, 0x71, 0x9c, 0xb9, 0x7a, 0x59, 0xee, + 0x61, 0x7f, 0xe3, 0xe9, 0x65, 0x49, 0xd9, 0x83, 0xc6, 0x82, 0x7a, 0x7d, 0xf2, 0x93, 0x65, 0xff, + 0x21, 0xfb, 0xbb, 0x7b, 0x74, 0x7c, 0x29, 0xd4, 0x6a, 0xa7, 0xf9, 0x14, 0xb3, 0x63, 0x2b, 0x78, + 0xf4, 0x91, 0xd3, 0x17, 0xb3, 0x27, 0xf4, 0x5a, 0xef, 0x98, 0xe3, 0x0c, 0xb9, 0x12, 0x23, 0xac, + 0x90, 0xb4, 0xae, 0xbc, 0x76, 0x96, 0xce, 0x9b, 0x3c, 0x1d, 0xa4, 0xfa, 0xf6, 0xc8, 0x43, 0xbf, + 0xfb, 0xaf, 0xdf, 0xfd, 0x97, 0xf7, 0xc6, 0x32, 0x3a, 0x69, 0xda, 0x5f, 0xb5, 0xc9, 0x0d, 0x4e, + 0x58, 0xd4, 0x13, 0x1b, 0x7e, 0x29, 0x8e, 0x7c, 0x85, 0x91, 0xe6, 0x59, 0xd4, 0xe2, 0x85, 0xaa, + 0x4d, 0xb5, 0x1b, 0x65, 0x20, 0x7d, 0xee, 0x92, 0xbf, 0x14, 0x15, 0x97, 0x9c, 0x77, 0x65, 0x88, + 0x66, 0x7d, 0x94, 0x35, 0xf1, 0x5e, 0xd7, 0x91, 0x14, 0x06, 0x57, 0x79, 0xde, 0x88, 0x77, 0x16, + 0x9f, 0x88, 0xbb, 0x4c, 0xc7, 0x1f, 0x2a, 0x79, 0x0f, 0xec, 0x52, 0x39, 0xf6, 0x3a, 0x8f, 0xd3, + 0x77, 0x6c, 0xf5, 0xe9, 0x07, 0x45, 0xe3, 0xe9, 0xde, 0xd6, 0xe1, 0x03, 0x5d, 0xee, 0x60, 0xe4, + 0x21, 0x69, 0xfe, 0xc3, 0x07, 0x14, 0xb3, 0xab, 0x26, 0xeb, 0xfc, 0x01, 0x88, 0xf4, 0xee, 0xe9, + 0x5d, 0x71, 0x51, 0xca, 0x38, 0xd2, 0x43, 0x5e, 0xc6, 0x4a, 0xcf, 0x61, 0xca, 0x15, 0xf8, 0xd6, + 0x22, 0x61, 0x29, 0x72, 0xcf, 0xe7, 0xe0, 0xfb, 0x9d, 0xbd, 0x2b, 0x2e, 0x58, 0xd7, 0x10, 0x2d, + 0x69, 0x31, 0xae, 0x84, 0xf2, 0x4c, 0x31, 0x68, 0x5f, 0x13, 0xf8, 0x5c, 0x2d, 0x30, 0x2f, 0x11, + 0x23, 0x2b, 0x4c, 0x59, 0x86, 0x08, 0x8e, 0x9a, 0xea, 0x5f, 0xe6, 0x74, 0xf9, 0x3a, 0x41, 0xd3, + 0x43, 0x8d, 0x62, 0x20, 0xd2, 0x1b, 0xb8, 0xad, 0x17, 0xa6, 0x2d, 0xc7, 0xd5, 0xc1, 0x33, 0xad, + 0x14, 0x7c, 0xa7, 0x37, 0x4c, 0x2b, 0x87, 0x42, 0xfc, 0x6d, 0x85, 0xa2, 0xd3, 0x1b, 0xa7, 0xcd, + 0x85, 0x5c, 0x9c, 0xd1, 0xe4, 0x19, 0xcc, 0xc5, 0xfc, 0x64, 0xe5, 0x90, 0x47, 0xad, 0x1b, 0x1e, + 0x27, 0x94, 0x41, 0xbe, 0x4b, 0xe8, 0x64, 0xe8, 0xc7, 0xd8, 0xc2, 0xb5, 0x7a, 0x0b, 0x1f, 0x4a, + 0xec, 0x0f, 0xd2, 0xc2, 0x5e, 0x4a, 0xd3, 0x25, 0xa6, 0xb1, 0x49, 0x1e, 0x49, 0x7b, 0x93, 0xe3, + 0xd2, 0x98, 0x3e, 0x2e, 0x59, 0x1c, 0xa0, 0x95, 0xa2, 0xde, 0xd0, 0x66, 0x2f, 0xc3, 0x9e, 0x93, + 0xc2, 0xa2, 0x21, 0xd1, 0x7b, 0x8a, 0x29, 0x50, 0xe0, 0x02, 0x7d, 0x25, 0xb9, 0x98, 0xd0, 0x1d, + 0xe6, 0xf2, 0x9b, 0x5b, 0x0b, 0x60, 0x48, 0xba, 0x88, 0x77, 0x15, 0xef, 0xe7, 0x61, 0x68, 0xda, + 0x6a, 0x18, 0x72, 0x5e, 0x82, 0xa1, 0xe9, 0x9d, 0x30, 0xe4, 0xca, 0xc1, 0xab, 0x16, 0x2f, 0x0c, + 0x9b, 0x61, 0xc6, 0x0b, 0xd7, 0x87, 0x19, 0x4b, 0xf1, 0xc2, 0xf7, 0x6e, 0x0f, 0x0c, 0xe5, 0x9d, + 0x83, 0x21, 0x8f, 0x8c, 0x97, 0x1f, 0xaf, 0xc5, 0x78, 0x3d, 0x8e, 0xd7, 0x51, 0xbc, 0xce, 0xc0, + 0xd0, 0x4c, 0x0c, 0x9f, 0x89, 0xcf, 0xf9, 0x98, 0x4e, 0xfe, 0x99, 0xff, 0x45, 0xd9, 0x4d, 0xec, + 0xee, 0xd6, 0xb6, 0x65, 0x6d, 0xe9, 0xb2, 0x9b, 0xcf, 0x8e, 0x95, 0xd7, 0x5c, 0x15, 0x85, 0xc9, + 0x6b, 0x6e, 0x3e, 0x0d, 0x43, 0x0d, 0xd6, 0xae, 0x8c, 0xf1, 0x2e, 0x7c, 0x3e, 0x82, 0xd7, 0xf3, + 0x30, 0x34, 0xd9, 0x98, 0x4c, 0x7d, 0x05, 0x0c, 0xe5, 0x0c, 0x73, 0x79, 0x8d, 0x9c, 0x0c, 0xa4, + 0x43, 0x4d, 0xe2, 0x50, 0xc9, 0xf7, 0x98, 0x7e, 0x17, 0xf5, 0xfb, 0x34, 0xfd, 0xee, 0x04, 0x1e, + 0x47, 0xdf, 0x4c, 0x97, 0x97, 0x70, 0x11, 0x90, 0x31, 0xf9, 0x64, 0x4a, 0x3e, 0x8d, 0x83, 0xaa, + 0x05, 0xe5, 0x35, 0xf4, 0x34, 0x21, 0x19, 0x66, 0xe5, 0x4f, 0x43, 0x9f, 0xae, 0xb6, 0x25, 0xc3, + 0x3c, 0x10, 0xfc, 0x22, 0x8b, 0x06, 0x33, 0xe9, 0x89, 0xa5, 0x9e, 0x4f, 0x4f, 0xcc, 0x92, 0xcc, + 0x0b, 0x35, 0x3c, 0x11, 0x2c, 0xdd, 0xfc, 0xaa, 0x5a, 0xf6, 0xd4, 0x45, 0x4f, 0x2c, 0x5e, 0x0f, + 0x94, 0xd5, 0x2e, 0xa0, 0xb2, 0xc2, 0x06, 0xa8, 0x5c, 0x38, 0x9f, 0xbd, 0xfd, 0xbf, 0x10, 0xa8, + 0x09, 0xb2, 0xa7, 0x1f, 0xd0, 0x13, 0xee, 0xf8, 0x3f, 0xad, 0x24, 0x9f, 0x62, 0xc9, 0xa7, 0xf8, + 0x93, 0xf4, 0xc4, 0xbe, 0x7d, 0x1e, 0x42, 0xe5, 0x35, 0x79, 0x18, 0xd6, 0xf7, 0x3b, 0x28, 0xad, + 0x9e, 0xcf, 0xc2, 0xde, 0x83, 0x40, 0x19, 0xcf, 0xf8, 0x1c, 0xd4, 0xcc, 0xfb, 0x0a, 0x4b, 0xef, + 0x0a, 0x44, 0x4a, 0x2a, 0x82, 0xa3, 0xbb, 0xe9, 0x97, 0xee, 0x7b, 0x5c, 0x97, 0x6e, 0x99, 0x74, + 0x64, 0xcf, 0x3c, 0x78, 0xfc, 0xe5, 0x39, 0x2f, 0xdf, 0xde, 0xf3, 0xf3, 0xe5, 0xdf, 0xbd, 0xaf, + 0x64, 0xd2, 0x89, 0x17, 0x27, 0xc0, 0x4d, 0xca, 0xee, 0x2f, 0xde, 0xf0, 0xa5, 0x15, 0x9d, 0x3b, + 0x57, 0xfc, 0xf7, 0xa4, 0x63, 0x1b, 0x2f, 0x81, 0x61, 0xe6, 0xf8, 0xaf, 0xe7, 0x55, 0x5c, 0x7c, + 0x68, 0xd1, 0x0b, 0xb6, 0x49, 0x27, 0x7e, 0xfa, 0xaf, 0x70, 0xf3, 0xe1, 0xfb, 0x1f, 0x0d, 0x85, + 0x58, 0x26, 0x93, 0xb6, 0x6f, 0x9f, 0x04, 0xbe, 0x86, 0xd2, 0x73, 0xcf, 0xc0, 0xd0, 0x67, 0x44, + 0xbc, 0x76, 0xc2, 0x50, 0x6e, 0x07, 0x96, 0xe8, 0x28, 0xcb, 0xe4, 0xad, 0xeb, 0xff, 0x3b, 0xf6, + 0xd6, 0xef, 0x80, 0x59, 0xdd, 0x0d, 0x49, 0x5b, 0x60, 0xa8, 0x20, 0x1b, 0x86, 0x8a, 0x8c, 0x78, + 0xc7, 0x31, 0x5e, 0xd8, 0x08, 0x43, 0x9f, 0xc5, 0xde, 0x9f, 0x85, 0xe3, 0xf7, 0xb3, 0x21, 0xbc, + 0x62, 0xbc, 0xbf, 0x3f, 0xdb, 0x87, 0xd7, 0x07, 0x98, 0x3e, 0x8e, 0xf7, 0xdc, 0x22, 0x7c, 0x9f, + 0x33, 0xa6, 0xef, 0x13, 0x7d, 0x9e, 0x91, 0xde, 0xd7, 0x69, 0xef, 0x29, 0x3c, 0x43, 0x1f, 0x23, + 0x19, 0x69, 0xf1, 0x8d, 0x9f, 0x34, 0x56, 0x98, 0x85, 0xe0, 0x90, 0xf4, 0xaf, 0x30, 0xe4, 0xaf, + 0x86, 0xa1, 0x39, 0x56, 0x18, 0x9a, 0x8d, 0xbf, 0x67, 0x2f, 0xc4, 0x67, 0xac, 0x73, 0x29, 0xce, + 0x9d, 0xe2, 0x26, 0xfc, 0xbd, 0x8e, 0x97, 0x71, 0xf6, 0x7e, 0x18, 0x0a, 0xd8, 0xb1, 0x7c, 0x7b, + 0xf1, 0x3a, 0x81, 0xef, 0xb2, 0xae, 0x53, 0xc6, 0xa9, 0x7f, 0xa3, 0x8c, 0xa2, 0x7e, 0x9f, 0xaa, + 0xdf, 0xaf, 0x5d, 0xb6, 0xa1, 0x0a, 0x07, 0x0c, 0x85, 0x71, 0x1e, 0xcf, 0x7d, 0x8c, 0xcb, 0x88, + 0xa4, 0x7f, 0x87, 0xa1, 0xf2, 0xe3, 0x30, 0xf4, 0x25, 0x2c, 0xd3, 0x82, 0x29, 0x30, 0x74, 0xa7, + 0x82, 0xef, 0x5e, 0x81, 0xa1, 0xf9, 0x16, 0xfc, 0x9d, 0x0b, 0x43, 0xa1, 0x33, 0xfc, 0xbb, 0xf0, + 0x64, 0x18, 0x9a, 0x37, 0x80, 0xfd, 0xf5, 0x18, 0x5e, 0xf5, 0xf8, 0xbb, 0x1b, 0xd3, 0xda, 0x34, + 0x66, 0x1e, 0x65, 0xa4, 0x95, 0x47, 0xd2, 0xef, 0xb7, 0xea, 0x77, 0x39, 0xdd, 0x62, 0x72, 0x6c, + 0xfd, 0xd2, 0xda, 0x0e, 0xfb, 0x54, 0xc2, 0x19, 0x5c, 0x37, 0x07, 0x86, 0xee, 0x8e, 0xc1, 0xd0, + 0x97, 0xb1, 0xaf, 0xbf, 0x52, 0x7e, 0x4d, 0xba, 0x31, 0xb4, 0x78, 0x10, 0x86, 0xbe, 0xda, 0x0b, + 0x43, 0x53, 0xb0, 0x7f, 0xa7, 0xb8, 0xd2, 0x5f, 0xfd, 0x2c, 0x5a, 0xfe, 0x1f, 0xdb, 0xc3, 0x7f, + 0x31, 0x1c, 0x14, 0x36, 0xdc, 0x35, 0xf6, 0xb3, 0x44, 0xde, 0x7f, 0xa3, 0x2d, 0x85, 0xeb, 0xd5, + 0xe1, 0x13, 0xfa, 0x1d, 0xbe, 0x31, 0xce, 0xf7, 0xe8, 0x07, 0xb6, 0xbb, 0x3d, 0xdf, 0x1e, 0xff, + 0xa5, 0x3d, 0xe3, 0x9a, 0xf7, 0xdf, 0x1c, 0x6b, 0xbc, 0xb8, 0xf1, 0xdd, 0x25, 0x3f, 0xf8, 0xdc, + 0xf7, 0xea, 0x1f, 0xf9, 0xbe, 0xed, 0x77, 0xbd, 0x05, 0xdf, 0x3c, 0xb1, 0xfb, 0x89, 0x93, 0xbf, + 0x79, 0x77, 0xca, 0xb7, 0x8e, 0xbc, 0xd6, 0x3b, 0x7e, 0x57, 0x65, 0xde, 0xaa, 0x17, 0x3a, 0x7f, + 0xfe, 0xce, 0xee, 0x99, 0xe3, 0xfa, 0x7e, 0xf1, 0x99, 0x87, 0x3f, 0xf3, 0x13, 0x7b, 0x7d, 0x63, + 0xbf, 0x78, 0xe1, 0xcf, 0x3f, 0xfd, 0x7a, 0x68, 0xf5, 0x8b, 0x25, 0x6f, 0x4c, 0x7e, 0xfd, 0xe8, + 0xff, 0x69, 0xfe, 0xfd, 0xe9, 0xf7, 0x2e, 0x1e, 0xfd, 0xf1, 0x97, 0x7a, 0x5e, 0x5d, 0xf3, 0x9f, + 0x37, 0x36, 0x6d, 0x5d, 0x58, 0xbf, 0x7c, 0xdb, 0xc0, 0x95, 0xba, 0xcb, 0x2b, 0xd7, 0x35, 0xbc, + 0x7c, 0xce, 0x21, 0x2c, 0xfe, 0xe2, 0x12, 0x53, 0xd3, 0x6b, 0x43, 0x37, 0x7c, 0x61, 0xc9, 0x43, + 0xe6, 0x89, 0x7f, 0xb9, 0x7d, 0x85, 0x78, 0xa0, 0x72, 0x99, 0xfd, 0xae, 0xdf, 0x28, 0x25, 0xa7, + 0xff, 0x3d, 0xfa, 0xf5, 0xd6, 0xe2, 0x8c, 0xd3, 0x87, 0xe7, 0x19, 0x8f, 0xce, 0x3d, 0x32, 0x71, + 0xcd, 0x95, 0x1f, 0x58, 0x7e, 0xbc, 0xfc, 0x73, 0x3f, 0xde, 0x36, 0x14, 0xd8, 0xb1, 0xb5, 0xe9, + 0x77, 0x3f, 0x7b, 0xf9, 0xd8, 0x33, 0x7b, 0x2f, 0xfb, 0x0b, 0x8e, 0x37, 0xfd, 0xa1, 0xec, 0xcd, + 0xc5, 0xf7, 0x9e, 0x38, 0x36, 0xf1, 0xbf, 0x9f, 0x3e, 0xfc, 0x85, 0xaf, 0x38, 0x5f, 0xf3, 0x3d, + 0xf3, 0xa5, 0x37, 0x60, 0xf6, 0x81, 0xdf, 0x7e, 0x29, 0xfe, 0x8b, 0xc1, 0xbb, 0xb3, 0xa7, 0xee, + 0xbc, 0xf8, 0xe3, 0x85, 0x3f, 0xda, 0x7f, 0xeb, 0x7f, 0xef, 0x79, 0xe4, 0xdb, 0xbb, 0x7f, 0xfe, + 0x83, 0x1b, 0x5c, 0x86, 0xdd, 0xdf, 0xfb, 0x5a, 0x66, 0xaf, 0xf9, 0x25, 0xeb, 0x6b, 0x3b, 0x5e, + 0x98, 0xf0, 0xae, 0xec, 0x6d, 0xe9, 0xbc, 0xbf, 0x76, 0x69, 0xe5, 0xa4, 0x5f, 0xde, 0xfd, 0x99, + 0xa7, 0x77, 0xa9, 0x33, 0xbf, 0xd0, 0x7e, 0xa2, 0xa4, 0x4f, 0xf8, 0xdd, 0xd7, 0x4d, 0x5b, 0x8f, + 0x88, 0x7b, 0x3f, 0xfc, 0x8d, 0xdd, 0xfd, 0xf5, 0x17, 0xd6, 0x3c, 0x60, 0xda, 0xf5, 0xe3, 0x5b, + 0xfe, 0xef, 0x2f, 0x4e, 0xff, 0xe0, 0xcc, 0xee, 0xa3, 0x9f, 0xed, 0x18, 0xf7, 0xf2, 0xbf, 0xdf, + 0x00, 0x97, 0x0b, 0x1f, 0x1d, 0xbf, 0x6d, 0xc3, 0x5b, 0xb6, 0xad, 0x39, 0xf7, 0x35, 0x4e, 0xfc, + 0x99, 0xb9, 0xf9, 0x0b, 0x33, 0x1f, 0xae, 0x6f, 0xfa, 0xd6, 0xdb, 0x4b, 0x16, 0x0b, 0xcb, 0x97, + 0x7f, 0xe9, 0x62, 0x6e, 0xd3, 0xdd, 0x75, 0x6b, 0x1a, 0x7c, 0xc7, 0x2f, 0xd4, 0x41, 0x55, 0x93, + 0xe9, 0x91, 0xf7, 0x3f, 0x2d, 0xfc, 0xe0, 0x5f, 0xba, 0xcd, 0x17, 0x7f, 0xf9, 0x97, 0x1b, 0xf6, + 0x7f, 0xb9, 0xa1, 0xff, 0xb5, 0x97, 0xb2, 0x7e, 0xf2, 0x6e, 0xf5, 0x83, 0x2f, 0xee, 0x3e, 0x3b, + 0xfc, 0xd3, 0xde, 0xce, 0xba, 0xdf, 0x7f, 0xe6, 0xcd, 0x9b, 0x5e, 0x9f, 0x59, 0xb1, 0xfe, 0xd5, + 0xce, 0x3f, 0x7f, 0x7c, 0xb4, 0xb2, 0x61, 0xfe, 0x8e, 0xbb, 0x6b, 0x67, 0xff, 0xf8, 0x4b, 0xaf, + 0x7c, 0x7f, 0x2f, 0xb4, 0x1d, 0xfd, 0x99, 0xef, 0x54, 0xf8, 0xcd, 0x1f, 0x94, 0x7c, 0xe1, 0xf8, + 0x23, 0xbf, 0x7d, 0xe2, 0xf0, 0xfe, 0xe6, 0x57, 0x8f, 0x5d, 0xfc, 0xb8, 0x74, 0xd9, 0xbb, 0x8d, + 0x85, 0x2b, 0x5e, 0x1b, 0x7e, 0x36, 0xda, 0x5b, 0xfe, 0xba, 0xb2, 0x7b, 0x30, 0x68, 0x9c, 0x79, + 0xcf, 0x67, 0x33, 0x3e, 0xf3, 0xc7, 0xed, 0x96, 0xca, 0xaf, 0xfd, 0x7e, 0x62, 0xe7, 0xcb, 0xd5, + 0x99, 0x5f, 0x2f, 0x9e, 0x6e, 0x28, 0xd9, 0xfe, 0xe2, 0x04, 0xbb, 0xfd, 0x65, 0xab, 0xb8, 0xf6, + 0xcb, 0x4b, 0x7f, 0x3c, 0x4d, 0x6c, 0x59, 0xf3, 0xa3, 0x9f, 0xaa, 0x47, 0xc7, 0xbf, 0x72, 0xf7, + 0xe9, 0xff, 0x7b, 0xd7, 0x1b, 0x97, 0x6d, 0x33, 0x5e, 0x7b, 0x79, 0x6b, 0xff, 0xe0, 0x56, 0xe9, + 0x3f, 0x7f, 0xbb, 0x6d, 0xe7, 0x57, 0x7e, 0xf4, 0x85, 0x4f, 0xe5, 0xef, 0x9c, 0xd8, 0xf5, 0x93, + 0x9f, 0x2f, 0xbe, 0x7d, 0x60, 0x4f, 0xd3, 0xb3, 0xef, 0xef, 0xee, 0x11, 0xbf, 0xf3, 0x8b, 0x1f, + 0xed, 0xca, 0xd8, 0x75, 0xca, 0xda, 0xf6, 0xc2, 0x91, 0xef, 0x9c, 0xfd, 0xcd, 0xdc, 0x7f, 0xfa, + 0xee, 0x91, 0x6f, 0x3c, 0x6f, 0xfc, 0x9d, 0xf3, 0xa6, 0x7b, 0x4e, 0x64, 0xf7, 0xfc, 0x61, 0xc9, + 0x84, 0xac, 0x2d, 0xf5, 0xb7, 0xaf, 0x9e, 0xd8, 0xdc, 0x38, 0x67, 0x65, 0xe3, 0xa2, 0x6d, 0xa7, + 0x6d, 0xff, 0x3d, 0x61, 0xf3, 0x78, 0xed, 0xbb, 0x16, 0x78, 0x6e, 0xfa, 0xff, 0x19, 0xf7, 0xbd, + 0x17, 0xce, 0xdf, 0xb0, 0x39, 0x78, 0xbf, 0xf9, 0xfb, 0x47, 0xa6, 0x08, 0x17, 0x96, 0x2e, 0x33, + 0xed, 0x1b, 0xf9, 0x6b, 0xdd, 0x97, 0xff, 0x39, 0xde, 0x10, 0xfd, 0xf5, 0xcd, 0x4d, 0xb3, 0xbe, + 0xbe, 0x62, 0xb9, 0xe9, 0x9d, 0x91, 0xa3, 0x9f, 0x6e, 0x7f, 0xe0, 0xd5, 0xbc, 0x93, 0xf6, 0xd7, + 0x57, 0x2e, 0x8a, 0xfe, 0x3e, 0x7c, 0xe8, 0xf2, 0x4f, 0xdf, 0x6c, 0xd9, 0xf0, 0xe2, 0x87, 0x97, + 0x3f, 0xf5, 0x93, 0x17, 0x4b, 0x95, 0xfe, 0x0d, 0xbf, 0x39, 0x76, 0xec, 0xfb, 0x67, 0xfe, 0xed, + 0xf0, 0xe6, 0x55, 0x45, 0xc7, 0xf7, 0xed, 0xff, 0xe2, 0x9b, 0x17, 0x22, 0x87, 0x7f, 0x16, 0xfd, + 0xd3, 0x93, 0x7b, 0xbf, 0x1c, 0xbd, 0xe3, 0xc7, 0xa6, 0xdf, 0x87, 0x76, 0xcc, 0x9a, 0x77, 0x7c, + 0x62, 0xde, 0xeb, 0xcf, 0x5b, 0x3e, 0x5d, 0x39, 0x2b, 0x23, 0xfc, 0x51, 0x89, 0x71, 0xa5, 0xf2, + 0xa6, 0xf2, 0xe1, 0xaf, 0xb6, 0x45, 0xdf, 0xbc, 0xf3, 0xb6, 0x15, 0x1b, 0x3e, 0x2c, 0x5f, 0xf6, + 0xe2, 0x37, 0x7f, 0x7d, 0xf7, 0x8f, 0xd6, 0xef, 0x55, 0x7b, 0x26, 0x4f, 0x6b, 0x39, 0xf2, 0x78, + 0x64, 0xe9, 0xa9, 0x59, 0x87, 0xac, 0xdf, 0x78, 0xe4, 0x67, 0x13, 0xe6, 0x66, 0x48, 0x86, 0xec, + 0x9f, 0xde, 0x99, 0xe9, 0xf4, 0xfe, 0xc7, 0x9e, 0xdb, 0x5f, 0xdc, 0xf1, 0xf3, 0x09, 0xae, 0xbc, + 0x9d, 0x8b, 0x36, 0x2d, 0xfe, 0x51, 0xa3, 0x71, 0xdf, 0x6f, 0xb5, 0x1f, 0xfe, 0x78, 0xf0, 0xbf, + 0x6f, 0xf3, 0xbc, 0xf6, 0xbd, 0x07, 0xbf, 0xfa, 0xc6, 0x73, 0x9f, 0xf9, 0xd7, 0xfa, 0x7d, 0xfd, + 0xe7, 0x96, 0x5c, 0x70, 0xde, 0xdb, 0xf8, 0xfd, 0xc7, 0x0c, 0xcd, 0x9b, 0x2d, 0x8f, 0x8d, 0x37, + 0x3d, 0xf5, 0x9e, 0x6d, 0xd6, 0x1d, 0xad, 0xe3, 0xa2, 0x6b, 0x32, 0xe1, 0xcb, 0x37, 0x3e, 0xf2, + 0x8b, 0x70, 0xf7, 0xa9, 0xdd, 0x2b, 0x1d, 0xff, 0xf2, 0x42, 0xde, 0x73, 0xd6, 0x5d, 0x9f, 0x2e, + 0xda, 0x74, 0x64, 0xc3, 0xbf, 0xfe, 0xf1, 0x37, 0x2f, 0x4e, 0xec, 0x3c, 0xf1, 0xe1, 0x4f, 0x26, + 0xfc, 0xee, 0xcd, 0xa9, 0x6b, 0x5f, 0x3d, 0x72, 0xf4, 0x4f, 0x47, 0x4f, 0x05, 0x96, 0xfe, 0xfe, + 0x47, 0x97, 0x6e, 0x79, 0xbd, 0x67, 0x45, 0xd7, 0x8b, 0xd9, 0xff, 0xf5, 0xd1, 0x4f, 0x9d, 0x5f, + 0x6d, 0xe9, 0xff, 0xc6, 0x5b, 0x39, 0x3f, 0x99, 0xfb, 0x8d, 0x5e, 0xf3, 0xa2, 0xb7, 0xb5, 0x1b, + 0x1a, 0x63, 0xaa, 0xe9, 0xf6, 0x83, 0x93, 0x84, 0x09, 0x8b, 0x37, 0x36, 0x7c, 0x4f, 0xbb, 0x54, + 0xf7, 0xdc, 0xb2, 0xbb, 0x97, 0x6b, 0xaf, 0x66, 0x37, 0xfd, 0x77, 0xd9, 0xe3, 0x96, 0x53, 0x1d, + 0xbf, 0x9d, 0x78, 0xe4, 0x83, 0x2a, 0x63, 0xcf, 0x82, 0x7f, 0xca, 0xf8, 0xd1, 0xbe, 0x1f, 0x46, + 0x9d, 0x77, 0x0f, 0x2a, 0xd9, 0x7f, 0xad, 0x58, 0x36, 0x77, 0xfe, 0x9c, 0x15, 0xdf, 0xf8, 0xdd, + 0x73, 0x87, 0x1b, 0xc3, 0xaf, 0x1d, 0x5b, 0x74, 0xc2, 0xff, 0xe6, 0x04, 0xf5, 0xf3, 0xc7, 0x6f, + 0x3f, 0xff, 0xd4, 0xde, 0xe7, 0x6a, 0xde, 0xf8, 0xd9, 0xf7, 0xfe, 0x63, 0xee, 0x8e, 0xff, 0xbe, + 0xcf, 0xf7, 0x63, 0xed, 0xdd, 0x9f, 0xff, 0xfc, 0x42, 0xee, 0xc1, 0x3d, 0xfb, 0xd6, 0xd5, 0xfc, + 0x68, 0xb3, 0x4f, 0xde, 0xf9, 0xfd, 0x27, 0xf7, 0x0c, 0xce, 0xca, 0xfc, 0xaf, 0xdf, 0x9a, 0x36, + 0x2f, 0x78, 0xe3, 0xcb, 0x33, 0x6e, 0x7d, 0x2d, 0xfa, 0x8b, 0x1f, 0xa9, 0x2b, 0xf3, 0xf7, 0xdf, + 0x1d, 0xde, 0xfd, 0xcf, 0x4b, 0x3f, 0x6d, 0x70, 0xb7, 0xe4, 0x6d, 0xd9, 0x39, 0xe1, 0xc5, 0xcf, + 0xff, 0xca, 0xba, 0xe1, 0xdf, 0x16, 0x65, 0xbe, 0xf9, 0xe9, 0x99, 0x86, 0x0f, 0x1f, 0x4a, 0x3f, + 0x76, 0xb8, 0xde, 0x73, 0x75, 0xe9, 0xcc, 0xb2, 0x40, 0x84, 0x6e, 0xf3, 0xf1, 0x16, 0x09, 0x06, + 0xa0, 0xac, 0xbc, 0x42, 0xac, 0x2e, 0x89, 0x2c, 0x80, 0xb9, 0xd5, 0x0b, 0xa0, 0x7c, 0x59, 0x53, + 0x43, 0xcd, 0x37, 0xef, 0x69, 0x6b, 0x68, 0xce, 0x6f, 0x6d, 0xb8, 0xa7, 0xe5, 0xde, 0xd6, 0x25, + 0x0d, 0xe9, 0xf2, 0xfc, 0x69, 0xb3, 0x53, 0xcf, 0xf2, 0x89, 0x74, 0x9b, 0xe7, 0x84, 0x5c, 0x9f, + 0x74, 0x1d, 0xc6, 0x4a, 0xf5, 0x6f, 0x5e, 0x9a, 0x26, 0xb3, 0xc7, 0x77, 0xaa, 0xdd, 0x9c, 0x8f, + 0x94, 0xce, 0x16, 0x35, 0x8b, 0xe4, 0x25, 0xe3, 0x83, 0x74, 0x8d, 0x87, 0xd1, 0xd2, 0xfe, 0x9b, + 0x63, 0x7f, 0x8f, 0xb4, 0x5f, 0x2c, 0x90, 0xab, 0x58, 0xba, 0xab, 0xe4, 0x7c, 0x70, 0x26, 0x52, + 0xe0, 0x79, 0x4b, 0x87, 0x46, 0xa5, 0xb0, 0x58, 0x4a, 0xe1, 0xd2, 0x18, 0x53, 0x52, 0xfa, 0x9b, + 0x7b, 0xaf, 0x96, 0xd2, 0xdf, 0xbc, 0xf5, 0x1f, 0x93, 0xd2, 0x2b, 0x66, 0x70, 0x93, 0x4c, 0x47, + 0x47, 0xcf, 0x30, 0x8e, 0xb6, 0xd3, 0xc6, 0xfd, 0xb7, 0xf3, 0x93, 0xcf, 0x21, 0x6e, 0x7e, 0xfc, + 0xfa, 0xe7, 0x10, 0x37, 0xf7, 0x8d, 0x3d, 0x87, 0x90, 0x8e, 0x7f, 0xd2, 0x39, 0x04, 0xd6, 0x7a, + 0xcc, 0x39, 0xc4, 0xff, 0x46, 0x0d, 0x47, 0x9f, 0x43, 0x70, 0x5d, 0xe6, 0xd1, 0xd6, 0xd8, 0xd0, + 0x18, 0x2d, 0xc6, 0x1d, 0xc9, 0xd0, 0xa7, 0x1f, 0x07, 0x29, 0xd4, 0x08, 0x6e, 0x4a, 0xd7, 0xd0, + 0x84, 0xbb, 0xf5, 0xa2, 0x94, 0x65, 0x35, 0xc9, 0x0e, 0xa4, 0x58, 0x2c, 0x89, 0x05, 0x74, 0xe5, + 0x38, 0x7e, 0xa7, 0xd6, 0x6e, 0xe4, 0x96, 0x8f, 0xc9, 0x71, 0xc0, 0x52, 0xc7, 0x2f, 0xdd, 0x2f, + 0x9c, 0x85, 0x02, 0xd5, 0x2d, 0x35, 0x82, 0x3a, 0x06, 0x3f, 0xa5, 0x0e, 0xc3, 0x1a, 0x39, 0xaa, + 0x51, 0x2a, 0x4c, 0x31, 0x72, 0x3f, 0x30, 0x09, 0x5b, 0x5c, 0x86, 0x87, 0x32, 0xde, 0x25, 0xc8, + 0x36, 0xd2, 0x77, 0x13, 0x16, 0x93, 0x64, 0xc8, 0xbe, 0x69, 0x2c, 0xf6, 0x1d, 0xdf, 0x0f, 0x0a, + 0xfe, 0x98, 0xbd, 0x35, 0x2d, 0x14, 0xcb, 0x95, 0x85, 0xa1, 0xd9, 0xad, 0x06, 0x86, 0x30, 0x45, + 0x9e, 0x74, 0xb2, 0x62, 0x19, 0x53, 0xfd, 0x60, 0x75, 0xe2, 0x53, 0xb2, 0xfc, 0xaa, 0x33, 0x4e, + 0xbf, 0xc5, 0x1a, 0x1d, 0x53, 0xe6, 0x58, 0x2c, 0x55, 0xdb, 0xd6, 0xe9, 0x7e, 0xe6, 0xd5, 0x37, + 0x8b, 0x74, 0xc8, 0x76, 0xf0, 0xf7, 0x4f, 0x8a, 0xa5, 0xa2, 0x31, 0xa5, 0x11, 0x32, 0x12, 0xc4, + 0xde, 0x5b, 0x15, 0x22, 0x4f, 0x3e, 0x18, 0x8f, 0xed, 0x7b, 0x49, 0x73, 0x64, 0xc8, 0x1b, 0xd3, + 0x35, 0x13, 0xab, 0xad, 0x24, 0xf9, 0x9a, 0x13, 0x0d, 0x89, 0x6e, 0x90, 0x4e, 0xf7, 0x62, 0xa9, + 0xca, 0xa7, 0x35, 0x42, 0x01, 0x54, 0xe1, 0xdf, 0x59, 0xb0, 0x50, 0x72, 0x83, 0xbb, 0xa6, 0x6b, + 0x5a, 0x09, 0x34, 0xe2, 0xef, 0xd9, 0xd0, 0x1a, 0xb3, 0x62, 0x8c, 0x00, 0xf3, 0x6e, 0x1c, 0xb1, + 0x17, 0x83, 0x03, 0x7f, 0xad, 0xd0, 0x91, 0xef, 0x87, 0xbc, 0x8f, 0x56, 0x6f, 0x54, 0x6a, 0x13, + 0xe5, 0x49, 0x96, 0x60, 0x0e, 0x85, 0x88, 0x69, 0x21, 0x57, 0x9a, 0x58, 0x48, 0x75, 0xf2, 0xb7, + 0x22, 0x51, 0xdd, 0xed, 0xe9, 0x08, 0x51, 0xbc, 0x25, 0xc7, 0xea, 0xb9, 0x57, 0x26, 0x6c, 0x0b, + 0x2a, 0xc4, 0x65, 0x30, 0x99, 0xb5, 0x08, 0x59, 0xbd, 0x52, 0xea, 0x76, 0xf6, 0xcb, 0xec, 0x1d, + 0xef, 0xb5, 0xd1, 0x99, 0xff, 0xff, 0x3f, 0xa5, 0x48, 0xf5, 0xbb, 0x38, 0x5b, 0xae, 0x90, 0x6d, + 0x15, 0x97, 0x69, 0x34, 0x2a, 0xed, 0xd4, 0x02, 0xa4, 0x31, 0xa5, 0x63, 0x8f, 0xab, 0xb1, 0xc9, + 0x63, 0xc7, 0x80, 0x48, 0xf8, 0x87, 0x93, 0xa3, 0x95, 0x84, 0x66, 0x38, 0xb5, 0x02, 0xac, 0x81, + 0x6d, 0x60, 0x26, 0x7c, 0x6f, 0x7c, 0xa6, 0x1e, 0x9c, 0x2c, 0xd5, 0x88, 0x0f, 0xd3, 0x7d, 0x6a, + 0x0d, 0xf5, 0xb5, 0x9e, 0x9e, 0xb5, 0xaa, 0x4f, 0x86, 0xea, 0x8d, 0x51, 0x89, 0xf0, 0x7d, 0x62, + 0x93, 0xd3, 0xb4, 0x74, 0xb6, 0xc3, 0x64, 0xc5, 0xea, 0xac, 0x14, 0x17, 0x33, 0x7d, 0xa6, 0x38, + 0xe1, 0xbf, 0x8d, 0xb6, 0x27, 0x4f, 0xb6, 0x8f, 0xfb, 0xda, 0xed, 0x73, 0xad, 0x14, 0x13, 0xb3, + 0x83, 0xbe, 0x8d, 0xe5, 0x97, 0xc3, 0xa8, 0xf6, 0x75, 0x8c, 0xfe, 0x3e, 0xd1, 0x0e, 0xbe, 0x02, + 0x6c, 0x07, 0xc1, 0x69, 0x2b, 0x65, 0x2d, 0xc1, 0x50, 0x8d, 0xea, 0x94, 0x85, 0x3b, 0xfb, 0xd4, + 0x48, 0x78, 0x1b, 0xe4, 0x44, 0x17, 0x5e, 0xdd, 0x12, 0xac, 0x1d, 0xe6, 0x88, 0x7e, 0xb1, 0x7b, + 0x54, 0x7d, 0x33, 0x30, 0x8f, 0x9c, 0xbf, 0x51, 0xdf, 0x0a, 0xf1, 0x2b, 0xac, 0xbe, 0x8f, 0xf3, + 0xfa, 0x72, 0x4c, 0x22, 0xaa, 0x6f, 0xb2, 0xb6, 0xb9, 0x7a, 0x69, 0x73, 0xd9, 0x2f, 0x1b, 0xb3, + 0xb0, 0xb3, 0xe9, 0xda, 0xec, 0xa3, 0x6c, 0xe8, 0xf1, 0x0b, 0x2e, 0x63, 0x9a, 0x4c, 0x5a, 0x22, + 0xfa, 0x57, 0xe2, 0xb5, 0xea, 0xc8, 0x74, 0x70, 0xe6, 0x38, 0x2b, 0xbc, 0x61, 0x70, 0xc8, 0x55, + 0xc9, 0x9c, 0x9a, 0x08, 0xdb, 0x49, 0xa9, 0x16, 0x9b, 0x40, 0xe6, 0xb6, 0x31, 0xa4, 0x77, 0xe3, + 0xb5, 0x24, 0x6d, 0x1b, 0x66, 0x89, 0x37, 0x31, 0x8f, 0x33, 0x19, 0x51, 0x67, 0x9d, 0x85, 0x3d, + 0x09, 0xaa, 0xa4, 0xd8, 0x4c, 0xf1, 0xfb, 0x34, 0xed, 0x24, 0xc3, 0x71, 0x76, 0x28, 0x56, 0xb2, + 0xbd, 0x91, 0x96, 0x63, 0xfe, 0x0f, 0x2b, 0x26, 0x7a, 0x0e, 0xf4, 0x31, 0x9c, 0x39, 0xa4, 0x3c, + 0x74, 0x32, 0x44, 0xd2, 0x4a, 0xf5, 0x7b, 0x09, 0x9b, 0xed, 0x4e, 0xa8, 0xdd, 0x78, 0xdd, 0xfa, + 0xba, 0xae, 0x59, 0xdf, 0x24, 0x9d, 0x62, 0xb8, 0x64, 0xbc, 0x0e, 0xa2, 0xbb, 0x2a, 0x59, 0x77, + 0x7b, 0xa2, 0xee, 0x58, 0x17, 0xf2, 0x7c, 0xb2, 0xf4, 0xdb, 0x87, 0xf0, 0x6f, 0x1d, 0xd3, 0x85, + 0xcd, 0x62, 0x92, 0xf4, 0x89, 0xec, 0x54, 0xc2, 0xca, 0xfc, 0x83, 0xdc, 0x25, 0x66, 0xb3, 0x7a, + 0x4c, 0x45, 0x2a, 0xb3, 0xa1, 0xae, 0x40, 0xaf, 0x5d, 0x7b, 0x9d, 0x83, 0xd7, 0x2e, 0x5a, 0xc9, + 0xee, 0x06, 0xf2, 0xa6, 0xa2, 0x84, 0xd9, 0xb3, 0x31, 0x5a, 0xcf, 0xee, 0x22, 0x86, 0x89, 0x4a, + 0x1d, 0x7b, 0x96, 0xeb, 0xac, 0xec, 0x7e, 0x6b, 0x7d, 0x48, 0x01, 0x58, 0xcf, 0x9e, 0xa7, 0x31, + 0xff, 0x9d, 0xf4, 0xe4, 0x54, 0x01, 0x3e, 0xc2, 0xf0, 0x3d, 0x62, 0xa9, 0xb4, 0x02, 0x8c, 0x31, + 0x51, 0x31, 0x8b, 0x41, 0xf6, 0x94, 0x9a, 0xa7, 0x7d, 0x0a, 0x79, 0x60, 0xc5, 0xb0, 0x00, 0xf6, + 0x18, 0x3e, 0xbf, 0xc4, 0x9e, 0x29, 0x74, 0xaf, 0xb8, 0x5c, 0xaf, 0x99, 0xa8, 0xd7, 0x8c, 0xe8, + 0xb5, 0xed, 0x27, 0x07, 0x54, 0x13, 0xc5, 0x51, 0x72, 0x22, 0x71, 0xb1, 0x44, 0xb2, 0xab, 0xc8, + 0x13, 0x3c, 0x7c, 0xe0, 0x27, 0x07, 0x08, 0xa1, 0x8b, 0xc2, 0x63, 0x9a, 0x18, 0x57, 0x56, 0x89, + 0x79, 0x60, 0x89, 0xe6, 0x12, 0x26, 0x87, 0x17, 0x98, 0xc5, 0x62, 0xa0, 0xaa, 0x8f, 0xa5, 0xec, + 0x82, 0x5b, 0x58, 0x7b, 0x2e, 0x66, 0xbf, 0xec, 0xca, 0x02, 0xcf, 0x0a, 0xa6, 0xe1, 0xae, 0xe2, + 0x55, 0x45, 0xd2, 0xc0, 0xfc, 0xa7, 0x61, 0x21, 0xc9, 0x05, 0xc9, 0x37, 0xbd, 0xfe, 0xae, 0x0a, + 0xaf, 0x85, 0x14, 0x22, 0xe5, 0x41, 0x63, 0x84, 0xf9, 0x5a, 0xa1, 0x5f, 0x35, 0x71, 0x4f, 0x5c, + 0x71, 0x90, 0x7c, 0xf1, 0x0b, 0xf5, 0x72, 0x31, 0xae, 0x98, 0xe6, 0x76, 0xe9, 0xd8, 0x83, 0x1d, + 0x81, 0xe3, 0x0f, 0x62, 0xbf, 0x8b, 0x9e, 0x66, 0xde, 0xef, 0x1e, 0xea, 0x77, 0x18, 0x59, 0x49, + 0x32, 0xde, 0x51, 0x7d, 0x3e, 0xba, 0x6e, 0xd4, 0xef, 0xbe, 0x4f, 0xee, 0x77, 0x1a, 0x27, 0x48, + 0xc3, 0x86, 0x26, 0xeb, 0xb3, 0x97, 0x7d, 0xe5, 0x82, 0xc2, 0x51, 0xef, 0x72, 0x47, 0xbd, 0x2b, + 0xe2, 0xe3, 0x85, 0x50, 0x26, 0x92, 0xa3, 0xcc, 0xa5, 0xe7, 0x56, 0xcc, 0x67, 0x0c, 0xe5, 0x45, + 0xda, 0xb5, 0x7c, 0xb6, 0x92, 0x6d, 0xab, 0x4a, 0xbe, 0xb2, 0x07, 0x39, 0x0e, 0x25, 0xa1, 0x4e, + 0x24, 0xf4, 0x52, 0xaf, 0x1a, 0xa7, 0xfe, 0xbf, 0x67, 0x5e, 0xd2, 0x3b, 0xb2, 0x89, 0xe5, 0x33, + 0x30, 0x31, 0xff, 0x18, 0xfa, 0xa5, 0x45, 0xae, 0x72, 0x61, 0x0c, 0xc5, 0x4e, 0x88, 0x86, 0x98, + 0x7e, 0x12, 0x6d, 0x43, 0x9c, 0x9f, 0x98, 0x35, 0xd8, 0x76, 0xa7, 0x12, 0xb3, 0x85, 0xb4, 0xfe, + 0xe8, 0x64, 0xa1, 0xe2, 0x03, 0x28, 0x4a, 0xd7, 0x35, 0x44, 0x3a, 0xa5, 0xaa, 0xd9, 0x8c, 0x57, + 0xe8, 0x1c, 0xcb, 0x2b, 0xe8, 0xe8, 0xc0, 0x18, 0x23, 0xea, 0x10, 0x2b, 0x49, 0x9e, 0xc9, 0xe6, + 0x35, 0xae, 0x6f, 0x4b, 0x9e, 0xc0, 0x1e, 0x5e, 0x18, 0x5e, 0x0e, 0x59, 0x6a, 0x80, 0xec, 0xf3, + 0x89, 0x9a, 0x11, 0xbe, 0x9e, 0x6a, 0x4f, 0xd7, 0x37, 0x8c, 0x45, 0x95, 0x82, 0x5b, 0x97, 0x83, + 0x05, 0x2c, 0x37, 0x2e, 0x87, 0xf1, 0x30, 0xfe, 0xd6, 0x79, 0x60, 0xfb, 0x3c, 0x71, 0x69, 0x59, + 0xc4, 0x6f, 0xa4, 0x30, 0x7e, 0x47, 0x7d, 0x03, 0x09, 0x2d, 0x45, 0x9c, 0xa5, 0x55, 0xac, 0x5c, + 0xbd, 0xe9, 0xe5, 0x92, 0x01, 0x57, 0x7a, 0x35, 0xba, 0xaa, 0xe2, 0xbd, 0xd1, 0xf5, 0x90, 0x97, + 0x83, 0xbb, 0x03, 0xc8, 0x6e, 0x60, 0xc9, 0x13, 0x8a, 0xdf, 0xeb, 0x26, 0xd4, 0x5e, 0x7e, 0x06, + 0xa2, 0xa6, 0xa1, 0x2c, 0x6a, 0xb4, 0xc2, 0xd8, 0x70, 0x35, 0xb4, 0x79, 0x49, 0x47, 0x1d, 0x57, + 0xa9, 0xd1, 0x16, 0xf8, 0xb5, 0x1b, 0x15, 0x83, 0x0b, 0xe4, 0x52, 0x67, 0x96, 0xba, 0x37, 0xbd, + 0x54, 0x69, 0x08, 0x2b, 0x75, 0x22, 0xf9, 0x52, 0x5f, 0xc9, 0x4f, 0x1d, 0x88, 0xee, 0xcf, 0xc9, + 0x27, 0x7c, 0x56, 0x0f, 0xb8, 0x04, 0xb7, 0x81, 0xa3, 0x48, 0xf8, 0x16, 0xba, 0xfd, 0xdf, 0x3e, + 0x84, 0x5c, 0x44, 0x39, 0x9d, 0x21, 0x79, 0x21, 0xf0, 0x43, 0xd1, 0x2a, 0x4d, 0x3c, 0xb2, 0xe6, + 0xf0, 0xea, 0x04, 0x86, 0xe3, 0x9c, 0xb6, 0xc4, 0xaa, 0xfc, 0xd9, 0xa5, 0xd8, 0x3e, 0xb9, 0xb7, + 0x96, 0x83, 0x7c, 0x6b, 0x29, 0xb8, 0x6e, 0x2d, 0x01, 0xcf, 0xad, 0x7e, 0x1c, 0xff, 0x89, 0xdc, + 0xc8, 0xbb, 0xa0, 0xa3, 0xf2, 0xcd, 0xb6, 0xce, 0xff, 0xa5, 0xbc, 0x6c, 0x7f, 0x6f, 0x5e, 0x59, + 0x5e, 0x18, 0x57, 0x82, 0xad, 0x39, 0xb9, 0x52, 0x31, 0xef, 0xb0, 0x47, 0x2d, 0x25, 0x67, 0x80, + 0x6c, 0x20, 0x0c, 0xea, 0x85, 0x84, 0xbe, 0xf4, 0x67, 0x3b, 0x21, 0x1b, 0x53, 0x23, 0x7b, 0x3c, + 0x57, 0x4c, 0xc4, 0x94, 0xe4, 0x54, 0x4a, 0xba, 0x26, 0xcc, 0x79, 0xc6, 0x1d, 0xb4, 0x80, 0x87, + 0x4a, 0xe0, 0xc4, 0x12, 0x30, 0xec, 0xdd, 0x7a, 0xec, 0x9d, 0x46, 0xbc, 0xaa, 0xaa, 0xb6, 0x20, + 0xc5, 0xd8, 0xce, 0x28, 0x06, 0xa1, 0xf0, 0x62, 0x1d, 0xc8, 0x97, 0x55, 0xdb, 0xf8, 0xd3, 0x4f, + 0xb1, 0xb2, 0x6f, 0x61, 0x98, 0xba, 0x48, 0x0a, 0x97, 0x34, 0x06, 0x9e, 0x87, 0x1c, 0xbc, 0x1c, + 0x9f, 0xef, 0xf4, 0x03, 0xe4, 0xd2, 0xca, 0x30, 0x9d, 0x50, 0xb2, 0xed, 0x38, 0x16, 0xe4, 0x34, + 0x4b, 0x8a, 0x22, 0xec, 0xed, 0x39, 0xa4, 0xf9, 0x20, 0x41, 0x4d, 0x97, 0xa3, 0x18, 0x6e, 0xd8, + 0xd9, 0xd5, 0x90, 0xdf, 0x8f, 0xdf, 0xaa, 0x2e, 0xb2, 0x85, 0x52, 0xa6, 0x58, 0xfd, 0x03, 0xa0, + 0x92, 0xe5, 0x4d, 0xd6, 0xad, 0x9d, 0x00, 0x03, 0xc0, 0x3c, 0x1c, 0xf0, 0x67, 0x01, 0xac, 0xbe, + 0x1c, 0xf5, 0x0d, 0xe2, 0x1d, 0xf8, 0x39, 0x62, 0x02, 0xcb, 0xa2, 0x8d, 0x61, 0x56, 0x7c, 0xa1, + 0x5e, 0xc9, 0xc5, 0x32, 0xab, 0x78, 0x2d, 0xac, 0xda, 0xcc, 0xca, 0x5d, 0xc5, 0x11, 0x91, 0x8f, + 0xc6, 0xc9, 0x8e, 0x81, 0x9d, 0xfe, 0xbc, 0x41, 0x6b, 0x31, 0x69, 0xf7, 0x7a, 0xc9, 0x0f, 0xa2, + 0x39, 0x36, 0xa5, 0x1c, 0x38, 0x5a, 0x1f, 0xb5, 0xe4, 0xa7, 0x77, 0xc6, 0xc0, 0xee, 0xcb, 0x81, + 0x04, 0xba, 0x80, 0xb3, 0x25, 0xe5, 0x33, 0x88, 0xb4, 0xa3, 0x89, 0x4e, 0x32, 0x3a, 0xaa, 0xe3, + 0xcc, 0xca, 0xc0, 0x6c, 0x4a, 0x71, 0x8e, 0xe1, 0x7c, 0x79, 0x0f, 0x02, 0xa5, 0x67, 0x21, 0x90, + 0x4e, 0xfb, 0x19, 0x32, 0xb3, 0x83, 0x79, 0x40, 0xe2, 0xf6, 0x3c, 0x56, 0x7c, 0x4e, 0x20, 0x6a, + 0xf8, 0x18, 0x82, 0x78, 0x95, 0x8c, 0xa5, 0xfd, 0xc4, 0x78, 0x66, 0x16, 0x6f, 0x61, 0x9b, 0x10, + 0x70, 0xc3, 0x9c, 0xc4, 0x28, 0x22, 0xfb, 0x55, 0xe4, 0x71, 0xab, 0xa0, 0x00, 0xff, 0x2e, 0x84, + 0x59, 0x15, 0x1c, 0x17, 0x9a, 0xbe, 0xc2, 0x3e, 0x61, 0xf8, 0xd5, 0xee, 0x69, 0x01, 0xc8, 0xc7, + 0xb7, 0xad, 0xe4, 0x33, 0x17, 0x53, 0xc6, 0x70, 0xa2, 0x18, 0x73, 0xff, 0x6c, 0xd6, 0xb0, 0xd4, + 0x8d, 0xb1, 0x09, 0xfd, 0xdb, 0x21, 0xd0, 0x40, 0x76, 0x49, 0x8c, 0x4b, 0xe6, 0x18, 0x05, 0xcc, + 0x62, 0x1f, 0xdb, 0xa5, 0xd5, 0x2e, 0x76, 0x65, 0x21, 0x2f, 0x84, 0xbc, 0xbe, 0x1d, 0xb9, 0x7c, + 0xf2, 0x33, 0x49, 0x72, 0xb8, 0xc2, 0xa9, 0x9d, 0xc8, 0x11, 0x8c, 0x40, 0x91, 0x35, 0x4e, 0x92, + 0xf2, 0x68, 0x76, 0x9d, 0xd5, 0x14, 0xff, 0x59, 0xff, 0xb3, 0x80, 0x1c, 0x42, 0x8e, 0x62, 0xb6, + 0xc6, 0x49, 0x6a, 0xae, 0xda, 0x62, 0x37, 0x8a, 0x71, 0xb2, 0x32, 0x80, 0x1c, 0xbc, 0x2a, 0xf5, + 0x33, 0x2f, 0xa4, 0xbc, 0x98, 0xb2, 0xd5, 0x83, 0xfd, 0x95, 0x38, 0x21, 0xfb, 0xe2, 0x87, 0x1f, + 0x1e, 0x62, 0xe8, 0x34, 0x5e, 0x7b, 0xa5, 0xb3, 0xc5, 0x5e, 0xed, 0xed, 0xa4, 0x55, 0xda, 0x5e, + 0x54, 0xf2, 0xa1, 0x3d, 0x54, 0x72, 0x46, 0x7b, 0xc5, 0x1b, 0xb2, 0x17, 0x07, 0x9e, 0xb7, 0xfb, + 0xf1, 0x0a, 0xe2, 0x98, 0x61, 0x35, 0xa7, 0xf3, 0x74, 0x3b, 0xd4, 0x2d, 0x10, 0xe7, 0x95, 0x7e, + 0x08, 0xd9, 0xad, 0xc0, 0x3d, 0xed, 0x6a, 0x8d, 0xd8, 0x6a, 0x7e, 0x6b, 0xcb, 0x9d, 0xdb, 0x0d, + 0x0e, 0xb5, 0x28, 0xfc, 0x34, 0xee, 0xa8, 0x0b, 0xa4, 0x79, 0x65, 0x1f, 0xda, 0x8b, 0xd8, 0xdb, + 0x27, 0x69, 0xad, 0xa5, 0x95, 0x28, 0x66, 0xe8, 0xef, 0x53, 0x73, 0xec, 0x5e, 0x7b, 0xb6, 0x15, + 0x20, 0x33, 0x9a, 0x85, 0x7f, 0x6f, 0x48, 0x20, 0x0c, 0x2a, 0xa6, 0x84, 0xdf, 0xcc, 0x4a, 0xeb, + 0x17, 0x3f, 0xb4, 0x17, 0x26, 0x4f, 0x95, 0x1d, 0x48, 0x9d, 0x78, 0xa9, 0x07, 0xb9, 0x37, 0x73, + 0x5c, 0x77, 0x6d, 0x38, 0xca, 0xa6, 0xcc, 0x1d, 0xd2, 0x5c, 0xb8, 0x1b, 0xd5, 0xc3, 0xec, 0x9b, + 0x90, 0xf2, 0xd2, 0x5e, 0x33, 0x27, 0x71, 0x5e, 0x8c, 0xbb, 0x71, 0x2f, 0x38, 0x70, 0x14, 0xe5, + 0x94, 0x0d, 0x69, 0x3b, 0x15, 0x33, 0xf3, 0x6b, 0x81, 0x2b, 0x2b, 0x96, 0x66, 0x72, 0x6d, 0xd2, + 0xae, 0x6c, 0xe4, 0x12, 0x59, 0xa5, 0xf3, 0x7d, 0x32, 0x59, 0x90, 0x50, 0x39, 0xaf, 0xc5, 0x79, + 0xf3, 0xf3, 0x4d, 0x1f, 0x59, 0xbf, 0x30, 0xf4, 0x96, 0x74, 0xdc, 0x1a, 0x6f, 0x00, 0x1c, 0xde, + 0x52, 0xb0, 0x57, 0xbe, 0xe9, 0xb7, 0x2a, 0xa0, 0x85, 0xc8, 0x2a, 0xc2, 0xda, 0x47, 0xad, 0xa9, + 0x12, 0xdf, 0x64, 0x64, 0xad, 0xff, 0x14, 0x2c, 0x24, 0x9c, 0x2c, 0x26, 0x9b, 0x60, 0x96, 0x25, + 0x44, 0x23, 0xa4, 0x65, 0x30, 0x45, 0xb4, 0xeb, 0x9c, 0x8d, 0xc4, 0xf9, 0x9a, 0xa8, 0xcc, 0xf9, + 0x25, 0xd5, 0x47, 0xf6, 0x3b, 0x8e, 0x87, 0x29, 0x85, 0xdb, 0x38, 0x42, 0x39, 0xe3, 0x53, 0x44, + 0x42, 0x43, 0x65, 0xe9, 0x8a, 0x33, 0xc0, 0x34, 0xf8, 0x14, 0x58, 0x6a, 0xe2, 0x62, 0x3c, 0xb1, + 0x6b, 0xd5, 0xd1, 0xca, 0x75, 0x8d, 0x0b, 0x77, 0x23, 0x4c, 0x29, 0xc3, 0x79, 0x41, 0xbb, 0x0f, + 0x2f, 0xa1, 0xa4, 0x0d, 0xdd, 0xb6, 0x4d, 0xf1, 0xeb, 0x39, 0x1a, 0xa2, 0x16, 0x3d, 0xa7, 0x7c, + 0xc5, 0xc1, 0xca, 0x19, 0x1e, 0xc5, 0x3b, 0xe5, 0xe8, 0x78, 0x92, 0xf6, 0xc9, 0x84, 0x76, 0xbe, + 0x05, 0xdb, 0x8f, 0xb7, 0xb0, 0x15, 0xe9, 0x8b, 0x8c, 0xf5, 0x5f, 0xc6, 0x57, 0x51, 0xc2, 0xbb, + 0x54, 0x9f, 0x49, 0x62, 0x40, 0x9c, 0xa7, 0x13, 0x54, 0xb7, 0x17, 0xfc, 0xd8, 0xf2, 0xc9, 0x71, + 0x73, 0x9d, 0x7d, 0x6e, 0x2b, 0xe3, 0x68, 0x97, 0x81, 0xd1, 0x35, 0xbe, 0x7a, 0xf5, 0xee, 0x5e, + 0xd5, 0x77, 0x53, 0x27, 0xdc, 0x29, 0x8c, 0xdc, 0xd4, 0xa9, 0x6d, 0x17, 0xb4, 0xc4, 0xb7, 0xe2, + 0x3c, 0x29, 0xcc, 0x46, 0x1a, 0x59, 0x8e, 0xd5, 0x87, 0xe3, 0x0b, 0x7f, 0x15, 0xea, 0x09, 0xfd, + 0x2a, 0xd8, 0x83, 0xfc, 0x67, 0x36, 0x52, 0xed, 0x29, 0x81, 0xa7, 0xc0, 0xc0, 0x3c, 0xae, 0x21, + 0x55, 0x28, 0x3d, 0x2b, 0xbc, 0x88, 0xfc, 0x46, 0x21, 0x61, 0x06, 0xf8, 0x77, 0xe0, 0xaf, 0x57, + 0x48, 0x6b, 0x4d, 0x31, 0xe0, 0x9a, 0x8f, 0x31, 0xdd, 0x84, 0x49, 0xa1, 0x82, 0x2f, 0xdf, 0x85, + 0x33, 0xdf, 0x85, 0xd4, 0x24, 0x1f, 0x0c, 0xde, 0x71, 0x38, 0x3f, 0x43, 0xc8, 0xcb, 0xe0, 0x0c, + 0xc5, 0x5e, 0xf1, 0x49, 0x2e, 0xe2, 0xc2, 0x36, 0x3d, 0x0f, 0x85, 0x9c, 0xc6, 0x32, 0x3f, 0x5c, + 0x5e, 0x28, 0xf2, 0x8e, 0x63, 0xcf, 0xdd, 0x69, 0x61, 0x7e, 0xef, 0x04, 0xb2, 0x7f, 0x0d, 0xb8, + 0x85, 0x17, 0x6f, 0x5a, 0x28, 0xec, 0xa3, 0xd5, 0x61, 0xf7, 0x43, 0x51, 0x1f, 0x72, 0xe7, 0x53, + 0x30, 0x75, 0x43, 0x92, 0xb7, 0xdb, 0x92, 0xe0, 0xed, 0x36, 0x3d, 0x8d, 0xf4, 0x51, 0xa7, 0xdc, + 0x7d, 0xdd, 0x58, 0xd7, 0x4c, 0xe1, 0x88, 0x62, 0xc6, 0xef, 0x8f, 0xc4, 0xb0, 0x7e, 0x81, 0x1f, + 0xd2, 0x08, 0x25, 0xcb, 0x60, 0xef, 0x04, 0xa9, 0xbc, 0xea, 0x61, 0x0c, 0x7f, 0xe5, 0xfa, 0xed, + 0x21, 0x63, 0xd9, 0x79, 0x8b, 0xe8, 0x7e, 0xc1, 0x0c, 0xed, 0xc2, 0xee, 0x87, 0x54, 0xd0, 0xb2, + 0xf9, 0x8c, 0xc0, 0x51, 0x5e, 0xae, 0xfb, 0x9e, 0xb3, 0x54, 0xed, 0xf9, 0x78, 0x84, 0xf3, 0x4f, + 0xed, 0x02, 0x47, 0xc1, 0x4d, 0x52, 0x70, 0x36, 0x47, 0xc8, 0xda, 0x61, 0xee, 0xd0, 0x15, 0x49, + 0x9f, 0x23, 0x9b, 0xd9, 0x9e, 0x38, 0x7d, 0x8e, 0x8c, 0xd0, 0x1c, 0x61, 0x7b, 0xf7, 0x3d, 0x23, + 0x53, 0xb8, 0x2d, 0x16, 0x97, 0x2b, 0x15, 0x15, 0x24, 0xec, 0x57, 0x72, 0xbc, 0x70, 0xeb, 0x27, + 0xc8, 0x34, 0x9a, 0x62, 0xb6, 0xd6, 0x51, 0x18, 0xff, 0x24, 0x57, 0xca, 0x5e, 0x3d, 0x9d, 0xbc, + 0x27, 0x1b, 0xa6, 0x07, 0xc0, 0x34, 0xbd, 0x14, 0xe8, 0x1c, 0x79, 0x0a, 0xc3, 0xa0, 0x26, 0x2b, + 0x0b, 0x17, 0x5b, 0xbd, 0x77, 0xe0, 0xf8, 0xbb, 0x91, 0xad, 0xd3, 0x38, 0x7e, 0xbd, 0x10, 0x6a, + 0x84, 0x00, 0x3d, 0xdf, 0xb6, 0x8d, 0x49, 0xba, 0xb2, 0x47, 0xcd, 0xfe, 0x3d, 0x1f, 0xe7, 0x50, + 0x2d, 0x53, 0xfb, 0xff, 0xd0, 0x3b, 0xc5, 0x84, 0x85, 0xc0, 0x90, 0x7f, 0xb0, 0x9c, 0x3e, 0xb1, + 0x98, 0x46, 0xbd, 0x18, 0xf0, 0x34, 0xb1, 0x91, 0x7b, 0x8a, 0x9d, 0xbd, 0xaf, 0x17, 0xfd, 0xcc, + 0x4e, 0x8e, 0xde, 0x65, 0xa4, 0xbf, 0x53, 0x57, 0x2a, 0x2b, 0x08, 0x37, 0xfe, 0xe7, 0x07, 0x91, + 0x8f, 0xe5, 0x2b, 0xdb, 0x98, 0x15, 0xf9, 0x67, 0x03, 0x4b, 0xde, 0x90, 0x69, 0x55, 0x32, 0x84, + 0x9a, 0x35, 0x8d, 0x7b, 0x81, 0xd2, 0xc7, 0x48, 0xca, 0x87, 0x5b, 0x86, 0x77, 0xa2, 0x58, 0x46, + 0xb3, 0x88, 0x21, 0x6b, 0xef, 0x19, 0x39, 0x24, 0x03, 0xa7, 0x40, 0x52, 0x12, 0x87, 0x46, 0xe3, + 0x1e, 0x26, 0x75, 0xbc, 0xdb, 0xce, 0x62, 0xf2, 0x21, 0xe6, 0x26, 0x0c, 0x01, 0x37, 0xc8, 0x2e, + 0x37, 0x58, 0x9d, 0x6e, 0x70, 0xe8, 0x9c, 0x01, 0x5b, 0x63, 0x30, 0xdd, 0x1e, 0x5e, 0x02, 0xb7, + 0x9f, 0xb4, 0xda, 0x74, 0xee, 0xc0, 0x85, 0x23, 0xac, 0x3b, 0x31, 0xbe, 0x9c, 0xe0, 0xc1, 0x5c, + 0xe4, 0x15, 0x60, 0xad, 0xdd, 0x80, 0x34, 0xa9, 0x98, 0x56, 0x54, 0xf2, 0x91, 0xee, 0x24, 0x94, + 0x04, 0x7d, 0x24, 0xb5, 0x5e, 0x3d, 0x23, 0x17, 0x51, 0xd9, 0xae, 0x45, 0xff, 0x70, 0x86, 0x0d, + 0x8d, 0xd8, 0xc7, 0x8c, 0xc1, 0x0c, 0x86, 0xd7, 0xda, 0xc8, 0xf6, 0x7c, 0x06, 0xd2, 0x43, 0x12, + 0x46, 0xde, 0xea, 0x8d, 0xbb, 0x05, 0xad, 0x00, 0xde, 0xaa, 0x38, 0xd9, 0xdb, 0xed, 0xb7, 0x96, + 0x6c, 0xbf, 0x13, 0xf7, 0x69, 0x6f, 0xb3, 0x77, 0x07, 0xdf, 0x0a, 0x11, 0x9e, 0x02, 0x69, 0x7a, + 0x08, 0xbf, 0x26, 0xad, 0xa6, 0xee, 0x38, 0x0b, 0x3f, 0x84, 0xdf, 0x74, 0xe1, 0x57, 0xff, 0xa5, + 0xfb, 0x2d, 0xfb, 0xca, 0xc9, 0x5a, 0x19, 0xc8, 0xa7, 0xc8, 0xea, 0x92, 0x70, 0x77, 0x54, 0x65, + 0x71, 0x5e, 0x4a, 0xfb, 0xf6, 0x3f, 0xd3, 0xbe, 0x3d, 0xa0, 0x7f, 0xfb, 0x32, 0xff, 0x96, 0x46, + 0x0f, 0x7d, 0x4f, 0x71, 0xe3, 0x25, 0x62, 0x69, 0x28, 0x66, 0x66, 0xfa, 0x51, 0xc2, 0x3e, 0xd6, + 0xfa, 0x09, 0xcf, 0x93, 0xd9, 0x63, 0x7b, 0x60, 0xe4, 0x42, 0x1b, 0xe9, 0x69, 0x08, 0x2c, 0xfd, + 0x63, 0x6f, 0x31, 0x9d, 0x2b, 0xf6, 0xdd, 0x6f, 0x59, 0x4a, 0x5d, 0xed, 0x90, 0xed, 0x16, 0x8e, + 0xbf, 0xf5, 0xe0, 0xda, 0xf8, 0x5a, 0xb7, 0xf0, 0x9a, 0x98, 0xc1, 0x3c, 0xb9, 0xd5, 0x9e, 0xfc, + 0x2a, 0xe9, 0x08, 0xaf, 0x25, 0x84, 0x22, 0x37, 0x7d, 0x7d, 0xad, 0x99, 0x77, 0x69, 0x35, 0x9f, + 0x79, 0xba, 0xdc, 0x05, 0x47, 0x25, 0xd6, 0x09, 0x46, 0x76, 0x2b, 0x83, 0xd7, 0x5b, 0x97, 0x71, + 0x47, 0x83, 0x3c, 0x00, 0xc3, 0xc3, 0xe0, 0xa1, 0xa7, 0x92, 0xba, 0xe4, 0xd7, 0x5e, 0x0d, 0x4d, + 0xfa, 0x6a, 0xb8, 0xe3, 0x6f, 0xaf, 0x86, 0x7c, 0xa6, 0x27, 0x57, 0xc3, 0xab, 0x67, 0x3a, 0x5b, + 0x0d, 0xf5, 0x7a, 0x34, 0x26, 0xea, 0x41, 0x71, 0xbc, 0x84, 0xee, 0xbb, 0x47, 0xab, 0xe2, 0x16, + 0x4e, 0x95, 0x1c, 0x45, 0x82, 0xe1, 0x53, 0x21, 0x0d, 0x9e, 0x8c, 0xeb, 0x58, 0x36, 0x72, 0xbf, + 0x7c, 0x54, 0x11, 0xad, 0xe6, 0x16, 0x4f, 0xf5, 0xdc, 0x26, 0x8e, 0xd6, 0x77, 0x8e, 0x30, 0xc8, + 0xec, 0x05, 0xf9, 0xea, 0x23, 0xea, 0xab, 0xcf, 0x54, 0x55, 0x54, 0xae, 0x5a, 0x25, 0xd9, 0xca, + 0x63, 0x14, 0xe3, 0x84, 0xb3, 0xce, 0xd7, 0x4c, 0x5c, 0x7b, 0x45, 0x8c, 0x41, 0x7e, 0xb0, 0x69, + 0xad, 0x9a, 0x22, 0x4e, 0xd2, 0x25, 0x0c, 0x0b, 0x74, 0xa9, 0x42, 0x86, 0xbe, 0x7e, 0x92, 0x04, + 0x61, 0xb2, 0x92, 0xaf, 0xaf, 0xa9, 0xd5, 0x09, 0x59, 0x81, 0x40, 0x9e, 0x48, 0x57, 0xcb, 0xd5, + 0xb4, 0xda, 0xd8, 0x09, 0xb1, 0x69, 0x59, 0x72, 0x55, 0xc5, 0xf1, 0x89, 0xe5, 0xa7, 0x95, 0x0e, + 0xe7, 0x9c, 0x14, 0x57, 0x08, 0xbb, 0x79, 0x19, 0x61, 0x2d, 0xd9, 0xed, 0xa1, 0x78, 0xeb, 0x0d, + 0xa7, 0xb6, 0x11, 0x2f, 0xb6, 0x2f, 0x2e, 0x75, 0x31, 0xb9, 0x41, 0x35, 0x8b, 0x67, 0x4e, 0x8e, + 0x47, 0x17, 0x8c, 0x4f, 0x8e, 0x47, 0x17, 0x58, 0xd8, 0x78, 0x74, 0xc1, 0x04, 0x3e, 0x1e, 0x29, + 0x97, 0xb4, 0xf1, 0x18, 0x57, 0x56, 0x8a, 0xd5, 0xec, 0x1b, 0x73, 0x72, 0x8c, 0xd1, 0xf7, 0x6c, + 0x8c, 0xb1, 0x70, 0xcb, 0x5b, 0x0f, 0x74, 0xc7, 0xbb, 0xf1, 0x7b, 0xa7, 0x10, 0x28, 0x0d, 0x95, + 0xb2, 0xf7, 0x56, 0x9e, 0x57, 0x1b, 0x38, 0x5c, 0x30, 0x91, 0xcd, 0x0b, 0x9e, 0x97, 0x0d, 0xf3, + 0xea, 0xc6, 0xbc, 0x6e, 0x90, 0x81, 0xf4, 0xdf, 0x59, 0x5e, 0x5f, 0x3d, 0xf9, 0x15, 0x56, 0x9a, + 0xd2, 0x93, 0x8b, 0xf4, 0x5c, 0x03, 0x52, 0x49, 0xe9, 0x9f, 0xcc, 0x9a, 0xf8, 0x40, 0x12, 0xd1, + 0xcf, 0x9a, 0xb4, 0x80, 0xcc, 0xa1, 0x9e, 0xc5, 0x7d, 0x47, 0x36, 0x8e, 0x22, 0x7f, 0xe0, 0x87, + 0xa1, 0xe5, 0xc2, 0x8b, 0x5c, 0x1f, 0x2f, 0x90, 0x27, 0x8c, 0xe0, 0xa5, 0x31, 0x79, 0x23, 0xbe, + 0x4f, 0x70, 0xbe, 0x62, 0x58, 0xef, 0x5d, 0x51, 0x5f, 0x79, 0xac, 0xa9, 0x1e, 0x4e, 0xac, 0x09, + 0x0c, 0xb9, 0xc4, 0xce, 0x30, 0x5d, 0x90, 0xfb, 0x20, 0xdd, 0x4a, 0x5c, 0xd9, 0xec, 0x3c, 0xdd, + 0xf4, 0x9d, 0x26, 0x7d, 0x4d, 0x92, 0x32, 0xe4, 0x9e, 0xec, 0xa4, 0xb1, 0xa3, 0xc0, 0x95, 0x5c, + 0x9d, 0xef, 0x77, 0x39, 0xbc, 0x30, 0x9d, 0xe9, 0xdb, 0xa6, 0xda, 0x39, 0x2f, 0xad, 0x9d, 0xf3, + 0xf4, 0x76, 0xce, 0x83, 0x09, 0x8c, 0x86, 0x0f, 0x7f, 0x92, 0x34, 0x1d, 0x4e, 0xc6, 0x4c, 0xe9, + 0x94, 0x4e, 0xb7, 0x26, 0xdf, 0xe9, 0x7a, 0xf0, 0xe6, 0x00, 0xd3, 0x60, 0x9a, 0x22, 0x2e, 0x60, + 0x6d, 0x6f, 0x4d, 0xeb, 0x93, 0x89, 0xc9, 0x79, 0x4f, 0xed, 0x4c, 0xf3, 0x1e, 0xdb, 0x99, 0xeb, + 0xdb, 0xff, 0x7d, 0xfd, 0xc7, 0xb1, 0x67, 0x4e, 0x2e, 0xd6, 0x69, 0x44, 0xd0, 0x9b, 0x81, 0xf4, + 0x82, 0xf7, 0x8d, 0x1f, 0x69, 0xb4, 0x85, 0xf9, 0x37, 0x65, 0x2b, 0x9c, 0xb8, 0x80, 0x8f, 0xbc, + 0x6b, 0xad, 0x72, 0xb1, 0x8c, 0x3e, 0xc3, 0x4d, 0x7e, 0x18, 0x7f, 0xcd, 0xd5, 0x6e, 0x5f, 0x6a, + 0xb5, 0xd3, 0x11, 0xce, 0x0c, 0x3a, 0xfa, 0x0c, 0xe7, 0xb9, 0xb0, 0x07, 0xd2, 0xe6, 0x62, 0x23, + 0x9f, 0x81, 0xfa, 0x8e, 0x33, 0x37, 0xd1, 0xa3, 0x57, 0xad, 0xca, 0xed, 0xc4, 0xe7, 0x61, 0xe9, + 0xc4, 0xa4, 0xa6, 0x6d, 0x5c, 0x0d, 0x31, 0xf9, 0xeb, 0x3c, 0xc8, 0x26, 0xc4, 0xbc, 0x91, 0xc5, + 0xa2, 0xe1, 0x5d, 0x66, 0x49, 0x2d, 0xbc, 0x18, 0xba, 0xc7, 0x0c, 0x0c, 0xc7, 0x50, 0x97, 0xfd, + 0x45, 0xb3, 0x38, 0x3d, 0x49, 0xa7, 0xac, 0x91, 0xee, 0x98, 0xb1, 0xbf, 0x5b, 0x3d, 0x18, 0x00, + 0xdc, 0x21, 0x8e, 0xa1, 0x2c, 0xb4, 0x22, 0x0e, 0x0d, 0x25, 0xf4, 0x3c, 0x17, 0x1b, 0x53, 0x74, + 0xee, 0xba, 0xe5, 0x6b, 0xd5, 0xcb, 0x97, 0x83, 0xe5, 0xb3, 0xe9, 0xe5, 0x0b, 0x26, 0xca, 0x37, + 0x76, 0x1c, 0x7f, 0x8a, 0xf1, 0x4f, 0x9f, 0xe2, 0xfc, 0x53, 0xe3, 0xb5, 0x57, 0x36, 0x96, 0xfb, + 0xf5, 0xca, 0x76, 0xd7, 0x68, 0x1d, 0x54, 0x1f, 0xed, 0x48, 0x73, 0x74, 0x2b, 0x50, 0x56, 0x86, + 0x91, 0x75, 0x09, 0xa9, 0x27, 0x9c, 0x60, 0x9a, 0xb8, 0x13, 0x68, 0x05, 0x04, 0x6b, 0x62, 0x05, + 0x8c, 0x81, 0x4f, 0xb0, 0x32, 0xa5, 0x90, 0xa8, 0x68, 0x65, 0x0a, 0x33, 0x51, 0xe6, 0x91, 0xd1, + 0x0c, 0x51, 0x3b, 0xdf, 0x4d, 0x2d, 0xdc, 0x17, 0xea, 0x0e, 0xed, 0x0b, 0x76, 0xd3, 0xfa, 0xcf, + 0xb4, 0x20, 0x27, 0x3a, 0x85, 0x9a, 0x9e, 0x97, 0xba, 0x54, 0x6b, 0xb8, 0x2b, 0x6a, 0xe6, 0x9a, + 0xc3, 0x4b, 0x68, 0x75, 0x11, 0x12, 0x7c, 0x05, 0xdb, 0xf7, 0x0b, 0xb8, 0xef, 0xc7, 0x50, 0xab, + 0x5b, 0xfb, 0x10, 0x6e, 0x5a, 0x62, 0xc4, 0x55, 0x45, 0xb9, 0xee, 0x0a, 0xec, 0xc7, 0xf0, 0x17, + 0x5b, 0x6f, 0xd8, 0x17, 0x8f, 0x1a, 0xc3, 0xd0, 0x54, 0x80, 0xbf, 0x5e, 0x49, 0xfe, 0x92, 0xf1, + 0xd7, 0x1b, 0xc9, 0x5f, 0xd9, 0x0e, 0xb7, 0xf0, 0x41, 0x8c, 0xb4, 0xd8, 0xed, 0x54, 0xaa, 0xa3, + 0xdd, 0x8f, 0x74, 0x63, 0xc9, 0x4c, 0x7c, 0x75, 0xa4, 0x15, 0x8c, 0xa8, 0x07, 0xb3, 0xf4, 0x26, + 0x74, 0xf7, 0x9c, 0xf0, 0x76, 0xb0, 0xa9, 0xa1, 0x64, 0x5f, 0xa5, 0xdb, 0x1e, 0x43, 0xd4, 0xa7, + 0xf7, 0x14, 0x59, 0xf9, 0xbe, 0x74, 0x55, 0xeb, 0x1a, 0xbc, 0x7e, 0x90, 0x71, 0x7d, 0x64, 0xf8, + 0x5c, 0xb4, 0x06, 0xea, 0xe8, 0xee, 0xba, 0x85, 0x76, 0x71, 0x31, 0x71, 0x2a, 0x32, 0xa1, 0x0b, + 0x26, 0xb8, 0x37, 0x6b, 0x1f, 0x72, 0xe5, 0x29, 0x1e, 0x81, 0xd3, 0xd4, 0x84, 0xaf, 0xd3, 0x9b, + 0x4a, 0xc0, 0xcc, 0x9f, 0xf1, 0x69, 0x3c, 0x79, 0x3a, 0xc5, 0xbb, 0x05, 0xe7, 0xce, 0x04, 0xc9, + 0xc0, 0xbf, 0xf0, 0x19, 0xae, 0xf1, 0x8d, 0x35, 0xf9, 0xcd, 0x44, 0xfd, 0x1b, 0x1b, 0x7e, 0x73, + 0xc3, 0x3c, 0xbe, 0xa3, 0x27, 0xde, 0xce, 0x4a, 0x52, 0x32, 0x17, 0xb8, 0x89, 0x9b, 0xcf, 0xe4, + 0xfe, 0x99, 0x9c, 0xcc, 0xf7, 0x66, 0x86, 0x56, 0x57, 0xc8, 0x3d, 0x3d, 0x61, 0xb8, 0x91, 0xc2, + 0xf1, 0x4b, 0xc1, 0x95, 0x41, 0x7e, 0x6a, 0x32, 0xe0, 0xf4, 0xfa, 0xd4, 0xd7, 0x11, 0x88, 0x1b, + 0xf1, 0x9d, 0xe1, 0xa6, 0x52, 0xc8, 0x50, 0x6c, 0xc8, 0xcd, 0x8f, 0x80, 0x50, 0x7d, 0x16, 0x0c, + 0x78, 0x65, 0xcc, 0xbb, 0xe8, 0xd2, 0x2a, 0x52, 0xb9, 0x4d, 0xe4, 0xbc, 0x9b, 0x8b, 0x72, 0x33, + 0x72, 0x4e, 0x4e, 0x4e, 0xe6, 0x56, 0xc1, 0x73, 0xd3, 0x39, 0x3e, 0x4c, 0x31, 0xd3, 0x69, 0x20, + 0x3d, 0x73, 0xcc, 0xed, 0xc1, 0xd4, 0xd7, 0x98, 0x5b, 0x06, 0xbe, 0x33, 0xdd, 0x14, 0x80, 0x71, + 0x7a, 0x6e, 0x99, 0x98, 0x93, 0x09, 0xaf, 0x71, 0x95, 0x6f, 0x16, 0x17, 0xf3, 0xfe, 0xbb, 0x63, + 0x8e, 0xc7, 0xcb, 0xec, 0x85, 0x8b, 0xe4, 0xe5, 0x30, 0x85, 0x30, 0xd5, 0xbc, 0x0b, 0xda, 0x02, + 0x47, 0x1f, 0x24, 0x0d, 0xf9, 0xdb, 0xb6, 0x11, 0x26, 0x5f, 0x51, 0xee, 0x3c, 0x2e, 0xd7, 0x01, + 0xa1, 0x5d, 0x4c, 0xac, 0xb1, 0x00, 0x7d, 0xba, 0x54, 0x9e, 0xa4, 0xf7, 0x77, 0x29, 0x39, 0xfa, + 0x5a, 0x0e, 0xf0, 0x98, 0xbe, 0x9a, 0x83, 0x10, 0xc2, 0x2f, 0x0a, 0x48, 0xde, 0x2a, 0x8d, 0x92, + 0xc7, 0xb8, 0x30, 0xc4, 0xdb, 0x04, 0x32, 0x78, 0x90, 0xc7, 0xb6, 0xe6, 0x7b, 0xc0, 0x81, 0xeb, + 0x82, 0x0d, 0xf7, 0x55, 0xd8, 0x42, 0x92, 0x87, 0x71, 0xaf, 0xcf, 0x83, 0x8f, 0x8d, 0xf2, 0x47, + 0xf4, 0x1d, 0x56, 0xa1, 0xd7, 0xc6, 0x9e, 0xef, 0x4f, 0x86, 0x65, 0x91, 0x57, 0xb4, 0xaa, 0x3d, + 0x57, 0x4e, 0x72, 0x9f, 0xec, 0x70, 0x42, 0x8c, 0x10, 0x0a, 0xd3, 0xa4, 0x2f, 0xe1, 0xd8, 0x8a, + 0x24, 0xe8, 0x28, 0xe1, 0xd1, 0x11, 0x7f, 0x23, 0x05, 0xab, 0x1e, 0xc6, 0x38, 0x8f, 0x8b, 0x1e, + 0x30, 0xb2, 0x99, 0x65, 0x64, 0x16, 0x2c, 0xdb, 0x12, 0xf2, 0x08, 0xe2, 0x32, 0x14, 0x92, 0x35, + 0x4f, 0x59, 0x05, 0x53, 0xf0, 0xcb, 0x17, 0xe3, 0x4c, 0xce, 0x4f, 0x72, 0xff, 0xb3, 0x37, 0xf9, + 0x19, 0x27, 0xc7, 0xe2, 0x71, 0x8f, 0x08, 0x09, 0x9a, 0xe7, 0xc2, 0xf5, 0xf0, 0xb5, 0x01, 0xcc, + 0xb7, 0x32, 0x75, 0x02, 0x78, 0xa5, 0x4f, 0x5f, 0xe7, 0xb2, 0x08, 0x29, 0x49, 0x5e, 0x8f, 0x74, + 0x1b, 0x73, 0xfb, 0x14, 0x52, 0xee, 0x94, 0xf4, 0x4d, 0x4b, 0xa6, 0x87, 0xf4, 0x31, 0x25, 0x93, + 0x63, 0x68, 0xde, 0x58, 0x8a, 0x08, 0x43, 0xa8, 0x32, 0x81, 0x5d, 0x8b, 0x2b, 0x46, 0x83, 0x1d, + 0xee, 0x23, 0x2c, 0x2a, 0xa9, 0x3c, 0xb1, 0xcb, 0x76, 0x71, 0x49, 0x7f, 0x07, 0xed, 0xde, 0x12, + 0xd8, 0x01, 0x1e, 0x92, 0x8e, 0xe9, 0x33, 0x04, 0xf7, 0xb2, 0x8d, 0x5e, 0xab, 0x97, 0xed, 0x70, + 0xca, 0x86, 0xfe, 0xb2, 0x97, 0xf9, 0x9e, 0xe6, 0xc8, 0x52, 0x55, 0xb8, 0x9b, 0xc0, 0x9a, 0xa6, + 0xc5, 0x10, 0x93, 0x6f, 0xcd, 0x92, 0xbf, 0x70, 0x06, 0x98, 0x14, 0x1f, 0x71, 0xc4, 0x58, 0xb6, + 0xec, 0x18, 0x48, 0xf0, 0xee, 0x03, 0xa6, 0x2e, 0xaa, 0x69, 0xd8, 0x97, 0x63, 0x8c, 0x1a, 0xdb, + 0x34, 0xc5, 0x50, 0x08, 0xad, 0x19, 0x64, 0x4f, 0x11, 0x89, 0x5b, 0x03, 0x9a, 0x16, 0x3d, 0xa1, + 0x98, 0xd9, 0x1d, 0xe0, 0x02, 0x7d, 0xe7, 0x33, 0x84, 0x06, 0xde, 0xed, 0x95, 0xfd, 0x65, 0xb8, + 0xfb, 0xfe, 0xcd, 0x19, 0xc8, 0x4e, 0xcb, 0x69, 0x6a, 0xd5, 0x9e, 0xbf, 0xf8, 0x92, 0x6b, 0x83, + 0x3f, 0x4c, 0xb8, 0xba, 0xc6, 0x58, 0x5c, 0x31, 0x04, 0xc0, 0x41, 0x7f, 0xb3, 0xd2, 0xe2, 0x66, + 0x60, 0x5c, 0x63, 0x02, 0xe1, 0x8e, 0xa1, 0x7b, 0x1a, 0x6f, 0xaa, 0xc6, 0x1e, 0x32, 0x06, 0xb0, + 0x2d, 0x5d, 0x33, 0xb1, 0xae, 0x33, 0x91, 0x27, 0x6e, 0xa6, 0x71, 0xa3, 0xef, 0x86, 0x32, 0x70, + 0x7c, 0xd0, 0xde, 0x67, 0x26, 0x1b, 0x3d, 0xab, 0xd3, 0x76, 0xec, 0x6c, 0x8e, 0xe0, 0xd3, 0x86, + 0x64, 0x08, 0xe1, 0x01, 0xec, 0xf9, 0x78, 0x9b, 0xd7, 0xc2, 0xb1, 0x50, 0x09, 0x57, 0xab, 0x6a, + 0xcf, 0x5f, 0xfb, 0x64, 0xc2, 0x88, 0x10, 0xa3, 0x8e, 0xab, 0x77, 0x04, 0x4a, 0xb6, 0xde, 0xa7, + 0x3a, 0x66, 0x8c, 0xce, 0xc7, 0xf3, 0x3d, 0x5a, 0xee, 0xf5, 0xe5, 0x6a, 0x3a, 0x7a, 0x7c, 0x0b, + 0xc3, 0xf2, 0xb2, 0xe3, 0x1b, 0x07, 0x8d, 0x8f, 0x24, 0x8e, 0x86, 0x8e, 0x06, 0xa0, 0x7b, 0x2d, + 0xba, 0x26, 0xaf, 0x7f, 0x8d, 0x95, 0x3c, 0xa7, 0x95, 0xcc, 0x23, 0x1d, 0xa3, 0xd7, 0xf2, 0xbf, + 0x19, 0xaf, 0x3e, 0xb1, 0xe6, 0x17, 0xfb, 0xe4, 0x92, 0x95, 0x80, 0x9c, 0x7f, 0xbd, 0xa2, 0x12, + 0xc6, 0x05, 0xee, 0x2a, 0xcd, 0x62, 0xc6, 0x60, 0xef, 0xee, 0x78, 0xbd, 0x69, 0x6b, 0x6f, 0xd4, + 0xa5, 0x18, 0x5c, 0x19, 0x9c, 0x42, 0x13, 0xa6, 0x23, 0xf3, 0x6a, 0x9b, 0xd5, 0x3a, 0xfe, 0x0f, + 0xdb, 0xa4, 0x65, 0x82, 0xe3, 0xd5, 0x81, 0x50, 0x6c, 0xab, 0x83, 0xeb, 0x71, 0xbc, 0xbe, 0x5a, + 0x34, 0x0e, 0x72, 0xbd, 0x6f, 0xe3, 0xa3, 0xab, 0x8f, 0xae, 0x66, 0x08, 0x14, 0x0e, 0xd2, 0x04, + 0x17, 0xb3, 0x22, 0x71, 0x99, 0xf0, 0x33, 0xac, 0xfd, 0xdb, 0x84, 0x1c, 0x5c, 0x4b, 0x7a, 0x56, + 0x3c, 0x2a, 0x66, 0x56, 0xbe, 0x69, 0x2d, 0xd6, 0x91, 0x6c, 0x4b, 0x08, 0x21, 0x28, 0xdc, 0x13, + 0xcd, 0x69, 0x15, 0x76, 0xf4, 0x44, 0xc9, 0x33, 0x51, 0x8f, 0x3a, 0x85, 0x61, 0xa0, 0x9a, 0xc9, + 0x13, 0x97, 0x62, 0x38, 0x1a, 0x0f, 0x77, 0x37, 0x5b, 0x77, 0xe2, 0xca, 0x5c, 0x6f, 0x9a, 0x1a, + 0x20, 0x8f, 0x54, 0x84, 0x4b, 0x4e, 0x48, 0xb6, 0x24, 0x17, 0xa5, 0x96, 0x8b, 0xe1, 0xfa, 0xa8, + 0x18, 0x07, 0xb7, 0x46, 0xba, 0x7e, 0xf4, 0x4b, 0xf5, 0x12, 0x93, 0x36, 0x1d, 0x62, 0xbe, 0xae, + 0xbc, 0x50, 0x8d, 0xf3, 0x60, 0x41, 0xc5, 0x7b, 0xb0, 0x89, 0x4b, 0x31, 0xa1, 0x18, 0x67, 0xcf, + 0x64, 0x6f, 0x08, 0xb9, 0x81, 0xe7, 0x21, 0x48, 0x58, 0x6d, 0x63, 0x24, 0x98, 0x9d, 0x4c, 0x4a, + 0x99, 0x4f, 0x52, 0x4a, 0x28, 0x66, 0x76, 0x14, 0x49, 0x29, 0xa5, 0x68, 0xd7, 0xbd, 0xe7, 0xd6, + 0xe2, 0x96, 0x7d, 0xb2, 0x15, 0xc0, 0x17, 0x35, 0xe1, 0xdf, 0x76, 0x35, 0xd4, 0x0e, 0x65, 0x43, + 0x23, 0xf5, 0x38, 0x5a, 0x33, 0xc8, 0x72, 0x88, 0xcd, 0x21, 0xc2, 0x5c, 0xf2, 0x59, 0x9f, 0x8e, + 0x04, 0x6b, 0xe6, 0xc1, 0xa6, 0xa8, 0x2d, 0xd2, 0x43, 0x98, 0x58, 0xfd, 0x3d, 0xea, 0xeb, 0xc8, + 0xed, 0x4c, 0x46, 0x5a, 0xf5, 0x28, 0xae, 0x00, 0x7b, 0x34, 0x3f, 0xf3, 0x2a, 0x9e, 0x86, 0x9e, + 0x4f, 0x9e, 0xb2, 0xf0, 0xeb, 0x42, 0x92, 0x05, 0x12, 0xd2, 0x8f, 0xe8, 0x16, 0x1c, 0x51, 0x9b, + 0xde, 0x03, 0x80, 0xf4, 0xed, 0x58, 0xf5, 0xc6, 0x04, 0xb7, 0x27, 0xe4, 0x12, 0xb7, 0x77, 0x65, + 0x4b, 0x02, 0xf7, 0x35, 0xc9, 0x21, 0x91, 0xa7, 0xf3, 0x29, 0x57, 0x7b, 0x4f, 0x64, 0xdc, 0xed, + 0x07, 0xb8, 0x26, 0xe7, 0xf3, 0xda, 0x82, 0xb6, 0xe4, 0xa3, 0x04, 0x7f, 0xe4, 0xdc, 0x4b, 0x25, + 0x6d, 0xf5, 0x4f, 0x2f, 0x01, 0xe3, 0xf4, 0x46, 0x9c, 0xea, 0xf6, 0x56, 0x0d, 0x9f, 0x73, 0xf0, + 0xca, 0xc5, 0x4b, 0xc4, 0x4b, 0xc6, 0xcb, 0x85, 0x97, 0x07, 0x2f, 0x1f, 0x5e, 0x85, 0x78, 0x15, + 0xe1, 0x55, 0x4c, 0xfa, 0x1d, 0x78, 0xf7, 0x4f, 0x27, 0x6d, 0x8f, 0xe0, 0x74, 0xd2, 0xfc, 0x08, + 0xe1, 0xef, 0x6a, 0xbc, 0x14, 0xbc, 0xea, 0x5b, 0x05, 0xfc, 0x1b, 0xa7, 0x93, 0x05, 0xbc, 0xaf, + 0xc6, 0x3d, 0x69, 0xbe, 0xce, 0xaf, 0xf4, 0x56, 0x6f, 0x9c, 0xee, 0x07, 0xf2, 0xbe, 0xed, 0xae, + 0x89, 0xe3, 0xd3, 0x7a, 0xfc, 0x36, 0x1f, 0xfa, 0x90, 0x37, 0x13, 0x04, 0x28, 0x79, 0x4f, 0x30, + 0x4c, 0x0f, 0x09, 0x96, 0xc0, 0xd3, 0x82, 0xa9, 0xf4, 0x3d, 0xc1, 0x34, 0xbd, 0x42, 0x30, 0x60, + 0x98, 0x1d, 0xc3, 0x72, 0x30, 0xcc, 0x81, 0x61, 0x0e, 0x0c, 0xb3, 0x5f, 0x8f, 0x7b, 0x4b, 0x4a, + 0x8d, 0x81, 0xef, 0x2e, 0x69, 0x9c, 0xe0, 0xee, 0x8d, 0xed, 0x48, 0x99, 0x0c, 0x56, 0x54, 0x13, + 0xb2, 0xd2, 0xd5, 0x11, 0x26, 0x27, 0xe5, 0xfb, 0x49, 0x8e, 0x5b, 0x28, 0x4a, 0xba, 0xcc, 0x4f, + 0x8d, 0x2a, 0xde, 0x4e, 0x18, 0x2a, 0x07, 0x1c, 0xf9, 0xac, 0xdd, 0xc9, 0xc7, 0xa2, 0xa6, 0x69, + 0xb3, 0x69, 0x77, 0x42, 0x76, 0xab, 0x5a, 0x3e, 0xf2, 0x2b, 0x0e, 0x16, 0x27, 0xce, 0xce, 0x5a, + 0x72, 0xf1, 0x12, 0xf1, 0x37, 0x08, 0xe7, 0x70, 0xca, 0xb5, 0x40, 0x21, 0xb8, 0xc8, 0xa7, 0xd0, + 0x15, 0x6b, 0x2c, 0x77, 0x70, 0xe3, 0xc3, 0x07, 0x4a, 0x19, 0x6f, 0xfe, 0xdd, 0x57, 0x12, 0x76, + 0x91, 0x09, 0xee, 0x26, 0x81, 0x3e, 0x07, 0x24, 0x99, 0xca, 0x71, 0x72, 0x1c, 0x25, 0x3a, 0xf3, + 0x9c, 0xec, 0x41, 0xea, 0xeb, 0xf5, 0x20, 0x35, 0x9c, 0xc0, 0xa8, 0xa1, 0x50, 0x36, 0xf4, 0xf1, + 0xa9, 0xaa, 0x4d, 0x6e, 0x7f, 0x5a, 0x18, 0x8e, 0x39, 0xa7, 0x5f, 0x5e, 0x21, 0x10, 0xfa, 0x65, + 0x8e, 0x8e, 0xd9, 0xeb, 0x61, 0x08, 0x8b, 0x16, 0x6c, 0xdd, 0xc2, 0xfe, 0x67, 0xc1, 0xa8, 0x4e, + 0xde, 0xc5, 0x75, 0x0c, 0xf2, 0x70, 0xec, 0x34, 0xc2, 0x00, 0xa1, 0xf8, 0xe2, 0x18, 0x35, 0x8a, + 0x16, 0xc5, 0x2a, 0x57, 0xba, 0x22, 0x0c, 0x67, 0x8b, 0x63, 0xf6, 0x82, 0x3e, 0xfa, 0x18, 0xde, + 0x14, 0xce, 0xf9, 0x84, 0x24, 0xfa, 0x56, 0x5d, 0x02, 0x2d, 0x47, 0xdd, 0xba, 0x7c, 0x78, 0x36, + 0x9d, 0x8e, 0x49, 0xdb, 0xa1, 0x5b, 0x97, 0x45, 0x1b, 0x71, 0xd7, 0x2c, 0xb1, 0x3d, 0xba, 0x30, + 0xf0, 0x14, 0x8e, 0xc4, 0x38, 0x97, 0x1f, 0x33, 0xcf, 0xe8, 0x9f, 0xa2, 0x71, 0x4e, 0x7e, 0x86, + 0x82, 0x7d, 0xe9, 0x32, 0x69, 0x86, 0x8d, 0x96, 0xe4, 0xea, 0xf5, 0x59, 0x58, 0x9e, 0xd8, 0x7f, + 0x56, 0x9c, 0xc5, 0x99, 0x9b, 0x18, 0xef, 0xc0, 0x6c, 0xf1, 0xf6, 0x0c, 0xed, 0x46, 0xba, 0xb2, + 0xc9, 0x4b, 0x1e, 0xbe, 0xf2, 0x30, 0x0c, 0xf4, 0x3d, 0xd3, 0x9e, 0x8f, 0x2d, 0xd4, 0x86, 0xa9, + 0x7d, 0x27, 0x6f, 0xd9, 0x5c, 0x48, 0xa2, 0x55, 0x5a, 0x75, 0xd9, 0x80, 0x21, 0xea, 0xd6, 0x79, + 0x15, 0x01, 0xb9, 0xf3, 0xd5, 0x4a, 0x96, 0xce, 0xc3, 0x88, 0x5c, 0xe3, 0x40, 0x8d, 0x29, 0x75, + 0xb4, 0xcf, 0x97, 0xb6, 0x41, 0xa1, 0xa2, 0xd0, 0x53, 0xc9, 0x19, 0x18, 0x90, 0x7a, 0x95, 0x05, + 0xf4, 0x1c, 0x98, 0x01, 0xe3, 0x6f, 0x5d, 0x8a, 0xbd, 0x6a, 0xc3, 0xbf, 0x45, 0x90, 0x75, 0x2b, + 0x61, 0x5e, 0x66, 0xe3, 0x5f, 0x3f, 0x4c, 0xc6, 0xbf, 0x41, 0x98, 0x82, 0x7f, 0x43, 0x20, 0xe1, + 0xdf, 0x4a, 0x70, 0xe2, 0xdf, 0x6a, 0x70, 0xe3, 0xdf, 0x05, 0x90, 0x8f, 0x7f, 0x6b, 0xa1, 0x00, + 0xff, 0x2a, 0x30, 0x5b, 0x31, 0xeb, 0x39, 0x14, 0x25, 0xc6, 0x9d, 0xa4, 0xa3, 0x54, 0xe9, 0x18, + 0xd0, 0x46, 0xe9, 0x78, 0x24, 0xbe, 0x23, 0x4e, 0xd4, 0xec, 0xfa, 0x6f, 0xbe, 0xb4, 0x51, 0x97, + 0xa9, 0x17, 0x39, 0x09, 0x5f, 0x0e, 0xf9, 0x35, 0xd2, 0x08, 0xf8, 0xa7, 0xfd, 0xf3, 0xce, 0xc2, + 0x34, 0xa4, 0x79, 0x01, 0xa7, 0xc5, 0x44, 0xd6, 0x86, 0xf1, 0x0e, 0xdf, 0xf1, 0x8d, 0xc8, 0xef, + 0x8c, 0xe8, 0xfd, 0x28, 0x21, 0x1d, 0xe8, 0xd5, 0xa5, 0x23, 0x86, 0xe4, 0xa9, 0x02, 0xc0, 0x1b, + 0xba, 0xce, 0xc5, 0xad, 0xf8, 0xbe, 0x9f, 0xf7, 0x34, 0x86, 0x1e, 0xc0, 0x2f, 0xfb, 0x3d, 0xc4, + 0x27, 0x70, 0x4e, 0x7d, 0x61, 0xa4, 0x57, 0xe7, 0xd4, 0xad, 0xb8, 0xca, 0xee, 0xb9, 0xec, 0x16, + 0xb3, 0x23, 0x71, 0xec, 0x05, 0x5a, 0x73, 0xf7, 0x68, 0x0b, 0xd8, 0x8e, 0x14, 0x52, 0xbd, 0xc6, + 0x56, 0x0e, 0xc2, 0x80, 0xdb, 0x73, 0x19, 0x08, 0xc3, 0x12, 0xe7, 0x79, 0x37, 0xae, 0x12, 0x03, + 0x44, 0x23, 0x95, 0x46, 0x0f, 0xf1, 0x65, 0x26, 0xd2, 0x93, 0xc8, 0x07, 0x8f, 0x3f, 0xb2, 0x21, + 0xff, 0xa7, 0x8c, 0xd2, 0xd9, 0x70, 0x94, 0x5a, 0xbc, 0xa6, 0x92, 0xa1, 0x4b, 0x87, 0x90, 0x56, + 0x17, 0x23, 0xd7, 0xc6, 0x29, 0xe0, 0x38, 0xef, 0x44, 0x8c, 0xdd, 0x02, 0x95, 0x55, 0x7d, 0x81, + 0x82, 0x33, 0xf2, 0x4d, 0x73, 0x41, 0x66, 0x68, 0x88, 0x92, 0xce, 0x3f, 0x08, 0x8a, 0x23, 0x36, + 0xa2, 0x98, 0xd9, 0x2f, 0x73, 0xec, 0xca, 0x2f, 0xb7, 0x23, 0x2f, 0x68, 0x8a, 0x19, 0xba, 0xf0, + 0x4e, 0xc8, 0x9d, 0x52, 0xd9, 0xa8, 0xb3, 0x09, 0x18, 0x39, 0x4f, 0x5c, 0x53, 0x35, 0x47, 0x7e, + 0x9a, 0x4d, 0xf3, 0x8e, 0x76, 0xc0, 0xb8, 0x6a, 0x88, 0x6c, 0x6e, 0x19, 0xf4, 0xb9, 0xb5, 0xe7, + 0x52, 0x6b, 0x92, 0x67, 0x72, 0x5f, 0x5b, 0xa2, 0xc0, 0xa9, 0xab, 0x60, 0x8b, 0x89, 0x63, 0x3d, + 0xca, 0x4e, 0x27, 0x6c, 0x38, 0xb2, 0x26, 0x24, 0xaa, 0x0c, 0x63, 0xbf, 0x63, 0x34, 0x79, 0xc7, + 0xf4, 0x30, 0xd8, 0x90, 0xf6, 0x65, 0x41, 0xd6, 0x74, 0x92, 0x3a, 0xf8, 0xc5, 0xbd, 0xa4, 0xef, + 0xda, 0xca, 0xbc, 0x46, 0x32, 0x9c, 0x4f, 0x5c, 0x2b, 0x46, 0x1c, 0xba, 0xcc, 0x85, 0x71, 0x42, + 0xb8, 0x3e, 0xe6, 0x81, 0xba, 0xe3, 0x29, 0x50, 0x1b, 0x2c, 0xc8, 0x11, 0x4d, 0x52, 0xcf, 0x13, + 0x56, 0x33, 0xa1, 0xdb, 0xf2, 0xb4, 0x89, 0x93, 0x64, 0xfe, 0x82, 0xc9, 0x17, 0x68, 0xb6, 0x42, + 0x79, 0xd9, 0x47, 0xd7, 0xe9, 0xaf, 0xdf, 0xd3, 0xf7, 0xa7, 0xb5, 0x81, 0x3c, 0x98, 0x93, 0x58, + 0x05, 0x31, 0x7f, 0x69, 0xfa, 0x72, 0x3a, 0xc1, 0xc4, 0xbf, 0x0b, 0x61, 0x96, 0x48, 0xe7, 0x13, + 0xf1, 0xbe, 0xa7, 0x41, 0xc5, 0x37, 0x6e, 0x0c, 0x6b, 0xc5, 0xb1, 0xeb, 0xd4, 0x7b, 0x03, 0xfb, + 0x08, 0xd3, 0x09, 0xa6, 0x56, 0x24, 0xfb, 0x26, 0xc6, 0x3b, 0x19, 0x92, 0xf8, 0x75, 0x6c, 0xe7, + 0x9e, 0xce, 0xd5, 0x6a, 0x16, 0x05, 0xb4, 0x0e, 0x7d, 0xa5, 0xca, 0xb1, 0x6e, 0x0a, 0x94, 0x04, + 0x03, 0x6a, 0x90, 0xe1, 0x71, 0x93, 0x4c, 0xd4, 0xc7, 0x68, 0x52, 0xa1, 0xaf, 0xd8, 0x60, 0xbb, + 0x66, 0x0b, 0xe7, 0x26, 0x72, 0x32, 0x40, 0x08, 0x57, 0x65, 0xfa, 0xe6, 0xa3, 0xed, 0x6c, 0x24, + 0x19, 0x78, 0x7e, 0x7c, 0x37, 0xce, 0x68, 0x68, 0x2e, 0xd1, 0x50, 0xeb, 0x66, 0x6a, 0x49, 0xdc, + 0x7b, 0x4c, 0x61, 0x98, 0x92, 0x54, 0xba, 0x43, 0x2c, 0x0f, 0x10, 0xac, 0xbe, 0xe2, 0xeb, 0x4a, + 0x86, 0x2e, 0x5c, 0xdd, 0x8f, 0xd3, 0x78, 0x3f, 0xee, 0xe3, 0xfd, 0x98, 0x2e, 0x7d, 0xd0, 0x2d, + 0x42, 0xb7, 0xa6, 0xd1, 0x29, 0xf0, 0x4e, 0x98, 0x3b, 0xf4, 0x91, 0xbd, 0x6a, 0xf3, 0xb4, 0x4a, + 0xb0, 0x4d, 0x6b, 0xa2, 0x9e, 0x9d, 0x36, 0x1f, 0xa6, 0xf0, 0x18, 0x48, 0xb7, 0x66, 0x32, 0x4c, + 0x0b, 0x37, 0x58, 0x42, 0xcd, 0x30, 0xad, 0x6a, 0x33, 0x0f, 0xc1, 0xfe, 0xb5, 0x04, 0x7c, 0x66, + 0xc6, 0x77, 0x8a, 0x33, 0x21, 0x4e, 0xb3, 0x8a, 0x24, 0x3e, 0x18, 0x27, 0x8e, 0xd4, 0xed, 0xe4, + 0x27, 0x9d, 0x34, 0x63, 0x38, 0xf5, 0xd3, 0x76, 0x50, 0xd9, 0x19, 0x33, 0x3b, 0x5f, 0x66, 0xe3, + 0x24, 0xd1, 0x57, 0x6e, 0xea, 0xab, 0xbf, 0x6c, 0x1d, 0xd5, 0x57, 0x14, 0xb2, 0x30, 0x25, 0x2b, + 0xea, 0x84, 0x24, 0x0f, 0x81, 0x3d, 0x53, 0x5e, 0x13, 0x0a, 0xaa, 0xb5, 0x89, 0x9e, 0xf9, 0x88, + 0xaf, 0x16, 0x21, 0x5f, 0xb1, 0x90, 0x7b, 0xcd, 0x9e, 0xf1, 0xa5, 0x6a, 0x8f, 0x3d, 0xe3, 0x60, + 0x69, 0xdb, 0x4b, 0xde, 0x83, 0x81, 0xe9, 0x21, 0xac, 0x55, 0x1e, 0x8c, 0x27, 0xab, 0xba, 0xcf, + 0x38, 0xc0, 0x76, 0x75, 0x6f, 0x15, 0x15, 0x91, 0x1d, 0x38, 0xf9, 0x83, 0xa3, 0x5d, 0xbd, 0x48, + 0xe7, 0x10, 0x2e, 0x58, 0x4c, 0x12, 0xa5, 0xbf, 0xd8, 0xb1, 0x15, 0x73, 0x95, 0x7c, 0xa4, 0xf0, + 0x44, 0x5f, 0x8c, 0xdc, 0xbe, 0x1d, 0xcb, 0x21, 0x5b, 0x37, 0x55, 0xd6, 0x94, 0xcd, 0x55, 0x73, + 0xf5, 0xf2, 0xf1, 0xf3, 0x79, 0x5b, 0xa4, 0x9b, 0x90, 0xbe, 0x98, 0x4f, 0xbe, 0x43, 0x09, 0x8e, + 0x3c, 0x37, 0x37, 0x79, 0x1e, 0x95, 0xc8, 0x43, 0xe6, 0xde, 0x04, 0x88, 0xfb, 0x44, 0x8a, 0x15, + 0xd7, 0x35, 0xaf, 0x6b, 0xa7, 0xf9, 0x85, 0x1c, 0xe2, 0x6d, 0x49, 0xaa, 0x9b, 0xde, 0xef, 0xc8, + 0x81, 0x15, 0x63, 0xba, 0x8b, 0x3b, 0x90, 0x4f, 0xbe, 0xb8, 0x4a, 0x71, 0x4b, 0xc8, 0x93, 0x1d, + 0x61, 0x7b, 0x0a, 0x96, 0xc2, 0x66, 0xc9, 0x48, 0xbb, 0x22, 0x03, 0xe8, 0x65, 0x43, 0x8e, 0x44, + 0x70, 0x88, 0xbe, 0x90, 0xdd, 0x25, 0xb0, 0x92, 0x0c, 0x26, 0xce, 0x9c, 0xe6, 0xcc, 0x71, 0xea, + 0x58, 0x6e, 0x57, 0x9f, 0xb3, 0x5c, 0x59, 0x20, 0x43, 0x14, 0x0c, 0xd9, 0x9c, 0x77, 0xbb, 0xc6, + 0xf9, 0xcb, 0x07, 0x1d, 0x30, 0x6f, 0xe8, 0x22, 0xb6, 0xc9, 0x9f, 0xf7, 0xd0, 0x59, 0x0f, 0xd2, + 0x84, 0x0c, 0x66, 0x95, 0xce, 0x90, 0xda, 0x85, 0xc1, 0xb4, 0xb1, 0x47, 0xa7, 0x71, 0xac, 0x9d, + 0xac, 0x9b, 0x88, 0xa7, 0x8b, 0x5a, 0x23, 0xab, 0x63, 0xf6, 0xfe, 0xd5, 0x2a, 0xd2, 0x71, 0xe1, + 0xc5, 0x9b, 0x82, 0x02, 0x5c, 0xef, 0x24, 0xc7, 0x65, 0x31, 0xad, 0xc6, 0xdc, 0x0d, 0xd3, 0x82, + 0xc8, 0x75, 0x6d, 0x17, 0x4c, 0xa2, 0xb1, 0x16, 0xc7, 0x99, 0x60, 0x70, 0x5b, 0x4c, 0x6b, 0x30, + 0xdc, 0x3e, 0xad, 0x0c, 0x39, 0xaf, 0xed, 0x82, 0x43, 0xca, 0xac, 0xed, 0x9a, 0x56, 0x22, 0x10, + 0x16, 0xeb, 0xe4, 0xa9, 0x61, 0xc8, 0x46, 0xca, 0x65, 0x07, 0xc9, 0xe3, 0x46, 0xda, 0x5e, 0x0e, + 0xd8, 0x3a, 0xc8, 0x03, 0x96, 0xb0, 0x11, 0x19, 0x42, 0x9a, 0x51, 0xa0, 0xef, 0xc8, 0xf4, 0xd3, + 0x27, 0x0c, 0xc9, 0xf7, 0x9a, 0x92, 0xcf, 0x4e, 0x8c, 0x95, 0x33, 0x6f, 0xe8, 0xcf, 0x2e, 0x3a, + 0x97, 0xad, 0xea, 0x50, 0x8a, 0xb8, 0x9f, 0xd9, 0xb4, 0xba, 0x79, 0x18, 0xfd, 0x63, 0x18, 0xfe, + 0xae, 0x14, 0x12, 0x6c, 0x30, 0xed, 0x8c, 0xcc, 0x82, 0xbb, 0xf8, 0x29, 0xac, 0xa5, 0xf7, 0x61, + 0x6a, 0xb9, 0xf3, 0x86, 0x2e, 0xbc, 0x4e, 0xb2, 0x8a, 0xaa, 0x63, 0x8a, 0xff, 0xaa, 0xd4, 0x0a, + 0xf5, 0xd4, 0x82, 0x69, 0xa9, 0x89, 0x57, 0x9d, 0xba, 0x91, 0x4e, 0xd8, 0x14, 0x1c, 0x83, 0x7c, + 0x24, 0xed, 0xc1, 0x54, 0xc5, 0x8a, 0xa1, 0x0b, 0xab, 0xe7, 0x0d, 0x0d, 0x9f, 0xa2, 0x94, 0xab, + 0xcf, 0x28, 0xe5, 0xc9, 0x94, 0x13, 0x23, 0x72, 0x36, 0x4f, 0xb9, 0xea, 0x91, 0x24, 0xea, 0x9c, + 0x4b, 0x2c, 0x4b, 0x4f, 0x93, 0x9d, 0x5e, 0xea, 0x79, 0x63, 0x8a, 0xb4, 0x6e, 0xf1, 0xf4, 0x77, + 0xea, 0x33, 0x14, 0xc7, 0xe2, 0x9f, 0x2e, 0xd1, 0x19, 0xaa, 0x62, 0x4f, 0x0b, 0x79, 0x1b, 0x43, + 0x04, 0x8e, 0xb7, 0x90, 0xec, 0xe3, 0x29, 0x34, 0xbb, 0xfe, 0xf4, 0x18, 0x9b, 0xdf, 0x47, 0xaf, + 0x3e, 0xff, 0x49, 0x97, 0xa5, 0xa7, 0x8d, 0x0b, 0x76, 0x16, 0xf4, 0x27, 0x35, 0x71, 0x16, 0xc4, + 0x29, 0xc2, 0x9f, 0xd6, 0x5e, 0x75, 0x32, 0x24, 0xf2, 0x79, 0xa9, 0x3c, 0xc9, 0x34, 0x73, 0xbd, + 0x7c, 0x4d, 0xc4, 0x1d, 0xe2, 0xd6, 0x4f, 0x3e, 0x1b, 0xa2, 0x30, 0xd9, 0x85, 0x3b, 0x09, 0x03, + 0xf1, 0x1c, 0x82, 0xa1, 0x6c, 0xe8, 0xfc, 0x90, 0x92, 0x95, 0xa4, 0xd7, 0x36, 0xd2, 0x5e, 0x64, + 0x5a, 0x76, 0xa5, 0xa3, 0xbe, 0x7b, 0x43, 0xb1, 0xe3, 0x5a, 0xbc, 0x14, 0xb2, 0x54, 0x07, 0xb7, + 0x8b, 0x56, 0xac, 0x7a, 0x0a, 0xf6, 0xb2, 0xa1, 0x0b, 0xc3, 0x63, 0x62, 0x1f, 0x4d, 0x6b, 0x03, + 0x6c, 0x9d, 0xf3, 0x5b, 0xf5, 0x53, 0x27, 0x2b, 0x9f, 0x5f, 0x84, 0x0d, 0xe3, 0xf1, 0x02, 0xe1, + 0x0b, 0x32, 0x4f, 0x2e, 0xb2, 0x31, 0x8c, 0x3b, 0x05, 0x75, 0xb1, 0xb2, 0x42, 0x5c, 0x2e, 0x38, + 0x0e, 0x1f, 0x8c, 0xf4, 0xf4, 0xf7, 0x44, 0x4d, 0xb8, 0xbf, 0x5d, 0x4d, 0x7b, 0xc8, 0xa9, 0x7e, + 0xc2, 0x13, 0x16, 0x1c, 0x81, 0xfe, 0x6d, 0x66, 0x17, 0xde, 0x5f, 0x3b, 0x48, 0x88, 0xd6, 0xdc, + 0x93, 0x7a, 0x30, 0x3e, 0xc3, 0x0f, 0x66, 0x57, 0x20, 0xb2, 0x5e, 0xcc, 0x13, 0x1c, 0x83, 0xeb, + 0xd8, 0x09, 0x3c, 0xe1, 0x8c, 0x3c, 0x52, 0x76, 0x96, 0xcf, 0x74, 0x99, 0xfa, 0xd8, 0xa6, 0x38, + 0x1e, 0x39, 0xd8, 0x0e, 0xf3, 0x87, 0xfe, 0xd4, 0x3e, 0x6f, 0xe8, 0xfc, 0x3a, 0x8c, 0x9b, 0x83, + 0x7b, 0xbc, 0x4d, 0x4c, 0x12, 0xd0, 0xc9, 0x7d, 0xef, 0xe2, 0x9c, 0xf7, 0xe1, 0x6a, 0x54, 0x88, + 0xa3, 0x34, 0x9d, 0xc3, 0x05, 0x83, 0x0d, 0x47, 0xd9, 0x64, 0x19, 0x79, 0xdc, 0x0e, 0xc8, 0x71, + 0x0b, 0x20, 0x1b, 0x23, 0xdd, 0xf3, 0xce, 0x21, 0xdf, 0x44, 0xe7, 0xfd, 0x13, 0xb9, 0x64, 0xc1, + 0xd9, 0x28, 0xb0, 0xb5, 0x34, 0xbc, 0x39, 0x3a, 0x79, 0x5a, 0x00, 0x72, 0x16, 0xac, 0x26, 0x4f, + 0x11, 0xe5, 0x03, 0x34, 0x5b, 0xca, 0x56, 0xb8, 0xe9, 0xef, 0x71, 0x65, 0x21, 0xc3, 0x65, 0xcc, + 0x51, 0x4e, 0x85, 0xfb, 0xa2, 0x46, 0xa6, 0x63, 0xa7, 0x11, 0x17, 0x11, 0x78, 0x1a, 0xb2, 0xe7, + 0xbf, 0x07, 0xc4, 0x49, 0x65, 0x79, 0x6d, 0xe4, 0xd7, 0x81, 0x6a, 0x85, 0x6f, 0xb2, 0x53, 0x6b, + 0x28, 0x72, 0x53, 0x36, 0x9a, 0x59, 0x78, 0x37, 0xd0, 0xee, 0x95, 0xa1, 0x79, 0xd7, 0x44, 0xe8, + 0x64, 0x52, 0x94, 0x8d, 0x35, 0xdd, 0xdc, 0x62, 0x40, 0x7d, 0x92, 0x4a, 0x4a, 0x1c, 0x60, 0xf8, + 0xd1, 0xa8, 0x09, 0xcb, 0x91, 0xab, 0xdc, 0xc5, 0xf2, 0xcc, 0x55, 0x16, 0x3a, 0x57, 0xc0, 0x14, + 0xcc, 0xd7, 0x44, 0x28, 0x8e, 0x7a, 0xce, 0xe4, 0x87, 0xd6, 0xcc, 0x57, 0x5b, 0x4a, 0x5b, 0xcf, + 0xd5, 0x9c, 0x36, 0x12, 0x09, 0x5d, 0x10, 0x73, 0xca, 0x37, 0x44, 0xee, 0x4f, 0xe6, 0x8c, 0xb3, + 0xc2, 0xb3, 0x90, 0xe5, 0x3b, 0x4e, 0xc9, 0xf2, 0xb0, 0x5a, 0xb2, 0xfa, 0xad, 0x70, 0xb1, 0x5a, + 0x8a, 0x0b, 0x59, 0x49, 0xfa, 0xb0, 0x45, 0xec, 0xd8, 0x1a, 0x54, 0x0a, 0x51, 0x69, 0x62, 0xa5, + 0x10, 0x95, 0x7a, 0xca, 0x1d, 0xf3, 0x58, 0xcc, 0xe6, 0x24, 0xa5, 0x86, 0xb5, 0x75, 0x81, 0x58, + 0xc3, 0xe6, 0x66, 0x9f, 0xca, 0xcb, 0x25, 0x63, 0xb9, 0x72, 0xd3, 0x4b, 0x41, 0xeb, 0x14, 0xab, + 0x7d, 0x1e, 0xe4, 0xd0, 0x59, 0x3c, 0x2f, 0x2b, 0xf6, 0xfb, 0x77, 0x12, 0xa5, 0xaa, 0x7a, 0xd4, + 0x59, 0xc3, 0xdb, 0x42, 0xc9, 0xa6, 0x96, 0x5f, 0x70, 0x28, 0xd5, 0xf2, 0xe5, 0x03, 0xf3, 0x87, + 0x3e, 0x20, 0x6f, 0x13, 0xdd, 0x35, 0xe4, 0x39, 0x7a, 0x2b, 0xee, 0x49, 0xcc, 0x89, 0xd5, 0xf2, + 0xc3, 0xa5, 0x94, 0xd2, 0xb4, 0xb1, 0xb5, 0xc6, 0x37, 0xef, 0x0f, 0x7b, 0x27, 0x32, 0x69, 0x3c, + 0xf1, 0x08, 0x94, 0xc3, 0x9e, 0x0f, 0x88, 0x63, 0x16, 0xd9, 0xbe, 0x6b, 0x38, 0x69, 0xf3, 0xce, + 0xcf, 0xc8, 0x18, 0xb7, 0xa7, 0x98, 0x18, 0x3a, 0x65, 0x40, 0x9e, 0xc4, 0x67, 0x82, 0x7a, 0x9e, + 0xf3, 0x00, 0x89, 0x13, 0xb8, 0xc1, 0x38, 0xf7, 0x80, 0x44, 0x96, 0xed, 0x63, 0xf6, 0x03, 0x2d, + 0xe0, 0x77, 0xb7, 0x40, 0x10, 0x67, 0x44, 0x08, 0x47, 0x61, 0x25, 0x21, 0xf0, 0xe3, 0xac, 0xa8, + 0xc5, 0x39, 0xbd, 0x18, 0x69, 0x85, 0xc2, 0x4f, 0xab, 0x25, 0x93, 0x2e, 0x37, 0xbf, 0x2b, 0x54, + 0x1e, 0x28, 0x5f, 0x5f, 0x72, 0xb2, 0xb6, 0xc8, 0xef, 0xcb, 0x38, 0x59, 0x2b, 0x01, 0x9d, 0x49, + 0xcd, 0xb1, 0x76, 0xcf, 0xf5, 0xe2, 0x9e, 0x3f, 0x06, 0x84, 0x82, 0x8f, 0xfc, 0xbb, 0x07, 0x77, + 0x22, 0xbe, 0xee, 0xb5, 0xcc, 0xb2, 0xbf, 0x04, 0xf7, 0xa7, 0x5e, 0x58, 0xc0, 0x52, 0x31, 0xf3, + 0x54, 0x8a, 0xcd, 0xa9, 0x74, 0x7c, 0xfe, 0x39, 0x5e, 0x58, 0x78, 0xf2, 0x6b, 0xe2, 0x38, 0x92, + 0xae, 0x17, 0x98, 0xe3, 0x25, 0x84, 0xa8, 0xbf, 0x0a, 0x08, 0x27, 0x6a, 0x54, 0x4a, 0x22, 0xa6, + 0x24, 0x73, 0xb4, 0x26, 0xc9, 0xa8, 0xa7, 0x63, 0x1c, 0x95, 0x8e, 0xe1, 0xef, 0x48, 0x25, 0x84, + 0xa9, 0x54, 0x06, 0xb6, 0x33, 0x14, 0x5b, 0xeb, 0xd8, 0xd3, 0x00, 0xda, 0x25, 0x06, 0x7e, 0xc8, + 0x34, 0x70, 0x95, 0xb1, 0xef, 0x08, 0x17, 0x54, 0x9c, 0x27, 0xcd, 0x17, 0x6d, 0x92, 0x31, 0xa9, + 0x39, 0x43, 0x9c, 0x71, 0xf6, 0x55, 0x5a, 0x0d, 0xec, 0x2d, 0x79, 0x56, 0xd1, 0xf7, 0x0d, 0x97, + 0x61, 0xc8, 0xb7, 0x89, 0xb7, 0x3a, 0x21, 0x7c, 0x27, 0x76, 0xad, 0xf8, 0x5d, 0x35, 0xcf, 0x45, + 0xce, 0x83, 0x05, 0x4e, 0x03, 0x9d, 0xd8, 0x9e, 0xfc, 0xea, 0xc9, 0x45, 0xec, 0x8c, 0xb6, 0x74, + 0x54, 0xa9, 0x0c, 0x89, 0x93, 0x1b, 0xb7, 0x3f, 0xc1, 0xdb, 0x95, 0xfc, 0xc5, 0xac, 0x39, 0xcd, + 0xc1, 0xf8, 0x4b, 0x71, 0x31, 0x63, 0xb4, 0xf7, 0x3a, 0x17, 0x59, 0xe7, 0xbc, 0x44, 0xb9, 0xb8, + 0x70, 0x64, 0xb8, 0x41, 0xc9, 0x29, 0x39, 0x67, 0xdf, 0x23, 0x95, 0x89, 0x9e, 0x94, 0x85, 0xc9, + 0x95, 0xbe, 0xd7, 0xbb, 0x5d, 0x0b, 0xc2, 0x5b, 0xd4, 0xd3, 0x38, 0xe2, 0x8c, 0xd7, 0xab, 0x33, + 0xce, 0x87, 0x5a, 0xcc, 0xcf, 0x59, 0x13, 0xcf, 0x87, 0x4e, 0xe2, 0x63, 0x4a, 0x99, 0x44, 0xac, + 0x58, 0x34, 0x49, 0xe3, 0x70, 0x7c, 0x14, 0x6f, 0x7a, 0x1e, 0xfc, 0x0f, 0x33, 0x9d, 0x11, 0xb2, + 0xcf, 0x42, 0x8a, 0x34, 0x0e, 0xa9, 0x9f, 0x91, 0x61, 0xbf, 0x7a, 0xa1, 0xa9, 0x62, 0xe8, 0xca, + 0xa3, 0x55, 0x5b, 0x98, 0x84, 0xb4, 0x48, 0x95, 0xbd, 0x19, 0x84, 0xff, 0xc9, 0xe3, 0xe8, 0xb1, + 0x13, 0x31, 0x15, 0x3d, 0x96, 0x47, 0x0a, 0x8a, 0x19, 0x29, 0x6d, 0x61, 0xe4, 0xcd, 0xa2, 0x8c, + 0x46, 0xb2, 0xbd, 0x17, 0xed, 0x6b, 0xad, 0x4b, 0xa3, 0x3f, 0xc3, 0xb1, 0xed, 0xb6, 0x2e, 0xfd, + 0x8f, 0x72, 0x30, 0xa9, 0x4e, 0x4c, 0x87, 0x90, 0xf0, 0x87, 0xa6, 0x40, 0x88, 0x6c, 0x62, 0xc8, + 0xe7, 0xca, 0x5e, 0xde, 0x2b, 0x5f, 0x66, 0x58, 0xba, 0x55, 0xf7, 0x06, 0xf4, 0x8b, 0xb4, 0xda, + 0x88, 0xdb, 0x27, 0xad, 0x36, 0xe6, 0x37, 0x6d, 0x47, 0xed, 0xc6, 0xb9, 0x4c, 0xff, 0x36, 0xec, + 0x8f, 0xae, 0x92, 0xb3, 0xf8, 0xb8, 0x3a, 0x59, 0xab, 0xb7, 0x3e, 0xb5, 0xf2, 0x55, 0x67, 0x45, + 0xa1, 0x78, 0xa1, 0x1f, 0xa9, 0xc8, 0x72, 0x30, 0x31, 0xdd, 0xf2, 0x80, 0x98, 0x35, 0x36, 0x46, + 0x7f, 0x9f, 0xea, 0xf1, 0xe1, 0xec, 0x3e, 0x59, 0xdb, 0x8f, 0x2d, 0xaf, 0x8a, 0xf8, 0x6c, 0x62, + 0xcf, 0x26, 0xd5, 0xc1, 0xca, 0x8a, 0xa5, 0xa4, 0x33, 0x09, 0x7d, 0xed, 0xcf, 0x9e, 0xfb, 0x1e, + 0x58, 0x14, 0xcb, 0xfc, 0xb3, 0x60, 0xe6, 0x98, 0x42, 0x38, 0x0e, 0x0c, 0xea, 0xf7, 0x1e, 0x39, + 0x48, 0x74, 0x85, 0x9f, 0xe0, 0xce, 0x08, 0x43, 0x31, 0xa1, 0xab, 0x72, 0x5f, 0x80, 0xc5, 0x34, + 0x6b, 0x5d, 0xa4, 0xf1, 0x5b, 0x71, 0xd6, 0xbe, 0xe7, 0x5b, 0xbf, 0x96, 0x2d, 0x84, 0x8b, 0x6d, + 0x7f, 0x14, 0x57, 0x84, 0x22, 0xa7, 0xb5, 0xba, 0xa7, 0x23, 0x70, 0x9c, 0xfc, 0xb4, 0xbf, 0x9e, + 0xdc, 0xc1, 0x3b, 0x75, 0x09, 0x06, 0xed, 0xdb, 0xf7, 0x2b, 0xa1, 0xe4, 0xbe, 0x7d, 0x57, 0x72, + 0xdf, 0xfe, 0x1c, 0xed, 0xc2, 0x3d, 0x01, 0x2c, 0x9d, 0x9c, 0xb4, 0xd9, 0xd2, 0x6e, 0x37, 0xf3, + 0x53, 0xcd, 0x4f, 0x3f, 0x6a, 0x86, 0xc0, 0xe7, 0xcc, 0x42, 0x78, 0x0a, 0x7e, 0xb3, 0x7a, 0x41, + 0xbc, 0x35, 0x84, 0x9c, 0xc8, 0x59, 0xa5, 0x83, 0xa4, 0x35, 0xd6, 0xa5, 0xb8, 0x40, 0x89, 0x6a, + 0x93, 0x68, 0xbf, 0x7a, 0xa6, 0xd8, 0xf7, 0xf8, 0x30, 0x2d, 0x76, 0x86, 0x18, 0xea, 0xf6, 0x7f, + 0xae, 0xc4, 0xfe, 0x22, 0xfe, 0x36, 0xa5, 0xfd, 0x1e, 0x48, 0xb6, 0x46, 0x06, 0xf7, 0x94, 0x83, + 0x54, 0x8e, 0xbc, 0x35, 0x2d, 0x62, 0xe7, 0x32, 0x39, 0x7c, 0x67, 0x6e, 0x68, 0xd4, 0xee, 0xb3, + 0x9f, 0x57, 0x2c, 0xd0, 0x08, 0x71, 0xbc, 0x1b, 0x9c, 0x21, 0xdc, 0x9d, 0xfb, 0xc6, 0xee, 0xce, + 0x35, 0x07, 0x93, 0x58, 0x49, 0xa1, 0x46, 0xfb, 0x9e, 0xaa, 0x3d, 0x57, 0x5e, 0x67, 0x9e, 0x47, + 0x1d, 0xe1, 0xa7, 0xd9, 0xde, 0xde, 0xde, 0xb5, 0xdd, 0xfe, 0x81, 0x62, 0x6a, 0xfd, 0xf0, 0x57, + 0x78, 0x67, 0xd4, 0xb3, 0x38, 0xe9, 0x69, 0xcd, 0xce, 0xd0, 0x6e, 0x6f, 0xd4, 0x65, 0x55, 0x00, + 0xbb, 0x93, 0x9a, 0x20, 0x5c, 0xd6, 0x71, 0x2b, 0xb6, 0xce, 0x59, 0xa5, 0x2d, 0x69, 0x37, 0xb2, + 0x27, 0x69, 0x37, 0x72, 0x14, 0xdb, 0x6c, 0x07, 0xa1, 0x07, 0x8b, 0x6e, 0x9c, 0x57, 0x63, 0x6a, + 0x2f, 0xc6, 0x7d, 0x6e, 0xfb, 0x8b, 0x89, 0xba, 0xde, 0x86, 0x7b, 0x73, 0xfc, 0x3d, 0x90, 0xf6, + 0xdb, 0xc4, 0xea, 0xde, 0x68, 0xdf, 0x97, 0x1c, 0xb3, 0xa7, 0x29, 0xad, 0xdb, 0x08, 0x25, 0x48, + 0x64, 0xdc, 0xda, 0x0a, 0xbd, 0x2e, 0xb6, 0x5a, 0xd2, 0x36, 0x35, 0x62, 0x7d, 0xb2, 0x31, 0xa7, + 0x0f, 0x4e, 0xd6, 0x9a, 0x01, 0xac, 0x0b, 0x93, 0xf2, 0x31, 0xa5, 0x3c, 0xd0, 0xa7, 0x04, 0xe8, + 0x8d, 0xae, 0x2d, 0xb2, 0x3c, 0x5d, 0x5b, 0xa4, 0x1c, 0x69, 0xc4, 0xc3, 0xf1, 0x60, 0x5c, 0x99, + 0x82, 0x31, 0xde, 0x50, 0xa8, 0xac, 0x6f, 0x5f, 0x2b, 0x5e, 0x4a, 0xf7, 0x93, 0x7b, 0xbb, 0xbb, + 0x83, 0x64, 0x9a, 0x6c, 0x8c, 0xb9, 0xbc, 0xdc, 0xdb, 0x5d, 0xf2, 0x7c, 0x80, 0xa8, 0x5b, 0x26, + 0x9d, 0x1a, 0x25, 0xb4, 0xb6, 0xe0, 0x49, 0x0f, 0xd7, 0x2f, 0xcb, 0x91, 0x91, 0xa7, 0x4e, 0xcc, + 0x46, 0xe9, 0x49, 0xdd, 0xff, 0x91, 0x3e, 0x17, 0xd5, 0x55, 0xa2, 0x49, 0x9f, 0x5d, 0x9c, 0x5a, + 0xfb, 0x63, 0x5f, 0xed, 0x5f, 0x5b, 0xbf, 0x34, 0xdf, 0x10, 0x98, 0x1b, 0x9a, 0x3b, 0x56, 0x1b, + 0xea, 0xe4, 0xd7, 0xf8, 0x1c, 0x14, 0x0d, 0xf1, 0xb9, 0xad, 0xd0, 0xdd, 0x43, 0x68, 0x40, 0x8f, + 0xae, 0x79, 0x64, 0xb5, 0x5a, 0xe4, 0xc2, 0x5d, 0x9b, 0x68, 0xd4, 0x63, 0x2f, 0x0e, 0x05, 0x03, + 0xc1, 0x5e, 0x3f, 0x51, 0x72, 0xa4, 0x39, 0x49, 0xaa, 0x4d, 0x39, 0xee, 0x66, 0xb2, 0x3d, 0x5f, + 0x27, 0x08, 0x7d, 0x03, 0xa2, 0x59, 0x97, 0x9c, 0x0e, 0x33, 0x99, 0xed, 0x09, 0x86, 0x1d, 0xd9, + 0x02, 0xb5, 0xd8, 0xf7, 0x8b, 0x91, 0xf2, 0xd4, 0xb3, 0x8b, 0xb8, 0x01, 0xbc, 0x23, 0x55, 0x20, + 0x3e, 0xca, 0x51, 0xd8, 0x09, 0x1a, 0x47, 0xab, 0x33, 0x34, 0xe2, 0xf3, 0x5b, 0xb4, 0xd3, 0xc3, + 0x71, 0x0f, 0x86, 0xc5, 0x2e, 0xa4, 0xd8, 0x63, 0x4b, 0xe0, 0x44, 0xda, 0x3d, 0xb6, 0x0e, 0xec, + 0xfc, 0x28, 0x45, 0xb1, 0x3d, 0x29, 0x8a, 0xed, 0x41, 0x8a, 0x7d, 0x28, 0x2e, 0x9a, 0xd2, 0xcf, + 0xba, 0xdd, 0x84, 0x14, 0x34, 0x9c, 0x9f, 0x07, 0x21, 0x9c, 0xff, 0x95, 0x05, 0x06, 0xd2, 0xc6, + 0xf1, 0x8d, 0xa3, 0xb6, 0xc1, 0xb6, 0xe0, 0xbd, 0x34, 0xf7, 0xe4, 0x22, 0x5d, 0xfb, 0x23, 0x20, + 0x96, 0x6c, 0x7e, 0x59, 0x32, 0xcb, 0xe3, 0x57, 0xc7, 0xc5, 0x4a, 0xa4, 0xe9, 0x26, 0xec, 0x8f, + 0x05, 0x49, 0x2d, 0xba, 0x27, 0x31, 0x85, 0xda, 0xb1, 0xb4, 0x0c, 0x29, 0x7c, 0x66, 0x7a, 0xfb, + 0x50, 0xfd, 0x76, 0x52, 0xec, 0x0e, 0xdc, 0xeb, 0x45, 0xf0, 0x0b, 0x31, 0x9f, 0xa3, 0xd1, 0xb9, + 0xbc, 0xcb, 0xc1, 0x03, 0x21, 0x3a, 0xb7, 0x62, 0x54, 0xd5, 0xcc, 0xf1, 0xb5, 0x12, 0xfd, 0x88, + 0xa5, 0x9c, 0x82, 0x6b, 0x69, 0xe5, 0x58, 0x9f, 0x65, 0xec, 0x8d, 0x4b, 0x1c, 0x47, 0xb9, 0x7a, + 0xfc, 0xfc, 0xbc, 0x1c, 0xe3, 0x85, 0xd8, 0x4a, 0xed, 0x17, 0x27, 0xd2, 0x5d, 0xf4, 0xe3, 0x88, + 0xe3, 0xe5, 0x29, 0xf1, 0xd9, 0xb0, 0x6c, 0x5f, 0x0b, 0xcd, 0x0d, 0xcc, 0xdd, 0xe0, 0xa7, 0xf5, + 0xb9, 0x15, 0x90, 0x77, 0x28, 0xc4, 0x2f, 0x7c, 0xb8, 0x4a, 0x17, 0x76, 0x77, 0xd3, 0xca, 0x49, + 0x08, 0x97, 0x3e, 0xf3, 0xc9, 0xda, 0x82, 0x89, 0x27, 0xbf, 0x92, 0x2f, 0xf0, 0xb8, 0xbe, 0xf1, + 0x27, 0x6b, 0x0b, 0xbd, 0x10, 0x4e, 0xd6, 0x2b, 0x00, 0x7e, 0xf6, 0x6d, 0x90, 0x24, 0x86, 0xf8, + 0x6d, 0xb0, 0xfb, 0x7e, 0xd1, 0x2f, 0x95, 0x88, 0xe3, 0x23, 0x71, 0xfc, 0x55, 0xdc, 0xd7, 0x85, + 0x2b, 0x27, 0xf7, 0x5f, 0x61, 0xe5, 0xba, 0x32, 0xde, 0x09, 0x4c, 0x37, 0x66, 0xcf, 0xe5, 0x0b, + 0xe2, 0xbc, 0x52, 0xa4, 0xa0, 0xa9, 0xd5, 0xe6, 0x4a, 0xdf, 0xbc, 0xf7, 0xa0, 0xa8, 0xe4, 0xac, + 0x9d, 0x50, 0xed, 0x72, 0xa4, 0x50, 0x0c, 0xb2, 0xfe, 0x62, 0x86, 0xa8, 0x59, 0xa7, 0x79, 0x17, + 0xa6, 0x85, 0xc0, 0x32, 0xad, 0xd4, 0xbe, 0x89, 0x78, 0x5c, 0xda, 0x09, 0xcb, 0x0f, 0x30, 0xbf, + 0x40, 0x46, 0xe4, 0xad, 0xac, 0xd2, 0x3a, 0xdc, 0xdf, 0x5a, 0x7f, 0xfb, 0xab, 0xc8, 0xf3, 0xe0, + 0x51, 0xb2, 0x9c, 0x65, 0xe4, 0xb3, 0x43, 0xcc, 0xa0, 0xd3, 0x5e, 0xfb, 0x1e, 0xac, 0x4b, 0xe5, + 0x6e, 0xfc, 0xad, 0xc2, 0xc8, 0xd6, 0x47, 0x0e, 0x2a, 0x46, 0x6c, 0xfb, 0x28, 0xeb, 0xb5, 0xd4, + 0x2a, 0xc7, 0xc2, 0x38, 0xe6, 0x11, 0xe6, 0x2d, 0xeb, 0xe7, 0xeb, 0xb4, 0xa7, 0xf2, 0xe0, 0x2c, + 0x24, 0xaf, 0xaf, 0x93, 0xaf, 0xa5, 0x21, 0x41, 0x3c, 0x3a, 0xad, 0xf1, 0x38, 0x3b, 0xb3, 0xe9, + 0x5c, 0x5d, 0x5f, 0x53, 0xd9, 0xce, 0x7e, 0xee, 0xd0, 0x15, 0x7e, 0xe2, 0xe6, 0xe0, 0x27, 0x38, + 0x6a, 0x84, 0xc5, 0x5c, 0xca, 0xb4, 0xec, 0x44, 0xc9, 0x05, 0x32, 0xd7, 0x0f, 0x73, 0x01, 0x69, + 0x24, 0x9d, 0x5c, 0xac, 0x8f, 0xb2, 0x60, 0x42, 0xff, 0xcb, 0x25, 0xf4, 0x96, 0xae, 0x04, 0x8f, + 0x31, 0x3f, 0x73, 0x43, 0x9c, 0xad, 0xe9, 0x66, 0x26, 0x2f, 0x48, 0x4b, 0x31, 0x6a, 0x22, 0x39, + 0x9b, 0x62, 0x24, 0x1b, 0x0c, 0xe6, 0x8f, 0xd8, 0x4f, 0xb2, 0xf5, 0xbf, 0x34, 0xe2, 0xae, 0xcf, + 0x0b, 0x32, 0xce, 0xb9, 0x28, 0xee, 0xb7, 0xf4, 0x93, 0xe6, 0xe2, 0xd9, 0x84, 0xdc, 0x47, 0x52, + 0x1b, 0xa6, 0xef, 0x01, 0x82, 0xe9, 0x5a, 0xf5, 0xd1, 0x4f, 0x9e, 0xce, 0xb2, 0x1a, 0xd0, 0xec, + 0x19, 0xba, 0x23, 0x94, 0xf4, 0xcd, 0xb1, 0xd7, 0x9a, 0xa7, 0x7d, 0x20, 0xec, 0x23, 0xc4, 0x56, + 0x26, 0xcf, 0x4f, 0xe9, 0x73, 0xe6, 0xa5, 0xe9, 0x73, 0xe6, 0xe9, 0xfa, 0x9c, 0x79, 0x09, 0x7d, + 0xce, 0x14, 0x95, 0x63, 0x3e, 0x2c, 0xda, 0xf4, 0x36, 0x22, 0xae, 0x23, 0xa3, 0x62, 0xe8, 0x63, + 0x87, 0xce, 0x77, 0x24, 0x5a, 0x69, 0x21, 0xb3, 0x6d, 0xc1, 0xb9, 0x20, 0x0b, 0x34, 0x07, 0xaf, + 0x6a, 0x9d, 0x45, 0xc9, 0xd6, 0x09, 0xac, 0x04, 0xc9, 0x28, 0x67, 0xae, 0x8e, 0x63, 0xcd, 0x05, + 0x9e, 0xde, 0xe8, 0xb4, 0xf8, 0xe9, 0xc2, 0xfe, 0x38, 0x93, 0x2f, 0xb1, 0xda, 0x4a, 0xf3, 0x06, + 0xe3, 0xa3, 0x78, 0x1b, 0x26, 0x77, 0x5a, 0x5c, 0xac, 0xeb, 0x05, 0x79, 0x99, 0x16, 0x8b, 0xbd, + 0x9c, 0xe9, 0x5d, 0x3d, 0x7c, 0xa0, 0x0c, 0x79, 0x93, 0x29, 0x31, 0x25, 0xd7, 0x09, 0x27, 0x1f, + 0xc4, 0x5a, 0xde, 0xfc, 0x42, 0x57, 0x0c, 0xca, 0x61, 0x5f, 0x9c, 0x2c, 0x78, 0xc4, 0x82, 0x1c, + 0xf8, 0x49, 0x9c, 0xb0, 0xb9, 0xd4, 0x93, 0xe5, 0x71, 0xae, 0x53, 0x83, 0xb4, 0xed, 0x38, 0xa6, + 0x33, 0x07, 0x39, 0x79, 0xc6, 0xc5, 0xcb, 0x33, 0x41, 0x65, 0xd6, 0x5d, 0x3f, 0x4a, 0xee, 0x8c, + 0x6d, 0x5c, 0x73, 0x4d, 0x70, 0xb3, 0x33, 0x4e, 0x01, 0x72, 0x63, 0xc5, 0xcc, 0x6b, 0x95, 0xc8, + 0x7e, 0x1b, 0x41, 0x8e, 0xf9, 0xd9, 0x6f, 0xe6, 0x73, 0x46, 0x2a, 0x2d, 0xfb, 0x10, 0x72, 0x3d, + 0xf3, 0x09, 0xa5, 0x2e, 0x59, 0xea, 0x4e, 0x5c, 0x19, 0x68, 0x9e, 0x15, 0x3b, 0x9b, 0x20, 0x4b, + 0xb1, 0xed, 0x78, 0x1a, 0x7b, 0xd3, 0xf4, 0xc2, 0x7b, 0x90, 0xb5, 0xc4, 0xec, 0xf4, 0x8b, 0x37, + 0xaa, 0x1f, 0x7c, 0xeb, 0xd7, 0xc9, 0xb8, 0xed, 0xb1, 0xc2, 0x72, 0x60, 0x3e, 0xa0, 0x01, 0xf6, + 0xd9, 0x8b, 0x61, 0xce, 0x58, 0x49, 0xa9, 0xde, 0xdf, 0x8f, 0xeb, 0x27, 0xae, 0x3e, 0xcc, 0xb9, + 0x90, 0xbc, 0x3b, 0xb2, 0x9c, 0x7d, 0x3c, 0x67, 0xa9, 0x94, 0xdd, 0xbb, 0x71, 0xac, 0xcf, 0x8a, + 0x2e, 0x4d, 0x95, 0x03, 0xcb, 0xe0, 0x27, 0xfc, 0x59, 0x37, 0x2b, 0x47, 0xff, 0xb3, 0x54, 0x8e, + 0x1d, 0xcf, 0x62, 0x39, 0x72, 0xdc, 0xa5, 0xce, 0x9b, 0xd4, 0x0f, 0x4a, 0xce, 0x41, 0x56, 0x9a, + 0x34, 0xd9, 0xee, 0x2e, 0x4d, 0x95, 0x8b, 0x9d, 0x77, 0x79, 0xb0, 0x97, 0x67, 0xb1, 0x73, 0xdb, + 0xfa, 0x54, 0xbc, 0x2b, 0x55, 0x54, 0x66, 0xdc, 0x57, 0x52, 0x78, 0xa7, 0x62, 0x89, 0xad, 0x54, + 0x4c, 0xb1, 0xa8, 0x6e, 0x13, 0x4b, 0xe7, 0xad, 0x2e, 0x7e, 0x06, 0x03, 0x43, 0x2a, 0xee, 0xec, + 0xd4, 0x1c, 0xbc, 0xec, 0x78, 0x39, 0x60, 0x68, 0x29, 0xc0, 0x50, 0xe3, 0x56, 0x18, 0x5a, 0x5e, + 0xfb, 0xbf, 0x88, 0xe3, 0x55, 0xdf, 0x50, 0x77, 0x6f, 0x34, 0x89, 0xe1, 0x75, 0x5b, 0xbe, 0x6f, + 0x34, 0x86, 0xd7, 0xa8, 0xd7, 0x0c, 0xbf, 0xab, 0xe1, 0x09, 0x18, 0x5a, 0xb1, 0xa5, 0x4b, 0x18, + 0xaf, 0xe2, 0xf3, 0xa3, 0x78, 0x7d, 0x03, 0xaf, 0xfd, 0xc9, 0x54, 0x97, 0xe2, 0x2f, 0x3b, 0xc7, + 0xfb, 0x51, 0x63, 0xcb, 0x1b, 0x5a, 0x57, 0x34, 0x34, 0xa5, 0xc0, 0x31, 0xee, 0x6d, 0x5b, 0xd6, + 0xb4, 0xac, 0xed, 0x9b, 0xc9, 0xf4, 0xc6, 0xfc, 0x13, 0x60, 0x28, 0x9a, 0x40, 0xb1, 0x92, 0xaf, + 0x8f, 0x7b, 0xdd, 0xe0, 0xfb, 0x5b, 0xb8, 0xd7, 0x0d, 0x45, 0x7f, 0x2f, 0xee, 0x75, 0xa0, 0xf1, + 0x6f, 0x21, 0x5e, 0x37, 0x2c, 0xbd, 0x3e, 0xd2, 0x44, 0x43, 0xed, 0x58, 0xa4, 0x09, 0x15, 0x3e, + 0x09, 0x69, 0xa2, 0xc1, 0x3f, 0x16, 0x69, 0xa2, 0xa1, 0xfa, 0x6a, 0xa4, 0x89, 0x06, 0xe5, 0x7f, + 0x8a, 0x34, 0x91, 0x40, 0x82, 0xa0, 0x39, 0xd9, 0x70, 0x34, 0x35, 0x27, 0x71, 0x57, 0xa9, 0x44, + 0x17, 0xb3, 0xd0, 0xd3, 0x31, 0x18, 0x65, 0x1f, 0x5a, 0x1f, 0x0d, 0x96, 0x9c, 0x05, 0x09, 0x57, + 0x1e, 0xf2, 0x0b, 0xe4, 0xc4, 0x67, 0x27, 0x3e, 0x4b, 0x78, 0x2f, 0x48, 0xa1, 0x50, 0x78, 0x1a, + 0x71, 0xf7, 0xf4, 0x9c, 0xf6, 0xa2, 0xe8, 0x17, 0x8b, 0x7b, 0x06, 0xe1, 0x26, 0x86, 0x08, 0x59, + 0x4f, 0x08, 0x8c, 0x98, 0x42, 0x7e, 0x3a, 0x16, 0x45, 0x52, 0x66, 0x40, 0x3b, 0x5f, 0xc7, 0x18, + 0x99, 0x32, 0xc9, 0x11, 0x48, 0x67, 0x06, 0xdf, 0xa4, 0x79, 0xcc, 0x32, 0x70, 0x79, 0x01, 0xd7, + 0xf7, 0x92, 0xcd, 0xee, 0xf1, 0xae, 0xaa, 0x56, 0xce, 0x09, 0xad, 0x72, 0x46, 0xdc, 0x8d, 0xb8, + 0x5b, 0x30, 0x27, 0x7c, 0x83, 0xb4, 0x66, 0x0f, 0x76, 0x8d, 0x9d, 0xe1, 0x9c, 0x33, 0x30, 0x44, + 0x3a, 0xa1, 0x38, 0x0f, 0x7c, 0xed, 0x30, 0x2b, 0x0f, 0x0a, 0xc2, 0x6b, 0x55, 0xa3, 0x67, 0x26, + 0x10, 0x62, 0x34, 0x68, 0x9a, 0x6a, 0x74, 0xce, 0x84, 0x1c, 0x7a, 0x1e, 0xd1, 0x96, 0x64, 0xf1, + 0xb0, 0x25, 0x66, 0x53, 0x0f, 0x4d, 0x22, 0xf2, 0xcf, 0xe7, 0x35, 0xe0, 0x7a, 0xed, 0xe0, 0xfe, + 0x45, 0xc4, 0x0c, 0xf2, 0x35, 0x3d, 0xd8, 0xf3, 0x4e, 0x2f, 0xf2, 0x51, 0x50, 0xbd, 0x31, 0x96, + 0xd1, 0x4f, 0x3e, 0x10, 0x2d, 0x0c, 0xd3, 0xd5, 0x29, 0xc7, 0x6b, 0x37, 0xca, 0x13, 0x9d, 0xf3, + 0x3b, 0x60, 0x55, 0xc1, 0x1b, 0xeb, 0x2b, 0xce, 0x81, 0xe4, 0xad, 0x24, 0x4b, 0x73, 0xd8, 0x89, + 0x3b, 0x01, 0x07, 0xa1, 0x55, 0xb4, 0x66, 0x20, 0xbd, 0x32, 0xaa, 0xd9, 0xbb, 0x56, 0x47, 0xb3, + 0xe8, 0xcc, 0x4b, 0x65, 0xa7, 0xc4, 0x23, 0xe7, 0x48, 0x17, 0x05, 0xc7, 0xd6, 0x1a, 0x8c, 0xd3, + 0x6d, 0xce, 0xc3, 0x1a, 0x4c, 0x88, 0x76, 0xc4, 0xc4, 0xab, 0x34, 0x7e, 0x17, 0xcf, 0x20, 0xec, + 0x42, 0x2b, 0xae, 0x10, 0x8e, 0x9a, 0xf8, 0xe0, 0xd3, 0x60, 0x9d, 0xe1, 0x07, 0xfb, 0x8c, 0x32, + 0x30, 0xe3, 0x0e, 0xcd, 0x31, 0x23, 0x08, 0xb9, 0xe4, 0x29, 0x69, 0x70, 0xf3, 0x0c, 0x92, 0xb1, + 0x19, 0x03, 0xcf, 0x40, 0x4e, 0x64, 0x3b, 0x98, 0xc5, 0xb9, 0x29, 0x0b, 0x5a, 0xa4, 0x9d, 0x1e, + 0xa9, 0x32, 0x4d, 0x7a, 0x3c, 0x37, 0xcd, 0xdb, 0x7b, 0xd9, 0xe1, 0xff, 0x70, 0xfb, 0x7a, 0x21, + 0xb2, 0x1a, 0x77, 0x84, 0xae, 0xbd, 0xab, 0x71, 0x57, 0x13, 0x66, 0x1e, 0xdd, 0x41, 0xb0, 0x90, + 0xff, 0x91, 0xd1, 0x88, 0x21, 0x57, 0xaa, 0xa4, 0xc8, 0x55, 0x21, 0xe1, 0x34, 0xbf, 0x60, 0x00, + 0x6f, 0x38, 0x5d, 0xe4, 0xbf, 0x10, 0xf6, 0x23, 0x1f, 0x4b, 0xad, 0x84, 0xbb, 0x17, 0xd9, 0x05, + 0x8e, 0x33, 0xeb, 0x52, 0x9e, 0x67, 0x47, 0x9f, 0x5f, 0x30, 0xd4, 0x08, 0xfa, 0xe2, 0x09, 0xa9, + 0xb4, 0x95, 0x40, 0xbc, 0xbb, 0x63, 0x84, 0xa2, 0x6e, 0xc3, 0x9a, 0xc7, 0x18, 0x8e, 0xf6, 0x85, + 0xe8, 0x52, 0x8e, 0xa7, 0x1d, 0x55, 0xd8, 0xfd, 0x4f, 0xaa, 0xc9, 0xb9, 0x0c, 0x8c, 0x8a, 0xec, + 0x84, 0x63, 0xf1, 0x63, 0x3d, 0xd4, 0x2f, 0x15, 0xd8, 0x2f, 0xb8, 0x32, 0x58, 0xd9, 0x7e, 0x6c, + 0xb6, 0xd9, 0xc3, 0xda, 0xb2, 0xe0, 0xb7, 0xef, 0x32, 0xff, 0xc6, 0xc6, 0xa8, 0x69, 0xf0, 0x61, + 0x91, 0x74, 0xb6, 0xfa, 0xa6, 0xce, 0x63, 0xfa, 0x14, 0xe6, 0xa8, 0x85, 0xec, 0x19, 0xf1, 0x97, + 0x19, 0x5b, 0x6c, 0x1b, 0x98, 0xc9, 0x1f, 0x4c, 0xc9, 0x19, 0xf2, 0x28, 0x5d, 0xfa, 0x2e, 0xd8, + 0x77, 0x76, 0x61, 0x2b, 0x74, 0x2a, 0x59, 0x91, 0x38, 0x86, 0xb9, 0x08, 0x0f, 0x45, 0x0c, 0xec, + 0xa5, 0xfd, 0x9e, 0x33, 0xa5, 0xc3, 0x26, 0xd2, 0xa8, 0x24, 0x9b, 0xeb, 0x82, 0x74, 0x5b, 0x65, + 0x2c, 0xfd, 0x06, 0xb9, 0x19, 0x24, 0x65, 0xe5, 0x4e, 0x6a, 0xc3, 0x56, 0xe4, 0xa0, 0x1c, 0xa3, + 0x6c, 0x94, 0xf3, 0xc0, 0xcc, 0x34, 0x49, 0xcc, 0x6a, 0x39, 0xf9, 0x0a, 0xbc, 0xaa, 0x2d, 0x97, + 0x5f, 0xa3, 0xc5, 0x6b, 0xae, 0x0a, 0x99, 0x37, 0xca, 0x2b, 0x8c, 0x98, 0xb6, 0xb6, 0x9b, 0x18, + 0x06, 0x69, 0xb7, 0x18, 0x38, 0xbc, 0x4f, 0xc6, 0x5e, 0x0d, 0x77, 0x63, 0xa9, 0x63, 0xa3, 0x3d, + 0xc5, 0xe8, 0xd6, 0x6e, 0xdc, 0xf7, 0xa5, 0xd9, 0x59, 0xe5, 0xad, 0x00, 0xd2, 0x0f, 0xfa, 0x10, + 0x82, 0xde, 0x30, 0xf8, 0x5d, 0x16, 0x77, 0x18, 0xef, 0xc5, 0x78, 0x15, 0xb9, 0xe8, 0xa9, 0xd0, + 0x6d, 0x51, 0x16, 0x93, 0xff, 0x34, 0x53, 0x57, 0xe7, 0x2d, 0x9a, 0xd6, 0x69, 0xde, 0xdb, 0xd5, + 0x50, 0x39, 0xc6, 0x73, 0x1a, 0x79, 0x4d, 0xcb, 0x05, 0x09, 0x9c, 0xc8, 0xc3, 0x17, 0xc0, 0x2c, + 0xc0, 0x7d, 0x85, 0xe2, 0xa2, 0x55, 0x55, 0x91, 0xc8, 0xf3, 0xb1, 0x92, 0x2b, 0xfb, 0x95, 0x1c, + 0xe2, 0xad, 0x95, 0x2c, 0xfc, 0x5b, 0xac, 0x58, 0x5d, 0x7e, 0xc5, 0xe4, 0xf6, 0x93, 0x45, 0xb6, + 0xd3, 0x50, 0x42, 0x5e, 0x62, 0x97, 0x33, 0xca, 0x41, 0x76, 0xed, 0x5b, 0xf0, 0x99, 0xe8, 0xca, + 0x0e, 0x0f, 0xa8, 0xb6, 0x92, 0xf7, 0xd2, 0x28, 0x0e, 0x59, 0xf8, 0x48, 0x84, 0x4f, 0xbb, 0x73, + 0x1b, 0x58, 0x1b, 0x56, 0xe1, 0x5f, 0x7b, 0x5d, 0xc7, 0x2a, 0xc7, 0x1b, 0xdb, 0xb0, 0x8d, 0xcb, + 0xa4, 0xfb, 0x71, 0x37, 0x52, 0xe8, 0xd9, 0x86, 0x1c, 0x34, 0x71, 0x0a, 0xdb, 0x98, 0xaf, 0xd3, + 0x5c, 0x0c, 0x2b, 0xc2, 0x30, 0xd2, 0xad, 0x29, 0x26, 0x9f, 0xa7, 0xc8, 0x33, 0x3b, 0xc4, 0x65, + 0x48, 0xb1, 0x7b, 0xa2, 0x61, 0x69, 0x19, 0xad, 0x14, 0x8a, 0x8b, 0xf4, 0xb8, 0x54, 0x23, 0x79, + 0xb4, 0xde, 0x85, 0xe3, 0xb5, 0x21, 0x6b, 0x57, 0x57, 0x9d, 0xcd, 0xd5, 0xe7, 0xc6, 0x67, 0x4f, + 0x10, 0xbf, 0x35, 0x2b, 0x22, 0x1b, 0x07, 0xd6, 0x1f, 0x0d, 0xa8, 0x47, 0x03, 0x5b, 0x02, 0x8f, + 0x88, 0x41, 0xdc, 0xfb, 0x5a, 0x91, 0xea, 0xd9, 0xb1, 0x6d, 0xdb, 0xdb, 0x89, 0x5a, 0x08, 0x48, + 0x5b, 0x46, 0x97, 0xf5, 0xa5, 0x30, 0xe1, 0xd3, 0xbf, 0x84, 0xfd, 0x99, 0x8f, 0x3b, 0x9d, 0x9d, + 0xd6, 0x65, 0x38, 0x22, 0x69, 0x4e, 0x6d, 0xc3, 0x91, 0xcb, 0x50, 0x0e, 0x90, 0x72, 0x23, 0x65, + 0xc2, 0x91, 0x4e, 0x94, 0xa9, 0x8b, 0xe5, 0xaf, 0xa3, 0xc9, 0xab, 0xe4, 0x75, 0x96, 0x69, 0x5a, + 0x33, 0xca, 0x14, 0xd7, 0x29, 0x53, 0x9c, 0x53, 0xa6, 0x18, 0x38, 0x43, 0x9d, 0xe0, 0x0d, 0x21, + 0x85, 0x59, 0x85, 0x2d, 0x65, 0xdd, 0x4b, 0x63, 0x63, 0x05, 0xee, 0xa2, 0x1c, 0xd1, 0xa5, 0x3b, + 0x37, 0x34, 0xd4, 0x97, 0x7c, 0xd4, 0xa1, 0xe5, 0x9b, 0x77, 0xf6, 0xd6, 0x2d, 0xf2, 0x96, 0x83, + 0x8f, 0x66, 0xbe, 0xb7, 0x0a, 0x3c, 0x7c, 0xa6, 0x1c, 0x8b, 0xbf, 0xf3, 0xe0, 0xb1, 0xde, 0xce, + 0x0c, 0x4f, 0xe9, 0xde, 0xe7, 0x70, 0x66, 0x9a, 0x9d, 0xf9, 0x60, 0x3d, 0xb6, 0x99, 0xa8, 0x9d, + 0xb3, 0xcc, 0xf9, 0x14, 0x18, 0xe9, 0x54, 0xc2, 0xd9, 0x83, 0x7f, 0xfd, 0x81, 0xcd, 0xf2, 0xf3, + 0xec, 0x94, 0xa2, 0xc8, 0xf9, 0x3c, 0x3b, 0x11, 0x2c, 0x76, 0xde, 0xef, 0x0c, 0xc9, 0xa1, 0x95, + 0xb0, 0xf9, 0x65, 0xc5, 0x19, 0x59, 0x4b, 0xb4, 0x62, 0xc7, 0x5a, 0xf2, 0xed, 0x88, 0xfd, 0x71, + 0xb4, 0x3d, 0x83, 0x79, 0x99, 0x34, 0xf7, 0x3f, 0x10, 0x35, 0xba, 0x71, 0x57, 0x1e, 0x79, 0xa0, + 0xec, 0x2c, 0xbe, 0x7f, 0x40, 0x7d, 0xbb, 0x9d, 0xe6, 0xf3, 0x13, 0xf2, 0x72, 0xee, 0x83, 0x9e, + 0xbc, 0xac, 0x77, 0x1a, 0xf6, 0x3e, 0xcd, 0xa8, 0x42, 0x2f, 0x95, 0xf9, 0xcc, 0xc6, 0x80, 0x09, + 0xf7, 0x61, 0x45, 0x4a, 0x2b, 0x5b, 0xcf, 0x68, 0xce, 0xd7, 0xe9, 0x73, 0x7e, 0x91, 0x3e, 0xe7, + 0x23, 0x48, 0x1f, 0x2d, 0xf9, 0x99, 0x6f, 0x6c, 0xc2, 0x78, 0x85, 0x0a, 0x79, 0xe1, 0x2e, 0x24, + 0xba, 0xc4, 0x29, 0x41, 0xd4, 0xe6, 0xf1, 0xff, 0x7e, 0xe0, 0xf7, 0xaf, 0x0c, 0x6e, 0x78, 0xa7, + 0xf7, 0xd5, 0xf3, 0x66, 0x2b, 0x79, 0x33, 0x8f, 0x9a, 0xe7, 0x93, 0xd5, 0x88, 0x4d, 0x31, 0x8a, + 0xe3, 0xbf, 0xfb, 0xca, 0xce, 0x07, 0x1a, 0xec, 0x3b, 0xe3, 0x75, 0x56, 0x17, 0x7e, 0xe7, 0x7e, + 0x40, 0x0c, 0x8a, 0x1b, 0x94, 0xfc, 0xc8, 0x5a, 0x2c, 0x9f, 0x7d, 0x2f, 0x72, 0x7c, 0x6a, 0x2f, + 0xf3, 0xc8, 0xea, 0xda, 0x81, 0xbd, 0xa5, 0x2d, 0xa2, 0xde, 0x95, 0x82, 0x81, 0x87, 0x15, 0xab, + 0xf4, 0xa5, 0x1d, 0x8c, 0x7f, 0x1c, 0x09, 0x8d, 0xb2, 0x3c, 0x14, 0x53, 0xd8, 0xac, 0xb1, 0x18, + 0x5e, 0x2e, 0xbc, 0x44, 0xbc, 0x64, 0x18, 0xba, 0x07, 0x79, 0xb1, 0xaf, 0xef, 0x84, 0xa1, 0x55, + 0xc7, 0x61, 0xe8, 0x3e, 0x0c, 0xbf, 0x0f, 0x79, 0x9d, 0x7f, 0xa9, 0x87, 0xa1, 0x7b, 0x2b, 0xff, + 0x57, 0xf8, 0xb2, 0x6b, 0xf3, 0x69, 0x6d, 0xcb, 0x9a, 0x1b, 0x5a, 0xf3, 0xeb, 0x1b, 0xda, 0x97, + 0x2d, 0x69, 0xf8, 0x64, 0x37, 0x39, 0xe9, 0x31, 0x19, 0xc7, 0xd6, 0xb2, 0x10, 0xcb, 0xd8, 0xd9, + 0x35, 0x23, 0xa3, 0x00, 0x9f, 0x2b, 0xf0, 0xba, 0x05, 0xaf, 0xf6, 0x64, 0xfa, 0x17, 0x90, 0x9f, + 0xdb, 0xca, 0x39, 0xb6, 0xd8, 0x1b, 0x60, 0x81, 0x09, 0x30, 0xde, 0x8f, 0x3f, 0xea, 0xee, 0x6e, + 0x6b, 0x5b, 0xd2, 0xd4, 0xb2, 0x64, 0x79, 0x8a, 0x7d, 0x1b, 0x55, 0x86, 0x85, 0x81, 0xa6, 0xbb, + 0x57, 0x2c, 0x87, 0x25, 0xcb, 0xee, 0xbe, 0xfb, 0x3a, 0x31, 0x9a, 0x97, 0x2d, 0x69, 0x6d, 0x59, + 0xba, 0x72, 0x74, 0x60, 0x03, 0x4b, 0xf3, 0x2a, 0xbe, 0xef, 0x5f, 0x8e, 0xa5, 0x3d, 0xf7, 0xa7, + 0x9e, 0x3b, 0xf3, 0xd3, 0xf1, 0xd2, 0x38, 0x3f, 0x18, 0xf8, 0x21, 0xee, 0xae, 0xc6, 0x8f, 0x46, + 0x2e, 0x5b, 0x71, 0x80, 0xf1, 0x4a, 0x07, 0x39, 0xd7, 0x15, 0xcd, 0x1d, 0xcb, 0x33, 0xae, 0x38, + 0x3e, 0x96, 0x67, 0xc4, 0x7d, 0x8c, 0x24, 0x57, 0x90, 0xdc, 0x67, 0x34, 0xef, 0xb8, 0xe2, 0xe4, + 0x28, 0xde, 0x71, 0x96, 0x6e, 0xeb, 0x39, 0x2a, 0x4e, 0xcc, 0x38, 0x2a, 0xb7, 0xac, 0x14, 0x7f, + 0x79, 0x53, 0x27, 0x8c, 0x43, 0x3a, 0x62, 0x09, 0xbb, 0xe1, 0x96, 0x66, 0x63, 0xf5, 0x59, 0xb8, + 0x05, 0xb9, 0x1b, 0xeb, 0x68, 0x74, 0xb3, 0x4f, 0xe6, 0x37, 0x5b, 0xec, 0xd7, 0xe7, 0x37, 0x5b, + 0x60, 0x2c, 0xbf, 0x19, 0xb3, 0x7f, 0x12, 0xbf, 0xd9, 0x72, 0x69, 0x2c, 0xbf, 0xb9, 0xe2, 0xd2, + 0xd5, 0xfc, 0x66, 0x8b, 0xf9, 0x7f, 0xca, 0x6f, 0x92, 0xa6, 0x12, 0xe1, 0x91, 0x24, 0xdf, 0xf7, + 0x5a, 0xf3, 0xa8, 0xfe, 0x51, 0x92, 0xf7, 0xe4, 0x7c, 0x8a, 0xb4, 0xfa, 0x6f, 0x49, 0xd7, 0x2d, + 0x47, 0x6e, 0xaa, 0x3b, 0x4a, 0x78, 0x02, 0x42, 0x7f, 0xb7, 0x4a, 0x48, 0xec, 0x73, 0x5e, 0x38, + 0x0b, 0xe5, 0xaa, 0x03, 0xb9, 0xf0, 0xb7, 0x15, 0x1b, 0xf1, 0x9c, 0xf8, 0x7b, 0xb6, 0x6a, 0xc4, + 0xdf, 0xfb, 0xd2, 0xb4, 0xcf, 0xd7, 0x72, 0x99, 0x86, 0xa6, 0x25, 0x53, 0x62, 0x88, 0xdb, 0x09, + 0x7c, 0x28, 0xa4, 0xfc, 0x84, 0xd7, 0xd2, 0xcb, 0x77, 0x02, 0xfa, 0xaf, 0x6e, 0xdd, 0xe3, 0x36, + 0x79, 0x3c, 0x25, 0xdf, 0xb9, 0x9e, 0x42, 0x2f, 0xb8, 0xb1, 0x66, 0x06, 0x09, 0x8e, 0xc4, 0xc5, + 0x92, 0xc3, 0x03, 0x87, 0x0f, 0xcc, 0x3b, 0xdf, 0x5b, 0x30, 0xef, 0xcf, 0xc7, 0xc1, 0x1a, 0x00, + 0x41, 0x75, 0x97, 0x9d, 0x03, 0x31, 0xb4, 0x1c, 0x5e, 0xe7, 0xd8, 0x28, 0xdf, 0x38, 0x5f, 0x4d, + 0x12, 0x5e, 0xdd, 0x47, 0xe9, 0x37, 0xf6, 0xd4, 0x6e, 0x4c, 0x3d, 0xc9, 0x77, 0x76, 0x08, 0xed, + 0xe2, 0xb1, 0xf5, 0x8a, 0x07, 0x4b, 0x2c, 0xe2, 0xee, 0x91, 0x30, 0xc0, 0x0f, 0x86, 0xe3, 0x4d, + 0x39, 0xe2, 0x7c, 0xa9, 0x52, 0x4e, 0xf3, 0xe4, 0xa6, 0x65, 0x87, 0x83, 0xaa, 0x55, 0x29, 0x90, + 0x23, 0x81, 0x60, 0x78, 0x93, 0x3a, 0xa8, 0xe4, 0x18, 0x98, 0x8f, 0x0e, 0x6f, 0x00, 0x5c, 0xde, + 0x79, 0x20, 0x33, 0x1d, 0x6d, 0xe4, 0xca, 0x3b, 0xce, 0xd0, 0x97, 0x69, 0x7a, 0x49, 0xc7, 0x13, + 0x78, 0xe8, 0x30, 0x5b, 0xae, 0x70, 0x56, 0xdd, 0xd8, 0x09, 0x99, 0x60, 0x0e, 0xcc, 0xc0, 0xd6, + 0x9c, 0x01, 0x39, 0xc8, 0x31, 0xe5, 0x5a, 0x49, 0x03, 0x68, 0x71, 0x9d, 0x15, 0xef, 0xb8, 0x11, + 0x13, 0x4e, 0x11, 0x2f, 0x85, 0xcf, 0x13, 0xa2, 0x0b, 0xac, 0x7e, 0x3f, 0xf9, 0x46, 0x19, 0xc4, + 0x75, 0xc8, 0x4b, 0x7b, 0xe6, 0xd8, 0x0d, 0xfd, 0x4f, 0x81, 0xdc, 0x60, 0xb9, 0xa9, 0x53, 0x1b, + 0x86, 0x5b, 0x70, 0x85, 0x3a, 0x81, 0x6b, 0x92, 0x2b, 0xd0, 0x17, 0x23, 0xd4, 0x06, 0x92, 0x07, + 0x1b, 0x30, 0xe5, 0xa5, 0x60, 0x21, 0x8f, 0x90, 0x2d, 0x6b, 0xc1, 0x4a, 0x68, 0x22, 0x18, 0x6b, + 0x57, 0xc9, 0xbb, 0xcc, 0x7e, 0xee, 0x45, 0x7c, 0xfe, 0x77, 0x7e, 0x72, 0x88, 0x7c, 0xec, 0x96, + 0x99, 0x8d, 0x20, 0x82, 0x84, 0x7f, 0x71, 0xe2, 0x24, 0x43, 0xd7, 0x57, 0x6f, 0xc4, 0x58, 0x6d, + 0x31, 0x63, 0x7f, 0x57, 0x03, 0x08, 0x0b, 0x8f, 0x74, 0xf9, 0x90, 0x63, 0x28, 0x19, 0x1a, 0x51, + 0xab, 0x3e, 0xc6, 0xd4, 0x5b, 0xe1, 0x31, 0x38, 0x0b, 0x16, 0x61, 0x4a, 0x05, 0xa6, 0xc8, 0x3c, + 0x60, 0x93, 0xae, 0x1e, 0xb5, 0xa5, 0x35, 0x99, 0x42, 0xb1, 0xd7, 0x1a, 0x5a, 0x01, 0xaf, 0x53, + 0x68, 0x87, 0x83, 0xfb, 0x39, 0x55, 0x1d, 0xc9, 0xb7, 0x9e, 0x00, 0xce, 0xa6, 0x5a, 0xca, 0x43, + 0xf7, 0x14, 0x47, 0xda, 0x7d, 0x23, 0x72, 0xf2, 0xbd, 0xd5, 0xe0, 0xc6, 0x91, 0x36, 0x85, 0x69, + 0xf3, 0x00, 0x0c, 0x53, 0x3e, 0x48, 0x21, 0xae, 0xca, 0xe5, 0xca, 0xb1, 0x44, 0x58, 0x47, 0x3b, + 0xcd, 0x12, 0x25, 0xff, 0xea, 0x12, 0x51, 0x29, 0xb8, 0x1c, 0xef, 0x1b, 0xaf, 0x24, 0xbf, 0xfb, + 0x9e, 0x9e, 0x2b, 0x72, 0xf2, 0x57, 0xc8, 0xda, 0x4c, 0xe4, 0x9a, 0x81, 0xf8, 0x6b, 0x13, 0xcf, + 0x99, 0xca, 0x06, 0xab, 0xf5, 0xf8, 0x7d, 0xb8, 0x9b, 0x10, 0xd3, 0xf3, 0xa1, 0xd2, 0x5e, 0x69, + 0x4f, 0xa6, 0x76, 0x57, 0xb2, 0xb4, 0xb9, 0x4a, 0x55, 0xe2, 0x9b, 0x64, 0xbc, 0xaa, 0x64, 0xbc, + 0x59, 0xc9, 0x78, 0x0e, 0xc5, 0x89, 0xbd, 0x77, 0x05, 0x7b, 0xcf, 0x96, 0xe2, 0x30, 0x47, 0xd6, + 0x2a, 0x76, 0xdc, 0xb1, 0x89, 0x78, 0x21, 0x7b, 0x8a, 0x61, 0x53, 0xa2, 0xa7, 0x38, 0xea, 0x0e, + 0xed, 0xc1, 0x8a, 0x0b, 0x70, 0x0d, 0x4f, 0x9b, 0x97, 0x4e, 0x37, 0x74, 0xf3, 0x11, 0xfc, 0xcd, + 0xa5, 0x72, 0x4a, 0x1e, 0xd6, 0xed, 0xdc, 0x0e, 0xd2, 0xd1, 0x1e, 0x5c, 0xc9, 0xcf, 0x74, 0x90, + 0xf7, 0x0e, 0xa3, 0xd7, 0xc0, 0x64, 0xb8, 0xda, 0x9c, 0xb6, 0x02, 0x08, 0x95, 0x90, 0x06, 0x36, + 0xae, 0xb3, 0x1f, 0xc8, 0x70, 0x74, 0x3b, 0xb8, 0xa9, 0x24, 0x3b, 0xba, 0x97, 0x98, 0x30, 0xc7, + 0x0f, 0x14, 0x13, 0x79, 0x4a, 0x84, 0x0f, 0xa6, 0xd5, 0x80, 0x7b, 0x1a, 0xf9, 0x92, 0xce, 0xa7, + 0x78, 0xb8, 0x63, 0x31, 0x12, 0x86, 0x1f, 0xae, 0xd8, 0x37, 0x04, 0xee, 0x58, 0x62, 0x45, 0x4e, + 0xe6, 0xfc, 0xcf, 0x07, 0x28, 0x24, 0xb2, 0x19, 0x29, 0x46, 0xb1, 0x8e, 0x31, 0xc8, 0xac, 0xb2, + 0x52, 0x65, 0xfb, 0xec, 0x30, 0x2e, 0xf0, 0x6f, 0x9e, 0x77, 0x7f, 0x76, 0xd8, 0x80, 0xf7, 0x3f, + 0x81, 0xef, 0x9f, 0xf0, 0x97, 0xe9, 0x64, 0xa8, 0x80, 0xdf, 0x2b, 0x76, 0xf8, 0xa3, 0x17, 0xd9, + 0xb3, 0x91, 0xbf, 0x69, 0x1b, 0xb7, 0xaf, 0xfb, 0xad, 0x07, 0x4e, 0x86, 0xe2, 0x25, 0xea, 0xd1, + 0xc2, 0x62, 0xe1, 0xe1, 0x40, 0x89, 0x52, 0x90, 0xf8, 0x26, 0x10, 0xcc, 0x81, 0x59, 0xfc, 0x79, + 0xde, 0xae, 0x60, 0xf4, 0x22, 0x7b, 0x36, 0x46, 0xc0, 0xe0, 0x07, 0xad, 0x63, 0xdc, 0x4b, 0xab, + 0xdf, 0x7a, 0x30, 0x5e, 0xda, 0x5f, 0xb2, 0xc4, 0x50, 0x00, 0x35, 0x01, 0xf5, 0xa0, 0xb5, 0x44, + 0xf0, 0x2c, 0x31, 0xb6, 0x1b, 0x69, 0xe5, 0x2f, 0x62, 0x31, 0x0d, 0xc1, 0xfb, 0xc0, 0x6c, 0x04, + 0xab, 0x6a, 0x84, 0x52, 0xb0, 0x5b, 0x83, 0xb7, 0x68, 0x91, 0x7d, 0x41, 0x03, 0x4b, 0xbd, 0x93, + 0xd2, 0xf8, 0x2c, 0x61, 0x93, 0xbf, 0xf9, 0xa7, 0x61, 0x56, 0x9e, 0xce, 0x1d, 0xa0, 0x66, 0xe3, + 0xac, 0x1b, 0x56, 0x4d, 0x38, 0xce, 0x0d, 0x8a, 0x05, 0x9f, 0x2f, 0xe1, 0x97, 0x38, 0xa3, 0x52, + 0x2d, 0x6c, 0x0d, 0x4e, 0xd5, 0x96, 0x58, 0x30, 0xcc, 0x88, 0x6b, 0x43, 0x06, 0xbc, 0xff, 0xb9, + 0x52, 0x78, 0xe5, 0xa6, 0x00, 0x9c, 0x13, 0x59, 0x8c, 0xe0, 0xaf, 0x54, 0x63, 0xac, 0x00, 0x79, + 0xbd, 0xe2, 0x49, 0x7e, 0x43, 0x16, 0xae, 0x15, 0x3a, 0x1e, 0xd1, 0x1d, 0x74, 0x6a, 0xce, 0xce, + 0x47, 0xc8, 0xaa, 0xac, 0x5d, 0xd8, 0xd5, 0xad, 0x16, 0x30, 0x0e, 0xf2, 0x94, 0x37, 0x2b, 0x65, + 0x61, 0x27, 0x03, 0x0b, 0x3b, 0xcd, 0xf4, 0xf7, 0x8c, 0x09, 0x3d, 0xf6, 0xc0, 0xa6, 0x41, 0xd2, + 0x6a, 0x35, 0x2a, 0x0a, 0xee, 0x09, 0x16, 0x4b, 0x91, 0x87, 0x0f, 0x48, 0x79, 0xb0, 0x2a, 0xc6, + 0xd0, 0x27, 0xe6, 0xb4, 0x31, 0x5d, 0xb1, 0xf1, 0xb8, 0x9f, 0x65, 0xda, 0x42, 0xb4, 0xfe, 0xe5, + 0xe3, 0xb7, 0x9d, 0xb0, 0x12, 0x66, 0xe7, 0xc1, 0x39, 0x7d, 0x14, 0x8c, 0xf3, 0x9a, 0xf8, 0x7b, + 0x0f, 0xfc, 0xa1, 0x8a, 0x4e, 0x53, 0xdc, 0xc2, 0xaa, 0x1b, 0x3e, 0x78, 0x76, 0xdd, 0x5a, 0x17, + 0x7c, 0xf0, 0xc4, 0xb1, 0x35, 0xbf, 0x59, 0x2d, 0x77, 0x4f, 0x2b, 0x05, 0x63, 0xe5, 0x9b, 0xb9, + 0xc3, 0x3a, 0x22, 0x0c, 0xf2, 0xd4, 0x91, 0x38, 0x51, 0x14, 0xd5, 0x10, 0xe9, 0x4b, 0x59, 0x43, + 0x10, 0xaf, 0x2d, 0x0a, 0x83, 0xc8, 0x71, 0xd2, 0xbb, 0xfe, 0xae, 0x7a, 0x7c, 0x2b, 0x4e, 0x3a, + 0xdc, 0xc7, 0x34, 0x89, 0x8d, 0x0c, 0xcb, 0x64, 0x52, 0x7f, 0x9f, 0x9a, 0x45, 0x1a, 0xc8, 0x3f, + 0x3a, 0x03, 0xc6, 0x84, 0xfd, 0x41, 0x52, 0x0f, 0x99, 0xc5, 0x91, 0x26, 0x89, 0x76, 0xa4, 0x2d, + 0xd9, 0xaa, 0x3d, 0x11, 0x6f, 0x41, 0xda, 0xc9, 0x2b, 0x69, 0x2d, 0xa7, 0x52, 0x93, 0xec, 0x3b, + 0xe2, 0xaa, 0x85, 0x3c, 0xb4, 0xf7, 0x21, 0x5f, 0x5f, 0x75, 0x6f, 0xa4, 0x6b, 0x07, 0xe9, 0xc1, + 0x91, 0xc7, 0x76, 0x17, 0xd9, 0x56, 0x35, 0x98, 0xfb, 0xba, 0xf0, 0x1b, 0x8d, 0x5f, 0x09, 0x7c, + 0x20, 0x3a, 0xa5, 0xc3, 0x79, 0xbb, 0x8b, 0xe6, 0xb8, 0x16, 0x44, 0xda, 0x8f, 0x2b, 0x50, 0xb4, + 0x2a, 0xb9, 0x22, 0x99, 0x68, 0x45, 0x52, 0x08, 0x73, 0xf1, 0x51, 0xe4, 0x48, 0x37, 0xd9, 0xed, + 0x59, 0x93, 0x1c, 0xf6, 0x9d, 0xa0, 0x7e, 0xf4, 0x56, 0xc8, 0x50, 0x02, 0x5a, 0xbc, 0x44, 0x72, + 0xc3, 0x8e, 0x36, 0x28, 0x84, 0x1d, 0xdd, 0x0d, 0x86, 0x4d, 0x7e, 0xf2, 0xaf, 0xc0, 0x3d, 0x8c, + 0x1d, 0x89, 0xd3, 0x1c, 0x22, 0x4f, 0x0e, 0x34, 0x03, 0x18, 0xaa, 0x10, 0xb3, 0xbc, 0xf1, 0x79, + 0xc1, 0x86, 0xa3, 0x45, 0x50, 0xcd, 0xcc, 0xbe, 0xfb, 0x6d, 0xa5, 0x1e, 0x29, 0x9e, 0x12, 0x5e, + 0x0a, 0xfb, 0x54, 0x2b, 0x0b, 0xd9, 0x87, 0x7b, 0xd5, 0x1d, 0xca, 0x2c, 0xdc, 0xc5, 0x6c, 0xb0, + 0x4f, 0xc2, 0x79, 0xe1, 0xcf, 0x8a, 0xf3, 0x67, 0x1c, 0x35, 0x66, 0xf6, 0xfc, 0xa8, 0x7d, 0x12, + 0xfe, 0xdd, 0x94, 0x35, 0x29, 0x51, 0x06, 0xee, 0x17, 0xe5, 0x61, 0xfc, 0x0e, 0xd7, 0x6e, 0x17, + 0xf4, 0xc7, 0x84, 0x3f, 0x6c, 0x6b, 0xbd, 0xaf, 0x5c, 0x88, 0x77, 0x79, 0x96, 0xc2, 0x5a, 0x1c, + 0x8b, 0x67, 0x92, 0x7c, 0x0f, 0xd7, 0xe9, 0x58, 0x84, 0x75, 0x59, 0xe8, 0xb0, 0x67, 0x4f, 0xb2, + 0xdb, 0xfb, 0x0d, 0xea, 0x47, 0x31, 0x92, 0xea, 0x90, 0x37, 0x83, 0x33, 0xa1, 0x01, 0xb6, 0xfa, + 0xb7, 0x65, 0x40, 0x34, 0xe7, 0x1a, 0xf1, 0x84, 0x90, 0x9f, 0x76, 0x27, 0x26, 0x66, 0xdf, 0xc9, + 0x2d, 0x95, 0xde, 0x5a, 0xb7, 0x3a, 0xa3, 0xaf, 0x9b, 0xf3, 0x3a, 0x55, 0x77, 0x02, 0xe0, 0x3a, + 0xb5, 0x52, 0x14, 0x78, 0x0c, 0x5c, 0x51, 0x56, 0x62, 0xcf, 0x1b, 0x23, 0x4f, 0x41, 0x3b, 0xf6, + 0x43, 0x77, 0x32, 0xb4, 0x1b, 0x63, 0xad, 0xda, 0x11, 0xaf, 0xb3, 0xf4, 0x75, 0xd1, 0x2f, 0x7c, + 0x2f, 0x61, 0xaf, 0xff, 0x33, 0x4f, 0x81, 0xac, 0xac, 0x09, 0x93, 0x32, 0xbc, 0x0c, 0x7b, 0x02, + 0x60, 0x37, 0xc6, 0xdd, 0xc3, 0x46, 0xd2, 0x0e, 0x8c, 0xbb, 0x47, 0x4f, 0x6f, 0x17, 0x93, 0xa2, + 0xf6, 0xe2, 0xde, 0xbb, 0xa0, 0xe2, 0x2c, 0xec, 0x22, 0xfd, 0x9c, 0x0e, 0x87, 0x92, 0x8f, 0xeb, + 0xb8, 0xe8, 0xb5, 0x92, 0x1e, 0x0f, 0x5b, 0xc5, 0x25, 0xe4, 0x25, 0x02, 0x0c, 0xc3, 0xf6, 0x69, + 0xa6, 0x79, 0x23, 0x06, 0xf2, 0x18, 0x5f, 0x12, 0x20, 0x2a, 0xea, 0x2c, 0x75, 0xde, 0xa8, 0xbe, + 0x82, 0xb5, 0x2c, 0x08, 0xf7, 0x45, 0xcb, 0x69, 0x0c, 0x84, 0x96, 0x92, 0x5d, 0xf1, 0x95, 0xe7, + 0x98, 0x05, 0x2b, 0xed, 0xc8, 0x8c, 0x31, 0x28, 0x27, 0xc9, 0xc5, 0x0e, 0x8c, 0xb5, 0x21, 0xcb, + 0x6e, 0x10, 0xc0, 0x6f, 0xef, 0xe2, 0xcf, 0xb4, 0xd7, 0x63, 0xcf, 0x9b, 0xec, 0xa4, 0x05, 0xf3, + 0xe8, 0xc9, 0x5e, 0x7b, 0x5c, 0x61, 0xfc, 0x0b, 0xcb, 0xb1, 0x3b, 0x06, 0x95, 0xef, 0x2f, 0xce, + 0xd5, 0x4e, 0xa7, 0xd7, 0xca, 0xc9, 0x6b, 0xf5, 0x76, 0xb4, 0x0e, 0xd7, 0x1f, 0x5a, 0x6d, 0xf6, + 0x0c, 0xbf, 0x48, 0xb5, 0xc0, 0xbd, 0xd3, 0x9c, 0xda, 0x8d, 0xc9, 0x3a, 0x34, 0x8e, 0xa9, 0x43, + 0x58, 0xaf, 0x03, 0xd2, 0x7b, 0x46, 0xf7, 0x71, 0x4d, 0xe4, 0x61, 0x23, 0x6b, 0x19, 0xd6, 0xd9, + 0x2b, 0xb8, 0x2b, 0x9d, 0xf3, 0xc2, 0x7b, 0xc8, 0x4f, 0x19, 0x03, 0xcb, 0xe1, 0xed, 0x6b, 0xe4, + 0xcf, 0xf1, 0x2d, 0x43, 0xce, 0xb4, 0x75, 0x01, 0xf9, 0xb4, 0x95, 0xd3, 0x02, 0x60, 0x94, 0x9f, + 0x86, 0x76, 0xee, 0x67, 0xfc, 0x9b, 0x4b, 0x9d, 0x69, 0xeb, 0xc3, 0x31, 0xb2, 0xa3, 0x2a, 0x25, + 0xd9, 0xd5, 0xae, 0x6e, 0x1c, 0xc3, 0x9b, 0x70, 0x64, 0xaf, 0xe2, 0x3a, 0x6e, 0xa2, 0x6e, 0x55, + 0xd6, 0x4a, 0x73, 0xca, 0x4e, 0xa8, 0x82, 0x38, 0xc3, 0x73, 0xa6, 0xe2, 0x3c, 0xc4, 0xf5, 0xca, + 0x58, 0x7d, 0x06, 0x6e, 0xa1, 0x79, 0x99, 0x90, 0x48, 0xa6, 0x72, 0x8c, 0x65, 0x96, 0x9e, 0x85, + 0xfd, 0xc9, 0xdf, 0x11, 0xc6, 0x6d, 0xf6, 0x63, 0xd8, 0x77, 0x70, 0xf4, 0xd1, 0x28, 0xbd, 0xc8, + 0x42, 0xda, 0x30, 0xe4, 0x2e, 0x7d, 0x3c, 0x5e, 0x4c, 0x95, 0x27, 0x81, 0x05, 0x18, 0x7a, 0x67, + 0x2a, 0xd3, 0x0d, 0x8e, 0x09, 0x29, 0x44, 0x5d, 0xa7, 0x9f, 0x5b, 0xa7, 0xdf, 0x7b, 0x06, 0x79, + 0xb4, 0x62, 0xb0, 0x9c, 0x5b, 0x63, 0xc6, 0x79, 0x08, 0xff, 0x1d, 0x35, 0x16, 0x16, 0xbf, 0x9a, + 0x81, 0xb5, 0x5c, 0x65, 0x26, 0x7f, 0x6c, 0xf8, 0x9b, 0x53, 0xdc, 0xcf, 0xf9, 0xe1, 0x54, 0xeb, + 0x9c, 0x7d, 0x71, 0xa4, 0x88, 0xc5, 0xb8, 0x5e, 0xf9, 0x19, 0xfd, 0x3c, 0x5d, 0xbd, 0x11, 0xc3, + 0x4f, 0xf3, 0x54, 0x67, 0x06, 0x0c, 0x45, 0x22, 0x72, 0xab, 0x0d, 0x8f, 0x26, 0x52, 0xf2, 0x15, + 0x2f, 0x7d, 0x0b, 0x47, 0xc2, 0x19, 0x5f, 0xf1, 0x57, 0xbf, 0x9f, 0x0a, 0x5b, 0xf4, 0x5f, 0xf8, + 0xcd, 0x39, 0x69, 0x1e, 0x21, 0xcb, 0x91, 0x94, 0xb5, 0xa5, 0x2f, 0x25, 0x7b, 0x45, 0x0e, 0xde, + 0x42, 0x3e, 0x76, 0xb4, 0x8b, 0xa4, 0x27, 0x4d, 0x3c, 0xef, 0xb4, 0x10, 0x94, 0x63, 0x0f, 0x06, + 0xf0, 0x39, 0x80, 0xcf, 0x73, 0x88, 0xca, 0xe0, 0x7d, 0x36, 0x86, 0xcd, 0xc2, 0xe7, 0x59, 0xf8, + 0x5c, 0x40, 0xb8, 0xc0, 0x2b, 0x4f, 0xc1, 0xb1, 0x69, 0x61, 0x38, 0x42, 0xcf, 0x2d, 0xdf, 0x07, + 0xc2, 0xd9, 0x71, 0xc0, 0x7f, 0xdd, 0x44, 0x1c, 0xdb, 0xa1, 0x31, 0xad, 0x58, 0x8b, 0x71, 0x7e, + 0x71, 0x52, 0x80, 0x75, 0x74, 0xff, 0x40, 0x80, 0x0d, 0x74, 0x3f, 0x2d, 0xc0, 0x26, 0xba, 0xff, + 0x51, 0x80, 0x47, 0x71, 0x44, 0xf6, 0xb3, 0x92, 0xfd, 0x64, 0x94, 0x54, 0x78, 0xad, 0x6a, 0xcf, + 0x2f, 0x8e, 0x67, 0xc6, 0x53, 0x72, 0xa5, 0x2d, 0x38, 0xae, 0xbe, 0xcf, 0xf2, 0xf8, 0x77, 0x96, + 0xef, 0x7f, 0xc0, 0x13, 0xac, 0x2c, 0x56, 0x78, 0x06, 0xcb, 0xb2, 0x2d, 0xad, 0x1f, 0xc7, 0xf6, + 0xdb, 0x10, 0xd6, 0x94, 0x52, 0x13, 0xd2, 0x53, 0xa3, 0x59, 0x62, 0xdf, 0x0b, 0x66, 0x46, 0x4f, + 0x18, 0x45, 0xd2, 0x63, 0x9f, 0x49, 0xf5, 0xa9, 0x5e, 0xf6, 0x2a, 0xba, 0x7f, 0x28, 0x40, 0x84, + 0xee, 0x6f, 0x0b, 0xb0, 0x90, 0xee, 0xef, 0x08, 0xc0, 0xfd, 0xdd, 0xb7, 0x5d, 0xa3, 0xf4, 0xe1, + 0x6b, 0x96, 0x3e, 0xca, 0x4a, 0xaf, 0xb2, 0xd2, 0xbf, 0x0e, 0x4b, 0xe9, 0xfe, 0xcd, 0x83, 0x10, + 0xc3, 0xd2, 0x37, 0x8d, 0x29, 0x7d, 0xfa, 0x18, 0xbb, 0x5e, 0xe9, 0x23, 0x58, 0x7a, 0xc2, 0x16, + 0x59, 0x68, 0xdf, 0xab, 0x91, 0x75, 0xfe, 0x22, 0xfd, 0x1e, 0xb1, 0xd3, 0x29, 0x87, 0x9d, 0xcd, + 0x7a, 0xfe, 0x2c, 0xd8, 0xe3, 0xe9, 0xe3, 0x14, 0x67, 0xc9, 0x6a, 0x86, 0x4b, 0x89, 0x2b, 0xcf, + 0x61, 0x5c, 0x89, 0x68, 0xd5, 0x53, 0xac, 0x91, 0x3e, 0xce, 0x13, 0xd1, 0x6a, 0x48, 0x6b, 0x26, + 0xe7, 0x94, 0xea, 0xce, 0xe0, 0x0a, 0x66, 0xc7, 0x95, 0xb0, 0x2b, 0xb5, 0x72, 0x29, 0x86, 0xbe, + 0xae, 0x70, 0xbc, 0xd9, 0xb2, 0x30, 0xb5, 0x22, 0x6a, 0x94, 0x1e, 0xa6, 0xf1, 0x30, 0x4f, 0xe3, + 0x56, 0x3f, 0x93, 0x70, 0x26, 0xd3, 0xb8, 0x7e, 0xea, 0xb8, 0x03, 0x30, 0xd6, 0x23, 0x37, 0x46, + 0xa3, 0x9c, 0xde, 0xd5, 0xf4, 0xd1, 0x77, 0x0f, 0xb3, 0x52, 0x3d, 0xdc, 0x97, 0x38, 0x6f, 0xea, + 0xf2, 0xc0, 0x50, 0xfc, 0x34, 0x5e, 0x27, 0xf0, 0x3a, 0x09, 0x43, 0x3d, 0xf9, 0x78, 0xed, 0xc1, + 0x6b, 0xe0, 0xff, 0x47, 0xb9, 0xc6, 0xb2, 0x15, 0xb1, 0x7b, 0xdb, 0x12, 0xc2, 0x81, 0xc2, 0xdb, + 0xf2, 0x3f, 0x3b, 0x5a, 0x98, 0x91, 0xfe, 0x1a, 0x98, 0x34, 0x23, 0x2e, 0xc3, 0xd0, 0x86, 0x50, + 0xd7, 0x8c, 0x8c, 0x29, 0xf8, 0x9c, 0x0d, 0x43, 0xf7, 0xfd, 0x15, 0xef, 0x29, 0xdf, 0x27, 0xb5, + 0x18, 0x12, 0xe7, 0xd2, 0x8c, 0xae, 0xef, 0xc0, 0x78, 0x26, 0xcf, 0xc8, 0x01, 0x2b, 0x4c, 0x24, + 0x99, 0xc6, 0xa8, 0xd4, 0x46, 0xc9, 0x49, 0x96, 0x37, 0x7c, 0x93, 0xf9, 0xaf, 0x4d, 0xfc, 0x1e, + 0x55, 0xac, 0xd6, 0x86, 0x7b, 0x1a, 0xda, 0xc4, 0xa5, 0x77, 0xaf, 0xa8, 0x6f, 0x6a, 0x68, 0x85, + 0xe8, 0xdd, 0xcd, 0x0d, 0xb1, 0x96, 0xd6, 0x54, 0xa9, 0xd2, 0xe5, 0x18, 0x3d, 0xee, 0xd4, 0x73, + 0x77, 0xec, 0xef, 0x93, 0x5d, 0xdc, 0xf7, 0xf8, 0x27, 0xcb, 0x2e, 0xee, 0xeb, 0xff, 0x7b, 0x65, + 0x17, 0xf7, 0xed, 0xfe, 0xdb, 0xb2, 0x8b, 0xf8, 0xc0, 0xff, 0x58, 0x76, 0x91, 0xf1, 0xb7, 0x64, + 0x17, 0xf7, 0x9d, 0xb9, 0xbe, 0xec, 0xe2, 0xbe, 0xe3, 0x63, 0x65, 0x17, 0xf1, 0x43, 0x9f, 0x24, + 0xbb, 0xb8, 0x6f, 0x60, 0xac, 0xec, 0xe2, 0xbe, 0xc1, 0xab, 0x65, 0x17, 0xf7, 0x9d, 0xfc, 0x9f, + 0xca, 0x2e, 0xc8, 0x2e, 0x57, 0x5f, 0x9d, 0xc8, 0xe7, 0x5b, 0x3e, 0x52, 0xdd, 0x59, 0x48, 0x81, + 0x0b, 0x74, 0x6a, 0x4c, 0x18, 0xcd, 0x01, 0xa4, 0x1d, 0xe3, 0xfe, 0x4d, 0x64, 0xd4, 0x3a, 0x4c, + 0xbe, 0xa3, 0x1e, 0xf3, 0x43, 0x95, 0xb7, 0x33, 0x6e, 0x07, 0x13, 0x98, 0xc9, 0xca, 0x32, 0x5e, + 0x0f, 0x56, 0xf6, 0xdb, 0x8c, 0x3d, 0xe3, 0xe0, 0xb6, 0x97, 0xf8, 0xcb, 0x08, 0x39, 0x64, 0x73, + 0xb9, 0x14, 0x20, 0x97, 0xfd, 0xbe, 0x19, 0x44, 0xc2, 0x4a, 0xf5, 0x86, 0x40, 0x66, 0xbf, 0x0d, + 0xb8, 0xfb, 0xc7, 0xaf, 0x57, 0xb7, 0x82, 0x87, 0xfd, 0xb6, 0x83, 0x8f, 0xa4, 0xef, 0x74, 0x2e, + 0x5d, 0xf2, 0x61, 0x6a, 0xef, 0x30, 0xdc, 0x88, 0x34, 0xce, 0x99, 0xc4, 0x26, 0xc2, 0x75, 0x8f, + 0x5b, 0xe3, 0xf2, 0x75, 0x95, 0xcb, 0x04, 0x74, 0x59, 0x40, 0x4e, 0xb4, 0xae, 0xce, 0x6a, 0xf2, + 0x6b, 0x7f, 0xc5, 0x67, 0x63, 0x5d, 0x91, 0xc2, 0xa5, 0x00, 0x3e, 0xbe, 0xf7, 0xaf, 0xf7, 0xf0, + 0x1d, 0x3f, 0x59, 0xfd, 0xea, 0x7b, 0x7e, 0x63, 0x6a, 0xcf, 0x1f, 0x5f, 0xc0, 0xf7, 0xfc, 0x01, + 0x50, 0x4c, 0xb1, 0x2b, 0xc4, 0xd7, 0xdd, 0xe8, 0x87, 0x5b, 0xcc, 0x33, 0x68, 0x47, 0xa9, 0x8a, + 0x69, 0xbb, 0x4d, 0x87, 0x61, 0x06, 0xed, 0x47, 0xc5, 0x15, 0x69, 0xa8, 0xaf, 0x9b, 0x68, 0x34, + 0xc6, 0x74, 0x8c, 0x7b, 0x5f, 0x3e, 0x2c, 0x4c, 0xe2, 0xc8, 0x8b, 0x55, 0x9b, 0x2a, 0xdf, 0x34, + 0x72, 0xc4, 0x97, 0x71, 0xf9, 0x29, 0xeb, 0xf3, 0x2d, 0xf9, 0xb7, 0x8c, 0xb5, 0x32, 0x1f, 0x29, + 0x48, 0x59, 0xa4, 0xeb, 0x36, 0xe1, 0x2f, 0x72, 0x2f, 0xf4, 0x00, 0x18, 0x3a, 0x03, 0x22, 0x51, + 0x1b, 0xf2, 0xfd, 0xce, 0x64, 0xae, 0x7b, 0xf1, 0xed, 0x3f, 0x73, 0xde, 0x1d, 0xf9, 0x76, 0x3b, + 0xe7, 0x5b, 0x1e, 0xda, 0xca, 0xc6, 0xa3, 0xec, 0x5c, 0x0e, 0xf9, 0xb8, 0xfa, 0x0f, 0xf5, 0x1c, + 0x52, 0x1c, 0xa2, 0x5f, 0x5a, 0x0e, 0x36, 0xe4, 0xab, 0xb2, 0x98, 0x85, 0xab, 0xa1, 0xea, 0x5e, + 0xe6, 0x43, 0xf2, 0x0c, 0xe7, 0xc4, 0xab, 0xee, 0xd4, 0x42, 0xb8, 0xd3, 0x9a, 0x2d, 0x37, 0x83, + 0xf9, 0x76, 0x1c, 0xdd, 0xda, 0x47, 0xb7, 0x77, 0x4e, 0xbf, 0x41, 0xbb, 0x14, 0x68, 0xd6, 0x86, + 0xf0, 0x1a, 0xfe, 0x34, 0xae, 0x3b, 0x29, 0x99, 0xd3, 0x15, 0x35, 0xcf, 0xaf, 0x2d, 0x4e, 0xed, + 0x9d, 0xd9, 0xef, 0x05, 0xe1, 0xee, 0xa8, 0x11, 0x47, 0xae, 0x6e, 0x5b, 0xe0, 0x2d, 0xfe, 0x31, + 0x72, 0xb6, 0xb8, 0x83, 0xb0, 0x56, 0x6f, 0x14, 0x9b, 0xb5, 0xc5, 0x31, 0x57, 0x0a, 0xdb, 0xde, + 0x05, 0x18, 0xb2, 0x60, 0x54, 0x88, 0x3f, 0xbc, 0xfa, 0x5a, 0x5f, 0x8f, 0xbc, 0x52, 0xbd, 0x91, + 0xb0, 0x46, 0xe3, 0x5f, 0x8f, 0x09, 0x52, 0x70, 0x34, 0xf6, 0x7d, 0x34, 0x15, 0xd7, 0xc8, 0xe2, + 0xfe, 0x3b, 0xe6, 0x14, 0xcc, 0x5b, 0x0a, 0x0e, 0xad, 0x1a, 0xe7, 0x89, 0xcb, 0x6b, 0x64, 0xd2, + 0x0b, 0xed, 0x73, 0xa7, 0x67, 0x60, 0x6e, 0x60, 0x1b, 0x55, 0x5a, 0xa6, 0x97, 0x75, 0x55, 0x6e, + 0x0a, 0x2b, 0xab, 0x12, 0xf3, 0xa5, 0x4a, 0x86, 0x71, 0x2b, 0xaf, 0x8a, 0x57, 0xa4, 0x97, 0x0a, + 0x77, 0x92, 0x52, 0xb3, 0x56, 0xf9, 0x37, 0xca, 0x65, 0xa9, 0xde, 0x18, 0x4b, 0xb6, 0xdd, 0xc8, + 0x2e, 0x1a, 0xc3, 0xad, 0xc2, 0x5b, 0x4f, 0x11, 0xce, 0x7e, 0x1e, 0x8d, 0xba, 0x0d, 0xda, 0x51, + 0x6c, 0x5f, 0x83, 0x76, 0xe4, 0xd3, 0x9d, 0x5a, 0x5c, 0x7b, 0x95, 0xc2, 0x56, 0x67, 0x69, 0x27, + 0xf2, 0xc2, 0xda, 0x71, 0x4a, 0xfd, 0xb3, 0x9d, 0x48, 0xb7, 0x73, 0x4b, 0xde, 0xd7, 0x0e, 0xde, + 0x1a, 0x02, 0x57, 0x0a, 0x1b, 0x36, 0x96, 0x3d, 0xd6, 0xe2, 0xcb, 0x03, 0x63, 0x4b, 0x7a, 0x65, + 0x43, 0xf5, 0xc6, 0x51, 0xf5, 0xae, 0xbf, 0x2a, 0x46, 0x13, 0xab, 0x73, 0x7d, 0x7a, 0x9d, 0x49, + 0x53, 0xe4, 0xaa, 0x78, 0x41, 0xbd, 0xce, 0x4f, 0x61, 0x9d, 0xff, 0x3f, 0xf2, 0xfe, 0x3e, 0xb0, + 0xa9, 0xeb, 0x48, 0x18, 0x87, 0xe7, 0x4a, 0xb2, 0x10, 0x42, 0x18, 0xc5, 0x11, 0x8e, 0xe3, 0xb8, + 0x70, 0x51, 0x85, 0x22, 0x64, 0x61, 0x09, 0x61, 0x1c, 0xc7, 0xf5, 0x3a, 0xd2, 0xb5, 0x6c, 0x64, + 0x61, 0x84, 0x2b, 0x3b, 0xc4, 0x9b, 0x65, 0x93, 0x8b, 0xb1, 0x25, 0xdb, 0xf8, 0x43, 0x15, 0x82, + 0x52, 0x1e, 0xff, 0xa8, 0x6c, 0x48, 0xea, 0x90, 0x34, 0x76, 0x09, 0xa1, 0x34, 0xcd, 0x66, 0xd9, + 0x3e, 0xf9, 0xa5, 0xae, 0x43, 0x13, 0x87, 0x52, 0x4a, 0x59, 0x9a, 0x3a, 0x84, 0xa6, 0x84, 0xa6, + 0x59, 0x42, 0x48, 0x36, 0x4f, 0x96, 0xcd, 0x07, 0xa1, 0x29, 0x21, 0x24, 0x21, 0x29, 0xcd, 0x87, + 0x6d, 0xac, 0x77, 0xe6, 0xdc, 0xab, 0x0f, 0x9b, 0x8f, 0x90, 0xf6, 0xd9, 0xf7, 0xfd, 0xe3, 0xc5, + 0x5c, 0xdd, 0x7b, 0xcf, 0x99, 0x7b, 0x3e, 0xe7, 0xcc, 0x99, 0x39, 0x67, 0xce, 0xcc, 0x92, 0x2b, + 0xd7, 0xf8, 0x42, 0x4e, 0x4d, 0xdf, 0x4d, 0xac, 0xd4, 0xe5, 0x1f, 0xc4, 0xe3, 0x37, 0x56, 0x81, + 0x25, 0xcc, 0x4d, 0xb6, 0x6c, 0x8b, 0xf1, 0xd3, 0x59, 0xad, 0x3e, 0x65, 0x96, 0x6f, 0x35, 0x93, + 0xe3, 0x2f, 0xae, 0x9d, 0xe9, 0xa2, 0xda, 0x8d, 0x0d, 0xb1, 0xb2, 0x57, 0xe3, 0x28, 0x9e, 0x0a, + 0x79, 0x73, 0x2a, 0x31, 0x9d, 0x6c, 0x1c, 0xd5, 0xf2, 0x6a, 0x98, 0x5d, 0xb3, 0x74, 0x64, 0xec, + 0x51, 0xff, 0xf6, 0x9b, 0x58, 0xec, 0x8d, 0x02, 0x58, 0x22, 0xd9, 0x74, 0x5e, 0x5e, 0x8e, 0x9d, + 0xe6, 0xdf, 0xce, 0x7b, 0xa4, 0x2f, 0x51, 0xbe, 0xe4, 0x71, 0xfc, 0x73, 0x77, 0xef, 0x4c, 0xc6, + 0xaa, 0x30, 0xb6, 0x15, 0xac, 0xcc, 0x46, 0xd4, 0x8c, 0x30, 0x67, 0x86, 0x77, 0x1e, 0xcf, 0x2f, + 0x8f, 0xb7, 0x11, 0x76, 0x50, 0x88, 0xfc, 0x1e, 0xa6, 0x96, 0x4b, 0x7b, 0x8f, 0x12, 0xa6, 0xa7, + 0xbd, 0xaf, 0x27, 0x3c, 0xa7, 0xf7, 0x77, 0x06, 0xb0, 0xed, 0xeb, 0x69, 0x35, 0x4f, 0x98, 0x62, + 0x9e, 0x1f, 0x6f, 0xbb, 0xfb, 0xe7, 0xf1, 0x30, 0xc6, 0x93, 0x3f, 0xca, 0x82, 0x7c, 0x6f, 0x3c, + 0x66, 0x55, 0x61, 0x68, 0xb5, 0x65, 0x9a, 0x59, 0xe0, 0xe7, 0xc7, 0xbb, 0x62, 0x83, 0x10, 0x88, + 0xfd, 0x3c, 0x1e, 0xc5, 0x6b, 0x3d, 0x5e, 0xf5, 0xc9, 0x56, 0x39, 0x48, 0xd8, 0x88, 0x10, 0xeb, + 0x87, 0x7f, 0x1e, 0xaf, 0x0e, 0x51, 0x69, 0x56, 0x24, 0xe3, 0xee, 0x13, 0x7e, 0x1e, 0xdf, 0x8c, + 0x78, 0xa4, 0x8e, 0xf7, 0x0a, 0xf3, 0xe3, 0xf7, 0xe0, 0xa8, 0xdd, 0xf2, 0x0d, 0xe4, 0xd5, 0xe2, + 0x14, 0x7e, 0xbf, 0x7d, 0x3e, 0x8e, 0x89, 0xf6, 0xf8, 0x56, 0xff, 0xfe, 0xd1, 0x47, 0x71, 0xe6, + 0x69, 0x8f, 0x6f, 0x66, 0x74, 0x62, 0x90, 0xd9, 0xa5, 0x3a, 0x64, 0xac, 0x58, 0x28, 0xb5, 0xc3, + 0xcf, 0x80, 0xff, 0xfa, 0xc4, 0x76, 0xc8, 0xc0, 0x78, 0x1a, 0x2b, 0x79, 0x98, 0x6b, 0x1b, 0xcb, + 0x15, 0x14, 0x4e, 0x11, 0x14, 0x06, 0x47, 0x3e, 0xe4, 0xc9, 0x54, 0x76, 0x46, 0x03, 0x70, 0x9f, + 0x4a, 0x12, 0xf7, 0xd1, 0x98, 0xe3, 0x1b, 0x1a, 0x35, 0x5b, 0xeb, 0xe4, 0xa1, 0x8c, 0xdb, 0xc1, + 0x1d, 0xe4, 0x8e, 0x73, 0xa7, 0x2e, 0xfe, 0x83, 0x94, 0x9d, 0x99, 0xcd, 0x58, 0x8b, 0x18, 0xd2, + 0x26, 0x4b, 0x9a, 0x25, 0x8f, 0xcc, 0xf4, 0xf7, 0xb8, 0x4a, 0x04, 0x6e, 0xbb, 0x0d, 0x43, 0x70, + 0x54, 0x67, 0xdb, 0xf3, 0xc1, 0x94, 0x58, 0xdd, 0xc1, 0xd6, 0x68, 0x5e, 0xd4, 0x81, 0x33, 0xce, + 0xf2, 0x7c, 0x7f, 0x9c, 0xac, 0xd8, 0x64, 0x61, 0x5a, 0x5e, 0xb2, 0x29, 0x93, 0x05, 0xb5, 0x9c, + 0x0e, 0xb1, 0xa7, 0x01, 0xe0, 0xbc, 0xd0, 0xaf, 0x93, 0x4e, 0x94, 0x3f, 0x41, 0x7e, 0x92, 0x41, + 0x2d, 0x49, 0x46, 0xf7, 0x67, 0x92, 0xde, 0x32, 0x86, 0xee, 0xf0, 0x4d, 0x09, 0x15, 0xa7, 0x56, + 0x9c, 0xc7, 0x6d, 0x64, 0x51, 0x38, 0xed, 0x9d, 0x4f, 0x7b, 0x36, 0x23, 0xee, 0xcf, 0x4f, 0xeb, + 0x8f, 0x17, 0x71, 0x7c, 0x7a, 0xd9, 0xbe, 0xbd, 0xda, 0x07, 0xed, 0x3e, 0x39, 0x65, 0x33, 0xd3, + 0x88, 0x2e, 0x65, 0xa5, 0x9d, 0x8f, 0x74, 0xb5, 0x3d, 0xbe, 0x47, 0xa2, 0x43, 0x37, 0xb3, 0x56, + 0xe6, 0xad, 0x20, 0x90, 0x6d, 0xe8, 0x79, 0x38, 0xd3, 0xcc, 0x4b, 0xe1, 0x23, 0xca, 0xbe, 0x5f, + 0x7c, 0x4a, 0xeb, 0x8a, 0x1b, 0xc9, 0x2b, 0xe8, 0x94, 0x52, 0xec, 0x3b, 0xaa, 0x8d, 0xd3, 0x02, + 0x9a, 0xdd, 0xfe, 0xa0, 0x8e, 0x7a, 0x6a, 0x24, 0x77, 0x91, 0x1f, 0x96, 0xd7, 0xf7, 0x51, 0x6f, + 0x52, 0xce, 0xde, 0x16, 0xb2, 0xad, 0xf3, 0xc5, 0x31, 0xe4, 0x6b, 0x30, 0x1f, 0xa9, 0x47, 0x89, + 0x4f, 0xa8, 0xfd, 0x79, 0xbc, 0x39, 0x9c, 0xfd, 0xd2, 0xcf, 0xe3, 0x5e, 0x1f, 0x3e, 0x05, 0x61, + 0xfc, 0x0c, 0x7d, 0xfd, 0xc5, 0x89, 0xfa, 0x3e, 0xb1, 0x9a, 0x5f, 0x4d, 0xf3, 0x1f, 0xc3, 0x87, + 0x66, 0xf6, 0xf5, 0x36, 0xfc, 0x3a, 0x5f, 0xb2, 0xde, 0x29, 0xe1, 0xc3, 0x17, 0x7b, 0xd8, 0x3a, + 0xab, 0x11, 0x21, 0x79, 0xec, 0x07, 0x13, 0x72, 0x00, 0xc2, 0xdc, 0x2a, 0xa8, 0x14, 0xf5, 0x09, + 0x6d, 0x3d, 0x92, 0x37, 0x90, 0x7a, 0xf9, 0xd3, 0xf7, 0x25, 0x44, 0x85, 0x69, 0x1a, 0x8d, 0x98, + 0x14, 0x3e, 0x32, 0x2a, 0x02, 0x17, 0x5e, 0x63, 0x38, 0x5d, 0xcf, 0x70, 0x27, 0x42, 0xe3, 0x21, + 0x05, 0x41, 0x2d, 0x44, 0xad, 0x83, 0xd7, 0x5b, 0x52, 0x0b, 0x21, 0xae, 0xbe, 0x05, 0xed, 0x0a, + 0x88, 0x9f, 0x96, 0x31, 0xf6, 0x43, 0xff, 0xfe, 0xcf, 0x3f, 0x61, 0x18, 0xfb, 0x56, 0x5a, 0x09, + 0xb3, 0xe4, 0x96, 0x44, 0x79, 0xc5, 0xd8, 0x0a, 0xfe, 0x79, 0x5e, 0x6c, 0xc9, 0x2a, 0x76, 0x76, + 0x2f, 0x4f, 0x3e, 0xa9, 0x8e, 0xad, 0xf9, 0xf9, 0x40, 0x4d, 0xdf, 0x46, 0x05, 0xe6, 0x1d, 0x96, + 0xf0, 0x96, 0x2b, 0xa0, 0xd1, 0x9b, 0xca, 0xdd, 0x58, 0xee, 0x9b, 0x07, 0xb3, 0x83, 0x30, 0x76, + 0x3f, 0xf2, 0x49, 0xcb, 0x15, 0xae, 0x71, 0x17, 0x4a, 0xae, 0xcb, 0xf9, 0x4a, 0x6a, 0x71, 0x85, + 0x9b, 0xfb, 0x2d, 0xe9, 0xcd, 0xc3, 0x72, 0x07, 0xbd, 0xb9, 0xfa, 0xe2, 0x0b, 0x5c, 0xa0, 0x71, + 0x12, 0x9c, 0x3b, 0x0c, 0x4c, 0xab, 0x9c, 0x34, 0x34, 0xd5, 0x52, 0x99, 0x8c, 0x95, 0x12, 0x0e, + 0x24, 0x30, 0x8b, 0x71, 0x7c, 0x84, 0x5b, 0xdb, 0xfe, 0x1e, 0xdc, 0xe2, 0x2b, 0x25, 0x7c, 0x45, + 0xcc, 0xf2, 0x4e, 0xc0, 0xac, 0x12, 0x86, 0x59, 0xea, 0xab, 0xc7, 0x2b, 0x76, 0xa6, 0x5c, 0xc6, + 0x2b, 0x6a, 0xbf, 0xcf, 0x8e, 0xf1, 0xe5, 0x97, 0xa1, 0x99, 0x4a, 0x8c, 0x65, 0xfe, 0x63, 0xb0, + 0xdd, 0xa2, 0x52, 0xbb, 0xc1, 0x00, 0x51, 0xb9, 0x54, 0xbb, 0xf1, 0x1e, 0x9f, 0x85, 0xda, 0x6d, + 0x74, 0xb9, 0xd4, 0x6e, 0x7d, 0x71, 0x6a, 0x37, 0x67, 0x3e, 0xb5, 0x1a, 0xb5, 0x0d, 0x6b, 0x35, + 0x7a, 0xc3, 0x16, 0xbd, 0x29, 0xd9, 0x6a, 0xd4, 0x9e, 0x37, 0x51, 0xab, 0x51, 0xbf, 0xae, 0x26, + 0xcc, 0xfb, 0x2c, 0xb7, 0xa6, 0x4f, 0x97, 0x0f, 0xd9, 0xa0, 0x0a, 0x66, 0x91, 0x6d, 0x11, 0xd2, + 0xdb, 0xa7, 0xf4, 0xb8, 0xdf, 0xd2, 0x57, 0xcc, 0xfe, 0x4f, 0xb2, 0xc7, 0x3f, 0xe3, 0x13, 0xb4, + 0x7a, 0xce, 0x92, 0x49, 0x25, 0x56, 0xf9, 0xf7, 0x7f, 0x4a, 0x9e, 0x87, 0x0d, 0x58, 0xe2, 0xea, + 0x61, 0xa4, 0x9c, 0x21, 0x18, 0x39, 0x80, 0x2d, 0xe4, 0xb0, 0x2b, 0x65, 0x3a, 0x87, 0x2d, 0x94, + 0xbe, 0x36, 0x82, 0x1c, 0x6c, 0x20, 0x65, 0xb5, 0x28, 0x65, 0x07, 0x1f, 0xf9, 0x9e, 0xe9, 0xf1, + 0x9d, 0x34, 0xcf, 0x22, 0x45, 0xde, 0x85, 0x33, 0xd7, 0xe6, 0xd4, 0x6c, 0x24, 0xc2, 0x48, 0x33, + 0xca, 0xaf, 0xd2, 0xea, 0x6e, 0x09, 0xce, 0x17, 0x74, 0x95, 0xc9, 0x96, 0xa1, 0x99, 0x0d, 0x0b, + 0xc6, 0x25, 0xce, 0x0d, 0x39, 0x74, 0x16, 0x5a, 0xdf, 0x0e, 0x5a, 0x10, 0x8b, 0xd4, 0x0e, 0x4e, + 0xe1, 0x8a, 0x7f, 0x17, 0x29, 0x64, 0x73, 0x48, 0x83, 0xbf, 0x2d, 0x41, 0x8d, 0xa8, 0x0a, 0xb7, + 0x20, 0x5f, 0xd9, 0xac, 0x70, 0x43, 0x2c, 0xe6, 0x46, 0x9c, 0x52, 0xfb, 0x7e, 0x46, 0x6b, 0xaa, + 0x38, 0xb3, 0x97, 0x88, 0x5a, 0x53, 0x0b, 0x94, 0x99, 0x7a, 0x45, 0x05, 0xd3, 0xb2, 0x18, 0xc1, + 0xb0, 0x32, 0xb2, 0xc5, 0xe1, 0xb0, 0x83, 0x9a, 0xd2, 0x41, 0x6a, 0xbb, 0x13, 0x53, 0x99, 0x52, + 0x2b, 0xaf, 0xf7, 0x26, 0xc2, 0x8d, 0xc0, 0xd6, 0x57, 0xbf, 0x6b, 0xe7, 0x90, 0xdb, 0x3a, 0x4e, + 0x18, 0x92, 0x38, 0x8b, 0x23, 0xc9, 0xb2, 0x7d, 0xc7, 0xf1, 0xba, 0x0f, 0xaf, 0xcd, 0x78, 0xf5, + 0xc2, 0xc8, 0xf6, 0x3d, 0x30, 0xb2, 0x23, 0xfc, 0x3f, 0x28, 0xc7, 0x4e, 0x12, 0x20, 0x2f, 0xb1, + 0x2f, 0x3f, 0x59, 0xc4, 0x64, 0xd2, 0xec, 0xfd, 0x9f, 0x60, 0xb9, 0x4e, 0xa3, 0x34, 0x8b, 0xb2, + 0xf7, 0xfd, 0x6f, 0xe3, 0xf5, 0x5b, 0x2c, 0x6f, 0x56, 0x32, 0xed, 0x5d, 0x18, 0x52, 0x2d, 0x49, + 0xb3, 0xfd, 0x02, 0xf2, 0xfb, 0xd3, 0x48, 0x92, 0x45, 0x99, 0x96, 0xed, 0xd0, 0x77, 0x76, 0x86, + 0x93, 0x9a, 0x94, 0xcd, 0x2d, 0x8d, 0x8d, 0x05, 0xab, 0x1b, 0x1a, 0x53, 0xb9, 0x50, 0xc8, 0x44, + 0xd9, 0xf4, 0x81, 0x59, 0xa9, 0xe7, 0x1f, 0x3c, 0x91, 0xf6, 0x5c, 0x73, 0x75, 0x72, 0x6a, 0xdf, + 0x8a, 0x2b, 0xcb, 0xa9, 0xf7, 0xaf, 0xbf, 0x5a, 0x39, 0xf5, 0xfe, 0xd8, 0x97, 0xcb, 0xa9, 0x7d, + 0xcd, 0x7f, 0x9b, 0x9c, 0x4a, 0xeb, 0x44, 0x7d, 0xce, 0x49, 0x5a, 0x8e, 0xdb, 0x70, 0x44, 0x1f, + 0xbe, 0x9a, 0xdd, 0xf7, 0xfb, 0x87, 0x2e, 0x2f, 0xc1, 0xde, 0xbf, 0x73, 0xb2, 0x04, 0xdb, 0x17, + 0xbd, 0x92, 0x04, 0x7b, 0x7f, 0xef, 0x64, 0x09, 0xf6, 0xfe, 0x1d, 0x17, 0x4b, 0xb0, 0xf7, 0x0f, + 0xfc, 0x3d, 0x7e, 0xc5, 0x2e, 0xbf, 0xf7, 0x9d, 0x58, 0x79, 0xc5, 0x91, 0xbf, 0x63, 0xa2, 0x36, + 0x27, 0xbe, 0x89, 0x38, 0xbf, 0x35, 0x63, 0x4c, 0x23, 0x3e, 0x37, 0xe2, 0xb3, 0x28, 0xeb, 0x7d, + 0x92, 0xd4, 0x6b, 0x25, 0x59, 0x95, 0x3c, 0xb0, 0xe1, 0x7d, 0x27, 0xde, 0x07, 0x30, 0xec, 0x51, + 0x7c, 0x7e, 0x14, 0x9f, 0x77, 0x26, 0xd6, 0x5f, 0x51, 0x7a, 0x3e, 0xcd, 0x76, 0xff, 0x3b, 0xa5, + 0x13, 0xc5, 0xa6, 0x7c, 0xd8, 0xa6, 0x6b, 0x63, 0x3b, 0xce, 0xc0, 0x69, 0x7c, 0x8f, 0xc3, 0xe6, + 0x60, 0xb6, 0x6c, 0x9d, 0x62, 0xe2, 0x69, 0x82, 0xcd, 0x14, 0x87, 0xbd, 0x71, 0x2a, 0x6c, 0x98, + 0x78, 0x9e, 0x90, 0x74, 0x1a, 0x43, 0x85, 0x18, 0x7b, 0x5f, 0x30, 0x9b, 0x34, 0x23, 0xd3, 0xe3, + 0xc8, 0x1e, 0x53, 0x28, 0x07, 0xe3, 0x76, 0x04, 0x73, 0x89, 0x1f, 0xef, 0x2b, 0x63, 0xab, 0xdb, + 0x27, 0x30, 0x7c, 0x47, 0x50, 0x53, 0x73, 0x96, 0xf6, 0xb5, 0xe1, 0xf8, 0x75, 0xb4, 0xee, 0x17, + 0x15, 0xf2, 0x61, 0xed, 0x8d, 0x4b, 0x60, 0x03, 0xd9, 0x78, 0xd8, 0x5e, 0x0f, 0x1b, 0xf1, 0x2b, + 0x63, 0xb0, 0x83, 0x61, 0xc5, 0xe2, 0x74, 0xac, 0x20, 0xeb, 0x22, 0xa1, 0xe5, 0x15, 0x48, 0x43, + 0xb1, 0x77, 0x72, 0x52, 0x16, 0xd4, 0x70, 0xbe, 0xdf, 0x21, 0xe9, 0xab, 0xc3, 0xc8, 0x83, 0xbb, + 0xc0, 0x14, 0x88, 0x91, 0xb6, 0xba, 0x7d, 0x09, 0xd8, 0x7e, 0x70, 0xb8, 0x3c, 0x95, 0xf7, 0x49, + 0xfc, 0xbe, 0x5f, 0x92, 0xa7, 0x90, 0x5f, 0x30, 0xa6, 0x28, 0xaa, 0x80, 0xf9, 0xb1, 0x3c, 0x59, + 0xb9, 0xc2, 0x20, 0x96, 0x48, 0x25, 0xc6, 0xbc, 0xe9, 0xbb, 0x57, 0xf1, 0xbb, 0x87, 0x53, 0x3a, + 0xe6, 0xee, 0xf7, 0x61, 0xa7, 0xb1, 0x2d, 0x6d, 0x37, 0x54, 0x9b, 0xa6, 0xdb, 0xce, 0xc9, 0x7e, + 0x2c, 0x72, 0x24, 0xdc, 0xa6, 0x3d, 0xaa, 0x09, 0x5a, 0xf2, 0x7a, 0x53, 0x33, 0xec, 0x14, 0x4d, + 0xbf, 0x7c, 0x1f, 0x72, 0x82, 0x13, 0xac, 0xd6, 0x1a, 0x7d, 0x61, 0xc3, 0x45, 0x9a, 0x82, 0xaf, + 0x4d, 0x4c, 0x59, 0xd2, 0xdf, 0x60, 0x67, 0x45, 0x59, 0x0f, 0x9a, 0x5b, 0x65, 0x5e, 0xd3, 0x9a, + 0xe2, 0x35, 0x69, 0xe6, 0x96, 0xf4, 0x06, 0xa2, 0x1c, 0xf2, 0xbf, 0x0a, 0xda, 0x73, 0x10, 0x3c, + 0x0f, 0x3c, 0xbf, 0x81, 0xa3, 0x73, 0x72, 0xc8, 0x89, 0xe4, 0x10, 0xdf, 0x10, 0x85, 0x42, 0xce, + 0xda, 0x06, 0x9b, 0xff, 0xeb, 0x60, 0xe1, 0x22, 0x0b, 0x04, 0xdc, 0x0b, 0x24, 0xef, 0x6f, 0x39, + 0xba, 0x66, 0x88, 0x91, 0xbe, 0x9d, 0xd0, 0x8c, 0xf3, 0xa1, 0x02, 0xa9, 0xff, 0x77, 0xd7, 0x41, + 0x91, 0xa2, 0x2b, 0x56, 0xa9, 0x7e, 0x61, 0x93, 0xb5, 0x72, 0xc9, 0x07, 0xf1, 0x9d, 0x5d, 0x53, + 0x0e, 0x7c, 0xbf, 0xa9, 0xd2, 0xa7, 0x6c, 0xe3, 0x75, 0x6e, 0x68, 0x08, 0xd1, 0x99, 0xd5, 0x1c, + 0x84, 0xe1, 0xba, 0x76, 0xbe, 0x7a, 0xb7, 0x2d, 0xe3, 0xcf, 0x4f, 0x98, 0xd5, 0x95, 0xe5, 0xbf, + 0x6f, 0x06, 0xad, 0x68, 0x64, 0xe9, 0x21, 0x4c, 0x50, 0xa3, 0x6d, 0x06, 0x15, 0x86, 0xe8, 0xd3, + 0xe1, 0xbe, 0x8f, 0x30, 0xd2, 0x6c, 0x8a, 0xbd, 0x9f, 0x71, 0x93, 0x00, 0x6a, 0x82, 0x2f, 0xb5, + 0x80, 0xb6, 0x8c, 0x53, 0x2f, 0x8e, 0xbf, 0x53, 0x54, 0xca, 0x81, 0x6e, 0x31, 0x28, 0x56, 0xdd, + 0x81, 0x69, 0xcc, 0x0f, 0xd5, 0xe3, 0x6f, 0x41, 0x28, 0x80, 0xbf, 0xf6, 0x50, 0x35, 0xfe, 0xfe, + 0x43, 0xa8, 0x12, 0x7f, 0xcb, 0x42, 0x2e, 0xfc, 0xbd, 0x25, 0x54, 0x82, 0xbf, 0x33, 0x42, 0x85, + 0xf8, 0x5b, 0x1a, 0x2a, 0xc0, 0xdf, 0xf2, 0x90, 0x05, 0x7f, 0x7d, 0x21, 0x23, 0xfe, 0xde, 0x1e, + 0xca, 0xc3, 0xdf, 0x7f, 0x0a, 0x65, 0xe3, 0xef, 0x8a, 0x90, 0x1e, 0x7f, 0xff, 0x39, 0xa4, 0xc5, + 0xdf, 0x3b, 0x6e, 0x7b, 0xc6, 0xdb, 0xfd, 0x9c, 0xfb, 0xee, 0xca, 0x9b, 0xca, 0xa5, 0xba, 0x5f, + 0xd7, 0x4c, 0x74, 0x5a, 0x7e, 0xca, 0x84, 0x69, 0xf2, 0xd3, 0x35, 0xc8, 0x63, 0x48, 0x4f, 0x59, + 0x30, 0x1d, 0x31, 0x25, 0x13, 0xaf, 0x2c, 0x9f, 0xa2, 0xdd, 0x16, 0x99, 0xb2, 0xfb, 0xfb, 0x8d, + 0x66, 0x8a, 0x5b, 0x40, 0x27, 0x7e, 0xc8, 0x92, 0x58, 0xce, 0x35, 0xf4, 0x65, 0x16, 0x0b, 0x13, + 0xa4, 0xef, 0x30, 0x64, 0x1a, 0x64, 0xea, 0x04, 0x58, 0x1f, 0x54, 0xac, 0xe7, 0x58, 0x1d, 0x6d, + 0xd0, 0x7b, 0x00, 0xdb, 0x37, 0x44, 0xde, 0x45, 0xb2, 0xcd, 0xbd, 0x81, 0x7b, 0x86, 0xee, 0xe9, + 0x80, 0xf1, 0xc6, 0x28, 0xf1, 0x3d, 0x82, 0xf0, 0x80, 0xcf, 0x13, 0xf2, 0xf9, 0xda, 0x60, 0x4b, + 0xd0, 0x73, 0x33, 0xb5, 0xcf, 0x16, 0xf7, 0x59, 0x10, 0x9f, 0x3a, 0x8b, 0x73, 0xb3, 0xd5, 0xd4, + 0x06, 0x22, 0x9d, 0xda, 0x43, 0x2a, 0xd3, 0x9a, 0x58, 0x27, 0xb0, 0x4f, 0xb7, 0xba, 0xd8, 0x4a, + 0x09, 0xe2, 0x86, 0xf5, 0x4e, 0x53, 0xc0, 0xb7, 0x35, 0xf8, 0x86, 0x98, 0xd2, 0x46, 0xb5, 0x3a, + 0x14, 0xd2, 0xc9, 0xf0, 0xc4, 0x1e, 0xbe, 0xd9, 0x0e, 0x79, 0xc5, 0xca, 0x84, 0xc6, 0xc2, 0x68, + 0x04, 0x29, 0x57, 0x2f, 0xed, 0x82, 0x62, 0xc9, 0x36, 0xbf, 0x74, 0x70, 0xc1, 0x26, 0xc4, 0x06, + 0xe2, 0x2f, 0x7b, 0xeb, 0xfb, 0x70, 0x0e, 0x8f, 0x31, 0xbd, 0x9e, 0x5e, 0xa4, 0x6c, 0x2a, 0x9e, + 0x63, 0x92, 0x13, 0x9c, 0x8c, 0x45, 0xbf, 0x7b, 0xa8, 0x3b, 0xd6, 0x23, 0x9d, 0x66, 0xe9, 0xc8, + 0x33, 0xc1, 0xbb, 0x5b, 0xd6, 0x4d, 0x19, 0xde, 0x84, 0xdf, 0xdf, 0xf7, 0xd2, 0x41, 0x1f, 0xd7, + 0xa6, 0xe2, 0xfa, 0x45, 0x35, 0xad, 0x1b, 0x6c, 0x22, 0x6d, 0x21, 0xf3, 0x53, 0x28, 0x39, 0x86, + 0x66, 0x25, 0x30, 0x1d, 0x65, 0x65, 0x1c, 0xe1, 0x61, 0x48, 0x96, 0x9a, 0xa3, 0x52, 0xdb, 0x59, + 0x1c, 0xd9, 0x14, 0xf7, 0xe4, 0x21, 0x07, 0x73, 0x56, 0xda, 0x75, 0x2b, 0x65, 0xbb, 0x6e, 0x55, + 0xef, 0x81, 0x19, 0xf9, 0x0d, 0x33, 0x9d, 0x99, 0x7f, 0x20, 0x2a, 0x1a, 0x99, 0xcf, 0xa5, 0x0a, + 0x7f, 0x7f, 0x11, 0x24, 0x76, 0xd7, 0x12, 0x3b, 0x6a, 0x88, 0xfb, 0xe5, 0x21, 0xb5, 0xc9, 0x63, + 0xc9, 0x0a, 0xbe, 0xfe, 0xeb, 0xf7, 0xa1, 0x20, 0xc8, 0xfa, 0x52, 0x61, 0x89, 0x8f, 0xc3, 0xb5, + 0xd5, 0x1f, 0xac, 0x28, 0x45, 0xce, 0xfc, 0x9f, 0x65, 0x1b, 0xb3, 0x45, 0x13, 0x35, 0x74, 0xe4, + 0x15, 0xb9, 0x69, 0xa1, 0x70, 0x03, 0xe9, 0x06, 0x4c, 0x45, 0x1e, 0x3c, 0x17, 0x25, 0xb2, 0x4f, + 0xf0, 0x39, 0x23, 0x88, 0xc2, 0x99, 0xe8, 0xc3, 0xa7, 0xe9, 0x64, 0x8b, 0xb4, 0x29, 0x2c, 0xeb, + 0xea, 0xf8, 0x13, 0x3a, 0x3a, 0xd7, 0x26, 0x74, 0x74, 0x04, 0x69, 0xc5, 0x2e, 0xa2, 0x27, 0xab, + 0x4b, 0x0b, 0x68, 0xe5, 0x35, 0xb9, 0x5e, 0xd7, 0x67, 0x04, 0xdd, 0xd7, 0xdd, 0x4c, 0x47, 0x27, + 0x0f, 0xa1, 0x72, 0x16, 0x74, 0x40, 0x2f, 0xce, 0x86, 0xc0, 0x65, 0x26, 0xfa, 0xe1, 0x8b, 0x33, + 0xee, 0x0f, 0x81, 0xbc, 0xff, 0xa5, 0x49, 0x97, 0x81, 0xd5, 0xd0, 0x93, 0xb0, 0x1e, 0x8c, 0x10, + 0x87, 0xd3, 0x63, 0xe3, 0xaa, 0x5a, 0x8c, 0x4d, 0xc6, 0xed, 0x17, 0x5d, 0xba, 0x0e, 0xc2, 0x15, + 0xe4, 0xe5, 0xf7, 0x38, 0x0a, 0xa0, 0xa7, 0xd6, 0xf5, 0x0f, 0x2e, 0xe8, 0xc1, 0xb7, 0x5d, 0x7c, + 0x07, 0xf4, 0x93, 0xdf, 0x2a, 0xbe, 0x00, 0x1e, 0xae, 0x8b, 0xe5, 0x83, 0xb1, 0x39, 0x3e, 0x66, + 0x9f, 0xce, 0xbc, 0x30, 0xe5, 0xfa, 0xfb, 0x53, 0x78, 0x52, 0xd3, 0x27, 0x6e, 0xe4, 0xe7, 0x81, + 0x29, 0xc2, 0xd3, 0xce, 0x77, 0x98, 0xa7, 0x73, 0xf5, 0x28, 0x59, 0xdd, 0x97, 0x9e, 0xeb, 0x85, + 0x7e, 0xf1, 0xf6, 0x64, 0x9e, 0xc5, 0xd4, 0xba, 0xf5, 0x7d, 0x98, 0x5b, 0xef, 0x10, 0x62, 0x73, + 0x90, 0x97, 0x74, 0x5f, 0xc0, 0x82, 0xe5, 0xb8, 0x16, 0x6b, 0x63, 0x4e, 0xa3, 0x6e, 0x5a, 0xc4, + 0x6d, 0x9d, 0x9d, 0xd9, 0x5b, 0x1a, 0x75, 0xd5, 0xf4, 0x09, 0x42, 0x32, 0x15, 0x40, 0x59, 0x4f, + 0x23, 0x69, 0xca, 0x08, 0x82, 0xa4, 0x13, 0x13, 0xd4, 0xfb, 0x04, 0x94, 0x3e, 0xd2, 0xb4, 0x66, + 0xaa, 0xdf, 0x6c, 0x93, 0xad, 0xf7, 0x22, 0xb7, 0x50, 0x95, 0xf8, 0xf6, 0xf3, 0xbd, 0x52, 0x09, + 0x34, 0xe4, 0x97, 0xfa, 0xda, 0x50, 0x19, 0xf3, 0x22, 0xa9, 0x09, 0x16, 0x99, 0xfd, 0x13, 0xe9, + 0x6a, 0x2a, 0x1d, 0x66, 0xb3, 0x76, 0x36, 0x8e, 0x3a, 0xf3, 0x53, 0x84, 0x1f, 0x59, 0x29, 0xfc, + 0x10, 0xd5, 0xa4, 0xab, 0x26, 0x2a, 0x1e, 0x3c, 0x92, 0x4c, 0x3d, 0x58, 0xdf, 0x97, 0x98, 0xb5, + 0x25, 0xfe, 0xf4, 0x5f, 0x2c, 0x30, 0xf2, 0xf0, 0x5b, 0x78, 0xbd, 0x86, 0xd7, 0x09, 0x18, 0xf9, + 0xb7, 0x7a, 0x18, 0xf9, 0x49, 0x23, 0x5e, 0xc7, 0x60, 0xe4, 0xff, 0x3d, 0x0d, 0x23, 0x8f, 0xc5, + 0xf0, 0x8e, 0xfc, 0xe1, 0x63, 0x08, 0xf3, 0xd3, 0xbc, 0xff, 0x41, 0xbe, 0x75, 0x55, 0x67, 0xc7, + 0x9a, 0xce, 0xb6, 0xa6, 0xcb, 0xef, 0xc0, 0x4c, 0x04, 0x90, 0xb8, 0xd6, 0x1f, 0x0d, 0xc0, 0xc8, + 0xb9, 0x62, 0xe4, 0x5a, 0x55, 0xf8, 0xbc, 0x03, 0xaf, 0x6f, 0xe3, 0x75, 0x38, 0x99, 0x32, 0x42, + 0xec, 0x38, 0x2b, 0x71, 0xad, 0xff, 0xb2, 0x1d, 0xe7, 0x64, 0x25, 0x71, 0xab, 0x7a, 0x7c, 0x7b, + 0xe8, 0x80, 0x12, 0x49, 0x20, 0xde, 0x7f, 0xab, 0x84, 0xf9, 0x74, 0x3f, 0xa8, 0x84, 0x02, 0xba, + 0xff, 0x4e, 0x09, 0xf9, 0x74, 0x3f, 0xac, 0x04, 0x1b, 0xdd, 0xff, 0xa0, 0x44, 0x02, 0x89, 0xf7, + 0x17, 0x15, 0x70, 0x23, 0xdd, 0x8f, 0xca, 0xf7, 0x63, 0x4a, 0x44, 0x09, 0xbc, 0xbf, 0xa2, 0x24, + 0x67, 0xde, 0x23, 0x0f, 0xbd, 0xa6, 0x90, 0xee, 0xaf, 0x2b, 0xe1, 0x5a, 0xce, 0xc0, 0xcd, 0xe4, + 0xb2, 0xb9, 0xeb, 0xb8, 0x1c, 0xee, 0x7a, 0x2e, 0x0e, 0xb9, 0x8a, 0x1b, 0xb8, 0x3c, 0xf8, 0x1a, + 0x22, 0xd1, 0x6c, 0xa4, 0x34, 0x71, 0xe0, 0x39, 0xfa, 0x9d, 0xc3, 0x19, 0xd9, 0xfd, 0xeb, 0xec, + 0xd7, 0xc4, 0x7e, 0xbf, 0xec, 0x6f, 0xae, 0x3e, 0xfd, 0xcd, 0xce, 0x39, 0xd8, 0x7d, 0x01, 0xe7, + 0xc4, 0xaf, 0xe7, 0x61, 0x9c, 0x55, 0xef, 0x74, 0x34, 0x3b, 0x1d, 0x6d, 0x65, 0x0b, 0x9a, 0xcb, + 0x16, 0xb4, 0x95, 0xdd, 0xd4, 0x5c, 0x76, 0x53, 0x5b, 0x51, 0x07, 0x1f, 0x5e, 0xc0, 0x87, 0x1d, + 0x7c, 0x98, 0xff, 0x96, 0x83, 0xff, 0xd6, 0xc4, 0x96, 0xaf, 0x81, 0x1b, 0x52, 0xbe, 0xd5, 0xbf, + 0xe4, 0xdf, 0x2c, 0xb8, 0x76, 0xa2, 0xcf, 0xf2, 0x34, 0x8e, 0xfe, 0xea, 0x61, 0x15, 0xec, 0xf7, + 0x6b, 0x71, 0xf9, 0xdf, 0xd5, 0xa2, 0xc8, 0xa4, 0xbe, 0x9f, 0x84, 0x2b, 0x55, 0xb4, 0x47, 0xe6, + 0x95, 0x77, 0xc5, 0xe6, 0x36, 0xda, 0xe7, 0xae, 0xe2, 0x51, 0x34, 0x89, 0x74, 0x76, 0x46, 0x57, + 0xb5, 0xad, 0x5c, 0xb3, 0x06, 0x7e, 0xbc, 0xe0, 0x1b, 0x0b, 0xbe, 0x31, 0xb7, 0x11, 0xff, 0xf3, + 0x11, 0xf8, 0x31, 0x7b, 0x08, 0x40, 0x38, 0xd2, 0x19, 0x0e, 0x49, 0xf1, 0x6b, 0xbe, 0xb3, 0xa6, + 0x45, 0x7a, 0x2a, 0xef, 0xec, 0x28, 0x6f, 0x6b, 0x09, 0x17, 0x44, 0x9a, 0x3a, 0x1a, 0x9b, 0x36, + 0xac, 0xeb, 0x5c, 0x7b, 0xc9, 0xa0, 0x1f, 0x3b, 0xf8, 0x75, 0x13, 0xb7, 0xf0, 0xe6, 0xcc, 0x99, + 0xc3, 0xdf, 0xea, 0x5f, 0xe2, 0x5f, 0x76, 0x9b, 0x9f, 0x2f, 0x5f, 0xb6, 0x74, 0xa9, 0xdb, 0xef, + 0xe1, 0x03, 0x15, 0xe5, 0x15, 0x55, 0xcb, 0x2b, 0x3c, 0xbc, 0xf0, 0x8f, 0x18, 0xe6, 0xaf, 0x5d, + 0x56, 0x5d, 0xc1, 0xd7, 0xb9, 0x6b, 0x97, 0xf0, 0x08, 0xac, 0x65, 0x5f, 0xd4, 0x79, 0xab, 0x6a, + 0xf9, 0x5a, 0xef, 0xb2, 0x5b, 0xab, 0x3d, 0xbc, 0xbf, 0x02, 0x47, 0x01, 0xef, 0x75, 0xd7, 0xd4, + 0x54, 0xf8, 0x25, 0x88, 0x94, 0x5c, 0xb4, 0xf3, 0xdd, 0xd4, 0xf3, 0x23, 0x3b, 0xd2, 0x9e, 0xdb, + 0x52, 0xcf, 0xff, 0xda, 0x9c, 0xe6, 0xd7, 0x39, 0x71, 0xcd, 0x91, 0xc3, 0x6e, 0xfc, 0x72, 0x99, + 0xea, 0xe1, 0xfb, 0xae, 0x2c, 0x53, 0xfd, 0xc8, 0x71, 0xb5, 0x32, 0xd5, 0x8f, 0x8a, 0xbf, 0x5c, + 0xa6, 0x7a, 0x78, 0xc7, 0xff, 0xdc, 0xde, 0xdf, 0x8f, 0xae, 0x70, 0x4e, 0xee, 0x47, 0x17, 0x9d, + 0x93, 0x7b, 0x78, 0xe8, 0x4a, 0x92, 0xd3, 0xc3, 0x8f, 0x4e, 0x96, 0x9c, 0x7e, 0x74, 0x89, 0x73, + 0x72, 0x3f, 0xfa, 0xbb, 0xcf, 0xc9, 0xe1, 0x7c, 0x74, 0x7e, 0x82, 0x87, 0xe4, 0xcf, 0x53, 0x6f, + 0x13, 0x25, 0x1d, 0x28, 0x4b, 0x48, 0x3a, 0xbc, 0x1d, 0x8a, 0x99, 0xad, 0x2c, 0xdd, 0xbc, 0x25, + 0x60, 0x98, 0xe7, 0x86, 0x1c, 0xb2, 0x76, 0x28, 0x9f, 0x76, 0x35, 0x24, 0x6d, 0xae, 0xb6, 0x21, + 0xa1, 0x22, 0x2b, 0xc2, 0xd8, 0xca, 0x0d, 0xda, 0xac, 0x52, 0x50, 0xd2, 0xc9, 0x60, 0x51, 0x87, + 0xb3, 0xe0, 0x63, 0xa2, 0x16, 0x7f, 0x07, 0x45, 0xb2, 0xb4, 0xfd, 0xc4, 0x03, 0xcf, 0x93, 0x04, + 0x62, 0x5b, 0x0d, 0xe7, 0x69, 0x55, 0x98, 0xc9, 0x40, 0xfe, 0x25, 0x38, 0x9f, 0xf0, 0x4b, 0x53, + 0x27, 0x8d, 0x98, 0xfd, 0xd6, 0x0c, 0x30, 0x2d, 0x7e, 0x1f, 0x8c, 0x28, 0x87, 0x58, 0x90, 0x73, + 0xcb, 0x61, 0x67, 0x2c, 0x0c, 0x7c, 0x6b, 0x7c, 0x8c, 0x47, 0x0e, 0xbc, 0xfc, 0x23, 0x30, 0x25, + 0xf8, 0xb6, 0xb4, 0x2f, 0x9f, 0x0b, 0x73, 0xa2, 0x5a, 0x92, 0x42, 0xc8, 0xa2, 0x9e, 0x24, 0x49, + 0x48, 0xf6, 0x88, 0x39, 0xe2, 0xdf, 0x3c, 0x61, 0xe5, 0x04, 0x7f, 0xd4, 0xe7, 0x91, 0x57, 0xa9, + 0x0b, 0x6b, 0x26, 0x84, 0x7d, 0x1e, 0xcc, 0x9a, 0xd8, 0x4a, 0xc8, 0x69, 0x38, 0x2e, 0x73, 0x62, + 0xf0, 0x34, 0xde, 0xcf, 0x61, 0xd8, 0x59, 0x7c, 0x3e, 0x8b, 0xcf, 0xa7, 0x69, 0xa5, 0x7f, 0x82, + 0xdc, 0xb9, 0x62, 0xc2, 0xdb, 0xfe, 0xd4, 0x1b, 0x7e, 0xb5, 0x1b, 0xaf, 0xbd, 0x92, 0x8e, 0xea, + 0x9e, 0x42, 0xcc, 0xf9, 0x27, 0xd2, 0xf3, 0x1f, 0xea, 0xf1, 0x59, 0xb2, 0xf5, 0x30, 0x72, 0x6a, + 0x0c, 0x9f, 0x07, 0xa5, 0xe7, 0xf7, 0x28, 0xfc, 0x09, 0x86, 0xed, 0x83, 0xf0, 0x93, 0x10, 0xfd, + 0x3e, 0x16, 0xd2, 0xe2, 0xef, 0x20, 0xdb, 0x53, 0xd3, 0x17, 0x94, 0xfe, 0x00, 0x69, 0x61, 0x4a, + 0x97, 0x43, 0xde, 0xb7, 0xd5, 0x91, 0x5c, 0xf7, 0xe3, 0x6d, 0xa0, 0x97, 0xf7, 0x6d, 0x0d, 0x61, + 0x2d, 0xca, 0x77, 0x39, 0xf2, 0xbe, 0x6d, 0x1e, 0xb5, 0xb5, 0x4b, 0xc5, 0x4e, 0x2b, 0xd3, 0xbe, + 0xad, 0xc9, 0x4d, 0x36, 0x5f, 0xbd, 0xb4, 0x5f, 0xcb, 0xf6, 0x6d, 0x6d, 0xf4, 0xf5, 0xfb, 0x8f, + 0x82, 0x43, 0xde, 0xb7, 0x2d, 0xa4, 0xb3, 0x53, 0x64, 0xab, 0xc6, 0xfd, 0x51, 0x4a, 0xc7, 0x89, + 0xed, 0xdb, 0xde, 0x3f, 0xd1, 0xf2, 0xab, 0x27, 0x26, 0xed, 0xdd, 0x4a, 0xde, 0x3f, 0x13, 0x16, + 0x21, 0x51, 0xd6, 0xcc, 0xa9, 0x8d, 0x45, 0x2e, 0xec, 0x8e, 0x35, 0xf9, 0x59, 0x2f, 0xab, 0xc1, + 0xb0, 0xe4, 0xec, 0xc4, 0xde, 0x37, 0xad, 0xbe, 0x44, 0x6f, 0x1b, 0x2e, 0xd5, 0xdb, 0x88, 0x4f, + 0x39, 0xb6, 0x36, 0x86, 0x49, 0x1b, 0x99, 0x9d, 0x36, 0xd9, 0x67, 0x28, 0xd1, 0x8b, 0x09, 0xbb, + 0xc5, 0xc8, 0x93, 0xc2, 0xdd, 0x0d, 0x59, 0xf8, 0xa4, 0xc0, 0xa7, 0x63, 0x78, 0x27, 0xcb, 0x2d, + 0x8f, 0x89, 0x65, 0x8c, 0x6f, 0x8d, 0x4a, 0x5c, 0x29, 0x6c, 0x97, 0x77, 0x8f, 0x01, 0xfa, 0x27, + 0x71, 0xa3, 0xea, 0x14, 0x37, 0xfa, 0xa3, 0xd7, 0x24, 0x6e, 0x54, 0x00, 0xb1, 0x83, 0x71, 0x7c, + 0x6c, 0x64, 0xd8, 0xe7, 0xb1, 0xb5, 0x75, 0x76, 0x66, 0x13, 0xc7, 0x1a, 0x69, 0xa7, 0x5a, 0xf0, + 0xca, 0xa1, 0x7e, 0xfb, 0x29, 0x59, 0xaf, 0xe4, 0x99, 0xae, 0x76, 0x51, 0x78, 0x36, 0xcb, 0xc1, + 0x29, 0x6a, 0x22, 0xb3, 0x77, 0xd3, 0x93, 0xc5, 0xc4, 0x38, 0x26, 0x33, 0xc2, 0xdb, 0x3a, 0xe0, + 0x73, 0x92, 0xf1, 0x79, 0x97, 0xb1, 0x3c, 0xcc, 0x13, 0x57, 0x8e, 0x1c, 0xa3, 0x2a, 0x7c, 0x41, + 0xf6, 0xc1, 0x37, 0x36, 0x93, 0x76, 0xa9, 0x25, 0x1e, 0xcf, 0x38, 0x41, 0x2b, 0x3a, 0xb5, 0x4f, + 0xbd, 0x35, 0xb5, 0x4f, 0x9d, 0xa4, 0x66, 0x25, 0xa6, 0xaa, 0xc5, 0x1f, 0xc2, 0x0a, 0x3e, 0x75, + 0xae, 0xee, 0x05, 0xe4, 0xf5, 0xe8, 0xcc, 0x82, 0x51, 0xe2, 0xe8, 0x2e, 0xc7, 0xef, 0x25, 0xce, + 0x20, 0xa4, 0x7d, 0xf9, 0x1c, 0x3b, 0x85, 0x00, 0x89, 0xdd, 0xec, 0xc9, 0x36, 0xd6, 0xa5, 0x13, + 0xad, 0x16, 0x8d, 0xa5, 0xca, 0x3c, 0x0f, 0x74, 0x66, 0x6f, 0x57, 0xce, 0x89, 0x4d, 0x05, 0xa5, + 0xb4, 0x32, 0x8b, 0x63, 0xe8, 0x0e, 0x7d, 0x3e, 0xa8, 0xd8, 0x1e, 0x8d, 0xd6, 0x97, 0x0f, 0x53, + 0xda, 0x1c, 0x18, 0xe6, 0xc5, 0x77, 0x5d, 0xc8, 0x8c, 0xbf, 0xd3, 0x42, 0x3c, 0xfe, 0x4e, 0x0f, + 0x91, 0x65, 0xef, 0x29, 0x21, 0x03, 0xfe, 0x6a, 0x42, 0x99, 0x3a, 0xb2, 0x90, 0xab, 0xc1, 0x5f, + 0x35, 0xca, 0x0c, 0x79, 0xa6, 0x3a, 0x2b, 0x8e, 0x4b, 0x9e, 0x3c, 0xa1, 0xd7, 0x30, 0x7b, 0x64, + 0x9f, 0x47, 0x0b, 0x8e, 0x6f, 0xe1, 0x85, 0xd4, 0x19, 0x3a, 0x9c, 0x2f, 0x96, 0xd2, 0x88, 0xb5, + 0xce, 0x47, 0xaa, 0xe5, 0x62, 0xcf, 0x2b, 0xec, 0x64, 0x4f, 0xdb, 0x26, 0x66, 0xee, 0x1f, 0xa4, + 0x15, 0x8a, 0x30, 0xd7, 0x3d, 0xc8, 0x59, 0x44, 0x3d, 0x62, 0xaf, 0x8d, 0xe2, 0x2f, 0x04, 0xe9, + 0x34, 0x6d, 0xf0, 0x64, 0x5a, 0x2a, 0xcf, 0xc9, 0xa7, 0xb9, 0x76, 0xf1, 0xe5, 0x73, 0x7c, 0x6c, + 0xad, 0x24, 0x1b, 0xa5, 0x26, 0x35, 0x59, 0x35, 0xb3, 0xd6, 0x99, 0xe6, 0xc3, 0xf9, 0x25, 0x1f, + 0x4c, 0xc4, 0xd7, 0xf0, 0xf8, 0x30, 0xa6, 0x39, 0xd7, 0xc5, 0x59, 0x68, 0x1e, 0xd0, 0x90, 0x27, + 0x65, 0x93, 0x8c, 0xdb, 0xb6, 0x34, 0x0c, 0xb6, 0x25, 0x31, 0x98, 0x49, 0x5c, 0x17, 0x36, 0x4e, + 0xc0, 0xe4, 0x72, 0x13, 0xca, 0xbe, 0x0f, 0x3c, 0x9f, 0x6c, 0xfd, 0xd7, 0x99, 0x5d, 0x2c, 0xf2, + 0xd6, 0x90, 0xb2, 0xc1, 0xb7, 0x95, 0x4f, 0xf5, 0x4e, 0x2c, 0xed, 0xf9, 0x3e, 0x73, 0xad, 0x64, + 0x11, 0x60, 0xfc, 0x11, 0x5e, 0x95, 0x3a, 0xc5, 0x09, 0x25, 0x17, 0xef, 0xae, 0xca, 0xd6, 0x01, + 0xc6, 0xc2, 0xfa, 0xcb, 0xd8, 0x5e, 0x7d, 0x21, 0xb5, 0x8f, 0x4c, 0x1a, 0xd5, 0x74, 0xc2, 0x37, + 0x5c, 0x30, 0x19, 0x96, 0x9d, 0xdc, 0xdd, 0x18, 0x36, 0x5e, 0xec, 0x23, 0x1d, 0xc3, 0x6b, 0x04, + 0x0b, 0x64, 0x5e, 0x43, 0xa3, 0x6f, 0x46, 0xf9, 0x69, 0x30, 0xcc, 0xa9, 0x62, 0x3b, 0xaf, 0x39, + 0xf8, 0x9c, 0x83, 0xcf, 0xe4, 0x6f, 0x5e, 0x33, 0xb7, 0x9a, 0x9d, 0xf3, 0xcd, 0x44, 0x09, 0xbd, + 0x00, 0xb2, 0x68, 0xdd, 0x0a, 0xa5, 0x80, 0x2c, 0xb2, 0xc3, 0x7b, 0x5d, 0x17, 0x38, 0x25, 0x6b, + 0xa5, 0x3f, 0xfe, 0xdf, 0xa0, 0x35, 0x3d, 0x09, 0x86, 0xc4, 0x89, 0x01, 0xec, 0x87, 0x02, 0x1c, + 0x51, 0x3a, 0xff, 0xfe, 0x0b, 0xcc, 0x77, 0x17, 0x9f, 0x76, 0xea, 0xe4, 0x82, 0x98, 0x84, 0xd1, + 0x33, 0xab, 0xec, 0x0d, 0xcc, 0x8b, 0x51, 0x22, 0x2c, 0x9b, 0x9d, 0x63, 0xf0, 0xa7, 0xd9, 0xc5, + 0x05, 0x79, 0x64, 0x74, 0x82, 0xc1, 0xdc, 0x0a, 0x99, 0x49, 0x48, 0xa3, 0x3d, 0x1f, 0x34, 0x55, + 0x23, 0x17, 0x8c, 0xfe, 0x6d, 0x69, 0xb9, 0xe6, 0x63, 0xae, 0xdb, 0xc8, 0xba, 0xcf, 0x25, 0xf3, + 0xb3, 0x42, 0x26, 0xd3, 0x1c, 0x97, 0xcf, 0x48, 0xb0, 0xfc, 0x64, 0xcf, 0x3b, 0x89, 0xb1, 0x62, + 0xd7, 0xca, 0x63, 0xfb, 0x55, 0xef, 0x70, 0x42, 0x9b, 0xd3, 0xe1, 0x34, 0x6b, 0x4c, 0x7e, 0x1c, + 0x99, 0xfb, 0xd3, 0x47, 0x26, 0xce, 0x3c, 0xbb, 0x79, 0x2b, 0xec, 0x9d, 0xe0, 0x39, 0x7d, 0xaf, + 0x6f, 0x53, 0xa8, 0x44, 0xb2, 0x7c, 0x43, 0xf4, 0xc5, 0x04, 0x21, 0x5b, 0x64, 0xa2, 0x3f, 0xf6, + 0xdd, 0xa1, 0x5c, 0xbe, 0xdc, 0xe8, 0xe2, 0x15, 0x29, 0x59, 0x73, 0xae, 0x00, 0x7b, 0x0b, 0xbb, + 0x80, 0x23, 0xa9, 0x6c, 0xf2, 0x08, 0x96, 0xfc, 0xae, 0x33, 0x9f, 0x43, 0x17, 0x95, 0x00, 0xe7, + 0x93, 0xdd, 0x21, 0x3a, 0xdb, 0xb0, 0x37, 0x10, 0x9b, 0x64, 0x91, 0x46, 0xd2, 0x8d, 0xde, 0xcd, + 0xce, 0xb3, 0xef, 0x4d, 0x93, 0x6a, 0xc9, 0xe6, 0x46, 0x7a, 0x0e, 0x8a, 0x84, 0xcf, 0x20, 0xde, + 0x49, 0x67, 0x70, 0x2b, 0x28, 0x87, 0xd4, 0x39, 0xea, 0x17, 0x50, 0x82, 0x3c, 0x9d, 0xe6, 0xa7, + 0x53, 0x9b, 0x16, 0xf7, 0x9c, 0xe4, 0xad, 0x8a, 0xe9, 0xed, 0x2a, 0xb0, 0x7d, 0x32, 0xc9, 0x0e, + 0x17, 0x7e, 0x2d, 0xa4, 0xb5, 0x50, 0x79, 0xda, 0x89, 0x63, 0x21, 0xfd, 0x4b, 0x97, 0x64, 0xaf, + 0xa3, 0x57, 0xb6, 0x45, 0x34, 0x60, 0xb1, 0xc3, 0x90, 0xdd, 0xc3, 0xbc, 0xa9, 0xec, 0x12, 0x14, + 0x22, 0xa8, 0x2a, 0xf5, 0xd7, 0xea, 0x20, 0xfe, 0xe3, 0xa0, 0x16, 0xf9, 0x0d, 0xce, 0xaa, 0xaa, + 0xbd, 0x4b, 0x34, 0x22, 0xbf, 0xb2, 0xb9, 0x0d, 0x14, 0x51, 0xa4, 0x31, 0x37, 0x04, 0x41, 0xd1, + 0xa6, 0xcb, 0x87, 0x7f, 0xa2, 0x5d, 0x64, 0x45, 0x03, 0xc2, 0x28, 0xac, 0xaa, 0x5b, 0xef, 0x22, + 0x8b, 0x21, 0x3f, 0x7a, 0x57, 0x9f, 0xe5, 0x8d, 0x95, 0xba, 0xf6, 0xdf, 0xdf, 0x6e, 0xc4, 0xde, + 0xb4, 0xd2, 0x1a, 0x00, 0xf5, 0x46, 0xc9, 0x71, 0xd9, 0x12, 0x93, 0xee, 0xbf, 0x5e, 0x34, 0x58, + 0xe3, 0x23, 0x74, 0xce, 0x4b, 0x54, 0x08, 0xae, 0x5f, 0xa2, 0x3c, 0xf8, 0x50, 0x59, 0x48, 0x5b, + 0xb3, 0xc5, 0xe7, 0x0a, 0x1d, 0x12, 0x41, 0xa1, 0x33, 0x2d, 0xa5, 0x9d, 0x42, 0x05, 0x61, 0xc7, + 0x1c, 0xe4, 0xe7, 0x3a, 0xa1, 0x3b, 0xe5, 0xbd, 0x42, 0x50, 0x0a, 0x76, 0x58, 0x58, 0x73, 0xf0, + 0x81, 0xe7, 0xc9, 0xb6, 0x92, 0x30, 0x45, 0xe0, 0xba, 0x38, 0xe4, 0x7a, 0x0a, 0x4a, 0x05, 0xdf, + 0x5d, 0x9d, 0x58, 0x18, 0xfd, 0x4c, 0x2c, 0x5d, 0x5d, 0x43, 0x0d, 0xfe, 0xd6, 0xe2, 0xdc, 0xd4, + 0x8b, 0xf7, 0xca, 0x06, 0x2b, 0xfe, 0xba, 0x1a, 0x37, 0x90, 0x1f, 0x84, 0x26, 0xe0, 0x8a, 0xf0, + 0x7e, 0xf3, 0x2a, 0x80, 0x23, 0x78, 0xff, 0x06, 0x79, 0xd1, 0xc2, 0x7b, 0x19, 0xd9, 0x5d, 0x16, + 0xc9, 0x26, 0x19, 0x80, 0x17, 0x61, 0xc8, 0xaf, 0xeb, 0xd2, 0x55, 0x44, 0x71, 0x6b, 0x30, 0x46, + 0x85, 0x73, 0x1f, 0xc0, 0xda, 0x86, 0x3c, 0xfc, 0x8d, 0x36, 0x3a, 0xf1, 0xf7, 0xf6, 0x90, 0x0d, + 0x7f, 0xdb, 0x19, 0x35, 0xbe, 0x0d, 0x67, 0xc3, 0x93, 0x22, 0xc5, 0xad, 0x47, 0x01, 0xf8, 0x35, + 0xbc, 0x7f, 0x67, 0x15, 0x51, 0xe3, 0xff, 0xc5, 0xa8, 0xf1, 0xff, 0x43, 0x56, 0xcf, 0xd4, 0x10, + 0x1f, 0x96, 0x3c, 0xb0, 0x98, 0xe0, 0x78, 0x8c, 0x6c, 0xbe, 0x3d, 0xe4, 0x36, 0x2c, 0xb4, 0x80, + 0xaf, 0x92, 0x68, 0xc6, 0x1e, 0x0e, 0xbf, 0xdb, 0xb9, 0x67, 0x4a, 0x83, 0xce, 0x37, 0x85, 0x66, + 0x56, 0x9f, 0x02, 0x7f, 0xfb, 0x8f, 0x4a, 0x70, 0x2e, 0xfd, 0x42, 0x0d, 0x94, 0xba, 0xf8, 0xe9, + 0xfd, 0x5b, 0x02, 0x30, 0xdb, 0x05, 0x0b, 0xb3, 0x39, 0x31, 0xe2, 0xd0, 0x84, 0x3a, 0x02, 0x53, + 0x1e, 0x78, 0x5e, 0xa8, 0xfc, 0xc1, 0x61, 0xf1, 0x8e, 0xc2, 0xa9, 0x41, 0xa3, 0x81, 0x0b, 0x28, + 0x74, 0x0a, 0xd0, 0x37, 0xd4, 0x75, 0x41, 0x1e, 0x9d, 0xa4, 0x7e, 0xf4, 0xa5, 0xe7, 0xdc, 0xe7, + 0x9a, 0xc7, 0xaf, 0x71, 0xc7, 0x5f, 0x15, 0x2c, 0xf1, 0xff, 0xcc, 0x42, 0xbc, 0x33, 0x70, 0x2c, + 0xfc, 0xa0, 0xfb, 0x9c, 0xe5, 0x95, 0x3c, 0xbd, 0x41, 0x7d, 0x5c, 0x7d, 0x5c, 0x41, 0x97, 0xbe, + 0x87, 0xb5, 0x80, 0xea, 0x76, 0x85, 0xa8, 0x56, 0x2b, 0xe2, 0x47, 0x8f, 0xcf, 0xd4, 0xf7, 0x38, + 0xb1, 0x75, 0xbb, 0x38, 0xd6, 0xc6, 0x2e, 0x51, 0x95, 0xa5, 0x08, 0x73, 0x81, 0xef, 0xd7, 0xde, + 0x85, 0x3d, 0x04, 0xe3, 0x3b, 0x10, 0x47, 0x0a, 0x0a, 0x33, 0x75, 0x8a, 0x78, 0x3c, 0x14, 0xd4, + 0x63, 0x6f, 0x78, 0x63, 0x4b, 0x3e, 0x01, 0x60, 0x3c, 0xae, 0x06, 0x1e, 0x9a, 0x2d, 0xc0, 0x23, + 0x98, 0x4f, 0x31, 0xf2, 0x45, 0x3b, 0xc9, 0x52, 0x7f, 0x28, 0x9b, 0x6f, 0x93, 0xe8, 0xba, 0xa9, + 0x1a, 0x29, 0xfb, 0x43, 0x09, 0xca, 0x8e, 0x30, 0x1b, 0x90, 0x2f, 0xc8, 0x8e, 0x40, 0x96, 0x9e, + 0x2c, 0xca, 0xac, 0x87, 0x1c, 0x0b, 0x70, 0xf6, 0xcd, 0x39, 0xc5, 0x01, 0xa8, 0xeb, 0xdd, 0x0b, + 0xc1, 0x77, 0x11, 0x3b, 0x94, 0xe6, 0xa5, 0x38, 0xf3, 0x15, 0x12, 0x2e, 0xe2, 0x7c, 0xb7, 0xae, + 0x81, 0xda, 0x7b, 0x6a, 0x68, 0x79, 0x83, 0x81, 0xcd, 0x7c, 0xc0, 0xed, 0x6f, 0xf0, 0xf8, 0xc8, + 0x72, 0xd5, 0x13, 0x08, 0xb5, 0x8f, 0xcd, 0x8c, 0x95, 0x0d, 0x3e, 0xb1, 0x14, 0x31, 0x77, 0x73, + 0x48, 0x6c, 0x60, 0xde, 0x79, 0x43, 0xd5, 0x4d, 0x1e, 0x09, 0x63, 0xb9, 0xed, 0x62, 0x25, 0xc6, + 0xf4, 0x86, 0x02, 0xf8, 0xfb, 0x7d, 0xf6, 0x7b, 0x17, 0x86, 0xc6, 0xc4, 0xd2, 0x28, 0xe9, 0x53, + 0x84, 0xa3, 0x19, 0xf8, 0xdb, 0x1a, 0x55, 0xe3, 0x6f, 0x63, 0x74, 0x0a, 0xcd, 0xc2, 0x51, 0x5a, + 0x39, 0xab, 0x8f, 0x4e, 0x25, 0x1b, 0x55, 0xd1, 0x69, 0xf8, 0x5b, 0x1d, 0xd5, 0xe2, 0x6f, 0x65, + 0x14, 0x47, 0x08, 0xe7, 0x8a, 0xea, 0xf0, 0xb7, 0x24, 0x3a, 0x9d, 0x4a, 0x18, 0xcd, 0xc4, 0xdf, + 0x82, 0xe8, 0x0c, 0x91, 0xac, 0x50, 0x2d, 0xa9, 0xdd, 0x1c, 0xb8, 0x37, 0x14, 0xd6, 0x63, 0x7d, + 0x68, 0x0c, 0x85, 0xc4, 0x28, 0xb7, 0x67, 0x73, 0x1b, 0x79, 0xe0, 0xb8, 0x21, 0x54, 0x87, 0xe5, + 0xad, 0x61, 0xa5, 0xf7, 0xb1, 0x79, 0xdb, 0xc3, 0x6a, 0x44, 0xf8, 0xa5, 0x0d, 0x15, 0xb3, 0x19, + 0xde, 0xc9, 0xea, 0x4a, 0xf8, 0x95, 0xc9, 0xf0, 0x6b, 0x06, 0x9b, 0xed, 0x6f, 0xa0, 0xd9, 0x1e, + 0x6b, 0x65, 0x60, 0x35, 0xc8, 0xa4, 0x1a, 0xa4, 0x79, 0xe3, 0xe0, 0xb0, 0x67, 0x7a, 0xf9, 0x69, + 0xfd, 0xdd, 0x74, 0xaa, 0x7e, 0x9d, 0x22, 0xba, 0x90, 0xf5, 0x86, 0x16, 0x1e, 0xba, 0x52, 0x0f, + 0xc8, 0x56, 0x6f, 0x58, 0x8f, 0xcd, 0x2e, 0x87, 0x7f, 0xbd, 0x9a, 0x5e, 0x63, 0xdf, 0x4c, 0xbd, + 0x72, 0xba, 0x48, 0x4b, 0x76, 0xed, 0xb8, 0xf7, 0xb5, 0x27, 0xa1, 0xd0, 0xb7, 0x39, 0x08, 0xa3, + 0xfb, 0xb0, 0x5c, 0x4f, 0xc2, 0x2e, 0xf9, 0xe4, 0xf4, 0x7a, 0xff, 0x5a, 0xa4, 0x2f, 0x8a, 0xa8, + 0x32, 0x70, 0xaf, 0xa0, 0x14, 0x21, 0x5e, 0x6f, 0x9c, 0x86, 0xe3, 0xb7, 0x58, 0x84, 0xf1, 0x23, + 0x89, 0xd3, 0x36, 0xe4, 0xfd, 0x85, 0xe4, 0xb9, 0xa9, 0x6a, 0x31, 0x3b, 0x0c, 0xfa, 0x5c, 0xe4, + 0x10, 0x81, 0x24, 0xba, 0x1f, 0xff, 0xd6, 0xff, 0x40, 0x6d, 0x0f, 0xa3, 0x22, 0x3d, 0xc1, 0x77, + 0x19, 0xa7, 0xfe, 0x1c, 0xf9, 0xdd, 0xd3, 0xa9, 0xfc, 0x0c, 0x5a, 0xf2, 0xdc, 0x5b, 0x4a, 0xb6, + 0x0c, 0x7c, 0x96, 0x2a, 0xd9, 0x83, 0x42, 0x46, 0x08, 0x14, 0x8e, 0x86, 0xdc, 0x84, 0xef, 0x27, + 0x65, 0xa0, 0x01, 0xb8, 0x43, 0xb4, 0xa2, 0xcc, 0x21, 0xe5, 0x52, 0xef, 0x12, 0xcd, 0x2c, 0x06, + 0x71, 0x49, 0xf1, 0x62, 0x13, 0x28, 0x9a, 0xd9, 0x9b, 0x26, 0x04, 0x19, 0x77, 0xb0, 0x27, 0x1d, + 0xc2, 0xf4, 0x8a, 0x90, 0x71, 0x2a, 0x3c, 0x25, 0x25, 0xf7, 0xd8, 0x24, 0x1b, 0x46, 0xeb, 0x98, + 0xbf, 0x55, 0x2e, 0x02, 0xc4, 0x79, 0x10, 0x2f, 0x6a, 0x75, 0x19, 0xfd, 0x29, 0x49, 0x88, 0xd9, + 0xf8, 0x01, 0xae, 0x86, 0x7c, 0x65, 0x72, 0x3e, 0x89, 0x4f, 0xe2, 0x04, 0x23, 0xad, 0xdd, 0xe6, + 0x50, 0x9b, 0x19, 0xab, 0x13, 0xed, 0x25, 0x5b, 0xe4, 0xb7, 0x98, 0xda, 0xc1, 0x69, 0x13, 0x50, + 0x4e, 0x2d, 0x00, 0xbe, 0xea, 0x2f, 0x1a, 0xf0, 0xae, 0x57, 0xba, 0xe8, 0xa4, 0xa2, 0x44, 0xfd, + 0xe6, 0x2d, 0x05, 0xda, 0xe7, 0x28, 0x2c, 0x42, 0xc9, 0xf1, 0xe6, 0x72, 0xe4, 0xaa, 0xf0, 0xb9, + 0xd0, 0x02, 0x86, 0x9b, 0x05, 0x70, 0x38, 0xdb, 0x41, 0xa3, 0x9f, 0x0f, 0x45, 0xde, 0x58, 0xd6, + 0x7c, 0x28, 0xf6, 0x76, 0x3b, 0xdc, 0xee, 0x73, 0x00, 0x15, 0x64, 0xcf, 0xfa, 0x54, 0x69, 0xb9, + 0x3d, 0xf3, 0x81, 0xc3, 0xf6, 0xa9, 0xe4, 0x37, 0xba, 0x18, 0x6a, 0x3d, 0x37, 0x7b, 0xc0, 0x8a, + 0xf0, 0x5a, 0x84, 0xbf, 0x89, 0xc1, 0xdf, 0x9c, 0x80, 0x2f, 0x15, 0x12, 0x90, 0xb5, 0xae, 0x9b, + 0x5d, 0x60, 0x23, 0x0d, 0x02, 0xcd, 0x7c, 0x94, 0x6b, 0x72, 0x83, 0x9a, 0x5c, 0x4a, 0xfd, 0x2e, + 0x1c, 0x91, 0x15, 0x37, 0x57, 0x80, 0x33, 0x11, 0x9a, 0x45, 0x69, 0x74, 0x63, 0xa8, 0xfb, 0x66, + 0x37, 0x14, 0x06, 0x3c, 0xcf, 0x3f, 0x5b, 0xeb, 0x79, 0xad, 0x02, 0x73, 0x28, 0x0a, 0xb8, 0x9e, + 0x39, 0x58, 0xeb, 0x3a, 0xea, 0xc6, 0x74, 0x8a, 0x85, 0x36, 0x30, 0xe3, 0x65, 0xc1, 0xab, 0x0c, + 0x2f, 0x17, 0x5f, 0x2d, 0xb8, 0x16, 0xb8, 0xa0, 0xa1, 0xc6, 0x55, 0xd7, 0xab, 0x73, 0x29, 0xd6, + 0x07, 0x3f, 0xb9, 0x19, 0x39, 0x67, 0x0e, 0x84, 0xc7, 0x39, 0x8b, 0xf0, 0xb8, 0xd2, 0xe6, 0x7e, + 0x5f, 0xe9, 0xb8, 0xd1, 0xab, 0x2c, 0xc6, 0xe7, 0xc2, 0xf2, 0xf7, 0x95, 0x85, 0x37, 0x56, 0x29, + 0x1d, 0x90, 0x0f, 0x28, 0x72, 0x4b, 0xd6, 0xd8, 0xb1, 0x3f, 0x72, 0x0a, 0xad, 0x50, 0xb6, 0xad, + 0x05, 0x54, 0xc8, 0xe3, 0xab, 0x39, 0x53, 0x30, 0x53, 0x2c, 0x73, 0xe6, 0x83, 0x35, 0xe0, 0x3e, + 0xee, 0x0e, 0xb8, 0x68, 0x56, 0xf1, 0x09, 0xed, 0x1f, 0xde, 0x24, 0x40, 0x19, 0x5e, 0x66, 0x86, + 0xb3, 0x6a, 0x30, 0xdf, 0xe2, 0x02, 0x2b, 0xbf, 0x5a, 0xc6, 0x58, 0xf2, 0xfe, 0x6d, 0x4e, 0xf4, + 0x80, 0x78, 0xbb, 0x43, 0x51, 0xe9, 0x8a, 0xcc, 0x38, 0x29, 0x1e, 0x72, 0x89, 0xcb, 0x29, 0xed, + 0xe3, 0x2d, 0x4c, 0xf7, 0xc2, 0x2a, 0xa5, 0x1f, 0x2a, 0x2d, 0x82, 0xca, 0x72, 0xc1, 0x2d, 0xaa, + 0x8e, 0x97, 0x07, 0xdc, 0x43, 0x42, 0xfb, 0xe7, 0x13, 0xd2, 0x9e, 0x82, 0x69, 0xbb, 0x2f, 0x9b, + 0xb6, 0x7a, 0x48, 0x68, 0x53, 0x14, 0x42, 0xe2, 0x0b, 0x9c, 0x5b, 0xeb, 0x31, 0x65, 0x57, 0x3f, + 0xe6, 0xb0, 0xc8, 0x05, 0x2e, 0x44, 0x9e, 0x59, 0x98, 0x4b, 0x06, 0xe6, 0x22, 0xd0, 0x68, 0x26, + 0xeb, 0xb5, 0x42, 0x2b, 0xb6, 0x56, 0x2b, 0xb8, 0xe4, 0x11, 0x6a, 0x9e, 0xdd, 0x85, 0x7c, 0xb9, + 0x75, 0x36, 0xed, 0xd1, 0xe4, 0xaf, 0x73, 0xbc, 0xda, 0x67, 0x2f, 0x9f, 0xc0, 0x2d, 0xa7, 0xf2, + 0x0a, 0xd2, 0x57, 0x22, 0x28, 0x5f, 0x70, 0x62, 0x0e, 0xc7, 0x28, 0x07, 0x37, 0xb8, 0x30, 0x37, + 0xdb, 0x90, 0xbb, 0x0d, 0x94, 0x7b, 0xe5, 0x7c, 0x3c, 0x0e, 0x77, 0xff, 0x30, 0x8e, 0x74, 0x07, + 0xe6, 0x6f, 0xa1, 0x32, 0xa4, 0xe5, 0x33, 0x27, 0x91, 0x4f, 0xd8, 0xc1, 0x2c, 0x71, 0x5d, 0x3a, + 0x1f, 0x50, 0xb6, 0xd2, 0x77, 0x78, 0x6f, 0xd0, 0xcf, 0x63, 0x92, 0x8a, 0x15, 0x47, 0x50, 0x5e, + 0x07, 0xd1, 0xab, 0x6b, 0x42, 0x42, 0x87, 0x16, 0xef, 0xfa, 0x20, 0x28, 0x3b, 0x44, 0xa2, 0x63, + 0x73, 0x11, 0xbb, 0x89, 0x6b, 0x98, 0x87, 0x21, 0x2b, 0x90, 0x42, 0xee, 0xc2, 0x67, 0x5b, 0xc8, + 0xd3, 0x4e, 0xf4, 0x6e, 0x7e, 0x68, 0x16, 0xfe, 0x16, 0x60, 0x8c, 0x20, 0xce, 0x02, 0x2b, 0xe8, + 0xb1, 0x97, 0x41, 0x49, 0xa7, 0x5b, 0x3f, 0x62, 0x4f, 0x36, 0x0c, 0xe3, 0xd9, 0x93, 0x11, 0xc3, + 0xde, 0x64, 0x4f, 0x39, 0x18, 0xe6, 0x62, 0x4f, 0x99, 0x18, 0xf6, 0x5b, 0xf6, 0x44, 0xde, 0xd1, + 0x80, 0x77, 0xbf, 0xf4, 0x8c, 0xb1, 0x0d, 0xd4, 0x2f, 0x1f, 0xce, 0x5a, 0xd0, 0xab, 0xd4, 0x71, + 0xb0, 0xa0, 0x01, 0xe0, 0x53, 0x9a, 0xf9, 0x8e, 0xf7, 0x38, 0xfe, 0x97, 0x45, 0xed, 0x1f, 0x8d, + 0x29, 0xa0, 0x11, 0xa2, 0xf0, 0x2e, 0x74, 0xc1, 0x66, 0xfc, 0x7d, 0x17, 0xee, 0x83, 0x6d, 0xec, + 0x7e, 0xe9, 0xbf, 0x87, 0xe1, 0x51, 0xd8, 0xc5, 0x9e, 0xf6, 0xc0, 0x01, 0xfc, 0x3d, 0x34, 0xe9, + 0xef, 0x5d, 0x78, 0x11, 0x5e, 0x9d, 0xf4, 0xf7, 0x2e, 0xbc, 0xc5, 0xfc, 0x02, 0x29, 0x85, 0x7c, + 0x4e, 0x85, 0xd7, 0xf5, 0x62, 0x04, 0xb1, 0x57, 0x81, 0xf7, 0x56, 0xbc, 0xab, 0xf0, 0xde, 0x80, + 0x77, 0x0e, 0xef, 0xb7, 0xe3, 0x5d, 0x83, 0xf7, 0x00, 0xde, 0xf5, 0x78, 0xf7, 0x29, 0xf2, 0xe3, + 0x17, 0xf0, 0x2e, 0xe0, 0x7d, 0x14, 0xef, 0x25, 0x78, 0x1f, 0xc7, 0xbb, 0x13, 0xef, 0x9f, 0xe1, + 0xdd, 0x8a, 0xf7, 0x8f, 0xf0, 0x6e, 0x54, 0x73, 0xf1, 0x93, 0xd7, 0xb9, 0x39, 0xa5, 0x98, 0x23, + 0xe5, 0x24, 0xea, 0x31, 0xe4, 0x35, 0x0c, 0x51, 0x89, 0x6a, 0x16, 0xa2, 0x0a, 0x00, 0xf9, 0x27, + 0x1b, 0xb2, 0x41, 0x46, 0x13, 0x8c, 0xbf, 0x8b, 0x6d, 0x7e, 0xea, 0x92, 0xed, 0x93, 0xdd, 0x90, + 0x9b, 0xcd, 0xbd, 0x3b, 0x8d, 0x3c, 0xf0, 0x41, 0xdc, 0xfd, 0x97, 0x62, 0x58, 0x37, 0xe5, 0xe0, + 0x26, 0xb3, 0xe2, 0x9d, 0xc7, 0xbf, 0x67, 0xe1, 0xe6, 0x62, 0x1a, 0x2a, 0x01, 0xa2, 0x1c, 0x4b, + 0x65, 0x18, 0xd3, 0xd8, 0x79, 0x99, 0x34, 0x66, 0x5d, 0x3a, 0x0d, 0xa3, 0xb2, 0x92, 0x7b, 0x76, + 0x72, 0x3a, 0x07, 0x68, 0x46, 0x95, 0x71, 0xc6, 0xd8, 0x61, 0xc4, 0x5f, 0xbe, 0xad, 0x01, 0x7f, + 0x73, 0x43, 0x25, 0x0c, 0x6b, 0xae, 0x6d, 0x07, 0xae, 0x58, 0xe4, 0xe5, 0x19, 0xbb, 0x80, 0x66, + 0x6c, 0x30, 0x85, 0x96, 0xb7, 0xd3, 0x6c, 0x69, 0x67, 0x1c, 0x95, 0x13, 0xc3, 0x71, 0xe6, 0x01, + 0x75, 0x98, 0xe3, 0x63, 0xc8, 0x41, 0x00, 0x47, 0x76, 0x54, 0xd4, 0x34, 0xa6, 0xbc, 0xc3, 0xe4, + 0x1f, 0x49, 0x7e, 0x2b, 0xa3, 0x37, 0xd2, 0x68, 0x27, 0xef, 0xb8, 0x04, 0x1f, 0xe1, 0xf8, 0x6e, + 0x66, 0x99, 0x16, 0xe3, 0x85, 0x7e, 0x7c, 0x3a, 0x4a, 0x4f, 0xeb, 0x38, 0x7e, 0x13, 0x3e, 0x1f, + 0x62, 0x9a, 0x65, 0xfc, 0xe2, 0x4f, 0x34, 0x60, 0x59, 0x0d, 0xc6, 0xd2, 0xd5, 0xe0, 0x2c, 0xce, + 0x87, 0x02, 0x47, 0x1b, 0x52, 0x56, 0x1b, 0xd2, 0xd4, 0x58, 0xff, 0xb0, 0x44, 0x4f, 0x9d, 0x1e, + 0xfb, 0xd4, 0xfe, 0x17, 0xed, 0x1a, 0xa2, 0xa7, 0x85, 0x50, 0x2b, 0xe0, 0x98, 0xb6, 0x96, 0xac, + 0x46, 0xba, 0x9c, 0x0f, 0x0e, 0x84, 0xd6, 0x22, 0xf4, 0xcd, 0x04, 0xed, 0x2c, 0x47, 0xb8, 0x3f, + 0x4a, 0x70, 0xb5, 0xa4, 0xf5, 0x65, 0xab, 0xf5, 0x3b, 0x15, 0x01, 0xf7, 0xb3, 0x87, 0x4e, 0x3c, + 0x73, 0x93, 0x1f, 0x8a, 0x6a, 0x97, 0x3a, 0x01, 0xdf, 0x9e, 0x7d, 0xfd, 0x99, 0x9b, 0x96, 0x42, + 0xf1, 0x9e, 0xd5, 0x50, 0xd6, 0xa6, 0x22, 0x1a, 0x31, 0xb4, 0x1a, 0x69, 0x82, 0x0a, 0xe1, 0x5d, + 0x37, 0x61, 0x18, 0x98, 0xf1, 0x17, 0x47, 0xa9, 0x68, 0xc4, 0x79, 0x64, 0x16, 0xb3, 0x6a, 0x94, + 0x63, 0x13, 0xf8, 0x0e, 0x69, 0x0e, 0x31, 0x2d, 0x49, 0xcd, 0x22, 0xb2, 0x8d, 0xb8, 0x52, 0xc9, + 0x2f, 0x3a, 0xce, 0x85, 0xe7, 0x51, 0x6a, 0x23, 0x0f, 0x94, 0x3c, 0xf2, 0xf7, 0x26, 0x6b, 0x27, + 0x58, 0x1c, 0x06, 0xa2, 0x91, 0xbb, 0x5d, 0x6d, 0x1e, 0x99, 0x6a, 0xe9, 0x1d, 0x6e, 0xbb, 0xc6, + 0xe1, 0x92, 0x2c, 0x68, 0xd1, 0xd9, 0x36, 0xa4, 0x90, 0x86, 0x09, 0x54, 0x4c, 0x9f, 0x48, 0xdd, + 0xb1, 0x1a, 0xac, 0x08, 0x5b, 0x27, 0xc1, 0x96, 0x79, 0x44, 0xaf, 0xcf, 0xd5, 0xe6, 0x95, 0x29, + 0xab, 0xde, 0x3b, 0x4c, 0x29, 0x21, 0xed, 0x82, 0xaf, 0x9e, 0x12, 0xce, 0x4a, 0x31, 0xc7, 0x4c, + 0x2c, 0x99, 0x0d, 0x4b, 0xa6, 0x2a, 0xe9, 0x16, 0xcb, 0x30, 0xe5, 0x12, 0x0f, 0xf1, 0xba, 0x37, + 0xc8, 0x74, 0x49, 0xcf, 0xe8, 0x9f, 0x81, 0xd1, 0xa5, 0x99, 0xe1, 0x1b, 0x18, 0x5d, 0xca, 0xbe, + 0x74, 0xea, 0xc2, 0xad, 0xd5, 0x6f, 0x96, 0xd2, 0x5a, 0xa6, 0x2e, 0xa9, 0x15, 0xa1, 0x97, 0x34, + 0x33, 0x7e, 0x7c, 0x18, 0x65, 0xbb, 0x52, 0x4c, 0xce, 0x15, 0x01, 0x79, 0x45, 0xf5, 0x76, 0xc9, + 0xa3, 0x1f, 0xad, 0x54, 0xed, 0x32, 0x81, 0x06, 0x25, 0x6f, 0xdd, 0x1c, 0x66, 0x77, 0xa1, 0x1a, + 0x12, 0x72, 0x95, 0x91, 0x6c, 0x95, 0x21, 0x3f, 0x62, 0x24, 0xef, 0x02, 0xb2, 0x5f, 0x0e, 0xc9, + 0xfa, 0xec, 0xf8, 0x8b, 0x92, 0x14, 0x35, 0x79, 0x75, 0x67, 0x7c, 0x30, 0x75, 0x82, 0x21, 0x2d, + 0xf4, 0x11, 0xd9, 0x8b, 0x9d, 0x82, 0x79, 0x80, 0xc6, 0x94, 0x8c, 0xe4, 0xe1, 0x43, 0xf6, 0x3c, + 0x8f, 0x1c, 0x93, 0xcd, 0x6a, 0x07, 0x07, 0x59, 0x2e, 0x42, 0xd8, 0x28, 0xa6, 0x5c, 0x2a, 0x95, + 0x9f, 0x7c, 0x45, 0x9b, 0x24, 0x2f, 0x5b, 0x79, 0x58, 0x4f, 0x5e, 0x4a, 0x6d, 0xec, 0x48, 0xd2, + 0x9b, 0xab, 0x82, 0xd2, 0x22, 0x3f, 0x40, 0x59, 0x8a, 0x75, 0x28, 0x4c, 0xc3, 0x0d, 0x1a, 0x25, + 0x59, 0xe0, 0xf1, 0x3c, 0xdb, 0xaa, 0x46, 0x7e, 0x56, 0xa5, 0x57, 0x44, 0x39, 0xe9, 0x0c, 0x2e, + 0x69, 0xc4, 0xe1, 0x2f, 0x93, 0x42, 0xc8, 0xbe, 0xa3, 0x9c, 0x52, 0x8f, 0x54, 0x0b, 0x4a, 0x89, + 0x42, 0xb0, 0x34, 0x06, 0x9e, 0x4e, 0x4e, 0x82, 0xde, 0xc2, 0xa9, 0xec, 0xf4, 0xab, 0xb4, 0x03, + 0xf9, 0x6d, 0xe6, 0xae, 0xb7, 0x2b, 0x64, 0xcf, 0x49, 0x5b, 0x8c, 0xe5, 0xbc, 0x22, 0x32, 0x85, + 0x3c, 0xce, 0x11, 0x8f, 0x90, 0x94, 0x26, 0x5f, 0x90, 0x35, 0x46, 0x1a, 0xb1, 0xb4, 0xcd, 0x98, + 0x47, 0x9b, 0x39, 0x1f, 0x79, 0x96, 0x72, 0x4b, 0x33, 0x38, 0xad, 0x38, 0xd2, 0xd8, 0x0a, 0x3c, + 0xbf, 0x14, 0x39, 0x1b, 0x53, 0x01, 0x68, 0x74, 0xf3, 0x60, 0x21, 0xa8, 0x1a, 0x40, 0x4f, 0x9e, + 0xd5, 0x91, 0x1e, 0xa4, 0xf4, 0xa4, 0xf5, 0xef, 0x42, 0xb3, 0xfe, 0xb8, 0xfe, 0x5d, 0xc5, 0x63, + 0xaa, 0x41, 0xb5, 0x63, 0x8a, 0x9e, 0x3b, 0xa9, 0xf1, 0xe0, 0xfb, 0x71, 0xcd, 0x7d, 0x9a, 0x3d, + 0xfa, 0xe3, 0x53, 0x81, 0x9e, 0xf5, 0x3b, 0xa6, 0x09, 0x53, 0xf4, 0x53, 0xde, 0x52, 0x76, 0x28, + 0xb5, 0x53, 0xa2, 0xea, 0x47, 0xa7, 0x5a, 0x32, 0xca, 0xb4, 0x77, 0x4c, 0x7d, 0x54, 0x97, 0xa3, + 0x7b, 0x5d, 0x79, 0x6c, 0xfa, 0x23, 0x99, 0xa2, 0xfe, 0x78, 0x46, 0x0c, 0xe1, 0xba, 0x66, 0x98, + 0x66, 0xd4, 0xb3, 0x2f, 0x12, 0x7f, 0xb9, 0xf4, 0x3b, 0x63, 0x0b, 0x97, 0x23, 0xf3, 0xc8, 0xce, + 0x09, 0x98, 0xe4, 0x4c, 0x72, 0xba, 0x64, 0x91, 0x57, 0xe1, 0xdf, 0x3f, 0xfe, 0xae, 0x03, 0xe9, + 0xc0, 0x33, 0xef, 0x43, 0xd9, 0x51, 0xa4, 0x09, 0x48, 0x47, 0x0a, 0x11, 0x57, 0x0b, 0x8f, 0x35, + 0x43, 0x2e, 0x8d, 0xf8, 0xdf, 0xbf, 0x8f, 0xf3, 0x6c, 0x39, 0x8e, 0xc2, 0x61, 0xef, 0x33, 0x4c, + 0x47, 0x40, 0x3f, 0xbb, 0x1d, 0x31, 0xb6, 0xd9, 0x58, 0x8d, 0xdc, 0x74, 0x73, 0x98, 0x63, 0x61, + 0x87, 0x58, 0x4e, 0x19, 0x50, 0x76, 0x0b, 0x61, 0xb0, 0x30, 0x21, 0xbf, 0xb2, 0x49, 0x9c, 0x75, + 0xd9, 0xa5, 0x63, 0x91, 0xca, 0xf5, 0x5e, 0x65, 0x79, 0x8b, 0xcc, 0xf3, 0x41, 0x65, 0x99, 0xc9, + 0xac, 0x38, 0x87, 0xb1, 0xec, 0x65, 0x34, 0xe2, 0x02, 0xbd, 0xfd, 0xc3, 0xd6, 0xf2, 0xa7, 0x9e, + 0x6d, 0x54, 0x58, 0xbd, 0x58, 0x97, 0x82, 0xc9, 0x75, 0x29, 0xc1, 0xba, 0xfc, 0x81, 0xea, 0x52, + 0x91, 0x5e, 0x17, 0x63, 0x35, 0xef, 0xe1, 0xa7, 0x4f, 0xa8, 0x83, 0xf3, 0x96, 0xa5, 0x50, 0x74, + 0xe9, 0x12, 0x6c, 0xff, 0xfe, 0x6b, 0xdf, 0xf7, 0x6d, 0x0a, 0xde, 0x27, 0xd7, 0xe4, 0x32, 0xe5, + 0x14, 0x61, 0x86, 0x1a, 0x31, 0xd5, 0x06, 0xd7, 0x0b, 0x4f, 0x42, 0x00, 0xaf, 0xe5, 0x5f, 0x52, + 0x2f, 0x85, 0x1e, 0xe7, 0x51, 0xb2, 0x7b, 0x4e, 0x36, 0x74, 0x2b, 0x46, 0xc6, 0xfa, 0xfd, 0x5b, + 0xed, 0x0a, 0xac, 0x53, 0xb1, 0x5d, 0xe3, 0x5c, 0x0d, 0x45, 0xf6, 0xa9, 0xf8, 0x5c, 0xc8, 0x9e, + 0x9d, 0xf6, 0xa9, 0xec, 0xbc, 0xb4, 0x97, 0xad, 0x30, 0xf5, 0x20, 0xb6, 0xea, 0xfc, 0x09, 0x6f, + 0x8a, 0x65, 0x48, 0x3d, 0x72, 0x41, 0x98, 0x4d, 0x5a, 0x60, 0x64, 0xdd, 0xf3, 0x0e, 0xbb, 0x0f, + 0x3c, 0x7f, 0x4b, 0x4f, 0xb0, 0x76, 0x85, 0x4c, 0xe1, 0x4b, 0x4a, 0x2d, 0xd9, 0x33, 0x75, 0xb2, + 0x1e, 0x2f, 0xba, 0x02, 0xcc, 0x15, 0xda, 0x69, 0xfa, 0x1b, 0x57, 0x99, 0x47, 0x3b, 0xd6, 0xe9, + 0x6f, 0xcd, 0x63, 0xc3, 0x55, 0xe4, 0x91, 0xf1, 0x77, 0xe6, 0x91, 0x2d, 0xf5, 0xf7, 0xd5, 0xf5, + 0x33, 0xcd, 0x47, 0xd4, 0xcf, 0x23, 0x03, 0xfe, 0xad, 0x88, 0x95, 0x85, 0xde, 0xdf, 0x95, 0xe5, + 0x83, 0x85, 0xac, 0x37, 0x26, 0xe6, 0xe4, 0x12, 0xcf, 0x2d, 0xab, 0xc1, 0x0c, 0xa5, 0x88, 0x05, + 0x53, 0xbc, 0xc3, 0x6e, 0xe6, 0xb5, 0xc7, 0x59, 0x69, 0x9f, 0x6a, 0x74, 0x79, 0x5b, 0x80, 0x43, + 0xbe, 0x96, 0x9d, 0x8a, 0x37, 0x56, 0x78, 0xbf, 0xa5, 0x01, 0x27, 0xcd, 0x36, 0xd3, 0x29, 0x1c, + 0xa9, 0x9a, 0x97, 0xc2, 0xbd, 0xeb, 0x34, 0xf1, 0x3f, 0xfe, 0x9e, 0xaf, 0xf0, 0x86, 0x9b, 0xe1, + 0xf9, 0x8f, 0xa0, 0xda, 0xbb, 0xce, 0xcb, 0xfc, 0x98, 0x10, 0xe6, 0x8c, 0xd0, 0xb9, 0x0e, 0xcb, + 0x04, 0xcc, 0xb9, 0xc2, 0x88, 0xbc, 0xf0, 0x69, 0x21, 0xf9, 0x23, 0x5b, 0x12, 0x06, 0xa7, 0x60, + 0x71, 0x39, 0x2d, 0xd0, 0xa0, 0x73, 0x93, 0x47, 0x59, 0x9d, 0x39, 0x10, 0xab, 0xeb, 0x95, 0x2c, + 0x3c, 0xfc, 0xe2, 0x99, 0xb6, 0x53, 0x57, 0xd7, 0xc2, 0x55, 0x67, 0x61, 0xc1, 0xff, 0x79, 0xa1, + 0x38, 0xba, 0x0f, 0x76, 0x1c, 0xbc, 0xa5, 0xfa, 0x6f, 0x6d, 0xeb, 0x69, 0x83, 0x96, 0x99, 0x51, + 0x58, 0xb7, 0x02, 0x65, 0x04, 0x09, 0xef, 0x03, 0xb3, 0x69, 0x75, 0x79, 0xb9, 0x60, 0x87, 0xdb, + 0x50, 0x6a, 0xa8, 0x9f, 0xf0, 0x5d, 0x20, 0xf1, 0x5d, 0xa0, 0xc7, 0xa1, 0xea, 0x17, 0x7c, 0xae, + 0x8e, 0x23, 0x98, 0x42, 0xb3, 0x79, 0xe6, 0x95, 0x4b, 0x1c, 0x25, 0x8b, 0x75, 0x58, 0x6f, 0xc1, + 0xe5, 0x74, 0x8b, 0x8a, 0x80, 0xab, 0x98, 0x6a, 0xee, 0xc1, 0x9a, 0xeb, 0xb0, 0xd6, 0x9b, 0x59, + 0xad, 0x0f, 0x75, 0x9c, 0xae, 0x75, 0xe9, 0x5c, 0x18, 0x56, 0xe4, 0x70, 0xb9, 0x4f, 0xc3, 0x82, + 0x97, 0x0e, 0x3b, 0x1c, 0xfb, 0x80, 0x85, 0x98, 0x12, 0x78, 0xbb, 0xd5, 0x75, 0x8b, 0xfb, 0x72, + 0xf5, 0xc4, 0x12, 0x29, 0x59, 0x89, 0xb6, 0x7d, 0x59, 0x8d, 0xb5, 0xfb, 0xae, 0xa2, 0x7d, 0xa7, + 0x5c, 0x79, 0x24, 0xd2, 0x59, 0x7d, 0x94, 0x8b, 0x34, 0x02, 0xe2, 0x15, 0x5e, 0x65, 0x5f, 0x9a, + 0xa7, 0xe7, 0xca, 0x79, 0x4e, 0x48, 0x47, 0xfd, 0xf7, 0x51, 0x81, 0xa9, 0xaf, 0x5d, 0x45, 0xfd, + 0xfe, 0xde, 0x3c, 0xa2, 0x5f, 0xa1, 0x3e, 0x53, 0xfe, 0xce, 0xbc, 0x34, 0x7f, 0x7f, 0x7f, 0x7d, + 0x59, 0x1e, 0x9a, 0x47, 0xbf, 0x42, 0x7d, 0xae, 0x94, 0xce, 0x8a, 0xab, 0x29, 0x0d, 0xc2, 0x15, + 0x5e, 0x75, 0xa9, 0x89, 0x5e, 0x13, 0xf5, 0xba, 0x6c, 0x5a, 0x53, 0x4e, 0x5f, 0x4d, 0x8f, 0x22, + 0xdc, 0xb0, 0x69, 0x66, 0xad, 0x50, 0x34, 0x1f, 0xd4, 0xb5, 0xe5, 0xab, 0x75, 0x38, 0xcf, 0x5b, + 0x87, 0xca, 0xdb, 0xd4, 0x45, 0x24, 0xf7, 0x95, 0xfb, 0x84, 0x76, 0x0a, 0xb1, 0x0d, 0x09, 0x6d, + 0xea, 0x42, 0x0a, 0xf9, 0x92, 0xd9, 0xea, 0xa6, 0x72, 0x94, 0x33, 0xca, 0xd9, 0xfa, 0x84, 0x05, + 0x2f, 0xd7, 0x97, 0xb5, 0xcb, 0x14, 0xcf, 0x57, 0xa1, 0xe8, 0x4e, 0x17, 0xcd, 0xcb, 0x15, 0x23, + 0xe7, 0x5f, 0xa5, 0x99, 0x5b, 0xb2, 0xa8, 0xe5, 0xdf, 0x7f, 0xfe, 0x0d, 0x92, 0x9a, 0x90, 0xc2, + 0x5b, 0x90, 0xa6, 0x3b, 0x90, 0xc6, 0x9b, 0x91, 0xc6, 0x17, 0x20, 0x4d, 0xaf, 0x20, 0x09, 0xcb, + 0xdb, 0x0c, 0x5c, 0xc2, 0x8e, 0x91, 0x77, 0xad, 0x26, 0xee, 0xa0, 0x99, 0x5e, 0xf3, 0xfc, 0xef, + 0xbc, 0x6b, 0xbd, 0x80, 0xcf, 0xce, 0x3f, 0xfe, 0x9e, 0xe8, 0x37, 0x4b, 0x87, 0xfc, 0x75, 0xd8, + 0xae, 0x96, 0x66, 0x7f, 0x2e, 0x84, 0x39, 0x94, 0x1e, 0x56, 0xa4, 0x95, 0x5f, 0xa2, 0x91, 0x5f, + 0x83, 0xe5, 0x4c, 0xbe, 0xb8, 0x4d, 0x5f, 0x0a, 0x2b, 0x98, 0x84, 0x71, 0x19, 0x5a, 0xf9, 0xd5, + 0x66, 0xb1, 0xbf, 0x9c, 0x4c, 0xaf, 0xf3, 0x5f, 0xce, 0xd8, 0x15, 0x4e, 0xe2, 0x5c, 0xa6, 0x4a, + 0xf5, 0xa1, 0x16, 0xc0, 0x27, 0x0b, 0x86, 0x39, 0x2e, 0xaa, 0x33, 0xab, 0x27, 0xa5, 0x82, 0xdf, + 0xad, 0xfb, 0x2a, 0x75, 0xfc, 0xec, 0x8e, 0xbf, 0xa5, 0x77, 0xfe, 0x52, 0xec, 0xdf, 0x8a, 0x33, + 0x6c, 0x61, 0x62, 0xb6, 0xc5, 0xb2, 0x39, 0xb1, 0x77, 0x0a, 0x8a, 0x33, 0xbc, 0x87, 0xae, 0x66, + 0xbe, 0xc5, 0x79, 0x55, 0x9a, 0x6d, 0x55, 0x13, 0x66, 0xdb, 0xb5, 0x34, 0xdb, 0x7a, 0xd7, 0x35, + 0xc3, 0x1f, 0x68, 0xae, 0x5d, 0x5b, 0x8f, 0x73, 0xad, 0x67, 0x33, 0x3b, 0x87, 0xbc, 0xff, 0x93, + 0x4f, 0xbe, 0xca, 0x6c, 0xfb, 0x69, 0xef, 0x57, 0xa9, 0x55, 0x82, 0x5b, 0xfc, 0xa4, 0x41, 0xaa, + 0x15, 0xf1, 0xb7, 0x54, 0x13, 0xaa, 0x15, 0xd5, 0x90, 0x71, 0x90, 0x36, 0x5b, 0x29, 0xf3, 0xf8, + 0xa7, 0xa2, 0x96, 0x97, 0x3c, 0x80, 0x11, 0x77, 0x40, 0xfc, 0x32, 0xd6, 0xa4, 0x40, 0xea, 0x11, + 0x39, 0x1c, 0xeb, 0xf1, 0x07, 0xac, 0x47, 0x3d, 0xd8, 0xa7, 0x53, 0xf9, 0xd9, 0xba, 0xec, 0xfe, + 0x4f, 0x1c, 0x5f, 0xa5, 0x06, 0x7f, 0x7d, 0xee, 0x6f, 0xe9, 0x97, 0x8f, 0x77, 0xfa, 0xb7, 0x16, + 0x13, 0x1f, 0x74, 0x88, 0xea, 0x50, 0x52, 0x51, 0x7a, 0xa9, 0x1a, 0x4c, 0x4f, 0x95, 0x14, 0x7b, + 0xe5, 0x5b, 0xde, 0x4b, 0xd7, 0x61, 0x1d, 0xd5, 0xc1, 0xe8, 0xf1, 0x7e, 0x0b, 0x6b, 0x91, 0x69, + 0x9f, 0x2e, 0xd5, 0xe1, 0xe3, 0xb6, 0xaf, 0x54, 0x07, 0xc5, 0x57, 0xef, 0x85, 0xa5, 0x23, 0xe7, + 0x4e, 0xf8, 0xb7, 0x97, 0x52, 0x1d, 0x9e, 0xc3, 0x3a, 0x38, 0xbd, 0xbf, 0x93, 0xca, 0x4e, 0xe3, + 0xde, 0x7b, 0xa8, 0xe2, 0x8b, 0x54, 0x1f, 0xd0, 0x5a, 0x09, 0xef, 0xc2, 0x91, 0x3d, 0xa9, 0xfc, + 0x89, 0xf0, 0xfa, 0x38, 0x79, 0xb6, 0xb3, 0xcf, 0xb4, 0xab, 0xc8, 0xff, 0x5e, 0x41, 0x4c, 0xaa, + 0xc1, 0xb9, 0xc1, 0xb4, 0x1a, 0x6c, 0xff, 0xb2, 0x1a, 0x9c, 0x77, 0x7d, 0xf5, 0x5e, 0xc0, 0x1a, + 0xe4, 0x26, 0x6a, 0x20, 0x95, 0x3a, 0xbd, 0x1e, 0x7f, 0x4b, 0x0d, 0x08, 0x87, 0xd2, 0xeb, 0xf0, + 0xd1, 0xbb, 0x5f, 0xa5, 0x0e, 0x7f, 0xe9, 0xf2, 0x75, 0x30, 0x3d, 0x8f, 0x03, 0xff, 0x40, 0x34, + 0x4b, 0x5d, 0xdb, 0x01, 0xaa, 0x2f, 0xa3, 0xd9, 0x5c, 0x3f, 0x7d, 0x13, 0xfa, 0x52, 0x39, 0x52, + 0x40, 0xa8, 0x40, 0x07, 0xad, 0x9a, 0x71, 0x77, 0x5c, 0x19, 0x92, 0xbf, 0xf5, 0x26, 0x2f, 0x14, + 0x9a, 0xca, 0x9d, 0xad, 0xa0, 0xd5, 0x5b, 0x69, 0xd5, 0xab, 0xd0, 0xe5, 0xf0, 0xba, 0xcf, 0x0d, + 0x40, 0x21, 0xd1, 0x33, 0x2d, 0xdb, 0x4b, 0x90, 0xd7, 0x83, 0xa4, 0x15, 0xb0, 0x2b, 0x97, 0x91, + 0xc5, 0xea, 0x2e, 0x5f, 0x03, 0x78, 0xf1, 0x4b, 0x66, 0xb1, 0x76, 0x49, 0x07, 0xeb, 0xef, 0xc8, + 0xa3, 0x55, 0x5a, 0x9d, 0xc2, 0x7e, 0xb3, 0xd9, 0xa7, 0x56, 0x7d, 0x04, 0x25, 0x76, 0x9d, 0xf0, + 0x53, 0xb6, 0xf7, 0x74, 0x4c, 0xcc, 0xc5, 0x38, 0x33, 0x8b, 0xb3, 0x4c, 0x8a, 0x7b, 0x33, 0xa1, + 0xc9, 0xfd, 0xa1, 0x9f, 0xb4, 0x0f, 0xc9, 0xf7, 0xb7, 0x7c, 0x4e, 0x66, 0xe4, 0xcc, 0x69, 0xea, + 0x57, 0x91, 0xe9, 0x7f, 0x4b, 0xf9, 0x25, 0xf2, 0x92, 0xf7, 0xc3, 0x0a, 0x13, 0xbe, 0xf0, 0x2c, + 0x5e, 0xb3, 0xcf, 0x9a, 0xd8, 0xb5, 0xa2, 0x73, 0x01, 0xe1, 0x06, 0x9e, 0xed, 0x53, 0x91, 0x16, + 0xd6, 0x78, 0x62, 0xff, 0x8a, 0xab, 0x4e, 0xec, 0x5d, 0xa9, 0x72, 0xc5, 0x3c, 0x16, 0x3a, 0x8d, + 0x3c, 0xf7, 0x34, 0x01, 0x17, 0x49, 0xec, 0x58, 0xa9, 0x40, 0x04, 0x05, 0xf3, 0x42, 0x48, 0x5e, + 0x4b, 0x64, 0x0d, 0x9d, 0x3d, 0x7c, 0xb3, 0x54, 0x82, 0x44, 0xfe, 0x26, 0x17, 0xf9, 0x71, 0x85, + 0x47, 0xc2, 0xe0, 0xb0, 0x49, 0xeb, 0x9e, 0x4c, 0x0f, 0x07, 0x5b, 0x10, 0x67, 0x2b, 0x1d, 0x79, + 0x28, 0x91, 0xf6, 0x9d, 0xd2, 0xcf, 0x89, 0x92, 0xbd, 0x72, 0x92, 0x7f, 0x43, 0xe4, 0xcb, 0xc5, + 0x68, 0x6c, 0x03, 0x13, 0xa6, 0x5a, 0x60, 0x6b, 0x61, 0xab, 0x69, 0x7e, 0x73, 0x2c, 0x54, 0x62, + 0x74, 0xf1, 0x2d, 0xa0, 0x9a, 0xd9, 0x0c, 0x33, 0x38, 0x15, 0x5f, 0x4b, 0x3e, 0xba, 0xf0, 0x39, + 0x83, 0x53, 0xde, 0xc4, 0xf0, 0x14, 0xdb, 0xba, 0xf0, 0xeb, 0xb4, 0x6b, 0x36, 0x35, 0xb1, 0xab, + 0x90, 0x6c, 0x79, 0x03, 0x6f, 0x03, 0x0d, 0x5f, 0x9d, 0xae, 0xfb, 0x43, 0xde, 0x49, 0x44, 0x50, + 0x2e, 0x97, 0x56, 0x66, 0x5f, 0x19, 0x36, 0xb6, 0x82, 0x66, 0xa2, 0x05, 0xf4, 0xf1, 0x06, 0xd9, + 0x0a, 0xbd, 0x81, 0x2c, 0x82, 0x9b, 0x12, 0xe5, 0x69, 0x65, 0xe5, 0xf1, 0xb2, 0xd5, 0x52, 0x50, + 0x1a, 0xf8, 0xb6, 0xe4, 0x6a, 0xe9, 0xd2, 0x14, 0x36, 0x29, 0xc6, 0x70, 0x64, 0x33, 0xcb, 0xfd, + 0x1f, 0x54, 0x32, 0x5f, 0x5a, 0x58, 0x23, 0x93, 0x05, 0x9c, 0x52, 0x7b, 0xb8, 0xb1, 0x3d, 0xcc, + 0xf8, 0x0d, 0xf9, 0x10, 0x0b, 0xd0, 0x6e, 0x95, 0xca, 0xd7, 0x4c, 0xa3, 0x47, 0xf1, 0x1c, 0xb3, + 0xcb, 0x07, 0x8a, 0xa7, 0xc5, 0x82, 0xcb, 0x7f, 0x51, 0x9b, 0xfe, 0xc5, 0x36, 0xa6, 0xcd, 0x70, + 0xbf, 0xe4, 0x7b, 0xce, 0xae, 0xa8, 0x18, 0x79, 0xff, 0x94, 0x7f, 0x2b, 0xd9, 0xfc, 0x76, 0xd2, + 0xec, 0x9f, 0x0f, 0xae, 0x67, 0x9e, 0x79, 0x79, 0x98, 0xd6, 0x98, 0x1c, 0x92, 0x7c, 0x5b, 0xf6, + 0xfc, 0xf0, 0x4b, 0x87, 0x10, 0xfa, 0x5b, 0x7a, 0x3a, 0x48, 0x1f, 0x27, 0x6b, 0x8c, 0xb4, 0xae, + 0xf3, 0x7e, 0x84, 0xad, 0x6a, 0x6c, 0x62, 0xbc, 0x84, 0x42, 0xf2, 0x50, 0x8a, 0xb5, 0x28, 0xba, + 0x74, 0x29, 0xec, 0x4a, 0xbe, 0x86, 0x5a, 0x1f, 0x4b, 0x93, 0xc9, 0x7c, 0xf7, 0xed, 0x7f, 0xbf, + 0xde, 0xae, 0xc4, 0x5e, 0xa5, 0xa7, 0x46, 0xa7, 0x15, 0x73, 0x6f, 0xc5, 0xdc, 0x91, 0x7b, 0x64, + 0xb9, 0x5b, 0x31, 0xf7, 0x56, 0xcc, 0x7d, 0x3e, 0xa8, 0x2e, 0x9d, 0xfb, 0x99, 0xf3, 0x64, 0xe9, + 0x75, 0x62, 0x5e, 0x4b, 0x28, 0xaf, 0xf9, 0xa0, 0x29, 0xb5, 0x82, 0xb5, 0xcc, 0x8a, 0xf4, 0xdc, + 0x0a, 0xe6, 0x12, 0x2b, 0x58, 0x12, 0xed, 0x9d, 0x5c, 0xf1, 0xc5, 0xf8, 0x03, 0xae, 0xce, 0x86, + 0x52, 0x08, 0x54, 0xfe, 0xf1, 0x0c, 0x14, 0x9c, 0xa0, 0x9c, 0x30, 0xf7, 0xd2, 0xca, 0x5a, 0x3f, + 0xed, 0x4d, 0x51, 0x69, 0x0e, 0xf8, 0x3b, 0x84, 0xc2, 0xea, 0x5b, 0x7d, 0x01, 0x6c, 0x8d, 0xe3, + 0xc3, 0x0e, 0xdd, 0x90, 0xaf, 0xc3, 0x99, 0x28, 0xef, 0x99, 0x47, 0x58, 0xdb, 0x71, 0xec, 0x79, + 0xc0, 0xae, 0x2c, 0xf4, 0xd9, 0xb5, 0xa5, 0x7e, 0x7b, 0x66, 0x71, 0xb5, 0x5d, 0xe7, 0xa8, 0x94, + 0xcb, 0x47, 0xbe, 0x29, 0x1d, 0x48, 0xa1, 0x6d, 0x4f, 0x57, 0x76, 0x76, 0x14, 0x63, 0x4b, 0xd2, + 0xac, 0x4f, 0x7c, 0x15, 0x61, 0x46, 0x19, 0x96, 0xa6, 0x76, 0xb1, 0xde, 0x42, 0xeb, 0xf8, 0x8f, + 0xb8, 0x0a, 0x9b, 0x91, 0x5e, 0x59, 0xe0, 0xe6, 0xa7, 0xab, 0xdb, 0x3d, 0x81, 0x4a, 0xe7, 0xd4, + 0x3f, 0x3e, 0x73, 0xc2, 0x5f, 0xeb, 0xf3, 0xc6, 0xb6, 0x0d, 0x1f, 0x48, 0xcf, 0xd5, 0x92, 0x96, + 0xab, 0x53, 0xca, 0xd5, 0xb1, 0x18, 0xc7, 0x3f, 0x72, 0x3e, 0x94, 0x33, 0x85, 0xbf, 0xf7, 0x06, + 0xe5, 0xba, 0x0f, 0xe9, 0x42, 0x50, 0xb3, 0x1f, 0xe9, 0x02, 0x69, 0x73, 0x24, 0xbe, 0x7f, 0xef, + 0x74, 0xea, 0xfb, 0xf7, 0x3e, 0xc1, 0x12, 0x15, 0x16, 0x12, 0x3f, 0xa7, 0xa4, 0x19, 0x63, 0xa9, + 0xc4, 0x43, 0xa5, 0xb8, 0xbe, 0xed, 0x38, 0x3b, 0x47, 0x27, 0x73, 0x1e, 0x2c, 0x34, 0xa2, 0x21, + 0x7a, 0xa2, 0x65, 0xa9, 0x84, 0x6b, 0xdb, 0x41, 0x85, 0x23, 0xa4, 0x51, 0x1e, 0x43, 0x49, 0x1a, + 0x96, 0xb6, 0x36, 0xe5, 0x10, 0x8d, 0x6c, 0x6f, 0x3e, 0x6f, 0xaf, 0xbc, 0x43, 0x7f, 0x09, 0xdc, + 0x97, 0x76, 0x0a, 0x64, 0x6f, 0xf2, 0x89, 0x35, 0xf2, 0x07, 0x9e, 0x37, 0xad, 0x86, 0x9f, 0x84, + 0x75, 0x97, 0x5a, 0x1d, 0x7f, 0xee, 0xc4, 0xe4, 0xd5, 0xf1, 0x74, 0x7b, 0x3c, 0x17, 0x36, 0xa6, + 0x2c, 0xf4, 0xd0, 0xb9, 0x6f, 0xf2, 0x21, 0x84, 0x31, 0x06, 0xd2, 0x77, 0x92, 0x57, 0xbd, 0x49, + 0x7b, 0xcc, 0x44, 0x3e, 0xdd, 0xa4, 0x35, 0xe0, 0xc5, 0xe7, 0x18, 0x96, 0x1a, 0xad, 0xf9, 0xa0, + 0x2f, 0xb6, 0xe0, 0x88, 0x3f, 0xb4, 0xef, 0xae, 0x46, 0x17, 0x9f, 0x51, 0x1b, 0xeb, 0xdf, 0x1c, + 0x2a, 0x36, 0xe6, 0x83, 0xc1, 0xc4, 0x91, 0x7f, 0x2d, 0xe6, 0x91, 0xb9, 0xd7, 0x0e, 0xdb, 0xba, + 0xc9, 0x53, 0x34, 0x59, 0x34, 0xe5, 0x55, 0xe4, 0x07, 0xc9, 0x9e, 0xd1, 0xbf, 0x59, 0xf2, 0xcc, + 0x6c, 0x01, 0x1d, 0xb3, 0x99, 0xdc, 0xa0, 0x15, 0x75, 0x51, 0x58, 0x0f, 0x95, 0x1e, 0x51, 0x15, + 0x85, 0x4a, 0x01, 0x7b, 0xbd, 0xd4, 0xd8, 0x4c, 0x16, 0x23, 0x1d, 0xd7, 0x98, 0x5b, 0xc1, 0x64, + 0x2c, 0x7f, 0xf0, 0x48, 0x04, 0x2a, 0xdd, 0x66, 0x6e, 0x03, 0x27, 0xd5, 0x6f, 0xdc, 0x26, 0x79, + 0x3e, 0x62, 0xa7, 0xb4, 0x48, 0xef, 0x80, 0xad, 0xef, 0xd3, 0x7a, 0x7b, 0x6a, 0x27, 0xc8, 0xb7, + 0x1a, 0xf2, 0x82, 0x85, 0xf2, 0xac, 0xa3, 0xbb, 0x48, 0xcf, 0x56, 0x97, 0x9c, 0x79, 0x88, 0xba, + 0xe5, 0xdd, 0xb8, 0x1a, 0x0c, 0xa0, 0xbb, 0x91, 0xec, 0xdd, 0xd2, 0x19, 0x57, 0x55, 0x30, 0x4b, + 0x34, 0x92, 0x75, 0xdb, 0xda, 0xc7, 0xc1, 0x10, 0x78, 0x1c, 0x0a, 0x02, 0x74, 0xf6, 0xb3, 0x27, + 0x94, 0xc9, 0xbc, 0xf6, 0x11, 0x95, 0xe8, 0x21, 0xaf, 0xc2, 0xa4, 0xbf, 0x20, 0x7b, 0x92, 0x28, + 0x65, 0xde, 0x21, 0xed, 0xc0, 0x4b, 0x2b, 0xf0, 0x54, 0x8a, 0x8a, 0xf3, 0xd8, 0x52, 0xad, 0xa0, + 0x62, 0x3a, 0x8b, 0x4e, 0x3a, 0x23, 0x40, 0xb3, 0xca, 0x9f, 0x4e, 0x99, 0x5d, 0x26, 0xb2, 0xb0, + 0xab, 0x0a, 0x73, 0xa4, 0xfb, 0x58, 0xd3, 0x27, 0x66, 0xfb, 0x1e, 0x20, 0x6f, 0x22, 0x18, 0xff, + 0x20, 0xf9, 0xb0, 0xa8, 0xe9, 0x33, 0xd7, 0xd6, 0xf6, 0x88, 0xea, 0x25, 0x5f, 0x10, 0xb4, 0xaf, + 0x27, 0xf8, 0x96, 0xd8, 0x50, 0x4b, 0x5f, 0xe8, 0x6b, 0x07, 0xc1, 0xc0, 0x5b, 0xc1, 0x69, 0xc4, + 0xd1, 0xba, 0x3b, 0x16, 0xe4, 0x9f, 0x1a, 0x0e, 0x96, 0xf1, 0x7a, 0xb2, 0x25, 0x85, 0x97, 0x53, + 0x18, 0x84, 0x59, 0x74, 0xca, 0x17, 0xd3, 0x30, 0xe2, 0x55, 0x20, 0x1a, 0x77, 0xf7, 0x06, 0x33, + 0xe7, 0xd6, 0x80, 0x99, 0x42, 0x28, 0x56, 0xd4, 0x0f, 0xf5, 0x06, 0x75, 0x18, 0xe2, 0xa4, 0x78, + 0x82, 0x45, 0x1a, 0xfa, 0x20, 0xf9, 0x3e, 0x91, 0x73, 0xf3, 0x91, 0x67, 0x73, 0x47, 0x1b, 0xd8, + 0x5e, 0x3a, 0x03, 0x39, 0x4f, 0x0d, 0x37, 0x6a, 0xf8, 0xc0, 0x53, 0x67, 0xb0, 0x35, 0x62, 0xa4, + 0x4d, 0x58, 0x2a, 0xf9, 0x9c, 0x38, 0x24, 0xeb, 0x9d, 0xb5, 0x21, 0xee, 0x85, 0x2d, 0x76, 0x88, + 0xd2, 0x28, 0xb5, 0x36, 0x23, 0x67, 0x8b, 0x74, 0x85, 0x57, 0x49, 0x7e, 0x03, 0x0f, 0xc7, 0x68, + 0xac, 0xd8, 0x3b, 0xb1, 0x5b, 0x9d, 0x4f, 0xe1, 0x2c, 0xdd, 0xa6, 0x42, 0x59, 0xc3, 0xb9, 0xef, + 0x49, 0x70, 0x76, 0x80, 0x72, 0x48, 0xf1, 0x3d, 0xea, 0xf7, 0x37, 0xee, 0xc5, 0x7e, 0x68, 0x66, + 0xe3, 0x41, 0x7b, 0xf1, 0x78, 0x60, 0xde, 0x3d, 0x91, 0xbb, 0x1a, 0x7f, 0xd4, 0xe4, 0x2a, 0x95, + 0x64, 0x2d, 0x07, 0xd2, 0x0b, 0xc9, 0x16, 0x6e, 0xe3, 0x7f, 0x0f, 0xf3, 0xed, 0x50, 0xc8, 0xac, + 0xa1, 0xe6, 0xfe, 0xf7, 0x33, 0x76, 0x3f, 0xdc, 0x61, 0x5c, 0x6c, 0x6f, 0x01, 0x23, 0xf8, 0x8c, + 0xf3, 0xa0, 0x80, 0xd9, 0x4f, 0x98, 0x07, 0x56, 0xeb, 0x3c, 0x98, 0xb5, 0xfb, 0x49, 0x28, 0x0a, + 0xe6, 0xda, 0x2b, 0xa0, 0x64, 0xe8, 0x2e, 0x2c, 0x85, 0x8b, 0xee, 0x9d, 0x0a, 0x2b, 0x60, 0xd9, + 0x8a, 0x40, 0x10, 0x79, 0x8a, 0xef, 0xd4, 0x51, 0xbc, 0x95, 0x7c, 0xc1, 0x09, 0x62, 0x26, 0xc1, + 0x48, 0xb1, 0xf8, 0x5e, 0x54, 0xf3, 0x11, 0x7c, 0xd3, 0xbe, 0x18, 0x44, 0x9a, 0x97, 0xed, 0xad, + 0xc8, 0x7f, 0xd4, 0x49, 0x6b, 0xf2, 0x58, 0x9f, 0xb2, 0x28, 0x14, 0x62, 0x9d, 0x8d, 0x4b, 0xc9, + 0xff, 0x83, 0x77, 0xd8, 0x69, 0x47, 0x29, 0xe9, 0x19, 0xdb, 0x1a, 0x8b, 0x87, 0xd6, 0xdf, 0xa3, + 0xb4, 0xbb, 0x49, 0x14, 0x5e, 0x9f, 0x85, 0xc8, 0x30, 0xdb, 0x0d, 0x95, 0x38, 0x07, 0x1a, 0xf2, + 0x16, 0xe0, 0x73, 0x25, 0xd4, 0x62, 0x4b, 0x14, 0xad, 0x52, 0xe3, 0xaf, 0xd0, 0x44, 0xad, 0x52, + 0x14, 0xcc, 0xc6, 0x91, 0x57, 0x42, 0xef, 0x41, 0xf5, 0x50, 0x4f, 0x43, 0xb6, 0xa8, 0x1b, 0xea, + 0x59, 0x95, 0x23, 0x66, 0xb2, 0x10, 0x03, 0x9f, 0xb1, 0xbf, 0x67, 0x55, 0xa6, 0xa8, 0x12, 0xca, + 0x45, 0xfd, 0x3a, 0x4e, 0xd4, 0xad, 0x23, 0xed, 0xbb, 0x72, 0xbe, 0x14, 0x76, 0x6c, 0xff, 0xee, + 0x9e, 0x58, 0x50, 0x11, 0x88, 0xf9, 0xca, 0x43, 0x1a, 0x4c, 0xb7, 0x12, 0xf3, 0xa9, 0x35, 0x2b, + 0x36, 0x92, 0x1f, 0xdd, 0x02, 0x51, 0x15, 0xf8, 0x5e, 0x60, 0xd3, 0xde, 0x27, 0xa1, 0x3e, 0x44, + 0xbb, 0x53, 0x75, 0xbe, 0xa2, 0x62, 0x08, 0x99, 0x9f, 0x7e, 0x12, 0xca, 0x42, 0xfc, 0x6e, 0x47, + 0x31, 0x04, 0x73, 0x0f, 0x2c, 0xc0, 0x5f, 0x03, 0xce, 0xb9, 0x39, 0xfa, 0x22, 0x0b, 0x0c, 0x61, + 0x7c, 0x50, 0x8d, 0xf0, 0x05, 0x4d, 0xcf, 0x85, 0x41, 0x6f, 0x87, 0x5a, 0x3b, 0xfd, 0xfa, 0xec, + 0x74, 0xea, 0x33, 0x47, 0x8f, 0xb5, 0xc0, 0xd9, 0x68, 0x3a, 0xcd, 0x1e, 0xf6, 0x85, 0x1a, 0x0f, + 0xe1, 0xf2, 0x2f, 0xb3, 0x13, 0x31, 0xa4, 0xcd, 0x94, 0x65, 0x87, 0xa6, 0xa7, 0xba, 0xbb, 0xa6, + 0x1c, 0xbc, 0x9b, 0xda, 0x3f, 0x94, 0xd5, 0x05, 0xa5, 0xac, 0x75, 0x22, 0x53, 0x6c, 0x6b, 0x9a, + 0xa9, 0x4d, 0x1e, 0x23, 0xe8, 0xd9, 0x61, 0x0b, 0xc0, 0x37, 0xb1, 0xe7, 0x58, 0x1c, 0x8e, 0x96, + 0x15, 0x3c, 0xc6, 0xe7, 0x50, 0xfc, 0xa1, 0x7f, 0xc5, 0xb2, 0x99, 0x94, 0xd8, 0xca, 0x1a, 0xa8, + 0xdf, 0x83, 0xe5, 0x6e, 0xcc, 0xf6, 0x51, 0x69, 0xf5, 0x08, 0x55, 0xf7, 0xd2, 0x41, 0x6c, 0xf1, + 0x15, 0x3e, 0x7d, 0x10, 0xc6, 0x77, 0x49, 0xfc, 0x3d, 0xb3, 0x65, 0xcb, 0x52, 0x91, 0xbe, 0x1f, + 0x1f, 0x24, 0x3c, 0xb1, 0xa9, 0x02, 0x77, 0x97, 0x11, 0x9f, 0xff, 0x7b, 0x73, 0x66, 0xed, 0x26, + 0x66, 0xef, 0x58, 0x96, 0xcb, 0x5f, 0x8d, 0xb1, 0x7d, 0x86, 0x2a, 0xb6, 0xab, 0x52, 0x80, 0xa9, + 0x55, 0x62, 0xac, 0x2a, 0x11, 0xbb, 0xf4, 0x53, 0x0d, 0x32, 0x87, 0x18, 0xa6, 0x4a, 0x79, 0xcb, + 0xc5, 0xf1, 0x5c, 0x56, 0x00, 0x6f, 0xf4, 0x38, 0x24, 0xd9, 0x38, 0x4d, 0xc6, 0x37, 0xba, 0xca, + 0x3f, 0xb6, 0xc4, 0x4d, 0x53, 0xd7, 0x43, 0xb1, 0x54, 0x8f, 0x29, 0xc6, 0x4c, 0xdb, 0x1a, 0x2f, + 0x95, 0xe2, 0x45, 0xc2, 0x54, 0x5e, 0xf3, 0xd2, 0x93, 0xe0, 0xf3, 0x6d, 0x0d, 0xe6, 0x1d, 0x40, + 0x9c, 0x6f, 0xc8, 0x4e, 0x78, 0x98, 0xfc, 0xd3, 0x29, 0x53, 0x0c, 0x6b, 0xd3, 0x1c, 0x18, 0xa0, + 0x71, 0x6e, 0x0a, 0x58, 0xd4, 0x8c, 0x32, 0x69, 0x68, 0x64, 0xac, 0x82, 0x0b, 0x3b, 0xe9, 0xde, + 0x18, 0xb9, 0x5c, 0xfd, 0x8a, 0x48, 0x8a, 0x79, 0x96, 0xe6, 0x22, 0x92, 0xf2, 0xbd, 0xcf, 0x49, + 0x73, 0x11, 0xf9, 0xcc, 0xa5, 0xf9, 0xc6, 0x0a, 0xaf, 0x6f, 0xba, 0x78, 0x16, 0x42, 0xae, 0x22, + 0x6e, 0xd2, 0x20, 0x8c, 0x1d, 0x8a, 0xe8, 0xfd, 0xd5, 0x58, 0xb2, 0xcc, 0x5a, 0x63, 0x46, 0xa2, + 0xcc, 0xc9, 0x91, 0x78, 0x89, 0x99, 0x49, 0xe6, 0x76, 0xc9, 0xf3, 0x29, 0x3b, 0x5b, 0x43, 0xe7, + 0xd3, 0x91, 0x03, 0xb1, 0x11, 0x97, 0xda, 0xa9, 0x2e, 0x3f, 0x1d, 0x8f, 0x8b, 0x99, 0xce, 0x2a, + 0xc6, 0xb3, 0xaa, 0xdd, 0x1f, 0xf7, 0x22, 0x6e, 0xfe, 0xe0, 0x30, 0xe3, 0x3d, 0xc8, 0x37, 0xaf, + 0xc1, 0xbf, 0x7f, 0xf4, 0x05, 0x66, 0x8f, 0x5a, 0xd6, 0x9b, 0xe7, 0x8b, 0x2f, 0xa6, 0x94, 0x8b, + 0x91, 0x52, 0x56, 0x48, 0xd4, 0x8e, 0x68, 0x6f, 0x01, 0xf2, 0x74, 0x0f, 0x31, 0xcf, 0xa5, 0xfd, + 0x48, 0x17, 0x35, 0xd8, 0x72, 0x5b, 0x91, 0xfe, 0x62, 0x7b, 0x51, 0xd8, 0x8d, 0x35, 0xc8, 0xd5, + 0x21, 0x55, 0x46, 0xca, 0x5c, 0x80, 0x97, 0x11, 0x29, 0x71, 0x4f, 0xf0, 0x18, 0xc6, 0xe8, 0x6b, + 0x7b, 0xfb, 0xcf, 0x82, 0xed, 0xa9, 0xf7, 0xc1, 0xd0, 0x50, 0x4a, 0xd4, 0x3f, 0x54, 0x44, 0xe7, + 0x29, 0xe4, 0x5a, 0x25, 0xb5, 0xdd, 0xd2, 0xd6, 0x11, 0xf3, 0x44, 0x43, 0x6d, 0xf7, 0x8d, 0x6e, + 0xfc, 0x12, 0xd3, 0x23, 0xbf, 0xf0, 0x66, 0x46, 0x09, 0x59, 0x49, 0x7c, 0x38, 0x93, 0x49, 0x94, + 0xf0, 0x7d, 0xa4, 0x84, 0xcf, 0x20, 0x25, 0xbc, 0x76, 0x88, 0xca, 0xf6, 0x62, 0xf5, 0x9b, 0x79, + 0x32, 0xcd, 0x2f, 0x25, 0x4b, 0xde, 0x6c, 0x0f, 0x98, 0xf6, 0x7f, 0x11, 0x77, 0x0a, 0xb1, 0xbe, + 0x36, 0xa4, 0x5a, 0x18, 0xe2, 0xdf, 0xff, 0xc5, 0x59, 0xe4, 0xd2, 0xad, 0xc8, 0x17, 0xab, 0x8e, + 0x6e, 0x22, 0x7e, 0x0f, 0xc7, 0xb3, 0x8e, 0x7c, 0x13, 0x12, 0x16, 0xbc, 0x5b, 0x58, 0xd3, 0x67, + 0x57, 0x61, 0x2f, 0x2b, 0xa5, 0xd5, 0x26, 0xa2, 0xba, 0x47, 0x37, 0xd9, 0x99, 0x1d, 0xef, 0xe2, + 0x3c, 0xff, 0x36, 0x16, 0xa7, 0x4a, 0xc6, 0x19, 0x28, 0x8e, 0x42, 0x99, 0x8f, 0xc2, 0xeb, 0xed, + 0xe4, 0x11, 0x30, 0x47, 0x0a, 0x63, 0x7c, 0xe5, 0x66, 0x7b, 0x06, 0x79, 0xa3, 0x66, 0x21, 0xcc, + 0x3e, 0x0c, 0xe5, 0xb7, 0xb7, 0x67, 0x55, 0xc3, 0x76, 0x94, 0x49, 0x27, 0xe5, 0xd2, 0xc3, 0x52, + 0x52, 0x4e, 0x4a, 0x5f, 0x0e, 0x9d, 0x90, 0x7e, 0x8f, 0x9c, 0xbe, 0xc9, 0x5e, 0x8e, 0x73, 0x3f, + 0x8f, 0x14, 0xc5, 0x74, 0x7c, 0x10, 0x74, 0x76, 0x01, 0x78, 0x6c, 0x83, 0x52, 0x3f, 0x2b, 0x2b, + 0x7b, 0x62, 0x3a, 0xe6, 0xcc, 0x1b, 0xae, 0xd4, 0xa3, 0xf9, 0x38, 0xf7, 0x21, 0x97, 0x80, 0x3c, + 0xac, 0x11, 0x69, 0x5e, 0x29, 0xe3, 0xf2, 0xbb, 0x18, 0x7e, 0xcc, 0xb2, 0xac, 0x06, 0x93, 0xcf, + 0x0a, 0x25, 0x28, 0x07, 0xb0, 0xf3, 0x2c, 0xf1, 0x3c, 0x51, 0x1b, 0x56, 0x4a, 0xcf, 0xe3, 0x1e, + 0x3e, 0x11, 0x6b, 0xb0, 0x37, 0xc3, 0x79, 0xc8, 0x41, 0x4a, 0x50, 0x4a, 0x7b, 0xd4, 0x2b, 0x90, + 0x96, 0x7e, 0xe6, 0xb3, 0x5b, 0xd8, 0xa9, 0x88, 0x52, 0xbc, 0x3f, 0x51, 0x35, 0xf2, 0x59, 0x09, + 0xd3, 0x55, 0x37, 0xa5, 0x85, 0xee, 0xf6, 0x6f, 0xa3, 0xfc, 0xc2, 0x55, 0x95, 0x30, 0xe1, 0x7c, + 0x98, 0x3e, 0xa1, 0x09, 0x8f, 0xf3, 0x16, 0xf6, 0x12, 0xe2, 0x70, 0x31, 0x79, 0x9f, 0x36, 0x4b, + 0x5e, 0x00, 0x1d, 0x93, 0x7d, 0xa9, 0xc2, 0xd3, 0x16, 0x8f, 0xd9, 0xb5, 0x64, 0xe4, 0xd3, 0x33, + 0x36, 0xe5, 0xc3, 0x3d, 0xbc, 0xda, 0x13, 0xb3, 0xb9, 0x10, 0x23, 0x77, 0x22, 0x3f, 0xa6, 0x63, + 0xb5, 0xd8, 0xb8, 0xef, 0xbe, 0x60, 0xe5, 0x2f, 0x5f, 0x08, 0x1a, 0x0b, 0xd4, 0x6d, 0x8a, 0x02, + 0x59, 0xab, 0x1e, 0x69, 0xc9, 0x34, 0x5e, 0xb9, 0x67, 0x53, 0xa3, 0x82, 0x57, 0x78, 0xc3, 0x1a, + 0xf0, 0x3f, 0xf8, 0x9f, 0xbf, 0x17, 0x0b, 0xa5, 0x38, 0x92, 0x8f, 0xfa, 0x7b, 0xc8, 0x6f, 0xbc, + 0x17, 0xa9, 0x9f, 0xff, 0x41, 0xe9, 0xfd, 0x3f, 0x87, 0xc5, 0x02, 0x4c, 0x25, 0x3b, 0x61, 0xab, + 0x08, 0x31, 0x07, 0x67, 0xe3, 0xff, 0x7c, 0x96, 0x9d, 0xa0, 0x99, 0x25, 0x87, 0x22, 0xa4, 0x1c, + 0x7e, 0x96, 0xc9, 0x6f, 0x7a, 0x51, 0x8b, 0xdf, 0xa8, 0xf7, 0x92, 0x67, 0x2a, 0x43, 0xf6, 0x01, + 0x98, 0xfe, 0xcb, 0x17, 0x42, 0xba, 0xc0, 0xbd, 0x96, 0xba, 0x7d, 0xec, 0x64, 0x44, 0x7c, 0x05, + 0x9f, 0x21, 0xfb, 0x78, 0xbf, 0x75, 0xfc, 0x34, 0xd9, 0x40, 0x24, 0xd9, 0xb4, 0x60, 0xaa, 0x2c, + 0x9b, 0xa2, 0xbc, 0x39, 0x65, 0x77, 0x4a, 0x36, 0x55, 0xe9, 0x12, 0xb2, 0xa9, 0x2a, 0x29, 0x9b, + 0xce, 0xe0, 0x65, 0xd9, 0x74, 0x3a, 0xc2, 0x7e, 0xde, 0x04, 0x53, 0x1e, 0x63, 0x6f, 0x99, 0x18, + 0xa3, 0x16, 0x41, 0xf7, 0xe8, 0x04, 0xbb, 0xcc, 0x24, 0xa3, 0x0d, 0xef, 0x93, 0x64, 0xb5, 0x5d, + 0x92, 0xb4, 0xaa, 0x7c, 0x34, 0xc1, 0xb7, 0x1a, 0x17, 0x27, 0xe5, 0x55, 0x0a, 0xbf, 0x4f, 0x92, + 0x3c, 0x4c, 0xc2, 0x2b, 0xe4, 0xbd, 0xd9, 0x9b, 0xb2, 0xcb, 0x41, 0xf6, 0x37, 0x39, 0xec, 0xed, + 0xb9, 0xe5, 0xe0, 0xd9, 0x00, 0x25, 0x08, 0xf3, 0x7a, 0x0f, 0x2f, 0xe4, 0x23, 0xf6, 0x8c, 0x9f, + 0x25, 0x4c, 0x36, 0xb6, 0x8f, 0x9f, 0x65, 0xf6, 0x88, 0x72, 0x51, 0x5a, 0x56, 0x60, 0xea, 0x26, + 0x1b, 0x62, 0x47, 0x7e, 0x57, 0x4c, 0x09, 0xca, 0xf1, 0xf3, 0xc2, 0xcf, 0xc7, 0x3f, 0x67, 0xcf, + 0xdc, 0xf8, 0x98, 0x63, 0x1e, 0x4a, 0x2e, 0xc3, 0x91, 0x4f, 0x8f, 0xc5, 0xf2, 0xdd, 0x71, 0x60, + 0xa1, 0x19, 0x71, 0x55, 0x58, 0x9b, 0xef, 0x8a, 0x6b, 0xd8, 0xdb, 0x94, 0xb8, 0xce, 0xd1, 0x02, + 0xda, 0x7c, 0x6f, 0x5c, 0xcf, 0xde, 0xb3, 0xe3, 0x06, 0xd2, 0x65, 0xc7, 0xf8, 0x1c, 0xf6, 0x7e, + 0x5d, 0x3c, 0x0f, 0x9f, 0x79, 0xf6, 0x3c, 0x33, 0x6e, 0xc2, 0x67, 0x0b, 0x3d, 0xeb, 0x33, 0xe2, + 0xb6, 0xfc, 0x2e, 0xe2, 0x59, 0xe2, 0x0e, 0xf6, 0xae, 0x8e, 0x17, 0xca, 0xef, 0xc5, 0xec, 0x9d, + 0x8b, 0x97, 0x46, 0x54, 0x98, 0xa7, 0x8b, 0xbd, 0x69, 0xe3, 0x1e, 0xfc, 0xd2, 0x2b, 0xfc, 0x3c, + 0x5e, 0x2d, 0xeb, 0xaf, 0xfc, 0xb9, 0xe2, 0x83, 0x71, 0x76, 0x0e, 0xd0, 0x8c, 0x43, 0x63, 0x8e, + 0x0b, 0x4a, 0x43, 0x36, 0x33, 0x49, 0xbc, 0x58, 0x33, 0xa3, 0x2b, 0x0c, 0x11, 0xee, 0xc1, 0x23, + 0x32, 0x67, 0xeb, 0x63, 0xe1, 0xe5, 0x54, 0xe7, 0x70, 0x82, 0xdb, 0xad, 0x31, 0x56, 0x5c, 0x4b, + 0x5c, 0x6a, 0x09, 0xf2, 0x20, 0x75, 0xa6, 0x0a, 0x01, 0x47, 0x08, 0xe1, 0x78, 0x64, 0xc2, 0x79, + 0x97, 0xb9, 0x94, 0x2a, 0x28, 0x0a, 0x93, 0x27, 0x36, 0xf6, 0x4a, 0x9a, 0xb7, 0x0f, 0xbd, 0xe1, + 0xdf, 0x7f, 0x9e, 0xbf, 0x89, 0x56, 0xc9, 0x37, 0x93, 0xd4, 0x6f, 0xc2, 0x94, 0x71, 0xbc, 0x24, + 0x25, 0x7f, 0x1b, 0xa4, 0xb5, 0xa8, 0x02, 0xa6, 0xc7, 0xdf, 0x0a, 0x2b, 0xb0, 0xf4, 0xa7, 0xd8, + 0x5b, 0x4e, 0xfc, 0x74, 0x7e, 0x65, 0xfc, 0x2c, 0xd6, 0xe4, 0x9c, 0x5c, 0x93, 0x4f, 0x2a, 0x3e, + 0x88, 0xbf, 0x45, 0x35, 0x91, 0x4f, 0xa3, 0x02, 0x77, 0x1f, 0xef, 0x42, 0xe6, 0x41, 0x85, 0x72, + 0x9a, 0x9a, 0x52, 0xa2, 0xf1, 0x88, 0x7d, 0xbe, 0xff, 0x2f, 0x0f, 0x4d, 0x4a, 0xf7, 0x85, 0xf0, + 0x34, 0x4c, 0xf7, 0xa8, 0x9c, 0xee, 0x71, 0x4c, 0xf7, 0x35, 0x4c, 0xf7, 0x44, 0x5a, 0xba, 0x2f, + 0x50, 0xba, 0xc8, 0x75, 0x3f, 0x51, 0xd3, 0x87, 0xe9, 0x16, 0xe2, 0x53, 0x07, 0x5e, 0xad, 0xbc, + 0xab, 0x44, 0x4e, 0x3b, 0x2d, 0xb5, 0x7d, 0xe1, 0xe9, 0x98, 0xda, 0x01, 0x39, 0xb5, 0x61, 0x4c, + 0xed, 0x10, 0xa6, 0x76, 0x38, 0x2d, 0xb5, 0x7d, 0x72, 0x6a, 0xbb, 0x71, 0x44, 0xbf, 0x5a, 0xac, + 0x3c, 0x55, 0x8d, 0xcf, 0x02, 0x5e, 0x65, 0xb4, 0xd6, 0x40, 0xed, 0xcb, 0xb7, 0x40, 0x81, 0xb1, + 0x32, 0xb1, 0xe2, 0xe0, 0xc8, 0xf0, 0xb8, 0x8e, 0xba, 0xa8, 0x75, 0xb2, 0xac, 0xa4, 0x19, 0xdb, + 0xef, 0xbe, 0xd5, 0xd5, 0xbf, 0xf8, 0x26, 0x17, 0x5b, 0x1f, 0xbb, 0xc9, 0x1b, 0x0b, 0xd0, 0x2a, + 0x98, 0xda, 0xa1, 0xac, 0x73, 0xf5, 0x7b, 0xfa, 0x3d, 0x64, 0xd3, 0x6b, 0x47, 0xf9, 0x4d, 0x1e, + 0xe2, 0xe2, 0xfb, 0xcb, 0xf1, 0xcd, 0x81, 0xd7, 0x8a, 0x9b, 0xca, 0x41, 0xc4, 0xab, 0xf0, 0xa6, + 0x0a, 0x68, 0xc0, 0xab, 0xe8, 0x8d, 0x0a, 0x8c, 0x5d, 0x5c, 0x06, 0x18, 0xe7, 0x7c, 0xa4, 0xe2, + 0xa6, 0xc5, 0x70, 0x87, 0xfb, 0x7d, 0x78, 0xe8, 0x46, 0x2f, 0x64, 0x95, 0xbf, 0x0f, 0x9b, 0x6f, + 0xac, 0x02, 0x63, 0xc5, 0xfb, 0x50, 0x6f, 0xde, 0x82, 0xa1, 0x36, 0x0c, 0xad, 0xb7, 0x25, 0x70, + 0x62, 0x09, 0xe2, 0x84, 0x12, 0x71, 0xa2, 0x43, 0xc2, 0x09, 0x0b, 0x85, 0x2f, 0x61, 0x38, 0x91, + 0xa0, 0x95, 0x35, 0x62, 0x71, 0xb2, 0xb5, 0xf3, 0xe1, 0x09, 0xff, 0xfe, 0x4f, 0xac, 0xc8, 0x95, + 0x2c, 0x99, 0x48, 0xfb, 0x2e, 0x5d, 0x53, 0x31, 0x33, 0xed, 0xac, 0x55, 0x83, 0xb4, 0x52, 0x33, + 0xcd, 0x9f, 0x58, 0xa9, 0xb1, 0x67, 0x31, 0x3e, 0xe5, 0x05, 0x89, 0xfb, 0x1e, 0x31, 0x23, 0x45, + 0xf5, 0xa4, 0xa0, 0xd9, 0xcc, 0xc2, 0xc6, 0xf9, 0xb4, 0xdc, 0x34, 0xf9, 0x74, 0x71, 0xda, 0xfe, + 0xea, 0x1b, 0xfc, 0x62, 0x93, 0x85, 0x69, 0x0c, 0x21, 0x6a, 0x2d, 0x25, 0x9d, 0xbc, 0x02, 0xd0, + 0x9b, 0x0b, 0xc0, 0xe0, 0xeb, 0xc0, 0x39, 0xd9, 0x2f, 0xe0, 0x2f, 0x5f, 0x00, 0xba, 0xf9, 0x2e, + 0x30, 0x18, 0x95, 0x5b, 0x63, 0x2f, 0x3f, 0x01, 0x46, 0xbc, 0x0a, 0xe6, 0x93, 0xe5, 0x43, 0x5a, + 0x9b, 0xd7, 0x32, 0x1b, 0x6f, 0xdb, 0xf3, 0xd9, 0x5a, 0x60, 0xfc, 0x3c, 0xe5, 0x38, 0x49, 0x7a, + 0xfb, 0x20, 0x7e, 0x3e, 0xb9, 0x8e, 0x49, 0x2b, 0x03, 0xa4, 0x8f, 0xc8, 0x63, 0x2f, 0xbf, 0xd5, + 0x91, 0xcb, 0xf4, 0xf2, 0x01, 0xb6, 0x92, 0x36, 0x22, 0xe2, 0x50, 0xa5, 0x64, 0x2b, 0x51, 0xd1, + 0x2b, 0x66, 0x93, 0xce, 0x22, 0x79, 0x93, 0x6c, 0x07, 0x05, 0x69, 0x2e, 0x2e, 0xc4, 0xd0, 0x88, + 0xe8, 0x90, 0xa4, 0x7c, 0x69, 0x5d, 0xb0, 0x90, 0xd6, 0x08, 0xb5, 0x52, 0xbd, 0x3f, 0x37, 0x5e, + 0xb2, 0x76, 0x0e, 0x5e, 0x60, 0x5e, 0xee, 0xf5, 0x17, 0x7f, 0xf1, 0xd9, 0xb9, 0x4b, 0x7d, 0x41, + 0x27, 0x73, 0x71, 0xd4, 0x1a, 0x65, 0xda, 0xb7, 0x46, 0xa3, 0x22, 0x0b, 0xb6, 0xef, 0x16, 0x8a, + 0xb4, 0x4a, 0xa7, 0xe5, 0x05, 0x7f, 0xbf, 0x29, 0x50, 0xd3, 0x47, 0xf5, 0x0b, 0x7e, 0x28, 0xb5, + 0x2b, 0xf7, 0xe9, 0xa5, 0xdb, 0x95, 0x7b, 0xa3, 0x30, 0x1f, 0xcc, 0x52, 0xbe, 0x52, 0x8e, 0x1f, + 0x6f, 0x31, 0xba, 0xe4, 0x13, 0xd9, 0x1e, 0x87, 0x40, 0x1e, 0x11, 0x87, 0x7a, 0x57, 0x95, 0x54, + 0x9c, 0x06, 0x6e, 0x68, 0x4b, 0x83, 0xd6, 0xd8, 0x02, 0x3a, 0x61, 0x41, 0x2f, 0x88, 0x16, 0x8c, + 0xd1, 0x5f, 0xb3, 0x5b, 0x83, 0xcd, 0x8b, 0x4f, 0x86, 0xe4, 0x53, 0x8e, 0xf4, 0x44, 0x70, 0xd7, + 0x3e, 0x35, 0x00, 0xbd, 0x70, 0x99, 0x7c, 0x83, 0x54, 0x4b, 0xda, 0xe9, 0xb2, 0x6b, 0xe4, 0x7c, + 0xb3, 0x4c, 0xc0, 0xd6, 0x0a, 0xd9, 0x7a, 0xe2, 0x53, 0x47, 0x56, 0x01, 0xec, 0x27, 0x6e, 0x53, + 0xb2, 0xea, 0xf7, 0x6e, 0x21, 0xd3, 0x93, 0xd7, 0xdb, 0xb4, 0x81, 0xbb, 0xa9, 0x4c, 0xb5, 0xb1, + 0xfe, 0x2d, 0x48, 0x89, 0xc2, 0x03, 0x40, 0xbb, 0x7e, 0xd6, 0x52, 0x88, 0xdf, 0x04, 0x64, 0x99, + 0x85, 0x41, 0x19, 0x2e, 0x86, 0x48, 0xc6, 0xe5, 0x10, 0x6f, 0x73, 0x85, 0x78, 0xdd, 0x15, 0xe2, + 0xf4, 0xd7, 0x3c, 0xce, 0x29, 0x07, 0x80, 0x72, 0xc0, 0x27, 0x15, 0x7b, 0xca, 0xc1, 0xa7, 0xeb, + 0xd9, 0x93, 0xee, 0x9a, 0x03, 0xc0, 0x0f, 0xb0, 0x53, 0xd3, 0x97, 0xac, 0x73, 0xc4, 0x24, 0xd8, + 0xb3, 0xa4, 0xba, 0xfe, 0xd5, 0x9f, 0xc4, 0xf8, 0x15, 0x97, 0x84, 0xad, 0x44, 0x8c, 0xd0, 0x4b, + 0xb0, 0x1f, 0x45, 0x92, 0xb0, 0x8e, 0x4b, 0xc2, 0xe6, 0xee, 0x95, 0xf0, 0xf8, 0x12, 0x71, 0xfb, + 0x9e, 0x00, 0x7d, 0x50, 0xb3, 0xf7, 0x09, 0xf2, 0x35, 0x3a, 0x65, 0x58, 0x4a, 0xef, 0xc3, 0xcd, + 0xe4, 0x7d, 0x69, 0xca, 0x6e, 0x69, 0x35, 0x78, 0xca, 0xa0, 0x34, 0xbf, 0x4e, 0xf9, 0xc9, 0xe4, + 0xd5, 0x60, 0x84, 0x69, 0x95, 0x46, 0x2f, 0x8d, 0xb6, 0x42, 0x5a, 0xc5, 0x9b, 0x04, 0xe1, 0x7b, + 0x82, 0x4e, 0x38, 0x4e, 0x69, 0x66, 0xda, 0xe4, 0x42, 0x5b, 0x96, 0x43, 0xe8, 0x1f, 0x66, 0xfc, + 0x39, 0xed, 0xc1, 0xb6, 0xb1, 0xb3, 0x59, 0x3f, 0x95, 0xf2, 0x3c, 0x3f, 0x4b, 0x04, 0x55, 0x9d, + 0x71, 0x31, 0xad, 0x04, 0xd3, 0xc8, 0x92, 0x24, 0x90, 0x57, 0x9e, 0xa1, 0x13, 0xaa, 0x38, 0x62, + 0xb4, 0x64, 0x11, 0xab, 0xb4, 0x05, 0x32, 0xcb, 0xe6, 0x81, 0x4e, 0x63, 0xa1, 0xf3, 0xc2, 0x41, + 0x9d, 0xd0, 0x0a, 0x45, 0x78, 0x15, 0x63, 0x39, 0xd4, 0xa5, 0x7e, 0xef, 0xef, 0x7d, 0xf8, 0x1e, + 0x04, 0xf8, 0x04, 0xef, 0xc5, 0x41, 0x50, 0x7f, 0x52, 0x48, 0xd2, 0xf1, 0xc1, 0x3d, 0xf7, 0x77, + 0x00, 0x1c, 0x9f, 0x24, 0x9f, 0x24, 0xa5, 0x29, 0x37, 0x4a, 0x53, 0x4f, 0xbd, 0xd8, 0x0e, 0xb0, + 0xbb, 0x90, 0x64, 0x9c, 0x83, 0x7b, 0xbe, 0x87, 0xd0, 0x8f, 0xd1, 0x1a, 0xc2, 0xc5, 0xfb, 0xab, + 0x32, 0xf4, 0xef, 0x11, 0x7a, 0x33, 0x72, 0xaa, 0x05, 0xc8, 0x65, 0x1b, 0xcd, 0x8a, 0xa1, 0x9e, + 0x36, 0x85, 0x19, 0x86, 0x7a, 0x3a, 0x15, 0x26, 0x60, 0xf6, 0xe0, 0x58, 0x99, 0x2c, 0xb4, 0xc7, + 0x76, 0x8a, 0xc9, 0x7b, 0x9a, 0x87, 0xdf, 0x47, 0xe9, 0x2f, 0xd3, 0xe8, 0xf1, 0xff, 0xa0, 0xa6, + 0x0f, 0x67, 0xcb, 0x59, 0xd2, 0x8a, 0x82, 0x71, 0xf1, 0xd6, 0xf7, 0x91, 0x73, 0x9f, 0x2a, 0xf9, + 0xe3, 0x20, 0x4f, 0x0e, 0xc4, 0xa7, 0xb1, 0xf6, 0xb7, 0xb2, 0x95, 0x95, 0x56, 0x98, 0x05, 0xd6, + 0xb9, 0x74, 0xba, 0xb6, 0x80, 0x69, 0x51, 0x4a, 0x71, 0x9f, 0x33, 0x2f, 0x4f, 0xa0, 0x36, 0xb0, + 0xbc, 0xb0, 0xee, 0x6a, 0x2d, 0xf9, 0xa7, 0xf5, 0x3e, 0xbb, 0x17, 0xeb, 0x99, 0x31, 0x4e, 0xbb, + 0xaf, 0xde, 0xdf, 0x51, 0x6d, 0x2d, 0xd2, 0x2e, 0x5f, 0x06, 0xd5, 0x40, 0xca, 0x9b, 0xca, 0x5f, + 0xcc, 0x6a, 0x9b, 0xf1, 0x6a, 0xaa, 0xb6, 0x19, 0x47, 0x26, 0xd6, 0x56, 0x2a, 0x4f, 0xaa, 0xae, + 0x19, 0x83, 0x36, 0x2b, 0x58, 0xb1, 0xae, 0x05, 0x52, 0x9d, 0xec, 0x19, 0xff, 0xf2, 0xac, 0x3d, + 0x33, 0x59, 0x6a, 0xab, 0xf4, 0x25, 0xbf, 0xb8, 0x9f, 0x6a, 0xa3, 0x49, 0xd6, 0xb2, 0x20, 0x51, + 0x9b, 0x0f, 0x56, 0xd0, 0x1a, 0x11, 0xf5, 0xf5, 0x81, 0x41, 0xb0, 0x06, 0x35, 0x7b, 0x06, 0xa1, + 0x20, 0x04, 0x19, 0x75, 0x46, 0x2b, 0xf3, 0xf0, 0x64, 0xe4, 0xdd, 0x7b, 0xba, 0x3b, 0x15, 0xbc, + 0x30, 0xd4, 0x8b, 0xbf, 0x28, 0x17, 0xec, 0xe9, 0x6e, 0x53, 0x18, 0x15, 0x43, 0xf4, 0x0b, 0xcc, + 0x47, 0x39, 0xd5, 0x5a, 0x21, 0x79, 0xe2, 0xca, 0x20, 0xbd, 0x7f, 0x4d, 0x50, 0x23, 0x0c, 0xd2, + 0x39, 0x82, 0x0c, 0x3d, 0x9d, 0x89, 0x0a, 0xce, 0x42, 0x8c, 0xd3, 0x32, 0xff, 0xbe, 0xaa, 0x70, + 0xbd, 0xa8, 0x89, 0x28, 0xf0, 0x49, 0x1d, 0xb6, 0x1d, 0x1d, 0x84, 0x52, 0xcc, 0x99, 0xce, 0x52, + 0xba, 0x88, 0x4f, 0x7f, 0x6a, 0x38, 0x08, 0xdc, 0x08, 0xc9, 0x22, 0xb4, 0x53, 0xf3, 0x8b, 0xe1, + 0x46, 0x35, 0x8e, 0xe1, 0x7b, 0x68, 0x5d, 0x93, 0xe4, 0x05, 0xb6, 0xa2, 0xa3, 0xb2, 0x73, 0x09, + 0x4f, 0x48, 0xf5, 0x7d, 0x05, 0x07, 0x88, 0xcf, 0x52, 0xe3, 0x64, 0xf0, 0xdd, 0xb8, 0x1c, 0xda, + 0x5b, 0xd3, 0x37, 0x34, 0x48, 0x23, 0x45, 0xb5, 0x5d, 0xc2, 0xcf, 0xa5, 0x7f, 0xc9, 0x01, 0x5a, + 0x85, 0x42, 0x9e, 0xd1, 0x39, 0x7e, 0xd6, 0x86, 0x73, 0x8d, 0x49, 0xbd, 0x0d, 0x79, 0x13, 0xd5, + 0x3a, 0x36, 0x8b, 0x68, 0xe3, 0xe7, 0xd3, 0xf6, 0x8c, 0xd2, 0x66, 0x0f, 0x5f, 0x4f, 0xa7, 0x0e, + 0xfb, 0x94, 0xd5, 0xed, 0xfd, 0x3d, 0xa2, 0xce, 0xd3, 0x93, 0x78, 0xfb, 0x78, 0x39, 0xb5, 0xd4, + 0xc3, 0x38, 0x1e, 0x79, 0xe4, 0xf1, 0x3d, 0x6c, 0x35, 0xeb, 0xa9, 0xe1, 0x36, 0x5b, 0x62, 0x9c, + 0x9c, 0xfb, 0x34, 0x31, 0x3f, 0x5d, 0x3a, 0x65, 0xb2, 0xda, 0x34, 0x49, 0x8a, 0xc7, 0x79, 0x58, + 0x96, 0xe3, 0x1f, 0xdd, 0x08, 0xb4, 0x56, 0x26, 0x8d, 0x8b, 0xe2, 0x7c, 0xb0, 0x7a, 0x0f, 0x11, + 0x86, 0xe6, 0x7b, 0xc7, 0xcf, 0x25, 0x25, 0x7c, 0x1b, 0xed, 0x18, 0x7b, 0x7f, 0xe7, 0xbb, 0xbb, + 0xd3, 0x97, 0x90, 0xf2, 0xf9, 0x0c, 0xa6, 0xa5, 0x8d, 0x32, 0xbc, 0x7d, 0xfe, 0xf8, 0x39, 0xde, + 0x43, 0x58, 0x92, 0xef, 0x1a, 0x3f, 0x4d, 0x21, 0xd2, 0x7a, 0x84, 0x65, 0x2a, 0xe2, 0x59, 0xab, + 0x24, 0xf7, 0x9b, 0x5c, 0x15, 0x9f, 0x14, 0xc7, 0xad, 0x5a, 0xc6, 0x35, 0x80, 0x71, 0xfe, 0xf8, + 0x69, 0xd1, 0x97, 0x4c, 0x43, 0x1e, 0x49, 0x36, 0x57, 0x2a, 0xa5, 0x89, 0x2b, 0x1b, 0xc9, 0x94, + 0x12, 0x2b, 0x21, 0x13, 0x53, 0xcb, 0xb4, 0xad, 0x59, 0x4f, 0x35, 0x89, 0xda, 0xd5, 0x32, 0xed, + 0x7b, 0xf7, 0xca, 0xed, 0x21, 0xef, 0x78, 0xbc, 0x5b, 0x7e, 0x9a, 0xfa, 0x3c, 0x68, 0xa4, 0xf6, + 0x7c, 0xe9, 0x0c, 0x5b, 0xcd, 0xd4, 0xd7, 0xc6, 0x70, 0xde, 0x02, 0xc5, 0x11, 0xc9, 0x13, 0x1b, + 0x4b, 0xed, 0x35, 0x91, 0x77, 0x9f, 0x86, 0x7a, 0xc2, 0x15, 0x05, 0x9d, 0x13, 0x56, 0x0d, 0x6d, + 0xc5, 0xb9, 0x7b, 0x20, 0x05, 0x71, 0x46, 0x9d, 0xe8, 0x89, 0x8f, 0xda, 0xa4, 0xfb, 0x7b, 0xd4, + 0x63, 0x3c, 0xe6, 0xd1, 0x93, 0x5a, 0x03, 0x46, 0x6a, 0x65, 0x36, 0x61, 0x2b, 0xf3, 0xf9, 0x30, + 0x0b, 0xf1, 0xc3, 0x8a, 0x32, 0xbd, 0x71, 0xf7, 0xe3, 0x50, 0xd0, 0xa6, 0x35, 0x4e, 0x35, 0x0a, + 0xc8, 0x8b, 0x6b, 0x44, 0x95, 0x51, 0x61, 0xd6, 0xf0, 0xee, 0x28, 0x58, 0x60, 0xc7, 0x26, 0x9b, + 0xca, 0x73, 0xb7, 0x28, 0xf8, 0x06, 0x40, 0x17, 0xb2, 0xee, 0xee, 0x0d, 0xe6, 0xfc, 0xe2, 0x70, + 0x50, 0x6b, 0x55, 0xb5, 0x29, 0xac, 0xea, 0xe3, 0x77, 0x89, 0x79, 0x56, 0xac, 0xd5, 0x43, 0x9b, + 0xf0, 0x89, 0xc2, 0x55, 0xc7, 0x63, 0xa2, 0xf6, 0x38, 0x79, 0x96, 0xd5, 0xe2, 0x9b, 0x7a, 0xe8, + 0x67, 0x38, 0x1e, 0x32, 0x03, 0x3d, 0xbf, 0x38, 0x1c, 0xd2, 0xc8, 0xa7, 0xf6, 0xf7, 0xe1, 0xc8, + 0x53, 0xe2, 0x5c, 0xcd, 0x76, 0x11, 0x3e, 0x26, 0xce, 0x1f, 0xb9, 0x31, 0xac, 0x3f, 0xed, 0x2a, + 0x1a, 0x7e, 0x71, 0x1a, 0xce, 0x21, 0x8d, 0x3c, 0xc1, 0xb8, 0xd5, 0xb1, 0x24, 0x7f, 0xb5, 0xc1, + 0x42, 0xf2, 0xe7, 0x73, 0x37, 0x74, 0x81, 0x2a, 0xbe, 0x19, 0xf9, 0xd9, 0xbb, 0x85, 0xf9, 0xf1, + 0xbb, 0xf0, 0xda, 0xc2, 0x42, 0xee, 0x4d, 0x3f, 0x37, 0x8f, 0xdc, 0xef, 0x7d, 0xde, 0xf6, 0x78, + 0x3f, 0xf5, 0x90, 0xa2, 0x0d, 0xe3, 0x33, 0xe2, 0x8f, 0xb9, 0x3f, 0x88, 0x77, 0x91, 0xb5, 0xd7, + 0x6f, 0x74, 0x41, 0x6e, 0x7c, 0x08, 0x7f, 0xcb, 0xe3, 0x7b, 0xb1, 0x17, 0x6a, 0xf2, 0xab, 0xe2, + 0xbb, 0x31, 0xb5, 0x9a, 0xfc, 0xf2, 0x78, 0x3d, 0xde, 0x57, 0xe0, 0xd5, 0xc8, 0x62, 0x9b, 0xf1, + 0xa9, 0x03, 0xaf, 0x08, 0x5e, 0xeb, 0x30, 0x44, 0x1b, 0xdf, 0x20, 0xb4, 0xc7, 0x5b, 0xbf, 0x21, + 0xc4, 0xdb, 0x90, 0x03, 0xd5, 0xa7, 0x59, 0xef, 0xf5, 0x60, 0x3a, 0x8f, 0xa4, 0x4e, 0xe8, 0x53, + 0x4e, 0xa9, 0x33, 0xfa, 0xa4, 0x53, 0x9e, 0xe2, 0x3a, 0x99, 0xcf, 0xbc, 0x31, 0xaa, 0x2d, 0xf6, + 0xe1, 0xfe, 0x34, 0x0f, 0xd6, 0xc4, 0x8d, 0x36, 0xc3, 0x6e, 0xc4, 0x8e, 0xb4, 0x73, 0xdf, 0x14, + 0x3a, 0xa7, 0x1c, 0x43, 0xf1, 0x8e, 0x2d, 0xbf, 0x3b, 0xa4, 0x9e, 0x23, 0xc0, 0x5e, 0xe6, 0xd1, + 0x79, 0x6f, 0xa2, 0xc5, 0xa8, 0xb5, 0x42, 0x11, 0xfa, 0x2e, 0xd4, 0x86, 0x25, 0x3d, 0x8f, 0x75, + 0xff, 0x7c, 0xf2, 0xa9, 0x6d, 0x0c, 0x1b, 0x0b, 0xc9, 0x67, 0xe8, 0xed, 0xf3, 0xe3, 0x9f, 0xdb, + 0x41, 0xe6, 0x8f, 0x77, 0xfb, 0xf7, 0xff, 0x99, 0xa7, 0x67, 0x73, 0x33, 0x6b, 0x7b, 0xbd, 0x98, + 0x4d, 0x1e, 0x9c, 0xf9, 0x25, 0x0f, 0x1e, 0x49, 0xc7, 0x50, 0xe6, 0x3f, 0xe0, 0x5d, 0x63, 0x7b, + 0x7c, 0x2c, 0xe5, 0x97, 0xf9, 0xa2, 0x3a, 0x3c, 0x77, 0xd9, 0x1d, 0x9a, 0xc5, 0x13, 0x76, 0x68, + 0x3e, 0x58, 0x31, 0x36, 0x3e, 0x2c, 0x79, 0x32, 0x98, 0xb0, 0x47, 0xf3, 0x58, 0xd8, 0x7b, 0xa9, + 0x3d, 0x9a, 0x57, 0xd6, 0x5d, 0xbc, 0x47, 0x73, 0x29, 0xbb, 0x13, 0xb4, 0x97, 0x44, 0x2b, 0x70, + 0x8c, 0x13, 0x68, 0x35, 0x65, 0x19, 0xc9, 0x53, 0x6e, 0x35, 0xad, 0xfd, 0x24, 0x6d, 0xd6, 0x13, + 0xe5, 0xdc, 0x1f, 0x3f, 0xc8, 0x2c, 0x07, 0xe0, 0xd8, 0x0a, 0xc9, 0xbe, 0x16, 0xed, 0x08, 0xc9, + 0x62, 0x06, 0xe4, 0x18, 0xc3, 0x45, 0x31, 0xf7, 0x4f, 0xb0, 0x25, 0x90, 0x47, 0xf6, 0x05, 0xe2, + 0x1b, 0xd8, 0xb8, 0xa5, 0x73, 0xef, 0x0a, 0xd3, 0x6c, 0x13, 0x2b, 0x01, 0x96, 0x49, 0x53, 0x31, + 0x12, 0x5f, 0x47, 0xeb, 0x65, 0x64, 0x2b, 0x28, 0xf8, 0xa9, 0xe9, 0xce, 0x54, 0x3d, 0xc9, 0xd2, + 0x40, 0x38, 0x2f, 0x7d, 0x45, 0x85, 0x77, 0xf1, 0xf7, 0xce, 0xf1, 0x49, 0xbb, 0x20, 0x21, 0xe6, + 0x43, 0x90, 0x95, 0x5e, 0x61, 0xea, 0xa5, 0x1a, 0xe3, 0xa5, 0xc7, 0xcb, 0x40, 0x96, 0x13, 0xc8, + 0x87, 0x37, 0xaf, 0x49, 0xda, 0xaf, 0x24, 0x3b, 0x36, 0x26, 0x13, 0xad, 0xae, 0x61, 0xfd, 0x2c, + 0x58, 0x17, 0x9c, 0xff, 0x0c, 0x05, 0x56, 0xc8, 0x31, 0x63, 0x89, 0xe9, 0x64, 0x26, 0xec, 0xe0, + 0x15, 0xe9, 0x39, 0x31, 0x0f, 0xe4, 0x7a, 0xf2, 0x73, 0x28, 0x51, 0x38, 0xe9, 0xd4, 0xf9, 0x45, + 0x30, 0xfa, 0xab, 0x80, 0x31, 0x5c, 0x05, 0x4c, 0xce, 0xc5, 0x30, 0x73, 0x05, 0xa4, 0x07, 0x06, + 0x9c, 0x15, 0xc9, 0x36, 0x2b, 0xf9, 0x70, 0xa4, 0xe7, 0x1c, 0xbc, 0x34, 0xbe, 0xbb, 0x10, 0x5b, + 0xac, 0xac, 0x7c, 0x4a, 0x7b, 0x46, 0xfa, 0x3a, 0x9d, 0x6f, 0x33, 0x8b, 0xd1, 0xb3, 0x18, 0xd5, + 0x84, 0x98, 0xbb, 0x59, 0x8c, 0x81, 0xc5, 0xa8, 0x27, 0xc4, 0x7c, 0x8f, 0xc5, 0xe4, 0xb0, 0x98, + 0x29, 0x13, 0x62, 0xee, 0x4a, 0x62, 0x82, 0x92, 0xac, 0xdd, 0x5f, 0xd8, 0x27, 0xe7, 0x91, 0x0a, + 0x25, 0x0f, 0x94, 0x3f, 0x91, 0xd3, 0x4f, 0x85, 0xaa, 0x31, 0xf4, 0x3e, 0x39, 0xed, 0x54, 0xe8, + 0x14, 0xf2, 0x6f, 0x29, 0x59, 0x78, 0xf0, 0x8c, 0x25, 0x6c, 0x29, 0x98, 0xbd, 0x26, 0x6d, 0xf2, + 0x8c, 0xae, 0x12, 0xfb, 0x61, 0x5b, 0x83, 0x41, 0x5a, 0x3d, 0x0a, 0x99, 0xa4, 0x95, 0x25, 0x9c, + 0xe1, 0x4b, 0xc5, 0x15, 0xd2, 0xba, 0x11, 0xc5, 0xb3, 0xa7, 0x19, 0x18, 0x6a, 0x46, 0xca, 0x30, + 0xc0, 0xf8, 0xd9, 0x22, 0xec, 0x41, 0xe7, 0x64, 0x3e, 0x95, 0xd9, 0xdb, 0x98, 0x25, 0xad, 0x20, + 0x22, 0x0e, 0x6a, 0x84, 0x9f, 0x7a, 0xa3, 0x9a, 0xb4, 0xf6, 0x15, 0x15, 0x3f, 0x7a, 0x81, 0xa7, + 0x93, 0xdb, 0x20, 0x6b, 0x48, 0x7c, 0xca, 0xf0, 0xe0, 0xdc, 0x45, 0x1c, 0x71, 0x99, 0x1c, 0xff, + 0x2a, 0x8b, 0x3f, 0x7a, 0x51, 0xfc, 0x2c, 0x39, 0x7e, 0x2f, 0x8b, 0x1f, 0xba, 0x98, 0xa3, 0x86, + 0x87, 0x31, 0x2c, 0x49, 0x7b, 0x82, 0x06, 0xa2, 0xd3, 0x0f, 0xcf, 0x48, 0xd1, 0x69, 0x2c, 0x67, + 0x4e, 0xd2, 0xa6, 0x95, 0x11, 0xb9, 0x86, 0xfc, 0x84, 0xce, 0x88, 0x58, 0x42, 0xab, 0x92, 0x93, + 0x28, 0x9f, 0xb4, 0x4e, 0xb9, 0x97, 0xa8, 0x11, 0xd3, 0x5b, 0x60, 0x90, 0x17, 0xc1, 0x3d, 0xc7, + 0xa8, 0x13, 0xcf, 0x46, 0x4a, 0x2e, 0x96, 0x2c, 0x9b, 0xec, 0xfe, 0x30, 0xfa, 0x22, 0x4c, 0x3e, + 0x2b, 0x26, 0xd9, 0x9d, 0x98, 0x40, 0x5b, 0x06, 0xc3, 0x9a, 0x4b, 0xd1, 0x96, 0x3f, 0xbf, 0x30, + 0x99, 0xb6, 0x30, 0xcb, 0x5f, 0x74, 0x5e, 0xa8, 0x15, 0x72, 0x90, 0x82, 0x98, 0xf8, 0x7c, 0xa5, + 0x8d, 0xac, 0x39, 0xf2, 0xb4, 0x1f, 0xc9, 0xbb, 0xdf, 0xe7, 0x6c, 0x13, 0xad, 0x39, 0x1a, 0x29, + 0x7e, 0x10, 0x4c, 0xab, 0x4c, 0x5b, 0x07, 0x81, 0xbf, 0xd1, 0xad, 0xb4, 0x85, 0x41, 0xcc, 0x72, + 0xff, 0x05, 0xe7, 0x57, 0xef, 0xcb, 0x67, 0x80, 0xbf, 0xa6, 0x85, 0xb3, 0x71, 0xb6, 0x40, 0x0c, + 0xf9, 0xbd, 0x33, 0x48, 0xb7, 0x1f, 0x57, 0xda, 0x64, 0x0f, 0x76, 0x69, 0x96, 0x19, 0x93, 0x3e, + 0x85, 0xe9, 0x04, 0x15, 0xad, 0xff, 0x37, 0xc3, 0xf6, 0x2a, 0xa4, 0x22, 0x22, 0xff, 0xab, 0x33, + 0x90, 0x13, 0xcc, 0xf1, 0xe1, 0x57, 0xa1, 0xac, 0x74, 0x0b, 0x3d, 0x64, 0x5b, 0xa4, 0xbe, 0xcf, + 0x24, 0x98, 0xb2, 0x82, 0x27, 0xd2, 0xec, 0x6c, 0x30, 0x4b, 0x26, 0x4a, 0x87, 0xef, 0x01, 0xb2, + 0x74, 0x64, 0x6c, 0x55, 0xda, 0xf8, 0x56, 0x65, 0x29, 0x9d, 0x0d, 0x53, 0x40, 0xff, 0x3d, 0x38, + 0xd7, 0xeb, 0xb7, 0xf5, 0x0e, 0xf5, 0x34, 0xa2, 0x0c, 0x50, 0xfe, 0x1e, 0x47, 0x6b, 0xf7, 0xba, + 0xf2, 0x4f, 0x76, 0x40, 0xba, 0xbd, 0x90, 0x57, 0x06, 0x95, 0x36, 0xa3, 0xe2, 0xd8, 0xa0, 0xb2, + 0x74, 0xae, 0x1b, 0xbf, 0xc4, 0x2f, 0x86, 0xba, 0x1b, 0x6c, 0xc8, 0x29, 0xa4, 0x3c, 0xd9, 0x15, + 0xa4, 0x7b, 0x36, 0x36, 0x2e, 0x49, 0xb7, 0xb8, 0x2b, 0xe0, 0x77, 0x76, 0x3b, 0xe4, 0x30, 0xea, + 0xe8, 0x40, 0xf9, 0x8c, 0xd1, 0x46, 0xc9, 0x9a, 0x87, 0xf7, 0xcf, 0x0e, 0xb2, 0x25, 0xc6, 0x5b, + 0xe5, 0x5d, 0x01, 0xa4, 0x5d, 0xb6, 0xaa, 0xf7, 0x61, 0x05, 0x5f, 0x9d, 0x66, 0x75, 0x64, 0x53, + 0xa8, 0x03, 0x7b, 0xb6, 0x35, 0x6c, 0x48, 0xa7, 0x26, 0xcc, 0x26, 0xcd, 0x72, 0x5f, 0x4f, 0x9b, + 0x2e, 0xdd, 0xfa, 0xc9, 0xc5, 0xd4, 0x4d, 0x7a, 0x0b, 0x99, 0x24, 0x1b, 0x28, 0xb2, 0xf5, 0x13, + 0xfd, 0xdc, 0xa5, 0xa0, 0x71, 0x7f, 0xa0, 0x74, 0xa4, 0x5b, 0xd2, 0x14, 0x35, 0x64, 0x29, 0x98, + 0xcd, 0xaf, 0xa9, 0xdc, 0xc9, 0x93, 0xfd, 0xfd, 0xd4, 0x56, 0x7c, 0xca, 0xdf, 0xc9, 0x81, 0xea, + 0x37, 0xbb, 0xa4, 0x13, 0x60, 0x31, 0x5a, 0x1f, 0xc7, 0xf2, 0x0f, 0xa5, 0x2c, 0xe3, 0xd0, 0xfa, + 0x2e, 0x6c, 0xe1, 0x5d, 0xe9, 0xde, 0x54, 0x58, 0x59, 0x1b, 0xc9, 0xf2, 0xf1, 0xc3, 0x37, 0x86, + 0xe3, 0x46, 0xdf, 0x44, 0xdf, 0x29, 0xc1, 0x12, 0xc9, 0xce, 0xfd, 0xa3, 0x77, 0x20, 0xa5, 0xdf, + 0x52, 0xdf, 0x17, 0xca, 0x9d, 0x4b, 0xe7, 0x94, 0x99, 0xad, 0xfb, 0x34, 0x8c, 0x28, 0x96, 0xac, + 0xd8, 0xa6, 0x85, 0x94, 0xd1, 0x7b, 0x9a, 0x85, 0x94, 0x36, 0xf6, 0x5e, 0x9e, 0xb2, 0x44, 0x43, + 0xef, 0xd6, 0x69, 0xea, 0xbb, 0xf0, 0x7d, 0xfb, 0x8d, 0x15, 0xf0, 0x88, 0xf0, 0x38, 0x3c, 0xc4, + 0x67, 0xd4, 0xc7, 0x30, 0x9f, 0xed, 0x3e, 0x81, 0x59, 0x05, 0x53, 0xc5, 0x16, 0xa5, 0x79, 0x78, + 0x5b, 0x8d, 0x25, 0x6f, 0x86, 0x4c, 0x1b, 0xf9, 0x29, 0xad, 0x4c, 0x78, 0x3e, 0x29, 0x80, 0x77, + 0x9e, 0xc4, 0x98, 0xad, 0x92, 0x17, 0x13, 0x3a, 0x23, 0x6d, 0x86, 0xbb, 0xbf, 0x07, 0xe5, 0x0e, + 0x70, 0x63, 0x4f, 0xd1, 0xb9, 0x6a, 0xbc, 0xd3, 0xde, 0x60, 0x21, 0xaf, 0x4c, 0xf9, 0x29, 0xc1, + 0x21, 0xc8, 0xb4, 0xb3, 0x94, 0x0d, 0x88, 0xbb, 0xa9, 0xb6, 0x78, 0x41, 0xa3, 0x82, 0xe9, 0x41, + 0xa3, 0x58, 0xc0, 0x74, 0xc6, 0x72, 0xfc, 0x0f, 0x92, 0x5d, 0xe5, 0x90, 0x96, 0xed, 0xe4, 0x6f, + 0x43, 0xdc, 0xd0, 0x93, 0x9d, 0xdd, 0x90, 0x5e, 0x7c, 0x6b, 0xc9, 0xc8, 0x05, 0x4f, 0xd5, 0xc8, + 0x05, 0xc0, 0x51, 0xba, 0x5d, 0x3c, 0xcb, 0x4f, 0x19, 0xde, 0xbc, 0x64, 0x64, 0xec, 0x13, 0xe4, + 0x6d, 0xa3, 0xc8, 0xaf, 0x6e, 0x36, 0xb5, 0xb1, 0x9d, 0x93, 0xc2, 0x94, 0x7d, 0x27, 0x3b, 0xca, + 0x32, 0x30, 0x20, 0x08, 0xa2, 0xe6, 0x97, 0xc3, 0xb7, 0x1d, 0xf4, 0xf6, 0x78, 0x04, 0xf7, 0x47, + 0x30, 0x20, 0x8f, 0xed, 0x20, 0xe6, 0xa1, 0xf6, 0x09, 0xa1, 0x53, 0x51, 0x6e, 0xc2, 0x57, 0xcf, + 0x61, 0x18, 0x28, 0xb2, 0xf5, 0x36, 0xc8, 0x93, 0xfd, 0x85, 0xe8, 0x1a, 0x40, 0xa1, 0x96, 0xce, + 0x0e, 0x1e, 0xeb, 0x76, 0x7e, 0x23, 0x47, 0xed, 0x1f, 0xd5, 0x2b, 0x20, 0x97, 0x7b, 0x84, 0x3b, + 0xcf, 0xfe, 0x1e, 0x61, 0x7f, 0xf8, 0x84, 0x61, 0x2f, 0x72, 0x2f, 0xa2, 0x94, 0x32, 0xab, 0x90, + 0x53, 0x0b, 0xf1, 0xbb, 0xc9, 0x6f, 0x76, 0x03, 0xf9, 0x9d, 0x76, 0xc3, 0x06, 0xb2, 0x76, 0x46, + 0xb6, 0x44, 0xd8, 0xa9, 0xf3, 0x6d, 0xb3, 0xc9, 0x9a, 0xe0, 0xfd, 0x4c, 0xab, 0x62, 0x3a, 0xec, + 0xc4, 0x52, 0x6d, 0xc1, 0xd0, 0x47, 0xa9, 0x06, 0x17, 0x69, 0x58, 0xec, 0x4c, 0x50, 0x2c, 0xfc, + 0x46, 0x73, 0x85, 0x6f, 0x30, 0xab, 0x4b, 0x7d, 0x85, 0x54, 0x9e, 0xce, 0x0d, 0x4f, 0x0b, 0x6a, + 0xf1, 0xfb, 0x3c, 0xb8, 0x99, 0x56, 0xc0, 0xdc, 0x67, 0x21, 0x07, 0x61, 0x6e, 0x8e, 0xd4, 0x3c, + 0x78, 0x84, 0xf9, 0xe6, 0x3e, 0x6a, 0x02, 0x5d, 0x1b, 0xc4, 0x80, 0x0f, 0x6e, 0x64, 0x92, 0xe7, + 0x7a, 0xbd, 0x1d, 0x6e, 0xc6, 0xaf, 0x56, 0x85, 0xe8, 0x3c, 0xf2, 0x3a, 0x9c, 0x71, 0x06, 0x45, + 0x49, 0xab, 0x30, 0x13, 0x76, 0xa6, 0x72, 0xc4, 0x19, 0xe3, 0x92, 0x39, 0x82, 0x74, 0x5e, 0x63, + 0x46, 0x1a, 0xec, 0x25, 0x6b, 0x84, 0x7c, 0x9f, 0xc1, 0x37, 0x80, 0x14, 0x8b, 0x74, 0x86, 0xa6, + 0xd9, 0x35, 0x28, 0x33, 0xc4, 0x3a, 0x01, 0x1e, 0xa2, 0xaf, 0x18, 0x4d, 0x92, 0xe9, 0x51, 0x8a, + 0x12, 0x61, 0xad, 0x6f, 0x9e, 0x4c, 0x89, 0x28, 0x95, 0x57, 0x30, 0x15, 0x4c, 0xc1, 0x06, 0x06, + 0xc2, 0x1e, 0x71, 0x79, 0xb2, 0x95, 0xb0, 0xa6, 0x13, 0x5a, 0xa9, 0xf4, 0x92, 0x25, 0x36, 0xcb, + 0x3a, 0x91, 0x5f, 0x52, 0xde, 0x34, 0xbf, 0x1c, 0x77, 0xf3, 0x95, 0x29, 0x7b, 0x5a, 0x16, 0xc9, + 0xa7, 0x49, 0xec, 0xf0, 0x93, 0x60, 0x0b, 0xfa, 0xc4, 0x56, 0x2c, 0x49, 0x01, 0xe2, 0x31, 0xe2, + 0xae, 0xae, 0x03, 0x2b, 0x90, 0x17, 0x34, 0xd2, 0x69, 0x65, 0x56, 0x53, 0x8d, 0x3d, 0xd3, 0xff, + 0x20, 0x72, 0xf6, 0x4e, 0xbe, 0x22, 0x65, 0x29, 0x03, 0xe9, 0x8c, 0x91, 0xcd, 0x80, 0x85, 0xfe, + 0xad, 0xec, 0x1e, 0x24, 0x5d, 0x59, 0x31, 0xb3, 0x6a, 0x64, 0xa4, 0xae, 0x82, 0xd9, 0xf5, 0x58, + 0x32, 0xf2, 0xc5, 0x56, 0x1a, 0x6f, 0xa9, 0x3c, 0xc9, 0x02, 0x47, 0x70, 0xfb, 0x84, 0x71, 0xf4, + 0x9c, 0x08, 0x63, 0x5b, 0xc9, 0x0e, 0xf9, 0xf8, 0xb0, 0xbc, 0xd7, 0x1c, 0x23, 0x5e, 0x43, 0xb2, + 0xa7, 0xfb, 0x49, 0x31, 0x8c, 0x7c, 0x7c, 0x0e, 0xaf, 0xd3, 0x78, 0x9d, 0x85, 0x91, 0x0b, 0xfb, + 0x60, 0x64, 0x3c, 0xf3, 0x7f, 0xd0, 0x6e, 0x6e, 0x34, 0xb2, 0x72, 0xd5, 0xea, 0xc6, 0x96, 0x35, + 0xab, 0xd3, 0x2c, 0xe7, 0x3a, 0x27, 0x5a, 0xce, 0x9d, 0x0c, 0x22, 0xd9, 0xce, 0x3d, 0x77, 0x0a, + 0x46, 0x67, 0x9e, 0xef, 0x9e, 0xa7, 0xfc, 0x3a, 0x3e, 0x1f, 0xc3, 0xeb, 0x49, 0x2c, 0xb1, 0x2a, + 0x69, 0x76, 0x34, 0x0b, 0x43, 0x4a, 0x25, 0xdb, 0xb9, 0x9f, 0x3c, 0xf6, 0xd9, 0x47, 0x6f, 0xfe, + 0xf6, 0xa2, 0x54, 0x26, 0xf8, 0x2d, 0xbc, 0xa8, 0x18, 0xf4, 0xcc, 0x37, 0xb6, 0xaf, 0xe4, 0x1b, + 0x3b, 0x3b, 0x9a, 0xc0, 0x53, 0x39, 0xb7, 0x91, 0x0f, 0xae, 0x6c, 0x69, 0x6b, 0x6a, 0xe4, 0xa3, + 0x9d, 0x7c, 0xa4, 0x69, 0xd5, 0x4a, 0xe6, 0x31, 0x22, 0xda, 0x34, 0xe7, 0x16, 0x2d, 0xb0, 0xef, + 0x22, 0x4d, 0x6b, 0x3a, 0xd7, 0x46, 0x30, 0xa9, 0x3a, 0xcf, 0x9d, 0x95, 0xd5, 0xb7, 0xd6, 0x7a, + 0xa5, 0x24, 0x9a, 0x22, 0x91, 0xce, 0x88, 0x54, 0x4b, 0x7e, 0x6e, 0xa3, 0x8d, 0xff, 0x76, 0xa4, + 0x25, 0x1a, 0x6d, 0xea, 0xe0, 0x1b, 0x57, 0x46, 0x57, 0xf2, 0xdf, 0x5e, 0xb9, 0x86, 0x6f, 0xeb, + 0x5c, 0x13, 0x4d, 0x99, 0x4b, 0x25, 0x5b, 0xa8, 0xe7, 0xd3, 0x7c, 0x1f, 0xfe, 0xe5, 0x64, 0xea, + 0x39, 0xce, 0xa7, 0xd9, 0x48, 0x9d, 0x73, 0x65, 0x7b, 0xa8, 0x1f, 0x1f, 0xb8, 0xb2, 0x3d, 0xd4, + 0x73, 0xcd, 0x57, 0x6b, 0x0f, 0xf5, 0x5c, 0xf8, 0xcb, 0xed, 0xa1, 0x7e, 0x7c, 0xf8, 0x6f, 0xb6, + 0x87, 0xaa, 0xf8, 0x32, 0x7b, 0xa8, 0xe7, 0x76, 0x5e, 0xde, 0x1e, 0xea, 0xb9, 0xfe, 0xc9, 0xf6, + 0x50, 0x3f, 0x3e, 0x7e, 0x25, 0x7b, 0xa8, 0xe7, 0xd6, 0x4f, 0xb6, 0x87, 0x7a, 0xae, 0xf7, 0x62, + 0x7b, 0xa8, 0xe7, 0x76, 0xfc, 0x1d, 0xf6, 0x50, 0x2f, 0xe9, 0xa3, 0x4f, 0xf6, 0x27, 0xd1, 0x35, + 0xe1, 0x6d, 0x9d, 0xd4, 0xea, 0x12, 0x97, 0x65, 0xb2, 0x42, 0xe5, 0xe2, 0x33, 0xe0, 0xab, 0x38, + 0x03, 0x3b, 0x45, 0x5d, 0xba, 0x45, 0x3e, 0xd9, 0xe7, 0xf2, 0x87, 0x58, 0xf3, 0xd3, 0x12, 0xe7, + 0x93, 0xf4, 0xd1, 0x8d, 0x39, 0x91, 0x7f, 0xe0, 0x88, 0x72, 0x77, 0xac, 0xc9, 0x44, 0x56, 0xf0, + 0x8e, 0xc6, 0x8e, 0xc6, 0x8c, 0xdf, 0xd2, 0x98, 0x99, 0x0e, 0x40, 0x96, 0xaf, 0x05, 0x96, 0x07, + 0x75, 0x18, 0x9e, 0x13, 0x68, 0x01, 0x13, 0x79, 0x16, 0x26, 0xdf, 0x3b, 0x29, 0xcf, 0xe0, 0x2c, + 0x0d, 0xe4, 0xc5, 0x6b, 0x91, 0xf7, 0x26, 0x5f, 0x88, 0xb2, 0x9f, 0xc0, 0x2a, 0x63, 0x0b, 0x9c, + 0x0a, 0x73, 0x46, 0x0b, 0x07, 0xef, 0x0c, 0xa4, 0x38, 0x17, 0x86, 0x25, 0xff, 0x3c, 0x51, 0xf6, + 0xf4, 0x75, 0x42, 0x6e, 0xa8, 0x94, 0x59, 0x8f, 0x5c, 0x24, 0xcd, 0xc4, 0xd4, 0x86, 0xe2, 0x2c, + 0x6c, 0xaf, 0x22, 0xd2, 0xfe, 0x5d, 0xa5, 0x93, 0x3c, 0x7b, 0xdd, 0x1a, 0x3b, 0xc9, 0x6c, 0x2f, + 0x11, 0x84, 0xac, 0x95, 0x31, 0x3a, 0x7d, 0x37, 0xf5, 0x04, 0x59, 0x8e, 0xa7, 0xb7, 0xcc, 0xc7, + 0x70, 0x36, 0xa7, 0xb9, 0xa2, 0x17, 0xe7, 0xdd, 0xca, 0x44, 0xa8, 0xee, 0x58, 0x18, 0xf4, 0x56, + 0xf0, 0x93, 0xcd, 0x20, 0xf2, 0x22, 0x3d, 0x88, 0xff, 0xa8, 0xfc, 0x8b, 0x5c, 0x38, 0xca, 0x5a, + 0xa1, 0x2e, 0x01, 0x97, 0xb5, 0x7b, 0x26, 0xad, 0x0b, 0x2f, 0x0b, 0x0c, 0x42, 0x69, 0xf2, 0xdb, + 0xe1, 0x99, 0x2e, 0xf8, 0x66, 0x42, 0xdf, 0x7c, 0xbc, 0xcb, 0xd4, 0x0a, 0x2e, 0xe6, 0x9b, 0x4a, + 0x3f, 0xc1, 0x66, 0x7b, 0x35, 0xb3, 0xce, 0x7f, 0x56, 0xb6, 0x76, 0xaf, 0xa7, 0x7e, 0x44, 0xca, + 0xb8, 0x22, 0xc5, 0x43, 0x5b, 0x64, 0x9b, 0x02, 0x64, 0x2d, 0x96, 0x2c, 0xfe, 0x8d, 0xfb, 0xeb, + 0xfb, 0x1c, 0x36, 0x66, 0xff, 0x33, 0x0b, 0x39, 0x80, 0xcf, 0x1b, 0x82, 0x92, 0x25, 0x50, 0x85, + 0xa2, 0xc1, 0x4a, 0x16, 0x40, 0xc9, 0x57, 0x54, 0x83, 0x8e, 0x6c, 0x82, 0x22, 0x07, 0xd3, 0x4a, + 0x16, 0x35, 0x74, 0x92, 0xc5, 0xc3, 0x11, 0xc9, 0x72, 0xbd, 0x72, 0x39, 0x49, 0x65, 0x92, 0xed, + 0x7a, 0xce, 0x85, 0xb2, 0x9c, 0x0b, 0xb4, 0xf8, 0xf5, 0x49, 0xb2, 0x19, 0x8a, 0xb1, 0xc5, 0x38, + 0xf3, 0x6e, 0xc3, 0x67, 0x94, 0xe4, 0x38, 0x1b, 0xf9, 0x47, 0xc3, 0x30, 0x13, 0xf9, 0x8c, 0xd0, + 0xb9, 0x62, 0x24, 0xfd, 0x3d, 0xd7, 0xe0, 0xc0, 0xd0, 0x99, 0x18, 0x3b, 0xc2, 0xbe, 0xbd, 0x16, + 0xbf, 0xbd, 0x1b, 0xef, 0x06, 0xe4, 0x6f, 0xc6, 0x30, 0xe5, 0x83, 0xf8, 0x9c, 0x1d, 0x92, 0xe0, + 0x69, 0x0f, 0xe1, 0xb4, 0x58, 0x8f, 0x4f, 0xa4, 0x25, 0xbf, 0xbc, 0x41, 0x8f, 0x4f, 0xaa, 0x50, + 0x23, 0xfe, 0x62, 0x39, 0x14, 0x2f, 0x8a, 0xf8, 0x7d, 0x8c, 0xf2, 0xae, 0xc3, 0x3b, 0xe6, 0xad, + 0x20, 0x8b, 0x23, 0x3a, 0xde, 0x06, 0x8e, 0x21, 0x6c, 0x47, 0xe4, 0x66, 0x92, 0xfd, 0x90, 0x79, + 0x84, 0xf1, 0x99, 0xa3, 0x99, 0xfb, 0x50, 0xd6, 0x08, 0x08, 0x36, 0xe6, 0x27, 0x64, 0xdc, 0x88, + 0x90, 0xbb, 0x25, 0xc8, 0x3c, 0x82, 0x64, 0xf6, 0x97, 0x46, 0xaf, 0xc5, 0x54, 0xe0, 0x0d, 0x9c, + 0x6d, 0x1d, 0x4f, 0x9d, 0x61, 0x71, 0x90, 0x4a, 0xe5, 0x7a, 0x17, 0xb3, 0xca, 0x2f, 0xa6, 0xf2, + 0xe0, 0x4e, 0xa6, 0xbe, 0x9c, 0x71, 0x1a, 0xbf, 0x7c, 0x34, 0xd1, 0x63, 0x63, 0x47, 0xdc, 0x67, + 0xc0, 0x95, 0x9a, 0x4b, 0xe3, 0xda, 0x64, 0xcc, 0xd3, 0x64, 0xad, 0x9e, 0xfc, 0xc8, 0xcd, 0x23, + 0x8d, 0x15, 0xb2, 0xe0, 0x7f, 0x5f, 0x22, 0x0f, 0xed, 0x7a, 0xc4, 0x23, 0x2b, 0x2c, 0x0b, 0x66, + 0xb2, 0xbd, 0x4d, 0xb2, 0xd0, 0x58, 0x43, 0x74, 0x43, 0x67, 0x25, 0xfc, 0x40, 0x0e, 0x25, 0x30, + 0x11, 0xe3, 0xc8, 0xdf, 0x84, 0xc3, 0x4d, 0x3e, 0xc0, 0x3c, 0xbb, 0x80, 0xf7, 0xc1, 0xf2, 0x61, + 0x0f, 0x20, 0xde, 0x2c, 0xc3, 0x34, 0x8b, 0x53, 0xf5, 0xe3, 0x4a, 0x53, 0xa5, 0xbc, 0xe6, 0x0e, + 0xaa, 0x85, 0xb4, 0xc2, 0xca, 0xf5, 0xa7, 0xea, 0xc9, 0xe5, 0x50, 0xbb, 0x60, 0xcd, 0x4c, 0x21, + 0x0d, 0xe3, 0x8e, 0x3c, 0x92, 0x5f, 0x04, 0xa9, 0x54, 0xe9, 0x2d, 0x29, 0xe3, 0xe7, 0x16, 0xfc, + 0xde, 0x93, 0x82, 0x90, 0x57, 0x5b, 0xd9, 0xdb, 0x34, 0x0d, 0xc3, 0x54, 0xe0, 0x1c, 0xd7, 0x93, + 0xaf, 0x6a, 0x6a, 0x33, 0x33, 0x1b, 0x09, 0xdf, 0xc4, 0x16, 0xda, 0x9a, 0xf4, 0x13, 0x31, 0x90, + 0xd6, 0x3a, 0xaa, 0x64, 0xe8, 0x4e, 0xda, 0xc7, 0x42, 0x59, 0x1d, 0xc7, 0xc7, 0x6d, 0xc3, 0x75, + 0x80, 0xad, 0xb1, 0x22, 0xa8, 0x7e, 0x66, 0x0c, 0xa6, 0x89, 0x2a, 0x4c, 0xa1, 0x1e, 0x4b, 0x6c, + 0xe1, 0x0f, 0x10, 0xc7, 0x14, 0xa9, 0x99, 0xe3, 0x06, 0x4d, 0x56, 0x29, 0x28, 0xf0, 0xae, 0xa7, + 0x13, 0x3c, 0x44, 0x43, 0x5e, 0x7e, 0x1e, 0x7f, 0x75, 0xfc, 0xd4, 0xa3, 0xf7, 0x20, 0x35, 0xb9, + 0xe7, 0xbd, 0xde, 0x39, 0x4c, 0x77, 0x96, 0x7c, 0x92, 0x23, 0x05, 0xc9, 0xbb, 0x86, 0xc6, 0xd9, + 0xd7, 0xc4, 0x5c, 0x4a, 0x3d, 0xa4, 0x0a, 0x2b, 0x69, 0x54, 0x93, 0xcf, 0x30, 0x51, 0x33, 0xaf, + 0x0b, 0xf3, 0xdf, 0x09, 0x3c, 0xc3, 0x8e, 0x75, 0x89, 0xb6, 0x5b, 0xa5, 0xb9, 0x9e, 0x74, 0x21, + 0x66, 0x8b, 0x8d, 0x13, 0xca, 0xa3, 0x29, 0x84, 0xdf, 0xb1, 0x12, 0x19, 0xb0, 0x44, 0xa9, 0x36, + 0xc0, 0xd6, 0xb3, 0x45, 0xb4, 0x27, 0x07, 0xbc, 0x3d, 0x0e, 0xc1, 0xae, 0x49, 0xec, 0x3f, 0xd4, + 0xf7, 0x15, 0xdc, 0x1b, 0xe1, 0xc8, 0xbf, 0xf8, 0x49, 0x4d, 0xe4, 0xbb, 0xcc, 0xcf, 0xb8, 0x4c, + 0x41, 0xe4, 0x9e, 0xc8, 0x11, 0xd5, 0xd7, 0x33, 0x6f, 0x05, 0xd1, 0x64, 0x0b, 0x6a, 0x5f, 0x25, + 0x3a, 0x42, 0xfe, 0xb1, 0x6b, 0xfa, 0x1c, 0xb2, 0xe5, 0x48, 0xc9, 0xd2, 0x0b, 0xb3, 0xbb, 0xe1, + 0x32, 0x23, 0xbd, 0x4d, 0x5f, 0xdf, 0x35, 0x01, 0x62, 0xdb, 0xab, 0x73, 0xbd, 0xf0, 0x86, 0x30, + 0x08, 0xaf, 0xe3, 0xf3, 0xeb, 0xf8, 0xfc, 0xea, 0x4c, 0xf2, 0xf0, 0x7a, 0x04, 0x71, 0xfe, 0x28, + 0x3e, 0xcd, 0x80, 0x97, 0x50, 0xba, 0x62, 0x5e, 0xc4, 0x3f, 0xce, 0x81, 0x17, 0x26, 0x7a, 0xe5, + 0x74, 0xb8, 0xe6, 0x7a, 0x39, 0x98, 0x60, 0xe5, 0xb4, 0x6c, 0xc2, 0x9b, 0xc0, 0xb7, 0x42, 0x59, + 0xba, 0xd7, 0x52, 0x0c, 0x23, 0x7d, 0x55, 0x61, 0x52, 0x58, 0x49, 0x38, 0x3e, 0x34, 0xc8, 0xa5, + 0x79, 0xab, 0x8c, 0x4d, 0x89, 0x19, 0xfc, 0xfb, 0xbf, 0x20, 0x6c, 0x1d, 0x84, 0x32, 0xa4, 0xea, + 0x83, 0x20, 0x84, 0x74, 0xf8, 0x5b, 0x84, 0x72, 0xc9, 0x20, 0x94, 0xa4, 0x41, 0x72, 0x0c, 0xb2, + 0x4b, 0xf2, 0xb5, 0xf9, 0xf1, 0x3c, 0xa4, 0xe1, 0xad, 0x50, 0x74, 0x39, 0x6f, 0x9b, 0x31, 0x15, + 0x83, 0xf6, 0x27, 0xa1, 0x01, 0xa1, 0x4b, 0xbe, 0x04, 0x9a, 0x47, 0xe8, 0x33, 0xb0, 0x07, 0xdb, + 0xe6, 0x00, 0xb6, 0xd3, 0x3e, 0x7c, 0xde, 0x87, 0xcf, 0x7b, 0x64, 0x0f, 0x47, 0xf5, 0xe9, 0x6d, + 0x82, 0xa3, 0xe8, 0x49, 0x94, 0x97, 0x4f, 0xe1, 0x35, 0x34, 0xd1, 0x9b, 0xf8, 0xc7, 0x45, 0x92, + 0x37, 0xf1, 0xf3, 0x25, 0x92, 0x37, 0xf1, 0x9a, 0x33, 0x9c, 0x76, 0x11, 0xd9, 0x35, 0xd3, 0x58, + 0x7c, 0x51, 0x58, 0x32, 0xf2, 0xf9, 0x59, 0x4b, 0x29, 0x61, 0x83, 0xb5, 0x94, 0x46, 0x89, 0x8d, + 0x7e, 0x8f, 0x15, 0x94, 0xd2, 0x88, 0x35, 0xfb, 0x90, 0x0a, 0x9b, 0x65, 0xa9, 0x62, 0x27, 0x8e, + 0xee, 0x07, 0x99, 0xe7, 0x11, 0x8f, 0xbf, 0x3f, 0xe1, 0x81, 0x84, 0xdd, 0x2b, 0xfd, 0xfd, 0x6c, + 0xf6, 0x97, 0x7d, 0x99, 0x91, 0x87, 0x39, 0x5a, 0x3d, 0x64, 0xfc, 0xc1, 0xad, 0x84, 0x53, 0x53, + 0xd5, 0x35, 0x7d, 0x0c, 0x72, 0x31, 0xed, 0xe7, 0xa5, 0x46, 0xfd, 0xc4, 0xb9, 0x03, 0xa5, 0x87, + 0x72, 0xf2, 0x50, 0x94, 0x3e, 0xf3, 0xb0, 0xd4, 0x08, 0xf3, 0xb3, 0x11, 0xf3, 0xa7, 0x21, 0x54, + 0x3d, 0xd6, 0x6d, 0xc5, 0xa5, 0xb0, 0x2e, 0xd0, 0x53, 0x7f, 0x5f, 0x58, 0x35, 0xd4, 0x13, 0x04, + 0x9c, 0x63, 0x96, 0x90, 0xae, 0x1f, 0xbc, 0x14, 0xe5, 0xcc, 0x8a, 0xb7, 0x1f, 0x47, 0x0e, 0xbd, + 0x4c, 0x8f, 0x12, 0xf1, 0xdb, 0x83, 0x38, 0x93, 0xb3, 0xd5, 0x94, 0x58, 0xda, 0x0a, 0x01, 0xc6, + 0x16, 0x49, 0xde, 0xea, 0xe8, 0x29, 0xac, 0x98, 0x23, 0xf9, 0xfc, 0x28, 0x9a, 0x23, 0xf9, 0x50, + 0x36, 0x19, 0xf1, 0x39, 0x09, 0xed, 0xe4, 0x15, 0xb1, 0x4d, 0x24, 0x57, 0xa3, 0x1c, 0x7d, 0x50, + 0x96, 0xa7, 0xf5, 0x4c, 0x9e, 0xb6, 0x83, 0x2d, 0x5d, 0xa2, 0xe6, 0x95, 0xc3, 0x9b, 0x83, 0x79, + 0x28, 0x9d, 0x69, 0x69, 0x9d, 0xf2, 0x0b, 0x4b, 0x0d, 0xf9, 0x02, 0xd4, 0x19, 0x2b, 0xd2, 0x24, + 0x95, 0x34, 0x19, 0x61, 0xfc, 0x3e, 0x2b, 0x04, 0x8f, 0x1f, 0xee, 0x09, 0xed, 0x23, 0x0c, 0x4a, + 0x79, 0x19, 0xb4, 0xfa, 0x58, 0xcf, 0xbc, 0x4a, 0x7e, 0x5f, 0xce, 0x8b, 0x36, 0xd6, 0x27, 0xac, + 0x67, 0x8e, 0x60, 0xcf, 0xb4, 0x27, 0x7b, 0xe6, 0x0c, 0x8e, 0xf5, 0xe5, 0x64, 0xeb, 0x93, 0xe8, + 0xef, 0x67, 0xb3, 0x52, 0xe3, 0x9b, 0xa8, 0x26, 0xd2, 0xa0, 0x65, 0x4c, 0x5e, 0x64, 0x5e, 0x35, + 0x45, 0x03, 0xa3, 0x7b, 0x48, 0xa9, 0xa9, 0xf7, 0x24, 0xaa, 0x0a, 0x3b, 0x12, 0xbd, 0x48, 0x7d, + 0x13, 0xdc, 0x98, 0xa2, 0x98, 0x29, 0xbe, 0x00, 0x5b, 0x7d, 0xd9, 0x4c, 0xf2, 0x12, 0x5b, 0x2f, + 0x20, 0x5d, 0xa1, 0x3e, 0xa0, 0xb9, 0x5f, 0xe2, 0x16, 0xb2, 0xf2, 0x39, 0x2d, 0x51, 0x75, 0xe2, + 0x2f, 0x9e, 0x1a, 0x0e, 0x6a, 0x13, 0x73, 0x57, 0x7d, 0x5f, 0x82, 0x46, 0x7e, 0xda, 0x61, 0x41, + 0x6e, 0x00, 0xe5, 0x2b, 0xbd, 0xb1, 0x2d, 0x9d, 0x17, 0xb0, 0xd4, 0xf9, 0xb6, 0x21, 0x2f, 0x90, + 0x80, 0x5a, 0x8e, 0x10, 0xda, 0x14, 0x9e, 0x24, 0x70, 0x2d, 0xd5, 0xc7, 0xf5, 0xdf, 0xff, 0xf7, + 0x8f, 0xa0, 0x10, 0x7b, 0x58, 0x65, 0x5a, 0x42, 0xbd, 0x9a, 0xe6, 0xe7, 0xf0, 0x2b, 0xf5, 0x22, + 0x72, 0x1c, 0x35, 0x09, 0x4f, 0xd4, 0x59, 0xf3, 0x60, 0x96, 0x86, 0xc3, 0x76, 0xb4, 0xca, 0x56, + 0xc6, 0x67, 0x84, 0x0c, 0x0d, 0xe4, 0x01, 0x70, 0x7a, 0x30, 0x47, 0xd4, 0xaa, 0x5d, 0xf1, 0x0f, + 0x99, 0x6f, 0x6a, 0xf2, 0xdc, 0x32, 0x15, 0x5b, 0xf7, 0x0e, 0x3a, 0xd1, 0xa0, 0xe0, 0xe2, 0xe3, + 0xd7, 0xba, 0x61, 0x96, 0xfb, 0x43, 0x38, 0x38, 0xc9, 0xa7, 0xf4, 0x05, 0x46, 0xf7, 0x8e, 0x23, + 0xb4, 0x42, 0xb6, 0xbd, 0xce, 0x3c, 0x6e, 0x7f, 0x91, 0x2b, 0x7b, 0xdc, 0x56, 0x93, 0x05, 0x77, + 0x46, 0xd1, 0x0c, 0xb2, 0x25, 0xf7, 0x9c, 0x70, 0x06, 0x62, 0x54, 0x9e, 0x6c, 0x99, 0x9d, 0x97, + 0x2c, 0x89, 0x23, 0xad, 0x24, 0x7f, 0x3e, 0xaf, 0x93, 0x5e, 0x2a, 0x8b, 0xb9, 0x06, 0x2c, 0xf6, + 0x4e, 0x28, 0x06, 0x9b, 0xf0, 0x24, 0x62, 0x1d, 0x79, 0xdb, 0x16, 0xc8, 0x62, 0x3b, 0xd2, 0x0c, + 0xc3, 0x24, 0x8c, 0x3e, 0x18, 0xe6, 0x68, 0x15, 0xd5, 0x34, 0x9b, 0xf9, 0xdd, 0xb6, 0x31, 0xae, + 0xca, 0x68, 0xb2, 0x4b, 0x1c, 0x24, 0x8e, 0xb1, 0x56, 0xd6, 0x9a, 0x23, 0x88, 0x8f, 0xb7, 0x87, + 0xef, 0xb8, 0xa4, 0xed, 0x67, 0x0f, 0xce, 0x3c, 0xcb, 0xc2, 0x4a, 0x6c, 0x43, 0x9b, 0xbe, 0x14, + 0x66, 0xe0, 0xdd, 0x71, 0x0d, 0x79, 0x52, 0x28, 0xc4, 0x37, 0x0a, 0x2d, 0xbe, 0x46, 0x00, 0x7f, + 0xf9, 0x69, 0xa0, 0xf9, 0xcb, 0x2b, 0x0c, 0x80, 0x07, 0x9f, 0x3d, 0xf8, 0xec, 0x3a, 0xde, 0x73, + 0xbc, 0x67, 0x6e, 0xaf, 0xc5, 0x4c, 0x3a, 0xd2, 0xb4, 0xd7, 0xe1, 0x91, 0x66, 0x81, 0xfb, 0x98, + 0xed, 0xcb, 0x4e, 0x78, 0x58, 0x68, 0xe5, 0xd4, 0xb4, 0xd6, 0xfc, 0xf1, 0x9a, 0x64, 0x69, 0x33, + 0x2d, 0xe9, 0xb4, 0x37, 0x83, 0xa8, 0xde, 0x79, 0x6b, 0x4d, 0xdf, 0x5c, 0x0f, 0x54, 0x22, 0xcd, + 0xfa, 0xed, 0x5b, 0x1c, 0x7c, 0x4e, 0xf7, 0xa3, 0x00, 0x63, 0x78, 0x7f, 0xf3, 0x1c, 0xc0, 0xf9, + 0xc5, 0x1f, 0xc1, 0x66, 0xcb, 0x12, 0x41, 0x49, 0x6b, 0x93, 0x36, 0xd2, 0xac, 0x3f, 0x69, 0x19, + 0x26, 0xfb, 0xed, 0x21, 0x45, 0x40, 0x19, 0xe8, 0x61, 0x34, 0xe0, 0x5d, 0x1f, 0xf1, 0x85, 0x0f, + 0x61, 0x79, 0xd5, 0xe9, 0xfa, 0x9c, 0x69, 0x39, 0x29, 0x29, 0xa7, 0xbf, 0x0c, 0xd7, 0xf4, 0x51, + 0xeb, 0x2d, 0x2a, 0x8b, 0x28, 0x26, 0xac, 0x45, 0x9e, 0xa6, 0xd0, 0x6c, 0x98, 0xb4, 0x42, 0x79, + 0x16, 0xe9, 0xff, 0xe9, 0x89, 0x9e, 0xaf, 0xa5, 0x39, 0xe0, 0x2f, 0xc8, 0x05, 0x49, 0xb4, 0x74, + 0x7c, 0x9b, 0xb0, 0x0b, 0xcc, 0x58, 0x9a, 0x1f, 0x87, 0x34, 0xec, 0x6c, 0xd4, 0x83, 0x69, 0x94, + 0xe9, 0x14, 0xb3, 0x6a, 0x7d, 0xb2, 0xbe, 0xaf, 0x08, 0x31, 0x8f, 0xce, 0x04, 0x55, 0x7d, 0x04, + 0xa6, 0x25, 0x4c, 0xd3, 0x98, 0x8f, 0x58, 0xcc, 0xf2, 0xaa, 0xfd, 0x21, 0x5f, 0x33, 0x1b, 0xcd, + 0x07, 0xb0, 0x97, 0x37, 0x5b, 0xe9, 0x5c, 0x42, 0x97, 0xa7, 0xd2, 0x01, 0xb0, 0x0d, 0x47, 0xae, + 0xc8, 0xce, 0xe4, 0x3e, 0xf8, 0x7f, 0xec, 0xf0, 0x13, 0x8c, 0xdd, 0x49, 0x14, 0x48, 0xc6, 0xa6, + 0x42, 0xbb, 0x07, 0x8a, 0xc3, 0xd7, 0xda, 0x99, 0xcd, 0x44, 0x20, 0x84, 0xf0, 0x44, 0x14, 0x76, + 0x37, 0x54, 0x93, 0x06, 0x28, 0x86, 0x4a, 0x5c, 0xd9, 0x5d, 0x44, 0x57, 0x83, 0x6a, 0x0c, 0x63, + 0xf4, 0x14, 0xc3, 0xbd, 0x12, 0x54, 0x78, 0x19, 0xd9, 0x1e, 0x40, 0xde, 0x44, 0x8b, 0x6f, 0xa2, + 0xfc, 0x4d, 0x23, 0xa6, 0x44, 0x32, 0x70, 0xb3, 0xbd, 0xeb, 0xbb, 0xf1, 0xf8, 0x38, 0xb4, 0xd9, + 0x97, 0x40, 0x98, 0xf8, 0x17, 0x84, 0x89, 0xf1, 0xd5, 0x8c, 0x5a, 0x87, 0x19, 0xc6, 0x64, 0x22, + 0xfd, 0x0b, 0x47, 0x00, 0xb1, 0x96, 0xc2, 0x4e, 0x04, 0x36, 0xd7, 0xf7, 0x2c, 0x7e, 0x3f, 0xfe, + 0x69, 0x58, 0xcf, 0xe8, 0xb1, 0x29, 0x5d, 0x23, 0x4f, 0xc2, 0x4e, 0xd9, 0x1e, 0x5c, 0x54, 0x96, + 0x83, 0x11, 0x33, 0x0b, 0xed, 0x90, 0x4b, 0xf3, 0xf3, 0x3a, 0xc8, 0xa6, 0xb5, 0x4c, 0x88, 0x70, + 0x7f, 0xfe, 0x59, 0xda, 0x0e, 0x2d, 0xce, 0x95, 0x0b, 0x12, 0x7e, 0x64, 0x4b, 0x1c, 0x8a, 0x77, + 0xbd, 0xc3, 0x63, 0xfc, 0xef, 0x04, 0x97, 0xd7, 0x75, 0xda, 0x4b, 0x3c, 0x0a, 0x72, 0x54, 0x3c, + 0xc5, 0x3c, 0x33, 0xa6, 0x3c, 0xbd, 0xcd, 0x75, 0x08, 0x7f, 0xe7, 0x08, 0x38, 0xea, 0x31, 0x24, + 0x35, 0xea, 0x25, 0x49, 0x58, 0x3e, 0x0d, 0xd6, 0x9c, 0x16, 0x63, 0x66, 0x72, 0xa2, 0x02, 0xc7, + 0x88, 0x06, 0x65, 0x4f, 0x7b, 0xe2, 0x5c, 0x62, 0x3c, 0x88, 0x34, 0x48, 0x00, 0x8d, 0x69, 0xb6, + 0x78, 0x84, 0x2c, 0x7d, 0x27, 0xac, 0x9d, 0x61, 0x49, 0x8d, 0xbe, 0x41, 0x2e, 0x33, 0xb8, 0x5c, + 0x5a, 0x09, 0x9b, 0x88, 0x25, 0x5c, 0x66, 0xa8, 0x38, 0x0c, 0x4e, 0x78, 0xbb, 0xca, 0xd1, 0x05, + 0x9a, 0x22, 0xee, 0x9d, 0x25, 0x3e, 0x77, 0x9b, 0xda, 0x59, 0xaa, 0x9f, 0x43, 0xd6, 0x48, 0x7f, + 0xe5, 0xae, 0xed, 0x65, 0xfb, 0xe7, 0xef, 0xf2, 0xad, 0x5c, 0xe6, 0x4b, 0xc3, 0x0b, 0xba, 0x35, + 0x10, 0x88, 0xb1, 0x7d, 0x25, 0x08, 0x1e, 0xa1, 0x54, 0x43, 0xd6, 0x70, 0x5c, 0xe4, 0x23, 0x90, + 0x75, 0x43, 0x11, 0xbc, 0xb5, 0x84, 0x6c, 0x17, 0xc6, 0xe3, 0xbf, 0xea, 0x66, 0xd0, 0xcf, 0xbc, + 0xed, 0x75, 0x3a, 0x72, 0xe0, 0x17, 0xae, 0x5a, 0xc1, 0x27, 0x04, 0x4f, 0x90, 0x35, 0x51, 0xc9, + 0x0a, 0xb8, 0x5d, 0xc1, 0x64, 0x4b, 0xbd, 0xd1, 0x55, 0x78, 0x4d, 0x5d, 0x8c, 0x8f, 0x45, 0x34, + 0x02, 0x9c, 0xd4, 0x68, 0x14, 0xb4, 0x27, 0x89, 0xdf, 0xc7, 0x4e, 0xf9, 0x6a, 0xb9, 0xe0, 0x87, + 0xa6, 0xd9, 0xcc, 0x77, 0xfc, 0x6b, 0xa4, 0x37, 0x6d, 0x6b, 0xc7, 0x7a, 0xb5, 0x83, 0x2e, 0xbf, + 0x15, 0xce, 0xc6, 0x4f, 0xdf, 0xd0, 0x15, 0xff, 0xb7, 0xf8, 0xa7, 0xec, 0xf7, 0xaf, 0xec, 0xf7, + 0x3c, 0xfe, 0x8e, 0xc6, 0x3f, 0x43, 0x8c, 0x53, 0x79, 0xdb, 0xe3, 0xe7, 0x09, 0x6f, 0xc7, 0xc7, + 0xbf, 0xe1, 0x8a, 0x9f, 0x75, 0x58, 0x39, 0x4d, 0x16, 0x28, 0x90, 0x66, 0xdc, 0xe0, 0x8e, 0x7f, + 0x58, 0x0a, 0x1b, 0x67, 0x7c, 0xd8, 0x71, 0xc2, 0x75, 0xd2, 0x8f, 0xf4, 0xfd, 0x74, 0x7e, 0x75, + 0x7c, 0x8c, 0xed, 0x25, 0xb2, 0x11, 0xe5, 0xeb, 0xa0, 0x79, 0xdb, 0x51, 0xda, 0xda, 0xf5, 0x7f, + 0x86, 0x6b, 0x9e, 0x75, 0x9f, 0x8d, 0x9f, 0xcb, 0xf7, 0xc6, 0xcf, 0x99, 0xa6, 0xff, 0x63, 0xcf, + 0xe2, 0x91, 0x78, 0x8d, 0x55, 0xa7, 0xbe, 0x2b, 0x1e, 0x1f, 0x03, 0xa3, 0x1f, 0x79, 0xed, 0xa3, + 0xfc, 0xfc, 0xf8, 0x18, 0xca, 0x27, 0xa7, 0x83, 0x99, 0x22, 0xff, 0xeb, 0xe1, 0x55, 0xc0, 0xbd, + 0x5a, 0x17, 0xa3, 0x1d, 0x6f, 0x0a, 0xe7, 0x5d, 0xba, 0x1a, 0xcf, 0x3d, 0xc1, 0xd3, 0xa2, 0xfa, + 0xa2, 0x30, 0xd5, 0xaf, 0x87, 0x1b, 0xce, 0x0c, 0xfd, 0x3c, 0x7e, 0xae, 0x11, 0xb8, 0x47, 0xed, + 0x8a, 0xfc, 0xaa, 0xf8, 0x6b, 0xfe, 0x07, 0xea, 0xfb, 0x8c, 0xed, 0xf1, 0xd7, 0x74, 0x10, 0x1f, + 0xc7, 0x31, 0xf4, 0x34, 0xf6, 0xe3, 0x03, 0xa5, 0x2e, 0xfa, 0xbd, 0xc1, 0x15, 0x7f, 0x87, 0xee, + 0xd9, 0xd4, 0xb7, 0x0f, 0xe4, 0xb0, 0xdf, 0x2c, 0xfc, 0xcd, 0x77, 0xc7, 0x4f, 0xb1, 0xd8, 0x8f, + 0x92, 0x35, 0x4f, 0xb4, 0x02, 0xb5, 0xc8, 0x78, 0xfc, 0x33, 0x47, 0x26, 0xc6, 0x7e, 0x7e, 0x43, + 0x7b, 0xfc, 0x9d, 0xf8, 0x17, 0x37, 0x94, 0xc7, 0x47, 0x6e, 0xf0, 0xc4, 0x47, 0x69, 0xff, 0x2e, + 0xd1, 0x32, 0x17, 0x4e, 0x19, 0xe7, 0xc7, 0x4f, 0xbd, 0x5d, 0x25, 0x2c, 0x9e, 0x35, 0x3f, 0xfe, + 0x51, 0xcf, 0x62, 0x3a, 0x55, 0x40, 0x65, 0xd8, 0x4d, 0x5e, 0x85, 0x3f, 0x71, 0x64, 0x1e, 0x20, + 0xaf, 0x14, 0x67, 0xb2, 0xe6, 0xc7, 0xdf, 0xd9, 0x3d, 0x3f, 0xfe, 0x21, 0x3e, 0xbf, 0xa1, 0x53, + 0x91, 0xb4, 0x0a, 0xaf, 0xfa, 0x94, 0x9d, 0x00, 0x47, 0xf5, 0xec, 0x04, 0x03, 0xb3, 0x35, 0x57, + 0x3f, 0xd4, 0xdb, 0x8e, 0xa5, 0xae, 0x55, 0xe2, 0xac, 0xbc, 0x1f, 0xeb, 0x30, 0x8a, 0x50, 0xbb, + 0x75, 0x4a, 0xb2, 0xdd, 0x04, 0x83, 0xfb, 0x7f, 0x1e, 0x1f, 0x23, 0x6d, 0xc4, 0x59, 0x4a, 0xef, + 0xf7, 0xbc, 0xbf, 0xe7, 0xa7, 0x44, 0xa6, 0xbe, 0x33, 0x60, 0x6b, 0x8f, 0x9f, 0xfe, 0xef, 0x61, + 0xde, 0x2f, 0x78, 0xb0, 0x26, 0xde, 0xf8, 0x29, 0xa9, 0x0d, 0xf8, 0xf6, 0xf8, 0x29, 0xfd, 0x70, + 0xc0, 0x23, 0xb7, 0x85, 0x07, 0x19, 0xc1, 0xb7, 0x08, 0xa3, 0x2f, 0xbc, 0xc6, 0xea, 0xbd, 0xff, + 0xc2, 0x51, 0xa7, 0xea, 0xed, 0x2a, 0x85, 0x0b, 0xe2, 0x3d, 0x2e, 0xe4, 0xd7, 0xe7, 0x63, 0xbf, + 0x76, 0x29, 0xb8, 0x6f, 0xb8, 0xe3, 0x6f, 0x11, 0x3c, 0xa6, 0x71, 0x42, 0x9c, 0xb5, 0x1e, 0x72, + 0x66, 0x39, 0xe1, 0xad, 0x2a, 0xa7, 0x3b, 0x02, 0xce, 0xa9, 0xbf, 0xd8, 0x6c, 0x44, 0x0c, 0x7c, + 0xf9, 0xd0, 0xdb, 0xde, 0xe2, 0x05, 0x5e, 0xf8, 0xb5, 0xab, 0xd6, 0xeb, 0xd4, 0x04, 0x4f, 0x38, + 0xe7, 0xb3, 0x2f, 0x4e, 0x60, 0x4d, 0xb5, 0x61, 0xee, 0xa3, 0x81, 0xee, 0x41, 0x38, 0x57, 0xf3, + 0x2c, 0xe2, 0x2e, 0xd6, 0x24, 0xcc, 0xbd, 0x33, 0x50, 0x1b, 0xc3, 0x5e, 0x3d, 0x17, 0x84, 0x71, + 0xf2, 0xb3, 0xa1, 0x08, 0xe7, 0x92, 0xe6, 0x40, 0x7c, 0x48, 0x5a, 0xd5, 0x60, 0xa7, 0xec, 0xe8, + 0x74, 0x63, 0x21, 0xce, 0x48, 0xa4, 0xb3, 0x7d, 0xda, 0x2c, 0xe1, 0x4d, 0x1b, 0xe1, 0x4d, 0x11, + 0xe2, 0xcd, 0xab, 0xbd, 0x02, 0xac, 0xe7, 0x10, 0x3f, 0xda, 0x50, 0xe2, 0x3b, 0x1d, 0xd4, 0x1a, + 0xbd, 0xa2, 0x7e, 0x6f, 0xef, 0xaa, 0x59, 0x75, 0xbd, 0xac, 0xf7, 0xcf, 0x8b, 0x1f, 0xd6, 0xdd, + 0xa3, 0xfb, 0x26, 0xe1, 0xc1, 0xde, 0x7b, 0x1a, 0xce, 0xbb, 0xdf, 0x53, 0xb9, 0x9e, 0x7a, 0xb6, + 0x49, 0xcb, 0xac, 0x6e, 0xa3, 0xcc, 0xcf, 0xd5, 0x99, 0xae, 0x51, 0xf4, 0xdc, 0x8a, 0xff, 0x8c, + 0xf3, 0x40, 0xa5, 0xe8, 0xa6, 0x27, 0xab, 0xdb, 0xa8, 0x38, 0xd6, 0x63, 0x9b, 0xde, 0x73, 0xb7, + 0xfb, 0x3d, 0x9c, 0x41, 0x39, 0xc5, 0xdd, 0xe4, 0xcd, 0xef, 0xad, 0xfb, 0xf7, 0xab, 0x11, 0xe7, + 0xc0, 0xca, 0x29, 0xee, 0xa2, 0x65, 0x57, 0x1d, 0xfb, 0xc5, 0x96, 0xff, 0x30, 0x57, 0xad, 0xa0, + 0x1d, 0x99, 0xb8, 0xb9, 0xc2, 0xaa, 0xb2, 0x4d, 0xfb, 0xe0, 0xe7, 0x2f, 0xde, 0x15, 0xd2, 0x60, + 0x3e, 0x25, 0xb4, 0x96, 0x6e, 0x9b, 0xfe, 0x9b, 0x9e, 0x25, 0xef, 0x41, 0x4e, 0x81, 0x05, 0xf4, + 0x36, 0xfd, 0x6f, 0xbe, 0xa7, 0xf8, 0x1e, 0xe5, 0xf0, 0xdb, 0x9e, 0xfa, 0xde, 0x7f, 0x3f, 0x1c, + 0x3c, 0x83, 0xe9, 0x3b, 0x0a, 0xe6, 0x81, 0x45, 0x0a, 0x7d, 0xe3, 0x7b, 0xb6, 0x79, 0x60, 0x53, + 0xdc, 0x4d, 0xcf, 0xf7, 0xdf, 0xbd, 0xe7, 0x7b, 0x98, 0xf6, 0xfd, 0x8a, 0x6e, 0xcc, 0x1a, 0x04, + 0xb7, 0xd7, 0x5d, 0xd2, 0xca, 0x69, 0xfe, 0xfd, 0x99, 0xe0, 0x46, 0xd3, 0x3c, 0x70, 0x48, 0x25, + 0x3e, 0xde, 0x83, 0x65, 0x2e, 0x94, 0xca, 0xbc, 0xb9, 0x1b, 0xd3, 0x2a, 0x36, 0x4e, 0xeb, 0x9a, + 0xfa, 0xc1, 0xcf, 0x16, 0x7f, 0x9a, 0x03, 0xe5, 0xef, 0x29, 0x8a, 0x45, 0x97, 0x51, 0x2f, 0xc5, + 0x16, 0x58, 0x14, 0x20, 0xe5, 0x61, 0xe3, 0x7e, 0x7b, 0xf7, 0x6f, 0x7a, 0x8e, 0x75, 0xf7, 0x7c, + 0xaf, 0xbe, 0xb7, 0x80, 0x13, 0x16, 0x7b, 0x17, 0xbf, 0xb5, 0x2c, 0xfb, 0x7b, 0xd2, 0xd3, 0x75, + 0x8b, 0x81, 0x2b, 0xe0, 0xde, 0xea, 0xc3, 0xbb, 0xe2, 0x3a, 0x37, 0x28, 0xeb, 0xef, 0xfd, 0xc5, + 0xe1, 0xe0, 0x01, 0x5f, 0x4f, 0x30, 0xf3, 0x5e, 0xec, 0x1f, 0x51, 0x1b, 0x46, 0x89, 0x2e, 0x7c, + 0x03, 0xf6, 0xd0, 0xf5, 0x05, 0x56, 0x38, 0x97, 0x6b, 0x83, 0x7a, 0xec, 0xc3, 0x0c, 0x93, 0xea, + 0x9d, 0x41, 0xa3, 0xa2, 0xb6, 0x7b, 0x37, 0x96, 0x77, 0x7c, 0x23, 0xeb, 0xbf, 0x84, 0x17, 0x45, + 0xa0, 0x53, 0x52, 0x48, 0x07, 0xb3, 0xcd, 0x96, 0xf8, 0x98, 0x68, 0x49, 0x94, 0x86, 0xe7, 0x4e, + 0xf6, 0x5a, 0xb8, 0xd7, 0xba, 0x63, 0x9b, 0xd7, 0xcf, 0x7e, 0xef, 0xf1, 0xd8, 0xa6, 0xca, 0x98, + 0x82, 0x71, 0xf2, 0xb1, 0x6e, 0x7e, 0xb8, 0x56, 0x30, 0x73, 0x48, 0xb5, 0x8e, 0x57, 0xbf, 0x09, + 0x79, 0x94, 0x46, 0x19, 0x59, 0x00, 0xb5, 0x20, 0x0e, 0xd8, 0x2c, 0x36, 0x38, 0x8b, 0x72, 0xc6, + 0x69, 0x67, 0x29, 0xf6, 0xfe, 0x6a, 0xea, 0x7d, 0x27, 0xf6, 0xbe, 0xe0, 0x42, 0x0e, 0xbe, 0xfe, + 0x99, 0xb1, 0xd1, 0xe1, 0xa3, 0xee, 0x53, 0x5e, 0x69, 0x5d, 0xcb, 0x08, 0xb5, 0xdd, 0x82, 0x4b, + 0xd4, 0x98, 0xc6, 0x28, 0xd5, 0x80, 0x8b, 0x7c, 0x36, 0xee, 0xee, 0xe9, 0x38, 0x27, 0x28, 0x96, + 0x8c, 0xc4, 0x69, 0xed, 0xe7, 0x08, 0xad, 0x8d, 0xe1, 0x68, 0xd1, 0x98, 0x0e, 0x58, 0x11, 0x42, + 0x54, 0x9b, 0x0e, 0x10, 0xe4, 0xdc, 0x2e, 0xcf, 0x3d, 0x9e, 0x7b, 0x40, 0x85, 0x73, 0x8b, 0xc2, + 0x61, 0xe3, 0x34, 0xde, 0x61, 0x3a, 0xab, 0x0b, 0x31, 0xea, 0x67, 0xa3, 0xf2, 0xed, 0x7b, 0x62, + 0xdd, 0x58, 0x5f, 0xcc, 0x6d, 0xeb, 0xa6, 0x58, 0xb7, 0x11, 0x4e, 0xde, 0x23, 0xd5, 0x46, 0x11, + 0xa3, 0xdf, 0xb9, 0x28, 0xb3, 0xd3, 0xee, 0xe4, 0x2f, 0x62, 0x28, 0x75, 0xe9, 0xd7, 0xa9, 0x84, + 0x1d, 0x81, 0x72, 0x5d, 0x39, 0xe8, 0x82, 0x9f, 0x1a, 0x3d, 0xb4, 0x62, 0x52, 0x52, 0x0a, 0x31, + 0x9c, 0x01, 0xae, 0x37, 0xab, 0x4f, 0xde, 0xab, 0xd8, 0xc4, 0xbe, 0x63, 0xfd, 0xcc, 0x3f, 0x3b, + 0xa7, 0x92, 0x1b, 0xfb, 0xcd, 0xa6, 0x5f, 0x75, 0xd7, 0x56, 0x04, 0xdf, 0x32, 0xc3, 0xc9, 0x7b, + 0xe7, 0x96, 0x83, 0x03, 0x53, 0x2a, 0xa4, 0x56, 0xc2, 0x7b, 0x31, 0xa6, 0x5c, 0xea, 0x5d, 0xcf, + 0x65, 0x7a, 0x5b, 0x41, 0xe3, 0x7f, 0x50, 0xbd, 0x99, 0xe6, 0x92, 0x8a, 0x33, 0x2a, 0x57, 0x40, + 0x51, 0xd3, 0xb7, 0x07, 0x4b, 0xd3, 0x04, 0x71, 0xa7, 0xb0, 0x95, 0x59, 0x05, 0xb2, 0xd9, 0x7d, + 0x60, 0xa9, 0x7e, 0xb3, 0xb4, 0x0b, 0x39, 0xd7, 0x1e, 0x59, 0x4f, 0x46, 0x6f, 0xb0, 0xc3, 0x0c, + 0x1c, 0x37, 0x63, 0x7a, 0x0b, 0x07, 0x3e, 0x45, 0x48, 0x4d, 0xfe, 0xd2, 0x44, 0x95, 0x02, 0xe2, + 0x17, 0xae, 0x71, 0x71, 0xb0, 0xc7, 0xca, 0x4d, 0x0b, 0xe9, 0x91, 0x4e, 0x65, 0x31, 0x2f, 0xec, + 0xc6, 0x99, 0x02, 0x37, 0xad, 0xa6, 0x4f, 0xd2, 0x73, 0x21, 0xdf, 0xd8, 0x58, 0x63, 0x3b, 0x4c, + 0xc3, 0x79, 0x70, 0x4c, 0x3f, 0x8f, 0xc3, 0x9c, 0x91, 0xa3, 0xc5, 0xaf, 0x12, 0xef, 0xb4, 0x02, + 0x4e, 0xef, 0x3c, 0xe5, 0xae, 0x11, 0xe1, 0xf3, 0x93, 0xd8, 0xeb, 0xc5, 0x26, 0xc9, 0xff, 0x8f, + 0x25, 0xdb, 0x0e, 0x5f, 0x2f, 0xb6, 0x43, 0x01, 0x72, 0xd8, 0x63, 0x3e, 0x3b, 0xdc, 0x18, 0x34, + 0x50, 0x19, 0x68, 0x0e, 0xa4, 0x9c, 0xa1, 0x95, 0xf4, 0x53, 0xc5, 0x2c, 0x0a, 0xc3, 0x74, 0x47, + 0x29, 0x4c, 0xd1, 0x8a, 0xfc, 0x43, 0x11, 0xad, 0x53, 0x9e, 0xf4, 0x0a, 0x82, 0x41, 0xb9, 0xc7, + 0x15, 0xda, 0xd8, 0xa4, 0x25, 0xca, 0x76, 0x1b, 0xca, 0x82, 0xd2, 0x5a, 0xa5, 0x64, 0x01, 0x94, + 0x69, 0xeb, 0xcc, 0xaa, 0xe9, 0xab, 0x1a, 0x89, 0xdf, 0x2e, 0x16, 0x32, 0x09, 0xc3, 0x4e, 0x5a, + 0x9e, 0xfe, 0x6d, 0xf4, 0xb5, 0x13, 0x4e, 0x56, 0x61, 0xeb, 0xb8, 0x1b, 0xb5, 0x6c, 0xbd, 0x53, + 0x75, 0xab, 0x4b, 0x54, 0xef, 0x71, 0xaf, 0x52, 0xd7, 0x91, 0x9c, 0x58, 0xc4, 0x28, 0xa5, 0x56, + 0xca, 0x65, 0x48, 0x08, 0x1e, 0x64, 0x2b, 0xc9, 0x4e, 0xf6, 0xf5, 0xfe, 0xcf, 0x76, 0xa0, 0x74, + 0xe3, 0x09, 0x6a, 0xd8, 0xf3, 0x58, 0x7d, 0x9f, 0x80, 0x3c, 0x48, 0x5e, 0x5e, 0xd2, 0xa7, 0x16, + 0x9d, 0xc2, 0xd4, 0x21, 0xe7, 0x55, 0x87, 0x52, 0x3e, 0x72, 0xa9, 0x21, 0x0d, 0xf1, 0x7a, 0x38, + 0x4e, 0xb7, 0x22, 0x0f, 0x71, 0x5a, 0x9a, 0xd1, 0xd2, 0x76, 0xd0, 0x89, 0x62, 0x31, 0x0e, 0x31, + 0x4d, 0xd3, 0x0b, 0xdf, 0x5b, 0xbb, 0x2e, 0xc5, 0x47, 0xda, 0x2e, 0xe2, 0x23, 0x29, 0x4d, 0xb6, + 0x66, 0x4c, 0xbc, 0xa4, 0x45, 0xfa, 0xf2, 0xe2, 0xd4, 0x6d, 0x69, 0xa9, 0x23, 0xd7, 0xa4, 0x21, + 0x5d, 0x5c, 0x4e, 0x2d, 0xb8, 0x24, 0xdf, 0x23, 0x29, 0x6f, 0xe6, 0x58, 0xea, 0xdb, 0x83, 0xbe, + 0x05, 0xb4, 0x52, 0x74, 0xbb, 0xa9, 0x05, 0xfb, 0xcf, 0xca, 0x91, 0x17, 0x42, 0x0e, 0xd6, 0xcf, + 0x74, 0x23, 0x66, 0x58, 0xa0, 0x26, 0xa4, 0xd1, 0x73, 0xc8, 0x0c, 0x7c, 0x57, 0x24, 0x6e, 0xe0, + 0x73, 0x82, 0x99, 0xe9, 0x22, 0x0f, 0xc7, 0x59, 0x16, 0xf0, 0xb3, 0xd5, 0x08, 0xc3, 0x30, 0xf2, + 0x15, 0x3c, 0x86, 0x53, 0x5f, 0x11, 0x86, 0x24, 0xd6, 0xbc, 0x7d, 0x2d, 0x70, 0x7b, 0xc8, 0x28, + 0xe0, 0x6f, 0x02, 0x33, 0xa4, 0x94, 0xaf, 0x75, 0x53, 0x7f, 0xc7, 0x3f, 0xe7, 0x9b, 0xa5, 0x6f, + 0x18, 0x1f, 0xc7, 0x27, 0x6c, 0xe4, 0x17, 0x21, 0x2f, 0xe7, 0xb3, 0x42, 0x4d, 0xd0, 0xc9, 0xd6, + 0x89, 0x6b, 0x68, 0x07, 0x03, 0x7b, 0x75, 0x97, 0x7c, 0xaf, 0x64, 0x7b, 0x1b, 0xe5, 0x21, 0x83, + 0x5d, 0x3a, 0x1b, 0x65, 0x40, 0x2e, 0x4b, 0x5f, 0xfd, 0xa6, 0x0a, 0x65, 0xd1, 0x4f, 0x37, 0xd0, + 0x9d, 0xd1, 0x18, 0x5a, 0xf5, 0xa6, 0x14, 0x4d, 0x88, 0x6d, 0xb3, 0x1d, 0xa5, 0x0f, 0xfd, 0xab, + 0x44, 0x1b, 0x1c, 0xa5, 0xbf, 0x2c, 0x2b, 0x2c, 0x75, 0x81, 0x4f, 0x19, 0x54, 0x08, 0xc2, 0x66, + 0x57, 0x42, 0x9e, 0xc5, 0x74, 0x37, 0x12, 0xd7, 0x68, 0xc1, 0xda, 0xbf, 0x37, 0x91, 0x73, 0x3c, + 0xbf, 0xa0, 0x0b, 0x07, 0xc7, 0x23, 0xf4, 0x44, 0xfc, 0x89, 0xa3, 0xf4, 0x41, 0xfc, 0x9a, 0x52, + 0xfa, 0x01, 0x2c, 0x70, 0x49, 0xe1, 0x0b, 0x68, 0xb5, 0xe4, 0x61, 0xe9, 0x29, 0xa6, 0x80, 0x87, + 0xe4, 0x27, 0x3d, 0x6c, 0xa7, 0x27, 0xde, 0x0a, 0xa7, 0x99, 0x44, 0x49, 0xa1, 0xc8, 0x57, 0x26, + 0xef, 0x64, 0xb5, 0xf7, 0x74, 0xa2, 0x5c, 0x53, 0x8e, 0xb2, 0xb5, 0xf6, 0xfd, 0x7f, 0x2d, 0x88, + 0x70, 0x3c, 0x67, 0xc2, 0x72, 0xfc, 0x69, 0x80, 0x38, 0x5a, 0xb2, 0x51, 0x0b, 0x33, 0xfe, 0xf4, + 0xb3, 0x58, 0x77, 0x4a, 0x46, 0x93, 0xd2, 0x77, 0x81, 0x9c, 0x16, 0xe5, 0xfe, 0x10, 0xca, 0x10, + 0xf8, 0xcd, 0x54, 0x08, 0x65, 0x4d, 0xe0, 0x5b, 0x79, 0xe6, 0x95, 0x20, 0x7b, 0x42, 0x18, 0x79, + 0xdc, 0xfd, 0x5c, 0xaf, 0xf7, 0x0c, 0x87, 0x14, 0xd1, 0xaf, 0xe9, 0x49, 0x43, 0x23, 0x2f, 0xa5, + 0x3f, 0x47, 0xb2, 0x1e, 0xb5, 0x7e, 0x68, 0x16, 0xca, 0xe9, 0x72, 0xdb, 0x8f, 0x3b, 0x18, 0x2f, + 0xab, 0x47, 0x3a, 0xa2, 0x23, 0x1a, 0x20, 0xc2, 0x85, 0xe1, 0x24, 0x2d, 0xa0, 0x5d, 0x09, 0x96, + 0xda, 0xed, 0x38, 0x16, 0x99, 0xbc, 0x48, 0x67, 0x3f, 0x99, 0x75, 0x5f, 0x79, 0x4d, 0x77, 0x5b, + 0x82, 0xce, 0x24, 0xc7, 0xf8, 0x6a, 0x1a, 0xe3, 0x4c, 0x97, 0xa9, 0x84, 0x6a, 0x5d, 0x35, 0x72, + 0x7e, 0xd8, 0xbf, 0x4d, 0x2a, 0x15, 0xf5, 0xae, 0x06, 0xe1, 0x82, 0x66, 0x76, 0x2e, 0x78, 0xff, + 0x68, 0x0d, 0x83, 0x73, 0xb2, 0xd6, 0xd9, 0xc6, 0x56, 0x66, 0xbe, 0x21, 0xb5, 0xd4, 0x28, 0xad, + 0x50, 0xe4, 0xa4, 0x62, 0x31, 0x95, 0x0d, 0xfe, 0x6d, 0xd2, 0x0e, 0x13, 0xc6, 0xe6, 0xa4, 0x7f, + 0x47, 0x90, 0xd1, 0x95, 0x55, 0x23, 0xa3, 0x1e, 0x31, 0xab, 0x56, 0x11, 0x72, 0xa6, 0xa5, 0xb3, + 0x0d, 0xa5, 0x38, 0x96, 0x33, 0xcb, 0xf5, 0x64, 0xda, 0x57, 0x28, 0x4b, 0x0a, 0x28, 0xf9, 0xd7, + 0xf4, 0x85, 0x39, 0x89, 0x5b, 0xce, 0x43, 0x89, 0x14, 0x65, 0x28, 0x3b, 0xd9, 0x52, 0xd0, 0xdb, + 0xe1, 0x3a, 0xbb, 0xfc, 0x2b, 0x9f, 0xe5, 0x25, 0x3d, 0x2c, 0x03, 0x6b, 0x01, 0x47, 0xa2, 0x05, + 0x90, 0xca, 0x5e, 0x8b, 0x23, 0x4a, 0x2b, 0xf3, 0x68, 0xf9, 0xe0, 0x27, 0x2b, 0x03, 0x0e, 0x9c, + 0xb3, 0xf1, 0x4d, 0x31, 0xd4, 0x1b, 0x52, 0x09, 0x38, 0x87, 0xce, 0x5c, 0x0d, 0x7e, 0x4e, 0x8b, + 0x73, 0x96, 0x62, 0x91, 0x8b, 0xd3, 0x48, 0xad, 0x36, 0x76, 0x87, 0x1d, 0xb9, 0xa2, 0xe1, 0x1e, + 0x3b, 0x9c, 0xd4, 0x86, 0xbf, 0x3b, 0xdc, 0x23, 0xd1, 0xa1, 0x38, 0xd1, 0x6f, 0xd2, 0xa1, 0xd8, + 0x7f, 0x81, 0x72, 0x33, 0x21, 0xbf, 0xa2, 0xa6, 0x14, 0x44, 0x27, 0xa6, 0xbd, 0x82, 0xad, 0xd3, + 0x50, 0x2f, 0x19, 0x50, 0xd6, 0x62, 0x1e, 0x24, 0x70, 0x4c, 0x1c, 0x67, 0xe7, 0x13, 0x26, 0x85, + 0x9e, 0x2f, 0xa2, 0xf9, 0x58, 0x47, 0x9a, 0x39, 0x34, 0x02, 0x2e, 0x53, 0xa3, 0x11, 0x9f, 0x54, + 0xa3, 0xf4, 0x5e, 0xbe, 0x8d, 0xf5, 0x32, 0xcd, 0x01, 0x35, 0xa7, 0xb1, 0xcc, 0x03, 0x70, 0x4e, + 0x68, 0xe6, 0xd8, 0x98, 0x2b, 0xa5, 0x39, 0xd9, 0x84, 0xb5, 0xb6, 0x5c, 0x54, 0x63, 0xb6, 0xc2, + 0xcd, 0xe9, 0x90, 0x0f, 0xfd, 0x50, 0xaa, 0xdd, 0x68, 0x8c, 0x64, 0x01, 0xbb, 0x56, 0x5e, 0x29, + 0x76, 0x31, 0xbb, 0x72, 0xb4, 0x5f, 0xf3, 0x13, 0x9c, 0x65, 0xf3, 0xa1, 0x30, 0xb0, 0xe9, 0xcf, + 0x4b, 0xa8, 0xcf, 0x04, 0xd5, 0x06, 0x6e, 0xc9, 0xc8, 0x85, 0x5d, 0x55, 0x23, 0xe3, 0x83, 0x62, + 0xb3, 0x43, 0x59, 0xeb, 0x42, 0xbe, 0x73, 0x4a, 0x30, 0x97, 0xa5, 0x42, 0x3a, 0x25, 0xae, 0x60, + 0xa6, 0x80, 0x29, 0xd3, 0xaa, 0x64, 0x94, 0x3c, 0xdd, 0xf4, 0x53, 0x0c, 0xd1, 0x7d, 0x6e, 0x2a, + 0x9d, 0xd1, 0x35, 0x30, 0x9b, 0xd9, 0x41, 0x85, 0x41, 0x55, 0x5b, 0xee, 0x2b, 0xef, 0x30, 0x51, + 0xcb, 0xdb, 0x35, 0x6c, 0x6d, 0xb1, 0x5b, 0x5a, 0x5b, 0x4c, 0x7c, 0x8d, 0x69, 0x29, 0x82, 0x35, + 0x51, 0x83, 0x58, 0x9d, 0xa3, 0x60, 0xe5, 0xae, 0x37, 0x66, 0xbc, 0xfd, 0x33, 0x9e, 0x93, 0xb9, + 0xd0, 0xcd, 0xba, 0x7c, 0xc4, 0xd9, 0x15, 0x41, 0xad, 0x54, 0xfe, 0xcf, 0x36, 0xe2, 0x88, 0xc0, + 0x27, 0x19, 0xd7, 0xfa, 0x0d, 0xc0, 0xac, 0xe0, 0x20, 0xce, 0x7c, 0xfc, 0x29, 0xa5, 0xc8, 0x76, + 0x04, 0x14, 0x82, 0x82, 0x46, 0x57, 0x69, 0x69, 0x6a, 0x35, 0x1b, 0x39, 0x16, 0x6a, 0x25, 0x17, + 0xf9, 0x21, 0xf4, 0xe5, 0xc3, 0x32, 0x66, 0xf9, 0x48, 0x4a, 0x19, 0xb8, 0xca, 0xc4, 0xb8, 0xc4, + 0x29, 0xb0, 0x44, 0xca, 0xe7, 0x8b, 0x9d, 0xac, 0x8e, 0xc0, 0x19, 0x85, 0x5d, 0xc0, 0x5b, 0x91, + 0xa8, 0xdb, 0x6c, 0x60, 0xb2, 0xb6, 0x81, 0x65, 0x23, 0xf1, 0xb6, 0x72, 0x49, 0x89, 0x97, 0xc7, + 0x3e, 0xcb, 0x48, 0x9c, 0x00, 0x30, 0xc0, 0x15, 0x71, 0x2e, 0x4f, 0x4a, 0x7b, 0xdc, 0x4f, 0xf5, + 0x26, 0xec, 0x61, 0x6d, 0x40, 0xab, 0x77, 0x00, 0x87, 0x24, 0x5c, 0x54, 0x08, 0x10, 0x5f, 0x24, + 0x70, 0x1a, 0xec, 0x8b, 0x7a, 0xa4, 0x40, 0x4a, 0x3e, 0x23, 0x32, 0xf5, 0xe4, 0x00, 0x52, 0x03, + 0xb6, 0xca, 0x5f, 0x66, 0x40, 0x6a, 0xa3, 0xc6, 0x90, 0x5d, 0x59, 0x70, 0x4c, 0xb5, 0x97, 0x6b, + 0x52, 0xef, 0xd9, 0xdc, 0xa4, 0xc8, 0xe6, 0x0c, 0xca, 0x6d, 0x30, 0x5b, 0x80, 0x85, 0x39, 0x64, + 0x59, 0x1b, 0x90, 0x62, 0x14, 0xda, 0x2b, 0xa0, 0x40, 0x2c, 0xc5, 0x37, 0x15, 0xaf, 0xe8, 0x7f, + 0x12, 0x0a, 0x37, 0x4c, 0x7d, 0x7f, 0xc0, 0xa8, 0x78, 0xff, 0x67, 0x46, 0xb7, 0xfb, 0xaf, 0x1a, + 0x78, 0xf9, 0x8c, 0x34, 0x57, 0x29, 0x20, 0x4d, 0xf3, 0x63, 0xca, 0x9f, 0x98, 0x24, 0xc0, 0xe6, + 0x2b, 0x5d, 0x40, 0xb5, 0x57, 0xd5, 0x30, 0x6c, 0x45, 0x6e, 0x81, 0x71, 0x1c, 0x0b, 0x79, 0x2e, + 0x3a, 0xf5, 0x4f, 0x03, 0xff, 0x35, 0xfc, 0x7a, 0xec, 0xe1, 0xd8, 0x4b, 0xb4, 0x07, 0x74, 0x37, + 0x72, 0x97, 0x63, 0x28, 0x1f, 0x68, 0xc3, 0xb3, 0x91, 0x0b, 0xfd, 0x1a, 0xf2, 0x02, 0x79, 0xb2, + 0x9e, 0x84, 0x2e, 0x25, 0x27, 0x60, 0x8b, 0xb3, 0x93, 0xcd, 0x72, 0x8b, 0x3b, 0xd3, 0xda, 0xd9, + 0x2a, 0xd3, 0x28, 0x41, 0xba, 0x7f, 0xee, 0x60, 0xb3, 0x0b, 0xb5, 0xb8, 0x26, 0xd9, 0x2f, 0x6a, + 0x6a, 0x7b, 0x93, 0x8d, 0xf1, 0x9a, 0x26, 0xec, 0x03, 0xcb, 0x12, 0x66, 0xbf, 0xc5, 0xc6, 0xd6, + 0xbd, 0x69, 0x45, 0x95, 0x3b, 0x8c, 0x98, 0xb7, 0x8f, 0xc9, 0xfd, 0x88, 0x93, 0x66, 0x60, 0x2b, + 0xa4, 0x95, 0xfe, 0x7e, 0x09, 0x27, 0x68, 0x3d, 0x92, 0x8d, 0xe5, 0x4d, 0x76, 0xe0, 0x95, 0x27, + 0x63, 0xd2, 0x48, 0x1e, 0xdd, 0x27, 0xf5, 0x1d, 0x5f, 0x41, 0x33, 0x36, 0x93, 0xc6, 0x92, 0x6d, + 0x20, 0xf1, 0x93, 0x92, 0x0c, 0x84, 0x33, 0xbe, 0x4c, 0x1f, 0x16, 0x95, 0x73, 0xb4, 0xd3, 0xc4, + 0x4f, 0xc4, 0xc4, 0xf3, 0xe7, 0xd3, 0x31, 0xf1, 0x0b, 0x75, 0x7a, 0x9f, 0xb2, 0x3d, 0x78, 0x08, + 0x56, 0xa6, 0xb0, 0xe4, 0xf5, 0xd8, 0x71, 0xd6, 0x6e, 0x52, 0xc8, 0x3b, 0x03, 0x3b, 0x62, 0xa9, + 0xb8, 0xa1, 0xcd, 0xab, 0x20, 0x5e, 0x9a, 0xc0, 0xe3, 0x8f, 0x0a, 0x6a, 0xfa, 0x2e, 0x6e, 0x57, + 0x89, 0xba, 0x31, 0x0d, 0x49, 0xa4, 0x70, 0x6c, 0x85, 0x77, 0xff, 0xa7, 0x63, 0x6c, 0x7d, 0x3a, + 0x97, 0xcd, 0xd6, 0x2b, 0xe4, 0xbd, 0xa6, 0xe4, 0x8a, 0x3b, 0xb6, 0x0c, 0xad, 0xff, 0xae, 0x10, + 0x1e, 0x87, 0x73, 0xd7, 0xb5, 0x32, 0x3a, 0xb7, 0x9a, 0xd3, 0x48, 0x5f, 0x7e, 0xb6, 0x81, 0x68, + 0x19, 0x3b, 0xed, 0xbc, 0x7f, 0x84, 0xb4, 0xaf, 0x73, 0x26, 0x7f, 0x4d, 0x70, 0x44, 0xed, 0x3e, + 0x2f, 0x90, 0xeb, 0xd2, 0x28, 0x7d, 0xf9, 0xf1, 0x38, 0xdb, 0x81, 0xae, 0xf1, 0x61, 0xaa, 0x41, + 0x9f, 0xfc, 0x55, 0x16, 0x7e, 0x35, 0x35, 0xf1, 0x15, 0xd6, 0x20, 0x60, 0xcc, 0x47, 0x89, 0x92, + 0x6a, 0xa1, 0x0a, 0x20, 0x5f, 0xee, 0xeb, 0x0e, 0x7e, 0x4e, 0x78, 0x49, 0xfb, 0x6a, 0x27, 0x35, + 0xb2, 0xc5, 0x78, 0x08, 0x74, 0xef, 0xee, 0x69, 0xcb, 0x64, 0xfb, 0x1d, 0x2b, 0x44, 0xb5, 0x5c, + 0x07, 0xda, 0xf5, 0xba, 0x4c, 0x7d, 0xa8, 0x1e, 0x12, 0xe5, 0x94, 0xfc, 0xf2, 0x30, 0x0c, 0x73, + 0x61, 0x6b, 0x78, 0xb0, 0x55, 0xbc, 0x12, 0x86, 0x29, 0x74, 0x52, 0xdf, 0xfc, 0xf5, 0xa4, 0x34, + 0x7a, 0x15, 0x80, 0xe1, 0xc9, 0x1e, 0x1b, 0xa7, 0x1d, 0x51, 0xec, 0x83, 0x02, 0xc4, 0x28, 0x2b, + 0xe9, 0xe1, 0x93, 0xd7, 0x54, 0xa7, 0x44, 0xf7, 0xfe, 0xbc, 0xe4, 0x8e, 0x72, 0xc1, 0x0e, 0x45, + 0x82, 0xc2, 0x42, 0xfe, 0x97, 0x1e, 0x33, 0x60, 0xdf, 0x20, 0x8f, 0x5c, 0x44, 0xeb, 0x81, 0xfe, + 0xfd, 0x1f, 0xf4, 0xd4, 0xf7, 0x39, 0x94, 0x8c, 0x02, 0xea, 0x65, 0x7c, 0xdd, 0xca, 0xda, 0x1e, + 0xb8, 0xde, 0xf0, 0xd4, 0xb7, 0x07, 0x15, 0x3d, 0xc0, 0x8d, 0x23, 0x16, 0xda, 0xa7, 0x24, 0x28, + 0x41, 0x89, 0x6b, 0x03, 0xe4, 0x5e, 0x4c, 0x0d, 0x34, 0x44, 0x0d, 0xf6, 0xf7, 0x86, 0x66, 0x49, + 0xa9, 0x8c, 0x78, 0x0c, 0x70, 0x31, 0x2d, 0xe0, 0x8a, 0x2e, 0xfb, 0x5d, 0x16, 0x3b, 0xd9, 0x49, + 0x7b, 0x13, 0x06, 0x89, 0xc2, 0x12, 0xad, 0x23, 0x9c, 0xc5, 0xdc, 0x38, 0x5b, 0x05, 0x3f, 0xa5, + 0x6b, 0xea, 0xd9, 0x01, 0xe6, 0x03, 0xd3, 0x0d, 0x45, 0x09, 0x8a, 0x91, 0x0b, 0xbc, 0xea, 0xec, + 0x40, 0x5e, 0xc6, 0x09, 0x3a, 0x46, 0x56, 0xb0, 0x5b, 0xdd, 0xa4, 0xfa, 0xcd, 0x70, 0x63, 0x81, + 0x63, 0x7a, 0x00, 0x74, 0x10, 0xff, 0xd7, 0x06, 0x3e, 0x39, 0x1b, 0x68, 0xba, 0xbe, 0xfb, 0x42, + 0x8c, 0x4e, 0xcf, 0x60, 0xfa, 0x74, 0xaa, 0x56, 0xcf, 0x2c, 0x98, 0x16, 0xe5, 0x61, 0xfa, 0x7a, + 0x75, 0x7f, 0xc6, 0x6c, 0x17, 0xdc, 0xf4, 0xe3, 0x3f, 0x92, 0x8c, 0x89, 0xa9, 0x17, 0x3b, 0xa6, + 0x5b, 0x3d, 0xb7, 0x94, 0x83, 0x2d, 0x1b, 0xc4, 0x12, 0x2c, 0x67, 0x46, 0x84, 0x7b, 0xfb, 0x67, + 0x07, 0xb1, 0x1e, 0x21, 0xab, 0x05, 0x10, 0xab, 0x77, 0xf1, 0x1e, 0xa4, 0x3b, 0xc5, 0xef, 0x0c, + 0xbc, 0x84, 0xb4, 0x06, 0xf9, 0x52, 0xe7, 0xcb, 0xc3, 0x93, 0x29, 0x4e, 0x40, 0x19, 0xc8, 0x38, + 0x90, 0xd1, 0x70, 0x50, 0xaf, 0x44, 0xce, 0xd3, 0x66, 0x99, 0x3e, 0x64, 0x87, 0x9b, 0x1a, 0xb3, + 0xa8, 0x3d, 0x70, 0xce, 0x20, 0xda, 0x3f, 0x4b, 0x51, 0x1e, 0xff, 0x5c, 0xcc, 0x61, 0x5e, 0x42, + 0x38, 0xa2, 0x60, 0x2f, 0x3d, 0x09, 0xce, 0x37, 0x62, 0x3b, 0xd8, 0x48, 0x12, 0x14, 0xbe, 0xcd, + 0x21, 0xad, 0xaf, 0xbc, 0x0d, 0xc6, 0xeb, 0x90, 0xd3, 0x9a, 0xc5, 0x7a, 0x8b, 0x79, 0x20, 0x7c, + 0xff, 0x38, 0x59, 0xcc, 0x88, 0xe2, 0xd8, 0x89, 0xce, 0xa6, 0x79, 0x80, 0x51, 0x25, 0xbd, 0xec, + 0x0b, 0x7d, 0xf4, 0xba, 0x9d, 0x78, 0xd5, 0xe3, 0x55, 0x83, 0x57, 0x1d, 0x8c, 0xce, 0x2a, 0x80, + 0xd1, 0xd9, 0x9f, 0xfc, 0x0f, 0xea, 0x6e, 0x85, 0x56, 0xb6, 0x37, 0x85, 0x3b, 0x23, 0xd1, 0x34, + 0xd5, 0xad, 0x05, 0x13, 0x55, 0xb7, 0x26, 0x41, 0x30, 0xcd, 0xad, 0xd1, 0xec, 0x47, 0x60, 0x94, + 0x6f, 0xee, 0x9e, 0xa7, 0xb4, 0xe1, 0xf3, 0xf7, 0xf1, 0x5a, 0x8d, 0xd7, 0xd3, 0xc9, 0xb4, 0x5f, + 0x84, 0xd1, 0x99, 0x9f, 0xb3, 0xa7, 0xd1, 0x9c, 0xcc, 0xe6, 0x96, 0x56, 0xb2, 0xf9, 0xad, 0x85, + 0x69, 0xd8, 0xa5, 0xd3, 0x61, 0x2a, 0x79, 0x40, 0x5f, 0x2c, 0x27, 0xca, 0x2f, 0x17, 0xda, 0x56, + 0x76, 0xac, 0xe6, 0xd7, 0x34, 0x45, 0xd6, 0x35, 0x45, 0xa0, 0xb3, 0x33, 0x5c, 0xc0, 0x94, 0xb2, + 0x22, 0xdf, 0x81, 0xe6, 0x96, 0xc6, 0xc6, 0x82, 0xf6, 0xce, 0xb5, 0x6b, 0x9a, 0x80, 0xfd, 0x16, + 0x50, 0xc0, 0x25, 0x3c, 0x7f, 0x8f, 0x5e, 0xbf, 0x3e, 0xf5, 0x9c, 0xf7, 0x7a, 0xea, 0x39, 0xe7, + 0x54, 0x02, 0xe8, 0x8a, 0x7a, 0x56, 0xa3, 0xd7, 0x59, 0xae, 0xa8, 0x67, 0x35, 0x9a, 0x6d, 0xba, + 0x4a, 0x3d, 0xab, 0xd1, 0x6c, 0xdb, 0x97, 0xea, 0x59, 0x8d, 0x5e, 0x57, 0xf8, 0x37, 0xeb, 0x59, + 0x71, 0x5f, 0xa2, 0x67, 0x35, 0x9a, 0xbd, 0xe2, 0xb2, 0x7a, 0x56, 0xa3, 0xd9, 0xd5, 0x93, 0xf4, + 0xac, 0x46, 0xaf, 0x73, 0x5d, 0x41, 0xcf, 0x6a, 0x34, 0xbb, 0x70, 0x92, 0x9e, 0xd5, 0x68, 0xb6, + 0xe7, 0x22, 0x3d, 0xab, 0xd1, 0xec, 0xba, 0xbf, 0xd7, 0xef, 0x34, 0x52, 0x17, 0xda, 0x9d, 0x3f, + 0x8c, 0xd7, 0xf3, 0xee, 0x33, 0xe0, 0x9c, 0xe0, 0x15, 0x59, 0x9c, 0xf0, 0x46, 0xbe, 0x95, 0x99, + 0x0d, 0x2e, 0x7c, 0xb6, 0xe2, 0xb3, 0x99, 0xd1, 0xe7, 0xed, 0xf8, 0xe5, 0x0f, 0xe7, 0xfa, 0xe0, + 0xe1, 0xb9, 0x5d, 0xd8, 0xff, 0xb7, 0xc3, 0x4e, 0x76, 0x3f, 0x04, 0x7b, 0x11, 0x6a, 0x18, 0xa1, + 0x76, 0xd3, 0x7b, 0xf6, 0x49, 0x78, 0x02, 0xe1, 0x7e, 0xce, 0xbe, 0xd8, 0x15, 0xce, 0x28, 0x3f, + 0x03, 0x8f, 0x26, 0x4b, 0x56, 0x9f, 0xf0, 0x6f, 0xcd, 0xd6, 0xf1, 0x75, 0x28, 0x95, 0xe6, 0xa4, + 0x6b, 0xb0, 0x87, 0xb9, 0x74, 0x2d, 0x2f, 0xd2, 0xc7, 0x77, 0x5c, 0x4b, 0xf6, 0xde, 0x41, 0xd1, + 0x60, 0x90, 0xd6, 0x90, 0x50, 0xde, 0x1d, 0xcd, 0x7e, 0x51, 0x10, 0x0c, 0x0e, 0x0d, 0xb3, 0x3f, + 0x8d, 0xb2, 0x82, 0x9a, 0x79, 0x14, 0xce, 0x61, 0xda, 0x44, 0x3a, 0x66, 0x45, 0x51, 0x0f, 0x02, + 0xc4, 0x44, 0x6d, 0x61, 0x29, 0x8c, 0x8b, 0x2a, 0xfc, 0x4d, 0xee, 0xb3, 0xc7, 0x7b, 0xb1, 0xcd, + 0x9e, 0xc6, 0x36, 0x23, 0xab, 0x51, 0xfb, 0x5f, 0x7a, 0x66, 0x41, 0x4f, 0x0e, 0x90, 0xb7, 0x9c, + 0x45, 0x6e, 0x78, 0x5a, 0xb2, 0xab, 0x2f, 0x87, 0x3f, 0x0e, 0x0a, 0x8a, 0xa9, 0xbb, 0x54, 0x8c, + 0x8a, 0x62, 0x96, 0x5f, 0x2a, 0x46, 0x93, 0x03, 0xf5, 0xb4, 0x92, 0xf1, 0xb4, 0xce, 0xc5, 0xf5, + 0x07, 0x55, 0x42, 0x2b, 0x3c, 0x4d, 0x6d, 0xf9, 0xd4, 0x19, 0x28, 0x08, 0xcd, 0x4a, 0xe8, 0x93, + 0x1b, 0x4b, 0xa9, 0xed, 0xc2, 0x60, 0x9f, 0x6e, 0x75, 0x31, 0x1d, 0x58, 0xce, 0xbf, 0xd6, 0x7a, + 0x67, 0xb2, 0x84, 0x3d, 0x09, 0x7d, 0xfd, 0xb2, 0x52, 0x93, 0xbc, 0xc2, 0x46, 0x3e, 0xc0, 0x85, + 0x3a, 0xe6, 0xd3, 0x54, 0xb2, 0xfe, 0xc9, 0x66, 0x16, 0xc4, 0x22, 0xc4, 0xe3, 0xf8, 0x18, 0xcc, + 0x66, 0x1e, 0x2f, 0x81, 0xdb, 0xc2, 0x93, 0x77, 0x2f, 0xc4, 0xe8, 0x0d, 0xa4, 0x9b, 0x90, 0x53, + 0x78, 0x0d, 0xd6, 0x53, 0x61, 0x5d, 0x0d, 0xfb, 0xff, 0xeb, 0x19, 0xe7, 0xa2, 0x1c, 0x08, 0x08, + 0xce, 0x1e, 0x29, 0x7c, 0x1d, 0x14, 0x49, 0xe1, 0xcf, 0x16, 0x2d, 0x2a, 0x4e, 0x0b, 0x5f, 0x0f, + 0xc5, 0x52, 0xf8, 0xa1, 0xe2, 0x45, 0xde, 0xb4, 0xf0, 0x2e, 0x28, 0x95, 0xc2, 0x9f, 0x2b, 0x5d, + 0xd4, 0x9c, 0x0c, 0xd7, 0xb9, 0xe1, 0x74, 0xa8, 0xa0, 0xc1, 0x80, 0xf7, 0x96, 0x50, 0x19, 0xfe, + 0xb6, 0x86, 0x2c, 0xf8, 0xdb, 0x1c, 0x6c, 0x13, 0xf5, 0x78, 0x3f, 0x13, 0x32, 0x36, 0x39, 0xf0, + 0x3e, 0x1e, 0x5c, 0x21, 0x3a, 0xa0, 0xc5, 0x45, 0xab, 0x5b, 0x01, 0x45, 0xcb, 0x6f, 0xe3, 0x78, + 0xf7, 0x41, 0x8b, 0x9e, 0xde, 0x05, 0x45, 0xcb, 0x47, 0xf4, 0x5e, 0x02, 0x2d, 0x3c, 0xbd, 0x3b, + 0x15, 0x2d, 0x6f, 0xd2, 0xbb, 0xd5, 0xe7, 0x69, 0xcf, 0x0c, 0x1a, 0x7c, 0xe5, 0xed, 0x39, 0x28, + 0x05, 0x97, 0x47, 0xfe, 0x1f, 0xd1, 0x20, 0x78, 0xf0, 0xbe, 0x41, 0xd4, 0xb1, 0xfb, 0xff, 0x22, + 0x6b, 0x63, 0x91, 0x2e, 0x59, 0x4f, 0x9f, 0xca, 0xf2, 0x4d, 0x6c, 0x6f, 0x85, 0xf0, 0x4d, 0x5d, + 0x1d, 0xf6, 0xbe, 0x8a, 0xaf, 0x11, 0x55, 0xc5, 0x07, 0x80, 0xf3, 0x09, 0x21, 0x55, 0x14, 0xf9, + 0x86, 0xa8, 0xe2, 0x1a, 0x01, 0x54, 0x82, 0x05, 0x32, 0x16, 0xb8, 0x41, 0x4d, 0xf0, 0xce, 0x79, + 0xa0, 0xc0, 0x67, 0x8d, 0x46, 0x4d, 0xf6, 0xad, 0xc0, 0x1d, 0x03, 0x7a, 0x5b, 0x50, 0x0e, 0xda, + 0x05, 0x1e, 0xe6, 0x9f, 0x3d, 0x67, 0x61, 0x39, 0x68, 0xd8, 0xdd, 0x03, 0xda, 0x39, 0xab, 0x61, + 0x18, 0x32, 0x51, 0xd2, 0xca, 0x42, 0xde, 0x63, 0xb8, 0xfc, 0x34, 0x64, 0xf3, 0xf7, 0xb0, 0x54, + 0xf2, 0xe1, 0xe9, 0xdd, 0xdf, 0x0c, 0xe9, 0x02, 0x77, 0x0d, 0xdd, 0xd5, 0x01, 0xe3, 0xf7, 0x49, + 0x52, 0xaa, 0xd0, 0x4f, 0x2b, 0x7d, 0x6c, 0xaf, 0x66, 0x0c, 0x7b, 0xb1, 0xc4, 0x5c, 0x65, 0xca, + 0xac, 0x7a, 0x0f, 0xcc, 0xa6, 0x16, 0x30, 0x5b, 0xa7, 0xdf, 0x7a, 0x17, 0x71, 0xad, 0xb9, 0x3b, + 0x44, 0xd2, 0xac, 0xce, 0x90, 0xf6, 0xed, 0x8b, 0xd8, 0x0c, 0xee, 0x6b, 0x8f, 0x8f, 0x87, 0xf4, + 0x46, 0xe6, 0x97, 0x98, 0xf9, 0x80, 0xa6, 0x1d, 0xe4, 0xbb, 0x7d, 0xe5, 0x21, 0xb5, 0xc9, 0x63, + 0xc9, 0x0a, 0x1e, 0xfd, 0xf5, 0xfb, 0x50, 0x10, 0xd4, 0x92, 0x95, 0x32, 0x85, 0x25, 0x3e, 0x0e, + 0xea, 0xea, 0x0f, 0x56, 0x74, 0xc5, 0x5f, 0xa3, 0xd5, 0x78, 0xd2, 0x44, 0xe4, 0xaf, 0x61, 0x7b, + 0xa8, 0xaa, 0x40, 0xcc, 0x88, 0x1c, 0x25, 0x85, 0x4a, 0x1e, 0xe4, 0xd9, 0xa9, 0x16, 0xe6, 0x41, + 0xde, 0x64, 0x87, 0xe2, 0x30, 0x37, 0xd4, 0xd3, 0xa8, 0x25, 0xdf, 0xec, 0xcc, 0xbf, 0x95, 0x45, + 0xd7, 0x06, 0x76, 0xc8, 0x5a, 0x05, 0x9c, 0x01, 0xf9, 0xb8, 0xfd, 0xc1, 0x6c, 0x9a, 0x99, 0xd5, + 0xae, 0xf4, 0xf5, 0xae, 0x1b, 0x5d, 0xb0, 0x9f, 0xe2, 0x48, 0x2f, 0x3d, 0x6c, 0x48, 0x3f, 0xd5, + 0x18, 0x2f, 0x21, 0xbf, 0xf1, 0x41, 0x0d, 0xa5, 0x86, 0x3c, 0xe6, 0x09, 0xde, 0xb5, 0x00, 0x5b, + 0xb9, 0x9c, 0xc6, 0xe7, 0x17, 0xe1, 0xd4, 0xec, 0xfe, 0x1a, 0xb3, 0x06, 0xbb, 0x07, 0xd3, 0x38, + 0x12, 0x34, 0xd3, 0xe8, 0xbd, 0x2e, 0xc3, 0xe6, 0xa2, 0x5d, 0x46, 0x4c, 0xf9, 0x48, 0xd0, 0x40, + 0x5f, 0xa7, 0xfc, 0xd0, 0x92, 0x9f, 0x77, 0xb8, 0x0f, 0x61, 0x8d, 0xc1, 0x0e, 0x4a, 0xe9, 0x3a, + 0x7d, 0x7a, 0x4a, 0xf8, 0x85, 0x31, 0xb4, 0x9c, 0x3c, 0xd7, 0xe3, 0x58, 0xc8, 0x49, 0xd9, 0xe8, + 0xe1, 0xf3, 0xe1, 0x88, 0xdd, 0x45, 0xde, 0xd3, 0x71, 0x86, 0xda, 0x06, 0xa6, 0x00, 0xf9, 0xba, + 0xb3, 0xa0, 0xac, 0x6d, 0x63, 0x16, 0x57, 0x28, 0x47, 0x6a, 0xd3, 0x93, 0xf8, 0xfd, 0x21, 0x26, + 0x8d, 0x66, 0x91, 0xa5, 0x80, 0x54, 0x9e, 0xd8, 0xab, 0xc6, 0xf4, 0x32, 0xb0, 0xfc, 0x35, 0x92, + 0x07, 0x7b, 0x5a, 0xdb, 0x24, 0x7d, 0x28, 0xc9, 0x8b, 0xbd, 0xd4, 0xa7, 0x7c, 0x89, 0xa9, 0xca, + 0xec, 0x97, 0xf4, 0x0f, 0x84, 0x79, 0x30, 0x5b, 0xd6, 0x3c, 0x98, 0x86, 0xf5, 0xdc, 0xce, 0xb4, + 0x0c, 0x49, 0x7f, 0x30, 0xab, 0xe1, 0x76, 0x49, 0x83, 0x91, 0x0b, 0x8a, 0x1e, 0x49, 0x7f, 0x11, + 0x5e, 0xc5, 0x29, 0x7d, 0x48, 0xf2, 0x73, 0xce, 0xd5, 0x24, 0xfd, 0x9c, 0x1f, 0x9e, 0xe4, 0xe7, + 0x9c, 0x4b, 0xfa, 0x39, 0x1f, 0xcd, 0x3e, 0x26, 0xf9, 0x39, 0x27, 0x8d, 0x36, 0xb2, 0x12, 0xe1, + 0x78, 0x02, 0x9e, 0xc6, 0xe7, 0x5c, 0x1f, 0x7e, 0x89, 0xe9, 0xdd, 0x5f, 0xf5, 0x21, 0x88, 0x69, + 0x67, 0x68, 0x6e, 0x27, 0x0a, 0x40, 0x98, 0x89, 0x73, 0xc3, 0x3c, 0x50, 0xfd, 0xe7, 0xb0, 0xfe, + 0x71, 0x38, 0x2c, 0xda, 0xb0, 0xd7, 0x11, 0x3e, 0x78, 0xc7, 0x24, 0xe8, 0x17, 0x26, 0x43, 0x23, + 0x27, 0x74, 0x38, 0xfd, 0x44, 0x0e, 0xf6, 0xc5, 0x50, 0x44, 0x43, 0x1e, 0xd2, 0x83, 0x46, 0x2a, + 0xa3, 0x91, 0x3c, 0x4c, 0xce, 0xc3, 0xf1, 0x31, 0x0f, 0xf4, 0x3c, 0xed, 0xd9, 0x92, 0x07, 0xb4, + 0xfb, 0x25, 0x88, 0x90, 0x46, 0xa2, 0x45, 0x62, 0x17, 0x95, 0x13, 0x21, 0x2d, 0xfc, 0x35, 0xb4, + 0x73, 0x33, 0xc7, 0x05, 0x3a, 0xd2, 0x97, 0x13, 0x1b, 0x53, 0x34, 0x98, 0x4f, 0x8c, 0x9d, 0x9a, + 0x50, 0x36, 0xca, 0x4d, 0x88, 0xf7, 0x6c, 0x35, 0x29, 0x33, 0x31, 0x0a, 0x82, 0x26, 0x85, 0x95, + 0xf9, 0x52, 0x47, 0x38, 0xe4, 0xcc, 0x39, 0x50, 0xbb, 0xdf, 0x07, 0x73, 0xfa, 0x09, 0x22, 0x69, + 0xe4, 0xa7, 0x68, 0xa6, 0x48, 0xb9, 0x5f, 0x40, 0xac, 0x16, 0x64, 0xdf, 0xec, 0x7a, 0x9f, 0x10, + 0xd4, 0x4d, 0x38, 0xe5, 0xf5, 0xc1, 0x0a, 0x55, 0xfc, 0x74, 0x42, 0x23, 0x97, 0xfa, 0x6f, 0x62, + 0x79, 0x34, 0x16, 0x7c, 0x53, 0x87, 0x4a, 0x75, 0x56, 0xea, 0xd5, 0x60, 0xe1, 0xe5, 0xfc, 0xb1, + 0x4b, 0xde, 0xda, 0xa9, 0x3c, 0x4f, 0xd1, 0x78, 0xcc, 0x4a, 0x8d, 0x47, 0x51, 0x4d, 0x7e, 0xda, + 0xc9, 0xd3, 0x73, 0xaa, 0x5c, 0x89, 0x19, 0x58, 0x3e, 0x2f, 0x30, 0x3a, 0xe7, 0x28, 0x5e, 0xbd, + 0x78, 0xc5, 0xf0, 0xda, 0x0c, 0xa3, 0x37, 0x22, 0xdf, 0x59, 0x00, 0xff, 0x83, 0x3c, 0xe7, 0xca, + 0xb5, 0x8d, 0x2d, 0x9d, 0x97, 0x3f, 0x2b, 0x90, 0x1e, 0x2d, 0x71, 0x9b, 0x73, 0x74, 0x30, 0xea, + 0xbc, 0x2f, 0x36, 0x4f, 0x89, 0xa5, 0xe4, 0xc7, 0xf1, 0x7a, 0x13, 0xc3, 0x6c, 0xc9, 0x54, 0x3f, + 0xc4, 0x90, 0x36, 0x89, 0xdb, 0x34, 0x96, 0x11, 0xeb, 0xa7, 0xc0, 0x4b, 0x29, 0xdf, 0x59, 0x6a, + 0x17, 0xf1, 0x8c, 0x73, 0x83, 0xa9, 0x67, 0x93, 0x3f, 0xf5, 0x6c, 0xde, 0xf8, 0xe5, 0xfc, 0xe2, + 0x9c, 0x15, 0x57, 0xe6, 0x17, 0xf9, 0x1d, 0x57, 0xcb, 0x2f, 0xf2, 0x3b, 0xbf, 0x9c, 0x5f, 0x9c, + 0xd3, 0xfc, 0x3f, 0xa6, 0x97, 0x3f, 0xca, 0x1f, 0xbd, 0x3c, 0xbf, 0xc8, 0x0f, 0x4f, 0xe6, 0x17, + 0xe7, 0x44, 0xaf, 0xc4, 0x2f, 0xf2, 0x03, 0x93, 0xf9, 0x45, 0x7e, 0xdf, 0xc5, 0xfc, 0x22, 0x7f, + 0xf8, 0x6f, 0xe7, 0x17, 0x65, 0x9d, 0xfb, 0xde, 0x09, 0x1a, 0xf8, 0x3d, 0x13, 0xad, 0xf1, 0xca, + 0x5a, 0xfb, 0x5a, 0xa9, 0xd5, 0xd9, 0x9e, 0xa2, 0x81, 0xad, 0x95, 0xdf, 0x50, 0x64, 0x41, 0xa9, + 0x6c, 0x00, 0xa9, 0x40, 0x27, 0xf5, 0x4a, 0x84, 0xe3, 0x14, 0xa1, 0xcc, 0xbd, 0x2d, 0xb0, 0x3d, + 0xa8, 0xb1, 0x70, 0x6f, 0xef, 0xba, 0x07, 0x63, 0x02, 0xb1, 0xba, 0x7b, 0xd6, 0xab, 0xf6, 0xc5, + 0x82, 0xa7, 0x7c, 0xf8, 0x16, 0x54, 0x5f, 0xd3, 0x15, 0xff, 0x14, 0xa9, 0x2d, 0x97, 0xd8, 0x5d, + 0x2c, 0x75, 0xe0, 0xb7, 0x64, 0x33, 0x97, 0x27, 0x3d, 0x7c, 0x1c, 0xad, 0x55, 0x61, 0x10, 0x14, + 0x11, 0xce, 0xb7, 0x1a, 0x53, 0x51, 0x9b, 0xb9, 0xb7, 0x1f, 0xdf, 0xac, 0xc4, 0x34, 0xee, 0x5d, + 0xa7, 0xda, 0x1b, 0x0b, 0x9e, 0x31, 0x5b, 0xc0, 0x1c, 0x01, 0xb1, 0xd5, 0xdc, 0x0c, 0x46, 0xfd, + 0xc2, 0x1c, 0x08, 0x69, 0x03, 0xdd, 0x39, 0x70, 0x58, 0x31, 0xa4, 0x0a, 0x2e, 0xcf, 0xb1, 0xc0, + 0x54, 0x94, 0xec, 0xc9, 0x72, 0x07, 0x2f, 0x6a, 0x71, 0xde, 0xff, 0x49, 0xc0, 0xbd, 0xd0, 0x0d, + 0x3f, 0xf1, 0xb9, 0x43, 0x9f, 0x44, 0x21, 0x03, 0x39, 0xc6, 0xc5, 0x1f, 0x5b, 0xe0, 0x3a, 0x0f, + 0x3c, 0x82, 0xfc, 0xdc, 0xf6, 0x40, 0x4f, 0xdd, 0x96, 0x0d, 0xaa, 0xfd, 0x3d, 0xc1, 0x77, 0x91, + 0x1f, 0xe0, 0xa5, 0x15, 0x0a, 0xd2, 0xe5, 0x25, 0x5b, 0x09, 0xa4, 0x15, 0xb7, 0x20, 0x8b, 0xad, + 0x45, 0x67, 0xed, 0xed, 0x0e, 0xa9, 0xc3, 0xfa, 0xa1, 0xee, 0xe0, 0x7d, 0x58, 0xf2, 0xbf, 0x22, + 0xdd, 0x71, 0x55, 0xbf, 0xa9, 0x2b, 0x95, 0xd7, 0xf0, 0xed, 0xa0, 0xa3, 0xf5, 0x19, 0xe2, 0xc4, + 0xe8, 0x84, 0x35, 0x4a, 0xb0, 0xe6, 0x50, 0xa6, 0x64, 0x69, 0x39, 0x6e, 0x9e, 0x2b, 0x80, 0x81, + 0xe9, 0x5c, 0x27, 0x4f, 0x16, 0xc8, 0x67, 0xd7, 0x33, 0xd9, 0x8e, 0x10, 0xfb, 0x92, 0xed, 0x9a, + 0xdd, 0x10, 0x99, 0x31, 0xdc, 0x4d, 0xb3, 0xd7, 0x9c, 0x52, 0xfd, 0x02, 0x0d, 0x24, 0x56, 0x4b, + 0x8e, 0xc5, 0xf0, 0xaf, 0xdb, 0xe8, 0x7e, 0xf9, 0x99, 0xf2, 0x73, 0x3b, 0xc8, 0x3e, 0xd2, 0xa3, + 0x11, 0xf8, 0xe5, 0x4b, 0xc1, 0x4c, 0xac, 0xdf, 0x59, 0x8e, 0x23, 0xfd, 0x6c, 0xef, 0x33, 0x9e, + 0x6e, 0xac, 0x5d, 0x16, 0xc9, 0xe1, 0xb7, 0x70, 0x42, 0x88, 0x9d, 0xe8, 0x1d, 0x2d, 0x88, 0xb1, + 0x55, 0x76, 0x15, 0xbf, 0x95, 0x0f, 0xcc, 0xc1, 0x3b, 0xa8, 0x24, 0x4a, 0x96, 0x4e, 0xdb, 0x24, + 0xce, 0x3c, 0xb1, 0xbe, 0x14, 0x25, 0xb3, 0x93, 0xd7, 0x25, 0xb4, 0xfb, 0x2e, 0x9c, 0xad, 0xef, + 0xe3, 0x15, 0x94, 0xff, 0xd1, 0x6e, 0x3a, 0x37, 0x61, 0x02, 0xe6, 0x15, 0xfe, 0xd1, 0xc5, 0x23, + 0xf1, 0x4a, 0x51, 0x43, 0xf6, 0x7a, 0xfc, 0x0f, 0x60, 0x0e, 0x11, 0x0b, 0xf8, 0xfa, 0x83, 0xe7, + 0x52, 0xe7, 0x03, 0x68, 0xad, 0xfb, 0xc2, 0xd3, 0x88, 0x1f, 0x64, 0xd1, 0x90, 0x67, 0xeb, 0xd3, + 0xe5, 0xa4, 0x69, 0x15, 0x7f, 0x68, 0x3d, 0x57, 0xf5, 0x05, 0xb5, 0x28, 0x62, 0xe5, 0xf6, 0xa1, + 0xd5, 0xc0, 0x07, 0x73, 0xc9, 0x82, 0x8d, 0xff, 0x41, 0xe4, 0x9a, 0xb7, 0xf3, 0xaa, 0x3f, 0x0d, + 0xdc, 0x02, 0x58, 0x76, 0x25, 0xdb, 0x39, 0xd0, 0x53, 0xbf, 0x30, 0x1d, 0xac, 0x63, 0x38, 0x57, + 0xe7, 0x84, 0xe3, 0x38, 0x93, 0x1b, 0x08, 0x5b, 0x4a, 0xa5, 0xbd, 0xe8, 0x62, 0x4c, 0x9b, 0xad, + 0x7b, 0x6f, 0x80, 0x5c, 0x6c, 0xb9, 0x52, 0x2b, 0xe2, 0x0d, 0xb6, 0xbc, 0x19, 0x73, 0xaa, 0x1a, + 0x89, 0x3b, 0xd6, 0x73, 0x19, 0x19, 0xa1, 0xec, 0x03, 0x84, 0x3b, 0x7a, 0x96, 0xc7, 0x36, 0x4a, + 0xbf, 0x1b, 0x21, 0x48, 0xbb, 0xab, 0xee, 0x5e, 0x96, 0xf2, 0x09, 0xec, 0x27, 0xc4, 0xc4, 0x99, + 0x49, 0x4c, 0xcc, 0xeb, 0x62, 0x78, 0xcd, 0x2c, 0x38, 0xd3, 0x1e, 0x56, 0x52, 0x9f, 0xfe, 0x24, + 0xb6, 0xe3, 0xf1, 0xfa, 0xbe, 0xc5, 0x23, 0xe3, 0xd5, 0x22, 0x29, 0x78, 0xe5, 0x19, 0x2d, 0x90, + 0x53, 0x0c, 0x6a, 0x4f, 0xfc, 0xaf, 0x3a, 0x0f, 0x70, 0xab, 0x48, 0x1e, 0xc9, 0x0c, 0x66, 0xea, + 0x95, 0xc3, 0x5c, 0x28, 0xd5, 0x32, 0x82, 0x49, 0x1f, 0x3c, 0x26, 0xb7, 0x4b, 0x0e, 0xb6, 0x4b, + 0x9e, 0x08, 0x63, 0x8f, 0x25, 0x24, 0x33, 0x94, 0x12, 0x1e, 0x45, 0xf9, 0x69, 0x17, 0x96, 0x7a, + 0x00, 0x9f, 0x07, 0xf0, 0xf9, 0x51, 0xbc, 0x0f, 0xe1, 0x7d, 0x1f, 0x86, 0xed, 0x91, 0xb5, 0x88, + 0x87, 0xf0, 0x7e, 0x00, 0xef, 0x87, 0x30, 0x6c, 0x58, 0x96, 0xb9, 0x0e, 0xe0, 0xfd, 0x30, 0xde, + 0x8f, 0x62, 0xd8, 0x0b, 0xf8, 0xfc, 0x02, 0x3e, 0x1f, 0xc6, 0xfb, 0x71, 0xbc, 0x9f, 0xc0, 0xb0, + 0xd7, 0xf0, 0xf9, 0x35, 0x7c, 0x3e, 0x1e, 0x56, 0x30, 0x6d, 0xc1, 0x89, 0x3b, 0x9c, 0x5b, 0x17, + 0x75, 0xdd, 0x0e, 0xf0, 0x13, 0x49, 0x4f, 0xd4, 0x69, 0xae, 0xef, 0x4b, 0xca, 0x67, 0x0a, 0x27, + 0x72, 0x86, 0x6c, 0x4f, 0x62, 0x06, 0xf9, 0x96, 0x3f, 0xda, 0x73, 0x34, 0xc6, 0xbb, 0x5e, 0x1a, + 0x7e, 0xe9, 0x23, 0xb6, 0x13, 0xf1, 0x28, 0xaf, 0x0f, 0x19, 0x10, 0xcb, 0x32, 0x79, 0x97, 0xaf, + 0x7f, 0x39, 0xc3, 0xba, 0xe1, 0x6e, 0x51, 0xc1, 0x6b, 0x48, 0x4b, 0x29, 0xa9, 0x39, 0x7e, 0x11, + 0x97, 0xc4, 0x64, 0xb9, 0xd9, 0x0d, 0xa0, 0xae, 0x97, 0xa4, 0xb9, 0x94, 0x6f, 0x46, 0xf0, 0x71, + 0xeb, 0xb8, 0x23, 0xb0, 0x13, 0x76, 0x72, 0x06, 0x18, 0x02, 0x97, 0xe2, 0x43, 0xe5, 0xeb, 0x19, + 0x1b, 0x54, 0x3f, 0x51, 0xde, 0xa7, 0x32, 0xab, 0x2b, 0xbf, 0xec, 0x4f, 0xf1, 0x22, 0xcd, 0x1c, + 0x88, 0xa5, 0xe7, 0xc5, 0x3b, 0x90, 0x35, 0x9c, 0x07, 0x37, 0x94, 0xcc, 0x43, 0x1c, 0xf8, 0x19, + 0xe4, 0x58, 0xfc, 0x51, 0x58, 0x3a, 0x72, 0xe1, 0xc4, 0x3a, 0x6e, 0x09, 0xc3, 0xb6, 0x0c, 0x55, + 0xc8, 0xbc, 0xbf, 0x0d, 0x31, 0x81, 0x67, 0x2b, 0x6f, 0xdb, 0x6d, 0xca, 0x3f, 0x3d, 0x71, 0x8b, + 0x1a, 0x31, 0x6d, 0x9a, 0xff, 0xc1, 0xef, 0x23, 0x06, 0x54, 0x56, 0xfe, 0x71, 0x35, 0x9c, 0x95, + 0x71, 0x4e, 0xd2, 0xfb, 0x7b, 0x41, 0x04, 0xe5, 0x3a, 0x29, 0xfd, 0xd1, 0x9c, 0x42, 0xa0, 0xf3, + 0x02, 0x19, 0x3b, 0x11, 0xd3, 0x30, 0x97, 0x52, 0x39, 0x17, 0xde, 0x8f, 0xf4, 0xc9, 0xbd, 0x9e, + 0xe3, 0x32, 0x42, 0xe6, 0x03, 0xcd, 0x94, 0x7a, 0x51, 0x3e, 0x9c, 0x8d, 0x42, 0xa1, 0x12, 0x69, + 0x9f, 0xc1, 0xa4, 0x7a, 0x7b, 0xb0, 0x4c, 0x51, 0xb9, 0xf8, 0xc5, 0xf2, 0x9b, 0x16, 0xc3, 0xd9, + 0x1e, 0xe1, 0xae, 0x41, 0x46, 0x01, 0x7b, 0xa3, 0xaa, 0x3d, 0xb1, 0xe0, 0x0b, 0x84, 0x77, 0x21, + 0x50, 0xe6, 0xb1, 0xb1, 0xca, 0x74, 0x6f, 0x17, 0x84, 0x59, 0x1e, 0xae, 0x4b, 0xe4, 0x21, 0xb0, + 0x3c, 0x0c, 0x2c, 0x8f, 0x4c, 0xa3, 0xea, 0xed, 0x9f, 0x6d, 0xc2, 0xd2, 0x6e, 0x76, 0x6f, 0x92, + 0x53, 0x64, 0xf4, 0xf0, 0x0d, 0x29, 0x45, 0xc5, 0x91, 0x5b, 0x14, 0x89, 0x14, 0x0b, 0x62, 0x92, + 0xaf, 0x4e, 0xb2, 0x20, 0x84, 0xad, 0x64, 0x95, 0x2c, 0x25, 0xa9, 0xde, 0x60, 0xba, 0x3e, 0x37, + 0x14, 0xa6, 0xe5, 0xc0, 0x71, 0x21, 0xc7, 0x1e, 0x4a, 0xdd, 0x4a, 0xf4, 0x63, 0xae, 0x1b, 0x72, + 0x22, 0xe4, 0x95, 0xed, 0x2c, 0x59, 0xdf, 0x54, 0x84, 0xd9, 0x79, 0x24, 0x4a, 0xe1, 0x24, 0xb3, + 0x28, 0x81, 0xfc, 0xb8, 0x08, 0x8a, 0xdb, 0x29, 0x67, 0x46, 0xcd, 0x0f, 0xe2, 0x5b, 0x35, 0x52, + 0x5b, 0x4c, 0xb3, 0x58, 0x4e, 0x33, 0x31, 0x6a, 0xbe, 0xd8, 0xc5, 0xfb, 0xeb, 0xfb, 0xa2, 0xc0, + 0x2b, 0x73, 0x15, 0x19, 0x10, 0x0a, 0xee, 0xa3, 0x3c, 0xc4, 0xf5, 0xdc, 0x9f, 0x76, 0xdd, 0x33, + 0xc8, 0x78, 0x79, 0x2c, 0x59, 0xd5, 0xc8, 0x85, 0x2d, 0x6c, 0xbc, 0xe3, 0xfc, 0x78, 0xdb, 0xb3, + 0xde, 0x4d, 0x9e, 0x72, 0xc9, 0x02, 0x1e, 0x69, 0x0f, 0xc8, 0xa1, 0xec, 0xbc, 0xb1, 0xac, 0xbd, + 0xa9, 0xa5, 0xd5, 0xc6, 0x14, 0x45, 0x22, 0x2b, 0x4c, 0xf0, 0xa8, 0x77, 0x8d, 0x06, 0x30, 0xb7, + 0xdb, 0xd9, 0x9a, 0x68, 0x16, 0xf6, 0x61, 0x6f, 0x44, 0xb5, 0xbb, 0x27, 0x88, 0x54, 0x5d, 0x10, + 0x84, 0x72, 0xc1, 0xc3, 0x46, 0xb9, 0x56, 0x1a, 0xe5, 0xc8, 0x45, 0x56, 0x3a, 0x54, 0xc3, 0xd8, + 0x82, 0xc1, 0x52, 0x94, 0xb3, 0xf4, 0xb7, 0xa8, 0x26, 0xf4, 0x80, 0x05, 0xe5, 0x47, 0x93, 0xa4, + 0x41, 0xc4, 0xca, 0x91, 0xc1, 0x76, 0x05, 0x4f, 0xd7, 0xf4, 0x15, 0xdc, 0xc5, 0x5a, 0x81, 0xda, + 0x75, 0x07, 0xb3, 0x4f, 0x26, 0x24, 0x6a, 0xf9, 0x39, 0xad, 0x38, 0x82, 0xb2, 0x47, 0xc2, 0x96, + 0x2f, 0x8a, 0x25, 0x4a, 0x8f, 0xbd, 0x1b, 0x25, 0x7f, 0xdf, 0xc8, 0x97, 0x4a, 0x67, 0x9c, 0x5e, + 0x9d, 0xd8, 0xb3, 0x84, 0xa3, 0xeb, 0xb9, 0xa5, 0x23, 0xa3, 0x5b, 0x65, 0x1c, 0xcd, 0x08, 0x59, + 0x0e, 0x10, 0x8e, 0x1a, 0xcd, 0xaa, 0x3f, 0x3d, 0x8e, 0xb5, 0x54, 0xb2, 0xfc, 0xb6, 0x0b, 0x18, + 0x76, 0x8b, 0x52, 0xc2, 0xd5, 0xef, 0x0d, 0x32, 0x1b, 0x74, 0x0c, 0x4b, 0xb1, 0xd7, 0x7b, 0x48, + 0xfb, 0x90, 0x7a, 0x1d, 0x8e, 0xa3, 0xa4, 0x7e, 0xbc, 0x6a, 0xe4, 0xf3, 0x03, 0xa2, 0x43, 0xd7, + 0x0e, 0x3c, 0xe4, 0x05, 0xcd, 0xf6, 0xe9, 0xd4, 0x82, 0xd2, 0x1e, 0x01, 0xdf, 0x8e, 0x73, 0xc0, + 0x83, 0xfc, 0xad, 0x73, 0xda, 0x69, 0x0e, 0x48, 0xa7, 0xfe, 0x56, 0xc1, 0x34, 0x93, 0x70, 0x5d, + 0x71, 0x18, 0x29, 0x3f, 0x96, 0xae, 0x28, 0x0d, 0x2b, 0xe4, 0x39, 0xbc, 0x39, 0x39, 0x87, 0xcb, + 0xf8, 0x26, 0xcf, 0xe1, 0x94, 0xf3, 0xed, 0x89, 0x5e, 0xf1, 0x62, 0xfe, 0xfe, 0xfd, 0x9f, 0xbd, + 0x26, 0x5b, 0x55, 0xea, 0xbf, 0x4c, 0x6a, 0x39, 0x2c, 0xb5, 0xac, 0xf2, 0xbf, 0x68, 0xe0, 0xda, + 0x56, 0x98, 0x0a, 0x8f, 0x5c, 0x94, 0xee, 0xeb, 0xac, 0xaf, 0x40, 0x51, 0x2c, 0xf5, 0x16, 0xa6, + 0x55, 0x70, 0x31, 0xbe, 0x66, 0x13, 0xc6, 0xd6, 0x31, 0x8c, 0xf5, 0x47, 0x39, 0xa3, 0x62, 0x12, + 0xce, 0x7a, 0x12, 0x18, 0x3b, 0xea, 0x90, 0xf9, 0x2e, 0xe7, 0xa4, 0x72, 0x3a, 0xea, 0x95, 0x92, + 0x87, 0xe9, 0x3f, 0x0f, 0xde, 0x25, 0xb5, 0xa9, 0x8e, 0x4e, 0x4b, 0x71, 0x03, 0xc9, 0xf1, 0xf4, + 0x30, 0x9d, 0xfe, 0xe5, 0x76, 0x48, 0x7d, 0x76, 0x4b, 0x0b, 0xb6, 0xa9, 0x33, 0x1d, 0xb3, 0x3f, + 0x3d, 0x66, 0x41, 0xcc, 0x5e, 0x07, 0x51, 0x4e, 0xf0, 0xd8, 0x2b, 0xa0, 0x70, 0x03, 0x47, 0x3b, + 0x52, 0x37, 0xe6, 0x90, 0x9c, 0x6f, 0x37, 0x2c, 0xfd, 0x10, 0x8e, 0x2f, 0x19, 0xf9, 0xf4, 0x88, + 0xd1, 0x0e, 0x85, 0x53, 0x38, 0xec, 0x9f, 0x1e, 0xa4, 0xab, 0xce, 0xdd, 0xd4, 0xbb, 0xeb, 0xf8, + 0x8c, 0x3f, 0xb3, 0x59, 0x08, 0xcb, 0xa8, 0xb4, 0x4f, 0xa3, 0x5d, 0x2a, 0xb9, 0x8c, 0x0e, 0xf2, + 0xa7, 0x0e, 0xb3, 0x42, 0x16, 0x9f, 0x27, 0x98, 0xb0, 0x1a, 0xa4, 0xa5, 0x33, 0xce, 0xbc, 0xb2, + 0x3e, 0x46, 0xbb, 0xa2, 0x9b, 0xe4, 0x92, 0xe6, 0x20, 0x45, 0xc7, 0xd2, 0xda, 0x90, 0x5f, 0x98, + 0xc5, 0x34, 0x3b, 0xf4, 0x33, 0xdd, 0x30, 0x0b, 0x53, 0xa3, 0xdd, 0x01, 0x17, 0x94, 0xd0, 0xea, + 0x02, 0xd9, 0x6e, 0x9f, 0xe9, 0x82, 0x59, 0xd2, 0x2e, 0xc1, 0x7a, 0x2e, 0xb0, 0x89, 0xd1, 0xb5, + 0x4d, 0x41, 0x88, 0xb7, 0x21, 0x2e, 0xee, 0xb9, 0x5c, 0xbd, 0xfe, 0x3a, 0x72, 0xf9, 0x7a, 0xcd, + 0xcd, 0x92, 0xea, 0xf5, 0xd7, 0x4f, 0xe4, 0x7a, 0x35, 0x24, 0x6b, 0x55, 0x7f, 0x55, 0xb5, 0x72, + 0x5c, 0x45, 0xad, 0x32, 0xd9, 0xf7, 0xec, 0x5c, 0xc3, 0x84, 0x72, 0xdf, 0x97, 0x2c, 0x61, 0xb0, + 0xbe, 0x8f, 0xe1, 0x88, 0x5e, 0xc6, 0x10, 0x59, 0x0a, 0x14, 0x55, 0x38, 0x72, 0xb3, 0x65, 0x49, + 0xd0, 0x90, 0x8e, 0xe3, 0xa2, 0x5a, 0x92, 0x2c, 0xd3, 0x77, 0x28, 0x79, 0x94, 0x06, 0x69, 0x7e, + 0x4a, 0xa6, 0xaa, 0x20, 0x3a, 0xb5, 0x78, 0xe4, 0xd3, 0x0e, 0x5e, 0x81, 0xb3, 0x5e, 0x4f, 0x8a, + 0xb6, 0xf0, 0xeb, 0x34, 0x20, 0xea, 0x7f, 0x79, 0x98, 0xed, 0x23, 0x65, 0xd2, 0xac, 0x2e, 0xaa, + 0x79, 0x17, 0xaf, 0x0f, 0x9e, 0x95, 0xf5, 0xd6, 0x5f, 0xe4, 0x3b, 0xe0, 0xb8, 0x98, 0x85, 0x10, + 0x3a, 0x3b, 0x9d, 0x49, 0xdf, 0xff, 0xa9, 0x35, 0x09, 0x73, 0x26, 0x91, 0xfe, 0xf9, 0x21, 0x9c, + 0x65, 0x41, 0x5a, 0xe5, 0xf3, 0x7f, 0x0b, 0xdb, 0x4f, 0xe3, 0xe0, 0x42, 0x99, 0x0b, 0x9f, 0x81, + 0x37, 0xcf, 0x6d, 0xff, 0xc8, 0xbb, 0x70, 0x18, 0xef, 0x0f, 0x31, 0x39, 0xc6, 0x41, 0x1c, 0xb5, + 0x51, 0xf2, 0x99, 0x8c, 0xfc, 0x47, 0x51, 0x17, 0x84, 0xff, 0x73, 0xf8, 0x3f, 0xff, 0xa0, 0x5b, + 0x03, 0x5c, 0x2f, 0x04, 0xeb, 0x4c, 0x4c, 0x9f, 0x3e, 0xa2, 0x3d, 0x86, 0xbc, 0xd8, 0x7b, 0x5b, + 0x98, 0x3e, 0x92, 0xd1, 0x3c, 0x0f, 0x8c, 0xef, 0xdd, 0x33, 0x77, 0x53, 0x0e, 0xa0, 0xec, 0x6d, + 0x3e, 0x79, 0x8f, 0x49, 0x78, 0x65, 0x0c, 0xa1, 0x1e, 0x2d, 0xec, 0x5e, 0xf0, 0x33, 0x28, 0xd8, + 0x07, 0x62, 0xb6, 0xb1, 0x19, 0xb6, 0x22, 0xc4, 0x3d, 0x08, 0x21, 0xbc, 0xcc, 0xe2, 0x9c, 0x07, + 0x80, 0x8b, 0x8c, 0xbf, 0xfd, 0xeb, 0x67, 0x9b, 0xe1, 0x34, 0xf2, 0x25, 0x3a, 0x59, 0x37, 0x49, + 0x87, 0x79, 0x5e, 0xcb, 0x74, 0xda, 0x6d, 0x28, 0x1b, 0xab, 0xb0, 0xdf, 0x4c, 0x12, 0x0f, 0x8a, + 0x9c, 0xa6, 0xf5, 0xbd, 0x5e, 0xa3, 0x8b, 0x7d, 0x0d, 0x15, 0xef, 0xc1, 0x63, 0x85, 0xdd, 0xc8, + 0x05, 0xd9, 0xca, 0xdf, 0x83, 0x01, 0x67, 0x8c, 0x78, 0x59, 0x5a, 0x8f, 0xa2, 0x95, 0x2f, 0x36, + 0xf2, 0xaf, 0x33, 0xb5, 0xc8, 0xf4, 0x5d, 0x4b, 0xfc, 0xde, 0x8d, 0x39, 0xfe, 0x6d, 0x66, 0xd7, + 0x3a, 0xee, 0x4f, 0x8f, 0xcb, 0x58, 0x91, 0x89, 0xf3, 0xb5, 0x92, 0xc9, 0x26, 0x67, 0x87, 0x37, + 0x87, 0x0c, 0xd2, 0x58, 0x24, 0x0c, 0xf6, 0xef, 0x1f, 0x3f, 0x45, 0xf3, 0x20, 0xd7, 0x88, 0x71, + 0x67, 0x8c, 0xaa, 0x83, 0xb1, 0x60, 0x99, 0xa2, 0x1c, 0xe2, 0x77, 0xbb, 0x16, 0x95, 0xc3, 0x19, + 0x5f, 0x3e, 0xcc, 0x6a, 0xcb, 0x2c, 0x7f, 0x3f, 0xed, 0x14, 0xce, 0xdd, 0xf2, 0x6c, 0xc1, 0x78, + 0x99, 0x1b, 0x73, 0x68, 0xaf, 0x9c, 0xa5, 0xb2, 0x57, 0xb2, 0x73, 0xca, 0xe5, 0x25, 0xe3, 0xb7, + 0x59, 0x5c, 0x98, 0xe6, 0x69, 0x4a, 0x93, 0xad, 0x07, 0x39, 0x05, 0x77, 0x96, 0xb2, 0xc7, 0x85, + 0x12, 0xc0, 0x69, 0x8c, 0xd7, 0xb1, 0xaf, 0x18, 0x7e, 0x30, 0x7b, 0x5a, 0x06, 0x9f, 0x8d, 0xe5, + 0x75, 0x36, 0x3d, 0x2f, 0x07, 0xf6, 0xc6, 0x4b, 0x07, 0xc9, 0xfb, 0xe8, 0x00, 0xb0, 0x35, 0xe7, + 0x62, 0xe6, 0x7d, 0xe3, 0x01, 0xbe, 0x76, 0xce, 0x6a, 0x46, 0x59, 0x97, 0x7c, 0x69, 0xb9, 0x66, + 0xb1, 0x72, 0x69, 0x91, 0x2a, 0xab, 0x6b, 0x5d, 0x0b, 0x62, 0x03, 0x60, 0x43, 0xbe, 0xd2, 0xaa, + 0x7a, 0xef, 0xfb, 0x39, 0xca, 0xf7, 0x74, 0x95, 0xaa, 0xaa, 0x91, 0xf1, 0xf5, 0xe2, 0x1d, 0xce, + 0x02, 0xc8, 0xb3, 0x15, 0x40, 0x8e, 0x83, 0x53, 0xbb, 0x90, 0xbf, 0x74, 0x31, 0xfe, 0xd2, 0x8d, + 0xfc, 0xa5, 0x80, 0xfc, 0xa5, 0x3a, 0x44, 0x67, 0x78, 0xd4, 0xc3, 0x77, 0x85, 0xb2, 0x30, 0x4c, + 0x17, 0x24, 0x7b, 0x81, 0x99, 0xb2, 0xb6, 0x8d, 0x4e, 0xaf, 0x1a, 0x56, 0x9f, 0xd6, 0x04, 0x73, + 0x11, 0x27, 0x55, 0xfc, 0x76, 0x7e, 0xf9, 0x9c, 0x0e, 0x56, 0x2e, 0x7f, 0xaa, 0x5c, 0xb6, 0x25, + 0xe6, 0xe5, 0xcc, 0xff, 0xc7, 0x43, 0xcc, 0x2a, 0x58, 0x57, 0xfc, 0x04, 0xad, 0x8f, 0x90, 0x64, + 0x8c, 0x58, 0xa9, 0x77, 0x70, 0xc8, 0xbf, 0x70, 0x66, 0xc5, 0x7b, 0xf7, 0xde, 0xed, 0x5e, 0xf8, + 0x2c, 0xf6, 0xf5, 0x23, 0x13, 0x71, 0x94, 0xfd, 0x3e, 0x1c, 0x26, 0x5b, 0xdd, 0x79, 0x46, 0x78, + 0xef, 0x1e, 0xde, 0xfd, 0x12, 0xc3, 0x88, 0xf2, 0xd3, 0x88, 0x07, 0x07, 0x00, 0xdc, 0xa7, 0xe1, + 0x31, 0xc7, 0x01, 0x68, 0x0c, 0xc4, 0x70, 0x06, 0x8e, 0x05, 0x5f, 0x33, 0xcd, 0x36, 0xcf, 0x96, + 0xac, 0xec, 0xb3, 0x33, 0x85, 0x85, 0x65, 0x48, 0x97, 0xc8, 0x4f, 0x94, 0xd9, 0x17, 0x05, 0xa1, + 0x5c, 0xf2, 0xba, 0x21, 0x61, 0x48, 0x17, 0xce, 0x85, 0x17, 0x50, 0x46, 0xb8, 0xb0, 0x3e, 0x63, + 0x4a, 0xa8, 0x5a, 0xc2, 0x9d, 0x04, 0x07, 0x10, 0x2a, 0xb5, 0xaa, 0xff, 0xf4, 0xf3, 0xe2, 0x8c, + 0xbb, 0x2b, 0x12, 0xe1, 0xcc, 0x47, 0xca, 0x5b, 0x52, 0xab, 0x22, 0xcd, 0xf3, 0xf8, 0xb7, 0xdb, + 0xc9, 0x77, 0xb9, 0x97, 0xb5, 0xf2, 0x83, 0x95, 0x15, 0x7f, 0x68, 0x85, 0x33, 0xf7, 0xb4, 0x32, + 0xeb, 0x6a, 0xa6, 0x24, 0xb7, 0xff, 0x18, 0xce, 0xf7, 0x46, 0x87, 0x52, 0xae, 0xcb, 0xc3, 0xf4, + 0x04, 0xae, 0x18, 0x48, 0x35, 0x83, 0x72, 0x7c, 0xa2, 0x1a, 0x6f, 0x27, 0x3a, 0x21, 0xfb, 0x50, + 0xa1, 0x53, 0x0e, 0xa4, 0x8f, 0x39, 0x83, 0xf5, 0xdd, 0x89, 0x1a, 0xa4, 0x11, 0xa4, 0x8d, 0x7c, + 0xac, 0x9b, 0xe7, 0xfe, 0xdc, 0xdb, 0xdf, 0x5d, 0xfe, 0x89, 0xc6, 0xf8, 0xf5, 0x2e, 0xa4, 0xf8, + 0x75, 0x90, 0xf5, 0xf5, 0x2a, 0xc8, 0xa4, 0xe7, 0x39, 0xd5, 0xa0, 0xbd, 0x96, 0xd6, 0x06, 0x34, + 0x0b, 0x05, 0xc8, 0xfe, 0xba, 0x0f, 0x67, 0x2c, 0xc5, 0x1d, 0xb1, 0x24, 0xff, 0x7d, 0x87, 0x4c, + 0x35, 0xf6, 0x49, 0x27, 0x6d, 0x12, 0x6b, 0x44, 0xae, 0xcf, 0xf1, 0x1a, 0xc2, 0x6b, 0x00, 0xaf, + 0x5d, 0x30, 0x7a, 0xdf, 0x16, 0x18, 0xfd, 0x3e, 0x8f, 0x97, 0x09, 0x2f, 0xcb, 0xff, 0xe4, 0x5a, + 0x51, 0x74, 0x65, 0x62, 0xa5, 0x68, 0x65, 0x7b, 0x4b, 0x68, 0xe5, 0xfc, 0xf6, 0xa2, 0xe2, 0xd5, + 0x6c, 0xd1, 0x68, 0xf2, 0xaa, 0x51, 0x12, 0x50, 0x5a, 0x33, 0x5a, 0xe8, 0x82, 0xd1, 0x1f, 0x3e, + 0xdc, 0x3d, 0x4f, 0xa9, 0xc2, 0xe7, 0x42, 0xbc, 0xa6, 0xe1, 0x25, 0x26, 0x53, 0xf7, 0xa1, 0x64, + 0xd1, 0x2f, 0xad, 0x19, 0xb9, 0x83, 0x30, 0xea, 0x7b, 0x1d, 0x46, 0x85, 0x4f, 0xf0, 0x3a, 0x87, + 0x17, 0xce, 0x25, 0x42, 0x47, 0xea, 0xee, 0xd1, 0xc1, 0x68, 0x79, 0xc3, 0x97, 0xc0, 0xe4, 0x4a, + 0x30, 0xe5, 0x46, 0xbc, 0x3c, 0x32, 0xcc, 0x4e, 0xbc, 0x0e, 0xa7, 0xee, 0x9e, 0x84, 0x4d, 0x08, + 0x03, 0x5e, 0x33, 0xf1, 0xfa, 0x9a, 0x7c, 0x9f, 0x89, 0xcd, 0x77, 0x41, 0x7e, 0xcf, 0x93, 0xe3, + 0xd9, 0x15, 0xa7, 0x13, 0x32, 0xa9, 0xf7, 0x99, 0xec, 0x4e, 0xcb, 0x5a, 0x4a, 0x1c, 0x35, 0x19, + 0xc8, 0xbb, 0x4d, 0x01, 0x0d, 0x72, 0x29, 0x89, 0x9d, 0xd5, 0x4c, 0x98, 0x01, 0xd7, 0x22, 0xc4, + 0x4c, 0x64, 0x40, 0xae, 0x83, 0x1c, 0xb8, 0x1e, 0x72, 0xe1, 0x06, 0x4c, 0x31, 0xcb, 0x05, 0xc3, + 0x30, 0xcc, 0x0d, 0x2b, 0x86, 0x95, 0x54, 0xdf, 0x4d, 0xd8, 0x87, 0x9b, 0xf6, 0xc0, 0xe8, 0x16, + 0xec, 0xd3, 0x2d, 0x02, 0x8c, 0x6e, 0xce, 0x94, 0xde, 0x93, 0xd7, 0xd3, 0xa9, 0x67, 0x16, 0xaf, + 0xc7, 0xab, 0x00, 0xaf, 0x32, 0xbc, 0x6e, 0x97, 0xbf, 0x1f, 0x90, 0xda, 0x6e, 0x73, 0x04, 0xaf, + 0x1e, 0xbc, 0x9e, 0xc3, 0xeb, 0x53, 0x18, 0xbd, 0x1b, 0xdb, 0xb2, 0xb7, 0x1f, 0xef, 0x6f, 0x48, + 0xdf, 0xd3, 0xfd, 0xee, 0x6d, 0x30, 0x7a, 0xd7, 0x1b, 0x93, 0xc3, 0xdd, 0x75, 0xf3, 0xab, 0x3c, + 0x15, 0xe0, 0x69, 0x8a, 0x36, 0xad, 0x8a, 0x36, 0x35, 0xf2, 0x35, 0xe5, 0x4b, 0xcb, 0xab, 0xdc, + 0x3c, 0x86, 0x15, 0xf0, 0xe5, 0x9d, 0x1d, 0xc1, 0x96, 0x90, 0xb0, 0x72, 0x4d, 0xd3, 0x3f, 0xcc, + 0x75, 0x14, 0xaf, 0xe7, 0x03, 0x4b, 0x57, 0xae, 0x59, 0xcd, 0x1e, 0xb5, 0x30, 0x77, 0x0d, 0x8f, + 0x15, 0xfe, 0x27, 0x77, 0x9d, 0xfb, 0x9f, 0xf9, 0xc5, 0x2b, 0xbf, 0xd3, 0xd6, 0x84, 0x9f, 0x60, + 0x94, 0x73, 0x7d, 0x01, 0x5f, 0xd3, 0xb9, 0x66, 0x4d, 0x4b, 0x03, 0x0b, 0xa9, 0xe0, 0x69, 0x77, + 0x99, 0x7d, 0x52, 0x90, 0x80, 0xae, 0x8d, 0xae, 0x8c, 0xae, 0x5d, 0xc3, 0x60, 0x6d, 0xf4, 0x93, + 0x08, 0xf7, 0x44, 0x5a, 0xd6, 0x35, 0xad, 0xe1, 0x3b, 0x3a, 0xa3, 0x7c, 0xa3, 0x5c, 0x9a, 0x44, + 0x14, 0x25, 0xd4, 0xd8, 0xb9, 0x16, 0xd3, 0x8c, 0xf0, 0xab, 0x9a, 0x9b, 0x56, 0xad, 0xe6, 0x2d, + 0xf8, 0x65, 0xbd, 0x8d, 0xa7, 0xdf, 0x79, 0xfc, 0x3f, 0xf0, 0x73, 0x93, 0xa0, 0xee, 0xc6, 0xc6, + 0x96, 0x8e, 0x10, 0xbf, 0xa6, 0x69, 0x55, 0x67, 0x47, 0xe3, 0xca, 0xc8, 0x77, 0xf8, 0x86, 0xb5, + 0x6b, 0xb4, 0xb0, 0x6a, 0x65, 0xa4, 0x31, 0x65, 0x56, 0x44, 0x82, 0xac, 0x68, 0x5f, 0xdb, 0xb6, + 0x32, 0x4a, 0xc0, 0x18, 0xd1, 0x14, 0x4d, 0x16, 0x2f, 0xbc, 0x36, 0xd2, 0xd2, 0xb9, 0x76, 0x0d, + 0xdf, 0xd2, 0x11, 0x6d, 0x8a, 0x44, 0xd6, 0x86, 0xa3, 0x25, 0x2c, 0x1b, 0xf6, 0xa3, 0x05, 0x84, + 0xf9, 0xa7, 0x9a, 0x2a, 0x04, 0x5b, 0xdb, 0xb0, 0xe6, 0x3b, 0x6b, 0xa2, 0x4d, 0xed, 0x14, 0x52, + 0xd0, 0xb8, 0xb2, 0xa9, 0xbd, 0xb3, 0x03, 0x1a, 0x3a, 0x3b, 0xa3, 0x6d, 0x9d, 0x2b, 0x1b, 0x9b, + 0x22, 0xa9, 0xcc, 0x30, 0xfa, 0x1f, 0x60, 0xa1, 0xb3, 0xa1, 0x25, 0x0a, 0x1d, 0x9d, 0x98, 0x65, + 0xb4, 0x05, 0xef, 0x8d, 0xed, 0x2b, 0x21, 0xdc, 0xd9, 0xd6, 0x06, 0x4d, 0xeb, 0xc3, 0x2b, 0x3b, + 0xd6, 0xb4, 0x74, 0x76, 0x24, 0xf7, 0xdb, 0xd3, 0x06, 0x10, 0x15, 0x08, 0x73, 0x6d, 0x6b, 0xfc, + 0x67, 0xbe, 0xdc, 0x5d, 0x5d, 0x5d, 0xe1, 0xe1, 0x6b, 0xeb, 0x6e, 0x15, 0xf8, 0xca, 0x5b, 0xfd, + 0xe5, 0x75, 0x55, 0xcb, 0xfc, 0x05, 0x7c, 0x9d, 0xb7, 0xaa, 0x96, 0x5f, 0x56, 0x53, 0x11, 0x70, + 0xd3, 0x3b, 0x8f, 0x2f, 0xfe, 0x65, 0x75, 0x7c, 0xed, 0xad, 0x35, 0x35, 0xcb, 0x02, 0x75, 0x08, + 0x2e, 0xfc, 0x23, 0xef, 0xa9, 0x58, 0x5e, 0x55, 0x5e, 0xa1, 0xfd, 0xb2, 0xb4, 0x78, 0xcb, 0xe2, + 0x0a, 0x7f, 0x45, 0xa0, 0xaa, 0x7c, 0xde, 0xff, 0xd5, 0x54, 0xe7, 0xcf, 0xe7, 0xab, 0x96, 0xf1, + 0xee, 0xf2, 0xf2, 0x8a, 0xda, 0x5a, 0xbe, 0x6e, 0x19, 0x2f, 0x54, 0x2f, 0x2b, 0x5f, 0x82, 0x2d, + 0x59, 0xdc, 0xb6, 0xbe, 0x84, 0xfd, 0xda, 0xf8, 0xea, 0x0a, 0xff, 0xe2, 0x3a, 0xaf, 0x14, 0xf6, + 0x7f, 0xb7, 0x46, 0x55, 0xcb, 0x16, 0x3a, 0xff, 0xe6, 0xea, 0xd4, 0x56, 0x2d, 0x16, 0x02, 0x15, + 0xee, 0x25, 0x95, 0x77, 0x96, 0xd7, 0x05, 0xaa, 0xef, 0x2c, 0x67, 0x06, 0x66, 0x56, 0xb6, 0x45, + 0x9a, 0x56, 0x36, 0x7e, 0x07, 0xb1, 0x2b, 0x4a, 0xc6, 0x6a, 0xd2, 0xc0, 0xeb, 0x5a, 0xda, 0x9b, + 0x3a, 0xd7, 0x46, 0xf9, 0x6f, 0x37, 0xb7, 0x20, 0xe2, 0x7f, 0x7b, 0x65, 0x0b, 0x43, 0xac, 0x60, + 0x67, 0x84, 0x97, 0xa9, 0x66, 0xb4, 0x93, 0x5f, 0xd5, 0xd9, 0x1e, 0x6e, 0x43, 0xcc, 0xe6, 0x3b, + 0xc3, 0x4d, 0x11, 0xc4, 0xbc, 0xce, 0x8e, 0x09, 0x49, 0x78, 0x24, 0xc0, 0x35, 0xd1, 0x96, 0xb6, + 0x36, 0xc2, 0xda, 0xef, 0xf0, 0x2b, 0x83, 0x88, 0x81, 0x7c, 0x54, 0x4a, 0xba, 0x80, 0x77, 0x37, + 0xe0, 0x58, 0xc2, 0x64, 0x27, 0x7c, 0x85, 0x89, 0x22, 0xe6, 0xdd, 0x59, 0xdb, 0x14, 0x15, 0x9a, + 0xd6, 0x44, 0xeb, 0x83, 0x4d, 0x91, 0xa5, 0x9d, 0x8d, 0x4d, 0x25, 0x7c, 0x45, 0x20, 0xb0, 0x0c, + 0xe9, 0xb6, 0x9c, 0x7b, 0x47, 0xd3, 0x3a, 0x4c, 0x29, 0xc2, 0x74, 0x3d, 0x70, 0x90, 0xaf, 0xec, + 0xf8, 0x0e, 0xbf, 0x6e, 0x65, 0x5b, 0x4b, 0x23, 0xbf, 0x1e, 0x3f, 0xe0, 0xdb, 0xf1, 0x8b, 0x35, + 0x05, 0xfc, 0xb7, 0x29, 0x63, 0x1c, 0x36, 0x98, 0xc7, 0x5a, 0x24, 0xf3, 0x34, 0x0c, 0x83, 0x2b, + 0x11, 0x61, 0xa5, 0xfc, 0x08, 0xe9, 0xab, 0x02, 0xdf, 0x2c, 0xe1, 0xcb, 0x03, 0x55, 0x75, 0x55, + 0xd8, 0xe2, 0x73, 0xf8, 0xa5, 0xcb, 0x02, 0x15, 0xbc, 0x07, 0xe3, 0xf8, 0x40, 0xc5, 0x37, 0x6f, + 0xad, 0xa8, 0xa5, 0xd6, 0xac, 0xf3, 0xba, 0xfd, 0xd8, 0x11, 0xcb, 0x02, 0xee, 0xc5, 0x15, 0xd8, + 0x2f, 0x7e, 0x7e, 0x71, 0xd5, 0xf2, 0x0a, 0x1c, 0x41, 0x6d, 0x8d, 0x7c, 0xc3, 0x77, 0xa2, 0x38, + 0xbe, 0xd7, 0xad, 0x49, 0x7b, 0x69, 0x6b, 0x0a, 0x92, 0xc5, 0x9e, 0x2f, 0x4d, 0x7f, 0x59, 0x65, + 0x65, 0x45, 0xe0, 0x52, 0xa9, 0xd7, 0xb9, 0x97, 0x5c, 0x55, 0xea, 0x72, 0x6b, 0xb1, 0x0c, 0x10, + 0x23, 0xd7, 0x30, 0x1a, 0x44, 0x43, 0x9a, 0x50, 0xd0, 0xb3, 0xd4, 0x3d, 0x21, 0xe4, 0xe2, 0x4f, + 0x58, 0x6b, 0xa6, 0x47, 0xf2, 0xbc, 0x1c, 0x43, 0xdf, 0x56, 0x32, 0x6b, 0x46, 0x05, 0x13, 0x3e, + 0xc3, 0x61, 0x7c, 0x67, 0xd3, 0xfa, 0xa6, 0x55, 0x77, 0xae, 0x6a, 0x6f, 0x4c, 0xf6, 0x46, 0x5d, + 0x04, 0x07, 0x3b, 0xb5, 0x78, 0x5b, 0x53, 0x47, 0x28, 0xda, 0x8c, 0x54, 0xac, 0xad, 0x71, 0x1e, + 0xdf, 0xb4, 0x7e, 0x55, 0x53, 0x53, 0xe3, 0x1a, 0xde, 0xb9, 0xa8, 0x88, 0xe8, 0x56, 0xb4, 0x33, + 0xb2, 0x26, 0xd5, 0xd9, 0x7f, 0x77, 0xaa, 0x45, 0x8b, 0x16, 0x2d, 0xfc, 0xdb, 0xd2, 0xad, 0xea, + 0x90, 0x70, 0x24, 0x9a, 0x48, 0x9f, 0x51, 0xaf, 0x70, 0x5b, 0x0b, 0x92, 0x37, 0xbe, 0xb6, 0xb9, + 0x73, 0x2d, 0x35, 0x34, 0x43, 0x94, 0xb6, 0xa6, 0x95, 0x6b, 0xa2, 0x34, 0x2a, 0x08, 0xcd, 0x17, + 0xf0, 0x96, 0x55, 0x9d, 0x91, 0x08, 0x66, 0x88, 0xd9, 0xcc, 0xbb, 0xfa, 0x6c, 0x08, 0x93, 0x57, + 0x76, 0x60, 0x76, 0xdf, 0x09, 0x37, 0x61, 0x27, 0xae, 0xbf, 0xba, 0xb2, 0xd6, 0x54, 0x2d, 0xbb, + 0x2d, 0xd2, 0x82, 0x83, 0x6a, 0x3e, 0xce, 0x1c, 0x44, 0xc9, 0xc3, 0x9d, 0x1d, 0x6b, 0x9a, 0xf8, + 0x60, 0xa4, 0xb3, 0x5d, 0x46, 0xfe, 0x02, 0x79, 0xc6, 0x91, 0x09, 0xf8, 0xd5, 0xa4, 0xd4, 0xb0, + 0xb2, 0x51, 0x46, 0x88, 0x92, 0x2f, 0xfb, 0x4a, 0x1e, 0xb5, 0x2d, 0x88, 0x6d, 0x2b, 0x27, 0x97, + 0xe2, 0xa2, 0xcf, 0xb0, 0x85, 0xd6, 0x86, 0xef, 0x5c, 0xdb, 0xd1, 0x82, 0x73, 0xca, 0x6d, 0xee, + 0x80, 0xbf, 0xca, 0xbf, 0xb8, 0x84, 0x66, 0xd9, 0x68, 0x04, 0xe7, 0x02, 0x6c, 0xe0, 0xce, 0x8e, + 0x36, 0x24, 0x2e, 0x6b, 0xc3, 0x34, 0x4c, 0xd7, 0x30, 0xd4, 0xea, 0xec, 0xc0, 0xff, 0x4d, 0x44, + 0x0e, 0xa8, 0x9d, 0x57, 0x32, 0x62, 0x50, 0x40, 0x31, 0x89, 0x59, 0x74, 0x12, 0xb6, 0x52, 0x2e, + 0x55, 0x8d, 0x4d, 0x38, 0x86, 0x83, 0xdf, 0x29, 0xe1, 0x6f, 0xc5, 0x9c, 0x70, 0x1e, 0x0b, 0x76, + 0x62, 0x35, 0xd6, 0xf0, 0xf6, 0xc4, 0xcf, 0x55, 0x7e, 0xe1, 0xb8, 0xa9, 0x6d, 0x3d, 0xef, 0x2c, + 0xc6, 0x99, 0x8b, 0xbe, 0x72, 0x14, 0x26, 0x68, 0x36, 0x5f, 0xc8, 0xc2, 0x56, 0x36, 0x36, 0x62, + 0x45, 0xd7, 0xac, 0xa4, 0x99, 0xbe, 0xa1, 0xad, 0x73, 0xd5, 0x6a, 0x4c, 0xb7, 0xba, 0x76, 0xfe, + 0x02, 0xa7, 0x03, 0x6e, 0xaf, 0xaa, 0xe1, 0x17, 0xa0, 0x8c, 0x9a, 0x1c, 0x2a, 0x94, 0x49, 0x00, + 0x49, 0x67, 0x6d, 0x4b, 0xa8, 0x03, 0xcb, 0x1d, 0x41, 0x02, 0x55, 0xd9, 0xb9, 0x16, 0x3b, 0x7b, + 0x4d, 0x22, 0x80, 0xd1, 0x4a, 0x82, 0x96, 0x3a, 0xcd, 0x86, 0x55, 0x8e, 0xf2, 0xc1, 0xb5, 0x91, + 0x68, 0x33, 0xb6, 0x0b, 0x43, 0x10, 0x46, 0x31, 0x65, 0xcb, 0x61, 0x13, 0x49, 0x60, 0x7b, 0xe3, + 0x9d, 0xac, 0xe7, 0x8a, 0x0a, 0x4b, 0xf8, 0x40, 0xd3, 0xb7, 0xd6, 0x22, 0x21, 0x44, 0x22, 0xc7, + 0xca, 0x44, 0x83, 0x61, 0xfd, 0x37, 0xd8, 0x80, 0x40, 0x1a, 0xba, 0xa6, 0xa5, 0x51, 0x36, 0x47, + 0x86, 0x28, 0x1d, 0x6a, 0x62, 0x91, 0xf3, 0xbe, 0x5a, 0x5a, 0x52, 0x13, 0x5c, 0x31, 0x45, 0x09, + 0xe4, 0xe2, 0x74, 0xa9, 0x01, 0xfe, 0x2f, 0x15, 0xf1, 0x4a, 0x49, 0xfd, 0x1d, 0x25, 0x64, 0x35, + 0x5f, 0xe8, 0xfc, 0xbf, 0x56, 0xc4, 0xbf, 0x35, 0xa9, 0x09, 0xf6, 0xe4, 0x12, 0x38, 0xd4, 0xde, + 0xb2, 0x2a, 0xd2, 0xc9, 0xa6, 0x56, 0x7e, 0xed, 0x9a, 0xa6, 0x36, 0x44, 0xbd, 0x82, 0x14, 0x2d, + 0x76, 0x87, 0xc3, 0x91, 0xce, 0xf5, 0x2d, 0xed, 0x34, 0x06, 0x3b, 0xd6, 0xb6, 0x37, 0xd0, 0x60, + 0x0a, 0xf2, 0x58, 0x1b, 0x69, 0xa2, 0x5d, 0xc3, 0xe3, 0x94, 0xcb, 0x50, 0xb2, 0x63, 0x65, 0x47, + 0xa7, 0xc4, 0x1c, 0xae, 0x61, 0xf3, 0x46, 0x2a, 0x89, 0xca, 0xa4, 0x4d, 0x3a, 0x9c, 0x9f, 0x3b, + 0xf8, 0xf4, 0x32, 0xd8, 0x78, 0x1a, 0xb3, 0xfc, 0xd2, 0xaa, 0xf2, 0xc0, 0x32, 0xef, 0xed, 0x97, + 0xfa, 0x64, 0x15, 0x32, 0x06, 0x98, 0x35, 0xfb, 0x48, 0xaa, 0xf0, 0x97, 0x41, 0x31, 0xce, 0x58, + 0x3b, 0x59, 0xda, 0x52, 0xc2, 0xe8, 0x52, 0x94, 0x6d, 0x2a, 0xd7, 0xc1, 0x68, 0x75, 0x71, 0x6a, + 0x3f, 0x7c, 0xe9, 0x89, 0xb4, 0xe7, 0x58, 0xba, 0x74, 0xf6, 0xa5, 0xf6, 0xeb, 0x46, 0x5d, 0x9b, + 0xaf, 0xbc, 0x4f, 0xee, 0x3c, 0x74, 0xb5, 0xfb, 0xe4, 0xce, 0x17, 0xbe, 0x7c, 0x9f, 0xdc, 0xd5, + 0xff, 0x37, 0xef, 0x93, 0x67, 0x7f, 0xd9, 0x3e, 0xb9, 0x73, 0xec, 0xf2, 0xfb, 0xe4, 0xce, 0xb3, + 0x93, 0xf7, 0xc9, 0x5d, 0xe1, 0x2b, 0xed, 0x93, 0x3b, 0x8f, 0x4f, 0xde, 0x27, 0x77, 0x9e, 0xba, + 0x78, 0x9f, 0xdc, 0x79, 0xfe, 0x6f, 0xde, 0x27, 0x67, 0xeb, 0x24, 0x92, 0xcd, 0x81, 0xe8, 0xd8, + 0x70, 0x0f, 0x5b, 0xaf, 0x6b, 0x06, 0xcd, 0xcb, 0xc3, 0x27, 0xef, 0xa1, 0x5d, 0xf2, 0x30, 0x88, + 0xea, 0xc2, 0x6b, 0x1c, 0x07, 0x99, 0xf5, 0xe1, 0x4f, 0x69, 0x67, 0xec, 0xaa, 0xbe, 0xc8, 0x71, + 0xf6, 0x4c, 0xfe, 0x22, 0x01, 0x97, 0x84, 0xd2, 0x14, 0xce, 0x03, 0x8d, 0x9c, 0xf2, 0xf9, 0x2b, + 0xc2, 0xe5, 0x2c, 0x14, 0x40, 0x93, 0x82, 0x63, 0xd6, 0x06, 0xec, 0xa0, 0x73, 0xda, 0x41, 0x1b, + 0x8d, 0xef, 0x21, 0x7f, 0x18, 0x10, 0x99, 0x42, 0xe7, 0x81, 0x8f, 0x0e, 0x80, 0x46, 0xd2, 0x67, + 0x3c, 0xd6, 0x7d, 0xac, 0x9b, 0x77, 0xbd, 0xf4, 0x8c, 0x5e, 0x4f, 0x5f, 0x64, 0xd9, 0x61, 0x0a, + 0x96, 0x97, 0x9d, 0xd8, 0x0c, 0xaa, 0xf4, 0xa5, 0x30, 0x5d, 0xda, 0xbb, 0xa3, 0x35, 0xc2, 0x97, + 0x86, 0xf5, 0xdd, 0xfe, 0xb5, 0x18, 0xab, 0xbe, 0x44, 0xac, 0x06, 0x63, 0xf5, 0xd2, 0x49, 0x25, + 0xbe, 0x19, 0x44, 0xbe, 0xc6, 0xd7, 0x0c, 0x96, 0xa0, 0x9e, 0x6c, 0x57, 0xeb, 0xf5, 0x0a, 0x1a, + 0x07, 0x00, 0x5d, 0xfa, 0x98, 0x84, 0x1d, 0xbc, 0xb4, 0xef, 0x6d, 0x87, 0xeb, 0x4c, 0x08, 0x6b, + 0x0c, 0xcc, 0xf5, 0x82, 0x8a, 0x56, 0x5e, 0xbf, 0xbe, 0x45, 0x03, 0xbe, 0x16, 0x98, 0x15, 0xbc, + 0x7d, 0x21, 0xad, 0xf3, 0xcc, 0xc2, 0x67, 0x4b, 0x48, 0x47, 0xab, 0x2b, 0x4b, 0xce, 0x41, 0xee, + 0x0f, 0xff, 0x20, 0xb2, 0x95, 0x96, 0x6a, 0x2d, 0xe4, 0x9a, 0xbb, 0xe0, 0xf5, 0x9d, 0x70, 0x2d, + 0x59, 0x00, 0xbb, 0x86, 0xad, 0xba, 0xe8, 0x29, 0xa6, 0xf0, 0x14, 0x5b, 0x8f, 0xc9, 0x0e, 0x2b, + 0x6b, 0xee, 0x49, 0x69, 0xa1, 0x32, 0x2b, 0xd6, 0x1a, 0xfd, 0xb5, 0x64, 0x5d, 0x21, 0x3b, 0x96, + 0xe8, 0x4f, 0x76, 0xb2, 0x4c, 0xe3, 0xdf, 0x1f, 0x0f, 0x33, 0x0f, 0xc6, 0xd2, 0xb9, 0x2c, 0x7a, + 0x17, 0xe9, 0xdd, 0xae, 0x65, 0x56, 0xef, 0xe7, 0x81, 0x68, 0x72, 0xf1, 0x81, 0xb9, 0x55, 0x58, + 0xab, 0x18, 0xd3, 0xd6, 0x0a, 0xd2, 0x9a, 0xe7, 0xb2, 0x8f, 0xc6, 0xc7, 0xbc, 0x7f, 0x2e, 0x75, + 0x9a, 0x3a, 0x39, 0x93, 0xc9, 0x0a, 0x0d, 0xcc, 0x7f, 0x6e, 0x07, 0x79, 0x8f, 0xc3, 0x9a, 0xb6, + 0x2e, 0x3e, 0xc3, 0x56, 0x04, 0x49, 0x0b, 0xed, 0x69, 0xe3, 0x92, 0x88, 0x96, 0x3d, 0x1d, 0x35, + 0x2e, 0x71, 0x7f, 0x04, 0xb3, 0x22, 0x1c, 0x69, 0xdd, 0x71, 0xc0, 0xc2, 0xf6, 0xd1, 0x59, 0x02, + 0x38, 0x4a, 0xe1, 0xe5, 0x67, 0x20, 0xc2, 0xc2, 0x76, 0x93, 0x27, 0x33, 0x38, 0xa0, 0xb3, 0xc2, + 0x74, 0xd8, 0x40, 0x16, 0x05, 0x04, 0x3b, 0xf0, 0xf2, 0xb7, 0x73, 0x2e, 0xfa, 0x76, 0x9b, 0xce, + 0x0e, 0x2a, 0xe0, 0x11, 0x6e, 0x8b, 0x0c, 0x63, 0x9c, 0x04, 0x13, 0x46, 0x08, 0x0e, 0x21, 0x9a, + 0xd9, 0x7d, 0x4e, 0x50, 0x14, 0x5b, 0xd9, 0x37, 0xb3, 0x57, 0x2d, 0x37, 0x60, 0xca, 0xc5, 0x0a, + 0x85, 0x07, 0x94, 0x01, 0x0f, 0x6f, 0x85, 0x56, 0xfc, 0xde, 0xb8, 0x0e, 0x04, 0xf7, 0x06, 0xc8, + 0xcd, 0xf9, 0xf3, 0xcf, 0x63, 0x77, 0x05, 0xdc, 0x35, 0x9b, 0xf6, 0xb9, 0x3b, 0xce, 0x61, 0xdd, + 0x5a, 0xdf, 0xa5, 0x33, 0x4a, 0x33, 0x02, 0x02, 0xc2, 0x75, 0x18, 0xbd, 0x11, 0x58, 0x07, 0xd9, + 0xd7, 0xbf, 0xf3, 0x78, 0x6c, 0x53, 0x4d, 0x77, 0xd1, 0xd4, 0xed, 0xde, 0x3d, 0xe5, 0x1d, 0x1f, + 0x52, 0x0b, 0x24, 0x4e, 0xee, 0x55, 0x97, 0x2e, 0xfb, 0x88, 0x23, 0x6b, 0x8c, 0x52, 0x99, 0x72, + 0x27, 0x96, 0x29, 0x08, 0xf1, 0x8d, 0xe2, 0x6b, 0x52, 0x1b, 0x3a, 0xca, 0x12, 0x6d, 0x68, 0xc7, + 0x94, 0xf1, 0x6a, 0xa5, 0x51, 0x5a, 0xf8, 0xbe, 0x74, 0x5a, 0x6c, 0x9d, 0xf5, 0xd5, 0x3e, 0xef, + 0x7a, 0x8e, 0x6c, 0xdb, 0x2b, 0x25, 0xed, 0x3f, 0xa9, 0x6d, 0xf9, 0xf2, 0xc8, 0xcc, 0xf4, 0x34, + 0xd9, 0x59, 0x16, 0x57, 0xa8, 0x52, 0x6e, 0x8d, 0x32, 0x31, 0xc7, 0xae, 0xa3, 0x74, 0x16, 0xe5, + 0xf9, 0xb7, 0x93, 0x0d, 0x96, 0xaa, 0xf3, 0x1a, 0x8e, 0xed, 0x88, 0xe8, 0xab, 0xb0, 0x8e, 0x4b, + 0x25, 0x7b, 0xb0, 0x5f, 0x90, 0x75, 0x6b, 0x9d, 0x21, 0x1e, 0x0f, 0x1e, 0x63, 0xb0, 0xbc, 0x94, + 0x67, 0x7d, 0x1f, 0xa6, 0x6f, 0x85, 0x75, 0x2c, 0xe5, 0x23, 0x7c, 0x2b, 0x74, 0x91, 0x07, 0x74, + 0x63, 0x2b, 0xb4, 0xae, 0xb8, 0x87, 0xb4, 0x30, 0xb2, 0x0e, 0x00, 0x69, 0xdc, 0xb6, 0xd6, 0x27, + 0xde, 0x66, 0xd0, 0x5b, 0x5d, 0x32, 0xee, 0xa5, 0x33, 0xd0, 0xaa, 0x3f, 0x00, 0x6e, 0xb2, 0x66, + 0x2d, 0xb5, 0x02, 0xd5, 0xd2, 0xd2, 0x09, 0x7c, 0xd8, 0x36, 0xd1, 0x82, 0xcf, 0x85, 0x3a, 0x33, + 0xd9, 0x63, 0x01, 0xc5, 0xe9, 0xeb, 0x08, 0xb3, 0xac, 0xe9, 0xfe, 0x0c, 0xad, 0xae, 0x94, 0xc6, + 0x5a, 0x32, 0xf4, 0xa8, 0x01, 0x42, 0xfa, 0x1b, 0x11, 0xf3, 0xfb, 0x71, 0x9e, 0x30, 0xe1, 0x1d, + 0x40, 0xec, 0x72, 0xde, 0x0c, 0x6f, 0x9e, 0xcb, 0x5b, 0x38, 0xf6, 0xdd, 0x38, 0x5b, 0xa7, 0x1d, + 0x1b, 0x06, 0xe9, 0x8e, 0xef, 0xff, 0xed, 0x7a, 0xc8, 0xc1, 0x62, 0x99, 0x16, 0x62, 0xee, 0xc5, + 0x61, 0xa4, 0x95, 0x12, 0x70, 0x91, 0xd6, 0x63, 0xe2, 0x7b, 0xd2, 0x8e, 0x65, 0x2b, 0xbf, 0x0f, + 0x61, 0x3f, 0xcd, 0xd2, 0xcc, 0x47, 0x84, 0x3e, 0x1b, 0xca, 0x66, 0xab, 0xae, 0x16, 0xcc, 0xf9, + 0xbf, 0x91, 0x05, 0xa4, 0x9c, 0xff, 0x9b, 0x37, 0x4e, 0xd4, 0x7d, 0x33, 0x2e, 0x4d, 0x69, 0x54, + 0xf2, 0x5a, 0xa4, 0x0a, 0x6f, 0xf2, 0x48, 0x78, 0x12, 0xfb, 0xd0, 0xac, 0x7d, 0x8d, 0x52, 0xfb, + 0x26, 0xbd, 0xa8, 0x01, 0x97, 0x97, 0xaa, 0x23, 0x3b, 0xfd, 0x93, 0x63, 0xb0, 0x42, 0xde, 0x4c, + 0xb2, 0xd1, 0x9c, 0x93, 0x2d, 0x3d, 0x01, 0xe4, 0xa4, 0xf2, 0x90, 0xf6, 0x46, 0xf5, 0x0a, 0xe6, + 0x4d, 0x70, 0x74, 0x51, 0x8d, 0x94, 0xde, 0x66, 0xa5, 0x94, 0x4b, 0xf8, 0x96, 0x4a, 0x18, 0xee, + 0x61, 0x96, 0x73, 0x68, 0x3e, 0x1d, 0x0e, 0xa9, 0xc3, 0x53, 0x0f, 0xc5, 0x42, 0x06, 0x06, 0xdb, + 0x9c, 0xe8, 0xdb, 0x07, 0x8f, 0x90, 0x1d, 0x45, 0x5f, 0x3e, 0x58, 0x71, 0xf4, 0x3c, 0x3c, 0x21, + 0x7f, 0xd0, 0xe7, 0x24, 0x4a, 0xc1, 0x9e, 0x14, 0xec, 0x57, 0x45, 0x65, 0x61, 0x4f, 0x52, 0xfc, + 0x84, 0x12, 0xf9, 0x14, 0x41, 0x8d, 0x4e, 0x09, 0x8a, 0xa0, 0x49, 0xcc, 0xd5, 0x29, 0x90, 0x26, + 0xd2, 0x9b, 0x2a, 0x98, 0x2d, 0xea, 0x74, 0x0a, 0xc4, 0xab, 0x4c, 0x3a, 0xe3, 0x1e, 0xd4, 0x5c, + 0x47, 0xf4, 0xc9, 0x2a, 0xaa, 0x04, 0xcc, 0x95, 0x9d, 0xed, 0xb1, 0x62, 0xcb, 0xc8, 0x3b, 0x1f, + 0x13, 0x5a, 0x68, 0x53, 0xb2, 0x85, 0xf4, 0x37, 0xfa, 0x80, 0x97, 0xf2, 0xd1, 0xe5, 0xd3, 0xd7, + 0x48, 0xb9, 0xf3, 0xb0, 0x9f, 0x32, 0x25, 0x0c, 0x22, 0xdc, 0x61, 0xd6, 0xcf, 0x91, 0x02, 0xf8, + 0x1e, 0x67, 0x1e, 0xe7, 0xee, 0xbb, 0x9e, 0x79, 0x7f, 0x32, 0xdd, 0x3b, 0x77, 0x35, 0xf0, 0xa0, + 0xa1, 0x1a, 0x2e, 0x67, 0x3a, 0x47, 0xb4, 0xc3, 0x41, 0xa9, 0x2f, 0x0c, 0xd3, 0x59, 0x33, 0x36, + 0x3b, 0x2a, 0xc0, 0xa5, 0x47, 0xe2, 0x2b, 0xfc, 0x94, 0x76, 0xa0, 0x6b, 0x9e, 0xf6, 0x3f, 0x28, + 0x9f, 0x73, 0xa3, 0x7c, 0xee, 0x60, 0x25, 0x79, 0x42, 0x2a, 0xc9, 0xdc, 0x25, 0x90, 0xc9, 0xe7, + 0x03, 0x4f, 0x3b, 0x62, 0x7a, 0xc0, 0x11, 0x9e, 0x8d, 0xe3, 0xaa, 0x15, 0x32, 0x59, 0x7a, 0xdb, + 0x52, 0xe9, 0xd1, 0xec, 0x4a, 0x3e, 0xc3, 0x69, 0xd5, 0x5d, 0x4c, 0xb3, 0xae, 0x7e, 0xc1, 0x9f, + 0xda, 0x19, 0xb9, 0xe0, 0x17, 0x04, 0x51, 0x11, 0xe5, 0x48, 0xcb, 0x69, 0xd1, 0x91, 0x94, 0x4d, + 0x29, 0x69, 0x0c, 0xc0, 0xa7, 0x4c, 0x4f, 0xf8, 0x21, 0xb2, 0x02, 0x0d, 0x67, 0xf4, 0xa5, 0xf1, + 0xfb, 0x27, 0x8f, 0x15, 0xb9, 0xbe, 0x2f, 0x62, 0x99, 0x1a, 0x98, 0xc5, 0x6d, 0xa2, 0x38, 0x5d, + 0xd8, 0x23, 0x5a, 0x98, 0x35, 0xb7, 0x0d, 0x7f, 0x33, 0xdd, 0x67, 0x80, 0xc7, 0x99, 0x24, 0x17, + 0xef, 0xd5, 0x78, 0xcf, 0xc2, 0x7b, 0x11, 0xde, 0xb3, 0xe7, 0xfa, 0xa0, 0x80, 0xce, 0x2a, 0xf8, + 0x7e, 0x02, 0xce, 0x25, 0x44, 0x3f, 0x96, 0xb2, 0xef, 0x47, 0x30, 0xaf, 0x88, 0xfc, 0x7c, 0x9a, + 0x9d, 0x89, 0xb3, 0xd6, 0xd3, 0xae, 0x79, 0x35, 0xd3, 0x4f, 0x6d, 0xc0, 0xaf, 0x62, 0x34, 0xfa, + 0xe7, 0xe2, 0x0c, 0x0b, 0xbd, 0x52, 0xeb, 0xca, 0xd4, 0x40, 0xc3, 0x5a, 0x21, 0xc6, 0x5a, 0x61, + 0x5f, 0x5a, 0x2b, 0x34, 0x83, 0x4e, 0xd2, 0xbf, 0xaa, 0x79, 0x9a, 0x5a, 0x02, 0xa9, 0x21, 0x2f, + 0xa7, 0x7f, 0xd2, 0xb8, 0x14, 0x47, 0x37, 0x3d, 0x9d, 0x4f, 0x6f, 0x1d, 0xc1, 0xe5, 0x13, 0x82, + 0x2a, 0xef, 0xb0, 0xa4, 0x77, 0x4c, 0xd6, 0xef, 0x99, 0x9d, 0x59, 0x85, 0x81, 0x66, 0xc1, 0xe6, + 0x50, 0x36, 0xfe, 0x06, 0x43, 0xb9, 0xfc, 0x37, 0xc9, 0xd3, 0x1f, 0xa5, 0xbb, 0xe2, 0x45, 0xb2, + 0xba, 0xe6, 0x39, 0x18, 0x54, 0xb3, 0xf9, 0xb1, 0x59, 0xaf, 0x30, 0xcd, 0x8f, 0x8f, 0x49, 0x7a, + 0xae, 0xc8, 0x0a, 0xdb, 0x99, 0xf5, 0xf6, 0x3c, 0x13, 0xd2, 0x1a, 0x03, 0x1d, 0xaa, 0xce, 0x5d, + 0x17, 0xdf, 0xdb, 0x1b, 0x0c, 0x18, 0xe4, 0x71, 0xe8, 0x6b, 0x05, 0x5d, 0xb0, 0x10, 0xbf, 0x76, + 0x48, 0x7c, 0x13, 0xa8, 0xf1, 0x72, 0x2d, 0x1e, 0x89, 0x1f, 0x62, 0x3c, 0xd1, 0xe8, 0xa2, 0xd7, + 0xa4, 0x5e, 0x97, 0x63, 0xa7, 0xe0, 0xd5, 0xcf, 0x78, 0x2a, 0x93, 0xe7, 0xa0, 0x6c, 0x59, 0x56, + 0xe7, 0x69, 0x25, 0x4d, 0x0b, 0xa4, 0x71, 0x69, 0xdc, 0x03, 0xf2, 0x0e, 0xb1, 0xc4, 0x5e, 0xa2, + 0x74, 0xaa, 0x9d, 0x0f, 0xb0, 0xbd, 0x44, 0x7d, 0xaa, 0xdc, 0x85, 0x80, 0x25, 0x27, 0x3b, 0xfa, + 0xad, 0xa0, 0x62, 0x71, 0x99, 0xa9, 0xb8, 0xcd, 0x2e, 0x6c, 0x77, 0x21, 0x58, 0x8d, 0x71, 0x7c, + 0x96, 0x05, 0xf2, 0x70, 0xee, 0x23, 0x4c, 0x54, 0xeb, 0x2d, 0x7a, 0xc4, 0x79, 0x01, 0xb0, 0xdc, + 0xc4, 0x49, 0xb4, 0x82, 0xc9, 0xa0, 0x57, 0xd0, 0x1a, 0xbd, 0x02, 0x39, 0x89, 0x9e, 0x84, 0x05, + 0x0a, 0x1c, 0x51, 0x9c, 0x4c, 0x11, 0x3e, 0x4a, 0x51, 0x18, 0x49, 0xcf, 0x8e, 0xe9, 0xca, 0xb7, + 0x80, 0xc9, 0x57, 0xd3, 0xa6, 0x21, 0x8b, 0x70, 0x71, 0x91, 0x76, 0x63, 0x93, 0x5a, 0xf4, 0x14, + 0xa3, 0x97, 0x63, 0x2a, 0x13, 0x31, 0xc4, 0x77, 0x0b, 0x2e, 0xe9, 0x92, 0xff, 0xbe, 0xb5, 0xec, + 0xa3, 0xb8, 0x28, 0xdb, 0xbb, 0xdd, 0x37, 0xd1, 0x32, 0xe6, 0xe2, 0x8f, 0xe0, 0x76, 0x3e, 0x85, + 0xe3, 0xc7, 0xc8, 0x06, 0x23, 0xb3, 0x43, 0x2a, 0xd9, 0x93, 0xcb, 0x26, 0x2d, 0xf5, 0xfb, 0x03, + 0x90, 0x2b, 0xdb, 0x93, 0x9b, 0x45, 0xef, 0x45, 0x06, 0x30, 0xb2, 0x77, 0x15, 0x98, 0xc9, 0xaa, + 0x82, 0x0b, 0x90, 0x22, 0x48, 0xf6, 0xe5, 0x0a, 0xc2, 0xb4, 0xab, 0xe5, 0x64, 0x6f, 0xd7, 0x43, + 0x11, 0x61, 0xb0, 0xdd, 0x0b, 0x25, 0xb2, 0xbd, 0xb9, 0x32, 0xbb, 0x0f, 0x04, 0xd9, 0xc2, 0x5c, + 0xa5, 0x1d, 0x1b, 0x86, 0x3d, 0x67, 0x81, 0xdf, 0xbe, 0x04, 0x02, 0xc2, 0x93, 0xb0, 0x1c, 0x67, + 0xdb, 0x6c, 0xb2, 0x34, 0x47, 0x73, 0xa3, 0x3e, 0xcd, 0xca, 0x9c, 0x29, 0x20, 0x3d, 0xfb, 0xb6, + 0xe2, 0xdc, 0x1b, 0xe4, 0x97, 0x30, 0x7d, 0xf0, 0x54, 0xa9, 0x9f, 0x93, 0x4b, 0xdb, 0x4b, 0xa5, + 0xfb, 0x7e, 0x21, 0xdc, 0x27, 0x97, 0xb6, 0x9f, 0x95, 0xd6, 0x0c, 0xdb, 0xe4, 0xd2, 0xee, 0x90, + 0x4b, 0xfb, 0xb0, 0x5c, 0xda, 0x9d, 0xe1, 0xa9, 0x58, 0xda, 0x47, 0xe5, 0xd2, 0x0d, 0xd8, 0xab, + 0x61, 0x17, 0x96, 0x62, 0x08, 0x4b, 0x91, 0x9a, 0xb3, 0x5a, 0x93, 0x1a, 0xf5, 0x3b, 0x65, 0xaf, + 0xdd, 0x4c, 0x9f, 0x94, 0xf8, 0xd7, 0x9a, 0xf7, 0x60, 0x36, 0xf6, 0xaa, 0x99, 0x6c, 0xac, 0x88, + 0x5a, 0xbe, 0xa6, 0x36, 0xc6, 0x30, 0xc3, 0x81, 0xe3, 0xf2, 0x13, 0x5f, 0x7f, 0xc8, 0x42, 0x27, + 0x5d, 0x86, 0x99, 0xb6, 0x8f, 0xfb, 0x9c, 0x66, 0x16, 0x86, 0xd0, 0xae, 0x9a, 0xe1, 0xeb, 0x35, + 0x90, 0x43, 0x3b, 0xf8, 0x7c, 0x4d, 0x80, 0xd9, 0x66, 0x66, 0xf6, 0xf3, 0x24, 0x2b, 0x18, 0x1a, + 0xd2, 0x46, 0x0f, 0xc7, 0xbf, 0xee, 0x4a, 0xd9, 0x6d, 0x66, 0xfa, 0xfb, 0xe4, 0xe9, 0xa3, 0x14, + 0xdb, 0x8c, 0x33, 0x32, 0x8f, 0x13, 0xa6, 0x09, 0xad, 0x73, 0xc1, 0x4b, 0xf6, 0x48, 0x91, 0xb2, + 0xbc, 0x2b, 0x58, 0xa1, 0x08, 0xaf, 0x9b, 0xf0, 0x2a, 0xc6, 0xeb, 0x66, 0x61, 0x10, 0x4a, 0x88, + 0x5a, 0x15, 0x2d, 0x48, 0x51, 0x2b, 0x9b, 0x44, 0x85, 0x7e, 0xc2, 0x93, 0x2f, 0x6f, 0x95, 0x44, + 0x45, 0xc8, 0xcb, 0x27, 0xef, 0xb2, 0xd4, 0x10, 0x5f, 0x51, 0xc2, 0x6c, 0x6c, 0x7f, 0x63, 0x9b, + 0xb8, 0xc1, 0x64, 0x03, 0x2d, 0xb3, 0xc9, 0x85, 0x98, 0x59, 0x54, 0x61, 0x57, 0xf8, 0xb7, 0x4b, + 0x32, 0x4e, 0xf0, 0x8e, 0xfa, 0x9e, 0xb9, 0x02, 0x94, 0xb0, 0x70, 0x1f, 0x59, 0xb6, 0x62, 0xbe, + 0x1a, 0xa4, 0xb3, 0xb0, 0x45, 0x2c, 0xb4, 0x66, 0x52, 0xe8, 0x4d, 0x2c, 0xb4, 0x7e, 0x52, 0x68, + 0x31, 0x0b, 0xbd, 0x63, 0x52, 0xe8, 0xcd, 0xcc, 0x4e, 0x63, 0xcf, 0xa5, 0x4e, 0x75, 0x25, 0xac, + 0xb9, 0x91, 0xbd, 0x57, 0x69, 0xd7, 0x9e, 0x9d, 0x6d, 0xa8, 0x32, 0x4d, 0xad, 0xe9, 0xc1, 0xb2, + 0x8f, 0x56, 0x17, 0x5a, 0x56, 0xc3, 0x2c, 0xb6, 0x0b, 0x6e, 0xf6, 0xed, 0x82, 0x82, 0x10, 0x8f, + 0xbc, 0x13, 0xd9, 0xd4, 0x58, 0x81, 0x7c, 0x99, 0x68, 0xb7, 0x41, 0x01, 0xd5, 0x47, 0xf8, 0x29, + 0x51, 0x40, 0xa6, 0xe7, 0x61, 0xa8, 0xbf, 0x77, 0xcf, 0xbd, 0xc1, 0x23, 0x49, 0x08, 0x2b, 0xdb, + 0x33, 0x55, 0xd0, 0xc5, 0xd7, 0x30, 0x08, 0x3d, 0xd3, 0xc4, 0x3f, 0x2b, 0x9f, 0x50, 0x79, 0xd8, + 0xfb, 0xe7, 0x62, 0xda, 0x59, 0xdd, 0x6c, 0xef, 0xf2, 0x7a, 0x1c, 0x00, 0x51, 0xd6, 0xba, 0xab, + 0xd2, 0xac, 0xbc, 0xb2, 0xf3, 0x23, 0x9c, 0x2e, 0xc7, 0x0a, 0xaf, 0xe8, 0x54, 0x90, 0x11, 0x54, + 0xcf, 0xee, 0x82, 0x72, 0x88, 0x9a, 0xad, 0xb0, 0x27, 0x3c, 0x75, 0x68, 0x53, 0x13, 0x9d, 0x05, + 0xd1, 0x4a, 0xbc, 0x20, 0x9d, 0x71, 0x7d, 0xc9, 0x0e, 0xeb, 0x44, 0xad, 0x5e, 0xa9, 0x06, 0xb8, + 0x69, 0xb6, 0x0b, 0xd6, 0x85, 0xa3, 0x47, 0xfb, 0x10, 0x23, 0x0d, 0x0c, 0x6f, 0xd7, 0x42, 0x8e, + 0xbd, 0x1c, 0xf2, 0x98, 0x9d, 0x3d, 0x53, 0x04, 0xb2, 0xac, 0x70, 0xec, 0xd6, 0x6e, 0xc2, 0x29, + 0xe6, 0x6d, 0xc3, 0xc2, 0xf4, 0x6e, 0x2b, 0xf1, 0xc9, 0xc1, 0xac, 0xf6, 0x48, 0xd6, 0x6b, 0x16, + 0xe3, 0x53, 0x71, 0x58, 0x81, 0xbf, 0xa5, 0xf6, 0x4e, 0xe8, 0x02, 0x2f, 0xfe, 0xc6, 0x98, 0x5d, + 0x3e, 0x1a, 0x97, 0x35, 0x84, 0xff, 0x7a, 0x0e, 0xea, 0x64, 0x5b, 0x7b, 0xf5, 0xb2, 0xad, 0xbd, + 0x15, 0x3e, 0x55, 0x50, 0xc5, 0xac, 0x66, 0x11, 0x94, 0xc8, 0x97, 0x96, 0x7b, 0x96, 0x7b, 0x30, + 0x4c, 0xcd, 0x97, 0x7a, 0x96, 0xd5, 0x32, 0xeb, 0x7c, 0x38, 0x2e, 0xda, 0x58, 0xba, 0x61, 0x1c, + 0x1d, 0x06, 0xc6, 0x5b, 0x4a, 0xd6, 0xf8, 0xb2, 0x90, 0x6a, 0x8b, 0x11, 0x4e, 0xb2, 0x21, 0x19, + 0x3f, 0x81, 0x7d, 0x94, 0x99, 0x7e, 0x3a, 0x85, 0xb8, 0x69, 0x0f, 0xd9, 0x9e, 0x68, 0x64, 0xfa, + 0xa9, 0x65, 0x26, 0x3b, 0x38, 0xcc, 0x76, 0x28, 0x24, 0xab, 0x06, 0x38, 0x33, 0x97, 0x45, 0x92, + 0x27, 0x2d, 0xc6, 0xb4, 0xd2, 0x0c, 0xc9, 0x79, 0x71, 0x86, 0xd4, 0xcc, 0xed, 0x04, 0x13, 0xe8, + 0xf0, 0xd7, 0x02, 0xfa, 0x99, 0x9d, 0x80, 0x33, 0x03, 0x62, 0xf4, 0x4c, 0xbc, 0xb2, 0xf1, 0xba, + 0x0e, 0xaf, 0x1c, 0xfc, 0xda, 0x39, 0xd3, 0x05, 0xd7, 0x07, 0xc8, 0x6f, 0x89, 0x33, 0x4c, 0xb3, + 0x7b, 0x2e, 0x62, 0xcb, 0x2c, 0xbc, 0x8c, 0x78, 0x39, 0xf1, 0xaa, 0x9f, 0x4b, 0x56, 0x2c, 0x57, + 0xe0, 0x6f, 0x29, 0x88, 0xbe, 0x9e, 0x50, 0x25, 0x72, 0x15, 0xc5, 0x41, 0x97, 0xa3, 0x94, 0x77, + 0xd0, 0xec, 0xac, 0xe7, 0x26, 0x68, 0x97, 0x96, 0x84, 0x4c, 0x46, 0x90, 0x66, 0x85, 0xf5, 0x9c, + 0xd7, 0xb3, 0xa3, 0x5b, 0xb7, 0x19, 0x5b, 0x6b, 0x46, 0x83, 0x5e, 0xcd, 0x64, 0x44, 0x81, 0xfc, + 0x42, 0x97, 0x90, 0x97, 0x1a, 0x9a, 0x8b, 0x97, 0x69, 0xa1, 0x0e, 0x67, 0xd8, 0x1a, 0xc4, 0xcd, + 0x64, 0x6d, 0xc7, 0xb2, 0x35, 0x4a, 0xe0, 0x42, 0x59, 0x0c, 0x9f, 0xb4, 0x88, 0x65, 0x79, 0xfe, + 0x7e, 0xf2, 0x27, 0x59, 0xdf, 0x27, 0x69, 0x53, 0xf4, 0x18, 0xad, 0xbe, 0xfa, 0xbe, 0x1f, 0xbd, + 0x10, 0xe6, 0x9e, 0x8b, 0x91, 0xad, 0xd5, 0xf6, 0x0e, 0x9d, 0x13, 0xb8, 0xc3, 0x33, 0x57, 0x95, + 0xb0, 0x96, 0xb8, 0xbe, 0x32, 0xc5, 0x3f, 0x6b, 0xf3, 0x5d, 0x30, 0x8b, 0x77, 0xcd, 0x11, 0xa0, + 0x80, 0x6f, 0xc7, 0xa7, 0x52, 0x0d, 0x6d, 0x4d, 0x6f, 0x0a, 0x22, 0xfe, 0xcf, 0x71, 0xc1, 0x3e, + 0xe2, 0x89, 0x24, 0x7f, 0x95, 0x81, 0xfb, 0xea, 0xbf, 0x1f, 0x56, 0x0c, 0xdd, 0x17, 0xdc, 0x33, + 0xf9, 0xd4, 0x09, 0xce, 0xc7, 0x79, 0x44, 0xfb, 0x51, 0xd6, 0x26, 0xca, 0x42, 0xb3, 0x1a, 0xd2, + 0x2c, 0x23, 0x88, 0x99, 0xb5, 0x31, 0x13, 0x68, 0x05, 0xe0, 0xae, 0x79, 0x4a, 0x83, 0xcd, 0x8b, + 0x23, 0xfa, 0x43, 0xe4, 0xed, 0x1c, 0x39, 0xe0, 0xeb, 0xee, 0xd4, 0xd6, 0x76, 0xeb, 0x1c, 0xc0, + 0xe7, 0xc0, 0x2a, 0x66, 0xc1, 0x8f, 0xa4, 0x61, 0x94, 0xd0, 0x57, 0xe0, 0x5c, 0x27, 0xe2, 0xa5, + 0xa3, 0x59, 0x95, 0xfc, 0x99, 0x4a, 0x5a, 0x52, 0x6c, 0x4c, 0xbc, 0x26, 0x6b, 0x60, 0x17, 0x63, + 0xea, 0xa5, 0xd8, 0xbb, 0x2e, 0xc4, 0x78, 0x0b, 0x58, 0x51, 0xea, 0xcb, 0x37, 0x32, 0x8b, 0x63, + 0x6f, 0x55, 0xcd, 0x76, 0x83, 0x4d, 0x7a, 0xc6, 0xa7, 0xf9, 0x46, 0x78, 0xeb, 0x1e, 0xbc, 0x17, + 0x20, 0xbe, 0xdb, 0x11, 0xca, 0xc1, 0x2b, 0xde, 0xea, 0xc5, 0xe7, 0x05, 0xb3, 0x05, 0xec, 0x33, + 0x3b, 0x2c, 0xc4, 0x19, 0x89, 0xf2, 0x99, 0x45, 0x5e, 0x09, 0x25, 0x99, 0x09, 0x31, 0x8e, 0x66, + 0x11, 0xd3, 0x2d, 0xc4, 0x2b, 0x91, 0x65, 0xd2, 0x1a, 0xa6, 0x65, 0x84, 0xe3, 0xe1, 0xed, 0x41, + 0x9c, 0x45, 0xf2, 0xd8, 0x79, 0x6f, 0x1b, 0xb3, 0xe0, 0xda, 0x0a, 0x8f, 0x4a, 0x23, 0x9b, 0x74, + 0xb9, 0xf1, 0x6e, 0xb9, 0x6c, 0x19, 0xad, 0xff, 0xdf, 0x2d, 0xe3, 0x15, 0x4a, 0x77, 0xdc, 0xfb, + 0x67, 0xa0, 0xd3, 0x93, 0x2e, 0x94, 0xed, 0xc8, 0x8b, 0x32, 0x79, 0x90, 0xd5, 0x49, 0x96, 0x3a, + 0xfd, 0x0f, 0x62, 0x49, 0x6f, 0x80, 0x52, 0x56, 0xc3, 0x7f, 0x98, 0x4d, 0x7c, 0xb8, 0x0b, 0xf3, + 0x9e, 0x95, 0xcc, 0xfb, 0x41, 0x9c, 0xb3, 0x8a, 0x30, 0x4f, 0x1d, 0x94, 0x30, 0x98, 0xb2, 0x09, + 0xf9, 0xf0, 0xd5, 0x6f, 0x96, 0x42, 0xc2, 0x2e, 0x2b, 0xb3, 0x24, 0x62, 0x30, 0xad, 0x06, 0xeb, + 0xaf, 0x90, 0xb6, 0x86, 0x3c, 0x69, 0x54, 0x8f, 0xea, 0xa2, 0x66, 0x9c, 0xfd, 0xcb, 0x28, 0x52, + 0xcb, 0x94, 0x8f, 0x78, 0xeb, 0x1f, 0xac, 0xab, 0x1a, 0xb9, 0x30, 0x46, 0x7e, 0xed, 0x50, 0x8a, + 0xed, 0xc7, 0xdc, 0x12, 0x9a, 0x2d, 0xd0, 0x7e, 0x06, 0x47, 0xa9, 0x99, 0x69, 0xb5, 0xcb, 0xf6, + 0x5d, 0x10, 0x3f, 0xf6, 0x30, 0x8a, 0x1e, 0x4b, 0x58, 0x61, 0x26, 0xfb, 0xb4, 0x13, 0x62, 0x5e, + 0x98, 0x10, 0x63, 0xc7, 0x99, 0xd4, 0x8e, 0x1c, 0x27, 0x19, 0x91, 0xe1, 0x48, 0xf3, 0x11, 0x29, + 0x33, 0x59, 0x01, 0x92, 0xa1, 0x6f, 0x4a, 0xc9, 0x5b, 0x79, 0x93, 0x53, 0xba, 0xe9, 0x91, 0xf4, + 0x94, 0x18, 0x5d, 0x41, 0x7a, 0x61, 0xed, 0x04, 0x47, 0x91, 0x1d, 0xac, 0xe6, 0x56, 0xb0, 0xf2, + 0xab, 0x51, 0x86, 0xb0, 0xc0, 0xcd, 0xa4, 0x83, 0x7b, 0xa8, 0x13, 0xf9, 0x12, 0x30, 0x4e, 0xe4, + 0x29, 0x5e, 0x24, 0x3f, 0x44, 0xa1, 0x2c, 0xac, 0x9b, 0x94, 0xe2, 0xc7, 0x89, 0x14, 0x93, 0x23, + 0xa8, 0x0b, 0x5b, 0xc8, 0x2a, 0xd9, 0xc4, 0x9c, 0x53, 0x0e, 0xb9, 0xc9, 0xf0, 0x75, 0x14, 0xee, + 0x13, 0x42, 0x99, 0x7a, 0x0b, 0xe4, 0x90, 0x84, 0xb2, 0x8e, 0x7b, 0xfb, 0x71, 0x51, 0xb1, 0x0e, + 0xa0, 0x5c, 0x0f, 0x69, 0xa3, 0x85, 0xcd, 0x25, 0xa9, 0xd1, 0x42, 0x3e, 0x85, 0xe0, 0x80, 0x54, + 0x0a, 0x1f, 0xf2, 0x8f, 0xe9, 0x5e, 0x91, 0x8c, 0xa0, 0xe1, 0x80, 0xec, 0xdd, 0x0c, 0x24, 0xca, + 0x53, 0x2c, 0x4b, 0xf3, 0x29, 0x09, 0x0f, 0xe9, 0xd9, 0xab, 0x64, 0xbf, 0x1c, 0xaf, 0x37, 0xa8, + 0x04, 0xc2, 0x00, 0xd4, 0xa7, 0x9d, 0x29, 0x2b, 0x08, 0xf4, 0x84, 0x67, 0x0c, 0xf7, 0x04, 0x8b, + 0x2f, 0x59, 0xcf, 0xec, 0x64, 0xba, 0xab, 0x12, 0xf5, 0x44, 0x69, 0xa6, 0xc4, 0x9e, 0x2f, 0xf7, + 0xac, 0x64, 0xd5, 0xc8, 0x7a, 0xf9, 0xd2, 0x8b, 0x9a, 0x28, 0x54, 0x31, 0x8c, 0xc0, 0xbe, 0xdf, + 0x16, 0xe5, 0x26, 0xb6, 0x52, 0x98, 0xce, 0x9d, 0x4c, 0x6a, 0xa1, 0x4b, 0xd3, 0x8d, 0x1c, 0xe4, + 0x77, 0x8d, 0xa9, 0x9a, 0xbf, 0x48, 0x69, 0xef, 0x67, 0x5e, 0x0c, 0x73, 0x37, 0x93, 0x2d, 0xf7, + 0xae, 0xbc, 0x94, 0x75, 0x2f, 0x4a, 0x85, 0xe6, 0x6a, 0xec, 0xc7, 0xe2, 0x60, 0x91, 0x8f, 0xbc, + 0xec, 0x3a, 0x88, 0xdf, 0x42, 0x4c, 0xb5, 0xc0, 0xc6, 0xb7, 0x7b, 0x89, 0x83, 0x9e, 0x02, 0x41, + 0x3d, 0x7b, 0x1f, 0x92, 0xde, 0xbf, 0x0b, 0x21, 0x9d, 0xc6, 0x8a, 0x3c, 0xf6, 0xbe, 0x90, 0x26, + 0x9c, 0x29, 0xaa, 0xc3, 0x2a, 0x9a, 0xd5, 0x70, 0xfe, 0x75, 0x4a, 0xfa, 0xb6, 0x07, 0x37, 0x85, + 0x74, 0x92, 0x46, 0x1b, 0xd8, 0x6a, 0xfa, 0x44, 0xbe, 0x36, 0xd6, 0x7a, 0x3a, 0xd9, 0x36, 0x3f, + 0x92, 0x6d, 0xfc, 0x30, 0x0b, 0x23, 0xa0, 0x63, 0xf3, 0xbf, 0x6c, 0x21, 0x4c, 0x2a, 0x11, 0xe2, + 0xab, 0x81, 0xca, 0x11, 0xcc, 0x0c, 0xab, 0x86, 0xba, 0x1b, 0x35, 0x92, 0x1d, 0xb1, 0x78, 0x0d, + 0x8f, 0xe9, 0x63, 0x3b, 0x5f, 0x13, 0x04, 0xae, 0x38, 0xaa, 0xda, 0xd3, 0xdd, 0x04, 0xf0, 0x82, + 0xdc, 0x06, 0x1a, 0xdf, 0x3c, 0xb8, 0x09, 0x65, 0xc2, 0xc7, 0x30, 0x5e, 0x4f, 0x1a, 0x64, 0xd8, + 0x7f, 0x27, 0xd3, 0xfb, 0x92, 0x4e, 0x4e, 0xfe, 0x63, 0x0e, 0xd4, 0x5f, 0xa2, 0xcd, 0x14, 0xc9, + 0xda, 0xde, 0x89, 0xe3, 0xf2, 0x9b, 0xfe, 0xfe, 0x4b, 0xb5, 0x2b, 0x5e, 0xcf, 0x51, 0x1c, 0x8d, + 0x13, 0xe1, 0x87, 0x6c, 0x1d, 0xb0, 0x94, 0x70, 0x96, 0xea, 0x30, 0xf6, 0x2e, 0xcd, 0x55, 0xcd, + 0xc5, 0xd0, 0x4f, 0xf7, 0xd0, 0x1e, 0x60, 0xe7, 0x53, 0x7c, 0x56, 0x28, 0x6c, 0x03, 0xb8, 0x9f, + 0x85, 0x15, 0xc0, 0x0e, 0xba, 0x07, 0x07, 0xe1, 0x61, 0x71, 0x03, 0x3d, 0xb5, 0x94, 0x48, 0xd0, + 0xcd, 0xfb, 0x51, 0x36, 0x77, 0xb5, 0x05, 0xc5, 0x3a, 0xde, 0xfd, 0x4f, 0xbd, 0x26, 0x26, 0x83, + 0xc5, 0x60, 0x9d, 0x62, 0x6f, 0x6f, 0xa3, 0xe6, 0x9b, 0xdd, 0xeb, 0xd4, 0x7b, 0xbb, 0x9b, 0xcc, + 0x04, 0xd7, 0x64, 0x91, 0xe0, 0x1b, 0x07, 0x10, 0xbe, 0x27, 0x54, 0xc6, 0x9e, 0xcd, 0x52, 0xaa, + 0xab, 0x1e, 0xc5, 0x54, 0x6d, 0x17, 0xa5, 0xda, 0x13, 0xd2, 0xb3, 0x3c, 0x2d, 0x12, 0x54, 0xd3, + 0x00, 0x3c, 0xac, 0x19, 0xc4, 0x3e, 0x5b, 0x28, 0x6a, 0x34, 0xc3, 0x70, 0x2d, 0x79, 0x57, 0x96, + 0xda, 0x5d, 0x3a, 0xbf, 0x15, 0x18, 0x80, 0x82, 0x2c, 0x1a, 0x6b, 0xdd, 0xde, 0x67, 0xb0, 0xf6, + 0x4e, 0xb2, 0x74, 0x93, 0xb2, 0xa9, 0x6e, 0x93, 0x6d, 0x0c, 0xea, 0xed, 0x30, 0xad, 0xbd, 0xc0, + 0x37, 0x00, 0x27, 0x83, 0x3a, 0x9a, 0x2d, 0x43, 0xea, 0xf0, 0x7c, 0xc4, 0xca, 0x93, 0x38, 0x4e, + 0x5e, 0xc5, 0xeb, 0x75, 0xbc, 0xde, 0xc0, 0xaf, 0xad, 0xc2, 0xcf, 0x90, 0xef, 0xc1, 0x3b, 0xa8, + 0xc4, 0x9d, 0x8c, 0x76, 0x50, 0xcf, 0x1a, 0xd8, 0xf9, 0xa1, 0x1b, 0xa8, 0x7d, 0xcd, 0x16, 0x76, + 0xd2, 0x5f, 0x6a, 0x63, 0x65, 0x6a, 0x14, 0x20, 0xe6, 0x7e, 0x3b, 0xb1, 0x42, 0x13, 0xd4, 0xca, + 0xd6, 0xe5, 0x7a, 0x6b, 0xfa, 0x98, 0xe5, 0x5b, 0x3d, 0xd2, 0xf8, 0x1c, 0xb2, 0x99, 0x85, 0xe5, + 0xce, 0x43, 0x8c, 0x08, 0x87, 0xc9, 0x26, 0x3b, 0xc0, 0xe0, 0x84, 0x1e, 0xa3, 0xd4, 0x32, 0xa4, + 0xd4, 0x0c, 0x70, 0x51, 0x8c, 0x4a, 0x8a, 0x91, 0x64, 0xdd, 0xb7, 0xb7, 0x6c, 0x06, 0xc4, 0xaa, + 0x37, 0x68, 0x65, 0x70, 0xa8, 0xa7, 0x31, 0x87, 0xac, 0x05, 0x11, 0x8e, 0xde, 0x3c, 0x55, 0xc2, + 0x51, 0x93, 0x14, 0xa7, 0xa3, 0x54, 0x58, 0x0a, 0x0a, 0xa6, 0x6b, 0x6f, 0x85, 0x57, 0x31, 0x64, + 0xc8, 0xdf, 0xff, 0x0a, 0x62, 0x18, 0x7d, 0xdf, 0xdf, 0x83, 0xad, 0x49, 0x90, 0xfa, 0x60, 0xde, + 0x64, 0xcc, 0xa3, 0x6f, 0x13, 0xd8, 0x47, 0xe5, 0x96, 0xf4, 0x1d, 0x8b, 0xe9, 0x6c, 0x52, 0xde, + 0x3a, 0x20, 0xbb, 0x8b, 0x04, 0x61, 0xc2, 0xf6, 0x40, 0xee, 0xcf, 0x90, 0x2c, 0xab, 0xe2, 0xa2, + 0x36, 0xd9, 0x24, 0xb7, 0x89, 0xa4, 0x07, 0x1b, 0xc5, 0x36, 0x51, 0x32, 0x09, 0x59, 0x7a, 0x6f, + 0x64, 0x3e, 0x2b, 0x3e, 0xa4, 0x16, 0x61, 0x9e, 0xac, 0x01, 0x4e, 0x4e, 0xa8, 0xbb, 0x22, 0xd5, + 0x2a, 0xd9, 0x70, 0x51, 0x8c, 0xdc, 0x2a, 0xc8, 0xff, 0x2a, 0xdf, 0xbe, 0xa7, 0x87, 0x2c, 0xc4, + 0xd8, 0x92, 0xed, 0xd2, 0xdd, 0x88, 0x93, 0xb9, 0x9d, 0xed, 0x95, 0xdc, 0xdc, 0x22, 0xb5, 0x0b, + 0xc5, 0xd1, 0xd9, 0xad, 0xed, 0x74, 0xaa, 0x9a, 0x97, 0xb4, 0xc8, 0xd7, 0x31, 0xdc, 0x65, 0x96, + 0x0f, 0xa4, 0xb6, 0x22, 0xaf, 0x83, 0x0a, 0xb9, 0xad, 0x76, 0xf9, 0xfb, 0x97, 0xe0, 0x4c, 0xcc, + 0xcf, 0x7d, 0x09, 0x5b, 0xe6, 0x07, 0xd8, 0x2a, 0x62, 0x4e, 0x02, 0x8e, 0xd9, 0x36, 0x52, 0xd8, + 0xa7, 0x4b, 0x50, 0xb7, 0x6e, 0x62, 0x63, 0x67, 0x53, 0xc7, 0x5b, 0x48, 0x01, 0xde, 0xf8, 0xb2, + 0xd6, 0x34, 0xe5, 0xc9, 0x9a, 0x98, 0x69, 0xa7, 0xd3, 0x26, 0xd4, 0xcd, 0xca, 0xa4, 0x91, 0x34, + 0x0a, 0x4b, 0x78, 0x14, 0x54, 0x23, 0xe6, 0x72, 0x21, 0x31, 0xb1, 0x36, 0xc0, 0x4a, 0xc9, 0x68, + 0xd3, 0xcd, 0xbf, 0x5f, 0xcc, 0x56, 0x7d, 0xfd, 0x0f, 0x5c, 0x82, 0x06, 0x70, 0x32, 0xe6, 0x24, + 0xbe, 0x4a, 0x7c, 0x33, 0x22, 0xad, 0x7e, 0x14, 0x1c, 0x80, 0xd1, 0x92, 0xeb, 0xfc, 0x0f, 0x84, + 0xe7, 0x21, 0x2e, 0x9c, 0xac, 0xef, 0x13, 0x35, 0x12, 0x26, 0x07, 0x09, 0x6b, 0x0d, 0x88, 0xb5, + 0xf2, 0xc9, 0xb7, 0xb1, 0xfd, 0x92, 0xa5, 0xa2, 0xc4, 0x2a, 0x08, 0x2b, 0xf5, 0xb5, 0x9e, 0x83, + 0xad, 0xae, 0x64, 0xcb, 0x59, 0xe1, 0x75, 0xe6, 0x13, 0x3a, 0x93, 0xe5, 0x22, 0xb7, 0x9f, 0x11, + 0x43, 0x5f, 0x4e, 0xe0, 0x5b, 0x77, 0x02, 0xdf, 0x42, 0x5a, 0xec, 0x9f, 0x6c, 0x7c, 0x7b, 0x5d, + 0xd4, 0x4f, 0xb4, 0x06, 0x38, 0x16, 0x90, 0x56, 0x37, 0x90, 0xaa, 0x16, 0x33, 0x3b, 0xd7, 0x48, + 0xe5, 0xf6, 0x26, 0xbc, 0x8c, 0x22, 0xd7, 0x4e, 0xab, 0x64, 0xbe, 0xc7, 0x91, 0xda, 0xbb, 0x26, + 0x4b, 0x66, 0xb4, 0x92, 0xcd, 0xc6, 0xce, 0xea, 0xb4, 0x36, 0xc8, 0x9f, 0xd4, 0x92, 0x39, 0x64, + 0x75, 0x8e, 0xbc, 0x39, 0x88, 0xcc, 0x1a, 0xe9, 0x5f, 0x4b, 0x0d, 0xe0, 0x8d, 0x55, 0xba, 0x22, + 0x33, 0x4e, 0x36, 0xb3, 0xf5, 0xb1, 0xb0, 0x39, 0x9f, 0xd2, 0x36, 0x62, 0x1a, 0xf8, 0xcd, 0x0a, + 0x4b, 0x8d, 0x69, 0x1e, 0xe1, 0x9a, 0x3c, 0xd6, 0x59, 0x0e, 0x89, 0x37, 0x3a, 0x65, 0x9d, 0xb4, + 0x14, 0xba, 0x8d, 0xd9, 0xf8, 0xfb, 0x90, 0x59, 0x30, 0xe2, 0x45, 0x03, 0x95, 0x0d, 0xa1, 0x79, + 0x26, 0xf3, 0xab, 0x31, 0xae, 0xbf, 0xbe, 0x2f, 0x75, 0x6e, 0x09, 0x63, 0xeb, 0x89, 0x3f, 0x4f, + 0xda, 0x02, 0x4c, 0x5a, 0xce, 0x26, 0x9e, 0x87, 0xec, 0x56, 0x22, 0xff, 0x93, 0xe3, 0xeb, 0x0e, + 0x91, 0x77, 0xe6, 0x93, 0x73, 0x10, 0x47, 0xe0, 0x55, 0xa3, 0x6b, 0x4f, 0xac, 0x51, 0x61, 0x14, + 0xe6, 0x54, 0xc1, 0xeb, 0x48, 0xb9, 0xde, 0xc0, 0xd4, 0xad, 0x73, 0xdc, 0x50, 0xcf, 0x76, 0xcc, + 0xd8, 0xca, 0xc3, 0x15, 0xfa, 0x61, 0xe8, 0x72, 0xfd, 0x80, 0xbd, 0xa0, 0xa2, 0x5e, 0x90, 0xd6, + 0x93, 0xc8, 0x22, 0x40, 0x71, 0xb1, 0xa9, 0x1d, 0x34, 0xe6, 0x76, 0xd0, 0x59, 0x68, 0x7c, 0xdb, + 0x40, 0x87, 0x2d, 0xc2, 0x6c, 0x10, 0xfd, 0xf5, 0x75, 0xd6, 0x42, 0xa0, 0x1a, 0xa4, 0x55, 0x53, + 0xf2, 0x74, 0x13, 0xca, 0x6c, 0x00, 0xe8, 0x25, 0x3b, 0xec, 0x38, 0x72, 0x1b, 0xc5, 0x5c, 0x0c, + 0xd7, 0x49, 0x16, 0xc4, 0x57, 0x65, 0xa6, 0x30, 0xad, 0x64, 0x81, 0x98, 0x23, 0xc7, 0x70, 0x00, + 0xab, 0xf2, 0xd2, 0x62, 0xbe, 0x97, 0x5a, 0xd3, 0x8a, 0x8e, 0x89, 0xa0, 0xba, 0x1d, 0x65, 0x30, + 0x45, 0xb0, 0x30, 0x19, 0xff, 0xa6, 0x14, 0xcf, 0x76, 0x10, 0x14, 0x48, 0x29, 0x72, 0x53, 0xdf, + 0x7e, 0xa3, 0x32, 0xf5, 0x2d, 0x7e, 0x99, 0x4b, 0xa7, 0x29, 0x91, 0x47, 0xe5, 0x42, 0xc6, 0x8b, + 0xa8, 0x04, 0x97, 0xe8, 0x25, 0x79, 0x26, 0xd4, 0xa7, 0xca, 0x2f, 0x97, 0x1d, 0xb8, 0x53, 0x22, + 0xad, 0x7b, 0x4c, 0xfe, 0x52, 0x8d, 0x3c, 0xfa, 0xcb, 0xf8, 0xad, 0x2b, 0x0b, 0x79, 0x21, 0x05, + 0x07, 0x33, 0x62, 0x13, 0xd2, 0xba, 0x04, 0xa5, 0xca, 0x47, 0x99, 0x08, 0x61, 0x9d, 0xe0, 0x75, + 0x4b, 0x6b, 0x77, 0x09, 0x38, 0xc2, 0x8b, 0x49, 0xb4, 0x4b, 0x86, 0xcd, 0x82, 0xb7, 0x7e, 0x34, + 0x11, 0x76, 0x02, 0x9c, 0x92, 0xf1, 0xde, 0xd3, 0x44, 0xe0, 0x0c, 0x97, 0x2f, 0xdf, 0x95, 0x4b, + 0xc5, 0x52, 0x50, 0x5f, 0xa9, 0x2c, 0x0c, 0x62, 0xca, 0x15, 0x4b, 0xa0, 0xb9, 0xc2, 0xf7, 0x57, + 0xa8, 0xf7, 0xd5, 0xd6, 0xf9, 0xa2, 0x34, 0xe5, 0x7a, 0x5f, 0x26, 0x25, 0xc9, 0x5a, 0x61, 0xe6, + 0x15, 0xbe, 0x97, 0x20, 0x66, 0xa4, 0x7a, 0x1d, 0xb9, 0xb2, 0xc7, 0x21, 0xaf, 0x09, 0xb8, 0x0f, + 0xb1, 0x14, 0x79, 0x69, 0xe7, 0x35, 0x87, 0x41, 0x40, 0xb9, 0x6c, 0x3d, 0x6c, 0xc4, 0x92, 0x19, + 0xd8, 0x57, 0x8a, 0xf5, 0x90, 0x83, 0xd2, 0x19, 0x51, 0xf1, 0xb9, 0xe5, 0xf0, 0xea, 0x7b, 0x03, + 0x49, 0xbf, 0xbd, 0xaf, 0xcf, 0x75, 0xa7, 0xa8, 0x79, 0xcb, 0x59, 0x66, 0x93, 0xee, 0xe1, 0xaf, + 0xfa, 0xdd, 0x8a, 0x20, 0x7e, 0xd7, 0x48, 0x98, 0x29, 0xd2, 0xee, 0x1f, 0x7e, 0xcd, 0x66, 0xc3, + 0x5f, 0xc3, 0x68, 0xb5, 0x4d, 0xb2, 0x19, 0x48, 0xb6, 0x1c, 0x2f, 0x37, 0x87, 0xfc, 0xd3, 0x10, + 0xf2, 0x28, 0x12, 0xb4, 0x13, 0xe9, 0xf5, 0x15, 0xe7, 0x9a, 0x8b, 0xda, 0x6d, 0x0a, 0x96, 0xf3, + 0x5a, 0xa9, 0x4d, 0xec, 0x36, 0x99, 0xbf, 0xff, 0x35, 0x71, 0xee, 0x44, 0x1b, 0x71, 0x06, 0xc6, + 0x16, 0x0a, 0xde, 0xee, 0x6d, 0xa7, 0x1d, 0x0f, 0x92, 0x23, 0x69, 0xdc, 0x7f, 0x42, 0xeb, 0xfd, + 0x7a, 0x9c, 0x63, 0xe7, 0xc7, 0xe3, 0x3e, 0x57, 0x30, 0xd7, 0xce, 0x25, 0xc7, 0xe0, 0xbd, 0xe9, + 0x63, 0x10, 0xb6, 0x7a, 0x9e, 0x69, 0xd5, 0xb2, 0xfd, 0x85, 0x30, 0x96, 0xcb, 0x20, 0xcd, 0xbd, + 0xdf, 0x78, 0x25, 0x21, 0x53, 0x44, 0xe7, 0x8b, 0xeb, 0x65, 0xfd, 0x85, 0x44, 0xca, 0x8d, 0xb2, + 0x85, 0xc4, 0xa4, 0x04, 0x52, 0x3a, 0x2d, 0x09, 0x3d, 0xc2, 0x7c, 0x44, 0xfd, 0x89, 0xfa, 0x8a, + 0xfc, 0xdc, 0x05, 0x33, 0xe5, 0x3a, 0x17, 0xb2, 0x76, 0xd3, 0xb3, 0x93, 0x18, 0x96, 0x44, 0x98, + 0xdc, 0x8a, 0x48, 0xa9, 0xd8, 0x3b, 0xb3, 0xbc, 0x28, 0x6a, 0x31, 0x0d, 0x75, 0xf4, 0x82, 0xa8, + 0x88, 0x8e, 0xeb, 0x15, 0xd5, 0x1f, 0xe4, 0xe5, 0xc5, 0x4f, 0xc9, 0x16, 0xdf, 0xc9, 0xaa, 0xac, + 0x05, 0x69, 0xa6, 0x8d, 0x7c, 0x9e, 0x77, 0x71, 0xde, 0xca, 0xb0, 0x62, 0x68, 0x10, 0xf8, 0x90, + 0xda, 0xc6, 0xf6, 0x5d, 0x05, 0xa8, 0x1a, 0x19, 0xf9, 0x44, 0xf4, 0x58, 0x32, 0x0e, 0xdc, 0xd5, + 0xa8, 0xb0, 0xa8, 0xe7, 0x7a, 0x40, 0xc7, 0xfa, 0xf7, 0x18, 0x9d, 0x53, 0xc5, 0x9e, 0x34, 0xb0, + 0x13, 0xb7, 0xdb, 0xcc, 0xaa, 0x28, 0xfc, 0xe7, 0x20, 0x68, 0x0a, 0x90, 0x5f, 0x7c, 0xb3, 0x67, + 0xee, 0x62, 0x66, 0xcb, 0x1a, 0xa1, 0x0a, 0x54, 0xef, 0x3c, 0xf9, 0xe6, 0x20, 0xe8, 0x1f, 0xda, + 0x5c, 0xd3, 0xe7, 0xbb, 0x2b, 0xa4, 0x42, 0x89, 0x6e, 0x0f, 0x52, 0xf9, 0x31, 0x46, 0x63, 0x4f, + 0xb0, 0x79, 0x9f, 0xbc, 0x1e, 0xcc, 0x07, 0x03, 0xd2, 0xd9, 0xbc, 0x1b, 0xba, 0x60, 0x51, 0xfc, + 0x84, 0x30, 0x3f, 0xfe, 0xdf, 0xf8, 0xc4, 0xc5, 0xdf, 0xc0, 0xa7, 0x37, 0xf3, 0x91, 0xfe, 0xc6, + 0xdf, 0xc2, 0x5f, 0x7d, 0xfc, 0x54, 0xbe, 0x10, 0x3f, 0x8d, 0x4f, 0x39, 0xf1, 0xb3, 0xd2, 0x9a, + 0x01, 0x49, 0x2a, 0xf9, 0xee, 0xf8, 0x39, 0xe1, 0xe7, 0xf1, 0xf3, 0x61, 0x55, 0xbe, 0x2b, 0xfe, + 0x79, 0x84, 0x7c, 0x07, 0x8c, 0x09, 0x0f, 0x60, 0xbf, 0x9d, 0x60, 0x9c, 0xe7, 0x2c, 0x66, 0x75, + 0x4f, 0x2b, 0xad, 0x0b, 0xbe, 0x33, 0x68, 0xee, 0xa9, 0xfe, 0x40, 0xa7, 0x8a, 0x1f, 0x95, 0xf6, + 0x06, 0x2e, 0x59, 0x82, 0xb9, 0x7f, 0x73, 0x09, 0x94, 0x97, 0x2a, 0xc1, 0xf8, 0xc3, 0x57, 0x5d, + 0x02, 0x3d, 0x96, 0x20, 0xe7, 0x86, 0xae, 0xf8, 0x91, 0x4b, 0x96, 0xe0, 0x14, 0xe6, 0xf1, 0x96, + 0x9c, 0xbf, 0xe1, 0x0a, 0x2d, 0xc0, 0x4d, 0xca, 0x3f, 0xef, 0x2b, 0xe7, 0x7f, 0xf8, 0x6f, 0xcc, + 0x5f, 0x79, 0xa9, 0xfc, 0x2f, 0x3c, 0xfc, 0x95, 0x7b, 0xa0, 0xf0, 0x6f, 0xee, 0x01, 0x05, 0x95, + 0x80, 0x3c, 0x52, 0xa4, 0xe5, 0x9f, 0xf7, 0x95, 0xf3, 0x37, 0xfd, 0xcd, 0xf9, 0x73, 0x97, 0xc2, + 0x80, 0xb1, 0x87, 0xbe, 0x72, 0x09, 0x6e, 0x96, 0x4a, 0x40, 0x72, 0xed, 0x0d, 0xcd, 0x70, 0xe7, + 0xdf, 0xdf, 0x0a, 0x63, 0xd9, 0x5f, 0xb9, 0x0c, 0xf3, 0xfe, 0xae, 0x32, 0x5c, 0xb2, 0x25, 0x46, + 0xfb, 0xbf, 0x32, 0x2e, 0xfe, 0xee, 0xb2, 0xa5, 0xf8, 0x72, 0x7c, 0x54, 0x5c, 0x0a, 0x1f, 0x47, + 0x75, 0x5f, 0xb9, 0x0c, 0x87, 0xfe, 0x8e, 0x32, 0x70, 0x17, 0xf7, 0xc5, 0xc8, 0x96, 0xaf, 0x5a, + 0x02, 0x70, 0xfc, 0x8d, 0x23, 0xf2, 0x92, 0x2d, 0x30, 0xa2, 0xfd, 0xca, 0xf9, 0xf3, 0x7f, 0x63, + 0xfe, 0x97, 0xa8, 0xfd, 0x17, 0xf7, 0x5d, 0x3e, 0xf7, 0x65, 0x1f, 0x11, 0x4c, 0xc5, 0x47, 0xa0, + 0xc2, 0x99, 0xcd, 0x94, 0xb2, 0x05, 0x36, 0xbb, 0x2b, 0xfe, 0x01, 0x71, 0xde, 0x28, 0x91, 0x96, + 0xa2, 0x6c, 0x41, 0xd6, 0x4b, 0x0d, 0x26, 0xf2, 0xa4, 0x65, 0x62, 0xeb, 0xa3, 0xb2, 0xdf, 0x04, + 0x9c, 0x73, 0x51, 0x3a, 0xfb, 0xcb, 0x38, 0xca, 0xbe, 0x1a, 0x94, 0x6a, 0xf1, 0xf9, 0x23, 0x3d, + 0xd6, 0xe7, 0x3c, 0x9d, 0x5a, 0xa5, 0xfa, 0xd8, 0x88, 0x93, 0x97, 0xeb, 0x54, 0x32, 0x1f, 0x66, + 0x11, 0x57, 0xef, 0xab, 0x0d, 0x65, 0xb2, 0x75, 0xb0, 0x85, 0xcb, 0x25, 0x59, 0x08, 0xa5, 0x90, + 0xa2, 0x98, 0xb4, 0xba, 0x4c, 0xbe, 0x64, 0x64, 0x5b, 0x64, 0xf2, 0x7a, 0x87, 0x3e, 0x9b, 0xe9, + 0x9d, 0x00, 0xcc, 0x5e, 0x45, 0xde, 0xdb, 0xee, 0x5c, 0xa5, 0x89, 0x4c, 0x13, 0xd5, 0x91, 0x0c, + 0x51, 0x11, 0x99, 0xaa, 0x83, 0xf8, 0xa3, 0x0d, 0x46, 0xfc, 0xfd, 0xdf, 0x8d, 0x2e, 0x8c, 0xb3, + 0x86, 0x4a, 0x1a, 0x34, 0x78, 0xb7, 0x04, 0x1d, 0xa2, 0x43, 0x0d, 0xf1, 0x63, 0x64, 0x45, 0xbc, + 0xc1, 0x24, 0x9a, 0x10, 0xe2, 0xe7, 0xa1, 0x59, 0x0d, 0x99, 0x78, 0x1f, 0x08, 0x65, 0xe3, 0xef, + 0x60, 0x30, 0x53, 0xa4, 0xb7, 0x5f, 0x87, 0x10, 0x3e, 0xfe, 0x74, 0x48, 0x21, 0xd4, 0x1a, 0xfd, + 0xee, 0x0f, 0xb0, 0xf5, 0x40, 0xff, 0x7f, 0x48, 0xc7, 0xaf, 0xed, 0x73, 0x6a, 0xb7, 0xf7, 0x82, + 0x92, 0xcc, 0xa1, 0xe8, 0x49, 0x70, 0x32, 0xc6, 0x6f, 0x92, 0x06, 0x9e, 0xaf, 0x96, 0x3c, 0xf7, + 0xd9, 0x10, 0x37, 0x7d, 0x05, 0xd0, 0xd5, 0xa6, 0xf2, 0x55, 0xa0, 0xac, 0x84, 0xdc, 0x54, 0x44, + 0x45, 0x63, 0x39, 0xd0, 0xd3, 0x35, 0x7e, 0xe8, 0x6e, 0xbb, 0x86, 0xc9, 0x69, 0x5c, 0x8a, 0x67, + 0xf7, 0xff, 0xe0, 0xe2, 0x75, 0x95, 0x30, 0x47, 0xd2, 0xee, 0x65, 0xf8, 0x48, 0x69, 0x4d, 0x46, + 0xf1, 0x56, 0x6f, 0x04, 0x2a, 0x99, 0x3d, 0x59, 0x82, 0xba, 0x6a, 0x7e, 0x4b, 0x29, 0xaf, 0xc0, + 0xed, 0x4c, 0xac, 0xc0, 0x15, 0xec, 0x4a, 0xe7, 0xb8, 0x84, 0x9f, 0x26, 0x57, 0xf0, 0xb8, 0x2e, + 0x71, 0xf8, 0xee, 0x08, 0xbf, 0x3b, 0x96, 0xb0, 0xa4, 0x63, 0x87, 0x04, 0x8f, 0xf4, 0x9e, 0x0b, + 0x79, 0x23, 0xab, 0x7f, 0xff, 0xbb, 0x5b, 0x29, 0x05, 0x66, 0x67, 0x7a, 0x03, 0x5b, 0x63, 0xee, + 0x09, 0xe6, 0x5e, 0x6e, 0xb5, 0x50, 0xf4, 0x60, 0x0f, 0x5f, 0x32, 0x96, 0x78, 0x47, 0xd1, 0xcc, + 0xf8, 0x53, 0x8f, 0x14, 0x33, 0x57, 0x80, 0x37, 0xb0, 0xf5, 0x98, 0x8d, 0xb6, 0x7f, 0x0c, 0x60, + 0xac, 0x86, 0x9e, 0x6e, 0x17, 0xa1, 0x1e, 0xd3, 0xd0, 0xa6, 0xf8, 0xcc, 0xb4, 0x75, 0x0f, 0x5d, + 0x42, 0xba, 0x24, 0x5c, 0x91, 0xa4, 0xcb, 0x89, 0xbc, 0x24, 0xc1, 0x26, 0xd6, 0xe4, 0x68, 0x3d, + 0x8e, 0x56, 0xef, 0x59, 0x7d, 0x2c, 0x50, 0xc6, 0x20, 0xc8, 0xe6, 0x86, 0xc5, 0x17, 0x0b, 0x6d, + 0xbc, 0xfc, 0xba, 0xf2, 0xe5, 0x57, 0x89, 0x89, 0x53, 0x65, 0x6b, 0x78, 0xc5, 0x97, 0x5f, 0xed, + 0x38, 0x2d, 0xdb, 0x64, 0x26, 0x3b, 0x2f, 0x46, 0xef, 0xcb, 0x74, 0xb2, 0xf3, 0x44, 0xf6, 0x82, + 0x5e, 0xa5, 0x6c, 0x5f, 0x58, 0xe9, 0xdd, 0xe4, 0x7d, 0x56, 0x54, 0xac, 0x1b, 0xc1, 0x3a, 0x1a, + 0x13, 0x3c, 0xa4, 0xaf, 0x22, 0xd5, 0xfa, 0x28, 0xa5, 0xab, 0x52, 0x9c, 0xa4, 0x5e, 0x29, 0xaa, + 0xc3, 0x23, 0xa2, 0x22, 0x3c, 0x9f, 0x9d, 0x2d, 0x3e, 0x2a, 0x71, 0x91, 0x3c, 0xf9, 0x85, 0x48, + 0xac, 0x0d, 0xd2, 0xf9, 0xfa, 0x98, 0x69, 0x8d, 0x66, 0x96, 0xec, 0x09, 0xf1, 0xd0, 0xdc, 0x25, + 0xd2, 0x3e, 0x03, 0x62, 0x6b, 0xd9, 0x24, 0x2b, 0xc1, 0xa5, 0x28, 0x0f, 0x98, 0x19, 0x3f, 0x79, + 0xfd, 0xd1, 0x58, 0x8c, 0xd6, 0xe0, 0xf6, 0xbc, 0xb7, 0x05, 0x14, 0xf1, 0x9d, 0x33, 0x05, 0x78, + 0xd9, 0x48, 0xdf, 0xac, 0x86, 0x15, 0xbe, 0x79, 0x50, 0x14, 0xca, 0xe6, 0x2d, 0x60, 0x08, 0xe9, + 0x11, 0x62, 0x17, 0x85, 0xcd, 0x6d, 0x86, 0x1c, 0x18, 0x12, 0xf5, 0x78, 0xd7, 0x25, 0x43, 0xf4, + 0x30, 0x34, 0x93, 0xfc, 0x91, 0x91, 0xad, 0xd3, 0x43, 0x73, 0xbd, 0xf0, 0x02, 0xf6, 0xea, 0x61, + 0xd9, 0x92, 0xce, 0x21, 0x5a, 0x41, 0xad, 0x1b, 0x93, 0x56, 0x57, 0xeb, 0x5e, 0x90, 0x56, 0x54, + 0xf1, 0x7d, 0x9b, 0xfc, 0xce, 0xac, 0x9f, 0xd6, 0xed, 0x96, 0xac, 0x9f, 0xd6, 0xed, 0x80, 0x47, + 0xe5, 0xf7, 0x81, 0xa4, 0xae, 0xa3, 0xea, 0x4b, 0x6b, 0x7a, 0x96, 0xb0, 0xf4, 0x4f, 0x4f, 0xf3, + 0x56, 0x28, 0xa8, 0xef, 0x0b, 0x2d, 0x9f, 0xd0, 0x27, 0x30, 0x69, 0x97, 0x03, 0xda, 0x8a, 0x2e, + 0xbf, 0xce, 0x35, 0x79, 0x85, 0xaa, 0x54, 0x48, 0x4a, 0x17, 0x39, 0xa4, 0x29, 0x2e, 0xf9, 0xd7, + 0xc0, 0x91, 0x50, 0x20, 0xcb, 0x48, 0x35, 0xfa, 0x85, 0x96, 0x99, 0xe4, 0x91, 0xa0, 0xa9, 0x12, + 0x7f, 0x95, 0xab, 0xb4, 0x48, 0x71, 0x62, 0x8c, 0xe2, 0x14, 0x51, 0x3d, 0xbe, 0x95, 0x0d, 0x03, + 0x13, 0x72, 0xcb, 0x97, 0xf0, 0x0b, 0xc7, 0x1d, 0x49, 0x3f, 0xb4, 0x13, 0x36, 0x20, 0xed, 0xb8, + 0x21, 0x65, 0x46, 0x3a, 0x20, 0x1a, 0x13, 0xfd, 0x65, 0x24, 0xbd, 0x8d, 0x89, 0x7d, 0x56, 0x84, + 0xad, 0x6a, 0x4e, 0xb4, 0x08, 0x69, 0x92, 0xcb, 0x36, 0x5f, 0xcd, 0x9a, 0x79, 0xa0, 0x82, 0xc7, + 0x43, 0x7a, 0xcd, 0x69, 0x14, 0x1c, 0x16, 0xd2, 0xd8, 0xd9, 0x98, 0x03, 0x8f, 0x8a, 0x99, 0x18, + 0xae, 0x80, 0x5d, 0x21, 0x35, 0x34, 0x63, 0xb5, 0x0a, 0xb1, 0x1f, 0xa5, 0x3d, 0x00, 0x0d, 0x86, + 0x73, 0xd0, 0x10, 0xa2, 0xb5, 0xec, 0xac, 0x39, 0x2e, 0x70, 0x62, 0x3f, 0xdf, 0x19, 0x52, 0xe3, + 0xd7, 0x00, 0x0b, 0xc3, 0x53, 0x62, 0x03, 0xe0, 0xa4, 0x50, 0x06, 0xb5, 0x3a, 0x34, 0x0b, 0xef, + 0x00, 0xdd, 0x21, 0x4d, 0x44, 0xd3, 0x43, 0x56, 0x0a, 0xa5, 0xf0, 0xee, 0x90, 0x7a, 0x9d, 0xfe, + 0x7b, 0x03, 0x49, 0xa8, 0x46, 0x06, 0xd5, 0x10, 0x22, 0x9c, 0xf9, 0x6e, 0xc8, 0x12, 0x86, 0x28, + 0xc7, 0xac, 0x8b, 0x6c, 0x7c, 0xfb, 0x9e, 0x1e, 0x0c, 0xe1, 0xb8, 0x90, 0xce, 0x08, 0xb7, 0x77, + 0x9b, 0x15, 0xef, 0x3c, 0x4e, 0x5f, 0x05, 0x62, 0x4c, 0x9e, 0x3a, 0x81, 0xd0, 0x4f, 0xa5, 0x41, + 0x0f, 0x31, 0xe8, 0xa7, 0x24, 0xe8, 0x9a, 0x74, 0xe8, 0x29, 0x04, 0x2d, 0x9d, 0x79, 0xc7, 0xb9, + 0xea, 0x05, 0xc4, 0x07, 0xda, 0x91, 0xac, 0x16, 0x9e, 0x04, 0x41, 0xe8, 0x84, 0xca, 0xaa, 0x8f, + 0xc0, 0x89, 0xed, 0xaa, 0x4f, 0xdf, 0x99, 0x5c, 0x8c, 0x54, 0x34, 0xb5, 0x0f, 0x19, 0xbe, 0x9d, + 0x69, 0x2e, 0x14, 0xdf, 0xd2, 0x05, 0x6a, 0x28, 0xb5, 0x57, 0x83, 0x80, 0x4f, 0x7a, 0xa8, 0x94, + 0xf6, 0x2c, 0x53, 0xbb, 0x92, 0x7a, 0x3b, 0xd4, 0xcd, 0x74, 0xc1, 0x71, 0xa6, 0xb1, 0x87, 0xcd, + 0x2f, 0xf9, 0x68, 0x36, 0x5a, 0x61, 0x9f, 0x86, 0x83, 0x59, 0xcb, 0x0f, 0x7a, 0x7b, 0x9c, 0x82, + 0x49, 0xe3, 0xe9, 0x79, 0xea, 0xf9, 0x60, 0x0e, 0xd2, 0x3f, 0xb5, 0xe6, 0x19, 0x98, 0x25, 0xaa, + 0x34, 0xdd, 0x30, 0x0b, 0x65, 0xb2, 0x7d, 0x9a, 0x33, 0x90, 0x01, 0xfb, 0x24, 0x2c, 0xaa, 0x7e, + 0xb3, 0x94, 0xf6, 0x50, 0x0b, 0x13, 0x73, 0xfb, 0x2d, 0x6c, 0x2e, 0x64, 0xbb, 0x51, 0xdc, 0xf0, + 0x20, 0xec, 0x11, 0x3c, 0x39, 0x0e, 0xcd, 0x4c, 0x85, 0x07, 0x62, 0x21, 0x55, 0xf8, 0xdf, 0x70, + 0x64, 0x9f, 0xbd, 0xc1, 0x35, 0x79, 0xb6, 0xa7, 0x79, 0x1e, 0x2f, 0x9a, 0xef, 0x4f, 0xe7, 0x23, + 0x46, 0xc4, 0xcf, 0xe6, 0x33, 0x1d, 0xe8, 0xf4, 0x59, 0x1e, 0x9f, 0xc6, 0x12, 0x73, 0xfc, 0xd9, + 0x61, 0x66, 0x47, 0xde, 0xe3, 0xf3, 0x60, 0x9a, 0x67, 0x31, 0xcd, 0x7f, 0xa3, 0x34, 0x93, 0xb1, + 0x3f, 0x91, 0x2c, 0xa1, 0x4f, 0xdb, 0x9f, 0x2a, 0x85, 0xd6, 0x11, 0xef, 0xd1, 0xcc, 0xbc, 0x54, + 0xa9, 0xd2, 0xf6, 0x87, 0x8a, 0x42, 0x2e, 0x23, 0x9b, 0x27, 0x04, 0x77, 0xcf, 0xb7, 0x34, 0x8a, + 0x7a, 0xe6, 0xa3, 0x4f, 0x01, 0xc1, 0x4f, 0x7c, 0xee, 0xa0, 0x99, 0x70, 0x7b, 0x6e, 0x0b, 0xa3, + 0x06, 0xcd, 0x09, 0x6a, 0x90, 0xcc, 0xd1, 0x21, 0xe7, 0xe8, 0x95, 0xe7, 0x19, 0xfd, 0xdb, 0xbd, + 0x31, 0x9c, 0x6b, 0xc8, 0x23, 0xe0, 0x5b, 0xbd, 0x3d, 0x2e, 0x07, 0xf7, 0x96, 0x57, 0x1f, 0xbb, + 0xc6, 0x8d, 0x34, 0x33, 0x31, 0x0f, 0x29, 0x18, 0x84, 0x32, 0x1d, 0xe2, 0x1a, 0x17, 0x28, 0x10, + 0x46, 0x99, 0x84, 0x51, 0x31, 0x98, 0x8c, 0x49, 0x30, 0x2a, 0x84, 0xc9, 0x48, 0xc2, 0xa8, 0x19, + 0xcc, 0x94, 0x49, 0x30, 0x6a, 0x84, 0x99, 0x92, 0x84, 0xd1, 0x31, 0x98, 0xe9, 0x93, 0x60, 0x74, + 0x08, 0x33, 0x3d, 0x09, 0x73, 0x07, 0x83, 0xb9, 0x73, 0x12, 0xcc, 0x1d, 0x08, 0x73, 0x67, 0x12, + 0xa6, 0x81, 0xc1, 0xac, 0x9a, 0x04, 0xd3, 0x80, 0x30, 0xab, 0x92, 0x30, 0x8d, 0x0c, 0xa6, 0x69, + 0x12, 0x4c, 0x23, 0xc2, 0x34, 0x25, 0x61, 0x82, 0x0c, 0x26, 0x34, 0x09, 0x26, 0x88, 0x30, 0xa1, + 0x24, 0x4c, 0x2b, 0x83, 0x59, 0x3d, 0x09, 0xa6, 0x15, 0x61, 0x56, 0x27, 0x61, 0xda, 0x18, 0x4c, + 0xfb, 0x24, 0x98, 0x36, 0x84, 0x69, 0x4f, 0xc2, 0x74, 0x30, 0x98, 0xce, 0x49, 0x30, 0x1d, 0x08, + 0xd3, 0x99, 0x84, 0x09, 0x33, 0x98, 0x6f, 0x4d, 0x82, 0x09, 0x23, 0xcc, 0xb7, 0x92, 0x30, 0xeb, + 0x18, 0xcc, 0xb7, 0x27, 0xc1, 0xac, 0x43, 0x98, 0x6f, 0xa7, 0xef, 0x85, 0x22, 0xcc, 0x77, 0x27, + 0xc1, 0x6c, 0x44, 0x98, 0xef, 0x26, 0x61, 0x62, 0x0c, 0xa6, 0x7b, 0x12, 0x0c, 0xe1, 0x46, 0x77, + 0x12, 0xa6, 0x87, 0xc1, 0x6c, 0x9a, 0x04, 0xd3, 0x83, 0x30, 0x9b, 0x92, 0x30, 0x9b, 0x19, 0xcc, + 0x5d, 0x93, 0x60, 0x36, 0x23, 0xcc, 0x5d, 0x49, 0x98, 0xbb, 0x19, 0xcc, 0xf7, 0x26, 0xc1, 0xdc, + 0x8d, 0x30, 0xdf, 0x4b, 0xc2, 0xf4, 0x32, 0x98, 0x7b, 0x26, 0xc1, 0xf4, 0x22, 0xcc, 0x3d, 0x49, + 0x98, 0xed, 0x0c, 0xe6, 0x87, 0x93, 0x60, 0xb6, 0x23, 0xcc, 0x0f, 0x93, 0x30, 0x3b, 0x19, 0xcc, + 0xbf, 0x4d, 0x82, 0xd9, 0x89, 0x30, 0xff, 0x96, 0x84, 0xf9, 0x09, 0x83, 0xf9, 0xdf, 0x93, 0x60, + 0x7e, 0x82, 0x30, 0xff, 0x3b, 0x09, 0xf3, 0x28, 0x83, 0xf9, 0x7f, 0x27, 0xc1, 0x3c, 0x8a, 0x30, + 0xff, 0x6f, 0x12, 0xe6, 0x31, 0x06, 0xf3, 0xd3, 0x49, 0x30, 0x8f, 0x21, 0x4c, 0x8a, 0xcf, 0x1b, + 0x60, 0x30, 0x3f, 0x9b, 0x04, 0x33, 0x80, 0x30, 0x3f, 0x4b, 0xc2, 0x0c, 0x32, 0x98, 0xc7, 0x27, + 0xc1, 0x0c, 0x22, 0xcc, 0xe3, 0x49, 0x98, 0x5d, 0x0c, 0xe6, 0xe7, 0x93, 0x60, 0x76, 0x21, 0xcc, + 0xcf, 0x93, 0x30, 0x4f, 0x30, 0x98, 0x27, 0x27, 0xc1, 0x3c, 0x81, 0x30, 0x4f, 0x26, 0x61, 0x86, + 0x18, 0xcc, 0x53, 0x93, 0x60, 0x86, 0x10, 0xe6, 0xa9, 0x24, 0xcc, 0x6e, 0x06, 0xf3, 0x8b, 0x49, + 0x30, 0xbb, 0x11, 0xe6, 0x17, 0x49, 0x98, 0x3d, 0x0c, 0xe6, 0x97, 0x93, 0x60, 0xf6, 0x20, 0xcc, + 0x2f, 0x93, 0x30, 0x7b, 0x19, 0xcc, 0xaf, 0x26, 0xc1, 0xec, 0x45, 0x98, 0x5f, 0x25, 0x61, 0xf6, + 0x31, 0x98, 0x5f, 0x4f, 0x82, 0xd9, 0x87, 0x30, 0xbf, 0x4e, 0xc2, 0xec, 0x67, 0x30, 0xff, 0x3e, + 0x09, 0x66, 0x3f, 0xc2, 0xfc, 0x7b, 0x12, 0xe6, 0x00, 0x83, 0xf9, 0xcd, 0x24, 0x98, 0x03, 0x08, + 0xf3, 0x9b, 0x24, 0xcc, 0xd3, 0x0c, 0xe6, 0xb7, 0x93, 0x60, 0x9e, 0x46, 0x98, 0xdf, 0x26, 0x61, + 0x86, 0x19, 0xcc, 0x33, 0x93, 0x60, 0x86, 0x11, 0xe6, 0x99, 0x24, 0xcc, 0x41, 0x06, 0xf3, 0xec, + 0x24, 0x98, 0x83, 0x08, 0xf3, 0x6c, 0x12, 0xe6, 0x28, 0x83, 0x79, 0x69, 0x12, 0xcc, 0x51, 0x84, + 0x79, 0x29, 0x09, 0x73, 0x9c, 0xc1, 0xbc, 0x32, 0x09, 0xe6, 0x38, 0xc2, 0xbc, 0x92, 0x84, 0x19, + 0x67, 0x30, 0xf1, 0x49, 0x30, 0xe3, 0x08, 0x13, 0x4f, 0xc0, 0x70, 0x40, 0x30, 0x1c, 0x37, 0x11, + 0x86, 0x83, 0x6b, 0xdc, 0x5c, 0x8a, 0xce, 0x9f, 0x79, 0xdb, 0x4b, 0x7e, 0x07, 0x99, 0xdf, 0xb5, + 0xf7, 0xbd, 0x6e, 0x9c, 0x59, 0x62, 0x2c, 0xfc, 0x2c, 0x7e, 0xdb, 0x8d, 0x39, 0x7c, 0x20, 0x6b, + 0x3e, 0xfd, 0xe3, 0x5b, 0xf5, 0x04, 0x17, 0x73, 0x27, 0x34, 0xa1, 0x30, 0xa7, 0x33, 0xd2, 0x33, + 0x3e, 0xbd, 0x4f, 0x9a, 0x50, 0x78, 0x3f, 0x8b, 0x65, 0xf8, 0x20, 0x99, 0xf6, 0xfa, 0xb4, 0xb4, + 0xbf, 0x93, 0x96, 0xf6, 0x06, 0x39, 0xed, 0xff, 0x75, 0x85, 0xb4, 0xd7, 0x27, 0xd3, 0xfe, 0x8e, + 0x9c, 0xf6, 0x06, 0x4c, 0xfb, 0x7f, 0x25, 0xd3, 0x3e, 0x94, 0x96, 0xf6, 0xef, 0xd2, 0xd2, 0x7e, + 0x4e, 0x4e, 0xfb, 0xf7, 0x57, 0x48, 0xfb, 0x50, 0x32, 0xed, 0xdf, 0xc9, 0x69, 0x3f, 0x87, 0x69, + 0xff, 0x3e, 0x99, 0xf6, 0x0b, 0x69, 0x69, 0xff, 0x31, 0x2d, 0xed, 0x17, 0xe5, 0xb4, 0xff, 0x63, + 0x03, 0xe4, 0x5a, 0xe0, 0xf0, 0xdb, 0x4b, 0xbd, 0x15, 0x42, 0x05, 0x83, 0x7a, 0x9e, 0x41, 0xdd, + 0xc5, 0xc2, 0x8f, 0xbc, 0xfd, 0xfd, 0x2d, 0xdd, 0x5b, 0x2c, 0xf0, 0x07, 0x5b, 0x86, 0x50, 0xe9, + 0xad, 0x2c, 0x00, 0xe6, 0xf7, 0xf2, 0xce, 0xb7, 0xea, 0x8d, 0x40, 0x50, 0x3c, 0x17, 0x5b, 0x1c, + 0x81, 0xb7, 0xee, 0x78, 0xeb, 0x9f, 0xe9, 0xeb, 0x2d, 0x95, 0x3d, 0x77, 0x59, 0x39, 0xa1, 0xc2, + 0x5b, 0xf1, 0xd6, 0xd2, 0x6b, 0x2a, 0xe0, 0x05, 0xe9, 0x19, 0x9f, 0xfe, 0x68, 0xe5, 0xde, 0xfa, + 0x3e, 0xde, 0x5f, 0xc4, 0xd2, 0xfd, 0x47, 0x5a, 0xd9, 0x0f, 0x27, 0xcb, 0xfe, 0xbc, 0x5c, 0xf6, + 0x23, 0x58, 0xf6, 0x3f, 0x20, 0xa7, 0xe1, 0x61, 0xbe, 0xd0, 0x8f, 0x11, 0xbf, 0x1b, 0xe8, 0x97, + 0xf8, 0xfc, 0xda, 0x42, 0x89, 0xbf, 0x27, 0x3e, 0x94, 0xbd, 0x1f, 0x83, 0x9d, 0x12, 0x6f, 0x44, + 0x75, 0xcd, 0xd5, 0x2b, 0x32, 0x60, 0xf6, 0xcc, 0x0a, 0x78, 0x65, 0x6e, 0x17, 0xdb, 0xc3, 0x74, + 0x8a, 0x05, 0x92, 0xfc, 0x20, 0x58, 0x59, 0xd8, 0x04, 0x6d, 0x0c, 0xf6, 0xbe, 0x0f, 0x76, 0x92, + 0xce, 0x24, 0x0c, 0x32, 0x43, 0x38, 0xfb, 0x16, 0x9f, 0x01, 0x2f, 0xf2, 0x76, 0x16, 0xfb, 0xb4, + 0x70, 0xd1, 0x51, 0xe4, 0x8a, 0xed, 0x50, 0x35, 0xf2, 0x9f, 0xfb, 0xfc, 0xdb, 0x36, 0x6c, 0xc0, + 0x50, 0x83, 0x37, 0x52, 0x0f, 0x11, 0xc3, 0x31, 0x0a, 0xe7, 0xfc, 0xdb, 0x96, 0x9e, 0x81, 0x6f, + 0x91, 0x87, 0x5a, 0x7b, 0x66, 0xb8, 0x40, 0x82, 0x65, 0x3a, 0x62, 0x7c, 0xc1, 0xfd, 0x04, 0x87, + 0x9c, 0x5f, 0x82, 0xd7, 0x1f, 0x48, 0x68, 0xe7, 0xfb, 0xf7, 0x9f, 0x27, 0x1b, 0x9e, 0xfb, 0x4f, + 0xd0, 0x4e, 0xbb, 0x99, 0x9d, 0x85, 0x44, 0x9e, 0xa5, 0x4d, 0x8d, 0x35, 0x50, 0xc1, 0xbe, 0xab, + 0xc3, 0x30, 0x94, 0x97, 0x8a, 0x58, 0xaf, 0xbc, 0x90, 0xd6, 0x5b, 0x7f, 0x4c, 0xeb, 0xad, 0x17, + 0xe5, 0xde, 0xfa, 0x0f, 0x16, 0x73, 0xf8, 0xed, 0x2a, 0x8a, 0xeb, 0x82, 0x3c, 0xea, 0xd3, 0x4a, + 0xa1, 0xf2, 0xbe, 0x6e, 0x16, 0x7e, 0x04, 0x39, 0xe2, 0xbb, 0x7b, 0xb0, 0x4f, 0x91, 0xbb, 0x2c, + 0x99, 0x5b, 0x01, 0x65, 0xf6, 0x0c, 0x3b, 0x97, 0x26, 0x9f, 0xbc, 0x9e, 0x94, 0x4f, 0x0c, 0xd8, + 0x13, 0x00, 0x8f, 0xe8, 0x49, 0xb3, 0x17, 0x20, 0xa3, 0x81, 0x56, 0x4b, 0x54, 0x8d, 0x28, 0xef, + 0x84, 0x4c, 0xe2, 0x06, 0x7c, 0x9e, 0x12, 0x8c, 0x4a, 0xfd, 0xc4, 0xb4, 0x98, 0x2b, 0xf1, 0x77, + 0x09, 0x2c, 0xa6, 0x13, 0x75, 0xd7, 0xd4, 0x83, 0x20, 0xd6, 0x4b, 0xed, 0x6f, 0x9f, 0x46, 0xa9, + 0xfe, 0x83, 0x93, 0xf6, 0xf2, 0x6f, 0xee, 0x97, 0xf4, 0x9e, 0x83, 0xd9, 0xcc, 0xf7, 0x04, 0x7d, + 0x91, 0x25, 0x7d, 0x91, 0x3b, 0x8c, 0x5f, 0x98, 0xbd, 0xad, 0x50, 0xc3, 0xa0, 0x6f, 0x96, 0xe1, + 0x0c, 0xc9, 0x94, 0x5d, 0x12, 0x1c, 0xe6, 0x2a, 0xb0, 0xd6, 0xf4, 0x93, 0x1d, 0x47, 0x8e, 0x76, + 0xcb, 0xcd, 0xeb, 0x21, 0x87, 0xda, 0xa4, 0xda, 0xeb, 0x11, 0x3c, 0xac, 0x1d, 0xfe, 0xc8, 0xb0, + 0x71, 0x33, 0x0b, 0x7f, 0xf1, 0xed, 0xfb, 0x7a, 0xef, 0x32, 0xaa, 0xb0, 0xbe, 0xff, 0xc1, 0xde, + 0x0f, 0xa7, 0xc1, 0x3d, 0x9f, 0x06, 0x77, 0x84, 0xe0, 0x78, 0x15, 0xb6, 0xf3, 0x1f, 0x84, 0xcd, + 0xd6, 0x52, 0x18, 0x55, 0xc1, 0x43, 0xdd, 0x3f, 0x8a, 0x35, 0x39, 0xae, 0xae, 0x6f, 0x90, 0x7b, + 0xc5, 0x2f, 0x56, 0x91, 0x56, 0xb9, 0x15, 0x4a, 0x90, 0xb7, 0x2f, 0xe3, 0xdd, 0x66, 0x2e, 0x0a, + 0x16, 0x85, 0x55, 0x49, 0xe9, 0x34, 0xaa, 0x1c, 0x5d, 0xf1, 0x38, 0x86, 0x17, 0xf1, 0x9a, 0xdd, + 0xbd, 0xab, 0x14, 0x3c, 0x87, 0x75, 0xba, 0x05, 0x16, 0x23, 0x16, 0xdd, 0x22, 0x79, 0x0c, 0x23, + 0x8f, 0x11, 0xc8, 0x1e, 0x69, 0x50, 0x6e, 0x19, 0x3f, 0xb8, 0x79, 0x5f, 0x77, 0xd0, 0x40, 0xd6, + 0xab, 0x6a, 0x63, 0x21, 0xdd, 0xc9, 0xfb, 0x4c, 0x9c, 0x78, 0xc6, 0x02, 0xf8, 0xab, 0x5e, 0xcc, + 0xfc, 0x6a, 0xd1, 0x3e, 0x22, 0x4a, 0xf2, 0xd8, 0x46, 0x92, 0xbd, 0x61, 0x84, 0xce, 0x64, 0xb6, + 0xae, 0x7a, 0x74, 0xdd, 0x24, 0x27, 0xac, 0x3a, 0x36, 0xd7, 0x03, 0x02, 0xca, 0xdd, 0x95, 0x62, + 0x5e, 0x3a, 0xf7, 0x86, 0x18, 0x24, 0xcc, 0x6c, 0x06, 0x94, 0x6e, 0xf0, 0xf7, 0x5b, 0xb0, 0x98, + 0xf4, 0x9f, 0x6b, 0x86, 0x99, 0xd7, 0xe0, 0x3d, 0x89, 0x35, 0x3b, 0xd9, 0x3b, 0x21, 0x69, 0x29, + 0x24, 0xf4, 0x46, 0x95, 0x50, 0x20, 0xd8, 0x25, 0xad, 0x50, 0xbc, 0x16, 0xd0, 0x81, 0x8e, 0xf8, + 0xf8, 0x6c, 0x97, 0xa4, 0x17, 0x8a, 0x72, 0x92, 0x5e, 0x96, 0x89, 0x74, 0xd2, 0x0a, 0x1b, 0x93, + 0x89, 0x7b, 0x42, 0x01, 0x26, 0x49, 0x57, 0x93, 0xae, 0x85, 0xbc, 0x1a, 0xe5, 0x42, 0x69, 0xbb, + 0xe0, 0x38, 0xf9, 0x49, 0xcc, 0x63, 0x32, 0x13, 0xcf, 0xf4, 0x37, 0x4d, 0x76, 0x9d, 0x7d, 0x1a, + 0xca, 0xa8, 0x28, 0x29, 0xb1, 0x55, 0x47, 0xe2, 0xa0, 0xad, 0x30, 0x9d, 0xad, 0x29, 0x2a, 0xa2, + 0x33, 0x0e, 0xf6, 0x50, 0x7b, 0xc7, 0xba, 0xc9, 0xc6, 0x20, 0x69, 0xc2, 0xe7, 0xa9, 0xa4, 0xb5, + 0x42, 0xd9, 0xd2, 0xbf, 0xc3, 0x2c, 0x7b, 0xda, 0xe6, 0xb3, 0xb0, 0x75, 0x55, 0x42, 0x7b, 0x7c, + 0x1c, 0x47, 0xb5, 0x46, 0x93, 0x4f, 0xeb, 0x80, 0xa1, 0x22, 0x5f, 0x77, 0xc8, 0xe9, 0x8b, 0x85, + 0x0a, 0xbe, 0x41, 0xf2, 0xcf, 0x38, 0xb3, 0x38, 0x68, 0x08, 0xa9, 0x93, 0x7b, 0x94, 0x5c, 0xc2, + 0x4e, 0x68, 0x62, 0x87, 0x32, 0xc8, 0x52, 0x60, 0xe5, 0x30, 0x44, 0xb8, 0xe1, 0x6e, 0xad, 0x0b, + 0x38, 0xb6, 0x22, 0x34, 0x8e, 0xe3, 0x43, 0x65, 0x27, 0xdd, 0x49, 0x1d, 0x59, 0xab, 0x7c, 0x3f, + 0xca, 0x74, 0x22, 0x72, 0x50, 0x96, 0xb5, 0x62, 0x1d, 0x0c, 0xa1, 0x6c, 0x76, 0x2a, 0x59, 0xda, + 0xc9, 0xcf, 0x66, 0x3e, 0xac, 0xf6, 0x30, 0x1b, 0x6f, 0x0a, 0xb6, 0x22, 0x7a, 0x4e, 0x5a, 0x5b, + 0x91, 0x3d, 0xbc, 0x26, 0xec, 0x2c, 0x63, 0x5a, 0xef, 0xdd, 0x8b, 0xe5, 0x74, 0x49, 0x27, 0xcb, + 0x92, 0x9a, 0x1f, 0x6c, 0x0f, 0xdc, 0xae, 0x24, 0xad, 0xd4, 0xa4, 0x1e, 0x6a, 0x62, 0x05, 0x2a, + 0x05, 0xa1, 0x92, 0xf4, 0x36, 0x72, 0xa8, 0x1c, 0xa6, 0x09, 0x31, 0x19, 0x52, 0x0c, 0xe5, 0x8f, + 0xad, 0xa8, 0x22, 0x1d, 0x22, 0xc2, 0x8b, 0xd2, 0x67, 0xe9, 0xcc, 0x56, 0x78, 0x63, 0x25, 0x7b, + 0x6b, 0xd9, 0x8e, 0x6f, 0x9f, 0xe8, 0x4b, 0xe3, 0x31, 0x7a, 0x33, 0xbc, 0x8f, 0x6f, 0xa7, 0x68, + 0x64, 0xbd, 0x0c, 0x11, 0xae, 0x12, 0x6b, 0x5e, 0xdf, 0x87, 0x21, 0x2f, 0xf8, 0x6a, 0x83, 0xb3, + 0x26, 0xa4, 0xcd, 0x4e, 0x18, 0x51, 0xc9, 0x8a, 0x0e, 0x00, 0x97, 0x38, 0xbb, 0x3d, 0xe5, 0x28, + 0xb6, 0xa5, 0x35, 0x6d, 0x15, 0x4c, 0x5f, 0x35, 0x72, 0x8c, 0x2c, 0x9e, 0x63, 0x99, 0x45, 0x5d, + 0xb2, 0x0e, 0x0f, 0x90, 0x1f, 0x36, 0xff, 0xb6, 0xfa, 0x3e, 0xd2, 0xa5, 0xbd, 0x54, 0x6d, 0xd9, + 0x97, 0xec, 0xab, 0xc5, 0x23, 0xc7, 0xd6, 0x27, 0xbf, 0x23, 0x2d, 0x94, 0x07, 0x12, 0x3a, 0xb8, + 0x13, 0xbe, 0xe3, 0xa4, 0x9a, 0x46, 0xbe, 0x3b, 0xdc, 0x4d, 0xf1, 0x59, 0xa5, 0x40, 0xfa, 0x0f, + 0x39, 0x8c, 0x86, 0x08, 0x89, 0xf3, 0x83, 0xa2, 0x2a, 0x4c, 0x2b, 0x5d, 0xa4, 0xeb, 0xaf, 0x90, + 0x7c, 0xd2, 0x4a, 0xb8, 0xe3, 0x90, 0x74, 0x42, 0xac, 0xa0, 0xa7, 0x9e, 0xa0, 0x7e, 0x9f, 0x58, + 0x26, 0x3a, 0x69, 0x75, 0x85, 0x3e, 0x50, 0xca, 0xe7, 0x26, 0xd4, 0x72, 0xc9, 0x4d, 0x4c, 0x13, + 0x51, 0x2b, 0xb5, 0x04, 0xab, 0xfb, 0x49, 0xa6, 0xb9, 0x34, 0x11, 0x3a, 0x71, 0xca, 0x82, 0xe9, + 0x2d, 0xfa, 0x79, 0xb9, 0xdd, 0x1e, 0x90, 0x75, 0x14, 0x67, 0x86, 0x0a, 0xcc, 0xcc, 0xe7, 0x69, + 0xd5, 0xc8, 0x4b, 0xeb, 0x13, 0x6d, 0xd5, 0x96, 0x4b, 0x6d, 0xac, 0x3c, 0x9d, 0x80, 0xad, 0x65, + 0x5a, 0x59, 0xc1, 0xb7, 0xe8, 0x74, 0x00, 0x7e, 0x93, 0x8d, 0xfd, 0xf4, 0xf4, 0x45, 0x25, 0xaf, + 0xb9, 0xb8, 0xe4, 0x84, 0xaf, 0xeb, 0x9c, 0x52, 0xc9, 0x26, 0xc0, 0x2b, 0x52, 0xf8, 0xc2, 0xfc, + 0x63, 0x4e, 0xec, 0x71, 0xe5, 0xc4, 0xd8, 0x50, 0xf6, 0x25, 0x4b, 0xf3, 0x04, 0x2b, 0x49, 0xa1, + 0x49, 0x2e, 0xfd, 0xd1, 0xfd, 0x52, 0x3e, 0x97, 0xad, 0x43, 0x4f, 0xb2, 0x0e, 0xd9, 0xac, 0xde, + 0x06, 0x1a, 0x63, 0x92, 0x16, 0xea, 0xd8, 0x6b, 0x33, 0x5d, 0x30, 0x93, 0xf5, 0x37, 0xa5, 0x99, + 0x4d, 0x31, 0x89, 0x55, 0xb2, 0xb1, 0x03, 0x18, 0xc7, 0x56, 0xee, 0xab, 0x3f, 0xc8, 0xd3, 0x25, + 0xfc, 0x45, 0x48, 0x36, 0xc0, 0xa9, 0x17, 0xa9, 0xc6, 0x54, 0xdb, 0xbe, 0x01, 0x3a, 0x21, 0x94, + 0x38, 0x3f, 0x41, 0x56, 0x52, 0x2f, 0x51, 0x6f, 0x35, 0xaf, 0x7c, 0xaf, 0x97, 0xf4, 0x4c, 0x22, + 0x33, 0xe4, 0x75, 0x70, 0x6c, 0x33, 0xb6, 0x22, 0xd7, 0x98, 0xd6, 0x2f, 0xfc, 0xe5, 0xce, 0xca, + 0x4c, 0x6c, 0x43, 0xbc, 0x6e, 0x95, 0xfb, 0x96, 0x9f, 0xd8, 0x7e, 0x78, 0x0d, 0x5e, 0x12, 0x7e, + 0xf0, 0xb2, 0xf0, 0xb7, 0xfe, 0xfd, 0xe9, 0x27, 0xa8, 0xc3, 0x65, 0xfa, 0xd2, 0xa2, 0x53, 0xc1, + 0xad, 0x41, 0x1d, 0xdb, 0xb3, 0x50, 0xcf, 0xc4, 0xb1, 0x5c, 0x3c, 0x33, 0xb0, 0x29, 0xac, 0x20, + 0xab, 0xb3, 0xe3, 0xd2, 0x2e, 0xe3, 0x89, 0xfa, 0x3e, 0x7b, 0x2b, 0x94, 0x49, 0xb6, 0xd0, 0xfd, + 0xd4, 0x7a, 0x25, 0x49, 0x4f, 0x03, 0x5d, 0x13, 0xfc, 0x0e, 0xac, 0x4b, 0xe8, 0xa3, 0x5e, 0xc3, + 0xac, 0xbb, 0x4a, 0xcf, 0xc2, 0x00, 0xf0, 0x29, 0xab, 0xf9, 0x98, 0x6f, 0x8e, 0xa9, 0x19, 0xac, + 0x09, 0x1b, 0xab, 0xf1, 0xbd, 0x38, 0x2e, 0xf5, 0xd7, 0x32, 0x0b, 0xf7, 0x29, 0x7b, 0x97, 0x58, + 0xd6, 0xa2, 0xe4, 0xdb, 0x7d, 0x46, 0x17, 0x72, 0x00, 0x27, 0x64, 0x8b, 0xec, 0x3a, 0xb2, 0x7a, + 0x2e, 0xde, 0x97, 0x3c, 0x9f, 0x91, 0xe3, 0xfb, 0x19, 0x0c, 0x87, 0x34, 0xd7, 0x74, 0x81, 0x91, + 0x72, 0xfc, 0x7a, 0x33, 0xa0, 0x5c, 0x93, 0x8a, 0x9d, 0xd3, 0x02, 0x07, 0x28, 0xff, 0xc4, 0xbb, + 0x66, 0x1e, 0xce, 0x37, 0xfb, 0x12, 0x2b, 0xe1, 0xe4, 0x6b, 0x38, 0x2d, 0xa5, 0x79, 0xf0, 0x0a, + 0xed, 0x18, 0x39, 0x5d, 0x73, 0xaa, 0xd2, 0xc3, 0x31, 0x0d, 0x81, 0xde, 0x99, 0x6d, 0x0c, 0xf2, + 0xe7, 0xd8, 0x9a, 0xb2, 0xbd, 0x3b, 0xfe, 0xa9, 0xfb, 0x7d, 0xe4, 0xbd, 0x53, 0x67, 0x4f, 0xf4, + 0xc9, 0x98, 0x33, 0x92, 0x05, 0x5b, 0x45, 0x3e, 0xfe, 0x1a, 0x6b, 0xfa, 0x92, 0x1e, 0xbe, 0x98, + 0xdf, 0x81, 0x24, 0xd4, 0xde, 0xd4, 0x89, 0xa1, 0xb8, 0x0a, 0x5b, 0x3a, 0x51, 0xcb, 0xd9, 0x58, + 0x4b, 0x18, 0x7f, 0x2c, 0x71, 0x06, 0xce, 0x82, 0x79, 0x22, 0x47, 0x61, 0xa2, 0x5d, 0x94, 0x20, + 0xc0, 0x00, 0x96, 0xc1, 0x82, 0x34, 0xdd, 0x06, 0xc7, 0x68, 0x07, 0xc2, 0x1c, 0xe3, 0x6d, 0xc8, + 0x6d, 0xd8, 0xa0, 0xcc, 0x04, 0x9b, 0xbb, 0x43, 0xb3, 0x8c, 0xae, 0x1f, 0x1c, 0x26, 0xdd, 0xbc, + 0xa0, 0x9a, 0x59, 0x9b, 0xd5, 0x30, 0x3b, 0xfc, 0x2a, 0x51, 0x77, 0x23, 0x79, 0x82, 0x51, 0xdf, + 0xd8, 0x06, 0x45, 0xa0, 0xc2, 0x5f, 0x81, 0x2c, 0x4f, 0xe8, 0x6d, 0xb0, 0x98, 0xa5, 0x54, 0x49, + 0xb3, 0x20, 0xe3, 0x40, 0x1a, 0x6b, 0xfa, 0x10, 0x5e, 0xc7, 0xe2, 0x2a, 0xf1, 0x49, 0x4f, 0x30, + 0x64, 0xc9, 0x3f, 0xc2, 0x61, 0x0a, 0x39, 0xf8, 0xf6, 0xca, 0x75, 0x2e, 0xc8, 0x0b, 0xe9, 0x35, + 0x36, 0xe2, 0x5a, 0x69, 0xaf, 0x0a, 0xdf, 0xbf, 0xc6, 0x4e, 0x49, 0x7f, 0x4d, 0x58, 0x0d, 0xb3, + 0xa2, 0xfc, 0x5c, 0x6c, 0x31, 0xd1, 0xc4, 0xd6, 0xf2, 0x14, 0xc1, 0x6c, 0xbe, 0x0d, 0xcc, 0x46, + 0xf2, 0x79, 0x95, 0x5a, 0x71, 0xde, 0xc2, 0x3c, 0x48, 0x1a, 0xc8, 0xee, 0xc8, 0x0a, 0x55, 0xca, + 0xb2, 0x84, 0x89, 0xfa, 0x88, 0x66, 0xd2, 0x85, 0xa1, 0x0e, 0xbc, 0x63, 0xea, 0xa1, 0xa0, 0xb4, + 0x83, 0x11, 0x6e, 0xac, 0xef, 0x63, 0x76, 0x89, 0xf7, 0x85, 0xea, 0x02, 0x83, 0x70, 0x20, 0xe9, + 0xef, 0x20, 0x8a, 0x29, 0x0f, 0xd7, 0xf7, 0xb1, 0x9a, 0x6a, 0x93, 0x6d, 0x59, 0x8d, 0x2d, 0x74, + 0x48, 0xd4, 0x1b, 0x57, 0x83, 0x25, 0x2d, 0xac, 0xd6, 0xf7, 0x40, 0xf0, 0xac, 0x66, 0x90, 0x52, + 0x49, 0x79, 0x3e, 0xa8, 0x06, 0x11, 0x2e, 0x94, 0xca, 0xfd, 0x93, 0xe6, 0xdb, 0x99, 0x3c, 0xc6, + 0xd8, 0x69, 0xc5, 0x7c, 0xa7, 0xbf, 0x1f, 0xa9, 0xcd, 0xec, 0xfa, 0x49, 0x9e, 0x9d, 0xe3, 0xd5, + 0x49, 0xcd, 0xc4, 0x9c, 0xf0, 0x2c, 0xa4, 0x33, 0xbc, 0xc6, 0xc2, 0x4a, 0x9e, 0x89, 0xe3, 0xcc, + 0xc2, 0xbe, 0x44, 0x5e, 0x46, 0xcc, 0x42, 0x0e, 0xff, 0x95, 0xa0, 0x41, 0x0a, 0xa3, 0x9a, 0x6c, + 0x3d, 0x44, 0xa9, 0x91, 0xbd, 0xe1, 0x99, 0x5d, 0xf1, 0x51, 0x90, 0x4f, 0xbb, 0xc6, 0xcf, 0x92, + 0xe6, 0x0e, 0x9b, 0x89, 0x5a, 0xd9, 0x09, 0xaf, 0x7d, 0x8a, 0x58, 0x0d, 0x16, 0x51, 0x17, 0xd3, + 0xe3, 0x2f, 0x59, 0x42, 0x87, 0xaf, 0x91, 0x6d, 0x6d, 0x6e, 0xa3, 0x8d, 0xbc, 0x26, 0x7c, 0xef, + 0xfe, 0x41, 0xb0, 0xe1, 0x9c, 0x65, 0x8a, 0x82, 0x21, 0x9f, 0xb0, 0xe0, 0x4f, 0x03, 0xb5, 0xc8, + 0x2e, 0xad, 0x87, 0xc3, 0x77, 0x1f, 0xf9, 0xde, 0xf0, 0xa6, 0x2d, 0x31, 0xdf, 0xa6, 0xdb, 0x86, + 0xb3, 0x80, 0xf6, 0xa8, 0x78, 0xee, 0x9f, 0x86, 0x3d, 0xdd, 0xae, 0x58, 0x6f, 0x6c, 0x4b, 0x37, + 0x72, 0xb6, 0x77, 0x85, 0xb4, 0xb2, 0xf5, 0x65, 0xe0, 0x9c, 0xe4, 0x01, 0xd3, 0xae, 0xce, 0xf7, + 0xc6, 0x3f, 0xcf, 0xaf, 0x92, 0x76, 0x46, 0xcb, 0xc8, 0xfe, 0xaa, 0xce, 0x02, 0x56, 0xee, 0xd4, + 0xe3, 0x26, 0x25, 0xad, 0x00, 0xe7, 0x97, 0xc7, 0xcf, 0x75, 0x41, 0x7e, 0x65, 0xfc, 0xac, 0x6d, + 0x7e, 0xfc, 0x6c, 0xc1, 0xfc, 0xf8, 0xb9, 0x37, 0xee, 0xfa, 0xef, 0xcd, 0xf4, 0x9e, 0xbf, 0x38, + 0x7e, 0xce, 0x9c, 0x0f, 0x4e, 0xe4, 0x5b, 0x50, 0xd6, 0x12, 0x62, 0xc6, 0xd2, 0x19, 0xf1, 0xf8, + 0xf8, 0x23, 0xdd, 0xff, 0x12, 0x6b, 0x68, 0xf5, 0x6d, 0x0a, 0xba, 0x30, 0xae, 0xc8, 0x58, 0xfe, + 0x83, 0xc3, 0x89, 0xef, 0x78, 0x8d, 0x71, 0x2a, 0xc5, 0xae, 0x32, 0x33, 0x6b, 0x35, 0x19, 0x76, + 0x95, 0x3d, 0x5f, 0x92, 0x36, 0xfe, 0xe1, 0x61, 0x69, 0x96, 0x96, 0x5a, 0x44, 0xb2, 0x03, 0x0c, + 0xdb, 0x90, 0xe2, 0x8f, 0xb1, 0x76, 0x53, 0x18, 0x33, 0x14, 0xdd, 0x98, 0x76, 0x1c, 0x71, 0x94, + 0x78, 0xc4, 0x6d, 0x52, 0x8f, 0x30, 0xdf, 0xc1, 0x41, 0xcc, 0xc9, 0x83, 0xed, 0x55, 0x62, 0xcc, + 0x87, 0xb2, 0x44, 0x4e, 0x2c, 0x97, 0x82, 0xc4, 0xd9, 0x1a, 0xca, 0x0b, 0x7f, 0x55, 0x4c, 0x8f, + 0x4a, 0xca, 0xef, 0xf4, 0xa4, 0xfc, 0x6c, 0xa2, 0x29, 0x95, 0x1b, 0x2b, 0x19, 0xe5, 0xf3, 0x70, + 0x32, 0x9f, 0x9c, 0xb9, 0x18, 0x0b, 0x3c, 0xce, 0x36, 0x63, 0xf1, 0xc3, 0xf2, 0xae, 0xfa, 0xff, + 0x5f, 0xf7, 0x58, 0x99, 0xeb, 0x2b, 0xf5, 0x58, 0xff, 0xdf, 0xdb, 0x63, 0x65, 0xf7, 0x5e, 0x55, + 0x8f, 0xed, 0xb8, 0x62, 0x8f, 0x8d, 0xb1, 0x33, 0x0f, 0xd2, 0x5e, 0x49, 0x0e, 0x6f, 0xb9, 0x5c, + 0x8f, 0x41, 0x0f, 0xd2, 0x5a, 0x9b, 0x51, 0xea, 0x2b, 0x0b, 0x1c, 0x23, 0x2b, 0xd8, 0xb5, 0x9b, + 0x2c, 0x5c, 0x6f, 0xec, 0xb9, 0xcd, 0xa1, 0x84, 0xed, 0xf2, 0x15, 0xa7, 0x06, 0x4e, 0xfd, 0x8c, + 0x5a, 0x5b, 0x1a, 0xf5, 0x41, 0xda, 0xd1, 0x28, 0x32, 0x71, 0xc7, 0x63, 0xbf, 0x38, 0xd8, 0x38, + 0xcb, 0x3e, 0x95, 0xc9, 0x14, 0xf2, 0x99, 0xad, 0xb2, 0x93, 0xe9, 0x65, 0x17, 0x67, 0x25, 0xcb, + 0x4d, 0x30, 0x44, 0x27, 0x64, 0x7c, 0x96, 0x4a, 0xcc, 0x4e, 0xc9, 0x7d, 0xa0, 0xca, 0x93, 0xce, + 0xde, 0xfe, 0xff, 0xae, 0xd4, 0xb7, 0x14, 0x7c, 0x49, 0xa9, 0xfb, 0x2f, 0x5f, 0x6a, 0xa2, 0xa3, + 0xbc, 0x7c, 0x56, 0x9c, 0x3c, 0x03, 0x91, 0xf7, 0x15, 0x9d, 0x0b, 0xb2, 0x42, 0x56, 0x66, 0xcf, + 0xa4, 0x00, 0x73, 0xb5, 0x08, 0x3f, 0x08, 0xeb, 0xbf, 0x8e, 0xf3, 0xd2, 0x42, 0xc9, 0xf3, 0x48, + 0x0b, 0x68, 0x99, 0x1d, 0xa0, 0x3c, 0xd0, 0xd1, 0xbc, 0x2c, 0x06, 0xe7, 0x74, 0xf9, 0x6b, 0xeb, + 0xfe, 0x11, 0x9f, 0x56, 0xe0, 0x97, 0x5f, 0x4b, 0xf8, 0x95, 0x34, 0xba, 0x5e, 0x1e, 0x36, 0x55, + 0xbd, 0x32, 0x86, 0x90, 0x2b, 0x44, 0x53, 0x21, 0xa8, 0x05, 0x9c, 0xaa, 0x04, 0x50, 0x36, 0x38, + 0xa4, 0x78, 0x75, 0x2c, 0x1e, 0x77, 0x41, 0x1a, 0xd4, 0x71, 0x63, 0x64, 0x07, 0xec, 0x96, 0xec, + 0x16, 0xb8, 0x91, 0x7e, 0x7b, 0x65, 0x0b, 0x03, 0x2f, 0x49, 0x5c, 0x8a, 0xa4, 0x8f, 0x8f, 0xe5, + 0x54, 0x85, 0x67, 0x0f, 0x75, 0x37, 0x19, 0xa4, 0x53, 0xc6, 0x8a, 0x58, 0xec, 0x96, 0x8f, 0xdf, + 0x91, 0x74, 0xe9, 0xfd, 0x6b, 0x49, 0x32, 0x1a, 0x56, 0x2c, 0x97, 0xdf, 0x24, 0x4b, 0xf4, 0xa6, + 0x4c, 0x73, 0x0b, 0xe4, 0x48, 0x5e, 0x53, 0x52, 0x27, 0xd5, 0x98, 0xf4, 0x97, 0x87, 0xf3, 0xe8, + 0xfe, 0xf8, 0x13, 0xf5, 0xf2, 0x79, 0x3a, 0x9f, 0x2b, 0x64, 0x06, 0x92, 0x43, 0x8d, 0x12, 0x47, + 0xc0, 0xfc, 0x8d, 0xad, 0x66, 0xe7, 0xbb, 0x8a, 0xd2, 0x6c, 0xde, 0x6f, 0x15, 0x8b, 0x80, 0xfc, + 0x55, 0x1b, 0x29, 0x5e, 0x3a, 0x63, 0x33, 0xbe, 0x3f, 0xc1, 0x3d, 0x24, 0x6c, 0xe4, 0xeb, 0x5a, + 0x71, 0xce, 0xcc, 0x0b, 0x4d, 0xf4, 0x98, 0xc6, 0x76, 0x6d, 0x13, 0x76, 0xc7, 0xd8, 0x39, 0x7a, + 0x92, 0xf5, 0x8f, 0x31, 0x39, 0x9e, 0xec, 0xbb, 0x93, 0x9d, 0x1e, 0x5b, 0x72, 0xe6, 0x0d, 0x5a, + 0x41, 0x9a, 0x51, 0xfb, 0x06, 0x6c, 0x40, 0xe7, 0x0f, 0xc8, 0x8a, 0x7e, 0xd5, 0x99, 0xf8, 0x88, + 0x28, 0xae, 0x87, 0x9c, 0x7c, 0xb8, 0xfe, 0xb5, 0xcd, 0xeb, 0xc0, 0xb7, 0xb0, 0x78, 0x66, 0x5b, + 0x19, 0x5f, 0x11, 0x4e, 0x5a, 0x52, 0xbf, 0x10, 0x31, 0xba, 0x68, 0x77, 0x9c, 0x74, 0x0e, 0x98, + 0xfd, 0x1e, 0xcb, 0xd1, 0xbe, 0x97, 0x86, 0xe7, 0x54, 0xc5, 0x61, 0x21, 0xe1, 0x5f, 0x1e, 0xaf, + 0x8c, 0x6d, 0x8e, 0x80, 0xcd, 0xc7, 0x3c, 0x65, 0xea, 0xfc, 0x6b, 0x03, 0x3d, 0x61, 0xd7, 0x50, + 0x4f, 0x48, 0x1b, 0xd8, 0x84, 0x2d, 0x4a, 0xfc, 0xe4, 0x2e, 0x36, 0xfb, 0x3e, 0xbc, 0x0e, 0xaa, + 0x46, 0xfe, 0x3a, 0xbc, 0x64, 0xe4, 0xaf, 0x47, 0x68, 0x75, 0xe5, 0x07, 0x27, 0xe9, 0xbc, 0x4c, + 0x30, 0x77, 0x31, 0x72, 0xa2, 0xeb, 0x41, 0xcc, 0x34, 0xfe, 0x53, 0xb2, 0x5e, 0xc5, 0x81, 0xcd, + 0x7b, 0x36, 0x77, 0x7c, 0x28, 0xcf, 0xf3, 0xdb, 0xa4, 0x92, 0x8a, 0x16, 0xa4, 0x1b, 0xb9, 0xed, + 0x3c, 0xfd, 0xd6, 0xd2, 0xe9, 0xe7, 0xdc, 0x36, 0x03, 0xce, 0xf1, 0xce, 0x49, 0x56, 0x13, 0x0e, + 0xb0, 0xbc, 0x8e, 0xcb, 0xdf, 0x3e, 0x98, 0xdc, 0x5f, 0x57, 0xf3, 0x15, 0xfe, 0xfe, 0xc0, 0x26, + 0x46, 0x85, 0xee, 0x4e, 0x9c, 0x9d, 0xb4, 0xd8, 0xc1, 0xc6, 0x7b, 0x52, 0xbe, 0xf9, 0x8c, 0x9d, + 0x60, 0x99, 0x9c, 0xde, 0x44, 0x79, 0x22, 0xdd, 0x8e, 0x04, 0x9d, 0xd8, 0x0a, 0x27, 0xfd, 0x96, + 0x8e, 0xef, 0xc5, 0x11, 0x91, 0x53, 0xdf, 0xd7, 0x46, 0xdc, 0x4d, 0x26, 0xe4, 0x4c, 0x3e, 0x0f, + 0x4d, 0x9c, 0x2d, 0xeb, 0x9d, 0x19, 0x74, 0x72, 0xd2, 0xec, 0xa3, 0xb6, 0xa7, 0xd3, 0xa6, 0x1d, + 0xf5, 0x24, 0xef, 0x2e, 0xeb, 0xb2, 0x21, 0xf7, 0xc4, 0xfa, 0xfe, 0x41, 0xe6, 0x05, 0xc4, 0xa8, + 0x29, 0x60, 0x1c, 0x85, 0x9a, 0x6c, 0xc4, 0x89, 0x5a, 0x7b, 0x26, 0x5f, 0x00, 0x42, 0x6d, 0x8c, + 0x28, 0xa4, 0x74, 0x1a, 0x55, 0x24, 0x3d, 0x26, 0x0d, 0xd2, 0x84, 0x32, 0x63, 0x66, 0xf2, 0x04, + 0xb5, 0x4a, 0x78, 0x1c, 0x66, 0x09, 0x4e, 0xcb, 0xcc, 0x40, 0x4f, 0xfd, 0xbd, 0xc8, 0xcb, 0xf7, + 0x04, 0x07, 0xd2, 0xea, 0xf7, 0xdc, 0xe2, 0x91, 0xb1, 0x86, 0xf4, 0x13, 0x98, 0x7a, 0x2b, 0x5c, + 0x47, 0x1a, 0x27, 0xc1, 0x33, 0x64, 0xd3, 0x0e, 0xcb, 0x7f, 0x9d, 0x38, 0x8b, 0xea, 0x8b, 0xbd, + 0x88, 0x92, 0xba, 0xae, 0x4d, 0xc6, 0xb8, 0xea, 0xcb, 0xf1, 0xe7, 0x16, 0xe2, 0xcf, 0x5f, 0x44, + 0xdc, 0x1e, 0xc3, 0x2f, 0x1f, 0x43, 0x9c, 0x3b, 0x4b, 0x2d, 0x6b, 0xe9, 0x84, 0xe2, 0x14, 0xce, + 0x31, 0xdb, 0x00, 0x2b, 0x78, 0x57, 0x9a, 0xbd, 0x80, 0x88, 0x7c, 0xe6, 0xdd, 0x4a, 0xbe, 0x26, + 0x6f, 0xf9, 0x4e, 0x18, 0x8c, 0xbe, 0x94, 0x3f, 0xcb, 0x71, 0x0f, 0xb3, 0x26, 0x73, 0xde, 0xb7, + 0x0b, 0x84, 0x20, 0xce, 0x7a, 0x38, 0x6f, 0x1a, 0xe6, 0x95, 0x83, 0x40, 0xa3, 0x93, 0xce, 0xfd, + 0x93, 0x7c, 0x19, 0x03, 0xe6, 0x5d, 0xbe, 0xd1, 0x52, 0xca, 0x7c, 0xcc, 0x27, 0x4f, 0x65, 0xba, + 0x51, 0x32, 0xb2, 0x95, 0x93, 0x05, 0xaf, 0xa2, 0x2e, 0xe0, 0x44, 0x13, 0xd2, 0x21, 0xb2, 0xaf, + 0xe2, 0xb0, 0x83, 0x77, 0x4d, 0x2f, 0xf8, 0x1f, 0xac, 0xef, 0x2b, 0xb8, 0xb7, 0xff, 0x5e, 0x3b, + 0x48, 0xa7, 0xc8, 0x29, 0xb5, 0xc0, 0xbd, 0x7b, 0xee, 0x6d, 0x78, 0x0d, 0xbf, 0xb3, 0x48, 0xdf, + 0xa5, 0x4e, 0x73, 0x52, 0x58, 0x79, 0x22, 0xbd, 0xa3, 0xbe, 0x27, 0xc1, 0x12, 0xca, 0x62, 0xb4, + 0xf1, 0xee, 0xe4, 0xaa, 0x02, 0xce, 0x7a, 0x98, 0x83, 0x6d, 0x68, 0xec, 0xc6, 0x19, 0x0d, 0xba, + 0xe3, 0x3d, 0xba, 0x1e, 0xda, 0xa2, 0x5f, 0x05, 0xf1, 0x30, 0x2b, 0x5d, 0xaf, 0x5d, 0xe3, 0x0d, + 0xef, 0x8b, 0x53, 0x7f, 0xd2, 0xaa, 0x40, 0x64, 0xea, 0x31, 0x94, 0x2f, 0xe9, 0xcd, 0x04, 0x92, + 0xe5, 0x93, 0x5b, 0xfe, 0xb7, 0x94, 0xd2, 0x3c, 0x01, 0x2a, 0x91, 0x27, 0xac, 0x64, 0x61, 0xef, + 0xca, 0x27, 0xba, 0x52, 0xf6, 0x66, 0xda, 0x44, 0x66, 0x15, 0xcb, 0x75, 0x7d, 0x22, 0x5f, 0x3e, + 0x29, 0x37, 0x5c, 0x10, 0x45, 0x66, 0xd5, 0xc7, 0x75, 0x4b, 0xca, 0x52, 0x12, 0xcf, 0xce, 0xc0, + 0x13, 0x9e, 0xa7, 0x6c, 0xe2, 0xb3, 0x75, 0x38, 0x0b, 0x4a, 0xc7, 0x99, 0x69, 0xd4, 0xa3, 0x2c, + 0x3d, 0x8f, 0xf4, 0x34, 0x25, 0x5b, 0xf7, 0x74, 0x2a, 0x8e, 0xbc, 0x91, 0x62, 0x2b, 0xe9, 0x92, + 0x6b, 0x8e, 0x8d, 0xd8, 0x0b, 0xab, 0x8e, 0x3e, 0x89, 0xdc, 0x31, 0x10, 0x86, 0x54, 0xb1, 0x5e, + 0x90, 0xcf, 0x2f, 0x57, 0xd2, 0x1a, 0x38, 0xd6, 0xce, 0x25, 0x1a, 0xe5, 0x73, 0xf7, 0x3a, 0xac, + 0x67, 0x04, 0xdb, 0x1d, 0xe5, 0xff, 0x82, 0x2d, 0xfd, 0x5b, 0xa4, 0x6f, 0x28, 0xbd, 0xda, 0x2d, + 0x54, 0xa2, 0xe0, 0x6b, 0xd5, 0x6f, 0xe6, 0x81, 0x74, 0x62, 0xcc, 0x41, 0xe5, 0xa4, 0x73, 0x20, + 0x99, 0xd2, 0x18, 0x89, 0x72, 0x6f, 0x0f, 0x2e, 0xa2, 0xd5, 0xe3, 0xbc, 0xb9, 0x98, 0x3a, 0xf0, + 0xf8, 0x9b, 0x07, 0xa6, 0xb4, 0xd2, 0x3b, 0x31, 0x7d, 0x3e, 0xd6, 0x93, 0xc2, 0x65, 0x33, 0xf0, + 0x8a, 0xe1, 0x4d, 0xc1, 0x34, 0x3b, 0x46, 0xe3, 0x36, 0xc4, 0xa4, 0x74, 0x7a, 0xc9, 0xa7, 0x3d, + 0x9b, 0x11, 0xeb, 0x14, 0xa9, 0x13, 0xb9, 0xbc, 0xa2, 0x32, 0x36, 0xbc, 0x49, 0xb2, 0x84, 0xc8, + 0xac, 0xe1, 0xd1, 0x39, 0x6d, 0x79, 0x9f, 0x42, 0xdf, 0x9d, 0xdc, 0xa5, 0xe0, 0xe4, 0x5d, 0x0a, + 0xc5, 0x35, 0x2e, 0x50, 0x4a, 0x90, 0x4c, 0xff, 0x20, 0xb5, 0x36, 0xcc, 0x49, 0x6b, 0x95, 0xa4, + 0x6d, 0xc0, 0xde, 0x15, 0x6f, 0xdf, 0x13, 0xeb, 0x66, 0x73, 0xf9, 0x6b, 0xde, 0x3f, 0x97, 0x96, + 0x24, 0xce, 0x20, 0x31, 0x2d, 0x29, 0x83, 0x67, 0x38, 0xa4, 0x63, 0x67, 0xdf, 0xb4, 0x85, 0x48, + 0xd5, 0x44, 0x75, 0x54, 0x25, 0x2a, 0xa2, 0x3c, 0xce, 0x10, 0x3a, 0x9a, 0xa7, 0xf5, 0x7a, 0x1d, + 0xc0, 0xdc, 0x10, 0x28, 0xb7, 0x34, 0x14, 0xe1, 0x93, 0x36, 0x04, 0xf0, 0x79, 0x83, 0xde, 0x87, + 0xe3, 0x49, 0x75, 0x07, 0xbe, 0x6b, 0x82, 0xa0, 0xd2, 0x8a, 0x01, 0x7c, 0xca, 0x0d, 0x81, 0xc2, + 0x8f, 0xf7, 0xaf, 0x61, 0x8c, 0x07, 0xef, 0x59, 0x41, 0x50, 0x9e, 0x23, 0x6f, 0xc3, 0xf8, 0xbc, + 0x08, 0xc3, 0x1c, 0x0d, 0x59, 0xa4, 0xbb, 0x18, 0x5a, 0x41, 0x9a, 0x8c, 0x18, 0x77, 0x1c, 0x31, + 0xf7, 0x14, 0xd3, 0x58, 0x8c, 0x92, 0xf4, 0x8f, 0x23, 0x91, 0x56, 0xd5, 0x6f, 0xc2, 0x98, 0xfd, + 0xf8, 0x55, 0x61, 0xba, 0xc6, 0x84, 0x54, 0xa7, 0x75, 0xb3, 0x0f, 0x6e, 0x92, 0xea, 0xc5, 0xde, + 0x55, 0xbe, 0xee, 0xa0, 0xca, 0x59, 0xca, 0x01, 0xe3, 0x0b, 0xae, 0x25, 0xae, 0x40, 0x0c, 0x78, + 0x9b, 0x41, 0x51, 0x35, 0x32, 0xfe, 0x21, 0xf2, 0xa7, 0xaf, 0x51, 0x8f, 0xdb, 0x5c, 0x7c, 0x3b, + 0xd6, 0xb9, 0x19, 0x32, 0xe8, 0x4d, 0x82, 0x24, 0x7f, 0x71, 0xa2, 0x59, 0x86, 0x3c, 0x74, 0x11, + 0xa4, 0x3a, 0x05, 0x89, 0x7c, 0x46, 0x26, 0xd3, 0x9e, 0xe9, 0xc7, 0xb2, 0xf6, 0xff, 0x5d, 0x25, + 0x5a, 0x71, 0xd5, 0x25, 0x72, 0x5e, 0x55, 0x89, 0xb6, 0x49, 0xba, 0x55, 0xd8, 0x72, 0xf1, 0x20, + 0x28, 0x5e, 0x17, 0x41, 0xb1, 0x19, 0x47, 0x06, 0xcf, 0x34, 0x4c, 0x4f, 0x48, 0xeb, 0xdf, 0x37, + 0x74, 0x41, 0x38, 0x7e, 0x02, 0x7f, 0xf3, 0xe2, 0xa7, 0x31, 0xfe, 0x6e, 0x4b, 0x2d, 0x95, 0x59, + 0xc3, 0x21, 0xce, 0x83, 0x62, 0x39, 0x4a, 0x85, 0x0a, 0xbc, 0xfb, 0x49, 0xe7, 0xe4, 0xcc, 0x54, + 0x7c, 0xf2, 0x5c, 0x4f, 0x7b, 0x21, 0x0a, 0xf6, 0xab, 0xbc, 0x9e, 0xac, 0x94, 0xa8, 0xd8, 0xef, + 0x14, 0xec, 0x95, 0xaf, 0x37, 0xc8, 0x1a, 0x7f, 0xa2, 0x22, 0x6c, 0x22, 0xdd, 0x5b, 0x93, 0xae, + 0xa6, 0x07, 0xf3, 0x23, 0x4f, 0x29, 0xbc, 0x5d, 0x21, 0xe5, 0xb7, 0xf4, 0x0c, 0x78, 0xed, 0x99, + 0xf4, 0x7c, 0xf3, 0x21, 0x76, 0xa6, 0x25, 0x87, 0xce, 0xe7, 0x84, 0x73, 0x78, 0x7f, 0x6a, 0x8d, + 0xe1, 0x42, 0x7f, 0xc5, 0x19, 0xf8, 0x96, 0xa4, 0x83, 0x7b, 0xf3, 0xa1, 0xfa, 0x3e, 0xf2, 0x9b, + 0x84, 0x30, 0x2a, 0xde, 0x57, 0x7e, 0x36, 0x65, 0x1d, 0xed, 0x02, 0xb6, 0x37, 0x37, 0x64, 0xab, + 0xcd, 0xc6, 0x32, 0x2a, 0x94, 0x70, 0x0b, 0xe9, 0x70, 0xa2, 0xb8, 0xa0, 0x91, 0xf4, 0x7b, 0xd7, + 0x73, 0xef, 0xec, 0xca, 0x3b, 0x00, 0x4a, 0x01, 0xe7, 0x26, 0xbc, 0x14, 0x78, 0x29, 0xab, 0x3e, + 0xc4, 0xd6, 0x87, 0xa0, 0xe5, 0x6b, 0x64, 0x01, 0x4e, 0x89, 0xb3, 0x47, 0x91, 0x3d, 0x93, 0xe6, + 0xf7, 0xad, 0x61, 0x9a, 0x71, 0x99, 0xbf, 0x2e, 0x1d, 0x3d, 0x21, 0x1c, 0x3b, 0x5b, 0xee, 0x53, + 0x06, 0xb3, 0x05, 0x83, 0x60, 0x03, 0x8e, 0xd5, 0x51, 0x81, 0x4f, 0xca, 0xfa, 0x6c, 0xf2, 0x29, + 0xac, 0x53, 0x82, 0x32, 0x58, 0x9c, 0x73, 0x80, 0xb5, 0x41, 0x0e, 0x8b, 0xe7, 0x30, 0x2f, 0x1b, + 0x68, 0xaf, 0x6f, 0x85, 0xc5, 0x30, 0xcd, 0xa1, 0x7a, 0xcb, 0x7b, 0x3d, 0x52, 0x8f, 0xeb, 0x3d, + 0x30, 0x9d, 0xc5, 0xcd, 0xb8, 0xbe, 0x2b, 0x1e, 0x03, 0x83, 0x3a, 0x1b, 0x25, 0x90, 0x6a, 0x66, + 0xc3, 0x0d, 0x47, 0x08, 0x5f, 0xad, 0x1f, 0x03, 0x15, 0x96, 0x43, 0xb0, 0x6b, 0x4c, 0x52, 0x39, + 0x04, 0x7f, 0xbf, 0x9c, 0x62, 0x2b, 0x54, 0x42, 0x06, 0xc5, 0x79, 0xdb, 0x60, 0xba, 0x1c, 0x3e, + 0x13, 0x0c, 0x2c, 0x76, 0xa6, 0x1e, 0xcb, 0xf4, 0x52, 0x36, 0xd3, 0x8b, 0xc4, 0x7a, 0x1d, 0xcd, + 0xce, 0x8b, 0x49, 0x2d, 0x1f, 0x88, 0x51, 0xbb, 0x63, 0x09, 0x77, 0xd8, 0x6a, 0x2d, 0x89, 0x59, + 0x5c, 0x91, 0x36, 0xe6, 0x95, 0xc9, 0x31, 0x9f, 0x21, 0x61, 0x23, 0x8d, 0x79, 0xe6, 0xad, 0x56, + 0x13, 0x54, 0x23, 0x0d, 0x6a, 0x10, 0x8b, 0x04, 0xc1, 0x60, 0x85, 0xc5, 0x82, 0x1b, 0x5b, 0xb1, + 0xf2, 0x77, 0xcf, 0x48, 0x27, 0x73, 0x91, 0x4f, 0x76, 0x79, 0xc3, 0x16, 0x79, 0xef, 0x07, 0x69, + 0x64, 0x4f, 0x6a, 0x15, 0x66, 0xe8, 0xbe, 0x46, 0x85, 0xc5, 0x65, 0xd7, 0xd9, 0x33, 0xab, 0x46, + 0x46, 0xc3, 0xfe, 0x6d, 0x52, 0xfb, 0x4b, 0x3a, 0xa7, 0xde, 0x0e, 0xe2, 0x8a, 0xc2, 0x1a, 0x2a, + 0x15, 0x5b, 0x7f, 0x27, 0x5c, 0xbf, 0x1c, 0x06, 0x66, 0xc4, 0xdf, 0x60, 0x67, 0x20, 0x98, 0xa4, + 0x88, 0xdc, 0x32, 0xbf, 0x0a, 0x29, 0x8c, 0xfb, 0x83, 0xf8, 0x09, 0xe4, 0x9d, 0x68, 0xc7, 0x42, + 0x91, 0xea, 0xf9, 0x9b, 0x04, 0xc8, 0x8b, 0x28, 0x44, 0x85, 0xc0, 0xd1, 0xae, 0x90, 0xc0, 0x5d, + 0xe7, 0x86, 0x99, 0x41, 0xb5, 0x33, 0x1f, 0xf4, 0xf8, 0xe6, 0xbe, 0xc9, 0x0d, 0x59, 0x37, 0x12, + 0xbf, 0xaf, 0xa9, 0xfe, 0x60, 0x45, 0x69, 0x7c, 0x1f, 0x93, 0x50, 0x98, 0x3f, 0x14, 0xf2, 0x2f, + 0xf2, 0xc3, 0x9d, 0x30, 0xfa, 0x7b, 0xbd, 0x6a, 0xde, 0xf4, 0xcd, 0x30, 0xfa, 0xd0, 0x51, 0x7c, + 0x3f, 0x0c, 0xa3, 0x0f, 0xcb, 0x9e, 0x64, 0xcb, 0x97, 0xf9, 0x21, 0xe0, 0xbe, 0x0d, 0x56, 0x75, + 0x76, 0xcc, 0x6f, 0x5e, 0xd9, 0xd1, 0x48, 0x26, 0xb6, 0x0b, 0x17, 0x14, 0x2c, 0xe2, 0x2d, 0x8e, + 0x9b, 0x0a, 0x1c, 0xb2, 0xcf, 0x12, 0x2d, 0xc0, 0x8f, 0x9d, 0x8e, 0x66, 0x82, 0x27, 0xff, 0x29, + 0x9c, 0x6c, 0x58, 0x57, 0x7f, 0x5d, 0xd2, 0xc6, 0xee, 0xe8, 0x8f, 0xab, 0x93, 0xcf, 0x8d, 0x50, + 0xf9, 0xdd, 0xf8, 0x77, 0xe3, 0x64, 0x87, 0xf7, 0x47, 0x0f, 0x33, 0xf7, 0xb6, 0xa3, 0x3f, 0xfa, + 0x17, 0xbc, 0xab, 0xf0, 0xfe, 0x08, 0xf3, 0x09, 0x32, 0xfa, 0xa3, 0x7f, 0x25, 0x4b, 0x74, 0x78, + 0xdf, 0x89, 0xbf, 0x53, 0xf0, 0xfe, 0x6f, 0xe4, 0xb5, 0x19, 0xef, 0x3f, 0xc1, 0x58, 0x35, 0xde, + 0x1f, 0xc5, 0x7b, 0x06, 0xde, 0x1f, 0x23, 0x9f, 0x5c, 0x78, 0xff, 0x29, 0xbe, 0xcf, 0xc3, 0xfb, + 0xcf, 0xf0, 0x7e, 0x0d, 0xde, 0x1f, 0xc7, 0x7b, 0x16, 0xde, 0x7f, 0x8e, 0xf7, 0x6b, 0xf1, 0xfe, + 0x24, 0xde, 0x0d, 0x78, 0x7f, 0x0a, 0xef, 0x33, 0xf1, 0xfe, 0x0b, 0xb2, 0x14, 0x86, 0xf7, 0x5f, + 0xe2, 0xfd, 0x3a, 0xbc, 0xff, 0x0a, 0xef, 0x39, 0x78, 0xff, 0x35, 0xde, 0xaf, 0xc7, 0xfb, 0xbf, + 0xe3, 0x3d, 0x17, 0xef, 0xbf, 0xc1, 0xd2, 0xdd, 0x80, 0xf7, 0x61, 0xbc, 0xe7, 0xe1, 0xfd, 0x59, + 0xbc, 0x7f, 0x0d, 0xef, 0xcf, 0xe1, 0x7d, 0x16, 0xde, 0x9f, 0xc7, 0xfb, 0x6c, 0xbc, 0xbf, 0x80, + 0x77, 0x1e, 0xef, 0xff, 0x81, 0xf7, 0x39, 0x78, 0x3f, 0x46, 0x72, 0x03, 0xde, 0x5f, 0xc1, 0xfb, + 0xd7, 0xf1, 0xfe, 0x1a, 0xde, 0x4d, 0x78, 0xff, 0x2f, 0xbc, 0xcf, 0xc5, 0xfb, 0x1b, 0x78, 0x37, + 0xe3, 0xfd, 0x6d, 0xbc, 0xdf, 0x88, 0xf7, 0x53, 0x78, 0xb7, 0xe0, 0xfd, 0xcf, 0x78, 0xcf, 0xc7, + 0xfb, 0x19, 0xbc, 0xdb, 0xf0, 0xfe, 0x01, 0xde, 0xe7, 0xe3, 0xfd, 0x1c, 0xed, 0xe2, 0xe1, 0xfd, + 0x2f, 0x78, 0xb7, 0xe3, 0xfd, 0x53, 0xbc, 0x3b, 0xf0, 0xfe, 0x05, 0xde, 0x17, 0xe0, 0x7d, 0x0c, + 0xef, 0x4e, 0xbc, 0xc7, 0x69, 0xdf, 0x0c, 0x7b, 0x91, 0x6c, 0xb6, 0x15, 0xe2, 0x3d, 0x03, 0xef, + 0x8b, 0xf0, 0x8e, 0xa3, 0x1b, 0x8a, 0xf0, 0x3e, 0x0d, 0xef, 0xa5, 0x89, 0x8e, 0x70, 0x0b, 0xe5, + 0x9e, 0xba, 0x5a, 0xde, 0xc5, 0xbb, 0x6f, 0xbf, 0x65, 0xa3, 0x63, 0xe3, 0x82, 0x8d, 0xce, 0x8d, + 0x0b, 0x37, 0x16, 0x6e, 0x5c, 0xb4, 0xb1, 0x68, 0xe3, 0x4d, 0x1b, 0x8b, 0x37, 0xde, 0xbc, 0xd1, + 0xe9, 0xd8, 0xe8, 0x5c, 0xb0, 0x71, 0x01, 0x46, 0xe1, 0xaf, 0x73, 0xe3, 0x82, 0x85, 0x1b, 0x17, + 0x14, 0x6e, 0x5c, 0xb0, 0x68, 0xe3, 0x82, 0xa2, 0x8d, 0x0b, 0x6e, 0xda, 0xb8, 0xa0, 0x78, 0xe3, + 0x82, 0x9b, 0x37, 0x2e, 0x74, 0x6c, 0x5c, 0xb8, 0x60, 0x63, 0xa1, 0x63, 0x63, 0x21, 0xfe, 0x3a, + 0x37, 0x16, 0x2e, 0xdc, 0xb8, 0x08, 0x13, 0x29, 0xdc, 0x58, 0xb8, 0x68, 0xe3, 0x22, 0xc7, 0xc6, + 0x45, 0x0b, 0x36, 0x2e, 0x72, 0x6e, 0x5c, 0x84, 0x89, 0x2e, 0xda, 0xe8, 0xe0, 0xd7, 0x2d, 0x5b, + 0x0d, 0xe5, 0x2b, 0x3b, 0x56, 0x35, 0xb5, 0x41, 0x6d, 0x53, 0x5b, 0xd3, 0xaa, 0x28, 0x1f, 0x6c, + 0x69, 0x6b, 0xea, 0x58, 0xd9, 0xde, 0x04, 0x84, 0x34, 0x49, 0xc4, 0xb9, 0xc2, 0xbf, 0x14, 0x4c, + 0x9c, 0xe3, 0x38, 0xf8, 0x1f, 0xfb, 0x97, 0x9e, 0x76, 0x63, 0xe7, 0x9a, 0xa4, 0x6b, 0x91, 0xb4, + 0x71, 0x40, 0xcf, 0x6b, 0x3a, 0xdb, 0x9a, 0x12, 0x46, 0xb6, 0x27, 0x58, 0xdc, 0x6e, 0xe9, 0x88, + 0xae, 0x6d, 0x89, 0xa6, 0x3b, 0x25, 0x49, 0x4f, 0x65, 0x6d, 0xb4, 0xa5, 0xad, 0x25, 0xfa, 0x9d, + 0xe4, 0x7b, 0x4b, 0x47, 0x78, 0x6d, 0x34, 0x69, 0xac, 0x1b, 0xc7, 0xdc, 0x3f, 0xf3, 0x6b, 0x3b, + 0x56, 0x77, 0x74, 0x7e, 0xbb, 0x83, 0x5f, 0xb9, 0x8a, 0xd9, 0x6c, 0x27, 0xef, 0x2c, 0x18, 0x5e, + 0x02, 0xb7, 0xb9, 0xab, 0xea, 0xa0, 0xbc, 0x7a, 0x59, 0x6d, 0x05, 0xf8, 0x97, 0x49, 0x77, 0xf7, + 0xad, 0x75, 0xcb, 0xa0, 0xca, 0xef, 0x2e, 0xaf, 0xab, 0x5a, 0x4e, 0xa1, 0x9e, 0x8a, 0x9a, 0x3a, + 0x2f, 0xde, 0x6b, 0xab, 0x6e, 0x67, 0xaf, 0x01, 0xf7, 0x62, 0xbc, 0x09, 0xcb, 0x02, 0x9e, 0x8a, + 0x00, 0x32, 0x43, 0xe5, 0x4b, 0x3c, 0x81, 0x65, 0x35, 0x50, 0x5b, 0xb5, 0xb4, 0xa6, 0xba, 0x02, + 0x6a, 0x97, 0xba, 0x03, 0x75, 0xe0, 0xae, 0xae, 0x83, 0xdb, 0xaa, 0xfc, 0x9e, 0x65, 0xb7, 0x41, + 0x6d, 0x79, 0xa0, 0xa2, 0xc2, 0x0f, 0x73, 0x1b, 0xe7, 0xae, 0x82, 0xf2, 0xce, 0x8e, 0xf2, 0xb6, + 0x96, 0x70, 0x41, 0xa4, 0xa9, 0xa3, 0xb1, 0x69, 0xc3, 0xba, 0xce, 0xb5, 0x6b, 0x10, 0xfb, 0x4a, + 0x20, 0xb4, 0xb2, 0x31, 0xda, 0xd9, 0xd9, 0x96, 0xaa, 0x4f, 0x28, 0xb2, 0x32, 0xdc, 0xdc, 0xb2, + 0x2a, 0x15, 0xb0, 0x72, 0x4d, 0x5b, 0xf2, 0x79, 0xa3, 0xe5, 0xeb, 0xb7, 0x14, 0x90, 0x3d, 0xfc, + 0x79, 0xcc, 0x84, 0x17, 0xe2, 0xbf, 0x64, 0x73, 0x3b, 0xf1, 0xef, 0x46, 0xf9, 0x3d, 0x3d, 0xdc, + 0x84, 0xf3, 0xf5, 0x94, 0x02, 0x7b, 0xd2, 0x0b, 0xf2, 0xb6, 0x82, 0xd9, 0x92, 0x55, 0xed, 0x52, + 0xa3, 0x39, 0x93, 0x6c, 0x98, 0x3d, 0x74, 0x08, 0xa9, 0xd7, 0x13, 0x17, 0x5e, 0xb3, 0x40, 0x30, + 0x13, 0x61, 0x4b, 0x41, 0x19, 0x9b, 0x82, 0xd2, 0xfb, 0x11, 0xe4, 0xd7, 0x91, 0xa7, 0xfe, 0xd7, + 0x6a, 0xa2, 0xa4, 0xca, 0x17, 0xac, 0xc8, 0xa1, 0x06, 0xc9, 0xaa, 0x43, 0x69, 0x0c, 0xfb, 0x13, + 0xe3, 0x07, 0x6b, 0xfa, 0x8c, 0x38, 0xaf, 0xfc, 0x70, 0x38, 0x0a, 0x36, 0x0f, 0x59, 0xa2, 0x23, + 0x69, 0x66, 0x02, 0x44, 0x6f, 0x4d, 0xdf, 0x5c, 0xc9, 0xe6, 0x9e, 0x61, 0x6e, 0x05, 0xf3, 0x73, + 0x9b, 0x17, 0xce, 0x40, 0x19, 0x30, 0x27, 0x1c, 0xc7, 0x5f, 0x93, 0x51, 0xcb, 0xbe, 0xbb, 0x3d, + 0xf9, 0x15, 0xb0, 0xaf, 0x02, 0x72, 0xba, 0x87, 0x2e, 0x9b, 0xae, 0x63, 0x62, 0xba, 0xcc, 0x7e, + 0x71, 0x1e, 0x72, 0xe4, 0x5f, 0x9a, 0xf6, 0xf8, 0xa7, 0x98, 0xb6, 0x87, 0x24, 0x99, 0xf1, 0x06, + 0xda, 0x41, 0xf7, 0x94, 0x32, 0x1b, 0x59, 0x99, 0x64, 0x23, 0x0b, 0x5b, 0x47, 0x47, 0x56, 0x2d, + 0x6d, 0x77, 0x26, 0xac, 0x46, 0x01, 0xc9, 0xc6, 0x2e, 0xde, 0x0a, 0xae, 0xe0, 0xed, 0x28, 0x9d, + 0x93, 0xf5, 0x36, 0x4b, 0xca, 0xe6, 0x93, 0xbd, 0x0b, 0xd3, 0xfc, 0x0e, 0xf2, 0x1e, 0x74, 0xef, + 0x07, 0x0b, 0x93, 0x10, 0x6c, 0xec, 0x6d, 0x3d, 0x4a, 0x5a, 0x74, 0xdf, 0x00, 0xc5, 0xcc, 0x16, + 0x5b, 0x2b, 0xec, 0x80, 0x42, 0xf7, 0x19, 0x58, 0x61, 0x5c, 0x62, 0x6b, 0x35, 0x9e, 0xc1, 0x5c, + 0x7e, 0x82, 0x65, 0x2c, 0x65, 0xd2, 0x2b, 0x9d, 0xce, 0x2f, 0xc5, 0x3c, 0x4a, 0x43, 0x1b, 0xf9, + 0xc0, 0x1c, 0x17, 0xca, 0xdd, 0x81, 0x39, 0x64, 0xa7, 0xf5, 0x61, 0x30, 0x91, 0x54, 0xf8, 0xd0, + 0x89, 0xb0, 0xd2, 0x18, 0x98, 0x24, 0x15, 0x8a, 0x55, 0x52, 0x69, 0x98, 0x75, 0xbe, 0x1f, 0x9e, + 0x96, 0xb4, 0xb2, 0x17, 0x9d, 0xf2, 0x3f, 0x08, 0xad, 0x28, 0x12, 0xee, 0x33, 0xfb, 0xbc, 0x54, + 0x82, 0x1b, 0x48, 0x33, 0x7b, 0x6e, 0x2b, 0x14, 0x43, 0xd6, 0x22, 0xd2, 0x5c, 0xe0, 0xe7, 0x56, + 0x83, 0x2d, 0x4c, 0xf9, 0x59, 0xd2, 0x3c, 0xbe, 0x15, 0xd3, 0x3a, 0x21, 0xdb, 0x11, 0x0e, 0xa1, + 0xbc, 0x04, 0x92, 0x5d, 0x2a, 0xe4, 0xee, 0x4a, 0xa5, 0x92, 0xc6, 0xf7, 0x85, 0x37, 0x88, 0xef, + 0x26, 0xe4, 0x12, 0x93, 0x1d, 0x72, 0xcc, 0x76, 0xc8, 0xf3, 0xf5, 0x84, 0x0a, 0x8c, 0xc8, 0x93, + 0xa6, 0x49, 0x14, 0xe9, 0x6f, 0x66, 0x7b, 0x39, 0x4a, 0x42, 0x02, 0xd9, 0x43, 0x41, 0x39, 0x02, + 0x6b, 0xf1, 0xd3, 0xfd, 0x09, 0xdb, 0xea, 0x3c, 0xed, 0x1f, 0x19, 0x98, 0xf5, 0xea, 0x3c, 0x76, + 0x92, 0xf5, 0x31, 0x53, 0x2b, 0xd4, 0x50, 0x4b, 0x2c, 0x66, 0x70, 0x62, 0x4e, 0xba, 0x37, 0x7b, + 0xb6, 0xf7, 0xa8, 0xf5, 0x3f, 0x60, 0x12, 0x50, 0x9e, 0xca, 0x0a, 0x9e, 0x92, 0xb5, 0xf3, 0x65, + 0x4f, 0xc4, 0x6c, 0x2f, 0xe4, 0xd7, 0xc1, 0x02, 0x3e, 0xb0, 0x80, 0x38, 0xc6, 0x3c, 0x3e, 0x50, + 0x7e, 0x06, 0xf6, 0xcf, 0xa9, 0x4a, 0xb4, 0x21, 0x22, 0x8b, 0xc9, 0x18, 0x48, 0x49, 0x4a, 0xd8, + 0x3a, 0x3c, 0xec, 0x93, 0x7c, 0x06, 0x7f, 0x93, 0xf9, 0x76, 0x4b, 0x5f, 0xc5, 0x20, 0x29, 0x78, + 0xdd, 0x8a, 0x57, 0x63, 0x7c, 0x79, 0x32, 0x2c, 0xfd, 0xf9, 0x3e, 0xde, 0x65, 0x6e, 0x06, 0xad, + 0x25, 0x1f, 0xf3, 0x41, 0xaa, 0x6f, 0x1c, 0xbf, 0xb4, 0x85, 0xd7, 0x29, 0x07, 0x53, 0x12, 0x3f, + 0xb6, 0xf4, 0x7d, 0x13, 0xe5, 0x7d, 0x23, 0x59, 0x91, 0xeb, 0x67, 0xfd, 0xfa, 0x7e, 0x18, 0xd2, + 0x7b, 0x95, 0x8d, 0xc3, 0xcf, 0xc3, 0xa9, 0xdd, 0xa1, 0xd7, 0xe6, 0xba, 0x8c, 0x67, 0x28, 0xf4, + 0xc7, 0xda, 0x49, 0xa1, 0x9f, 0xb0, 0xd0, 0xec, 0x49, 0xa1, 0x23, 0x29, 0xe9, 0x5f, 0x7a, 0x72, + 0x7f, 0xc8, 0xdd, 0xc1, 0x20, 0xcd, 0x98, 0xfe, 0x59, 0x84, 0x78, 0x37, 0x25, 0xd3, 0x5b, 0x57, + 0x83, 0xe1, 0xbf, 0xfe, 0xf8, 0x5f, 0x7f, 0x44, 0x0e, 0x6e, 0x66, 0x20, 0x96, 0x2a, 0xc7, 0x85, + 0x3a, 0x5a, 0xc9, 0x08, 0xcd, 0xe2, 0x97, 0x62, 0x0c, 0x59, 0x9d, 0xd1, 0x48, 0x9a, 0x2c, 0x8b, + 0x4e, 0x11, 0xa4, 0x50, 0xa8, 0x01, 0xe6, 0x73, 0x14, 0xc4, 0x4c, 0x1d, 0x07, 0x25, 0x41, 0xb5, + 0xc2, 0x85, 0xfc, 0x78, 0x66, 0x00, 0x6b, 0x92, 0x05, 0x59, 0x85, 0x39, 0x10, 0x3c, 0x1d, 0x8e, + 0x3b, 0x5c, 0xe1, 0xf8, 0x50, 0x6f, 0x48, 0xe3, 0x3e, 0xdf, 0xcb, 0x99, 0x34, 0xa2, 0xc2, 0xa4, + 0x9b, 0xb4, 0x56, 0xe4, 0xc1, 0x91, 0x50, 0x33, 0xd7, 0x0b, 0xf5, 0x48, 0x0f, 0xea, 0xb0, 0xc7, + 0xea, 0xe6, 0x56, 0x41, 0x4d, 0xd8, 0x33, 0xb9, 0x3d, 0x11, 0xb2, 0x10, 0x25, 0xbd, 0xd3, 0xbc, + 0xeb, 0x1a, 0xb2, 0x63, 0x4c, 0x2b, 0xbf, 0x85, 0x82, 0x05, 0x32, 0xad, 0x78, 0x4f, 0x5f, 0x6d, + 0xba, 0xc1, 0x05, 0x33, 0x28, 0x6e, 0x4e, 0x2b, 0x78, 0xd8, 0x8e, 0x55, 0x61, 0xf9, 0x69, 0x30, + 0x20, 0x16, 0xe4, 0x91, 0x5f, 0x77, 0x7c, 0xce, 0xc1, 0x67, 0x03, 0x8e, 0xb0, 0xc2, 0x88, 0xf1, + 0x58, 0x6c, 0xae, 0x1b, 0x8a, 0xe5, 0x14, 0x69, 0x25, 0xaa, 0x58, 0x4e, 0xb1, 0xf8, 0x12, 0x29, + 0x16, 0x27, 0x53, 0x2c, 0xbe, 0x64, 0x8a, 0x54, 0x8e, 0xb4, 0xb5, 0x41, 0x53, 0x2c, 0x54, 0xb2, + 0x04, 0xc7, 0x38, 0x8d, 0x3d, 0x36, 0x2e, 0xcf, 0xda, 0xa7, 0x4b, 0x6d, 0x67, 0x9f, 0x9e, 0xf0, + 0xa8, 0x38, 0xa0, 0x96, 0x6d, 0x7d, 0xeb, 0x99, 0x8f, 0xdd, 0x5f, 0x07, 0x35, 0xec, 0xec, 0xe6, + 0xd6, 0xfa, 0x3e, 0xde, 0xf3, 0xd2, 0x21, 0xdf, 0x50, 0x6f, 0x5e, 0x48, 0x8d, 0x58, 0xaa, 0x87, + 0x7d, 0xb2, 0xcf, 0x51, 0x1d, 0xd9, 0xf2, 0x25, 0xfb, 0xc4, 0xf6, 0x69, 0x55, 0x6c, 0x7c, 0x48, + 0x3e, 0xc6, 0xa3, 0x40, 0x16, 0x04, 0xff, 0x55, 0x43, 0x5e, 0x4e, 0x9f, 0x7a, 0x98, 0x95, 0x84, + 0xad, 0x16, 0x44, 0x38, 0x1b, 0xf7, 0xf6, 0x13, 0xf8, 0x7e, 0x1f, 0xbd, 0x59, 0xb9, 0xb7, 0x7f, + 0xce, 0x67, 0xc4, 0xee, 0x36, 0xbb, 0x90, 0xbe, 0x91, 0xf6, 0xd6, 0x3c, 0x58, 0xfd, 0xf6, 0xcf, + 0xf8, 0x69, 0xb1, 0xee, 0xd4, 0x6a, 0xc1, 0x91, 0x58, 0x28, 0x1b, 0x47, 0x73, 0x16, 0xdb, 0x6f, + 0xc0, 0x16, 0xa7, 0x95, 0x8b, 0x28, 0x12, 0x35, 0xb0, 0xbd, 0x80, 0xd8, 0xac, 0x1c, 0xa2, 0xb4, + 0x53, 0x63, 0x40, 0xd1, 0x1a, 0x7f, 0x13, 0xf6, 0x91, 0x05, 0x27, 0x56, 0x26, 0xb6, 0x42, 0x3b, + 0x7a, 0x8a, 0x59, 0x22, 0x0a, 0x90, 0x35, 0x94, 0x45, 0x5e, 0x78, 0x4c, 0x68, 0x85, 0x47, 0x1d, + 0xde, 0xf2, 0x4f, 0x7a, 0x41, 0x98, 0x07, 0xfb, 0xd9, 0x0e, 0xe6, 0xaf, 0x83, 0xb9, 0x62, 0xc9, + 0xe2, 0x4f, 0x72, 0xa0, 0xfc, 0x13, 0x80, 0x6b, 0x57, 0xc3, 0x7e, 0xee, 0x40, 0xc0, 0xb5, 0xc8, + 0x05, 0x83, 0x81, 0x6e, 0x51, 0x11, 0xa1, 0xf5, 0xe2, 0xc1, 0xa7, 0x9e, 0xe9, 0x24, 0xbb, 0xfc, + 0xf1, 0xce, 0xd7, 0x30, 0x7c, 0x00, 0xaf, 0x5d, 0x28, 0x63, 0x2e, 0x26, 0xab, 0x2a, 0xa2, 0x5e, + 0x6a, 0xbb, 0xdd, 0x6a, 0x3a, 0x29, 0x88, 0xb2, 0x7e, 0x97, 0x5d, 0x6b, 0xf4, 0xf8, 0x7f, 0x40, + 0xeb, 0x86, 0x22, 0x28, 0x33, 0xa5, 0x71, 0x29, 0x3c, 0xce, 0xac, 0x7e, 0x68, 0x68, 0xbf, 0x55, + 0xf9, 0x61, 0x47, 0x35, 0xbb, 0x9f, 0x6d, 0x03, 0x78, 0x2c, 0x12, 0xd8, 0x4d, 0x6b, 0x6c, 0x8e, + 0xf6, 0x9c, 0xac, 0x52, 0x30, 0xb0, 0xe7, 0x37, 0xf0, 0xe9, 0x7a, 0xda, 0x45, 0x56, 0xec, 0x46, + 0xa9, 0xb4, 0x8e, 0xc1, 0x9e, 0xc4, 0xf0, 0x36, 0xf6, 0xf4, 0x0e, 0x3e, 0x0d, 0x44, 0x6e, 0x63, + 0xf1, 0x5b, 0x51, 0x0a, 0x64, 0x7b, 0xb8, 0x2a, 0x45, 0xc8, 0xd1, 0x91, 0xc3, 0xe2, 0x3f, 0x42, + 0xac, 0x1c, 0x64, 0x4f, 0xe7, 0xc8, 0xcf, 0x34, 0x79, 0x95, 0x66, 0x10, 0xca, 0x10, 0x28, 0x54, + 0xec, 0x49, 0x8d, 0xe1, 0xf5, 0xa2, 0x1f, 0x25, 0x8b, 0x9c, 0x97, 0x9f, 0x7f, 0xf9, 0xf9, 0xbd, + 0x3f, 0x03, 0x5d, 0x50, 0xfd, 0xcb, 0xf7, 0x40, 0xc5, 0xf4, 0xad, 0xfe, 0x28, 0xfa, 0x6b, 0x5b, + 0x61, 0x6f, 0xd8, 0x90, 0xf2, 0xd5, 0xc0, 0xe3, 0x78, 0x7c, 0xe9, 0xf0, 0x4b, 0x87, 0x99, 0x25, + 0x35, 0xd5, 0x1c, 0x1f, 0x98, 0x02, 0x08, 0x41, 0x5e, 0x3a, 0xd9, 0x89, 0x0f, 0x2f, 0x96, 0xe2, + 0x4c, 0xd8, 0x30, 0x71, 0x84, 0xc4, 0x4b, 0x70, 0x26, 0x20, 0x1b, 0xad, 0x21, 0xe1, 0xa7, 0x18, + 0xff, 0x06, 0xfb, 0xc2, 0x35, 0xa7, 0x1c, 0x74, 0xf8, 0xbd, 0xea, 0x54, 0x2f, 0x4a, 0xfe, 0xc0, + 0xed, 0xc3, 0xb6, 0xdd, 0x5b, 0x4b, 0x6d, 0xbd, 0xb7, 0x03, 0xb8, 0xc7, 0xd8, 0x99, 0xd0, 0x5f, + 0x63, 0xbf, 0x96, 0x52, 0xdf, 0x19, 0x2b, 0xfc, 0x3f, 0xc0, 0xf8, 0x7d, 0x0a, 0xd7, 0x85, 0x71, + 0x70, 0x29, 0x00, 0xa1, 0xf6, 0xd5, 0xb0, 0x56, 0xe5, 0xba, 0x7c, 0x83, 0x50, 0x1a, 0x64, 0xde, + 0x45, 0x3f, 0x3f, 0x4f, 0x9e, 0x2f, 0x82, 0xdb, 0x53, 0xa5, 0x91, 0xac, 0x4f, 0xd2, 0xa9, 0x1e, + 0x63, 0xa5, 0xff, 0x07, 0x08, 0x1d, 0x64, 0xd0, 0x99, 0x0c, 0xfa, 0x39, 0x06, 0x0d, 0xf1, 0xe6, + 0x4b, 0xc1, 0x53, 0x3f, 0x0e, 0x0d, 0xd0, 0xda, 0x8a, 0xef, 0x71, 0x30, 0x84, 0x8a, 0x28, 0x77, + 0x0d, 0xd6, 0x26, 0xc8, 0xe3, 0x64, 0xae, 0xa7, 0xfc, 0x31, 0x64, 0x97, 0x8c, 0x01, 0x83, 0x98, + 0xfe, 0x62, 0xea, 0x67, 0x94, 0x38, 0xcf, 0x26, 0xe2, 0xf1, 0xf9, 0x2d, 0xc4, 0xc2, 0x8f, 0xd8, + 0xd3, 0xab, 0x46, 0x2b, 0x78, 0xb1, 0xd7, 0x73, 0x42, 0x34, 0xab, 0x79, 0xed, 0x1c, 0x86, 0x1d, + 0x4b, 0x2b, 0x4b, 0x89, 0x54, 0x96, 0xf1, 0x13, 0xbe, 0x56, 0xd8, 0xd5, 0xa9, 0x93, 0xc6, 0x11, + 0x61, 0xb8, 0xe8, 0x37, 0xe5, 0xb3, 0x11, 0xdc, 0xbf, 0x80, 0xad, 0xad, 0xd9, 0xf0, 0x09, 0xf9, + 0x9e, 0x19, 0x82, 0x4b, 0x5a, 0x49, 0xf8, 0x87, 0x53, 0x35, 0x7d, 0xf3, 0x5d, 0xc0, 0x4f, 0x0e, + 0x2f, 0xf3, 0xb0, 0x70, 0xd3, 0x84, 0xd9, 0xce, 0x69, 0x9a, 0x26, 0xd5, 0x90, 0x95, 0xb4, 0x1f, + 0x7b, 0xc3, 0x65, 0xc3, 0xfe, 0xfc, 0xef, 0x17, 0xff, 0xfb, 0x45, 0xf9, 0xbc, 0x6f, 0x66, 0x4a, + 0x1b, 0x90, 0x2f, 0x25, 0x29, 0x50, 0x1a, 0x15, 0x21, 0x35, 0x5f, 0x4a, 0xf2, 0x20, 0xa6, 0x98, + 0x33, 0x1f, 0x67, 0x5c, 0xc8, 0x9b, 0x1f, 0xa0, 0x53, 0x55, 0xc9, 0x52, 0x0a, 0xf8, 0xfd, 0x4b, + 0xf2, 0xfb, 0x83, 0x8c, 0x5b, 0x70, 0x48, 0x2b, 0xa6, 0x3f, 0x5e, 0x28, 0xad, 0x73, 0x52, 0xbc, + 0x74, 0x02, 0x8b, 0xad, 0xe7, 0x67, 0xd1, 0x3a, 0xfa, 0x4f, 0x47, 0x68, 0xd5, 0xe1, 0x91, 0x83, + 0xe4, 0xfb, 0xf8, 0xd7, 0x85, 0xe9, 0x33, 0x18, 0xcd, 0x4f, 0xa3, 0xc7, 0x45, 0x18, 0x7b, 0x31, + 0x6d, 0x56, 0xe4, 0xd3, 0x9e, 0x49, 0x43, 0xa1, 0x9f, 0xed, 0x13, 0xe5, 0xa4, 0xad, 0x8e, 0xa6, + 0xd5, 0xf5, 0x42, 0x1b, 0xd1, 0x96, 0xd4, 0x0a, 0xa9, 0xcf, 0x0a, 0xbf, 0x6e, 0xd3, 0xa5, 0xa5, + 0x40, 0xd0, 0xa5, 0xcc, 0x26, 0x92, 0x26, 0xc1, 0x3f, 0xf0, 0x81, 0xd4, 0xd7, 0x32, 0x55, 0x43, + 0x5a, 0x5c, 0x35, 0xf2, 0xe9, 0x16, 0xff, 0x36, 0xa4, 0xca, 0x3b, 0x6a, 0xfa, 0x42, 0xb2, 0x2e, + 0x88, 0xb4, 0x6e, 0x8a, 0x61, 0xdb, 0x42, 0x99, 0xc9, 0x90, 0xfd, 0x9f, 0x36, 0x20, 0xcf, 0xd6, + 0x6a, 0x3c, 0xc9, 0xca, 0xa5, 0xa7, 0xb9, 0xd7, 0x05, 0xa9, 0x91, 0x83, 0x31, 0x67, 0x52, 0xf6, + 0x66, 0xf1, 0xed, 0x93, 0x09, 0x6f, 0x1f, 0x4e, 0xd4, 0x89, 0x60, 0x61, 0x9f, 0x4e, 0x0e, 0x4b, + 0xf8, 0x77, 0xf6, 0xef, 0xff, 0x2b, 0xf2, 0x87, 0xcc, 0x16, 0x95, 0x4e, 0xe6, 0xf3, 0x90, 0xe2, + 0xd6, 0x30, 0x0f, 0xc8, 0x5d, 0x63, 0xe4, 0x57, 0x23, 0x0a, 0x3f, 0xfc, 0x83, 0x44, 0xf5, 0x3e, + 0x2b, 0xaa, 0xe9, 0x93, 0xf9, 0x0f, 0x18, 0x47, 0x2a, 0x32, 0xfe, 0x1c, 0xf1, 0x91, 0xbc, 0x6c, + 0x1f, 0x9a, 0x6c, 0xad, 0x22, 0x3f, 0x69, 0xa0, 0xd5, 0x04, 0x89, 0xd7, 0x96, 0xf8, 0x1e, 0x13, + 0xf6, 0xbb, 0x39, 0x70, 0xa3, 0x0f, 0xb4, 0xe9, 0x73, 0x62, 0x64, 0x05, 0x9b, 0x97, 0x54, 0x6c, + 0x85, 0x57, 0xc7, 0x0b, 0x69, 0xdc, 0xd9, 0x56, 0x89, 0xe3, 0xa1, 0xf5, 0xd5, 0x39, 0x98, 0x2e, + 0xe8, 0xc5, 0x3d, 0xc4, 0xb7, 0x90, 0xad, 0x4b, 0xd2, 0x4c, 0xb5, 0xda, 0xa1, 0xd0, 0x54, 0x21, + 0xb8, 0x7f, 0x70, 0x78, 0x3d, 0x47, 0x6b, 0xd0, 0x25, 0x31, 0xea, 0xf5, 0x9f, 0xee, 0x34, 0x56, + 0x04, 0xee, 0xd2, 0x5f, 0xaf, 0x03, 0xb8, 0xb9, 0x01, 0x94, 0x65, 0x78, 0x77, 0x34, 0xd2, 0x7a, + 0x69, 0x01, 0x3e, 0xd9, 0x83, 0xa0, 0xb4, 0x09, 0x8b, 0x45, 0x93, 0xce, 0x03, 0xaa, 0x0e, 0x50, + 0x3a, 0xcb, 0xcf, 0xf5, 0xc2, 0xcb, 0xcf, 0xbb, 0x3f, 0xee, 0x85, 0x97, 0x0e, 0x4b, 0xeb, 0x3c, + 0xee, 0x73, 0x9a, 0xa3, 0x48, 0x59, 0x73, 0x36, 0x72, 0x3e, 0x37, 0xd2, 0xb4, 0x0f, 0x6d, 0x15, + 0xff, 0x72, 0xa4, 0x28, 0xb3, 0xb6, 0xdc, 0xa1, 0xaa, 0x75, 0x21, 0x8d, 0x56, 0x35, 0x74, 0x49, + 0xfb, 0x8c, 0x69, 0x16, 0x76, 0xb4, 0x38, 0xce, 0x73, 0x90, 0xbb, 0xb2, 0x14, 0xf5, 0x22, 0x3d, + 0x3c, 0x70, 0x93, 0x17, 0x14, 0x78, 0xdf, 0x83, 0x77, 0x15, 0xde, 0x77, 0xe1, 0x5d, 0x8d, 0xf7, + 0x47, 0xc3, 0xe0, 0x50, 0x22, 0xbf, 0x91, 0x36, 0xcb, 0xe7, 0xbb, 0x60, 0x9b, 0x64, 0x65, 0x93, + 0xf9, 0x92, 0xe8, 0x91, 0xfb, 0x82, 0xbc, 0xc8, 0x6b, 0x99, 0x47, 0xf0, 0x76, 0xd8, 0x26, 0x38, + 0x8a, 0xe1, 0x46, 0xbc, 0x43, 0x2e, 0xa6, 0xb1, 0x22, 0x0a, 0x85, 0x4a, 0xc9, 0x1a, 0xde, 0x8f, + 0xbf, 0x99, 0xf2, 0xb5, 0x1b, 0xd4, 0x42, 0x3b, 0x68, 0x88, 0x2a, 0x28, 0xca, 0xe4, 0xd8, 0xe5, + 0x69, 0xb1, 0x3a, 0x94, 0x0e, 0x34, 0xdd, 0x8f, 0x43, 0x26, 0xc6, 0xcf, 0x92, 0xe3, 0x57, 0xa4, + 0xc5, 0xab, 0x22, 0x9f, 0x89, 0xad, 0x72, 0x78, 0xe3, 0xa4, 0x54, 0x19, 0xd5, 0xe1, 0x4e, 0xcb, + 0xb1, 0x2d, 0xe9, 0xb1, 0x8a, 0xd5, 0x1f, 0xc5, 0xb1, 0x4f, 0x80, 0x3b, 0x22, 0xc7, 0x46, 0xd2, + 0xd3, 0x0c, 0x8f, 0x8a, 0x85, 0x72, 0xf8, 0x86, 0xf4, 0xaf, 0x22, 0xe3, 0xcf, 0xb2, 0x92, 0x70, + 0xdb, 0xe4, 0xd8, 0xee, 0xf4, 0xd8, 0xf0, 0x85, 0x67, 0xa4, 0xd8, 0x75, 0x72, 0x6c, 0xef, 0x84, + 0xf2, 0xac, 0x26, 0x4b, 0x92, 0x18, 0x5b, 0x2f, 0xc7, 0xfe, 0x20, 0x2d, 0xd6, 0x80, 0xb4, 0x30, + 0x13, 0x5c, 0x1c, 0x44, 0xc6, 0x0e, 0xc6, 0x6e, 0x74, 0xb3, 0x54, 0x1c, 0x32, 0xdc, 0x43, 0x69, + 0x7e, 0x89, 0x81, 0xcb, 0x95, 0x43, 0xff, 0x6d, 0x42, 0xa8, 0x4a, 0x0e, 0xfd, 0x69, 0x7a, 0x28, + 0x7c, 0xc8, 0xf4, 0x28, 0x29, 0xfc, 0xf1, 0xb4, 0xbc, 0x00, 0x7a, 0x74, 0x56, 0x70, 0x80, 0x3a, + 0xa8, 0xd7, 0x5b, 0xd9, 0x0a, 0xed, 0xfa, 0x10, 0xad, 0xd3, 0xd7, 0x87, 0xb4, 0x2b, 0xb6, 0x44, + 0x20, 0x0c, 0x77, 0xfa, 0x45, 0x6f, 0xcd, 0x16, 0xec, 0x71, 0xdf, 0x9d, 0xde, 0xa3, 0x2f, 0x8a, + 0xb9, 0xef, 0xf5, 0x66, 0x29, 0xd4, 0x5c, 0xfc, 0x28, 0x72, 0x8e, 0x53, 0x57, 0x69, 0xb3, 0x14, + 0x0a, 0x2e, 0xfe, 0x26, 0xbe, 0x3f, 0x1f, 0xe3, 0x9c, 0x9a, 0xad, 0x3e, 0x9f, 0xbb, 0xd3, 0x6a, + 0xc8, 0x0d, 0xbe, 0x2e, 0x9a, 0x68, 0x77, 0x15, 0xe7, 0xc2, 0x61, 0xf7, 0xb9, 0xde, 0xa3, 0xde, + 0x1e, 0xf7, 0x39, 0x1e, 0x78, 0x4d, 0x61, 0xe6, 0x36, 0xb7, 0x4f, 0xe8, 0xd4, 0x18, 0x72, 0x03, + 0xdd, 0x3e, 0x45, 0xf0, 0x04, 0x62, 0x8d, 0x4b, 0xac, 0x4b, 0x96, 0x6b, 0x77, 0x5a, 0xb9, 0xca, + 0x24, 0x6c, 0xe2, 0x95, 0xff, 0x34, 0x19, 0xcf, 0x76, 0x84, 0x8c, 0x12, 0x76, 0xf1, 0xe5, 0xde, + 0xe6, 0xf8, 0x08, 0x52, 0xd2, 0x56, 0x50, 0xd3, 0x0c, 0x86, 0x38, 0xb6, 0x43, 0x70, 0x58, 0x46, + 0xd8, 0xaa, 0xec, 0xe2, 0x60, 0x76, 0xc0, 0x23, 0x8d, 0x29, 0xa4, 0x94, 0xfb, 0xd8, 0x28, 0xd1, + 0x09, 0x2e, 0xd9, 0xc7, 0xc1, 0x98, 0x7f, 0x6d, 0x04, 0x67, 0x99, 0xb1, 0x9d, 0x92, 0xcc, 0xb8, + 0x90, 0xc9, 0x55, 0x5f, 0xa7, 0x91, 0x69, 0xfb, 0x3a, 0x59, 0x71, 0xb3, 0xd4, 0xdf, 0x93, 0x92, + 0xac, 0x6c, 0x92, 0x56, 0xd3, 0xe7, 0x76, 0x85, 0x71, 0x3e, 0xe8, 0x0c, 0x9c, 0x7e, 0x3e, 0x5c, + 0x1b, 0x0a, 0xdc, 0xd0, 0x15, 0xff, 0x71, 0x7c, 0x84, 0x69, 0x97, 0x6a, 0x6e, 0x70, 0xc7, 0x47, + 0xc3, 0x0a, 0xd1, 0x86, 0xfc, 0xb3, 0xc2, 0x9e, 0xb4, 0x62, 0xc0, 0xea, 0xf4, 0x6b, 0x6f, 0x7b, + 0x7c, 0x94, 0xa8, 0xbc, 0xf3, 0x2d, 0x7c, 0x1a, 0x49, 0xae, 0x69, 0x1b, 0x98, 0x0e, 0xf6, 0x88, + 0x7d, 0x3e, 0xf3, 0xf6, 0xb3, 0x81, 0x79, 0x0b, 0x98, 0x1f, 0x3f, 0x9f, 0xd0, 0x93, 0x60, 0xa9, + 0x8f, 0xf9, 0xda, 0x21, 0x33, 0xa8, 0x63, 0x16, 0x36, 0x2e, 0x38, 0x50, 0x36, 0x12, 0x55, 0xf8, + 0xcb, 0xdd, 0x70, 0x00, 0xf8, 0xde, 0x31, 0xfc, 0x0d, 0xf7, 0x5e, 0xa0, 0x95, 0x7e, 0xb6, 0x9e, + 0x2f, 0xa5, 0xe3, 0x64, 0x16, 0x9d, 0xd3, 0xd3, 0x18, 0xc7, 0xaf, 0x6b, 0xe2, 0x71, 0xa6, 0x6f, + 0x49, 0x3a, 0xdf, 0x12, 0x9c, 0xf6, 0x92, 0x70, 0x4b, 0x26, 0xc3, 0x8d, 0x9f, 0xbc, 0x24, 0x9c, + 0xef, 0x22, 0xb8, 0xfd, 0x09, 0x38, 0xef, 0x9f, 0x8b, 0x49, 0xcb, 0x8f, 0x69, 0x83, 0x23, 0x0f, + 0xf0, 0xd8, 0x10, 0x72, 0x91, 0x1d, 0x38, 0xdb, 0x18, 0x4f, 0xb2, 0xd9, 0xa4, 0xc1, 0x61, 0x35, + 0xbe, 0x51, 0xdc, 0x6a, 0x7c, 0x6b, 0xa8, 0xba, 0x6d, 0x79, 0x71, 0xf5, 0x8e, 0xe1, 0x7d, 0x63, + 0x10, 0x5f, 0xa5, 0x2a, 0xee, 0xe2, 0x80, 0xf8, 0xcd, 0x04, 0xb7, 0x8c, 0x3d, 0xba, 0xdf, 0x1b, + 0x26, 0x49, 0x7f, 0x24, 0xba, 0xa8, 0x1a, 0x1e, 0xa3, 0xaf, 0x8e, 0x56, 0x2f, 0x72, 0x19, 0x25, + 0x5b, 0x78, 0xf8, 0x7d, 0x7b, 0x0e, 0xcd, 0x25, 0x93, 0x67, 0x11, 0x61, 0xd0, 0x78, 0xb2, 0xd0, + 0x0a, 0x8f, 0xee, 0x69, 0x85, 0xc7, 0xda, 0x80, 0x53, 0xbb, 0x3f, 0xe1, 0xd9, 0x49, 0xb4, 0x80, + 0xb0, 0x48, 0x80, 0x47, 0x75, 0x64, 0x43, 0x77, 0x43, 0x83, 0x85, 0xf6, 0x9a, 0x42, 0x2b, 0x1a, + 0x32, 0xb3, 0xe0, 0x36, 0x0e, 0xb1, 0x58, 0xd9, 0x80, 0x1c, 0x88, 0x48, 0x56, 0x31, 0xa6, 0x86, + 0x0a, 0x69, 0x5f, 0x0a, 0xc7, 0xc4, 0x73, 0xc8, 0x01, 0xbc, 0x80, 0xcf, 0x79, 0xa1, 0x70, 0x03, + 0x8d, 0x86, 0xe9, 0x21, 0x1f, 0xfe, 0xe6, 0x60, 0xcc, 0x2e, 0xf1, 0x76, 0x7c, 0xfa, 0x6e, 0x08, + 0xa9, 0x71, 0xfc, 0xc7, 0xf8, 0xfe, 0xb0, 0xb8, 0x3e, 0x3c, 0x03, 0xa1, 0x77, 0x92, 0x0c, 0xa5, + 0x46, 0xce, 0x9b, 0x76, 0x51, 0x71, 0xce, 0x7c, 0x17, 0xcb, 0xf3, 0x6a, 0x44, 0x39, 0xdc, 0x4d, + 0x9a, 0x17, 0x18, 0xae, 0x15, 0xbb, 0xb2, 0x0f, 0x80, 0x2e, 0xdc, 0x24, 0x46, 0xc3, 0xd3, 0xc5, + 0xf0, 0x25, 0x20, 0x74, 0xe2, 0xed, 0x61, 0xab, 0xb8, 0x3c, 0xfc, 0x0d, 0x31, 0x50, 0x94, 0x0f, + 0x2a, 0x47, 0x39, 0x4a, 0x6d, 0x2a, 0xf9, 0x1c, 0x0e, 0xa3, 0x7d, 0x8e, 0x7c, 0x50, 0xbf, 0x2a, + 0x2c, 0x2a, 0x87, 0x47, 0x45, 0x47, 0xcd, 0xbd, 0x62, 0x36, 0x49, 0xda, 0x3b, 0xf2, 0x1c, 0x82, + 0xfb, 0x34, 0xec, 0xb7, 0x68, 0x5f, 0xeb, 0x65, 0x33, 0xc7, 0x71, 0xfe, 0xda, 0xe0, 0x30, 0xed, + 0x6a, 0x8a, 0xba, 0xec, 0x58, 0xb8, 0x51, 0x54, 0x33, 0x9c, 0xcf, 0xac, 0x7e, 0x73, 0x45, 0x9a, + 0x4d, 0x5e, 0x07, 0xf2, 0x51, 0x6e, 0xe2, 0xec, 0x2d, 0xdc, 0x81, 0x22, 0x2b, 0x0c, 0xb8, 0x3f, + 0x71, 0x80, 0x0f, 0x9f, 0x91, 0x4a, 0x6c, 0xc1, 0xf6, 0x1b, 0x0a, 0x95, 0x60, 0xdf, 0xed, 0xae, + 0x75, 0xb5, 0xaa, 0x1c, 0x8a, 0x5a, 0x97, 0x77, 0xd8, 0x08, 0x6f, 0xdf, 0x73, 0xb4, 0x9b, 0x2c, + 0xa8, 0x2b, 0x9e, 0xf6, 0x46, 0x34, 0xe0, 0x28, 0x77, 0x9f, 0xe6, 0x0e, 0xb0, 0xbd, 0x50, 0xc2, + 0xe7, 0x7e, 0x66, 0xf9, 0xdf, 0x8b, 0x02, 0xe5, 0xec, 0x0e, 0x35, 0x6b, 0xeb, 0xa1, 0x14, 0x04, + 0xa5, 0x74, 0x71, 0x0a, 0xec, 0xbb, 0x21, 0x8a, 0x63, 0x12, 0xc4, 0xee, 0x9a, 0x3e, 0x9c, 0x91, + 0x66, 0x77, 0xaa, 0x10, 0x0b, 0x76, 0x2f, 0xc2, 0x0b, 0xf6, 0x24, 0x6c, 0xf6, 0x4a, 0x9a, 0xd0, + 0xc8, 0x30, 0xcd, 0x72, 0x52, 0xc9, 0x80, 0x6b, 0xa4, 0xb9, 0x2b, 0x14, 0xec, 0x20, 0xef, 0x60, + 0x4a, 0xb2, 0xc9, 0x2b, 0x1a, 0xf1, 0x69, 0x4a, 0x88, 0xde, 0x35, 0xf8, 0xbe, 0x5d, 0xd4, 0x60, + 0x2a, 0x7b, 0x68, 0x07, 0xa6, 0xd6, 0xbd, 0xc8, 0xcd, 0x9e, 0x7a, 0x30, 0xa7, 0x3d, 0x3a, 0x57, + 0x3c, 0x1e, 0x32, 0x31, 0x2e, 0x7a, 0x4f, 0x9b, 0x4e, 0xe7, 0x06, 0x3e, 0xa8, 0x5e, 0xd4, 0x05, + 0xb3, 0x61, 0x0f, 0x95, 0x03, 0x31, 0x75, 0x0f, 0xbd, 0xc7, 0xe3, 0x08, 0xd9, 0x4a, 0xbf, 0xb7, + 0x3d, 0x2b, 0x0a, 0xd8, 0x1a, 0x52, 0xac, 0x10, 0xb2, 0xe9, 0x84, 0x78, 0x3c, 0xa8, 0x65, 0xdf, + 0xa9, 0x28, 0x0d, 0x6c, 0xc5, 0x3d, 0xbc, 0x26, 0x10, 0x53, 0xc4, 0xb0, 0x5a, 0xb3, 0xdb, 0x34, + 0xb5, 0xb1, 0xc8, 0x5b, 0xb1, 0xee, 0x40, 0x8c, 0xc5, 0xc9, 0x29, 0xde, 0xf6, 0xac, 0x77, 0x93, + 0xa7, 0x5c, 0x54, 0x08, 0xe5, 0x58, 0xfa, 0x41, 0x0c, 0x1d, 0x18, 0x72, 0xb7, 0xe5, 0x6c, 0x65, + 0x16, 0xea, 0x91, 0x46, 0x90, 0x85, 0x35, 0x0f, 0x93, 0xbe, 0x76, 0x52, 0x2f, 0x33, 0x2d, 0xe5, + 0x0e, 0xcc, 0x73, 0x00, 0xdb, 0x70, 0x17, 0x5e, 0x83, 0xc8, 0xf9, 0x96, 0x07, 0xc3, 0x54, 0x7a, + 0xef, 0xb0, 0x19, 0xde, 0xbe, 0xf7, 0xd5, 0x98, 0x7a, 0x13, 0xb5, 0xe1, 0xab, 0x5b, 0x24, 0xff, + 0x03, 0xb4, 0xf3, 0x55, 0x0c, 0x4e, 0x97, 0x03, 0x47, 0x50, 0xff, 0xc1, 0xa7, 0x9e, 0x6f, 0x53, + 0x17, 0x97, 0x72, 0x48, 0x06, 0x7d, 0x9e, 0xce, 0x92, 0x22, 0x8f, 0x3c, 0x9e, 0xa6, 0x11, 0x8e, + 0x48, 0xbd, 0x81, 0x5f, 0xed, 0xff, 0x8c, 0xff, 0x3f, 0xd8, 0xff, 0x78, 0x0d, 0x62, 0x4c, 0x2b, + 0xf6, 0x7e, 0x22, 0x8e, 0xac, 0xef, 0x9c, 0x23, 0x4d, 0x7e, 0xa6, 0x1f, 0x4d, 0x6d, 0xef, 0x64, + 0xa7, 0x3b, 0x70, 0x3c, 0x5b, 0x90, 0x3b, 0x37, 0xd1, 0x9a, 0x49, 0x2b, 0xbe, 0x5b, 0xc0, 0x28, + 0x6a, 0x23, 0x0a, 0xc4, 0xe1, 0x4f, 0x48, 0x7e, 0x49, 0xe0, 0xb2, 0x86, 0xc6, 0x49, 0xa6, 0x6f, + 0x53, 0x48, 0x8b, 0xe3, 0xfd, 0xcc, 0xde, 0x01, 0x94, 0xfb, 0x5f, 0x27, 0xe9, 0x81, 0xc9, 0xb4, + 0x99, 0x91, 0x29, 0xc3, 0xdd, 0x41, 0x2d, 0x6f, 0x01, 0x3d, 0xe3, 0xf2, 0xab, 0xc9, 0x72, 0x07, + 0xcb, 0x71, 0x23, 0xc9, 0x7c, 0x64, 0x6d, 0x13, 0x79, 0x44, 0x6a, 0x05, 0x03, 0x51, 0xe8, 0x6a, + 0x96, 0x3f, 0xb3, 0x5f, 0x90, 0x83, 0xf9, 0xe7, 0x11, 0xc6, 0x9a, 0xec, 0xc0, 0x3f, 0x75, 0xb0, + 0x51, 0x61, 0xd2, 0x2c, 0x39, 0xc3, 0xc9, 0x5a, 0xb3, 0xf8, 0x1d, 0x96, 0xcc, 0x3e, 0x1d, 0xf9, + 0x50, 0x9f, 0x7f, 0x9b, 0x14, 0x46, 0xb0, 0x3f, 0x38, 0x88, 0xa3, 0x67, 0x3a, 0xaf, 0x20, 0x8c, + 0xa3, 0xda, 0x21, 0xc6, 0x6d, 0x7b, 0x10, 0xc3, 0xf1, 0x1a, 0xc4, 0x6b, 0x80, 0xf2, 0x24, 0xbd, + 0x73, 0x66, 0xd5, 0x7d, 0x09, 0x69, 0x84, 0x97, 0x22, 0x87, 0xf3, 0x29, 0x9f, 0xd0, 0x52, 0x66, + 0x5a, 0x4a, 0xbf, 0x0e, 0x79, 0xcc, 0xad, 0x50, 0x53, 0x35, 0x12, 0x5f, 0x27, 0x9a, 0x53, 0xdc, + 0x5c, 0x5c, 0x85, 0xb5, 0xd2, 0xda, 0x2d, 0xf8, 0xa5, 0x26, 0x39, 0x63, 0xb5, 0x92, 0x0d, 0x09, + 0xb3, 0x60, 0xba, 0x36, 0xf8, 0x2a, 0xad, 0x8b, 0x3c, 0x75, 0x06, 0xea, 0x83, 0x6a, 0x94, 0x70, + 0xc6, 0x25, 0x59, 0x28, 0xa4, 0x85, 0x56, 0xd2, 0x01, 0x46, 0xdc, 0x78, 0x42, 0xd2, 0x13, 0x5e, + 0xf6, 0x51, 0x3c, 0x2c, 0x69, 0x34, 0xc1, 0x01, 0xf3, 0x0c, 0xea, 0x55, 0xf8, 0x15, 0xad, 0x06, + 0xec, 0x3a, 0xb1, 0x78, 0x64, 0xa4, 0xb5, 0x0a, 0xd3, 0x58, 0xf2, 0x11, 0x6c, 0x10, 0x41, 0xfd, + 0x2e, 0x8e, 0x2b, 0x1d, 0xca, 0x7a, 0x9e, 0x0e, 0x3f, 0x3e, 0xa9, 0x71, 0x04, 0x18, 0x3b, 0x4c, + 0xf8, 0x84, 0x5c, 0x1f, 0x3c, 0x47, 0xfa, 0x62, 0x48, 0xe9, 0x4a, 0xf0, 0xce, 0xe1, 0xe8, 0x7d, + 0x08, 0xef, 0x8a, 0x20, 0xa8, 0x91, 0x93, 0x85, 0xd7, 0xf1, 0x79, 0x2a, 0x42, 0x17, 0xb4, 0x23, + 0x9f, 0x80, 0xcf, 0x5a, 0x7c, 0xde, 0x83, 0xf7, 0x69, 0x18, 0x8f, 0xf2, 0xb0, 0xa2, 0x11, 0x9f, + 0x17, 0xe0, 0x37, 0xc7, 0x3b, 0x1c, 0xf8, 0x34, 0x23, 0x04, 0x19, 0x35, 0x1d, 0x06, 0x7c, 0x9a, + 0x1e, 0x02, 0x95, 0x13, 0xef, 0x99, 0x08, 0xd7, 0x2a, 0x82, 0xea, 0x28, 0x3e, 0x5b, 0x91, 0xa7, + 0x3b, 0x81, 0x77, 0x07, 0x86, 0x2d, 0x17, 0xa9, 0x1c, 0xdf, 0xc0, 0x12, 0x9d, 0xe8, 0xa0, 0x1d, + 0xb8, 0x9b, 0xda, 0x41, 0x2d, 0x20, 0xdc, 0x87, 0xf8, 0xdc, 0x88, 0xa1, 0x5a, 0xbc, 0x37, 0x21, + 0xfc, 0x27, 0x78, 0x2f, 0x45, 0x78, 0xb3, 0x08, 0x19, 0x2a, 0x5a, 0x1b, 0xc0, 0xf1, 0x30, 0xd0, + 0x09, 0xea, 0x6c, 0x36, 0x02, 0x07, 0x65, 0xfb, 0x82, 0x1e, 0xd1, 0x97, 0x36, 0x32, 0x20, 0xe3, + 0xf3, 0x8b, 0xc7, 0xc6, 0xe7, 0x9b, 0x91, 0x22, 0x0c, 0xc0, 0xa0, 0x64, 0xbd, 0x30, 0xe3, 0x55, + 0x39, 0xad, 0x5d, 0x08, 0x7d, 0x24, 0x90, 0x9e, 0x56, 0x39, 0x83, 0x5e, 0x2e, 0x32, 0x08, 0x4c, + 0x75, 0xd7, 0x6e, 0x17, 0xd6, 0xea, 0xb1, 0x09, 0x29, 0x4a, 0x30, 0x4e, 0x4c, 0x71, 0x17, 0x0c, + 0x8a, 0xbb, 0x1c, 0x82, 0x5d, 0x5a, 0xbb, 0xd9, 0x41, 0xf6, 0x8d, 0x33, 0x36, 0xb0, 0x72, 0x20, + 0x8e, 0x60, 0xda, 0x1d, 0x89, 0x12, 0xda, 0xb5, 0x24, 0x89, 0x3d, 0xbe, 0x87, 0x76, 0x7d, 0x13, + 0x29, 0x53, 0x59, 0x76, 0xbb, 0x82, 0xcc, 0x36, 0xed, 0xe7, 0xdb, 0x6a, 0x31, 0x35, 0xbc, 0x06, + 0xb1, 0x15, 0x0c, 0xa5, 0xdc, 0xc3, 0x2e, 0x46, 0x77, 0x76, 0x49, 0xf5, 0xa4, 0x13, 0x20, 0xb4, + 0x6f, 0xbb, 0x8b, 0x37, 0x0a, 0xfe, 0x1f, 0x94, 0x56, 0xda, 0x33, 0x11, 0x3f, 0x07, 0x71, 0xcc, + 0xfd, 0x26, 0x31, 0xe6, 0x3e, 0xeb, 0x62, 0xa9, 0xf8, 0x15, 0x77, 0xb3, 0x52, 0xaa, 0xa5, 0x3c, + 0x29, 0x37, 0xe4, 0xfb, 0xf8, 0xf4, 0xd6, 0x51, 0xbd, 0x7e, 0x71, 0xeb, 0x7c, 0x16, 0xa4, 0x32, + 0x95, 0xc8, 0x65, 0xda, 0x4f, 0x16, 0x29, 0x1b, 0x1f, 0x72, 0xa5, 0x72, 0xa5, 0x5d, 0xe1, 0xd2, + 0x8a, 0x64, 0xae, 0xc9, 0x91, 0xfe, 0x19, 0x9d, 0xe1, 0x7c, 0x40, 0x71, 0x17, 0x4b, 0x2d, 0x23, + 0x99, 0x5a, 0x0e, 0x9d, 0xfb, 0x91, 0xce, 0xa6, 0x50, 0x79, 0x27, 0x7e, 0x97, 0x4e, 0x2d, 0x88, + 0xfa, 0xdc, 0x44, 0xd4, 0x7d, 0xc0, 0x09, 0xc7, 0xb0, 0xfe, 0x5b, 0x11, 0x8e, 0x6a, 0x4d, 0x75, + 0x66, 0x52, 0x2c, 0xa8, 0x6c, 0xa9, 0x7e, 0x40, 0xc1, 0x67, 0x96, 0xd4, 0x2a, 0xd8, 0x6a, 0xcc, + 0xf6, 0xe4, 0x67, 0x77, 0x20, 0x0e, 0xbe, 0x5b, 0xc2, 0x5d, 0xa1, 0xac, 0xc9, 0x16, 0xfa, 0xf4, + 0x76, 0xf6, 0x85, 0x6d, 0x72, 0x69, 0x3f, 0x6d, 0x9d, 0x58, 0x5a, 0xfa, 0xce, 0x9e, 0x59, 0xce, + 0xbe, 0xdc, 0x01, 0x13, 0x4b, 0x2a, 0x42, 0xbc, 0x35, 0x85, 0x39, 0xca, 0x7e, 0x69, 0x6d, 0xca, + 0xff, 0x00, 0x96, 0x42, 0xa4, 0x5a, 0x10, 0xd5, 0xe8, 0x1f, 0x26, 0x2e, 0xa5, 0x13, 0x94, 0x11, + 0x6a, 0xf5, 0x4b, 0x53, 0xea, 0xbf, 0x7e, 0x2a, 0x53, 0xea, 0x07, 0xe8, 0x2b, 0x4a, 0x85, 0x6a, + 0x8c, 0xa9, 0xe4, 0xb2, 0x72, 0x30, 0x6b, 0xd9, 0x7f, 0xc5, 0xf7, 0x0b, 0x01, 0x5d, 0x2b, 0xc4, + 0x61, 0x17, 0xca, 0x66, 0xa6, 0xb4, 0x98, 0xfe, 0x89, 0xbd, 0x15, 0xcc, 0x71, 0x7f, 0x02, 0x70, + 0x4d, 0x27, 0xfc, 0x2a, 0xb1, 0x96, 0x46, 0x29, 0x62, 0x6a, 0xe7, 0xae, 0xa6, 0x0f, 0xff, 0x2a, + 0x4c, 0x6e, 0x91, 0xbf, 0xd6, 0x2f, 0x93, 0x2c, 0xba, 0x4c, 0x6e, 0x91, 0x03, 0x72, 0x8b, 0xfc, + 0x66, 0x42, 0xdf, 0x0d, 0xca, 0xb9, 0xff, 0x21, 0xb9, 0x92, 0xd7, 0x4a, 0xb9, 0x8f, 0xbb, 0xe4, + 0x15, 0x1d, 0xd2, 0xe6, 0xd8, 0x40, 0x92, 0x08, 0xad, 0xd9, 0xe0, 0xbb, 0x3a, 0x94, 0x9d, 0x5c, + 0x19, 0xd0, 0x25, 0x56, 0x06, 0x84, 0x41, 0x28, 0x4d, 0xd4, 0x55, 0x51, 0xcc, 0x68, 0x83, 0x63, + 0x36, 0x79, 0xd0, 0xf8, 0x55, 0xaa, 0xde, 0xe7, 0x77, 0xb0, 0x1e, 0x8c, 0x11, 0x2d, 0x64, 0x79, + 0x62, 0xbc, 0x9c, 0x27, 0xb5, 0x84, 0x3e, 0x7d, 0xbd, 0x28, 0xc4, 0x46, 0xe4, 0xc8, 0x3a, 0xf2, + 0x85, 0xc5, 0xd6, 0xb5, 0x88, 0x86, 0x73, 0xcc, 0x5e, 0x31, 0x17, 0x04, 0xee, 0x55, 0x3e, 0xa5, + 0xbf, 0x37, 0x6e, 0x74, 0xf1, 0x2d, 0xa0, 0x65, 0xe5, 0x31, 0x08, 0x03, 0xcc, 0xb6, 0x0d, 0xf2, + 0xa3, 0xe7, 0xea, 0x15, 0xad, 0xe3, 0x71, 0x5a, 0x05, 0xfb, 0x35, 0xd1, 0x61, 0xe0, 0x7e, 0x22, + 0x51, 0x62, 0x1c, 0x4f, 0x3b, 0x12, 0x25, 0xe5, 0xee, 0x9f, 0x5c, 0xc6, 0xbf, 0x9c, 0x67, 0x38, + 0x75, 0x22, 0x59, 0xc6, 0x4e, 0xf8, 0x7d, 0xa2, 0x8c, 0x89, 0xb2, 0x31, 0x7b, 0xa5, 0xc0, 0x05, + 0x8c, 0xad, 0xe0, 0xdd, 0x2d, 0xf9, 0x0f, 0xac, 0x74, 0x08, 0xd1, 0x57, 0x8e, 0xf7, 0x92, 0x16, + 0x7c, 0x4a, 0xcb, 0x12, 0x61, 0x0a, 0xa4, 0x75, 0xb2, 0x67, 0xce, 0xb0, 0x73, 0xbd, 0x3c, 0x5b, + 0xc3, 0x4f, 0xea, 0xe3, 0x8d, 0x6f, 0x60, 0x7a, 0x84, 0xda, 0xd9, 0xb4, 0x82, 0xdd, 0x23, 0x3c, + 0x09, 0x9b, 0x05, 0x3b, 0x6c, 0xc2, 0xab, 0x97, 0x85, 0xdc, 0x33, 0x69, 0x47, 0x63, 0x8b, 0xfb, + 0x23, 0xd8, 0xe7, 0x3e, 0x1d, 0x7f, 0xd5, 0xee, 0x85, 0xed, 0x08, 0xbd, 0xb5, 0x1c, 0xdf, 0xcb, + 0xdf, 0x8b, 0xbf, 0x6e, 0xaf, 0x02, 0xaa, 0x47, 0x06, 0xf2, 0xce, 0x4b, 0x61, 0xf0, 0x96, 0x2e, + 0xc8, 0x85, 0x27, 0xf0, 0x77, 0x39, 0xec, 0x09, 0x5b, 0x99, 0x2d, 0x9f, 0x21, 0x84, 0xb6, 0x4a, + 0x7c, 0x72, 0x84, 0xf3, 0xba, 0x53, 0xab, 0x8e, 0xe4, 0xe1, 0x0b, 0xe3, 0x8a, 0xf0, 0x2a, 0x63, + 0x5f, 0x08, 0xf8, 0xe4, 0xc5, 0x8b, 0xec, 0x05, 0xd5, 0x30, 0x0f, 0x28, 0x75, 0x42, 0x27, 0x78, + 0xc8, 0x72, 0xd0, 0x2d, 0x5d, 0x2e, 0x00, 0x11, 0xcb, 0xb0, 0x1c, 0xf3, 0x2f, 0x08, 0x43, 0x44, + 0x9f, 0xa6, 0x69, 0x26, 0x60, 0x59, 0x1e, 0x4e, 0xad, 0x74, 0xf0, 0x29, 0x1f, 0x8c, 0xb1, 0xcb, + 0xaf, 0xf7, 0xcc, 0xed, 0x04, 0xa7, 0xf1, 0xe4, 0x22, 0x4c, 0xdf, 0xf8, 0x96, 0xd0, 0x6a, 0x7c, + 0x83, 0x7a, 0x80, 0x56, 0x83, 0x0b, 0xa1, 0xa6, 0x2f, 0x08, 0x5f, 0x64, 0x26, 0x25, 0xb5, 0x2e, + 0x6c, 0xf1, 0xfe, 0xd4, 0x89, 0x25, 0x94, 0xd6, 0x0c, 0x12, 0x56, 0x78, 0x86, 0x83, 0x0e, 0x7e, + 0x1e, 0xe4, 0x15, 0xb5, 0xc2, 0x13, 0x43, 0xf7, 0xb6, 0x29, 0xcc, 0x64, 0x9f, 0x68, 0x2a, 0xc3, + 0xb2, 0xc3, 0x18, 0xff, 0x44, 0xff, 0x12, 0x9a, 0x6b, 0x99, 0x4d, 0xfb, 0x3a, 0xec, 0xfd, 0x51, + 0xec, 0xfd, 0x6a, 0x0d, 0x71, 0xfe, 0xd9, 0xc2, 0xcf, 0x18, 0x9e, 0x4c, 0xf5, 0xef, 0xff, 0xd0, + 0x91, 0xc0, 0x13, 0xd1, 0x41, 0xeb, 0x97, 0x88, 0x43, 0x14, 0xf7, 0x24, 0x4a, 0x67, 0x55, 0x89, + 0xf3, 0x34, 0x1f, 0xea, 0x68, 0x3e, 0x37, 0x7e, 0x33, 0xe5, 0x93, 0x07, 0x67, 0x72, 0x0e, 0xf6, + 0x25, 0x4e, 0x41, 0x19, 0xed, 0x89, 0x3d, 0xc7, 0x78, 0x8f, 0xb4, 0xe7, 0x38, 0x7e, 0x80, 0xd6, + 0x76, 0x2c, 0x9d, 0x5c, 0xd4, 0xda, 0xc9, 0xad, 0xe7, 0x6f, 0xe5, 0x9b, 0xa1, 0x14, 0xaf, 0x02, + 0x5b, 0x1b, 0xdb, 0x33, 0xf4, 0x5b, 0xb0, 0xe7, 0xd5, 0x8e, 0x54, 0x38, 0xf6, 0x75, 0x9b, 0xf1, + 0x53, 0xa6, 0x2b, 0x4d, 0xfe, 0x8b, 0x20, 0x63, 0x0c, 0x5b, 0x74, 0x2f, 0x86, 0x7d, 0x48, 0xfd, + 0x44, 0xcf, 0x26, 0xf2, 0xf3, 0xa2, 0x91, 0x43, 0x9e, 0xa6, 0x10, 0xb6, 0xf7, 0x94, 0x19, 0x56, + 0xc8, 0x61, 0x47, 0x0a, 0x21, 0x19, 0x7a, 0x4d, 0x58, 0x9d, 0x08, 0xdd, 0xe3, 0xea, 0x54, 0x38, + 0x14, 0x65, 0xa0, 0x5e, 0x0c, 0x7a, 0xb3, 0x87, 0xac, 0x66, 0x95, 0x58, 0xc0, 0x50, 0x94, 0xb1, + 0xa2, 0xfc, 0x96, 0x72, 0x70, 0x3a, 0xe6, 0x43, 0x36, 0xf2, 0xcc, 0x33, 0x3a, 0x55, 0x28, 0xc1, + 0x68, 0x88, 0x9b, 0xee, 0x50, 0x84, 0x55, 0xeb, 0xa0, 0x28, 0xc3, 0x5e, 0x0e, 0x05, 0xa5, 0x19, + 0xea, 0x4a, 0xc8, 0x36, 0x2a, 0x03, 0xdd, 0xcf, 0x3c, 0x73, 0xc2, 0x55, 0x38, 0xa5, 0x46, 0x48, + 0x95, 0xd8, 0xd9, 0x0c, 0x3a, 0xc7, 0xd4, 0x67, 0xc6, 0x6e, 0x5d, 0x2e, 0xb8, 0xbc, 0x2e, 0xe7, + 0xd4, 0x75, 0x33, 0xde, 0x5d, 0xd9, 0xef, 0x3e, 0x2e, 0x0c, 0x09, 0x9d, 0x8a, 0x42, 0x28, 0xb2, + 0x40, 0x16, 0x72, 0x7c, 0xa6, 0x22, 0xd7, 0xec, 0x66, 0x98, 0x0b, 0xb7, 0xdc, 0x42, 0xab, 0xc7, + 0xf4, 0xfc, 0x75, 0x10, 0xf0, 0xd7, 0x0c, 0xe5, 0xee, 0x8f, 0xb8, 0x7a, 0xb9, 0xce, 0xf7, 0xdb, + 0x5c, 0xa9, 0x74, 0xe9, 0x2b, 0x6f, 0xac, 0xde, 0x75, 0x8b, 0x8b, 0x2b, 0x31, 0x79, 0x70, 0x8c, + 0x69, 0x1c, 0xf3, 0xc0, 0x70, 0xbb, 0x2b, 0xcb, 0x02, 0x5f, 0xf7, 0x76, 0x1f, 0x75, 0x63, 0x78, + 0xa9, 0x43, 0xf1, 0x4d, 0x8a, 0x2f, 0x8b, 0x7c, 0xb8, 0xb5, 0xa2, 0x84, 0x7b, 0xbd, 0xf2, 0x96, + 0x0a, 0xce, 0x25, 0x3c, 0xc9, 0x21, 0xf6, 0x72, 0x88, 0xa7, 0x48, 0x22, 0x7c, 0xf8, 0x54, 0x6d, + 0xef, 0x84, 0x12, 0xae, 0x06, 0x9f, 0xea, 0x2a, 0x3e, 0xe2, 0x72, 0x25, 0x6d, 0xa2, 0x84, 0xbd, + 0x46, 0x7b, 0x57, 0x4c, 0x03, 0x6a, 0xce, 0xec, 0xfe, 0x00, 0xf9, 0x47, 0x2f, 0x67, 0x65, 0xef, + 0x8b, 0x70, 0xbc, 0xd2, 0xbd, 0x88, 0x2b, 0x0a, 0xab, 0x78, 0x7f, 0xf9, 0x47, 0x5c, 0xa5, 0x5c, + 0xc2, 0x93, 0xd8, 0x2b, 0x42, 0x89, 0x9d, 0xab, 0x76, 0x54, 0x48, 0x65, 0x42, 0xfc, 0xc3, 0x52, + 0x19, 0x5d, 0xde, 0x16, 0xe4, 0x0f, 0x9a, 0xe3, 0x63, 0x89, 0x95, 0xe6, 0x5b, 0x5c, 0x50, 0xf3, + 0x7a, 0x27, 0xe7, 0xad, 0xaf, 0xc0, 0x32, 0x79, 0x6f, 0x59, 0xcc, 0xf9, 0x6e, 0xe9, 0x84, 0x32, + 0x2c, 0x4b, 0x17, 0xf5, 0x15, 0xe7, 0xc7, 0xd2, 0x29, 0xb8, 0xe5, 0x61, 0x8e, 0xef, 0x04, 0x81, + 0xd2, 0x7f, 0xf0, 0x48, 0x22, 0x07, 0xde, 0xe5, 0xb0, 0x73, 0x95, 0xdf, 0x74, 0xf5, 0x2f, 0x3e, + 0x2a, 0x60, 0xdd, 0x2a, 0xd9, 0x17, 0xd7, 0xb0, 0x2f, 0x94, 0xf4, 0x45, 0x7a, 0x69, 0x12, 0xeb, + 0x39, 0xca, 0xfd, 0x1b, 0x2a, 0x5f, 0x27, 0x4d, 0xdc, 0x30, 0xd6, 0x2c, 0x23, 0x6d, 0x2f, 0x3b, + 0x0c, 0x01, 0xa9, 0x45, 0xed, 0xd8, 0xa2, 0x38, 0x62, 0x29, 0xac, 0x03, 0x6e, 0x67, 0x69, 0xe6, + 0xc0, 0x1d, 0xec, 0x7d, 0x33, 0x79, 0x0b, 0xc6, 0x7a, 0x05, 0xd9, 0x5b, 0x0f, 0xb4, 0xe2, 0x73, + 0x07, 0x7b, 0xde, 0x04, 0x11, 0x7c, 0x5e, 0xc7, 0x9e, 0xef, 0x81, 0x0d, 0xf8, 0xbc, 0x51, 0xde, + 0x19, 0x27, 0xec, 0xbc, 0x9b, 0x3d, 0x37, 0xc2, 0x16, 0x87, 0xe0, 0x9c, 0xe6, 0xed, 0x2e, 0x3f, + 0xa7, 0x27, 0xff, 0xc9, 0x4b, 0xbc, 0xb1, 0xf2, 0x8f, 0x01, 0xf8, 0xa9, 0xad, 0x8a, 0x40, 0xec, + 0x64, 0x6c, 0xbb, 0xcb, 0x59, 0x4e, 0x74, 0x89, 0xc1, 0x36, 0xc1, 0x56, 0x67, 0x25, 0xc2, 0xf8, + 0xbd, 0xb1, 0x0a, 0x84, 0x41, 0x5e, 0xbe, 0xa4, 0xe2, 0x2f, 0x03, 0x1c, 0x86, 0x2c, 0xc3, 0x10, + 0xa4, 0xb2, 0xbc, 0x56, 0xfa, 0xca, 0x69, 0x87, 0xea, 0xad, 0xae, 0x42, 0xb7, 0xdd, 0x07, 0xdb, + 0xd9, 0x97, 0xeb, 0xe0, 0x21, 0xa4, 0x36, 0x8f, 0xb0, 0xe7, 0x6f, 0xc3, 0x4f, 0x30, 0xc5, 0xc7, + 0xd8, 0x33, 0xcd, 0x68, 0x5d, 0x20, 0xaa, 0xd7, 0xc3, 0x13, 0xec, 0xbd, 0x0d, 0x76, 0xdb, 0x3b, + 0xb9, 0x46, 0xd8, 0xfb, 0x83, 0xc3, 0xc6, 0x0a, 0x79, 0x8c, 0xfd, 0xc4, 0xc6, 0x76, 0x38, 0x91, + 0x0b, 0xdd, 0x86, 0xb8, 0xd6, 0x88, 0xed, 0xd7, 0x2c, 0xc5, 0xc4, 0x77, 0x59, 0x55, 0x96, 0xe9, + 0xe6, 0x4a, 0x1c, 0x0b, 0xcb, 0x53, 0x74, 0x4a, 0x58, 0x8c, 0x54, 0xce, 0x49, 0xfb, 0x2c, 0xfc, + 0x7c, 0x30, 0x48, 0x76, 0xbb, 0x90, 0x3a, 0x6f, 0x6f, 0xd0, 0x45, 0x5c, 0xcc, 0xea, 0xfc, 0x76, + 0x3a, 0xaf, 0xc4, 0xf6, 0x84, 0x20, 0x64, 0xc4, 0x3b, 0x4f, 0x9a, 0x8f, 0x5c, 0x0c, 0x47, 0x50, + 0x0e, 0x8e, 0x1b, 0xe4, 0x98, 0xb9, 0x08, 0xde, 0x6f, 0xc0, 0xb0, 0x36, 0x84, 0xbc, 0x83, 0xc2, + 0xd5, 0xae, 0xf8, 0x3e, 0x0c, 0x5b, 0x98, 0x38, 0xcd, 0xc1, 0xc6, 0xa6, 0xc5, 0x80, 0x74, 0xc6, + 0xdb, 0xc3, 0x9e, 0x57, 0x64, 0xd3, 0xf3, 0x26, 0x1c, 0x89, 0x85, 0xec, 0xbd, 0x5f, 0x7a, 0x47, + 0xe9, 0xb5, 0x1c, 0x4b, 0x53, 0x28, 0x08, 0x88, 0x67, 0xf3, 0x21, 0x37, 0xa2, 0x3c, 0x18, 0x0b, + 0xa9, 0x09, 0xb3, 0xa1, 0x30, 0x52, 0x3c, 0xdc, 0x1d, 0x52, 0xac, 0xe3, 0xc8, 0x0b, 0x11, 0x47, + 0xa7, 0x5f, 0x73, 0x84, 0x9f, 0x7a, 0x3b, 0x39, 0x63, 0x1a, 0x5e, 0x17, 0x71, 0xcc, 0x22, 0x1e, + 0xb7, 0x9e, 0xa8, 0x3f, 0x67, 0x8d, 0x70, 0x76, 0x37, 0x62, 0xb6, 0x9b, 0xa3, 0x33, 0x89, 0x82, + 0x11, 0x71, 0x6e, 0xf1, 0x47, 0x9c, 0x59, 0xc6, 0xa5, 0x00, 0x62, 0x1d, 0x5b, 0x79, 0xf2, 0x95, + 0x87, 0x34, 0xbc, 0xe7, 0x77, 0xa7, 0x21, 0x5b, 0xd4, 0xfa, 0x30, 0xef, 0x90, 0xea, 0x77, 0x1f, + 0x81, 0xe7, 0xb8, 0xab, 0x55, 0x63, 0xf4, 0x14, 0xce, 0x83, 0xec, 0x5a, 0xc1, 0xe4, 0xd9, 0xd3, + 0x0a, 0xd9, 0xff, 0x3c, 0xec, 0x8d, 0x1d, 0x72, 0x21, 0xcf, 0xec, 0xe5, 0x66, 0xb1, 0xdc, 0xfc, + 0x9c, 0x11, 0x9f, 0xcd, 0x98, 0x76, 0x91, 0x9c, 0x76, 0xae, 0x9c, 0xf6, 0xab, 0xa2, 0xc8, 0xb7, + 0xa3, 0xdc, 0x66, 0x01, 0x33, 0xb6, 0x82, 0x22, 0x54, 0x43, 0xf4, 0x25, 0x24, 0x30, 0x9f, 0xdd, + 0x95, 0xd8, 0x27, 0x2b, 0xb0, 0x4f, 0xc4, 0x44, 0x9f, 0xf0, 0x76, 0xae, 0xd1, 0x68, 0xe7, 0x9a, + 0x4d, 0x76, 0x6e, 0x85, 0xd9, 0x9e, 0x0c, 0x7f, 0xc8, 0xe7, 0x0a, 0x29, 0x36, 0x72, 0xd8, 0xbb, + 0x2b, 0xb8, 0x46, 0xfc, 0x15, 0xb9, 0x66, 0x51, 0xcb, 0x5a, 0xc2, 0x29, 0x62, 0xb8, 0x71, 0xa9, + 0x9c, 0xd7, 0x6e, 0xb9, 0x3f, 0xa5, 0xb7, 0x7d, 0x56, 0x17, 0xdb, 0x2d, 0x2a, 0xc2, 0x9a, 0x38, + 0x83, 0x3a, 0xdf, 0xe2, 0x10, 0x8c, 0xeb, 0xad, 0x1e, 0x4b, 0x86, 0xa8, 0xa1, 0x5f, 0x7c, 0x0f, + 0x2f, 0x96, 0x68, 0x82, 0x7e, 0x82, 0x16, 0xc8, 0x45, 0x6d, 0x97, 0x68, 0xb1, 0x44, 0x6b, 0x61, + 0x7d, 0x54, 0xce, 0x4e, 0xa9, 0xc5, 0x70, 0x7e, 0x32, 0x0f, 0x55, 0x05, 0x67, 0x19, 0xa7, 0xab, + 0x91, 0x3f, 0x54, 0xcd, 0x36, 0x59, 0x40, 0x6b, 0x96, 0x7c, 0x41, 0xb7, 0x91, 0x54, 0x3c, 0x76, + 0x7f, 0x94, 0x13, 0xb5, 0x01, 0x17, 0xef, 0x36, 0xea, 0x83, 0xaf, 0x0a, 0x02, 0x5f, 0x29, 0xd7, + 0x69, 0x1f, 0xf3, 0x3f, 0xda, 0x99, 0xa4, 0x7f, 0x27, 0x30, 0x97, 0x12, 0xf9, 0xb9, 0x8b, 0xc5, + 0x25, 0xa9, 0xa1, 0xd1, 0x23, 0x63, 0xb3, 0x97, 0xc2, 0x99, 0x5f, 0xa5, 0xb1, 0x65, 0x1f, 0x71, + 0x1e, 0x26, 0x19, 0xd3, 0xa9, 0x04, 0xe6, 0x63, 0x95, 0xaf, 0xb3, 0xfa, 0x8a, 0x9a, 0xe1, 0xd1, + 0x1f, 0x1e, 0x41, 0x5e, 0x91, 0xf8, 0xdc, 0xe2, 0xa5, 0x9f, 0xec, 0x03, 0xa7, 0xeb, 0x81, 0x17, + 0xed, 0x53, 0xf9, 0x4c, 0x92, 0x7f, 0x69, 0x2d, 0x4d, 0x03, 0xfc, 0xb4, 0xa3, 0xdf, 0x4f, 0x7b, + 0x43, 0x8e, 0xf2, 0xbf, 0x8f, 0x7f, 0xed, 0x76, 0xd8, 0xcf, 0xd7, 0x05, 0x9a, 0xe1, 0x31, 0xb6, + 0xa7, 0x55, 0x87, 0xbd, 0xf5, 0x18, 0xed, 0xde, 0x76, 0xa8, 0x7c, 0x5f, 0x0b, 0xe2, 0x0c, 0xd7, + 0xc5, 0xce, 0xb3, 0x96, 0x96, 0x59, 0xed, 0x60, 0xc1, 0x91, 0x6b, 0xc3, 0xfc, 0x1c, 0xc5, 0x76, + 0x28, 0x4a, 0x69, 0xdd, 0xfa, 0x3c, 0x77, 0x3c, 0xeb, 0xdd, 0x14, 0xb9, 0x66, 0x6b, 0x79, 0x11, + 0xf7, 0xaa, 0xcb, 0xfb, 0x2c, 0xf6, 0x43, 0x56, 0xea, 0x44, 0xc6, 0x85, 0x52, 0x8b, 0xe4, 0xa9, + 0x72, 0x4b, 0x34, 0xf3, 0x78, 0x8c, 0x4e, 0x52, 0x49, 0xeb, 0x3e, 0xf3, 0x50, 0x1a, 0xad, 0xe9, + 0xd3, 0x79, 0x68, 0xed, 0x94, 0xad, 0x92, 0xbe, 0x24, 0xea, 0xf0, 0x4d, 0x11, 0xd4, 0xb3, 0xb7, + 0x97, 0x65, 0xb8, 0x68, 0x4d, 0x9f, 0x75, 0x35, 0xa8, 0xd6, 0x83, 0x98, 0x8b, 0x5c, 0xc6, 0x07, + 0x90, 0x69, 0xaa, 0x40, 0x9e, 0x73, 0x04, 0x5b, 0xea, 0x0e, 0x9f, 0xab, 0x5d, 0x1b, 0xe2, 0x2d, + 0xd3, 0xad, 0xb7, 0xfa, 0x1e, 0x0c, 0x9e, 0x74, 0xbf, 0x0f, 0x2a, 0x63, 0xb5, 0x29, 0x79, 0x32, + 0x24, 0x9e, 0x1d, 0x58, 0x8d, 0xb8, 0x9c, 0x45, 0xa5, 0x31, 0x56, 0xa7, 0x95, 0xa7, 0x08, 0xeb, + 0x54, 0x8a, 0xb3, 0xf6, 0x34, 0xbb, 0x16, 0xeb, 0xa3, 0x97, 0x7a, 0x9f, 0xea, 0x61, 0x72, 0x91, + 0x8e, 0xbf, 0xaf, 0x19, 0x72, 0x83, 0x46, 0xe6, 0xb9, 0x79, 0xbc, 0xc3, 0xe0, 0xc5, 0x79, 0xde, + 0x3e, 0xcd, 0xbb, 0x1a, 0x38, 0x89, 0x5f, 0xa6, 0x36, 0xca, 0x3e, 0x00, 0x46, 0x51, 0xc1, 0xf4, + 0xfd, 0xc7, 0x3a, 0x72, 0xf5, 0x0b, 0x07, 0x48, 0xd3, 0xdc, 0xce, 0x56, 0xcc, 0x4b, 0x42, 0xda, + 0xeb, 0x30, 0x76, 0x80, 0x13, 0x16, 0x0e, 0x28, 0x4c, 0x77, 0x9a, 0xef, 0x4c, 0x58, 0x1f, 0xb9, + 0xa5, 0x0c, 0xf3, 0xaa, 0xf3, 0x3d, 0x6e, 0xfc, 0x34, 0x98, 0xcd, 0xb8, 0xc0, 0x57, 0xc2, 0x37, + 0xa6, 0x74, 0x3e, 0x6e, 0x74, 0x19, 0x3f, 0xc5, 0xb8, 0x0f, 0xe5, 0xb8, 0x77, 0x27, 0xc5, 0x7d, + 0x88, 0x75, 0xa8, 0x66, 0xfc, 0x2d, 0xa8, 0x5e, 0xa4, 0x34, 0xf0, 0xfe, 0x9c, 0xce, 0x02, 0xd3, + 0x99, 0xbe, 0xfc, 0x81, 0x30, 0xe7, 0x75, 0x91, 0xaf, 0x30, 0x15, 0x98, 0x52, 0xab, 0xe4, 0x5e, + 0x33, 0x41, 0xef, 0xe4, 0x5d, 0x84, 0xcd, 0x19, 0x7c, 0xaa, 0x37, 0x98, 0x6e, 0x8b, 0x79, 0x6e, + 0x39, 0xf6, 0x91, 0x8b, 0xff, 0x03, 0x3b, 0xc3, 0x1b, 0x57, 0xb4, 0xf1, 0x01, 0xec, 0x77, 0xe2, + 0x6e, 0x73, 0xea, 0xfb, 0x22, 0x38, 0x35, 0x95, 0x9f, 0x43, 0x66, 0xaf, 0x98, 0x2f, 0x47, 0x09, + 0x2e, 0x10, 0x70, 0x55, 0x7d, 0x9c, 0x03, 0x06, 0x1b, 0x77, 0x40, 0xa7, 0x00, 0x3e, 0x64, 0xc0, + 0x5f, 0x63, 0x30, 0xd7, 0x57, 0x1e, 0x34, 0x10, 0x7c, 0x76, 0x29, 0x70, 0x22, 0x52, 0x8f, 0xa0, + 0x86, 0xde, 0x68, 0x95, 0x2b, 0xd0, 0x3d, 0xd4, 0x0c, 0x83, 0xc1, 0xc3, 0x36, 0xad, 0x1a, 0xa5, + 0x59, 0x2e, 0xaf, 0xd8, 0xe5, 0x6c, 0x85, 0x9c, 0x1f, 0x3d, 0x6f, 0xd7, 0x95, 0xbf, 0x87, 0x32, + 0x48, 0x78, 0x07, 0xd8, 0xd5, 0x94, 0xeb, 0x37, 0x34, 0x46, 0xb5, 0x6d, 0x35, 0x1b, 0x29, 0x0f, + 0x55, 0x9d, 0xa1, 0x73, 0x66, 0x92, 0x86, 0xca, 0xcd, 0x43, 0xc9, 0xf0, 0x6d, 0xbc, 0x4b, 0xd0, + 0x2f, 0x2a, 0x87, 0x5c, 0x92, 0x26, 0x29, 0xcc, 0x67, 0xe5, 0xf2, 0x90, 0xc2, 0x2e, 0xf7, 0x59, + 0x81, 0xee, 0x7e, 0xa6, 0xab, 0x50, 0x6d, 0xb4, 0xc0, 0x0e, 0xec, 0xf1, 0x9d, 0x56, 0xac, 0xb3, + 0xf2, 0x11, 0x7b, 0xbe, 0xf1, 0x13, 0xb6, 0xdb, 0xd8, 0x6c, 0x03, 0xd6, 0x9e, 0x9f, 0x85, 0x4d, + 0xa9, 0xf6, 0xb4, 0x20, 0x77, 0x89, 0xd8, 0x38, 0x26, 0xfb, 0xe8, 0xe3, 0x53, 0x16, 0x5e, 0xd8, + 0xf8, 0x57, 0xe0, 0xb8, 0x0b, 0xe0, 0xac, 0x59, 0x0a, 0x2e, 0xf6, 0x5e, 0x00, 0x1e, 0x36, 0x4b, + 0x7a, 0xd9, 0x9b, 0x16, 0xd8, 0x4c, 0xfe, 0xb0, 0x12, 0x6a, 0x04, 0x40, 0x19, 0xc4, 0x43, 0xe7, + 0x68, 0xac, 0xae, 0xe4, 0xfe, 0xca, 0x43, 0xbc, 0x0b, 0x39, 0x39, 0x0a, 0x3d, 0x44, 0x96, 0x90, + 0xa1, 0xa7, 0xea, 0x8c, 0x6a, 0x36, 0xad, 0x8f, 0x27, 0x6b, 0xa6, 0x33, 0xcd, 0x07, 0x95, 0x4c, + 0x25, 0xa4, 0x3a, 0xde, 0x5f, 0xd3, 0xe7, 0xb3, 0xaa, 0x66, 0x87, 0xea, 0x98, 0xf6, 0x3b, 0x83, + 0x5b, 0x08, 0x6c, 0x35, 0x55, 0x6b, 0x67, 0xab, 0x81, 0x17, 0x96, 0xd7, 0xf4, 0xc9, 0xdf, 0x23, + 0x96, 0xba, 0x3f, 0xd1, 0x80, 0xde, 0xa2, 0x9a, 0xc5, 0x70, 0x2e, 0x9b, 0xe1, 0x1c, 0x1b, 0x31, + 0x0f, 0x67, 0xca, 0x30, 0x51, 0x82, 0x66, 0xeb, 0x19, 0x6f, 0xd4, 0xf4, 0x21, 0x27, 0x4e, 0xa5, + 0x39, 0x62, 0xf4, 0xa4, 0xed, 0x91, 0x52, 0xfb, 0xa8, 0x51, 0x4e, 0xf4, 0x1a, 0x33, 0xa4, 0x32, + 0xc4, 0x1f, 0xa3, 0xb5, 0x20, 0xab, 0x56, 0x8d, 0x92, 0xa4, 0x22, 0x0f, 0xcb, 0x98, 0x41, 0x25, + 0x54, 0x28, 0xb1, 0x74, 0x25, 0x6c, 0xc5, 0x14, 0x14, 0x5e, 0x9f, 0x2b, 0x98, 0xc7, 0xf2, 0x51, + 0x26, 0xf2, 0x21, 0x38, 0xb9, 0x0e, 0x25, 0x6c, 0xed, 0x16, 0x25, 0x33, 0x05, 0x9f, 0xea, 0x11, + 0x39, 0xed, 0x9d, 0x66, 0xe6, 0x61, 0x3d, 0xd1, 0x2b, 0xe7, 0x8f, 0x91, 0x6e, 0x0a, 0xd5, 0x19, + 0x7b, 0xb2, 0x3e, 0xf2, 0x35, 0x09, 0xea, 0x42, 0xc4, 0xea, 0xa2, 0x95, 0xaf, 0xe1, 0x27, 0x44, + 0x0b, 0xd2, 0x58, 0xcb, 0x4b, 0x87, 0xab, 0xce, 0xf5, 0x72, 0xc6, 0x0c, 0x13, 0xf2, 0xd4, 0x63, + 0x85, 0xd8, 0x96, 0x59, 0xcc, 0x87, 0x93, 0x8e, 0x7c, 0x39, 0xd0, 0xfe, 0x3c, 0xc9, 0x60, 0xc6, + 0xe9, 0xd1, 0x3c, 0xf9, 0x6b, 0xbf, 0xd5, 0xc5, 0xb0, 0x23, 0x16, 0x3c, 0x18, 0xf9, 0x1a, 0xed, + 0x4e, 0x47, 0x14, 0x51, 0xb9, 0x7d, 0xe3, 0x79, 0x32, 0xfd, 0xe9, 0x31, 0xaa, 0xa3, 0xe3, 0x72, + 0xd8, 0x2e, 0xe4, 0xbf, 0x1b, 0x8d, 0x60, 0xd2, 0xc9, 0xef, 0xe4, 0xed, 0xdb, 0x21, 0x62, 0x7b, + 0x98, 0xa6, 0xcb, 0x35, 0xa2, 0x3c, 0x2d, 0xbe, 0x5d, 0xa0, 0xba, 0x23, 0x65, 0x67, 0x78, 0x3a, + 0xcb, 0x7d, 0xb1, 0x94, 0xbb, 0xa8, 0x5d, 0x72, 0x16, 0x98, 0xd6, 0xce, 0xf0, 0x13, 0x46, 0x55, + 0x32, 0xa5, 0x6d, 0x98, 0xd2, 0x3e, 0xa3, 0x2a, 0xd1, 0xae, 0x11, 0x45, 0x32, 0x26, 0x9b, 0xb5, + 0x80, 0x1d, 0x1c, 0x28, 0x65, 0xbe, 0x68, 0x54, 0x26, 0x20, 0x6a, 0xfa, 0x08, 0x47, 0xbc, 0xeb, + 0x39, 0x1c, 0x15, 0x52, 0xcb, 0x7e, 0x43, 0x83, 0xb2, 0x8b, 0x64, 0xc7, 0x9b, 0xda, 0xd4, 0x4c, + 0x90, 0xb4, 0xdb, 0xcc, 0x0b, 0xbe, 0x7e, 0xc9, 0x93, 0xfa, 0xa1, 0x98, 0x51, 0x17, 0x46, 0x6a, + 0x2a, 0xe1, 0x11, 0xe1, 0x90, 0x48, 0x3c, 0x08, 0xd7, 0x09, 0xb0, 0x93, 0x79, 0xbb, 0xd8, 0xff, + 0x97, 0x8d, 0xec, 0xc4, 0x1d, 0xf2, 0x6c, 0x97, 0xc3, 0xaa, 0x51, 0x7c, 0xe3, 0x03, 0x85, 0x16, + 0x18, 0xdc, 0x86, 0xa3, 0xd3, 0x7b, 0x90, 0xcd, 0x7a, 0xd0, 0xdf, 0x43, 0xa3, 0x50, 0x5a, 0x33, + 0x55, 0xcd, 0xf2, 0x46, 0x34, 0x32, 0xdd, 0x63, 0x76, 0x36, 0x34, 0xc9, 0x91, 0x22, 0x63, 0x63, + 0x02, 0x17, 0x69, 0xbd, 0xf8, 0xcb, 0xf1, 0xf1, 0x0b, 0x3f, 0xf3, 0x4d, 0x98, 0x95, 0x1c, 0x8b, + 0x82, 0x34, 0x9b, 0x31, 0xbb, 0x47, 0x6b, 0xaf, 0x42, 0xf9, 0xd8, 0xb4, 0xbc, 0x22, 0x50, 0xc2, + 0xaf, 0x0c, 0xae, 0x29, 0x48, 0x53, 0xb9, 0x5f, 0xc8, 0x5b, 0x9c, 0x05, 0xb2, 0xc2, 0xfd, 0x74, + 0x2d, 0x60, 0x6c, 0x52, 0x11, 0x19, 0x48, 0x8b, 0xff, 0xf7, 0x41, 0x18, 0x2b, 0x3a, 0xcc, 0xcd, + 0xd3, 0xc4, 0xf1, 0xf9, 0x1f, 0xf1, 0xfa, 0x06, 0x8c, 0xbe, 0x79, 0x7b, 0x22, 0x49, 0x6d, 0x65, + 0x4b, 0x5b, 0x53, 0xed, 0x77, 0xd6, 0x44, 0x9b, 0xda, 0x61, 0xda, 0x84, 0x6f, 0xe1, 0x2b, 0xbf, + 0x67, 0x56, 0xae, 0x5c, 0x13, 0xfd, 0xbf, 0x97, 0xde, 0xe8, 0x91, 0xdf, 0xe0, 0x75, 0x08, 0xaf, + 0x97, 0xf0, 0x7a, 0x07, 0xaf, 0xbf, 0x4c, 0x68, 0x8d, 0xd1, 0x3f, 0x68, 0xe5, 0xbb, 0x41, 0xbe, + 0xdb, 0xe4, 0xbb, 0x0f, 0x88, 0x79, 0x1d, 0xfd, 0xc3, 0x4a, 0xf9, 0x7d, 0x9d, 0xfc, 0xbe, 0x55, + 0x7e, 0xdf, 0x2d, 0xbf, 0xff, 0x87, 0xfc, 0xfe, 0x39, 0xfe, 0x2a, 0x61, 0xf4, 0x85, 0xc7, 0xa4, + 0xf7, 0x17, 0xfe, 0x9d, 0xd9, 0x92, 0x18, 0x7d, 0x61, 0x44, 0x0a, 0xff, 0x63, 0x14, 0x98, 0x02, + 0x66, 0x22, 0xdf, 0x23, 0x63, 0x69, 0xa5, 0xa0, 0xa3, 0x96, 0x3a, 0x3a, 0xd4, 0x40, 0x36, 0xa8, + 0x00, 0x98, 0x2a, 0x33, 0x69, 0x2b, 0x5b, 0x52, 0x0d, 0x51, 0x10, 0x69, 0x5a, 0xd3, 0xb9, 0x36, + 0xb2, 0xaa, 0xe9, 0xaa, 0x3a, 0x30, 0x5d, 0x1f, 0x7c, 0x82, 0xea, 0x38, 0xd8, 0xa1, 0xbc, 0x73, + 0x6d, 0x5b, 0x63, 0xc7, 0x8d, 0x51, 0x3e, 0xd2, 0xb4, 0xb2, 0x91, 0x6f, 0x68, 0x89, 0xb6, 0xaf, + 0x0c, 0xf3, 0x0d, 0x6d, 0x9d, 0xab, 0x56, 0xf3, 0x73, 0xdb, 0xd6, 0x6a, 0x31, 0xba, 0x23, 0xca, + 0xaf, 0x5d, 0xd3, 0xd4, 0x28, 0x05, 0xae, 0xe1, 0x83, 0x2b, 0xb1, 0x14, 0x8d, 0x73, 0x2e, 0xfd, + 0x61, 0xd3, 0xfa, 0x68, 0x53, 0xc7, 0x1a, 0xd2, 0x22, 0xbf, 0xea, 0x24, 0xf8, 0x8e, 0xce, 0x8b, + 0xd2, 0xc0, 0x04, 0x26, 0x26, 0x72, 0x05, 0xd8, 0xa6, 0xab, 0x04, 0x65, 0x00, 0x73, 0xe0, 0xb6, + 0x48, 0x67, 0x47, 0x48, 0x0e, 0x63, 0x41, 0xad, 0x6b, 0xdb, 0xc3, 0x73, 0xe0, 0x1f, 0x3b, 0xd7, + 0xf2, 0x4b, 0x6f, 0xad, 0xad, 0xc3, 0x4f, 0xe6, 0xb7, 0x74, 0xac, 0x69, 0x8a, 0x44, 0xf9, 0xa6, + 0xd6, 0xa6, 0x55, 0x51, 0x2c, 0xf4, 0xba, 0xce, 0xb6, 0xb5, 0xed, 0x4d, 0xb0, 0xac, 0xd9, 0xc6, + 0x77, 0x36, 0xd3, 0x3f, 0x1b, 0xff, 0xed, 0xe6, 0xa6, 0x48, 0x13, 0xdf, 0xb2, 0x86, 0x5f, 0xd9, + 0xd6, 0xc6, 0x47, 0x9b, 0x9b, 0xf8, 0x55, 0x2b, 0x57, 0xe1, 0x6f, 0xa8, 0xb3, 0xa3, 0xe9, 0x16, + 0x5e, 0xb8, 0x75, 0xf1, 0x9c, 0x39, 0x73, 0xe0, 0xd6, 0x8e, 0x48, 0x53, 0x5b, 0xd3, 0xca, 0x64, + 0xb5, 0x4b, 0xa4, 0xc2, 0xb9, 0x2b, 0x2b, 0x6b, 0x2f, 0xa1, 0xb2, 0x2f, 0x9f, 0x55, 0x08, 0x34, + 0x45, 0x23, 0xdf, 0xe9, 0x92, 0x5f, 0xca, 0x9b, 0x9b, 0xb0, 0x4a, 0x8d, 0x2d, 0x6b, 0x56, 0x27, + 0x43, 0x3a, 0x3b, 0xa2, 0x2d, 0x1d, 0x6b, 0x9b, 0x26, 0xbf, 0x63, 0x66, 0x92, 0x0a, 0x7f, 0x53, + 0x24, 0xd2, 0x19, 0x01, 0x7f, 0x27, 0xdf, 0xd2, 0x19, 0xee, 0x8c, 0x44, 0x53, 0x9d, 0xd4, 0x19, + 0x6e, 0xea, 0xe0, 0xa5, 0x5e, 0xe7, 0xe7, 0xae, 0x49, 0x85, 0xaf, 0x6c, 0x6c, 0x64, 0x39, 0xf0, + 0x2b, 0xd7, 0xf0, 0x88, 0x26, 0x4d, 0x1d, 0x98, 0x3f, 0x78, 0x28, 0x00, 0x6b, 0x47, 0x4d, 0xb8, + 0x6e, 0x65, 0x5b, 0x4b, 0xe3, 0xca, 0x28, 0x75, 0x97, 0xd4, 0x74, 0xf8, 0xb2, 0x32, 0xd5, 0xda, + 0x72, 0xe0, 0x2a, 0x2a, 0xea, 0x9a, 0xb5, 0xed, 0x7c, 0x7a, 0x4f, 0xc0, 0xd2, 0x96, 0x35, 0x6b, + 0x5a, 0x30, 0x76, 0x4d, 0x67, 0x7b, 0x13, 0xdf, 0xde, 0x89, 0x4d, 0x96, 0xde, 0x17, 0x6b, 0x12, + 0x7d, 0x41, 0x2f, 0xd1, 0xef, 0x84, 0x9b, 0x26, 0x7e, 0x1c, 0xc0, 0xbe, 0xb3, 0xdf, 0x16, 0x69, + 0x89, 0x36, 0xf1, 0x15, 0x54, 0x2b, 0x0c, 0x6c, 0xe4, 0x57, 0xae, 0x5a, 0xd5, 0x24, 0xa5, 0x99, + 0x02, 0xb4, 0x5a, 0xad, 0x7c, 0x5d, 0x33, 0x16, 0xb7, 0x7d, 0xe5, 0x77, 0xf8, 0x86, 0x26, 0x7e, + 0x25, 0x96, 0xbb, 0x63, 0xbe, 0xbb, 0xb2, 0x96, 0x55, 0xac, 0x80, 0xc7, 0x78, 0xad, 0xbb, 0xe3, + 0x3b, 0xfc, 0xca, 0x28, 0x0e, 0x9c, 0x70, 0x94, 0x8f, 0x76, 0xf2, 0xc1, 0x96, 0xf5, 0x7c, 0x4b, + 0x94, 0x6f, 0xe9, 0xc0, 0xce, 0xc3, 0x0f, 0x57, 0x61, 0x2f, 0xb1, 0xaf, 0xd9, 0xe1, 0x83, 0x08, + 0xeb, 0xd1, 0xce, 0x48, 0x4b, 0xa8, 0xa5, 0x63, 0x65, 0x9b, 0x96, 0xce, 0x8d, 0xf0, 0x6b, 0xd8, + 0xa8, 0xc3, 0x0f, 0x58, 0x73, 0xd8, 0x78, 0x1c, 0x6a, 0x98, 0x00, 0x7e, 0x89, 0x1d, 0x80, 0x6d, + 0xb6, 0x86, 0x5f, 0x8b, 0xbd, 0xbd, 0xaa, 0x73, 0x5d, 0x53, 0x64, 0x65, 0x43, 0x5b, 0x53, 0x81, + 0x56, 0x5b, 0xc3, 0xba, 0x9e, 0x5f, 0x23, 0x9d, 0x3d, 0xf9, 0x76, 0xf3, 0x4a, 0x96, 0x6f, 0x23, + 0x8a, 0x3e, 0x89, 0x72, 0x4b, 0x23, 0x22, 0xfa, 0x6d, 0x1a, 0x87, 0xa9, 0x40, 0x2c, 0x0d, 0x3e, + 0x53, 0x7b, 0xf3, 0x9d, 0x6b, 0xa3, 0x6b, 0x5a, 0x1a, 0x9b, 0x64, 0xfc, 0xe3, 0xd7, 0xac, 0xc2, + 0x3e, 0xd4, 0x52, 0xc6, 0xdf, 0x6e, 0x41, 0xac, 0xc3, 0x8a, 0x46, 0x9a, 0xda, 0x31, 0xc7, 0xc6, + 0x02, 0x6c, 0xaa, 0xf0, 0xca, 0x96, 0x08, 0xb5, 0x0a, 0xeb, 0xca, 0x35, 0xd1, 0xc8, 0xda, 0x55, + 0xd1, 0xb5, 0xd8, 0xdc, 0x0c, 0xb2, 0x8d, 0x06, 0x01, 0x65, 0x4e, 0x1d, 0xd7, 0xd6, 0xb9, 0x66, + 0x4d, 0x81, 0xb6, 0x2a, 0x7a, 0xe3, 0x1a, 0x4c, 0x61, 0x0d, 0x2b, 0x54, 0xfb, 0xca, 0xd5, 0xd4, + 0x68, 0x0d, 0x2b, 0x57, 0xad, 0x5e, 0x8b, 0x5d, 0xd3, 0x14, 0xa4, 0x8e, 0x0a, 0x47, 0x3a, 0x57, + 0x35, 0x35, 0x35, 0x62, 0x9a, 0x57, 0xa8, 0x4c, 0x01, 0x2c, 0x67, 0x65, 0xd3, 0xce, 0x5d, 0xa3, + 0xc5, 0x82, 0x7f, 0x9b, 0x75, 0x16, 0x7e, 0x19, 0x65, 0x03, 0x07, 0xdc, 0x52, 0x83, 0x37, 0xb1, + 0xdc, 0x69, 0x28, 0xda, 0x25, 0x08, 0xa9, 0xeb, 0x12, 0xd5, 0x8b, 0xac, 0xec, 0x08, 0x35, 0xcd, + 0xd1, 0x6a, 0xd9, 0x9d, 0x0d, 0x92, 0xf9, 0x78, 0xd9, 0xb0, 0x16, 0x2b, 0x23, 0x51, 0xf6, 0x6e, + 0xc3, 0x66, 0x46, 0x12, 0xc2, 0x9e, 0x27, 0x9e, 0x5f, 0x21, 0x1c, 0x91, 0x70, 0x9e, 0x61, 0xc7, + 0x04, 0xfc, 0x91, 0x50, 0xe7, 0x32, 0x91, 0xe9, 0x33, 0x60, 0xe2, 0x2c, 0x88, 0xff, 0xd6, 0xf1, + 0xcf, 0xc9, 0x52, 0x7a, 0xfa, 0x1a, 0x71, 0xbe, 0x2b, 0x0e, 0xeb, 0x57, 0xbc, 0x16, 0x4b, 0x9d, + 0x8e, 0x1f, 0x4f, 0x7f, 0xbe, 0x8f, 0x77, 0x99, 0x9a, 0x41, 0x1b, 0x6e, 0x9d, 0xb8, 0x06, 0x6c, + 0x96, 0xa5, 0x33, 0xe2, 0x94, 0x9f, 0xcf, 0x4d, 0xd7, 0x44, 0xbf, 0xd1, 0x05, 0xd6, 0x50, 0x38, + 0x3d, 0x07, 0x0c, 0x11, 0xae, 0xeb, 0x82, 0x19, 0xe0, 0x4e, 0x69, 0xc6, 0x63, 0x58, 0xc1, 0x64, + 0xcd, 0x78, 0x0c, 0x6b, 0x08, 0x59, 0x68, 0x45, 0xe3, 0x79, 0x73, 0x98, 0x9b, 0x78, 0xe2, 0xe1, + 0xff, 0x43, 0xdb, 0xdf, 0xc0, 0x37, 0x71, 0x5d, 0x09, 0xc3, 0xf8, 0x91, 0x2c, 0x0b, 0x61, 0x14, + 0x47, 0x31, 0xaa, 0xab, 0xba, 0xae, 0x3b, 0x51, 0x84, 0x22, 0x64, 0x61, 0x29, 0xae, 0xe3, 0xba, + 0xc6, 0x4b, 0x64, 0x59, 0x18, 0x21, 0x8c, 0xd7, 0x11, 0x34, 0x75, 0xb3, 0x6c, 0x76, 0x4a, 0x8c, + 0x44, 0x8c, 0x0d, 0xaa, 0xeb, 0xf2, 0x7a, 0x79, 0xfc, 0x64, 0xe5, 0x0f, 0x88, 0x93, 0x90, 0xe0, + 0x10, 0x4a, 0x69, 0x36, 0x4f, 0xdf, 0xfc, 0xbb, 0xd9, 0x96, 0x10, 0xd2, 0xb8, 0x84, 0x65, 0x59, + 0x96, 0xcd, 0xdf, 0x21, 0x34, 0x75, 0x08, 0x61, 0x0d, 0xf1, 0x12, 0x42, 0x29, 0x25, 0x2c, 0x25, + 0x84, 0x00, 0xa1, 0x09, 0x4d, 0x89, 0x23, 0x7b, 0xde, 0x73, 0xce, 0x9d, 0x91, 0x64, 0x03, 0x6d, + 0xf6, 0xd9, 0xe7, 0x81, 0x9f, 0x35, 0x33, 0x77, 0xee, 0xdc, 0x8f, 0x73, 0xcf, 0x3d, 0xf7, 0x9c, + 0x7b, 0xcf, 0x47, 0x0c, 0x6e, 0x6a, 0x40, 0x79, 0x66, 0x69, 0x5a, 0x93, 0x90, 0xe2, 0x37, 0x66, + 0xc4, 0x99, 0x17, 0x7b, 0x74, 0x9f, 0xfd, 0xf6, 0x0c, 0x9d, 0xc6, 0xdd, 0xd4, 0x34, 0xa3, 0x55, + 0xb9, 0xcc, 0x52, 0xba, 0x9a, 0x2a, 0x74, 0xf9, 0x4e, 0x39, 0x64, 0x30, 0x8f, 0xa3, 0xcc, 0xb7, + 0xf8, 0xf6, 0x10, 0x2c, 0x09, 0x3c, 0x0f, 0x8d, 0x35, 0x1f, 0x40, 0xe3, 0xed, 0xf3, 0x61, 0x71, + 0xda, 0xb2, 0x5f, 0x21, 0x7d, 0xef, 0xc2, 0xc3, 0x43, 0xb7, 0xf6, 0xf6, 0x99, 0x58, 0xf3, 0x52, + 0x2d, 0x61, 0x8d, 0xf5, 0xf8, 0xfa, 0x33, 0x8f, 0x35, 0x6c, 0xa8, 0xbe, 0x00, 0x89, 0xe2, 0x90, + 0x62, 0x70, 0xde, 0x74, 0x77, 0x8f, 0xbd, 0x55, 0x01, 0xa1, 0x55, 0xdd, 0xae, 0xf3, 0xe8, 0xdf, + 0xfd, 0x39, 0xb6, 0x90, 0x76, 0x22, 0x6f, 0x7e, 0x77, 0x9b, 0x64, 0x4c, 0x74, 0x83, 0x3f, 0x91, + 0xee, 0xc3, 0xbe, 0x12, 0xd8, 0x4f, 0x10, 0xdb, 0x1a, 0x1f, 0x1f, 0x7c, 0x1e, 0xa8, 0xff, 0x51, + 0xb6, 0x77, 0xce, 0x15, 0x2d, 0x7b, 0xd7, 0xca, 0xba, 0xa3, 0x8f, 0x98, 0xb7, 0x07, 0xff, 0x72, + 0x11, 0xe8, 0x0c, 0xd1, 0x07, 0xbd, 0xb3, 0x14, 0x8a, 0x4f, 0x91, 0x74, 0x25, 0x38, 0x3e, 0xca, + 0x4a, 0xe4, 0x2a, 0xfd, 0x51, 0x33, 0xf9, 0x87, 0xa4, 0x54, 0xe9, 0x34, 0xf3, 0x47, 0xfc, 0xed, + 0x85, 0x5c, 0xaf, 0x07, 0xae, 0x6a, 0x4f, 0x17, 0xf7, 0x79, 0x48, 0xb2, 0xb0, 0xb2, 0xd7, 0x84, + 0xe9, 0xb1, 0x02, 0xee, 0x03, 0x68, 0x6f, 0x2f, 0x15, 0xc5, 0xc7, 0x5e, 0xf9, 0x39, 0x9f, 0x60, + 0x93, 0xe7, 0x2a, 0x80, 0x47, 0x63, 0x56, 0xaa, 0x49, 0x94, 0x3a, 0x63, 0xa8, 0x6d, 0xfc, 0xd5, + 0xed, 0xd0, 0x87, 0x1c, 0xdf, 0xbc, 0x96, 0x1c, 0x91, 0x76, 0xbb, 0xbe, 0x71, 0xc3, 0xc1, 0x87, + 0x62, 0xa0, 0x58, 0x03, 0xad, 0xe3, 0xe3, 0xed, 0x8b, 0x47, 0xd6, 0xcb, 0x30, 0x6d, 0x3d, 0xf9, + 0xc7, 0xc7, 0xbf, 0xab, 0x02, 0x3b, 0xa4, 0x62, 0xee, 0x0d, 0xc4, 0x72, 0xda, 0xf4, 0xdd, 0xa4, + 0x77, 0x16, 0x95, 0x73, 0xd2, 0xfd, 0x92, 0xdc, 0x60, 0x6a, 0xfb, 0x2a, 0xe9, 0x5d, 0xe7, 0x6c, + 0x6e, 0x2d, 0xca, 0xab, 0x82, 0x3c, 0xbc, 0xef, 0x10, 0x1a, 0xd8, 0x14, 0x5d, 0x02, 0xef, 0xb2, + 0x79, 0xaf, 0xcc, 0x2d, 0x17, 0xaa, 0xfa, 0xd5, 0x21, 0x55, 0x9f, 0xba, 0xb2, 0xcd, 0xc5, 0x6f, + 0x2c, 0x08, 0x9b, 0x73, 0x08, 0x81, 0x86, 0x68, 0xa1, 0x06, 0x01, 0x4f, 0x50, 0xf8, 0xe7, 0x6f, + 0xd8, 0x30, 0xbb, 0x53, 0x51, 0xc6, 0xc7, 0x65, 0xc8, 0x39, 0x4d, 0xde, 0xfb, 0xe1, 0x80, 0x72, + 0x45, 0x06, 0xe3, 0x25, 0xd2, 0xd2, 0x32, 0x92, 0xaf, 0x16, 0xab, 0x68, 0xc9, 0x1f, 0x97, 0xc6, + 0x15, 0x2c, 0x65, 0x2f, 0xb6, 0xc6, 0x1a, 0x8b, 0x0e, 0x6f, 0x87, 0x13, 0x33, 0xfd, 0x70, 0x62, + 0xa5, 0xb1, 0x4d, 0x37, 0xb3, 0x1a, 0x4e, 0xa4, 0x61, 0x99, 0xb6, 0xa2, 0x40, 0xa8, 0x1e, 0x13, + 0xa9, 0x1f, 0x3c, 0x45, 0xf0, 0x5a, 0x88, 0x98, 0xf9, 0x81, 0x07, 0x53, 0x45, 0xee, 0xcd, 0xf8, + 0xfd, 0x31, 0x3e, 0x25, 0xb0, 0x49, 0x98, 0x26, 0xf6, 0x22, 0xb9, 0xcc, 0x13, 0x71, 0x1d, 0x5d, + 0xe5, 0x91, 0x36, 0xa5, 0xb8, 0x5a, 0xb9, 0x5a, 0xdc, 0x02, 0x27, 0xa8, 0x4d, 0x39, 0x01, 0xc4, + 0x2c, 0xeb, 0xe1, 0xa1, 0x50, 0xbc, 0x4f, 0xc8, 0xac, 0x49, 0x9b, 0x93, 0x78, 0x6b, 0xd2, 0xe2, + 0xf1, 0xf9, 0xc9, 0x9b, 0x11, 0xe6, 0x21, 0x7f, 0x83, 0xb6, 0xc3, 0x43, 0x5e, 0x5f, 0x9f, 0x41, + 0xe4, 0xa6, 0x3b, 0xca, 0x7b, 0xf3, 0x15, 0xd1, 0x5b, 0x19, 0xa6, 0x8e, 0x0a, 0x68, 0x4e, 0x0d, + 0xb5, 0x02, 0x3c, 0x8e, 0xd0, 0xfb, 0x02, 0x3d, 0x99, 0x76, 0xb7, 0xce, 0xc1, 0xfb, 0x9b, 0xe9, + 0x3e, 0xcb, 0xca, 0xba, 0xee, 0x26, 0xd6, 0x75, 0x3f, 0x87, 0x77, 0x53, 0x09, 0x8a, 0x53, 0x77, + 0xc9, 0x30, 0x25, 0xde, 0x76, 0x0b, 0xa5, 0x4e, 0xc9, 0x5f, 0x09, 0xa6, 0x1c, 0x7c, 0x33, 0x9d, + 0xdf, 0x3c, 0x8d, 0x92, 0x5c, 0x27, 0xd9, 0x4a, 0xc7, 0x20, 0x5b, 0xe6, 0x6f, 0xf3, 0x39, 0xd7, + 0x62, 0xbc, 0xfb, 0x22, 0xe7, 0x58, 0x83, 0x32, 0xbd, 0xb1, 0xad, 0x90, 0x6b, 0xa2, 0xef, 0xbe, + 0xc2, 0x79, 0x9f, 0xc5, 0xbb, 0x02, 0x7e, 0x7f, 0x2f, 0x42, 0x5b, 0xe6, 0xd1, 0x4b, 0x62, 0x8e, + 0xa1, 0x95, 0x01, 0xd2, 0x9f, 0xa7, 0x33, 0x7d, 0x2e, 0xcd, 0xce, 0xdf, 0x2d, 0xc1, 0xbb, 0x08, + 0xe7, 0xf6, 0x90, 0x8e, 0xa8, 0xd0, 0xd0, 0x6f, 0x85, 0xa9, 0x45, 0x42, 0x67, 0x7f, 0xd5, 0x7d, + 0x9a, 0x4e, 0xfd, 0x54, 0xb3, 0x0c, 0x59, 0x7a, 0xa1, 0x49, 0x8f, 0x3d, 0x38, 0xbd, 0x92, 0x77, + 0x56, 0xb2, 0x50, 0xa2, 0x34, 0xed, 0x54, 0x75, 0xf1, 0x21, 0x4b, 0x68, 0xed, 0x8f, 0x47, 0xc1, + 0x74, 0x12, 0x73, 0x1b, 0x39, 0x3d, 0x07, 0xd3, 0xb9, 0x15, 0x96, 0xe5, 0x98, 0x77, 0x25, 0xa7, + 0x4d, 0xc1, 0x1c, 0x7b, 0xb1, 0xf5, 0x57, 0x3d, 0x08, 0x4f, 0x8f, 0x1b, 0x6c, 0x76, 0x37, 0x14, + 0x52, 0x5c, 0x1b, 0x2f, 0xca, 0xa4, 0xc5, 0xd5, 0xe3, 0xa3, 0x4c, 0x19, 0xce, 0xd2, 0x48, 0xda, + 0x67, 0x8d, 0x8f, 0x92, 0xfc, 0x63, 0xda, 0x72, 0x62, 0x9d, 0x54, 0x7b, 0xf8, 0x35, 0xf6, 0x1f, + 0x67, 0xf0, 0xe8, 0x65, 0x83, 0xc7, 0x05, 0x86, 0x12, 0xc4, 0x63, 0xa9, 0xfa, 0xf0, 0x2b, 0x38, + 0x7e, 0x3a, 0xfe, 0xe6, 0xf1, 0xc6, 0x0d, 0xe6, 0x87, 0xa8, 0xe5, 0x51, 0x2e, 0x0f, 0xa9, 0xcd, + 0x14, 0x2f, 0xc9, 0x63, 0x8c, 0x33, 0x9f, 0x18, 0x79, 0x27, 0xd9, 0x26, 0xdb, 0xb8, 0xae, 0x8c, + 0x37, 0x7f, 0xd8, 0xc9, 0x6f, 0xac, 0xe1, 0x75, 0xf7, 0xa4, 0x46, 0x1e, 0xeb, 0x74, 0x98, 0xb7, + 0x51, 0x59, 0x60, 0x8a, 0xb9, 0xb5, 0x9c, 0xa7, 0x06, 0x08, 0x3f, 0x5a, 0x0b, 0x18, 0xaf, 0x47, + 0xc4, 0x8c, 0xd3, 0xde, 0xfd, 0x71, 0xa9, 0x0c, 0x63, 0x1f, 0xfd, 0xe6, 0xd0, 0xac, 0x75, 0xe7, + 0x90, 0xaa, 0x4d, 0x39, 0x8b, 0x3d, 0xb3, 0x7a, 0x48, 0x26, 0x53, 0x7b, 0x96, 0xee, 0x15, 0xf5, + 0x68, 0xca, 0x6b, 0xd7, 0xeb, 0x11, 0xce, 0x85, 0xc2, 0x12, 0xf2, 0x52, 0x79, 0xb1, 0x6d, 0x1c, + 0x47, 0xc8, 0x92, 0x57, 0xa5, 0x28, 0x3b, 0x12, 0xdf, 0xfa, 0x55, 0xe8, 0x21, 0x3d, 0xf7, 0xeb, + 0x37, 0x87, 0x42, 0xab, 0xcf, 0xa5, 0xfa, 0x7a, 0xa3, 0x7e, 0x20, 0xcc, 0x13, 0x71, 0xeb, 0xc4, + 0xf5, 0x41, 0xa2, 0xf5, 0xc1, 0x12, 0xe8, 0xbf, 0xb5, 0x16, 0x0c, 0xb7, 0x22, 0x3d, 0x05, 0x93, + 0x4c, 0x21, 0xba, 0x53, 0x6d, 0xa7, 0x9e, 0xc4, 0x63, 0x88, 0xd1, 0x38, 0x2f, 0xc6, 0x3c, 0xd4, + 0xf6, 0x1b, 0xb4, 0x3b, 0xb7, 0x6d, 0xfa, 0x8e, 0x6d, 0x60, 0x8a, 0xe6, 0xa7, 0xdb, 0x1f, 0x33, + 0x4a, 0xd8, 0x76, 0xd9, 0x24, 0x61, 0x2f, 0x24, 0xf5, 0xcb, 0x50, 0x47, 0xd6, 0x45, 0x92, 0x1f, + 0x5f, 0xff, 0x9a, 0xe6, 0xc5, 0x56, 0x6b, 0x5d, 0x14, 0xb2, 0x56, 0x23, 0xb6, 0x9d, 0xbc, 0x7e, + 0xf9, 0xc6, 0x9f, 0x13, 0x56, 0x90, 0xa6, 0xfe, 0x5e, 0xde, 0x29, 0x33, 0x9e, 0xf5, 0x96, 0x80, + 0x41, 0x6b, 0xa5, 0xbd, 0x3e, 0xd3, 0x46, 0x43, 0xcc, 0x66, 0x19, 0x92, 0x9d, 0x37, 0x28, 0x6b, + 0x29, 0xa7, 0x93, 0xef, 0x23, 0xc4, 0xb2, 0x34, 0xe5, 0xb9, 0x7a, 0x1e, 0xe9, 0xce, 0x53, 0x37, + 0xf8, 0xa6, 0xe4, 0xfa, 0xdf, 0x8c, 0xed, 0x90, 0xa3, 0xd7, 0xff, 0x22, 0x3b, 0x79, 0xfd, 0x2f, + 0xc6, 0x7f, 0x2a, 0x97, 0xdd, 0xe0, 0x8b, 0x03, 0x99, 0x5f, 0x10, 0x55, 0xf1, 0xba, 0xc0, 0x21, + 0xa8, 0x28, 0x18, 0x89, 0xaa, 0x08, 0xad, 0x8b, 0xec, 0x9f, 0xd8, 0x9b, 0x85, 0xbd, 0x8a, 0xa0, + 0x3c, 0xb7, 0x3e, 0x07, 0x86, 0x3e, 0x47, 0x26, 0x04, 0x30, 0xcf, 0x83, 0x7f, 0x1a, 0xcf, 0xb2, + 0xef, 0x8b, 0x7f, 0x71, 0xe0, 0x9a, 0xf1, 0xf2, 0xf0, 0x78, 0x31, 0xd6, 0xb9, 0x33, 0xa1, 0xad, + 0xa3, 0x38, 0xa4, 0x49, 0xd5, 0x93, 0xee, 0x19, 0xbc, 0x37, 0xab, 0x18, 0x92, 0xbc, 0xe5, 0x28, + 0xe1, 0x06, 0xcd, 0x1f, 0xa4, 0xfe, 0xf6, 0x9d, 0xeb, 0xa2, 0xa6, 0xb8, 0x6e, 0x16, 0xf9, 0x6f, + 0x34, 0xce, 0x6a, 0x55, 0xac, 0x88, 0xb9, 0xb5, 0x9e, 0xad, 0x60, 0x78, 0x70, 0x2a, 0x7e, 0xb7, + 0x02, 0xd7, 0x2f, 0x4b, 0x68, 0x75, 0x07, 0x20, 0xe7, 0xa0, 0xcc, 0x36, 0x15, 0x87, 0x70, 0x46, + 0xf7, 0xd3, 0x33, 0x62, 0xb6, 0xf2, 0x8d, 0xfd, 0x64, 0x41, 0xf2, 0x15, 0x3f, 0x98, 0xf0, 0xbb, + 0x42, 0x68, 0x9f, 0xb5, 0x12, 0x65, 0xd4, 0x0e, 0xfb, 0x2c, 0xc5, 0x36, 0xab, 0x1a, 0x3a, 0xed, + 0xb5, 0xd2, 0x4c, 0x90, 0xec, 0x7e, 0xfc, 0xad, 0x2b, 0x49, 0xd8, 0xab, 0x43, 0xdf, 0x35, 0x29, + 0xc2, 0x07, 0x01, 0xd6, 0x95, 0xc0, 0x2f, 0x24, 0xe8, 0xc5, 0x5f, 0x07, 0xf4, 0xe1, 0xaf, 0x0b, + 0xd6, 0x4b, 0xb3, 0x14, 0xf2, 0x8d, 0x6c, 0x95, 0x5a, 0xc7, 0x47, 0x63, 0x76, 0x4f, 0x2e, 0xed, + 0x54, 0xc2, 0x13, 0xd8, 0x86, 0xbf, 0xa4, 0x59, 0x51, 0xdf, 0xef, 0x35, 0xd2, 0x3e, 0x0f, 0xd6, + 0x26, 0xf6, 0x7a, 0x0c, 0x81, 0x12, 0xe8, 0xff, 0x8b, 0x56, 0xc5, 0x07, 0xa7, 0xf0, 0xb7, 0x14, + 0x4e, 0xe3, 0x1c, 0x58, 0xf7, 0xa7, 0xe1, 0x67, 0x28, 0x4a, 0x41, 0xa7, 0xea, 0x7a, 0x33, 0xd6, + 0x9b, 0xab, 0x41, 0xc8, 0x3a, 0xac, 0x42, 0xc8, 0x1c, 0x33, 0xd1, 0x6c, 0x42, 0x1a, 0x78, 0x1a, + 0xe1, 0x64, 0x14, 0x70, 0xd2, 0x70, 0x35, 0xeb, 0xd0, 0x8d, 0xe7, 0x56, 0xd6, 0x8e, 0xf8, 0x57, + 0x78, 0xac, 0x72, 0xa8, 0x9e, 0x12, 0x5c, 0x67, 0x64, 0xa2, 0x71, 0x13, 0xe7, 0x53, 0x19, 0xce, + 0xf8, 0x89, 0xf3, 0xc9, 0x49, 0xb5, 0x99, 0x5f, 0xc0, 0x9e, 0xbf, 0xa9, 0x5c, 0xc1, 0xd9, 0xd5, + 0xa2, 0xe5, 0x20, 0x6a, 0x45, 0x31, 0x97, 0x31, 0xad, 0x51, 0x2e, 0xbd, 0x2e, 0x45, 0x70, 0x08, + 0x8a, 0x10, 0x1f, 0xbf, 0x15, 0x47, 0xe4, 0xd6, 0x20, 0x98, 0x6f, 0x9d, 0x0b, 0x16, 0xc9, 0x74, + 0xa6, 0x4f, 0x8d, 0xb4, 0x83, 0xd4, 0x20, 0xab, 0x70, 0x22, 0x95, 0x68, 0x8b, 0x61, 0x4f, 0x30, + 0xfd, 0x53, 0xa3, 0xc0, 0xca, 0xc3, 0xc2, 0xab, 0xa7, 0x81, 0x67, 0x3f, 0x41, 0x04, 0x32, 0x69, + 0x25, 0x7b, 0xc8, 0xbd, 0xa6, 0xaf, 0x51, 0x33, 0x53, 0xd0, 0x37, 0x55, 0x9e, 0x85, 0x57, 0xd8, + 0xcc, 0x55, 0x58, 0xd0, 0xa1, 0xab, 0xed, 0x5a, 0x0d, 0x62, 0x1e, 0xd4, 0xfc, 0x7e, 0x8b, 0x0e, + 0x47, 0x4a, 0xfa, 0xcd, 0xa1, 0x85, 0x9f, 0x9c, 0xd3, 0x15, 0xd7, 0x2b, 0xa6, 0x49, 0x63, 0x31, + 0x95, 0x38, 0x82, 0x53, 0x8f, 0xd7, 0x6f, 0x2e, 0x81, 0x92, 0x17, 0x14, 0x13, 0x5e, 0x13, 0xe4, + 0x97, 0x50, 0x8c, 0x4f, 0x4e, 0x9d, 0x0c, 0xba, 0x63, 0x6a, 0xfc, 0x34, 0xb1, 0xea, 0x23, 0x47, + 0xa2, 0x3b, 0x75, 0x6d, 0x1d, 0xa2, 0xd4, 0x12, 0x2c, 0xb5, 0x84, 0x4b, 0xd5, 0xe8, 0xad, 0x07, + 0x26, 0xc3, 0xd0, 0x43, 0x30, 0x0c, 0xaa, 0x6b, 0x8d, 0x51, 0x85, 0x7b, 0xf2, 0x66, 0x8e, 0x1b, + 0x18, 0x46, 0xe8, 0x89, 0x68, 0x4a, 0x62, 0x3d, 0xd1, 0x8d, 0x04, 0x36, 0x13, 0x26, 0xc4, 0xc7, + 0x67, 0x11, 0xf6, 0x23, 0xac, 0x67, 0x11, 0xac, 0x73, 0xcf, 0xf4, 0x61, 0x2b, 0x7e, 0x9a, 0x09, + 0x59, 0xdd, 0xb6, 0x1b, 0xb5, 0x29, 0xdd, 0x53, 0xd1, 0x26, 0xec, 0x9f, 0xda, 0x3b, 0x43, 0x9c, + 0xac, 0xaf, 0x04, 0x24, 0xf9, 0xbb, 0xc2, 0xc9, 0xf0, 0xba, 0x41, 0x09, 0x8f, 0xa7, 0xd6, 0x8f, + 0x64, 0x56, 0x18, 0xcb, 0xd8, 0x75, 0x6d, 0x19, 0x88, 0x83, 0xd2, 0x0d, 0xbe, 0x7e, 0x28, 0xfd, + 0xb5, 0x7e, 0xbf, 0x8a, 0xff, 0xc8, 0x1b, 0x7e, 0xb2, 0xf7, 0x7f, 0xbb, 0x94, 0x7b, 0xe4, 0x52, + 0xa6, 0xa1, 0x2a, 0x57, 0x69, 0xdb, 0xae, 0xcd, 0x2a, 0x2c, 0x35, 0xaa, 0xd1, 0x4b, 0x31, 0x7a, + 0x5a, 0x9e, 0x2f, 0x5d, 0xd6, 0x6a, 0xfe, 0x16, 0x7b, 0xca, 0x2d, 0x9e, 0x8f, 0x33, 0xad, 0x49, + 0x1d, 0x15, 0x35, 0x4f, 0xe1, 0x7e, 0x95, 0xae, 0x5a, 0xe4, 0xb0, 0xdd, 0xcd, 0x7e, 0x6b, 0xad, + 0xcc, 0xbf, 0x16, 0x79, 0x75, 0x3e, 0x3f, 0x59, 0xd5, 0xaa, 0x5c, 0xec, 0x4f, 0xd9, 0xe6, 0x00, + 0xd7, 0x4a, 0xc6, 0xc1, 0x68, 0x8a, 0x83, 0x5d, 0x12, 0x07, 0x2a, 0x41, 0x26, 0xff, 0x47, 0x57, + 0x39, 0xf5, 0x82, 0x72, 0x05, 0xa5, 0x9a, 0x2b, 0x60, 0x41, 0x7a, 0x77, 0x35, 0x2d, 0xed, 0x64, + 0xca, 0x6a, 0x74, 0x7a, 0x79, 0x25, 0x1a, 0x46, 0x3e, 0x3d, 0x06, 0x1f, 0x37, 0x69, 0x32, 0x4f, + 0xa6, 0x14, 0xc3, 0x3d, 0x0b, 0x22, 0x27, 0xfc, 0x13, 0x0d, 0x62, 0xd8, 0xee, 0xcb, 0x14, 0x87, + 0xea, 0xad, 0xd7, 0x43, 0xdf, 0xdd, 0x42, 0x7e, 0x0f, 0xcd, 0x5e, 0x0b, 0x79, 0x46, 0x16, 0x7d, + 0x56, 0xcf, 0x39, 0x93, 0xee, 0x66, 0x97, 0x9f, 0x23, 0x35, 0x60, 0x0d, 0x1f, 0x0d, 0xca, 0xf0, + 0xd1, 0x33, 0xe4, 0x29, 0x7f, 0x9c, 0xe3, 0xe4, 0xf5, 0xf7, 0xd7, 0x7f, 0x53, 0x71, 0x90, 0x4f, + 0x27, 0xa4, 0x84, 0x3b, 0xd9, 0xf7, 0x8a, 0x63, 0xae, 0x88, 0x12, 0xb6, 0x51, 0xaa, 0x82, 0xcf, + 0x7e, 0xd5, 0xc7, 0xf3, 0xdb, 0x85, 0xbd, 0xf8, 0xec, 0x90, 0x5f, 0x29, 0x2d, 0xee, 0x24, 0x19, + 0x47, 0x29, 0xe7, 0x77, 0x9b, 0xf8, 0x5d, 0xe5, 0x97, 0x3b, 0xe1, 0xff, 0x51, 0xe6, 0xe0, 0x6f, + 0x8e, 0x72, 0x97, 0x9a, 0x2f, 0xc8, 0xf9, 0xf4, 0x4a, 0x88, 0xf3, 0x3d, 0xcb, 0xf9, 0xea, 0x30, + 0x47, 0x87, 0xd2, 0xc0, 0xf9, 0xee, 0x56, 0xf3, 0xdd, 0xc3, 0xf9, 0x0c, 0xca, 0xbd, 0x9c, 0x6f, + 0x27, 0xe7, 0xbb, 0x0f, 0x73, 0xfc, 0xad, 0xb2, 0x94, 0xf3, 0xdd, 0xaf, 0xe6, 0x5b, 0xce, 0xf9, + 0x8c, 0x4a, 0x0b, 0xe7, 0xdb, 0xcf, 0xf9, 0xe2, 0x98, 0x63, 0x8d, 0xd2, 0xce, 0xf9, 0xbe, 0xaf, + 0xe6, 0x5b, 0xc3, 0xef, 0x47, 0xf8, 0x7d, 0xb7, 0x9a, 0xb6, 0x9e, 0xbf, 0xd5, 0x29, 0xfd, 0xfc, + 0xee, 0x0c, 0xbf, 0xdb, 0x84, 0x5f, 0x75, 0x2a, 0x5b, 0xf8, 0xdb, 0x1f, 0xa9, 0xf9, 0x7e, 0xcc, + 0xf9, 0xb2, 0x94, 0x9f, 0x70, 0xbe, 0x2b, 0x9c, 0xef, 0xa7, 0x98, 0xe3, 0x7f, 0x2a, 0xdb, 0x38, + 0xdf, 0xf3, 0x6a, 0xbe, 0x01, 0xce, 0x97, 0xad, 0xec, 0xa4, 0x7c, 0x43, 0x06, 0xce, 0xb7, 0x1b, + 0x73, 0x3c, 0xa8, 0xec, 0xe5, 0x7c, 0xff, 0xa6, 0xe6, 0xdb, 0xc7, 0xf9, 0xa6, 0x28, 0xaf, 0x71, + 0x3e, 0x2b, 0xe7, 0x3b, 0x80, 0x39, 0xfe, 0x4e, 0x39, 0xc4, 0xf9, 0xfe, 0x5d, 0xcd, 0x37, 0x22, + 0x3c, 0x13, 0x20, 0xe4, 0x8f, 0xd5, 0x6f, 0x24, 0x99, 0x7c, 0xe8, 0x74, 0x0a, 0x2b, 0x72, 0xd9, + 0xe2, 0x98, 0x24, 0x81, 0xbc, 0xea, 0x8b, 0x8a, 0x63, 0xde, 0x39, 0x98, 0xda, 0x0e, 0x6e, 0x53, + 0x5b, 0xee, 0xf1, 0x2e, 0xd2, 0xfb, 0xcf, 0x3a, 0xb8, 0x3a, 0xef, 0x68, 0x22, 0x3e, 0x67, 0x22, + 0xa5, 0x11, 0xb6, 0xec, 0x70, 0x4a, 0x9a, 0xdb, 0x01, 0xb2, 0xa5, 0xfa, 0x1c, 0xe4, 0xa1, 0x8c, + 0x97, 0x3d, 0xb0, 0x55, 0xb9, 0x14, 0x33, 0xb2, 0x4f, 0xc2, 0x0b, 0x92, 0x61, 0xb8, 0x77, 0x38, + 0xb1, 0xf0, 0x0f, 0xa6, 0x63, 0xe1, 0xcd, 0x28, 0x01, 0x19, 0xde, 0xeb, 0x1b, 0xee, 0x25, 0xcb, + 0x9d, 0xea, 0x3f, 0x20, 0x5d, 0x75, 0x29, 0xa5, 0xf5, 0x9b, 0x3c, 0x28, 0xb9, 0x1e, 0xeb, 0x3d, + 0xd6, 0x2b, 0xdd, 0x19, 0x3a, 0x16, 0xb5, 0xda, 0xc3, 0x96, 0x2a, 0x98, 0x93, 0xc9, 0x4b, 0x40, + 0x37, 0xc5, 0x1e, 0x19, 0xfa, 0x04, 0x72, 0xbe, 0xb0, 0x42, 0x51, 0x60, 0xea, 0x8c, 0x15, 0xca, + 0x1f, 0x21, 0x17, 0xd3, 0x66, 0x42, 0x16, 0xe4, 0x91, 0x7f, 0x07, 0xdd, 0x56, 0xc8, 0xb7, 0x17, + 0xa3, 0x94, 0x6c, 0xe6, 0xa7, 0xdd, 0x90, 0x3f, 0xa3, 0x1a, 0xdc, 0x98, 0xef, 0x33, 0x70, 0xe6, + 0x4d, 0x27, 0x5a, 0x37, 0x23, 0x04, 0x25, 0x14, 0x0b, 0x84, 0x7d, 0x3e, 0x54, 0xa6, 0x65, 0x37, + 0xa9, 0x26, 0xc3, 0xc3, 0xd9, 0x47, 0x69, 0xbb, 0xf7, 0x48, 0xf7, 0xbc, 0x0f, 0x20, 0xaf, 0x2d, + 0x67, 0x47, 0x77, 0x14, 0x14, 0x33, 0xfb, 0xef, 0x31, 0x68, 0xbe, 0x3a, 0x1d, 0x64, 0x77, 0xa3, + 0x54, 0x45, 0x88, 0x03, 0xa8, 0xaa, 0x23, 0xcb, 0xd1, 0x58, 0x95, 0xaa, 0xc9, 0xcb, 0x71, 0xce, + 0x7f, 0xe5, 0x21, 0xac, 0x9e, 0x7d, 0xae, 0x7e, 0xa3, 0x7a, 0x72, 0x57, 0x44, 0x1e, 0x15, 0x15, + 0x85, 0xdf, 0x21, 0xae, 0xd7, 0xef, 0x49, 0x5e, 0xe5, 0xd3, 0x70, 0xbd, 0xf0, 0xa7, 0xa9, 0x46, + 0x42, 0xa7, 0xb7, 0x56, 0xed, 0xcb, 0x8c, 0x2f, 0x1c, 0xf5, 0x1b, 0x33, 0xea, 0x23, 0x0f, 0x08, + 0x85, 0xed, 0x20, 0xef, 0xfb, 0xef, 0x5a, 0x0a, 0x66, 0xf8, 0x46, 0x00, 0x78, 0x20, 0x56, 0x88, + 0x14, 0x71, 0xe9, 0x04, 0x2f, 0x0d, 0x4b, 0x27, 0x58, 0x7b, 0x2e, 0x9d, 0x60, 0xb9, 0x99, 0xb9, + 0xbf, 0xd2, 0x9c, 0xb9, 0xbf, 0x62, 0x0f, 0xc7, 0x9b, 0xd3, 0x63, 0x27, 0x3c, 0x28, 0x50, 0x84, + 0x5a, 0xc9, 0x2f, 0xe7, 0x99, 0x75, 0xe0, 0x8d, 0xe5, 0x09, 0x7f, 0x00, 0xd2, 0xd4, 0x48, 0xa2, + 0xfe, 0xfb, 0xf6, 0x50, 0x9e, 0x2d, 0x7a, 0x8e, 0x6d, 0x7f, 0x96, 0xab, 0x1c, 0x1e, 0x9d, 0x04, + 0x91, 0x67, 0xdc, 0xe5, 0xde, 0x59, 0x48, 0x61, 0x66, 0xb1, 0x27, 0x49, 0xe4, 0xf2, 0x04, 0x6e, + 0xe2, 0x77, 0xb3, 0x94, 0x38, 0xc5, 0xb4, 0xa0, 0xb1, 0xa0, 0x72, 0x59, 0xdf, 0x20, 0xc1, 0x5e, + 0xa0, 0xd4, 0x1d, 0x90, 0x68, 0x1e, 0xd9, 0x56, 0x06, 0xfa, 0xd9, 0xa3, 0xde, 0x5e, 0x7c, 0x7b, + 0xba, 0xfe, 0xfb, 0x71, 0x5d, 0xba, 0xbf, 0xd4, 0x7a, 0x61, 0xcb, 0x1b, 0xd7, 0x91, 0xef, 0xd4, + 0xc0, 0x56, 0xb6, 0xd2, 0x4d, 0xf7, 0xaf, 0x94, 0xbd, 0x84, 0x44, 0x45, 0xdb, 0xeb, 0xbf, 0x4b, + 0x76, 0x59, 0x48, 0xb3, 0x7c, 0x8e, 0x59, 0xc2, 0x0f, 0x9d, 0x73, 0x16, 0x58, 0x5c, 0xb3, 0x70, + 0x25, 0xc8, 0xf2, 0x4e, 0x63, 0x2d, 0x82, 0xcf, 0x2e, 0xee, 0x73, 0xa8, 0x67, 0xb4, 0x51, 0x27, + 0xcd, 0xb3, 0xd7, 0xcb, 0x91, 0x77, 0x58, 0x78, 0x6b, 0x96, 0xd7, 0x84, 0xa3, 0x48, 0xbc, 0x51, + 0xb9, 0xc8, 0xf7, 0x21, 0x88, 0x55, 0x08, 0x7e, 0xce, 0x11, 0x31, 0x8a, 0x21, 0xc8, 0x3b, 0x2d, + 0x67, 0x98, 0x1f, 0xa9, 0x94, 0x1f, 0x8c, 0x83, 0x4f, 0x37, 0x9c, 0x70, 0x36, 0x83, 0xf9, 0xed, + 0x41, 0xe7, 0xd7, 0x4c, 0x10, 0x35, 0xe2, 0x7c, 0x92, 0x64, 0x5b, 0x5c, 0x19, 0xe8, 0x89, 0xe5, + 0xb5, 0x4b, 0x71, 0x9d, 0x1b, 0x0e, 0xf4, 0x44, 0xf5, 0x91, 0xbe, 0xe1, 0xc4, 0xa2, 0xee, 0xe8, + 0x47, 0x35, 0xef, 0x2b, 0xa7, 0x22, 0xd5, 0xb2, 0xd1, 0x1e, 0x7c, 0x62, 0xa8, 0x4d, 0x17, 0xff, + 0xea, 0xc0, 0xc3, 0xcb, 0xf6, 0x0e, 0xf6, 0x9e, 0x5f, 0x1f, 0xa1, 0x7d, 0xb0, 0xb0, 0xbe, 0x97, + 0x74, 0x82, 0x8e, 0xf5, 0x62, 0xdf, 0xcc, 0x6f, 0xed, 0x77, 0xdc, 0x11, 0xc2, 0x15, 0xee, 0xf0, + 0xa0, 0x5c, 0xda, 0xa6, 0xec, 0xe8, 0x8e, 0x79, 0xda, 0x74, 0x4e, 0xdd, 0x6b, 0xdd, 0x54, 0xd6, + 0x91, 0xae, 0x45, 0x89, 0xe8, 0x47, 0x72, 0x41, 0x9c, 0x39, 0xfc, 0xe2, 0x1a, 0x8e, 0x62, 0x78, + 0x55, 0x6d, 0xf1, 0xee, 0x86, 0x0d, 0x4f, 0x0c, 0x49, 0xa6, 0xba, 0x8b, 0xe6, 0x2a, 0xe5, 0x94, + 0x6a, 0xa5, 0x75, 0x95, 0xe2, 0x09, 0xbb, 0x67, 0x89, 0x08, 0x22, 0xed, 0x50, 0xe6, 0xd6, 0xf5, + 0xe2, 0xaa, 0x75, 0xa5, 0xbf, 0xdb, 0x01, 0x4e, 0x37, 0x04, 0x8d, 0x3d, 0x53, 0x14, 0x45, 0xf9, + 0xe0, 0x51, 0x67, 0x78, 0xe1, 0x79, 0x68, 0xea, 0x80, 0xf9, 0xa3, 0xe3, 0x2f, 0xef, 0xec, 0x69, + 0xd2, 0x3b, 0xf5, 0x52, 0xb1, 0xce, 0x14, 0xcb, 0x13, 0x16, 0x9b, 0xde, 0xec, 0xfa, 0x4d, 0xc7, + 0x12, 0x9b, 0x38, 0x0e, 0x42, 0xb8, 0x1b, 0x29, 0xc8, 0xa1, 0xc6, 0x47, 0xff, 0xed, 0x8d, 0xe8, + 0x51, 0x8f, 0x5b, 0xd7, 0x42, 0xdc, 0xd2, 0xc5, 0x7d, 0xf8, 0xdd, 0x3a, 0xf2, 0x20, 0x86, 0x2b, + 0x30, 0xe5, 0xde, 0xec, 0xd4, 0x60, 0xec, 0x60, 0x18, 0xaf, 0x62, 0x18, 0x1b, 0x53, 0x30, 0x5e, + 0xc5, 0x1a, 0x6a, 0x1a, 0x8c, 0x1f, 0x8c, 0xeb, 0xba, 0x9e, 0x07, 0x4b, 0xa0, 0x56, 0xf6, 0x88, + 0xba, 0x87, 0x13, 0xe4, 0x23, 0xf0, 0xf0, 0xa0, 0xe4, 0x33, 0xc1, 0x0d, 0xda, 0x60, 0x89, 0xd4, + 0xe2, 0x08, 0x18, 0x71, 0x15, 0x0e, 0x2e, 0xea, 0xda, 0x91, 0x58, 0xfa, 0x5a, 0x7c, 0xfc, 0x95, + 0xe7, 0xf9, 0x8d, 0x0f, 0x71, 0x26, 0xb8, 0xa8, 0x0f, 0xb9, 0x06, 0x2c, 0xe3, 0xad, 0x21, 0xcf, + 0x1d, 0x7d, 0x10, 0x5e, 0x87, 0x74, 0x21, 0x8a, 0xef, 0xac, 0xf1, 0x29, 0x04, 0x37, 0x86, 0x59, + 0xb6, 0x06, 0x33, 0xc9, 0xc0, 0xd1, 0x61, 0x47, 0x84, 0xbd, 0x5a, 0xd5, 0x1c, 0x97, 0x17, 0x5c, + 0x88, 0x7b, 0x1e, 0xb1, 0xc2, 0x7a, 0x0d, 0x64, 0x57, 0x75, 0xb1, 0xaa, 0xfe, 0x49, 0x97, 0x1f, + 0xdb, 0xb9, 0x9d, 0x63, 0x69, 0x5c, 0x8d, 0xb0, 0x1f, 0x5b, 0x8a, 0x50, 0xc3, 0x3d, 0xb5, 0xb5, + 0x51, 0x1c, 0xd2, 0x9c, 0x35, 0xca, 0xad, 0x6b, 0x6d, 0x10, 0x49, 0x34, 0x76, 0x51, 0xfb, 0x91, + 0x0b, 0x0f, 0x2e, 0xbb, 0x10, 0xe8, 0x77, 0xe3, 0xbd, 0xf7, 0x26, 0xc4, 0x22, 0x15, 0x83, 0x82, + 0x09, 0x77, 0xe2, 0xc6, 0x23, 0xd1, 0xb0, 0xe1, 0xef, 0xdf, 0x24, 0x98, 0x5e, 0x2a, 0x12, 0xb0, + 0xa8, 0xbe, 0x08, 0x01, 0x5a, 0xd1, 0x67, 0x3c, 0x0f, 0xa6, 0x3e, 0x10, 0x56, 0xe3, 0x5c, 0xf3, + 0xe6, 0x08, 0xa6, 0x08, 0x78, 0xc4, 0xcc, 0x72, 0x91, 0x54, 0x7d, 0x78, 0x30, 0xb0, 0x55, 0x67, + 0x92, 0x73, 0xe2, 0x60, 0xbf, 0xe9, 0xc8, 0x63, 0x47, 0xba, 0x8e, 0x3c, 0x12, 0x79, 0xac, 0x31, + 0xb1, 0xe6, 0x4b, 0x7b, 0x1e, 0x8b, 0x9e, 0x8e, 0x3c, 0x16, 0xb7, 0x0d, 0x3c, 0xd6, 0xb4, 0x9d, + 0x47, 0xef, 0x27, 0x33, 0x56, 0x80, 0x49, 0x8c, 0xdc, 0xa5, 0xa2, 0x99, 0x78, 0x4f, 0xfe, 0xef, + 0xe2, 0x20, 0x9b, 0xa5, 0x16, 0x30, 0x07, 0x06, 0x44, 0x0f, 0xb8, 0xf5, 0x97, 0xd6, 0xc0, 0xdf, + 0xbf, 0x29, 0x97, 0x6a, 0x18, 0x01, 0xa6, 0x08, 0x79, 0xa6, 0x35, 0x51, 0xbe, 0x5b, 0x13, 0x8d, + 0x13, 0x5a, 0xb3, 0xa9, 0xa7, 0x71, 0xad, 0x3a, 0x36, 0x8e, 0xc8, 0x63, 0x12, 0x8d, 0x4b, 0x62, + 0xe0, 0xb1, 0xa5, 0xfb, 0x09, 0xea, 0x1c, 0xcd, 0xb7, 0x85, 0x46, 0xc3, 0x4d, 0x65, 0xac, 0xbd, + 0x6d, 0xad, 0xda, 0x13, 0x73, 0xba, 0x27, 0xe2, 0x5b, 0x1c, 0xa7, 0x38, 0x4a, 0x58, 0xdb, 0x74, + 0x2d, 0x38, 0x9e, 0x08, 0x6b, 0x4b, 0x95, 0xa2, 0x08, 0x1d, 0x1d, 0x8e, 0xf3, 0xed, 0x05, 0x0b, + 0x45, 0xb4, 0xc5, 0xd9, 0x78, 0xf5, 0xda, 0xf9, 0x1c, 0xab, 0xf7, 0x75, 0x2a, 0x87, 0x0e, 0x7f, + 0x00, 0x41, 0xe6, 0x18, 0xb1, 0xb6, 0xdb, 0x5e, 0x04, 0x5b, 0x1f, 0xb0, 0xd7, 0xfd, 0xe9, 0x51, + 0x1b, 0xc5, 0x8d, 0x21, 0xb9, 0x42, 0x7c, 0x77, 0xa9, 0x28, 0xae, 0xef, 0xda, 0x86, 0xd8, 0x67, + 0x99, 0x94, 0xfe, 0x34, 0xb5, 0x24, 0xae, 0x88, 0x58, 0x3c, 0x66, 0x83, 0xba, 0x8a, 0x78, 0xc1, + 0x4c, 0xfa, 0xc6, 0xd8, 0xb2, 0x0e, 0xfc, 0xeb, 0x24, 0x9d, 0x63, 0x5d, 0xef, 0x0c, 0xbf, 0xae, + 0xdd, 0xeb, 0xd6, 0x99, 0x54, 0x4d, 0x26, 0x6c, 0x0b, 0xa6, 0xc4, 0x59, 0x7a, 0x73, 0xb4, 0xe9, + 0x24, 0x7f, 0x8f, 0xd0, 0x40, 0xa7, 0xb7, 0x7b, 0x14, 0x6d, 0x46, 0xe4, 0x4a, 0xcd, 0xba, 0x38, + 0xf6, 0x0e, 0xdf, 0xb1, 0x7f, 0x1e, 0x45, 0xac, 0x2b, 0x99, 0xb5, 0x50, 0x0e, 0xf6, 0x62, 0x3d, + 0x9d, 0x3d, 0x78, 0xa4, 0xca, 0x17, 0x6d, 0x4b, 0x7f, 0xaf, 0x62, 0xa8, 0x5e, 0xb3, 0xcc, 0xd4, + 0xca, 0x52, 0xa9, 0x60, 0xa5, 0x43, 0x9d, 0xf7, 0xae, 0x56, 0xf2, 0x05, 0x44, 0x2d, 0x46, 0x9a, + 0x68, 0xf9, 0xe1, 0x60, 0x26, 0xbe, 0x11, 0x65, 0x64, 0x1f, 0x08, 0xd6, 0x86, 0x0d, 0xae, 0xc4, + 0xf9, 0x3e, 0xa9, 0x15, 0xac, 0x91, 0x84, 0x94, 0x88, 0x7f, 0xf5, 0x95, 0x4d, 0x92, 0x5b, 0xd7, + 0x3e, 0xf0, 0xe8, 0x52, 0xd3, 0x70, 0x0f, 0xfe, 0x02, 0xf6, 0x55, 0xcd, 0xcb, 0x91, 0x9c, 0xfc, + 0x9f, 0xb7, 0x95, 0x88, 0x79, 0xeb, 0x97, 0x59, 0xaa, 0x2f, 0x08, 0x3c, 0xf6, 0xfa, 0xb6, 0x02, + 0xf9, 0x73, 0x70, 0x36, 0xeb, 0x5a, 0x66, 0x2c, 0xd0, 0x75, 0x2c, 0xbc, 0xa0, 0xbc, 0xe7, 0x22, + 0x6c, 0xe9, 0xf5, 0x1a, 0x84, 0x47, 0x05, 0x6a, 0x09, 0xc2, 0xb1, 0x93, 0x31, 0x4b, 0x4f, 0xb6, + 0x36, 0x17, 0xf7, 0x91, 0xf5, 0x8b, 0x46, 0x53, 0x62, 0x16, 0x2d, 0xa7, 0x88, 0x28, 0x25, 0xc7, + 0x99, 0xc6, 0xec, 0x60, 0x1a, 0xe3, 0xd6, 0x75, 0xa4, 0xa8, 0x0c, 0x59, 0x3d, 0x6d, 0x9d, 0x48, + 0x0d, 0xbc, 0x77, 0x90, 0xa5, 0x84, 0x57, 0x9f, 0x59, 0x5e, 0x94, 0x79, 0xd8, 0xd7, 0x4f, 0xb2, + 0x0c, 0x99, 0x91, 0xd7, 0xb1, 0x70, 0x06, 0xe7, 0x56, 0x4b, 0x3b, 0x29, 0xdf, 0xcb, 0xf3, 0xa6, + 0x63, 0x51, 0x6f, 0xb8, 0x37, 0x8a, 0xe5, 0xea, 0x3a, 0x27, 0x97, 0x9a, 0xc6, 0x81, 0x86, 0x0d, + 0x25, 0x3d, 0x42, 0xe7, 0x81, 0xbc, 0x1d, 0x12, 0x9e, 0x10, 0x3c, 0x58, 0x72, 0x61, 0x8a, 0x78, + 0x60, 0x2a, 0x53, 0xa1, 0xa4, 0x28, 0xfb, 0xc0, 0xd4, 0xcc, 0x35, 0x07, 0xb1, 0x22, 0x07, 0x29, + 0xcd, 0x56, 0xf2, 0x4b, 0x18, 0xd7, 0x31, 0x37, 0x73, 0x4c, 0xa3, 0xe6, 0x8c, 0x25, 0xad, 0x64, + 0x1b, 0x8c, 0xa3, 0xdf, 0x2a, 0xca, 0x60, 0x4a, 0x24, 0xec, 0x6e, 0x4d, 0x2c, 0x33, 0x26, 0x62, + 0x4b, 0xed, 0x58, 0x1b, 0xae, 0xbe, 0x49, 0xa4, 0xa4, 0x64, 0x77, 0xfd, 0x3e, 0xf6, 0xf3, 0x05, + 0xb0, 0xc6, 0xdc, 0x88, 0x95, 0x28, 0x67, 0xbc, 0xfb, 0x5c, 0x4f, 0xff, 0xa2, 0x6d, 0x70, 0xd9, + 0xee, 0xd6, 0x25, 0x70, 0xa6, 0x5e, 0x1d, 0xe8, 0xba, 0xdf, 0x38, 0xd0, 0x7d, 0x7f, 0x81, 0x6c, + 0x18, 0xe8, 0x5e, 0x6a, 0xdb, 0xd1, 0x7d, 0xbf, 0x55, 0xce, 0x6d, 0x1b, 0xe7, 0x9c, 0xff, 0xf2, + 0x6a, 0x7f, 0x04, 0x73, 0xce, 0x08, 0x60, 0x4e, 0x1a, 0x51, 0x3d, 0xb5, 0x4b, 0xcc, 0x0e, 0xc7, + 0x2c, 0xe5, 0xb2, 0xa3, 0x35, 0x65, 0xa3, 0xcc, 0x67, 0x50, 0x2e, 0x75, 0xdd, 0xa5, 0xf6, 0x61, + 0x3b, 0x51, 0x08, 0x4f, 0x63, 0x1a, 0xe9, 0xd2, 0x1a, 0x13, 0x7c, 0xdf, 0x67, 0xcf, 0xda, 0x98, + 0x90, 0xf4, 0x3b, 0xba, 0x9b, 0xf4, 0x92, 0x6e, 0xe1, 0x45, 0x40, 0x0a, 0x21, 0x07, 0x71, 0x95, + 0xb2, 0xda, 0x8b, 0x75, 0x71, 0xfb, 0xdc, 0xb7, 0x7e, 0xe9, 0xaa, 0xb6, 0x7b, 0xc0, 0x7c, 0xe4, + 0x61, 0xcf, 0x1d, 0x36, 0x88, 0x15, 0x96, 0x76, 0x82, 0xd4, 0xa6, 0x2b, 0xd1, 0x1d, 0x42, 0x3a, + 0x0e, 0x03, 0x47, 0xba, 0x22, 0x8f, 0x2c, 0x7a, 0x98, 0xec, 0x08, 0xa2, 0x17, 0x64, 0xc3, 0xdc, + 0xf3, 0x20, 0x45, 0xd6, 0x16, 0xcf, 0x05, 0x6b, 0xf5, 0x39, 0xe5, 0x54, 0xdb, 0x57, 0x77, 0xf4, + 0x2d, 0xdb, 0xc5, 0xfb, 0x53, 0x6e, 0x2e, 0x0b, 0xb1, 0xf9, 0xad, 0xd7, 0xb5, 0xd2, 0xdc, 0x58, + 0x1a, 0xf9, 0xd2, 0x39, 0xb8, 0x36, 0xba, 0x9c, 0x4b, 0xe9, 0xe3, 0x11, 0xb9, 0xb4, 0x29, 0x11, + 0xbb, 0x87, 0xd7, 0x84, 0x5c, 0xd2, 0x98, 0x41, 0x8a, 0xb4, 0x27, 0xf9, 0xb2, 0x0a, 0xc9, 0x39, + 0x71, 0xdd, 0x00, 0x42, 0x2e, 0x6a, 0x44, 0x49, 0xfc, 0x6a, 0xac, 0x88, 0xc7, 0xce, 0x89, 0x30, + 0xbf, 0x49, 0x1d, 0x39, 0xa7, 0x88, 0x37, 0x2e, 0x46, 0x4e, 0xd2, 0xef, 0xa2, 0x1e, 0x65, 0xb5, + 0xe9, 0x8a, 0xab, 0x69, 0xef, 0x4d, 0x71, 0xb3, 0xbf, 0x62, 0x8a, 0x3e, 0x36, 0x9c, 0x01, 0x25, + 0x9f, 0x53, 0x9d, 0x97, 0x0e, 0x84, 0x3f, 0x73, 0x52, 0xbc, 0x86, 0x63, 0xdd, 0x59, 0x58, 0x73, + 0x50, 0xad, 0x19, 0x60, 0x88, 0x46, 0x30, 0xb6, 0x04, 0xb1, 0xf2, 0x8a, 0xdd, 0xb4, 0xb1, 0x3b, + 0x16, 0x22, 0x38, 0x3c, 0x39, 0xb8, 0xe3, 0xe1, 0xa5, 0x46, 0xb7, 0xee, 0x78, 0x42, 0xd6, 0xaf, + 0x91, 0xec, 0x38, 0x46, 0x38, 0x93, 0xe2, 0xf6, 0xea, 0xb7, 0x5e, 0x71, 0x22, 0x2e, 0xbe, 0xfd, + 0x7a, 0xc9, 0xd7, 0xb6, 0x40, 0xa7, 0x4e, 0xce, 0x75, 0x19, 0xdf, 0xdd, 0x3e, 0xf4, 0x10, 0xc2, + 0xab, 0x37, 0xd2, 0x1d, 0x49, 0xec, 0x49, 0x2c, 0xbd, 0x44, 0xfe, 0x34, 0x23, 0x5d, 0xb4, 0x83, + 0xf4, 0x8b, 0x7d, 0x4b, 0x8d, 0x62, 0x05, 0xda, 0xb9, 0x0d, 0xae, 0x2e, 0x73, 0xd2, 0x3a, 0xb4, + 0x28, 0x81, 0x2d, 0xc0, 0xd2, 0x58, 0xeb, 0x87, 0x5b, 0x32, 0xee, 0x71, 0x88, 0xbd, 0x21, 0xbf, + 0xc8, 0x3b, 0xb9, 0xa5, 0x9f, 0x3d, 0xa5, 0xb6, 0xb4, 0x48, 0x7c, 0x49, 0x98, 0x94, 0xfe, 0x7a, + 0xec, 0x92, 0xf8, 0x5a, 0xd6, 0xb7, 0x83, 0x44, 0x31, 0xc2, 0x92, 0x02, 0x8b, 0x43, 0xef, 0x55, + 0x50, 0x38, 0x41, 0x0b, 0xae, 0xb2, 0x56, 0x9c, 0xc7, 0x54, 0xcf, 0x79, 0x07, 0xe9, 0xe1, 0x15, + 0x50, 0x7c, 0x04, 0x91, 0x32, 0x96, 0x2f, 0xe4, 0x67, 0x4d, 0xc3, 0x09, 0xbf, 0xff, 0x2d, 0x50, + 0x54, 0xab, 0xef, 0xaa, 0x7c, 0xb4, 0x0d, 0x29, 0x25, 0xd9, 0x9e, 0x06, 0xef, 0xc5, 0xd9, 0xea, + 0xd5, 0xd3, 0xae, 0x8f, 0x36, 0xd7, 0x26, 0xfb, 0x9b, 0xc2, 0xf9, 0x5d, 0x24, 0xfb, 0xe6, 0x91, + 0xa7, 0xa7, 0x05, 0x60, 0xc6, 0x75, 0x21, 0x48, 0x7b, 0xa1, 0x35, 0x1f, 0x6f, 0x01, 0xe9, 0xe1, + 0x48, 0x97, 0x34, 0x5f, 0x36, 0x4a, 0xfe, 0x36, 0x58, 0xd4, 0xbd, 0xb3, 0x6b, 0xe9, 0x71, 0xd5, + 0x1f, 0x94, 0x39, 0xd0, 0xaf, 0x71, 0xdd, 0xe4, 0xf5, 0x63, 0xa2, 0x5f, 0x11, 0xe1, 0x49, 0x4e, + 0x8b, 0xcd, 0xa6, 0x51, 0x58, 0xe2, 0x11, 0x3e, 0x04, 0xb9, 0x54, 0x5d, 0x6b, 0x72, 0x29, 0x42, + 0x1b, 0xfe, 0xe1, 0x4a, 0x86, 0xb3, 0xb8, 0x80, 0xb1, 0xe6, 0x2f, 0x32, 0xb0, 0xe6, 0x2f, 0x70, + 0xbe, 0x73, 0x44, 0x2c, 0x07, 0xc7, 0x90, 0x8b, 0x0e, 0x65, 0xc6, 0x50, 0x93, 0x2a, 0xb0, 0x77, + 0x56, 0x27, 0xf5, 0x72, 0x05, 0x1c, 0x43, 0x69, 0x2e, 0xe9, 0xd2, 0xcb, 0xee, 0x78, 0xd6, 0x20, + 0x96, 0xd5, 0xa6, 0xdf, 0x91, 0x88, 0xd2, 0x8e, 0xaf, 0x99, 0xed, 0x94, 0xc8, 0x97, 0x39, 0xad, + 0x5b, 0x9b, 0xe2, 0x63, 0xaf, 0x6c, 0xe3, 0xf3, 0x3f, 0xab, 0x5a, 0xe2, 0x30, 0xc5, 0x91, 0x4b, + 0xc5, 0x01, 0x9b, 0xc0, 0x0f, 0x23, 0x6f, 0x72, 0x2c, 0xe0, 0xff, 0xc1, 0x01, 0xb9, 0x72, 0xd7, + 0x56, 0x30, 0x45, 0x2d, 0xec, 0xc9, 0x75, 0x7a, 0xcc, 0xbe, 0xeb, 0x79, 0xb8, 0x1a, 0x75, 0xc8, + 0xa4, 0x61, 0x8e, 0x73, 0x3c, 0x5a, 0xc0, 0x5e, 0xb5, 0x39, 0xe6, 0xdc, 0x8e, 0xad, 0x60, 0x58, + 0x6a, 0x92, 0x4d, 0x8e, 0x10, 0xc5, 0x97, 0x77, 0x84, 0xa4, 0x06, 0xb1, 0x03, 0x1c, 0xf6, 0xc7, + 0xf6, 0xc6, 0x75, 0x9c, 0xcf, 0xc7, 0x91, 0xe5, 0xb0, 0xd7, 0xc8, 0x25, 0x9c, 0x62, 0x2e, 0xe1, + 0x14, 0xf2, 0xe5, 0x86, 0xf0, 0xf3, 0x70, 0x2a, 0x5a, 0x4f, 0x35, 0xca, 0x46, 0xe4, 0xdd, 0x0d, + 0xe2, 0xcb, 0xe8, 0x15, 0xb9, 0x92, 0xdb, 0xbd, 0x47, 0xc9, 0x53, 0x39, 0xf3, 0x3d, 0xca, 0x3d, + 0xbc, 0x8e, 0x5b, 0x69, 0xbc, 0x18, 0x5e, 0x7f, 0x93, 0x01, 0xaf, 0xbf, 0xc9, 0xa4, 0x8f, 0x34, + 0xa3, 0xcc, 0x66, 0x35, 0x1a, 0x03, 0xad, 0x99, 0x64, 0x2d, 0x4c, 0xbf, 0xf8, 0x87, 0xe5, 0xe4, + 0x4a, 0xfe, 0x5b, 0x03, 0x08, 0x7d, 0xac, 0x8d, 0xbd, 0x28, 0x7c, 0x55, 0x78, 0x85, 0xf3, 0x55, + 0xa4, 0xa2, 0xd2, 0x61, 0x6b, 0xda, 0x6d, 0x23, 0xe4, 0xdd, 0x5b, 0x1b, 0x33, 0xea, 0xbf, 0x8b, + 0x4e, 0x34, 0x07, 0x10, 0x06, 0x88, 0xcf, 0x54, 0xff, 0x06, 0xc4, 0x4f, 0x3f, 0xd8, 0xbc, 0x7a, + 0xb5, 0x0d, 0x1b, 0x10, 0x33, 0x37, 0x4d, 0x18, 0xb3, 0xdf, 0x16, 0x9a, 0xc9, 0x7b, 0x0c, 0xe3, + 0xb4, 0x84, 0xa5, 0x5b, 0x11, 0xa7, 0x19, 0x33, 0xd9, 0x96, 0x99, 0x30, 0xbb, 0x3b, 0xc5, 0x9b, + 0xf8, 0xc2, 0xb4, 0x27, 0xeb, 0x9e, 0x81, 0x2d, 0x4b, 0x8d, 0x9e, 0xc8, 0x45, 0xa7, 0xb1, 0xeb, + 0x44, 0xcf, 0x45, 0xf4, 0x26, 0x7b, 0xce, 0xbe, 0x84, 0xa3, 0x9a, 0xfc, 0x9c, 0x1b, 0x0a, 0x27, + 0xe1, 0xc3, 0x2a, 0x28, 0x74, 0xad, 0x02, 0x09, 0x65, 0x8c, 0xf5, 0x31, 0xe7, 0x3b, 0x07, 0xdf, + 0x39, 0x88, 0x73, 0x00, 0x39, 0xb6, 0x21, 0xc0, 0xb6, 0x9b, 0xe7, 0x5f, 0x31, 0x01, 0xce, 0xa0, + 0xe2, 0x34, 0x9f, 0xe9, 0x4a, 0xb0, 0xdf, 0x1d, 0xee, 0x55, 0x34, 0x47, 0xc0, 0x79, 0xec, 0x99, + 0x86, 0x0d, 0xd7, 0xe0, 0x0f, 0xc9, 0x63, 0xfa, 0x34, 0x0e, 0x09, 0xae, 0x8b, 0xf0, 0x87, 0xd6, + 0x60, 0x92, 0x5b, 0xa9, 0x76, 0xac, 0xf5, 0xd1, 0x98, 0xfb, 0xed, 0x37, 0xde, 0x7e, 0x43, 0xd4, + 0xba, 0x9b, 0x6b, 0x9d, 0xf7, 0x31, 0xd5, 0x2a, 0xad, 0xe2, 0xf3, 0x87, 0x54, 0xcd, 0x4e, 0xac, + 0x59, 0xf0, 0x57, 0x42, 0xf3, 0x99, 0xa5, 0x4a, 0x94, 0xf4, 0x86, 0x13, 0xc3, 0x09, 0xbb, 0xe9, + 0x48, 0x82, 0x38, 0x9f, 0xe1, 0x2d, 0x3b, 0xfa, 0x96, 0x8e, 0x32, 0x8e, 0x8e, 0xf0, 0xbc, 0x46, + 0x19, 0xd2, 0x83, 0xfc, 0x09, 0xe2, 0x29, 0x79, 0x41, 0xe4, 0x18, 0x77, 0x43, 0x76, 0xa4, 0x38, + 0x23, 0xaa, 0xaf, 0x3a, 0x2b, 0x52, 0xb0, 0x0b, 0x81, 0x17, 0x94, 0xcb, 0x8c, 0x1f, 0x3f, 0x15, + 0xfb, 0xbe, 0xb4, 0xb3, 0x5e, 0xfc, 0xfd, 0x73, 0x23, 0x4a, 0x92, 0x76, 0x48, 0x0e, 0x3c, 0x6f, + 0xa9, 0x82, 0x0c, 0x8d, 0x69, 0x8f, 0x06, 0x7f, 0x67, 0x71, 0x40, 0xb9, 0x1a, 0xfe, 0x39, 0x54, + 0xc5, 0x72, 0x9f, 0x18, 0xaa, 0xb9, 0xa8, 0x5c, 0xf8, 0xc1, 0x01, 0x7c, 0xbf, 0x53, 0xf6, 0xd9, + 0xfd, 0x69, 0x79, 0x58, 0x96, 0x48, 0xf6, 0x2e, 0xeb, 0x04, 0xdd, 0x0f, 0xdf, 0x48, 0x95, 0xf1, + 0x49, 0x3c, 0x3d, 0xf7, 0x93, 0xc8, 0x13, 0x5e, 0xac, 0x33, 0x28, 0xfb, 0x05, 0xee, 0x91, 0xad, + 0x17, 0x4b, 0xae, 0x96, 0xf6, 0x9b, 0x77, 0x26, 0x62, 0x65, 0x4d, 0x66, 0x8d, 0xf7, 0x38, 0x90, + 0x94, 0x0b, 0x42, 0xcb, 0xc1, 0xf0, 0x5e, 0x1f, 0xae, 0xbf, 0x49, 0xec, 0xc7, 0x1c, 0xaf, 0x85, + 0x74, 0x20, 0x86, 0x2a, 0xbd, 0x28, 0xd3, 0x78, 0x75, 0xaa, 0xcf, 0x0d, 0x0b, 0xaf, 0xa3, 0x88, + 0xa1, 0x16, 0x2f, 0x4c, 0xc9, 0x23, 0x87, 0xf2, 0x3a, 0x98, 0xb6, 0xd4, 0x62, 0xd4, 0x29, 0xff, + 0x2f, 0x4a, 0xde, 0x5f, 0x5a, 0xea, 0x34, 0x02, 0x4a, 0x72, 0xdf, 0x37, 0xea, 0x40, 0xc2, 0xe7, + 0xa2, 0xa5, 0x46, 0x33, 0x28, 0x7f, 0x8c, 0x9a, 0xf3, 0x20, 0x95, 0xc3, 0x20, 0x72, 0x50, 0xbc, + 0x1e, 0x0f, 0x79, 0x0d, 0x42, 0xb9, 0xc5, 0x56, 0x80, 0x38, 0xe2, 0x0a, 0xe8, 0xd7, 0x40, 0x81, + 0x61, 0x35, 0xe4, 0x7b, 0xe1, 0x6b, 0xf3, 0x46, 0x95, 0x67, 0x2c, 0x85, 0x31, 0xc3, 0xde, 0xb5, + 0x51, 0xc3, 0x6e, 0x7d, 0xcc, 0x19, 0xd1, 0x7b, 0xb3, 0x34, 0xaf, 0x24, 0xe4, 0xb3, 0xbe, 0x88, + 0xf4, 0x1d, 0x0a, 0x48, 0xce, 0xa2, 0xa7, 0x81, 0x29, 0xb1, 0x23, 0xcc, 0x99, 0xea, 0x10, 0x07, + 0x92, 0xec, 0xa5, 0x88, 0xbc, 0x1f, 0x19, 0x2c, 0x5f, 0x8a, 0x1a, 0xc2, 0x96, 0x98, 0x69, 0xc0, + 0x16, 0xbb, 0xc2, 0x31, 0x39, 0x74, 0x82, 0x9a, 0x53, 0x24, 0x14, 0xb2, 0xc3, 0x23, 0xec, 0x97, + 0xaa, 0x65, 0xc3, 0xf4, 0x1e, 0x97, 0xce, 0x67, 0xea, 0xaf, 0xce, 0xb7, 0xc5, 0x4c, 0xb8, 0x72, + 0xc0, 0xee, 0xee, 0x95, 0x17, 0xf2, 0x12, 0x2a, 0x05, 0x57, 0x25, 0xd2, 0x4c, 0x7a, 0x84, 0xf4, + 0xd3, 0x8a, 0x7c, 0x83, 0x0d, 0xb9, 0x54, 0x8a, 0xe5, 0x59, 0xac, 0x5b, 0xe7, 0x85, 0xf8, 0xd0, + 0xf0, 0xf3, 0x10, 0xf4, 0x82, 0x98, 0x1f, 0xf9, 0x4f, 0x4b, 0x41, 0x89, 0x68, 0x8b, 0x7f, 0x49, + 0x9f, 0xc6, 0xdb, 0x4b, 0xc8, 0x73, 0x09, 0x9b, 0x1e, 0xd8, 0x2c, 0xb8, 0x77, 0x21, 0x89, 0xd6, + 0x6f, 0x76, 0xa4, 0x75, 0xb0, 0x37, 0x6b, 0xb2, 0x3b, 0xf9, 0x4f, 0xba, 0x74, 0x86, 0x3c, 0x0f, + 0xb1, 0xfc, 0x5e, 0xa6, 0xca, 0xcf, 0xcd, 0x60, 0x9a, 0x2c, 0x41, 0xe3, 0x5b, 0xb3, 0x36, 0x27, + 0xee, 0xc4, 0xe7, 0x78, 0x93, 0x2b, 0x81, 0xb4, 0x52, 0xec, 0x8b, 0x9b, 0xe3, 0xcc, 0x8f, 0x5e, + 0x0e, 0x0e, 0xf4, 0x63, 0xe9, 0x9b, 0xe4, 0x7b, 0xd5, 0x76, 0xad, 0x80, 0xe0, 0xb7, 0x27, 0xb4, + 0x2c, 0x6a, 0x72, 0xd1, 0x6e, 0xc6, 0x9b, 0xf2, 0x7e, 0x55, 0xb2, 0x48, 0xb5, 0x2a, 0x6a, 0xa2, + 0x12, 0xb1, 0xbc, 0x75, 0x5a, 0xdb, 0xb4, 0x56, 0xa1, 0xec, 0xd3, 0x2c, 0xea, 0xc0, 0xd2, 0xcb, + 0xc9, 0xb3, 0xd1, 0xe7, 0x6d, 0x23, 0xd7, 0x35, 0x82, 0xfc, 0x46, 0x23, 0xce, 0x9b, 0xaf, 0x6a, + 0x30, 0x94, 0x88, 0xf7, 0x4a, 0xdc, 0xa5, 0x28, 0x17, 0x68, 0xd6, 0x0d, 0x6f, 0x23, 0xf4, 0xf2, + 0x66, 0x11, 0xe7, 0xab, 0xee, 0x4e, 0x83, 0x12, 0x60, 0xee, 0x44, 0x95, 0x7d, 0x85, 0x0f, 0xff, + 0xbb, 0x78, 0x6c, 0x4a, 0x70, 0x2e, 0x92, 0xac, 0xe0, 0xa1, 0xb1, 0x41, 0x3e, 0xce, 0x3e, 0x4f, + 0x7a, 0x00, 0x71, 0x70, 0xab, 0xd0, 0x63, 0x89, 0xe5, 0x70, 0x8d, 0xef, 0xca, 0xa0, 0x2b, 0x92, + 0x66, 0x82, 0xc1, 0x43, 0x1a, 0xd1, 0x33, 0xc9, 0x5f, 0xbb, 0x93, 0xb9, 0x75, 0x7b, 0x4d, 0xfd, + 0x13, 0x19, 0xa3, 0xf0, 0x1a, 0xf5, 0x54, 0x94, 0x90, 0xa6, 0x11, 0x13, 0xc6, 0xe1, 0x9e, 0xeb, + 0xf4, 0xd0, 0x22, 0xcd, 0xc3, 0xdc, 0xd2, 0xc4, 0x91, 0x40, 0xb8, 0x6d, 0x27, 0x18, 0xe1, 0x3a, + 0x48, 0x23, 0x70, 0xb4, 0xd3, 0x54, 0x5c, 0x7b, 0x83, 0xef, 0x3b, 0x27, 0x7f, 0x2f, 0x37, 0x8b, + 0x36, 0xd0, 0x28, 0xb1, 0xc7, 0xac, 0x72, 0x09, 0x5b, 0xf3, 0x2d, 0x82, 0x4d, 0x42, 0xba, 0xc3, + 0x94, 0x1e, 0xb3, 0x10, 0x7b, 0xc8, 0xd4, 0x4b, 0x35, 0xf5, 0xfd, 0xa9, 0x51, 0x33, 0x72, 0xed, + 0xed, 0x91, 0x47, 0xe5, 0x66, 0xfa, 0x6a, 0x51, 0xea, 0x2b, 0x3b, 0x2c, 0xea, 0xea, 0xd4, 0xed, + 0xed, 0x5a, 0x66, 0x94, 0xa6, 0xd9, 0x83, 0x72, 0x5e, 0x9b, 0x61, 0x47, 0x22, 0x76, 0x45, 0x8c, + 0x08, 0xe2, 0x4d, 0x20, 0xef, 0x15, 0xa7, 0x3f, 0x6f, 0x7a, 0x24, 0x11, 0xd6, 0xc5, 0x4c, 0xb4, + 0xa7, 0x16, 0xbd, 0xe4, 0xf4, 0x07, 0x6e, 0x21, 0xcf, 0xe7, 0x24, 0xfb, 0x72, 0x3d, 0x73, 0xd5, + 0x7a, 0x68, 0xcf, 0xcc, 0x2c, 0x5b, 0x3a, 0x8e, 0x1d, 0x7b, 0x8c, 0xb1, 0xec, 0x82, 0x65, 0x3a, + 0xe2, 0x44, 0x9d, 0xca, 0x41, 0x0e, 0xf0, 0x2e, 0x9a, 0x88, 0xdc, 0x27, 0x49, 0xcf, 0x41, 0xc3, + 0x6d, 0x21, 0x68, 0x48, 0x51, 0x68, 0x8a, 0xdd, 0x47, 0x3d, 0x73, 0xbc, 0xf4, 0x01, 0xf8, 0x51, + 0xc6, 0x5c, 0x01, 0x0d, 0xff, 0x34, 0x14, 0xad, 0xba, 0xbd, 0x01, 0x1a, 0x64, 0x27, 0xf6, 0xba, + 0x90, 0x64, 0x2f, 0x4c, 0x71, 0x4b, 0x79, 0x31, 0xd3, 0x99, 0xbe, 0xdb, 0xfc, 0x50, 0x28, 0xe7, + 0x7a, 0xa7, 0xf2, 0x9a, 0x89, 0xf0, 0xb9, 0x75, 0x90, 0xf6, 0x8e, 0x64, 0xa4, 0x64, 0xff, 0x34, + 0x18, 0x35, 0x48, 0x1b, 0x65, 0x9c, 0x6b, 0x82, 0x37, 0x16, 0xf4, 0x5b, 0xa5, 0x74, 0x74, 0x36, + 0xd7, 0x20, 0xe7, 0x48, 0x7e, 0xe2, 0x08, 0x62, 0x46, 0x09, 0xb1, 0x28, 0xfa, 0x11, 0x5b, 0xe3, + 0x56, 0x6a, 0x9e, 0x39, 0xe2, 0xae, 0xc9, 0xfe, 0x0c, 0x59, 0xe7, 0xfe, 0x1e, 0xde, 0x67, 0x30, + 0xf0, 0x6f, 0xe1, 0x4c, 0x5c, 0xc3, 0xc0, 0xc4, 0xf7, 0x66, 0x9f, 0x1b, 0x6a, 0x8d, 0x7e, 0xe5, + 0xcd, 0x6f, 0xf8, 0x51, 0x56, 0x6e, 0x81, 0xbc, 0xc0, 0x76, 0xb0, 0xa2, 0x1c, 0x7f, 0xf8, 0xf0, + 0x79, 0x96, 0xe3, 0x59, 0xbe, 0x9a, 0xf9, 0xdd, 0x3e, 0x00, 0xdb, 0xcc, 0x30, 0x48, 0x33, 0x9b, + 0xc1, 0x4f, 0xf1, 0x74, 0xc9, 0xe7, 0x6f, 0xe3, 0x06, 0x99, 0xda, 0xe4, 0x8a, 0xc7, 0xa4, 0x84, + 0x64, 0xae, 0xfb, 0xed, 0x12, 0x48, 0xed, 0x12, 0x68, 0xab, 0xa5, 0x14, 0xd8, 0x88, 0x33, 0xcc, + 0xc4, 0xfc, 0xc5, 0x1c, 0xc6, 0x8a, 0x22, 0xc9, 0x6f, 0x77, 0x81, 0x89, 0xe2, 0x1e, 0x65, 0x5d, + 0x88, 0x89, 0xeb, 0xa5, 0xa8, 0xc9, 0x41, 0xe3, 0x75, 0x20, 0x0e, 0xe1, 0x8d, 0xd1, 0x22, 0x6f, + 0x4e, 0xdc, 0x86, 0xd4, 0x87, 0x66, 0x8b, 0x97, 0x4e, 0xd4, 0x99, 0xbb, 0x70, 0x60, 0x09, 0x64, + 0x79, 0x62, 0x13, 0x7b, 0x02, 0x2a, 0x5f, 0x25, 0x69, 0xfc, 0x1f, 0xd2, 0x31, 0x9b, 0x37, 0x4b, + 0xf5, 0xbc, 0x64, 0x11, 0x32, 0x79, 0x72, 0x40, 0xe5, 0x8f, 0xf1, 0x8d, 0x97, 0xf6, 0x20, 0x29, + 0x72, 0xae, 0xc4, 0x6d, 0xb9, 0x57, 0x70, 0xc6, 0xb4, 0x9a, 0x18, 0xcc, 0x82, 0xef, 0x13, 0xb3, + 0x2f, 0x4d, 0x19, 0x51, 0x1a, 0xb2, 0x60, 0xa9, 0x56, 0x2c, 0xbd, 0x30, 0xb0, 0xd1, 0xdc, 0x43, + 0xfa, 0x1c, 0x58, 0x52, 0x71, 0x0a, 0xa3, 0x4f, 0x31, 0xcd, 0x30, 0x72, 0xcb, 0x8f, 0x7a, 0x73, + 0xe6, 0x5f, 0x54, 0x8e, 0x23, 0x56, 0x65, 0x6b, 0x74, 0x61, 0xea, 0xa0, 0xaa, 0x8f, 0xb2, 0x91, + 0xa3, 0xcd, 0xb0, 0xc7, 0x2f, 0xc4, 0x0a, 0x09, 0xb1, 0x27, 0xb8, 0xe8, 0xe1, 0xb7, 0x5e, 0xf7, + 0xf8, 0xa5, 0x12, 0x30, 0x0f, 0x3f, 0x4c, 0x38, 0xbc, 0x28, 0x41, 0x27, 0xbc, 0xcb, 0x68, 0xa6, + 0xe6, 0x70, 0x1f, 0x8c, 0x58, 0x12, 0x43, 0x6d, 0xb4, 0xc1, 0xa5, 0x62, 0x66, 0xcc, 0x4e, 0x5f, + 0x4b, 0xcb, 0x55, 0x09, 0x99, 0x77, 0x73, 0xe2, 0x63, 0x03, 0xbf, 0x40, 0x5a, 0x07, 0xf0, 0xb8, + 0xcb, 0x03, 0x26, 0x59, 0xdf, 0xa1, 0x70, 0x3b, 0x2f, 0x45, 0xf3, 0xd2, 0xed, 0x30, 0xc4, 0x1d, + 0x09, 0xde, 0x3f, 0x47, 0xbc, 0x63, 0x4b, 0xaa, 0x37, 0xa3, 0x4d, 0x6a, 0x2e, 0x3b, 0xcb, 0xad, + 0x36, 0xaf, 0x11, 0xeb, 0x3c, 0x1e, 0xea, 0x50, 0xc6, 0xd2, 0xbd, 0x33, 0xd3, 0x49, 0x5c, 0xa1, + 0x6c, 0xdb, 0x4d, 0xbc, 0x65, 0x19, 0xc7, 0x66, 0x93, 0x34, 0xf9, 0x3a, 0xb5, 0x4f, 0xbf, 0x91, + 0x24, 0x0d, 0xe6, 0x78, 0x18, 0xaa, 0xe3, 0x06, 0x86, 0xaa, 0x18, 0xcb, 0x11, 0x82, 0x2d, 0x52, + 0x36, 0x8e, 0xfa, 0xac, 0xc6, 0xa6, 0x54, 0xf9, 0x44, 0x1c, 0x99, 0x83, 0xf6, 0x40, 0x5a, 0x4b, + 0x51, 0x29, 0x69, 0xd8, 0xe0, 0x50, 0x7d, 0x67, 0xdf, 0x35, 0x07, 0x57, 0x51, 0xf2, 0x30, 0x54, + 0x56, 0xe2, 0x85, 0x0a, 0xb7, 0xf0, 0x13, 0x8d, 0x6b, 0x8c, 0xae, 0xca, 0xe9, 0xe6, 0xf8, 0xab, + 0xda, 0x28, 0x1a, 0x45, 0x5b, 0x9c, 0x69, 0x2a, 0xf7, 0xb4, 0x94, 0xd5, 0xdf, 0x8d, 0x5c, 0x60, + 0xd5, 0x00, 0xed, 0x96, 0x81, 0xd8, 0xd3, 0x6c, 0x87, 0xf9, 0xbc, 0x2a, 0x91, 0xaf, 0x4b, 0x73, + 0x33, 0x64, 0x83, 0x65, 0x69, 0x58, 0x6a, 0x16, 0xa3, 0xf0, 0x4d, 0x1a, 0x05, 0xc4, 0xef, 0xdf, + 0xbc, 0x3e, 0x63, 0xf5, 0x16, 0xc0, 0x99, 0xb0, 0x1c, 0x6a, 0x51, 0x86, 0x7d, 0xf3, 0xce, 0x10, + 0x4a, 0xd8, 0xbc, 0x9b, 0xc9, 0x75, 0x17, 0xa4, 0x6a, 0xdc, 0x94, 0xaa, 0xad, 0x44, 0x94, 0xce, + 0x96, 0xef, 0x16, 0x6d, 0xb7, 0x94, 0x39, 0x0b, 0x35, 0xa7, 0xb6, 0xd7, 0x24, 0xca, 0x89, 0x37, + 0xb9, 0x13, 0xed, 0x8a, 0xdc, 0x21, 0xf9, 0x3d, 0xcb, 0x79, 0xc6, 0xe5, 0xb5, 0x41, 0x29, 0x54, + 0x7f, 0x62, 0x03, 0xa4, 0x18, 0x52, 0x78, 0xa6, 0x6e, 0x5d, 0x34, 0xa7, 0xb2, 0x04, 0x72, 0xab, + 0xcf, 0x81, 0x4d, 0x36, 0x55, 0xce, 0x84, 0xda, 0xe3, 0x73, 0x8f, 0xcf, 0x7d, 0x0a, 0xe5, 0xa2, + 0xd2, 0xec, 0x5d, 0x5d, 0x4d, 0x39, 0x95, 0x59, 0xc3, 0x35, 0x77, 0xfa, 0x21, 0x8f, 0x3d, 0x29, + 0xe5, 0x2d, 0x6a, 0x06, 0x4b, 0x07, 0x54, 0x64, 0xdb, 0xe7, 0xbd, 0xb5, 0x4f, 0x32, 0xa4, 0xe3, + 0x2b, 0x6c, 0xee, 0x25, 0xef, 0x13, 0x8a, 0x32, 0xb2, 0x36, 0xdc, 0x83, 0x74, 0x2b, 0x4f, 0xd4, + 0xad, 0xca, 0x7f, 0xec, 0x63, 0x4d, 0xec, 0xe9, 0xe3, 0x18, 0xd8, 0x52, 0x7f, 0x39, 0xf4, 0x8b, + 0x63, 0xc7, 0x1c, 0x70, 0x9b, 0x82, 0xb4, 0xd3, 0x70, 0x78, 0x1b, 0x62, 0xbd, 0xf0, 0xae, 0xe8, + 0xb3, 0xd3, 0x6e, 0x18, 0x9d, 0x9b, 0x60, 0xbb, 0xe3, 0x16, 0x47, 0x82, 0xae, 0x33, 0x96, 0x13, + 0x25, 0x69, 0xd3, 0xcb, 0x39, 0x23, 0xdd, 0x23, 0xdd, 0x81, 0x1d, 0x2e, 0x88, 0x54, 0x23, 0x9f, + 0xa1, 0xc3, 0x95, 0x08, 0xa9, 0x39, 0xe5, 0x18, 0xe8, 0x5e, 0x7a, 0x86, 0xe8, 0xf3, 0x8c, 0x17, + 0xc1, 0x66, 0x02, 0xc7, 0x03, 0x08, 0xeb, 0x47, 0xfe, 0xe3, 0x80, 0x13, 0xdf, 0xbc, 0x7d, 0x20, + 0xf0, 0xd2, 0x56, 0xb0, 0x3f, 0x20, 0xe6, 0x00, 0x62, 0xb3, 0xf9, 0xf0, 0xeb, 0xf1, 0xb1, 0x5b, + 0x13, 0x5b, 0xd4, 0xbd, 0x3e, 0x6d, 0x97, 0x91, 0xea, 0xc4, 0xba, 0x6d, 0x48, 0xf7, 0xa4, 0xf8, + 0xa1, 0xe1, 0xad, 0x10, 0xec, 0x7f, 0x11, 0x0a, 0xb1, 0x24, 0xda, 0xd5, 0x35, 0xdd, 0x4f, 0x1e, + 0x8b, 0x4c, 0xe1, 0xae, 0x58, 0x9e, 0x63, 0xb9, 0x5a, 0xf6, 0x03, 0x54, 0xf6, 0xed, 0x5d, 0x5b, + 0x21, 0x9e, 0x8d, 0x52, 0x43, 0xa1, 0x77, 0x3e, 0xf6, 0x2d, 0x84, 0xd8, 0x12, 0x20, 0xbf, 0x01, + 0x58, 0x32, 0xed, 0xb5, 0x3e, 0x2d, 0xbc, 0x53, 0x63, 0xf9, 0x1c, 0x7b, 0xdc, 0xed, 0x85, 0x20, + 0x62, 0x58, 0xc8, 0x2b, 0xa2, 0xfa, 0x22, 0x0e, 0x97, 0x88, 0xbd, 0xae, 0x79, 0x19, 0x7b, 0x5d, + 0x38, 0xb7, 0xd5, 0xdd, 0xf1, 0x55, 0x50, 0xb2, 0x1a, 0x02, 0x2f, 0x82, 0x8f, 0x78, 0x99, 0x8b, + 0x55, 0x32, 0x64, 0x55, 0x85, 0x71, 0x34, 0xa2, 0x4e, 0x81, 0x05, 0x84, 0x55, 0x6d, 0x6f, 0x1e, + 0xc1, 0x96, 0x22, 0x0c, 0xf3, 0x22, 0xbc, 0xef, 0xa3, 0xee, 0x4e, 0x11, 0xf5, 0xf4, 0xa9, 0xd8, + 0x27, 0x22, 0x29, 0xa7, 0xf0, 0xcf, 0x85, 0x39, 0xde, 0x79, 0xdd, 0x55, 0xb6, 0x05, 0x62, 0x45, + 0x62, 0xbc, 0xbc, 0x06, 0xd1, 0x96, 0xcc, 0x56, 0x44, 0x9b, 0xe5, 0x7a, 0xa6, 0x07, 0x88, 0xf3, + 0xe7, 0x2f, 0xb9, 0x90, 0xdf, 0x57, 0xeb, 0xf4, 0x23, 0x8f, 0xab, 0xc3, 0x99, 0xae, 0xd2, 0xb5, + 0xf1, 0x7d, 0xa2, 0x0c, 0x3e, 0x53, 0xee, 0x8d, 0x1a, 0xe2, 0x31, 0xd9, 0x96, 0x2a, 0xaf, 0x36, + 0xa3, 0x3c, 0x13, 0x61, 0x24, 0x72, 0x0f, 0xf5, 0x1c, 0x73, 0x9c, 0xb1, 0x16, 0xbf, 0xb6, 0x30, + 0x9d, 0xc0, 0xd6, 0x4d, 0x98, 0x09, 0xdc, 0xfb, 0x19, 0x41, 0x94, 0x38, 0x56, 0x91, 0xaf, 0x89, + 0x4c, 0x8c, 0xe7, 0xf3, 0x81, 0x20, 0x43, 0xc1, 0xce, 0xbd, 0xc2, 0x95, 0xf9, 0x48, 0xd7, 0x91, + 0xae, 0x1d, 0x6b, 0x97, 0xe6, 0x85, 0x5d, 0xba, 0x75, 0x31, 0xb3, 0xba, 0x92, 0x63, 0xdd, 0xb2, + 0x59, 0xa3, 0xbf, 0xa4, 0x3b, 0xe4, 0xd2, 0x5a, 0x02, 0x3a, 0x3a, 0xb3, 0xfc, 0x89, 0xda, 0x03, + 0xb5, 0x7f, 0x0d, 0x1b, 0xa2, 0xf6, 0xc0, 0xcf, 0x44, 0x5d, 0xcc, 0xbf, 0xa9, 0xfd, 0x1b, 0x3b, + 0xad, 0xce, 0xa7, 0x18, 0x79, 0x13, 0x9b, 0xd8, 0x96, 0x5b, 0x7b, 0x4d, 0x14, 0x89, 0x58, 0xa2, + 0x7a, 0xa3, 0x95, 0x61, 0x1c, 0x27, 0xa4, 0x5b, 0x14, 0x9b, 0xcb, 0x24, 0x60, 0xa9, 0x8e, 0x67, + 0x39, 0x7b, 0x28, 0x31, 0xdf, 0x1a, 0x04, 0x6d, 0xdf, 0x39, 0x55, 0xf3, 0x25, 0xb2, 0x9d, 0xb2, + 0x64, 0xc2, 0x2b, 0xd5, 0x4a, 0xf7, 0x75, 0x5b, 0xb3, 0x38, 0x3d, 0xbb, 0x69, 0xf6, 0xac, 0x56, + 0x64, 0x8a, 0x44, 0xa6, 0xb5, 0xa1, 0x9e, 0x76, 0xe9, 0xe3, 0x26, 0x5c, 0x1b, 0x69, 0xb7, 0x9e, + 0xbc, 0x4d, 0x19, 0x3c, 0x2d, 0x2a, 0x7c, 0x5d, 0x50, 0xfb, 0xd7, 0xfe, 0x61, 0xfc, 0x4f, 0xf1, + 0x81, 0xa4, 0x2c, 0xe4, 0x0d, 0xad, 0x6a, 0x6c, 0x96, 0xbe, 0x86, 0x0d, 0x91, 0xc4, 0x2c, 0x75, + 0x8f, 0x1f, 0x65, 0x68, 0xb3, 0x7a, 0xb5, 0xb0, 0x9d, 0x75, 0x89, 0x46, 0x3b, 0x98, 0xfe, 0xbf, + 0x42, 0x65, 0x55, 0x60, 0x59, 0xc7, 0x82, 0xc7, 0x82, 0x5c, 0xa7, 0xc9, 0x18, 0x54, 0xce, 0xd5, + 0xbc, 0x0f, 0xb6, 0x2d, 0x44, 0x3b, 0x0c, 0x7b, 0x90, 0x76, 0x54, 0x64, 0x0f, 0xcf, 0x9d, 0x48, + 0x3b, 0x10, 0x36, 0xfe, 0x98, 0x15, 0x67, 0x98, 0xff, 0xf0, 0xab, 0xd8, 0xab, 0x0c, 0x0a, 0x92, + 0xa2, 0x46, 0xe4, 0x29, 0x28, 0x8f, 0x6a, 0x8e, 0x5a, 0x68, 0x56, 0x33, 0x17, 0x3b, 0x4a, 0x33, + 0x5a, 0x36, 0x0b, 0xeb, 0xf9, 0x01, 0x6c, 0xd9, 0xfd, 0x39, 0xb7, 0x92, 0x97, 0x3c, 0x03, 0xef, + 0x46, 0x66, 0x53, 0xa9, 0xd1, 0x9c, 0x54, 0xef, 0xad, 0xac, 0x1d, 0x3d, 0x09, 0xb6, 0xe2, 0x94, + 0xed, 0xa9, 0xde, 0xa3, 0xbd, 0xe1, 0xb5, 0x51, 0x48, 0xee, 0x0b, 0x23, 0x46, 0xc5, 0xec, 0x02, + 0xb2, 0x8c, 0x45, 0xfa, 0x48, 0x82, 0x77, 0xa1, 0x52, 0x30, 0xfe, 0xec, 0x32, 0x7b, 0x20, 0x13, + 0xd4, 0x38, 0x4b, 0xf3, 0x17, 0x8b, 0x6b, 0xf5, 0x15, 0xf2, 0x0c, 0x86, 0xeb, 0x74, 0x6a, 0x7f, + 0x9d, 0xbf, 0x98, 0x96, 0xb1, 0x32, 0x9b, 0x99, 0x07, 0x3c, 0x4a, 0x7e, 0x97, 0x61, 0x77, 0xea, + 0xed, 0x67, 0xbf, 0x7b, 0xc6, 0x6b, 0x66, 0x6e, 0x40, 0xf0, 0x09, 0xd3, 0xb0, 0x8e, 0xf3, 0xbc, + 0x53, 0x56, 0x88, 0xf2, 0x75, 0x77, 0xec, 0xc1, 0xff, 0xa0, 0xb1, 0x70, 0x83, 0x21, 0xfd, 0xc5, + 0xc5, 0x7d, 0x1a, 0x1e, 0xc4, 0x64, 0x82, 0x09, 0x41, 0x29, 0xfe, 0xe6, 0xf0, 0x73, 0x10, 0x24, + 0x88, 0xdc, 0x1a, 0x27, 0xcf, 0xa1, 0xa4, 0x89, 0x82, 0x94, 0xc9, 0x76, 0x7f, 0x21, 0xc5, 0x4a, + 0x20, 0x28, 0xd0, 0x4a, 0x8d, 0x73, 0xe8, 0xb0, 0xb6, 0x56, 0xdf, 0x96, 0xe8, 0x83, 0xb6, 0x2b, + 0x47, 0x1e, 0xc3, 0x15, 0xc7, 0x8d, 0x6b, 0x9e, 0x9f, 0x35, 0xaa, 0xcc, 0xe9, 0x56, 0xeb, 0x06, + 0x18, 0xfb, 0x52, 0xb5, 0x9e, 0x35, 0x36, 0x6c, 0xa0, 0x7d, 0xbb, 0x25, 0x06, 0x71, 0x96, 0xc8, + 0x6b, 0xe3, 0x2a, 0xb1, 0x36, 0xe2, 0x2a, 0x57, 0x81, 0x12, 0x7d, 0x15, 0xca, 0x99, 0x7e, 0xee, + 0xe5, 0xaf, 0x99, 0x72, 0x3b, 0xc8, 0x57, 0x29, 0xd2, 0xfe, 0x9c, 0x00, 0x79, 0x00, 0xb6, 0x22, + 0x36, 0x3a, 0x8f, 0x62, 0x6f, 0x64, 0xb3, 0xd0, 0x1f, 0xd3, 0xe5, 0xe3, 0x13, 0xb7, 0x0d, 0x29, + 0x71, 0xb0, 0x6a, 0xda, 0x89, 0x05, 0x27, 0x6a, 0x79, 0xac, 0x0c, 0xc6, 0x5a, 0xe5, 0x1c, 0x79, + 0xbb, 0x52, 0x14, 0x37, 0x47, 0xbc, 0x43, 0xfe, 0x83, 0xe5, 0x94, 0x86, 0x0d, 0x25, 0x50, 0x31, + 0xad, 0x6c, 0x9a, 0x31, 0xa0, 0x0c, 0x89, 0x98, 0x42, 0x88, 0x5f, 0x6f, 0x52, 0x54, 0x84, 0x39, + 0x56, 0x5c, 0xcb, 0x81, 0xa2, 0xcd, 0x6d, 0xf1, 0x53, 0xdc, 0x58, 0x91, 0xdb, 0x4d, 0x1a, 0x40, + 0x59, 0x94, 0x3a, 0x07, 0xc2, 0x3d, 0x31, 0x6b, 0xd8, 0x1f, 0xa5, 0x35, 0xd2, 0x30, 0xef, 0x03, + 0xe5, 0xcd, 0x7f, 0x46, 0xbe, 0x76, 0xd1, 0xda, 0x8e, 0x6c, 0x11, 0xeb, 0x0d, 0xf3, 0x61, 0x0b, + 0xeb, 0x9f, 0x54, 0xa3, 0x12, 0x3d, 0x49, 0x51, 0xeb, 0x54, 0x0a, 0xa9, 0x5f, 0xd4, 0xbd, 0x73, + 0xed, 0x52, 0x3a, 0x59, 0x34, 0xcb, 0xe5, 0xb4, 0xfb, 0x85, 0x23, 0x58, 0xe2, 0xd5, 0x31, 0x64, + 0x72, 0x79, 0xd7, 0x8e, 0x46, 0x22, 0xa4, 0xc1, 0xf8, 0x9b, 0xc8, 0x0d, 0xb9, 0xfd, 0xf6, 0x56, + 0x82, 0xb1, 0x1d, 0x25, 0xbf, 0x48, 0xb7, 0x6c, 0xe4, 0x13, 0xc3, 0x7d, 0x7b, 0xba, 0x63, 0xc6, + 0x70, 0x57, 0x74, 0xbf, 0x5c, 0x88, 0x2b, 0x85, 0x4d, 0xc0, 0x64, 0x46, 0x35, 0x98, 0xef, 0xc4, + 0xb9, 0x7f, 0xe7, 0x3c, 0xc8, 0x9b, 0x51, 0xc3, 0x3c, 0xa0, 0x22, 0xd6, 0x46, 0x81, 0x53, 0x15, + 0x29, 0x9c, 0x72, 0xa8, 0xfc, 0xdf, 0x75, 0x71, 0x4b, 0xc8, 0x5f, 0x47, 0xc9, 0x47, 0xb7, 0x80, + 0x3f, 0x9f, 0x3a, 0xdb, 0x10, 0xf6, 0x46, 0x86, 0x3c, 0x52, 0x4d, 0x8a, 0x73, 0xae, 0x0b, 0xe1, + 0x93, 0x8d, 0xf8, 0x4c, 0xbb, 0x3e, 0xd8, 0x35, 0xd0, 0xd5, 0x0a, 0xba, 0xf2, 0x91, 0x84, 0xda, + 0xf2, 0x06, 0xd9, 0xf6, 0x4f, 0x43, 0xb1, 0x3c, 0xe4, 0x08, 0x0c, 0xff, 0x76, 0x1e, 0x0c, 0x51, + 0xd3, 0xce, 0xad, 0x60, 0x5d, 0x06, 0x3a, 0xab, 0xba, 0x47, 0x77, 0x9a, 0x22, 0x13, 0xee, 0x24, + 0x9c, 0x6a, 0xf1, 0xf2, 0x6e, 0x11, 0x9f, 0x64, 0x21, 0xbe, 0x8e, 0x7d, 0x32, 0x11, 0x9b, 0x25, + 0x7d, 0xff, 0x36, 0x8a, 0x98, 0xa7, 0xbd, 0xff, 0xb4, 0xc0, 0x45, 0xf8, 0xec, 0x29, 0xd9, 0x96, + 0xc6, 0x25, 0x6a, 0x87, 0x5d, 0xbf, 0x31, 0xd1, 0xb0, 0x61, 0x47, 0xef, 0xfd, 0x7e, 0x87, 0xd5, + 0x6b, 0x56, 0x2d, 0x18, 0xf8, 0x0b, 0xc5, 0xe0, 0xea, 0x16, 0xda, 0xaa, 0x28, 0xb1, 0x9b, 0x35, + 0x1f, 0xf4, 0x5c, 0xd7, 0x23, 0x5e, 0xd5, 0x62, 0x61, 0x8a, 0x9b, 0xe6, 0xc8, 0xce, 0x9e, 0x55, + 0x7a, 0xa7, 0x3e, 0xb0, 0xe9, 0x9a, 0x19, 0x22, 0xf6, 0x02, 0xfc, 0x33, 0x02, 0x93, 0xb1, 0xdf, + 0xe3, 0xb7, 0xaf, 0x64, 0xfc, 0xef, 0xbe, 0x0e, 0xfe, 0x1b, 0xae, 0xc1, 0x7f, 0x51, 0x7b, 0x96, + 0x5a, 0xbb, 0x59, 0xdd, 0xc1, 0x56, 0x78, 0x26, 0x14, 0x6a, 0x3b, 0xd8, 0x62, 0x47, 0x4e, 0x93, + 0x78, 0x90, 0x92, 0x49, 0xa5, 0x9d, 0xca, 0xfb, 0x6f, 0x9d, 0xa7, 0xbd, 0x65, 0xb1, 0xa2, 0xce, + 0xec, 0xdf, 0x02, 0x98, 0x76, 0x7e, 0x42, 0x1a, 0xca, 0x4c, 0x9c, 0xfa, 0xc1, 0xa4, 0x54, 0xd3, + 0x16, 0xe0, 0xb5, 0x60, 0x5a, 0xfa, 0x04, 0x8d, 0xf6, 0xb6, 0xbf, 0xd5, 0x77, 0xfd, 0xf3, 0x25, + 0xa1, 0xb1, 0x15, 0xcb, 0x67, 0x3e, 0x23, 0xac, 0x45, 0xe4, 0x28, 0x24, 0x1e, 0x23, 0xf9, 0x45, + 0x6b, 0xbc, 0x29, 0xb5, 0xf3, 0x2b, 0x4e, 0x8b, 0x54, 0x09, 0x25, 0x45, 0x0b, 0x19, 0x87, 0xda, + 0x66, 0xd6, 0xea, 0x48, 0x8f, 0x21, 0xb5, 0xa7, 0xaf, 0x49, 0x2d, 0x58, 0xc3, 0x47, 0x7d, 0xea, + 0x3e, 0xac, 0xd1, 0x3e, 0x4b, 0x49, 0xca, 0xf9, 0x93, 0x64, 0x17, 0xbd, 0x5d, 0xec, 0xc2, 0xea, + 0xae, 0x3d, 0xff, 0x49, 0xef, 0x87, 0x5f, 0xb7, 0xb6, 0xc5, 0x9f, 0xa3, 0x36, 0x5f, 0xc6, 0xe8, + 0x0d, 0x1f, 0x1e, 0x72, 0xfa, 0x05, 0x04, 0x6e, 0x7b, 0x01, 0xac, 0x7d, 0x90, 0xb1, 0x5a, 0x62, + 0x4f, 0xb9, 0x1d, 0x66, 0x49, 0xc7, 0x7b, 0xe7, 0x17, 0xd2, 0xad, 0xa8, 0xf0, 0x65, 0x48, 0x65, + 0xd6, 0xeb, 0xb6, 0xa4, 0x2d, 0xed, 0x2d, 0xb3, 0xed, 0xb6, 0x5a, 0x5d, 0xc7, 0x5f, 0xee, 0x4e, + 0x2c, 0xbb, 0xef, 0xfa, 0xad, 0x73, 0xfa, 0x27, 0xb4, 0xaf, 0x02, 0x47, 0xea, 0xaf, 0xb8, 0x8d, + 0x2e, 0x75, 0x5d, 0x3a, 0xc2, 0xbb, 0x2b, 0x42, 0x5e, 0xa4, 0x52, 0x3f, 0xbb, 0xbc, 0x37, 0xb5, + 0x7e, 0xa4, 0xdb, 0x69, 0xe3, 0x76, 0x16, 0x2a, 0x67, 0x04, 0x06, 0x01, 0xfb, 0xeb, 0x40, 0x0e, + 0x53, 0x42, 0x0e, 0xd0, 0xe1, 0x6c, 0xc1, 0xfe, 0x7e, 0xa0, 0x24, 0x89, 0xbf, 0x94, 0xb0, 0xed, + 0x76, 0xd3, 0x91, 0xbe, 0x23, 0x5d, 0x03, 0x3b, 0x6c, 0x10, 0xb3, 0x2d, 0x3c, 0x0f, 0x36, 0x5f, + 0x27, 0x18, 0x91, 0xb7, 0x7b, 0x54, 0x36, 0x0e, 0xfc, 0x38, 0x66, 0x8c, 0xf4, 0xed, 0xe8, 0x6b, + 0xfa, 0xe4, 0xdb, 0x8f, 0xbe, 0xfd, 0x86, 0x1b, 0xfb, 0xf8, 0xeb, 0x37, 0x58, 0x3b, 0xe0, 0x9f, + 0x76, 0x43, 0x1f, 0x10, 0x67, 0x81, 0x6b, 0xb5, 0x95, 0xca, 0xc1, 0x1e, 0x78, 0xd2, 0xfb, 0xb1, + 0xb8, 0x2a, 0x58, 0x1b, 0x36, 0x50, 0x24, 0x18, 0x86, 0xd2, 0xe5, 0xc9, 0x7b, 0x70, 0x13, 0xe5, + 0x4a, 0x15, 0x4a, 0xa0, 0xef, 0x45, 0xa9, 0x32, 0xe9, 0x35, 0xbb, 0x6e, 0xba, 0x9b, 0x4e, 0x67, + 0x79, 0xa7, 0x7e, 0xee, 0xa7, 0x04, 0x15, 0xd6, 0x96, 0x22, 0xa8, 0x98, 0x18, 0x2a, 0xa0, 0xbf, + 0x17, 0xd7, 0x12, 0x35, 0x47, 0xfd, 0x46, 0x87, 0x9f, 0x77, 0x96, 0xb1, 0x4c, 0xaa, 0xff, 0xca, + 0xb3, 0x84, 0xb1, 0x6d, 0x77, 0x52, 0x99, 0x51, 0xd0, 0xfb, 0x68, 0xff, 0x45, 0x93, 0x25, 0xe7, + 0xe3, 0x28, 0xd3, 0x3e, 0x76, 0x5e, 0x95, 0x72, 0xd2, 0x74, 0x07, 0xc0, 0x50, 0x16, 0xe6, 0xc8, + 0xc5, 0x54, 0x45, 0x32, 0x0f, 0xaf, 0x1f, 0x4e, 0xe4, 0x55, 0x81, 0x7e, 0xc7, 0x2f, 0x4c, 0x10, + 0xb5, 0x11, 0x57, 0x11, 0x37, 0x12, 0x57, 0x28, 0x9b, 0xc2, 0x3f, 0x42, 0xda, 0x76, 0x2a, 0x92, + 0xf8, 0xc5, 0x60, 0xd3, 0x15, 0xe4, 0x0f, 0xb7, 0xa9, 0xda, 0x93, 0xdc, 0x07, 0x6d, 0x17, 0x30, + 0xc5, 0x3b, 0x91, 0x5f, 0xee, 0x6d, 0xec, 0xa5, 0x6d, 0x27, 0x42, 0x84, 0x6b, 0xa6, 0x5d, 0x28, + 0xa7, 0xd8, 0x11, 0xac, 0x51, 0x77, 0x04, 0xf3, 0x71, 0x8d, 0xa7, 0xf3, 0x15, 0x63, 0x71, 0xb5, + 0x72, 0xb9, 0xb8, 0x05, 0x4c, 0xac, 0x43, 0x5b, 0x24, 0x34, 0x3e, 0xbc, 0x64, 0x27, 0xaf, 0x49, + 0x99, 0xc1, 0xb4, 0x2c, 0xfa, 0xbb, 0x67, 0x54, 0x2d, 0x86, 0xe2, 0x09, 0x7c, 0x86, 0x8b, 0x53, + 0x55, 0x08, 0x78, 0xf5, 0xe4, 0xcb, 0xe0, 0x9c, 0x8b, 0x3c, 0x15, 0x4c, 0x90, 0xa0, 0x79, 0xaf, + 0x90, 0xcf, 0x7b, 0x35, 0x29, 0xfa, 0x23, 0x77, 0xae, 0xa7, 0x86, 0xf2, 0x38, 0xb1, 0x7d, 0x9d, + 0x6f, 0x9e, 0xe8, 0xf9, 0xdd, 0xa3, 0xc6, 0x1e, 0x45, 0x51, 0xca, 0xe4, 0x7c, 0x95, 0x5a, 0x72, + 0x79, 0x54, 0xd2, 0xa2, 0x75, 0xe2, 0x8c, 0x1d, 0x39, 0xbc, 0xec, 0x81, 0x75, 0x4d, 0x39, 0x92, + 0xaf, 0x02, 0xbe, 0xdd, 0x83, 0xbd, 0x3d, 0x6a, 0xa7, 0x3a, 0x90, 0x67, 0xfa, 0x26, 0xef, 0x50, + 0x85, 0x07, 0x90, 0x43, 0x06, 0xd8, 0x22, 0x60, 0x30, 0xf1, 0x1d, 0xcb, 0x8b, 0x53, 0x33, 0xf6, + 0x9f, 0x84, 0x9f, 0x72, 0xd6, 0xbb, 0xd0, 0xf6, 0x27, 0x35, 0x68, 0xd5, 0x6f, 0x66, 0x28, 0x95, + 0xb0, 0x25, 0x99, 0x85, 0x77, 0xed, 0x2e, 0x93, 0x8e, 0xe9, 0x84, 0x1d, 0xb7, 0x48, 0x06, 0x16, + 0xd1, 0x7e, 0x5b, 0xa0, 0x4d, 0xd7, 0xb3, 0x4d, 0xd5, 0x52, 0x48, 0x41, 0x43, 0xf3, 0xd8, 0x20, + 0x03, 0x79, 0x41, 0xd0, 0xe0, 0x76, 0xd6, 0x28, 0xe0, 0x4f, 0x75, 0x23, 0xfe, 0x81, 0x6c, 0x6a, + 0xbb, 0xbd, 0x56, 0x27, 0xeb, 0xdb, 0x9a, 0x68, 0xde, 0xa0, 0x1c, 0x7f, 0x90, 0xe6, 0x0d, 0xc5, + 0x6c, 0xf5, 0x91, 0xfc, 0xe4, 0x40, 0xba, 0xeb, 0xca, 0x1c, 0x07, 0xbc, 0x37, 0x67, 0xee, 0x11, + 0x38, 0xfc, 0x02, 0x2f, 0x56, 0x43, 0x79, 0xb1, 0x38, 0xd3, 0x08, 0xaf, 0x80, 0xbc, 0x98, 0x6d, + 0x51, 0x8f, 0x6c, 0xcd, 0x84, 0x65, 0xfd, 0x26, 0x4c, 0x01, 0x78, 0x4d, 0x60, 0x0d, 0xc5, 0x59, + 0xb8, 0x74, 0x86, 0x24, 0x76, 0x1c, 0x2f, 0x01, 0xdb, 0x9e, 0x26, 0x33, 0xf2, 0xc7, 0x3d, 0xc8, + 0xe5, 0x23, 0xb4, 0xa2, 0xfb, 0xaf, 0x0b, 0xdd, 0x7e, 0xd1, 0xf6, 0xeb, 0x43, 0x37, 0x63, 0x3f, + 0xba, 0x73, 0x02, 0x44, 0x7f, 0xc0, 0x30, 0x73, 0x2f, 0xf8, 0x10, 0xa4, 0x62, 0x8a, 0x37, 0x67, + 0xa4, 0x78, 0x32, 0x19, 0xd0, 0xac, 0x9f, 0x04, 0xcd, 0x39, 0xa2, 0x47, 0x13, 0xa1, 0x59, 0xbf, + 0x89, 0xca, 0x5b, 0xfd, 0xe6, 0x51, 0x94, 0xfb, 0x54, 0xa8, 0x86, 0xbc, 0x53, 0x27, 0xc2, 0x94, + 0x22, 0x1d, 0x20, 0x0f, 0x80, 0xeb, 0x42, 0xa7, 0xb9, 0x51, 0x70, 0xaf, 0xa7, 0xd8, 0x2f, 0xb7, + 0x76, 0x56, 0xdf, 0x0a, 0x16, 0xe4, 0x32, 0xac, 0xb4, 0x8b, 0xfd, 0xad, 0xd4, 0xde, 0xce, 0x6d, + 0xdb, 0x48, 0xdf, 0x28, 0x73, 0x0f, 0x99, 0x24, 0x4a, 0xa7, 0xe9, 0xe8, 0x76, 0xec, 0x43, 0x0d, + 0xc5, 0x11, 0xaa, 0xb9, 0xa8, 0x9c, 0x4a, 0xf3, 0xee, 0x9c, 0x66, 0x09, 0xdc, 0x69, 0x3a, 0x35, + 0x71, 0x07, 0x1f, 0xb1, 0xe4, 0x94, 0xd8, 0xc3, 0x77, 0xc1, 0x92, 0x5e, 0x8a, 0x87, 0x33, 0x69, + 0xff, 0xbe, 0x61, 0x60, 0x3b, 0x98, 0x9a, 0xc2, 0x37, 0xde, 0xc3, 0x77, 0x61, 0x1b, 0xbe, 0xdd, + 0xeb, 0x34, 0x1c, 0xed, 0x3d, 0xda, 0x23, 0xe7, 0x4d, 0xde, 0x4f, 0x8f, 0x91, 0x7e, 0xbf, 0x99, + 0xf0, 0x3f, 0x66, 0xa4, 0x92, 0x96, 0x9d, 0x24, 0xed, 0x54, 0x8f, 0xa0, 0x31, 0x62, 0x57, 0x5e, + 0xf4, 0x67, 0x57, 0x88, 0x28, 0x24, 0xa6, 0xdf, 0x8a, 0xb9, 0x42, 0xa0, 0xca, 0x35, 0x56, 0x17, + 0x5e, 0x79, 0x06, 0x07, 0x59, 0x1f, 0xea, 0x4c, 0xfd, 0xe6, 0x20, 0xd9, 0xfb, 0x59, 0xf9, 0x8c, + 0x8b, 0xde, 0x37, 0x6b, 0xef, 0xb5, 0x37, 0xda, 0x19, 0x24, 0xf2, 0x03, 0xfb, 0xc5, 0xaa, 0x33, + 0x4e, 0x7b, 0x81, 0x82, 0x73, 0x9b, 0x25, 0x60, 0x69, 0xd7, 0x0b, 0x3e, 0x23, 0xb9, 0xc9, 0xe1, + 0x37, 0xe7, 0x81, 0x17, 0x25, 0x8b, 0x47, 0x9c, 0x39, 0x9b, 0xbb, 0xc9, 0x6f, 0xd1, 0x78, 0x32, + 0xc3, 0x03, 0x51, 0x7f, 0xf5, 0x1f, 0x2a, 0x20, 0xe0, 0x1a, 0x4f, 0xaa, 0x3e, 0x8e, 0xf6, 0x8f, + 0x24, 0x36, 0x3d, 0x22, 0x85, 0xed, 0x75, 0x52, 0x46, 0xe4, 0xca, 0x40, 0x99, 0x0b, 0x4a, 0x5e, + 0x60, 0xeb, 0x12, 0x5c, 0xa1, 0xc6, 0x93, 0xac, 0x6d, 0x39, 0x2d, 0xbd, 0x7a, 0x62, 0x5b, 0xcc, + 0xe3, 0x67, 0xd4, 0x15, 0xf0, 0xa0, 0x36, 0xb6, 0x2e, 0x5a, 0x87, 0x3d, 0xd7, 0xa5, 0xeb, 0xab, + 0x9d, 0x37, 0x7d, 0xbb, 0xc7, 0x9b, 0xb5, 0xf0, 0xa2, 0x72, 0xc4, 0x9b, 0xcb, 0xeb, 0xbb, 0x99, + 0xd7, 0xf6, 0x72, 0x6d, 0xb5, 0x8b, 0xd9, 0x5d, 0xb4, 0x6f, 0x9a, 0x95, 0x5a, 0x0f, 0xcd, 0xda, + 0x7a, 0x98, 0x3a, 0xa5, 0xd5, 0x28, 0xbf, 0x5b, 0xa5, 0xc0, 0x59, 0xcc, 0x51, 0x4d, 0xf3, 0xe6, + 0xa6, 0xea, 0xfc, 0xec, 0xf2, 0x05, 0x75, 0xef, 0xb0, 0x40, 0xf2, 0xe3, 0x7a, 0x69, 0xa2, 0xbd, + 0x93, 0x98, 0xba, 0x27, 0xd5, 0x56, 0x56, 0x4b, 0x96, 0x13, 0x17, 0x70, 0x1c, 0x52, 0x7b, 0x92, + 0xac, 0x4d, 0xf9, 0xfa, 0x6a, 0xfd, 0xae, 0x97, 0xb6, 0x40, 0x54, 0x16, 0xbb, 0xe3, 0x82, 0x97, + 0xd6, 0xf8, 0xee, 0xa8, 0x5b, 0x6e, 0x62, 0xeb, 0x96, 0xdc, 0xd5, 0xe3, 0xbf, 0x22, 0x7a, 0x7d, + 0x27, 0x97, 0xf2, 0x53, 0xaf, 0xa0, 0x64, 0x35, 0x9a, 0x9c, 0x1d, 0x35, 0xc8, 0x55, 0xce, 0x69, + 0x38, 0xf2, 0x12, 0xae, 0x89, 0x8c, 0xd5, 0x4e, 0x3f, 0xef, 0xb5, 0x0d, 0x49, 0xe5, 0x7d, 0xa4, + 0x83, 0x7f, 0x25, 0xba, 0x9b, 0xd7, 0x0c, 0x4f, 0xe6, 0x9a, 0xe1, 0xcc, 0xa4, 0x82, 0xbc, 0x66, + 0xc0, 0x85, 0xd5, 0xba, 0x87, 0x9e, 0xe7, 0x15, 0x00, 0xd4, 0x7e, 0xed, 0xb9, 0x1a, 0x20, 0x0c, + 0xd8, 0xfd, 0x3c, 0xf6, 0xc5, 0x8e, 0x6d, 0x14, 0xa9, 0x9b, 0xb5, 0x93, 0xc6, 0xa8, 0x45, 0xa5, + 0x64, 0xcf, 0xf3, 0xf7, 0xdb, 0x3d, 0x0b, 0xa8, 0x87, 0xc4, 0x2d, 0xd0, 0x49, 0x01, 0x59, 0x1a, + 0x0a, 0x7e, 0x94, 0x64, 0x85, 0x45, 0x5d, 0xab, 0x75, 0xbb, 0xba, 0x9a, 0xf2, 0xd2, 0x5f, 0xb4, + 0x15, 0x53, 0x7f, 0xe0, 0x28, 0x9d, 0xe3, 0xfc, 0xae, 0xcf, 0xd7, 0xa9, 0x0c, 0x1c, 0x1e, 0x3c, + 0x7c, 0x1e, 0xc7, 0xd1, 0x84, 0xd0, 0x3d, 0xa2, 0x72, 0x17, 0x39, 0x29, 0x18, 0xef, 0x49, 0x96, + 0x49, 0x9a, 0x06, 0xbf, 0x59, 0x40, 0xe4, 0x57, 0x54, 0x6f, 0x99, 0xd0, 0x1f, 0x42, 0x8e, 0x3c, + 0xd5, 0xbf, 0xdf, 0x39, 0x8b, 0x43, 0xca, 0xa1, 0xfa, 0xcd, 0xcc, 0x33, 0xb5, 0x2a, 0x87, 0xf0, + 0x8b, 0xbc, 0xf4, 0x17, 0xbf, 0xc2, 0xdc, 0x6d, 0x4d, 0xf2, 0x92, 0x0c, 0xbd, 0x32, 0x93, 0xf8, + 0x96, 0xd7, 0xc9, 0x22, 0x82, 0xac, 0xaa, 0xed, 0xc7, 0xa9, 0x2a, 0xa4, 0x25, 0x55, 0x03, 0x2d, + 0x95, 0x96, 0xee, 0x09, 0xbf, 0x51, 0x61, 0xc3, 0xeb, 0x3f, 0x30, 0x25, 0x2f, 0x14, 0xe7, 0x18, + 0x82, 0x07, 0xc1, 0x39, 0x93, 0xd6, 0x17, 0x62, 0x49, 0xc7, 0xd3, 0x4a, 0x71, 0xff, 0x78, 0xcd, + 0xcd, 0xe5, 0x9d, 0x68, 0x33, 0x79, 0x02, 0x57, 0xf9, 0x2a, 0x0d, 0x9b, 0x72, 0xc5, 0x1a, 0xe5, + 0x21, 0xc9, 0xe7, 0x0d, 0xd9, 0x16, 0xd8, 0xac, 0xe5, 0xf8, 0xdd, 0x33, 0x42, 0xf2, 0x16, 0xef, + 0xe9, 0xd4, 0x4e, 0x37, 0xaa, 0xbd, 0x3b, 0xcf, 0xfa, 0x2f, 0x0d, 0x1b, 0xa2, 0x05, 0xe2, 0xad, + 0x96, 0x7e, 0xd6, 0xc8, 0xe5, 0xfc, 0x06, 0x29, 0xec, 0x21, 0xa6, 0x2d, 0x9c, 0x7a, 0xb1, 0x2a, + 0xb5, 0x22, 0xda, 0x26, 0xe7, 0x8f, 0x37, 0x79, 0x68, 0xef, 0xea, 0xc7, 0x02, 0xef, 0x89, 0x4e, + 0x58, 0x90, 0x4b, 0x91, 0x44, 0x14, 0x5d, 0x33, 0xd1, 0xfe, 0x00, 0xae, 0x0b, 0x91, 0x17, 0x94, + 0x24, 0xe9, 0xef, 0xe0, 0xaa, 0x10, 0x5c, 0xf8, 0xbe, 0x72, 0x8e, 0xf2, 0xfd, 0xdb, 0x60, 0xd3, + 0xa9, 0x9a, 0xf7, 0x95, 0x61, 0xd2, 0x40, 0xb9, 0xf5, 0x05, 0x28, 0xdc, 0x02, 0x6d, 0x97, 0x8f, + 0x3c, 0x26, 0xd5, 0xa0, 0x0c, 0xc6, 0x32, 0x09, 0x8e, 0xf7, 0xfb, 0x13, 0xf4, 0x17, 0x5f, 0x50, + 0x2e, 0xf7, 0x01, 0xa6, 0x9e, 0x9f, 0x94, 0x7a, 0x85, 0x53, 0x3f, 0x98, 0x94, 0x7a, 0x95, 0xb4, + 0x2a, 0xe1, 0xab, 0xd7, 0x3d, 0xf7, 0x13, 0xf3, 0x71, 0x6f, 0xfc, 0x0a, 0x51, 0x65, 0x35, 0xb2, + 0xae, 0xf9, 0x3a, 0xad, 0xc5, 0x6f, 0xed, 0xd5, 0xdf, 0x7e, 0x98, 0x5a, 0xfb, 0xd2, 0xe0, 0xd2, + 0x53, 0x92, 0x4e, 0x9c, 0x8f, 0x11, 0xcd, 0x34, 0x01, 0x51, 0xd4, 0x6f, 0xa6, 0x78, 0x97, 0x00, + 0x72, 0x2d, 0x94, 0x92, 0xe6, 0x66, 0x90, 0x4b, 0xb7, 0xa8, 0x34, 0xb6, 0x99, 0xf6, 0x68, 0x55, + 0xc8, 0x11, 0xf7, 0x44, 0xd0, 0xdb, 0xf3, 0xe9, 0x3a, 0xde, 0xe9, 0xb0, 0x44, 0x4b, 0x52, 0xab, + 0x98, 0x0a, 0xd5, 0x73, 0x2e, 0x81, 0x39, 0xa4, 0x33, 0x93, 0x86, 0x34, 0x5b, 0xda, 0xc2, 0x78, + 0x85, 0x8a, 0x65, 0x98, 0x3e, 0x9f, 0x75, 0x56, 0xeb, 0x37, 0xa9, 0x32, 0xe2, 0x34, 0x55, 0x27, + 0xa3, 0xb0, 0xe4, 0xd1, 0xd4, 0xe8, 0xa8, 0x6b, 0x1e, 0x53, 0x68, 0xb3, 0x90, 0xd8, 0x84, 0xdf, + 0x35, 0x96, 0xda, 0x78, 0xe7, 0xd5, 0x29, 0x76, 0x5d, 0x27, 0x9e, 0xa4, 0x98, 0x9c, 0x42, 0xa6, + 0x6e, 0xf4, 0x4e, 0x9b, 0xff, 0x21, 0xe4, 0x7b, 0x69, 0x9f, 0x3a, 0x24, 0x4e, 0x72, 0x46, 0x8b, + 0x54, 0xaa, 0x48, 0x5a, 0x2b, 0x94, 0x0a, 0x2c, 0x11, 0xeb, 0x53, 0x3b, 0x71, 0xa5, 0xaa, 0x4c, + 0x56, 0xe0, 0x9d, 0x46, 0x36, 0x76, 0x99, 0xbb, 0x7a, 0x7f, 0xa8, 0x4b, 0x9d, 0xf5, 0xa0, 0x5c, + 0xa6, 0x7a, 0x38, 0xfa, 0xae, 0x76, 0xa6, 0x6e, 0x7f, 0x00, 0x0c, 0x2f, 0x9d, 0x03, 0x83, 0xd0, + 0x74, 0xe2, 0x88, 0x0c, 0x14, 0x05, 0xc8, 0x81, 0xad, 0x74, 0xa1, 0x84, 0xe0, 0xb1, 0x7b, 0xa1, + 0x8c, 0x69, 0x46, 0xe8, 0x2d, 0xd2, 0x22, 0xd8, 0xe7, 0x0c, 0xbf, 0xfd, 0xfb, 0x3e, 0x70, 0xe6, + 0x1c, 0x7d, 0x11, 0x7c, 0xec, 0xa5, 0xc9, 0xbb, 0xeb, 0x51, 0x94, 0xd9, 0x1f, 0xf7, 0x55, 0xc1, + 0x94, 0x81, 0x2e, 0xbc, 0xeb, 0xf6, 0xcd, 0xee, 0xe3, 0xd8, 0x3d, 0xba, 0x95, 0xba, 0x22, 0x5d, + 0x0e, 0x5c, 0x81, 0x93, 0xf0, 0x34, 0x94, 0x82, 0x05, 0xf1, 0xe5, 0xdf, 0x0f, 0x5f, 0x64, 0x7c, + 0x69, 0xd1, 0xd6, 0x5f, 0x11, 0xf7, 0xfd, 0xce, 0x6a, 0x70, 0xdc, 0xe9, 0x07, 0x27, 0xad, 0x88, + 0x38, 0x0f, 0x83, 0x92, 0x5e, 0x9c, 0x6e, 0xb6, 0xe9, 0x76, 0x10, 0x7f, 0x53, 0xff, 0xbb, 0x47, + 0x8c, 0xdd, 0xc8, 0x85, 0x86, 0x46, 0xfa, 0xa4, 0x00, 0xad, 0xf1, 0xd5, 0x1f, 0x9b, 0x74, 0xa2, + 0xee, 0x5f, 0xbc, 0xba, 0x14, 0x74, 0x79, 0x33, 0x16, 0x20, 0x7d, 0xa3, 0x37, 0xb6, 0xb4, 0xdd, + 0x02, 0xf2, 0x03, 0x9c, 0x97, 0x24, 0xa5, 0x80, 0x8f, 0xfc, 0x0b, 0x5a, 0x2c, 0xf3, 0xf0, 0x3b, + 0xd2, 0xed, 0x05, 0x89, 0xf1, 0x3c, 0xa3, 0x2d, 0x33, 0x68, 0x87, 0xda, 0xca, 0x78, 0x3e, 0x39, + 0xd5, 0xc6, 0x78, 0x3e, 0x39, 0xb5, 0x10, 0x53, 0x87, 0xaf, 0x49, 0xb5, 0xf0, 0xb9, 0xe1, 0xe4, + 0x54, 0xa4, 0x76, 0x99, 0x67, 0x56, 0x9c, 0x66, 0x42, 0x29, 0x6b, 0x02, 0x5f, 0x43, 0x5c, 0xc0, + 0x3b, 0x43, 0xd8, 0x62, 0xeb, 0x84, 0xde, 0x95, 0x61, 0xdf, 0x0c, 0x52, 0xdd, 0xe4, 0xbe, 0x51, + 0x3e, 0xec, 0x99, 0x81, 0x7a, 0x66, 0xb1, 0x52, 0xbf, 0xa4, 0x69, 0x91, 0x44, 0xdb, 0xf8, 0xbe, + 0x84, 0xa3, 0x8b, 0xa3, 0x4a, 0x99, 0xd5, 0xd8, 0x1a, 0x5e, 0xb0, 0xb0, 0xf6, 0x0c, 0x9d, 0x22, + 0x4c, 0x19, 0xe8, 0x59, 0x36, 0x27, 0xb5, 0x6f, 0x31, 0xf1, 0x2c, 0xcb, 0x8d, 0x92, 0x93, 0x97, + 0xc2, 0xf3, 0xf1, 0x89, 0xa3, 0x86, 0x55, 0x57, 0x10, 0x4b, 0xaa, 0xa4, 0x6d, 0xac, 0xc7, 0x44, + 0xb1, 0x3c, 0x8d, 0xf1, 0xef, 0x09, 0x3e, 0x8e, 0x22, 0x61, 0x20, 0x05, 0x3d, 0x41, 0x14, 0x34, + 0x43, 0xc7, 0x97, 0x35, 0x67, 0xbc, 0xd6, 0xeb, 0x94, 0x0f, 0x70, 0xcc, 0x6e, 0xdd, 0x81, 0x25, + 0x45, 0x8d, 0x6d, 0x46, 0x5c, 0x5f, 0xb6, 0x89, 0x5d, 0x68, 0xda, 0x49, 0x74, 0x22, 0xc7, 0x6a, + 0xcf, 0xfa, 0x76, 0x17, 0x69, 0x10, 0xbe, 0xf5, 0x7a, 0x58, 0x48, 0x22, 0x8f, 0xfc, 0xee, 0xd1, + 0xea, 0xcb, 0x15, 0x03, 0x4e, 0x93, 0xca, 0xe7, 0x9d, 0x4c, 0xf7, 0xdd, 0x43, 0x7c, 0x5e, 0x3e, + 0xf2, 0x79, 0x27, 0x69, 0x6c, 0x2d, 0x2e, 0x95, 0xd7, 0xdb, 0xaa, 0xf2, 0x7a, 0x27, 0x05, 0xaf, + 0x67, 0x87, 0xfb, 0xba, 0x9c, 0x5d, 0x94, 0xa3, 0xb4, 0x53, 0x79, 0xf3, 0xad, 0x73, 0xcc, 0x9d, + 0x9a, 0xe3, 0x5f, 0xac, 0x85, 0x97, 0x5e, 0x59, 0x16, 0x61, 0x28, 0x98, 0x26, 0xb6, 0x31, 0x9a, + 0x2f, 0x97, 0x66, 0xc8, 0xfe, 0x6f, 0xfe, 0xe2, 0x95, 0x98, 0x33, 0x82, 0x65, 0xd8, 0xa7, 0x13, + 0xfe, 0x6b, 0xbb, 0x38, 0x12, 0x8e, 0x1e, 0xeb, 0x9e, 0x8d, 0xb8, 0xfa, 0x10, 0x22, 0xa6, 0x78, + 0x93, 0x6c, 0xa0, 0x52, 0x79, 0xae, 0xef, 0xd7, 0x22, 0xd3, 0x68, 0x5a, 0x0c, 0x4e, 0x0d, 0x2e, + 0xb3, 0xc0, 0xe6, 0x9e, 0x05, 0x85, 0xa4, 0xdb, 0x1c, 0xe8, 0xc7, 0x91, 0x58, 0x8b, 0x33, 0x25, + 0x8c, 0x3c, 0x9d, 0x61, 0xa2, 0xcc, 0x98, 0xe6, 0x3a, 0x75, 0x3e, 0xe6, 0xb5, 0x56, 0x40, 0xa1, + 0xd0, 0x9a, 0x1a, 0xdf, 0x28, 0x74, 0x26, 0x50, 0xee, 0xb4, 0x21, 0x7d, 0x35, 0x30, 0x27, 0x93, + 0x9f, 0x92, 0x22, 0x32, 0xf9, 0xd5, 0x4f, 0x84, 0xd4, 0x23, 0xd5, 0x89, 0xd3, 0x1c, 0x4f, 0x15, + 0x24, 0x2d, 0x66, 0xda, 0x03, 0xb6, 0xfb, 0xdf, 0x1a, 0x24, 0xbe, 0xf4, 0x37, 0xaf, 0x4b, 0xe5, + 0x5b, 0x48, 0x6e, 0xf8, 0x89, 0xcb, 0x9c, 0x92, 0xe9, 0xe6, 0xd5, 0xf7, 0x7b, 0xae, 0xe5, 0x3e, + 0xb6, 0x79, 0xb3, 0xf9, 0x84, 0x53, 0x95, 0x6d, 0xe8, 0x4c, 0x40, 0x5d, 0x03, 0x9d, 0xec, 0xff, + 0xdc, 0x1b, 0xb5, 0xe2, 0x5a, 0x9e, 0xd4, 0xe8, 0xef, 0xed, 0x3c, 0x37, 0x02, 0xfe, 0xc0, 0x26, + 0x55, 0xe6, 0x6d, 0x76, 0x2d, 0x96, 0x0c, 0xfd, 0xeb, 0x8f, 0x26, 0xae, 0xcd, 0xa5, 0xc9, 0xa2, + 0xcc, 0x21, 0xaf, 0xd4, 0x28, 0x02, 0x6b, 0x7f, 0xf7, 0xb3, 0x2e, 0x4a, 0x93, 0x14, 0xcc, 0x58, + 0xc3, 0xe8, 0x6c, 0xe9, 0x39, 0x3a, 0x5b, 0x6a, 0x02, 0xa5, 0x22, 0xa0, 0xae, 0xf3, 0x04, 0xf9, + 0x14, 0x56, 0x92, 0x8e, 0xc2, 0x48, 0xa6, 0xd5, 0x89, 0x33, 0x43, 0xbe, 0x28, 0x8e, 0x88, 0xbd, + 0x15, 0x5e, 0xd3, 0x79, 0x2d, 0x18, 0xf3, 0x3b, 0x80, 0xca, 0xe6, 0xd3, 0x61, 0xd6, 0xfc, 0x27, + 0x4c, 0xe2, 0x7e, 0x66, 0x4d, 0xda, 0xf5, 0x06, 0x5d, 0xf3, 0xb5, 0x67, 0xcf, 0x3c, 0x8f, 0x0d, + 0x5a, 0xfa, 0xe1, 0x24, 0xcd, 0x65, 0xda, 0x09, 0x39, 0x7c, 0x01, 0xf1, 0x0c, 0x29, 0x4f, 0xcd, + 0x79, 0xb2, 0x56, 0xc8, 0xa0, 0x47, 0x2b, 0x32, 0xf7, 0x95, 0x32, 0xca, 0x68, 0x77, 0x22, 0x36, + 0xce, 0xa8, 0x81, 0x8e, 0x8c, 0x1c, 0xa9, 0x5d, 0x73, 0x3b, 0xe6, 0x98, 0x31, 0x1f, 0x3a, 0x91, + 0x77, 0x94, 0x3c, 0x25, 0x10, 0x5c, 0x33, 0x74, 0x9c, 0xed, 0xb7, 0x0f, 0x0f, 0x85, 0x4b, 0x68, + 0xe7, 0x1a, 0xf3, 0x9e, 0x73, 0x89, 0x3d, 0x6b, 0x53, 0x28, 0xbe, 0x45, 0x21, 0xe9, 0xb6, 0x61, + 0x83, 0xc7, 0xef, 0xcd, 0x0e, 0xad, 0x5e, 0xfe, 0x2b, 0xf1, 0x34, 0xfc, 0xf8, 0x0c, 0x3f, 0x24, + 0x32, 0x4a, 0x7f, 0x7f, 0x42, 0xfd, 0xbd, 0x19, 0x6f, 0xce, 0x4f, 0x78, 0xd3, 0x97, 0xf1, 0xe6, + 0x83, 0x09, 0x6f, 0xd6, 0xd3, 0xfe, 0x6e, 0xcc, 0x3d, 0xa1, 0xf7, 0x47, 0x26, 0xf5, 0xbe, 0xff, + 0x06, 0xbd, 0xff, 0xf7, 0xeb, 0xae, 0x00, 0xa7, 0x70, 0x05, 0x38, 0x2d, 0xeb, 0xdb, 0x9b, 0x78, + 0xa7, 0x53, 0xd3, 0x08, 0xfa, 0x2e, 0xd9, 0x52, 0xb9, 0xbc, 0x50, 0x58, 0xe0, 0x85, 0xdb, 0x59, + 0xd3, 0x99, 0xf7, 0xcc, 0xca, 0x81, 0xa2, 0xf3, 0xdc, 0xaf, 0x5f, 0xfd, 0x55, 0x8a, 0xda, 0xe6, + 0x08, 0x8a, 0xa8, 0x03, 0xc4, 0xa9, 0x5f, 0x36, 0xc8, 0x4e, 0xd6, 0x25, 0xcb, 0xa6, 0x5d, 0x75, + 0xa1, 0x63, 0x66, 0xd7, 0x1f, 0xe9, 0xc6, 0xff, 0x5d, 0x47, 0xba, 0x46, 0xba, 0x46, 0x12, 0xb4, + 0x8f, 0x3f, 0x45, 0x69, 0xd8, 0xe0, 0xcb, 0xe9, 0x0f, 0xee, 0xf2, 0x2f, 0x3d, 0xc2, 0x74, 0x4f, + 0xaf, 0xe9, 0xfd, 0xd7, 0xfd, 0xd6, 0xcc, 0xb1, 0x9b, 0x71, 0xc5, 0xbe, 0xa2, 0xee, 0x92, 0xb1, + 0xac, 0x4f, 0x7a, 0x6d, 0x6d, 0xd6, 0x23, 0x1b, 0x3c, 0x2d, 0x82, 0x53, 0x62, 0x59, 0xed, 0xe9, + 0x05, 0x3c, 0x6f, 0xaf, 0xe1, 0x9a, 0x5e, 0xa4, 0xbd, 0xc2, 0x6b, 0xb8, 0x26, 0xb6, 0x05, 0xb9, + 0x86, 0x6b, 0x7a, 0x11, 0x0a, 0x05, 0xc7, 0x42, 0x7c, 0x9a, 0x34, 0xf5, 0x5b, 0x69, 0xb9, 0xbe, + 0x94, 0xf7, 0x64, 0x89, 0xeb, 0x30, 0xd7, 0x6f, 0x4e, 0xc9, 0xc6, 0xcd, 0xa9, 0xfd, 0x58, 0x4a, + 0xff, 0x81, 0x23, 0x65, 0x3f, 0xab, 0xac, 0x91, 0x1b, 0x90, 0xb7, 0xfb, 0x84, 0x78, 0xbb, 0x54, + 0x0b, 0xfe, 0x78, 0x6d, 0x0b, 0xa8, 0xa4, 0xbb, 0xfb, 0x26, 0xd6, 0x9f, 0x51, 0x53, 0xda, 0x02, + 0x45, 0x93, 0xd9, 0x59, 0x4a, 0x4e, 0xe9, 0xf9, 0x98, 0xc9, 0x4f, 0x6d, 0xe0, 0xc9, 0xdb, 0x9b, + 0xa1, 0x13, 0x0c, 0xf8, 0x7b, 0x86, 0xfd, 0x8f, 0xbb, 0x75, 0xbd, 0x76, 0x37, 0x5c, 0xd9, 0x48, + 0x5e, 0x7a, 0xcc, 0x98, 0x7a, 0x19, 0x67, 0x94, 0x1b, 0xf1, 0xd3, 0x4c, 0x76, 0x38, 0xe2, 0xf4, + 0x8c, 0xbd, 0x6a, 0xf0, 0x89, 0xd1, 0xed, 0x28, 0xc3, 0x86, 0x9a, 0x21, 0x91, 0xe1, 0x87, 0x28, + 0x47, 0x72, 0xeb, 0x0c, 0x09, 0xfc, 0x82, 0xce, 0x23, 0x6e, 0xf7, 0xb3, 0x65, 0xb3, 0xff, 0x4c, + 0x1f, 0xde, 0x15, 0xc6, 0x75, 0xb7, 0x93, 0xdd, 0x1d, 0x08, 0x3d, 0xa0, 0x09, 0x56, 0x2a, 0x6e, + 0xb8, 0x10, 0xc6, 0x9e, 0xc6, 0x2a, 0xec, 0x10, 0xe9, 0x9a, 0x51, 0x8d, 0x4f, 0x89, 0x68, 0xd3, + 0xa4, 0x92, 0x17, 0xab, 0x3b, 0xa9, 0x49, 0xe7, 0x5e, 0xd5, 0x12, 0x06, 0xef, 0xed, 0x62, 0xb7, + 0xbf, 0x82, 0x34, 0xc0, 0x16, 0xd1, 0xde, 0xe4, 0x85, 0xa8, 0x87, 0xbe, 0x13, 0x6f, 0x1d, 0x09, + 0xe4, 0xc7, 0x20, 0x66, 0xd5, 0x72, 0xbb, 0x36, 0xc6, 0x0d, 0xc8, 0x69, 0x1f, 0x44, 0x0e, 0xdd, + 0xd8, 0xf6, 0x19, 0xd2, 0xb5, 0x83, 0xa4, 0x33, 0x29, 0x34, 0x04, 0x2a, 0xaa, 0x68, 0x6d, 0x75, + 0x10, 0x96, 0x84, 0x17, 0x9c, 0x87, 0x26, 0xb1, 0x77, 0x23, 0x5b, 0xf9, 0x14, 0x8f, 0xf4, 0xd0, + 0x37, 0x35, 0x3e, 0x4a, 0xd0, 0xfc, 0xd7, 0x37, 0x62, 0x46, 0xb2, 0x68, 0x8b, 0x9e, 0x75, 0xb8, + 0x75, 0x2d, 0x02, 0x6f, 0xd4, 0xbc, 0x51, 0x55, 0x9f, 0xfd, 0x07, 0xa9, 0x33, 0xf7, 0x46, 0xf5, + 0xc4, 0xfd, 0x67, 0xea, 0x1b, 0xd6, 0xfa, 0xed, 0x80, 0x76, 0x90, 0x0b, 0xec, 0xbe, 0x10, 0x34, + 0xf6, 0x86, 0xbb, 0x62, 0xe4, 0x2b, 0x56, 0x27, 0xde, 0x46, 0xba, 0x79, 0x47, 0xc0, 0xad, 0x4a, + 0x78, 0x28, 0x65, 0xee, 0xe8, 0x5e, 0x7a, 0x54, 0xf0, 0x50, 0x0e, 0xe4, 0x10, 0x34, 0xcb, 0xb4, + 0xe8, 0xe6, 0xba, 0xdf, 0x56, 0x15, 0x32, 0x37, 0x9a, 0xc2, 0x6d, 0xe2, 0xf3, 0x18, 0x2e, 0x66, + 0xcd, 0xca, 0x4c, 0x4a, 0x51, 0x3d, 0xfd, 0x33, 0x28, 0x17, 0x9b, 0xed, 0xc8, 0xe9, 0xd1, 0xf5, + 0xb6, 0x66, 0xb8, 0x0a, 0xa6, 0xd4, 0xa9, 0x89, 0xc0, 0x94, 0x22, 0x5c, 0x49, 0xaf, 0xf2, 0x93, + 0xb0, 0x43, 0x2b, 0xe4, 0xef, 0x96, 0x8b, 0xf6, 0x67, 0xce, 0x17, 0x6a, 0x55, 0x1c, 0x65, 0x14, + 0xba, 0xb2, 0x1e, 0xb6, 0xb8, 0x9a, 0x38, 0x7d, 0x08, 0x65, 0x84, 0x20, 0x9d, 0xa5, 0xaa, 0xa9, + 0x96, 0xb8, 0x51, 0xce, 0xa1, 0xf9, 0xca, 0xb6, 0x60, 0x7e, 0xd2, 0x99, 0xa7, 0x33, 0xdf, 0x05, + 0xef, 0x2b, 0x6f, 0x52, 0x8e, 0x7f, 0x7d, 0xa5, 0xe9, 0x34, 0x62, 0xfa, 0x21, 0xc2, 0xf4, 0xb8, + 0x42, 0xba, 0x13, 0x5a, 0x7b, 0xfe, 0x73, 0x7d, 0x29, 0x69, 0x73, 0x55, 0x2b, 0xff, 0x8e, 0x63, + 0x55, 0x54, 0xda, 0x09, 0x77, 0x3c, 0x39, 0x54, 0xfd, 0x7b, 0x13, 0xdb, 0xfd, 0x0c, 0x27, 0x78, + 0x27, 0x7f, 0xf0, 0xb6, 0x1d, 0x7d, 0x28, 0x1a, 0x44, 0xaa, 0xc9, 0x7e, 0x92, 0x4e, 0x39, 0x6a, + 0xce, 0x29, 0xef, 0xbd, 0x34, 0xd8, 0x74, 0x84, 0x28, 0xa9, 0x76, 0xde, 0x71, 0xdb, 0x36, 0x5d, + 0x0b, 0xcf, 0x9f, 0xf7, 0x33, 0xb5, 0xc0, 0x32, 0xe6, 0xf5, 0xc4, 0x54, 0x6d, 0x5e, 0x4f, 0x4c, + 0x2d, 0x54, 0xa5, 0x21, 0xf7, 0x04, 0x69, 0x48, 0xd3, 0xeb, 0x2a, 0x13, 0xf2, 0x10, 0x7e, 0x77, + 0x25, 0xf3, 0x3b, 0x92, 0x69, 0x30, 0xed, 0x0f, 0xd7, 0x49, 0xfb, 0x64, 0x52, 0xf9, 0x92, 0x3a, + 0xc3, 0x27, 0xa6, 0x3a, 0x98, 0x9a, 0x88, 0x19, 0xae, 0xa5, 0xb9, 0x44, 0xda, 0xdf, 0xf4, 0x4d, + 0xfc, 0x9a, 0xd2, 0xfe, 0xba, 0xef, 0xda, 0x6f, 0xff, 0xea, 0x3a, 0xdf, 0x7e, 0xbb, 0x2f, 0xb3, + 0x35, 0x13, 0x4f, 0x87, 0xb4, 0x94, 0x6f, 0x5e, 0x93, 0x92, 0xb6, 0x65, 0x8a, 0xeb, 0xe8, 0xfc, + 0x37, 0x75, 0xca, 0xa4, 0x62, 0x8f, 0xaa, 0xf1, 0xa1, 0x3e, 0xff, 0x8e, 0xa2, 0x6d, 0x49, 0x81, + 0x1f, 0xa6, 0x70, 0x8a, 0xe5, 0x32, 0xbe, 0xdb, 0x93, 0xdc, 0xac, 0xa5, 0xb0, 0x54, 0x26, 0x4d, + 0xa6, 0x4e, 0x02, 0xa7, 0xd9, 0x0b, 0x39, 0xd3, 0x6a, 0xa4, 0x11, 0x3e, 0x94, 0x63, 0xca, 0xd4, + 0xaf, 0x52, 0xe7, 0x96, 0x6e, 0xed, 0xdc, 0x32, 0x5f, 0x60, 0xbd, 0xa0, 0x06, 0x99, 0x35, 0xaa, + 0x3a, 0x55, 0x36, 0xa1, 0xb1, 0xa6, 0xed, 0x8a, 0x35, 0x6e, 0x20, 0xef, 0x58, 0x4d, 0x39, 0xf1, + 0x0e, 0x77, 0x22, 0x00, 0xda, 0x0e, 0xc9, 0x75, 0xc7, 0x56, 0x95, 0x74, 0xdb, 0x1c, 0x69, 0xec, + 0xbf, 0x0e, 0x26, 0x39, 0xae, 0x8b, 0x49, 0xae, 0xeb, 0x62, 0x92, 0xe7, 0xba, 0xe3, 0xef, 0xb8, + 0xee, 0xf8, 0xbb, 0xae, 0x33, 0xfe, 0x9e, 0x6b, 0x21, 0x9f, 0xba, 0x4f, 0xda, 0x25, 0x3a, 0x31, + 0xd0, 0xec, 0x0d, 0x3b, 0x0d, 0x2a, 0xb5, 0xe7, 0x38, 0x94, 0x22, 0x8e, 0x88, 0x16, 0x71, 0x12, + 0xc0, 0x9b, 0x1b, 0xd7, 0x77, 0x3d, 0x07, 0x75, 0xb4, 0xa7, 0xd5, 0x06, 0x79, 0x2e, 0xa8, 0x46, + 0xca, 0x10, 0xb0, 0x54, 0x81, 0xee, 0x3f, 0xb7, 0x52, 0x94, 0x19, 0xcc, 0x27, 0xf8, 0xaf, 0x0b, + 0x64, 0x65, 0x44, 0x52, 0x41, 0xc9, 0x2c, 0xb0, 0x78, 0x66, 0x81, 0x55, 0x32, 0x0e, 0x3f, 0x84, + 0x3c, 0xeb, 0x95, 0xa5, 0x00, 0x5b, 0x38, 0x3e, 0x72, 0x2b, 0x14, 0x41, 0xa1, 0x13, 0xef, 0xa8, + 0xb5, 0x87, 0x87, 0xbc, 0xc6, 0x4c, 0x1b, 0x1a, 0xa4, 0xf8, 0x0e, 0xca, 0x75, 0x6b, 0x2b, 0xd8, + 0xc0, 0xa5, 0xad, 0x1b, 0x74, 0x72, 0x3e, 0xa7, 0x9d, 0xcf, 0x79, 0xa7, 0x04, 0x7e, 0x26, 0xec, + 0x57, 0x3c, 0x50, 0xa2, 0x73, 0xbb, 0xa1, 0xae, 0x83, 0x6c, 0x58, 0x93, 0xed, 0x80, 0xdc, 0xaa, + 0x1e, 0xd7, 0x7e, 0x83, 0x78, 0x7b, 0xb2, 0xeb, 0x37, 0x09, 0x2e, 0x67, 0x1e, 0x78, 0xf8, 0x5a, + 0x8b, 0x6b, 0xbd, 0x16, 0x2b, 0xb8, 0x9f, 0x34, 0x2a, 0x99, 0x57, 0xee, 0x43, 0x6a, 0x71, 0x0f, + 0xe9, 0xf4, 0xbf, 0xf9, 0x84, 0x72, 0xc1, 0x85, 0xe5, 0x14, 0x07, 0x95, 0xcb, 0xc5, 0xcd, 0x3a, + 0x50, 0xae, 0x38, 0xdc, 0x10, 0x22, 0x2b, 0xfb, 0xbf, 0x68, 0xa2, 0x53, 0xfe, 0xfa, 0x8d, 0xc8, + 0x4d, 0xf5, 0x92, 0xc6, 0x30, 0x3e, 0x19, 0xe9, 0x89, 0x76, 0x32, 0xe8, 0x1c, 0x42, 0x68, 0xdd, + 0xbf, 0xf9, 0x84, 0x6a, 0x83, 0xae, 0x59, 0xd2, 0xe9, 0xd8, 0xee, 0xe8, 0xa0, 0x7a, 0x6a, 0x5b, + 0x9a, 0xf6, 0x54, 0x48, 0xd1, 0x76, 0xe0, 0xc7, 0x92, 0x7f, 0x42, 0xa4, 0x77, 0xd2, 0x53, 0xed, + 0x24, 0x2d, 0xfd, 0x37, 0xcf, 0xc6, 0xc1, 0x1e, 0x9e, 0xe8, 0xab, 0x30, 0x7a, 0x0f, 0xc2, 0x39, + 0x7f, 0xb2, 0x75, 0x11, 0x7b, 0x4c, 0xf4, 0x7d, 0x71, 0x15, 0x7c, 0x11, 0x0c, 0x77, 0x76, 0xc2, + 0x34, 0x20, 0xfd, 0x0b, 0x57, 0x3c, 0x7f, 0x06, 0x69, 0xa9, 0xa6, 0xe2, 0x0f, 0x8f, 0x97, 0x66, + 0x48, 0x8f, 0xf5, 0x0d, 0x1b, 0x32, 0xbc, 0x18, 0xcc, 0x91, 0xc2, 0x19, 0x51, 0x98, 0x03, 0xe9, + 0x18, 0xcc, 0xc2, 0x02, 0x89, 0xe6, 0x14, 0x7b, 0xf5, 0x5f, 0xc5, 0x76, 0xef, 0xc8, 0xa1, 0xfc, + 0xae, 0xcf, 0xe9, 0x9f, 0xf7, 0x81, 0x32, 0xf0, 0xf6, 0x39, 0xa4, 0xd5, 0xdb, 0xc0, 0x1a, 0xd7, + 0x93, 0xc6, 0x07, 0x49, 0xd5, 0xf3, 0xdf, 0x57, 0xde, 0x7f, 0xe7, 0xa0, 0x1b, 0xd7, 0x8a, 0x5f, + 0x1f, 0x9c, 0xf1, 0xfd, 0x21, 0x00, 0x07, 0xa6, 0x9c, 0x9f, 0x90, 0xe2, 0x42, 0xba, 0xfd, 0x81, + 0xa6, 0xf7, 0x36, 0x23, 0xbe, 0x05, 0xc0, 0x83, 0x5f, 0xfa, 0x66, 0x34, 0xeb, 0x0c, 0x50, 0x86, + 0xe3, 0x5c, 0x15, 0xb5, 0x61, 0x2f, 0xa5, 0xc9, 0xbd, 0x3c, 0xd3, 0x17, 0x2b, 0xb3, 0xc3, 0x91, + 0x04, 0xc9, 0x88, 0xd5, 0xef, 0x83, 0x2e, 0xa0, 0x93, 0xcd, 0xed, 0x60, 0xd5, 0xdd, 0xf2, 0x92, + 0x4b, 0xe7, 0x82, 0x88, 0xce, 0x3a, 0x7d, 0xa7, 0x6e, 0xe9, 0xa5, 0xbc, 0x6e, 0xc4, 0xc9, 0xe9, + 0x01, 0x9f, 0x0d, 0xb0, 0x45, 0x55, 0x69, 0x8c, 0x66, 0xea, 0x70, 0x8a, 0x77, 0xfb, 0x50, 0x9e, + 0xc5, 0xde, 0xf8, 0xc3, 0xdb, 0xc0, 0x8f, 0x52, 0xe6, 0x4e, 0x8a, 0x1d, 0x45, 0x6b, 0x43, 0xcd, + 0x39, 0x2c, 0x13, 0x64, 0x33, 0x7e, 0x0f, 0x5f, 0xfd, 0x85, 0x0d, 0x6c, 0xb6, 0x08, 0xe4, 0x59, + 0x76, 0xc0, 0xd2, 0x4b, 0x22, 0xda, 0x56, 0xe0, 0xeb, 0x36, 0x5b, 0x5b, 0x8e, 0xd8, 0x51, 0x1f, + 0x8b, 0xd2, 0x28, 0xd9, 0x81, 0x2c, 0x78, 0x56, 0x9b, 0xd4, 0xb4, 0xc5, 0x2e, 0x7f, 0xea, 0x7d, + 0x0b, 0xe9, 0x8c, 0x46, 0x43, 0x6d, 0xb6, 0x23, 0x1b, 0xda, 0xd5, 0x5d, 0xf8, 0xb1, 0x10, 0xeb, + 0x20, 0x87, 0x27, 0xfb, 0x5c, 0x98, 0x59, 0x0d, 0xa6, 0x99, 0xcd, 0xe0, 0x00, 0x0b, 0xfe, 0xba, + 0xc0, 0x8a, 0xbf, 0x1e, 0xb0, 0xd9, 0xcd, 0xea, 0x57, 0xf7, 0x22, 0x6c, 0x1a, 0x66, 0xd4, 0x81, + 0x9f, 0x62, 0x43, 0xa0, 0xc4, 0xf2, 0x72, 0xe3, 0x06, 0xec, 0x95, 0x91, 0x6c, 0xa0, 0xa8, 0x67, + 0x4b, 0x48, 0x3b, 0x40, 0xe2, 0x31, 0xb2, 0x13, 0x3f, 0x44, 0x3a, 0x01, 0x76, 0x3d, 0x4a, 0x78, + 0xf4, 0xad, 0x9c, 0xba, 0x0b, 0xc4, 0x6f, 0xf6, 0xfa, 0x49, 0x0b, 0x30, 0x68, 0x90, 0x61, 0x6c, + 0x4d, 0xca, 0xaf, 0x01, 0xeb, 0x57, 0xc7, 0x8a, 0x10, 0xea, 0x0d, 0xa4, 0x91, 0x7d, 0x2b, 0x69, + 0x64, 0x93, 0xd6, 0x2d, 0x72, 0x57, 0x38, 0x33, 0xb6, 0x37, 0x6c, 0xc0, 0xda, 0xfd, 0xc4, 0xe5, + 0xf0, 0xa9, 0x97, 0x81, 0xb5, 0x9a, 0x85, 0xd6, 0x64, 0x21, 0xcd, 0x32, 0x6c, 0xcf, 0x19, 0x95, + 0x53, 0x28, 0x15, 0xcf, 0xe3, 0x4f, 0x31, 0x8d, 0x75, 0x2d, 0x40, 0xcc, 0xe7, 0x13, 0xa5, 0xac, + 0xf4, 0x89, 0x92, 0xc8, 0xa1, 0xf4, 0xf2, 0xac, 0x68, 0xc2, 0x3e, 0xc4, 0x44, 0x1f, 0x24, 0x3e, + 0x11, 0x52, 0xbd, 0x2d, 0x58, 0x58, 0x1b, 0x93, 0x6c, 0xa8, 0x96, 0x60, 0x49, 0xc4, 0xd9, 0xd9, + 0x10, 0xe7, 0xaa, 0xd8, 0xfe, 0x2d, 0x97, 0x56, 0xfb, 0x34, 0x0e, 0xab, 0xfe, 0x16, 0x58, 0xd2, + 0xf3, 0xe9, 0xd9, 0xaa, 0x0c, 0xa9, 0x4d, 0xbc, 0x22, 0x63, 0x36, 0x41, 0x2c, 0x20, 0xd5, 0x90, + 0xcd, 0xa7, 0x3d, 0x60, 0x47, 0xf9, 0x7b, 0x82, 0xdf, 0x4f, 0x57, 0x5c, 0x3f, 0xc1, 0x7f, 0x81, + 0x36, 0x6b, 0x77, 0x67, 0xcc, 0x80, 0x16, 0x8a, 0x59, 0x4f, 0xd2, 0x88, 0x5f, 0xb3, 0xf5, 0x52, + 0x5b, 0x89, 0xd8, 0x63, 0x8d, 0x99, 0x6f, 0x34, 0x87, 0x54, 0x2f, 0x16, 0xb4, 0xbf, 0xb6, 0x1c, + 0x2c, 0x5f, 0xeb, 0x84, 0x7c, 0x28, 0xa4, 0x3b, 0x8e, 0xe6, 0xeb, 0xa2, 0xbb, 0xb8, 0x74, 0x1b, + 0xcd, 0x4e, 0xfe, 0x02, 0x4c, 0x5e, 0x8a, 0x46, 0x84, 0x23, 0x33, 0xfa, 0xb8, 0x56, 0xfe, 0x8c, + 0x4e, 0x48, 0x16, 0x39, 0xc1, 0x3d, 0x23, 0x0c, 0x4e, 0xf2, 0x13, 0x74, 0x47, 0x27, 0x58, 0xd9, + 0xda, 0xd0, 0x1a, 0x70, 0x01, 0x79, 0x72, 0xb4, 0xc6, 0xf3, 0x6f, 0x15, 0x14, 0xd2, 0x8a, 0x72, + 0x96, 0xed, 0xd6, 0xf9, 0xe0, 0x52, 0xdf, 0x7e, 0xd5, 0x4e, 0xde, 0x08, 0x53, 0xbe, 0x29, 0x28, + 0xd5, 0x82, 0xa9, 0xb4, 0xb7, 0x27, 0xda, 0x45, 0x54, 0x1d, 0xa9, 0xb7, 0x55, 0x8c, 0x7d, 0x18, + 0xdf, 0x45, 0x6d, 0x58, 0xfe, 0x17, 0x70, 0x4c, 0xb5, 0xf6, 0xe0, 0x5b, 0x6a, 0xcf, 0xa7, 0xe3, + 0xe2, 0xa4, 0x2e, 0x53, 0x87, 0x83, 0xce, 0xd2, 0x54, 0x6b, 0x72, 0x49, 0xdd, 0x2b, 0x28, 0x37, + 0xcd, 0xc2, 0x09, 0x32, 0x16, 0x73, 0xf1, 0x6e, 0x2a, 0xed, 0xab, 0xe4, 0xb1, 0x3e, 0x29, 0xe1, + 0xc3, 0xd2, 0x19, 0xe2, 0xb4, 0xca, 0x1a, 0xcb, 0x51, 0xbf, 0x2a, 0x6a, 0xd8, 0x30, 0x03, 0xcb, + 0x80, 0x90, 0x63, 0x96, 0x72, 0xcc, 0xd1, 0xaa, 0x9c, 0x10, 0x5e, 0x52, 0x54, 0x8c, 0xb4, 0x60, + 0x4b, 0x72, 0xb1, 0x25, 0x1a, 0x85, 0x46, 0x4c, 0xf8, 0xb4, 0x83, 0xd2, 0x11, 0x1b, 0xb6, 0x82, + 0xf4, 0xad, 0xc1, 0x20, 0x08, 0x4b, 0xf5, 0x8c, 0xfc, 0x37, 0x4f, 0xca, 0x1f, 0xca, 0xcc, 0x1f, + 0x4a, 0x04, 0x19, 0x83, 0x69, 0x34, 0x24, 0x17, 0x84, 0xd4, 0xb9, 0xa2, 0xee, 0x8a, 0xa5, 0xa9, + 0x31, 0xb6, 0xd3, 0x1c, 0x8b, 0x66, 0xf4, 0x00, 0x18, 0xbf, 0x7f, 0x82, 0xe9, 0x7c, 0x76, 0x1b, + 0xab, 0x42, 0xda, 0xaa, 0x87, 0x86, 0x3b, 0x29, 0x2e, 0x73, 0xe4, 0x4e, 0x8e, 0x45, 0xc6, 0xd4, + 0xf6, 0x9e, 0x19, 0x01, 0x8a, 0x73, 0xc7, 0x7d, 0xab, 0x64, 0xa9, 0xc1, 0xc8, 0xb2, 0x42, 0x9d, + 0x6a, 0x15, 0x3f, 0x88, 0x2b, 0x0b, 0xef, 0xd0, 0xa7, 0xe9, 0x2a, 0x5b, 0xe4, 0xe2, 0x5c, 0x9c, + 0xd8, 0x16, 0x35, 0xff, 0x52, 0xd2, 0x9e, 0x6a, 0xd8, 0x10, 0xcb, 0x51, 0x5b, 0xf0, 0x38, 0xdb, + 0xcf, 0x59, 0x52, 0xcf, 0x0f, 0xb2, 0xd7, 0x7a, 0xf3, 0xc0, 0x44, 0x8b, 0x50, 0x59, 0x94, 0x97, + 0x81, 0x73, 0x53, 0x05, 0xce, 0x05, 0x9e, 0xbb, 0x16, 0xcf, 0xae, 0x3a, 0x91, 0x1a, 0x5e, 0xe6, + 0x51, 0x25, 0xba, 0xae, 0xae, 0xad, 0x6d, 0x53, 0x4f, 0x6f, 0xc5, 0xb5, 0xee, 0xca, 0xc8, 0x36, + 0x48, 0xb2, 0x66, 0x9b, 0xba, 0x12, 0x9b, 0x13, 0x80, 0x32, 0xf4, 0xfd, 0x00, 0x8f, 0x07, 0x5e, + 0x44, 0x7a, 0xff, 0x22, 0xc2, 0x91, 0x56, 0x6f, 0x8a, 0xbf, 0x46, 0x18, 0xd9, 0x5f, 0xf3, 0x21, + 0x98, 0x54, 0xfc, 0xeb, 0x8f, 0x5b, 0x6e, 0x4d, 0xaf, 0x3a, 0xbc, 0xbe, 0xfe, 0x71, 0x4f, 0xc3, + 0x86, 0xb6, 0xb1, 0x1d, 0x89, 0x58, 0x3d, 0xbd, 0xc7, 0x11, 0x90, 0x48, 0x42, 0x69, 0xbf, 0x79, + 0x67, 0xd7, 0xb2, 0xaa, 0x01, 0x2c, 0x2f, 0x5a, 0x4e, 0x7a, 0xce, 0xb2, 0xdb, 0xec, 0x1f, 0x04, + 0x8e, 0x61, 0x3b, 0x7c, 0x67, 0xe7, 0xa0, 0x0e, 0x8e, 0x98, 0x1b, 0x06, 0xf5, 0x14, 0xfb, 0x76, + 0x50, 0x0f, 0x23, 0x8b, 0xfb, 0xcc, 0x77, 0x0f, 0x66, 0xf1, 0x53, 0x16, 0x1c, 0xb5, 0x87, 0x7c, + 0x96, 0xe8, 0x30, 0x49, 0x5f, 0x44, 0x49, 0x26, 0xca, 0x83, 0x9a, 0xce, 0xcc, 0x85, 0x5c, 0xd1, + 0x46, 0xec, 0x75, 0xe1, 0x84, 0xd6, 0x78, 0xf0, 0x7a, 0x4c, 0xe4, 0xf9, 0x60, 0x27, 0xef, 0x69, + 0x2a, 0x9a, 0x1c, 0x27, 0x51, 0x4c, 0x94, 0x42, 0xc7, 0x0a, 0x58, 0xec, 0xa8, 0x22, 0x09, 0x70, + 0xe1, 0xa8, 0xf2, 0xd3, 0x05, 0xa3, 0xa3, 0x23, 0x6c, 0xfd, 0xba, 0x51, 0x6e, 0x64, 0xbb, 0xda, + 0x7f, 0x8f, 0xd5, 0xe3, 0xdc, 0xbf, 0x10, 0x0d, 0xb1, 0xac, 0x38, 0x8d, 0x62, 0xd6, 0xf0, 0x98, + 0xe7, 0x73, 0xaa, 0x89, 0x75, 0xb6, 0x36, 0x35, 0x6c, 0x10, 0xd2, 0xa2, 0x5c, 0xc8, 0xa9, 0x42, + 0xc7, 0x72, 0x33, 0xff, 0xfe, 0x80, 0xa9, 0xdf, 0x67, 0xaf, 0x90, 0x04, 0x49, 0xb6, 0x8e, 0x07, + 0x1d, 0x91, 0xf0, 0xc6, 0xe8, 0xb3, 0xa9, 0x35, 0xea, 0x0a, 0x59, 0xd1, 0xb9, 0x84, 0x15, 0x1d, + 0x59, 0x8b, 0x56, 0x95, 0x78, 0xc1, 0xef, 0xf1, 0x42, 0x70, 0xfe, 0xe8, 0x27, 0xdb, 0xd7, 0xb8, + 0x8e, 0x6f, 0x10, 0x56, 0xbe, 0xac, 0x2f, 0x3a, 0xcc, 0xde, 0xc6, 0xa6, 0xb0, 0xa6, 0x98, 0xa1, + 0x7e, 0x13, 0x9f, 0x6b, 0xd8, 0x62, 0x6e, 0xb2, 0x1c, 0x7d, 0xf3, 0x63, 0x1c, 0x05, 0xe4, 0x02, + 0xbc, 0x35, 0xe0, 0xe1, 0x48, 0x8c, 0xec, 0x2d, 0xe8, 0xcd, 0x8f, 0x35, 0xae, 0x88, 0xb4, 0x21, + 0x63, 0x7b, 0x48, 0x27, 0xbe, 0x30, 0x99, 0xc9, 0x3d, 0xdf, 0xb0, 0x6e, 0xdf, 0xa4, 0xba, 0x8f, + 0xdc, 0xb8, 0xee, 0x43, 0x37, 0x5f, 0xaf, 0xee, 0x43, 0x37, 0xdf, 0xb8, 0x6e, 0x3e, 0x8b, 0x30, + 0x98, 0x5c, 0x38, 0xbf, 0xfe, 0xf2, 0x1e, 0x9e, 0xb1, 0xec, 0x05, 0xa5, 0x8a, 0xb4, 0x2c, 0x52, + 0xd2, 0xa9, 0xba, 0x53, 0x1b, 0xd8, 0xa6, 0x33, 0x04, 0xdc, 0xba, 0x75, 0xea, 0xba, 0x93, 0x27, + 0x76, 0x91, 0x9d, 0x96, 0x0e, 0xa5, 0xd6, 0x30, 0xd4, 0xb3, 0x46, 0x27, 0x1b, 0x03, 0x59, 0x1d, + 0x10, 0x98, 0xab, 0xf2, 0xf3, 0x7a, 0x61, 0xfb, 0x90, 0x61, 0xb7, 0x40, 0x5a, 0x25, 0xc5, 0xac, + 0x1d, 0x96, 0x61, 0x05, 0x16, 0x0d, 0x4d, 0x94, 0x55, 0x88, 0x9f, 0x65, 0x8d, 0x18, 0x5f, 0x78, + 0x6e, 0x6c, 0xb1, 0xb9, 0x97, 0x6c, 0xce, 0x62, 0x65, 0x22, 0x86, 0x25, 0x69, 0x3c, 0x68, 0xb5, + 0xc6, 0x95, 0x5a, 0x18, 0xec, 0xe1, 0xd8, 0x18, 0x09, 0xce, 0x83, 0x94, 0xbb, 0x9e, 0x1c, 0x7a, + 0x19, 0xe2, 0x45, 0xb5, 0x28, 0x23, 0xe8, 0xcc, 0x5a, 0x3b, 0x44, 0xeb, 0xa5, 0x94, 0x07, 0x8e, + 0x19, 0x9d, 0x81, 0xea, 0x20, 0x60, 0xbe, 0x26, 0x94, 0x24, 0xce, 0xce, 0xe8, 0x14, 0x56, 0x6d, + 0x5f, 0xa8, 0xd1, 0xad, 0x13, 0xb2, 0xee, 0xbc, 0xdf, 0x6f, 0x81, 0xb7, 0xdf, 0x60, 0xbe, 0xe9, + 0x8d, 0x5f, 0xbf, 0x32, 0xff, 0x23, 0x1b, 0xcc, 0x6c, 0x55, 0xaa, 0x74, 0xa6, 0xc6, 0xae, 0x78, + 0xd3, 0x40, 0x57, 0xf4, 0xec, 0xbc, 0xf7, 0x95, 0x73, 0x6f, 0xbf, 0xe1, 0xc2, 0xf7, 0xef, 0xbc, + 0x31, 0xa3, 0x7d, 0x37, 0xe8, 0x5a, 0x84, 0x3c, 0x2c, 0xf8, 0xaa, 0xf0, 0xc0, 0x16, 0x88, 0x12, + 0x47, 0x76, 0x19, 0x7b, 0x72, 0x37, 0xd2, 0xb0, 0x33, 0xda, 0x4e, 0x06, 0xe9, 0x71, 0x4c, 0x6c, + 0x93, 0xd3, 0xcf, 0x3e, 0x4b, 0x32, 0x64, 0x08, 0x6e, 0x23, 0xf6, 0x3e, 0x56, 0x2a, 0xa4, 0x78, + 0x2d, 0xef, 0xe9, 0x7b, 0xb1, 0xa4, 0xcb, 0x19, 0xbb, 0x24, 0xac, 0xaf, 0x18, 0xf6, 0xc7, 0x0c, + 0xf1, 0x08, 0xae, 0xe5, 0x0d, 0x5c, 0xcf, 0xb4, 0xd4, 0x0e, 0x8b, 0xb6, 0x3e, 0x18, 0x67, 0x34, + 0xc3, 0x55, 0x5d, 0xa2, 0xee, 0xb7, 0x55, 0x55, 0xe2, 0x74, 0x89, 0xa2, 0x26, 0x3b, 0x85, 0x87, + 0x9b, 0x32, 0x9c, 0x73, 0x15, 0xd1, 0x1c, 0x3e, 0xf7, 0x3a, 0x8d, 0xf0, 0xda, 0x9e, 0xd6, 0x8a, + 0xe3, 0x38, 0xc9, 0x0f, 0x5f, 0xd7, 0x92, 0x0b, 0x74, 0x7d, 0x33, 0x91, 0x1b, 0x85, 0xdc, 0xea, + 0x0b, 0x78, 0x17, 0xc2, 0xf6, 0x64, 0x89, 0xc8, 0x41, 0xdf, 0x18, 0xc0, 0xf4, 0x32, 0xe8, 0xc5, + 0xdf, 0x0a, 0xe8, 0x53, 0x4f, 0x3a, 0x2c, 0x82, 0x92, 0xcd, 0xf4, 0x23, 0xef, 0x8a, 0x29, 0x44, + 0xeb, 0xf0, 0xbe, 0x0e, 0x39, 0x2d, 0x0b, 0x84, 0x78, 0x3e, 0x4e, 0x1f, 0xd8, 0xd8, 0x64, 0xfa, + 0x46, 0x33, 0xd4, 0xeb, 0x7a, 0x65, 0x23, 0x5e, 0x0b, 0xd8, 0x2f, 0x8e, 0x87, 0x7c, 0x2d, 0xf3, + 0xce, 0xb7, 0xa0, 0x17, 0x1e, 0xcd, 0x2f, 0x33, 0xe2, 0xd0, 0x99, 0x50, 0x4b, 0x0a, 0x0a, 0x17, + 0x58, 0x57, 0x06, 0x60, 0xef, 0x02, 0x21, 0x25, 0x08, 0x5b, 0x0a, 0x2b, 0x69, 0xd7, 0xd8, 0xdd, + 0xe0, 0x8a, 0x74, 0x6d, 0xdc, 0x86, 0x33, 0x42, 0x47, 0xba, 0xc2, 0x8d, 0x1b, 0x4a, 0x48, 0x4f, + 0x21, 0xa5, 0xe7, 0x8e, 0x25, 0x5e, 0x21, 0x2f, 0x7e, 0x8b, 0xba, 0x86, 0xbb, 0x4e, 0xf7, 0xe1, + 0xd3, 0x55, 0xfc, 0x92, 0x4e, 0x5f, 0xcc, 0x6a, 0x5e, 0xab, 0xd0, 0x30, 0xc6, 0x37, 0xc9, 0x6b, + 0xcb, 0x15, 0x65, 0x36, 0x6c, 0x58, 0x84, 0xfd, 0xd1, 0x69, 0xed, 0x4c, 0xce, 0xb8, 0x3c, 0xb3, + 0x0e, 0xda, 0x1b, 0x36, 0x98, 0x3c, 0x38, 0x9f, 0xfe, 0x3d, 0x96, 0x2b, 0xf4, 0x2a, 0x92, 0x03, + 0x64, 0x0f, 0x2d, 0xeb, 0x03, 0x4f, 0x4a, 0xd3, 0x55, 0x2b, 0xa8, 0x77, 0xa3, 0xe6, 0x99, 0x2d, + 0x70, 0x15, 0x1a, 0xe5, 0xaa, 0x78, 0xcc, 0x99, 0x60, 0xaf, 0xd4, 0xa2, 0xa7, 0xc8, 0xc5, 0xc9, + 0x86, 0xb6, 0x98, 0xb3, 0x2b, 0x3d, 0x1a, 0xf6, 0x3a, 0x31, 0x1e, 0x69, 0x8b, 0xa5, 0x1f, 0x1d, + 0x94, 0x0d, 0xf4, 0x1d, 0xd9, 0xbd, 0x89, 0xd3, 0xa6, 0xf4, 0x5a, 0x96, 0x9a, 0x29, 0x2c, 0x5b, + 0x23, 0x2c, 0x05, 0xdc, 0x52, 0xb2, 0x31, 0xd5, 0x90, 0xc6, 0xa3, 0x19, 0x1d, 0xd8, 0xaf, 0x84, + 0xa8, 0xc9, 0x1e, 0x9e, 0x5c, 0x0f, 0x7d, 0x29, 0x56, 0x37, 0xaf, 0x9e, 0x2c, 0x9d, 0xed, 0xc8, + 0x85, 0x86, 0x57, 0x41, 0x5e, 0xac, 0x28, 0x3e, 0xb3, 0x16, 0x3b, 0xba, 0x73, 0x2b, 0x9c, 0x89, + 0x55, 0x84, 0xbb, 0x62, 0x39, 0xb7, 0x56, 0xc3, 0xb9, 0x5b, 0x03, 0x70, 0x46, 0x76, 0xc5, 0x1b, + 0x64, 0xd2, 0xe8, 0x38, 0xc7, 0x7c, 0xa3, 0x35, 0x3e, 0x8b, 0xce, 0x7c, 0xa2, 0xd6, 0xf6, 0x08, + 0xbd, 0x0d, 0x6c, 0x85, 0x73, 0xc8, 0x7d, 0x46, 0x70, 0xa5, 0x3a, 0x13, 0x60, 0xcb, 0x67, 0xe1, + 0xb3, 0x0b, 0xb9, 0x47, 0x3a, 0x93, 0x33, 0xe3, 0x77, 0x86, 0x81, 0xe7, 0x74, 0xed, 0xcb, 0x8c, + 0x03, 0xcf, 0xc1, 0x95, 0x65, 0x85, 0x6d, 0x66, 0xf6, 0xb5, 0xed, 0x57, 0xf9, 0x44, 0x8b, 0xa6, + 0x1f, 0x25, 0xec, 0x93, 0x35, 0x1f, 0x6f, 0x12, 0x45, 0x02, 0x0d, 0x11, 0x57, 0xe2, 0x68, 0x06, + 0x03, 0xae, 0xa3, 0x41, 0xf6, 0x67, 0x64, 0x18, 0xfe, 0x51, 0xa4, 0x6b, 0x67, 0x57, 0xf4, 0x2a, + 0xe9, 0x0c, 0xd8, 0x91, 0xbf, 0xdf, 0x98, 0x90, 0x74, 0xb7, 0x56, 0x8b, 0xd3, 0x58, 0xd5, 0xeb, + 0x8e, 0xe8, 0x15, 0xad, 0xdc, 0x0f, 0xe0, 0x97, 0x74, 0x16, 0x16, 0xba, 0xe6, 0xdb, 0x1c, 0xbb, + 0x85, 0xbe, 0x94, 0xba, 0x34, 0x6b, 0x6d, 0x35, 0x4e, 0xb7, 0x67, 0x35, 0xb4, 0x83, 0xd8, 0x4b, + 0xe4, 0x33, 0x80, 0x26, 0x37, 0xae, 0x5d, 0xb3, 0x3a, 0xe5, 0x7b, 0x89, 0x07, 0xf2, 0xfa, 0x2a, + 0x40, 0x70, 0x33, 0xb4, 0xb3, 0x48, 0xba, 0xbe, 0x74, 0x62, 0xe8, 0x21, 0xdb, 0xd1, 0x75, 0x27, + 0xf0, 0x3f, 0x52, 0x70, 0xbd, 0x38, 0x1f, 0xa0, 0x58, 0x9e, 0x87, 0x07, 0x6b, 0x2e, 0x80, 0x41, + 0x32, 0xa6, 0x78, 0x8a, 0x47, 0xc8, 0x37, 0x12, 0x69, 0xe6, 0xa1, 0xc4, 0x8f, 0x54, 0x20, 0xd2, + 0xdd, 0x48, 0x94, 0x8e, 0xf4, 0xb1, 0xad, 0xcb, 0x9e, 0xa1, 0x38, 0xa8, 0x3c, 0x9b, 0xd9, 0x17, + 0x06, 0x95, 0x4b, 0x1a, 0xf5, 0x8b, 0x1e, 0x65, 0xdb, 0x7c, 0x17, 0x5c, 0xb9, 0x2f, 0x71, 0xb6, + 0xcf, 0x3b, 0x2d, 0xf4, 0x3d, 0xcd, 0xef, 0x6d, 0xc3, 0x06, 0x27, 0xed, 0x57, 0xa7, 0xb8, 0x0a, + 0x07, 0xa4, 0x65, 0xdb, 0xb1, 0xc5, 0x64, 0xcb, 0x74, 0xb4, 0xe7, 0x68, 0x0f, 0xf9, 0x2d, 0x49, + 0x7b, 0x0b, 0xe4, 0x74, 0xcb, 0x75, 0xd2, 0x6c, 0xe4, 0xc9, 0x20, 0xe6, 0xc4, 0x5f, 0x4b, 0x4c, + 0x62, 0x8b, 0xd5, 0x82, 0x45, 0xdd, 0xd4, 0x87, 0x86, 0xcb, 0x2e, 0x08, 0x77, 0x47, 0x3f, 0x22, + 0xa9, 0x14, 0xff, 0x0a, 0x85, 0x77, 0x23, 0x94, 0x63, 0xcd, 0x69, 0x7f, 0x6e, 0x14, 0x2f, 0x73, + 0xb2, 0x3f, 0x0d, 0x4c, 0xb3, 0x5c, 0x27, 0xcd, 0x36, 0x39, 0x4d, 0x70, 0xd0, 0x5e, 0x3d, 0xf3, + 0xd0, 0xc8, 0x73, 0xe0, 0x2a, 0x60, 0x18, 0xd8, 0x8a, 0xb8, 0xe2, 0x1f, 0xd8, 0x0a, 0x57, 0x9a, + 0x2a, 0xdb, 0xa0, 0xd4, 0xa5, 0xeb, 0x75, 0xc0, 0xa6, 0x2e, 0x49, 0x7f, 0xb6, 0x4f, 0x9f, 0xf8, + 0xaa, 0xa2, 0x24, 0x31, 0x0f, 0xc2, 0xd6, 0x6e, 0x89, 0x7f, 0x75, 0x7f, 0x82, 0xd6, 0x95, 0xdf, + 0x6d, 0x75, 0xc0, 0x7e, 0xc4, 0xd6, 0xda, 0xc4, 0x60, 0x97, 0x94, 0xe0, 0x33, 0x55, 0x92, 0xe6, + 0xf4, 0x62, 0x54, 0x39, 0x32, 0x1b, 0x5b, 0x38, 0xb8, 0x49, 0xfb, 0xeb, 0x79, 0x70, 0xac, 0x06, + 0x3a, 0xbf, 0x9b, 0x05, 0x34, 0xb2, 0xde, 0x12, 0x17, 0xdd, 0xcf, 0x51, 0xad, 0xb4, 0x56, 0x80, + 0x01, 0x57, 0x80, 0xe0, 0xc2, 0x0b, 0xca, 0x9b, 0x92, 0xf9, 0x77, 0x7d, 0x2e, 0xff, 0xfc, 0x0b, + 0x4a, 0xd9, 0xfc, 0x3f, 0x0c, 0x81, 0x1c, 0xa6, 0x98, 0xf7, 0x81, 0x4d, 0xaa, 0x7f, 0xa9, 0x72, + 0x87, 0x15, 0x25, 0x34, 0x3d, 0xf2, 0x2b, 0x9a, 0x9d, 0xb7, 0x91, 0xf4, 0x45, 0x64, 0x8e, 0x71, + 0x2f, 0xec, 0x16, 0x08, 0xc7, 0x44, 0xee, 0xc0, 0x26, 0xd9, 0x18, 0xc1, 0x7a, 0x65, 0xfd, 0x6a, + 0xdd, 0xa2, 0xc7, 0xbf, 0xbd, 0x3e, 0x9e, 0x3d, 0xf0, 0xf8, 0xb2, 0x01, 0xe1, 0x55, 0x24, 0x66, + 0x66, 0x2a, 0x34, 0x4d, 0xc5, 0x9a, 0x15, 0x6c, 0x8d, 0xab, 0x6a, 0x1b, 0x3a, 0xee, 0xa4, 0x93, + 0xfa, 0xcc, 0x5a, 0x90, 0xf6, 0x64, 0x96, 0x5f, 0x38, 0x31, 0x7f, 0xe0, 0x9f, 0x4c, 0x20, 0x6a, + 0x6c, 0x07, 0x39, 0x1f, 0x73, 0xd2, 0x59, 0xe8, 0x74, 0x3a, 0x85, 0x74, 0xf8, 0xa9, 0xef, 0x1c, + 0xd3, 0x3a, 0xa3, 0x36, 0x2c, 0xc1, 0x28, 0xf2, 0xb3, 0x8f, 0x2e, 0x03, 0x4b, 0xf6, 0x49, 0x21, + 0x9b, 0x4a, 0xc4, 0x27, 0x90, 0x3d, 0x8f, 0x8d, 0xf9, 0xe2, 0x26, 0xd2, 0xf4, 0x8a, 0xdd, 0x47, + 0x6b, 0xa1, 0xdd, 0xd2, 0xae, 0xdf, 0xd9, 0x15, 0xf3, 0x5b, 0xab, 0xc0, 0x82, 0xd7, 0x0a, 0xc2, + 0x54, 0x1c, 0xab, 0xab, 0xd1, 0x20, 0xfb, 0xdc, 0xb8, 0x39, 0x5a, 0x90, 0x92, 0x55, 0x73, 0x50, + 0x56, 0xcd, 0xcb, 0xd0, 0x7e, 0x74, 0xb2, 0x76, 0x0d, 0x69, 0xd6, 0x64, 0xcb, 0x74, 0x2e, 0x4e, + 0xbb, 0x28, 0x46, 0x61, 0x17, 0x1e, 0x9f, 0x22, 0xe7, 0xc6, 0xf5, 0x72, 0x4e, 0x3c, 0x1b, 0x47, + 0xcf, 0x24, 0xe4, 0x58, 0x87, 0x81, 0xe5, 0xd8, 0x1c, 0x95, 0x07, 0xb7, 0xbe, 0xf5, 0xba, 0x03, + 0xf9, 0xed, 0xff, 0x78, 0x7d, 0x06, 0x72, 0xb9, 0x5b, 0x20, 0xb2, 0x55, 0x58, 0x14, 0x0a, 0xad, + 0xa3, 0xbb, 0x2a, 0x1d, 0xad, 0xcc, 0x47, 0xf3, 0xf8, 0x55, 0x5f, 0x50, 0xfe, 0x7d, 0xcd, 0x7b, + 0xc7, 0xd7, 0xe3, 0xe8, 0x9d, 0x23, 0x2b, 0x0e, 0xb2, 0xe4, 0xe3, 0x71, 0x86, 0x85, 0xa3, 0x63, + 0x9b, 0x70, 0xac, 0x93, 0x77, 0x84, 0xd9, 0xe2, 0x6e, 0x9f, 0x93, 0x3c, 0x32, 0x5f, 0x96, 0x4c, + 0xc3, 0x7d, 0xec, 0x53, 0xe9, 0x8d, 0xe2, 0x90, 0x72, 0x45, 0x5e, 0x2c, 0x91, 0x2f, 0x60, 0xd2, + 0x84, 0x27, 0x5b, 0x34, 0xb2, 0x45, 0xc9, 0x49, 0x41, 0x0c, 0xb9, 0x76, 0x7a, 0x56, 0x75, 0x67, + 0x0b, 0xe2, 0xd3, 0x58, 0xe6, 0x0d, 0xa8, 0xb4, 0x2c, 0xd5, 0x5b, 0xb9, 0x99, 0xbf, 0x9a, 0x47, + 0x5f, 0x45, 0x7a, 0x1a, 0xb1, 0x8e, 0x3d, 0x3d, 0x4d, 0x5b, 0x49, 0x2b, 0xda, 0x51, 0xb6, 0x1b, + 0x62, 0xc1, 0x09, 0x65, 0x56, 0xa6, 0x4b, 0x8c, 0x12, 0x56, 0x31, 0x85, 0xa1, 0x31, 0x97, 0xfc, + 0x64, 0xdf, 0xa8, 0xf5, 0xca, 0x6d, 0xfe, 0xe6, 0xda, 0x45, 0xeb, 0x9f, 0x18, 0x12, 0x3e, 0x6f, + 0x95, 0x5a, 0xc6, 0xf4, 0xa9, 0x08, 0xab, 0x29, 0x7c, 0x4e, 0x3b, 0xa4, 0x69, 0xd3, 0xde, 0x45, + 0x74, 0xac, 0x8c, 0xf4, 0x62, 0xb8, 0xdc, 0x3d, 0xa3, 0xed, 0xa2, 0xe5, 0xfa, 0x12, 0xad, 0xec, + 0x34, 0x0f, 0xa7, 0x8e, 0x42, 0xae, 0xaa, 0xff, 0x07, 0x7a, 0xd6, 0x81, 0x48, 0x9d, 0xca, 0x32, + 0xf7, 0xe2, 0xba, 0xa3, 0x0f, 0x98, 0x7f, 0xeb, 0x8d, 0x86, 0x89, 0x1b, 0xc1, 0xfc, 0xeb, 0x85, + 0x6f, 0x03, 0xdd, 0x59, 0xad, 0x44, 0x2a, 0x4b, 0xfb, 0xb2, 0xfa, 0x1c, 0x72, 0x3f, 0xea, 0xb7, + 0x6d, 0xca, 0x6d, 0x5d, 0x7d, 0xc0, 0xfc, 0x21, 0xb5, 0xc4, 0x25, 0x28, 0x1f, 0x7b, 0xe6, 0x36, + 0xa4, 0x2c, 0x94, 0x0f, 0x69, 0x5f, 0xd2, 0x6e, 0x37, 0xfe, 0xff, 0x00, 0xb9, 0x9c, 0xfe, 0x98, + 0x35, 0xd0, 0xaf, 0x7d, 0xf7, 0xe9, 0x65, 0xf1, 0x5d, 0xc3, 0x86, 0xd5, 0xb6, 0x35, 0x46, 0x1a, + 0xbf, 0xd2, 0x0e, 0x31, 0x7e, 0x0b, 0x47, 0x3f, 0x1d, 0x21, 0x6a, 0xfd, 0xe1, 0x6e, 0x79, 0x35, + 0x9d, 0x63, 0xb0, 0xce, 0xe8, 0x72, 0xea, 0x15, 0xc1, 0xde, 0xe5, 0xc7, 0x55, 0xc5, 0x34, 0xb0, + 0x1e, 0xf9, 0x9b, 0xf2, 0x4c, 0xb8, 0x0a, 0xde, 0x95, 0xed, 0x90, 0xab, 0x78, 0x1e, 0xde, 0x1c, + 0xcd, 0x8f, 0xdf, 0x84, 0x3c, 0xb6, 0x27, 0x84, 0x2b, 0x00, 0x51, 0x77, 0x01, 0x31, 0x1d, 0xb4, + 0xe9, 0x7b, 0xb6, 0xa9, 0x67, 0x28, 0x03, 0x15, 0x5a, 0x3f, 0x36, 0x6b, 0xad, 0x89, 0xac, 0x6d, + 0xec, 0xa1, 0xb6, 0xc7, 0xdf, 0x24, 0x5d, 0x89, 0x81, 0xb5, 0x4d, 0xa0, 0x74, 0xa2, 0x6c, 0xd6, + 0x1b, 0x6d, 0x14, 0x70, 0xfa, 0xac, 0x3b, 0x05, 0x1f, 0x95, 0x33, 0xd4, 0x7a, 0x3a, 0xff, 0x9c, + 0x72, 0x98, 0xb0, 0xe1, 0x9d, 0x0f, 0x78, 0x4e, 0x3a, 0x04, 0xb7, 0xf5, 0x17, 0x4d, 0x34, 0x8f, + 0xe9, 0xcc, 0x67, 0x60, 0x53, 0x93, 0xd5, 0x95, 0xd0, 0xfa, 0x7f, 0x35, 0xd5, 0x7f, 0xed, 0xfb, + 0xf4, 0xd9, 0x01, 0x9d, 0xf8, 0xc6, 0xee, 0x55, 0xc7, 0x51, 0x8f, 0xb2, 0x21, 0xc5, 0x92, 0xa8, + 0xc5, 0xd6, 0xd7, 0xde, 0xa8, 0xee, 0x89, 0xe7, 0x0e, 0xa9, 0x3a, 0xd6, 0xa7, 0xc7, 0x26, 0x40, + 0xde, 0xca, 0xa6, 0xa6, 0x67, 0x62, 0x67, 0x92, 0x66, 0xe2, 0xb7, 0x37, 0xa4, 0x76, 0x09, 0x0c, + 0x5e, 0x17, 0x71, 0xbc, 0x28, 0x3d, 0x0b, 0xea, 0x47, 0x1c, 0xad, 0x9f, 0xbc, 0x95, 0x5d, 0xdd, + 0xd3, 0xb8, 0x81, 0xfc, 0xc2, 0x38, 0xfe, 0x46, 0xd5, 0x4a, 0x3e, 0x46, 0x5e, 0x7a, 0xb4, 0xbd, + 0x8e, 0xe2, 0xb0, 0x72, 0x02, 0xe7, 0xca, 0x31, 0x9c, 0x73, 0x67, 0xe6, 0x5f, 0x54, 0x8e, 0xd1, + 0x29, 0xc4, 0xa7, 0xb9, 0xe4, 0xbf, 0x35, 0xea, 0xd4, 0x38, 0x1c, 0x94, 0x89, 0x92, 0xb6, 0xed, + 0xf5, 0x4f, 0xd2, 0x3b, 0xe5, 0x71, 0x27, 0xa8, 0xb2, 0xca, 0x93, 0x6c, 0x3b, 0xae, 0x5f, 0x0d, + 0xec, 0x39, 0x77, 0xcf, 0xa7, 0xbd, 0x93, 0x79, 0x6e, 0x1a, 0x23, 0xe6, 0x9e, 0x7b, 0x62, 0x79, + 0xf1, 0x43, 0x74, 0xfa, 0xa5, 0xe9, 0xc1, 0xc5, 0xef, 0xc6, 0x5e, 0x44, 0x98, 0x97, 0x36, 0x89, + 0xaf, 0xff, 0xf8, 0x4c, 0x8a, 0xfa, 0x09, 0x1b, 0xc0, 0x8b, 0x85, 0xaa, 0xa6, 0x09, 0xed, 0xa9, + 0x91, 0xec, 0x4b, 0xde, 0xac, 0x78, 0x7f, 0x8d, 0x65, 0x5f, 0xe4, 0xf0, 0x6b, 0xf0, 0x39, 0x40, + 0x9e, 0x87, 0x9c, 0x5f, 0xc5, 0xb9, 0xe7, 0x52, 0x7b, 0x56, 0x99, 0x61, 0x1b, 0x93, 0xd9, 0x1a, + 0x94, 0x38, 0xde, 0x66, 0xed, 0x05, 0x5e, 0xbd, 0xfd, 0xb4, 0xaf, 0x2b, 0x2d, 0x20, 0xbd, 0x1b, + 0xec, 0xf5, 0x3b, 0xe9, 0x08, 0x36, 0xac, 0x75, 0x34, 0x3d, 0x70, 0xa7, 0xe9, 0x1d, 0xc2, 0x47, + 0x8a, 0x53, 0xc3, 0x12, 0xe1, 0xee, 0x78, 0xc3, 0xc0, 0x36, 0x38, 0x13, 0xcd, 0x6f, 0xcb, 0x65, + 0x4e, 0xa9, 0x4e, 0x49, 0x72, 0x5b, 0x9e, 0x64, 0x58, 0x9f, 0x46, 0xee, 0xef, 0x4c, 0xdb, 0xdd, + 0x3b, 0x12, 0x51, 0x57, 0xdc, 0x90, 0xf2, 0x7c, 0x99, 0xa9, 0x65, 0x5e, 0xa4, 0xee, 0x9e, 0x94, + 0x89, 0x98, 0x25, 0xb2, 0xb1, 0x2d, 0xb2, 0x43, 0xf5, 0x43, 0x14, 0x4c, 0x08, 0x0f, 0x05, 0x4b, + 0xcc, 0xca, 0xa0, 0xe0, 0xb4, 0x54, 0xea, 0x5a, 0xc8, 0xd4, 0xd5, 0x96, 0x41, 0x5d, 0x0b, 0x89, + 0xba, 0x92, 0x4f, 0x98, 0x70, 0x12, 0x92, 0xe5, 0x07, 0x21, 0xf9, 0x40, 0x83, 0x41, 0x77, 0x53, + 0x0f, 0xde, 0x5f, 0x80, 0xe4, 0xd7, 0xbf, 0x88, 0x7f, 0xfb, 0x45, 0xd0, 0xa2, 0xef, 0xb4, 0x2e, + 0x5d, 0xd6, 0x36, 0xab, 0xed, 0x3b, 0xad, 0xa9, 0xe0, 0x76, 0x91, 0xea, 0x85, 0x98, 0x7e, 0xcb, + 0xb5, 0x2f, 0xae, 0x49, 0x91, 0xee, 0x28, 0xf9, 0x86, 0xe4, 0xf2, 0x7d, 0xbd, 0xc4, 0xa7, 0x46, + 0x88, 0xcb, 0x01, 0xfa, 0x5a, 0xa2, 0xa8, 0x5f, 0x1c, 0x7d, 0xce, 0x8c, 0x32, 0x85, 0x15, 0x24, + 0x70, 0x64, 0xc6, 0x8d, 0xbb, 0x5e, 0xec, 0xb9, 0x6b, 0x2b, 0xcb, 0xfc, 0xe2, 0xfb, 0xed, 0x0f, + 0xb4, 0x3c, 0xd0, 0xfe, 0xb7, 0xa9, 0xe7, 0x49, 0xff, 0x66, 0xa8, 0x71, 0x97, 0x6e, 0xcf, 0xb8, + 0x87, 0xd0, 0x7b, 0x77, 0xd8, 0x6b, 0x10, 0x1b, 0xbf, 0x1e, 0xc9, 0x8c, 0xd7, 0xea, 0x04, 0x94, + 0xa0, 0x92, 0xe5, 0xe3, 0xed, 0xe0, 0xf1, 0xd3, 0x2e, 0x34, 0x9d, 0x30, 0x44, 0x2d, 0x25, 0x55, + 0x09, 0x1d, 0xa4, 0xf8, 0x2f, 0x65, 0x13, 0x4a, 0xe8, 0xc9, 0x6f, 0xd8, 0x68, 0x4e, 0x67, 0x1d, + 0x74, 0x40, 0xe3, 0x86, 0x6b, 0x73, 0xd0, 0x8e, 0x24, 0x42, 0x92, 0x76, 0x26, 0xe1, 0x76, 0xec, + 0xe3, 0x8c, 0x00, 0x48, 0xf1, 0x1c, 0xe2, 0xc5, 0xd8, 0x43, 0xb2, 0xc3, 0x9e, 0xe3, 0xa9, 0xa1, + 0xfd, 0x6a, 0xb5, 0x74, 0xc8, 0xfc, 0x96, 0x5b, 0x75, 0x5f, 0xda, 0x6f, 0x34, 0x9f, 0x72, 0x34, + 0xc5, 0xe7, 0xa4, 0x39, 0x40, 0xa5, 0xd2, 0x4e, 0x69, 0x0d, 0xb7, 0x61, 0x2d, 0x5f, 0x6f, 0x83, + 0x9c, 0xc0, 0x4c, 0x98, 0x7a, 0x5b, 0x67, 0x35, 0x0d, 0x4c, 0xee, 0x6d, 0x64, 0xf5, 0x3b, 0x15, + 0xf2, 0x6e, 0x23, 0x5f, 0xe5, 0xbb, 0x21, 0x5f, 0xc2, 0xfe, 0x7c, 0xdd, 0xc0, 0xfe, 0x43, 0x9c, + 0x94, 0xe6, 0x07, 0x70, 0xc7, 0x3f, 0xc3, 0xa7, 0x92, 0xdb, 0x02, 0x50, 0x5e, 0x7d, 0x3e, 0x1d, + 0xd1, 0x71, 0xfc, 0x23, 0xa2, 0x06, 0xc1, 0xf5, 0xe9, 0xfd, 0x71, 0xda, 0x6b, 0xb2, 0x5a, 0x62, + 0xd6, 0x48, 0x5f, 0xcd, 0x79, 0x08, 0x23, 0x36, 0x67, 0x68, 0xb8, 0x93, 0x56, 0x08, 0x28, 0x81, + 0x52, 0x57, 0x38, 0x1e, 0x1e, 0x7e, 0x44, 0xdb, 0x9f, 0xbb, 0x6b, 0x0e, 0x69, 0xe2, 0xe9, 0xef, + 0xb9, 0x5e, 0x94, 0x2a, 0x53, 0x05, 0xf7, 0xac, 0x77, 0x62, 0x7c, 0x5c, 0xbd, 0xba, 0x13, 0x1c, + 0xcd, 0xb5, 0x2f, 0xf0, 0x55, 0xe9, 0xef, 0x11, 0x3e, 0xa9, 0x4d, 0xe6, 0x27, 0x5f, 0xa7, 0x3d, + 0x7f, 0x87, 0x7f, 0xc1, 0x79, 0x58, 0x22, 0x2d, 0xcc, 0x88, 0x89, 0xb5, 0x30, 0xd3, 0xcf, 0x7a, + 0xcc, 0x24, 0xf9, 0x71, 0xf5, 0xcc, 0x91, 0xf5, 0x3f, 0x3a, 0xe8, 0xf0, 0x40, 0x21, 0xf9, 0x17, + 0x90, 0x5a, 0x52, 0xd1, 0x7d, 0xc8, 0x52, 0xb1, 0x8c, 0xf6, 0xd4, 0xd5, 0xe8, 0x04, 0xc9, 0xea, + 0x64, 0x25, 0x78, 0x56, 0xe8, 0xc3, 0xe4, 0x9b, 0x9a, 0xcf, 0x2c, 0xe7, 0x92, 0xaf, 0x7e, 0xfc, + 0xc2, 0x60, 0x5f, 0x3c, 0x73, 0x21, 0x18, 0xaa, 0xaa, 0x67, 0xd6, 0x83, 0x19, 0xe5, 0x47, 0x4b, + 0xda, 0x9f, 0x33, 0xf6, 0xdb, 0x4d, 0x91, 0xa5, 0xde, 0xdd, 0x86, 0x3c, 0x6e, 0x4b, 0x5a, 0xcb, + 0x7f, 0x7c, 0x6f, 0x78, 0x6e, 0x14, 0xa6, 0x94, 0x12, 0x6d, 0xe2, 0xb3, 0xbd, 0x9b, 0xe3, 0xba, + 0xff, 0xdc, 0xda, 0x9b, 0x90, 0x61, 0x4a, 0x91, 0xa4, 0xa7, 0x58, 0x53, 0x32, 0xed, 0x42, 0x4e, + 0x13, 0x7c, 0x02, 0xe5, 0x9a, 0xe0, 0x21, 0xfe, 0x8c, 0x0c, 0xc6, 0xe1, 0x36, 0xb5, 0x35, 0xe3, + 0xa5, 0x2e, 0x37, 0x98, 0xe2, 0x91, 0x81, 0x5e, 0x5c, 0xc9, 0x83, 0xad, 0x00, 0xfb, 0xe8, 0xec, + 0x8a, 0x9e, 0xb2, 0xc2, 0xad, 0x32, 0xde, 0xdf, 0xcc, 0x6f, 0xf6, 0xb6, 0xfa, 0x2c, 0xa4, 0x37, + 0x8a, 0xf7, 0xd9, 0x89, 0xd6, 0x5c, 0xe2, 0xb5, 0x70, 0xdd, 0x06, 0xe3, 0x62, 0x19, 0x74, 0xdd, + 0xb8, 0x16, 0x52, 0x9e, 0xa5, 0x98, 0x3a, 0x95, 0x53, 0xe7, 0xc8, 0x60, 0x38, 0x1e, 0xbf, 0x85, + 0x52, 0x0d, 0x6d, 0x2b, 0x21, 0xdb, 0x8e, 0x6f, 0xa6, 0x73, 0x9e, 0x47, 0xf0, 0xee, 0x0b, 0x9c, + 0xa7, 0x40, 0x86, 0xac, 0x23, 0xf1, 0x2f, 0x73, 0x89, 0xa7, 0x5b, 0x9d, 0x98, 0x6e, 0xe3, 0x5a, + 0x2b, 0x56, 0x82, 0x7e, 0x14, 0x9f, 0xbe, 0xc4, 0x4f, 0x4f, 0xe1, 0x5d, 0x01, 0xe5, 0xcf, 0x3e, + 0x8f, 0xf9, 0xd7, 0xc5, 0xbf, 0xc2, 0xa5, 0x44, 0x57, 0x42, 0xd6, 0x7e, 0x7c, 0x63, 0xe7, 0x1a, + 0x36, 0xe2, 0x9d, 0x8b, 0xf3, 0xbc, 0x26, 0x83, 0xbe, 0xdd, 0xdc, 0xcb, 0xb1, 0xd6, 0x21, 0xbb, + 0x7e, 0xe5, 0x4a, 0xba, 0xcf, 0xfa, 0x90, 0xe2, 0x8c, 0xac, 0xf4, 0xf1, 0xfd, 0x05, 0xe4, 0xb4, + 0xae, 0xac, 0x34, 0xc7, 0xbf, 0xc5, 0xf9, 0x29, 0x36, 0x7b, 0x94, 0xd3, 0x2f, 0x62, 0xfa, 0x09, + 0xbe, 0xbb, 0x84, 0xe9, 0x0f, 0xca, 0xc8, 0x3d, 0xf0, 0xd3, 0x18, 0xc5, 0x4c, 0x5e, 0x99, 0xcb, + 0xf7, 0x97, 0xf1, 0x4d, 0x13, 0x79, 0x22, 0xe0, 0xa7, 0x71, 0x2a, 0x95, 0xef, 0x14, 0x4c, 0xaf, + 0x93, 0x21, 0xdb, 0xc0, 0x35, 0x4f, 0xc1, 0xf4, 0xe3, 0xa2, 0x36, 0x43, 0x56, 0xac, 0x53, 0x7c, + 0x6b, 0xd0, 0x63, 0x1e, 0x17, 0xe9, 0xf8, 0xf3, 0x93, 0x01, 0x4b, 0xad, 0xe3, 0x3b, 0x23, 0xa6, + 0x93, 0xbd, 0xd9, 0x3a, 0x7e, 0x9a, 0x86, 0x7d, 0x6b, 0x5f, 0x69, 0xe3, 0xfb, 0xa9, 0x78, 0x1f, + 0xe0, 0xbb, 0x9c, 0x28, 0x18, 0x2e, 0x60, 0xcf, 0xb8, 0x7c, 0x8b, 0x0e, 0xbf, 0xdd, 0xc3, 0x77, + 0x58, 0xa6, 0x61, 0x04, 0x21, 0xbd, 0x5b, 0x60, 0x58, 0xcd, 0x09, 0xd2, 0xa2, 0xa1, 0x7d, 0xb9, + 0x0a, 0x7f, 0x25, 0x72, 0x72, 0x86, 0xd7, 0x28, 0x35, 0x58, 0x89, 0x77, 0xcf, 0x8a, 0x88, 0x66, + 0x1a, 0x66, 0x26, 0x9f, 0xf2, 0x1a, 0xbc, 0x90, 0x8e, 0x82, 0x91, 0x11, 0x95, 0x8a, 0x4b, 0x0a, + 0xe9, 0xf1, 0x9b, 0x9c, 0x1b, 0xbf, 0x0f, 0xce, 0xa9, 0xf0, 0x0b, 0x6e, 0xd1, 0xb0, 0x34, 0x15, + 0x7f, 0x26, 0x39, 0xef, 0x1e, 0x7c, 0xae, 0xb8, 0x26, 0x2e, 0x4d, 0x32, 0xf8, 0x9a, 0x6c, 0xbd, + 0x36, 0x75, 0xae, 0xcd, 0xe5, 0xc7, 0x11, 0x5d, 0x7a, 0x9d, 0x37, 0xeb, 0xe5, 0x33, 0xd7, 0xa6, + 0xd6, 0x36, 0xc8, 0x87, 0x10, 0x53, 0x0b, 0x33, 0x62, 0x77, 0x90, 0x3d, 0xfc, 0xb0, 0xda, 0x93, + 0x09, 0xed, 0xab, 0x1d, 0x3e, 0xd3, 0x27, 0x7c, 0xd1, 0x60, 0x0d, 0x83, 0x93, 0xdf, 0xce, 0xcb, + 0xc3, 0xd4, 0xfe, 0xc9, 0xa9, 0xf3, 0xfb, 0xe5, 0x92, 0x74, 0x6d, 0xf3, 0xf7, 0xc8, 0xd2, 0x35, + 0x39, 0x8e, 0xca, 0xe6, 0x74, 0x8e, 0x70, 0x39, 0xd5, 0x41, 0xd1, 0xb8, 0xb2, 0xee, 0xbb, 0x31, + 0xa4, 0xc2, 0x08, 0x13, 0xfd, 0xf8, 0xa4, 0x36, 0x17, 0x5e, 0xdb, 0xe2, 0xf0, 0x6a, 0x8a, 0xca, + 0xa1, 0xdf, 0x73, 0xe3, 0x92, 0x16, 0xe0, 0x4c, 0xd3, 0xef, 0xcc, 0x28, 0x29, 0xd5, 0x92, 0x05, + 0x38, 0xef, 0xf5, 0x4f, 0x4d, 0xa8, 0x83, 0x52, 0xfb, 0x31, 0x75, 0x9b, 0xba, 0x4b, 0x25, 0x65, + 0xc6, 0xfe, 0x99, 0x90, 0xeb, 0x04, 0xe2, 0x5e, 0xe7, 0x9f, 0xcd, 0x45, 0x31, 0x2a, 0x6c, 0x15, + 0x9d, 0x8a, 0x82, 0x65, 0xc6, 0xa9, 0x26, 0xd9, 0x30, 0x39, 0x4f, 0xfd, 0x12, 0x7c, 0x57, 0x89, + 0x23, 0x24, 0x4d, 0xc4, 0xb5, 0xd1, 0x92, 0x89, 0xb8, 0xa6, 0xe6, 0x1e, 0xc6, 0x7a, 0xa9, 0x0c, + 0x89, 0x38, 0x73, 0x9b, 0x25, 0x96, 0x17, 0xe9, 0xb3, 0x93, 0xb6, 0x70, 0x86, 0x87, 0x07, 0xf2, + 0xc0, 0x00, 0x4a, 0xf5, 0xc7, 0x21, 0x08, 0xb8, 0x74, 0xe1, 0x89, 0xa5, 0x7e, 0x7a, 0x8c, 0x74, + 0x5d, 0x27, 0x97, 0xfa, 0x97, 0x21, 0xf2, 0xc1, 0xfe, 0x5f, 0x29, 0x95, 0x30, 0x8a, 0x23, 0x14, + 0x4c, 0x18, 0xa1, 0x4f, 0xd7, 0x60, 0xe9, 0xd7, 0xc1, 0xab, 0x86, 0x2a, 0x2c, 0xff, 0xa3, 0x09, + 0xa9, 0x7b, 0x3e, 0xad, 0xd7, 0x28, 0xfc, 0xdd, 0x4f, 0x09, 0xab, 0x3a, 0x5d, 0xf9, 0xb5, 0x50, + 0xf8, 0xd4, 0x75, 0x3d, 0x28, 0x44, 0xf2, 0x04, 0x8e, 0x32, 0x24, 0x32, 0xea, 0xbf, 0x3a, 0x7a, + 0x6d, 0xdd, 0x91, 0x1f, 0xab, 0x56, 0xef, 0x22, 0x22, 0x5d, 0x72, 0x51, 0x03, 0xe1, 0x1f, 0xc7, + 0x0c, 0x3c, 0xe9, 0x9d, 0x38, 0x2f, 0x52, 0x98, 0xb1, 0xa8, 0x99, 0xe7, 0x29, 0x69, 0x07, 0xef, + 0xa1, 0x9e, 0xba, 0x10, 0x32, 0x7c, 0xe2, 0x6d, 0xb8, 0xb6, 0xcf, 0x57, 0xd7, 0xb1, 0x55, 0xee, + 0x35, 0xf5, 0x2e, 0xda, 0xcb, 0x1c, 0xb2, 0xfc, 0xa7, 0xf0, 0xe3, 0x9b, 0x12, 0xcf, 0x36, 0xab, + 0x4c, 0xda, 0xda, 0x36, 0x5f, 0x33, 0xe4, 0x7b, 0x4d, 0xe2, 0xcd, 0x3d, 0x61, 0xa6, 0x13, 0x76, + 0xbe, 0x7f, 0x56, 0x2e, 0x10, 0x6d, 0xf3, 0xd4, 0xd6, 0x6f, 0xce, 0x9c, 0x4b, 0xdf, 0xba, 0xa7, + 0x21, 0x45, 0xb9, 0xe4, 0xdc, 0xb6, 0x92, 0x5a, 0x9d, 0xb6, 0x36, 0xfd, 0xe8, 0xa0, 0xb6, 0x66, + 0x92, 0x74, 0x60, 0x8f, 0xcc, 0xc0, 0x95, 0x72, 0x46, 0x1d, 0x98, 0x67, 0x4c, 0x58, 0x27, 0x65, + 0x23, 0xed, 0xbc, 0xdc, 0xb3, 0x75, 0xd2, 0x0a, 0x5d, 0x24, 0x62, 0x13, 0x0a, 0xdf, 0xa4, 0x32, + 0x7c, 0x9a, 0x4b, 0x12, 0xde, 0xb2, 0xdd, 0xce, 0x69, 0xc6, 0x1e, 0x00, 0x9d, 0xba, 0xfa, 0x87, + 0xe7, 0xc6, 0xe0, 0xea, 0x41, 0xbb, 0xa8, 0x6f, 0xa9, 0x68, 0xcf, 0xd2, 0xb2, 0x46, 0xb1, 0x6b, + 0x68, 0x15, 0x3b, 0x17, 0xc8, 0x91, 0xdb, 0x55, 0xdd, 0x7c, 0x9b, 0xf0, 0x32, 0x18, 0xdd, 0x6b, + 0x45, 0xee, 0x2b, 0x66, 0x95, 0x6a, 0x90, 0x3f, 0x59, 0x30, 0x91, 0x3f, 0xf9, 0x42, 0x00, 0x34, + 0xce, 0x84, 0xcf, 0x4c, 0xbc, 0xb9, 0xaa, 0x05, 0x87, 0xd9, 0x83, 0x9c, 0x0d, 0xf6, 0x25, 0x87, + 0xf7, 0xa6, 0x72, 0xf1, 0xc9, 0x44, 0x3d, 0x13, 0x4f, 0xe4, 0x35, 0x4d, 0xd5, 0xe1, 0x29, 0x9d, + 0x9c, 0x92, 0x7c, 0x4a, 0x78, 0x9c, 0xaa, 0x28, 0x65, 0xaf, 0x9e, 0x5e, 0x70, 0x31, 0x3f, 0xd3, + 0x1f, 0x9f, 0x91, 0xe6, 0x67, 0x58, 0xae, 0xdc, 0x33, 0xc3, 0xaf, 0xaf, 0x9f, 0x11, 0x04, 0x13, + 0xf1, 0x89, 0x5f, 0xaf, 0xe2, 0x96, 0x0e, 0x2f, 0x4a, 0x9c, 0xed, 0x6b, 0xab, 0xe3, 0xa8, 0x11, + 0x96, 0xb8, 0x1f, 0x21, 0x57, 0x48, 0xbc, 0x21, 0x72, 0x7e, 0x52, 0xa8, 0x19, 0x4a, 0x89, 0x97, + 0xd4, 0xb7, 0x60, 0x0b, 0x3d, 0xb7, 0xe2, 0x77, 0x71, 0x5d, 0xc8, 0x8f, 0x7c, 0x28, 0x31, 0xc6, + 0x55, 0x14, 0x9c, 0x39, 0x55, 0x7e, 0x08, 0xbf, 0x9b, 0xd3, 0xb0, 0x21, 0x9a, 0xeb, 0x75, 0x23, + 0xa4, 0xf6, 0x28, 0x01, 0x27, 0xf6, 0x9f, 0xe4, 0xa6, 0x38, 0xf1, 0xad, 0xe4, 0x68, 0x8d, 0xbf, + 0x9a, 0x90, 0x3f, 0x10, 0x35, 0xab, 0xb9, 0xad, 0x94, 0x5b, 0xe2, 0x13, 0x02, 0x3b, 0x97, 0x4b, + 0xb9, 0x4d, 0x13, 0x73, 0xd7, 0x6a, 0xb9, 0xc7, 0xcf, 0x52, 0x6e, 0x8e, 0x18, 0xc1, 0xbd, 0xe0, + 0xc8, 0x35, 0xc9, 0xe5, 0x47, 0x52, 0x16, 0x77, 0x5a, 0xbe, 0x97, 0x29, 0x1f, 0xf9, 0x8f, 0x82, + 0xad, 0xb7, 0x63, 0xdb, 0xdb, 0x2c, 0x47, 0x1e, 0xf5, 0x34, 0x33, 0xb6, 0xf8, 0x6f, 0xe7, 0x73, + 0x1a, 0x90, 0xec, 0xd3, 0x44, 0xca, 0xd8, 0xbd, 0x64, 0x9d, 0x81, 0xf7, 0x11, 0x8e, 0xac, 0x95, + 0xf3, 0xc4, 0x10, 0xe6, 0x6a, 0x22, 0xae, 0x18, 0x61, 0xe0, 0x14, 0x30, 0x98, 0x78, 0xc6, 0xdc, + 0x98, 0xea, 0xeb, 0xf8, 0x3d, 0x2c, 0x49, 0xfa, 0x53, 0xd1, 0x3c, 0x52, 0x6d, 0xba, 0x3f, 0x47, + 0x68, 0xa4, 0xc7, 0xc8, 0xe6, 0x7a, 0x9c, 0x65, 0x65, 0x4c, 0xbd, 0x2f, 0x47, 0xb3, 0xee, 0x53, + 0xbf, 0xcf, 0x17, 0xb0, 0x72, 0x02, 0x3d, 0xb3, 0xaf, 0xd7, 0x3c, 0xc4, 0xf7, 0x1e, 0x71, 0x82, + 0x56, 0xf7, 0xdb, 0xba, 0xc2, 0xfa, 0xef, 0xaf, 0xd6, 0xc9, 0xa7, 0xd5, 0x73, 0x5e, 0xb3, 0x14, + 0xa9, 0x39, 0x07, 0x96, 0xf6, 0x3b, 0x6b, 0xf5, 0x2f, 0x9d, 0x03, 0x5b, 0xd4, 0x83, 0x18, 0xe6, + 0x7c, 0xe9, 0x3c, 0x94, 0x44, 0xed, 0x98, 0x1e, 0xc2, 0xb4, 0x86, 0xa8, 0x0d, 0xe5, 0x6d, 0x47, + 0x5c, 0x37, 0xb0, 0x15, 0xac, 0x51, 0xb3, 0xa8, 0x95, 0x70, 0x36, 0xa0, 0xe7, 0x1a, 0xe8, 0xf4, + 0x99, 0x62, 0x61, 0x75, 0xab, 0xa7, 0xea, 0xbc, 0x7b, 0x2d, 0x3c, 0x70, 0x02, 0xed, 0xe1, 0xd8, + 0xc8, 0x2f, 0xac, 0x13, 0x39, 0x4f, 0x73, 0xb1, 0x32, 0x06, 0x53, 0xa3, 0xb5, 0x38, 0xb7, 0xe6, + 0xc4, 0x53, 0x5a, 0x17, 0x63, 0x55, 0x6e, 0xe2, 0x9a, 0xed, 0xc5, 0x0b, 0xc0, 0x54, 0xbc, 0x02, + 0x07, 0xcb, 0xa2, 0x9e, 0xcc, 0x42, 0xa8, 0x05, 0x0a, 0xb0, 0x6c, 0x1f, 0xf5, 0xef, 0x87, 0x6f, + 0xd0, 0xaa, 0x4e, 0xfd, 0x1b, 0x2b, 0x77, 0x12, 0x1d, 0x32, 0xfe, 0xfd, 0x9b, 0xe5, 0x9d, 0x30, + 0x82, 0x98, 0x54, 0x78, 0xeb, 0x42, 0x5a, 0x4f, 0xb0, 0x25, 0xe4, 0x17, 0xc3, 0xd9, 0xb0, 0x61, + 0x17, 0xc2, 0xfc, 0x5b, 0x6a, 0x6f, 0xc9, 0xab, 0x40, 0xaa, 0xa7, 0xb4, 0x17, 0xbf, 0x1c, 0x4c, + 0x26, 0x8a, 0xf7, 0x32, 0x3b, 0x2a, 0xa5, 0x3c, 0x7d, 0x71, 0x6c, 0x90, 0xc6, 0xad, 0x0e, 0x10, + 0x35, 0x24, 0x47, 0x98, 0x8a, 0x19, 0xe3, 0x5f, 0xad, 0x85, 0x76, 0x85, 0x4b, 0x06, 0xf2, 0xcc, + 0x46, 0x5e, 0x67, 0x52, 0xa7, 0xc2, 0x3e, 0x4d, 0x6e, 0xa0, 0x12, 0x9d, 0x0f, 0x80, 0x03, 0x4b, + 0xd5, 0xc3, 0x6c, 0x82, 0x72, 0x9b, 0x54, 0xab, 0x1b, 0xec, 0x0a, 0x37, 0x83, 0x23, 0xea, 0xc3, + 0x71, 0xf1, 0xb1, 0x5e, 0x0c, 0xfd, 0x99, 0x04, 0xec, 0xbe, 0xed, 0x4c, 0xd5, 0xd4, 0xcc, 0x3b, + 0x56, 0xdd, 0xb1, 0xdc, 0xaf, 0x93, 0x34, 0x63, 0xc3, 0x3a, 0x67, 0x4e, 0xa8, 0xb3, 0x91, 0x3d, + 0xdd, 0xa8, 0xfe, 0xbf, 0xaa, 0xaa, 0x58, 0x87, 0xd1, 0x0b, 0x1e, 0xc9, 0x0b, 0x3e, 0x84, 0xa8, + 0xc9, 0xe5, 0x41, 0x8e, 0x5c, 0x41, 0x19, 0x3a, 0xc7, 0x81, 0x90, 0x5b, 0x03, 0xab, 0x41, 0x2e, + 0x22, 0x8c, 0x75, 0xb4, 0x80, 0xc5, 0xe9, 0x01, 0xab, 0xdb, 0x20, 0xe7, 0xe2, 0x1b, 0x1b, 0xdb, + 0x9a, 0xe7, 0xba, 0x8b, 0xa1, 0xf0, 0x78, 0xf7, 0x9e, 0xe7, 0xa1, 0xf0, 0xfe, 0x7c, 0xd2, 0xda, + 0xf2, 0xba, 0xf4, 0x61, 0xc4, 0xb1, 0x5f, 0x93, 0x2f, 0xa1, 0x86, 0x0d, 0x1d, 0x8a, 0xdc, 0x18, + 0xee, 0x6e, 0x25, 0xcf, 0x77, 0xd3, 0x16, 0xe0, 0x7c, 0x6f, 0x92, 0xea, 0x7f, 0x30, 0xd2, 0x23, + 0xe7, 0x6c, 0x4a, 0x38, 0x22, 0xe2, 0x8c, 0xba, 0x61, 0xc3, 0x40, 0xf7, 0xb2, 0xcb, 0xb2, 0x33, + 0xd8, 0x2d, 0x65, 0x89, 0x1c, 0x72, 0x2e, 0xbe, 0xa5, 0x7d, 0x94, 0xd4, 0xfb, 0xa5, 0x86, 0x70, + 0x77, 0xf4, 0x3c, 0x45, 0x8e, 0x98, 0x19, 0x06, 0xcb, 0xcc, 0x00, 0x58, 0x67, 0xce, 0x45, 0xc8, + 0x1b, 0x52, 0xa7, 0x7c, 0x3e, 0x6d, 0x47, 0x76, 0x12, 0xdc, 0x5e, 0x0d, 0xf5, 0xc4, 0xa5, 0x5a, + 0x78, 0x2d, 0xc1, 0x70, 0xab, 0xc0, 0x79, 0x56, 0xc5, 0xfa, 0xf7, 0xf4, 0xa7, 0xc2, 0xed, 0xde, + 0x80, 0xb0, 0xd1, 0x23, 0x6f, 0x44, 0xda, 0x6c, 0xf9, 0xcc, 0xc5, 0xd8, 0x9e, 0xa7, 0xc2, 0x2f, + 0xa7, 0x5d, 0x59, 0x3d, 0xb3, 0x36, 0x8b, 0xfc, 0xa2, 0x68, 0xd8, 0xff, 0x99, 0x55, 0x85, 0xa1, + 0x79, 0xc2, 0xbe, 0x88, 0x2d, 0xf0, 0xb3, 0xd4, 0xf8, 0xf3, 0x69, 0xd3, 0xdf, 0xec, 0x57, 0x7d, + 0x8f, 0xe6, 0x7b, 0x6b, 0xd8, 0xbf, 0x72, 0x6a, 0xa7, 0x84, 0xbc, 0x97, 0xdc, 0x97, 0xc3, 0x77, + 0x7c, 0x5a, 0xa0, 0x9e, 0xcb, 0x88, 0x93, 0x01, 0xb7, 0xe3, 0x01, 0x30, 0x2c, 0xc2, 0x99, 0x21, + 0xcd, 0x04, 0xeb, 0xa2, 0x04, 0xca, 0x9b, 0xd6, 0x68, 0x3e, 0xce, 0x97, 0x5a, 0x94, 0x12, 0x9c, + 0x29, 0x1c, 0x2f, 0x0f, 0x6c, 0xa3, 0x19, 0x24, 0xce, 0x09, 0x54, 0xcd, 0xb9, 0x42, 0x75, 0x5e, + 0x98, 0xdc, 0x2b, 0xc0, 0x11, 0x6e, 0x05, 0x5b, 0xac, 0xbe, 0x7d, 0x66, 0xad, 0x9e, 0xfb, 0xbf, + 0x32, 0xfe, 0xe1, 0x2b, 0xcf, 0x43, 0x85, 0xb5, 0x0a, 0x3c, 0x23, 0x8f, 0x92, 0xbe, 0x96, 0xa0, + 0x33, 0xf6, 0x15, 0xe0, 0xc2, 0x37, 0xcf, 0x41, 0x85, 0x14, 0xa8, 0x79, 0x1f, 0x3c, 0xf1, 0xb4, + 0xf6, 0x48, 0x3f, 0xef, 0x3c, 0x4d, 0x13, 0x90, 0x8a, 0x86, 0x38, 0xba, 0x68, 0x3a, 0xc6, 0xb0, + 0x01, 0x65, 0xc3, 0x1c, 0xa2, 0xa3, 0x34, 0xf7, 0xec, 0x75, 0x19, 0xb3, 0xaf, 0x9c, 0x74, 0x99, + 0xb4, 0x79, 0xfc, 0xe9, 0xb9, 0xf4, 0x3c, 0x16, 0xba, 0x07, 0xc2, 0x66, 0xa9, 0x8a, 0x34, 0x36, + 0x4d, 0xe4, 0x05, 0x9f, 0xec, 0x95, 0x54, 0x1f, 0x89, 0x96, 0x54, 0x6b, 0x41, 0x57, 0x81, 0xd8, + 0xa3, 0xef, 0x18, 0x67, 0x1b, 0x9a, 0x6c, 0xe1, 0xa5, 0x44, 0xc0, 0x94, 0xa9, 0xa8, 0x25, 0xfc, + 0x82, 0x92, 0xd4, 0xe8, 0xd3, 0xa7, 0xab, 0x79, 0x27, 0x01, 0xb9, 0x10, 0xae, 0x35, 0x9b, 0x76, + 0xc1, 0xdc, 0xd0, 0xb0, 0x81, 0x4b, 0x45, 0x79, 0x49, 0x97, 0xa3, 0x96, 0xbf, 0x9c, 0xe6, 0x71, + 0xcc, 0x25, 0xd6, 0xc8, 0x25, 0xa3, 0x48, 0xd1, 0xfd, 0xec, 0x0f, 0x7c, 0xf6, 0x3d, 0xfb, 0x42, + 0xdd, 0xf1, 0x5b, 0x6b, 0x61, 0x7f, 0x22, 0x5c, 0x0c, 0x53, 0x5b, 0x00, 0xce, 0x20, 0xce, 0xd5, + 0x53, 0xe4, 0x30, 0x51, 0xeb, 0x77, 0x9e, 0x52, 0xa3, 0xf0, 0xa9, 0x38, 0xf2, 0xa9, 0x81, 0x29, + 0x6a, 0x91, 0x77, 0x16, 0x45, 0x06, 0x52, 0xc6, 0xb0, 0x85, 0x2a, 0x3d, 0x15, 0xad, 0xa3, 0x7a, + 0xa2, 0x79, 0x22, 0xef, 0xd5, 0x63, 0xd4, 0xba, 0x1f, 0xbe, 0x81, 0x25, 0x2e, 0xf5, 0x1a, 0xb4, + 0x12, 0xef, 0xcb, 0x49, 0xad, 0x06, 0x6a, 0x2f, 0xae, 0x0e, 0x50, 0xbe, 0x98, 0x45, 0xae, 0x52, + 0x5b, 0x6b, 0x14, 0x18, 0x88, 0x5f, 0xcc, 0x12, 0x3b, 0x91, 0x9f, 0xe9, 0xd5, 0x56, 0xd8, 0xd4, + 0x2f, 0x1e, 0x74, 0x80, 0xd8, 0x4f, 0x1d, 0xdb, 0xcb, 0x5c, 0x8a, 0x3e, 0x0d, 0xf7, 0xab, 0xf1, + 0x0c, 0xb8, 0x53, 0x8c, 0x1c, 0xb6, 0x98, 0xe7, 0x76, 0x91, 0xf5, 0x06, 0x28, 0xb5, 0xed, 0x65, + 0xb5, 0x7a, 0x79, 0x98, 0xec, 0x32, 0x69, 0x75, 0x67, 0x2f, 0x48, 0x46, 0xe9, 0x6e, 0xa2, 0xcb, + 0xbc, 0x16, 0x68, 0xd1, 0xe6, 0xd4, 0xd5, 0x00, 0x71, 0x0c, 0x53, 0x09, 0x4f, 0xf1, 0x8d, 0xd0, + 0xdb, 0xcb, 0x78, 0x97, 0x49, 0x0f, 0xd5, 0x92, 0x22, 0x54, 0x12, 0x45, 0x61, 0x93, 0x5c, 0xe0, + 0x8a, 0xd9, 0x27, 0xae, 0x2f, 0x3c, 0xeb, 0xcc, 0x1a, 0x84, 0xfe, 0xb8, 0x8b, 0xbc, 0x9b, 0xc6, + 0xc9, 0xe6, 0x40, 0x1f, 0x07, 0x8d, 0x52, 0xfd, 0xf1, 0xe7, 0x19, 0xd4, 0x51, 0xad, 0x1b, 0xcb, + 0x33, 0x61, 0xfd, 0xae, 0xc9, 0xf5, 0x93, 0x56, 0x07, 0xd1, 0x9e, 0xc0, 0xcf, 0xf0, 0xbb, 0xd5, + 0x0d, 0xb4, 0xd3, 0x6a, 0x22, 0x9d, 0x9f, 0x6f, 0xa9, 0x3a, 0x1e, 0xaa, 0xee, 0x9e, 0x44, 0x38, + 0xe7, 0x14, 0xd1, 0x24, 0x92, 0xec, 0xa7, 0xd4, 0xac, 0x61, 0x95, 0x66, 0xf1, 0x06, 0xfd, 0x0e, + 0x8a, 0x43, 0xd0, 0x29, 0xb0, 0x90, 0x4e, 0xf6, 0xc5, 0x9c, 0xff, 0x63, 0xa9, 0x57, 0xcf, 0x56, + 0xb0, 0x90, 0x1a, 0x69, 0xa1, 0x89, 0x12, 0xd1, 0xac, 0x14, 0x32, 0x7b, 0x16, 0x2b, 0x14, 0xcf, + 0x4d, 0x55, 0x88, 0x43, 0x59, 0x19, 0x33, 0x88, 0x2c, 0x5d, 0x2a, 0x44, 0xaf, 0x3f, 0x19, 0xa4, + 0x37, 0xb4, 0x4f, 0x49, 0x6f, 0x65, 0x1e, 0x5b, 0x8a, 0x42, 0x21, 0xab, 0xa3, 0xfb, 0xc9, 0x33, + 0x08, 0x95, 0x9c, 0x78, 0x59, 0x2d, 0xc8, 0x06, 0xa6, 0xe1, 0x29, 0xc8, 0x7c, 0xb2, 0x49, 0x78, + 0x2b, 0x33, 0xa8, 0xba, 0x82, 0xda, 0x18, 0xd2, 0x39, 0x61, 0xe6, 0x38, 0x22, 0xc5, 0x31, 0x7b, + 0x97, 0xb3, 0x3e, 0xd6, 0x7c, 0x60, 0x8f, 0x49, 0x7f, 0x5d, 0x40, 0xf9, 0xbc, 0xe4, 0x53, 0xd2, + 0x24, 0x9e, 0x11, 0x92, 0x26, 0xa6, 0x5b, 0x0c, 0xcf, 0xbf, 0x2e, 0xd0, 0x34, 0xb2, 0xf9, 0xac, + 0x58, 0x72, 0x20, 0x16, 0xc4, 0xec, 0xf6, 0x40, 0x7a, 0xd6, 0xab, 0xa3, 0x30, 0xc7, 0x1e, 0xc8, + 0xa0, 0x14, 0xe5, 0xc2, 0xa3, 0xe8, 0x5f, 0x7e, 0xa8, 0x9c, 0xa3, 0x7d, 0x2c, 0xf2, 0xf3, 0xe8, + 0x5c, 0x05, 0x0d, 0x48, 0x13, 0x97, 0xc4, 0x8d, 0x38, 0x0e, 0x8d, 0xcb, 0xc8, 0xaf, 0x98, 0xbe, + 0xfd, 0x7b, 0x52, 0x8d, 0x0b, 0xdb, 0xc3, 0xe7, 0x0b, 0x46, 0x5c, 0x51, 0x4c, 0x32, 0x51, 0x3d, + 0xd2, 0xf0, 0x36, 0xd0, 0x09, 0x56, 0x27, 0x3c, 0x08, 0x6c, 0x1b, 0xf7, 0x91, 0xb7, 0x0e, 0xfc, + 0xae, 0x3c, 0x9c, 0xb9, 0x9d, 0xd8, 0xa7, 0x46, 0xb2, 0x2e, 0xa9, 0x26, 0x7e, 0xb1, 0xf6, 0x2e, + 0xf2, 0xff, 0xe6, 0xf1, 0x36, 0x43, 0x0e, 0x94, 0xa9, 0x76, 0x0d, 0xc8, 0x1f, 0xde, 0xe5, 0x07, + 0x5c, 0xbf, 0xcd, 0x6e, 0x5c, 0x83, 0xa7, 0x46, 0x73, 0xc8, 0x16, 0x0e, 0xfb, 0xeb, 0x93, 0x8d, + 0x98, 0xaf, 0x0a, 0x68, 0xad, 0xf4, 0xa5, 0xf2, 0x05, 0x2a, 0xbd, 0xe0, 0x3f, 0xbe, 0x0a, 0x7c, + 0xc8, 0x1f, 0x67, 0x53, 0xcb, 0x9a, 0x0c, 0xf8, 0x34, 0x47, 0xaa, 0x21, 0x3f, 0xb9, 0xb1, 0x3c, + 0xa4, 0xe4, 0x65, 0x9e, 0x56, 0xa2, 0x8c, 0xc9, 0x32, 0x8a, 0x2f, 0xaa, 0xb3, 0x44, 0xe6, 0x4a, + 0xd9, 0xec, 0x85, 0x6f, 0x1c, 0xa1, 0x59, 0x81, 0x5f, 0x2c, 0x5e, 0x0a, 0x70, 0x21, 0xf0, 0xa4, + 0x18, 0xd3, 0x25, 0xa3, 0x2e, 0xf2, 0xfd, 0x47, 0x9e, 0x0f, 0xab, 0xc1, 0xe7, 0x98, 0x36, 0xd2, + 0xb5, 0x06, 0xa8, 0x06, 0x84, 0x52, 0x85, 0x3d, 0x20, 0x65, 0xa7, 0x69, 0xe9, 0xed, 0x01, 0x1c, + 0x23, 0x84, 0x47, 0x23, 0xc7, 0x17, 0x6d, 0x6a, 0xce, 0x73, 0xc3, 0x54, 0x8a, 0xfe, 0x76, 0x7b, + 0x08, 0xf9, 0x3e, 0xfd, 0x8e, 0x44, 0xac, 0xf1, 0xf6, 0x16, 0x28, 0x04, 0x73, 0x5e, 0x15, 0x64, + 0xe1, 0x53, 0x18, 0x9f, 0x2a, 0xc0, 0x82, 0x4f, 0xe4, 0x61, 0xb9, 0x0a, 0x9f, 0x70, 0xed, 0xc5, + 0x5f, 0x1f, 0xd8, 0xf0, 0xb7, 0x0c, 0x0a, 0x45, 0xc4, 0xf1, 0x18, 0xe9, 0x41, 0x78, 0x46, 0xd6, + 0x8e, 0x3c, 0x8a, 0x35, 0xfa, 0x70, 0x4c, 0xb0, 0x21, 0xe9, 0x08, 0x75, 0x5c, 0xab, 0x64, 0xaf, + 0x21, 0x0d, 0x22, 0x3e, 0xad, 0xcc, 0x9b, 0xfb, 0x21, 0x34, 0xda, 0x17, 0x60, 0x0f, 0xeb, 0x71, + 0x2c, 0x9f, 0xc2, 0x1e, 0x96, 0x60, 0x9b, 0x2a, 0x86, 0x1f, 0x45, 0x4e, 0xbd, 0xe2, 0x49, 0xec, + 0x5b, 0xe4, 0xa1, 0xf0, 0xba, 0x98, 0x24, 0xd5, 0x4a, 0x8f, 0xca, 0x05, 0xed, 0x5f, 0x44, 0xfa, + 0x10, 0x25, 0xaf, 0x77, 0xed, 0xb1, 0x30, 0xc5, 0xd6, 0xd8, 0x22, 0x37, 0x3a, 0x82, 0x32, 0x8c, + 0x2f, 0xf7, 0x4c, 0x73, 0x04, 0x9d, 0x7e, 0xbc, 0xbb, 0x4f, 0x6a, 0x45, 0xbe, 0x2b, 0x8d, 0x07, + 0x55, 0xac, 0x33, 0x93, 0x9f, 0xe2, 0xb6, 0x5a, 0x91, 0x3b, 0xdf, 0xf3, 0x31, 0xdb, 0xbc, 0xca, + 0xb9, 0xde, 0x59, 0x84, 0xd5, 0x1f, 0x1f, 0x60, 0x5a, 0x9d, 0x3b, 0x13, 0xf9, 0x5d, 0x7b, 0xcd, + 0x6d, 0x75, 0xec, 0x71, 0xae, 0x80, 0x2d, 0x82, 0x97, 0xf0, 0xdf, 0x34, 0xfe, 0xbd, 0x09, 0x69, + 0x1a, 0xef, 0x32, 0x4a, 0x35, 0xd2, 0x43, 0xf4, 0x25, 0xd1, 0xb4, 0x8f, 0x9f, 0x9e, 0xb0, 0x96, + 0x90, 0x4e, 0x97, 0xad, 0xfe, 0xfb, 0x2c, 0x0f, 0x0e, 0x20, 0x45, 0x6b, 0x27, 0xcf, 0xcc, 0x14, + 0x31, 0x89, 0x38, 0xc4, 0xc0, 0x46, 0xb2, 0xae, 0x0f, 0xe3, 0x3a, 0x18, 0x33, 0xc4, 0x1b, 0xd4, + 0x73, 0x0e, 0x93, 0x0b, 0x79, 0x9a, 0x8c, 0xbd, 0x60, 0x17, 0x49, 0x16, 0xf3, 0xaf, 0x98, 0x74, + 0x2c, 0x91, 0x31, 0xa7, 0x18, 0x37, 0x91, 0x1e, 0xa9, 0xd0, 0x92, 0x02, 0xb6, 0x7e, 0x3d, 0xd3, + 0x47, 0x12, 0x47, 0x5c, 0x3f, 0xf0, 0x3c, 0xae, 0xc6, 0x1c, 0xed, 0x7a, 0x46, 0x88, 0xfc, 0x36, + 0x08, 0x1f, 0xcc, 0x1a, 0xe5, 0xcb, 0x58, 0xfb, 0x27, 0x50, 0x94, 0x98, 0x2f, 0xb5, 0xa6, 0x95, + 0x8a, 0x58, 0x70, 0x4b, 0x46, 0x25, 0xff, 0xad, 0xb8, 0x56, 0x43, 0x05, 0xaf, 0xaf, 0x90, 0x49, + 0x1d, 0x02, 0x7a, 0x59, 0x95, 0x0d, 0x3e, 0xfa, 0x09, 0xc1, 0x49, 0xa3, 0xe6, 0x1f, 0xfd, 0x64, + 0x32, 0x37, 0xcc, 0x11, 0x8f, 0x90, 0xe3, 0x72, 0x23, 0xee, 0x71, 0xdd, 0x8c, 0xe7, 0x93, 0xd6, + 0xc8, 0x84, 0xb6, 0x5e, 0x7d, 0xb4, 0xd8, 0xc1, 0x1c, 0x3c, 0xd2, 0x90, 0x6c, 0x31, 0x17, 0x10, + 0x0f, 0x1b, 0x10, 0x0f, 0x0d, 0xed, 0xb7, 0xd5, 0xea, 0xc9, 0xdb, 0x6f, 0xac, 0xdc, 0x35, 0x57, + 0x2e, 0x09, 0x1b, 0x5a, 0xdd, 0x62, 0x7f, 0x01, 0xe1, 0xce, 0xd2, 0x06, 0x42, 0xa9, 0x8f, 0xfd, + 0x93, 0xa7, 0x9f, 0x9f, 0xc1, 0x67, 0x43, 0xfb, 0xac, 0x5a, 0xbd, 0xad, 0x30, 0x7a, 0x88, 0x7b, + 0x26, 0xe3, 0xac, 0x0d, 0x78, 0xb3, 0x43, 0x2b, 0x40, 0x95, 0x2b, 0x62, 0xcc, 0x61, 0x33, 0x1f, + 0xa9, 0xae, 0x6e, 0xbf, 0x3f, 0xc2, 0xab, 0x5b, 0x8e, 0x5c, 0x70, 0xf8, 0x79, 0x90, 0x0e, 0x6f, + 0x63, 0x8b, 0xb3, 0x09, 0xbc, 0x45, 0x7a, 0xed, 0xfa, 0xfd, 0xce, 0xcc, 0x71, 0x5e, 0x82, 0x5c, + 0x1e, 0xc1, 0x50, 0x3e, 0xa5, 0x72, 0x0e, 0xa5, 0x2a, 0xe7, 0x40, 0xfc, 0x16, 0xf1, 0x05, 0x19, + 0x54, 0x7c, 0x72, 0xbf, 0x7f, 0xbf, 0xc4, 0xc5, 0xfd, 0xee, 0x80, 0x14, 0x1f, 0x61, 0xd5, 0xf2, + 0x0a, 0xce, 0x2f, 0x66, 0xfa, 0xe7, 0xc1, 0x98, 0xa1, 0xa3, 0xac, 0xd6, 0xc0, 0x1c, 0x85, 0x0a, + 0xfd, 0xdf, 0x3b, 0xe8, 0x3b, 0xb2, 0x23, 0x96, 0xcd, 0xff, 0x3c, 0x14, 0x35, 0x74, 0x94, 0xd6, + 0xd2, 0x09, 0xa1, 0x4b, 0x78, 0x09, 0x77, 0x1a, 0xd4, 0xd5, 0x61, 0x28, 0xdc, 0x8b, 0xbf, 0xcf, + 0x6a, 0x5c, 0xc7, 0xef, 0x73, 0xbd, 0xa0, 0xf5, 0x69, 0x09, 0x7b, 0x42, 0x48, 0x73, 0x0c, 0x97, + 0x8f, 0x50, 0x89, 0xd1, 0xd5, 0x88, 0x51, 0xae, 0x01, 0xac, 0x29, 0x56, 0x96, 0xb6, 0x92, 0x40, + 0x5e, 0x4a, 0xcc, 0x98, 0x69, 0x71, 0xcb, 0x30, 0xbe, 0x23, 0x1a, 0x7f, 0x79, 0xfd, 0xed, 0x58, + 0x3b, 0xae, 0x74, 0x5a, 0x79, 0x0e, 0xd6, 0x88, 0x79, 0x34, 0x66, 0xcf, 0x84, 0x9b, 0x76, 0xd7, + 0xb4, 0x45, 0x5b, 0x6f, 0x68, 0x4e, 0x4c, 0x86, 0xac, 0x2b, 0x8b, 0x5b, 0x68, 0xc0, 0x52, 0xef, + 0x45, 0xc8, 0xf6, 0x6a, 0x5c, 0x41, 0x9d, 0x1a, 0x39, 0xaf, 0x63, 0x66, 0xad, 0x41, 0x3e, 0xc1, + 0xeb, 0x23, 0xf9, 0x56, 0xf7, 0x82, 0x35, 0x85, 0xb3, 0x21, 0x9c, 0x99, 0x79, 0x19, 0x3d, 0xca, + 0xe0, 0x81, 0x2e, 0x03, 0xcf, 0x64, 0x27, 0xe6, 0x70, 0xb3, 0xe5, 0x07, 0xc9, 0xb8, 0xa6, 0x89, + 0x79, 0x3e, 0x3c, 0x91, 0xc2, 0x3b, 0x75, 0x6c, 0x3f, 0x3c, 0x96, 0x39, 0xb6, 0x06, 0xa1, 0xcd, + 0xc5, 0xd1, 0x22, 0x53, 0x75, 0xca, 0x8c, 0xcf, 0x82, 0x4f, 0x9f, 0x34, 0xae, 0x31, 0xbb, 0x36, + 0x87, 0x9c, 0x44, 0x63, 0x1d, 0x35, 0x1f, 0x4c, 0xe4, 0x58, 0xb1, 0x2e, 0xad, 0xe6, 0xa5, 0xdc, + 0x3a, 0xeb, 0xb5, 0x3c, 0x6c, 0x46, 0x5b, 0xea, 0x32, 0xdb, 0x42, 0x16, 0x28, 0x6c, 0x7d, 0x40, + 0x1a, 0x1e, 0xb6, 0x05, 0x08, 0xed, 0xe2, 0x2a, 0x05, 0xff, 0x51, 0x5c, 0x16, 0x6c, 0x8b, 0x8b, + 0xff, 0xc4, 0x2a, 0xbf, 0xdd, 0x29, 0xa2, 0xc6, 0x9b, 0x50, 0x6e, 0x78, 0x11, 0x71, 0x48, 0xad, + 0xf3, 0xd2, 0x25, 0xad, 0xb7, 0xdc, 0x8f, 0x22, 0x9c, 0x15, 0x1e, 0xb1, 0xdb, 0x92, 0xc9, 0x6b, + 0xc6, 0xca, 0xac, 0x55, 0xca, 0x49, 0x39, 0x8f, 0x71, 0x5a, 0xc5, 0xb7, 0x4b, 0x3b, 0x33, 0x67, + 0xfb, 0xa5, 0x09, 0xf8, 0xef, 0x60, 0xab, 0x05, 0xee, 0x47, 0xd6, 0x24, 0x6e, 0xf4, 0x90, 0x3c, + 0xc8, 0x27, 0xcf, 0x26, 0xfa, 0x92, 0x78, 0x9f, 0x4b, 0x6b, 0x58, 0x87, 0xdb, 0x90, 0xd2, 0xf6, + 0xb2, 0x20, 0x7d, 0xb7, 0xe2, 0x8a, 0x43, 0xfa, 0xcf, 0x66, 0x95, 0x23, 0x33, 0xd1, 0x95, 0xe7, + 0xa6, 0x99, 0x64, 0x74, 0x7c, 0x4b, 0xbe, 0x30, 0x8d, 0x14, 0xcf, 0xba, 0x1d, 0x98, 0x3f, 0x70, + 0xa9, 0xed, 0xf0, 0x64, 0x52, 0x1d, 0x8d, 0x73, 0xaf, 0x60, 0x8d, 0x12, 0xd7, 0x2c, 0x11, 0x2f, + 0x81, 0xb8, 0x77, 0x9e, 0x5b, 0x86, 0xc9, 0xdc, 0x14, 0xf1, 0x97, 0xe4, 0xe9, 0x80, 0xe7, 0x95, + 0x0a, 0xa1, 0x8b, 0x07, 0x53, 0x10, 0xea, 0x89, 0xe6, 0xb9, 0x56, 0xa2, 0x04, 0xef, 0x61, 0x09, + 0x3e, 0xb7, 0xbc, 0x93, 0xe6, 0x1a, 0xca, 0xdf, 0x59, 0xa4, 0xed, 0x87, 0x57, 0x92, 0xfa, 0x00, + 0xb6, 0x12, 0x24, 0x63, 0x00, 0x2f, 0x23, 0xcc, 0x8e, 0x72, 0xcc, 0x45, 0x51, 0x4e, 0xaf, 0xe0, + 0xf8, 0xa1, 0x0f, 0xcb, 0xf1, 0x4b, 0x2d, 0xc2, 0xbe, 0x24, 0x5a, 0x20, 0xe6, 0x11, 0x4a, 0xf9, + 0x7e, 0xa4, 0x45, 0x16, 0xcc, 0x57, 0xcb, 0x5c, 0xd5, 0x02, 0x99, 0x6c, 0xd7, 0x07, 0xd5, 0xb7, + 0x2b, 0x80, 0x3c, 0x39, 0xd3, 0x5b, 0x17, 0xaf, 0x4c, 0x3e, 0x6f, 0xee, 0x9f, 0xa2, 0x5c, 0x17, + 0x6d, 0x5c, 0x57, 0xa1, 0x6c, 0xfa, 0xf3, 0x94, 0xeb, 0xc2, 0x68, 0x26, 0xd7, 0xbd, 0xa4, 0x50, + 0xcc, 0x2f, 0xe2, 0x28, 0xb5, 0x19, 0x78, 0xe1, 0x3c, 0x7b, 0x72, 0x81, 0x09, 0xf2, 0x82, 0x8d, + 0x6d, 0xaa, 0xcb, 0x71, 0x0d, 0xb3, 0x6b, 0x30, 0x56, 0x3d, 0xa3, 0xb2, 0x7f, 0x2d, 0x97, 0x0a, + 0x63, 0x3e, 0xf1, 0xd7, 0xbc, 0x61, 0x21, 0x16, 0xaa, 0x11, 0xab, 0xf2, 0xbc, 0xc5, 0xd4, 0xce, + 0x0b, 0x71, 0x27, 0xef, 0xe8, 0x21, 0x94, 0x1e, 0x59, 0x5d, 0x5c, 0x9b, 0x25, 0xf9, 0xcd, 0x2e, + 0xe6, 0x88, 0x00, 0x8e, 0x90, 0xef, 0x01, 0xb5, 0x4f, 0xa2, 0xdd, 0x7b, 0xab, 0x3f, 0x32, 0x29, + 0xc4, 0x75, 0xe3, 0x75, 0x5c, 0xd6, 0x2f, 0xea, 0xfb, 0xa7, 0xa1, 0x58, 0xae, 0xc5, 0x42, 0x91, + 0x22, 0x62, 0x46, 0xfc, 0xad, 0x8c, 0x5e, 0x70, 0x9a, 0x36, 0x3f, 0x32, 0x21, 0x45, 0x1f, 0xe9, + 0xd9, 0xdd, 0xb3, 0x6a, 0x29, 0xfb, 0xeb, 0xca, 0xca, 0xf4, 0xd7, 0x55, 0x01, 0x76, 0xb3, 0x14, + 0x40, 0x92, 0x59, 0xe5, 0x34, 0x88, 0xdd, 0xce, 0xe4, 0xe3, 0x14, 0xb1, 0x5c, 0x2e, 0x17, 0x7e, + 0x1b, 0x62, 0x65, 0x72, 0x3d, 0xc1, 0x80, 0x7d, 0xfe, 0xe6, 0xd9, 0xcd, 0x23, 0x8f, 0x64, 0xe6, + 0x8b, 0xf9, 0x56, 0xab, 0x51, 0xcc, 0xa3, 0x7b, 0x19, 0x3b, 0x4c, 0x4e, 0xf6, 0x48, 0xd2, 0x3e, + 0x4e, 0xfd, 0x22, 0xde, 0xfb, 0x83, 0x67, 0x55, 0xef, 0xbc, 0x2a, 0x3c, 0x57, 0x77, 0xb4, 0x2b, + 0xf2, 0x69, 0x92, 0xbc, 0x35, 0x2d, 0x4d, 0xe4, 0x7a, 0xf2, 0xec, 0x0d, 0x31, 0x21, 0x3f, 0x22, + 0x76, 0x47, 0x0b, 0x6e, 0xab, 0x86, 0x42, 0xb9, 0xc4, 0x39, 0x13, 0x0a, 0x63, 0x26, 0x5a, 0xab, + 0x76, 0xf4, 0x44, 0x8d, 0x81, 0xe7, 0x30, 0xad, 0x40, 0xc3, 0xee, 0x0f, 0xea, 0x33, 0xb1, 0x9b, + 0x24, 0xf1, 0x3b, 0xfc, 0xe0, 0x40, 0x6e, 0xe4, 0xa4, 0xd8, 0x69, 0x92, 0x52, 0x51, 0x1e, 0x78, + 0x77, 0x69, 0x12, 0x97, 0xa3, 0x61, 0xf4, 0xf9, 0x51, 0xc6, 0x8e, 0xa6, 0x99, 0x0b, 0xc0, 0x64, + 0x7a, 0x1e, 0xa6, 0x30, 0x27, 0x80, 0x5c, 0x03, 0x8d, 0xd5, 0x04, 0x3e, 0xc0, 0xa3, 0xd2, 0x78, + 0x33, 0xfb, 0x11, 0x0f, 0xe1, 0x97, 0xdb, 0x08, 0x77, 0x4c, 0x98, 0x17, 0x6e, 0x46, 0xba, 0xa6, + 0xce, 0x9d, 0x65, 0x8e, 0x86, 0x0d, 0xb2, 0x55, 0xcb, 0xcb, 0x7b, 0x7b, 0x7b, 0xce, 0x27, 0x26, + 0x62, 0xd9, 0xf9, 0x4d, 0x13, 0xd6, 0x47, 0x43, 0xfa, 0xd4, 0xd9, 0xeb, 0xd5, 0xd6, 0xb7, 0x26, + 0x94, 0x3a, 0xd3, 0xd1, 0x7e, 0x14, 0x03, 0x4b, 0xe9, 0x13, 0x78, 0xf6, 0x86, 0x0d, 0xc4, 0xc3, + 0xb0, 0xb6, 0xeb, 0x0d, 0xf6, 0x77, 0xb5, 0x54, 0xa4, 0x21, 0x16, 0x7c, 0x63, 0x65, 0x8f, 0x28, + 0x9f, 0x63, 0xe7, 0x97, 0xf5, 0x3f, 0x10, 0x6e, 0x4e, 0x61, 0xf3, 0x21, 0xb5, 0xe7, 0x8c, 0xbc, + 0x08, 0x8e, 0x81, 0xee, 0x26, 0x3d, 0x47, 0xff, 0x2c, 0xdc, 0xd5, 0x7d, 0xbf, 0xc3, 0x91, 0x25, + 0x4b, 0x8b, 0xba, 0xe3, 0x57, 0xf7, 0x27, 0x1a, 0x48, 0x9f, 0x32, 0x90, 0xe1, 0x01, 0x4e, 0xc0, + 0xd7, 0x74, 0xfa, 0x11, 0xcc, 0x77, 0x42, 0xf6, 0xa4, 0xb8, 0x49, 0x9e, 0xd1, 0xca, 0x62, 0x9f, + 0xde, 0xe8, 0x57, 0x3e, 0xf9, 0x06, 0x52, 0xab, 0xb3, 0x8f, 0xfc, 0x07, 0xce, 0x48, 0x9e, 0xe1, + 0x14, 0x11, 0x83, 0xe4, 0x16, 0x37, 0xef, 0x3f, 0xfd, 0x06, 0xf3, 0x35, 0x37, 0x6c, 0x40, 0x4a, + 0x72, 0x96, 0x7b, 0x91, 0xde, 0x5b, 0x71, 0x20, 0x87, 0x3c, 0x13, 0x39, 0xee, 0x9c, 0xe1, 0x2e, + 0x3b, 0x9c, 0x7d, 0xf8, 0xc9, 0xad, 0x6c, 0x6d, 0x48, 0x14, 0x31, 0x6d, 0x8b, 0x55, 0x2e, 0xfa, + 0x30, 0x87, 0xbc, 0x27, 0x39, 0x3c, 0x48, 0xf5, 0x9d, 0xcd, 0x1c, 0x07, 0x95, 0x34, 0xc0, 0xc8, + 0xb2, 0xa7, 0xb0, 0x7f, 0x1b, 0xae, 0xa9, 0xc8, 0x77, 0x0f, 0xf4, 0x36, 0xe9, 0x5d, 0xe0, 0x36, + 0xcc, 0x1f, 0x1d, 0x1f, 0x91, 0xcb, 0x78, 0x47, 0xcc, 0xb4, 0xb9, 0x3b, 0x9a, 0xe3, 0x5c, 0x24, + 0xee, 0xdb, 0x61, 0x0f, 0x45, 0x47, 0xc8, 0x56, 0x7b, 0x90, 0xe5, 0x35, 0x86, 0xbe, 0xe7, 0xca, + 0xa9, 0xdf, 0xf4, 0x54, 0xcf, 0x89, 0x9e, 0x11, 0x11, 0xdb, 0x75, 0x6d, 0x74, 0x68, 0xc6, 0x02, + 0xb0, 0xcc, 0x08, 0x80, 0xf5, 0x9d, 0x6d, 0x62, 0x57, 0xab, 0xb0, 0x53, 0xc4, 0xf0, 0x62, 0x39, + 0xaa, 0xc2, 0x45, 0x1e, 0x9c, 0x50, 0xa2, 0xc0, 0xfa, 0x82, 0xb4, 0xb3, 0xe3, 0x29, 0x86, 0x42, + 0x77, 0x31, 0x48, 0x25, 0x1e, 0xe0, 0x3d, 0x39, 0x3b, 0xca, 0x05, 0x0e, 0xc3, 0x13, 0x43, 0x0b, + 0x47, 0xc7, 0x9b, 0x71, 0xe6, 0xf7, 0xb1, 0xcd, 0x84, 0xa9, 0xbf, 0x2b, 0x1a, 0x64, 0x7b, 0x0f, + 0x37, 0x52, 0x1b, 0x0f, 0x52, 0x74, 0xe4, 0xa7, 0xc7, 0x9b, 0x55, 0xbb, 0x84, 0x9c, 0xc0, 0x0a, + 0xc8, 0x7d, 0x62, 0xc8, 0xe1, 0x57, 0x79, 0xf2, 0xcd, 0x12, 0xed, 0x7e, 0xea, 0x9f, 0x18, 0xa2, + 0x2f, 0x99, 0x8e, 0xce, 0x11, 0x7e, 0xc7, 0xdb, 0x60, 0x67, 0xa2, 0x49, 0x2f, 0xe9, 0x53, 0x23, + 0xd0, 0x66, 0xa3, 0x18, 0x14, 0x7e, 0xa4, 0x95, 0xd5, 0xe0, 0x47, 0x0e, 0xfd, 0x24, 0xf9, 0xc5, + 0xde, 0x94, 0x38, 0x9a, 0x40, 0x0c, 0xf0, 0x1f, 0xe1, 0x9d, 0xe4, 0x27, 0x86, 0x64, 0x7d, 0x1b, + 0x4a, 0x71, 0x31, 0x2e, 0x29, 0x06, 0x4a, 0xfc, 0x9f, 0x3e, 0x00, 0x5b, 0x34, 0x17, 0xdb, 0x55, + 0x0c, 0xb9, 0x03, 0x5d, 0x4b, 0x0d, 0x5f, 0xaf, 0x86, 0xdc, 0x2d, 0xdd, 0x27, 0x7b, 0xf7, 0x3e, + 0xd4, 0x64, 0xb8, 0x7d, 0x1e, 0x14, 0xce, 0x9c, 0x07, 0x66, 0xde, 0xd9, 0xab, 0x46, 0x08, 0x63, + 0xcf, 0x86, 0x5f, 0x00, 0x4b, 0xff, 0xda, 0x62, 0xda, 0x2d, 0x23, 0xbe, 0xdf, 0x84, 0xf5, 0xfc, + 0x98, 0xe3, 0xd6, 0xaa, 0xfe, 0xc8, 0x35, 0xcd, 0x55, 0x97, 0xaa, 0xcb, 0x47, 0x6d, 0x20, 0x59, + 0x92, 0xbd, 0x72, 0x5b, 0x38, 0x12, 0x33, 0xc2, 0x46, 0x36, 0x21, 0xe6, 0x15, 0xa6, 0xbd, 0x41, + 0xb7, 0x58, 0x89, 0x9a, 0x88, 0xbd, 0x49, 0xb2, 0x4a, 0x6d, 0x27, 0xff, 0xf1, 0xfd, 0x23, 0x09, + 0x3a, 0x55, 0x72, 0x23, 0x8e, 0x7a, 0x68, 0xdf, 0x13, 0x4a, 0xdd, 0x90, 0x4b, 0xde, 0x9b, 0x25, + 0x3f, 0x8e, 0x20, 0x4a, 0x84, 0x9b, 0xbb, 0x8e, 0xf6, 0xee, 0xee, 0x6e, 0x59, 0x52, 0xa2, 0xff, + 0x71, 0x8f, 0x73, 0xca, 0xc6, 0x87, 0x16, 0x8c, 0x8e, 0x39, 0xe4, 0x42, 0xd5, 0x63, 0xf2, 0x0f, + 0x54, 0x78, 0x5a, 0x25, 0xff, 0x83, 0x30, 0x07, 0x73, 0xdb, 0xb3, 0x36, 0x3f, 0x14, 0xee, 0x59, + 0x79, 0x0a, 0xdb, 0x60, 0x17, 0x34, 0x39, 0x79, 0xd4, 0x29, 0x62, 0xbf, 0x1a, 0xc8, 0x2b, 0x18, + 0x62, 0x25, 0xc7, 0x3b, 0xa4, 0xba, 0x61, 0xef, 0x9d, 0x08, 0x07, 0x8a, 0xd9, 0xb9, 0xb3, 0x37, + 0x4a, 0xe7, 0xea, 0xcf, 0x88, 0x78, 0x8c, 0xf5, 0x3f, 0x90, 0x82, 0xa9, 0x33, 0xa0, 0xab, 0x1e, + 0x3f, 0xc2, 0xad, 0x04, 0xdb, 0xc1, 0x14, 0x40, 0xce, 0xf9, 0x5f, 0x87, 0xb0, 0x05, 0x25, 0x1d, + 0x96, 0x63, 0x8f, 0xec, 0xec, 0x69, 0x25, 0xed, 0x40, 0xdb, 0x9d, 0x24, 0xcb, 0xe7, 0xba, 0xf4, + 0x5b, 0x7a, 0x66, 0xd4, 0x40, 0xa1, 0xea, 0xb9, 0xda, 0xac, 0x9d, 0x43, 0x33, 0xd7, 0xa0, 0xd6, + 0x3d, 0x4e, 0xfa, 0x91, 0x12, 0x43, 0xa9, 0xc8, 0x6b, 0x08, 0xad, 0x84, 0x1c, 0x91, 0x3e, 0xb6, + 0x49, 0xad, 0x59, 0xec, 0x52, 0x17, 0xa6, 0xa8, 0x4f, 0x2e, 0x52, 0x1f, 0x9c, 0x71, 0x9f, 0x71, + 0xb4, 0xd5, 0x07, 0x95, 0x97, 0xbb, 0x63, 0x06, 0xc4, 0xd3, 0xc2, 0xd5, 0x14, 0x09, 0x4d, 0x1a, + 0x7e, 0x9e, 0x46, 0xe9, 0x76, 0x1c, 0xa5, 0x99, 0xb5, 0x48, 0x37, 0x70, 0x95, 0xc6, 0xd5, 0xbc, + 0x60, 0xe1, 0x25, 0x28, 0xa2, 0x7d, 0xdc, 0xb9, 0xeb, 0x65, 0x3b, 0xc1, 0x7f, 0x60, 0x3b, 0x98, + 0x9b, 0x0c, 0x33, 0xfd, 0x60, 0x56, 0x3d, 0xe4, 0x99, 0xb9, 0xce, 0x1f, 0xb8, 0x16, 0x13, 0xae, + 0xfc, 0xdb, 0xc1, 0xe8, 0x71, 0x8d, 0xc6, 0x7f, 0xb6, 0x47, 0xec, 0xa9, 0x8a, 0xc8, 0x19, 0xa4, + 0xf5, 0xcc, 0xfb, 0x49, 0x0f, 0x40, 0x69, 0xcd, 0xfb, 0x50, 0x2e, 0x9b, 0xff, 0xe9, 0x1c, 0x98, + 0xa2, 0x86, 0x5b, 0x23, 0x38, 0x03, 0x1b, 0x5e, 0x1a, 0x8a, 0x5e, 0x16, 0x32, 0xd0, 0x9c, 0x4a, + 0xcd, 0x77, 0x18, 0x45, 0x32, 0xe1, 0x38, 0x25, 0x42, 0xb6, 0x69, 0xd9, 0x91, 0xf8, 0x26, 0xed, + 0xe9, 0xcd, 0xa2, 0x3d, 0x3d, 0x17, 0xc9, 0x37, 0x95, 0xce, 0x5a, 0xb9, 0x34, 0x9c, 0xd5, 0x5a, + 0xb2, 0x06, 0x0a, 0xb2, 0xa4, 0x20, 0xca, 0xe6, 0x69, 0xe9, 0x26, 0x3f, 0xe3, 0xf9, 0x19, 0xc2, + 0x20, 0x73, 0x16, 0xae, 0x77, 0x2c, 0xe3, 0xe4, 0x7f, 0x39, 0x7a, 0x00, 0x39, 0x11, 0x17, 0xce, + 0xdd, 0x16, 0x84, 0x98, 0xca, 0x23, 0x38, 0xd5, 0xdd, 0xf6, 0xd1, 0x4f, 0x54, 0x1f, 0x6f, 0xa6, + 0xb7, 0xb7, 0x83, 0xf4, 0x36, 0x59, 0x5c, 0xa8, 0x34, 0x7a, 0xf4, 0xfc, 0x04, 0x1a, 0xdd, 0x29, + 0x76, 0x69, 0xaa, 0xdf, 0x07, 0x7f, 0xf8, 0x39, 0x08, 0x46, 0x0d, 0x14, 0x57, 0x08, 0x69, 0x89, + 0x21, 0x7a, 0x55, 0x6a, 0x88, 0x0f, 0x0e, 0xf7, 0x31, 0xd5, 0x24, 0x5f, 0x6d, 0xec, 0xdf, 0x83, + 0xf7, 0xe9, 0x8c, 0xce, 0x88, 0x63, 0xba, 0x6c, 0x70, 0x14, 0xab, 0x71, 0xa8, 0x77, 0x59, 0x8a, + 0x61, 0xaa, 0x2a, 0x7f, 0x1a, 0xf0, 0xaf, 0xc3, 0x59, 0x8c, 0x2d, 0xe2, 0x7d, 0xf3, 0xe8, 0x70, + 0xfd, 0x0f, 0x16, 0xc1, 0x17, 0x90, 0x26, 0x8a, 0xb1, 0xd3, 0xe2, 0x9d, 0xe1, 0x08, 0x4e, 0xf5, + 0x66, 0xcd, 0x1f, 0x1d, 0x2d, 0xab, 0xdf, 0x84, 0xb9, 0xab, 0x98, 0x6b, 0x2d, 0x31, 0x17, 0x13, + 0x5f, 0x10, 0x73, 0x92, 0x1f, 0x10, 0xfe, 0xaa, 0xff, 0x9a, 0xaf, 0x9e, 0x50, 0x3d, 0x81, 0x58, + 0x65, 0x43, 0xc0, 0x0d, 0xfd, 0x28, 0x1b, 0x4b, 0x64, 0x85, 0x46, 0x96, 0x87, 0x92, 0x7f, 0xc6, + 0x72, 0xa8, 0x80, 0x76, 0xfc, 0x2d, 0x84, 0xce, 0x92, 0x7f, 0x61, 0x9e, 0xaa, 0x03, 0x68, 0xad, + 0xea, 0xc5, 0x95, 0xcd, 0x53, 0xbf, 0xe7, 0xd3, 0xd7, 0x1c, 0xdd, 0xc2, 0x22, 0x5d, 0xa6, 0x7d, + 0xf9, 0x42, 0xf5, 0x54, 0xe0, 0x1c, 0xbe, 0x19, 0x69, 0xd8, 0x10, 0x40, 0x78, 0x54, 0x99, 0xd3, + 0x2b, 0xac, 0x43, 0xf0, 0xfa, 0x85, 0x88, 0xa1, 0x27, 0x1b, 0x37, 0xb0, 0xf5, 0x80, 0x83, 0x65, + 0xfa, 0x3a, 0xc4, 0xef, 0xda, 0xb8, 0x73, 0xd2, 0xee, 0x82, 0x9b, 0xec, 0xf5, 0x71, 0xb5, 0x35, + 0xcc, 0x0c, 0xb0, 0x3d, 0xb3, 0x09, 0xc8, 0xef, 0x0b, 0x4a, 0xe9, 0xa4, 0x79, 0xc4, 0xe7, 0x3b, + 0x7c, 0x16, 0x86, 0x14, 0xad, 0x4c, 0xdd, 0xab, 0x8d, 0xd0, 0x6e, 0x3e, 0xd2, 0x04, 0x13, 0xc7, + 0x17, 0x37, 0x20, 0x17, 0x54, 0x10, 0xbf, 0xb3, 0x16, 0x7e, 0x74, 0x50, 0xdb, 0x4f, 0xfb, 0x74, + 0x0e, 0xe2, 0x9e, 0x59, 0xac, 0xa4, 0x91, 0xed, 0x60, 0x8d, 0x90, 0xa5, 0x39, 0xc8, 0xa7, 0xfe, + 0xf2, 0x43, 0xa5, 0x5f, 0xa5, 0x36, 0xcf, 0xe0, 0xe8, 0x3d, 0x8b, 0x78, 0xb6, 0x15, 0x69, 0xf2, + 0x76, 0x8b, 0x55, 0xaa, 0x93, 0x8d, 0x16, 0x17, 0xe8, 0x22, 0x7d, 0xc4, 0x19, 0xc5, 0x4c, 0x61, + 0x88, 0x5e, 0xee, 0x00, 0xd9, 0xf8, 0xc4, 0x41, 0x97, 0x29, 0xd2, 0xbb, 0x43, 0xec, 0xc1, 0x2d, + 0xb2, 0x23, 0x27, 0x42, 0x7b, 0xf9, 0x25, 0x6e, 0x70, 0x75, 0x92, 0x1f, 0x87, 0x47, 0xec, 0xe6, + 0x76, 0xef, 0x6a, 0xef, 0xd1, 0x0d, 0x6b, 0x5a, 0xd4, 0xf3, 0xe1, 0xa5, 0x2e, 0x20, 0x67, 0xb0, + 0x31, 0x7f, 0xd8, 0x0d, 0x53, 0x57, 0x85, 0x78, 0x2f, 0xf7, 0x58, 0xe3, 0x86, 0xd0, 0x2a, 0xf0, + 0xb6, 0x59, 0x8e, 0x24, 0xbc, 0x3a, 0x31, 0x93, 0x63, 0x83, 0x2a, 0xad, 0xf1, 0xa4, 0xb8, 0x3a, + 0x67, 0xf8, 0x45, 0x18, 0x88, 0x39, 0x10, 0xbe, 0x03, 0x52, 0xaf, 0x4c, 0xf1, 0x14, 0x7a, 0xd9, + 0xbe, 0xda, 0x15, 0x95, 0xe4, 0x82, 0x07, 0xc9, 0xaa, 0xc3, 0x5a, 0x92, 0x23, 0x5b, 0xc4, 0x5f, + 0x67, 0x7e, 0xad, 0x11, 0x29, 0x62, 0x8e, 0x6c, 0xe8, 0x2c, 0xad, 0x35, 0x3a, 0xfc, 0x08, 0x89, + 0xde, 0x98, 0x31, 0xbc, 0x0e, 0xe9, 0xf3, 0xca, 0x3d, 0xc2, 0x72, 0x05, 0xbf, 0x8f, 0x9a, 0xcd, + 0xeb, 0x10, 0xd6, 0xef, 0xc7, 0x0c, 0xee, 0x87, 0x64, 0x7d, 0xe0, 0x07, 0x3c, 0x37, 0x8d, 0xf5, + 0x7b, 0xae, 0x16, 0xb1, 0x87, 0x41, 0xb1, 0xe3, 0x12, 0x9f, 0xb4, 0xe7, 0x51, 0x98, 0xfa, 0x23, + 0x3d, 0xdb, 0x43, 0xda, 0x39, 0xd4, 0x1f, 0x4f, 0x10, 0x5f, 0xcb, 0xd6, 0x3f, 0xef, 0x0b, 0x7f, + 0x7f, 0x83, 0xdd, 0x29, 0x3f, 0x36, 0x73, 0x9c, 0xaa, 0x37, 0x18, 0x3e, 0xd9, 0x06, 0x5d, 0xc2, + 0x8a, 0xbd, 0xa7, 0xef, 0x93, 0x27, 0x1a, 0x37, 0xb8, 0xc8, 0x62, 0xde, 0x95, 0x69, 0xf3, 0xac, + 0xa8, 0xda, 0x0f, 0x66, 0x3d, 0xca, 0xcd, 0x46, 0xb3, 0x1e, 0x67, 0xcd, 0x7d, 0x6e, 0xe4, 0xf1, + 0x1d, 0x5f, 0xa8, 0x39, 0x8f, 0xeb, 0x10, 0xbe, 0xaf, 0xbe, 0xa8, 0x0c, 0xfe, 0xe2, 0x00, 0x72, + 0xba, 0xe3, 0x52, 0x20, 0xdc, 0x1f, 0xb5, 0xca, 0xa5, 0xda, 0x9a, 0x45, 0x36, 0x74, 0xc2, 0xfb, + 0xe3, 0x82, 0x8b, 0xca, 0x70, 0x7c, 0x78, 0x24, 0x31, 0x7f, 0xf4, 0x8f, 0x96, 0x8c, 0x73, 0xf6, + 0x71, 0x9c, 0xef, 0x47, 0x70, 0x6c, 0xf6, 0x07, 0xb6, 0x83, 0x1f, 0xff, 0x82, 0xe4, 0xbd, 0x0c, + 0x57, 0x7b, 0x3f, 0xce, 0xb8, 0xa7, 0xd8, 0xf3, 0xde, 0x3e, 0x41, 0x89, 0x17, 0x5c, 0x52, 0x06, + 0x11, 0xc7, 0x73, 0x42, 0x2b, 0x95, 0x03, 0xc8, 0xa1, 0x26, 0xa3, 0x17, 0xc8, 0x07, 0xa8, 0x8b, + 0x66, 0x4b, 0x15, 0xa6, 0x25, 0xe9, 0x69, 0xb8, 0x17, 0xe5, 0x03, 0xe9, 0x89, 0x9f, 0x2b, 0xa7, + 0xa4, 0x95, 0xca, 0x39, 0x9c, 0xa3, 0x2e, 0xcd, 0x2f, 0x82, 0x90, 0x38, 0x3e, 0xd9, 0x8c, 0x25, + 0x0e, 0x1e, 0x66, 0xaf, 0xf6, 0xbf, 0x78, 0x33, 0x6a, 0xd2, 0xea, 0xb4, 0x2f, 0x4c, 0xf7, 0xd5, + 0xb1, 0x50, 0x2e, 0x2f, 0x45, 0x1e, 0x25, 0x56, 0x44, 0xfe, 0x00, 0x14, 0x45, 0x5a, 0x01, 0x81, + 0x38, 0xf2, 0x2b, 0x69, 0xfe, 0x44, 0x36, 0xcc, 0x3f, 0x4f, 0x3e, 0xd7, 0xd2, 0xeb, 0x04, 0xe9, + 0x34, 0x46, 0x0f, 0x04, 0x7e, 0x46, 0xed, 0xf3, 0x4e, 0x23, 0x3b, 0xd2, 0x98, 0xaf, 0x7e, 0x13, + 0x3f, 0x57, 0x91, 0x9d, 0x28, 0x51, 0xec, 0x27, 0x9e, 0xe7, 0x68, 0xa8, 0x73, 0xec, 0xe1, 0xf8, + 0x7d, 0xe9, 0xb2, 0x44, 0x94, 0xaf, 0x4e, 0x11, 0x7b, 0xd3, 0x47, 0xfe, 0x96, 0x48, 0x16, 0x47, + 0x7e, 0x5a, 0x44, 0x44, 0x5d, 0x6a, 0x76, 0x83, 0x1e, 0xb1, 0xad, 0x80, 0xbd, 0x18, 0x58, 0xab, + 0xb1, 0xde, 0x5f, 0x9c, 0x07, 0x1b, 0x9d, 0x97, 0x90, 0xcf, 0xea, 0xfd, 0x5d, 0x2c, 0xcb, 0x6d, + 0x43, 0x8e, 0xbb, 0x0a, 0xa9, 0x64, 0x15, 0x72, 0xf3, 0x16, 0x35, 0x32, 0x42, 0x4a, 0x3a, 0xd2, + 0x9e, 0x68, 0x8f, 0x82, 0xf5, 0x69, 0xec, 0x6a, 0xbc, 0x81, 0xab, 0xac, 0x3b, 0x82, 0x5c, 0x92, + 0x6c, 0x20, 0x39, 0x94, 0xb1, 0x0d, 0x29, 0xe7, 0x1f, 0x06, 0x32, 0x29, 0xa7, 0x1a, 0xa7, 0x88, + 0x77, 0x08, 0x04, 0xb6, 0xc0, 0x3e, 0x67, 0x84, 0xcf, 0x71, 0x0a, 0x91, 0x5b, 0x70, 0xb0, 0xa5, + 0x57, 0x8e, 0xd0, 0x8a, 0x6a, 0xd8, 0xa0, 0x9e, 0x86, 0x20, 0xbf, 0x80, 0x23, 0x68, 0x88, 0xe5, + 0x6b, 0xe7, 0x5c, 0x63, 0x32, 0x6b, 0xfc, 0xd3, 0x0e, 0xc5, 0xb3, 0xac, 0x2b, 0x5e, 0x9b, 0x82, + 0x00, 0x9d, 0x5f, 0x05, 0x26, 0x3c, 0xcd, 0x99, 0xf0, 0x94, 0x61, 0x4d, 0xed, 0x70, 0xeb, 0x23, + 0x31, 0xd6, 0x53, 0x11, 0x11, 0x61, 0x3d, 0x01, 0x1c, 0xaf, 0xa3, 0xe9, 0xdd, 0xf1, 0xf1, 0xa5, + 0xf6, 0x66, 0x7d, 0xfd, 0x44, 0x4b, 0x1e, 0x4c, 0x0b, 0x0b, 0xbd, 0xce, 0xb4, 0x9d, 0x99, 0xe6, + 0xed, 0x42, 0xcc, 0x03, 0xd2, 0x86, 0x40, 0xca, 0xe2, 0xa3, 0xb0, 0x03, 0xbc, 0x33, 0xce, 0x3e, + 0x68, 0x3e, 0x3d, 0x42, 0x33, 0x81, 0xc6, 0x2b, 0x63, 0xb4, 0xaa, 0x58, 0x9f, 0x15, 0xf1, 0x33, + 0x4e, 0xfa, 0x23, 0x12, 0xca, 0xa3, 0x96, 0x05, 0x38, 0x22, 0xc8, 0xdd, 0x31, 0xcd, 0xfb, 0x42, + 0x00, 0xa6, 0xce, 0xa8, 0x03, 0xd7, 0x6a, 0xcf, 0xd1, 0x47, 0xec, 0x59, 0xaa, 0xde, 0x89, 0x1f, + 0x71, 0x20, 0x24, 0xde, 0x37, 0x6c, 0xc0, 0x19, 0x34, 0x16, 0x55, 0xd7, 0x77, 0x4c, 0x5f, 0x4c, + 0x7c, 0xe1, 0x15, 0x71, 0xaa, 0xd4, 0x1b, 0x93, 0xbc, 0xe2, 0xd4, 0x75, 0xcf, 0xd5, 0xad, 0xa9, + 0x5d, 0x1c, 0xe6, 0x62, 0xae, 0x58, 0x34, 0xa9, 0x7d, 0xb7, 0x38, 0x3f, 0xd3, 0x70, 0xba, 0x85, + 0x70, 0xfa, 0xe3, 0x7d, 0x6a, 0x79, 0xb4, 0x06, 0xb4, 0x00, 0xed, 0x78, 0xec, 0xf9, 0x78, 0x3f, + 0xfb, 0x67, 0xea, 0x46, 0x79, 0x53, 0x8c, 0x7d, 0x15, 0x7e, 0x6f, 0x69, 0xb7, 0xd7, 0xaa, 0x91, + 0x2e, 0x3e, 0x43, 0x4e, 0xee, 0x07, 0x07, 0xb4, 0x11, 0xff, 0xf8, 0x65, 0x95, 0xbe, 0x14, 0xa6, + 0xcf, 0x32, 0xe2, 0xf0, 0x8b, 0xf7, 0x91, 0x6f, 0x34, 0x22, 0xb7, 0x9e, 0x5b, 0xff, 0x7d, 0x1f, + 0x72, 0x57, 0xc2, 0xa2, 0x93, 0x57, 0xc8, 0x15, 0xe0, 0x6c, 0x77, 0x8f, 0x3c, 0x4a, 0x2b, 0xdf, + 0xdf, 0xec, 0x97, 0x2b, 0x9d, 0x79, 0x81, 0x9f, 0x11, 0x6f, 0x4e, 0x67, 0x56, 0x24, 0x9b, 0x23, + 0x7f, 0xa1, 0xed, 0x17, 0x15, 0x66, 0x52, 0x91, 0xea, 0x0b, 0x10, 0xca, 0x78, 0xce, 0x71, 0xd4, + 0xec, 0x7c, 0x24, 0xba, 0x2f, 0xe5, 0xc1, 0xb2, 0x54, 0xb5, 0xca, 0x0e, 0xcd, 0xfb, 0x00, 0xea, + 0xda, 0x9d, 0x28, 0xb3, 0xd8, 0xe4, 0x22, 0x67, 0x5e, 0x66, 0x09, 0x52, 0x60, 0xe2, 0xf7, 0xff, + 0x7c, 0x20, 0x7a, 0x52, 0xb5, 0xf9, 0x42, 0xcc, 0x73, 0xae, 0x12, 0xb6, 0xe1, 0xd8, 0x06, 0xb7, + 0xda, 0x92, 0x4c, 0x09, 0xd0, 0x54, 0xde, 0x09, 0xa1, 0xb7, 0x07, 0x65, 0x03, 0x96, 0xef, 0x94, + 0xfe, 0x4a, 0xd6, 0x4b, 0x0d, 0xff, 0x3c, 0x14, 0x33, 0x11, 0x67, 0x13, 0x33, 0xc8, 0x1f, 0x3d, + 0x31, 0x24, 0x99, 0x84, 0xdf, 0xb1, 0xd0, 0x7b, 0x40, 0x6d, 0xd1, 0x62, 0x81, 0x11, 0x27, 0x6b, + 0x36, 0x61, 0xa5, 0xb1, 0x25, 0xc1, 0xc1, 0x66, 0x23, 0x51, 0xc7, 0x68, 0x08, 0x31, 0x63, 0xc2, + 0xda, 0xc8, 0x5a, 0xcd, 0x8b, 0x6f, 0x5b, 0x01, 0x66, 0xc8, 0xfd, 0x5a, 0x27, 0x38, 0x21, 0xef, + 0xb6, 0x30, 0x14, 0xdc, 0x46, 0xb6, 0xf3, 0x00, 0xd6, 0xaf, 0x75, 0xe6, 0x95, 0xb1, 0xd6, 0x53, + 0x86, 0xce, 0x11, 0xae, 0x72, 0x2e, 0xd9, 0x6e, 0x1a, 0x84, 0xaf, 0x92, 0xb6, 0x88, 0x6c, 0x6b, + 0x83, 0x3c, 0x94, 0x71, 0xc8, 0x3e, 0x8d, 0x74, 0x71, 0xd3, 0x9a, 0xba, 0xd8, 0x3f, 0x48, 0xb7, + 0x89, 0x62, 0x9f, 0xe2, 0x9a, 0x56, 0x30, 0xa9, 0xfe, 0x72, 0x6c, 0x95, 0x21, 0xe6, 0x13, 0xa3, + 0x3b, 0x7e, 0x85, 0xb5, 0xed, 0xed, 0x8b, 0xb0, 0x06, 0x8a, 0x2c, 0xd3, 0x62, 0x33, 0x75, 0x61, + 0x2d, 0xd5, 0x48, 0x0b, 0xfc, 0x28, 0x9f, 0x2e, 0x20, 0xff, 0x20, 0x75, 0xb8, 0x1e, 0x2a, 0x36, + 0xad, 0x6c, 0x11, 0x63, 0x24, 0x65, 0x55, 0x55, 0x88, 0xbd, 0x0e, 0xcd, 0x3f, 0x07, 0x75, 0xf3, + 0x46, 0xc7, 0xaf, 0xc8, 0xc2, 0x9f, 0xc3, 0x93, 0x8e, 0x48, 0xc3, 0x86, 0x7f, 0x39, 0x10, 0xfd, + 0x48, 0x44, 0xfc, 0xc8, 0x8c, 0x4b, 0x12, 0x5e, 0x05, 0x45, 0x31, 0x87, 0x76, 0x22, 0xe3, 0x20, + 0x7b, 0x0e, 0x94, 0x68, 0xb8, 0x24, 0x8a, 0xae, 0x30, 0x32, 0x17, 0x57, 0x89, 0x79, 0xa3, 0xca, + 0x53, 0xb8, 0x2a, 0x08, 0xfd, 0xff, 0x7e, 0xa4, 0x14, 0xe4, 0x03, 0x25, 0x15, 0x4d, 0x04, 0xdb, + 0xd2, 0x19, 0x6a, 0x56, 0x06, 0xa9, 0x1e, 0xaf, 0x5b, 0x39, 0x27, 0xea, 0xa3, 0x71, 0xc3, 0x1a, + 0xcf, 0xaa, 0x31, 0x46, 0xd8, 0x76, 0xdc, 0x6e, 0x92, 0x74, 0x91, 0x2e, 0x84, 0xf6, 0x2d, 0xd1, + 0x4f, 0xfa, 0xfb, 0x38, 0x56, 0xa4, 0x21, 0x96, 0x27, 0x55, 0xdb, 0x43, 0x91, 0x3e, 0x4c, 0xbb, + 0xfa, 0xe4, 0x2b, 0xd2, 0xd4, 0x48, 0x42, 0xd8, 0x07, 0x50, 0x74, 0x0e, 0x2d, 0x92, 0xb1, 0x73, + 0x7a, 0x2c, 0x8f, 0x66, 0x86, 0x82, 0xdc, 0x29, 0x9d, 0x3a, 0x38, 0x28, 0x76, 0x0e, 0xce, 0x28, + 0x57, 0x5e, 0xcc, 0x42, 0xfb, 0x42, 0xca, 0x6e, 0x91, 0x5e, 0x9b, 0x18, 0x49, 0x38, 0x7b, 0x1d, + 0x3d, 0xac, 0x5f, 0xc0, 0x54, 0xb9, 0x8a, 0x68, 0x9f, 0xa4, 0x51, 0x0a, 0xce, 0xbb, 0xbe, 0x91, + 0xac, 0x1a, 0xe9, 0x1c, 0xc9, 0x3d, 0x81, 0x7a, 0x55, 0x39, 0x21, 0x16, 0x92, 0x82, 0x76, 0x7f, + 0xa6, 0x3f, 0xf5, 0x45, 0xdd, 0x67, 0x1f, 0xc1, 0xba, 0x0c, 0x64, 0xbf, 0xe9, 0x9e, 0x1e, 0xb3, + 0xd3, 0x4e, 0xb5, 0x12, 0x46, 0xea, 0x42, 0x9a, 0x72, 0x01, 0xfb, 0xdc, 0xf4, 0x18, 0x2e, 0xea, + 0x3d, 0xbb, 0xbe, 0xb6, 0x77, 0xa4, 0xd7, 0xd9, 0xd3, 0x86, 0xbc, 0x4c, 0x9b, 0xbd, 0x56, 0xd7, + 0x0e, 0x82, 0x7e, 0x8e, 0x97, 0x52, 0x7b, 0xea, 0xaa, 0x84, 0x0e, 0x97, 0x53, 0xe8, 0x70, 0x39, + 0xf8, 0x84, 0xb0, 0x61, 0x35, 0xc8, 0x0e, 0x47, 0x5e, 0xcc, 0x89, 0x98, 0x93, 0x23, 0xbc, 0xa7, + 0xa0, 0x04, 0xb3, 0x82, 0x4f, 0x98, 0xee, 0xa3, 0x93, 0x02, 0x47, 0x40, 0x36, 0x38, 0x73, 0x64, + 0x23, 0xc7, 0x91, 0x3e, 0x4a, 0x71, 0xa5, 0xea, 0x0a, 0xd3, 0xba, 0x60, 0x34, 0x9f, 0xa9, 0x2c, + 0xb6, 0x96, 0xc7, 0xbe, 0x8d, 0x3f, 0x8d, 0x3c, 0x20, 0x2c, 0x4e, 0xb4, 0x65, 0x78, 0xe4, 0x71, + 0xa0, 0xdc, 0x4e, 0x67, 0xe2, 0xa0, 0x2c, 0x35, 0x58, 0xb2, 0x64, 0x7d, 0xc3, 0xa0, 0x3d, 0x90, + 0x37, 0x88, 0x3c, 0x7b, 0x56, 0xa6, 0xd7, 0x47, 0xd9, 0xac, 0xea, 0x34, 0x74, 0x3a, 0x21, 0x2a, + 0x91, 0x5e, 0x03, 0x79, 0x71, 0x99, 0x6c, 0x57, 0x79, 0xe6, 0x91, 0xdb, 0x03, 0x48, 0x21, 0x01, + 0xe9, 0xa3, 0xda, 0xb3, 0x70, 0xcf, 0xb7, 0x32, 0xf4, 0x98, 0x70, 0x35, 0xda, 0xaf, 0x45, 0x50, + 0x8c, 0x15, 0xb1, 0x57, 0x3c, 0xc4, 0x32, 0x84, 0x58, 0x83, 0x3d, 0x10, 0xf7, 0x4c, 0xb4, 0x15, + 0x16, 0xa7, 0x9e, 0xb4, 0x67, 0xcc, 0x73, 0xc3, 0x1a, 0xf7, 0x4c, 0xb6, 0x21, 0x67, 0x7a, 0xed, + 0xe2, 0x53, 0x21, 0xa1, 0x51, 0x9f, 0xa3, 0x52, 0xd6, 0x1c, 0x4d, 0x2b, 0x90, 0x24, 0xd4, 0x19, + 0x74, 0x1a, 0x64, 0x90, 0x4d, 0x5a, 0x1a, 0xc9, 0x94, 0xec, 0x21, 0xd1, 0xcf, 0x35, 0xb7, 0x11, + 0xad, 0xa4, 0xb3, 0x5d, 0x7b, 0x4a, 0xe3, 0x9d, 0xa8, 0x65, 0x1d, 0xb0, 0x25, 0xd1, 0xf7, 0x21, + 0xb9, 0x72, 0x98, 0x6d, 0x35, 0x92, 0x2b, 0xcb, 0xf0, 0x57, 0x87, 0xd7, 0x76, 0xbc, 0xea, 0x21, + 0x19, 0xef, 0x20, 0xbf, 0x38, 0x29, 0x5b, 0x8e, 0x64, 0x4b, 0x11, 0x24, 0x57, 0x8c, 0x42, 0xb2, + 0xf9, 0x04, 0xfe, 0x9d, 0xa2, 0xbd, 0x6d, 0xf8, 0x3f, 0xfd, 0xcf, 0x71, 0xcf, 0xdc, 0x48, 0xa5, + 0xb4, 0xfc, 0x81, 0xa6, 0xa6, 0xfb, 0x5b, 0xbe, 0xf3, 0xbd, 0xef, 0x95, 0xd0, 0x9d, 0x74, 0x47, + 0xc9, 0x1d, 0x92, 0xab, 0xb4, 0x44, 0x35, 0x64, 0xb9, 0x29, 0x07, 0x26, 0xbe, 0x07, 0xb2, 0xa3, + 0x69, 0xb6, 0x42, 0xf2, 0xbb, 0x65, 0x5d, 0xba, 0xa9, 0x4b, 0xf0, 0x3e, 0x1b, 0x92, 0x0f, 0xfc, + 0x0e, 0xaf, 0x65, 0xa9, 0x72, 0x5b, 0x30, 0x65, 0x8d, 0xda, 0x8b, 0xc8, 0xac, 0x59, 0xdf, 0x5f, + 0xb9, 0x62, 0xe5, 0xaa, 0xff, 0x67, 0xa5, 0xd4, 0xb4, 0x6c, 0xf5, 0x03, 0xf7, 0x2f, 0x9b, 0x35, + 0x0b, 0x16, 0x2e, 0x6b, 0xff, 0x0e, 0x44, 0x56, 0xad, 0x6a, 0x87, 0x36, 0xfc, 0xe1, 0xb2, 0xd3, + 0xb5, 0xc0, 0xf7, 0x1e, 0x68, 0xc5, 0xf7, 0xe2, 0x7e, 0xd5, 0xaa, 0x78, 0xca, 0xd8, 0x65, 0xfe, + 0xdf, 0x84, 0xa8, 0xfe, 0x6b, 0xfe, 0x21, 0x0c, 0x57, 0x1c, 0x4a, 0xdf, 0x37, 0x9f, 0x49, 0xdf, + 0xb7, 0x8e, 0x67, 0xdc, 0x3f, 0xae, 0xf5, 0x5a, 0x5c, 0x38, 0x4e, 0x34, 0xf0, 0x39, 0xf8, 0x16, + 0xd5, 0x03, 0x54, 0x2f, 0x4a, 0x6f, 0x4d, 0x74, 0x76, 0xdd, 0xfc, 0x2d, 0xe6, 0x16, 0x4e, 0x38, + 0x61, 0x3e, 0x72, 0x3d, 0xb8, 0x56, 0xba, 0x48, 0x0f, 0xef, 0x81, 0x08, 0xef, 0x7c, 0x2a, 0x77, + 0x9e, 0x99, 0xfb, 0x21, 0xb4, 0x53, 0x1c, 0x70, 0x75, 0xdf, 0x50, 0xa9, 0x28, 0xf4, 0xd6, 0xa1, + 0xc4, 0xd5, 0x89, 0x5f, 0x2e, 0x81, 0xde, 0xb8, 0x01, 0x71, 0xa1, 0xcf, 0x5b, 0x03, 0x8d, 0x9c, + 0xf2, 0x1d, 0x58, 0x42, 0xb8, 0x8f, 0x69, 0xb2, 0x37, 0x0c, 0x4d, 0xf7, 0xd0, 0xdd, 0xf2, 0x38, + 0x9d, 0xf7, 0xb7, 0x48, 0x59, 0x8b, 0xe9, 0x29, 0xce, 0xf9, 0x56, 0x40, 0x7b, 0xe0, 0x45, 0xe8, + 0xc0, 0x3f, 0x61, 0xb1, 0xd1, 0x13, 0x0b, 0x3c, 0x31, 0x44, 0x9a, 0x97, 0xcd, 0xdf, 0xc7, 0xfa, + 0xfc, 0xdc, 0xa2, 0xd3, 0x8c, 0xa3, 0x96, 0x19, 0x0b, 0x20, 0xff, 0x76, 0xf2, 0x8b, 0x2d, 0x52, + 0x87, 0x33, 0xda, 0x7c, 0x80, 0x66, 0xee, 0x3d, 0x99, 0x56, 0x52, 0xc2, 0x1b, 0xd4, 0xf2, 0x0c, + 0x6f, 0x50, 0x6e, 0x68, 0x42, 0x6a, 0xe2, 0x64, 0x9a, 0x6b, 0xe1, 0xaf, 0x28, 0xf2, 0xa2, 0x93, + 0xef, 0xf6, 0x6b, 0xbb, 0x8c, 0x8b, 0x56, 0x52, 0x54, 0x31, 0xd2, 0x42, 0x54, 0x14, 0xee, 0xfd, + 0x8f, 0xa9, 0xa7, 0x55, 0x4b, 0x84, 0x5e, 0x84, 0xd8, 0x4b, 0xf4, 0xe6, 0xb2, 0x8e, 0xa2, 0xaa, + 0xa7, 0xf8, 0xc0, 0x4f, 0xd3, 0x39, 0x28, 0x0e, 0x74, 0x04, 0x4b, 0xd0, 0x97, 0x28, 0x7f, 0x84, + 0x5c, 0x59, 0xff, 0xbf, 0x0e, 0x49, 0xb9, 0x62, 0xa7, 0x0e, 0x70, 0x9e, 0x71, 0xaf, 0xba, 0xe2, + 0x69, 0x8d, 0xcc, 0x63, 0xb8, 0xaa, 0x35, 0x21, 0x55, 0xb9, 0x7a, 0x27, 0x69, 0xd1, 0xe4, 0x63, + 0x69, 0x4a, 0x55, 0x84, 0x4b, 0xab, 0x23, 0xdd, 0x9d, 0xd8, 0x1a, 0xe4, 0x5f, 0x32, 0x6a, 0x6a, + 0xfe, 0x39, 0x79, 0x7c, 0xab, 0x5a, 0x22, 0x3c, 0x87, 0xe0, 0xfb, 0x7b, 0x27, 0xb4, 0xe3, 0x28, + 0xf2, 0xd4, 0xca, 0xec, 0x73, 0x5a, 0xac, 0xd1, 0x58, 0x55, 0x46, 0x2f, 0x5e, 0xab, 0xdf, 0x34, + 0xa9, 0xac, 0xd7, 0x84, 0x55, 0x1e, 0xf2, 0xe4, 0x58, 0x4b, 0x3a, 0x67, 0xf3, 0x1e, 0x51, 0x7a, + 0x5a, 0x0f, 0xf3, 0x81, 0x97, 0xe7, 0x89, 0x72, 0x9f, 0xcc, 0x28, 0xef, 0x10, 0xae, 0x41, 0x99, + 0x5f, 0xfd, 0x24, 0x05, 0x03, 0x47, 0xc9, 0xde, 0x54, 0x2f, 0x1a, 0x44, 0x24, 0x3f, 0xde, 0xb3, + 0x42, 0x1e, 0xe5, 0xc9, 0xc1, 0xb4, 0x84, 0xa0, 0x94, 0x34, 0x6e, 0x10, 0x9e, 0x7f, 0xe8, 0x84, + 0x9a, 0xf5, 0x77, 0xbd, 0x60, 0xb2, 0x7b, 0x85, 0x7e, 0x8e, 0xd8, 0xc9, 0x55, 0x4e, 0x08, 0xd8, + 0xdd, 0xca, 0x7a, 0xc1, 0x34, 0x7e, 0xf1, 0x29, 0xda, 0xf7, 0xc9, 0xa3, 0x08, 0xbb, 0xe5, 0xb1, + 0x30, 0x72, 0xfb, 0x6e, 0x94, 0x61, 0x4a, 0x03, 0xdb, 0xa0, 0x04, 0xef, 0x4b, 0xf0, 0xde, 0x8d, + 0xd7, 0xf2, 0x14, 0x8c, 0x8f, 0x30, 0x96, 0x3c, 0x26, 0x30, 0x1b, 0xbf, 0xb1, 0x47, 0xf3, 0x4a, + 0xaa, 0xfe, 0x09, 0x12, 0x77, 0xa6, 0x2d, 0xb2, 0x64, 0x83, 0xe6, 0x41, 0x2c, 0xd8, 0x9b, 0xb6, + 0x8c, 0xf7, 0x34, 0x43, 0x13, 0x72, 0x0c, 0xf6, 0x58, 0xae, 0x28, 0x81, 0xb0, 0x0c, 0x6b, 0xb1, + 0xe3, 0x1a, 0xb2, 0x3c, 0xcd, 0x39, 0x67, 0x68, 0xb7, 0x31, 0xff, 0xef, 0x14, 0xbb, 0x05, 0x85, + 0x12, 0xf5, 0xf8, 0x7b, 0x26, 0xf3, 0x4b, 0x44, 0x37, 0x82, 0x99, 0xd4, 0x1d, 0xd7, 0xf3, 0x42, + 0xe4, 0x2f, 0x6c, 0x38, 0x2b, 0x88, 0x93, 0xb1, 0x33, 0xa7, 0x7d, 0x98, 0x4f, 0xf5, 0xca, 0xd9, + 0x03, 0x51, 0x33, 0xe4, 0x3b, 0x5c, 0xb0, 0x7c, 0xc1, 0x87, 0x1c, 0xc9, 0xcc, 0x55, 0x8c, 0x1c, + 0x23, 0xad, 0xac, 0x6f, 0x9f, 0x87, 0x3c, 0xb6, 0x97, 0xc8, 0xb7, 0xfb, 0xed, 0xb7, 0x6c, 0xdc, + 0x0a, 0xf6, 0xd5, 0x39, 0xbb, 0xba, 0x96, 0xe5, 0xe6, 0x57, 0x41, 0xf6, 0xae, 0xae, 0xa8, 0xf1, + 0xeb, 0x0f, 0x80, 0x11, 0xf9, 0xa7, 0x85, 0x62, 0x6e, 0xe0, 0xb8, 0x8e, 0xd4, 0xfd, 0xb6, 0x45, + 0x8b, 0x2f, 0x23, 0x62, 0xbc, 0xb7, 0x72, 0x0c, 0x12, 0xf2, 0xbf, 0x94, 0xef, 0xc4, 0x1a, 0x38, + 0xee, 0x21, 0x79, 0x35, 0xc0, 0x56, 0x64, 0x46, 0x38, 0xd5, 0xb5, 0x38, 0x3c, 0xbc, 0x17, 0xac, + 0x67, 0x9e, 0x35, 0x5f, 0x72, 0x81, 0x1d, 0xe7, 0x2f, 0xe0, 0xca, 0x77, 0xaf, 0x47, 0x9c, 0x48, + 0x97, 0x09, 0xdf, 0x05, 0xe4, 0x0b, 0xc3, 0x05, 0x91, 0x5e, 0xc9, 0x90, 0xe9, 0xbf, 0xc0, 0x4d, + 0xf2, 0xb2, 0x53, 0xaa, 0xc5, 0x35, 0x3e, 0xc3, 0x26, 0x40, 0x36, 0x92, 0xcd, 0x7e, 0x73, 0xd0, + 0x35, 0xed, 0xd8, 0x36, 0xc8, 0x4b, 0x97, 0x8e, 0x1c, 0xb1, 0x7d, 0xe1, 0xe8, 0x38, 0xd4, 0x6f, + 0x96, 0x82, 0xbe, 0xc4, 0xc4, 0x5a, 0x23, 0x54, 0x2b, 0xa6, 0xdf, 0xe1, 0x07, 0x3d, 0x47, 0x15, + 0xe8, 0xc9, 0x7c, 0xbb, 0x58, 0x7d, 0x7b, 0xab, 0x1f, 0x0c, 0xb7, 0xce, 0xc5, 0x9e, 0xe0, 0xb7, + 0x8c, 0x8d, 0x41, 0x2d, 0x47, 0x63, 0x3a, 0x87, 0x65, 0xe2, 0xf7, 0x28, 0xad, 0x22, 0x04, 0x53, + 0x6f, 0xad, 0xfc, 0x2d, 0x62, 0xb3, 0xf6, 0xe5, 0x92, 0xf4, 0x97, 0x85, 0xd7, 0xd6, 0xdc, 0x90, + 0x6e, 0x57, 0xc1, 0xc4, 0x16, 0xdf, 0x97, 0xfe, 0x4e, 0xba, 0x83, 0x75, 0xe3, 0x8a, 0x5b, 0xc0, + 0xc0, 0xd1, 0x1d, 0x24, 0xb6, 0xf5, 0x14, 0x36, 0xd8, 0x79, 0x42, 0x17, 0xee, 0x87, 0x6f, 0x48, + 0xd3, 0xd2, 0xde, 0x9d, 0x49, 0xba, 0x65, 0x6d, 0x5d, 0x95, 0x67, 0xb4, 0x2f, 0x87, 0x3c, 0xe7, + 0x72, 0x2c, 0x17, 0x39, 0xf5, 0xfe, 0xe7, 0xc1, 0xde, 0x9e, 0xb3, 0x33, 0xb1, 0xac, 0xa3, 0xe6, + 0xf7, 0x36, 0x58, 0x44, 0x5e, 0x1c, 0x4d, 0x6d, 0x53, 0x77, 0x24, 0x96, 0x15, 0x0d, 0x27, 0x7c, + 0xb3, 0x4d, 0x1c, 0x61, 0x00, 0x0a, 0xc0, 0x8e, 0x1c, 0x63, 0x09, 0x94, 0x41, 0x15, 0x04, 0x20, + 0x04, 0x11, 0x68, 0xc4, 0x19, 0x78, 0x8b, 0x5c, 0xc6, 0x27, 0x0a, 0x7a, 0xd9, 0x23, 0x3d, 0x87, + 0x6b, 0x78, 0x1d, 0xfe, 0x9a, 0xe5, 0x5a, 0xfc, 0xb5, 0xc8, 0xfe, 0xd2, 0x07, 0x10, 0x67, 0x1e, + 0x96, 0x2b, 0x24, 0x3a, 0x77, 0x2a, 0xc5, 0x5f, 0x49, 0xf6, 0x70, 0xee, 0x02, 0x29, 0x21, 0xdb, + 0xf1, 0xd9, 0x24, 0x17, 0xe2, 0xaf, 0x55, 0xce, 0xe7, 0xc8, 0x76, 0xd5, 0x08, 0xa9, 0x10, 0xeb, + 0x13, 0xdb, 0x59, 0xee, 0x3d, 0xac, 0x46, 0xdf, 0xfe, 0x2e, 0xad, 0x29, 0x90, 0xfc, 0x7d, 0xb7, + 0x58, 0xff, 0x3e, 0x3a, 0xcd, 0xab, 0xcf, 0x58, 0x56, 0x3f, 0xaf, 0xee, 0x63, 0x59, 0x47, 0x79, + 0xb5, 0x4f, 0xad, 0xf2, 0x1f, 0xdb, 0xc5, 0xea, 0xf4, 0xf1, 0xcf, 0xf1, 0x3a, 0x15, 0x92, 0x57, + 0x6a, 0xf1, 0x6a, 0x86, 0xe4, 0x1f, 0x92, 0x9c, 0x3f, 0x79, 0xf5, 0x04, 0xfb, 0xe8, 0x4a, 0x7e, + 0x36, 0xc2, 0x76, 0xa4, 0xc9, 0xf1, 0x9d, 0x78, 0xb5, 0x41, 0x52, 0xa1, 0x15, 0x2f, 0x1b, 0xc6, + 0x28, 0x24, 0x0b, 0x4c, 0x49, 0x97, 0xf7, 0x81, 0x51, 0x5c, 0x2f, 0xac, 0x14, 0xe5, 0x5e, 0xd8, + 0x3e, 0x91, 0xab, 0xb8, 0xd8, 0x2c, 0xd2, 0x2f, 0x8e, 0x8a, 0xfa, 0x2e, 0x3d, 0x2e, 0xea, 0xf9, + 0x70, 0xaf, 0x28, 0xf7, 0x32, 0xe5, 0x2a, 0x48, 0xe7, 0xff, 0x7d, 0x91, 0x7a, 0xf5, 0xf0, 0x77, + 0xda, 0xbf, 0xb1, 0xaf, 0xef, 0x11, 0xd7, 0xca, 0xfd, 0xa2, 0x7f, 0xb3, 0xef, 0x15, 0xfd, 0xfb, + 0x0b, 0xcf, 0x84, 0xfe, 0x8d, 0x95, 0x36, 0xa8, 0xd7, 0xe1, 0x89, 0xed, 0xf8, 0x4f, 0x8b, 0x7a, + 0x3d, 0x20, 0xda, 0x73, 0xa6, 0x68, 0xe2, 0xfb, 0x33, 0x62, 0xa1, 0x4f, 0x9e, 0x35, 0x8a, 0xf7, + 0x67, 0xcb, 0x27, 0xc2, 0xed, 0x6c, 0x87, 0x7a, 0x3d, 0x29, 0xb8, 0xa7, 0xf7, 0xfa, 0x26, 0x7e, + 0x7f, 0x2e, 0xa8, 0x5e, 0xdb, 0x27, 0xb4, 0x3b, 0xf9, 0x72, 0x89, 0xb8, 0x0e, 0x5e, 0x11, 0xe5, + 0xbe, 0x52, 0x2f, 0xfa, 0xff, 0xee, 0xf1, 0x89, 0xe5, 0xef, 0xbb, 0x57, 0x5c, 0x5f, 0xb5, 0x8a, + 0xf2, 0x5f, 0xa5, 0xf1, 0xc8, 0x81, 0xe4, 0xaf, 0x28, 0x75, 0x1a, 0x5e, 0xf5, 0x62, 0x9c, 0x7e, + 0x45, 0xd6, 0xa7, 0x37, 0x41, 0xf2, 0x20, 0x7d, 0x9f, 0x8b, 0x57, 0x1a, 0xaf, 0x9b, 0xf1, 0x4a, + 0xed, 0xb2, 0xe0, 0xf5, 0x14, 0x99, 0x10, 0xe3, 0x95, 0xf0, 0x20, 0x0f, 0xaf, 0xc4, 0x9d, 0x4c, + 0xc7, 0xeb, 0x59, 0x92, 0xf4, 0x20, 0xf9, 0xef, 0x07, 0x45, 0xfd, 0x47, 0xaa, 0xc4, 0x38, 0x8f, + 0xec, 0xe6, 0x71, 0x4d, 0xfe, 0x07, 0xe9, 0xf5, 0x18, 0x21, 0x79, 0x74, 0x90, 0xc7, 0x37, 0x79, + 0xcc, 0x20, 0xc6, 0xe7, 0x1d, 0x7a, 0xfe, 0x12, 0x24, 0xdf, 0x4c, 0x08, 0x7c, 0x38, 0xde, 0xc8, + 0xe3, 0x95, 0xfc, 0x35, 0xc1, 0xf7, 0x0b, 0x78, 0x3d, 0x82, 0xd7, 0x2f, 0xc3, 0x98, 0x61, 0x31, + 0x5e, 0x0b, 0x61, 0xec, 0xa6, 0x10, 0x5e, 0xbf, 0x82, 0x57, 0xea, 0x6f, 0x11, 0x8c, 0xe5, 0x3e, + 0x8b, 0xd7, 0xaf, 0xc2, 0xd8, 0xcd, 0x36, 0x20, 0x03, 0x8a, 0xb1, 0x9b, 0x09, 0x8e, 0xb7, 0xc2, + 0x98, 0x85, 0xfa, 0x69, 0x87, 0xb1, 0x5b, 0x88, 0x6f, 0xbb, 0x0d, 0xc6, 0xa6, 0x0b, 0x4e, 0x69, + 0xcc, 0xaa, 0x67, 0x5b, 0xe2, 0x31, 0xeb, 0x47, 0x78, 0x75, 0xc2, 0xd8, 0x17, 0xfa, 0xd9, 0xbe, + 0x78, 0x2c, 0x9f, 0xc6, 0xd5, 0x85, 0xd7, 0xf3, 0x78, 0x9d, 0x09, 0x63, 0x5f, 0xa4, 0x76, 0xb8, + 0xf1, 0x4a, 0xed, 0x28, 0x86, 0x31, 0xdb, 0x12, 0x32, 0xf5, 0xc5, 0x2b, 0xb5, 0x77, 0x16, 0x8c, + 0x7d, 0x89, 0xb4, 0x29, 0x4a, 0xf0, 0x4a, 0xf8, 0xeb, 0x85, 0xb1, 0x2f, 0x3f, 0x85, 0x57, 0x1f, + 0x8c, 0x7d, 0x85, 0xc6, 0xed, 0x0e, 0x18, 0x93, 0xa8, 0xfe, 0x52, 0x18, 0xb3, 0xe7, 0xe0, 0xf5, + 0x6b, 0x30, 0x36, 0x83, 0x10, 0xb1, 0x0c, 0xc6, 0x66, 0x12, 0xfc, 0xee, 0x84, 0xb1, 0x92, 0xa5, + 0x78, 0x2d, 0xc7, 0xfe, 0xd1, 0xfc, 0xf9, 0x3a, 0x5e, 0xa9, 0x3d, 0xf9, 0x90, 0xfc, 0x0d, 0xf5, + 0xe7, 0x8b, 0x90, 0x3c, 0x49, 0xed, 0xae, 0xc0, 0xeb, 0x83, 0x78, 0xfd, 0x06, 0x5e, 0x09, 0x3e, + 0x95, 0x90, 0x3c, 0x75, 0x0e, 0xaf, 0x48, 0x6d, 0xdf, 0xa5, 0xf9, 0xf0, 0x17, 0xe9, 0xf1, 0xfd, + 0x45, 0xb9, 0xb8, 0xf6, 0x6f, 0x14, 0x78, 0xd0, 0x7f, 0x6a, 0x22, 0xfe, 0x3c, 0xb1, 0x55, 0xbd, + 0x1e, 0x12, 0xef, 0x9f, 0xf8, 0x48, 0xe0, 0xc1, 0x0f, 0x1a, 0xc5, 0x78, 0xfd, 0xa0, 0x53, 0x8c, + 0xd7, 0xe6, 0x26, 0x31, 0x5e, 0xcf, 0xfa, 0xc4, 0x78, 0x6c, 0xee, 0x14, 0xe3, 0xf6, 0xc3, 0xa0, + 0x18, 0xb7, 0x67, 0xcb, 0xc4, 0x3c, 0xfb, 0xd1, 0x79, 0x81, 0x3f, 0x3f, 0xba, 0x2c, 0xf0, 0xe7, + 0x47, 0x97, 0x04, 0xfe, 0xfc, 0xf0, 0xac, 0xc0, 0x9f, 0x1f, 0x9e, 0x17, 0xf8, 0xf3, 0xa3, 0x2b, + 0x02, 0x7f, 0xfe, 0xdf, 0x11, 0x1e, 0xb7, 0xe4, 0x3f, 0x1c, 0x12, 0x78, 0xf4, 0xec, 0x7a, 0x81, + 0x47, 0x3f, 0x3a, 0x2b, 0xf0, 0xe8, 0xd9, 0xfb, 0x04, 0x1e, 0xfd, 0xa3, 0x59, 0xe0, 0xd1, 0x3f, + 0x5a, 0xc4, 0xf8, 0xff, 0xa3, 0x55, 0xc0, 0xe5, 0x1f, 0x6d, 0x02, 0x2e, 0xff, 0xd8, 0x26, 0xf0, + 0xe6, 0x1f, 0x9f, 0x15, 0x78, 0xf3, 0x8f, 0x83, 0x02, 0x5f, 0xfe, 0x71, 0x3f, 0xe3, 0x49, 0xf2, + 0x1f, 0x5f, 0x63, 0x3c, 0x49, 0xf5, 0xfb, 0xc1, 0xab, 0xf8, 0xb7, 0x07, 0x92, 0x7f, 0xe7, 0x81, + 0xe4, 0xff, 0xac, 0xfd, 0xbf, 0x28, 0x75, 0xc4, 0xda, 0xbe, 0x13, 0x5f, 0xfe, 0xc0, 0xfd, 0x37, + 0x12, 0x3a, 0x26, 0xbc, 0x66, 0x99, 0x63, 0x75, 0x1f, 0x8c, 0x85, 0x9e, 0x45, 0x99, 0x23, 0x80, + 0xf7, 0x6b, 0xf0, 0xef, 0xaf, 0xf0, 0x6f, 0xab, 0x56, 0xa8, 0x11, 0x39, 0xe8, 0xef, 0x5f, 0x16, + 0x7d, 0xf8, 0xbb, 0x4b, 0xd8, 0x63, 0x1b, 0x8e, 0x12, 0xb7, 0x3d, 0xfd, 0x63, 0xb2, 0xd8, 0xd2, + 0xad, 0xc8, 0x62, 0xb8, 0x8a, 0x7c, 0xfc, 0x5e, 0x51, 0x73, 0x21, 0xb8, 0x2c, 0xa6, 0x74, 0x3e, + 0x03, 0xe7, 0xa3, 0xff, 0x38, 0x13, 0xae, 0xd2, 0xa0, 0x9e, 0xe2, 0x19, 0x44, 0xc9, 0x5f, 0xf8, + 0x72, 0x3a, 0x5f, 0xf6, 0xe7, 0xcc, 0x87, 0xf4, 0x4c, 0x97, 0xca, 0x47, 0xef, 0x29, 0xdf, 0x55, + 0x7e, 0xf5, 0xe5, 0x2f, 0x58, 0xd2, 0xf9, 0xa6, 0x64, 0x96, 0xf7, 0x27, 0xf2, 0x99, 0xb8, 0xbc, + 0x9b, 0xf1, 0x3f, 0xe6, 0x23, 0xe4, 0xcb, 0x4a, 0xd5, 0x7b, 0x4b, 0x7e, 0x46, 0xbd, 0x53, 0xb9, + 0xbc, 0x3f, 0x9f, 0x2f, 0x27, 0xb3, 0x3c, 0x7a, 0x4f, 0xf9, 0x3a, 0x45, 0xbd, 0xf9, 0xb7, 0xa4, + 0xf3, 0x4d, 0xcb, 0x2c, 0xef, 0x4f, 0xe4, 0x33, 0x73, 0x79, 0x12, 0xfe, 0x37, 0x64, 0x8e, 0x87, + 0x32, 0x79, 0x3c, 0x6e, 0xe2, 0xf2, 0x44, 0xbe, 0x89, 0xc3, 0xa1, 0xe0, 0x70, 0xa4, 0x33, 0xe6, + 0xa6, 0xf3, 0x4d, 0x1a, 0x5e, 0x65, 0x42, 0x81, 0x37, 0x67, 0x96, 0x97, 0x2e, 0x50, 0x99, 0x3c, + 0xbe, 0x96, 0x14, 0x1e, 0x18, 0xfe, 0x24, 0xbe, 0xdc, 0x92, 0x91, 0x6f, 0x62, 0xfb, 0x20, 0xb3, + 0x38, 0x9c, 0x9b, 0xa9, 0x7c, 0x93, 0x8a, 0xa3, 0x02, 0xd3, 0xf9, 0xa6, 0x67, 0x96, 0xf7, 0x27, + 0xf0, 0xcf, 0xca, 0xf9, 0x4c, 0xf8, 0x5f, 0x07, 0xd7, 0x14, 0x08, 0xe9, 0xfb, 0x2f, 0x70, 0xdd, + 0x3a, 0xfe, 0x7f, 0xfd, 0x7c, 0x37, 0xf3, 0x6f, 0x3e, 0xd3, 0xf9, 0xe4, 0xff, 0xd8, 0x8c, 0x7f, + 0xcf, 0x43, 0x72, 0xcd, 0x3e, 0xbc, 0xd2, 0xdf, 0x3b, 0xf8, 0xf7, 0x21, 0xfe, 0x8d, 0x41, 0xb2, + 0x13, 0xe9, 0x4b, 0xa7, 0x2f, 0x53, 0xf4, 0x66, 0x81, 0x3d, 0x53, 0x2e, 0x67, 0xe1, 0x9d, 0xa6, + 0x66, 0x49, 0x6a, 0xa2, 0x2e, 0x7d, 0xa0, 0xbd, 0xf5, 0x3b, 0xf1, 0xeb, 0x26, 0x96, 0xdc, 0xbf, + 0xfc, 0xfb, 0x2b, 0x57, 0xfc, 0xed, 0xd2, 0xd6, 0xeb, 0xbf, 0x8d, 0xb7, 0x7c, 0x67, 0xe5, 0x77, + 0xda, 0xf0, 0xed, 0xc4, 0xdd, 0x80, 0x74, 0xbe, 0xfb, 0x57, 0xb5, 0xac, 0x6a, 0xbb, 0xb6, 0xf0, + 0xd8, 0xfd, 0x93, 0x13, 0xd4, 0x9b, 0x8c, 0xcd, 0x84, 0x6b, 0xbe, 0x08, 0x2e, 0x8b, 0x7e, 0xe7, + 0xfb, 0x2d, 0xed, 0x95, 0xe5, 0x65, 0xbe, 0x8e, 0xb2, 0x0a, 0x5f, 0xea, 0xb9, 0xc2, 0xe7, 0xeb, + 0x28, 0xf7, 0xa5, 0x9f, 0xef, 0xf0, 0x95, 0x96, 0x75, 0x7c, 0xbd, 0xbc, 0x22, 0x9d, 0x70, 0xc7, + 0x9d, 0xa5, 0x1d, 0x15, 0xe5, 0x65, 0xe9, 0x84, 0xd2, 0x0a, 0x5f, 0x07, 0x65, 0x4b, 0xa7, 0x60, + 0x01, 0x1d, 0x77, 0x94, 0x66, 0x96, 0x42, 0x79, 0x2a, 0x32, 0x13, 0xca, 0xb0, 0xde, 0x6f, 0x64, + 0x26, 0x94, 0x73, 0x29, 0x77, 0x66, 0xa4, 0x7c, 0xa3, 0x94, 0x52, 0x2a, 0x26, 0xa7, 0x50, 0xb9, + 0x9f, 0x17, 0xee, 0x13, 0x20, 0xf1, 0x67, 0x01, 0xb9, 0x6a, 0xf5, 0xb2, 0xb6, 0x96, 0xef, 0xfc, + 0xad, 0x9a, 0x1a, 0xed, 0x28, 0xf9, 0xde, 0xdf, 0xae, 0x9c, 0x0c, 0xdb, 0xf8, 0x03, 0x1d, 0xd1, + 0xd6, 0xf6, 0x3f, 0x33, 0x80, 0xff, 0x95, 0xc1, 0x4f, 0xb5, 0x85, 0xfb, 0x74, 0xbd, 0x9f, 0x54, + 0x56, 0x0d, 0x0d, 0x67, 0x7c, 0x5f, 0xbc, 0x10, 0x74, 0x2f, 0xf9, 0xa0, 0x0f, 0xff, 0x70, 0x4d, + 0xfe, 0x9f, 0x23, 0xf8, 0xf7, 0x53, 0xfc, 0xeb, 0xc0, 0xbf, 0x30, 0xa6, 0xad, 0xc7, 0xbf, 0xfb, + 0x52, 0xf4, 0x31, 0xd9, 0xb3, 0x09, 0x92, 0xbd, 0x32, 0x24, 0xd7, 0xe2, 0x9a, 0xb6, 0x0e, 0xff, + 0x1e, 0xc2, 0xef, 0xfa, 0x90, 0x57, 0xe8, 0xba, 0x17, 0x92, 0xdd, 0x4b, 0xd5, 0x7c, 0x58, 0xce, + 0xc3, 0x7e, 0x48, 0x3e, 0x7e, 0x39, 0xbd, 0x63, 0xf4, 0xf8, 0xc6, 0x89, 0x3b, 0x46, 0xe0, 0x10, + 0x5a, 0x56, 0x42, 0x7b, 0x4a, 0x19, 0x4e, 0xeb, 0x5d, 0xa9, 0x29, 0xfb, 0xaf, 0x49, 0x79, 0xd9, + 0xa3, 0x7a, 0x9f, 0xd1, 0x4e, 0x61, 0x51, 0x76, 0x77, 0xa3, 0x14, 0xb3, 0x29, 0x96, 0xcf, 0xbe, + 0x74, 0xf7, 0x28, 0x47, 0xd8, 0xbf, 0xd1, 0x26, 0xbc, 0xdb, 0x45, 0xf2, 0xa4, 0xea, 0xfb, 0x6f, + 0x62, 0xee, 0x2d, 0xa9, 0xdc, 0xcf, 0x72, 0xee, 0x2d, 0x78, 0xd7, 0x77, 0xc3, 0xdc, 0x4f, 0xa7, + 0x72, 0xaf, 0xe6, 0xdc, 0x4f, 0xe3, 0xdd, 0xbd, 0x37, 0xcc, 0xfd, 0x4c, 0x2a, 0x77, 0x88, 0x73, + 0x3f, 0x83, 0x77, 0x9e, 0x1b, 0xe6, 0x7e, 0x36, 0x95, 0xbb, 0x80, 0x73, 0x3f, 0x8b, 0x12, 0xdc, + 0xf8, 0x0d, 0x73, 0x6f, 0xd5, 0x72, 0x8f, 0x5f, 0xe0, 0xdc, 0x5b, 0xf1, 0x6e, 0xf8, 0x86, 0xb9, + 0xb7, 0xa7, 0x72, 0xbf, 0xcc, 0xb9, 0xb7, 0xe3, 0xdd, 0x4f, 0x6e, 0x98, 0x7b, 0x20, 0x95, 0xbb, + 0x9f, 0x73, 0x0f, 0xe0, 0x5d, 0x7b, 0x46, 0xee, 0x5c, 0x6f, 0xce, 0xe4, 0x1d, 0xac, 0xd5, 0xd6, + 0x8c, 0xfd, 0x29, 0x7c, 0x17, 0xb5, 0x98, 0x4a, 0x70, 0xf5, 0xcf, 0x8d, 0x99, 0xa4, 0x5c, 0x1c, + 0xab, 0x4b, 0xec, 0x43, 0xf1, 0x6f, 0xae, 0xb7, 0xb3, 0xb5, 0xba, 0xf0, 0xf3, 0xec, 0x6c, 0x49, + 0xa5, 0x8e, 0x7a, 0x2e, 0x17, 0xe0, 0xa7, 0x8e, 0x12, 0x28, 0xd1, 0xca, 0x10, 0xb5, 0x77, 0x5e, + 0x9d, 0x50, 0x06, 0x40, 0xb7, 0xbd, 0x3e, 0x7d, 0x56, 0x95, 0xde, 0x65, 0x5a, 0x5d, 0x76, 0xed, + 0x2e, 0xd3, 0xea, 0xe0, 0xc4, 0x5d, 0xa6, 0xce, 0x2d, 0xd7, 0xdf, 0x65, 0xb2, 0x37, 0x83, 0x3b, + 0x63, 0x47, 0xe6, 0x4f, 0xee, 0x39, 0xc9, 0x26, 0xe4, 0xd7, 0x4d, 0x90, 0xcb, 0x9e, 0xcc, 0x35, + 0x8f, 0xfe, 0x95, 0x0e, 0xbf, 0xc3, 0x44, 0xbb, 0x73, 0x7f, 0x9b, 0x9c, 0xb4, 0x3b, 0xe7, 0xc6, + 0x16, 0x27, 0xc5, 0xee, 0xdc, 0x8c, 0x00, 0x94, 0xfc, 0xb9, 0x1d, 0xba, 0xce, 0xc1, 0x3f, 0xb5, + 0x43, 0xb7, 0xba, 0xee, 0xc6, 0x3b, 0x74, 0xab, 0xab, 0x26, 0xef, 0xd0, 0x75, 0x9e, 0xbb, 0xfe, + 0x0e, 0x1d, 0x42, 0x74, 0xd2, 0x0e, 0xdd, 0x7f, 0x07, 0x76, 0x9f, 0x6b, 0x87, 0x8e, 0x77, 0x46, + 0x69, 0x17, 0x6c, 0x8d, 0x49, 0xd5, 0xaa, 0x3c, 0xa0, 0xe2, 0x4b, 0x8e, 0xd8, 0xab, 0x5d, 0x73, + 0x93, 0x23, 0xad, 0x99, 0x79, 0x5a, 0xc3, 0xa6, 0x09, 0x5f, 0x9c, 0x50, 0xfd, 0xd3, 0x57, 0x85, + 0xde, 0xab, 0xa8, 0x60, 0x1b, 0x37, 0xc4, 0x68, 0x3e, 0x6d, 0x3a, 0xe6, 0x80, 0xf9, 0x17, 0x95, + 0xf5, 0xda, 0x7e, 0xf3, 0x77, 0x2b, 0x38, 0xf6, 0x8e, 0x72, 0xe7, 0x99, 0xfa, 0x27, 0x5d, 0x37, + 0x19, 0x7b, 0x91, 0x19, 0xaf, 0xc2, 0x77, 0x0d, 0xfc, 0x4e, 0x26, 0xbf, 0xc9, 0xf3, 0x2e, 0x2a, + 0x27, 0x30, 0xc5, 0xa1, 0x9e, 0x5e, 0x2a, 0x15, 0x85, 0xc5, 0x75, 0xca, 0x89, 0x62, 0xe4, 0x85, + 0xd7, 0x7c, 0x49, 0x39, 0xc5, 0x7e, 0xb5, 0xce, 0x14, 0x07, 0x95, 0x73, 0x9c, 0x52, 0xa4, 0x5c, + 0x20, 0x8f, 0x39, 0x14, 0x1f, 0xbb, 0x38, 0xa0, 0xec, 0x54, 0xd3, 0x76, 0x4b, 0xfa, 0x08, 0xc5, + 0x07, 0xdd, 0x5b, 0xbc, 0x40, 0x19, 0xbc, 0x87, 0xee, 0xf6, 0xc7, 0xf3, 0xf0, 0x77, 0x48, 0xd2, + 0x2f, 0xa6, 0xa7, 0x83, 0x9c, 0xef, 0x6b, 0xca, 0x70, 0xe0, 0x05, 0x65, 0x04, 0xff, 0xc8, 0x63, + 0xab, 0x2b, 0xdc, 0x1d, 0xab, 0xe4, 0xa8, 0xba, 0x3b, 0xb1, 0xd5, 0x06, 0xa7, 0x9f, 0x4f, 0x10, + 0xf3, 0x6e, 0x0f, 0x03, 0x45, 0x97, 0x18, 0x20, 0x5f, 0x19, 0xf5, 0x7b, 0x46, 0x47, 0x1a, 0x36, + 0xb0, 0xf5, 0xf9, 0x70, 0x23, 0x5b, 0x64, 0x4f, 0xd8, 0x93, 0xbe, 0x58, 0x58, 0xa8, 0x38, 0xd4, + 0x88, 0x20, 0x7e, 0x4d, 0x4b, 0x5d, 0x83, 0xc3, 0xf8, 0xb0, 0x03, 0x16, 0x5e, 0x54, 0x86, 0xb0, + 0x67, 0x12, 0xf7, 0x75, 0xc0, 0x9b, 0x3b, 0x09, 0x0e, 0x14, 0xf7, 0xc0, 0xc7, 0xef, 0x86, 0x09, + 0x0e, 0x08, 0xb5, 0x73, 0xb4, 0x1f, 0x4f, 0x29, 0x6d, 0xa4, 0x9f, 0x4c, 0x90, 0x89, 0x8b, 0x78, + 0xe7, 0x6c, 0x71, 0xa3, 0x41, 0xa7, 0x5e, 0x89, 0xab, 0xd0, 0x69, 0x8f, 0x67, 0x61, 0xef, 0x3a, + 0x10, 0x3a, 0x9d, 0x2a, 0x24, 0xc8, 0x0b, 0x67, 0x36, 0xa6, 0xf5, 0x22, 0x0c, 0xfb, 0x38, 0xed, + 0x6e, 0x65, 0x3d, 0xf9, 0xc3, 0xc4, 0xb4, 0x7e, 0x84, 0xd8, 0x33, 0x6a, 0xbe, 0x67, 0x55, 0x88, + 0x6d, 0x45, 0x88, 0x6d, 0x67, 0x88, 0x0d, 0x70, 0xd4, 0xf1, 0x9d, 0x2a, 0xc4, 0x76, 0xab, 0xdf, + 0xee, 0x45, 0x68, 0x0d, 0xe2, 0xdf, 0x7e, 0xc6, 0x71, 0x0d, 0x62, 0x48, 0x5f, 0xc7, 0x8e, 0x4c, + 0x82, 0xd8, 0x76, 0x01, 0xb1, 0x4f, 0x7f, 0x22, 0x20, 0x36, 0xf6, 0xe3, 0xeb, 0x41, 0x6c, 0x49, + 0x1a, 0x62, 0xcf, 0xb0, 0x37, 0x3a, 0xd2, 0x39, 0x27, 0x88, 0x91, 0xfd, 0xfd, 0x8f, 0x9d, 0x84, + 0x39, 0xcf, 0x68, 0x98, 0xd3, 0x66, 0xd3, 0x4e, 0x2a, 0xe6, 0xa9, 0x90, 0x99, 0x80, 0x21, 0xe7, + 0x54, 0x18, 0x5c, 0x60, 0x0c, 0xb9, 0x5c, 0x5c, 0xa3, 0x0c, 0x71, 0xca, 0x2a, 0xe5, 0x20, 0x9d, + 0x54, 0x60, 0xda, 0x30, 0xf6, 0x6d, 0x84, 0xfb, 0x76, 0x2c, 0xde, 0x80, 0xbf, 0x27, 0xb0, 0x1f, + 0xa7, 0xc8, 0xdf, 0x1d, 0xcf, 0xc3, 0x1e, 0xf2, 0xf5, 0x88, 0x7d, 0x19, 0xc2, 0x9a, 0x8d, 0x93, + 0xfa, 0xb2, 0x55, 0x50, 0xe5, 0xab, 0x47, 0xb1, 0x2f, 0xe4, 0x5f, 0xf8, 0xc8, 0x75, 0x47, 0xdf, + 0xac, 0xac, 0x57, 0xfb, 0x32, 0x30, 0xb9, 0x2f, 0xc9, 0x23, 0xdc, 0x97, 0xe1, 0xd4, 0x78, 0xfa, + 0x3f, 0x67, 0x5f, 0xf4, 0x6a, 0x5f, 0x06, 0xd4, 0xbe, 0xec, 0x54, 0xfb, 0xb2, 0x1b, 0xfb, 0xb2, + 0x97, 0xfb, 0x32, 0x18, 0x2f, 0x23, 0xfc, 0xc6, 0x7e, 0x0c, 0xe1, 0xdf, 0xc1, 0x09, 0x7d, 0xc1, + 0xf5, 0x23, 0x59, 0x39, 0xa9, 0x2f, 0xcf, 0xaa, 0x7d, 0xc9, 0x51, 0xfb, 0x62, 0xbc, 0x41, 0x5f, + 0x9e, 0x56, 0xfb, 0xd2, 0xce, 0xba, 0xd4, 0x19, 0x98, 0x9c, 0x34, 0x32, 0x26, 0x0f, 0x6a, 0x98, + 0xdc, 0xd6, 0x98, 0xc6, 0x64, 0xec, 0xe3, 0xa9, 0x54, 0x7a, 0x87, 0x8a, 0xb3, 0x4f, 0x4f, 0x9a, + 0xcd, 0xf5, 0xca, 0xd3, 0x6a, 0xff, 0x9e, 0x61, 0x7c, 0x7d, 0x16, 0x7b, 0xbc, 0x95, 0x53, 0xfe, + 0x56, 0xd9, 0x4e, 0x98, 0x87, 0x78, 0xd9, 0xae, 0xf6, 0xb7, 0x43, 0xc5, 0xcb, 0x4e, 0xec, 0x6f, + 0x82, 0xfb, 0xdb, 0x1b, 0x37, 0xe1, 0x6f, 0x9f, 0x8a, 0x97, 0xeb, 0xd5, 0xef, 0xfa, 0xb1, 0xef, + 0x9b, 0xf0, 0x6f, 0xcb, 0x84, 0x99, 0xdc, 0x5e, 0xbf, 0xe7, 0xb3, 0xc9, 0xfd, 0x7f, 0x46, 0xe0, + 0xe5, 0x1f, 0x73, 0x04, 0x5e, 0x7e, 0x76, 0xdd, 0xfe, 0x2f, 0x31, 0x2b, 0x4b, 0xd4, 0xfe, 0x77, + 0x4e, 0xee, 0xff, 0x67, 0xc6, 0x89, 0x33, 0xb9, 0x6d, 0xcb, 0x84, 0xfe, 0xa7, 0xe7, 0xec, 0x6e, + 0xb5, 0xff, 0xcf, 0x5e, 0xd3, 0xff, 0x67, 0xd5, 0xfe, 0x6f, 0xe5, 0xfe, 0x6f, 0xc7, 0xfe, 0x8b, + 0xf1, 0xed, 0x57, 0x76, 0xaa, 0x73, 0x73, 0x37, 0xc2, 0xa0, 0x53, 0x85, 0x41, 0x42, 0x85, 0x41, + 0x2f, 0xc2, 0xa0, 0x8f, 0x61, 0xb0, 0x3e, 0x5e, 0x44, 0xf3, 0x57, 0x85, 0xc1, 0x26, 0xf5, 0xdb, + 0x2d, 0xd8, 0xff, 0xa7, 0xf1, 0xef, 0x99, 0x09, 0x30, 0xe8, 0x44, 0xaa, 0x55, 0x3e, 0x09, 0x06, + 0x4f, 0x0b, 0x18, 0x7c, 0x62, 0x14, 0x30, 0x18, 0xd5, 0xdf, 0x00, 0x06, 0x4d, 0x02, 0x06, 0x63, + 0xdb, 0x27, 0x53, 0xf5, 0x51, 0xfd, 0x44, 0xaa, 0xde, 0x36, 0x3c, 0x99, 0xaa, 0xe3, 0x37, 0x1d, + 0xba, 0x53, 0xfc, 0xee, 0xea, 0xff, 0x26, 0x55, 0x9f, 0x3d, 0x81, 0xaa, 0xaf, 0xba, 0x2e, 0x55, + 0x0f, 0x5f, 0x43, 0xd5, 0x8b, 0x6e, 0x4c, 0xd5, 0x3f, 0x2d, 0x99, 0x04, 0x87, 0x2d, 0x02, 0x0e, + 0x57, 0xc6, 0x05, 0x1c, 0xae, 0x8e, 0x5e, 0x9f, 0xaa, 0x8f, 0x6d, 0x52, 0xe3, 0xce, 0x3f, 0x3d, + 0x19, 0x0e, 0x57, 0x47, 0x19, 0x0e, 0x29, 0x9c, 0x6f, 0x3f, 0x36, 0x19, 0x0e, 0xe3, 0x84, 0xfd, + 0x57, 0xf9, 0x9d, 0x06, 0x87, 0xbd, 0xd7, 0xc0, 0x61, 0xaf, 0x0a, 0x87, 0x41, 0xc6, 0x87, 0xfd, + 0x08, 0x07, 0x41, 0xbb, 0xfe, 0x7f, 0xca, 0x41, 0x84, 0x43, 0x11, 0xd3, 0xae, 0x80, 0x3a, 0xce, + 0xbb, 0x95, 0x2d, 0x2a, 0x1c, 0x9e, 0x46, 0x38, 0x3c, 0xc3, 0x70, 0x78, 0x36, 0x7e, 0x0f, 0xd1, + 0x6e, 0x15, 0x0e, 0xdb, 0xd5, 0x6f, 0x07, 0x10, 0x06, 0x3b, 0xf1, 0x6f, 0xf7, 0x04, 0x38, 0x20, + 0x57, 0x7e, 0xd5, 0x39, 0x09, 0x0e, 0x9b, 0x04, 0x1c, 0x3e, 0xfe, 0x44, 0xc0, 0xe1, 0x8f, 0x1f, + 0x5d, 0x1f, 0x0e, 0xe3, 0xbd, 0x19, 0x71, 0x61, 0x28, 0x1a, 0x92, 0xbd, 0xfa, 0x3c, 0x9c, 0x9e, + 0x11, 0x82, 0xf3, 0x78, 0x7f, 0x16, 0xef, 0xcf, 0xe2, 0xfd, 0x69, 0xbc, 0x96, 0x66, 0x9c, 0xcf, + 0x9d, 0x87, 0x9d, 0x99, 0x4f, 0xc6, 0xfa, 0xf4, 0xd3, 0x8c, 0x4e, 0x18, 0xfb, 0x8b, 0x01, 0xdd, + 0x1a, 0xba, 0xce, 0x29, 0xd1, 0xed, 0xe3, 0xeb, 0x80, 0x3e, 0x87, 0xae, 0x77, 0x95, 0xe9, 0x23, + 0x7c, 0xdd, 0xad, 0x7f, 0x8a, 0xae, 0xfe, 0x2a, 0xfd, 0x69, 0xbe, 0x0e, 0x1a, 0xc2, 0x74, 0xad, + 0x2e, 0x33, 0x6c, 0xe4, 0xeb, 0x56, 0xc3, 0x71, 0xba, 0x06, 0x0a, 0xb2, 0xed, 0xe2, 0x7d, 0x76, + 0xb3, 0x78, 0x9f, 0xbd, 0x43, 0xbc, 0xcf, 0x1e, 0x15, 0xef, 0x8d, 0x01, 0xba, 0xd6, 0xe8, 0x75, + 0xfc, 0x7d, 0xcd, 0x23, 0x3a, 0xfe, 0x3e, 0x98, 0xa7, 0xe3, 0xef, 0x83, 0xab, 0xf5, 0xfc, 0x7d, + 0xf0, 0xb8, 0x9e, 0xbf, 0x9f, 0xdb, 0xac, 0xe7, 0xef, 0xe7, 0x8e, 0x1a, 0x0a, 0xe8, 0x5a, 0xdb, + 0x6b, 0x58, 0x4a, 0xd7, 0x79, 0x66, 0xc3, 0x36, 0xbe, 0x6e, 0x32, 0x7c, 0x24, 0xde, 0x67, 0x57, + 0x8a, 0xf7, 0xd9, 0xdd, 0xe2, 0x7d, 0xf6, 0x01, 0xf1, 0xde, 0x98, 0xc7, 0xf5, 0xf6, 0x67, 0xff, + 0x98, 0xae, 0xa1, 0x22, 0xfd, 0x1c, 0xed, 0x34, 0x51, 0xf3, 0x67, 0x24, 0xe4, 0xa9, 0xb1, 0x83, + 0x93, 0x25, 0xac, 0xb1, 0xd7, 0x34, 0xfe, 0x4b, 0xb3, 0x1c, 0xe1, 0xf8, 0x2d, 0xab, 0xc0, 0x96, + 0xc9, 0x7f, 0x5d, 0x2b, 0xa3, 0x5d, 0x37, 0xff, 0x33, 0xd7, 0xc9, 0x3f, 0xac, 0xda, 0xc8, 0x48, + 0x6a, 0x1c, 0x25, 0x9b, 0x53, 0x7f, 0xf6, 0x51, 0xe6, 0x15, 0x0d, 0x1c, 0xad, 0xcf, 0xa6, 0x79, + 0x2e, 0x97, 0x22, 0x87, 0x5f, 0xb5, 0xf8, 0x4c, 0x20, 0xf4, 0xb2, 0x6b, 0xbb, 0xdb, 0xa6, 0xec, + 0xef, 0x3a, 0xf3, 0x8c, 0xde, 0x0f, 0x3a, 0xcd, 0x72, 0x52, 0xd8, 0xd9, 0x90, 0x1e, 0x8e, 0xb4, + 0x9c, 0x4f, 0x36, 0xdd, 0xe9, 0x38, 0x5c, 0x4a, 0x01, 0xf2, 0xee, 0x25, 0x0d, 0x1b, 0x58, 0x03, + 0xa6, 0x00, 0xe5, 0x9b, 0x52, 0xf2, 0xfb, 0x9a, 0xe6, 0x40, 0xe9, 0x54, 0x17, 0xff, 0x4a, 0xc3, + 0xdb, 0xa0, 0x3c, 0x5a, 0x24, 0xd7, 0x4a, 0x77, 0xec, 0x86, 0x98, 0x85, 0xd7, 0xa7, 0x4d, 0x52, + 0x33, 0x94, 0x07, 0x06, 0x76, 0x03, 0xfb, 0x68, 0x7e, 0x54, 0x36, 0xfd, 0xf0, 0x8d, 0xd5, 0x30, + 0x7f, 0x54, 0xc9, 0xc1, 0x52, 0x2a, 0xb1, 0xd4, 0xf2, 0x81, 0x9e, 0xa5, 0xc3, 0xd7, 0x94, 0x46, + 0x1e, 0x49, 0xe8, 0xed, 0x1c, 0xae, 0x31, 0x2f, 0x7d, 0x2a, 0x8b, 0xe9, 0x73, 0x02, 0xa4, 0x6b, + 0xd4, 0x0c, 0xc1, 0xeb, 0xbc, 0x0b, 0xe2, 0xbb, 0x90, 0x1a, 0x39, 0x46, 0xf2, 0x86, 0xa1, 0x90, + 0xf4, 0x0b, 0x64, 0x18, 0x6f, 0x11, 0xde, 0xcf, 0xf9, 0xdc, 0x7a, 0x7e, 0x1c, 0x64, 0x73, 0xbb, + 0x4e, 0xea, 0xa6, 0x78, 0x8e, 0x91, 0x44, 0x43, 0xdf, 0x8e, 0x44, 0xf4, 0xf2, 0x7b, 0x7d, 0xd5, + 0xbf, 0x27, 0xcf, 0xde, 0x52, 0x82, 0x52, 0x85, 0x57, 0xf3, 0x0a, 0x82, 0x88, 0x84, 0x25, 0x3a, + 0xf0, 0xcf, 0x89, 0x7f, 0x2e, 0x29, 0xc2, 0x96, 0x08, 0x5b, 0xa1, 0x74, 0x99, 0x89, 0x3c, 0xb5, + 0x47, 0xb6, 0x81, 0x84, 0x9c, 0x81, 0xb4, 0x73, 0x2b, 0x54, 0x2e, 0xf3, 0x90, 0xb5, 0x47, 0x44, + 0x44, 0x00, 0xcf, 0x38, 0x65, 0xa5, 0x48, 0x09, 0x47, 0xba, 0x28, 0x16, 0x73, 0xf5, 0x65, 0xac, + 0x41, 0x91, 0x12, 0x32, 0xe9, 0x9d, 0x62, 0x39, 0xf6, 0xc0, 0x5b, 0xfb, 0x9c, 0xcb, 0xa1, 0xe4, + 0xed, 0xd7, 0x5d, 0xdf, 0xdb, 0x02, 0xf6, 0x9a, 0xb7, 0x5e, 0xc5, 0xa7, 0xf2, 0xb7, 0x5f, 0x77, + 0xe2, 0x13, 0x9f, 0x73, 0x2e, 0x87, 0x20, 0xf2, 0x9b, 0x76, 0xa1, 0xe7, 0x13, 0x6b, 0x60, 0xf9, + 0xc6, 0x25, 0x15, 0x83, 0x69, 0x60, 0x1b, 0x18, 0x96, 0xf9, 0x29, 0x96, 0xf2, 0xd2, 0x4a, 0x7c, + 0xb6, 0xe0, 0x9d, 0x79, 0x99, 0x0f, 0x7f, 0x2d, 0x4b, 0xdd, 0x9c, 0x8b, 0x63, 0x2c, 0xb1, 0xfd, + 0x4d, 0xae, 0x9c, 0x37, 0xb0, 0x1d, 0xa5, 0x3e, 0x23, 0xa7, 0x3b, 0x25, 0x5b, 0xf4, 0xb2, 0xac, + 0xde, 0xb3, 0x3d, 0xa4, 0x15, 0x7f, 0x9d, 0xb1, 0x5c, 0xfc, 0x75, 0xc5, 0x4c, 0xd8, 0x1f, 0x5b, + 0x87, 0x4e, 0xd6, 0x07, 0x82, 0x78, 0x27, 0xb4, 0xb0, 0x47, 0xc9, 0xa2, 0x87, 0xbc, 0xa2, 0x87, + 0x83, 0xb1, 0x9c, 0x77, 0x1f, 0xe9, 0xed, 0xb9, 0x35, 0xa0, 0x24, 0xbf, 0xdd, 0x27, 0x99, 0x10, + 0xb2, 0x85, 0xbc, 0xae, 0x0e, 0xb3, 0xfd, 0x78, 0xab, 0x88, 0x59, 0x4c, 0x1e, 0x31, 0xc8, 0xce, + 0x50, 0x3d, 0x1d, 0x77, 0xab, 0xa7, 0xc8, 0xc4, 0xc3, 0x24, 0x25, 0x17, 0xc8, 0x74, 0x5e, 0xeb, + 0xcd, 0x5a, 0x38, 0x3a, 0x56, 0x58, 0xbf, 0x99, 0x53, 0xaf, 0xaa, 0x67, 0xcb, 0x2d, 0xe4, 0xff, + 0xa4, 0x7e, 0x33, 0x9d, 0xbf, 0xb6, 0xd3, 0xaa, 0x7c, 0x61, 0xcd, 0xf0, 0xf1, 0xc7, 0xe4, 0x06, + 0x3b, 0x7e, 0x67, 0x77, 0x41, 0xff, 0xe2, 0xae, 0xe2, 0x6a, 0xa6, 0x9d, 0x23, 0xb8, 0xea, 0x1e, + 0x93, 0x1e, 0x60, 0x0b, 0xec, 0xa9, 0x88, 0xa9, 0x05, 0xf5, 0xe4, 0xbd, 0x30, 0xbf, 0x78, 0x39, + 0xf4, 0xe2, 0xfb, 0x7a, 0x7c, 0x1f, 0x40, 0xae, 0x50, 0x47, 0x5c, 0xa1, 0xd4, 0xc2, 0xb9, 0xcc, + 0x22, 0x97, 0x1a, 0x6d, 0x14, 0xf3, 0xee, 0x7c, 0x41, 0xb9, 0xba, 0xec, 0xa7, 0xf6, 0xa0, 0x34, + 0x13, 0x22, 0x6d, 0x37, 0x1f, 0xd9, 0x0a, 0x7d, 0x5c, 0x76, 0x0d, 0xae, 0x35, 0xad, 0xc8, 0x4b, + 0xb6, 0x2a, 0x27, 0x91, 0x92, 0x9f, 0xc2, 0xeb, 0x19, 0xfc, 0x3b, 0x3b, 0xbb, 0x15, 0x0a, 0x94, + 0x73, 0xf8, 0x5b, 0xa4, 0x9c, 0x27, 0x8e, 0x53, 0x5a, 0xc1, 0x7e, 0xc8, 0x87, 0xbd, 0xd3, 0x44, + 0xb9, 0x0d, 0x1b, 0x70, 0x85, 0xad, 0x42, 0x0e, 0xed, 0xaf, 0x33, 0xac, 0xd5, 0x68, 0x17, 0xa0, + 0x19, 0x4e, 0xcf, 0x1b, 0x4d, 0xda, 0x65, 0x33, 0x52, 0xeb, 0xe5, 0xca, 0x31, 0xf2, 0x2c, 0x2c, + 0x05, 0x1c, 0x96, 0xe8, 0xe5, 0xf9, 0xe7, 0xc1, 0x4e, 0x1e, 0x98, 0xff, 0xf6, 0x58, 0x78, 0xa7, + 0x6b, 0x4e, 0x2c, 0x47, 0xfa, 0x9e, 0x0b, 0xc8, 0x0f, 0xad, 0x72, 0xa0, 0xb1, 0x3b, 0xee, 0x18, + 0xe8, 0x8e, 0x9e, 0xb3, 0x37, 0xa7, 0xbd, 0xf3, 0x90, 0xee, 0x82, 0xb0, 0x48, 0x43, 0x38, 0x93, + 0x67, 0x1e, 0xd7, 0x3c, 0xfc, 0xde, 0x85, 0x35, 0x4c, 0xd2, 0xb2, 0x70, 0xc6, 0x40, 0x67, 0x9c, + 0xcf, 0xe5, 0xba, 0xeb, 0xda, 0x61, 0x35, 0xac, 0xb1, 0x1f, 0x7f, 0x44, 0xfa, 0x6b, 0x4f, 0x90, + 0xa4, 0x3a, 0x69, 0xee, 0xad, 0x09, 0xd7, 0x1c, 0xb2, 0xbb, 0x54, 0xeb, 0x38, 0xcb, 0xbe, 0xc2, + 0x8e, 0x2e, 0x38, 0x0f, 0xbd, 0x28, 0x63, 0x2f, 0x41, 0x79, 0x9a, 0xf2, 0x1d, 0x75, 0x0f, 0xb2, + 0x6d, 0xa7, 0x3e, 0xd2, 0xfd, 0x2f, 0x49, 0x2c, 0xe9, 0x5c, 0xf4, 0x0c, 0xdb, 0xce, 0xfe, 0x9c, + 0x24, 0x3b, 0xd6, 0x01, 0xbf, 0x24, 0xd6, 0x3a, 0xd7, 0x02, 0xc2, 0xca, 0x05, 0xa3, 0x9f, 0x39, + 0x9c, 0x55, 0xb4, 0x4a, 0xba, 0xa6, 0x19, 0xe9, 0x4c, 0x70, 0xd0, 0x5b, 0x4c, 0x3e, 0x40, 0xd8, + 0x6e, 0xb1, 0xbb, 0xfe, 0x07, 0x1e, 0x4d, 0x77, 0x36, 0x24, 0xe9, 0x87, 0xbb, 0x71, 0x66, 0x74, + 0xbf, 0xd7, 0x47, 0x9c, 0x86, 0x31, 0x81, 0x92, 0xef, 0x6e, 0xc4, 0x84, 0x5c, 0xd2, 0x74, 0x9f, + 0x59, 0x0f, 0x07, 0xe3, 0xba, 0x59, 0x7e, 0xf0, 0x49, 0xc1, 0x9a, 0x4b, 0xe0, 0x4a, 0x6b, 0xc5, + 0x46, 0xba, 0x1b, 0xd7, 0xb3, 0x0d, 0xad, 0x75, 0x47, 0x77, 0xf4, 0xd9, 0xb8, 0x4e, 0x96, 0x34, + 0xc8, 0xce, 0x1d, 0x1d, 0x1d, 0x4a, 0x41, 0x76, 0xa3, 0x06, 0xd9, 0x80, 0x3f, 0x34, 0xa8, 0x7a, + 0xd3, 0xae, 0x4a, 0x7b, 0xaa, 0x23, 0xba, 0x28, 0x79, 0xa1, 0x90, 0x74, 0x22, 0x23, 0xfe, 0x3b, + 0xfd, 0x48, 0xd3, 0xf4, 0x77, 0x41, 0x20, 0xa6, 0xd1, 0xc6, 0x89, 0x91, 0x1a, 0x9c, 0xe0, 0x48, + 0xc4, 0x4a, 0x52, 0x34, 0x14, 0x39, 0xaa, 0x12, 0x11, 0xf1, 0x03, 0xf3, 0xd2, 0x3d, 0xb6, 0x5f, + 0x11, 0x11, 0x46, 0x2a, 0x0a, 0x39, 0x36, 0x3b, 0xcd, 0x17, 0xbf, 0xf0, 0x6f, 0xc7, 0xd2, 0x82, + 0x6a, 0xe9, 0x49, 0xb6, 0x28, 0xaa, 0x06, 0x87, 0xdb, 0xb5, 0xe0, 0x9d, 0xf3, 0x38, 0x0b, 0x58, + 0x1b, 0x7b, 0x74, 0xb3, 0xe4, 0x81, 0x08, 0xc7, 0xca, 0x12, 0x92, 0x28, 0x52, 0x46, 0x6f, 0x00, + 0xa9, 0xd5, 0x02, 0x9c, 0x71, 0x61, 0xb0, 0x09, 0x5d, 0x93, 0x42, 0x73, 0xfd, 0x61, 0x61, 0xbf, + 0x2b, 0x55, 0xd8, 0xd5, 0xb9, 0x25, 0x91, 0x0d, 0xef, 0x03, 0x90, 0x6f, 0xf7, 0x00, 0xf9, 0x75, + 0xca, 0x73, 0xb5, 0x00, 0xc5, 0x0c, 0x30, 0xf4, 0xaf, 0x6f, 0xcf, 0xdd, 0x99, 0x58, 0xf6, 0xe0, + 0xdc, 0x8f, 0xb7, 0x42, 0x86, 0x96, 0x81, 0x0b, 0xe2, 0xea, 0xff, 0x22, 0xbe, 0xf7, 0xf1, 0x7d, + 0x23, 0xff, 0x46, 0xd9, 0x76, 0x1b, 0x69, 0xac, 0xdc, 0x48, 0x77, 0x81, 0x7e, 0xb9, 0x81, 0xb4, + 0x83, 0xbd, 0x3a, 0x8e, 0xde, 0xde, 0x02, 0x46, 0xf6, 0xd3, 0xd8, 0xa1, 0x79, 0x47, 0x8a, 0x19, + 0xe2, 0xd9, 0xbc, 0xff, 0x94, 0x90, 0x5d, 0x94, 0xdf, 0x8e, 0x73, 0x40, 0x7a, 0x0e, 0x72, 0xe4, + 0x02, 0xb5, 0x9c, 0x88, 0x6c, 0x21, 0x2f, 0x87, 0x38, 0x23, 0x1f, 0x20, 0x1d, 0x15, 0x8e, 0x7e, + 0x72, 0xb1, 0xd0, 0x20, 0x7c, 0xca, 0x90, 0xae, 0x2b, 0xad, 0x29, 0x38, 0xcb, 0xdd, 0xa4, 0x37, + 0x41, 0xba, 0xd5, 0xc4, 0x47, 0xad, 0xd9, 0x47, 0x76, 0xe6, 0x57, 0x4f, 0x8b, 0x88, 0x58, 0x5a, + 0x2e, 0xbb, 0xc8, 0x65, 0xa6, 0x9e, 0xc5, 0xcc, 0xde, 0x6a, 0x6c, 0x95, 0x9f, 0xe3, 0x7f, 0x1d, + 0x63, 0x6a, 0xb3, 0x49, 0x8b, 0x43, 0xe0, 0x6a, 0x65, 0x2f, 0xe9, 0x4c, 0x65, 0x70, 0xf6, 0x3b, + 0x51, 0x02, 0x6e, 0x86, 0x3c, 0x94, 0x7f, 0x91, 0xca, 0xd8, 0xa1, 0x81, 0xe8, 0xc5, 0x56, 0xe4, + 0x99, 0xb6, 0xb7, 0xe5, 0x1c, 0x49, 0xe0, 0x3d, 0xf3, 0x50, 0x4c, 0x17, 0x76, 0xe3, 0xdd, 0x5e, + 0x92, 0xb7, 0x48, 0xfa, 0x25, 0xae, 0x93, 0xa4, 0x2d, 0xe2, 0xcc, 0x88, 0xdb, 0x6c, 0xd3, 0x63, + 0x5e, 0xf2, 0x9d, 0x7e, 0x82, 0xa0, 0x8d, 0xe5, 0x1a, 0x94, 0xcb, 0xf8, 0x74, 0x05, 0xff, 0xae, + 0x22, 0x35, 0xf8, 0x71, 0xa0, 0x36, 0x30, 0x37, 0x10, 0xfc, 0xe1, 0x1b, 0xf8, 0xbc, 0x39, 0x30, + 0xef, 0x7f, 0x1d, 0x5a, 0x0d, 0x78, 0xf7, 0x14, 0xd9, 0x7c, 0xd8, 0x49, 0xb3, 0xc4, 0xd2, 0xff, + 0x1c, 0xc8, 0x88, 0xad, 0xe4, 0x71, 0x7f, 0x47, 0x5e, 0x15, 0x4c, 0xe7, 0xbb, 0xad, 0x19, 0xa3, + 0xf2, 0x14, 0x94, 0xe1, 0x68, 0x3c, 0xad, 0xfe, 0xef, 0xc4, 0xbf, 0x6e, 0xfd, 0x16, 0xf0, 0xc3, + 0x23, 0xd0, 0x8f, 0xf7, 0x25, 0x6a, 0x7a, 0x45, 0xd5, 0x72, 0x30, 0xca, 0x2b, 0xe7, 0xb8, 0xf0, + 0x77, 0x79, 0xa7, 0x4e, 0x6e, 0x9a, 0x8d, 0x14, 0x5b, 0xf9, 0xb1, 0xbc, 0x84, 0xa0, 0x62, 0x9f, + 0x09, 0x7d, 0xf7, 0x51, 0xff, 0x4e, 0x11, 0xaf, 0x5d, 0x7d, 0x51, 0xb9, 0x52, 0x1c, 0x52, 0xce, + 0xe1, 0xf5, 0x2a, 0x5e, 0x2f, 0x10, 0xd5, 0xe3, 0x78, 0x77, 0x66, 0x8d, 0x3e, 0x85, 0xfd, 0x51, + 0x87, 0x0c, 0xfa, 0x22, 0x5c, 0x5d, 0x0c, 0x72, 0x01, 0xf7, 0x69, 0xb3, 0x9c, 0x87, 0x78, 0x69, + 0x90, 0x8d, 0xfc, 0xf4, 0x14, 0xd1, 0xfc, 0x35, 0x3a, 0xa4, 0xc0, 0xcf, 0x50, 0x4c, 0x50, 0xe4, + 0x1b, 0x9f, 0x96, 0xfc, 0x22, 0xfa, 0x80, 0xe2, 0x66, 0xfb, 0x88, 0xb6, 0xf0, 0xdc, 0x68, 0x91, + 0xaa, 0x3b, 0x23, 0x13, 0x0c, 0x99, 0x76, 0xef, 0x15, 0x9a, 0xa8, 0x7f, 0x6c, 0x60, 0x3c, 0xa9, + 0x8d, 0x3a, 0xb4, 0x1c, 0xcc, 0xd5, 0x0e, 0x72, 0x9e, 0xfd, 0x6a, 0x1e, 0xde, 0xb5, 0x2d, 0xac, + 0x02, 0x5d, 0x18, 0xa1, 0x18, 0xe5, 0x99, 0x11, 0x9f, 0x3e, 0xbc, 0x95, 0x4b, 0x1b, 0xe2, 0x9c, + 0x07, 0xd5, 0x9c, 0xa4, 0x41, 0x64, 0x59, 0xa3, 0x0b, 0xcf, 0x8b, 0xe5, 0x6b, 0xe5, 0x31, 0x37, + 0x3c, 0xdc, 0xa6, 0xc3, 0x3e, 0x8f, 0xc8, 0x06, 0x5f, 0x6e, 0x2c, 0x0f, 0xb1, 0xf2, 0x0a, 0xd2, + 0xbb, 0x70, 0x38, 0x18, 0x05, 0x5d, 0xae, 0x0c, 0x3a, 0xbf, 0x34, 0x0b, 0x53, 0xee, 0xc1, 0x76, + 0xda, 0xd5, 0xf5, 0x40, 0xd6, 0x5a, 0x89, 0x18, 0xd5, 0xde, 0x20, 0xe2, 0x0e, 0xed, 0xf9, 0xe4, + 0x59, 0xb5, 0xad, 0xc0, 0x11, 0x5c, 0xaf, 0x69, 0x6d, 0x9b, 0x19, 0xd7, 0x83, 0x76, 0x2f, 0xc1, + 0xe2, 0x0a, 0xe6, 0x5e, 0xcd, 0xbe, 0xf6, 0x9a, 0xb0, 0xb6, 0xcd, 0x31, 0x1f, 0xb7, 0x79, 0xea, + 0x30, 0xad, 0x17, 0x7e, 0x84, 0x7d, 0xab, 0xb2, 0x59, 0x39, 0x33, 0x19, 0xda, 0xe4, 0x83, 0xa9, + 0x61, 0x43, 0xb4, 0x94, 0x7c, 0xaf, 0xee, 0x12, 0x36, 0x26, 0x3f, 0x4d, 0xaf, 0x73, 0x88, 0x8b, + 0xd8, 0x63, 0xb6, 0xc4, 0xda, 0xf3, 0x49, 0x01, 0xb7, 0x24, 0x18, 0xad, 0x77, 0x16, 0x2b, 0x49, + 0x39, 0x84, 0x77, 0x41, 0x75, 0x9d, 0xa4, 0x7a, 0x6e, 0xc6, 0x7a, 0x3a, 0x10, 0x22, 0xb3, 0x94, + 0xab, 0xf5, 0x7b, 0xfe, 0x70, 0x89, 0xd7, 0x2e, 0xb2, 0xbc, 0xa7, 0x38, 0x64, 0x39, 0x88, 0x59, + 0x7a, 0xa4, 0xd2, 0x61, 0x39, 0x47, 0xa5, 0x30, 0x03, 0xb2, 0x49, 0xbd, 0x23, 0x19, 0x74, 0x3b, + 0xb6, 0xed, 0xaa, 0xb2, 0x33, 0x85, 0xc1, 0x27, 0xb8, 0xdc, 0xad, 0x58, 0xd6, 0x53, 0x24, 0x15, + 0xfc, 0x21, 0xce, 0x35, 0xcf, 0x8b, 0x99, 0xed, 0xb3, 0x94, 0x67, 0x67, 0x26, 0x6c, 0x61, 0x55, + 0x4e, 0x4c, 0x2a, 0x2d, 0x99, 0xf3, 0xf5, 0x46, 0x33, 0xf1, 0x0f, 0xf5, 0x3c, 0x13, 0x87, 0x58, + 0xef, 0x5a, 0x44, 0x04, 0xa1, 0x9a, 0x29, 0xba, 0x40, 0x09, 0xae, 0x11, 0xad, 0xca, 0x21, 0x41, + 0x1d, 0xe3, 0x0a, 0x42, 0xe3, 0x28, 0xfe, 0x9d, 0x74, 0xcc, 0x02, 0xf3, 0x08, 0xf2, 0x01, 0xb8, + 0x36, 0x1f, 0x2a, 0x0e, 0x2b, 0x57, 0x9d, 0x0b, 0xa9, 0x6d, 0xb7, 0x63, 0xb9, 0x44, 0x29, 0xe6, + 0x8e, 0xfe, 0xc1, 0x23, 0x2f, 0x96, 0xfc, 0x76, 0x8b, 0xb1, 0x8b, 0xd8, 0xd3, 0x0e, 0xc3, 0xee, + 0xae, 0x65, 0xc1, 0x23, 0x5d, 0xa5, 0xb3, 0x6d, 0x38, 0x67, 0x2c, 0x7a, 0xc8, 0x01, 0x2b, 0xd3, + 0xb0, 0xd2, 0xe2, 0x4e, 0x66, 0x5f, 0x8f, 0xc8, 0x4e, 0xbe, 0xd3, 0x29, 0x47, 0xe5, 0x42, 0xbe, + 0xd3, 0x2b, 0xc7, 0xe5, 0x3c, 0xbe, 0xcb, 0x52, 0x4e, 0x22, 0x2c, 0xfc, 0xdc, 0x6f, 0xb2, 0xeb, + 0x9f, 0x46, 0xab, 0x03, 0x62, 0xf2, 0x33, 0x19, 0x11, 0x32, 0xef, 0xe5, 0x36, 0xee, 0xf9, 0xa4, + 0x48, 0xe5, 0x70, 0x49, 0x4e, 0x3f, 0x80, 0xd2, 0x63, 0xad, 0xea, 0x37, 0xeb, 0x40, 0xdd, 0xc5, + 0xba, 0x42, 0xb1, 0xa2, 0x33, 0xb7, 0x4d, 0x7a, 0x54, 0x69, 0x0d, 0xb9, 0x7a, 0x4f, 0xda, 0xf2, + 0xcc, 0x23, 0xa9, 0xd6, 0x67, 0xff, 0x71, 0x0e, 0xf2, 0x32, 0xa2, 0x69, 0xde, 0xeb, 0x28, 0x06, + 0x03, 0xfb, 0x28, 0x28, 0x5c, 0x0d, 0xb5, 0x59, 0xaf, 0x75, 0x93, 0x9f, 0x76, 0x05, 0x4e, 0x3d, + 0x12, 0xe9, 0xd9, 0x85, 0x7c, 0xf2, 0x32, 0x57, 0xa4, 0x7b, 0x35, 0x92, 0x29, 0xd2, 0xa3, 0x67, + 0x1b, 0x60, 0xbd, 0xf7, 0x26, 0x75, 0xb7, 0xd9, 0x1f, 0x2d, 0x54, 0xf3, 0x9c, 0x8b, 0x74, 0xcb, + 0x26, 0x5c, 0x9f, 0x83, 0xf3, 0x47, 0xaf, 0x14, 0xed, 0x44, 0x5a, 0xbd, 0xec, 0x9c, 0xec, 0x71, + 0xe9, 0xdf, 0x5d, 0xdf, 0xd7, 0x63, 0x5f, 0x81, 0x50, 0x0f, 0x1c, 0xde, 0xe7, 0x42, 0xfe, 0xf9, + 0x9d, 0x21, 0xfb, 0xce, 0x3e, 0xa0, 0x58, 0x13, 0x52, 0xcd, 0xe1, 0x57, 0x9d, 0xc8, 0xa7, 0xbf, + 0x3d, 0x64, 0x7f, 0xa9, 0x0f, 0xe4, 0x5c, 0x69, 0x05, 0x51, 0x6a, 0x94, 0xef, 0x9e, 0x08, 0xf4, + 0x77, 0x28, 0x69, 0x6e, 0xfe, 0xe3, 0xfb, 0x54, 0x1b, 0xe8, 0x42, 0xc1, 0xb1, 0x90, 0xd6, 0x22, + 0xd9, 0x56, 0x12, 0xb7, 0x4b, 0xfd, 0x70, 0x16, 0x93, 0x27, 0xa5, 0x5a, 0xfd, 0xfe, 0x9e, 0xcc, + 0x1e, 0x61, 0x0b, 0x4a, 0x9b, 0xc2, 0xfa, 0x1e, 0xee, 0xc7, 0xa3, 0xd8, 0xc2, 0xca, 0xa6, 0x2a, + 0x6c, 0x77, 0x16, 0xf2, 0x04, 0xc8, 0xa5, 0x7e, 0xdc, 0xa9, 0x72, 0xa9, 0x2e, 0x6e, 0x1b, 0xb6, + 0x64, 0x52, 0xdb, 0x44, 0x6b, 0x4b, 0x44, 0x4a, 0x3b, 0xad, 0x99, 0x81, 0x74, 0x8b, 0x3e, 0x3a, + 0x88, 0x63, 0x14, 0x88, 0x9a, 0x33, 0x5b, 0xec, 0xd3, 0x0b, 0xae, 0x27, 0xe0, 0xd7, 0xb8, 0x4c, + 0xe1, 0xc9, 0x82, 0xe8, 0x3e, 0x79, 0x0c, 0xc1, 0xbc, 0xbc, 0xb6, 0x3a, 0xea, 0xfe, 0xe3, 0x03, + 0xc8, 0xb3, 0x07, 0x1d, 0x33, 0xc1, 0x80, 0xb4, 0xf8, 0x02, 0xc5, 0x9a, 0xd1, 0x28, 0x36, 0xca, + 0x23, 0x61, 0xa4, 0x12, 0x03, 0xc8, 0x99, 0xd7, 0xc7, 0x16, 0xb3, 0xd4, 0x7c, 0x01, 0x57, 0x1f, + 0xd9, 0x0b, 0x0b, 0x47, 0x3f, 0x7a, 0x0a, 0x39, 0x50, 0x4a, 0xb9, 0x4c, 0x25, 0x09, 0x3a, 0xe0, + 0x25, 0x7f, 0xc1, 0xf5, 0x82, 0x0b, 0x95, 0x82, 0xec, 0x63, 0x65, 0x5a, 0xac, 0x10, 0xe7, 0xcd, + 0x65, 0xfc, 0xbb, 0x40, 0xef, 0xf0, 0x2f, 0x2c, 0x6c, 0x9d, 0xff, 0x40, 0xf1, 0xbc, 0x6d, 0x08, + 0x95, 0x70, 0x94, 0x64, 0x81, 0x7a, 0x99, 0xa8, 0x11, 0xd9, 0xd6, 0x6e, 0xe2, 0x52, 0x93, 0x54, + 0x6a, 0x7c, 0x1a, 0x51, 0x38, 0x11, 0x03, 0xf3, 0x23, 0x37, 0xa5, 0x74, 0x4c, 0x3b, 0x46, 0x34, + 0x2f, 0xc8, 0xf4, 0x23, 0x89, 0x1c, 0xe6, 0x0b, 0xca, 0x39, 0x9c, 0x3f, 0xe1, 0x9a, 0x8b, 0xca, + 0x29, 0xe6, 0x01, 0x9f, 0x4a, 0x9d, 0xc0, 0x8c, 0x72, 0x39, 0x57, 0xe8, 0x2b, 0x6e, 0xb3, 0x7e, + 0xe1, 0xe8, 0xef, 0xcf, 0xaa, 0x6d, 0xbe, 0x3a, 0xa1, 0xcd, 0x7a, 0x6e, 0x71, 0x61, 0xc9, 0x0b, + 0x14, 0x11, 0x56, 0xb9, 0xc2, 0x6d, 0xd4, 0x8b, 0x56, 0x5e, 0x91, 0xd9, 0xf3, 0x15, 0xf6, 0x80, + 0xe2, 0x36, 0x23, 0x37, 0x7d, 0x05, 0xe7, 0xfc, 0x85, 0x1d, 0x0f, 0xdf, 0x4f, 0x96, 0x2d, 0x61, + 0xe4, 0xa6, 0x22, 0x2e, 0x6a, 0x95, 0xf9, 0xd8, 0x76, 0xe8, 0xc5, 0x56, 0x31, 0x17, 0x3c, 0x7b, + 0x3e, 0xae, 0x80, 0xad, 0xca, 0xf1, 0x45, 0xd5, 0xb3, 0xab, 0x95, 0x13, 0x8b, 0xfc, 0xb3, 0x71, + 0x06, 0xdb, 0x97, 0xab, 0x5c, 0x2f, 0x45, 0x61, 0xe5, 0x55, 0xc5, 0x4e, 0xad, 0xc0, 0x72, 0x07, + 0x1e, 0xbe, 0x3f, 0x68, 0x27, 0xda, 0x3b, 0x47, 0x2b, 0xd1, 0x29, 0x4a, 0x7c, 0x3e, 0x5d, 0x22, + 0x96, 0x76, 0x0c, 0x4b, 0x55, 0x4b, 0xbc, 0x7e, 0x79, 0x33, 0x02, 0x50, 0x8f, 0xb2, 0x54, 0x98, + 0x2c, 0x59, 0x54, 0x0f, 0x1d, 0x3b, 0x69, 0x06, 0xb2, 0x26, 0xbc, 0x8e, 0xac, 0x13, 0xf8, 0xf7, + 0x9b, 0xa4, 0x0f, 0x7f, 0x57, 0xca, 0xa7, 0x09, 0xc1, 0xc1, 0x83, 0x58, 0x30, 0xbb, 0x19, 0xcc, + 0xca, 0x76, 0xfc, 0xb5, 0x2a, 0x3f, 0xaf, 0x70, 0x43, 0x6e, 0xa5, 0x1b, 0xf2, 0x35, 0x4c, 0x40, + 0xbe, 0xc0, 0xa2, 0x0c, 0x20, 0xf6, 0x19, 0x4a, 0x67, 0x29, 0x3f, 0xdf, 0xd1, 0xaa, 0x6c, 0x5f, + 0x65, 0x2d, 0xa7, 0xf8, 0x75, 0x35, 0xb3, 0x3b, 0x15, 0x45, 0xf9, 0x29, 0xff, 0x3e, 0x2b, 0xe7, + 0xe2, 0xd7, 0x36, 0xe5, 0x59, 0x5e, 0x69, 0x7f, 0x1a, 0xa8, 0xd9, 0x13, 0x5c, 0x65, 0x2d, 0x73, + 0x43, 0xc1, 0xa2, 0x00, 0xbf, 0xdf, 0xc6, 0xbf, 0x5b, 0x39, 0x57, 0x81, 0xb2, 0x95, 0x73, 0x6d, + 0x0b, 0x04, 0x8a, 0x17, 0x2b, 0xbb, 0x11, 0x12, 0x03, 0x9e, 0xbb, 0xbd, 0x46, 0xc2, 0x25, 0x1c, + 0xa9, 0x84, 0xd7, 0x4c, 0xbe, 0x95, 0x1f, 0x39, 0x46, 0x11, 0x07, 0x38, 0x55, 0x1b, 0xc3, 0x04, + 0xc5, 0xf5, 0xb3, 0xcf, 0xab, 0x7f, 0x82, 0xf0, 0x0b, 0xd7, 0x14, 0x1c, 0x13, 0xbd, 0x55, 0xac, + 0x64, 0x7a, 0x33, 0xe7, 0x4c, 0x8d, 0xeb, 0xbd, 0x02, 0x17, 0x0d, 0xa9, 0x32, 0x92, 0x93, 0xde, + 0x58, 0xe8, 0x0d, 0xe3, 0x69, 0x33, 0x98, 0xd8, 0x8e, 0x77, 0x3a, 0xae, 0x84, 0xaf, 0xfd, 0xdb, + 0x45, 0x65, 0x37, 0xd9, 0xae, 0x62, 0x9b, 0x76, 0xfb, 0x70, 0x46, 0x98, 0xfd, 0xa0, 0x8f, 0xf9, + 0x97, 0xe6, 0xe0, 0x55, 0x87, 0xef, 0x7f, 0x2a, 0x5b, 0xf0, 0x2e, 0x2b, 0x16, 0xc1, 0x5f, 0x03, + 0x3e, 0x6f, 0x96, 0xdb, 0xc9, 0x92, 0x0b, 0x79, 0xdd, 0x82, 0x52, 0x84, 0x48, 0x29, 0x52, 0x72, + 0xec, 0x33, 0x41, 0x27, 0x17, 0xa1, 0x68, 0x76, 0x60, 0x9d, 0x6b, 0xec, 0x72, 0xed, 0x9f, 0xcb, + 0xd3, 0x79, 0x9b, 0x5c, 0xff, 0x67, 0xcb, 0x71, 0x1c, 0xdf, 0x86, 0x18, 0x31, 0x57, 0xd9, 0x2b, + 0xbb, 0xff, 0x6c, 0x79, 0x33, 0x4e, 0x50, 0xde, 0x5a, 0xe4, 0xd3, 0x10, 0xa6, 0xca, 0xe0, 0xec, + 0xa0, 0xb2, 0x7f, 0x76, 0x8d, 0xf2, 0x1a, 0x3e, 0x5d, 0x51, 0x86, 0x66, 0x07, 0x94, 0x83, 0x88, + 0x4d, 0x87, 0x10, 0x97, 0x86, 0x11, 0x97, 0x8e, 0xf0, 0x6a, 0x37, 0xc2, 0xf3, 0xe9, 0x18, 0x45, + 0x15, 0x70, 0xce, 0xa2, 0xb8, 0x78, 0xca, 0x6e, 0x64, 0x79, 0x71, 0x85, 0x99, 0x2f, 0xe2, 0x1b, + 0x02, 0xd6, 0x63, 0xf6, 0x4e, 0xa5, 0x38, 0xa7, 0x0e, 0x94, 0x40, 0x7d, 0xcd, 0x90, 0xeb, 0x35, + 0xd1, 0xd3, 0x70, 0xf7, 0x61, 0x1c, 0x09, 0xf6, 0x29, 0x43, 0xfe, 0x11, 0x0c, 0x9c, 0xd3, 0x2a, + 0x72, 0xba, 0x70, 0x6e, 0x09, 0x0f, 0xde, 0x9c, 0xb3, 0x17, 0x73, 0x5e, 0xa1, 0xb6, 0xb3, 0x74, + 0x50, 0xc0, 0xa7, 0x71, 0x36, 0x3b, 0x61, 0x7b, 0xe1, 0xb1, 0xe7, 0x18, 0xdb, 0xa9, 0xbd, 0xbb, + 0x95, 0xfd, 0x38, 0x9b, 0x2f, 0x17, 0xcf, 0x57, 0x06, 0xe9, 0xec, 0xa2, 0x86, 0xf8, 0xb3, 0xf9, + 0xc8, 0x61, 0xd6, 0xab, 0xf2, 0x2b, 0xf2, 0x97, 0xda, 0x99, 0x85, 0x3a, 0x0b, 0xf6, 0xa6, 0x67, + 0x01, 0xf2, 0x69, 0x57, 0x4a, 0xdc, 0x48, 0x41, 0xe7, 0xf1, 0x0a, 0xb6, 0x93, 0xc6, 0x11, 0xdf, + 0x39, 0xec, 0x2b, 0x91, 0x46, 0x9b, 0xec, 0x53, 0x5f, 0x4a, 0x74, 0xde, 0x3c, 0xb8, 0xce, 0x6e, + 0xda, 0xb7, 0x8e, 0x63, 0x43, 0x1d, 0x08, 0x77, 0xc5, 0x72, 0x67, 0xcf, 0x55, 0x9e, 0xa9, 0x34, + 0x54, 0x64, 0x49, 0x61, 0xa4, 0x41, 0xcf, 0x78, 0x66, 0x29, 0x03, 0x58, 0xd7, 0x80, 0x07, 0xbf, + 0x2c, 0xcd, 0xae, 0xcc, 0x2a, 0xd7, 0xe3, 0x8a, 0xbb, 0xbb, 0x8c, 0x6c, 0x91, 0x2f, 0x31, 0x4d, + 0x22, 0x0e, 0x86, 0x62, 0xc1, 0x9f, 0xc1, 0xd9, 0xb0, 0xfd, 0x48, 0x00, 0xa1, 0x78, 0x0e, 0xe1, + 0x7b, 0x1e, 0xdb, 0x71, 0x06, 0x69, 0x86, 0x07, 0xe6, 0x48, 0x2d, 0x50, 0x29, 0x78, 0x78, 0xc4, + 0xa6, 0x81, 0x28, 0xb6, 0x85, 0x34, 0xb7, 0xe5, 0xa5, 0xf4, 0x75, 0xdb, 0x17, 0x8f, 0xd0, 0xd7, + 0xd5, 0xca, 0x19, 0x2c, 0x81, 0x78, 0xce, 0xbd, 0x19, 0x3c, 0xe7, 0x19, 0x8d, 0x0b, 0x52, 0x5b, + 0x6d, 0x21, 0xd8, 0xc4, 0xf3, 0x87, 0x9f, 0x13, 0xf5, 0xd5, 0x50, 0xee, 0xf9, 0xca, 0x39, 0xb5, + 0xd7, 0x67, 0xb4, 0x5e, 0x8b, 0xf2, 0x99, 0xc3, 0x11, 0x38, 0xde, 0xcb, 0xfc, 0xde, 0x99, 0xe2, + 0x79, 0xca, 0x39, 0x9a, 0xb1, 0xdc, 0xc6, 0x0b, 0xb3, 0x5b, 0x95, 0x67, 0x94, 0x4b, 0xfc, 0x9d, + 0x51, 0xaa, 0xc5, 0xd9, 0x54, 0x4b, 0x9e, 0x56, 0xea, 0xfb, 0x47, 0x5a, 0x15, 0xf2, 0xc8, 0x6f, + 0xde, 0xd9, 0xaa, 0x3c, 0x8b, 0xfc, 0x6a, 0x11, 0x7e, 0xf1, 0xd4, 0xd1, 0x56, 0x65, 0xdb, 0x2e, + 0xe4, 0x78, 0x90, 0xf6, 0xff, 0xb8, 0x2c, 0xbb, 0x22, 0xeb, 0x58, 0xd8, 0x57, 0x33, 0xfc, 0xca, + 0xec, 0x90, 0xf2, 0x0c, 0x96, 0xf4, 0x94, 0x3c, 0x72, 0x1d, 0x38, 0xd4, 0x32, 0x1c, 0x6a, 0x94, + 0xf3, 0x93, 0xfb, 0x22, 0x5a, 0x47, 0xa3, 0x4e, 0xbd, 0x91, 0x66, 0x5e, 0xd3, 0xba, 0x5a, 0x6e, + 0x5d, 0xbd, 0x72, 0x69, 0x72, 0xbf, 0x4e, 0x88, 0x96, 0x59, 0xf6, 0x52, 0xcb, 0xd6, 0x4b, 0x61, + 0x6c, 0xe9, 0xb6, 0x9d, 0xa2, 0x55, 0xa6, 0x2a, 0x43, 0xb9, 0xfe, 0xe8, 0xdc, 0x2a, 0xec, 0xd3, + 0x89, 0x7d, 0x8e, 0x90, 0x7c, 0x02, 0xc7, 0x11, 0xe0, 0x23, 0xfb, 0xd4, 0xce, 0x9b, 0xf7, 0xad, + 0xc3, 0xf9, 0x7b, 0x0e, 0xc7, 0xc0, 0xc9, 0x18, 0x30, 0xe0, 0x9b, 0x4b, 0x63, 0x8b, 0xa3, 0xf7, + 0xb2, 0x5d, 0xb4, 0xfa, 0xb9, 0xeb, 0xb5, 0xda, 0x9e, 0x6a, 0xb5, 0x1d, 0xeb, 0xc6, 0x31, 0x79, + 0xba, 0xfe, 0x09, 0xca, 0xdf, 0x96, 0x7f, 0xe4, 0x39, 0x31, 0x5e, 0x14, 0x87, 0x1e, 0xff, 0x77, + 0xe1, 0xff, 0x17, 0x10, 0x43, 0xf0, 0x3b, 0x0f, 0xf5, 0x69, 0xa5, 0xfa, 0x5d, 0x2e, 0x7d, 0x87, + 0xdf, 0xcc, 0xbb, 0x0d, 0x7b, 0x4b, 0x96, 0x9b, 0x52, 0x31, 0x52, 0x56, 0xbf, 0x54, 0x72, 0x83, + 0xfe, 0xf2, 0x68, 0x48, 0x33, 0xd5, 0xaf, 0xa7, 0x7a, 0xfc, 0x88, 0xa1, 0xf8, 0xbd, 0xda, 0x67, + 0x1b, 0xce, 0xbf, 0xa7, 0xf7, 0x8a, 0x11, 0x49, 0xf7, 0xdb, 0xa2, 0xf6, 0x3a, 0x70, 0x62, 0x08, + 0xe1, 0xf5, 0x8c, 0x7c, 0x12, 0x61, 0xdb, 0xaa, 0xec, 0x04, 0x03, 0xf3, 0x9e, 0x71, 0xf5, 0x9c, + 0xe6, 0xd9, 0xc9, 0xf4, 0x9d, 0x24, 0x3c, 0x3e, 0x3f, 0x3b, 0xc3, 0x7c, 0xec, 0xb9, 0x14, 0x17, + 0x8d, 0xf4, 0x71, 0xfe, 0xe8, 0xf9, 0x23, 0xf5, 0x9b, 0x38, 0xfd, 0x02, 0xe5, 0x7d, 0x30, 0xe7, + 0x24, 0xbd, 0x9b, 0xc2, 0x11, 0x54, 0x37, 0xf1, 0xaa, 0xd8, 0xad, 0xad, 0xf1, 0x88, 0x33, 0x1d, + 0xb8, 0x3e, 0x9e, 0x53, 0xf3, 0x5f, 0xc9, 0x48, 0xbb, 0x50, 0xbf, 0x89, 0xd6, 0x32, 0xf6, 0x6a, + 0x42, 0x9c, 0xb5, 0x9b, 0xa8, 0x72, 0x74, 0x89, 0x1a, 0xcd, 0x8b, 0x6d, 0x91, 0xa2, 0xb4, 0x77, + 0x64, 0xd1, 0x9e, 0x62, 0x90, 0x15, 0x74, 0x91, 0x04, 0x55, 0x89, 0xf3, 0xb0, 0x8c, 0x64, 0x8f, + 0xa8, 0x13, 0x7f, 0x2f, 0x0c, 0xe0, 0x7a, 0x1e, 0x73, 0x70, 0xf9, 0x67, 0xb8, 0x3d, 0xe6, 0x93, + 0xc4, 0xc7, 0x4f, 0xa1, 0x9d, 0x50, 0x96, 0x25, 0x84, 0x87, 0x4e, 0xc8, 0x32, 0x76, 0x80, 0xca, + 0xed, 0x6b, 0xeb, 0xbb, 0xe8, 0x8d, 0x41, 0x6d, 0x1d, 0xaf, 0x04, 0xed, 0x79, 0x23, 0xd4, 0x1b, + 0x8e, 0x31, 0x56, 0xbf, 0x09, 0x57, 0xd9, 0xab, 0x8b, 0x48, 0xee, 0xbb, 0x2a, 0xe9, 0x6a, 0x13, + 0x38, 0x8a, 0xc9, 0xc1, 0xae, 0xb3, 0x24, 0x8b, 0x24, 0x57, 0x03, 0xad, 0x67, 0x14, 0x8b, 0x12, + 0xb9, 0x83, 0x0e, 0x8b, 0x1a, 0xa9, 0x95, 0xfd, 0x89, 0xb8, 0xa2, 0x06, 0x2b, 0x4a, 0x5d, 0x9e, + 0xac, 0x13, 0x3d, 0x14, 0x39, 0x33, 0xb5, 0xe7, 0x91, 0x11, 0xc5, 0xc8, 0x0d, 0xd1, 0xa2, 0x07, + 0x75, 0x2f, 0x23, 0xef, 0xa2, 0x8f, 0x4b, 0xc6, 0x89, 0x6f, 0x30, 0x6d, 0x49, 0xbb, 0x6e, 0xa1, + 0xa0, 0xa1, 0x14, 0x1f, 0x6b, 0x73, 0xc3, 0x06, 0xac, 0x71, 0xcf, 0xf0, 0x5a, 0xfc, 0x25, 0xbb, + 0x2c, 0xd3, 0x97, 0x97, 0xc3, 0x74, 0xe5, 0xd5, 0x5b, 0x28, 0xc2, 0xf8, 0xf4, 0x1f, 0x1d, 0x44, + 0xfa, 0x05, 0x92, 0x79, 0xb8, 0x7b, 0x6f, 0xa2, 0xc9, 0xf0, 0xf4, 0x7a, 0x59, 0xef, 0xd1, 0x13, + 0x0c, 0x67, 0xd7, 0x2a, 0xaf, 0x55, 0xe1, 0xea, 0x3a, 0xbb, 0x4e, 0xd9, 0xef, 0x33, 0x0f, 0x23, + 0xed, 0x45, 0xca, 0x69, 0x26, 0xfc, 0x2c, 0xc1, 0xf9, 0xd4, 0xf0, 0x10, 0xe2, 0xd6, 0x10, 0xae, + 0x0c, 0x07, 0x91, 0x5e, 0x0e, 0x23, 0x76, 0x8d, 0x20, 0x55, 0x3f, 0x8a, 0x18, 0x72, 0x0c, 0xbf, + 0x3b, 0x8e, 0x14, 0xf5, 0x8c, 0x72, 0x42, 0x9d, 0x5b, 0x43, 0x29, 0x9a, 0x81, 0x63, 0x41, 0x25, + 0xfa, 0x66, 0x29, 0xfb, 0xb1, 0xbc, 0xfc, 0x52, 0xb2, 0x37, 0x9e, 0x58, 0x5e, 0xab, 0xf2, 0xf2, + 0x7f, 0xa5, 0x44, 0x9c, 0x0d, 0x85, 0xb4, 0x2a, 0x90, 0x94, 0x45, 0x23, 0x65, 0x9e, 0x85, 0xb2, + 0xc4, 0xab, 0xb1, 0x1c, 0xbc, 0x4e, 0x51, 0x5e, 0xc5, 0x39, 0x79, 0xc0, 0x0b, 0xa1, 0xf6, 0x44, + 0x2a, 0x16, 0x68, 0xcd, 0x27, 0x26, 0x40, 0x2c, 0x7f, 0xd9, 0x33, 0x17, 0x29, 0xf9, 0x2e, 0x9c, + 0x9f, 0xcf, 0xe2, 0x9a, 0x60, 0x0e, 0x0d, 0x0e, 0x3f, 0x44, 0xde, 0xa0, 0xf2, 0xee, 0xb0, 0x01, + 0xf9, 0x5c, 0x00, 0xa5, 0x36, 0xd1, 0x3e, 0x65, 0xb0, 0x5b, 0xa7, 0x8b, 0x2d, 0x96, 0xf2, 0xc3, + 0xbd, 0xb1, 0x3a, 0x3b, 0xce, 0x2b, 0x1c, 0x91, 0x7c, 0x57, 0xf5, 0x08, 0xf1, 0x5c, 0x01, 0x65, + 0x88, 0x66, 0xe6, 0x70, 0x17, 0xed, 0x1b, 0x0f, 0xd3, 0xcc, 0x3e, 0xe8, 0x22, 0x3c, 0xf3, 0xa8, + 0xad, 0x33, 0xbb, 0xfc, 0x92, 0x87, 0x67, 0xf4, 0x0e, 0xa4, 0x9d, 0x3f, 0x77, 0xf9, 0x69, 0x25, + 0x42, 0xfa, 0xfa, 0x73, 0xac, 0x7b, 0x87, 0x94, 0x68, 0x7c, 0xbc, 0xb1, 0x2f, 0xf2, 0x90, 0x9c, + 0xf3, 0x20, 0x60, 0x49, 0xdb, 0x50, 0xf6, 0xfb, 0x29, 0xaf, 0x4d, 0xb6, 0x81, 0x87, 0x96, 0x82, + 0x12, 0xc7, 0x55, 0x6d, 0x9b, 0x0b, 0x67, 0xe4, 0x5b, 0x17, 0x95, 0x64, 0x04, 0x5b, 0xb9, 0x17, + 0xff, 0xa2, 0x23, 0xbc, 0xfa, 0x66, 0xc2, 0x0d, 0x47, 0xd1, 0x43, 0xb0, 0xc3, 0xb9, 0x7e, 0x8f, + 0x80, 0x1d, 0xad, 0x57, 0x04, 0x3f, 0xc1, 0x0f, 0xe2, 0x8a, 0x85, 0xf0, 0x3b, 0xce, 0xfc, 0xd1, + 0x09, 0x9c, 0xf9, 0xaf, 0x29, 0x27, 0x19, 0x86, 0xa7, 0x26, 0xc3, 0xf0, 0x9d, 0xd7, 0x1a, 0x36, + 0x74, 0x42, 0x15, 0xae, 0x8d, 0x7b, 0xd7, 0x47, 0x61, 0x8c, 0x64, 0x5e, 0xd3, 0x2d, 0xad, 0xca, + 0xab, 0x30, 0xdd, 0x3e, 0x17, 0xe1, 0xba, 0x27, 0x73, 0x97, 0x5f, 0xb5, 0xe5, 0xa2, 0x99, 0xdf, + 0xc9, 0x33, 0x5f, 0xb3, 0xcd, 0xb2, 0x91, 0xad, 0x3a, 0xd9, 0xd3, 0xa0, 0x0c, 0xe5, 0x9e, 0xf7, + 0x01, 0xec, 0xd4, 0x3c, 0x5a, 0xd6, 0xef, 0x39, 0xbb, 0x11, 0x39, 0x79, 0x5f, 0xc3, 0x86, 0x98, + 0xb4, 0x28, 0x31, 0xc3, 0x0f, 0xbe, 0xa8, 0xad, 0xe6, 0x7c, 0xc6, 0x7e, 0xa1, 0x41, 0xc4, 0x62, + 0x3c, 0xfb, 0xf3, 0x86, 0x0d, 0xea, 0x19, 0x80, 0xcd, 0xbb, 0x80, 0xac, 0xb2, 0xeb, 0x50, 0x6a, + 0x3d, 0xbb, 0x9c, 0xf8, 0x47, 0xd5, 0xe7, 0xb0, 0xe1, 0x5b, 0x7d, 0xf1, 0xe9, 0x03, 0x7d, 0xcb, + 0xf2, 0xab, 0xcf, 0xc1, 0xd7, 0x0e, 0x0f, 0x91, 0xa7, 0x00, 0xa4, 0x7f, 0xf9, 0x6f, 0x0d, 0x49, + 0xbe, 0x2d, 0x76, 0xc1, 0x73, 0xb2, 0x85, 0xf6, 0x2a, 0x30, 0xbd, 0x45, 0x92, 0x9d, 0x2a, 0x05, + 0x0f, 0x3c, 0x87, 0x52, 0x8f, 0x85, 0xa2, 0x58, 0x62, 0xee, 0x72, 0x11, 0x17, 0x30, 0x65, 0xa7, + 0x79, 0x05, 0xdb, 0xef, 0x24, 0x59, 0x50, 0x3b, 0x43, 0xc1, 0x2f, 0xdc, 0x81, 0x17, 0xc1, 0x12, + 0xc0, 0xfe, 0xe0, 0x5f, 0x3e, 0x59, 0x8a, 0x05, 0xfe, 0xd1, 0x41, 0xd1, 0x41, 0xc1, 0x7b, 0x13, + 0xbe, 0x6d, 0x22, 0xfb, 0x24, 0xf6, 0x29, 0xbc, 0xe7, 0xac, 0x88, 0xab, 0xf7, 0x22, 0xd8, 0x62, + 0xe6, 0xb8, 0x9f, 0xfc, 0xbb, 0xdf, 0x45, 0x7b, 0xf4, 0xd6, 0xb8, 0x89, 0x7c, 0x9d, 0xb5, 0x9b, + 0xaa, 0xf1, 0x2d, 0x8d, 0x53, 0xa6, 0x35, 0x36, 0x69, 0x46, 0x35, 0x19, 0x84, 0x97, 0x65, 0x92, + 0x92, 0xb4, 0x3f, 0xda, 0x37, 0xf4, 0xe6, 0x30, 0xf5, 0x6c, 0x65, 0x7f, 0x64, 0xbc, 0xf3, 0xa6, + 0xee, 0xc0, 0x8b, 0x3a, 0x51, 0x1e, 0xaf, 0xdf, 0xf3, 0xbb, 0x2d, 0x64, 0xb1, 0x34, 0xf8, 0x82, + 0xc0, 0xf7, 0x18, 0xd9, 0xf4, 0x9b, 0xe2, 0x16, 0x89, 0x6c, 0x96, 0x28, 0x7e, 0xa8, 0x24, 0x71, + 0xe4, 0x57, 0xda, 0xdd, 0x74, 0x20, 0x3d, 0x4a, 0x49, 0xc3, 0x14, 0xc9, 0x8e, 0xd6, 0xc1, 0xf8, + 0x3d, 0x89, 0x36, 0x60, 0xbf, 0x90, 0x24, 0x1d, 0x3f, 0x00, 0x4e, 0xda, 0x67, 0xa6, 0x88, 0x7f, + 0x6d, 0x3a, 0xc9, 0x2f, 0x75, 0x09, 0x2b, 0xcc, 0xd4, 0xde, 0xdf, 0x72, 0xd2, 0xe7, 0x62, 0x9f, + 0xdf, 0xe4, 0x45, 0x1a, 0xc7, 0xe3, 0x77, 0x26, 0x82, 0x5b, 0x0a, 0x7a, 0x7b, 0x49, 0xbf, 0x0b, + 0x25, 0x51, 0xd9, 0xb5, 0x0a, 0x96, 0xcf, 0xfd, 0x90, 0xa3, 0x31, 0x07, 0xd3, 0x16, 0xac, 0x76, + 0x0f, 0xdc, 0x83, 0x5f, 0x2f, 0xb7, 0x87, 0xe3, 0xb7, 0xe0, 0xdb, 0xb8, 0xa7, 0x85, 0xb5, 0x95, + 0xfa, 0x54, 0xbf, 0xe7, 0x00, 0x9f, 0x38, 0xbc, 0xd0, 0x24, 0xe9, 0xe9, 0x7c, 0xeb, 0x71, 0x9d, + 0x99, 0x7f, 0x31, 0xf5, 0x54, 0xf9, 0x8b, 0x50, 0xf9, 0xf5, 0x55, 0x30, 0x07, 0xf4, 0xf8, 0x2b, + 0xfc, 0x26, 0x07, 0x89, 0x02, 0x37, 0x19, 0x6e, 0xf7, 0x83, 0x14, 0xbf, 0x3c, 0xf8, 0x3c, 0x38, + 0x12, 0x2f, 0x82, 0xb5, 0xed, 0x32, 0x45, 0x45, 0xb0, 0x7b, 0xa1, 0xe1, 0xfd, 0x87, 0x13, 0x5d, + 0xe4, 0x17, 0xc8, 0xa4, 0x47, 0x98, 0x58, 0x71, 0x44, 0x16, 0xc7, 0x8c, 0xe0, 0xd7, 0x81, 0x6c, + 0xd0, 0xfb, 0xc7, 0x15, 0x7a, 0x13, 0xbf, 0x99, 0xbe, 0x8a, 0xe5, 0x7c, 0x53, 0xc4, 0xd6, 0x5c, + 0x2d, 0x07, 0xb1, 0xd4, 0x26, 0xaa, 0x59, 0x37, 0xce, 0x5e, 0x0a, 0xc7, 0xa3, 0xd1, 0xdb, 0x11, + 0x0f, 0xc0, 0x88, 0xbf, 0x1e, 0xc8, 0xc1, 0x5f, 0x1f, 0xe4, 0xde, 0x4e, 0x31, 0xbe, 0xf3, 0xbe, + 0xb8, 0x0a, 0xbe, 0x0c, 0xf9, 0xf8, 0xfb, 0x55, 0xf8, 0x22, 0xfe, 0xde, 0x06, 0x36, 0xfc, 0xbd, + 0x1d, 0xbe, 0x24, 0xfb, 0xb4, 0x32, 0xe4, 0x53, 0x66, 0xfe, 0x8d, 0xda, 0xf1, 0x8b, 0x10, 0x14, + 0xe0, 0xfb, 0xbf, 0x84, 0xa2, 0x6b, 0xcb, 0xd3, 0xf6, 0x9d, 0x97, 0x10, 0x06, 0x04, 0xb5, 0x38, + 0x90, 0x55, 0x95, 0x2e, 0xda, 0x2d, 0x6e, 0x11, 0xb3, 0x67, 0xee, 0x45, 0x4c, 0xeb, 0x10, 0xb1, + 0xe8, 0x05, 0x1c, 0x43, 0x2b, 0xc0, 0xae, 0xf9, 0x7e, 0xac, 0xdf, 0x33, 0xde, 0xc7, 0x5a, 0x26, + 0xe4, 0x9f, 0xe6, 0x88, 0x03, 0xbf, 0x71, 0xe7, 0x18, 0xd7, 0x22, 0x76, 0xed, 0x94, 0xe6, 0x66, + 0xec, 0x64, 0x34, 0xc3, 0xe9, 0x8e, 0x63, 0xc7, 0x1e, 0xa3, 0x35, 0xe0, 0xce, 0xbd, 0xb2, 0x9d, + 0xe8, 0xe3, 0xc0, 0x36, 0x25, 0x19, 0xcd, 0x9f, 0x7b, 0x9e, 0x4b, 0x97, 0xb0, 0x34, 0x03, 0x4b, + 0xa0, 0xa4, 0x2b, 0x67, 0x72, 0xd4, 0x38, 0xf3, 0xa2, 0xc7, 0x7f, 0x70, 0x40, 0x9d, 0xb5, 0xd9, + 0xf5, 0x7b, 0x4e, 0x5f, 0x6a, 0xd8, 0xc0, 0xfe, 0x56, 0x8c, 0x91, 0x6d, 0xe0, 0x93, 0x97, 0x93, + 0x1d, 0x5e, 0xe0, 0x67, 0xc8, 0xe1, 0x10, 0x5e, 0x3e, 0x8b, 0xef, 0x4f, 0x39, 0xb4, 0x73, 0x82, + 0xba, 0xb8, 0x8e, 0xe6, 0x35, 0x6b, 0x23, 0xa0, 0xcc, 0x28, 0x5a, 0x7d, 0xe7, 0x99, 0xf9, 0x69, + 0x2a, 0x80, 0xad, 0x3e, 0xbd, 0xbe, 0xfa, 0x03, 0x38, 0x3d, 0x61, 0xe6, 0xe7, 0x64, 0xbc, 0x4d, + 0x88, 0x28, 0x96, 0xac, 0x13, 0x47, 0x27, 0x33, 0xbb, 0x05, 0x5f, 0x31, 0x5a, 0xa1, 0xf1, 0x15, + 0xda, 0x0e, 0x42, 0x09, 0x52, 0x62, 0x69, 0x9e, 0xdb, 0xc5, 0x9c, 0x96, 0x7b, 0xd4, 0x8f, 0x78, + 0xda, 0xee, 0x31, 0xdd, 0xb7, 0xae, 0xb8, 0x36, 0x69, 0x2e, 0xee, 0xd4, 0x25, 0xbe, 0x7a, 0x39, + 0x69, 0x71, 0x9a, 0x1a, 0x7a, 0x8a, 0x6b, 0x92, 0xd6, 0xe2, 0x4e, 0x00, 0x7d, 0x22, 0x69, 0x6b, + 0x9f, 0x3a, 0xd2, 0x57, 0x1c, 0x48, 0x16, 0xf2, 0x73, 0x7f, 0x52, 0x42, 0x5e, 0xa4, 0xaf, 0xb8, + 0x3a, 0xe9, 0xe0, 0xe7, 0xcb, 0x49, 0x17, 0x4a, 0xfc, 0xb8, 0x22, 0x27, 0x3d, 0xf4, 0x9c, 0x25, + 0x25, 0x7d, 0x0b, 0xcf, 0x81, 0xb9, 0xb8, 0x3e, 0x59, 0x46, 0xcf, 0xba, 0x53, 0xc9, 0x8a, 0x9a, + 0x73, 0x70, 0x13, 0x52, 0xd7, 0xed, 0xc5, 0xf3, 0x93, 0x55, 0x9c, 0x76, 0x3e, 0xe9, 0x9f, 0x7b, + 0x0e, 0x72, 0x8b, 0xc3, 0xc9, 0x20, 0x3f, 0x5f, 0x48, 0x86, 0x30, 0xcf, 0xcd, 0xf8, 0xbe, 0x8e, + 0xcb, 0xbc, 0x29, 0xd9, 0x80, 0x34, 0xca, 0x52, 0x1c, 0x4a, 0x2e, 0x66, 0x6d, 0x80, 0xb7, 0x92, + 0x8d, 0x81, 0x17, 0x92, 0x4b, 0xf0, 0x4f, 0xc6, 0x76, 0x36, 0x15, 0x77, 0xea, 0x67, 0xdc, 0x0d, + 0xc9, 0xe5, 0xd8, 0xc6, 0x16, 0xb5, 0xce, 0x38, 0xb6, 0xaf, 0x9d, 0xef, 0x2b, 0x92, 0x1d, 0xd8, + 0xb6, 0x4e, 0xbe, 0x4f, 0x24, 0x91, 0x8b, 0x4b, 0xf6, 0xd2, 0xbd, 0x01, 0x92, 0x7d, 0xd8, 0xa6, + 0xf5, 0x5c, 0x7e, 0x63, 0xb2, 0x1f, 0x69, 0xf9, 0xf6, 0xe4, 0x26, 0x7e, 0xfa, 0x76, 0x72, 0x0b, + 0xb6, 0xe4, 0x69, 0xbe, 0xff, 0xab, 0xe4, 0x33, 0xd8, 0x8a, 0x67, 0xf9, 0xfe, 0xbb, 0xc9, 0xad, + 0xd8, 0x02, 0xa1, 0x8f, 0xf0, 0x9f, 0xc9, 0x01, 0xac, 0x7d, 0x27, 0xfe, 0xed, 0xc6, 0x16, 0xec, + 0x2d, 0xee, 0xcc, 0xfa, 0xed, 0x11, 0x7f, 0x12, 0x65, 0x9d, 0xe4, 0x7e, 0xb5, 0xf4, 0x21, 0x6c, + 0xc1, 0x41, 0xbe, 0xb7, 0x25, 0x87, 0xb1, 0x05, 0x23, 0x7c, 0xff, 0x4c, 0x12, 0xe5, 0x9e, 0x24, + 0x69, 0x8a, 0x40, 0xb6, 0x3f, 0x79, 0x0a, 0x5b, 0x70, 0x86, 0x5b, 0x06, 0xc9, 0x73, 0xdc, 0x82, + 0x0b, 0xfc, 0x94, 0x95, 0xbc, 0x8c, 0x2d, 0xb8, 0xc2, 0xf7, 0x53, 0x93, 0x57, 0xb1, 0x05, 0x49, + 0xbe, 0x77, 0x8e, 0x41, 0x71, 0x68, 0xcc, 0xc0, 0x2d, 0xf8, 0x78, 0xcc, 0x14, 0x78, 0x61, 0xcc, + 0x8c, 0x7f, 0x96, 0xe2, 0xda, 0x31, 0x1c, 0x1b, 0xc3, 0xfe, 0x9d, 0x30, 0x66, 0x2b, 0xae, 0x19, + 0xe3, 0x71, 0x31, 0x24, 0xc6, 0xa4, 0xe2, 0xc0, 0x18, 0x8f, 0x89, 0x61, 0x70, 0xcc, 0x55, 0x5c, + 0x3d, 0xc6, 0xe3, 0x91, 0xed, 0x1b, 0xf3, 0x15, 0xfb, 0xc7, 0x78, 0x2c, 0xb2, 0x07, 0xc6, 0x2a, + 0x8a, 0xeb, 0xc7, 0x78, 0x0c, 0xb2, 0xe4, 0x31, 0x3f, 0xb5, 0x60, 0x8c, 0x47, 0x20, 0x2b, 0x3a, + 0x16, 0x2a, 0x0e, 0x8f, 0x31, 0xf4, 0xb3, 0x56, 0x8c, 0x35, 0x14, 0xcf, 0x1f, 0x5b, 0xcc, 0xf7, + 0x9b, 0xc6, 0x1a, 0xb1, 0x05, 0x4b, 0xa8, 0x05, 0xff, 0xc3, 0x30, 0x26, 0x63, 0xed, 0x4d, 0xf8, + 0xb7, 0x1c, 0x5b, 0x80, 0x90, 0x37, 0xfe, 0x4f, 0x39, 0x31, 0x16, 0xc7, 0x16, 0x30, 0xe4, 0xb3, + 0x61, 0xac, 0x03, 0x5b, 0xc0, 0x90, 0xcf, 0x6e, 0x18, 0x4b, 0x60, 0x0b, 0x18, 0xf2, 0xd9, 0xc7, + 0xc6, 0x10, 0x3b, 0xc6, 0x18, 0xf2, 0xc6, 0x81, 0xb1, 0x7e, 0x6c, 0xc1, 0x26, 0x01, 0xb3, 0xb1, + 0x2d, 0xdc, 0x02, 0x86, 0xbc, 0x41, 0x37, 0xf6, 0x0c, 0xb6, 0x80, 0x21, 0x6f, 0x30, 0x8c, 0x6d, + 0xc5, 0x16, 0x6c, 0xe7, 0x7b, 0xc7, 0xd8, 0x00, 0xb6, 0x80, 0xb5, 0x68, 0xfe, 0xc7, 0x17, 0xc6, + 0x76, 0x63, 0xed, 0x7b, 0xf1, 0x6f, 0x10, 0x5b, 0x80, 0x90, 0x9f, 0x5a, 0x67, 0x1b, 0x18, 0x1b, + 0xc2, 0x16, 0x30, 0xe4, 0x8d, 0xfe, 0x31, 0x94, 0x36, 0xc7, 0x18, 0xf2, 0x46, 0x79, 0xec, 0x18, + 0xb6, 0x80, 0x21, 0x3f, 0x05, 0xc6, 0x4e, 0x61, 0x0b, 0x18, 0xf2, 0x26, 0x18, 0x3b, 0x87, 0x2d, + 0x60, 0xb8, 0x1b, 0x06, 0xc6, 0x2e, 0x73, 0x0b, 0x18, 0xf2, 0x86, 0x3d, 0x63, 0x57, 0xb1, 0x05, + 0x0c, 0x79, 0xc3, 0xbe, 0x71, 0x28, 0x9e, 0x3f, 0x6e, 0xe0, 0xfb, 0x4f, 0xc6, 0x4d, 0xc5, 0xa1, + 0x71, 0x33, 0xb7, 0xe0, 0xf6, 0x71, 0x4b, 0xe0, 0x85, 0x71, 0x2b, 0xfe, 0xd9, 0x8a, 0x6b, 0xc7, + 0x11, 0xf2, 0x86, 0xd1, 0x27, 0x2c, 0xe3, 0x52, 0x71, 0xcd, 0xb8, 0x43, 0xc0, 0x60, 0xdc, 0x55, + 0x1c, 0x18, 0x17, 0x90, 0xf7, 0x8f, 0xfb, 0x8a, 0xab, 0xc7, 0x05, 0xe4, 0x87, 0xc6, 0x2b, 0x8a, + 0xfd, 0xe3, 0x0c, 0x79, 0x63, 0xff, 0xb8, 0xbf, 0xb8, 0x7e, 0x5c, 0xc0, 0x5d, 0x1a, 0x0f, 0x51, + 0x0b, 0xc6, 0x05, 0xe4, 0x6f, 0x1d, 0x6f, 0x28, 0x0e, 0x8f, 0x0b, 0xc8, 0x3b, 0xc6, 0x1b, 0xb1, + 0x05, 0x4b, 0xf8, 0xbe, 0x6a, 0x5c, 0xc6, 0x16, 0x34, 0x71, 0x0b, 0xbe, 0x31, 0xbe, 0x1c, 0x6b, + 0x6f, 0xc1, 0xbf, 0x38, 0xb6, 0x00, 0x21, 0x6f, 0x6c, 0x7c, 0x2a, 0x3e, 0xde, 0x81, 0x2d, 0x10, + 0x90, 0x7f, 0x66, 0x3c, 0x81, 0x2d, 0x10, 0x90, 0xbf, 0x3c, 0x8e, 0xf3, 0x74, 0x5c, 0x40, 0xbe, + 0x6f, 0xbc, 0x1f, 0x5b, 0xc0, 0x90, 0x9f, 0x12, 0x1f, 0xdf, 0x82, 0x2d, 0x60, 0xb8, 0x67, 0xf5, + 0x8e, 0x3f, 0xc3, 0x2d, 0x60, 0xc8, 0x67, 0xad, 0x1d, 0xdf, 0x8a, 0x2d, 0x60, 0xc8, 0x67, 0xf5, + 0x8d, 0x0f, 0x60, 0x0b, 0x76, 0xf2, 0xfd, 0xb3, 0xe3, 0xbb, 0xb1, 0x05, 0xac, 0xe9, 0xf3, 0x3f, + 0xc2, 0xe3, 0x83, 0x58, 0xfb, 0x7e, 0xfc, 0x1b, 0xc2, 0x16, 0x20, 0xe4, 0x4d, 0xbf, 0x9c, 0xf5, + 0xcc, 0x38, 0x72, 0x4d, 0xe3, 0x23, 0x6a, 0xff, 0x8e, 0x61, 0x0b, 0x18, 0xf2, 0xc6, 0xab, 0xe3, + 0xa7, 0xb0, 0x05, 0x0c, 0xf9, 0x29, 0x03, 0xe3, 0xe7, 0xb0, 0x05, 0x0c, 0x79, 0xd3, 0xf0, 0xf8, + 0x65, 0x6c, 0x81, 0x80, 0x7b, 0xc1, 0xf8, 0x55, 0x6e, 0x81, 0x80, 0xfc, 0x97, 0x15, 0x40, 0xd9, + 0x5d, 0x40, 0xbe, 0x48, 0x31, 0x21, 0xdd, 0x30, 0xf3, 0xfd, 0x5d, 0x0a, 0xd2, 0x03, 0xc5, 0xca, + 0x2d, 0xf8, 0x2b, 0xc5, 0x86, 0xfc, 0x67, 0x21, 0xfe, 0x49, 0xc5, 0xb5, 0x0a, 0x42, 0x3e, 0xe7, + 0x2f, 0x7f, 0xe9, 0x57, 0x5c, 0xc8, 0xb7, 0x31, 0xe4, 0xa7, 0x24, 0x14, 0x1f, 0x72, 0x86, 0x65, + 0x62, 0xbc, 0x95, 0x0a, 0x94, 0x1e, 0x18, 0xf2, 0xa6, 0x21, 0xc5, 0x8f, 0xbc, 0x26, 0x43, 0x3e, + 0xc7, 0xa2, 0x84, 0x8a, 0xeb, 0x15, 0x86, 0xbb, 0xa1, 0x42, 0x69, 0xa0, 0x16, 0x28, 0x0c, 0x79, + 0xc3, 0x6c, 0xa5, 0x11, 0x5b, 0xc0, 0x90, 0x37, 0xf8, 0x15, 0x19, 0x5b, 0xd0, 0xc4, 0xf7, 0xb2, + 0xb2, 0x1c, 0x5b, 0xd0, 0xc2, 0x2d, 0x68, 0x55, 0xe2, 0x58, 0x7b, 0x3b, 0xfe, 0x75, 0x60, 0x0b, + 0x10, 0xf2, 0x53, 0x67, 0x1d, 0x4f, 0x28, 0x09, 0x6c, 0x41, 0xaf, 0xda, 0x02, 0xa4, 0x98, 0xac, + 0xdf, 0x87, 0xfd, 0x56, 0xfa, 0xb1, 0x05, 0x02, 0xf2, 0xc3, 0xca, 0x16, 0xd6, 0x7d, 0xa2, 0xd6, + 0x48, 0xca, 0x33, 0xaa, 0x36, 0x1d, 0x62, 0x22, 0xeb, 0x10, 0x82, 0xe1, 0x25, 0x94, 0x52, 0xc3, + 0xac, 0x33, 0x06, 0x86, 0x7f, 0x51, 0x76, 0x63, 0xdd, 0x7b, 0xf9, 0xfe, 0x2d, 0x65, 0x10, 0xeb, + 0xde, 0xcf, 0x75, 0xff, 0x9d, 0x38, 0xbd, 0xc3, 0xbf, 0x61, 0x69, 0x1e, 0x71, 0x37, 0xa4, 0x45, + 0xf5, 0xd9, 0xf6, 0x9a, 0x8b, 0x48, 0xc1, 0xe7, 0x7f, 0x36, 0x80, 0xf7, 0x3b, 0xab, 0x2f, 0x22, + 0x95, 0x0c, 0x7d, 0xb6, 0x1b, 0xef, 0xf7, 0x62, 0xfa, 0x5e, 0x4c, 0x1f, 0xc4, 0xfb, 0xfd, 0xd5, + 0x17, 0x91, 0x72, 0x84, 0x3e, 0x1b, 0xc2, 0xfb, 0x83, 0x35, 0x17, 0x71, 0x0e, 0xcf, 0xff, 0x6c, + 0x18, 0xef, 0x47, 0x30, 0x7d, 0x3f, 0xa6, 0x23, 0xad, 0xfa, 0xec, 0x44, 0xcd, 0x45, 0xc4, 0xeb, + 0xf9, 0x9f, 0xe1, 0x8c, 0xf9, 0xec, 0x4c, 0xf5, 0x45, 0xc4, 0xb0, 0xd0, 0x67, 0x38, 0x6e, 0x9f, + 0x5d, 0xc0, 0xf4, 0x83, 0x98, 0x7e, 0x19, 0xef, 0xaf, 0x54, 0x5f, 0x44, 0xa8, 0x87, 0x3e, 0xbb, + 0x8a, 0xf7, 0xc9, 0x9a, 0x8b, 0xd8, 0xff, 0xf9, 0x49, 0x20, 0x69, 0x35, 0x69, 0x40, 0x0a, 0x69, + 0x12, 0xbb, 0xd3, 0x19, 0xfb, 0xe8, 0x47, 0xc4, 0x7a, 0x8c, 0xab, 0xdb, 0x88, 0xba, 0x22, 0x77, + 0x40, 0x41, 0xa8, 0x75, 0x34, 0xb8, 0x70, 0xf4, 0x37, 0x4b, 0xea, 0x37, 0xe3, 0xd3, 0x2d, 0xa1, + 0xd6, 0xcf, 0x0a, 0xeb, 0x37, 0xf3, 0x6e, 0x8b, 0x8d, 0x4e, 0xa3, 0x8a, 0xab, 0x3f, 0x33, 0x14, + 0xd7, 0x7d, 0x66, 0x92, 0x16, 0xde, 0x4a, 0x6b, 0x7d, 0x21, 0x9d, 0xed, 0xcf, 0x1f, 0xfd, 0xf5, + 0x55, 0x8f, 0x49, 0xe6, 0x3d, 0x65, 0xbb, 0x5f, 0xba, 0xa5, 0x7f, 0x2b, 0x34, 0xb5, 0xe5, 0x22, + 0x37, 0x62, 0x13, 0x67, 0x43, 0x7c, 0x46, 0x94, 0x85, 0x92, 0xac, 0x49, 0x36, 0x44, 0x7a, 0x64, + 0x7d, 0xa4, 0xdb, 0x9b, 0xed, 0x35, 0x92, 0xec, 0x40, 0xde, 0xdd, 0xc2, 0xdd, 0x51, 0x9b, 0xd0, + 0x4f, 0x4c, 0x1a, 0x8a, 0x83, 0x49, 0x13, 0xca, 0x23, 0xd3, 0x84, 0x96, 0xdb, 0x67, 0xdb, 0xb5, + 0x5d, 0x79, 0xac, 0xc1, 0xc1, 0xf9, 0x7b, 0x62, 0xa0, 0xdb, 0x91, 0xda, 0xab, 0xdf, 0x34, 0xa3, + 0x06, 0x4a, 0x67, 0x04, 0xa0, 0x52, 0x9c, 0xe8, 0x4f, 0x8c, 0x30, 0x8b, 0x6b, 0x77, 0x39, 0x72, + 0xe7, 0x01, 0x29, 0x6b, 0xb8, 0xe7, 0x3a, 0xef, 0x4a, 0x62, 0x2e, 0xd6, 0x6b, 0x69, 0x86, 0x39, + 0xf3, 0x47, 0x4f, 0x2d, 0xd5, 0x4e, 0x3c, 0x62, 0x79, 0x6a, 0x6a, 0x30, 0x75, 0x06, 0x92, 0x2b, + 0xec, 0xef, 0x7f, 0xdd, 0xdc, 0xb0, 0x21, 0x10, 0x90, 0xf5, 0xed, 0xba, 0xf4, 0x59, 0xc1, 0x71, + 0x8a, 0x2b, 0x1d, 0xc0, 0x36, 0x15, 0x11, 0x3c, 0xe8, 0x04, 0xa5, 0xe4, 0x26, 0xe3, 0x43, 0xd8, + 0xf2, 0x42, 0x8a, 0x7b, 0xf7, 0xb3, 0xdc, 0x85, 0xa3, 0xc7, 0xfb, 0x8b, 0x43, 0xa3, 0x15, 0x28, + 0x91, 0x1d, 0x95, 0x78, 0xcf, 0xc6, 0x0e, 0x1b, 0x9f, 0x83, 0xa6, 0x8e, 0xdc, 0xdd, 0x5d, 0xcb, + 0xc8, 0xab, 0xad, 0x7e, 0xa0, 0x2b, 0x66, 0xb6, 0x21, 0x74, 0x76, 0x77, 0x21, 0x87, 0xb8, 0x43, + 0x2e, 0xa7, 0x7d, 0x96, 0xcf, 0xb6, 0xba, 0x02, 0xef, 0xec, 0x7b, 0xe7, 0x20, 0xf2, 0xbe, 0x25, + 0x87, 0x0f, 0xa2, 0xbc, 0x3e, 0x0d, 0xcb, 0xa8, 0xb2, 0xd7, 0xd6, 0x3f, 0x21, 0xb5, 0x8e, 0x56, + 0x31, 0x4f, 0x5c, 0x82, 0xf5, 0x0e, 0x0c, 0xd1, 0x89, 0xde, 0xb3, 0x91, 0x6e, 0xb9, 0x83, 0xbf, + 0xb2, 0xb9, 0x6a, 0xde, 0x79, 0x95, 0xbf, 0x2a, 0xc7, 0xaf, 0x66, 0x8d, 0xfa, 0x69, 0x24, 0x91, + 0xbf, 0x9a, 0x09, 0x5b, 0xe9, 0x7b, 0x1c, 0x45, 0xed, 0xeb, 0x72, 0xe6, 0x70, 0xe8, 0xfb, 0x26, + 0x1c, 0x8f, 0x4a, 0x6e, 0x53, 0x7b, 0xc7, 0x97, 0xb0, 0x4d, 0x79, 0xef, 0x3d, 0x5c, 0xf3, 0x07, + 0x1b, 0xdc, 0xe6, 0x1f, 0x0d, 0xde, 0x86, 0x65, 0x8e, 0x86, 0xe4, 0x42, 0x7e, 0xdb, 0xd1, 0x61, + 0xc1, 0xb7, 0x16, 0xed, 0xed, 0x67, 0x85, 0xf4, 0xf6, 0x33, 0x89, 0x22, 0x0f, 0x8c, 0x56, 0xd4, + 0xef, 0x79, 0xe7, 0x6a, 0xea, 0x8c, 0xb6, 0x20, 0x0d, 0x9d, 0x77, 0xba, 0xc9, 0x17, 0xb3, 0x6c, + 0xc9, 0x48, 0x89, 0xb3, 0x9f, 0x4c, 0x94, 0xb3, 0x46, 0x2d, 0xea, 0x0e, 0xcb, 0x85, 0x4c, 0xcf, + 0xeb, 0xda, 0x19, 0x3a, 0x9d, 0xe0, 0xe1, 0x0c, 0x5a, 0xce, 0xbb, 0x3d, 0x13, 0x4e, 0x51, 0x34, + 0x7f, 0xec, 0x93, 0xfd, 0x4f, 0x40, 0xaf, 0xcb, 0x4f, 0x7a, 0x0d, 0x69, 0xef, 0x81, 0x63, 0x47, + 0xd4, 0x33, 0xd5, 0xa6, 0x46, 0x94, 0x0d, 0xec, 0x41, 0x8a, 0xc6, 0xc2, 0xa7, 0x1a, 0x24, 0x17, + 0xe4, 0xa9, 0x11, 0x0d, 0xf6, 0x7c, 0xd2, 0xae, 0x8e, 0x7b, 0x91, 0xd8, 0xb7, 0x49, 0xf9, 0x97, + 0x78, 0xba, 0x7e, 0xcf, 0xb1, 0x91, 0x99, 0x7e, 0x60, 0x6f, 0x59, 0x51, 0x07, 0xd9, 0x25, 0xfc, + 0x8f, 0x27, 0xe2, 0x3a, 0xe1, 0x1b, 0x0f, 0x47, 0x1b, 0x58, 0xc7, 0x80, 0xda, 0x51, 0x24, 0xf6, + 0x27, 0x55, 0xbf, 0x0c, 0x85, 0xca, 0xb0, 0x90, 0x4e, 0xec, 0x69, 0xcd, 0xbb, 0xfa, 0x3f, 0xaf, + 0x49, 0x87, 0x90, 0xb8, 0x22, 0x91, 0x16, 0xc1, 0x2c, 0x30, 0x71, 0xaf, 0xaf, 0x14, 0xa3, 0xcc, + 0xa4, 0x5c, 0x9d, 0xdd, 0x0a, 0xf9, 0x4a, 0x92, 0xf5, 0x7e, 0xc6, 0x55, 0x09, 0xf7, 0x4a, 0x7a, + 0x87, 0x96, 0x6a, 0x42, 0x79, 0xe5, 0x94, 0xea, 0xcd, 0xb3, 0x01, 0xcb, 0x5d, 0xec, 0xf2, 0x82, + 0xec, 0x41, 0xfe, 0xdd, 0xbd, 0x0a, 0x5a, 0xe6, 0x78, 0xa1, 0xd9, 0x15, 0x7e, 0x07, 0x67, 0xbd, + 0xd3, 0x70, 0xb4, 0x97, 0x76, 0x64, 0xbc, 0xe4, 0xc9, 0x49, 0xdd, 0x93, 0x69, 0xd8, 0xe0, 0xf6, + 0xc2, 0x92, 0xe3, 0xeb, 0xc8, 0x77, 0xb2, 0x03, 0xf6, 0x26, 0x9a, 0x8c, 0x0e, 0x23, 0xe3, 0x77, + 0x56, 0x7a, 0x6f, 0xc6, 0x03, 0x6d, 0xba, 0x89, 0x31, 0xa6, 0xa3, 0xf6, 0xb8, 0x0e, 0xe5, 0x40, + 0x80, 0x2b, 0x52, 0xd6, 0xe4, 0x77, 0x38, 0x0e, 0x27, 0x3d, 0x59, 0xed, 0x3a, 0xec, 0xdb, 0x12, + 0x6f, 0x2d, 0x78, 0x3c, 0x59, 0xce, 0xa9, 0x1c, 0xf9, 0x33, 0x77, 0xb8, 0x7b, 0x0f, 0xca, 0x39, + 0x8e, 0xec, 0x4d, 0x8f, 0x87, 0xe7, 0xc5, 0xfc, 0x4c, 0x29, 0x5c, 0xd0, 0xdb, 0xd0, 0x45, 0xf1, + 0x65, 0xbc, 0x35, 0x50, 0x86, 0xb9, 0x2b, 0x7c, 0xab, 0xe0, 0xde, 0xbb, 0x42, 0x50, 0x75, 0x57, + 0x3d, 0xcc, 0xb9, 0x2b, 0x08, 0xfe, 0xbb, 0x02, 0x10, 0xf0, 0x2e, 0x84, 0xa0, 0xd4, 0x8c, 0xfd, + 0x5e, 0x45, 0x51, 0x40, 0x34, 0x2d, 0x02, 0x94, 0x53, 0xdb, 0x51, 0xbe, 0x36, 0x20, 0x4c, 0xb3, + 0x10, 0xa6, 0xbd, 0xf5, 0xfd, 0x92, 0x07, 0xdc, 0x5a, 0xa9, 0xf7, 0x50, 0xa9, 0x41, 0x94, 0x5b, + 0x43, 0x58, 0x72, 0x1d, 0x96, 0xdc, 0x70, 0xd7, 0x2a, 0x58, 0x09, 0x8b, 0xb1, 0xdc, 0x7b, 0xb0, + 0xdc, 0x46, 0x2c, 0xf7, 0x5e, 0x2c, 0x77, 0x89, 0x5a, 0x6e, 0x50, 0x2b, 0xf7, 0x37, 0xec, 0xbf, + 0x72, 0xcf, 0xe3, 0x4b, 0x41, 0x69, 0x40, 0x08, 0x7a, 0xec, 0x35, 0x92, 0x71, 0xe2, 0x1e, 0x41, + 0x40, 0x8b, 0xcf, 0x22, 0xa5, 0x62, 0x2f, 0x55, 0xa4, 0xb4, 0xcd, 0x8a, 0x85, 0x47, 0xbb, 0x45, + 0x09, 0x07, 0xd4, 0x76, 0x0f, 0x6f, 0x03, 0xc3, 0xfe, 0x84, 0x38, 0x1f, 0x43, 0x3e, 0xfc, 0x79, + 0xb8, 0x07, 0x31, 0x2e, 0x6f, 0xfe, 0xe8, 0xd8, 0x68, 0xbd, 0x7a, 0x26, 0x17, 0x37, 0x6b, 0xa9, + 0x4c, 0x69, 0xa4, 0x78, 0x3e, 0xc5, 0xcf, 0x88, 0x1a, 0x25, 0xfd, 0xd9, 0x3e, 0xf2, 0x60, 0xad, + 0xc6, 0x78, 0xe7, 0x51, 0x60, 0xdd, 0xf9, 0x33, 0xea, 0x8c, 0xb9, 0xc2, 0xf6, 0x5d, 0x24, 0x4d, + 0x67, 0xcc, 0x98, 0x36, 0x05, 0xd7, 0xb2, 0xa4, 0x1d, 0xdb, 0xf1, 0x16, 0xce, 0x82, 0x09, 0x27, + 0xf3, 0x85, 0xb2, 0xaa, 0xf3, 0xc6, 0x27, 0x80, 0x74, 0x8e, 0x7f, 0x8b, 0x1c, 0x6c, 0x33, 0x50, + 0x7e, 0x39, 0x68, 0x7f, 0x00, 0xec, 0x6d, 0x53, 0x55, 0xbd, 0xb3, 0x2b, 0xa4, 0x31, 0x40, 0xfa, + 0x6c, 0x8c, 0x65, 0x53, 0x53, 0x3a, 0x1b, 0x89, 0x58, 0x61, 0x5a, 0x1b, 0xa0, 0x6d, 0xda, 0x11, + 0x2a, 0x85, 0x35, 0x18, 0xc6, 0x3c, 0x9a, 0x2e, 0x80, 0x63, 0x96, 0x72, 0xc1, 0x41, 0xfa, 0x1a, + 0x7f, 0x9d, 0x8e, 0x97, 0x84, 0x23, 0x13, 0xb2, 0x53, 0xbc, 0xa4, 0x55, 0xd0, 0x28, 0x4d, 0x1d, + 0x7e, 0x78, 0x98, 0x3c, 0x38, 0x55, 0xe1, 0x7a, 0xc1, 0x3b, 0x78, 0xb8, 0x62, 0x80, 0xae, 0xc0, + 0xbd, 0xc8, 0x51, 0xdb, 0x01, 0xde, 0x05, 0xe0, 0x77, 0xd6, 0x7a, 0x68, 0x67, 0xf9, 0x92, 0xe3, + 0x2b, 0x24, 0x39, 0x93, 0x39, 0xae, 0x99, 0x7f, 0xa3, 0x46, 0x47, 0x37, 0xa6, 0x1f, 0x61, 0xec, + 0x3a, 0xc8, 0x91, 0xb7, 0x51, 0xa6, 0x77, 0xe6, 0xe1, 0x55, 0x4f, 0xb1, 0x8b, 0xe2, 0x50, 0x0b, + 0x83, 0x3d, 0x1e, 0xbf, 0x5b, 0x1f, 0x98, 0x1b, 0x9a, 0x7b, 0x6a, 0x21, 0xcb, 0xdd, 0xf8, 0x61, + 0xc0, 0x1f, 0xf2, 0xf7, 0xf7, 0x61, 0x6f, 0xb3, 0xbd, 0x21, 0xa8, 0xf0, 0xce, 0x87, 0x32, 0x5a, + 0x41, 0x4a, 0x40, 0xc8, 0xe5, 0x0a, 0x9c, 0xea, 0xeb, 0x7f, 0x11, 0xd3, 0x29, 0x72, 0x0c, 0xed, + 0x62, 0x01, 0x95, 0xb3, 0x3f, 0xb1, 0xe9, 0x71, 0xc4, 0xab, 0x6c, 0xc4, 0x9f, 0x2a, 0x4a, 0xd5, + 0xf7, 0x50, 0x0b, 0x8e, 0x3e, 0xee, 0x80, 0x77, 0x1f, 0x19, 0x49, 0x18, 0xbb, 0x29, 0x3a, 0x67, + 0x28, 0x10, 0xda, 0x77, 0xb4, 0x5b, 0x9a, 0xf2, 0x6e, 0x9f, 0x03, 0x46, 0x1e, 0x4a, 0xa7, 0x51, + 0xa4, 0xa2, 0x91, 0xbe, 0x50, 0x20, 0x10, 0x90, 0x6a, 0x0e, 0xef, 0x43, 0xe9, 0xbd, 0xcc, 0xad, + 0x7b, 0xf7, 0xb1, 0xe3, 0x5d, 0x24, 0xc5, 0x62, 0x8e, 0xb9, 0xa1, 0x5f, 0x1e, 0xc7, 0xfa, 0xde, + 0x7d, 0xec, 0xf0, 0x2f, 0x1d, 0x7d, 0x08, 0x15, 0x4f, 0xa4, 0xb7, 0xf1, 0x91, 0x97, 0xf6, 0x23, + 0xc5, 0xb4, 0x38, 0x8d, 0x9e, 0x69, 0x08, 0x23, 0xff, 0x89, 0x17, 0xa1, 0x8a, 0x22, 0xf3, 0x1c, + 0x7e, 0x32, 0xd2, 0xb3, 0x0b, 0x65, 0xfd, 0x28, 0x8c, 0x9f, 0x4e, 0xc7, 0x03, 0x42, 0x88, 0x56, + 0x38, 0xbd, 0x1c, 0xd5, 0x90, 0x7d, 0x84, 0x53, 0x2c, 0x26, 0x5a, 0xf7, 0x3c, 0x70, 0x02, 0xe9, + 0x9b, 0x1c, 0x60, 0x6d, 0x9c, 0x86, 0xca, 0x5b, 0x1c, 0x35, 0x1d, 0x20, 0x3b, 0xe7, 0xb8, 0xc0, + 0xfa, 0xaf, 0xf3, 0xca, 0xe7, 0x95, 0x4c, 0x3b, 0x94, 0x08, 0xcf, 0x8b, 0x1a, 0x1c, 0x5b, 0xc1, + 0x7c, 0xba, 0x2f, 0x9a, 0x53, 0x39, 0x13, 0xf4, 0x8b, 0x1f, 0xf6, 0x55, 0x25, 0x80, 0xea, 0xdf, + 0xd9, 0x1b, 0x3d, 0x7a, 0x74, 0x1d, 0x7e, 0x69, 0x3a, 0xdc, 0x1f, 0xe9, 0xfa, 0x97, 0x57, 0xa2, + 0x7b, 0xea, 0x7e, 0x5b, 0x98, 0xfc, 0xb3, 0x75, 0xb1, 0x87, 0x67, 0x47, 0x43, 0x65, 0x9e, 0x9d, + 0xea, 0x72, 0x4c, 0xaa, 0x4b, 0x5f, 0xfb, 0x04, 0xd7, 0x84, 0xe3, 0xb3, 0xf8, 0x11, 0xb5, 0xa6, + 0x87, 0xb1, 0xa6, 0x63, 0x13, 0x6a, 0xda, 0xfb, 0xb9, 0x6a, 0x0a, 0x4d, 0xa8, 0xc9, 0x33, 0xa9, + 0x26, 0xa3, 0x1d, 0x7b, 0x25, 0x1b, 0xf0, 0xd7, 0x72, 0xdd, 0x1a, 0x87, 0x27, 0xd4, 0xb8, 0x53, + 0xd4, 0x88, 0xd8, 0x79, 0x99, 0xb0, 0x13, 0xe9, 0xa4, 0x1f, 0xc7, 0x21, 0x84, 0x34, 0xb3, 0x21, + 0x85, 0x9d, 0x15, 0x1a, 0x76, 0x12, 0xc6, 0xb9, 0x23, 0xce, 0xe0, 0x1a, 0xb0, 0x1b, 0x5c, 0x84, + 0x97, 0x3f, 0x2f, 0xfc, 0x0a, 0x62, 0x9c, 0xf4, 0x0b, 0xa3, 0x9e, 0x7c, 0x09, 0x2b, 0x88, 0x87, + 0xc5, 0xa0, 0xf3, 0xf8, 0x1d, 0xd3, 0xf1, 0x4a, 0x78, 0x58, 0x26, 0xf0, 0x47, 0x22, 0x2f, 0xf5, + 0x8f, 0x23, 0x56, 0x19, 0x11, 0x87, 0x52, 0x58, 0xe7, 0x24, 0xdf, 0xe2, 0x66, 0xc4, 0xb7, 0x32, + 0x7a, 0xa3, 0xe2, 0xa1, 0x1b, 0x2c, 0xfd, 0xdd, 0xda, 0xb3, 0x27, 0xeb, 0xdd, 0xc7, 0x8f, 0xae, + 0xa3, 0xf8, 0xb7, 0x88, 0x2b, 0x35, 0xa1, 0x57, 0x8f, 0x3e, 0x1e, 0xaa, 0x09, 0xd4, 0x78, 0xa6, + 0xbc, 0xfb, 0xf8, 0x89, 0x87, 0x8c, 0xeb, 0x38, 0xb5, 0x36, 0xf4, 0x1a, 0x62, 0x48, 0x19, 0xa6, + 0xf4, 0x38, 0xe1, 0xdd, 0x47, 0x8f, 0x26, 0xd2, 0xb9, 0x47, 0x7a, 0x4e, 0x74, 0x3b, 0x5f, 0x8b, + 0xac, 0x25, 0xbc, 0x42, 0xcc, 0xf3, 0xbd, 0xf4, 0x4b, 0xc4, 0xab, 0x06, 0xa7, 0xc1, 0xa5, 0x3b, + 0x86, 0x38, 0x47, 0x3b, 0x6b, 0x87, 0x37, 0x32, 0x4e, 0xd5, 0x91, 0x16, 0x95, 0x8a, 0x53, 0x16, + 0x86, 0xbe, 0x44, 0xba, 0x81, 0xf8, 0x8d, 0xcb, 0xed, 0x65, 0x0d, 0x12, 0x9f, 0xa4, 0x1b, 0xee, + 0x72, 0xc1, 0xb1, 0x44, 0x1c, 0xb1, 0xc8, 0xd1, 0x60, 0x0f, 0xac, 0x06, 0xd9, 0x52, 0x58, 0x50, + 0xe4, 0x02, 0xe9, 0xff, 0x6f, 0x6c, 0xc1, 0xb1, 0x8d, 0xf4, 0x34, 0x3e, 0xbc, 0xa3, 0x27, 0x7a, + 0x61, 0xa4, 0x97, 0xb4, 0xb6, 0xde, 0xee, 0x8f, 0x24, 0xf6, 0x24, 0xa2, 0x47, 0xeb, 0x7e, 0x6b, + 0x48, 0x6a, 0xfe, 0xfd, 0x11, 0xb2, 0x34, 0xa6, 0x7e, 0x84, 0x6c, 0x48, 0x70, 0x5f, 0x08, 0x1f, + 0x5f, 0x3b, 0xcc, 0xd3, 0x20, 0xfb, 0x8c, 0x3b, 0xe2, 0x42, 0xc8, 0xe2, 0x5d, 0xef, 0x44, 0xa8, + 0x96, 0x50, 0xe4, 0xe1, 0x66, 0xb0, 0xe1, 0xca, 0xd1, 0x0c, 0x85, 0x5e, 0x23, 0x43, 0xf3, 0x21, + 0xa4, 0x34, 0x4f, 0x12, 0x15, 0x6a, 0x31, 0x1a, 0x59, 0xe5, 0xe6, 0x54, 0xe2, 0x64, 0x22, 0x34, + 0x2f, 0x30, 0x8f, 0xdf, 0x13, 0x54, 0x7d, 0xd7, 0xe6, 0x18, 0x7e, 0x11, 0x3c, 0xef, 0xf6, 0x9d, + 0x4c, 0x70, 0x1e, 0x0b, 0x8d, 0xc8, 0xe4, 0x1c, 0xbf, 0x19, 0x3c, 0xf9, 0xb8, 0xeb, 0x57, 0x91, + 0xb5, 0xbb, 0xd6, 0x52, 0xe4, 0x40, 0x84, 0x93, 0x4f, 0x85, 0x53, 0xf7, 0xce, 0x17, 0x21, 0x88, + 0x69, 0x4b, 0x34, 0xcf, 0xfc, 0xdf, 0x16, 0x51, 0x0b, 0x70, 0x46, 0x97, 0x60, 0xcf, 0x5c, 0xe4, + 0x97, 0x1f, 0x57, 0x0d, 0x8f, 0xe1, 0x44, 0xef, 0x89, 0x75, 0x3f, 0x7c, 0x83, 0xf0, 0x65, 0x0e, + 0x45, 0x27, 0xd9, 0x5c, 0xe6, 0x06, 0x47, 0xb9, 0x1b, 0x39, 0x97, 0x66, 0x30, 0x3f, 0x71, 0x1e, + 0x2c, 0x87, 0x7f, 0x45, 0x91, 0x94, 0x43, 0xf1, 0xdd, 0x40, 0x23, 0x2c, 0x45, 0x0e, 0x0f, 0x56, + 0xc6, 0x4d, 0xe4, 0x9d, 0xd2, 0xc0, 0xa7, 0x36, 0x86, 0x52, 0x8b, 0xac, 0x6f, 0x53, 0xec, 0x73, + 0xe3, 0xe0, 0x9d, 0x8b, 0x3d, 0x0e, 0xca, 0xe5, 0x15, 0xba, 0xa1, 0x9a, 0x98, 0xa5, 0xe2, 0x26, + 0xc4, 0x64, 0xf7, 0xbf, 0x06, 0x87, 0x02, 0x51, 0x83, 0x7d, 0x1b, 0x14, 0x0a, 0x8f, 0x9f, 0xa7, + 0x17, 0x44, 0x73, 0x4a, 0x5d, 0x88, 0xe1, 0x7d, 0xe5, 0x88, 0xe1, 0xa7, 0xc3, 0x51, 0x43, 0x19, + 0x61, 0x7a, 0xa2, 0xf1, 0xe1, 0x7f, 0x1b, 0x8c, 0xbe, 0x46, 0xa3, 0xe7, 0xca, 0x3d, 0xbe, 0x8e, + 0xfa, 0x10, 0x33, 0xe1, 0xea, 0x63, 0x43, 0x1e, 0xd7, 0x10, 0x79, 0xf4, 0x9f, 0x3f, 0x04, 0x3f, + 0xf6, 0x25, 0x4a, 0x7d, 0x69, 0xfc, 0xfc, 0x7d, 0xd9, 0xf4, 0xdf, 0xee, 0x4b, 0x19, 0xf7, 0x25, + 0x37, 0xa3, 0x2f, 0x88, 0x3b, 0x9f, 0xa3, 0x27, 0x43, 0x7f, 0xa6, 0x27, 0xcb, 0xff, 0x8b, 0x3d, + 0x79, 0xfa, 0xbf, 0xdd, 0x93, 0x2a, 0xee, 0x49, 0x7e, 0x46, 0x4f, 0x8c, 0x34, 0x2a, 0x32, 0x8d, + 0x8d, 0xf4, 0x39, 0x7a, 0x34, 0xf8, 0x67, 0x7a, 0x24, 0x6b, 0x3d, 0xd2, 0x28, 0x93, 0x47, 0xcc, + 0x9d, 0x06, 0xc9, 0x0b, 0x21, 0x3a, 0x89, 0x21, 0xba, 0x44, 0xa7, 0x59, 0x70, 0x15, 0xfb, 0xe1, + 0xa8, 0xc8, 0xec, 0xcb, 0x87, 0xc8, 0xbd, 0x70, 0x6f, 0x86, 0x98, 0xa7, 0x9b, 0x43, 0x11, 0x5c, + 0xfd, 0x87, 0x07, 0x0f, 0x1f, 0xb9, 0xab, 0x01, 0xca, 0x9c, 0xd8, 0x27, 0xd6, 0xfb, 0x33, 0x54, + 0x2d, 0x92, 0x0d, 0x55, 0x9d, 0x8a, 0xe2, 0xae, 0x7d, 0x10, 0xec, 0x46, 0x2c, 0xa9, 0xdf, 0x97, + 0x3b, 0x18, 0x8c, 0x2d, 0xc7, 0x89, 0x53, 0x36, 0x58, 0x43, 0x5e, 0xaf, 0x43, 0xfb, 0x82, 0xdd, + 0x77, 0x91, 0xef, 0xd8, 0xf2, 0x35, 0xba, 0x4e, 0x9d, 0x5c, 0x66, 0x27, 0xbd, 0x83, 0xec, 0xd0, + 0x77, 0xb7, 0x00, 0xd2, 0xb1, 0x32, 0x5a, 0x41, 0x53, 0xd6, 0x1b, 0x48, 0x23, 0x7c, 0x3e, 0x13, + 0x0c, 0xd6, 0x20, 0xd5, 0xf0, 0x20, 0xe7, 0x6c, 0x94, 0x8c, 0x1f, 0x6c, 0xed, 0x4d, 0x44, 0xd6, + 0xee, 0x59, 0x05, 0xe5, 0xcb, 0x5e, 0xa3, 0x93, 0x01, 0xb6, 0x86, 0x30, 0x8d, 0x74, 0x8f, 0x74, + 0x3b, 0xee, 0x40, 0xe6, 0xa4, 0x7b, 0x97, 0x80, 0x52, 0x5d, 0x34, 0xa7, 0x6a, 0x05, 0x42, 0xe9, + 0xd1, 0x0a, 0x82, 0xd2, 0x82, 0xa8, 0x81, 0xa0, 0x15, 0x79, 0xa8, 0xf1, 0xb1, 0x97, 0x5f, 0x84, + 0x10, 0x42, 0xa2, 0xc5, 0xa3, 0x3b, 0xa1, 0xd2, 0xab, 0x0c, 0x38, 0xad, 0xff, 0x97, 0x0f, 0x99, + 0x6e, 0x19, 0xd2, 0x74, 0x8b, 0xe9, 0x0c, 0xc5, 0x0f, 0xa1, 0x48, 0x19, 0x55, 0x25, 0x02, 0x5e, + 0x41, 0x37, 0x79, 0xb5, 0xd6, 0x9f, 0xe8, 0x3e, 0xb1, 0xae, 0x83, 0x68, 0xcb, 0xe3, 0xce, 0x08, + 0x79, 0xef, 0x8d, 0x1a, 0x5d, 0x35, 0x48, 0x6b, 0xe2, 0x52, 0x0d, 0x52, 0x34, 0x29, 0xef, 0xcb, + 0x3b, 0x10, 0x5e, 0x31, 0xab, 0x38, 0x0f, 0xb3, 0x57, 0xbf, 0xf5, 0x0a, 0xe9, 0xe2, 0xbc, 0xf3, + 0xba, 0xb4, 0x73, 0x0b, 0x8d, 0x57, 0xdf, 0xce, 0x44, 0xf4, 0x84, 0x1c, 0xb2, 0x7c, 0x79, 0x80, + 0x72, 0x55, 0xd0, 0x29, 0x04, 0x8f, 0xb0, 0xd3, 0x3e, 0x0b, 0x56, 0x46, 0x88, 0xaf, 0x74, 0xa9, + 0xd1, 0x04, 0xfc, 0x48, 0x69, 0x97, 0x33, 0xff, 0xe8, 0x4a, 0xf3, 0xe3, 0xe2, 0x9d, 0x0b, 0x61, + 0xd1, 0xb8, 0x7e, 0xe7, 0xda, 0xe8, 0xee, 0xa3, 0x34, 0xe6, 0x16, 0xa4, 0x29, 0xbd, 0x2f, 0xf7, + 0x62, 0x0f, 0xe2, 0x75, 0xbf, 0xad, 0x62, 0x8a, 0xa2, 0x59, 0x2a, 0xb8, 0xb4, 0x93, 0xe5, 0x16, + 0xc1, 0xc5, 0xd1, 0xfe, 0xaf, 0x1a, 0x0b, 0xc9, 0x8c, 0x69, 0x24, 0xe1, 0xe0, 0x90, 0x70, 0xe4, + 0x4d, 0xd0, 0x93, 0xa5, 0xb7, 0x85, 0xa5, 0xf5, 0x61, 0x21, 0xad, 0xd3, 0x57, 0x28, 0xf9, 0xb5, + 0x28, 0xc3, 0x71, 0x0b, 0x72, 0x6e, 0x23, 0xce, 0x9a, 0xb7, 0x2f, 0x20, 0xef, 0xa7, 0xdc, 0x5e, + 0x0d, 0x25, 0xb7, 0xfb, 0xc1, 0x5c, 0xdc, 0x4c, 0x1a, 0xc3, 0xec, 0x35, 0x0e, 0x60, 0x8b, 0xbd, + 0x65, 0x92, 0x4e, 0xf0, 0x3a, 0xe4, 0x0f, 0xf3, 0xf0, 0xae, 0x33, 0x43, 0x23, 0xd8, 0x09, 0x25, + 0x70, 0x0f, 0xb4, 0xe1, 0xff, 0x39, 0xf8, 0x57, 0x8f, 0x4b, 0x5a, 0x1b, 0x72, 0xce, 0x51, 0x4e, + 0x69, 0x83, 0xfb, 0xf8, 0xb7, 0xfc, 0x76, 0x71, 0x6a, 0x12, 0xe4, 0xab, 0x49, 0xae, 0xe2, 0xab, + 0x59, 0x2e, 0xe3, 0x6b, 0x81, 0xec, 0xe1, 0xab, 0x5d, 0x76, 0xf0, 0xb5, 0x48, 0x2e, 0xfc, 0xfa, + 0x72, 0x30, 0x82, 0x45, 0xb6, 0xf2, 0x35, 0x4f, 0x36, 0x73, 0x7a, 0x89, 0x6c, 0x70, 0x6e, 0x05, + 0xf2, 0x70, 0x7f, 0xd9, 0x33, 0x97, 0xac, 0x87, 0x24, 0x3f, 0xcb, 0x8f, 0xf7, 0x22, 0x17, 0x6f, + 0x0f, 0xaf, 0x80, 0xbc, 0x98, 0x88, 0x13, 0x6b, 0x11, 0x27, 0xdc, 0x70, 0x0e, 0xd3, 0x2c, 0x14, + 0xb9, 0x12, 0x39, 0xa4, 0x12, 0x8e, 0xf6, 0x01, 0x30, 0x42, 0x7d, 0x9a, 0xa8, 0x81, 0xac, 0x6a, + 0xb8, 0x9c, 0xab, 0x21, 0x0d, 0xe4, 0xf9, 0xca, 0x05, 0x55, 0x66, 0x3a, 0x95, 0x1e, 0x23, 0x3e, + 0x61, 0x78, 0x2a, 0xfc, 0x3c, 0x62, 0x86, 0x43, 0xe5, 0x6a, 0x5b, 0x58, 0x4e, 0x6c, 0x17, 0xa7, + 0x51, 0xa4, 0x6b, 0xfb, 0xd1, 0x62, 0x8e, 0x52, 0xc7, 0x7a, 0x20, 0x98, 0xd3, 0x94, 0x99, 0x73, + 0xa2, 0x56, 0xee, 0x47, 0x6e, 0xce, 0x69, 0xe2, 0x9c, 0x4f, 0x46, 0xe3, 0x4e, 0x94, 0x51, 0xe5, + 0xe6, 0xb8, 0x7d, 0x78, 0x3b, 0x4a, 0x91, 0xac, 0x43, 0xfc, 0xf1, 0x31, 0x7b, 0x31, 0x14, 0x34, + 0x6c, 0x88, 0x19, 0x07, 0xba, 0x96, 0x4a, 0x72, 0x04, 0x47, 0xa6, 0x40, 0xae, 0x13, 0x36, 0xf0, + 0x9d, 0xf5, 0x73, 0x2f, 0x2a, 0xc3, 0xc2, 0x5f, 0x29, 0x79, 0x29, 0x15, 0x72, 0x66, 0xe7, 0xb2, + 0x49, 0x72, 0x66, 0x16, 0x63, 0x83, 0x2a, 0x67, 0x76, 0x80, 0x64, 0x48, 0x5b, 0x79, 0x60, 0x9d, + 0x1b, 0xb1, 0x6d, 0x2b, 0x50, 0xfa, 0xa1, 0xb6, 0xe5, 0x62, 0xdb, 0x9a, 0xb0, 0x6d, 0xc5, 0x88, + 0x3b, 0x7b, 0x7e, 0xff, 0xb8, 0xda, 0xb3, 0xde, 0x48, 0x42, 0xaa, 0xa9, 0xf9, 0x00, 0xca, 0xb9, + 0xd4, 0x6e, 0xac, 0xa9, 0x94, 0xde, 0x08, 0xad, 0x13, 0x7e, 0x33, 0x27, 0xf5, 0xa6, 0x52, 0xfb, + 0x66, 0xb1, 0xf8, 0xa6, 0x36, 0xf5, 0x26, 0xc0, 0x7d, 0xc4, 0x51, 0xc0, 0x51, 0x0a, 0xc8, 0xb8, + 0x66, 0x6a, 0x91, 0x2e, 0x5c, 0x19, 0x16, 0x06, 0x9e, 0xe5, 0x28, 0xbd, 0xd7, 0x91, 0xdf, 0x49, + 0x1c, 0x47, 0xa1, 0x9d, 0x40, 0xd2, 0xd3, 0x7e, 0xfc, 0xce, 0x8a, 0x52, 0xf7, 0x74, 0x55, 0xba, + 0xde, 0x44, 0x3e, 0xad, 0xff, 0x61, 0x58, 0xb5, 0x36, 0xa8, 0xcb, 0xb4, 0x36, 0x58, 0x62, 0xa8, + 0x3f, 0xac, 0x45, 0x0d, 0xb7, 0xab, 0xde, 0xb3, 0xf1, 0x4d, 0x9e, 0x53, 0x48, 0xf3, 0xe4, 0xd5, + 0x50, 0x6e, 0xb7, 0xee, 0x24, 0x0c, 0x3e, 0x40, 0x7e, 0x0d, 0xad, 0x55, 0x30, 0x9d, 0x9f, 0xf6, + 0x4e, 0xb0, 0x37, 0x28, 0x43, 0xec, 0x1d, 0xc0, 0xff, 0x3f, 0x86, 0xd5, 0xd0, 0x82, 0x6c, 0xd2, + 0x00, 0x34, 0xc1, 0x23, 0x9c, 0x32, 0x00, 0x8d, 0xb0, 0x15, 0xff, 0x6f, 0x02, 0x3f, 0x5b, 0x0c, + 0x90, 0x7f, 0x43, 0x5c, 0xf1, 0xd4, 0x7b, 0x13, 0x45, 0x1b, 0x62, 0xbb, 0x82, 0xbb, 0xc9, 0x0f, + 0xa2, 0x94, 0x90, 0x3b, 0xe8, 0xa9, 0xf4, 0x01, 0xd2, 0x97, 0x50, 0xef, 0xf2, 0xa4, 0x87, 0xe5, + 0xa5, 0x9c, 0xff, 0x09, 0xf9, 0x5e, 0xf5, 0xbb, 0x22, 0xb9, 0x41, 0xbd, 0x73, 0xca, 0xb5, 0xea, + 0x9d, 0x5d, 0xae, 0x52, 0xef, 0x4a, 0xe4, 0x52, 0xf5, 0xce, 0x2c, 0xac, 0x16, 0xf0, 0xae, 0x40, + 0x2e, 0x52, 0xed, 0x1d, 0xf2, 0x91, 0xbe, 0x0a, 0x3f, 0x89, 0x61, 0x3e, 0x59, 0x9d, 0xe8, 0x27, + 0x91, 0xf7, 0x48, 0x7c, 0x95, 0xce, 0x59, 0x2c, 0x67, 0x5a, 0xa4, 0x1a, 0xa4, 0x14, 0xf9, 0x52, + 0x80, 0x20, 0xcd, 0x76, 0x07, 0x35, 0xef, 0x9c, 0x83, 0xbc, 0xf0, 0x76, 0xc4, 0x9e, 0x4a, 0xc4, + 0xa6, 0x0b, 0x82, 0x4a, 0x68, 0x67, 0x6c, 0x52, 0x80, 0x29, 0xc4, 0x05, 0x9c, 0x35, 0x24, 0x6f, + 0x92, 0x95, 0xf3, 0x65, 0x0d, 0xf7, 0x08, 0xeb, 0x66, 0x22, 0xd6, 0xb1, 0xa6, 0x71, 0x8b, 0x3a, + 0x5a, 0x73, 0x24, 0x2b, 0xe2, 0x2b, 0xe9, 0x43, 0x98, 0x48, 0x6f, 0xd8, 0x59, 0x43, 0x3a, 0x70, + 0x48, 0x49, 0xfa, 0x95, 0x0b, 0xc5, 0x01, 0xd6, 0x24, 0xbb, 0x42, 0x5a, 0x1f, 0xa4, 0xe9, 0xa1, + 0xce, 0xad, 0x0b, 0x19, 0x1a, 0x63, 0x7a, 0xde, 0xdd, 0x31, 0x0b, 0xdf, 0x94, 0x24, 0xab, 0x92, + 0x0f, 0x51, 0x8f, 0xa0, 0x72, 0x66, 0x6a, 0xbd, 0x6b, 0x05, 0xf2, 0xf3, 0x1e, 0x30, 0xac, 0x46, + 0x54, 0x81, 0xe9, 0xf1, 0xac, 0x81, 0x9e, 0xa8, 0xa9, 0x43, 0xd9, 0xbd, 0x1d, 0x29, 0xdc, 0x6a, + 0x5f, 0x31, 0xe4, 0x94, 0x92, 0x14, 0xbd, 0x12, 0xf2, 0x3b, 0xa6, 0x1e, 0xdb, 0xca, 0x5a, 0x6c, + 0x57, 0x66, 0x63, 0x6d, 0xb3, 0xfd, 0xca, 0x28, 0xcb, 0xa4, 0x39, 0xb8, 0xda, 0x91, 0x6e, 0x67, + 0x65, 0x7d, 0x3f, 0x45, 0x36, 0x72, 0x1b, 0x6b, 0xd7, 0x1e, 0xe0, 0x18, 0x42, 0xa6, 0x2c, 0x3a, + 0xd3, 0xb3, 0xc3, 0xbe, 0x6e, 0x8a, 0xd3, 0x84, 0x4f, 0xba, 0x98, 0xc9, 0x05, 0xb5, 0xbd, 0x43, + 0xdd, 0xdd, 0xbd, 0xc1, 0x57, 0xa3, 0x26, 0x97, 0x1e, 0xef, 0x13, 0x74, 0xdf, 0x6c, 0x4c, 0x74, + 0xd7, 0x26, 0xba, 0x13, 0x8e, 0xec, 0xde, 0x75, 0xfb, 0xbb, 0x7a, 0xd7, 0x66, 0xd6, 0xea, 0xa4, + 0xb9, 0xd2, 0x53, 0x5c, 0x93, 0xae, 0x15, 0xfb, 0x9c, 0x4c, 0xd5, 0x5c, 0x8e, 0x35, 0x97, 0x8a, + 0x59, 0x18, 0xd7, 0xb1, 0x0f, 0xce, 0x61, 0x55, 0xde, 0x15, 0x12, 0x05, 0xca, 0x70, 0xb8, 0x76, + 0x07, 0x49, 0xee, 0x75, 0x20, 0x8d, 0x73, 0x46, 0x6c, 0x82, 0x9f, 0x35, 0x40, 0x69, 0xbe, 0x1b, + 0xf2, 0x78, 0x15, 0x6c, 0x44, 0x3e, 0xc1, 0xe4, 0x73, 0x81, 0xb9, 0xd4, 0x5f, 0x59, 0x3d, 0x50, + 0xdd, 0x62, 0x74, 0x4c, 0xb5, 0x2f, 0x94, 0xf5, 0x8e, 0x9b, 0x2a, 0x5d, 0x40, 0x3c, 0x44, 0x6e, + 0x65, 0xb5, 0x2f, 0x3b, 0x34, 0xb8, 0x63, 0x6e, 0x8b, 0xc1, 0x7e, 0x13, 0xf2, 0x18, 0x20, 0xdd, + 0x54, 0x89, 0x30, 0xfb, 0xd7, 0x7d, 0xad, 0xa0, 0xdf, 0x58, 0xb9, 0xe8, 0x5f, 0x5f, 0x5f, 0x09, + 0xfa, 0x47, 0x4a, 0x57, 0x80, 0xf1, 0xa5, 0x57, 0x30, 0x25, 0x81, 0x77, 0xfa, 0x97, 0x06, 0x31, + 0x6d, 0xb5, 0xc9, 0x00, 0xba, 0x7b, 0xd8, 0xe3, 0x77, 0xa5, 0x5f, 0xcf, 0x5e, 0xc5, 0xdb, 0x75, + 0xef, 0x6d, 0xa3, 0x68, 0x4f, 0x95, 0x59, 0xa1, 0x5f, 0x56, 0x60, 0xe9, 0x55, 0xc1, 0xd2, 0xe5, + 0x60, 0xf6, 0x2d, 0x87, 0xdc, 0x5f, 0x1c, 0x8a, 0x22, 0x67, 0xf4, 0xd2, 0x2f, 0x57, 0xe5, 0x44, + 0x1e, 0x46, 0x19, 0xc5, 0xf3, 0xa0, 0x4e, 0x5e, 0xb3, 0x48, 0xdc, 0x29, 0x72, 0x9c, 0xdb, 0x69, + 0x93, 0x22, 0xbb, 0x1a, 0x5a, 0x1b, 0x77, 0x61, 0x3f, 0x56, 0x46, 0x76, 0x2f, 0x07, 0x7d, 0x6b, + 0x1d, 0xfe, 0x1a, 0x57, 0xd6, 0xfa, 0xf4, 0x83, 0xcd, 0x48, 0x89, 0xf3, 0xbd, 0xb9, 0xde, 0xa9, + 0x08, 0x15, 0xa3, 0x7a, 0x76, 0xda, 0x2b, 0xcd, 0xad, 0xef, 0x97, 0x1d, 0xbe, 0x9b, 0x62, 0x8e, + 0x19, 0x14, 0xbd, 0xc6, 0x70, 0xbd, 0xf7, 0x33, 0x56, 0xe1, 0x8a, 0x42, 0x54, 0xd5, 0xaa, 0xf1, + 0x48, 0x47, 0xe7, 0x09, 0x1f, 0xaf, 0x3b, 0xfc, 0xa5, 0x35, 0x2f, 0x7d, 0x08, 0x9e, 0x28, 0xca, + 0xfa, 0xba, 0x6d, 0x24, 0xbf, 0xc0, 0xe6, 0x5f, 0x1c, 0xc2, 0xf6, 0xf5, 0xe1, 0xdc, 0xa0, 0xf6, + 0xad, 0x5e, 0x24, 0xee, 0x14, 0xb9, 0x25, 0xa3, 0x7d, 0x8b, 0xb9, 0x7d, 0xf5, 0xdc, 0xbe, 0x10, + 0xb7, 0x2f, 0xa0, 0xb6, 0xcf, 0x8a, 0xb5, 0x67, 0x67, 0xd6, 0x5f, 0xbf, 0x59, 0xb6, 0x63, 0xeb, + 0xec, 0x6a, 0xeb, 0xae, 0x79, 0x7b, 0x6d, 0xdb, 0x8e, 0xcd, 0x93, 0x0d, 0x0b, 0x47, 0x2f, 0x44, + 0x4b, 0x83, 0xdc, 0xb2, 0x3e, 0x99, 0x56, 0x9f, 0xa9, 0xfd, 0x6b, 0xdd, 0xd0, 0xa2, 0x0f, 0xae, + 0x7d, 0xe2, 0x50, 0x89, 0x09, 0xaf, 0x0f, 0x55, 0xcd, 0x0b, 0x27, 0xfe, 0xe6, 0x95, 0x50, 0x17, + 0x54, 0x83, 0x8e, 0x66, 0xd0, 0xdf, 0xe0, 0x18, 0xdc, 0x85, 0xdc, 0x01, 0xac, 0xc2, 0xd5, 0xcb, + 0xf3, 0xf2, 0xdc, 0x95, 0x26, 0xd6, 0x9e, 0x28, 0x97, 0x4d, 0x55, 0x73, 0x2b, 0xa7, 0x04, 0x90, + 0x47, 0xf2, 0xd5, 0x0f, 0x1f, 0xba, 0x0b, 0x39, 0xaa, 0x39, 0xa6, 0x1f, 0xcf, 0x7d, 0xfa, 0x97, + 0x27, 0x0e, 0x61, 0x9a, 0xef, 0xae, 0x7a, 0xa8, 0xac, 0x5a, 0xe8, 0x5e, 0x50, 0x3e, 0xb7, 0x92, + 0x1c, 0x95, 0xfe, 0x78, 0x4f, 0xba, 0x8f, 0x32, 0xf7, 0xf1, 0x5e, 0xee, 0xe3, 0x62, 0xee, 0x63, + 0xbd, 0xda, 0xc7, 0x02, 0x5f, 0xd0, 0x6b, 0xf2, 0xd5, 0xe0, 0x0a, 0x91, 0xd9, 0x93, 0x3d, 0x1f, + 0xec, 0x94, 0x5d, 0xbe, 0xdc, 0x98, 0x4b, 0xf4, 0xf4, 0x06, 0x79, 0x32, 0xc6, 0x22, 0x3c, 0x6f, + 0x65, 0xbe, 0x99, 0x5a, 0x5b, 0x1e, 0x35, 0x1c, 0x9d, 0x2b, 0x1b, 0x8e, 0xa1, 0x14, 0x79, 0x12, + 0xe5, 0x70, 0x39, 0xe7, 0xe8, 0x5c, 0xf5, 0xbe, 0x32, 0xc5, 0xd3, 0x12, 0xf7, 0x87, 0x12, 0xe6, + 0xc0, 0x82, 0x55, 0xaa, 0x84, 0x24, 0x38, 0x32, 0x6d, 0x16, 0x54, 0x54, 0xb9, 0xb5, 0x18, 0x66, + 0x58, 0x02, 0x71, 0xa0, 0xc8, 0x7f, 0xe7, 0x94, 0x17, 0x83, 0xe5, 0xeb, 0xc8, 0x7f, 0x22, 0x0d, + 0x9d, 0x43, 0x9a, 0x49, 0xa5, 0xa4, 0x7f, 0xd1, 0x8a, 0xb3, 0x3c, 0x87, 0x66, 0xb9, 0x37, 0xc8, + 0xde, 0x8d, 0xa5, 0xbb, 0xaa, 0xc1, 0x71, 0x57, 0x00, 0x9c, 0x08, 0x3d, 0x17, 0x5e, 0xdd, 0xac, + 0xfd, 0x48, 0x71, 0x96, 0x34, 0xab, 0xc9, 0x40, 0xc3, 0x86, 0x9d, 0xcd, 0x90, 0xbb, 0x6a, 0xef, + 0xd7, 0x6b, 0x28, 0xd6, 0x42, 0x55, 0xa1, 0xa8, 0x1b, 0x6b, 0x3e, 0xa1, 0xce, 0xbf, 0xc5, 0xc8, + 0x6b, 0x37, 0x62, 0xcd, 0x4b, 0xd4, 0x9a, 0xcd, 0x15, 0xfa, 0xa1, 0x7d, 0x76, 0xc3, 0x91, 0x5e, + 0x92, 0xc6, 0x8f, 0x10, 0xff, 0x16, 0x9a, 0xe3, 0x86, 0xdc, 0x43, 0xbf, 0xb2, 0x4f, 0x39, 0xf2, + 0x10, 0x45, 0x7b, 0x3b, 0x22, 0xf6, 0x0a, 0x91, 0x83, 0xbc, 0x4b, 0x9f, 0xb6, 0xc2, 0xa3, 0xdd, + 0x07, 0x8a, 0x1d, 0xbd, 0x31, 0x71, 0xfa, 0xa1, 0x93, 0x5d, 0xa7, 0x7b, 0xb7, 0xac, 0x43, 0xf9, + 0xd0, 0xef, 0x5d, 0x04, 0x75, 0x7f, 0xff, 0x66, 0xe0, 0x45, 0xa8, 0x5a, 0x38, 0x7a, 0xbe, 0x41, + 0x06, 0x7d, 0x4b, 0x18, 0x25, 0x6a, 0xe4, 0x49, 0x9e, 0xbe, 0x8b, 0x20, 0x5d, 0x5a, 0xae, 0x0f, + 0xbd, 0xea, 0x5b, 0x05, 0xa5, 0xa5, 0xa6, 0xd0, 0x2b, 0xf6, 0x9a, 0x6a, 0x5c, 0x9b, 0x24, 0x93, + 0xb4, 0xa8, 0xd4, 0x12, 0x7a, 0x65, 0x47, 0x62, 0x65, 0xb8, 0x94, 0x2c, 0xcd, 0xf0, 0xae, 0xd5, + 0x8f, 0x10, 0xc8, 0xa9, 0xf9, 0x03, 0x00, 0xed, 0x0e, 0x90, 0xd4, 0x80, 0xa9, 0x0f, 0xaf, 0x74, + 0xe3, 0xbc, 0x34, 0xfe, 0xe2, 0xf5, 0x56, 0xfb, 0xf0, 0x42, 0x9f, 0xdf, 0x6b, 0x2a, 0x45, 0x3c, + 0x39, 0xb2, 0xaf, 0x74, 0x3e, 0xe2, 0xe9, 0x34, 0x6f, 0x76, 0x1a, 0x4b, 0x69, 0xbc, 0x28, 0x9e, + 0x5d, 0x29, 0x68, 0x75, 0xd8, 0x17, 0x95, 0xde, 0x82, 0x25, 0xf4, 0x61, 0x0d, 0x33, 0xb9, 0x86, + 0xbe, 0x56, 0xff, 0x5d, 0x1c, 0x49, 0x1c, 0xdb, 0x52, 0xf6, 0xc4, 0x9b, 0x98, 0xaa, 0xe7, 0xf7, + 0x6e, 0x5c, 0xb9, 0x8c, 0x2f, 0x0d, 0xb5, 0xda, 0x4b, 0x91, 0x6f, 0xde, 0xb8, 0xb0, 0xb4, 0xda, + 0x3b, 0x75, 0x38, 0x40, 0x75, 0x5d, 0x5b, 0x03, 0xf7, 0xa7, 0x0c, 0xdb, 0x50, 0xf6, 0xe4, 0xab, + 0xd2, 0x22, 0x9f, 0x25, 0x34, 0x38, 0xf0, 0xf0, 0xca, 0xc5, 0xa4, 0xc1, 0x4c, 0x77, 0xad, 0x61, + 0x2e, 0xbf, 0xb4, 0x94, 0xfa, 0x3a, 0x35, 0xf4, 0x0a, 0x9d, 0x09, 0xa4, 0xfa, 0x51, 0xa2, 0xf6, + 0xc3, 0x59, 0xba, 0xf0, 0xc8, 0x87, 0xf8, 0x1e, 0x7b, 0x80, 0xf8, 0x52, 0xd1, 0x7f, 0x83, 0x9a, + 0xa8, 0x2f, 0x3e, 0xff, 0x13, 0xaf, 0xa6, 0x7a, 0x01, 0x70, 0x32, 0xd5, 0x0f, 0x80, 0x23, 0x88, + 0x29, 0x39, 0xbe, 0xea, 0x27, 0xde, 0x2c, 0xa7, 0x5e, 0xbc, 0xba, 0x8b, 0xde, 0xbf, 0xac, 0xf6, + 0x03, 0x60, 0xe7, 0xc6, 0x85, 0xbe, 0x6a, 0xaf, 0xa9, 0x3f, 0x50, 0xea, 0xbf, 0x1e, 0x9c, 0x70, + 0x1e, 0x6d, 0xf4, 0x65, 0x0d, 0x63, 0x5b, 0xa9, 0x6e, 0x9f, 0x1e, 0xef, 0x4c, 0xd7, 0xe6, 0xa4, + 0xd1, 0xe8, 0xaf, 0xf9, 0x53, 0x39, 0x48, 0x73, 0x31, 0xa3, 0x1c, 0xda, 0x93, 0x08, 0xfc, 0xc9, + 0x72, 0x6e, 0x90, 0x83, 0xca, 0x41, 0xac, 0x0a, 0xbd, 0x45, 0xfb, 0x7c, 0x28, 0xb7, 0x0c, 0x3f, + 0x14, 0x7e, 0xa8, 0xc5, 0x4c, 0xd2, 0xeb, 0xc9, 0x04, 0xe2, 0x57, 0x95, 0x6c, 0x5b, 0x14, 0x78, + 0xfa, 0x45, 0x08, 0x8a, 0x94, 0x1f, 0x13, 0xce, 0x55, 0x11, 0xde, 0x6d, 0x59, 0x17, 0x79, 0xac, + 0xfc, 0xa6, 0x70, 0x6f, 0x2b, 0x8c, 0xf5, 0x23, 0xf6, 0x55, 0x2c, 0x18, 0x7d, 0xef, 0x88, 0x2f, + 0x80, 0xd4, 0xb0, 0x0c, 0x4b, 0x0b, 0x06, 0x19, 0x83, 0x55, 0x4c, 0xdc, 0x28, 0x30, 0x51, 0xa2, + 0x91, 0xff, 0x10, 0x2a, 0x30, 0x4f, 0x09, 0x8d, 0x52, 0xd5, 0xfc, 0x9a, 0x4f, 0xfa, 0x40, 0xc5, + 0xc5, 0x87, 0x53, 0xb8, 0xf8, 0xb0, 0xc0, 0xc5, 0xd2, 0xac, 0xd0, 0x2b, 0xa5, 0xfe, 0xb7, 0x5e, + 0x99, 0x43, 0x63, 0xf8, 0xab, 0x97, 0x33, 0x71, 0xb1, 0xe6, 0x4f, 0xe0, 0xe2, 0x0f, 0xb4, 0xf1, + 0xab, 0xa2, 0x7d, 0xb4, 0x92, 0xea, 0x4f, 0xb6, 0xa4, 0x71, 0x31, 0x90, 0x1a, 0xc3, 0x0a, 0x31, + 0x82, 0xfd, 0xaf, 0xce, 0x99, 0xc9, 0xa5, 0xf7, 0xad, 0x74, 0xaa, 0xe3, 0x57, 0xb4, 0xb1, 0x86, + 0x46, 0x6f, 0xf8, 0x5a, 0x48, 0xa5, 0x4a, 0x2e, 0xf5, 0x3f, 0xf9, 0x21, 0x94, 0xa4, 0xda, 0x7d, + 0x4f, 0xaa, 0xdd, 0x75, 0x2a, 0x06, 0x62, 0xcb, 0xab, 0xb0, 0x7f, 0x73, 0x72, 0x43, 0xbf, 0xb2, + 0x57, 0x2f, 0xfc, 0x7d, 0x07, 0xa8, 0x7d, 0x78, 0x5c, 0xed, 0xc3, 0x21, 0xc4, 0x76, 0x7c, 0x7f, + 0xe4, 0x55, 0x6a, 0xfd, 0x75, 0x70, 0xf0, 0x07, 0x19, 0x38, 0x88, 0x35, 0xd9, 0x17, 0x55, 0xdd, + 0xfd, 0x6f, 0x43, 0x88, 0x63, 0xc7, 0xab, 0x1e, 0x00, 0xc3, 0xbf, 0x11, 0x8e, 0x0d, 0x6b, 0xed, + 0xc7, 0x14, 0x3d, 0xbf, 0xcb, 0xc4, 0xbf, 0x1a, 0x9a, 0x45, 0xfd, 0x81, 0x2a, 0xbf, 0x37, 0xf7, + 0xda, 0x72, 0x3f, 0x17, 0xfe, 0xfd, 0x40, 0xe0, 0x0d, 0x95, 0x20, 0x72, 0x5c, 0xb7, 0x8d, 0x2a, + 0xfe, 0xd1, 0xd7, 0x02, 0xbb, 0xae, 0xad, 0xf1, 0xcf, 0xe2, 0x1f, 0x97, 0xb3, 0x28, 0x80, 0x12, + 0x76, 0x30, 0xdc, 0xdb, 0x92, 0x1b, 0xa9, 0xd1, 0x70, 0x31, 0x03, 0xcf, 0x10, 0xbb, 0xc2, 0x81, + 0x16, 0x18, 0xdb, 0xa1, 0x52, 0x76, 0x07, 0x51, 0xf6, 0x8c, 0xff, 0xe2, 0xbc, 0xae, 0x42, 0xd5, + 0x88, 0x36, 0x6b, 0x1a, 0xd1, 0x42, 0x4b, 0x98, 0x35, 0x87, 0x73, 0xe6, 0x8f, 0xfe, 0x2e, 0x5f, + 0xd5, 0x1b, 0x4e, 0x4e, 0xb0, 0x0c, 0xca, 0x11, 0xe7, 0x1c, 0xed, 0xe4, 0xdb, 0xe4, 0x02, 0x72, + 0xc6, 0x2b, 0x34, 0xd9, 0x84, 0xce, 0xf8, 0x90, 0xdf, 0xba, 0x3c, 0x3b, 0xa8, 0x7c, 0x14, 0x60, + 0xab, 0x06, 0x25, 0x49, 0x71, 0x63, 0xb5, 0xf3, 0x07, 0x59, 0xbf, 0x1a, 0x4a, 0xb3, 0xa4, 0xac, + 0x48, 0xcf, 0x00, 0x59, 0xcb, 0xbf, 0x16, 0xe9, 0xae, 0xd0, 0xef, 0x7c, 0x41, 0x49, 0x2e, 0x3b, + 0xc7, 0xde, 0xb1, 0x34, 0x5e, 0xf3, 0x20, 0xe9, 0x54, 0xb9, 0xd4, 0xd3, 0x18, 0x92, 0xaa, 0x59, + 0xfe, 0xbd, 0xea, 0x69, 0x81, 0x3c, 0xda, 0x23, 0x41, 0x58, 0x98, 0xeb, 0xf7, 0x9c, 0x1d, 0x64, + 0x4d, 0x64, 0x33, 0xdb, 0xc3, 0x81, 0x9e, 0x62, 0xec, 0x59, 0xed, 0xb0, 0xa8, 0x6b, 0xb5, 0x6e, + 0x17, 0x9d, 0xc8, 0x9e, 0xc6, 0x31, 0x1b, 0x62, 0x58, 0xe7, 0x96, 0x1a, 0x8e, 0x34, 0x33, 0x5f, + 0x9c, 0xbf, 0x66, 0xea, 0xf1, 0xad, 0x6c, 0x2d, 0x92, 0xd2, 0xde, 0x25, 0xbb, 0x7b, 0x82, 0xbf, + 0xd6, 0xc2, 0x07, 0xf5, 0x2f, 0x77, 0xc7, 0x5c, 0xad, 0xa6, 0x36, 0xdd, 0x8e, 0xee, 0xe8, 0x12, + 0x39, 0x77, 0x4d, 0xd6, 0x9e, 0xee, 0x98, 0xe3, 0x41, 0xc3, 0xcb, 0xdd, 0xd1, 0x7a, 0x39, 0x40, + 0xba, 0xd2, 0x52, 0xb5, 0x25, 0x11, 0x61, 0x7d, 0x69, 0xec, 0x39, 0xc2, 0xca, 0x97, 0x58, 0x4c, + 0x92, 0xa2, 0xcf, 0x0e, 0x81, 0xea, 0x50, 0x35, 0xa5, 0x58, 0xba, 0xec, 0x70, 0xea, 0x61, 0xba, + 0xbb, 0x05, 0x39, 0x09, 0xbe, 0xfa, 0x41, 0x7f, 0x0f, 0xe5, 0xca, 0xa1, 0x27, 0x29, 0xd1, 0x88, + 0xf7, 0x91, 0x20, 0x79, 0x44, 0x20, 0xff, 0x6b, 0x03, 0xc1, 0x95, 0xa0, 0xdc, 0xe3, 0xd5, 0xd3, + 0x38, 0x4b, 0xb5, 0x6c, 0x05, 0x85, 0xe3, 0xbe, 0x31, 0xf1, 0x16, 0xe5, 0xaa, 0x91, 0xcd, 0x81, + 0x9a, 0x85, 0x24, 0x5b, 0x56, 0xd1, 0x8a, 0xb6, 0x0b, 0xe5, 0xa7, 0xd6, 0x21, 0xe4, 0x5f, 0x0a, + 0x7f, 0xf3, 0x46, 0x71, 0xbd, 0x72, 0x10, 0x79, 0x5d, 0x3b, 0xc9, 0xce, 0xab, 0xa7, 0x1e, 0x7d, + 0x0e, 0xfa, 0x48, 0x2f, 0x99, 0xf6, 0x0f, 0x26, 0xdb, 0x41, 0x39, 0xc0, 0x87, 0x5c, 0xc6, 0xe1, + 0x21, 0xc9, 0x34, 0xdc, 0x97, 0x19, 0xb7, 0xc6, 0x09, 0xc4, 0xfd, 0x37, 0x50, 0x9c, 0xea, 0xad, + 0x0c, 0x2f, 0x6c, 0x0d, 0x43, 0x2b, 0x17, 0xf3, 0x9b, 0xa9, 0xdc, 0x94, 0xe6, 0xb3, 0xb0, 0xb8, + 0x7a, 0x41, 0x39, 0x36, 0x3b, 0xa4, 0x9c, 0x40, 0xe8, 0x9d, 0x44, 0xe8, 0x9d, 0x62, 0x7b, 0xa5, + 0xd3, 0x6c, 0xff, 0x7c, 0x66, 0x22, 0x24, 0xa9, 0x3e, 0xda, 0xf3, 0xb5, 0xb7, 0x2a, 0x07, 0xed, + 0xb7, 0x50, 0x49, 0x0f, 0x16, 0x9e, 0x24, 0x9b, 0x01, 0x2a, 0x89, 0x6c, 0x55, 0x6a, 0xb9, 0xb4, + 0x13, 0x38, 0x16, 0xa7, 0x90, 0x33, 0x67, 0xbb, 0x0f, 0xb2, 0xf9, 0xe0, 0xb2, 0xf8, 0x8c, 0x78, + 0x62, 0x79, 0x91, 0x20, 0xeb, 0xb9, 0xe7, 0x06, 0x82, 0x0c, 0x8b, 0x9b, 0xbe, 0xbd, 0xce, 0x7d, + 0xd3, 0xdd, 0x6b, 0x77, 0x13, 0x34, 0x40, 0x09, 0x6b, 0xf1, 0x6b, 0xeb, 0xf7, 0x9c, 0x8e, 0xb0, + 0xe7, 0x84, 0xa4, 0xf2, 0xec, 0x9f, 0xc0, 0x25, 0x13, 0xe2, 0x12, 0x62, 0x94, 0xcb, 0x83, 0xd2, + 0x56, 0x33, 0x58, 0x57, 0x81, 0x7e, 0x0e, 0x5e, 0xf3, 0xf1, 0x5a, 0x8e, 0xf8, 0x65, 0x13, 0xf8, + 0x75, 0x46, 0x9e, 0x80, 0x5f, 0x14, 0xd3, 0xc1, 0x96, 0x81, 0x5f, 0xe7, 0xdc, 0x25, 0x60, 0x08, + 0x64, 0x79, 0x98, 0xe3, 0x2d, 0xa9, 0x52, 0xf7, 0xc3, 0xf7, 0xc7, 0xf5, 0x98, 0xdb, 0xa9, 0xe2, + 0xcf, 0x7d, 0x72, 0x2e, 0xca, 0x45, 0x88, 0x4f, 0x6d, 0x06, 0x7c, 0x6a, 0xd0, 0xf0, 0x27, 0x0e, + 0x16, 0x4b, 0xa4, 0x4b, 0x26, 0x3b, 0xd9, 0xab, 0xf6, 0x6a, 0x92, 0x4d, 0x17, 0x0b, 0x7c, 0xf2, + 0x11, 0x76, 0xd0, 0xdb, 0x90, 0x3f, 0xe0, 0x6f, 0x83, 0x3c, 0x17, 0xe8, 0xde, 0x7d, 0x38, 0xd1, + 0x95, 0x40, 0x4a, 0x78, 0x4f, 0x1f, 0x42, 0xe7, 0xaa, 0x9c, 0x2b, 0x4a, 0x90, 0x2c, 0x8d, 0x5d, + 0xf2, 0xc1, 0x38, 0xcc, 0xf2, 0x23, 0x57, 0x48, 0x38, 0x9e, 0xc7, 0xf4, 0xc4, 0x30, 0x4c, 0x3a, + 0xd8, 0x44, 0x75, 0x08, 0x6e, 0x2a, 0xb5, 0x20, 0x6d, 0x03, 0x86, 0x9e, 0x55, 0xc5, 0x37, 0x2b, + 0xe3, 0x5b, 0xa3, 0x57, 0x4f, 0x39, 0xc9, 0x6e, 0x8c, 0xf1, 0xcd, 0xac, 0xe1, 0x1b, 0x62, 0x58, + 0x7e, 0xeb, 0xd1, 0x59, 0x73, 0x49, 0x96, 0xd6, 0x39, 0x8f, 0x3d, 0x8a, 0x92, 0xdb, 0x41, 0x3e, + 0x73, 0x67, 0x3c, 0x6b, 0x9b, 0x7a, 0xe4, 0x39, 0xd5, 0xb3, 0xc5, 0x8d, 0xf0, 0xcc, 0xfa, 0x27, + 0xf1, 0x6c, 0x00, 0xa1, 0x34, 0x4c, 0xb9, 0x08, 0x33, 0xa4, 0x5b, 0xa8, 0xe6, 0x49, 0xd8, 0x11, + 0x10, 0xd8, 0x81, 0x75, 0x08, 0xec, 0xf0, 0x0b, 0x7b, 0xc6, 0x3f, 0x85, 0x1d, 0xd4, 0x2b, 0xc6, + 0xdb, 0x3c, 0x94, 0xb9, 0x0d, 0x25, 0x1e, 0xd2, 0xc0, 0x2c, 0x71, 0xa9, 0x7a, 0xe7, 0xc3, 0x28, + 0xe9, 0x8e, 0x20, 0xf6, 0xb2, 0xfd, 0xfd, 0x6c, 0xb2, 0xda, 0x3b, 0x85, 0xf8, 0x7b, 0x1a, 0xf1, + 0xf7, 0x0c, 0xe3, 0xef, 0x59, 0x2e, 0xf5, 0xdc, 0x8d, 0xf0, 0xcd, 0x73, 0xd3, 0xdd, 0x88, 0x6b, + 0xdf, 0x5e, 0x4b, 0x78, 0xb7, 0x9b, 0x60, 0x03, 0x4a, 0x20, 0x8d, 0x6f, 0xbf, 0x3d, 0x3d, 0x09, + 0xdf, 0x76, 0x5f, 0x1f, 0xdf, 0x8a, 0xc9, 0x92, 0x30, 0x49, 0xed, 0x44, 0x2c, 0xab, 0xc3, 0x95, + 0x88, 0xb0, 0x2d, 0x48, 0xb4, 0x36, 0xb4, 0xe6, 0xf4, 0x53, 0x28, 0xe9, 0xdf, 0x44, 0xfe, 0x1c, + 0x69, 0x15, 0xe5, 0x91, 0xc4, 0x9e, 0xe0, 0x1d, 0xb6, 0x95, 0x29, 0x3f, 0x62, 0xe3, 0x6f, 0xcf, + 0xb0, 0x97, 0x26, 0x7f, 0x14, 0xf4, 0x64, 0xe5, 0x90, 0xd7, 0x0e, 0xbe, 0x6a, 0x84, 0xc8, 0xb1, + 0x85, 0xea, 0x49, 0x8c, 0xee, 0x98, 0x07, 0x31, 0x83, 0x7b, 0x37, 0x84, 0x34, 0xb6, 0x95, 0xb5, + 0xed, 0xc9, 0x6b, 0xc9, 0x09, 0x29, 0xec, 0xa8, 0xc5, 0xf7, 0xdd, 0x12, 0x42, 0xa5, 0x7d, 0xaa, + 0xdd, 0x3f, 0xf2, 0x1c, 0xdb, 0x07, 0x90, 0xad, 0xcd, 0x1e, 0xa4, 0xd4, 0xad, 0xca, 0x11, 0xe5, + 0x23, 0xa9, 0x58, 0x95, 0xff, 0xa7, 0xd9, 0xfd, 0xd2, 0x4c, 0x28, 0x40, 0xd8, 0xef, 0xc7, 0xd2, + 0x07, 0xed, 0xfe, 0xfa, 0x27, 0x50, 0xc6, 0xcf, 0xef, 0xf8, 0xa2, 0x3d, 0xa0, 0xda, 0xa2, 0x5d, + 0xa0, 0x11, 0x20, 0xbb, 0x52, 0xda, 0x3f, 0x98, 0xfc, 0x1d, 0xe5, 0x77, 0x15, 0xb8, 0x0d, 0xe2, + 0xfc, 0xb6, 0x1d, 0xac, 0xb3, 0x94, 0x53, 0x88, 0xcf, 0xb3, 0x94, 0xd3, 0x64, 0x0b, 0x8d, 0x57, + 0x9a, 0xe7, 0x87, 0x24, 0x43, 0xc6, 0xb9, 0x6e, 0x37, 0x9f, 0xdb, 0x6e, 0x26, 0x4e, 0x9d, 0xd3, + 0xc5, 0x79, 0xee, 0x0b, 0xca, 0x01, 0x2d, 0xbd, 0x84, 0xcf, 0x73, 0x87, 0x12, 0x5b, 0x5e, 0x50, + 0x0e, 0x79, 0x0d, 0x22, 0xcd, 0x65, 0x7c, 0x77, 0xfd, 0xb1, 0x75, 0xe4, 0x1b, 0x24, 0x01, 0xa1, + 0x60, 0x68, 0xff, 0xb1, 0xee, 0x77, 0xeb, 0x70, 0xcd, 0x39, 0xe5, 0x98, 0xf2, 0xee, 0x23, 0x99, + 0x27, 0xb9, 0x23, 0x58, 0xce, 0xbb, 0xe1, 0xd9, 0x01, 0xe5, 0xf4, 0xe4, 0x73, 0x5f, 0x7c, 0x73, + 0x88, 0xdf, 0x9c, 0x61, 0xb8, 0xe4, 0xa7, 0xe1, 0xa2, 0xf6, 0xed, 0xf2, 0xf5, 0xfa, 0x46, 0xb0, + 0xb0, 0x07, 0x1c, 0x48, 0x13, 0x23, 0xdd, 0x93, 0x61, 0x48, 0x9a, 0x1e, 0xf6, 0x15, 0xa9, 0x6f, + 0xd8, 0xee, 0x89, 0x2d, 0x29, 0x5b, 0x11, 0x8e, 0xb3, 0x94, 0xfd, 0x65, 0xb3, 0x94, 0xa1, 0x91, + 0x1a, 0xac, 0x71, 0x8f, 0x94, 0x35, 0xfc, 0x82, 0x32, 0x12, 0xe9, 0x41, 0x49, 0xde, 0x12, 0xda, + 0x5f, 0xe6, 0x02, 0x2b, 0xb6, 0xa7, 0x77, 0x67, 0x62, 0x25, 0x8c, 0x2f, 0x71, 0xcc, 0x52, 0x4e, + 0x38, 0x42, 0x2e, 0x17, 0x98, 0xdf, 0xa1, 0xd9, 0xd8, 0xed, 0xab, 0x1e, 0xde, 0x87, 0x14, 0xf7, + 0x88, 0xa4, 0xc7, 0x6f, 0x8e, 0x21, 0x46, 0xe4, 0x91, 0xe5, 0x60, 0xf5, 0xef, 0xfb, 0xe0, 0x17, + 0x83, 0x98, 0xdf, 0xcc, 0xb8, 0xd7, 0xaf, 0xe2, 0xde, 0xb9, 0xd0, 0x7b, 0x55, 0x12, 0xd9, 0xc0, + 0x93, 0x65, 0x39, 0x96, 0x8e, 0x38, 0x06, 0xdb, 0x2b, 0x5d, 0x60, 0xc3, 0xeb, 0xb3, 0xe6, 0x99, + 0xa4, 0xf9, 0x1f, 0xb3, 0x38, 0x90, 0x62, 0xed, 0x3a, 0x84, 0x4f, 0x39, 0x30, 0x3d, 0x6a, 0x96, + 0x8d, 0xfc, 0xbc, 0xb4, 0x4d, 0x27, 0x9b, 0xe8, 0xee, 0x9f, 0x2b, 0x02, 0xd5, 0x28, 0x1d, 0x58, + 0xca, 0xa1, 0xc5, 0x60, 0xac, 0x81, 0x9b, 0xcf, 0xd5, 0x94, 0xd5, 0xfc, 0xc7, 0x81, 0xff, 0x38, + 0x07, 0xa6, 0xe2, 0xb0, 0x72, 0x7e, 0xf5, 0xcd, 0x83, 0x3d, 0xb4, 0xd3, 0x7f, 0xea, 0x1f, 0x70, + 0x3e, 0x5d, 0x2a, 0x5e, 0x8e, 0x38, 0xfd, 0x51, 0x31, 0xf2, 0x57, 0xca, 0x27, 0xf8, 0x6b, 0x52, + 0x46, 0xc3, 0x38, 0x77, 0x28, 0x56, 0x19, 0xce, 0xad, 0x71, 0x84, 0xc3, 0x79, 0x8a, 0xaa, 0x02, + 0x7a, 0xe2, 0xac, 0x4a, 0xe7, 0xe2, 0x5f, 0x10, 0xff, 0x96, 0x93, 0x15, 0x24, 0x72, 0x74, 0x88, + 0xdf, 0xbc, 0x3b, 0x3e, 0x0b, 0x4c, 0xf5, 0x7b, 0x7e, 0x43, 0x56, 0xcf, 0xae, 0xba, 0x8b, 0x86, + 0xaa, 0x14, 0x0f, 0xb0, 0x3f, 0x63, 0xa7, 0x8c, 0xe7, 0x11, 0xed, 0xee, 0x0b, 0x6a, 0xad, 0xb3, + 0x0a, 0x6a, 0xad, 0x33, 0xe3, 0xd8, 0x19, 0xec, 0x35, 0x48, 0x7b, 0xd2, 0x16, 0x84, 0xac, 0xf9, + 0x50, 0x7d, 0x91, 0xe9, 0x45, 0x92, 0xe6, 0x34, 0xce, 0xdb, 0x2b, 0xe9, 0x79, 0xcd, 0xd8, 0x78, + 0x8e, 0xb0, 0x10, 0xaf, 0xe4, 0x79, 0xe7, 0x08, 0x5e, 0x09, 0xa7, 0x8f, 0x36, 0x6c, 0x30, 0x7b, + 0x18, 0x42, 0x4b, 0xf0, 0x8a, 0xb0, 0x89, 0x2d, 0xa1, 0x88, 0xbc, 0x7f, 0xae, 0xf4, 0xeb, 0x94, + 0x7c, 0x5c, 0x2d, 0xf9, 0xa4, 0x5a, 0x32, 0x52, 0x08, 0x3b, 0x42, 0xf6, 0x5f, 0x8c, 0x01, 0xbf, + 0x6c, 0xa1, 0xbb, 0x7f, 0xde, 0x26, 0x1b, 0xe9, 0xba, 0x7b, 0x17, 0x52, 0x1e, 0xa2, 0x0e, 0xaf, + 0x31, 0x75, 0x38, 0x80, 0xbd, 0xb2, 0xdd, 0xb3, 0xef, 0xcb, 0x01, 0xe5, 0x2c, 0xc2, 0xee, 0x35, + 0x2f, 0xf9, 0x82, 0xbd, 0x49, 0xa5, 0x06, 0xf9, 0x4c, 0x0d, 0xac, 0x1a, 0x65, 0x28, 0x23, 0xca, + 0x40, 0xf1, 0xd7, 0x90, 0x02, 0xfd, 0xfa, 0x80, 0x80, 0xdd, 0x12, 0xb3, 0xb2, 0x5d, 0x85, 0xdd, + 0x48, 0xe8, 0xbd, 0x39, 0x3e, 0xc2, 0x03, 0xc4, 0x01, 0x14, 0xa5, 0x75, 0x2e, 0xc4, 0x01, 0x14, + 0xe6, 0x75, 0x52, 0x95, 0x0b, 0xf2, 0xcc, 0xb5, 0xa0, 0x5b, 0x59, 0x44, 0x18, 0xa2, 0x62, 0x44, + 0xa1, 0x8a, 0x0b, 0x45, 0x71, 0x1d, 0xb5, 0x6a, 0xcf, 0x56, 0xb9, 0x30, 0xe0, 0xa7, 0xbb, 0xbd, + 0x41, 0x39, 0x4f, 0xa4, 0xfd, 0xcb, 0x09, 0xd9, 0x24, 0xd2, 0xfe, 0xb5, 0x0d, 0x47, 0xdd, 0xa4, + 0x8c, 0x94, 0x23, 0x86, 0x86, 0x5e, 0x6d, 0xbf, 0xf9, 0xb5, 0x6e, 0xda, 0x4b, 0x38, 0xfb, 0x13, + 0xc4, 0xeb, 0xab, 0x58, 0x66, 0x01, 0xce, 0x9c, 0x63, 0x8e, 0xe5, 0x6a, 0x24, 0x54, 0x23, 0xc5, + 0x38, 0x25, 0xcb, 0x6b, 0xa2, 0x43, 0x65, 0xcb, 0x49, 0x1f, 0x5d, 0x39, 0x85, 0x57, 0x27, 0x5e, + 0xcf, 0x94, 0x2f, 0x47, 0xda, 0xb8, 0x40, 0x39, 0x37, 0xbb, 0x56, 0x49, 0x62, 0x99, 0x45, 0xca, + 0x05, 0xf2, 0x24, 0x52, 0xbc, 0x82, 0x4e, 0x3a, 0xf0, 0xd7, 0xa4, 0x5c, 0x41, 0x6c, 0xb2, 0x7d, + 0x6b, 0x5f, 0xa8, 0x1b, 0xcb, 0x1e, 0xe7, 0x73, 0x28, 0x37, 0x62, 0xa6, 0xbd, 0x8c, 0x30, 0x33, + 0x80, 0x98, 0x19, 0x28, 0x0f, 0xbc, 0xfd, 0xc6, 0x5b, 0x6f, 0x50, 0x8d, 0xed, 0x37, 0x0f, 0x72, + 0x3b, 0x4e, 0x51, 0x3b, 0x46, 0xe3, 0x3a, 0xd9, 0xc8, 0x76, 0xd5, 0xb4, 0xd3, 0x38, 0xc2, 0x70, + 0x64, 0xde, 0xaa, 0x7c, 0xae, 0x77, 0x1a, 0xe1, 0xa0, 0x37, 0x07, 0xf1, 0xcf, 0x91, 0x89, 0x7f, + 0xc7, 0xd7, 0x09, 0x18, 0x9a, 0x3b, 0x85, 0x5e, 0xbf, 0xb6, 0x0f, 0x81, 0x40, 0x5b, 0xec, 0x54, + 0xf7, 0x21, 0x1c, 0x6e, 0xf6, 0x49, 0xa1, 0x46, 0x56, 0x75, 0x91, 0xd7, 0x13, 0xfd, 0x8f, 0x0e, + 0xd2, 0xee, 0x84, 0xa0, 0xea, 0xba, 0x07, 0x55, 0xac, 0x5c, 0xed, 0xf3, 0x5f, 0xbb, 0x02, 0xba, + 0x01, 0x39, 0x97, 0xd1, 0x77, 0xce, 0x3c, 0x58, 0x76, 0x72, 0x03, 0x52, 0xe3, 0xaa, 0xf0, 0x5a, + 0xb2, 0xe9, 0xb7, 0xcf, 0x95, 0x02, 0xbb, 0x85, 0x3f, 0xad, 0x22, 0xc4, 0x1f, 0x1b, 0x9d, 0x11, + 0xda, 0xaf, 0x98, 0xc0, 0x87, 0x5c, 0xff, 0x00, 0x8e, 0x77, 0xeb, 0x79, 0xd9, 0x42, 0xe9, 0xf6, + 0xc1, 0x54, 0xca, 0xe5, 0x91, 0x6d, 0x60, 0x9e, 0xb8, 0xde, 0x79, 0x66, 0xe1, 0x7a, 0x57, 0xeb, + 0xa1, 0xf5, 0x6e, 0x9d, 0xb7, 0x16, 0xca, 0xbc, 0xf3, 0x51, 0x5e, 0x9c, 0x0b, 0x55, 0x28, 0x61, + 0xd2, 0xfe, 0x81, 0x05, 0x82, 0x77, 0x55, 0x43, 0xed, 0x5d, 0x7e, 0x08, 0xf1, 0xfe, 0x55, 0x38, + 0x4e, 0x5a, 0x0e, 0x75, 0x84, 0xd9, 0x88, 0xbf, 0x53, 0xbc, 0x59, 0x29, 0xee, 0x1c, 0xe0, 0x27, + 0x5e, 0x84, 0x3f, 0xf8, 0xa4, 0x40, 0xa0, 0x96, 0xdb, 0xe5, 0x97, 0x1f, 0xd4, 0xda, 0x75, 0x7b, + 0xbb, 0x09, 0xfb, 0xc2, 0x3c, 0x86, 0xe0, 0x36, 0x8c, 0xc4, 0x6d, 0xa8, 0xb2, 0x49, 0x96, 0xbd, + 0x15, 0x71, 0x14, 0xe9, 0x22, 0xca, 0xa9, 0xfe, 0xfa, 0xcd, 0x11, 0xf2, 0x79, 0x41, 0xfb, 0xfd, + 0x9e, 0xbd, 0xd4, 0xe6, 0xbd, 0xf2, 0x1c, 0x2a, 0xe5, 0x76, 0xff, 0xff, 0xe6, 0xf7, 0xfb, 0xd8, + 0x36, 0xc5, 0x40, 0x3d, 0x8f, 0x04, 0xc5, 0x1a, 0x3c, 0x3e, 0x98, 0xb6, 0x04, 0x39, 0x76, 0x1f, + 0xae, 0xc1, 0x69, 0x29, 0x07, 0xe9, 0x20, 0xe9, 0xf3, 0xd9, 0x35, 0xc9, 0x06, 0xe7, 0x81, 0x33, + 0xfc, 0xf6, 0xfb, 0x90, 0xc7, 0x98, 0x7b, 0x1e, 0xb9, 0x80, 0x4b, 0x88, 0x5f, 0x4e, 0xe5, 0xa3, + 0xb8, 0x7d, 0xf8, 0x39, 0xc8, 0xc7, 0x19, 0xfa, 0x09, 0x53, 0xb2, 0xd1, 0x2f, 0x2f, 0x87, 0xaf, + 0x28, 0xe3, 0x88, 0x63, 0xd6, 0x55, 0xb5, 0xa5, 0x44, 0x3d, 0xfd, 0x88, 0x91, 0x36, 0xde, 0xa3, + 0x34, 0x32, 0x5e, 0x92, 0x9d, 0xf0, 0xf9, 0xd0, 0x9a, 0xff, 0xac, 0x23, 0x8c, 0xa2, 0xf5, 0xba, + 0xbc, 0xda, 0x3b, 0xad, 0xdc, 0x8f, 0x7f, 0x44, 0xcf, 0xa6, 0x21, 0x56, 0x59, 0x78, 0x77, 0x6e, + 0x2a, 0xb6, 0xa9, 0x8c, 0x30, 0xca, 0xd1, 0xaa, 0x9c, 0x72, 0xb6, 0x0a, 0x7d, 0x2f, 0x4d, 0x97, + 0x0a, 0x27, 0x64, 0xc8, 0xb9, 0x0a, 0xea, 0xe8, 0x5c, 0x98, 0xe6, 0x87, 0xe6, 0x53, 0x2d, 0x66, + 0x64, 0xdf, 0x39, 0x28, 0x21, 0x5d, 0x9f, 0x57, 0x77, 0x41, 0x60, 0xee, 0x82, 0x0f, 0xc1, 0x83, + 0xd8, 0x93, 0x13, 0xee, 0x8d, 0xad, 0x61, 0x5e, 0x3d, 0x3b, 0x93, 0x57, 0xf7, 0x10, 0xaf, 0x4e, + 0x18, 0xe0, 0xf1, 0x06, 0xc1, 0x87, 0xa3, 0x5f, 0x46, 0x7b, 0x93, 0x38, 0xf6, 0x95, 0x38, 0xf6, + 0x55, 0x3c, 0xf6, 0x73, 0x1e, 0xd4, 0x7b, 0xe7, 0x81, 0x9f, 0x29, 0xd7, 0x4d, 0x69, 0xa9, 0x47, + 0x0a, 0xd8, 0x83, 0xe1, 0x9e, 0xa8, 0x51, 0xce, 0x97, 0xbe, 0x64, 0xd1, 0x70, 0xcd, 0xd2, 0xfa, + 0x11, 0x9d, 0x36, 0x5e, 0x93, 0xb2, 0xce, 0x83, 0xd8, 0x81, 0xb9, 0x2b, 0xe4, 0x76, 0x5f, 0x36, + 0xcb, 0x57, 0x46, 0x4d, 0xbe, 0x7a, 0x70, 0xea, 0x49, 0xda, 0x05, 0x9c, 0x07, 0x1e, 0xac, 0xd5, + 0x77, 0x17, 0x9d, 0x4e, 0x4d, 0xa8, 0xa9, 0x70, 0x30, 0x52, 0xdb, 0xb0, 0x61, 0x2f, 0x95, 0xb4, + 0x5f, 0xae, 0xfa, 0xef, 0x7c, 0x8d, 0xb8, 0x60, 0x8a, 0xcc, 0xdd, 0xc3, 0xfc, 0xff, 0xf8, 0x47, + 0x08, 0x8f, 0x5c, 0x15, 0x1f, 0x0c, 0xf5, 0x7b, 0x8e, 0xd6, 0xa7, 0xf0, 0xc1, 0xa6, 0xd9, 0x82, + 0xa9, 0x16, 0x63, 0x79, 0x87, 0x3f, 0xc4, 0x59, 0xec, 0x02, 0xa7, 0x7d, 0x15, 0x98, 0x6f, 0xc5, + 0x95, 0x0b, 0x9c, 0x3c, 0x32, 0x17, 0x68, 0x64, 0x48, 0x87, 0x48, 0xba, 0x9b, 0xc7, 0x06, 0x47, + 0xbb, 0x32, 0x0f, 0x21, 0xac, 0xaf, 0xc0, 0x11, 0x42, 0x7e, 0xcb, 0xe8, 0xa4, 0x48, 0xe9, 0xd3, + 0x56, 0xdf, 0xbc, 0x9f, 0xfc, 0x9b, 0x6d, 0x26, 0xfe, 0x1c, 0xb9, 0x1b, 0x17, 0x20, 0x5f, 0xe4, + 0xcc, 0x26, 0xfd, 0x9e, 0x35, 0x50, 0x80, 0x18, 0xe3, 0x30, 0x90, 0xd6, 0xd8, 0x83, 0x50, 0x84, + 0x6b, 0x6e, 0xa8, 0x3a, 0x50, 0xdd, 0x09, 0x85, 0x2e, 0xf8, 0x92, 0x6b, 0x9a, 0xc9, 0x00, 0xa6, + 0x58, 0xb9, 0x6b, 0xea, 0xb9, 0xad, 0x83, 0x5b, 0x21, 0xe7, 0xfc, 0xf3, 0xaf, 0x6d, 0x05, 0x63, + 0xa2, 0xe7, 0xd2, 0xb6, 0xfd, 0x5b, 0x21, 0x37, 0xd1, 0x7d, 0xe1, 0xb9, 0x7d, 0x5b, 0x21, 0x2f, + 0x81, 0x52, 0xe3, 0xbb, 0x0f, 0x8b, 0x88, 0xda, 0xa7, 0xfa, 0xba, 0x61, 0x46, 0x35, 0x9d, 0x60, + 0xe9, 0xe0, 0xcf, 0x7d, 0x35, 0xc3, 0xcf, 0x27, 0x5d, 0xc7, 0xb0, 0x87, 0x41, 0xea, 0xa1, 0xf4, + 0xdd, 0x3e, 0xa7, 0x1b, 0xa9, 0x93, 0xb7, 0x01, 0x7c, 0xce, 0x85, 0x0f, 0x2a, 0xed, 0xca, 0x6a, + 0xd0, 0xaf, 0xa5, 0x52, 0x91, 0x26, 0x94, 0xe9, 0x7b, 0xe9, 0xce, 0x13, 0x14, 0xf5, 0xd0, 0x5e, + 0x2a, 0xf3, 0x5c, 0x74, 0x0a, 0x5e, 0x25, 0xf4, 0xa5, 0xec, 0x37, 0xb9, 0xc3, 0x8e, 0x80, 0xdc, + 0x84, 0x72, 0xc9, 0x74, 0xd2, 0x73, 0xea, 0x84, 0xaa, 0x62, 0x30, 0x3c, 0xfd, 0xf8, 0x1a, 0xa8, + 0x2c, 0x06, 0xe3, 0x53, 0x2f, 0x42, 0x45, 0x07, 0x54, 0x14, 0x83, 0x7e, 0xcb, 0x8b, 0x50, 0x85, + 0x3c, 0x1a, 0x6b, 0x15, 0xa8, 0xfe, 0x0f, 0x8c, 0x42, 0x03, 0x6a, 0x24, 0xe1, 0xcd, 0x16, 0xba, + 0x78, 0x6e, 0xf0, 0xd2, 0x88, 0xe0, 0xdd, 0xf1, 0xc4, 0xc8, 0x5a, 0xd2, 0x32, 0x78, 0xb9, 0xfb, + 0x7e, 0x43, 0x89, 0xde, 0x51, 0x13, 0xe9, 0x99, 0xf7, 0x01, 0x98, 0x77, 0xbd, 0x08, 0xbe, 0xe8, + 0x66, 0x47, 0x8e, 0x63, 0xa1, 0xbb, 0x1a, 0xe5, 0xac, 0x87, 0x62, 0x16, 0xd2, 0x18, 0x1b, 0x49, + 0x90, 0xbe, 0xc1, 0x8c, 0xef, 0xbb, 0x4c, 0xb8, 0xfe, 0xe2, 0x68, 0x90, 0xbe, 0x2f, 0x69, 0x7f, + 0xa9, 0x63, 0x6a, 0x15, 0x7e, 0xf1, 0x35, 0xed, 0x5b, 0xe9, 0x6e, 0xbb, 0x0b, 0x1c, 0xed, 0x37, + 0xef, 0xef, 0x22, 0x6d, 0x83, 0x70, 0x77, 0x74, 0xb5, 0x49, 0x87, 0xd0, 0xce, 0x25, 0x19, 0xfc, + 0xdd, 0x3e, 0xd1, 0xbb, 0x84, 0x8e, 0x74, 0x19, 0xec, 0x80, 0x10, 0x33, 0xf2, 0xb8, 0xe5, 0xff, + 0xee, 0x39, 0x92, 0xd6, 0x4b, 0xbb, 0x52, 0xe9, 0x39, 0x34, 0x9a, 0x22, 0xf5, 0x6b, 0xd5, 0xa0, + 0x4f, 0xa5, 0xe7, 0x62, 0xba, 0x2d, 0x95, 0x4e, 0x36, 0xec, 0x26, 0x1c, 0x8d, 0x3c, 0x96, 0xce, + 0xbe, 0xf4, 0x9f, 0x5b, 0x89, 0x87, 0xfd, 0x9a, 0x1f, 0x8c, 0x72, 0x29, 0x6b, 0x04, 0xbb, 0x08, + 0xfe, 0x36, 0xe7, 0x40, 0x7f, 0x93, 0x27, 0x6d, 0x7f, 0x4b, 0x71, 0xa7, 0x87, 0xb7, 0xb2, 0xdf, + 0x37, 0x5c, 0x43, 0x84, 0xed, 0x19, 0x9f, 0xd4, 0x61, 0x59, 0xb7, 0xd2, 0x99, 0x92, 0x49, 0xf8, + 0xef, 0x67, 0x2b, 0x4b, 0xc2, 0xc6, 0x61, 0x75, 0xed, 0x61, 0xab, 0x45, 0x47, 0x0b, 0x98, 0xcb, + 0x11, 0x13, 0x2b, 0xf3, 0x90, 0x96, 0xe7, 0x41, 0x45, 0x15, 0xce, 0x7b, 0x1c, 0x01, 0xec, 0x2b, + 0x3e, 0x1b, 0xa1, 0x4a, 0x32, 0x0c, 0xf7, 0x4e, 0xf4, 0x0d, 0xe9, 0x64, 0xfd, 0x5d, 0x7d, 0xbe, + 0xf0, 0xee, 0x3e, 0xd9, 0x73, 0xa4, 0x03, 0xa2, 0x79, 0x69, 0xdb, 0xd7, 0xb7, 0xec, 0x44, 0xf7, + 0x75, 0xe7, 0xb5, 0xbc, 0x99, 0x39, 0x4b, 0x20, 0x56, 0x24, 0x30, 0x87, 0x74, 0xba, 0x14, 0x45, + 0xaa, 0x95, 0x0c, 0xa7, 0xfb, 0x82, 0x09, 0xfb, 0xbc, 0x36, 0x40, 0x2a, 0x53, 0x22, 0x57, 0x68, + 0x9e, 0x8e, 0xe6, 0x8e, 0x1e, 0x39, 0x5e, 0xbf, 0x31, 0x55, 0xea, 0x46, 0x96, 0x9d, 0x40, 0xb7, + 0x69, 0xb8, 0xd7, 0xe3, 0x25, 0xfd, 0x80, 0xc8, 0xda, 0xc3, 0xaf, 0xfd, 0x62, 0xb0, 0xf5, 0x2a, + 0x7d, 0x55, 0xfa, 0xcb, 0x48, 0x17, 0x5b, 0xf3, 0x5a, 0x3c, 0xb5, 0xff, 0xf6, 0xca, 0xd2, 0x13, + 0x9d, 0x84, 0x46, 0x15, 0xa4, 0x35, 0x1c, 0x27, 0xf5, 0xaf, 0x2a, 0xc2, 0x44, 0x17, 0x9c, 0x5e, + 0x1f, 0xec, 0x45, 0x8c, 0x73, 0x43, 0x6e, 0x9b, 0x42, 0xa7, 0x35, 0xbc, 0xab, 0x6a, 0x8c, 0xd4, + 0x90, 0x56, 0xc9, 0xde, 0xde, 0xd6, 0x4f, 0x30, 0x6f, 0x96, 0xc7, 0xff, 0x6f, 0xaf, 0x50, 0x4c, + 0x01, 0xf2, 0xa9, 0xe7, 0xab, 0x19, 0x3e, 0x0f, 0xfa, 0xbb, 0x22, 0x50, 0x6a, 0xc7, 0xd5, 0xd0, + 0x5e, 0x6d, 0x9f, 0xa9, 0xea, 0x24, 0xfb, 0xbd, 0x0b, 0x20, 0xd8, 0x06, 0xa5, 0x40, 0x3e, 0x0a, + 0xe8, 0xd4, 0xe0, 0xae, 0x55, 0xf8, 0x50, 0x87, 0x94, 0xb1, 0x1e, 0x29, 0x4c, 0x03, 0x53, 0xc5, + 0x08, 0xaf, 0x88, 0x8b, 0x91, 0x86, 0x1a, 0x58, 0x67, 0x76, 0x15, 0xf8, 0xd3, 0x3a, 0xb3, 0xf6, + 0x80, 0x34, 0x2f, 0x0e, 0x72, 0x2e, 0x96, 0x61, 0xa3, 0x32, 0xec, 0x1f, 0xdb, 0x20, 0x92, 0x60, + 0x2f, 0x1d, 0x96, 0x1d, 0x89, 0xa5, 0xe7, 0xec, 0xb9, 0xbc, 0xc6, 0x96, 0x22, 0x7f, 0x96, 0x7b, + 0xe4, 0x97, 0x55, 0xcd, 0xbc, 0xe2, 0xf0, 0x7e, 0x18, 0x47, 0x3d, 0xf5, 0x7b, 0x5b, 0x68, 0x05, + 0xf6, 0x06, 0x20, 0xc4, 0xfd, 0x2b, 0x95, 0x90, 0x3b, 0x38, 0x3c, 0x84, 0xeb, 0x5c, 0xdd, 0x5d, + 0xf5, 0x58, 0xff, 0x7c, 0x88, 0x70, 0x8b, 0x16, 0x73, 0x4b, 0xee, 0xe1, 0x96, 0x34, 0x62, 0x4b, + 0x4c, 0x13, 0x5b, 0xc2, 0x7a, 0xac, 0xfd, 0x91, 0xb5, 0xd8, 0x1e, 0x2f, 0x69, 0x28, 0x62, 0x9f, + 0xf3, 0x24, 0xda, 0xf3, 0xcd, 0x1d, 0xee, 0x1b, 0x58, 0xbb, 0x14, 0xc6, 0x4f, 0xa9, 0xd0, 0x9f, + 0x32, 0x77, 0xf4, 0x70, 0x7d, 0x6a, 0x2c, 0xf4, 0x93, 0x46, 0xc5, 0xa6, 0xce, 0x21, 0x9f, 0xb0, + 0x8b, 0xa6, 0x98, 0xc0, 0xe4, 0x59, 0x12, 0xa5, 0x70, 0x03, 0x59, 0x30, 0x34, 0x45, 0x69, 0xcf, + 0xa6, 0x5d, 0xbf, 0x33, 0xd1, 0xb4, 0xc4, 0x5a, 0x85, 0x5c, 0x5c, 0xd7, 0xb2, 0xc5, 0x3b, 0x13, + 0xcb, 0x1a, 0x68, 0x87, 0xaf, 0xfa, 0x5c, 0x86, 0x6f, 0xde, 0x83, 0x34, 0xd7, 0xbe, 0x95, 0xb0, + 0xc3, 0x7b, 0x0f, 0x4b, 0xd5, 0x87, 0x07, 0x69, 0x56, 0xbc, 0x35, 0x54, 0x7d, 0x79, 0x4b, 0xf0, + 0xf0, 0x10, 0xd9, 0x46, 0xe0, 0xfd, 0xef, 0xfb, 0xec, 0x0e, 0x8b, 0xb4, 0x4d, 0xec, 0x2c, 0x4e, + 0xf8, 0xf6, 0x35, 0xe4, 0x08, 0x15, 0x2d, 0xfe, 0x42, 0xba, 0x1d, 0xea, 0x0e, 0x24, 0xd9, 0x3a, + 0xdb, 0xc8, 0xba, 0x45, 0xae, 0x64, 0xcf, 0x18, 0x69, 0x3d, 0x17, 0x77, 0x5e, 0x15, 0x90, 0x36, + 0xb4, 0x75, 0x29, 0xe9, 0x43, 0x67, 0xef, 0x48, 0x44, 0x6d, 0xb2, 0x65, 0x86, 0xd0, 0x60, 0xc9, + 0x9d, 0x21, 0x34, 0x58, 0x8c, 0x7c, 0x2d, 0xa8, 0xfe, 0x10, 0x0a, 0x45, 0x24, 0x4c, 0xd6, 0x45, + 0xd9, 0xa5, 0xd6, 0xf5, 0x4d, 0xe5, 0xcc, 0xf5, 0xfc, 0x3d, 0x79, 0x90, 0x23, 0x75, 0xa4, 0x7c, + 0x3e, 0x21, 0x17, 0x97, 0x87, 0x58, 0xb5, 0x43, 0x78, 0x59, 0x6a, 0x53, 0x84, 0xbd, 0x81, 0x88, + 0x8c, 0x4b, 0xb6, 0x0a, 0xaa, 0xbf, 0x8e, 0xbe, 0xfb, 0x84, 0xff, 0x8a, 0x1a, 0xd6, 0x50, 0x21, + 0x4d, 0x95, 0x0b, 0xaa, 0xa6, 0xca, 0xe5, 0xc9, 0x1e, 0x3b, 0x58, 0x53, 0x65, 0xf5, 0x8c, 0x1a, + 0x28, 0xf1, 0xea, 0x9d, 0x37, 0x7d, 0xbb, 0x07, 0x39, 0xae, 0x15, 0x13, 0xf5, 0x54, 0x16, 0x8e, + 0xfe, 0xfb, 0xf6, 0xfa, 0xcd, 0x33, 0x58, 0x53, 0x85, 0xbc, 0x5f, 0xb1, 0x27, 0x11, 0xa2, 0x19, + 0xed, 0xaa, 0x1e, 0x8b, 0x78, 0x67, 0x62, 0xed, 0x72, 0xfb, 0xf0, 0xf3, 0xac, 0x91, 0x92, 0x53, + 0xbf, 0xe7, 0x70, 0x2d, 0x52, 0xff, 0x02, 0xc7, 0x0b, 0xe4, 0x1d, 0x4e, 0x0a, 0x92, 0x07, 0x44, + 0xe1, 0x9f, 0x69, 0x7c, 0xbb, 0xe6, 0x43, 0x52, 0xf5, 0xa2, 0x3f, 0xc4, 0x96, 0x0c, 0x64, 0xb5, + 0x60, 0x22, 0xdf, 0xcc, 0xe4, 0x8f, 0x8b, 0x64, 0xa9, 0x58, 0x9e, 0x37, 0x4f, 0xb5, 0xe4, 0x4e, + 0xe9, 0x71, 0x38, 0x5e, 0x04, 0x0b, 0x7b, 0x72, 0xb5, 0x3a, 0xd8, 0x17, 0x31, 0x69, 0x68, 0xf9, + 0xd8, 0x43, 0xa8, 0x93, 0x74, 0x4a, 0x91, 0xfb, 0x42, 0xde, 0xd7, 0x49, 0x3e, 0xb2, 0x98, 0x57, + 0x2c, 0x44, 0xa9, 0x11, 0x33, 0xcb, 0x56, 0x35, 0x36, 0xe9, 0xdd, 0x2f, 0x9d, 0x83, 0x96, 0xa8, + 0x51, 0xf2, 0x23, 0x44, 0x0d, 0x3c, 0x0e, 0x75, 0x6a, 0x44, 0xd2, 0x93, 0xc8, 0x95, 0x79, 0x59, + 0xf7, 0x7f, 0xa2, 0xc5, 0x47, 0xbd, 0xb0, 0xf7, 0x70, 0x75, 0xb3, 0xed, 0x4f, 0x37, 0xd3, 0xab, + 0x09, 0x36, 0x3e, 0x33, 0xc9, 0xab, 0x90, 0x8b, 0xf5, 0x69, 0x9a, 0xc9, 0x76, 0x9c, 0x6d, 0x3f, + 0x8e, 0x22, 0x2f, 0xe4, 0x28, 0x06, 0xe2, 0x0e, 0xae, 0xb1, 0xdd, 0xf8, 0x6d, 0xa7, 0x99, 0x74, + 0xb3, 0x26, 0x6b, 0xb5, 0x08, 0x6d, 0x16, 0x1c, 0x3f, 0x03, 0x4b, 0x13, 0x45, 0xd2, 0xf4, 0x34, + 0x8d, 0x4e, 0x5b, 0x07, 0xdc, 0xde, 0x79, 0xf2, 0x85, 0x97, 0x3f, 0x44, 0x48, 0x5e, 0x57, 0x9f, + 0x85, 0x6b, 0xa3, 0x88, 0x2c, 0x6a, 0xa4, 0x79, 0x1c, 0x45, 0x8e, 0xd2, 0x89, 0xf4, 0xc6, 0xb0, + 0xe3, 0x79, 0xec, 0x79, 0x2e, 0x8e, 0xb9, 0x49, 0xda, 0x61, 0x02, 0xc7, 0xdf, 0x38, 0xc9, 0x56, + 0x64, 0xbe, 0xd0, 0x05, 0xc1, 0xf9, 0x6e, 0xa6, 0xb8, 0x99, 0x9c, 0x7a, 0x58, 0x68, 0xd7, 0x62, + 0x19, 0x7e, 0xd2, 0x92, 0x46, 0xb8, 0x56, 0xbd, 0x8d, 0x23, 0x42, 0x36, 0xfc, 0xc4, 0xd7, 0xec, + 0x7c, 0xf2, 0xfe, 0x7b, 0x33, 0x60, 0x91, 0xe1, 0x39, 0xc3, 0x49, 0xb1, 0x55, 0x97, 0x48, 0xd3, + 0x59, 0x33, 0x70, 0xf0, 0xf0, 0x50, 0x28, 0xde, 0x07, 0xde, 0x62, 0xde, 0x89, 0xe2, 0x55, 0x25, + 0xdd, 0x23, 0xea, 0xe5, 0x84, 0x5e, 0xd5, 0x80, 0xc1, 0x49, 0xbe, 0x6a, 0xcd, 0x4e, 0x9c, 0xe1, + 0xae, 0xac, 0x63, 0x3d, 0xf8, 0xbf, 0x17, 0xff, 0x3f, 0x8f, 0xe9, 0x48, 0xbf, 0x5c, 0xc1, 0x76, + 0xf0, 0xd6, 0x10, 0x77, 0x09, 0xe7, 0xdd, 0x75, 0x7f, 0xbf, 0x9f, 0xd6, 0x2c, 0x9a, 0xe3, 0xc3, + 0x8f, 0x79, 0x41, 0x8b, 0x45, 0xe0, 0x2c, 0x66, 0x2b, 0xf5, 0x1e, 0x75, 0xed, 0x32, 0x1c, 0x7e, + 0x93, 0x7c, 0xb8, 0x22, 0x95, 0xb6, 0x22, 0x0d, 0xf7, 0x80, 0x1e, 0x69, 0x22, 0xca, 0xe3, 0x48, + 0x9b, 0x3c, 0x60, 0x0c, 0xd5, 0x06, 0x6a, 0x91, 0x0f, 0x2a, 0x86, 0x2f, 0x7a, 0xe6, 0x85, 0xe6, + 0x06, 0xe6, 0xe2, 0x5d, 0xbe, 0x7b, 0x1e, 0xf1, 0x44, 0x78, 0x67, 0xb3, 0xcf, 0x23, 0x0e, 0x0a, + 0xef, 0xbe, 0x64, 0xca, 0xc2, 0xb5, 0xba, 0xc2, 0x99, 0x7b, 0xf6, 0xe7, 0x07, 0x9f, 0x87, 0x1c, + 0xe7, 0x4d, 0x67, 0x5f, 0x38, 0xf0, 0x3c, 0x18, 0xd7, 0xaf, 0x75, 0x4e, 0x3d, 0xfb, 0xdc, 0xbe, + 0xe7, 0x21, 0x77, 0x7d, 0xd7, 0xa5, 0xad, 0x83, 0xcf, 0x43, 0xde, 0xfa, 0x84, 0x64, 0xd4, 0x56, + 0xf3, 0x53, 0x8f, 0x27, 0x8c, 0x33, 0x89, 0xeb, 0x71, 0x7d, 0x9e, 0xef, 0x66, 0xd6, 0xe2, 0x2a, + 0xdb, 0x42, 0xd1, 0xc4, 0x64, 0xd3, 0xcc, 0xb9, 0x78, 0x8f, 0x7f, 0xf3, 0x2f, 0xa0, 0x24, 0xd1, + 0x4d, 0xda, 0x9c, 0xc7, 0xbb, 0x77, 0x92, 0x97, 0x63, 0x50, 0xcc, 0x69, 0xab, 0x10, 0xc2, 0x9d, + 0x4c, 0x7e, 0x91, 0x78, 0x45, 0x9c, 0xf1, 0x06, 0x5c, 0xd5, 0xad, 0xe4, 0x95, 0x20, 0x8d, 0x35, + 0x92, 0xcf, 0x64, 0x42, 0xfe, 0x52, 0x11, 0x1e, 0x20, 0x54, 0x7f, 0x0f, 0x79, 0x6f, 0x09, 0x1e, + 0xd3, 0x30, 0xf0, 0x44, 0x93, 0x73, 0x12, 0x17, 0xf0, 0x1c, 0x73, 0x01, 0xae, 0x4c, 0x2e, 0x80, + 0xfc, 0x47, 0xd0, 0xca, 0x4f, 0x51, 0xa2, 0x5d, 0x22, 0x86, 0x30, 0xeb, 0x03, 0x92, 0x56, 0x10, + 0xcf, 0x98, 0x42, 0x4d, 0x83, 0xd0, 0xa1, 0xcd, 0x18, 0x5a, 0x43, 0x2e, 0x00, 0xca, 0xe6, 0xe4, + 0x43, 0x28, 0xb0, 0x15, 0x4c, 0xc2, 0x4f, 0x0a, 0xfe, 0xea, 0xc1, 0x1a, 0x57, 0x30, 0xd5, 0x7c, + 0x07, 0x9f, 0xd1, 0x4b, 0x61, 0xc2, 0x03, 0xf2, 0xff, 0xa6, 0xc5, 0x5a, 0x26, 0x5d, 0x5b, 0xa9, + 0x9c, 0xeb, 0x48, 0xd3, 0x5b, 0x89, 0xe8, 0xde, 0x82, 0x0f, 0xd9, 0x47, 0x86, 0x83, 0x22, 0x0e, + 0xcb, 0x2d, 0x29, 0xda, 0xbb, 0xbc, 0x2d, 0x07, 0x69, 0xef, 0x92, 0x6f, 0x26, 0x90, 0xe6, 0x9a, + 0xf0, 0x2e, 0x92, 0xa1, 0x9b, 0x95, 0xc7, 0x31, 0x67, 0x43, 0xe0, 0xc6, 0xf5, 0xab, 0x12, 0xaf, + 0x01, 0x95, 0x1a, 0x97, 0xa8, 0xd4, 0xd8, 0xf9, 0x85, 0xe5, 0x30, 0x05, 0xa6, 0xcb, 0x45, 0x33, + 0x84, 0x5e, 0x61, 0xfe, 0x9d, 0x42, 0x7f, 0x30, 0x97, 0xd3, 0xf3, 0x64, 0x23, 0x5f, 0xad, 0x5a, + 0xd4, 0x62, 0xa6, 0xd5, 0xeb, 0xea, 0x7e, 0xdb, 0x62, 0x68, 0x14, 0xb3, 0x97, 0x35, 0xc7, 0xa4, + 0x49, 0x9a, 0x63, 0xc8, 0x63, 0x19, 0x36, 0x3e, 0x0f, 0xcb, 0xdb, 0x73, 0x70, 0x75, 0x5a, 0x53, + 0xf3, 0x7b, 0x13, 0x7c, 0xb3, 0x0b, 0xd7, 0x2a, 0x13, 0x3e, 0xb5, 0x64, 0x78, 0x77, 0xcc, 0x83, + 0x42, 0x70, 0xc2, 0x52, 0x6c, 0x59, 0x15, 0xb6, 0x6c, 0x29, 0x2c, 0x4e, 0x69, 0x88, 0x2d, 0x49, + 0xe9, 0x87, 0x45, 0xe8, 0x0e, 0x25, 0xd3, 0x99, 0xd8, 0x46, 0x4f, 0x4a, 0xab, 0xab, 0x4a, 0xa4, + 0xfa, 0x66, 0x62, 0x4b, 0xf3, 0x53, 0x39, 0xf2, 0xe4, 0x9c, 0xd4, 0xbd, 0x55, 0x4a, 0xa8, 0x9a, + 0x5e, 0xfe, 0xeb, 0x6b, 0x7a, 0x31, 0xc6, 0x64, 0x60, 0xd0, 0x1d, 0x14, 0x9d, 0x39, 0x1f, 0x7f, + 0x73, 0xc0, 0x86, 0xbf, 0xb9, 0x50, 0x80, 0xbf, 0xd8, 0xc2, 0x9a, 0x73, 0x08, 0xe5, 0x87, 0x55, + 0x6c, 0x73, 0xb1, 0x47, 0x10, 0x53, 0x60, 0xc0, 0xc4, 0x31, 0xb1, 0x85, 0x56, 0x34, 0xad, 0xf6, + 0x58, 0x5a, 0x15, 0x72, 0x0e, 0x81, 0xca, 0x55, 0x10, 0x46, 0x5e, 0xa1, 0x1e, 0x4a, 0xca, 0xbc, + 0x50, 0xbb, 0xff, 0x70, 0x25, 0x9c, 0x5d, 0x28, 0xf8, 0xb3, 0xe3, 0xdd, 0xe4, 0x0d, 0xa6, 0xe3, + 0xef, 0x6a, 0x0d, 0xa7, 0x9e, 0x0d, 0xd4, 0xcc, 0x7f, 0x1f, 0x4c, 0x0f, 0xea, 0x3c, 0x41, 0x79, + 0xb9, 0xa3, 0x2e, 0x10, 0x90, 0xeb, 0xb0, 0x2f, 0x7a, 0xcf, 0x94, 0x77, 0x7f, 0x2e, 0x45, 0x3a, + 0x94, 0xdd, 0x7d, 0xb1, 0x4a, 0x96, 0x36, 0xcb, 0x0e, 0xff, 0xd2, 0x59, 0x2d, 0xe5, 0xca, 0xf6, + 0x0e, 0xb0, 0x7d, 0x79, 0x68, 0x5d, 0xcc, 0xd0, 0x65, 0x91, 0x8d, 0x36, 0xa8, 0x35, 0xbc, 0x6e, + 0xe9, 0xd0, 0xed, 0x4e, 0x44, 0x4d, 0x91, 0xbe, 0xf8, 0xdf, 0xd5, 0x82, 0xac, 0x3f, 0xdd, 0x57, + 0x31, 0x6d, 0x4b, 0xf5, 0xee, 0x85, 0xcb, 0x8e, 0x36, 0x3e, 0x12, 0x09, 0x04, 0xfc, 0xd8, 0xff, + 0xec, 0x81, 0xc0, 0xd2, 0x6d, 0x47, 0x5e, 0x64, 0x8e, 0xed, 0x96, 0xe3, 0x89, 0x48, 0xcd, 0xae, + 0x55, 0x50, 0x12, 0xdd, 0xa8, 0x69, 0x3f, 0x6b, 0x31, 0xd7, 0x03, 0x7a, 0xd9, 0x89, 0xf0, 0xd2, + 0x2f, 0x66, 0xef, 0xe5, 0xf6, 0xb8, 0x09, 0x98, 0xee, 0x5a, 0x50, 0xc2, 0xd6, 0x0f, 0x0e, 0xa7, + 0x69, 0x53, 0x44, 0x2f, 0x45, 0x76, 0xba, 0x20, 0x7b, 0xd9, 0x11, 0x7b, 0x28, 0x9e, 0xf6, 0xbe, + 0x50, 0x22, 0xa2, 0xb2, 0xe3, 0xaa, 0x9d, 0x48, 0xc5, 0x4b, 0x99, 0x25, 0x74, 0xcf, 0x54, 0x7b, + 0xc0, 0x8e, 0xb6, 0xa9, 0xec, 0x85, 0x37, 0xa1, 0x7a, 0xe3, 0xed, 0x6b, 0x9b, 0xc6, 0xd7, 0x7e, + 0xf6, 0xe9, 0xba, 0x09, 0xd7, 0xe7, 0x2d, 0x64, 0x39, 0x85, 0xf7, 0x4f, 0xe3, 0xf5, 0x66, 0x7e, + 0xf7, 0x0c, 0xfb, 0xe2, 0x7d, 0x16, 0x9f, 0x73, 0xf9, 0x59, 0x78, 0xf3, 0xbd, 0x49, 0x78, 0xf3, + 0x25, 0x4b, 0x60, 0x04, 0xe7, 0x4e, 0x3b, 0xdc, 0x4b, 0x27, 0x32, 0x14, 0xd5, 0x86, 0x42, 0x14, + 0xee, 0xe5, 0xf3, 0xbe, 0x41, 0x7a, 0xab, 0x80, 0xb2, 0x9f, 0x9f, 0x86, 0xd4, 0xbc, 0x07, 0xdb, + 0xcc, 0xfc, 0xed, 0x70, 0x9c, 0x76, 0x12, 0xf8, 0x84, 0x8c, 0xfd, 0xfc, 0x0a, 0x8f, 0xb6, 0x1c, + 0x3f, 0xc6, 0x0e, 0xfc, 0xc5, 0x39, 0xf2, 0x23, 0x79, 0x6f, 0x42, 0x3b, 0xc1, 0x60, 0xdf, 0xbf, + 0x2f, 0x28, 0x49, 0x17, 0xe2, 0x35, 0xdb, 0xa0, 0x88, 0x38, 0x3c, 0x7e, 0x65, 0x3d, 0xf2, 0x0e, + 0x09, 0x6d, 0x45, 0xfe, 0x59, 0xae, 0x13, 0x1a, 0x36, 0xc4, 0x9a, 0xe6, 0x5f, 0x71, 0x41, 0xb8, + 0x85, 0x3c, 0xa6, 0x86, 0x37, 0xc5, 0x4c, 0x74, 0x22, 0x30, 0xfe, 0x54, 0xe3, 0x06, 0xd7, 0xa3, + 0x81, 0x16, 0xa6, 0xb8, 0xd3, 0x89, 0x13, 0x23, 0x7f, 0x5c, 0x48, 0x83, 0x8b, 0xb9, 0xc7, 0xb4, + 0xf3, 0x78, 0x85, 0xf5, 0x65, 0xf5, 0xaa, 0xa6, 0x26, 0xc5, 0x80, 0x4a, 0xbe, 0x1b, 0x27, 0x9b, + 0xc0, 0xcc, 0x94, 0xd3, 0xc7, 0x89, 0x2f, 0x54, 0xa9, 0x1f, 0x59, 0xa7, 0xb5, 0xa8, 0xbb, 0x15, + 0x57, 0xc8, 0x33, 0xb8, 0x53, 0xe8, 0xff, 0xf0, 0x19, 0xaf, 0xcb, 0xa5, 0xae, 0xfb, 0x39, 0x5e, + 0xe2, 0xd3, 0xa7, 0x91, 0x7e, 0x2f, 0x9d, 0xf9, 0x08, 0xad, 0x66, 0x9d, 0x1b, 0xd7, 0xf1, 0x0f, + 0x58, 0x5b, 0x94, 0xc6, 0xa6, 0x33, 0x42, 0xf6, 0xa9, 0x06, 0xf6, 0xff, 0x7d, 0x9a, 0x3c, 0xbd, + 0x53, 0x4b, 0x25, 0xbf, 0x6b, 0x2b, 0xeb, 0x68, 0x8e, 0x6b, 0xb9, 0xda, 0x74, 0xa9, 0x5c, 0x27, + 0xbe, 0x81, 0xd4, 0x0c, 0x39, 0xaf, 0xd3, 0xcc, 0xfd, 0xb0, 0x17, 0xdf, 0xcc, 0xb7, 0x2e, 0x60, + 0xab, 0xc0, 0xe5, 0x20, 0x47, 0x1e, 0x96, 0x02, 0x73, 0x71, 0xf5, 0x67, 0x3e, 0xe0, 0x19, 0x2d, + 0xf5, 0x5e, 0x91, 0xea, 0x12, 0xa9, 0x71, 0xd7, 0x44, 0x1e, 0xc2, 0x95, 0x88, 0x2d, 0x2d, 0xc0, + 0xfa, 0xef, 0x58, 0x85, 0x54, 0x41, 0x2f, 0x2d, 0xf6, 0xbd, 0x08, 0x6e, 0x69, 0xf1, 0x2d, 0x41, + 0xc8, 0xc6, 0xdf, 0x4e, 0x8a, 0x48, 0xd9, 0x01, 0x0b, 0xc4, 0x59, 0x4a, 0x99, 0x63, 0x31, 0xf6, + 0xcf, 0x81, 0x7f, 0x9e, 0xfa, 0x1f, 0xf0, 0xde, 0xad, 0x0e, 0xf4, 0x19, 0xd6, 0x91, 0x86, 0xc5, + 0xe4, 0xed, 0xac, 0x6b, 0x46, 0xc2, 0x46, 0xb1, 0xcf, 0x17, 0x87, 0x07, 0x6c, 0x10, 0x33, 0xee, + 0xce, 0x5e, 0x36, 0x24, 0x3b, 0x99, 0x47, 0x59, 0x15, 0x4f, 0x73, 0x28, 0x3e, 0xe6, 0x50, 0xf4, + 0x0c, 0x2b, 0x95, 0x43, 0x11, 0xb1, 0xc7, 0x3a, 0xab, 0x84, 0x87, 0x1d, 0x8d, 0xca, 0x39, 0x35, + 0x8f, 0xe2, 0x0b, 0x0e, 0x23, 0x8f, 0x12, 0x5e, 0xce, 0x23, 0xdd, 0x8f, 0x23, 0x6d, 0xaa, 0xdf, + 0x93, 0x1c, 0x68, 0x24, 0xed, 0x5a, 0xf6, 0x3a, 0x34, 0x91, 0xda, 0xe0, 0x9a, 0x51, 0x21, 0xa9, + 0x72, 0xb0, 0x9d, 0x3c, 0x84, 0x87, 0x89, 0x8f, 0xa0, 0xb5, 0x0a, 0x79, 0xb4, 0xfc, 0xb6, 0xe9, + 0x47, 0xb6, 0x83, 0x8c, 0x7c, 0x72, 0xbe, 0x9d, 0x78, 0x92, 0x45, 0x71, 0x10, 0x5a, 0xbc, 0x16, + 0x9c, 0x6b, 0xf6, 0x84, 0xec, 0xb2, 0x7b, 0x70, 0x94, 0xba, 0xc8, 0x9a, 0x9b, 0x79, 0x96, 0x27, + 0x91, 0xa6, 0xcd, 0x17, 0x91, 0xe9, 0xd3, 0x51, 0xbe, 0x0b, 0x81, 0x68, 0x1a, 0xfe, 0xa6, 0x62, + 0xdc, 0x73, 0x3c, 0x08, 0x92, 0x19, 0x9a, 0x99, 0x0f, 0xa6, 0x71, 0x5e, 0x91, 0xf2, 0xd4, 0x43, + 0x23, 0x8d, 0x72, 0x09, 0x73, 0xa2, 0xec, 0x35, 0x29, 0x49, 0xba, 0xc6, 0x66, 0xf6, 0x42, 0x1e, + 0x98, 0x1c, 0xf5, 0x1e, 0xf1, 0xab, 0x4a, 0xf3, 0x76, 0x8b, 0x2b, 0x9f, 0x8b, 0xb4, 0x5f, 0x1d, + 0x8b, 0x79, 0xe7, 0x78, 0x65, 0x19, 0x72, 0x35, 0x3e, 0x7d, 0x8b, 0xfe, 0x3e, 0xff, 0x59, 0x7f, + 0xa5, 0x1f, 0x31, 0x3c, 0x0f, 0x59, 0xc7, 0x15, 0x60, 0xf4, 0x9a, 0x34, 0xcd, 0xae, 0x5f, 0x0f, + 0xea, 0x03, 0x89, 0x29, 0x2d, 0xa6, 0x45, 0x01, 0x08, 0x28, 0x57, 0x23, 0x81, 0xd0, 0xbe, 0xd5, + 0x7f, 0x57, 0x9b, 0x75, 0xe6, 0x1f, 0x6c, 0x59, 0xb5, 0x86, 0x86, 0x47, 0x02, 0xfa, 0x36, 0x9d, + 0x2c, 0x49, 0xf7, 0x4a, 0xa6, 0x45, 0x89, 0x35, 0x63, 0x7b, 0x12, 0xcb, 0x2c, 0x92, 0x0e, 0xf9, + 0x01, 0xd3, 0xe1, 0x37, 0x63, 0x86, 0x87, 0x2c, 0xb2, 0xfe, 0x75, 0x4b, 0x44, 0x7f, 0xa4, 0x4b, + 0x5a, 0xcc, 0x74, 0xe7, 0x58, 0xdd, 0x6f, 0xab, 0xd8, 0xb3, 0x7b, 0x15, 0x45, 0x60, 0x77, 0xd8, + 0x69, 0x75, 0x44, 0x8a, 0x8f, 0x57, 0xc9, 0xf1, 0x5d, 0x13, 0xa8, 0x2d, 0x72, 0xa5, 0x5b, 0x54, + 0xae, 0xb5, 0x68, 0x79, 0x66, 0x8b, 0xde, 0xbe, 0xa6, 0x45, 0x44, 0x91, 0xcf, 0x3c, 0xbb, 0x1a, + 0x59, 0x1f, 0xc8, 0x6e, 0x78, 0x24, 0x0e, 0x6d, 0xe4, 0xa3, 0xb6, 0x48, 0xba, 0x77, 0x8d, 0xb2, + 0xa7, 0x2f, 0x96, 0x2b, 0x2c, 0x4e, 0x0a, 0x0c, 0x07, 0x7c, 0xbb, 0x11, 0x83, 0xdc, 0xfa, 0xff, + 0x7c, 0x21, 0xb1, 0x36, 0xd2, 0xb5, 0xab, 0x6b, 0xe9, 0x49, 0xe1, 0x6d, 0xde, 0x5c, 0xa5, 0xd9, + 0x61, 0x39, 0x54, 0x2e, 0xd1, 0x4e, 0x1c, 0x23, 0x49, 0x7e, 0xdf, 0x33, 0x89, 0xb1, 0x04, 0x9d, + 0x11, 0x5b, 0xca, 0xe7, 0xd2, 0xed, 0xba, 0x9d, 0x5d, 0x4d, 0x66, 0x01, 0x5d, 0xe6, 0x61, 0x0e, + 0xb3, 0x4f, 0x38, 0x1f, 0xaf, 0x64, 0x28, 0x2f, 0xe0, 0xaf, 0x95, 0x7f, 0xf3, 0xf8, 0xd7, 0xe2, + 0x25, 0x7d, 0xf4, 0x99, 0x38, 0x36, 0x33, 0x69, 0x07, 0xfc, 0xd3, 0x8d, 0xec, 0xdf, 0x06, 0x60, + 0xd7, 0x5d, 0x0f, 0x40, 0x3e, 0x78, 0xf0, 0xd7, 0x0a, 0x25, 0x9c, 0xef, 0x01, 0x30, 0xa3, 0xb8, + 0x89, 0xb9, 0x4a, 0xf1, 0xdb, 0x7d, 0xc3, 0x15, 0x70, 0xb6, 0x4e, 0xec, 0x22, 0x1d, 0xeb, 0xa2, + 0x55, 0x87, 0xa0, 0x7e, 0xea, 0x1f, 0x02, 0xfa, 0xf9, 0xe7, 0x78, 0xd5, 0xa9, 0x91, 0x5b, 0x70, + 0xd5, 0xa9, 0xae, 0x14, 0xeb, 0x8e, 0x8e, 0xd6, 0x1d, 0x7b, 0x24, 0xae, 0x0c, 0x3c, 0x1c, 0xab, + 0x64, 0xea, 0x5f, 0xf6, 0xd6, 0x7e, 0xe7, 0x5c, 0x29, 0x37, 0x50, 0x23, 0xdb, 0x1d, 0x5f, 0xde, + 0x4f, 0xeb, 0xce, 0x2d, 0xb2, 0xd1, 0x0a, 0xb5, 0xfa, 0x5f, 0xde, 0x82, 0x3d, 0xa0, 0x75, 0xe7, + 0x61, 0x6d, 0xdd, 0x51, 0xd7, 0x95, 0x63, 0xb8, 0xee, 0x54, 0xe3, 0xba, 0x83, 0x23, 0x35, 0x50, + 0xbd, 0x74, 0x5b, 0xd9, 0x4d, 0xc7, 0x5f, 0x04, 0xea, 0x95, 0xe5, 0x58, 0x22, 0x12, 0xd8, 0x89, + 0xf8, 0x13, 0x7d, 0x3c, 0x83, 0x6b, 0x63, 0x2e, 0x4c, 0x1d, 0x3d, 0x93, 0x74, 0x87, 0x09, 0x62, + 0x9e, 0x36, 0xd2, 0x69, 0xcb, 0xf7, 0xea, 0xf0, 0xd7, 0xca, 0xbf, 0x79, 0xfc, 0x6b, 0x21, 0xcb, + 0x57, 0xc4, 0x54, 0x33, 0xf3, 0x63, 0x7b, 0xae, 0xd2, 0xec, 0x2c, 0xd4, 0xac, 0x91, 0x88, 0xe6, + 0xf1, 0xee, 0x2c, 0xd2, 0x3f, 0x84, 0x7c, 0x05, 0xcd, 0x2b, 0xd7, 0xa2, 0xdd, 0xc2, 0x82, 0xe1, + 0x0a, 0xd6, 0x4e, 0xb0, 0x14, 0xde, 0x3e, 0xd5, 0xd1, 0x27, 0xdf, 0x73, 0x88, 0x1d, 0xd5, 0x67, + 0xab, 0xcb, 0x75, 0xa1, 0x57, 0x25, 0x7f, 0xcd, 0xe5, 0x0a, 0x60, 0xdd, 0xe8, 0xec, 0x38, 0x04, + 0x0c, 0x88, 0x8d, 0x79, 0x38, 0xea, 0xdb, 0xc1, 0x14, 0x35, 0xba, 0x75, 0xef, 0xbe, 0xd0, 0x97, + 0x1d, 0x49, 0x34, 0xae, 0xdf, 0x95, 0x58, 0x79, 0x3e, 0x50, 0x53, 0x85, 0xd2, 0x16, 0x59, 0x9d, + 0xb9, 0x16, 0x35, 0xac, 0x97, 0x02, 0x55, 0x7a, 0x59, 0x6f, 0xd9, 0xef, 0x33, 0xf5, 0xd7, 0xf2, + 0x8e, 0xeb, 0x95, 0x36, 0x90, 0x97, 0x96, 0xe4, 0xfe, 0xe7, 0x8b, 0xa4, 0x6d, 0xe9, 0x5e, 0x8c, + 0x65, 0x3c, 0x16, 0x6b, 0x60, 0x9d, 0xd2, 0xf0, 0x9a, 0x29, 0x83, 0x6b, 0x0b, 0xaa, 0x94, 0xc4, + 0xa9, 0x7f, 0x94, 0xb2, 0x7f, 0xfd, 0xba, 0x14, 0x28, 0x98, 0x52, 0x9b, 0xfd, 0xd5, 0xb9, 0xe0, + 0x95, 0x1d, 0x6b, 0xa0, 0xe0, 0x0b, 0x07, 0x12, 0x31, 0xc3, 0x06, 0x5c, 0xd3, 0x0b, 0xb0, 0x93, + 0x6f, 0x58, 0xd6, 0xe8, 0xf6, 0x10, 0x6c, 0x1f, 0x4b, 0xc1, 0xb6, 0xaf, 0xd2, 0xf4, 0x54, 0xed, + 0x1e, 0xaa, 0xe1, 0x48, 0xe3, 0xfa, 0x48, 0x17, 0x51, 0x07, 0x86, 0x70, 0xd7, 0xca, 0x8d, 0x24, + 0x83, 0x10, 0x7c, 0xdf, 0x1a, 0x64, 0x6d, 0x00, 0xd2, 0xb0, 0x48, 0x59, 0x9d, 0xa5, 0x7c, 0x6d, + 0x99, 0x65, 0xb8, 0x1a, 0x15, 0x9e, 0xbb, 0x54, 0xce, 0xc5, 0x2c, 0xc5, 0x55, 0xac, 0xb4, 0xd1, + 0xde, 0x1c, 0xd2, 0x1c, 0x43, 0x7a, 0x35, 0x1f, 0xeb, 0x17, 0x2b, 0x8c, 0x16, 0xdf, 0xe6, 0xcf, + 0x58, 0xd0, 0xa7, 0x7c, 0x09, 0x38, 0x33, 0x2c, 0xa3, 0x49, 0x4e, 0xc7, 0xd5, 0xeb, 0xba, 0x5e, + 0x03, 0x74, 0x92, 0x90, 0x22, 0x91, 0xcb, 0xce, 0x0b, 0xfc, 0x4c, 0x48, 0x2c, 0x15, 0x85, 0xaa, + 0x07, 0x47, 0xf2, 0x7c, 0x9e, 0xa3, 0xfa, 0x4c, 0x9e, 0xe6, 0xaa, 0x82, 0xe4, 0xef, 0x9b, 0xa4, + 0x60, 0x3d, 0xc5, 0xd0, 0x34, 0x6b, 0xde, 0xda, 0x59, 0x12, 0x9f, 0x46, 0xa9, 0xb4, 0x6f, 0xaf, + 0x7a, 0x77, 0x6c, 0xce, 0xf0, 0x8d, 0x3b, 0x4d, 0x7c, 0xc1, 0x1e, 0x1e, 0x9b, 0x55, 0x1f, 0xcc, + 0xc2, 0x93, 0xfa, 0x05, 0x7a, 0x33, 0x13, 0xd3, 0xc1, 0x8c, 0xbf, 0x97, 0x85, 0xe7, 0x72, 0xfc, + 0x2e, 0xc1, 0x67, 0x87, 0xb4, 0x66, 0x9c, 0x66, 0xcf, 0xbc, 0x62, 0x0d, 0xb4, 0x48, 0xfe, 0x99, + 0x82, 0x4b, 0x6e, 0x49, 0x5b, 0x62, 0xa7, 0x34, 0xab, 0x48, 0x76, 0x3f, 0xf3, 0x0d, 0xb6, 0x96, + 0xa1, 0xc8, 0x25, 0xe4, 0x23, 0x5a, 0xe0, 0xd7, 0xc4, 0x68, 0x12, 0x33, 0x85, 0x67, 0x53, 0x9b, + 0x2a, 0x15, 0xb7, 0xb3, 0x54, 0xcc, 0x76, 0x26, 0x74, 0x3e, 0xc9, 0x1a, 0x5c, 0x7f, 0xc2, 0xa3, + 0x81, 0x46, 0xc9, 0x11, 0xaf, 0x6d, 0x48, 0xcd, 0x0b, 0x53, 0x6b, 0x8e, 0x25, 0x96, 0x3b, 0xd1, + 0x27, 0x39, 0xd2, 0x6c, 0xd2, 0xe7, 0xbd, 0x86, 0x6e, 0x73, 0x3c, 0x0a, 0x49, 0x52, 0x63, 0x52, + 0xb0, 0xec, 0x5a, 0x0c, 0x66, 0xd5, 0x27, 0x6e, 0x31, 0x98, 0x70, 0x66, 0x18, 0x85, 0x77, 0x5b, + 0xa7, 0xf0, 0x75, 0x6b, 0x10, 0x4f, 0x52, 0x0d, 0x4a, 0xad, 0x1f, 0xf0, 0x5e, 0x53, 0x77, 0xcc, + 0xbe, 0x2c, 0x87, 0xda, 0x3d, 0xd0, 0x1d, 0x2d, 0x93, 0x2d, 0xac, 0x27, 0x93, 0x8f, 0xcf, 0x06, + 0x7c, 0x76, 0xc8, 0x45, 0x96, 0x6d, 0x30, 0x4d, 0x2e, 0xf4, 0x6d, 0x83, 0x1c, 0x39, 0x1f, 0xef, + 0xa7, 0xde, 0x42, 0x5a, 0x82, 0x3a, 0xfc, 0x9d, 0x06, 0x7a, 0xd9, 0x20, 0x6d, 0xa3, 0xdd, 0xe0, + 0x42, 0x35, 0x36, 0x86, 0x4b, 0x6d, 0x0b, 0xed, 0x64, 0xfd, 0x87, 0x2a, 0x47, 0x0b, 0x0b, 0x55, + 0xda, 0x6f, 0xf5, 0xb5, 0x70, 0x5b, 0x9e, 0x14, 0x6d, 0xa9, 0x68, 0x61, 0x7f, 0x5e, 0x4f, 0xaa, + 0x6d, 0x39, 0x7f, 0x4d, 0x5b, 0xe6, 0x4c, 0x6a, 0x4b, 0x89, 0xec, 0x22, 0x8d, 0x1c, 0xfa, 0xf5, + 0x59, 0x64, 0x7b, 0x1b, 0xe4, 0x59, 0x48, 0x8a, 0xe5, 0xd9, 0xa2, 0x7b, 0xb7, 0x6f, 0xb8, 0x8b, + 0xf7, 0x93, 0x51, 0x5a, 0x97, 0x8d, 0x92, 0x45, 0xd0, 0x6d, 0x6a, 0x97, 0x38, 0x8d, 0x17, 0xd1, + 0xc0, 0xec, 0xda, 0x29, 0xd4, 0x7c, 0xda, 0x7f, 0xa0, 0x93, 0x43, 0xb2, 0x9b, 0xa0, 0x88, 0x3b, + 0x79, 0x1e, 0x98, 0x6e, 0xd6, 0x41, 0x56, 0xcc, 0x8c, 0xbf, 0x39, 0x51, 0xd0, 0x45, 0xe9, 0x74, + 0x87, 0xac, 0x36, 0x56, 0xeb, 0x77, 0x75, 0xc5, 0xe4, 0x65, 0x39, 0xc8, 0x8b, 0x77, 0x61, 0xfa, + 0x7d, 0xb2, 0x75, 0x75, 0xd6, 0x2e, 0xf2, 0xe6, 0xda, 0x4f, 0x7e, 0xec, 0x31, 0xa5, 0x8e, 0xac, + 0x6f, 0xc9, 0xca, 0x80, 0x4e, 0x62, 0x2b, 0x96, 0x03, 0x9d, 0x69, 0x9a, 0x9c, 0x64, 0x93, 0x81, + 0xf8, 0xd4, 0xf1, 0x95, 0x63, 0xdb, 0x58, 0x5b, 0xe3, 0x5c, 0xf1, 0x02, 0xe5, 0xc2, 0xec, 0x90, + 0x72, 0x79, 0x76, 0x9d, 0xf2, 0xd1, 0x6c, 0x61, 0x0d, 0xf1, 0x09, 0xe1, 0x88, 0x3e, 0x00, 0x8a, + 0x5c, 0x79, 0xc3, 0xef, 0x8b, 0xfe, 0xdc, 0xf7, 0xb3, 0x03, 0x4a, 0x92, 0xce, 0x0b, 0x6f, 0x58, + 0xc2, 0x57, 0xe5, 0x82, 0x1b, 0xbe, 0x93, 0xfe, 0x5c, 0xe9, 0x64, 0xab, 0x21, 0x07, 0xf1, 0xbb, + 0x5c, 0xe4, 0x03, 0x72, 0xb1, 0x1c, 0x73, 0xa4, 0xfa, 0xd5, 0x7d, 0x58, 0x56, 0xce, 0x2f, 0x71, + 0x95, 0x91, 0xb4, 0x72, 0x6e, 0x4d, 0x95, 0x13, 0xc2, 0x72, 0x02, 0x58, 0x4e, 0x8d, 0xf2, 0x11, + 0x7b, 0x03, 0xbf, 0x82, 0x25, 0x7e, 0x92, 0xe1, 0x03, 0xe1, 0x5c, 0x7a, 0x3f, 0x97, 0x63, 0x8a, + 0x4c, 0xd5, 0x28, 0x88, 0x1a, 0x53, 0x44, 0x9d, 0x19, 0x29, 0x6b, 0xbe, 0x59, 0x62, 0x87, 0x90, + 0xf4, 0x0e, 0x9c, 0x75, 0x52, 0x50, 0xdd, 0x9d, 0xb1, 0x91, 0xbf, 0x8c, 0x98, 0x19, 0xd7, 0xd5, + 0x6e, 0x1c, 0x81, 0x4b, 0xec, 0x0f, 0x43, 0x8c, 0x55, 0x22, 0x16, 0x5e, 0x96, 0x43, 0xbe, 0x1a, + 0xa2, 0xa0, 0xdf, 0x28, 0xe7, 0xe1, 0x58, 0x25, 0x62, 0x4d, 0x6d, 0x06, 0x7e, 0x26, 0x3b, 0x88, + 0xc5, 0x34, 0xda, 0xa4, 0xeb, 0x44, 0x1e, 0xc4, 0xe9, 0x24, 0xbf, 0x0c, 0x57, 0xf1, 0x72, 0x37, + 0x96, 0x2e, 0xfa, 0x62, 0x92, 0x82, 0x48, 0xdd, 0xf2, 0x3b, 0xec, 0x98, 0xb7, 0xe1, 0x73, 0xe6, + 0xbd, 0x0d, 0xf3, 0x3a, 0x3e, 0x67, 0x5e, 0x07, 0xd9, 0x9c, 0x52, 0x5b, 0x99, 0x27, 0x08, 0x2d, + 0xcb, 0x59, 0xad, 0xdb, 0x45, 0x9e, 0x9e, 0xcf, 0xca, 0x79, 0x6d, 0x59, 0x98, 0x22, 0xaf, 0x36, + 0xf0, 0xf3, 0x51, 0xcc, 0xb7, 0xf5, 0x73, 0x96, 0x39, 0x13, 0xe5, 0xe7, 0xcf, 0x97, 0xd3, 0x2d, + 0xbb, 0x3e, 0x67, 0xce, 0xe2, 0x63, 0x3f, 0x57, 0xfd, 0xbb, 0x87, 0x95, 0x11, 0xc4, 0x8e, 0x63, + 0x38, 0xa2, 0x27, 0x70, 0x64, 0x4f, 0xce, 0x9e, 0xaf, 0x9c, 0x9a, 0x3d, 0x57, 0x39, 0xad, 0xf9, + 0x88, 0x96, 0x1b, 0x3f, 0x67, 0x89, 0x33, 0x32, 0x4b, 0x24, 0x8f, 0xf1, 0xe4, 0x83, 0x1e, 0x4b, + 0x3e, 0x81, 0x25, 0x9f, 0x22, 0xcd, 0x20, 0x2c, 0xf9, 0x0c, 0x96, 0x7c, 0x96, 0x24, 0x34, 0xd2, + 0x5f, 0x55, 0x3d, 0x35, 0x0f, 0xa7, 0x23, 0x9d, 0x90, 0x97, 0x64, 0xd6, 0xd3, 0x48, 0x2e, 0xd4, + 0x28, 0x9c, 0x99, 0xce, 0x68, 0x91, 0xaa, 0x6c, 0x66, 0xaa, 0x22, 0x28, 0x5e, 0x9e, 0x78, 0x1e, + 0xee, 0x19, 0x7e, 0x1e, 0x0c, 0x8c, 0x7b, 0x8b, 0x3c, 0x41, 0xfb, 0x4a, 0xd5, 0xbb, 0x72, 0x9f, + 0x1a, 0xa5, 0x8f, 0x75, 0xe6, 0x48, 0x97, 0x0c, 0xd7, 0x40, 0x75, 0x7f, 0x98, 0xf4, 0x3b, 0xa8, + 0x07, 0x38, 0xef, 0x4d, 0x0e, 0xab, 0x9b, 0xbc, 0x95, 0x07, 0x69, 0xa7, 0x63, 0x75, 0xe1, 0x51, + 0xf2, 0x76, 0x2f, 0x74, 0x3a, 0x8f, 0xcd, 0xbd, 0xa8, 0x24, 0x19, 0x2a, 0x73, 0x95, 0x13, 0xf3, + 0x68, 0xa7, 0x79, 0x81, 0xaa, 0x39, 0x49, 0xed, 0x9e, 0x8f, 0xf2, 0x5e, 0x48, 0xd5, 0x8c, 0x6b, + 0x61, 0xad, 0x14, 0xb5, 0xf5, 0x74, 0x12, 0x93, 0xb6, 0x31, 0xd4, 0xec, 0x9b, 0x90, 0x5a, 0x92, + 0xa6, 0x77, 0x90, 0xec, 0xfa, 0x3d, 0xf3, 0x7f, 0x43, 0xd1, 0x19, 0xee, 0x46, 0x78, 0x4a, 0x6d, + 0x46, 0xb2, 0xc6, 0xd4, 0x95, 0xb5, 0xe7, 0xed, 0x24, 0xcc, 0xfd, 0x29, 0xca, 0xa6, 0x26, 0x47, + 0x09, 0xce, 0xdc, 0x12, 0x30, 0x2f, 0x50, 0xbd, 0xf5, 0xaa, 0x3d, 0x47, 0xc9, 0xc8, 0xe9, 0x67, + 0xda, 0x9e, 0x27, 0x9e, 0xde, 0x1e, 0x7c, 0xfb, 0x12, 0x18, 0x2a, 0x58, 0x33, 0x21, 0x58, 0x7d, + 0x84, 0xfe, 0x23, 0x7f, 0xf4, 0xab, 0xfd, 0x55, 0x81, 0xa7, 0x5f, 0x0d, 0x04, 0x7c, 0xd5, 0xa4, + 0xe5, 0x5e, 0x55, 0x8f, 0xb0, 0x3c, 0x60, 0xb3, 0x16, 0x7a, 0x40, 0x57, 0xe4, 0x01, 0xbd, 0xc5, + 0x03, 0x59, 0x8d, 0xeb, 0xc3, 0x24, 0xf5, 0x3d, 0x63, 0x36, 0x28, 0x4a, 0x34, 0x37, 0x3f, 0xf1, + 0xc5, 0x79, 0xa0, 0xfb, 0x62, 0x2d, 0x52, 0x79, 0x80, 0xbe, 0x82, 0xe9, 0xc4, 0x69, 0x82, 0x22, + 0xac, 0x71, 0x91, 0xf6, 0x66, 0xf7, 0x77, 0xe1, 0x2a, 0x69, 0x60, 0xb9, 0x0c, 0x4e, 0x75, 0x1d, + 0x49, 0x18, 0xc9, 0xfa, 0x37, 0x71, 0xaa, 0xeb, 0xb8, 0x2e, 0x7f, 0x6d, 0x41, 0x31, 0xe8, 0xf4, + 0x0f, 0xa9, 0x3e, 0x1d, 0xb2, 0x7f, 0x9c, 0xf0, 0x4e, 0xb9, 0x7e, 0xce, 0x2f, 0xce, 0x05, 0x1d, + 0xe6, 0xd5, 0xa7, 0xfc, 0x3f, 0x64, 0x3f, 0x9d, 0xf0, 0x1a, 0x6f, 0x98, 0x57, 0x1f, 0x28, 0x86, + 0xac, 0x48, 0x4d, 0xe3, 0xa3, 0xbb, 0x48, 0x17, 0x01, 0x94, 0xc0, 0x3b, 0x1f, 0x42, 0xd9, 0xdb, + 0x87, 0x90, 0xf7, 0xc4, 0x31, 0x6a, 0x01, 0xdd, 0x53, 0xc8, 0xcb, 0x9e, 0xf9, 0x3f, 0x01, 0xa9, + 0x4d, 0x35, 0x81, 0x1a, 0x01, 0x27, 0xb6, 0x09, 0xa8, 0x60, 0xcf, 0xeb, 0xf9, 0x05, 0x56, 0x84, + 0x92, 0xae, 0xca, 0x5f, 0x98, 0x86, 0x57, 0x36, 0xc2, 0xeb, 0xac, 0x39, 0x1b, 0xe1, 0x25, 0x59, + 0x8d, 0xef, 0xe5, 0xe8, 0xf5, 0xca, 0xa9, 0xb3, 0xa6, 0x5e, 0xc8, 0xef, 0x3e, 0x9f, 0xeb, 0xcb, + 0xd5, 0x83, 0x72, 0x75, 0x3d, 0x20, 0x04, 0x89, 0xa7, 0x1c, 0xb4, 0x4e, 0x2f, 0x0d, 0x14, 0x21, + 0x5c, 0xf2, 0xf5, 0x67, 0xa7, 0xe9, 0xb3, 0xa0, 0xd0, 0x3a, 0xe5, 0x83, 0x9c, 0xde, 0xac, 0xf2, + 0xa9, 0xef, 0x4d, 0xd3, 0x4f, 0xc1, 0x55, 0x60, 0x6d, 0x1a, 0xba, 0x76, 0x94, 0x69, 0x2c, 0x59, + 0x4f, 0x0e, 0xb2, 0x3d, 0x55, 0x35, 0x5b, 0x1c, 0x94, 0x51, 0x6b, 0x1d, 0xfe, 0x14, 0x9c, 0xf4, + 0x0c, 0xa7, 0x6c, 0x4a, 0xf5, 0xc0, 0xa9, 0x75, 0x27, 0x12, 0xe4, 0xcf, 0x02, 0xe1, 0xb4, 0x6e, + 0xc4, 0xe8, 0xcb, 0xed, 0x84, 0x42, 0xc0, 0x3c, 0x53, 0xd2, 0x79, 0x0a, 0xf4, 0xef, 0xdd, 0xa4, + 0xcf, 0x56, 0x4e, 0x79, 0x72, 0x30, 0xef, 0x23, 0x5a, 0xde, 0xa3, 0xc6, 0xb3, 0xd3, 0x1e, 0xc9, + 0xca, 0x5f, 0x7b, 0x3e, 0xc7, 0x09, 0xa7, 0x7a, 0x84, 0xef, 0x0b, 0x4c, 0xef, 0x39, 0x99, 0x45, + 0x2d, 0xea, 0x9d, 0xf2, 0xc5, 0x00, 0x32, 0x73, 0xaa, 0xf7, 0x8b, 0x48, 0x70, 0xf1, 0xa3, 0xbb, + 0x97, 0x13, 0xd4, 0xc7, 0x47, 0xcb, 0x75, 0x0c, 0xf7, 0x0f, 0xa1, 0x02, 0xb9, 0x52, 0x9c, 0xd9, + 0x2d, 0x52, 0x20, 0x58, 0x9a, 0x25, 0x9f, 0x42, 0xde, 0x24, 0x84, 0x72, 0x6b, 0x90, 0x34, 0x47, + 0x84, 0xcc, 0xaa, 0x5a, 0x32, 0x1d, 0xce, 0xb0, 0x69, 0xfa, 0xd3, 0x74, 0xdd, 0xfa, 0xdf, 0xa0, + 0xeb, 0xa4, 0xe3, 0x8c, 0xf3, 0x16, 0xa9, 0x50, 0x1e, 0xe9, 0x6b, 0x92, 0xcc, 0x40, 0x31, 0x07, + 0xca, 0x9a, 0xc1, 0x4c, 0x94, 0x68, 0x02, 0x5d, 0xff, 0x7c, 0x79, 0x05, 0x5d, 0xff, 0x7c, 0x79, + 0xff, 0x6b, 0x74, 0xfd, 0xf3, 0x95, 0xe9, 0x91, 0x23, 0x9f, 0x33, 0xe7, 0x2c, 0xa4, 0xeb, 0x9f, + 0x2f, 0x67, 0x49, 0x8a, 0x0a, 0x2f, 0x50, 0x46, 0x66, 0x87, 0x99, 0xae, 0x1f, 0x27, 0xad, 0xb0, + 0xeb, 0xd0, 0xf5, 0xcf, 0x57, 0xe2, 0x8c, 0x1b, 0x95, 0x88, 0xf4, 0x9d, 0xa2, 0xec, 0x7d, 0x4e, + 0xba, 0x3e, 0x81, 0xa2, 0x9b, 0x27, 0x51, 0xf4, 0xdc, 0xc9, 0x14, 0x9d, 0xed, 0x10, 0x92, 0xff, + 0x05, 0xba, 0xce, 0x3d, 0x20, 0x6d, 0x7e, 0xe4, 0x8f, 0x4d, 0x6e, 0xeb, 0x35, 0x74, 0x7d, 0x2e, + 0xd3, 0xf5, 0xab, 0x4c, 0xd7, 0xb1, 0xed, 0x2a, 0x8d, 0x67, 0x9d, 0xe7, 0xff, 0x0a, 0x5d, 0x47, + 0xfc, 0x26, 0x7d, 0x35, 0x9f, 0x33, 0x83, 0xdb, 0x74, 0xcc, 0x67, 0x1f, 0x81, 0xb8, 0x9a, 0x30, + 0x26, 0xcc, 0x79, 0xd0, 0xf0, 0x32, 0xe2, 0xae, 0xea, 0x49, 0x0a, 0xe0, 0x10, 0xca, 0x1c, 0x36, + 0x6e, 0x19, 0x72, 0x57, 0xc8, 0x59, 0xe5, 0x57, 0xa0, 0x74, 0x5c, 0x89, 0x92, 0x5c, 0x15, 0x4a, + 0xc6, 0x0e, 0xe1, 0xa1, 0x9e, 0x38, 0xb6, 0xfc, 0xa2, 0x2a, 0x70, 0xca, 0xf7, 0x7c, 0xde, 0xdc, + 0x0f, 0xde, 0x2e, 0xbb, 0x3f, 0x77, 0x5e, 0xd7, 0xc9, 0xe7, 0x59, 0xe7, 0xfb, 0x04, 0xf6, 0x31, + 0x15, 0x19, 0x11, 0xfb, 0x4f, 0x3a, 0x81, 0x17, 0x70, 0xec, 0x2e, 0xcd, 0x0e, 0x0a, 0x9e, 0x0e, + 0x61, 0x93, 0xb2, 0x55, 0x56, 0x39, 0xba, 0x13, 0xd7, 0x70, 0x74, 0xea, 0x7e, 0xa4, 0xe0, 0xe8, + 0xcc, 0x49, 0x65, 0x6f, 0x06, 0x64, 0x2a, 0x6f, 0x00, 0x19, 0x9a, 0x35, 0xf7, 0x2c, 0x33, 0x8b, + 0x93, 0x65, 0x9c, 0x27, 0x61, 0xd9, 0xca, 0xd0, 0x5a, 0x8d, 0x29, 0x3c, 0xcb, 0x75, 0xe4, 0xf1, + 0x6f, 0x4f, 0x15, 0xd6, 0x84, 0x5c, 0xa8, 0xad, 0x0c, 0x7b, 0x83, 0x3d, 0xb2, 0x62, 0x8f, 0xf2, + 0x70, 0x9d, 0x36, 0x79, 0x10, 0x37, 0xe7, 0x50, 0xaf, 0x96, 0x83, 0xd9, 0xb5, 0x9c, 0xbd, 0x62, + 0x1b, 0xa8, 0x67, 0x71, 0xaf, 0x1c, 0xfd, 0x2f, 0x7f, 0xe3, 0x93, 0x4b, 0xff, 0xcb, 0xdf, 0xdc, + 0x31, 0xfc, 0x3c, 0xc7, 0x6d, 0x60, 0x08, 0x16, 0xd7, 0x21, 0xd6, 0x10, 0xf4, 0xe6, 0x21, 0xd6, + 0xd4, 0x2a, 0x97, 0xe4, 0xfa, 0x1b, 0x95, 0x47, 0xa3, 0x40, 0xa3, 0x51, 0xe2, 0x9a, 0x54, 0x5e, + 0xe9, 0x35, 0xe5, 0xcd, 0x13, 0xa3, 0x81, 0xe5, 0x5e, 0x42, 0x6c, 0xfd, 0x08, 0x47, 0xe4, 0x13, + 0x1c, 0x11, 0xe2, 0xff, 0x47, 0x91, 0xcf, 0x4e, 0xce, 0xae, 0x57, 0xc6, 0x3f, 0xdf, 0x88, 0x2c, + 0x49, 0x8a, 0xc8, 0x3b, 0x38, 0x22, 0x7b, 0xb5, 0x68, 0x7b, 0x13, 0x25, 0xa3, 0x14, 0x1d, 0x7b, + 0x30, 0x63, 0x44, 0xce, 0xc9, 0xf9, 0x3c, 0x22, 0x00, 0xfb, 0x53, 0x63, 0x32, 0x82, 0x14, 0x32, + 0x77, 0xf6, 0x72, 0x70, 0x2b, 0xfb, 0xf1, 0xd7, 0xa5, 0xbc, 0x36, 0x9b, 0x22, 0xf5, 0x0d, 0xe1, + 0xaf, 0x43, 0x39, 0xc0, 0xba, 0xa3, 0x83, 0x48, 0x41, 0x0c, 0xd8, 0x6b, 0xbb, 0xd3, 0x05, 0x45, + 0x2e, 0x17, 0x14, 0x90, 0x16, 0xb4, 0x07, 0x21, 0x80, 0x50, 0xcc, 0x23, 0xcd, 0x53, 0x92, 0x2d, + 0x66, 0x93, 0xd6, 0xdf, 0xcb, 0x1e, 0xb5, 0xff, 0x24, 0x51, 0xc4, 0xbf, 0x46, 0xf2, 0xd7, 0xff, + 0x95, 0x92, 0xcb, 0x10, 0x8f, 0x06, 0xfe, 0xaf, 0x94, 0x7c, 0xa7, 0x7c, 0xcf, 0xff, 0x95, 0x72, + 0xcb, 0x87, 0xb7, 0x31, 0x2e, 0x1c, 0x44, 0x5c, 0xe0, 0x18, 0xa8, 0xb3, 0xc9, 0x77, 0xff, 0x31, + 0x94, 0xac, 0x8e, 0xcf, 0x26, 0xfe, 0x79, 0x9e, 0x72, 0x12, 0xb1, 0x8c, 0xa8, 0x37, 0x45, 0xe6, + 0x3e, 0x8b, 0xf4, 0xec, 0x3c, 0x62, 0xc5, 0x25, 0x9c, 0xa7, 0xe4, 0xf3, 0x77, 0x10, 0x65, 0xb0, + 0x56, 0xe5, 0x00, 0xf9, 0x3d, 0x54, 0x86, 0x10, 0x57, 0xc8, 0xbf, 0x7f, 0x12, 0x7f, 0xf7, 0xa7, + 0xf0, 0xe5, 0xe0, 0x9f, 0x96, 0xc9, 0x10, 0x5f, 0x38, 0xae, 0xf6, 0x9f, 0x39, 0x71, 0x4f, 0xa4, + 0x4e, 0xdc, 0x0d, 0x7f, 0xea, 0xc4, 0x9d, 0x76, 0xf5, 0x2a, 0x58, 0x8b, 0xc1, 0xe5, 0x05, 0x8f, + 0xd3, 0x2b, 0x34, 0x19, 0xe8, 0xfc, 0xd3, 0x19, 0x24, 0xdc, 0x23, 0x6d, 0x02, 0xa9, 0x86, 0xcf, + 0x3e, 0xdd, 0xbc, 0x23, 0x63, 0x1d, 0xd8, 0x8a, 0x65, 0x17, 0xb1, 0xaf, 0x12, 0xd6, 0x19, 0xc8, + 0x88, 0x08, 0x8c, 0x69, 0xb7, 0xb7, 0xd0, 0x1e, 0x8e, 0x76, 0x72, 0xe9, 0xa2, 0x93, 0xcb, 0x21, + 0x6f, 0x96, 0xd7, 0x30, 0xa1, 0x0f, 0xbf, 0xed, 0x2c, 0xa4, 0x3d, 0xb3, 0xfa, 0xef, 0x22, 0xdf, + 0xfd, 0x34, 0xef, 0x2a, 0x7a, 0x61, 0x13, 0xf6, 0x65, 0x0b, 0xb6, 0xe3, 0x69, 0xe2, 0x18, 0x9d, + 0xc4, 0xf5, 0x7b, 0x40, 0x22, 0xde, 0x7b, 0x80, 0xfc, 0x86, 0xf6, 0xd1, 0x79, 0x87, 0x93, 0x63, + 0x82, 0x38, 0x2c, 0x7c, 0x92, 0x6e, 0x48, 0xed, 0x64, 0x14, 0x0a, 0xcf, 0x57, 0x6e, 0x20, 0xa9, + 0x07, 0x73, 0x57, 0x91, 0x45, 0x12, 0xce, 0x87, 0x32, 0x7c, 0x27, 0xd1, 0x3b, 0x8e, 0x29, 0xaa, + 0x7a, 0x7c, 0x14, 0x67, 0xcb, 0xb2, 0x13, 0x79, 0x39, 0x4a, 0x79, 0xf2, 0xe8, 0x36, 0xd6, 0x2d, + 0xb0, 0x45, 0x7a, 0x39, 0xdd, 0xd4, 0x01, 0x22, 0x0e, 0xf9, 0xee, 0x6d, 0x20, 0x2d, 0x3b, 0xce, + 0x11, 0x49, 0x7a, 0x38, 0x12, 0x09, 0x72, 0x35, 0xa6, 0x2a, 0xda, 0x7d, 0xc0, 0xd6, 0x6c, 0xe4, + 0x5d, 0x43, 0x80, 0x47, 0xe8, 0xbd, 0x83, 0x5b, 0x65, 0xb7, 0x04, 0xb2, 0xe4, 0xa5, 0xbe, 0x62, + 0x35, 0x06, 0x54, 0xd9, 0x52, 0x13, 0xc7, 0x80, 0x2a, 0x97, 0x7d, 0x1c, 0x01, 0x2a, 0x87, 0x23, + 0x40, 0xb9, 0xa4, 0x77, 0x64, 0x87, 0xf4, 0x25, 0x37, 0x90, 0x1d, 0x88, 0x65, 0xad, 0x1b, 0x4e, + 0x3d, 0x76, 0x0b, 0xf2, 0xdc, 0x6c, 0x05, 0xd7, 0x27, 0xe7, 0x48, 0x5f, 0xf2, 0x0d, 0xca, 0x06, + 0xd2, 0x2b, 0x8d, 0xf4, 0xca, 0x46, 0x7b, 0x40, 0xaa, 0xee, 0x00, 0x6c, 0x47, 0xe1, 0xb2, 0xad, + 0xa4, 0xe1, 0x7b, 0x84, 0x5a, 0x49, 0xb1, 0xea, 0xa4, 0x65, 0x67, 0xb8, 0x5d, 0xdd, 0xdc, 0xae, + 0x2e, 0x19, 0xa6, 0x3c, 0xbb, 0xfa, 0xe6, 0xd7, 0xb6, 0x83, 0x23, 0x96, 0xfb, 0xcd, 0x9e, 0x4e, + 0xdd, 0xde, 0x9e, 0x65, 0x30, 0x65, 0xa3, 0x0c, 0xd9, 0xcd, 0x98, 0xfa, 0xbc, 0x48, 0x45, 0x3e, + 0x8e, 0x52, 0x3b, 0x65, 0xd0, 0x3f, 0x4d, 0x7d, 0x68, 0x02, 0x38, 0xb6, 0x2b, 0x81, 0xbf, 0x47, + 0xd6, 0x58, 0xf7, 0x90, 0xd5, 0xd6, 0x81, 0x3d, 0xe4, 0x5f, 0x64, 0x3f, 0xd6, 0xf9, 0xc0, 0x24, + 0xad, 0xa4, 0x7b, 0x25, 0x1c, 0x07, 0x1c, 0x67, 0xc9, 0x0e, 0xdf, 0xea, 0x72, 0xea, 0xde, 0x7b, + 0xf4, 0x48, 0x0f, 0x47, 0x57, 0xfe, 0x7d, 0x5f, 0xf0, 0xf0, 0x90, 0x2b, 0x40, 0xbe, 0xef, 0xdf, + 0x1e, 0x92, 0xe2, 0xbb, 0xed, 0xbc, 0xc3, 0xd9, 0xc2, 0x30, 0xa7, 0x31, 0x99, 0x4a, 0x16, 0x63, + 0x14, 0xd9, 0xc6, 0x7b, 0x0b, 0xeb, 0xf7, 0xd1, 0x0e, 0xbc, 0xc1, 0x7b, 0x8b, 0x88, 0xa2, 0x15, + 0x4e, 0xc4, 0x02, 0xa4, 0x21, 0x3e, 0x5f, 0x1b, 0x43, 0x33, 0x7d, 0x47, 0x3b, 0x61, 0x87, 0x9f, + 0x24, 0xad, 0x0b, 0xb6, 0x36, 0x4b, 0xa5, 0x5c, 0xa7, 0x55, 0xaf, 0xc9, 0x60, 0xfc, 0xb9, 0x2b, + 0x40, 0xfa, 0x00, 0x13, 0xd3, 0xf9, 0x5c, 0x8c, 0x47, 0xc4, 0x6d, 0xd1, 0x30, 0xa9, 0x03, 0xa7, + 0x35, 0x7c, 0x89, 0xcf, 0x12, 0xbf, 0xb4, 0x25, 0xc1, 0x7b, 0xcf, 0xf9, 0x78, 0x9f, 0xbf, 0x39, + 0xd1, 0x0e, 0x56, 0x0f, 0x7c, 0x11, 0xef, 0xbf, 0xb8, 0x29, 0x81, 0x52, 0x94, 0x07, 0x6c, 0x78, + 0x6f, 0xdb, 0x98, 0x78, 0x10, 0x24, 0x43, 0x90, 0x7d, 0x39, 0x4a, 0x59, 0x7c, 0xf5, 0x4b, 0x7a, + 0xbe, 0x06, 0x25, 0x1d, 0x5f, 0x43, 0x9e, 0x6a, 0xa4, 0x88, 0x95, 0x84, 0x87, 0x3c, 0xbe, 0x79, + 0x34, 0xbe, 0x31, 0x1a, 0x73, 0x7d, 0xb4, 0x52, 0x2e, 0x92, 0x6c, 0x72, 0xf9, 0x8d, 0xec, 0xd5, + 0xe4, 0x42, 0x93, 0x07, 0x5b, 0xeb, 0x8c, 0x99, 0x7d, 0xb6, 0x53, 0x8d, 0x42, 0x73, 0x43, 0xa6, + 0x7d, 0x65, 0x1b, 0xed, 0x92, 0xd9, 0x61, 0xdf, 0x76, 0xc8, 0x0b, 0xf7, 0xb6, 0x98, 0xdc, 0x5e, + 0xa8, 0x3a, 0xff, 0x9c, 0xac, 0x7f, 0x9f, 0xf4, 0x36, 0xf2, 0x48, 0xf2, 0xe0, 0x77, 0xc6, 0x70, + 0x0f, 0xbf, 0xf3, 0xd3, 0xbb, 0xf7, 0xe8, 0x1d, 0xf9, 0xe1, 0x23, 0x3b, 0xe9, 0x8a, 0x9e, 0x17, + 0xf1, 0x4a, 0x79, 0x72, 0xc2, 0xdd, 0x9c, 0x27, 0x48, 0x79, 0x7e, 0x47, 0x79, 0x72, 0xba, 0xf1, + 0xdd, 0xe0, 0x76, 0xc8, 0xdd, 0x8b, 0xa3, 0xc4, 0xef, 0x42, 0xe7, 0xb7, 0xca, 0x06, 0x77, 0xee, + 0x07, 0xa4, 0x0d, 0x92, 0xdb, 0x9d, 0x50, 0x31, 0x77, 0x62, 0x4f, 0xca, 0xe4, 0x42, 0xfb, 0x2b, + 0x72, 0x89, 0xa4, 0x23, 0x6d, 0xce, 0xbc, 0x84, 0xa4, 0x3b, 0xd5, 0x37, 0x1d, 0xb1, 0x7a, 0x7a, + 0x35, 0xf6, 0xe3, 0x61, 0x39, 0xdf, 0x54, 0xac, 0xf6, 0x43, 0xf7, 0x6e, 0xe8, 0xd4, 0xfc, 0x44, + 0x75, 0xe9, 0xa0, 0xac, 0x2f, 0x7d, 0x25, 0xf2, 0x98, 0x9c, 0x63, 0x9f, 0x2b, 0xd5, 0xfe, 0xfd, + 0x9b, 0xde, 0xb9, 0x50, 0xf7, 0xaf, 0xe7, 0x11, 0x7f, 0x61, 0xfc, 0x18, 0xd6, 0x58, 0x77, 0x02, + 0xb1, 0xf8, 0x38, 0x61, 0xf1, 0x43, 0x2f, 0xa7, 0x67, 0xd7, 0x3a, 0xc6, 0xe2, 0xb5, 0x32, 0x18, + 0x4e, 0xba, 0x9b, 0xc1, 0x81, 0x63, 0x4d, 0x27, 0x31, 0x71, 0x93, 0x13, 0xca, 0xe8, 0x7d, 0x09, + 0x8f, 0xa5, 0xc7, 0xc2, 0x3b, 0xfb, 0x46, 0xef, 0x37, 0xa1, 0x4a, 0xa6, 0x28, 0x11, 0x65, 0x31, + 0xa2, 0x7d, 0x65, 0xde, 0x06, 0x7c, 0x36, 0x90, 0xbf, 0x02, 0xfc, 0x0b, 0x22, 0x76, 0x2f, 0xf9, + 0x3f, 0x3f, 0x22, 0xde, 0x16, 0xc8, 0x83, 0x10, 0x63, 0xc7, 0x97, 0x10, 0xd2, 0x75, 0xf8, 0x6c, + 0x84, 0x06, 0xc6, 0x9c, 0x7c, 0x6f, 0x00, 0x16, 0xe3, 0x73, 0x0e, 0x34, 0x32, 0x56, 0x7d, 0xd1, + 0x5b, 0x03, 0x4b, 0xf0, 0x39, 0x17, 0xe4, 0x35, 0x50, 0x80, 0xd8, 0x84, 0x10, 0x68, 0x22, 0x1b, + 0xe4, 0x7d, 0x09, 0xa4, 0x70, 0x75, 0x42, 0x5b, 0xf6, 0xd4, 0xfc, 0xbb, 0xaa, 0xa1, 0x99, 0x62, + 0x5f, 0xec, 0x4b, 0x20, 0xbd, 0x5d, 0xfc, 0x5e, 0x3a, 0x75, 0x25, 0xa6, 0x36, 0xee, 0x4b, 0x90, + 0xcf, 0xda, 0x0f, 0xd2, 0xa9, 0x6d, 0x83, 0x2f, 0x82, 0x8c, 0x6f, 0x9a, 0x84, 0x56, 0xed, 0xa9, + 0xd0, 0x5d, 0x7e, 0x58, 0xfd, 0xbf, 0x0e, 0xb5, 0x2b, 0x58, 0x7b, 0x05, 0x9d, 0x9d, 0x21, 0x45, + 0xf7, 0x91, 0x76, 0x3b, 0xae, 0xa4, 0x67, 0x18, 0x4e, 0x0d, 0x0e, 0xdd, 0x48, 0x97, 0x73, 0x16, + 0x18, 0x8e, 0x76, 0x4b, 0x35, 0x0e, 0x1f, 0x1d, 0x4d, 0x43, 0xe8, 0x40, 0x37, 0xd6, 0x56, 0xf7, + 0xde, 0x0b, 0x44, 0x7b, 0x90, 0xd6, 0x37, 0x0c, 0x75, 0x7b, 0xb0, 0xf6, 0x8b, 0xdb, 0x03, 0xc1, + 0x50, 0x90, 0x6c, 0x39, 0x5e, 0xa3, 0xe7, 0x25, 0x17, 0x9f, 0x0f, 0xd4, 0x84, 0x6a, 0xf6, 0xbf, + 0x28, 0x3c, 0xec, 0x5e, 0xdc, 0x16, 0x08, 0x84, 0x02, 0xb2, 0x9d, 0x60, 0x4d, 0x7a, 0x6b, 0x23, + 0x8f, 0x4b, 0x81, 0x35, 0x80, 0xeb, 0xa4, 0xb1, 0x03, 0x2a, 0x2c, 0xab, 0x01, 0x79, 0x27, 0x7d, + 0x3b, 0xd0, 0x09, 0xe0, 0xa9, 0x85, 0x55, 0x5e, 0x68, 0x7e, 0x7a, 0x6e, 0xa5, 0xf1, 0x54, 0x9d, + 0x6f, 0x15, 0xac, 0xec, 0xdf, 0x5f, 0x61, 0x3a, 0xb5, 0x00, 0xd3, 0xda, 0x9e, 0xae, 0x29, 0x37, + 0x9e, 0x0a, 0x63, 0xda, 0xea, 0xfe, 0x7d, 0x65, 0xa6, 0x37, 0x7e, 0xa9, 0x6a, 0x66, 0xac, 0x3d, + 0xbe, 0xf6, 0xf5, 0xfd, 0xe2, 0xbc, 0xec, 0x78, 0xef, 0xaf, 0x5e, 0xe3, 0x48, 0x97, 0xca, 0xf1, + 0x9e, 0x5f, 0xee, 0xe3, 0xd8, 0x9d, 0xca, 0xf1, 0xee, 0x3d, 0x2f, 0x42, 0xc5, 0x32, 0x23, 0xb6, + 0xbc, 0x42, 0xd6, 0x4b, 0xba, 0x48, 0xd7, 0xc2, 0x4b, 0x48, 0x25, 0xe6, 0x42, 0xc5, 0x0e, 0x1c, + 0xed, 0x28, 0x28, 0xa4, 0x93, 0xe3, 0x23, 0x1f, 0xb6, 0xa5, 0x84, 0xb9, 0x88, 0x91, 0xb1, 0x52, + 0xa4, 0xb9, 0xd5, 0x48, 0x73, 0x7d, 0xb2, 0x07, 0xaf, 0x44, 0x73, 0xab, 0x91, 0xe6, 0xda, 0xed, + 0x83, 0x72, 0x91, 0xb0, 0x41, 0xce, 0x63, 0xfb, 0x63, 0xc4, 0x5e, 0xdd, 0x74, 0x3f, 0x63, 0xb0, + 0x91, 0x30, 0x36, 0x6f, 0x30, 0xf2, 0x22, 0xf8, 0x65, 0x93, 0xbd, 0x56, 0x9a, 0x47, 0x96, 0x21, + 0xb8, 0x64, 0x50, 0xac, 0x77, 0xc4, 0xda, 0xb1, 0x9d, 0x27, 0x11, 0x63, 0x4f, 0x10, 0xc6, 0x22, + 0x76, 0x91, 0x27, 0x82, 0x1d, 0x84, 0xb7, 0x47, 0x19, 0x6f, 0x1f, 0x62, 0xbc, 0x5d, 0x87, 0x38, + 0xe7, 0x14, 0x11, 0x4a, 0x50, 0xf2, 0x2d, 0xb4, 0x07, 0x0e, 0xbf, 0x8f, 0xd8, 0x4b, 0x7b, 0x14, + 0x64, 0x47, 0xcb, 0xb8, 0xeb, 0xb4, 0x78, 0x11, 0xaf, 0xa1, 0x8c, 0xbc, 0x41, 0xea, 0xce, 0x31, + 0xee, 0x02, 0x6c, 0x52, 0xf1, 0x34, 0xbd, 0x52, 0x54, 0x4e, 0x58, 0x29, 0x3c, 0xd2, 0x57, 0x64, + 0x37, 0xe2, 0xeb, 0x17, 0x54, 0x7c, 0x9d, 0xa5, 0xe2, 0xeb, 0x2c, 0x6c, 0xf7, 0x63, 0x64, 0xfb, + 0xe2, 0xfb, 0x8a, 0x9c, 0x63, 0xf9, 0x4a, 0x28, 0x21, 0x22, 0x70, 0x0f, 0x27, 0xec, 0xe4, 0x59, + 0xf4, 0x01, 0x30, 0x1c, 0x1e, 0x94, 0x7c, 0x26, 0x50, 0x61, 0x92, 0x15, 0x03, 0x9d, 0x9f, 0xa0, + 0x40, 0x7b, 0x57, 0x04, 0x23, 0xe2, 0xe4, 0xd5, 0x59, 0x0b, 0xba, 0x39, 0xa5, 0xf0, 0xee, 0xfc, + 0x53, 0xa1, 0x6e, 0x7f, 0xd5, 0x2b, 0xd8, 0x32, 0xd2, 0xd3, 0xae, 0x40, 0xbe, 0x17, 0xdf, 0xc0, + 0x25, 0xd2, 0xc9, 0x0a, 0xfc, 0x2c, 0xb4, 0x0a, 0x12, 0xe9, 0xc8, 0xdb, 0xff, 0x67, 0x5b, 0x2c, + 0x68, 0xba, 0x88, 0x35, 0x8f, 0xb3, 0xaa, 0x17, 0x69, 0x6a, 0x5f, 0xf5, 0x87, 0xd0, 0x81, 0xb0, + 0x5b, 0x6f, 0x9f, 0xa7, 0xea, 0xf8, 0xf6, 0x7a, 0xa7, 0x68, 0x36, 0x64, 0x3e, 0x2f, 0x74, 0xab, + 0x25, 0x23, 0xb5, 0x3e, 0x4d, 0x54, 0x2b, 0xa7, 0xd4, 0x0b, 0x09, 0x3a, 0x73, 0x60, 0x7d, 0xba, + 0xfc, 0x4b, 0x4c, 0x0b, 0x13, 0x5d, 0x6d, 0x80, 0xe9, 0xbd, 0x9a, 0x46, 0x1d, 0xa7, 0xe6, 0xaa, + 0xa9, 0xeb, 0xd4, 0xd4, 0x2f, 0x71, 0x6a, 0x5e, 0xa2, 0x8b, 0x2c, 0xef, 0xe3, 0x69, 0x68, 0xe5, + 0x31, 0xac, 0x4c, 0x0c, 0x29, 0x49, 0x2e, 0xf4, 0x0c, 0xca, 0x05, 0x02, 0x73, 0x0a, 0x19, 0x73, + 0xbe, 0x82, 0x98, 0xf3, 0x15, 0xc2, 0x9c, 0xc7, 0x65, 0x7d, 0xd5, 0x60, 0x64, 0x9d, 0x6c, 0xf4, + 0xd4, 0xb8, 0x83, 0x9d, 0xb0, 0x97, 0xb1, 0x65, 0xdc, 0x79, 0x0c, 0xb1, 0xe5, 0x28, 0x61, 0xcb, + 0xda, 0x3d, 0x84, 0x27, 0xa7, 0x19, 0x4f, 0x7a, 0x19, 0x4f, 0x7a, 0xd4, 0x3d, 0x97, 0x26, 0x8e, + 0x65, 0x4b, 0xa7, 0x44, 0x0e, 0x94, 0xdf, 0x2d, 0x15, 0xb8, 0x42, 0x95, 0x37, 0x43, 0x0e, 0x69, + 0x42, 0x68, 0xe7, 0xa5, 0xc3, 0xeb, 0x5d, 0x28, 0xd5, 0x1c, 0x4b, 0x90, 0xdc, 0xfd, 0xc4, 0xc1, + 0x48, 0x1f, 0xe9, 0x4f, 0x3f, 0xf9, 0xc6, 0xa6, 0xbe, 0xb6, 0xac, 0x7d, 0xbd, 0xb1, 0xdc, 0xb8, + 0xa1, 0x1f, 0xdb, 0xf2, 0x8b, 0xc1, 0x16, 0xbd, 0xdd, 0xf4, 0xc4, 0x2b, 0x1c, 0x89, 0xcc, 0x2a, + 0x65, 0xbd, 0xdb, 0x97, 0xe8, 0x71, 0x02, 0xd9, 0x5b, 0xac, 0x4b, 0x38, 0xe6, 0xcb, 0xe5, 0x79, + 0xaf, 0xde, 0x3d, 0xa4, 0x24, 0x03, 0xfe, 0x45, 0x89, 0xa6, 0x2b, 0xf6, 0xe0, 0x5b, 0xaf, 0x48, + 0x26, 0xd9, 0x60, 0x7f, 0xf5, 0xdb, 0x89, 0x8e, 0xac, 0xdd, 0x89, 0xd6, 0x4f, 0x70, 0x90, 0xe7, + 0x23, 0xde, 0x67, 0xe4, 0x39, 0xf6, 0xe8, 0xb1, 0xee, 0x45, 0x8f, 0xc4, 0x95, 0x81, 0x47, 0x62, + 0x46, 0x49, 0x67, 0x0f, 0xca, 0x83, 0x75, 0xbf, 0x2d, 0xe4, 0x78, 0xb5, 0x55, 0xe4, 0x73, 0xd2, + 0x43, 0x6d, 0xc5, 0x76, 0x9a, 0x16, 0x7c, 0xbc, 0x1b, 0x2a, 0x44, 0x7b, 0xcd, 0xa9, 0xf6, 0x3e, + 0x46, 0x9e, 0xa0, 0xb9, 0xb5, 0x6f, 0xa8, 0xad, 0x3d, 0xb8, 0xa9, 0x0f, 0xdb, 0xab, 0xdb, 0x97, + 0x10, 0x67, 0xf9, 0xab, 0xe8, 0x94, 0x97, 0xdb, 0xcb, 0xfa, 0xf9, 0x56, 0xa7, 0x81, 0x5b, 0xda, + 0xeb, 0xd6, 0x1d, 0xef, 0x92, 0x2b, 0xcb, 0x5e, 0xbd, 0xfb, 0x20, 0xb6, 0x23, 0xb8, 0xa8, 0xb7, + 0xe9, 0x8a, 0xdb, 0xff, 0xeb, 0x5f, 0x52, 0x5b, 0xdd, 0xaf, 0x7e, 0x33, 0x41, 0xda, 0x56, 0xd4, + 0x56, 0xc7, 0x42, 0x59, 0x5f, 0x99, 0xd9, 0xd6, 0x5e, 0x29, 0x67, 0xb8, 0x77, 0xb8, 0x7b, 0xd1, + 0xc3, 0x1d, 0xca, 0xee, 0x87, 0x63, 0x46, 0x97, 0xce, 0xe1, 0x97, 0xf7, 0x6a, 0x9a, 0x0a, 0x73, + 0xa8, 0xbd, 0x3e, 0xad, 0xbd, 0xd5, 0xd8, 0x5e, 0xa7, 0xe9, 0xe8, 0xa3, 0x93, 0xdb, 0x7c, 0x34, + 0x81, 0xe3, 0x64, 0xa8, 0xc4, 0x36, 0xff, 0xfd, 0x1b, 0xc8, 0x35, 0x5a, 0xdd, 0x3a, 0xa6, 0x8a, + 0xba, 0x53, 0xeb, 0x69, 0x77, 0xe3, 0x89, 0x83, 0xb2, 0x2d, 0x6f, 0xed, 0xf4, 0xa0, 0xb6, 0xd2, + 0x2d, 0x4a, 0x74, 0x8e, 0xef, 0x4d, 0x44, 0x2f, 0x1c, 0xed, 0x5e, 0xd4, 0x87, 0x30, 0xea, 0x43, + 0x18, 0xdd, 0x64, 0xaf, 0x91, 0xcf, 0x61, 0x9d, 0x9d, 0x13, 0xc7, 0x33, 0xa3, 0xce, 0xbe, 0xeb, + 0xd7, 0x49, 0x71, 0x31, 0x9f, 0xe4, 0x3a, 0xd5, 0x9a, 0x72, 0x1d, 0xaf, 0x2c, 0x4a, 0x74, 0x8c, + 0xef, 0x4e, 0x44, 0x3f, 0xc9, 0x28, 0x7f, 0xaa, 0x83, 0xcb, 0x17, 0x63, 0x20, 0x4e, 0x15, 0x6f, + 0x8c, 0x2f, 0xc3, 0x5a, 0xb9, 0x07, 0x23, 0x0f, 0x97, 0x61, 0xa9, 0x3f, 0x78, 0x63, 0xd3, 0xc3, + 0x88, 0x2d, 0x89, 0x58, 0xfd, 0x6a, 0xc3, 0xe6, 0x2e, 0x7b, 0xd6, 0x4b, 0xaf, 0x22, 0xb6, 0x4c, + 0x7d, 0xf2, 0x15, 0x79, 0x4e, 0xad, 0x25, 0xd2, 0x77, 0xf7, 0x1b, 0xca, 0x68, 0xa0, 0x66, 0x51, + 0x4f, 0xd3, 0x47, 0x92, 0xff, 0xf0, 0x2b, 0xd2, 0x54, 0xd9, 0x58, 0xdb, 0xff, 0xed, 0x44, 0x63, + 0x1f, 0xed, 0xe1, 0xb5, 0x5e, 0x71, 0x82, 0x33, 0x24, 0x1b, 0x38, 0x1f, 0x4a, 0x27, 0x0c, 0xf1, + 0x8f, 0xa4, 0x69, 0xc3, 0x3d, 0x08, 0xef, 0x47, 0x56, 0x2b, 0xbb, 0x10, 0x3f, 0x9c, 0x3a, 0xc9, + 0x2f, 0xef, 0xd1, 0x4e, 0x19, 0x85, 0x0e, 0x06, 0xae, 0x01, 0xd8, 0x23, 0x1c, 0x5b, 0xb2, 0xad, + 0x30, 0x78, 0xfc, 0x28, 0x97, 0xdb, 0x54, 0xde, 0xce, 0xe8, 0xa3, 0xf6, 0xf2, 0x29, 0xa7, 0x8f, + 0xf8, 0x31, 0x38, 0xda, 0x47, 0x70, 0x28, 0x31, 0xfe, 0xb8, 0xdb, 0x4d, 0x7c, 0x62, 0xb6, 0xba, + 0xff, 0x8b, 0xef, 0xb1, 0x67, 0x96, 0x79, 0x1f, 0x9b, 0xfe, 0x3f, 0xe6, 0xbe, 0x07, 0xbc, 0xa9, + 0xe3, 0xca, 0xf7, 0x5c, 0x49, 0x18, 0xe1, 0x08, 0x23, 0x1b, 0x3f, 0xaf, 0x43, 0x5d, 0xe7, 0x46, + 0xab, 0xa8, 0x42, 0xa8, 0x96, 0xe2, 0x3a, 0xc4, 0x75, 0xb5, 0x20, 0xcb, 0xb2, 0x2d, 0xcb, 0xc6, + 0x38, 0x82, 0x10, 0xe3, 0xc7, 0x4b, 0x2e, 0xc6, 0x96, 0x0c, 0x18, 0xac, 0x18, 0x85, 0x3a, 0xd4, + 0x5f, 0x56, 0x96, 0x0d, 0x98, 0x40, 0x02, 0x31, 0xa4, 0x4d, 0x53, 0xda, 0x2f, 0x6f, 0x5f, 0xda, + 0xd2, 0x24, 0x4d, 0x28, 0xa5, 0x69, 0x4a, 0xf9, 0xb2, 0x0e, 0x21, 0xd4, 0xa1, 0x24, 0x1f, 0x50, + 0xfe, 0x85, 0x24, 0x2c, 0xe5, 0xb1, 0x09, 0x4d, 0x68, 0xc2, 0xa3, 0xa4, 0x4b, 0xb3, 0x18, 0xbd, + 0x73, 0x66, 0xae, 0xa4, 0x2b, 0xf9, 0x0f, 0xe6, 0x4f, 0xdf, 0x3e, 0xf8, 0xe4, 0xfb, 0x6f, 0xee, + 0xcc, 0x99, 0x33, 0x67, 0xce, 0xf9, 0xcd, 0xdc, 0x99, 0x73, 0x00, 0xc7, 0x1d, 0x3a, 0x4b, 0xf9, + 0x0f, 0xf6, 0xfc, 0xfa, 0xcd, 0xa6, 0x9c, 0xa0, 0xba, 0xbf, 0x3b, 0xe0, 0x6d, 0xd7, 0xf4, 0x21, + 0xfa, 0xd8, 0xd9, 0xd5, 0xaa, 0x12, 0x55, 0x5b, 0xc2, 0x52, 0xc9, 0x9c, 0x27, 0x6d, 0x69, 0xb6, + 0x0c, 0x1e, 0x4f, 0xd4, 0x58, 0x76, 0xb4, 0x1f, 0xd1, 0xbc, 0x7c, 0x75, 0xbc, 0xdf, 0x90, 0xbe, + 0x52, 0xbd, 0xa7, 0x9b, 0xd2, 0x1a, 0x54, 0x5b, 0xba, 0x36, 0xbf, 0xcd, 0x6d, 0x0c, 0xe1, 0x36, + 0xfa, 0x32, 0x18, 0xbb, 0x96, 0x5c, 0xfa, 0x93, 0xf7, 0xbd, 0x8d, 0x32, 0x55, 0x3a, 0xa7, 0xab, + 0xe9, 0x12, 0x7d, 0xf3, 0xc4, 0x37, 0x55, 0x92, 0xc6, 0x74, 0x62, 0x7e, 0x17, 0x7d, 0x51, 0x5c, + 0xf6, 0x57, 0x8b, 0x60, 0xba, 0xcd, 0xe8, 0x91, 0x54, 0x39, 0x8a, 0x74, 0x87, 0xde, 0x32, 0x95, + 0x1d, 0x7f, 0x0b, 0x5b, 0x77, 0xed, 0xf1, 0x77, 0x7c, 0xeb, 0x7e, 0xb9, 0x37, 0xf0, 0xa0, 0xb1, + 0xcc, 0x00, 0x62, 0xb5, 0xb4, 0x33, 0x73, 0xfb, 0x39, 0x1c, 0xce, 0xcd, 0xe9, 0x65, 0xb1, 0x0b, + 0x2f, 0x1e, 0xc5, 0xdc, 0x44, 0x97, 0xa4, 0xf9, 0x9a, 0x61, 0x3e, 0xf1, 0xb5, 0x17, 0x73, 0xd3, + 0xba, 0x57, 0xcf, 0xba, 0x58, 0x0f, 0x55, 0x7f, 0xa9, 0x07, 0x49, 0x9b, 0x92, 0xfa, 0xad, 0xe3, + 0x6f, 0x3d, 0xfd, 0xbb, 0xef, 0xf1, 0x1c, 0x75, 0x62, 0xe9, 0xac, 0x8b, 0x5a, 0x4c, 0xa7, 0x05, + 0x89, 0xf9, 0x28, 0x51, 0xae, 0xbc, 0xe0, 0x7c, 0x76, 0x70, 0x3e, 0xa7, 0x59, 0x9d, 0xc8, 0xc1, + 0x5c, 0x92, 0xb9, 0xe3, 0xbf, 0x97, 0xb9, 0x3d, 0x2e, 0xc1, 0x6d, 0xd3, 0x6d, 0x5c, 0xe2, 0x08, + 0xb9, 0x62, 0xbf, 0xea, 0x2f, 0x98, 0x78, 0x6a, 0x35, 0x6a, 0x96, 0x3c, 0xe2, 0xf2, 0xf1, 0xdf, + 0xdb, 0x34, 0x09, 0xbe, 0x1f, 0xef, 0x27, 0x8e, 0xbf, 0xbf, 0x17, 0xf9, 0x9d, 0x1d, 0x14, 0x90, + 0xdf, 0xf3, 0xbc, 0x91, 0x07, 0xfb, 0x49, 0x53, 0xbb, 0xc3, 0xc8, 0x6d, 0x8f, 0x21, 0x63, 0x4e, + 0x17, 0x79, 0x1d, 0x45, 0x2e, 0x0b, 0xb1, 0x5d, 0x4d, 0x07, 0xd7, 0x30, 0xbe, 0x6b, 0x68, 0x36, + 0xda, 0x26, 0xd0, 0x9d, 0x0f, 0xc2, 0xc7, 0xf7, 0x19, 0xd2, 0x83, 0xd8, 0xeb, 0x77, 0x76, 0x2d, + 0x60, 0x6f, 0xef, 0x09, 0x6f, 0xe9, 0x5a, 0x09, 0x16, 0xc1, 0x8d, 0xb6, 0x1e, 0x79, 0xbf, 0x13, + 0x79, 0xcf, 0xf6, 0xcb, 0x90, 0xef, 0x65, 0xc9, 0x5d, 0x74, 0x22, 0x89, 0xff, 0x7b, 0x8f, 0xef, + 0xe5, 0xfc, 0xbf, 0x9f, 0x79, 0x92, 0x20, 0xfe, 0x1b, 0xab, 0x4d, 0x5a, 0x49, 0x35, 0x5d, 0x91, + 0xce, 0x54, 0x7e, 0xfc, 0xad, 0x63, 0xeb, 0x2b, 0x2f, 0xbe, 0x06, 0x72, 0x0b, 0xec, 0x0b, 0x48, + 0x06, 0x30, 0x56, 0x8b, 0x65, 0xd2, 0x8e, 0x7b, 0x77, 0x68, 0xaf, 0x6a, 0xaf, 0xde, 0x1f, 0x96, + 0x34, 0x66, 0x21, 0x08, 0xa8, 0x53, 0x2e, 0x30, 0x9d, 0x72, 0xee, 0xe8, 0x5b, 0xa5, 0xc8, 0x73, + 0x11, 0xf3, 0xbe, 0xd3, 0x10, 0xd3, 0x2a, 0x56, 0xd8, 0xfc, 0xb6, 0xa4, 0xfd, 0xc6, 0x8e, 0x67, + 0xae, 0xf6, 0x5e, 0xbd, 0x7f, 0x1d, 0x4a, 0xfa, 0x5f, 0x99, 0xa4, 0x7f, 0xe6, 0x5e, 0xf3, 0xc1, + 0x9a, 0xa3, 0xfb, 0x2a, 0x2f, 0xb4, 0x00, 0x6b, 0x8f, 0xee, 0x57, 0x9f, 0xf4, 0xef, 0x48, 0xac, + 0xde, 0x64, 0x11, 0x08, 0x48, 0xd6, 0xa7, 0xd1, 0x98, 0xa2, 0x98, 0x22, 0x76, 0xa2, 0x85, 0xb1, + 0x2f, 0x05, 0x6d, 0xf9, 0x85, 0x5e, 0x38, 0x3a, 0x10, 0x97, 0xf8, 0xa5, 0xb1, 0x36, 0x38, 0xda, + 0x7f, 0xf4, 0x53, 0x6a, 0x01, 0xda, 0xbb, 0x65, 0x52, 0xb9, 0xbb, 0x2d, 0x65, 0xef, 0xef, 0xb3, + 0x4c, 0x83, 0x3c, 0x4c, 0xa1, 0x2f, 0xc3, 0x77, 0x0a, 0x26, 0x9c, 0xea, 0xc5, 0x36, 0x5b, 0x1a, + 0x6b, 0x89, 0x83, 0x6b, 0x4d, 0x4b, 0x41, 0x77, 0xbc, 0xbf, 0x40, 0x7d, 0x6a, 0xf5, 0xaf, 0xf7, + 0x37, 0x57, 0x58, 0xdd, 0x4a, 0x49, 0x4f, 0x96, 0xf3, 0x76, 0x10, 0xd5, 0x9b, 0x9e, 0xf8, 0xee, + 0x5a, 0x69, 0xae, 0xbe, 0x2f, 0x73, 0x09, 0x08, 0x6c, 0x15, 0x80, 0x8a, 0xf0, 0xec, 0xbc, 0xc7, + 0x77, 0x3c, 0xee, 0xff, 0xa4, 0xfc, 0x8b, 0x67, 0xe0, 0xf8, 0xef, 0x7c, 0x61, 0x29, 0x2d, 0x08, + 0xef, 0xef, 0x39, 0x15, 0xd9, 0xde, 0x13, 0x28, 0x36, 0x78, 0x0d, 0xe9, 0x87, 0x23, 0x28, 0xaf, + 0xa7, 0x26, 0xb7, 0x44, 0xf1, 0x1f, 0xfe, 0xbd, 0x1a, 0xbd, 0x8a, 0x7f, 0x07, 0xa3, 0x83, 0x0f, + 0xf4, 0x3e, 0xb0, 0x6e, 0x57, 0xaf, 0xff, 0x23, 0x94, 0xdd, 0x37, 0x7d, 0x5d, 0x3b, 0x7a, 0x02, + 0xe9, 0x96, 0xf4, 0x67, 0x23, 0x86, 0x6a, 0xd1, 0x4b, 0x9a, 0xa8, 0xf3, 0x4a, 0x6a, 0x6f, 0x67, + 0xb6, 0x27, 0xc7, 0x1a, 0x97, 0xc0, 0xb8, 0x0c, 0x2a, 0x7a, 0x3c, 0x93, 0x2c, 0x8d, 0x59, 0x75, + 0x22, 0x82, 0x5a, 0x5b, 0x43, 0x72, 0x58, 0x00, 0xa7, 0xd6, 0x50, 0xbf, 0x77, 0xa0, 0x14, 0x7e, + 0xf8, 0xee, 0x87, 0xef, 0x2a, 0xfb, 0xff, 0x87, 0xfd, 0x46, 0xd4, 0x62, 0x47, 0xdf, 0x7d, 0xff, + 0xad, 0x5f, 0xfd, 0xbe, 0xd9, 0x63, 0x2d, 0x53, 0xd4, 0xbd, 0xe7, 0x78, 0xbc, 0xee, 0x27, 0xc2, + 0x47, 0xf7, 0x3e, 0x35, 0x20, 0xd5, 0xdf, 0xf5, 0x4b, 0x2d, 0x68, 0xc1, 0xd7, 0x5b, 0x8f, 0x2d, + 0x1e, 0x84, 0xa7, 0x06, 0x7e, 0xb1, 0xc7, 0x7f, 0x9e, 0x47, 0x49, 0x11, 0x2b, 0xb1, 0x37, 0x0f, + 0x1c, 0x7c, 0xe2, 0x68, 0xbf, 0xaf, 0x8b, 0x7c, 0x25, 0xee, 0xe8, 0xf6, 0x9f, 0x92, 0xac, 0x77, + 0xfd, 0x32, 0xf7, 0x4a, 0xee, 0x15, 0x5f, 0x78, 0x7e, 0x97, 0xa4, 0x69, 0x87, 0x20, 0x6c, 0x8f, + 0xf8, 0xcf, 0x1b, 0x54, 0x87, 0x23, 0x87, 0xbb, 0xdc, 0x5d, 0xa2, 0xb0, 0x69, 0xed, 0xf1, 0xfe, + 0xbe, 0x27, 0x8e, 0xbe, 0xe1, 0xeb, 0xfd, 0xc5, 0x9b, 0xfe, 0xd3, 0xf1, 0xfa, 0x92, 0x35, 0xa1, + 0x71, 0x88, 0x48, 0xab, 0x13, 0xe4, 0x55, 0x4e, 0x11, 0x5e, 0x7f, 0xb6, 0x57, 0x2b, 0x07, 0x7b, + 0x54, 0xae, 0x3c, 0x13, 0xa1, 0x91, 0xeb, 0xbd, 0x99, 0x6b, 0xba, 0xd2, 0x0b, 0x5a, 0x30, 0xa1, + 0x25, 0x3f, 0xd6, 0x6b, 0xd1, 0x3c, 0x1b, 0xa1, 0x9e, 0x87, 0xf6, 0x46, 0xff, 0xfe, 0x3b, 0xf1, + 0x9e, 0xb7, 0x99, 0xd6, 0xea, 0xbd, 0x8f, 0x3d, 0x2f, 0x08, 0x05, 0xaa, 0x53, 0x91, 0x23, 0xab, + 0xa5, 0x5c, 0x44, 0x37, 0x6c, 0x2f, 0x55, 0xc9, 0xa5, 0x5c, 0xd5, 0x2f, 0xdf, 0xf1, 0x5f, 0x38, + 0x16, 0xa9, 0xbe, 0xe8, 0x01, 0x5f, 0x78, 0xfb, 0x9a, 0x40, 0xba, 0x71, 0x56, 0xd9, 0x17, 0x1d, + 0x80, 0x92, 0xfe, 0x11, 0xf9, 0xd8, 0x1d, 0x91, 0xba, 0xe7, 0x6f, 0x94, 0x3a, 0xfa, 0x2a, 0x17, + 0x97, 0x49, 0x05, 0x8d, 0xc4, 0xcd, 0x43, 0x48, 0x25, 0xd1, 0x18, 0x04, 0xa2, 0xd3, 0xe2, 0x96, + 0x0a, 0x90, 0xd2, 0xdb, 0xd9, 0xae, 0xaf, 0xa2, 0x5c, 0x30, 0x0b, 0x34, 0x86, 0xd0, 0xf7, 0x90, + 0xfd, 0xcc, 0x44, 0xab, 0x99, 0x49, 0x56, 0xb3, 0x17, 0x65, 0xe9, 0xe4, 0xb1, 0x48, 0xe9, 0x17, + 0xdb, 0x62, 0xf4, 0x7b, 0x2c, 0xda, 0x93, 0x6b, 0x0d, 0x4a, 0xfa, 0xc9, 0xae, 0xd9, 0x93, 0xe8, + 0x7f, 0x8c, 0x23, 0x04, 0x4e, 0xbd, 0x29, 0x41, 0xbd, 0x7a, 0x28, 0xf5, 0xf4, 0xfd, 0xe3, 0x48, + 0xaf, 0x45, 0xfd, 0x6c, 0x8f, 0x49, 0xa6, 0xfe, 0xd0, 0x40, 0x81, 0x16, 0x69, 0x57, 0x27, 0x68, + 0x3f, 0x15, 0x26, 0x04, 0xdf, 0x0e, 0x27, 0x7b, 0xa4, 0x1c, 0xe5, 0x3e, 0xf2, 0x5f, 0x0d, 0xf8, + 0x2f, 0x1c, 0x59, 0x7d, 0xaa, 0x1b, 0xe5, 0x9c, 0x28, 0x73, 0x1d, 0xdd, 0x2b, 0xba, 0x0c, 0x95, + 0xcc, 0xe2, 0x5e, 0x91, 0x7d, 0xc6, 0xb7, 0x81, 0x99, 0x71, 0x52, 0xff, 0x18, 0xcc, 0xb0, 0x40, + 0x16, 0xf1, 0xca, 0xa2, 0x3a, 0x19, 0x39, 0xb9, 0x1a, 0x25, 0x3e, 0x7b, 0x2b, 0x69, 0xd2, 0x5c, + 0xc6, 0x25, 0xc5, 0x4a, 0x37, 0xc2, 0x40, 0x44, 0x19, 0x72, 0x0b, 0x47, 0x8f, 0x27, 0xd7, 0x48, + 0x7a, 0xeb, 0xed, 0xfa, 0x7d, 0x3b, 0x7a, 0xfd, 0x97, 0x8f, 0xad, 0x2e, 0xe5, 0xed, 0xb8, 0x96, + 0xf8, 0x60, 0xd0, 0x1e, 0x8e, 0x70, 0x3e, 0x68, 0x14, 0x7c, 0xe0, 0xa5, 0xf1, 0x1d, 0x6c, 0x26, + 0x27, 0x61, 0x40, 0x93, 0xea, 0x58, 0xc4, 0xa2, 0x3e, 0xd9, 0x4d, 0x3e, 0xe3, 0x7f, 0x44, 0xe5, + 0xe6, 0xa2, 0xfd, 0xd7, 0xbd, 0x77, 0x80, 0xf5, 0x30, 0x45, 0xb9, 0xef, 0xf5, 0xbf, 0x87, 0x25, + 0x6e, 0x8d, 0x6c, 0xc5, 0xf6, 0x39, 0xb9, 0xf6, 0x83, 0x6e, 0x49, 0x6f, 0xcc, 0x2d, 0xde, 0xb3, + 0x63, 0x83, 0xff, 0xf2, 0x89, 0xd5, 0x55, 0xff, 0xa7, 0x85, 0xca, 0x5d, 0x1f, 0x48, 0x37, 0xd4, + 0x18, 0x74, 0x87, 0xbb, 0x45, 0x37, 0x95, 0x9b, 0x77, 0xcd, 0x72, 0x29, 0x82, 0x2d, 0x2b, 0x97, + 0x7a, 0x6b, 0x2e, 0xd5, 0xac, 0x0a, 0x65, 0xe3, 0xbd, 0x01, 0xd6, 0x5f, 0x87, 0x94, 0x1d, 0x84, + 0x23, 0xdd, 0x1f, 0xac, 0x95, 0x8c, 0x86, 0x5c, 0x93, 0x40, 0xe3, 0xc7, 0xdc, 0x6e, 0x93, 0x70, + 0x7a, 0xfd, 0xed, 0x65, 0x20, 0xdc, 0x4e, 0xb2, 0xb0, 0xe1, 0x97, 0x07, 0xfc, 0x67, 0x4f, 0xac, + 0xa9, 0x42, 0xfb, 0xc7, 0x69, 0x31, 0xd6, 0x94, 0x5d, 0x32, 0x43, 0x12, 0x2d, 0x8c, 0xe3, 0x4c, + 0xa7, 0xf0, 0x5d, 0x9c, 0xec, 0xfb, 0x23, 0xfb, 0x3a, 0x9c, 0x9e, 0xc4, 0x61, 0xad, 0xcc, 0x61, + 0x0d, 0xcd, 0xf6, 0x05, 0x81, 0xa8, 0x93, 0xb0, 0x8d, 0xf2, 0x6f, 0x37, 0xfe, 0x6e, 0xf7, 0x3a, + 0xff, 0x5f, 0x0f, 0xed, 0x39, 0xbc, 0x1a, 0xcb, 0x40, 0xed, 0x65, 0xd5, 0x7e, 0xd0, 0x6d, 0xf0, + 0x18, 0x4b, 0xa9, 0x55, 0x39, 0x9f, 0x1d, 0xc5, 0xc3, 0x95, 0xc1, 0xb5, 0x57, 0x6a, 0x49, 0x5c, + 0x73, 0xf1, 0x32, 0x8e, 0x75, 0x1b, 0x96, 0x60, 0x29, 0x59, 0x38, 0xf2, 0xfd, 0x8a, 0x88, 0xba, + 0xc9, 0xff, 0xd7, 0x4a, 0xa4, 0xfe, 0xf0, 0x3a, 0x5e, 0x8e, 0xb9, 0xba, 0xfc, 0x2f, 0xc5, 0x20, + 0x96, 0xb2, 0xba, 0x38, 0x12, 0xfd, 0x92, 0xf3, 0x95, 0x97, 0x63, 0xe2, 0x78, 0x4f, 0x4b, 0xfd, + 0xcb, 0x32, 0xe1, 0x64, 0x6f, 0x5c, 0x9e, 0x63, 0x1e, 0xc7, 0xcb, 0xf9, 0x9a, 0x2b, 0xd2, 0x5f, + 0x58, 0x16, 0x4a, 0xec, 0x91, 0xb0, 0xa5, 0x8c, 0x5a, 0x9c, 0xaf, 0xb2, 0x62, 0xbb, 0xa8, 0x85, + 0x1c, 0x36, 0x5b, 0x41, 0xa3, 0xa0, 0x3f, 0x3e, 0x11, 0x5e, 0x1d, 0x56, 0x1b, 0xfb, 0x5f, 0xef, + 0xf5, 0x9f, 0x2e, 0xfd, 0xe2, 0x35, 0xf8, 0xc3, 0x3e, 0xae, 0xb1, 0x4d, 0x1e, 0xec, 0x01, 0x11, + 0x1c, 0x01, 0x24, 0xfa, 0x18, 0xd3, 0xd8, 0x6c, 0xf6, 0x14, 0x47, 0xe9, 0x66, 0x33, 0x68, 0xbd, + 0x4b, 0x20, 0xbf, 0x0d, 0x84, 0x7d, 0x78, 0xc4, 0x21, 0x9f, 0xf0, 0xba, 0xce, 0xcc, 0xbc, 0x5d, + 0xe8, 0xf0, 0x48, 0xde, 0x2e, 0xb4, 0x21, 0x95, 0x94, 0xc6, 0xa2, 0x40, 0x91, 0x57, 0x11, 0x43, + 0x40, 0xe5, 0x73, 0xb1, 0x1d, 0xf5, 0xe4, 0x5d, 0xa2, 0x14, 0x26, 0x9d, 0x2b, 0x9d, 0x5e, 0x8a, + 0xba, 0x1e, 0xdb, 0xbc, 0x7d, 0x52, 0x7f, 0x97, 0xc5, 0x41, 0x7e, 0x63, 0x4e, 0xff, 0xd8, 0x86, + 0xbd, 0xd5, 0x4e, 0xf1, 0x0c, 0x94, 0x2d, 0x35, 0x45, 0x6e, 0xa9, 0x2c, 0x57, 0x25, 0x1f, 0xf3, + 0x5b, 0xcb, 0xe7, 0xb8, 0x68, 0xcf, 0x85, 0xd9, 0xf9, 0x5e, 0x3f, 0xf9, 0x7a, 0x30, 0x64, 0xd8, + 0x27, 0xeb, 0x5c, 0xa0, 0x69, 0xac, 0x2d, 0xfc, 0xce, 0x40, 0x5a, 0xed, 0x7f, 0x6e, 0x52, 0x41, + 0x3b, 0x4c, 0x81, 0x2c, 0xa4, 0x43, 0xb4, 0x78, 0x0c, 0xd5, 0x88, 0x19, 0x4e, 0x1a, 0x3c, 0x16, + 0x3a, 0x6e, 0x63, 0xc7, 0x55, 0xf2, 0xdd, 0xcf, 0x2c, 0xc2, 0xfe, 0xb0, 0xb7, 0x3c, 0xa0, 0xc9, + 0xec, 0x6e, 0x81, 0x33, 0xeb, 0xfc, 0xe9, 0x76, 0x16, 0xf3, 0xa3, 0x90, 0xbc, 0x77, 0xae, 0xc1, + 0x91, 0x4e, 0x35, 0x8e, 0xc9, 0xb0, 0x96, 0xcb, 0x28, 0x3e, 0xfd, 0x01, 0x9e, 0xd6, 0x3f, 0x96, + 0xb4, 0xcf, 0x59, 0x85, 0x03, 0x61, 0x6f, 0x45, 0x40, 0x55, 0x91, 0xc9, 0x52, 0xe2, 0xd8, 0x75, + 0xee, 0x13, 0x2c, 0xe5, 0x3a, 0xc7, 0x84, 0xad, 0x1e, 0x96, 0xee, 0x03, 0xa9, 0x83, 0xa7, 0xf2, + 0x8f, 0x9e, 0xca, 0x27, 0xe7, 0xa5, 0xc9, 0x53, 0x4b, 0xaa, 0x3c, 0xcd, 0x94, 0x7d, 0xc9, 0x65, + 0x3b, 0x26, 0xca, 0x29, 0x4f, 0x48, 0xe6, 0x78, 0x4a, 0x0d, 0xa6, 0x54, 0x8f, 0x9c, 0x12, 0x79, + 0x99, 0x43, 0x48, 0xcd, 0x57, 0xf9, 0x3a, 0xb6, 0x1d, 0xf9, 0x7a, 0x48, 0xc5, 0x87, 0xc3, 0xb4, + 0xf3, 0x7e, 0xb9, 0x9d, 0xf7, 0xdc, 0x8a, 0x76, 0x46, 0xfd, 0x33, 0x05, 0xf5, 0xcf, 0x90, 0xd6, + 0x66, 0x5a, 0x20, 0xcb, 0x55, 0x11, 0xdf, 0x4f, 0x6f, 0xe5, 0x2d, 0x6d, 0x70, 0xfe, 0x81, 0x5a, + 0x9a, 0x76, 0xeb, 0x58, 0xe5, 0xb6, 0xb6, 0xdb, 0xbf, 0xf3, 0x0c, 0xb6, 0x75, 0x58, 0x05, 0xf3, + 0xa0, 0x07, 0x76, 0xc0, 0x19, 0x21, 0x4b, 0x6e, 0x4d, 0x55, 0x49, 0x37, 0xab, 0x39, 0x8b, 0x32, + 0xc0, 0xf8, 0x59, 0x39, 0xf7, 0x09, 0x29, 0xcd, 0x52, 0x23, 0x56, 0xbb, 0xa8, 0xc6, 0xf9, 0xcb, + 0xe8, 0x6b, 0xfd, 0x39, 0xb9, 0x3d, 0xc7, 0x96, 0x7a, 0x57, 0x2c, 0xef, 0x8a, 0xba, 0x94, 0xb6, + 0xaa, 0x9c, 0xdb, 0x2b, 0xa5, 0x89, 0x35, 0x16, 0x65, 0xea, 0x0d, 0xb1, 0xbc, 0xc7, 0x90, 0xfa, + 0xc1, 0x98, 0x0c, 0x3a, 0xca, 0x24, 0x95, 0xc3, 0x5d, 0xf2, 0x6e, 0x2a, 0x35, 0x49, 0xb4, 0x1c, + 0x96, 0x0a, 0xe2, 0xe9, 0xdd, 0x98, 0xbe, 0xec, 0x5a, 0xe9, 0xdf, 0x8b, 0xb5, 0x75, 0xc5, 0x6e, + 0xde, 0xd6, 0xaf, 0xa7, 0xc6, 0x50, 0x60, 0xb1, 0x47, 0x96, 0xb0, 0xb6, 0x66, 0x5e, 0x00, 0x78, + 0x7b, 0xab, 0x9a, 0x78, 0x7b, 0xab, 0x16, 0x18, 0x35, 0x34, 0x77, 0x67, 0xd2, 0x9c, 0x5e, 0xcf, + 0xe7, 0x30, 0xee, 0x28, 0x85, 0xbb, 0x69, 0x16, 0x03, 0x8f, 0xf7, 0xdc, 0xe1, 0x84, 0x7b, 0x53, + 0xe5, 0xa1, 0x93, 0xe4, 0xa1, 0x42, 0x52, 0x75, 0xc6, 0xe4, 0xa1, 0x62, 0x64, 0x79, 0x28, 0xe0, + 0xf2, 0xf0, 0x53, 0xea, 0xe5, 0x71, 0x9d, 0x36, 0x44, 0x2a, 0x64, 0xad, 0x96, 0xe5, 0x2a, 0xa7, + 0xd5, 0x47, 0x28, 0x17, 0x95, 0x50, 0x3c, 0xa7, 0x02, 0xed, 0x69, 0xda, 0xa9, 0xb5, 0x28, 0x15, + 0x3b, 0x44, 0x1b, 0x14, 0x17, 0x4e, 0xd6, 0x55, 0xa0, 0x54, 0xf8, 0x0a, 0xbf, 0xd3, 0xc1, 0x35, + 0xc0, 0x1a, 0xe8, 0x87, 0x2f, 0x91, 0xa2, 0x1c, 0xea, 0xf1, 0xdf, 0x3f, 0xe0, 0x70, 0xd1, 0xdc, + 0x94, 0xe2, 0xbc, 0xc5, 0x08, 0x7b, 0xbb, 0xbc, 0xae, 0x80, 0xae, 0x28, 0x23, 0x2b, 0x32, 0x19, + 0x2d, 0x0c, 0x8e, 0xd3, 0x55, 0x14, 0x1b, 0xa7, 0x90, 0xb5, 0x16, 0x8b, 0x8d, 0x53, 0x33, 0x6f, + 0x9d, 0xa4, 0x8d, 0xbd, 0x83, 0x5a, 0x38, 0x7f, 0x67, 0xcd, 0x72, 0xf2, 0x0d, 0x58, 0xc4, 0xdf, + 0xf5, 0xdf, 0xc0, 0xbb, 0x70, 0x59, 0x2e, 0x37, 0xbd, 0x22, 0xb3, 0x62, 0x2a, 0x08, 0xf8, 0x1b, + 0xcb, 0x9b, 0xfb, 0x69, 0x2d, 0x85, 0x5c, 0xea, 0xf5, 0xbf, 0xd9, 0x23, 0x97, 0x99, 0xa1, 0xa4, + 0x57, 0xd2, 0x67, 0xbd, 0x02, 0x77, 0x4f, 0x6e, 0x83, 0x7b, 0xf0, 0xba, 0x0d, 0xee, 0x1d, 0x2e, + 0x37, 0x39, 0x8f, 0x7e, 0xc9, 0x29, 0xe7, 0x90, 0x95, 0xfa, 0x8e, 0x74, 0x0d, 0x1e, 0xc4, 0x72, + 0x28, 0xca, 0x88, 0x6b, 0x1d, 0xf2, 0x2a, 0x42, 0x92, 0xe8, 0x4d, 0xac, 0x1f, 0x1a, 0xaa, 0x79, + 0x6c, 0x2d, 0x08, 0xca, 0xad, 0xb2, 0xee, 0x39, 0x28, 0xeb, 0x9e, 0x81, 0x5b, 0xa1, 0x7b, 0x48, + 0xd6, 0x0e, 0x0d, 0xa0, 0x55, 0x1f, 0x46, 0xd2, 0x3e, 0x08, 0x7f, 0xf0, 0x42, 0xc2, 0xce, 0x18, + 0x92, 0xed, 0x8c, 0xcb, 0x30, 0x41, 0xd6, 0x3d, 0x00, 0x85, 0x76, 0x66, 0x69, 0xe2, 0xda, 0xe7, + 0x2c, 0x1a, 0x55, 0x61, 0x20, 0xec, 0x75, 0x07, 0x54, 0x96, 0x54, 0x7d, 0x52, 0x5e, 0x4f, 0xfa, + 0xa4, 0x02, 0xfb, 0x24, 0xd5, 0x9c, 0x6b, 0x88, 0xf3, 0x3c, 0xb5, 0x7f, 0x6c, 0xa9, 0x5f, 0x8f, + 0xe5, 0x5d, 0xb1, 0x29, 0x45, 0x9f, 0x94, 0xd7, 0x93, 0x3e, 0xa9, 0xb0, 0x28, 0x53, 0x6f, 0x8a, + 0xe5, 0x3d, 0x86, 0xd4, 0x8d, 0x72, 0xce, 0x1a, 0x6b, 0x99, 0xa4, 0xb1, 0xb6, 0x81, 0xd5, 0x92, + 0xaa, 0x4f, 0xca, 0x93, 0xa8, 0x39, 0x28, 0xd9, 0xe5, 0x37, 0xd2, 0x28, 0xb5, 0xa4, 0xb2, 0x96, + 0x5d, 0xeb, 0x0d, 0xe4, 0x68, 0xb2, 0xb5, 0xd9, 0xa5, 0xd0, 0x40, 0x47, 0xe4, 0x76, 0x6f, 0xa2, + 0x76, 0x67, 0xfb, 0x1e, 0x9c, 0xac, 0xe5, 0x3d, 0xd8, 0x9e, 0xf6, 0x36, 0x50, 0xef, 0xc2, 0x63, + 0x21, 0x1e, 0x77, 0xe8, 0x68, 0x64, 0x9a, 0xb5, 0xdc, 0x38, 0xaa, 0x04, 0xe4, 0x06, 0xd2, 0x7c, + 0x74, 0x9e, 0x66, 0x23, 0xdf, 0xbe, 0xb5, 0xb4, 0xa3, 0xc3, 0xd3, 0xaf, 0x6c, 0x7b, 0x13, 0xb6, + 0x3d, 0xf3, 0x37, 0x64, 0xc0, 0x67, 0x86, 0x84, 0x9c, 0xd8, 0x4b, 0x0f, 0x0d, 0x1c, 0x1f, 0x78, + 0x6c, 0x52, 0xff, 0x5a, 0x13, 0x4f, 0xf9, 0xbf, 0x24, 0x95, 0xab, 0x2c, 0xfe, 0x55, 0xd1, 0x8c, + 0x52, 0x52, 0xc0, 0xc7, 0x96, 0x38, 0xf6, 0xb2, 0x56, 0x7f, 0xa1, 0x05, 0x1c, 0x6f, 0x19, 0xe9, + 0x5b, 0xd1, 0x1c, 0xd7, 0x4c, 0x17, 0xb0, 0x1d, 0xa0, 0x2c, 0xfa, 0xcc, 0x5c, 0x09, 0x54, 0x5f, + 0x12, 0xb2, 0xe5, 0xbe, 0x05, 0xc9, 0xe3, 0x8d, 0xe7, 0xe1, 0x5e, 0x1e, 0x71, 0xc6, 0x5d, 0xb7, + 0x91, 0xec, 0xd8, 0x1f, 0x3e, 0x87, 0x5a, 0x47, 0x26, 0xf7, 0x7a, 0x54, 0x34, 0xd9, 0x5c, 0x2d, + 0xa1, 0x7e, 0xfd, 0xfe, 0x01, 0x5d, 0x1b, 0x8c, 0x83, 0x9a, 0x46, 0x3f, 0x8a, 0xf9, 0x5c, 0xfb, + 0xb7, 0x7a, 0xf9, 0xfe, 0xdf, 0xe7, 0x21, 0x07, 0x74, 0x42, 0x87, 0x70, 0x40, 0xd5, 0x23, 0xce, + 0x2a, 0x54, 0xdb, 0xc7, 0xa1, 0x14, 0x66, 0xc5, 0xce, 0x60, 0x80, 0xe7, 0x31, 0x43, 0xf5, 0x6e, + 0x69, 0x20, 0x7b, 0x06, 0xbc, 0x5b, 0x11, 0xd0, 0xe6, 0xdb, 0xa0, 0xec, 0x2b, 0x6b, 0x3d, 0x20, + 0x47, 0x91, 0xa9, 0xf2, 0xa7, 0x17, 0x59, 0xb1, 0x5d, 0x36, 0x50, 0xbb, 0x9c, 0xf1, 0xf8, 0x35, + 0x3c, 0xe2, 0x97, 0x94, 0x46, 0x39, 0x74, 0xc0, 0x6b, 0xc8, 0xe3, 0x65, 0xbb, 0x90, 0xe2, 0xe9, + 0xa9, 0x39, 0xf9, 0x6f, 0x30, 0x27, 0xe1, 0x3c, 0xcf, 0xa9, 0x58, 0x35, 0x50, 0x1a, 0xc8, 0x28, + 0x86, 0x01, 0xc2, 0x40, 0xfa, 0x51, 0xf3, 0xe8, 0x2d, 0xd6, 0x3e, 0x33, 0x8b, 0xbd, 0xbf, 0x17, + 0xdf, 0x7f, 0x29, 0xf5, 0x7d, 0xff, 0xf5, 0xbd, 0xdf, 0xaa, 0xa8, 0x49, 0x3e, 0xe7, 0x09, 0xad, + 0xc5, 0x9d, 0xa1, 0x95, 0xd2, 0xa8, 0x2d, 0x66, 0x4c, 0xb8, 0xce, 0x3a, 0x6d, 0xc7, 0x3c, 0x73, + 0x87, 0xcd, 0xd3, 0x23, 0xe7, 0xe9, 0xbc, 0x91, 0x3c, 0x61, 0x2f, 0x4b, 0xaf, 0xb5, 0x67, 0xf4, + 0x97, 0x32, 0x0f, 0x2b, 0xe3, 0xfb, 0x2b, 0xe6, 0xbd, 0xe9, 0xe9, 0xf6, 0xbc, 0xe9, 0xee, 0x66, + 0x5e, 0x68, 0x7c, 0x1d, 0xc2, 0x4c, 0x0f, 0x14, 0x60, 0xfe, 0x76, 0xa9, 0x88, 0xaf, 0x73, 0xb5, + 0x69, 0x98, 0xff, 0xf5, 0x2a, 0x70, 0xc6, 0x67, 0x6c, 0xe9, 0x6b, 0x4d, 0xb1, 0xfd, 0x6e, 0x2d, + 0xf4, 0x57, 0x22, 0x32, 0x72, 0x50, 0x84, 0xa1, 0xa0, 0xf0, 0xa7, 0x6d, 0x6b, 0xc2, 0xbe, 0x9e, + 0xd7, 0xda, 0xc0, 0xb7, 0x6c, 0x1f, 0x76, 0xa1, 0x02, 0x7c, 0x83, 0xe2, 0x75, 0x65, 0x07, 0xf4, + 0x38, 0xfe, 0x20, 0x4f, 0x8b, 0x9a, 0x83, 0x78, 0x34, 0xdd, 0x5d, 0x0c, 0x5f, 0xe9, 0x36, 0x2b, + 0xe8, 0x76, 0xb4, 0xc6, 0xe9, 0x9e, 0xed, 0xd7, 0xcc, 0x20, 0xba, 0x23, 0x92, 0xbe, 0x50, 0x3d, + 0x63, 0xdc, 0x53, 0x03, 0x0e, 0x97, 0x91, 0x3c, 0xe3, 0x63, 0x4e, 0x3b, 0xa9, 0x06, 0x10, 0x75, + 0x4d, 0xd7, 0x62, 0x0f, 0x30, 0xf3, 0x98, 0x49, 0xd8, 0xbb, 0xf3, 0xe9, 0xcb, 0x96, 0xdd, 0x06, + 0xb4, 0xa7, 0xaa, 0x70, 0x19, 0x5c, 0xb9, 0x2a, 0xeb, 0x76, 0xeb, 0x08, 0xbd, 0xdc, 0xc1, 0x7a, + 0xb9, 0x5b, 0xee, 0xe5, 0x7b, 0xe5, 0x5e, 0xbe, 0xfb, 0xe6, 0x7a, 0xb9, 0x95, 0xf7, 0xdd, 0x9f, + 0x5c, 0xbb, 0x97, 0x9b, 0x79, 0xca, 0xe7, 0xc9, 0x63, 0x2b, 0xf5, 0xe8, 0xf7, 0xdf, 0x19, 0xae, + 0xaf, 0x9b, 0x26, 0xb2, 0x99, 0x4f, 0xea, 0xe7, 0xce, 0xa1, 0xfd, 0x5c, 0xad, 0x4a, 0xea, 0xe7, + 0x6e, 0x65, 0x3f, 0x67, 0xfe, 0x23, 0xb0, 0x9f, 0xdb, 0x3c, 0x28, 0x27, 0xfa, 0x11, 0xfa, 0x3a, + 0xda, 0x65, 0xb9, 0xb7, 0x6b, 0xc5, 0x32, 0xd6, 0xdf, 0xf7, 0x08, 0xe9, 0x82, 0x0f, 0x72, 0x41, + 0x07, 0xc6, 0x42, 0x8d, 0x3d, 0xcd, 0x55, 0xee, 0xa8, 0x44, 0xf9, 0x3b, 0xa2, 0x38, 0x0f, 0x6f, + 0x7e, 0xbb, 0x24, 0xad, 0x50, 0x53, 0x52, 0x65, 0x28, 0xb3, 0x96, 0xcd, 0xac, 0x80, 0x02, 0x87, + 0x0a, 0xfb, 0xef, 0x5c, 0x85, 0x84, 0x66, 0xcd, 0xc8, 0x78, 0x17, 0xe5, 0x00, 0xd9, 0x39, 0xc3, + 0xbe, 0x6e, 0x54, 0xa9, 0x2c, 0x9f, 0x4b, 0x6b, 0x45, 0xca, 0x62, 0xb9, 0xef, 0xa2, 0x96, 0x7d, + 0x15, 0x73, 0xcb, 0x4d, 0xcd, 0xcd, 0x3f, 0xd6, 0xdc, 0xb4, 0x49, 0x79, 0xbd, 0x86, 0xf4, 0x1e, + 0x50, 0xe4, 0x95, 0xc1, 0x28, 0x43, 0x4c, 0x7c, 0x9d, 0xf9, 0xec, 0xc6, 0x7c, 0x7a, 0x52, 0xf3, + 0xf1, 0xdf, 0x58, 0x3e, 0x0e, 0x45, 0x3e, 0xb9, 0x09, 0x4e, 0x49, 0x1a, 0xfc, 0x5b, 0x71, 0xed, + 0x1a, 0xc6, 0xf2, 0x81, 0x4b, 0xc3, 0xe6, 0x53, 0xc1, 0xf2, 0x99, 0x71, 0x1d, 0xf9, 0xc8, 0xfa, + 0xce, 0x9e, 0xd6, 0xef, 0x0e, 0xb4, 0xdb, 0xc7, 0xf5, 0x57, 0x26, 0x6b, 0x81, 0x90, 0x20, 0x15, + 0xcb, 0xbd, 0x5f, 0x45, 0x1e, 0x8a, 0x92, 0x7b, 0x3f, 0x69, 0x21, 0x16, 0x5f, 0xac, 0x5c, 0xf6, + 0x62, 0x50, 0xcc, 0x35, 0xc0, 0xbf, 0x93, 0x06, 0x88, 0xec, 0x24, 0x0d, 0xb0, 0x27, 0xd6, 0xf3, + 0x45, 0x16, 0x89, 0xf2, 0x20, 0x1e, 0x4d, 0xf6, 0x62, 0x70, 0x74, 0x2b, 0xe2, 0x8c, 0x31, 0x0a, + 0x59, 0x9c, 0xb1, 0x59, 0x7e, 0x4d, 0x09, 0x51, 0x38, 0x6b, 0xee, 0x93, 0xd8, 0x73, 0xec, 0xdb, + 0x67, 0x2d, 0x87, 0xa8, 0x64, 0x9a, 0x50, 0x2c, 0x38, 0x6c, 0x50, 0x80, 0x3d, 0x21, 0xb9, 0xbf, + 0x3b, 0x0b, 0x6d, 0xe0, 0xda, 0xc1, 0xfb, 0xfb, 0x5f, 0x93, 0xfa, 0xfb, 0x01, 0xb9, 0xbf, 0xb7, + 0x52, 0x7f, 0x37, 0x24, 0xc6, 0x15, 0xd8, 0xd7, 0x35, 0x0d, 0xbc, 0xaf, 0x6b, 0x7c, 0x46, 0x81, + 0xc6, 0x15, 0x77, 0xb8, 0xa0, 0xb4, 0x40, 0x38, 0xbd, 0xf1, 0x8e, 0x4a, 0x28, 0xc7, 0x11, 0x45, + 0x6d, 0x7c, 0x8c, 0x51, 0x65, 0x84, 0xd3, 0x8f, 0xe3, 0xd3, 0x59, 0x38, 0xc6, 0x98, 0x7d, 0x03, + 0x7a, 0x61, 0x1e, 0xd7, 0x0b, 0xd4, 0xdb, 0xc7, 0xa6, 0x17, 0x94, 0x38, 0x01, 0xf5, 0x42, 0x39, + 0xf2, 0xdd, 0x4a, 0x63, 0x12, 0xf3, 0x84, 0x13, 0xbd, 0xc3, 0x69, 0x87, 0x13, 0xe1, 0x13, 0x5c, + 0x37, 0x94, 0x30, 0xdd, 0x30, 0x37, 0xae, 0x1b, 0x16, 0xa0, 0x6e, 0x68, 0x49, 0xd2, 0x0d, 0x33, + 0x86, 0xd1, 0x0d, 0xf3, 0x50, 0x37, 0xd4, 0x8d, 0xa0, 0x1b, 0xe6, 0xa2, 0x6e, 0x78, 0x10, 0x5b, + 0x77, 0x41, 0x1c, 0x09, 0x6c, 0x83, 0x2f, 0x85, 0x1a, 0xe1, 0x55, 0x95, 0xa8, 0x3a, 0xa3, 0x90, + 0xbc, 0x3c, 0x26, 0x79, 0x7a, 0xfd, 0x2b, 0x50, 0x9a, 0xd9, 0x06, 0xb4, 0x02, 0x8c, 0xbc, 0x57, + 0xa8, 0x46, 0x95, 0xbe, 0x32, 0xb6, 0x42, 0xcc, 0x5d, 0x38, 0x0e, 0x7b, 0x46, 0x99, 0xa3, 0xf2, + 0x55, 0x92, 0xc4, 0x97, 0xb0, 0xd7, 0x3f, 0x9f, 0x9a, 0xaf, 0xff, 0xd6, 0xe4, 0x5b, 0xa3, 0xc8, + 0x37, 0x87, 0xd1, 0x9b, 0x5e, 0xa1, 0xaf, 0xc0, 0x76, 0xc4, 0xdf, 0xf5, 0xe7, 0xb8, 0x03, 0xfb, + 0xf0, 0x97, 0xa9, 0x39, 0xfa, 0x6f, 0x36, 0xc7, 0x6d, 0x8a, 0x1c, 0x0b, 0x18, 0x8d, 0x59, 0xa9, + 0x75, 0x97, 0x88, 0x1b, 0x55, 0x78, 0x3e, 0x8b, 0xdd, 0x99, 0x7d, 0x03, 0x25, 0x3d, 0x4b, 0x33, + 0x18, 0xc3, 0x96, 0x94, 0x94, 0xaf, 0x74, 0xf3, 0x7c, 0xc7, 0x92, 0xe0, 0x88, 0x8c, 0x30, 0xd2, + 0xfa, 0xcb, 0x11, 0x61, 0xac, 0xb1, 0x6b, 0x52, 0x74, 0x4b, 0x43, 0x8a, 0x6e, 0x29, 0x41, 0xdd, + 0x32, 0x23, 0x49, 0xb7, 0xd4, 0x31, 0xdd, 0x42, 0xeb, 0x55, 0x0a, 0x51, 0x86, 0xa7, 0xa7, 0xe8, + 0x96, 0x86, 0x91, 0x74, 0x8b, 0xa8, 0xa6, 0xd5, 0x45, 0x79, 0x61, 0x51, 0x7d, 0xba, 0xf7, 0xab, + 0x4e, 0x10, 0xbe, 0x5a, 0x16, 0xaf, 0xc1, 0xac, 0x98, 0xb6, 0x21, 0x2d, 0x83, 0xba, 0x47, 0x53, + 0xcc, 0xb4, 0xcd, 0xbc, 0x27, 0xa5, 0x2c, 0xab, 0x1b, 0x2d, 0x5b, 0x95, 0xc1, 0x5d, 0x9c, 0x56, + 0x38, 0x0e, 0xed, 0x9a, 0xd5, 0xa1, 0x8a, 0x6b, 0xa0, 0x62, 0xf3, 0x84, 0x12, 0xd2, 0x40, 0xd6, + 0x13, 0xa9, 0x1a, 0xa8, 0x04, 0x35, 0x90, 0x43, 0xd6, 0x40, 0x9b, 0x64, 0x0d, 0x54, 0x34, 0x26, + 0xc4, 0xb1, 0x47, 0x46, 0x1c, 0xbb, 0xfe, 0x2b, 0x10, 0x07, 0x69, 0x96, 0x43, 0x03, 0xf4, 0x6d, + 0x7f, 0x38, 0xbd, 0x32, 0x1a, 0xe6, 0x50, 0x5d, 0xbd, 0x69, 0xcc, 0x11, 0x49, 0xc1, 0x1c, 0xaf, + 0x0b, 0x69, 0x42, 0xed, 0x10, 0xcc, 0x71, 0x50, 0x71, 0xde, 0x39, 0x2c, 0xe6, 0xa8, 0x53, 0x48, + 0xb2, 0x9e, 0x49, 0xb2, 0x46, 0x7c, 0x05, 0x1c, 0xa3, 0x5b, 0xbe, 0xfa, 0xa1, 0x88, 0x03, 0x51, + 0x82, 0x2a, 0x27, 0x35, 0x2f, 0xff, 0xd8, 0xf2, 0x4a, 0xb6, 0xef, 0xbb, 0x46, 0xc0, 0x1b, 0x9b, + 0xae, 0x33, 0x9f, 0x91, 0xf0, 0xc6, 0x8d, 0xe4, 0x33, 0x0c, 0xde, 0x20, 0x6f, 0x43, 0x92, 0x86, + 0x5a, 0x4f, 0x5c, 0x77, 0xad, 0x1c, 0x47, 0xc3, 0x1b, 0x94, 0x03, 0xcb, 0xc7, 0x71, 0x1d, 0xf9, + 0xfc, 0x17, 0xe1, 0x0d, 0xeb, 0x35, 0xf0, 0x46, 0xfd, 0xf5, 0xe2, 0x8d, 0x2f, 0x13, 0x78, 0x83, + 0xfb, 0xe3, 0x16, 0x0b, 0xe5, 0xe8, 0xf2, 0xfa, 0x58, 0x6c, 0x45, 0xdb, 0x6d, 0x4a, 0x4f, 0x06, + 0xb2, 0x17, 0x9d, 0x0a, 0x8a, 0x1a, 0x1e, 0x70, 0xb6, 0x1b, 0x0e, 0xbf, 0x40, 0x1e, 0x2b, 0x58, + 0x8c, 0xd0, 0x23, 0x36, 0xea, 0x43, 0x57, 0x7e, 0xbc, 0x9f, 0x45, 0x6d, 0x74, 0xfa, 0x0d, 0x6c, + 0xcf, 0xff, 0xa3, 0x41, 0x41, 0x11, 0x57, 0x52, 0xa5, 0xdc, 0xed, 0xcf, 0x3c, 0xcc, 0xfc, 0xb9, + 0x46, 0x13, 0xdd, 0x2b, 0xef, 0xf6, 0x27, 0xaf, 0x26, 0x2c, 0x02, 0x23, 0x79, 0xc3, 0x33, 0xb4, + 0xf0, 0xf5, 0xf3, 0xe4, 0xdd, 0x6d, 0xd3, 0x8b, 0xd0, 0x11, 0xd2, 0x27, 0x22, 0x30, 0xce, 0x21, + 0x9f, 0x3d, 0xda, 0xf6, 0x49, 0x2c, 0xaa, 0xe8, 0x93, 0x0a, 0x4f, 0x5f, 0x22, 0x98, 0xc1, 0x0e, + 0xc5, 0xe0, 0x84, 0x0a, 0xa8, 0x01, 0x1f, 0xf8, 0xa1, 0x15, 0x42, 0xd0, 0x09, 0x12, 0xd4, 0xc3, + 0x06, 0x78, 0x96, 0x79, 0xc5, 0xca, 0x91, 0x96, 0xb3, 0xe3, 0x3f, 0x48, 0x7e, 0x76, 0xcc, 0x95, + 0x1e, 0x64, 0xc7, 0xdb, 0xa5, 0x79, 0xe2, 0xcf, 0x20, 0x4d, 0xea, 0xc4, 0xbf, 0xe9, 0xd2, 0x4a, + 0xfc, 0x9b, 0x21, 0x05, 0xf1, 0x6f, 0x96, 0xb4, 0x84, 0x3d, 0xcf, 0x97, 0xa6, 0xb3, 0x18, 0x8a, + 0x0b, 0xc8, 0x9b, 0x14, 0xad, 0xad, 0xa3, 0x6f, 0x02, 0x92, 0x81, 0x1d, 0x35, 0xd2, 0x14, 0x7c, + 0x26, 0x4a, 0xce, 0xd0, 0xa4, 0xbd, 0x3f, 0x03, 0xa3, 0x18, 0x91, 0xa6, 0x07, 0x27, 0x55, 0x40, + 0x3f, 0x9e, 0x9f, 0xeb, 0x15, 0xc3, 0x92, 0x59, 0x3b, 0x95, 0x56, 0xf9, 0x51, 0xb4, 0xbc, 0x42, + 0xa7, 0xb8, 0xce, 0x4d, 0x11, 0x18, 0xbd, 0x72, 0x04, 0xc6, 0xb8, 0x0f, 0x9b, 0x84, 0x5f, 0x2e, + 0x5b, 0x86, 0x68, 0x03, 0x1a, 0x1d, 0xeb, 0xac, 0xc8, 0x11, 0xf2, 0xcc, 0x20, 0xfb, 0x9b, 0xb8, + 0x4c, 0xde, 0xd7, 0x44, 0xf2, 0x30, 0xd5, 0x02, 0xf5, 0x86, 0x25, 0xd1, 0x2b, 0xdc, 0x63, 0xb4, + 0x75, 0x31, 0x5b, 0x81, 0x62, 0x06, 0x23, 0xd3, 0x84, 0x67, 0x6d, 0x60, 0x73, 0x8c, 0xfb, 0xe2, + 0x8f, 0x2c, 0xde, 0xb0, 0xa7, 0x83, 0xad, 0xc8, 0xdf, 0x52, 0xbf, 0xb1, 0xe0, 0x45, 0xf2, 0xea, + 0xc6, 0xe4, 0xb0, 0xb7, 0x6e, 0x23, 0xc5, 0x6b, 0x15, 0x97, 0x82, 0x27, 0x38, 0xf1, 0xe0, 0xcb, + 0x6c, 0x77, 0x18, 0xed, 0xee, 0x8a, 0x45, 0x58, 0xbc, 0x9c, 0xf0, 0x09, 0xc9, 0x3c, 0x33, 0x42, + 0xf4, 0x9c, 0xbc, 0x2f, 0xf7, 0xbc, 0xbc, 0xee, 0x82, 0xed, 0xc9, 0xa5, 0x15, 0xac, 0x48, 0x69, + 0xdd, 0x4c, 0x27, 0x94, 0x98, 0xa7, 0x31, 0x4f, 0xaf, 0xe9, 0x50, 0xc8, 0xfa, 0x40, 0x51, 0xd5, + 0xe7, 0xe0, 0x9c, 0xaa, 0xa6, 0xb8, 0x74, 0x2e, 0x97, 0x0b, 0x65, 0x9c, 0xe2, 0xd0, 0xfd, 0xe0, + 0x1d, 0x57, 0xa5, 0xab, 0xc2, 0x55, 0x4e, 0xf1, 0xe7, 0xf0, 0x57, 0x40, 0xb3, 0x2f, 0xa2, 0x1e, + 0x5b, 0xd7, 0xd7, 0x7e, 0x3b, 0x6b, 0xcb, 0x5d, 0xe4, 0xff, 0x8a, 0x9d, 0x6d, 0x4f, 0x8a, 0xad, + 0xf9, 0xbc, 0xe2, 0xbf, 0x88, 0xbf, 0x79, 0xd8, 0xa2, 0x61, 0x3c, 0x2e, 0xc1, 0xd6, 0xdd, 0x22, + 0x7b, 0x73, 0x33, 0x31, 0x6f, 0x3e, 0x8e, 0x6f, 0x3d, 0xbb, 0x3f, 0x5e, 0x47, 0xa6, 0xcb, 0x07, + 0x0c, 0xda, 0x4f, 0xd7, 0xf5, 0xf5, 0x1e, 0xec, 0xfa, 0xb8, 0x97, 0xa2, 0xfb, 0x32, 0xff, 0xa5, + 0x56, 0xa9, 0x76, 0x26, 0xf9, 0x78, 0x2b, 0x58, 0x25, 0x48, 0x6e, 0x76, 0x56, 0xd8, 0x29, 0x48, + 0x25, 0xec, 0xcc, 0xfe, 0x98, 0x20, 0xd9, 0xd9, 0x59, 0x51, 0x09, 0x79, 0x3c, 0x31, 0x72, 0xaf, + 0x70, 0xfc, 0x3d, 0x39, 0xb2, 0x9e, 0xde, 0xe0, 0xfb, 0x06, 0xa5, 0x30, 0x84, 0x04, 0x76, 0xa7, + 0x58, 0xac, 0x61, 0xde, 0x9f, 0x62, 0x31, 0x65, 0xad, 0xde, 0x72, 0xbf, 0xc5, 0xa6, 0xb1, 0xa9, + 0xb1, 0x9f, 0xf8, 0xe6, 0x86, 0x91, 0xeb, 0xbb, 0xae, 0x5a, 0x65, 0x1f, 0x20, 0xe4, 0x0f, 0xd5, + 0x0c, 0xe4, 0x55, 0x3c, 0x1d, 0xb9, 0x53, 0x30, 0xc5, 0x01, 0x82, 0xb7, 0x22, 0x91, 0x7a, 0x1e, + 0x4b, 0x3d, 0x78, 0x35, 0x96, 0x1a, 0x7b, 0x6b, 0x81, 0xe8, 0x3c, 0x8c, 0xa5, 0xcd, 0x2c, 0x85, + 0xc2, 0x3c, 0x4a, 0x5d, 0x99, 0x48, 0xdd, 0xc0, 0x53, 0x1f, 0x1c, 0x92, 0x77, 0x16, 0xe6, 0x6d, + 0xcf, 0xc7, 0xd4, 0xf6, 0x89, 0x3c, 0xb5, 0x01, 0x53, 0x2f, 0xe8, 0xb2, 0x09, 0x98, 0xfa, 0x5f, + 0x14, 0x79, 0xdb, 0xe3, 0x79, 0xb3, 0xda, 0x22, 0xdd, 0x3a, 0xa4, 0x46, 0x8b, 0x65, 0x68, 0xec, + 0x13, 0x03, 0x1e, 0x6f, 0x1b, 0x94, 0x04, 0x9c, 0x66, 0x9f, 0xf7, 0x25, 0xb0, 0xfa, 0x8b, 0x83, + 0x6a, 0xeb, 0x9c, 0xda, 0x97, 0x07, 0x5b, 0xa7, 0x62, 0xab, 0x8a, 0xe4, 0x95, 0xce, 0x2a, 0x7b, + 0xf7, 0x11, 0xb5, 0x16, 0x6c, 0xa7, 0xd9, 0x01, 0xed, 0x9d, 0x9d, 0x30, 0xf8, 0x8d, 0x8b, 0x30, + 0x45, 0xf4, 0x01, 0x71, 0x2d, 0xb7, 0x5d, 0xd5, 0xfd, 0x02, 0xd4, 0x84, 0x04, 0x45, 0xea, 0x12, + 0x6f, 0x79, 0x20, 0xed, 0x6e, 0x6c, 0x7d, 0x28, 0xf4, 0x56, 0x04, 0x74, 0xfc, 0xc9, 0xdd, 0xe4, + 0x5b, 0xb6, 0xc8, 0x5b, 0xa9, 0xb8, 0xb6, 0xc3, 0x74, 0xa4, 0x20, 0x71, 0x5d, 0x84, 0x7a, 0x12, + 0x65, 0xc8, 0x5f, 0x12, 0xab, 0x8d, 0x8f, 0xd5, 0xe6, 0xca, 0x11, 0xb9, 0x36, 0x19, 0xbc, 0xee, + 0x72, 0xfb, 0xaa, 0x68, 0x6d, 0x2a, 0xd6, 0xaf, 0x90, 0xaf, 0x1f, 0x3f, 0x1c, 0xbe, 0xab, 0x14, + 0x53, 0xa1, 0x1c, 0xfa, 0x0b, 0x62, 0xbc, 0xab, 0x67, 0xbc, 0xbb, 0xb2, 0x45, 0x7e, 0x3f, 0x9d, + 0xbf, 0x1f, 0x62, 0xfe, 0x5f, 0x44, 0xdf, 0x41, 0x2c, 0xf1, 0x6e, 0x27, 0x18, 0xf0, 0x1d, 0x6b, + 0x80, 0xbc, 0x19, 0x69, 0x4c, 0xbe, 0x80, 0x95, 0xf5, 0xaf, 0x5e, 0xb6, 0x43, 0x82, 0xf5, 0x2e, + 0xb6, 0x82, 0x01, 0x3e, 0x5e, 0xd7, 0x17, 0xb6, 0x09, 0x89, 0x3e, 0x77, 0xaf, 0x13, 0x8c, 0x12, + 0x45, 0x13, 0x7e, 0x18, 0x8c, 0x2c, 0x3f, 0x97, 0x5d, 0x95, 0xf0, 0x0a, 0xcd, 0x7d, 0x25, 0x59, + 0xda, 0x78, 0xcc, 0x7a, 0xd4, 0xb5, 0x39, 0xc6, 0x69, 0x60, 0xb2, 0x4e, 0x03, 0x4b, 0xf9, 0xa7, + 0x50, 0x28, 0x7a, 0x13, 0xde, 0x6b, 0xbd, 0x2f, 0x82, 0xc1, 0x9f, 0xcf, 0x62, 0xa7, 0x3e, 0x16, + 0x9c, 0x1a, 0xbf, 0x7f, 0x02, 0xfb, 0xae, 0xe1, 0x81, 0xbd, 0x9e, 0x1e, 0x8a, 0xcd, 0xd4, 0x21, + 0x28, 0xde, 0xd8, 0xe7, 0x75, 0x07, 0x40, 0x65, 0xb1, 0xa9, 0x29, 0xbe, 0xa0, 0x6d, 0x22, 0x6a, + 0x0a, 0xd4, 0xd9, 0xf1, 0x78, 0xce, 0xd9, 0x46, 0xe7, 0xd1, 0x3f, 0x43, 0x96, 0x58, 0xc6, 0x90, + 0x9c, 0x75, 0x15, 0xb0, 0x18, 0xdf, 0x3d, 0xac, 0x07, 0x86, 0x58, 0x0f, 0x5c, 0x79, 0x1f, 0xf9, + 0x4f, 0xcc, 0xc4, 0xb3, 0x56, 0x45, 0xff, 0x33, 0x42, 0x23, 0xfb, 0x6f, 0x95, 0x8f, 0x0e, 0xf9, + 0xd8, 0x88, 0x6d, 0xe2, 0xc1, 0xbe, 0xb8, 0x40, 0xf6, 0xa8, 0xa8, 0x95, 0xa6, 0xb3, 0xa3, 0x5e, + 0xf6, 0xac, 0x98, 0x2d, 0x99, 0x58, 0xfc, 0x01, 0xd1, 0x42, 0xfb, 0x95, 0xa6, 0x78, 0xb7, 0xa1, + 0xcd, 0xc8, 0x0e, 0x6a, 0xba, 0x50, 0x22, 0x24, 0x9d, 0x91, 0x3c, 0xac, 0x71, 0x3f, 0xb8, 0x9e, + 0x52, 0xb4, 0x40, 0x0a, 0xdf, 0x8a, 0x10, 0x5d, 0xee, 0x7d, 0x01, 0xb4, 0x01, 0x8a, 0x3f, 0xf0, + 0x02, 0x8b, 0xc1, 0x5c, 0x84, 0x47, 0x0f, 0x1e, 0xad, 0xde, 0x3e, 0x3f, 0x08, 0xf3, 0x82, 0x1a, + 0x2b, 0xed, 0xd8, 0x43, 0x49, 0x34, 0x92, 0x1f, 0x80, 0x9c, 0xb2, 0x4f, 0x20, 0x57, 0x74, 0xde, + 0x59, 0x05, 0xe9, 0xa2, 0x2f, 0xa8, 0xbf, 0xd3, 0x49, 0xf2, 0x87, 0x7f, 0xf3, 0xed, 0x9d, 0xe0, + 0x3f, 0x74, 0x38, 0xce, 0x9d, 0xc3, 0xed, 0x02, 0x49, 0x23, 0xe2, 0x89, 0xec, 0x59, 0xf8, 0x46, + 0x48, 0xa4, 0x78, 0x48, 0x85, 0xbb, 0xb3, 0xb2, 0x75, 0x02, 0xdc, 0xe5, 0xaf, 0xcf, 0xb2, 0x82, + 0x30, 0x77, 0x03, 0x9e, 0xb7, 0x04, 0xf4, 0xf8, 0x77, 0x65, 0x20, 0x1f, 0xff, 0x36, 0xfa, 0xed, + 0xb6, 0x71, 0x12, 0xed, 0x7e, 0xd1, 0x7a, 0x1e, 0xc5, 0x76, 0xd8, 0x88, 0x36, 0x2c, 0x83, 0xa2, + 0x11, 0x49, 0x14, 0xe3, 0x4b, 0x9f, 0xb8, 0x27, 0x56, 0xf2, 0xdd, 0xae, 0xd2, 0x94, 0xbc, 0xdd, + 0x70, 0x17, 0x79, 0x6b, 0x69, 0x4d, 0xa7, 0x15, 0xca, 0x52, 0x9a, 0x6f, 0x43, 0x5e, 0x57, 0x50, + 0xf0, 0x0a, 0x01, 0xdd, 0x87, 0xfd, 0x5b, 0xc2, 0x14, 0x71, 0x69, 0xd9, 0x06, 0x57, 0x0e, 0xf9, + 0xe5, 0xc7, 0x96, 0x20, 0x9d, 0x95, 0x1e, 0x34, 0x1c, 0xfc, 0x39, 0xf9, 0xbe, 0xaa, 0xdd, 0xf5, + 0xe5, 0x8f, 0xb8, 0xf5, 0x44, 0x89, 0xf3, 0xdd, 0xe9, 0x86, 0x7a, 0xda, 0x99, 0x28, 0xb6, 0x08, + 0x7d, 0x0a, 0x8f, 0xc6, 0x78, 0xa7, 0xf4, 0x9c, 0x10, 0x36, 0xf8, 0x62, 0xf7, 0xae, 0x5e, 0x1c, + 0x92, 0x6a, 0x9f, 0xec, 0xe3, 0xad, 0x2f, 0x28, 0x58, 0x2b, 0xc8, 0xfe, 0x22, 0x87, 0x8b, 0x98, + 0x05, 0xd6, 0x30, 0xa9, 0x50, 0x46, 0x76, 0x96, 0x7d, 0x52, 0xd1, 0x4e, 0xd8, 0x60, 0xe6, 0x41, + 0x94, 0x04, 0xee, 0x0f, 0x88, 0xb5, 0xc7, 0x07, 0xa8, 0x31, 0x8b, 0xd9, 0x93, 0xac, 0x61, 0x9e, + 0x38, 0x0c, 0xb4, 0x52, 0x65, 0xf2, 0x30, 0x4f, 0x9c, 0xec, 0x49, 0xf6, 0x30, 0x4f, 0xdc, 0x2c, + 0x5e, 0x03, 0x5c, 0x0d, 0x4b, 0x70, 0xf5, 0x2a, 0xda, 0x7c, 0xb2, 0x25, 0x79, 0x16, 0x5a, 0x4f, + 0x6b, 0x03, 0xa3, 0x71, 0x16, 0xed, 0x78, 0x35, 0x2f, 0x85, 0x1c, 0xd4, 0x27, 0x80, 0xfa, 0x64, + 0xba, 0xe8, 0xf3, 0x6e, 0x0a, 0xd8, 0xc9, 0xaf, 0x68, 0x32, 0x17, 0x12, 0xb5, 0x8f, 0x6a, 0x86, + 0x3c, 0xdd, 0x87, 0x6f, 0x0b, 0xf8, 0x76, 0x06, 0xd7, 0x1d, 0xd6, 0x56, 0x26, 0x2b, 0x7e, 0x39, + 0x4f, 0x94, 0x91, 0xd8, 0x1d, 0x9b, 0x0b, 0x8c, 0xb6, 0x59, 0x20, 0x92, 0xdf, 0x37, 0xc3, 0x52, + 0xb6, 0x27, 0x5f, 0xf6, 0xf7, 0x46, 0xfe, 0xd5, 0xb0, 0x77, 0x9a, 0xcd, 0xd8, 0xfb, 0x11, 0x85, + 0x64, 0xa1, 0x85, 0xce, 0x31, 0xb6, 0x82, 0xe6, 0xe9, 0x3f, 0x41, 0x28, 0x78, 0xfb, 0xf6, 0xc7, + 0x9b, 0x41, 0xd8, 0x54, 0xf9, 0x97, 0x62, 0xb0, 0xcc, 0x31, 0x2c, 0x03, 0x2b, 0xf3, 0x18, 0x96, + 0x55, 0x34, 0x15, 0x0a, 0x0b, 0xa7, 0x42, 0x51, 0xf1, 0x54, 0xd4, 0x5c, 0x53, 0xa1, 0x58, 0xd2, + 0xd1, 0xfe, 0xf0, 0x22, 0x01, 0x75, 0x8d, 0xbe, 0x18, 0x56, 0xe5, 0xee, 0xa2, 0xb7, 0x1a, 0x8e, + 0xee, 0xb7, 0x7f, 0x67, 0x5b, 0x3a, 0xe6, 0xa5, 0x65, 0xdf, 0xbd, 0x0a, 0x91, 0x19, 0x21, 0xb4, + 0x65, 0x9b, 0xd0, 0x9a, 0xed, 0x84, 0x06, 0xd8, 0x0b, 0x47, 0xe0, 0x34, 0x9c, 0x83, 0x03, 0xf0, + 0x19, 0x5c, 0x16, 0x40, 0xd0, 0x0a, 0x7a, 0x21, 0x47, 0xc8, 0x13, 0x0c, 0x82, 0x59, 0x28, 0x10, + 0x9c, 0x82, 0x9b, 0x21, 0x2f, 0x91, 0xf9, 0x6e, 0xe8, 0xf5, 0x74, 0xa8, 0xcf, 0xa1, 0xd4, 0x3c, + 0xcd, 0x76, 0xd4, 0x71, 0xcb, 0x47, 0x9e, 0x10, 0xc2, 0xa8, 0x71, 0xfa, 0x44, 0xf2, 0xcd, 0xfd, + 0x22, 0xf3, 0x62, 0x78, 0x85, 0x7b, 0xd1, 0xa7, 0x7d, 0xab, 0x9b, 0xba, 0xa4, 0x12, 0xbe, 0xa3, + 0x63, 0xcb, 0x8b, 0xd8, 0x5f, 0x1b, 0xf8, 0x13, 0x7e, 0xa7, 0x2f, 0xc2, 0xbc, 0x87, 0x7f, 0x1d, + 0x0c, 0x5c, 0x67, 0xf6, 0x85, 0x8d, 0x5d, 0xf4, 0xd5, 0x8c, 0x5f, 0xa1, 0x8e, 0xd0, 0x1b, 0x69, + 0xcd, 0xee, 0xcb, 0xfc, 0x9a, 0xaf, 0xdb, 0xdd, 0xd4, 0x23, 0x7d, 0x62, 0x7c, 0x91, 0x79, 0xf6, + 0xff, 0x2e, 0x1e, 0xf5, 0x78, 0x7c, 0x92, 0xe7, 0x66, 0x8c, 0xe0, 0x79, 0x84, 0xe7, 0x2f, 0xbd, + 0x8a, 0xcf, 0x74, 0x52, 0x3b, 0x7f, 0xc7, 0xd8, 0x23, 0xb5, 0xc8, 0xbb, 0x7a, 0x5e, 0x46, 0xd4, + 0x82, 0xe5, 0x49, 0x3f, 0xa9, 0xfc, 0x14, 0x72, 0x8d, 0xeb, 0xa5, 0x3a, 0x4c, 0x57, 0x2c, 0x79, + 0xf1, 0xaf, 0x43, 0x72, 0xe3, 0x5f, 0xa7, 0x34, 0x03, 0xff, 0xba, 0xa5, 0x62, 0xfc, 0x9b, 0x2d, + 0x15, 0x6a, 0xa7, 0x91, 0x95, 0x21, 0x14, 0x65, 0x77, 0x1a, 0x7b, 0xdd, 0x7d, 0x92, 0x68, 0x7c, + 0x42, 0xca, 0xc3, 0x67, 0x1e, 0xc4, 0x53, 0x35, 0x60, 0xb5, 0x95, 0x81, 0x19, 0xf1, 0x94, 0x91, + 0xe3, 0x29, 0x87, 0x83, 0xf0, 0x14, 0xad, 0x43, 0xe7, 0xc8, 0x49, 0x64, 0x7b, 0x79, 0x99, 0x5f, + 0x85, 0xaf, 0x93, 0x5f, 0x05, 0xda, 0x4f, 0xc9, 0x73, 0x0c, 0x78, 0xac, 0x88, 0x76, 0x5d, 0x3f, + 0x15, 0x5d, 0xac, 0x3f, 0xde, 0xe6, 0x59, 0x4e, 0xd1, 0xcc, 0xff, 0x23, 0x4b, 0xee, 0x8b, 0x16, + 0xc2, 0x49, 0x86, 0x39, 0xe2, 0x54, 0xa8, 0x6f, 0x9f, 0x78, 0xf8, 0x65, 0x16, 0x57, 0x4c, 0x19, + 0x8f, 0x5a, 0x81, 0x96, 0x68, 0x85, 0x79, 0xca, 0xfe, 0x50, 0x0d, 0x8f, 0xab, 0x41, 0xfb, 0xde, + 0x29, 0x06, 0x27, 0xed, 0x15, 0xb3, 0x3b, 0x0b, 0xe1, 0xb0, 0xf3, 0xe0, 0x1b, 0x38, 0x74, 0xb6, + 0xf4, 0x0d, 0xd8, 0xab, 0x0e, 0x97, 0x52, 0xc4, 0xcb, 0xbe, 0x37, 0xcc, 0x68, 0x8f, 0x51, 0xea, + 0x8c, 0x21, 0x20, 0x7f, 0xbc, 0xc6, 0xd2, 0xa3, 0xfd, 0x95, 0x17, 0xc3, 0x40, 0xfb, 0xfb, 0xca, + 0x2f, 0x6c, 0x02, 0xa9, 0x20, 0x2f, 0x33, 0x7f, 0x2a, 0x08, 0xfa, 0x9f, 0xd1, 0x2a, 0xf8, 0xcc, + 0x4a, 0x10, 0x32, 0x2b, 0x40, 0xe5, 0x32, 0x83, 0xba, 0xbe, 0xd7, 0xd7, 0x25, 0xa5, 0x89, 0x6e, + 0x43, 0x59, 0x3b, 0x6c, 0xef, 0xf2, 0x9f, 0x38, 0xb6, 0xfe, 0xc4, 0xe3, 0xbe, 0xc8, 0xae, 0x88, + 0xff, 0x7c, 0x50, 0x40, 0x44, 0x29, 0xaf, 0x4e, 0xc4, 0xd2, 0xdd, 0x16, 0x1a, 0x7b, 0xc8, 0xa5, + 0x97, 0xa0, 0x75, 0x7c, 0xd6, 0xc3, 0xca, 0x9e, 0xc1, 0xca, 0x26, 0x7b, 0x64, 0x55, 0x96, 0x5d, + 0x97, 0x28, 0xbb, 0x28, 0x2f, 0xb3, 0xb8, 0x82, 0x4a, 0xcf, 0x9b, 0x4a, 0xa5, 0x97, 0xe8, 0xf4, + 0xab, 0x47, 0xa1, 0xe0, 0x30, 0xa7, 0xe0, 0xb7, 0x7b, 0x38, 0x05, 0x8e, 0x14, 0x0a, 0xa8, 0xfc, + 0x22, 0xb4, 0xf8, 0x5b, 0xde, 0x88, 0x95, 0x8e, 0x25, 0x17, 0xa3, 0x06, 0xb0, 0xb6, 0x03, 0x61, + 0xb6, 0xca, 0x0b, 0xcf, 0xc1, 0xa1, 0x01, 0x56, 0xae, 0x33, 0x2f, 0x73, 0x0a, 0x96, 0x3a, 0x77, + 0x5d, 0xfe, 0xb8, 0x8f, 0x27, 0xe9, 0xd7, 0x7e, 0x34, 0x51, 0x35, 0x0e, 0xf2, 0xf2, 0xd3, 0x3e, + 0x9d, 0xf4, 0xe4, 0x38, 0x2a, 0x5f, 0x95, 0x16, 0xbd, 0xac, 0xa0, 0xa1, 0x07, 0x69, 0x28, 0x33, + 0xb8, 0x3a, 0x60, 0x7b, 0x8f, 0x7f, 0xdf, 0x91, 0xf5, 0xc7, 0x1e, 0xf7, 0x75, 0xfd, 0xf6, 0x8d, + 0x9b, 0xa7, 0x61, 0x4a, 0x66, 0xde, 0xad, 0xa4, 0xa1, 0x98, 0xf6, 0x34, 0x11, 0x86, 0x96, 0x69, + 0x28, 0x90, 0x69, 0x28, 0x61, 0x34, 0x14, 0x21, 0x0d, 0x66, 0x4e, 0x43, 0x95, 0x82, 0x86, 0x7c, + 0x99, 0x86, 0x29, 0xe3, 0x55, 0xe3, 0xa2, 0x97, 0xf5, 0xab, 0xa7, 0xa4, 0x71, 0x3a, 0x62, 0x54, + 0x7c, 0x9c, 0x31, 0x22, 0x0d, 0x1b, 0x88, 0x86, 0x5f, 0xcb, 0x34, 0xe4, 0xdd, 0x04, 0x0d, 0x5c, + 0xfe, 0x6e, 0x19, 0x0d, 0xf1, 0xfe, 0x40, 0x34, 0x1c, 0x2e, 0x45, 0x2a, 0x2c, 0x5b, 0xde, 0x48, + 0xed, 0x09, 0x1c, 0xc3, 0x53, 0x6b, 0x30, 0x1a, 0xec, 0xc4, 0x05, 0xa4, 0x42, 0x85, 0xbd, 0x40, + 0x5d, 0x3f, 0x5a, 0x2f, 0x38, 0x36, 0x7a, 0x2f, 0x88, 0x97, 0x59, 0xc8, 0xca, 0x4c, 0xea, 0x01, + 0xa9, 0x65, 0x4e, 0xc9, 0x8c, 0x49, 0x7e, 0xfd, 0xba, 0x51, 0xe5, 0xfe, 0xd8, 0xb0, 0x72, 0x7f, + 0x23, 0xf5, 0x54, 0xf4, 0xf5, 0xfa, 0x9b, 0xe8, 0xeb, 0xd7, 0x51, 0xcb, 0xc2, 0x29, 0x32, 0x67, + 0xb1, 0x9e, 0xea, 0x6b, 0xd4, 0xf3, 0xc8, 0xad, 0xae, 0x67, 0xe6, 0x62, 0xd4, 0xc3, 0x42, 0xfd, + 0xba, 0xba, 0x83, 0x58, 0xaa, 0x0a, 0x4b, 0xbd, 0x8e, 0x7a, 0x9a, 0x58, 0x3d, 0xed, 0xce, 0x83, + 0xfd, 0x87, 0x3d, 0xc5, 0x58, 0xd3, 0x67, 0x78, 0x4d, 0x07, 0x92, 0xfb, 0x73, 0xf9, 0x05, 0x2d, + 0x54, 0x5f, 0xec, 0x87, 0x2a, 0xde, 0xa3, 0xf5, 0x79, 0x66, 0x84, 0x95, 0x15, 0x79, 0x6c, 0x0d, + 0xe7, 0x8c, 0xf4, 0x8f, 0x27, 0xa9, 0xc6, 0x47, 0x4f, 0x7f, 0x94, 0xf1, 0x64, 0x5a, 0xd6, 0x5a, + 0x47, 0xfa, 0x27, 0x19, 0x24, 0xdf, 0x1b, 0xc6, 0x4d, 0xae, 0x20, 0x69, 0x67, 0xbb, 0xbf, 0xcb, + 0xc4, 0x98, 0x24, 0x3f, 0x71, 0x6c, 0x43, 0x42, 0x92, 0x1d, 0x37, 0x49, 0x47, 0x9e, 0x9e, 0x56, + 0x92, 0x16, 0x95, 0x4f, 0xb9, 0x35, 0x74, 0x24, 0xb5, 0x80, 0x92, 0xff, 0xe4, 0x49, 0x80, 0x10, + 0x56, 0x42, 0xb7, 0x31, 0xee, 0x1b, 0xf3, 0xf4, 0xf9, 0x58, 0xfe, 0xdc, 0xde, 0xac, 0xb5, 0xc3, + 0x94, 0x71, 0x86, 0x6b, 0xaf, 0x5d, 0x5d, 0x49, 0x3c, 0xbf, 0xee, 0x32, 0xf2, 0x19, 0xaf, 0xc7, + 0x5e, 0x06, 0x5f, 0xc5, 0x84, 0xa5, 0xd4, 0x20, 0xfa, 0xaa, 0x63, 0xa5, 0x94, 0x1e, 0x79, 0xc3, + 0x61, 0x83, 0x92, 0xad, 0x5e, 0xfa, 0x3a, 0xc8, 0xa4, 0xc9, 0x49, 0x5a, 0x8a, 0x4b, 0x53, 0xf5, + 0x05, 0x09, 0x2a, 0xa9, 0x24, 0x4f, 0xbe, 0xfe, 0x8e, 0x16, 0x44, 0x7e, 0xb6, 0xb9, 0xbd, 0x79, + 0x36, 0xb0, 0x7d, 0x94, 0xa1, 0x4a, 0x83, 0xbc, 0xac, 0xf1, 0x9f, 0x4e, 0x88, 0xa4, 0xe5, 0xa1, + 0x6e, 0xfa, 0x68, 0xd2, 0x86, 0xf1, 0x59, 0x6b, 0x3e, 0x99, 0x90, 0x8f, 0xcf, 0x3e, 0x9e, 0x14, + 0x19, 0x4f, 0x3b, 0x4f, 0x91, 0x9a, 0xd5, 0x48, 0x8d, 0x5b, 0x2c, 0x5b, 0x05, 0xdb, 0x57, 0xfb, + 0x5f, 0x3f, 0xf6, 0xc4, 0x89, 0xf5, 0xbe, 0xc8, 0x6f, 0x64, 0xb9, 0xe6, 0xeb, 0x6b, 0x6e, 0x9c, + 0x9e, 0x3b, 0xea, 0xc0, 0xc6, 0xf9, 0x7b, 0x2b, 0xe9, 0x89, 0xc9, 0x9b, 0x59, 0xee, 0xdf, 0xd3, + 0x4b, 0x8f, 0x11, 0x35, 0x85, 0x5b, 0xab, 0x87, 0xb3, 0x63, 0xb4, 0x17, 0xa6, 0xfa, 0xa2, 0x4c, + 0x91, 0x8b, 0xa4, 0x8d, 0x64, 0x9e, 0x49, 0x3e, 0xf6, 0xb1, 0xeb, 0x90, 0xb8, 0xbd, 0x28, 0x71, + 0xeb, 0x7d, 0x5d, 0xbf, 0x19, 0x46, 0xf2, 0x95, 0x94, 0x30, 0x54, 0x31, 0x0a, 0x25, 0x75, 0x9c, + 0x92, 0x24, 0xc9, 0xaf, 0xbf, 0x5e, 0xc9, 0x1f, 0x03, 0x1d, 0x63, 0xe4, 0x48, 0x92, 0x26, 0xf8, + 0x7b, 0xd0, 0x31, 0x46, 0x7e, 0xb8, 0x88, 0x0a, 0xe2, 0x05, 0xe3, 0xc8, 0xad, 0x68, 0x99, 0x9b, + 0xb2, 0xf0, 0x75, 0x07, 0xb9, 0x8d, 0x27, 0x7f, 0x18, 0x29, 0x56, 0x5e, 0xc5, 0xac, 0xfc, 0x18, + 0x2c, 0x7c, 0xed, 0xc3, 0x14, 0xd1, 0x0c, 0x06, 0x6b, 0x8b, 0x81, 0xfe, 0x0d, 0xce, 0xa6, 0xbf, + 0x02, 0xc4, 0xfe, 0x0d, 0xce, 0xf6, 0xc9, 0xc7, 0x97, 0xd8, 0xfd, 0xc1, 0xd9, 0xfb, 0xf1, 0xa8, + 0x4a, 0x3c, 0xaf, 0x7e, 0x0e, 0x7f, 0x8d, 0xf8, 0x3b, 0x02, 0x83, 0x5e, 0x91, 0xf6, 0x47, 0xc1, + 0xad, 0xfe, 0x67, 0x9c, 0x57, 0xee, 0x2b, 0x11, 0x97, 0x36, 0x3f, 0xda, 0xd8, 0xb6, 0xb0, 0xbd, + 0xa9, 0xa0, 0x65, 0x71, 0x53, 0x93, 0x78, 0x77, 0x81, 0x5d, 0x34, 0xdf, 0x53, 0x70, 0x4f, 0x41, + 0xa1, 0xfd, 0xee, 0xc2, 0xa9, 0x13, 0xd3, 0x21, 0xe9, 0x31, 0x78, 0xaf, 0xc0, 0x60, 0x55, 0x07, + 0x52, 0x7b, 0xae, 0x4b, 0x98, 0xf0, 0x75, 0x3c, 0x5f, 0x82, 0xbf, 0x6a, 0xfc, 0x3d, 0x13, 0xcf, + 0x75, 0x06, 0x0c, 0x7a, 0x4e, 0xf3, 0x3a, 0xd4, 0x7c, 0x77, 0x56, 0x73, 0x68, 0x21, 0xf8, 0xda, + 0xda, 0x42, 0x40, 0xaf, 0x17, 0x2c, 0x6d, 0x6c, 0x82, 0x76, 0xbc, 0x5a, 0xd4, 0xba, 0x70, 0xc5, + 0x0a, 0x58, 0xb1, 0x78, 0x19, 0x3e, 0xe6, 0xe7, 0x6d, 0x6d, 0xc1, 0x82, 0xd6, 0xc5, 0x8d, 0xed, + 0x0b, 0xdb, 0x1f, 0x4d, 0x24, 0x05, 0xce, 0xb3, 0xc1, 0xea, 0xe9, 0x10, 0x3f, 0xf7, 0x1a, 0x13, + 0xe7, 0xb3, 0x3e, 0x49, 0x9c, 0xd7, 0x6a, 0x62, 0xb5, 0xa2, 0x3f, 0xc4, 0xfb, 0xd9, 0x9f, 0x47, + 0x3b, 0x29, 0x2a, 0x0e, 0x4a, 0xc1, 0xf3, 0xc6, 0x69, 0x50, 0x52, 0xfa, 0x37, 0xa4, 0x73, 0x1b, + 0x1f, 0x8b, 0x9b, 0xa0, 0xfa, 0x73, 0xc0, 0x11, 0x24, 0xe4, 0x7a, 0x1e, 0x45, 0x7a, 0xb7, 0xd9, + 0x26, 0x96, 0x33, 0x4f, 0x2b, 0xb5, 0x7d, 0x55, 0x9f, 0x43, 0x08, 0xef, 0x8b, 0xec, 0x7e, 0xbf, + 0x4d, 0x57, 0xdb, 0x57, 0xfe, 0x39, 0x2c, 0xc0, 0x3b, 0x46, 0xd7, 0x4f, 0x6d, 0xe9, 0xb2, 0xc7, + 0xe2, 0x59, 0xd0, 0x62, 0xeb, 0xc4, 0xdc, 0x7e, 0x0e, 0xad, 0x2c, 0x16, 0x54, 0x10, 0xc7, 0x5f, + 0x21, 0x76, 0x67, 0x07, 0x74, 0xe8, 0x1d, 0xa0, 0xc6, 0x7b, 0x9d, 0x38, 0x1e, 0x73, 0xb2, 0x7b, + 0xbf, 0x05, 0xb7, 0xa8, 0xf6, 0x31, 0x4f, 0x1d, 0x36, 0x2f, 0xd4, 0xb0, 0x88, 0x53, 0x75, 0x41, + 0x3d, 0x7d, 0x8d, 0x13, 0xd5, 0x73, 0xe9, 0xaa, 0x5e, 0x7e, 0x77, 0x81, 0xeb, 0x15, 0xec, 0x0c, + 0xaf, 0x40, 0x13, 0x45, 0x49, 0xf4, 0x76, 0x07, 0x5c, 0x4f, 0x0d, 0x94, 0x11, 0xd5, 0x6f, 0x95, + 0xc7, 0x62, 0x25, 0x9d, 0x31, 0x52, 0xdc, 0x30, 0xfd, 0x5d, 0xd5, 0x90, 0xf3, 0x35, 0x27, 0x98, + 0x44, 0x27, 0x9f, 0x39, 0x52, 0xd4, 0x6d, 0x3f, 0x79, 0x42, 0x9f, 0x27, 0xef, 0x98, 0xe4, 0xbe, + 0x6e, 0x3b, 0x75, 0x98, 0x5f, 0x4f, 0x22, 0xe6, 0x83, 0xd1, 0x02, 0x25, 0x38, 0x4a, 0x33, 0xb1, + 0x19, 0x49, 0x3d, 0x7b, 0xeb, 0x75, 0xba, 0x66, 0x67, 0x7b, 0x79, 0x44, 0x07, 0xf2, 0xfe, 0x3c, + 0x67, 0x39, 0x88, 0xb6, 0x0c, 0xd7, 0x4f, 0x3d, 0x1d, 0xd1, 0x28, 0xf1, 0xa3, 0x4a, 0x43, 0xf5, + 0x77, 0x2c, 0x60, 0x23, 0x43, 0x7c, 0xe6, 0xd7, 0x6b, 0x0b, 0x40, 0x0d, 0x19, 0x01, 0xad, 0x98, + 0x81, 0x6f, 0x7e, 0x46, 0xa5, 0x71, 0xef, 0xd0, 0xf8, 0x76, 0x06, 0xcd, 0xf1, 0xb0, 0x1f, 0xbd, + 0xa9, 0x53, 0xbc, 0x19, 0x0e, 0xe8, 0x7c, 0xf8, 0xb6, 0xaa, 0x20, 0xfa, 0x1f, 0x90, 0x21, 0xa9, + 0x7e, 0xf8, 0xae, 0x98, 0x41, 0xef, 0xb0, 0xef, 0x2f, 0xb5, 0x2c, 0x5f, 0x80, 0x9f, 0x18, 0x0b, + 0x60, 0x7a, 0x2c, 0x0f, 0x5e, 0xba, 0x17, 0x92, 0xf2, 0xc0, 0xf1, 0xb5, 0xa1, 0x36, 0x31, 0x0f, + 0x42, 0x54, 0xca, 0x65, 0x19, 0x69, 0x9f, 0xd6, 0xb7, 0xce, 0xd5, 0x6e, 0x56, 0x50, 0x5e, 0x54, + 0xbb, 0xd9, 0x96, 0xae, 0xb8, 0x3e, 0x17, 0xcf, 0xcb, 0x58, 0xb0, 0x1b, 0xcf, 0x7c, 0xec, 0xba, + 0xce, 0xb0, 0x04, 0x4a, 0xe2, 0x33, 0x4b, 0x8d, 0x3c, 0xde, 0x1a, 0x8b, 0x22, 0x96, 0x65, 0xf0, + 0x6e, 0xee, 0x3f, 0xd8, 0x95, 0x88, 0x7b, 0x51, 0xbf, 0x51, 0xd2, 0x82, 0x05, 0xb4, 0x90, 0xc1, + 0x63, 0x05, 0x50, 0xec, 0x2a, 0x36, 0xca, 0x76, 0x1a, 0xb5, 0xac, 0xcd, 0x0e, 0x05, 0x13, 0x51, + 0xda, 0x4e, 0xdc, 0xe5, 0x84, 0x12, 0xa4, 0xf8, 0x4b, 0x17, 0x8e, 0xb4, 0xef, 0x72, 0xc1, 0x74, + 0xa4, 0x21, 0x56, 0x66, 0x4d, 0xfd, 0x46, 0xac, 0xcd, 0x2a, 0x5b, 0x7a, 0x12, 0xbf, 0x2e, 0x51, + 0x1d, 0x1c, 0x0b, 0x6a, 0x37, 0xcb, 0xb5, 0x6d, 0x48, 0x7a, 0xca, 0xa2, 0x00, 0x62, 0x0d, 0x63, + 0xb3, 0xb7, 0x0e, 0x45, 0xcd, 0xac, 0xb5, 0x5b, 0x92, 0xf3, 0xf2, 0xea, 0x58, 0x2e, 0x79, 0xde, + 0xb0, 0x7f, 0x95, 0x92, 0x07, 0xc8, 0x4f, 0x96, 0xfb, 0xad, 0xe1, 0xdc, 0xe8, 0xbc, 0x7a, 0x7a, + 0x3f, 0x8b, 0x6d, 0xa3, 0x61, 0x7e, 0xc5, 0xd3, 0x6d, 0x2a, 0xe6, 0x2b, 0xaa, 0x05, 0xb4, 0x21, + 0x28, 0xb2, 0x41, 0x96, 0xa4, 0xb7, 0xa9, 0x68, 0x56, 0x99, 0xbe, 0x6b, 0xd5, 0x6e, 0x32, 0xfa, + 0xea, 0x36, 0x7a, 0xfb, 0xfc, 0xe7, 0x79, 0xbc, 0x3d, 0x5b, 0x06, 0x93, 0xed, 0x0f, 0xc9, 0x53, + 0xbc, 0x75, 0x31, 0x94, 0x90, 0x84, 0x07, 0x05, 0x59, 0xc6, 0xd2, 0x29, 0x4e, 0x16, 0x7f, 0x6e, + 0x5d, 0xc2, 0x9e, 0xd1, 0x2c, 0x9b, 0x21, 0xa0, 0xf7, 0x2c, 0x01, 0x0b, 0xd1, 0xa5, 0x6a, 0xad, + 0xdf, 0xc8, 0x23, 0x6c, 0x71, 0xb9, 0x9c, 0xbf, 0x51, 0xd6, 0x08, 0x34, 0xbf, 0x65, 0x0d, 0x8e, + 0x8f, 0xd1, 0x78, 0xe5, 0x98, 0x91, 0xf6, 0x2b, 0xfe, 0x88, 0xcd, 0x1d, 0x5b, 0x63, 0x3e, 0xd1, + 0xcc, 0x31, 0xcf, 0xe5, 0x2b, 0x8d, 0x4e, 0x9a, 0x9b, 0x73, 0xbd, 0x00, 0x5a, 0xfc, 0xe9, 0xaa, + 0x29, 0x62, 0x34, 0xf7, 0x43, 0x25, 0xc6, 0x63, 0xf0, 0x18, 0xc8, 0x03, 0x65, 0xb3, 0x3e, 0xa0, + 0x4d, 0x8a, 0x72, 0xa6, 0x4b, 0x8a, 0x9b, 0x73, 0x98, 0xcd, 0xec, 0x26, 0xa2, 0xa7, 0xf4, 0xda, + 0x3b, 0xc1, 0x72, 0xe8, 0x53, 0xc8, 0x31, 0xc4, 0x67, 0xb1, 0xa3, 0xe9, 0xf1, 0xb3, 0x88, 0xc1, + 0x95, 0x90, 0x45, 0x8a, 0x63, 0x2b, 0x92, 0xb7, 0x2a, 0x5d, 0xbd, 0x22, 0x6a, 0x96, 0x49, 0x8e, + 0x9a, 0x65, 0xae, 0xa6, 0x3d, 0x2f, 0xde, 0x97, 0x30, 0x77, 0x31, 0x91, 0xbb, 0xa1, 0x26, 0xd1, + 0x3f, 0x12, 0xb9, 0xb2, 0x98, 0x59, 0xd5, 0xa9, 0x31, 0xb3, 0x28, 0xf2, 0x29, 0x71, 0xd4, 0x20, + 0xc7, 0x7a, 0xa0, 0x88, 0x63, 0xd6, 0x16, 0xd4, 0x13, 0x66, 0x30, 0xa0, 0x86, 0xd2, 0x92, 0x86, + 0x9a, 0xb5, 0x1b, 0x74, 0x4c, 0x8f, 0xe9, 0x4b, 0xcf, 0xe1, 0x5d, 0x0f, 0x64, 0x33, 0xed, 0x97, + 0x6b, 0x5b, 0x8c, 0xfd, 0x20, 0x8f, 0x66, 0x3a, 0x37, 0xbf, 0x8d, 0x9a, 0x4a, 0xcb, 0xf4, 0x14, + 0xf2, 0x9b, 0xc7, 0xf6, 0xe4, 0xfe, 0xe7, 0x69, 0x0e, 0x91, 0xbe, 0x70, 0x92, 0xe7, 0x32, 0xb9, + 0x1d, 0xf7, 0xf2, 0x56, 0x4c, 0xd0, 0xab, 0xff, 0x26, 0xfc, 0xeb, 0x67, 0x82, 0x0a, 0xa2, 0xff, + 0x3a, 0xb9, 0x9f, 0xce, 0xa4, 0xab, 0xdc, 0x86, 0xde, 0xbf, 0x8f, 0xdb, 0x93, 0x79, 0x5b, 0xb9, + 0xae, 0x9f, 0xf7, 0x19, 0x1e, 0xd5, 0x09, 0x5b, 0xf9, 0x80, 0x9f, 0x1f, 0xeb, 0x7b, 0x92, 0x6d, + 0xac, 0xef, 0x2c, 0xfe, 0x7e, 0x02, 0x83, 0x73, 0x72, 0x61, 0xf0, 0xbe, 0xa6, 0xbf, 0xa3, 0x0d, + 0x5d, 0xd6, 0xf6, 0xc8, 0x8a, 0x66, 0x85, 0x01, 0x2d, 0x54, 0x18, 0xd0, 0xc4, 0x33, 0x66, 0x3d, + 0xeb, 0x5e, 0x85, 0xc1, 0xf9, 0xc0, 0xad, 0x67, 0xdd, 0x8b, 0xf8, 0xdb, 0x88, 0xbf, 0x63, 0xf1, + 0xfc, 0x90, 0xcb, 0x75, 0xdc, 0xc2, 0x0d, 0xce, 0x39, 0x99, 0x62, 0x3d, 0x59, 0x4e, 0x63, 0xb5, + 0x9f, 0x3c, 0x71, 0xc2, 0x3e, 0xfa, 0x56, 0x25, 0xce, 0xef, 0x6b, 0x49, 0x9c, 0xdf, 0xdf, 0xa8, + 0x38, 0xef, 0xbc, 0x86, 0x0d, 0x0d, 0x51, 0x5f, 0xab, 0xfb, 0x48, 0x61, 0x43, 0x5b, 0x62, 0xb6, + 0x72, 0xf6, 0xf9, 0x24, 0x1b, 0xba, 0x25, 0x66, 0x5b, 0xeb, 0x74, 0xa3, 0xdb, 0xd0, 0xba, 0x4f, + 0xd1, 0x86, 0xaa, 0x95, 0x36, 0xb4, 0xee, 0x02, 0xb3, 0xa1, 0x2a, 0xa5, 0x0d, 0xad, 0xfb, 0xcf, + 0xb1, 0xd9, 0x50, 0x7c, 0x77, 0x04, 0x1b, 0x7a, 0xdf, 0xb8, 0xb1, 0xd8, 0x50, 0xb9, 0x6e, 0x63, + 0xb3, 0xa1, 0xa1, 0x1b, 0xb1, 0xa1, 0x75, 0x9e, 0x1b, 0xb5, 0xa1, 0x75, 0x75, 0x37, 0x60, 0x43, + 0x3b, 0x92, 0x6d, 0xe8, 0x7d, 0xee, 0xb1, 0xd9, 0xd0, 0xba, 0x96, 0xa1, 0x96, 0xa0, 0xae, 0x23, + 0xd9, 0x12, 0xdc, 0x67, 0x1d, 0xd1, 0x86, 0x86, 0x6e, 0xde, 0x86, 0xde, 0x55, 0x0b, 0x41, 0xd6, + 0x6e, 0x99, 0x29, 0x76, 0x34, 0xa4, 0xb0, 0xa3, 0x1d, 0xd7, 0xb2, 0xa3, 0xf7, 0x15, 0x8f, 0x66, + 0x47, 0xeb, 0xc2, 0x23, 0xdb, 0xd1, 0xba, 0x60, 0xaa, 0x1d, 0xbd, 0xaf, 0x6e, 0x78, 0x3b, 0x8a, + 0x3c, 0x4d, 0xb1, 0xa3, 0x37, 0xc3, 0xbd, 0xb1, 0xdb, 0x51, 0x8a, 0xfe, 0x24, 0xfb, 0x5d, 0x64, + 0x51, 0x15, 0xec, 0x66, 0xd0, 0xeb, 0x9c, 0x61, 0x08, 0xe4, 0xcf, 0xf4, 0x41, 0xfa, 0x4c, 0xf2, + 0xbf, 0xa0, 0x9b, 0x49, 0x91, 0x6b, 0x33, 0x58, 0x0c, 0x5a, 0xfd, 0x4c, 0x27, 0x64, 0x61, 0x1f, + 0xa0, 0x08, 0x69, 0x3a, 0x53, 0x9d, 0x44, 0xb1, 0xe9, 0xa7, 0xb1, 0x55, 0x10, 0x68, 0x73, 0x4d, + 0x73, 0xd0, 0xe6, 0x6e, 0x46, 0x9b, 0xfb, 0x90, 0xe9, 0x21, 0x1e, 0xf3, 0x88, 0xdb, 0xdd, 0xfb, + 0xbe, 0x2a, 0xdb, 0xdd, 0x50, 0xc2, 0xee, 0x7a, 0x3e, 0x06, 0x8a, 0x4c, 0xa1, 0xe7, 0xcf, 0xd1, + 0xee, 0x86, 0xe2, 0x76, 0xd7, 0x44, 0x76, 0x97, 0xea, 0xae, 0x6a, 0xad, 0xdd, 0x8c, 0xe7, 0xd3, + 0x6b, 0x37, 0x97, 0x7e, 0x02, 0xae, 0xc4, 0x37, 0xc8, 0x3a, 0xd9, 0x1a, 0x63, 0x5b, 0xc3, 0x35, + 0xad, 0xf1, 0x4b, 0x23, 0x58, 0x63, 0xda, 0x8b, 0x36, 0x92, 0x3d, 0xb6, 0x2a, 0xec, 0xb1, 0x06, + 0xed, 0x71, 0x1e, 0x7d, 0xdb, 0x96, 0xfd, 0x94, 0xea, 0xa5, 0xd1, 0x6c, 0xf3, 0xbe, 0xff, 0x7f, + 0x6d, 0x33, 0xad, 0x0e, 0x32, 0xc8, 0xab, 0x83, 0x58, 0x6b, 0x2f, 0x86, 0x2c, 0xd3, 0x62, 0x16, + 0x91, 0x84, 0x56, 0x07, 0x19, 0x42, 0x9a, 0x9d, 0xe1, 0xe6, 0xe9, 0xe5, 0x17, 0x73, 0x21, 0x1b, + 0x6b, 0xba, 0x33, 0x1c, 0xc8, 0x69, 0x4c, 0xc7, 0x33, 0xbc, 0xeb, 0x17, 0xa5, 0x6c, 0x16, 0x33, + 0x0f, 0xeb, 0x26, 0x59, 0xe4, 0x33, 0x9d, 0x24, 0xb2, 0x28, 0x79, 0x42, 0x3c, 0x42, 0x1e, 0xad, + 0xc4, 0xa9, 0x62, 0xd1, 0x60, 0x92, 0x56, 0xe2, 0xa0, 0x84, 0x9d, 0xa5, 0x16, 0xc2, 0x11, 0xbd, + 0xc3, 0x42, 0x6b, 0xcd, 0x5a, 0x99, 0x37, 0xce, 0x90, 0x8c, 0x09, 0xf2, 0x48, 0xe3, 0xde, 0xaf, + 0x01, 0x91, 0xe9, 0x65, 0x5a, 0x6d, 0x68, 0x66, 0x78, 0xc0, 0x6a, 0x5b, 0x86, 0x7d, 0xda, 0x8e, + 0x3a, 0x3c, 0x2b, 0x11, 0x1b, 0x3d, 0x5a, 0xc2, 0x23, 0x1e, 0xc3, 0xeb, 0x98, 0xc2, 0x2c, 0x2e, + 0x93, 0xb1, 0x82, 0xac, 0x91, 0x51, 0x0f, 0x6b, 0xc9, 0x13, 0x99, 0xc9, 0x0a, 0x39, 0xd8, 0x9a, + 0xc5, 0xae, 0x1f, 0xb7, 0x5b, 0x0e, 0x77, 0x7f, 0xad, 0x94, 0xc7, 0x1c, 0xa7, 0x2f, 0x5a, 0xf5, + 0xeb, 0x44, 0xa7, 0x91, 0xb7, 0xd7, 0x73, 0xcc, 0x6f, 0x99, 0xf6, 0xde, 0xce, 0x30, 0x80, 0x5e, + 0x32, 0xc5, 0x52, 0xcc, 0x5b, 0x47, 0xb2, 0xac, 0x4c, 0x43, 0x1a, 0xfc, 0x5e, 0x44, 0x2b, 0xee, + 0xa5, 0xa0, 0x2f, 0xee, 0x04, 0x57, 0xe9, 0xa5, 0xe2, 0x84, 0x2e, 0x39, 0x80, 0xed, 0x3b, 0xfd, + 0xd0, 0x9b, 0x86, 0xea, 0x44, 0xeb, 0x26, 0x3d, 0xdf, 0x47, 0xb1, 0x0b, 0x24, 0xbd, 0xa1, 0x3a, + 0x98, 0x95, 0xe8, 0x81, 0x71, 0x4b, 0x90, 0xc7, 0xdb, 0xd9, 0x14, 0x8b, 0x6a, 0x42, 0x5f, 0x48, + 0xd1, 0x22, 0x54, 0xa1, 0xb4, 0x8b, 0x35, 0x89, 0x32, 0x8c, 0xd8, 0x07, 0xa4, 0x29, 0xf4, 0x0d, + 0x79, 0xc7, 0x8b, 0xa0, 0xf1, 0x67, 0x28, 0x64, 0x49, 0x23, 0xa5, 0x19, 0x9d, 0x62, 0x96, 0xff, + 0x8c, 0x22, 0xfd, 0x3e, 0x16, 0xa5, 0x8b, 0x59, 0x10, 0xf2, 0xb0, 0xbd, 0x5d, 0x7e, 0x47, 0x49, + 0x01, 0xef, 0xfd, 0x1c, 0x17, 0x49, 0x5b, 0x38, 0x52, 0x68, 0x74, 0x25, 0xe3, 0x1e, 0xa9, 0x26, + 0x79, 0x2e, 0x61, 0x41, 0x3d, 0xfe, 0xa6, 0xe0, 0x6f, 0x03, 0x0c, 0x36, 0x9c, 0xf8, 0x3b, 0xe2, + 0xa0, 0x85, 0xcb, 0x16, 0x07, 0x16, 0xe2, 0xc8, 0x5d, 0x01, 0x85, 0xa6, 0x2b, 0xa0, 0x50, 0xd2, + 0x63, 0x86, 0x86, 0xe6, 0xef, 0x45, 0xea, 0x77, 0x23, 0x1a, 0x32, 0xe3, 0x39, 0x21, 0xa3, 0xef, + 0xe1, 0xef, 0x6c, 0x3c, 0xd7, 0xc7, 0xf1, 0xca, 0xca, 0xeb, 0xf0, 0x3f, 0x6a, 0x87, 0x99, 0x4b, + 0xa0, 0x13, 0x8e, 0x7f, 0x62, 0xb7, 0x0a, 0x5a, 0xbe, 0x7d, 0xed, 0x79, 0x85, 0xf8, 0x49, 0x29, + 0x11, 0x54, 0xdd, 0xd8, 0xf4, 0xd0, 0x43, 0x1e, 0xbc, 0xf5, 0x10, 0x3f, 0x5b, 0xd8, 0xde, 0xf4, + 0xed, 0x85, 0xed, 0xcd, 0xbe, 0xe6, 0x15, 0xcd, 0xa1, 0x74, 0x08, 0x61, 0x66, 0xed, 0x05, 0x4d, + 0xcd, 0x2b, 0x17, 0x2f, 0x6a, 0x86, 0x45, 0x8b, 0x17, 0x2e, 0x2c, 0x68, 0x6f, 0x5e, 0xd1, 0xf6, + 0x48, 0x3b, 0x5e, 0x2d, 0x6d, 0x6c, 0x4f, 0xe1, 0x02, 0x62, 0xa8, 0xff, 0xfe, 0x59, 0xe2, 0xbc, + 0xe1, 0x03, 0xf9, 0x5c, 0x0d, 0x83, 0x0f, 0x5e, 0x82, 0xc1, 0x87, 0xf4, 0x78, 0x0c, 0x25, 0x9e, + 0x3f, 0xe4, 0x55, 0xe2, 0x2d, 0x05, 0xe6, 0xda, 0x20, 0xeb, 0xc5, 0x2d, 0x88, 0xb9, 0xd6, 0x90, + 0x9e, 0x9d, 0x7f, 0x29, 0x05, 0x73, 0x31, 0x6c, 0x35, 0x5f, 0x93, 0x84, 0xb9, 0x36, 0xe0, 0x7d, + 0x3d, 0xbb, 0x9f, 0x37, 0x3a, 0xe6, 0x9a, 0xff, 0xb7, 0xd4, 0x79, 0x8b, 0xf9, 0x57, 0x19, 0xe6, + 0x12, 0x94, 0x98, 0xab, 0x61, 0xfc, 0xb0, 0x98, 0x2b, 0x23, 0x15, 0x73, 0x35, 0x64, 0x8e, 0x84, + 0xb9, 0x1a, 0xbe, 0x3a, 0x02, 0xe6, 0x6a, 0x57, 0x62, 0x2e, 0xb9, 0x6e, 0x23, 0x61, 0xae, 0x50, + 0x12, 0xe6, 0x22, 0x0f, 0x9d, 0xed, 0x29, 0x98, 0xab, 0xfd, 0x5a, 0x98, 0x6b, 0x7e, 0xdd, 0x8d, + 0x62, 0xae, 0xf9, 0xf5, 0x37, 0x80, 0xb9, 0x22, 0xc9, 0x98, 0xab, 0xa1, 0x7f, 0x6c, 0x98, 0x6b, + 0x7e, 0x70, 0x28, 0x6a, 0x98, 0x1f, 0x4e, 0x46, 0x0d, 0x0d, 0x5b, 0x46, 0xc4, 0x5c, 0x6b, 0x6e, + 0xcd, 0xbc, 0x45, 0xc3, 0xd4, 0x14, 0xbc, 0xb5, 0x46, 0x81, 0xb7, 0x22, 0xd7, 0xc2, 0x5b, 0x0d, + 0xcf, 0x8d, 0x86, 0xb7, 0xe6, 0xf7, 0x8e, 0x8c, 0xb7, 0xe6, 0x77, 0xa4, 0xe2, 0xad, 0x86, 0x97, + 0x86, 0xc7, 0x5b, 0xc8, 0xcf, 0x14, 0xbc, 0x75, 0x33, 0x9c, 0x1b, 0x3b, 0xde, 0xaa, 0xbd, 0x9f, + 0xa2, 0x6d, 0xda, 0x0b, 0xc9, 0x4b, 0xbd, 0xc9, 0x81, 0x39, 0xde, 0x43, 0xbd, 0x53, 0x2c, 0x43, + 0x7e, 0xb1, 0xa8, 0x5e, 0x28, 0xd7, 0x8f, 0x3d, 0x35, 0x60, 0x28, 0x7b, 0x7a, 0xbf, 0x42, 0xe2, + 0x1d, 0x68, 0x45, 0xda, 0xa7, 0x2d, 0x85, 0xc7, 0xa2, 0x97, 0x68, 0x95, 0x29, 0xc5, 0x12, 0x15, + 0x97, 0xb0, 0x75, 0x13, 0x97, 0x6c, 0xe9, 0xdc, 0x9f, 0xa4, 0x09, 0x44, 0x2f, 0x97, 0x60, 0xc4, + 0x60, 0xdd, 0x81, 0xf4, 0x7b, 0x69, 0x0d, 0x9f, 0x18, 0x8b, 0x0b, 0x5e, 0xa3, 0x8b, 0x9e, 0x66, + 0x1e, 0xd9, 0x1f, 0xb6, 0x65, 0xa0, 0xc5, 0x32, 0x50, 0xa4, 0xda, 0x04, 0x9e, 0xe2, 0x88, 0x8c, + 0x61, 0xc1, 0x0b, 0x6c, 0xdd, 0x6c, 0x2e, 0xf6, 0xac, 0x16, 0x58, 0xc3, 0xfa, 0xe5, 0x0c, 0xd0, + 0xb4, 0xaf, 0x3a, 0x1c, 0x46, 0xeb, 0xae, 0xc5, 0xbe, 0xa9, 0xc3, 0x9f, 0xbe, 0xf4, 0x73, 0x56, + 0xb3, 0x2d, 0x9e, 0x7e, 0x36, 0x3a, 0xd7, 0x73, 0x0f, 0x0e, 0xd7, 0xf1, 0xe6, 0x93, 0x54, 0x62, + 0x3c, 0x5e, 0xc7, 0x05, 0xe4, 0x87, 0xc1, 0x58, 0x65, 0x9a, 0x0a, 0x5a, 0xdd, 0x54, 0xc2, 0x9b, + 0x28, 0x2b, 0x3f, 0xc9, 0xc6, 0x51, 0xfc, 0x79, 0x81, 0x8f, 0xe5, 0x91, 0x4e, 0x27, 0x1f, 0xcb, + 0x97, 0xfe, 0x39, 0x7a, 0x81, 0x45, 0xdc, 0xdc, 0x7b, 0x66, 0x4a, 0x85, 0x4a, 0xa7, 0x82, 0x0e, + 0xbf, 0xa8, 0xb7, 0x80, 0xce, 0x07, 0xff, 0xcd, 0x09, 0x3a, 0x1d, 0x90, 0x97, 0x4b, 0x6c, 0xcf, + 0x0e, 0x1b, 0xc5, 0xf3, 0xf3, 0x31, 0x7f, 0xe3, 0x0d, 0x14, 0xcd, 0x84, 0xf9, 0x6b, 0x96, 0xef, + 0xe8, 0x55, 0x69, 0x10, 0x5d, 0x83, 0x69, 0x85, 0xc6, 0x1c, 0x50, 0x45, 0xc3, 0xb4, 0xd6, 0x06, + 0xa2, 0x6c, 0xee, 0x48, 0x4e, 0x81, 0xa5, 0x5c, 0xe6, 0xa5, 0x88, 0x5f, 0x8f, 0x5e, 0xd9, 0xf4, + 0xf3, 0xe8, 0xa5, 0xf6, 0xd9, 0x3b, 0xc2, 0xad, 0xe7, 0x52, 0x67, 0x16, 0x88, 0xb3, 0x6e, 0x99, + 0xb3, 0xb1, 0x38, 0x77, 0xa4, 0x61, 0x28, 0x32, 0x19, 0x93, 0x96, 0x4a, 0x92, 0x8e, 0x09, 0x69, + 0xf5, 0x1b, 0x75, 0xb4, 0x9a, 0x4a, 0xb7, 0x28, 0x6f, 0xb4, 0x59, 0x8a, 0xc4, 0xdc, 0xd2, 0x37, + 0x69, 0xbf, 0x88, 0x15, 0xf1, 0x52, 0x91, 0x12, 0xcd, 0x72, 0xe4, 0x23, 0x44, 0x58, 0xfb, 0x7d, + 0x02, 0x39, 0x0a, 0x7f, 0xd6, 0xdc, 0xbf, 0xf9, 0x4a, 0x9a, 0x4f, 0x51, 0xac, 0x63, 0x8c, 0x04, + 0xf4, 0x09, 0x5c, 0x82, 0xf8, 0x12, 0x84, 0x0a, 0xd4, 0xfb, 0xe6, 0x69, 0x56, 0xd0, 0xac, 0x84, + 0x10, 0x20, 0x7e, 0xe3, 0x71, 0xdc, 0x33, 0xfb, 0xb6, 0xc1, 0x2a, 0x8a, 0x3e, 0xd6, 0x9c, 0x41, + 0x7b, 0x72, 0x5f, 0xeb, 0x0a, 0x68, 0x8c, 0x20, 0xa9, 0x50, 0xa2, 0x66, 0x59, 0xab, 0xe5, 0x88, + 0xee, 0x47, 0x94, 0x39, 0x61, 0xce, 0xd8, 0x9b, 0x6d, 0x3a, 0xc4, 0xd5, 0x45, 0x43, 0xe3, 0xf3, + 0xc1, 0x99, 0x58, 0x94, 0xf7, 0xa9, 0x65, 0xa0, 0xb1, 0x90, 0x7f, 0x79, 0x33, 0x8b, 0xac, 0xaa, + 0x40, 0x71, 0xd3, 0x9c, 0xb0, 0x84, 0xa2, 0x8a, 0x92, 0xe6, 0x6e, 0x58, 0x12, 0x54, 0x21, 0x66, + 0x5c, 0x92, 0x88, 0x7e, 0x7e, 0xd5, 0x4d, 0x5a, 0xbe, 0xc0, 0xf1, 0x2b, 0x0d, 0x24, 0x22, 0xa2, + 0x6f, 0x61, 0xd4, 0xb6, 0xc0, 0x12, 0xa4, 0x31, 0x9b, 0x62, 0x82, 0xdf, 0xe9, 0x84, 0xe5, 0x94, + 0x3b, 0xd3, 0x37, 0xdf, 0x8e, 0xbf, 0x9b, 0x81, 0x79, 0xfb, 0xfd, 0xf4, 0xf6, 0x38, 0xe5, 0xdb, + 0x54, 0x9a, 0x6b, 0x2a, 0xcc, 0x9f, 0x4c, 0x91, 0xb3, 0xeb, 0xff, 0x91, 0xe4, 0x73, 0x35, 0x34, + 0xd0, 0xf1, 0xa1, 0x1e, 0x68, 0xfc, 0xc7, 0x1a, 0x78, 0x90, 0xc5, 0xfa, 0x53, 0x97, 0xfd, 0x09, + 0xea, 0x50, 0x82, 0xfd, 0xf8, 0xce, 0x97, 0x48, 0x45, 0x36, 0xe6, 0x23, 0x28, 0xf3, 0x91, 0x54, + 0x72, 0xdc, 0xf9, 0xad, 0x1c, 0xa5, 0xdb, 0x0d, 0xf1, 0x48, 0xa9, 0x36, 0x1c, 0x3d, 0xa5, 0xb6, + 0xcd, 0x01, 0x2a, 0x17, 0x47, 0x3e, 0x7e, 0xf2, 0x52, 0x1d, 0x48, 0xe7, 0xf9, 0x63, 0x3e, 0x2c, + 0xb2, 0xa0, 0x77, 0x1b, 0x2c, 0x67, 0x71, 0xf8, 0x96, 0xc4, 0xa9, 0x9f, 0x31, 0x24, 0x87, 0x7d, + 0x68, 0x49, 0x53, 0x22, 0xaa, 0xba, 0x75, 0xb5, 0x87, 0x38, 0x76, 0x5b, 0x7c, 0x81, 0xe3, 0x9a, + 0xa5, 0xe7, 0x38, 0x16, 0x68, 0x6d, 0x4a, 0x9e, 0xd3, 0x6a, 0x1e, 0xc0, 0x1f, 0xe2, 0x9f, 0x66, + 0x44, 0x49, 0x4d, 0xc1, 0xbf, 0x37, 0x66, 0x1b, 0x6d, 0x02, 0x2b, 0x25, 0x01, 0xc3, 0x6d, 0x8b, + 0x90, 0xfb, 0xad, 0x67, 0x39, 0x6e, 0x5b, 0xd4, 0x8a, 0xbf, 0x6a, 0xfc, 0x6d, 0x8d, 0xe7, 0xdc, + 0x8b, 0xa8, 0x4e, 0xfe, 0x06, 0xe4, 0x7f, 0x3d, 0x19, 0xb7, 0x29, 0xe0, 0x1a, 0xcb, 0x58, 0x9e, + 0xa8, 0x1a, 0xc3, 0x5c, 0x96, 0xe2, 0x34, 0xd8, 0x16, 0x0a, 0xb4, 0x25, 0x80, 0xd8, 0x2c, 0xba, + 0x29, 0xce, 0x73, 0xb5, 0x2e, 0x5c, 0xbe, 0x54, 0x5c, 0xd1, 0xdc, 0xbe, 0xb2, 0xb9, 0x7d, 0x68, + 0x6d, 0x91, 0xc7, 0xcd, 0x0f, 0x26, 0xce, 0x9b, 0x42, 0x09, 0x6c, 0xd6, 0xd2, 0x84, 0xbf, 0x30, + 0x0c, 0x06, 0xce, 0x26, 0x9e, 0xb7, 0xec, 0x1a, 0x66, 0x2e, 0xec, 0x39, 0x94, 0x1a, 0xc2, 0xfc, + 0x9d, 0xa8, 0xf9, 0xc3, 0xd4, 0x03, 0x16, 0xbd, 0x14, 0xc3, 0x65, 0xb4, 0xe2, 0x3f, 0x36, 0x17, + 0xd6, 0xd8, 0xcf, 0x3d, 0xad, 0xde, 0x73, 0x16, 0xf1, 0x4f, 0x2b, 0xa1, 0x35, 0x05, 0x06, 0xab, + 0x41, 0x1d, 0x87, 0xdc, 0x5b, 0xf4, 0x0b, 0xe8, 0x64, 0xf3, 0x5e, 0x61, 0x94, 0x12, 0x3b, 0xbb, + 0xf3, 0x2a, 0x14, 0xc9, 0x78, 0xab, 0x18, 0x25, 0xc6, 0xc1, 0xf0, 0x96, 0x33, 0x98, 0xc3, 0x3c, + 0xbd, 0x73, 0xbc, 0xe5, 0x61, 0xe9, 0xfa, 0xa1, 0x06, 0x35, 0x72, 0x1d, 0xfe, 0xe6, 0xd2, 0x0c, + 0x6b, 0x02, 0x6f, 0x2d, 0x3a, 0x84, 0xe5, 0xe5, 0x0e, 0x83, 0xb7, 0x82, 0x4a, 0xbc, 0x25, 0xd3, + 0x3c, 0x0c, 0xde, 0x5a, 0x40, 0x78, 0x4b, 0x4a, 0xc2, 0x5b, 0xb4, 0xd7, 0x24, 0x98, 0x82, 0xb7, + 0x82, 0xd7, 0xc2, 0x5b, 0x8b, 0x6e, 0xf8, 0x3b, 0xd1, 0xa2, 0x1b, 0xf9, 0x4e, 0xd4, 0x93, 0x8c, + 0xb7, 0x9a, 0x16, 0x8c, 0x0d, 0x6f, 0x2d, 0x1a, 0xe6, 0x6b, 0xc7, 0xa2, 0x94, 0xaf, 0x1d, 0x4d, + 0xf6, 0x11, 0xf1, 0x56, 0xf8, 0xd6, 0xe0, 0xad, 0x45, 0x1f, 0xa6, 0xe0, 0xad, 0xb0, 0x02, 0x6f, + 0xf5, 0x5c, 0x0b, 0x6f, 0x35, 0x39, 0x46, 0xc3, 0x5b, 0x8b, 0x46, 0xf9, 0x4e, 0xb4, 0x68, 0xc8, + 0x77, 0xa2, 0x26, 0xcf, 0xf0, 0x78, 0xab, 0x69, 0x41, 0x2a, 0xde, 0xba, 0x19, 0xce, 0xdd, 0x38, + 0xde, 0x5a, 0xf4, 0x27, 0xea, 0x75, 0x49, 0x78, 0xab, 0x63, 0x58, 0xbc, 0x15, 0x44, 0xbc, 0xd5, + 0xf1, 0xff, 0x14, 0x6f, 0x85, 0x59, 0xbf, 0xbc, 0x84, 0xa8, 0xa9, 0xf5, 0x3a, 0xf1, 0xd6, 0xb5, + 0xde, 0x4c, 0xc2, 0x5b, 0x00, 0x9e, 0x8f, 0x8b, 0xed, 0xc6, 0xaa, 0xca, 0x3f, 0x81, 0x76, 0xfa, + 0x37, 0xe1, 0xdf, 0x2e, 0xe4, 0x78, 0xd1, 0xa2, 0x06, 0xb4, 0x76, 0x3a, 0xd7, 0x49, 0x69, 0xec, + 0x98, 0x5e, 0x04, 0xa7, 0xbd, 0x5b, 0x90, 0xbb, 0x59, 0xd0, 0x67, 0x81, 0xc9, 0xf7, 0x38, 0x11, + 0xd1, 0x74, 0xdd, 0x53, 0x0a, 0xe9, 0x7a, 0x95, 0x27, 0x8c, 0x57, 0x3a, 0x6f, 0xa9, 0x5f, 0xe3, + 0x75, 0x06, 0x72, 0x50, 0xc6, 0xb4, 0xf7, 0x90, 0x4d, 0xcd, 0xb0, 0xdd, 0x96, 0x40, 0x50, 0x84, + 0xde, 0x4e, 0x0b, 0xed, 0x90, 0x45, 0x11, 0xd7, 0x9c, 0xff, 0x7b, 0x5b, 0x7f, 0xc4, 0x0b, 0x0f, + 0xec, 0xf1, 0x44, 0xdc, 0x2e, 0xee, 0x15, 0x9f, 0xfc, 0x6c, 0x8a, 0x0e, 0x64, 0x07, 0xe0, 0xb3, + 0x6e, 0xbf, 0x06, 0x5c, 0xa0, 0xa2, 0x6b, 0x21, 0x71, 0xad, 0xd9, 0xb9, 0x04, 0xf4, 0x01, 0xe7, + 0x4a, 0xe8, 0x80, 0x62, 0x15, 0x6f, 0xef, 0xdf, 0x84, 0xc7, 0xd3, 0xbe, 0x56, 0xb5, 0xcf, 0x89, + 0x14, 0x68, 0xc7, 0x6b, 0x1e, 0xe8, 0x67, 0xb4, 0x64, 0xb8, 0x97, 0x24, 0x97, 0xee, 0xeb, 0x0e, + 0xaa, 0xb7, 0x77, 0xfb, 0xf7, 0xdf, 0xe3, 0x22, 0x2f, 0x90, 0x35, 0x7f, 0xd6, 0xe5, 0x45, 0xcf, + 0x53, 0x6b, 0x24, 0xb0, 0x15, 0xda, 0xeb, 0x64, 0x6c, 0x45, 0x3b, 0x70, 0xde, 0x1d, 0x1e, 0x59, + 0x99, 0x5a, 0x20, 0x94, 0x8c, 0xac, 0xd8, 0x5e, 0x40, 0xbd, 0xa1, 0x2c, 0x09, 0x5b, 0x51, 0x8c, + 0x61, 0x05, 0x1e, 0x4a, 0xcc, 0x33, 0x0a, 0x2d, 0x26, 0xa7, 0x1c, 0x77, 0xc6, 0x2c, 0xba, 0xd8, + 0xfc, 0xa2, 0x99, 0x45, 0x54, 0xa7, 0xf9, 0xc5, 0x56, 0x36, 0xbf, 0x98, 0x8b, 0xe9, 0xb4, 0xe4, + 0xc7, 0xd7, 0x9f, 0x21, 0xa5, 0x99, 0xd8, 0xae, 0x8e, 0xaf, 0xb5, 0xc8, 0x51, 0x67, 0xca, 0xe2, + 0x73, 0x8b, 0xfb, 0x59, 0x4f, 0x8f, 0x26, 0x90, 0x8e, 0x11, 0x86, 0xe2, 0x1c, 0xa2, 0xf8, 0x4e, + 0x17, 0xf8, 0x5d, 0xd3, 0x20, 0x9b, 0x38, 0x3a, 0x89, 0xcb, 0xf9, 0x97, 0x3a, 0xe7, 0x24, 0x60, + 0x98, 0x2a, 0x09, 0xcd, 0xf0, 0x14, 0x06, 0x9e, 0xe6, 0x33, 0x6a, 0xb5, 0x33, 0x02, 0x8b, 0x2a, + 0x92, 0xdd, 0xee, 0x34, 0x0b, 0x7f, 0x7c, 0x49, 0xd4, 0x54, 0x40, 0xbf, 0x8a, 0x10, 0xea, 0x19, + 0x86, 0xc5, 0x4f, 0x0b, 0x21, 0xc8, 0xc6, 0xa7, 0xff, 0xfe, 0xb3, 0xb0, 0x40, 0x77, 0x4f, 0x0b, + 0xdf, 0xb8, 0x82, 0x90, 0x62, 0x62, 0xb4, 0xc8, 0x3b, 0x4d, 0x96, 0xa1, 0x89, 0x51, 0x2e, 0x43, + 0x13, 0xa3, 0xe9, 0xf7, 0xa2, 0xd4, 0x10, 0x3d, 0x77, 0x77, 0x4e, 0x02, 0x8e, 0xf7, 0x08, 0x6f, + 0xb5, 0x5c, 0x42, 0xbc, 0x55, 0x0d, 0x0f, 0xd2, 0x79, 0x53, 0x06, 0x34, 0x20, 0x22, 0x4b, 0x8f, + 0xe1, 0xb2, 0xe0, 0x38, 0x86, 0xbf, 0x62, 0xf4, 0xd5, 0x0f, 0xc5, 0x53, 0xac, 0x7e, 0x35, 0x10, + 0x1a, 0x8a, 0x93, 0x92, 0xda, 0x23, 0x36, 0x97, 0x2a, 0xa3, 0xb4, 0x62, 0x03, 0x9b, 0x4b, 0x45, + 0x84, 0x66, 0xb6, 0x81, 0x38, 0x7c, 0xae, 0xae, 0x6d, 0x10, 0x22, 0x1a, 0x8d, 0x53, 0xc1, 0x1f, + 0x10, 0x53, 0x28, 0xf1, 0x31, 0x74, 0x48, 0xfb, 0x03, 0x97, 0x30, 0x5e, 0x5d, 0x1a, 0x06, 0xa7, + 0xb9, 0xd1, 0x7e, 0x95, 0x29, 0x67, 0x5d, 0xdd, 0x79, 0xd7, 0x9c, 0x75, 0x6d, 0x65, 0xb3, 0xae, + 0x0e, 0xc5, 0xac, 0x6b, 0x5e, 0x63, 0x16, 0x9e, 0xa9, 0xf0, 0xcc, 0x81, 0x47, 0xf5, 0xce, 0xb0, + 0x3f, 0x5f, 0xca, 0x62, 0x73, 0xae, 0x7d, 0xf1, 0xb9, 0x57, 0xcd, 0x58, 0xe7, 0x5e, 0x63, 0xeb, + 0x87, 0x3a, 0xd3, 0x39, 0x8e, 0x5a, 0xef, 0xe3, 0xb8, 0x64, 0xfd, 0x31, 0x8e, 0x59, 0x36, 0xf8, + 0x93, 0xe7, 0xf8, 0x9e, 0x20, 0x3c, 0x33, 0x09, 0x06, 0x9f, 0x9c, 0x81, 0xc7, 0xaf, 0x62, 0xba, + 0x05, 0xec, 0xf9, 0xe0, 0x86, 0x93, 0x78, 0xcc, 0x82, 0xc1, 0x8d, 0xff, 0x82, 0xc7, 0x7f, 0xc0, + 0xa3, 0x1e, 0x8f, 0xe9, 0x78, 0x1c, 0xc0, 0xe3, 0x6d, 0x78, 0xbc, 0x88, 0x47, 0x1d, 0x0c, 0x7e, + 0x87, 0xf2, 0x4b, 0x83, 0xc1, 0x55, 0xb9, 0xc4, 0x15, 0xbc, 0x2e, 0xc4, 0xe3, 0x38, 0x3c, 0xee, + 0xc4, 0xe3, 0x78, 0x18, 0x7c, 0xf4, 0x31, 0x3c, 0x66, 0xc2, 0xe0, 0xa6, 0x2c, 0x3c, 0x4e, 0xc1, + 0x63, 0x0e, 0x1e, 0xbf, 0x92, 0x28, 0xbf, 0x8f, 0x7f, 0x5f, 0x1c, 0xdc, 0x7c, 0x89, 0xd3, 0xb9, + 0xa5, 0x85, 0x97, 0xff, 0x74, 0x63, 0x32, 0xae, 0xfd, 0xee, 0x7e, 0xfe, 0xfc, 0x7b, 0xb4, 0x2e, + 0x6a, 0x02, 0x0c, 0x3e, 0x33, 0x85, 0xd3, 0xf3, 0x03, 0x13, 0xaf, 0xd7, 0xf7, 0xe7, 0xe2, 0x31, + 0x17, 0x06, 0x9f, 0x9d, 0xc2, 0xcb, 0xf9, 0x6e, 0x07, 0x7f, 0x6f, 0xeb, 0x56, 0x4e, 0xe7, 0x0f, + 0x29, 0xdf, 0x7f, 0xc2, 0x63, 0x0e, 0xa7, 0xef, 0xfb, 0x2a, 0x46, 0x5f, 0x3c, 0xff, 0x1f, 0x2e, + 0x91, 0x8f, 0x29, 0xdf, 0x82, 0x43, 0xe7, 0xf1, 0xf7, 0x32, 0x0c, 0x3e, 0x22, 0xc2, 0x60, 0x7b, + 0xf6, 0xdf, 0x1b, 0x4f, 0xaf, 0x5c, 0xdc, 0xd4, 0xdc, 0x36, 0x1a, 0x9e, 0x4e, 0x24, 0x60, 0x78, + 0x7a, 0xf9, 0x01, 0x18, 0x7c, 0x33, 0x8c, 0x78, 0x1a, 0x39, 0xb2, 0x7c, 0x37, 0xfe, 0x7e, 0x80, + 0xbf, 0xf3, 0x71, 0xe8, 0x8a, 0xd6, 0x6f, 0xb9, 0x9d, 0xd7, 0xe3, 0x91, 0x33, 0x61, 0x6a, 0x1f, + 0xbc, 0x19, 0x96, 0xdb, 0x1f, 0x8f, 0x69, 0x17, 0x62, 0x49, 0x07, 0x70, 0xb0, 0xb6, 0x89, 0x6e, + 0x0b, 0x4e, 0x55, 0x78, 0x5c, 0x82, 0x36, 0x4c, 0xa4, 0x05, 0xaa, 0xb5, 0x5a, 0xad, 0x06, 0x0d, + 0xfe, 0xc6, 0x69, 0xd4, 0xa0, 0x56, 0x09, 0xa0, 0x56, 0xab, 0x80, 0xee, 0x21, 0x3b, 0xa8, 0x65, + 0xfa, 0x01, 0x18, 0x63, 0x30, 0xe5, 0x3f, 0x47, 0x67, 0x46, 0xef, 0x88, 0x4e, 0x8a, 0x8e, 0x8f, + 0xaa, 0xa3, 0x42, 0x14, 0x6f, 0xff, 0x33, 0xcc, 0x84, 0x3b, 0x50, 0xc6, 0xc6, 0x63, 0x3b, 0x61, + 0xe9, 0xfd, 0x70, 0x1a, 0x2e, 0xc0, 0x65, 0xb8, 0x02, 0x57, 0xf1, 0x61, 0x34, 0x1c, 0xed, 0x8f, + 0x9e, 0x8e, 0x5e, 0x88, 0x5e, 0x8e, 0x5e, 0x89, 0x5e, 0x8d, 0x46, 0xf7, 0xf3, 0xfc, 0xf0, 0x5f, + 0x03, 0xfd, 0xd9, 0x9f, 0x32, 0x7b, 0x1b, 0x68, 0x5f, 0x18, 0x6c, 0x59, 0xbc, 0x68, 0x45, 0xfc, + 0x44, 0xbe, 0xed, 0xef, 0x28, 0x48, 0xf0, 0x27, 0x69, 0x54, 0x90, 0xfc, 0x5a, 0xe3, 0xe2, 0xd0, + 0xb2, 0x85, 0xc1, 0x61, 0x6f, 0x16, 0x04, 0x71, 0x1c, 0xb0, 0xb0, 0xbd, 0x71, 0xd9, 0xd0, 0x81, + 0xc4, 0xf5, 0xbd, 0xce, 0x9e, 0xca, 0x37, 0x13, 0x44, 0x0d, 0xfb, 0x6a, 0x60, 0x51, 0x82, 0xfe, + 0x15, 0x8f, 0x2e, 0x5f, 0x34, 0x7a, 0x25, 0x63, 0xb7, 0x83, 0x8b, 0x3b, 0xfc, 0xcb, 0x52, 0x19, + 0xb2, 0xa8, 0xad, 0xb5, 0xad, 0x9d, 0x4a, 0xa8, 0x69, 0xfb, 0xb6, 0xaf, 0x79, 0x05, 0x1d, 0x44, + 0x3a, 0x7a, 0x16, 0x07, 0x5a, 0x62, 0x47, 0x76, 0x63, 0xce, 0x23, 0xc1, 0xe6, 0xf6, 0xd8, 0x5d, + 0x76, 0xf1, 0xf5, 0xf8, 0x33, 0xb1, 0x6a, 0x79, 0xa8, 0xb9, 0xbd, 0x75, 0x21, 0x0e, 0x8e, 0xc4, + 0x1a, 0xfc, 0xdb, 0x04, 0x75, 0xa5, 0x35, 0x50, 0x3b, 0x77, 0x4e, 0x19, 0x94, 0xe0, 0x18, 0xa5, + 0x74, 0x16, 0x88, 0xe5, 0x1e, 0x17, 0x88, 0xee, 0x47, 0x16, 0xb6, 0xd6, 0x55, 0xc4, 0x8e, 0x85, + 0x7c, 0x42, 0x7c, 0x1e, 0xe3, 0xfd, 0x30, 0x6d, 0x35, 0x7c, 0xd5, 0x63, 0x75, 0x5b, 0xb4, 0x78, + 0x61, 0x63, 0x62, 0x4c, 0x56, 0x59, 0x51, 0x9f, 0x32, 0x22, 0x73, 0xb5, 0x2e, 0x0e, 0x85, 0xe8, + 0xd8, 0xbc, 0x70, 0x19, 0xe3, 0x11, 0xff, 0x87, 0x3a, 0x22, 0x14, 0x81, 0xc1, 0x15, 0x96, 0xc4, + 0xf5, 0x8a, 0x79, 0xd8, 0x47, 0x73, 0x13, 0xd7, 0xdf, 0xd6, 0xc2, 0xe0, 0x53, 0xab, 0x12, 0xd7, + 0x4f, 0x3d, 0x06, 0x83, 0x1d, 0x25, 0x23, 0xcc, 0x9d, 0xeb, 0xd0, 0x66, 0xe0, 0x18, 0x4d, 0xc8, + 0x36, 0x4e, 0x13, 0xcc, 0x34, 0xde, 0x69, 0xdb, 0xa1, 0x18, 0xa3, 0x6d, 0x45, 0x0c, 0x6b, 0x26, + 0x7c, 0xda, 0x7a, 0xce, 0xa6, 0x8b, 0xcd, 0x9d, 0x77, 0x98, 0x4f, 0xd0, 0x4e, 0xf1, 0x30, 0xdd, + 0x5f, 0xa6, 0xb7, 0x69, 0x68, 0xee, 0x5c, 0xd0, 0xa4, 0xcc, 0x9d, 0xd7, 0x08, 0x7a, 0xc2, 0x6a, + 0x6d, 0xbf, 0x16, 0xb2, 0x83, 0x1a, 0x9b, 0x53, 0xc8, 0xb5, 0xb9, 0x05, 0xf6, 0x05, 0xac, 0x6d, + 0xb7, 0x20, 0xea, 0x1d, 0x30, 0x09, 0xef, 0x19, 0xd1, 0x8a, 0x9c, 0xe3, 0xf7, 0xe0, 0xbc, 0x3c, + 0x96, 0xbb, 0x80, 0x56, 0xe5, 0x12, 0x1b, 0xcb, 0x5d, 0x0e, 0xea, 0xf0, 0xef, 0x15, 0x3e, 0x96, + 0x13, 0x80, 0xa5, 0xfb, 0x83, 0xa0, 0x71, 0xbd, 0x22, 0x20, 0xea, 0x13, 0x74, 0xc9, 0x73, 0xe7, + 0x6d, 0x1f, 0xe3, 0x58, 0x6e, 0xef, 0x30, 0x63, 0x39, 0x83, 0x72, 0x2c, 0x27, 0xd7, 0x6d, 0xb8, + 0xb1, 0x1c, 0xc5, 0xc9, 0xb9, 0xa4, 0x1c, 0xcb, 0x09, 0x66, 0xc2, 0x37, 0x29, 0x63, 0x39, 0x83, + 0x72, 0x2c, 0x87, 0xdc, 0xd3, 0x53, 0x04, 0xbe, 0xe1, 0xb9, 0x87, 0x28, 0x68, 0x7b, 0x8c, 0x7b, + 0xcb, 0x36, 0x25, 0xbe, 0x3c, 0x74, 0x58, 0x19, 0xf7, 0x24, 0x76, 0xff, 0x35, 0xe2, 0x5e, 0xd5, + 0xe7, 0x82, 0x3e, 0xf6, 0x8d, 0x62, 0x79, 0xae, 0xfc, 0x2d, 0xe2, 0x79, 0xaa, 0x1f, 0xde, 0xb5, + 0x27, 0x7d, 0x8f, 0xd8, 0xc0, 0x79, 0x0a, 0x9b, 0x88, 0xa7, 0xb0, 0x05, 0x2d, 0xf1, 0x33, 0xec, + 0xce, 0x5f, 0x60, 0x2b, 0xf2, 0xf4, 0x36, 0xbc, 0xf7, 0x1c, 0x8e, 0x98, 0x9f, 0xa7, 0x7b, 0x41, + 0x2d, 0x6c, 0x93, 0xd7, 0x85, 0xbc, 0x84, 0x7c, 0x3e, 0x2b, 0xdf, 0x3b, 0x27, 0xf3, 0xf9, 0x3c, + 0xf2, 0xf9, 0x02, 0xe3, 0xf3, 0xa5, 0xa0, 0x87, 0xb8, 0x8d, 0x28, 0xfa, 0x0a, 0xf2, 0x95, 0xed, + 0xff, 0x4d, 0xe1, 0xeb, 0x89, 0x6b, 0xad, 0x03, 0x19, 0x99, 0xaf, 0x9d, 0xc4, 0xd7, 0x0b, 0x43, + 0xf8, 0x7a, 0xdd, 0xeb, 0x40, 0x96, 0xcf, 0xbd, 0xd1, 0x31, 0xf2, 0xf2, 0x05, 0xd7, 0x3f, 0x46, + 0x46, 0xc9, 0x4c, 0x1a, 0x23, 0x3f, 0x7c, 0x79, 0x6c, 0x63, 0xe4, 0xe5, 0xa1, 0xa1, 0x23, 0xbd, + 0xe5, 0x3d, 0xc9, 0x23, 0xbd, 0x87, 0x07, 0x46, 0x1a, 0x23, 0x0b, 0xe6, 0x5b, 0x33, 0x46, 0x0e, + 0x9a, 0x92, 0xc7, 0xc8, 0x82, 0x39, 0x31, 0x46, 0x16, 0x8c, 0xd7, 0x1a, 0x23, 0x3f, 0x7c, 0x62, + 0xb4, 0x31, 0xf2, 0xf2, 0x0d, 0x23, 0x8f, 0x91, 0x97, 0x77, 0xa6, 0x8e, 0x91, 0x1f, 0x3e, 0x37, + 0xfc, 0x18, 0x19, 0xf9, 0x99, 0x32, 0x46, 0xbe, 0x19, 0xce, 0x5d, 0xd7, 0x1a, 0x90, 0xb3, 0xd4, + 0xd6, 0xa6, 0x36, 0xb0, 0x7b, 0x68, 0x95, 0xc4, 0x6f, 0x60, 0x70, 0xfb, 0x7e, 0xeb, 0x52, 0xc1, + 0xca, 0x62, 0xf2, 0x0c, 0x6e, 0xda, 0xc4, 0x47, 0xb7, 0x34, 0x2f, 0x44, 0xbe, 0x30, 0x18, 0x15, + 0x57, 0x78, 0xff, 0xbb, 0xe7, 0x2c, 0xad, 0xab, 0xd8, 0xfc, 0x36, 0xf2, 0xf4, 0x31, 0x23, 0x24, + 0xda, 0xff, 0x6a, 0x23, 0xed, 0xd4, 0xf7, 0x46, 0x1e, 0x90, 0xe5, 0x9e, 0xda, 0x83, 0x7f, 0xf1, + 0xa6, 0x31, 0x31, 0xad, 0xe5, 0xb3, 0xb6, 0x81, 0x0e, 0xdf, 0x3a, 0xc5, 0xa5, 0x33, 0x71, 0x27, + 0xfa, 0xc1, 0x90, 0x3b, 0xfb, 0x63, 0x2b, 0x35, 0x69, 0x86, 0x9d, 0xd0, 0x34, 0xcd, 0xb9, 0xe2, + 0xb3, 0x5c, 0xfa, 0x46, 0x2f, 0xcb, 0x77, 0x6c, 0x3d, 0xa8, 0x59, 0x48, 0xb3, 0xa9, 0x88, 0xc2, + 0x60, 0x61, 0xf9, 0x97, 0xd1, 0x5d, 0xb5, 0x7d, 0xf2, 0x55, 0x65, 0xfc, 0xac, 0x39, 0x7e, 0x16, + 0xa9, 0xed, 0x23, 0x9a, 0x0a, 0x22, 0xec, 0x6a, 0x73, 0xfc, 0xfe, 0xff, 0x8c, 0x9f, 0xbd, 0x16, + 0x3f, 0x7b, 0x87, 0xa5, 0x15, 0xf9, 0x7a, 0xd2, 0xa0, 0xe1, 0xe0, 0x2b, 0xcc, 0x13, 0xc8, 0xae, + 0x68, 0x2f, 0xad, 0x0d, 0x65, 0x33, 0xc1, 0xb4, 0xff, 0x9a, 0x51, 0x26, 0xaa, 0x68, 0x6f, 0xae, + 0x36, 0x4c, 0x1e, 0x6d, 0xdc, 0x65, 0xae, 0x2c, 0xbc, 0x76, 0xea, 0x41, 0x17, 0x06, 0x95, 0x1e, + 0xfc, 0x5a, 0xd6, 0x66, 0x85, 0x52, 0x06, 0x5e, 0x0b, 0x78, 0xcd, 0xbe, 0xb5, 0x3e, 0x3c, 0x9d, + 0x73, 0xf3, 0x9b, 0xa1, 0xba, 0x8d, 0xec, 0xfa, 0x5b, 0xb1, 0x6b, 0x9e, 0x57, 0x58, 0xac, 0xdb, + 0xe8, 0xcf, 0xc2, 0xd1, 0xda, 0x60, 0xf0, 0x53, 0x6f, 0x59, 0xa0, 0x90, 0x9d, 0x9d, 0x95, 0x2c, + 0x3a, 0x7a, 0x06, 0xf2, 0x93, 0xff, 0xc4, 0x27, 0xb9, 0xec, 0xec, 0x2f, 0x92, 0x9e, 0x8e, 0x0f, + 0x67, 0xe2, 0x9d, 0x34, 0x76, 0x86, 0xb4, 0x26, 0x4a, 0xd0, 0xaa, 0xe0, 0xb6, 0x00, 0x2f, 0xf7, + 0x9f, 0x12, 0x77, 0xbd, 0xaa, 0x56, 0x7e, 0xcf, 0x95, 0xb8, 0xc7, 0x4b, 0xd7, 0x38, 0x75, 0x0c, + 0x2e, 0xca, 0xb4, 0x57, 0x32, 0xda, 0xf1, 0xae, 0x4c, 0xfb, 0xec, 0x44, 0x7a, 0xf7, 0x1e, 0xbf, + 0x81, 0x95, 0x37, 0x2d, 0x5e, 0xb2, 0x88, 0x5a, 0x94, 0x45, 0x69, 0xad, 0xf9, 0x37, 0x8d, 0xae, + 0xf6, 0x6f, 0x94, 0x8e, 0x9d, 0x3d, 0xc2, 0xda, 0x4b, 0x4f, 0x3e, 0xf9, 0x0c, 0x38, 0x96, 0xf9, + 0x46, 0x27, 0xf6, 0x5c, 0x8d, 0x51, 0x50, 0xb9, 0xf4, 0x80, 0xef, 0xe5, 0x59, 0x4e, 0xeb, 0x22, + 0xc4, 0xaf, 0x80, 0x46, 0xef, 0x88, 0xf6, 0xbb, 0xdf, 0xf0, 0x6b, 0x42, 0x42, 0x38, 0xa2, 0x15, + 0x90, 0xf2, 0xac, 0x90, 0x36, 0x1c, 0xc1, 0x94, 0x11, 0xe2, 0x4b, 0x40, 0xa3, 0xed, 0x47, 0xae, + 0xcb, 0x57, 0x5e, 0xa1, 0x55, 0x07, 0xc8, 0x6b, 0x6f, 0x84, 0xdf, 0xd7, 0xb1, 0xbb, 0x7e, 0x9d, + 0x16, 0x40, 0xef, 0x4f, 0x2b, 0x72, 0x80, 0x3e, 0xcc, 0xf6, 0x53, 0x6b, 0xc3, 0x7e, 0x0d, 0xa0, + 0xf5, 0xa4, 0x92, 0x0d, 0x61, 0x1a, 0x4b, 0xdd, 0xdd, 0x89, 0x7a, 0x33, 0x2d, 0xa8, 0x35, 0xde, + 0xc1, 0xe7, 0x09, 0x66, 0x98, 0x90, 0x3a, 0x33, 0x79, 0x3d, 0xa5, 0x55, 0x19, 0x56, 0x8b, 0x60, + 0xf7, 0x2e, 0x81, 0x05, 0x81, 0x1c, 0xdb, 0x04, 0x1b, 0xc5, 0x07, 0xa2, 0xd8, 0xb9, 0xf2, 0xfe, + 0x64, 0x09, 0xe0, 0x0c, 0xc5, 0x94, 0x9d, 0x36, 0x15, 0x34, 0x1d, 0xd1, 0x95, 0x10, 0x8a, 0xae, + 0x02, 0xa9, 0x58, 0x74, 0x8a, 0x7a, 0x5d, 0x18, 0xd9, 0x24, 0x04, 0xf2, 0x1b, 0xd3, 0xd9, 0x19, + 0xf8, 0x0d, 0x52, 0x3e, 0x3b, 0x53, 0x05, 0x32, 0xd8, 0x51, 0x4d, 0xab, 0x89, 0x8c, 0x20, 0xa5, + 0x9b, 0x40, 0x4a, 0x33, 0x83, 0xa4, 0xb2, 0xd0, 0x37, 0x97, 0x0a, 0xf9, 0x9b, 0xcb, 0x6e, 0xb4, + 0x00, 0xb5, 0x92, 0xd8, 0x09, 0x0e, 0x33, 0x64, 0xed, 0x5a, 0xd3, 0x98, 0xbd, 0x73, 0x4d, 0xb3, + 0x9e, 0x5d, 0x65, 0xbf, 0xba, 0xa6, 0x31, 0xed, 0xb5, 0x35, 0xcd, 0xff, 0x97, 0xbd, 0x7f, 0x0f, + 0x8c, 0xaa, 0xca, 0x12, 0x85, 0xf1, 0x75, 0x4e, 0x3d, 0x53, 0xa9, 0x54, 0xca, 0x18, 0x63, 0x9a, + 0x4e, 0xe3, 0xa1, 0x2c, 0x62, 0x51, 0x84, 0x54, 0x19, 0x62, 0x8c, 0x31, 0x8d, 0x55, 0x95, 0x4a, + 0xa8, 0x14, 0xa1, 0x26, 0x1d, 0x68, 0xcc, 0x75, 0x18, 0xe6, 0x88, 0x49, 0x15, 0x8f, 0x10, 0xaa, + 0x43, 0x64, 0xd2, 0x4c, 0x7e, 0x76, 0x25, 0x20, 0x46, 0x5a, 0x85, 0x56, 0x74, 0xfc, 0x6c, 0xc7, + 0xeb, 0xf5, 0xeb, 0x6b, 0x23, 0xbe, 0x18, 0x9a, 0xf1, 0xf3, 0x72, 0xb9, 0x4e, 0x44, 0xda, 0x46, + 0x9b, 0xb6, 0x03, 0xd2, 0x0e, 0x6d, 0xd3, 0x8a, 0x48, 0xdb, 0x88, 0x88, 0x68, 0xa3, 0x22, 0x24, + 0x55, 0xbf, 0xb5, 0xd6, 0x3e, 0xf5, 0x48, 0xc0, 0x47, 0xcf, 0xdc, 0xef, 0xfe, 0xf5, 0x11, 0x4e, + 0x9d, 0x73, 0xf6, 0x73, 0xed, 0xb5, 0xd7, 0x5e, 0x8f, 0xbd, 0xf7, 0x59, 0x5b, 0x6e, 0xf3, 0x29, + 0x7e, 0x87, 0x3d, 0x7a, 0xd8, 0xeb, 0x6b, 0x1b, 0x52, 0xcc, 0x23, 0x43, 0x23, 0xe4, 0x7b, 0x22, + 0xb3, 0xce, 0x32, 0x36, 0x1f, 0x39, 0x51, 0x90, 0x4a, 0x09, 0xf8, 0xd5, 0x8a, 0x4c, 0x39, 0x0a, + 0x96, 0x53, 0x96, 0x29, 0xa7, 0x08, 0xcb, 0xb1, 0x55, 0xf9, 0x5f, 0x7f, 0xe5, 0xf5, 0x57, 0xae, + 0xdc, 0x02, 0x36, 0x33, 0xb4, 0xf9, 0x95, 0xd6, 0xf0, 0xa6, 0xe8, 0x08, 0x79, 0x0c, 0xdb, 0xbf, + 0xb7, 0x27, 0x35, 0x65, 0xc0, 0x8c, 0x12, 0xab, 0xa3, 0x9f, 0x2c, 0xe9, 0x9c, 0x31, 0x58, 0x4c, + 0x78, 0x61, 0x9c, 0x58, 0xc4, 0xd9, 0xbb, 0x38, 0x0a, 0xf7, 0x3b, 0x96, 0xe6, 0x9e, 0x9e, 0x9b, + 0x1e, 0x99, 0x34, 0x62, 0x69, 0x34, 0x2b, 0xda, 0x59, 0xbe, 0x78, 0x8f, 0xc4, 0x53, 0xdb, 0x06, + 0xa2, 0x16, 0xd5, 0xbe, 0x7d, 0x0b, 0x4b, 0x2b, 0xc4, 0x56, 0xf4, 0x8c, 0x2a, 0x2b, 0xbe, 0xf0, + 0xa6, 0x18, 0xd9, 0xc6, 0x36, 0xb4, 0x93, 0xcd, 0xce, 0x2d, 0x50, 0x86, 0x25, 0x5a, 0x1d, 0x5b, + 0x80, 0xce, 0xad, 0x4c, 0xf1, 0x4e, 0x6e, 0x0b, 0xef, 0x03, 0x5e, 0xc9, 0x27, 0x64, 0x8b, 0xfa, + 0x8b, 0xb9, 0x4f, 0xec, 0xe3, 0xfa, 0xc4, 0x2d, 0x70, 0x87, 0xd4, 0x65, 0xdb, 0xfe, 0x04, 0xe8, + 0xa3, 0xc5, 0x13, 0xcb, 0x8b, 0x4b, 0xaa, 0x91, 0x6b, 0x3d, 0xec, 0x64, 0xbf, 0x40, 0xc9, 0x7a, + 0x3a, 0xa9, 0x9a, 0xfc, 0x02, 0x91, 0xc7, 0xa4, 0xe9, 0xcb, 0x25, 0x57, 0x72, 0x7e, 0x78, 0xba, + 0x54, 0x14, 0x85, 0x42, 0x7b, 0xc3, 0x07, 0x10, 0x99, 0xde, 0x9c, 0x6c, 0xf7, 0xe4, 0x89, 0xdd, + 0xe0, 0x34, 0x6b, 0x92, 0xff, 0xbc, 0xa3, 0x1e, 0x87, 0x44, 0x0e, 0xae, 0xa7, 0xfb, 0x92, 0x0b, + 0x9d, 0x3e, 0x8a, 0xd3, 0x1d, 0xbf, 0x48, 0x9c, 0xea, 0xf2, 0x4d, 0x27, 0x9d, 0xa4, 0x34, 0xd9, + 0xda, 0xbe, 0x31, 0x10, 0x50, 0x51, 0x05, 0xe5, 0x77, 0x47, 0xb2, 0x43, 0x05, 0xe9, 0x3d, 0x6b, + 0xa3, 0x01, 0xa2, 0xa5, 0xe1, 0x27, 0x25, 0x4b, 0x0c, 0xa4, 0x43, 0xec, 0xcd, 0x4d, 0x89, 0xcb, + 0xe1, 0xe5, 0x92, 0x35, 0x56, 0xae, 0x2a, 0xd6, 0x46, 0x39, 0x11, 0xb5, 0x0b, 0x1f, 0x6f, 0x71, + 0x89, 0x43, 0x8b, 0x55, 0x4b, 0x3f, 0x04, 0x7c, 0xfc, 0x6c, 0xbd, 0xcd, 0xac, 0x5a, 0x6e, 0x93, + 0x55, 0xe3, 0x6d, 0x7a, 0x55, 0xbe, 0xcd, 0x60, 0x6d, 0x90, 0x36, 0xae, 0xb4, 0xf6, 0xe8, 0xef, + 0x1a, 0xc0, 0xa7, 0x4d, 0x48, 0x63, 0x46, 0x6b, 0x03, 0xec, 0x8d, 0x9a, 0x61, 0x3d, 0x71, 0x1c, + 0xd5, 0x88, 0x77, 0x1c, 0x59, 0x55, 0x10, 0x7a, 0x91, 0x7c, 0xc1, 0x49, 0xa5, 0x47, 0x7f, 0x36, + 0x3d, 0x98, 0xec, 0xea, 0x03, 0x1a, 0xeb, 0x90, 0x42, 0x58, 0xe3, 0x8a, 0x11, 0x7c, 0x66, 0xc0, + 0xa7, 0x5e, 0x87, 0x91, 0xc6, 0x4b, 0x42, 0x99, 0xee, 0x4f, 0x2e, 0x89, 0xff, 0xa8, 0x09, 0x12, + 0xeb, 0x31, 0xb4, 0xcf, 0xab, 0xb7, 0x06, 0x41, 0x8a, 0x96, 0x50, 0xed, 0x51, 0x73, 0xf8, 0xe9, + 0xe4, 0x92, 0x28, 0x96, 0x33, 0x7d, 0x45, 0xb2, 0x2f, 0x19, 0x52, 0xbd, 0x18, 0x27, 0xc7, 0x2c, + 0xd7, 0xcf, 0x4e, 0xce, 0x9a, 0xde, 0x84, 0xef, 0xe5, 0x55, 0xd3, 0xb3, 0xa9, 0xe0, 0x13, 0x4c, + 0xd5, 0x9b, 0x0c, 0x85, 0xfd, 0x31, 0xf3, 0xf5, 0x38, 0xe6, 0x93, 0xb3, 0x54, 0x23, 0xde, 0x8d, + 0xc9, 0x59, 0xdc, 0x12, 0x23, 0x42, 0xd2, 0xa2, 0x16, 0x87, 0x7d, 0x51, 0x33, 0xa6, 0x8b, 0xe3, + 0xb3, 0xd9, 0xa1, 0x9f, 0x3f, 0x80, 0xb5, 0xb7, 0xc4, 0x1d, 0x13, 0x57, 0x11, 0x1d, 0xbe, 0x99, + 0x8d, 0x50, 0x34, 0xb3, 0x01, 0x8a, 0x67, 0xae, 0x48, 0xce, 0x82, 0x12, 0xfb, 0x8c, 0xe4, 0xdf, + 0x5c, 0xea, 0x03, 0xe5, 0xca, 0x15, 0xc9, 0x10, 0xd8, 0x94, 0x15, 0xc9, 0xf6, 0xec, 0xae, 0x2c, + 0x6f, 0x80, 0xa8, 0xd9, 0xff, 0xe9, 0x10, 0x4c, 0x09, 0x27, 0xfb, 0xa7, 0x60, 0x8a, 0x94, 0xb5, + 0x2d, 0xe0, 0x98, 0x0e, 0x75, 0xad, 0x03, 0xce, 0x01, 0x6f, 0xe3, 0xd4, 0x10, 0xe8, 0xe3, 0xd6, + 0x91, 0x27, 0xa1, 0x6e, 0xaa, 0x0f, 0xcc, 0xde, 0x06, 0x7c, 0xb7, 0xc6, 0x2f, 0xd3, 0xde, 0xed, + 0x8c, 0x51, 0x7d, 0x5c, 0x4f, 0xfa, 0x14, 0xbe, 0x17, 0x53, 0xbe, 0x45, 0x03, 0x53, 0xfd, 0x50, + 0xea, 0x99, 0x91, 0xec, 0xca, 0xf1, 0x98, 0x74, 0xac, 0x75, 0x23, 0xc6, 0x97, 0x05, 0xb6, 0x82, + 0x82, 0x97, 0xb3, 0xf1, 0x04, 0xb8, 0xda, 0xd6, 0xc5, 0x75, 0xdb, 0xd6, 0x45, 0x21, 0xb9, 0x0f, + 0x21, 0xea, 0x98, 0xff, 0x74, 0xb2, 0xa3, 0xae, 0x14, 0xdf, 0xec, 0x8e, 0x15, 0xc9, 0x56, 0x7c, + 0x6b, 0xad, 0xf9, 0x56, 0x14, 0xc6, 0x3e, 0xe3, 0xd6, 0x83, 0x6e, 0xfe, 0xf4, 0x70, 0xea, 0xb0, + 0x32, 0x1d, 0x66, 0xb5, 0x25, 0x9c, 0x89, 0x1e, 0x33, 0xd6, 0xa0, 0x77, 0xe1, 0xdb, 0xfc, 0x75, + 0x53, 0x83, 0x60, 0x8e, 0xdb, 0xb1, 0x6c, 0xf2, 0x88, 0x31, 0x6b, 0x01, 0xd5, 0x6d, 0xef, 0x2b, + 0xc5, 0xd0, 0x62, 0x4a, 0xdd, 0x9e, 0xc0, 0x98, 0x52, 0xac, 0xb1, 0x8c, 0x62, 0x6f, 0xa2, 0x58, + 0x65, 0x6a, 0x3f, 0x1b, 0xe1, 0x4e, 0xca, 0xbf, 0x90, 0xf2, 0xbb, 0x30, 0x84, 0x82, 0x2a, 0x28, + 0xc7, 0x22, 0xca, 0xe1, 0xa5, 0x10, 0x0c, 0xaa, 0xa6, 0x5c, 0xad, 0x94, 0xab, 0x16, 0xcb, 0xa8, + 0xef, 0x2b, 0x38, 0xf4, 0x24, 0xcc, 0xc2, 0x1c, 0x3e, 0x2d, 0x3e, 0x18, 0xb7, 0x8d, 0x50, 0x88, + 0x0f, 0x42, 0x18, 0xdf, 0x32, 0x75, 0x39, 0xcc, 0x82, 0xd6, 0x1e, 0x19, 0xd3, 0xcf, 0xef, 0xcb, + 0xd3, 0xd2, 0xb6, 0xc7, 0xcd, 0x18, 0xbf, 0x10, 0xf9, 0x4f, 0xfe, 0x01, 0x0a, 0xf1, 0x83, 0xda, + 0x27, 0x61, 0x78, 0x07, 0x6a, 0xdb, 0x16, 0x2d, 0xf7, 0x12, 0x6e, 0x51, 0x57, 0x69, 0x3d, 0x58, + 0xb5, 0x5c, 0xf1, 0x78, 0x09, 0xed, 0xc6, 0x25, 0x9f, 0x55, 0x5a, 0xae, 0xbe, 0x3e, 0x19, 0xc3, + 0xfb, 0xb1, 0x9e, 0x04, 0x5e, 0xeb, 0xfc, 0x27, 0x60, 0x88, 0x4e, 0xa8, 0x17, 0x38, 0xc1, 0xb4, + 0x43, 0x5c, 0xc6, 0x5d, 0x19, 0xac, 0x6c, 0x62, 0xac, 0x6c, 0xce, 0x60, 0xe5, 0x41, 0xc6, 0xca, + 0xc3, 0x19, 0xac, 0x3c, 0x8a, 0xa5, 0xfc, 0x2c, 0x83, 0x95, 0x2d, 0x1a, 0x56, 0x9e, 0xca, 0x60, + 0x65, 0x9b, 0x86, 0x95, 0x1d, 0x19, 0xac, 0x3c, 0xaf, 0xb5, 0x7a, 0x57, 0x06, 0x2b, 0xc3, 0x58, + 0xc6, 0x9e, 0x0c, 0x56, 0xf6, 0x6a, 0xf1, 0xfb, 0x32, 0x58, 0x19, 0xc1, 0xf8, 0x83, 0x8c, 0x95, + 0x43, 0x8c, 0x95, 0xc3, 0x19, 0xac, 0x1c, 0x89, 0x1b, 0x31, 0xfe, 0x58, 0x0e, 0x56, 0x8e, 0x33, + 0x56, 0x4e, 0xe6, 0x60, 0xe5, 0x74, 0x8f, 0x11, 0xc3, 0xcf, 0xe4, 0x60, 0xe5, 0x2c, 0x63, 0x65, + 0x34, 0x8b, 0x15, 0x09, 0x08, 0x2b, 0x68, 0xe5, 0x6d, 0x45, 0x2b, 0x6f, 0xab, 0x64, 0x0d, 0x3c, + 0x9d, 0x3a, 0xe6, 0x3f, 0x21, 0xd9, 0xa7, 0x87, 0x92, 0x21, 0x2c, 0xe9, 0x12, 0x41, 0xa7, 0x92, + 0xbd, 0x27, 0x8e, 0x69, 0x8b, 0xb1, 0xa4, 0x4b, 0x0f, 0x51, 0x48, 0x50, 0x2a, 0xc5, 0xf7, 0x32, + 0xf6, 0x3c, 0x43, 0xf1, 0x44, 0x13, 0xe0, 0x03, 0xc9, 0x89, 0x25, 0x17, 0x1f, 0xa0, 0x30, 0xbf, + 0xe4, 0xd2, 0xc2, 0x2a, 0x1a, 0x4f, 0x48, 0xde, 0xd5, 0x10, 0x68, 0x6c, 0xf8, 0x30, 0x75, 0xd8, + 0xff, 0x61, 0xca, 0x5a, 0x89, 0xd2, 0xbb, 0xaf, 0x85, 0xbc, 0x92, 0x28, 0x57, 0xd7, 0x42, 0xcc, + 0x86, 0x18, 0x0b, 0xcc, 0x5f, 0xe7, 0x5c, 0x47, 0x1e, 0xc0, 0x5a, 0x37, 0xf4, 0x41, 0xa0, 0x49, + 0xed, 0x51, 0xbc, 0x21, 0x70, 0x80, 0x90, 0xa8, 0xe1, 0xc6, 0xa8, 0x31, 0x3c, 0x10, 0xb3, 0xa9, + 0xed, 0x73, 0xc9, 0xf6, 0x71, 0x6f, 0x7f, 0xae, 0x16, 0xa2, 0x2d, 0x1e, 0xab, 0x07, 0x10, 0xca, + 0x20, 0xf2, 0x4f, 0x5f, 0xc5, 0xec, 0xc8, 0x03, 0x71, 0x3b, 0xc1, 0xe2, 0x4c, 0x4c, 0x6d, 0x41, + 0xfd, 0x89, 0xd7, 0xe9, 0xae, 0xdb, 0xd3, 0x7c, 0xc6, 0x2c, 0x21, 0xae, 0x03, 0xdc, 0x7f, 0xe6, + 0xb9, 0x1f, 0x26, 0xfb, 0xa7, 0xae, 0x0e, 0x01, 0x58, 0x71, 0xf4, 0xd8, 0x89, 0x9b, 0xe3, 0x48, + 0xf1, 0xe1, 0xd8, 0x09, 0xb6, 0x35, 0xb5, 0xaf, 0xdb, 0xd1, 0xd4, 0xbd, 0xa1, 0xad, 0xb1, 0x7d, + 0x6d, 0x3c, 0x25, 0x6a, 0xd9, 0x46, 0xb5, 0x40, 0x6a, 0x51, 0xe0, 0xde, 0x00, 0x9d, 0x0c, 0x88, + 0xa5, 0xb4, 0x27, 0xa6, 0xfb, 0x52, 0xbb, 0xa6, 0xd3, 0x08, 0x1f, 0x56, 0xc1, 0x78, 0x2c, 0x33, + 0x9a, 0x8a, 0x27, 0x8c, 0xa6, 0xd2, 0x09, 0xa3, 0xa9, 0xec, 0x6b, 0x46, 0x13, 0x14, 0x5e, 0x30, + 0x9a, 0xe0, 0x74, 0xee, 0x68, 0xea, 0x29, 0xc4, 0x94, 0xd5, 0x94, 0xa2, 0x95, 0x52, 0xf0, 0x58, + 0x8a, 0x17, 0x68, 0xbd, 0xec, 0x43, 0x9c, 0x5f, 0x81, 0xf1, 0xc1, 0x3e, 0x9b, 0xd6, 0xcb, 0x39, + 0x63, 0x29, 0x2e, 0x63, 0x8a, 0xf9, 0x98, 0x22, 0x4f, 0xa3, 0x92, 0xf6, 0x3e, 0x03, 0xa6, 0x58, + 0x48, 0xd6, 0xab, 0x96, 0x5f, 0xed, 0x91, 0x30, 0xbc, 0x03, 0xfb, 0xd6, 0xa2, 0xe5, 0x5f, 0x12, + 0x37, 0x60, 0x78, 0x17, 0xe6, 0xb2, 0x6a, 0xb9, 0xe2, 0x7d, 0x25, 0x18, 0xde, 0x4b, 0xf3, 0x08, + 0x5a, 0xae, 0x3e, 0xa6, 0xc7, 0xcc, 0x68, 0xaa, 0xb0, 0x18, 0xd7, 0xd3, 0xca, 0x3a, 0xc1, 0xd8, + 0x46, 0x30, 0x0e, 0xc5, 0x8b, 0x31, 0xd5, 0x5d, 0xd4, 0xce, 0xf9, 0xd4, 0xce, 0x4d, 0x3c, 0x7a, + 0x36, 0x53, 0x9b, 0x16, 0x50, 0x9b, 0x1e, 0xec, 0x29, 0xc3, 0xd0, 0x87, 0x29, 0x7d, 0x3b, 0xa5, + 0xe7, 0xd1, 0x44, 0xb1, 0x37, 0x51, 0xec, 0x16, 0x0d, 0x2b, 0x4f, 0x51, 0xfe, 0x85, 0x94, 0x7f, + 0x9b, 0x86, 0x95, 0x1d, 0x94, 0x63, 0x11, 0xe5, 0x78, 0x3e, 0x5e, 0x88, 0x29, 0xbf, 0x74, 0x2c, + 0xd9, 0x09, 0x2b, 0x3e, 0xd8, 0xd7, 0x63, 0xd3, 0xda, 0x90, 0x33, 0x96, 0x98, 0x13, 0x1c, 0xc6, + 0x14, 0x79, 0x5a, 0x6b, 0x8e, 0xf4, 0xe8, 0x31, 0xc5, 0x31, 0xc4, 0x41, 0xbe, 0x96, 0xff, 0x78, + 0x5c, 0xc2, 0xf0, 0x93, 0x88, 0x03, 0x8b, 0x96, 0xff, 0x74, 0x9f, 0x1e, 0xc3, 0xcf, 0x60, 0x2e, + 0xab, 0x96, 0xeb, 0x6c, 0x4f, 0x09, 0x86, 0x8f, 0x62, 0xae, 0x42, 0x91, 0x4b, 0x02, 0xc2, 0x77, + 0x76, 0x34, 0xb9, 0x2d, 0xc6, 0xdb, 0x51, 0x0e, 0xda, 0x09, 0xc6, 0x36, 0x84, 0x51, 0xb2, 0xf7, + 0x15, 0x63, 0x2a, 0xa6, 0x85, 0xf9, 0xd8, 0x4e, 0xa9, 0xb4, 0x87, 0xc7, 0x11, 0xb5, 0x69, 0x01, + 0xb6, 0x49, 0x52, 0xe2, 0x65, 0x18, 0xea, 0xa4, 0xf4, 0xed, 0x94, 0xde, 0x85, 0xa5, 0x54, 0x50, + 0xec, 0x4d, 0x14, 0xeb, 0x15, 0x58, 0x91, 0xaa, 0x29, 0xff, 0x42, 0xca, 0x5f, 0x2b, 0xb0, 0x22, + 0xd5, 0x53, 0x0e, 0x92, 0x1b, 0x92, 0xaf, 0xaf, 0x10, 0x53, 0x92, 0x27, 0xa2, 0x59, 0xad, 0x94, + 0x02, 0x69, 0x41, 0x6a, 0xe9, 0x29, 0xd0, 0x46, 0x7b, 0x6b, 0x29, 0x61, 0x25, 0x28, 0xcd, 0x4f, + 0x73, 0x18, 0xa9, 0x1d, 0xe3, 0x17, 0x12, 0x56, 0x24, 0x95, 0x7a, 0x54, 0x22, 0x3a, 0xd0, 0x78, + 0x8c, 0xb4, 0x04, 0xdf, 0xbb, 0xe2, 0x1a, 0x9d, 0x48, 0x71, 0xd2, 0x00, 0x31, 0xa4, 0xb7, 0x4f, + 0xa3, 0x13, 0xa9, 0x8f, 0x5b, 0xdb, 0x9f, 0xa5, 0x13, 0x29, 0x41, 0x74, 0x22, 0xad, 0xcb, 0xd2, + 0x89, 0x34, 0xc4, 0xa5, 0xde, 0x85, 0xb5, 0x6c, 0xc2, 0x6b, 0xf3, 0xdc, 0x13, 0xd2, 0x83, 0x69, + 0x1a, 0x91, 0x1e, 0x24, 0x1a, 0x91, 0x1e, 0x4e, 0xd3, 0x88, 0xf4, 0x28, 0xd1, 0x88, 0xf4, 0xb3, + 0x34, 0x8d, 0x48, 0x5b, 0x88, 0x46, 0xa4, 0xa7, 0xd2, 0x34, 0x22, 0x6d, 0xc3, 0x12, 0x76, 0xa4, + 0x69, 0x44, 0x7a, 0x5e, 0xc3, 0xc6, 0xae, 0x34, 0x8d, 0x48, 0xc3, 0x1a, 0x36, 0xf6, 0xa4, 0x69, + 0x44, 0xda, 0x4b, 0x34, 0x22, 0xed, 0x4b, 0xd3, 0x88, 0x84, 0x34, 0x20, 0x1d, 0x4c, 0xd3, 0x88, + 0x74, 0x48, 0xd0, 0x88, 0x74, 0x38, 0x4d, 0x23, 0xd2, 0x11, 0x8c, 0x3f, 0xc6, 0xd8, 0x38, 0xce, + 0x7c, 0xf1, 0x64, 0x96, 0x46, 0x24, 0xe6, 0xa6, 0xd2, 0x99, 0x2c, 0x8d, 0x48, 0x67, 0x89, 0x46, + 0xa4, 0xd1, 0x2c, 0x8d, 0xc8, 0xd0, 0x67, 0x9c, 0x1a, 0x94, 0xf5, 0x59, 0x1a, 0x91, 0xcd, 0x44, + 0x23, 0xb2, 0x35, 0x4b, 0x23, 0xb2, 0x9d, 0xb0, 0x26, 0x17, 0x07, 0xb6, 0xca, 0xc8, 0x09, 0xe4, + 0xb2, 0x86, 0x13, 0xb2, 0x42, 0x7e, 0xdd, 0x04, 0xd7, 0x94, 0x95, 0xbe, 0x38, 0xa6, 0x71, 0x62, + 0x09, 0x97, 0x0a, 0xde, 0x2a, 0xbb, 0xf0, 0xbd, 0xa2, 0xa7, 0x48, 0x8b, 0xf7, 0xb2, 0x1e, 0x78, + 0x1a, 0xa5, 0xba, 0x39, 0xa6, 0xf7, 0xd6, 0xfb, 0x50, 0x6b, 0x90, 0xab, 0xfb, 0x8a, 0x05, 0x57, + 0x96, 0x6b, 0x2f, 0x12, 0x4b, 0x6b, 0xce, 0x01, 0xa2, 0x36, 0xd9, 0x37, 0x35, 0x2c, 0x07, 0x1b, + 0x4f, 0xc8, 0x21, 0xe4, 0xc6, 0x41, 0x8d, 0x13, 0x23, 0x97, 0x44, 0x0e, 0x1a, 0x52, 0xe7, 0x2b, + 0xde, 0x5a, 0x8d, 0xe3, 0x0e, 0x3d, 0x1a, 0x0d, 0xa4, 0xb9, 0x6b, 0x64, 0xe7, 0xc7, 0x89, 0x1e, + 0x3b, 0xd5, 0xed, 0x1c, 0x10, 0x9c, 0x95, 0xfc, 0xab, 0x11, 0x5f, 0xa5, 0x52, 0x79, 0x24, 0x9b, + 0x1b, 0x88, 0xaf, 0xfe, 0xa0, 0x36, 0x87, 0xaf, 0x32, 0x4f, 0x0d, 0xb6, 0xaf, 0xdd, 0x11, 0xec, + 0xde, 0x22, 0x6a, 0x47, 0xbe, 0xdc, 0x44, 0xdc, 0x3d, 0xa7, 0x66, 0x94, 0x01, 0x15, 0x5c, 0xbf, + 0xda, 0x91, 0xad, 0x1b, 0xed, 0xa7, 0x36, 0xf1, 0x94, 0x50, 0xac, 0x03, 0x6c, 0x83, 0x66, 0x60, + 0xa1, 0x9a, 0xc7, 0x73, 0x79, 0x47, 0xd3, 0x5f, 0x05, 0xcb, 0x83, 0xc8, 0xef, 0x43, 0x19, 0x78, + 0x1a, 0x09, 0x1e, 0xc4, 0x94, 0x25, 0xda, 0x85, 0xb2, 0x68, 0x48, 0x69, 0x50, 0xbc, 0x7d, 0x5f, + 0x06, 0x85, 0xa2, 0x41, 0x81, 0xb2, 0x46, 0x69, 0x8a, 0x6c, 0x1a, 0x0f, 0x85, 0xd2, 0x18, 0xd9, + 0x34, 0x1e, 0x0a, 0x3f, 0x41, 0x11, 0xaf, 0x9d, 0x20, 0x69, 0x08, 0x0a, 0xb5, 0x94, 0x30, 0x50, + 0x59, 0x60, 0xbc, 0x23, 0x95, 0x4a, 0x59, 0x2b, 0x18, 0x0b, 0x6e, 0xc6, 0x02, 0xc2, 0x07, 0xa9, + 0xfe, 0x0c, 0x74, 0x91, 0x34, 0xb6, 0x2a, 0x0a, 0x8c, 0xeb, 0x29, 0xad, 0x9b, 0xd3, 0xce, 0x25, + 0x3b, 0x77, 0x4f, 0x65, 0x9e, 0xda, 0x42, 0xf0, 0x2e, 0xc9, 0xc0, 0x1b, 0xab, 0x25, 0xf8, 0x1c, + 0x8d, 0x13, 0x31, 0x14, 0x79, 0x60, 0xbc, 0x0c, 0xbc, 0x10, 0x32, 0x0d, 0x37, 0xdb, 0x2e, 0x90, + 0x73, 0xb3, 0x53, 0xc3, 0x3d, 0xf2, 0x74, 0x7f, 0x6a, 0x0f, 0xda, 0x2e, 0xf6, 0xe9, 0x4b, 0x40, + 0x9f, 0xda, 0xeb, 0xa0, 0xa7, 0xef, 0xa5, 0x8e, 0xcf, 0xfd, 0x10, 0xe3, 0x23, 0xa9, 0x93, 0xa1, + 0x15, 0xa9, 0xe3, 0xec, 0x81, 0x76, 0x06, 0x5a, 0x4e, 0x68, 0xe1, 0x28, 0x4b, 0xd9, 0x0f, 0x6d, + 0x66, 0x85, 0x5a, 0xb6, 0xbb, 0x7c, 0x15, 0x18, 0xfe, 0xfb, 0x53, 0x50, 0xe4, 0x9c, 0x2e, 0x55, + 0xaf, 0x79, 0xf8, 0xcd, 0xbb, 0x69, 0x17, 0x52, 0xe0, 0xe7, 0x1e, 0x83, 0x36, 0xc7, 0x6a, 0x15, + 0x96, 0xcf, 0xe5, 0xfd, 0x20, 0x49, 0x45, 0x3c, 0x1b, 0xb4, 0x50, 0x91, 0x19, 0x82, 0x7d, 0xa8, + 0x8b, 0x8c, 0xd0, 0xee, 0x88, 0xfe, 0x7d, 0x87, 0xef, 0xf6, 0x18, 0xb3, 0xfb, 0x23, 0x68, 0x57, + 0x91, 0xcb, 0x87, 0x58, 0x94, 0x17, 0xdd, 0x81, 0x90, 0x9c, 0x56, 0x83, 0x08, 0xeb, 0x3e, 0xcc, + 0x31, 0x82, 0x30, 0x1d, 0x44, 0xea, 0x3a, 0x83, 0x7a, 0xdd, 0x21, 0xca, 0x99, 0xcd, 0xd5, 0xba, + 0x31, 0xec, 0x8b, 0x95, 0x29, 0x2b, 0x52, 0x67, 0x1c, 0x8d, 0x74, 0xa2, 0xa9, 0x57, 0xaf, 0x1a, + 0xdb, 0x06, 0xfe, 0xe5, 0xf7, 0x31, 0xf3, 0xb6, 0x81, 0xee, 0xcf, 0xd0, 0x4e, 0xba, 0x57, 0x29, + 0xeb, 0x49, 0x6d, 0x4f, 0x44, 0x77, 0xb0, 0xf7, 0x58, 0xbd, 0xb0, 0x7e, 0xc8, 0x83, 0xe4, 0xf4, + 0xa7, 0x53, 0x0f, 0x9b, 0x1f, 0x56, 0x8b, 0x1c, 0x30, 0x6f, 0x80, 0x76, 0x17, 0x70, 0xd8, 0xbf, + 0x96, 0x62, 0x58, 0x5b, 0x10, 0xed, 0x11, 0xd3, 0x2d, 0x23, 0xae, 0xe5, 0x10, 0x21, 0x58, 0xfa, + 0xcf, 0x1c, 0xbe, 0x7b, 0xcd, 0xbe, 0x37, 0xef, 0xee, 0x3b, 0x7d, 0xe8, 0xee, 0xb9, 0xe7, 0x3e, + 0xdc, 0x3a, 0x3d, 0x80, 0xe3, 0x0a, 0xe0, 0x8d, 0xf0, 0x53, 0x80, 0x7a, 0x39, 0x50, 0x7b, 0xce, + 0x38, 0x1a, 0x30, 0x64, 0x73, 0x06, 0xde, 0x26, 0x86, 0x77, 0x34, 0x03, 0xaf, 0x41, 0xc0, 0x4b, + 0x74, 0x46, 0x30, 0x13, 0xd5, 0x20, 0xdc, 0x8b, 0xd1, 0x16, 0x98, 0xef, 0xa1, 0xbe, 0xa9, 0x6b, + 0x4d, 0x78, 0xc0, 0x33, 0x23, 0x75, 0x26, 0xf2, 0x00, 0x85, 0x91, 0x7f, 0xb3, 0x1e, 0xe2, 0xbd, + 0x75, 0x1e, 0x49, 0x84, 0x22, 0xec, 0x15, 0x40, 0xbe, 0xd1, 0x14, 0xca, 0xbb, 0xed, 0xe9, 0xd4, + 0xe9, 0xa8, 0x93, 0xc3, 0x8a, 0xf1, 0xf9, 0x6c, 0xb4, 0x54, 0x41, 0x58, 0x1d, 0x98, 0x52, 0x35, + 0xa3, 0x7d, 0x5c, 0x96, 0xb1, 0x8f, 0xad, 0xce, 0x3c, 0xe5, 0x5b, 0xdc, 0x7e, 0x48, 0x75, 0xc4, + 0x53, 0x4a, 0x60, 0xdb, 0xa6, 0xa8, 0x9e, 0xe0, 0x9d, 0x86, 0x18, 0x83, 0xb2, 0x38, 0xd8, 0x2b, + 0x40, 0xa1, 0x96, 0x4f, 0xbb, 0xd5, 0xfc, 0x30, 0x62, 0x7f, 0x7e, 0x78, 0x33, 0xa6, 0x74, 0x39, + 0x67, 0x24, 0x43, 0x37, 0x0d, 0x4e, 0x0f, 0x60, 0x6b, 0x1a, 0x44, 0x5f, 0x21, 0x44, 0xfb, 0xd2, + 0x38, 0x0f, 0x2c, 0xc7, 0xbe, 0xc4, 0xfa, 0x5a, 0x37, 0x2a, 0xad, 0x7c, 0x7a, 0xf3, 0x59, 0x84, + 0x49, 0xcd, 0x5a, 0xf1, 0xf8, 0xb6, 0x30, 0xfb, 0xa6, 0xca, 0x3c, 0x73, 0xf8, 0xe1, 0xc2, 0xd1, + 0x64, 0x31, 0xed, 0xa9, 0x60, 0x3c, 0x0f, 0x11, 0x96, 0x55, 0x48, 0x76, 0xa0, 0x6d, 0x4e, 0xb3, + 0x39, 0x0e, 0xf1, 0x25, 0x30, 0x79, 0xda, 0x2d, 0xa7, 0xdd, 0x16, 0x2b, 0x51, 0x2b, 0x5a, 0x0e, + 0x25, 0x28, 0xa3, 0x9e, 0x02, 0x77, 0x4f, 0x8a, 0x3c, 0xa1, 0x57, 0x74, 0x49, 0x5e, 0x9a, 0xeb, + 0xa3, 0xd6, 0xc4, 0xbc, 0x68, 0x79, 0x61, 0x0c, 0x7d, 0x13, 0x8c, 0x90, 0x94, 0x78, 0x96, 0x40, + 0x39, 0x14, 0xf7, 0x90, 0xdf, 0xe7, 0x52, 0x0f, 0x7d, 0x7b, 0x56, 0xe6, 0x69, 0x03, 0xc5, 0xff, + 0x11, 0xda, 0xf8, 0x21, 0xb4, 0xa9, 0x10, 0x6b, 0x1e, 0x0b, 0xef, 0xb5, 0xd0, 0xbe, 0xe9, 0x62, + 0x2f, 0x71, 0x6f, 0x2f, 0x04, 0xed, 0x4b, 0x61, 0x8b, 0x47, 0x76, 0xd0, 0x1c, 0x85, 0x87, 0x67, + 0x1d, 0xc8, 0xf2, 0x17, 0xab, 0xed, 0x5b, 0x21, 0xd0, 0x6b, 0xdb, 0x91, 0xe8, 0x6c, 0x2b, 0x46, + 0xd9, 0x80, 0xf7, 0x70, 0x8e, 0x7f, 0xce, 0x0a, 0x54, 0x81, 0xd3, 0x7f, 0x0e, 0xfc, 0x2b, 0xe5, + 0xa7, 0xea, 0xcc, 0x2a, 0x3b, 0x3f, 0xf5, 0x4a, 0xca, 0xa0, 0x58, 0x83, 0x0f, 0x6c, 0x52, 0x1d, + 0xbc, 0x16, 0xbf, 0x0b, 0xc6, 0x7e, 0xd0, 0xce, 0x6b, 0xf0, 0xc5, 0x08, 0xad, 0xdd, 0xd3, 0x8c, + 0xf5, 0xe2, 0xe8, 0xe2, 0x59, 0xc2, 0xfd, 0x62, 0xae, 0x90, 0x66, 0x93, 0xd8, 0x47, 0xa3, 0xe2, + 0x5a, 0x09, 0x2e, 0xe7, 0x72, 0xfa, 0xc6, 0x47, 0xf2, 0xce, 0xf9, 0x08, 0xca, 0x68, 0x27, 0xae, + 0x5a, 0xa1, 0xd8, 0x09, 0xb2, 0x1e, 0xdb, 0xf6, 0x44, 0x27, 0x49, 0x18, 0xeb, 0x76, 0xf1, 0xad, + 0x59, 0x41, 0xf6, 0x5b, 0x33, 0xa9, 0x4c, 0x7c, 0x6b, 0x26, 0x29, 0xe3, 0xbf, 0x35, 0xe3, 0x1d, + 0xb8, 0xae, 0xf1, 0x58, 0xe8, 0xd7, 0x67, 0x4f, 0xd4, 0x53, 0x68, 0x0e, 0xcb, 0xc9, 0xf3, 0x57, + 0xcb, 0x24, 0x97, 0x42, 0xdf, 0x64, 0x63, 0x29, 0xbc, 0xc6, 0xa0, 0x3a, 0x11, 0x23, 0xb1, 0x9b, + 0x14, 0x37, 0xb8, 0x1d, 0xb0, 0x60, 0x80, 0x60, 0xef, 0xa1, 0x93, 0xb0, 0x8b, 0x03, 0xcf, 0x42, + 0x29, 0x7d, 0x09, 0x37, 0xbd, 0x9e, 0xd6, 0x79, 0x3d, 0x36, 0x4f, 0x81, 0xe2, 0x0b, 0x2d, 0x81, + 0x7c, 0x8f, 0x1c, 0xd9, 0x79, 0xe2, 0xb6, 0xa9, 0x2b, 0xc9, 0x83, 0xa9, 0x12, 0x68, 0xc0, 0x14, + 0x08, 0xc7, 0x43, 0xca, 0x32, 0x89, 0x56, 0x32, 0xec, 0x5c, 0x26, 0xed, 0x4f, 0x74, 0x4b, 0x0a, + 0xef, 0xba, 0xb6, 0x86, 0x96, 0x89, 0x79, 0xe4, 0x27, 0x5e, 0xa0, 0xf9, 0xd1, 0x96, 0xb7, 0x3b, + 0xf4, 0x99, 0xfd, 0xde, 0x67, 0x69, 0xff, 0xa3, 0x8b, 0x3c, 0x30, 0x23, 0x9f, 0x2a, 0xa7, 0xaf, + 0xc1, 0xa6, 0xf3, 0xea, 0x87, 0xb9, 0xc4, 0x05, 0x97, 0x7a, 0x64, 0xf6, 0x06, 0x38, 0x1d, 0xaa, + 0x68, 0x3f, 0xcf, 0xdc, 0x73, 0x27, 0x2c, 0x38, 0x86, 0x28, 0x6c, 0x54, 0x0b, 0xb3, 0x47, 0x1e, + 0xa0, 0x71, 0x13, 0xc6, 0x71, 0x12, 0x53, 0xf1, 0x77, 0x34, 0x76, 0x13, 0x9f, 0xed, 0xb1, 0x0c, + 0xec, 0xb4, 0xb7, 0x08, 0x52, 0x1e, 0x5d, 0xfd, 0x32, 0xa4, 0x21, 0x1b, 0xfe, 0x16, 0xf3, 0xef, + 0x24, 0xfe, 0x2d, 0xe5, 0x5f, 0x1b, 0xff, 0x5a, 0x3d, 0xb6, 0x8a, 0xa5, 0xa9, 0xd1, 0xd7, 0x91, + 0xdf, 0x79, 0xf2, 0xc8, 0x03, 0xe1, 0xfe, 0xf7, 0xe9, 0x7c, 0xdd, 0xf4, 0xdc, 0xf7, 0xf3, 0x87, + 0xb1, 0x06, 0x57, 0xd8, 0x17, 0x2d, 0x42, 0x5a, 0x22, 0xbe, 0x49, 0xdf, 0x8f, 0x65, 0xbd, 0x11, + 0xa6, 0xf7, 0x76, 0xfd, 0x95, 0x2d, 0x79, 0xdf, 0xf7, 0x15, 0x2d, 0xe9, 0xe0, 0x96, 0x2c, 0x4a, + 0xb7, 0x04, 0x63, 0xcb, 0xfe, 0x77, 0xb5, 0x66, 0xc7, 0x22, 0xf2, 0x4e, 0x8e, 0xad, 0x29, 0xbe, + 0xb0, 0x35, 0xaa, 0x8c, 0x7d, 0x33, 0xa1, 0x45, 0x4a, 0x2d, 0xfb, 0x2e, 0x17, 0x1e, 0xb2, 0x89, + 0x56, 0x5d, 0x5a, 0x4b, 0x90, 0x56, 0x10, 0x72, 0x7d, 0xf3, 0xb9, 0xe3, 0xab, 0x23, 0x9b, 0x45, + 0x4b, 0x88, 0x7e, 0xda, 0x88, 0xd7, 0x61, 0x38, 0xaf, 0x7d, 0x28, 0xe1, 0x65, 0xc8, 0x91, 0xf5, + 0x71, 0x1f, 0x96, 0x6c, 0x47, 0x0e, 0x76, 0xb6, 0x17, 0xaa, 0x61, 0xc7, 0x40, 0xa7, 0x1b, 0x79, + 0xfa, 0xe8, 0x88, 0x4f, 0xf8, 0xac, 0xdc, 0x36, 0xd4, 0x39, 0xc9, 0x93, 0xef, 0x0d, 0x79, 0xcc, + 0x5e, 0x3f, 0xc2, 0xa9, 0x51, 0xca, 0x33, 0x7d, 0xec, 0xfb, 0x55, 0x0e, 0xf8, 0x5a, 0x3e, 0x2c, + 0xd3, 0x0b, 0x6f, 0xd9, 0xc4, 0x4f, 0x68, 0xd6, 0x30, 0xbc, 0x24, 0x5b, 0x2a, 0xcd, 0x3f, 0x2a, + 0xe4, 0x01, 0xde, 0x3e, 0x92, 0x50, 0x12, 0x34, 0xf7, 0x4e, 0x21, 0x55, 0x4b, 0xc0, 0xe2, 0xc9, + 0x43, 0x51, 0x6b, 0xf4, 0xb0, 0xd7, 0xef, 0xb8, 0x63, 0x64, 0x0b, 0xfb, 0x83, 0xc5, 0x92, 0xb7, + 0xb2, 0xa4, 0x4b, 0xa7, 0xc4, 0x34, 0x7a, 0x1c, 0xaf, 0x94, 0x4a, 0xaf, 0xa5, 0x42, 0x8b, 0x36, + 0x82, 0xd6, 0xe4, 0x33, 0x93, 0x68, 0xf5, 0x97, 0x56, 0x42, 0x88, 0x6f, 0x50, 0xbd, 0x4e, 0x97, + 0x44, 0x7e, 0x0c, 0xca, 0x68, 0xdc, 0xd0, 0x78, 0x47, 0x8c, 0x94, 0xf2, 0x97, 0x02, 0xf6, 0xd9, + 0xe7, 0xfe, 0x5c, 0x17, 0xb9, 0x8f, 0x9f, 0xcd, 0xda, 0xdd, 0x1a, 0xb9, 0x0f, 0xfb, 0xaf, 0x98, + 0xb8, 0x10, 0x8f, 0x87, 0x49, 0x18, 0x8a, 0xa3, 0x2c, 0x72, 0x1f, 0xf6, 0x68, 0x71, 0xdc, 0x9a, + 0x5d, 0x7d, 0x69, 0xdd, 0x88, 0x32, 0xdc, 0x9e, 0xfe, 0xee, 0x14, 0xaf, 0xe2, 0xcc, 0x6a, 0x95, + 0x37, 0xbd, 0x1a, 0x98, 0x5e, 0xc3, 0x98, 0x7d, 0xee, 0xbd, 0x63, 0x91, 0xfb, 0x50, 0x5b, 0x71, + 0x67, 0xd6, 0x31, 0xe8, 0xad, 0x32, 0xb3, 0x96, 0x41, 0x6f, 0x55, 0x99, 0xf5, 0x0c, 0x7a, 0xab, + 0x19, 0xb7, 0xa6, 0x41, 0x21, 0x75, 0x99, 0x75, 0x0d, 0x7a, 0x0b, 0x64, 0xd6, 0x36, 0xe8, 0x6d, + 0x56, 0x66, 0x7d, 0x83, 0xde, 0xc2, 0xdc, 0x87, 0x5b, 0xc1, 0x1d, 0x73, 0xe1, 0x6f, 0x65, 0xcc, + 0x81, 0xbf, 0x55, 0xb1, 0x32, 0xfc, 0xad, 0x89, 0x95, 0xe0, 0x6f, 0x5d, 0xcc, 0x8e, 0xbf, 0x81, + 0x98, 0x05, 0x7f, 0x67, 0xc5, 0xf4, 0xc8, 0x85, 0x6c, 0xdc, 0x7f, 0x3b, 0xdf, 0x4b, 0xe0, 0x38, + 0x07, 0xa6, 0x27, 0xcd, 0xff, 0xfa, 0x57, 0xad, 0xd6, 0x50, 0x5f, 0xd0, 0x85, 0x7c, 0xea, 0x30, + 0x7b, 0x06, 0x5b, 0x09, 0xf3, 0xdd, 0x2e, 0x50, 0xc8, 0x9b, 0x07, 0xf2, 0xea, 0x60, 0x0c, 0xe0, + 0x55, 0x96, 0x0c, 0xb6, 0x22, 0x17, 0x14, 0x21, 0xb7, 0xf1, 0xba, 0xc2, 0x01, 0x50, 0xbd, 0x28, + 0x19, 0x82, 0x50, 0xd1, 0x2b, 0x39, 0xea, 0x69, 0xaa, 0x12, 0x43, 0x9c, 0xe5, 0x0b, 0x7b, 0x53, + 0x3b, 0x7e, 0x1c, 0xd5, 0x3b, 0x06, 0x55, 0x1b, 0xed, 0xcb, 0x43, 0x79, 0xf8, 0x13, 0x55, 0xef, + 0xf8, 0x45, 0x3b, 0xb4, 0x41, 0xfb, 0x9d, 0xdb, 0x21, 0xfa, 0x96, 0xfa, 0x2a, 0x7d, 0x17, 0xfc, + 0xf2, 0x60, 0x2c, 0xb0, 0x1a, 0x4a, 0xa0, 0xc4, 0x5b, 0xeb, 0xac, 0x6b, 0x28, 0x97, 0x9a, 0xd6, + 0xba, 0x1a, 0x26, 0x63, 0xd9, 0xe5, 0x61, 0x2a, 0x7d, 0xb5, 0x14, 0xd0, 0xab, 0x93, 0x2b, 0xfe, + 0x76, 0xde, 0x3d, 0xfd, 0x63, 0xbb, 0xee, 0xe9, 0xb4, 0xd5, 0x17, 0xec, 0xd3, 0xc5, 0xf4, 0x6b, + 0xb1, 0xa4, 0x0a, 0xeb, 0x6f, 0x7e, 0xd2, 0xa6, 0x7f, 0x43, 0xd7, 0x7e, 0xe7, 0x0b, 0xfa, 0xe8, + 0x5b, 0x6d, 0x70, 0xf4, 0xce, 0x83, 0x83, 0x56, 0x00, 0x25, 0xba, 0x15, 0x6b, 0x9f, 0xdc, 0x03, + 0x45, 0xc0, 0x67, 0x86, 0xf7, 0x94, 0xc2, 0xec, 0xf7, 0x53, 0xa9, 0xde, 0xb1, 0x1d, 0x3f, 0xee, + 0x34, 0x5e, 0xf9, 0xff, 0x94, 0x7a, 0xa9, 0xfe, 0x6d, 0x58, 0x7e, 0xe7, 0xe1, 0xd5, 0xa9, 0x29, + 0x0d, 0xa8, 0x4b, 0x6d, 0x81, 0xa0, 0xe6, 0xbf, 0xda, 0xc9, 0x23, 0xed, 0x64, 0xe8, 0xcf, 0xf5, + 0xcc, 0x3b, 0xe8, 0x6b, 0x55, 0xa5, 0x01, 0x29, 0xcd, 0x85, 0xa3, 0xd3, 0x9e, 0x3b, 0x42, 0xb3, + 0xdf, 0x54, 0x48, 0xb3, 0x9c, 0xbe, 0xdf, 0x9d, 0x84, 0x22, 0xd4, 0xca, 0x42, 0xd9, 0x95, 0x6f, + 0xd6, 0x9b, 0x1b, 0x72, 0xc7, 0xc6, 0x35, 0x3e, 0xe4, 0x0f, 0x34, 0x32, 0x4f, 0xb2, 0x5f, 0x64, + 0xb7, 0x27, 0x7f, 0xee, 0xb9, 0xe4, 0x6a, 0x8d, 0xef, 0x9c, 0x46, 0x5d, 0xd4, 0xa5, 0x8d, 0xd7, + 0x7c, 0xe6, 0x3d, 0x44, 0x25, 0xa8, 0x39, 0xc4, 0x2f, 0x55, 0x1a, 0x70, 0x1c, 0xb8, 0x45, 0xb8, + 0x18, 0xed, 0x58, 0x93, 0x4c, 0x6f, 0x0e, 0x2c, 0xeb, 0x1a, 0x94, 0x6a, 0x74, 0x56, 0xa5, 0x62, + 0x0e, 0x26, 0xfc, 0x1f, 0x0f, 0xa5, 0x1c, 0xe6, 0xe1, 0x81, 0xf7, 0x86, 0xb0, 0x2e, 0xfb, 0x35, + 0x2b, 0x52, 0x9f, 0x80, 0x4d, 0x41, 0x4d, 0xe5, 0x32, 0x1f, 0x14, 0xf5, 0xa4, 0x68, 0xa6, 0x84, + 0xfd, 0x79, 0x8f, 0x9b, 0xa9, 0x1d, 0x9b, 0x4f, 0xda, 0x36, 0x51, 0x56, 0xac, 0x35, 0xa0, 0x8b, + 0x4b, 0x6a, 0xcd, 0xa1, 0x75, 0x87, 0xd6, 0xb9, 0x71, 0xe4, 0xbc, 0xb9, 0x8e, 0xd6, 0x28, 0x5f, + 0x3c, 0x01, 0x36, 0xce, 0x21, 0x67, 0xe7, 0x76, 0x95, 0x46, 0x85, 0x4f, 0x28, 0x08, 0x6f, 0x0b, + 0xf1, 0xda, 0x79, 0xd0, 0xd7, 0xa6, 0xeb, 0x83, 0x52, 0xdd, 0xf3, 0xa8, 0xed, 0x74, 0x18, 0x91, + 0x9b, 0xed, 0x52, 0xf5, 0xf8, 0xeb, 0xa4, 0x75, 0xf6, 0x1f, 0xdc, 0x12, 0x97, 0xc4, 0x6e, 0x5e, + 0xed, 0x8c, 0x84, 0x7c, 0xc6, 0xa0, 0xe6, 0xa1, 0x99, 0xbf, 0xd7, 0xf8, 0x70, 0x61, 0x7d, 0x6a, + 0x9f, 0xf0, 0x21, 0xcb, 0x7b, 0xef, 0xcb, 0x50, 0x16, 0x2b, 0xe4, 0x4d, 0xd1, 0xd9, 0x42, 0xdf, + 0x80, 0xd3, 0x57, 0xdb, 0xd1, 0x0a, 0xd5, 0x47, 0xdf, 0x0a, 0x21, 0x57, 0xf1, 0xed, 0x1f, 0x76, + 0xc4, 0x1f, 0x04, 0xe1, 0x93, 0x38, 0x0d, 0x61, 0x76, 0xfc, 0xb6, 0xc9, 0xc8, 0xa5, 0x64, 0x1c, + 0xd5, 0xe6, 0x1d, 0x6e, 0xec, 0xe1, 0x57, 0xb3, 0xda, 0x91, 0xa7, 0x01, 0x9c, 0x9e, 0x96, 0x5c, + 0x6f, 0xc8, 0x0b, 0xad, 0x91, 0xfd, 0xc2, 0xfb, 0x1d, 0x7d, 0xcf, 0x53, 0xe9, 0x81, 0x7a, 0x92, + 0x13, 0xab, 0x1d, 0x6f, 0xfc, 0xd8, 0x35, 0x5d, 0xa2, 0xd1, 0x5e, 0x4b, 0xfd, 0x8a, 0x12, 0xd7, + 0xab, 0xcc, 0xa6, 0xbd, 0xa1, 0x81, 0x00, 0x59, 0x10, 0x4f, 0xbc, 0x40, 0x36, 0xc7, 0xd6, 0x33, + 0xea, 0x6d, 0xec, 0x59, 0xdc, 0xdd, 0x53, 0x8c, 0xda, 0x41, 0x0f, 0x6a, 0x05, 0x76, 0xd2, 0x96, + 0x84, 0x7f, 0xf1, 0x58, 0x1d, 0xde, 0x75, 0xa8, 0x25, 0xdc, 0x44, 0xda, 0x0d, 0xf6, 0x46, 0x69, + 0xcc, 0x8a, 0x1c, 0x5e, 0x47, 0x96, 0x0f, 0x4a, 0xe0, 0x20, 0x3e, 0xa1, 0xc5, 0xd3, 0xbe, 0x51, + 0x25, 0xef, 0x2b, 0x74, 0xae, 0x7b, 0xc9, 0xb6, 0xa1, 0x58, 0x25, 0xa6, 0x2b, 0x51, 0xcb, 0xb5, + 0x90, 0x62, 0x0c, 0x29, 0xc3, 0x90, 0xe2, 0x2e, 0x7d, 0x00, 0xdf, 0xb0, 0xa5, 0xb6, 0x6d, 0x78, + 0xef, 0x36, 0xce, 0xa3, 0x1d, 0xb6, 0xc5, 0xa8, 0xef, 0xcc, 0x1d, 0xe7, 0x93, 0xbf, 0xd7, 0x63, + 0x42, 0x8d, 0xa3, 0x3e, 0x57, 0x82, 0xd0, 0x49, 0xac, 0xff, 0xfa, 0x01, 0x2c, 0x8a, 0x72, 0xdd, + 0xbc, 0x72, 0xfc, 0x42, 0xeb, 0xc6, 0xb4, 0x9f, 0x3d, 0xa4, 0xf3, 0x51, 0xda, 0x6d, 0xcc, 0x56, + 0x07, 0x52, 0x36, 0xc9, 0x49, 0xb4, 0x3e, 0x4a, 0x5c, 0x48, 0xed, 0xe5, 0x4b, 0xa1, 0xc8, 0x81, + 0x92, 0x11, 0x35, 0xdc, 0xaa, 0x28, 0x7b, 0xed, 0x61, 0x4d, 0x0b, 0xe0, 0x50, 0x39, 0x52, 0xe9, + 0xbd, 0x6b, 0x7b, 0x8b, 0x51, 0x6e, 0x00, 0xec, 0x9c, 0xfd, 0x17, 0x33, 0xdc, 0x38, 0x80, 0x3a, + 0x5b, 0x21, 0xbf, 0x6f, 0x3d, 0x30, 0x50, 0x75, 0x7d, 0x29, 0x6a, 0x6d, 0x76, 0x19, 0x6a, 0xe0, + 0x11, 0x98, 0x8f, 0xd7, 0x85, 0x7f, 0x0a, 0xb8, 0xc1, 0x47, 0x65, 0xd6, 0xa0, 0xbe, 0xa5, 0x9a, + 0xb5, 0xa7, 0x62, 0xe5, 0xc7, 0x6a, 0x9f, 0xf6, 0x5c, 0xaa, 0x7e, 0x42, 0x3d, 0x98, 0x3b, 0x7a, + 0x1c, 0x09, 0xf5, 0xa6, 0xaa, 0xe9, 0x60, 0x8f, 0xd6, 0xd1, 0x8e, 0x6f, 0x11, 0xd3, 0x8b, 0x31, + 0xbd, 0x76, 0x8f, 0x9e, 0xe5, 0xb6, 0x8e, 0x56, 0x7c, 0xcf, 0x97, 0x53, 0x09, 0x8a, 0x1c, 0x4c, + 0xa0, 0x7c, 0x1b, 0x9d, 0x37, 0x70, 0x70, 0x60, 0x78, 0xf0, 0xbd, 0x21, 0x25, 0x21, 0x3c, 0x97, + 0x53, 0x5c, 0x95, 0x5f, 0xb9, 0x93, 0x3d, 0x23, 0x80, 0x27, 0x4f, 0xd8, 0x5a, 0x42, 0x73, 0xb0, + 0x96, 0x09, 0xa9, 0x86, 0x18, 0x51, 0x58, 0x33, 0xa5, 0xfd, 0xa0, 0xb4, 0x27, 0x95, 0xf8, 0x90, + 0x0b, 0xe5, 0x90, 0x8c, 0x79, 0x72, 0x56, 0xb1, 0x70, 0xe4, 0x4f, 0xae, 0xee, 0x09, 0xd1, 0x97, + 0x3f, 0xfc, 0x05, 0x10, 0x4a, 0xab, 0xb5, 0xb4, 0x9a, 0xda, 0xf2, 0xb6, 0xbe, 0x8c, 0xe4, 0xd5, + 0x36, 0x37, 0xca, 0x4a, 0x7a, 0x26, 0xaa, 0xf6, 0x12, 0x55, 0xa7, 0x4b, 0xa5, 0x2f, 0xd0, 0xaa, + 0xa7, 0x83, 0xb1, 0x0a, 0x69, 0xd7, 0x8b, 0xb2, 0xb9, 0x4b, 0x5e, 0xe4, 0x7b, 0xcf, 0xf7, 0xd2, + 0x6e, 0xaf, 0x6f, 0xff, 0x8b, 0x4e, 0xf3, 0xea, 0xd1, 0x97, 0x07, 0x9f, 0xdb, 0x8a, 0xa3, 0x11, + 0xfb, 0x2c, 0xb2, 0xf3, 0x5c, 0xff, 0x54, 0xe4, 0x4f, 0xed, 0x1b, 0x15, 0x19, 0xf5, 0x50, 0xe5, + 0xcf, 0xe6, 0xa2, 0xe9, 0x60, 0x90, 0x25, 0x30, 0x8d, 0xd0, 0xfe, 0x6d, 0xb8, 0xec, 0x49, 0xc8, + 0x2f, 0x75, 0xc6, 0xa5, 0x77, 0xb7, 0x0c, 0x6c, 0x25, 0x0e, 0x66, 0xb5, 0x32, 0xd7, 0x3e, 0x42, + 0xde, 0xf1, 0xb0, 0xc6, 0x56, 0x3a, 0x89, 0x05, 0x6b, 0x6c, 0xf9, 0xaa, 0x1a, 0xdd, 0xe6, 0xde, + 0xd1, 0x3d, 0xb7, 0xef, 0xa0, 0x1a, 0xd7, 0xb8, 0x10, 0x3f, 0x5c, 0xab, 0x71, 0x6a, 0x00, 0x94, + 0x32, 0x1c, 0x3f, 0xed, 0x1b, 0x51, 0xb3, 0x77, 0x06, 0x24, 0xd5, 0xe1, 0x58, 0x18, 0x4f, 0x6d, + 0xbb, 0x33, 0xaa, 0x47, 0x2a, 0x28, 0xda, 0x2e, 0x78, 0xf9, 0x26, 0xec, 0x3b, 0x37, 0x28, 0xca, + 0xbf, 0x98, 0xa1, 0x4d, 0x6a, 0x1f, 0xda, 0x25, 0x45, 0xdf, 0x0c, 0x80, 0x93, 0xb9, 0xbf, 0xea, + 0xa8, 0x2c, 0x7d, 0x6d, 0x30, 0x26, 0x0f, 0x49, 0x6d, 0xba, 0x03, 0xd2, 0x2e, 0x5d, 0xf4, 0x34, + 0xc3, 0xbb, 0xae, 0xd4, 0x89, 0x5c, 0x7a, 0x03, 0xf1, 0xe8, 0x98, 0x95, 0x4a, 0xee, 0x41, 0xde, + 0x1e, 0xd0, 0xa9, 0x6f, 0x29, 0x86, 0x89, 0xed, 0x13, 0xeb, 0x5d, 0xf6, 0x2a, 0xb3, 0x53, 0x3c, + 0x91, 0xcf, 0x3d, 0xe2, 0x52, 0xe2, 0x94, 0x79, 0xda, 0x0d, 0x41, 0x63, 0x36, 0x7d, 0xda, 0x3c, + 0x79, 0xe0, 0x2f, 0x43, 0xbd, 0xae, 0x02, 0x29, 0xca, 0xdd, 0xf2, 0x07, 0xe4, 0x1a, 0x9e, 0x82, + 0xc8, 0xce, 0x2f, 0x66, 0x79, 0xa9, 0xc7, 0x51, 0xfa, 0xb7, 0x6f, 0xdc, 0x1e, 0x8a, 0x59, 0xb5, + 0x31, 0x64, 0x41, 0x4b, 0x72, 0xa8, 0xda, 0x0d, 0x16, 0x7a, 0xdf, 0x1e, 0x5a, 0x61, 0xac, 0x91, + 0xaa, 0xcc, 0xaa, 0x5c, 0x63, 0xde, 0x16, 0xe8, 0x32, 0x7a, 0x03, 0xd5, 0xe0, 0x35, 0x87, 0x1b, + 0x56, 0xac, 0x09, 0xfb, 0x56, 0xac, 0xae, 0x5a, 0x81, 0x3a, 0x7f, 0x73, 0x57, 0xb7, 0x77, 0x05, + 0xd8, 0x76, 0x84, 0xba, 0xa2, 0xb5, 0x52, 0x53, 0xf0, 0xb6, 0xc2, 0x53, 0x1d, 0xbb, 0x83, 0xb5, + 0x72, 0x53, 0xf0, 0x54, 0xc7, 0x9e, 0xe0, 0x73, 0xcd, 0x2b, 0xf4, 0x35, 0x79, 0xf3, 0x1a, 0xb6, + 0x85, 0x56, 0xe8, 0xbd, 0xe6, 0x79, 0x3e, 0x79, 0x3d, 0x6b, 0x86, 0x46, 0x8f, 0xc1, 0xeb, 0xf3, + 0xd0, 0x69, 0x98, 0x66, 0x6f, 0x40, 0xe8, 0x52, 0x9e, 0x02, 0xf6, 0xbb, 0x8d, 0xa3, 0xf0, 0xff, + 0x89, 0xb0, 0x24, 0xf7, 0x45, 0xe9, 0x94, 0x94, 0x5a, 0xe4, 0x49, 0xd5, 0xc8, 0x93, 0xbc, 0x9a, + 0x87, 0xf6, 0x51, 0xda, 0x1f, 0xdc, 0xcf, 0x3e, 0x0e, 0xeb, 0x95, 0x34, 0x15, 0x22, 0x37, 0x54, + 0xd6, 0x38, 0xde, 0xdc, 0x8a, 0xa3, 0x53, 0x3e, 0xb4, 0x15, 0x5b, 0xa7, 0x8f, 0xec, 0x3c, 0xab, + 0x22, 0xcd, 0xeb, 0x79, 0x16, 0x60, 0x6c, 0xf8, 0x31, 0xed, 0x54, 0x9a, 0x12, 0xe4, 0x72, 0x0a, + 0xd2, 0x63, 0xce, 0x4e, 0x67, 0x3d, 0xfb, 0x09, 0xc7, 0x5f, 0xf6, 0xdf, 0x48, 0xf6, 0x9e, 0xd3, + 0xcd, 0x1a, 0x56, 0x05, 0x61, 0xf1, 0xdf, 0x91, 0x36, 0x50, 0x96, 0xec, 0x3c, 0x5b, 0x44, 0x7b, + 0x51, 0x5e, 0xfa, 0x00, 0x29, 0x04, 0xa9, 0xa4, 0x7d, 0xa3, 0xa0, 0x91, 0x1a, 0x08, 0xbd, 0xa4, + 0xf8, 0x1b, 0x4e, 0xd7, 0x42, 0xa0, 0xa1, 0x5f, 0x5a, 0xf3, 0xa3, 0x26, 0x83, 0xda, 0x8b, 0xd6, + 0xa2, 0xb9, 0x07, 0xd4, 0x05, 0x95, 0xc6, 0x77, 0x9f, 0xa5, 0xb4, 0xca, 0xfc, 0xbe, 0xd4, 0xf3, + 0x43, 0xb1, 0x20, 0xeb, 0x55, 0xb3, 0xfa, 0x4c, 0xc3, 0xeb, 0x5c, 0x86, 0x23, 0x3f, 0x53, 0xf4, + 0xfb, 0x5f, 0x71, 0x07, 0x54, 0x07, 0xca, 0x85, 0xef, 0xec, 0xbd, 0x23, 0xa6, 0x1f, 0xb0, 0xab, + 0xc6, 0x52, 0x68, 0xd2, 0xbf, 0x62, 0xe7, 0xbd, 0xf4, 0xe6, 0xb6, 0x21, 0x5a, 0xb1, 0x54, 0xe5, + 0xa3, 0x43, 0xb5, 0x05, 0x0f, 0x06, 0x9e, 0x47, 0xce, 0xb6, 0xe2, 0x60, 0xfb, 0x5d, 0x6d, 0x03, + 0xbc, 0xc3, 0xbd, 0x68, 0xdb, 0x40, 0xf7, 0xa3, 0x07, 0x51, 0xff, 0xf2, 0x2e, 0x07, 0xfb, 0xeb, + 0x7b, 0xdb, 0x1a, 0x9e, 0x43, 0x0e, 0xb9, 0x62, 0xbd, 0xf0, 0xfd, 0xa8, 0xf9, 0x2b, 0xa5, 0x13, + 0x8d, 0x68, 0x7f, 0x82, 0x46, 0x05, 0xbf, 0x43, 0xbd, 0xba, 0xda, 0x05, 0xb6, 0x5f, 0x9e, 0x00, + 0x7b, 0x95, 0x0b, 0xac, 0x08, 0xbf, 0xff, 0x3d, 0x7f, 0x8d, 0x14, 0x7a, 0xc9, 0x11, 0x98, 0xfd, + 0x71, 0x2d, 0xa0, 0x7e, 0x81, 0xed, 0xbb, 0xef, 0x95, 0x1e, 0x08, 0xe8, 0x7b, 0x25, 0xb5, 0x84, + 0x68, 0x7d, 0x4d, 0x6a, 0xe7, 0x8e, 0x07, 0x21, 0x6a, 0x74, 0xcb, 0xef, 0x3e, 0x3d, 0x64, 0x68, + 0x1b, 0x68, 0xbf, 0xf3, 0xb9, 0x81, 0xee, 0xf7, 0x02, 0x0d, 0xf5, 0x74, 0x2e, 0x0a, 0xc0, 0x66, + 0x4a, 0xe3, 0xf0, 0xd5, 0x23, 0x94, 0x45, 0x7b, 0xaa, 0xf2, 0xee, 0x6d, 0xda, 0xbe, 0x04, 0xec, + 0x2b, 0xce, 0xf4, 0x82, 0xba, 0xb8, 0xd2, 0xf6, 0xa7, 0x67, 0xa9, 0x16, 0xf7, 0x7c, 0x2c, 0xe3, + 0xee, 0x58, 0xeb, 0x4e, 0x6a, 0x7b, 0x78, 0x8d, 0x69, 0xf7, 0xed, 0x93, 0xea, 0x53, 0x89, 0xa3, + 0xff, 0xdd, 0x61, 0xf8, 0xc3, 0xaf, 0x1d, 0xbe, 0x49, 0xa6, 0x26, 0xc3, 0x15, 0x8d, 0xe0, 0x51, + 0x9d, 0x6b, 0x60, 0xd2, 0x65, 0xaf, 0x0e, 0xc4, 0xf4, 0x1b, 0x2f, 0x51, 0x8d, 0x93, 0x90, 0xf5, + 0xfc, 0xfa, 0x92, 0x35, 0xd2, 0xce, 0x01, 0xc4, 0xc2, 0xdd, 0x3d, 0x3f, 0x6a, 0x92, 0x10, 0x0b, + 0x77, 0xb6, 0xdd, 0x59, 0x97, 0xf7, 0x50, 0xd3, 0x4e, 0xaa, 0xe1, 0x00, 0xe2, 0x61, 0x90, 0xbf, + 0xcf, 0x28, 0xda, 0x3e, 0xd8, 0xbd, 0x19, 0xa5, 0xbf, 0x99, 0xce, 0xf2, 0xfa, 0xf7, 0x57, 0x10, + 0x0f, 0x4b, 0xa0, 0x68, 0x05, 0xa4, 0x96, 0x8c, 0xf7, 0xdd, 0x4a, 0x23, 0x81, 0xce, 0xdb, 0xa0, + 0x93, 0xb1, 0xa9, 0x6f, 0xcb, 0xe7, 0xfe, 0xfb, 0x49, 0xd1, 0xab, 0x9f, 0xd5, 0xe3, 0x08, 0x2d, + 0x9d, 0x87, 0xfa, 0x1f, 0xf9, 0x2e, 0xeb, 0x20, 0x6e, 0x55, 0xef, 0x99, 0x2b, 0x68, 0xce, 0xd1, + 0x25, 0xe8, 0x0d, 0xcb, 0xd9, 0x9f, 0xdb, 0xf7, 0xd9, 0x9e, 0x77, 0xf8, 0xfd, 0x1f, 0x53, 0xcf, + 0xaf, 0x91, 0xfa, 0x7e, 0xd4, 0x44, 0x9e, 0xf6, 0xcf, 0x52, 0x69, 0xfd, 0xd2, 0x2e, 0xb4, 0x82, + 0x6f, 0x93, 0x5f, 0x40, 0xa9, 0x03, 0xc7, 0xd4, 0x65, 0x19, 0x7a, 0x30, 0x08, 0x7a, 0x70, 0xcc, + 0xef, 0x4f, 0xed, 0xba, 0x33, 0x16, 0x64, 0x09, 0x3d, 0xab, 0xdf, 0x34, 0xbc, 0xbe, 0x42, 0x7f, + 0xe4, 0x71, 0xc5, 0xf8, 0xfa, 0x5e, 0xa2, 0x87, 0x7e, 0x28, 0xfb, 0xce, 0x3e, 0xa2, 0x07, 0xc4, + 0x44, 0x19, 0x34, 0x19, 0x7f, 0x73, 0x09, 0x95, 0x87, 0x98, 0xb8, 0x33, 0x4d, 0x0f, 0xf5, 0x05, + 0x0f, 0x07, 0x76, 0x5d, 0x84, 0x1e, 0xd4, 0x2e, 0xad, 0xa6, 0x9b, 0xa8, 0x26, 0xcf, 0x6c, 0xa8, + 0xb8, 0xb0, 0xb6, 0xdb, 0x4c, 0xc3, 0x77, 0x64, 0x6b, 0x0b, 0x34, 0xa9, 0x4e, 0x94, 0xea, 0x15, + 0xaf, 0xfd, 0xb3, 0xa8, 0x6f, 0x32, 0x34, 0x99, 0x7e, 0x7b, 0xc9, 0x6d, 0xd2, 0x0b, 0xe3, 0xea, + 0xe3, 0x33, 0xef, 0x8b, 0x57, 0xbc, 0x31, 0xae, 0xb6, 0x87, 0x89, 0xfa, 0xaa, 0x90, 0xfa, 0xf6, + 0xbf, 0xa2, 0x51, 0x1f, 0xa4, 0xf4, 0x59, 0x0f, 0xb5, 0xb3, 0x88, 0xa3, 0x8b, 0x33, 0x1d, 0x56, + 0x82, 0x2b, 0xcd, 0x81, 0xb0, 0x6d, 0xc8, 0x83, 0xfa, 0x1c, 0x87, 0x9e, 0x84, 0x92, 0x72, 0xf9, + 0x8d, 0x27, 0xb1, 0x0f, 0x74, 0x91, 0x9d, 0x67, 0x9e, 0x67, 0x6e, 0x40, 0x16, 0xa1, 0xd9, 0x4b, + 0x16, 0x21, 0xfd, 0x5a, 0xf8, 0xd7, 0x8c, 0x5c, 0x01, 0xc7, 0x70, 0x86, 0x27, 0x38, 0x35, 0x9e, + 0xe0, 0xe2, 0x93, 0x1b, 0xe6, 0x80, 0x22, 0x78, 0x82, 0xb5, 0x9f, 0xbf, 0x19, 0xe8, 0xff, 0x7a, + 0x9e, 0x70, 0xa6, 0x25, 0xcb, 0x13, 0x76, 0xbd, 0xf0, 0x4d, 0x78, 0x82, 0xb0, 0xe3, 0x50, 0x73, + 0xb0, 0xf2, 0x95, 0x23, 0xe1, 0xbe, 0x2a, 0x26, 0xf2, 0x03, 0x8a, 0x43, 0xfd, 0xff, 0x21, 0x2b, + 0x6a, 0x86, 0x31, 0xa3, 0xec, 0x87, 0x94, 0x2a, 0xf7, 0xe8, 0xec, 0x2e, 0xf8, 0x29, 0x7d, 0xe9, + 0x1d, 0xb3, 0x0a, 0xae, 0x8d, 0xfa, 0x26, 0x49, 0x6f, 0xab, 0x63, 0x09, 0xec, 0xe4, 0x1e, 0xb2, + 0x27, 0xfc, 0x55, 0x89, 0xb0, 0x0b, 0x8e, 0xc5, 0x8c, 0x58, 0xde, 0x1b, 0xde, 0x04, 0x63, 0x93, + 0x24, 0x6e, 0x59, 0x78, 0x0b, 0x3c, 0x8e, 0xda, 0xf4, 0x1b, 0xe1, 0x25, 0x70, 0x02, 0x29, 0xeb, + 0x01, 0xa4, 0xb7, 0xc7, 0x30, 0xdf, 0x5b, 0x3d, 0x50, 0x25, 0x2b, 0xd2, 0xc8, 0xc0, 0xc8, 0xc0, + 0xa4, 0xab, 0xcd, 0x50, 0x7a, 0xb5, 0x59, 0xb2, 0x5f, 0x6d, 0x96, 0xfb, 0xaf, 0xd8, 0xbd, 0x3e, + 0x2a, 0xcf, 0x6f, 0xa0, 0x33, 0xd8, 0x21, 0x55, 0x04, 0xc7, 0xf3, 0x08, 0x86, 0x7a, 0xbd, 0xdc, + 0x04, 0xa7, 0x07, 0x9b, 0xfa, 0x0b, 0x9b, 0x8c, 0xfb, 0x6e, 0x7f, 0xff, 0x1e, 0x7a, 0x7a, 0x75, + 0xfd, 0x3b, 0x77, 0xcb, 0x3e, 0x28, 0x4c, 0x34, 0xbe, 0xdf, 0x22, 0x07, 0xe1, 0x74, 0x22, 0x48, + 0x5f, 0x2d, 0x1d, 0x5a, 0xb7, 0x06, 0xea, 0x74, 0x8e, 0xe0, 0xeb, 0xbf, 0x7c, 0xfd, 0x15, 0xb4, + 0x6c, 0x1e, 0xbf, 0x66, 0xe0, 0x41, 0xc0, 0xfb, 0xd6, 0x6b, 0x12, 0x0f, 0x02, 0xc3, 0x47, 0x7b, + 0x58, 0x76, 0x6b, 0xa1, 0x2f, 0x53, 0x68, 0x5b, 0x40, 0xd5, 0xa3, 0x2d, 0x12, 0xd8, 0xb1, 0x04, + 0x0e, 0x77, 0x42, 0x2a, 0xaa, 0x82, 0xe4, 0x0e, 0xf8, 0xad, 0x2e, 0x90, 0xe1, 0x5d, 0xda, 0x61, + 0x81, 0xf0, 0xee, 0xb4, 0xfa, 0xa1, 0x70, 0xb1, 0x3e, 0x00, 0xac, 0xb1, 0x20, 0xec, 0x25, 0x92, + 0xac, 0x03, 0xdd, 0x1b, 0x20, 0xe6, 0x0b, 0x9c, 0xba, 0x83, 0x6b, 0xdf, 0x18, 0xac, 0x96, 0x8e, + 0x85, 0x65, 0x19, 0x74, 0x23, 0x72, 0x2f, 0x14, 0x83, 0x22, 0x8f, 0x0c, 0x1e, 0x4c, 0xd8, 0xaf, + 0x76, 0xc1, 0x71, 0xf3, 0x3b, 0xa1, 0xd2, 0xab, 0x5d, 0xf2, 0x71, 0x2b, 0x42, 0x99, 0x4a, 0x04, + 0x8b, 0xaf, 0x76, 0x49, 0xe2, 0xfb, 0xf7, 0xbe, 0xc2, 0x26, 0xfd, 0x9e, 0x75, 0x89, 0x80, 0x13, + 0xe8, 0xdd, 0xba, 0xef, 0xd8, 0xa0, 0xfd, 0xea, 0x5a, 0x2d, 0x7d, 0x6d, 0x26, 0x7d, 0xc9, 0xd5, + 0xb5, 0x92, 0xa8, 0x87, 0x5a, 0xff, 0xf2, 0xfa, 0x44, 0x83, 0xec, 0xb3, 0xee, 0x4b, 0x04, 0xd0, + 0xca, 0x97, 0x1c, 0x81, 0xd7, 0x77, 0x37, 0x7c, 0xfc, 0xa0, 0xcc, 0x2d, 0x4d, 0xb7, 0xd0, 0xcc, + 0x2d, 0xa4, 0x96, 0xf9, 0xb7, 0x8b, 0x36, 0x05, 0xd4, 0x05, 0x18, 0xf6, 0x56, 0x3a, 0xc7, 0xc1, + 0x3b, 0x89, 0x95, 0x52, 0x3d, 0x25, 0x55, 0x08, 0x57, 0xbe, 0xdc, 0x80, 0xf5, 0x34, 0x14, 0x57, + 0xa5, 0xe1, 0x5a, 0x5d, 0xd8, 0xa4, 0xdb, 0xb3, 0x36, 0x11, 0xf8, 0xda, 0x92, 0xb7, 0x22, 0xad, + 0xf5, 0x0b, 0x7a, 0x72, 0x2c, 0x91, 0x2c, 0x7c, 0x5a, 0xd8, 0x6f, 0x69, 0xf7, 0xe1, 0xd5, 0x3e, + 0x38, 0x15, 0x5c, 0x02, 0xa7, 0xb0, 0xcf, 0xdf, 0x8b, 0x85, 0xe9, 0x54, 0xb0, 0x9c, 0xdd, 0x78, + 0xf6, 0x99, 0xa3, 0xa8, 0x2b, 0xbe, 0xfd, 0xf1, 0xe1, 0xab, 0x69, 0x4e, 0xfb, 0x54, 0xe4, 0x56, + 0x6d, 0x57, 0x9e, 0x0d, 0xc3, 0x81, 0xc2, 0x03, 0x4b, 0x28, 0x54, 0x94, 0x16, 0xd3, 0x07, 0x88, + 0xd2, 0x94, 0x99, 0xc3, 0x14, 0xc3, 0x7a, 0x1c, 0x78, 0x3d, 0x50, 0x52, 0xe5, 0x81, 0x49, 0xd5, + 0x1e, 0x98, 0x1c, 0xf6, 0xc7, 0x2c, 0x35, 0xd0, 0x57, 0x78, 0x7c, 0xf9, 0x48, 0xc3, 0x51, 0x1f, + 0xcd, 0x50, 0x60, 0x9d, 0xa7, 0xd0, 0x7a, 0x0e, 0xc4, 0xac, 0x56, 0x9f, 0x74, 0xed, 0xca, 0x0a, + 0x6f, 0xbd, 0x74, 0xad, 0x5a, 0x8e, 0xcf, 0xb0, 0x52, 0xc1, 0x67, 0x50, 0x27, 0x69, 0x71, 0x86, + 0x95, 0x76, 0x7c, 0x37, 0xa8, 0x16, 0xab, 0x0f, 0xf6, 0xae, 0xd4, 0x7b, 0xeb, 0x61, 0x2f, 0x96, + 0x26, 0x8f, 0xa0, 0x7e, 0x47, 0x7b, 0x26, 0xc5, 0x7c, 0x1e, 0x9f, 0x23, 0xc9, 0xfe, 0x88, 0xc9, + 0x2f, 0xfd, 0x0d, 0x74, 0x22, 0x27, 0x59, 0x90, 0x56, 0x94, 0x7f, 0x6e, 0x78, 0x68, 0xb5, 0xfd, + 0xfd, 0x27, 0x95, 0x06, 0xd4, 0xbd, 0x4a, 0x26, 0xbb, 0xe1, 0x18, 0xf2, 0x76, 0x13, 0xea, 0x63, + 0xc5, 0xa1, 0xdd, 0x47, 0x1f, 0x3b, 0xb8, 0x0c, 0xa2, 0xd6, 0x00, 0xe4, 0x75, 0x5b, 0xea, 0x65, + 0x63, 0x53, 0xea, 0xb3, 0x5e, 0x0b, 0xda, 0x2f, 0x4d, 0x6e, 0x7d, 0xdb, 0xed, 0x24, 0x85, 0xca, + 0x6d, 0x1f, 0x3c, 0x59, 0xd1, 0x50, 0x63, 0x9e, 0xd7, 0xf0, 0xb2, 0x2f, 0xe8, 0xbb, 0xc1, 0x07, + 0xb5, 0x58, 0xc6, 0xe4, 0xd0, 0xf0, 0xd1, 0x47, 0x47, 0x02, 0xb4, 0x0f, 0x35, 0xf0, 0x73, 0xd2, + 0x32, 0x48, 0x67, 0x4b, 0xd1, 0x4a, 0x04, 0x79, 0x00, 0xab, 0x0a, 0xf8, 0x51, 0x72, 0xfc, 0xa9, + 0x4e, 0x7e, 0xc8, 0x1f, 0x36, 0xc5, 0x8c, 0xc4, 0xc3, 0x54, 0xf9, 0xbe, 0x57, 0x0e, 0x9c, 0x80, + 0x47, 0x91, 0x5f, 0x3e, 0x5c, 0x1f, 0xf1, 0x44, 0xa0, 0xd2, 0x61, 0xfb, 0xf3, 0x9d, 0x8a, 0xbf, + 0x1e, 0x65, 0x46, 0x95, 0x2d, 0xf4, 0xa2, 0xff, 0x74, 0x29, 0xda, 0x8d, 0xef, 0xd1, 0x4c, 0x63, + 0xb5, 0xc3, 0x03, 0x95, 0xc1, 0x81, 0x97, 0x9e, 0x85, 0xea, 0x2a, 0x23, 0x49, 0x84, 0xb0, 0x69, + 0xc1, 0xaf, 0x42, 0x77, 0x84, 0x7e, 0x15, 0xbc, 0xe3, 0xa3, 0x27, 0xee, 0xc3, 0xd0, 0xdb, 0x00, + 0x5b, 0xf0, 0xee, 0xa1, 0x75, 0x15, 0xc1, 0x3f, 0xee, 0x71, 0x99, 0x8c, 0xeb, 0x60, 0x6c, 0x65, + 0x5d, 0x69, 0x4d, 0x08, 0xc2, 0x0d, 0x51, 0xf3, 0xac, 0x3c, 0x82, 0x50, 0xad, 0xa0, 0x73, 0x50, + 0x70, 0x2c, 0x22, 0xfc, 0x0e, 0xdb, 0xfb, 0x4f, 0xb8, 0xa4, 0x4d, 0x7e, 0x0a, 0x0f, 0xed, 0xf9, + 0xe8, 0xa9, 0xf0, 0xba, 0x2e, 0x79, 0xc1, 0xba, 0x63, 0xeb, 0x82, 0xeb, 0x66, 0xe5, 0xbd, 0x15, + 0xfc, 0x3d, 0x96, 0x57, 0x2b, 0xbf, 0xd3, 0xe2, 0xd5, 0x27, 0x96, 0x41, 0xc7, 0x75, 0x3e, 0x90, + 0xe9, 0x44, 0xab, 0x77, 0x9a, 0x91, 0x33, 0x76, 0xf8, 0x8f, 0x4b, 0x3e, 0x2f, 0x52, 0x03, 0xa4, + 0x06, 0x7d, 0xd7, 0xf9, 0x51, 0x77, 0x95, 0x8f, 0xf8, 0x71, 0x84, 0x9b, 0xc0, 0xaf, 0x50, 0xbf, + 0x56, 0xc9, 0x3e, 0x13, 0x70, 0x8c, 0x05, 0xed, 0x97, 0x62, 0x25, 0xac, 0xd6, 0x23, 0xef, 0x76, + 0xc1, 0xc7, 0x15, 0xbe, 0x3f, 0x0e, 0x93, 0x5f, 0xa7, 0x91, 0x7b, 0x94, 0x1a, 0x33, 0x84, 0x11, + 0xdb, 0x31, 0x2b, 0x9f, 0xf2, 0x65, 0xac, 0x47, 0x4c, 0x8c, 0xdc, 0x33, 0x82, 0x75, 0x8a, 0xd3, + 0x83, 0x67, 0xfa, 0x41, 0x9e, 0xe9, 0x03, 0x63, 0xeb, 0x9d, 0x6d, 0x43, 0x15, 0xa1, 0x7f, 0x7e, + 0x55, 0xe3, 0xfd, 0xf7, 0x74, 0x3f, 0x17, 0x7a, 0x09, 0x9f, 0xb1, 0x95, 0x3d, 0xf2, 0xbd, 0x89, + 0x77, 0x9f, 0xf4, 0xea, 0x8e, 0xf9, 0xaa, 0x7c, 0x5e, 0xdd, 0x49, 0x5f, 0xbd, 0xaf, 0x47, 0xf7, + 0xf2, 0x80, 0x62, 0xa3, 0xd5, 0xca, 0x77, 0xb7, 0x28, 0x3e, 0x7e, 0xb2, 0xbd, 0xbb, 0xa5, 0xca, + 0x8c, 0x5c, 0x8d, 0xf8, 0x4f, 0x61, 0xc2, 0xef, 0xd0, 0xbd, 0x73, 0x67, 0xc2, 0xdf, 0x63, 0x7d, + 0xf7, 0xc9, 0x44, 0x43, 0x55, 0xde, 0xfb, 0xcd, 0x18, 0x7a, 0x3a, 0xe1, 0xc7, 0xb6, 0x95, 0x5c, + 0x87, 0xd8, 0x06, 0xdb, 0x75, 0xcb, 0xd0, 0x02, 0x2a, 0xba, 0x6e, 0x36, 0x4c, 0xc2, 0x6b, 0xf2, + 0xc1, 0xa6, 0x83, 0xcb, 0xb1, 0x3f, 0x45, 0x4f, 0x06, 0x44, 0x4f, 0x8e, 0x35, 0x51, 0x4f, 0xd2, + 0x8a, 0x51, 0x15, 0xbc, 0xd3, 0x0c, 0x7e, 0x30, 0x5c, 0xed, 0x07, 0x33, 0xd2, 0x5e, 0x6a, 0xa5, + 0xd1, 0xda, 0x88, 0xbf, 0x36, 0x1c, 0x0f, 0x6f, 0x83, 0x1e, 0x7f, 0x93, 0x60, 0x54, 0xad, 0x57, + 0xf7, 0xa7, 0xf8, 0x2d, 0x85, 0x6f, 0xca, 0xf7, 0x39, 0x85, 0xd1, 0xbb, 0x2b, 0xf5, 0xb6, 0xaa, + 0xf7, 0xee, 0x92, 0x92, 0xef, 0xcc, 0x85, 0x46, 0x2c, 0xa1, 0x11, 0xf4, 0x54, 0x22, 0x04, 0xf1, + 0x39, 0x98, 0x1a, 0xd5, 0x66, 0x3b, 0xec, 0xcc, 0x7d, 0x49, 0x9b, 0xa6, 0x99, 0x34, 0xd6, 0xa8, + 0x6b, 0x3c, 0x50, 0xe7, 0x9c, 0x8f, 0x7a, 0xf8, 0xbb, 0x74, 0x2a, 0x24, 0x72, 0x77, 0x09, 0xc7, + 0x00, 0xf2, 0xf8, 0x28, 0xdb, 0x61, 0x01, 0x5f, 0x55, 0xbd, 0x2c, 0x85, 0xa7, 0x23, 0x56, 0xf5, + 0xd8, 0x76, 0xc3, 0xa0, 0xef, 0x5a, 0x3f, 0x3c, 0x80, 0x78, 0xdb, 0xcc, 0x27, 0xff, 0xe5, 0xb5, + 0x25, 0x3e, 0x1c, 0x02, 0xec, 0xc7, 0x6b, 0x7d, 0xf0, 0x60, 0x35, 0xd6, 0x7e, 0x0d, 0x41, 0x25, + 0xe3, 0x6f, 0x0a, 0xad, 0x60, 0x86, 0xf0, 0x9a, 0x7e, 0x09, 0xc0, 0x7c, 0xcd, 0x72, 0x78, 0x00, + 0x2c, 0x8d, 0x27, 0xc0, 0x3a, 0x2d, 0x0c, 0xc5, 0x55, 0xfd, 0x70, 0x34, 0xe0, 0x57, 0x43, 0x71, + 0xf0, 0x4a, 0x73, 0xd0, 0xa2, 0x44, 0xbe, 0x38, 0x03, 0x3e, 0x76, 0x07, 0xfe, 0xb0, 0xbb, 0x62, + 0x09, 0x98, 0xff, 0xf8, 0x1b, 0x67, 0xcd, 0x21, 0xa0, 0x3d, 0xab, 0x75, 0xa8, 0x1d, 0x1d, 0xbc, + 0xdb, 0x88, 0xb4, 0x34, 0xe2, 0x1b, 0xf1, 0x55, 0x27, 0x14, 0x99, 0xce, 0x90, 0x45, 0x6b, 0x58, + 0xbe, 0xa6, 0x19, 0xcb, 0x0f, 0x60, 0x5f, 0x6e, 0x68, 0xf3, 0xb7, 0x37, 0x23, 0x1d, 0x14, 0x05, + 0x02, 0xc5, 0xb0, 0xc3, 0xbf, 0xf8, 0x29, 0xb2, 0x3b, 0xc8, 0x42, 0x42, 0x88, 0x0e, 0x23, 0x0e, + 0x2f, 0x5d, 0x4c, 0xe7, 0x96, 0x15, 0xe3, 0xf3, 0x74, 0xe6, 0xdb, 0xd6, 0xf0, 0x72, 0x94, 0x36, + 0x14, 0xa6, 0x60, 0xd8, 0x72, 0xfa, 0xbd, 0xc5, 0x8a, 0xed, 0x6b, 0xe8, 0xd2, 0xc2, 0xcc, 0xd3, + 0x41, 0x07, 0x81, 0x58, 0x09, 0xf2, 0x79, 0x23, 0x14, 0x2d, 0x36, 0x8b, 0xdc, 0x7c, 0xfa, 0x19, + 0x96, 0x88, 0xd0, 0x5b, 0xab, 0x77, 0xc1, 0x3d, 0x68, 0xa1, 0x63, 0x2b, 0x61, 0x13, 0x90, 0xad, + 0x4e, 0x6d, 0x3c, 0x06, 0x66, 0x7c, 0xb2, 0x60, 0xd8, 0xbd, 0x60, 0xc5, 0x27, 0x1b, 0x3e, 0x6d, + 0x06, 0x3b, 0x3e, 0x15, 0x61, 0xac, 0x0c, 0xc5, 0xb4, 0xb7, 0x1d, 0x9f, 0x50, 0xa0, 0xe1, 0xd3, + 0x24, 0x7c, 0xb2, 0x40, 0x19, 0x3e, 0x4d, 0xc6, 0x27, 0x3d, 0xda, 0x06, 0x08, 0x55, 0xcc, 0xe2, + 0xad, 0x97, 0x9d, 0x0c, 0x8b, 0x1c, 0x77, 0x62, 0x2b, 0x1d, 0x81, 0xa7, 0xa0, 0x54, 0xc0, 0x8b, + 0x98, 0x73, 0xaa, 0x0e, 0x4c, 0x6b, 0x05, 0x27, 0x96, 0x7c, 0x09, 0x94, 0xe3, 0xf3, 0x28, 0xb8, + 0x1a, 0x4e, 0x80, 0x7b, 0x5a, 0x33, 0x97, 0xe9, 0xc6, 0x34, 0x15, 0xc8, 0x2d, 0x1e, 0x28, 0x46, + 0x6c, 0x58, 0x65, 0x30, 0xdd, 0x62, 0xae, 0xa6, 0x69, 0x39, 0xd4, 0xc3, 0x91, 0x3a, 0x97, 0xad, + 0xf3, 0x69, 0x2d, 0xd3, 0x43, 0xc0, 0x0c, 0xd8, 0x0e, 0x3d, 0xed, 0x57, 0xc4, 0xb2, 0x6b, 0x50, + 0x8e, 0x3d, 0x5a, 0x0a, 0xb2, 0x1e, 0xae, 0x88, 0x96, 0x60, 0x1f, 0x1a, 0xab, 0xe0, 0x44, 0xf3, + 0x9a, 0x82, 0x0f, 0x96, 0x0e, 0x2e, 0x87, 0x07, 0xaf, 0xc1, 0x31, 0xd3, 0xbe, 0x01, 0x71, 0x4a, + 0x27, 0xd7, 0x0e, 0x1f, 0xf0, 0x57, 0x0f, 0x50, 0xcb, 0xdb, 0x37, 0xb4, 0xf9, 0xb6, 0x2d, 0x47, + 0x3e, 0xbf, 0x17, 0xcb, 0x31, 0x23, 0x1f, 0xae, 0xd5, 0xf2, 0x97, 0x51, 0xfe, 0xba, 0xe9, 0xf0, + 0x20, 0x34, 0xd2, 0x51, 0x50, 0x27, 0x9a, 0xfb, 0x0b, 0x3e, 0x5c, 0x3a, 0xd8, 0xf8, 0x35, 0xa5, + 0xec, 0xa6, 0x5c, 0x48, 0x21, 0x0f, 0x52, 0x98, 0x5a, 0x5a, 0x05, 0x17, 0x4d, 0x75, 0x5c, 0xb1, + 0x6c, 0xda, 0x7c, 0x34, 0x81, 0x63, 0x27, 0xee, 0xc9, 0xec, 0xef, 0x6b, 0x83, 0xcb, 0x7d, 0xf0, + 0xa7, 0xea, 0x5d, 0xa9, 0x94, 0xa0, 0x3c, 0xff, 0x09, 0xd0, 0x4f, 0x0b, 0x81, 0x9d, 0xa9, 0x8e, + 0x29, 0x84, 0x69, 0xd1, 0xcc, 0xb1, 0x16, 0x7e, 0xb6, 0xf2, 0xb3, 0x8d, 0x53, 0xd8, 0x99, 0x2e, + 0x8b, 0x88, 0xbe, 0x19, 0xc7, 0xc5, 0x6a, 0x05, 0xef, 0x95, 0x9e, 0x0e, 0x8f, 0xa9, 0xb4, 0x76, + 0xf8, 0x02, 0xe2, 0x7a, 0x1d, 0x14, 0x0b, 0xfe, 0x81, 0xad, 0xc0, 0x1e, 0x84, 0xf5, 0x50, 0x4a, + 0x33, 0x7b, 0x98, 0xba, 0x2c, 0x5b, 0x2f, 0x8e, 0x2f, 0xd2, 0xd6, 0xd6, 0xa0, 0x86, 0x37, 0x0d, + 0xf4, 0x91, 0x5b, 0x17, 0x0c, 0xdb, 0x41, 0x7c, 0xdf, 0xad, 0x2c, 0x45, 0xf9, 0x87, 0x3a, 0x83, + 0xf4, 0x71, 0xcc, 0x3c, 0x73, 0x34, 0xe1, 0x83, 0xb7, 0x4f, 0x3f, 0x1c, 0x07, 0x31, 0xc3, 0x4f, + 0x5f, 0x7f, 0x2b, 0x55, 0xce, 0x66, 0xfe, 0xca, 0x5b, 0x16, 0xbf, 0x66, 0x00, 0x1b, 0x6a, 0x17, + 0xad, 0xe5, 0x4b, 0xa1, 0x8e, 0xe7, 0x50, 0x8b, 0xc2, 0x4f, 0x40, 0x20, 0x6a, 0x45, 0x19, 0x48, + 0x79, 0xe9, 0xb4, 0xe8, 0x6a, 0xbb, 0x5b, 0xfa, 0x18, 0xd3, 0x41, 0x2c, 0x28, 0x43, 0xea, 0xb3, + 0xcb, 0x7c, 0xfc, 0x26, 0xc5, 0xf4, 0xe5, 0xcb, 0x20, 0x80, 0x74, 0xee, 0x03, 0x73, 0x94, 0xf6, + 0xcb, 0xd8, 0x14, 0xe4, 0x1b, 0xa7, 0xc1, 0x31, 0x07, 0xe1, 0x32, 0x22, 0xce, 0x6e, 0x2d, 0x9f, + 0x47, 0x27, 0x89, 0x21, 0x24, 0xc6, 0xa9, 0x73, 0x20, 0xa0, 0x9a, 0xf1, 0xb7, 0x8e, 0x7d, 0xa8, + 0xb8, 0x69, 0x16, 0x19, 0xdc, 0x04, 0x25, 0x52, 0xc3, 0x5b, 0xf8, 0x5e, 0x17, 0xb3, 0xc8, 0xee, + 0xd4, 0x18, 0xbf, 0xbf, 0xc6, 0x70, 0x4c, 0x0e, 0x60, 0xad, 0x69, 0x28, 0x02, 0x5b, 0x21, 0x80, + 0x57, 0x5d, 0x45, 0x38, 0xf2, 0x4c, 0xb2, 0x8a, 0x28, 0x48, 0x2b, 0x79, 0x21, 0x87, 0x24, 0x8a, + 0x30, 0xad, 0x2c, 0xa5, 0xce, 0x5f, 0xe6, 0x97, 0x3e, 0x0e, 0xbe, 0xb8, 0xbc, 0x09, 0xed, 0x3a, + 0x6b, 0x55, 0x88, 0xd7, 0x1f, 0xee, 0xec, 0xaa, 0xdd, 0x14, 0x32, 0xfa, 0x0a, 0xe9, 0x5b, 0x4e, + 0x3d, 0xc5, 0x17, 0x5d, 0x07, 0xff, 0xf6, 0x36, 0x56, 0x0d, 0x3f, 0xba, 0xf4, 0x45, 0x7a, 0xba, + 0x94, 0xa4, 0xfd, 0xbf, 0xbd, 0x89, 0xf4, 0x73, 0xa4, 0x99, 0x42, 0x7e, 0x0f, 0xf4, 0x75, 0xf3, + 0x21, 0x50, 0xeb, 0xd2, 0xed, 0xa1, 0xbd, 0xec, 0x8f, 0xef, 0x49, 0xb7, 0xaa, 0x8a, 0xf1, 0x26, + 0x7e, 0xcd, 0x12, 0x62, 0x2f, 0x83, 0xe7, 0x30, 0xda, 0x7a, 0xc0, 0x70, 0xb1, 0x7f, 0x4a, 0x3d, + 0x61, 0xbd, 0xdc, 0xa7, 0x42, 0x6a, 0xbe, 0x86, 0xfb, 0x5a, 0x67, 0x73, 0x39, 0xf6, 0x8f, 0x77, + 0x1a, 0xdc, 0xd4, 0xe6, 0x43, 0xd9, 0x70, 0x93, 0xb2, 0x14, 0x36, 0xb0, 0x5d, 0x5b, 0xec, 0x7d, + 0x02, 0xc8, 0x26, 0x9b, 0x06, 0x3f, 0x8d, 0xcb, 0xef, 0x6e, 0xb9, 0xfa, 0x09, 0x58, 0x67, 0xa6, + 0x6f, 0x38, 0x16, 0x22, 0x4f, 0x91, 0xa2, 0x95, 0x2c, 0x67, 0xc4, 0x57, 0xfa, 0xfa, 0x2e, 0x05, + 0xf1, 0xf5, 0xd8, 0x95, 0xa8, 0x87, 0x9c, 0x5e, 0x27, 0x34, 0x95, 0xd3, 0x43, 0x33, 0x47, 0x07, + 0xe8, 0xfe, 0xc0, 0x35, 0xb4, 0xbb, 0x66, 0x21, 0xda, 0x68, 0x8b, 0x62, 0xde, 0xc0, 0xcf, 0x43, + 0xcb, 0xe0, 0x31, 0x9a, 0x57, 0x6a, 0x3e, 0xf7, 0xf9, 0x2e, 0x5e, 0xa1, 0xb1, 0x73, 0x39, 0x45, + 0xfc, 0x85, 0xc9, 0x32, 0x78, 0x81, 0xe2, 0x44, 0x38, 0xe2, 0x76, 0x91, 0x7d, 0xba, 0xd6, 0xaf, + 0xd4, 0xd5, 0xe6, 0xcb, 0x7d, 0xdc, 0x0a, 0x5a, 0x8d, 0x39, 0x4d, 0xed, 0xd0, 0x74, 0xa2, 0xd1, + 0x99, 0xa3, 0x32, 0xdd, 0x41, 0x7b, 0x97, 0xb5, 0xbb, 0x7e, 0xe6, 0xa8, 0x95, 0xee, 0x46, 0x7c, + 0xbf, 0x04, 0xef, 0x48, 0x3f, 0x09, 0x82, 0xc8, 0x3d, 0x73, 0x54, 0x1f, 0xc4, 0xf7, 0x44, 0xd6, + 0xdb, 0x36, 0x5a, 0x08, 0x1b, 0xd0, 0xa2, 0xe9, 0x15, 0xed, 0xc6, 0xb6, 0xac, 0x17, 0xf4, 0xee, + 0x1d, 0xa0, 0x50, 0xd4, 0xd8, 0xf4, 0x08, 0xcd, 0x06, 0xfe, 0x82, 0xa5, 0x3f, 0x3b, 0xef, 0x8a, + 0x63, 0x33, 0x81, 0xd7, 0x6d, 0x62, 0x0d, 0x21, 0xed, 0x41, 0xb4, 0x7c, 0x99, 0x64, 0xa1, 0x9d, + 0x76, 0x33, 0x47, 0x25, 0x6e, 0x3f, 0xcf, 0x8f, 0xef, 0xfc, 0x94, 0xec, 0xc8, 0xbe, 0x71, 0x18, + 0xda, 0x80, 0xa5, 0xdd, 0xd4, 0xba, 0x11, 0xed, 0xd0, 0x9b, 0xb6, 0xfb, 0x62, 0x67, 0x11, 0x86, + 0xc7, 0xb2, 0x33, 0xb7, 0x58, 0xc2, 0x63, 0x18, 0xf2, 0xc2, 0xb8, 0x90, 0x17, 0xa8, 0x8c, 0xab, + 0x7c, 0x50, 0x73, 0x15, 0xad, 0xb1, 0x60, 0xa9, 0xc9, 0x64, 0xc0, 0x0d, 0x47, 0xdb, 0x37, 0x0a, + 0xcf, 0xa3, 0xe9, 0x79, 0x3c, 0x07, 0x5a, 0x4b, 0xa8, 0x57, 0x96, 0x55, 0xc1, 0xd5, 0xcd, 0x70, + 0x0f, 0x42, 0xbf, 0x09, 0xed, 0x8c, 0x0d, 0x31, 0x80, 0x7b, 0x6a, 0x5c, 0xec, 0x89, 0x63, 0x3d, + 0xeb, 0x0d, 0xef, 0x22, 0x97, 0xbc, 0x37, 0x34, 0x18, 0xda, 0xfd, 0xce, 0xd6, 0x83, 0xcd, 0xa1, + 0xdd, 0x7d, 0xf2, 0x83, 0x89, 0xf7, 0xb7, 0x7a, 0x5d, 0xd0, 0x31, 0xcf, 0x47, 0xb2, 0x66, 0x24, + 0xc0, 0x7a, 0xad, 0xa5, 0x5a, 0x42, 0x0d, 0x72, 0xd9, 0x81, 0xc0, 0x51, 0x3f, 0xa6, 0xbf, 0x2f, + 0x34, 0x78, 0x70, 0x09, 0x44, 0x0f, 0xfa, 0xab, 0x02, 0x7d, 0xba, 0xbd, 0x89, 0x3f, 0xdf, 0x55, + 0x05, 0xc7, 0x48, 0x47, 0x91, 0x06, 0x83, 0x68, 0x5f, 0x34, 0xbc, 0xd3, 0x32, 0x18, 0x3c, 0x12, + 0xa8, 0x0e, 0xfc, 0xee, 0x55, 0xa7, 0xe5, 0xe0, 0x86, 0xc1, 0x40, 0xe3, 0xc7, 0x5e, 0x70, 0x5a, + 0x8e, 0x0c, 0x1e, 0x1c, 0x2c, 0xcf, 0x7b, 0xe7, 0xc7, 0xef, 0xf9, 0x12, 0x0d, 0x08, 0xcd, 0xe0, + 0x60, 0x00, 0xa5, 0xfb, 0x3a, 0x31, 0x53, 0x48, 0xfe, 0x5e, 0x35, 0x4d, 0xb2, 0x1e, 0x65, 0xb2, + 0xcf, 0x83, 0xd8, 0xd3, 0xda, 0xb6, 0x0d, 0xdb, 0xf6, 0x6e, 0x39, 0xcd, 0x9b, 0xea, 0xc4, 0x37, + 0x27, 0xed, 0x1b, 0xf9, 0xfb, 0x12, 0x25, 0x6a, 0xbe, 0x8c, 0xbe, 0xce, 0x7f, 0x57, 0x7c, 0xf7, + 0x91, 0x40, 0x0a, 0xbf, 0x8c, 0xb4, 0xe5, 0x77, 0x83, 0x2f, 0xdd, 0x38, 0x1c, 0x24, 0xcf, 0x5b, + 0xc7, 0x6e, 0x58, 0x06, 0x27, 0xc0, 0x1b, 0xd5, 0x07, 0xf4, 0xaa, 0xdc, 0x27, 0x5f, 0x16, 0x84, + 0x87, 0x50, 0xf7, 0xb4, 0x22, 0x2f, 0x5c, 0x12, 0x46, 0x7b, 0x0c, 0x47, 0xa2, 0x8d, 0xbe, 0x4f, + 0x58, 0x26, 0xb7, 0x25, 0x8e, 0x0e, 0xa1, 0xce, 0x80, 0x7c, 0x02, 0xf9, 0xd9, 0x32, 0xa1, 0xc3, + 0xf1, 0x2c, 0xc4, 0xbb, 0x8a, 0x7e, 0x64, 0x1d, 0x5a, 0x72, 0x03, 0xfc, 0xdd, 0x5c, 0x5d, 0x99, + 0xd7, 0x0c, 0xfc, 0xd4, 0x74, 0x45, 0x1c, 0x49, 0xf1, 0x5a, 0x3a, 0x79, 0xfc, 0xdd, 0x2d, 0x54, + 0xbb, 0xe4, 0x5b, 0x69, 0x76, 0xd2, 0xae, 0x75, 0xdf, 0xbb, 0x5b, 0xc5, 0x3c, 0x98, 0xd2, 0x74, + 0x9b, 0xa4, 0x98, 0x3e, 0xdc, 0x52, 0x07, 0xc1, 0xc6, 0xba, 0xc6, 0x2a, 0xd4, 0xeb, 0xea, 0xf3, + 0xd6, 0x14, 0x9e, 0xe8, 0x3e, 0xdc, 0x7c, 0xb4, 0xa9, 0xae, 0xe0, 0xd5, 0xa6, 0x1b, 0x1a, 0xa1, + 0xb2, 0x16, 0xe1, 0xaf, 0xb0, 0xba, 0xcd, 0x1f, 0x3c, 0xe3, 0x68, 0x9a, 0xe7, 0xdb, 0xd4, 0xd4, + 0x0f, 0xf5, 0x72, 0x85, 0xbf, 0xed, 0x1e, 0xb7, 0xed, 0xc4, 0xe3, 0x23, 0x4d, 0xf5, 0x05, 0xc3, + 0x4d, 0x75, 0x2b, 0xa1, 0xf2, 0xcd, 0xe1, 0x03, 0xc3, 0x28, 0xe5, 0x1f, 0x8d, 0xeb, 0x8f, 0x3e, + 0x8a, 0xea, 0x5f, 0xb3, 0xd8, 0xef, 0x4f, 0x3c, 0x9f, 0xe6, 0x88, 0x36, 0x0d, 0x7b, 0xcd, 0x0e, + 0xeb, 0xfb, 0x4f, 0x04, 0xfd, 0xc3, 0x7e, 0x84, 0xfe, 0x51, 0xec, 0x53, 0x0f, 0x5c, 0xfb, 0xce, + 0xb3, 0x74, 0xba, 0xec, 0xbd, 0xb3, 0x91, 0x53, 0x3f, 0x7c, 0xcd, 0x5c, 0x78, 0x04, 0x71, 0xf8, + 0x31, 0x63, 0xe7, 0x13, 0xc6, 0xd9, 0x5f, 0x2e, 0xa3, 0xef, 0x4a, 0xce, 0xe0, 0xaf, 0x1e, 0x3e, + 0xc5, 0x5f, 0x03, 0x7c, 0x86, 0xbf, 0x46, 0xf8, 0x1c, 0x7f, 0x4d, 0x70, 0xd6, 0xac, 0x83, 0xfc, + 0x58, 0x0d, 0xf2, 0x4f, 0x94, 0xfb, 0xb7, 0x54, 0x72, 0xcc, 0xc7, 0x1c, 0xf3, 0x09, 0x96, 0xf3, + 0x17, 0x2e, 0xe7, 0x0c, 0x97, 0xf3, 0x29, 0x97, 0xf3, 0x19, 0x97, 0xf3, 0x39, 0x97, 0x73, 0x56, + 0x50, 0x2a, 0x6a, 0x51, 0x45, 0xde, 0x7a, 0xdd, 0xf1, 0x12, 0x0f, 0x5c, 0x1d, 0x73, 0x20, 0x4c, + 0x52, 0x8f, 0xf4, 0xce, 0x13, 0xe5, 0x52, 0xdb, 0x5a, 0xc5, 0x1f, 0x1e, 0xe8, 0xd2, 0xfb, 0x8f, + 0xc3, 0x15, 0x8a, 0xf9, 0x44, 0x62, 0x64, 0xad, 0xd1, 0x27, 0x7d, 0x4a, 0x74, 0x26, 0xd6, 0x60, + 0xc5, 0x7a, 0x8b, 0xb6, 0x36, 0xf3, 0x18, 0xf3, 0x84, 0x96, 0xf1, 0x25, 0x62, 0xd8, 0x07, 0xff, + 0xe1, 0x12, 0x5f, 0xd0, 0x38, 0x4f, 0x3e, 0x71, 0x9e, 0xcf, 0x20, 0xb2, 0x19, 0xc7, 0x49, 0x60, + 0x0a, 0x86, 0x40, 0x55, 0x86, 0x07, 0x95, 0x65, 0x78, 0x50, 0x3e, 0xf1, 0x20, 0x2d, 0xc5, 0x0b, + 0xbc, 0x7e, 0x69, 0x27, 0x8a, 0x3c, 0x0d, 0x28, 0x2d, 0x16, 0x5d, 0xb6, 0x1c, 0xd5, 0xab, 0xa3, + 0x1e, 0xa4, 0x4b, 0x0a, 0xfb, 0x44, 0xc1, 0x51, 0xfc, 0x00, 0x5b, 0x60, 0x70, 0x6d, 0x00, 0xf5, + 0x99, 0x9f, 0xb3, 0x1e, 0x7d, 0xcc, 0x03, 0x44, 0x65, 0x42, 0xbb, 0xfd, 0x64, 0x09, 0x6a, 0x62, + 0xa8, 0xe5, 0xd0, 0x2e, 0x25, 0x5a, 0xe5, 0x22, 0x1e, 0x1a, 0x3d, 0x47, 0x31, 0x1f, 0x9d, 0x45, + 0xbd, 0x7f, 0x13, 0xcf, 0x8b, 0xdc, 0x23, 0xd2, 0x8e, 0xd6, 0x63, 0x1d, 0xf5, 0x54, 0xa3, 0x38, + 0x1d, 0x48, 0xf3, 0x5b, 0x6c, 0xf1, 0xc8, 0xc4, 0xa7, 0x70, 0x54, 0xd3, 0x9a, 0xda, 0x49, 0x5e, + 0x0d, 0xed, 0x8d, 0xf9, 0x90, 0xab, 0x6e, 0xe0, 0x72, 0xa2, 0xc4, 0xa7, 0x84, 0x6e, 0xe8, 0x4d, + 0x30, 0xcf, 0x0a, 0x80, 0xbe, 0x7d, 0xa3, 0x3a, 0xf9, 0xab, 0xb9, 0x9a, 0xd8, 0x11, 0x92, 0x5e, + 0xf5, 0xc4, 0x1a, 0xe6, 0xe3, 0x18, 0x54, 0xd1, 0x76, 0x5c, 0xe4, 0x5a, 0x26, 0x95, 0xd4, 0x79, + 0xe0, 0xa6, 0x30, 0x8e, 0xa4, 0x98, 0x0d, 0x35, 0x6c, 0xfb, 0x4a, 0x31, 0xea, 0x7e, 0xaa, 0xea, + 0x91, 0x16, 0x7e, 0xca, 0xad, 0xfc, 0xe9, 0x6a, 0xf9, 0x9d, 0x27, 0xfb, 0xec, 0xef, 0x3c, 0xf5, + 0x3c, 0x72, 0xc1, 0xa8, 0x71, 0x07, 0xf2, 0xc3, 0x58, 0x88, 0x67, 0xd3, 0xb7, 0x54, 0xe9, 0x0e, + 0x34, 0x78, 0xe5, 0xf9, 0xbe, 0x17, 0x5f, 0x44, 0x78, 0xfb, 0x73, 0x7b, 0x24, 0xbb, 0xa6, 0x86, + 0xfd, 0xb2, 0xa1, 0x7d, 0x63, 0x0c, 0x4d, 0xbe, 0x6b, 0x82, 0x70, 0x1b, 0x8e, 0xce, 0x04, 0xe2, + 0x36, 0x1f, 0xee, 0xc5, 0xdf, 0x42, 0xb8, 0xef, 0x36, 0x98, 0xa5, 0x7b, 0xeb, 0x0e, 0x37, 0x72, + 0xe6, 0x3f, 0xfc, 0xea, 0xe8, 0x1c, 0xe1, 0xa7, 0xc5, 0xd3, 0x00, 0xd5, 0x81, 0x06, 0xb4, 0x1a, + 0x42, 0x68, 0x15, 0x06, 0xf1, 0xb7, 0x9e, 0xe6, 0x42, 0x30, 0xbc, 0x11, 0x7c, 0xcd, 0x27, 0x21, + 0xcf, 0xd3, 0x02, 0xc1, 0xe6, 0x8f, 0x20, 0xe4, 0xb0, 0x38, 0x67, 0xa3, 0x44, 0x7e, 0xb8, 0x17, + 0x02, 0x8d, 0x81, 0x26, 0x9a, 0x37, 0x43, 0xcc, 0x55, 0x8c, 0x0c, 0x6e, 0x7b, 0x16, 0x7c, 0x5d, + 0x5e, 0xf2, 0x47, 0xeb, 0x41, 0xab, 0x15, 0x42, 0x5e, 0xfd, 0x48, 0x00, 0xed, 0xb4, 0x96, 0x1b, + 0x1a, 0x20, 0x42, 0x3b, 0x15, 0x3c, 0x56, 0x71, 0xee, 0x23, 0x5a, 0x85, 0xb5, 0xbc, 0x93, 0x0a, + 0xbb, 0x11, 0x2d, 0x00, 0x98, 0x05, 0xf2, 0x6c, 0x90, 0x0e, 0x37, 0xdd, 0x35, 0x9b, 0xa4, 0x91, + 0x58, 0xff, 0x7b, 0xb3, 0x71, 0x83, 0xaf, 0x6d, 0x30, 0x6e, 0xdf, 0x36, 0x18, 0x7d, 0x0c, 0xf9, + 0x81, 0xcd, 0x09, 0x07, 0x13, 0xd7, 0xaf, 0x77, 0x01, 0x59, 0x5b, 0x23, 0x89, 0xeb, 0x6f, 0x37, + 0x83, 0x31, 0x08, 0xf6, 0xb6, 0x88, 0xaa, 0xff, 0xe7, 0xd7, 0x02, 0x41, 0x6c, 0x8d, 0xfe, 0x85, + 0x67, 0xa1, 0x7e, 0x05, 0xa4, 0xba, 0xfe, 0xf0, 0x6a, 0x5b, 0x03, 0xe6, 0xd0, 0x21, 0x34, 0xb5, + 0x2b, 0x8e, 0x3a, 0xfd, 0xe3, 0x68, 0x40, 0x42, 0xec, 0xd1, 0x49, 0xf3, 0x27, 0x05, 0x3d, 0x24, + 0x8d, 0xf4, 0xdd, 0x62, 0x9c, 0x4f, 0x30, 0xce, 0xae, 0xd7, 0xd2, 0x6c, 0x1c, 0xd2, 0xa7, 0x82, + 0x9c, 0xde, 0x89, 0xbd, 0xe5, 0x56, 0xa6, 0x81, 0xb9, 0x1c, 0xde, 0x78, 0x02, 0xac, 0x3d, 0x50, + 0xe5, 0x82, 0x37, 0xb7, 0xaf, 0xed, 0xec, 0xa8, 0x81, 0x1e, 0x50, 0x67, 0xb9, 0xe1, 0xcd, 0x84, + 0xb3, 0xf1, 0x77, 0xc3, 0xbf, 0x7b, 0x15, 0xff, 0xde, 0x47, 0x39, 0xd6, 0x54, 0x86, 0x3a, 0x4e, + 0xa0, 0x71, 0x92, 0x1b, 0xf4, 0xb4, 0x63, 0xcd, 0x05, 0x87, 0x12, 0x23, 0xeb, 0xca, 0x97, 0xc0, + 0x5b, 0x97, 0xdf, 0x6b, 0xa6, 0x79, 0x9f, 0xb7, 0x2e, 0x5b, 0x6f, 0x96, 0xf8, 0x7e, 0xbb, 0x59, + 0xae, 0xf6, 0xd7, 0x4a, 0x87, 0x1a, 0x68, 0x8e, 0xd0, 0x6b, 0xd9, 0x86, 0xa5, 0x77, 0x6e, 0x0b, + 0x07, 0x62, 0x48, 0xd5, 0x91, 0x9d, 0x1f, 0xce, 0x42, 0xea, 0x12, 0xf3, 0x0f, 0x92, 0x98, 0xa7, + 0xa3, 0x99, 0x8e, 0x29, 0x2b, 0xc1, 0x0c, 0x8b, 0x08, 0xbe, 0x29, 0xe4, 0x2d, 0xba, 0x2c, 0x0e, + 0x0e, 0x78, 0x1f, 0xad, 0xee, 0xfd, 0xa3, 0xa4, 0xb5, 0x34, 0x1c, 0x87, 0x2d, 0x55, 0xbb, 0x80, + 0xee, 0x8f, 0xe3, 0x1d, 0xed, 0x5d, 0xf8, 0x99, 0x77, 0x97, 0xee, 0x78, 0x5b, 0x82, 0xbc, 0xce, + 0x44, 0x0f, 0x52, 0x7b, 0xcf, 0x56, 0xf0, 0xef, 0x12, 0x94, 0xa2, 0x46, 0x5e, 0x4b, 0x5d, 0x12, + 0x07, 0xf6, 0xfa, 0xf7, 0xc6, 0x54, 0x9f, 0xc4, 0xfe, 0xf9, 0x7e, 0xf0, 0xff, 0xcb, 0x09, 0x29, + 0xca, 0xf5, 0x9a, 0x83, 0xef, 0xb6, 0xd6, 0x8d, 0xe4, 0x83, 0x66, 0xb7, 0x2e, 0x91, 0xdd, 0xdf, + 0xb0, 0x39, 0x2e, 0x8d, 0x4b, 0x63, 0xd1, 0x52, 0x64, 0x29, 0x71, 0x33, 0xc9, 0x6c, 0xfa, 0x26, + 0xf7, 0x07, 0x9b, 0xb3, 0xde, 0x6c, 0x50, 0xc6, 0xba, 0xa7, 0xf6, 0xc3, 0xd8, 0x96, 0x6e, 0x58, + 0x30, 0x35, 0x0c, 0x6d, 0xf4, 0xfc, 0x83, 0xc7, 0x20, 0x82, 0xa3, 0xe0, 0x5b, 0x30, 0x97, 0xc7, + 0x42, 0x4b, 0xdc, 0x80, 0xd6, 0x47, 0x30, 0xeb, 0x1f, 0xe6, 0x2a, 0x4c, 0xf3, 0xf8, 0x27, 0x30, + 0x74, 0xd5, 0x1c, 0x58, 0x47, 0xcf, 0x3f, 0xd8, 0x01, 0x89, 0xcb, 0x29, 0xe5, 0x6d, 0x71, 0x63, + 0xc3, 0x07, 0xb0, 0x3a, 0x93, 0x72, 0x51, 0x5a, 0x8b, 0xe4, 0x1c, 0x07, 0xa1, 0xe7, 0xaa, 0x30, + 0x74, 0x73, 0x8e, 0x5d, 0xb0, 0x8c, 0x73, 0x2c, 0xc9, 0xfa, 0x66, 0x8c, 0xcb, 0x98, 0x57, 0xad, + 0x58, 0x0e, 0x6e, 0xf2, 0x9c, 0xc3, 0x27, 0x25, 0xd3, 0xd3, 0x29, 0x3b, 0x6b, 0x8d, 0x48, 0xff, + 0x09, 0xd2, 0x0e, 0xb3, 0x5a, 0x23, 0xde, 0x0b, 0x59, 0x67, 0xe4, 0xf7, 0x43, 0x20, 0xd2, 0xa1, + 0x8e, 0xf4, 0xa3, 0x0b, 0xd2, 0x41, 0x6e, 0xba, 0xf8, 0x3f, 0x36, 0x41, 0xba, 0xec, 0xac, 0xf7, + 0x6e, 0xe4, 0x5b, 0x03, 0xd0, 0x81, 0xbf, 0x2e, 0x88, 0x0a, 0x6d, 0x4f, 0xf6, 0xfd, 0x48, 0xdb, + 0x41, 0x5a, 0x08, 0xb4, 0xcf, 0x55, 0x4a, 0x2d, 0x7a, 0x91, 0xbd, 0x31, 0x9d, 0x08, 0x22, 0xb7, + 0xb0, 0xfa, 0xae, 0x48, 0xb5, 0x09, 0x4f, 0x48, 0xef, 0xe1, 0xfb, 0x7b, 0x9c, 0xa7, 0x5f, 0xd3, + 0x79, 0xfa, 0x59, 0x47, 0xed, 0xdf, 0xee, 0x8b, 0x3a, 0x66, 0x8e, 0xa2, 0x25, 0x92, 0x1b, 0x62, + 0xef, 0xb5, 0x0c, 0x0f, 0xf6, 0x98, 0x91, 0x12, 0x8c, 0xcc, 0x2b, 0x8f, 0xd3, 0x8c, 0x14, 0xf1, + 0x9f, 0xa8, 0x1c, 0x57, 0xb0, 0xb4, 0x37, 0x35, 0x2e, 0x02, 0x07, 0x50, 0x2e, 0xf7, 0x48, 0x21, + 0xff, 0xb8, 0xf5, 0xfc, 0xb7, 0xe2, 0xad, 0xe3, 0xf9, 0x0b, 0x87, 0x76, 0xc5, 0xed, 0x17, 0xe1, + 0x3a, 0xeb, 0x91, 0x83, 0x91, 0x07, 0xc6, 0x2e, 0xa5, 0xb9, 0xaa, 0x5e, 0x52, 0x02, 0xe0, 0x1d, + 0x40, 0x3d, 0xd9, 0xdc, 0x7c, 0x1c, 0xe4, 0xa9, 0x2d, 0xc8, 0x19, 0x97, 0xd1, 0x17, 0x69, 0xd5, + 0xd2, 0xfc, 0x00, 0x71, 0x51, 0x7c, 0x1b, 0x42, 0x2b, 0x7b, 0xa8, 0x0d, 0xda, 0xfd, 0xa8, 0x4f, + 0x9a, 0xa3, 0x07, 0x66, 0xf6, 0xc3, 0x06, 0xf0, 0x05, 0x96, 0x22, 0x33, 0x7d, 0x1f, 0x82, 0x53, + 0x43, 0xd0, 0x37, 0x93, 0xac, 0xaa, 0xe0, 0x4c, 0xb2, 0x83, 0x9a, 0x90, 0xcf, 0x76, 0xb1, 0x9e, + 0x97, 0xc8, 0xd5, 0xf8, 0x12, 0x47, 0x48, 0x17, 0xbc, 0x0a, 0xeb, 0x84, 0xf2, 0x96, 0xb7, 0x17, + 0xae, 0x13, 0xdf, 0x1d, 0x57, 0xac, 0xe4, 0x73, 0x45, 0xca, 0xb4, 0x33, 0x43, 0xf8, 0x2d, 0x59, + 0x3b, 0xee, 0xad, 0xaa, 0x22, 0xfd, 0x95, 0x21, 0xef, 0x5d, 0xa9, 0x32, 0x7b, 0xf3, 0x70, 0x64, + 0x99, 0x11, 0x2f, 0xef, 0xc5, 0x6c, 0x33, 0x5f, 0xc1, 0x52, 0x17, 0xce, 0xdc, 0x8b, 0xbf, 0x8b, + 0xd4, 0x49, 0x56, 0x9f, 0x1e, 0x16, 0x17, 0x5b, 0xfd, 0xe0, 0x5b, 0x6c, 0xfb, 0x30, 0x84, 0x5a, + 0xd9, 0x0d, 0x09, 0x3f, 0x49, 0xa6, 0xd3, 0xed, 0x1a, 0x97, 0x3f, 0xad, 0xad, 0x23, 0x06, 0xb1, + 0x84, 0xd0, 0x2c, 0x34, 0x1c, 0x6a, 0x3c, 0xd0, 0xe6, 0x5d, 0x09, 0x0b, 0x6a, 0x57, 0xc2, 0x4d, + 0xa8, 0x37, 0x2c, 0x42, 0x8e, 0xbf, 0x18, 0x6b, 0xf1, 0x55, 0x4c, 0x93, 0x2c, 0x55, 0xb3, 0xe7, + 0x35, 0x1f, 0xd8, 0x3b, 0x2f, 0x34, 0xf2, 0xe2, 0xbf, 0xfe, 0x3a, 0x5a, 0xf1, 0x42, 0xa8, 0xdb, + 0xb9, 0xbd, 0xb9, 0x5b, 0xa9, 0x6b, 0xac, 0x6f, 0xf1, 0xea, 0x42, 0xc3, 0xce, 0x82, 0x83, 0xf7, + 0x6c, 0x1b, 0xec, 0xb2, 0xcf, 0xfd, 0xcc, 0x0c, 0xff, 0xf3, 0xb5, 0xbf, 0xdb, 0x13, 0x5a, 0x17, + 0xda, 0x13, 0x5c, 0xa7, 0x1a, 0xfb, 0x00, 0x39, 0x55, 0x10, 0xb5, 0x2d, 0x7b, 0x5d, 0x80, 0x56, + 0x5d, 0xea, 0x66, 0x87, 0x67, 0x77, 0xe9, 0xe7, 0x7c, 0x08, 0x85, 0xde, 0x82, 0xe3, 0xbe, 0x5f, + 0xbe, 0x54, 0xe7, 0xfb, 0xc3, 0x6f, 0x0e, 0xde, 0x5d, 0xe3, 0xc6, 0xf8, 0x06, 0x8c, 0xaf, 0xae, + 0xf3, 0x87, 0xfd, 0xd9, 0xf8, 0x5f, 0x73, 0x7c, 0xb9, 0xe1, 0x8d, 0xbb, 0x27, 0x49, 0xb2, 0x01, + 0x0a, 0xed, 0x26, 0xa4, 0xda, 0xc2, 0x87, 0xa0, 0xae, 0x31, 0x1c, 0x8c, 0x15, 0xef, 0x58, 0x7b, + 0x8b, 0x31, 0x6c, 0x58, 0x01, 0xf2, 0xa4, 0x1d, 0x6b, 0x3b, 0xf0, 0xa9, 0x1b, 0x64, 0x7b, 0xd8, + 0xd0, 0x65, 0x0e, 0x1a, 0xea, 0x1a, 0xd7, 0x48, 0xaa, 0x1d, 0xd3, 0x58, 0x76, 0xac, 0xfd, 0xfe, + 0x2f, 0x43, 0xb7, 0x07, 0x1b, 0x11, 0x8a, 0x46, 0xaa, 0xd9, 0x38, 0x1b, 0x0a, 0x8f, 0xcf, 0x8e, + 0x4b, 0x9b, 0x66, 0xcf, 0x82, 0xda, 0x3c, 0x7c, 0x0f, 0xe2, 0x7b, 0xb0, 0x6a, 0xf6, 0x81, 0x3d, + 0x54, 0x2f, 0x5a, 0xd9, 0x85, 0xc7, 0xfd, 0x18, 0xeb, 0xaf, 0x82, 0x59, 0x66, 0x91, 0xba, 0xd6, + 0x74, 0x3c, 0x78, 0xc8, 0x5f, 0x55, 0x10, 0xb7, 0xbe, 0xb3, 0x14, 0xa1, 0x6b, 0x8c, 0x45, 0x9e, + 0x6f, 0x5e, 0xa9, 0x0f, 0xcc, 0x56, 0xf5, 0xb5, 0x79, 0xb7, 0xa5, 0xaa, 0x5a, 0xe6, 0xdd, 0x59, + 0x1f, 0x9c, 0x77, 0xcf, 0x1f, 0x5f, 0xf3, 0xd3, 0x79, 0xcd, 0x1d, 0xfc, 0xad, 0x67, 0x3d, 0x4a, + 0xa2, 0x6a, 0x4f, 0xb3, 0x90, 0x19, 0x23, 0xf7, 0x1c, 0x4c, 0xd0, 0x77, 0xba, 0x1c, 0x53, 0x8b, + 0xfd, 0x56, 0x2d, 0x42, 0xdf, 0x48, 0xd4, 0x23, 0x95, 0xa8, 0x76, 0x2a, 0xed, 0x9f, 0x5f, 0x53, + 0x8d, 0xb5, 0x79, 0xf4, 0x7e, 0x5b, 0xca, 0x63, 0x44, 0x2e, 0xaf, 0xa7, 0xdf, 0xb1, 0xd3, 0x33, + 0x7f, 0x85, 0xbd, 0x15, 0x9c, 0xf9, 0x1a, 0xfe, 0x36, 0x79, 0xf5, 0x41, 0xd4, 0x65, 0xaa, 0xe0, + 0x00, 0xea, 0x7a, 0x33, 0x5f, 0xc4, 0x90, 0x8e, 0x9c, 0xe7, 0xc5, 0xf8, 0xbc, 0x4c, 0x7b, 0x56, + 0x47, 0xe8, 0x89, 0xfa, 0x39, 0xda, 0xba, 0x11, 0xe1, 0xd5, 0xc7, 0x65, 0x9e, 0xb5, 0x2a, 0xd0, + 0x7a, 0x3f, 0x00, 0xfe, 0xc2, 0x57, 0xeb, 0xfc, 0x6b, 0x00, 0x65, 0xe0, 0x92, 0x91, 0x41, 0x8f, + 0x0f, 0xaa, 0x51, 0x4a, 0x58, 0x5d, 0x7e, 0x71, 0x76, 0xb3, 0x27, 0x08, 0xb5, 0x73, 0xcf, 0x8d, + 0x3d, 0x52, 0x5b, 0x20, 0x07, 0xcf, 0xa7, 0x50, 0x6a, 0x3e, 0x52, 0x69, 0x78, 0xeb, 0xf6, 0xb7, + 0xee, 0xe0, 0x5d, 0x05, 0xde, 0x3e, 0x98, 0x97, 0xe8, 0x19, 0xdb, 0x9e, 0xe8, 0x04, 0x58, 0xc7, + 0x30, 0xb6, 0x88, 0x39, 0xc3, 0xf6, 0x8d, 0xdb, 0x6e, 0x5f, 0x69, 0x21, 0xdf, 0xf4, 0x94, 0x26, + 0x6a, 0xf5, 0xea, 0xb5, 0x11, 0xde, 0xa3, 0x8a, 0x1d, 0xd1, 0x1c, 0xc2, 0x23, 0xbc, 0x47, 0xb5, + 0x8c, 0x0c, 0xf2, 0x38, 0x68, 0xf1, 0x16, 0x30, 0x44, 0xbe, 0x2b, 0x3f, 0x42, 0x33, 0xf8, 0xed, + 0xd3, 0xad, 0xe9, 0x3a, 0x46, 0xd6, 0x72, 0x7c, 0x68, 0xc2, 0xfb, 0x7c, 0xde, 0x51, 0x5a, 0x8f, + 0x57, 0x88, 0xf7, 0x07, 0x59, 0xdb, 0x6e, 0x67, 0xbd, 0xa3, 0x68, 0xdb, 0xed, 0xdd, 0x90, 0xba, + 0x89, 0xe0, 0x19, 0xdd, 0xc5, 0xbf, 0xda, 0x19, 0x0c, 0x19, 0x19, 0x69, 0x17, 0x6b, 0xe6, 0x6e, + 0xfa, 0x5e, 0x1a, 0x7b, 0x00, 0x5b, 0x5e, 0xeb, 0xc2, 0x52, 0x2a, 0x3d, 0xd0, 0x52, 0x8d, 0x05, + 0xc2, 0x2c, 0xa4, 0xf4, 0x00, 0x9d, 0xf4, 0x58, 0x3e, 0x43, 0xb2, 0xb0, 0x66, 0xff, 0x58, 0x11, + 0xd6, 0x5b, 0xef, 0x47, 0x6d, 0x24, 0x52, 0xbb, 0x8c, 0xd6, 0x90, 0x90, 0x1a, 0x7c, 0x48, 0x1d, + 0xbe, 0x2a, 0xeb, 0x4b, 0x2f, 0xbb, 0xfc, 0x5e, 0xdf, 0xfe, 0xbd, 0xbf, 0xdf, 0xeb, 0x95, 0xd3, + 0xa1, 0x3d, 0xd2, 0xbd, 0xbe, 0x1a, 0xbf, 0xd7, 0x90, 0x7e, 0x7f, 0x63, 0x18, 0xa9, 0xa8, 0xa9, + 0x1e, 0x0e, 0x37, 0xd3, 0xfa, 0xd7, 0x68, 0x35, 0xff, 0x2a, 0x3d, 0x85, 0x7b, 0x06, 0x94, 0x00, + 0x4a, 0xbf, 0xb1, 0x95, 0x8b, 0xbd, 0x68, 0x5a, 0x71, 0xeb, 0x83, 0xaf, 0x0e, 0x28, 0x8d, 0x1c, + 0x36, 0xe8, 0xf5, 0xb6, 0x8b, 0xb0, 0x26, 0x6f, 0xbe, 0xd6, 0xdb, 0x17, 0xe9, 0x55, 0x0d, 0xb3, + 0x81, 0x2a, 0x5b, 0xc0, 0x67, 0x97, 0xc0, 0xa7, 0x13, 0x79, 0x7c, 0x1a, 0x7e, 0xe9, 0x5b, 0xf9, + 0x3b, 0x62, 0xe6, 0x78, 0xe1, 0xb6, 0x3b, 0xa2, 0x16, 0x55, 0x8f, 0x23, 0x10, 0xaf, 0x26, 0x7d, + 0x40, 0x26, 0x7b, 0x04, 0x29, 0x0c, 0x66, 0xe5, 0xcf, 0x3d, 0x77, 0xfe, 0x05, 0x75, 0xe1, 0x1a, + 0x98, 0x24, 0xbf, 0x79, 0xfb, 0x9b, 0xb7, 0x0b, 0x2c, 0xb7, 0xa7, 0x7b, 0xd6, 0x47, 0xb0, 0x9e, + 0xef, 0x35, 0xeb, 0x85, 0x57, 0x10, 0x2e, 0xbb, 0x27, 0x9d, 0x66, 0xe4, 0xae, 0xdc, 0x9e, 0xc9, + 0xbc, 0xcf, 0xaf, 0x5c, 0xef, 0x31, 0x79, 0x0a, 0x44, 0xaf, 0x1c, 0xbd, 0xab, 0x4d, 0xe6, 0x9d, + 0x47, 0x8f, 0x70, 0x49, 0x6e, 0xfe, 0xf5, 0xe5, 0xf6, 0x48, 0x66, 0x8f, 0xc6, 0x2c, 0xd4, 0xbb, + 0x5a, 0xd9, 0xd2, 0x9b, 0x8f, 0xfd, 0xd2, 0x8e, 0xa3, 0xa3, 0x17, 0x7b, 0x61, 0x11, 0xea, 0x30, + 0x8b, 0x91, 0x17, 0x45, 0x91, 0x0f, 0x2d, 0xf3, 0x7a, 0xa0, 0x1b, 0x79, 0x51, 0x0f, 0xf6, 0x5d, + 0x7d, 0x25, 0xf6, 0x4e, 0x5d, 0xc3, 0xbc, 0xb9, 0x6f, 0x0e, 0xf3, 0xd7, 0x75, 0x6d, 0x57, 0xac, + 0x1e, 0x02, 0xb8, 0xde, 0xea, 0xc1, 0x76, 0x5f, 0x1f, 0xad, 0xc6, 0x51, 0xd7, 0x15, 0x78, 0x16, + 0x96, 0xcc, 0x6b, 0x39, 0xf4, 0x62, 0x6d, 0x0b, 0xea, 0x7e, 0x1d, 0x75, 0x73, 0x91, 0xa7, 0xa8, + 0xf5, 0x7e, 0x4f, 0x04, 0x16, 0x7a, 0x7d, 0x18, 0xdf, 0xee, 0x09, 0xc3, 0x7c, 0x8d, 0x26, 0x14, + 0x15, 0xc6, 0x4e, 0x86, 0x3d, 0x70, 0x7d, 0x0c, 0x74, 0x21, 0x6f, 0x33, 0x72, 0xb6, 0x97, 0x90, + 0xb3, 0x55, 0xd6, 0x14, 0x3c, 0xd7, 0xbc, 0xc2, 0xb9, 0x2d, 0xd4, 0xad, 0xd4, 0xfb, 0x6b, 0xac, + 0xa1, 0x97, 0x6a, 0xe5, 0xd0, 0x1e, 0xb7, 0xed, 0xcd, 0xb5, 0xcf, 0xdf, 0xde, 0x65, 0x7b, 0x63, + 0xdd, 0xff, 0x7a, 0xe9, 0xef, 0x5e, 0x0a, 0xad, 0x0d, 0xbd, 0x14, 0x5c, 0xab, 0x1a, 0x57, 0x13, + 0x6f, 0x6b, 0xa8, 0x43, 0xde, 0x56, 0xdf, 0x88, 0x35, 0x04, 0xb3, 0xfc, 0xe4, 0x97, 0xbf, 0xac, + 0x0f, 0xfe, 0xf1, 0x35, 0xb7, 0xfc, 0xe6, 0x3d, 0xd5, 0xc8, 0xd9, 0xea, 0x03, 0x18, 0x1b, 0xaa, + 0x85, 0x74, 0xec, 0x4b, 0xbb, 0x29, 0xd6, 0x29, 0x1d, 0xbc, 0xa7, 0x88, 0xe6, 0x78, 0x0a, 0x6b, + 0xf3, 0x64, 0x3d, 0x14, 0xde, 0xab, 0xbf, 0xc2, 0x0f, 0x35, 0xe1, 0x86, 0x58, 0xf1, 0xce, 0x41, + 0xe4, 0x6b, 0x12, 0xf2, 0xb5, 0xed, 0x3b, 0x07, 0x91, 0xaf, 0x49, 0xc8, 0xd7, 0xb6, 0x84, 0xa5, + 0x2e, 0x4b, 0x50, 0xa2, 0x14, 0xfd, 0xc4, 0xd9, 0x1a, 0x62, 0x96, 0x9d, 0x83, 0xdf, 0x7f, 0x39, + 0xb4, 0x3e, 0xd8, 0x44, 0x6b, 0x25, 0x55, 0x79, 0x69, 0xde, 0xb5, 0x5a, 0x7a, 0xc0, 0x5f, 0xdf, + 0x50, 0x43, 0xbc, 0xab, 0x01, 0xdf, 0x1b, 0xaa, 0x6c, 0x07, 0x1a, 0x6a, 0x40, 0xbc, 0xd5, 0xea, + 0x8e, 0x07, 0x31, 0x3e, 0x88, 0xf1, 0x05, 0xe9, 0xf8, 0x37, 0x22, 0x58, 0x3b, 0x42, 0x55, 0x15, + 0xa4, 0xf5, 0xc1, 0x7a, 0x9f, 0xb7, 0x80, 0xee, 0xb5, 0x66, 0x0a, 0xf3, 0x06, 0x4b, 0x3d, 0x50, + 0x13, 0x5a, 0x17, 0x6e, 0x8a, 0x01, 0x3c, 0xb4, 0xbd, 0xa1, 0xdb, 0xd5, 0x63, 0x7d, 0xb7, 0xab, + 0x2e, 0x58, 0x1f, 0x51, 0x22, 0x82, 0x86, 0xeb, 0xe3, 0xc7, 0xc1, 0xeb, 0x73, 0x84, 0x5e, 0x67, + 0xea, 0xbd, 0xe1, 0x07, 0xd8, 0x1b, 0x35, 0x81, 0xa0, 0x5a, 0xbe, 0xda, 0xfa, 0xe7, 0xae, 0xaa, + 0x66, 0x77, 0xf3, 0x1f, 0x44, 0xaa, 0x5b, 0x1f, 0x04, 0x6f, 0x68, 0x7c, 0xaa, 0xba, 0x60, 0x8d, + 0x44, 0xbc, 0xd3, 0xdb, 0x30, 0x6f, 0x68, 0xff, 0x5e, 0xec, 0x19, 0x5f, 0x0e, 0xff, 0x0c, 0xe1, + 0x7b, 0x0d, 0xf2, 0xcf, 0x3a, 0xe6, 0x94, 0xa8, 0xa3, 0xbf, 0x49, 0x1c, 0xb4, 0x8a, 0xe3, 0x5a, + 0x90, 0x46, 0x6a, 0xd2, 0xe1, 0x07, 0x13, 0x6a, 0xdb, 0xc5, 0xe0, 0xba, 0x01, 0xe1, 0x82, 0x9a, + 0x2c, 0x64, 0xf5, 0x58, 0xe7, 0x85, 0x70, 0xdd, 0x80, 0x70, 0x61, 0xaa, 0x50, 0x6e, 0x2a, 0x82, + 0xcb, 0x63, 0x42, 0x8d, 0x73, 0x90, 0x7f, 0xbb, 0x67, 0x7e, 0x84, 0xca, 0x7e, 0x96, 0x07, 0xeb, + 0x26, 0xf0, 0xe0, 0x2f, 0xe7, 0xbb, 0x4d, 0x69, 0xbe, 0x5b, 0x5f, 0x90, 0x68, 0x12, 0x7c, 0x17, + 0x75, 0x6d, 0xa4, 0x36, 0x68, 0x32, 0xc1, 0x5d, 0xc1, 0xf4, 0x58, 0xed, 0x83, 0x9f, 0xfe, 0x06, + 0xb5, 0x69, 0xab, 0xcb, 0x97, 0xb1, 0x68, 0x6a, 0xe6, 0x9e, 0x3b, 0xab, 0xd4, 0x18, 0xe5, 0x06, + 0xe6, 0xbe, 0x9b, 0xc4, 0x48, 0x0b, 0xa5, 0x47, 0xe7, 0x1a, 0x82, 0xeb, 0xf3, 0x37, 0x32, 0x5c, + 0xf7, 0xee, 0x34, 0xd7, 0x0d, 0x11, 0xd7, 0xd5, 0x5d, 0xc0, 0x75, 0x75, 0x39, 0x5c, 0xf7, 0x76, + 0x8d, 0xeb, 0x1a, 0x05, 0xbf, 0x48, 0x97, 0xac, 0x71, 0xe3, 0xd0, 0x84, 0x77, 0xc1, 0x6d, 0xeb, + 0xf0, 0x0a, 0x6a, 0xdc, 0xf6, 0xee, 0xf6, 0x75, 0x1a, 0xbf, 0xbd, 0x1b, 0xf9, 0xed, 0x12, 0x86, + 0xa4, 0x85, 0x7f, 0x17, 0x4f, 0xe0, 0xb7, 0x0a, 0x8f, 0xf0, 0x43, 0x9a, 0x7e, 0xb1, 0x10, 0xc7, + 0xb6, 0x8a, 0xfd, 0xd6, 0xee, 0x76, 0x49, 0x16, 0xfe, 0xba, 0x82, 0xf6, 0x38, 0x2f, 0x41, 0xdb, + 0x20, 0x70, 0xc3, 0x32, 0x28, 0x85, 0x3a, 0x34, 0x4b, 0x8a, 0xea, 0x96, 0x41, 0x31, 0x8e, 0x96, + 0x92, 0x5a, 0xd3, 0xa1, 0xc0, 0xbc, 0x20, 0xed, 0x6b, 0x38, 0xe8, 0x9b, 0x17, 0xb0, 0xba, 0x50, + 0x5b, 0x2b, 0x8e, 0x59, 0xf1, 0x6e, 0x81, 0x4b, 0xa3, 0xe6, 0x7e, 0x59, 0x35, 0x06, 0x8c, 0xaa, + 0xdc, 0xaf, 0x47, 0x8d, 0x67, 0x52, 0x4c, 0x6e, 0x33, 0x56, 0x41, 0x9a, 0xf6, 0xc9, 0x23, 0x04, + 0x52, 0xce, 0x2c, 0x5a, 0xef, 0xf3, 0x36, 0xe3, 0x53, 0x53, 0x8d, 0x29, 0x4d, 0xe7, 0xde, 0x86, + 0xaa, 0xbc, 0x9a, 0x82, 0x97, 0x5e, 0x72, 0xf8, 0xeb, 0x42, 0x7f, 0xf8, 0xcd, 0x9c, 0x8f, 0x0f, + 0x41, 0x36, 0x1f, 0x8d, 0x19, 0x6f, 0x43, 0x8d, 0x9c, 0x19, 0x33, 0x66, 0x1c, 0x33, 0x39, 0x39, + 0x31, 0x3e, 0x84, 0xf1, 0xfa, 0xcc, 0x98, 0x09, 0xa1, 0xf5, 0x57, 0x48, 0x23, 0x84, 0xc6, 0x0a, + 0x9a, 0x83, 0x85, 0x55, 0x81, 0x62, 0xd3, 0x66, 0x58, 0x06, 0xb0, 0x25, 0x28, 0x87, 0x06, 0x91, + 0x22, 0x9d, 0xa8, 0x2d, 0x2c, 0xab, 0x9a, 0xed, 0x6a, 0xfe, 0x3d, 0x53, 0xda, 0xac, 0x6a, 0x1c, + 0x01, 0xc1, 0x34, 0x9d, 0xd5, 0x6a, 0xd4, 0x58, 0x2b, 0x13, 0x3d, 0x7a, 0x7d, 0xae, 0x50, 0x3a, + 0xd5, 0x10, 0x54, 0x35, 0x2b, 0xcd, 0x42, 0x16, 0xd4, 0xc6, 0x1f, 0x84, 0x1a, 0xa9, 0x5a, 0x4f, + 0xe7, 0xb9, 0xe6, 0x8c, 0x93, 0x1a, 0x6d, 0x9c, 0xb8, 0xc1, 0x8a, 0xe3, 0x61, 0xfc, 0x38, 0x99, + 0x85, 0x57, 0x0d, 0xca, 0xf3, 0x59, 0x99, 0xd1, 0x12, 0xce, 0x19, 0x2d, 0x35, 0x7f, 0x18, 0xbe, + 0x81, 0xf4, 0xe8, 0x1a, 0xb5, 0x9d, 0x61, 0x74, 0x8d, 0x87, 0xb1, 0xb6, 0x37, 0x17, 0xc6, 0x59, + 0x57, 0x23, 0x8c, 0x2b, 0x79, 0x34, 0xbb, 0x27, 0xc2, 0x59, 0xdb, 0x9b, 0x0b, 0xe7, 0x2c, 0xaf, + 0x80, 0x93, 0x52, 0x7b, 0x0c, 0x91, 0x9d, 0x9f, 0x86, 0x3c, 0x06, 0xff, 0xb9, 0x4f, 0x89, 0x1b, + 0x63, 0xcd, 0x33, 0xf7, 0xf1, 0xe8, 0xf9, 0xd5, 0xb8, 0xd1, 0xb3, 0x0c, 0x6c, 0x99, 0xd1, 0xb3, + 0x3c, 0x33, 0x7a, 0x96, 0x67, 0xe5, 0x5b, 0x5a, 0x8e, 0x05, 0x4c, 0xf3, 0x8c, 0x71, 0x5a, 0xeb, + 0xac, 0xc3, 0x56, 0x35, 0x65, 0x46, 0x48, 0x18, 0xa9, 0xd0, 0x38, 0x42, 0x5e, 0xb0, 0x22, 0x8a, + 0x0d, 0x6d, 0xf2, 0x40, 0x7d, 0xb0, 0x56, 0x46, 0x9b, 0xbf, 0x0e, 0xb9, 0x7b, 0xe0, 0x8a, 0x26, + 0x98, 0xa7, 0x82, 0xe4, 0xab, 0x80, 0xa3, 0xf7, 0x38, 0xa5, 0xa3, 0x1b, 0x9c, 0x01, 0x94, 0x73, + 0x26, 0x96, 0x73, 0x34, 0x4e, 0xe2, 0x28, 0xe7, 0x86, 0x56, 0x8f, 0x3d, 0x37, 0xd4, 0x09, 0x52, + 0x09, 0x6a, 0x93, 0x12, 0x72, 0x60, 0xc9, 0xea, 0x01, 0x3d, 0xcc, 0x5b, 0x0c, 0xe0, 0x40, 0xcc, + 0x45, 0xbc, 0xff, 0xf8, 0xa0, 0x31, 0x72, 0x3e, 0x21, 0xa3, 0x51, 0x63, 0x81, 0xf9, 0x50, 0x03, + 0xde, 0x1a, 0x7d, 0x6d, 0xbf, 0x09, 0x7a, 0x97, 0xa9, 0x1d, 0xe2, 0x29, 0x0c, 0x31, 0x5f, 0xef, + 0x09, 0x75, 0x41, 0xe6, 0xad, 0xa6, 0x77, 0xa7, 0x1a, 0x2a, 0x06, 0xbb, 0x54, 0x24, 0xe3, 0x9b, + 0x35, 0x2c, 0xc5, 0x5c, 0x81, 0x86, 0xda, 0x7e, 0x1d, 0xa8, 0xe5, 0x61, 0x29, 0x5a, 0x2e, 0x9e, + 0x7b, 0x2d, 0xaa, 0x53, 0x2b, 0xe9, 0x21, 0x75, 0x52, 0xaf, 0x5b, 0x2d, 0xe9, 0xdd, 0xa0, 0x16, + 0x69, 0x21, 0xaf, 0xaa, 0x66, 0xed, 0x89, 0x46, 0x5c, 0x5d, 0x64, 0xe7, 0x5f, 0x3e, 0xf1, 0x5a, + 0xab, 0x6c, 0x09, 0x3f, 0xd2, 0x57, 0x2a, 0x11, 0x10, 0x23, 0xb6, 0x7d, 0x63, 0x18, 0xb1, 0x9c, + 0xe6, 0x2c, 0xeb, 0x7d, 0x33, 0x5f, 0x22, 0xbe, 0x92, 0x1e, 0xe1, 0x34, 0x43, 0xa5, 0xb8, 0xc0, + 0x4c, 0x94, 0x20, 0x46, 0xba, 0xe0, 0x0c, 0x28, 0xa5, 0xef, 0xd6, 0x46, 0xf8, 0xf8, 0xf7, 0xf9, + 0x58, 0x53, 0x13, 0x5e, 0x11, 0xbc, 0x54, 0xac, 0x71, 0x2b, 0x8f, 0x72, 0x93, 0xc3, 0xa2, 0x18, + 0x5f, 0x40, 0xee, 0xd2, 0x09, 0xc9, 0x5d, 0x6e, 0xc2, 0x3d, 0xf6, 0xea, 0x5f, 0x3a, 0xf8, 0x77, + 0x4d, 0xeb, 0xc6, 0xcc, 0x3c, 0x94, 0x2b, 0x2b, 0xc5, 0x73, 0xe4, 0x77, 0xab, 0x53, 0x1b, 0xe3, + 0xb4, 0x1b, 0xa8, 0x02, 0xa1, 0xc1, 0x11, 0xee, 0x86, 0x3a, 0x1c, 0xcf, 0xce, 0xaa, 0x65, 0x50, + 0x5e, 0xeb, 0x06, 0x17, 0xed, 0xc1, 0x9c, 0xe7, 0xbf, 0xc1, 0x0f, 0x81, 0xf0, 0x56, 0x98, 0x14, + 0x05, 0x79, 0x83, 0x75, 0x19, 0xd2, 0x65, 0x11, 0x3e, 0x25, 0x26, 0x8e, 0xf7, 0x1e, 0x1a, 0xef, + 0xc8, 0x59, 0x7a, 0x68, 0xbc, 0x97, 0xe2, 0x78, 0x97, 0x0e, 0xf9, 0xe6, 0x05, 0x6b, 0x69, 0x84, + 0xfb, 0x48, 0x27, 0xf3, 0x1f, 0x87, 0xc2, 0x1a, 0x33, 0x8d, 0xd2, 0x59, 0xd6, 0x9a, 0xbc, 0xdf, + 0xbe, 0xe4, 0x98, 0xed, 0x0d, 0xed, 0xdf, 0xfb, 0xfa, 0x5e, 0x1c, 0x15, 0x35, 0xf5, 0x9c, 0x62, + 0xee, 0x29, 0x28, 0x9c, 0x65, 0x3b, 0x3e, 0x1b, 0x47, 0xf1, 0xec, 0xfa, 0x06, 0x6f, 0x30, 0x1c, + 0x14, 0xb9, 0x66, 0x99, 0x8f, 0xcf, 0x3e, 0xfc, 0xab, 0xd5, 0x85, 0xc3, 0x6b, 0x15, 0x9f, 0x90, + 0x1a, 0xb5, 0x71, 0x33, 0xec, 0x5d, 0xab, 0x04, 0xb5, 0xf1, 0x87, 0x9c, 0xd0, 0x43, 0xdf, 0x78, + 0x55, 0x45, 0x76, 0x7e, 0xd2, 0x4b, 0xdf, 0x17, 0x7d, 0xa2, 0x6a, 0xd4, 0xbc, 0x87, 0xa8, 0xb9, + 0xd6, 0x16, 0x0c, 0x1e, 0x62, 0x3e, 0x35, 0xcf, 0xf7, 0xe2, 0x07, 0x60, 0x27, 0xfa, 0x1d, 0x09, + 0x72, 0x3f, 0xa9, 0x17, 0x0d, 0xcd, 0xa5, 0x6b, 0x3d, 0xed, 0x31, 0x98, 0x27, 0xa1, 0xad, 0x55, + 0xd7, 0x36, 0x44, 0x3c, 0x0b, 0x9f, 0x68, 0x16, 0x2b, 0x40, 0xf3, 0x99, 0x4c, 0xd9, 0x4d, 0x28, + 0xeb, 0xe7, 0x20, 0x1d, 0xcf, 0xc7, 0x10, 0xfd, 0x48, 0xc2, 0xe5, 0xfb, 0xfd, 0xb0, 0xe8, 0xbd, + 0xbd, 0x28, 0x09, 0x90, 0x7e, 0x51, 0x03, 0x97, 0xaa, 0xec, 0x06, 0xa2, 0xe0, 0x22, 0x63, 0x86, + 0x86, 0xe7, 0x2c, 0x9e, 0x84, 0x14, 0xdc, 0x94, 0xa1, 0xe0, 0x12, 0xc4, 0xa2, 0x17, 0x9c, 0x30, + 0x79, 0xf5, 0x32, 0xb5, 0x1a, 0x29, 0xd3, 0xb1, 0xfa, 0x84, 0x5a, 0x81, 0xf7, 0xc9, 0xab, 0x77, + 0xaa, 0xce, 0x12, 0xa2, 0x57, 0x1d, 0x5a, 0xba, 0xc5, 0x48, 0xa3, 0xc5, 0xab, 0x2d, 0x6a, 0xd1, + 0xea, 0x87, 0x54, 0xdb, 0x6a, 0xb7, 0x6a, 0x59, 0xbd, 0x01, 0xb5, 0x9b, 0x57, 0x55, 0x79, 0x75, + 0x9d, 0x47, 0xf6, 0x9f, 0xfb, 0x78, 0x89, 0x18, 0xcb, 0xb4, 0xf7, 0x05, 0x1a, 0x50, 0xdb, 0x7c, + 0x49, 0x68, 0x9b, 0x42, 0x0b, 0x6d, 0xdf, 0xb8, 0x1a, 0x6e, 0x83, 0x39, 0xc4, 0x95, 0x8e, 0xa1, + 0x1d, 0x61, 0x43, 0x8c, 0xd5, 0xa1, 0xdc, 0xba, 0x8b, 0x76, 0x65, 0xa0, 0x9e, 0x1d, 0xd8, 0xb4, + 0x16, 0x09, 0xec, 0xfe, 0xd6, 0x8d, 0xb4, 0xfb, 0xcb, 0x61, 0x3e, 0xb0, 0x76, 0xf7, 0xb3, 0x48, + 0xa5, 0x28, 0x69, 0xf6, 0xbf, 0x58, 0xe5, 0x2d, 0x85, 0xb0, 0x2f, 0xd6, 0x1e, 0xf6, 0xc7, 0xe6, + 0x7b, 0xc8, 0xe3, 0x5d, 0x8d, 0xc0, 0xf6, 0xe9, 0xb3, 0x88, 0x9d, 0x2a, 0xe6, 0x0a, 0x3d, 0x0e, + 0xd3, 0x81, 0x67, 0xa1, 0x4e, 0x8c, 0xdc, 0xbd, 0xb0, 0xff, 0xc5, 0x2b, 0xf7, 0xa6, 0xe9, 0xf8, + 0xc0, 0xb6, 0xbd, 0x70, 0x25, 0xa5, 0x99, 0x8f, 0xb5, 0xd4, 0xdc, 0x00, 0x81, 0x18, 0x52, 0x71, + 0x00, 0xaf, 0x85, 0x58, 0xc2, 0x11, 0xd2, 0xf9, 0x69, 0x56, 0xfc, 0xad, 0xa1, 0xb6, 0xb5, 0xd4, + 0x1b, 0xcf, 0xf9, 0x56, 0x40, 0xaa, 0xbb, 0x4d, 0x7f, 0xb4, 0xe0, 0xa8, 0xed, 0x79, 0x41, 0xdb, + 0x5b, 0xa8, 0x4f, 0x4f, 0xdf, 0xc5, 0xbf, 0x8f, 0x5d, 0x28, 0xbf, 0xd2, 0xbe, 0x69, 0x5f, 0x3f, + 0x2b, 0x7c, 0x92, 0xfe, 0x61, 0x8b, 0xf0, 0xdd, 0x7a, 0x38, 0x32, 0xde, 0x27, 0xed, 0x51, 0x07, + 0xad, 0x45, 0xc1, 0xd8, 0x1f, 0xef, 0x15, 0xbe, 0x69, 0xdf, 0xea, 0x17, 0xbe, 0x69, 0xff, 0x50, + 0x29, 0xfc, 0x38, 0x1e, 0x1e, 0xc6, 0xbb, 0x0d, 0xe3, 0xc3, 0xc2, 0x47, 0xed, 0x61, 0x3a, 0xcf, + 0xb9, 0x0c, 0xd3, 0x6d, 0x11, 0x3e, 0x61, 0xdf, 0x79, 0x5c, 0xf8, 0xa8, 0x3d, 0x2a, 0x0b, 0xdf, + 0xaf, 0xaf, 0xcf, 0x17, 0x3e, 0x6a, 0xf7, 0xef, 0x11, 0x3e, 0x6a, 0x5f, 0x77, 0x0a, 0x1f, 0xb0, + 0xaf, 0x3f, 0x36, 0xde, 0x07, 0xec, 0xa9, 0x32, 0x71, 0x3f, 0xad, 0x9d, 0xad, 0xf0, 0x71, 0xbb, + 0xa8, 0xef, 0xcc, 0xea, 0xf1, 0xbe, 0x68, 0x3f, 0xab, 0x17, 0xf1, 0x9f, 0xed, 0x16, 0xbe, 0x68, + 0x3f, 0x8f, 0x88, 0x7a, 0xcf, 0x69, 0xbe, 0x68, 0x3f, 0x5f, 0x27, 0xe0, 0x1f, 0x7d, 0x55, 0xf8, + 0xa4, 0x4d, 0x5a, 0x85, 0x4f, 0xda, 0x4f, 0x1f, 0x11, 0xf9, 0x93, 0x01, 0x86, 0x2b, 0x29, 0x77, + 0xb1, 0x4f, 0xda, 0xa4, 0x14, 0x15, 0xf0, 0xa4, 0x34, 0x9f, 0xb9, 0x9f, 0x16, 0xe3, 0xbd, 0x16, + 0xef, 0x77, 0xe1, 0xfd, 0xba, 0x6c, 0xbd, 0xbf, 0xa9, 0x84, 0xb1, 0x7d, 0xa7, 0xf1, 0xbe, 0x18, + 0xc6, 0x5e, 0x4d, 0xfc, 0xbf, 0xe8, 0x8b, 0xf6, 0xd6, 0x9b, 0x3b, 0xc9, 0x23, 0xe9, 0xc5, 0xfd, + 0xd0, 0xe6, 0x44, 0xb2, 0x0f, 0xda, 0x5f, 0xb6, 0x42, 0xd2, 0x76, 0xd7, 0x80, 0x94, 0xf7, 0x19, + 0x3e, 0x07, 0xf1, 0xba, 0x0a, 0xaf, 0x78, 0xa6, 0xc4, 0x4f, 0x60, 0x6c, 0xcf, 0x2e, 0x01, 0xff, + 0x6b, 0xce, 0x1c, 0x1f, 0xb4, 0x19, 0xdf, 0xb3, 0x92, 0xde, 0x60, 0x2d, 0xb0, 0xe4, 0xeb, 0xe4, + 0x3c, 0x93, 0x91, 0xe6, 0x7e, 0x35, 0x47, 0xb2, 0x99, 0x1f, 0xc4, 0xa4, 0x1d, 0x84, 0x57, 0xcf, + 0x3c, 0x0e, 0x4a, 0xa5, 0x23, 0xf0, 0x66, 0x07, 0x33, 0xe3, 0x18, 0x53, 0x4d, 0xc8, 0x96, 0xca, + 0xc9, 0x69, 0x82, 0x9c, 0x8c, 0x1c, 0x5b, 0xaa, 0xe5, 0x24, 0xba, 0xc8, 0xc9, 0x93, 0x1a, 0x5f, + 0x9f, 0x0e, 0x26, 0x54, 0x98, 0x93, 0x4f, 0xfe, 0x0a, 0x38, 0x0d, 0x74, 0x20, 0x2b, 0x66, 0xa7, + 0xb3, 0x2c, 0xae, 0xe0, 0x90, 0x4b, 0x90, 0x6f, 0x7c, 0x9b, 0xa9, 0x06, 0xdb, 0x4f, 0xe4, 0x6f, + 0xca, 0xc6, 0xd9, 0xe1, 0x32, 0x2d, 0x2e, 0xff, 0x4b, 0xf3, 0x11, 0x7d, 0x7d, 0x59, 0xbe, 0xaf, + 0xfc, 0x27, 0xf9, 0xe0, 0x34, 0xad, 0x29, 0x39, 0x41, 0x7a, 0x54, 0x12, 0x67, 0x9d, 0xbb, 0x10, + 0x3e, 0x3b, 0x48, 0x65, 0x28, 0x1b, 0xa4, 0x23, 0xa0, 0x93, 0x7e, 0x6f, 0x18, 0xd6, 0xf9, 0x64, + 0xd1, 0x2a, 0x2f, 0xe2, 0xb8, 0x15, 0x74, 0xa5, 0xa0, 0x53, 0xe4, 0x76, 0xd0, 0xcb, 0xb7, 0x1c, + 0x79, 0x54, 0xaf, 0x30, 0x9d, 0x12, 0x45, 0x4a, 0x10, 0xa7, 0x71, 0xaa, 0x27, 0xc4, 0x18, 0x74, + 0x6f, 0x1f, 0xf0, 0x19, 0x7c, 0xba, 0x72, 0x8e, 0x6b, 0xc7, 0xa0, 0x76, 0x30, 0x96, 0x7e, 0x35, + 0x30, 0x66, 0xbd, 0x55, 0xb6, 0x18, 0x6d, 0xa6, 0x3c, 0x43, 0x81, 0x2e, 0x5f, 0x2a, 0xfc, 0xe6, + 0xbe, 0x7d, 0x05, 0xcd, 0x7d, 0xbd, 0x5f, 0xdf, 0x6f, 0xe6, 0xb9, 0x57, 0xf3, 0xcd, 0x2b, 0x0a, + 0xfd, 0x3f, 0xe6, 0x97, 0xb7, 0x6d, 0xfe, 0xec, 0xa6, 0xf6, 0xba, 0xa9, 0x4b, 0xfa, 0xa6, 0xae, + 0x86, 0xef, 0xfb, 0x1b, 0x27, 0xbe, 0x40, 0x6b, 0x4f, 0x67, 0xfc, 0xe6, 0x9e, 0xce, 0x05, 0x4b, + 0x3b, 0xff, 0xa1, 0x75, 0x65, 0x4f, 0xef, 0x2a, 0x65, 0x35, 0x3e, 0xc5, 0xf1, 0xe9, 0xbb, 0x53, + 0xe3, 0x96, 0x71, 0x2d, 0xc3, 0x92, 0x34, 0x1f, 0xb9, 0x50, 0x79, 0xcb, 0xcd, 0x3d, 0x1d, 0xd0, + 0x7a, 0x5d, 0x0d, 0x15, 0xa7, 0xdc, 0xdc, 0xdb, 0xdb, 0xb9, 0x22, 0xde, 0xbb, 0xb4, 0x3b, 0xa6, + 0xf4, 0xae, 0x54, 0x96, 0x76, 0x2f, 0xed, 0x55, 0xae, 0x9a, 0xba, 0xea, 0x2a, 0x4b, 0x26, 0x41, + 0xd3, 0xd2, 0xee, 0x8e, 0x06, 0xcc, 0xa1, 0xac, 0xba, 0xf5, 0x96, 0x5b, 0x3a, 0x3b, 0x3b, 0x3a, + 0x3b, 0xb2, 0x71, 0xcd, 0x98, 0x7c, 0x62, 0x5c, 0xe4, 0xe6, 0x15, 0x9d, 0x75, 0xa2, 0x88, 0xb6, + 0xce, 0x58, 0xdd, 0x54, 0x6f, 0x6d, 0x9f, 0xd2, 0xfc, 0x37, 0x7c, 0xb7, 0xa0, 0x32, 0x8b, 0xa9, + 0xe7, 0xff, 0x30, 0xde, 0x59, 0x37, 0xb5, 0x43, 0x99, 0xdd, 0x90, 0x7e, 0x6a, 0xcd, 0x3c, 0x05, + 0x5a, 0x1b, 0xe8, 0xd6, 0xd4, 0x75, 0x73, 0x6c, 0x95, 0x96, 0x67, 0x6a, 0x47, 0x9d, 0x12, 0x5a, + 0x50, 0x37, 0xb5, 0xba, 0x43, 0x59, 0xb0, 0xa0, 0x4e, 0xa1, 0x7b, 0xa8, 0x4d, 0xbc, 0x8a, 0x1b, + 0xe5, 0xc8, 0xc2, 0xc4, 0x4d, 0x88, 0xde, 0xbc, 0xb4, 0x8b, 0x80, 0x99, 0xda, 0x51, 0x31, 0x35, + 0x8e, 0x79, 0x3a, 0xfa, 0xf8, 0xbf, 0x72, 0xcb, 0xd2, 0xef, 0xd2, 0x6f, 0xd7, 0x72, 0xba, 0xb9, + 0xa6, 0x76, 0x78, 0xa6, 0x76, 0x4c, 0xb3, 0xc0, 0x12, 0xed, 0x1c, 0x3e, 0x65, 0x55, 0xbc, 0x67, + 0x69, 0x6f, 0x27, 0xa5, 0xe7, 0xf2, 0x18, 0x69, 0x6d, 0xfe, 0xb9, 0x4a, 0x74, 0xe5, 0xad, 0xdd, + 0x1d, 0x88, 0x2a, 0x85, 0x5b, 0xb3, 0x6a, 0xe9, 0x9a, 0x4e, 0x45, 0xc0, 0xa6, 0x25, 0xea, 0x58, + 0xd9, 0xdd, 0x69, 0x11, 0x64, 0x09, 0x59, 0xdf, 0xc1, 0xfb, 0xf6, 0xc0, 0xd8, 0xaf, 0x1f, 0xc8, + 0xbe, 0xff, 0x7a, 0x37, 0xf2, 0xe0, 0x75, 0xd9, 0xf7, 0xdf, 0xb6, 0xc0, 0xd8, 0x07, 0x9f, 0x64, + 0xdf, 0x3f, 0x40, 0x6e, 0xb8, 0xdf, 0xfc, 0x25, 0xbe, 0x86, 0xcb, 0x34, 0x5f, 0xc3, 0x7a, 0xe7, + 0x74, 0x38, 0x45, 0x73, 0x63, 0xbf, 0xba, 0x27, 0xc7, 0xd7, 0xf0, 0x91, 0xf4, 0x79, 0x30, 0x2f, + 0xad, 0xbb, 0xc0, 0xd7, 0x70, 0x1f, 0x87, 0xff, 0x4c, 0xf8, 0x1a, 0x86, 0x83, 0x13, 0x7d, 0x0d, + 0xc3, 0x11, 0xf2, 0x6e, 0xfb, 0xab, 0xfb, 0xe0, 0x18, 0x9f, 0x11, 0x73, 0xdc, 0x13, 0x84, 0x93, + 0x1c, 0xf2, 0x20, 0x9c, 0xb6, 0xd7, 0x03, 0x9d, 0xc1, 0x77, 0x06, 0xb5, 0xfd, 0xe7, 0xb5, 0xb0, + 0x5d, 0x9a, 0x0f, 0xdc, 0x61, 0xd4, 0xf2, 0xf7, 0xb0, 0x0f, 0xdc, 0xbd, 0xec, 0x6b, 0x78, 0x9f, + 0x76, 0x6e, 0xcc, 0x08, 0xa7, 0x7b, 0x16, 0x0e, 0x06, 0x9e, 0x85, 0x43, 0x78, 0x1d, 0x1e, 0xef, + 0x6b, 0xf8, 0x57, 0xff, 0x86, 0x30, 0x6c, 0xfe, 0x3a, 0x5f, 0xc3, 0x5a, 0xdb, 0xbe, 0xcc, 0xd7, + 0xf0, 0xb1, 0x71, 0xe7, 0xc6, 0x9c, 0xfa, 0x06, 0xbe, 0x86, 0xbf, 0x1a, 0x7b, 0x9b, 0xd3, 0xbe, + 0x86, 0xf7, 0x94, 0x5d, 0x1c, 0x7b, 0x7b, 0x82, 0xdf, 0x00, 0x7b, 0xfa, 0x71, 0xd8, 0xfb, 0x75, + 0x2e, 0xf6, 0x24, 0xbd, 0x08, 0x93, 0xcc, 0x02, 0x7b, 0xa8, 0x26, 0x86, 0x25, 0x3b, 0x61, 0x4f, + 0x2a, 0x8e, 0xd7, 0x90, 0x87, 0xe7, 0xc0, 0xb3, 0x52, 0x19, 0x5e, 0xca, 0x45, 0xb0, 0x75, 0xe4, + 0xeb, 0x3c, 0x08, 0xff, 0xd5, 0xd8, 0xfa, 0xab, 0x3d, 0x08, 0xef, 0x39, 0xf2, 0x1f, 0xf5, 0x20, + 0xbc, 0xe7, 0xf8, 0x7f, 0xe0, 0x94, 0x9d, 0xf7, 0xc6, 0x7b, 0x10, 0x7e, 0xb5, 0xe3, 0x9b, 0x79, + 0x10, 0xfe, 0x25, 0x5c, 0xe8, 0x07, 0xf7, 0x97, 0xf6, 0xf1, 0x7e, 0x70, 0x5f, 0xad, 0xfe, 0xd2, + 0x53, 0x76, 0x4e, 0xfd, 0x6f, 0x39, 0x49, 0xfa, 0x04, 0xf7, 0xdb, 0x91, 0x09, 0x27, 0xed, 0x9c, + 0xca, 0x39, 0x69, 0xe7, 0xbd, 0xaf, 0xf3, 0x22, 0xfc, 0x6a, 0xf0, 0xab, 0xbc, 0x08, 0xff, 0xb2, + 0xf4, 0xcb, 0xbd, 0x08, 0xff, 0xd2, 0x3c, 0xd1, 0x8b, 0xf0, 0xab, 0xf3, 0x2f, 0xee, 0x45, 0x18, + 0x71, 0x3a, 0xc1, 0x8b, 0xf0, 0x7f, 0x06, 0x7b, 0xdf, 0xd4, 0x8b, 0x30, 0x8e, 0xc4, 0x93, 0xb4, + 0x23, 0x8b, 0xce, 0x61, 0xce, 0x5d, 0xff, 0xad, 0x20, 0xda, 0x5e, 0x2c, 0xfc, 0x08, 0x1f, 0x3d, + 0x8c, 0x38, 0xf1, 0x45, 0x6d, 0xb9, 0x5e, 0x82, 0xd5, 0xa6, 0x8c, 0x6f, 0x61, 0x2b, 0xc2, 0x5b, + 0xcc, 0xb0, 0x25, 0x2e, 0xf4, 0x2d, 0x5c, 0xee, 0x9b, 0xe0, 0x5b, 0xd8, 0x4a, 0x3b, 0x04, 0x6f, + 0x1c, 0x37, 0x26, 0x5a, 0xc8, 0x03, 0x48, 0x71, 0x76, 0x2d, 0x2f, 0xb5, 0x5a, 0xd0, 0xad, 0x23, + 0xeb, 0x6d, 0x38, 0xf2, 0xbf, 0xc9, 0xdb, 0x70, 0x76, 0x1f, 0xdb, 0xfc, 0x2c, 0x54, 0xf8, 0xd6, + 0x3e, 0xee, 0x6d, 0xe1, 0xb8, 0xb7, 0xbb, 0xe2, 0x4a, 0xce, 0x5e, 0xb6, 0xad, 0x70, 0x97, 0x87, + 0xb4, 0x79, 0xbd, 0xc7, 0x0d, 0xbd, 0x91, 0x9d, 0xa9, 0x9b, 0x30, 0x04, 0x2d, 0x57, 0x51, 0x3e, + 0xed, 0x15, 0x14, 0x3b, 0x36, 0xb3, 0x7e, 0x8d, 0xe1, 0x94, 0xf8, 0x52, 0xff, 0x57, 0x27, 0x1b, + 0xcf, 0xa5, 0x5a, 0xd3, 0x7e, 0x89, 0xf7, 0x4a, 0x99, 0xa7, 0x49, 0x99, 0xa7, 0xe9, 0xb9, 0x7e, + 0x8d, 0xf7, 0x5e, 0x97, 0x09, 0xcf, 0xe6, 0xea, 0xe4, 0x14, 0xa5, 0x62, 0x3f, 0x0a, 0xb7, 0x45, + 0xec, 0xf0, 0xbf, 0x57, 0x7c, 0xcd, 0x9f, 0x52, 0xc8, 0x5e, 0xd3, 0x56, 0x31, 0xcf, 0x68, 0xad, + 0x2d, 0xa5, 0x2f, 0x68, 0x2a, 0xb0, 0x55, 0xd4, 0x6a, 0xc7, 0x52, 0xa8, 0xe7, 0xaf, 0x6d, 0x8c, + 0x0d, 0xef, 0x43, 0x05, 0xed, 0xfe, 0x67, 0xce, 0x13, 0xa1, 0x13, 0x87, 0x17, 0x24, 0x7e, 0x81, + 0x16, 0x5e, 0xb4, 0x02, 0x39, 0xa4, 0x39, 0x4e, 0xa7, 0xc1, 0xf2, 0x59, 0x44, 0x0d, 0x1f, 0x71, + 0x9f, 0x3c, 0x84, 0x5c, 0x69, 0x17, 0xa7, 0xad, 0x23, 0x7f, 0x21, 0x30, 0xcc, 0x5f, 0x2b, 0x57, + 0x52, 0xda, 0xf4, 0xa9, 0x45, 0xe9, 0x94, 0x6a, 0xfa, 0xc4, 0xb3, 0xa4, 0xc1, 0x9c, 0x79, 0xa2, + 0xd3, 0xca, 0xec, 0x84, 0x25, 0xb1, 0x53, 0x87, 0xbf, 0x4e, 0x23, 0x3f, 0x27, 0x15, 0xfc, 0x95, + 0x9e, 0xf0, 0x09, 0xbb, 0x4b, 0xf3, 0xd3, 0x5b, 0x3d, 0xde, 0x4f, 0xaf, 0x54, 0xc1, 0xe7, 0x1f, + 0x4e, 0x03, 0x7d, 0x2f, 0xf4, 0xa5, 0xd6, 0xc0, 0xea, 0x54, 0x3f, 0xa8, 0x61, 0xf2, 0xad, 0x63, + 0x64, 0xff, 0xbc, 0x7c, 0x16, 0x4f, 0x5d, 0x8e, 0x57, 0x18, 0x37, 0xea, 0xd9, 0x45, 0x68, 0xab, + 0x39, 0xca, 0xe9, 0x8b, 0x53, 0x49, 0x9d, 0xec, 0xa6, 0xbb, 0xac, 0x96, 0xb8, 0xe8, 0xae, 0x53, + 0x6d, 0xfc, 0x25, 0xaa, 0x5e, 0x35, 0x56, 0xf0, 0x17, 0xa9, 0xca, 0x5c, 0xc4, 0xce, 0x1a, 0xcd, + 0x7b, 0xef, 0x16, 0x6c, 0xe7, 0x02, 0xb5, 0xee, 0x36, 0x98, 0xe5, 0x82, 0xa2, 0x5d, 0x77, 0x2c, + 0xae, 0x7c, 0xee, 0x8e, 0x4e, 0x37, 0xbf, 0x15, 0xef, 0xbc, 0x63, 0xb1, 0xf2, 0xfc, 0x1d, 0x9d, + 0x65, 0xe1, 0xc1, 0x58, 0x89, 0x23, 0xa0, 0x1a, 0x5f, 0xd8, 0x02, 0x25, 0x31, 0xab, 0xbb, 0xb9, + 0xf2, 0x5b, 0xd1, 0x33, 0xf4, 0x95, 0x5f, 0x34, 0xed, 0xd7, 0x77, 0xf7, 0x57, 0xf8, 0xf5, 0x25, + 0x5f, 0x21, 0x0b, 0x02, 0x7e, 0xb5, 0x29, 0x53, 0x43, 0x1d, 0xd6, 0x50, 0x93, 0xa9, 0xa1, 0x02, + 0x6b, 0x70, 0x8d, 0xaf, 0xc1, 0xc9, 0x35, 0x90, 0x2c, 0x89, 0x5e, 0xcc, 0xe3, 0xef, 0x73, 0x13, + 0x3c, 0xfe, 0xf2, 0x77, 0x68, 0x17, 0xf8, 0xdb, 0xdd, 0x15, 0x33, 0x0b, 0x7f, 0xbf, 0x91, 0xfd, + 0x1e, 0x86, 0x07, 0xac, 0x9e, 0xa5, 0x74, 0x1e, 0xba, 0xf3, 0xef, 0x55, 0x18, 0xdd, 0x7c, 0x51, + 0x6f, 0xbf, 0x0b, 0xbe, 0xa1, 0xb7, 0xdf, 0x49, 0x9a, 0x77, 0xde, 0x92, 0x2f, 0xf5, 0xf6, 0xbb, + 0xeb, 0x4b, 0xbd, 0xfd, 0x2e, 0xb8, 0x88, 0xb7, 0xdf, 0x4c, 0x79, 0x13, 0xbd, 0xfd, 0xa6, 0xb6, + 0x90, 0xb7, 0x5f, 0xf6, 0xdc, 0xd2, 0x05, 0x25, 0xfe, 0x13, 0xe0, 0x98, 0x1e, 0x4a, 0xed, 0x9c, + 0xbe, 0x0c, 0x6e, 0x4b, 0x6d, 0xc7, 0x5a, 0x76, 0x46, 0xc1, 0xf8, 0x4c, 0xc3, 0x09, 0x58, 0x30, + 0xbd, 0x39, 0xf5, 0xdc, 0xd4, 0x66, 0x58, 0x84, 0x63, 0xf3, 0x26, 0x4c, 0x75, 0xd3, 0xd4, 0x10, + 0x2c, 0xc0, 0xf0, 0x0e, 0x0c, 0xeb, 0xc2, 0xb0, 0x25, 0x18, 0xb6, 0x04, 0xc3, 0x3a, 0x90, 0xea, + 0x1f, 0x30, 0x12, 0x09, 0xec, 0xe5, 0x7d, 0xe2, 0x49, 0xdb, 0x4d, 0xb5, 0x80, 0x30, 0x3d, 0x80, + 0x30, 0x3e, 0xc2, 0xde, 0x7e, 0xe5, 0xb6, 0x80, 0xe6, 0x5d, 0xe9, 0x33, 0xaf, 0xfc, 0xe2, 0x28, + 0xb8, 0x26, 0x7a, 0x48, 0x28, 0xf7, 0x4d, 0xf7, 0xa5, 0x5e, 0xf0, 0x06, 0x14, 0x73, 0x5b, 0xe2, + 0xcf, 0x43, 0x13, 0x63, 0xdd, 0xe4, 0x13, 0x1b, 0xf2, 0x2e, 0xf0, 0xab, 0xe0, 0x84, 0xf8, 0x8d, + 0x4d, 0x70, 0x41, 0x59, 0x99, 0xba, 0x1d, 0x8d, 0x01, 0x9f, 0xba, 0xda, 0xe1, 0x86, 0x9a, 0xd6, + 0x81, 0xf2, 0x01, 0xde, 0xab, 0x54, 0x79, 0x95, 0x1f, 0xf4, 0xfd, 0xd6, 0xc3, 0x5b, 0xa1, 0xe6, + 0xaa, 0x26, 0x30, 0x63, 0x88, 0x97, 0x4e, 0x48, 0xef, 0xb1, 0x1f, 0xa0, 0x10, 0x3f, 0xd0, 0xfe, + 0x8d, 0xb1, 0xbd, 0x43, 0xe1, 0xad, 0xd0, 0x13, 0x33, 0xf2, 0x73, 0x3f, 0x86, 0x16, 0x57, 0x60, + 0x19, 0x8b, 0xd6, 0x63, 0x8e, 0xd2, 0x8a, 0x25, 0x50, 0x7b, 0x55, 0x37, 0x54, 0x40, 0x59, 0xe0, + 0x49, 0x50, 0xf0, 0x72, 0x62, 0xf9, 0xb3, 0x16, 0x0c, 0x38, 0x06, 0xae, 0x9c, 0x03, 0x7a, 0xa4, + 0xdc, 0xd6, 0xd9, 0x1f, 0x80, 0xab, 0xf5, 0x4e, 0xa4, 0xa8, 0xf5, 0xa1, 0xe1, 0x3f, 0x0f, 0x29, + 0x8d, 0xfb, 0x87, 0x03, 0x9b, 0x02, 0x5b, 0x40, 0x4f, 0x6b, 0x8a, 0xbf, 0xdc, 0xfc, 0x4f, 0xbf, + 0x0e, 0xcc, 0x0e, 0x34, 0x89, 0xb5, 0xf0, 0xe9, 0xc1, 0xd4, 0x1e, 0x15, 0xe4, 0x7d, 0x3d, 0x50, + 0x34, 0x23, 0xf5, 0x0c, 0x7d, 0x43, 0xe1, 0x81, 0xe9, 0xfe, 0xd4, 0x56, 0xc2, 0x61, 0xfe, 0x9e, + 0xf6, 0x8d, 0x8e, 0x19, 0xa9, 0xad, 0xe4, 0xa3, 0xf8, 0x86, 0xa4, 0x4e, 0x1f, 0x03, 0x83, 0x2b, + 0xec, 0xc3, 0x5f, 0x87, 0x6b, 0x46, 0x6a, 0x0f, 0xbf, 0x97, 0x92, 0x8e, 0xf4, 0xcb, 0xc7, 0xee, + 0x7b, 0x25, 0xe0, 0xa7, 0xfc, 0xd7, 0xfb, 0x53, 0xbb, 0x55, 0x9b, 0xc3, 0xdf, 0x76, 0xa7, 0xff, + 0x38, 0x94, 0x3d, 0xbf, 0x22, 0xb5, 0x3b, 0x66, 0x71, 0xe4, 0xd5, 0xda, 0xa3, 0x27, 0x55, 0xd0, + 0x9f, 0xc4, 0x72, 0x9f, 0xa9, 0x85, 0x2e, 0x79, 0x51, 0xf0, 0xbd, 0x60, 0x15, 0x7d, 0x9f, 0x97, + 0xef, 0xc8, 0xd3, 0xe9, 0xa3, 0xa0, 0x3f, 0xd0, 0x27, 0x39, 0xf2, 0xde, 0x7d, 0xaa, 0x2a, 0x7f, + 0x30, 0x58, 0xe3, 0xaf, 0x35, 0x85, 0xf6, 0xfc, 0xf9, 0x2e, 0xa5, 0x61, 0xff, 0x1e, 0x97, 0x9b, + 0x3c, 0x85, 0x2a, 0xeb, 0x6a, 0x8d, 0x14, 0xe2, 0x08, 0xbc, 0xbe, 0x67, 0x4a, 0x33, 0xb6, 0x6f, + 0x36, 0xb6, 0xb6, 0xae, 0x0d, 0x5b, 0xab, 0xac, 0x48, 0x3d, 0x43, 0xe3, 0xc5, 0x65, 0xfe, 0xf3, + 0x5d, 0x0f, 0x0e, 0x89, 0x59, 0xcd, 0x5f, 0x3e, 0x86, 0xe5, 0xe2, 0x68, 0xbc, 0x32, 0x08, 0xfa, + 0x5a, 0x63, 0x5b, 0x30, 0x9d, 0x13, 0xcb, 0xaa, 0x9b, 0xbf, 0xce, 0xb1, 0x8e, 0x63, 0x8b, 0x45, + 0xec, 0xfc, 0x4c, 0x2c, 0x95, 0x48, 0xf8, 0xe3, 0xd8, 0x12, 0x11, 0xbb, 0x60, 0x5c, 0xde, 0xf6, + 0x74, 0xde, 0x52, 0x11, 0xdb, 0x3e, 0x2e, 0xef, 0x4d, 0x84, 0xfb, 0x25, 0xc8, 0xaf, 0x30, 0xe6, + 0xa6, 0x71, 0xf9, 0x16, 0x62, 0x3e, 0x8c, 0x31, 0x52, 0xcc, 0xc2, 0x71, 0x79, 0x16, 0x89, 0x3c, + 0x16, 0x8a, 0x59, 0x34, 0x2e, 0x4f, 0xab, 0xc8, 0x63, 0xa3, 0x98, 0x56, 0x8e, 0x51, 0x02, 0xfb, + 0xf7, 0xf4, 0x14, 0x20, 0x7d, 0xd4, 0x29, 0x03, 0x53, 0x84, 0xef, 0x5b, 0x8c, 0x33, 0x06, 0x21, + 0x2f, 0x1d, 0xdb, 0x67, 0x3b, 0x44, 0xb1, 0xeb, 0xa8, 0x97, 0x39, 0xc6, 0x92, 0x8e, 0x51, 0x30, + 0xdc, 0x8a, 0xbc, 0xbd, 0xdb, 0x58, 0xd5, 0x8f, 0x9c, 0x13, 0xe5, 0x04, 0x61, 0x91, 0xd3, 0xe4, + 0xa7, 0x6b, 0xed, 0xc9, 0xa3, 0xb2, 0x1d, 0x03, 0x5e, 0xdf, 0x95, 0x21, 0xd0, 0x7b, 0x8d, 0x46, + 0x94, 0x18, 0x44, 0x39, 0x23, 0x83, 0x7d, 0xf9, 0x54, 0xae, 0xc3, 0xe7, 0x58, 0xe7, 0x32, 0x2f, + 0x5a, 0xb7, 0x4c, 0x8f, 0xf5, 0x0c, 0xbd, 0xb7, 0xce, 0xe1, 0x23, 0x2c, 0x70, 0xba, 0x02, 0x4a, + 0x87, 0x65, 0x0c, 0xc7, 0x2d, 0x23, 0x94, 0x32, 0x91, 0x29, 0xc1, 0xc6, 0xb4, 0x17, 0xd8, 0x3f, + 0xdc, 0x63, 0x15, 0x90, 0xf7, 0x49, 0x53, 0xd2, 0xb9, 0x0a, 0xd3, 0x71, 0xf1, 0x42, 0xca, 0xa5, + 0x24, 0x32, 0x31, 0xf6, 0x4c, 0x2e, 0xbb, 0x32, 0x80, 0xd4, 0xf7, 0x0c, 0x9f, 0x54, 0x27, 0xfd, + 0x79, 0x68, 0xd3, 0x80, 0xc3, 0x47, 0x2b, 0x37, 0xbf, 0xdc, 0x55, 0xf5, 0x3d, 0x6a, 0x01, 0xa7, + 0xbe, 0x24, 0x9d, 0x5a, 0xd0, 0xb7, 0xb1, 0x09, 0x8a, 0xbe, 0xbd, 0x28, 0xf5, 0x4c, 0x14, 0xc6, + 0xbc, 0x5e, 0x13, 0xc7, 0x35, 0xec, 0x1f, 0xee, 0xbb, 0x04, 0xdb, 0x50, 0xa3, 0xac, 0xeb, 0x8f, + 0x4f, 0x69, 0xc2, 0x7c, 0xa6, 0x36, 0x5f, 0x3a, 0x26, 0x7e, 0xe9, 0x08, 0xc5, 0x24, 0x44, 0xf8, + 0xfc, 0x4c, 0x78, 0x4f, 0x11, 0x8d, 0x45, 0x81, 0x6b, 0x1f, 0x50, 0xdc, 0x82, 0x4c, 0x5c, 0x5f, + 0xb1, 0x28, 0x2d, 0x1d, 0xd7, 0x3e, 0x3b, 0xf4, 0xab, 0x3f, 0x6f, 0xc4, 0x98, 0x5f, 0x95, 0xd5, + 0x83, 0xac, 0xac, 0x9f, 0x42, 0x5f, 0x61, 0xb9, 0xc9, 0x87, 0x2d, 0xf2, 0x93, 0xbd, 0xd3, 0x1b, + 0x52, 0xfb, 0xa6, 0x37, 0xa5, 0x46, 0x32, 0xbe, 0x01, 0x0f, 0x4e, 0x6f, 0x4d, 0x1d, 0x6f, 0xf8, + 0x10, 0x63, 0x9a, 0x73, 0xfc, 0x02, 0x5e, 0xe8, 0x6f, 0xa6, 0x7f, 0xe4, 0x29, 0x28, 0x12, 0xdf, + 0xbc, 0xc8, 0x5d, 0xbc, 0x3b, 0x6c, 0x27, 0xfe, 0xda, 0xe1, 0x79, 0x7e, 0xde, 0x85, 0x14, 0xd4, + 0xd6, 0x3e, 0x80, 0x23, 0xea, 0x50, 0xe0, 0xe9, 0xd4, 0x61, 0x65, 0x79, 0x6a, 0x74, 0xee, 0x87, + 0xa9, 0x43, 0xa8, 0x27, 0xe4, 0x0b, 0x9f, 0x72, 0x2e, 0xe2, 0x66, 0xcf, 0x50, 0x69, 0x95, 0x05, + 0xdf, 0xbb, 0xc3, 0x25, 0xd3, 0x77, 0xdd, 0xc8, 0x41, 0xda, 0x16, 0xad, 0x47, 0x68, 0x0e, 0x61, + 0x1c, 0x79, 0x18, 0x3e, 0x4d, 0x7e, 0x9d, 0x1b, 0xc8, 0x0f, 0x60, 0x73, 0xea, 0x18, 0x95, 0x81, + 0xf0, 0x1c, 0x4a, 0x97, 0xc0, 0x9e, 0x00, 0x01, 0x76, 0x7b, 0x66, 0xa4, 0xb6, 0x7b, 0x4c, 0x0a, + 0x71, 0x30, 0xe1, 0x53, 0xef, 0x74, 0x64, 0xe7, 0x67, 0x1d, 0x14, 0x4a, 0x1e, 0x39, 0xb8, 0x6f, + 0x6b, 0xd8, 0xab, 0x1e, 0x85, 0xb7, 0x64, 0xf8, 0xde, 0x8a, 0xd4, 0x59, 0xf2, 0xce, 0xc1, 0xbb, + 0x10, 0x1c, 0xbd, 0x50, 0x8d, 0x7c, 0xef, 0x17, 0xbb, 0xa3, 0x25, 0xfc, 0xe4, 0xdd, 0x3e, 0x18, + 0x25, 0x7d, 0xca, 0xdd, 0x9f, 0xda, 0x35, 0x88, 0x52, 0x69, 0x21, 0x4b, 0x86, 0x37, 0xd5, 0xf9, + 0xe4, 0x9b, 0x0f, 0xaf, 0x9d, 0xc4, 0x7d, 0xac, 0x16, 0x79, 0x90, 0x67, 0xf2, 0x02, 0x76, 0x78, + 0x67, 0x68, 0x1d, 0xed, 0xf1, 0x5d, 0x90, 0x2e, 0x15, 0xf5, 0x15, 0xcd, 0x2b, 0x7f, 0x45, 0xd3, + 0x2f, 0x5e, 0x8b, 0x16, 0x09, 0x5f, 0xfa, 0x15, 0x4d, 0xdb, 0xef, 0x89, 0x1a, 0x77, 0x90, 0x84, + 0xb3, 0x08, 0x59, 0x43, 0xb3, 0xf4, 0x9a, 0xbf, 0x42, 0x44, 0xa3, 0x53, 0x8f, 0xa3, 0xab, 0xed, + 0xa6, 0x75, 0xc8, 0xf3, 0x0e, 0x4d, 0x47, 0xde, 0x21, 0xf0, 0x96, 0xdb, 0x66, 0xb4, 0x22, 0x76, + 0xb5, 0x6e, 0xd4, 0xb4, 0x42, 0x43, 0xe3, 0xb9, 0x4f, 0x9b, 0x50, 0x5f, 0x13, 0x6f, 0x33, 0x52, + 0x2f, 0x64, 0x9e, 0xe5, 0xcc, 0x93, 0x4e, 0x9c, 0x49, 0xa1, 0x9d, 0x49, 0xfc, 0xe1, 0xc2, 0xd1, + 0x54, 0x82, 0x74, 0x46, 0xaf, 0x71, 0x3c, 0x5d, 0xb6, 0x35, 0xa9, 0x30, 0xb6, 0x24, 0x3e, 0x39, + 0x77, 0x0f, 0x1f, 0x7b, 0x4f, 0x5f, 0x91, 0x3a, 0x07, 0x45, 0xf8, 0x9b, 0x44, 0x9e, 0x44, 0x1e, + 0x04, 0x4b, 0xf0, 0xf7, 0x34, 0x4c, 0xba, 0x32, 0x40, 0xde, 0xd3, 0x53, 0xcf, 0x65, 0xbd, 0xa7, + 0xab, 0x68, 0x12, 0x7f, 0xbd, 0x47, 0x3f, 0xd6, 0x7d, 0xfe, 0xcf, 0x7a, 0xf4, 0x9b, 0xc5, 0x1e, + 0xfd, 0x96, 0x68, 0x1e, 0xfd, 0xd4, 0x1c, 0xdd, 0x2d, 0x00, 0x0b, 0x32, 0x7f, 0x15, 0x50, 0x0b, + 0xa5, 0xfc, 0x14, 0x26, 0x2f, 0x5e, 0x28, 0xe1, 0x9f, 0x23, 0x6b, 0xba, 0xca, 0xa7, 0xdc, 0x19, + 0xdc, 0xa4, 0xfa, 0x28, 0xac, 0x1a, 0xc3, 0x94, 0x0d, 0x6a, 0xd6, 0xe3, 0xdf, 0x05, 0x7e, 0xfe, + 0xf6, 0xde, 0xff, 0xf5, 0x7e, 0xfe, 0x60, 0x96, 0xe6, 0x5b, 0xc8, 0x49, 0x7e, 0xfe, 0x50, 0xdb, + 0x2c, 0xcd, 0xf1, 0xf1, 0x37, 0xeb, 0xab, 0x7c, 0xfc, 0xc1, 0x5b, 0xc2, 0xc7, 0x1f, 0x1c, 0xcd, + 0x6a, 0x91, 0xec, 0x75, 0x67, 0x0f, 0xef, 0x12, 0x70, 0x4e, 0xf0, 0xf2, 0x07, 0x42, 0x37, 0x73, + 0xe6, 0xe8, 0x5a, 0x1e, 0x17, 0xbc, 0x49, 0x9e, 0xe6, 0x42, 0xa4, 0x17, 0xed, 0x3c, 0x13, 0x62, + 0xef, 0x50, 0xf8, 0x9e, 0xd5, 0xa3, 0x48, 0x87, 0x42, 0xed, 0xc5, 0x41, 0x5f, 0x26, 0x67, 0x3c, + 0x01, 0x16, 0xd3, 0x09, 0x1c, 0xd4, 0x46, 0x7e, 0xb3, 0x22, 0x5e, 0x4b, 0x55, 0x73, 0x9c, 0xf6, + 0x32, 0x0b, 0x5f, 0xf7, 0x6f, 0xe2, 0xa8, 0x93, 0x3c, 0x79, 0x91, 0x9d, 0x7f, 0xf9, 0x0c, 0x4b, + 0x7f, 0x93, 0xad, 0x87, 0x87, 0xc5, 0xb9, 0xe6, 0xbc, 0x53, 0x1a, 0xa8, 0x7c, 0xda, 0x8b, 0x8c, + 0xfc, 0xdd, 0xf1, 0xfa, 0x71, 0xec, 0x19, 0xda, 0x37, 0xff, 0x8d, 0x4a, 0xcf, 0x94, 0xfc, 0x70, + 0xda, 0x3f, 0x9b, 0xa0, 0xb1, 0x7a, 0xc2, 0xa2, 0xcf, 0xe9, 0x11, 0xfb, 0x26, 0x57, 0x3b, 0xde, + 0x78, 0x12, 0x4b, 0x5d, 0x06, 0xe6, 0x49, 0x2e, 0xb8, 0xd4, 0x85, 0xd4, 0xa3, 0x74, 0xa5, 0x46, + 0x7f, 0x7f, 0x1c, 0x8a, 0xdc, 0xcb, 0xe8, 0x1b, 0xd6, 0xd4, 0xe8, 0x1f, 0x8e, 0xb3, 0x17, 0x04, + 0x1c, 0xb5, 0xba, 0x5d, 0xed, 0x1b, 0x95, 0x0a, 0xb0, 0x6f, 0x7b, 0x1a, 0xec, 0x51, 0x80, 0xc1, + 0x70, 0x17, 0x94, 0xc5, 0xd6, 0x84, 0x57, 0xe0, 0x6f, 0xaf, 0xc7, 0x3a, 0x17, 0xb5, 0x7f, 0xe4, + 0x51, 0x3a, 0xd4, 0x28, 0x92, 0x05, 0xdd, 0x4a, 0x30, 0xb2, 0xc9, 0x53, 0x80, 0x7d, 0xe4, 0xf3, + 0x14, 0x78, 0x74, 0xfc, 0x56, 0x41, 0xe7, 0x85, 0xda, 0x0d, 0x3c, 0xf3, 0x72, 0x9b, 0xdd, 0x6b, + 0xd6, 0x4e, 0x44, 0xf0, 0x00, 0x79, 0xbf, 0xe2, 0x1d, 0xe3, 0xa5, 0xfc, 0x5b, 0xc2, 0xbf, 0xc5, + 0xfc, 0x9b, 0xf1, 0xb8, 0x80, 0xa5, 0xd8, 0x04, 0x14, 0xe6, 0x6a, 0x6c, 0x4f, 0x10, 0x2d, 0x5d, + 0xf2, 0x01, 0x24, 0x4f, 0xe8, 0xb9, 0xfa, 0x34, 0x4d, 0x93, 0xcd, 0x15, 0x77, 0xa0, 0x04, 0x10, + 0x5e, 0xea, 0x10, 0x76, 0xec, 0xe7, 0x62, 0xbe, 0xb4, 0x33, 0x44, 0x85, 0xa5, 0xc3, 0xfa, 0xea, + 0x41, 0xd2, 0x57, 0x73, 0xfd, 0xf2, 0x35, 0x63, 0x3f, 0x92, 0xe7, 0x4f, 0xa7, 0x1b, 0x6e, 0x1b, + 0xef, 0x9f, 0x6f, 0xee, 0xb9, 0x8f, 0x83, 0x69, 0x4f, 0x83, 0xe3, 0xfc, 0xf3, 0xe5, 0x78, 0xfc, + 0x42, 0xfe, 0xed, 0x5e, 0x38, 0x80, 0xd8, 0x4f, 0x87, 0xdb, 0xc3, 0x58, 0x56, 0x6c, 0x31, 0xda, + 0x45, 0x87, 0x0f, 0xdd, 0x8d, 0xbc, 0xfc, 0xb8, 0x1b, 0x71, 0x94, 0x5f, 0xad, 0xca, 0x4e, 0x1d, + 0x79, 0x63, 0x2d, 0x97, 0xdb, 0xd6, 0x62, 0x59, 0x91, 0xf9, 0x24, 0x55, 0x8e, 0xa3, 0x54, 0x39, + 0x89, 0x5c, 0xec, 0x34, 0xef, 0xe0, 0xb7, 0x89, 0x1d, 0xfc, 0x91, 0x4d, 0x88, 0xb9, 0x19, 0xa9, + 0x77, 0x3c, 0xf4, 0xfb, 0x36, 0xff, 0xfe, 0xd1, 0x43, 0xeb, 0xbb, 0xec, 0x77, 0x97, 0x6a, 0xe6, + 0x33, 0x59, 0xb7, 0x65, 0x78, 0x4a, 0xbf, 0x7d, 0x3a, 0x6a, 0x00, 0x09, 0x5e, 0xc5, 0xd4, 0xb4, + 0x67, 0x43, 0x97, 0x07, 0x50, 0x47, 0x4c, 0xda, 0x12, 0x11, 0xfa, 0xde, 0xb7, 0x70, 0x42, 0xec, + 0x0a, 0xc4, 0xd3, 0x03, 0x0e, 0x7a, 0x1b, 0xc0, 0xb7, 0x6e, 0x8f, 0xc4, 0x9a, 0x76, 0xd8, 0xc9, + 0x56, 0x7f, 0xac, 0x18, 0x7b, 0x61, 0xfb, 0xbf, 0x7c, 0x98, 0x3a, 0x1b, 0xb5, 0xe0, 0xd3, 0x0e, + 0x7c, 0x1a, 0x8d, 0xf5, 0x65, 0x38, 0xe6, 0xce, 0x8f, 0xce, 0xa1, 0xac, 0x7f, 0x3a, 0x75, 0xf6, + 0xbd, 0x21, 0xe4, 0xa5, 0xa3, 0x72, 0xe2, 0x8a, 0x54, 0x2a, 0xa9, 0x7d, 0xd3, 0xd9, 0xd1, 0xba, + 0xb1, 0xfd, 0x22, 0x3e, 0xcb, 0x9c, 0x48, 0x9f, 0x99, 0xba, 0xbb, 0x35, 0xbd, 0x7e, 0x31, 0xe3, + 0x6a, 0x30, 0x5a, 0x24, 0x4a, 0xc6, 0x72, 0x37, 0xa3, 0x7e, 0xef, 0x43, 0xdb, 0xb2, 0xf5, 0x1a, + 0xe2, 0xa6, 0xdb, 0xaf, 0x21, 0x6e, 0xba, 0x23, 0x0d, 0x25, 0xec, 0xd4, 0xa0, 0x6c, 0x33, 0x27, + 0xc8, 0xe3, 0x4d, 0x8f, 0x7d, 0x3b, 0xc2, 0xd0, 0x61, 0xa6, 0xb3, 0x69, 0x56, 0xa3, 0x36, 0xb4, + 0x5a, 0xca, 0xd6, 0x81, 0x69, 0x45, 0x1d, 0x5d, 0xa1, 0x97, 0x3c, 0x3a, 0x84, 0x92, 0x4f, 0xd7, + 0xfa, 0xee, 0x50, 0xeb, 0xc6, 0x09, 0x78, 0x58, 0x96, 0x83, 0xa5, 0x19, 0xa9, 0xd4, 0x84, 0xd8, + 0xe5, 0x84, 0x25, 0xd4, 0x07, 0x5e, 0x42, 0xdd, 0x74, 0x37, 0x4a, 0xd8, 0x37, 0x88, 0xde, 0xfa, + 0x80, 0x77, 0x3a, 0x2d, 0x07, 0x3d, 0xeb, 0x5a, 0x61, 0x94, 0xdc, 0xc7, 0xaf, 0xc7, 0x5e, 0xbc, + 0x7e, 0x76, 0xea, 0x14, 0xf5, 0x22, 0x6b, 0x02, 0x5a, 0x3f, 0x56, 0x01, 0x7d, 0x5f, 0x76, 0x30, + 0xb0, 0xce, 0xdf, 0xba, 0x71, 0xc2, 0xd7, 0x17, 0x4d, 0xd6, 0x26, 0x28, 0x8c, 0x3a, 0xbc, 0xb6, + 0xe3, 0x3e, 0xaf, 0xaf, 0xe1, 0xf4, 0x10, 0x54, 0xac, 0x48, 0xbd, 0xf1, 0xdd, 0xc1, 0x07, 0x41, + 0x41, 0x68, 0x8f, 0x0f, 0x91, 0x9d, 0xfa, 0xdd, 0xdb, 0xcd, 0x10, 0x30, 0xb6, 0xad, 0x55, 0xcd, + 0xab, 0x21, 0xd0, 0x14, 0x68, 0x0c, 0x04, 0xea, 0x1b, 0x28, 0x76, 0xdb, 0xda, 0xc5, 0x89, 0x63, + 0x43, 0x72, 0xe2, 0x86, 0x54, 0x6a, 0x74, 0xff, 0xd3, 0xa9, 0x37, 0xda, 0xd6, 0xcd, 0xd2, 0x3f, + 0xff, 0x74, 0x6a, 0xb4, 0xf3, 0x50, 0x1a, 0x93, 0xa7, 0xc2, 0xec, 0x65, 0x38, 0x69, 0x39, 0xc6, + 0x7b, 0x20, 0x48, 0x9a, 0x3d, 0x25, 0xbc, 0x65, 0xa1, 0xe2, 0x2b, 0x66, 0x1f, 0xd8, 0x0a, 0x24, + 0x19, 0x6f, 0x77, 0x19, 0xba, 0x42, 0x89, 0x91, 0x2e, 0x30, 0x56, 0xf9, 0x3c, 0x79, 0xa1, 0x25, + 0x86, 0xe8, 0x6c, 0xc2, 0xc8, 0x6a, 0xf6, 0xc0, 0x48, 0xb1, 0x2b, 0x38, 0xd6, 0xa2, 0xc5, 0x2e, + 0x89, 0xdc, 0xa7, 0x79, 0x99, 0x4c, 0x5a, 0x36, 0x8b, 0xef, 0x3b, 0x5a, 0xde, 0x2e, 0x83, 0xaf, + 0xf1, 0x07, 0x99, 0xb4, 0xd4, 0x8b, 0xd3, 0xa3, 0x95, 0x5a, 0xd7, 0x38, 0x8f, 0x98, 0xda, 0x88, + 0x3b, 0x93, 0xd1, 0x4a, 0x2a, 0xc0, 0x3c, 0xfb, 0xdc, 0x87, 0xaf, 0x91, 0x1f, 0x48, 0x1a, 0x89, + 0x28, 0xfb, 0x48, 0x2b, 0xe1, 0x70, 0x31, 0x47, 0xc7, 0xa3, 0x6e, 0x14, 0xa5, 0x25, 0x6a, 0x9b, + 0x1c, 0x4e, 0xbe, 0x22, 0x51, 0xdb, 0x20, 0xee, 0xd5, 0x70, 0x1c, 0xda, 0x5e, 0x7f, 0x05, 0x6d, + 0xb3, 0xaa, 0x07, 0x1d, 0x44, 0x5d, 0x28, 0x23, 0x6a, 0x9c, 0x88, 0x31, 0x0c, 0xbf, 0x31, 0x1d, + 0xbe, 0x7d, 0xb0, 0xd3, 0x31, 0x5b, 0xec, 0x4b, 0x02, 0x0f, 0x96, 0xd9, 0xbe, 0xb1, 0x72, 0x10, + 0xfb, 0xf9, 0xbe, 0xd6, 0x8d, 0xdb, 0xb6, 0xc2, 0x63, 0xdf, 0xe7, 0x1e, 0xca, 0x78, 0xce, 0x3c, + 0x46, 0x58, 0xcb, 0xf5, 0x18, 0x21, 0x68, 0xda, 0x5c, 0x09, 0x92, 0x34, 0x2d, 0x06, 0xe6, 0xbd, + 0xb3, 0x91, 0x77, 0xc4, 0x4d, 0xe2, 0xeb, 0x0c, 0x58, 0x83, 0x21, 0xbb, 0xe3, 0xba, 0xdc, 0x2f, + 0x36, 0x60, 0x35, 0x86, 0x3d, 0x43, 0xb3, 0x9d, 0x7b, 0x77, 0xe6, 0xce, 0x76, 0x3a, 0x49, 0x1e, + 0xdc, 0x86, 0x71, 0xf7, 0x92, 0x35, 0x6a, 0xdc, 0x3e, 0x71, 0xc4, 0x28, 0x3e, 0x8c, 0x7f, 0x00, + 0xe3, 0x7b, 0x10, 0xf6, 0x47, 0x50, 0x4b, 0x7e, 0x1c, 0xb5, 0x8f, 0xc7, 0xf0, 0xf9, 0x31, 0x7c, + 0x7e, 0x84, 0x7a, 0xa6, 0xe1, 0xb8, 0x21, 0x32, 0xa5, 0xd9, 0xb0, 0x20, 0xb0, 0xc5, 0xd0, 0x86, + 0xcf, 0x6d, 0xf8, 0x1c, 0xd1, 0xc2, 0x6f, 0xc2, 0xe7, 0xc5, 0x18, 0xbe, 0x08, 0x9f, 0x17, 0xe1, + 0xf3, 0x4d, 0x22, 0xdc, 0x58, 0x3f, 0xa5, 0xd9, 0x18, 0x0c, 0x6c, 0x31, 0xfa, 0xf0, 0xd9, 0x87, + 0xcf, 0xe4, 0x6d, 0xe8, 0x01, 0x07, 0xd0, 0xe8, 0x32, 0xb6, 0x4c, 0xf5, 0xc3, 0x43, 0xe5, 0x60, + 0x5c, 0x8b, 0xcf, 0x83, 0x53, 0x1b, 0xe0, 0x5e, 0x8f, 0x44, 0xde, 0x6a, 0x0d, 0xe1, 0x66, 0xa2, + 0x86, 0xae, 0xc8, 0x66, 0x41, 0x5b, 0xf1, 0x7a, 0xc4, 0xfb, 0x03, 0x88, 0xaf, 0xcd, 0xc8, 0x23, + 0xd7, 0xf4, 0xf8, 0x0e, 0xd0, 0x9b, 0x14, 0xd9, 0xec, 0xed, 0x87, 0xf8, 0xfe, 0x13, 0xf0, 0x40, + 0xf6, 0x64, 0x6e, 0xaa, 0x13, 0x35, 0xeb, 0xb1, 0x91, 0x87, 0x60, 0xc1, 0x14, 0x7c, 0x86, 0x36, + 0x7a, 0xdb, 0xfb, 0x32, 0x44, 0x02, 0x2e, 0x98, 0x7b, 0x09, 0x7f, 0x83, 0x92, 0x93, 0xa6, 0x8b, + 0xd3, 0x2c, 0xd1, 0xd2, 0x74, 0x60, 0x9a, 0x5b, 0x38, 0xcd, 0xe2, 0x2c, 0x97, 0x53, 0xf8, 0xc9, + 0xbd, 0x44, 0x5a, 0x43, 0xe3, 0x90, 0xe6, 0x77, 0xf3, 0x8c, 0xe5, 0xf5, 0x04, 0x1d, 0xda, 0xbd, + 0xe4, 0x75, 0xdb, 0xe2, 0xb1, 0x89, 0x53, 0x30, 0x90, 0x3b, 0x18, 0xb6, 0x27, 0xba, 0x40, 0xe6, + 0xf5, 0x8a, 0xbd, 0xfb, 0x43, 0xab, 0xcd, 0xe7, 0x79, 0x2d, 0xe2, 0x51, 0xd4, 0x85, 0x51, 0x83, + 0x94, 0xed, 0xe9, 0x91, 0xf2, 0x81, 0x82, 0x5a, 0xbb, 0x85, 0x53, 0xfd, 0x3b, 0xb6, 0xa9, 0x20, + 0x5e, 0x3d, 0xf2, 0x24, 0xf4, 0x22, 0x27, 0x69, 0x88, 0x6c, 0xba, 0x6a, 0x2e, 0xb4, 0x22, 0x57, + 0xef, 0x65, 0x89, 0xe2, 0xe0, 0x79, 0xd7, 0xa4, 0xce, 0xc7, 0xf3, 0xc4, 0xa8, 0x4f, 0x4b, 0x8f, + 0x70, 0xae, 0xb3, 0x98, 0x4b, 0xc4, 0xac, 0x11, 0x7a, 0xb6, 0xb4, 0x9e, 0xc2, 0x5f, 0x29, 0x8e, + 0x6c, 0x0e, 0xfc, 0x5c, 0x8b, 0x39, 0x41, 0xb3, 0xc7, 0xe2, 0x59, 0xbf, 0x88, 0xbd, 0x95, 0x63, + 0x0d, 0x95, 0x04, 0x79, 0x9b, 0x32, 0x1b, 0x65, 0x25, 0x70, 0x0e, 0xaf, 0xf0, 0xfa, 0xaa, 0x60, + 0x8d, 0x34, 0x12, 0x28, 0xc6, 0x45, 0xd2, 0xa6, 0x97, 0xbc, 0xc0, 0x7b, 0xf4, 0x5a, 0xaa, 0xeb, + 0x23, 0x74, 0xa2, 0x44, 0x6f, 0x9a, 0xcb, 0x71, 0x7e, 0x1f, 0x62, 0x32, 0x1d, 0xf6, 0xbc, 0x07, + 0x48, 0x26, 0xdb, 0x6e, 0x22, 0x29, 0x5c, 0xef, 0xcb, 0x84, 0x3f, 0x23, 0xd2, 0x56, 0x40, 0xba, + 0x0e, 0x0e, 0xdd, 0x2e, 0x42, 0xdd, 0x90, 0x09, 0xd9, 0xaa, 0x95, 0xe9, 0x81, 0xfa, 0x1b, 0x6c, + 0x81, 0x18, 0xf9, 0x42, 0xd2, 0x6a, 0x9e, 0x2b, 0xe0, 0xab, 0xef, 0x87, 0xe3, 0xfd, 0x52, 0x93, + 0x71, 0x0d, 0x38, 0x64, 0x25, 0x4c, 0xf9, 0x46, 0xd6, 0xe3, 0x48, 0xf2, 0x03, 0xed, 0xa2, 0xf3, + 0x12, 0xac, 0x4e, 0xae, 0x75, 0xe4, 0x1e, 0x0f, 0x38, 0x82, 0x91, 0x9f, 0x54, 0x43, 0xc3, 0xa9, + 0xd4, 0x67, 0xaf, 0x7f, 0x80, 0x6d, 0xce, 0xa3, 0xf7, 0x1b, 0x7c, 0xe0, 0xc3, 0x90, 0x93, 0xe3, + 0x42, 0x42, 0x18, 0x72, 0x34, 0x1b, 0xe2, 0xb1, 0xdc, 0x20, 0x07, 0x62, 0x37, 0x78, 0xa0, 0x95, + 0x7f, 0xdb, 0xf1, 0x97, 0xf6, 0xcc, 0x18, 0x18, 0x8e, 0x81, 0xc8, 0xe6, 0xb6, 0xdb, 0xdb, 0xd7, + 0xcf, 0xbf, 0x07, 0xa1, 0xf1, 0xd2, 0x57, 0x6e, 0x34, 0x63, 0x19, 0x37, 0x6c, 0xbb, 0x1d, 0x2d, + 0x83, 0x1e, 0xa7, 0xe4, 0x0c, 0xf5, 0x49, 0x6a, 0x49, 0xe0, 0xe7, 0x3d, 0xd5, 0x07, 0x08, 0xcf, + 0x12, 0xf5, 0x64, 0xe0, 0x49, 0x68, 0x6d, 0xdd, 0x18, 0xc8, 0x7e, 0xed, 0xd4, 0x1f, 0x0e, 0x46, + 0x8b, 0xb8, 0xb4, 0x2d, 0x11, 0x94, 0x3a, 0xee, 0xef, 0x87, 0xef, 0x47, 0x4b, 0xf3, 0x85, 0x34, + 0x55, 0xbc, 0x6f, 0x69, 0xdf, 0x48, 0xb3, 0x36, 0xd1, 0xbe, 0xa9, 0xfd, 0x70, 0x3a, 0xa5, 0xc2, + 0x7a, 0x4f, 0x3d, 0xdd, 0x79, 0x2c, 0xb4, 0x45, 0x36, 0xcb, 0x89, 0x14, 0xa4, 0x52, 0xf4, 0x4d, + 0xef, 0xa3, 0xc8, 0xf9, 0xa2, 0xa0, 0xdf, 0x97, 0xa6, 0x8e, 0x76, 0xa6, 0x01, 0xfd, 0xae, 0x34, + 0x4d, 0x8c, 0x93, 0x48, 0x9b, 0x59, 0x0a, 0x08, 0xef, 0xce, 0x1c, 0x6f, 0xa9, 0x27, 0x9a, 0xa1, + 0x99, 0x77, 0x9a, 0x9d, 0x54, 0xe5, 0x9f, 0xec, 0xbd, 0x26, 0x04, 0xcf, 0x21, 0x35, 0x6b, 0x23, + 0xfc, 0xc2, 0x91, 0x1f, 0x68, 0x72, 0x73, 0xef, 0xba, 0xe4, 0x72, 0xb4, 0x24, 0xe4, 0xba, 0x78, + 0xcb, 0xc4, 0x93, 0x9c, 0x5c, 0x3e, 0xf6, 0x43, 0x5f, 0x8f, 0xdc, 0xce, 0x98, 0xb5, 0xb8, 0x9d, + 0xbe, 0xdf, 0xa1, 0xc5, 0xfd, 0xf2, 0x27, 0xd7, 0xb5, 0x41, 0xe5, 0x75, 0xcb, 0x70, 0x5c, 0x79, + 0x79, 0x35, 0x42, 0x1f, 0xf2, 0x05, 0x7c, 0x90, 0x68, 0x45, 0x73, 0x74, 0x9a, 0x0f, 0xdc, 0xd3, + 0x96, 0x43, 0x2f, 0x84, 0x7a, 0x69, 0x37, 0x65, 0xb5, 0xbb, 0x45, 0xe1, 0xd9, 0x22, 0x03, 0x9d, + 0xe7, 0xfe, 0x98, 0x83, 0xe8, 0x63, 0x80, 0x67, 0xe5, 0x24, 0xd2, 0x42, 0xc4, 0xf7, 0x4c, 0xed, + 0x1b, 0x39, 0x76, 0x5d, 0x5c, 0xfa, 0xd3, 0x16, 0x21, 0x71, 0xf3, 0xf7, 0x4c, 0x06, 0xd4, 0x5e, + 0x4c, 0x2e, 0xdf, 0xa2, 0xbb, 0x14, 0xeb, 0x7b, 0x43, 0x2e, 0x9f, 0xff, 0x24, 0x14, 0xd0, 0xdc, + 0x0e, 0x62, 0x66, 0xdb, 0x21, 0x88, 0xa2, 0x10, 0xc4, 0x90, 0x4e, 0x0c, 0xa1, 0xde, 0x36, 0x53, + 0x59, 0xd8, 0xff, 0xf5, 0x18, 0xb6, 0x2c, 0x1d, 0x46, 0x3e, 0xfd, 0x31, 0x2c, 0x80, 0x61, 0x2b, + 0x73, 0xd3, 0xd5, 0x53, 0x59, 0xbd, 0xb9, 0xa9, 0x88, 0xc7, 0x57, 0x79, 0xa0, 0x76, 0xfb, 0x32, + 0xb0, 0x74, 0x02, 0x8c, 0xe2, 0x73, 0x1d, 0x3e, 0x5b, 0xf1, 0xf9, 0x74, 0x95, 0x6d, 0x7b, 0x1b, + 0xde, 0x8f, 0x6f, 0xc3, 0xd6, 0xe2, 0xfd, 0x48, 0xdc, 0x3b, 0x11, 0x53, 0xbc, 0x9e, 0x02, 0xf0, + 0xf2, 0x77, 0xc9, 0x0e, 0xb7, 0xf1, 0xaf, 0xfd, 0xbb, 0x6d, 0x50, 0xf4, 0x5d, 0xc2, 0x4f, 0xf1, + 0x77, 0x66, 0x43, 0x09, 0x3e, 0x59, 0xa0, 0x14, 0x7f, 0xad, 0xe0, 0xc0, 0x5f, 0x1b, 0x4c, 0xc2, + 0x5f, 0x3b, 0x38, 0xf1, 0xb7, 0x08, 0xca, 0xf0, 0xb7, 0x18, 0xca, 0xf1, 0xb7, 0x04, 0x26, 0x7f, + 0x97, 0xf6, 0x06, 0xbb, 0xbe, 0x83, 0xba, 0x2d, 0x5c, 0xce, 0x1e, 0x8c, 0x8d, 0xec, 0x01, 0x96, + 0x46, 0xfc, 0xe6, 0x4a, 0xd2, 0xdd, 0x80, 0x2c, 0x7a, 0x7e, 0x2f, 0x9b, 0xe1, 0x83, 0x0a, 0x1a, + 0x49, 0x3d, 0x50, 0x54, 0x09, 0xd3, 0x3d, 0x12, 0xfe, 0xba, 0x51, 0x7f, 0x04, 0x8f, 0x09, 0x31, + 0x57, 0x49, 0x3a, 0xac, 0xb7, 0x12, 0x35, 0x57, 0xfa, 0x2d, 0xe2, 0x7c, 0x56, 0xa6, 0xd4, 0xff, + 0x25, 0x2c, 0x85, 0x66, 0xc4, 0xe7, 0xef, 0xf7, 0xfd, 0x7e, 0xdf, 0xb4, 0x7b, 0x0e, 0xd1, 0x58, + 0x76, 0xf1, 0x3e, 0xd9, 0x6a, 0xed, 0x6b, 0x4e, 0x48, 0x6a, 0x5f, 0x1e, 0x87, 0xb1, 0x07, 0x63, + 0x64, 0x2f, 0xf6, 0xfa, 0x91, 0x8a, 0x1c, 0x73, 0xd9, 0xf2, 0x34, 0x3b, 0xe6, 0xc6, 0x5b, 0xd8, + 0xeb, 0x6a, 0xd3, 0x78, 0xea, 0x10, 0xbb, 0x0a, 0x5f, 0x3e, 0x1b, 0xde, 0x84, 0xa3, 0xe0, 0x19, + 0xa7, 0xde, 0xd9, 0x70, 0xa1, 0xd6, 0x25, 0xfb, 0x40, 0xba, 0xc6, 0x07, 0xcf, 0xa1, 0x55, 0xa0, + 0xd1, 0xe6, 0x2f, 0x8e, 0xb3, 0x07, 0xb0, 0x91, 0x39, 0x27, 0xe0, 0xe5, 0xda, 0x7e, 0x78, 0x8b, + 0x35, 0xa9, 0x9b, 0xca, 0x31, 0xe7, 0x1b, 0x77, 0xa1, 0xf6, 0xfe, 0x40, 0xdd, 0x30, 0xf6, 0x97, + 0x85, 0xa4, 0x02, 0xca, 0xd9, 0x07, 0xae, 0xf7, 0x81, 0x79, 0xfe, 0x5d, 0xad, 0x1b, 0x9f, 0x1f, + 0x85, 0xe3, 0xd1, 0x37, 0x51, 0xaf, 0x7c, 0xce, 0xc3, 0x67, 0x20, 0xbe, 0xf2, 0xae, 0xe0, 0xe4, + 0xc8, 0xd7, 0x30, 0x67, 0x3b, 0x72, 0xbe, 0x39, 0x62, 0x94, 0xdd, 0x8f, 0x12, 0xf0, 0x11, 0x9e, + 0x95, 0x20, 0x09, 0x43, 0x6f, 0x8f, 0x21, 0x36, 0xdc, 0xc0, 0x7c, 0xf7, 0x15, 0xe4, 0xbb, 0x68, + 0xbf, 0x3c, 0x12, 0x57, 0x2e, 0xe2, 0x1f, 0xf7, 0x19, 0xc5, 0x87, 0xb2, 0xc3, 0x02, 0xe4, 0xab, + 0xf4, 0x99, 0x29, 0x2d, 0xa8, 0x6f, 0x88, 0x7b, 0x31, 0xdd, 0x15, 0xd2, 0x28, 0x1e, 0x9b, 0xe2, + 0x43, 0x2d, 0x88, 0x42, 0xe9, 0x3b, 0xea, 0xb2, 0xc0, 0x66, 0x7a, 0x9e, 0xb6, 0x04, 0xca, 0x48, + 0xc3, 0x15, 0x2b, 0x43, 0xcd, 0xe7, 0xfe, 0xe4, 0x8c, 0x6c, 0x26, 0x6f, 0xd1, 0xd4, 0x57, 0xda, + 0xfa, 0x8f, 0xc4, 0x21, 0x95, 0x99, 0x55, 0xa2, 0xcd, 0x59, 0x8f, 0xd1, 0x7b, 0xa7, 0xf3, 0x5b, + 0x8d, 0xf6, 0x76, 0x1d, 0xbf, 0xcd, 0xca, 0x59, 0x3b, 0x6a, 0xe5, 0x90, 0xba, 0xcc, 0xaa, 0x11, + 0xbd, 0x35, 0xb1, 0x7d, 0x74, 0x12, 0x35, 0x83, 0x80, 0xf8, 0x2a, 0x14, 0xc2, 0x14, 0xb2, 0xb7, + 0x33, 0x27, 0x24, 0xc2, 0x21, 0xd7, 0xe5, 0x84, 0xb4, 0xb1, 0xe6, 0x4c, 0x9e, 0xa5, 0x9d, 0xec, + 0x59, 0x7a, 0x32, 0x7b, 0x96, 0x2e, 0x65, 0xcf, 0xd2, 0x45, 0xec, 0x4d, 0xda, 0xca, 0xfe, 0xa5, + 0x8d, 0xf8, 0xdb, 0x14, 0xe5, 0xef, 0xbf, 0xff, 0xa4, 0x27, 0xff, 0x82, 0xc7, 0x90, 0x03, 0xa9, + 0xcc, 0xf7, 0x5e, 0xfd, 0x8e, 0xa0, 0xa6, 0xf6, 0x0b, 0xbe, 0x3d, 0xe2, 0x74, 0x5d, 0xed, 0x1b, + 0xd5, 0x13, 0xdf, 0xcc, 0xef, 0x34, 0xdb, 0xea, 0xe4, 0x3d, 0xa2, 0x18, 0x2d, 0xcd, 0x52, 0x96, + 0x74, 0x16, 0x21, 0xe9, 0x10, 0xa7, 0x77, 0xa1, 0x24, 0x28, 0xcd, 0x8c, 0xb8, 0x26, 0x94, 0x66, + 0x64, 0xc7, 0xf9, 0xa0, 0x4c, 0xa4, 0x60, 0xcf, 0x49, 0x1e, 0xb2, 0xe5, 0x5a, 0x40, 0x78, 0xea, + 0xe3, 0x55, 0x4f, 0xae, 0x2d, 0xbc, 0x0c, 0x2d, 0xcd, 0xfa, 0x5c, 0xc9, 0x89, 0xd4, 0x7c, 0x17, + 0xf9, 0xff, 0x26, 0xaf, 0x86, 0x99, 0x32, 0x7d, 0xe4, 0x41, 0x3c, 0x93, 0x02, 0x63, 0x7e, 0xf2, + 0x24, 0xac, 0x13, 0xfe, 0x63, 0x2f, 0x48, 0x5b, 0xa9, 0xc5, 0x0f, 0x91, 0x9f, 0xf0, 0x00, 0x96, + 0x9f, 0xf6, 0x3d, 0xc1, 0xe7, 0xb5, 0xb2, 0xb7, 0x57, 0x84, 0x0e, 0xdb, 0x9f, 0xaa, 0x70, 0x42, + 0xeb, 0xc6, 0x58, 0x60, 0x5c, 0xd9, 0x58, 0x9a, 0x23, 0x90, 0x5b, 0xde, 0xd8, 0x06, 0x2d, 0x75, + 0x78, 0x6a, 0x00, 0x8a, 0x79, 0x36, 0xaf, 0x8c, 0xe2, 0xf7, 0x6b, 0x10, 0xa4, 0x31, 0xab, 0xad, + 0x7d, 0x67, 0xea, 0xa0, 0x34, 0x3d, 0x90, 0xe5, 0x43, 0x4e, 0x88, 0xd5, 0x7f, 0xb3, 0x9a, 0x92, + 0x47, 0xa8, 0x26, 0xad, 0x8e, 0xa1, 0x89, 0x75, 0xd0, 0xb7, 0xff, 0xb4, 0x92, 0x4a, 0x18, 0x4c, + 0xaf, 0xf1, 0xe9, 0x4e, 0x5c, 0x6c, 0xdd, 0x0f, 0xdb, 0xff, 0xe8, 0xbc, 0xe5, 0x50, 0x1d, 0x58, + 0x0e, 0x55, 0xf8, 0xac, 0xf2, 0xfa, 0xe5, 0xdf, 0x97, 0x8b, 0x5d, 0x06, 0xf4, 0x85, 0x13, 0x7b, + 0x2c, 0x74, 0x2e, 0x87, 0xc0, 0x9c, 0x73, 0xa9, 0xa6, 0xe6, 0x73, 0xc9, 0xb7, 0x54, 0xf7, 0x8e, + 0x0d, 0x48, 0x6d, 0xd4, 0x27, 0x93, 0xf1, 0xb7, 0x3a, 0x2a, 0x30, 0x75, 0x3f, 0xeb, 0x3c, 0x56, + 0xb2, 0xcc, 0x49, 0xba, 0xa1, 0x9d, 0x6e, 0x71, 0xb6, 0x85, 0xef, 0x8d, 0x1e, 0x48, 0x7f, 0x5d, + 0x5d, 0xaf, 0x67, 0x9b, 0x7b, 0x17, 0xd9, 0xdc, 0x95, 0x33, 0x70, 0x44, 0xce, 0xa6, 0x33, 0x21, + 0x9d, 0xd3, 0x51, 0xef, 0x4f, 0x7b, 0xe8, 0x36, 0x89, 0xd5, 0x27, 0x97, 0x8f, 0xcf, 0x39, 0xb1, + 0xa2, 0xec, 0xda, 0xd4, 0xe7, 0x38, 0xf4, 0x63, 0xd4, 0x22, 0x66, 0x93, 0x27, 0x5c, 0xa4, 0x80, + 0x9a, 0x9c, 0xbd, 0x24, 0x7a, 0xcd, 0xbe, 0x27, 0xeb, 0xe0, 0x30, 0xd2, 0x93, 0xdb, 0x63, 0x9d, + 0x7b, 0x6e, 0x6c, 0x41, 0x8e, 0x45, 0x4e, 0xe7, 0xdb, 0x09, 0x4b, 0xdd, 0xaa, 0xd9, 0xee, 0xc7, + 0x51, 0x7a, 0xb9, 0xe7, 0x93, 0x8d, 0x6e, 0xcd, 0xa4, 0x43, 0x9e, 0xee, 0xc6, 0xd0, 0xd6, 0xdb, + 0x51, 0xbf, 0x11, 0xe9, 0xc8, 0x6b, 0x32, 0x9d, 0x23, 0xe7, 0x16, 0x39, 0x33, 0xe5, 0x1d, 0xeb, + 0xc9, 0xd7, 0xce, 0x1b, 0x21, 0xff, 0xf4, 0x0f, 0xd0, 0xaf, 0x80, 0xc2, 0x6a, 0xa1, 0xf3, 0x0c, + 0x1d, 0x33, 0x52, 0x87, 0xaf, 0xf1, 0xc3, 0xe4, 0x35, 0x85, 0x07, 0x6e, 0x5f, 0x73, 0x7a, 0xf7, + 0xed, 0x68, 0x0f, 0x1e, 0x46, 0xde, 0x4d, 0x1e, 0x64, 0x39, 0x55, 0xde, 0xf1, 0x2a, 0xdf, 0xf4, + 0x66, 0x4c, 0xe3, 0x03, 0x17, 0xa6, 0x3d, 0x82, 0x69, 0x15, 0xb4, 0x6c, 0xdf, 0x83, 0xf2, 0x17, + 0x5f, 0x5c, 0x94, 0xe8, 0x39, 0xbb, 0x3b, 0x41, 0x67, 0x1f, 0x32, 0x8f, 0xd9, 0xe0, 0xd1, 0x93, + 0xc7, 0xea, 0x0f, 0xce, 0x91, 0xb4, 0xa3, 0xb3, 0x11, 0x5b, 0x37, 0xd2, 0xcc, 0x0b, 0xd2, 0x71, + 0xe9, 0x2f, 0x3e, 0x80, 0xc7, 0x3a, 0x5a, 0x2b, 0x96, 0x43, 0x07, 0x79, 0xb3, 0xfe, 0x50, 0x51, + 0x7d, 0xff, 0xfa, 0x5a, 0xac, 0x2e, 0xdc, 0x8d, 0xfd, 0x51, 0x8d, 0xbf, 0xd5, 0xd1, 0x4a, 0x1c, + 0xad, 0x7a, 0xe1, 0xaf, 0x1a, 0x7b, 0x84, 0xe6, 0x00, 0xf5, 0x24, 0x21, 0x45, 0x29, 0x28, 0x09, + 0x04, 0xcd, 0x3c, 0x2e, 0xa8, 0x54, 0x35, 0x56, 0x2c, 0x08, 0x3f, 0x10, 0xdd, 0x85, 0xfc, 0xa1, + 0x38, 0x5a, 0x39, 0x91, 0x1e, 0x29, 0x4f, 0xac, 0x14, 0x25, 0x40, 0xe9, 0xeb, 0x4f, 0xc2, 0x56, + 0xd5, 0xe6, 0xc6, 0xa7, 0x3f, 0x64, 0xf2, 0xfa, 0x3f, 0x80, 0x0e, 0x47, 0x38, 0x3b, 0x9f, 0x49, + 0xd8, 0xbe, 0x89, 0xcf, 0xcf, 0x41, 0x9e, 0xee, 0x42, 0x2b, 0x79, 0x38, 0xf0, 0x74, 0x6a, 0x8f, + 0xd2, 0xd2, 0xf0, 0x61, 0x6a, 0x17, 0x73, 0xac, 0x87, 0x5c, 0x6e, 0x94, 0x66, 0xec, 0x49, 0x9d, + 0x4f, 0xd6, 0x62, 0xfc, 0xce, 0x3d, 0x77, 0xfe, 0x31, 0x6d, 0xb6, 0x64, 0x5d, 0xac, 0x0f, 0xed, + 0xb7, 0x93, 0x3c, 0xd7, 0x09, 0x40, 0x9c, 0x98, 0x7a, 0xa6, 0x6d, 0xd1, 0xed, 0xd3, 0x1b, 0xc5, + 0x99, 0x31, 0x0d, 0x34, 0xbf, 0xdd, 0x9c, 0x3a, 0xa8, 0xcd, 0x6f, 0x1f, 0xd2, 0xac, 0xec, 0x7d, + 0x69, 0x2b, 0x5b, 0x58, 0x8a, 0x08, 0x47, 0x76, 0x5e, 0x5b, 0x9b, 0xb3, 0xe1, 0x93, 0x62, 0xd2, + 0x73, 0xda, 0x0f, 0xf0, 0xac, 0x82, 0x83, 0x67, 0x15, 0x9c, 0x24, 0x39, 0xd5, 0x72, 0xe2, 0xac, + 0xaf, 0xba, 0x27, 0x78, 0x3c, 0x47, 0x8a, 0x74, 0xcc, 0xc6, 0x92, 0x35, 0x9f, 0xe7, 0xab, 0x41, + 0xd1, 0xb1, 0x05, 0xbd, 0xf9, 0x62, 0x3e, 0xcf, 0x7b, 0x1d, 0x07, 0x9f, 0x44, 0x7a, 0x66, 0xcf, + 0xe7, 0x1e, 0x39, 0x3d, 0x6f, 0x86, 0x23, 0xa4, 0x2a, 0x66, 0xa1, 0x19, 0xab, 0xc8, 0xce, 0xd1, + 0x65, 0xad, 0x1b, 0xb1, 0x07, 0xdd, 0x39, 0x9e, 0xcd, 0x39, 0xfc, 0x7c, 0x71, 0x0e, 0x16, 0xf5, + 0xad, 0x1b, 0x2f, 0xee, 0xef, 0x1c, 0xc7, 0xce, 0x1e, 0x9e, 0xaf, 0x12, 0xe7, 0x0d, 0x59, 0x95, + 0x06, 0xb2, 0x9b, 0xc9, 0xea, 0x24, 0xdb, 0xd9, 0xd5, 0x4c, 0x73, 0x77, 0x99, 0x15, 0x89, 0x43, + 0xae, 0x82, 0xef, 0xad, 0x73, 0x17, 0xfc, 0x97, 0xdb, 0x11, 0x4b, 0xb4, 0x16, 0xf8, 0x14, 0xcd, + 0x4d, 0x29, 0xf6, 0x4d, 0x03, 0xfd, 0xc5, 0xbb, 0x12, 0x9d, 0x20, 0x3f, 0x5c, 0x56, 0x0f, 0xf6, + 0x5d, 0xa4, 0x1d, 0xc6, 0xf1, 0xe9, 0x12, 0x7e, 0xea, 0xc3, 0x27, 0xdd, 0x2e, 0xb2, 0x89, 0x6e, + 0x0b, 0x6f, 0x01, 0x3d, 0x86, 0x84, 0xe2, 0x29, 0x9a, 0x99, 0xc2, 0x31, 0xad, 0x67, 0xcc, 0xed, + 0x99, 0x7b, 0xee, 0x8b, 0xcf, 0x08, 0xa3, 0x1e, 0x43, 0x05, 0xcd, 0x81, 0xad, 0x47, 0x9b, 0x00, + 0x43, 0x73, 0x46, 0xc8, 0x71, 0xb6, 0xc6, 0xdd, 0x8c, 0xfb, 0x3d, 0x1a, 0xee, 0x0f, 0x53, 0xda, + 0xd6, 0x4c, 0x5a, 0xb4, 0xce, 0x0f, 0x2b, 0xb4, 0x6a, 0x21, 0xd6, 0x52, 0x30, 0x4f, 0x6a, 0x1f, + 0xf6, 0xe7, 0x11, 0x84, 0x94, 0xfa, 0xf7, 0x18, 0xf5, 0x2f, 0x9f, 0xe1, 0x23, 0xfa, 0x76, 0xef, + 0xb8, 0xbe, 0x3d, 0x99, 0xb3, 0x66, 0x71, 0x24, 0xed, 0x81, 0x5f, 0xac, 0xbb, 0x72, 0xf9, 0x47, + 0x18, 0x16, 0xa7, 0xe6, 0x81, 0x3f, 0x4f, 0x9b, 0x19, 0x98, 0x81, 0xd6, 0xfb, 0x03, 0xf4, 0x2b, + 0xf8, 0xaa, 0xd5, 0x82, 0x1a, 0x2e, 0x9d, 0x06, 0x72, 0x2f, 0x87, 0x61, 0x2e, 0x11, 0x5e, 0x30, + 0x54, 0x49, 0xb6, 0xf8, 0x3d, 0x53, 0xbb, 0x50, 0xb3, 0xdb, 0x40, 0x74, 0xe1, 0x45, 0x3a, 0xf1, + 0x98, 0xe3, 0x2e, 0x2c, 0xe7, 0x21, 0x6d, 0x7e, 0x68, 0x75, 0xe4, 0x01, 0x0c, 0x4d, 0x62, 0xa8, + 0x5b, 0x84, 0x6a, 0xb4, 0xdb, 0x05, 0x65, 0x51, 0x0b, 0x52, 0x0c, 0xf2, 0xe6, 0x73, 0x2f, 0xb7, + 0x6e, 0x44, 0xda, 0x3a, 0x05, 0x2f, 0xb0, 0x27, 0xff, 0xe1, 0xa9, 0xd8, 0x46, 0xd8, 0x4d, 0xf3, + 0xe3, 0xb1, 0x45, 0xfd, 0xe6, 0x5d, 0x4f, 0xa7, 0xce, 0x74, 0x2e, 0xa8, 0x40, 0xcd, 0x69, 0xee, + 0x29, 0x39, 0x50, 0xef, 0x86, 0xe7, 0xdb, 0x9a, 0xd4, 0x1a, 0xf2, 0x07, 0x70, 0x20, 0x81, 0x5a, + 0x5f, 0x4d, 0x29, 0x6a, 0x88, 0xf8, 0x2b, 0xf1, 0x2f, 0x20, 0xff, 0x30, 0x37, 0xc1, 0x88, 0x31, + 0x3d, 0x67, 0x2a, 0x20, 0xcd, 0xaf, 0x6e, 0x23, 0x5f, 0x83, 0x34, 0x3b, 0xf7, 0x7c, 0x55, 0x68, + 0xc1, 0x9d, 0xa8, 0xc1, 0x1b, 0xb7, 0xdd, 0xb9, 0x72, 0x27, 0x59, 0x13, 0x04, 0xa5, 0xee, 0x44, + 0xe4, 0x01, 0x34, 0x7e, 0x20, 0x6d, 0x5d, 0x18, 0x1e, 0xa5, 0x27, 0xe4, 0x17, 0xc8, 0xfb, 0x89, + 0x33, 0xe0, 0x9b, 0x49, 0xc4, 0x18, 0xdb, 0x19, 0x5f, 0x3f, 0x66, 0x79, 0xf3, 0x86, 0x16, 0x86, + 0xf2, 0x81, 0x3c, 0xc0, 0x78, 0x67, 0xa4, 0x4e, 0xf1, 0xbc, 0x4a, 0xb1, 0x16, 0xfe, 0x94, 0x90, + 0xc1, 0x74, 0xf2, 0x18, 0xe5, 0xca, 0x4a, 0x64, 0xc3, 0x7c, 0xed, 0xf9, 0x81, 0xeb, 0x88, 0x33, + 0x54, 0x4d, 0x6d, 0x81, 0xc1, 0xb6, 0x2e, 0xa8, 0x66, 0xe9, 0x5b, 0x29, 0xb0, 0xf2, 0x45, 0x17, + 0x6a, 0x1c, 0x0e, 0xf6, 0x91, 0xdf, 0x05, 0xde, 0x6d, 0x43, 0xb1, 0x92, 0xeb, 0x7c, 0xe0, 0x55, + 0xed, 0x5a, 0x48, 0x25, 0x86, 0xe8, 0x31, 0xa4, 0xd2, 0xff, 0x61, 0xea, 0xd0, 0xb8, 0xb9, 0x7a, + 0x18, 0x0b, 0x3a, 0x56, 0xa4, 0xf6, 0xb0, 0x94, 0xc8, 0xf3, 0xe8, 0x1c, 0x0d, 0xb9, 0xde, 0xdf, + 0x71, 0x34, 0x3e, 0x2c, 0x46, 0xa3, 0xe2, 0x4d, 0x6b, 0x27, 0xa8, 0xa9, 0x94, 0x3a, 0xa6, 0x41, + 0x51, 0x79, 0x7a, 0x45, 0x03, 0x39, 0x4d, 0x6f, 0xf1, 0x8e, 0x44, 0xe7, 0xc2, 0x1b, 0x13, 0xec, + 0xf1, 0x3e, 0xd1, 0xd9, 0x96, 0xb3, 0xa6, 0xe1, 0x82, 0x59, 0x10, 0xba, 0xe8, 0x9f, 0x82, 0x7f, + 0xd5, 0xda, 0x8a, 0x45, 0x0d, 0xaf, 0x67, 0xf4, 0x94, 0x56, 0x29, 0x1b, 0xc4, 0x2a, 0x46, 0xdc, + 0xae, 0x24, 0x54, 0x25, 0x73, 0x82, 0x11, 0xad, 0x62, 0x90, 0x97, 0xe6, 0x62, 0x4f, 0x33, 0x4a, + 0x82, 0xa5, 0xec, 0xfd, 0x57, 0xcf, 0xde, 0x7f, 0xb5, 0x33, 0x48, 0x68, 0xa6, 0x8d, 0xe4, 0x29, + 0xf2, 0x89, 0x2d, 0xc8, 0x27, 0x10, 0x4e, 0x92, 0x69, 0x24, 0x47, 0xa3, 0x36, 0xc1, 0x07, 0xce, + 0xde, 0xc3, 0x1c, 0x3b, 0x40, 0x33, 0x8a, 0x0a, 0xf2, 0x63, 0xfa, 0x5e, 0xa4, 0x6a, 0x19, 0x4c, + 0x56, 0xee, 0x54, 0xc8, 0xeb, 0xda, 0x32, 0xb4, 0xd6, 0xe9, 0xc9, 0x8e, 0x3c, 0x81, 0x4e, 0x15, + 0x70, 0xbd, 0x78, 0x02, 0x47, 0x49, 0x42, 0x49, 0xb4, 0xa1, 0x14, 0xce, 0x72, 0x9c, 0xb4, 0x1e, + 0x40, 0xf5, 0x6a, 0x27, 0xbd, 0x14, 0xed, 0xff, 0x08, 0xcc, 0xf3, 0x96, 0x40, 0xb5, 0x98, 0xf7, + 0x53, 0x04, 0x9e, 0x4a, 0x49, 0xfe, 0xf2, 0x0a, 0x51, 0xe9, 0x04, 0xff, 0xf8, 0xf1, 0xe6, 0x0f, + 0xc0, 0x21, 0xe6, 0x0d, 0x75, 0xc4, 0xcb, 0x2d, 0x34, 0x2b, 0xf9, 0xfa, 0xde, 0x86, 0xf7, 0xe5, + 0x00, 0x5a, 0xe6, 0x0f, 0xb4, 0x6f, 0xfc, 0xc9, 0xde, 0x38, 0xa8, 0x8e, 0xf2, 0x65, 0xa0, 0x2f, + 0xfa, 0xc5, 0x10, 0xd0, 0xfd, 0xd2, 0x55, 0x43, 0x32, 0x48, 0xda, 0x93, 0x1e, 0x64, 0xb4, 0x35, + 0xac, 0x0b, 0xee, 0x2c, 0xf7, 0x21, 0xdf, 0xb1, 0xb6, 0x25, 0xb6, 0xff, 0x78, 0xf1, 0x81, 0x1b, + 0xa4, 0x40, 0x8c, 0x2d, 0x4d, 0x0b, 0x4b, 0x55, 0xa6, 0x4a, 0xb1, 0x42, 0x21, 0xe0, 0x2d, 0x03, + 0xe1, 0x71, 0x5f, 0x11, 0xfa, 0x63, 0x59, 0xda, 0xe3, 0x3e, 0x6a, 0x08, 0xe6, 0x9c, 0x73, 0x67, + 0x08, 0x22, 0x37, 0x94, 0xd7, 0x4c, 0x07, 0xfd, 0xaf, 0x86, 0xab, 0xa6, 0x83, 0xf1, 0xa5, 0x13, + 0xe0, 0x52, 0x1a, 0xf6, 0xbf, 0x88, 0xd6, 0x45, 0x31, 0xda, 0xe1, 0x3e, 0x90, 0x63, 0x65, 0xdd, + 0x66, 0xf6, 0xee, 0xe6, 0x55, 0x6d, 0x78, 0xd7, 0xc5, 0xec, 0xf8, 0xab, 0xa7, 0x73, 0xc2, 0xed, + 0x83, 0x6a, 0x99, 0x77, 0x50, 0x2d, 0x15, 0x3e, 0x86, 0xec, 0x09, 0x45, 0x3e, 0x32, 0x74, 0x09, + 0xa6, 0xbc, 0x24, 0x40, 0xab, 0xe8, 0xca, 0xa0, 0xf0, 0xc4, 0x9f, 0xdb, 0x5b, 0xe9, 0x7e, 0xba, + 0x10, 0x82, 0x6a, 0x84, 0xe0, 0x97, 0x59, 0x08, 0x02, 0xe3, 0x20, 0x98, 0xac, 0x41, 0x50, 0xab, + 0x41, 0x50, 0xcc, 0x10, 0xb8, 0x55, 0x27, 0x8e, 0x70, 0x3b, 0xfd, 0x7a, 0xed, 0xea, 0x64, 0x7a, + 0x26, 0xab, 0x1b, 0xad, 0x3f, 0x17, 0x48, 0xef, 0xdc, 0x99, 0x18, 0x48, 0xb8, 0x10, 0x0e, 0xa3, + 0x62, 0x17, 0x3b, 0xef, 0x04, 0xe5, 0x78, 0x15, 0xde, 0x89, 0xea, 0x41, 0xac, 0x78, 0xf8, 0xb4, + 0x82, 0x9c, 0xb5, 0x8d, 0x76, 0x92, 0x15, 0xa5, 0x9e, 0x80, 0x38, 0x0b, 0x5e, 0xf3, 0x10, 0x2d, + 0x64, 0xc5, 0x08, 0x9d, 0x84, 0x42, 0xb3, 0xab, 0xe4, 0xcb, 0x96, 0x4f, 0x52, 0x6a, 0x21, 0x8f, + 0xf1, 0x2e, 0x17, 0x8e, 0x89, 0x20, 0xaf, 0x66, 0x71, 0x09, 0xd8, 0x3f, 0x08, 0xb3, 0x77, 0x3a, + 0x94, 0xf7, 0x4a, 0x3b, 0x06, 0x62, 0xd6, 0xd5, 0xf2, 0x73, 0x03, 0x68, 0x99, 0x3f, 0x4f, 0x33, + 0xdb, 0xdc, 0x92, 0xfa, 0x6e, 0x0b, 0xb7, 0x04, 0xe4, 0x20, 0xfb, 0xd1, 0xd5, 0xa1, 0x1e, 0x72, + 0x8f, 0xda, 0x42, 0x3b, 0xd2, 0xbc, 0xcb, 0xf9, 0xab, 0xb8, 0xa2, 0x3a, 0x37, 0xef, 0x94, 0xd5, + 0xd3, 0xd9, 0x49, 0xd5, 0x28, 0xb3, 0xcb, 0x91, 0x3e, 0x57, 0x3b, 0xc8, 0xcb, 0xf2, 0xd7, 0xa6, + 0xba, 0x12, 0x53, 0xe9, 0xbf, 0x36, 0x95, 0x93, 0x7c, 0x19, 0x32, 0x34, 0x81, 0x34, 0x34, 0xd2, + 0x73, 0x6a, 0x11, 0x63, 0x76, 0x3e, 0x63, 0x16, 0xa4, 0xc7, 0x31, 0xcd, 0x83, 0x5f, 0x5b, 0x52, + 0x85, 0xda, 0xf4, 0xb5, 0x69, 0x66, 0x20, 0x97, 0xfa, 0xba, 0x34, 0x95, 0x8e, 0xe0, 0x1b, 0x4f, + 0x40, 0x98, 0x4e, 0x7e, 0x9b, 0x3e, 0x27, 0x75, 0xf0, 0xfa, 0x70, 0xea, 0xd0, 0xf5, 0x91, 0xd4, + 0x9b, 0xd3, 0x03, 0xa9, 0xc3, 0xd7, 0x37, 0xa6, 0x8e, 0x5c, 0xef, 0x4f, 0x1d, 0x45, 0xfd, 0xe7, + 0x18, 0x49, 0x4f, 0x75, 0xfe, 0xd7, 0x96, 0x36, 0xf5, 0xcb, 0x4b, 0x0b, 0xa0, 0x16, 0x8b, 0xd7, + 0x51, 0x2c, 0xf5, 0x18, 0x96, 0xfa, 0x1e, 0x96, 0x7a, 0x1c, 0x4b, 0x3d, 0x49, 0xab, 0x75, 0x28, + 0xe3, 0x46, 0x3c, 0xd6, 0xf4, 0xca, 0x3e, 0x79, 0xdd, 0x9e, 0x8e, 0xe3, 0x2f, 0x75, 0x16, 0xf9, + 0x82, 0xb5, 0xda, 0x0d, 0xb6, 0x5f, 0x7e, 0x00, 0xae, 0x91, 0x41, 0xd4, 0xb3, 0x8a, 0x31, 0xc7, + 0x28, 0xf1, 0x90, 0x78, 0x9e, 0x23, 0x38, 0xf2, 0x04, 0xb4, 0xf1, 0xf9, 0x7b, 0xfe, 0xd4, 0x41, + 0x92, 0xb1, 0x73, 0x3f, 0xc4, 0x52, 0x32, 0xeb, 0x4d, 0x38, 0xda, 0x8b, 0xc8, 0x67, 0x3d, 0xd2, + 0x85, 0xb9, 0x1a, 0x61, 0x46, 0xfd, 0xcb, 0xdc, 0x5b, 0x56, 0x1e, 0x44, 0xdd, 0x26, 0x8c, 0xf0, + 0x8c, 0xa0, 0x26, 0x76, 0x68, 0x36, 0x9d, 0xda, 0x87, 0x70, 0xd2, 0xa9, 0xda, 0x8d, 0x1f, 0xa6, + 0xce, 0xe2, 0xfd, 0x08, 0x96, 0x78, 0x8c, 0xd6, 0x3f, 0x68, 0x07, 0x04, 0xc2, 0x78, 0x9a, 0x56, + 0xd1, 0x08, 0x46, 0x9a, 0xb3, 0x10, 0x10, 0x92, 0x2c, 0xe0, 0x13, 0x63, 0xb6, 0x69, 0xa7, 0x62, + 0x7d, 0x73, 0x0a, 0x2d, 0xfd, 0x86, 0x14, 0xda, 0x94, 0x4b, 0xa1, 0x84, 0x71, 0xc4, 0xbc, 0x15, + 0xb1, 0x5e, 0x82, 0x58, 0xa7, 0xaf, 0xb4, 0x8b, 0x10, 0xeb, 0x76, 0xc2, 0xb8, 0x13, 0x35, 0x7c, + 0x41, 0xa1, 0x5f, 0x9b, 0x8a, 0x29, 0xf4, 0x6b, 0x53, 0x5d, 0x8c, 0x42, 0x9f, 0x9f, 0x40, 0xa1, + 0x5b, 0x88, 0x42, 0xbf, 0xb6, 0xa4, 0x69, 0x6a, 0xd3, 0xd7, 0xa6, 0x71, 0xab, 0x8e, 0xaf, 0x4d, + 0x33, 0x3d, 0x87, 0xa6, 0xc2, 0xd8, 0x57, 0x73, 0x98, 0xa6, 0x0e, 0x5f, 0x1f, 0x48, 0xbd, 0x95, + 0xa1, 0x50, 0xea, 0xb3, 0x10, 0x51, 0xe8, 0xd7, 0x96, 0x36, 0x75, 0x7c, 0x69, 0x48, 0x91, 0x87, + 0xf0, 0x7a, 0x13, 0x4b, 0x3d, 0x8c, 0xa5, 0x1e, 0xc1, 0x52, 0xb3, 0x14, 0x4a, 0x6b, 0x99, 0xa1, + 0x2f, 0xa1, 0xd0, 0x9f, 0x21, 0x85, 0x9a, 0x99, 0x42, 0xed, 0x54, 0xc7, 0x7f, 0x90, 0x42, 0x4b, + 0x90, 0x42, 0x8b, 0x91, 0xf3, 0xba, 0x42, 0x2f, 0x22, 0x84, 0xe6, 0x72, 0x84, 0xbc, 0xb7, 0xcc, + 0x19, 0x3c, 0xb8, 0x55, 0xa3, 0x51, 0x5f, 0xea, 0x90, 0x46, 0x97, 0x07, 0x11, 0x62, 0xa2, 0xd1, + 0x51, 0xa6, 0xd1, 0x39, 0x7f, 0x35, 0x8d, 0x1e, 0x26, 0x1a, 0x75, 0xa2, 0xc6, 0x5d, 0xae, 0xd1, + 0xa8, 0x6b, 0x8e, 0x12, 0x20, 0x4d, 0xbb, 0x02, 0x65, 0xa7, 0x76, 0x2a, 0x08, 0xf3, 0x61, 0x6f, + 0x05, 0x94, 0x73, 0x6f, 0xd7, 0x50, 0x6f, 0xc7, 0xfa, 0x89, 0x16, 0xe8, 0x94, 0x05, 0xb2, 0xa8, + 0x50, 0xbb, 0x71, 0x91, 0x1c, 0x44, 0xa8, 0x4b, 0xb0, 0xd5, 0xc5, 0x35, 0x1a, 0x1f, 0x70, 0x75, + 0x09, 0xec, 0xf6, 0x95, 0xab, 0xe5, 0xdf, 0x28, 0xdd, 0x55, 0x87, 0x9e, 0xc1, 0x16, 0x06, 0x53, + 0x87, 0xa9, 0x35, 0x88, 0xff, 0x63, 0x78, 0xbd, 0x37, 0xbd, 0x25, 0x75, 0x1c, 0x71, 0x7f, 0xf2, + 0xfa, 0x86, 0xd4, 0x29, 0xec, 0x87, 0xd3, 0x6a, 0x78, 0x62, 0x59, 0xe9, 0x1e, 0xad, 0xc9, 0x2d, + 0xcb, 0xf5, 0xa5, 0x65, 0xd1, 0x0a, 0x66, 0x00, 0xcb, 0x6a, 0x4c, 0x9d, 0xbe, 0xbe, 0x39, 0xf5, + 0x09, 0x62, 0x8c, 0xce, 0x14, 0x3d, 0x2b, 0x7a, 0x88, 0xfb, 0xf4, 0x70, 0x76, 0x3f, 0x91, 0x4a, + 0xa7, 0xf9, 0xe5, 0x7b, 0x64, 0x47, 0x60, 0x9c, 0x56, 0x56, 0x9f, 0xda, 0xa5, 0xd9, 0x48, 0xff, + 0x31, 0xe9, 0x75, 0x86, 0xf0, 0xee, 0x46, 0xbc, 0x57, 0x68, 0x78, 0xa7, 0xbd, 0x30, 0x74, 0xba, + 0x22, 0x9d, 0x01, 0xa8, 0x34, 0x12, 0x8f, 0xa8, 0xed, 0x07, 0xc7, 0xef, 0xf7, 0x94, 0x47, 0xf8, + 0x1c, 0x14, 0x6b, 0xc6, 0xde, 0x5a, 0x8e, 0xfa, 0xd4, 0x24, 0x47, 0x50, 0x99, 0x06, 0x8f, 0x6d, + 0x7a, 0x02, 0x1e, 0xdf, 0xf6, 0x24, 0x94, 0xde, 0x42, 0x10, 0x5a, 0x23, 0x3b, 0x4f, 0x39, 0x5a, + 0x39, 0x1e, 0x6d, 0xcb, 0x33, 0xda, 0x39, 0x80, 0xf9, 0x7d, 0x67, 0x0e, 0xdd, 0xed, 0x11, 0x67, + 0xa6, 0x27, 0x0b, 0xba, 0x59, 0xff, 0x59, 0x1b, 0xb3, 0xc4, 0x0b, 0xb7, 0xad, 0x8d, 0xce, 0x8a, + 0xa7, 0x48, 0x0e, 0x93, 0xfe, 0x53, 0x45, 0x96, 0xfe, 0x74, 0xb0, 0xa3, 0x96, 0x4b, 0xfb, 0x16, + 0x90, 0xb7, 0xb6, 0xf9, 0x36, 0x85, 0x68, 0x1d, 0xd4, 0x4b, 0xfa, 0x8d, 0x6f, 0x93, 0x9f, 0x9f, + 0xd3, 0x67, 0xef, 0xa1, 0xed, 0xa1, 0xd6, 0xf1, 0xca, 0x7c, 0xe0, 0x82, 0xdc, 0xf2, 0xd7, 0xe5, + 0x4e, 0x43, 0x63, 0xe2, 0x6f, 0x5b, 0xd4, 0x60, 0xdc, 0x72, 0xb1, 0x72, 0xbe, 0x71, 0x29, 0x4f, + 0x69, 0x27, 0xd6, 0x50, 0x3f, 0xd9, 0x3c, 0x06, 0x47, 0xe3, 0x84, 0x7e, 0x3a, 0xa8, 0x51, 0xfa, + 0x11, 0xc2, 0x78, 0x39, 0xad, 0xc6, 0x6a, 0x27, 0x4a, 0xd1, 0x89, 0x3c, 0x6b, 0x1c, 0x6f, 0xde, + 0xe3, 0x5a, 0x8e, 0x76, 0x25, 0x62, 0x1f, 0x71, 0xae, 0x2f, 0x77, 0x21, 0x04, 0x86, 0x0c, 0xae, + 0xf9, 0x3b, 0x78, 0x69, 0xa1, 0xf8, 0x0e, 0xbe, 0x1b, 0xa4, 0xb6, 0xe6, 0x33, 0x2e, 0x60, 0x4b, + 0xa8, 0x54, 0xa9, 0x44, 0xfc, 0x3f, 0x83, 0xf8, 0x7f, 0x8a, 0xf1, 0x6f, 0xa5, 0xef, 0xf0, 0x4f, + 0x3e, 0x86, 0xf8, 0xa7, 0xbd, 0x23, 0x20, 0xb9, 0x3c, 0x56, 0xc2, 0x92, 0x28, 0xab, 0xa0, 0x9b, + 0xca, 0x27, 0x88, 0xc6, 0x7f, 0x47, 0xbf, 0x60, 0x78, 0x3e, 0xf9, 0xaa, 0x01, 0xfe, 0x86, 0x9e, + 0xbe, 0xab, 0xd4, 0x33, 0xf7, 0x38, 0x7a, 0x3d, 0xca, 0xcd, 0xd4, 0x7b, 0xf8, 0x6b, 0xc3, 0xb1, + 0x1c, 0x4c, 0x9d, 0xc0, 0x31, 0x7e, 0xea, 0xdb, 0xbe, 0xd4, 0x5f, 0xe8, 0x9b, 0x0a, 0x1c, 0x77, + 0xf6, 0xd8, 0xc2, 0xee, 0xc9, 0x9a, 0x64, 0x10, 0x5a, 0x58, 0xaf, 0x5a, 0xc1, 0xa3, 0xb2, 0x9a, + 0xf6, 0x4c, 0x46, 0xa3, 0x2a, 0xdd, 0x7d, 0xb1, 0x26, 0x8e, 0x55, 0xa2, 0x0b, 0xf8, 0x3d, 0x11, + 0x9b, 0x45, 0x27, 0x08, 0x44, 0x43, 0xea, 0xac, 0xc0, 0x8c, 0xd4, 0x27, 0x6a, 0xf0, 0xdb, 0x68, + 0xc9, 0xe0, 0xbd, 0x1e, 0xef, 0x32, 0xde, 0xab, 0xf1, 0xae, 0xc3, 0x7b, 0x05, 0xde, 0xf5, 0x78, + 0x77, 0xe2, 0xdd, 0x80, 0xf7, 0x32, 0xbc, 0x1b, 0xf1, 0x5e, 0x8c, 0x77, 0x13, 0xde, 0xad, 0x78, + 0x37, 0xe3, 0x5d, 0xdf, 0xfa, 0x61, 0xea, 0x13, 0xeb, 0x0c, 0x7a, 0x5e, 0x5c, 0x4b, 0x7b, 0x60, + 0xb8, 0xd7, 0xd0, 0xfa, 0xe7, 0x9d, 0x2d, 0x2e, 0xfe, 0x2d, 0xe7, 0x5f, 0x27, 0x53, 0xcc, 0xd1, + 0x2c, 0x3e, 0xcc, 0x23, 0xda, 0x89, 0x22, 0x17, 0xee, 0x74, 0xa1, 0x1e, 0x1b, 0xd6, 0x7a, 0xec, + 0x58, 0xfa, 0xac, 0xbb, 0xf4, 0x18, 0x71, 0x55, 0x70, 0x8f, 0xad, 0xc3, 0x31, 0x71, 0x52, 0xf4, + 0x19, 0xf6, 0x17, 0x8d, 0x9a, 0xdc, 0x3e, 0xe3, 0xf1, 0xa1, 0x04, 0xd1, 0x2e, 0x7a, 0x6c, 0xd3, + 0x96, 0x9c, 0xf1, 0x81, 0xfd, 0xf3, 0x81, 0x9c, 0x19, 0x1f, 0xf7, 0x78, 0xf2, 0xff, 0xaa, 0xfe, + 0x99, 0x94, 0xd3, 0x3f, 0xc7, 0x44, 0xcf, 0x7c, 0x7b, 0x19, 0x5c, 0x92, 0x3a, 0x81, 0xfd, 0xf2, + 0x01, 0xef, 0x6c, 0x41, 0xce, 0x94, 0xa1, 0xdd, 0x8b, 0xed, 0xf8, 0x29, 0x62, 0x2c, 0x1c, 0xcb, + 0xd6, 0x9a, 0xb7, 0x30, 0x07, 0x0b, 0xb6, 0x09, 0xa7, 0x85, 0xd6, 0xa7, 0xf6, 0xfc, 0xc7, 0xf9, + 0xcb, 0x5f, 0xb3, 0x4b, 0xe8, 0xaf, 0xda, 0x51, 0xf4, 0x83, 0xaf, 0x9e, 0x27, 0x0f, 0x2c, 0x31, + 0x86, 0xe8, 0xeb, 0x44, 0x87, 0x87, 0xbc, 0x56, 0x2a, 0xfe, 0xfd, 0xc3, 0x53, 0xfa, 0xb1, 0xbc, + 0x49, 0x52, 0x51, 0x7b, 0x82, 0xbd, 0xf0, 0xda, 0xa3, 0x27, 0x32, 0x5f, 0xd6, 0x2c, 0x85, 0x56, + 0x1c, 0xa9, 0xbd, 0xbb, 0x68, 0x87, 0x97, 0x8d, 0xd6, 0x44, 0xd9, 0x4b, 0x76, 0x5e, 0xe4, 0x56, + 0xb5, 0x18, 0x79, 0x5b, 0x87, 0x87, 0xbe, 0x8f, 0xb7, 0xa7, 0x3d, 0x67, 0xb7, 0x6f, 0x4c, 0x7f, + 0x3f, 0x43, 0x3b, 0xfa, 0xc6, 0xe5, 0xb5, 0x37, 0x9e, 0x4a, 0x1d, 0xbe, 0xef, 0x15, 0x4e, 0x69, + 0xc1, 0xdc, 0x25, 0x94, 0xdb, 0x19, 0xe2, 0xfc, 0xdf, 0xc9, 0xe6, 0x4f, 0x7f, 0x81, 0x43, 0x75, + 0x87, 0x9f, 0x80, 0xd6, 0xd8, 0x64, 0x2a, 0x41, 0x71, 0x49, 0x8b, 0xe9, 0x0c, 0x0f, 0x63, 0x88, + 0xde, 0xa8, 0xdc, 0x74, 0x8e, 0x09, 0xa9, 0x1d, 0x14, 0xef, 0x70, 0x49, 0x8b, 0xb2, 0xa9, 0x69, + 0x36, 0x3f, 0x93, 0x43, 0x12, 0x39, 0x42, 0x7f, 0x96, 0xf8, 0xbb, 0x3a, 0xe4, 0x1c, 0xad, 0xb1, + 0x0a, 0xf2, 0xdf, 0x8a, 0x79, 0x02, 0x5a, 0x1e, 0x7a, 0x23, 0xeb, 0x1d, 0xfb, 0xb1, 0xd2, 0xc3, + 0xdf, 0xc4, 0x64, 0xf2, 0x22, 0x1f, 0x4e, 0xb6, 0xbc, 0x1d, 0x14, 0xbe, 0xae, 0x4d, 0xd4, 0xc6, + 0x6c, 0xad, 0x08, 0x63, 0x38, 0x5b, 0x2b, 0xe6, 0xb4, 0xe7, 0xc2, 0x59, 0x79, 0xc5, 0x97, 0xd6, + 0x3b, 0xeb, 0xaf, 0xab, 0x37, 0xd3, 0x56, 0x45, 0xab, 0xb5, 0xe9, 0xe2, 0x98, 0xa1, 0x3c, 0x59, + 0xec, 0x78, 0x3d, 0x60, 0xa3, 0x14, 0x02, 0xa7, 0x58, 0x6b, 0x5d, 0x36, 0x57, 0x68, 0x38, 0x17, + 0x3f, 0x2a, 0x7d, 0xd7, 0xd1, 0x11, 0x1a, 0xe6, 0x9e, 0x99, 0x94, 0x0e, 0x4d, 0xf7, 0xec, 0x45, + 0xcb, 0x9a, 0xf4, 0x8d, 0xca, 0x2a, 0x9a, 0x58, 0x96, 0x58, 0x1b, 0xc0, 0xd2, 0x8a, 0xaa, 0x3c, + 0xbc, 0xf3, 0xa7, 0x97, 0xf1, 0xe2, 0x72, 0x2c, 0x91, 0x26, 0x67, 0x71, 0x22, 0xd6, 0x75, 0xc9, + 0x3f, 0x66, 0x2a, 0x95, 0xc1, 0x09, 0xd1, 0x9f, 0x82, 0x23, 0xa9, 0x23, 0x37, 0x96, 0x6b, 0xb9, + 0x34, 0x1d, 0x9f, 0xa5, 0x25, 0xd1, 0x53, 0x19, 0x88, 0x15, 0xc4, 0x99, 0x23, 0xa7, 0xa7, 0xa6, + 0xc1, 0x92, 0x71, 0x78, 0x2b, 0x25, 0xca, 0xa4, 0x50, 0x2e, 0xaf, 0x38, 0x4b, 0x9b, 0xa2, 0x0f, + 0x33, 0x5f, 0x87, 0x61, 0x3f, 0x7a, 0x73, 0xe1, 0x26, 0x4c, 0x94, 0x67, 0xe1, 0x46, 0x4c, 0x2c, + 0x1b, 0x87, 0x09, 0x77, 0x06, 0x13, 0x97, 0x65, 0x31, 0x91, 0xf6, 0x76, 0x7e, 0x35, 0xd1, 0x45, + 0x29, 0x96, 0x59, 0x86, 0x65, 0x3a, 0x10, 0x1f, 0xe5, 0xec, 0x89, 0x36, 0x5d, 0xb6, 0xbb, 0xdc, + 0x25, 0xb9, 0x27, 0xe2, 0x24, 0xf4, 0x62, 0x68, 0x77, 0xa5, 0x1b, 0xa1, 0x4f, 0xd7, 0xa3, 0xc3, + 0x7a, 0x1c, 0xa8, 0x85, 0x76, 0x8c, 0x8f, 0xe7, 0x3a, 0x4b, 0xd2, 0x29, 0xc8, 0xbf, 0x79, 0xf0, + 0x2e, 0xf6, 0xe8, 0x47, 0x75, 0x3a, 0xb1, 0x4e, 0x97, 0xcb, 0x03, 0xf5, 0x48, 0x73, 0x41, 0xac, + 0xbb, 0x92, 0x4e, 0x50, 0xc1, 0xba, 0x6b, 0xe8, 0x1c, 0x8f, 0x49, 0x1e, 0x68, 0xc8, 0xc0, 0x50, + 0x55, 0xe1, 0x92, 0x6e, 0xcb, 0x6d, 0x1f, 0x95, 0x1f, 0x7a, 0x49, 0x9c, 0x9f, 0x94, 0x81, 0xc1, + 0x18, 0xb9, 0x95, 0x62, 0xbd, 0x2e, 0x63, 0x48, 0x75, 0xa0, 0x86, 0xd7, 0x31, 0x3e, 0x1d, 0xc3, + 0x72, 0x49, 0x9a, 0x0b, 0x30, 0x2c, 0x7c, 0x52, 0xdd, 0x77, 0x09, 0x16, 0xf6, 0xc0, 0x4b, 0xa7, + 0x68, 0x22, 0x1c, 0x6e, 0xf2, 0xbc, 0x8d, 0x70, 0x54, 0x21, 0x1c, 0x35, 0xa5, 0x1e, 0xb8, 0x3e, + 0x0b, 0x87, 0xdb, 0x25, 0xad, 0xbf, 0x08, 0x1c, 0xeb, 0xc6, 0xc1, 0x61, 0xf8, 0x52, 0x38, 0xd6, + 0x65, 0xe0, 0xb8, 0x62, 0x1c, 0x1c, 0xbb, 0x18, 0x27, 0xbc, 0x03, 0xda, 0xa1, 0x79, 0x3a, 0x44, + 0x58, 0xe6, 0x93, 0xff, 0x24, 0x84, 0x65, 0x16, 0xc2, 0x12, 0x40, 0x58, 0x9a, 0x6a, 0x3d, 0x10, + 0xae, 0x43, 0x82, 0x28, 0xf3, 0xc0, 0x3c, 0x5a, 0xcd, 0x0e, 0x3f, 0x89, 0x30, 0xd5, 0xb8, 0x96, + 0x48, 0xcf, 0x68, 0x30, 0x2d, 0xcf, 0xc2, 0x14, 0xda, 0x13, 0xfa, 0xa5, 0xf0, 0x63, 0x8e, 0x5a, + 0x8c, 0x80, 0x8b, 0x4e, 0xc5, 0x5a, 0xae, 0xc1, 0x55, 0x8e, 0x56, 0x43, 0xc7, 0x85, 0x69, 0x19, + 0xb6, 0x32, 0x4e, 0x9d, 0x2f, 0x60, 0x5b, 0x28, 0x70, 0xc4, 0xdf, 0x5f, 0x52, 0x7f, 0x21, 0x6c, + 0x15, 0x5a, 0x7f, 0x55, 0x21, 0x6c, 0x35, 0x08, 0x5b, 0x1d, 0xc2, 0x36, 0xab, 0x94, 0xfa, 0x2b, + 0x0d, 0x13, 0xe1, 0xe9, 0x91, 0x0b, 0x61, 0xd2, 0xf0, 0xb4, 0x3c, 0x07, 0x4f, 0x69, 0x78, 0x1c, + 0xb9, 0xf0, 0xe4, 0xe0, 0x69, 0x72, 0x2e, 0x2c, 0x2d, 0xbb, 0xfe, 0x83, 0xb0, 0x3c, 0xf0, 0xbf, + 0x05, 0x96, 0x6f, 0x4f, 0x84, 0x25, 0x3d, 0xbe, 0x11, 0x86, 0x62, 0xe2, 0x25, 0xe3, 0x38, 0x53, + 0xe5, 0x37, 0xe2, 0x4c, 0x97, 0x67, 0xc7, 0x63, 0x66, 0x8c, 0x73, 0x99, 0xe3, 0xca, 0x73, 0x38, + 0x5c, 0xb2, 0x31, 0xb7, 0xbc, 0x71, 0x9c, 0x83, 0xca, 0x9c, 0x24, 0xca, 0xcc, 0xf0, 0x0e, 0xe7, + 0x97, 0x95, 0x9b, 0xcb, 0x8b, 0x64, 0xcb, 0x37, 0xe6, 0x45, 0x53, 0x2f, 0xc2, 0x8b, 0x2e, 0x2c, + 0xcf, 0xf6, 0x8d, 0xcb, 0x2b, 0x9f, 0x58, 0x5e, 0x9a, 0x0f, 0xd9, 0x3d, 0x70, 0x45, 0x91, 0x07, + 0xae, 0x2c, 0xf6, 0xc0, 0x55, 0xa8, 0x6e, 0x4c, 0xcf, 0x8c, 0xbd, 0x5a, 0xc7, 0x12, 0xb9, 0x68, + 0x3c, 0x1f, 0x02, 0xe6, 0xbe, 0xf8, 0xcb, 0x27, 0x7a, 0x09, 0x7b, 0x66, 0x1c, 0x57, 0x22, 0x5e, + 0xed, 0x4d, 0xf3, 0xea, 0x2f, 0x4b, 0xcd, 0xf0, 0x5c, 0x95, 0xe5, 0xdd, 0x82, 0x47, 0xa1, 0x2c, + 0xd4, 0xd3, 0x2e, 0xd5, 0xa8, 0x4b, 0x78, 0x48, 0x76, 0x29, 0x51, 0x87, 0x78, 0x2a, 0xb6, 0x47, + 0xcb, 0x68, 0xaf, 0xfd, 0xee, 0x44, 0xb4, 0x94, 0xca, 0xd5, 0x0d, 0xc7, 0x8a, 0xe3, 0x4a, 0xe4, + 0xd6, 0xb8, 0x19, 0xaf, 0x42, 0xbc, 0xec, 0x78, 0x95, 0xa2, 0xae, 0xe3, 0x63, 0x1d, 0xf5, 0x34, + 0xcd, 0xe8, 0x3a, 0x35, 0xab, 0x02, 0x39, 0xe4, 0x42, 0x8f, 0x8e, 0x56, 0x6c, 0x78, 0x65, 0xa6, + 0x94, 0x76, 0x32, 0xcf, 0x3e, 0xf7, 0xd9, 0xbe, 0xc8, 0x7d, 0x1c, 0x4a, 0xfb, 0xa7, 0x4b, 0x6f, + 0xa2, 0xb5, 0x59, 0x59, 0xdb, 0xdf, 0xb9, 0x96, 0x57, 0xf3, 0x30, 0x74, 0x11, 0xad, 0xf8, 0xc8, + 0x5a, 0xba, 0x51, 0xfe, 0xaa, 0xae, 0x54, 0xa4, 0x53, 0x66, 0xa4, 0x4e, 0xf3, 0x0e, 0x1a, 0x33, + 0xaf, 0x19, 0xee, 0x44, 0xd8, 0x0a, 0xb7, 0x27, 0xa2, 0xd5, 0xb4, 0x0f, 0x94, 0x74, 0xaa, 0x7e, + 0x88, 0xd2, 0x2e, 0xec, 0x51, 0xb4, 0xc5, 0x1f, 0xf3, 0xd6, 0x43, 0xbe, 0x0a, 0x30, 0xdc, 0x33, + 0x8b, 0xbe, 0x1d, 0x81, 0xdd, 0xd6, 0xa7, 0xc9, 0xdf, 0x4b, 0xea, 0x2c, 0x3e, 0x3f, 0x87, 0xe1, + 0xeb, 0x7b, 0xec, 0x18, 0x5e, 0x99, 0xce, 0x79, 0x16, 0xa2, 0x36, 0xce, 0x19, 0xc7, 0x7c, 0x16, + 0x8c, 0x1f, 0xea, 0xb9, 0x82, 0xf3, 0x6d, 0xc8, 0xe4, 0xbb, 0x4d, 0x6d, 0xef, 0x51, 0x30, 0xac, + 0x3c, 0x9d, 0x27, 0x05, 0xb1, 0xb0, 0x35, 0x41, 0x1f, 0xb8, 0xc4, 0x9a, 0xac, 0x8c, 0xf5, 0x58, + 0x00, 0xef, 0x18, 0x10, 0x6d, 0x53, 0xeb, 0x7b, 0x4a, 0x31, 0x6d, 0x38, 0x9d, 0x16, 0xe3, 0x2a, + 0xb5, 0xb8, 0x1a, 0xd5, 0x15, 0x97, 0xd4, 0xf2, 0xb8, 0x41, 0x75, 0xc4, 0x0b, 0xd4, 0xc9, 0x71, + 0xbd, 0x3a, 0x29, 0x6e, 0x55, 0x4b, 0xe2, 0x79, 0x6a, 0x51, 0xdc, 0xac, 0xda, 0xe2, 0x26, 0xd5, + 0x12, 0x37, 0xaa, 0xc6, 0xb8, 0x0e, 0x75, 0x0b, 0xb9, 0xe5, 0x43, 0xab, 0x76, 0xb2, 0x7c, 0x1c, + 0xd4, 0x4f, 0xb4, 0x2f, 0x39, 0xad, 0xca, 0x13, 0x50, 0x7c, 0xf5, 0x52, 0x40, 0x7d, 0x7f, 0xca, + 0x52, 0xf2, 0x9f, 0xc3, 0xd8, 0x47, 0x2b, 0xda, 0x5b, 0x4b, 0xd8, 0x2f, 0x27, 0xec, 0xaf, 0x40, + 0xcb, 0x9f, 0x7a, 0x20, 0xbd, 0xcb, 0xb6, 0x98, 0xd7, 0xd1, 0x74, 0xcd, 0xe7, 0x3e, 0x0d, 0x6b, + 0x27, 0xcf, 0x8b, 0x3d, 0xb6, 0xc5, 0x14, 0xca, 0x3b, 0xfc, 0xd2, 0x3b, 0x6c, 0xd3, 0xbd, 0x35, + 0x03, 0xec, 0x91, 0xcd, 0xec, 0xa3, 0x9f, 0xbe, 0x06, 0xc2, 0x76, 0x94, 0xcf, 0xc0, 0xfe, 0x99, + 0x91, 0x1a, 0x5d, 0x94, 0x78, 0x6f, 0x48, 0x50, 0x99, 0x83, 0x76, 0x45, 0xda, 0x1b, 0xde, 0x87, + 0x02, 0xfa, 0x12, 0x56, 0x2d, 0x43, 0xfb, 0xd9, 0x05, 0x95, 0xf4, 0x45, 0x06, 0x3f, 0x79, 0x9f, + 0x4b, 0x44, 0x8d, 0xca, 0xd5, 0x43, 0x80, 0x16, 0x62, 0xc0, 0x69, 0x8f, 0x1e, 0xb9, 0xd6, 0x0f, + 0x45, 0xd7, 0xd2, 0x6a, 0x6c, 0xf1, 0xe5, 0x2b, 0x52, 0x29, 0x94, 0xea, 0xf9, 0x2d, 0x1f, 0x96, + 0x69, 0xed, 0xe3, 0xd5, 0x0b, 0xfb, 0xf8, 0xbb, 0x37, 0xfd, 0xfe, 0x2c, 0xb5, 0x71, 0xfc, 0x93, + 0xf7, 0x59, 0xb0, 0x88, 0x27, 0xfb, 0xb3, 0x90, 0x9f, 0xf1, 0x85, 0x95, 0xbc, 0x2c, 0x01, 0xc9, + 0x4b, 0xcf, 0x40, 0xb2, 0x78, 0xc7, 0x7f, 0xc8, 0x9f, 0x93, 0xf0, 0xd7, 0xb4, 0xf8, 0xe6, 0xde, + 0xde, 0x5b, 0xba, 0x56, 0xde, 0xb2, 0xbc, 0xb2, 0xa7, 0x73, 0xd5, 0xca, 0x5b, 0x7b, 0x6e, 0xe9, + 0x54, 0x6e, 0x5e, 0xb1, 0x34, 0x76, 0xf3, 0x8c, 0x15, 0x35, 0xb5, 0xcb, 0x95, 0xea, 0xab, 0x2b, + 0xab, 0xc6, 0xbb, 0x70, 0xba, 0x30, 0x3d, 0x79, 0x72, 0x4a, 0x16, 0x4e, 0x42, 0x78, 0xee, 0x1a, + 0x98, 0x66, 0x6e, 0xc2, 0x67, 0x13, 0x24, 0x6d, 0xff, 0x8e, 0xf7, 0xba, 0x4c, 0x5d, 0x15, 0x18, + 0xb2, 0x89, 0x9f, 0x92, 0x85, 0xf1, 0x5b, 0x7b, 0x97, 0x76, 0x2d, 0xed, 0xfd, 0x61, 0xc6, 0x27, + 0x4d, 0xd6, 0xe1, 0x10, 0x24, 0xed, 0xa1, 0x34, 0x74, 0xbc, 0xe7, 0xc6, 0x77, 0x0d, 0xed, 0x90, + 0x2d, 0xb9, 0xc0, 0x53, 0x82, 0x9a, 0xe3, 0xdb, 0x20, 0x69, 0xdb, 0x9b, 0xf6, 0x58, 0xa0, 0xad, + 0xf3, 0x04, 0x32, 0x9e, 0x0a, 0x92, 0xb6, 0xe7, 0xc9, 0x73, 0x41, 0x6e, 0xea, 0x42, 0x35, 0xc7, + 0xab, 0x02, 0xf9, 0x43, 0xe8, 0xc8, 0xf1, 0x6c, 0x90, 0xb4, 0x3d, 0x3a, 0xc1, 0x1f, 0x42, 0xd2, + 0xb6, 0xed, 0x02, 0x7f, 0x08, 0x49, 0xdb, 0x70, 0xe4, 0xbe, 0x1c, 0x98, 0xbe, 0xd2, 0xef, 0x01, + 0xd5, 0x22, 0x3c, 0x1f, 0xd0, 0x4e, 0x9c, 0xc8, 0x0f, 0x42, 0x7f, 0x56, 0x68, 0x9f, 0x75, 0x59, + 0xd6, 0x83, 0x3c, 0xfb, 0x60, 0xb7, 0xcf, 0x1c, 0xfd, 0x11, 0xf9, 0xa3, 0x7b, 0xc4, 0xfb, 0x43, + 0x7a, 0xab, 0xba, 0x0e, 0x0e, 0x83, 0x7d, 0x7b, 0x28, 0x5a, 0x33, 0x73, 0x34, 0x21, 0x5d, 0x24, + 0x7c, 0xf2, 0xcc, 0x51, 0xb8, 0x48, 0xf8, 0x8d, 0xbb, 0x43, 0x83, 0x6d, 0x01, 0x55, 0xee, 0x95, + 0xd2, 0xe5, 0x81, 0x2f, 0x21, 0x3c, 0x12, 0x3f, 0x12, 0x0e, 0xc4, 0x40, 0xf2, 0xf1, 0x8a, 0x66, + 0x3d, 0xa6, 0x06, 0xda, 0xeb, 0x59, 0x54, 0x4d, 0xbb, 0x5a, 0x82, 0xc3, 0xcb, 0x81, 0xb6, 0x95, + 0x82, 0x4e, 0xc4, 0x64, 0xc2, 0xec, 0xbd, 0x3a, 0xda, 0x2b, 0x5f, 0x14, 0xa1, 0x1d, 0x6b, 0x97, + 0xb6, 0xd0, 0x97, 0x79, 0x98, 0xaa, 0x20, 0x9b, 0x8a, 0x7d, 0xae, 0x4f, 0xc2, 0xb0, 0xc2, 0x6c, + 0x18, 0x79, 0x6b, 0x67, 0x0f, 0xfc, 0x6e, 0x75, 0x42, 0x0c, 0xa6, 0xd6, 0x47, 0x8b, 0xf9, 0xa4, + 0x12, 0xf2, 0xde, 0x7f, 0x98, 0x64, 0x46, 0x2f, 0x9d, 0x6c, 0xbb, 0x95, 0xf1, 0x6d, 0xd3, 0x52, + 0x32, 0xa6, 0x33, 0xb5, 0xdc, 0x87, 0xcf, 0xfa, 0xdc, 0x77, 0x6d, 0x8d, 0xb6, 0x60, 0x5c, 0x8d, + 0xe5, 0x18, 0x62, 0xca, 0xa9, 0x2d, 0x9d, 0xab, 0x30, 0x27, 0x57, 0xa9, 0x5a, 0x45, 0x6d, 0xcc, + 0x0d, 0xe5, 0x9a, 0x72, 0xf3, 0x98, 0x27, 0xd6, 0x84, 0xfa, 0xdc, 0xfd, 0xed, 0x1b, 0xe7, 0xc9, + 0x51, 0x48, 0x19, 0x03, 0x81, 0xac, 0xe7, 0x7d, 0xc4, 0x66, 0x49, 0x03, 0x62, 0xa5, 0x30, 0x3c, + 0xc1, 0xc7, 0x87, 0xc3, 0x2b, 0x87, 0x86, 0x5b, 0xde, 0xee, 0xd7, 0x13, 0x27, 0x43, 0xc9, 0x97, + 0x4f, 0x27, 0xc4, 0xfb, 0x4f, 0x0f, 0xe9, 0xf6, 0x7f, 0x84, 0x23, 0xd8, 0x4e, 0x3e, 0xd3, 0x2f, + 0x1a, 0xf3, 0x2c, 0x85, 0xd3, 0x29, 0x41, 0x68, 0xf1, 0x17, 0xf7, 0x11, 0x63, 0xfa, 0xb6, 0x5d, + 0xdf, 0x96, 0xf9, 0xaa, 0xc8, 0xa3, 0x6b, 0x3c, 0x97, 0xda, 0x16, 0xb9, 0xb7, 0x18, 0x3c, 0xfc, + 0x2d, 0x5f, 0x91, 0x7c, 0x40, 0x3e, 0x20, 0xd1, 0x45, 0xf4, 0x3a, 0x22, 0x89, 0x13, 0x7b, 0x3c, + 0x3a, 0xe1, 0x01, 0xa2, 0x97, 0xd8, 0xdd, 0xa5, 0x81, 0x06, 0x94, 0xb6, 0x97, 0x57, 0xe9, 0x76, + 0x8f, 0xee, 0xfb, 0x0d, 0x9d, 0x2d, 0xf2, 0x5e, 0xb3, 0x5d, 0x4e, 0x97, 0xe8, 0xf0, 0xbd, 0x3e, + 0xdc, 0xf0, 0xf1, 0x83, 0xba, 0x86, 0xd3, 0x0f, 0x42, 0xd1, 0x80, 0x57, 0x1a, 0xf1, 0x8f, 0xf8, + 0xe8, 0x7a, 0xc0, 0xe7, 0x08, 0xbc, 0xfe, 0x0a, 0xc5, 0xec, 0x7f, 0xc5, 0xbe, 0xd6, 0x79, 0x45, + 0xf9, 0x15, 0x68, 0xd9, 0x13, 0x3f, 0x5a, 0x0a, 0xe5, 0xf6, 0x69, 0xe0, 0xb6, 0x92, 0xfc, 0x34, + 0x5f, 0x42, 0xa7, 0xcf, 0xdc, 0x10, 0xb9, 0x95, 0xce, 0x56, 0x8d, 0x1a, 0x2f, 0xa1, 0xef, 0x7c, + 0xaf, 0xfd, 0x92, 0x74, 0xfa, 0x71, 0xe9, 0xcc, 0x94, 0x2e, 0xfd, 0x8d, 0x1e, 0xa5, 0xe5, 0x6f, + 0xbd, 0x00, 0x36, 0x65, 0xf2, 0xd4, 0x88, 0xd2, 0xf8, 0xf7, 0x7a, 0xde, 0x21, 0x7f, 0x43, 0x9c, + 0x4e, 0xa5, 0xd0, 0x35, 0x7e, 0x6c, 0x86, 0xe2, 0x5d, 0x00, 0xed, 0x89, 0x1e, 0x2f, 0x72, 0xde, + 0xd3, 0x97, 0xd0, 0xd9, 0x37, 0x37, 0x88, 0x1a, 0xd4, 0x08, 0xd7, 0x10, 0xca, 0xcd, 0x1b, 0xe0, + 0x5c, 0x97, 0xf8, 0xe0, 0xda, 0x1e, 0x68, 0xfc, 0xb8, 0x54, 0xe4, 0x1d, 0xe8, 0xf5, 0xee, 0x18, + 0x88, 0x9e, 0x6e, 0x03, 0xa6, 0xc5, 0xa3, 0x99, 0xf4, 0x3a, 0x2e, 0x09, 0xf8, 0x17, 0x61, 0xcc, + 0x9c, 0xbd, 0x82, 0x92, 0xbe, 0xd6, 0x51, 0x5e, 0x09, 0xe5, 0xce, 0x4a, 0x70, 0x84, 0xd7, 0x22, + 0xa4, 0xb4, 0xe7, 0x40, 0xd7, 0x48, 0xa3, 0x22, 0x1a, 0xb9, 0x97, 0xce, 0x83, 0xbc, 0xc1, 0xc7, + 0x27, 0x26, 0xca, 0xd4, 0x2b, 0xda, 0xbb, 0x8b, 0xa8, 0x2f, 0xe7, 0x9d, 0xce, 0xb1, 0x29, 0xb5, + 0x56, 0x12, 0xdd, 0x2f, 0xd8, 0x13, 0x37, 0x6e, 0xd2, 0x97, 0xd2, 0x1e, 0x62, 0x3d, 0x4b, 0xa4, + 0x74, 0x1a, 0xa7, 0x5d, 0x3f, 0x3f, 0xa7, 0xb7, 0x33, 0xe1, 0x95, 0xed, 0x7a, 0x4d, 0x5f, 0xcd, + 0x94, 0x68, 0xf4, 0x99, 0xba, 0xe8, 0x04, 0xcb, 0xc0, 0x4a, 0xa8, 0xf3, 0x7f, 0x04, 0x95, 0xbc, + 0xbb, 0x67, 0x90, 0x29, 0x9c, 0x57, 0x58, 0x83, 0x65, 0x62, 0xa7, 0xa3, 0x80, 0xdf, 0xeb, 0x70, + 0x46, 0x10, 0xfa, 0xf2, 0x8a, 0x6e, 0x70, 0x20, 0xfc, 0x4f, 0x61, 0x8e, 0x22, 0xe2, 0x3b, 0x62, + 0xaf, 0x5c, 0xd1, 0x28, 0xd3, 0xe2, 0xe5, 0x1e, 0xda, 0x55, 0x21, 0xd3, 0x2e, 0x8b, 0xa2, 0xc7, + 0x23, 0x0f, 0x70, 0xd8, 0x54, 0x0f, 0x70, 0xbb, 0x64, 0xed, 0x7d, 0x26, 0xbf, 0xd3, 0x17, 0x52, + 0xb4, 0x37, 0xc4, 0x65, 0x75, 0x73, 0x7b, 0x5e, 0xc2, 0xf6, 0xe8, 0x4a, 0x80, 0x53, 0x7c, 0xcb, + 0x03, 0x76, 0x1d, 0xeb, 0x34, 0x22, 0xc7, 0x55, 0xf4, 0x9e, 0xd3, 0x2a, 0x0c, 0xc7, 0xd0, 0x6b, + 0x8c, 0x90, 0xda, 0x9c, 0x0e, 0x6b, 0xd7, 0x69, 0x73, 0xd6, 0x3a, 0xad, 0x5c, 0xa5, 0x72, 0x03, + 0xc1, 0x75, 0xa9, 0x93, 0xb5, 0x36, 0xab, 0x68, 0x09, 0xcd, 0x41, 0xa1, 0xd4, 0xa3, 0xb3, 0x2f, + 0x68, 0x67, 0x26, 0xcb, 0xbf, 0xea, 0x7d, 0x90, 0xbc, 0xa6, 0x17, 0xef, 0x71, 0xbc, 0x86, 0xf1, + 0xb9, 0x0f, 0xaf, 0x25, 0x90, 0x9c, 0xf9, 0x28, 0xde, 0xcb, 0x20, 0x39, 0x19, 0xc3, 0x66, 0xd4, + 0xe2, 0x1d, 0xe5, 0x53, 0x75, 0x3b, 0x24, 0xaf, 0x30, 0x43, 0xb2, 0x6a, 0x0f, 0x3e, 0x8f, 0x40, + 0xd2, 0xf9, 0x20, 0xa6, 0x59, 0x87, 0xcf, 0xfd, 0x78, 0x6d, 0xc6, 0xe7, 0x21, 0x48, 0x56, 0xec, + 0x18, 0x27, 0x1f, 0x93, 0xd7, 0x60, 0xf8, 0x54, 0x2b, 0xde, 0x9f, 0xc2, 0x6b, 0x1b, 0x5e, 0x3b, + 0xf0, 0xda, 0x8b, 0xd7, 0x31, 0xbc, 0x8e, 0xe3, 0x75, 0x17, 0x5e, 0x9b, 0x30, 0x3f, 0xc6, 0x5f, + 0xab, 0xe2, 0xd5, 0xc1, 0x72, 0x38, 0x1f, 0x92, 0x65, 0x95, 0xf0, 0x2d, 0x48, 0x7e, 0xfb, 0x29, + 0x40, 0xa9, 0xf8, 0xad, 0x6d, 0xf0, 0x6d, 0x7c, 0x2e, 0x07, 0x84, 0x68, 0xd2, 0x1a, 0xf8, 0x0e, + 0xfe, 0xca, 0x30, 0x19, 0xc3, 0xeb, 0xe1, 0x0a, 0xfc, 0x75, 0x8d, 0x17, 0xca, 0x24, 0x4b, 0x4b, + 0xa2, 0x90, 0xac, 0xdd, 0x2c, 0xeb, 0xf2, 0x7e, 0x04, 0xc9, 0xcb, 0xff, 0x11, 0xdf, 0xb1, 0x9e, + 0x19, 0xc1, 0x5c, 0xa1, 0xbd, 0xbc, 0xb3, 0xa7, 0xbb, 0xb3, 0xeb, 0xa2, 0x12, 0x7b, 0x66, 0xe5, + 0xd5, 0x13, 0x7c, 0x2e, 0x76, 0xdf, 0xdc, 0xb5, 0x34, 0xd6, 0xdd, 0xd9, 0xa1, 0xcc, 0x9d, 0xfb, + 0x7d, 0x25, 0x7e, 0x73, 0xac, 0x53, 0xe9, 0xe9, 0xfc, 0xc1, 0xad, 0x9d, 0xab, 0x7a, 0xa7, 0x28, + 0x53, 0xe3, 0x8a, 0x6b, 0x6a, 0x7c, 0x9a, 0xe6, 0xc4, 0x8c, 0xe2, 0x3b, 0x6e, 0x5d, 0x11, 0x57, + 0x56, 0xf5, 0xde, 0xdc, 0xd3, 0x5b, 0xa9, 0x90, 0x1f, 0x33, 0xe5, 0xbb, 0x0a, 0xb9, 0x90, 0xc3, + 0x84, 0x33, 0x14, 0xf6, 0xa0, 0x16, 0x57, 0x6e, 0x6c, 0x25, 0xa7, 0x69, 0xf3, 0xe8, 0xa7, 0x61, + 0xae, 0xf0, 0x9f, 0x86, 0xd9, 0xa7, 0xe5, 0xe4, 0xef, 0xec, 0xee, 0xb0, 0xc0, 0x8a, 0x9b, 0xe3, + 0x7f, 0xdf, 0xd3, 0x19, 0x5b, 0xba, 0xb2, 0x1b, 0xab, 0xa8, 0x50, 0xf8, 0xc2, 0x74, 0x15, 0xca, + 0xd2, 0x6e, 0xcc, 0x54, 0xa1, 0xfc, 0x43, 0x9c, 0x6f, 0xab, 0xd8, 0x11, 0xdb, 0x8a, 0xef, 0x92, + 0xab, 0xb5, 0x5b, 0xbb, 0x27, 0x66, 0x12, 0x05, 0x4f, 0x68, 0x2e, 0x34, 0xf4, 0x2c, 0xed, 0x5d, + 0x7a, 0xcb, 0xcd, 0x5d, 0xca, 0x62, 0x82, 0x90, 0x7c, 0xbc, 0xdd, 0xda, 0xd3, 0x69, 0x81, 0x2c, + 0x16, 0xa0, 0x89, 0xfd, 0xbe, 0x91, 0x27, 0xbb, 0x5b, 0x7a, 0x3a, 0x6f, 0xee, 0xed, 0x64, 0x6f, + 0x70, 0x4b, 0x31, 0x07, 0x96, 0xb1, 0xb4, 0xa3, 0xb3, 0xbb, 0x57, 0xe9, 0x5a, 0xba, 0xaa, 0xd7, + 0x12, 0xc1, 0xec, 0x9d, 0xdd, 0x2b, 0x6f, 0x8d, 0x2d, 0x51, 0x56, 0x74, 0xae, 0x58, 0xd9, 0xf3, + 0x43, 0x65, 0x55, 0xfc, 0x66, 0xc4, 0x67, 0xbc, 0x67, 0xe5, 0x6a, 0x4c, 0xd6, 0x01, 0x9d, 0x7d, + 0x9d, 0xb7, 0x64, 0xf4, 0x94, 0x0b, 0x0a, 0x6d, 0xc4, 0xd8, 0xc0, 0xcd, 0xab, 0x3a, 0x2d, 0xb9, + 0xc9, 0x94, 0xa5, 0xab, 0x94, 0x6e, 0x02, 0x8b, 0x7c, 0xc5, 0x7d, 0x45, 0x1e, 0xcb, 0xdc, 0xce, + 0x15, 0xa1, 0xce, 0x9b, 0x3b, 0x3a, 0x7b, 0x14, 0x6f, 0x1f, 0x35, 0xb6, 0x69, 0x69, 0xcf, 0xaa, + 0x5e, 0xe5, 0x96, 0x25, 0xb7, 0x76, 0x2f, 0xd7, 0x42, 0xa6, 0xde, 0xaa, 0x2c, 0xfe, 0x61, 0x6f, + 0xe7, 0x2a, 0x25, 0xda, 0xd3, 0xd9, 0x09, 0x6d, 0x69, 0xd0, 0x57, 0xac, 0xec, 0xb8, 0xb5, 0x0b, + 0x43, 0x5d, 0x37, 0x77, 0x74, 0xf4, 0xd4, 0x21, 0xb0, 0x4b, 0x95, 0x28, 0xf9, 0xc9, 0x53, 0x56, + 0x77, 0xf6, 0xac, 0x42, 0xd4, 0x29, 0xdd, 0x37, 0xaf, 0xe8, 0x9c, 0x56, 0x67, 0x41, 0x3b, 0x8b, + 0xbb, 0xac, 0xba, 0x03, 0x11, 0x59, 0xd5, 0xa7, 0x4c, 0x9d, 0xd9, 0xa1, 0x38, 0xa6, 0xae, 0x72, + 0x58, 0xd2, 0xc4, 0xa6, 0x83, 0xa4, 0x82, 0x34, 0x5d, 0x89, 0x63, 0xa4, 0x82, 0xfc, 0x95, 0x82, + 0xc7, 0x26, 0x24, 0x99, 0x90, 0x4e, 0xb4, 0x77, 0x8b, 0x66, 0x73, 0xf7, 0xef, 0x6d, 0x38, 0x3d, + 0x34, 0xbf, 0xe1, 0xb3, 0x07, 0x01, 0xad, 0x3d, 0x7d, 0x6c, 0x92, 0xc3, 0x83, 0x9c, 0x5b, 0x9c, + 0x74, 0xf8, 0x3d, 0x4f, 0x81, 0xdb, 0x97, 0xb6, 0xfa, 0xdc, 0x62, 0x7e, 0xac, 0x9e, 0x4e, 0x7d, + 0x23, 0xa9, 0x1a, 0xd9, 0x99, 0xda, 0x46, 0x5f, 0xe7, 0x09, 0xa9, 0x46, 0xf3, 0xc6, 0xac, 0xe9, + 0x94, 0xd1, 0x09, 0x92, 0xb1, 0xf6, 0x6a, 0x7a, 0x9e, 0xbc, 0xc7, 0x27, 0x07, 0x54, 0x58, 0x0d, + 0x35, 0xb2, 0x4b, 0x47, 0x5c, 0x4e, 0x81, 0x98, 0xd5, 0x43, 0x12, 0xba, 0x00, 0x73, 0xf7, 0xb4, + 0x6e, 0x34, 0x93, 0x77, 0xb1, 0x62, 0x45, 0x26, 0x6e, 0xa1, 0x02, 0xf3, 0x1f, 0x1b, 0xc6, 0xb4, + 0xb7, 0x6e, 0x64, 0xbf, 0xbf, 0x0f, 0x9b, 0xdd, 0x60, 0x80, 0x50, 0xd4, 0x22, 0x78, 0x59, 0xe5, + 0x50, 0x3b, 0x7b, 0x44, 0x66, 0x49, 0xa8, 0x9d, 0xca, 0x95, 0x53, 0x67, 0x0d, 0x9f, 0x66, 0x33, + 0x79, 0xd8, 0xdf, 0x63, 0x1e, 0x1e, 0xe8, 0x35, 0xef, 0x49, 0x60, 0x5d, 0x54, 0xa2, 0x0e, 0x4b, + 0x34, 0x62, 0x89, 0xbb, 0xbf, 0xac, 0x44, 0x21, 0x0d, 0xd2, 0xb3, 0xf2, 0x39, 0x25, 0x2e, 0xcc, + 0xb6, 0xa2, 0x94, 0x5b, 0x21, 0x4e, 0xc3, 0x2b, 0x15, 0x1a, 0xd7, 0xc3, 0x7c, 0x62, 0x9b, 0x68, + 0x0f, 0xed, 0x6d, 0x7e, 0x8c, 0xdb, 0x63, 0x4d, 0xb7, 0xa7, 0x54, 0xb4, 0xc7, 0x8a, 0x31, 0x43, + 0x18, 0x73, 0xf1, 0x96, 0x58, 0x2f, 0x5a, 0x2f, 0xca, 0xcb, 0x6c, 0xcd, 0xa6, 0x44, 0xb6, 0x66, + 0x93, 0x38, 0x21, 0xe2, 0xe1, 0xb0, 0xae, 0x4b, 0xd4, 0x6b, 0xc2, 0xd2, 0xdd, 0x5c, 0xaf, 0x39, + 0x5d, 0xaf, 0x29, 0xc1, 0xf5, 0x9a, 0x31, 0xc6, 0xce, 0x31, 0x79, 0x13, 0x62, 0xf2, 0x22, 0x3b, + 0xc7, 0x3e, 0xe3, 0x18, 0xcb, 0x84, 0x18, 0x3a, 0x0d, 0xf8, 0xf0, 0x5f, 0x09, 0xeb, 0xb2, 0x2c, + 0xa4, 0x10, 0x27, 0x48, 0xb1, 0x5c, 0xbd, 0x86, 0x15, 0x3d, 0x96, 0x77, 0x17, 0xd7, 0x64, 0x88, + 0xd9, 0xe3, 0xf1, 0xe1, 0x41, 0xae, 0xc5, 0x80, 0xa1, 0xab, 0x91, 0x72, 0xe2, 0xc3, 0x6b, 0x33, + 0x78, 0x34, 0xe6, 0xc4, 0xd3, 0x49, 0x27, 0x0b, 0xfe, 0x4a, 0x28, 0xa2, 0x39, 0x50, 0x98, 0x08, + 0x8a, 0xb8, 0x2e, 0xa7, 0x74, 0x88, 0x59, 0x3c, 0xba, 0xc0, 0xcf, 0x23, 0x3b, 0x47, 0x93, 0x0c, + 0x8d, 0x84, 0xb5, 0x99, 0xb4, 0xda, 0x24, 0x0c, 0x3d, 0x8e, 0xfa, 0xf0, 0x4b, 0xd1, 0x6c, 0x18, + 0xed, 0x7a, 0x3d, 0xf8, 0x55, 0x10, 0xb0, 0x05, 0xe7, 0x82, 0xb0, 0xc3, 0x67, 0xfd, 0x5e, 0xca, + 0x10, 0x75, 0x59, 0xb7, 0xf8, 0xdb, 0xfe, 0x66, 0x1e, 0x28, 0xd1, 0xc9, 0x66, 0x17, 0xe7, 0x99, + 0x34, 0x3f, 0x31, 0xc5, 0x07, 0x61, 0x8f, 0xd9, 0x63, 0xe7, 0xbc, 0x67, 0xc5, 0x48, 0xa1, 0xf9, + 0x05, 0xba, 0x3c, 0x16, 0x27, 0x8d, 0xb0, 0x87, 0xaa, 0x77, 0xfd, 0x28, 0xa5, 0x69, 0xf2, 0x0f, + 0x7b, 0x3c, 0x40, 0xdf, 0x93, 0x24, 0x4b, 0x5c, 0x94, 0xe3, 0xca, 0x45, 0x33, 0x47, 0x07, 0xe9, + 0x94, 0xaa, 0x07, 0x66, 0x8e, 0x56, 0x0c, 0xe0, 0xfd, 0x1e, 0xbc, 0x93, 0x07, 0xe6, 0x4d, 0x68, + 0x19, 0xd4, 0xe2, 0xfd, 0x5e, 0xbc, 0x8f, 0xe0, 0x7d, 0x73, 0xf5, 0xae, 0x84, 0x93, 0x7c, 0x85, + 0xa1, 0xcc, 0xec, 0x37, 0x01, 0x7d, 0xcd, 0x30, 0x3c, 0xcc, 0x7e, 0xdc, 0x27, 0x23, 0x94, 0x4e, + 0xd4, 0xbf, 0xf4, 0x68, 0xfd, 0x1f, 0xa5, 0x2f, 0x79, 0xa5, 0xd3, 0x56, 0xbf, 0xe4, 0xc3, 0xb7, + 0x83, 0xf2, 0xca, 0x64, 0x0a, 0x26, 0x47, 0xd6, 0x0c, 0x49, 0x1e, 0xf2, 0x33, 0xe0, 0x6b, 0x79, + 0x5b, 0xa7, 0x6b, 0xdf, 0x18, 0x59, 0x85, 0xdc, 0x61, 0x7c, 0x19, 0x74, 0xa6, 0xa5, 0x4b, 0x2b, + 0xe3, 0x11, 0x2a, 0x23, 0x35, 0x6c, 0xf5, 0x1b, 0x00, 0xdf, 0x36, 0x51, 0x6e, 0x65, 0x89, 0xee, + 0x0c, 0xda, 0xed, 0xba, 0x33, 0x4b, 0x3e, 0xb5, 0xd3, 0xfb, 0x94, 0x25, 0xe0, 0xd4, 0x9d, 0xbd, + 0x1a, 0x79, 0x81, 0x6e, 0x94, 0x56, 0x89, 0xbe, 0xd3, 0x05, 0x4e, 0x51, 0xb6, 0x7c, 0xe3, 0x0d, + 0x29, 0xb8, 0xf1, 0x0e, 0xa0, 0x3a, 0x3c, 0xe6, 0x74, 0x5e, 0xd9, 0x9e, 0x1a, 0xcd, 0xe6, 0xd5, + 0x9d, 0x05, 0xe7, 0x0d, 0x4b, 0x74, 0x58, 0x9b, 0xf2, 0xf7, 0xe3, 0x61, 0x51, 0x04, 0x24, 0x65, + 0x1a, 0x24, 0xc5, 0x34, 0xab, 0x63, 0x42, 0xd5, 0xd1, 0x3a, 0x20, 0xe1, 0x6f, 0x0c, 0x52, 0xbd, + 0x88, 0x69, 0x40, 0x4e, 0xf5, 0x2a, 0xe2, 0xee, 0xec, 0xb7, 0x17, 0xb7, 0x6e, 0xc4, 0xe7, 0x91, + 0xf4, 0x33, 0x62, 0x96, 0xe6, 0xb3, 0x5f, 0x4b, 0xbf, 0x73, 0xcb, 0x8a, 0x39, 0xfd, 0xff, 0x4a, + 0x87, 0x45, 0xd6, 0x98, 0x81, 0x43, 0x9e, 0x49, 0x87, 0x28, 0x85, 0xfc, 0xdd, 0x9b, 0x48, 0xf7, + 0x70, 0xa6, 0x2c, 0x53, 0xe8, 0xcf, 0xa9, 0x64, 0xe5, 0xb3, 0xe0, 0xe3, 0x53, 0xec, 0x94, 0xdb, + 0xc0, 0x73, 0x6d, 0x2f, 0x70, 0xec, 0x73, 0xed, 0x1b, 0xdb, 0x66, 0x5b, 0x67, 0xa3, 0xc5, 0x74, + 0x12, 0x73, 0x74, 0x53, 0xd8, 0xa4, 0xc7, 0xda, 0x37, 0x5e, 0x10, 0x5f, 0xc8, 0xf1, 0x91, 0x74, + 0x3c, 0x6a, 0x40, 0xf5, 0x95, 0x57, 0x68, 0x7d, 0x61, 0x05, 0x3b, 0xe1, 0x0b, 0xa9, 0xe4, 0xd6, + 0x55, 0x4a, 0x67, 0x4f, 0xcf, 0xca, 0x9e, 0x29, 0x96, 0x79, 0xbd, 0x37, 0xf7, 0xde, 0xba, 0x0a, + 0x65, 0xcd, 0xad, 0x5d, 0xbd, 0x0a, 0x09, 0x85, 0xce, 0x55, 0xab, 0xa0, 0xb5, 0x01, 0xe6, 0xb5, + 0xc1, 0xf7, 0xe7, 0xb5, 0xc2, 0x3c, 0xbc, 0x2c, 0x30, 0x73, 0xd4, 0x47, 0x1e, 0xc2, 0x1f, 0x22, + 0x5d, 0x2a, 0xec, 0x85, 0xae, 0x98, 0xe5, 0x13, 0xfb, 0xc3, 0xf0, 0x89, 0x6b, 0x24, 0x05, 0xd6, + 0xbf, 0x2c, 0x81, 0x2e, 0x0a, 0xff, 0x8b, 0x0b, 0xba, 0xb4, 0x38, 0xd7, 0x69, 0x0c, 0xff, 0xc4, + 0xbe, 0x8b, 0x6d, 0x56, 0xf1, 0x5d, 0xaa, 0xe2, 0xd2, 0x4d, 0xe6, 0x9d, 0x96, 0x46, 0x21, 0x25, + 0xe6, 0x9c, 0x63, 0x0f, 0x78, 0x47, 0x5b, 0xde, 0x56, 0x31, 0x95, 0xf7, 0x72, 0xe2, 0x13, 0x0a, + 0xf6, 0x1f, 0xd9, 0xb8, 0xc3, 0xbb, 0x2b, 0xfa, 0xd8, 0x4e, 0x7a, 0xa1, 0xe5, 0xed, 0x06, 0x1d, + 0xe7, 0xa2, 0x99, 0xf0, 0x62, 0x91, 0xd3, 0xd9, 0x2d, 0xd1, 0x97, 0x4a, 0x0e, 0xd7, 0x12, 0x58, + 0xac, 0xcc, 0x71, 0xb4, 0xc4, 0x23, 0x68, 0x3b, 0x6d, 0x12, 0xb5, 0x78, 0x5d, 0x92, 0xab, 0xab, + 0xcc, 0x7f, 0x12, 0x22, 0x61, 0xe8, 0x62, 0xdf, 0xfa, 0x71, 0xf2, 0x59, 0x95, 0x9c, 0x7c, 0x2c, + 0x3d, 0xfb, 0x39, 0x75, 0x39, 0xd4, 0x43, 0x0d, 0x79, 0xfc, 0xa0, 0xef, 0xae, 0xab, 0x4a, 0x43, + 0x7f, 0x96, 0xa8, 0x6c, 0xfa, 0x5e, 0x36, 0x59, 0x15, 0x20, 0x9a, 0x88, 0x6c, 0x76, 0x6a, 0xdf, + 0x31, 0xa3, 0x7d, 0x5f, 0x1a, 0xae, 0x94, 0xca, 0x57, 0x58, 0x5b, 0x4f, 0x49, 0xe5, 0x33, 0x47, + 0x87, 0x05, 0x0e, 0x7a, 0x14, 0x50, 0xdf, 0xc8, 0x40, 0xd0, 0xe2, 0x98, 0x23, 0x20, 0xb8, 0x6a, + 0x19, 0xd4, 0x40, 0xfd, 0xd7, 0xc0, 0xb1, 0x2f, 0xb3, 0xf2, 0x27, 0x6a, 0xc0, 0xd2, 0xbb, 0x2c, + 0xe9, 0x92, 0x55, 0x73, 0x1a, 0xcf, 0xcc, 0x1b, 0x6c, 0xb1, 0x3a, 0xd2, 0xb4, 0x69, 0x77, 0xf7, + 0x7f, 0x49, 0xd0, 0xb7, 0x53, 0xdb, 0xb6, 0x42, 0xdd, 0x62, 0x7b, 0x65, 0xfd, 0x00, 0xf2, 0xa4, + 0xec, 0x09, 0x77, 0x08, 0x49, 0x8d, 0xf2, 0x24, 0x84, 0x45, 0xfd, 0x57, 0xe1, 0xb8, 0xb8, 0xa2, + 0x02, 0xc2, 0xd8, 0x42, 0x5a, 0xa1, 0x93, 0x9d, 0x1e, 0xfa, 0x6e, 0x63, 0xdb, 0x60, 0xd4, 0x86, + 0x74, 0x6a, 0xd5, 0x64, 0xe3, 0x89, 0xd6, 0x8d, 0xcc, 0xdd, 0x4a, 0x91, 0xbb, 0x15, 0xc4, 0xce, + 0xd0, 0xb9, 0x04, 0x10, 0x90, 0x80, 0x65, 0x98, 0x97, 0x24, 0x16, 0xf5, 0x9b, 0x38, 0x3b, 0xee, + 0x94, 0x24, 0xee, 0x27, 0xb4, 0xfb, 0xfb, 0xda, 0xfd, 0x38, 0xde, 0x51, 0x5f, 0xfd, 0xb7, 0x63, + 0xda, 0xfd, 0x4f, 0x12, 0x9d, 0x45, 0x77, 0x5c, 0x2a, 0xe2, 0xdf, 0xed, 0x10, 0xfb, 0x0c, 0xa5, + 0xfc, 0xbf, 0x1d, 0x91, 0xd0, 0x22, 0x92, 0x6c, 0xf0, 0xa5, 0x71, 0x20, 0xe2, 0xfe, 0xc4, 0x71, + 0xc7, 0xa4, 0x77, 0xe8, 0x6c, 0xb3, 0x54, 0xc2, 0xdf, 0xe6, 0x6b, 0xf2, 0x09, 0x4c, 0x5a, 0x7d, + 0xd7, 0x3e, 0xbd, 0xd8, 0x6a, 0xf5, 0x55, 0x76, 0xde, 0x62, 0xb3, 0xfa, 0x66, 0xea, 0x6f, 0x21, + 0xab, 0xb0, 0x4a, 0xbe, 0x54, 0x25, 0x7b, 0xb0, 0x5e, 0xbe, 0x94, 0xf8, 0x5e, 0xe4, 0x07, 0x37, + 0x03, 0x2c, 0xc2, 0xeb, 0x26, 0xbc, 0x16, 0xe0, 0xd5, 0x86, 0x57, 0x04, 0xaf, 0x30, 0x5e, 0x4d, + 0x78, 0x05, 0xf0, 0x9a, 0x85, 0x57, 0x1d, 0x5e, 0x35, 0x78, 0x55, 0xe1, 0x55, 0x89, 0x97, 0x1b, + 0xaf, 0x72, 0xbc, 0x1c, 0x78, 0x4d, 0xc6, 0x6b, 0x12, 0x5e, 0x25, 0x78, 0x15, 0xe1, 0x65, 0xc3, + 0xcb, 0x82, 0x97, 0x11, 0x2f, 0x59, 0xff, 0x4f, 0x90, 0x9c, 0xd2, 0x11, 0x39, 0x07, 0x1b, 0x00, + 0xbe, 0x51, 0xda, 0x38, 0xa6, 0x5d, 0xc4, 0x69, 0xff, 0xf3, 0xf5, 0xf6, 0x63, 0x59, 0x45, 0x68, + 0x5c, 0x7a, 0xc0, 0x28, 0xdf, 0x58, 0x98, 0x0a, 0xc4, 0xf0, 0x5d, 0x26, 0x6f, 0x89, 0x95, 0xf7, + 0x90, 0x1f, 0x49, 0xf2, 0x65, 0xe8, 0xc1, 0x5e, 0x77, 0xfc, 0x0c, 0xcc, 0x9e, 0x08, 0xe8, 0x91, + 0x83, 0x8c, 0xa2, 0x96, 0x55, 0x1f, 0x21, 0x5f, 0xff, 0xf5, 0x4a, 0x21, 0x8d, 0x25, 0x8f, 0x8d, + 0xbe, 0xa0, 0x8c, 0xec, 0x84, 0x7e, 0xe1, 0x1b, 0xe4, 0x86, 0x14, 0xe6, 0xd4, 0x47, 0xa2, 0x15, + 0x7f, 0xdf, 0xbe, 0x31, 0xfc, 0x4f, 0x31, 0x99, 0x66, 0xb9, 0x89, 0x43, 0x67, 0x7c, 0xbc, 0x7a, + 0xc4, 0x3a, 0x3d, 0xaf, 0x96, 0x1b, 0xc3, 0xcf, 0xc8, 0x9f, 0x44, 0x5d, 0x53, 0xe8, 0xd4, 0x67, + 0x1d, 0xb9, 0xe2, 0x9e, 0x32, 0x2c, 0xe9, 0xf1, 0x32, 0xe3, 0x65, 0x9d, 0x32, 0x1a, 0x6a, 0x6c, + 0x69, 0x05, 0x60, 0xbf, 0xaf, 0x5f, 0xc0, 0xd9, 0x85, 0xb5, 0xe4, 0x45, 0x33, 0xf9, 0xa6, 0xe2, + 0x9b, 0xba, 0x04, 0xaa, 0xc0, 0x37, 0x35, 0x00, 0x41, 0xe1, 0x13, 0x16, 0xf5, 0x38, 0x28, 0xf7, + 0x88, 0xb2, 0x5d, 0x1e, 0x28, 0x35, 0xcb, 0x58, 0x76, 0x49, 0x3c, 0x39, 0x3c, 0xa8, 0xf8, 0x7a, + 0xa1, 0x9a, 0xfc, 0xc4, 0xc8, 0xec, 0xb7, 0xce, 0xa8, 0x16, 0x1f, 0xdb, 0xa0, 0xda, 0xd1, 0x62, + 0x25, 0xab, 0x58, 0xec, 0xbf, 0xf6, 0x45, 0x8b, 0x3d, 0x41, 0x6d, 0xdf, 0x42, 0x03, 0x71, 0x31, + 0x28, 0x53, 0x21, 0xd5, 0x46, 0x77, 0x2a, 0xb9, 0xde, 0x51, 0x4e, 0xab, 0xd4, 0x2b, 0x41, 0xf1, + 0xa2, 0x05, 0x1e, 0x97, 0xcd, 0x95, 0x00, 0xd2, 0xb4, 0x58, 0x29, 0xcd, 0x4e, 0xc7, 0x8c, 0xca, + 0x2e, 0xc4, 0x4e, 0xb0, 0x2d, 0xd1, 0x3e, 0xd4, 0xe3, 0x43, 0xdb, 0xff, 0x84, 0x1a, 0xe1, 0x2f, + 0x0b, 0x06, 0x8c, 0x03, 0x88, 0x5d, 0x55, 0x79, 0xb1, 0x2d, 0xc1, 0xb3, 0xd0, 0x27, 0x30, 0xaf, + 0x4a, 0xe7, 0x5a, 0x66, 0xe2, 0xf6, 0x71, 0x9c, 0x49, 0x8b, 0x4b, 0x8c, 0x8b, 0x3b, 0xcb, 0x71, + 0x34, 0x3b, 0x7e, 0x82, 0x74, 0x00, 0x94, 0x1b, 0x4f, 0x29, 0x0d, 0xbd, 0xa0, 0xca, 0x6d, 0x83, + 0x0b, 0x87, 0xc2, 0x4b, 0x52, 0xe7, 0xa2, 0x9f, 0x29, 0xf2, 0xc8, 0x20, 0xcd, 0xd2, 0xec, 0xdf, + 0xed, 0x3f, 0x3d, 0x64, 0x54, 0xcc, 0x3d, 0x64, 0x83, 0xd6, 0x55, 0x05, 0xe6, 0x35, 0x57, 0xe5, + 0x1d, 0x68, 0x3e, 0xe0, 0xa7, 0x6b, 0xbe, 0x5f, 0xf1, 0xdd, 0xf7, 0x8a, 0x5a, 0xd7, 0x27, 0x0d, + 0xad, 0xf5, 0xee, 0xf2, 0xd4, 0xbb, 0xf5, 0x81, 0xc6, 0x50, 0xe3, 0xd5, 0x8d, 0x20, 0x5f, 0x1d, + 0x04, 0xfd, 0xd5, 0xd4, 0xf7, 0xc6, 0xab, 0xfd, 0x60, 0x76, 0x36, 0xf4, 0x41, 0x6d, 0x51, 0x45, + 0xf0, 0x8f, 0x7b, 0x66, 0x0c, 0x1d, 0x07, 0xf6, 0x3b, 0x67, 0x59, 0xb8, 0xd6, 0xe8, 0x4f, 0x7d, + 0xb6, 0xe3, 0xce, 0xee, 0xdd, 0x0e, 0xb9, 0x69, 0xe0, 0xc0, 0xc0, 0x7d, 0x03, 0x7b, 0x06, 0x1c, + 0xf2, 0x81, 0xc1, 0x03, 0x03, 0x07, 0x07, 0x0e, 0x52, 0xcd, 0xbb, 0xbd, 0xbb, 0x22, 0x5f, 0x28, + 0xc8, 0x77, 0x1c, 0x6d, 0xe2, 0x7c, 0x58, 0x2c, 0x49, 0xa6, 0xd3, 0x61, 0xb1, 0x47, 0xea, 0xc5, + 0x7c, 0x62, 0xad, 0xec, 0x94, 0x68, 0xfd, 0xc3, 0x04, 0xe5, 0x12, 0xd9, 0xd2, 0x32, 0xb8, 0x24, + 0xd2, 0xa5, 0xcd, 0x60, 0x96, 0xb0, 0x55, 0x16, 0xfc, 0x95, 0x6e, 0x7c, 0x31, 0x48, 0xe7, 0x76, + 0xc8, 0x62, 0xb5, 0xc4, 0x23, 0x85, 0xd7, 0x2d, 0x78, 0x31, 0x34, 0x10, 0x7a, 0x31, 0x38, 0x80, + 0xcf, 0x6b, 0x6f, 0xcc, 0x3e, 0x0f, 0x66, 0x9f, 0xd1, 0x5e, 0xcf, 0x43, 0xa9, 0x49, 0x1e, 0x07, + 0x92, 0xd3, 0xd7, 0x93, 0x65, 0x4e, 0xf3, 0x5a, 0x3e, 0xec, 0x2d, 0xa2, 0x92, 0x49, 0xfd, 0x68, + 0x93, 0xcb, 0x6c, 0x0b, 0xb0, 0x4f, 0x21, 0xeb, 0x5b, 0x4a, 0xab, 0x22, 0xd1, 0xfe, 0xf3, 0x53, + 0x21, 0x92, 0x04, 0xd2, 0xa8, 0xe2, 0x35, 0x43, 0xaf, 0x0e, 0xb5, 0xec, 0x2a, 0xd9, 0x97, 0x04, + 0xa7, 0x14, 0x08, 0x84, 0x02, 0x04, 0x27, 0xc6, 0xf8, 0x14, 0xaf, 0x4b, 0xc4, 0x95, 0xf4, 0xa6, + 0x9a, 0xe4, 0xe1, 0xc1, 0x5e, 0xcb, 0xb1, 0x27, 0x8a, 0xeb, 0x53, 0xa3, 0xbb, 0x07, 0x29, 0xae, + 0x14, 0x88, 0x7f, 0xe5, 0x7a, 0xa5, 0x20, 0xff, 0x3e, 0x48, 0x1f, 0x21, 0xa4, 0xba, 0x96, 0x1b, + 0x56, 0x42, 0x1b, 0x54, 0xd7, 0xad, 0x84, 0x05, 0xf8, 0x74, 0x13, 0xd4, 0x4c, 0xf6, 0xc0, 0xdf, + 0x97, 0x2f, 0xb3, 0xbe, 0x35, 0x69, 0x3a, 0x7d, 0xdd, 0x23, 0xbd, 0x17, 0xbe, 0x0f, 0x7f, 0x8f, + 0x28, 0x7a, 0x82, 0xa2, 0x30, 0x15, 0xb5, 0x2a, 0xba, 0xc4, 0xa0, 0x78, 0x8e, 0x4d, 0xa2, 0x39, + 0x14, 0xfe, 0x3e, 0x35, 0x59, 0xf2, 0x7c, 0xc6, 0x2f, 0x91, 0x5d, 0x05, 0x69, 0x5b, 0x78, 0x6d, + 0x54, 0x2e, 0x97, 0xe9, 0xcb, 0x6e, 0x07, 0x7c, 0x70, 0x67, 0x85, 0xbf, 0x1f, 0xca, 0x0c, 0xcd, + 0xe7, 0xa4, 0x9f, 0x79, 0x7c, 0x50, 0x7b, 0x45, 0x23, 0x78, 0xae, 0x98, 0x0d, 0x95, 0x98, 0xee, + 0x36, 0x05, 0x6b, 0x12, 0xfb, 0xec, 0xd3, 0xed, 0x74, 0xb4, 0xbe, 0x3e, 0xac, 0x5c, 0xd2, 0xa3, + 0xdb, 0x9d, 0x88, 0x96, 0x69, 0x33, 0xcd, 0x26, 0x8f, 0x11, 0xed, 0x8f, 0x66, 0xf0, 0x45, 0x36, + 0xd3, 0x89, 0x8d, 0x8e, 0x04, 0xd5, 0x42, 0x29, 0x10, 0xb2, 0x26, 0xc2, 0x86, 0x43, 0xa6, 0xbe, + 0xa4, 0xde, 0x20, 0x6c, 0xec, 0x7f, 0x51, 0xb1, 0x67, 0xf2, 0xcb, 0xa4, 0xe1, 0x72, 0xfe, 0x10, + 0xe5, 0x47, 0xec, 0xfa, 0x94, 0xdc, 0xfc, 0xc6, 0x35, 0xa9, 0x26, 0xc3, 0xab, 0x09, 0x87, 0x7c, + 0x9b, 0xe5, 0xd4, 0x13, 0x71, 0x5d, 0x13, 0xec, 0x4e, 0x38, 0x1a, 0x5f, 0x7f, 0x51, 0xb9, 0x84, + 0xbf, 0x88, 0xae, 0x70, 0xd4, 0xbf, 0xf5, 0x34, 0xb2, 0xcd, 0x41, 0xa4, 0xe6, 0x17, 0xac, 0xeb, + 0xc8, 0xd5, 0x3f, 0x3e, 0xed, 0xf0, 0xbf, 0x0f, 0xba, 0xab, 0x42, 0x60, 0x73, 0xe8, 0x64, 0xff, + 0x69, 0x88, 0x07, 0x07, 0x13, 0x74, 0x96, 0x20, 0x95, 0x48, 0xfd, 0x1d, 0xf4, 0x7b, 0xfd, 0x22, + 0x06, 0x0d, 0x22, 0x09, 0x3c, 0xd1, 0x8a, 0x35, 0xd2, 0xe0, 0xed, 0xb3, 0x0a, 0xa2, 0xe6, 0x3a, + 0x73, 0xd4, 0x1c, 0x1c, 0x8e, 0xea, 0x6f, 0xd3, 0x0f, 0xde, 0xc1, 0x71, 0x95, 0x8b, 0x2d, 0x18, + 0xb6, 0x18, 0xa5, 0x8e, 0x31, 0xb6, 0xf0, 0x36, 0xdf, 0xe0, 0x1d, 0xea, 0x82, 0x35, 0xba, 0x0b, + 0xd3, 0xd2, 0xc9, 0x38, 0x1c, 0x52, 0x86, 0xd2, 0xd3, 0x72, 0xdb, 0x8f, 0x9a, 0x4c, 0x83, 0x77, + 0xe0, 0x9b, 0xad, 0x12, 0x4e, 0x6c, 0x5c, 0xa3, 0x7b, 0xed, 0xf6, 0x17, 0x9e, 0x85, 0xda, 0x0e, + 0x63, 0xa5, 0x0d, 0xf3, 0x1b, 0xd7, 0xa8, 0xc3, 0xb7, 0x0f, 0x26, 0x10, 0x62, 0xb3, 0x80, 0x37, + 0xa6, 0x07, 0xbf, 0x1e, 0x1c, 0x03, 0xc6, 0x75, 0xa9, 0xd4, 0x69, 0x30, 0x0e, 0x52, 0x18, 0x79, + 0xed, 0xb0, 0x43, 0x78, 0x5d, 0x14, 0x92, 0x89, 0x8b, 0x9c, 0x25, 0x58, 0xe7, 0x5a, 0x09, 0x15, + 0xa5, 0x1e, 0x98, 0x49, 0x67, 0x7a, 0x39, 0xbb, 0xac, 0x6f, 0xad, 0x81, 0x49, 0x1e, 0xb8, 0xb6, + 0x57, 0xff, 0xc1, 0xd6, 0x72, 0x79, 0xde, 0x5a, 0xb5, 0x98, 0x34, 0x35, 0x89, 0xbe, 0x82, 0x32, + 0x1a, 0x07, 0x68, 0x92, 0x66, 0xaa, 0x1f, 0x2c, 0x0e, 0x37, 0x58, 0x76, 0x0c, 0x2c, 0x06, 0x78, + 0x0c, 0xe5, 0xb3, 0xb1, 0x12, 0x5e, 0x5b, 0x1b, 0x3d, 0xa4, 0xd2, 0xf7, 0x79, 0xf5, 0xa4, 0xc7, + 0xf4, 0xe4, 0x7c, 0x47, 0x5f, 0x4e, 0x33, 0x94, 0x7b, 0xb2, 0xbe, 0x15, 0x1c, 0x0d, 0x22, 0x4d, + 0x76, 0x96, 0x9f, 0xe0, 0x2b, 0x4c, 0x51, 0xa8, 0x1d, 0xe4, 0x06, 0xb4, 0x8c, 0x1b, 0x32, 0x71, + 0xd5, 0xe5, 0xd9, 0x74, 0xab, 0xc3, 0x6b, 0x63, 0x6b, 0xa6, 0x36, 0x80, 0x71, 0x6a, 0x3f, 0xa5, + 0x04, 0x4b, 0xd8, 0x18, 0x2b, 0xb7, 0xea, 0x41, 0xba, 0x45, 0xa1, 0x9e, 0xa7, 0xef, 0x93, 0x68, + 0x46, 0xda, 0x4e, 0x73, 0x71, 0x3a, 0x8f, 0x95, 0x67, 0xa0, 0x15, 0x55, 0x3f, 0xfb, 0xdc, 0xe8, + 0x99, 0x1d, 0x5b, 0xc1, 0xb2, 0x18, 0x52, 0xe4, 0x3d, 0xd4, 0xb8, 0x5a, 0xfa, 0xe0, 0xc9, 0x80, + 0x5f, 0xb5, 0xf3, 0x39, 0x4a, 0xbe, 0x29, 0xbb, 0xa8, 0xc7, 0xdb, 0xa1, 0xcd, 0xbf, 0x06, 0xea, + 0xa4, 0xe7, 0x6e, 0xef, 0x3e, 0x4e, 0x25, 0x46, 0xf5, 0x3d, 0xa8, 0xb3, 0xf4, 0xe8, 0x12, 0x03, + 0xbf, 0xdb, 0x0a, 0xc6, 0xfb, 0x31, 0xb7, 0xe6, 0x0b, 0x7c, 0x54, 0x7c, 0x09, 0x42, 0x32, 0x82, + 0x46, 0x4d, 0x31, 0x8d, 0x9a, 0x08, 0xcf, 0x83, 0xd3, 0xd7, 0xf9, 0xf4, 0x1d, 0x3f, 0x9d, 0x6c, + 0xfc, 0x54, 0xcf, 0xe8, 0xee, 0x44, 0xf9, 0x00, 0x53, 0xbb, 0x9d, 0xf0, 0x1c, 0x35, 0x06, 0x5c, + 0xa0, 0x57, 0xdd, 0x56, 0x19, 0xa1, 0x75, 0x5c, 0x00, 0x2d, 0xe7, 0x1a, 0x8d, 0x08, 0x78, 0x33, + 0x27, 0x0f, 0xeb, 0x33, 0x3e, 0x81, 0x0b, 0xe8, 0xeb, 0x25, 0xe2, 0x12, 0x76, 0x17, 0x8d, 0x52, + 0x38, 0xe1, 0xb0, 0xf3, 0x6c, 0xef, 0x22, 0x0f, 0xf6, 0x04, 0x6a, 0xef, 0x16, 0x92, 0x71, 0xa8, + 0x51, 0x92, 0x2f, 0xdf, 0xa3, 0x6a, 0x90, 0xb4, 0xb8, 0xef, 0x6d, 0x44, 0x7d, 0x6b, 0xf8, 0x1f, + 0xd4, 0xca, 0x81, 0xd3, 0x97, 0xfb, 0x20, 0xb2, 0xe6, 0x90, 0x34, 0x1d, 0x65, 0x64, 0xd9, 0x1e, + 0x30, 0x57, 0xee, 0x22, 0xcf, 0xba, 0xe4, 0x79, 0xe7, 0xf4, 0xe5, 0x2d, 0x60, 0x7e, 0x11, 0xae, + 0x10, 0x69, 0x02, 0xff, 0x74, 0xfa, 0x72, 0x33, 0x9c, 0xbe, 0xdc, 0x0a, 0xa8, 0xaf, 0xaf, 0xc2, + 0xbe, 0x5c, 0x87, 0x12, 0x89, 0xce, 0xc0, 0xb1, 0x60, 0x5d, 0x3a, 0x3a, 0x7f, 0xfe, 0x0a, 0x1f, + 0x5c, 0x8a, 0xe3, 0xca, 0x46, 0x35, 0x16, 0x79, 0xe0, 0x52, 0x1c, 0x9d, 0xb6, 0x71, 0x35, 0xb7, + 0xb2, 0xfe, 0x48, 0x75, 0x35, 0xeb, 0xce, 0xd0, 0x6c, 0xe8, 0x77, 0xcc, 0x61, 0x29, 0x66, 0xe4, + 0xa7, 0xcd, 0xd3, 0x23, 0x40, 0x12, 0xe0, 0x1f, 0xed, 0xba, 0xc8, 0x3f, 0x9a, 0x8d, 0x78, 0x99, + 0xce, 0xf4, 0x9d, 0x69, 0xff, 0xb4, 0x54, 0xe1, 0x39, 0x8f, 0xc8, 0x3f, 0x02, 0x86, 0xdb, 0xf5, + 0x78, 0x19, 0xf0, 0xc2, 0x78, 0xbb, 0x29, 0xb2, 0xca, 0x9d, 0xf1, 0x3e, 0xac, 0x61, 0xc1, 0x9a, + 0xc1, 0x42, 0x80, 0x31, 0xa0, 0x8c, 0xab, 0xdf, 0x2e, 0x6c, 0x1a, 0x6a, 0x89, 0x8f, 0xbe, 0x18, + 0x5f, 0xa5, 0x96, 0x8d, 0x8b, 0xb7, 0x51, 0x7c, 0x9c, 0xeb, 0xfa, 0xb4, 0x54, 0x94, 0xce, 0x23, + 0xa0, 0x9e, 0xf6, 0x4d, 0x50, 0x6f, 0x4d, 0x16, 0xf8, 0x3d, 0xa0, 0xd8, 0xf1, 0x77, 0x1f, 0x7b, + 0x36, 0x49, 0x96, 0x1c, 0x9d, 0x2d, 0x3c, 0x10, 0xdc, 0x47, 0xdf, 0x19, 0x37, 0x9f, 0x3b, 0x17, + 0x42, 0x0d, 0x99, 0xbe, 0x45, 0xb6, 0xff, 0xf4, 0x37, 0xab, 0xc1, 0xa5, 0x8b, 0x5b, 0xdf, 0x79, + 0xca, 0xba, 0x96, 0x08, 0x12, 0xed, 0x72, 0x3d, 0x9d, 0xaf, 0xde, 0xba, 0xd1, 0x8d, 0x72, 0x70, + 0x0d, 0x28, 0x86, 0x7f, 0x4d, 0x68, 0x7c, 0xd4, 0x2c, 0x52, 0x44, 0xdb, 0x1d, 0xb2, 0xd5, 0x84, + 0x70, 0x5b, 0x4e, 0xde, 0x49, 0x27, 0x1d, 0x05, 0x40, 0xb5, 0x9d, 0xa0, 0x27, 0x9d, 0x22, 0x9f, + 0x1a, 0xa2, 0x13, 0x90, 0x3c, 0x72, 0xbf, 0x6e, 0xdf, 0x80, 0xc7, 0xd8, 0x23, 0xed, 0x4e, 0x78, + 0xa4, 0xe0, 0xee, 0xb4, 0xdf, 0x6d, 0x0f, 0x92, 0xcc, 0x69, 0xf0, 0xc8, 0xf4, 0x15, 0x44, 0x2a, + 0xe5, 0x29, 0x60, 0xc8, 0xc6, 0x04, 0x8d, 0x3b, 0x0d, 0xee, 0x60, 0xdb, 0x5a, 0xae, 0x41, 0x8a, + 0x42, 0xaa, 0x9b, 0xb4, 0xa1, 0xcb, 0x1d, 0x50, 0xd1, 0xf2, 0x76, 0xfd, 0xa8, 0x9a, 0x02, 0xf8, + 0xe3, 0x06, 0x7a, 0xe2, 0x96, 0x7a, 0x69, 0xa7, 0x08, 0xca, 0x03, 0x17, 0xca, 0x83, 0x0a, 0x94, + 0x07, 0xde, 0x3a, 0x0f, 0xd4, 0xd4, 0x7b, 0xa0, 0x6e, 0x96, 0x07, 0x66, 0xf1, 0xcc, 0x55, 0x83, + 0xd3, 0xe7, 0xb1, 0x84, 0x67, 0x2f, 0xc8, 0xd4, 0x1b, 0x6e, 0xca, 0x79, 0x6e, 0xcc, 0x3e, 0x67, + 0xa5, 0xc1, 0xe5, 0xde, 0x8c, 0x34, 0x50, 0x3c, 0x61, 0xf0, 0x79, 0x67, 0x93, 0xe6, 0xe5, 0x6d, + 0xe2, 0xb3, 0xcc, 0x1b, 0xf9, 0x04, 0xd9, 0x20, 0x1a, 0x85, 0x0d, 0x50, 0x81, 0xfa, 0x8b, 0xcb, + 0x33, 0x87, 0xac, 0x56, 0xeb, 0xa8, 0x0a, 0x5f, 0x2c, 0xa4, 0x12, 0x10, 0x1a, 0x3b, 0xad, 0xda, + 0x64, 0x4a, 0xbb, 0x45, 0x94, 0x96, 0x1e, 0x21, 0x88, 0x13, 0x1d, 0xcd, 0xae, 0x93, 0xd7, 0xc2, + 0xc8, 0xce, 0x2f, 0x5c, 0x58, 0x4b, 0x85, 0x58, 0x59, 0xe1, 0x79, 0xed, 0xe2, 0x89, 0x7e, 0x3b, + 0xe8, 0xfb, 0xc0, 0x58, 0x2d, 0xed, 0x8d, 0xbb, 0xd2, 0x67, 0x7d, 0xcb, 0xa1, 0xcd, 0xc9, 0x79, + 0xa7, 0x49, 0x2e, 0xe4, 0xa6, 0x66, 0x5e, 0xad, 0xd0, 0xab, 0x65, 0xc1, 0xe1, 0x65, 0x66, 0x5e, + 0x1f, 0xd1, 0xab, 0x76, 0xe4, 0xbb, 0x56, 0xd2, 0xd3, 0xf1, 0x19, 0x53, 0xd2, 0xe8, 0x13, 0x74, + 0xf1, 0xd7, 0xe8, 0x06, 0xff, 0x32, 0x0a, 0x57, 0xa4, 0x52, 0x8b, 0xcd, 0x56, 0x34, 0x99, 0xa3, + 0xc8, 0x39, 0xfe, 0x3a, 0x5d, 0x01, 0xdb, 0x37, 0x4e, 0x57, 0xd0, 0x34, 0x85, 0x1f, 0x64, 0x6c, + 0x2e, 0xd6, 0x55, 0xbc, 0x55, 0x4e, 0x9b, 0x48, 0x75, 0xed, 0x92, 0x72, 0x1f, 0xaf, 0xe5, 0x02, + 0x6c, 0xbd, 0x9c, 0xd6, 0x5c, 0xcc, 0xf8, 0xfb, 0x23, 0xc8, 0x23, 0xeb, 0xe7, 0xf2, 0x7f, 0x44, + 0x9e, 0xe0, 0xa3, 0xd5, 0xb5, 0xcb, 0x36, 0xdd, 0xff, 0x2a, 0x62, 0xe4, 0xf1, 0x38, 0xb0, 0x16, + 0x36, 0xbc, 0x7f, 0x2f, 0xea, 0x61, 0x36, 0xff, 0x5f, 0x86, 0x60, 0x4a, 0x08, 0xcc, 0xe4, 0xaf, + 0xb2, 0xe1, 0x38, 0x5a, 0xa6, 0x77, 0xb6, 0x89, 0x9d, 0xa6, 0x10, 0x3d, 0x14, 0xf0, 0x95, 0xc3, + 0x1b, 0x09, 0x87, 0xee, 0xcf, 0x77, 0xde, 0xbb, 0x56, 0xf1, 0xfb, 0x8f, 0x5b, 0x2f, 0x9a, 0x9a, + 0xbc, 0x2b, 0x46, 0xdf, 0x70, 0xcc, 0xa1, 0x95, 0x93, 0xe4, 0x24, 0x4f, 0x7e, 0xee, 0x0a, 0x71, + 0xe9, 0x48, 0xee, 0x39, 0x03, 0x82, 0x5a, 0x1c, 0xf9, 0xc8, 0x0d, 0xfd, 0x4a, 0x7e, 0xcb, 0xdb, + 0x2d, 0xd6, 0xac, 0x1f, 0x02, 0x1a, 0x55, 0xb5, 0x65, 0x2a, 0x7d, 0x73, 0xab, 0x27, 0x1e, 0x18, + 0xb9, 0xaf, 0x75, 0x03, 0x7b, 0x52, 0x2c, 0x8a, 0x9e, 0x14, 0xde, 0x06, 0xd0, 0x76, 0xa6, 0x93, + 0xd7, 0x91, 0xdb, 0x4b, 0xf7, 0x5a, 0xdf, 0x60, 0x4b, 0xe7, 0xfb, 0x00, 0xd4, 0xb2, 0xcb, 0x7f, + 0xec, 0xed, 0x37, 0x63, 0x4f, 0xd9, 0x87, 0xed, 0xdf, 0x8a, 0x9e, 0x0b, 0xad, 0xd0, 0x7c, 0x05, + 0x98, 0xd9, 0x97, 0xfd, 0x66, 0x7c, 0x36, 0x87, 0xfa, 0xcc, 0xbc, 0x33, 0xb7, 0xc6, 0xc7, 0x9e, + 0xea, 0x7b, 0xae, 0x02, 0xf5, 0x1c, 0xef, 0xc5, 0x25, 0x7a, 0xb3, 0x66, 0xfc, 0x74, 0x19, 0xa4, + 0xa9, 0x31, 0x45, 0xa9, 0x84, 0x78, 0x6c, 0x52, 0x8f, 0x5e, 0x9b, 0x97, 0xed, 0x86, 0xae, 0xf1, + 0x33, 0xb3, 0xc2, 0x12, 0x0b, 0xbb, 0xa4, 0xab, 0xba, 0x5c, 0xf8, 0x3b, 0xbd, 0x8b, 0xbf, 0xf0, + 0xb8, 0xfa, 0xf9, 0xb0, 0x2f, 0x56, 0x2a, 0xbe, 0xb1, 0xbc, 0x62, 0x56, 0xfb, 0x46, 0xa4, 0x6d, + 0xab, 0x93, 0x76, 0xee, 0x20, 0x7c, 0x57, 0x3c, 0xe4, 0x14, 0x7b, 0x82, 0x64, 0xe4, 0x95, 0x66, + 0xaa, 0xb1, 0x47, 0x42, 0x4d, 0xbc, 0x66, 0x85, 0x11, 0xfb, 0xac, 0x48, 0xad, 0xeb, 0x91, 0xf1, + 0x6d, 0x72, 0x51, 0x3d, 0xe8, 0x10, 0x93, 0x15, 0xaa, 0x05, 0xf3, 0x9a, 0x9d, 0x57, 0xa0, 0x46, + 0xaf, 0x66, 0x4a, 0x2e, 0x19, 0x57, 0x32, 0xc6, 0xa6, 0xcb, 0x65, 0xba, 0xa7, 0x1d, 0xc5, 0xf6, + 0xf4, 0x0e, 0x55, 0xe4, 0xc5, 0x85, 0x8d, 0xa7, 0x1f, 0x04, 0xf2, 0x37, 0xbe, 0xc2, 0x08, 0x3e, + 0x3b, 0xa8, 0x7a, 0xd9, 0xf7, 0x51, 0x4a, 0xf8, 0x24, 0x15, 0xbe, 0x4e, 0xf8, 0xfc, 0x7a, 0xcb, + 0x25, 0x7e, 0xc8, 0x43, 0xfd, 0xd7, 0xd6, 0x78, 0x1c, 0x94, 0x29, 0x61, 0xb0, 0x63, 0xbc, 0xd2, + 0xf8, 0x7e, 0xea, 0x08, 0x3e, 0x3b, 0xb1, 0x97, 0x8b, 0x5f, 0xdf, 0x3b, 0xa5, 0x19, 0x4a, 0xf1, + 0xad, 0xcc, 0xa9, 0xed, 0xae, 0x8c, 0x2b, 0xe3, 0x7c, 0x51, 0xd0, 0xd8, 0xf2, 0x5d, 0xc6, 0x25, + 0x4e, 0xc5, 0x3e, 0x04, 0xcb, 0x65, 0xfd, 0xa9, 0x04, 0xe4, 0x5d, 0xd3, 0xaf, 0x47, 0xcb, 0x2d, + 0xb0, 0x15, 0xec, 0x18, 0x6a, 0x67, 0xa8, 0x8a, 0xdb, 0xc8, 0x66, 0x2f, 0xc5, 0x30, 0x6d, 0xb5, + 0xde, 0x7f, 0x4a, 0x0a, 0x38, 0xc2, 0x48, 0x31, 0x9f, 0x28, 0x16, 0xcd, 0xf7, 0xfe, 0x0f, 0xd8, + 0xa7, 0xfc, 0x2c, 0x17, 0xf9, 0x13, 0x5a, 0x09, 0xb5, 0xe5, 0x5d, 0x60, 0x9f, 0x36, 0x0f, 0xec, + 0x0a, 0x4a, 0xd5, 0x9f, 0x3c, 0x05, 0x65, 0x6e, 0xbc, 0x57, 0x1a, 0x8e, 0x6d, 0xec, 0x85, 0x8a, + 0x7a, 0x48, 0x5d, 0xb7, 0x09, 0x65, 0xd2, 0x53, 0xae, 0x19, 0xa0, 0x6f, 0xbd, 0xbb, 0x6d, 0x83, + 0xc3, 0xb2, 0x3a, 0xb9, 0x7b, 0xad, 0xd3, 0xbf, 0x77, 0xad, 0xb5, 0x2d, 0x4c, 0x3b, 0x79, 0x36, + 0xfc, 0xeb, 0x09, 0xfe, 0xba, 0x66, 0xd0, 0x43, 0x9e, 0x78, 0x2a, 0x2a, 0xe6, 0xac, 0x06, 0x75, + 0xb2, 0xb2, 0xc8, 0xe3, 0x02, 0xb2, 0xfc, 0xbd, 0x9a, 0xef, 0x83, 0x44, 0xd4, 0x1c, 0x4f, 0x6d, + 0x5b, 0x1b, 0xb5, 0xa8, 0xde, 0xb6, 0xb5, 0x3b, 0xd6, 0x46, 0xdf, 0x52, 0x5d, 0x6f, 0xac, 0x25, + 0x1f, 0x7e, 0x44, 0xe7, 0x8e, 0xd6, 0xa2, 0x69, 0x90, 0x6f, 0x77, 0x43, 0xfe, 0x36, 0x69, 0xb1, + 0x35, 0xaa, 0xe0, 0x5b, 0xc1, 0x76, 0x37, 0x14, 0x74, 0x97, 0x28, 0x1b, 0xd4, 0x22, 0xb2, 0x66, + 0x46, 0x12, 0x57, 0x6d, 0x30, 0x43, 0xdb, 0xe0, 0x0b, 0x83, 0x38, 0xf2, 0x1e, 0x57, 0x96, 0x81, + 0xf1, 0x5f, 0xf7, 0x76, 0xe8, 0x1b, 0x8f, 0xa7, 0x46, 0xcb, 0x2d, 0x3c, 0x13, 0x2a, 0xb7, 0x6d, + 0x98, 0xbf, 0xe1, 0xf9, 0x0d, 0xa8, 0x6b, 0x2c, 0x73, 0x7e, 0x1f, 0x6b, 0xda, 0x80, 0xfc, 0x38, + 0x22, 0x72, 0x06, 0x7e, 0x61, 0x06, 0x45, 0xfe, 0xd3, 0x50, 0x4f, 0xfe, 0xc8, 0xc0, 0xea, 0xb3, + 0xc3, 0x6b, 0x1f, 0x22, 0x4f, 0xf3, 0xa6, 0xed, 0xb7, 0x77, 0x4c, 0xf2, 0xff, 0x05, 0x63, 0x9e, + 0x02, 0xfb, 0x43, 0x09, 0xf2, 0x29, 0x3c, 0x2d, 0x84, 0xfc, 0x10, 0xe5, 0xd0, 0xbf, 0x23, 0x06, + 0x7a, 0xa4, 0x38, 0xcc, 0x1b, 0x54, 0xbd, 0x3c, 0x7e, 0xf7, 0x12, 0x8c, 0xae, 0xd6, 0xb6, 0x84, + 0xd3, 0xf7, 0xbb, 0xe1, 0xdf, 0xbd, 0xda, 0xf8, 0x97, 0x2d, 0xe0, 0x68, 0x2b, 0xa9, 0x80, 0x82, + 0xe7, 0x10, 0xce, 0x2e, 0xab, 0xf3, 0x2e, 0xe5, 0x4e, 0xd4, 0x6b, 0xf4, 0x94, 0x67, 0x47, 0x62, + 0xf1, 0xbe, 0xb0, 0x3f, 0x76, 0x46, 0xf3, 0x57, 0x8b, 0xda, 0x9e, 0xf0, 0x9f, 0xa2, 0xd4, 0x22, + 0x2d, 0x96, 0xd2, 0x5c, 0x12, 0x79, 0xd5, 0x41, 0x8c, 0xda, 0xd8, 0x1b, 0x91, 0x8d, 0xf7, 0x01, + 0x24, 0x62, 0x66, 0xe7, 0xdf, 0xb2, 0xcf, 0xfa, 0x13, 0xb4, 0xe3, 0xa2, 0x8c, 0xcf, 0x31, 0x11, + 0x7d, 0xe7, 0xe8, 0x96, 0x8a, 0xe5, 0xee, 0xd4, 0x8f, 0x24, 0xb7, 0x79, 0x1a, 0xcd, 0xcc, 0x44, + 0x2b, 0xb1, 0x37, 0x1f, 0xf8, 0x97, 0x53, 0xd2, 0x23, 0xb1, 0x1a, 0xa5, 0x52, 0x7a, 0x80, 0xfc, + 0xcb, 0x0b, 0x3e, 0x37, 0x3c, 0xa0, 0xf8, 0x50, 0x3e, 0xe7, 0x6d, 0x9b, 0x06, 0x79, 0xdd, 0x66, + 0x1e, 0x61, 0xce, 0x58, 0xd1, 0xa5, 0xc4, 0x75, 0x0b, 0x29, 0x0f, 0xf5, 0xbf, 0xd0, 0x41, 0xb5, + 0xb3, 0xe0, 0xc5, 0xec, 0x18, 0x96, 0x7f, 0x49, 0xb7, 0x54, 0x0e, 0x76, 0xb3, 0x0b, 0x8c, 0x60, + 0x63, 0xff, 0xa5, 0x81, 0xf1, 0xfb, 0xca, 0x91, 0xe6, 0xc5, 0xfc, 0xd7, 0x12, 0xac, 0xaf, 0x28, + 0x46, 0xde, 0xe1, 0xf4, 0x4a, 0x42, 0x69, 0x9b, 0x42, 0x5e, 0x6e, 0xf5, 0x4a, 0xd6, 0x5b, 0xc2, + 0x1e, 0x1c, 0x3d, 0x07, 0xc5, 0x5b, 0xdb, 0x33, 0x52, 0xd9, 0x77, 0x96, 0x81, 0x5d, 0x2a, 0x9f, + 0x11, 0x96, 0x8a, 0xbf, 0xdb, 0x2d, 0x29, 0x92, 0x43, 0xee, 0x7e, 0x3b, 0x25, 0x39, 0x79, 0x8f, + 0x45, 0x61, 0x18, 0xdb, 0xde, 0x55, 0xa6, 0xda, 0xda, 0xb6, 0x48, 0xa5, 0xb0, 0x04, 0x12, 0x92, + 0xfb, 0xfe, 0x57, 0x55, 0xf2, 0xe5, 0xda, 0x94, 0xae, 0x3b, 0x4b, 0xab, 0xa1, 0x3f, 0xcf, 0xaa, + 0x72, 0x42, 0xb9, 0xd9, 0x9d, 0xe7, 0xb2, 0xc5, 0x4b, 0xc6, 0x69, 0xb8, 0x34, 0x2a, 0xe6, 0x97, + 0xc9, 0x57, 0x35, 0x80, 0xf9, 0xaa, 0x46, 0xb0, 0x5e, 0x85, 0x23, 0xeb, 0xf2, 0xfe, 0xd4, 0x11, + 0x28, 0xbe, 0x3c, 0x00, 0x97, 0x65, 0xf7, 0xaa, 0x94, 0xc9, 0x62, 0x4f, 0xa9, 0x62, 0x1c, 0x59, + 0x8f, 0x3d, 0xfa, 0xb2, 0xc6, 0x8f, 0x4f, 0x87, 0xa0, 0x7c, 0x13, 0xda, 0x17, 0x7a, 0x47, 0x2b, + 0xf9, 0x75, 0x57, 0x7e, 0x9c, 0xdd, 0x27, 0xc1, 0x3c, 0xb3, 0x5f, 0xcc, 0x1d, 0xd0, 0x88, 0xa7, + 0x79, 0x03, 0x5a, 0x6f, 0xe6, 0x75, 0x7f, 0x9f, 0xb6, 0x17, 0x01, 0x6d, 0x72, 0x87, 0xff, 0xf5, + 0x61, 0xde, 0x77, 0x60, 0x53, 0xe2, 0x0f, 0x02, 0x5a, 0xe1, 0x93, 0x1d, 0x4b, 0xc0, 0xcc, 0xa7, + 0x46, 0x14, 0xe1, 0x08, 0xb0, 0xe3, 0x85, 0xba, 0x49, 0xe4, 0x27, 0xeb, 0x12, 0xcc, 0x61, 0x1b, + 0xca, 0xed, 0x48, 0xf9, 0xb2, 0x38, 0x7b, 0x45, 0x9b, 0x41, 0xa8, 0x2a, 0xd6, 0xda, 0x86, 0x7a, + 0x55, 0xc1, 0xe2, 0xe8, 0xc5, 0x5a, 0x38, 0xa1, 0x7d, 0xa7, 0x27, 0xb6, 0x4f, 0xec, 0x23, 0x44, + 0xcb, 0x5b, 0xfe, 0xf3, 0xd0, 0xa6, 0x41, 0xb2, 0x1a, 0xac, 0x36, 0x25, 0xb8, 0x7f, 0xf8, 0xcb, + 0x5a, 0x97, 0xa6, 0xce, 0x96, 0x7a, 0xe2, 0x94, 0x3d, 0xe4, 0xce, 0xaa, 0x30, 0xe3, 0x73, 0x0a, + 0xf9, 0xd5, 0xfe, 0x61, 0xd4, 0xf6, 0x6c, 0x6a, 0xa6, 0x05, 0xf4, 0x5d, 0x7d, 0x64, 0x93, 0x12, + 0x68, 0xdd, 0xe8, 0xb4, 0x47, 0x4f, 0x10, 0x27, 0xa4, 0x93, 0x72, 0xc8, 0xce, 0x26, 0x4e, 0x79, + 0xcd, 0x49, 0x6a, 0x9b, 0xe8, 0x2b, 0x94, 0x78, 0xfd, 0xb4, 0x66, 0x90, 0x32, 0xf0, 0x89, 0x23, + 0x95, 0xd6, 0x37, 0xc6, 0x7b, 0x64, 0xd6, 0xf6, 0xcf, 0x87, 0x28, 0x26, 0x6b, 0x87, 0x54, 0xa4, + 0xbf, 0xd7, 0xb0, 0x89, 0x12, 0x6b, 0x7c, 0xad, 0x1b, 0xb5, 0xf2, 0xa4, 0x6c, 0x79, 0x24, 0x87, + 0x78, 0xdf, 0x79, 0x88, 0x7b, 0xa1, 0xd6, 0xea, 0xa2, 0x9e, 0x8e, 0x7a, 0xb3, 0x78, 0x60, 0xca, + 0xbc, 0x37, 0x4d, 0x99, 0xd9, 0xf6, 0x3a, 0xc2, 0xf1, 0x92, 0x6c, 0x6d, 0x69, 0xba, 0x9a, 0x50, + 0xd6, 0xe9, 0xff, 0x4c, 0x59, 0x71, 0x5d, 0x16, 0x4e, 0x7e, 0x97, 0x73, 0xe0, 0x26, 0x6a, 0x36, + 0x8b, 0x7b, 0xba, 0x9d, 0xc2, 0xa3, 0x29, 0xb5, 0x55, 0xe9, 0xcb, 0xb4, 0x55, 0x8b, 0xa7, 0xf9, + 0xda, 0xcb, 0x1f, 0xb3, 0x26, 0xd6, 0x9e, 0x26, 0xbe, 0xd6, 0x93, 0x52, 0xb4, 0x76, 0xe3, 0x5f, + 0x7a, 0x66, 0x23, 0xc5, 0xfe, 0x02, 0xed, 0x5a, 0xed, 0x5a, 0x5e, 0x5a, 0x69, 0x49, 0xaf, 0xb6, + 0x28, 0x7d, 0xe4, 0x49, 0x20, 0x9b, 0x52, 0xd3, 0x63, 0x68, 0x97, 0x8e, 0xbd, 0xf7, 0x7b, 0xb4, + 0x0f, 0x44, 0xe9, 0x43, 0xe9, 0x47, 0xab, 0x59, 0x57, 0x46, 0xee, 0x6d, 0xdd, 0x38, 0x6f, 0x30, + 0xfa, 0x09, 0xbf, 0x59, 0xd2, 0x30, 0xa5, 0xd7, 0xa4, 0x66, 0xd5, 0x3a, 0x35, 0xcd, 0xd5, 0x43, + 0x36, 0xbe, 0x65, 0x36, 0xe7, 0x25, 0x3f, 0xa0, 0x91, 0x9d, 0xc2, 0xff, 0xf9, 0x1a, 0x1d, 0xed, + 0x85, 0x6a, 0x5b, 0x6b, 0x2f, 0x8d, 0x59, 0x91, 0x86, 0x2d, 0x31, 0x23, 0xfe, 0x16, 0x46, 0x4f, + 0xc5, 0x23, 0xdb, 0xd6, 0x76, 0xc9, 0xab, 0x23, 0x7d, 0x91, 0x07, 0xd7, 0x72, 0xde, 0x2b, 0xc9, + 0x9b, 0x27, 0x9d, 0x09, 0x1f, 0xb3, 0xf0, 0xbb, 0x42, 0xef, 0x47, 0xef, 0xaa, 0xd0, 0xab, 0xd6, + 0xf4, 0xfb, 0xbc, 0xf5, 0xc8, 0x0f, 0xd7, 0x47, 0x4f, 0xbb, 0xc2, 0xaa, 0xdd, 0x5e, 0x16, 0x4a, + 0x78, 0x64, 0xc6, 0xd3, 0x7d, 0x6d, 0x18, 0xfe, 0xdc, 0xfa, 0xee, 0x93, 0x8a, 0xae, 0x29, 0x31, + 0x92, 0xf8, 0x49, 0xe2, 0xe5, 0xc4, 0xef, 0x5e, 0xca, 0xc9, 0xb5, 0xae, 0x75, 0x63, 0x33, 0xc3, + 0x85, 0xb6, 0xf6, 0x09, 0xad, 0xae, 0xcd, 0x02, 0x5e, 0xde, 0x3b, 0x69, 0x0f, 0x17, 0xc5, 0x6c, + 0x6d, 0x1b, 0xe6, 0xdd, 0x1e, 0x33, 0x2b, 0x61, 0x94, 0x4f, 0x90, 0x9a, 0x4f, 0xf0, 0x27, 0x4f, + 0xb5, 0x6f, 0x14, 0xed, 0x09, 0x17, 0x45, 0x6d, 0xaa, 0x1b, 0x73, 0x88, 0x7e, 0x41, 0xb8, 0xec, + 0x93, 0xa2, 0xa7, 0xb5, 0x12, 0x34, 0x8c, 0xa0, 0x36, 0x80, 0xfa, 0x73, 0x59, 0xbf, 0x0a, 0xc9, + 0xe7, 0xe8, 0x2e, 0xe8, 0x53, 0xf4, 0x2b, 0xd2, 0x3a, 0x5a, 0x53, 0x05, 0xbb, 0x35, 0x9d, 0x58, + 0x9c, 0xcd, 0x53, 0x87, 0x63, 0xd7, 0xc8, 0xab, 0x2d, 0x47, 0xd2, 0x27, 0xde, 0xb0, 0x86, 0xa4, + 0x69, 0x4d, 0xd9, 0xb1, 0xa3, 0xf9, 0xcc, 0xa8, 0xa3, 0x1d, 0x76, 0xec, 0x01, 0x82, 0xeb, 0xf4, + 0x96, 0x92, 0xb7, 0xab, 0x28, 0xf7, 0xe7, 0xe5, 0x4f, 0xab, 0x93, 0xf8, 0xfe, 0xa9, 0xf8, 0xee, + 0xe9, 0xea, 0xf5, 0x2c, 0x53, 0x4b, 0x58, 0xf3, 0x43, 0x9b, 0x96, 0x57, 0xe3, 0x42, 0xad, 0x1b, + 0xff, 0xe9, 0xd7, 0xd8, 0x17, 0x28, 0x15, 0x1c, 0xf4, 0xdd, 0x36, 0xe9, 0x2a, 0xca, 0x3f, 0xbf, + 0x96, 0x9e, 0xf9, 0x27, 0x5e, 0x12, 0x9d, 0x8c, 0x52, 0xa7, 0x8c, 0xbd, 0x5a, 0x59, 0x38, 0x6f, + 0x4d, 0x3a, 0x2f, 0x69, 0x6b, 0xea, 0x4d, 0x57, 0x05, 0xa4, 0x0a, 0xc1, 0xed, 0x51, 0x1e, 0x48, + 0x72, 0x2c, 0x16, 0xe2, 0x54, 0x03, 0x81, 0x9f, 0x37, 0x9e, 0x4b, 0xf9, 0x22, 0xf7, 0xba, 0x90, + 0x07, 0xa8, 0x15, 0x24, 0xdb, 0xd1, 0x66, 0x71, 0x41, 0xbe, 0x87, 0x7e, 0x2d, 0xfc, 0x5b, 0x40, + 0xde, 0xc6, 0x89, 0x42, 0x39, 0xc7, 0x2f, 0xb0, 0x5c, 0x3e, 0xa1, 0x47, 0x59, 0xc8, 0x73, 0xab, + 0xfb, 0x88, 0xdf, 0xd0, 0x29, 0x4a, 0xe9, 0x7d, 0xa0, 0x75, 0x7b, 0xfe, 0x13, 0xfb, 0x3f, 0xe3, + 0x3d, 0x2b, 0x6f, 0xe9, 0x5c, 0xb5, 0x6a, 0x65, 0xcf, 0x45, 0x77, 0x93, 0x54, 0x4d, 0x3c, 0xc1, + 0xf3, 0xc2, 0xe4, 0x62, 0xcf, 0xca, 0x75, 0x93, 0x20, 0x39, 0x2b, 0x24, 0xc9, 0xe6, 0x5b, 0xf0, + 0xd9, 0x08, 0xc9, 0xda, 0x7f, 0xc7, 0xfb, 0x53, 0xa2, 0xa2, 0xef, 0x77, 0x2f, 0xef, 0x5e, 0xf9, + 0x0f, 0xdd, 0x30, 0x75, 0x15, 0xd4, 0xd4, 0x7a, 0x6b, 0xbc, 0xf4, 0x5b, 0xcd, 0xbf, 0x33, 0xf9, + 0xb7, 0x8a, 0x7f, 0xaf, 0xe6, 0x5f, 0xaf, 0x17, 0x94, 0xe9, 0x4a, 0x53, 0xeb, 0xf7, 0xe9, 0x56, + 0x53, 0x5b, 0x5b, 0x5b, 0x95, 0x7e, 0xb8, 0xfa, 0x82, 0x6d, 0x20, 0x39, 0x67, 0xec, 0x25, 0x67, + 0x15, 0x43, 0xb2, 0x7e, 0x71, 0xce, 0xde, 0xd1, 0xba, 0xb8, 0xe3, 0xe2, 0x7e, 0x23, 0xe1, 0xf4, + 0xec, 0x93, 0x60, 0xfe, 0x16, 0x59, 0x1c, 0x76, 0xfc, 0xbd, 0x05, 0x2e, 0x99, 0xd6, 0xcf, 0x30, + 0x17, 0x29, 0x73, 0x48, 0x2f, 0xaf, 0x7d, 0xf0, 0xfe, 0x57, 0x33, 0x79, 0x1e, 0xff, 0xea, 0x9d, + 0xa7, 0xb5, 0x7b, 0x1b, 0xc5, 0xde, 0xd0, 0x7b, 0x2f, 0xdc, 0x79, 0x5a, 0xfb, 0x7c, 0xe4, 0xde, + 0xf1, 0x76, 0xc5, 0x75, 0x0f, 0x36, 0x8a, 0x9d, 0xa7, 0xf7, 0x6a, 0x3b, 0x4f, 0x17, 0x78, 0xf2, + 0x73, 0xd2, 0x3f, 0xca, 0xe1, 0x39, 0x3b, 0x4f, 0x6b, 0x2f, 0xb2, 0xf3, 0xb4, 0x76, 0xc2, 0xce, + 0x53, 0x47, 0x4b, 0xdc, 0x31, 0x7e, 0xaf, 0xa9, 0x6a, 0x43, 0xab, 0x26, 0x7d, 0x92, 0xd4, 0xa4, + 0xb4, 0x7c, 0x5a, 0x08, 0x69, 0x5d, 0x55, 0x71, 0xa0, 0x35, 0x6b, 0x75, 0x76, 0x43, 0x49, 0xdc, + 0x94, 0xf5, 0xe3, 0xeb, 0x24, 0xbf, 0x95, 0x35, 0xe4, 0x99, 0xda, 0x61, 0x57, 0x24, 0x63, 0xe2, + 0x47, 0xa9, 0xd4, 0xb5, 0x6c, 0x51, 0xb9, 0x17, 0xbb, 0xc8, 0x3f, 0xbb, 0x75, 0x00, 0x5f, 0x5e, + 0x89, 0x96, 0xd0, 0xae, 0xf5, 0xef, 0x27, 0x48, 0xf7, 0x9f, 0x4f, 0x3e, 0x3d, 0x13, 0xc1, 0x56, + 0x1c, 0x25, 0xc9, 0x00, 0xfd, 0x9e, 0xe5, 0x34, 0xf9, 0x88, 0xe1, 0xed, 0x8b, 0xeb, 0xf8, 0xd9, + 0x84, 0xcf, 0x87, 0x16, 0x97, 0xf1, 0xb3, 0x1c, 0xeb, 0xe1, 0xbb, 0x3e, 0xa6, 0xf2, 0x9d, 0x0e, + 0xae, 0x7d, 0x59, 0x6d, 0xc9, 0x94, 0x9d, 0x17, 0xbb, 0x69, 0x71, 0x3f, 0xfb, 0x3e, 0xa0, 0xb7, + 0x58, 0x6c, 0xb1, 0x96, 0xcf, 0x16, 0x5b, 0xcc, 0xf7, 0x68, 0xac, 0x89, 0xef, 0x56, 0xf6, 0x82, + 0x10, 0xe1, 0xe7, 0xa5, 0xb1, 0xf6, 0xce, 0x16, 0x7e, 0x5a, 0x16, 0xed, 0x53, 0x3b, 0xa8, 0x2c, + 0xd4, 0xcb, 0x26, 0xd1, 0x5d, 0x41, 0x3d, 0x5e, 0x84, 0xf4, 0x74, 0xab, 0xe4, 0xff, 0x4b, 0x19, + 0x41, 0x2d, 0x5e, 0x49, 0xa8, 0xad, 0x5a, 0x6c, 0x99, 0xda, 0xa4, 0x3d, 0x29, 0x6a, 0x3d, 0x3d, + 0x05, 0x36, 0xb1, 0x3f, 0x7f, 0xd4, 0x3d, 0x95, 0x01, 0xf6, 0x84, 0x43, 0x6b, 0x7e, 0xaf, 0x61, + 0x4e, 0x3a, 0xb1, 0xc6, 0xa5, 0x24, 0xa6, 0xf8, 0xd1, 0xb6, 0x2e, 0xe2, 0x94, 0x76, 0xd5, 0x22, + 0x72, 0x90, 0x6d, 0xe2, 0x27, 0x89, 0x1d, 0xc8, 0x7a, 0xf5, 0x49, 0x0e, 0x3b, 0x02, 0xd9, 0x93, + 0xbc, 0x68, 0xdd, 0x84, 0xf4, 0x56, 0x92, 0x19, 0x50, 0x45, 0x3e, 0x60, 0xee, 0x7f, 0x95, 0xbc, + 0xd7, 0x35, 0x7c, 0x94, 0xf5, 0x7d, 0x37, 0xfa, 0x6a, 0xda, 0x4b, 0x1f, 0x54, 0xc5, 0x2b, 0x72, + 0xa5, 0xfc, 0xd8, 0x7c, 0xb6, 0x56, 0x40, 0xda, 0x44, 0x9a, 0xd3, 0x14, 0x1f, 0xef, 0x84, 0x4e, + 0x5e, 0x57, 0xc7, 0xbf, 0x01, 0x0f, 0xcc, 0x3e, 0x97, 0xda, 0x1a, 0xb9, 0x6f, 0x2a, 0x59, 0x41, + 0xe4, 0xef, 0x6f, 0x2b, 0xdb, 0x2a, 0x0a, 0xd9, 0x2b, 0x4a, 0x7a, 0xce, 0xc0, 0x25, 0xb9, 0x98, + 0x36, 0xa1, 0xcb, 0x1d, 0x37, 0x92, 0xdf, 0x33, 0xce, 0xdb, 0xa8, 0x95, 0x60, 0xc1, 0xdc, 0xfd, + 0x34, 0x93, 0x09, 0x8a, 0x76, 0x2f, 0x23, 0x09, 0x14, 0x1c, 0x5e, 0xe6, 0x8a, 0x1b, 0x32, 0xa9, + 0xe7, 0x8c, 0x4f, 0x6d, 0xd7, 0x52, 0xdb, 0x29, 0x75, 0x7f, 0x70, 0x38, 0xea, 0x8a, 0xeb, 0x33, + 0x69, 0xbf, 0x37, 0x3e, 0xad, 0xa4, 0xa5, 0x95, 0x28, 0x6d, 0x2b, 0x7d, 0x7b, 0x11, 0x53, 0xe2, + 0xba, 0x4c, 0xea, 0x1b, 0x2f, 0x4c, 0xad, 0xba, 0xd9, 0x83, 0xac, 0x2d, 0x2e, 0x67, 0x52, 0xfd, + 0x9d, 0x6a, 0x8d, 0x4b, 0x99, 0xb7, 0x5b, 0xb2, 0x79, 0x58, 0x13, 0xcc, 0x69, 0x29, 0xcf, 0x4a, + 0x97, 0x84, 0x61, 0x85, 0x1e, 0x5b, 0x10, 0x62, 0xa8, 0x4a, 0x39, 0xf5, 0x52, 0xb5, 0x1c, 0xe3, + 0x0c, 0x58, 0xaa, 0x2e, 0x13, 0x16, 0x57, 0x8b, 0xcc, 0x44, 0x8f, 0x0a, 0xd7, 0x24, 0xc2, 0x7e, + 0x28, 0xca, 0x0e, 0x2d, 0xa3, 0x3d, 0x28, 0xc9, 0x08, 0x9f, 0x17, 0x65, 0xe4, 0xba, 0x09, 0xb3, + 0x4e, 0xbc, 0xe8, 0x8b, 0x06, 0xed, 0xfc, 0xb8, 0xec, 0xb7, 0x7b, 0xc4, 0x37, 0xae, 0x1b, 0xcc, + 0xf4, 0xba, 0x0d, 0xd3, 0xa3, 0x94, 0xac, 0xf0, 0x21, 0x55, 0xb8, 0xf0, 0xd9, 0x26, 0xf2, 0x68, + 0x5e, 0x25, 0x31, 0xdf, 0x7f, 0x82, 0x5f, 0x77, 0x75, 0x74, 0x74, 0xae, 0x58, 0xd9, 0x9d, 0xe5, + 0xd6, 0xd5, 0x57, 0x57, 0xce, 0x1c, 0xcf, 0xa3, 0x27, 0x26, 0x11, 0x1c, 0x7a, 0xd6, 0x2e, 0x48, + 0x86, 0x9e, 0xd2, 0x4f, 0x33, 0xdf, 0x8e, 0xcf, 0x5b, 0xf1, 0xba, 0x03, 0x92, 0x37, 0xa8, 0xa2, + 0xe8, 0x04, 0xe8, 0x3e, 0x80, 0xe4, 0x6c, 0x0b, 0xde, 0x4f, 0x6a, 0xef, 0x1f, 0x6a, 0xf7, 0xcf, + 0x09, 0x56, 0xbc, 0x9f, 0xc1, 0xd4, 0xc5, 0x78, 0xff, 0x54, 0x9c, 0x51, 0x2c, 0xfe, 0xb5, 0x2c, + 0x5d, 0xac, 0x94, 0x2b, 0xc1, 0xce, 0xd5, 0x4a, 0xcb, 0x4a, 0xde, 0xc9, 0x16, 0xbc, 0x99, 0x6a, + 0x86, 0x8e, 0xce, 0xd5, 0xab, 0xa0, 0x6b, 0xe9, 0xe2, 0x55, 0xd0, 0xda, 0xf6, 0x37, 0xb3, 0x83, + 0xcd, 0x6d, 0x75, 0x17, 0x1e, 0x2e, 0x8c, 0x5c, 0xa3, 0x2b, 0xf7, 0x8c, 0x53, 0xa6, 0xfe, 0xbe, + 0x89, 0x3c, 0xbb, 0x5c, 0xf0, 0xec, 0x53, 0xe9, 0x19, 0xa2, 0xd4, 0xed, 0x62, 0x86, 0x08, 0x5b, + 0xa0, 0xcd, 0x10, 0xcd, 0x6a, 0xf9, 0xe6, 0xfc, 0x7a, 0x56, 0xdf, 0x97, 0xf3, 0xeb, 0x59, 0x4b, + 0x26, 0xf2, 0xeb, 0x1b, 0x5a, 0xbe, 0x8a, 0x5f, 0xcf, 0x6a, 0x9d, 0xc8, 0xaf, 0x67, 0xa9, 0xe9, + 0xd2, 0x73, 0x52, 0xc5, 0x23, 0xf7, 0x8e, 0xe3, 0xd7, 0x73, 0xe2, 0x7d, 0x13, 0xf8, 0xb5, 0x3d, + 0x97, 0x5f, 0x2b, 0xf9, 0x59, 0xea, 0x22, 0xfd, 0x56, 0xd3, 0x7f, 0xfa, 0x35, 0x4b, 0x73, 0xfc, + 0x49, 0x85, 0x9e, 0xcc, 0x29, 0x84, 0xcb, 0x2e, 0x08, 0xe9, 0x48, 0x9f, 0xa8, 0x99, 0xf6, 0xc9, + 0xd9, 0x6b, 0x3b, 0xb8, 0x55, 0xae, 0x56, 0x02, 0x15, 0x61, 0xe4, 0x2b, 0xfb, 0x94, 0xe9, 0x50, + 0x3f, 0x2f, 0x71, 0x95, 0x0f, 0xea, 0xa3, 0x65, 0x58, 0x7f, 0x98, 0x3c, 0xf4, 0x39, 0x96, 0x83, + 0x85, 0x63, 0x23, 0x22, 0x64, 0x2c, 0xa2, 0x5a, 0xfc, 0x1f, 0x80, 0x8d, 0x9f, 0x5f, 0xd6, 0x72, + 0xbe, 0x9c, 0x3d, 0xe9, 0xd2, 0xd5, 0xec, 0x8c, 0x94, 0x77, 0xcb, 0xd5, 0xce, 0xe9, 0xd0, 0xcb, + 0x76, 0x5a, 0x95, 0x87, 0xf6, 0xe6, 0xb5, 0xf8, 0x4f, 0xa6, 0xce, 0x54, 0xb4, 0xb0, 0xae, 0x64, + 0xa6, 0x55, 0x69, 0x3a, 0xaf, 0xb4, 0x47, 0xba, 0xca, 0x0f, 0x71, 0xf2, 0x12, 0x2c, 0x76, 0xef, + 0xf1, 0xf9, 0x81, 0x5e, 0xfe, 0x16, 0x51, 0x2b, 0xad, 0x1c, 0x4b, 0x73, 0x51, 0x69, 0x15, 0xd0, + 0xcb, 0xe5, 0xe8, 0x2b, 0x96, 0x93, 0x0f, 0x27, 0x5e, 0xbf, 0x76, 0xf9, 0x4f, 0xa5, 0xce, 0x38, + 0xe6, 0xa4, 0xcb, 0xec, 0x49, 0xd1, 0x29, 0x63, 0xa2, 0xdc, 0x69, 0xd9, 0x72, 0x41, 0x94, 0x9b, + 0x3c, 0x94, 0x5b, 0x6e, 0x2e, 0x94, 0x54, 0x6e, 0xf2, 0x29, 0x84, 0xef, 0x94, 0x62, 0xfd, 0x2a, + 0x08, 0x93, 0xcf, 0x69, 0x25, 0xdd, 0x93, 0x53, 0x52, 0x95, 0x28, 0x27, 0xf0, 0x24, 0xa6, 0xa2, + 0x72, 0x3a, 0x1c, 0xdd, 0xd2, 0x9a, 0xf6, 0x8d, 0x6a, 0x71, 0x78, 0x29, 0x28, 0x51, 0x2b, 0x61, + 0x27, 0xd9, 0x1d, 0xc6, 0xd8, 0xe8, 0x64, 0x47, 0xc0, 0x79, 0x49, 0xf4, 0xb8, 0x63, 0x99, 0xb4, + 0x48, 0x55, 0x38, 0xb6, 0x94, 0x63, 0xc3, 0x14, 0x1b, 0xb3, 0x72, 0xc9, 0xd5, 0xec, 0xd1, 0xcc, + 0xce, 0x29, 0x0f, 0x73, 0x88, 0x03, 0x43, 0x40, 0x60, 0x37, 0xf2, 0xfd, 0xd4, 0xde, 0xd0, 0x9f, + 0xaf, 0xae, 0xa2, 0x6f, 0x9c, 0x90, 0xba, 0x6a, 0x99, 0x92, 0x0e, 0x93, 0xd7, 0x40, 0x71, 0xd2, + 0x65, 0x5c, 0x9f, 0x2b, 0xb9, 0x89, 0x96, 0xa3, 0xf6, 0xca, 0xfa, 0x21, 0x5d, 0xc2, 0x94, 0xdd, + 0x53, 0x92, 0x91, 0x21, 0x51, 0xe4, 0x40, 0x2a, 0xc7, 0x23, 0x7b, 0x1d, 0xb7, 0xe7, 0x44, 0x65, + 0xcd, 0xb3, 0x30, 0x43, 0x7d, 0xdb, 0x28, 0xec, 0x92, 0x7e, 0x28, 0x84, 0x42, 0xe4, 0xc6, 0x38, + 0xde, 0x61, 0x7e, 0xc0, 0x0d, 0xf3, 0xe8, 0xd9, 0x9f, 0x84, 0x85, 0xc8, 0xfd, 0xda, 0xa7, 0x06, + 0xa0, 0xd7, 0x7f, 0x02, 0xea, 0xa7, 0x86, 0x20, 0x88, 0xef, 0x3e, 0x7c, 0xf6, 0xe1, 0x73, 0xfd, + 0xec, 0x13, 0x60, 0x53, 0xe6, 0x64, 0x7d, 0xe3, 0x8b, 0xa7, 0x19, 0x61, 0xb9, 0xba, 0xe1, 0x04, + 0x60, 0xdb, 0x47, 0xcf, 0xe5, 0xc4, 0xee, 0x13, 0x33, 0xda, 0xde, 0xfe, 0xb1, 0x43, 0xb4, 0xb2, + 0xdd, 0xb4, 0xad, 0xa2, 0x19, 0x6b, 0x5f, 0x88, 0x70, 0x2e, 0x49, 0xc7, 0x24, 0x83, 0x1c, 0xe3, + 0xcb, 0xc4, 0x74, 0x65, 0x62, 0x16, 0x53, 0x8c, 0xdf, 0x26, 0x62, 0x32, 0xa1, 0xb3, 0x38, 0x74, + 0xa1, 0x08, 0x25, 0x9f, 0xf9, 0xfe, 0x1d, 0x99, 0xb8, 0x6e, 0x45, 0x37, 0x21, 0x75, 0x38, 0x1d, + 0xd2, 0xb3, 0xf7, 0xc0, 0xdd, 0x3c, 0x07, 0x4c, 0x3c, 0xbb, 0x83, 0xb1, 0x94, 0x3f, 0x11, 0x4b, + 0x68, 0xb7, 0x76, 0x80, 0x3d, 0x07, 0xfe, 0x97, 0xe9, 0xc4, 0x89, 0x96, 0xbb, 0x84, 0x37, 0x9d, + 0xbf, 0xf9, 0x28, 0xf5, 0x3c, 0xcd, 0x00, 0xba, 0x3d, 0xb0, 0x0e, 0xc7, 0xd9, 0x90, 0xcb, 0x8d, + 0xa3, 0x2c, 0x58, 0xe1, 0x82, 0x5e, 0x1c, 0x8d, 0x7d, 0x15, 0x4d, 0xd8, 0xf6, 0x87, 0xca, 0xa1, + 0xaa, 0x1f, 0x6c, 0xaf, 0xef, 0xf1, 0x34, 0x43, 0xa5, 0xd2, 0x2c, 0x46, 0xe0, 0x6d, 0xf5, 0x6f, + 0xad, 0x53, 0x66, 0x3b, 0x1a, 0x98, 0x32, 0x4e, 0x92, 0x6e, 0x1a, 0xed, 0x89, 0x07, 0x7b, 0x80, + 0x63, 0xe7, 0x33, 0xdf, 0x8b, 0xf2, 0x09, 0x31, 0xec, 0xed, 0xdf, 0x09, 0x6d, 0x89, 0x74, 0x9c, + 0x9b, 0xe2, 0xea, 0x95, 0x06, 0x87, 0x4f, 0x91, 0x39, 0x64, 0x53, 0xe0, 0x1a, 0x17, 0x5c, 0x35, + 0x17, 0xb2, 0xa3, 0xf5, 0x00, 0x52, 0x69, 0xfd, 0x7d, 0xaf, 0x70, 0xd9, 0x6f, 0xe2, 0x28, 0xf7, + 0x61, 0x4d, 0x62, 0x94, 0x5b, 0x5c, 0x73, 0x54, 0x4b, 0x66, 0x7c, 0xeb, 0xdb, 0x9e, 0x82, 0x7a, + 0xd4, 0x2d, 0x2a, 0xc5, 0xd8, 0x7e, 0x9e, 0xbf, 0xc5, 0x90, 0xea, 0xfc, 0x27, 0xb5, 0x72, 0xf6, + 0x29, 0x8d, 0x69, 0x08, 0x49, 0xb7, 0x91, 0x94, 0x2b, 0xe8, 0x6b, 0x8b, 0xef, 0xa7, 0x4b, 0xf6, + 0xf8, 0x60, 0x01, 0xaa, 0x21, 0xf3, 0x39, 0x34, 0x82, 0x9a, 0xd0, 0x4d, 0xa8, 0x5b, 0x2e, 0x0e, + 0x3c, 0x0b, 0x8b, 0x50, 0xbf, 0x59, 0x84, 0xad, 0xbd, 0x09, 0x63, 0x0c, 0x50, 0x77, 0x43, 0x3f, + 0x04, 0x20, 0x88, 0xf1, 0xb4, 0x9e, 0x42, 0xfb, 0xe2, 0xfa, 0x60, 0x09, 0xfe, 0x26, 0xa0, 0x2b, + 0x0e, 0x3d, 0x76, 0x2e, 0xeb, 0x35, 0x47, 0x50, 0x59, 0x0a, 0x2a, 0xe6, 0xab, 0xe2, 0xf7, 0x7b, + 0x29, 0x35, 0x3f, 0x25, 0xd0, 0x62, 0x8e, 0xa3, 0x0c, 0xd8, 0xa6, 0xc8, 0x23, 0x09, 0xfa, 0x6a, + 0x45, 0x99, 0x96, 0x1a, 0xfd, 0x5e, 0xc2, 0xff, 0x3e, 0xea, 0x63, 0x4e, 0x6b, 0x7b, 0x78, 0x34, + 0x5a, 0xf6, 0xff, 0x8c, 0x90, 0xb7, 0xde, 0xc8, 0xce, 0x73, 0x23, 0x8e, 0x39, 0x0e, 0xc6, 0x49, + 0xea, 0x21, 0x84, 0x7c, 0x39, 0xa0, 0x25, 0xfa, 0xfd, 0x44, 0x79, 0xa8, 0xe7, 0x5b, 0xdb, 0x13, + 0x9d, 0x07, 0x95, 0x4b, 0xa2, 0x2f, 0x70, 0xaa, 0xad, 0x4a, 0x60, 0xff, 0xee, 0x86, 0xd3, 0x43, + 0x7a, 0x25, 0x90, 0xfe, 0x42, 0x34, 0xdb, 0x4e, 0x27, 0xaf, 0x64, 0x9e, 0xa3, 0xd9, 0xc4, 0xc1, + 0x68, 0xa5, 0xc7, 0x88, 0x56, 0x64, 0x2f, 0xbe, 0xff, 0x8c, 0xac, 0x35, 0xfb, 0x34, 0xd4, 0x37, + 0x1a, 0xb7, 0xb9, 0x70, 0xbc, 0x15, 0xe3, 0xd8, 0x99, 0x06, 0xf9, 0xdb, 0x9e, 0x85, 0xfe, 0x4e, + 0xb3, 0xe8, 0x19, 0xac, 0xd3, 0xaa, 0xad, 0x4a, 0x87, 0x22, 0xb7, 0x8a, 0xf2, 0x52, 0x8f, 0x3a, + 0xa8, 0x67, 0x5f, 0x56, 0x8f, 0x91, 0xee, 0xed, 0x9d, 0x55, 0x0e, 0xce, 0x66, 0x37, 0x72, 0x11, + 0x8f, 0x2d, 0xd4, 0x2d, 0x2d, 0x62, 0x29, 0x53, 0xc1, 0x2b, 0x27, 0x7e, 0xf0, 0x46, 0x76, 0x8e, + 0xed, 0x70, 0xf1, 0x5c, 0x3f, 0x52, 0x0e, 0xca, 0x9b, 0x98, 0xe2, 0x9c, 0x01, 0x5d, 0x4a, 0x17, + 0x4a, 0x3a, 0x9d, 0x23, 0xcc, 0x90, 0xca, 0xac, 0x73, 0x58, 0x11, 0x9e, 0x72, 0x84, 0xc7, 0xda, + 0x7a, 0x02, 0xae, 0x48, 0x6b, 0x7e, 0x76, 0x37, 0x5c, 0x41, 0x2b, 0x15, 0x08, 0x81, 0x95, 0x34, + 0x4e, 0xd6, 0xf5, 0xeb, 0x9c, 0xe0, 0x4a, 0xd7, 0xb6, 0x86, 0x6b, 0xbb, 0x9a, 0x76, 0x75, 0x60, + 0x4d, 0x61, 0x3e, 0xbf, 0x8d, 0x78, 0x68, 0xb9, 0xa3, 0x02, 0xc7, 0x1d, 0xf2, 0x7e, 0x45, 0x4e, + 0xdb, 0xb7, 0xe4, 0xc9, 0x9d, 0x7d, 0x58, 0xef, 0xfc, 0xe2, 0x85, 0xd6, 0x8d, 0x34, 0x13, 0xae, + 0xad, 0x1d, 0xeb, 0xd3, 0x25, 0xdf, 0x30, 0xab, 0xbc, 0x0f, 0xf4, 0x95, 0xd3, 0x91, 0xd6, 0x67, + 0xbb, 0x90, 0xd6, 0x1b, 0xcf, 0x7d, 0x11, 0x67, 0x9f, 0xb2, 0x6a, 0xc5, 0x1c, 0xea, 0x33, 0xb4, + 0x24, 0x16, 0x21, 0x27, 0xaf, 0x2b, 0xaf, 0x80, 0x1a, 0x77, 0x17, 0x38, 0x91, 0x62, 0x28, 0xfc, + 0x4d, 0x37, 0xef, 0x3c, 0x66, 0x48, 0x6a, 0x04, 0x75, 0xd7, 0x1d, 0x14, 0xb2, 0x38, 0x5a, 0x69, + 0x9d, 0x01, 0x05, 0x60, 0x46, 0x2a, 0x2b, 0x51, 0x66, 0xc0, 0x2e, 0xa4, 0x43, 0x9b, 0xd2, 0x88, + 0xe3, 0x68, 0x17, 0xea, 0xbd, 0xbb, 0xc4, 0xb7, 0x2f, 0x4e, 0x70, 0x34, 0x5e, 0xd9, 0x04, 0xbb, + 0x50, 0x6d, 0x39, 0x85, 0xe5, 0xd4, 0x89, 0x12, 0x66, 0x82, 0x38, 0xf3, 0x02, 0x0e, 0xf0, 0x7a, + 0x03, 0x8e, 0x97, 0x0a, 0xa8, 0x5c, 0x9b, 0x1e, 0x39, 0x8a, 0xcf, 0x7f, 0x7a, 0x89, 0x8c, 0x74, + 0x57, 0x41, 0xbb, 0x77, 0x08, 0x0a, 0xcd, 0x2f, 0xbe, 0xc2, 0xbc, 0x9e, 0x52, 0x6d, 0xfb, 0xce, + 0x2e, 0xf0, 0x2c, 0x01, 0x8f, 0x2e, 0xb4, 0x7a, 0x89, 0x24, 0x42, 0x48, 0xb2, 0x6b, 0xf0, 0xb4, + 0x62, 0x9d, 0x2b, 0xe0, 0x41, 0x78, 0x30, 0x0d, 0x43, 0xeb, 0xc6, 0xe8, 0x2c, 0xe1, 0xbf, 0x04, + 0x43, 0x6c, 0x34, 0xe7, 0xc3, 0xb5, 0xaf, 0x67, 0xa8, 0x9d, 0x4a, 0x23, 0xc2, 0x9b, 0x9b, 0xb6, + 0x88, 0xd3, 0x06, 0xd2, 0x69, 0xd5, 0x85, 0xbd, 0xc0, 0x21, 0x5e, 0xa4, 0x2f, 0x3b, 0xd6, 0x5c, + 0xb7, 0x04, 0x44, 0x1c, 0xa5, 0x76, 0x44, 0x10, 0xdb, 0x15, 0x0c, 0x65, 0xa5, 0x6a, 0xcb, 0x96, + 0x42, 0x33, 0x9d, 0xd3, 0x02, 0x30, 0xcb, 0xd1, 0xc2, 0x78, 0x5c, 0x9f, 0x83, 0xeb, 0xbb, 0x5c, + 0xc2, 0xee, 0xb8, 0x57, 0x85, 0xe4, 0x6d, 0x4e, 0x50, 0xb7, 0x88, 0x79, 0x81, 0xff, 0x84, 0x8e, + 0xd9, 0xb1, 0x72, 0x15, 0x7d, 0x59, 0x31, 0x4e, 0xc7, 0x9c, 0xf0, 0x55, 0xc9, 0xc4, 0x24, 0x42, + 0xc7, 0x6c, 0x56, 0x20, 0x99, 0x28, 0x95, 0xa6, 0x99, 0x5f, 0xc3, 0x67, 0x1b, 0xea, 0x9b, 0xa8, + 0x55, 0xae, 0xf5, 0x89, 0xa2, 0xef, 0x81, 0x62, 0x09, 0x55, 0xbb, 0x09, 0xff, 0x41, 0x1a, 0x80, + 0x67, 0x41, 0xc6, 0xc7, 0xa4, 0x94, 0x97, 0x0d, 0x4f, 0x62, 0xf0, 0x4f, 0x39, 0xf8, 0xac, 0x64, + 0x10, 0x09, 0xc7, 0x24, 0x4e, 0xfc, 0x3f, 0xe8, 0x6d, 0x4c, 0xd2, 0x53, 0xd6, 0x4c, 0x24, 0x86, + 0xff, 0x33, 0x7c, 0x2c, 0xeb, 0x24, 0x59, 0x92, 0x93, 0x92, 0x09, 0xf3, 0xc9, 0x22, 0x74, 0x37, + 0x25, 0xe5, 0xd7, 0xa4, 0x0c, 0xd2, 0x67, 0xb2, 0x4e, 0x27, 0xcb, 0x9c, 0x78, 0x8a, 0x44, 0xa9, + 0x75, 0x92, 0x24, 0xfe, 0x63, 0x3e, 0x3a, 0x9c, 0x56, 0xa6, 0x7c, 0x54, 0x22, 0x3e, 0x60, 0x41, + 0xb4, 0x98, 0x3d, 0x00, 0x07, 0xe1, 0x4a, 0x06, 0x54, 0xe6, 0x54, 0x22, 0x89, 0x0c, 0xe2, 0x49, + 0x14, 0x22, 0x63, 0xa9, 0x58, 0xd1, 0x00, 0xfc, 0x57, 0x28, 0xa3, 0x24, 0x14, 0xcb, 0xff, 0xb1, + 0x24, 0x3d, 0x96, 0x0f, 0x9c, 0x0f, 0x61, 0x1e, 0x23, 0xd8, 0x64, 0x2a, 0x06, 0x13, 0xff, 0xbb, + 0x68, 0x89, 0x53, 0x96, 0x45, 0xd1, 0x0c, 0x34, 0xc1, 0x2d, 0x0a, 0xcf, 0x42, 0x24, 0x73, 0xf2, + 0x47, 0xe1, 0x0a, 0x91, 0x42, 0x2f, 0x53, 0x8b, 0xf4, 0x54, 0x8e, 0xa4, 0xe7, 0x84, 0x3a, 0xac, + 0x82, 0x4a, 0x19, 0x95, 0x74, 0x54, 0x36, 0x41, 0xf2, 0x96, 0x28, 0xdc, 0x8c, 0xa0, 0x71, 0xeb, + 0x74, 0x63, 0xd2, 0xb7, 0x30, 0x99, 0x5e, 0x07, 0x3a, 0x51, 0x2e, 0xc3, 0xa1, 0x63, 0xdc, 0xc8, + 0x0c, 0x79, 0x9e, 0xc4, 0xa1, 0x14, 0x97, 0x94, 0x8c, 0x94, 0x0d, 0x91, 0x35, 0x86, 0x17, 0xfe, + 0x4f, 0xea, 0xec, 0x7a, 0x89, 0xfe, 0xb8, 0x2d, 0x5c, 0x20, 0xe6, 0xf9, 0x13, 0x14, 0x11, 0xb4, + 0x02, 0x74, 0x6e, 0x20, 0x15, 0x78, 0x0e, 0x61, 0x49, 0xea, 0x0a, 0x30, 0x37, 0xe1, 0x45, 0x07, + 0x8c, 0xb4, 0x51, 0x46, 0xba, 0x59, 0xa0, 0x10, 0x53, 0x8f, 0x72, 0x22, 0x59, 0xa6, 0x1a, 0xc0, + 0x70, 0x56, 0x57, 0x20, 0x4b, 0x7a, 0x6a, 0x03, 0xe8, 0xb4, 0xee, 0x3c, 0x21, 0xa8, 0xa0, 0x58, + 0x66, 0x1c, 0x33, 0x96, 0x0d, 0x54, 0x1c, 0x42, 0x63, 0xa0, 0x3c, 0x58, 0x8d, 0x95, 0x5a, 0x4b, + 0x84, 0x40, 0xf8, 0xc2, 0x2c, 0x8f, 0xc0, 0x25, 0x69, 0x8c, 0x50, 0xc9, 0x08, 0x80, 0x41, 0x87, + 0x15, 0xe5, 0xc9, 0x7a, 0x9d, 0xc8, 0x89, 0xf9, 0x2c, 0xb2, 0xc8, 0x83, 0x19, 0x64, 0xa2, 0xb1, + 0x93, 0x58, 0x87, 0x11, 0xc3, 0x00, 0xab, 0x48, 0x62, 0x42, 0xac, 0x45, 0x3a, 0xaf, 0xb3, 0xd1, + 0x13, 0xe7, 0x40, 0x14, 0xc9, 0xd4, 0x7c, 0x33, 0xc2, 0x86, 0x18, 0xd7, 0x4b, 0x5a, 0x3b, 0x08, + 0x4f, 0x52, 0xa6, 0x0d, 0x49, 0x4e, 0xcd, 0x75, 0xa5, 0xf3, 0x19, 0xa8, 0x2e, 0xc6, 0x0c, 0x11, + 0x25, 0xe6, 0x3a, 0x85, 0x08, 0x96, 0x45, 0xff, 0x49, 0xd2, 0xa8, 0xce, 0x24, 0x1b, 0xd2, 0x30, + 0x01, 0x5e, 0x58, 0x8a, 0xe1, 0x3c, 0x41, 0xc7, 0x88, 0x04, 0x8d, 0x48, 0xc7, 0xa4, 0x42, 0x22, + 0x21, 0xd0, 0x63, 0xbf, 0xd1, 0x03, 0x96, 0x75, 0x5e, 0x07, 0xc6, 0x24, 0x67, 0xc1, 0x66, 0x8c, + 0x21, 0xa4, 0xdc, 0xfd, 0x32, 0x83, 0xc7, 0x88, 0xfb, 0x14, 0x2e, 0xd3, 0x48, 0x86, 0x3b, 0x57, + 0x4f, 0xd5, 0x30, 0x8d, 0x8f, 0xea, 0xac, 0x46, 0x7a, 0xc6, 0xa6, 0x31, 0x2d, 0x8f, 0x49, 0x16, + 0x8d, 0x36, 0x08, 0x8f, 0x03, 0xf0, 0x30, 0x18, 0xa9, 0x0e, 0xac, 0xfa, 0x3c, 0x22, 0xe5, 0x32, + 0x59, 0x67, 0x34, 0xd0, 0x9f, 0xc9, 0x6c, 0x34, 0x99, 0x0c, 0x26, 0xa3, 0x81, 0x31, 0x97, 0xa4, + 0x9e, 0x42, 0x68, 0xb1, 0xb3, 0x38, 0x29, 0xe6, 0xfb, 0x1c, 0xca, 0x25, 0x8d, 0x7c, 0x75, 0x3a, + 0xae, 0x94, 0xef, 0xf8, 0xdf, 0x90, 0x67, 0x30, 0x62, 0x56, 0x2e, 0x42, 0x67, 0x30, 0x20, 0xc2, + 0xcf, 0x83, 0x89, 0x29, 0x06, 0x32, 0x15, 0x12, 0x2d, 0xeb, 0xc7, 0x80, 0x32, 0x98, 0xc6, 0x2c, + 0x52, 0xbe, 0x65, 0xcc, 0x6a, 0xb2, 0x58, 0xad, 0xf9, 0x16, 0x6b, 0xbe, 0x35, 0x69, 0xd1, 0x99, + 0x0c, 0x06, 0x29, 0x09, 0x36, 0xee, 0x05, 0x9d, 0x04, 0xda, 0x38, 0x19, 0x80, 0xf3, 0x18, 0x86, + 0xaf, 0xd8, 0x72, 0x02, 0x8b, 0xf1, 0x88, 0x91, 0x3a, 0x43, 0xd2, 0xf2, 0x85, 0x15, 0x2c, 0xe7, + 0xb1, 0x0c, 0xfc, 0x33, 0x1a, 0xb0, 0x53, 0xb1, 0x9f, 0x10, 0x17, 0xfa, 0x24, 0x23, 0xd4, 0x9a, + 0x19, 0xc1, 0xf8, 0x67, 0x1a, 0xc3, 0xa4, 0x67, 0xf0, 0xfa, 0xdc, 0xaa, 0x33, 0x90, 0x3d, 0x8a, + 0xb0, 0xeb, 0xb0, 0x65, 0x63, 0x12, 0x53, 0x77, 0x12, 0x2e, 0xa1, 0x07, 0x6e, 0x0f, 0x75, 0x2b, + 0xd6, 0x87, 0x7d, 0x84, 0xc9, 0xcf, 0xe1, 0xf5, 0x17, 0xab, 0x9c, 0x0f, 0x58, 0x38, 0xb5, 0x40, + 0x07, 0xa2, 0xb7, 0xf2, 0x44, 0x5f, 0xd0, 0x24, 0x46, 0x52, 0xca, 0x37, 0x5a, 0xad, 0x16, 0xfa, + 0x4f, 0x3f, 0x63, 0x56, 0xa3, 0x78, 0x46, 0xc8, 0x8c, 0xa6, 0x7c, 0x93, 0x09, 0xf9, 0x4a, 0x52, + 0x97, 0x97, 0x1e, 0x0c, 0x20, 0x0d, 0xe2, 0x48, 0xa2, 0xa6, 0xd0, 0xc0, 0xd7, 0x53, 0x77, 0x60, + 0x55, 0x26, 0x4c, 0x0c, 0xf9, 0x63, 0xdc, 0x1c, 0x3d, 0x95, 0x83, 0x77, 0xab, 0x89, 0x58, 0x12, + 0xf0, 0x30, 0x97, 0x64, 0x42, 0xa1, 0x99, 0xf2, 0x01, 0xf5, 0xf4, 0x28, 0xe8, 0xf2, 0xb1, 0x92, + 0x2f, 0xac, 0x88, 0xc4, 0xb3, 0x98, 0x2b, 0x89, 0xb9, 0x93, 0x56, 0x73, 0xbe, 0xc1, 0x48, 0xdd, + 0x4f, 0x0c, 0x00, 0xa9, 0x46, 0x5a, 0x0b, 0xcc, 0x81, 0x08, 0x09, 0x49, 0x1d, 0x56, 0xaa, 0x43, + 0x78, 0xac, 0xf4, 0xc7, 0x00, 0x5a, 0x09, 0xff, 0x60, 0xf9, 0xd4, 0x6a, 0x33, 0x51, 0x07, 0xf3, + 0xd0, 0x92, 0xd3, 0xfc, 0x15, 0x09, 0x86, 0xc8, 0x8a, 0x01, 0x00, 0xe3, 0x98, 0x55, 0x47, 0x59, + 0x46, 0x31, 0xf9, 0x18, 0x22, 0xc3, 0x8a, 0xf5, 0x89, 0x32, 0x10, 0x88, 0x7c, 0x93, 0x8e, 0x48, + 0xc5, 0xcc, 0xac, 0x97, 0xc6, 0xe3, 0x1d, 0xcc, 0x0a, 0xc7, 0xa4, 0x3c, 0x8d, 0x38, 0xb0, 0x79, + 0x63, 0xd8, 0xbd, 0xb2, 0x95, 0xb2, 0x81, 0x76, 0x21, 0xdc, 0xe2, 0x01, 0x0b, 0x36, 0xe9, 0x46, + 0x91, 0x54, 0x90, 0x3a, 0xb0, 0xeb, 0x64, 0x12, 0x05, 0xf9, 0xdc, 0x11, 0xa2, 0xe3, 0x10, 0xef, + 0x26, 0x03, 0xd6, 0x98, 0x6f, 0xa1, 0x1c, 0x06, 0x0b, 0xa2, 0x26, 0x1f, 0x9b, 0x9a, 0xb4, 0x98, + 0x28, 0xcc, 0xc2, 0xb0, 0xe8, 0x2c, 0x06, 0x62, 0x84, 0x26, 0x1a, 0xc2, 0x44, 0x32, 0x1b, 0xa0, + 0x50, 0xa2, 0xce, 0x05, 0x99, 0x79, 0x03, 0x92, 0x1b, 0xe6, 0x28, 0xa4, 0xe4, 0x66, 0xc6, 0x2d, + 0x96, 0x85, 0xff, 0x93, 0x56, 0x1b, 0x86, 0x58, 0x19, 0x1d, 0xf9, 0xf9, 0xd4, 0x4d, 0xa3, 0x60, + 0x24, 0x7a, 0x67, 0x8a, 0xf8, 0x29, 0x31, 0x30, 0xbd, 0xcc, 0x1c, 0xf0, 0x1c, 0x10, 0x76, 0xbf, + 0x4d, 0x2d, 0xb6, 0x10, 0xb1, 0xd2, 0x03, 0x16, 0x40, 0xbf, 0x56, 0x13, 0x15, 0x66, 0xe5, 0xc2, + 0x18, 0x87, 0x12, 0x33, 0x4e, 0xbc, 0xdf, 0x05, 0xa5, 0x92, 0x26, 0x46, 0x84, 0x80, 0x32, 0x09, + 0x84, 0x61, 0x7a, 0x53, 0x32, 0x5f, 0xb2, 0xe6, 0x8f, 0x5a, 0x27, 0x13, 0x95, 0x08, 0xba, 0xa1, + 0x5e, 0x31, 0xb1, 0xe8, 0xa3, 0x46, 0xeb, 0xb9, 0x24, 0xee, 0xf3, 0x7c, 0xd1, 0xe7, 0x12, 0xb3, + 0x84, 0x24, 0xcc, 0x44, 0x6a, 0xc1, 0x4e, 0xb4, 0x08, 0x28, 0xf2, 0xb9, 0x00, 0x06, 0x27, 0x1f, + 0xdb, 0x66, 0x36, 0x11, 0x7c, 0xf4, 0x6a, 0x36, 0x92, 0x64, 0x43, 0x42, 0xe6, 0x71, 0x7b, 0x37, + 0xb2, 0x23, 0x1a, 0xc2, 0x40, 0x5c, 0x3d, 0x09, 0x92, 0x19, 0x01, 0x28, 0xa5, 0x2c, 0x96, 0x7c, + 0xb3, 0x49, 0xa0, 0x84, 0x31, 0x42, 0x85, 0x12, 0x72, 0x8b, 0xb1, 0x08, 0xa3, 0x80, 0x84, 0xe9, + 0x8f, 0x18, 0x1b, 0x70, 0xcf, 0x98, 0x05, 0xb3, 0x21, 0xde, 0x04, 0xd7, 0x60, 0x0a, 0x86, 0x25, + 0x5f, 0xe0, 0x93, 0xea, 0x66, 0x6c, 0x98, 0x0c, 0x58, 0x2a, 0x85, 0x98, 0xe8, 0x15, 0x6f, 0x24, + 0x43, 0x25, 0x66, 0xa1, 0x98, 0xf9, 0x5e, 0x98, 0x4a, 0xc3, 0x40, 0xcf, 0xdc, 0x12, 0x5b, 0xa3, + 0xe3, 0x34, 0xf9, 0x9c, 0xd4, 0x6c, 0x46, 0x06, 0x22, 0xf2, 0x98, 0xf2, 0xc7, 0xb8, 0x8d, 0x5c, + 0xb4, 0x81, 0xa7, 0x90, 0x24, 0x0b, 0x08, 0x76, 0x4e, 0x23, 0x87, 0xa0, 0xb1, 0x10, 0x91, 0xe8, + 0x85, 0x00, 0x3d, 0x07, 0xdf, 0x92, 0x00, 0xd3, 0x9a, 0x4c, 0xdc, 0x0e, 0xba, 0x51, 0x21, 0xf9, + 0x06, 0x02, 0x26, 0x89, 0x24, 0x64, 0xa2, 0xb1, 0x98, 0xcc, 0x2f, 0x30, 0x4a, 0x4c, 0x5d, 0x20, + 0xba, 0xf6, 0x3e, 0xb0, 0x0b, 0xd4, 0x52, 0x37, 0x71, 0x73, 0x4c, 0xf9, 0x49, 0xd3, 0x14, 0xce, + 0x4c, 0xd0, 0x20, 0x24, 0xf8, 0x68, 0x11, 0x37, 0x2b, 0xa1, 0xcc, 0xca, 0xa3, 0x85, 0xd8, 0x01, + 0x6b, 0x0f, 0xb2, 0x2e, 0x29, 0x69, 0x04, 0xa3, 0xa7, 0xe6, 0xa0, 0x64, 0xa1, 0x66, 0x21, 0xb4, + 0x9c, 0x48, 0x32, 0x60, 0x9d, 0x9c, 0x99, 0x01, 0xc8, 0xa7, 0xd2, 0xbf, 0xa3, 0x33, 0x99, 0xf9, + 0x0f, 0xf9, 0x16, 0xd6, 0x81, 0x90, 0x1a, 0x58, 0xe3, 0xd0, 0xb3, 0x7c, 0x93, 0xee, 0x07, 0x27, + 0xf5, 0x96, 0x5e, 0x48, 0x07, 0x64, 0x5d, 0x84, 0x17, 0xea, 0x5b, 0xb3, 0xc9, 0x24, 0x50, 0x64, + 0xe6, 0xc2, 0x92, 0x02, 0x24, 0x2e, 0xdb, 0xac, 0x93, 0xc6, 0x58, 0x9c, 0xe2, 0x30, 0x30, 0x0a, + 0xae, 0x87, 0x20, 0x3d, 0x84, 0xe3, 0x40, 0xd6, 0x34, 0x17, 0x6d, 0x28, 0xa3, 0xc2, 0x04, 0x3a, + 0x22, 0x77, 0x73, 0xfe, 0x98, 0xe9, 0x4a, 0x33, 0x41, 0x60, 0x32, 0x1b, 0x90, 0x6f, 0x13, 0xde, + 0xb1, 0x02, 0x06, 0x8c, 0xca, 0x07, 0xa1, 0x27, 0xe9, 0x91, 0x91, 0x3f, 0x00, 0xd3, 0x05, 0x27, + 0xd5, 0xb1, 0x9e, 0x82, 0xa8, 0x34, 0x33, 0x2c, 0x04, 0x05, 0xe5, 0x36, 0xe9, 0x18, 0x3c, 0x2c, + 0x92, 0x22, 0x2c, 0x49, 0x53, 0x49, 0xbe, 0x15, 0xc4, 0xe0, 0x65, 0xfd, 0x8a, 0x55, 0x2e, 0x1a, + 0x13, 0x03, 0xf0, 0x7f, 0x91, 0x4c, 0xa0, 0x4e, 0x23, 0x89, 0xac, 0x07, 0x81, 0x48, 0x27, 0x11, + 0x12, 0x95, 0x66, 0x26, 0x7a, 0x64, 0x92, 0x34, 0x18, 0x74, 0x04, 0x15, 0xa2, 0xdd, 0xcc, 0xf0, + 0x60, 0x75, 0x49, 0xb3, 0x55, 0x16, 0x8a, 0x19, 0x11, 0x13, 0x48, 0xff, 0x17, 0x5c, 0xcd, 0x8a, + 0x1c, 0x15, 0x06, 0x60, 0x14, 0xb0, 0x50, 0x0b, 0x10, 0x06, 0x84, 0x04, 0x73, 0x23, 0x5b, 0xa5, + 0x77, 0x8b, 0x16, 0x91, 0x6f, 0x36, 0xea, 0xce, 0x4b, 0x05, 0x20, 0x94, 0x48, 0x3d, 0xf1, 0x72, + 0x02, 0xe9, 0x9f, 0x20, 0x5f, 0x87, 0xc8, 0x06, 0xc6, 0x11, 0x21, 0xe8, 0x2a, 0x01, 0x3b, 0x18, + 0xb8, 0x5a, 0xaa, 0x9c, 0x30, 0x93, 0xa7, 0x23, 0xf9, 0x24, 0x40, 0x11, 0x78, 0x42, 0xaa, 0xb2, + 0x98, 0x0d, 0x92, 0x18, 0xdf, 0xd4, 0x9e, 0x87, 0xe1, 0x3b, 0x4c, 0xd9, 0x48, 0xe8, 0x7a, 0x52, + 0x49, 0xd2, 0x90, 0x9b, 0xd3, 0x8d, 0x18, 0x35, 0x14, 0x52, 0xfb, 0xb8, 0x3b, 0x2d, 0x84, 0x64, + 0x03, 0xb2, 0x1c, 0x3d, 0x21, 0x08, 0xab, 0x35, 0x83, 0xa6, 0x0e, 0x60, 0xc7, 0x3d, 0x48, 0xf2, + 0x45, 0x96, 0xd2, 0x10, 0x11, 0x69, 0x9e, 0x97, 0x14, 0xd9, 0x40, 0x18, 0x4e, 0x57, 0x6f, 0x40, + 0x95, 0xc7, 0x90, 0x27, 0x6a, 0x30, 0x14, 0x20, 0x55, 0x14, 0x18, 0x10, 0x45, 0x26, 0x14, 0x83, + 0x3a, 0x59, 0xeb, 0xf5, 0x87, 0xa0, 0x4a, 0x68, 0x24, 0xcc, 0x04, 0x0d, 0x0c, 0x44, 0x81, 0x89, + 0xe8, 0x47, 0x94, 0x81, 0xf9, 0x0d, 0xb2, 0x21, 0x83, 0x62, 0xc4, 0xbe, 0x91, 0x29, 0x88, 0xea, + 0x1b, 0x25, 0x76, 0x2a, 0x34, 0x4e, 0xc6, 0x11, 0xcb, 0x63, 0xee, 0x4d, 0x40, 0x58, 0x64, 0x66, + 0xcc, 0xf9, 0xd8, 0x44, 0x62, 0xaa, 0x0c, 0x4f, 0x52, 0xa7, 0x60, 0xaf, 0xb1, 0x06, 0x80, 0x6f, + 0x05, 0x84, 0x7b, 0x1b, 0xfd, 0xd0, 0xa6, 0x43, 0xd0, 0x89, 0xd1, 0x8e, 0x42, 0x99, 0xc4, 0x13, + 0xd0, 0xe8, 0xc7, 0xe6, 0xe5, 0x25, 0xcd, 0x05, 0x44, 0x3f, 0x04, 0x55, 0x01, 0x37, 0x62, 0xcc, + 0x60, 0xd7, 0xe9, 0x32, 0xf0, 0x21, 0x29, 0x18, 0x74, 0x08, 0x09, 0x0f, 0x27, 0x9d, 0x90, 0xb5, + 0xb2, 0x2c, 0x94, 0xb9, 0x07, 0x71, 0xf4, 0x4b, 0x7a, 0x59, 0xa8, 0x4a, 0xc2, 0x46, 0xc0, 0x24, + 0xe7, 0xa5, 0x4b, 0x19, 0x27, 0x05, 0xd4, 0x3a, 0xd6, 0x4c, 0x64, 0x1c, 0x6c, 0x86, 0x24, 0xaa, + 0x07, 0x06, 0x73, 0x1e, 0x22, 0x3d, 0x69, 0x00, 0xbc, 0x92, 0xa4, 0x2a, 0x10, 0x33, 0x92, 0x1e, + 0x45, 0x43, 0x85, 0xa5, 0x3d, 0xb3, 0x5e, 0x03, 0x8d, 0x05, 0x1b, 0x75, 0x73, 0xd2, 0xa0, 0x20, + 0x9e, 0x0c, 0x88, 0xac, 0x3c, 0x52, 0x2d, 0xf5, 0x06, 0x66, 0x4d, 0x54, 0xae, 0x8e, 0x89, 0x07, + 0xd3, 0xa3, 0x90, 0xcd, 0x07, 0x7e, 0x13, 0xd7, 0x00, 0xdc, 0x0f, 0x5e, 0x46, 0x12, 0xc9, 0x74, + 0x26, 0x30, 0x4a, 0xa6, 0x17, 0xe3, 0x52, 0x12, 0xa8, 0xc1, 0xff, 0xa4, 0x2c, 0xc9, 0x24, 0xf3, + 0xb1, 0x1e, 0x03, 0x56, 0x74, 0x89, 0xc9, 0x9c, 0x67, 0xb0, 0x20, 0xd8, 0xd4, 0x58, 0x26, 0x67, + 0xb6, 0x5f, 0xfe, 0x1b, 0x6a, 0x3d, 0x20, 0x0a, 0x02, 0x4e, 0x6d, 0x4a, 0x1a, 0xdc, 0x54, 0x84, + 0x85, 0xc1, 0xc2, 0xd4, 0x7a, 0xd6, 0xdc, 0x75, 0x79, 0x04, 0xa7, 0x81, 0x01, 0xc3, 0xca, 0x50, + 0x7f, 0xe4, 0x81, 0xa7, 0x4b, 0x32, 0x39, 0x25, 0x49, 0xfc, 0xcb, 0x04, 0x9a, 0x40, 0xdd, 0xa8, + 0x64, 0x65, 0x70, 0xf4, 0x08, 0x16, 0x69, 0xf0, 0x49, 0xe9, 0x4a, 0x10, 0x60, 0xe5, 0xb1, 0xf6, + 0x2f, 0x01, 0x3d, 0x23, 0x40, 0x06, 0x9b, 0xd9, 0x4c, 0x95, 0x20, 0xda, 0x50, 0x31, 0x4c, 0x02, + 0x6b, 0xf7, 0x49, 0xe9, 0x31, 0x94, 0x40, 0x12, 0xab, 0x9f, 0x84, 0x3e, 0x99, 0x46, 0x29, 0xa6, + 0xa6, 0xf4, 0xf8, 0x1f, 0x1b, 0x41, 0xad, 0x02, 0x46, 0x3b, 0x75, 0x63, 0x81, 0x19, 0x5b, 0x8b, + 0x95, 0xa1, 0x7e, 0x70, 0x29, 0x99, 0x47, 0x3a, 0x06, 0x90, 0x47, 0x31, 0x08, 0x31, 0xbb, 0x19, + 0xbe, 0xc5, 0x26, 0x92, 0x48, 0x86, 0x60, 0xeb, 0x69, 0xfc, 0xe0, 0x1f, 0xfe, 0x62, 0x13, 0x2e, + 0xc3, 0x86, 0x17, 0x18, 0x51, 0x8f, 0xa5, 0x38, 0xa3, 0xd9, 0x90, 0x87, 0x55, 0xe5, 0x61, 0x7f, + 0x9a, 0x2f, 0x35, 0x20, 0x54, 0x79, 0xd8, 0x3b, 0x84, 0x33, 0xe2, 0x2f, 0x34, 0x86, 0xff, 0x3b, + 0x50, 0x97, 0x08, 0x29, 0xaa, 0x23, 0x3e, 0x99, 0x34, 0x94, 0xe4, 0x71, 0x0b, 0x30, 0x0f, 0x5f, + 0x88, 0x23, 0x3d, 0x51, 0x85, 0x31, 0x69, 0xb8, 0x94, 0x15, 0x03, 0xac, 0x18, 0x03, 0xf4, 0xac, + 0x93, 0xa2, 0x2c, 0x1a, 0x43, 0xc3, 0x43, 0x13, 0xbd, 0xf7, 0xc1, 0xd5, 0x44, 0xb3, 0xac, 0xd5, + 0xb0, 0x4a, 0xae, 0xa3, 0x2a, 0x74, 0x94, 0x1d, 0x93, 0x63, 0x66, 0x64, 0x51, 0x46, 0x3d, 0x2b, + 0x84, 0x40, 0x65, 0x13, 0x26, 0xf2, 0x90, 0xbc, 0xf2, 0xc6, 0x90, 0x90, 0xa9, 0x6b, 0x0d, 0x64, + 0xb6, 0xca, 0x3a, 0xe2, 0xa0, 0x8f, 0x93, 0xa8, 0x22, 0xc6, 0xc7, 0x8d, 0x4f, 0x12, 0xb2, 0x28, + 0xc7, 0x18, 0x8f, 0xdb, 0x3c, 0x02, 0xd0, 0xc0, 0xca, 0xd6, 0x98, 0xce, 0x6e, 0xc9, 0xe3, 0xe6, + 0x4b, 0xd4, 0x3b, 0x48, 0x5d, 0xd4, 0x43, 0xa0, 0x47, 0xdd, 0x46, 0x53, 0x87, 0x65, 0x42, 0x99, + 0x1d, 0x83, 0x10, 0x65, 0x24, 0xc2, 0xb4, 0xa4, 0x49, 0x5d, 0xbe, 0xac, 0x65, 0xd3, 0xb3, 0xfa, + 0x9f, 0x94, 0xac, 0x48, 0xce, 0x84, 0x30, 0xec, 0x11, 0xec, 0xa0, 0xa4, 0x41, 0xc6, 0xdf, 0xf3, + 0x06, 0xe4, 0x75, 0x20, 0xac, 0x28, 0xcc, 0xbc, 0x05, 0x0a, 0x24, 0x8d, 0x57, 0x30, 0x81, 0xe6, + 0x7d, 0x61, 0x90, 0x91, 0x92, 0xc6, 0x0c, 0x40, 0x97, 0x2e, 0x09, 0x53, 0x99, 0x97, 0x31, 0x66, + 0xd8, 0x28, 0xc1, 0x6e, 0xd5, 0x33, 0xda, 0x24, 0x0a, 0x20, 0x42, 0x07, 0x61, 0xde, 0xde, 0x0b, + 0xcc, 0x01, 0x89, 0x42, 0xb0, 0xfa, 0x31, 0x5d, 0xb1, 0x9e, 0x6d, 0x0f, 0x49, 0x58, 0x23, 0x44, + 0x56, 0xc4, 0xa9, 0x89, 0xe5, 0xd3, 0x40, 0xfc, 0x8b, 0xc1, 0x6a, 0xe6, 0x56, 0xeb, 0x44, 0xd7, + 0x8d, 0x21, 0x24, 0x46, 0x81, 0x20, 0xac, 0x34, 0x5f, 0x62, 0xec, 0x51, 0x8f, 0x19, 0xcc, 0x5f, + 0x18, 0x8a, 0x71, 0x28, 0xe7, 0xb1, 0x4e, 0xa4, 0x97, 0x99, 0x48, 0x08, 0x33, 0xd8, 0xe0, 0x62, + 0x36, 0xe5, 0xb1, 0x1a, 0xea, 0x40, 0xd2, 0x97, 0xf4, 0xa4, 0x29, 0x0d, 0xc0, 0x26, 0x30, 0x08, + 0x21, 0x91, 0x94, 0xce, 0x09, 0x83, 0xf6, 0x73, 0x9d, 0x59, 0xcf, 0xaa, 0x29, 0x42, 0x42, 0xe3, + 0xff, 0x3c, 0x77, 0x12, 0x60, 0x67, 0x15, 0x92, 0xa5, 0xc3, 0x03, 0x4c, 0x53, 0xd5, 0xb6, 0x12, + 0x83, 0x62, 0xa6, 0xc7, 0xba, 0xb7, 0x7e, 0x54, 0x27, 0x23, 0x24, 0x9f, 0x18, 0x92, 0xdc, 0x01, + 0xac, 0x26, 0x8c, 0xa1, 0x39, 0xa7, 0x19, 0x7e, 0xc2, 0x88, 0xa3, 0xa1, 0xa0, 0x67, 0x51, 0xb2, + 0x11, 0xd9, 0xb6, 0x66, 0x6c, 0x4b, 0xf2, 0x47, 0xba, 0x42, 0xc2, 0x5c, 0xda, 0xac, 0xa7, 0x2e, + 0x3f, 0x87, 0x95, 0x8f, 0x1a, 0xf4, 0x4c, 0xdd, 0x64, 0x12, 0x80, 0xd6, 0x7f, 0xd2, 0x93, 0x64, + 0xe1, 0x08, 0x0b, 0x92, 0x06, 0x30, 0x29, 0xf8, 0x64, 0x50, 0x21, 0x91, 0x20, 0xa0, 0x36, 0x33, + 0x3d, 0x32, 0x3e, 0x59, 0x46, 0x9d, 0x45, 0xbb, 0x55, 0xff, 0x99, 0xce, 0xcc, 0xc8, 0xa0, 0x46, + 0x51, 0xc5, 0x25, 0x6c, 0xb9, 0x10, 0x45, 0x20, 0x73, 0x21, 0xd1, 0xa0, 0x33, 0xa0, 0x35, 0x48, + 0x26, 0x71, 0x81, 0x30, 0x09, 0x99, 0xf6, 0xb0, 0x27, 0xce, 0x11, 0x5a, 0x91, 0x6f, 0x08, 0x9b, + 0x5a, 0xaf, 0x49, 0x69, 0x8c, 0x7c, 0x92, 0x14, 0x1a, 0xe2, 0xf8, 0xd8, 0x05, 0x62, 0x26, 0x00, + 0x5b, 0x8f, 0x44, 0x3e, 0xc6, 0x63, 0x08, 0x65, 0x8d, 0x4e, 0x88, 0x27, 0xd6, 0x79, 0x74, 0x34, + 0x26, 0xcf, 0xeb, 0x2e, 0x11, 0x16, 0xa7, 0x81, 0xad, 0x4c, 0xd0, 0x4c, 0xd9, 0x7b, 0xc8, 0xe0, + 0x91, 0x4d, 0x8c, 0x42, 0xe4, 0x9c, 0x68, 0xc0, 0x1a, 0x92, 0x68, 0x5f, 0x22, 0x40, 0x98, 0x12, + 0x49, 0x23, 0x33, 0x91, 0xa1, 0x23, 0x40, 0x65, 0xa6, 0x29, 0xc3, 0x27, 0x84, 0x0e, 0x49, 0x13, + 0x7a, 0xcf, 0x32, 0xcb, 0xd4, 0x11, 0xcf, 0xc7, 0x32, 0xce, 0xb0, 0xe9, 0x0d, 0x6c, 0x3c, 0x27, + 0x11, 0xa9, 0x34, 0x29, 0xc2, 0x9a, 0x11, 0x35, 0x12, 0xad, 0x40, 0xdd, 0xa5, 0x06, 0xf1, 0xc4, + 0x73, 0x00, 0xdc, 0x91, 0x7a, 0xd2, 0x0f, 0xef, 0x26, 0xdd, 0x99, 0x87, 0x20, 0x71, 0x51, 0xe3, + 0x18, 0x76, 0xb5, 0x01, 0xfb, 0xbf, 0x8c, 0x92, 0x19, 0xa9, 0x45, 0xda, 0x1c, 0x0c, 0x02, 0x9d, + 0xcd, 0x8e, 0xdd, 0xc2, 0x0f, 0xfc, 0x3f, 0xa9, 0xa3, 0xf9, 0x25, 0x9a, 0x0b, 0xc0, 0xc6, 0x3d, + 0x0b, 0xe7, 0xd8, 0x24, 0x41, 0x63, 0xdc, 0x60, 0x38, 0x27, 0x12, 0x88, 0x1b, 0xd1, 0x35, 0xab, + 0x22, 0x63, 0xd4, 0x22, 0x03, 0x27, 0x18, 0xd3, 0xe5, 0x1b, 0xf4, 0x4c, 0xf6, 0xac, 0xa2, 0x0c, + 0xc0, 0x5d, 0x38, 0xd6, 0x34, 0xe5, 0x05, 0xa8, 0x3e, 0x3d, 0x76, 0xac, 0x91, 0xb0, 0xca, 0xfd, + 0x64, 0xd0, 0xf1, 0xf8, 0xb1, 0x10, 0x37, 0xd2, 0xa7, 0x2b, 0xd7, 0x6b, 0xed, 0xb3, 0x19, 0x38, + 0x4c, 0xaf, 0xb1, 0x3a, 0x64, 0x72, 0xdb, 0xd8, 0xbc, 0x22, 0x9c, 0x13, 0x6b, 0xa2, 0xa4, 0x32, + 0xf6, 0x29, 0xde, 0xb1, 0x66, 0x34, 0xc5, 0x8c, 0x24, 0xb0, 0xa8, 0xd7, 0x93, 0x72, 0x01, 0xab, + 0x32, 0x54, 0x0f, 0x37, 0x91, 0x86, 0xf5, 0x18, 0x8a, 0x34, 0x06, 0x8a, 0x5a, 0x3f, 0x00, 0x77, + 0x12, 0x13, 0xa0, 0x91, 0x47, 0x48, 0xd2, 0x61, 0x31, 0x94, 0x66, 0xd4, 0x70, 0x39, 0xa5, 0x17, + 0xf0, 0xd3, 0x50, 0xe0, 0xf2, 0x99, 0x0a, 0x90, 0x69, 0x51, 0x94, 0xd1, 0xa8, 0x21, 0x0d, 0x05, + 0x8b, 0x41, 0xa8, 0x2e, 0xdb, 0x68, 0xe4, 0xc9, 0xcc, 0x04, 0x6c, 0x4c, 0x22, 0x88, 0x81, 0x0c, + 0x26, 0xed, 0x06, 0x16, 0xa3, 0xc8, 0xb5, 0xf5, 0xdc, 0x1f, 0x32, 0xcf, 0xdd, 0x51, 0x89, 0x46, + 0xea, 0x15, 0x2c, 0x13, 0x63, 0xf0, 0xa2, 0x28, 0x52, 0xa2, 0x09, 0x30, 0xa3, 0x40, 0x18, 0x10, + 0x7e, 0x29, 0xe1, 0x28, 0x31, 0x25, 0x03, 0xe8, 0x91, 0x81, 0xea, 0x24, 0x31, 0xab, 0x93, 0x4f, + 0x93, 0x29, 0x58, 0xac, 0xde, 0xc8, 0xa0, 0x21, 0x81, 0xa7, 0xfb, 0x99, 0xe8, 0xc7, 0x48, 0x34, + 0x88, 0x20, 0x6d, 0x67, 0x45, 0x98, 0xa7, 0xbc, 0x10, 0x19, 0x04, 0x02, 0x92, 0x03, 0x01, 0x88, + 0xe9, 0x2e, 0xc5, 0xac, 0x3a, 0x8d, 0xc2, 0x25, 0x6d, 0xec, 0xe2, 0xe8, 0xd4, 0x9b, 0x29, 0x00, + 0x8b, 0x31, 0x9e, 0xd7, 0x8a, 0xd2, 0xe9, 0xc5, 0xdc, 0xc9, 0x9d, 0x6c, 0x93, 0xb1, 0x80, 0x27, + 0xa1, 0x84, 0xe8, 0x22, 0xda, 0x32, 0x1a, 0xf0, 0x37, 0x9f, 0x09, 0x96, 0x27, 0x21, 0x68, 0xa4, + 0x51, 0x04, 0x97, 0x4b, 0xa0, 0x5b, 0x75, 0x24, 0x11, 0xc8, 0xa6, 0x24, 0x46, 0xfd, 0x0b, 0xb0, + 0xf2, 0x70, 0x91, 0x69, 0x08, 0x22, 0x3d, 0x8c, 0x22, 0x38, 0x7a, 0xd1, 0x02, 0xbd, 0x68, 0x66, + 0xa1, 0x51, 0x0c, 0x2a, 0xc2, 0xbe, 0x44, 0xb3, 0x33, 0x67, 0x0d, 0x05, 0xd8, 0x48, 0x23, 0x59, + 0xb5, 0x92, 0xc6, 0x76, 0xef, 0xc0, 0x28, 0x69, 0x8c, 0x65, 0x90, 0x44, 0xa0, 0xd2, 0x75, 0xce, + 0x60, 0xa7, 0xb9, 0x10, 0x59, 0x27, 0xd4, 0x77, 0x46, 0xdc, 0x67, 0x04, 0x1f, 0x96, 0x6b, 0xe6, + 0x4e, 0xa3, 0xcc, 0x49, 0xc4, 0xdd, 0x0e, 0xc1, 0xfe, 0x81, 0x45, 0x8f, 0xd6, 0x5a, 0x24, 0x4b, + 0xd2, 0x95, 0x08, 0x21, 0x58, 0x9a, 0x95, 0x26, 0x85, 0x74, 0x34, 0xcd, 0x43, 0xf2, 0x06, 0xb5, + 0x12, 0x3d, 0xb5, 0xf6, 0x73, 0x43, 0x9e, 0x9e, 0x2d, 0x14, 0x21, 0xc2, 0xd7, 0x43, 0x89, 0x24, + 0xda, 0xc5, 0xb3, 0x71, 0x79, 0x06, 0x31, 0x97, 0x64, 0x36, 0x63, 0xeb, 0x6d, 0x42, 0x80, 0xea, + 0x49, 0x01, 0x44, 0x4e, 0xca, 0xc8, 0xc2, 0xe6, 0x19, 0xcf, 0x18, 0x2c, 0x3a, 0xde, 0x01, 0x42, + 0x75, 0x23, 0x20, 0xf9, 0x3a, 0x59, 0x88, 0x12, 0xec, 0x1c, 0x33, 0xf1, 0xe6, 0xf3, 0x04, 0x82, + 0x19, 0xdb, 0x4c, 0xb8, 0xb7, 0xeb, 0x85, 0xc0, 0x32, 0x0a, 0xc1, 0x80, 0x49, 0xce, 0x63, 0x7e, + 0xd6, 0x1a, 0xd8, 0x6c, 0x1a, 0x80, 0xb5, 0xdc, 0x26, 0xc9, 0x44, 0x7d, 0x82, 0xd4, 0x80, 0x45, + 0x14, 0x19, 0x45, 0x52, 0x9a, 0xec, 0xd1, 0xb1, 0x7a, 0xa7, 0xe7, 0xde, 0x1c, 0x35, 0x30, 0x74, + 0x06, 0xc6, 0xd5, 0x59, 0x43, 0x1e, 0x09, 0x3e, 0x31, 0xd1, 0xf4, 0x1c, 0x4d, 0xda, 0x09, 0x63, + 0x12, 0x47, 0x39, 0x77, 0xde, 0xb5, 0x94, 0x10, 0xeb, 0xe4, 0x9b, 0x21, 0x8f, 0x8a, 0xd4, 0x8b, + 0x09, 0x5e, 0x3d, 0x4f, 0x17, 0x12, 0x67, 0x36, 0x92, 0xe8, 0xa7, 0x9f, 0x3c, 0xc1, 0x66, 0xb5, + 0x19, 0xdc, 0x41, 0xb8, 0x54, 0x90, 0x12, 0xb5, 0x8b, 0xe8, 0x5e, 0x68, 0xa0, 0x49, 0x43, 0x31, + 0xd2, 0xb8, 0x98, 0x64, 0x20, 0x6a, 0x20, 0x6d, 0xd5, 0xc0, 0x0d, 0x92, 0xcc, 0x44, 0x69, 0x02, + 0xe9, 0x12, 0x73, 0x62, 0xbd, 0x80, 0xca, 0xac, 0x17, 0x8c, 0x11, 0x90, 0xa2, 0xa8, 0xed, 0x54, + 0x90, 0x11, 0x5b, 0x58, 0x88, 0x39, 0x29, 0x2b, 0x76, 0x8f, 0x18, 0xcb, 0x38, 0x4c, 0x10, 0x7d, + 0x54, 0x87, 0x9d, 0xa2, 0x4c, 0x3a, 0xb6, 0xd7, 0x24, 0x8d, 0x2d, 0xd3, 0xf7, 0x3d, 0x62, 0xa6, + 0xfb, 0x3b, 0x62, 0x7a, 0x0b, 0xad, 0x2c, 0x56, 0x0d, 0x08, 0xa7, 0xdc, 0x0f, 0xa4, 0x05, 0x21, + 0x54, 0x48, 0x7a, 0x14, 0x96, 0x87, 0x15, 0x31, 0x0e, 0xb1, 0xb6, 0x24, 0x57, 0xc9, 0xb3, 0x7a, + 0x46, 0x52, 0x3c, 0x10, 0xa2, 0xe7, 0x11, 0x5b, 0x99, 0x39, 0xf2, 0xf3, 0xa8, 0x5d, 0x18, 0x58, + 0xb7, 0x1e, 0x25, 0xad, 0xc8, 0xc0, 0x19, 0x30, 0x39, 0x99, 0x2d, 0xc4, 0x59, 0x46, 0x0d, 0x45, + 0x18, 0x6a, 0xc2, 0xba, 0x58, 0xe8, 0xc9, 0x62, 0x2a, 0x90, 0x60, 0x4a, 0xc2, 0xa5, 0xda, 0xcc, + 0x3a, 0xb7, 0xd0, 0x24, 0x24, 0x3f, 0x8a, 0x66, 0x83, 0x98, 0x1d, 0x27, 0x68, 0x11, 0x4b, 0xac, + 0x2b, 0xa3, 0x7e, 0x49, 0x6a, 0x83, 0x89, 0x34, 0x3f, 0x33, 0xd1, 0x17, 0xc1, 0x36, 0xc6, 0x4a, + 0x08, 0xf6, 0xfd, 0xff, 0x10, 0x36, 0x0a, 0x69, 0x01, 0x2c, 0x40, 0x05, 0xad, 0x90, 0x4a, 0x66, + 0x64, 0xfd, 0x96, 0x8c, 0x8b, 0x02, 0x73, 0x1e, 0xcf, 0xc5, 0x20, 0xed, 0xf1, 0x04, 0x27, 0x82, + 0x25, 0xb4, 0x56, 0x1e, 0x14, 0x54, 0x12, 0x52, 0x31, 0x81, 0x75, 0x1e, 0xbe, 0x25, 0xc6, 0x5e, + 0x16, 0xac, 0x3c, 0x33, 0xdb, 0x14, 0x8c, 0xe7, 0x3c, 0x26, 0x3c, 0x56, 0xca, 0x71, 0xb8, 0xf1, + 0x7c, 0x07, 0x96, 0x93, 0xc7, 0xa0, 0x1b, 0x48, 0xfa, 0x19, 0x05, 0xd6, 0xa5, 0xff, 0x09, 0x93, + 0x24, 0x31, 0x7b, 0xc2, 0x1d, 0x81, 0x0d, 0x31, 0xa2, 0x36, 0xc3, 0x6a, 0xb5, 0x31, 0x0f, 0xfb, + 0xd0, 0xc6, 0xea, 0x29, 0x15, 0x4f, 0x9a, 0x31, 0x75, 0xce, 0xb7, 0xb0, 0x5c, 0x52, 0x74, 0x09, + 0x78, 0x53, 0x9e, 0x10, 0x68, 0xda, 0x2c, 0x92, 0x00, 0x8c, 0x26, 0x01, 0x79, 0xe4, 0xc9, 0x24, + 0x21, 0xa8, 0x65, 0x49, 0xc3, 0x24, 0x13, 0x0b, 0x71, 0x89, 0x67, 0xf4, 0x41, 0x97, 0x47, 0xbd, + 0x8a, 0xc0, 0x15, 0x50, 0xe9, 0xd8, 0x2b, 0x68, 0x39, 0x14, 0x99, 0x08, 0x63, 0x06, 0x9e, 0x05, + 0xd2, 0x2c, 0x79, 0x69, 0x97, 0x36, 0xe9, 0x49, 0xaa, 0x13, 0xcb, 0x53, 0x33, 0x63, 0x9e, 0x08, + 0xff, 0xb2, 0x3c, 0xee, 0x2d, 0x83, 0x98, 0x1b, 0xd0, 0x31, 0x9b, 0x62, 0xc3, 0x4b, 0x2b, 0x09, + 0x2f, 0x9e, 0xd3, 0x12, 0x04, 0xc0, 0x90, 0x9d, 0x05, 0x93, 0x80, 0x94, 0x24, 0x82, 0x9c, 0xa7, + 0x2b, 0x48, 0x1a, 0xbe, 0x43, 0x56, 0xaa, 0x50, 0xce, 0xc5, 0x10, 0xd3, 0x91, 0xa5, 0x62, 0xe4, + 0xec, 0x66, 0xb2, 0x67, 0x2e, 0x23, 0xea, 0xcf, 0xa3, 0x2a, 0x40, 0x4c, 0xbe, 0x8a, 0x22, 0x5f, + 0xd0, 0xa6, 0x03, 0x31, 0x23, 0xd2, 0x34, 0xe9, 0x28, 0xa8, 0x06, 0x5d, 0x63, 0xd6, 0x00, 0x12, + 0xb9, 0xc9, 0xd4, 0xa0, 0x09, 0xe3, 0x4c, 0x37, 0xe9, 0x75, 0x6c, 0x7c, 0xe0, 0x7f, 0x9d, 0x31, + 0x3d, 0xe7, 0xc0, 0xfa, 0x32, 0x4d, 0x93, 0xd3, 0xf3, 0x79, 0x94, 0x4a, 0xd8, 0x67, 0x3a, 0x46, + 0xbf, 0x8e, 0x75, 0x30, 0xb9, 0x82, 0x94, 0x3f, 0x89, 0x4c, 0xbb, 0x02, 0x23, 0x82, 0x62, 0xe1, + 0xfc, 0x16, 0x42, 0x3d, 0x9a, 0xd3, 0x68, 0x9e, 0xb3, 0x7d, 0x27, 0x0b, 0xaa, 0x02, 0x69, 0x18, + 0xae, 0x60, 0x0d, 0x88, 0x74, 0x29, 0x31, 0x2b, 0x4b, 0x14, 0x48, 0x36, 0xa2, 0x59, 0x0c, 0x14, + 0x93, 0x29, 0xc9, 0xba, 0xf3, 0x77, 0xb4, 0x95, 0x13, 0x36, 0xde, 0x8c, 0x54, 0x60, 0x9e, 0x41, + 0xd2, 0x09, 0xeb, 0x5e, 0x27, 0xec, 0xd7, 0x01, 0x38, 0xc3, 0x1a, 0x81, 0xb6, 0xd4, 0x44, 0x52, + 0x20, 0x89, 0xb0, 0x19, 0x49, 0x9b, 0xb8, 0x5c, 0x16, 0xcb, 0x33, 0x48, 0x2e, 0x05, 0xdc, 0x5c, + 0x32, 0xef, 0x48, 0x61, 0x4e, 0x9a, 0x2f, 0xe3, 0x61, 0x69, 0xd0, 0xd8, 0x0c, 0x88, 0x89, 0x34, + 0x90, 0x5e, 0x24, 0x66, 0x81, 0x85, 0x8c, 0xc9, 0xe5, 0xc0, 0xca, 0xa8, 0x4c, 0x9a, 0xbf, 0x81, + 0xa7, 0x52, 0x68, 0x46, 0x9f, 0xa9, 0xd7, 0x88, 0xe6, 0x98, 0x51, 0xd2, 0x26, 0xcc, 0x92, 0xb2, + 0x5d, 0xe2, 0xd1, 0x6f, 0xd0, 0x56, 0x9d, 0x64, 0x61, 0x76, 0x12, 0x64, 0x1f, 0xd3, 0xb2, 0x82, + 0x98, 0x44, 0x12, 0xfa, 0x11, 0x69, 0xc1, 0xd4, 0x8d, 0x49, 0x59, 0x2c, 0x4b, 0x51, 0xc1, 0x79, + 0x04, 0x96, 0x99, 0x2c, 0x18, 0x9e, 0x81, 0xa0, 0x91, 0xc1, 0x8b, 0x24, 0x84, 0xaf, 0x31, 0x96, + 0x5a, 0xff, 0x0b, 0xb5, 0x94, 0xcc, 0x30, 0xae, 0xe1, 0xe5, 0x38, 0xea, 0xc0, 0x02, 0x8b, 0x30, + 0x38, 0x91, 0xee, 0xcd, 0x82, 0x40, 0x80, 0xc5, 0x0b, 0xd5, 0x48, 0xca, 0x57, 0x7a, 0x81, 0x49, + 0xc7, 0xd3, 0xaf, 0x04, 0xcf, 0x87, 0x82, 0x15, 0xca, 0x49, 0x9e, 0xa0, 0x4e, 0xca, 0x45, 0x3c, + 0x81, 0x43, 0x2e, 0xcd, 0x44, 0x77, 0x60, 0xa9, 0x88, 0x78, 0x1c, 0x50, 0x46, 0x32, 0x88, 0xcf, + 0xd3, 0xcc, 0x00, 0x61, 0x87, 0xd5, 0xcc, 0x6d, 0xa4, 0xd1, 0x73, 0x13, 0xc4, 0x3c, 0xdf, 0x18, + 0x5c, 0x29, 0xb1, 0xd2, 0x21, 0x2c, 0x10, 0x93, 0x01, 0x32, 0x6b, 0x76, 0x74, 0xd1, 0x48, 0xd5, + 0xb1, 0xa9, 0xa2, 0xd3, 0x4b, 0x82, 0x45, 0xbd, 0x2f, 0x38, 0x1d, 0xaf, 0xc1, 0xe9, 0xd8, 0x8a, + 0x46, 0x44, 0x5d, 0x22, 0xa4, 0x9f, 0x18, 0xd5, 0x3a, 0xd6, 0x46, 0xce, 0xd2, 0x24, 0x85, 0x98, + 0x09, 0x7a, 0x0a, 0x84, 0xc1, 0xc0, 0xa3, 0xfe, 0x0b, 0xd1, 0x45, 0x3a, 0x81, 0x94, 0x31, 0xa2, + 0x26, 0x4c, 0x52, 0xa8, 0xa1, 0x5d, 0xaf, 0x2d, 0xff, 0x71, 0x55, 0x7f, 0x26, 0xb6, 0xa3, 0xcd, + 0x7c, 0xd3, 0xc2, 0x0b, 0xdb, 0xc5, 0x69, 0xa1, 0xf4, 0x09, 0xeb, 0x1d, 0x62, 0x8c, 0x4b, 0x64, + 0xbc, 0xd9, 0x98, 0xc6, 0xf5, 0x1a, 0x6b, 0x01, 0xe9, 0x33, 0x9e, 0x71, 0x96, 0x35, 0x7d, 0x9e, + 0x31, 0xc6, 0x42, 0x44, 0x0c, 0x49, 0x2a, 0xff, 0x4f, 0x68, 0xd3, 0x6a, 0x8a, 0x1f, 0x88, 0x75, + 0x45, 0x21, 0x9a, 0x99, 0xbe, 0x25, 0x39, 0x3d, 0x6f, 0x24, 0x94, 0xa0, 0x74, 0xfb, 0xfe, 0x6f, + 0x10, 0x93, 0x74, 0x9a, 0x38, 0xd3, 0x16, 0x2f, 0x35, 0x84, 0x0a, 0x41, 0x28, 0x69, 0x56, 0x8e, + 0x6e, 0x4c, 0xcc, 0x16, 0x53, 0x5d, 0x6f, 0xa3, 0xfa, 0x26, 0x14, 0xec, 0xa4, 0x5c, 0xaa, 0x67, + 0x26, 0x9f, 0x46, 0x33, 0xb7, 0x48, 0xc8, 0xc0, 0x24, 0xa6, 0x96, 0x1e, 0x44, 0xf0, 0x9c, 0xda, + 0xca, 0xa2, 0x36, 0xcf, 0x24, 0xa8, 0x80, 0x12, 0xea, 0xa4, 0xf4, 0xc4, 0xa3, 0x26, 0xc6, 0x7e, + 0x4f, 0x33, 0xbd, 0x5c, 0x65, 0x7a, 0x79, 0x12, 0x04, 0x43, 0x14, 0x1c, 0x8a, 0x19, 0xf4, 0x26, + 0x2c, 0xf1, 0x3b, 0x90, 0x06, 0x55, 0xcc, 0x18, 0x6b, 0x3a, 0x9b, 0xc6, 0xb7, 0xb8, 0xa8, 0x83, + 0x6c, 0x47, 0xa4, 0x17, 0x98, 0x29, 0x2f, 0x9c, 0x95, 0x58, 0xcb, 0xbe, 0x1b, 0xd8, 0x2a, 0x14, + 0xf3, 0x4e, 0x24, 0xc6, 0xf4, 0x20, 0x66, 0x57, 0x39, 0x96, 0xf2, 0xfe, 0x7f, 0x7f, 0xff, 0xdf, + 0xdf, 0xff, 0xdb, 0x7f, 0x5f, 0xc0, 0x39, 0x23, 0xc8, 0xe7, 0xf1, 0x1a, 0xc3, 0x6b, 0x44, 0xbb, + 0x9f, 0xc1, 0xeb, 0x0b, 0xed, 0x79, 0xe2, 0x9d, 0xae, 0xe4, 0x97, 0x3c, 0x53, 0xbe, 0x0f, 0xf1, + 0x3a, 0xf5, 0xe5, 0x79, 0x91, 0x87, 0x48, 0x56, 0x6b, 0x92, 0x7e, 0x3e, 0xa5, 0x9f, 0x51, 0xfa, + 0x39, 0x47, 0x3f, 0xef, 0x42, 0xd2, 0xfa, 0x1e, 0x3d, 0x9c, 0xa0, 0x9f, 0x33, 0xf4, 0xf3, 0x05, + 0xfd, 0xfc, 0x9e, 0x7e, 0xc6, 0xe8, 0xe7, 0x2f, 0x30, 0x60, 0x1d, 0x10, 0xd9, 0xb8, 0x80, 0x53, + 0xf4, 0xf3, 0x07, 0xfa, 0x39, 0xf6, 0x65, 0xf9, 0x3e, 0x04, 0xb0, 0x0e, 0x98, 0xd6, 0x99, 0x24, + 0xa3, 0x31, 0x9b, 0x2f, 0x09, 0x63, 0xa2, 0xde, 0x31, 0x18, 0xcd, 0x3e, 0xd0, 0xf5, 0x39, 0xdf, + 0xc7, 0x30, 0xc5, 0xa8, 0xf5, 0x33, 0xed, 0x39, 0xfd, 0x9e, 0xbe, 0x8f, 0x0a, 0xb0, 0xc7, 0x30, + 0x71, 0xd2, 0x2a, 0x83, 0x55, 0x4b, 0x34, 0x2a, 0x60, 0x1c, 0xe5, 0xb2, 0x41, 0x7e, 0x14, 0x47, + 0xf1, 0xc7, 0xbc, 0xe1, 0xe3, 0x73, 0x32, 0xa1, 0x3e, 0x05, 0xa3, 0xd5, 0x0a, 0xf8, 0x67, 0x3d, + 0x9f, 0x69, 0x4e, 0xb6, 0xe9, 0x63, 0x50, 0x40, 0x1f, 0x68, 0x65, 0xaf, 0xcf, 0x44, 0xfc, 0x84, + 0xd0, 0xcf, 0xe1, 0xb2, 0xf1, 0x01, 0xe9, 0x8b, 0x5b, 0x75, 0x16, 0xf2, 0xb2, 0x21, 0x63, 0xa2, + 0x58, 0x83, 0x78, 0x3b, 0x0b, 0xe7, 0xac, 0x85, 0x13, 0x33, 0x8d, 0x65, 0x30, 0x25, 0x24, 0xf2, + 0x39, 0xad, 0x95, 0xdf, 0x08, 0xb2, 0x9c, 0xaa, 0xfe, 0xf2, 0x95, 0x50, 0x9d, 0xc7, 0x32, 0x4d, + 0x13, 0xa0, 0x3a, 0x8f, 0x00, 0x99, 0x35, 0x74, 0x00, 0xbe, 0x8d, 0x8f, 0x1f, 0xc5, 0x1c, 0x02, + 0xa2, 0x24, 0x06, 0x26, 0x2f, 0x88, 0xcd, 0x82, 0x66, 0x48, 0xd7, 0x33, 0xfa, 0x57, 0x83, 0x75, + 0x01, 0x6e, 0xc7, 0x32, 0xdd, 0x72, 0x46, 0x90, 0x88, 0x56, 0xf8, 0xf9, 0xf4, 0xc3, 0x78, 0x8c, + 0x0a, 0x00, 0xb3, 0x04, 0x95, 0x21, 0x8b, 0xa4, 0xe8, 0xe0, 0x9c, 0xfc, 0x92, 0x86, 0xb4, 0xf3, + 0x4c, 0x3f, 0x4c, 0xc6, 0x59, 0xc2, 0xa2, 0x0c, 0x44, 0x3b, 0xc8, 0xf9, 0x47, 0xd3, 0xa4, 0x41, + 0x94, 0x95, 0x4b, 0xaa, 0xe3, 0xa8, 0xf4, 0x2c, 0xd2, 0xd4, 0x7e, 0x94, 0x33, 0x67, 0x88, 0xaa, + 0xfe, 0x22, 0xa3, 0xb5, 0x74, 0xde, 0x28, 0xcb, 0xb2, 0xf1, 0x5d, 0xf9, 0x33, 0x96, 0xfd, 0x18, + 0x30, 0x66, 0xfc, 0x23, 0x26, 0x38, 0x88, 0xaf, 0xef, 0xc9, 0x7b, 0x30, 0xff, 0x00, 0xbc, 0x8b, + 0x89, 0x8d, 0xe7, 0xac, 0xd3, 0x2d, 0xda, 0x26, 0x82, 0xcc, 0xa2, 0x6e, 0xfa, 0xcd, 0x6a, 0x35, + 0x59, 0x2c, 0x26, 0x0b, 0x6d, 0x96, 0x30, 0x71, 0x80, 0xc9, 0x9a, 0xb4, 0x80, 0x7c, 0x8e, 0xf2, + 0x8d, 0x59, 0x64, 0x0c, 0x1c, 0xb5, 0xe8, 0xf0, 0x97, 0x42, 0xf1, 0x2a, 0x9c, 0x90, 0x59, 0xac, + 0xb2, 0x5b, 0x79, 0xb5, 0xff, 0x9c, 0x15, 0x8c, 0xe7, 0x51, 0xea, 0x19, 0x2d, 0x67, 0xb5, 0x8d, + 0x06, 0x49, 0x6b, 0xa9, 0xe5, 0x62, 0x35, 0x63, 0x95, 0xd6, 0xf3, 0x16, 0x3d, 0x3e, 0x1b, 0xa5, + 0xc3, 0xa8, 0x6b, 0x98, 0xac, 0xb9, 0xa9, 0xce, 0x72, 0x59, 0x03, 0xf0, 0x7f, 0xa3, 0x0c, 0xc6, + 0x82, 0x2d, 0x96, 0xf4, 0x3e, 0x0e, 0x0b, 0x02, 0x60, 0x10, 0x4b, 0xba, 0x63, 0xb4, 0x7e, 0x97, + 0x6f, 0xa2, 0x25, 0x59, 0xfc, 0x3f, 0x6a, 0x02, 0xcb, 0x18, 0x5e, 0x49, 0x93, 0x0e, 0x5f, 0x65, + 0x5a, 0xf8, 0xa2, 0xc6, 0x24, 0x4d, 0x46, 0x0b, 0x6f, 0xe0, 0x30, 0x8d, 0x22, 0xf0, 0x74, 0x8d, + 0x59, 0x0c, 0xa2, 0x9a, 0x24, 0xed, 0xa4, 0xb0, 0xa4, 0x21, 0x17, 0xdb, 0x05, 0x10, 0x66, 0x99, + 0x94, 0x38, 0x18, 0x1f, 0x66, 0xb1, 0xf0, 0x0e, 0x03, 0x0b, 0x66, 0x06, 0xeb, 0x39, 0x8b, 0x51, + 0xe0, 0x8b, 0xeb, 0x4c, 0x9a, 0xf4, 0x54, 0xbc, 0xfc, 0x47, 0xc8, 0xcb, 0xae, 0x74, 0x27, 0x2d, + 0x79, 0xf9, 0xdc, 0x1e, 0x81, 0x1e, 0x83, 0xd8, 0x16, 0x40, 0xcd, 0xa1, 0x82, 0xc5, 0xd2, 0x3a, + 0x2d, 0xd5, 0x9b, 0xf2, 0x2d, 0xc9, 0xfc, 0xc9, 0xbc, 0xd6, 0x39, 0x6e, 0x11, 0xd7, 0xa4, 0x3d, + 0x72, 0x44, 0xd2, 0x04, 0xd8, 0x56, 0x86, 0xca, 0x94, 0xb4, 0x4c, 0x15, 0x9d, 0x45, 0x7f, 0xbc, + 0x00, 0x6e, 0xe2, 0x92, 0xf2, 0x79, 0xe3, 0x82, 0x35, 0xbd, 0x85, 0xc0, 0xa2, 0x81, 0x6e, 0xe0, + 0xfd, 0x07, 0xf9, 0x48, 0x61, 0xf9, 0x32, 0xf1, 0xa5, 0xb3, 0x56, 0x63, 0xbe, 0x40, 0xff, 0xa8, + 0xf5, 0xb2, 0x7c, 0x2d, 0x0b, 0xef, 0x37, 0xa0, 0x5e, 0xa7, 0xd5, 0xed, 0x7c, 0x6e, 0x27, 0xd6, + 0x93, 0x34, 0x49, 0x16, 0xd3, 0x1f, 0x71, 0xa0, 0x58, 0xc4, 0x1e, 0x04, 0x93, 0x06, 0xad, 0x8d, + 0xb7, 0x26, 0x50, 0x95, 0xfc, 0xdf, 0x34, 0x00, 0x3f, 0x23, 0xb8, 0xac, 0xcd, 0x18, 0x4e, 0x13, + 0xbf, 0xa8, 0x23, 0xa7, 0xff, 0xb4, 0xbd, 0x2e, 0x46, 0x9a, 0x90, 0xa2, 0x19, 0xdd, 0xf4, 0xbc, + 0x36, 0x45, 0x22, 0xd1, 0x1a, 0x44, 0x2b, 0x79, 0x9d, 0x9b, 0x7b, 0xc8, 0x68, 0x94, 0x39, 0x3c, + 0x69, 0x44, 0x1b, 0x0b, 0xcd, 0x10, 0xdd, 0xc7, 0x46, 0xd0, 0x9d, 0x33, 0xea, 0x91, 0xaa, 0x29, + 0x90, 0xa4, 0x0d, 0x46, 0x4b, 0xd8, 0x10, 0xd3, 0x98, 0xd5, 0x4c, 0x59, 0x65, 0x2a, 0x69, 0xcc, + 0x48, 0xfb, 0x8b, 0x30, 0x5e, 0x37, 0x66, 0xb4, 0xc8, 0x14, 0xa6, 0xa3, 0x70, 0x1d, 0x86, 0x60, + 0xa8, 0x9e, 0x6a, 0x33, 0x9e, 0x37, 0x49, 0xf9, 0xc6, 0xb7, 0xe1, 0x0a, 0x26, 0x19, 0x2c, 0x9a, + 0xe2, 0x75, 0x22, 0xa1, 0xce, 0xc8, 0x00, 0x51, 0x3e, 0x32, 0xe7, 0x7e, 0x06, 0x36, 0x99, 0xba, + 0xcb, 0x64, 0xe4, 0x69, 0x7f, 0xfc, 0xff, 0x29, 0x0d, 0xb6, 0x4f, 0x58, 0x8d, 0x1e, 0x65, 0x85, + 0xd9, 0x38, 0x66, 0xba, 0x24, 0x9f, 0xc0, 0xc6, 0x84, 0x68, 0x9a, 0x88, 0x49, 0x3f, 0xe9, 0x73, + 0xa1, 0xd2, 0xa1, 0x2e, 0x0b, 0xb4, 0xa3, 0x03, 0xed, 0x04, 0x6d, 0x65, 0x31, 0xc9, 0x2f, 0x16, + 0x59, 0x50, 0x83, 0x8e, 0xd5, 0x5d, 0x5e, 0x9a, 0x00, 0xcc, 0x43, 0x2f, 0x49, 0xd4, 0xe1, 0x81, + 0x97, 0x6a, 0x11, 0x4d, 0xf9, 0x48, 0x54, 0xd2, 0x3b, 0xa8, 0xdc, 0x52, 0x87, 0xe8, 0x64, 0x4a, + 0x31, 0xc6, 0x97, 0x9e, 0x97, 0xf9, 0x98, 0x86, 0x8c, 0xb4, 0xc1, 0x45, 0x77, 0x1e, 0x5f, 0x4f, + 0x73, 0x46, 0x71, 0x89, 0x64, 0x34, 0xc3, 0x89, 0xa5, 0xe0, 0xe0, 0x40, 0xb5, 0xd4, 0x48, 0x14, + 0x84, 0xf7, 0xa4, 0x9c, 0xaf, 0x2d, 0xd0, 0xf3, 0x7f, 0x62, 0x23, 0x1f, 0x31, 0x54, 0xdc, 0xc6, + 0x31, 0x2e, 0x51, 0xb6, 0xe4, 0xcb, 0xe7, 0x39, 0x52, 0xd4, 0x34, 0xc6, 0xc5, 0x1a, 0x44, 0xa6, + 0xcf, 0xc1, 0xa4, 0xe3, 0xc2, 0x4c, 0xf2, 0x3b, 0xa0, 0x37, 0xd2, 0xb6, 0x00, 0xda, 0xcd, 0x22, + 0x96, 0xb2, 0xcf, 0x71, 0x4a, 0x99, 0xb7, 0x54, 0xfe, 0x77, 0xda, 0x89, 0x82, 0xe0, 0x59, 0xa4, + 0xdf, 0xa2, 0x9d, 0x84, 0x4d, 0x40, 0x3c, 0x62, 0xf1, 0x34, 0x0e, 0xc5, 0xa6, 0x13, 0x69, 0x1f, + 0xa6, 0xa0, 0x1d, 0x3a, 0x16, 0xe3, 0x6f, 0x31, 0x62, 0xcc, 0x84, 0xc4, 0x71, 0x14, 0x8c, 0x46, + 0xa4, 0x32, 0x13, 0x69, 0xbe, 0x3f, 0xd6, 0x9a, 0x67, 0xfc, 0x0d, 0x22, 0x9a, 0x46, 0x97, 0x96, + 0x7d, 0x8c, 0xac, 0x26, 0x63, 0x85, 0xac, 0x11, 0x09, 0xdf, 0xb5, 0xc7, 0xf1, 0x6f, 0xe9, 0x47, + 0xfc, 0x39, 0x47, 0x15, 0x58, 0x65, 0xd4, 0x3b, 0x7e, 0x0b, 0x06, 0x22, 0x6e, 0xa3, 0x7c, 0x94, + 0xa0, 0xc7, 0xaa, 0xf6, 0x21, 0xf4, 0x46, 0x23, 0x51, 0xdf, 0x00, 0xfc, 0x52, 0x6b, 0xbf, 0x2c, + 0xbd, 0x06, 0x56, 0x8e, 0x4d, 0xa3, 0x6e, 0x0c, 0x4c, 0x26, 0xab, 0xe0, 0x2f, 0x63, 0x26, 0x31, + 0xe8, 0xf0, 0x7f, 0xd2, 0xf4, 0x2d, 0x1e, 0x82, 0xe2, 0x7f, 0xee, 0xa3, 0xc9, 0x62, 0x3c, 0x07, + 0x06, 0xda, 0xae, 0x95, 0x2f, 0x23, 0xfc, 0xc4, 0x7e, 0x20, 0x53, 0xe5, 0x6b, 0xd8, 0x20, 0xd3, + 0x39, 0x6c, 0xb8, 0x7c, 0x18, 0x4a, 0x8c, 0x17, 0xe7, 0xc6, 0x6b, 0xc1, 0x80, 0x7c, 0x36, 0x9f, + 0x73, 0x1b, 0xad, 0xd8, 0x7a, 0xda, 0x7b, 0x80, 0x77, 0x90, 0x5e, 0x66, 0x20, 0x75, 0xb4, 0x3b, + 0xe4, 0xb7, 0x08, 0x1c, 0x62, 0x16, 0x09, 0xf4, 0x5d, 0x2a, 0x1a, 0x3b, 0xe3, 0xb7, 0xf0, 0xa9, + 0x15, 0x70, 0xb4, 0x82, 0xf1, 0x03, 0xbc, 0x1f, 0xc1, 0x01, 0x72, 0xca, 0xfa, 0x3f, 0xb4, 0xa2, + 0xa4, 0x09, 0x88, 0xa4, 0xa2, 0x32, 0x20, 0xe2, 0x03, 0xda, 0xd7, 0x19, 0x10, 0x0f, 0x60, 0x92, + 0xd3, 0xd6, 0xb7, 0x91, 0x9c, 0x51, 0x26, 0x7c, 0x06, 0x7a, 0x4c, 0x45, 0xa2, 0x09, 0x4c, 0x47, + 0xb1, 0xc8, 0x8f, 0x90, 0xa5, 0xec, 0xc4, 0x3e, 0xa4, 0xee, 0x31, 0x61, 0x5e, 0x81, 0x2a, 0x49, + 0x43, 0x95, 0x40, 0x22, 0x47, 0x70, 0x75, 0xd8, 0xd3, 0xef, 0x66, 0x4a, 0xfd, 0x88, 0xa1, 0xd2, + 0x4a, 0x25, 0xbd, 0x09, 0x90, 0x01, 0x1d, 0xcd, 0x05, 0xd3, 0xa2, 0xfb, 0x0d, 0xe4, 0x21, 0xab, + 0xe6, 0x45, 0x6a, 0x6a, 0xf1, 0x18, 0x49, 0x9f, 0x2f, 0xe4, 0x72, 0xea, 0xd3, 0x9c, 0xce, 0x1d, + 0xd7, 0xe3, 0xd9, 0x47, 0xec, 0x6a, 0x2a, 0xc6, 0x62, 0xc9, 0x6d, 0x13, 0x3e, 0xd0, 0xee, 0x20, + 0x94, 0x85, 0xc6, 0x53, 0x08, 0xc0, 0x3b, 0x59, 0x00, 0x24, 0x52, 0x3c, 0x40, 0x7e, 0x97, 0x21, + 0xd8, 0xc9, 0x72, 0x0e, 0x05, 0x97, 0x86, 0xf3, 0x9c, 0xde, 0xff, 0x8e, 0x89, 0xf6, 0x81, 0x89, + 0x7e, 0x12, 0x84, 0x20, 0xfa, 0xd9, 0x6a, 0xd1, 0x68, 0xc2, 0x66, 0xa1, 0x7b, 0x86, 0x08, 0x8c, + 0x82, 0xe2, 0xa8, 0x28, 0x23, 0x66, 0x34, 0x21, 0x45, 0xa7, 0x91, 0x70, 0x90, 0x24, 0xd9, 0x87, + 0x18, 0x75, 0x74, 0x22, 0x1e, 0xd2, 0x70, 0xfc, 0x0f, 0x8d, 0xf2, 0x4d, 0x04, 0x07, 0x72, 0xfd, + 0x0c, 0x6a, 0xb1, 0x5f, 0xa5, 0xbf, 0xe0, 0xf5, 0x05, 0x0d, 0x13, 0x02, 0xc7, 0xf8, 0x1a, 0x00, + 0xf7, 0x24, 0x8f, 0x45, 0x4c, 0xf2, 0x3b, 0x4c, 0x79, 0xc2, 0xfa, 0xa5, 0x25, 0xef, 0x03, 0xe2, + 0xe9, 0x1f, 0x23, 0xc9, 0x5b, 0xb4, 0xec, 0xdc, 0x77, 0x62, 0x64, 0x62, 0xf6, 0x5f, 0x8a, 0x21, + 0x29, 0x5b, 0x4c, 0xc6, 0x11, 0x30, 0x50, 0x5a, 0xa3, 0x0e, 0xc7, 0xa4, 0x44, 0x3b, 0x92, 0x8c, + 0xd2, 0x1b, 0x58, 0xd6, 0x09, 0x2e, 0x2b, 0x4d, 0x16, 0xd8, 0xda, 0x5c, 0x04, 0xee, 0xa7, 0x75, + 0x00, 0xa3, 0x8c, 0xc3, 0x1e, 0x8c, 0x1f, 0x83, 0x89, 0x61, 0xc4, 0x81, 0x35, 0x22, 0x9a, 0x41, + 0x33, 0x60, 0x74, 0xdf, 0x23, 0x06, 0x63, 0xbe, 0x45, 0x3e, 0x80, 0x75, 0x30, 0xe7, 0x7f, 0x87, + 0x2a, 0x43, 0x09, 0x6e, 0xc0, 0x2a, 0x8c, 0x9f, 0x22, 0xf1, 0x98, 0x3e, 0xc7, 0x7e, 0xd2, 0xea, + 0xf9, 0x78, 0x5c, 0x13, 0x5e, 0x27, 0xaa, 0xfa, 0x02, 0x63, 0x4f, 0x53, 0x93, 0x79, 0x1b, 0x99, + 0x8c, 0x25, 0x1c, 0x91, 0x3f, 0xd5, 0x6a, 0x91, 0xd3, 0x6c, 0x82, 0xc6, 0x06, 0x49, 0xfe, 0x51, + 0xd3, 0xb7, 0xd3, 0xdd, 0x65, 0xca, 0x1d, 0xa1, 0xda, 0x30, 0x4e, 0x9a, 0x0c, 0xac, 0x83, 0x18, + 0xcf, 0x72, 0x75, 0xb4, 0xf1, 0xd0, 0x62, 0x34, 0xbe, 0x89, 0xe2, 0x0a, 0x75, 0x1e, 0x1a, 0xb6, + 0xc4, 0x52, 0x8f, 0xcb, 0xb4, 0xd9, 0x12, 0x85, 0x9f, 0x91, 0x90, 0x80, 0xd2, 0x93, 0xf7, 0x5e, + 0x9a, 0x50, 0x8e, 0x82, 0x7c, 0xec, 0x62, 0x60, 0xa2, 0xc5, 0x8f, 0x98, 0x15, 0x0c, 0x15, 0xe4, + 0xd3, 0xc8, 0x14, 0x69, 0xef, 0x9e, 0x64, 0xc9, 0xff, 0x23, 0x5a, 0x2e, 0x39, 0x03, 0x06, 0xf9, + 0xe7, 0xbb, 0x1a, 0xdb, 0xfe, 0x84, 0x79, 0xae, 0x2c, 0x5b, 0x2c, 0x07, 0xd3, 0xa2, 0xd8, 0xc4, + 0x7b, 0x77, 0x90, 0xf9, 0x88, 0x4d, 0x7d, 0x02, 0x38, 0xab, 0xe5, 0x0c, 0xed, 0x4f, 0x34, 0xe5, + 0x1b, 0xb0, 0x47, 0xce, 0x22, 0xb2, 0x8c, 0xd8, 0x03, 0x12, 0xa2, 0xc4, 0x78, 0x0c, 0x4b, 0x3c, + 0x9e, 0x01, 0xe1, 0x77, 0x0c, 0x02, 0x2a, 0x61, 0x46, 0x13, 0x32, 0x79, 0xb3, 0x64, 0xe1, 0x6d, + 0x94, 0xa4, 0x11, 0x28, 0x17, 0x68, 0x7e, 0x39, 0x4c, 0x88, 0x34, 0x29, 0xd4, 0x22, 0x19, 0x99, + 0x24, 0x15, 0x90, 0x33, 0x7f, 0x2c, 0xc4, 0x43, 0x32, 0x73, 0xc9, 0xcc, 0xec, 0x4d, 0x92, 0x26, + 0x49, 0xfe, 0x42, 0xdd, 0x47, 0x3a, 0xd9, 0xb9, 0xcc, 0x9e, 0xd4, 0xa4, 0xb5, 0xe4, 0x62, 0x95, + 0xe0, 0xd8, 0x19, 0xa3, 0x1f, 0x6a, 0x9a, 0x11, 0x31, 0xab, 0xc8, 0x62, 0x3c, 0xf1, 0xde, 0x5a, + 0xab, 0x50, 0xc2, 0x4c, 0x99, 0xe4, 0x24, 0x65, 0x7e, 0x87, 0x4d, 0x34, 0xcb, 0xac, 0x9a, 0x22, + 0xc1, 0x52, 0xc7, 0x8f, 0x6f, 0x25, 0x71, 0x13, 0x24, 0x53, 0x6a, 0x26, 0x19, 0x80, 0xdf, 0x41, + 0x62, 0xb0, 0x8a, 0x76, 0x12, 0x33, 0xe1, 0x7d, 0x7d, 0x56, 0xde, 0xab, 0x47, 0x97, 0xa6, 0x42, + 0x19, 0x49, 0x85, 0xc1, 0x21, 0xf9, 0x39, 0x14, 0x90, 0x04, 0x33, 0x09, 0xf2, 0xc7, 0x90, 0xdd, + 0x20, 0x13, 0x45, 0x58, 0x8b, 0x2d, 0x42, 0x67, 0xb3, 0x64, 0xb1, 0x83, 0x3f, 0x67, 0x2c, 0x7a, + 0x8d, 0xed, 0x13, 0x0d, 0x61, 0xcf, 0x19, 0x50, 0xf4, 0x52, 0xed, 0x9a, 0xae, 0x69, 0xf9, 0xc2, + 0x54, 0xa0, 0x11, 0x19, 0xab, 0x70, 0x46, 0x49, 0x00, 0x6f, 0xa5, 0x51, 0xc8, 0xbb, 0x68, 0xc7, + 0x03, 0x4f, 0x7c, 0xf4, 0x1d, 0xe6, 0xaa, 0x63, 0x82, 0x84, 0x3e, 0x22, 0xea, 0x07, 0xa7, 0x84, + 0x7a, 0x89, 0x29, 0x5f, 0xe8, 0x5a, 0xb9, 0xfa, 0xdf, 0x38, 0x95, 0x10, 0x5b, 0xa2, 0x13, 0x94, + 0x64, 0x32, 0xcb, 0x62, 0xf8, 0x1a, 0x99, 0x55, 0x9e, 0x97, 0x91, 0xe6, 0xe4, 0x3c, 0x63, 0x9a, + 0x35, 0xe2, 0xcb, 0xe5, 0x17, 0x95, 0x8b, 0xf8, 0xff, 0x0c, 0x49, 0xe2, 0xa4, 0x49, 0x66, 0x4d, + 0xf5, 0x32, 0xa1, 0x4d, 0x33, 0xde, 0x19, 0x5b, 0xa2, 0xae, 0x51, 0x13, 0xb2, 0x03, 0x46, 0x9a, + 0x89, 0x56, 0xec, 0xe4, 0x2f, 0x70, 0xdc, 0xe5, 0xf3, 0xfe, 0x42, 0x9d, 0x80, 0xa3, 0x30, 0x5f, + 0x40, 0x27, 0x20, 0x44, 0x05, 0xe8, 0x75, 0x6c, 0x35, 0x11, 0x04, 0x92, 0xc6, 0x67, 0x17, 0xf4, + 0xd7, 0x3b, 0x68, 0x61, 0x96, 0xca, 0xc4, 0x14, 0x2f, 0xc6, 0xc0, 0x93, 0x68, 0xd9, 0x94, 0x8a, + 0x6d, 0x12, 0xac, 0xd2, 0xd1, 0x7f, 0xd2, 0x24, 0xc5, 0x76, 0xe9, 0xa4, 0x5c, 0xc0, 0x7b, 0x87, + 0x48, 0x73, 0x94, 0x64, 0x83, 0xac, 0xfb, 0x0c, 0xed, 0x05, 0xa3, 0x09, 0xb5, 0x38, 0xcc, 0xc1, + 0xab, 0x81, 0x48, 0x9b, 0x56, 0x8d, 0x55, 0x33, 0x3b, 0xb6, 0x8e, 0xa6, 0x07, 0xbb, 0xc9, 0x72, + 0x9e, 0x95, 0x74, 0x6b, 0x5a, 0x56, 0xd3, 0x65, 0x3c, 0x83, 0xba, 0x09, 0x15, 0x8e, 0x59, 0xb1, + 0xfa, 0xa4, 0xf1, 0x12, 0x99, 0xf5, 0x4d, 0x23, 0x2b, 0xb0, 0x3a, 0x9a, 0xe6, 0x45, 0xcd, 0x91, + 0x2a, 0x30, 0x50, 0x44, 0xd2, 0xc8, 0x9f, 0x7a, 0x7c, 0x0e, 0x25, 0x92, 0x51, 0xa8, 0x97, 0x86, + 0xb4, 0x8e, 0x2b, 0xb4, 0xd9, 0xa4, 0x4c, 0xe0, 0xed, 0xd7, 0x7a, 0x9d, 0xd8, 0xcf, 0xc5, 0x48, + 0xf6, 0x1d, 0xf8, 0x23, 0x3e, 0x7f, 0xa0, 0x0d, 0xfb, 0x24, 0x2d, 0x0c, 0xbe, 0xa7, 0xe9, 0x5a, + 0xe9, 0xa1, 0x45, 0x93, 0xda, 0x46, 0x31, 0xb8, 0x58, 0x49, 0xfb, 0x4b, 0xce, 0xf0, 0x3b, 0x03, + 0xe6, 0x8c, 0x02, 0x77, 0x8e, 0xd3, 0xef, 0xcd, 0xb0, 0x01, 0x79, 0x22, 0x1b, 0x10, 0x34, 0x46, + 0xbb, 0xcb, 0xb1, 0x9b, 0x11, 0x35, 0x63, 0xd6, 0x02, 0x31, 0xde, 0xac, 0xe2, 0x3f, 0xf3, 0xea, + 0x4f, 0xc4, 0xb6, 0xb4, 0xa4, 0x54, 0x98, 0xde, 0x4e, 0x99, 0x1e, 0xd9, 0x49, 0x4d, 0xff, 0xfb, + 0x48, 0xd3, 0x65, 0x4f, 0x00, 0x4d, 0xdd, 0xe4, 0x65, 0x74, 0x48, 0x56, 0x47, 0xe9, 0xf9, 0x54, + 0x46, 0x51, 0x2c, 0xd2, 0x40, 0xcb, 0xfd, 0x49, 0x2b, 0xad, 0x27, 0xa0, 0x50, 0xca, 0x89, 0xa0, + 0x6b, 0x1f, 0x20, 0xab, 0x37, 0xa2, 0x61, 0x22, 0x9b, 0x2e, 0x64, 0x61, 0xef, 0x90, 0x70, 0x31, + 0x9d, 0x23, 0xa6, 0x68, 0x45, 0xc5, 0x1b, 0xb1, 0x49, 0x16, 0x37, 0x02, 0x61, 0xfc, 0x0c, 0xb9, + 0xbe, 0x51, 0x93, 0x12, 0xe3, 0x73, 0xa0, 0x76, 0x88, 0xc8, 0xc0, 0x4e, 0xd2, 0xa1, 0xfc, 0xe2, + 0x19, 0xd4, 0x37, 0x33, 0x72, 0x2b, 0x9b, 0xf2, 0x1c, 0x33, 0x07, 0xa3, 0x15, 0x09, 0x91, 0x98, + 0xfe, 0xdb, 0xa4, 0xda, 0x9f, 0x01, 0x1d, 0x3e, 0x12, 0xb0, 0x44, 0x94, 0xf8, 0x7a, 0x3e, 0x67, + 0xd2, 0x8a, 0xcc, 0x8e, 0x93, 0x78, 0xfd, 0xfa, 0x4b, 0x26, 0xb5, 0x72, 0x27, 0xcb, 0x3e, 0xc7, + 0xeb, 0xb5, 0x09, 0x93, 0x63, 0xe7, 0x73, 0x26, 0xbf, 0x3e, 0xd1, 0xa4, 0x74, 0x16, 0x9c, 0x2f, + 0xa8, 0x4f, 0x00, 0x35, 0x54, 0x2b, 0x42, 0x3f, 0x82, 0xa0, 0x5b, 0x48, 0x78, 0x90, 0x02, 0x71, + 0x26, 0x3b, 0x75, 0x85, 0x3a, 0xbe, 0xf1, 0xa4, 0xd0, 0xc1, 0xb4, 0x8c, 0x76, 0x24, 0x67, 0x1a, + 0xfc, 0xb9, 0xb9, 0x51, 0x25, 0x30, 0x9e, 0x15, 0x19, 0xa5, 0x4d, 0x6c, 0x28, 0x7c, 0x46, 0x8d, + 0xfb, 0x28, 0xa3, 0xfc, 0x64, 0x6b, 0x4d, 0x5a, 0x0b, 0x89, 0x6b, 0x5a, 0xb4, 0xcc, 0x12, 0x3e, + 0xfe, 0x06, 0x7b, 0xca, 0x88, 0x98, 0xc5, 0xaa, 0xe5, 0xbf, 0x80, 0x58, 0x2d, 0x38, 0x8d, 0x6a, + 0x1b, 0xea, 0xf1, 0xe3, 0x73, 0x92, 0x55, 0x49, 0x7b, 0x8a, 0x31, 0xa7, 0x6c, 0x95, 0x92, 0xd6, + 0xbd, 0x0c, 0x2d, 0x25, 0xc7, 0x74, 0x26, 0xd2, 0x1d, 0x09, 0x58, 0x3d, 0x4d, 0x58, 0x30, 0xe2, + 0xcf, 0x59, 0xcd, 0x96, 0x2c, 0x90, 0x7b, 0x19, 0xc7, 0xb2, 0x36, 0x81, 0x8f, 0xd8, 0xc3, 0xbc, + 0x6f, 0xe5, 0xe4, 0x38, 0x4a, 0xf4, 0xc6, 0x12, 0x50, 0x23, 0x56, 0x0b, 0xa5, 0x7c, 0x14, 0xd9, + 0x95, 0x89, 0xda, 0x76, 0x58, 0x24, 0x25, 0x1e, 0x8f, 0x85, 0xe3, 0x10, 0xb0, 0x9c, 0xe6, 0xb9, + 0x98, 0x7f, 0x46, 0xa5, 0x83, 0x99, 0xb3, 0x51, 0xfa, 0x03, 0x41, 0x8b, 0xd2, 0xfb, 0x1d, 0x52, + 0x69, 0x3e, 0xb6, 0xfe, 0x9f, 0x9e, 0x51, 0x7d, 0x42, 0xfb, 0xf6, 0xad, 0xb8, 0xb8, 0x18, 0x9c, + 0x4e, 0x27, 0x80, 0xc7, 0x07, 0x16, 0xdf, 0x54, 0x80, 0x85, 0x71, 0xb8, 0xf1, 0xc6, 0x1b, 0xe1, + 0xe7, 0x3f, 0xff, 0x39, 0xc0, 0x96, 0x2d, 0x70, 0x63, 0x4b, 0x1c, 0xf6, 0xee, 0xdd, 0x0b, 0x3b, + 0x8e, 0x8e, 0xc2, 0xe7, 0x9f, 0xa3, 0x91, 0xd7, 0x3f, 0x0a, 0x3f, 0xef, 0x1f, 0xa5, 0xef, 0xde, + 0x12, 0xa5, 0x90, 0xfc, 0x6f, 0x87, 0xf5, 0xd3, 0x0a, 0x86, 0x20, 0x39, 0xf8, 0xa9, 0xf8, 0xee, + 0xed, 0xbf, 0xad, 0x13, 0xc5, 0xf6, 0x2e, 0x5d, 0xd1, 0xd9, 0x53, 0xd9, 0xd1, 0xb9, 0x7a, 0xe9, + 0x2d, 0x9d, 0xd0, 0xd9, 0x17, 0xbf, 0xb9, 0x9b, 0xce, 0xe8, 0xc9, 0x1c, 0x2a, 0x44, 0x5f, 0xd1, + 0x75, 0xb1, 0xf3, 0x84, 0xec, 0xb7, 0x74, 0x14, 0xd6, 0xd1, 0xd9, 0x75, 0xf3, 0x0f, 0xbf, 0xcb, + 0x8f, 0x2b, 0x3a, 0xbb, 0x6f, 0x85, 0xee, 0x95, 0x2b, 0x56, 0x76, 0x2f, 0xed, 0x5d, 0xd9, 0xb3, + 0x0a, 0x1f, 0x6f, 0x59, 0xb9, 0x22, 0xbe, 0x72, 0xd5, 0xd2, 0x5e, 0x2c, 0x48, 0x4b, 0x4c, 0xa5, + 0x7f, 0x17, 0x9a, 0x96, 0x76, 0x75, 0xce, 0xfb, 0xe1, 0xaa, 0xde, 0xce, 0x15, 0xd9, 0xc2, 0x3a, + 0x56, 0xae, 0xca, 0x54, 0x56, 0x79, 0x35, 0xc4, 0x6f, 0xee, 0xe9, 0xe5, 0x8c, 0x99, 0xc0, 0xe0, + 0xd2, 0x55, 0x71, 0xac, 0x4b, 0xf9, 0x9b, 0x38, 0x05, 0xaf, 0x82, 0xc6, 0x34, 0x8c, 0x4a, 0x60, + 0xe5, 0xcd, 0x3d, 0x1d, 0x4a, 0x70, 0xe9, 0xcd, 0xb1, 0xee, 0x95, 0xab, 0x7a, 0x97, 0xde, 0x02, + 0x01, 0x3a, 0x6f, 0x29, 0x9d, 0x8e, 0x9c, 0x72, 0x29, 0x8d, 0x37, 0xf7, 0x74, 0xfd, 0x50, 0x99, + 0x47, 0x07, 0x46, 0xdd, 0x1a, 0x57, 0x1a, 0x56, 0x76, 0xf7, 0xf6, 0xac, 0xec, 0x82, 0xbf, 0x15, + 0x00, 0x29, 0x2b, 0xe3, 0x9d, 0xdd, 0xe2, 0x90, 0x8a, 0xbf, 0x83, 0xbf, 0xed, 0x5e, 0xa9, 0xac, + 0xe8, 0xec, 0x58, 0x7a, 0xf3, 0xdf, 0xc1, 0x2d, 0x4b, 0x6f, 0xbe, 0x39, 0x0b, 0xe0, 0xf2, 0xce, + 0x1f, 0x2e, 0xa6, 0x8a, 0xd2, 0x38, 0xca, 0xad, 0xa4, 0xb2, 0xb2, 0x72, 0x22, 0x7c, 0x14, 0xf4, + 0xe5, 0x20, 0x52, 0x2c, 0x15, 0x20, 0x4a, 0xb9, 0x71, 0x69, 0xef, 0x12, 0x25, 0xb2, 0x32, 0x0d, + 0xdf, 0x8c, 0x79, 0x74, 0xf0, 0x55, 0x37, 0xd6, 0xf1, 0xfd, 0x55, 0x9d, 0xd0, 0x70, 0x33, 0x3e, + 0x75, 0x5d, 0x14, 0x67, 0x53, 0x6f, 0x99, 0x7a, 0xb5, 0x77, 0x95, 0x76, 0x74, 0xd2, 0xaa, 0x19, + 0x53, 0xbb, 0x3a, 0x60, 0xea, 0x2a, 0xe5, 0x6f, 0xa7, 0x7a, 0x6b, 0xbb, 0xfa, 0xfe, 0x4e, 0x99, + 0xda, 0x51, 0x39, 0x15, 0xc3, 0xbb, 0x3a, 0x96, 0xc3, 0xd4, 0xaa, 0x8e, 0x3a, 0x85, 0x83, 0xe9, + 0x7c, 0x2c, 0xbe, 0xbb, 0xf8, 0x36, 0x4d, 0x99, 0x7a, 0x4d, 0x07, 0x9f, 0xb8, 0xc4, 0xaf, 0xa0, + 0xdc, 0x34, 0x13, 0xaf, 0x2a, 0x50, 0x14, 0x05, 0x94, 0xb6, 0xbf, 0x99, 0x8b, 0x3f, 0xfe, 0xb9, + 0xe0, 0x8a, 0xd3, 0x51, 0x1d, 0xca, 0xcd, 0x0a, 0xe2, 0x80, 0xce, 0x88, 0xea, 0x5d, 0x19, 0x8b, + 0x75, 0x75, 0x2a, 0xbd, 0x4b, 0x3a, 0x95, 0x0e, 0xad, 0xd5, 0x8b, 0x3b, 0x7b, 0xff, 0xa1, 0x13, + 0xb1, 0xd8, 0xea, 0x6f, 0x51, 0x6e, 0xee, 0xee, 0x50, 0x22, 0xf3, 0xe7, 0x35, 0x4c, 0x83, 0xbf, + 0xa5, 0xe6, 0xcd, 0x45, 0xba, 0xf8, 0x3b, 0x65, 0xc5, 0xaa, 0x58, 0xcb, 0xca, 0x95, 0xf1, 0x3a, + 0x6c, 0x6c, 0x77, 0xc7, 0xca, 0x7f, 0x50, 0xba, 0x6e, 0xbe, 0x65, 0x39, 0x15, 0x79, 0xeb, 0xaa, + 0xce, 0x9e, 0xf8, 0xca, 0x9e, 0xde, 0x29, 0x16, 0x88, 0xf6, 0x2c, 0xbe, 0xb5, 0xb7, 0x77, 0x65, + 0xf7, 0x2d, 0x5d, 0x37, 0xaf, 0x5a, 0x05, 0x88, 0x0f, 0xa2, 0x99, 0x9b, 0x17, 0x63, 0x4d, 0xdc, + 0x21, 0xe2, 0xa8, 0x2a, 0xc2, 0xdc, 0x05, 0x5f, 0x75, 0x06, 0xff, 0x66, 0x1e, 0x23, 0xf2, 0x96, + 0xae, 0xce, 0x9b, 0xbb, 0x6f, 0x8d, 0x5f, 0xe8, 0xc3, 0x63, 0xbd, 0x35, 0xf7, 0xeb, 0x51, 0xed, + 0x4e, 0x67, 0x9a, 0x5d, 0x95, 0xf3, 0x4e, 0xf7, 0x29, 0xec, 0xdf, 0x63, 0xd1, 0x97, 0xf8, 0xf7, + 0x38, 0x9c, 0xf1, 0xef, 0xf1, 0x9a, 0xf0, 0xef, 0xd1, 0x6c, 0x4b, 0xfb, 0xf7, 0x08, 0x6d, 0xfb, + 0xe6, 0xfe, 0x3d, 0x42, 0x87, 0xbf, 0xdc, 0xbf, 0x47, 0x68, 0xdf, 0x44, 0xff, 0x1e, 0x6b, 0xed, + 0x13, 0xfc, 0x7b, 0xb4, 0xe7, 0xfa, 0xf7, 0x08, 0xed, 0x98, 0xe8, 0xdf, 0x23, 0xb4, 0xe7, 0x42, + 0xff, 0x1e, 0xa1, 0x83, 0x17, 0xf8, 0xf7, 0x58, 0x34, 0xde, 0xbf, 0x07, 0x79, 0xe3, 0x65, 0x0f, + 0x81, 0x10, 0xb9, 0xf5, 0x7b, 0x1b, 0xb5, 0x93, 0x89, 0x94, 0x62, 0x37, 0x38, 0xec, 0xb2, 0x0c, + 0xa9, 0x7f, 0xbb, 0xcc, 0x07, 0x8e, 0xf2, 0xeb, 0xd8, 0x43, 0xe5, 0x4a, 0x28, 0x23, 0x2f, 0xd9, + 0x1e, 0x5b, 0x45, 0x43, 0x64, 0x53, 0xc5, 0xdf, 0x23, 0x1f, 0xb2, 0x7a, 0x42, 0x60, 0x0f, 0x3f, + 0x0b, 0xd6, 0x18, 0xf2, 0x6e, 0xf0, 0xdd, 0x8e, 0xb9, 0xb0, 0x3c, 0xbd, 0xe2, 0xa1, 0xf3, 0x13, + 0xf4, 0xd6, 0xd6, 0x8d, 0xc2, 0xef, 0x61, 0x39, 0x96, 0xa8, 0x2c, 0x07, 0x3b, 0x7b, 0xe0, 0xeb, + 0x08, 0x6f, 0x01, 0x57, 0x6c, 0x91, 0xb2, 0x04, 0xca, 0xf6, 0xef, 0xdd, 0xbf, 0x97, 0xc3, 0xc8, + 0xeb, 0x91, 0x39, 0xf3, 0x16, 0x88, 0x17, 0x6d, 0xdb, 0xd4, 0x61, 0xc4, 0x74, 0x2d, 0xd1, 0x1a, + 0xe7, 0x74, 0xb0, 0xc4, 0xbc, 0x8e, 0x80, 0xb2, 0x94, 0x4f, 0xcf, 0x81, 0x98, 0xd3, 0x6c, 0x07, + 0x7d, 0x6c, 0xf2, 0x6a, 0xa8, 0x71, 0x81, 0xf1, 0x8d, 0x21, 0x17, 0xc3, 0xe6, 0xce, 0x57, 0x1a, + 0x1c, 0x01, 0x67, 0x63, 0x45, 0xd0, 0x93, 0x17, 0xd9, 0xc4, 0x67, 0x65, 0xd7, 0xb3, 0x9f, 0x8a, + 0x1d, 0xec, 0x8f, 0x96, 0xbd, 0xd5, 0x82, 0x03, 0xf1, 0xb2, 0x22, 0xf5, 0x16, 0x61, 0xa2, 0xb6, + 0xec, 0xdb, 0xfd, 0xa0, 0x4f, 0xbd, 0xc7, 0xbf, 0x1f, 0xde, 0xf7, 0x4a, 0xc6, 0xc7, 0xc4, 0x9b, + 0xd3, 0x7d, 0xa9, 0x53, 0xfe, 0x0f, 0x53, 0x9f, 0x4c, 0x0f, 0xa5, 0xce, 0x05, 0x9e, 0x4e, 0x7d, + 0x86, 0xcf, 0x9f, 0xe1, 0xf3, 0x27, 0x98, 0xd2, 0x94, 0x7a, 0x01, 0xdf, 0xde, 0xc2, 0xb7, 0x3d, + 0xd7, 0xf7, 0x83, 0x23, 0xb5, 0xd7, 0x8f, 0xfd, 0x9f, 0xa8, 0x8d, 0x4b, 0x0d, 0x1f, 0xa6, 0x9e, + 0xcb, 0xfa, 0x70, 0x4d, 0x06, 0xb5, 0x2f, 0xc6, 0xbb, 0x30, 0x55, 0x5e, 0xea, 0x00, 0xd6, 0x5c, + 0x25, 0xbe, 0xfc, 0xfe, 0xee, 0x50, 0xeb, 0x46, 0x2c, 0xff, 0x8d, 0x6c, 0xc8, 0xac, 0xe2, 0xd6, + 0x8d, 0x4e, 0x38, 0x98, 0x38, 0x38, 0xe8, 0x90, 0x3f, 0xb8, 0xf3, 0xde, 0xc1, 0x03, 0x09, 0x45, + 0x1a, 0x19, 0x18, 0x49, 0x8c, 0x0c, 0x7c, 0x30, 0x84, 0x29, 0xdf, 0x64, 0xff, 0x03, 0xe9, 0x72, + 0x5f, 0xa3, 0x7a, 0x32, 0x6f, 0xb5, 0xe3, 0xde, 0x66, 0x39, 0x67, 0xa4, 0x9e, 0xaa, 0x58, 0x21, + 0x7c, 0x3e, 0x68, 0xa7, 0x12, 0x78, 0xe3, 0x55, 0x53, 0x7d, 0xd0, 0x4e, 0x54, 0x9a, 0x68, 0x0c, + 0xe4, 0x9c, 0x02, 0xca, 0xfe, 0xe1, 0xec, 0x95, 0xf5, 0xdb, 0x74, 0x09, 0x4b, 0xd6, 0x97, 0x04, + 0x4c, 0x07, 0xec, 0xeb, 0xa9, 0x73, 0xc0, 0xc1, 0x39, 0x6e, 0xcc, 0xfa, 0x0b, 0xaa, 0x10, 0xa3, + 0xe0, 0x8c, 0x52, 0x9f, 0x10, 0x69, 0xcf, 0xf1, 0xfb, 0x31, 0xc5, 0xe7, 0x6a, 0x0d, 0x04, 0xc8, + 0x73, 0x6c, 0xdd, 0xc1, 0x39, 0xe4, 0x6b, 0xf8, 0x51, 0x37, 0x3d, 0x27, 0x5c, 0xf5, 0x90, 0xdc, + 0xd4, 0x51, 0x8e, 0xcf, 0x55, 0x77, 0xcd, 0x3d, 0x97, 0x5c, 0xa3, 0x02, 0x6c, 0x2b, 0xef, 0x02, + 0x3a, 0xe7, 0x96, 0x7d, 0xd1, 0x25, 0x96, 0x7b, 0xf2, 0xc9, 0x5b, 0xac, 0x86, 0x27, 0x67, 0x88, + 0xbe, 0xee, 0x6f, 0xa0, 0x7e, 0xe3, 0x72, 0x07, 0xf9, 0x0c, 0x8c, 0xc4, 0x9f, 0xef, 0xa4, 0xd3, + 0xdd, 0x42, 0xf1, 0x21, 0x88, 0x3c, 0xa0, 0x46, 0x39, 0xdf, 0x6a, 0x4f, 0x7e, 0xe4, 0x7e, 0xf6, + 0xa3, 0x7a, 0x13, 0xbf, 0xff, 0x28, 0xfd, 0x1e, 0x35, 0xda, 0xeb, 0x41, 0x56, 0xd9, 0x03, 0x53, + 0x62, 0x43, 0x26, 0xd4, 0x82, 0xa1, 0xfa, 0x81, 0xad, 0x60, 0x53, 0x2b, 0xe8, 0x8c, 0x33, 0x8e, + 0x7d, 0x10, 0xeb, 0x6e, 0xcc, 0xd4, 0x5d, 0x3c, 0xfb, 0x03, 0xc8, 0xc7, 0x36, 0x17, 0x79, 0x2c, + 0x4a, 0x90, 0x20, 0xa0, 0xb3, 0x69, 0x5d, 0xf3, 0xc3, 0x9b, 0xc9, 0xab, 0xac, 0x2a, 0x07, 0x02, + 0xc2, 0x43, 0xdf, 0x3d, 0x8f, 0x78, 0x03, 0x1e, 0xb3, 0x78, 0xfe, 0x49, 0x51, 0x60, 0x2b, 0x94, + 0x3b, 0xc2, 0x59, 0xaf, 0x38, 0x54, 0x16, 0x79, 0x60, 0xbf, 0x83, 0xb0, 0x90, 0x7c, 0xe4, 0xb1, + 0xe6, 0x73, 0x63, 0xeb, 0xc9, 0xdb, 0xe0, 0xa3, 0x07, 0x31, 0xc7, 0x03, 0xd8, 0x2a, 0x4c, 0xcf, + 0xa7, 0x70, 0xdd, 0x8f, 0xfd, 0x51, 0xde, 0xbe, 0xb1, 0x17, 0x3c, 0x6e, 0x68, 0x8f, 0x6c, 0x56, + 0xdc, 0xf4, 0x16, 0xc3, 0x72, 0xd9, 0x37, 0xf3, 0xc6, 0x83, 0x5b, 0xa1, 0xdd, 0x4a, 0x1e, 0x3e, + 0xef, 0x5f, 0xfc, 0xb2, 0x7a, 0x38, 0xed, 0xbb, 0xd7, 0xbd, 0x12, 0xaa, 0x95, 0x15, 0xe0, 0xc0, + 0x31, 0x12, 0xee, 0xa3, 0xd3, 0x3f, 0xd6, 0x29, 0xad, 0xec, 0x69, 0xef, 0xb3, 0x35, 0xa0, 0x82, + 0xbc, 0x01, 0xa9, 0xdb, 0xa1, 0x04, 0x9c, 0x18, 0x1b, 0xbe, 0x57, 0xf3, 0x06, 0x6d, 0xd9, 0x9d, + 0x70, 0xfa, 0xad, 0x6e, 0x3a, 0x91, 0x3a, 0x0a, 0xf2, 0x2c, 0xab, 0x9b, 0x3c, 0x08, 0xc7, 0x40, + 0xae, 0x56, 0x96, 0x69, 0xa3, 0x10, 0x64, 0xd7, 0xb8, 0x11, 0x08, 0xd2, 0x61, 0x4f, 0x2b, 0x54, + 0x54, 0xba, 0x40, 0x3f, 0x6e, 0x2c, 0x82, 0xb4, 0x47, 0xb1, 0xf7, 0xa4, 0x9a, 0xa4, 0xdd, 0xe4, + 0x5f, 0xe3, 0xf9, 0xa2, 0x7a, 0x28, 0xda, 0x9e, 0xe8, 0x00, 0xe9, 0x19, 0x0f, 0xa6, 0xc4, 0xab, + 0x85, 0xe9, 0xba, 0xa3, 0x75, 0xe3, 0x48, 0x82, 0xfc, 0x5a, 0x63, 0xfa, 0xcd, 0x08, 0x93, 0x39, + 0xeb, 0xdd, 0xa5, 0x82, 0xca, 0x68, 0x57, 0x7c, 0xf1, 0x8c, 0xc7, 0xcd, 0xb1, 0x1e, 0xc1, 0x55, + 0xa5, 0x2a, 0x65, 0xf6, 0xfe, 0x5f, 0xf9, 0x4f, 0x0f, 0x49, 0xe4, 0x53, 0xc0, 0x31, 0x27, 0x77, + 0x04, 0xb1, 0x37, 0x0f, 0xf2, 0xf6, 0xea, 0xbc, 0xaa, 0x05, 0x5c, 0x81, 0x27, 0xa1, 0xe2, 0x5a, + 0xf2, 0x26, 0x5b, 0x96, 0xe3, 0x8b, 0xa8, 0x36, 0x3c, 0x1d, 0xae, 0x88, 0x95, 0xab, 0x1d, 0x8e, + 0xde, 0x3e, 0xb0, 0xfa, 0x91, 0x27, 0x18, 0x2b, 0xf3, 0x1c, 0x21, 0x55, 0xbe, 0x0d, 0xb0, 0xdc, + 0xe1, 0x6d, 0x43, 0xb7, 0xc8, 0x6d, 0x89, 0x91, 0x3b, 0xda, 0xfd, 0x4a, 0xb3, 0x6a, 0x0c, 0xf8, + 0x7f, 0xb2, 0x37, 0x0e, 0xb7, 0xc1, 0x2c, 0xe9, 0xb9, 0x3b, 0x16, 0xbf, 0xd6, 0x94, 0xf8, 0x97, + 0xe1, 0x68, 0x05, 0x53, 0xf9, 0xcf, 0xb2, 0x54, 0x8e, 0x30, 0x95, 0x3a, 0x8a, 0x1d, 0x3e, 0xe4, + 0x34, 0x45, 0xaa, 0x65, 0xfb, 0x16, 0x3a, 0xc7, 0x4e, 0x5a, 0xa0, 0xf8, 0x14, 0x7b, 0xf4, 0x93, + 0x5e, 0x50, 0x23, 0xe3, 0xf0, 0x55, 0x3a, 0x0e, 0x4b, 0x96, 0x78, 0x21, 0x72, 0x2c, 0xfd, 0x14, + 0x3f, 0xf8, 0x94, 0x16, 0x45, 0x87, 0x52, 0x04, 0xcc, 0x59, 0x1c, 0xdc, 0xe6, 0x91, 0x91, 0xb3, + 0x77, 0x09, 0x3f, 0x90, 0xeb, 0x82, 0xc2, 0x23, 0x0e, 0xb6, 0x27, 0x0f, 0xca, 0xb0, 0x65, 0xce, + 0xdc, 0x36, 0xe5, 0x3c, 0xcf, 0x62, 0xef, 0xb1, 0x59, 0xaf, 0x2e, 0x5d, 0xfc, 0xde, 0x94, 0x79, + 0x57, 0xe9, 0xdd, 0x81, 0xb5, 0x65, 0xf9, 0x79, 0x78, 0x30, 0xd6, 0x1a, 0x87, 0x9f, 0xec, 0x15, + 0x21, 0x69, 0x8f, 0x1c, 0x6a, 0xbd, 0xa0, 0xdb, 0x75, 0x0f, 0x72, 0x8b, 0x9f, 0xcf, 0xa4, 0x7f, + 0xd4, 0x09, 0xed, 0x1b, 0x35, 0x3e, 0x90, 0xe3, 0x99, 0xc7, 0x11, 0xc8, 0xf1, 0x47, 0xfd, 0xd0, + 0x78, 0xef, 0xa8, 0x44, 0x87, 0x0d, 0xc7, 0x21, 0xe2, 0xbc, 0x73, 0xea, 0x12, 0x68, 0x43, 0x99, + 0x80, 0xbf, 0x8e, 0x0d, 0x53, 0xc2, 0xd0, 0xd6, 0x76, 0xfb, 0xf3, 0xb7, 0x77, 0xc3, 0x58, 0x6f, + 0xfc, 0x3b, 0x4d, 0x90, 0xf6, 0x86, 0xac, 0xe8, 0x7a, 0xe4, 0xf1, 0xfe, 0x0d, 0xa3, 0x30, 0xf6, + 0x9e, 0xfa, 0x54, 0x9a, 0x0a, 0xa3, 0x90, 0x7c, 0x4a, 0x85, 0xe4, 0x6b, 0x91, 0xef, 0x27, 0x8f, + 0xd1, 0x29, 0x19, 0x95, 0x33, 0xb4, 0x13, 0xeb, 0x57, 0x80, 0xdd, 0xb5, 0x02, 0x8a, 0xcb, 0x67, + 0x40, 0x29, 0x8e, 0x5b, 0x95, 0xf8, 0x76, 0xf2, 0x98, 0xe0, 0xdb, 0xc8, 0x93, 0x47, 0xa7, 0xf7, + 0x93, 0x87, 0xbe, 0xd4, 0x71, 0xe4, 0xc6, 0xa3, 0xc8, 0x8d, 0x4f, 0x62, 0xd8, 0x69, 0x47, 0x4b, + 0xe3, 0x87, 0xa9, 0xe3, 0xec, 0xe9, 0x6e, 0xbb, 0xa3, 0x85, 0xef, 0x9b, 0x15, 0x1f, 0x7b, 0x48, + 0x93, 0x5b, 0x87, 0x1c, 0xf6, 0x98, 0x95, 0x3d, 0xf1, 0x39, 0xa2, 0x9f, 0x20, 0x7d, 0xee, 0xe0, + 0x12, 0x94, 0xd4, 0x0e, 0x2c, 0xe1, 0x0c, 0x96, 0xf0, 0x3c, 0xbf, 0xcb, 0xa9, 0x5d, 0xfe, 0x0f, + 0x93, 0xf4, 0x3e, 0x8c, 0x25, 0xee, 0x71, 0x34, 0x60, 0x89, 0x3b, 0xb8, 0xa4, 0xc7, 0xe3, 0x12, + 0x72, 0xe3, 0xb3, 0x28, 0xc3, 0xf4, 0x7c, 0xda, 0xa4, 0x84, 0xf9, 0x36, 0xf7, 0x81, 0xfd, 0x5b, + 0xa8, 0x5e, 0x54, 0xc6, 0x26, 0x87, 0x21, 0x36, 0xa9, 0x08, 0xad, 0xec, 0xd4, 0x7f, 0xb5, 0x4a, + 0xf0, 0xad, 0xc5, 0x7a, 0x94, 0x9b, 0x6f, 0xdb, 0x87, 0xdb, 0xd6, 0xc5, 0x27, 0x6d, 0x5b, 0x17, + 0x7d, 0xd3, 0x7d, 0x69, 0x3c, 0x6f, 0xdb, 0xed, 0x1d, 0xd4, 0x12, 0x8b, 0xc7, 0x90, 0x96, 0x03, + 0x46, 0x00, 0xef, 0xb7, 0x13, 0xa1, 0xcd, 0x6d, 0xeb, 0xb2, 0xe1, 0x24, 0x0d, 0xd2, 0xe1, 0xdf, + 0xde, 0x05, 0xad, 0xa1, 0xfb, 0xdd, 0xfa, 0xf9, 0xb7, 0x2b, 0x5d, 0x30, 0x29, 0xae, 0xdb, 0xb6, + 0x29, 0xaa, 0x6f, 0x7f, 0x3a, 0x75, 0xc6, 0xb9, 0x22, 0x75, 0xc6, 0x7f, 0x02, 0xf2, 0x50, 0x46, + 0x0e, 0x75, 0x4c, 0xe2, 0xbc, 0x16, 0x2e, 0xf3, 0x58, 0x3a, 0x6f, 0xfb, 0x66, 0xb7, 0x7e, 0xc1, + 0xed, 0xd9, 0x98, 0x59, 0xc1, 0x6c, 0x4c, 0xe0, 0x9a, 0xf6, 0xfb, 0x91, 0x56, 0x9f, 0x4e, 0x9e, + 0xc1, 0x31, 0x7c, 0x2a, 0xfc, 0x74, 0xaa, 0x9a, 0x4e, 0xa4, 0x41, 0x2e, 0x29, 0x6d, 0x43, 0xbc, + 0xc6, 0x9c, 0xd8, 0x42, 0xa6, 0x6a, 0x0c, 0xb1, 0x22, 0x45, 0x17, 0x4f, 0x5f, 0x02, 0xd5, 0x29, + 0x17, 0xbe, 0x15, 0x90, 0x44, 0xc6, 0xb7, 0xda, 0x54, 0x45, 0x5c, 0x1a, 0x78, 0x3a, 0xe5, 0x24, + 0x0c, 0x4c, 0x0f, 0x25, 0x8f, 0x09, 0x9c, 0xd0, 0x28, 0xc6, 0xb7, 0xe3, 0xd3, 0xe7, 0x25, 0x4f, + 0x4e, 0x5f, 0x0e, 0xd6, 0xe4, 0x69, 0x0d, 0xa3, 0x23, 0x98, 0x2e, 0x88, 0x18, 0x3d, 0x88, 0x18, + 0x3d, 0xa4, 0x34, 0x94, 0x2f, 0x01, 0xdb, 0x6a, 0x40, 0xf9, 0x80, 0x3c, 0x43, 0xc5, 0x31, 0x8f, + 0x18, 0x1e, 0x11, 0x18, 0xf6, 0xcc, 0x48, 0x2d, 0xc1, 0xab, 0x55, 0x70, 0xe1, 0xca, 0xa7, 0x53, + 0xed, 0x1e, 0xa0, 0xe7, 0xd6, 0x8d, 0x6f, 0x24, 0xca, 0x97, 0x83, 0x2d, 0xfc, 0x24, 0xd8, 0xa2, + 0xaf, 0x61, 0x0a, 0x33, 0x5e, 0x90, 0xe6, 0x3a, 0x2e, 0xe0, 0xb3, 0x88, 0x35, 0xdc, 0x31, 0xd7, + 0x28, 0x65, 0xaf, 0x24, 0x1a, 0x96, 0xf7, 0x3f, 0x9d, 0x2a, 0xc5, 0xab, 0x2c, 0x40, 0x7d, 0xb9, + 0x99, 0x24, 0x95, 0x90, 0x51, 0xd7, 0xed, 0x99, 0x4b, 0xde, 0xb9, 0x7b, 0x95, 0xd9, 0x08, 0x51, + 0x38, 0x10, 0x54, 0x83, 0xc8, 0xff, 0x51, 0x43, 0xc1, 0x51, 0xed, 0xda, 0xbf, 0x17, 0x65, 0x8e, + 0x94, 0xf1, 0x66, 0xee, 0x0a, 0x37, 0x44, 0x85, 0x5c, 0xd9, 0x43, 0xdc, 0xbc, 0x75, 0x63, 0x9f, + 0x54, 0x82, 0xf8, 0x52, 0xed, 0x98, 0xa3, 0x91, 0x60, 0x6d, 0xbb, 0xc6, 0x7c, 0x5f, 0x9f, 0xb4, + 0x5a, 0x2a, 0x9f, 0x17, 0xbe, 0x2f, 0xfa, 0x7c, 0x38, 0x18, 0xdd, 0xaa, 0xd1, 0xe7, 0xe1, 0xe9, + 0x2b, 0x52, 0xd5, 0xa9, 0x23, 0xd8, 0xf2, 0x63, 0x4c, 0x9d, 0x87, 0xb9, 0xa5, 0x43, 0xe4, 0x05, + 0xdc, 0xe1, 0xe3, 0xe7, 0xd5, 0x48, 0x6f, 0xc7, 0x2a, 0x66, 0xe3, 0x53, 0x9c, 0xcf, 0x54, 0xb8, + 0x09, 0x7b, 0xe4, 0x6c, 0xcc, 0xa8, 0xcc, 0x48, 0x79, 0x55, 0x39, 0x9e, 0xe8, 0x91, 0x50, 0x33, + 0xa1, 0xd8, 0xc3, 0xaa, 0x6f, 0xba, 0x9f, 0xa9, 0x75, 0xf3, 0xc5, 0xa8, 0x95, 0xdf, 0xaf, 0x4c, + 0xed, 0xc1, 0xf8, 0xb3, 0xf8, 0xbe, 0x17, 0x6b, 0xdc, 0x97, 0x4b, 0xbd, 0x38, 0xc6, 0xac, 0x2d, + 0x1f, 0x2e, 0x1c, 0x4d, 0xee, 0x12, 0xda, 0x41, 0xfd, 0xac, 0x72, 0x0f, 0xb8, 0x9c, 0xda, 0xf9, + 0x14, 0x4e, 0xf2, 0x0d, 0xef, 0x81, 0x5a, 0x94, 0x68, 0x94, 0xfa, 0x0d, 0x6c, 0x73, 0x08, 0x47, + 0xe8, 0x24, 0xc4, 0x8c, 0x7e, 0xce, 0xb9, 0xd4, 0x81, 0xe6, 0x73, 0xa3, 0xaa, 0x5a, 0xee, 0x31, + 0x78, 0xf2, 0xb5, 0xf3, 0xb2, 0xee, 0x67, 0xcf, 0x3c, 0xbe, 0xa8, 0x9d, 0xce, 0x19, 0xd0, 0xc2, + 0xc8, 0xf7, 0x6e, 0x31, 0x63, 0xe0, 0x0d, 0xad, 0x9c, 0x91, 0xcc, 0x39, 0x38, 0xf5, 0x42, 0x23, + 0x41, 0x39, 0xe6, 0x65, 0x0e, 0xf4, 0xab, 0xb8, 0x9c, 0xd5, 0x45, 0x9c, 0x74, 0x76, 0xcd, 0x23, + 0xc4, 0x57, 0x48, 0x82, 0x21, 0x6f, 0x09, 0x4f, 0x69, 0x86, 0xb6, 0xc0, 0x16, 0x88, 0x10, 0x9f, + 0xc1, 0xe7, 0x30, 0xf6, 0x5a, 0xf2, 0x1e, 0xb7, 0xda, 0xe1, 0x22, 0x19, 0x88, 0x9c, 0x03, 0xf5, + 0x42, 0x25, 0x1a, 0x42, 0xe8, 0xca, 0xfe, 0xfd, 0xd7, 0xff, 0xfe, 0xeb, 0xe7, 0x88, 0xff, 0xd6, + 0x91, 0x3f, 0xfb, 0x58, 0xb5, 0xe3, 0x52, 0xf2, 0xe2, 0x4e, 0xe3, 0x93, 0x21, 0x38, 0x5a, 0x09, + 0x31, 0xc5, 0x43, 0xe7, 0x3d, 0xe7, 0x23, 0x8c, 0x56, 0xea, 0xd1, 0x5a, 0x70, 0xcc, 0xe6, 0xb8, + 0xc3, 0xdc, 0x86, 0x60, 0xd4, 0xea, 0x3f, 0x09, 0x61, 0x84, 0xb8, 0x81, 0xbc, 0xa6, 0x3b, 0x1b, + 0xdd, 0x45, 0x42, 0xd7, 0x0d, 0xdf, 0x1e, 0xdd, 0xe4, 0x08, 0x70, 0xe8, 0x62, 0xe2, 0x66, 0xec, + 0xbd, 0x8e, 0xce, 0x91, 0xa2, 0xf3, 0x51, 0x50, 0xbb, 0xad, 0x58, 0x09, 0xc5, 0xe4, 0x07, 0x5d, + 0xf3, 0x6b, 0x87, 0x31, 0x5e, 0x0f, 0xd8, 0x42, 0xc3, 0x55, 0x1e, 0x28, 0x0a, 0xbd, 0xa8, 0xc5, + 0xda, 0xb3, 0xb1, 0x0a, 0x9d, 0x88, 0xb0, 0x12, 0xec, 0x58, 0xde, 0x56, 0xed, 0xe4, 0x0b, 0xd2, + 0x8a, 0xcb, 0xa8, 0x1f, 0x6a, 0x3d, 0x50, 0xee, 0x5c, 0x0e, 0x6e, 0xcf, 0x74, 0x98, 0x44, 0x67, + 0x52, 0x0b, 0xcf, 0xc4, 0xa8, 0x21, 0x54, 0x45, 0x76, 0xa6, 0x76, 0x7b, 0xdd, 0x60, 0xae, 0x86, + 0x9e, 0xc2, 0xa3, 0xcb, 0x0e, 0xfa, 0x8e, 0x06, 0x2a, 0x96, 0xc3, 0xa4, 0xb4, 0xd7, 0x2d, 0xc7, + 0x32, 0xa8, 0x42, 0xad, 0xe9, 0x99, 0xd4, 0xab, 0x95, 0xf7, 0x78, 0x83, 0x1e, 0x73, 0x15, 0xf4, + 0x15, 0x1e, 0x5f, 0x7a, 0xc0, 0x77, 0xd4, 0xbf, 0xd9, 0xcf, 0xda, 0x8a, 0x28, 0x61, 0x71, 0x3a, + 0x3d, 0x9f, 0x1d, 0x82, 0xf9, 0xc1, 0x85, 0x9a, 0xbb, 0xd3, 0xd3, 0x80, 0x6f, 0x58, 0x02, 0x94, + 0xa1, 0xae, 0x4c, 0x27, 0x9d, 0x29, 0x69, 0x0f, 0xa0, 0xe4, 0x8d, 0x8f, 0x60, 0x6b, 0xc0, 0xf4, + 0x02, 0xe6, 0xac, 0x07, 0xd0, 0x5a, 0xd2, 0x2b, 0x9d, 0xa8, 0xcf, 0x14, 0x45, 0xcd, 0xf8, 0x5b, + 0x12, 0x05, 0xd8, 0x9c, 0x3d, 0x77, 0x88, 0x4e, 0x2c, 0xe4, 0xd0, 0x49, 0x9c, 0xa2, 0x98, 0xc6, + 0x56, 0xf8, 0xbe, 0xdc, 0x13, 0x2a, 0xd4, 0x36, 0x0a, 0x23, 0x5d, 0xf1, 0xba, 0x3d, 0xe4, 0x1f, + 0xff, 0x9a, 0x5d, 0x6a, 0x7d, 0xc6, 0x32, 0xf0, 0x3a, 0x5d, 0x68, 0x19, 0xb8, 0x5d, 0x6e, 0xd4, + 0xc6, 0xf4, 0x74, 0xaa, 0xfd, 0xc1, 0x41, 0xf2, 0x84, 0xd5, 0x03, 0x45, 0x74, 0x06, 0x5a, 0x11, + 0x9d, 0x87, 0x12, 0x5a, 0x02, 0x12, 0xd3, 0x1a, 0x59, 0x4f, 0xc6, 0xf2, 0x86, 0xf2, 0x4b, 0xa3, + 0xc3, 0xd9, 0xd3, 0x8b, 0x50, 0x8f, 0x2b, 0x41, 0xdd, 0xac, 0x08, 0x7b, 0xac, 0x8c, 0x3c, 0x9f, + 0x25, 0xcf, 0x0a, 0x4d, 0x58, 0xaa, 0xad, 0xf6, 0x48, 0xb3, 0x10, 0xd6, 0x57, 0x89, 0xfe, 0x06, + 0xe6, 0x8c, 0x93, 0xf9, 0x93, 0xe8, 0x74, 0xc0, 0x23, 0x12, 0xf9, 0xe6, 0x8c, 0xda, 0xf8, 0xcc, + 0xc2, 0x12, 0x33, 0xf9, 0xb6, 0x06, 0x78, 0x38, 0xab, 0xc5, 0xd0, 0x09, 0x4b, 0x79, 0xbd, 0x17, + 0xd1, 0x62, 0x3a, 0xc8, 0x06, 0x18, 0xf8, 0x2f, 0x71, 0xb8, 0x40, 0x7f, 0x99, 0x75, 0x2d, 0x9d, + 0xe1, 0x50, 0x66, 0xaf, 0x4f, 0x3d, 0x3c, 0xb2, 0xf1, 0x2a, 0x1f, 0xb8, 0x7a, 0x94, 0xab, 0xfc, + 0xe3, 0xa5, 0x3d, 0x69, 0x30, 0x51, 0x4b, 0x2f, 0x1d, 0xd1, 0xf9, 0x33, 0x39, 0x00, 0x52, 0xae, + 0xf4, 0xcf, 0x95, 0xfc, 0x4a, 0x43, 0x56, 0xea, 0x87, 0x03, 0x31, 0x30, 0x9f, 0x10, 0x12, 0xfd, + 0x91, 0x7b, 0x84, 0x3e, 0x89, 0x21, 0xaf, 0x29, 0xbe, 0x2a, 0x17, 0xd8, 0xac, 0x7e, 0x09, 0x56, + 0xea, 0xe3, 0x0a, 0x72, 0x0f, 0xfb, 0xbd, 0xbe, 0x6b, 0xfc, 0xb0, 0xb0, 0x57, 0xa2, 0xf1, 0xf3, + 0xf0, 0x88, 0xab, 0xd0, 0x48, 0x33, 0x3e, 0x0f, 0x5b, 0x03, 0xe4, 0xdb, 0x56, 0x42, 0x9d, 0x93, + 0x4e, 0x16, 0x26, 0xbe, 0x36, 0xb0, 0x94, 0x6d, 0x48, 0x5b, 0xa8, 0x4f, 0x22, 0x19, 0x75, 0x03, + 0x5e, 0x3b, 0x48, 0x7b, 0xfd, 0xa9, 0x2b, 0x72, 0x1f, 0x9d, 0x09, 0x49, 0x56, 0x62, 0xe5, 0x06, + 0x3a, 0x0d, 0x97, 0x53, 0xff, 0xd0, 0xe1, 0xf3, 0x5c, 0x92, 0x93, 0x7e, 0x3e, 0xa5, 0xe7, 0x94, + 0x75, 0x99, 0x94, 0x06, 0x4e, 0x79, 0x57, 0x85, 0xcf, 0x53, 0x92, 0x93, 0x72, 0x69, 0x26, 0xe5, + 0xac, 0x4c, 0x4a, 0xb6, 0x5c, 0x07, 0xb6, 0x2a, 0x3e, 0x8f, 0x3d, 0x9d, 0xb2, 0x6a, 0x19, 0x2c, + 0xf4, 0xe4, 0xe1, 0x9b, 0x9d, 0xd3, 0x56, 0x66, 0xd2, 0xf2, 0xd9, 0x35, 0x03, 0xcf, 0xe6, 0x96, + 0xea, 0xa5, 0xb4, 0x68, 0xdb, 0x49, 0xed, 0x9c, 0xb6, 0x8a, 0x4e, 0xaa, 0x24, 0x3a, 0x17, 0xba, + 0xab, 0x29, 0x88, 0x74, 0x58, 0x87, 0xf7, 0x7a, 0xbc, 0xcf, 0xc2, 0x7b, 0x35, 0xde, 0x2b, 0xf1, + 0x5e, 0x41, 0xde, 0xec, 0x54, 0x30, 0x39, 0x19, 0x0b, 0x46, 0x2e, 0xf7, 0x37, 0x59, 0x2c, 0x64, + 0x21, 0xc8, 0xc1, 0x43, 0x20, 0x03, 0x87, 0x89, 0xd3, 0xef, 0xff, 0x0a, 0x38, 0x9a, 0x10, 0x8e, + 0x40, 0x16, 0x0e, 0x23, 0xdb, 0x4b, 0xc6, 0x33, 0x74, 0xe6, 0x91, 0x71, 0x5b, 0x60, 0xa5, 0x04, + 0x78, 0xc9, 0x98, 0xa6, 0xfc, 0x86, 0x25, 0x60, 0x95, 0xf4, 0xf8, 0x6b, 0x93, 0x8c, 0x01, 0x8f, + 0x64, 0xbe, 0xa2, 0x1f, 0x24, 0x29, 0xcf, 0xd3, 0x0f, 0x0a, 0xf4, 0x49, 0x16, 0xbc, 0x43, 0x29, + 0x48, 0x36, 0x8f, 0x4f, 0x2a, 0x0a, 0x3c, 0x2b, 0x95, 0xe0, 0x35, 0xc9, 0x13, 0x92, 0x26, 0xe3, + 0xdd, 0x81, 0x25, 0x94, 0xe3, 0xe5, 0xc2, 0xcb, 0x8d, 0x57, 0xc5, 0x0d, 0xfd, 0x50, 0x28, 0x55, + 0xfa, 0x3f, 0x92, 0xa0, 0x62, 0x19, 0x4c, 0xa6, 0x73, 0xbd, 0x10, 0x0e, 0x37, 0xd6, 0xe7, 0x25, + 0xcf, 0x83, 0x89, 0xdf, 0x63, 0xbf, 0xeb, 0x62, 0x93, 0xf9, 0xf9, 0x7d, 0x7c, 0xd6, 0xc7, 0x8a, + 0xe8, 0x79, 0xe0, 0x12, 0x7c, 0x96, 0xa3, 0x46, 0x7e, 0xd6, 0x8b, 0x33, 0x94, 0x09, 0xd3, 0xe4, + 0x63, 0xee, 0x3c, 0x9f, 0x30, 0xc3, 0xf1, 0xa0, 0x73, 0x55, 0xba, 0x91, 0x43, 0xb9, 0x81, 0x34, + 0x0e, 0xc9, 0x31, 0xdb, 0x33, 0x8d, 0x78, 0xcb, 0x79, 0x27, 0x8f, 0xa7, 0x43, 0xd9, 0xf1, 0xe4, + 0x21, 0x5f, 0x7e, 0xc8, 0x05, 0xdc, 0x2e, 0x08, 0xd3, 0x28, 0x45, 0xa8, 0xaa, 0xa0, 0xd2, 0xdd, + 0x58, 0x27, 0xbb, 0xc2, 0xa8, 0x77, 0x1d, 0x42, 0x3e, 0x6f, 0xc7, 0x51, 0x5e, 0x56, 0xbf, 0x12, + 0x2a, 0x3d, 0x11, 0xf0, 0x56, 0x75, 0xc1, 0xc2, 0x86, 0xf7, 0x53, 0x27, 0x7f, 0xf1, 0xda, 0x4a, + 0xd0, 0xd7, 0x1e, 0x1c, 0x3c, 0x38, 0x88, 0x96, 0xc9, 0x36, 0x47, 0xc0, 0x41, 0x27, 0x79, 0x83, + 0xfc, 0xb8, 0x73, 0x29, 0x98, 0xe3, 0x1d, 0xdb, 0x36, 0x74, 0x94, 0xfc, 0xee, 0xd5, 0xdf, 0xbd, + 0xba, 0xda, 0xf6, 0xdc, 0xbd, 0xdf, 0x67, 0x6e, 0x52, 0x6e, 0x79, 0x39, 0xe1, 0x6c, 0x50, 0xe5, + 0xfb, 0x5f, 0x75, 0x04, 0x94, 0x4b, 0x1c, 0xfe, 0xd7, 0x5f, 0x9c, 0xfb, 0xf1, 0x83, 0x52, 0xd1, + 0x0c, 0xc8, 0x2b, 0x91, 0x42, 0x6b, 0x6b, 0x1a, 0x84, 0x1c, 0x27, 0x49, 0x60, 0x9d, 0xc1, 0x56, + 0x50, 0x89, 0x55, 0x4a, 0x25, 0x62, 0xf6, 0xff, 0x79, 0x12, 0x4a, 0xe8, 0x14, 0x0d, 0x6f, 0x3f, + 0xb8, 0x37, 0xbd, 0xa8, 0xea, 0xf1, 0x8e, 0xac, 0x99, 0xfd, 0xc9, 0x91, 0x3f, 0xf3, 0x95, 0xd0, + 0x82, 0x54, 0x40, 0xbd, 0x7b, 0xd2, 0xc3, 0x72, 0x20, 0xb2, 0xf3, 0xdc, 0x09, 0xea, 0xc7, 0xca, + 0xa7, 0x90, 0xef, 0x7a, 0xa0, 0x1a, 0x5b, 0x5f, 0x5c, 0x31, 0xdb, 0x53, 0x49, 0xad, 0x3f, 0x47, + 0xe9, 0x43, 0x82, 0xb7, 0x72, 0x3c, 0xe0, 0x7b, 0xab, 0x88, 0xfb, 0xe2, 0x40, 0x2e, 0xef, 0xa0, + 0x12, 0x90, 0x9f, 0xfc, 0xec, 0x22, 0xfc, 0x63, 0x0d, 0xcf, 0x6c, 0x68, 0x1a, 0x14, 0xb6, 0x64, + 0x4e, 0x45, 0xc0, 0x51, 0x99, 0x3e, 0x3d, 0x47, 0xe3, 0x24, 0x01, 0xe4, 0x24, 0x36, 0xe2, 0x24, + 0x20, 0x21, 0x1f, 0x51, 0x2e, 0xe0, 0x20, 0x56, 0xd4, 0x8d, 0x94, 0x1b, 0x77, 0x87, 0x06, 0x83, + 0x01, 0xb2, 0x58, 0x73, 0xb9, 0xc8, 0x0d, 0x74, 0xe6, 0x52, 0x05, 0xda, 0x3f, 0x81, 0x00, 0x9d, + 0xbf, 0x95, 0x6b, 0x4d, 0xa4, 0xc3, 0x72, 0x78, 0x4b, 0x3a, 0x6c, 0x07, 0x53, 0x2d, 0x1c, 0x22, + 0x5e, 0x03, 0x07, 0xca, 0xdd, 0xd8, 0xa7, 0xc1, 0x78, 0xa9, 0x53, 0x77, 0x64, 0x6b, 0x91, 0x6c, + 0x1f, 0xb4, 0xca, 0x60, 0xee, 0x26, 0xbf, 0x0b, 0x5e, 0xfb, 0x80, 0x4a, 0x9b, 0xdb, 0xae, 0xe8, + 0xd6, 0xdb, 0x77, 0x41, 0xe5, 0xf7, 0x12, 0x6d, 0x43, 0x3d, 0x67, 0xe9, 0xdc, 0xa2, 0x80, 0x07, + 0x1e, 0x25, 0xdf, 0xe0, 0xdf, 0xed, 0x40, 0x8a, 0xb1, 0xe2, 0x55, 0x4c, 0xd6, 0x2d, 0xf9, 0xa9, + 0x6e, 0x1b, 0xb8, 0x77, 0x2b, 0xca, 0x1e, 0x49, 0xd8, 0xbb, 0x18, 0xa2, 0xb7, 0xd2, 0x57, 0x5e, + 0x89, 0xc5, 0xfa, 0xa3, 0x43, 0xaa, 0xe5, 0xc8, 0x9d, 0xe9, 0x98, 0xf0, 0xb3, 0x50, 0x1d, 0x73, + 0x38, 0xc8, 0xf2, 0x25, 0x6b, 0xac, 0xa8, 0x02, 0x47, 0xc8, 0xff, 0x3a, 0x01, 0xbe, 0xa8, 0xd1, + 0xe1, 0x22, 0xeb, 0x4c, 0xf1, 0x3b, 0xec, 0xd1, 0x13, 0xaa, 0xdc, 0x83, 0xfa, 0xdf, 0x0d, 0x52, + 0x20, 0x46, 0xa7, 0x15, 0x62, 0x5e, 0x84, 0x14, 0x65, 0x44, 0xb6, 0x17, 0x53, 0xe9, 0x5e, 0xfc, + 0xc2, 0x89, 0x7d, 0xe0, 0x5c, 0x5d, 0xfb, 0xc6, 0x46, 0xb5, 0x84, 0xbc, 0x6f, 0x0e, 0x54, 0x84, + 0xb1, 0x9d, 0x31, 0x4b, 0x38, 0x10, 0xad, 0xe3, 0x77, 0x9f, 0xa7, 0x22, 0xdd, 0xc3, 0x52, 0xbf, + 0x32, 0x1b, 0x2d, 0x5b, 0xec, 0xc5, 0xb3, 0xe5, 0x69, 0xd9, 0x29, 0xfa, 0xd7, 0xa3, 0x4b, 0x53, + 0xfe, 0xe7, 0x9f, 0x50, 0x9f, 0x1a, 0xe9, 0x24, 0x9e, 0x4a, 0xf7, 0xf7, 0xc3, 0xf7, 0xa3, 0x5d, + 0x53, 0xae, 0x82, 0xb4, 0x9a, 0x46, 0x16, 0xe9, 0xa0, 0xae, 0x65, 0xe0, 0xc6, 0x11, 0xe3, 0x48, + 0x8f, 0x18, 0x2c, 0x9d, 0x72, 0x9d, 0xa1, 0x31, 0xb1, 0x5a, 0x5a, 0x53, 0xf5, 0xcf, 0xaf, 0xcd, + 0x39, 0x77, 0x76, 0xd3, 0x6c, 0xd6, 0x41, 0x55, 0x3a, 0x0d, 0xad, 0x1b, 0xe8, 0x8c, 0x24, 0x27, + 0x52, 0x4f, 0x09, 0xca, 0xbb, 0x4a, 0xb8, 0xc4, 0x23, 0x55, 0x55, 0xa2, 0x60, 0x40, 0x7c, 0x84, + 0xe2, 0xe6, 0x14, 0x4a, 0x73, 0x9d, 0x47, 0x2f, 0x5a, 0x35, 0x78, 0x99, 0xd6, 0xaa, 0xfb, 0xe3, + 0x60, 0xaf, 0x04, 0x7b, 0xcf, 0x0d, 0x4d, 0xd2, 0xf0, 0x00, 0x9d, 0xd9, 0x45, 0x1e, 0xd1, 0x21, + 0x21, 0xce, 0x11, 0x18, 0x9c, 0xa5, 0x96, 0xf0, 0xfb, 0xb0, 0xf6, 0x1e, 0x50, 0x99, 0xcf, 0x0d, + 0x36, 0xa1, 0x6c, 0xa5, 0xd3, 0x19, 0x2a, 0xd1, 0x9e, 0x43, 0xab, 0x88, 0xc3, 0xc2, 0x99, 0x30, + 0x43, 0x26, 0xec, 0x6f, 0x44, 0x18, 0xb5, 0xc0, 0xdb, 0x48, 0xbc, 0x0d, 0xa1, 0x11, 0xad, 0xb0, + 0x63, 0x8c, 0xc0, 0xca, 0x56, 0xc6, 0x8a, 0x5e, 0x84, 0x7f, 0xf6, 0x96, 0xb1, 0x11, 0xec, 0x6d, + 0x6b, 0x09, 0x33, 0x4a, 0x24, 0x9e, 0xea, 0x49, 0xb1, 0xee, 0xfa, 0x7c, 0x05, 0xdb, 0x7d, 0xa9, + 0xc9, 0xea, 0x4d, 0x2c, 0x7b, 0xe6, 0x23, 0x7f, 0x9a, 0x14, 0x07, 0x6f, 0x25, 0xbc, 0xd6, 0x63, + 0x18, 0x1e, 0x88, 0x05, 0x71, 0x0c, 0x56, 0xec, 0x3f, 0x01, 0xe5, 0xa8, 0x67, 0x1c, 0x5f, 0x9d, + 0x7a, 0x8e, 0xcf, 0xe3, 0xb4, 0x03, 0xc2, 0x2e, 0xd9, 0x21, 0x66, 0xc6, 0xbb, 0x6c, 0x87, 0xe8, + 0x64, 0x86, 0x89, 0x64, 0xcd, 0x64, 0xc6, 0x27, 0xf2, 0xa7, 0xcf, 0x76, 0xf1, 0xd9, 0x98, 0xfa, + 0x6a, 0x83, 0xb3, 0x85, 0xf0, 0x3d, 0x87, 0xcf, 0x90, 0x43, 0x6b, 0x69, 0x81, 0xe0, 0xba, 0x30, + 0x9a, 0x19, 0x07, 0x89, 0xd5, 0x29, 0xc4, 0x32, 0x79, 0x15, 0x2e, 0xc6, 0xf2, 0x14, 0xb4, 0x3c, + 0x6f, 0xf2, 0x4e, 0x87, 0x52, 0xab, 0x0f, 0xbe, 0x4d, 0xa7, 0x0c, 0x55, 0x81, 0xd1, 0x9f, 0xfa, + 0xad, 0xd5, 0x0f, 0xf2, 0x62, 0x4b, 0x0d, 0x18, 0x1b, 0x52, 0xfb, 0x31, 0xf5, 0xbd, 0x17, 0xd1, + 0x15, 0x48, 0xc3, 0x99, 0x64, 0x59, 0x82, 0x58, 0x7a, 0x8d, 0x9e, 0xcc, 0x2e, 0x90, 0xe1, 0xb7, + 0x31, 0x96, 0xb7, 0x01, 0x1f, 0x9d, 0xd6, 0xfe, 0xf1, 0x61, 0xb5, 0x9d, 0x4f, 0x80, 0x6d, 0x43, + 0xad, 0xa6, 0xcc, 0xeb, 0x82, 0xf2, 0x79, 0x3e, 0xac, 0xc5, 0xb4, 0x38, 0x40, 0x27, 0xc9, 0xa4, + 0x52, 0x23, 0x09, 0xef, 0xf5, 0x66, 0x63, 0xe4, 0x3c, 0xe6, 0xb3, 0xa3, 0x26, 0xe6, 0x84, 0x0a, + 0x70, 0x81, 0x97, 0xfe, 0x56, 0x27, 0x7f, 0xb5, 0x15, 0x6d, 0x23, 0x83, 0x5a, 0x8a, 0xf6, 0x15, + 0x3d, 0x19, 0x55, 0xdb, 0x6a, 0x59, 0xb5, 0xac, 0xd6, 0xab, 0xc6, 0xd5, 0x3a, 0x55, 0x5e, 0x9d, + 0xab, 0x1d, 0xac, 0xa7, 0x56, 0x66, 0xde, 0xee, 0x2a, 0x17, 0x18, 0x76, 0x58, 0x1b, 0x52, 0xa9, + 0x18, 0x24, 0x93, 0x6a, 0x39, 0x63, 0xeb, 0x6e, 0xa2, 0x90, 0x4c, 0xaa, 0xdd, 0xed, 0x1b, 0xd1, + 0x0e, 0x38, 0xea, 0xf0, 0x7d, 0x59, 0x29, 0x58, 0xc6, 0x51, 0xac, 0x27, 0x85, 0x2d, 0x73, 0x6b, + 0x32, 0xe4, 0x79, 0x7a, 0xe7, 0x5e, 0xab, 0x45, 0x4d, 0xdf, 0x0d, 0x95, 0xa4, 0x43, 0xf3, 0x53, + 0x95, 0xa3, 0x29, 0xf2, 0x13, 0x7e, 0xaa, 0xa9, 0x68, 0x8a, 0x3c, 0xc0, 0x4f, 0x75, 0x91, 0x07, + 0x84, 0x8c, 0xc4, 0xe7, 0x59, 0x64, 0x29, 0xa9, 0x93, 0x56, 0xa7, 0x38, 0x26, 0x90, 0xc9, 0xd7, + 0x44, 0xf9, 0xa8, 0xdf, 0xaa, 0x75, 0x7f, 0xdb, 0x60, 0x6d, 0x00, 0x69, 0x31, 0x7c, 0xde, 0xcd, + 0x31, 0xe5, 0xa4, 0xd1, 0xfc, 0x57, 0x33, 0xfb, 0x92, 0x4c, 0x35, 0x05, 0xe2, 0x85, 0x47, 0x96, + 0x31, 0x37, 0x5b, 0x06, 0x25, 0x9e, 0x66, 0xc9, 0x1b, 0xab, 0xcc, 0xe8, 0x79, 0xfa, 0x86, 0x8f, + 0xa4, 0x6a, 0xe5, 0xe6, 0x4b, 0xfa, 0x89, 0xb3, 0x5f, 0xc2, 0xa7, 0xb2, 0x21, 0x0d, 0x85, 0x91, + 0x86, 0xb2, 0x67, 0x0d, 0xd8, 0x49, 0x0a, 0x4d, 0xa1, 0x73, 0xaa, 0x6a, 0xbd, 0x32, 0x7b, 0x1d, + 0x1d, 0xfd, 0x9b, 0x8f, 0x24, 0x33, 0xfb, 0xc3, 0x7d, 0x94, 0xf4, 0x58, 0xb4, 0x7c, 0xee, 0x42, + 0xed, 0x7b, 0x93, 0x6b, 0x25, 0x6c, 0xe6, 0xf3, 0xd4, 0x1f, 0xf1, 0xf4, 0x27, 0xc8, 0x21, 0x89, + 0xe2, 0x59, 0x09, 0xeb, 0x70, 0x24, 0xd2, 0x9b, 0x0e, 0x75, 0xe5, 0x95, 0x30, 0x04, 0x15, 0xfc, + 0x66, 0xe2, 0x13, 0xf6, 0xaa, 0xf9, 0xd9, 0x00, 0xb5, 0x9e, 0x20, 0xd4, 0xf3, 0x73, 0x3e, 0xf8, + 0x02, 0xcf, 0x42, 0x90, 0x9f, 0xad, 0x10, 0xc2, 0xe7, 0x16, 0x7e, 0xbe, 0x02, 0xa5, 0x41, 0x0b, + 0xcc, 0xe7, 0xe7, 0x3c, 0x68, 0xc7, 0x92, 0x1e, 0x44, 0x2d, 0x81, 0xde, 0xec, 0xa0, 0xa2, 0xa4, + 0xec, 0xe0, 0xe7, 0xcb, 0x60, 0x49, 0x5c, 0xc2, 0xb7, 0x2e, 0x7e, 0x2b, 0x81, 0x38, 0x3e, 0xf7, + 0x62, 0x19, 0x7d, 0x78, 0xf5, 0x23, 0xcf, 0x5f, 0x78, 0xe1, 0x9a, 0x04, 0xdb, 0x4c, 0x07, 0x9f, + 0xe7, 0x93, 0x8c, 0x39, 0x6f, 0xab, 0xff, 0x03, 0x84, 0x31, 0x04, 0xc1, 0xc6, 0x0f, 0xb0, 0xee, + 0x30, 0xb4, 0x5c, 0xdb, 0x00, 0xc6, 0x6b, 0x83, 0x60, 0xc5, 0xcb, 0x8e, 0x57, 0x31, 0xbe, 0x97, + 0xe0, 0x35, 0xe9, 0x72, 0x92, 0x07, 0x4a, 0x60, 0x3a, 0x38, 0x2e, 0xa7, 0xf3, 0xa2, 0xae, 0x6c, + 0xf8, 0x00, 0xec, 0x57, 0x35, 0x83, 0xf3, 0x72, 0x9a, 0x5d, 0xf3, 0x62, 0x78, 0x15, 0x87, 0xcf, + 0xc4, 0xf2, 0xf4, 0x57, 0x85, 0xa0, 0x1a, 0xcb, 0x2b, 0xbb, 0x2a, 0x0c, 0xb5, 0x1c, 0xef, 0xc3, + 0xf8, 0x00, 0xc7, 0x37, 0x60, 0x9e, 0x20, 0x97, 0xd5, 0x8a, 0x61, 0x6d, 0x1c, 0x36, 0x0f, 0xd3, + 0xcf, 0xc7, 0x7c, 0xf5, 0x78, 0x6f, 0xff, 0xc9, 0x5e, 0x1a, 0x3d, 0x83, 0xff, 0xb3, 0x11, 0x79, + 0x01, 0xda, 0x7d, 0x8f, 0x56, 0xac, 0x20, 0x7a, 0x1a, 0x5b, 0x57, 0x9e, 0x88, 0x59, 0xd8, 0x8b, + 0x6f, 0xb1, 0x2b, 0x41, 0x9e, 0xc5, 0xe3, 0x0b, 0xb3, 0xb3, 0x57, 0xe2, 0xac, 0xa4, 0xfe, 0x32, + 0xa4, 0x0e, 0x35, 0xeb, 0xbb, 0x9e, 0x65, 0x51, 0x99, 0xd2, 0x86, 0xb2, 0xc0, 0x5e, 0xb1, 0x94, + 0x4b, 0xb9, 0xcd, 0x11, 0xce, 0xcd, 0x27, 0xfc, 0xd6, 0x63, 0xbf, 0xfe, 0x8c, 0x7d, 0x52, 0xaf, + 0x84, 0x3e, 0xd4, 0xa7, 0x7f, 0x54, 0xe2, 0x81, 0xb5, 0x71, 0x29, 0xeb, 0x87, 0x1a, 0xb5, 0xa1, + 0x49, 0x71, 0xdd, 0xb8, 0xf7, 0xc9, 0x31, 0x23, 0xea, 0x83, 0x93, 0xc4, 0x0c, 0x58, 0xae, 0x57, + 0x65, 0xe2, 0x50, 0x1e, 0xb2, 0xa9, 0x8d, 0xd4, 0xc3, 0x68, 0x6a, 0x27, 0x50, 0xae, 0xd0, 0xbb, + 0x89, 0x7a, 0x19, 0x4d, 0xfb, 0x23, 0x10, 0xe2, 0x77, 0x33, 0xb4, 0x84, 0x06, 0x6b, 0x02, 0x9e, + 0x39, 0x88, 0x87, 0x67, 0xb1, 0xf5, 0x1f, 0x41, 0x7d, 0xe4, 0x99, 0xf3, 0xef, 0x39, 0x21, 0x9e, + 0xda, 0x36, 0x48, 0xe5, 0xa2, 0xca, 0x9d, 0x37, 0xbe, 0xdc, 0x1e, 0x40, 0xbe, 0xfe, 0x5a, 0xdc, + 0xb0, 0x3b, 0xe1, 0xad, 0x97, 0x8e, 0x84, 0x07, 0x62, 0x95, 0x72, 0x00, 0xb9, 0xdd, 0x20, 0x71, + 0x3b, 0xb4, 0x3f, 0xea, 0x61, 0x6f, 0x58, 0x17, 0x9b, 0x84, 0x71, 0x9b, 0xd4, 0x62, 0x0c, 0x25, + 0xde, 0x67, 0xc5, 0x37, 0xc0, 0x50, 0xbd, 0xb7, 0x5e, 0x06, 0x0d, 0xae, 0x76, 0x0d, 0xae, 0x85, + 0x1a, 0x5c, 0xaa, 0x83, 0x3c, 0x23, 0x80, 0xee, 0xac, 0xc7, 0xcf, 0x74, 0x45, 0xb0, 0x2d, 0x41, + 0xb8, 0xba, 0x10, 0xae, 0x38, 0xc2, 0xd5, 0x4e, 0x70, 0xf5, 0xa4, 0xb6, 0x27, 0x62, 0x21, 0x1a, + 0xdb, 0x9c, 0xa2, 0x0a, 0x4a, 0xc9, 0x8b, 0x2e, 0x3f, 0xcf, 0x42, 0xaa, 0x78, 0x96, 0xa9, 0x1e, + 0xa0, 0x96, 0x4e, 0x11, 0xc0, 0x98, 0x0a, 0x7e, 0x9b, 0x8a, 0x54, 0x3f, 0x07, 0xaa, 0x31, 0xb6, + 0x16, 0x7b, 0xf5, 0x23, 0x28, 0xc5, 0x1e, 0x78, 0x18, 0x79, 0x45, 0xd1, 0xc4, 0xd6, 0xb1, 0x77, + 0xf0, 0xbb, 0xb0, 0xf7, 0x16, 0x46, 0x6e, 0x65, 0x5d, 0x9a, 0xce, 0x93, 0xb4, 0x46, 0x76, 0x26, + 0xa3, 0xe2, 0x7c, 0x51, 0x3a, 0xf5, 0x04, 0x7b, 0xa7, 0x58, 0x5b, 0xe3, 0xd2, 0xb3, 0x57, 0xf1, + 0x70, 0xb9, 0x8f, 0x67, 0xbf, 0x69, 0xec, 0x6b, 0x1e, 0x7f, 0xa3, 0xd5, 0xcd, 0x1f, 0xc0, 0x7c, + 0x47, 0x0b, 0xe9, 0x3b, 0x84, 0x31, 0xb2, 0x99, 0x1d, 0x2d, 0x71, 0x57, 0x13, 0xf4, 0xf4, 0x89, + 0xf7, 0x94, 0xdd, 0xd1, 0x42, 0x76, 0xd7, 0xe0, 0x2b, 0xf1, 0x49, 0x5a, 0xc8, 0x9e, 0xf4, 0x29, + 0x22, 0x1a, 0xdd, 0xd8, 0xc9, 0x52, 0xd7, 0xb8, 0xd8, 0x0b, 0xc8, 0x43, 0x26, 0x67, 0xcf, 0xbc, + 0xc0, 0xb7, 0x49, 0xd9, 0xb7, 0xec, 0xd9, 0x63, 0xf5, 0x64, 0xdb, 0xba, 0xe8, 0xa4, 0x5e, 0xeb, + 0x32, 0xe9, 0x2d, 0xb0, 0xae, 0x24, 0x79, 0xbe, 0x0c, 0x5e, 0x05, 0x1b, 0x3e, 0x75, 0x21, 0x3f, + 0x69, 0xb7, 0xba, 0x90, 0xce, 0x0d, 0xb7, 0x80, 0xb4, 0x28, 0x6e, 0xc9, 0x3d, 0xb3, 0x4f, 0x9b, + 0xcf, 0x0e, 0xa3, 0x16, 0x2d, 0xfd, 0xe3, 0xef, 0xb2, 0x31, 0x63, 0xf3, 0x15, 0x5f, 0x39, 0xca, + 0x63, 0xd4, 0x0c, 0x26, 0xbb, 0x9b, 0x55, 0xab, 0x83, 0xe3, 0x69, 0x8d, 0xa0, 0xd9, 0xe7, 0x98, + 0x6b, 0xff, 0x56, 0x57, 0xa9, 0xea, 0xb4, 0xff, 0x71, 0xde, 0x40, 0x78, 0xa0, 0xdb, 0x4e, 0xa1, + 0x3f, 0x3a, 0xdc, 0x07, 0x6b, 0x2a, 0xde, 0xdc, 0xa0, 0x7a, 0xdd, 0xcd, 0x8e, 0xb9, 0xf3, 0x90, + 0x99, 0xa4, 0x92, 0xd1, 0xb7, 0xd4, 0x3d, 0x78, 0x4f, 0xc4, 0x5e, 0xc0, 0x61, 0x3c, 0x03, 0x24, + 0xd5, 0x62, 0xdf, 0x3d, 0x6f, 0x60, 0x1e, 0x84, 0x07, 0x56, 0xee, 0x0b, 0x43, 0xd7, 0x27, 0x0d, + 0x1f, 0x82, 0xac, 0x3e, 0xe6, 0xf8, 0x4e, 0xb9, 0xf4, 0xce, 0x9c, 0x50, 0x43, 0xa0, 0xc1, 0x29, + 0x85, 0x50, 0x89, 0x93, 0x07, 0xc9, 0xb9, 0xee, 0x3b, 0x77, 0xca, 0x03, 0x74, 0x57, 0x1a, 0x15, + 0x7d, 0x45, 0x17, 0xe1, 0x69, 0xf4, 0xa9, 0xb6, 0x75, 0xf1, 0xc2, 0x6d, 0xeb, 0xa2, 0xaf, 0xcd, + 0x39, 0x81, 0x38, 0x9e, 0x1b, 0x00, 0x11, 0x8e, 0x18, 0x9e, 0x1b, 0x87, 0x1e, 0xa8, 0x46, 0x7d, + 0x2d, 0xb4, 0xbb, 0xc6, 0x8d, 0x56, 0xcd, 0x4b, 0x5a, 0xcc, 0x6b, 0x68, 0xdb, 0x58, 0x15, 0xb3, + 0x31, 0x91, 0x4a, 0x25, 0xa7, 0x1c, 0x4d, 0x5c, 0xeb, 0x43, 0x93, 0x02, 0xf9, 0xaa, 0xc3, 0xcc, + 0x27, 0x15, 0x5f, 0x73, 0x74, 0xe0, 0x5a, 0x3f, 0x98, 0x89, 0xf6, 0x52, 0x29, 0x21, 0xe3, 0x94, + 0xb9, 0x4e, 0x3e, 0x15, 0x59, 0x7a, 0xab, 0x5c, 0xa2, 0x73, 0x87, 0xe1, 0x55, 0xe7, 0x3c, 0x57, + 0x3d, 0xbe, 0xbf, 0x2d, 0x4a, 0x3c, 0x7f, 0x04, 0x79, 0x86, 0x7e, 0xda, 0x1c, 0x98, 0x1f, 0xff, + 0xd6, 0x34, 0x1f, 0xb4, 0x33, 0x1f, 0xc8, 0xae, 0x43, 0x55, 0x6a, 0xe7, 0xe9, 0xd5, 0x67, 0x66, + 0x49, 0x14, 0xe7, 0x72, 0x98, 0x1f, 0x46, 0x5d, 0x91, 0x4e, 0xc8, 0xbd, 0xcc, 0x07, 0x7a, 0x1c, + 0x43, 0x6e, 0x30, 0xf7, 0x12, 0xb4, 0x46, 0xe4, 0xfc, 0xf3, 0xf7, 0xd3, 0xfa, 0x28, 0xc4, 0x26, + 0x3b, 0x42, 0x8a, 0xcc, 0x27, 0x29, 0x27, 0xb8, 0xfe, 0x7f, 0x5e, 0x3d, 0xf3, 0x8d, 0x01, 0x9a, + 0x31, 0xa1, 0x56, 0xa8, 0xe5, 0x17, 0xc6, 0x39, 0xdb, 0x1a, 0x4f, 0x48, 0x09, 0x0d, 0xb6, 0xe5, + 0x02, 0x36, 0x9a, 0x0d, 0x11, 0x67, 0x9d, 0xd0, 0x39, 0x28, 0x54, 0x33, 0x73, 0xa0, 0xc9, 0x8e, + 0xb6, 0x4c, 0xaf, 0x46, 0x90, 0xff, 0xe4, 0xc0, 0x1b, 0x78, 0x12, 0xe6, 0xa7, 0xe7, 0x47, 0x14, + 0x87, 0xd3, 0xc6, 0x9c, 0xef, 0x18, 0x69, 0x0c, 0x7c, 0x3a, 0x4a, 0x2d, 0xad, 0xf2, 0x90, 0x57, + 0x7d, 0x8d, 0xca, 0xcd, 0xec, 0xbb, 0x1f, 0x9f, 0xfe, 0x5b, 0x04, 0x29, 0xd1, 0xc1, 0xde, 0xdd, + 0x17, 0x6b, 0x73, 0x66, 0x7a, 0x2c, 0x79, 0x11, 0x3f, 0x55, 0x0a, 0x6f, 0xfb, 0xc1, 0xcc, 0x39, + 0x4a, 0xb4, 0x8f, 0xe3, 0xbf, 0x1d, 0x81, 0xe4, 0xe3, 0x15, 0x12, 0x98, 0x5b, 0x21, 0xf9, 0x58, + 0x2d, 0x5e, 0x46, 0xbc, 0x5e, 0xce, 0xf5, 0x8d, 0x7c, 0xcb, 0xd2, 0xec, 0xce, 0x05, 0xc5, 0x4b, + 0x5e, 0x91, 0xbd, 0xd7, 0x56, 0x7a, 0x35, 0xbf, 0xc8, 0x00, 0xc9, 0xff, 0xee, 0xc5, 0xab, 0x1f, + 0x92, 0x3f, 0x1b, 0xc1, 0xfb, 0x2e, 0xf2, 0xc1, 0x9c, 0x9b, 0x63, 0xc2, 0xce, 0x87, 0x86, 0x66, + 0xff, 0x0c, 0x3f, 0x85, 0x2d, 0x1e, 0x1f, 0x16, 0x10, 0xe7, 0x61, 0x60, 0x5b, 0x3d, 0x50, 0x4c, + 0xe3, 0xf0, 0x31, 0xe7, 0x7d, 0xaf, 0xdc, 0xff, 0x6a, 0x7c, 0x01, 0x52, 0x3e, 0xc1, 0xfe, 0x14, + 0xb7, 0xbb, 0xe2, 0x32, 0x5e, 0x33, 0xe7, 0xd3, 0x2a, 0x2d, 0x81, 0x65, 0x50, 0x4c, 0x7e, 0xfa, + 0x11, 0xe2, 0x52, 0x0c, 0x37, 0x82, 0xed, 0x1a, 0x92, 0x1e, 0x25, 0x62, 0x1e, 0x34, 0x39, 0x89, + 0x4e, 0x43, 0x0c, 0xea, 0xb5, 0xd3, 0xcf, 0x58, 0xbb, 0x25, 0x0d, 0xe6, 0xb1, 0xc6, 0xc8, 0xce, + 0xd4, 0x83, 0x4e, 0x1f, 0xaf, 0xf8, 0xa1, 0xaa, 0x80, 0x25, 0xfc, 0xdb, 0x11, 0x09, 0x1c, 0x97, + 0x8e, 0xa2, 0xcc, 0xff, 0xb7, 0x0f, 0x25, 0x92, 0xf1, 0x28, 0xff, 0x51, 0xc8, 0x8b, 0xa7, 0x54, + 0xa2, 0x10, 0xd2, 0x61, 0x96, 0xf4, 0x53, 0x61, 0x5e, 0x26, 0xcc, 0x9c, 0x79, 0x12, 0xe9, 0xd0, + 0x6a, 0x49, 0x87, 0xe8, 0xe4, 0x74, 0x19, 0x29, 0x1d, 0x5c, 0x43, 0x90, 0xb7, 0x22, 0x9c, 0x7d, + 0xe0, 0xe1, 0x53, 0x0c, 0x2b, 0x19, 0xf6, 0x79, 0xe0, 0xa5, 0xfb, 0xcf, 0x5a, 0xa0, 0x16, 0xa5, + 0x47, 0x75, 0x5c, 0xd7, 0x80, 0x5a, 0x6b, 0x86, 0x0e, 0xda, 0x73, 0xe0, 0xfe, 0x2f, 0xc8, 0xd9, + 0x8e, 0xa4, 0xe1, 0x86, 0xad, 0x04, 0xf7, 0x08, 0xa4, 0xe1, 0xfe, 0x23, 0xfc, 0xe7, 0xe1, 0x4e, + 0xa5, 0xd2, 0xd0, 0x4a, 0x19, 0xb8, 0xc7, 0xb7, 0x00, 0x95, 0xdc, 0x0b, 0x5b, 0x10, 0x9b, 0xd0, + 0x82, 0x82, 0xf1, 0x2d, 0xc8, 0x9c, 0xc4, 0xf8, 0x7d, 0xea, 0xdf, 0xfa, 0x2a, 0xb7, 0xd9, 0xd9, + 0xec, 0xb2, 0xa1, 0x05, 0xe6, 0xb0, 0xbb, 0x0a, 0xc8, 0x4f, 0xcc, 0x15, 0x89, 0x69, 0x30, 0xef, + 0x52, 0x1f, 0xcc, 0x2b, 0x81, 0x97, 0xa7, 0x41, 0x5b, 0x2c, 0x72, 0x69, 0x03, 0xcc, 0x2f, 0xd2, + 0x35, 0x49, 0xbb, 0xe1, 0x52, 0x3f, 0xcc, 0x2b, 0x6f, 0xee, 0x05, 0x3a, 0xc5, 0x17, 0x52, 0x06, + 0x5d, 0xcc, 0xe9, 0x58, 0x0e, 0xf5, 0x7c, 0xee, 0xc6, 0x24, 0x65, 0x1a, 0x14, 0x29, 0x8d, 0x8e, + 0xa5, 0x60, 0xab, 0x08, 0x8e, 0x3f, 0xf7, 0xb5, 0x6d, 0xb0, 0xfd, 0xc7, 0x71, 0x03, 0xca, 0xca, + 0xd7, 0x02, 0x6e, 0xe4, 0x07, 0xc0, 0xeb, 0xf6, 0x7f, 0xa7, 0x9d, 0x61, 0xe7, 0xa8, 0x06, 0x67, + 0x24, 0x7b, 0x4e, 0x5f, 0x89, 0x1b, 0xda, 0xec, 0x72, 0x58, 0xee, 0x32, 0x33, 0x24, 0x3a, 0x55, + 0xdf, 0x04, 0xc3, 0x3a, 0xe4, 0x07, 0x6d, 0xdc, 0xee, 0x40, 0x01, 0xd8, 0xdd, 0x30, 0x6f, 0x18, + 0x53, 0xc5, 0x6c, 0x5e, 0x37, 0xb4, 0x82, 0x2f, 0x01, 0xa4, 0x93, 0x9f, 0x7e, 0x38, 0x7b, 0xa6, + 0x5f, 0xc0, 0x67, 0xd7, 0x21, 0xa5, 0xb1, 0x34, 0xf2, 0x56, 0x95, 0xe7, 0x39, 0x23, 0x35, 0xbe, + 0x6c, 0x0d, 0xa8, 0xbd, 0x14, 0xd2, 0xea, 0x87, 0xd3, 0xbb, 0x05, 0xa2, 0x25, 0x53, 0xd6, 0x6e, + 0x81, 0xb8, 0xe4, 0xc8, 0x7f, 0x77, 0x4b, 0xcf, 0x8f, 0x9a, 0xa4, 0xc4, 0x00, 0xfb, 0xcb, 0x3f, + 0x95, 0x73, 0x72, 0xa4, 0x2c, 0x4e, 0xdb, 0x25, 0x58, 0x95, 0x3a, 0x27, 0x97, 0x25, 0xd2, 0x8f, + 0x4b, 0x37, 0x34, 0x1b, 0x4b, 0xa5, 0x99, 0xea, 0x1d, 0xbf, 0xc0, 0x52, 0xf5, 0x01, 0xfc, 0xcd, + 0x96, 0x91, 0x3e, 0xbd, 0x63, 0x62, 0x5b, 0xb9, 0x97, 0xd3, 0x38, 0xc7, 0x56, 0x5d, 0xc6, 0x38, + 0x5f, 0x8f, 0x38, 0x92, 0x1b, 0x20, 0xc5, 0x38, 0x40, 0xbb, 0x7b, 0x1d, 0x20, 0x0e, 0xe4, 0x3d, + 0x70, 0x59, 0x00, 0xe6, 0x7d, 0x7d, 0xdb, 0xbd, 0x5a, 0xcb, 0x23, 0x3f, 0xa0, 0x53, 0xd9, 0x7e, + 0xfe, 0x3c, 0x5e, 0x07, 0xf1, 0x3a, 0xfd, 0x9f, 0x39, 0x9d, 0x6d, 0x65, 0x6f, 0x6c, 0xe5, 0x38, + 0x3f, 0xec, 0x55, 0x13, 0xce, 0x63, 0x1b, 0x97, 0x40, 0x78, 0x61, 0x7f, 0xfc, 0x71, 0x48, 0x6e, + 0x71, 0x0e, 0x4c, 0x33, 0x77, 0xe0, 0xf3, 0x03, 0x78, 0x21, 0x34, 0x8f, 0xbf, 0x9c, 0x29, 0xb9, + 0x1c, 0xdf, 0x2a, 0xf9, 0x29, 0xf9, 0xf8, 0x91, 0x6c, 0x85, 0xc4, 0x91, 0x9d, 0xbe, 0x6b, 0x88, + 0x96, 0x4b, 0xbe, 0x7a, 0x97, 0xcd, 0xe3, 0xd1, 0xf4, 0xb9, 0x64, 0x17, 0xee, 0xb2, 0x79, 0x7c, + 0x41, 0xe4, 0x3e, 0x9e, 0xf3, 0xcb, 0xa6, 0x6e, 0x9a, 0x2d, 0x76, 0xd9, 0xdc, 0xa7, 0xed, 0xb2, + 0xe9, 0xf0, 0x58, 0x72, 0xd2, 0xcf, 0xe2, 0xf0, 0x9c, 0x5d, 0x36, 0x8f, 0x47, 0x2e, 0x3c, 0xf5, + 0xec, 0xf1, 0x45, 0xe3, 0x4f, 0x3d, 0x43, 0x7b, 0xc2, 0x8d, 0x76, 0x39, 0x49, 0xa9, 0x22, 0x47, + 0xf8, 0xbe, 0xe1, 0x91, 0x81, 0xf1, 0x7b, 0x6e, 0xee, 0x7f, 0x95, 0xf8, 0x5d, 0xfa, 0x0c, 0x1d, + 0x8f, 0x5c, 0x5d, 0x09, 0x8e, 0x2a, 0xb9, 0xc9, 0xbf, 0xdb, 0xb7, 0xce, 0xff, 0xdd, 0x00, 0x38, + 0xbc, 0x92, 0x76, 0xb6, 0xb1, 0xad, 0xc9, 0xf7, 0x62, 0x37, 0x38, 0x86, 0xbb, 0xc1, 0xf9, 0x5d, + 0x1f, 0x38, 0xb9, 0x47, 0xab, 0xd3, 0xfa, 0x8a, 0x57, 0xae, 0x06, 0x39, 0x90, 0x92, 0x6a, 0x24, + 0xb9, 0x21, 0x95, 0x7c, 0x39, 0xb0, 0x1e, 0x53, 0x35, 0xf9, 0x07, 0x03, 0x2f, 0xfb, 0xbf, 0xdb, + 0x00, 0x4e, 0xd9, 0x07, 0xd2, 0x7a, 0xdf, 0xcc, 0x97, 0x28, 0x47, 0xcb, 0xdb, 0x3e, 0x6b, 0xf6, + 0x3c, 0xbe, 0xa7, 0x4b, 0xf1, 0xf2, 0xe1, 0xd5, 0x82, 0xd7, 0x3e, 0xbc, 0x90, 0x12, 0x9e, 0xa9, + 0xfe, 0xcf, 0xf8, 0xe3, 0x5f, 0xba, 0x6a, 0xf9, 0x57, 0x11, 0xc1, 0xb8, 0x78, 0x41, 0x03, 0x5b, + 0xb6, 0x62, 0x9d, 0xed, 0x48, 0x03, 0x57, 0xe1, 0xf3, 0x4f, 0xf1, 0xfa, 0x47, 0xbc, 0x5e, 0xcd, + 0x94, 0xbb, 0x19, 0xdf, 0x5c, 0x82, 0x06, 0x9e, 0x70, 0x8e, 0x17, 0x40, 0x54, 0x98, 0xb2, 0xb4, + 0xbb, 0xa3, 0xb3, 0x4f, 0x3c, 0xae, 0xfa, 0x61, 0xf7, 0x2d, 0xe2, 0xa9, 0x63, 0xc5, 0xcd, 0x4a, + 0xc7, 0xca, 0xee, 0xce, 0x8b, 0x9d, 0xe5, 0xf4, 0xb4, 0xf9, 0xaf, 0xa3, 0xa1, 0x2d, 0x5d, 0x5f, + 0x4e, 0x43, 0x5b, 0x16, 0x4e, 0xa4, 0xa1, 0x27, 0x4a, 0xbf, 0x8a, 0x86, 0xb6, 0x04, 0x27, 0xd2, + 0xd0, 0x96, 0xf9, 0x17, 0xd2, 0xd0, 0x96, 0x8e, 0xff, 0x38, 0x0d, 0xf1, 0x79, 0x93, 0xb6, 0x99, + 0xa3, 0xd8, 0x2e, 0x1c, 0xf1, 0xc8, 0x67, 0x1d, 0xcc, 0x77, 0x27, 0x23, 0xdf, 0x2d, 0x8f, 0x95, + 0x6a, 0x67, 0x6e, 0x63, 0xe8, 0x78, 0xde, 0x1b, 0x07, 0xa4, 0xa4, 0xbf, 0xd3, 0x4e, 0xab, 0xc4, + 0xdc, 0x76, 0xb8, 0x20, 0x77, 0x7d, 0x4e, 0xee, 0xda, 0xaf, 0xca, 0x3d, 0x2e, 0x57, 0x5b, 0x4e, + 0xae, 0xc8, 0xc5, 0x73, 0x69, 0xa7, 0xed, 0x16, 0xf7, 0x98, 0x15, 0xf3, 0x3b, 0x4f, 0xd0, 0x0a, + 0xcc, 0x7e, 0xe2, 0x75, 0x3f, 0xba, 0x74, 0x98, 0x9e, 0xc4, 0x7b, 0x89, 0xd4, 0xa4, 0x1b, 0xd6, + 0xe5, 0x86, 0x24, 0xa4, 0xdc, 0x37, 0x14, 0x33, 0x89, 0xdc, 0xf7, 0x8b, 0xa7, 0xed, 0x55, 0xe2, + 0xe0, 0x60, 0xf9, 0x5b, 0xca, 0xe1, 0x7b, 0x75, 0x97, 0x06, 0x25, 0x18, 0x49, 0x94, 0x8a, 0x55, + 0x1f, 0x3d, 0x18, 0x62, 0xfa, 0x3e, 0x29, 0xb1, 0x4e, 0xc4, 0x0e, 0x49, 0x97, 0xee, 0xa1, 0xfb, + 0x3c, 0x39, 0x3a, 0xc2, 0x3b, 0x14, 0xac, 0x64, 0x33, 0xa5, 0xcf, 0x5d, 0xf6, 0x1f, 0x07, 0x2b, + 0xc9, 0x07, 0xb2, 0x45, 0xa7, 0x24, 0x1e, 0x84, 0xf4, 0xc9, 0xbe, 0x12, 0x59, 0x9d, 0xc5, 0xa2, + 0x7f, 0xa6, 0x46, 0xc0, 0x45, 0x1a, 0xe0, 0x96, 0x37, 0xb5, 0x53, 0x7b, 0x2a, 0xc8, 0x0e, 0x4c, + 0x18, 0x12, 0x53, 0xb2, 0x96, 0x92, 0x76, 0x2a, 0x51, 0x28, 0xb0, 0x15, 0x82, 0xf8, 0x1c, 0xc4, + 0x67, 0x1f, 0x41, 0x7d, 0x54, 0x92, 0x21, 0xf5, 0x12, 0xc1, 0x7d, 0x54, 0xba, 0x74, 0x14, 0xc7, + 0x23, 0x42, 0x22, 0xee, 0xaf, 0xc3, 0xcc, 0x51, 0x1f, 0xf5, 0x8f, 0x73, 0xe6, 0x68, 0xc2, 0x8e, + 0xf7, 0x07, 0x66, 0x8e, 0x06, 0xef, 0xc4, 0xfb, 0x6d, 0x33, 0x47, 0x7f, 0x44, 0xe1, 0x8f, 0xcc, + 0x1c, 0xbd, 0x9f, 0xef, 0x28, 0x47, 0xd7, 0xb2, 0xc4, 0x1f, 0x24, 0x49, 0xbf, 0xe5, 0x38, 0xac, + 0xa3, 0xfb, 0xd6, 0x3e, 0xb8, 0x6b, 0x6a, 0x18, 0x86, 0xb2, 0x12, 0x26, 0xae, 0x47, 0xd9, 0xbf, + 0x06, 0x2d, 0xa4, 0x0a, 0xda, 0xcf, 0x15, 0xb7, 0x6b, 0x4f, 0x39, 0xf2, 0x0d, 0x4b, 0x5a, 0xc1, + 0x25, 0x75, 0x71, 0x49, 0x7f, 0x81, 0x6e, 0x2e, 0xa9, 0x0e, 0x56, 0x63, 0x49, 0x3d, 0x39, 0x25, + 0x59, 0xb1, 0xa4, 0x8e, 0xcc, 0xfb, 0x22, 0x8d, 0x92, 0x1e, 0x1a, 0x57, 0xd2, 0x8d, 0x5c, 0xd2, + 0x02, 0x2e, 0x69, 0x0c, 0xda, 0xe9, 0xfe, 0xc4, 0x28, 0xa8, 0x58, 0xd2, 0xc2, 0x9c, 0x92, 0x24, + 0x2c, 0x29, 0x92, 0x5b, 0x12, 0x53, 0x74, 0x4e, 0x49, 0xff, 0xfc, 0xda, 0xec, 0x73, 0x63, 0x7b, + 0x48, 0x4b, 0x8c, 0xdc, 0xd7, 0x76, 0x4f, 0xeb, 0xc6, 0xb8, 0x7e, 0xdb, 0x3d, 0xd1, 0xd3, 0x64, + 0x29, 0xe2, 0x58, 0x48, 0x30, 0x3f, 0xf5, 0x00, 0xcd, 0x4e, 0x26, 0x9f, 0x5c, 0xd3, 0xbe, 0x31, + 0x34, 0xcc, 0x1a, 0xa5, 0x5c, 0x5c, 0x09, 0xe5, 0x3d, 0x50, 0x24, 0x4b, 0x52, 0xd4, 0xd6, 0x23, + 0xbd, 0xf3, 0xc4, 0x3a, 0xe9, 0x3b, 0x01, 0x28, 0x17, 0xeb, 0xd3, 0x82, 0xd3, 0x12, 0x1f, 0x96, + 0x9e, 0x41, 0x5d, 0x28, 0xcd, 0x5b, 0x1d, 0xa4, 0x1b, 0x38, 0x2b, 0x73, 0x66, 0x94, 0x86, 0x50, + 0xc2, 0x6a, 0xba, 0x52, 0x57, 0x29, 0xf5, 0xa0, 0x83, 0xd6, 0x5e, 0xb3, 0x76, 0xc0, 0x60, 0x2f, + 0xa8, 0x2e, 0xa2, 0x49, 0x94, 0xd5, 0xe5, 0x53, 0x1b, 0xc0, 0x71, 0xdf, 0x2b, 0xb4, 0x9f, 0x10, + 0x29, 0x60, 0x53, 0x78, 0x30, 0xaa, 0x77, 0xba, 0x73, 0xca, 0x62, 0xdd, 0x41, 0xc8, 0x62, 0x8f, + 0xad, 0xc7, 0xca, 0x3b, 0xfe, 0x12, 0x4a, 0x8d, 0x19, 0xd2, 0xf5, 0xd3, 0x69, 0x5e, 0xb9, 0xbb, + 0x12, 0x9d, 0x59, 0x9d, 0x41, 0xeb, 0xc3, 0x1d, 0x5b, 0x61, 0x53, 0xb4, 0x0a, 0x29, 0x68, 0x93, + 0xec, 0x46, 0xad, 0xb2, 0x9c, 0x20, 0xc2, 0x94, 0x49, 0xa7, 0x2f, 0x27, 0xed, 0x60, 0x78, 0x30, + 0x56, 0x94, 0xb3, 0x53, 0x6d, 0xbd, 0xaa, 0x69, 0x1d, 0x7c, 0x8a, 0x97, 0x38, 0x17, 0xd9, 0x47, + 0xeb, 0x1f, 0x84, 0xb1, 0xad, 0xcf, 0x34, 0x9e, 0x00, 0x2b, 0xad, 0xb3, 0xb4, 0x6e, 0x54, 0xaa, + 0x8e, 0xff, 0xef, 0x39, 0x0f, 0xf0, 0x22, 0xdb, 0x97, 0x95, 0xab, 0x27, 0x9e, 0xda, 0x7a, 0xb1, + 0x3d, 0xce, 0x24, 0x25, 0x9e, 0x41, 0x2b, 0x65, 0x5b, 0x48, 0x92, 0xc8, 0xde, 0x79, 0x66, 0x17, + 0x5e, 0xff, 0x04, 0xc9, 0x67, 0x4b, 0x45, 0xf1, 0xbc, 0xbd, 0x3b, 0xd8, 0xb9, 0xba, 0xb3, 0x6b, + 0x65, 0x7c, 0x45, 0x67, 0x77, 0xaf, 0x32, 0xbf, 0xf3, 0xe6, 0x15, 0xe3, 0x78, 0xfe, 0xb6, 0x8a, + 0xcc, 0xb9, 0x7d, 0xca, 0xd7, 0x9d, 0xdb, 0x87, 0x1a, 0x13, 0xef, 0xeb, 0xc5, 0x5a, 0xb4, 0x7d, + 0xbd, 0xcf, 0x2c, 0xfc, 0xe6, 0xfb, 0x7a, 0x9f, 0x19, 0xfa, 0xf2, 0x7d, 0xbd, 0xcf, 0xf4, 0x4d, + 0xdc, 0xd7, 0xfb, 0xac, 0xf5, 0xab, 0xce, 0xed, 0x7b, 0x46, 0x9d, 0xb8, 0xaf, 0xf7, 0x99, 0xf8, + 0x85, 0xfb, 0x7a, 0x9f, 0x49, 0x5c, 0xb0, 0xaf, 0x57, 0xf9, 0xe6, 0xe7, 0xf6, 0x21, 0xe7, 0xd5, + 0x4f, 0xa1, 0xd6, 0x9e, 0x46, 0x3b, 0x7f, 0x09, 0x14, 0x51, 0x19, 0x72, 0x17, 0x9d, 0xf8, 0x26, + 0xfa, 0x1b, 0x92, 0xdb, 0xeb, 0xf1, 0x1a, 0xfa, 0x4f, 0xf4, 0xfb, 0x8a, 0xa5, 0xab, 0x6e, 0xf9, + 0xaa, 0x03, 0x7a, 0xc6, 0xc5, 0x0b, 0x9d, 0x60, 0xdb, 0x0b, 0x58, 0xe7, 0xb0, 0x34, 0xcd, 0x3c, + 0x03, 0x9f, 0x9f, 0xc5, 0x6b, 0x23, 0x24, 0xff, 0xc5, 0x2c, 0x0a, 0x6d, 0xa4, 0x4d, 0xfa, 0xca, + 0x8c, 0x19, 0x28, 0xf9, 0x57, 0xdf, 0xdc, 0xb5, 0xb4, 0x43, 0xb9, 0xb5, 0x7b, 0x69, 0x6f, 0xe5, + 0x78, 0x19, 0xbf, 0x5d, 0xd1, 0xfa, 0xbb, 0x2e, 0xde, 0xfe, 0x15, 0x67, 0xeb, 0x5a, 0xf9, 0x6c, + 0xdd, 0x62, 0xfc, 0x9d, 0x01, 0xff, 0xff, 0xf6, 0xde, 0x06, 0xbc, 0xa9, 0xeb, 0x4a, 0x14, 0x5d, + 0xe7, 0x48, 0x96, 0x85, 0x10, 0x8e, 0x22, 0x14, 0xd7, 0x71, 0x5d, 0x72, 0xa2, 0x11, 0x8a, 0x10, + 0xc2, 0x52, 0x1c, 0x87, 0x7a, 0xa8, 0x4b, 0xe5, 0x63, 0x63, 0xcb, 0xc2, 0xb8, 0xae, 0x4c, 0x88, + 0x9b, 0xd2, 0xe4, 0x60, 0xec, 0x23, 0x20, 0xfe, 0x51, 0x8d, 0x71, 0x5c, 0xea, 0xe1, 0xca, 0x3f, + 0x38, 0xc6, 0xa1, 0x31, 0x21, 0x84, 0xa6, 0x79, 0xbd, 0xb9, 0x79, 0x7d, 0xbd, 0x2d, 0x25, 0x7f, + 0x0e, 0xa5, 0x94, 0xe1, 0x71, 0x73, 0x1d, 0xca, 0x50, 0x9a, 0x64, 0xf2, 0x08, 0xa1, 0x24, 0x65, + 0x98, 0x84, 0x50, 0x9a, 0x30, 0x84, 0xbf, 0x49, 0x48, 0x86, 0x82, 0xb1, 0xee, 0x5a, 0x7b, 0x1f, + 0xd9, 0xb2, 0x0d, 0x99, 0xf4, 0xcd, 0xf7, 0xdd, 0xf7, 0xbd, 0x6f, 0xce, 0xf6, 0xb7, 0xe5, 0x73, + 0xf6, 0xd9, 0xbf, 0x6b, 0xef, 0xbd, 0xf6, 0xda, 0x7b, 0xaf, 0x9f, 0x5b, 0xc8, 0xb6, 0x2e, 0x96, + 0x95, 0xc9, 0x6d, 0xeb, 0x0e, 0xfe, 0x15, 0xb6, 0x1a, 0x07, 0xe3, 0x37, 0xee, 0xf3, 0xc1, 0xd8, + 0xc4, 0x3e, 0x1f, 0x1c, 0xfe, 0xbc, 0x3e, 0x1f, 0xac, 0x99, 0xd8, 0xe7, 0x83, 0x2b, 0x26, 0x53, + 0x08, 0x83, 0xed, 0x93, 0x6c, 0xeb, 0xd6, 0x7c, 0x71, 0xdb, 0xba, 0xfe, 0x8c, 0x40, 0x07, 0x64, + 0xbc, 0x79, 0x01, 0xc6, 0xf8, 0x12, 0x0f, 0xc7, 0x84, 0x51, 0x7c, 0x87, 0x10, 0x72, 0x9b, 0x5d, + 0x95, 0x74, 0x0f, 0x3c, 0xf8, 0x6e, 0x8b, 0x61, 0xc7, 0xc6, 0xfa, 0x40, 0xd9, 0xf9, 0x71, 0x36, + 0xf3, 0x5e, 0x2f, 0x3f, 0x0b, 0x37, 0xfd, 0xf1, 0xf5, 0x3f, 0xbe, 0xee, 0xca, 0xa7, 0x7d, 0xcc, + 0x2c, 0xdc, 0x1d, 0xa5, 0xda, 0x9c, 0x23, 0x8c, 0xb6, 0x54, 0x3b, 0xe5, 0xc3, 0xbc, 0x2a, 0x17, + 0x50, 0xea, 0xf0, 0xe4, 0xd4, 0xf2, 0xce, 0xdd, 0x90, 0x12, 0x7e, 0x20, 0x59, 0xbf, 0xff, 0x20, + 0x9e, 0x59, 0xbd, 0xa2, 0xbe, 0xa1, 0xe1, 0xf3, 0x06, 0xdc, 0xf8, 0x08, 0x7c, 0xc4, 0xfd, 0x2a, + 0x00, 0x23, 0xef, 0xc5, 0xb8, 0xcd, 0xd1, 0x5f, 0x49, 0x38, 0x82, 0x12, 0x30, 0xb2, 0x7b, 0xf1, + 0xf8, 0xec, 0x17, 0xcf, 0xab, 0xa6, 0x94, 0xae, 0xfa, 0xc6, 0xda, 0xfa, 0x3a, 0xd0, 0xdd, 0x7f, + 0x36, 0x97, 0x2a, 0x9f, 0xc4, 0xc6, 0x10, 0x14, 0x57, 0x94, 0x83, 0x7f, 0x1e, 0x14, 0xcf, 0x5b, + 0xd0, 0x5e, 0xbf, 0x7c, 0x4d, 0x6b, 0x3d, 0x3c, 0xf0, 0x40, 0x5d, 0x7d, 0xed, 0x9a, 0xe8, 0x03, + 0x8d, 0xf5, 0x8d, 0xe0, 0xf5, 0x7a, 0xa5, 0x3b, 0x66, 0xae, 0xbe, 0x43, 0x6a, 0xa9, 0x6f, 0x5d, + 0xd3, 0xd2, 0x54, 0x5f, 0x27, 0x3d, 0x44, 0x42, 0x3e, 0x6a, 0x4b, 0x3d, 0x3e, 0xae, 0x5e, 0x19, + 0x6d, 0x5a, 0xd6, 0x20, 0x05, 0xda, 0x67, 0x36, 0xb4, 0x5b, 0x6e, 0x14, 0x75, 0x4d, 0xd3, 0xf5, + 0x22, 0x2f, 0xaa, 0x6f, 0x6c, 0x6e, 0xf9, 0xbe, 0xd4, 0x50, 0xbf, 0xec, 0x41, 0xa9, 0x59, 0x95, + 0x66, 0x36, 0xac, 0x91, 0x6a, 0xbf, 0xdf, 0x5a, 0xbf, 0xda, 0x02, 0x10, 0x29, 0x86, 0x48, 0xfd, + 0xea, 0x35, 0x0d, 0xad, 0x79, 0xf0, 0x0d, 0x60, 0x83, 0x15, 0xaa, 0xb8, 0x19, 0x74, 0x12, 0x02, + 0x92, 0xea, 0x9b, 0xea, 0x56, 0x36, 0x45, 0x47, 0x4d, 0xa3, 0xc3, 0x77, 0xb0, 0xfe, 0xf4, 0xe1, + 0xbb, 0x16, 0xa8, 0xac, 0x7f, 0x48, 0x62, 0x09, 0x92, 0x66, 0xd6, 0x29, 0xdc, 0x32, 0xae, 0xc9, + 0xf5, 0xcb, 0x57, 0x34, 0x03, 0x09, 0x18, 0xdd, 0x09, 0x12, 0xfe, 0x59, 0xe0, 0x81, 0xd8, 0xf2, + 0x15, 0xcb, 0x5a, 0xe0, 0x81, 0x46, 0xf6, 0xaf, 0xaa, 0xbc, 0x6a, 0x81, 0x34, 0x61, 0xaf, 0xf5, + 0xf7, 0x3f, 0x19, 0x6f, 0x37, 0xb7, 0x70, 0x9e, 0x2b, 0xe4, 0x2e, 0x00, 0x23, 0xd2, 0x33, 0xc4, + 0x4f, 0x77, 0xcc, 0x1d, 0xa4, 0x13, 0x55, 0x35, 0x7b, 0xc1, 0x47, 0xb0, 0x54, 0xe2, 0x9c, 0x77, + 0x71, 0xed, 0xff, 0x46, 0x29, 0xe8, 0x5a, 0x01, 0x16, 0xc2, 0xc5, 0xbb, 0x16, 0xc6, 0x5c, 0x14, + 0xc6, 0x38, 0x04, 0xe9, 0x9e, 0xc6, 0x16, 0xb5, 0x13, 0x2f, 0xb2, 0x33, 0xc2, 0x62, 0x6e, 0x5e, + 0xeb, 0x50, 0x40, 0x58, 0x82, 0xe1, 0xd6, 0xa8, 0x05, 0x53, 0x23, 0xed, 0x33, 0x7c, 0xbf, 0x62, + 0xd6, 0x9e, 0x6a, 0x3c, 0xd0, 0x90, 0x15, 0xb3, 0x0e, 0xf5, 0xb4, 0x58, 0x77, 0xc4, 0xd5, 0x19, + 0xa9, 0xe9, 0x14, 0x1b, 0x93, 0xbc, 0x18, 0xd9, 0x13, 0xaa, 0x19, 0x18, 0x7c, 0x24, 0x0a, 0x82, + 0x4d, 0xf2, 0x82, 0x59, 0x7e, 0x16, 0xf6, 0x7a, 0x1e, 0x84, 0x38, 0x61, 0xa8, 0x59, 0x0d, 0x60, + 0x45, 0x5c, 0xfc, 0x1c, 0x58, 0x5b, 0x0c, 0x9e, 0x4e, 0xba, 0xdf, 0xa6, 0xf8, 0xfb, 0x0f, 0x7b, + 0x41, 0x4b, 0xb9, 0x83, 0xd9, 0x26, 0xb4, 0x86, 0x7b, 0x1a, 0xee, 0x27, 0x4d, 0xb7, 0xaa, 0xdd, + 0x2f, 0xfa, 0x67, 0xe3, 0x4e, 0x80, 0xbe, 0x19, 0x31, 0xa7, 0x9c, 0xaa, 0x01, 0x0c, 0x07, 0x66, + 0xc1, 0x6f, 0x36, 0x14, 0xb0, 0xf0, 0x47, 0x53, 0x9e, 0x29, 0x4e, 0x01, 0xe1, 0xfb, 0x98, 0xf5, + 0x60, 0x7c, 0xb0, 0x27, 0xba, 0x74, 0xe6, 0x83, 0xa4, 0xba, 0x6a, 0x66, 0x35, 0xd8, 0xc6, 0xd5, + 0xb4, 0x44, 0xc2, 0x5c, 0xa3, 0x36, 0xcd, 0x0e, 0xe0, 0x68, 0xde, 0x4e, 0xcc, 0x27, 0xea, 0x61, + 0x27, 0xad, 0x1e, 0x5c, 0x77, 0xac, 0xd2, 0x83, 0x50, 0xf0, 0xe6, 0x41, 0xf3, 0x20, 0xa4, 0xf7, + 0xc1, 0xc4, 0x52, 0xaa, 0x06, 0xfc, 0xa2, 0xfc, 0x0b, 0xf6, 0x3e, 0x97, 0x9d, 0x46, 0x5a, 0x47, + 0x73, 0x73, 0x55, 0x0d, 0x60, 0x4b, 0x6d, 0x60, 0xc5, 0x96, 0xda, 0x92, 0xbc, 0x8e, 0x8a, 0xb8, + 0xd6, 0x22, 0xa5, 0x21, 0x4e, 0x2e, 0xac, 0x5c, 0xb3, 0x69, 0x13, 0xa3, 0x9d, 0x9c, 0x5f, 0xd4, + 0xe6, 0x31, 0x62, 0x50, 0x8d, 0x76, 0xda, 0xb1, 0xff, 0x8b, 0xaf, 0xa3, 0x3b, 0x2e, 0xde, 0x78, + 0x1d, 0xdd, 0x71, 0x62, 0xe2, 0x3a, 0xba, 0xab, 0xe7, 0xf3, 0xd6, 0xd1, 0x1d, 0x07, 0x27, 0xae, + 0xa3, 0x3b, 0xde, 0x99, 0x4c, 0x3b, 0xed, 0x38, 0x3d, 0x89, 0x76, 0x72, 0x7e, 0x71, 0xda, 0x09, + 0x43, 0xa7, 0x6a, 0xe3, 0x7b, 0x2a, 0xc2, 0x67, 0xdf, 0x9f, 0x37, 0x48, 0x45, 0x04, 0xcf, 0x5d, + 0x4f, 0x56, 0xbc, 0x87, 0x44, 0x3f, 0x54, 0x1e, 0x4d, 0x99, 0x0b, 0xa4, 0x4b, 0x1f, 0x40, 0xc4, + 0xdd, 0xae, 0x48, 0x70, 0xf9, 0x75, 0x4d, 0x2c, 0x45, 0x0a, 0xc7, 0x03, 0xd1, 0x52, 0xd6, 0xa6, + 0x27, 0xa9, 0x1e, 0x86, 0xd7, 0x19, 0x6c, 0x5c, 0x08, 0xed, 0x91, 0x5f, 0xd7, 0xb9, 0xa0, 0x2d, + 0xe1, 0x2b, 0x21, 0xbb, 0xb4, 0x2e, 0x7c, 0xff, 0xfb, 0x86, 0x53, 0xfd, 0x2c, 0x7c, 0x15, 0x0f, + 0x73, 0x96, 0x8c, 0xdd, 0x5f, 0x25, 0xed, 0x7d, 0x07, 0x73, 0x26, 0x58, 0x58, 0x3e, 0x3e, 0xce, + 0x26, 0xf3, 0xfe, 0x49, 0x16, 0x98, 0x7f, 0x3e, 0x29, 0xa4, 0x6b, 0x5c, 0x0a, 0xcd, 0xa6, 0xb3, + 0x5f, 0xc4, 0x18, 0x56, 0xd7, 0x18, 0xcf, 0x6b, 0x26, 0xdf, 0x31, 0xd1, 0xf9, 0x13, 0x7e, 0xb1, + 0xd1, 0x1d, 0x80, 0xdb, 0x0f, 0x59, 0xf8, 0x35, 0x07, 0xeb, 0xf3, 0x34, 0x3f, 0x6b, 0x4a, 0xcd, + 0x77, 0xe4, 0xc9, 0x89, 0x25, 0x8d, 0xe4, 0xa5, 0x96, 0x34, 0xe2, 0xa0, 0x37, 0xa2, 0x49, 0xc3, + 0xdb, 0x68, 0xb7, 0x2c, 0x79, 0x40, 0x1a, 0xdc, 0x86, 0x23, 0xdf, 0x14, 0x4b, 0xdc, 0x8e, 0xfb, + 0x67, 0x16, 0xea, 0x4e, 0x86, 0xaa, 0x39, 0x8c, 0x9f, 0x76, 0x56, 0xfa, 0x59, 0x31, 0x4e, 0xd2, + 0x48, 0x56, 0xf6, 0xcb, 0x79, 0x4c, 0x09, 0x12, 0x98, 0xc2, 0xc3, 0xf8, 0x8d, 0x9d, 0xc4, 0xa9, + 0xea, 0xf3, 0x83, 0x87, 0x61, 0x9b, 0x0c, 0xbf, 0x09, 0xe7, 0xc1, 0x9e, 0x84, 0x2d, 0x97, 0x59, + 0xab, 0xcc, 0xb5, 0x78, 0xe9, 0xd6, 0x07, 0xa4, 0xb4, 0xd4, 0xdb, 0x3a, 0xec, 0x91, 0x79, 0xce, + 0x74, 0x17, 0xb8, 0xd3, 0xc8, 0x2e, 0xee, 0x48, 0x53, 0x38, 0x18, 0xcd, 0x74, 0x1a, 0xe9, 0xf9, + 0xda, 0xe1, 0x31, 0x98, 0x5f, 0xab, 0x54, 0x1c, 0xa9, 0x6f, 0xa6, 0xf5, 0x94, 0x93, 0xb2, 0x93, + 0x95, 0x63, 0xf3, 0x97, 0x82, 0xc7, 0x5f, 0x06, 0x2e, 0xdc, 0xdf, 0x0d, 0x2b, 0x30, 0xf2, 0x0c, + 0xfd, 0x67, 0x92, 0x68, 0xc7, 0x49, 0xc2, 0xc1, 0x3b, 0x07, 0x6c, 0xfe, 0x34, 0xb2, 0x1e, 0x3d, + 0x3b, 0x98, 0x38, 0x85, 0xd4, 0x16, 0x4e, 0xc0, 0xd4, 0x1a, 0x60, 0xe8, 0x09, 0xe2, 0xe7, 0x4c, + 0x7b, 0x26, 0xbf, 0x03, 0xec, 0x7f, 0x38, 0x07, 0x66, 0x8a, 0x3d, 0x72, 0xd4, 0x1d, 0xa4, 0x91, + 0xf2, 0xeb, 0x26, 0xce, 0xd1, 0xff, 0xb5, 0x42, 0x3e, 0x57, 0x96, 0xec, 0x0f, 0xf5, 0x94, 0x94, + 0xa8, 0xca, 0x18, 0x07, 0xae, 0xd3, 0xd2, 0x0a, 0x6d, 0xe0, 0x5b, 0x80, 0xa3, 0xe4, 0x92, 0x0f, + 0x6b, 0xe3, 0xb4, 0x10, 0xaf, 0x7a, 0xf2, 0x3d, 0xea, 0x93, 0x4a, 0x11, 0x8e, 0xc6, 0x96, 0x91, + 0x1d, 0xf1, 0xa8, 0x25, 0x1c, 0x6f, 0xcc, 0x89, 0xc4, 0x11, 0x5e, 0xc6, 0x31, 0x0e, 0xda, 0x53, + 0x8f, 0xb6, 0xc3, 0x3a, 0xe1, 0x47, 0xaf, 0x21, 0x6e, 0xed, 0x1f, 0x0b, 0xf5, 0xa7, 0xc9, 0xbf, + 0x28, 0xbf, 0x72, 0xed, 0x48, 0xe5, 0x16, 0xac, 0xdf, 0x69, 0x7f, 0x1a, 0x62, 0x90, 0x2d, 0x4e, + 0x0b, 0x8e, 0x4c, 0x30, 0x9c, 0xa3, 0xbc, 0x13, 0x27, 0xdd, 0x40, 0xf5, 0xbc, 0xb6, 0x9f, 0xdd, + 0xe0, 0x76, 0xab, 0x90, 0x96, 0x19, 0x2e, 0x51, 0x41, 0x98, 0xcf, 0x38, 0x90, 0x5e, 0x45, 0x2c, + 0x9b, 0xef, 0x7e, 0x10, 0xcc, 0x74, 0x0a, 0xee, 0x99, 0x03, 0x66, 0xc5, 0x85, 0x79, 0xcc, 0xc6, + 0xbc, 0x27, 0xe6, 0x52, 0x4d, 0x31, 0x38, 0x1f, 0xbf, 0xf1, 0x0d, 0xe2, 0xec, 0x56, 0x8f, 0x2a, + 0x60, 0xfc, 0xa9, 0xd3, 0xca, 0xbe, 0xaf, 0xf2, 0xf1, 0x52, 0xee, 0xcf, 0x05, 0x9c, 0x2b, 0xbd, + 0x51, 0xb7, 0xd3, 0x40, 0xe1, 0x23, 0x71, 0x86, 0x8f, 0x9e, 0x74, 0xb2, 0x76, 0x5f, 0x7b, 0x41, + 0x6a, 0x04, 0xf3, 0xed, 0x41, 0xc1, 0x3e, 0xb7, 0x03, 0x04, 0x05, 0xa0, 0x8b, 0xea, 0x20, 0xdc, + 0xa9, 0xb6, 0xb5, 0x88, 0xad, 0x2c, 0x46, 0x22, 0x87, 0x61, 0x30, 0xd9, 0x69, 0x70, 0xb1, 0xf7, + 0x91, 0xb5, 0xd8, 0xcf, 0xf9, 0xe6, 0xd9, 0x60, 0x82, 0x87, 0xa2, 0x3e, 0x36, 0xcf, 0xbe, 0xc7, + 0xcb, 0xc3, 0xd6, 0x1e, 0x8f, 0x4a, 0x4e, 0x6b, 0xeb, 0x08, 0x7b, 0x7f, 0xce, 0x03, 0x6a, 0x96, + 0x73, 0x0e, 0xce, 0x2c, 0x7a, 0xab, 0x53, 0x6c, 0x08, 0xab, 0xef, 0x2b, 0x16, 0xba, 0x64, 0x51, + 0x8c, 0x3e, 0x0c, 0x27, 0x1e, 0x79, 0xba, 0xf7, 0xae, 0xdc, 0x33, 0x7c, 0x90, 0x7a, 0x08, 0xe1, + 0x68, 0xfc, 0xd1, 0x6b, 0xed, 0x58, 0x6b, 0xbf, 0x01, 0xc3, 0x6a, 0x71, 0xe4, 0xb1, 0xde, 0x1f, + 0xfe, 0x09, 0xb5, 0xa0, 0x1d, 0x7e, 0xf4, 0x5a, 0x07, 0x7d, 0x9b, 0x93, 0x38, 0x8d, 0x61, 0x08, + 0x65, 0x7f, 0x3a, 0xfe, 0x7f, 0x87, 0x61, 0xb0, 0x32, 0xc5, 0xdc, 0x0e, 0x72, 0x19, 0xc5, 0x70, + 0x5a, 0x58, 0xbb, 0x0e, 0x60, 0x8b, 0x41, 0xdc, 0x95, 0x7a, 0x2a, 0xe0, 0x09, 0x4a, 0x8d, 0x89, + 0x53, 0x4c, 0x46, 0xe3, 0xec, 0xec, 0x06, 0xb0, 0x24, 0x2e, 0xe1, 0xaf, 0x3d, 0x71, 0x31, 0x5c, + 0x86, 0xab, 0x42, 0xe9, 0x9b, 0x07, 0x66, 0xc7, 0xfa, 0xcc, 0x89, 0xe3, 0x8a, 0x71, 0x76, 0x69, + 0xe2, 0x78, 0xb8, 0x27, 0x5a, 0x8b, 0xb1, 0x4f, 0xd8, 0x86, 0xc1, 0xe9, 0x34, 0xba, 0xcc, 0x6e, + 0x36, 0xfe, 0x59, 0xfb, 0x9b, 0xb0, 0x4d, 0x27, 0x22, 0x9d, 0xe1, 0x20, 0xce, 0x12, 0xac, 0xdd, + 0xd5, 0x11, 0x37, 0x10, 0xaf, 0x90, 0xc1, 0x2a, 0x15, 0x49, 0xd8, 0x5b, 0xbe, 0x50, 0xa4, 0x2f, + 0x6c, 0x53, 0x2f, 0xcf, 0x0e, 0x82, 0xf9, 0x2b, 0x58, 0x1d, 0x10, 0xbe, 0x42, 0xfc, 0xa9, 0xe2, + 0x92, 0x47, 0xb1, 0xc6, 0x46, 0x8c, 0xbf, 0xdd, 0x93, 0xf1, 0xe4, 0xf3, 0x89, 0x13, 0xd8, 0x3a, + 0x93, 0x0f, 0x4b, 0x68, 0x07, 0xec, 0x01, 0xab, 0x93, 0xfa, 0xd9, 0x98, 0x33, 0x14, 0xe9, 0x61, + 0xdc, 0x58, 0x46, 0x5b, 0x96, 0xfa, 0xf1, 0xec, 0x22, 0x5c, 0x69, 0x33, 0x69, 0x34, 0x61, 0xaa, + 0x8b, 0x31, 0x20, 0x39, 0xa9, 0xc0, 0x18, 0x87, 0xd2, 0x1b, 0xd4, 0x9a, 0xdb, 0x1b, 0x13, 0xc7, + 0xa1, 0x70, 0x56, 0x18, 0x2c, 0xac, 0x27, 0x7e, 0xc0, 0xfb, 0x6c, 0x78, 0x15, 0x5b, 0xbd, 0xec, + 0x29, 0xb7, 0xee, 0x1e, 0x1a, 0x8b, 0x8a, 0x51, 0x7e, 0x3e, 0x71, 0x9a, 0xfa, 0xc4, 0x35, 0x27, + 0x71, 0x96, 0xf8, 0x47, 0xdd, 0xd8, 0x16, 0xd6, 0x2a, 0x33, 0xcb, 0x8d, 0x64, 0x54, 0xb1, 0x26, + 0x7e, 0x33, 0x96, 0xf8, 0x34, 0x83, 0xce, 0xf1, 0xaa, 0x01, 0x69, 0x4e, 0xe2, 0xe2, 0xe0, 0xf3, + 0xd8, 0xb7, 0x00, 0x3f, 0x63, 0xd2, 0x28, 0x23, 0x7b, 0x32, 0x09, 0xcf, 0xee, 0x89, 0xcd, 0xc6, + 0xb1, 0x93, 0x38, 0x1b, 0x13, 0x3e, 0xdc, 0x86, 0x79, 0x5e, 0xdc, 0x17, 0x97, 0x8a, 0x28, 0xef, + 0x7d, 0x71, 0xd6, 0x86, 0xbc, 0x70, 0xa7, 0x5a, 0x3b, 0x3b, 0x9c, 0x40, 0x48, 0x24, 0x86, 0xfd, + 0x69, 0x24, 0x9d, 0xe2, 0x4f, 0x0b, 0x35, 0x26, 0x2e, 0xb3, 0xb9, 0xf9, 0xb0, 0x1f, 0x24, 0xb9, + 0x72, 0xd3, 0x98, 0x3c, 0xd6, 0xc8, 0x2e, 0x25, 0x10, 0xee, 0x8c, 0x06, 0x6e, 0x98, 0x62, 0xc7, + 0xa4, 0x14, 0x64, 0xd7, 0xd7, 0x11, 0xe9, 0x8e, 0x49, 0x83, 0x38, 0x87, 0x12, 0x6b, 0x67, 0x37, + 0x26, 0xce, 0x82, 0x39, 0x8c, 0x2d, 0x8c, 0xe6, 0xa5, 0xb6, 0x1c, 0xeb, 0x74, 0x7a, 0x73, 0x7c, + 0x76, 0x51, 0xe2, 0x32, 0xf5, 0xd7, 0x95, 0x9c, 0x94, 0x3c, 0xdf, 0x23, 0xfb, 0xf0, 0x57, 0xea, + 0x28, 0x9f, 0x59, 0x8d, 0x89, 0x4b, 0x4c, 0xb2, 0x68, 0xcf, 0x95, 0xad, 0xae, 0x60, 0xcd, 0x40, + 0x60, 0x6a, 0x34, 0x8b, 0xe6, 0x86, 0xd3, 0x23, 0xd8, 0xf9, 0x4c, 0x61, 0x33, 0x79, 0xcf, 0x5f, + 0xce, 0x20, 0x4d, 0x41, 0xb0, 0xfe, 0x8b, 0x36, 0xce, 0xb6, 0x43, 0x61, 0xb4, 0x00, 0xc7, 0x90, + 0xe7, 0x78, 0xaf, 0xbb, 0xf4, 0xed, 0x03, 0x29, 0xfc, 0xfd, 0x38, 0x67, 0x9b, 0x4d, 0xd5, 0xf1, + 0x3b, 0xc6, 0xe1, 0x0c, 0xc5, 0xec, 0x34, 0xf1, 0x19, 0x21, 0x63, 0x4a, 0x2a, 0xef, 0x2f, 0x7b, + 0x09, 0xf6, 0x52, 0xbc, 0x66, 0xa0, 0x0d, 0x70, 0x06, 0xee, 0xa7, 0x52, 0xc3, 0x9b, 0x54, 0x80, + 0xdd, 0x88, 0xcb, 0x8d, 0xf8, 0x7f, 0x90, 0xc5, 0xda, 0x5a, 0x33, 0xc0, 0xf0, 0xc3, 0x91, 0xa8, + 0x8d, 0xfd, 0xff, 0x47, 0xc6, 0xed, 0x07, 0x70, 0x58, 0x8d, 0x21, 0x1e, 0xd3, 0xe6, 0x9c, 0x1b, + 0xa2, 0xb5, 0x13, 0x66, 0x6e, 0x28, 0x39, 0x73, 0x13, 0x4f, 0xe1, 0x9b, 0x37, 0xfc, 0x2c, 0xd6, + 0x2a, 0x8b, 0xcf, 0xb1, 0x2b, 0x66, 0xfe, 0xff, 0x2f, 0x1e, 0xc6, 0x75, 0x6b, 0x53, 0xac, 0x08, + 0x9b, 0x76, 0x38, 0x82, 0x21, 0x71, 0xa4, 0x85, 0x46, 0xe7, 0xe7, 0x5f, 0x3c, 0x34, 0x3f, 0x79, + 0xdc, 0xcb, 0x67, 0xe8, 0x0b, 0x86, 0x99, 0x68, 0xdc, 0x47, 0x1d, 0xbc, 0xee, 0x4e, 0x70, 0xb1, + 0x79, 0x37, 0xe2, 0x56, 0xc4, 0xb6, 0x36, 0x27, 0x8e, 0xeb, 0x14, 0xfc, 0x2f, 0xb6, 0x45, 0x25, + 0x03, 0x49, 0xd4, 0x24, 0x76, 0xd2, 0x69, 0xf6, 0xec, 0x12, 0x30, 0x17, 0x74, 0x80, 0xed, 0x8f, + 0xfb, 0x9d, 0xd6, 0xf1, 0x58, 0x31, 0x0a, 0xc3, 0x36, 0x05, 0xae, 0x06, 0xdd, 0x40, 0x71, 0x88, + 0x07, 0xfa, 0x6a, 0x3e, 0x49, 0x75, 0x16, 0xcc, 0x77, 0x73, 0x5e, 0x93, 0x00, 0xae, 0x9d, 0x05, + 0xf9, 0x7e, 0x98, 0xcb, 0x6a, 0x72, 0xde, 0x15, 0x5c, 0x78, 0x01, 0x3c, 0x72, 0xbd, 0xdf, 0xe0, + 0x9f, 0xe6, 0xb7, 0xfa, 0xfd, 0x08, 0xcf, 0xa9, 0x44, 0x5d, 0x1c, 0x6b, 0xf2, 0x50, 0x7b, 0xb2, + 0xd4, 0x60, 0xb8, 0x19, 0x9c, 0xd1, 0x9a, 0xb0, 0x8c, 0x74, 0xa1, 0xc1, 0xef, 0xe0, 0x5f, 0x0f, + 0x9a, 0x59, 0x6b, 0xf8, 0xfb, 0x9e, 0xbf, 0x6c, 0xf1, 0x80, 0xd3, 0x0b, 0x39, 0x9c, 0xda, 0xc6, + 0xa7, 0x02, 0xf6, 0xc4, 0xec, 0x58, 0x2b, 0x33, 0x58, 0x7a, 0x53, 0xab, 0xfd, 0xc8, 0x23, 0x4c, + 0x7e, 0xd0, 0xc8, 0xbe, 0xb9, 0x63, 0x96, 0x99, 0x38, 0x53, 0x5c, 0x3d, 0x98, 0x07, 0x71, 0x80, + 0xd0, 0x48, 0xba, 0x42, 0xbc, 0xef, 0xaf, 0x96, 0x56, 0x3e, 0x8e, 0x61, 0x76, 0x16, 0x72, 0x8d, + 0xdd, 0x63, 0x64, 0xe1, 0xf8, 0xf0, 0x44, 0x25, 0x76, 0x66, 0x54, 0x48, 0xd2, 0x35, 0x0b, 0xae, + 0x5c, 0xb6, 0x23, 0x9d, 0x86, 0xf5, 0xff, 0xb7, 0xcd, 0xf4, 0xce, 0x68, 0x30, 0x87, 0x64, 0x24, + 0x5e, 0x2e, 0x92, 0x02, 0xc4, 0xb5, 0xef, 0x1d, 0x5a, 0xfb, 0xdc, 0x38, 0x0a, 0xdc, 0x73, 0xa8, + 0x9e, 0xd8, 0x52, 0xa3, 0x2b, 0xb8, 0xf6, 0xd8, 0xb1, 0x1f, 0x12, 0x8f, 0xbd, 0xfc, 0x0b, 0x7f, + 0x1a, 0xc9, 0x82, 0x14, 0xe4, 0x54, 0x6e, 0xe9, 0x38, 0x73, 0x3c, 0x19, 0x66, 0xaa, 0xdc, 0x22, + 0x37, 0x26, 0x46, 0x48, 0xc6, 0x08, 0x73, 0x3e, 0xc9, 0xb8, 0xb0, 0xd7, 0x8f, 0xd2, 0x81, 0x24, + 0x2f, 0x37, 0x72, 0xe0, 0x32, 0x83, 0x8a, 0x15, 0x57, 0x9a, 0x83, 0xb9, 0x38, 0x82, 0x0f, 0x92, + 0x4c, 0xc9, 0xc8, 0xef, 0x2e, 0x72, 0xa8, 0xfc, 0x73, 0xcc, 0x43, 0xf2, 0x8d, 0x00, 0x7b, 0xb1, + 0x56, 0x53, 0xa5, 0x32, 0x9a, 0x7b, 0x95, 0x5b, 0x28, 0x5f, 0xbf, 0x21, 0x44, 0x39, 0xa7, 0xf9, + 0x2d, 0x5a, 0xcc, 0xbd, 0x2c, 0x1f, 0x97, 0x9a, 0x83, 0x73, 0xed, 0xdd, 0x68, 0x26, 0x7e, 0x27, + 0x1e, 0x53, 0x13, 0x8d, 0x17, 0x5c, 0x7d, 0xab, 0xd8, 0x57, 0x87, 0x56, 0x93, 0x1a, 0x69, 0x76, + 0x92, 0xf6, 0xa8, 0x1a, 0xe0, 0xd4, 0x87, 0x9a, 0x81, 0x7b, 0x08, 0x69, 0x70, 0x3b, 0x52, 0x27, + 0x46, 0xaa, 0x33, 0x41, 0x48, 0x2d, 0x08, 0xf7, 0xa8, 0x16, 0xa4, 0xe7, 0xad, 0x2f, 0x9d, 0x01, + 0x47, 0x23, 0x0b, 0x27, 0x7c, 0x27, 0x01, 0x41, 0x7c, 0xf8, 0x34, 0x8e, 0xdc, 0x4c, 0x7a, 0x17, + 0x02, 0x84, 0x79, 0x76, 0xa5, 0xf3, 0x7e, 0x60, 0x2d, 0x36, 0x68, 0xb5, 0x6a, 0x45, 0x9c, 0x87, + 0xef, 0xd8, 0x82, 0x37, 0x78, 0xc8, 0xf1, 0xf3, 0x4c, 0x96, 0xd8, 0x13, 0xcd, 0x9f, 0xfd, 0xa0, + 0x90, 0x99, 0xb8, 0xe2, 0x37, 0x2c, 0xb8, 0xf2, 0xd9, 0x0c, 0x82, 0x3d, 0xb6, 0xe7, 0x0a, 0x83, + 0xcb, 0x34, 0x9a, 0xd1, 0x9f, 0xd5, 0x91, 0x5d, 0x6e, 0xd6, 0x17, 0x7b, 0x3e, 0x6b, 0x23, 0xc8, + 0x11, 0x3f, 0x6b, 0xb2, 0x8e, 0xd1, 0x08, 0xff, 0xf2, 0xe9, 0x61, 0xac, 0x9d, 0x8b, 0xee, 0x33, + 0xb0, 0x1c, 0x5b, 0x34, 0xcb, 0x69, 0x8e, 0x74, 0x52, 0x2d, 0x12, 0xbb, 0x93, 0xe1, 0xb2, 0x4d, + 0xf6, 0x80, 0x40, 0x63, 0x69, 0x66, 0x11, 0x48, 0xec, 0x1b, 0xee, 0x38, 0xee, 0x1d, 0x22, 0x09, + 0xa5, 0x99, 0x21, 0xf0, 0x71, 0x88, 0x7c, 0x56, 0x8a, 0x18, 0xd5, 0x0b, 0x9e, 0xaf, 0x05, 0xb1, + 0xe5, 0x64, 0xb7, 0x1c, 0xfb, 0xf7, 0xd3, 0x3e, 0x2a, 0x63, 0xd1, 0x95, 0x4f, 0x2f, 0x57, 0x6e, + 0x1d, 0x1b, 0x29, 0x8c, 0x3f, 0xd4, 0xc1, 0xdb, 0x34, 0xb2, 0x14, 0xeb, 0x7c, 0x6c, 0x01, 0xf5, + 0x57, 0x13, 0xd2, 0xe3, 0x8d, 0x89, 0x33, 0x64, 0x7d, 0x1c, 0x47, 0x0d, 0xcd, 0x2a, 0x26, 0xc5, + 0xae, 0x59, 0xa4, 0x47, 0x0a, 0x2e, 0x75, 0xcd, 0x73, 0x07, 0x63, 0xc6, 0x31, 0x2e, 0x3e, 0xe2, + 0x84, 0x14, 0x24, 0xa2, 0xa3, 0xd2, 0x2f, 0xb6, 0x08, 0xa1, 0xa2, 0xb1, 0x5d, 0x0a, 0xf1, 0xa0, + 0xa8, 0x39, 0x7e, 0x11, 0x7b, 0x32, 0x8a, 0xf5, 0xe9, 0xc2, 0x1d, 0xce, 0x28, 0xcd, 0x8c, 0x2b, + 0x15, 0xc0, 0x99, 0x99, 0x48, 0x1f, 0xa6, 0x9f, 0xc5, 0x3d, 0xdd, 0x9e, 0x4f, 0xdb, 0x3c, 0x41, + 0xa7, 0x0f, 0x67, 0x8c, 0xcc, 0x66, 0x8c, 0x0f, 0x67, 0x0c, 0x3d, 0x1d, 0x61, 0x7b, 0xa7, 0x3d, + 0x9f, 0xee, 0x44, 0xbc, 0xb7, 0x71, 0x66, 0x50, 0xc8, 0xa4, 0xbd, 0x13, 0x83, 0xf2, 0xed, 0xd4, + 0x1b, 0xaf, 0x96, 0x72, 0x3e, 0x9e, 0xe3, 0x01, 0xa6, 0x47, 0x21, 0x81, 0x38, 0x3b, 0x0b, 0x67, + 0xaf, 0x34, 0x1b, 0x63, 0x63, 0xcc, 0x69, 0x2c, 0xe6, 0x2c, 0xbf, 0x0f, 0x82, 0x4a, 0x4e, 0x4c, + 0xc0, 0xaf, 0x33, 0x26, 0x7d, 0xcd, 0xc7, 0xaf, 0x05, 0x95, 0x7b, 0x2e, 0xed, 0x24, 0x5c, 0xe5, + 0x67, 0x52, 0x17, 0xc3, 0x87, 0xdd, 0x20, 0x79, 0xd3, 0xdf, 0xad, 0x1a, 0xe0, 0x3b, 0x3f, 0x92, + 0xa6, 0xc1, 0x18, 0xed, 0x34, 0xce, 0x9d, 0x61, 0xde, 0xd2, 0xb1, 0xdd, 0x0a, 0xe7, 0xb8, 0x19, + 0x39, 0xa6, 0xfd, 0x3f, 0x82, 0x7b, 0xbe, 0x13, 0xa9, 0x2d, 0x0d, 0x77, 0x47, 0x8d, 0x31, 0x07, + 0xdf, 0x21, 0x74, 0x58, 0x6b, 0x06, 0x38, 0xaf, 0x01, 0xdd, 0x56, 0x49, 0x48, 0xb3, 0x1f, 0xda, + 0x0e, 0x46, 0xc2, 0x57, 0x22, 0xe0, 0xb8, 0xb0, 0xd6, 0x9a, 0x95, 0x30, 0xf1, 0x46, 0xe1, 0x5b, + 0x57, 0xed, 0x67, 0x92, 0x18, 0x89, 0x8f, 0xe3, 0x71, 0x83, 0x68, 0x00, 0x7b, 0xd9, 0x18, 0xcd, + 0x90, 0x22, 0xce, 0x31, 0x99, 0x81, 0x4d, 0x18, 0x66, 0x8d, 0x5a, 0xc7, 0xb8, 0xa3, 0x12, 0xb9, + 0xae, 0xee, 0x99, 0x32, 0x58, 0x93, 0xd2, 0x7f, 0x9c, 0xd7, 0x82, 0xf3, 0x0a, 0x91, 0x64, 0x19, + 0x6f, 0x65, 0x62, 0x2d, 0x8e, 0xb9, 0x60, 0x74, 0x9e, 0x14, 0x41, 0x7c, 0x63, 0xf4, 0x9b, 0x43, + 0x38, 0x57, 0x69, 0x9c, 0x7c, 0x95, 0x6e, 0x05, 0x73, 0x9c, 0x11, 0x69, 0x4c, 0x42, 0x70, 0xd3, + 0x11, 0xac, 0x25, 0xe6, 0x68, 0x94, 0x22, 0x72, 0x80, 0xcf, 0x77, 0xd2, 0x59, 0x11, 0x8b, 0x72, + 0x8e, 0xa1, 0xeb, 0xe4, 0x3d, 0x83, 0xe5, 0xed, 0xc1, 0x9c, 0x6c, 0xce, 0xc8, 0x5b, 0x67, 0x30, + 0xe5, 0x0d, 0x73, 0x4b, 0xcd, 0x09, 0xb1, 0x81, 0x48, 0x1c, 0xa7, 0x94, 0x1b, 0x62, 0x5e, 0x84, + 0xbe, 0x64, 0x47, 0x08, 0x99, 0x69, 0xae, 0x24, 0x9e, 0xfa, 0x03, 0x3e, 0x51, 0xd9, 0xae, 0xdb, + 0x5c, 0x0f, 0x8c, 0x71, 0xa7, 0xb2, 0xd6, 0x63, 0x7d, 0x23, 0xf1, 0x14, 0x7e, 0xb0, 0xcd, 0xb8, + 0x0e, 0x1a, 0xd1, 0x9b, 0xd1, 0x5b, 0x47, 0xb9, 0x53, 0x2f, 0x69, 0x90, 0xf7, 0xf8, 0x23, 0x98, + 0x37, 0x49, 0x53, 0x3b, 0xf0, 0xd7, 0x0c, 0x59, 0xb8, 0x2f, 0x92, 0xb0, 0x4c, 0x57, 0x9b, 0xed, + 0xe8, 0x00, 0xee, 0x88, 0x7c, 0x34, 0xae, 0x31, 0x2c, 0x0b, 0xe7, 0x9c, 0x99, 0xce, 0x03, 0xaa, + 0xfb, 0x5e, 0x7a, 0x45, 0x35, 0x45, 0x3a, 0xe9, 0x9d, 0xe0, 0xc9, 0xb9, 0x29, 0xb5, 0xfd, 0x92, + 0x35, 0x6a, 0x74, 0x56, 0xc9, 0x37, 0xcb, 0xb8, 0xae, 0xa2, 0x37, 0x33, 0xe9, 0x4e, 0x2a, 0x25, + 0xc7, 0x8b, 0xb9, 0xe2, 0xdc, 0x61, 0xfb, 0xc9, 0x5d, 0xf7, 0xb6, 0x72, 0xac, 0xb3, 0x0a, 0xe7, + 0xa7, 0xca, 0x24, 0xdc, 0x6d, 0x36, 0x9b, 0x15, 0xe0, 0x9b, 0x51, 0x13, 0xfe, 0x36, 0xab, 0x11, + 0x1b, 0xce, 0x73, 0x7c, 0xaa, 0x64, 0xef, 0x4d, 0xaa, 0x8c, 0x58, 0xc6, 0x18, 0x35, 0x79, 0xb0, + 0x75, 0x8a, 0x99, 0xcd, 0xfb, 0xfd, 0xb8, 0xa6, 0x18, 0x71, 0xd5, 0xe8, 0x67, 0x78, 0x6a, 0x7b, + 0x78, 0x7d, 0xd4, 0x81, 0xef, 0x0c, 0x27, 0x8c, 0x1c, 0x44, 0x7a, 0x32, 0x8d, 0x87, 0x63, 0x98, + 0x85, 0x87, 0x61, 0x4d, 0x0b, 0x93, 0x77, 0x0d, 0x04, 0xe5, 0x48, 0x3c, 0x9c, 0xa5, 0x5e, 0xe1, + 0xf5, 0x56, 0x2c, 0x26, 0x48, 0x1c, 0xc2, 0x92, 0xa6, 0xd4, 0x9a, 0x89, 0x2e, 0x94, 0x83, 0x95, + 0x6b, 0xe8, 0xee, 0x81, 0xeb, 0x3b, 0xc8, 0xf5, 0x43, 0xbe, 0x07, 0x57, 0x45, 0xda, 0xeb, 0x8e, + 0x38, 0x3c, 0x41, 0x6f, 0x03, 0x64, 0xfd, 0xd3, 0x3f, 0xfe, 0xd3, 0x3f, 0x76, 0x40, 0xce, 0x2d, + 0x14, 0x96, 0xd8, 0xef, 0x85, 0xf0, 0x73, 0xb8, 0x27, 0x44, 0xcc, 0xfe, 0xc4, 0xab, 0x91, 0x1f, + 0xe2, 0x5c, 0xfe, 0xb9, 0x23, 0xef, 0x1d, 0xb0, 0x8a, 0x30, 0x13, 0xc3, 0xfa, 0x23, 0xfd, 0x7b, + 0xfb, 0x69, 0x3f, 0x50, 0xf6, 0xf1, 0x3b, 0x60, 0x9b, 0x8e, 0xa5, 0x54, 0x47, 0x2b, 0x6a, 0x33, + 0x58, 0xeb, 0xb2, 0xf1, 0x37, 0xa2, 0x2e, 0x56, 0x72, 0xf0, 0x7f, 0x4b, 0x34, 0x13, 0x7f, 0x57, + 0x47, 0x03, 0xac, 0xc5, 0x41, 0xa9, 0xcc, 0xbf, 0x42, 0xc8, 0x24, 0x59, 0x19, 0x3f, 0x9d, 0xff, + 0xf8, 0x78, 0x49, 0x48, 0x05, 0x10, 0xfc, 0x96, 0xb6, 0xf9, 0xb0, 0x6f, 0xa8, 0x3e, 0x4f, 0x2b, + 0x73, 0xa5, 0x86, 0xa4, 0xbc, 0x8e, 0xcb, 0xec, 0x4c, 0x63, 0xa1, 0xdb, 0x15, 0xc9, 0x99, 0xd6, + 0x3a, 0x93, 0x3d, 0x1f, 0xc4, 0x27, 0x70, 0x4c, 0x47, 0xaa, 0x28, 0x4d, 0x24, 0x5d, 0x0e, 0x09, + 0x1e, 0x4a, 0xb5, 0xaa, 0x85, 0x44, 0x8d, 0x96, 0xe2, 0xc9, 0xa4, 0x8c, 0x3c, 0x8e, 0x8c, 0x13, + 0xa1, 0x0f, 0xe7, 0x17, 0x62, 0x8b, 0x43, 0xd8, 0x6f, 0x15, 0x5e, 0x63, 0x83, 0x58, 0xb2, 0x1e, + 0x31, 0x45, 0x49, 0x07, 0xd0, 0xaa, 0x38, 0xbf, 0x84, 0x49, 0xd2, 0x9c, 0x52, 0x44, 0x9f, 0xa8, + 0x49, 0x8a, 0x6f, 0xd1, 0xe4, 0xb9, 0xc1, 0x65, 0x8a, 0x74, 0xb5, 0xdd, 0xb6, 0xb5, 0x0b, 0xe9, + 0xc5, 0xae, 0x68, 0x86, 0xf6, 0xf5, 0xf1, 0xaa, 0x01, 0x2f, 0xa8, 0x87, 0xc3, 0x3d, 0x0d, 0xd6, + 0xdb, 0xf6, 0xc2, 0x9c, 0x02, 0x57, 0x75, 0xb7, 0xcb, 0xb4, 0xb8, 0x4b, 0x0a, 0xc7, 0x20, 0xd2, + 0x6d, 0xfb, 0xb7, 0x02, 0x57, 0x24, 0xbe, 0x33, 0xde, 0x74, 0x49, 0x12, 0x9b, 0xc4, 0x98, 0x20, + 0xe7, 0x99, 0x19, 0xd7, 0x75, 0x61, 0x07, 0xad, 0x12, 0xc9, 0xda, 0x14, 0x88, 0xad, 0xb6, 0x23, + 0x03, 0x7e, 0xe2, 0xdf, 0x2d, 0xc4, 0xb1, 0x7f, 0x3f, 0x8e, 0xc6, 0x42, 0x37, 0xd1, 0xc9, 0x88, + 0x1b, 0x70, 0x84, 0xd2, 0x19, 0x44, 0x47, 0xd5, 0x00, 0x9d, 0x39, 0x8c, 0xa6, 0x3a, 0xa5, 0xe9, + 0x1c, 0xa9, 0x40, 0xba, 0xa6, 0x0a, 0xc7, 0xdd, 0x62, 0x4c, 0xb3, 0x54, 0xaa, 0x7e, 0xf3, 0x23, + 0x30, 0xd3, 0xd8, 0x9a, 0xe1, 0x4d, 0x3f, 0xf5, 0x32, 0xa8, 0x05, 0x83, 0x1e, 0x10, 0xd5, 0x3c, + 0x87, 0x07, 0x0c, 0x3b, 0xbd, 0xe9, 0x7f, 0x52, 0x3d, 0xe5, 0x17, 0xa0, 0x00, 0xe9, 0x1c, 0xaf, + 0x90, 0x49, 0x98, 0xf4, 0xf7, 0xbb, 0x99, 0xb4, 0xae, 0x95, 0xaf, 0xed, 0x35, 0xcf, 0xb2, 0x19, + 0x47, 0xe7, 0x7c, 0x5b, 0x70, 0xcf, 0x5f, 0x93, 0x7f, 0xb3, 0x6a, 0xb2, 0xda, 0x90, 0x36, 0xb5, + 0x2e, 0x3c, 0x0d, 0x42, 0x16, 0xa6, 0x77, 0x2e, 0x52, 0x4a, 0xb1, 0xf7, 0xe6, 0xab, 0xe7, 0x95, + 0x4c, 0x92, 0xe4, 0xc1, 0x67, 0x89, 0x8d, 0x60, 0xa7, 0x9a, 0x4b, 0x31, 0xd5, 0x4c, 0xbf, 0x40, + 0xab, 0x29, 0xc7, 0xd3, 0x7f, 0xa8, 0x63, 0x14, 0x21, 0x12, 0x10, 0x7e, 0xc3, 0x53, 0x3f, 0xc4, + 0xb5, 0x7d, 0x1a, 0x2f, 0x07, 0x43, 0x2a, 0xbd, 0x53, 0x6c, 0xb7, 0xee, 0x86, 0xa8, 0xf9, 0x65, + 0xdc, 0xa9, 0x84, 0x41, 0xdd, 0x21, 0x85, 0xdb, 0xc1, 0x95, 0xb6, 0xe5, 0x87, 0x7e, 0x19, 0xf2, + 0x15, 0xd2, 0x7c, 0x62, 0x3c, 0xd4, 0x73, 0xa8, 0xe7, 0xc3, 0x3e, 0xfc, 0x8d, 0xfb, 0x82, 0x8b, + 0xce, 0x0b, 0x33, 0x16, 0x7d, 0x7c, 0x1a, 0x7c, 0x9e, 0xf4, 0xfb, 0x6f, 0x6b, 0xc2, 0x2d, 0xcc, + 0x5d, 0x38, 0x7f, 0xf3, 0x77, 0xbe, 0x00, 0x12, 0x8e, 0xbf, 0xfd, 0x9e, 0x4a, 0x84, 0x5c, 0x06, + 0xd2, 0x6f, 0x21, 0x98, 0x47, 0x38, 0x6d, 0x1e, 0xa3, 0xbc, 0x70, 0xdc, 0xe7, 0xd2, 0xbe, 0x16, + 0x7e, 0x86, 0xfb, 0xb8, 0xba, 0x18, 0xa2, 0x00, 0xb8, 0x8b, 0x2e, 0xb7, 0xd4, 0x18, 0xfe, 0x0a, + 0x6a, 0x0b, 0xfe, 0xa6, 0xa9, 0x3e, 0x45, 0xa6, 0x1b, 0x5b, 0x4e, 0x7f, 0xb0, 0x15, 0xa2, 0x96, + 0x4b, 0xbb, 0x92, 0x3c, 0x2c, 0x83, 0x0d, 0xee, 0x99, 0x23, 0x5d, 0xac, 0x1d, 0x19, 0xad, 0x34, + 0x3e, 0xb0, 0xfe, 0xc4, 0x39, 0x7c, 0xf0, 0x49, 0xa9, 0xb4, 0xa6, 0xd7, 0x93, 0xa5, 0x0e, 0x29, + 0x55, 0x9e, 0x52, 0x57, 0x2e, 0xb8, 0x94, 0xac, 0x97, 0xef, 0xc6, 0xfd, 0xaa, 0xa5, 0xfc, 0x53, + 0x8f, 0x80, 0x2d, 0xd9, 0xa8, 0x98, 0x3d, 0x4d, 0xe0, 0xc1, 0x2f, 0x3e, 0x26, 0x37, 0x60, 0x51, + 0x3c, 0xad, 0x02, 0xa5, 0xdf, 0xa5, 0x60, 0xbe, 0x62, 0x12, 0xe6, 0x8c, 0x46, 0xcc, 0x88, 0xf4, + 0xd4, 0xf4, 0xed, 0xde, 0x2e, 0x64, 0x37, 0x42, 0xc2, 0xac, 0x38, 0xa5, 0x05, 0x92, 0xd9, 0x9e, + 0x15, 0x35, 0x4b, 0xe6, 0x1d, 0xd4, 0x67, 0x1f, 0x6f, 0x7a, 0x1c, 0xe9, 0x7f, 0x33, 0x5b, 0x51, + 0x86, 0x69, 0xe5, 0x43, 0x9c, 0x43, 0xd4, 0x92, 0x46, 0xb5, 0xfc, 0x4e, 0x66, 0x79, 0x9c, 0xa8, + 0xbc, 0xe7, 0xd3, 0x8b, 0x38, 0x26, 0xf2, 0x5c, 0xb8, 0x17, 0xcc, 0x9d, 0x03, 0x36, 0xdc, 0xf7, + 0x67, 0x75, 0x9c, 0x18, 0xa3, 0xee, 0xca, 0x38, 0xc5, 0xf7, 0x38, 0x7f, 0xc7, 0xf5, 0xff, 0x62, + 0xe5, 0xe3, 0x2e, 0x5c, 0x0b, 0x98, 0x44, 0x25, 0xb6, 0xfc, 0x57, 0x35, 0xa1, 0xc6, 0x6b, 0x27, + 0x08, 0x7e, 0x77, 0x9f, 0x22, 0xda, 0x2c, 0xd4, 0x2e, 0x7c, 0x4c, 0xf1, 0xae, 0x9d, 0xa7, 0x34, + 0xe9, 0x17, 0xe9, 0xf9, 0x53, 0x4c, 0x13, 0xe1, 0x78, 0x39, 0x6b, 0x2d, 0x10, 0xbd, 0xfa, 0x3b, + 0x19, 0xe7, 0x67, 0xc4, 0x1e, 0x30, 0x43, 0x9b, 0x77, 0xd7, 0x7a, 0xd5, 0xae, 0xd1, 0x71, 0x16, + 0xce, 0xc7, 0xb3, 0x16, 0x14, 0x8c, 0x97, 0x2d, 0xb4, 0x28, 0x3b, 0xd6, 0x47, 0xf3, 0xc7, 0x7f, + 0xa3, 0x53, 0xe0, 0x9d, 0xf1, 0xda, 0x7d, 0x6d, 0xca, 0xae, 0xf5, 0xd1, 0x2c, 0xdc, 0x93, 0x9f, + 0xf2, 0xa7, 0x63, 0xad, 0x4e, 0xa4, 0xb4, 0x09, 0x49, 0xa1, 0x48, 0x1c, 0xe9, 0x64, 0xda, 0x91, + 0x9d, 0x42, 0xba, 0xc3, 0xe1, 0x9a, 0x66, 0xea, 0x4a, 0x24, 0x3e, 0xbd, 0xc8, 0xcf, 0x85, 0x8f, + 0x07, 0xf8, 0xff, 0x7f, 0x8e, 0x79, 0xa1, 0x8a, 0xe8, 0xce, 0x53, 0x58, 0xdb, 0x73, 0xb4, 0xf7, + 0xf1, 0x7b, 0x92, 0xe3, 0xdb, 0x39, 0x8d, 0xb8, 0xa6, 0xaf, 0x9d, 0x60, 0xbb, 0x84, 0xf3, 0x0c, + 0xc7, 0x9c, 0x9c, 0x1d, 0xfc, 0xf4, 0x12, 0xae, 0xf6, 0x00, 0xcf, 0x39, 0x81, 0xe1, 0x86, 0x23, + 0x18, 0x32, 0xcc, 0xa4, 0xbd, 0x10, 0x2a, 0x54, 0x07, 0xd6, 0x52, 0x4c, 0xff, 0xca, 0x76, 0x2f, + 0xa3, 0x44, 0x31, 0xef, 0x3e, 0xe7, 0x9c, 0x4f, 0x2f, 0xb5, 0x6a, 0xa7, 0x84, 0x89, 0x97, 0x7d, + 0xd0, 0x30, 0x57, 0x59, 0x65, 0xbd, 0x15, 0x2c, 0xaa, 0xe9, 0x96, 0xbd, 0x20, 0x65, 0x41, 0xa4, + 0xf3, 0xa5, 0x57, 0x9a, 0xce, 0xff, 0x24, 0x1e, 0xee, 0x6d, 0xca, 0x28, 0xfe, 0xb4, 0x0f, 0xac, + 0xb3, 0xc0, 0x72, 0xed, 0x84, 0x2a, 0x4a, 0x66, 0x7f, 0x3a, 0x8e, 0x23, 0xad, 0xd5, 0x8a, 0x65, + 0xc1, 0xb9, 0x6b, 0x27, 0xca, 0xd8, 0x38, 0xa2, 0x1c, 0x79, 0x8b, 0xae, 0x9d, 0x70, 0xf3, 0xb9, + 0x5e, 0xc2, 0xf5, 0x01, 0x34, 0x5b, 0x9c, 0xe1, 0x16, 0x90, 0x82, 0xd5, 0x7d, 0xca, 0x76, 0xe2, + 0x87, 0x51, 0xcd, 0xec, 0x4b, 0x87, 0x97, 0x24, 0xb2, 0xb5, 0xba, 0x11, 0xb5, 0xaa, 0x88, 0x6b, + 0x81, 0xea, 0x9b, 0x42, 0xd5, 0x5d, 0x64, 0x54, 0x5d, 0x5a, 0xc5, 0xb9, 0x8a, 0xe1, 0x4f, 0x5f, + 0xd7, 0x38, 0x7f, 0x98, 0xe4, 0xbb, 0x47, 0x5b, 0x9f, 0x5a, 0x81, 0x4e, 0x68, 0xe7, 0x1d, 0x51, + 0xdc, 0x24, 0xe1, 0x26, 0x89, 0x87, 0xba, 0x0e, 0x75, 0xe1, 0x3c, 0xeb, 0x3a, 0x14, 0x67, 0xdc, + 0xda, 0x33, 0x42, 0xab, 0xcd, 0x30, 0x7a, 0x36, 0x5c, 0x11, 0xe9, 0x92, 0x66, 0x0b, 0xd9, 0x83, + 0x5d, 0x4d, 0x87, 0x5b, 0x6e, 0xdb, 0x11, 0x6f, 0x9c, 0x17, 0xc1, 0xbd, 0xa8, 0x90, 0x9d, 0x9a, + 0xca, 0x15, 0x5c, 0x70, 0x46, 0x98, 0xb1, 0xe0, 0x93, 0x6d, 0x20, 0x95, 0x20, 0xbd, 0x64, 0x18, + 0x5b, 0xf9, 0xe5, 0xbc, 0x02, 0x98, 0x59, 0x8c, 0x5b, 0x6e, 0x2f, 0x04, 0x48, 0xc6, 0x88, 0xf1, + 0x6f, 0x32, 0x39, 0xf1, 0x04, 0x70, 0xee, 0x7f, 0xc1, 0xe3, 0x6e, 0x16, 0x7c, 0x9e, 0x66, 0x21, + 0xe0, 0xf1, 0x0b, 0xf9, 0xa4, 0x49, 0x45, 0x91, 0xac, 0x02, 0xf8, 0x55, 0xab, 0xf5, 0x2e, 0xa8, + 0x34, 0x0b, 0xaa, 0x31, 0x12, 0x57, 0xac, 0xc5, 0x17, 0x04, 0xd7, 0x5b, 0x07, 0xa7, 0x17, 0x25, + 0x20, 0xd2, 0x17, 0x89, 0xdb, 0x71, 0x16, 0x47, 0x49, 0x43, 0xa9, 0x25, 0x6a, 0x1a, 0x1c, 0x86, + 0xc4, 0xf2, 0x37, 0xe8, 0xb7, 0x16, 0x84, 0x03, 0x44, 0xab, 0x09, 0xae, 0x43, 0x03, 0x6f, 0x0e, + 0xc9, 0x9e, 0x04, 0xb8, 0x90, 0xa6, 0x8b, 0x9a, 0x5b, 0x18, 0xf6, 0x4f, 0x64, 0xb6, 0xb8, 0x0e, + 0x0f, 0xb8, 0x2c, 0x44, 0x6d, 0xa5, 0xdf, 0xdf, 0xc6, 0xe0, 0x3c, 0x7c, 0x72, 0x66, 0x30, 0xfd, + 0x5d, 0xd5, 0xc2, 0x21, 0x8b, 0x63, 0x6d, 0x93, 0x8c, 0x33, 0xb0, 0x5d, 0xf2, 0xe2, 0xfa, 0xf3, + 0xc6, 0x36, 0x5a, 0x85, 0x0e, 0x6e, 0x23, 0x49, 0xc5, 0x83, 0x4f, 0xe2, 0xb7, 0xfb, 0x22, 0x71, + 0xef, 0x42, 0xfb, 0x97, 0xa9, 0x6e, 0xb8, 0x77, 0x16, 0x48, 0x92, 0x91, 0xd5, 0xc0, 0x18, 0x16, + 0xd4, 0x53, 0x7e, 0x70, 0x4e, 0xdb, 0x1c, 0x47, 0xcc, 0xc7, 0xf4, 0x53, 0x90, 0x2e, 0x25, 0xa9, + 0xe8, 0xcd, 0x57, 0x8a, 0x3e, 0xee, 0x03, 0xdf, 0x8a, 0xf4, 0xfb, 0x49, 0xaf, 0x12, 0xf1, 0x9b, + 0xb8, 0x83, 0x65, 0x1f, 0x09, 0x33, 0xca, 0x3e, 0xde, 0x0d, 0x7c, 0x6c, 0xc3, 0x76, 0xdb, 0x1c, + 0x46, 0x03, 0x2c, 0xc6, 0x91, 0xb8, 0xb5, 0x36, 0x17, 0x9f, 0x16, 0x46, 0x1b, 0x6a, 0x89, 0x4a, + 0x28, 0x8a, 0x2e, 0xc6, 0xdf, 0x52, 0x1c, 0x75, 0x9f, 0x29, 0x11, 0xb6, 0x8e, 0xd6, 0xb1, 0x55, + 0x55, 0xc5, 0xdf, 0x45, 0x18, 0x7a, 0x42, 0xa9, 0xc0, 0xa7, 0xc6, 0x68, 0x69, 0x2d, 0xad, 0xa8, + 0x6a, 0x94, 0xd2, 0x3e, 0xc8, 0xd6, 0xd5, 0x65, 0xf8, 0x75, 0x9f, 0xc2, 0xd7, 0xd9, 0x02, 0xfc, + 0x6d, 0x8d, 0xce, 0x63, 0xab, 0x2d, 0x8e, 0x75, 0x45, 0x82, 0xd9, 0x89, 0x38, 0xf6, 0x44, 0x2e, + 0xcc, 0x46, 0x2a, 0x28, 0xa0, 0xb8, 0x99, 0xfe, 0xa9, 0x80, 0x32, 0x03, 0xff, 0x4b, 0xf8, 0x3f, + 0x13, 0xff, 0x1b, 0xf1, 0x7f, 0x06, 0xfe, 0x17, 0xf0, 0xbf, 0x09, 0xff, 0x8b, 0x10, 0x58, 0xfc, + 0x43, 0xeb, 0x2d, 0xd8, 0x6a, 0x48, 0x44, 0xf6, 0xd2, 0x99, 0x4c, 0x10, 0x31, 0xe9, 0x6c, 0x08, + 0xb4, 0x18, 0x86, 0x3a, 0x55, 0xd5, 0x9f, 0x41, 0x5a, 0xa4, 0x10, 0x3b, 0xb9, 0x6a, 0x06, 0x94, + 0x1a, 0x86, 0x51, 0x33, 0x14, 0x3b, 0x3f, 0x65, 0xc1, 0x9d, 0x53, 0x50, 0x2d, 0x90, 0x66, 0xa8, + 0x17, 0x15, 0x2b, 0xc6, 0x4b, 0x86, 0xb8, 0xcb, 0xce, 0x61, 0xab, 0x6f, 0x41, 0x6a, 0xc2, 0x52, + 0xdd, 0x13, 0x35, 0x21, 0xa5, 0x02, 0x23, 0x3f, 0x9f, 0x85, 0x2b, 0x3c, 0x61, 0x38, 0xc5, 0x12, + 0x6b, 0x57, 0x4c, 0xb1, 0x16, 0xa4, 0x11, 0x57, 0x93, 0x44, 0xc2, 0x37, 0x2f, 0x08, 0x40, 0x1c, + 0x12, 0x54, 0x62, 0xc9, 0x50, 0xf4, 0x69, 0x65, 0x1f, 0x1f, 0x3b, 0xf3, 0xf3, 0xbc, 0x7e, 0xc1, + 0x85, 0x63, 0xc7, 0xe3, 0xf3, 0xe3, 0x7e, 0xce, 0x2f, 0xf8, 0x8e, 0xe0, 0xda, 0x75, 0x87, 0x8c, + 0x33, 0xdf, 0x44, 0x27, 0x0e, 0x02, 0xb4, 0xfb, 0xde, 0x19, 0xf0, 0x1b, 0xd9, 0xbc, 0x78, 0x9a, + 0xdf, 0x51, 0xb4, 0x08, 0x3b, 0x68, 0x35, 0xa0, 0xbd, 0x85, 0x79, 0x53, 0x17, 0x93, 0xa2, 0xa4, + 0x93, 0xc1, 0x93, 0xec, 0xdc, 0xc2, 0xda, 0x88, 0x7d, 0xe0, 0xc2, 0x2f, 0x91, 0xae, 0xd4, 0x5c, + 0x10, 0xfb, 0xb3, 0xb4, 0xd5, 0x71, 0x4a, 0x5d, 0xdf, 0x26, 0x19, 0x0e, 0x75, 0x1f, 0xea, 0xfe, + 0xb0, 0xef, 0x68, 0xfc, 0x68, 0xb7, 0xab, 0x98, 0x8d, 0xfb, 0x8f, 0x6b, 0x80, 0xe7, 0xe8, 0x02, + 0xe7, 0x2a, 0xf0, 0x30, 0x9e, 0x3c, 0xba, 0xe1, 0xf2, 0xa5, 0x52, 0xa8, 0x44, 0xdb, 0x3b, 0xf9, + 0xf9, 0xdf, 0x28, 0x7d, 0x8f, 0x78, 0xcd, 0x53, 0x84, 0xab, 0x39, 0x52, 0x87, 0x29, 0xd4, 0x32, + 0xd2, 0x9f, 0x1e, 0xa2, 0x93, 0x91, 0x62, 0xf6, 0x21, 0x3c, 0x4c, 0xb1, 0x36, 0x84, 0x45, 0x2b, + 0xce, 0x9b, 0x0e, 0x0e, 0x0b, 0x5a, 0x5b, 0x71, 0x6d, 0xb6, 0x32, 0x59, 0x09, 0xda, 0x55, 0xb0, + 0x15, 0xdf, 0x4e, 0xd4, 0xa4, 0x80, 0xab, 0xa1, 0x79, 0xc1, 0x69, 0x3a, 0x83, 0x15, 0x7f, 0x8a, + 0x6f, 0xb5, 0xb8, 0x32, 0x0b, 0x20, 0xab, 0xa5, 0xf8, 0x55, 0xc4, 0xa7, 0x96, 0xa8, 0x35, 0x96, + 0x5b, 0x4a, 0x46, 0x45, 0x23, 0x2a, 0x88, 0xcf, 0x60, 0xa8, 0x01, 0x9f, 0x97, 0x8d, 0x86, 0x16, + 0x61, 0x68, 0x3f, 0x7b, 0xf6, 0xe0, 0x78, 0x30, 0xe2, 0x5b, 0x07, 0xe6, 0x66, 0x2c, 0xfe, 0x97, + 0xf4, 0x93, 0x98, 0x63, 0x04, 0x63, 0x3c, 0x18, 0x35, 0xe3, 0xef, 0x42, 0xc2, 0x86, 0x5a, 0x9e, + 0x12, 0x69, 0xd9, 0x42, 0x58, 0xad, 0x00, 0x83, 0x52, 0x80, 0xef, 0xf5, 0xa3, 0xb9, 0x2d, 0xc0, + 0xf4, 0x85, 0x5a, 0x19, 0xdf, 0x67, 0x35, 0xf9, 0xb6, 0xea, 0x1a, 0x97, 0xfb, 0x0c, 0x2d, 0x65, + 0x9a, 0x7f, 0x4a, 0xe5, 0x9e, 0xab, 0x67, 0x39, 0xad, 0x20, 0x52, 0x09, 0xad, 0xa3, 0xb9, 0x2c, + 0x56, 0x41, 0xf8, 0x2c, 0x35, 0x95, 0x70, 0x5a, 0xab, 0xd3, 0x9f, 0x70, 0x56, 0xbe, 0x8c, 0x31, + 0xea, 0x58, 0x9d, 0xe8, 0xec, 0x5b, 0xd1, 0xea, 0x54, 0xcf, 0x42, 0xb0, 0x7c, 0x78, 0x5a, 0x2b, + 0x5f, 0x1d, 0xcd, 0x0f, 0xe7, 0x94, 0xf0, 0x73, 0x0c, 0x35, 0x72, 0x68, 0x31, 0xae, 0xd2, 0x34, + 0x65, 0xc5, 0x44, 0x38, 0x08, 0x5d, 0x18, 0x27, 0x0d, 0x9f, 0xd7, 0x8c, 0x86, 0xde, 0x83, 0xa1, + 0x0d, 0x18, 0x4a, 0x2d, 0x69, 0x18, 0x0d, 0xad, 0xc0, 0xd0, 0x25, 0x18, 0x9a, 0x3e, 0xa9, 0xd6, + 0xc1, 0xd1, 0x5a, 0x9b, 0xf1, 0x2d, 0x8f, 0x95, 0x34, 0x85, 0xa4, 0xde, 0x2b, 0xf7, 0x5c, 0x2b, + 0x54, 0x20, 0x61, 0xc7, 0x78, 0xcd, 0xa3, 0x29, 0xbe, 0x89, 0x71, 0x32, 0xb4, 0xda, 0x36, 0x30, + 0x68, 0x55, 0xa8, 0xea, 0x68, 0x3d, 0x4d, 0xd4, 0x66, 0xa5, 0x6a, 0x62, 0xc9, 0x70, 0x5c, 0xab, + 0xe5, 0xb8, 0xba, 0xc3, 0x01, 0xad, 0x96, 0xe3, 0xfa, 0x1b, 0x06, 0x47, 0xeb, 0x93, 0x8e, 0x6f, + 0x3f, 0xc5, 0x1c, 0xd3, 0x11, 0x8a, 0xa7, 0x94, 0xf6, 0x89, 0x35, 0x87, 0xde, 0x14, 0x78, 0xb7, + 0x6b, 0xd0, 0xfe, 0xb3, 0x52, 0xa5, 0xc5, 0x88, 0xa9, 0x75, 0x18, 0x26, 0x6a, 0xb0, 0x6e, 0x56, + 0xed, 0x56, 0xda, 0xd4, 0x19, 0xd4, 0x4a, 0x6c, 0x19, 0x3b, 0x31, 0x51, 0x9c, 0x04, 0x37, 0x75, + 0xbe, 0x96, 0xcb, 0x6a, 0xfc, 0x96, 0x87, 0xff, 0x57, 0x60, 0x6e, 0x5e, 0x2d, 0xce, 0xcf, 0x6a, + 0x06, 0x9c, 0x61, 0xfa, 0xce, 0x66, 0x8b, 0x23, 0x6c, 0x8f, 0x66, 0xd8, 0xb7, 0x83, 0x70, 0xc7, + 0x83, 0x84, 0x05, 0x64, 0xda, 0x21, 0xb6, 0xba, 0x1e, 0x70, 0x3f, 0x90, 0x5c, 0x29, 0xe6, 0xe7, + 0xe1, 0x4a, 0xe1, 0x72, 0xe2, 0x6c, 0xc7, 0x55, 0x22, 0xe0, 0xfe, 0x96, 0xb4, 0xf0, 0xcd, 0x7f, + 0x01, 0x33, 0xa3, 0x37, 0x6d, 0x31, 0x77, 0x29, 0x84, 0x37, 0x63, 0xad, 0x8f, 0x44, 0xfa, 0x3a, + 0x68, 0x07, 0x5c, 0x8a, 0xe1, 0xf3, 0x55, 0x27, 0x0b, 0xdf, 0xce, 0xce, 0x3e, 0xf7, 0x60, 0xe9, + 0xf3, 0x41, 0x88, 0x9a, 0x22, 0x7d, 0x72, 0xb1, 0x62, 0x5c, 0xdc, 0xd7, 0x26, 0xac, 0x15, 0x14, + 0xa3, 0x5c, 0x2c, 0x2f, 0x78, 0xec, 0xb5, 0xbf, 0x09, 0xe1, 0x6c, 0x37, 0x92, 0xee, 0x09, 0x04, + 0x83, 0x8f, 0x68, 0x70, 0x46, 0x7f, 0x3c, 0x9d, 0x32, 0xeb, 0x5b, 0xc2, 0xa5, 0xd1, 0x19, 0x4e, + 0x51, 0x3b, 0x67, 0x64, 0x14, 0x84, 0x2b, 0x1e, 0x2d, 0xd1, 0x68, 0x87, 0x63, 0x8c, 0x3e, 0x59, + 0x10, 0xad, 0xe2, 0x14, 0x46, 0xb8, 0x38, 0x6a, 0x74, 0x14, 0x26, 0xce, 0xb6, 0x48, 0x87, 0x07, + 0x78, 0x5c, 0xfc, 0x6e, 0x8c, 0x66, 0x62, 0x78, 0xb6, 0x13, 0x90, 0x7e, 0x10, 0x38, 0xfd, 0x90, + 0xba, 0xaa, 0x2b, 0x99, 0x24, 0x97, 0xcf, 0x29, 0x11, 0x3a, 0x15, 0x54, 0x8c, 0x88, 0x05, 0xf9, + 0x0d, 0xa8, 0x36, 0xeb, 0x2b, 0xef, 0xb9, 0x36, 0xac, 0xe9, 0xeb, 0xb2, 0xfa, 0x90, 0xb6, 0x93, + 0xca, 0x3c, 0x55, 0x7f, 0x3c, 0x8d, 0x30, 0xf0, 0xc1, 0x0f, 0xb0, 0x65, 0xe6, 0xa2, 0xb3, 0x20, + 0x3c, 0xf1, 0xaa, 0x42, 0xff, 0xc5, 0xfc, 0x0e, 0x20, 0x7c, 0x92, 0xc8, 0x19, 0x2e, 0x3e, 0x77, + 0x2d, 0xf1, 0xa3, 0xd7, 0xbc, 0x66, 0x26, 0x4f, 0x65, 0xb5, 0xd9, 0xa2, 0x3e, 0x5c, 0x0b, 0xfe, + 0x4e, 0xcd, 0x52, 0x5c, 0x88, 0x51, 0x6d, 0x87, 0xe2, 0x81, 0xb9, 0x66, 0xe0, 0x12, 0x64, 0x2d, + 0xd6, 0xa1, 0x4e, 0xec, 0x83, 0x77, 0x22, 0x8f, 0xec, 0x1a, 0xc6, 0xe9, 0xf2, 0x3a, 0x96, 0xdf, + 0x5a, 0xfc, 0xe9, 0x6e, 0x90, 0x67, 0x5d, 0x4b, 0xb0, 0xd4, 0x0e, 0x84, 0xea, 0xdf, 0xa9, 0x26, + 0xaf, 0x39, 0xb2, 0x5e, 0x11, 0xab, 0xfb, 0x63, 0xc2, 0x60, 0x7f, 0x74, 0x2e, 0xd3, 0x04, 0x14, + 0xd0, 0x28, 0xac, 0x04, 0xa7, 0x64, 0x12, 0xc0, 0xef, 0x39, 0xda, 0xc1, 0xd7, 0x48, 0x92, 0x8b, + 0xc3, 0x6d, 0x4c, 0x06, 0xd2, 0x82, 0x18, 0x95, 0x28, 0x15, 0x50, 0x10, 0xb7, 0x86, 0x5a, 0x76, + 0x0b, 0xa9, 0xf4, 0xaf, 0x54, 0xf6, 0xd4, 0xa6, 0xdb, 0x17, 0x30, 0x0a, 0xf7, 0xdc, 0xd2, 0xe1, + 0x6b, 0x47, 0xb8, 0x3c, 0x0a, 0xed, 0x4d, 0xe7, 0xcf, 0xc7, 0xdd, 0x4f, 0xc0, 0x4b, 0xfb, 0xd3, + 0x66, 0x28, 0x40, 0x7c, 0x57, 0x88, 0x74, 0x7f, 0xd0, 0xe7, 0x87, 0x12, 0xdc, 0x29, 0x1b, 0x71, + 0xcf, 0xe6, 0x93, 0xeb, 0xb5, 0x1e, 0xbb, 0x48, 0x67, 0xdf, 0x1a, 0x45, 0x8a, 0x7b, 0x52, 0x29, + 0x62, 0x43, 0x9a, 0xb4, 0xc5, 0xbb, 0xa3, 0x5b, 0xa3, 0x49, 0xc5, 0x24, 0x05, 0xd6, 0x06, 0xca, + 0xaa, 0x36, 0x12, 0xfb, 0x75, 0x0e, 0x76, 0xab, 0xce, 0x70, 0x33, 0x78, 0xe9, 0x7c, 0xed, 0x1b, + 0x41, 0xf0, 0x96, 0xe0, 0xf3, 0x84, 0xb8, 0x4e, 0x65, 0xfe, 0x9e, 0x6e, 0x35, 0x0b, 0x6b, 0x3f, + 0x8d, 0x42, 0xb1, 0xd6, 0x5b, 0x35, 0x99, 0xc9, 0xb9, 0xee, 0x34, 0x85, 0xa5, 0x56, 0x33, 0x5a, + 0xbe, 0x86, 0xa5, 0x50, 0x5f, 0x7c, 0x2d, 0xfd, 0x03, 0x35, 0x6b, 0x7c, 0x0e, 0x44, 0xe5, 0xee, + 0x8e, 0xe3, 0x3e, 0x34, 0x36, 0xb3, 0x44, 0xa3, 0xe1, 0x3b, 0xf8, 0x19, 0xed, 0xb5, 0xd7, 0xb1, + 0x7d, 0xf3, 0x3c, 0x48, 0xad, 0x12, 0xc5, 0x4e, 0xbd, 0xea, 0x6e, 0x04, 0x87, 0x17, 0xa9, 0xf6, + 0x45, 0x67, 0xc1, 0x4e, 0x67, 0xa5, 0x6c, 0x05, 0xca, 0x18, 0x1b, 0x8f, 0x34, 0x1a, 0xa3, 0xb9, + 0xf6, 0x42, 0x10, 0xf9, 0x6d, 0x22, 0xe2, 0x8c, 0x77, 0x11, 0x0b, 0x1e, 0xc7, 0xd1, 0x63, 0xa6, + 0x93, 0xa2, 0xc1, 0xce, 0xe5, 0xda, 0xa9, 0xc5, 0x26, 0x76, 0x8a, 0x82, 0xdf, 0x5e, 0x70, 0x66, + 0x68, 0x14, 0xe6, 0x61, 0xde, 0x2f, 0x6c, 0x4f, 0xc9, 0xef, 0x27, 0xdb, 0x90, 0xce, 0x44, 0x4c, + 0x57, 0x74, 0xee, 0xda, 0xe1, 0xd9, 0xa1, 0xc4, 0x61, 0xd2, 0x93, 0x29, 0x3f, 0x9f, 0x38, 0x86, + 0xfe, 0xdd, 0xd1, 0x3d, 0xc2, 0x49, 0xae, 0x03, 0x8e, 0xdd, 0x77, 0x1c, 0xa6, 0xfa, 0x30, 0x59, + 0x3e, 0x48, 0x99, 0x25, 0x39, 0xda, 0x2c, 0x01, 0x21, 0x22, 0x55, 0x33, 0x1d, 0x5f, 0x9b, 0x90, + 0x02, 0xf0, 0xe0, 0xce, 0x58, 0x24, 0x89, 0x74, 0x26, 0x47, 0x56, 0x20, 0x15, 0xbb, 0x6d, 0xea, + 0x99, 0xa2, 0x73, 0x23, 0x54, 0xd2, 0xb0, 0xb4, 0xb0, 0xf8, 0x5c, 0xe2, 0xe3, 0xd1, 0x95, 0xd0, + 0x42, 0xa5, 0xb2, 0x12, 0x4e, 0x52, 0x29, 0x7e, 0x2b, 0x96, 0xee, 0xa2, 0x1d, 0xc9, 0xd1, 0x06, + 0xc4, 0x95, 0x57, 0xd8, 0x09, 0x38, 0xad, 0xdc, 0x7b, 0x24, 0x8c, 0x21, 0xcd, 0x49, 0x7c, 0xd0, + 0x0a, 0x4a, 0x86, 0x35, 0x0b, 0xbe, 0xc3, 0x76, 0xa7, 0xdf, 0xc5, 0x79, 0xdd, 0x35, 0xd8, 0xa5, + 0x9e, 0x5f, 0x74, 0x0e, 0xd3, 0x72, 0x68, 0x5d, 0xa4, 0xfd, 0xa0, 0x56, 0x7b, 0x1c, 0x0f, 0x98, + 0x9f, 0x84, 0x3b, 0x83, 0xc3, 0xd4, 0x96, 0xbb, 0x40, 0xcb, 0x2f, 0xd3, 0x9f, 0x31, 0xba, 0xe7, + 0xab, 0x4b, 0x19, 0x8b, 0x08, 0x47, 0x0e, 0x3d, 0x9e, 0x9f, 0xdf, 0xc2, 0x68, 0x08, 0xb9, 0x72, + 0xb3, 0x13, 0x4b, 0xa6, 0x18, 0x3b, 0xba, 0x96, 0x67, 0x63, 0x2d, 0xce, 0x2c, 0x8e, 0x23, 0xc4, + 0xce, 0x30, 0xba, 0x8f, 0x97, 0xb5, 0x59, 0xbb, 0xe1, 0x98, 0x8a, 0x23, 0x9c, 0xb5, 0xa3, 0x72, + 0x0f, 0xd3, 0x54, 0xe9, 0xa0, 0x37, 0x4e, 0xa1, 0xcf, 0x0e, 0x5e, 0x7b, 0x83, 0x51, 0xe9, 0x27, + 0x19, 0x95, 0x3e, 0xe7, 0xda, 0x1b, 0x4a, 0x0e, 0xcd, 0xfd, 0xcd, 0x54, 0x22, 0xdf, 0x1b, 0x8d, + 0xed, 0x7e, 0xc4, 0x58, 0x3b, 0xce, 0x87, 0x8e, 0x6b, 0xdb, 0x68, 0x3e, 0x20, 0x26, 0xbc, 0x48, + 0xf3, 0xc1, 0x43, 0x73, 0xa0, 0x19, 0x82, 0xb8, 0xfe, 0x97, 0x20, 0x45, 0x5f, 0x21, 0x45, 0x68, + 0x84, 0xd1, 0x58, 0xa7, 0x99, 0x0c, 0x09, 0x1c, 0x8b, 0x71, 0xd5, 0xa2, 0x8d, 0x45, 0x10, 0xda, + 0x5b, 0xc0, 0xee, 0x4b, 0xff, 0x33, 0x86, 0xd9, 0x10, 0xcb, 0x59, 0xf8, 0xac, 0x3b, 0xdc, 0x46, + 0x9c, 0x3c, 0xf8, 0x4e, 0xda, 0xc4, 0x08, 0xda, 0x0a, 0x41, 0xe1, 0xf5, 0x4d, 0x0b, 0xaf, 0x0c, + 0x6f, 0xac, 0x7c, 0xc2, 0xc5, 0xef, 0x3d, 0x40, 0x90, 0x59, 0x8a, 0xa9, 0x7e, 0x2b, 0x62, 0x0b, + 0x5f, 0xfa, 0x49, 0x7e, 0x12, 0xfb, 0x6a, 0x47, 0x4a, 0x0c, 0x29, 0x25, 0x8f, 0x64, 0x8f, 0x8d, + 0x7d, 0x15, 0x17, 0x5d, 0x00, 0x2f, 0xeb, 0x91, 0x84, 0xd8, 0xe0, 0xb7, 0x2c, 0x64, 0x37, 0x05, + 0xb8, 0xab, 0x36, 0x32, 0x99, 0xc3, 0xa9, 0x04, 0x9f, 0xe1, 0x2b, 0x2c, 0x76, 0x0e, 0xe1, 0x6f, + 0xdc, 0xaf, 0x87, 0x02, 0x7b, 0x41, 0xf0, 0xd1, 0xf9, 0xe4, 0x54, 0xd2, 0x46, 0x25, 0x2f, 0x68, + 0x03, 0xd2, 0xf2, 0xf9, 0x87, 0xba, 0x85, 0x7c, 0x5e, 0xb7, 0x4c, 0x9a, 0xd5, 0x74, 0xd2, 0xf0, + 0x84, 0x36, 0xab, 0x17, 0x8f, 0xce, 0x6a, 0x93, 0x65, 0x01, 0x92, 0x03, 0x73, 0x11, 0x2b, 0x4f, + 0x88, 0x85, 0x78, 0x3f, 0xb7, 0xa5, 0x70, 0x47, 0x37, 0xd2, 0x9d, 0xf3, 0x31, 0x9e, 0x23, 0x59, + 0x7f, 0x36, 0xab, 0x6d, 0x38, 0x56, 0x6d, 0x4a, 0x68, 0x7c, 0x0a, 0x82, 0xee, 0xde, 0x78, 0x6d, + 0xef, 0xcc, 0x52, 0x9c, 0x63, 0xa4, 0xf3, 0xcc, 0x22, 0x55, 0x5b, 0x03, 0x60, 0x31, 0x27, 0xa2, + 0x92, 0xc6, 0x29, 0x43, 0x23, 0x48, 0xe5, 0x23, 0x88, 0x6b, 0x9a, 0x54, 0x4c, 0x38, 0x42, 0x45, + 0x17, 0x97, 0xae, 0xa7, 0x73, 0x1e, 0x1b, 0xe3, 0x07, 0xb5, 0x60, 0x0b, 0xcd, 0xf2, 0x36, 0x21, + 0xfb, 0xe6, 0x0e, 0x28, 0x06, 0x1b, 0xfe, 0xce, 0x83, 0x9b, 0x5d, 0xa1, 0x18, 0x24, 0xb5, 0xaf, + 0xe2, 0x6f, 0xa7, 0xb3, 0xa8, 0xf8, 0x5f, 0x84, 0x19, 0xc5, 0x17, 0x9f, 0x04, 0xf9, 0x97, 0x48, + 0x46, 0xdf, 0x8c, 0xbf, 0x2e, 0xf4, 0x1e, 0xf4, 0x3e, 0x79, 0x16, 0x04, 0xe4, 0xed, 0xe9, 0xf7, + 0x47, 0xe2, 0x35, 0xfd, 0x2d, 0x12, 0xf6, 0xe9, 0x01, 0xcc, 0xa3, 0x30, 0xfd, 0x24, 0xfe, 0xce, + 0x4f, 0xff, 0x13, 0xfe, 0xba, 0xd2, 0x4f, 0xe1, 0x6f, 0x6e, 0xfa, 0x9f, 0xe5, 0x6d, 0xe9, 0xa7, + 0x5d, 0x0f, 0x68, 0x67, 0xb5, 0x24, 0x9b, 0xcd, 0x4e, 0xb1, 0x27, 0x52, 0xa0, 0x2e, 0x88, 0x4a, + 0xb4, 0xb3, 0xd7, 0x24, 0x65, 0x71, 0xdf, 0xcf, 0x4e, 0x73, 0x6b, 0x66, 0xca, 0xe9, 0xa7, 0x19, + 0xb7, 0xd4, 0xb8, 0x53, 0x5f, 0x7e, 0x8a, 0xed, 0xf6, 0xa6, 0x9f, 0xc6, 0xd6, 0xe5, 0xa5, 0xee, + 0x00, 0xa5, 0x60, 0xd1, 0x69, 0x61, 0x06, 0xed, 0x77, 0x9c, 0x2b, 0x46, 0x29, 0x60, 0xcf, 0x78, + 0x0a, 0x38, 0xd2, 0xb5, 0x93, 0xce, 0x37, 0x0e, 0x86, 0xbb, 0xa3, 0x5e, 0x56, 0xa6, 0x81, 0x73, + 0x56, 0xdc, 0x7d, 0xca, 0x59, 0x3c, 0xf1, 0x8c, 0x9d, 0x60, 0xc8, 0xcf, 0xb1, 0xfd, 0x61, 0x70, + 0xd0, 0x13, 0xee, 0x11, 0xf6, 0xc5, 0x60, 0xac, 0x3d, 0x74, 0x62, 0x1c, 0xde, 0x1c, 0xb5, 0x13, + 0xe6, 0xd3, 0xee, 0x10, 0xec, 0x5c, 0xcb, 0x1c, 0x3b, 0x47, 0x75, 0x60, 0xb8, 0x95, 0x9f, 0xcf, + 0xb3, 0x95, 0x95, 0x7d, 0xe1, 0xa7, 0xc4, 0xbc, 0x35, 0xdf, 0x62, 0xe7, 0x9e, 0xb4, 0xa6, 0xd0, + 0x3c, 0xc2, 0xf5, 0x24, 0x84, 0x7d, 0x53, 0x98, 0x8b, 0x34, 0x0f, 0xfe, 0x0f, 0xba, 0xaa, 0xd8, + 0x19, 0xee, 0x8a, 0xd6, 0xdc, 0x23, 0x03, 0x6d, 0x06, 0xed, 0x14, 0xae, 0x94, 0x63, 0xcc, 0x26, + 0xa3, 0xec, 0x87, 0x5c, 0xf4, 0x01, 0x16, 0xa7, 0xb9, 0xf5, 0xce, 0x1b, 0xc4, 0xb9, 0x13, 0xfd, + 0x5d, 0xb7, 0x36, 0x63, 0x6f, 0x7c, 0x88, 0xbf, 0x77, 0xa6, 0x7f, 0xe0, 0x65, 0x71, 0x5a, 0x41, + 0x2e, 0x91, 0x8b, 0x9d, 0xe9, 0x8c, 0xdf, 0xe5, 0x0d, 0x4f, 0x30, 0x96, 0x18, 0xdc, 0x18, 0xbd, + 0x0f, 0x47, 0xed, 0x46, 0xd5, 0x68, 0x29, 0x01, 0x21, 0x5c, 0x82, 0x34, 0xcd, 0xd7, 0xf0, 0xcd, + 0x62, 0xf5, 0xc3, 0xd7, 0xe0, 0x4e, 0x35, 0x4f, 0xc9, 0x8e, 0x59, 0xf0, 0xdd, 0x11, 0xee, 0x8a, + 0x3a, 0x8a, 0x3e, 0xf6, 0x24, 0x10, 0xe7, 0xcd, 0x56, 0x2d, 0xb6, 0xbd, 0x60, 0x51, 0xec, 0xe1, + 0x62, 0xd5, 0x1e, 0xb0, 0xde, 0x12, 0xf7, 0x40, 0xa4, 0x8b, 0x62, 0x45, 0x6d, 0x48, 0xe1, 0x88, + 0x6d, 0x42, 0xf5, 0x7a, 0xf5, 0x27, 0xb8, 0x86, 0x03, 0xec, 0x97, 0xf3, 0x3c, 0xe0, 0xc7, 0x35, + 0x93, 0xad, 0x48, 0x6c, 0x8c, 0xae, 0xfd, 0x7a, 0xe8, 0xa1, 0x1a, 0x60, 0x98, 0x7a, 0x3f, 0xe9, + 0xca, 0xcd, 0x05, 0x5c, 0x47, 0xe7, 0xf9, 0xa7, 0x55, 0x6e, 0xf5, 0xb1, 0x1b, 0x5c, 0xb9, 0x84, + 0xcd, 0x3a, 0xd2, 0x14, 0x57, 0xe3, 0x0d, 0x47, 0xfa, 0xd7, 0x42, 0xf6, 0x2d, 0x58, 0xbf, 0xf5, + 0xa3, 0xf5, 0x0b, 0x86, 0x1f, 0x6e, 0xce, 0x61, 0xe7, 0x69, 0x77, 0x62, 0xa8, 0xdd, 0x9f, 0x1e, + 0x6a, 0x86, 0xbb, 0x29, 0xbd, 0x76, 0x66, 0xe0, 0x09, 0xf7, 0x6a, 0xdf, 0x73, 0xd9, 0x77, 0x13, + 0x7e, 0xcf, 0x4b, 0xf9, 0x6e, 0x8e, 0x74, 0xef, 0xec, 0x6e, 0xfa, 0x99, 0x92, 0x45, 0xf5, 0x4a, + 0xea, 0x2e, 0xdb, 0xd5, 0xc6, 0x6a, 0xf7, 0x13, 0x76, 0xdb, 0x80, 0x30, 0x21, 0xfe, 0xa2, 0xb9, + 0xf1, 0x92, 0x6a, 0x7e, 0xea, 0x45, 0x7a, 0xad, 0x39, 0x9f, 0xfc, 0xa7, 0xcf, 0xc0, 0xc8, 0x67, + 0x7d, 0x30, 0xf2, 0xf1, 0xcf, 0x60, 0xe4, 0xcf, 0xed, 0xf8, 0x3f, 0x86, 0xef, 0x1d, 0x30, 0xf2, + 0x91, 0x07, 0x46, 0xce, 0x58, 0x31, 0xec, 0x39, 0xfc, 0xbf, 0x11, 0xfd, 0x45, 0x18, 0x39, 0x8b, + 0xdf, 0x2f, 0xee, 0xc7, 0x38, 0x7b, 0x61, 0xe4, 0x83, 0x2a, 0xf4, 0x25, 0x18, 0x6e, 0xfe, 0x0f, + 0xf0, 0x3c, 0x2f, 0x5f, 0xd6, 0x52, 0xd7, 0x52, 0xbf, 0xfa, 0xf3, 0x44, 0xef, 0x28, 0xca, 0x78, + 0x99, 0x8a, 0x13, 0x2e, 0x18, 0xb9, 0x72, 0xa4, 0x73, 0x96, 0x39, 0x80, 0xcf, 0x99, 0x30, 0xf2, + 0xde, 0x27, 0xf8, 0xbf, 0x64, 0x34, 0xe7, 0xb5, 0x18, 0xd2, 0xca, 0x25, 0xef, 0x4e, 0x3d, 0x43, + 0x97, 0xf7, 0xf0, 0x0c, 0xfa, 0x9f, 0xa2, 0x0f, 0x12, 0x27, 0x1b, 0xe7, 0x6a, 0x93, 0xeb, 0xa3, + 0x2b, 0x9b, 0x8a, 0x31, 0xeb, 0xa2, 0xe5, 0xc4, 0x35, 0xea, 0x99, 0x19, 0x9b, 0x65, 0x81, 0xb1, + 0xf7, 0xea, 0x58, 0x7d, 0x7d, 0x1d, 0x06, 0xfa, 0x66, 0xd6, 0x69, 0xe1, 0xa5, 0xcd, 0x58, 0x7c, + 0xf1, 0x8a, 0x65, 0x4d, 0xd1, 0x7a, 0x0f, 0x06, 0x55, 0x15, 0x2f, 0x2a, 0x2e, 0x2f, 0x92, 0x56, + 0x37, 0x34, 0xb7, 0x4a, 0xf5, 0x4d, 0xa4, 0xe9, 0xbd, 0xce, 0x02, 0xe5, 0x4d, 0xab, 0xeb, 0x5b, + 0x5a, 0xeb, 0xeb, 0x24, 0xed, 0x2b, 0x55, 0x5d, 0xaa, 0xab, 0x6f, 0xad, 0x5f, 0xde, 0xca, 0x3f, + 0x73, 0xc6, 0xff, 0xd6, 0x35, 0xb1, 0x86, 0x7a, 0x69, 0xf9, 0x8a, 0x65, 0x2b, 0x9b, 0x52, 0xbe, + 0x16, 0x97, 0x57, 0x2f, 0xae, 0xaa, 0x78, 0xa0, 0x68, 0x51, 0x79, 0x59, 0x51, 0x4d, 0x79, 0x15, + 0x57, 0x19, 0x6f, 0x81, 0xc5, 0xdf, 0x8f, 0xd5, 0x4b, 0x33, 0xeb, 0x48, 0x99, 0x3d, 0xcf, 0x8f, + 0x85, 0xfb, 0xa4, 0xd5, 0x2b, 0xd7, 0xb2, 0x70, 0xc6, 0x42, 0x8b, 0xaf, 0x54, 0x61, 0x7c, 0xb7, + 0xc0, 0xa2, 0x65, 0xb1, 0x18, 0x3e, 0x2e, 0x5b, 0x2d, 0x71, 0x79, 0x14, 0x4a, 0x99, 0x6b, 0x81, + 0x4a, 0xac, 0xe8, 0x9a, 0xd5, 0x4c, 0x25, 0xfd, 0xc4, 0x4f, 0xd4, 0xbc, 0x45, 0x2b, 0x57, 0x2f, + 0xd7, 0x6c, 0x0b, 0xb0, 0x66, 0x07, 0xf2, 0xda, 0xb5, 0x86, 0x57, 0xb5, 0x34, 0x47, 0x5b, 0x96, + 0x35, 0x2e, 0x69, 0x6e, 0x68, 0x5d, 0x86, 0x6d, 0x4f, 0x85, 0x49, 0xa4, 0x7e, 0x75, 0x7d, 0x2b, + 0x3d, 0x8c, 0x81, 0x8f, 0x05, 0x45, 0xea, 0x1b, 0x9b, 0xdb, 0x78, 0xd4, 0x40, 0x01, 0xe5, 0x13, + 0xad, 0x6f, 0xa5, 0x7a, 0x4a, 0x6a, 0x4b, 0x73, 0xe3, 0xa8, 0xfc, 0xc3, 0xb2, 0xba, 0x3a, 0xa6, + 0x9b, 0x7f, 0x66, 0x0c, 0x93, 0x36, 0xc7, 0xbe, 0xbf, 0x98, 0xc0, 0xc2, 0x12, 0xf1, 0x74, 0xbc, + 0x1c, 0x0d, 0x94, 0xec, 0xa3, 0x44, 0xd5, 0x92, 0x82, 0x2c, 0x01, 0x87, 0x56, 0xe5, 0x3d, 0x15, + 0x15, 0xa3, 0x2f, 0x0b, 0x2a, 0x4b, 0xc6, 0x3e, 0x7c, 0xf3, 0x81, 0x8a, 0xf2, 0xca, 0x85, 0xa3, + 0xef, 0x15, 0xdf, 0xac, 0x2c, 0xa3, 0x80, 0x07, 0x8a, 0xc8, 0x5c, 0x40, 0xfb, 0xe4, 0xf0, 0x62, + 0x2d, 0x7c, 0xe6, 0x6a, 0x62, 0x2a, 0x6e, 0x6f, 0x95, 0x1a, 0x56, 0x36, 0x3d, 0xa8, 0x85, 0x25, + 0x3b, 0xae, 0xb9, 0x85, 0x84, 0x42, 0x56, 0xaf, 0x6c, 0x8a, 0xb2, 0xaf, 0xad, 0xcb, 0x5a, 0xb0, + 0x61, 0x29, 0x95, 0x97, 0xd4, 0x95, 0x4d, 0x2b, 0x57, 0xaf, 0xa0, 0xde, 0x2c, 0x61, 0x96, 0x16, + 0x52, 0x9a, 0x84, 0x4d, 0x59, 0xd0, 0x54, 0x37, 0x71, 0xc4, 0x95, 0x71, 0xf8, 0x61, 0x9f, 0xd1, + 0xa0, 0x5a, 0x5c, 0xf5, 0x40, 0x51, 0xe3, 0xca, 0xe8, 0xb2, 0xd1, 0xee, 0xf7, 0x31, 0x20, 0x31, + 0x08, 0xa5, 0x0e, 0xa9, 0x16, 0x02, 0x32, 0x03, 0x86, 0x05, 0xbe, 0xf9, 0x50, 0x93, 0xd6, 0x03, + 0x49, 0x60, 0x7f, 0x9d, 0xa2, 0x47, 0xea, 0x1b, 0xea, 0x97, 0xad, 0xae, 0x1f, 0xf7, 0x49, 0x52, + 0x1b, 0x96, 0x45, 0x57, 0x7f, 0x9d, 0x01, 0xb1, 0xf9, 0xa1, 0xa6, 0xfa, 0x3a, 0x8c, 0x89, 0x79, + 0x51, 0x5f, 0xe1, 0x23, 0x56, 0x3a, 0xb6, 0xbc, 0x71, 0xf9, 0xca, 0x65, 0x0f, 0x34, 0xd5, 0x3f, + 0x44, 0x9f, 0x5b, 0xe6, 0x49, 0x4d, 0x18, 0x9c, 0x8c, 0xda, 0x4e, 0x51, 0xe9, 0xbd, 0x61, 0x25, + 0x8d, 0x9d, 0x58, 0xeb, 0xf7, 0x59, 0x9a, 0xaa, 0x66, 0x04, 0x08, 0x8d, 0xaa, 0xa6, 0xe6, 0x3a, + 0xec, 0xa0, 0x18, 0x2f, 0x44, 0xab, 0xdc, 0xa4, 0x0c, 0xa9, 0x6a, 0x9c, 0xe7, 0x9c, 0x80, 0xb8, + 0x7c, 0xd9, 0x8a, 0x07, 0xa8, 0x86, 0xc9, 0x79, 0x43, 0x35, 0x95, 0x18, 0x5c, 0xb4, 0x84, 0xbc, + 0x72, 0x5a, 0xda, 0x64, 0x95, 0xaf, 0x97, 0x03, 0x1f, 0x71, 0x29, 0x19, 0x8c, 0xb3, 0x09, 0x42, + 0x31, 0x16, 0x2f, 0x5b, 0xfd, 0xa0, 0xf4, 0x50, 0xf3, 0x83, 0xf5, 0x4d, 0xd2, 0x9a, 0x14, 0x70, + 0xb2, 0x09, 0xbd, 0xbc, 0xa9, 0x95, 0x1a, 0x96, 0x0a, 0x8a, 0xf1, 0xfc, 0xe0, 0x1f, 0xbc, 0xfe, + 0xd7, 0xc9, 0xde, 0xbe, 0x77, 0xea, 0xc6, 0xb2, 0xb7, 0xef, 0x1d, 0x99, 0x28, 0x7b, 0x7b, 0x6a, + 0xcb, 0xe7, 0xc9, 0xde, 0xbe, 0xb7, 0x77, 0xa2, 0xec, 0xed, 0x7b, 0xaf, 0x4f, 0x96, 0xac, 0x79, + 0xef, 0xf8, 0x7f, 0x4c, 0x7e, 0xdb, 0x35, 0x05, 0x77, 0xec, 0x98, 0xcf, 0x89, 0x06, 0x4a, 0x3f, + 0xc5, 0x54, 0x35, 0xb0, 0xf3, 0x05, 0x58, 0xaa, 0x66, 0x84, 0x9b, 0x60, 0xc5, 0xbd, 0x8c, 0x33, + 0xb5, 0x24, 0x4e, 0x3b, 0xe8, 0xa4, 0xac, 0x21, 0xf1, 0xce, 0xba, 0xa7, 0xb8, 0x48, 0x77, 0x31, + 0x4f, 0xd7, 0xc9, 0xd3, 0x51, 0x7b, 0x77, 0x51, 0xca, 0x55, 0x94, 0x52, 0xad, 0x23, 0x5d, 0xf0, + 0xe2, 0xa1, 0xda, 0xa5, 0x4c, 0x27, 0xfc, 0x95, 0xda, 0x4c, 0xf6, 0x7f, 0x6b, 0x6d, 0x56, 0xac, + 0x6e, 0xb0, 0xab, 0x2e, 0xbb, 0xcd, 0xd8, 0xba, 0xb2, 0x54, 0x54, 0x32, 0xdb, 0x18, 0xcf, 0x91, + 0x78, 0x48, 0xb1, 0xca, 0x86, 0xd6, 0x34, 0x0c, 0x31, 0xb6, 0x99, 0x5b, 0xeb, 0x52, 0xe4, 0x16, + 0xff, 0x16, 0x8e, 0x0d, 0x22, 0xd8, 0x13, 0x9f, 0xf4, 0xc2, 0xf4, 0xdf, 0xd2, 0xf3, 0x98, 0x7c, + 0x20, 0xd3, 0x29, 0x2e, 0x26, 0xe5, 0xc3, 0xfd, 0x19, 0x52, 0x2e, 0x34, 0x24, 0xe5, 0x21, 0x59, + 0xcd, 0x7e, 0xcc, 0x6b, 0x56, 0x43, 0xba, 0xe1, 0x70, 0x1b, 0xad, 0x2e, 0x65, 0x35, 0x5b, 0xc2, + 0x77, 0x36, 0x9f, 0x94, 0x7c, 0x9d, 0xb4, 0x78, 0xac, 0xe0, 0x6f, 0x97, 0xef, 0xa3, 0xdf, 0x4b, + 0x9f, 0xb1, 0xdb, 0x77, 0x2f, 0xfb, 0xb2, 0x8a, 0x7f, 0xf9, 0x94, 0xdd, 0x7e, 0x5c, 0x3a, 0xe5, + 0x6c, 0x82, 0x18, 0x96, 0xd0, 0x3a, 0xca, 0x9f, 0xb0, 0xb7, 0x66, 0x40, 0x31, 0xf1, 0x6f, 0x9c, + 0x8f, 0x99, 0x97, 0x8d, 0xbb, 0x8b, 0xfd, 0xa4, 0x53, 0x01, 0xa9, 0xa1, 0xc5, 0x13, 0xe5, 0x1e, + 0x91, 0xa6, 0x39, 0x34, 0x4e, 0xc2, 0x51, 0x8c, 0x82, 0x81, 0x24, 0x7c, 0x15, 0xdb, 0x18, 0x1f, + 0xed, 0x19, 0xda, 0xa1, 0x89, 0x67, 0x8a, 0x3e, 0x82, 0xca, 0x3b, 0x42, 0xb0, 0x44, 0x7e, 0x16, + 0x22, 0xf8, 0x1c, 0xc1, 0xe7, 0x4a, 0xd6, 0xaa, 0xe7, 0xca, 0x99, 0xae, 0xb8, 0xca, 0x2d, 0xfc, + 0xce, 0xea, 0x93, 0x12, 0x56, 0x4b, 0xd2, 0xc9, 0x8e, 0xad, 0x21, 0x78, 0xc5, 0xa1, 0x6a, 0x80, + 0x34, 0xc2, 0xe2, 0x6e, 0x71, 0x1b, 0x4b, 0xf1, 0x4a, 0x32, 0xee, 0xa7, 0x99, 0xf2, 0x83, 0xb0, + 0x22, 0x96, 0x93, 0xca, 0x6d, 0x72, 0x6d, 0xb1, 0x27, 0xa9, 0xa3, 0x64, 0xed, 0xad, 0x34, 0xc2, + 0xb3, 0x9d, 0x41, 0xdf, 0x42, 0x6e, 0x27, 0x81, 0xce, 0xde, 0x9c, 0x15, 0xec, 0xed, 0xb4, 0xb3, + 0xe2, 0xb1, 0x83, 0x2d, 0x80, 0xad, 0xa4, 0xb7, 0xdd, 0xe1, 0xa0, 0xca, 0xac, 0x21, 0x9c, 0x38, + 0x81, 0xcb, 0xec, 0x88, 0x8b, 0xc7, 0x79, 0x0e, 0x73, 0xe1, 0xa1, 0x23, 0x18, 0x8a, 0x29, 0x8a, + 0x2e, 0x40, 0xb8, 0x45, 0x88, 0x19, 0x93, 0x69, 0xa2, 0x00, 0xc7, 0x28, 0xac, 0xf8, 0x02, 0xf0, + 0x32, 0x76, 0x30, 0xee, 0xd7, 0x03, 0x48, 0xdf, 0x84, 0xec, 0xf0, 0x5d, 0x3a, 0x77, 0x15, 0x6a, + 0x01, 0x76, 0x21, 0x35, 0x53, 0x42, 0x9e, 0xef, 0xc3, 0xf8, 0x6e, 0xe9, 0xfd, 0x5b, 0x78, 0x6f, + 0xb2, 0x5c, 0xef, 0x6b, 0x29, 0x4a, 0xd6, 0x84, 0xed, 0x36, 0x82, 0x6a, 0x8b, 0x56, 0x9a, 0x9c, + 0x52, 0xc3, 0xfb, 0xad, 0x2f, 0xd2, 0xd8, 0x83, 0x92, 0xda, 0xc5, 0x12, 0xd2, 0x47, 0xd6, 0x38, + 0x18, 0x12, 0x89, 0xe5, 0x4b, 0xf0, 0x3f, 0xd2, 0x03, 0xcb, 0x8d, 0xb1, 0x60, 0x28, 0xc8, 0x34, + 0x03, 0x41, 0x4b, 0x5a, 0xeb, 0x55, 0x09, 0x7b, 0x41, 0x04, 0xe7, 0x83, 0x30, 0x2a, 0x15, 0x7b, + 0x6d, 0xab, 0xb3, 0x02, 0xd3, 0x95, 0xb0, 0xfc, 0x5e, 0x65, 0x75, 0x28, 0x4d, 0x8e, 0xa8, 0x56, + 0x41, 0xb1, 0xb1, 0x90, 0xef, 0x26, 0x43, 0x64, 0x59, 0x83, 0xd4, 0x49, 0x67, 0x45, 0x4c, 0x60, + 0x4f, 0x97, 0x98, 0x0e, 0xb8, 0x8a, 0x31, 0xde, 0xbb, 0xb0, 0x1c, 0x75, 0x30, 0x6d, 0x64, 0xed, + 0xbc, 0x3f, 0x2e, 0x1d, 0x22, 0x5e, 0x55, 0x18, 0xf1, 0x77, 0xc4, 0x6d, 0x18, 0xea, 0xf0, 0x23, + 0xf5, 0x75, 0xf9, 0x5d, 0xc8, 0x62, 0xef, 0x26, 0xc8, 0xf1, 0x3f, 0x48, 0x2a, 0x55, 0xd8, 0x9b, + 0x19, 0x5c, 0xb1, 0x9b, 0xfc, 0x41, 0xf0, 0xb0, 0x37, 0x1c, 0x2e, 0x2e, 0xa6, 0xb1, 0xe5, 0xf1, + 0xdf, 0x73, 0x9a, 0x1d, 0xbf, 0x04, 0xd8, 0x97, 0x9b, 0x21, 0xdf, 0xbf, 0x10, 0x0a, 0xe4, 0x17, + 0xa1, 0x10, 0xe1, 0xe1, 0xa0, 0xaf, 0xc3, 0xab, 0xee, 0x08, 0x42, 0x8c, 0x6e, 0x46, 0x68, 0x77, + 0x10, 0x4f, 0xd1, 0xaa, 0x37, 0x36, 0x3e, 0xbf, 0x44, 0x9a, 0xe8, 0x66, 0xb3, 0xba, 0x79, 0xef, + 0xa0, 0x52, 0x7d, 0x24, 0x15, 0xf1, 0x49, 0x3b, 0xe4, 0xdf, 0xb1, 0x10, 0x02, 0x31, 0x43, 0xf1, + 0x47, 0x29, 0x12, 0xc0, 0x35, 0x5f, 0xea, 0x48, 0x74, 0x42, 0x11, 0xd7, 0xab, 0xc6, 0x62, 0xcb, + 0x14, 0xfb, 0x52, 0x1d, 0x84, 0x31, 0x76, 0x69, 0x6c, 0x1a, 0xc6, 0x2e, 0x48, 0xd1, 0x2d, 0xa3, + 0xb5, 0x95, 0xcf, 0x95, 0xb1, 0xd1, 0x4f, 0x32, 0x9b, 0xfc, 0x6c, 0x6e, 0xa9, 0xf1, 0x9b, 0xa4, + 0x7d, 0x6c, 0x0d, 0xdf, 0x97, 0x10, 0x7e, 0x71, 0x08, 0x48, 0xf5, 0x0a, 0x49, 0x1c, 0xf3, 0x7e, + 0xfb, 0x04, 0x1c, 0x53, 0xc5, 0x66, 0x72, 0x38, 0x53, 0x14, 0x0d, 0x90, 0x9f, 0x82, 0x2d, 0x44, + 0x32, 0xf4, 0x39, 0x7d, 0x88, 0xe6, 0x40, 0xd8, 0x10, 0xcd, 0xa2, 0xd9, 0xf0, 0x0c, 0x84, 0xc5, + 0x06, 0x63, 0x2f, 0x69, 0x1b, 0x31, 0x1c, 0x60, 0x38, 0xe4, 0x99, 0x94, 0x19, 0xc8, 0xec, 0xc4, + 0xbc, 0x8c, 0xfd, 0x04, 0x49, 0x3c, 0x32, 0x11, 0xbf, 0xbd, 0xbf, 0x79, 0x42, 0xd9, 0x73, 0x59, + 0xd9, 0x81, 0x98, 0x30, 0xd8, 0x55, 0x9f, 0x7b, 0x1d, 0x4c, 0x35, 0x1c, 0x17, 0xa9, 0x06, 0xa9, + 0x98, 0x0a, 0xdb, 0x69, 0x62, 0x3b, 0xc0, 0x44, 0x52, 0xc2, 0x60, 0x0c, 0xef, 0xbe, 0xff, 0xfc, + 0x38, 0xbc, 0xeb, 0x60, 0xb9, 0x67, 0x24, 0x71, 0x4f, 0x12, 0x46, 0x63, 0x72, 0x0b, 0xe3, 0xea, + 0x36, 0x34, 0xa1, 0x6e, 0x4e, 0x96, 0x3a, 0x07, 0xf7, 0x37, 0xc6, 0x98, 0x48, 0xad, 0xfa, 0x4a, + 0x10, 0xda, 0x71, 0x0a, 0x0d, 0x53, 0x8d, 0x36, 0xc1, 0xa8, 0xbc, 0x85, 0x95, 0xdf, 0x7e, 0xb8, + 0xb4, 0xdb, 0x0f, 0x79, 0xba, 0xd4, 0x91, 0x40, 0x5a, 0xf9, 0xcd, 0x57, 0x5f, 0x1a, 0x86, 0x22, + 0x9c, 0x23, 0x76, 0x3f, 0x9b, 0xc7, 0xef, 0x1f, 0x4b, 0xd6, 0x4d, 0xb1, 0x73, 0xfc, 0x88, 0x73, + 0xd8, 0x6c, 0xb3, 0x67, 0xc6, 0x35, 0xf9, 0x73, 0x76, 0xb2, 0x4c, 0xa7, 0x8b, 0x85, 0xb4, 0x03, + 0xf4, 0xf9, 0x9a, 0x21, 0x9f, 0x73, 0x07, 0xc8, 0x5b, 0xdd, 0xc1, 0xd6, 0x3b, 0xe8, 0x0c, 0x38, + 0xb4, 0xfa, 0x20, 0x2c, 0xb8, 0x92, 0xd8, 0x4c, 0xa7, 0x34, 0x0c, 0x03, 0x74, 0xe1, 0x6e, 0xcc, + 0x00, 0x77, 0x2c, 0x6f, 0x5f, 0xf8, 0xc9, 0x6e, 0x28, 0xff, 0xf4, 0x20, 0xb0, 0x1b, 0x7c, 0xfe, + 0xb5, 0x2e, 0xd3, 0x0f, 0x77, 0x60, 0x9a, 0xd6, 0xdd, 0xa0, 0x85, 0x44, 0xb2, 0xb5, 0x90, 0x77, + 0x92, 0x21, 0xc1, 0x2c, 0x16, 0x52, 0xf6, 0xe9, 0x6e, 0x48, 0x89, 0xe7, 0x15, 0xd7, 0x13, 0xae, + 0x78, 0xff, 0x87, 0x22, 0x69, 0x8a, 0x4e, 0x84, 0x4a, 0xe4, 0x92, 0xfe, 0x9e, 0x7e, 0x03, 0xab, + 0xcd, 0x1d, 0xef, 0x87, 0x42, 0x41, 0x39, 0xd8, 0x1f, 0xf7, 0xad, 0x1f, 0xd3, 0xeb, 0xce, 0x4f, + 0x0e, 0x87, 0x99, 0xed, 0x06, 0xcf, 0x14, 0x57, 0xc8, 0x2d, 0x30, 0xb8, 0x0a, 0x7e, 0xb3, 0x06, + 0xdb, 0xab, 0xa3, 0xb0, 0x75, 0xec, 0x26, 0xd8, 0x82, 0x61, 0x84, 0x41, 0x17, 0x0c, 0x9f, 0x8d, + 0x71, 0x15, 0x7f, 0xf9, 0xfb, 0xd4, 0xd3, 0xc3, 0x7f, 0x9e, 0x3e, 0x0c, 0x56, 0x7a, 0xca, 0x35, + 0xc8, 0x65, 0xa1, 0xb2, 0xd9, 0x1d, 0xb4, 0xfb, 0x48, 0x5c, 0x5e, 0x2b, 0xb4, 0x8b, 0xee, 0x0e, + 0xda, 0x85, 0x2c, 0x3a, 0x97, 0xb8, 0xec, 0x2c, 0x4c, 0x24, 0x86, 0x2f, 0x1d, 0xfe, 0xe1, 0xec, + 0xa2, 0xe1, 0x0f, 0x66, 0xcb, 0xc3, 0x67, 0xb0, 0x26, 0x0b, 0x18, 0x2f, 0x27, 0xf1, 0x69, 0xb6, + 0x70, 0xe8, 0x18, 0x1a, 0xb8, 0x7c, 0x99, 0x7f, 0x2a, 0xd6, 0x7c, 0x0e, 0x7e, 0x63, 0xb8, 0xef, + 0xe4, 0x2d, 0x63, 0xfd, 0x1c, 0x5e, 0x10, 0xcd, 0xb0, 0xce, 0x01, 0x21, 0x31, 0xb2, 0xe4, 0x1f, + 0x42, 0xeb, 0x4b, 0x16, 0x50, 0x2e, 0x14, 0xd3, 0x0a, 0x60, 0x47, 0xe8, 0xee, 0xac, 0xcd, 0x20, + 0x8b, 0x0e, 0xf8, 0x76, 0xb3, 0x0a, 0x70, 0x5e, 0x59, 0x8a, 0x4f, 0x8e, 0xe8, 0x5c, 0x2b, 0x24, + 0x12, 0xf8, 0xfe, 0xae, 0x62, 0x63, 0xf9, 0x23, 0x1e, 0x66, 0xf9, 0xfa, 0x94, 0x00, 0x7f, 0x37, + 0x14, 0xb2, 0xf7, 0xbf, 0x4d, 0x62, 0xb3, 0xb5, 0x82, 0x02, 0x82, 0xbb, 0x35, 0x31, 0x5b, 0x4e, + 0x5c, 0xd6, 0x52, 0xb0, 0xb5, 0xe4, 0xe4, 0x82, 0x64, 0x0c, 0xfc, 0x6e, 0xf2, 0x67, 0x60, 0x2d, + 0x8d, 0xa4, 0xa3, 0x5e, 0x3b, 0x5d, 0xb4, 0x52, 0x1b, 0xc4, 0x6d, 0x2c, 0x85, 0xdd, 0x3f, 0x87, + 0xf3, 0x75, 0x9f, 0xbc, 0x27, 0x39, 0x8a, 0x24, 0x0c, 0x21, 0xdd, 0xa8, 0x89, 0x44, 0x2d, 0x88, + 0x5d, 0xa6, 0x38, 0x41, 0x46, 0x29, 0x19, 0x97, 0xcb, 0xce, 0xd1, 0x5c, 0x6a, 0x27, 0xe4, 0xd2, + 0x38, 0x21, 0x97, 0x6f, 0xb0, 0x5c, 0x0a, 0x31, 0x17, 0x84, 0x35, 0x59, 0xb8, 0x60, 0xa7, 0xeb, + 0xb1, 0x5d, 0x08, 0x0b, 0xa4, 0x41, 0xca, 0xa2, 0xc6, 0xea, 0x32, 0xa5, 0xd6, 0x35, 0x67, 0xf8, + 0x8c, 0x7b, 0xda, 0xbd, 0xdd, 0xc4, 0xe1, 0x51, 0x7e, 0xe5, 0x9a, 0xb5, 0x72, 0x8b, 0xe3, 0xf9, + 0xc4, 0x35, 0x1a, 0x23, 0x89, 0x44, 0xd9, 0x27, 0x21, 0x3a, 0x47, 0x4f, 0x60, 0xb9, 0x5b, 0x6e, + 0xc1, 0xff, 0x20, 0x2c, 0xee, 0x7f, 0x7b, 0x3f, 0xe7, 0x4f, 0x61, 0x1c, 0x21, 0x5b, 0x1c, 0xe7, + 0x12, 0xd7, 0xde, 0xde, 0x8f, 0x3d, 0xd3, 0x85, 0xab, 0xe3, 0x1b, 0x08, 0xe5, 0x84, 0x1d, 0xaa, + 0x85, 0x2f, 0xe3, 0x0c, 0xa9, 0xee, 0x0a, 0x83, 0x7a, 0x0c, 0x61, 0xb0, 0x5b, 0xc6, 0xd0, 0xf0, + 0x02, 0xd5, 0x1d, 0xc6, 0x72, 0xa3, 0x4e, 0xca, 0x0f, 0x29, 0x30, 0x23, 0xbb, 0xf9, 0xdf, 0x33, + 0xfc, 0x13, 0xde, 0xab, 0xc2, 0x56, 0xeb, 0x1c, 0xda, 0x2b, 0xab, 0xe2, 0x5a, 0x41, 0x83, 0xe6, + 0xa3, 0x4a, 0x2d, 0xc6, 0xbd, 0x16, 0x30, 0x0d, 0xed, 0xd7, 0xe2, 0xc6, 0x30, 0xff, 0x6b, 0xad, + 0xe0, 0x00, 0x49, 0xce, 0xda, 0x0b, 0x92, 0x1d, 0x4e, 0x4f, 0xa9, 0x1a, 0xc0, 0x15, 0x71, 0xca, + 0x72, 0x93, 0x49, 0x80, 0xaf, 0x2a, 0x46, 0xd2, 0x5a, 0x7c, 0x6b, 0x11, 0x08, 0x4e, 0x73, 0xeb, + 0x4d, 0xfb, 0xba, 0x10, 0xd3, 0xdd, 0xe4, 0x28, 0x84, 0x29, 0x3b, 0x3b, 0x1b, 0xc8, 0xf0, 0x27, + 0x7d, 0x07, 0xfc, 0x1e, 0x04, 0x51, 0xf6, 0x81, 0x61, 0xc9, 0xc6, 0x48, 0xa9, 0x62, 0x2a, 0x3f, + 0x37, 0x7c, 0x41, 0x2e, 0x6d, 0x01, 0x3b, 0x96, 0x1e, 0xe9, 0xc4, 0x7a, 0x99, 0x06, 0x3b, 0x9b, + 0xfb, 0x42, 0x8d, 0xc3, 0x17, 0x18, 0x44, 0xd7, 0x27, 0x21, 0x8a, 0x63, 0x0a, 0x60, 0x70, 0x02, + 0xbc, 0x37, 0x24, 0xbf, 0xba, 0x1b, 0x13, 0x97, 0x63, 0x89, 0xc1, 0x47, 0xd4, 0x0c, 0x8a, 0xa1, + 0xe9, 0x6a, 0x06, 0xd8, 0xff, 0x9b, 0x61, 0xf8, 0x6f, 0x98, 0xef, 0xfe, 0x50, 0x4f, 0x8b, 0xb0, + 0xb9, 0xa4, 0x40, 0xe0, 0xa3, 0xc5, 0x3b, 0x95, 0x9f, 0x92, 0x0f, 0x5f, 0x28, 0xbf, 0x72, 0xf5, + 0x27, 0x1d, 0x90, 0x23, 0x28, 0x24, 0x63, 0xc8, 0x38, 0xbf, 0xd8, 0xfc, 0xef, 0x8f, 0x74, 0x1d, + 0xeb, 0xdd, 0xf9, 0xfc, 0xf0, 0x07, 0xea, 0x69, 0xcc, 0x65, 0x17, 0x8e, 0x65, 0x71, 0xf8, 0xe2, + 0xf2, 0x6c, 0xfc, 0x5f, 0x3c, 0xfc, 0xaf, 0xaa, 0x1d, 0xff, 0x97, 0x0f, 0x7f, 0xac, 0x5a, 0xf0, + 0x7f, 0xf5, 0xf0, 0x27, 0x51, 0x18, 0x3e, 0xce, 0xea, 0x15, 0x61, 0x75, 0x1a, 0xa5, 0xe8, 0x14, + 0xb9, 0x15, 0xf2, 0x8d, 0x04, 0x73, 0xd5, 0xf4, 0xf6, 0x3e, 0x05, 0x86, 0x77, 0x11, 0x34, 0x43, + 0xab, 0x3d, 0x08, 0xc9, 0xab, 0x6e, 0x56, 0x92, 0xc4, 0x66, 0x50, 0xc2, 0x2f, 0x4a, 0xc1, 0xd0, + 0x0a, 0x10, 0x93, 0x56, 0x37, 0xde, 0x1e, 0xc2, 0xd8, 0x7d, 0xad, 0x84, 0x07, 0xe4, 0xe9, 0xe7, + 0x86, 0xff, 0x3c, 0x0e, 0x53, 0xb7, 0x71, 0x79, 0x2b, 0x56, 0xd6, 0xee, 0x64, 0x59, 0xa4, 0x83, + 0x95, 0xe1, 0xcd, 0x73, 0x4b, 0x87, 0x87, 0x99, 0x15, 0x0a, 0xac, 0xdb, 0xf4, 0xe1, 0x0b, 0x51, + 0x48, 0x94, 0x28, 0x90, 0xa8, 0xa5, 0xb9, 0x72, 0xad, 0x1f, 0x69, 0xbe, 0x00, 0x62, 0x91, 0x72, + 0xa6, 0x8b, 0x9b, 0xd2, 0xbf, 0xce, 0xd3, 0x23, 0xfd, 0x66, 0x94, 0x1f, 0x97, 0x67, 0xc3, 0x14, + 0x39, 0x68, 0xb3, 0xdb, 0xbd, 0x20, 0xd0, 0x08, 0xb7, 0x06, 0xe9, 0xae, 0x09, 0x7f, 0xbf, 0x84, + 0x34, 0xd6, 0x2a, 0xb1, 0x08, 0x12, 0xa4, 0x23, 0xce, 0xe6, 0x05, 0xf1, 0xb4, 0xf9, 0x4b, 0x41, + 0x30, 0xe3, 0xac, 0x4d, 0x5f, 0x4e, 0xbf, 0xd3, 0xf0, 0x7b, 0xd8, 0x8a, 0xbd, 0x8e, 0x90, 0xfb, + 0x38, 0x46, 0x5a, 0xc2, 0xc4, 0xd6, 0xf4, 0xa1, 0xae, 0x14, 0x5d, 0xbc, 0x47, 0x91, 0x1a, 0xc8, + 0x01, 0x0f, 0xe4, 0x0b, 0x3e, 0xc1, 0x07, 0xf3, 0x71, 0x25, 0x26, 0x9a, 0xc7, 0x88, 0xb0, 0xdd, + 0xcb, 0x9e, 0x0f, 0xb2, 0xe7, 0x41, 0xf6, 0xbc, 0x95, 0x3d, 0xff, 0x2c, 0x56, 0x47, 0x52, 0x10, + 0xf8, 0xf4, 0x94, 0xc3, 0x0b, 0x06, 0x9b, 0xf8, 0x81, 0x59, 0x0c, 0xc2, 0x4d, 0xb8, 0x5c, 0xa4, + 0x53, 0xbd, 0x54, 0x63, 0xcc, 0xa2, 0x50, 0xdd, 0x44, 0xd5, 0x1c, 0xb3, 0xb2, 0x98, 0x1e, 0x7c, + 0x33, 0x60, 0xf8, 0x34, 0xe5, 0x22, 0x3e, 0x19, 0xf1, 0xe9, 0x26, 0xe5, 0x03, 0x7e, 0xdf, 0x55, + 0x1d, 0x27, 0xbb, 0x15, 0x6f, 0x1e, 0x7c, 0x73, 0x08, 0x29, 0x54, 0x63, 0x58, 0x56, 0x3d, 0x74, + 0xb6, 0x7b, 0xb2, 0x8f, 0xd2, 0xa9, 0xa6, 0x56, 0xe1, 0x0e, 0x19, 0x8c, 0x31, 0x83, 0x92, 0x4d, + 0xa1, 0x3c, 0xe6, 0xa1, 0xbe, 0x43, 0x4c, 0x0a, 0xa3, 0x5a, 0x56, 0xcf, 0x28, 0xa7, 0x22, 0x20, + 0xcb, 0x0e, 0xd8, 0x59, 0x54, 0x9b, 0x41, 0x63, 0x3f, 0x9c, 0xe7, 0x81, 0xc6, 0xb3, 0x08, 0x6d, + 0x31, 0x42, 0xeb, 0xa5, 0xa8, 0x7d, 0xcb, 0xe3, 0x94, 0xa0, 0x3d, 0xcf, 0x0c, 0xb1, 0xf4, 0xa1, + 0x4e, 0xb2, 0x3a, 0x26, 0xb1, 0x33, 0xc0, 0x3f, 0x6f, 0xfb, 0x60, 0x4a, 0xeb, 0x6d, 0xfb, 0xba, + 0xa4, 0x22, 0xb2, 0xae, 0xe0, 0x1f, 0xb5, 0xad, 0xa2, 0x58, 0xac, 0xb3, 0x61, 0x1a, 0x98, 0xb1, + 0xa6, 0x82, 0x3b, 0x4e, 0xd0, 0x4f, 0xae, 0x7d, 0x56, 0xe3, 0xf8, 0xf5, 0xf7, 0xe4, 0x89, 0x2f, + 0xb8, 0xef, 0xa1, 0xb8, 0x9f, 0x24, 0xc7, 0x04, 0xe9, 0x1a, 0x38, 0xb1, 0x98, 0xc2, 0xbf, 0x35, + 0x40, 0x67, 0xf0, 0xce, 0xf0, 0xaf, 0xcf, 0x63, 0xea, 0x25, 0x6c, 0x85, 0xa8, 0x42, 0xca, 0xcb, + 0xdc, 0xd2, 0x54, 0x2a, 0xc4, 0x4c, 0x1a, 0xdd, 0x3b, 0x1f, 0xd7, 0x3c, 0x13, 0xce, 0xe4, 0xb9, + 0x6c, 0x3d, 0x9a, 0xc6, 0xd7, 0x23, 0x9c, 0x97, 0x7e, 0xb0, 0x86, 0x8a, 0xe4, 0xa2, 0x78, 0x67, + 0xdc, 0x0f, 0x16, 0xf6, 0x3e, 0xf5, 0xfd, 0x0d, 0xf1, 0x4e, 0x8e, 0xf5, 0xff, 0x24, 0x24, 0x6b, + 0x16, 0x63, 0xfa, 0x4c, 0xe8, 0xe4, 0xae, 0xf2, 0x7b, 0x31, 0x4b, 0x1e, 0xd9, 0x79, 0x30, 0x35, + 0x5c, 0xe6, 0xff, 0x1b, 0x2f, 0x57, 0x83, 0x7a, 0xb6, 0x72, 0x0d, 0xae, 0x40, 0x40, 0x63, 0x99, + 0xff, 0x8f, 0x03, 0xa7, 0x7d, 0x90, 0x1e, 0xe9, 0xa6, 0xb5, 0xff, 0x19, 0xe2, 0x4d, 0x36, 0xda, + 0x3c, 0x8c, 0x1a, 0x88, 0x73, 0x6a, 0x20, 0xa9, 0x2b, 0x2f, 0x90, 0xe7, 0x2a, 0x77, 0x67, 0xb8, + 0x57, 0xc2, 0x52, 0x4a, 0xb3, 0x89, 0x0e, 0xca, 0x0a, 0x71, 0xb4, 0x0d, 0xd9, 0x67, 0x61, 0x6c, + 0x21, 0x31, 0xe4, 0x80, 0x52, 0x11, 0xc9, 0xa4, 0xc2, 0x2e, 0xd1, 0xc1, 0xf2, 0x1c, 0x12, 0x55, + 0xcb, 0xf4, 0x57, 0x28, 0x26, 0x8d, 0xa0, 0xf0, 0x4a, 0x58, 0x15, 0xb5, 0xf3, 0x77, 0xba, 0x91, + 0x4f, 0xb4, 0x33, 0x9a, 0xb6, 0x8b, 0xdd, 0x68, 0xce, 0xc7, 0xaf, 0x2b, 0xd4, 0x02, 0xe9, 0x41, + 0xc8, 0x64, 0x52, 0x48, 0xb9, 0xe6, 0xd9, 0xb8, 0xf6, 0x67, 0x2f, 0x61, 0x38, 0x84, 0xb4, 0xa1, + 0xf3, 0x7e, 0x75, 0xae, 0x80, 0x0c, 0xff, 0x34, 0x6f, 0x11, 0xd3, 0xb5, 0x24, 0x90, 0xae, 0x25, + 0x5a, 0xc3, 0x68, 0x86, 0x96, 0x02, 0xce, 0x18, 0x56, 0x0b, 0xaa, 0x55, 0x17, 0xf0, 0x72, 0x90, + 0x8e, 0x26, 0x6b, 0x3f, 0x99, 0x94, 0x43, 0x8c, 0x4e, 0xca, 0x33, 0x7c, 0xc5, 0xe3, 0xd3, 0x2b, + 0x8c, 0x6f, 0x37, 0x26, 0x54, 0x9c, 0xab, 0xb0, 0x26, 0xce, 0x8e, 0xe9, 0x7a, 0x42, 0x9a, 0xa7, + 0x9c, 0xb7, 0x92, 0xed, 0x90, 0x42, 0x1c, 0x4a, 0xd3, 0x87, 0x13, 0xff, 0x73, 0x34, 0x2c, 0xbf, + 0xe8, 0xca, 0xc8, 0x4e, 0xd6, 0x2a, 0x33, 0xb7, 0xc7, 0xa7, 0x38, 0xef, 0xe2, 0xfb, 0x41, 0x7c, + 0x73, 0xae, 0xc2, 0x5d, 0xa0, 0x77, 0xfc, 0x2e, 0x50, 0xa3, 0xd0, 0x10, 0x4b, 0xfa, 0x1a, 0x13, + 0xc3, 0x54, 0xd6, 0xf5, 0x60, 0xcd, 0x4b, 0x42, 0xd7, 0xc0, 0xfb, 0x83, 0x87, 0xc4, 0x01, 0x67, + 0x5e, 0x90, 0xf5, 0x9e, 0x40, 0x6f, 0xc9, 0x7e, 0x8c, 0xc3, 0xd8, 0x3d, 0xc1, 0x18, 0x8d, 0x89, + 0xb3, 0xb5, 0xfd, 0x16, 0xd2, 0x57, 0xdc, 0x9e, 0xa9, 0xd5, 0x9b, 0xe2, 0xb2, 0xfa, 0x77, 0x53, + 0x29, 0x63, 0x14, 0x27, 0xae, 0xa4, 0xef, 0x8c, 0xa5, 0xbb, 0x45, 0xc6, 0xba, 0x88, 0x58, 0x97, + 0x7d, 0x93, 0x62, 0xed, 0xe0, 0x14, 0x31, 0xe7, 0xf6, 0xf5, 0x33, 0x2b, 0x15, 0x7f, 0xfa, 0x4a, + 0x72, 0xdc, 0x25, 0xf5, 0xfc, 0x90, 0x4e, 0x1f, 0x77, 0xb9, 0xab, 0x12, 0x47, 0xef, 0x2c, 0xa6, + 0x35, 0x9d, 0xcd, 0x9c, 0x3f, 0xdd, 0xcd, 0xe3, 0xd9, 0x66, 0x43, 0x36, 0xe9, 0xbf, 0x42, 0xbc, + 0x95, 0xcd, 0xfb, 0x93, 0x30, 0x5c, 0xc9, 0x90, 0x3a, 0x46, 0x99, 0x77, 0x14, 0x9d, 0x81, 0xca, + 0x14, 0xb9, 0xe4, 0xb1, 0x1b, 0xcb, 0x36, 0x4d, 0x23, 0x3a, 0x52, 0x97, 0xff, 0x56, 0x81, 0xf3, + 0xb6, 0x92, 0x38, 0x4a, 0xa3, 0xb5, 0x6c, 0x1e, 0xc9, 0xae, 0x5c, 0x9c, 0x53, 0xf3, 0x95, 0xc5, + 0xe1, 0xed, 0xf8, 0x3f, 0x70, 0xa3, 0xdc, 0x12, 0xb6, 0xb1, 0xdc, 0xe4, 0x5f, 0x8c, 0xe5, 0x45, + 0x37, 0x47, 0xad, 0xc9, 0x36, 0x95, 0x8d, 0x52, 0x0f, 0x22, 0xd7, 0x20, 0x14, 0x5e, 0x05, 0x2b, + 0xa2, 0x3f, 0x57, 0xde, 0xd5, 0x7a, 0x01, 0xa0, 0x43, 0xbb, 0x13, 0x29, 0x77, 0x41, 0x00, 0x4b, + 0x47, 0x3a, 0x30, 0x97, 0xcc, 0xd4, 0x6a, 0x2d, 0x16, 0xb5, 0x36, 0x57, 0x68, 0x6d, 0xf6, 0xf2, + 0x36, 0xdf, 0x82, 0x6d, 0xa6, 0x3b, 0x3a, 0x36, 0xfb, 0xf9, 0xce, 0xc0, 0xac, 0xe9, 0x51, 0xca, + 0x96, 0x11, 0x9f, 0x24, 0xcf, 0x1a, 0xf8, 0xde, 0xa7, 0x66, 0x80, 0x53, 0xf7, 0xac, 0xcd, 0x19, + 0xc9, 0x7a, 0x92, 0x4a, 0xc8, 0xa8, 0x3b, 0x45, 0x0e, 0x36, 0x3c, 0xa6, 0x2d, 0x7c, 0xac, 0x65, + 0x4c, 0x53, 0x52, 0x76, 0x52, 0xd3, 0xe8, 0x78, 0x39, 0x67, 0xed, 0xad, 0x8d, 0xef, 0x11, 0x24, + 0xd2, 0x54, 0x9c, 0x95, 0xef, 0x87, 0x19, 0x04, 0xa7, 0x97, 0xce, 0xc0, 0x92, 0x24, 0x3e, 0xf3, + 0x43, 0x60, 0x15, 0x6b, 0x99, 0x17, 0x96, 0x92, 0x95, 0x1d, 0xd6, 0xa2, 0xce, 0xd1, 0xf3, 0x04, + 0xcd, 0xde, 0x40, 0xe2, 0xa7, 0xee, 0x55, 0x50, 0x49, 0xad, 0x52, 0x66, 0x30, 0x7e, 0x31, 0x6a, + 0x3f, 0xb3, 0x3f, 0xf8, 0xa7, 0x5f, 0x6b, 0xf6, 0x6b, 0x30, 0xac, 0xc1, 0xc2, 0x2c, 0x26, 0xbd, + 0x8b, 0x73, 0x7d, 0x23, 0xeb, 0x1f, 0x80, 0x1e, 0x82, 0xa9, 0xda, 0x31, 0x73, 0x21, 0x2c, 0xc5, + 0x79, 0x0e, 0x90, 0x9d, 0xdc, 0x85, 0x20, 0x34, 0xda, 0xb5, 0x1c, 0x0e, 0x97, 0xf1, 0xd2, 0x1e, + 0x97, 0x56, 0xc1, 0x52, 0xf0, 0x24, 0xe2, 0x90, 0x8d, 0xab, 0xb5, 0x1c, 0x25, 0xab, 0x23, 0x4b, + 0xa5, 0x15, 0x60, 0x67, 0x78, 0xa2, 0xc0, 0x8f, 0x33, 0x1b, 0x3d, 0x5b, 0x89, 0xff, 0xf4, 0x21, + 0x8f, 0x4d, 0x5f, 0x25, 0x0c, 0x67, 0xf3, 0x9d, 0xc1, 0x65, 0xbc, 0x7e, 0x36, 0x76, 0x67, 0xcc, + 0xc2, 0x21, 0x8b, 0xf6, 0x94, 0x0a, 0x8c, 0x7c, 0xc0, 0x4e, 0xee, 0x70, 0x87, 0x43, 0x2d, 0x66, + 0x27, 0x6e, 0x53, 0x93, 0xe5, 0x27, 0x5b, 0x3b, 0xb2, 0x93, 0xf2, 0xa6, 0xb4, 0xdc, 0x7e, 0x27, + 0x96, 0x92, 0x31, 0xb9, 0x0e, 0xa7, 0x66, 0x8d, 0xd6, 0x21, 0xe3, 0x0b, 0xd6, 0xc1, 0x46, 0xa7, + 0x6c, 0x58, 0x87, 0x5a, 0x8d, 0xbb, 0x3c, 0x3f, 0x96, 0x18, 0x93, 0xae, 0xd4, 0x6e, 0x98, 0x85, + 0xf7, 0x7f, 0x39, 0xb3, 0x68, 0x0c, 0x9b, 0x5c, 0x53, 0x67, 0x06, 0xa1, 0x4e, 0x0a, 0xc6, 0x3c, + 0x63, 0x96, 0x36, 0x30, 0x44, 0x41, 0xf8, 0xd6, 0x45, 0x8d, 0xdc, 0xee, 0x65, 0x5c, 0x48, 0xd5, + 0xf6, 0x4d, 0x1a, 0x6c, 0x4f, 0x55, 0xc4, 0x88, 0x5f, 0x4e, 0x19, 0x6f, 0xc3, 0x27, 0x4a, 0x71, + 0x8d, 0xa9, 0x71, 0x9d, 0xcd, 0x10, 0x98, 0x70, 0x02, 0xb0, 0x97, 0xdb, 0x1d, 0x40, 0xca, 0xf8, + 0x05, 0xe2, 0xd5, 0xbc, 0x7c, 0x5f, 0xd9, 0x95, 0x6b, 0x3b, 0x88, 0x53, 0xf3, 0xd2, 0x67, 0x64, + 0x79, 0xe7, 0x93, 0x92, 0x71, 0xb8, 0x6e, 0x1f, 0x83, 0xc4, 0xb7, 0x2b, 0x9f, 0x88, 0x6c, 0x87, + 0x06, 0x0d, 0x7e, 0x44, 0xd5, 0x51, 0xaf, 0x73, 0x9d, 0xb8, 0x2b, 0x92, 0x76, 0xc5, 0xb4, 0xaf, + 0x8f, 0xd7, 0x0c, 0xc8, 0x25, 0x32, 0x59, 0x8b, 0x51, 0xee, 0x64, 0x36, 0x03, 0xe9, 0x49, 0xde, + 0x06, 0x12, 0xfd, 0xbf, 0x1d, 0x53, 0xf4, 0x3e, 0x03, 0x2e, 0xaa, 0x7b, 0x8a, 0x55, 0x90, 0x92, + 0x28, 0xe3, 0x84, 0x24, 0x9d, 0x67, 0x81, 0xe0, 0x4b, 0xaf, 0x44, 0x99, 0x75, 0x4d, 0x07, 0xb4, + 0x0b, 0xca, 0xee, 0xb0, 0x38, 0x36, 0x92, 0xb1, 0x47, 0x1b, 0x58, 0x7d, 0x1a, 0x2a, 0x9f, 0x98, + 0x90, 0x2b, 0xdc, 0x61, 0x9b, 0x98, 0x6b, 0x8c, 0xa4, 0x0a, 0xc7, 0x5a, 0xf2, 0x06, 0x1b, 0xc5, + 0x2c, 0xb7, 0xbb, 0x83, 0xb0, 0xa2, 0x64, 0x15, 0xab, 0x79, 0x69, 0xe5, 0x26, 0x79, 0x15, 0xe2, + 0x79, 0x4b, 0xea, 0x79, 0x45, 0xb2, 0x9d, 0x2c, 0x05, 0xb5, 0x34, 0x93, 0x7f, 0xff, 0x34, 0x33, + 0x69, 0xcb, 0x61, 0xf8, 0x51, 0xd6, 0xeb, 0xa3, 0x2d, 0xc6, 0x3e, 0x7f, 0x75, 0x4c, 0xef, 0xf1, + 0x95, 0x77, 0x60, 0x24, 0x91, 0x25, 0xcc, 0x82, 0x95, 0xf8, 0x7c, 0x19, 0x46, 0xae, 0x8a, 0x30, + 0x32, 0xbc, 0x53, 0xd3, 0xcf, 0xb2, 0x72, 0x59, 0x54, 0x5a, 0xd9, 0xb4, 0xb2, 0x75, 0xec, 0x89, + 0x6b, 0xff, 0x19, 0x53, 0x7c, 0x6c, 0x81, 0x39, 0xf3, 0x57, 0xaf, 0x61, 0x17, 0x07, 0xf4, 0xa8, + 0x2e, 0x5b, 0xc9, 0x2e, 0x9c, 0x0a, 0x9b, 0xd6, 0x34, 0x34, 0xcc, 0xbf, 0x8e, 0xcd, 0xeb, 0xe5, + 0xcb, 0x1a, 0x1a, 0x5a, 0x9a, 0x1b, 0x57, 0xd3, 0x45, 0xc0, 0xb2, 0x3a, 0x66, 0x8d, 0x98, 0x6c, + 0x22, 0x4b, 0xb5, 0xcb, 0x56, 0xd7, 0xd3, 0xa9, 0xff, 0x72, 0x76, 0xf6, 0xdf, 0xfa, 0xfd, 0x58, + 0xfd, 0xd7, 0xf9, 0x49, 0x3d, 0xb7, 0xf2, 0x4c, 0xda, 0x5b, 0x9a, 0xd7, 0xb4, 0x8e, 0xc6, 0xb7, + 0x40, 0xdd, 0xb2, 0x07, 0x8a, 0x9b, 0x9b, 0xd4, 0x95, 0x51, 0x2d, 0x5e, 0xf5, 0xca, 0xb5, 0x94, + 0x24, 0xbf, 0x9d, 0x59, 0x84, 0xae, 0x6a, 0x5e, 0x49, 0x47, 0xe7, 0xf4, 0x4a, 0x46, 0x8c, 0x53, + 0x5e, 0x2b, 0x97, 0x35, 0xf2, 0x78, 0x16, 0x60, 0x8f, 0xa4, 0x25, 0xc6, 0x32, 0x5a, 0x2d, 0xa6, + 0xe4, 0xd2, 0x02, 0x74, 0x2b, 0xc1, 0x8c, 0x3b, 0x6b, 0xb6, 0x9d, 0xdb, 0xb5, 0x9f, 0x3a, 0x89, + 0x47, 0x2f, 0xc6, 0xe8, 0xbc, 0x2e, 0x74, 0x6f, 0x14, 0xc4, 0x1a, 0x33, 0x33, 0xd6, 0x74, 0xcb, + 0xc0, 0x20, 0x45, 0x0d, 0x61, 0x95, 0xab, 0xab, 0x6f, 0x63, 0x57, 0x0b, 0x49, 0x3d, 0xab, 0xfc, + 0x4e, 0x9b, 0xac, 0xfd, 0x22, 0x2d, 0xf5, 0xa5, 0x80, 0x1f, 0xb2, 0x99, 0xa6, 0xed, 0x6c, 0x1c, + 0x19, 0xd2, 0x9b, 0xfb, 0xc2, 0x42, 0x74, 0x06, 0xee, 0xa8, 0x82, 0xaa, 0x4f, 0x71, 0xd9, 0x6d, + 0xc4, 0x7b, 0xe7, 0xb0, 0x9f, 0xb6, 0x88, 0x42, 0xe2, 0x62, 0x8f, 0x60, 0xdf, 0x57, 0x1d, 0xac, + 0xe9, 0x0b, 0x07, 0xd5, 0x0f, 0x94, 0x19, 0x76, 0x9b, 0xfd, 0x95, 0xea, 0xe0, 0x62, 0x7a, 0xbb, + 0xa4, 0xd8, 0x38, 0x9d, 0x3b, 0xc6, 0x57, 0xca, 0x71, 0x30, 0xe7, 0x22, 0xf9, 0xc6, 0x7c, 0x4f, + 0x65, 0xd1, 0x79, 0x61, 0x2d, 0x69, 0xc8, 0xb8, 0xfa, 0xb7, 0x38, 0xb2, 0xce, 0xba, 0x40, 0xb5, + 0xe0, 0xcc, 0x83, 0xb8, 0x85, 0x59, 0x71, 0x94, 0x6f, 0xaf, 0xe0, 0xfc, 0x1c, 0x57, 0x17, 0xf2, + 0xb9, 0x86, 0xa3, 0x55, 0xf6, 0xac, 0x80, 0x42, 0xdc, 0x63, 0x7f, 0xed, 0xd8, 0x00, 0xcd, 0xb5, + 0xe1, 0x50, 0x87, 0xef, 0x38, 0xed, 0xa7, 0x69, 0x7d, 0xf5, 0x11, 0x81, 0xe8, 0xb7, 0xfa, 0x7d, + 0x20, 0xb1, 0x54, 0xf7, 0x30, 0xde, 0x09, 0x9b, 0xd9, 0xc7, 0x2c, 0x9e, 0x98, 0xc2, 0x0d, 0x90, + 0xcd, 0xf7, 0x27, 0x57, 0x3b, 0x88, 0xaf, 0x03, 0x53, 0x65, 0x32, 0x29, 0x61, 0xba, 0x53, 0x08, + 0xfa, 0xad, 0x34, 0x57, 0x18, 0x8d, 0xb9, 0xb0, 0xe5, 0x26, 0xb2, 0x7b, 0xea, 0x67, 0xf7, 0x06, + 0x57, 0xb7, 0x54, 0x3e, 0x81, 0x61, 0xd5, 0x59, 0x20, 0x1a, 0x13, 0x43, 0x84, 0xd9, 0xad, 0xf8, + 0x9f, 0x4e, 0x63, 0x5b, 0x02, 0x43, 0x9d, 0xf6, 0x42, 0xb0, 0x31, 0x7e, 0xde, 0xd7, 0xf9, 0xd9, + 0x89, 0xdf, 0x44, 0x72, 0x0c, 0x7e, 0x63, 0x32, 0xb7, 0x00, 0x9d, 0xc6, 0xd2, 0x6f, 0x29, 0xfb, + 0x0d, 0xb1, 0xdf, 0x30, 0xa7, 0x51, 0xaf, 0xfe, 0xac, 0xf2, 0x09, 0x7c, 0x8b, 0x90, 0x94, 0x03, + 0xee, 0x0c, 0xa6, 0x2d, 0x07, 0xe8, 0xd5, 0xf8, 0xe0, 0x84, 0xf1, 0xf2, 0x8c, 0xd1, 0x86, 0x59, + 0xa4, 0xaf, 0x1f, 0x58, 0x7e, 0x79, 0x8c, 0x67, 0x98, 0xe5, 0x4f, 0x36, 0xe2, 0xf2, 0xa0, 0xba, + 0x88, 0xd9, 0x6b, 0x2a, 0x4a, 0x5c, 0xa3, 0xf3, 0xdf, 0xc1, 0x55, 0x20, 0xd6, 0x01, 0xbc, 0xc0, + 0x73, 0x0a, 0xb5, 0x98, 0x79, 0x59, 0x6f, 0x93, 0x65, 0x5c, 0x5c, 0x6f, 0xb6, 0x22, 0xae, 0xc5, + 0xb6, 0x87, 0x7b, 0xd4, 0x2c, 0x67, 0x03, 0x59, 0x81, 0x0e, 0xcc, 0x02, 0x31, 0x45, 0x86, 0xed, + 0x39, 0xc8, 0xe1, 0x56, 0x70, 0x47, 0x06, 0x59, 0xba, 0x93, 0xc9, 0x15, 0x4e, 0x62, 0x71, 0x5c, + 0x2b, 0x04, 0x19, 0x21, 0x47, 0xba, 0xcd, 0x2d, 0xdc, 0x7a, 0xd4, 0x55, 0xac, 0x0f, 0xae, 0xe8, + 0x53, 0xb8, 0xf5, 0x3a, 0x76, 0x83, 0x92, 0xc1, 0x30, 0x4c, 0x16, 0xd9, 0xff, 0xe1, 0x67, 0x61, + 0x57, 0xff, 0xb5, 0x72, 0x8b, 0x2b, 0xc2, 0xee, 0x69, 0x36, 0xab, 0xfb, 0x11, 0x03, 0x5c, 0x9e, + 0x56, 0x30, 0x2a, 0x47, 0x62, 0xab, 0x5c, 0xe3, 0xc2, 0x9a, 0xb4, 0x43, 0x81, 0x17, 0x8c, 0xef, + 0xf4, 0xfb, 0x49, 0x63, 0x3a, 0xf6, 0xa0, 0x9f, 0x69, 0xd4, 0x1e, 0xbe, 0x19, 0xfb, 0xbc, 0x01, + 0x24, 0x77, 0xc5, 0xe8, 0x8a, 0x21, 0xb3, 0x15, 0xc3, 0x48, 0x2b, 0x06, 0x97, 0xcf, 0x65, 0xb5, + 0xf8, 0x0a, 0xb6, 0x08, 0x12, 0x2e, 0xf6, 0xec, 0xc1, 0x9d, 0x65, 0x36, 0xc7, 0x20, 0x89, 0x6c, + 0x48, 0x08, 0x55, 0x88, 0x41, 0xfe, 0x0d, 0x9f, 0xe7, 0xa1, 0x97, 0xd1, 0x6b, 0xda, 0x85, 0x71, + 0x7a, 0xd0, 0x34, 0x49, 0xfe, 0x9f, 0x8c, 0x3d, 0x34, 0x44, 0xb1, 0x66, 0x59, 0xfd, 0xd8, 0x55, + 0x3a, 0xbe, 0x20, 0xba, 0x78, 0xa0, 0xae, 0xbe, 0x71, 0x4d, 0x3b, 0xa5, 0x6c, 0x5d, 0x16, 0x25, + 0xd4, 0x63, 0x01, 0x9a, 0xd9, 0x63, 0x33, 0xad, 0x1c, 0xc3, 0x22, 0xf5, 0xab, 0x57, 0xd6, 0x91, + 0x86, 0x42, 0x7c, 0xf7, 0x2c, 0xa1, 0xbb, 0xb2, 0x2a, 0xfa, 0x29, 0xe5, 0x77, 0x89, 0x4c, 0x03, + 0x14, 0xfd, 0xcc, 0xb2, 0xa4, 0xe4, 0xa3, 0xcd, 0xf1, 0xa4, 0xbb, 0x1d, 0xb0, 0x85, 0x89, 0xd3, + 0x4c, 0x4a, 0x21, 0x83, 0x76, 0x44, 0xc3, 0x47, 0x3d, 0x4c, 0xd3, 0x4e, 0xa2, 0x56, 0xb3, 0x4c, + 0xe3, 0xf6, 0x07, 0xc9, 0x32, 0x09, 0x86, 0x34, 0x43, 0x01, 0x9d, 0x21, 0x22, 0xfd, 0x5c, 0xa0, + 0x59, 0x6a, 0xb6, 0xe0, 0x6a, 0xf8, 0x37, 0xd8, 0xdf, 0xb8, 0xa6, 0x10, 0x2c, 0x13, 0x1d, 0x9c, + 0xfe, 0xf2, 0x55, 0x10, 0x5d, 0x8b, 0x30, 0xc7, 0x79, 0xb4, 0x10, 0xc7, 0x1e, 0x59, 0xe5, 0x2c, + 0xc8, 0x21, 0xeb, 0x98, 0x53, 0x4c, 0x38, 0x42, 0x0e, 0x99, 0x71, 0x9f, 0x4d, 0x36, 0x70, 0x61, + 0x3f, 0x3e, 0xd1, 0xcc, 0x01, 0xd8, 0x83, 0x54, 0x4d, 0xce, 0x2e, 0x6e, 0x5d, 0xe7, 0x05, 0x9c, + 0x23, 0xd3, 0xc7, 0x8d, 0xfd, 0x9f, 0x60, 0xaf, 0xcf, 0x06, 0xb1, 0xe8, 0x13, 0xf3, 0x07, 0x6e, + 0xb3, 0x26, 0xe7, 0x33, 0x8d, 0xe9, 0x3c, 0x08, 0xe3, 0xaa, 0xb9, 0x28, 0x66, 0x63, 0x25, 0x76, + 0x30, 0x9e, 0xa4, 0x15, 0x65, 0xe7, 0x41, 0xb4, 0x2e, 0x09, 0x0f, 0xab, 0xf7, 0xff, 0x8f, 0xb7, + 0xd4, 0xfb, 0x9c, 0xb9, 0x60, 0x57, 0x4d, 0xc4, 0xc3, 0x92, 0xf8, 0x8e, 0x94, 0x0b, 0x19, 0x7c, + 0x4c, 0x25, 0xbe, 0x43, 0xf6, 0x8f, 0x98, 0x95, 0x23, 0x8b, 0x9f, 0x7e, 0xa7, 0x25, 0x47, 0x17, + 0x3e, 0x4f, 0x65, 0x76, 0xbb, 0xbc, 0x7c, 0x8e, 0x27, 0xfa, 0x98, 0xac, 0x43, 0x65, 0xaa, 0xe5, + 0x5a, 0x26, 0xf7, 0x6c, 0xf2, 0x2d, 0xdc, 0xf5, 0x48, 0xdd, 0x66, 0x57, 0x84, 0xb8, 0x72, 0x13, + 0xb9, 0xac, 0x06, 0x5d, 0x2c, 0xc5, 0xfe, 0xe4, 0x5d, 0x08, 0xd7, 0xc0, 0xcf, 0xf5, 0xed, 0x13, + 0x8f, 0x3f, 0x64, 0x69, 0x3a, 0xb2, 0x69, 0x5f, 0x17, 0x60, 0x5c, 0x46, 0x48, 0x0b, 0x92, 0x5c, + 0x6a, 0x60, 0x7a, 0xbe, 0x7d, 0x50, 0x6e, 0x16, 0xf3, 0x61, 0x2e, 0xb6, 0x33, 0x0f, 0x67, 0x18, + 0xb6, 0xd7, 0x98, 0x47, 0xbc, 0x8e, 0x45, 0x0d, 0x62, 0x1e, 0xcc, 0x7d, 0x10, 0x4c, 0x38, 0xee, + 0x4d, 0x3b, 0xe4, 0x46, 0xf7, 0xae, 0xf2, 0x66, 0x31, 0xaf, 0x78, 0x70, 0x61, 0xb3, 0x18, 0x98, + 0x3a, 0x58, 0xde, 0xc8, 0xf7, 0x6e, 0x8e, 0x40, 0xd7, 0x9d, 0xe5, 0x20, 0xde, 0x59, 0x04, 0xc6, + 0x3b, 0x83, 0x60, 0x52, 0x8c, 0x72, 0x90, 0xed, 0xb0, 0xde, 0xb3, 0x5a, 0xa9, 0x3c, 0xce, 0x93, + 0x85, 0xb4, 0x91, 0x99, 0x4e, 0x95, 0x49, 0xcb, 0x6c, 0x92, 0x2a, 0x62, 0x32, 0xa7, 0xe3, 0xbe, + 0x16, 0x5f, 0x18, 0xff, 0x55, 0x93, 0x83, 0xb5, 0x8d, 0xd1, 0x41, 0x0c, 0x63, 0x64, 0xcf, 0x94, + 0xc1, 0x72, 0x4b, 0x33, 0x7c, 0x09, 0xa6, 0x84, 0xbb, 0xa2, 0xd6, 0x14, 0xeb, 0x3f, 0x4f, 0x27, + 0x75, 0xee, 0xd3, 0x9e, 0x2e, 0x55, 0xc2, 0x5a, 0x0a, 0x62, 0x19, 0x27, 0x18, 0x55, 0x6c, 0xf1, + 0x4f, 0x41, 0x6f, 0x46, 0x8a, 0xcd, 0xca, 0x2d, 0x66, 0x53, 0x49, 0xc0, 0xf6, 0xc1, 0xb7, 0x87, + 0x88, 0x7b, 0x0c, 0x8c, 0xc5, 0xa7, 0xc1, 0x28, 0x6d, 0xe0, 0x16, 0x13, 0x48, 0xa3, 0xef, 0x13, + 0xaf, 0xd2, 0x69, 0x38, 0xd9, 0x09, 0x19, 0xbd, 0xaf, 0xd3, 0xac, 0x47, 0xb2, 0x31, 0xbc, 0xd3, + 0x9f, 0x71, 0x5b, 0x07, 0x8e, 0xa6, 0xb9, 0xb2, 0x1f, 0xbe, 0x4a, 0x36, 0x45, 0xf0, 0x7f, 0x61, + 0x6a, 0xe9, 0x38, 0x8e, 0xe7, 0xb3, 0x18, 0x5f, 0x2f, 0xba, 0x00, 0xb2, 0x3f, 0x84, 0x1b, 0xd5, + 0x17, 0xa1, 0x14, 0x9f, 0x4b, 0xf1, 0x59, 0xc6, 0x2f, 0x69, 0x90, 0x81, 0x69, 0x6e, 0xc2, 0x50, + 0x1b, 0x86, 0xe6, 0x62, 0xa8, 0xe3, 0x1b, 0x1d, 0xe0, 0x81, 0xac, 0xf1, 0xb6, 0xd2, 0x91, 0xaa, + 0x4b, 0x18, 0x5a, 0x24, 0x3f, 0x2c, 0xc6, 0xba, 0x98, 0x26, 0xd8, 0x66, 0x9c, 0xfb, 0x0d, 0xa2, + 0xa4, 0x9c, 0x98, 0x8f, 0xcb, 0xdf, 0x0c, 0x35, 0xe0, 0xc6, 0xdf, 0xa5, 0xe0, 0xa5, 0x98, 0x29, + 0xf6, 0xd5, 0x53, 0xdf, 0xe6, 0xb3, 0x53, 0x6f, 0x68, 0x11, 0x86, 0x3a, 0x7d, 0x44, 0xa1, 0x56, + 0x54, 0xae, 0x19, 0x77, 0x4b, 0x0e, 0x4c, 0x67, 0x2c, 0x49, 0x0e, 0x6b, 0x16, 0xc3, 0x6a, 0x06, + 0x5c, 0xb0, 0x38, 0x9e, 0xaa, 0xdb, 0x87, 0xf5, 0x47, 0x8e, 0x54, 0x5c, 0x7c, 0x06, 0x04, 0x92, + 0xc0, 0x18, 0x5b, 0x0d, 0x1d, 0x5d, 0x92, 0xe5, 0x54, 0x1f, 0x3f, 0x5b, 0x29, 0xe1, 0x77, 0x1b, + 0x96, 0x58, 0x46, 0xaa, 0xf4, 0x35, 0x4b, 0x1b, 0x96, 0xed, 0x32, 0xce, 0x49, 0xf4, 0xe2, 0x2d, + 0x64, 0x11, 0xce, 0x80, 0x4f, 0x46, 0xf4, 0x69, 0xe8, 0x4d, 0xe8, 0xd3, 0xef, 0xee, 0xa8, 0xfc, + 0x0b, 0xb3, 0xb8, 0x60, 0x05, 0x0b, 0xee, 0x5b, 0xcc, 0x31, 0xd3, 0x44, 0x4b, 0xd4, 0x92, 0xa5, + 0x26, 0xce, 0x4b, 0xe2, 0x72, 0xc9, 0xda, 0x7e, 0x9e, 0x46, 0xdb, 0x2a, 0x28, 0x65, 0xbc, 0x72, + 0x19, 0x63, 0x77, 0x6d, 0xf2, 0x76, 0x28, 0x1d, 0x8b, 0xc7, 0xd6, 0xc4, 0xa9, 0x5c, 0x83, 0xd3, + 0xb5, 0x61, 0x36, 0x3e, 0x0c, 0x7e, 0x91, 0xec, 0xac, 0x30, 0x1e, 0x30, 0x31, 0xd2, 0x87, 0xff, + 0xe7, 0xa8, 0xa6, 0x48, 0x5f, 0x8b, 0x40, 0x96, 0xd9, 0x62, 0xa0, 0x38, 0x9c, 0xc1, 0xb7, 0x86, + 0xde, 0xfa, 0xfd, 0xa1, 0x0d, 0xf4, 0x3f, 0xd4, 0x55, 0xfc, 0xaf, 0xd2, 0x21, 0x69, 0x8a, 0x23, + 0x2b, 0x53, 0x34, 0x19, 0x12, 0x87, 0xac, 0x06, 0x98, 0xb2, 0xfc, 0xdd, 0x70, 0x67, 0x54, 0x2c, + 0x89, 0xbb, 0x6e, 0x73, 0xdf, 0xc6, 0xe8, 0x81, 0x77, 0x34, 0x4a, 0xbf, 0x06, 0x47, 0xd1, 0x52, + 0xed, 0x5c, 0x7d, 0x44, 0xb3, 0xd1, 0x98, 0x98, 0x92, 0x4b, 0xb0, 0xb5, 0x78, 0x70, 0x5f, 0x8a, + 0x18, 0xca, 0x48, 0x67, 0x7b, 0x33, 0xf1, 0xfb, 0x3e, 0xab, 0x17, 0x02, 0xb8, 0xe3, 0xb5, 0x45, + 0xfa, 0x6f, 0x23, 0xcd, 0x34, 0x81, 0x5c, 0xc2, 0x61, 0x33, 0x95, 0x8c, 0xc5, 0xf4, 0x1e, 0xd0, + 0xde, 0x73, 0x6c, 0x76, 0x8c, 0xef, 0x55, 0xcd, 0x9e, 0xea, 0x48, 0x7f, 0xcd, 0x23, 0x8a, 0x77, + 0x54, 0x06, 0x79, 0x06, 0xe3, 0x33, 0xcc, 0xaf, 0x19, 0xf0, 0x04, 0x25, 0x8b, 0x2b, 0x18, 0x89, + 0xdb, 0xed, 0x26, 0x01, 0xbf, 0xd1, 0xb9, 0xf1, 0x45, 0x45, 0xfc, 0xf1, 0xeb, 0x56, 0x3b, 0xe4, + 0x62, 0xfb, 0xfa, 0x93, 0x39, 0xb8, 0xa7, 0xb3, 0x1c, 0xb2, 0x46, 0x73, 0xb0, 0x32, 0x5b, 0x36, + 0x1f, 0xd7, 0x0c, 0xb8, 0x71, 0xbf, 0xdc, 0x06, 0x52, 0xd8, 0x15, 0xb2, 0xdb, 0x22, 0x7d, 0x36, + 0x21, 0x19, 0x63, 0xf9, 0x79, 0xcc, 0x2d, 0x37, 0x7a, 0x1a, 0x7f, 0xe7, 0x44, 0x4f, 0xe2, 0xef, + 0xec, 0xe8, 0x71, 0xfc, 0x5d, 0x4e, 0x56, 0xca, 0x9a, 0x32, 0xf1, 0xa9, 0x3a, 0xda, 0xc4, 0x64, + 0x64, 0xf2, 0xf0, 0x17, 0xdb, 0x24, 0x1e, 0x51, 0xb2, 0x49, 0xba, 0x81, 0xce, 0x94, 0xf1, 0xff, + 0xea, 0x28, 0x93, 0xb6, 0xc0, 0xf0, 0xbd, 0x48, 0xad, 0x54, 0x69, 0x96, 0x26, 0xda, 0x61, 0xa6, + 0x02, 0xe2, 0xe1, 0x85, 0x1f, 0xe1, 0x0c, 0xac, 0x66, 0xf8, 0x85, 0x69, 0xa7, 0xb6, 0x65, 0x85, + 0xe2, 0x73, 0x83, 0x8a, 0x65, 0x6e, 0x07, 0x98, 0x68, 0x16, 0x4c, 0xc9, 0x0d, 0x77, 0x47, 0x45, + 0x77, 0xb1, 0x7f, 0x2a, 0xce, 0x64, 0xc4, 0x92, 0x47, 0x1e, 0xc1, 0x54, 0x31, 0x4a, 0x95, 0x3b, + 0x5d, 0x35, 0x31, 0xd8, 0xe4, 0x52, 0x0d, 0x54, 0xdb, 0x68, 0xbe, 0xce, 0xca, 0xad, 0x91, 0x2e, + 0xdc, 0x95, 0x74, 0xab, 0x16, 0xa9, 0x4c, 0x11, 0x23, 0xdd, 0x24, 0xbb, 0x8d, 0xbd, 0x9d, 0xee, + 0x5c, 0x50, 0xf9, 0xd8, 0x91, 0xee, 0xaa, 0x01, 0x84, 0x48, 0x35, 0xd6, 0xe6, 0xfe, 0xf1, 0x29, + 0x30, 0xdf, 0x2c, 0x56, 0x9b, 0xe9, 0x64, 0x09, 0xa9, 0xe5, 0xa6, 0x7d, 0x71, 0x67, 0xe9, 0xcd, + 0x77, 0x66, 0xc1, 0xe9, 0xbe, 0x97, 0x2e, 0x80, 0x4f, 0x3d, 0x8f, 0xf1, 0xc8, 0x66, 0x62, 0x01, + 0xd5, 0x02, 0xdb, 0x71, 0x96, 0xe2, 0x66, 0xce, 0x06, 0x83, 0xcd, 0x80, 0x70, 0x3a, 0x81, 0x70, + 0x52, 0x96, 0x9b, 0xac, 0x86, 0xc4, 0x7f, 0x5b, 0xee, 0xe0, 0xf9, 0x72, 0x5b, 0x12, 0x38, 0xa3, + 0xb6, 0x92, 0x74, 0x8d, 0x66, 0x81, 0x34, 0x31, 0xe5, 0x6e, 0xaa, 0x05, 0x8f, 0x61, 0x33, 0x9c, + 0x36, 0xf3, 0x7d, 0xa0, 0x54, 0x3a, 0xc6, 0x75, 0x4c, 0x9a, 0x26, 0xf8, 0xf7, 0xd8, 0x4d, 0x07, + 0xe2, 0x52, 0x29, 0x8e, 0xdc, 0x40, 0x01, 0x8c, 0x85, 0x62, 0x4e, 0x77, 0x30, 0xfe, 0x3f, 0x09, + 0xf3, 0x7d, 0x0a, 0xa9, 0x16, 0x92, 0x7b, 0x5b, 0x13, 0xa5, 0xde, 0xad, 0x8b, 0x5a, 0xf1, 0xb7, + 0x9d, 0x49, 0x11, 0xd7, 0x50, 0x9f, 0x53, 0x1d, 0xb1, 0xb5, 0x75, 0x51, 0x10, 0x2a, 0xdc, 0xd3, + 0x11, 0x22, 0x95, 0x4c, 0x7e, 0xd6, 0x58, 0x80, 0x3b, 0x2f, 0xab, 0x9f, 0x46, 0x9b, 0x9a, 0x5d, + 0xbd, 0x51, 0xc9, 0x94, 0xac, 0x2d, 0xe6, 0x1d, 0x1b, 0x1b, 0xc4, 0x98, 0x19, 0xd7, 0xa5, 0x74, + 0x6a, 0xe1, 0xb7, 0x36, 0x56, 0x0d, 0x50, 0xdc, 0xa6, 0x53, 0xce, 0x32, 0xeb, 0xcd, 0x20, 0xa9, + 0x19, 0xa3, 0xa5, 0x07, 0x88, 0x17, 0x9d, 0xe0, 0x25, 0xf0, 0x51, 0x49, 0x52, 0x43, 0x58, 0x03, + 0x55, 0x55, 0x72, 0xc2, 0x3d, 0x0d, 0x99, 0xa3, 0xf1, 0xe6, 0x10, 0x54, 0xdd, 0xc6, 0x92, 0x6e, + 0x92, 0xad, 0x74, 0x1b, 0x11, 0xaa, 0x8b, 0x11, 0xdf, 0x05, 0xb0, 0x67, 0x25, 0x25, 0xb7, 0xfa, + 0x11, 0x26, 0xf1, 0x3d, 0x6a, 0xfd, 0xba, 0xfa, 0x45, 0x08, 0xb0, 0xfd, 0x69, 0xa9, 0x7d, 0xd0, + 0x0c, 0x63, 0xdf, 0xc8, 0x0e, 0xb6, 0x1b, 0x70, 0x0c, 0x84, 0x98, 0x46, 0xad, 0x83, 0x4a, 0x90, + 0xf2, 0xa1, 0x3c, 0x8a, 0x69, 0x74, 0x2c, 0xa4, 0xf6, 0xaa, 0x59, 0xd5, 0x8f, 0xc4, 0x6e, 0x1a, + 0xea, 0xa6, 0xfe, 0x32, 0xc3, 0xe9, 0x47, 0xa2, 0x6c, 0x95, 0x57, 0xcf, 0x28, 0x0e, 0x1e, 0xae, + 0x85, 0x9a, 0x58, 0xe8, 0xd9, 0xf2, 0x4b, 0xbb, 0x4f, 0x7c, 0x7e, 0x8b, 0xdb, 0xa4, 0xad, 0x8f, + 0xf8, 0x0d, 0xa1, 0x87, 0x76, 0x17, 0x24, 0x47, 0x8c, 0x12, 0x60, 0x90, 0x14, 0xa0, 0x0e, 0x69, + 0xca, 0xdd, 0x9e, 0xe9, 0x6e, 0x63, 0x03, 0x8c, 0xec, 0x28, 0xe9, 0xc6, 0x9d, 0xde, 0x73, 0x5a, + 0x6f, 0x8f, 0xf6, 0x1d, 0x8d, 0x3d, 0xef, 0xc2, 0x48, 0xbf, 0x7b, 0x91, 0x82, 0xf4, 0x60, 0x2b, + 0x2c, 0xba, 0x72, 0xb5, 0x8b, 0xe8, 0x12, 0x8b, 0x87, 0x2c, 0x78, 0x4f, 0x99, 0x87, 0xf5, 0xcf, + 0x47, 0x38, 0xf8, 0x6c, 0x76, 0x15, 0xae, 0x0e, 0x33, 0xbe, 0x66, 0xa2, 0x20, 0x3d, 0xda, 0x69, + 0x6c, 0x23, 0xd7, 0xf9, 0x54, 0xb9, 0xe7, 0xea, 0x60, 0xd5, 0x00, 0x9d, 0x25, 0x06, 0x34, 0x87, + 0xbb, 0x5b, 0xee, 0xc0, 0x43, 0x24, 0xdd, 0x2c, 0xb8, 0x63, 0x69, 0x00, 0x3b, 0xe3, 0xce, 0xbc, + 0xbb, 0xf2, 0xef, 0x9e, 0xfb, 0xd5, 0x82, 0xbf, 0x5d, 0x56, 0xbb, 0xbc, 0xae, 0x5e, 0x4d, 0x09, + 0x28, 0x92, 0x8b, 0x4b, 0x16, 0x94, 0x82, 0x96, 0x6b, 0x16, 0xe6, 0xea, 0x20, 0x88, 0x1a, 0xf7, + 0xf3, 0x7c, 0xe9, 0xd6, 0x56, 0x72, 0x11, 0xf7, 0x2f, 0xd2, 0x4f, 0xb6, 0xd9, 0x7e, 0xc8, 0x22, + 0x59, 0xd6, 0x29, 0x87, 0x14, 0x93, 0x14, 0xdc, 0xb9, 0x29, 0x6a, 0xf1, 0x4f, 0xab, 0xdc, 0x4c, + 0xfc, 0x4d, 0xea, 0xc5, 0x8a, 0xf7, 0x5c, 0x46, 0xba, 0x2d, 0x45, 0x3c, 0x2a, 0x62, 0x7c, 0x2b, + 0xd3, 0x2f, 0x41, 0xd6, 0xb1, 0x88, 0x06, 0x69, 0x65, 0xbc, 0x23, 0x98, 0xc6, 0xe5, 0x21, 0x5d, + 0x15, 0xae, 0xdb, 0x38, 0x2d, 0x40, 0x7a, 0xee, 0xc2, 0x8f, 0x45, 0x4b, 0xa5, 0x6f, 0x49, 0x5c, + 0xd6, 0x62, 0x6e, 0x6d, 0x4e, 0x52, 0xda, 0x02, 0xff, 0x1b, 0x90, 0xe6, 0xca, 0x51, 0xe8, 0x24, + 0xc5, 0xe8, 0x8c, 0xab, 0xc7, 0x94, 0x19, 0xf2, 0x63, 0x4a, 0x36, 0xbd, 0x45, 0xe2, 0x1f, 0xf6, + 0xbd, 0x39, 0xa4, 0x58, 0x70, 0x6f, 0x66, 0x76, 0xf6, 0x2b, 0xe6, 0xaa, 0x3e, 0x67, 0x9f, 0xb2, + 0xe7, 0xb1, 0x83, 0x92, 0x39, 0x85, 0x4e, 0x20, 0x7d, 0x19, 0x36, 0xc5, 0x5e, 0xdd, 0xc5, 0xa1, + 0x3e, 0x8a, 0xf3, 0x87, 0x6d, 0xd9, 0x51, 0x63, 0xb8, 0x4b, 0xfd, 0x20, 0x49, 0x1b, 0x10, 0x6f, + 0x72, 0x80, 0xda, 0x48, 0xb6, 0xaa, 0x5d, 0xd8, 0xce, 0x2c, 0xf9, 0xbf, 0xfb, 0xa7, 0x11, 0xe6, + 0xa7, 0xb6, 0x0a, 0xfb, 0xb9, 0x9c, 0x01, 0x93, 0xaa, 0x89, 0xdc, 0x16, 0xc4, 0x56, 0xb1, 0x6f, + 0x29, 0xa1, 0x85, 0x18, 0x7a, 0xf3, 0xa4, 0x50, 0x37, 0x86, 0xda, 0x27, 0x85, 0xda, 0x30, 0x74, + 0x3a, 0xae, 0x28, 0x92, 0x84, 0xab, 0x7b, 0xf2, 0x9e, 0xd9, 0x65, 0xad, 0x1a, 0x48, 0x59, 0x1b, + 0xfc, 0x50, 0xe3, 0xf3, 0xc3, 0x52, 0xac, 0x8d, 0x22, 0x95, 0xfa, 0xab, 0xa0, 0x80, 0x70, 0x0d, + 0xd9, 0xbe, 0x43, 0x8a, 0x80, 0x46, 0x76, 0x10, 0x9f, 0x0b, 0x63, 0x8e, 0x49, 0xab, 0x27, 0xa4, + 0x39, 0x29, 0xe6, 0x18, 0x05, 0x94, 0xb0, 0xe0, 0x4a, 0x59, 0xc7, 0xb4, 0x74, 0xd8, 0xa4, 0xd2, + 0x99, 0x55, 0x60, 0xc5, 0xd6, 0x85, 0xca, 0x59, 0xab, 0xbc, 0x8c, 0x16, 0x26, 0x8a, 0x38, 0x8b, + 0x6c, 0x08, 0xdb, 0x54, 0x0f, 0xee, 0x7e, 0xcd, 0xd4, 0x0f, 0x33, 0x8b, 0xc0, 0x46, 0x5a, 0x47, + 0xd5, 0xcc, 0xf1, 0xfa, 0x66, 0x48, 0x52, 0x2a, 0x0a, 0xc6, 0x76, 0x16, 0xcf, 0x8b, 0xfb, 0x67, + 0x60, 0xfc, 0xf3, 0xb1, 0x2c, 0x2e, 0x55, 0x06, 0xc6, 0x52, 0x27, 0x30, 0x69, 0x18, 0x5b, 0xf5, + 0x86, 0x75, 0xd3, 0x5e, 0xde, 0x50, 0x0f, 0xc6, 0x8a, 0xb7, 0x7e, 0x9f, 0xf7, 0x83, 0x27, 0xcd, + 0x87, 0x3b, 0x2b, 0xaf, 0x6e, 0x12, 0x21, 0x07, 0xe6, 0xc1, 0x7d, 0xd0, 0x0e, 0x5b, 0x61, 0xa7, + 0x20, 0x0a, 0xf7, 0x0b, 0xef, 0x88, 0x46, 0xb1, 0x54, 0xec, 0x11, 0x3f, 0x36, 0xdc, 0x87, 0xf9, + 0x04, 0xb2, 0xe0, 0x30, 0x96, 0xba, 0x98, 0xe4, 0xcf, 0x49, 0xf3, 0x93, 0x80, 0x2b, 0x6f, 0x09, + 0x61, 0x51, 0xd8, 0x75, 0xfd, 0xaf, 0x34, 0xb2, 0x6c, 0x55, 0xb4, 0xd3, 0xbb, 0xf1, 0x77, 0x4b, + 0x8d, 0xd2, 0x76, 0xe3, 0xaf, 0xb7, 0xb6, 0x2a, 0x35, 0x37, 0xfe, 0x9a, 0x15, 0x57, 0xe6, 0xe1, + 0x6e, 0xc0, 0x7a, 0xb8, 0xd3, 0x87, 0x6d, 0x4c, 0x7e, 0x45, 0xec, 0x7e, 0x2f, 0xaf, 0x59, 0xf2, + 0x0e, 0xda, 0xa0, 0xbe, 0xfd, 0x06, 0x6e, 0x74, 0xab, 0xa3, 0xd9, 0x4c, 0x13, 0x03, 0x4b, 0x9b, + 0x6d, 0xe5, 0x5f, 0x71, 0x05, 0xd9, 0xa6, 0x80, 0xa1, 0x44, 0x7e, 0x1c, 0x57, 0x8e, 0xa7, 0x79, + 0x6e, 0xb9, 0x58, 0x9e, 0x13, 0x16, 0x33, 0x48, 0x1d, 0xee, 0x3c, 0xdc, 0xe9, 0xc7, 0xdc, 0x81, + 0x6c, 0x19, 0xdb, 0xae, 0xd7, 0xa7, 0x06, 0xf3, 0x75, 0xfa, 0x34, 0x1f, 0x29, 0x1f, 0x81, 0x52, + 0xbc, 0xfd, 0xbb, 0x99, 0x0b, 0x49, 0xb6, 0x59, 0x94, 0x7d, 0x2c, 0x6f, 0x77, 0x6c, 0x7c, 0xde, + 0x54, 0xd6, 0x92, 0x1b, 0xd6, 0x5c, 0x7c, 0x8e, 0xd5, 0x7b, 0xee, 0xbd, 0xdb, 0xaf, 0x5f, 0xb6, + 0xb8, 0x71, 0x52, 0xd9, 0x65, 0x7c, 0x34, 0x21, 0x5e, 0x3f, 0x24, 0xef, 0xda, 0x4d, 0x12, 0x4f, + 0x07, 0xd7, 0x89, 0xfe, 0x32, 0x08, 0x69, 0xed, 0xa8, 0xd0, 0xe0, 0xc4, 0xc7, 0xfd, 0x96, 0xe4, + 0xb8, 0x57, 0x41, 0x78, 0x06, 0x6b, 0x59, 0xc8, 0xc7, 0x4b, 0x6a, 0x0d, 0xed, 0x81, 0x2c, 0x03, + 0xd9, 0x56, 0x83, 0x84, 0xbb, 0xc8, 0x09, 0x4b, 0x46, 0xc3, 0xa9, 0x57, 0x6a, 0x78, 0x5e, 0x82, + 0x7f, 0xea, 0x5b, 0x67, 0x10, 0xa3, 0x4c, 0xc1, 0xbe, 0xfe, 0x29, 0x7e, 0xc1, 0x96, 0xbe, 0x75, + 0x71, 0x7c, 0x2e, 0xbc, 0xdd, 0xd7, 0x4b, 0xad, 0x18, 0x9d, 0xaf, 0x91, 0xfd, 0x39, 0x95, 0xb4, + 0x60, 0xe4, 0x4c, 0x86, 0x90, 0xef, 0x86, 0x29, 0x63, 0x22, 0x52, 0xea, 0x21, 0x7f, 0x11, 0x54, + 0xf0, 0xd6, 0xe0, 0x53, 0x01, 0x6f, 0x91, 0xd3, 0x0f, 0xbe, 0x75, 0x89, 0x97, 0x89, 0x1b, 0x6e, + 0x95, 0x5f, 0xc8, 0xcb, 0xe0, 0x5c, 0x48, 0x6f, 0x53, 0x1d, 0xa7, 0xd2, 0x2a, 0xa1, 0xc9, 0x9b, + 0xbf, 0x90, 0xeb, 0x4d, 0x8e, 0x9e, 0xc9, 0xfd, 0x9d, 0x5a, 0x26, 0xd5, 0x29, 0xb5, 0x4c, 0x69, + 0xea, 0xa1, 0x47, 0x0e, 0xc5, 0xf1, 0xa9, 0x62, 0x22, 0x1c, 0x91, 0x5a, 0xba, 0xfc, 0xcf, 0xbf, + 0xc3, 0x3d, 0x1f, 0xae, 0x0f, 0xd5, 0x8f, 0xb0, 0xb5, 0xea, 0x92, 0x52, 0x82, 0xfd, 0x8c, 0x25, + 0xbd, 0x3b, 0x98, 0x05, 0xd4, 0x13, 0xc9, 0xb2, 0xe4, 0x66, 0x4c, 0x5f, 0x0c, 0x95, 0x24, 0x1b, + 0x8f, 0x30, 0x33, 0xbf, 0x75, 0xd0, 0x79, 0x67, 0x5f, 0x72, 0x34, 0x90, 0x74, 0xdd, 0x98, 0x9d, + 0x79, 0x84, 0x2b, 0xce, 0x6a, 0xdb, 0x9b, 0x07, 0x79, 0xbc, 0xf0, 0x4b, 0x7d, 0x48, 0x95, 0x5e, + 0x3d, 0x93, 0x7a, 0xc7, 0x40, 0x72, 0x1b, 0xa4, 0x87, 0x2e, 0x0a, 0x57, 0x0f, 0x4b, 0x0f, 0x32, + 0xd9, 0x9c, 0x14, 0x0c, 0x40, 0x33, 0xff, 0x0e, 0x2c, 0x73, 0x5d, 0xfa, 0xcb, 0x1b, 0xa2, 0x96, + 0x19, 0x85, 0x60, 0x7e, 0x79, 0x83, 0x2a, 0x29, 0xe6, 0x25, 0x74, 0x87, 0x6b, 0x53, 0x32, 0xa9, + 0x95, 0x12, 0xc6, 0x7b, 0xf3, 0x23, 0xb0, 0xf2, 0x30, 0x69, 0x3b, 0x69, 0x7b, 0x8a, 0x39, 0x52, + 0xb4, 0x2a, 0x2d, 0x54, 0xe0, 0x6a, 0x9b, 0x54, 0x3a, 0xf9, 0x0b, 0xe2, 0x49, 0x26, 0x2f, 0x12, + 0xde, 0x14, 0xf5, 0x22, 0xfe, 0xb7, 0x46, 0x5d, 0x61, 0xdc, 0x57, 0xa9, 0x33, 0xfc, 0x1e, 0xa6, + 0xbb, 0x08, 0xe7, 0x5b, 0xa6, 0x88, 0xeb, 0x6f, 0x86, 0x33, 0x98, 0x9a, 0x8a, 0xc6, 0xee, 0xe8, + 0xee, 0xe6, 0x32, 0xae, 0x51, 0x27, 0x34, 0xae, 0x1e, 0x6d, 0x25, 0x65, 0x5a, 0xea, 0x5c, 0x88, + 0x65, 0x49, 0x53, 0xc3, 0x18, 0xde, 0x37, 0xfa, 0x0d, 0x49, 0xbc, 0xcf, 0xa5, 0x8b, 0xc8, 0xd2, + 0x65, 0x54, 0xe2, 0x5f, 0x52, 0x30, 0x79, 0xc6, 0xfb, 0x61, 0xc2, 0xe3, 0x47, 0x82, 0x81, 0xae, + 0x51, 0x3c, 0xce, 0xb4, 0xc1, 0xb1, 0xf5, 0x84, 0xf4, 0x1d, 0x65, 0x61, 0xde, 0x12, 0xb3, 0x33, + 0x69, 0x65, 0x3b, 0x8b, 0x1c, 0x7c, 0xb2, 0xe1, 0x2c, 0xb4, 0x5e, 0x77, 0x6d, 0x51, 0x58, 0x9c, + 0xaf, 0xa4, 0xc6, 0x49, 0xf9, 0x2a, 0xb3, 0xaf, 0x33, 0x6e, 0xf0, 0xd5, 0xc5, 0xbe, 0xde, 0x76, + 0xfd, 0xaf, 0x24, 0xd9, 0x51, 0x12, 0xe4, 0x35, 0x34, 0xb2, 0x95, 0x26, 0x79, 0xd6, 0xc2, 0xd6, + 0x9a, 0x10, 0xd6, 0xb2, 0x4a, 0xdb, 0x67, 0xce, 0xc5, 0x15, 0x26, 0x0f, 0x9f, 0xf3, 0xf0, 0x39, + 0xf7, 0xba, 0xd8, 0xe8, 0x03, 0x8a, 0x39, 0x01, 0x1b, 0x2d, 0x4e, 0x62, 0x23, 0x7c, 0xae, 0x00, + 0x6b, 0xfb, 0xbc, 0x77, 0x06, 0x16, 0xb2, 0xd6, 0xd1, 0x2d, 0x4a, 0xf6, 0x73, 0x44, 0x7f, 0xe7, + 0x10, 0x16, 0xbc, 0x8f, 0x46, 0xc9, 0x2c, 0xb6, 0x3e, 0xac, 0x9d, 0xb6, 0x07, 0xd7, 0x07, 0x43, + 0x0f, 0x5b, 0x1f, 0x4c, 0xda, 0xea, 0x50, 0x82, 0x1b, 0xaa, 0xad, 0xb0, 0x07, 0x4e, 0x0b, 0x01, + 0xa1, 0x57, 0xcc, 0x34, 0x98, 0x0c, 0x26, 0xb1, 0x52, 0xec, 0x15, 0x87, 0xd8, 0xbc, 0x6c, 0xc0, + 0x51, 0x81, 0x73, 0xd3, 0x8e, 0xd4, 0x36, 0xc7, 0x17, 0x8b, 0xe3, 0xb3, 0xc6, 0xf0, 0x35, 0xe2, + 0x57, 0x38, 0x91, 0x1a, 0x2f, 0x4f, 0x8b, 0x97, 0x18, 0x1f, 0x0f, 0xc7, 0xca, 0x2d, 0x24, 0xa7, + 0xb3, 0x33, 0x35, 0xae, 0xf3, 0x4e, 0xc2, 0xef, 0xe3, 0x63, 0xd9, 0xb0, 0xc6, 0xf0, 0xe8, 0xbf, + 0x17, 0x2b, 0xc7, 0xa8, 0xac, 0x48, 0x8d, 0x23, 0x7d, 0x0f, 0xe3, 0x7d, 0x2f, 0xcb, 0x38, 0x1a, + 0x6f, 0x8a, 0xdf, 0xac, 0xad, 0x08, 0xa7, 0x18, 0xcf, 0xd0, 0xfc, 0xd4, 0xd8, 0xde, 0xd1, 0x1c, + 0xc3, 0xeb, 0x71, 0x0e, 0x5e, 0xd1, 0xb4, 0xf2, 0x89, 0x1a, 0x5f, 0x38, 0xe3, 0x6f, 0xc2, 0x3c, + 0xd2, 0x10, 0x6b, 0x97, 0x25, 0xb1, 0x36, 0x62, 0xd2, 0xe3, 0x88, 0x49, 0xc3, 0x5e, 0x1f, 0xe1, + 0x16, 0xc4, 0x2e, 0xda, 0x6a, 0x32, 0x4b, 0xc3, 0x25, 0xae, 0x18, 0x61, 0xfc, 0x59, 0x93, 0x56, + 0x13, 0x6e, 0x1f, 0x42, 0xb4, 0x4f, 0xec, 0xbf, 0x59, 0x61, 0xea, 0x3d, 0x8a, 0x7f, 0xac, 0x57, + 0x69, 0x9a, 0x58, 0xbb, 0xd4, 0x9c, 0x7d, 0x81, 0x64, 0xce, 0x58, 0xdb, 0x8a, 0xc9, 0x75, 0x15, + 0x76, 0x5d, 0xaf, 0x44, 0xe1, 0x99, 0x49, 0x25, 0x96, 0x82, 0xb9, 0x45, 0xa0, 0x5c, 0x67, 0x2d, + 0x60, 0x3a, 0x67, 0x70, 0xbc, 0xca, 0xbf, 0x18, 0x97, 0x53, 0x43, 0xe4, 0x39, 0x5a, 0x63, 0xe0, + 0xe3, 0xb5, 0x82, 0x7f, 0x01, 0xcc, 0xc3, 0x51, 0xc9, 0xe0, 0xe6, 0x0d, 0x24, 0xe1, 0xa5, 0x64, + 0xd2, 0x6c, 0xc4, 0x34, 0x4f, 0x54, 0xaf, 0x1f, 0xc3, 0x8d, 0x42, 0x7e, 0x78, 0xbd, 0xfa, 0x01, + 0xa6, 0xdb, 0xf3, 0xd7, 0xa5, 0x83, 0x61, 0x2d, 0x5d, 0xd7, 0x8d, 0xd2, 0x1d, 0x5b, 0x7f, 0x6c, + 0xfd, 0x0d, 0xd2, 0x0e, 0xb1, 0xb4, 0xa5, 0x2c, 0x3e, 0xf6, 0xc9, 0x31, 0xc2, 0xc2, 0x98, 0x47, + 0x12, 0x72, 0xcc, 0x3e, 0xfd, 0x7c, 0xc4, 0xc3, 0x41, 0x86, 0x87, 0x1b, 0xc6, 0xf0, 0x30, 0x1b, + 0x21, 0x46, 0x86, 0x87, 0x9f, 0xd0, 0xf0, 0x70, 0x8b, 0xd4, 0xc0, 0xb0, 0x70, 0xc3, 0x28, 0x16, + 0x76, 0x8f, 0x71, 0x06, 0x27, 0x8c, 0x48, 0xd1, 0xce, 0x65, 0xf2, 0x76, 0x36, 0x67, 0x45, 0x2a, + 0xa6, 0xf3, 0x84, 0x31, 0x9d, 0x59, 0xf2, 0x4d, 0xa4, 0xc9, 0x54, 0x18, 0x7e, 0x74, 0x7c, 0x4c, + 0xc4, 0x54, 0xae, 0x49, 0x58, 0x32, 0xf7, 0x86, 0x58, 0x32, 0x2b, 0x49, 0x1f, 0x17, 0x48, 0x49, + 0xfa, 0xb8, 0xc0, 0x0f, 0x4e, 0x86, 0xd3, 0x6c, 0x92, 0xf1, 0x44, 0x5f, 0x0b, 0xb0, 0xfb, 0x83, + 0x22, 0x70, 0x84, 0x9a, 0xd9, 0x78, 0x9f, 0x8c, 0xd7, 0xbc, 0x9c, 0x8f, 0x2e, 0x06, 0xa5, 0x30, + 0xd4, 0x83, 0xe9, 0x46, 0x63, 0xde, 0x00, 0x43, 0xe5, 0x10, 0x86, 0xf2, 0x67, 0x30, 0x1d, 0xd8, + 0xb8, 0x7f, 0xf0, 0x61, 0x6c, 0xaa, 0xa7, 0xa6, 0x63, 0xee, 0x34, 0x69, 0x4c, 0xc4, 0x3a, 0xcf, + 0x40, 0x0c, 0xe5, 0xc6, 0x7e, 0x22, 0x8a, 0xd7, 0x89, 0xcf, 0x33, 0x62, 0x59, 0xd7, 0xa1, 0x5f, + 0x88, 0x76, 0x9a, 0x31, 0x01, 0x5b, 0x15, 0x32, 0x0a, 0xc6, 0x81, 0x4f, 0x05, 0x60, 0x6d, 0xf5, + 0x1e, 0x49, 0xe2, 0xaa, 0x2b, 0x89, 0x8d, 0x44, 0xd9, 0x22, 0x7c, 0x1d, 0xaa, 0x05, 0x69, 0x65, + 0x1b, 0xc3, 0x69, 0x0e, 0xa4, 0x74, 0x1d, 0x13, 0x29, 0x5d, 0xe1, 0x7e, 0x8d, 0xd2, 0x75, 0x54, + 0x6f, 0x68, 0x9b, 0xb6, 0x0b, 0x31, 0x19, 0x5c, 0x1e, 0x87, 0xc9, 0x92, 0x7f, 0x12, 0xe2, 0xc3, + 0x25, 0xf8, 0x7f, 0x50, 0xfb, 0xdb, 0xb9, 0x38, 0xae, 0xe4, 0xb2, 0x39, 0xb6, 0x4a, 0xc3, 0x29, + 0xdf, 0xd3, 0x28, 0x4b, 0x07, 0xcf, 0x19, 0x06, 0x53, 0x74, 0xb0, 0xe2, 0xaa, 0xcc, 0x56, 0x6b, + 0x07, 0x3e, 0x3d, 0x49, 0xa9, 0x3c, 0x98, 0xea, 0x8f, 0x63, 0x94, 0x8f, 0x83, 0xd1, 0x0e, 0x49, + 0x0a, 0xcf, 0x11, 0xde, 0x12, 0x8d, 0x5d, 0x0f, 0x0a, 0x70, 0x76, 0x12, 0x14, 0x8a, 0x35, 0x18, + 0x2c, 0xc6, 0xf9, 0x57, 0x58, 0x13, 0x57, 0x9e, 0x62, 0x39, 0x21, 0x0d, 0x71, 0x94, 0x46, 0x6f, + 0x31, 0x78, 0x93, 0x25, 0x7c, 0x83, 0x59, 0xd6, 0x4c, 0xd2, 0x45, 0xbc, 0x1c, 0xd2, 0x19, 0x99, + 0x1c, 0xb3, 0x08, 0x31, 0xc7, 0x78, 0xaa, 0x61, 0x64, 0x6f, 0x2a, 0xd5, 0xe0, 0x69, 0x06, 0x77, + 0xf8, 0x39, 0xa2, 0x1a, 0x46, 0x7e, 0xc6, 0xf7, 0xc0, 0x7e, 0x2f, 0xbb, 0x67, 0xb7, 0x26, 0xef, + 0xd6, 0x11, 0x8b, 0x64, 0x69, 0xb2, 0xfb, 0x59, 0xae, 0x0a, 0xdc, 0x2b, 0x77, 0x8c, 0x8f, 0x57, + 0x76, 0xe5, 0xda, 0xa5, 0xeb, 0xc5, 0x55, 0xbc, 0x29, 0x61, 0x9a, 0xfe, 0x24, 0xc5, 0xb8, 0xe0, + 0xca, 0xb5, 0x03, 0xd4, 0xda, 0x71, 0x23, 0xfa, 0x28, 0x69, 0x86, 0xe4, 0xa3, 0xf9, 0xdb, 0x03, + 0xfe, 0x69, 0xb8, 0xd2, 0x9b, 0xd9, 0x4a, 0x8f, 0x2b, 0x34, 0x7a, 0xb6, 0xdf, 0x15, 0xf6, 0x8f, + 0x8e, 0x57, 0x13, 0x69, 0x55, 0xb4, 0xc5, 0xc7, 0xc6, 0xa5, 0xf7, 0x81, 0x9a, 0xe4, 0x9a, 0x79, + 0x49, 0xdb, 0x29, 0x92, 0x5e, 0x27, 0x0f, 0xe6, 0x93, 0x73, 0xc3, 0x9d, 0x22, 0xe2, 0xa0, 0xeb, + 0xee, 0x15, 0xb1, 0x4f, 0xaf, 0xbb, 0x5b, 0x04, 0xe8, 0xbf, 0xee, 0x7e, 0xb1, 0x85, 0xf6, 0x8b, + 0x93, 0x42, 0x97, 0xde, 0x46, 0xfd, 0x30, 0x31, 0xb4, 0x14, 0x43, 0x6f, 0x99, 0x14, 0x1a, 0xc0, + 0xd0, 0xcc, 0x49, 0xa1, 0xd9, 0x18, 0xfa, 0x25, 0x6c, 0xa9, 0x0b, 0xe7, 0x98, 0x0d, 0xe9, 0x59, + 0x87, 0x14, 0xbf, 0xbd, 0x08, 0x8c, 0x63, 0x3b, 0x52, 0xae, 0x83, 0x91, 0xd3, 0x48, 0x5f, 0x68, + 0x6f, 0xac, 0x78, 0xe0, 0xfd, 0x0a, 0xe2, 0xa8, 0x9e, 0x5c, 0x2f, 0xbe, 0x03, 0x27, 0x6e, 0xb6, + 0xbe, 0xf8, 0xa4, 0xaf, 0x1e, 0xfe, 0xf5, 0xfd, 0xbe, 0xeb, 0x7c, 0xb3, 0x66, 0x01, 0xdb, 0x2b, + 0xf7, 0x8c, 0xa7, 0xb0, 0x00, 0xb8, 0x1e, 0x45, 0x2f, 0xee, 0x84, 0xda, 0x6c, 0x1d, 0xd0, 0x0a, + 0x4f, 0xbc, 0xba, 0xce, 0xf7, 0xee, 0x40, 0x19, 0xab, 0x13, 0xed, 0x6f, 0xef, 0x3e, 0x85, 0xb8, + 0xc1, 0xe7, 0x4f, 0x67, 0x92, 0xb8, 0xd3, 0x2a, 0x1f, 0xf7, 0x24, 0x29, 0xb9, 0x9e, 0x68, 0xd6, + 0xde, 0x2e, 0xb5, 0xc4, 0x67, 0x90, 0x0c, 0xa9, 0x27, 0xd7, 0x5e, 0xd2, 0x24, 0x1f, 0x4e, 0x39, + 0x17, 0x0e, 0x2a, 0xf9, 0x8c, 0x53, 0x98, 0x69, 0xdc, 0x64, 0xda, 0xe0, 0x53, 0xbe, 0xb2, 0x7b, + 0x82, 0x05, 0xb7, 0xf4, 0x90, 0x14, 0x70, 0xa4, 0x3b, 0xdc, 0xa3, 0x6e, 0xa6, 0xbb, 0x28, 0xa9, + 0x9f, 0xee, 0x39, 0xb8, 0xce, 0xc3, 0xca, 0x7b, 0x12, 0x97, 0x89, 0xb3, 0x14, 0x6e, 0x6a, 0x11, + 0x48, 0x8b, 0x35, 0x69, 0xc7, 0x26, 0x0d, 0xd6, 0x7e, 0xd2, 0x8e, 0x4f, 0x27, 0x37, 0xe3, 0xc6, + 0x1c, 0x1f, 0x67, 0x74, 0xde, 0x32, 0x8e, 0x76, 0x74, 0x7d, 0x61, 0xda, 0x11, 0xe0, 0xdd, 0xcf, + 0xa5, 0x1e, 0x01, 0x5e, 0xfe, 0x5c, 0xfa, 0x11, 0xe0, 0xe9, 0xcf, 0xa3, 0x20, 0xa3, 0xeb, 0xd8, + 0x57, 0xe9, 0x06, 0x5f, 0x39, 0xe5, 0x7a, 0xfb, 0xe7, 0x52, 0xae, 0xce, 0xcf, 0xa5, 0x5c, 0xff, + 0xe6, 0x8b, 0x52, 0xae, 0xff, 0x7f, 0xa0, 0xad, 0x59, 0x1d, 0x49, 0xeb, 0x75, 0x8e, 0xab, 0x99, + 0xeb, 0x3d, 0xe5, 0xeb, 0x25, 0x1f, 0x9d, 0x98, 0x9b, 0x7d, 0x74, 0x15, 0x14, 0x71, 0x47, 0xf1, + 0xf8, 0x68, 0x49, 0xe6, 0x70, 0xb6, 0x7a, 0x22, 0x39, 0xd2, 0xad, 0x3c, 0xb7, 0xc4, 0x6d, 0x38, + 0x37, 0x66, 0xa2, 0xf7, 0xd2, 0x2d, 0x29, 0xcd, 0x14, 0xa2, 0x7d, 0x89, 0x0f, 0x8f, 0x4e, 0x8e, + 0xe9, 0x26, 0x9e, 0x24, 0x1a, 0x7a, 0xd1, 0x3f, 0x8c, 0xbe, 0x0f, 0xfd, 0x06, 0xf4, 0xfd, 0xe8, + 0x1f, 0x41, 0xbf, 0x11, 0xfd, 0x0f, 0xd1, 0x3f, 0x8a, 0x7e, 0x00, 0xfd, 0x26, 0xf4, 0x8f, 0xa1, + 0xdf, 0x8c, 0xfe, 0x71, 0x66, 0x85, 0x14, 0xe0, 0x09, 0xc6, 0xf1, 0x0b, 0xf0, 0x23, 0xf4, 0x4f, + 0xa2, 0xff, 0x31, 0xfa, 0xa7, 0xd0, 0xff, 0x1f, 0xe8, 0xc9, 0xce, 0xcd, 0x7f, 0x45, 0xff, 0x34, + 0xfa, 0xff, 0xa6, 0x49, 0x4a, 0xff, 0x9f, 0x9a, 0xb4, 0xf4, 0xff, 0x85, 0xfe, 0x67, 0xe8, 0xff, + 0x3b, 0xfa, 0x9f, 0xa3, 0xff, 0x05, 0xfa, 0x6d, 0xe8, 0x7f, 0x89, 0x7e, 0x3b, 0xfa, 0x67, 0xd1, + 0x3f, 0x87, 0xfe, 0x79, 0xf4, 0x2f, 0xa0, 0x27, 0x29, 0xab, 0x41, 0xf4, 0x2f, 0xa1, 0xdf, 0x81, + 0xfe, 0x57, 0xe8, 0x89, 0xc3, 0xe5, 0xd7, 0xe8, 0x77, 0xa1, 0xff, 0x0d, 0xfa, 0xdd, 0xe8, 0xff, + 0x1e, 0xfd, 0x1e, 0xf4, 0xff, 0x37, 0xfa, 0xbd, 0xe8, 0xff, 0x07, 0xfa, 0x97, 0xd1, 0xff, 0x4f, + 0xf4, 0x43, 0xe8, 0x5f, 0x41, 0xbf, 0x0f, 0xfd, 0x6f, 0xd1, 0xef, 0x47, 0xff, 0x0f, 0xe8, 0xc9, + 0xb6, 0xee, 0xef, 0x18, 0x17, 0x33, 0xc0, 0xef, 0xc9, 0x1e, 0x03, 0xfa, 0xd7, 0xd0, 0x93, 0x5c, + 0xe6, 0x3f, 0xa2, 0x7f, 0x03, 0xfd, 0xff, 0x83, 0xfe, 0x10, 0x7a, 0x32, 0xab, 0x79, 0x18, 0xfd, + 0x5b, 0xa4, 0x97, 0x1d, 0xfd, 0x1f, 0xd0, 0x93, 0x45, 0x93, 0xb7, 0xd1, 0xbf, 0x83, 0xfe, 0x8f, + 0xc4, 0x2d, 0x89, 0xfe, 0x9f, 0xd0, 0x1f, 0x47, 0xff, 0xcf, 0xe8, 0xdf, 0x45, 0xff, 0x1e, 0x7a, + 0xba, 0x4f, 0x7f, 0x1f, 0xfd, 0x49, 0xf4, 0x7f, 0x42, 0x7f, 0x0a, 0xfd, 0x9f, 0xd1, 0x7f, 0x80, + 0xfe, 0x43, 0xf4, 0xa7, 0xd1, 0xff, 0x0b, 0xfa, 0x33, 0xe8, 0x3f, 0x42, 0x7f, 0x16, 0xfd, 0x39, + 0xf4, 0xe7, 0xd1, 0x5f, 0x40, 0x7f, 0x11, 0xfd, 0xbf, 0xa2, 0xff, 0x18, 0xfd, 0x27, 0xe8, 0x2f, + 0xa1, 0xff, 0x14, 0xfd, 0x67, 0xe8, 0xff, 0x0d, 0xfd, 0x65, 0xf4, 0x7f, 0x61, 0x9c, 0xd9, 0x00, + 0x57, 0xd1, 0x13, 0xe7, 0xe6, 0x35, 0x92, 0x54, 0x27, 0x0c, 0x99, 0x62, 0x73, 0x85, 0xa4, 0xd4, + 0x0d, 0x9a, 0xed, 0x95, 0x34, 0xf4, 0x26, 0xf4, 0xe9, 0x40, 0x66, 0xb4, 0x01, 0xa6, 0x00, 0x99, + 0xd8, 0xe6, 0x36, 0x5c, 0xac, 0xe8, 0xa7, 0x01, 0x99, 0xe1, 0x26, 0xc3, 0xda, 0x64, 0x8a, 0x03, + 0xe0, 0x66, 0xf4, 0x76, 0xf4, 0xd3, 0xd1, 0x3b, 0xd0, 0xdf, 0x82, 0x3e, 0x13, 0xfd, 0x97, 0xd0, + 0x93, 0xe5, 0xc1, 0x5b, 0x89, 0x27, 0x0f, 0xfd, 0x97, 0xd1, 0xe7, 0xa0, 0xff, 0x0a, 0xfa, 0x19, + 0xe8, 0x71, 0x20, 0x82, 0xc4, 0x6f, 0xea, 0x91, 0x00, 0x01, 0xf8, 0x1b, 0xcd, 0xfe, 0xd1, 0x4c, + 0x66, 0xd1, 0x18, 0xe0, 0x0e, 0xf4, 0x64, 0xd1, 0x76, 0x16, 0x7a, 0x1a, 0xac, 0xc4, 0xdb, 0x47, + 0xf6, 0x09, 0xe7, 0xa0, 0x27, 0x3b, 0x76, 0x7e, 0x20, 0x53, 0x08, 0x00, 0x77, 0xa2, 0xcf, 0x43, + 0x7f, 0x17, 0xfa, 0x7c, 0xf4, 0x77, 0xa3, 0x9f, 0x8b, 0xfe, 0xab, 0xe8, 0x0b, 0xd0, 0xd3, 0xaa, + 0x3e, 0x0f, 0xfd, 0xd7, 0xd0, 0x17, 0xa2, 0xff, 0x3a, 0xfa, 0xf9, 0xe8, 0xbf, 0xa1, 0x49, 0xe8, + 0x2f, 0x43, 0x5f, 0x8b, 0x7e, 0x39, 0xb1, 0x46, 0xa1, 0x27, 0x6b, 0xb8, 0x2a, 0x30, 0xe2, 0x09, + 0x56, 0xa0, 0x5f, 0x89, 0x7e, 0x15, 0xfa, 0x07, 0x89, 0x8b, 0x16, 0x3d, 0x99, 0x4c, 0x6c, 0x42, + 0xdf, 0x8c, 0x3e, 0x86, 0x9e, 0xec, 0xdb, 0xb4, 0xa0, 0x5f, 0x8d, 0x9e, 0xf4, 0x00, 0xe0, 0x8c, + 0x85, 0x36, 0xf4, 0x0f, 0xa1, 0x6f, 0x47, 0xff, 0x7d, 0xa6, 0x23, 0x00, 0xe0, 0x3b, 0xe8, 0x97, + 0xa2, 0xff, 0x2e, 0xfa, 0xfb, 0xd1, 0x3f, 0x80, 0x5e, 0xf9, 0xdf, 0x58, 0xfe, 0x0f, 0xd0, 0x13, + 0x37, 0xfe, 0xdf, 0xa1, 0x5f, 0x87, 0xfe, 0xbf, 0xe8, 0xf3, 0xff, 0x3f, 0xfd, 0xfc, 0xd7, 0xfb, + 0x5f, 0xc7, 0xff, 0xff, 0xd9, 0xf1, 0x7f, 0x11, 0x7a, 0x19, 0x7d, 0x31, 0x7a, 0xd2, 0xea, 0xb2, + 0x00, 0x7d, 0x29, 0xfa, 0x32, 0x62, 0xed, 0x44, 0x5f, 0x8e, 0x3e, 0x8c, 0x7e, 0x21, 0xfa, 0x0a, + 0xf4, 0x8b, 0xd0, 0x57, 0xa2, 0xff, 0x26, 0xfa, 0x2a, 0xf4, 0xdf, 0x42, 0x1f, 0x41, 0x5f, 0x4d, + 0xa6, 0x2f, 0xd1, 0xdf, 0x83, 0x7e, 0x09, 0xfa, 0x7b, 0xd1, 0xd7, 0xa0, 0xff, 0x36, 0xfa, 0xfb, + 0x3e, 0x07, 0xff, 0xff, 0xef, 0x2a, 0x5f, 0xc7, 0xff, 0xfa, 0xfc, 0xbf, 0xde, 0xfc, 0xff, 0x4f, + 0xeb, 0xc4, 0x49, 0x7f, 0x06, 0x49, 0x4c, 0xfe, 0xc1, 0xbf, 0xff, 0x27, 0x28, 0xc6, 0xa1, 0xcf, + 0xfb, 0xc3, 0xde, 0x9f, 0xf4, 0x37, 0x21, 0xc6, 0x1f, 0x52, 0xfe, 0xfe, 0xe1, 0x8b, 0xfd, 0x8d, + 0x4b, 0x7f, 0x34, 0xe5, 0xef, 0xc0, 0x17, 0xfb, 0x4b, 0xa6, 0x15, 0xff, 0xd3, 0xdb, 0xa9, 0xfd, + 0xe6, 0x85, 0xc4, 0xeb, 0xda, 0xa9, 0xcf, 0x0a, 0xdc, 0x55, 0x37, 0xe0, 0xee, 0x3a, 0xb6, 0x16, + 0x16, 0x5d, 0x80, 0xfb, 0xfd, 0x4c, 0xfb, 0x2a, 0x84, 0x15, 0x30, 0xcd, 0xe5, 0x1c, 0x73, 0xa6, + 0x4c, 0x49, 0x8e, 0xf4, 0xb5, 0x43, 0x9b, 0xe0, 0x0e, 0xd9, 0xb3, 0x88, 0x0b, 0x28, 0xaf, 0x27, + 0x06, 0x3b, 0x6e, 0x55, 0xcd, 0x4e, 0xc3, 0xfb, 0xbf, 0xec, 0xeb, 0x54, 0x4e, 0x47, 0xe2, 0x1d, + 0x69, 0x7b, 0xe3, 0xea, 0x59, 0xab, 0x00, 0x5e, 0x8c, 0x6f, 0x2f, 0xfe, 0x08, 0x84, 0x32, 0xb2, + 0xa4, 0x12, 0x21, 0x3e, 0xb3, 0x06, 0x4b, 0xcc, 0xd8, 0x17, 0x77, 0x9a, 0x4b, 0x3a, 0xa5, 0x22, + 0xd7, 0x42, 0xc5, 0x27, 0x99, 0x49, 0x1e, 0xb5, 0xe8, 0xa2, 0x19, 0x8a, 0x2e, 0xf6, 0x1d, 0x7a, + 0xf3, 0x75, 0xe7, 0x54, 0xdb, 0x97, 0x43, 0xf1, 0x82, 0xa0, 0x64, 0x3d, 0xb4, 0xd1, 0xc9, 0x4a, + 0x37, 0xdf, 0x09, 0x06, 0xb3, 0xa0, 0x1e, 0x75, 0x16, 0x59, 0x6f, 0x86, 0x5c, 0xb5, 0xd2, 0x3a, + 0x0b, 0x57, 0x41, 0x21, 0x6a, 0x2e, 0xff, 0x17, 0x20, 0x6b, 0x83, 0xce, 0xc5, 0x1b, 0xca, 0x31, + 0x77, 0x77, 0xc4, 0x55, 0x41, 0xb7, 0xb6, 0x0d, 0x79, 0x8a, 0xcf, 0x39, 0xf5, 0xf0, 0x23, 0x87, + 0x3b, 0xcb, 0x3e, 0xc9, 0x82, 0xb2, 0x4f, 0x76, 0x1f, 0x7a, 0x7b, 0xc8, 0x6d, 0xb5, 0xe5, 0x90, + 0xdc, 0x0a, 0x9d, 0x36, 0x3b, 0x9b, 0x21, 0x4c, 0x39, 0x66, 0x09, 0xea, 0x3b, 0xce, 0x62, 0xc5, + 0x38, 0xb7, 0x23, 0x91, 0xc8, 0xbc, 0xd9, 0x6a, 0x80, 0x15, 0x51, 0x3b, 0xfe, 0x36, 0x44, 0xad, + 0xf8, 0x5b, 0x11, 0x35, 0xe1, 0xef, 0x5a, 0xd5, 0x18, 0xd9, 0xa0, 0x88, 0x6d, 0x2b, 0x6d, 0x37, + 0x63, 0xdb, 0x1b, 0x18, 0x5f, 0xd7, 0xf7, 0x54, 0x53, 0x64, 0x03, 0xf1, 0x28, 0xca, 0x82, 0xbf, + 0x1c, 0x64, 0x4f, 0x79, 0xe4, 0x45, 0x90, 0x6d, 0x64, 0x13, 0xa4, 0x29, 0x0a, 0x86, 0x9e, 0xa6, + 0x7c, 0x7c, 0x5a, 0x1e, 0x05, 0xf1, 0x72, 0x13, 0xe9, 0x00, 0xa8, 0x89, 0x92, 0x8d, 0x89, 0x5a, + 0xfc, 0x32, 0x5f, 0xe3, 0x37, 0x6c, 0x51, 0xc0, 0xd0, 0xcb, 0xb8, 0xb6, 0x48, 0x83, 0xed, 0x4a, + 0x0c, 0x51, 0x14, 0x27, 0xd3, 0x71, 0x0e, 0xe2, 0xf9, 0x26, 0x0b, 0x3e, 0xc5, 0x9a, 0xc0, 0x50, + 0xa1, 0x64, 0x30, 0xae, 0x32, 0x33, 0xe3, 0xaf, 0x02, 0x43, 0x21, 0x85, 0xab, 0x8e, 0x41, 0xc6, + 0x3d, 0x16, 0xe8, 0x00, 0x73, 0x4c, 0xec, 0x8b, 0x33, 0xad, 0x78, 0x5d, 0x2c, 0x2f, 0x13, 0xcb, + 0xab, 0x89, 0xea, 0xaf, 0xfa, 0xc2, 0x42, 0xd4, 0x53, 0x7c, 0x06, 0xcc, 0x3e, 0x7b, 0xae, 0x17, + 0x8c, 0x2e, 0x93, 0x3b, 0x3d, 0xdc, 0xbb, 0xca, 0x5c, 0xd2, 0x1d, 0xec, 0x5a, 0x97, 0x50, 0x72, + 0x36, 0x76, 0x2f, 0xf9, 0x5d, 0x49, 0xba, 0x48, 0x6b, 0x5a, 0x42, 0xc9, 0xc6, 0x78, 0xc6, 0x5c, + 0xbb, 0xdc, 0x25, 0x77, 0x87, 0x1f, 0x6e, 0xb0, 0xde, 0x46, 0x76, 0xcd, 0xef, 0x2f, 0x79, 0xd8, + 0x55, 0xae, 0xa8, 0x66, 0x23, 0x18, 0xa3, 0x66, 0x0c, 0x99, 0x0d, 0xf7, 0x2b, 0x96, 0x92, 0xfd, + 0xab, 0x2c, 0x8c, 0x3f, 0xf2, 0x7e, 0xd2, 0x4c, 0xdc, 0x01, 0x18, 0x63, 0x05, 0x2b, 0x2d, 0x13, + 0x4b, 0xb3, 0xba, 0xec, 0x6e, 0x2c, 0xa9, 0xaa, 0x7f, 0x1d, 0x28, 0xf6, 0x5c, 0x7b, 0x4d, 0xbf, + 0x62, 0xe6, 0xf9, 0xba, 0xca, 0x29, 0x67, 0x66, 0xcf, 0xb6, 0x80, 0xd9, 0x8a, 0x71, 0x30, 0xfe, + 0x6f, 0x5f, 0xf8, 0xe1, 0xa8, 0x87, 0x71, 0x57, 0x52, 0x6e, 0x52, 0x0a, 0xcf, 0x9c, 0x1d, 0xbf, + 0x64, 0xf0, 0x2f, 0xb7, 0x05, 0xe1, 0x81, 0x0e, 0x91, 0xca, 0xc2, 0x12, 0x40, 0x20, 0xc8, 0x34, + 0xe3, 0x46, 0xb0, 0x8f, 0xc5, 0xc6, 0x75, 0x99, 0xc5, 0xb7, 0xc6, 0x8c, 0xeb, 0x6e, 0xc2, 0xf8, + 0x5f, 0x85, 0xf9, 0x4a, 0xc7, 0x8f, 0x5f, 0xcf, 0xcd, 0x90, 0x44, 0xa7, 0xc1, 0x65, 0x76, 0x5b, + 0xa4, 0xa0, 0xb3, 0x88, 0xb8, 0xd8, 0xe4, 0x5f, 0xb0, 0x7b, 0xc2, 0x10, 0xcc, 0xa7, 0xde, 0xa2, + 0xb3, 0xc1, 0x92, 0xe3, 0x74, 0x5b, 0x48, 0xb2, 0xfc, 0xd5, 0x0f, 0xbb, 0xca, 0x1c, 0x9d, 0x3c, + 0x96, 0xd4, 0x0c, 0x73, 0x71, 0x64, 0xcc, 0xa3, 0xd8, 0x14, 0xeb, 0x1b, 0x3e, 0x8a, 0x45, 0xb9, + 0x44, 0x36, 0x32, 0xa8, 0xef, 0x60, 0xb7, 0x3e, 0xcf, 0x49, 0xb2, 0xab, 0x98, 0x34, 0x2f, 0xc4, + 0x0c, 0xeb, 0xd2, 0x15, 0xa3, 0x56, 0xfa, 0xbd, 0x30, 0xff, 0xc7, 0xaf, 0x3b, 0x2b, 0x35, 0x1e, + 0xb4, 0x20, 0x94, 0xfa, 0x65, 0x98, 0xeb, 0x2f, 0x86, 0x79, 0x2e, 0xb3, 0xcd, 0x0f, 0x5f, 0x1f, + 0x4a, 0xaf, 0xde, 0x40, 0x7c, 0x9c, 0x4d, 0xa4, 0x27, 0x20, 0xa0, 0x18, 0x0f, 0xf9, 0x61, 0xbe, + 0x3d, 0xee, 0x27, 0x79, 0x0e, 0x7c, 0x62, 0xbe, 0x1c, 0xe6, 0x33, 0x4e, 0xbc, 0xd3, 0x4c, 0x92, + 0x29, 0x88, 0xa9, 0x8b, 0x60, 0x5e, 0x64, 0x23, 0xd6, 0x28, 0x4f, 0xf2, 0xc3, 0xdc, 0xf8, 0x8b, + 0x30, 0x4f, 0xdd, 0x29, 0x91, 0xd4, 0xff, 0x46, 0x06, 0x87, 0x08, 0x83, 0x42, 0x84, 0xc1, 0xc0, + 0xdc, 0x66, 0x6c, 0xb9, 0x29, 0xf6, 0x55, 0x25, 0xfc, 0xe3, 0xd7, 0x5d, 0x19, 0xee, 0x42, 0xe2, + 0xd9, 0x63, 0xfc, 0x7b, 0xe9, 0x74, 0xeb, 0x9c, 0xe4, 0xef, 0xa3, 0x92, 0xab, 0xbb, 0x9c, 0xb2, + 0x3d, 0xce, 0xbf, 0x39, 0x8b, 0x2b, 0x1f, 0xab, 0x1a, 0xc8, 0x85, 0xc8, 0x46, 0xb2, 0x2d, 0xa2, + 0xbe, 0xa1, 0xe4, 0xb5, 0x19, 0x5a, 0xb0, 0x45, 0x2c, 0xaf, 0x7b, 0x59, 0x6b, 0x18, 0xff, 0xa4, + 0x43, 0xd8, 0x4f, 0xb5, 0x17, 0x59, 0xed, 0x45, 0xb2, 0x7d, 0x70, 0x04, 0xec, 0x5d, 0x1f, 0xbc, + 0x18, 0xd9, 0xa8, 0x9e, 0x72, 0x65, 0x6c, 0xd9, 0x48, 0x7a, 0x09, 0xe8, 0xa6, 0xae, 0xe5, 0xda, + 0xc1, 0x4e, 0xba, 0x1d, 0x64, 0x63, 0x22, 0x03, 0x7b, 0xcc, 0x72, 0xdb, 0x2a, 0xa4, 0x9b, 0x2b, + 0xab, 0x70, 0x2c, 0xe0, 0x93, 0x01, 0x2a, 0x6b, 0xfa, 0x89, 0xeb, 0xb1, 0x03, 0x5a, 0x2b, 0x8f, + 0x90, 0x0c, 0xc9, 0xa3, 0x6e, 0x4b, 0x4d, 0xb7, 0xcb, 0xae, 0x9a, 0x5c, 0x58, 0xe3, 0xbc, 0x56, + 0xbf, 0x88, 0xb5, 0xcd, 0xe3, 0xdc, 0xcf, 0x9e, 0x60, 0xcd, 0x00, 0xd5, 0xea, 0x37, 0x43, 0x75, + 0xa2, 0x67, 0x21, 0xc2, 0x9b, 0x46, 0xb3, 0xd1, 0x65, 0x27, 0x0b, 0x8d, 0x51, 0x8b, 0x4b, 0x8e, + 0x74, 0xc5, 0xc0, 0x96, 0xad, 0x98, 0x63, 0x5a, 0x5a, 0x4f, 0x50, 0x8b, 0x59, 0xde, 0x01, 0x4a, + 0xbe, 0x14, 0x91, 0xd6, 0xd7, 0xf4, 0xff, 0xf8, 0x75, 0xad, 0x24, 0x7b, 0x18, 0xa2, 0x46, 0x84, + 0x23, 0xce, 0xd4, 0x1f, 0xef, 0xa3, 0x31, 0xd0, 0x01, 0x3f, 0x7a, 0xed, 0xb1, 0x83, 0x4a, 0x06, + 0xaf, 0x0d, 0xcb, 0xe1, 0x07, 0x3f, 0x7a, 0x4d, 0xb2, 0xfe, 0xe6, 0xf5, 0xe5, 0xa2, 0x34, 0xf5, + 0x50, 0xef, 0x4b, 0x43, 0xcb, 0xcd, 0x8f, 0x0d, 0x11, 0xec, 0x14, 0xa3, 0xfc, 0x22, 0xcc, 0x6d, + 0x11, 0xf7, 0xf5, 0x60, 0x6f, 0xcc, 0x8f, 0xe6, 0x49, 0x95, 0x38, 0xbe, 0x9d, 0xd8, 0x5f, 0x75, + 0xc4, 0x25, 0x9b, 0x17, 0xc4, 0xb1, 0x42, 0x10, 0x7e, 0xa2, 0x8a, 0xd5, 0x56, 0x3b, 0xed, 0xdd, + 0x1a, 0x79, 0xd8, 0x9d, 0x7e, 0x74, 0xfd, 0xde, 0x87, 0xd5, 0xa3, 0x8a, 0xe8, 0x4e, 0x8b, 0x19, + 0x0f, 0xc6, 0xa3, 0x2e, 0x25, 0x10, 0x7e, 0x11, 0x73, 0x30, 0xc6, 0x10, 0x7e, 0x31, 0x89, 0x72, + 0x20, 0x09, 0x9a, 0xaa, 0x01, 0x2d, 0xcd, 0xa9, 0xc8, 0xc3, 0x8a, 0xb8, 0x0e, 0xbc, 0xe9, 0xc7, + 0xba, 0x5f, 0xc6, 0x12, 0xd5, 0xc3, 0xee, 0x34, 0x8a, 0xaf, 0x7e, 0xb1, 0x12, 0x7f, 0x1e, 0x79, + 0x98, 0x52, 0x52, 0x89, 0xee, 0x34, 0xaf, 0x55, 0xc9, 0xa6, 0xf8, 0x8c, 0x4f, 0x14, 0xe3, 0x75, + 0x24, 0x10, 0x13, 0x1b, 0xbd, 0x06, 0x65, 0x5d, 0xa4, 0x3b, 0xb2, 0xfe, 0x37, 0xff, 0x50, 0x7b, + 0xd2, 0x8d, 0x10, 0x60, 0xfa, 0x2a, 0xeb, 0x08, 0xcf, 0x92, 0x44, 0xc4, 0x68, 0x4d, 0xee, 0x8b, + 0xf4, 0x7a, 0x4d, 0xc7, 0xba, 0xff, 0xfe, 0x80, 0x7a, 0x02, 0x6b, 0xd0, 0xa3, 0x66, 0xf1, 0xb2, + 0x49, 0xe7, 0x70, 0x32, 0xaf, 0xe8, 0xdc, 0x08, 0xd3, 0xfb, 0xe5, 0x15, 0x8f, 0x75, 0xef, 0xa4, + 0xba, 0xbe, 0x8b, 0xeb, 0x85, 0xcc, 0xf3, 0x9b, 0x90, 0x9b, 0x35, 0xd2, 0x15, 0x59, 0x2f, 0xc9, + 0x36, 0x9b, 0x0a, 0x7f, 0x39, 0x40, 0x76, 0xa1, 0xd9, 0xbd, 0x67, 0x7e, 0xe5, 0x1a, 0x84, 0x3e, + 0x5c, 0xc9, 0xd6, 0xb8, 0x28, 0x67, 0xb2, 0x1d, 0x4c, 0x22, 0xef, 0xef, 0xfe, 0x26, 0x30, 0x47, + 0xa2, 0x8d, 0x8d, 0x36, 0x6b, 0x35, 0xfe, 0xc6, 0xbb, 0x24, 0x7e, 0x5b, 0x72, 0xe3, 0x70, 0x8d, + 0xbf, 0xd2, 0xa1, 0x9d, 0xff, 0x5b, 0x93, 0x77, 0x00, 0x77, 0x3b, 0x99, 0x5c, 0xd0, 0x77, 0x53, + 0xe2, 0x8c, 0xff, 0xce, 0x38, 0x74, 0xf8, 0x77, 0xce, 0x57, 0xc9, 0x24, 0x24, 0xcc, 0xc4, 0x7b, + 0xbd, 0x53, 0x88, 0x9a, 0xc2, 0x82, 0xfa, 0x31, 0x69, 0x1f, 0xe0, 0xe9, 0x13, 0xc3, 0xa1, 0x0f, + 0xa1, 0xc0, 0xdd, 0x08, 0x56, 0x0f, 0x5b, 0x93, 0xc8, 0x32, 0x8b, 0x2b, 0x64, 0xc3, 0xb8, 0x76, + 0x08, 0x75, 0xe6, 0x15, 0xbd, 0xf5, 0x7b, 0x73, 0x3e, 0xa4, 0x3d, 0x29, 0xa8, 0x67, 0x3c, 0x61, + 0x1c, 0x71, 0x01, 0xaa, 0x4d, 0xa8, 0x31, 0x31, 0xcc, 0x35, 0xc3, 0xde, 0xb5, 0x8d, 0x69, 0x08, + 0x62, 0xb6, 0x4c, 0x5d, 0x18, 0x6a, 0x75, 0x10, 0xaf, 0x7b, 0x38, 0xde, 0x9c, 0xad, 0x58, 0xc2, + 0xf1, 0x06, 0x87, 0x42, 0x56, 0xc9, 0x32, 0xa4, 0x42, 0x42, 0x20, 0x8a, 0x49, 0x2a, 0xfc, 0x2f, + 0x89, 0x44, 0x82, 0xc5, 0x16, 0xdd, 0xfd, 0x15, 0xe7, 0x72, 0x20, 0x71, 0x91, 0xd7, 0x93, 0xdf, + 0xcd, 0x20, 0x46, 0xc8, 0x77, 0x93, 0x0e, 0x71, 0x3f, 0x14, 0x36, 0x3a, 0x5a, 0x84, 0x1d, 0x5d, + 0xd1, 0x8c, 0x0e, 0xd7, 0xde, 0xae, 0x46, 0x33, 0xd7, 0x95, 0xae, 0x64, 0x70, 0x29, 0x1b, 0xc1, + 0xe9, 0x8e, 0x13, 0x67, 0x96, 0x2b, 0x98, 0x69, 0x8f, 0xc4, 0xed, 0x86, 0x50, 0x67, 0xa0, 0xe8, + 0xcd, 0x83, 0xe6, 0xb9, 0x90, 0xd6, 0x87, 0xf5, 0x0c, 0x1b, 0x70, 0xec, 0x5c, 0xc2, 0xf9, 0x3a, + 0x9b, 0xad, 0x75, 0x73, 0x70, 0xad, 0xeb, 0xc7, 0x55, 0xcd, 0x10, 0xee, 0x8a, 0x9a, 0x62, 0xb6, + 0xc1, 0x2e, 0x35, 0xdf, 0x6a, 0x87, 0x80, 0xea, 0x2c, 0x3a, 0x03, 0x82, 0xc6, 0xe5, 0x9c, 0xc4, + 0xd2, 0xa6, 0xc5, 0xfd, 0xad, 0x36, 0xc5, 0xe1, 0x0a, 0x61, 0x5c, 0xb3, 0x62, 0xa5, 0x14, 0x8a, + 0xa9, 0xd5, 0x8c, 0xe3, 0xc2, 0x42, 0x36, 0xf3, 0x12, 0x89, 0x24, 0xe7, 0xb0, 0x07, 0xc6, 0xde, + 0x09, 0x0b, 0x21, 0x66, 0xf3, 0x79, 0xc3, 0xc4, 0xdd, 0x4f, 0x3c, 0x92, 0x5f, 0xaf, 0x53, 0x96, + 0x86, 0x1e, 0x2e, 0x28, 0xcb, 0xb5, 0x76, 0xc4, 0xdf, 0xe8, 0x55, 0x97, 0x14, 0x5d, 0x3a, 0x88, + 0xdb, 0xb1, 0xf9, 0x81, 0xd3, 0x50, 0xf2, 0xbb, 0x55, 0xa6, 0xf2, 0xb3, 0x89, 0x43, 0x4a, 0x66, + 0xc9, 0xef, 0xd4, 0xf9, 0x66, 0xdc, 0x7f, 0x47, 0x4d, 0xb8, 0xea, 0x7d, 0x55, 0xa1, 0xb5, 0xef, + 0xde, 0x1f, 0x1f, 0xdc, 0xb9, 0xb1, 0xd9, 0x13, 0xee, 0x6c, 0xcc, 0xd9, 0x1d, 0xaf, 0xcf, 0x52, + 0x4d, 0x7f, 0x7f, 0x01, 0x7c, 0x4d, 0xcc, 0xde, 0x1d, 0x71, 0x88, 0x55, 0x0d, 0x1c, 0xda, 0xc8, + 0x64, 0x08, 0x12, 0xae, 0x45, 0x33, 0xbe, 0xa2, 0x3e, 0x1d, 0xee, 0x6c, 0x10, 0x63, 0x09, 0xd6, + 0x42, 0x13, 0xd7, 0x28, 0xc1, 0xa0, 0x63, 0x72, 0xf7, 0x6b, 0x96, 0xed, 0x86, 0xf9, 0xbd, 0x17, + 0xf5, 0x3e, 0x59, 0x18, 0x8d, 0xda, 0x24, 0x9b, 0x33, 0x68, 0x7f, 0x11, 0xd2, 0x23, 0x71, 0x29, + 0x5e, 0xbd, 0x8d, 0x6e, 0xee, 0xf8, 0xad, 0x13, 0xb3, 0xf1, 0x86, 0xfd, 0x4e, 0xb7, 0x57, 0xa4, + 0x41, 0x21, 0xb4, 0x6f, 0xff, 0xf3, 0x60, 0x9d, 0x2d, 0x27, 0x86, 0xc9, 0x4a, 0x2b, 0xf1, 0xf7, + 0xb2, 0x5e, 0x5f, 0x9b, 0x20, 0x5d, 0x28, 0x97, 0xa9, 0xcd, 0x5c, 0x0b, 0x6d, 0xf8, 0xf9, 0xc4, + 0x70, 0x94, 0x2c, 0xca, 0x5e, 0x96, 0x6d, 0x8a, 0x99, 0x74, 0x43, 0xc9, 0x79, 0x9e, 0x84, 0x6b, + 0x4e, 0xe2, 0x22, 0x8e, 0x85, 0x4b, 0x9a, 0xbe, 0x02, 0x73, 0x6a, 0xa9, 0xbc, 0x44, 0x1c, 0x97, + 0xda, 0x98, 0xc6, 0x3c, 0xdf, 0xc5, 0xf1, 0x6b, 0xe6, 0x79, 0xd2, 0xd8, 0x93, 0x6d, 0xc9, 0xd1, + 0xcd, 0x6c, 0x6c, 0xdb, 0xd8, 0x9d, 0x7e, 0x33, 0x69, 0xda, 0xae, 0xee, 0x8c, 0x41, 0xb8, 0x33, + 0x6a, 0xb1, 0xdd, 0xda, 0x0a, 0x8e, 0xac, 0x4d, 0x5d, 0xd1, 0xf3, 0x7c, 0x0c, 0x87, 0x3e, 0x2c, + 0x0c, 0x48, 0x74, 0x73, 0x82, 0x60, 0xc2, 0x14, 0x2e, 0x1c, 0x1f, 0xe2, 0x4e, 0xc6, 0xa1, 0xe1, + 0x96, 0x97, 0xb7, 0xb8, 0xc5, 0xde, 0x78, 0xbb, 0xe1, 0x40, 0x4f, 0x34, 0xdf, 0x2d, 0xbe, 0xd4, + 0x7d, 0xa0, 0x47, 0xb5, 0xef, 0xee, 0xac, 0xcb, 0xc8, 0x2c, 0x04, 0xc3, 0x81, 0xae, 0xbc, 0x0e, + 0x30, 0x3e, 0xfe, 0x5b, 0x45, 0x74, 0x16, 0x6d, 0xde, 0x20, 0x95, 0xbb, 0x82, 0x8e, 0x7f, 0xaa, + 0xee, 0x63, 0x6b, 0xe2, 0x67, 0x45, 0xff, 0x6a, 0x86, 0x23, 0x48, 0x21, 0x49, 0x41, 0xb7, 0x70, + 0xea, 0x91, 0x68, 0x96, 0xb3, 0xd8, 0x2d, 0xbb, 0x42, 0xae, 0x7f, 0xaa, 0xde, 0xc0, 0x56, 0xcb, + 0xcf, 0x8e, 0x76, 0x1f, 0xed, 0x3e, 0xd2, 0xfd, 0xe6, 0x6f, 0xd7, 0x1a, 0xf6, 0x11, 0x17, 0xce, + 0x66, 0xa7, 0x6c, 0xfb, 0x63, 0x75, 0xa7, 0x7a, 0x05, 0xf1, 0x7f, 0xef, 0x91, 0x4e, 0x37, 0x1c, + 0xed, 0xf4, 0x18, 0xfa, 0xba, 0xd6, 0x1a, 0x0e, 0xae, 0x8f, 0x06, 0x3c, 0x86, 0x5f, 0xf7, 0x1c, + 0x5c, 0xaf, 0x66, 0x64, 0x15, 0x82, 0x11, 0xcb, 0x36, 0xbd, 0xda, 0x25, 0x2d, 0xc0, 0x9c, 0x8b, + 0x36, 0xf7, 0x79, 0xcc, 0x25, 0x3d, 0x47, 0x7a, 0x8e, 0xf6, 0xdc, 0x3c, 0xe8, 0x49, 0x14, 0x24, + 0xb4, 0xb2, 0x3f, 0xf6, 0x08, 0xa7, 0x36, 0x46, 0x67, 0x38, 0x4b, 0x1e, 0x3b, 0x78, 0xfb, 0xa0, + 0x67, 0xb8, 0x60, 0xb8, 0x7a, 0xc3, 0xb7, 0xfb, 0x58, 0xa9, 0x17, 0x4b, 0x7a, 0xde, 0xc1, 0x3f, + 0x4a, 0xd1, 0x6e, 0xd8, 0xd7, 0x13, 0xcd, 0x96, 0x8a, 0x4a, 0x3a, 0x5d, 0xf2, 0x1f, 0x5e, 0x71, + 0x16, 0xbf, 0xf5, 0xca, 0xcd, 0x83, 0xdb, 0x12, 0x4f, 0x8e, 0xe6, 0x51, 0xf1, 0x9e, 0xb5, 0x50, + 0x87, 0xcd, 0xbf, 0x07, 0x9b, 0x00, 0xc1, 0xc6, 0x41, 0x37, 0x83, 0xcc, 0xbe, 0x62, 0x50, 0x31, + 0xda, 0xf7, 0x55, 0xf7, 0x39, 0xa7, 0x98, 0x05, 0x9c, 0x47, 0x66, 0x16, 0xfb, 0xbc, 0x52, 0xe9, + 0x0a, 0xb5, 0x18, 0x77, 0xf4, 0xd5, 0x95, 0xb6, 0x41, 0x29, 0xc2, 0x05, 0xf7, 0x02, 0x1b, 0xba, + 0xba, 0xdd, 0x42, 0xa8, 0x58, 0x2e, 0xee, 0xed, 0x74, 0x97, 0xbb, 0x7f, 0xfb, 0xed, 0x3e, 0xfa, + 0x5e, 0xff, 0x99, 0xd3, 0xf2, 0x9d, 0xce, 0x53, 0x1b, 0xdc, 0x42, 0xa4, 0x5b, 0x2a, 0x7e, 0xf3, + 0xb7, 0x6e, 0xf3, 0xd1, 0xbe, 0x12, 0xe2, 0x60, 0xe4, 0x56, 0x86, 0x86, 0xdf, 0xfa, 0x2d, 0xcf, + 0x9d, 0xc3, 0x30, 0x29, 0xdb, 0xc6, 0x74, 0xfb, 0x10, 0x6e, 0xbb, 0x44, 0x72, 0x6d, 0x24, 0x29, + 0x66, 0xbf, 0xd5, 0x26, 0x90, 0xa4, 0xca, 0xdb, 0xaf, 0xb9, 0xa6, 0x1e, 0x79, 0x84, 0x4b, 0xad, + 0xbc, 0xfd, 0x1a, 0x71, 0x77, 0xba, 0xf2, 0x3c, 0xb0, 0x65, 0x07, 0x59, 0xa6, 0x53, 0xc9, 0xa2, + 0xd1, 0x51, 0xae, 0x71, 0x86, 0xb5, 0x63, 0x7e, 0xf2, 0xd6, 0x90, 0xf3, 0x8d, 0xfd, 0xed, 0x7e, + 0xb6, 0xbf, 0xb8, 0xe4, 0x96, 0xed, 0x5f, 0xe6, 0xb8, 0xf1, 0xcd, 0x83, 0xce, 0xc0, 0x93, 0x50, + 0x33, 0xe0, 0xb0, 0x87, 0xba, 0x02, 0x32, 0xbd, 0xef, 0x18, 0x7c, 0x12, 0xd4, 0xf9, 0xde, 0x85, + 0x84, 0x05, 0x5d, 0x41, 0x4f, 0xa8, 0xba, 0x9f, 0xdd, 0x5d, 0xbb, 0x23, 0x7d, 0x8e, 0xaf, 0x84, + 0xba, 0x0a, 0xe5, 0x7f, 0x7e, 0xc3, 0x9d, 0x71, 0xf4, 0x51, 0x87, 0x83, 0x3f, 0xbb, 0x32, 0x8e, + 0x3c, 0xea, 0xbe, 0xb3, 0x00, 0x76, 0xbd, 0xe4, 0x81, 0xe8, 0x61, 0xc5, 0xfe, 0xd8, 0x90, 0x64, + 0x56, 0x4c, 0xe1, 0x6c, 0xf5, 0x05, 0x6e, 0x43, 0xb3, 0x72, 0xcd, 0x13, 0x43, 0x0b, 0x2e, 0x6d, + 0x03, 0xe5, 0x2c, 0xe2, 0x1b, 0x3f, 0x18, 0x9d, 0x41, 0xa9, 0x3c, 0xb2, 0x81, 0xec, 0x63, 0xd3, + 0xfc, 0xc5, 0x36, 0xbd, 0x42, 0x56, 0x0e, 0x69, 0x3d, 0x4a, 0xce, 0x67, 0xfb, 0xad, 0xc4, 0x01, + 0xcb, 0x67, 0x32, 0x6b, 0x0f, 0x9b, 0xcd, 0x2c, 0x2d, 0xc5, 0x08, 0x8e, 0xa5, 0x21, 0xb9, 0x3a, + 0xa7, 0x59, 0x12, 0x22, 0x9d, 0xce, 0x60, 0xf8, 0x66, 0xf5, 0xb3, 0x4d, 0x7d, 0x8c, 0x5f, 0x3f, + 0xe0, 0xe6, 0xf2, 0xd8, 0x0e, 0xb2, 0x0a, 0xe9, 0x5a, 0x28, 0x09, 0x52, 0x98, 0xe9, 0xad, 0xee, + 0xaf, 0x8e, 0x63, 0xb9, 0x1f, 0xbb, 0x42, 0x4f, 0xbc, 0xb6, 0xb9, 0x3f, 0x6a, 0x74, 0x97, 0xe3, + 0x1a, 0x3e, 0x85, 0x43, 0xe5, 0x50, 0x7f, 0xcd, 0x80, 0x92, 0x19, 0x13, 0x06, 0x3b, 0xa3, 0x46, + 0xdb, 0xbe, 0xea, 0x4e, 0x69, 0xaa, 0xe3, 0xcb, 0xea, 0x45, 0xd9, 0xb6, 0x69, 0xc3, 0xa1, 0x7e, + 0x0e, 0x4d, 0xca, 0x37, 0xd9, 0x13, 0x94, 0x6f, 0x54, 0xaa, 0xee, 0x8c, 0xe6, 0xb9, 0x42, 0x8e, + 0x6c, 0xfb, 0x3e, 0x77, 0xb9, 0x64, 0x09, 0x8b, 0x51, 0x13, 0x8e, 0xe5, 0x8b, 0x8a, 0x31, 0xdc, + 0xa9, 0xda, 0xe4, 0xe9, 0x38, 0x56, 0xcd, 0x88, 0xdd, 0x6e, 0x95, 0xa6, 0x60, 0x0b, 0x2e, 0x6f, + 0xea, 0xab, 0x8e, 0xf3, 0x7c, 0x24, 0x33, 0x96, 0x7b, 0x82, 0x8f, 0x31, 0x27, 0xcd, 0xbf, 0x64, + 0x1f, 0x3b, 0x30, 0xe7, 0x2c, 0xc2, 0x65, 0x88, 0xc9, 0x7c, 0x8e, 0x5b, 0x6d, 0x22, 0xef, 0x5f, + 0xf7, 0xd4, 0xa3, 0xe3, 0xfa, 0xda, 0x9d, 0x57, 0x00, 0x5b, 0xa9, 0xaf, 0x0d, 0xaa, 0x39, 0x2c, + 0xaa, 0x87, 0x34, 0x0d, 0x43, 0x5c, 0x1e, 0xd2, 0xc0, 0x30, 0xa3, 0x83, 0x2c, 0x0c, 0x11, 0xdf, + 0x89, 0x96, 0x9b, 0xc3, 0x41, 0x10, 0x15, 0xdb, 0x20, 0x33, 0x6b, 0x53, 0x37, 0x4b, 0x75, 0x9a, + 0x6b, 0x19, 0x22, 0x19, 0x32, 0xc2, 0xf0, 0xc4, 0x19, 0xe5, 0xd4, 0x64, 0x1c, 0xa4, 0x20, 0xa5, + 0x72, 0x86, 0x30, 0x9d, 0xd5, 0x91, 0x6d, 0xdb, 0xa7, 0x7e, 0x8c, 0x34, 0xe1, 0xad, 0x9c, 0xe7, + 0x99, 0xdb, 0xf2, 0x64, 0x63, 0xb3, 0x80, 0xdd, 0x9a, 0x63, 0xad, 0x89, 0x3f, 0xe2, 0x2e, 0x50, + 0x6c, 0x9c, 0x12, 0x22, 0xee, 0x62, 0x66, 0x8f, 0xde, 0xe2, 0x5a, 0x68, 0x9b, 0x1e, 0x79, 0x44, + 0x3d, 0xcd, 0x75, 0xbf, 0xe6, 0x18, 0xc7, 0xd3, 0x1c, 0x64, 0x1b, 0x69, 0xa7, 0xa0, 0x8a, 0xd2, + 0x14, 0x27, 0xee, 0xa8, 0xd5, 0x4b, 0x49, 0x7c, 0x2d, 0x91, 0x95, 0x10, 0x36, 0xef, 0x46, 0xc7, + 0xab, 0x6c, 0xbf, 0xb5, 0x66, 0x60, 0x87, 0x5d, 0x75, 0x7a, 0xca, 0xf9, 0x88, 0x74, 0x27, 0x47, + 0xa4, 0x05, 0x47, 0x64, 0xce, 0xce, 0xe9, 0xd1, 0xf3, 0x29, 0xa3, 0xee, 0x28, 0x41, 0x83, 0x4a, + 0xc3, 0x51, 0xf7, 0x09, 0x8d, 0x3a, 0xc4, 0x73, 0x12, 0xe9, 0x26, 0xf1, 0xf8, 0xb9, 0x8d, 0xcf, + 0x70, 0x4f, 0x03, 0xd2, 0xd5, 0x4a, 0x66, 0xab, 0x80, 0x74, 0xf2, 0xfa, 0xa8, 0xb9, 0x72, 0x13, + 0xd6, 0xd6, 0xa8, 0xe4, 0x55, 0x6e, 0x3a, 0xd2, 0xad, 0x58, 0xdc, 0xc6, 0xa3, 0xdd, 0x3f, 0xea, + 0x8e, 0x09, 0xbd, 0x71, 0xa6, 0x21, 0x3f, 0x2e, 0xb5, 0x98, 0x21, 0xdc, 0xd3, 0xc8, 0x66, 0xfc, + 0x92, 0x57, 0xb0, 0x6f, 0xbb, 0x96, 0xbc, 0x52, 0x22, 0xa8, 0x07, 0x92, 0x9a, 0x9d, 0x8c, 0x0c, + 0x5f, 0xb0, 0xb5, 0x6b, 0xcd, 0xd8, 0xd9, 0x42, 0xe8, 0xc3, 0xf9, 0x54, 0x26, 0xb3, 0xd9, 0xe6, + 0xc3, 0xb9, 0x87, 0xe5, 0x7a, 0xb4, 0x72, 0x67, 0x60, 0xb9, 0xd9, 0xe1, 0xde, 0xa8, 0xd5, 0x9f, + 0xc6, 0x2c, 0x6a, 0xc5, 0x55, 0xb3, 0x32, 0x97, 0x3f, 0xff, 0x15, 0xe5, 0xbf, 0x3c, 0x5a, 0x3e, + 0xd3, 0x20, 0x33, 0x3f, 0x40, 0x7c, 0x2d, 0x54, 0x8a, 0xdb, 0x0f, 0x3e, 0x2c, 0x35, 0x40, 0xf6, + 0x15, 0xb1, 0xe4, 0x02, 0xa4, 0xa9, 0x5d, 0x8d, 0x73, 0x99, 0xfd, 0x21, 0x37, 0xd9, 0x20, 0xf5, + 0x9b, 0x90, 0x66, 0x20, 0xce, 0xe3, 0x4d, 0xdc, 0x62, 0x82, 0x6a, 0x53, 0x22, 0xe3, 0xc3, 0xa4, + 0xfb, 0x18, 0x1e, 0x3a, 0xac, 0xcc, 0x75, 0xd9, 0x9e, 0x78, 0xd5, 0x2d, 0xbf, 0xbd, 0xef, 0xed, + 0xd7, 0xca, 0x2e, 0xee, 0x06, 0x65, 0x06, 0xa6, 0xcf, 0xe0, 0xf1, 0x78, 0x0f, 0xe3, 0xec, 0xd1, + 0xde, 0xaa, 0xbb, 0xbe, 0xdd, 0x2f, 0xad, 0xde, 0x06, 0xe1, 0x2e, 0xf5, 0xd8, 0xa8, 0xce, 0x2b, + 0xac, 0x59, 0x00, 0xe7, 0xec, 0xd0, 0x05, 0xb0, 0xe4, 0xf9, 0xc1, 0xb4, 0xef, 0x02, 0x98, 0x0f, + 0x15, 0x11, 0xd7, 0x8e, 0xf6, 0x66, 0x39, 0xd4, 0xa9, 0xcd, 0x7b, 0x1a, 0x13, 0x7e, 0x30, 0x5b, + 0x3b, 0xe9, 0x36, 0xa2, 0x2e, 0xd3, 0x05, 0xb2, 0x1c, 0x92, 0x7b, 0x5e, 0x09, 0x88, 0xa1, 0x60, + 0xbe, 0x1f, 0x2c, 0xf4, 0xa4, 0x04, 0x5c, 0xc2, 0xc9, 0x0d, 0x27, 0xfb, 0xb4, 0x38, 0x97, 0xe2, + 0xaf, 0x70, 0x39, 0x7d, 0xa7, 0xb8, 0x6f, 0x28, 0x24, 0xef, 0x47, 0x1f, 0x96, 0x55, 0xcb, 0xe1, + 0xae, 0x7a, 0xd3, 0x8e, 0x17, 0xc1, 0xbc, 0x5c, 0xac, 0x8e, 0xd3, 0x88, 0xf2, 0x8b, 0xad, 0x02, + 0xe5, 0xbe, 0xca, 0x58, 0xd2, 0x59, 0x42, 0xa3, 0xdc, 0x8c, 0x4f, 0xf1, 0x12, 0xd1, 0x9f, 0xd4, + 0xda, 0x85, 0xf4, 0x5a, 0x58, 0x5c, 0xc5, 0xe4, 0x29, 0xa9, 0x2e, 0x18, 0x97, 0xb8, 0x04, 0x8d, + 0xa9, 0xdf, 0x29, 0xcc, 0x9f, 0xa2, 0xe5, 0x0b, 0xdf, 0x8d, 0x9b, 0xe3, 0x92, 0x70, 0xdd, 0xf8, + 0xa7, 0x3e, 0x3f, 0x3e, 0xd7, 0x7d, 0xf5, 0x8d, 0x00, 0x51, 0x54, 0x48, 0xd1, 0x58, 0xbd, 0x48, + 0x3f, 0x21, 0x96, 0x48, 0x73, 0x41, 0x08, 0x57, 0xcc, 0x50, 0x51, 0x81, 0x78, 0xf0, 0xb7, 0xfb, + 0x5f, 0x39, 0x30, 0xb4, 0x6f, 0x48, 0x32, 0xbe, 0x14, 0x0c, 0x05, 0x8f, 0xc4, 0x8f, 0x74, 0xd7, + 0x99, 0x4c, 0xac, 0xcd, 0x21, 0x39, 0x06, 0x01, 0x31, 0xdf, 0xe8, 0x13, 0x0f, 0x75, 0xe6, 0x02, + 0xb3, 0x71, 0x5a, 0x87, 0xf3, 0x0d, 0xa9, 0x25, 0xb2, 0x60, 0xea, 0x02, 0xbf, 0x66, 0xcb, 0x14, + 0x47, 0xcd, 0xc3, 0x4e, 0x53, 0xc5, 0x39, 0xeb, 0x70, 0xe2, 0x44, 0x52, 0x07, 0x55, 0xe8, 0xc3, + 0x02, 0x90, 0x70, 0x0f, 0xe0, 0x44, 0xba, 0xca, 0x85, 0x29, 0xa2, 0x59, 0x6d, 0xd2, 0xd6, 0xae, + 0x70, 0x77, 0x73, 0x96, 0x07, 0x4e, 0x3d, 0xf7, 0xe1, 0x36, 0x37, 0x9c, 0xfa, 0x65, 0x6f, 0xa7, + 0x64, 0x74, 0x1a, 0x2a, 0xde, 0x83, 0x1c, 0x4a, 0xd5, 0x0e, 0x25, 0xdd, 0x1f, 0x60, 0x38, 0x85, + 0x29, 0x67, 0x90, 0x12, 0xbc, 0xa4, 0xd9, 0x2f, 0x32, 0x63, 0x9d, 0xad, 0x98, 0x97, 0xcd, 0x87, + 0x75, 0x77, 0x9a, 0x5c, 0x69, 0xee, 0x74, 0xa6, 0xb3, 0xd7, 0xfc, 0x72, 0x6f, 0x1d, 0x08, 0x4b, + 0xad, 0xbd, 0xd4, 0x2b, 0xb5, 0x60, 0x38, 0x44, 0x4f, 0x64, 0xd7, 0x2f, 0x2d, 0xff, 0xb1, 0x83, + 0x88, 0x03, 0x04, 0x8f, 0xf9, 0xf4, 0x36, 0x67, 0x90, 0xe4, 0x2b, 0xc3, 0x36, 0x92, 0x2f, 0x7c, + 0x12, 0x3c, 0x96, 0x77, 0xe2, 0x31, 0x69, 0x53, 0x4f, 0xd4, 0xee, 0x13, 0xde, 0x7f, 0xc1, 0x9d, + 0xfe, 0xfe, 0xb3, 0xce, 0xb4, 0xd3, 0x58, 0x0f, 0x57, 0xda, 0xfb, 0xdb, 0xbd, 0x26, 0x79, 0x41, + 0x68, 0x81, 0xc7, 0xc4, 0xb9, 0x3d, 0xc9, 0x9e, 0xc1, 0x7c, 0x07, 0xb3, 0x3e, 0xbf, 0x15, 0xdb, + 0x1a, 0x64, 0xad, 0xef, 0x63, 0xef, 0x8f, 0xd3, 0x8e, 0xbe, 0x9c, 0x43, 0xc3, 0x48, 0x9c, 0x55, + 0x55, 0x03, 0x6e, 0x0b, 0xad, 0xc0, 0x4e, 0x51, 0x2e, 0x0a, 0x15, 0xf5, 0x76, 0xee, 0x8a, 0xd7, + 0x65, 0x3a, 0xd3, 0xab, 0x3b, 0x8f, 0xf6, 0xee, 0xea, 0xad, 0x07, 0xa3, 0x8c, 0xef, 0x60, 0x2c, + 0xbc, 0xe7, 0xe1, 0xa3, 0xbd, 0x5b, 0xe3, 0x63, 0x39, 0x26, 0xf3, 0x72, 0x43, 0x32, 0x17, 0xa7, + 0x85, 0xb4, 0xa4, 0x75, 0xc9, 0x3b, 0xe2, 0x75, 0x0e, 0x97, 0xa1, 0xba, 0xeb, 0x70, 0xef, 0x0e, + 0x4a, 0x9f, 0xbd, 0x83, 0xd2, 0x3b, 0xee, 0xe9, 0x0e, 0x95, 0xc9, 0x65, 0x8f, 0x76, 0xaf, 0x05, + 0x29, 0xcd, 0x99, 0xce, 0x6c, 0x70, 0x33, 0x6b, 0x8d, 0x2f, 0x93, 0x25, 0x9d, 0x5a, 0x6b, 0x9c, + 0x43, 0x41, 0x58, 0x65, 0x8d, 0x73, 0x28, 0x18, 0x67, 0xb4, 0x42, 0x3b, 0x20, 0x9c, 0x9f, 0x75, + 0x19, 0x38, 0x0c, 0x1c, 0x81, 0x02, 0x4d, 0x03, 0xd6, 0x3b, 0x5d, 0x1d, 0xd2, 0x4f, 0x7a, 0x48, + 0x27, 0xdf, 0xcb, 0xf1, 0x5a, 0xd3, 0x9e, 0x4e, 0x2c, 0x45, 0x5a, 0x27, 0x4c, 0xcc, 0x99, 0xb7, + 0x39, 0xdc, 0xab, 0x5a, 0xb9, 0x6e, 0x6e, 0xaa, 0xad, 0x0f, 0x92, 0xf0, 0x16, 0xdb, 0x92, 0xf0, + 0x36, 0xec, 0x8d, 0x41, 0x0b, 0xb8, 0x4d, 0x27, 0x9e, 0x95, 0xb4, 0x92, 0x48, 0x96, 0x93, 0x9f, + 0xd3, 0x1c, 0x26, 0x78, 0x77, 0xaa, 0x18, 0xfb, 0xe9, 0x5e, 0xb7, 0x49, 0x2e, 0x0e, 0x15, 0x27, + 0x21, 0x3c, 0xbb, 0x84, 0x34, 0x87, 0x72, 0x38, 0x6b, 0xd0, 0x34, 0xf8, 0xd3, 0x35, 0xd8, 0xd0, + 0x13, 0x83, 0x33, 0xe9, 0x69, 0x4c, 0x85, 0x8e, 0x47, 0x94, 0x4b, 0x42, 0x25, 0x5d, 0x3d, 0x08, + 0x93, 0x4c, 0xa9, 0xac, 0xba, 0x8f, 0xc3, 0x48, 0x3c, 0x45, 0x30, 0x12, 0xdf, 0xbd, 0xe7, 0xe1, + 0xc3, 0xbd, 0xae, 0xa2, 0x27, 0x86, 0x98, 0xad, 0x10, 0xcc, 0xc9, 0x17, 0x64, 0x4f, 0x1c, 0xca, + 0x63, 0x39, 0x65, 0x5c, 0x0f, 0xce, 0xe2, 0x10, 0xcb, 0x63, 0x4f, 0x12, 0xce, 0xe3, 0x61, 0xb1, + 0x0e, 0x26, 0x42, 0x07, 0xe1, 0x9c, 0x60, 0x70, 0x78, 0xa1, 0xd5, 0xd6, 0x6e, 0xfb, 0x3c, 0x38, + 0x47, 0x61, 0xe4, 0x29, 0x17, 0x9c, 0xdb, 0x2e, 0x09, 0xa7, 0xb7, 0xf5, 0xc4, 0xcf, 0xfd, 0xd2, + 0x55, 0x24, 0xa5, 0x9f, 0xde, 0xe6, 0x09, 0xba, 0xd3, 0xcf, 0x3d, 0x2b, 0xa5, 0x9d, 0xde, 0xd6, + 0x1b, 0xe7, 0xad, 0x92, 0x44, 0x8e, 0x61, 0x88, 0xd7, 0x4e, 0x1b, 0x7f, 0x46, 0xb2, 0x34, 0x53, + 0x35, 0xa0, 0x8d, 0x3e, 0x7c, 0xc3, 0x6f, 0x97, 0xc6, 0x8d, 0xc0, 0x39, 0xb8, 0xfb, 0xe5, 0xad, + 0x0a, 0x3a, 0xe7, 0xe0, 0x9c, 0xc1, 0x96, 0x49, 0x06, 0x19, 0x67, 0x72, 0x57, 0x7c, 0xc7, 0x06, + 0x0d, 0x46, 0x5d, 0x3b, 0xba, 0x70, 0x8c, 0x1c, 0xc0, 0x77, 0x10, 0x86, 0x10, 0x46, 0x5d, 0x9b, + 0x37, 0x60, 0x5e, 0xc4, 0xd7, 0x77, 0x49, 0x83, 0x92, 0x91, 0xd2, 0xfa, 0x59, 0x0f, 0x7b, 0x20, + 0x25, 0x4f, 0x0e, 0xa9, 0x62, 0x82, 0xb6, 0xdb, 0x58, 0xdd, 0xad, 0xe5, 0xd4, 0x45, 0x90, 0x12, + 0x3a, 0xee, 0xe9, 0x39, 0xdc, 0x25, 0x15, 0x3d, 0x36, 0xc4, 0xe0, 0xd5, 0x23, 0xa5, 0x3b, 0x2d, + 0x7f, 0x0d, 0x56, 0x71, 0xc9, 0x87, 0x90, 0x86, 0xfa, 0xd5, 0x41, 0x1c, 0xb3, 0xf7, 0xe1, 0x4e, + 0xa0, 0x72, 0x12, 0x7c, 0x7b, 0x39, 0x7c, 0x85, 0x16, 0xdc, 0x8d, 0xda, 0xf2, 0x3b, 0x88, 0x9f, + 0x7e, 0xd8, 0x37, 0x1a, 0xba, 0x22, 0x66, 0x6b, 0xb1, 0x7d, 0xde, 0x98, 0x8b, 0xc2, 0xb5, 0x47, + 0xdf, 0x7f, 0xc1, 0x95, 0x7e, 0x72, 0xbb, 0x4b, 0x7e, 0xff, 0x45, 0x77, 0xda, 0xc9, 0x67, 0x1f, + 0xed, 0xa6, 0x79, 0x3e, 0x79, 0x14, 0x6a, 0xb0, 0xd6, 0xc6, 0x8c, 0x17, 0x92, 0x63, 0xc6, 0x15, + 0x1c, 0x3f, 0xcb, 0x43, 0x0b, 0xe4, 0x05, 0xce, 0x74, 0x9a, 0xe3, 0xfd, 0x9d, 0x7b, 0x68, 0x8e, + 0x5b, 0xaa, 0x3b, 0x8f, 0xf5, 0xee, 0xc1, 0xb1, 0x03, 0xc3, 0xf8, 0x0e, 0xf0, 0xd9, 0x3d, 0xfd, + 0xc7, 0x7a, 0x9f, 0x8a, 0x93, 0xc4, 0x03, 0xe5, 0xe4, 0x01, 0xf6, 0xc4, 0xac, 0x3d, 0xa7, 0x8c, + 0x3e, 0x23, 0x83, 0x69, 0x19, 0xc1, 0x34, 0x37, 0xad, 0xfa, 0x61, 0x3e, 0xfa, 0x60, 0x1b, 0xc1, + 0x14, 0x7e, 0x7a, 0xcf, 0xfa, 0xc3, 0xbd, 0xb9, 0xc2, 0xd3, 0x71, 0xc9, 0xc2, 0x75, 0xf9, 0x62, + 0x9b, 0xcf, 0xe4, 0x0a, 0x0a, 0x5c, 0x3d, 0x90, 0x6b, 0x56, 0xe0, 0x9a, 0x8b, 0x7e, 0x47, 0x64, + 0x8f, 0x01, 0x7f, 0x7b, 0xdd, 0x62, 0x12, 0x23, 0xe0, 0xf7, 0xb3, 0xc9, 0x37, 0x8c, 0x55, 0x7a, + 0xee, 0xf9, 0x5f, 0xff, 0xc3, 0x72, 0x18, 0x79, 0xa1, 0xfa, 0xe1, 0x89, 0x50, 0x6d, 0xcd, 0x6a, + 0xcf, 0xc2, 0xd8, 0x67, 0x5a, 0xcd, 0xed, 0x98, 0xd3, 0xd5, 0x93, 0x31, 0x73, 0x0b, 0xfe, 0x1f, + 0x2e, 0xa1, 0xd3, 0x6e, 0x84, 0x31, 0x3e, 0x5f, 0x39, 0x88, 0xcf, 0x59, 0xf8, 0x8c, 0xf1, 0xae, + 0xec, 0x8d, 0x65, 0xb5, 0xe0, 0xff, 0x61, 0x17, 0x8d, 0x7f, 0x2c, 0xf3, 0x7e, 0x6f, 0xfa, 0x84, + 0xda, 0x55, 0xb8, 0x8a, 0x14, 0x48, 0x58, 0x11, 0x5f, 0x93, 0x9e, 0xa0, 0x79, 0x2e, 0x0d, 0xe7, + 0x13, 0xbe, 0x76, 0x23, 0xbe, 0x76, 0x15, 0x7b, 0x04, 0x9f, 0xc8, 0xac, 0x71, 0x7d, 0xb0, 0xb3, + 0x1b, 0x47, 0x4d, 0xa1, 0xb5, 0x5b, 0xc3, 0xd7, 0xed, 0xd6, 0x6e, 0x0d, 0x53, 0xbd, 0xf0, 0xf8, + 0xef, 0xbd, 0x96, 0x13, 0xcf, 0x8f, 0x61, 0xea, 0x1a, 0x38, 0xb4, 0x61, 0xad, 0xf4, 0x14, 0xc9, + 0xeb, 0x74, 0xb8, 0x2d, 0x1f, 0x3d, 0xeb, 0x13, 0x3f, 0x7a, 0xc1, 0x25, 0x9c, 0xd8, 0xbe, 0xb1, + 0xcb, 0x23, 0x7c, 0xf4, 0x9c, 0xcb, 0x40, 0xab, 0x75, 0xae, 0x81, 0x4e, 0xd7, 0x13, 0x89, 0x32, + 0xde, 0x7b, 0xa2, 0xdf, 0x94, 0xd2, 0x67, 0x7d, 0xec, 0x1d, 0xa1, 0xbd, 0x88, 0xf7, 0x60, 0x3a, + 0xc9, 0x2c, 0xe3, 0x48, 0xb7, 0x84, 0x4a, 0xe5, 0x52, 0xa7, 0x91, 0xfa, 0x70, 0x63, 0xe7, 0xde, + 0x78, 0x9d, 0xf5, 0x78, 0xf7, 0xde, 0xee, 0x7a, 0x13, 0x3e, 0x89, 0xc7, 0xbb, 0x7f, 0x12, 0x1f, + 0xcb, 0x85, 0xa7, 0xaf, 0x19, 0xc8, 0x7d, 0x98, 0xa7, 0xd4, 0x70, 0x73, 0x09, 0xf6, 0x92, 0xf5, + 0x70, 0xf7, 0x0e, 0x4c, 0x83, 0x4f, 0xe2, 0xe1, 0xee, 0xcd, 0xf1, 0x18, 0x9c, 0xf9, 0x25, 0x83, + 0xef, 0x41, 0x82, 0xef, 0x4e, 0xc2, 0xc6, 0xd9, 0xa3, 0xd8, 0x38, 0x27, 0x89, 0x8d, 0x0d, 0x7b, + 0xda, 0x60, 0x1d, 0x78, 0xe1, 0x83, 0xe7, 0xdd, 0x69, 0xbc, 0x9d, 0x99, 0xd8, 0x4a, 0x7e, 0xfa, + 0xfb, 0x6e, 0x37, 0xb6, 0xf5, 0x61, 0xc4, 0xc6, 0x39, 0x3b, 0xe3, 0xb5, 0xc6, 0x1d, 0xfd, 0xf5, + 0x66, 0x9f, 0xe8, 0x11, 0x9e, 0xec, 0xff, 0xaf, 0x71, 0xc9, 0xe4, 0x34, 0x8e, 0xe5, 0xcd, 0x5b, + 0x16, 0xee, 0x56, 0x1d, 0x1c, 0x1f, 0xe3, 0xfc, 0xbd, 0xc8, 0x56, 0x1f, 0xc0, 0xd9, 0x7b, 0x31, + 0x09, 0x57, 0xb1, 0x2a, 0x09, 0x57, 0x83, 0x12, 0x03, 0x84, 0xac, 0xe1, 0x7a, 0x90, 0x45, 0x8c, + 0x1c, 0xd9, 0xd2, 0xed, 0x33, 0xc8, 0xa5, 0xa1, 0xd2, 0xf1, 0x90, 0xd4, 0x20, 0x66, 0x22, 0x79, + 0x16, 0x06, 0x09, 0x7a, 0x4a, 0x81, 0x84, 0xcb, 0x12, 0x92, 0x65, 0x99, 0xc3, 0xb0, 0xa7, 0x73, + 0x27, 0xc2, 0xe3, 0x48, 0xf7, 0x4e, 0x84, 0x07, 0x3e, 0x89, 0x47, 0xba, 0xb7, 0xc4, 0x6f, 0x94, + 0x12, 0x47, 0xcf, 0x1e, 0x49, 0x1c, 0x6b, 0xcd, 0x28, 0xfe, 0xdc, 0xd6, 0x66, 0x5b, 0x67, 0xfb, + 0x3c, 0xc8, 0x20, 0xfe, 0x3c, 0xed, 0x83, 0x8f, 0x5e, 0x90, 0x2c, 0xe7, 0xb7, 0x6d, 0xc4, 0xb1, + 0xf7, 0xd1, 0x36, 0xdc, 0x23, 0x8a, 0xe7, 0x9f, 0xfb, 0x08, 0x31, 0xea, 0x79, 0xc4, 0xa8, 0x1f, + 0xfd, 0x92, 0x38, 0x94, 0xf9, 0xbc, 0x96, 0x4c, 0x63, 0x38, 0xb4, 0x2c, 0x39, 0xaf, 0x8d, 0x54, + 0x1f, 0x6d, 0x5c, 0xe0, 0x1b, 0x7e, 0x63, 0x70, 0xf3, 0xc0, 0xa2, 0x54, 0x1c, 0xba, 0x55, 0xc3, + 0xa1, 0x17, 0x19, 0x0e, 0x15, 0x53, 0x70, 0x68, 0x49, 0x72, 0x9d, 0x11, 0x0e, 0x32, 0x1c, 0xba, + 0x0f, 0x31, 0x5f, 0x2f, 0xe2, 0x50, 0x83, 0x9f, 0xf7, 0x01, 0xad, 0x2f, 0xb8, 0xd2, 0x50, 0x5a, + 0x92, 0x49, 0xd4, 0x56, 0x9b, 0x64, 0x9e, 0x53, 0x47, 0x57, 0x9b, 0xcc, 0xb1, 0xd5, 0x46, 0xe8, + 0x61, 0x38, 0x74, 0xdd, 0x3d, 0xdd, 0x87, 0x7b, 0x19, 0x0e, 0x2d, 0x91, 0x4b, 0x7a, 0x7b, 0x9c, + 0xc5, 0xb8, 0x3b, 0xf9, 0xab, 0xb0, 0xa8, 0x9b, 0x61, 0x51, 0xf7, 0x14, 0xd7, 0x54, 0x86, 0x49, + 0xf3, 0x11, 0x93, 0xf6, 0x21, 0x7d, 0x87, 0xd8, 0x66, 0x73, 0xd7, 0x63, 0xdd, 0x67, 0x7e, 0xe9, + 0x82, 0x0b, 0xdb, 0xcf, 0x6c, 0xeb, 0xea, 0x4a, 0x81, 0x7b, 0xb7, 0x86, 0x41, 0x2b, 0x62, 0xb6, + 0x3c, 0xc4, 0xaa, 0xd7, 0x9f, 0x79, 0x2a, 0x0c, 0xf7, 0xd1, 0x8c, 0x1f, 0xde, 0x32, 0x1a, 0xdf, + 0xad, 0xc5, 0x37, 0x5c, 0x7f, 0xa6, 0x5e, 0xdb, 0xf1, 0xd1, 0xb3, 0x1e, 0xf1, 0xc4, 0x73, 0xbe, + 0x92, 0x8f, 0xb6, 0x7b, 0x84, 0x13, 0xcf, 0xf5, 0xf4, 0xd0, 0x5c, 0xbd, 0xde, 0x08, 0xc3, 0x71, + 0x91, 0x31, 0x3a, 0x42, 0x32, 0x26, 0xcf, 0x52, 0xec, 0x05, 0xcb, 0x84, 0x3e, 0x48, 0xce, 0xb9, + 0x0d, 0x34, 0xe7, 0x70, 0x85, 0xff, 0x3d, 0xb7, 0x0a, 0x5e, 0x35, 0x40, 0xfd, 0xcc, 0x9e, 0x53, + 0xe7, 0x2a, 0xc2, 0x7e, 0x14, 0xe6, 0xe3, 0x66, 0xab, 0x4b, 0xd8, 0x12, 0x27, 0x2c, 0xea, 0x21, + 0x2c, 0x1a, 0x74, 0x8b, 0xf8, 0xdb, 0x43, 0xb0, 0xdb, 0xd2, 0xff, 0xa3, 0xde, 0xeb, 0x41, 0x0d, + 0xbf, 0x1f, 0x6c, 0x33, 0xaf, 0x23, 0x0c, 0x59, 0xda, 0x96, 0xb5, 0x8e, 0x30, 0xe1, 0xfc, 0x98, + 0x39, 0x8f, 0xe1, 0xc9, 0xab, 0x95, 0xc9, 0xa7, 0xe1, 0xa7, 0x63, 0x59, 0x79, 0x0c, 0x5f, 0x5e, + 0x9d, 0x97, 0x7c, 0x1a, 0xee, 0xff, 0xcd, 0xb9, 0xc4, 0xe5, 0xda, 0x9f, 0xba, 0xcd, 0x37, 0xc8, + 0x97, 0x38, 0x29, 0x05, 0x51, 0x34, 0xa0, 0x33, 0x6a, 0x2e, 0x6d, 0x82, 0x33, 0xfd, 0x3b, 0x2e, + 0xfd, 0x3f, 0xe8, 0xcc, 0xff, 0x1f, 0x3b, 0x8d, 0x7f, 0x0b, 0x84, 0xb5, 0x11, 0x10, 0x3b, 0xb2, + 0x84, 0x2f, 0x5b, 0x6f, 0x32, 0x3e, 0x29, 0xb0, 0x10, 0xe2, 0xfb, 0xca, 0x49, 0x24, 0x3e, 0xc1, + 0x7d, 0x61, 0xda, 0x20, 0xc8, 0xd6, 0x69, 0xe6, 0x1f, 0x8a, 0x25, 0x8f, 0x9a, 0x36, 0xa6, 0x3f, + 0x62, 0xee, 0x9f, 0xf2, 0xb0, 0xa5, 0x77, 0xea, 0x7a, 0x6b, 0xcf, 0xb4, 0xee, 0x8c, 0xae, 0x9b, + 0xd6, 0xe5, 0x1a, 0x8b, 0x72, 0xcd, 0x72, 0x2e, 0x2c, 0x98, 0xf4, 0xb0, 0x24, 0xf9, 0x20, 0x4f, + 0x7a, 0x10, 0x2b, 0x73, 0x8d, 0x32, 0x7b, 0x6a, 0x9e, 0xf4, 0xad, 0x38, 0xf9, 0x70, 0xef, 0x8d, + 0x3f, 0x89, 0xa3, 0x79, 0x97, 0xb0, 0x87, 0x92, 0x5c, 0x28, 0x4d, 0x86, 0xd4, 0x24, 0x43, 0x30, + 0x59, 0xf1, 0x84, 0x64, 0x0f, 0x4d, 0xca, 0x72, 0xb4, 0xb6, 0xf7, 0xdc, 0xb8, 0xb4, 0xcf, 0x81, + 0x13, 0x70, 0x38, 0x5d, 0x46, 0x5a, 0x26, 0x2d, 0x6f, 0x14, 0x4e, 0xe9, 0x1b, 0xcd, 0x8f, 0x4c, + 0xe9, 0xb7, 0x3c, 0x3c, 0xb5, 0xd7, 0xba, 0x7e, 0x5a, 0x4f, 0x46, 0xf7, 0x4d, 0x5d, 0xb6, 0x1f, + 0x4c, 0x2a, 0xb0, 0x24, 0xf9, 0xf0, 0xad, 0x89, 0x25, 0x6b, 0xa0, 0x11, 0x43, 0xec, 0x09, 0x5b, + 0xf2, 0xe0, 0x0d, 0x62, 0x5c, 0x37, 0x65, 0x71, 0x2e, 0xfc, 0xe0, 0xff, 0x1d, 0x74, 0xfa, 0x27, + 0x81, 0x60, 0xb4, 0x8e, 0xd5, 0x13, 0x81, 0xa2, 0xd5, 0x80, 0x50, 0x93, 0xee, 0x74, 0xa7, 0x3b, + 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, + 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, + 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, + 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, + 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, + 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, + 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, + 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, + 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, + 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, + 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, + 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, + 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, + 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, + 0xba, 0xd3, 0x9d, 0xee, 0x74, 0xa7, 0x3b, 0xdd, 0xe9, 0x4e, 0x77, 0xba, 0xd3, 0x9d, 0xee, 0xfe, + 0x4a, 0x37, 0xd2, 0x3b, 0xf0, 0x2b, 0x30, 0x03, 0x40, 0x16, 0xdc, 0x0a, 0xd9, 0xf0, 0x65, 0xc8, + 0x81, 0xaf, 0xc0, 0x8c, 0x44, 0xe2, 0x7f, 0x01, 0x80, 0xd8, 0xab, 0xdd, 0x00, 0x00, 0x10, 0x00 }; unsigned int arosrom_len = 504240; diff --git a/src/audio.cpp b/src/audio.cpp index 4f090e3b..14a492b6 100644 --- a/src/audio.cpp +++ b/src/audio.cpp @@ -1,22 +1,22 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Paula audio emulation - * - * Copyright 1995, 1996, 1997 Bernd Schmidt - * Copyright 1996 Marcus Sundberg - * Copyright 1996 Manfred Thole - * Copyright 2006 Toni Wilen - * - * new filter algorithm and anti&sinc interpolators by Antti S. Lankila - * - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Paula audio emulation + * + * Copyright 1995, 1996, 1997 Bernd Schmidt + * Copyright 1996 Marcus Sundberg + * Copyright 1996 Manfred Thole + * Copyright 2006 Toni Wilen + * + * new filter algorithm and anti&sinc interpolators by Antti S. Lankila + * + */ #include "sysconfig.h" #include "sysdeps.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "custom.h" #include "newcpu.h" #include "autoconf.h" @@ -36,12 +36,12 @@ STATIC_INLINE bool isaudio(void) { - return currprefs.produce_sound != 0; + return currprefs.produce_sound != 0; } STATIC_INLINE bool usehacks1 (void) { - return currprefs.cpu_model >= 68020 || currprefs.m68k_speed != 0; + return currprefs.cpu_model >= 68020 || currprefs.m68k_speed != 0; } #define SINC_QUEUE_MAX_AGE 2048 @@ -51,35 +51,37 @@ STATIC_INLINE bool usehacks1 (void) #include "sinctable.cpp" -typedef struct { - int time, output; +typedef struct +{ + int time, output; } sinc_queue_t; -struct audio_channel_data{ - unsigned int adk_mask; - unsigned int evtime; - bool dmaenstore; - bool intreq2; - bool dr; - bool dsr; - bool pbufldl; - bool dat_written; - uaecptr lc, pt; - int current_sample, last_sample; - int state; - int per; - int vol; - int len, wlen; - uae_u16 dat, dat2; - int sample_accum, sample_accum_time; - int sinc_output_state; - sinc_queue_t sinc_queue[SINC_QUEUE_LENGTH]; - int sinc_queue_time; - int sinc_queue_head; - /* too fast cpu fixes */ - uaecptr ptx; - bool ptx_written; - bool ptx_tofetch; +struct audio_channel_data +{ + unsigned int adk_mask; + unsigned int evtime; + bool dmaenstore; + bool intreq2; + bool dr; + bool dsr; + bool pbufldl; + bool dat_written; + uaecptr lc, pt; + int current_sample, last_sample; + int state; + int per; + int vol; + int len, wlen; + uae_u16 dat, dat2; + int sample_accum, sample_accum_time; + int sinc_output_state; + sinc_queue_t sinc_queue[SINC_QUEUE_LENGTH]; + int sinc_queue_time; + int sinc_queue_head; + /* too fast cpu fixes */ + uaecptr ptx; + bool ptx_written; + bool ptx_tofetch; }; static struct audio_channel_data audio_channel[4]; @@ -97,15 +99,20 @@ typedef uae_s8 sample8_t; STATIC_INLINE int FINISH_DATA (int data, int bits) { - if (bits == 16) { - return data; - } else if (bits - 16 > 0) { - data >>= bits - 16; - } else { - int shift = 16 - bits; - data <<= shift; - } - return data; + if (bits == 16) + { + return data; + } + else if (bits - 16 > 0) + { + data >>= bits - 16; + } + else + { + int shift = 16 - bits; + data <<= shift; + } + return data; } static uae_u32 right_word_saved[SOUND_MAX_DELAY_BUFFER]; @@ -120,7 +127,8 @@ static int led_filter_forced, sound_use_filter, sound_use_filter_sinc, led_filte a small offset is added to avoid very small floating point numbers. */ #define DENORMAL_OFFSET (1E-10) -static struct filter_state { +static struct filter_state +{ float rc1, rc2, rc3, rc4, rc5; } sound_filter_state[2]; @@ -128,15 +136,16 @@ static float a500e_filter1_a0; static float a500e_filter2_a0; static float filter_a0; /* a500 and a1200 use the same */ -enum { - FILTER_NONE = 0, - FILTER_MODEL_A500, - FILTER_MODEL_A1200 +enum +{ + FILTER_NONE = 0, + FILTER_MODEL_A500, + FILTER_MODEL_A1200 }; /* Amiga has two separate filtering circuits per channel, a static RC filter * on A500 and the LED filter. This code emulates both. - * + * * The Amiga filtering circuitry depends on Amiga model. Older Amigas seem * to have a 6 dB/oct RC filter with cutoff frequency such that the -6 dB * point for filter is reached at 6 kHz, while newer Amigas have no filtering. @@ -152,50 +161,51 @@ enum { static int filter(int input, struct filter_state *fs) { - int o; - float normal_output, led_output; + int o; + float normal_output, led_output; - input = (uae_s16)input; - switch (sound_use_filter) { - - case FILTER_MODEL_A500: - fs->rc1 = a500e_filter1_a0 * input + (1 - a500e_filter1_a0) * fs->rc1 + DENORMAL_OFFSET; - fs->rc2 = a500e_filter2_a0 * fs->rc1 + (1-a500e_filter2_a0) * fs->rc2; - normal_output = fs->rc2; + input = (uae_s16)input; + switch (sound_use_filter) + { - fs->rc3 = filter_a0 * normal_output + (1 - filter_a0) * fs->rc3; - fs->rc4 = filter_a0 * fs->rc3 + (1 - filter_a0) * fs->rc4; - fs->rc5 = filter_a0 * fs->rc4 + (1 - filter_a0) * fs->rc5; + case FILTER_MODEL_A500: + fs->rc1 = a500e_filter1_a0 * input + (1 - a500e_filter1_a0) * fs->rc1 + DENORMAL_OFFSET; + fs->rc2 = a500e_filter2_a0 * fs->rc1 + (1-a500e_filter2_a0) * fs->rc2; + normal_output = fs->rc2; + + fs->rc3 = filter_a0 * normal_output + (1 - filter_a0) * fs->rc3; + fs->rc4 = filter_a0 * fs->rc3 + (1 - filter_a0) * fs->rc4; + fs->rc5 = filter_a0 * fs->rc4 + (1 - filter_a0) * fs->rc5; + + led_output = fs->rc5; + break; - led_output = fs->rc5; - break; - case FILTER_MODEL_A1200: - normal_output = input; + normal_output = input; - fs->rc2 = filter_a0 * normal_output + (1 - filter_a0) * fs->rc2 + DENORMAL_OFFSET; - fs->rc3 = filter_a0 * fs->rc2 + (1 - filter_a0) * fs->rc3; - fs->rc4 = filter_a0 * fs->rc3 + (1 - filter_a0) * fs->rc4; + fs->rc2 = filter_a0 * normal_output + (1 - filter_a0) * fs->rc2 + DENORMAL_OFFSET; + fs->rc3 = filter_a0 * fs->rc2 + (1 - filter_a0) * fs->rc3; + fs->rc4 = filter_a0 * fs->rc3 + (1 - filter_a0) * fs->rc4; - led_output = fs->rc4; - break; - case FILTER_NONE: - default: - return input; + led_output = fs->rc4; + break; + case FILTER_NONE: + default: + return input; - } + } - if (led_filter_on) - o = led_output; - else - o = normal_output; + if (led_filter_on) + o = led_output; + else + o = normal_output; - if (o > 32767) - o = 32767; - else if (o < -32768) - o = -32768; + if (o > 32767) + o = 32767; + else if (o < -32768) + o = -32768; - return o; + return o; } /* Always put the right word before the left word. */ @@ -205,112 +215,116 @@ static void (*put_sound_word_stereo_func)(uae_u32 left, uae_u32 right); static void put_sound_word_stereo_func_filter_mixed(uae_u32 left, uae_u32 right) { - uae_u32 rold, lold, tmp; + uae_u32 rold, lold, tmp; - left = filter (left, &sound_filter_state[0]); - right = filter (right, &sound_filter_state[1]); + left = filter (left, &sound_filter_state[0]); + right = filter (right, &sound_filter_state[1]); - left_word_saved[saved_ptr] = left; - right_word_saved[saved_ptr] = right; + left_word_saved[saved_ptr] = left; + right_word_saved[saved_ptr] = right; - saved_ptr = (saved_ptr + 1) & mixed_stereo_size; + saved_ptr = (saved_ptr + 1) & mixed_stereo_size; - lold = left_word_saved[saved_ptr]; - tmp = (right * mixed_mul2 + lold * mixed_mul1) / MIXED_STEREO_SCALE; + lold = left_word_saved[saved_ptr]; + tmp = (right * mixed_mul2 + lold * mixed_mul1) / MIXED_STEREO_SCALE; - rold = right_word_saved[saved_ptr]; - left = (left * mixed_mul2 + rold * mixed_mul1) / MIXED_STEREO_SCALE; + rold = right_word_saved[saved_ptr]; + left = (left * mixed_mul2 + rold * mixed_mul1) / MIXED_STEREO_SCALE; - PUT_SOUND_WORD_STEREO(left, tmp); + PUT_SOUND_WORD_STEREO(left, tmp); } static void put_sound_word_stereo_func_filter_notmixed(uae_u32 left, uae_u32 right) { - left = filter (left, &sound_filter_state[0]); - right = filter (right, &sound_filter_state[1]); - PUT_SOUND_WORD_STEREO(left, right); + left = filter (left, &sound_filter_state[0]); + right = filter (right, &sound_filter_state[1]); + PUT_SOUND_WORD_STEREO(left, right); } static void put_sound_word_stereo_func_nofilter_mixed(uae_u32 left, uae_u32 right) { - uae_u32 rold, lold, tmp; + uae_u32 rold, lold, tmp; - left_word_saved[saved_ptr] = left; - right_word_saved[saved_ptr] = right; + left_word_saved[saved_ptr] = left; + right_word_saved[saved_ptr] = right; - saved_ptr = (saved_ptr + 1) & mixed_stereo_size; + saved_ptr = (saved_ptr + 1) & mixed_stereo_size; - lold = left_word_saved[saved_ptr]; - tmp = (right * mixed_mul2 + lold * mixed_mul1) / MIXED_STEREO_SCALE; + lold = left_word_saved[saved_ptr]; + tmp = (right * mixed_mul2 + lold * mixed_mul1) / MIXED_STEREO_SCALE; - rold = right_word_saved[saved_ptr]; - left = (left * mixed_mul2 + rold * mixed_mul1) / MIXED_STEREO_SCALE; + rold = right_word_saved[saved_ptr]; + left = (left * mixed_mul2 + rold * mixed_mul1) / MIXED_STEREO_SCALE; - PUT_SOUND_WORD_STEREO(left, tmp); + PUT_SOUND_WORD_STEREO(left, tmp); } static void put_sound_word_stereo_func_nofilter_notmixed(uae_u32 left, uae_u32 right) { - PUT_SOUND_WORD_STEREO(left, right); + PUT_SOUND_WORD_STEREO(left, right); } static void put_sound_word_mono_func_filter(uae_u32 data) { - data = filter (data, &sound_filter_state[0]); - PUT_SOUND_WORD(data); + data = filter (data, &sound_filter_state[0]); + PUT_SOUND_WORD(data); } static void put_sound_word_mono_func_nofilter(uae_u32 data) { - PUT_SOUND_WORD(data); + PUT_SOUND_WORD(data); } static void anti_prehandler(unsigned long best_evtime) { - int i, output; - struct audio_channel_data *acd; + int i, output; + struct audio_channel_data *acd; - /* Handle accumulator antialiasiation */ - for (i = 0; i < 4; i++) { - acd = &audio_channel[i]; - output = (acd->current_sample * acd->vol) & acd->adk_mask; - acd->sample_accum += output * best_evtime; - acd->sample_accum_time += best_evtime; - } + /* Handle accumulator antialiasiation */ + for (i = 0; i < 4; i++) + { + acd = &audio_channel[i]; + output = (acd->current_sample * acd->vol) & acd->adk_mask; + acd->sample_accum += output * best_evtime; + acd->sample_accum_time += best_evtime; + } } STATIC_INLINE void samplexx_anti_handler (int *datasp) { - int i; - for (i = 0; i < 4; i++) { - datasp[i] = audio_channel[i].sample_accum_time ? (audio_channel[i].sample_accum / audio_channel[i].sample_accum_time) : 0; - audio_channel[i].sample_accum = 0; - audio_channel[i].sample_accum_time = 0; - } + int i; + for (i = 0; i < 4; i++) + { + datasp[i] = audio_channel[i].sample_accum_time ? (audio_channel[i].sample_accum / audio_channel[i].sample_accum_time) : 0; + audio_channel[i].sample_accum = 0; + audio_channel[i].sample_accum_time = 0; + } } static void sinc_prehandler(unsigned long best_evtime) { - int i, output; - struct audio_channel_data *acd; + int i, output; + struct audio_channel_data *acd; - for (i = 0; i < 4; i++) { - acd = &audio_channel[i]; - int vol = acd->vol; - output = (acd->current_sample * vol) & acd->adk_mask; - - /* if output state changes, record the state change and also - * write data into sinc queue for mixing in the BLEP */ - if (acd->sinc_output_state != output) { - acd->sinc_queue_head = (acd->sinc_queue_head - 1) & (SINC_QUEUE_LENGTH - 1); - acd->sinc_queue[acd->sinc_queue_head].time = acd->sinc_queue_time; - acd->sinc_queue[acd->sinc_queue_head].output = output - acd->sinc_output_state; - acd->sinc_output_state = output; + for (i = 0; i < 4; i++) + { + acd = &audio_channel[i]; + int vol = acd->vol; + output = (acd->current_sample * vol) & acd->adk_mask; + + /* if output state changes, record the state change and also + * write data into sinc queue for mixing in the BLEP */ + if (acd->sinc_output_state != output) + { + acd->sinc_queue_head = (acd->sinc_queue_head - 1) & (SINC_QUEUE_LENGTH - 1); + acd->sinc_queue[acd->sinc_queue_head].time = acd->sinc_queue_time; + acd->sinc_queue[acd->sinc_queue_head].output = output - acd->sinc_output_state; + acd->sinc_output_state = output; + } + + acd->sinc_queue_time += best_evtime; } - - acd->sinc_queue_time += best_evtime; - } } @@ -318,209 +332,214 @@ static void sinc_prehandler(unsigned long best_evtime) * functions) with a type of BLEP that matches the filtering configuration. */ STATIC_INLINE void samplexx_sinc_handler (int *datasp) { - int i, n; - int const *winsinc; + int i, n; + int const *winsinc; - if (sound_use_filter_sinc) { - n = (sound_use_filter_sinc == FILTER_MODEL_A500) ? 0 : 2; - if (led_filter_on) - n += 1; - } else { - n = 4; - } - winsinc = winsinc_integral[n]; + if (sound_use_filter_sinc) + { + n = (sound_use_filter_sinc == FILTER_MODEL_A500) ? 0 : 2; + if (led_filter_on) + n += 1; + } + else + { + n = 4; + } + winsinc = winsinc_integral[n]; - for (i = 0; i < 4; i += 1) { - int j, v; - struct audio_channel_data *acd = &audio_channel[i]; - /* The sum rings with harmonic components up to infinity... */ - int sum = acd->sinc_output_state << 17; - /* ...but we cancel them through mixing in BLEPs instead */ - int offsetpos = acd->sinc_queue_head & (SINC_QUEUE_LENGTH - 1); - for (j = 0; j < SINC_QUEUE_LENGTH; j += 1) { - int age = acd->sinc_queue_time - acd->sinc_queue[offsetpos].time; - if (age >= SINC_QUEUE_MAX_AGE || age < 0) - break; - sum -= winsinc[age] * acd->sinc_queue[offsetpos].output; - offsetpos = (offsetpos + 1) & (SINC_QUEUE_LENGTH - 1); - } - v = sum >> 15; - if (v > 32767) - v = 32767; - else if (v < -32768) - v = -32768; - datasp[i] = v; - } + for (i = 0; i < 4; i += 1) + { + int j, v; + struct audio_channel_data *acd = &audio_channel[i]; + /* The sum rings with harmonic components up to infinity... */ + int sum = acd->sinc_output_state << 17; + /* ...but we cancel them through mixing in BLEPs instead */ + int offsetpos = acd->sinc_queue_head & (SINC_QUEUE_LENGTH - 1); + for (j = 0; j < SINC_QUEUE_LENGTH; j += 1) + { + int age = acd->sinc_queue_time - acd->sinc_queue[offsetpos].time; + if (age >= SINC_QUEUE_MAX_AGE || age < 0) + break; + sum -= winsinc[age] * acd->sinc_queue[offsetpos].output; + offsetpos = (offsetpos + 1) & (SINC_QUEUE_LENGTH - 1); + } + v = sum >> 15; + if (v > 32767) + v = 32767; + else if (v < -32768) + v = -32768; + datasp[i] = v; + } } static void sample16i_sinc_handler (void) { - int datas[4], data1; - - samplexx_sinc_handler (datas); - data1 = datas[0] + datas[3] + datas[1] + datas[2]; - data1 = FINISH_DATA (data1, 18); - set_sound_buffers (); - PUT_SOUND_WORD_MONO (data1); - check_sound_buffers (); + int datas[4], data1; + + samplexx_sinc_handler (datas); + data1 = datas[0] + datas[3] + datas[1] + datas[2]; + data1 = FINISH_DATA (data1, 18); + set_sound_buffers (); + PUT_SOUND_WORD_MONO (data1); + check_sound_buffers (); } void sample16_handler (void) { - uae_u32 data; - if(audio_channel[0].adk_mask) - data = audio_channel[0].current_sample * audio_channel[0].vol; - else - data = 0; - if(audio_channel[1].adk_mask) - data += audio_channel[1].current_sample * audio_channel[1].vol; - if(audio_channel[2].adk_mask) - data += audio_channel[2].current_sample * audio_channel[2].vol; - if(audio_channel[3].adk_mask) - data += audio_channel[3].current_sample * audio_channel[3].vol; - - data = FINISH_DATA (data, 16); - set_sound_buffers (); - PUT_SOUND_WORD_MONO (data); - check_sound_buffers (); + uae_u32 data; + if(audio_channel[0].adk_mask) + data = audio_channel[0].current_sample * audio_channel[0].vol; + else + data = 0; + if(audio_channel[1].adk_mask) + data += audio_channel[1].current_sample * audio_channel[1].vol; + if(audio_channel[2].adk_mask) + data += audio_channel[2].current_sample * audio_channel[2].vol; + if(audio_channel[3].adk_mask) + data += audio_channel[3].current_sample * audio_channel[3].vol; + + data = FINISH_DATA (data, 16); + set_sound_buffers (); + PUT_SOUND_WORD_MONO (data); + check_sound_buffers (); } - + /* This interpolator examines sample points when Paula switches the output * voltage and computes the average of Paula's output */ static void sample16i_anti_handler (void) { - int datas[4], data1; + int datas[4], data1; - samplexx_anti_handler (datas); - data1 = datas[0] + datas[3] + datas[1] + datas[2]; - data1 = FINISH_DATA (data1, 16); - set_sound_buffers (); - PUT_SOUND_WORD_MONO (data1); - check_sound_buffers (); + samplexx_anti_handler (datas); + data1 = datas[0] + datas[3] + datas[1] + datas[2]; + data1 = FINISH_DATA (data1, 16); + set_sound_buffers (); + PUT_SOUND_WORD_MONO (data1); + check_sound_buffers (); } static void sample16i_rh_handler (void) { - unsigned long delta, ratio; + unsigned long delta, ratio; - uae_u32 data0 = audio_channel[0].current_sample; - uae_u32 data1 = audio_channel[1].current_sample; - uae_u32 data2 = audio_channel[2].current_sample; - uae_u32 data3 = audio_channel[3].current_sample; - uae_u32 data0p = audio_channel[0].last_sample; - uae_u32 data1p = audio_channel[1].last_sample; - uae_u32 data2p = audio_channel[2].last_sample; - uae_u32 data3p = audio_channel[3].last_sample; - uae_u32 data; + uae_u32 data0 = audio_channel[0].current_sample; + uae_u32 data1 = audio_channel[1].current_sample; + uae_u32 data2 = audio_channel[2].current_sample; + uae_u32 data3 = audio_channel[3].current_sample; + uae_u32 data0p = audio_channel[0].last_sample; + uae_u32 data1p = audio_channel[1].last_sample; + uae_u32 data2p = audio_channel[2].last_sample; + uae_u32 data3p = audio_channel[3].last_sample; + uae_u32 data; - DO_CHANNEL_1 (data0, 0); - DO_CHANNEL_1 (data1, 1); - DO_CHANNEL_1 (data2, 2); - DO_CHANNEL_1 (data3, 3); - DO_CHANNEL_1 (data0p, 0); - DO_CHANNEL_1 (data1p, 1); - DO_CHANNEL_1 (data2p, 2); - DO_CHANNEL_1 (data3p, 3); + DO_CHANNEL_1 (data0, 0); + DO_CHANNEL_1 (data1, 1); + DO_CHANNEL_1 (data2, 2); + DO_CHANNEL_1 (data3, 3); + DO_CHANNEL_1 (data0p, 0); + DO_CHANNEL_1 (data1p, 1); + DO_CHANNEL_1 (data2p, 2); + DO_CHANNEL_1 (data3p, 3); - data0 &= audio_channel[0].adk_mask; - data0p &= audio_channel[0].adk_mask; - data1 &= audio_channel[1].adk_mask; - data1p &= audio_channel[1].adk_mask; - data2 &= audio_channel[2].adk_mask; - data2p &= audio_channel[2].adk_mask; - data3 &= audio_channel[3].adk_mask; - data3p &= audio_channel[3].adk_mask; + data0 &= audio_channel[0].adk_mask; + data0p &= audio_channel[0].adk_mask; + data1 &= audio_channel[1].adk_mask; + data1p &= audio_channel[1].adk_mask; + data2 &= audio_channel[2].adk_mask; + data2p &= audio_channel[2].adk_mask; + data3 &= audio_channel[3].adk_mask; + data3p &= audio_channel[3].adk_mask; - /* linear interpolation and summing up... */ - delta = audio_channel[0].per; - ratio = ((audio_channel[0].evtime % delta) << 8) / delta; - data0 = (data0 * (256 - ratio) + data0p * ratio) >> 8; - delta = audio_channel[1].per; - ratio = ((audio_channel[1].evtime % delta) << 8) / delta; - data0 += (data1 * (256 - ratio) + data1p * ratio) >> 8; - delta = audio_channel[2].per; - ratio = ((audio_channel[2].evtime % delta) << 8) / delta; - data0 += (data2 * (256 - ratio) + data2p * ratio) >> 8; - delta = audio_channel[3].per; - ratio = ((audio_channel[3].evtime % delta) << 8) / delta; - data0 += (data3 * (256 - ratio) + data3p * ratio) >> 8; - data = data0; - data = FINISH_DATA (data, 16); - set_sound_buffers (); - PUT_SOUND_WORD_MONO (data); - check_sound_buffers(); + /* linear interpolation and summing up... */ + delta = audio_channel[0].per; + ratio = ((audio_channel[0].evtime % delta) << 8) / delta; + data0 = (data0 * (256 - ratio) + data0p * ratio) >> 8; + delta = audio_channel[1].per; + ratio = ((audio_channel[1].evtime % delta) << 8) / delta; + data0 += (data1 * (256 - ratio) + data1p * ratio) >> 8; + delta = audio_channel[2].per; + ratio = ((audio_channel[2].evtime % delta) << 8) / delta; + data0 += (data2 * (256 - ratio) + data2p * ratio) >> 8; + delta = audio_channel[3].per; + ratio = ((audio_channel[3].evtime % delta) << 8) / delta; + data0 += (data3 * (256 - ratio) + data3p * ratio) >> 8; + data = data0; + data = FINISH_DATA (data, 16); + set_sound_buffers (); + PUT_SOUND_WORD_MONO (data); + check_sound_buffers(); } static void sample16i_crux_handler (void) { - uae_u32 data0 = audio_channel[0].current_sample; - uae_u32 data1 = audio_channel[1].current_sample; - uae_u32 data2 = audio_channel[2].current_sample; - uae_u32 data3 = audio_channel[3].current_sample; - uae_u32 data0p = audio_channel[0].last_sample; - uae_u32 data1p = audio_channel[1].last_sample; - uae_u32 data2p = audio_channel[2].last_sample; - uae_u32 data3p = audio_channel[3].last_sample; - uae_u32 data; + uae_u32 data0 = audio_channel[0].current_sample; + uae_u32 data1 = audio_channel[1].current_sample; + uae_u32 data2 = audio_channel[2].current_sample; + uae_u32 data3 = audio_channel[3].current_sample; + uae_u32 data0p = audio_channel[0].last_sample; + uae_u32 data1p = audio_channel[1].last_sample; + uae_u32 data2p = audio_channel[2].last_sample; + uae_u32 data3p = audio_channel[3].last_sample; + uae_u32 data; - DO_CHANNEL_1 (data0, 0); - DO_CHANNEL_1 (data1, 1); - DO_CHANNEL_1 (data2, 2); - DO_CHANNEL_1 (data3, 3); - DO_CHANNEL_1 (data0p, 0); - DO_CHANNEL_1 (data1p, 1); - DO_CHANNEL_1 (data2p, 2); - DO_CHANNEL_1 (data3p, 3); + DO_CHANNEL_1 (data0, 0); + DO_CHANNEL_1 (data1, 1); + DO_CHANNEL_1 (data2, 2); + DO_CHANNEL_1 (data3, 3); + DO_CHANNEL_1 (data0p, 0); + DO_CHANNEL_1 (data1p, 1); + DO_CHANNEL_1 (data2p, 2); + DO_CHANNEL_1 (data3p, 3); - data0 &= audio_channel[0].adk_mask; - data0p &= audio_channel[0].adk_mask; - data1 &= audio_channel[1].adk_mask; - data1p &= audio_channel[1].adk_mask; - data2 &= audio_channel[2].adk_mask; - data2p &= audio_channel[2].adk_mask; - data3 &= audio_channel[3].adk_mask; - data3p &= audio_channel[3].adk_mask; + data0 &= audio_channel[0].adk_mask; + data0p &= audio_channel[0].adk_mask; + data1 &= audio_channel[1].adk_mask; + data1p &= audio_channel[1].adk_mask; + data2 &= audio_channel[2].adk_mask; + data2p &= audio_channel[2].adk_mask; + data3 &= audio_channel[3].adk_mask; + data3p &= audio_channel[3].adk_mask; - { - struct audio_channel_data *cdp; - unsigned long ratio, ratio1; + { + struct audio_channel_data *cdp; + unsigned long ratio, ratio1; #define INTERVAL (scaled_sample_evtime * 3) - cdp = audio_channel + 0; - ratio1 = cdp->per - cdp->evtime; - ratio = (ratio1 << 12) / INTERVAL; - if (cdp->evtime < scaled_sample_evtime || ratio1 >= INTERVAL) - ratio = 4096; - data0 = (data0 * ratio + data0p * (4096 - ratio)) >> 12; + cdp = audio_channel + 0; + ratio1 = cdp->per - cdp->evtime; + ratio = (ratio1 << 12) / INTERVAL; + if (cdp->evtime < scaled_sample_evtime || ratio1 >= INTERVAL) + ratio = 4096; + data0 = (data0 * ratio + data0p * (4096 - ratio)) >> 12; - cdp = audio_channel + 1; - ratio1 = cdp->per - cdp->evtime; - ratio = (ratio1 << 12) / INTERVAL; - if (cdp->evtime < scaled_sample_evtime || ratio1 >= INTERVAL) - ratio = 4096; - data1 = (data1 * ratio + data1p * (4096 - ratio)) >> 12; + cdp = audio_channel + 1; + ratio1 = cdp->per - cdp->evtime; + ratio = (ratio1 << 12) / INTERVAL; + if (cdp->evtime < scaled_sample_evtime || ratio1 >= INTERVAL) + ratio = 4096; + data1 = (data1 * ratio + data1p * (4096 - ratio)) >> 12; - cdp = audio_channel + 2; - ratio1 = cdp->per - cdp->evtime; - ratio = (ratio1 << 12) / INTERVAL; - if (cdp->evtime < scaled_sample_evtime || ratio1 >= INTERVAL) - ratio = 4096; - data2 = (data2 * ratio + data2p * (4096 - ratio)) >> 12; + cdp = audio_channel + 2; + ratio1 = cdp->per - cdp->evtime; + ratio = (ratio1 << 12) / INTERVAL; + if (cdp->evtime < scaled_sample_evtime || ratio1 >= INTERVAL) + ratio = 4096; + data2 = (data2 * ratio + data2p * (4096 - ratio)) >> 12; - cdp = audio_channel + 3; - ratio1 = cdp->per - cdp->evtime; - ratio = (ratio1 << 12) / INTERVAL; - if (cdp->evtime < scaled_sample_evtime || ratio1 >= INTERVAL) - ratio = 4096; - data3 = (data3 * ratio + data3p * (4096 - ratio)) >> 12; - } - data1 += data2; - data0 += data3; - data0 += data1; - data = data0; - data = FINISH_DATA (data, 16); - set_sound_buffers (); - PUT_SOUND_WORD_MONO (data); - check_sound_buffers (); + cdp = audio_channel + 3; + ratio1 = cdp->per - cdp->evtime; + ratio = (ratio1 << 12) / INTERVAL; + if (cdp->evtime < scaled_sample_evtime || ratio1 >= INTERVAL) + ratio = 4096; + data3 = (data3 * ratio + data3p * (4096 - ratio)) >> 12; + } + data1 += data2; + data0 += data3; + data0 += data1; + data = data0; + data = FINISH_DATA (data, 16); + set_sound_buffers (); + PUT_SOUND_WORD_MONO (data); + check_sound_buffers (); } #ifdef HAVE_STEREO_SUPPORT @@ -530,181 +549,181 @@ static void sample16i_crux_handler (void) static void sample16si_anti_handler (void) { - int datas[4], data1, data2; + int datas[4], data1, data2; - samplexx_anti_handler (datas); - data1 = datas[0] + datas[3]; - data2 = datas[1] + datas[2]; - data1 = FINISH_DATA (data1, 15); - data2 = FINISH_DATA (data2, 15); - set_sound_buffers (); - put_sound_word_stereo_func(data1, data2); - check_sound_buffers (); + samplexx_anti_handler (datas); + data1 = datas[0] + datas[3]; + data2 = datas[1] + datas[2]; + data1 = FINISH_DATA (data1, 15); + data2 = FINISH_DATA (data2, 15); + set_sound_buffers (); + put_sound_word_stereo_func(data1, data2); + check_sound_buffers (); } static void sample16si_sinc_handler (void) { - int datas[4], data1, data2; + int datas[4], data1, data2; - samplexx_sinc_handler (datas); - data1 = datas[0] + datas[3]; - data2 = datas[1] + datas[2]; - data1 = FINISH_DATA (data1, 17); - data2 = FINISH_DATA (data2, 17); - set_sound_buffers (); - put_sound_word_stereo_func(data1, data2); - check_sound_buffers (); + samplexx_sinc_handler (datas); + data1 = datas[0] + datas[3]; + data2 = datas[1] + datas[2]; + data1 = FINISH_DATA (data1, 17); + data2 = FINISH_DATA (data2, 17); + set_sound_buffers (); + put_sound_word_stereo_func(data1, data2); + check_sound_buffers (); } void sample16s_handler (void) { - uae_u32 data_l = audio_channel[0].adk_mask ? audio_channel[0].current_sample * audio_channel[0].vol : 0; - uae_u32 data_r = audio_channel[1].adk_mask ? audio_channel[1].current_sample * audio_channel[1].vol : 0; - if(audio_channel[2].adk_mask) - data_r += audio_channel[2].current_sample * audio_channel[2].vol; - if(audio_channel[3].adk_mask) - data_l += audio_channel[3].current_sample * audio_channel[3].vol; - data_l = FINISH_DATA(data_l, 15); - data_r = FINISH_DATA(data_r, 15); + uae_u32 data_l = audio_channel[0].adk_mask ? audio_channel[0].current_sample * audio_channel[0].vol : 0; + uae_u32 data_r = audio_channel[1].adk_mask ? audio_channel[1].current_sample * audio_channel[1].vol : 0; + if(audio_channel[2].adk_mask) + data_r += audio_channel[2].current_sample * audio_channel[2].vol; + if(audio_channel[3].adk_mask) + data_l += audio_channel[3].current_sample * audio_channel[3].vol; + data_l = FINISH_DATA(data_l, 15); + data_r = FINISH_DATA(data_r, 15); - set_sound_buffers (); - put_sound_word_stereo_func(data_l, data_r); - check_sound_buffers(); + set_sound_buffers (); + put_sound_word_stereo_func(data_l, data_r); + check_sound_buffers(); } static void sample16si_crux_handler (void) { - uae_u32 data0 = audio_channel[0].current_sample; - uae_u32 data1 = audio_channel[1].current_sample; - uae_u32 data2 = audio_channel[2].current_sample; - uae_u32 data3 = audio_channel[3].current_sample; - uae_u32 data0p = audio_channel[0].last_sample; - uae_u32 data1p = audio_channel[1].last_sample; - uae_u32 data2p = audio_channel[2].last_sample; - uae_u32 data3p = audio_channel[3].last_sample; + uae_u32 data0 = audio_channel[0].current_sample; + uae_u32 data1 = audio_channel[1].current_sample; + uae_u32 data2 = audio_channel[2].current_sample; + uae_u32 data3 = audio_channel[3].current_sample; + uae_u32 data0p = audio_channel[0].last_sample; + uae_u32 data1p = audio_channel[1].last_sample; + uae_u32 data2p = audio_channel[2].last_sample; + uae_u32 data3p = audio_channel[3].last_sample; - DO_CHANNEL_1 (data0, 0); - DO_CHANNEL_1 (data1, 1); - DO_CHANNEL_1 (data2, 2); - DO_CHANNEL_1 (data3, 3); - DO_CHANNEL_1 (data0p, 0); - DO_CHANNEL_1 (data1p, 1); - DO_CHANNEL_1 (data2p, 2); - DO_CHANNEL_1 (data3p, 3); + DO_CHANNEL_1 (data0, 0); + DO_CHANNEL_1 (data1, 1); + DO_CHANNEL_1 (data2, 2); + DO_CHANNEL_1 (data3, 3); + DO_CHANNEL_1 (data0p, 0); + DO_CHANNEL_1 (data1p, 1); + DO_CHANNEL_1 (data2p, 2); + DO_CHANNEL_1 (data3p, 3); - data0 &= audio_channel[0].adk_mask; - data0p &= audio_channel[0].adk_mask; - data1 &= audio_channel[1].adk_mask; - data1p &= audio_channel[1].adk_mask; - data2 &= audio_channel[2].adk_mask; - data2p &= audio_channel[2].adk_mask; - data3 &= audio_channel[3].adk_mask; - data3p &= audio_channel[3].adk_mask; + data0 &= audio_channel[0].adk_mask; + data0p &= audio_channel[0].adk_mask; + data1 &= audio_channel[1].adk_mask; + data1p &= audio_channel[1].adk_mask; + data2 &= audio_channel[2].adk_mask; + data2p &= audio_channel[2].adk_mask; + data3 &= audio_channel[3].adk_mask; + data3p &= audio_channel[3].adk_mask; - { - struct audio_channel_data *cdp; - unsigned long ratio, ratio1; + { + struct audio_channel_data *cdp; + unsigned long ratio, ratio1; #define INTERVAL (scaled_sample_evtime * 3) - cdp = audio_channel + 0; - ratio1 = cdp->per - cdp->evtime; - ratio = (ratio1 << 12) / INTERVAL; - if (cdp->evtime < scaled_sample_evtime || ratio1 >= INTERVAL) - ratio = 4096; - data0 = (data0 * ratio + data0p * (4096 - ratio)) >> 12; + cdp = audio_channel + 0; + ratio1 = cdp->per - cdp->evtime; + ratio = (ratio1 << 12) / INTERVAL; + if (cdp->evtime < scaled_sample_evtime || ratio1 >= INTERVAL) + ratio = 4096; + data0 = (data0 * ratio + data0p * (4096 - ratio)) >> 12; - cdp = audio_channel + 1; - ratio1 = cdp->per - cdp->evtime; - ratio = (ratio1 << 12) / INTERVAL; - if (cdp->evtime < scaled_sample_evtime || ratio1 >= INTERVAL) - ratio = 4096; - data1 = (data1 * ratio + data1p * (4096 - ratio)) >> 12; + cdp = audio_channel + 1; + ratio1 = cdp->per - cdp->evtime; + ratio = (ratio1 << 12) / INTERVAL; + if (cdp->evtime < scaled_sample_evtime || ratio1 >= INTERVAL) + ratio = 4096; + data1 = (data1 * ratio + data1p * (4096 - ratio)) >> 12; - cdp = audio_channel + 2; - ratio1 = cdp->per - cdp->evtime; - ratio = (ratio1 << 12) / INTERVAL; - if (cdp->evtime < scaled_sample_evtime || ratio1 >= INTERVAL) - ratio = 4096; - data2 = (data2 * ratio + data2p * (4096 - ratio)) >> 12; + cdp = audio_channel + 2; + ratio1 = cdp->per - cdp->evtime; + ratio = (ratio1 << 12) / INTERVAL; + if (cdp->evtime < scaled_sample_evtime || ratio1 >= INTERVAL) + ratio = 4096; + data2 = (data2 * ratio + data2p * (4096 - ratio)) >> 12; - cdp = audio_channel + 3; - ratio1 = cdp->per - cdp->evtime; - ratio = (ratio1 << 12) / INTERVAL; - if (cdp->evtime < scaled_sample_evtime || ratio1 >= INTERVAL) - ratio = 4096; - data3 = (data3 * ratio + data3p * (4096 - ratio)) >> 12; - } - data1 += data2; - data0 += data3; - data0 = FINISH_DATA (data0, 15); - data1 = FINISH_DATA (data1, 15); - set_sound_buffers (); - put_sound_word_stereo_func(data0, data1); - check_sound_buffers (); + cdp = audio_channel + 3; + ratio1 = cdp->per - cdp->evtime; + ratio = (ratio1 << 12) / INTERVAL; + if (cdp->evtime < scaled_sample_evtime || ratio1 >= INTERVAL) + ratio = 4096; + data3 = (data3 * ratio + data3p * (4096 - ratio)) >> 12; + } + data1 += data2; + data0 += data3; + data0 = FINISH_DATA (data0, 15); + data1 = FINISH_DATA (data1, 15); + set_sound_buffers (); + put_sound_word_stereo_func(data0, data1); + check_sound_buffers (); } static void sample16si_rh_handler (void) { - unsigned long delta, ratio; + unsigned long delta, ratio; - uae_u32 data0 = audio_channel[0].current_sample; - uae_u32 data1 = audio_channel[1].current_sample; - uae_u32 data2 = audio_channel[2].current_sample; - uae_u32 data3 = audio_channel[3].current_sample; - uae_u32 data0p = audio_channel[0].last_sample; - uae_u32 data1p = audio_channel[1].last_sample; - uae_u32 data2p = audio_channel[2].last_sample; - uae_u32 data3p = audio_channel[3].last_sample; + uae_u32 data0 = audio_channel[0].current_sample; + uae_u32 data1 = audio_channel[1].current_sample; + uae_u32 data2 = audio_channel[2].current_sample; + uae_u32 data3 = audio_channel[3].current_sample; + uae_u32 data0p = audio_channel[0].last_sample; + uae_u32 data1p = audio_channel[1].last_sample; + uae_u32 data2p = audio_channel[2].last_sample; + uae_u32 data3p = audio_channel[3].last_sample; - DO_CHANNEL_1 (data0, 0); - DO_CHANNEL_1 (data1, 1); - DO_CHANNEL_1 (data2, 2); - DO_CHANNEL_1 (data3, 3); - DO_CHANNEL_1 (data0p, 0); - DO_CHANNEL_1 (data1p, 1); - DO_CHANNEL_1 (data2p, 2); - DO_CHANNEL_1 (data3p, 3); + DO_CHANNEL_1 (data0, 0); + DO_CHANNEL_1 (data1, 1); + DO_CHANNEL_1 (data2, 2); + DO_CHANNEL_1 (data3, 3); + DO_CHANNEL_1 (data0p, 0); + DO_CHANNEL_1 (data1p, 1); + DO_CHANNEL_1 (data2p, 2); + DO_CHANNEL_1 (data3p, 3); - data0 &= audio_channel[0].adk_mask; - data0p &= audio_channel[0].adk_mask; - data1 &= audio_channel[1].adk_mask; - data1p &= audio_channel[1].adk_mask; - data2 &= audio_channel[2].adk_mask; - data2p &= audio_channel[2].adk_mask; - data3 &= audio_channel[3].adk_mask; - data3p &= audio_channel[3].adk_mask; + data0 &= audio_channel[0].adk_mask; + data0p &= audio_channel[0].adk_mask; + data1 &= audio_channel[1].adk_mask; + data1p &= audio_channel[1].adk_mask; + data2 &= audio_channel[2].adk_mask; + data2p &= audio_channel[2].adk_mask; + data3 &= audio_channel[3].adk_mask; + data3p &= audio_channel[3].adk_mask; - /* linear interpolation and summing up... */ - delta = audio_channel[0].per; - ratio = ((audio_channel[0].evtime % delta) << 8) / delta; - data0 = (data0 * (256 - ratio) + data0p * ratio) >> 8; - delta = audio_channel[1].per; - ratio = ((audio_channel[1].evtime % delta) << 8) / delta; - data1 = (data1 * (256 - ratio) + data1p * ratio) >> 8; - delta = audio_channel[2].per; - ratio = ((audio_channel[2].evtime % delta) << 8) / delta; - data1 += (data2 * (256 - ratio) + data2p * ratio) >> 8; - delta = audio_channel[3].per; - ratio = ((audio_channel[3].evtime % delta) << 8) / delta; - data0 += (data3 * (256 - ratio) + data3p * ratio) >> 8; - data0 = FINISH_DATA (data0, 15); - data1 = FINISH_DATA (data1, 15); - set_sound_buffers (); - put_sound_word_stereo_func(data0, data1); - check_sound_buffers (); + /* linear interpolation and summing up... */ + delta = audio_channel[0].per; + ratio = ((audio_channel[0].evtime % delta) << 8) / delta; + data0 = (data0 * (256 - ratio) + data0p * ratio) >> 8; + delta = audio_channel[1].per; + ratio = ((audio_channel[1].evtime % delta) << 8) / delta; + data1 = (data1 * (256 - ratio) + data1p * ratio) >> 8; + delta = audio_channel[2].per; + ratio = ((audio_channel[2].evtime % delta) << 8) / delta; + data1 += (data2 * (256 - ratio) + data2p * ratio) >> 8; + delta = audio_channel[3].per; + ratio = ((audio_channel[3].evtime % delta) << 8) / delta; + data0 += (data3 * (256 - ratio) + data3p * ratio) >> 8; + data0 = FINISH_DATA (data0, 15); + data1 = FINISH_DATA (data1, 15); + set_sound_buffers (); + put_sound_word_stereo_func(data0, data1); + check_sound_buffers (); } #else void sample16s_handler (void) { - sample16_handler (); + sample16_handler (); } static void sample16si_crux_handler (void) { - sample16i_crux_handler (); + sample16i_crux_handler (); } static void sample16si_rh_handler (void) { - sample16i_rh_handler (); + sample16i_rh_handler (); } #endif @@ -712,356 +731,394 @@ static int audio_work_to_do; static void zerostate (int nr) { - struct audio_channel_data *cdp = audio_channel + nr; - cdp->state = 0; - cdp->evtime = MAX_EV; - cdp->intreq2 = 0; - cdp->dmaenstore = false; + struct audio_channel_data *cdp = audio_channel + nr; + cdp->state = 0; + cdp->evtime = MAX_EV; + cdp->intreq2 = 0; + cdp->dmaenstore = false; } static void schedule_audio (void) { - unsigned long best = MAX_EV; - int i; + unsigned long best = MAX_EV; + int i; - eventtab[ev_audio].active = 0; - for (i = 0; i < 4; i++) { - struct audio_channel_data *cdp = audio_channel + i; - if (cdp->evtime != MAX_EV) { - if (best > cdp->evtime) { - best = cdp->evtime; - eventtab[ev_audio].active = 1; - } + eventtab[ev_audio].active = 0; + for (i = 0; i < 4; i++) + { + struct audio_channel_data *cdp = audio_channel + i; + if (cdp->evtime != MAX_EV) + { + if (best > cdp->evtime) + { + best = cdp->evtime; + eventtab[ev_audio].active = 1; + } + } } - } - eventtab[ev_audio].evtime = get_cycles () + best; + eventtab[ev_audio].evtime = get_cycles () + best; } static void audio_event_reset (void) { - int i; + int i; - last_cycles = get_cycles (); - next_sample_evtime = scaled_sample_evtime; - if (!isrestore ()) { - for (i = 0; i < 4; i++) - zerostate (i); - } - schedule_audio (); - events_schedule (); + last_cycles = get_cycles (); + next_sample_evtime = scaled_sample_evtime; + if (!isrestore ()) + { + for (i = 0; i < 4; i++) + zerostate (i); + } + schedule_audio (); + events_schedule (); } static void audio_deactivate(void) { - gui_data.sndbuf_status = 3; - gui_data.sndbuf = 0; - pause_sound_buffer (); - clear_sound_buffers(); - audio_event_reset(); + gui_data.sndbuf_status = 3; + gui_data.sndbuf = 0; + pause_sound_buffer (); + clear_sound_buffers(); + audio_event_reset(); } int audio_activate(void) { - int ret = 0; - if (!audio_work_to_do) { - restart_sound_buffer(); - ret = 1; - audio_event_reset(); - } - audio_work_to_do = 4 * maxvpos_nom * 50; - return ret; + int ret = 0; + if (!audio_work_to_do) + { + restart_sound_buffer(); + ret = 1; + audio_event_reset(); + } + audio_work_to_do = 4 * maxvpos_nom * 50; + return ret; } STATIC_INLINE int is_audio_active(void) { - return audio_work_to_do; + return audio_work_to_do; } uae_u16 audio_dmal (void) { - uae_u16 dmal = 0; - for (int nr = 0; nr < 4; nr++) { - struct audio_channel_data *cdp = audio_channel + nr; - if (cdp->dr) - dmal |= 1 << (nr * 2); - if (cdp->dsr) - dmal |= 1 << (nr * 2 + 1); - cdp->dr = cdp->dsr = false; - } - return dmal; + uae_u16 dmal = 0; + for (int nr = 0; nr < 4; nr++) + { + struct audio_channel_data *cdp = audio_channel + nr; + if (cdp->dr) + dmal |= 1 << (nr * 2); + if (cdp->dsr) + dmal |= 1 << (nr * 2 + 1); + cdp->dr = cdp->dsr = false; + } + return dmal; } static int isirq (int nr) { - return INTREQR() & (0x80 << nr); + return INTREQR() & (0x80 << nr); } static void setirq (int nr, int which) { - INTREQ_0 (0x8000 | (0x80 << nr)); + INTREQ_0 (0x8000 | (0x80 << nr)); } static void newsample (int nr, sample8_t sample) { - struct audio_channel_data *cdp = audio_channel + nr; - cdp->last_sample = cdp->current_sample; - cdp->current_sample = sample; -} + struct audio_channel_data *cdp = audio_channel + nr; + cdp->last_sample = cdp->current_sample; + cdp->current_sample = sample; +} STATIC_INLINE void setdr (int nr) { - struct audio_channel_data *cdp = audio_channel + nr; - cdp->dr = true; - if (cdp->wlen == 1) { - cdp->dsr = true; - } + struct audio_channel_data *cdp = audio_channel + nr; + cdp->dr = true; + if (cdp->wlen == 1) + { + cdp->dsr = true; + } } static void loaddat (int nr, bool modper) { - struct audio_channel_data *cdp = audio_channel + nr; - int audav = adkcon & (0x01 << nr); - int audap = adkcon & (0x10 << nr); - if (audav || (modper && audap)) { - if (nr >= 3) - return; - if (modper && audap) { - if (cdp->dat == 0) - cdp[1].per = PERIOD_MAX; - else if (cdp->dat > PERIOD_MIN) - cdp[1].per = cdp->dat * CYCLE_UNIT; - else - cdp[1].per = PERIOD_MIN * CYCLE_UNIT; - } else if (audav) { - cdp[1].vol = cdp->dat; - cdp[1].vol &= 127; - if (cdp[1].vol > 64) - cdp[1].vol = 64; - } - } else { - cdp->dat2 = cdp->dat; - } + struct audio_channel_data *cdp = audio_channel + nr; + int audav = adkcon & (0x01 << nr); + int audap = adkcon & (0x10 << nr); + if (audav || (modper && audap)) + { + if (nr >= 3) + return; + if (modper && audap) + { + if (cdp->dat == 0) + cdp[1].per = PERIOD_MAX; + else if (cdp->dat > PERIOD_MIN) + cdp[1].per = cdp->dat * CYCLE_UNIT; + else + cdp[1].per = PERIOD_MIN * CYCLE_UNIT; + } + else if (audav) + { + cdp[1].vol = cdp->dat; + cdp[1].vol &= 127; + if (cdp[1].vol > 64) + cdp[1].vol = 64; + } + } + else + { + cdp->dat2 = cdp->dat; + } } static void loaddat (int nr) { - loaddat (nr, false); + loaddat (nr, false); } STATIC_INLINE void loadper (int nr) { - struct audio_channel_data *cdp = audio_channel + nr; + struct audio_channel_data *cdp = audio_channel + nr; - cdp->evtime = cdp->per; - if (cdp->evtime < CYCLE_UNIT) - write_log (_T("LOADPER%d bug %d\n"), nr, cdp->evtime); + cdp->evtime = cdp->per; + if (cdp->evtime < CYCLE_UNIT) + write_log (_T("LOADPER%d bug %d\n"), nr, cdp->evtime); } static void audio_state_channel2 (int nr, bool perfin) { - struct audio_channel_data *cdp = audio_channel + nr; - bool chan_ena = (dmacon & DMA_MASTER) && (dmacon & (1 << nr)); - bool old_dma = cdp->dmaenstore; - int audav = adkcon & (0x01 << nr); - int audap = adkcon & (0x10 << nr); - int napnav = (!audav && !audap) || audav; - int hpos = current_hpos (); + struct audio_channel_data *cdp = audio_channel + nr; + bool chan_ena = (dmacon & DMA_MASTER) && (dmacon & (1 << nr)); + bool old_dma = cdp->dmaenstore; + int audav = adkcon & (0x01 << nr); + int audap = adkcon & (0x10 << nr); + int napnav = (!audav && !audap) || audav; + int hpos = current_hpos (); - cdp->dmaenstore = chan_ena; + cdp->dmaenstore = chan_ena; - if (currprefs.produce_sound == 0) { - zerostate (nr); - return; - } - audio_activate (); + if (currprefs.produce_sound == 0) + { + zerostate (nr); + return; + } + audio_activate (); - if ((cdp->state == 2 || cdp->state == 3) && usehacks1 () && !chan_ena && old_dma) { - // DMA switched off, state=2/3 and "too fast CPU": kill DMA instantly - // or CPU timed DMA wait routines in common tracker players will lose notes - newsample (nr, (cdp->dat2 >> 0) & 0xff); - if (napnav) - setirq (nr, 91); - zerostate (nr); - return; - } + if ((cdp->state == 2 || cdp->state == 3) && usehacks1 () && !chan_ena && old_dma) + { + // DMA switched off, state=2/3 and "too fast CPU": kill DMA instantly + // or CPU timed DMA wait routines in common tracker players will lose notes + newsample (nr, (cdp->dat2 >> 0) & 0xff); + if (napnav) + setirq (nr, 91); + zerostate (nr); + return; + } - switch (cdp->state) - { - case 0: - if (chan_ena) { - cdp->evtime = MAX_EV; - cdp->state = 1; - cdp->dr = true; - cdp->wlen = cdp->len; - cdp->ptx_written = false; - /* Some programs first start short empty sample and then later switch to - * real sample, we must not enable the hack in this case - */ - if (cdp->wlen > 2) - cdp->ptx_tofetch = true; - cdp->dsr = true; - } else if (cdp->dat_written && !isirq (nr)) { - cdp->state = 2; - setirq (nr, 0); - loaddat (nr); - if (usehacks1 () && cdp->per < 10 * CYCLE_UNIT) { - // make sure audio.device AUDxDAT startup returns to idle state before DMA is enabled - newsample (nr, (cdp->dat2 >> 0) & 0xff); - zerostate (nr); - } else { - cdp->pbufldl = true; - audio_state_channel2 (nr, false); - } - } else { - zerostate (nr); - } - break; - case 1: - cdp->evtime = MAX_EV; - if (!chan_ena) { - zerostate (nr); - return; - } - if (!cdp->dat_written) - return; - setirq (nr, 10); - setdr (nr); - if (cdp->wlen != 1) - cdp->wlen = (cdp->wlen - 1) & 0xffff; - cdp->state = 5; - break; - case 5: - cdp->evtime = MAX_EV; - if (!chan_ena) { - zerostate (nr); - return; - } - if (!cdp->dat_written) - return; - if (cdp->ptx_written) { - cdp->ptx_written = 0; - cdp->lc = cdp->ptx; - } - loaddat (nr); - if (napnav) - setdr (nr); - cdp->state = 2; - loadper (nr); - cdp->pbufldl = true; - cdp->intreq2 = 0; - audio_state_channel2 (nr, false); - break; - case 2: - if (cdp->pbufldl) { - newsample (nr, (cdp->dat2 >> 8) & 0xff); - loadper (nr); - cdp->pbufldl = false; - } - if (!perfin) - return; - if (audap) - loaddat (nr, true); - if (chan_ena) { - if (audap) - setdr (nr); - if (cdp->intreq2 && audap) - setirq (nr, 21); - } else { - if (audap) - setirq (nr, 22); - } - cdp->pbufldl = true; - cdp->state = 3; - audio_state_channel2 (nr, false); - break; - case 3: - if (cdp->pbufldl) { - newsample (nr, (cdp->dat2 >> 0) & 0xff); - loadper (nr); - cdp->pbufldl = false; - } - if (!perfin) - return; - if (chan_ena) { - loaddat (nr); - if (cdp->intreq2 && napnav) - setirq (nr, 31); - if (napnav) - setdr (nr); - } else { - if (isirq (nr)) { - zerostate (nr); - return; - } - loaddat (nr); - if (napnav) - setirq (nr, 32); - } - cdp->intreq2 = 0; - cdp->pbufldl = true; - cdp->state = 2; - audio_state_channel2 (nr, false); - break; - } + switch (cdp->state) + { + case 0: + if (chan_ena) + { + cdp->evtime = MAX_EV; + cdp->state = 1; + cdp->dr = true; + cdp->wlen = cdp->len; + cdp->ptx_written = false; + /* Some programs first start short empty sample and then later switch to + * real sample, we must not enable the hack in this case + */ + if (cdp->wlen > 2) + cdp->ptx_tofetch = true; + cdp->dsr = true; + } + else if (cdp->dat_written && !isirq (nr)) + { + cdp->state = 2; + setirq (nr, 0); + loaddat (nr); + if (usehacks1 () && cdp->per < 10 * CYCLE_UNIT) + { + // make sure audio.device AUDxDAT startup returns to idle state before DMA is enabled + newsample (nr, (cdp->dat2 >> 0) & 0xff); + zerostate (nr); + } + else + { + cdp->pbufldl = true; + audio_state_channel2 (nr, false); + } + } + else + { + zerostate (nr); + } + break; + case 1: + cdp->evtime = MAX_EV; + if (!chan_ena) + { + zerostate (nr); + return; + } + if (!cdp->dat_written) + return; + setirq (nr, 10); + setdr (nr); + if (cdp->wlen != 1) + cdp->wlen = (cdp->wlen - 1) & 0xffff; + cdp->state = 5; + break; + case 5: + cdp->evtime = MAX_EV; + if (!chan_ena) + { + zerostate (nr); + return; + } + if (!cdp->dat_written) + return; + if (cdp->ptx_written) + { + cdp->ptx_written = 0; + cdp->lc = cdp->ptx; + } + loaddat (nr); + if (napnav) + setdr (nr); + cdp->state = 2; + loadper (nr); + cdp->pbufldl = true; + cdp->intreq2 = 0; + audio_state_channel2 (nr, false); + break; + case 2: + if (cdp->pbufldl) + { + newsample (nr, (cdp->dat2 >> 8) & 0xff); + loadper (nr); + cdp->pbufldl = false; + } + if (!perfin) + return; + if (audap) + loaddat (nr, true); + if (chan_ena) + { + if (audap) + setdr (nr); + if (cdp->intreq2 && audap) + setirq (nr, 21); + } + else + { + if (audap) + setirq (nr, 22); + } + cdp->pbufldl = true; + cdp->state = 3; + audio_state_channel2 (nr, false); + break; + case 3: + if (cdp->pbufldl) + { + newsample (nr, (cdp->dat2 >> 0) & 0xff); + loadper (nr); + cdp->pbufldl = false; + } + if (!perfin) + return; + if (chan_ena) + { + loaddat (nr); + if (cdp->intreq2 && napnav) + setirq (nr, 31); + if (napnav) + setdr (nr); + } + else + { + if (isirq (nr)) + { + zerostate (nr); + return; + } + loaddat (nr); + if (napnav) + setirq (nr, 32); + } + cdp->intreq2 = 0; + cdp->pbufldl = true; + cdp->state = 2; + audio_state_channel2 (nr, false); + break; + } } static void audio_state_channel (int nr, bool perfin) { - struct audio_channel_data *cdp = audio_channel + nr; - audio_state_channel2 (nr, perfin); - cdp->dat_written = false; + struct audio_channel_data *cdp = audio_channel + nr; + audio_state_channel2 (nr, perfin); + cdp->dat_written = false; } void audio_state_machine (void) { - update_audio (); - for (int nr = 0; nr < 4; nr++) { - struct audio_channel_data *cdp = audio_channel + nr; - audio_state_channel2 (nr, false); - cdp->dat_written = false; - } - schedule_audio (); - events_schedule (); + update_audio (); + for (int nr = 0; nr < 4; nr++) + { + struct audio_channel_data *cdp = audio_channel + nr; + audio_state_channel2 (nr, false); + cdp->dat_written = false; + } + schedule_audio (); + events_schedule (); } void audio_reset (void) { - int i; - struct audio_channel_data *cdp; + int i; + struct audio_channel_data *cdp; - reset_sound (); - memset(sound_filter_state, 0, sizeof sound_filter_state); - if (!isrestore ()) { - for (i = 0; i < 4; i++) { - cdp = &audio_channel[i]; - memset (cdp, 0, sizeof *audio_channel); - cdp->per = PERIOD_MAX - 1; - cdp->vol = 0; - cdp->evtime = MAX_EV; + reset_sound (); + memset(sound_filter_state, 0, sizeof sound_filter_state); + if (!isrestore ()) + { + for (i = 0; i < 4; i++) + { + cdp = &audio_channel[i]; + memset (cdp, 0, sizeof *audio_channel); + cdp->per = PERIOD_MAX - 1; + cdp->vol = 0; + cdp->evtime = MAX_EV; + } } - } - last_cycles = get_cycles (); - next_sample_evtime = scaled_sample_evtime; + last_cycles = get_cycles (); + next_sample_evtime = scaled_sample_evtime; - schedule_audio (); - events_schedule (); + schedule_audio (); + events_schedule (); } static int sound_prefs_changed (void) { - if (changed_prefs.produce_sound != currprefs.produce_sound - || changed_prefs.sound_stereo != currprefs.sound_stereo - || changed_prefs.sound_freq != currprefs.sound_freq) - return 1; + if (changed_prefs.produce_sound != currprefs.produce_sound + || changed_prefs.sound_stereo != currprefs.sound_stereo + || changed_prefs.sound_freq != currprefs.sound_freq) + return 1; - if (changed_prefs.sound_stereo_separation != currprefs.sound_stereo_separation - || changed_prefs.sound_mixed_stereo_delay != currprefs.sound_mixed_stereo_delay - || changed_prefs.sound_interpol != currprefs.sound_interpol - || changed_prefs.sound_filter != currprefs.sound_filter - || changed_prefs.sound_filter_type != currprefs.sound_filter_type) - return -1; - return 0; + if (changed_prefs.sound_stereo_separation != currprefs.sound_stereo_separation + || changed_prefs.sound_mixed_stereo_delay != currprefs.sound_mixed_stereo_delay + || changed_prefs.sound_interpol != currprefs.sound_interpol + || changed_prefs.sound_filter != currprefs.sound_filter + || changed_prefs.sound_filter_type != currprefs.sound_filter_type) + return -1; + return 0; } /* This computes the 1st order low-pass filter term b0. @@ -1071,449 +1128,502 @@ static int sound_prefs_changed (void) #endif static float rc_calculate_a0(int sample_rate, int cutoff_freq) { - float omega; - /* The BLT correction formula below blows up if the cutoff is above nyquist. */ - if (cutoff_freq >= sample_rate / 2) - return 1.0; + float omega; + /* The BLT correction formula below blows up if the cutoff is above nyquist. */ + if (cutoff_freq >= sample_rate / 2) + return 1.0; - omega = 2 * M_PI * cutoff_freq / sample_rate; - /* Compensate for the bilinear transformation. This allows us to specify the - * stop frequency more exactly, but the filter becomes less steep further - * from stopband. */ - omega = tan(omega / 2) * 2; - return 1 / (1 + 1 / omega); + omega = 2 * M_PI * cutoff_freq / sample_rate; + /* Compensate for the bilinear transformation. This allows us to specify the + * stop frequency more exactly, but the filter becomes less steep further + * from stopband. */ + omega = tan(omega / 2) * 2; + return 1 / (1 + 1 / omega); } void check_prefs_changed_audio (void) { - int ch; + int ch; - if (sound_available) { - ch = sound_prefs_changed (); - if (ch > 0) { - clear_sound_buffers (); - } - if (ch) { - set_audio (); - audio_activate (); - } - } + if (sound_available) + { + ch = sound_prefs_changed (); + if (ch > 0) + { + clear_sound_buffers (); + } + if (ch) + { + set_audio (); + audio_activate (); + } + } } void set_audio(void) { - int old_mixed_size = mixed_stereo_size; - int sep, delay; - int ch; + int old_mixed_size = mixed_stereo_size; + int sep, delay; + int ch; - ch = sound_prefs_changed (); - if (ch >= 0) - close_sound (); + ch = sound_prefs_changed (); + if (ch >= 0) + close_sound (); - currprefs.produce_sound = changed_prefs.produce_sound; - currprefs.sound_stereo = changed_prefs.sound_stereo; - currprefs.sound_freq = changed_prefs.sound_freq; + currprefs.produce_sound = changed_prefs.produce_sound; + currprefs.sound_stereo = changed_prefs.sound_stereo; + currprefs.sound_freq = changed_prefs.sound_freq; - currprefs.sound_stereo_separation = changed_prefs.sound_stereo_separation; - currprefs.sound_mixed_stereo_delay = changed_prefs.sound_mixed_stereo_delay; - currprefs.sound_interpol = changed_prefs.sound_interpol; - currprefs.sound_filter = changed_prefs.sound_filter; - currprefs.sound_filter_type = changed_prefs.sound_filter_type; + currprefs.sound_stereo_separation = changed_prefs.sound_stereo_separation; + currprefs.sound_mixed_stereo_delay = changed_prefs.sound_mixed_stereo_delay; + currprefs.sound_interpol = changed_prefs.sound_interpol; + currprefs.sound_filter = changed_prefs.sound_filter; + currprefs.sound_filter_type = changed_prefs.sound_filter_type; - if (ch >= 0) { - if (currprefs.produce_sound >= 2) { - if (!init_audio ()) { - if (! sound_available) { - write_log (_T("Sound is not supported.\n")); - } else { - write_log (_T("Sorry, can't initialize sound.\n")); - currprefs.produce_sound = 1; - /* So we don't do this every frame */ - changed_prefs.produce_sound = 1; - } - } - } - next_sample_evtime = scaled_sample_evtime; - last_cycles = get_cycles (); - compute_vsynctime (); - } else { - sound_volume (0); - } - - sep = (currprefs.sound_stereo_separation = changed_prefs.sound_stereo_separation) * 3 / 2; - if (sep >= 15) - sep = 16; - delay = currprefs.sound_mixed_stereo_delay = changed_prefs.sound_mixed_stereo_delay; - mixed_mul1 = MIXED_STEREO_SCALE / 2 - sep; - mixed_mul2 = MIXED_STEREO_SCALE / 2 + sep; - mixed_stereo_size = delay > 0 ? (1 << delay) - 1 : 0; - mixed_on = sep < MIXED_STEREO_MAX || mixed_stereo_size > 0; - if (mixed_on && old_mixed_size != mixed_stereo_size) { - saved_ptr = 0; - memset (right_word_saved, 0, sizeof right_word_saved); - } - - led_filter_forced = -1; // always off - sound_use_filter = sound_use_filter_sinc = 0; - if (currprefs.sound_filter) { - if (currprefs.sound_filter == FILTER_SOUND_ON) - led_filter_forced = 1; - if (currprefs.sound_filter == FILTER_SOUND_EMUL) - led_filter_forced = 0; - if (currprefs.sound_filter_type == FILTER_SOUND_TYPE_A500) - sound_use_filter = FILTER_MODEL_A500; - else if (currprefs.sound_filter_type == FILTER_SOUND_TYPE_A1200) - sound_use_filter = FILTER_MODEL_A1200; - } - a500e_filter1_a0 = rc_calculate_a0(currprefs.sound_freq, 6200); - a500e_filter2_a0 = rc_calculate_a0(currprefs.sound_freq, 20000); - filter_a0 = rc_calculate_a0(currprefs.sound_freq, 7000); - led_filter_audio(); - - /* Select the right interpolation method. */ - if (sample_handler == sample16_handler - || sample_handler == sample16i_crux_handler - || sample_handler == sample16i_rh_handler - || sample_handler == sample16i_sinc_handler - || sample_handler == sample16i_anti_handler) - { - sample_handler = (currprefs.sound_interpol == 0 ? sample16_handler - : currprefs.sound_interpol == 3 ? sample16i_rh_handler - : currprefs.sound_interpol == 4 ? sample16i_crux_handler - : currprefs.sound_interpol == 2 ? sample16i_sinc_handler - : sample16i_anti_handler); - } else if (sample_handler == sample16s_handler - || sample_handler == sample16si_crux_handler - || sample_handler == sample16si_rh_handler - || sample_handler == sample16si_sinc_handler - || sample_handler == sample16si_anti_handler) - { - sample_handler = (currprefs.sound_interpol == 0 ? sample16s_handler - : currprefs.sound_interpol == 3 ? sample16si_rh_handler - : currprefs.sound_interpol == 4 ? sample16si_crux_handler - : currprefs.sound_interpol == 2 ? sample16si_sinc_handler - : sample16si_anti_handler); - } - sample_prehandler = NULL; - if (sample_handler == sample16si_sinc_handler || sample_handler == sample16i_sinc_handler) { - sample_prehandler = sinc_prehandler; - sound_use_filter_sinc = sound_use_filter; - sound_use_filter = 0; - } else if (sample_handler == sample16si_anti_handler || sample_handler == sample16i_anti_handler) { - sample_prehandler = anti_prehandler; - } - - if(currprefs.sound_stereo) { - if(currprefs.sound_filter) { - if(mixed_on) - put_sound_word_stereo_func = put_sound_word_stereo_func_filter_mixed; - else - put_sound_word_stereo_func = put_sound_word_stereo_func_filter_notmixed; + if (ch >= 0) + { + if (currprefs.produce_sound >= 2) + { + if (!init_audio ()) + { + if (! sound_available) + { + write_log (_T("Sound is not supported.\n")); + } + else + { + write_log (_T("Sorry, can't initialize sound.\n")); + currprefs.produce_sound = 1; + /* So we don't do this every frame */ + changed_prefs.produce_sound = 1; + } + } + } + next_sample_evtime = scaled_sample_evtime; + last_cycles = get_cycles (); + compute_vsynctime (); } - else { - if(mixed_on) - put_sound_word_stereo_func = put_sound_word_stereo_func_nofilter_mixed; - else - put_sound_word_stereo_func = put_sound_word_stereo_func_nofilter_notmixed; + else + { + sound_volume (0); } - } - else { - if(currprefs.sound_filter) { - put_sound_word_mono_func = put_sound_word_mono_func_filter; + + sep = (currprefs.sound_stereo_separation = changed_prefs.sound_stereo_separation) * 3 / 2; + if (sep >= 15) + sep = 16; + delay = currprefs.sound_mixed_stereo_delay = changed_prefs.sound_mixed_stereo_delay; + mixed_mul1 = MIXED_STEREO_SCALE / 2 - sep; + mixed_mul2 = MIXED_STEREO_SCALE / 2 + sep; + mixed_stereo_size = delay > 0 ? (1 << delay) - 1 : 0; + mixed_on = sep < MIXED_STEREO_MAX || mixed_stereo_size > 0; + if (mixed_on && old_mixed_size != mixed_stereo_size) + { + saved_ptr = 0; + memset (right_word_saved, 0, sizeof right_word_saved); } - else { - put_sound_word_mono_func = put_sound_word_mono_func_nofilter; + + led_filter_forced = -1; // always off + sound_use_filter = sound_use_filter_sinc = 0; + if (currprefs.sound_filter) + { + if (currprefs.sound_filter == FILTER_SOUND_ON) + led_filter_forced = 1; + if (currprefs.sound_filter == FILTER_SOUND_EMUL) + led_filter_forced = 0; + if (currprefs.sound_filter_type == FILTER_SOUND_TYPE_A500) + sound_use_filter = FILTER_MODEL_A500; + else if (currprefs.sound_filter_type == FILTER_SOUND_TYPE_A1200) + sound_use_filter = FILTER_MODEL_A1200; + } + a500e_filter1_a0 = rc_calculate_a0(currprefs.sound_freq, 6200); + a500e_filter2_a0 = rc_calculate_a0(currprefs.sound_freq, 20000); + filter_a0 = rc_calculate_a0(currprefs.sound_freq, 7000); + led_filter_audio(); + + /* Select the right interpolation method. */ + if (sample_handler == sample16_handler + || sample_handler == sample16i_crux_handler + || sample_handler == sample16i_rh_handler + || sample_handler == sample16i_sinc_handler + || sample_handler == sample16i_anti_handler) + { + sample_handler = (currprefs.sound_interpol == 0 ? sample16_handler + : currprefs.sound_interpol == 3 ? sample16i_rh_handler + : currprefs.sound_interpol == 4 ? sample16i_crux_handler + : currprefs.sound_interpol == 2 ? sample16i_sinc_handler + : sample16i_anti_handler); + } + else if (sample_handler == sample16s_handler + || sample_handler == sample16si_crux_handler + || sample_handler == sample16si_rh_handler + || sample_handler == sample16si_sinc_handler + || sample_handler == sample16si_anti_handler) + { + sample_handler = (currprefs.sound_interpol == 0 ? sample16s_handler + : currprefs.sound_interpol == 3 ? sample16si_rh_handler + : currprefs.sound_interpol == 4 ? sample16si_crux_handler + : currprefs.sound_interpol == 2 ? sample16si_sinc_handler + : sample16si_anti_handler); + } + sample_prehandler = NULL; + if (sample_handler == sample16si_sinc_handler || sample_handler == sample16i_sinc_handler) + { + sample_prehandler = sinc_prehandler; + sound_use_filter_sinc = sound_use_filter; + sound_use_filter = 0; + } + else if (sample_handler == sample16si_anti_handler || sample_handler == sample16i_anti_handler) + { + sample_prehandler = anti_prehandler; + } + + if(currprefs.sound_stereo) + { + if(currprefs.sound_filter) + { + if(mixed_on) + put_sound_word_stereo_func = put_sound_word_stereo_func_filter_mixed; + else + put_sound_word_stereo_func = put_sound_word_stereo_func_filter_notmixed; + } + else + { + if(mixed_on) + put_sound_word_stereo_func = put_sound_word_stereo_func_nofilter_mixed; + else + put_sound_word_stereo_func = put_sound_word_stereo_func_nofilter_notmixed; + } + } + else + { + if(currprefs.sound_filter) + { + put_sound_word_mono_func = put_sound_word_mono_func_filter; + } + else + { + put_sound_word_mono_func = put_sound_word_mono_func_nofilter; + } + } + + if (currprefs.produce_sound == 0) + { + eventtab[ev_audio].active = 0; + events_schedule (); + } + else + { + audio_activate (); + schedule_audio (); + events_schedule (); } - } - - if (currprefs.produce_sound == 0) { - eventtab[ev_audio].active = 0; - events_schedule (); - } else { - audio_activate (); - schedule_audio (); - events_schedule (); - } } void update_audio (void) { - unsigned long int n_cycles = 0; + unsigned long int n_cycles = 0; - if (!isaudio()) - goto end; - if (isrestore ()) - goto end; - if (!is_audio_active()) - goto end; + if (!isaudio()) + goto end; + if (isrestore ()) + goto end; + if (!is_audio_active()) + goto end; - n_cycles = get_cycles () - last_cycles; - while (n_cycles > 0) { - unsigned long int best_evtime = n_cycles; - unsigned long rounded; - int i; + n_cycles = get_cycles () - last_cycles; + while (n_cycles > 0) + { + unsigned long int best_evtime = n_cycles; + unsigned long rounded; + int i; - for (i = 0; i < 4; i++) { - if (audio_channel[i].evtime != MAX_EV && best_evtime > audio_channel[i].evtime) - best_evtime = audio_channel[i].evtime; - } + for (i = 0; i < 4; i++) + { + if (audio_channel[i].evtime != MAX_EV && best_evtime > audio_channel[i].evtime) + best_evtime = audio_channel[i].evtime; + } - rounded = next_sample_evtime; + rounded = next_sample_evtime; - if (currprefs.produce_sound > 1 && best_evtime > rounded) - best_evtime = rounded; - - /* Decrease time-to-wait counters */ - next_sample_evtime -= best_evtime; + if (currprefs.produce_sound > 1 && best_evtime > rounded) + best_evtime = rounded; - if (sample_prehandler && (currprefs.produce_sound > 1)) { - sample_prehandler(best_evtime / CYCLE_UNIT); + /* Decrease time-to-wait counters */ + next_sample_evtime -= best_evtime; + + if (sample_prehandler && (currprefs.produce_sound > 1)) + { + sample_prehandler(best_evtime / CYCLE_UNIT); + } + + for (i = 0; i < 4; i++) + { + if (audio_channel[i].evtime != MAX_EV) + audio_channel[i].evtime -= best_evtime; + } + + n_cycles -= best_evtime; + + /* Test if new sample needs to be outputted */ + if ((rounded == best_evtime) && (currprefs.produce_sound > 1)) + { + next_sample_evtime += scaled_sample_evtime; + (*sample_handler) (); + } + + for (i = 0; i < 4; i++) + { + if (audio_channel[i].evtime == 0) + { + audio_state_channel (i, true); + if (audio_channel[i].evtime == 0) + { + write_log (_T("evtime==0 sound bug channel %d\n"), i); + audio_channel[i].evtime = MAX_EV; + } + } + } } - - for (i = 0; i < 4; i++) { - if (audio_channel[i].evtime != MAX_EV) - audio_channel[i].evtime -= best_evtime; - } - - n_cycles -= best_evtime; - - /* Test if new sample needs to be outputted */ - if ((rounded == best_evtime) && (currprefs.produce_sound > 1)) { - next_sample_evtime += scaled_sample_evtime; - (*sample_handler) (); - } - - for (i = 0; i < 4; i++) { - if (audio_channel[i].evtime == 0) { - audio_state_channel (i, true); - if (audio_channel[i].evtime == 0) { - write_log (_T("evtime==0 sound bug channel %d\n"), i); - audio_channel[i].evtime = MAX_EV; - } - } - } - } end: - last_cycles = get_cycles () - n_cycles; + last_cycles = get_cycles () - n_cycles; } void audio_evhandler (void) { - update_audio (); - schedule_audio (); + update_audio (); + schedule_audio (); } void audio_hsync (void) { - if (!isaudio()) - return; - if (audio_work_to_do > 0) { - audio_work_to_do--; - if (audio_work_to_do == 0) - audio_deactivate(); - } + if (!isaudio()) + return; + if (audio_work_to_do > 0) + { + audio_work_to_do--; + if (audio_work_to_do == 0) + audio_deactivate(); + } - update_audio(); + update_audio(); } void AUDxDAT (int nr, uae_u16 v) { - struct audio_channel_data *cdp = audio_channel + nr; - int chan_ena = (dmacon & DMA_MASTER) && (dmacon & (1 << nr)); + struct audio_channel_data *cdp = audio_channel + nr; + int chan_ena = (dmacon & DMA_MASTER) && (dmacon & (1 << nr)); - cdp->dat = v; - cdp->dat_written = true; - if (cdp->state == 2 || cdp->state == 3) { - if (chan_ena) { - if (cdp->wlen == 1) { - cdp->wlen = cdp->len; - cdp->intreq2 = true; - } else { - cdp->wlen = (cdp->wlen - 1) & 0xffff; - } - } - } else { - audio_activate (); - update_audio (); - audio_state_channel (nr, false); - schedule_audio (); - events_schedule (); - } - cdp->dat_written = false; + cdp->dat = v; + cdp->dat_written = true; + if (cdp->state == 2 || cdp->state == 3) + { + if (chan_ena) + { + if (cdp->wlen == 1) + { + cdp->wlen = cdp->len; + cdp->intreq2 = true; + } + else + { + cdp->wlen = (cdp->wlen - 1) & 0xffff; + } + } + } + else + { + audio_activate (); + update_audio (); + audio_state_channel (nr, false); + schedule_audio (); + events_schedule (); + } + cdp->dat_written = false; } void audio_dmal_do (int nr, bool reset) { - struct audio_channel_data *cdp = audio_channel + nr; - uae_u16 dat = chipmem_wget_indirect (cdp->pt); - cdp->pt += 2; - if (reset) - cdp->pt = cdp->lc; - cdp->ptx_tofetch = false; - AUDxDAT (nr, dat); + struct audio_channel_data *cdp = audio_channel + nr; + uae_u16 dat = chipmem_wget_indirect (cdp->pt); + cdp->pt += 2; + if (reset) + cdp->pt = cdp->lc; + cdp->ptx_tofetch = false; + AUDxDAT (nr, dat); } void AUDxLCH (int nr, uae_u16 v) { - struct audio_channel_data *cdp = audio_channel + nr; - audio_activate(); - update_audio (); - // someone wants to update PT but DSR has not yet been processed. - // too fast CPU and some tracker players: enable DMA, CPU delay, update AUDxPT with loop position - if (usehacks1 () && ((cdp->ptx_tofetch && cdp->state == 1) || cdp->ptx_written)) { - cdp->ptx = cdp->lc; - cdp->ptx_written = true; - } else { - cdp->lc = (cdp->lc & 0xffff) | ((uae_u32)v << 16); - } + struct audio_channel_data *cdp = audio_channel + nr; + audio_activate(); + update_audio (); + // someone wants to update PT but DSR has not yet been processed. + // too fast CPU and some tracker players: enable DMA, CPU delay, update AUDxPT with loop position + if (usehacks1 () && ((cdp->ptx_tofetch && cdp->state == 1) || cdp->ptx_written)) + { + cdp->ptx = cdp->lc; + cdp->ptx_written = true; + } + else + { + cdp->lc = (cdp->lc & 0xffff) | ((uae_u32)v << 16); + } } void AUDxLCL (int nr, uae_u16 v) { - struct audio_channel_data *cdp = audio_channel + nr; - audio_activate(); - update_audio (); - if (usehacks1 () && ((cdp->ptx_tofetch && cdp->state == 1) || cdp->ptx_written)) { - cdp->ptx = cdp->lc; - cdp->ptx_written = true; - } else { - cdp->lc = (cdp->lc & ~0xffff) | (v & 0xFFFE); - } + struct audio_channel_data *cdp = audio_channel + nr; + audio_activate(); + update_audio (); + if (usehacks1 () && ((cdp->ptx_tofetch && cdp->state == 1) || cdp->ptx_written)) + { + cdp->ptx = cdp->lc; + cdp->ptx_written = true; + } + else + { + cdp->lc = (cdp->lc & ~0xffff) | (v & 0xFFFE); + } } void AUDxPER (int nr, uae_u16 v) { - struct audio_channel_data *cdp = audio_channel + nr; - unsigned long per; + struct audio_channel_data *cdp = audio_channel + nr; + unsigned long per; - audio_activate(); - update_audio (); + audio_activate(); + update_audio (); - per = v * CYCLE_UNIT; - if (per == 0) - per = PERIOD_MAX - 1; + per = v * CYCLE_UNIT; + if (per == 0) + per = PERIOD_MAX - 1; - if (per < PERIOD_MIN * CYCLE_UNIT) { - /* smaller values would cause extremely high cpu usage */ - per = PERIOD_MIN * CYCLE_UNIT; - } - if (per < PERIOD_MIN_NONCE * CYCLE_UNIT && cdp->dmaenstore) { - /* DMAL emulation and low period can cause very very high cpu usage on slow performance PCs - * Only do this hack if audio DMA is active. - */ - per = PERIOD_MIN_NONCE * CYCLE_UNIT; - } + if (per < PERIOD_MIN * CYCLE_UNIT) + { + /* smaller values would cause extremely high cpu usage */ + per = PERIOD_MIN * CYCLE_UNIT; + } + if (per < PERIOD_MIN_NONCE * CYCLE_UNIT && cdp->dmaenstore) + { + /* DMAL emulation and low period can cause very very high cpu usage on slow performance PCs + * Only do this hack if audio DMA is active. + */ + per = PERIOD_MIN_NONCE * CYCLE_UNIT; + } - if (cdp->per == PERIOD_MAX - 1 && per != PERIOD_MAX - 1) { - cdp->evtime = CYCLE_UNIT; - if (isaudio()) { - schedule_audio (); - events_schedule (); - } - } - cdp->per = per; + if (cdp->per == PERIOD_MAX - 1 && per != PERIOD_MAX - 1) + { + cdp->evtime = CYCLE_UNIT; + if (isaudio()) + { + schedule_audio (); + events_schedule (); + } + } + cdp->per = per; } void AUDxLEN (int nr, uae_u16 v) { - struct audio_channel_data *cdp = audio_channel + nr; - audio_activate(); - update_audio (); - cdp->len = v; + struct audio_channel_data *cdp = audio_channel + nr; + audio_activate(); + update_audio (); + cdp->len = v; } void AUDxVOL (int nr, uae_u16 v) { - struct audio_channel_data *cdp = audio_channel + nr; - // 7 bit register in Paula. - v &= 127; - if (v > 64) - v = 64; - audio_activate(); - update_audio (); - cdp->vol = v; + struct audio_channel_data *cdp = audio_channel + nr; + // 7 bit register in Paula. + v &= 127; + if (v > 64) + v = 64; + audio_activate(); + update_audio (); + cdp->vol = v; } void audio_update_adkmasks (void) { - static int prevcon = -1; - unsigned long t = adkcon | (adkcon >> 4); + static int prevcon = -1; + unsigned long t = adkcon | (adkcon >> 4); - audio_channel[0].adk_mask = (((t >> 0) & 1) - 1); - audio_channel[1].adk_mask = (((t >> 1) & 1) - 1); - audio_channel[2].adk_mask = (((t >> 2) & 1) - 1); - audio_channel[3].adk_mask = (((t >> 3) & 1) - 1); - if ((prevcon & 0xff) != (adkcon & 0xff)) { - audio_activate(); - prevcon = adkcon; - } + audio_channel[0].adk_mask = (((t >> 0) & 1) - 1); + audio_channel[1].adk_mask = (((t >> 1) & 1) - 1); + audio_channel[2].adk_mask = (((t >> 2) & 1) - 1); + audio_channel[3].adk_mask = (((t >> 3) & 1) - 1); + if ((prevcon & 0xff) != (adkcon & 0xff)) + { + audio_activate(); + prevcon = adkcon; + } } int init_audio (void) { - return init_sound (); + return init_sound (); } void led_filter_audio (void) { - led_filter_on = 0; - if (led_filter_forced > 0 || (gui_data.powerled && led_filter_forced >= 0)) - led_filter_on = 1; + led_filter_on = 0; + if (led_filter_forced > 0 || (gui_data.powerled && led_filter_forced >= 0)) + led_filter_on = 1; } void restore_audio_finish (void) { - last_cycles = get_cycles (); - schedule_audio (); - events_schedule (); + last_cycles = get_cycles (); + schedule_audio (); + events_schedule (); } uae_u8 *restore_audio (int nr, uae_u8 *src) { - struct audio_channel_data *acd = audio_channel + nr; + struct audio_channel_data *acd = audio_channel + nr; - zerostate (nr); - acd->state = restore_u8 (); - acd->vol = restore_u8 (); - acd->intreq2 = restore_u8 () ? true : false; - uae_u8 flags = restore_u8 (); - acd->dr = acd->dsr = false; - if (flags & 1) - acd->dr = true; - if (flags & 2) - acd->dsr = true; - acd->len = restore_u16 (); - acd->wlen = restore_u16 (); - uae_u16 p = restore_u16 (); - acd->per = p ? p * CYCLE_UNIT : PERIOD_MAX; - acd->dat = acd->dat2 = restore_u16 (); - acd->lc = restore_u32 (); - acd->pt = restore_u32 (); - acd->evtime = restore_u32 (); - acd->dmaenstore = (dmacon & DMA_MASTER) && (dmacon & (1 << nr)); - return src; + zerostate (nr); + acd->state = restore_u8 (); + acd->vol = restore_u8 (); + acd->intreq2 = restore_u8 () ? true : false; + uae_u8 flags = restore_u8 (); + acd->dr = acd->dsr = false; + if (flags & 1) + acd->dr = true; + if (flags & 2) + acd->dsr = true; + acd->len = restore_u16 (); + acd->wlen = restore_u16 (); + uae_u16 p = restore_u16 (); + acd->per = p ? p * CYCLE_UNIT : PERIOD_MAX; + acd->dat = acd->dat2 = restore_u16 (); + acd->lc = restore_u32 (); + acd->pt = restore_u32 (); + acd->evtime = restore_u32 (); + acd->dmaenstore = (dmacon & DMA_MASTER) && (dmacon & (1 << nr)); + return src; } uae_u8 *save_audio (int nr, int *len, uae_u8 *dstptr) { - struct audio_channel_data *acd = audio_channel + nr; - uae_u8 *dst, *dstbak; + struct audio_channel_data *acd = audio_channel + nr; + uae_u8 *dst, *dstbak; - if (dstptr) - dstbak = dst = dstptr; - else - dstbak = dst = xmalloc (uae_u8, 100); - save_u8 (acd->state); - save_u8 (acd->vol); - save_u8 (acd->intreq2); - save_u8 ((acd->dr ? 1 : 0) | (acd->dsr ? 2 : 0)); - save_u16 (acd->len); - save_u16 (acd->wlen); - save_u16 (acd->per == PERIOD_MAX ? 0 : acd->per / CYCLE_UNIT); - save_u16 (acd->dat); - save_u32 (acd->lc); - save_u32 (acd->pt); - save_u32 (acd->evtime); - *len = dst - dstbak; - return dstbak; + if (dstptr) + dstbak = dst = dstptr; + else + dstbak = dst = xmalloc (uae_u8, 100); + save_u8 (acd->state); + save_u8 (acd->vol); + save_u8 (acd->intreq2); + save_u8 ((acd->dr ? 1 : 0) | (acd->dsr ? 2 : 0)); + save_u16 (acd->len); + save_u16 (acd->wlen); + save_u16 (acd->per == PERIOD_MAX ? 0 : acd->per / CYCLE_UNIT); + save_u16 (acd->dat); + save_u32 (acd->lc); + save_u32 (acd->pt); + save_u32 (acd->evtime); + *len = dst - dstbak; + return dstbak; } diff --git a/src/autoconf.cpp b/src/autoconf.cpp index a8de7bd7..45c196f5 100644 --- a/src/autoconf.cpp +++ b/src/autoconf.cpp @@ -1,18 +1,18 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * AutoConfig devices - * - * Copyright 1995, 1996 Bernd Schmidt - * Copyright 1996 Ed Hanway - */ +/* + * UAE - The Un*x Amiga Emulator + * + * AutoConfig devices + * + * Copyright 1995, 1996 Bernd Schmidt + * Copyright 1996 Ed Hanway + */ #include "sysconfig.h" #include "sysdeps.h" #include "options.h" #include "uae.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "autoconf.h" @@ -39,50 +39,51 @@ static void REGPARAM3 rtarea_bput (uaecptr, uae_u32) REGPARAM; static uae_u8 *REGPARAM3 rtarea_xlate (uaecptr) REGPARAM; static int REGPARAM3 rtarea_check (uaecptr addr, uae_u32 size) REGPARAM; -addrbank rtarea_bank = { - rtarea_lget, rtarea_wget, rtarea_bget, - rtarea_lput, rtarea_wput, rtarea_bput, - rtarea_xlate, rtarea_check, NULL, _T("UAE Boot ROM"), - rtarea_lget, rtarea_wget, ABFLAG_ROMIN +addrbank rtarea_bank = +{ + rtarea_lget, rtarea_wget, rtarea_bget, + rtarea_lput, rtarea_wput, rtarea_bput, + rtarea_xlate, rtarea_check, NULL, _T("UAE Boot ROM"), + rtarea_lget, rtarea_wget, ABFLAG_ROMIN }; static uae_u8 *REGPARAM2 rtarea_xlate (uaecptr addr) { - addr &= 0xFFFF; - return rtarea + addr; + addr &= 0xFFFF; + return rtarea + addr; } static int REGPARAM2 rtarea_check (uaecptr addr, uae_u32 size) { - addr &= 0xFFFF; - return (addr + size) <= 0xFFFF; + addr &= 0xFFFF; + return (addr + size) <= 0xFFFF; } static uae_u32 REGPARAM2 rtarea_lget (uaecptr addr) { #ifdef JIT - special_mem |= S_READ; + special_mem |= S_READ; #endif - addr &= 0xFFFF; - return (uae_u32)(rtarea_wget (addr) << 16) + rtarea_wget (addr+2); + addr &= 0xFFFF; + return (uae_u32)(rtarea_wget (addr) << 16) + rtarea_wget (addr+2); } static uae_u32 REGPARAM2 rtarea_wget (uaecptr addr) { #ifdef JIT - special_mem |= S_READ; + special_mem |= S_READ; #endif - addr &= 0xFFFF; - return (rtarea[addr]<<8) + rtarea[addr+1]; + addr &= 0xFFFF; + return (rtarea[addr]<<8) + rtarea[addr+1]; } static uae_u32 REGPARAM2 rtarea_bget (uaecptr addr) { #ifdef JIT - special_mem |= S_READ; + special_mem |= S_READ; #endif - addr &= 0xFFFF; - return rtarea[addr]; + addr &= 0xFFFF; + return rtarea[addr]; } #define RTAREA_WRITEOFFSET 0xfff0 @@ -90,36 +91,36 @@ static uae_u32 REGPARAM2 rtarea_bget (uaecptr addr) static void REGPARAM2 rtarea_bput (uaecptr addr, uae_u32 value) { #ifdef JIT - special_mem |= S_WRITE; + special_mem |= S_WRITE; #endif - addr &= 0xffff; - if (addr < RTAREA_WRITEOFFSET) - return; - rtarea[addr] = value; + addr &= 0xffff; + if (addr < RTAREA_WRITEOFFSET) + return; + rtarea[addr] = value; } static void REGPARAM2 rtarea_wput (uaecptr addr, uae_u32 value) { #ifdef JIT - special_mem |= S_WRITE; + special_mem |= S_WRITE; #endif - addr &= 0xffff; - if (addr < RTAREA_WRITEOFFSET) - return; - rtarea_bput (addr, value >> 8); - rtarea_bput (addr + 1, value & 0xff); + addr &= 0xffff; + if (addr < RTAREA_WRITEOFFSET) + return; + rtarea_bput (addr, value >> 8); + rtarea_bput (addr + 1, value & 0xff); } static void REGPARAM2 rtarea_lput (uaecptr addr, uae_u32 value) { #ifdef JIT - special_mem |= S_WRITE; + special_mem |= S_WRITE; #endif - addr &= 0xffff; - if (addr < RTAREA_WRITEOFFSET) - return; - rtarea_wput (addr, value >> 16); - rtarea_wput (addr + 2, value & 0xffff); + addr &= 0xffff; + if (addr < RTAREA_WRITEOFFSET) + return; + rtarea_wput (addr, value >> 16); + rtarea_wput (addr + 2, value & 0xffff); } /* some quick & dirty code to fill in the rt area and save me a lot of @@ -131,32 +132,32 @@ static int rt_straddr; uae_u32 addr (int ptr) { - return (uae_u32)ptr + rtarea_base; + return (uae_u32)ptr + rtarea_base; } void db (uae_u8 data) { - rtarea[rt_addr++] = data; + rtarea[rt_addr++] = data; } void dw (uae_u16 data) { - rtarea[rt_addr++] = (uae_u8)(data >> 8); - rtarea[rt_addr++] = (uae_u8)data; + rtarea[rt_addr++] = (uae_u8)(data >> 8); + rtarea[rt_addr++] = (uae_u8)data; } void dl (uae_u32 data) { - rtarea[rt_addr++] = data >> 24; - rtarea[rt_addr++] = data >> 16; - rtarea[rt_addr++] = data >> 8; - rtarea[rt_addr++] = data; + rtarea[rt_addr++] = data >> 24; + rtarea[rt_addr++] = data >> 16; + rtarea[rt_addr++] = data >> 8; + rtarea[rt_addr++] = data; } uae_u8 dbg (uaecptr addr) { - addr -= rtarea_base; - return rtarea[addr]; + addr -= rtarea_base; + return rtarea[addr]; } /* store strings starting at the end of the rt area and working @@ -165,191 +166,194 @@ uae_u8 dbg (uaecptr addr) uae_u32 ds_ansi (const uae_char *str) { - int len; + int len; - if (!str) - return addr (rt_straddr); - len = strlen (str) + 1; - rt_straddr -= len; - strcpy ((uae_char*)rtarea + rt_straddr, str); - return addr (rt_straddr); + if (!str) + return addr (rt_straddr); + len = strlen (str) + 1; + rt_straddr -= len; + strcpy ((uae_char*)rtarea + rt_straddr, str); + return addr (rt_straddr); } uae_u32 ds (const TCHAR *str) { - char *s = ua (str); - uae_u32 v = ds_ansi (s); - xfree (s); - return v; + char *s = ua (str); + uae_u32 v = ds_ansi (s); + xfree (s); + return v; } uae_u32 ds_bstr_ansi (const uae_char *str) { - int len; - - len = strlen (str) + 2; - rt_straddr -= len; - while (rt_straddr & 3) - rt_straddr--; - rtarea[rt_straddr] = len - 2; - strcpy ((uae_char*)rtarea + rt_straddr + 1, str); - return addr (rt_straddr) >> 2; + int len; + + len = strlen (str) + 2; + rt_straddr -= len; + while (rt_straddr & 3) + rt_straddr--; + rtarea[rt_straddr] = len - 2; + strcpy ((uae_char*)rtarea + rt_straddr + 1, str); + return addr (rt_straddr) >> 2; } void calltrap (uae_u32 n) { - dw (0xA000 + n); + dw (0xA000 + n); } void org (uae_u32 a) { - if ( ((a & 0xffff0000) != 0x00f00000) && ((a & 0xffff0000) != rtarea_base) ) - write_log (_T("ORG: corrupt address! %08X"), a); - rt_addr = a & 0xffff; + if ( ((a & 0xffff0000) != 0x00f00000) && ((a & 0xffff0000) != rtarea_base) ) + write_log (_T("ORG: corrupt address! %08X"), a); + rt_addr = a & 0xffff; } uae_u32 here (void) { - return addr (rt_addr); + return addr (rt_addr); } void align (int b) { - rt_addr = (rt_addr + b - 1) & ~(b - 1); + rt_addr = (rt_addr + b - 1) & ~(b - 1); } static uae_u32 REGPARAM2 nullfunc(TrapContext *context) { - write_log (_T("Null function called\n")); - return 0; + write_log (_T("Null function called\n")); + return 0; } static uae_u32 REGPARAM2 getchipmemsize (TrapContext *context) { - m68k_dreg (regs, 1) = 0; - m68k_areg (regs, 1) = 0; - return allocated_chipmem; + m68k_dreg (regs, 1) = 0; + m68k_areg (regs, 1) = 0; + return allocated_chipmem; } static uae_u32 REGPARAM2 uae_puts (TrapContext *context) { - puts ((char *)get_real_address (m68k_areg (regs, 0))); - return 0; + puts ((char *)get_real_address (m68k_areg (regs, 0))); + return 0; } void rtarea_init_mem (void) { - if(rtarea != 0) - mapped_free(rtarea); + if(rtarea != 0) + mapped_free(rtarea); - rtarea = mapped_malloc (RTAREA_SIZE, _T("rtarea")); - if (!rtarea) { - write_log (_T("virtual memory exhausted (rtarea)!\n")); - abort (); - } - memset(rtarea, 0, RTAREA_SIZE); - rtarea_bank.baseaddr = rtarea; + rtarea = mapped_malloc (RTAREA_SIZE, _T("rtarea")); + if (!rtarea) + { + write_log (_T("virtual memory exhausted (rtarea)!\n")); + abort (); + } + memset(rtarea, 0, RTAREA_SIZE); + rtarea_bank.baseaddr = rtarea; } void rtarea_init (void) { - uae_u32 a; - TCHAR uaever[100]; + uae_u32 a; + TCHAR uaever[100]; - rt_straddr = 0xFF00 - 2; - rt_addr = 0; + rt_straddr = 0xFF00 - 2; + rt_addr = 0; - init_traps (); + init_traps (); - rtarea_init_mem (); - memset (rtarea, 0, RTAREA_SIZE); + rtarea_init_mem (); + memset (rtarea, 0, RTAREA_SIZE); - _stprintf (uaever, _T("uae-%d.%d.%d"), UAEMAJOR, UAEMINOR, UAESUBREV); + _stprintf (uaever, _T("uae-%d.%d.%d"), UAEMAJOR, UAEMINOR, UAESUBREV); - EXPANSION_uaeversion = ds (uaever); - EXPANSION_explibname = ds (_T("expansion.library")); - EXPANSION_doslibname = ds (_T("dos.library")); - EXPANSION_uaedevname = ds (_T("uae.device")); + EXPANSION_uaeversion = ds (uaever); + EXPANSION_explibname = ds (_T("expansion.library")); + EXPANSION_doslibname = ds (_T("dos.library")); + EXPANSION_uaedevname = ds (_T("uae.device")); - deftrap (NULL); /* Generic emulator trap */ + deftrap (NULL); /* Generic emulator trap */ - dw (0); - dw (0); + dw (0); + dw (0); - a = here(); - /* Dummy trap - removing this breaks the filesys emulation. */ - org (rtarea_base + 0xFF00); - calltrap (deftrap2 (nullfunc, TRAPFLAG_NO_RETVAL, _T(""))); + a = here(); + /* Dummy trap - removing this breaks the filesys emulation. */ + org (rtarea_base + 0xFF00); + calltrap (deftrap2 (nullfunc, TRAPFLAG_NO_RETVAL, _T(""))); - org (rtarea_base + 0xFF80); - calltrap (deftrapres (getchipmemsize, TRAPFLAG_DORET, _T("getchipmemsize"))); + org (rtarea_base + 0xFF80); + calltrap (deftrapres (getchipmemsize, TRAPFLAG_DORET, _T("getchipmemsize"))); - org (rtarea_base + 0xFF10); - calltrap (deftrapres (uae_puts, TRAPFLAG_NO_RETVAL, _T("uae_puts"))); - dw (RTS); + org (rtarea_base + 0xFF10); + calltrap (deftrapres (uae_puts, TRAPFLAG_NO_RETVAL, _T("uae_puts"))); + dw (RTS); + + org (a); - org (a); - #ifdef FILESYS - filesys_install_code (); + filesys_install_code (); #endif - uae_boot_rom_size = here () - rtarea_base; - if (uae_boot_rom_size >= RTAREA_TRAPS) { - write_log (_T("RTAREA_TRAPS needs to be increased!")); - abort (); - } + uae_boot_rom_size = here () - rtarea_base; + if (uae_boot_rom_size >= RTAREA_TRAPS) + { + write_log (_T("RTAREA_TRAPS needs to be increased!")); + abort (); + } #ifdef PICASSO96 - uaegfx_install_code (rtarea_base + RTAREA_RTG); + uaegfx_install_code (rtarea_base + RTAREA_RTG); #endif - org (RTAREA_TRAPS | rtarea_base); - init_extended_traps(); + org (RTAREA_TRAPS | rtarea_base); + init_extended_traps(); } volatile int uae_int_requested = 0; void set_uae_int_flag (void) { - rtarea[RTAREA_INT] = uae_int_requested & 1; + rtarea[RTAREA_INT] = uae_int_requested & 1; } void rtarea_setup(void) { - uae_int_requested = 0; - uaecptr base = need_uae_boot_rom (); - if (base) { - write_log (_T("RTAREA located at %08X\n"), base); - rtarea_base = base; - } + uae_int_requested = 0; + uaecptr base = need_uae_boot_rom (); + if (base) + { + write_log (_T("RTAREA located at %08X\n"), base); + rtarea_base = base; + } } uaecptr makedatatable (uaecptr resid, uaecptr resname, uae_u8 type, uae_s8 priority, uae_u16 ver, uae_u16 rev) { - uaecptr datatable = here (); + uaecptr datatable = here (); - dw (0xE000); /* INITBYTE */ - dw (0x0008); /* LN_TYPE */ - dw (type << 8); - dw (0xE000); /* INITBYTE */ - dw (0x0009); /* LN_PRI */ - dw (priority << 8); - dw (0xC000); /* INITLONG */ - dw (0x000A); /* LN_NAME */ - dl (resname); - dw (0xE000); /* INITBYTE */ - dw (0x000E); /* LIB_FLAGS */ - dw (0x0600); /* LIBF_SUMUSED | LIBF_CHANGED */ - dw (0xD000); /* INITWORD */ - dw (0x0014); /* LIB_VERSION */ - dw (ver); - dw (0xD000); /* INITWORD */ - dw (0x0016); /* LIB_REVISION */ - dw (rev); - dw (0xC000); /* INITLONG */ - dw (0x0018); /* LIB_IDSTRING */ - dl (resid); - dw (0x0000); /* end of table */ - return datatable; + dw (0xE000); /* INITBYTE */ + dw (0x0008); /* LN_TYPE */ + dw (type << 8); + dw (0xE000); /* INITBYTE */ + dw (0x0009); /* LN_PRI */ + dw (priority << 8); + dw (0xC000); /* INITLONG */ + dw (0x000A); /* LN_NAME */ + dl (resname); + dw (0xE000); /* INITBYTE */ + dw (0x000E); /* LIB_FLAGS */ + dw (0x0600); /* LIBF_SUMUSED | LIBF_CHANGED */ + dw (0xD000); /* INITWORD */ + dw (0x0014); /* LIB_VERSION */ + dw (ver); + dw (0xD000); /* INITWORD */ + dw (0x0016); /* LIB_REVISION */ + dw (rev); + dw (0xC000); /* INITLONG */ + dw (0x0018); /* LIB_IDSTRING */ + dl (resid); + dw (0x0000); /* end of table */ + return datatable; } diff --git a/src/blitfunc.cpp b/src/blitfunc.cpp index f42385a6..b17064db 100644 --- a/src/blitfunc.cpp +++ b/src/blitfunc.cpp @@ -3,7 +3,7 @@ #include "config.h" #include "uae.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "savestate.h" @@ -17,1608 +17,2402 @@ void blitdofast_0 (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -unsigned int i,j,hblitsize,bltdmod; -if (!ptd || !b->hblitsize) return; -hblitsize = b->hblitsize; -bltdmod = b->bltdmod; -j = b->vblitsize; -do { - i = hblitsize; - do { - chipmem_agnus_wput (ptd, 0); - ptd += 2; - } while (--i); - ptd += bltdmod; -} while (--j); + unsigned int i,j,hblitsize,bltdmod; + if (!ptd || !b->hblitsize) return; + hblitsize = b->hblitsize; + bltdmod = b->bltdmod; + j = b->vblitsize; + do + { + i = hblitsize; + do + { + chipmem_agnus_wput (ptd, 0); + ptd += 2; + } + while (--i); + ptd += bltdmod; + } + while (--j); } void blitdofast_desc_0 (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -unsigned int i,j,hblitsize,bltdmod; -if (!ptd || !b->hblitsize) return; -hblitsize = b->hblitsize; -bltdmod = b->bltdmod; -j = b->vblitsize; -do { - i = hblitsize; - do { - chipmem_agnus_wput (ptd, 0); - ptd -= 2; - } while (--i); - ptd -= bltdmod; -} while (--j); + unsigned int i,j,hblitsize,bltdmod; + if (!ptd || !b->hblitsize) return; + hblitsize = b->hblitsize; + bltdmod = b->bltdmod; + j = b->vblitsize; + do + { + i = hblitsize; + do + { + chipmem_agnus_wput (ptd, 0); + ptd -= 2; + } + while (--i); + ptd -= bltdmod; + } + while (--j); } void blitdofast_a (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -unsigned int i,j; -uae_u32 totald = 0; -uae_u32 preva = 0; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 hblitsize = b->hblitsize; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - hblitsize; -if (!hblitsize) return; -for (j = b->vblitsize; j--;) { - for (i = hblitsize; i--;) { - uae_u32 bltadat, srca; + unsigned int i,j; + uae_u32 totald = 0; + uae_u32 preva = 0; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 hblitsize = b->hblitsize; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - hblitsize; + if (!hblitsize) return; + for (j = b->vblitsize; j--;) + { + for (i = hblitsize; i--;) + { + uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc += 2; } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta += 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((~srca & srcc)); - totald |= dstd; - if (ptd) { dstp = ptd; ptd += 2; } - } - if (pta) pta += b->bltamod; - if (ptc) ptc += b->bltcmod; - if (ptd) ptd += b->bltdmod; -} -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc += 2; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta += 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((~srca & srcc)); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd += 2; + } + } + if (pta) pta += b->bltamod; + if (ptc) ptc += b->bltcmod; + if (ptd) ptd += b->bltdmod; + } + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_desc_a (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -uae_u32 totald = 0; -int i,j; -uae_u32 preva = 0; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 hblitsize = b->hblitsize; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - hblitsize; -for (j = b->vblitsize; j--;) { - for (i = hblitsize; i--;) { - uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc -= 2; } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta -= 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((~srca & srcc)); - totald |= dstd; - if (ptd) { dstp = ptd; ptd -= 2; } - } - if (pta) pta -= b->bltamod; - if (ptc) ptc -= b->bltcmod; - if (ptd) ptd -= b->bltdmod; -} -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + uae_u32 totald = 0; + int i,j; + uae_u32 preva = 0; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 hblitsize = b->hblitsize; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = hblitsize; i--;) + { + uae_u32 bltadat, srca; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc -= 2; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta -= 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((~srca & srcc)); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd -= 2; + } + } + if (pta) pta -= b->bltamod; + if (ptc) ptc -= b->bltcmod; + if (ptd) ptd -= b->bltdmod; + } + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_2a (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 totald = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 totald = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc += 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb += 2; - srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta += 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcc & ~(srca & srcb))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd += 2; } - } - if (pta) pta += b->bltamod; - if (ptb) ptb += b->bltbmod; - if (ptc) ptc += b->bltcmod; - if (ptd) ptd += b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc += 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb += 2; + srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta += 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcc & ~(srca & srcb))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd += 2; + } + } + if (pta) pta += b->bltamod; + if (ptb) ptb += b->bltbmod; + if (ptc) ptc += b->bltcmod; + if (ptd) ptd += b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_desc_2a (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -uae_u32 totald = 0; -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc -= 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb -= 2; - srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta -= 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcc & ~(srca & srcb))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd -= 2; } - } - if (pta) pta -= b->bltamod; - if (ptb) ptb -= b->bltbmod; - if (ptc) ptc -= b->bltcmod; - if (ptd) ptd -= b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + uae_u32 totald = 0; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc -= 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb -= 2; + srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta -= 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcc & ~(srca & srcb))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd -= 2; + } + } + if (pta) pta -= b->bltamod; + if (ptb) ptb -= b->bltbmod; + if (ptc) ptc -= b->bltcmod; + if (ptd) ptd -= b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_30 (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 totald = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 totald = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb += 2; - srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta += 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srca & ~srcb)); - totald |= dstd; - if (ptd) { dstp = ptd; ptd += 2; } - } - if (pta) pta += b->bltamod; - if (ptb) ptb += b->bltbmod; - if (ptd) ptd += b->bltdmod; -} -b->bltbhold = srcb; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb += 2; + srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta += 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srca & ~srcb)); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd += 2; + } + } + if (pta) pta += b->bltamod; + if (ptb) ptb += b->bltbmod; + if (ptd) ptd += b->bltdmod; + } + b->bltbhold = srcb; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_desc_30 (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -uae_u32 totald = 0; -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb -= 2; - srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta -= 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srca & ~srcb)); - totald |= dstd; - if (ptd) { dstp = ptd; ptd -= 2; } - } - if (pta) pta -= b->bltamod; - if (ptb) ptb -= b->bltbmod; - if (ptd) ptd -= b->bltdmod; -} -b->bltbhold = srcb; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + uae_u32 totald = 0; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb -= 2; + srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta -= 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srca & ~srcb)); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd -= 2; + } + } + if (pta) pta -= b->bltamod; + if (ptb) ptb -= b->bltbmod; + if (ptd) ptd -= b->bltdmod; + } + b->bltbhold = srcb; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_3a (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 totald = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 totald = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc += 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb += 2; - srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta += 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcb ^ (srca | (srcb ^ srcc)))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd += 2; } - } - if (pta) pta += b->bltamod; - if (ptb) ptb += b->bltbmod; - if (ptc) ptc += b->bltcmod; - if (ptd) ptd += b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc += 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb += 2; + srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta += 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcb ^ (srca | (srcb ^ srcc)))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd += 2; + } + } + if (pta) pta += b->bltamod; + if (ptb) ptb += b->bltbmod; + if (ptc) ptc += b->bltcmod; + if (ptd) ptd += b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_desc_3a (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -uae_u32 totald = 0; -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc -= 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb -= 2; - srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta -= 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcb ^ (srca | (srcb ^ srcc)))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd -= 2; } - } - if (pta) pta -= b->bltamod; - if (ptb) ptb -= b->bltbmod; - if (ptc) ptc -= b->bltcmod; - if (ptd) ptd -= b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + uae_u32 totald = 0; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc -= 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb -= 2; + srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta -= 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcb ^ (srca | (srcb ^ srcc)))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd -= 2; + } + } + if (pta) pta -= b->bltamod; + if (ptb) ptb -= b->bltbmod; + if (ptc) ptc -= b->bltcmod; + if (ptd) ptd -= b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_3c (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 totald = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 totald = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb += 2; - srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta += 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srca ^ srcb)); - totald |= dstd; - if (ptd) { dstp = ptd; ptd += 2; } - } - if (pta) pta += b->bltamod; - if (ptb) ptb += b->bltbmod; - if (ptd) ptd += b->bltdmod; -} -b->bltbhold = srcb; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb += 2; + srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta += 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srca ^ srcb)); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd += 2; + } + } + if (pta) pta += b->bltamod; + if (ptb) ptb += b->bltbmod; + if (ptd) ptd += b->bltdmod; + } + b->bltbhold = srcb; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_desc_3c (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -uae_u32 totald = 0; -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb -= 2; - srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta -= 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srca ^ srcb)); - totald |= dstd; - if (ptd) { dstp = ptd; ptd -= 2; } - } - if (pta) pta -= b->bltamod; - if (ptb) ptb -= b->bltbmod; - if (ptd) ptd -= b->bltdmod; -} -b->bltbhold = srcb; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + uae_u32 totald = 0; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb -= 2; + srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta -= 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srca ^ srcb)); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd -= 2; + } + } + if (pta) pta -= b->bltamod; + if (ptb) ptb -= b->bltbmod; + if (ptd) ptd -= b->bltdmod; + } + b->bltbhold = srcb; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_4a (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 totald = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 totald = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc += 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb += 2; - srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta += 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcc ^ (srca & (srcb | srcc)))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd += 2; } - } - if (pta) pta += b->bltamod; - if (ptb) ptb += b->bltbmod; - if (ptc) ptc += b->bltcmod; - if (ptd) ptd += b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc += 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb += 2; + srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta += 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcc ^ (srca & (srcb | srcc)))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd += 2; + } + } + if (pta) pta += b->bltamod; + if (ptb) ptb += b->bltbmod; + if (ptc) ptc += b->bltcmod; + if (ptd) ptd += b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_desc_4a (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -uae_u32 totald = 0; -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc -= 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb -= 2; - srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta -= 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcc ^ (srca & (srcb | srcc)))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd -= 2; } - } - if (pta) pta -= b->bltamod; - if (ptb) ptb -= b->bltbmod; - if (ptc) ptc -= b->bltcmod; - if (ptd) ptd -= b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + uae_u32 totald = 0; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc -= 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb -= 2; + srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta -= 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcc ^ (srca & (srcb | srcc)))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd -= 2; + } + } + if (pta) pta -= b->bltamod; + if (ptb) ptb -= b->bltbmod; + if (ptc) ptc -= b->bltcmod; + if (ptd) ptd -= b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_6a (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 totald = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 totald = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc += 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb += 2; - srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta += 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcc ^ (srca & srcb))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd += 2; } - } - if (pta) pta += b->bltamod; - if (ptb) ptb += b->bltbmod; - if (ptc) ptc += b->bltcmod; - if (ptd) ptd += b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc += 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb += 2; + srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta += 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcc ^ (srca & srcb))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd += 2; + } + } + if (pta) pta += b->bltamod; + if (ptb) ptb += b->bltbmod; + if (ptc) ptc += b->bltcmod; + if (ptd) ptd += b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_desc_6a (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -uae_u32 totald = 0; -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc -= 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb -= 2; - srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta -= 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcc ^ (srca & srcb))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd -= 2; } - } - if (pta) pta -= b->bltamod; - if (ptb) ptb -= b->bltbmod; - if (ptc) ptc -= b->bltcmod; - if (ptd) ptd -= b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + uae_u32 totald = 0; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc -= 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb -= 2; + srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta -= 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcc ^ (srca & srcb))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd -= 2; + } + } + if (pta) pta -= b->bltamod; + if (ptb) ptb -= b->bltbmod; + if (ptc) ptc -= b->bltcmod; + if (ptd) ptd -= b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_8a (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 totald = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 totald = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc += 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb += 2; - srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta += 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcc & (~srca | srcb))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd += 2; } - } - if (pta) pta += b->bltamod; - if (ptb) ptb += b->bltbmod; - if (ptc) ptc += b->bltcmod; - if (ptd) ptd += b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc += 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb += 2; + srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta += 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcc & (~srca | srcb))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd += 2; + } + } + if (pta) pta += b->bltamod; + if (ptb) ptb += b->bltbmod; + if (ptc) ptc += b->bltcmod; + if (ptd) ptd += b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_desc_8a (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -uae_u32 totald = 0; -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc -= 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb -= 2; - srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta -= 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcc & (~srca | srcb))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd -= 2; } - } - if (pta) pta -= b->bltamod; - if (ptb) ptb -= b->bltbmod; - if (ptc) ptc -= b->bltcmod; - if (ptd) ptd -= b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + uae_u32 totald = 0; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc -= 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb -= 2; + srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta -= 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcc & (~srca | srcb))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd -= 2; + } + } + if (pta) pta -= b->bltamod; + if (ptb) ptb -= b->bltbmod; + if (ptc) ptc -= b->bltcmod; + if (ptd) ptd -= b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_8c (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 totald = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 totald = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc += 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb += 2; - srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta += 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcb & (~srca | srcc))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd += 2; } - } - if (pta) pta += b->bltamod; - if (ptb) ptb += b->bltbmod; - if (ptc) ptc += b->bltcmod; - if (ptd) ptd += b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc += 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb += 2; + srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta += 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcb & (~srca | srcc))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd += 2; + } + } + if (pta) pta += b->bltamod; + if (ptb) ptb += b->bltbmod; + if (ptc) ptc += b->bltcmod; + if (ptd) ptd += b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_desc_8c (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -uae_u32 totald = 0; -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc -= 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb -= 2; - srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta -= 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcb & (~srca | srcc))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd -= 2; } - } - if (pta) pta -= b->bltamod; - if (ptb) ptb -= b->bltbmod; - if (ptc) ptc -= b->bltcmod; - if (ptd) ptd -= b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + uae_u32 totald = 0; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc -= 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb -= 2; + srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta -= 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcb & (~srca | srcc))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd -= 2; + } + } + if (pta) pta -= b->bltamod; + if (ptb) ptb -= b->bltbmod; + if (ptc) ptc -= b->bltcmod; + if (ptd) ptd -= b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_9a (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 totald = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 totald = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc += 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb += 2; - srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta += 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcc ^ (srca & ~srcb))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd += 2; } - } - if (pta) pta += b->bltamod; - if (ptb) ptb += b->bltbmod; - if (ptc) ptc += b->bltcmod; - if (ptd) ptd += b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc += 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb += 2; + srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta += 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcc ^ (srca & ~srcb))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd += 2; + } + } + if (pta) pta += b->bltamod; + if (ptb) ptb += b->bltbmod; + if (ptc) ptc += b->bltcmod; + if (ptd) ptd += b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_desc_9a (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -uae_u32 totald = 0; -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc -= 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb -= 2; - srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta -= 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcc ^ (srca & ~srcb))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd -= 2; } - } - if (pta) pta -= b->bltamod; - if (ptb) ptb -= b->bltbmod; - if (ptc) ptc -= b->bltcmod; - if (ptd) ptd -= b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + uae_u32 totald = 0; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc -= 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb -= 2; + srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta -= 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcc ^ (srca & ~srcb))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd -= 2; + } + } + if (pta) pta -= b->bltamod; + if (ptb) ptb -= b->bltbmod; + if (ptc) ptc -= b->bltcmod; + if (ptd) ptd -= b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_a8 (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 totald = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 totald = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc += 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb += 2; - srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta += 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcc & (srca | srcb))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd += 2; } - } - if (pta) pta += b->bltamod; - if (ptb) ptb += b->bltbmod; - if (ptc) ptc += b->bltcmod; - if (ptd) ptd += b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc += 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb += 2; + srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta += 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcc & (srca | srcb))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd += 2; + } + } + if (pta) pta += b->bltamod; + if (ptb) ptb += b->bltbmod; + if (ptc) ptc += b->bltcmod; + if (ptd) ptd += b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_desc_a8 (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -uae_u32 totald = 0; -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc -= 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb -= 2; - srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta -= 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcc & (srca | srcb))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd -= 2; } - } - if (pta) pta -= b->bltamod; - if (ptb) ptb -= b->bltbmod; - if (ptc) ptc -= b->bltcmod; - if (ptd) ptd -= b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + uae_u32 totald = 0; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc -= 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb -= 2; + srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta -= 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcc & (srca | srcb))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd -= 2; + } + } + if (pta) pta -= b->bltamod; + if (ptb) ptb -= b->bltbmod; + if (ptc) ptc -= b->bltcmod; + if (ptd) ptd -= b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_aa (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -int i,j; -uae_u32 totald = 0; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; + int i,j; + uae_u32 totald = 0; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc += 2; } - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = (srcc); - totald |= dstd; - if (ptd) { dstp = ptd; ptd += 2; } - } - if (ptc) ptc += b->bltcmod; - if (ptd) ptd += b->bltdmod; -} -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc += 2; + } + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = (srcc); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd += 2; + } + } + if (ptc) ptc += b->bltcmod; + if (ptd) ptd += b->bltdmod; + } + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_desc_aa (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -uae_u32 totald = 0; -int i,j; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc -= 2; } - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = (srcc); - totald |= dstd; - if (ptd) { dstp = ptd; ptd -= 2; } - } - if (ptc) ptc -= b->bltcmod; - if (ptd) ptd -= b->bltdmod; -} -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + uae_u32 totald = 0; + int i,j; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc -= 2; + } + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = (srcc); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd -= 2; + } + } + if (ptc) ptc -= b->bltcmod; + if (ptd) ptd -= b->bltdmod; + } + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_b1 (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 totald = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 totald = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc += 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb += 2; - srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta += 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = (~(srca ^ (srcc | (srca ^ srcb)))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd += 2; } - } - if (pta) pta += b->bltamod; - if (ptb) ptb += b->bltbmod; - if (ptc) ptc += b->bltcmod; - if (ptd) ptd += b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc += 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb += 2; + srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta += 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = (~(srca ^ (srcc | (srca ^ srcb)))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd += 2; + } + } + if (pta) pta += b->bltamod; + if (ptb) ptb += b->bltbmod; + if (ptc) ptc += b->bltcmod; + if (ptd) ptd += b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_desc_b1 (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -uae_u32 totald = 0; -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc -= 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb -= 2; - srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta -= 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = (~(srca ^ (srcc | (srca ^ srcb)))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd -= 2; } - } - if (pta) pta -= b->bltamod; - if (ptb) ptb -= b->bltbmod; - if (ptc) ptc -= b->bltcmod; - if (ptd) ptd -= b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + uae_u32 totald = 0; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc -= 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb -= 2; + srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta -= 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = (~(srca ^ (srcc | (srca ^ srcb)))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd -= 2; + } + } + if (pta) pta -= b->bltamod; + if (ptb) ptb -= b->bltbmod; + if (ptc) ptc -= b->bltcmod; + if (ptd) ptd -= b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_ca (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 totald = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 totald = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc += 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb += 2; - srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta += 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcc ^ (srca & (srcb ^ srcc)))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd += 2; } - } - if (pta) pta += b->bltamod; - if (ptb) ptb += b->bltbmod; - if (ptc) ptc += b->bltcmod; - if (ptd) ptd += b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc += 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb += 2; + srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta += 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcc ^ (srca & (srcb ^ srcc)))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd += 2; + } + } + if (pta) pta += b->bltamod; + if (ptb) ptb += b->bltbmod; + if (ptc) ptc += b->bltcmod; + if (ptd) ptd += b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_desc_ca (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -uae_u32 totald = 0; -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc -= 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb -= 2; - srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta -= 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcc ^ (srca & (srcb ^ srcc)))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd -= 2; } - } - if (pta) pta -= b->bltamod; - if (ptb) ptb -= b->bltbmod; - if (ptc) ptc -= b->bltcmod; - if (ptd) ptd -= b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + uae_u32 totald = 0; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc -= 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb -= 2; + srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta -= 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcc ^ (srca & (srcb ^ srcc)))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd -= 2; + } + } + if (pta) pta -= b->bltamod; + if (ptb) ptb -= b->bltbmod; + if (ptc) ptc -= b->bltcmod; + if (ptd) ptd -= b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_cc (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -int i,j; -uae_u32 prevb = 0; -uae_u32 totald = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 dstd=0; -uaecptr dstp = 0; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; + int i,j; + uae_u32 prevb = 0; + uae_u32 totald = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 dstd=0; + uaecptr dstp = 0; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb += 2; - srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; - prevb = bltbdat; - } - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = (srcb); - totald |= dstd; - if (ptd) { dstp = ptd; ptd += 2; } - } - if (ptb) ptb += b->bltbmod; - if (ptd) ptd += b->bltdmod; -} -b->bltbhold = srcb; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb += 2; + srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; + prevb = bltbdat; + } + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = (srcb); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd += 2; + } + } + if (ptb) ptb += b->bltbmod; + if (ptd) ptd += b->bltdmod; + } + b->bltbhold = srcb; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_desc_cc (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -uae_u32 totald = 0; -int i,j; -uae_u32 prevb = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 dstd=0; -uaecptr dstp = 0; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb -= 2; - srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; - prevb = bltbdat; - } - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = (srcb); - totald |= dstd; - if (ptd) { dstp = ptd; ptd -= 2; } - } - if (ptb) ptb -= b->bltbmod; - if (ptd) ptd -= b->bltdmod; -} -b->bltbhold = srcb; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + uae_u32 totald = 0; + int i,j; + uae_u32 prevb = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 dstd=0; + uaecptr dstp = 0; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb -= 2; + srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; + prevb = bltbdat; + } + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = (srcb); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd -= 2; + } + } + if (ptb) ptb -= b->bltbmod; + if (ptd) ptd -= b->bltdmod; + } + b->bltbhold = srcb; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_d8 (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 totald = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 totald = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc += 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb += 2; - srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta += 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srca ^ (srcc & (srca ^ srcb)))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd += 2; } - } - if (pta) pta += b->bltamod; - if (ptb) ptb += b->bltbmod; - if (ptc) ptc += b->bltcmod; - if (ptd) ptd += b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc += 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb += 2; + srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta += 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srca ^ (srcc & (srca ^ srcb)))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd += 2; + } + } + if (pta) pta += b->bltamod; + if (ptb) ptb += b->bltbmod; + if (ptc) ptc += b->bltcmod; + if (ptd) ptd += b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_desc_d8 (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -uae_u32 totald = 0; -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc -= 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb -= 2; - srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta -= 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srca ^ (srcc & (srca ^ srcb)))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd -= 2; } - } - if (pta) pta -= b->bltamod; - if (ptb) ptb -= b->bltbmod; - if (ptc) ptc -= b->bltcmod; - if (ptd) ptd -= b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + uae_u32 totald = 0; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc -= 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb -= 2; + srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta -= 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srca ^ (srcc & (srca ^ srcb)))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd -= 2; + } + } + if (pta) pta -= b->bltamod; + if (ptb) ptb -= b->bltbmod; + if (ptc) ptc -= b->bltcmod; + if (ptd) ptd -= b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_e2 (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 totald = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 totald = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc += 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb += 2; - srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta += 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcc ^ (srcb & (srca ^ srcc)))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd += 2; } - } - if (pta) pta += b->bltamod; - if (ptb) ptb += b->bltbmod; - if (ptc) ptc += b->bltcmod; - if (ptd) ptd += b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc += 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb += 2; + srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta += 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcc ^ (srcb & (srca ^ srcc)))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd += 2; + } + } + if (pta) pta += b->bltamod; + if (ptb) ptb += b->bltbmod; + if (ptc) ptc += b->bltcmod; + if (ptd) ptd += b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_desc_e2 (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -uae_u32 totald = 0; -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc -= 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb -= 2; - srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta -= 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcc ^ (srcb & (srca ^ srcc)))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd -= 2; } - } - if (pta) pta -= b->bltamod; - if (ptb) ptb -= b->bltbmod; - if (ptc) ptc -= b->bltcmod; - if (ptd) ptd -= b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + uae_u32 totald = 0; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc -= 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb -= 2; + srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta -= 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcc ^ (srcb & (srca ^ srcc)))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd -= 2; + } + } + if (pta) pta -= b->bltamod; + if (ptb) ptb -= b->bltbmod; + if (ptc) ptc -= b->bltcmod; + if (ptd) ptd -= b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_ea (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 totald = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 totald = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc += 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb += 2; - srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta += 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcc | (srca & srcb))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd += 2; } - } - if (pta) pta += b->bltamod; - if (ptb) ptb += b->bltbmod; - if (ptc) ptc += b->bltcmod; - if (ptd) ptd += b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc += 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb += 2; + srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta += 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcc | (srca & srcb))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd += 2; + } + } + if (pta) pta += b->bltamod; + if (ptb) ptb += b->bltbmod; + if (ptc) ptc += b->bltcmod; + if (ptd) ptd += b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_desc_ea (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -uae_u32 totald = 0; -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc -= 2; } - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb -= 2; - srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta -= 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srcc | (srca & srcb))); - totald |= dstd; - if (ptd) { dstp = ptd; ptd -= 2; } - } - if (pta) pta -= b->bltamod; - if (ptb) ptb -= b->bltbmod; - if (ptc) ptc -= b->bltcmod; - if (ptd) ptd -= b->bltdmod; -} -b->bltbhold = srcb; -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + uae_u32 totald = 0; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc -= 2; + } + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb -= 2; + srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta -= 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srcc | (srca & srcb))); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd -= 2; + } + } + if (pta) pta -= b->bltamod; + if (ptb) ptb -= b->bltbmod; + if (ptc) ptc -= b->bltcmod; + if (ptd) ptd -= b->bltdmod; + } + b->bltbhold = srcb; + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_f0 (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -int i,j; -uae_u32 preva = 0; -uae_u32 totald = 0; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; + int i,j; + uae_u32 preva = 0; + uae_u32 totald = 0; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta += 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = (srca); - totald |= dstd; - if (ptd) { dstp = ptd; ptd += 2; } - } - if (pta) pta += b->bltamod; - if (ptd) ptd += b->bltdmod; -} -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta += 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = (srca); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd += 2; + } + } + if (pta) pta += b->bltamod; + if (ptd) ptd += b->bltdmod; + } + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_desc_f0 (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -uae_u32 totald = 0; -int i,j; -uae_u32 preva = 0; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta -= 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = (srca); - totald |= dstd; - if (ptd) { dstp = ptd; ptd -= 2; } - } - if (pta) pta -= b->bltamod; - if (ptd) ptd -= b->bltdmod; -} -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + uae_u32 totald = 0; + int i,j; + uae_u32 preva = 0; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta -= 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = (srca); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd -= 2; + } + } + if (pta) pta -= b->bltamod; + if (ptd) ptd -= b->bltdmod; + } + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_fa (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -int i,j; -uae_u32 preva = 0; -uae_u32 totald = 0; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; + int i,j; + uae_u32 preva = 0; + uae_u32 totald = 0; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc += 2; } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta += 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srca | srcc)); - totald |= dstd; - if (ptd) { dstp = ptd; ptd += 2; } - } - if (pta) pta += b->bltamod; - if (ptc) ptc += b->bltcmod; - if (ptd) ptd += b->bltdmod; -} -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc += 2; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta += 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srca | srcc)); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd += 2; + } + } + if (pta) pta += b->bltamod; + if (ptc) ptc += b->bltcmod; + if (ptd) ptd += b->bltdmod; + } + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_desc_fa (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -uae_u32 totald = 0; -int i,j; -uae_u32 preva = 0; -uae_u32 srcc = b->bltcdat; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; - if (ptc) { srcc = do_get_mem_word ((uae_u16 *)ptc); ptc -= 2; } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta -= 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srca | srcc)); - totald |= dstd; - if (ptd) { dstp = ptd; ptd -= 2; } - } - if (pta) pta -= b->bltamod; - if (ptc) ptc -= b->bltcmod; - if (ptd) ptd -= b->bltdmod; -} -b->bltcdat = srcc; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + uae_u32 totald = 0; + int i,j; + uae_u32 preva = 0; + uae_u32 srcc = b->bltcdat; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; + if (ptc) + { + srcc = do_get_mem_word ((uae_u16 *)ptc); + ptc -= 2; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta -= 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srca | srcc)); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd -= 2; + } + } + if (pta) pta -= b->bltamod; + if (ptc) ptc -= b->bltcmod; + if (ptd) ptd -= b->bltdmod; + } + b->bltcdat = srcc; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_fc (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 totald = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 totald = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb += 2; - srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta += 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srca | srcb)); - totald |= dstd; - if (ptd) { dstp = ptd; ptd += 2; } - } - if (pta) pta += b->bltamod; - if (ptb) ptb += b->bltbmod; - if (ptd) ptd += b->bltdmod; -} -b->bltbhold = srcb; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb += 2; + srcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta += 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srca | srcb)); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd += 2; + } + } + if (pta) pta += b->bltamod; + if (ptb) ptb += b->bltbmod; + if (ptd) ptd += b->bltdmod; + } + b->bltbhold = srcb; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } void blitdofast_desc_fc (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b) { -uae_u32 totald = 0; -int i,j; -uae_u32 preva = 0, prevb = 0; -uae_u32 srcb = b->bltbhold; -uae_u32 dstd=0; -uaecptr dstp = 0; -uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; -for (j = b->vblitsize; j--;) { - for (i = b->hblitsize; i--;) { - uae_u32 bltadat, srca; - if (ptb) { - uae_u32 bltbdat; b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); ptb -= 2; - srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; - prevb = bltbdat; - } - if (pta) { b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); pta -= 2; } else { bltadat = b->bltadat; } - bltadat &= blit_masktable_p[i]; - srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; - preva = bltadat; - if (dstp) - chipmem_agnus_wput (dstp, dstd); - dstd = ((srca | srcb)); - totald |= dstd; - if (ptd) { dstp = ptd; ptd -= 2; } - } - if (pta) pta -= b->bltamod; - if (ptb) ptb -= b->bltbmod; - if (ptd) ptd -= b->bltdmod; -} -b->bltbhold = srcb; -if (dstp) - chipmem_agnus_wput (dstp, dstd); -if ((totald<<16) != 0) b->blitzero = 0; + uae_u32 totald = 0; + int i,j; + uae_u32 preva = 0, prevb = 0; + uae_u32 srcb = b->bltbhold; + uae_u32 dstd=0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - b->hblitsize; + for (j = b->vblitsize; j--;) + { + for (i = b->hblitsize; i--;) + { + uae_u32 bltadat, srca; + if (ptb) + { + uae_u32 bltbdat; + b->bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)ptb); + ptb -= 2; + srcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift; + prevb = bltbdat; + } + if (pta) + { + b->bltadat = bltadat = do_get_mem_word ((uae_u16 *)pta); + pta -= 2; + } + else + { + bltadat = b->bltadat; + } + bltadat &= blit_masktable_p[i]; + srca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift; + preva = bltadat; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + dstd = ((srca | srcb)); + totald |= dstd; + if (ptd) + { + dstp = ptd; + ptd -= 2; + } + } + if (pta) pta -= b->bltamod; + if (ptb) ptb -= b->bltbmod; + if (ptd) ptd -= b->bltdmod; + } + b->bltbhold = srcb; + if (dstp) + chipmem_agnus_wput (dstp, dstd); + if ((totald<<16) != 0) b->blitzero = 0; } diff --git a/src/blitops.cpp b/src/blitops.cpp index eb2142db..3060a08e 100644 --- a/src/blitops.cpp +++ b/src/blitops.cpp @@ -1,262 +1,263 @@ - /* This file generated automatically - do not edit */ +/* This file generated automatically - do not edit */ #include "genblitter.h" -struct blitop blitops[256] = { - /* 00 */ { "0", 0 }, - /* 01 */ { "~(srca | srcb | srcc)", 7 }, - /* 02 */ { "(srcc & ~(srca | srcb))", 7 }, - /* 03 */ { "~(srca | srcb)", 3 }, - /* 04 */ { "(srcb & ~(srca | srcc))", 7 }, - /* 05 */ { "~(srca | srcc)", 5 }, - /* 06 */ { "(~srca & (srcb ^ srcc))", 7 }, - /* 07 */ { "~(srca | (srcb & srcc))", 7 }, - /* 08 */ { "(~srca & srcb & srcc)", 7 }, - /* 09 */ { "~(srca | (srcb ^ srcc))", 7 }, - /* 0a */ { "(~srca & srcc)", 5 }, - /* 0b */ { "~(srca | (srcb & ~srcc))", 7 }, - /* 0c */ { "(~srca & srcb)", 3 }, - /* 0d */ { "~(srca | (~srcb & srcc))", 7 }, - /* 0e */ { "(~srca & (srcb | srcc))", 7 }, - /* 0f */ { "~srca", 1 }, - /* 10 */ { "(srca & ~(srcb | srcc))", 7 }, - /* 11 */ { "~(srcb | srcc)", 6 }, - /* 12 */ { "(~srcb & (srca ^ srcc))", 7 }, - /* 13 */ { "~(srcb | (srca & srcc))", 7 }, - /* 14 */ { "(~srcc & (srca ^ srcb))", 7 }, - /* 15 */ { "~(srcc | (srca & srcb))", 7 }, - /* 16 */ { "(srca ^ ((srca & srcb) | (srcb ^ srcc)))", 7 }, - /* 17 */ { "~(srca ^ ((srca ^ srcb) & (srca ^ srcc)))", 7 }, - /* 18 */ { "((srca ^ srcb) & (srca ^ srcc))", 7 }, - /* 19 */ { "(srcb ^ (~srcc | (srca & srcb)))", 7 }, - /* 1a */ { "(srca ^ (srcc | (srca & srcb)))", 7 }, - /* 1b */ { "(srca ^ (srcc | ~(srca ^ srcb)))", 7 }, - /* 1c */ { "(srca ^ (srcb | (srca & srcc)))", 7 }, - /* 1d */ { "(srca ^ (srcb | ~(srca ^ srcc)))", 7 }, - /* 1e */ { "(srca ^ (srcb | srcc))", 7 }, - /* 1f */ { "~(srca & (srcb | srcc))", 7 }, - /* 20 */ { "(srca & ~srcb & srcc)", 7 }, - /* 21 */ { "~(srcb | (srca ^ srcc))", 7 }, - /* 22 */ { "(~srcb & srcc)", 6 }, - /* 23 */ { "~(srcb | (srca & ~srcc))", 7 }, - /* 24 */ { "((srca ^ srcb) & (srcb ^ srcc))", 7 }, - /* 25 */ { "(srca ^ (~srcc | (srca & srcb)))", 7 }, - /* 26 */ { "(srcb ^ (srcc | (srca & srcb)))", 7 }, - /* 27 */ { "~(srca ^ (srcc & (srca ^ srcb)))", 7 }, - /* 28 */ { "(srcc & (srca ^ srcb))", 7 }, - /* 29 */ { "~(srca ^ srcb ^ (srcc | (srca & srcb)))", 7 }, - /* 2a */ { "(srcc & ~(srca & srcb))", 7 }, - /* 2b */ { "~(srca ^ ((srca ^ srcb) & (srcb ^ srcc)))", 7 }, - /* 2c */ { "(srcb ^ (srca & (srcb | srcc)))", 7 }, - /* 2d */ { "(srca ^ (srcb | ~srcc))", 7 }, - /* 2e */ { "(srca ^ (srcb | (srca ^ srcc)))", 7 }, - /* 2f */ { "~(srca & (srcb | ~srcc))", 7 }, - /* 30 */ { "(srca & ~srcb)", 3 }, - /* 31 */ { "~(srcb | (~srca & srcc))", 7 }, - /* 32 */ { "(~srcb & (srca | srcc))", 7 }, - /* 33 */ { "~srcb", 2 }, - /* 34 */ { "(srcb ^ (srca | (srcb & srcc)))", 7 }, - /* 35 */ { "(srcb ^ (srca | ~(srcb ^ srcc)))", 7 }, - /* 36 */ { "(srcb ^ (srca | srcc))", 7 }, - /* 37 */ { "~(srcb & (srca | srcc))", 7 }, - /* 38 */ { "(srca ^ (srcb & (srca | srcc)))", 7 }, - /* 39 */ { "(srcb ^ (srca | ~srcc))", 7 }, - /* 3a */ { "(srcb ^ (srca | (srcb ^ srcc)))", 7 }, - /* 3b */ { "~(srcb & (srca | ~srcc))", 7 }, - /* 3c */ { "(srca ^ srcb)", 3 }, - /* 3d */ { "(srca ^ (srcb | ~(srca | srcc)))", 7 }, - /* 3e */ { "(srca ^ (srcb | (srca ^ (srca | srcc))))", 7 }, - /* 3f */ { "~(srca & srcb)", 3 }, - /* 40 */ { "(srca & srcb & ~srcc)", 7 }, - /* 41 */ { "~(srcc | (srca ^ srcb))", 7 }, - /* 42 */ { "((srca ^ srcc) & (srcb ^ srcc))", 7 }, - /* 43 */ { "(srca ^ (~srcb | (srca & srcc)))", 7 }, - /* 44 */ { "(srcb & ~srcc)", 6 }, - /* 45 */ { "~(srcc | (srca & ~srcb))", 7 }, - /* 46 */ { "(srcc ^ (srcb | (srca & srcc)))", 7 }, - /* 47 */ { "~(srca ^ (srcb & (srca ^ srcc)))", 7 }, - /* 48 */ { "(srcb & (srca ^ srcc))", 7 }, - /* 49 */ { "~(srca ^ srcc ^ (srcb | (srca & srcc)))", 7 }, - /* 4a */ { "(srcc ^ (srca & (srcb | srcc)))", 7 }, - /* 4b */ { "(srca ^ (~srcb | srcc))", 7 }, - /* 4c */ { "(srcb & ~(srca & srcc))", 7 }, - /* 4d */ { "(srca ^ ((srca ^ srcb) | ~(srca ^ srcc)))", 7 }, - /* 4e */ { "(srca ^ (srcc | (srca ^ srcb)))", 7 }, - /* 4f */ { "~(srca & (~srcb | srcc))", 7 }, - /* 50 */ { "(srca & ~srcc)", 5 }, - /* 51 */ { "~(srcc | (~srca & srcb))", 7 }, - /* 52 */ { "(srcc ^ (srca | (srcb & srcc)))", 7 }, - /* 53 */ { "~(srcb ^ (srca & (srcb ^ srcc)))", 7 }, - /* 54 */ { "(~srcc & (srca | srcb))", 7 }, - /* 55 */ { "~srcc", 4 }, - /* 56 */ { "(srcc ^ (srca | srcb))", 7 }, - /* 57 */ { "~(srcc & (srca | srcb))", 7 }, - /* 58 */ { "(srca ^ (srcc & (srca | srcb)))", 7 }, - /* 59 */ { "(srcc ^ (srca | ~srcb))", 7 }, - /* 5a */ { "(srca ^ srcc)", 5 }, - /* 5b */ { "(srca ^ (srcc | ~(srca | srcb)))", 7 }, - /* 5c */ { "(srcc ^ (srca | (srcb ^ srcc)))", 7 }, - /* 5d */ { "~(srcc & (srca | ~srcb))", 7 }, - /* 5e */ { "(srca ^ (srcc | (srca ^ (srca | srcb))))", 7 }, - /* 5f */ { "~(srca & srcc)", 5 }, - /* 60 */ { "(srca & (srcb ^ srcc))", 7 }, - /* 61 */ { "~(srcb ^ srcc ^ (srca | (srcb & srcc)))", 7 }, - /* 62 */ { "(srcc ^ (srcb & (srca | srcc)))", 7 }, - /* 63 */ { "(srcb ^ (~srca | srcc))", 7 }, - /* 64 */ { "(srcb ^ (srcc & (srca | srcb)))", 7 }, - /* 65 */ { "(srcc ^ (~srca | srcb))", 7 }, - /* 66 */ { "(srcb ^ srcc)", 6 }, - /* 67 */ { "(srcb ^ (srcc | ~(srca | srcb)))", 7 }, - /* 68 */ { "((srca & srcb) ^ (srcc & (srca | srcb)))", 7 }, - /* 69 */ { "~(srca ^ srcb ^ srcc)", 7 }, - /* 6a */ { "(srcc ^ (srca & srcb))", 7 }, - /* 6b */ { "~(srca ^ srcb ^ (srcc & (srca | srcb)))", 7 }, - /* 6c */ { "(srcb ^ (srca & srcc))", 7 }, - /* 6d */ { "~(srca ^ srcc ^ (srcb & (srca | srcc)))", 7 }, - /* 6e */ { "((~srca & srcb) | (srcb ^ srcc))", 7 }, - /* 6f */ { "(~srca | (srcb ^ srcc))", 7 }, - /* 70 */ { "(srca & ~(srcb & srcc))", 7 }, - /* 71 */ { "~(srca ^ ((srca ^ srcb) | (srca ^ srcc)))", 7 }, - /* 72 */ { "(srcb ^ (srcc | (srca ^ srcb)))", 7 }, - /* 73 */ { "~(srcb & (~srca | srcc))", 7 }, - /* 74 */ { "(srcc ^ (srcb | (srca ^ srcc)))", 7 }, - /* 75 */ { "~(srcc & (~srca | srcb))", 7 }, - /* 76 */ { "(srcb ^ (srcc | (srca ^ (srca & srcb))))", 7 }, - /* 77 */ { "~(srcb & srcc)", 6 }, - /* 78 */ { "(srca ^ (srcb & srcc))", 7 }, - /* 79 */ { "~(srcb ^ srcc ^ (srca & (srcb | srcc)))", 7 }, - /* 7a */ { "((srca & ~srcb) | (srca ^ srcc))", 7 }, - /* 7b */ { "(~srcb | (srca ^ srcc))", 7 }, - /* 7c */ { "((srca ^ srcb) | (srca & ~srcc))", 7 }, - /* 7d */ { "(~srcc | (srca ^ srcb))", 7 }, - /* 7e */ { "((srca ^ srcb) | (srca ^ srcc))", 7 }, - /* 7f */ { "~(srca & srcb & srcc)", 7 }, - /* 80 */ { "(srca & srcb & srcc)", 7 }, - /* 81 */ { "~((srca ^ srcb) | (srca ^ srcc))", 7 }, - /* 82 */ { "(srcc & ~(srca ^ srcb))", 7 }, - /* 83 */ { "(srca ^ (~srcb | (srca & ~srcc)))", 7 }, - /* 84 */ { "(srcb & ~(srca ^ srcc))", 7 }, - /* 85 */ { "(srca ^ (~srcc | (srca & ~srcb)))", 7 }, - /* 86 */ { "(srcb ^ srcc ^ (srca & (srcb | srcc)))", 7 }, - /* 87 */ { "~(srca ^ (srcb & srcc))", 7 }, - /* 88 */ { "(srcb & srcc)", 6 }, - /* 89 */ { "(srcb ^ (~srcc & (~srca | srcb)))", 7 }, - /* 8a */ { "(srcc & (~srca | srcb))", 7 }, - /* 8b */ { "(srca ^ (~srcb | (srca ^ srcc)))", 7 }, - /* 8c */ { "(srcb & (~srca | srcc))", 7 }, - /* 8d */ { "(srca ^ (~srcc | (srca ^ srcb)))", 7 }, - /* 8e */ { "(srca ^ ((srca ^ srcb) | (srca ^ srcc)))", 7 }, - /* 8f */ { "(~srca | (srcb & srcc))", 7 }, - /* 90 */ { "(srca & ~(srcb ^ srcc))", 7 }, - /* 91 */ { "(srcb ^ (~srcc | (~srca & srcb)))", 7 }, - /* 92 */ { "(srca ^ srcc ^ (srcb & (srca | srcc)))", 7 }, - /* 93 */ { "~(srcb ^ (srca & srcc))", 7 }, - /* 94 */ { "(srca ^ srcb ^ (srcc & (srca | srcb)))", 7 }, - /* 95 */ { "~(srcc ^ (srca & srcb))", 7 }, - /* 96 */ { "(srca ^ srcb ^ srcc)", 7 }, - /* 97 */ { "(srca ^ srcb ^ (srcc | ~(srca | srcb)))", 7 }, - /* 98 */ { "(srcb ^ (~srcc & (srca | srcb)))", 7 }, - /* 99 */ { "~(srcb ^ srcc)", 6 }, - /* 9a */ { "(srcc ^ (srca & ~srcb))", 7 }, - /* 9b */ { "~(srcb ^ (srcc & (srca | srcb)))", 7 }, - /* 9c */ { "(srcb ^ (srca & ~srcc))", 7 }, - /* 9d */ { "~(srcc ^ (srcb & (srca | srcc)))", 7 }, - /* 9e */ { "(srcb ^ srcc ^ (srca | (srcb & srcc)))", 7 }, - /* 9f */ { "~(srca & (srcb ^ srcc))", 7 }, - /* a0 */ { "(srca & srcc)", 5 }, - /* a1 */ { "(srca ^ (~srcc & (srca | ~srcb)))", 7 }, - /* a2 */ { "(srcc & (srca | ~srcb))", 7 }, - /* a3 */ { "(srcb ^ (~srca | (srcb ^ srcc)))", 7 }, - /* a4 */ { "(srca ^ (~srcc & (srca | srcb)))", 7 }, - /* a5 */ { "~(srca ^ srcc)", 5 }, - /* a6 */ { "(srcc ^ (~srca & srcb))", 7 }, - /* a7 */ { "~(srca ^ (srcc & (srca | srcb)))", 7 }, - /* a8 */ { "(srcc & (srca | srcb))", 7 }, - /* a9 */ { "~(srcc ^ (srca | srcb))", 7 }, - /* aa */ { "srcc", 4 }, - /* ab */ { "(srcc | ~(srca | srcb))", 7 }, - /* ac */ { "(srcb ^ (srca & (srcb ^ srcc)))", 7 }, - /* ad */ { "~(srcc ^ (srca | (srcb & srcc)))", 7 }, - /* ae */ { "(srcc | (~srca & srcb))", 7 }, - /* af */ { "(~srca | srcc)", 5 }, - /* b0 */ { "(srca & (~srcb | srcc))", 7 }, - /* b1 */ { "~(srca ^ (srcc | (srca ^ srcb)))", 7 }, - /* b2 */ { "(srca ^ ((srca ^ srcc) & (srcb ^ srcc)))", 7 }, - /* b3 */ { "(~srcb | (srca & srcc))", 7 }, - /* b4 */ { "(srca ^ (srcb & ~srcc))", 7 }, - /* b5 */ { "~(srcc ^ (srca & (srcb | srcc)))", 7 }, - /* b6 */ { "(srca ^ srcc ^ (srcb | (srca & srcc)))", 7 }, - /* b7 */ { "~(srcb & (srca ^ srcc))", 7 }, - /* b8 */ { "(srca ^ (srcb & (srca ^ srcc)))", 7 }, - /* b9 */ { "~(srcc ^ (srcb | (srca & srcc)))", 7 }, - /* ba */ { "(srcc | (srca & ~srcb))", 7 }, - /* bb */ { "(~srcb | srcc)", 6 }, - /* bc */ { "((srca ^ srcb) | (srca & srcc))", 7 }, - /* bd */ { "((srca ^ srcb) | ~(srca ^ srcc))", 7 }, - /* be */ { "(srcc | (srca ^ srcb))", 7 }, - /* bf */ { "(srcc | ~(srca & srcb))", 7 }, - /* c0 */ { "(srca & srcb)", 3 }, - /* c1 */ { "(srca ^ (~srcb & (srca | ~srcc)))", 7 }, - /* c2 */ { "(srca ^ (~srcb & (srca | srcc)))", 7 }, - /* c3 */ { "~(srca ^ srcb)", 3 }, - /* c4 */ { "(srcb & (srca | ~srcc))", 7 }, - /* c5 */ { "~(srcb ^ (srca | (srcb ^ srcc)))", 7 }, - /* c6 */ { "(srcb ^ (~srca & srcc))", 7 }, - /* c7 */ { "~(srca ^ (srcb & (srca | srcc)))", 7 }, - /* c8 */ { "(srcb & (srca | srcc))", 7 }, - /* c9 */ { "~(srcb ^ (srca | srcc))", 7 }, - /* ca */ { "(srcc ^ (srca & (srcb ^ srcc)))", 7 }, - /* cb */ { "~(srcb ^ (srca | (srcb & srcc)))", 7 }, - /* cc */ { "srcb", 2 }, - /* cd */ { "(srcb | ~(srca | srcc))", 7 }, - /* ce */ { "(srcb | (~srca & srcc))", 7 }, - /* cf */ { "(~srca | srcb)", 3 }, - /* d0 */ { "(srca & (srcb | ~srcc))", 7 }, - /* d1 */ { "~(srca ^ (srcb | (srca ^ srcc)))", 7 }, - /* d2 */ { "(srca ^ (~srcb & srcc))", 7 }, - /* d3 */ { "~(srcb ^ (srca & (srcb | srcc)))", 7 }, - /* d4 */ { "(srca ^ ((srca ^ srcb) & (srcb ^ srcc)))", 7 }, - /* d5 */ { "(~srcc | (srca & srcb))", 7 }, - /* d6 */ { "(srca ^ srcb ^ (srcc | (srca & srcb)))", 7 }, - /* d7 */ { "~(srcc & (srca ^ srcb))", 7 }, - /* d8 */ { "(srca ^ (srcc & (srca ^ srcb)))", 7 }, - /* d9 */ { "~(srcb ^ (srcc | (srca & srcb)))", 7 }, - /* da */ { "((srca & srcb) | (srca ^ srcc))", 7 }, - /* db */ { "~((srca ^ srcb) & (srcb ^ srcc))", 7 }, - /* dc */ { "(srcb | (srca & ~srcc))", 7 }, - /* dd */ { "(srcb | ~srcc)", 6 }, - /* de */ { "(srcb | (srca ^ srcc))", 7 }, - /* df */ { "(srcb | ~(srca & srcc))", 7 }, - /* e0 */ { "(srca & (srcb | srcc))", 7 }, - /* e1 */ { "~(srca ^ (srcb | srcc))", 7 }, - /* e2 */ { "(srcc ^ (srcb & (srca ^ srcc)))", 7 }, - /* e3 */ { "~(srca ^ (srcb | (srca & srcc)))", 7 }, - /* e4 */ { "(srcb ^ (srcc & (srca ^ srcb)))", 7 }, - /* e5 */ { "~(srca ^ (srcc | (srca & srcb)))", 7 }, - /* e6 */ { "((srca & srcb) | (srcb ^ srcc))", 7 }, - /* e7 */ { "~((srca ^ srcb) & (srca ^ srcc))", 7 }, - /* e8 */ { "(srca ^ ((srca ^ srcb) & (srca ^ srcc)))", 7 }, - /* e9 */ { "(srca ^ srcb ^ (~srcc | (srca & srcb)))", 7 }, - /* ea */ { "(srcc | (srca & srcb))", 7 }, - /* eb */ { "(srcc | ~(srca ^ srcb))", 7 }, - /* ec */ { "(srcb | (srca & srcc))", 7 }, - /* ed */ { "(srcb | ~(srca ^ srcc))", 7 }, - /* ee */ { "(srcb | srcc)", 6 }, - /* ef */ { "(~srca | srcb | srcc)", 7 }, - /* f0 */ { "srca", 1 }, - /* f1 */ { "(srca | ~(srcb | srcc))", 7 }, - /* f2 */ { "(srca | (~srcb & srcc))", 7 }, - /* f3 */ { "(srca | ~srcb)", 3 }, - /* f4 */ { "(srca | (srcb & ~srcc))", 7 }, - /* f5 */ { "(srca | ~srcc)", 5 }, - /* f6 */ { "(srca | (srcb ^ srcc))", 7 }, - /* f7 */ { "(srca | ~(srcb & srcc))", 7 }, - /* f8 */ { "(srca | (srcb & srcc))", 7 }, - /* f9 */ { "(srca | ~(srcb ^ srcc))", 7 }, - /* fa */ { "(srca | srcc)", 5 }, - /* fb */ { "(srca | ~srcb | srcc)", 7 }, - /* fc */ { "(srca | srcb)", 3 }, - /* fd */ { "(srca | srcb | ~srcc)", 7 }, - /* fe */ { "(srca | srcb | srcc)", 7 }, - /* ff */ { "0xFFFFFFFF", 0 } +struct blitop blitops[256] = +{ + /* 00 */ { "0", 0 }, + /* 01 */ { "~(srca | srcb | srcc)", 7 }, + /* 02 */ { "(srcc & ~(srca | srcb))", 7 }, + /* 03 */ { "~(srca | srcb)", 3 }, + /* 04 */ { "(srcb & ~(srca | srcc))", 7 }, + /* 05 */ { "~(srca | srcc)", 5 }, + /* 06 */ { "(~srca & (srcb ^ srcc))", 7 }, + /* 07 */ { "~(srca | (srcb & srcc))", 7 }, + /* 08 */ { "(~srca & srcb & srcc)", 7 }, + /* 09 */ { "~(srca | (srcb ^ srcc))", 7 }, + /* 0a */ { "(~srca & srcc)", 5 }, + /* 0b */ { "~(srca | (srcb & ~srcc))", 7 }, + /* 0c */ { "(~srca & srcb)", 3 }, + /* 0d */ { "~(srca | (~srcb & srcc))", 7 }, + /* 0e */ { "(~srca & (srcb | srcc))", 7 }, + /* 0f */ { "~srca", 1 }, + /* 10 */ { "(srca & ~(srcb | srcc))", 7 }, + /* 11 */ { "~(srcb | srcc)", 6 }, + /* 12 */ { "(~srcb & (srca ^ srcc))", 7 }, + /* 13 */ { "~(srcb | (srca & srcc))", 7 }, + /* 14 */ { "(~srcc & (srca ^ srcb))", 7 }, + /* 15 */ { "~(srcc | (srca & srcb))", 7 }, + /* 16 */ { "(srca ^ ((srca & srcb) | (srcb ^ srcc)))", 7 }, + /* 17 */ { "~(srca ^ ((srca ^ srcb) & (srca ^ srcc)))", 7 }, + /* 18 */ { "((srca ^ srcb) & (srca ^ srcc))", 7 }, + /* 19 */ { "(srcb ^ (~srcc | (srca & srcb)))", 7 }, + /* 1a */ { "(srca ^ (srcc | (srca & srcb)))", 7 }, + /* 1b */ { "(srca ^ (srcc | ~(srca ^ srcb)))", 7 }, + /* 1c */ { "(srca ^ (srcb | (srca & srcc)))", 7 }, + /* 1d */ { "(srca ^ (srcb | ~(srca ^ srcc)))", 7 }, + /* 1e */ { "(srca ^ (srcb | srcc))", 7 }, + /* 1f */ { "~(srca & (srcb | srcc))", 7 }, + /* 20 */ { "(srca & ~srcb & srcc)", 7 }, + /* 21 */ { "~(srcb | (srca ^ srcc))", 7 }, + /* 22 */ { "(~srcb & srcc)", 6 }, + /* 23 */ { "~(srcb | (srca & ~srcc))", 7 }, + /* 24 */ { "((srca ^ srcb) & (srcb ^ srcc))", 7 }, + /* 25 */ { "(srca ^ (~srcc | (srca & srcb)))", 7 }, + /* 26 */ { "(srcb ^ (srcc | (srca & srcb)))", 7 }, + /* 27 */ { "~(srca ^ (srcc & (srca ^ srcb)))", 7 }, + /* 28 */ { "(srcc & (srca ^ srcb))", 7 }, + /* 29 */ { "~(srca ^ srcb ^ (srcc | (srca & srcb)))", 7 }, + /* 2a */ { "(srcc & ~(srca & srcb))", 7 }, + /* 2b */ { "~(srca ^ ((srca ^ srcb) & (srcb ^ srcc)))", 7 }, + /* 2c */ { "(srcb ^ (srca & (srcb | srcc)))", 7 }, + /* 2d */ { "(srca ^ (srcb | ~srcc))", 7 }, + /* 2e */ { "(srca ^ (srcb | (srca ^ srcc)))", 7 }, + /* 2f */ { "~(srca & (srcb | ~srcc))", 7 }, + /* 30 */ { "(srca & ~srcb)", 3 }, + /* 31 */ { "~(srcb | (~srca & srcc))", 7 }, + /* 32 */ { "(~srcb & (srca | srcc))", 7 }, + /* 33 */ { "~srcb", 2 }, + /* 34 */ { "(srcb ^ (srca | (srcb & srcc)))", 7 }, + /* 35 */ { "(srcb ^ (srca | ~(srcb ^ srcc)))", 7 }, + /* 36 */ { "(srcb ^ (srca | srcc))", 7 }, + /* 37 */ { "~(srcb & (srca | srcc))", 7 }, + /* 38 */ { "(srca ^ (srcb & (srca | srcc)))", 7 }, + /* 39 */ { "(srcb ^ (srca | ~srcc))", 7 }, + /* 3a */ { "(srcb ^ (srca | (srcb ^ srcc)))", 7 }, + /* 3b */ { "~(srcb & (srca | ~srcc))", 7 }, + /* 3c */ { "(srca ^ srcb)", 3 }, + /* 3d */ { "(srca ^ (srcb | ~(srca | srcc)))", 7 }, + /* 3e */ { "(srca ^ (srcb | (srca ^ (srca | srcc))))", 7 }, + /* 3f */ { "~(srca & srcb)", 3 }, + /* 40 */ { "(srca & srcb & ~srcc)", 7 }, + /* 41 */ { "~(srcc | (srca ^ srcb))", 7 }, + /* 42 */ { "((srca ^ srcc) & (srcb ^ srcc))", 7 }, + /* 43 */ { "(srca ^ (~srcb | (srca & srcc)))", 7 }, + /* 44 */ { "(srcb & ~srcc)", 6 }, + /* 45 */ { "~(srcc | (srca & ~srcb))", 7 }, + /* 46 */ { "(srcc ^ (srcb | (srca & srcc)))", 7 }, + /* 47 */ { "~(srca ^ (srcb & (srca ^ srcc)))", 7 }, + /* 48 */ { "(srcb & (srca ^ srcc))", 7 }, + /* 49 */ { "~(srca ^ srcc ^ (srcb | (srca & srcc)))", 7 }, + /* 4a */ { "(srcc ^ (srca & (srcb | srcc)))", 7 }, + /* 4b */ { "(srca ^ (~srcb | srcc))", 7 }, + /* 4c */ { "(srcb & ~(srca & srcc))", 7 }, + /* 4d */ { "(srca ^ ((srca ^ srcb) | ~(srca ^ srcc)))", 7 }, + /* 4e */ { "(srca ^ (srcc | (srca ^ srcb)))", 7 }, + /* 4f */ { "~(srca & (~srcb | srcc))", 7 }, + /* 50 */ { "(srca & ~srcc)", 5 }, + /* 51 */ { "~(srcc | (~srca & srcb))", 7 }, + /* 52 */ { "(srcc ^ (srca | (srcb & srcc)))", 7 }, + /* 53 */ { "~(srcb ^ (srca & (srcb ^ srcc)))", 7 }, + /* 54 */ { "(~srcc & (srca | srcb))", 7 }, + /* 55 */ { "~srcc", 4 }, + /* 56 */ { "(srcc ^ (srca | srcb))", 7 }, + /* 57 */ { "~(srcc & (srca | srcb))", 7 }, + /* 58 */ { "(srca ^ (srcc & (srca | srcb)))", 7 }, + /* 59 */ { "(srcc ^ (srca | ~srcb))", 7 }, + /* 5a */ { "(srca ^ srcc)", 5 }, + /* 5b */ { "(srca ^ (srcc | ~(srca | srcb)))", 7 }, + /* 5c */ { "(srcc ^ (srca | (srcb ^ srcc)))", 7 }, + /* 5d */ { "~(srcc & (srca | ~srcb))", 7 }, + /* 5e */ { "(srca ^ (srcc | (srca ^ (srca | srcb))))", 7 }, + /* 5f */ { "~(srca & srcc)", 5 }, + /* 60 */ { "(srca & (srcb ^ srcc))", 7 }, + /* 61 */ { "~(srcb ^ srcc ^ (srca | (srcb & srcc)))", 7 }, + /* 62 */ { "(srcc ^ (srcb & (srca | srcc)))", 7 }, + /* 63 */ { "(srcb ^ (~srca | srcc))", 7 }, + /* 64 */ { "(srcb ^ (srcc & (srca | srcb)))", 7 }, + /* 65 */ { "(srcc ^ (~srca | srcb))", 7 }, + /* 66 */ { "(srcb ^ srcc)", 6 }, + /* 67 */ { "(srcb ^ (srcc | ~(srca | srcb)))", 7 }, + /* 68 */ { "((srca & srcb) ^ (srcc & (srca | srcb)))", 7 }, + /* 69 */ { "~(srca ^ srcb ^ srcc)", 7 }, + /* 6a */ { "(srcc ^ (srca & srcb))", 7 }, + /* 6b */ { "~(srca ^ srcb ^ (srcc & (srca | srcb)))", 7 }, + /* 6c */ { "(srcb ^ (srca & srcc))", 7 }, + /* 6d */ { "~(srca ^ srcc ^ (srcb & (srca | srcc)))", 7 }, + /* 6e */ { "((~srca & srcb) | (srcb ^ srcc))", 7 }, + /* 6f */ { "(~srca | (srcb ^ srcc))", 7 }, + /* 70 */ { "(srca & ~(srcb & srcc))", 7 }, + /* 71 */ { "~(srca ^ ((srca ^ srcb) | (srca ^ srcc)))", 7 }, + /* 72 */ { "(srcb ^ (srcc | (srca ^ srcb)))", 7 }, + /* 73 */ { "~(srcb & (~srca | srcc))", 7 }, + /* 74 */ { "(srcc ^ (srcb | (srca ^ srcc)))", 7 }, + /* 75 */ { "~(srcc & (~srca | srcb))", 7 }, + /* 76 */ { "(srcb ^ (srcc | (srca ^ (srca & srcb))))", 7 }, + /* 77 */ { "~(srcb & srcc)", 6 }, + /* 78 */ { "(srca ^ (srcb & srcc))", 7 }, + /* 79 */ { "~(srcb ^ srcc ^ (srca & (srcb | srcc)))", 7 }, + /* 7a */ { "((srca & ~srcb) | (srca ^ srcc))", 7 }, + /* 7b */ { "(~srcb | (srca ^ srcc))", 7 }, + /* 7c */ { "((srca ^ srcb) | (srca & ~srcc))", 7 }, + /* 7d */ { "(~srcc | (srca ^ srcb))", 7 }, + /* 7e */ { "((srca ^ srcb) | (srca ^ srcc))", 7 }, + /* 7f */ { "~(srca & srcb & srcc)", 7 }, + /* 80 */ { "(srca & srcb & srcc)", 7 }, + /* 81 */ { "~((srca ^ srcb) | (srca ^ srcc))", 7 }, + /* 82 */ { "(srcc & ~(srca ^ srcb))", 7 }, + /* 83 */ { "(srca ^ (~srcb | (srca & ~srcc)))", 7 }, + /* 84 */ { "(srcb & ~(srca ^ srcc))", 7 }, + /* 85 */ { "(srca ^ (~srcc | (srca & ~srcb)))", 7 }, + /* 86 */ { "(srcb ^ srcc ^ (srca & (srcb | srcc)))", 7 }, + /* 87 */ { "~(srca ^ (srcb & srcc))", 7 }, + /* 88 */ { "(srcb & srcc)", 6 }, + /* 89 */ { "(srcb ^ (~srcc & (~srca | srcb)))", 7 }, + /* 8a */ { "(srcc & (~srca | srcb))", 7 }, + /* 8b */ { "(srca ^ (~srcb | (srca ^ srcc)))", 7 }, + /* 8c */ { "(srcb & (~srca | srcc))", 7 }, + /* 8d */ { "(srca ^ (~srcc | (srca ^ srcb)))", 7 }, + /* 8e */ { "(srca ^ ((srca ^ srcb) | (srca ^ srcc)))", 7 }, + /* 8f */ { "(~srca | (srcb & srcc))", 7 }, + /* 90 */ { "(srca & ~(srcb ^ srcc))", 7 }, + /* 91 */ { "(srcb ^ (~srcc | (~srca & srcb)))", 7 }, + /* 92 */ { "(srca ^ srcc ^ (srcb & (srca | srcc)))", 7 }, + /* 93 */ { "~(srcb ^ (srca & srcc))", 7 }, + /* 94 */ { "(srca ^ srcb ^ (srcc & (srca | srcb)))", 7 }, + /* 95 */ { "~(srcc ^ (srca & srcb))", 7 }, + /* 96 */ { "(srca ^ srcb ^ srcc)", 7 }, + /* 97 */ { "(srca ^ srcb ^ (srcc | ~(srca | srcb)))", 7 }, + /* 98 */ { "(srcb ^ (~srcc & (srca | srcb)))", 7 }, + /* 99 */ { "~(srcb ^ srcc)", 6 }, + /* 9a */ { "(srcc ^ (srca & ~srcb))", 7 }, + /* 9b */ { "~(srcb ^ (srcc & (srca | srcb)))", 7 }, + /* 9c */ { "(srcb ^ (srca & ~srcc))", 7 }, + /* 9d */ { "~(srcc ^ (srcb & (srca | srcc)))", 7 }, + /* 9e */ { "(srcb ^ srcc ^ (srca | (srcb & srcc)))", 7 }, + /* 9f */ { "~(srca & (srcb ^ srcc))", 7 }, + /* a0 */ { "(srca & srcc)", 5 }, + /* a1 */ { "(srca ^ (~srcc & (srca | ~srcb)))", 7 }, + /* a2 */ { "(srcc & (srca | ~srcb))", 7 }, + /* a3 */ { "(srcb ^ (~srca | (srcb ^ srcc)))", 7 }, + /* a4 */ { "(srca ^ (~srcc & (srca | srcb)))", 7 }, + /* a5 */ { "~(srca ^ srcc)", 5 }, + /* a6 */ { "(srcc ^ (~srca & srcb))", 7 }, + /* a7 */ { "~(srca ^ (srcc & (srca | srcb)))", 7 }, + /* a8 */ { "(srcc & (srca | srcb))", 7 }, + /* a9 */ { "~(srcc ^ (srca | srcb))", 7 }, + /* aa */ { "srcc", 4 }, + /* ab */ { "(srcc | ~(srca | srcb))", 7 }, + /* ac */ { "(srcb ^ (srca & (srcb ^ srcc)))", 7 }, + /* ad */ { "~(srcc ^ (srca | (srcb & srcc)))", 7 }, + /* ae */ { "(srcc | (~srca & srcb))", 7 }, + /* af */ { "(~srca | srcc)", 5 }, + /* b0 */ { "(srca & (~srcb | srcc))", 7 }, + /* b1 */ { "~(srca ^ (srcc | (srca ^ srcb)))", 7 }, + /* b2 */ { "(srca ^ ((srca ^ srcc) & (srcb ^ srcc)))", 7 }, + /* b3 */ { "(~srcb | (srca & srcc))", 7 }, + /* b4 */ { "(srca ^ (srcb & ~srcc))", 7 }, + /* b5 */ { "~(srcc ^ (srca & (srcb | srcc)))", 7 }, + /* b6 */ { "(srca ^ srcc ^ (srcb | (srca & srcc)))", 7 }, + /* b7 */ { "~(srcb & (srca ^ srcc))", 7 }, + /* b8 */ { "(srca ^ (srcb & (srca ^ srcc)))", 7 }, + /* b9 */ { "~(srcc ^ (srcb | (srca & srcc)))", 7 }, + /* ba */ { "(srcc | (srca & ~srcb))", 7 }, + /* bb */ { "(~srcb | srcc)", 6 }, + /* bc */ { "((srca ^ srcb) | (srca & srcc))", 7 }, + /* bd */ { "((srca ^ srcb) | ~(srca ^ srcc))", 7 }, + /* be */ { "(srcc | (srca ^ srcb))", 7 }, + /* bf */ { "(srcc | ~(srca & srcb))", 7 }, + /* c0 */ { "(srca & srcb)", 3 }, + /* c1 */ { "(srca ^ (~srcb & (srca | ~srcc)))", 7 }, + /* c2 */ { "(srca ^ (~srcb & (srca | srcc)))", 7 }, + /* c3 */ { "~(srca ^ srcb)", 3 }, + /* c4 */ { "(srcb & (srca | ~srcc))", 7 }, + /* c5 */ { "~(srcb ^ (srca | (srcb ^ srcc)))", 7 }, + /* c6 */ { "(srcb ^ (~srca & srcc))", 7 }, + /* c7 */ { "~(srca ^ (srcb & (srca | srcc)))", 7 }, + /* c8 */ { "(srcb & (srca | srcc))", 7 }, + /* c9 */ { "~(srcb ^ (srca | srcc))", 7 }, + /* ca */ { "(srcc ^ (srca & (srcb ^ srcc)))", 7 }, + /* cb */ { "~(srcb ^ (srca | (srcb & srcc)))", 7 }, + /* cc */ { "srcb", 2 }, + /* cd */ { "(srcb | ~(srca | srcc))", 7 }, + /* ce */ { "(srcb | (~srca & srcc))", 7 }, + /* cf */ { "(~srca | srcb)", 3 }, + /* d0 */ { "(srca & (srcb | ~srcc))", 7 }, + /* d1 */ { "~(srca ^ (srcb | (srca ^ srcc)))", 7 }, + /* d2 */ { "(srca ^ (~srcb & srcc))", 7 }, + /* d3 */ { "~(srcb ^ (srca & (srcb | srcc)))", 7 }, + /* d4 */ { "(srca ^ ((srca ^ srcb) & (srcb ^ srcc)))", 7 }, + /* d5 */ { "(~srcc | (srca & srcb))", 7 }, + /* d6 */ { "(srca ^ srcb ^ (srcc | (srca & srcb)))", 7 }, + /* d7 */ { "~(srcc & (srca ^ srcb))", 7 }, + /* d8 */ { "(srca ^ (srcc & (srca ^ srcb)))", 7 }, + /* d9 */ { "~(srcb ^ (srcc | (srca & srcb)))", 7 }, + /* da */ { "((srca & srcb) | (srca ^ srcc))", 7 }, + /* db */ { "~((srca ^ srcb) & (srcb ^ srcc))", 7 }, + /* dc */ { "(srcb | (srca & ~srcc))", 7 }, + /* dd */ { "(srcb | ~srcc)", 6 }, + /* de */ { "(srcb | (srca ^ srcc))", 7 }, + /* df */ { "(srcb | ~(srca & srcc))", 7 }, + /* e0 */ { "(srca & (srcb | srcc))", 7 }, + /* e1 */ { "~(srca ^ (srcb | srcc))", 7 }, + /* e2 */ { "(srcc ^ (srcb & (srca ^ srcc)))", 7 }, + /* e3 */ { "~(srca ^ (srcb | (srca & srcc)))", 7 }, + /* e4 */ { "(srcb ^ (srcc & (srca ^ srcb)))", 7 }, + /* e5 */ { "~(srca ^ (srcc | (srca & srcb)))", 7 }, + /* e6 */ { "((srca & srcb) | (srcb ^ srcc))", 7 }, + /* e7 */ { "~((srca ^ srcb) & (srca ^ srcc))", 7 }, + /* e8 */ { "(srca ^ ((srca ^ srcb) & (srca ^ srcc)))", 7 }, + /* e9 */ { "(srca ^ srcb ^ (~srcc | (srca & srcb)))", 7 }, + /* ea */ { "(srcc | (srca & srcb))", 7 }, + /* eb */ { "(srcc | ~(srca ^ srcb))", 7 }, + /* ec */ { "(srcb | (srca & srcc))", 7 }, + /* ed */ { "(srcb | ~(srca ^ srcc))", 7 }, + /* ee */ { "(srcb | srcc)", 6 }, + /* ef */ { "(~srca | srcb | srcc)", 7 }, + /* f0 */ { "srca", 1 }, + /* f1 */ { "(srca | ~(srcb | srcc))", 7 }, + /* f2 */ { "(srca | (~srcb & srcc))", 7 }, + /* f3 */ { "(srca | ~srcb)", 3 }, + /* f4 */ { "(srca | (srcb & ~srcc))", 7 }, + /* f5 */ { "(srca | ~srcc)", 5 }, + /* f6 */ { "(srca | (srcb ^ srcc))", 7 }, + /* f7 */ { "(srca | ~(srcb & srcc))", 7 }, + /* f8 */ { "(srca | (srcb & srcc))", 7 }, + /* f9 */ { "(srca | ~(srcb ^ srcc))", 7 }, + /* fa */ { "(srca | srcc)", 5 }, + /* fb */ { "(srca | ~srcb | srcc)", 7 }, + /* fc */ { "(srca | srcb)", 3 }, + /* fd */ { "(srca | srcb | ~srcc)", 7 }, + /* fe */ { "(srca | srcb | srcc)", 7 }, + /* ff */ { "0xFFFFFFFF", 0 } }; diff --git a/src/blittable.cpp b/src/blittable.cpp index cf9f1bdd..c81e0b69 100644 --- a/src/blittable.cpp +++ b/src/blittable.cpp @@ -1,79 +1,81 @@ #include "sysconfig.h" #include "sysdeps.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "savestate.h" #include "blitter.h" #include "blitfunc.h" -blitter_func * const blitfunc_dofast[256] = { -blitdofast_0, 0, 0, 0, 0, 0, 0, 0, -0, 0, blitdofast_a, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, blitdofast_2a, 0, 0, 0, 0, 0, -blitdofast_30, 0, 0, 0, 0, 0, 0, 0, -0, 0, blitdofast_3a, 0, blitdofast_3c, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, blitdofast_4a, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, blitdofast_6a, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, blitdofast_8a, 0, blitdofast_8c, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, blitdofast_9a, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -blitdofast_a8, 0, blitdofast_aa, 0, 0, 0, 0, 0, -0, blitdofast_b1, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, blitdofast_ca, 0, blitdofast_cc, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -blitdofast_d8, 0, 0, 0, 0, 0, 0, 0, -0, 0, blitdofast_e2, 0, 0, 0, 0, 0, -0, 0, blitdofast_ea, 0, 0, 0, 0, 0, -blitdofast_f0, 0, 0, 0, 0, 0, 0, 0, -0, 0, blitdofast_fa, 0, blitdofast_fc, 0, 0, 0 +blitter_func * const blitfunc_dofast[256] = +{ + blitdofast_0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, blitdofast_a, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, blitdofast_2a, 0, 0, 0, 0, 0, + blitdofast_30, 0, 0, 0, 0, 0, 0, 0, + 0, 0, blitdofast_3a, 0, blitdofast_3c, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, blitdofast_4a, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, blitdofast_6a, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, blitdofast_8a, 0, blitdofast_8c, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, blitdofast_9a, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + blitdofast_a8, 0, blitdofast_aa, 0, 0, 0, 0, 0, + 0, blitdofast_b1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, blitdofast_ca, 0, blitdofast_cc, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + blitdofast_d8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, blitdofast_e2, 0, 0, 0, 0, 0, + 0, 0, blitdofast_ea, 0, 0, 0, 0, 0, + blitdofast_f0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, blitdofast_fa, 0, blitdofast_fc, 0, 0, 0 }; -blitter_func * const blitfunc_dofast_desc[256] = { -blitdofast_desc_0, 0, 0, 0, 0, 0, 0, 0, -0, 0, blitdofast_desc_a, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, blitdofast_desc_2a, 0, 0, 0, 0, 0, -blitdofast_desc_30, 0, 0, 0, 0, 0, 0, 0, -0, 0, blitdofast_desc_3a, 0, blitdofast_desc_3c, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, blitdofast_desc_4a, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, blitdofast_desc_6a, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, blitdofast_desc_8a, 0, blitdofast_desc_8c, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, blitdofast_desc_9a, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -blitdofast_desc_a8, 0, blitdofast_desc_aa, 0, 0, 0, 0, 0, -0, blitdofast_desc_b1, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -0, 0, blitdofast_desc_ca, 0, blitdofast_desc_cc, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -blitdofast_desc_d8, 0, 0, 0, 0, 0, 0, 0, -0, 0, blitdofast_desc_e2, 0, 0, 0, 0, 0, -0, 0, blitdofast_desc_ea, 0, 0, 0, 0, 0, -blitdofast_desc_f0, 0, 0, 0, 0, 0, 0, 0, -0, 0, blitdofast_desc_fa, 0, blitdofast_desc_fc, 0, 0, 0 +blitter_func * const blitfunc_dofast_desc[256] = +{ + blitdofast_desc_0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, blitdofast_desc_a, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, blitdofast_desc_2a, 0, 0, 0, 0, 0, + blitdofast_desc_30, 0, 0, 0, 0, 0, 0, 0, + 0, 0, blitdofast_desc_3a, 0, blitdofast_desc_3c, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, blitdofast_desc_4a, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, blitdofast_desc_6a, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, blitdofast_desc_8a, 0, blitdofast_desc_8c, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, blitdofast_desc_9a, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + blitdofast_desc_a8, 0, blitdofast_desc_aa, 0, 0, 0, 0, 0, + 0, blitdofast_desc_b1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, blitdofast_desc_ca, 0, blitdofast_desc_cc, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + blitdofast_desc_d8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, blitdofast_desc_e2, 0, 0, 0, 0, 0, + 0, 0, blitdofast_desc_ea, 0, 0, 0, 0, 0, + blitdofast_desc_f0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, blitdofast_desc_fa, 0, blitdofast_desc_fc, 0, 0, 0 }; diff --git a/src/blitter.cpp b/src/blitter.cpp index f603f74c..449d1c86 100644 --- a/src/blitter.cpp +++ b/src/blitter.cpp @@ -1,11 +1,11 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Custom chip emulation - * - * (c) 1995 Bernd Schmidt, Alessandro Bissacco - * (c) 2002 - 2005 Toni Wilen - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Custom chip emulation + * + * (c) 1995 Bernd Schmidt, Alessandro Bissacco + * (c) 2002 - 2005 Toni Wilen + */ #define SPEEDUP @@ -14,7 +14,7 @@ #include "options.h" #include "uae.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "events.h" @@ -70,22 +70,22 @@ number of cycles, initial cycle, main cycle static const int blit_cycle_diagram[][DIAGSIZE] = { - { 2, 0,0, 0,0 }, /* 0 -- */ - { 2, 0,0, 0,4 }, /* 1 -D */ - { 2, 0,3, 0,3 }, /* 2 -C */ - { 3, 0,3,0, 0,3,4 }, /* 3 -CD */ - { 3, 0,2,0, 0,2,0 }, /* 4 -B- */ - { 3, 0,2,0, 0,2,4 }, /* 5 -BD */ - { 3, 0,2,3, 0,2,3 }, /* 6 -BC */ - { 4, 0,2,3,0, 0,2,3,4 }, /* 7 -BCD */ - { 2, 1,0, 1,0 }, /* 8 A- */ - { 2, 1,0, 1,4 }, /* 9 AD */ - { 2, 1,3, 1,3 }, /* A AC */ - { 3, 1,3,0, 1,3,4, }, /* B ACD */ - { 3, 1,2,0, 1,2,0 }, /* C AB- */ - { 3, 1,2,0, 1,2,4 }, /* D ABD */ - { 3, 1,2,3, 1,2,3 }, /* E ABC */ - { 4, 1,2,3,0, 1,2,3,4 } /* F ABCD */ + { 2, 0,0, 0,0 }, /* 0 -- */ + { 2, 0,0, 0,4 }, /* 1 -D */ + { 2, 0,3, 0,3 }, /* 2 -C */ + { 3, 0,3,0, 0,3,4 }, /* 3 -CD */ + { 3, 0,2,0, 0,2,0 }, /* 4 -B- */ + { 3, 0,2,0, 0,2,4 }, /* 5 -BD */ + { 3, 0,2,3, 0,2,3 }, /* 6 -BC */ + { 4, 0,2,3,0, 0,2,3,4 }, /* 7 -BCD */ + { 2, 1,0, 1,0 }, /* 8 A- */ + { 2, 1,0, 1,4 }, /* 9 AD */ + { 2, 1,3, 1,3 }, /* A AC */ + { 3, 1,3,0, 1,3,4, }, /* B ACD */ + { 3, 1,2,0, 1,2,0 }, /* C AB- */ + { 3, 1,2,0, 1,2,4 }, /* D ABD */ + { 3, 1,2,3, 1,2,3 }, /* E ABC */ + { 4, 1,2,3,0, 1,2,3,4 } /* F ABCD */ }; /* @@ -97,22 +97,22 @@ idle cycle added (still requires free bus cycle) static const int blit_cycle_diagram_fill[][DIAGSIZE] = { - { 0 }, /* 0 */ - { 3, 0,0,0, 0,4,0 }, /* 1 */ - { 0 }, /* 2 */ - { 0 }, /* 3 */ - { 0 }, /* 4 */ - { 4, 0,2,0,0, 0,2,4,0 }, /* 5 */ - { 0 }, /* 6 */ - { 0 }, /* 7 */ - { 0 }, /* 8 */ - { 3, 1,0,0, 1,4,0 }, /* 9 */ - { 0 }, /* A */ - { 0 }, /* B */ - { 0 }, /* C */ - { 4, 1,2,0,0, 1,2,4,0 }, /* D */ - { 0 }, /* E */ - { 0 }, /* F */ + { 0 }, /* 0 */ + { 3, 0,0,0, 0,4,0 }, /* 1 */ + { 0 }, /* 2 */ + { 0 }, /* 3 */ + { 0 }, /* 4 */ + { 4, 0,2,0,0, 0,2,4,0 }, /* 5 */ + { 0 }, /* 6 */ + { 0 }, /* 7 */ + { 0 }, /* 8 */ + { 3, 1,0,0, 1,4,0 }, /* 9 */ + { 0 }, /* A */ + { 0 }, /* B */ + { 0 }, /* C */ + { 4, 1,2,0,0, 1,2,4,0 }, /* D */ + { 0 }, /* E */ + { 0 }, /* F */ }; /* @@ -145,872 +145,963 @@ There is at least one demo that does this.. // 5 = internal "processing cycle" static const int blit_cycle_diagram_line[] = { - 4, 0,3,5,4, 0,3,5,4 + 4, 0,3,5,4, 0,3,5,4 }; static const int blit_cycle_diagram_finald[] = { - 2, 0,4, 0,4 + 2, 0,4, 0,4 }; static const int blit_cycle_diagram_finalld[] = { - 2, 0,0, 0,0 + 2, 0,0, 0,0 }; static int get_cycle_diagram_type (const int *diag) { - for (int i = 0; i < 16; i++) { - if (diag == &blit_cycle_diagram[i][0]) - return i; - if (diag == &blit_cycle_diagram_fill[i][0]) - return i + 0x40; - } - if (diag == blit_cycle_diagram_line) - return 0x80; - if (diag == blit_cycle_diagram_finald) - return 0x81; - if (diag == blit_cycle_diagram_finalld) - return 0x82; - return 0xff; + for (int i = 0; i < 16; i++) + { + if (diag == &blit_cycle_diagram[i][0]) + return i; + if (diag == &blit_cycle_diagram_fill[i][0]) + return i + 0x40; + } + if (diag == blit_cycle_diagram_line) + return 0x80; + if (diag == blit_cycle_diagram_finald) + return 0x81; + if (diag == blit_cycle_diagram_finalld) + return 0x82; + return 0xff; } static const int *set_cycle_diagram_type (uae_u8 diag) { - if (diag >= 0x00 && diag <= 0x0f) - return &blit_cycle_diagram[diag][0]; - if (diag >= 0x40 && diag <= 0x4f) - return &blit_cycle_diagram_fill[diag][0]; - if (diag == 0x80) - return blit_cycle_diagram_line; - if (diag == 0x81) - return blit_cycle_diagram_finald; - if (diag == 0x82) - return blit_cycle_diagram_finalld; - return NULL; + if (diag >= 0x00 && diag <= 0x0f) + return &blit_cycle_diagram[diag][0]; + if (diag >= 0x40 && diag <= 0x4f) + return &blit_cycle_diagram_fill[diag][0]; + if (diag == 0x80) + return blit_cycle_diagram_line; + if (diag == 0x81) + return blit_cycle_diagram_finald; + if (diag == 0x82) + return blit_cycle_diagram_finalld; + return NULL; } void build_blitfilltable (void) { - unsigned int d, fillmask; - int i; + unsigned int d, fillmask; + int i; - for (i = 0; i < BLITTER_MAX_WORDS; i++) - blit_masktable[i] = 0xFFFF; + for (i = 0; i < BLITTER_MAX_WORDS; i++) + blit_masktable[i] = 0xFFFF; - for (d = 0; d < 256; d++) { - for (i = 0; i < 4; i++) { - int fc = i & 1; - uae_u8 data = d; - for (fillmask = 1; fillmask != 0x100; fillmask <<= 1) { - uae_u16 tmp = data; - if (fc) { - if (i & 2) - data |= fillmask; - else - data ^= fillmask; - } - if (tmp & fillmask) fc = !fc; - } - blit_filltable[d][i][0] = data; - blit_filltable[d][i][1] = fc; - } - } + for (d = 0; d < 256; d++) + { + for (i = 0; i < 4; i++) + { + int fc = i & 1; + uae_u8 data = d; + for (fillmask = 1; fillmask != 0x100; fillmask <<= 1) + { + uae_u16 tmp = data; + if (fc) + { + if (i & 2) + data |= fillmask; + else + data ^= fillmask; + } + if (tmp & fillmask) fc = !fc; + } + blit_filltable[d][i][0] = data; + blit_filltable[d][i][1] = fc; + } + } } static void blitter_dump (void) { - write_log (_T("PT A=%08X B=%08X C=%08X D=%08X\n"), bltapt, bltbpt, bltcpt, bltdpt); - write_log (_T("CON0=%04X CON1=%04X DAT A=%04X B=%04X C=%04X\n"), - bltcon0, bltcon1, blt_info.bltadat, blt_info.bltbdat, blt_info.bltcdat); - write_log (_T("AFWM=%04X ALWM=%04X MOD A=%04X B=%04X C=%04X D=%04X\n"), - blt_info.bltafwm, blt_info.bltalwm, - blt_info.bltamod & 0xffff, blt_info.bltbmod & 0xffff, blt_info.bltcmod & 0xffff, blt_info.bltdmod & 0xffff); + write_log (_T("PT A=%08X B=%08X C=%08X D=%08X\n"), bltapt, bltbpt, bltcpt, bltdpt); + write_log (_T("CON0=%04X CON1=%04X DAT A=%04X B=%04X C=%04X\n"), + bltcon0, bltcon1, blt_info.bltadat, blt_info.bltbdat, blt_info.bltcdat); + write_log (_T("AFWM=%04X ALWM=%04X MOD A=%04X B=%04X C=%04X D=%04X\n"), + blt_info.bltafwm, blt_info.bltalwm, + blt_info.bltamod & 0xffff, blt_info.bltbmod & 0xffff, blt_info.bltcmod & 0xffff, blt_info.bltdmod & 0xffff); } STATIC_INLINE int channel_state (int cycles) { - if (cycles < blit_diag[0]) - return blit_diag[1 + cycles]; - cycles -= blit_diag[0]; - cycles %= blit_diag[0]; - return blit_diag[1 + blit_diag[0] + cycles]; + if (cycles < blit_diag[0]) + return blit_diag[1 + cycles]; + cycles -= blit_diag[0]; + cycles %= blit_diag[0]; + return blit_diag[1 + blit_diag[0] + cycles]; } STATIC_INLINE void blitter_done (void) { - ddat1use = 0; - bltstate = BLT_done; - send_interrupt (6); - blitter_done_notify (); - event_remevent(ev_blitter); - unset_special (SPCFLAG_BLTNASTY); + ddat1use = 0; + bltstate = BLT_done; + send_interrupt (6); + blitter_done_notify (); + event_remevent(ev_blitter); + unset_special (SPCFLAG_BLTNASTY); } static void blitter_dofast(void) { - int i,j; - uaecptr bltadatptr = 0, bltbdatptr = 0, bltcdatptr = 0, bltddatptr = 0; - uae_u8 mt = bltcon0 & 0xFF; + int i,j; + uaecptr bltadatptr = 0, bltbdatptr = 0, bltcdatptr = 0, bltddatptr = 0; + uae_u8 mt = bltcon0 & 0xFF; - blit_masktable[BLITTER_MAX_WORDS - 1] = blt_info.bltafwm; - blit_masktable[BLITTER_MAX_WORDS - blt_info.hblitsize] &= blt_info.bltalwm; + blit_masktable[BLITTER_MAX_WORDS - 1] = blt_info.bltafwm; + blit_masktable[BLITTER_MAX_WORDS - blt_info.hblitsize] &= blt_info.bltalwm; - if (bltcon0 & 0x800) { - bltadatptr = (uaecptr)get_real_address(bltapt); - bltapt += (blt_info.hblitsize * 2 + blt_info.bltamod) * blt_info.vblitsize; - } - if (bltcon0 & 0x400) { - bltbdatptr = (uaecptr)get_real_address(bltbpt); - bltbpt += (blt_info.hblitsize * 2 + blt_info.bltbmod) * blt_info.vblitsize; - } - if (bltcon0 & 0x200) { - bltcdatptr = (uaecptr)get_real_address(bltcpt); - bltcpt += (blt_info.hblitsize * 2 + blt_info.bltcmod) * blt_info.vblitsize; - } - if (bltcon0 & 0x100) { - bltddatptr = bltdpt; - bltdpt += (blt_info.hblitsize * 2 + blt_info.bltdmod) * blt_info.vblitsize; - } + if (bltcon0 & 0x800) + { + bltadatptr = (uaecptr)get_real_address(bltapt); + bltapt += (blt_info.hblitsize * 2 + blt_info.bltamod) * blt_info.vblitsize; + } + if (bltcon0 & 0x400) + { + bltbdatptr = (uaecptr)get_real_address(bltbpt); + bltbpt += (blt_info.hblitsize * 2 + blt_info.bltbmod) * blt_info.vblitsize; + } + if (bltcon0 & 0x200) + { + bltcdatptr = (uaecptr)get_real_address(bltcpt); + bltcpt += (blt_info.hblitsize * 2 + blt_info.bltcmod) * blt_info.vblitsize; + } + if (bltcon0 & 0x100) + { + bltddatptr = bltdpt; + bltdpt += (blt_info.hblitsize * 2 + blt_info.bltdmod) * blt_info.vblitsize; + } #ifdef SPEEDUP - if (blitfunc_dofast[mt] && !blitfill) { - (*blitfunc_dofast[mt])(bltadatptr, bltbdatptr, bltcdatptr, bltddatptr, &blt_info); - } else + if (blitfunc_dofast[mt] && !blitfill) + { + (*blitfunc_dofast[mt])(bltadatptr, bltbdatptr, bltcdatptr, bltddatptr, &blt_info); + } + else #endif - { - uae_u32 blitbhold = blt_info.bltbhold; - uae_u32 preva = 0, prevb = 0; - uaecptr dstp = 0; - uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - blt_info.hblitsize; + { + uae_u32 blitbhold = blt_info.bltbhold; + uae_u32 preva = 0, prevb = 0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - blt_info.hblitsize; - for (j = blt_info.vblitsize; j--;) { - blitfc = !!(bltcon1 & 0x4); - for (i = blt_info.hblitsize; i--;) { - uae_u32 bltadat, blitahold; - if (bltadatptr) { - blt_info.bltadat = bltadat = do_get_mem_word ((uae_u16 *)bltadatptr); - bltadatptr += 2; - } else - bltadat = blt_info.bltadat; - bltadat &= blit_masktable_p[i]; - blitahold = (((uae_u32)preva << 16) | bltadat) >> blt_info.blitashift; - preva = bltadat; + for (j = blt_info.vblitsize; j--;) + { + blitfc = !!(bltcon1 & 0x4); + for (i = blt_info.hblitsize; i--;) + { + uae_u32 bltadat, blitahold; + if (bltadatptr) + { + blt_info.bltadat = bltadat = do_get_mem_word ((uae_u16 *)bltadatptr); + bltadatptr += 2; + } + else + bltadat = blt_info.bltadat; + bltadat &= blit_masktable_p[i]; + blitahold = (((uae_u32)preva << 16) | bltadat) >> blt_info.blitashift; + preva = bltadat; - if (bltbdatptr) { - uae_u16 bltbdat; - blt_info.bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)bltbdatptr); - bltbdatptr += 2; - blitbhold = (((uae_u32)prevb << 16) | bltbdat) >> blt_info.blitbshift; - prevb = bltbdat; - } - if (bltcdatptr) { - blt_info.bltcdat = do_get_mem_word ((uae_u16 *)bltcdatptr); - bltcdatptr += 2; - } - if (dstp) - chipmem_agnus_wput (dstp, blt_info.bltddat); - blt_info.bltddat = blit_func (blitahold, blitbhold, blt_info.bltcdat, mt); - if (blitfill) { - uae_u16 d = blt_info.bltddat; - int ifemode = blitife ? 2 : 0; - int fc1 = blit_filltable[d & 255][ifemode + blitfc][1]; - blt_info.bltddat = (blit_filltable[d & 255][ifemode + blitfc][0] - + (blit_filltable[d >> 8][ifemode + fc1][0] << 8)); - blitfc = blit_filltable[d >> 8][ifemode + fc1][1]; - } - if (blt_info.bltddat) - blt_info.blitzero = 0; - if (bltddatptr) { - dstp = bltddatptr; - bltddatptr += 2; - } - } - if (bltadatptr) - bltadatptr += blt_info.bltamod; - if (bltbdatptr) - bltbdatptr += blt_info.bltbmod; - if (bltcdatptr) - bltcdatptr += blt_info.bltcmod; - if (bltddatptr) - bltddatptr += blt_info.bltdmod; - } - if (dstp) - chipmem_agnus_wput (dstp, blt_info.bltddat); - blt_info.bltbhold = blitbhold; - } - blit_masktable[BLITTER_MAX_WORDS - 1] = 0xFFFF; - blit_masktable[BLITTER_MAX_WORDS - blt_info.hblitsize] = 0xFFFF; + if (bltbdatptr) + { + uae_u16 bltbdat; + blt_info.bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)bltbdatptr); + bltbdatptr += 2; + blitbhold = (((uae_u32)prevb << 16) | bltbdat) >> blt_info.blitbshift; + prevb = bltbdat; + } + if (bltcdatptr) + { + blt_info.bltcdat = do_get_mem_word ((uae_u16 *)bltcdatptr); + bltcdatptr += 2; + } + if (dstp) + chipmem_agnus_wput (dstp, blt_info.bltddat); + blt_info.bltddat = blit_func (blitahold, blitbhold, blt_info.bltcdat, mt); + if (blitfill) + { + uae_u16 d = blt_info.bltddat; + int ifemode = blitife ? 2 : 0; + int fc1 = blit_filltable[d & 255][ifemode + blitfc][1]; + blt_info.bltddat = (blit_filltable[d & 255][ifemode + blitfc][0] + + (blit_filltable[d >> 8][ifemode + fc1][0] << 8)); + blitfc = blit_filltable[d >> 8][ifemode + fc1][1]; + } + if (blt_info.bltddat) + blt_info.blitzero = 0; + if (bltddatptr) + { + dstp = bltddatptr; + bltddatptr += 2; + } + } + if (bltadatptr) + bltadatptr += blt_info.bltamod; + if (bltbdatptr) + bltbdatptr += blt_info.bltbmod; + if (bltcdatptr) + bltcdatptr += blt_info.bltcmod; + if (bltddatptr) + bltddatptr += blt_info.bltdmod; + } + if (dstp) + chipmem_agnus_wput (dstp, blt_info.bltddat); + blt_info.bltbhold = blitbhold; + } + blit_masktable[BLITTER_MAX_WORDS - 1] = 0xFFFF; + blit_masktable[BLITTER_MAX_WORDS - blt_info.hblitsize] = 0xFFFF; - bltstate = BLT_done; + bltstate = BLT_done; } static void blitter_dofast_desc(void) { - int i,j; - uaecptr bltadatptr = 0, bltbdatptr = 0, bltcdatptr = 0, bltddatptr = 0; - uae_u8 mt = bltcon0 & 0xFF; + int i,j; + uaecptr bltadatptr = 0, bltbdatptr = 0, bltcdatptr = 0, bltddatptr = 0; + uae_u8 mt = bltcon0 & 0xFF; - blit_masktable[BLITTER_MAX_WORDS - 1] = blt_info.bltafwm; - blit_masktable[BLITTER_MAX_WORDS - blt_info.hblitsize] &= blt_info.bltalwm; + blit_masktable[BLITTER_MAX_WORDS - 1] = blt_info.bltafwm; + blit_masktable[BLITTER_MAX_WORDS - blt_info.hblitsize] &= blt_info.bltalwm; - if (bltcon0 & 0x800) { - bltadatptr = (uaecptr)get_real_address(bltapt); - bltapt -= (blt_info.hblitsize * 2 + blt_info.bltamod) * blt_info.vblitsize; - } - if (bltcon0 & 0x400) { - bltbdatptr = (uaecptr)get_real_address(bltbpt); - bltbpt -= (blt_info.hblitsize * 2 + blt_info.bltbmod) * blt_info.vblitsize; - } - if (bltcon0 & 0x200) { - bltcdatptr = (uaecptr)get_real_address(bltcpt); - bltcpt -= (blt_info.hblitsize * 2 + blt_info.bltcmod) * blt_info.vblitsize; - } - if (bltcon0 & 0x100) { - bltddatptr = bltdpt; - bltdpt -= (blt_info.hblitsize * 2 + blt_info.bltdmod) * blt_info.vblitsize; - } + if (bltcon0 & 0x800) + { + bltadatptr = (uaecptr)get_real_address(bltapt); + bltapt -= (blt_info.hblitsize * 2 + blt_info.bltamod) * blt_info.vblitsize; + } + if (bltcon0 & 0x400) + { + bltbdatptr = (uaecptr)get_real_address(bltbpt); + bltbpt -= (blt_info.hblitsize * 2 + blt_info.bltbmod) * blt_info.vblitsize; + } + if (bltcon0 & 0x200) + { + bltcdatptr = (uaecptr)get_real_address(bltcpt); + bltcpt -= (blt_info.hblitsize * 2 + blt_info.bltcmod) * blt_info.vblitsize; + } + if (bltcon0 & 0x100) + { + bltddatptr = bltdpt; + bltdpt -= (blt_info.hblitsize * 2 + blt_info.bltdmod) * blt_info.vblitsize; + } #ifdef SPEEDUP - if (blitfunc_dofast_desc[mt] && !blitfill) { - (*blitfunc_dofast_desc[mt])(bltadatptr, bltbdatptr, bltcdatptr, bltddatptr, &blt_info); - } else + if (blitfunc_dofast_desc[mt] && !blitfill) + { + (*blitfunc_dofast_desc[mt])(bltadatptr, bltbdatptr, bltcdatptr, bltddatptr, &blt_info); + } + else #endif - { - uae_u32 blitbhold = blt_info.bltbhold; - uae_u32 preva = 0, prevb = 0; - uaecptr dstp = 0; - uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - blt_info.hblitsize; + { + uae_u32 blitbhold = blt_info.bltbhold; + uae_u32 preva = 0, prevb = 0; + uaecptr dstp = 0; + uae_u32 *blit_masktable_p = blit_masktable + BLITTER_MAX_WORDS - blt_info.hblitsize; - for (j = blt_info.vblitsize; j--;) { - blitfc = !!(bltcon1 & 0x4); - for (i = blt_info.hblitsize; i--;) { - uae_u32 bltadat, blitahold; - if (bltadatptr) { - bltadat = blt_info.bltadat = do_get_mem_word ((uae_u16 *)bltadatptr); - bltadatptr -= 2; - } else - bltadat = blt_info.bltadat; - bltadat &= blit_masktable_p[i]; - blitahold = (((uae_u32)bltadat << 16) | preva) >> blt_info.blitdownashift; - preva = bltadat; + for (j = blt_info.vblitsize; j--;) + { + blitfc = !!(bltcon1 & 0x4); + for (i = blt_info.hblitsize; i--;) + { + uae_u32 bltadat, blitahold; + if (bltadatptr) + { + bltadat = blt_info.bltadat = do_get_mem_word ((uae_u16 *)bltadatptr); + bltadatptr -= 2; + } + else + bltadat = blt_info.bltadat; + bltadat &= blit_masktable_p[i]; + blitahold = (((uae_u32)bltadat << 16) | preva) >> blt_info.blitdownashift; + preva = bltadat; - if (bltbdatptr) { - uae_u16 bltbdat; - blt_info.bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)bltbdatptr); - bltbdatptr -= 2; - blitbhold = (((uae_u32)bltbdat << 16) | prevb) >> blt_info.blitdownbshift; - prevb = bltbdat; - } + if (bltbdatptr) + { + uae_u16 bltbdat; + blt_info.bltbdat = bltbdat = do_get_mem_word ((uae_u16 *)bltbdatptr); + bltbdatptr -= 2; + blitbhold = (((uae_u32)bltbdat << 16) | prevb) >> blt_info.blitdownbshift; + prevb = bltbdat; + } - if (bltcdatptr) { - blt_info.bltcdat = blt_info.bltbdat = do_get_mem_word ((uae_u16 *)bltcdatptr); - bltcdatptr -= 2; - } - if (dstp) - chipmem_agnus_wput (dstp, blt_info.bltddat); - blt_info.bltddat = blit_func (blitahold, blitbhold, blt_info.bltcdat, mt); - if (blitfill) { - uae_u16 d = blt_info.bltddat; - int ifemode = blitife ? 2 : 0; - int fc1 = blit_filltable[d & 255][ifemode + blitfc][1]; - blt_info.bltddat = (blit_filltable[d & 255][ifemode + blitfc][0] - + (blit_filltable[d >> 8][ifemode + fc1][0] << 8)); - blitfc = blit_filltable[d >> 8][ifemode + fc1][1]; - } - if (blt_info.bltddat) - blt_info.blitzero = 0; - if (bltddatptr) { - dstp = bltddatptr; - bltddatptr -= 2; - } - } - if (bltadatptr) - bltadatptr -= blt_info.bltamod; - if (bltbdatptr) - bltbdatptr -= blt_info.bltbmod; - if (bltcdatptr) - bltcdatptr -= blt_info.bltcmod; - if (bltddatptr) - bltddatptr -= blt_info.bltdmod; - } - if (dstp) - chipmem_agnus_wput (dstp, blt_info.bltddat); - blt_info.bltbhold = blitbhold; - } - blit_masktable[BLITTER_MAX_WORDS - 1] = 0xFFFF; - blit_masktable[BLITTER_MAX_WORDS - blt_info.hblitsize] = 0xFFFF; + if (bltcdatptr) + { + blt_info.bltcdat = blt_info.bltbdat = do_get_mem_word ((uae_u16 *)bltcdatptr); + bltcdatptr -= 2; + } + if (dstp) + chipmem_agnus_wput (dstp, blt_info.bltddat); + blt_info.bltddat = blit_func (blitahold, blitbhold, blt_info.bltcdat, mt); + if (blitfill) + { + uae_u16 d = blt_info.bltddat; + int ifemode = blitife ? 2 : 0; + int fc1 = blit_filltable[d & 255][ifemode + blitfc][1]; + blt_info.bltddat = (blit_filltable[d & 255][ifemode + blitfc][0] + + (blit_filltable[d >> 8][ifemode + fc1][0] << 8)); + blitfc = blit_filltable[d >> 8][ifemode + fc1][1]; + } + if (blt_info.bltddat) + blt_info.blitzero = 0; + if (bltddatptr) + { + dstp = bltddatptr; + bltddatptr -= 2; + } + } + if (bltadatptr) + bltadatptr -= blt_info.bltamod; + if (bltbdatptr) + bltbdatptr -= blt_info.bltbmod; + if (bltcdatptr) + bltcdatptr -= blt_info.bltcmod; + if (bltddatptr) + bltddatptr -= blt_info.bltdmod; + } + if (dstp) + chipmem_agnus_wput (dstp, blt_info.bltddat); + blt_info.bltbhold = blitbhold; + } + blit_masktable[BLITTER_MAX_WORDS - 1] = 0xFFFF; + blit_masktable[BLITTER_MAX_WORDS - blt_info.hblitsize] = 0xFFFF; - bltstate = BLT_done; + bltstate = BLT_done; } STATIC_INLINE void blitter_read(void) { - if (bltcon0 & 0x200) { - blt_info.bltcdat = chipmem_wget_indirect(bltcpt); - } + if (bltcon0 & 0x200) + { + blt_info.bltcdat = chipmem_wget_indirect(bltcpt); + } } STATIC_INLINE void blitter_write(void) { - if (blt_info.bltddat) - blt_info.blitzero = 0; - /* D-channel state has no effect on linedraw, but C must be enabled or nothing is drawn! */ - if (bltcon0 & 0x200) { - chipmem_wput_indirect (bltdpt, blt_info.bltddat); - } + if (blt_info.bltddat) + blt_info.blitzero = 0; + /* D-channel state has no effect on linedraw, but C must be enabled or nothing is drawn! */ + if (bltcon0 & 0x200) + { + chipmem_wput_indirect (bltdpt, blt_info.bltddat); + } } STATIC_INLINE void blitter_line_incx(void) { - if (++blinea_shift == 16) { - blinea_shift = 0; - bltcpt += 2; - } + if (++blinea_shift == 16) + { + blinea_shift = 0; + bltcpt += 2; + } } STATIC_INLINE void blitter_line_decx(void) { - if (blinea_shift-- == 0) { - blinea_shift = 15; - bltcpt -= 2; - } + if (blinea_shift-- == 0) + { + blinea_shift = 15; + bltcpt -= 2; + } } STATIC_INLINE void blitter_line_decy(void) { - bltcpt -= blt_info.bltcmod; - blitonedot = 0; + bltcpt -= blt_info.bltcmod; + blitonedot = 0; } STATIC_INLINE void blitter_line_incy(void) { - bltcpt += blt_info.bltcmod; - blitonedot = 0; + bltcpt += blt_info.bltcmod; + blitonedot = 0; } static int blitter_line(void) { - uae_u16 blitahold = (blinea & blt_info.bltafwm) >> blinea_shift; + uae_u16 blitahold = (blinea & blt_info.bltafwm) >> blinea_shift; - blt_info.bltbhold = (blineb & 1) ? 0xFFFF : 0; - int blitlinepixel = !blitsing || (blitsing && !blitonedot); - blt_info.bltddat = blit_func (blitahold, blt_info.bltbhold, blt_info.bltcdat, bltcon0 & 0xFF); - blitonedot++; + blt_info.bltbhold = (blineb & 1) ? 0xFFFF : 0; + int blitlinepixel = !blitsing || (blitsing && !blitonedot); + blt_info.bltddat = blit_func (blitahold, blt_info.bltbhold, blt_info.bltcdat, bltcon0 & 0xFF); + blitonedot++; - if (bltcon0 & 0x800) { - if (blitsign) - bltapt += (uae_s16)blt_info.bltbmod; - else - bltapt += (uae_s16)blt_info.bltamod; - } + if (bltcon0 & 0x800) + { + if (blitsign) + bltapt += (uae_s16)blt_info.bltbmod; + else + bltapt += (uae_s16)blt_info.bltamod; + } - if (!blitsign) { - if (bltcon1 & 0x10) { - if (bltcon1 & 0x8) - blitter_line_decy (); - else - blitter_line_incy (); - } else { - if (bltcon1 & 0x8) - blitter_line_decx (); - else - blitter_line_incx (); - } - } - if (bltcon1 & 0x10) { - if (bltcon1 & 0x4) - blitter_line_decx (); - else - blitter_line_incx (); - } else { - if (bltcon1 & 0x4) - blitter_line_decy (); - else - blitter_line_incy (); - } + if (!blitsign) + { + if (bltcon1 & 0x10) + { + if (bltcon1 & 0x8) + blitter_line_decy (); + else + blitter_line_incy (); + } + else + { + if (bltcon1 & 0x8) + blitter_line_decx (); + else + blitter_line_incx (); + } + } + if (bltcon1 & 0x10) + { + if (bltcon1 & 0x4) + blitter_line_decx (); + else + blitter_line_incx (); + } + else + { + if (bltcon1 & 0x4) + blitter_line_decy (); + else + blitter_line_incy (); + } - blitsign = 0 > (uae_s16)bltapt; - return blitlinepixel; + blitsign = 0 > (uae_s16)bltapt; + return blitlinepixel; } STATIC_INLINE void blitter_nxline(void) { - blineb = (blineb << 1) | (blineb >> 15); - blt_info.vblitsize--; + blineb = (blineb << 1) | (blineb >> 15); + blt_info.vblitsize--; } static void actually_do_blit(void) { - if (blitline) { - do { - blitter_read (); - if (ddat1use) - bltdpt = bltcpt; - ddat1use = 1; - if (blitter_line ()) { - blitter_write (); - } - blitter_nxline (); - if (blt_info.vblitsize == 0) - bltstate = BLT_done; - } while (bltstate != BLT_done); - bltdpt = bltcpt; - } else { - if (blitdesc) - blitter_dofast_desc (); - else - blitter_dofast (); - bltstate = BLT_done; - } + if (blitline) + { + do + { + blitter_read (); + if (ddat1use) + bltdpt = bltcpt; + ddat1use = 1; + if (blitter_line ()) + { + blitter_write (); + } + blitter_nxline (); + if (blt_info.vblitsize == 0) + bltstate = BLT_done; + } + while (bltstate != BLT_done); + bltdpt = bltcpt; + } + else + { + if (blitdesc) + blitter_dofast_desc (); + else + blitter_dofast (); + bltstate = BLT_done; + } } STATIC_INLINE void blitter_doit (void) { - actually_do_blit (); - blitter_done (); + actually_do_blit (); + blitter_done (); } void blitter_handler(void) { - static int blitter_stuck; + static int blitter_stuck; - if (!dmaen (DMA_BLITTER)) { - event_newevent (ev_blitter, 10); - blitter_stuck++; - if (blitter_stuck < 20000 || !currprefs.immediate_blits) - return; /* gotta come back later. */ - /* "free" blitter in immediate mode if it has been "stuck" ~3 frames - * fixes some JIT game incompatibilities - */ - } - blitter_stuck = 0; - if (blit_slowdown > 0 && !currprefs.immediate_blits) { - event_newevent (ev_blitter, blit_slowdown); - blit_slowdown = -1; - return; - } - event_remevent(ev_blitter); + if (!dmaen (DMA_BLITTER)) + { + event_newevent (ev_blitter, 10); + blitter_stuck++; + if (blitter_stuck < 20000 || !currprefs.immediate_blits) + return; /* gotta come back later. */ + /* "free" blitter in immediate mode if it has been "stuck" ~3 frames + * fixes some JIT game incompatibilities + */ + } + blitter_stuck = 0; + if (blit_slowdown > 0 && !currprefs.immediate_blits) + { + event_newevent (ev_blitter, blit_slowdown); + blit_slowdown = -1; + return; + } + event_remevent(ev_blitter); - blitter_doit (); + blitter_doit (); } static void blitter_force_finish (void) { - uae_u16 odmacon; - if (bltstate == BLT_done) - return; - if (bltstate != BLT_done) { - /* blitter is currently running - * force finish (no blitter state support yet) - */ - odmacon = dmacon; - dmacon |= DMA_MASTER | DMA_BLITTER; - write_log (_T("forcing blitter finish\n")); - actually_do_blit (); - blitter_done (); - dmacon = odmacon; - } + uae_u16 odmacon; + if (bltstate == BLT_done) + return; + if (bltstate != BLT_done) + { + /* blitter is currently running + * force finish (no blitter state support yet) + */ + odmacon = dmacon; + dmacon |= DMA_MASTER | DMA_BLITTER; + write_log (_T("forcing blitter finish\n")); + actually_do_blit (); + blitter_done (); + dmacon = odmacon; + } } STATIC_INLINE void blit_bltset (int con) { - int i; + int i; - if (con & 2) { - blitdesc = bltcon1 & 2; - blt_info.blitbshift = bltcon1 >> 12; - blt_info.blitdownbshift = 16 - blt_info.blitbshift; + if (con & 2) + { + blitdesc = bltcon1 & 2; + blt_info.blitbshift = bltcon1 >> 12; + blt_info.blitdownbshift = 16 - blt_info.blitbshift; - if (bltstate != BLT_done) { - return; + if (bltstate != BLT_done) + { + return; + } } - } - if (con & 1) { - blt_info.blitashift = bltcon0 >> 12; - blt_info.blitdownashift = 16 - blt_info.blitashift; - } + if (con & 1) + { + blt_info.blitashift = bltcon0 >> 12; + blt_info.blitdownashift = 16 - blt_info.blitashift; + } - blit_ch = (bltcon0 & 0x0f00) >> 8; - blitline = bltcon1 & 1; - blitfill = !!(bltcon1 & 0x18); + blit_ch = (bltcon0 & 0x0f00) >> 8; + blitline = bltcon1 & 1; + blitfill = !!(bltcon1 & 0x18); - // disable line draw if bltcon0 is written while it is active - if (!savestate_state && bltstate != BLT_done && blitline) { - blitline = 0; - bltstate = BLT_done; - write_log (_T("BLITTER: register modification during linedraw!\n")); - } + // disable line draw if bltcon0 is written while it is active + if (!savestate_state && bltstate != BLT_done && blitline) + { + blitline = 0; + bltstate = BLT_done; + write_log (_T("BLITTER: register modification during linedraw!\n")); + } - if (blitline) { - blit_diag = blit_cycle_diagram_line; - } else { - if (con & 2) { - blitfc = !!(bltcon1 & 0x4); - blitife = !!(bltcon1 & 0x8); - if ((bltcon1 & 0x18) == 0x18) { - blitife = 0; - } - } - blit_diag = blitfill && blit_cycle_diagram_fill[blit_ch][0] ? blit_cycle_diagram_fill[blit_ch] : blit_cycle_diagram[blit_ch]; - } + if (blitline) + { + blit_diag = blit_cycle_diagram_line; + } + else + { + if (con & 2) + { + blitfc = !!(bltcon1 & 0x4); + blitife = !!(bltcon1 & 0x8); + if ((bltcon1 & 0x18) == 0x18) + { + blitife = 0; + } + } + blit_diag = blitfill && blit_cycle_diagram_fill[blit_ch][0] ? blit_cycle_diagram_fill[blit_ch] : blit_cycle_diagram[blit_ch]; + } - // on the fly switching from CH=1 to CH=D -> blitter stops writing (Rampage/TEK) - // currently just switch to no-channels mode, better than crashing the demo.. - if (!savestate_state && bltstate != BLT_done) { - if (blit_ch == 13 && original_ch == 1) { - blit_faulty = 1; - } - } + // on the fly switching from CH=1 to CH=D -> blitter stops writing (Rampage/TEK) + // currently just switch to no-channels mode, better than crashing the demo.. + if (!savestate_state && bltstate != BLT_done) + { + if (blit_ch == 13 && original_ch == 1) + { + blit_faulty = 1; + } + } - if (blit_faulty) { - blit_ch = 0; - blit_diag = blit_cycle_diagram[blit_ch]; - } + if (blit_faulty) + { + blit_ch = 0; + blit_diag = blit_cycle_diagram[blit_ch]; + } - blit_dmacount = blit_dmacount2 = 0; - blit_nod = 1; - for (i = 0; i < blit_diag[0]; i++) { - int v = blit_diag[1 + blit_diag[0] + i]; - if (v <= 4) - blit_dmacount++; - if (v > 0 && v < 4) - blit_dmacount2++; - if (v == 4) - blit_nod = 0; - } - if (blit_dmacount2 == 0) { - ddat1use = 0; - } + blit_dmacount = blit_dmacount2 = 0; + blit_nod = 1; + for (i = 0; i < blit_diag[0]; i++) + { + int v = blit_diag[1 + blit_diag[0] + i]; + if (v <= 4) + blit_dmacount++; + if (v > 0 && v < 4) + blit_dmacount2++; + if (v == 4) + blit_nod = 0; + } + if (blit_dmacount2 == 0) + { + ddat1use = 0; + } } void reset_blit (int bltcon) { - if (bltstate == BLT_done) - return; - blit_bltset (bltcon); + if (bltstate == BLT_done) + return; + blit_bltset (bltcon); } static bool waitingblits (void) { - bool waited = false; - while (bltstate != BLT_done && dmaen (DMA_BLITTER)) { - waited = true; - do_cycles (8 * CYCLE_UNIT); - } - if (bltstate == BLT_done) - return true; - return false; + bool waited = false; + while (bltstate != BLT_done && dmaen (DMA_BLITTER)) + { + waited = true; + do_cycles (8 * CYCLE_UNIT); + } + if (bltstate == BLT_done) + return true; + return false; } STATIC_INLINE void blitter_start_init (void) { - blt_info.blitzero = 1; + blt_info.blitzero = 1; - blit_bltset (1 | 2); - ddat1use = 0; + blit_bltset (1 | 2); + ddat1use = 0; - if (blitline) { - blinea_shift = bltcon0 >> 12; - blinea = blt_info.bltadat; - blineb = (blt_info.bltbdat >> blt_info.blitbshift) | (blt_info.bltbdat << (16 - blt_info.blitbshift)); - blitonedot = 0; - blitsing = bltcon1 & 0x2; - blitsign = bltcon1 & 0x40; - } + if (blitline) + { + blinea_shift = bltcon0 >> 12; + blinea = blt_info.bltadat; + blineb = (blt_info.bltbdat >> blt_info.blitbshift) | (blt_info.bltbdat << (16 - blt_info.blitbshift)); + blitonedot = 0; + blitsing = bltcon1 & 0x2; + blitsign = bltcon1 & 0x40; + } } void do_blitter () { - int cycles; - int cleanstart; + int cycles; + int cleanstart; - cleanstart = 0; - if (bltstate == BLT_done) { - blit_faulty = 0; - cleanstart = 1; - } + cleanstart = 0; + if (bltstate == BLT_done) + { + blit_faulty = 0; + cleanstart = 1; + } - bltstate = BLT_done; + bltstate = BLT_done; - blit_firstline_cycles = blit_first_cycle = get_cycles (); - blit_last_cycle = 0; - blit_cyclecounter = 0; + blit_firstline_cycles = blit_first_cycle = get_cycles (); + blit_last_cycle = 0; + blit_cyclecounter = 0; - blitter_start_init (); + blitter_start_init (); - if (blitline) { - cycles = blt_info.vblitsize; - } else { - cycles = blt_info.vblitsize * blt_info.hblitsize; - blit_firstline_cycles = blit_first_cycle + (blit_diag[0] * blt_info.hblitsize) * CYCLE_UNIT + cpu_cycles; - } + if (blitline) + { + cycles = blt_info.vblitsize; + } + else + { + cycles = blt_info.vblitsize * blt_info.hblitsize; + blit_firstline_cycles = blit_first_cycle + (blit_diag[0] * blt_info.hblitsize) * CYCLE_UNIT + cpu_cycles; + } - if (cleanstart) { - original_ch = blit_ch; - } + if (cleanstart) + { + original_ch = blit_ch; + } - bltstate = BLT_init; - blit_slowdown = 0; + bltstate = BLT_init; + blit_slowdown = 0; - if (dmaen(DMA_BLITPRI)) - set_special (SPCFLAG_BLTNASTY); - else - unset_special (SPCFLAG_BLTNASTY); + if (dmaen(DMA_BLITPRI)) + set_special (SPCFLAG_BLTNASTY); + else + unset_special (SPCFLAG_BLTNASTY); - if (blt_info.vblitsize == 0 || (blitline && blt_info.hblitsize != 2)) { - if (dmaen (DMA_BLITTER)) - blitter_done (); - return; - } + if (blt_info.vblitsize == 0 || (blitline && blt_info.hblitsize != 2)) + { + if (dmaen (DMA_BLITTER)) + blitter_done (); + return; + } - blit_cyclecounter = cycles * (blit_dmacount2 + (blit_nod ? 0 : 1)); - if (!dmaen (DMA_BLITTER)) - return; + blit_cyclecounter = cycles * (blit_dmacount2 + (blit_nod ? 0 : 1)); + if (!dmaen (DMA_BLITTER)) + return; - bltstate = BLT_work; + bltstate = BLT_work; - if (currprefs.immediate_blits) { - blitter_doit (); - return; - } + if (currprefs.immediate_blits) + { + blitter_doit (); + return; + } - event_newevent(ev_blitter, blit_cyclecounter); + event_newevent(ev_blitter, blit_cyclecounter); - if (dmaen (DMA_BLITTER)) { - if (currprefs.waiting_blits) { - // wait immediately if all cycles in use and blitter nastry - if (blit_dmacount == blit_diag[0] && (regs.spcflags & SPCFLAG_BLTNASTY)) { - waitingblits (); - } - } - } + if (dmaen (DMA_BLITTER)) + { + if (currprefs.waiting_blits) + { + // wait immediately if all cycles in use and blitter nastry + if (blit_dmacount == blit_diag[0] && (regs.spcflags & SPCFLAG_BLTNASTY)) + { + waitingblits (); + } + } + } } void maybe_blit2 (int hack) { - if (dmaen (DMA_BLITTER)) { - bool doit = false; - if (currprefs.waiting_blits) { - if (blit_dmacount == blit_diag[0] && (regs.spcflags & SPCFLAG_BLTNASTY)) - doit = true; - else if (currprefs.m68k_speed < 0) - doit = true; - } - if (doit) { - if (waitingblits ()) - return; - } - } + if (dmaen (DMA_BLITTER)) + { + bool doit = false; + if (currprefs.waiting_blits) + { + if (blit_dmacount == blit_diag[0] && (regs.spcflags & SPCFLAG_BLTNASTY)) + doit = true; + else if (currprefs.m68k_speed < 0) + doit = true; + } + if (doit) + { + if (waitingblits ()) + return; + } + } - if (hack == 1 && get_cycles() < blit_firstline_cycles) - return; + if (hack == 1 && get_cycles() < blit_firstline_cycles) + return; - blitter_handler (); + blitter_handler (); } // Called only from custom.cpp if blitter DMA is now enabled and bltstate is BLT_init void blitter_check_start (void) { - // do the same as in do_blitter after dmaen check - blitter_start_init (); - bltstate = BLT_work; + // do the same as in do_blitter after dmaen check + blitter_start_init (); + bltstate = BLT_work; - if (currprefs.immediate_blits) { - blitter_doit (); - } else { - event_newevent(ev_blitter, blit_cyclecounter); - } + if (currprefs.immediate_blits) + { + blitter_doit (); + } + else + { + event_newevent(ev_blitter, blit_cyclecounter); + } } int blitnasty (void) { - int cycles, ccnt; - if (bltstate == BLT_done) - return 0; - if (!dmaen (DMA_BLITTER)) - return 0; - if (blit_last_cycle >= blit_diag[0] && blit_dmacount == blit_diag[0]) - return 0; - cycles = (get_cycles () - blit_first_cycle) / CYCLE_UNIT; - ccnt = 0; - while (blit_last_cycle < cycles) { - int c = channel_state (blit_last_cycle++); - if (!c) - ccnt++; - } - return ccnt; + int cycles, ccnt; + if (bltstate == BLT_done) + return 0; + if (!dmaen (DMA_BLITTER)) + return 0; + if (blit_last_cycle >= blit_diag[0] && blit_dmacount == blit_diag[0]) + return 0; + cycles = (get_cycles () - blit_first_cycle) / CYCLE_UNIT; + ccnt = 0; + while (blit_last_cycle < cycles) + { + int c = channel_state (blit_last_cycle++); + if (!c) + ccnt++; + } + return ccnt; } /* very approximate emulation of blitter slowdown caused by bitplane DMA */ void blitter_slowdown (int ddfstrt, int ddfstop, int totalcycles, int freecycles) { - static int oddfstrt, oddfstop, ototal, ofree; - static int slow; + static int oddfstrt, oddfstop, ototal, ofree; + static int slow; - if (!totalcycles || ddfstrt < 0 || ddfstop < 0) - return; - if (ddfstrt != oddfstrt || ddfstop != oddfstop || totalcycles != ototal || ofree != freecycles) { - int linecycles = ((ddfstop - ddfstrt + totalcycles - 1) / totalcycles) * totalcycles; - int freelinecycles = ((ddfstop - ddfstrt + totalcycles - 1) / totalcycles) * freecycles; - int dmacycles = (linecycles * blit_dmacount) / blit_diag[0]; - oddfstrt = ddfstrt; - oddfstop = ddfstop; - ototal = totalcycles; - ofree = freecycles; - slow = 0; - if (dmacycles > freelinecycles) - slow = dmacycles - freelinecycles; - } - if (blit_slowdown < 0 || blitline) - return; - blit_slowdown += slow; + if (!totalcycles || ddfstrt < 0 || ddfstop < 0) + return; + if (ddfstrt != oddfstrt || ddfstop != oddfstop || totalcycles != ototal || ofree != freecycles) + { + int linecycles = ((ddfstop - ddfstrt + totalcycles - 1) / totalcycles) * totalcycles; + int freelinecycles = ((ddfstop - ddfstrt + totalcycles - 1) / totalcycles) * freecycles; + int dmacycles = (linecycles * blit_dmacount) / blit_diag[0]; + oddfstrt = ddfstrt; + oddfstop = ddfstop; + ototal = totalcycles; + ofree = freecycles; + slow = 0; + if (dmacycles > freelinecycles) + slow = dmacycles - freelinecycles; + } + if (blit_slowdown < 0 || blitline) + return; + blit_slowdown += slow; } #ifdef SAVESTATE uae_u8 *restore_blitter (uae_u8 *src) { - uae_u32 flags = restore_u32(); + uae_u32 flags = restore_u32(); - blt_statefile_type = 0; - bltstate = BLT_done; - if (flags & 4) { - bltstate = (flags & 1) ? BLT_done : BLT_init; - } - return src; + blt_statefile_type = 0; + bltstate = BLT_done; + if (flags & 4) + { + bltstate = (flags & 1) ? BLT_done : BLT_init; + } + return src; } uae_u8 *save_blitter (int *len, uae_u8 *dstptr) { - uae_u8 *dstbak,*dst; - int forced; + uae_u8 *dstbak,*dst; + int forced; - forced = 0; - if (bltstate != BLT_done && bltstate != BLT_init) { - write_log (_T("blitter is active, forcing immediate finish\n")); - /* blitter is active just now but we don't have blitter state support yet */ - blitter_force_finish (); - forced = 2; - } - if (dstptr) - dstbak = dst = dstptr; - else - dstbak = dst = xmalloc (uae_u8, 16); - save_u32(((bltstate != BLT_done) ? 0 : 1) | forced | 4); - *len = dst - dstbak; - return dstbak; + forced = 0; + if (bltstate != BLT_done && bltstate != BLT_init) + { + write_log (_T("blitter is active, forcing immediate finish\n")); + /* blitter is active just now but we don't have blitter state support yet */ + blitter_force_finish (); + forced = 2; + } + if (dstptr) + dstbak = dst = dstptr; + else + dstbak = dst = xmalloc (uae_u8, 16); + save_u32(((bltstate != BLT_done) ? 0 : 1) | forced | 4); + *len = dst - dstbak; + return dstbak; } // totally non-real-blitter-like state save but better than nothing.. uae_u8 *restore_blitter_new (uae_u8 *src) { - uae_u8 state; - blt_statefile_type = 1; - state = restore_u8 (); + uae_u8 state; + blt_statefile_type = 1; + state = restore_u8 (); - blit_first_cycle = restore_u32 (); - blit_last_cycle = restore_u32 (); - blit_firstline_cycles = restore_u32 (); - blit_cyclecounter = restore_u32 (); - blit_slowdown = restore_u32 (); + blit_first_cycle = restore_u32 (); + blit_last_cycle = restore_u32 (); + blit_firstline_cycles = restore_u32 (); + blit_cyclecounter = restore_u32 (); + blit_slowdown = restore_u32 (); - blit_ch = restore_u8 (); - blit_dmacount = restore_u8 (); - blit_dmacount2 = restore_u8 (); - blit_nod = restore_u8 (); - blitfc = restore_u8 (); - blitife = restore_u8 (); + blit_ch = restore_u8 (); + blit_dmacount = restore_u8 (); + blit_dmacount2 = restore_u8 (); + blit_nod = restore_u8 (); + blitfc = restore_u8 (); + blitife = restore_u8 (); - blt_info.blitbshift = restore_u8 (); - blt_info.blitdownbshift = restore_u8 (); - blt_info.blitashift = restore_u8 (); - blt_info.blitdownashift = restore_u8 (); + blt_info.blitbshift = restore_u8 (); + blt_info.blitdownbshift = restore_u8 (); + blt_info.blitashift = restore_u8 (); + blt_info.blitdownashift = restore_u8 (); - ddat1use = restore_u8 (); + ddat1use = restore_u8 (); - blitline = restore_u8 (); - blitfill = restore_u8 (); - blinea = restore_u16 (); - blineb = restore_u16 (); - blinea_shift = restore_u8 (); - blitonedot = restore_u8 (); - blitsing = restore_u8 (); - blt_info.blitzero = restore_u8 (); + blitline = restore_u8 (); + blitfill = restore_u8 (); + blinea = restore_u16 (); + blineb = restore_u16 (); + blinea_shift = restore_u8 (); + blitonedot = restore_u8 (); + blitsing = restore_u8 (); + blt_info.blitzero = restore_u8 (); - blit_faulty = restore_u8 (); - original_ch = restore_u8 (); + blit_faulty = restore_u8 (); + original_ch = restore_u8 (); - blit_diag = set_cycle_diagram_type (restore_u8 ()); + blit_diag = set_cycle_diagram_type (restore_u8 ()); - if (restore_u16 () != 0x1234) - write_log (_T("error\n")); + if (restore_u16 () != 0x1234) + write_log (_T("error\n")); - bltstate = BLT_done; - if (state > 0) - do_blitter (); - return src; + bltstate = BLT_done; + if (state > 0) + do_blitter (); + return src; } uae_u8 *save_blitter_new (int *len, uae_u8 *dstptr) { - uae_u8 *dstbak,*dst; - if (dstptr) - dstbak = dst = dstptr; - else - dstbak = dst = xmalloc (uae_u8, 1000); + uae_u8 *dstbak,*dst; + if (dstptr) + dstbak = dst = dstptr; + else + dstbak = dst = xmalloc (uae_u8, 1000); - uae_u8 state; - if (bltstate == BLT_done) - state = 0; - else if (bltstate == BLT_init) - state = 1; - else - state = 2; - save_u8 (state); + uae_u8 state; + if (bltstate == BLT_done) + state = 0; + else if (bltstate == BLT_init) + state = 1; + else + state = 2; + save_u8 (state); - if (bltstate != BLT_done) { - write_log (_T("BLITTER active while saving state\n")); - blitter_dump (); - } + if (bltstate != BLT_done) + { + write_log (_T("BLITTER active while saving state\n")); + blitter_dump (); + } - save_u32 (blit_first_cycle); - save_u32 (blit_last_cycle); - save_u32 (blit_firstline_cycles); - save_u32 (blit_cyclecounter); - save_u32 (blit_slowdown); + save_u32 (blit_first_cycle); + save_u32 (blit_last_cycle); + save_u32 (blit_firstline_cycles); + save_u32 (blit_cyclecounter); + save_u32 (blit_slowdown); - save_u8 (blit_ch); - save_u8 (blit_dmacount); - save_u8 (blit_dmacount2); - save_u8 (blit_nod); - save_u8 (blitfc); - save_u8 (blitife); + save_u8 (blit_ch); + save_u8 (blit_dmacount); + save_u8 (blit_dmacount2); + save_u8 (blit_nod); + save_u8 (blitfc); + save_u8 (blitife); - save_u8 (blt_info.blitbshift); - save_u8 (blt_info.blitdownbshift); - save_u8 (blt_info.blitashift); - save_u8 (blt_info.blitdownashift); + save_u8 (blt_info.blitbshift); + save_u8 (blt_info.blitdownbshift); + save_u8 (blt_info.blitashift); + save_u8 (blt_info.blitdownashift); - save_u8 (ddat1use); + save_u8 (ddat1use); - save_u8 (blitline); - save_u8 (blitfill); - save_u16 (blinea); - save_u16 (blineb); - save_u8 (blinea_shift); - save_u8 (blitonedot); - save_u8 (blitsing); - save_u8 (blt_info.blitzero); - - save_u8 (blit_faulty); - save_u8 (original_ch); - save_u8 (get_cycle_diagram_type (blit_diag)); + save_u8 (blitline); + save_u8 (blitfill); + save_u16 (blinea); + save_u16 (blineb); + save_u8 (blinea_shift); + save_u8 (blitonedot); + save_u8 (blitsing); + save_u8 (blt_info.blitzero); - save_u16 (0x1234); + save_u8 (blit_faulty); + save_u8 (original_ch); + save_u8 (get_cycle_diagram_type (blit_diag)); - *len = dst - dstbak; - return dstbak; + save_u16 (0x1234); + + *len = dst - dstbak; + return dstbak; } #endif /* SAVESTATE */ diff --git a/src/blkdev_cdimage.cpp b/src/blkdev_cdimage.cpp index f729e47a..7efa93c3 100644 --- a/src/blkdev_cdimage.cpp +++ b/src/blkdev_cdimage.cpp @@ -24,7 +24,7 @@ #include "scsidev.h" #include "mp3decoder.h" #include "cda_play.h" -#include "memory.h" +#include "include/memory.h" #ifdef RETROPLATFORM #include "rp.h" #endif @@ -40,49 +40,50 @@ enum audenc { AUDENC_NONE, AUDENC_PCM, AUDENC_MP3, AUDENC_FLAC }; struct cdtoc { - struct zfile *handle; - uae_s64 offset; - uae_u8 *data; - struct zfile *subhandle; - int suboffset; - uae_u8 *subdata; + struct zfile *handle; + uae_s64 offset; + uae_u8 *data; + struct zfile *subhandle; + int suboffset; + uae_u8 *subdata; - uae_s64 filesize; - TCHAR *fname; - int address; - uae_u8 adr, ctrl; - int track; - int size; - int skipsize; // bytes to skip after each block - audenc enctype; - int writeoffset; - int subcode; + uae_s64 filesize; + TCHAR *fname; + int address; + uae_u8 adr, ctrl; + int track; + int size; + int skipsize; // bytes to skip after each block + audenc enctype; + int writeoffset; + int subcode; }; -struct cdunit { - bool enabled; - bool open; - uae_u8 buffer[2352]; - struct cdtoc toc[102]; - int tracks; - uae_u64 cdsize; - int blocksize; +struct cdunit +{ + bool enabled; + bool open; + uae_u8 buffer[2352]; + struct cdtoc toc[102]; + int tracks; + uae_u64 cdsize; + int blocksize; - int cdda_play_state; - int cdda_play; - int cdda_paused; - int cdda_volume[2]; - int cdda_scan; - int cd_last_pos; - int cdda_start, cdda_end; - play_subchannel_callback cdda_subfunc; - play_status_callback cdda_statusfunc; - int cdda_delay, cdda_delay_frames; + int cdda_play_state; + int cdda_play; + int cdda_paused; + int cdda_volume[2]; + int cdda_scan; + int cd_last_pos; + int cdda_start, cdda_end; + play_subchannel_callback cdda_subfunc; + play_status_callback cdda_statusfunc; + int cdda_delay, cdda_delay_frames; - int imagechange; - TCHAR newfile[MAX_DPATH]; - uae_sem_t sub_sem; - struct device_info di; + int imagechange; + TCHAR newfile[MAX_DPATH]; + uae_sem_t sub_sem; + struct device_info di; }; static struct cdunit cdunits[MAX_TOTAL_SCSI_DEVICES]; @@ -93,827 +94,926 @@ static smp_comm_pipe unpack_pipe; static struct cdunit *unitisopen (int unitnum) { - struct cdunit *cdu = &cdunits[unitnum]; - if (cdu->open) - return cdu; - return NULL; + struct cdunit *cdu = &cdunits[unitnum]; + if (cdu->open) + return cdu; + return NULL; } static struct cdtoc *findtoc (struct cdunit *cdu, int *sectorp) { - int i; - int sector; + int i; + int sector; - if (*sectorp < 0) - return NULL; - sector = *sectorp; - for (i = 0; i <= cdu->tracks; i++) { - struct cdtoc *t = &cdu->toc[i]; - if (t->address > sector) { - if (i == 0) { - *sectorp = 0; - return t; - } - t--; - sector -= t->address; - *sectorp = sector; - return t; - } - } - return NULL; + if (*sectorp < 0) + return NULL; + sector = *sectorp; + for (i = 0; i <= cdu->tracks; i++) + { + struct cdtoc *t = &cdu->toc[i]; + if (t->address > sector) + { + if (i == 0) + { + *sectorp = 0; + return t; + } + t--; + sector -= t->address; + *sectorp = sector; + return t; + } + } + return NULL; } // WOHOO, library that supports virtual file access functions. Perfect! static void flac_metadata_callback (const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data) { - struct cdtoc *t = (struct cdtoc*)client_data; - if (t->data) - return; - if(metadata->type == FLAC__METADATA_TYPE_STREAMINFO) { - t->filesize = metadata->data.stream_info.total_samples * (metadata->data.stream_info.bits_per_sample / 8) * metadata->data.stream_info.channels; - } + struct cdtoc *t = (struct cdtoc*)client_data; + if (t->data) + return; + if(metadata->type == FLAC__METADATA_TYPE_STREAMINFO) + { + t->filesize = metadata->data.stream_info.total_samples * (metadata->data.stream_info.bits_per_sample / 8) * metadata->data.stream_info.channels; + } } static void flac_error_callback (const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data) { - return; + return; } static FLAC__StreamDecoderWriteStatus flac_write_callback (const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data) { - struct cdtoc *t = (struct cdtoc*)client_data; - uae_u16 *p = (uae_u16*)(t->data + t->writeoffset); - int size = 4; - for (int i = 0; i < frame->header.blocksize && t->writeoffset < t->filesize - size; i++, t->writeoffset += size) { - *p++ = (FLAC__int16)buffer[0][i]; - *p++ = (FLAC__int16)buffer[1][i]; - } - return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE; + struct cdtoc *t = (struct cdtoc*)client_data; + uae_u16 *p = (uae_u16*)(t->data + t->writeoffset); + int size = 4; + for (int i = 0; i < frame->header.blocksize && t->writeoffset < t->filesize - size; i++, t->writeoffset += size) + { + *p++ = (FLAC__int16)buffer[0][i]; + *p++ = (FLAC__int16)buffer[1][i]; + } + return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE; } static FLAC__StreamDecoderReadStatus file_read_callback (const FLAC__StreamDecoder *decoder, FLAC__byte buffer[], size_t *bytes, void *client_data) { - struct cdtoc *t = (struct cdtoc*)client_data; - if (zfile_ftell (t->handle) >= zfile_size (t->handle)) - return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM; - return zfile_fread (buffer, *bytes, 1, t->handle) ? FLAC__STREAM_DECODER_READ_STATUS_CONTINUE : FLAC__STREAM_DECODER_READ_STATUS_ABORT; + struct cdtoc *t = (struct cdtoc*)client_data; + if (zfile_ftell (t->handle) >= zfile_size (t->handle)) + return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM; + return zfile_fread (buffer, *bytes, 1, t->handle) ? FLAC__STREAM_DECODER_READ_STATUS_CONTINUE : FLAC__STREAM_DECODER_READ_STATUS_ABORT; } static FLAC__StreamDecoderSeekStatus file_seek_callback (const FLAC__StreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data) { - struct cdtoc *t = (struct cdtoc*)client_data; - zfile_fseek (t->handle, absolute_byte_offset, SEEK_SET); - return FLAC__STREAM_DECODER_SEEK_STATUS_OK; + struct cdtoc *t = (struct cdtoc*)client_data; + zfile_fseek (t->handle, absolute_byte_offset, SEEK_SET); + return FLAC__STREAM_DECODER_SEEK_STATUS_OK; } static FLAC__StreamDecoderTellStatus file_tell_callback (const FLAC__StreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data) { - struct cdtoc *t = (struct cdtoc*)client_data; - *absolute_byte_offset = zfile_ftell (t->handle); - return FLAC__STREAM_DECODER_TELL_STATUS_OK; + struct cdtoc *t = (struct cdtoc*)client_data; + *absolute_byte_offset = zfile_ftell (t->handle); + return FLAC__STREAM_DECODER_TELL_STATUS_OK; } static FLAC__StreamDecoderLengthStatus file_len_callback (const FLAC__StreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data) { - struct cdtoc *t = (struct cdtoc*)client_data; - *stream_length = zfile_size (t->handle); - return FLAC__STREAM_DECODER_LENGTH_STATUS_OK; + struct cdtoc *t = (struct cdtoc*)client_data; + *stream_length = zfile_size (t->handle); + return FLAC__STREAM_DECODER_LENGTH_STATUS_OK; } static FLAC__bool file_eof_callback (const FLAC__StreamDecoder *decoder, void *client_data) { - struct cdtoc *t = (struct cdtoc*)client_data; - return zfile_ftell (t->handle) >= zfile_size (t->handle); + struct cdtoc *t = (struct cdtoc*)client_data; + return zfile_ftell (t->handle) >= zfile_size (t->handle); } static void flac_get_size (struct cdtoc *t) { - FLAC__StreamDecoder *decoder = FLAC__stream_decoder_new (); - if (decoder) { - FLAC__stream_decoder_set_md5_checking (decoder, false); - int init_status = FLAC__stream_decoder_init_stream (decoder, - &file_read_callback, &file_seek_callback, &file_tell_callback, - &file_len_callback, &file_eof_callback, - &flac_write_callback, &flac_metadata_callback, &flac_error_callback, t); - FLAC__stream_decoder_process_until_end_of_metadata (decoder); - FLAC__stream_decoder_delete (decoder); - } + FLAC__StreamDecoder *decoder = FLAC__stream_decoder_new (); + if (decoder) + { + FLAC__stream_decoder_set_md5_checking (decoder, false); + int init_status = FLAC__stream_decoder_init_stream (decoder, + &file_read_callback, &file_seek_callback, &file_tell_callback, + &file_len_callback, &file_eof_callback, + &flac_write_callback, &flac_metadata_callback, &flac_error_callback, t); + FLAC__stream_decoder_process_until_end_of_metadata (decoder); + FLAC__stream_decoder_delete (decoder); + } } static uae_u8 *flac_get_data (struct cdtoc *t) { - write_log (_T("FLAC: unpacking '%s'..\n"), zfile_getname (t->handle)); - t->writeoffset = 0; - FLAC__StreamDecoder *decoder = FLAC__stream_decoder_new (); - if (decoder) { - FLAC__stream_decoder_set_md5_checking (decoder, false); - int init_status = FLAC__stream_decoder_init_stream (decoder, - &file_read_callback, &file_seek_callback, &file_tell_callback, - &file_len_callback, &file_eof_callback, - &flac_write_callback, &flac_metadata_callback, &flac_error_callback, t); - FLAC__stream_decoder_process_until_end_of_stream (decoder); - FLAC__stream_decoder_delete (decoder); - write_log (_T("FLAC: %s unpacked\n"), zfile_getname (t->handle)); - } - return t->data; + write_log (_T("FLAC: unpacking '%s'..\n"), zfile_getname (t->handle)); + t->writeoffset = 0; + FLAC__StreamDecoder *decoder = FLAC__stream_decoder_new (); + if (decoder) + { + FLAC__stream_decoder_set_md5_checking (decoder, false); + int init_status = FLAC__stream_decoder_init_stream (decoder, + &file_read_callback, &file_seek_callback, &file_tell_callback, + &file_len_callback, &file_eof_callback, + &flac_write_callback, &flac_metadata_callback, &flac_error_callback, t); + FLAC__stream_decoder_process_until_end_of_stream (decoder); + FLAC__stream_decoder_delete (decoder); + write_log (_T("FLAC: %s unpacked\n"), zfile_getname (t->handle)); + } + return t->data; } static void sub_to_interleaved (const uae_u8 *s, uae_u8 *d) { - for (int i = 0; i < 8 * 12; i ++) { - int dmask = 0x80; - int smask = 1 << (7 - (i & 7)); - (*d) = 0; - for (int j = 0; j < 8; j++) { - (*d) |= (s[(i / 8) + j * 12] & smask) ? dmask : 0; - dmask >>= 1; - } - d++; - } + for (int i = 0; i < 8 * 12; i ++) + { + int dmask = 0x80; + int smask = 1 << (7 - (i & 7)); + (*d) = 0; + for (int j = 0; j < 8; j++) + { + (*d) |= (s[(i / 8) + j * 12] & smask) ? dmask : 0; + dmask >>= 1; + } + d++; + } } static void sub_to_deinterleaved (const uae_u8 *s, uae_u8 *d) { - for (int i = 0; i < 8 * 12; i ++) { - int dmask = 0x80; - int smask = 1 << (7 - (i / 12)); - (*d) = 0; - for (int j = 0; j < 8; j++) { - (*d) |= (s[(i % 12) * 8 + j] & smask) ? dmask : 0; - dmask >>= 1; - } - d++; - } + for (int i = 0; i < 8 * 12; i ++) + { + int dmask = 0x80; + int smask = 1 << (7 - (i / 12)); + (*d) = 0; + for (int j = 0; j < 8; j++) + { + (*d) |= (s[(i % 12) * 8 + j] & smask) ? dmask : 0; + dmask >>= 1; + } + d++; + } } static int getsub_deinterleaved (uae_u8 *dst, struct cdunit *cdu, struct cdtoc *t, int sector) { - int ret = 0; - uae_sem_wait (&cdu->sub_sem); - if (t->subcode) { - if (t->subhandle) { - int offset = 0; - int totalsize = SUB_CHANNEL_SIZE; - if (t->skipsize) { - totalsize += t->size; - offset = t->size; - } - zfile_fseek (t->subhandle, (uae_u64)sector * totalsize + t->suboffset + offset, SEEK_SET); - if (zfile_fread (dst, SUB_CHANNEL_SIZE, 1, t->subhandle) > 0) - ret = t->subcode; - } else { - memcpy (dst, t->subdata + sector * SUB_CHANNEL_SIZE + t->suboffset, SUB_CHANNEL_SIZE); - ret = t->subcode; - } - } - if (!ret) { - memset (dst, 0, SUB_CHANNEL_SIZE); - // regenerate Q-subchannel - uae_u8 *s = dst + 12; - s[0] = (t->ctrl << 4) | (t->adr << 0); - s[1] = tobcd (t - &cdu->toc[0] + 1); - s[2] = tobcd (1); - int msf = lsn2msf (sector); - tolongbcd (s + 7, msf); - msf = lsn2msf (sector - t->address - 150); - tolongbcd (s + 3, msf); - ret = 2; - } - if (ret == 1) { - uae_u8 tmp[SUB_CHANNEL_SIZE]; - memcpy (tmp, dst, SUB_CHANNEL_SIZE); - sub_to_deinterleaved (tmp, dst); - ret = 2; - } - uae_sem_post (&cdu->sub_sem); - return ret; + int ret = 0; + uae_sem_wait (&cdu->sub_sem); + if (t->subcode) + { + if (t->subhandle) + { + int offset = 0; + int totalsize = SUB_CHANNEL_SIZE; + if (t->skipsize) + { + totalsize += t->size; + offset = t->size; + } + zfile_fseek (t->subhandle, (uae_u64)sector * totalsize + t->suboffset + offset, SEEK_SET); + if (zfile_fread (dst, SUB_CHANNEL_SIZE, 1, t->subhandle) > 0) + ret = t->subcode; + } + else + { + memcpy (dst, t->subdata + sector * SUB_CHANNEL_SIZE + t->suboffset, SUB_CHANNEL_SIZE); + ret = t->subcode; + } + } + if (!ret) + { + memset (dst, 0, SUB_CHANNEL_SIZE); + // regenerate Q-subchannel + uae_u8 *s = dst + 12; + s[0] = (t->ctrl << 4) | (t->adr << 0); + s[1] = tobcd (t - &cdu->toc[0] + 1); + s[2] = tobcd (1); + int msf = lsn2msf (sector); + tolongbcd (s + 7, msf); + msf = lsn2msf (sector - t->address - 150); + tolongbcd (s + 3, msf); + ret = 2; + } + if (ret == 1) + { + uae_u8 tmp[SUB_CHANNEL_SIZE]; + memcpy (tmp, dst, SUB_CHANNEL_SIZE); + sub_to_deinterleaved (tmp, dst); + ret = 2; + } + uae_sem_post (&cdu->sub_sem); + return ret; } static void dosub (struct cdunit *cdu, uae_u8 *subbuf) { - uae_u8 subbuf2[SUB_CHANNEL_SIZE]; + uae_u8 subbuf2[SUB_CHANNEL_SIZE]; - if (!cdu->cdda_subfunc) - return; + if (!cdu->cdda_subfunc) + return; - if (!subbuf) { - memset (subbuf2, 0, sizeof subbuf2); - cdu->cdda_subfunc (subbuf2, 1); - return; - } - sub_to_interleaved (subbuf, subbuf2); - cdu->cdda_subfunc (subbuf2, 1); + if (!subbuf) + { + memset (subbuf2, 0, sizeof subbuf2); + cdu->cdda_subfunc (subbuf2, 1); + return; + } + sub_to_interleaved (subbuf, subbuf2); + cdu->cdda_subfunc (subbuf2, 1); } static int setstate (struct cdunit *cdu, int state) { - cdu->cdda_play_state = state; - if (cdu->cdda_statusfunc) - return cdu->cdda_statusfunc (cdu->cdda_play_state); - return 0; + cdu->cdda_play_state = state; + if (cdu->cdda_statusfunc) + return cdu->cdda_statusfunc (cdu->cdda_play_state); + return 0; } static void *cdda_unpack_func (void *v) { - cdimage_unpack_thread = 1; - mp3decoder *mp3dec = NULL; + cdimage_unpack_thread = 1; + mp3decoder *mp3dec = NULL; - for (;;) { - uae_u32 cduidx = read_comm_pipe_u32_blocking (&unpack_pipe); - if (cdimage_unpack_thread == 0) - break; - uae_u32 tocidx = read_comm_pipe_u32_blocking (&unpack_pipe); - struct cdunit *cdu = &cdunits[cduidx]; - struct cdtoc *t = &cdu->toc[tocidx]; - if (t->handle) { - // force unpack if handle points to delayed zipped file - uae_s64 pos = zfile_ftell (t->handle); - zfile_fseek (t->handle, -1, SEEK_END); - uae_u8 b; - zfile_fread (&b, 1, 1, t->handle); - zfile_fseek (t->handle, pos, SEEK_SET); - if (!t->data && (t->enctype == AUDENC_MP3 || t->enctype == AUDENC_FLAC)) { - t->data = xcalloc (uae_u8, t->filesize + 2352); - cdimage_unpack_active = 1; - if (t->data) { - if (t->enctype == AUDENC_MP3) { - if (!mp3dec) { - try { - mp3dec = new mp3decoder(); - } catch (exception) { }; - } - if (mp3dec) - t->data = mp3dec->get (t->handle, t->data, t->filesize); - } else if (t->enctype == AUDENC_FLAC) { - flac_get_data (t); - } - } - } - } - cdimage_unpack_active = 2; - } - delete mp3dec; - cdimage_unpack_thread = -1; - return 0; + for (;;) + { + uae_u32 cduidx = read_comm_pipe_u32_blocking (&unpack_pipe); + if (cdimage_unpack_thread == 0) + break; + uae_u32 tocidx = read_comm_pipe_u32_blocking (&unpack_pipe); + struct cdunit *cdu = &cdunits[cduidx]; + struct cdtoc *t = &cdu->toc[tocidx]; + if (t->handle) + { + // force unpack if handle points to delayed zipped file + uae_s64 pos = zfile_ftell (t->handle); + zfile_fseek (t->handle, -1, SEEK_END); + uae_u8 b; + zfile_fread (&b, 1, 1, t->handle); + zfile_fseek (t->handle, pos, SEEK_SET); + if (!t->data && (t->enctype == AUDENC_MP3 || t->enctype == AUDENC_FLAC)) + { + t->data = xcalloc (uae_u8, t->filesize + 2352); + cdimage_unpack_active = 1; + if (t->data) + { + if (t->enctype == AUDENC_MP3) + { + if (!mp3dec) + { + try + { + mp3dec = new mp3decoder(); + } + catch (exception) { }; + } + if (mp3dec) + t->data = mp3dec->get (t->handle, t->data, t->filesize); + } + else if (t->enctype == AUDENC_FLAC) + { + flac_get_data (t); + } + } + } + } + cdimage_unpack_active = 2; + } + delete mp3dec; + cdimage_unpack_thread = -1; + return 0; } static void *cdda_play_func (void *v) { - int cdda_pos; - int num_sectors = CDDA_BUFFERS; - int quit = 0; - int bufnum; - int bufon[2]; - int oldplay; - int idleframes; - bool foundsub; - struct cdunit *cdu = (struct cdunit*)v; + int cdda_pos; + int num_sectors = CDDA_BUFFERS; + int quit = 0; + int bufnum; + int bufon[2]; + int oldplay; + int idleframes; + bool foundsub; + struct cdunit *cdu = (struct cdunit*)v; - while (cdu->cdda_play == 0) - Sleep (10); - oldplay = -1; + while (cdu->cdda_play == 0) + Sleep (10); + oldplay = -1; - bufon[0] = bufon[1] = 0; - bufnum = 0; + bufon[0] = bufon[1] = 0; + bufnum = 0; - cda_audio *cda = new cda_audio (num_sectors); + cda_audio *cda = new cda_audio (num_sectors); - while (cdu->cdda_play > 0) { + while (cdu->cdda_play > 0) + { - if (oldplay != cdu->cdda_play) { - struct cdtoc *t; - int sector, diff; - struct timeb tb1, tb2; + if (oldplay != cdu->cdda_play) + { + struct cdtoc *t; + int sector, diff; + struct timeb tb1, tb2; - idleframes = 0; - foundsub = false; - _ftime (&tb1); - cdda_pos = cdu->cdda_start; - oldplay = cdu->cdda_play; - sector = cdu->cd_last_pos = cdda_pos; - t = findtoc (cdu, §or); - if (!t) { - write_log (_T("IMAGE CDDA: illegal sector number %d\n"), cdu->cdda_start); - setstate (cdu, AUDIO_STATUS_PLAY_ERROR); - } else { - write_log (_T("IMAGE CDDA: playing from %d to %d, track %d ('%s', offset %lld, secoffset %d)\n"), - cdu->cdda_start, cdu->cdda_end, t->track, t->fname, t->offset, sector); - // do this even if audio is not compressed, t->handle also could be - // compressed and we want to unpack it in background too - while (cdimage_unpack_active == 1) - Sleep (10); - cdimage_unpack_active = 0; - write_comm_pipe_u32 (&unpack_pipe, cdu - &cdunits[0], 0); - write_comm_pipe_u32 (&unpack_pipe, t - &cdu->toc[0], 1); - while (cdimage_unpack_active == 0) - Sleep (10); - } - idleframes = cdu->cdda_delay_frames; - while (cdu->cdda_paused && cdu->cdda_play > 0) { - Sleep (10); - idleframes = -1; - } + idleframes = 0; + foundsub = false; + _ftime (&tb1); + cdda_pos = cdu->cdda_start; + oldplay = cdu->cdda_play; + sector = cdu->cd_last_pos = cdda_pos; + t = findtoc (cdu, §or); + if (!t) + { + write_log (_T("IMAGE CDDA: illegal sector number %d\n"), cdu->cdda_start); + setstate (cdu, AUDIO_STATUS_PLAY_ERROR); + } + else + { + write_log (_T("IMAGE CDDA: playing from %d to %d, track %d ('%s', offset %lld, secoffset %d)\n"), + cdu->cdda_start, cdu->cdda_end, t->track, t->fname, t->offset, sector); + // do this even if audio is not compressed, t->handle also could be + // compressed and we want to unpack it in background too + while (cdimage_unpack_active == 1) + Sleep (10); + cdimage_unpack_active = 0; + write_comm_pipe_u32 (&unpack_pipe, cdu - &cdunits[0], 0); + write_comm_pipe_u32 (&unpack_pipe, t - &cdu->toc[0], 1); + while (cdimage_unpack_active == 0) + Sleep (10); + } + idleframes = cdu->cdda_delay_frames; + while (cdu->cdda_paused && cdu->cdda_play > 0) + { + Sleep (10); + idleframes = -1; + } - if (cdu->cdda_scan == 0) { - // find possible P-subchannel=1 and fudge starting point so that - // buggy CD32/CDTV software CD+G handling does not miss any frames - bool seenindex = false; - for (sector = cdda_pos - 200; sector < cdda_pos; sector++) { - int sec = sector; - t = findtoc (cdu, &sec); - if (t) { - uae_u8 subbuf[SUB_CHANNEL_SIZE]; - getsub_deinterleaved (subbuf, cdu, t, sector); - if (seenindex) { - for (int i = 2 * SUB_ENTRY_SIZE; i < SUB_CHANNEL_SIZE; i++) { - if (subbuf[i]) { // non-zero R-W subchannels - int diff = cdda_pos - sector + 2; - write_log (_T("-> CD+G start pos fudge -> %d (%d)\n"), sector, -diff); - idleframes -= diff; - cdda_pos = sector; - break; - } - } - } else if (subbuf[0] == 0xff) { // P == 1? - seenindex = true; - } - } - } - } - cdda_pos -= idleframes; + if (cdu->cdda_scan == 0) + { + // find possible P-subchannel=1 and fudge starting point so that + // buggy CD32/CDTV software CD+G handling does not miss any frames + bool seenindex = false; + for (sector = cdda_pos - 200; sector < cdda_pos; sector++) + { + int sec = sector; + t = findtoc (cdu, &sec); + if (t) + { + uae_u8 subbuf[SUB_CHANNEL_SIZE]; + getsub_deinterleaved (subbuf, cdu, t, sector); + if (seenindex) + { + for (int i = 2 * SUB_ENTRY_SIZE; i < SUB_CHANNEL_SIZE; i++) + { + if (subbuf[i]) // non-zero R-W subchannels + { + int diff = cdda_pos - sector + 2; + write_log (_T("-> CD+G start pos fudge -> %d (%d)\n"), sector, -diff); + idleframes -= diff; + cdda_pos = sector; + break; + } + } + } + else if (subbuf[0] == 0xff) // P == 1? + { + seenindex = true; + } + } + } + } + cdda_pos -= idleframes; - _ftime (&tb2); - diff = (tb2.time * (uae_s64)1000 + tb2.millitm) - (tb1.time * (uae_s64)1000 + tb1.millitm); - diff -= cdu->cdda_delay; - if (idleframes >= 0 && diff < 0 && cdu->cdda_play > 0) - Sleep (-diff); - setstate (cdu, AUDIO_STATUS_IN_PROGRESS); - } + _ftime (&tb2); + diff = (tb2.time * (uae_s64)1000 + tb2.millitm) - (tb1.time * (uae_s64)1000 + tb1.millitm); + diff -= cdu->cdda_delay; + if (idleframes >= 0 && diff < 0 && cdu->cdda_play > 0) + Sleep (-diff); + setstate (cdu, AUDIO_STATUS_IN_PROGRESS); + } - cda->wait(bufnum); - bufon[bufnum] = 0; - if (!cdu->cdda_play) - goto end; + cda->wait(bufnum); + bufon[bufnum] = 0; + if (!cdu->cdda_play) + goto end; - if (idleframes <= 0 && cdda_pos >= cdu->cdda_start && !isaudiotrack (&cdu->di.toc, cdda_pos)) { - setstate (cdu, AUDIO_STATUS_PLAY_ERROR); - write_log (_T("IMAGE CDDA: attempted to play data track %d\n"), cdda_pos); - goto end; // data track? - } + if (idleframes <= 0 && cdda_pos >= cdu->cdda_start && !isaudiotrack (&cdu->di.toc, cdda_pos)) + { + setstate (cdu, AUDIO_STATUS_PLAY_ERROR); + write_log (_T("IMAGE CDDA: attempted to play data track %d\n"), cdda_pos); + goto end; // data track? + } - if ((cdda_pos < cdu->cdda_end || cdu->cdda_end == 0xffffffff) && !cdu->cdda_paused && cdu->cdda_play > 0) { - struct cdtoc *t; - int sector, cnt; - int dofinish = 0; + if ((cdda_pos < cdu->cdda_end || cdu->cdda_end == 0xffffffff) && !cdu->cdda_paused && cdu->cdda_play > 0) + { + struct cdtoc *t; + int sector, cnt; + int dofinish = 0; // gui_flicker_led (LED_CD, cdu->di.unitnum - 1, LED_CD_AUDIO); - memset (cda->buffers[bufnum], 0, num_sectors * 2352); + memset (cda->buffers[bufnum], 0, num_sectors * 2352); - for (cnt = 0; cnt < num_sectors; cnt++) { - uae_u8 *dst = cda->buffers[bufnum] + cnt * 2352; - uae_u8 subbuf[SUB_CHANNEL_SIZE]; - sector = cdda_pos; + for (cnt = 0; cnt < num_sectors; cnt++) + { + uae_u8 *dst = cda->buffers[bufnum] + cnt * 2352; + uae_u8 subbuf[SUB_CHANNEL_SIZE]; + sector = cdda_pos; - memset (subbuf, 0, SUB_CHANNEL_SIZE); + memset (subbuf, 0, SUB_CHANNEL_SIZE); - t = findtoc (cdu, §or); - if (t) { - if (t->handle && !(t->ctrl & 4)) { - int totalsize = t->size + t->skipsize; - if ((t->enctype == AUDENC_MP3 || t->enctype == AUDENC_FLAC) && t->data) { - if (t->filesize >= sector * totalsize + t->offset + t->size) - memcpy (dst, t->data + sector * totalsize + t->offset, t->size); - } else if (t->enctype == AUDENC_PCM) { - if (sector * totalsize + t->offset + totalsize < t->filesize) { - zfile_fseek (t->handle, (uae_u64)sector * totalsize + t->offset, SEEK_SET); - zfile_fread (dst, t->size, 1, t->handle); - } - } - } - getsub_deinterleaved (subbuf, cdu, t, cdda_pos); - } + t = findtoc (cdu, §or); + if (t) + { + if (t->handle && !(t->ctrl & 4)) + { + int totalsize = t->size + t->skipsize; + if ((t->enctype == AUDENC_MP3 || t->enctype == AUDENC_FLAC) && t->data) + { + if (t->filesize >= sector * totalsize + t->offset + t->size) + memcpy (dst, t->data + sector * totalsize + t->offset, t->size); + } + else if (t->enctype == AUDENC_PCM) + { + if (sector * totalsize + t->offset + totalsize < t->filesize) + { + zfile_fseek (t->handle, (uae_u64)sector * totalsize + t->offset, SEEK_SET); + zfile_fread (dst, t->size, 1, t->handle); + } + } + } + getsub_deinterleaved (subbuf, cdu, t, cdda_pos); + } - if (idleframes > 0) { - idleframes--; - memset (dst, 0, 2352); - memset (subbuf, 0, SUB_CHANNEL_SIZE); - } + if (idleframes > 0) + { + idleframes--; + memset (dst, 0, 2352); + memset (subbuf, 0, SUB_CHANNEL_SIZE); + } - if (cdda_pos < cdu->cdda_start && cdu->cdda_scan == 0) - memset (dst, 0, 2352); + if (cdda_pos < cdu->cdda_start && cdu->cdda_scan == 0) + memset (dst, 0, 2352); - dosub (cdu, subbuf); + dosub (cdu, subbuf); - if (cdu->cdda_scan) { - cdda_pos += cdu->cdda_scan; - if (cdda_pos < 0) - cdda_pos = 0; - } else { - cdda_pos++; - } + if (cdu->cdda_scan) + { + cdda_pos += cdu->cdda_scan; + if (cdda_pos < 0) + cdda_pos = 0; + } + else + { + cdda_pos++; + } - if (cdda_pos - num_sectors < cdu->cdda_end && cdda_pos >= cdu->cdda_end) - dofinish = 1; + if (cdda_pos - num_sectors < cdu->cdda_end && cdda_pos >= cdu->cdda_end) + dofinish = 1; - } - - if (idleframes <= 0) - cdu->cd_last_pos = cdda_pos; + } - bufon[bufnum] = 1; - cda->setvolume (currprefs.sound_volume_cd, cdu->cdda_volume[0], cdu->cdda_volume[1]); - if (!cda->play (bufnum)) { - setstate (cdu, AUDIO_STATUS_PLAY_ERROR); - goto end; - } + if (idleframes <= 0) + cdu->cd_last_pos = cdda_pos; - if (dofinish) { - setstate (cdu, AUDIO_STATUS_PLAY_COMPLETE); - cdu->cdda_play = -1; - cdda_pos = cdu->cdda_end + 1; - } + bufon[bufnum] = 1; + cda->setvolume (currprefs.sound_volume_cd, cdu->cdda_volume[0], cdu->cdda_volume[1]); + if (!cda->play (bufnum)) + { + setstate (cdu, AUDIO_STATUS_PLAY_ERROR); + goto end; + } - } + if (dofinish) + { + setstate (cdu, AUDIO_STATUS_PLAY_COMPLETE); + cdu->cdda_play = -1; + cdda_pos = cdu->cdda_end + 1; + } - if (bufon[0] == 0 && bufon[1] == 0) { - while (cdu->cdda_paused && cdu->cdda_play == oldplay) - Sleep (10); - } + } - bufnum = 1 - bufnum; - } + if (bufon[0] == 0 && bufon[1] == 0) + { + while (cdu->cdda_paused && cdu->cdda_play == oldplay) + Sleep (10); + } + + bufnum = 1 - bufnum; + } end: - cda->wait (0); - cda->wait (1); + cda->wait (0); + cda->wait (1); - while (cdimage_unpack_active == 1) - Sleep (10); + while (cdimage_unpack_active == 1) + Sleep (10); - delete cda; + delete cda; - cdu->cdda_play = 0; - write_log (_T("IMAGE CDDA: thread killed\n")); - return NULL; + cdu->cdda_play = 0; + write_log (_T("IMAGE CDDA: thread killed\n")); + return NULL; } static void cdda_stop (struct cdunit *cdu) { - if (cdu->cdda_play != 0) { - cdu->cdda_play = -1; - while (cdu->cdda_play) { - Sleep (10); - } - } - cdu->cdda_paused = 0; - cdu->cdda_play_state = 0; + if (cdu->cdda_play != 0) + { + cdu->cdda_play = -1; + while (cdu->cdda_play) + { + Sleep (10); + } + } + cdu->cdda_paused = 0; + cdu->cdda_play_state = 0; } static int command_pause (int unitnum, int paused) { - struct cdunit *cdu = unitisopen (unitnum); - if (!cdu) - return -1; - int old = cdu->cdda_paused; - cdu->cdda_paused = paused; - return old; + struct cdunit *cdu = unitisopen (unitnum); + if (!cdu) + return -1; + int old = cdu->cdda_paused; + cdu->cdda_paused = paused; + return old; } static int command_stop (int unitnum) { - struct cdunit *cdu = unitisopen (unitnum); - if (!cdu) - return 0; - cdda_stop (cdu); - return 1; + struct cdunit *cdu = unitisopen (unitnum); + if (!cdu) + return 0; + cdda_stop (cdu); + return 1; } static int command_play (int unitnum, int startlsn, int endlsn, int scan, play_status_callback statusfunc, play_subchannel_callback subfunc) { - struct cdunit *cdu = unitisopen (unitnum); - if (!cdu) - return 0; - cdu->cd_last_pos = startlsn; - cdu->cdda_start = startlsn; - cdu->cdda_end = endlsn; - cdu->cdda_subfunc = subfunc; - cdu->cdda_statusfunc = statusfunc; - cdu->cdda_scan = scan > 0 ? 10 : (scan < 0 ? 10 : 0); - cdu->cdda_delay = setstate (cdu, -1); - cdu->cdda_delay_frames = setstate (cdu, -2); - setstate (cdu, AUDIO_STATUS_NOT_SUPPORTED); - if (!isaudiotrack (&cdu->di.toc, startlsn)) { - setstate (cdu, AUDIO_STATUS_PLAY_ERROR); - return 0; - } - if (!cdu->cdda_play) - uae_start_thread (_T("cdimage_cdda_play"), cdda_play_func, cdu, NULL); - cdu->cdda_play++; - return 1; + struct cdunit *cdu = unitisopen (unitnum); + if (!cdu) + return 0; + cdu->cd_last_pos = startlsn; + cdu->cdda_start = startlsn; + cdu->cdda_end = endlsn; + cdu->cdda_subfunc = subfunc; + cdu->cdda_statusfunc = statusfunc; + cdu->cdda_scan = scan > 0 ? 10 : (scan < 0 ? 10 : 0); + cdu->cdda_delay = setstate (cdu, -1); + cdu->cdda_delay_frames = setstate (cdu, -2); + setstate (cdu, AUDIO_STATUS_NOT_SUPPORTED); + if (!isaudiotrack (&cdu->di.toc, startlsn)) + { + setstate (cdu, AUDIO_STATUS_PLAY_ERROR); + return 0; + } + if (!cdu->cdda_play) + uae_start_thread (_T("cdimage_cdda_play"), cdda_play_func, cdu, NULL); + cdu->cdda_play++; + return 1; } static int command_qcode (int unitnum, uae_u8 *buf, int sector) { - struct cdunit *cdu = unitisopen (unitnum); - if (!cdu) - return 0; + struct cdunit *cdu = unitisopen (unitnum); + if (!cdu) + return 0; - uae_u8 subbuf[SUB_CHANNEL_SIZE]; - uae_u8 *p; - int trk; - int pos; - int status; + uae_u8 subbuf[SUB_CHANNEL_SIZE]; + uae_u8 *p; + int trk; + int pos; + int status; - memset (buf, 0, SUBQ_SIZE); - p = buf; + memset (buf, 0, SUBQ_SIZE); + p = buf; - status = cdu->cdda_play_state; - if (cdu->cdda_play > 0 && cdu->cdda_paused) - status = AUDIO_STATUS_PAUSED; + status = cdu->cdda_play_state; + if (cdu->cdda_play > 0 && cdu->cdda_paused) + status = AUDIO_STATUS_PAUSED; - if (sector < 0) - pos = cdu->cd_last_pos; - else - pos = sector; + if (sector < 0) + pos = cdu->cd_last_pos; + else + pos = sector; - p[1] = status; - p[3] = 12; + p[1] = status; + p[3] = 12; - p = buf + 4; + p = buf + 4; - struct cdtoc *td = NULL; - for (trk = 0; trk <= cdu->tracks; trk++) { - td = &cdu->toc[trk]; - if (pos < td->address) { - if (trk > 0) - td--; - break; - } - if (pos >= td->address && pos < td[1].address) - break; - } - if (!td) - return 0; - getsub_deinterleaved (subbuf, cdu, td, pos); - memcpy (p, subbuf + 12, 12); + struct cdtoc *td = NULL; + for (trk = 0; trk <= cdu->tracks; trk++) + { + td = &cdu->toc[trk]; + if (pos < td->address) + { + if (trk > 0) + td--; + break; + } + if (pos >= td->address && pos < td[1].address) + break; + } + if (!td) + return 0; + getsub_deinterleaved (subbuf, cdu, td, pos); + memcpy (p, subbuf + 12, 12); // write_log (_T("%6d %02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x\n"), // pos, p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7], p[8], p[9], p[10], p[11]); - return 1; + return 1; } static uae_u32 command_volume (int unitnum, uae_u16 volume_left, uae_u16 volume_right) { - struct cdunit *cdu = unitisopen (unitnum); - if (!cdu) - return -1; - uae_u32 old = (cdu->cdda_volume[1] << 16) | (cdu->cdda_volume[0] << 0); - cdu->cdda_volume[0] = volume_left; - cdu->cdda_volume[1] = volume_right; - return old; + struct cdunit *cdu = unitisopen (unitnum); + if (!cdu) + return -1; + uae_u32 old = (cdu->cdda_volume[1] << 16) | (cdu->cdda_volume[0] << 0); + cdu->cdda_volume[0] = volume_left; + cdu->cdda_volume[1] = volume_right; + return old; } extern void encode_l2 (uae_u8 *p, int address); static int command_rawread (int unitnum, uae_u8 *data, int sector, int size, int sectorsize, uae_u32 extra) { - int ret = 0; - struct cdunit *cdu = unitisopen (unitnum); - if (!cdu) - return 0; - int asector = sector; - struct cdtoc *t = findtoc (cdu, §or); - int ssize = t->size + t->skipsize; + int ret = 0; + struct cdunit *cdu = unitisopen (unitnum); + if (!cdu) + return 0; + int asector = sector; + struct cdtoc *t = findtoc (cdu, §or); + int ssize = t->size + t->skipsize; - if (!t || t->handle == NULL) - goto end; + if (!t || t->handle == NULL) + goto end; - cdda_stop (cdu); - if (sectorsize > 0) { - if (sectorsize == 2352 && t->size == 2048) { - // 2048 -> 2352 - while (size-- > 0) { - memset (data, 0, 16); - zfile_fseek (t->handle, t->offset + (uae_u64)sector * ssize, SEEK_SET); - zfile_fread (data + 16, t->size, 1, t->handle); - encode_l2 (data, sector + 150); - sector++; - asector++; - data += sectorsize; - ret += sectorsize; - } - } else if (sectorsize == 2048 && t->size == 2352) { - // 2352 -> 2048 - while (size-- > 0) { - uae_u8 b = 0; - zfile_fseek (t->handle, t->offset + (uae_u64)sector * ssize + 15, SEEK_SET); - zfile_fread (&b, 1, 1, t->handle); - if (b == 2) // MODE2? - zfile_fseek (t->handle, t->offset + (uae_u64)sector * ssize + 24, SEEK_SET); - zfile_fread (data, sectorsize, 1, t->handle); - sector++; - asector++; - data += sectorsize; - ret += sectorsize; - } - } else if (sectorsize == 2336 && t->size == 2352) { - // 2352 -> 2336 - while (size-- > 0) { - uae_u8 b = 0; - zfile_fseek (t->handle, t->offset + (uae_u64)sector * ssize + 15, SEEK_SET); - zfile_fread (&b, 1, 1, t->handle); - if (b != 2 && b != 0) // MODE0 or MODE2 only allowed - return 0; - zfile_fread (data, sectorsize, 1, t->handle); - sector++; - asector++; - data += sectorsize; - ret += sectorsize; - } - } else if (sectorsize == t->size) { - // no change - zfile_fseek (t->handle, t->offset + (uae_u64)sector * ssize, SEEK_SET); - zfile_fread (data, sectorsize, size, t->handle); - sector += size; - asector += size; - ret = size; - } - cdu->cd_last_pos = asector; + cdda_stop (cdu); + if (sectorsize > 0) + { + if (sectorsize == 2352 && t->size == 2048) + { + // 2048 -> 2352 + while (size-- > 0) + { + memset (data, 0, 16); + zfile_fseek (t->handle, t->offset + (uae_u64)sector * ssize, SEEK_SET); + zfile_fread (data + 16, t->size, 1, t->handle); + encode_l2 (data, sector + 150); + sector++; + asector++; + data += sectorsize; + ret += sectorsize; + } + } + else if (sectorsize == 2048 && t->size == 2352) + { + // 2352 -> 2048 + while (size-- > 0) + { + uae_u8 b = 0; + zfile_fseek (t->handle, t->offset + (uae_u64)sector * ssize + 15, SEEK_SET); + zfile_fread (&b, 1, 1, t->handle); + if (b == 2) // MODE2? + zfile_fseek (t->handle, t->offset + (uae_u64)sector * ssize + 24, SEEK_SET); + zfile_fread (data, sectorsize, 1, t->handle); + sector++; + asector++; + data += sectorsize; + ret += sectorsize; + } + } + else if (sectorsize == 2336 && t->size == 2352) + { + // 2352 -> 2336 + while (size-- > 0) + { + uae_u8 b = 0; + zfile_fseek (t->handle, t->offset + (uae_u64)sector * ssize + 15, SEEK_SET); + zfile_fread (&b, 1, 1, t->handle); + if (b != 2 && b != 0) // MODE0 or MODE2 only allowed + return 0; + zfile_fread (data, sectorsize, 1, t->handle); + sector++; + asector++; + data += sectorsize; + ret += sectorsize; + } + } + else if (sectorsize == t->size) + { + // no change + zfile_fseek (t->handle, t->offset + (uae_u64)sector * ssize, SEEK_SET); + zfile_fread (data, sectorsize, size, t->handle); + sector += size; + asector += size; + ret = size; + } + cdu->cd_last_pos = asector; - } else { + } + else + { - uae_u8 sectortype = extra >> 16; - uae_u8 cmd9 = extra >> 8; - int sync = (cmd9 >> 7) & 1; - int headercodes = (cmd9 >> 5) & 3; - int userdata = (cmd9 >> 4) & 1; - int edcecc = (cmd9 >> 3) & 1; - int errorfield = (cmd9 >> 1) & 3; - uae_u8 subs = extra & 7; - if (subs != 0 && subs != 1 && subs != 2 && subs != 4) { - ret = -1; - goto end; - } + uae_u8 sectortype = extra >> 16; + uae_u8 cmd9 = extra >> 8; + int sync = (cmd9 >> 7) & 1; + int headercodes = (cmd9 >> 5) & 3; + int userdata = (cmd9 >> 4) & 1; + int edcecc = (cmd9 >> 3) & 1; + int errorfield = (cmd9 >> 1) & 3; + uae_u8 subs = extra & 7; + if (subs != 0 && subs != 1 && subs != 2 && subs != 4) + { + ret = -1; + goto end; + } - if (isaudiotrack (&cdu->di.toc, sector)) { - if (sectortype != 0 && sectortype != 1) { - ret = -2; - goto end; - } - if (t->size != 2352) { - ret = -1; - goto end; - } - for (int i = 0; i < size; i++) { - zfile_fseek (t->handle, t->offset + (uae_u64)sector * ssize, SEEK_SET); - zfile_fread (data, t->size, 1, t->handle); - uae_u8 *p = data + t->size; - if (subs) { - uae_u8 subdata[SUB_CHANNEL_SIZE]; - getsub_deinterleaved (subdata, cdu, t, sector); - if (subs == 4) { // all, de-interleaved - memcpy (p, subdata, SUB_CHANNEL_SIZE); - p += SUB_CHANNEL_SIZE; - } else if (subs == 2) { // q-only - memcpy (p, subdata + SUB_ENTRY_SIZE, SUB_ENTRY_SIZE); - p += SUB_ENTRY_SIZE; - } else if (subs == 1) { // all, interleaved - sub_to_interleaved (subdata, p); - p += SUB_CHANNEL_SIZE; - } - } - ret += p - data; - data = p; - sector++; - } - } - } + if (isaudiotrack (&cdu->di.toc, sector)) + { + if (sectortype != 0 && sectortype != 1) + { + ret = -2; + goto end; + } + if (t->size != 2352) + { + ret = -1; + goto end; + } + for (int i = 0; i < size; i++) + { + zfile_fseek (t->handle, t->offset + (uae_u64)sector * ssize, SEEK_SET); + zfile_fread (data, t->size, 1, t->handle); + uae_u8 *p = data + t->size; + if (subs) + { + uae_u8 subdata[SUB_CHANNEL_SIZE]; + getsub_deinterleaved (subdata, cdu, t, sector); + if (subs == 4) // all, de-interleaved + { + memcpy (p, subdata, SUB_CHANNEL_SIZE); + p += SUB_CHANNEL_SIZE; + } + else if (subs == 2) // q-only + { + memcpy (p, subdata + SUB_ENTRY_SIZE, SUB_ENTRY_SIZE); + p += SUB_ENTRY_SIZE; + } + else if (subs == 1) // all, interleaved + { + sub_to_interleaved (subdata, p); + p += SUB_CHANNEL_SIZE; + } + } + ret += p - data; + data = p; + sector++; + } + } + } end: - return ret; + return ret; } // this only supports 2048 byte sectors static int command_read (int unitnum, uae_u8 *data, int sector, int size) { - struct cdunit *cdu = unitisopen (unitnum); - if (!cdu) - return 0; + struct cdunit *cdu = unitisopen (unitnum); + if (!cdu) + return 0; - struct cdtoc *t = findtoc (cdu, §or); - int ssize = t->size + t->skipsize; + struct cdtoc *t = findtoc (cdu, §or); + int ssize = t->size + t->skipsize; - if (!t || t->handle == NULL) - return 0; - cdda_stop (cdu); - if (t->size == 2048) { - zfile_fseek (t->handle, t->offset + (uae_u64)sector * ssize, SEEK_SET); - zfile_fread (data, size, 2048, t->handle); - sector += size; - } else { - while (size-- > 0) { - if (t->size == 2352) { - uae_u8 b = 0; - zfile_fseek (t->handle, t->offset + (uae_u64)sector * ssize + 15, SEEK_SET); - zfile_fread (&b, 1, 1, t->handle); - if (b == 2) // MODE2? - zfile_fseek (t->handle, t->offset + (uae_u64)sector * ssize + 24, SEEK_SET); - } else { - zfile_fseek (t->handle, t->offset + (uae_u64)sector * ssize + 16, SEEK_SET); - } - zfile_fread (data, 1, 2048, t->handle); - data += 2048; - sector++; - } - } - cdu->cd_last_pos = sector; - return 1; + if (!t || t->handle == NULL) + return 0; + cdda_stop (cdu); + if (t->size == 2048) + { + zfile_fseek (t->handle, t->offset + (uae_u64)sector * ssize, SEEK_SET); + zfile_fread (data, size, 2048, t->handle); + sector += size; + } + else + { + while (size-- > 0) + { + if (t->size == 2352) + { + uae_u8 b = 0; + zfile_fseek (t->handle, t->offset + (uae_u64)sector * ssize + 15, SEEK_SET); + zfile_fread (&b, 1, 1, t->handle); + if (b == 2) // MODE2? + zfile_fseek (t->handle, t->offset + (uae_u64)sector * ssize + 24, SEEK_SET); + } + else + { + zfile_fseek (t->handle, t->offset + (uae_u64)sector * ssize + 16, SEEK_SET); + } + zfile_fread (data, 1, 2048, t->handle); + data += 2048; + sector++; + } + } + cdu->cd_last_pos = sector; + return 1; } static int command_toc (int unitnum, struct cd_toc_head *th) { - struct cdunit *cdu = unitisopen (unitnum); - if (!cdu) - return 0; + struct cdunit *cdu = unitisopen (unitnum); + if (!cdu) + return 0; - int i; + int i; - memset (&cdu->di.toc, 0, sizeof (struct cd_toc_head)); - if (!cdu->tracks) - return 0; + memset (&cdu->di.toc, 0, sizeof (struct cd_toc_head)); + if (!cdu->tracks) + return 0; - memset (th, 0, sizeof (struct cd_toc_head)); - struct cd_toc *toc = &th->toc[0]; - th->first_track = 1; - th->last_track = cdu->tracks; - th->points = cdu->tracks + 3; - th->tracks = cdu->tracks; - th->firstaddress = 0; - th->lastaddress = cdu->toc[cdu->tracks].address; + memset (th, 0, sizeof (struct cd_toc_head)); + struct cd_toc *toc = &th->toc[0]; + th->first_track = 1; + th->last_track = cdu->tracks; + th->points = cdu->tracks + 3; + th->tracks = cdu->tracks; + th->firstaddress = 0; + th->lastaddress = cdu->toc[cdu->tracks].address; - toc->adr = 1; - toc->point = 0xa0; - toc->track = th->first_track; - toc++; + toc->adr = 1; + toc->point = 0xa0; + toc->track = th->first_track; + toc++; - th->first_track_offset = 1; - for (i = 0; i < cdu->tracks; i++) { - toc->adr = cdu->toc[i].adr; - toc->control = cdu->toc[i].ctrl; - toc->track = i + 1; - toc->point = i + 1; - toc->paddress = cdu->toc[i].address; - toc++; - } + th->first_track_offset = 1; + for (i = 0; i < cdu->tracks; i++) + { + toc->adr = cdu->toc[i].adr; + toc->control = cdu->toc[i].ctrl; + toc->track = i + 1; + toc->point = i + 1; + toc->paddress = cdu->toc[i].address; + toc++; + } - th->last_track_offset = cdu->tracks; - toc->adr = 1; - toc->point = 0xa1; - toc->track = th->last_track; - toc++; + th->last_track_offset = cdu->tracks; + toc->adr = 1; + toc->point = 0xa1; + toc->track = th->last_track; + toc++; - toc->adr = 1; - toc->point = 0xa2; - toc->paddress = th->lastaddress; - toc++; + toc->adr = 1; + toc->point = 0xa2; + toc->paddress = th->lastaddress; + toc++; - memcpy (&cdu->di.toc, th, sizeof (struct cd_toc_head)); - return 1; + memcpy (&cdu->di.toc, th, sizeof (struct cd_toc_head)); + return 1; } static void skipspace (TCHAR **s) { - while (_istspace (**s)) - (*s)++; + while (_istspace (**s)) + (*s)++; } static void skipnspace (TCHAR **s) { - while (!_istspace (**s)) - (*s)++; + while (!_istspace (**s)) + (*s)++; } static TCHAR *nextstring (TCHAR **sp) { - TCHAR *s; - TCHAR *out = NULL; + TCHAR *s; + TCHAR *out = NULL; - skipspace (sp); - s = *sp; - if (*s == '\"') { - s++; - out = s; - while (*s && *s != '\"') - s++; - *s++ = 0; - } else if (*s) { - out = s; - skipnspace (&s); - *s++ = 0; - } - *sp = s; - return out; + skipspace (sp); + s = *sp; + if (*s == '\"') + { + s++; + out = s; + while (*s && *s != '\"') + s++; + *s++ = 0; + } + else if (*s) + { + out = s; + skipnspace (&s); + *s++ = 0; + } + *sp = s; + return out; } static int readval (const TCHAR *s) { - int base = 10; - TCHAR *endptr; - if (s[0] == '0' && _totupper (s[1]) == 'X') - s += 2, base = 16; - return _tcstol (s, &endptr, base); + int base = 10; + TCHAR *endptr; + if (s[0] == '0' && _totupper (s[1]) == 'X') + s += 2, base = 16; + return _tcstol (s, &endptr, base); } #define MEDIA_DESCRIPTOR "MEDIA DESCRIPTOR" @@ -925,7 +1025,7 @@ static int readval (const TCHAR *s) #define MDS_MEDIUM_CD_RW 0x02 /* CD-RW */ #define MDS_MEDIUM_DVD 0x10 /* DVD-ROM */ #define MDS_MEDIUM_DVD_MINUS_R 0x12 /* DVD-R */ - + #define MDS_TRACKMODE_UNKNOWN 0x00 #define MDS_TRACKMODE_AUDIO 0xA9 /* sector size = 2352 */ #define MDS_TRACKMODE_MODE1 0xAA /* sector size = 2048 */ @@ -942,7 +1042,8 @@ static int readval (const TCHAR *s) #pragma pack(1) -typedef struct { +typedef struct +{ uae_u8 signature[16]; /* "MEDIA DESCRIPTOR" */ uae_u8 version[2]; /* Version ? */ uae_u16 medium_type; /* Medium type */ @@ -958,7 +1059,8 @@ typedef struct { uae_u32 dpm_blocks_offset; /* offset to DPM data blocks */ } MDS_Header; /* length: 88 bytes */ -typedef struct { +typedef struct +{ uae_s32 session_start; /* Session's start address */ uae_s32 session_end; /* Session's end address */ uae_u16 session_number; /* (Unknown) */ @@ -970,20 +1072,21 @@ typedef struct { uae_u32 tracks_blocks_offset; /* Offset of lead-in+regular track data blocks. */ } MDS_SessionBlock; /* length: 24 bytes */ -typedef struct { +typedef struct +{ uae_u8 mode; /* Track mode */ uae_u8 subchannel; /* Subchannel mode */ uae_u8 adr_ctl; /* Adr/Ctl */ uae_u8 __dummy2__; /* Track flags? */ uae_u8 point; /* Track number. (>0x99 is lead-in track) */ - + uae_u32 __dummy3__; uae_u8 min; /* Min */ uae_u8 sec; /* Sec */ uae_u8 frame; /* Frame */ uae_u32 extra_offset; /* Start offset of this track's extra block. */ uae_u16 sector_size; /* Sector size. */ - + uae_u8 __dummy4__[18]; uae_u32 start_sector; /* Track start sector (PLBA). */ uae_u64 start_offset; /* Track start offset. */ @@ -993,12 +1096,14 @@ typedef struct { uae_u8 __dummy6__[24]; } MDS_TrackBlock; /* length: 80 bytes */ -typedef struct { +typedef struct +{ uae_u32 pregap; /* Number of sectors in pregap. */ uae_u32 length; /* Number of sectors in track. */ } MDS_TrackExtraBlock; /* length: 8 bytes */ -typedef struct { +typedef struct +{ uae_u32 filename_offset; /* Start offset of image filename. */ uae_u32 widechar_filename; /* Seems to be set to 1 if widechar filename is used */ uae_u32 __dummy1__; @@ -1009,691 +1114,777 @@ typedef struct { static int parsemds (struct cdunit *cdu, struct zfile *zmds, const TCHAR *img) { - MDS_Header *head; - struct cdtoc *t; - uae_u8 *mds = NULL; - uae_u64 size; - MDS_SessionBlock *sb; - - write_log (_T("MDS TOC: '%s'\n"), img); - size = zfile_size (zmds); - mds = xmalloc (uae_u8, size); - if (!mds) - goto end; - if (zfile_fread (mds, size, 1, zmds) != 1) - goto end; + MDS_Header *head; + struct cdtoc *t; + uae_u8 *mds = NULL; + uae_u64 size; + MDS_SessionBlock *sb; - head = (MDS_Header*)mds; - if (!memcmp (&head, MEDIA_DESCRIPTOR, strlen (MEDIA_DESCRIPTOR))) - goto end; - if (head->version[0] != 1) { - write_log (_T("unsupported MDS version %d, only v.1 supported\n"), head->version[0]); - goto end; - } + write_log (_T("MDS TOC: '%s'\n"), img); + size = zfile_size (zmds); + mds = xmalloc (uae_u8, size); + if (!mds) + goto end; + if (zfile_fread (mds, size, 1, zmds) != 1) + goto end; - sb = (MDS_SessionBlock*)(mds + head->sessions_blocks_offset); - cdu->tracks = sb->last_track - sb->first_track + 1; - for (int i = 0; i < sb->num_all_blocks; i++) { - MDS_TrackBlock *tb = (MDS_TrackBlock*)(mds + sb->tracks_blocks_offset + i * sizeof (MDS_TrackBlock)); - int point = tb->point; - int tracknum = -1; - if (point == 0xa2) - tracknum = cdu->tracks; - else if (point >= 1 && point <= 99) - tracknum = point - 1; - if (tracknum >= 0) { - MDS_Footer *footer = tb->footer_offset == 0 ? NULL : (MDS_Footer*)(mds + tb->footer_offset); - MDS_TrackExtraBlock *teb = tb->extra_offset == 0 ? NULL : (MDS_TrackExtraBlock*)(mds + tb->extra_offset); - t = &cdu->toc[tracknum]; - t->adr = tb->adr_ctl >> 4; - t->ctrl = tb->adr_ctl & 15; - if (point == 0xa2) - t->address = sb->session_end; - else - t->address = tb->start_sector; - t->track = point; - t->offset = tb->start_offset; - t->size = tb->sector_size; + head = (MDS_Header*)mds; + if (!memcmp (&head, MEDIA_DESCRIPTOR, strlen (MEDIA_DESCRIPTOR))) + goto end; + if (head->version[0] != 1) + { + write_log (_T("unsupported MDS version %d, only v.1 supported\n"), head->version[0]); + goto end; + } - if (point >= 100) - continue; + sb = (MDS_SessionBlock*)(mds + head->sessions_blocks_offset); + cdu->tracks = sb->last_track - sb->first_track + 1; + for (int i = 0; i < sb->num_all_blocks; i++) + { + MDS_TrackBlock *tb = (MDS_TrackBlock*)(mds + sb->tracks_blocks_offset + i * sizeof (MDS_TrackBlock)); + int point = tb->point; + int tracknum = -1; + if (point == 0xa2) + tracknum = cdu->tracks; + else if (point >= 1 && point <= 99) + tracknum = point - 1; + if (tracknum >= 0) + { + MDS_Footer *footer = tb->footer_offset == 0 ? NULL : (MDS_Footer*)(mds + tb->footer_offset); + MDS_TrackExtraBlock *teb = tb->extra_offset == 0 ? NULL : (MDS_TrackExtraBlock*)(mds + tb->extra_offset); + t = &cdu->toc[tracknum]; + t->adr = tb->adr_ctl >> 4; + t->ctrl = tb->adr_ctl & 15; + if (point == 0xa2) + t->address = sb->session_end; + else + t->address = tb->start_sector; + t->track = point; + t->offset = tb->start_offset; + t->size = tb->sector_size; - if (footer) { - TCHAR *fname = NULL; - if (footer->widechar_filename == 0) - fname = au ((char*)(mds + footer->filename_offset)); - else - fname = my_strdup ((TCHAR*)(mds + footer->filename_offset)); - if (fname[0] == '*' && fname[1] == '.') { - TCHAR newname[MAX_DPATH]; - _tcscpy (newname, img); - TCHAR *ext = _tcsrchr (newname, '.'); - if (ext) - _tcscpy (ext, fname + 1); - xfree (fname); - fname = my_strdup (newname); - } + if (point >= 100) + continue; - t->handle = zfile_fopen (fname, _T("rb"), ZFD_NORMAL); - t->fname = my_strdup (fname); - if (t->handle) - t->filesize = zfile_size (t->handle); - } + if (footer) + { + TCHAR *fname = NULL; + if (footer->widechar_filename == 0) + fname = au ((char*)(mds + footer->filename_offset)); + else + fname = my_strdup ((TCHAR*)(mds + footer->filename_offset)); + if (fname[0] == '*' && fname[1] == '.') + { + TCHAR newname[MAX_DPATH]; + _tcscpy (newname, img); + TCHAR *ext = _tcsrchr (newname, '.'); + if (ext) + _tcscpy (ext, fname + 1); + xfree (fname); + fname = my_strdup (newname); + } - if (tb->subchannel && t->handle) { - t->suboffset = t->size; - t->subcode = 1; // interleaved - t->subhandle = zfile_dup (t->handle); - t->skipsize = SUB_CHANNEL_SIZE; - t->size -= SUB_CHANNEL_SIZE; - } - if ((t->ctrl & 0x0c) != 4) - t->enctype = AUDENC_PCM; - } - } + t->handle = zfile_fopen (fname, _T("rb"), ZFD_NORMAL); + t->fname = my_strdup (fname); + if (t->handle) + t->filesize = zfile_size (t->handle); + } + + if (tb->subchannel && t->handle) + { + t->suboffset = t->size; + t->subcode = 1; // interleaved + t->subhandle = zfile_dup (t->handle); + t->skipsize = SUB_CHANNEL_SIZE; + t->size -= SUB_CHANNEL_SIZE; + } + if ((t->ctrl & 0x0c) != 4) + t->enctype = AUDENC_PCM; + } + } end: - xfree (mds); + xfree (mds); - return cdu->tracks; + return cdu->tracks; } static int parseccd (struct cdunit *cdu, struct zfile *zcue, const TCHAR *img) { - int mode; - int num, tracknum, trackmode; - int adr, control, lba; - bool gotlba; - struct cdtoc *t; - struct zfile *zimg, *zsub; - TCHAR fname[MAX_DPATH]; - - write_log (_T("CCD TOC: '%s'\n"), img); - _tcscpy (fname, img); - TCHAR *ext = _tcsrchr (fname, '.'); - if (ext) - *ext = 0; - _tcscat (fname, _T(".img")); - zimg = zfile_fopen (fname, _T("rb"), ZFD_NORMAL); - if (!zimg) { - write_log (_T("CCD: can't open '%s'\n"), fname); - return 0; - } - ext = _tcsrchr (fname, '.'); - if (ext) - *ext = 0; - _tcscat (fname, _T(".sub")); - zsub = zfile_fopen (fname, _T("rb"), ZFD_NORMAL); - if (zsub) - write_log (_T("CCD: '%s' detected\n"), fname); + int mode; + int num, tracknum, trackmode; + int adr, control, lba; + bool gotlba; + struct cdtoc *t; + struct zfile *zimg, *zsub; + TCHAR fname[MAX_DPATH]; - num = -1; - mode = -1; - for (;;) { - TCHAR buf[MAX_DPATH], *p; - if (!zfile_fgets (buf, sizeof buf / sizeof (TCHAR), zcue)) - break; - p = buf; - skipspace (&p); - if (!_tcsnicmp (p, _T("[DISC]"), 6)) { - mode = 1; - } else if (!_tcsnicmp (p, _T("[ENTRY "), 7)) { - t = NULL; - mode = 2; - num = readval (p + 7); - if (num < 0) - break; - adr = control = -1; - gotlba = false; - } else if (!_tcsnicmp (p, _T("[TRACK "), 7)) { - mode = 3; - tracknum = readval (p + 7); - trackmode = -1; - if (tracknum <= 0 || tracknum > 99) - break; - t = &cdu->toc[tracknum - 1]; - } - if (mode < 0) - continue; - if (mode == 1) { - if (!_tcsnicmp (p, _T("TocEntries="), 11)) { - cdu->tracks = readval (p + 11) - 3; - if (cdu->tracks <= 0 || cdu->tracks > 99) - break; - } - continue; - } - if (cdu->tracks <= 0) - break; - - if (mode == 2) { + write_log (_T("CCD TOC: '%s'\n"), img); + _tcscpy (fname, img); + TCHAR *ext = _tcsrchr (fname, '.'); + if (ext) + *ext = 0; + _tcscat (fname, _T(".img")); + zimg = zfile_fopen (fname, _T("rb"), ZFD_NORMAL); + if (!zimg) + { + write_log (_T("CCD: can't open '%s'\n"), fname); + return 0; + } + ext = _tcsrchr (fname, '.'); + if (ext) + *ext = 0; + _tcscat (fname, _T(".sub")); + zsub = zfile_fopen (fname, _T("rb"), ZFD_NORMAL); + if (zsub) + write_log (_T("CCD: '%s' detected\n"), fname); - if (!_tcsnicmp (p, _T("SESSION="), 8)) { - if (readval (p + 8) != 1) - mode = -1; - continue; - } else if (!_tcsnicmp (p, _T("POINT="), 6)) { - tracknum = readval (p + 6); - if (tracknum <= 0) - break; - if (tracknum >= 0xa0 && tracknum != 0xa2) { - mode = -1; - continue; - } - if (tracknum == 0xa2) - tracknum = cdu->tracks + 1; - t = &cdu->toc[tracknum - 1]; - continue; - } - if (!_tcsnicmp (p, _T("ADR="), 4)) - adr = readval (p + 4); - if (!_tcsnicmp (p, _T("CONTROL="), 8)) - control = readval (p + 8); - if (!_tcsnicmp (p, _T("PLBA="), 5)) { - lba = readval (p + 5); - gotlba = true; - } - if (gotlba && adr >= 0 && control >= 0) { - t->adr = adr; - t->ctrl = control; - t->address = lba; - t->offset = 0; - t->size = 2352; - t->offset = lba * t->size; - t->track = tracknum; - if ((control & 0x0c) != 4) - t->enctype = AUDENC_PCM; - if (zsub) { - t->subcode = 2; - t->subhandle = zfile_dup (zsub); - t->suboffset = 0; - } - if (zimg) { - t->handle = zfile_dup (zimg); - t->fname = my_strdup (zfile_getname (zimg)); - } - mode = -1; - } + num = -1; + mode = -1; + for (;;) + { + TCHAR buf[MAX_DPATH], *p; + if (!zfile_fgets (buf, sizeof buf / sizeof (TCHAR), zcue)) + break; + p = buf; + skipspace (&p); + if (!_tcsnicmp (p, _T("[DISC]"), 6)) + { + mode = 1; + } + else if (!_tcsnicmp (p, _T("[ENTRY "), 7)) + { + t = NULL; + mode = 2; + num = readval (p + 7); + if (num < 0) + break; + adr = control = -1; + gotlba = false; + } + else if (!_tcsnicmp (p, _T("[TRACK "), 7)) + { + mode = 3; + tracknum = readval (p + 7); + trackmode = -1; + if (tracknum <= 0 || tracknum > 99) + break; + t = &cdu->toc[tracknum - 1]; + } + if (mode < 0) + continue; + if (mode == 1) + { + if (!_tcsnicmp (p, _T("TocEntries="), 11)) + { + cdu->tracks = readval (p + 11) - 3; + if (cdu->tracks <= 0 || cdu->tracks > 99) + break; + } + continue; + } + if (cdu->tracks <= 0) + break; - } else if (mode == 3) { + if (mode == 2) + { - if (!_tcsnicmp (p, _T("MODE="), 5)) - trackmode = _tstol (p + 5); - if (trackmode < 0 || trackmode > 2) - continue; - - } + if (!_tcsnicmp (p, _T("SESSION="), 8)) + { + if (readval (p + 8) != 1) + mode = -1; + continue; + } + else if (!_tcsnicmp (p, _T("POINT="), 6)) + { + tracknum = readval (p + 6); + if (tracknum <= 0) + break; + if (tracknum >= 0xa0 && tracknum != 0xa2) + { + mode = -1; + continue; + } + if (tracknum == 0xa2) + tracknum = cdu->tracks + 1; + t = &cdu->toc[tracknum - 1]; + continue; + } + if (!_tcsnicmp (p, _T("ADR="), 4)) + adr = readval (p + 4); + if (!_tcsnicmp (p, _T("CONTROL="), 8)) + control = readval (p + 8); + if (!_tcsnicmp (p, _T("PLBA="), 5)) + { + lba = readval (p + 5); + gotlba = true; + } + if (gotlba && adr >= 0 && control >= 0) + { + t->adr = adr; + t->ctrl = control; + t->address = lba; + t->offset = 0; + t->size = 2352; + t->offset = lba * t->size; + t->track = tracknum; + if ((control & 0x0c) != 4) + t->enctype = AUDENC_PCM; + if (zsub) + { + t->subcode = 2; + t->subhandle = zfile_dup (zsub); + t->suboffset = 0; + } + if (zimg) + { + t->handle = zfile_dup (zimg); + t->fname = my_strdup (zfile_getname (zimg)); + } + mode = -1; + } - } - zfile_fclose (zimg); - zfile_fclose (zsub); - return cdu->tracks; + } + else if (mode == 3) + { + + if (!_tcsnicmp (p, _T("MODE="), 5)) + trackmode = _tstol (p + 5); + if (trackmode < 0 || trackmode > 2) + continue; + + } + + } + zfile_fclose (zimg); + zfile_fclose (zsub); + return cdu->tracks; } static int parsecue (struct cdunit *cdu, struct zfile *zcue, const TCHAR *img) { - int tracknum, pregap; - int newfile, secoffset; - uae_s64 offset, index0; - TCHAR *fname, *fnametype; - audenc fnametypeid; - int ctrl; - mp3decoder *mp3dec = NULL; + int tracknum, pregap; + int newfile, secoffset; + uae_s64 offset, index0; + TCHAR *fname, *fnametype; + audenc fnametypeid; + int ctrl; + mp3decoder *mp3dec = NULL; - fname = NULL; - fnametype = NULL; - tracknum = 0; - offset = 0; - secoffset = 0; - newfile = 0; - ctrl = 0; - index0 = -1; - pregap = 0; - fnametypeid = AUDENC_NONE; + fname = NULL; + fnametype = NULL; + tracknum = 0; + offset = 0; + secoffset = 0; + newfile = 0; + ctrl = 0; + index0 = -1; + pregap = 0; + fnametypeid = AUDENC_NONE; - write_log (_T("CUE TOC: '%s'\n"), img); - for (;;) { - TCHAR buf[MAX_DPATH], *p; - if (!zfile_fgets (buf, sizeof buf / sizeof (TCHAR), zcue)) - break; + write_log (_T("CUE TOC: '%s'\n"), img); + for (;;) + { + TCHAR buf[MAX_DPATH], *p; + if (!zfile_fgets (buf, sizeof buf / sizeof (TCHAR), zcue)) + break; - p = buf; - skipspace (&p); + p = buf; + skipspace (&p); - if (!_tcsnicmp (p, _T("FILE"), 4)) { - p += 4; - xfree (fname); - fname = my_strdup (nextstring (&p)); - fnametype = nextstring (&p); - fnametypeid = AUDENC_NONE; - if (!fnametype) - break; - if (_tcsicmp (fnametype, _T("BINARY")) && _tcsicmp (fnametype, _T("WAVE")) && _tcsicmp (fnametype, _T("MP3")) && _tcsicmp (fnametype, _T("FLAC"))) { - write_log (_T("CUE: unknown file type '%s' ('%s')\n"), fnametype, fname); - } - fnametypeid = AUDENC_PCM; - if (!_tcsicmp (fnametype, _T("MP3"))) - fnametypeid = AUDENC_MP3; - else if (!_tcsicmp (fnametype, _T("FLAC"))) - fnametypeid = AUDENC_FLAC; - offset = 0; - newfile = 1; - ctrl = 0; - } else if (!_tcsnicmp (p, _T("FLAGS"), 5)) { - ctrl &= ~(1 | 2 | 8); - for (;;) { - TCHAR *f = nextstring (&p); - if (!f) - break; - if (!_tcsicmp (f, _T("PRE"))) - ctrl |= 1; - if (!_tcsicmp (f, _T("DCP"))) - ctrl |= 2; - if (!_tcsicmp (f, _T("4CH"))) - ctrl |= 8; - } - } else if (!_tcsnicmp (p, _T("TRACK"), 5)) { - int size; - TCHAR *tracktype; - - p += 5; - //pregap = 0; - index0 = -1; - tracknum = _tstoi (nextstring (&p)); - tracktype = nextstring (&p); - if (!tracktype) - break; - size = 2352; - if (!_tcsicmp (tracktype, _T("AUDIO"))) { - ctrl &= ~4; - } else { - ctrl |= 4; - if (!_tcsicmp (tracktype, _T("MODE1/2048"))) - size = 2048; - else if (!_tcsicmp (tracktype, _T("MODE1/2352"))) - size = 2352; - else if (!_tcsicmp (tracktype, _T("MODE2/2336")) || !_tcsicmp (tracktype, _T("CDI/2336"))) - size = 2336; - else if (!_tcsicmp (tracktype, _T("MODE2/2352")) || !_tcsicmp (tracktype, _T("CDI/2352"))) - size = 2352; - else { - write_log (_T("CUE: unknown tracktype '%s' ('%s')\n"), tracktype, fname); - } - } - if (tracknum >= 1 && tracknum <= 99) { - struct cdtoc *t = &cdu->toc[tracknum - 1]; - struct zfile *ztrack; + if (!_tcsnicmp (p, _T("FILE"), 4)) + { + p += 4; + xfree (fname); + fname = my_strdup (nextstring (&p)); + fnametype = nextstring (&p); + fnametypeid = AUDENC_NONE; + if (!fnametype) + break; + if (_tcsicmp (fnametype, _T("BINARY")) && _tcsicmp (fnametype, _T("WAVE")) && _tcsicmp (fnametype, _T("MP3")) && _tcsicmp (fnametype, _T("FLAC"))) + { + write_log (_T("CUE: unknown file type '%s' ('%s')\n"), fnametype, fname); + } + fnametypeid = AUDENC_PCM; + if (!_tcsicmp (fnametype, _T("MP3"))) + fnametypeid = AUDENC_MP3; + else if (!_tcsicmp (fnametype, _T("FLAC"))) + fnametypeid = AUDENC_FLAC; + offset = 0; + newfile = 1; + ctrl = 0; + } + else if (!_tcsnicmp (p, _T("FLAGS"), 5)) + { + ctrl &= ~(1 | 2 | 8); + for (;;) + { + TCHAR *f = nextstring (&p); + if (!f) + break; + if (!_tcsicmp (f, _T("PRE"))) + ctrl |= 1; + if (!_tcsicmp (f, _T("DCP"))) + ctrl |= 2; + if (!_tcsicmp (f, _T("4CH"))) + ctrl |= 8; + } + } + else if (!_tcsnicmp (p, _T("TRACK"), 5)) + { + int size; + TCHAR *tracktype; - if (tracknum > 1 && newfile) { - t--; - secoffset += (int)(t->filesize / t->size); - t++; - } + p += 5; + //pregap = 0; + index0 = -1; + tracknum = _tstoi (nextstring (&p)); + tracktype = nextstring (&p); + if (!tracktype) + break; + size = 2352; + if (!_tcsicmp (tracktype, _T("AUDIO"))) + { + ctrl &= ~4; + } + else + { + ctrl |= 4; + if (!_tcsicmp (tracktype, _T("MODE1/2048"))) + size = 2048; + else if (!_tcsicmp (tracktype, _T("MODE1/2352"))) + size = 2352; + else if (!_tcsicmp (tracktype, _T("MODE2/2336")) || !_tcsicmp (tracktype, _T("CDI/2336"))) + size = 2336; + else if (!_tcsicmp (tracktype, _T("MODE2/2352")) || !_tcsicmp (tracktype, _T("CDI/2352"))) + size = 2352; + else + { + write_log (_T("CUE: unknown tracktype '%s' ('%s')\n"), tracktype, fname); + } + } + if (tracknum >= 1 && tracknum <= 99) + { + struct cdtoc *t = &cdu->toc[tracknum - 1]; + struct zfile *ztrack; - newfile = 0; - ztrack = zfile_fopen (fname, _T("rb"), ZFD_ARCHIVE | ZFD_DELAYEDOPEN); - if (!ztrack) { - TCHAR tmp[MAX_DPATH]; - _tcscpy (tmp, fname); - p = tmp + _tcslen (tmp); - while (p > tmp) { - if (*p == '/' || *p == '\\') { - ztrack = zfile_fopen (p + 1, _T("rb"), ZFD_ARCHIVE | ZFD_DELAYEDOPEN); - if (ztrack) { - xfree (fname); - fname = my_strdup (p + 1); - } - break; - } - p--; - } - } - if (!ztrack) { - TCHAR tmp[MAX_DPATH]; - TCHAR *s2; - _tcscpy (tmp, zfile_getname (zcue)); - s2 = _tcsrchr (tmp, '\\'); - if (!s2) - s2 = _tcsrchr (tmp, '/'); - if (s2) { - s2[0] = 0; - _tcscat (tmp, FSDB_DIR_SEPARATOR_S); - _tcscat (tmp, fname); - ztrack = zfile_fopen (tmp, _T("rb"), ZFD_ARCHIVE | ZFD_DELAYEDOPEN); - } - } - t->track = tracknum; - t->ctrl = ctrl; - t->adr = 1; - t->handle = ztrack; - t->size = size; - t->fname = my_strdup (fname); - if (tracknum > cdu->tracks) - cdu->tracks = tracknum; - if (t->handle) - t->filesize = zfile_size (t->handle); - } - } else if (!_tcsnicmp (p, _T("PREGAP"), 6)) { - TCHAR *tt; - int tn; - p += 6; - tt = nextstring (&p); - tn = _tstoi (tt) * 60 * 75; - tn += _tstoi (tt + 3) * 75; - tn += _tstoi (tt + 6); - pregap += tn; - } else if (!_tcsnicmp (p, _T("INDEX"), 5)) { - int idxnum; - int tn = 0; - TCHAR *tt; - p += 5; - idxnum = _tstoi (nextstring (&p)); - tt = nextstring (&p); - tn = _tstoi (tt) * 60 * 75; - tn += _tstoi (tt + 3) * 75; - tn += _tstoi (tt + 6); - if (idxnum == 0) { - index0 = tn; - } else if (idxnum == 1 && tracknum >= 1 && tracknum <= 99) { - struct cdtoc *t = &cdu->toc[tracknum - 1]; - if (!t->address) { - t->address = tn + secoffset; - t->address += pregap; - if (tracknum > 1) { - offset += t->address - t[-1].address; - } else { - offset += t->address; - } - if (!secoffset) - t->offset = offset * t->size; - if (fnametypeid == AUDENC_PCM && t->handle) { - struct zfile *zf = t->handle; - uae_u8 buf[16] = { 0 }; - zfile_fread (buf, 12, 1, zf); - if (!memcmp (buf, "RIFF", 4) && !memcmp (buf + 8, "WAVE", 4)) { - int size; - for (;;) { - memset (buf, 0, sizeof buf); - if (zfile_fread (buf, 8, 1, zf) != 1) - break; - size = (buf[4] << 0) | (buf[5] << 8) | (buf[6] << 16) | (buf[7] << 24); - if (!memcmp (buf, "data", 4)) - break; - if (size <= 0) - break; - zfile_fseek (zf, size, SEEK_CUR); - } - t->offset += zfile_ftell (zf); - t->filesize = size; - } - t->enctype = fnametypeid; - } else if (fnametypeid == AUDENC_MP3 && t->handle) { - if (!mp3dec) { - try { - mp3dec = new mp3decoder(); - } catch (exception) { } - } - if (mp3dec) { - t->offset = 0; - t->filesize = mp3dec->getsize (t->handle); - if (t->filesize) - t->enctype = fnametypeid; - } - } else if (fnametypeid == AUDENC_FLAC && t->handle) { - flac_get_size (t); - if (t->filesize) - t->enctype = fnametypeid; - } - } - } - } - } + if (tracknum > 1 && newfile) + { + t--; + secoffset += (int)(t->filesize / t->size); + t++; + } - struct cdtoc *t = &cdu->toc[cdu->tracks - 1]; - uae_s64 size = t->filesize; - if (!secoffset) - size -= offset * t->size; - if (size < 0) - size = 0; - cdu->toc[cdu->tracks].address = t->address + (int)(size / t->size); + newfile = 0; + ztrack = zfile_fopen (fname, _T("rb"), ZFD_ARCHIVE | ZFD_DELAYEDOPEN); + if (!ztrack) + { + TCHAR tmp[MAX_DPATH]; + _tcscpy (tmp, fname); + p = tmp + _tcslen (tmp); + while (p > tmp) + { + if (*p == '/' || *p == '\\') + { + ztrack = zfile_fopen (p + 1, _T("rb"), ZFD_ARCHIVE | ZFD_DELAYEDOPEN); + if (ztrack) + { + xfree (fname); + fname = my_strdup (p + 1); + } + break; + } + p--; + } + } + if (!ztrack) + { + TCHAR tmp[MAX_DPATH]; + TCHAR *s2; + _tcscpy (tmp, zfile_getname (zcue)); + s2 = _tcsrchr (tmp, '\\'); + if (!s2) + s2 = _tcsrchr (tmp, '/'); + if (s2) + { + s2[0] = 0; + _tcscat (tmp, FSDB_DIR_SEPARATOR_S); + _tcscat (tmp, fname); + ztrack = zfile_fopen (tmp, _T("rb"), ZFD_ARCHIVE | ZFD_DELAYEDOPEN); + } + } + t->track = tracknum; + t->ctrl = ctrl; + t->adr = 1; + t->handle = ztrack; + t->size = size; + t->fname = my_strdup (fname); + if (tracknum > cdu->tracks) + cdu->tracks = tracknum; + if (t->handle) + t->filesize = zfile_size (t->handle); + } + } + else if (!_tcsnicmp (p, _T("PREGAP"), 6)) + { + TCHAR *tt; + int tn; + p += 6; + tt = nextstring (&p); + tn = _tstoi (tt) * 60 * 75; + tn += _tstoi (tt + 3) * 75; + tn += _tstoi (tt + 6); + pregap += tn; + } + else if (!_tcsnicmp (p, _T("INDEX"), 5)) + { + int idxnum; + int tn = 0; + TCHAR *tt; + p += 5; + idxnum = _tstoi (nextstring (&p)); + tt = nextstring (&p); + tn = _tstoi (tt) * 60 * 75; + tn += _tstoi (tt + 3) * 75; + tn += _tstoi (tt + 6); + if (idxnum == 0) + { + index0 = tn; + } + else if (idxnum == 1 && tracknum >= 1 && tracknum <= 99) + { + struct cdtoc *t = &cdu->toc[tracknum - 1]; + if (!t->address) + { + t->address = tn + secoffset; + t->address += pregap; + if (tracknum > 1) + { + offset += t->address - t[-1].address; + } + else + { + offset += t->address; + } + if (!secoffset) + t->offset = offset * t->size; + if (fnametypeid == AUDENC_PCM && t->handle) + { + struct zfile *zf = t->handle; + uae_u8 buf[16] = { 0 }; + zfile_fread (buf, 12, 1, zf); + if (!memcmp (buf, "RIFF", 4) && !memcmp (buf + 8, "WAVE", 4)) + { + int size; + for (;;) + { + memset (buf, 0, sizeof buf); + if (zfile_fread (buf, 8, 1, zf) != 1) + break; + size = (buf[4] << 0) | (buf[5] << 8) | (buf[6] << 16) | (buf[7] << 24); + if (!memcmp (buf, "data", 4)) + break; + if (size <= 0) + break; + zfile_fseek (zf, size, SEEK_CUR); + } + t->offset += zfile_ftell (zf); + t->filesize = size; + } + t->enctype = fnametypeid; + } + else if (fnametypeid == AUDENC_MP3 && t->handle) + { + if (!mp3dec) + { + try + { + mp3dec = new mp3decoder(); + } + catch (exception) { } + } + if (mp3dec) + { + t->offset = 0; + t->filesize = mp3dec->getsize (t->handle); + if (t->filesize) + t->enctype = fnametypeid; + } + } + else if (fnametypeid == AUDENC_FLAC && t->handle) + { + flac_get_size (t); + if (t->filesize) + t->enctype = fnametypeid; + } + } + } + } + } - xfree (fname); + struct cdtoc *t = &cdu->toc[cdu->tracks - 1]; + uae_s64 size = t->filesize; + if (!secoffset) + size -= offset * t->size; + if (size < 0) + size = 0; + cdu->toc[cdu->tracks].address = t->address + (int)(size / t->size); - delete mp3dec; + xfree (fname); - return cdu->tracks; + delete mp3dec; + + return cdu->tracks; } static int parse_image (struct cdunit *cdu, const TCHAR *img) { - struct zfile *zcue; - int i; - const TCHAR *ext; - int secoffset; + struct zfile *zcue; + int i; + const TCHAR *ext; + int secoffset; - secoffset = 0; - cdu->tracks = 0; - if (!img) - return 0; - zcue = zfile_fopen (img, _T("rb"), ZFD_ARCHIVE | ZFD_CD | ZFD_DELAYEDOPEN); - if (!zcue) - return 0; + secoffset = 0; + cdu->tracks = 0; + if (!img) + return 0; + zcue = zfile_fopen (img, _T("rb"), ZFD_ARCHIVE | ZFD_CD | ZFD_DELAYEDOPEN); + if (!zcue) + return 0; - ext = _tcsrchr (zfile_getname (zcue), '.'); - if (ext) { - TCHAR curdir[MAX_DPATH]; - TCHAR oldcurdir[MAX_DPATH], *p; + ext = _tcsrchr (zfile_getname (zcue), '.'); + if (ext) + { + TCHAR curdir[MAX_DPATH]; + TCHAR oldcurdir[MAX_DPATH], *p; - ext++; - oldcurdir[0] = 0; - _tcscpy (curdir, img); - p = curdir + _tcslen (curdir); - while (p > curdir) { - if (*p == '/' || *p == '\\') - break; - p--; - } - *p = 0; - if (p > curdir) - my_setcurrentdir (curdir, oldcurdir); + ext++; + oldcurdir[0] = 0; + _tcscpy (curdir, img); + p = curdir + _tcslen (curdir); + while (p > curdir) + { + if (*p == '/' || *p == '\\') + break; + p--; + } + *p = 0; + if (p > curdir) + my_setcurrentdir (curdir, oldcurdir); - if (!_tcsicmp (ext, _T("cue"))) - parsecue (cdu, zcue, img); - else if (!_tcsicmp (ext, _T("ccd"))) - parseccd (cdu, zcue, img); - else if (!_tcsicmp (ext, _T("mds"))) - parsemds (cdu, zcue, img); + if (!_tcsicmp (ext, _T("cue"))) + parsecue (cdu, zcue, img); + else if (!_tcsicmp (ext, _T("ccd"))) + parseccd (cdu, zcue, img); + else if (!_tcsicmp (ext, _T("mds"))) + parsemds (cdu, zcue, img); - if (oldcurdir[0]) - my_setcurrentdir (oldcurdir, NULL); - } - if (!cdu->tracks) { - uae_u64 siz = zfile_size (zcue); - if (siz >= 16384 && ((siz % 2048) == 0 || (siz % 2352) == 0)) { - struct cdtoc *t = &cdu->toc[0]; - cdu->tracks = 1; - t->ctrl = 4; - t->adr = 1; - t->fname = my_strdup (img); - t->handle = zcue; - t->size = (siz % 2048) == 0 ? 2048 : 2352; - t->filesize = siz; - write_log (_T("CD: plain CD image mounted!\n")); - cdu->toc[1].address = t->address + (int)(t->filesize / t->size); - zcue = NULL; - } - } + if (oldcurdir[0]) + my_setcurrentdir (oldcurdir, NULL); + } + if (!cdu->tracks) + { + uae_u64 siz = zfile_size (zcue); + if (siz >= 16384 && ((siz % 2048) == 0 || (siz % 2352) == 0)) + { + struct cdtoc *t = &cdu->toc[0]; + cdu->tracks = 1; + t->ctrl = 4; + t->adr = 1; + t->fname = my_strdup (img); + t->handle = zcue; + t->size = (siz % 2048) == 0 ? 2048 : 2352; + t->filesize = siz; + write_log (_T("CD: plain CD image mounted!\n")); + cdu->toc[1].address = t->address + (int)(t->filesize / t->size); + zcue = NULL; + } + } - if (!cdu->tracks) - write_log (_T("CD: couldn't mount '%s'!\n"), img); + if (!cdu->tracks) + write_log (_T("CD: couldn't mount '%s'!\n"), img); - for (i = 0; i <= cdu->tracks; i++) { - struct cdtoc *t = &cdu->toc[i]; - uae_u32 msf = lsn2msf (t->address); - if (i < cdu->tracks) - write_log (_T("%2d: "), i + 1); - else - write_log (_T(" ")); - write_log (_T("%7d %02d:%02d:%02d"), - t->address, (msf >> 16) & 0xff, (msf >> 8) & 0xff, (msf >> 0) & 0xff); - if (i < cdu->tracks) - write_log (_T(" %s %x %10lld %10lld %s"), (t->ctrl & 4) ? _T("DATA ") : (t->subcode ? _T("CDA+SUB") : _T("CDA ")), - t->ctrl, t->offset, t->filesize, t->handle == NULL ? _T("[FILE ERROR]") : _T("")); - write_log (_T("\n")); - if (i < cdu->tracks) - write_log (_T(" - %s\n"), t->fname); - if (t->handle && !t->filesize) - t->filesize = zfile_size (t->handle); - } + for (i = 0; i <= cdu->tracks; i++) + { + struct cdtoc *t = &cdu->toc[i]; + uae_u32 msf = lsn2msf (t->address); + if (i < cdu->tracks) + write_log (_T("%2d: "), i + 1); + else + write_log (_T(" ")); + write_log (_T("%7d %02d:%02d:%02d"), + t->address, (msf >> 16) & 0xff, (msf >> 8) & 0xff, (msf >> 0) & 0xff); + if (i < cdu->tracks) + write_log (_T(" %s %x %10lld %10lld %s"), (t->ctrl & 4) ? _T("DATA ") : (t->subcode ? _T("CDA+SUB") : _T("CDA ")), + t->ctrl, t->offset, t->filesize, t->handle == NULL ? _T("[FILE ERROR]") : _T("")); + write_log (_T("\n")); + if (i < cdu->tracks) + write_log (_T(" - %s\n"), t->fname); + if (t->handle && !t->filesize) + t->filesize = zfile_size (t->handle); + } - cdu->blocksize = 2048; - cdu->cdsize = cdu->toc[cdu->tracks].address * cdu->blocksize; - + cdu->blocksize = 2048; + cdu->cdsize = cdu->toc[cdu->tracks].address * cdu->blocksize; - zfile_fclose (zcue); - return 1; + + zfile_fclose (zcue); + return 1; } static int ismedia (int unitnum, int quick) { - struct cdunit *cdu = &cdunits[unitnum]; - if (!cdu->enabled) - return -1; - return cdu->tracks > 0 ? 1 : 0; + struct cdunit *cdu = &cdunits[unitnum]; + if (!cdu->enabled) + return -1; + return cdu->tracks > 0 ? 1 : 0; } static struct device_info *info_device (int unitnum, struct device_info *di, int quick, int session) { - struct cdunit *cdu = &cdunits[unitnum]; - memset (di, 0, sizeof (struct device_info)); - if (!cdu->enabled) - return NULL; - di->open = cdu->open; - di->removable = 1; - di->bus = unitnum; - di->target = 0; - di->lun = 0; - di->media_inserted = 0; - di->bytespersector = 2048; - di->mediapath[0] = 0; - di->cylinders = 1; - di->trackspercylinder = 1; - di->sectorspertrack = (int)(cdu->cdsize / di->bytespersector); - if (ismedia (unitnum, 1)) { - di->media_inserted = 1; - _tcscpy (di->mediapath, currprefs.cdslots[unitnum].name); - } - memset (&di->toc, 0, sizeof (struct cd_toc_head)); - command_toc (unitnum, &di->toc); - di->write_protected = 1; - di->type = INQ_ROMD; - di->unitnum = unitnum + 1; - if (di->mediapath[0]) { - _tcscpy (di->label, _T("IMG:")); - _tcscat (di->label, di->mediapath); - } else { - _tcscpy (di->label, _T("IMG:")); - } - di->backend = _T("IMAGE"); - return di; + struct cdunit *cdu = &cdunits[unitnum]; + memset (di, 0, sizeof (struct device_info)); + if (!cdu->enabled) + return NULL; + di->open = cdu->open; + di->removable = 1; + di->bus = unitnum; + di->target = 0; + di->lun = 0; + di->media_inserted = 0; + di->bytespersector = 2048; + di->mediapath[0] = 0; + di->cylinders = 1; + di->trackspercylinder = 1; + di->sectorspertrack = (int)(cdu->cdsize / di->bytespersector); + if (ismedia (unitnum, 1)) + { + di->media_inserted = 1; + _tcscpy (di->mediapath, currprefs.cdslots[unitnum].name); + } + memset (&di->toc, 0, sizeof (struct cd_toc_head)); + command_toc (unitnum, &di->toc); + di->write_protected = 1; + di->type = INQ_ROMD; + di->unitnum = unitnum + 1; + if (di->mediapath[0]) + { + _tcscpy (di->label, _T("IMG:")); + _tcscat (di->label, di->mediapath); + } + else + { + _tcscpy (di->label, _T("IMG:")); + } + di->backend = _T("IMAGE"); + return di; } static void unload_image (struct cdunit *cdu) { - int i; + int i; - for (i = 0; i < sizeof cdu->toc / sizeof (struct cdtoc); i++) { - struct cdtoc *t = &cdu->toc[i]; - zfile_fclose (t->handle); - if (t->handle != t->subhandle) - zfile_fclose (t->subhandle); - xfree (t->fname); - xfree (t->data); - xfree (t->subdata); - } - memset (cdu->toc, 0, sizeof cdu->toc); - cdu->tracks = 0; - cdu->cdsize = 0; + for (i = 0; i < sizeof cdu->toc / sizeof (struct cdtoc); i++) + { + struct cdtoc *t = &cdu->toc[i]; + zfile_fclose (t->handle); + if (t->handle != t->subhandle) + zfile_fclose (t->subhandle); + xfree (t->fname); + xfree (t->data); + xfree (t->subdata); + } + memset (cdu->toc, 0, sizeof cdu->toc); + cdu->tracks = 0; + cdu->cdsize = 0; } static int open_device (int unitnum, const TCHAR *ident, int flags) { - struct cdunit *cdu = &cdunits[unitnum]; - int ret = 0; + struct cdunit *cdu = &cdunits[unitnum]; + int ret = 0; - if (!cdu->open) { - uae_sem_init (&cdu->sub_sem, 0, 1); - parse_image (cdu, ident); - cdu->open = true; - cdu->enabled = true; - cdu->cdda_volume[0] = 0x7fff; - cdu->cdda_volume[1] = 0x7fff; - if (cdimage_unpack_thread == 0) { - init_comm_pipe (&unpack_pipe, 10, 1); - uae_start_thread (_T("cdimage_unpack"), cdda_unpack_func, NULL, NULL); - while (cdimage_unpack_thread == 0) - Sleep (10); - } - ret = 1; - } - blkdev_cd_change (unitnum, currprefs.cdslots[unitnum].name); - return ret; + if (!cdu->open) + { + uae_sem_init (&cdu->sub_sem, 0, 1); + parse_image (cdu, ident); + cdu->open = true; + cdu->enabled = true; + cdu->cdda_volume[0] = 0x7fff; + cdu->cdda_volume[1] = 0x7fff; + if (cdimage_unpack_thread == 0) + { + init_comm_pipe (&unpack_pipe, 10, 1); + uae_start_thread (_T("cdimage_unpack"), cdda_unpack_func, NULL, NULL); + while (cdimage_unpack_thread == 0) + Sleep (10); + } + ret = 1; + } + blkdev_cd_change (unitnum, currprefs.cdslots[unitnum].name); + return ret; } static void close_device (int unitnum) { - struct cdunit *cdu = &cdunits[unitnum]; - if (cdu->open) { - cdda_stop (cdu); - cdu->open = false; - if (cdimage_unpack_thread) { - cdimage_unpack_thread = 0; - write_comm_pipe_u32 (&unpack_pipe, -1, 0); - write_comm_pipe_u32 (&unpack_pipe, -1, 1); - while (cdimage_unpack_thread == 0) - Sleep (10); - cdimage_unpack_thread = 0; - destroy_comm_pipe (&unpack_pipe); - } - unload_image (cdu); - uae_sem_destroy (&cdu->sub_sem); - } - blkdev_cd_change (unitnum, currprefs.cdslots[unitnum].name); + struct cdunit *cdu = &cdunits[unitnum]; + if (cdu->open) + { + cdda_stop (cdu); + cdu->open = false; + if (cdimage_unpack_thread) + { + cdimage_unpack_thread = 0; + write_comm_pipe_u32 (&unpack_pipe, -1, 0); + write_comm_pipe_u32 (&unpack_pipe, -1, 1); + while (cdimage_unpack_thread == 0) + Sleep (10); + cdimage_unpack_thread = 0; + destroy_comm_pipe (&unpack_pipe); + } + unload_image (cdu); + uae_sem_destroy (&cdu->sub_sem); + } + blkdev_cd_change (unitnum, currprefs.cdslots[unitnum].name); } static void close_bus (void) { - if (!bus_open) { - write_log (_T("IMAGE close_bus() when already closed!\n")); - return; - } - for (int i = 0; i < MAX_TOTAL_SCSI_DEVICES; i++) { - struct cdunit *cdu = &cdunits[i]; - if (cdu->open) - close_device (i); - cdu->enabled = false; - } - bus_open = 0; - write_log (_T("IMAGE driver closed.\n")); + if (!bus_open) + { + write_log (_T("IMAGE close_bus() when already closed!\n")); + return; + } + for (int i = 0; i < MAX_TOTAL_SCSI_DEVICES; i++) + { + struct cdunit *cdu = &cdunits[i]; + if (cdu->open) + close_device (i); + cdu->enabled = false; + } + bus_open = 0; + write_log (_T("IMAGE driver closed.\n")); } static int open_bus (int flags) { - if (bus_open) { - write_log (_T("IOCTL open_bus() more than once!\n")); - return 1; - } - bus_open = 1; - write_log (_T("Image driver open.\n")); - return 1; + if (bus_open) + { + write_log (_T("IOCTL open_bus() more than once!\n")); + return 1; + } + bus_open = 1; + write_log (_T("Image driver open.\n")); + return 1; } -struct device_functions devicefunc_cdimage = { - _T("IMAGE"), - open_bus, close_bus, open_device, close_device, info_device, - 0, 0, 0, - command_pause, command_stop, command_play, command_volume, command_qcode, - command_toc, command_read, command_rawread, 0, - 0, ismedia, 0 +struct device_functions devicefunc_cdimage = +{ + _T("IMAGE"), + open_bus, close_bus, open_device, close_device, info_device, + 0, 0, 0, + command_pause, command_stop, command_play, command_volume, command_qcode, + command_toc, command_read, command_rawread, 0, + 0, ismedia, 0 }; diff --git a/src/bsdsocket.cpp b/src/bsdsocket.cpp index b9d68552..7fe26bd4 100644 --- a/src/bsdsocket.cpp +++ b/src/bsdsocket.cpp @@ -15,7 +15,7 @@ #include #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "custom.h" #include "newcpu.h" #include "autoconf.h" @@ -34,10 +34,11 @@ static uae_u32 SockLibBase; #define UNIQUE_ID (-1) /* ObtainSocket()/ReleaseSocket() public socket pool */ -struct sockd { - long sockpoolids[SOCKPOOLSIZE]; - SOCKET_TYPE sockpoolsocks[SOCKPOOLSIZE]; - uae_u32 sockpoolflags[SOCKPOOLSIZE]; +struct sockd +{ + long sockpoolids[SOCKPOOLSIZE]; + SOCKET_TYPE sockpoolsocks[SOCKPOOLSIZE]; + uae_u32 sockpoolflags[SOCKPOOLSIZE]; }; static long curruniqid = 65536; @@ -45,235 +46,260 @@ static struct sockd *sockdata; uae_u32 strncpyha (uae_u32 dst, const uae_char *src, int size) { - uae_u32 res = dst; - if (!addr_valid (_T("strncpyha"), dst, size)) - return res; - while (size--) { - put_byte (dst++, *src); - if (!*src++) - return res; - } - return res; + uae_u32 res = dst; + if (!addr_valid (_T("strncpyha"), dst, size)) + return res; + while (size--) + { + put_byte (dst++, *src); + if (!*src++) + return res; + } + return res; } uae_u32 addstr (uae_u32 * dst, const TCHAR *src) { - uae_u32 res = *dst; - int len; - char *s = ua (src); - len = strlen (s) + 1; - strcpyha_safe (*dst, s); - (*dst) += len; - xfree (s); - return res; + uae_u32 res = *dst; + int len; + char *s = ua (src); + len = strlen (s) + 1; + strcpyha_safe (*dst, s); + (*dst) += len; + xfree (s); + return res; } uae_u32 addstr_ansi (uae_u32 * dst, const uae_char *src) { - uae_u32 res = *dst; - int len; - len = strlen (src) + 1; - strcpyha_safe (*dst, src); - (*dst) += len; - return res; + uae_u32 res = *dst; + int len; + len = strlen (src) + 1; + strcpyha_safe (*dst, src); + (*dst) += len; + return res; } uae_u32 addmem (uae_u32 * dst, const uae_char *src, int len) { - uae_u32 res = *dst; + uae_u32 res = *dst; - if (!src) - return 0; - memcpyha_safe (*dst, (uae_u8*)src, len); - (*dst) += len; + if (!src) + return 0; + memcpyha_safe (*dst, (uae_u8*)src, len); + (*dst) += len; - return res; + return res; } /* Get current task */ static uae_u32 gettask (TrapContext *context) { - uae_u32 currtask, a1 = m68k_areg (regs, 1); - TCHAR *tskname; + uae_u32 currtask, a1 = m68k_areg (regs, 1); + TCHAR *tskname; - m68k_areg (regs, 1) = 0; - currtask = CallLib (context, get_long (4), -0x126); /* FindTask */ + m68k_areg (regs, 1) = 0; + currtask = CallLib (context, get_long (4), -0x126); /* FindTask */ - m68k_areg (regs, 1) = a1; + m68k_areg (regs, 1) = a1; - tskname = au((char*)get_real_address (get_long (currtask + 10))); - BSDTRACE ((_T("[%s] "), tskname)); - xfree (tskname); - return currtask; + tskname = au((char*)get_real_address (get_long (currtask + 10))); + BSDTRACE ((_T("[%s] "), tskname)); + xfree (tskname); + return currtask; } /* errno/herrno setting */ void bsdsocklib_seterrno (SB, int sb_errno) { - sb->sb_errno = sb_errno; - if (sb->sb_errno >= 1001 && sb->sb_errno <= 1005) - bsdsocklib_setherrno(sb,sb->sb_errno-1000); - if (sb->errnoptr) { - switch (sb->errnosize) { - case 1: - put_byte (sb->errnoptr, sb_errno); - break; - case 2: - put_word (sb->errnoptr, sb_errno); - break; - case 4: - put_long (sb->errnoptr, sb_errno); - } - } + sb->sb_errno = sb_errno; + if (sb->sb_errno >= 1001 && sb->sb_errno <= 1005) + bsdsocklib_setherrno(sb,sb->sb_errno-1000); + if (sb->errnoptr) + { + switch (sb->errnosize) + { + case 1: + put_byte (sb->errnoptr, sb_errno); + break; + case 2: + put_word (sb->errnoptr, sb_errno); + break; + case 4: + put_long (sb->errnoptr, sb_errno); + } + } } void bsdsocklib_setherrno (SB, int sb_herrno) { - sb->sb_herrno = sb_herrno; + sb->sb_herrno = sb_herrno; - if (sb->herrnoptr) { - switch (sb->herrnosize) { - case 1: - put_byte (sb->herrnoptr, sb_herrno); - break; - case 2: - put_word (sb->herrnoptr, sb_herrno); - break; - case 4: - put_long (sb->herrnoptr, sb_herrno); - } - } + if (sb->herrnoptr) + { + switch (sb->herrnosize) + { + case 1: + put_byte (sb->herrnoptr, sb_herrno); + break; + case 2: + put_word (sb->herrnoptr, sb_herrno); + break; + case 4: + put_long (sb->herrnoptr, sb_herrno); + } + } } uae_u32 callfdcallback (TrapContext *context, SB, uae_u32 fd, uae_u32 action) { - uae_u32 v; - if (!sb->fdcallback) - return 0; - BSDTRACE((_T("FD_CALLBACK(%d,%d) "), fd, action)); - m68k_dreg (regs, 0) = fd; - m68k_dreg (regs, 1) = action; - v = CallFunc (context, sb->fdcallback); - BSDTRACE((_T(" -> %d\n"), v)); - return v; + uae_u32 v; + if (!sb->fdcallback) + return 0; + BSDTRACE((_T("FD_CALLBACK(%d,%d) "), fd, action)); + m68k_dreg (regs, 0) = fd; + m68k_dreg (regs, 1) = action; + v = CallFunc (context, sb->fdcallback); + BSDTRACE((_T(" -> %d\n"), v)); + return v; } BOOL checksd(TrapContext *context, SB, int sd) { - int iCounter; - SOCKET s; + int iCounter; + SOCKET s; - s = getsock(sb,sd); - if (s != INVALID_SOCKET) { - for (iCounter = 1; iCounter <= sb->dtablesize; iCounter++) { - if (iCounter != sd) { - if (getsock(sb,iCounter) == s) { - releasesock(context, sb, sd); - return TRUE; - } - } - } - for (iCounter = 0; iCounter < SOCKPOOLSIZE; iCounter++) { - if (s == sockdata->sockpoolsocks[iCounter]) - return TRUE; - } - } - BSDTRACE((_T("checksd FALSE s 0x%x sd %d\n"),s,sd)); - return FALSE; + s = getsock(sb,sd); + if (s != INVALID_SOCKET) + { + for (iCounter = 1; iCounter <= sb->dtablesize; iCounter++) + { + if (iCounter != sd) + { + if (getsock(sb,iCounter) == s) + { + releasesock(context, sb, sd); + return TRUE; + } + } + } + for (iCounter = 0; iCounter < SOCKPOOLSIZE; iCounter++) + { + if (s == sockdata->sockpoolsocks[iCounter]) + return TRUE; + } + } + BSDTRACE((_T("checksd FALSE s 0x%x sd %d\n"),s,sd)); + return FALSE; } void setsd(TrapContext *context, SB, int sd, SOCKET_TYPE s) { - callfdcallback (context, sb, sd - 1, FDCB_ALLOC); - sb->dtable[sd - 1] = s; + callfdcallback (context, sb, sd - 1, FDCB_ALLOC); + sb->dtable[sd - 1] = s; } /* Socket descriptor/opaque socket handle management */ int getsd (TrapContext *context, SB, SOCKET_TYPE s) { - int i, fdcb; - SOCKET_TYPE *dt = sb->dtable; + int i, fdcb; + SOCKET_TYPE *dt = sb->dtable; - /* return socket descriptor if already exists */ - for (i = sb->dtablesize; i--;) { - if (dt[i] == s) - return i + 1; - } + /* return socket descriptor if already exists */ + for (i = sb->dtablesize; i--;) + { + if (dt[i] == s) + return i + 1; + } - /* create new table entry */ - fdcb = 0; - for (i = 0; i < sb->dtablesize; i++) { - if (dt[i] == -1) { - if (callfdcallback (context, sb, i, FDCB_CHECK)) { - /* fd was allocated by link lib */ - dt[i] = -2; - continue; - } - dt[i] = s; - sb->ftable[i] = SF_BLOCKING; - return i + 1; - } else if (dt[i] == -2) { - fdcb = 1; - } - } - /* recheck callback allocated FDs */ - if (fdcb) { - for (i = 0; i < sb->dtablesize; i++) { - if (dt[i] == -2) { - if (!callfdcallback (context, sb, i, FDCB_CHECK)) { - dt[i] = s; - sb->ftable[i] = SF_BLOCKING; - return i + 1; - } - } - } - } + /* create new table entry */ + fdcb = 0; + for (i = 0; i < sb->dtablesize; i++) + { + if (dt[i] == -1) + { + if (callfdcallback (context, sb, i, FDCB_CHECK)) + { + /* fd was allocated by link lib */ + dt[i] = -2; + continue; + } + dt[i] = s; + sb->ftable[i] = SF_BLOCKING; + return i + 1; + } + else if (dt[i] == -2) + { + fdcb = 1; + } + } + /* recheck callback allocated FDs */ + if (fdcb) + { + for (i = 0; i < sb->dtablesize; i++) + { + if (dt[i] == -2) + { + if (!callfdcallback (context, sb, i, FDCB_CHECK)) + { + dt[i] = s; + sb->ftable[i] = SF_BLOCKING; + return i + 1; + } + } + } + } - /* descriptor table full. */ - bsdsocklib_seterrno (sb, 24); /* EMFILE */ + /* descriptor table full. */ + bsdsocklib_seterrno (sb, 24); /* EMFILE */ - return -1; + return -1; } SOCKET_TYPE getsock (SB, int sd) { - if ((unsigned int) (sd - 1) >= (unsigned int) sb->dtablesize) { - BSDTRACE ((_T("Invalid Socket Descriptor (%d)\n"), sd)); - bsdsocklib_seterrno (sb, 38); /* ENOTSOCK */ - return -1; - } - if (sb->dtable[sd - 1] == INVALID_SOCKET) { - struct socketbase *sb1, *nsb; - uaecptr ot; - if (!addr_valid (_T("getsock1"), sb->ownertask + 10, 4)) - return -1; - ot = get_long (sb->ownertask + 10); - if (!addr_valid (_T("getsock2"), ot, 1)) - return -1; - // Fix for Newsrog (All Tasks of Newsrog using the same dtable) - for (sb1 = socketbases; sb1; sb1 = nsb) { - uaecptr ot1; - if (!addr_valid (_T("getsock3"), sb1->ownertask + 10, 4)) - break; - ot1 = get_long (sb1->ownertask + 10); - if (!addr_valid (_T("getsock4"), ot1, 1)) - break; - if (strcmp((char*)get_real_address (ot1), (char*)get_real_address (ot)) == 0) { - // Task with same name already exists -> use same dtable - if (sb1->dtable[sd - 1] != INVALID_SOCKET) - return sb1->dtable[sd - 1]; - } - nsb = sb1->next; - } - } - return sb->dtable[sd - 1]; + if ((unsigned int) (sd - 1) >= (unsigned int) sb->dtablesize) + { + BSDTRACE ((_T("Invalid Socket Descriptor (%d)\n"), sd)); + bsdsocklib_seterrno (sb, 38); /* ENOTSOCK */ + return -1; + } + if (sb->dtable[sd - 1] == INVALID_SOCKET) + { + struct socketbase *sb1, *nsb; + uaecptr ot; + if (!addr_valid (_T("getsock1"), sb->ownertask + 10, 4)) + return -1; + ot = get_long (sb->ownertask + 10); + if (!addr_valid (_T("getsock2"), ot, 1)) + return -1; + // Fix for Newsrog (All Tasks of Newsrog using the same dtable) + for (sb1 = socketbases; sb1; sb1 = nsb) + { + uaecptr ot1; + if (!addr_valid (_T("getsock3"), sb1->ownertask + 10, 4)) + break; + ot1 = get_long (sb1->ownertask + 10); + if (!addr_valid (_T("getsock4"), ot1, 1)) + break; + if (strcmp((char*)get_real_address (ot1), (char*)get_real_address (ot)) == 0) + { + // Task with same name already exists -> use same dtable + if (sb1->dtable[sd - 1] != INVALID_SOCKET) + return sb1->dtable[sd - 1]; + } + nsb = sb1->next; + } + } + return sb->dtable[sd - 1]; } void releasesock (TrapContext *context, SB, int sd) { - if ((unsigned int) (sd - 1) < (unsigned int) sb->dtablesize) { - sb->dtable[sd - 1] = -1; - callfdcallback (context, sb, sd - 1, FDCB_FREE); - } + if ((unsigned int) (sd - 1) < (unsigned int) sb->dtablesize) + { + sb->dtable[sd - 1] = -1; + callfdcallback (context, sb, sd - 1, FDCB_FREE); + } } /* Signal queue */ @@ -285,804 +311,852 @@ volatile int bsd_int_requested; void addtosigqueue (SB, int events) { - locksigqueue (); + locksigqueue (); - if (events) - sb->sigstosend |= sb->eventsigs; - else - sb->sigstosend |= ((uae_u32) 1) << sb->signal; + if (events) + sb->sigstosend |= sb->eventsigs; + else + sb->sigstosend |= ((uae_u32) 1) << sb->signal; - if (!sb->dosignal) { - sb->nextsig = sbsigqueue; - sbsigqueue = sb; - } - sb->dosignal = 1; + if (!sb->dosignal) + { + sb->nextsig = sbsigqueue; + sbsigqueue = sb; + } + sb->dosignal = 1; - bsd_int_requested |= 1; + bsd_int_requested |= 1; - unlocksigqueue (); + unlocksigqueue (); } void bsdsock_fake_int_handler(void) { - locksigqueue (); + locksigqueue (); - bsd_int_requested = 0; + bsd_int_requested = 0; - if (sbsigqueue != NULL) { - SB; + if (sbsigqueue != NULL) + { + SB; - for (sb = sbsigqueue; sb; sb = sb->nextsig) { - if (sb->dosignal == 1) { - uae_Signal (sb->ownertask, sb->sigstosend); - sb->sigstosend = 0; - } - sb->dosignal = 0; - } + for (sb = sbsigqueue; sb; sb = sb->nextsig) + { + if (sb->dosignal == 1) + { + uae_Signal (sb->ownertask, sb->sigstosend); + sb->sigstosend = 0; + } + sb->dosignal = 0; + } - sbsigqueue = NULL; - } + sbsigqueue = NULL; + } - unlocksigqueue (); + unlocksigqueue (); } void waitsig (TrapContext *context, SB) { - long sigs; - m68k_dreg (regs, 0) = (((uae_u32) 1) << sb->signal) | sb->eintrsigs; - if ((sigs = CallLib (context, sb->sysbase, -0x13e)) & sb->eintrsigs) { /* Wait */ - sockabort (sb); - bsdsocklib_seterrno (sb, 4); /* EINTR */ + long sigs; + m68k_dreg (regs, 0) = (((uae_u32) 1) << sb->signal) | sb->eintrsigs; + if ((sigs = CallLib (context, sb->sysbase, -0x13e)) & sb->eintrsigs) /* Wait */ + { + sockabort (sb); + bsdsocklib_seterrno (sb, 4); /* EINTR */ - // Set signal - m68k_dreg (regs, 0) = sigs; - m68k_dreg (regs, 1) = sb->eintrsigs; - sigs = CallLib (context, sb->sysbase, -0x132); /* SetSignal() */ + // Set signal + m68k_dreg (regs, 0) = sigs; + m68k_dreg (regs, 1) = sb->eintrsigs; + sigs = CallLib (context, sb->sysbase, -0x132); /* SetSignal() */ - sb->eintr = 1; - } else - sb->eintr = 0; + sb->eintr = 1; + } + else + sb->eintr = 0; } void cancelsig (TrapContext *context, SB) { - locksigqueue (); - if (sb->dosignal) - sb->dosignal = 2; - unlocksigqueue (); + locksigqueue (); + if (sb->dosignal) + sb->dosignal = 2; + unlocksigqueue (); - m68k_dreg (regs, 0) = 0; - m68k_dreg (regs, 1) = ((uae_u32) 1) << sb->signal; - CallLib (context, sb->sysbase, -0x132); /* SetSignal() */ + m68k_dreg (regs, 0) = 0; + m68k_dreg (regs, 1) = ((uae_u32) 1) << sb->signal; + CallLib (context, sb->sysbase, -0x132); /* SetSignal() */ } /* Allocate and initialize per-task state structure */ static struct socketbase *alloc_socketbase (TrapContext *context) { - SB; - int i; + SB; + int i; - if ((sb = xcalloc (struct socketbase, 1)) != NULL) { - sb->ownertask = gettask (context); - sb->sysbase = get_long (4); + if ((sb = xcalloc (struct socketbase, 1)) != NULL) + { + sb->ownertask = gettask (context); + sb->sysbase = get_long (4); - m68k_dreg (regs, 0) = -1; - sb->signal = CallLib (context, sb->sysbase, -0x14A); /* AllocSignal */ + m68k_dreg (regs, 0) = -1; + sb->signal = CallLib (context, sb->sysbase, -0x14A); /* AllocSignal */ - if (sb->signal == -1) { - write_log (_T("bsdsocket: ERROR: Couldn't allocate signal for task 0x%lx.\n"), sb->ownertask); - free (sb); - return NULL; - } - m68k_dreg (regs, 0) = SCRATCHBUFSIZE; - m68k_dreg (regs, 1) = 0; + if (sb->signal == -1) + { + write_log (_T("bsdsocket: ERROR: Couldn't allocate signal for task 0x%lx.\n"), sb->ownertask); + free (sb); + return NULL; + } + m68k_dreg (regs, 0) = SCRATCHBUFSIZE; + m68k_dreg (regs, 1) = 0; - sb->dtablesize = DEFAULT_DTABLE_SIZE; - /* @@@ check malloc() result */ - sb->dtable = (SOCKET*)malloc (sb->dtablesize * sizeof (*sb->dtable)); - sb->ftable = (int*)malloc (sb->dtablesize * sizeof (*sb->ftable)); + sb->dtablesize = DEFAULT_DTABLE_SIZE; + /* @@@ check malloc() result */ + sb->dtable = (SOCKET*)malloc (sb->dtablesize * sizeof (*sb->dtable)); + sb->ftable = (int*)malloc (sb->dtablesize * sizeof (*sb->ftable)); - for (i = sb->dtablesize; i--;) - sb->dtable[i] = -1; + for (i = sb->dtablesize; i--;) + sb->dtable[i] = -1; - sb->eintrsigs = 0x1000; /* SIGBREAKF_CTRL_C */ + sb->eintrsigs = 0x1000; /* SIGBREAKF_CTRL_C */ - sb->logfacility = 1 << 3; /* LOG_USER */ - sb->logmask = 0xff; + sb->logfacility = 1 << 3; /* LOG_USER */ + sb->logmask = 0xff; - if (!host_sbinit (context, sb)) { - /* @@@ free everything */ - return NULL; - } + if (!host_sbinit (context, sb)) + { + /* @@@ free everything */ + return NULL; + } - locksigqueue(); + locksigqueue(); - if (socketbases) - sb->next = socketbases; - socketbases = sb; + if (socketbases) + sb->next = socketbases; + socketbases = sb; - unlocksigqueue(); + unlocksigqueue(); - return sb; - } - return NULL; + return sb; + } + return NULL; } STATIC_INLINE struct socketbase *get_socketbase (TrapContext *context) { - return (struct socketbase*)get_pointer (m68k_areg (regs, 6) + offsetof (struct UAEBSDBase, sb)); + return (struct socketbase*)get_pointer (m68k_areg (regs, 6) + offsetof (struct UAEBSDBase, sb)); } static void free_socketbase (TrapContext *context) { - struct socketbase *sb, *nsb; + struct socketbase *sb, *nsb; - if ((sb = get_socketbase (context)) != NULL) { - m68k_dreg (regs, 0) = sb->signal; - CallLib (context, sb->sysbase, -0x150); /* FreeSignal */ + if ((sb = get_socketbase (context)) != NULL) + { + m68k_dreg (regs, 0) = sb->signal; + CallLib (context, sb->sysbase, -0x150); /* FreeSignal */ - if (sb->hostent) { - m68k_areg (regs, 1) = sb->hostent; - m68k_dreg (regs, 0) = sb->hostentsize; - CallLib (context, sb->sysbase, -0xD2); /* FreeMem */ + if (sb->hostent) + { + m68k_areg (regs, 1) = sb->hostent; + m68k_dreg (regs, 0) = sb->hostentsize; + CallLib (context, sb->sysbase, -0xD2); /* FreeMem */ - } - if (sb->protoent) { - m68k_areg (regs, 1) = sb->protoent; - m68k_dreg (regs, 0) = sb->protoentsize; - CallLib (context, sb->sysbase, -0xD2); /* FreeMem */ + } + if (sb->protoent) + { + m68k_areg (regs, 1) = sb->protoent; + m68k_dreg (regs, 0) = sb->protoentsize; + CallLib (context, sb->sysbase, -0xD2); /* FreeMem */ - } - if (sb->servent) { - m68k_areg (regs, 1) = sb->servent; - m68k_dreg (regs, 0) = sb->serventsize; - CallLib (context, sb->sysbase, -0xD2); /* FreeMem */ + } + if (sb->servent) + { + m68k_areg (regs, 1) = sb->servent; + m68k_dreg (regs, 0) = sb->serventsize; + CallLib (context, sb->sysbase, -0xD2); /* FreeMem */ - } - host_sbcleanup (sb); + } + host_sbcleanup (sb); - free (sb->dtable); - free (sb->ftable); + free (sb->dtable); + free (sb->ftable); - locksigqueue (); + locksigqueue (); - if (sb == socketbases) - socketbases = sb->next; - else { - for (nsb = socketbases; nsb; nsb = nsb->next) { - if (sb == nsb->next) { - nsb->next = sb->next; - break; - } - } - } + if (sb == socketbases) + socketbases = sb->next; + else + { + for (nsb = socketbases; nsb; nsb = nsb->next) + { + if (sb == nsb->next) + { + nsb->next = sb->next; + break; + } + } + } #if 1 - if (sb == sbsigqueue) - sbsigqueue = sb->next; - else { - for (nsb = sbsigqueue; nsb; nsb = nsb->next) { - if (sb == nsb->next) { - nsb->next = sb->next; - break; - } - } - } + if (sb == sbsigqueue) + sbsigqueue = sb->next; + else + { + for (nsb = sbsigqueue; nsb; nsb = nsb->next) + { + if (sb == nsb->next) + { + nsb->next = sb->next; + break; + } + } + } #endif - unlocksigqueue (); + unlocksigqueue (); - free (sb); - } + free (sb); + } } static uae_u32 REGPARAM2 bsdsocklib_Expunge (TrapContext *context) { - BSDTRACE ((_T("Expunge() -> [ignored]\n"))); - return 0; + BSDTRACE ((_T("Expunge() -> [ignored]\n"))); + return 0; } static uae_u32 functable, datatable, inittable; static uae_u32 REGPARAM2 bsdsocklib_Open (TrapContext *context) { - uae_u32 result = 0; - int opencount; - SB; + uae_u32 result = 0; + int opencount; + SB; - BSDTRACE ((_T("OpenLibrary() -> "))); + BSDTRACE ((_T("OpenLibrary() -> "))); - if ((sb = alloc_socketbase (context)) != NULL) { - put_word (SockLibBase + 32, opencount = get_word (SockLibBase + 32) + 1); + if ((sb = alloc_socketbase (context)) != NULL) + { + put_word (SockLibBase + 32, opencount = get_word (SockLibBase + 32) + 1); - m68k_areg (regs, 0) = functable; - m68k_areg (regs, 1) = datatable; - m68k_areg (regs, 2) = 0; - m68k_dreg (regs, 0) = sizeof (struct UAEBSDBase); - m68k_dreg (regs, 1) = 0; - result = CallLib (context, sb->sysbase, -0x54); /* MakeLibrary */ + m68k_areg (regs, 0) = functable; + m68k_areg (regs, 1) = datatable; + m68k_areg (regs, 2) = 0; + m68k_dreg (regs, 0) = sizeof (struct UAEBSDBase); + m68k_dreg (regs, 1) = 0; + result = CallLib (context, sb->sysbase, -0x54); /* MakeLibrary */ - put_pointer (result + offsetof (struct UAEBSDBase, sb), sb); + put_pointer (result + offsetof (struct UAEBSDBase, sb), sb); - BSDTRACE ((_T("%0x [%d]\n"), result, opencount)); - } else - BSDTRACE ((_T("failed (out of memory)\n"))); + BSDTRACE ((_T("%0x [%d]\n"), result, opencount)); + } + else + BSDTRACE ((_T("failed (out of memory)\n"))); - return result; + return result; } static uae_u32 REGPARAM2 bsdsocklib_Close (TrapContext *context) { - int opencount; + int opencount; - uae_u32 base = m68k_areg (regs, 6); - uae_u32 negsize = get_word (base + 16); + uae_u32 base = m68k_areg (regs, 6); + uae_u32 negsize = get_word (base + 16); - free_socketbase (context); + free_socketbase (context); - put_word (SockLibBase + 32, opencount = get_word (SockLibBase + 32) - 1); + put_word (SockLibBase + 32, opencount = get_word (SockLibBase + 32) - 1); - m68k_areg (regs, 1) = base - negsize; - m68k_dreg (regs, 0) = negsize + get_word (base + 18); - CallLib (context, get_long (4), -0xD2); /* FreeMem */ + m68k_areg (regs, 1) = base - negsize; + m68k_dreg (regs, 0) = negsize + get_word (base + 18); + CallLib (context, get_long (4), -0xD2); /* FreeMem */ - BSDTRACE ((_T("CloseLibrary() -> [%d]\n"), opencount)); + BSDTRACE ((_T("CloseLibrary() -> [%d]\n"), opencount)); - return 0; + return 0; } /* socket(domain, type, protocol)(d0/d1/d2) */ static uae_u32 REGPARAM2 bsdsocklib_socket (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - return host_socket (context, sb, m68k_dreg (regs, 0), m68k_dreg (regs, 1), - m68k_dreg (regs, 2)); + struct socketbase *sb = get_socketbase (context); + return host_socket (context, sb, m68k_dreg (regs, 0), m68k_dreg (regs, 1), + m68k_dreg (regs, 2)); } /* bind(s, name, namelen)(d0/a0/d1) */ static uae_u32 REGPARAM2 bsdsocklib_bind (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - return host_bind (context, sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), - m68k_dreg (regs, 1)); + struct socketbase *sb = get_socketbase (context); + return host_bind (context, sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), + m68k_dreg (regs, 1)); } /* listen(s, backlog)(d0/d1) */ static uae_u32 REGPARAM2 bsdsocklib_listen (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - return host_listen (context, sb, m68k_dreg (regs, 0), m68k_dreg (regs, 1)); + struct socketbase *sb = get_socketbase (context); + return host_listen (context, sb, m68k_dreg (regs, 0), m68k_dreg (regs, 1)); } /* accept(s, addr, addrlen)(d0/a0/a1) */ static uae_u32 REGPARAM2 bsdsocklib_accept (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - host_accept (context, sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), m68k_areg (regs, 1)); - return sb->resultval; + struct socketbase *sb = get_socketbase (context); + host_accept (context, sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), m68k_areg (regs, 1)); + return sb->resultval; } /* connect(s, name, namelen)(d0/a0/d1) */ static uae_u32 REGPARAM2 bsdsocklib_connect (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - host_connect (context, sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), m68k_dreg (regs, 1)); - return sb->sb_errno ? -1 : 0; + struct socketbase *sb = get_socketbase (context); + host_connect (context, sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), m68k_dreg (regs, 1)); + return sb->sb_errno ? -1 : 0; } /* sendto(s, msg, len, flags, to, tolen)(d0/a0/d1/d2/a1/d3) */ static uae_u32 REGPARAM2 bsdsocklib_sendto (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - host_sendto (context, sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), m68k_dreg (regs, 1), - m68k_dreg (regs, 2), m68k_areg (regs, 1), m68k_dreg (regs, 3)); - return sb->resultval; + struct socketbase *sb = get_socketbase (context); + host_sendto (context, sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), m68k_dreg (regs, 1), + m68k_dreg (regs, 2), m68k_areg (regs, 1), m68k_dreg (regs, 3)); + return sb->resultval; } /* send(s, msg, len, flags)(d0/a0/d1/d2) */ static uae_u32 REGPARAM2 bsdsocklib_send (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - host_sendto (context, sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), m68k_dreg (regs, 1), - m68k_dreg (regs, 2), 0, 0); - return sb->resultval; + struct socketbase *sb = get_socketbase (context); + host_sendto (context, sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), m68k_dreg (regs, 1), + m68k_dreg (regs, 2), 0, 0); + return sb->resultval; } /* recvfrom(s, buf, len, flags, from, fromlen)(d0/a0/d1/d2/a1/a2) */ static uae_u32 REGPARAM2 bsdsocklib_recvfrom (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - host_recvfrom (context, sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), m68k_dreg (regs, 1), - m68k_dreg (regs, 2), m68k_areg (regs, 1), m68k_areg (regs, 2)); - return sb->resultval; + struct socketbase *sb = get_socketbase (context); + host_recvfrom (context, sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), m68k_dreg (regs, 1), + m68k_dreg (regs, 2), m68k_areg (regs, 1), m68k_areg (regs, 2)); + return sb->resultval; } /* recv(s, buf, len, flags)(d0/a0/d1/d2) */ static uae_u32 REGPARAM2 bsdsocklib_recv (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - host_recvfrom (context, sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), m68k_dreg (regs, 1), - m68k_dreg (regs, 2), 0, 0); - return sb->resultval; + struct socketbase *sb = get_socketbase (context); + host_recvfrom (context, sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), m68k_dreg (regs, 1), + m68k_dreg (regs, 2), 0, 0); + return sb->resultval; } /* shutdown(s, how)(d0/d1) */ static uae_u32 REGPARAM2 bsdsocklib_shutdown (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - return host_shutdown (sb, m68k_dreg (regs, 0), m68k_dreg (regs, 1)); + struct socketbase *sb = get_socketbase (context); + return host_shutdown (sb, m68k_dreg (regs, 0), m68k_dreg (regs, 1)); } /* setsockopt(s, level, optname, optval, optlen)(d0/d1/d2/a0/d3) */ static uae_u32 REGPARAM2 bsdsocklib_setsockopt (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - host_setsockopt (sb, m68k_dreg (regs, 0), m68k_dreg (regs, 1), m68k_dreg (regs, 2), - m68k_areg (regs, 0), m68k_dreg (regs, 3)); - return sb->resultval; + struct socketbase *sb = get_socketbase (context); + host_setsockopt (sb, m68k_dreg (regs, 0), m68k_dreg (regs, 1), m68k_dreg (regs, 2), + m68k_areg (regs, 0), m68k_dreg (regs, 3)); + return sb->resultval; } /* getsockopt(s, level, optname, optval, optlen)(d0/d1/d2/a0/a1) */ static uae_u32 REGPARAM2 bsdsocklib_getsockopt (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - return host_getsockopt (sb, m68k_dreg (regs, 0), m68k_dreg (regs, 1), m68k_dreg (regs, 2), - m68k_areg (regs, 0), m68k_areg (regs, 1)); + struct socketbase *sb = get_socketbase (context); + return host_getsockopt (sb, m68k_dreg (regs, 0), m68k_dreg (regs, 1), m68k_dreg (regs, 2), + m68k_areg (regs, 0), m68k_areg (regs, 1)); } /* getsockname(s, hostname, namelen)(d0/a0/a1) */ static uae_u32 REGPARAM2 bsdsocklib_getsockname (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - return host_getsockname (sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), m68k_areg (regs, 1)); + struct socketbase *sb = get_socketbase (context); + return host_getsockname (sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), m68k_areg (regs, 1)); } /* getpeername(s, hostname, namelen)(d0/a0/a1) */ static uae_u32 REGPARAM2 bsdsocklib_getpeername (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - return host_getpeername (sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), m68k_areg (regs, 1)); + struct socketbase *sb = get_socketbase (context); + return host_getpeername (sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), m68k_areg (regs, 1)); } /* *------ generic system calls related to sockets */ /* IoctlSocket(d, request, argp)(d0/d1/a0) */ static uae_u32 REGPARAM2 bsdsocklib_IoctlSocket (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - return host_IoctlSocket (context, sb, m68k_dreg (regs, 0), m68k_dreg (regs, 1), m68k_areg (regs, 0)); + struct socketbase *sb = get_socketbase (context); + return host_IoctlSocket (context, sb, m68k_dreg (regs, 0), m68k_dreg (regs, 1), m68k_areg (regs, 0)); } /* *------ AmiTCP/IP specific stuff */ /* CloseSocket(d)(d0) */ static uae_u32 REGPARAM2 bsdsocklib_CloseSocket (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - return host_CloseSocket (context, sb, m68k_dreg (regs, 0)); + struct socketbase *sb = get_socketbase (context); + return host_CloseSocket (context, sb, m68k_dreg (regs, 0)); } /* WaitSelect(nfds, readfds, writefds, execptfds, timeout, maskp)(d0/a0/a1/a2/a3/d1) */ static uae_u32 REGPARAM2 bsdsocklib_WaitSelect (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - host_WaitSelect (context, sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), m68k_areg (regs, 1), - m68k_areg (regs, 2), m68k_areg (regs, 3), m68k_dreg (regs, 1)); - return sb->resultval; + struct socketbase *sb = get_socketbase (context); + host_WaitSelect (context, sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), m68k_areg (regs, 1), + m68k_areg (regs, 2), m68k_areg (regs, 3), m68k_dreg (regs, 1)); + return sb->resultval; } /* SetSocketSignals(SIGINTR, SIGIO, SIGURG)(d0/d1/d2) */ static uae_u32 REGPARAM2 bsdsocklib_SetSocketSignals (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); + struct socketbase *sb = get_socketbase (context); - BSDTRACE ((_T("SetSocketSignals(0x%08lx,0x%08lx,0x%08lx) -> "), m68k_dreg (regs, 0), m68k_dreg (regs, 1), m68k_dreg (regs, 2))); - sb->eintrsigs = m68k_dreg (regs, 0); - sb->eventsigs = m68k_dreg (regs, 1); + BSDTRACE ((_T("SetSocketSignals(0x%08lx,0x%08lx,0x%08lx) -> "), m68k_dreg (regs, 0), m68k_dreg (regs, 1), m68k_dreg (regs, 2))); + sb->eintrsigs = m68k_dreg (regs, 0); + sb->eventsigs = m68k_dreg (regs, 1); - return 0; + return 0; } /* SetDTableSize(size)(d0) */ static uae_u32 bsdsocklib_SetDTableSize (SB, int newSize) { - int *newdtable; - int *newftable; - unsigned int *newmtable; - int i; + int *newdtable; + int *newftable; + unsigned int *newmtable; + int i; - if (newSize < sb->dtablesize) { - /* I don't support lowering the size */ - return 0; - } + if (newSize < sb->dtablesize) + { + /* I don't support lowering the size */ + return 0; + } - newdtable = xcalloc (int, newSize); - newftable = xcalloc (int, newSize); - newmtable = xcalloc (unsigned int, newSize); + newdtable = xcalloc (int, newSize); + newftable = xcalloc (int, newSize); + newmtable = xcalloc (unsigned int, newSize); - if (newdtable == NULL || newftable == NULL || newmtable == NULL) { - sb->resultval = -1; - bsdsocklib_seterrno(sb, ENOMEM); - free (newdtable); - free (newftable); - free (newmtable); - return -1; - } + if (newdtable == NULL || newftable == NULL || newmtable == NULL) + { + sb->resultval = -1; + bsdsocklib_seterrno(sb, ENOMEM); + free (newdtable); + free (newftable); + free (newmtable); + return -1; + } - memcpy (newdtable, sb->dtable, sb->dtablesize * sizeof(*sb->dtable)); - memcpy (newftable, sb->ftable, sb->dtablesize * sizeof(*sb->ftable)); - memcpy (newmtable, sb->mtable, sb->dtablesize * sizeof(*sb->mtable)); - for (i = sb->dtablesize + 1; i < newSize; i++) - newdtable[i] = -1; + memcpy (newdtable, sb->dtable, sb->dtablesize * sizeof(*sb->dtable)); + memcpy (newftable, sb->ftable, sb->dtablesize * sizeof(*sb->ftable)); + memcpy (newmtable, sb->mtable, sb->dtablesize * sizeof(*sb->mtable)); + for (i = sb->dtablesize + 1; i < newSize; i++) + newdtable[i] = -1; - sb->dtablesize = newSize; - free(sb->dtable); - free(sb->ftable); - free(sb->mtable); - sb->dtable = (SOCKET*)newdtable; - sb->ftable = newftable; - sb->mtable = newmtable; - sb->resultval = 0; - return 0; + sb->dtablesize = newSize; + free(sb->dtable); + free(sb->ftable); + free(sb->mtable); + sb->dtable = (SOCKET*)newdtable; + sb->ftable = newftable; + sb->mtable = newmtable; + sb->resultval = 0; + return 0; } static int sockpoolindex (long id) { - int i; + int i; - for (i = 0; i < SOCKPOOLSIZE; i++) - if (sockdata->sockpoolids[i] == id) - return i; - return -1; + for (i = 0; i < SOCKPOOLSIZE; i++) + if (sockdata->sockpoolids[i] == id) + return i; + return -1; } /* ObtainSocket(id, domain, type, protocol)(d0/d1/d2/d3) */ static uae_u32 REGPARAM2 bsdsocklib_ObtainSocket (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - int sd; - long id; - SOCKET_TYPE s; - int i; + struct socketbase *sb = get_socketbase (context); + int sd; + long id; + SOCKET_TYPE s; + int i; - id = m68k_dreg (regs, 0); + id = m68k_dreg (regs, 0); - BSDTRACE ((_T("ObtainSocket(%d,%d,%d,%d) -> "), id, m68k_dreg (regs, 1), m68k_dreg (regs, 2), m68k_dreg (regs, 3))); + BSDTRACE ((_T("ObtainSocket(%d,%d,%d,%d) -> "), id, m68k_dreg (regs, 1), m68k_dreg (regs, 2), m68k_dreg (regs, 3))); - i = sockpoolindex (id); + i = sockpoolindex (id); - if (i == -1) { - BSDTRACE ((_T("[invalid key]\n"))); - return -1; - } - s = sockdata->sockpoolsocks[i]; + if (i == -1) + { + BSDTRACE ((_T("[invalid key]\n"))); + return -1; + } + s = sockdata->sockpoolsocks[i]; - sd = getsd (context, sb, s); + sd = getsd (context, sb, s); - BSDTRACE ((_T(" -> Socket=%d\n"), sd)); + BSDTRACE ((_T(" -> Socket=%d\n"), sd)); - if (sd != -1) { - sb->ftable[sd - 1] = sockdata->sockpoolflags[i]; - callfdcallback (context, sb, sd - 1, FDCB_ALLOC); - sockdata->sockpoolids[i] = UNIQUE_ID; - return sd - 1; - } + if (sd != -1) + { + sb->ftable[sd - 1] = sockdata->sockpoolflags[i]; + callfdcallback (context, sb, sd - 1, FDCB_ALLOC); + sockdata->sockpoolids[i] = UNIQUE_ID; + return sd - 1; + } - return -1; + return -1; } /* ReleaseSocket(fd, id)(d0/d1) */ static uae_u32 REGPARAM2 bsdsocklib_ReleaseSocket (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - int sd; - long id; - SOCKET_TYPE s; - int i; - uae_u32 flags; + struct socketbase *sb = get_socketbase (context); + int sd; + long id; + SOCKET_TYPE s; + int i; + uae_u32 flags; - sd = m68k_dreg (regs, 0); - id = m68k_dreg (regs, 1); + sd = m68k_dreg (regs, 0); + id = m68k_dreg (regs, 1); - sd++; - BSDTRACE ((_T("ReleaseSocket(%d,%d) -> "), sd, id)); + sd++; + BSDTRACE ((_T("ReleaseSocket(%d,%d) -> "), sd, id)); - s = getsock (sb, sd); + s = getsock (sb, sd); - if (s != -1) { - flags = sb->ftable[sd - 1]; + if (s != -1) + { + flags = sb->ftable[sd - 1]; - if (flags & REP_ALL) { - write_log (_T("bsdsocket: ERROR: ReleaseSocket() is not supported for sockets with async event notification enabled!\n")); - return -1; - } - releasesock (context, sb, sd); + if (flags & REP_ALL) + { + write_log (_T("bsdsocket: ERROR: ReleaseSocket() is not supported for sockets with async event notification enabled!\n")); + return -1; + } + releasesock (context, sb, sd); - if (id == UNIQUE_ID) { - for (;;) { - if (sockpoolindex (curruniqid) == -1) - break; - curruniqid += 129; - if ((unsigned long) (curruniqid + 1) < 65536) - curruniqid += 65537; - } + if (id == UNIQUE_ID) + { + for (;;) + { + if (sockpoolindex (curruniqid) == -1) + break; + curruniqid += 129; + if ((unsigned long) (curruniqid + 1) < 65536) + curruniqid += 65537; + } - id = curruniqid; - } else if (id < 0 && id > 65535) { - if (sockpoolindex (id) != -1) { - BSDTRACE ((_T("[unique ID already exists]\n"))); - return -1; - } - } - i = sockpoolindex (-1); + id = curruniqid; + } + else if (id < 0 && id > 65535) + { + if (sockpoolindex (id) != -1) + { + BSDTRACE ((_T("[unique ID already exists]\n"))); + return -1; + } + } + i = sockpoolindex (-1); - if (i == -1) { - BSDTRACE ((_T("-1\n"))); - write_log (_T("bsdsocket: ERROR: Global socket pool overflow\n")); - return -1; - } - sockdata->sockpoolids[i] = id; - sockdata->sockpoolsocks[i] = s; - sockdata->sockpoolflags[i] = flags; + if (i == -1) + { + BSDTRACE ((_T("-1\n"))); + write_log (_T("bsdsocket: ERROR: Global socket pool overflow\n")); + return -1; + } + sockdata->sockpoolids[i] = id; + sockdata->sockpoolsocks[i] = s; + sockdata->sockpoolflags[i] = flags; - BSDTRACE ((_T("id %d s 0x%x\n"), id,s)); - } else { - BSDTRACE ((_T("[invalid socket descriptor]\n"))); - return -1; - } + BSDTRACE ((_T("id %d s 0x%x\n"), id,s)); + } + else + { + BSDTRACE ((_T("[invalid socket descriptor]\n"))); + return -1; + } - return id; + return id; } /* ReleaseCopyOfSocket(fd, id)(d0/d1) */ static uae_u32 REGPARAM2 bsdsocklib_ReleaseCopyOfSocket (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - int sd; - long id; - SOCKET_TYPE s; - int i; - uae_u32 flags; + struct socketbase *sb = get_socketbase (context); + int sd; + long id; + SOCKET_TYPE s; + int i; + uae_u32 flags; - sd = m68k_dreg (regs, 0); - id = m68k_dreg (regs, 1); + sd = m68k_dreg (regs, 0); + id = m68k_dreg (regs, 1); - sd++; - BSDTRACE ((_T("ReleaseSocket(%d,%d) -> "), sd, id)); + sd++; + BSDTRACE ((_T("ReleaseSocket(%d,%d) -> "), sd, id)); - s = getsock (sb, sd); + s = getsock (sb, sd); - if (s != -1) { - flags = sb->ftable[sd - 1]; + if (s != -1) + { + flags = sb->ftable[sd - 1]; - if (flags & REP_ALL) { - write_log (_T("bsdsocket: ERROR: ReleaseCopyOfSocket() is not supported for sockets with async event notification enabled!\n")); - return -1; - } - if (id == UNIQUE_ID) { - for (;;) { - if (sockpoolindex (curruniqid) == -1) - break; - curruniqid += 129; - if ((unsigned long) (curruniqid + 1) < 65536) - curruniqid += 65537; - } - id = curruniqid; - } else if (id < 0 && id > 65535) { - if (sockpoolindex (id) != -1) { - BSDTRACE ((_T("[unique ID already exists]\n"))); - return -1; - } - } - i = sockpoolindex (-1); + if (flags & REP_ALL) + { + write_log (_T("bsdsocket: ERROR: ReleaseCopyOfSocket() is not supported for sockets with async event notification enabled!\n")); + return -1; + } + if (id == UNIQUE_ID) + { + for (;;) + { + if (sockpoolindex (curruniqid) == -1) + break; + curruniqid += 129; + if ((unsigned long) (curruniqid + 1) < 65536) + curruniqid += 65537; + } + id = curruniqid; + } + else if (id < 0 && id > 65535) + { + if (sockpoolindex (id) != -1) + { + BSDTRACE ((_T("[unique ID already exists]\n"))); + return -1; + } + } + i = sockpoolindex (-1); - if (i == -1) { - BSDTRACE ((_T("-1\n"))); - write_log (_T("bsdsocket: ERROR: Global socket pool overflow\n")); - return -1; - } - sockdata->sockpoolids[i] = id; - sockdata->sockpoolsocks[i] = s; - sockdata->sockpoolflags[i] = flags; + if (i == -1) + { + BSDTRACE ((_T("-1\n"))); + write_log (_T("bsdsocket: ERROR: Global socket pool overflow\n")); + return -1; + } + sockdata->sockpoolids[i] = id; + sockdata->sockpoolsocks[i] = s; + sockdata->sockpoolflags[i] = flags; - BSDTRACE ((_T("id %d s 0x%x\n"), id,s)); + BSDTRACE ((_T("id %d s 0x%x\n"), id,s)); - } else { + } + else + { - BSDTRACE ((_T("[invalid socket descriptor]\n"))); - return -1; - } + BSDTRACE ((_T("[invalid socket descriptor]\n"))); + return -1; + } - return id; + return id; } /* Errno()() */ static uae_u32 REGPARAM2 bsdsocklib_Errno (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - BSDTRACE ((_T("Errno() -> %d\n"), sb->sb_errno)); - return sb->sb_errno; + struct socketbase *sb = get_socketbase (context); + BSDTRACE ((_T("Errno() -> %d\n"), sb->sb_errno)); + return sb->sb_errno; } /* SetErrnoPtr(errno_p, size)(a0/d0) */ static uae_u32 REGPARAM2 bsdsocklib_SetErrnoPtr (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - uae_u32 errnoptr = m68k_areg (regs, 0), size = m68k_dreg (regs, 0); + struct socketbase *sb = get_socketbase (context); + uae_u32 errnoptr = m68k_areg (regs, 0), size = m68k_dreg (regs, 0); - BSDTRACE ((_T("SetErrnoPtr(0x%lx,%d) -> "), errnoptr, size)); + BSDTRACE ((_T("SetErrnoPtr(0x%lx,%d) -> "), errnoptr, size)); - if (size == 1 || size == 2 || size == 4) { - sb->errnoptr = errnoptr; - sb->errnosize = size; - BSDTRACE ((_T("OK\n"))); - return 0; - } - bsdsocklib_seterrno (sb, 22); /* EINVAL */ + if (size == 1 || size == 2 || size == 4) + { + sb->errnoptr = errnoptr; + sb->errnosize = size; + BSDTRACE ((_T("OK\n"))); + return 0; + } + bsdsocklib_seterrno (sb, 22); /* EINVAL */ - return -1; + return -1; } /* *------ inet library calls related to inet address manipulation */ /* Inet_NtoA(in)(d0) */ static uae_u32 REGPARAM2 bsdsocklib_Inet_NtoA (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - return host_Inet_NtoA (context, sb, m68k_dreg (regs, 0)); + struct socketbase *sb = get_socketbase (context); + return host_Inet_NtoA (context, sb, m68k_dreg (regs, 0)); } /* inet_addr(cp)(a0) */ static uae_u32 REGPARAM2 bsdsocklib_inet_addr (TrapContext *context) { - return host_inet_addr (m68k_areg (regs, 0)); + return host_inet_addr (m68k_areg (regs, 0)); } /* Inet_LnaOf(in)(d0) */ static uae_u32 REGPARAM2 bsdsocklib_Inet_LnaOf (TrapContext *context) { - write_log (_T("bsdsocket: UNSUPPORTED: Inet_LnaOf()\n")); - return 0; + write_log (_T("bsdsocket: UNSUPPORTED: Inet_LnaOf()\n")); + return 0; } /* Inet_NetOf(in)(d0) */ static uae_u32 REGPARAM2 bsdsocklib_Inet_NetOf (TrapContext *context) { - write_log (_T("bsdsocket: UNSUPPORTED: Inet_NetOf()\n")); - return 0; + write_log (_T("bsdsocket: UNSUPPORTED: Inet_NetOf()\n")); + return 0; } /* Inet_MakeAddr(net, host)(d0/d1) */ static uae_u32 REGPARAM2 bsdsocklib_Inet_MakeAddr (TrapContext *context) { - write_log (_T("bsdsocket: UNSUPPORTED: Inet_MakeAddr()\n")); - return 0; + write_log (_T("bsdsocket: UNSUPPORTED: Inet_MakeAddr()\n")); + return 0; } /* inet_network(cp)(a0) */ static uae_u32 REGPARAM2 bsdsocklib_inet_network (TrapContext *context) { - return host_inet_addr (m68k_areg (regs, 0)); + return host_inet_addr (m68k_areg (regs, 0)); } /* *------ gethostbyname etc */ /* gethostbyname(name)(a0) */ static uae_u32 REGPARAM2 bsdsocklib_gethostbyname (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - host_gethostbynameaddr (context, sb, m68k_areg (regs, 0), 0, -1); - return sb->sb_herrno ? 0 : sb->hostent; + struct socketbase *sb = get_socketbase (context); + host_gethostbynameaddr (context, sb, m68k_areg (regs, 0), 0, -1); + return sb->sb_herrno ? 0 : sb->hostent; } /* gethostbyaddr(addr, len, type)(a0/d0/d1) */ static uae_u32 REGPARAM2 bsdsocklib_gethostbyaddr (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - host_gethostbynameaddr (context, sb, m68k_areg (regs, 0), m68k_dreg (regs, 0), m68k_dreg (regs, 1)); - return sb->sb_herrno ? 0 : sb->hostent; + struct socketbase *sb = get_socketbase (context); + host_gethostbynameaddr (context, sb, m68k_areg (regs, 0), m68k_dreg (regs, 0), m68k_dreg (regs, 1)); + return sb->sb_herrno ? 0 : sb->hostent; } /* getnetbyname(name)(a0) */ static uae_u32 REGPARAM2 bsdsocklib_getnetbyname (TrapContext *context) { - write_log (_T("bsdsocket: UNSUPPORTED: getnetbyname()\n")); - return 0; + write_log (_T("bsdsocket: UNSUPPORTED: getnetbyname()\n")); + return 0; } /* getnetbyaddr(net, type)(d0/d1) */ static uae_u32 REGPARAM2 bsdsocklib_getnetbyaddr (TrapContext *context) { - write_log (_T("bsdsocket: UNSUPPORTED: getnetbyaddr()\n")); - return 0; + write_log (_T("bsdsocket: UNSUPPORTED: getnetbyaddr()\n")); + return 0; } /* getservbyname(name, proto)(a0/a1) */ static uae_u32 REGPARAM2 bsdsocklib_getservbyname (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - host_getservbynameport (context, sb, m68k_areg (regs, 0), m68k_areg (regs, 1), 0); - return sb->sb_errno ? 0 : sb->servent; + struct socketbase *sb = get_socketbase (context); + host_getservbynameport (context, sb, m68k_areg (regs, 0), m68k_areg (regs, 1), 0); + return sb->sb_errno ? 0 : sb->servent; } /* getservbyport(port, proto)(d0/a0) */ static uae_u32 REGPARAM2 bsdsocklib_getservbyport (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - host_getservbynameport (context, sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), 1); - return sb->sb_errno ? 0 : sb->servent; + struct socketbase *sb = get_socketbase (context); + host_getservbynameport (context, sb, m68k_dreg (regs, 0), m68k_areg (regs, 0), 1); + return sb->sb_errno ? 0 : sb->servent; } /* getprotobyname(name)(a0) */ static uae_u32 REGPARAM2 bsdsocklib_getprotobyname (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - host_getprotobyname (context, sb, m68k_areg (regs, 0)); - return sb->sb_errno ? 0 : sb->protoent; + struct socketbase *sb = get_socketbase (context); + host_getprotobyname (context, sb, m68k_areg (regs, 0)); + return sb->sb_errno ? 0 : sb->protoent; } /* getprotobynumber(proto)(d0) */ static uae_u32 REGPARAM2 bsdsocklib_getprotobynumber (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - host_getprotobynumber (context, sb, m68k_dreg (regs, 0)); - return sb->sb_errno ? 0 : sb->protoent; + struct socketbase *sb = get_socketbase (context); + host_getprotobynumber (context, sb, m68k_dreg (regs, 0)); + return sb->sb_errno ? 0 : sb->protoent; } /* *------ AmiTCP/IP 1.1 extensions */ /* Dup2Socket(fd1, fd2)(d0/d1) */ static uae_u32 REGPARAM2 bsdsocklib_Dup2Socket (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - return host_dup2socket (context, sb, m68k_dreg (regs, 0), m68k_dreg (regs, 1)); + struct socketbase *sb = get_socketbase (context); + return host_dup2socket (context, sb, m68k_dreg (regs, 0), m68k_dreg (regs, 1)); } static uae_u32 REGPARAM2 bsdsocklib_sendmsg (TrapContext *context) { - write_log (_T("bsdsocket: UNSUPPORTED: sendmsg()\n")); - return 0; + write_log (_T("bsdsocket: UNSUPPORTED: sendmsg()\n")); + return 0; } static uae_u32 REGPARAM2 bsdsocklib_recvmsg (TrapContext *context) { - write_log (_T("bsdsocket: UNSUPPORTED: recvmsg()\n")); - return 0; + write_log (_T("bsdsocket: UNSUPPORTED: recvmsg()\n")); + return 0; } static uae_u32 REGPARAM2 bsdsocklib_gethostname (TrapContext *context) { - return host_gethostname (m68k_areg (regs, 0), m68k_dreg (regs, 0)); + return host_gethostname (m68k_areg (regs, 0), m68k_dreg (regs, 0)); } static uae_u32 REGPARAM2 bsdsocklib_gethostid (TrapContext *context) { - write_log (_T("bsdsocket: WARNING: Process '%s' calls deprecated function gethostid() - returning 127.0.0.1\n"), - get_real_address (get_long (gettask (context) + 10))); - return 0x7f000001; + write_log (_T("bsdsocket: WARNING: Process '%s' calls deprecated function gethostid() - returning 127.0.0.1\n"), + get_real_address (get_long (gettask (context) + 10))); + return 0x7f000001; } static const TCHAR *errortexts[] = -{_T("No error"), _T("Operation not permitted"), _T("No such file or directory"), -_T("No such process"), _T("Interrupted system call"), _T("Input/output error"), _T("Device not configured"), -_T("Argument list too long"), _T("Exec format error"), _T("Bad file descriptor"), _T("No child processes"), -_T("Resource deadlock avoided"), _T("Cannot allocate memory"), _T("Permission denied"), _T("Bad address"), -_T("Block device required"), _T("Device busy"), _T("Object exists"), _T("Cross-device link"), -_T("Operation not supported by device"), _T("Not a directory"), _T("Is a directory"), _T("Invalid argument"), -_T("Too many open files in system"), _T("Too many open files"), _T("Inappropriate ioctl for device"), -_T("Text file busy"), _T("File too large"), _T("No space left on device"), _T("Illegal seek"), -_T("Read-only file system"), _T("Too many links"), _T("Broken pipe"), _T("Numerical argument out of domain"), -_T("Result too large"), _T("Resource temporarily unavailable"), _T("Operation now in progress"), -_T("Operation already in progress"), _T("Socket operation on non-socket"), _T("Destination address required"), -_T("Message too long"), _T("Protocol wrong type for socket"), _T("Protocol not available"), -_T("Protocol not supported"), _T("Socket type not supported"), _T("Operation not supported"), -_T("Protocol family not supported"), _T("Address family not supported by protocol family"), -_T("Address already in use"), _T("Can't assign requested address"), _T("Network is down"), -_T("Network is unreachable"), _T("Network dropped connection on reset"), _T("Software caused connection abort"), -_T("Connection reset by peer"), _T("No buffer space available"), _T("Socket is already connected"), -_T("Socket is not connected"), _T("Can't send after socket shutdown"), _T("Too many references: can't splice"), -_T("Connection timed out"), _T("Connection refused"), _T("Too many levels of symbolic links"), -_T("File name too long"), _T("Host is down"), _T("No route to host"), _T("Directory not empty"), -_T("Too many processes"), _T("Too many users"), _T("Disc quota exceeded"), _T("Stale NFS file handle"), -_T("Too many levels of remote in path"), _T("RPC struct is bad"), _T("RPC version wrong"), -_T("RPC prog. not avail"), _T("Program version wrong"), _T("Bad procedure for program"), _T("No locks available"), -_T("Function not implemented"), _T("Inappropriate file type or format"), _T("PError 0")}; +{ + _T("No error"), _T("Operation not permitted"), _T("No such file or directory"), + _T("No such process"), _T("Interrupted system call"), _T("Input/output error"), _T("Device not configured"), + _T("Argument list too long"), _T("Exec format error"), _T("Bad file descriptor"), _T("No child processes"), + _T("Resource deadlock avoided"), _T("Cannot allocate memory"), _T("Permission denied"), _T("Bad address"), + _T("Block device required"), _T("Device busy"), _T("Object exists"), _T("Cross-device link"), + _T("Operation not supported by device"), _T("Not a directory"), _T("Is a directory"), _T("Invalid argument"), + _T("Too many open files in system"), _T("Too many open files"), _T("Inappropriate ioctl for device"), + _T("Text file busy"), _T("File too large"), _T("No space left on device"), _T("Illegal seek"), + _T("Read-only file system"), _T("Too many links"), _T("Broken pipe"), _T("Numerical argument out of domain"), + _T("Result too large"), _T("Resource temporarily unavailable"), _T("Operation now in progress"), + _T("Operation already in progress"), _T("Socket operation on non-socket"), _T("Destination address required"), + _T("Message too long"), _T("Protocol wrong type for socket"), _T("Protocol not available"), + _T("Protocol not supported"), _T("Socket type not supported"), _T("Operation not supported"), + _T("Protocol family not supported"), _T("Address family not supported by protocol family"), + _T("Address already in use"), _T("Can't assign requested address"), _T("Network is down"), + _T("Network is unreachable"), _T("Network dropped connection on reset"), _T("Software caused connection abort"), + _T("Connection reset by peer"), _T("No buffer space available"), _T("Socket is already connected"), + _T("Socket is not connected"), _T("Can't send after socket shutdown"), _T("Too many references: can't splice"), + _T("Connection timed out"), _T("Connection refused"), _T("Too many levels of symbolic links"), + _T("File name too long"), _T("Host is down"), _T("No route to host"), _T("Directory not empty"), + _T("Too many processes"), _T("Too many users"), _T("Disc quota exceeded"), _T("Stale NFS file handle"), + _T("Too many levels of remote in path"), _T("RPC struct is bad"), _T("RPC version wrong"), + _T("RPC prog. not avail"), _T("Program version wrong"), _T("Bad procedure for program"), _T("No locks available"), + _T("Function not implemented"), _T("Inappropriate file type or format"), _T("PError 0") +}; static uae_u32 errnotextptrs[sizeof (errortexts) / sizeof (*errortexts)]; static const uae_u32 number_sys_error = sizeof (errortexts) / sizeof (*errortexts); @@ -1093,146 +1167,157 @@ static const uae_u32 number_sys_error = sizeof (errortexts) / sizeof (*errortext static uae_u32 REGPARAM2 bsdsocklib_vsyslog (TrapContext *context) { #if 0 - struct socketbase *sb = get_socketbase (context); - uae_char format_dst[512]; - char out[256]; - TCHAR *s; - uae_u8 paramtable[32 * 4]; - int paramcnt, len; - uae_char *found = NULL; + struct socketbase *sb = get_socketbase (context); + uae_char format_dst[512]; + char out[256]; + TCHAR *s; + uae_u8 paramtable[32 * 4]; + int paramcnt, len; + uae_char *found = NULL; - uae_u32 level = m68k_dreg (regs, 0); - uaecptr format = m68k_areg (regs, 0); - uaecptr params = m68k_areg (regs, 1); + uae_u32 level = m68k_dreg (regs, 0); + uaecptr format = m68k_areg (regs, 0); + uaecptr params = m68k_areg (regs, 1); - strcpyah_safe (format_dst, format, sizeof format_dst); + strcpyah_safe (format_dst, format, sizeof format_dst); - ((uae_u8**)paramtable)[0] = (uae_u8*)format_dst; - paramcnt = 4; - for (int i = 0; format_dst[i]; i++) { - if (format_dst[i] == '%') { - if (found) - found = NULL; - else - found = &format_dst[i]; - len = 4; - } else if (found) { - char c = toupper (format_dst[i]); - if (c < 'A' || c > 'Z') - continue; - if (c == 'H') { - len = 2; - continue; - } - if (c == 'M') { - int err = sb->sb_errno; - if (sb->sb_errno < 0 || sb->sb_errno >= sizeof (errortexts) / sizeof (*errortexts)) - err = sizeof (errortexts) / sizeof (*errortexts) - 1; - int errlen = _tcslen (errortexts[err]) - (&format_dst[i] - found); - memmove (&format_dst[i] + errlen, &format_dst[i] + 1, strlen (&format_dst[i] + 1) + 1); - ua_copy (found, sizeof format_dst, errortexts[err]); - i += errlen - 1; - continue; - } + ((uae_u8**)paramtable)[0] = (uae_u8*)format_dst; + paramcnt = 4; + for (int i = 0; format_dst[i]; i++) + { + if (format_dst[i] == '%') + { + if (found) + found = NULL; + else + found = &format_dst[i]; + len = 4; + } + else if (found) + { + char c = toupper (format_dst[i]); + if (c < 'A' || c > 'Z') + continue; + if (c == 'H') + { + len = 2; + continue; + } + if (c == 'M') + { + int err = sb->sb_errno; + if (sb->sb_errno < 0 || sb->sb_errno >= sizeof (errortexts) / sizeof (*errortexts)) + err = sizeof (errortexts) / sizeof (*errortexts) - 1; + int errlen = _tcslen (errortexts[err]) - (&format_dst[i] - found); + memmove (&format_dst[i] + errlen, &format_dst[i] + 1, strlen (&format_dst[i] + 1) + 1); + ua_copy (found, sizeof format_dst, errortexts[err]); + i += errlen - 1; + continue; + } - if (c == 'P' || c == 'S' || c == 'N') { - uaecptr pt = get_long (params); - if (!valid_address (pt, 2)) - goto end; - ((uae_u8**)(paramtable + paramcnt))[0] = get_real_address (pt); - params += 4; - paramcnt += sizeof (uae_u8*); - } else { - if (len == 2) - ((uae_u16*)(paramtable + paramcnt))[0] = get_word (params); - else - ((uae_u32*)(paramtable + paramcnt))[0] = get_long (params); - params += len; - paramcnt += len; - } - found = NULL; - } - } + if (c == 'P' || c == 'S' || c == 'N') + { + uaecptr pt = get_long (params); + if (!valid_address (pt, 2)) + goto end; + ((uae_u8**)(paramtable + paramcnt))[0] = get_real_address (pt); + params += 4; + paramcnt += sizeof (uae_u8*); + } + else + { + if (len == 2) + ((uae_u16*)(paramtable + paramcnt))[0] = get_word (params); + else + ((uae_u32*)(paramtable + paramcnt))[0] = get_long (params); + params += len; + paramcnt += len; + } + found = NULL; + } + } - va_list parms; - va_start (parms, paramtable); - _vsnprintf (out, sizeof out, format_dst, parms); - va_end (parms); + va_list parms; + va_start (parms, paramtable); + _vsnprintf (out, sizeof out, format_dst, parms); + va_end (parms); - s = au (out); - write_log (_T("SYSLOG: %s\n"), s); - xfree (s); + s = au (out); + write_log (_T("SYSLOG: %s\n"), s); + xfree (s); end: #endif - return 0; + return 0; } static const TCHAR *herrortexts[] = -{_T("No error"), _T("Unknown host"), _T("Host name lookup failure"), _T("Unknown server error"), -_T("No address associated with name")}; +{ + _T("No error"), _T("Unknown host"), _T("Host name lookup failure"), _T("Unknown server error"), + _T("No address associated with name") +}; static uae_u32 herrnotextptrs[sizeof (herrortexts) / sizeof (*herrortexts)]; static const uae_u32 number_host_error = sizeof (herrortexts) / sizeof (*herrortexts); -static const TCHAR *sana2io_errlist[] = +static const TCHAR *sana2io_errlist[] = { - _T("No error"), /* S2ERR_NO_ERROR */ - _T("Resource allocation failure"), /* S2ERR_NO_RESOURCES */ - _T("Unknown error code (2)"), - _T("Invalid argument"), /* S2ERR_BAD_ARGUMENT */ - _T("Inappropriate state"), /* S2ERR_BAD_STATE */ - _T("Invalid address"), /* S2ERR_BAD_ADDRESS */ - _T("Requested packet too large"), /* S2ERR_MTU_EXCEEDED */ - _T("Unknown error (7)"), - _T("Command is not supporter"), /* S2ERR_NOT_SUPPORTED */ - _T("Driver software error detected"), /* S2ERR_SOFTWARE */ - _T("Device driver is offline"), /* S2ERR_OUTOFSERVICE */ - _T("Transmission attempt failed") /* S2ERR_TX_FAILURE */ + _T("No error"), /* S2ERR_NO_ERROR */ + _T("Resource allocation failure"), /* S2ERR_NO_RESOURCES */ + _T("Unknown error code (2)"), + _T("Invalid argument"), /* S2ERR_BAD_ARGUMENT */ + _T("Inappropriate state"), /* S2ERR_BAD_STATE */ + _T("Invalid address"), /* S2ERR_BAD_ADDRESS */ + _T("Requested packet too large"), /* S2ERR_MTU_EXCEEDED */ + _T("Unknown error (7)"), + _T("Command is not supporter"), /* S2ERR_NOT_SUPPORTED */ + _T("Driver software error detected"), /* S2ERR_SOFTWARE */ + _T("Device driver is offline"), /* S2ERR_OUTOFSERVICE */ + _T("Transmission attempt failed") /* S2ERR_TX_FAILURE */ }; static uae_u32 sana2iotextptrs[sizeof (sana2io_errlist) / sizeof (*sana2io_errlist)]; static const uae_u32 number_sana2io_error = sizeof (sana2io_errlist) / sizeof (*sana2io_errlist); -static const TCHAR *sana2wire_errlist[] = +static const TCHAR *sana2wire_errlist[] = { - _T("Generic error: 0"), /* S2WERR_GENERIC_ERROR */ - _T("Unit not configured"), /* S2WERR_NOT_CONFIGURED */ - _T("Unit is currently online"), /* S2WERR_UNIT_ONLINE */ - _T("Unit is currently offline"), /* S2WERR_UNIT_OFFLINE */ - _T("Protocol already tracked"), /* S2WERR_ALREADY_TRACKED */ - _T("Protocol not tracked"), /* S2WERR_NOT_TRACKED */ - _T("Buff management function error"), /* S2WERR_BUFF_ERROR */ - _T("Source address error"), /* S2WERR_SRC_ADDRESS */ - _T("Destination address error"), /* S2WERR_DST_ADDRESS */ - _T("Broadcast address error"), /* S2WERR_BAD_BROADCAST */ - _T("Multicast address error"), /* S2WERR_BAD_MULTICAST */ - _T("Multicast address list full"), /* S2WERR_MULTICAST_FULL */ - _T("Unsupported event class"), /* S2WERR_BAD_EVENT */ - _T("Statdata failed sanity check"), /* S2WERR_BAD_STATDATA */ - _T("Unknown wire error (14)"), - _T("Attempt to config twice"), /* S2WERR_IS_CONFIGURED */ - _T("Null pointer detected"), /* S2WERR_NULL_POINTER */ - _T("tx failed - too many retries"), /* S2WERR_TOO_MANY_RETIRES */ - _T("Driver fixable HW error") /* S2WERR_RCVREL_HDW_ERR */ + _T("Generic error: 0"), /* S2WERR_GENERIC_ERROR */ + _T("Unit not configured"), /* S2WERR_NOT_CONFIGURED */ + _T("Unit is currently online"), /* S2WERR_UNIT_ONLINE */ + _T("Unit is currently offline"), /* S2WERR_UNIT_OFFLINE */ + _T("Protocol already tracked"), /* S2WERR_ALREADY_TRACKED */ + _T("Protocol not tracked"), /* S2WERR_NOT_TRACKED */ + _T("Buff management function error"), /* S2WERR_BUFF_ERROR */ + _T("Source address error"), /* S2WERR_SRC_ADDRESS */ + _T("Destination address error"), /* S2WERR_DST_ADDRESS */ + _T("Broadcast address error"), /* S2WERR_BAD_BROADCAST */ + _T("Multicast address error"), /* S2WERR_BAD_MULTICAST */ + _T("Multicast address list full"), /* S2WERR_MULTICAST_FULL */ + _T("Unsupported event class"), /* S2WERR_BAD_EVENT */ + _T("Statdata failed sanity check"), /* S2WERR_BAD_STATDATA */ + _T("Unknown wire error (14)"), + _T("Attempt to config twice"), /* S2WERR_IS_CONFIGURED */ + _T("Null pointer detected"), /* S2WERR_NULL_POINTER */ + _T("tx failed - too many retries"), /* S2WERR_TOO_MANY_RETIRES */ + _T("Driver fixable HW error") /* S2WERR_RCVREL_HDW_ERR */ }; static uae_u32 sana2wiretextptrs[sizeof (sana2wire_errlist) / sizeof (*sana2wire_errlist)]; static const uae_u32 number_sana2wire_error = sizeof (sana2wire_errlist) / sizeof (*sana2wire_errlist); -static const TCHAR *io_errlist[] = -{ - _T("Unknown error"), /* 0 */ - _T("Device or unit failed to open"), /* IOERR_OPENFAIL */ - _T("Request aborted"), /* IOERR_ABORTED */ - _T("Command not supported by device"), /* IOERR_NOCMD */ - _T("Invalid length"), /* IOERR_BADLENGTH */ - _T("Invalid address"), /* IOERR_BADADDRESS */ - _T("Requested unit is busy"), /* IOERR_UNITBUSY */ - _T("Hardware self-test failed") /* IOERR_SELFTEST */ +static const TCHAR *io_errlist[] = +{ + _T("Unknown error"), /* 0 */ + _T("Device or unit failed to open"), /* IOERR_OPENFAIL */ + _T("Request aborted"), /* IOERR_ABORTED */ + _T("Command not supported by device"), /* IOERR_NOCMD */ + _T("Invalid length"), /* IOERR_BADLENGTH */ + _T("Invalid address"), /* IOERR_BADADDRESS */ + _T("Requested unit is busy"), /* IOERR_UNITBUSY */ + _T("Hardware self-test failed") /* IOERR_SELFTEST */ }; static uae_u32 iotextptrs[sizeof (io_errlist) / sizeof (*io_errlist)]; @@ -1290,441 +1375,503 @@ static uae_u32 strErrptr; static void tagcopy (uae_u32 currtag, uae_u32 currval, uae_u32 tagptr, uae_u32 * ptr) { - switch (currtag & 0x8001) - { - case 0x0000: /* SBTM_GETVAL */ - put_long (tagptr + 4, ptr ? *ptr : 0); - break; - case 0x8000: /* SBTM_GETREF */ - put_long (currval, ptr ? *ptr : 0); - break; - case 0x0001: /* SBTM_SETVAL */ - if (ptr) - *ptr = currval; - break; - default: /* SBTM_SETREF */ - if (ptr) - *ptr = get_long (currval); - break; - } + switch (currtag & 0x8001) + { + case 0x0000: /* SBTM_GETVAL */ + put_long (tagptr + 4, ptr ? *ptr : 0); + break; + case 0x8000: /* SBTM_GETREF */ + put_long (currval, ptr ? *ptr : 0); + break; + case 0x0001: /* SBTM_SETVAL */ + if (ptr) + *ptr = currval; + break; + default: /* SBTM_SETREF */ + if (ptr) + *ptr = get_long (currval); + break; + } } static uae_u32 REGPARAM2 bsdsocklib_SocketBaseTagList (TrapContext *context) { - struct socketbase *sb = get_socketbase (context); - uae_u32 tagptr = m68k_areg (regs, 0); - uae_u32 tagsprocessed = 0; - uae_u32 currtag; - uae_u32 currval; + struct socketbase *sb = get_socketbase (context); + uae_u32 tagptr = m68k_areg (regs, 0); + uae_u32 tagsprocessed = 0; + uae_u32 currtag; + uae_u32 currval; - BSDTRACE ((_T("SocketBaseTagList("))); + BSDTRACE ((_T("SocketBaseTagList("))); - for (;;) { - currtag = get_long (tagptr); - currval = get_long (tagptr + 4); - tagsprocessed++; + for (;;) + { + currtag = get_long (tagptr); + currval = get_long (tagptr + 4); + tagsprocessed++; - if (!(currtag & TAG_USER)) { + if (!(currtag & TAG_USER)) + { - switch (currtag) - { - case TAG_DONE: - BSDTRACE ((_T("TAG_DONE"))); - tagsprocessed = 0; - goto done; - case TAG_IGNORE: - BSDTRACE ((_T("TAG_IGNORE"))); - break; - case TAG_MORE: - BSDTRACE ((_T("TAG_MORE(0x%lx)"), currval)); - tagptr = currval; - break; - case TAG_SKIP: - BSDTRACE ((_T("TAG_SKIP(%d)"), currval)); - tagptr += currval * 8; - break; - default: - write_log (_T("bsdsocket: WARNING: Unsupported tag type (%08x) in SocketBaseTagList(%x)\n"), - currtag, m68k_areg (regs, 0)); - goto done; - } + switch (currtag) + { + case TAG_DONE: + BSDTRACE ((_T("TAG_DONE"))); + tagsprocessed = 0; + goto done; + case TAG_IGNORE: + BSDTRACE ((_T("TAG_IGNORE"))); + break; + case TAG_MORE: + BSDTRACE ((_T("TAG_MORE(0x%lx)"), currval)); + tagptr = currval; + break; + case TAG_SKIP: + BSDTRACE ((_T("TAG_SKIP(%d)"), currval)); + tagptr += currval * 8; + break; + default: + write_log (_T("bsdsocket: WARNING: Unsupported tag type (%08x) in SocketBaseTagList(%x)\n"), + currtag, m68k_areg (regs, 0)); + goto done; + } - } else { + } + else + { - BSDTRACE ((_T("SBTM_"))); - BSDTRACE ((currtag & 0x0001 ? _T("SET") : _T("GET"))); - BSDTRACE ((currtag & 0x8000 ? _T("REF(") : _T("VAL("))); + BSDTRACE ((_T("SBTM_"))); + BSDTRACE ((currtag & 0x0001 ? _T("SET") : _T("GET"))); + BSDTRACE ((currtag & 0x8000 ? _T("REF(") : _T("VAL("))); - switch ((currtag >> 1) & SBTS_CODE) - { - case SBTC_BREAKMASK: - BSDTRACE ((_T("SBTC_BREAKMASK),0x%x,0x%x"), currval, sb->eintrsigs)); - tagcopy (currtag, currval, tagptr, &sb->eintrsigs); - break; - case SBTC_SIGIOMASK: - BSDTRACE ((_T("SBTC_SIGIOMASK),0x%x,0x%x"), currval, sb->eventsigs)); - tagcopy (currtag, currval, tagptr, &sb->eventsigs); - break; - case SBTC_SIGURGMASK: - BSDTRACE ((_T("SBTC_SIGURGMASK),0x%x"), currval)); - break; - case SBTC_SIGEVENTMASK: - BSDTRACE ((_T("SBTC_SIGEVENTMASK),0x%x,0x%x"), currval, sb->eventsigs)); - tagcopy (currtag, currval, tagptr, &sb->eventsigs); - break; - case SBTC_ERRNO: - BSDTRACE ((_T("SBTC_ERRNO),%x,%d"), currval, sb->sb_errno)); - tagcopy (currtag, currval, tagptr, (uae_u32*)&sb->sb_errno); - break; - case SBTC_HERRNO: - BSDTRACE ((_T("SBTC_HERRNO),%x,%d"), currval, sb->sb_herrno)); - tagcopy (currtag, currval, tagptr, (uae_u32*)&sb->sb_herrno); - break; - case SBTC_DTABLESIZE: - BSDTRACE ((_T("SBTC_DTABLESIZE),0x%lx"), currval)); - if (currtag & 1) { - bsdsocklib_SetDTableSize(sb, currval); - } else { - put_long (tagptr + 4, sb->dtablesize); - } - break; + switch ((currtag >> 1) & SBTS_CODE) + { + case SBTC_BREAKMASK: + BSDTRACE ((_T("SBTC_BREAKMASK),0x%x,0x%x"), currval, sb->eintrsigs)); + tagcopy (currtag, currval, tagptr, &sb->eintrsigs); + break; + case SBTC_SIGIOMASK: + BSDTRACE ((_T("SBTC_SIGIOMASK),0x%x,0x%x"), currval, sb->eventsigs)); + tagcopy (currtag, currval, tagptr, &sb->eventsigs); + break; + case SBTC_SIGURGMASK: + BSDTRACE ((_T("SBTC_SIGURGMASK),0x%x"), currval)); + break; + case SBTC_SIGEVENTMASK: + BSDTRACE ((_T("SBTC_SIGEVENTMASK),0x%x,0x%x"), currval, sb->eventsigs)); + tagcopy (currtag, currval, tagptr, &sb->eventsigs); + break; + case SBTC_ERRNO: + BSDTRACE ((_T("SBTC_ERRNO),%x,%d"), currval, sb->sb_errno)); + tagcopy (currtag, currval, tagptr, (uae_u32*)&sb->sb_errno); + break; + case SBTC_HERRNO: + BSDTRACE ((_T("SBTC_HERRNO),%x,%d"), currval, sb->sb_herrno)); + tagcopy (currtag, currval, tagptr, (uae_u32*)&sb->sb_herrno); + break; + case SBTC_DTABLESIZE: + BSDTRACE ((_T("SBTC_DTABLESIZE),0x%lx"), currval)); + if (currtag & 1) + { + bsdsocklib_SetDTableSize(sb, currval); + } + else + { + put_long (tagptr + 4, sb->dtablesize); + } + break; - case SBTC_FDCALLBACK: - BSDTRACE ((_T("SBTC_FDCALLBACK),%08x"), currval)); - tagcopy (currtag, currval, tagptr, &sb->fdcallback); - break; + case SBTC_FDCALLBACK: + BSDTRACE ((_T("SBTC_FDCALLBACK),%08x"), currval)); + tagcopy (currtag, currval, tagptr, &sb->fdcallback); + break; - case SBTC_LOGSTAT: - BSDTRACE ((_T("SBTC_LOGSTAT),%08x"), currval)); - tagcopy (currtag, currval, tagptr, &sb->logstat); - sb->logstat &= 0xff; - break; - case SBTC_LOGTAGPTR: - BSDTRACE ((_T("SBTC_LOGTAGPTR),%08x"), currval)); - tagcopy (currtag, currval, tagptr, &sb->logptr); - break; - case SBTC_LOGFACILITY: - BSDTRACE ((_T("SBTC_LOGFACILITY),%08x"), currval)); - if (((currtag & 1) && currval != 0 && (currval & ~LOG_FACMASK)) || !(currtag & 1)) - tagcopy (currtag, currval, tagptr, &sb->logfacility); - break; - case SBTC_LOGMASK: - BSDTRACE ((_T("SBTC_LOGMASK),%08x"), currval)); - tagcopy (currtag, currval, tagptr, &sb->logmask); - sb->logmask &= 0xff; - break; + case SBTC_LOGSTAT: + BSDTRACE ((_T("SBTC_LOGSTAT),%08x"), currval)); + tagcopy (currtag, currval, tagptr, &sb->logstat); + sb->logstat &= 0xff; + break; + case SBTC_LOGTAGPTR: + BSDTRACE ((_T("SBTC_LOGTAGPTR),%08x"), currval)); + tagcopy (currtag, currval, tagptr, &sb->logptr); + break; + case SBTC_LOGFACILITY: + BSDTRACE ((_T("SBTC_LOGFACILITY),%08x"), currval)); + if (((currtag & 1) && currval != 0 && (currval & ~LOG_FACMASK)) || !(currtag & 1)) + tagcopy (currtag, currval, tagptr, &sb->logfacility); + break; + case SBTC_LOGMASK: + BSDTRACE ((_T("SBTC_LOGMASK),%08x"), currval)); + tagcopy (currtag, currval, tagptr, &sb->logmask); + sb->logmask &= 0xff; + break; - case SBTC_IOERRNOSTRPTR: - if (currtag & 1) { - BSDTRACE ((_T("IOERRNOSTRPTR),invalid"))); - goto done; - } else { - unsigned long ulTmp; - if (currtag & 0x8000) { /* SBTM_GETREF */ - ulTmp = get_long (currval); - } else { /* SBTM_GETVAL */ - ulTmp = currval; - } - BSDTRACE ((_T("IOERRNOSTRPTR),%d"), ulTmp)); - if (ulTmp < number_sys_error) { - tagcopy (currtag, currval, tagptr, &iotextptrs[ulTmp]); - } else { - tagcopy (currtag, currval, tagptr, &strErrptr); - } - } - break; - case SBTC_S2ERRNOSTRPTR: - if (currtag & 1) { - BSDTRACE ((_T("S2ERRNOSTRPTR),invalid"))); - goto done; - } else { - unsigned long ulTmp; - if (currtag & 0x8000) { /* SBTM_GETREF */ - ulTmp = get_long (currval); - } else { /* SBTM_GETVAL */ - ulTmp = currval; - } - BSDTRACE ((_T("S2ERRNOSTRPTR),%d"), ulTmp)); - if (ulTmp < number_sys_error) { - tagcopy (currtag, currval, tagptr, &sana2iotextptrs[ulTmp]); - } else { - tagcopy (currtag, currval, tagptr, &strErrptr); - } - } - break; - case SBTC_S2WERRNOSTRPTR: - if (currtag & 1) { - BSDTRACE ((_T("S2WERRNOSTRPTR),invalid"))); - goto done; - } else { - unsigned long ulTmp; - if (currtag & 0x8000) { /* SBTM_GETREF */ - ulTmp = get_long (currval); - } else { /* SBTM_GETVAL */ - ulTmp = currval; - } - BSDTRACE ((_T("S2WERRNOSTRPTR),%d"), ulTmp)); - if (ulTmp < number_sys_error) { - tagcopy (currtag, currval, tagptr, &sana2wiretextptrs[ulTmp]); - } else { - tagcopy (currtag, currval, tagptr, &strErrptr); - } - } - break; - case SBTC_ERRNOSTRPTR: - if (currtag & 1) { - BSDTRACE ((_T("ERRNOSTRPTR),invalid"))); - goto done; - } else { - unsigned long ulTmp; - if (currtag & 0x8000) { /* SBTM_GETREF */ - ulTmp = get_long (currval); - } else { /* SBTM_GETVAL */ - ulTmp = currval; - } - BSDTRACE ((_T("ERRNOSTRPTR),%d"), ulTmp)); - if (ulTmp < number_sys_error) { - tagcopy (currtag, currval, tagptr, &errnotextptrs[ulTmp]); - } else { - tagcopy (currtag, currval, tagptr, &strErrptr); - } - } - break; - case SBTC_HERRNOSTRPTR: - if (currtag & 1) { - BSDTRACE ((_T("HERRNOSTRPTR),invalid"))); - goto done; - } else { - unsigned long ulTmp; - if (currtag & 0x8000) { /* SBTM_GETREF */ - ulTmp = get_long (currval); - } else { /* SBTM_GETVAL */ - ulTmp = currval; - } - BSDTRACE ((_T("HERRNOSTRPTR),%d"), ulTmp)); - if (ulTmp < number_host_error) { - tagcopy (currtag, currval, tagptr, &herrnotextptrs[ulTmp]); - } else { - tagcopy (currtag, currval, tagptr, &strErrptr); - } - } - break; + case SBTC_IOERRNOSTRPTR: + if (currtag & 1) + { + BSDTRACE ((_T("IOERRNOSTRPTR),invalid"))); + goto done; + } + else + { + unsigned long ulTmp; + if (currtag & 0x8000) /* SBTM_GETREF */ + { + ulTmp = get_long (currval); + } + else /* SBTM_GETVAL */ + { + ulTmp = currval; + } + BSDTRACE ((_T("IOERRNOSTRPTR),%d"), ulTmp)); + if (ulTmp < number_sys_error) + { + tagcopy (currtag, currval, tagptr, &iotextptrs[ulTmp]); + } + else + { + tagcopy (currtag, currval, tagptr, &strErrptr); + } + } + break; + case SBTC_S2ERRNOSTRPTR: + if (currtag & 1) + { + BSDTRACE ((_T("S2ERRNOSTRPTR),invalid"))); + goto done; + } + else + { + unsigned long ulTmp; + if (currtag & 0x8000) /* SBTM_GETREF */ + { + ulTmp = get_long (currval); + } + else /* SBTM_GETVAL */ + { + ulTmp = currval; + } + BSDTRACE ((_T("S2ERRNOSTRPTR),%d"), ulTmp)); + if (ulTmp < number_sys_error) + { + tagcopy (currtag, currval, tagptr, &sana2iotextptrs[ulTmp]); + } + else + { + tagcopy (currtag, currval, tagptr, &strErrptr); + } + } + break; + case SBTC_S2WERRNOSTRPTR: + if (currtag & 1) + { + BSDTRACE ((_T("S2WERRNOSTRPTR),invalid"))); + goto done; + } + else + { + unsigned long ulTmp; + if (currtag & 0x8000) /* SBTM_GETREF */ + { + ulTmp = get_long (currval); + } + else /* SBTM_GETVAL */ + { + ulTmp = currval; + } + BSDTRACE ((_T("S2WERRNOSTRPTR),%d"), ulTmp)); + if (ulTmp < number_sys_error) + { + tagcopy (currtag, currval, tagptr, &sana2wiretextptrs[ulTmp]); + } + else + { + tagcopy (currtag, currval, tagptr, &strErrptr); + } + } + break; + case SBTC_ERRNOSTRPTR: + if (currtag & 1) + { + BSDTRACE ((_T("ERRNOSTRPTR),invalid"))); + goto done; + } + else + { + unsigned long ulTmp; + if (currtag & 0x8000) /* SBTM_GETREF */ + { + ulTmp = get_long (currval); + } + else /* SBTM_GETVAL */ + { + ulTmp = currval; + } + BSDTRACE ((_T("ERRNOSTRPTR),%d"), ulTmp)); + if (ulTmp < number_sys_error) + { + tagcopy (currtag, currval, tagptr, &errnotextptrs[ulTmp]); + } + else + { + tagcopy (currtag, currval, tagptr, &strErrptr); + } + } + break; + case SBTC_HERRNOSTRPTR: + if (currtag & 1) + { + BSDTRACE ((_T("HERRNOSTRPTR),invalid"))); + goto done; + } + else + { + unsigned long ulTmp; + if (currtag & 0x8000) /* SBTM_GETREF */ + { + ulTmp = get_long (currval); + } + else /* SBTM_GETVAL */ + { + ulTmp = currval; + } + BSDTRACE ((_T("HERRNOSTRPTR),%d"), ulTmp)); + if (ulTmp < number_host_error) + { + tagcopy (currtag, currval, tagptr, &herrnotextptrs[ulTmp]); + } + else + { + tagcopy (currtag, currval, tagptr, &strErrptr); + } + } + break; - case SBTC_ERRNOBYTEPTR: - BSDTRACE ((_T("SBTC_ERRNOBYTEPTR),0x%lx"), currval)); - tagcopy (currtag, currval, tagptr, &sb->errnoptr); - sb->errnosize = 1; - break; - case SBTC_ERRNOWORDPTR: - BSDTRACE ((_T("SBTC_ERRNOWORDPTR),0x%lx"), currval)); - tagcopy (currtag, currval, tagptr, &sb->errnoptr); - sb->errnosize = 2; - break; - case SBTC_ERRNOLONGPTR: - BSDTRACE ((_T("SBTC_ERRNOLONGPTR),0x%lx"), currval)); - tagcopy (currtag, currval, tagptr, &sb->errnoptr); - sb->errnosize = 4; - break; - case SBTC_HERRNOLONGPTR: - BSDTRACE ((_T("SBTC_HERRNOLONGPTR),0x%lx"), currval)); - tagcopy (currtag, currval, tagptr, &sb->herrnoptr); - sb->herrnosize = 4; - break; - default: - write_log (_T("bsdsocket: WARNING: Unsupported tag type (%08x=%d) in SocketBaseTagList(%x)\n"), - currtag, (currtag / 2) & SBTS_CODE, m68k_areg (regs, 0)); - goto done; - } - } + case SBTC_ERRNOBYTEPTR: + BSDTRACE ((_T("SBTC_ERRNOBYTEPTR),0x%lx"), currval)); + tagcopy (currtag, currval, tagptr, &sb->errnoptr); + sb->errnosize = 1; + break; + case SBTC_ERRNOWORDPTR: + BSDTRACE ((_T("SBTC_ERRNOWORDPTR),0x%lx"), currval)); + tagcopy (currtag, currval, tagptr, &sb->errnoptr); + sb->errnosize = 2; + break; + case SBTC_ERRNOLONGPTR: + BSDTRACE ((_T("SBTC_ERRNOLONGPTR),0x%lx"), currval)); + tagcopy (currtag, currval, tagptr, &sb->errnoptr); + sb->errnosize = 4; + break; + case SBTC_HERRNOLONGPTR: + BSDTRACE ((_T("SBTC_HERRNOLONGPTR),0x%lx"), currval)); + tagcopy (currtag, currval, tagptr, &sb->herrnoptr); + sb->herrnosize = 4; + break; + default: + write_log (_T("bsdsocket: WARNING: Unsupported tag type (%08x=%d) in SocketBaseTagList(%x)\n"), + currtag, (currtag / 2) & SBTS_CODE, m68k_areg (regs, 0)); + goto done; + } + } - BSDTRACE ((_T(","))); - tagptr += 8; - } + BSDTRACE ((_T(","))); + tagptr += 8; + } done: - BSDTRACE ((_T(") -> %d\n"), tagsprocessed)); + BSDTRACE ((_T(") -> %d\n"), tagsprocessed)); - return tagsprocessed; + return tagsprocessed; } static uae_u32 REGPARAM2 bsdsocklib_GetSocketEvents (TrapContext *context) { #ifdef _WIN32 - struct socketbase *sb = get_socketbase (context); - int i; - int flags; - uae_u32 ptr = m68k_areg (regs, 0); + struct socketbase *sb = get_socketbase (context); + int i; + int flags; + uae_u32 ptr = m68k_areg (regs, 0); - BSDTRACE ((_T("GetSocketEvents(0x%x) -> "), ptr)); + BSDTRACE ((_T("GetSocketEvents(0x%x) -> "), ptr)); - for (i = sb->dtablesize; i--; sb->eventindex++) { - if (sb->eventindex >= sb->dtablesize) - sb->eventindex = 0; + for (i = sb->dtablesize; i--; sb->eventindex++) + { + if (sb->eventindex >= sb->dtablesize) + sb->eventindex = 0; - if (sb->mtable[sb->eventindex]) { - flags = sb->ftable[sb->eventindex] & SET_ALL; - if (flags) { - sb->ftable[sb->eventindex] &= ~SET_ALL; - put_long (m68k_areg (regs, 0), flags >> 8); - BSDTRACE ((_T("%d (0x%x)\n"), sb->eventindex + 1, flags >> 8)); - return sb->eventindex; // xxx - } - } - } + if (sb->mtable[sb->eventindex]) + { + flags = sb->ftable[sb->eventindex] & SET_ALL; + if (flags) + { + sb->ftable[sb->eventindex] &= ~SET_ALL; + put_long (m68k_areg (regs, 0), flags >> 8); + BSDTRACE ((_T("%d (0x%x)\n"), sb->eventindex + 1, flags >> 8)); + return sb->eventindex; // xxx + } + } + } #endif - BSDTRACE ((_T("-1\n"))); - return -1; + BSDTRACE ((_T("-1\n"))); + return -1; } static uae_u32 REGPARAM2 bsdsocklib_getdtablesize (TrapContext *context) { - return get_socketbase (context)->dtablesize; + return get_socketbase (context)->dtablesize; } static uae_u32 REGPARAM2 bsdsocklib_null (TrapContext *context) { - return 0; + return 0; } static uae_u32 REGPARAM2 bsdsocklib_init (TrapContext *context) { - uae_u32 tmp1; - int i; + uae_u32 tmp1; + int i; - write_log (_T("Creating UAE bsdsocket.library 4.1\n")); - if (SockLibBase) - bsdlib_reset (); + write_log (_T("Creating UAE bsdsocket.library 4.1\n")); + if (SockLibBase) + bsdlib_reset (); - m68k_areg (regs, 0) = functable; - m68k_areg (regs, 1) = datatable; - m68k_areg (regs, 2) = 0; - m68k_dreg (regs, 0) = LIBRARY_SIZEOF; - m68k_dreg (regs, 1) = 0; - tmp1 = CallLib (context, m68k_areg (regs, 6), -0x54); /* MakeLibrary */ + m68k_areg (regs, 0) = functable; + m68k_areg (regs, 1) = datatable; + m68k_areg (regs, 2) = 0; + m68k_dreg (regs, 0) = LIBRARY_SIZEOF; + m68k_dreg (regs, 1) = 0; + tmp1 = CallLib (context, m68k_areg (regs, 6), -0x54); /* MakeLibrary */ - if (!tmp1) { - write_log (_T("bsdoscket: FATAL: Cannot create bsdsocket.library!\n")); - return 0; - } - m68k_areg (regs, 1) = tmp1; - CallLib (context, m68k_areg (regs, 6), -0x18c); /* AddLibrary */ - SockLibBase = tmp1; + if (!tmp1) + { + write_log (_T("bsdoscket: FATAL: Cannot create bsdsocket.library!\n")); + return 0; + } + m68k_areg (regs, 1) = tmp1; + CallLib (context, m68k_areg (regs, 6), -0x18c); /* AddLibrary */ + SockLibBase = tmp1; - /* Install error strings in Amiga memory */ - tmp1 = 0; - for (i = number_sys_error; i--;) - tmp1 += _tcslen (errortexts[i]) + 1; - for (i = number_host_error; i--;) - tmp1 += _tcslen (herrortexts[i]) + 1; - for (i = number_sana2io_error; i--;) - tmp1 += _tcslen (sana2io_errlist[i]) + 1; - for (i = number_sana2wire_error; i--;) - tmp1 += _tcslen (sana2wire_errlist[i]) + 1; - tmp1 += _tcslen (strErr) + 1; + /* Install error strings in Amiga memory */ + tmp1 = 0; + for (i = number_sys_error; i--;) + tmp1 += _tcslen (errortexts[i]) + 1; + for (i = number_host_error; i--;) + tmp1 += _tcslen (herrortexts[i]) + 1; + for (i = number_sana2io_error; i--;) + tmp1 += _tcslen (sana2io_errlist[i]) + 1; + for (i = number_sana2wire_error; i--;) + tmp1 += _tcslen (sana2wire_errlist[i]) + 1; + tmp1 += _tcslen (strErr) + 1; - m68k_dreg (regs, 0) = tmp1; - m68k_dreg (regs, 1) = 0; - tmp1 = CallLib (context, m68k_areg (regs, 6), -0xC6); /* AllocMem */ + m68k_dreg (regs, 0) = tmp1; + m68k_dreg (regs, 1) = 0; + tmp1 = CallLib (context, m68k_areg (regs, 6), -0xC6); /* AllocMem */ - if (!tmp1) { - write_log (_T("bsdsocket: FATAL: Ran out of memory while creating bsdsocket.library!\n")); - return 0; - } + if (!tmp1) + { + write_log (_T("bsdsocket: FATAL: Ran out of memory while creating bsdsocket.library!\n")); + return 0; + } - for (i = 0; i < (int) (number_sys_error); i++) - errnotextptrs[i] = addstr (&tmp1, errortexts[i]); - for (i = 0; i < (int) (number_host_error); i++) - herrnotextptrs[i] = addstr (&tmp1, herrortexts[i]); - for (i = 0; i < (int) (number_sana2io_error); i++) - sana2iotextptrs[i] = addstr (&tmp1, sana2io_errlist[i]); - for (i = 0; i < (int) (number_sana2wire_error); i++) - sana2wiretextptrs[i] = addstr (&tmp1, sana2wire_errlist[i]); - strErrptr = addstr (&tmp1, strErr); + for (i = 0; i < (int) (number_sys_error); i++) + errnotextptrs[i] = addstr (&tmp1, errortexts[i]); + for (i = 0; i < (int) (number_host_error); i++) + herrnotextptrs[i] = addstr (&tmp1, herrortexts[i]); + for (i = 0; i < (int) (number_sana2io_error); i++) + sana2iotextptrs[i] = addstr (&tmp1, sana2io_errlist[i]); + for (i = 0; i < (int) (number_sana2wire_error); i++) + sana2wiretextptrs[i] = addstr (&tmp1, sana2wire_errlist[i]); + strErrptr = addstr (&tmp1, strErr); #if 0 - /* @@@ someone please implement a proper interrupt handler setup here :) */ - tmp1 = here (); - calltrap (deftrap2 (bsdsock_int_handler, TRAPFLAG_EXTRA_STACK | TRAPFLAG_NO_RETVAL, "bsdsock_int_handler")); - dw (0x4ef9); - dl (get_long (context->regs.vbr + 0x78)); - put_long (context->regs.vbr + 0x78, tmp1); + /* @@@ someone please implement a proper interrupt handler setup here :) */ + tmp1 = here (); + calltrap (deftrap2 (bsdsock_int_handler, TRAPFLAG_EXTRA_STACK | TRAPFLAG_NO_RETVAL, "bsdsock_int_handler")); + dw (0x4ef9); + dl (get_long (context->regs.vbr + 0x78)); + put_long (context->regs.vbr + 0x78, tmp1); #endif - m68k_dreg (regs, 0) = 1; - return 0; + m68k_dreg (regs, 0) = 1; + return 0; } void bsdlib_reset (void) { - SB, *nsb; - int i; + SB, *nsb; + int i; - if (!SockLibBase) - return; + if (!SockLibBase) + return; - SockLibBase = 0; + SockLibBase = 0; - write_log (_T("BSDSOCK: cleanup start..\n")); - host_sbcleanup (NULL); - for (sb = socketbases; sb; sb = nsb) { - nsb = sb->next; + write_log (_T("BSDSOCK: cleanup start..\n")); + host_sbcleanup (NULL); + for (sb = socketbases; sb; sb = nsb) + { + nsb = sb->next; - write_log (_T("BSDSOCK: cleanup start socket %x\n"), sb); - host_sbcleanup (sb); + write_log (_T("BSDSOCK: cleanup start socket %x\n"), sb); + host_sbcleanup (sb); - free (sb->dtable); - free (sb->ftable); + free (sb->dtable); + free (sb->ftable); - free (sb); - } - write_log (_T("BSDSOCK: cleanup end\n")); + free (sb); + } + write_log (_T("BSDSOCK: cleanup end\n")); - socketbases = NULL; + socketbases = NULL; #if 1 - sbsigqueue = NULL; + sbsigqueue = NULL; #endif - for (i = 0; i < SOCKPOOLSIZE; i++) { - if (sockdata->sockpoolids[i] != UNIQUE_ID) { - sockdata->sockpoolids[i] = UNIQUE_ID; - host_closesocketquick (sockdata->sockpoolsocks[i]); - } - } + for (i = 0; i < SOCKPOOLSIZE; i++) + { + if (sockdata->sockpoolids[i] != UNIQUE_ID) + { + sockdata->sockpoolids[i] = UNIQUE_ID; + host_closesocketquick (sockdata->sockpoolsocks[i]); + } + } - host_sbreset (); - write_log (_T("BSDSOCK: cleanup finished\n")); + host_sbreset (); + write_log (_T("BSDSOCK: cleanup finished\n")); } -static const TrapHandler sockfuncs[] = { - bsdsocklib_init, bsdsocklib_Open, bsdsocklib_Close, bsdsocklib_Expunge, - bsdsocklib_socket, bsdsocklib_bind, bsdsocklib_listen, bsdsocklib_accept, - bsdsocklib_connect, bsdsocklib_sendto, bsdsocklib_send, bsdsocklib_recvfrom, bsdsocklib_recv, - bsdsocklib_shutdown, bsdsocklib_setsockopt, bsdsocklib_getsockopt, bsdsocklib_getsockname, - bsdsocklib_getpeername, bsdsocklib_IoctlSocket, bsdsocklib_CloseSocket, bsdsocklib_WaitSelect, - bsdsocklib_SetSocketSignals, bsdsocklib_getdtablesize, bsdsocklib_ObtainSocket, bsdsocklib_ReleaseSocket, - bsdsocklib_ReleaseCopyOfSocket, bsdsocklib_Errno, bsdsocklib_SetErrnoPtr, bsdsocklib_Inet_NtoA, - bsdsocklib_inet_addr, bsdsocklib_Inet_LnaOf, bsdsocklib_Inet_NetOf, bsdsocklib_Inet_MakeAddr, - bsdsocklib_inet_network, bsdsocklib_gethostbyname, bsdsocklib_gethostbyaddr, bsdsocklib_getnetbyname, - bsdsocklib_getnetbyaddr, bsdsocklib_getservbyname, bsdsocklib_getservbyport, bsdsocklib_getprotobyname, - bsdsocklib_getprotobynumber, bsdsocklib_vsyslog, bsdsocklib_Dup2Socket, bsdsocklib_sendmsg, - bsdsocklib_recvmsg, bsdsocklib_gethostname, bsdsocklib_gethostid, bsdsocklib_SocketBaseTagList, - bsdsocklib_GetSocketEvents +static const TrapHandler sockfuncs[] = +{ + bsdsocklib_init, bsdsocklib_Open, bsdsocklib_Close, bsdsocklib_Expunge, + bsdsocklib_socket, bsdsocklib_bind, bsdsocklib_listen, bsdsocklib_accept, + bsdsocklib_connect, bsdsocklib_sendto, bsdsocklib_send, bsdsocklib_recvfrom, bsdsocklib_recv, + bsdsocklib_shutdown, bsdsocklib_setsockopt, bsdsocklib_getsockopt, bsdsocklib_getsockname, + bsdsocklib_getpeername, bsdsocklib_IoctlSocket, bsdsocklib_CloseSocket, bsdsocklib_WaitSelect, + bsdsocklib_SetSocketSignals, bsdsocklib_getdtablesize, bsdsocklib_ObtainSocket, bsdsocklib_ReleaseSocket, + bsdsocklib_ReleaseCopyOfSocket, bsdsocklib_Errno, bsdsocklib_SetErrnoPtr, bsdsocklib_Inet_NtoA, + bsdsocklib_inet_addr, bsdsocklib_Inet_LnaOf, bsdsocklib_Inet_NetOf, bsdsocklib_Inet_MakeAddr, + bsdsocklib_inet_network, bsdsocklib_gethostbyname, bsdsocklib_gethostbyaddr, bsdsocklib_getnetbyname, + bsdsocklib_getnetbyaddr, bsdsocklib_getservbyname, bsdsocklib_getservbyport, bsdsocklib_getprotobyname, + bsdsocklib_getprotobynumber, bsdsocklib_vsyslog, bsdsocklib_Dup2Socket, bsdsocklib_sendmsg, + bsdsocklib_recvmsg, bsdsocklib_gethostname, bsdsocklib_gethostid, bsdsocklib_SocketBaseTagList, + bsdsocklib_GetSocketEvents }; -static const TCHAR * const funcnames[] = { - _T("bsdsocklib_init"), _T("bsdsocklib_Open"), _T("bsdsocklib_Close"), _T("bsdsocklib_Expunge"), - _T("bsdsocklib_socket"), _T("bsdsocklib_bind"), _T("bsdsocklib_listen"), _T("bsdsocklib_accept"), - _T("bsdsocklib_connect"), _T("bsdsocklib_sendto"), _T("bsdsocklib_send"), _T("bsdsocklib_recvfrom"), _T("bsdsocklib_recv"), - _T("bsdsocklib_shutdown"), _T("bsdsocklib_setsockopt"), _T("bsdsocklib_getsockopt"), _T("bsdsocklib_getsockname"), - _T("bsdsocklib_getpeername"), _T("bsdsocklib_IoctlSocket"), _T("bsdsocklib_CloseSocket"), _T("bsdsocklib_WaitSelect"), - _T("bsdsocklib_SetSocketSignals"), _T("bsdsocklib_getdtablesize"), _T("bsdsocklib_ObtainSocket"), _T("bsdsocklib_ReleaseSocket"), - _T("bsdsocklib_ReleaseCopyOfSocket"), _T("bsdsocklib_Errno"), _T("bsdsocklib_SetErrnoPtr"), _T("bsdsocklib_Inet_NtoA"), - _T("bsdsocklib_inet_addr"), _T("bsdsocklib_Inet_LnaOf"), _T("bsdsocklib_Inet_NetOf"), _T("bsdsocklib_Inet_MakeAddr"), - _T("bsdsocklib_inet_network"), _T("bsdsocklib_gethostbyname"), _T("bsdsocklib_gethostbyaddr"), _T("bsdsocklib_getnetbyname"), - _T("bsdsocklib_getnetbyaddr"), _T("bsdsocklib_getservbyname"), _T("bsdsocklib_getservbyport"), _T("bsdsocklib_getprotobyname"), - _T("bsdsocklib_getprotobynumber"), _T("bsdsocklib_vsyslog"), _T("bsdsocklib_Dup2Socket"), _T("bsdsocklib_sendmsg"), - _T("bsdsocklib_recvmsg"), _T("bsdsocklib_gethostname"), _T("bsdsocklib_gethostid"), _T("bsdsocklib_SocketBaseTagList"), - _T("bsdsocklib_GetSocketEvents") +static const TCHAR * const funcnames[] = +{ + _T("bsdsocklib_init"), _T("bsdsocklib_Open"), _T("bsdsocklib_Close"), _T("bsdsocklib_Expunge"), + _T("bsdsocklib_socket"), _T("bsdsocklib_bind"), _T("bsdsocklib_listen"), _T("bsdsocklib_accept"), + _T("bsdsocklib_connect"), _T("bsdsocklib_sendto"), _T("bsdsocklib_send"), _T("bsdsocklib_recvfrom"), _T("bsdsocklib_recv"), + _T("bsdsocklib_shutdown"), _T("bsdsocklib_setsockopt"), _T("bsdsocklib_getsockopt"), _T("bsdsocklib_getsockname"), + _T("bsdsocklib_getpeername"), _T("bsdsocklib_IoctlSocket"), _T("bsdsocklib_CloseSocket"), _T("bsdsocklib_WaitSelect"), + _T("bsdsocklib_SetSocketSignals"), _T("bsdsocklib_getdtablesize"), _T("bsdsocklib_ObtainSocket"), _T("bsdsocklib_ReleaseSocket"), + _T("bsdsocklib_ReleaseCopyOfSocket"), _T("bsdsocklib_Errno"), _T("bsdsocklib_SetErrnoPtr"), _T("bsdsocklib_Inet_NtoA"), + _T("bsdsocklib_inet_addr"), _T("bsdsocklib_Inet_LnaOf"), _T("bsdsocklib_Inet_NetOf"), _T("bsdsocklib_Inet_MakeAddr"), + _T("bsdsocklib_inet_network"), _T("bsdsocklib_gethostbyname"), _T("bsdsocklib_gethostbyaddr"), _T("bsdsocklib_getnetbyname"), + _T("bsdsocklib_getnetbyaddr"), _T("bsdsocklib_getservbyname"), _T("bsdsocklib_getservbyport"), _T("bsdsocklib_getprotobyname"), + _T("bsdsocklib_getprotobynumber"), _T("bsdsocklib_vsyslog"), _T("bsdsocklib_Dup2Socket"), _T("bsdsocklib_sendmsg"), + _T("bsdsocklib_recvmsg"), _T("bsdsocklib_gethostname"), _T("bsdsocklib_gethostid"), _T("bsdsocklib_SocketBaseTagList"), + _T("bsdsocklib_GetSocketEvents") }; static uae_u32 sockfuncvecs[sizeof (sockfuncs) / sizeof (*sockfuncs)]; @@ -1733,86 +1880,89 @@ static uae_u32 res_name, res_id, res_init; uaecptr bsdlib_startup (uaecptr resaddr) { - if (res_name == 0 || !currprefs.socket_emu) - return resaddr; - put_word (resaddr + 0x0, 0x4AFC); - put_long (resaddr + 0x2, resaddr); - put_long (resaddr + 0x6, resaddr + 0x1A); /* Continue scan here */ - put_word (resaddr + 0xA, 0x8004); /* RTF_AUTOINIT, RT_VERSION */ - put_word (resaddr + 0xC, 0x0970); /* NT_LIBRARY, RT_PRI */ - put_long (resaddr + 0xE, res_name); - put_long (resaddr + 0x12, res_id); - put_long (resaddr + 0x16, res_init); - resaddr += 0x1A; - return resaddr; + if (res_name == 0 || !currprefs.socket_emu) + return resaddr; + put_word (resaddr + 0x0, 0x4AFC); + put_long (resaddr + 0x2, resaddr); + put_long (resaddr + 0x6, resaddr + 0x1A); /* Continue scan here */ + put_word (resaddr + 0xA, 0x8004); /* RTF_AUTOINIT, RT_VERSION */ + put_word (resaddr + 0xC, 0x0970); /* NT_LIBRARY, RT_PRI */ + put_long (resaddr + 0xE, res_name); + put_long (resaddr + 0x12, res_id); + put_long (resaddr + 0x16, res_init); + resaddr += 0x1A; + return resaddr; } void bsdlib_install (void) { - int i; + int i; - if (!sockdata) { - sockdata = xcalloc (struct sockd, 1); - for (i = 0; i < SOCKPOOLSIZE; i++) - sockdata->sockpoolids[i] = UNIQUE_ID; - } + if (!sockdata) + { + sockdata = xcalloc (struct sockd, 1); + for (i = 0; i < SOCKPOOLSIZE; i++) + sockdata->sockpoolids[i] = UNIQUE_ID; + } - if (!init_socket_layer ()) { - res_name = 0; - res_id = 0; - return; - } + if (!init_socket_layer ()) + { + res_name = 0; + res_id = 0; + return; + } - res_name = ds (_T("bsdsocket.library")); - res_id = ds (_T("UAE bsdsocket.library 4.1")); + res_name = ds (_T("bsdsocket.library")); + res_id = ds (_T("UAE bsdsocket.library 4.1")); - for (i = 0; i < (int) (sizeof (sockfuncs) / sizeof (sockfuncs[0])); i++) { - sockfuncvecs[i] = here (); - calltrap (deftrap2 (sockfuncs[i], TRAPFLAG_EXTRA_STACK, funcnames[i])); - dw (RTS); - } + for (i = 0; i < (int) (sizeof (sockfuncs) / sizeof (sockfuncs[0])); i++) + { + sockfuncvecs[i] = here (); + calltrap (deftrap2 (sockfuncs[i], TRAPFLAG_EXTRA_STACK, funcnames[i])); + dw (RTS); + } - /* FuncTable */ - functable = here (); - for (i = 1; i < 4; i++) - dl (sockfuncvecs[i]); /* Open / Close / Expunge */ - dl (EXPANSION_nullfunc); /* Null */ - for (i = 4; i < (int) (sizeof (sockfuncs) / sizeof (sockfuncs[0])); i++) - dl (sockfuncvecs[i]); - dl (0xFFFFFFFF); /* end of table */ + /* FuncTable */ + functable = here (); + for (i = 1; i < 4; i++) + dl (sockfuncvecs[i]); /* Open / Close / Expunge */ + dl (EXPANSION_nullfunc); /* Null */ + for (i = 4; i < (int) (sizeof (sockfuncs) / sizeof (sockfuncs[0])); i++) + dl (sockfuncvecs[i]); + dl (0xFFFFFFFF); /* end of table */ - /* DataTable */ - datatable = here (); - dw (0xE000); /* INITBYTE */ - dw (0x0008); /* LN_TYPE */ - dw (0x0900); /* NT_LIBRARY */ - dw (0xE000); /* INITBYTE */ - dw (0x0009); /* LN_PRI */ - dw (0xCE00); /* -50 */ - dw (0xC000); /* INITLONG */ - dw (0x000A); /* LN_NAME */ - dl (res_name); - dw (0xE000); /* INITBYTE */ - dw (0x000E); /* LIB_FLAGS */ - dw (0x0600); /* LIBF_SUMUSED | LIBF_CHANGED */ - dw (0xD000); /* INITWORD */ - dw (0x0014); /* LIB_VERSION */ - dw (0x0004); - dw (0xD000); - dw (0x0016); /* LIB_REVISION */ - dw (0x0001); - dw (0xC000); - dw (0x0018); /* LIB_IDSTRING */ - dl (res_id); - dl (0x00000000); /* end of table */ + /* DataTable */ + datatable = here (); + dw (0xE000); /* INITBYTE */ + dw (0x0008); /* LN_TYPE */ + dw (0x0900); /* NT_LIBRARY */ + dw (0xE000); /* INITBYTE */ + dw (0x0009); /* LN_PRI */ + dw (0xCE00); /* -50 */ + dw (0xC000); /* INITLONG */ + dw (0x000A); /* LN_NAME */ + dl (res_name); + dw (0xE000); /* INITBYTE */ + dw (0x000E); /* LIB_FLAGS */ + dw (0x0600); /* LIBF_SUMUSED | LIBF_CHANGED */ + dw (0xD000); /* INITWORD */ + dw (0x0014); /* LIB_VERSION */ + dw (0x0004); + dw (0xD000); + dw (0x0016); /* LIB_REVISION */ + dw (0x0001); + dw (0xC000); + dw (0x0018); /* LIB_IDSTRING */ + dl (res_id); + dl (0x00000000); /* end of table */ - res_init = here (); - dl (512); - dl (functable); - dl (datatable); - dl (*sockfuncvecs); + res_init = here (); + dl (512); + dl (functable); + dl (datatable); + dl (*sockfuncvecs); - write_log (_T("bsdsocket.library installed\n")); + write_log (_T("bsdsocket.library installed\n")); } #endif /* ! BSDSOCKET */ diff --git a/src/build68k.cpp b/src/build68k.cpp index cb3db939..3a8eb800 100644 --- a/src/build68k.cpp +++ b/src/build68k.cpp @@ -2,7 +2,7 @@ * build68k.c - m68k CPU builder * * Copyright (c) 2001-2004 Milan Jurik of ARAnyM dev team (see AUTHORS) - * + * * Inspired by Christian Bauer's Basilisk II * * This file is part of the ARAnyM project which builds a new and powerful @@ -45,36 +45,59 @@ static int nextch = 0; static void getnextch(void) { - do { - nextch = fgetc(tablef); - if (nextch == '%') { - do { - nextch = fgetc(tablef); - } while (nextch != EOF && nextch != '\n'); - } - } while (nextch != EOF && isspace(nextch)); + do + { + nextch = fgetc(tablef); + if (nextch == '%') + { + do + { + nextch = fgetc(tablef); + } + while (nextch != EOF && nextch != '\n'); + } + } + while (nextch != EOF && isspace(nextch)); } static int nextchtohex(void) { - switch (isupper (nextch) ? tolower (nextch) : nextch) { - case '0': return 0; - case '1': return 1; - case '2': return 2; - case '3': return 3; - case '4': return 4; - case '5': return 5; - case '6': return 6; - case '7': return 7; - case '8': return 8; - case '9': return 9; - case 'a': return 10; - case 'b': return 11; - case 'c': return 12; - case 'd': return 13; - case 'e': return 14; - case 'f': return 15; - default: abort(); + switch (isupper (nextch) ? tolower (nextch) : nextch) + { + case '0': + return 0; + case '1': + return 1; + case '2': + return 2; + case '3': + return 3; + case '4': + return 4; + case '5': + return 5; + case '6': + return 6; + case '7': + return 7; + case '8': + return 8; + case '9': + return 9; + case 'a': + return 10; + case 'b': + return 11; + case 'c': + return 12; + case 'd': + return 13; + case 'e': + return 14; + case 'f': + return 15; + default: + abort(); } } @@ -88,228 +111,368 @@ int main(int argc, char **argv) printf ("struct instr_def defs68k[] = {\n"); #if 0 tablef = fopen("table68k","r"); - if (tablef == NULL) { - fprintf(stderr, "table68k not found\n"); - exit(1); + if (tablef == NULL) + { + fprintf(stderr, "table68k not found\n"); + exit(1); } #else tablef = stdin; #endif getnextch(); - while (nextch != EOF) { - int cpulevel, uncpulevel, plevel, sduse; - int i; + while (nextch != EOF) + { + int cpulevel, uncpulevel, plevel, sduse; + int i; - char patbits[16]; - char opcstr[256]; - int bitpos[16]; - int flagset[5], flaguse[5]; - char cflow; + char patbits[16]; + char opcstr[256]; + int bitpos[16]; + int flagset[5], flaguse[5]; + char cflow; - unsigned int bitmask,bitpattern; - int n_variable; + unsigned int bitmask,bitpattern; + int n_variable; - n_variable = 0; - bitmask = bitpattern = 0; - memset (bitpos, 0, sizeof(bitpos)); - for(i=0; i<16; i++) { - int currbit; - bitmask <<= 1; - bitpattern <<= 1; + n_variable = 0; + bitmask = bitpattern = 0; + memset (bitpos, 0, sizeof(bitpos)); + for(i=0; i<16; i++) + { + int currbit; + bitmask <<= 1; + bitpattern <<= 1; - switch (nextch) { - case '0': currbit = bit0; bitmask |= 1; break; - case '1': currbit = bit1; bitmask |= 1; bitpattern |= 1; break; - case 'c': currbit = bitc; break; - case 'C': currbit = bitC; break; - case 'f': currbit = bitf; break; - case 'i': currbit = biti; break; - case 'I': currbit = bitI; break; - case 'j': currbit = bitj; break; - case 'J': currbit = bitJ; break; - case 'k': currbit = bitk; break; - case 'K': currbit = bitK; break; - case 's': currbit = bits; break; - case 'S': currbit = bitS; break; - case 'd': currbit = bitd; break; - case 'D': currbit = bitD; break; - case 'r': currbit = bitr; break; - case 'R': currbit = bitR; break; - case 'z': currbit = bitz; break; - case 'E': currbit = bitE; break; - case 'p': currbit = bitp; break; - default: abort(); - } - if (!(bitmask & 1)) { - bitpos[n_variable] = currbit; - n_variable++; - } + switch (nextch) + { + case '0': + currbit = bit0; + bitmask |= 1; + break; + case '1': + currbit = bit1; + bitmask |= 1; + bitpattern |= 1; + break; + case 'c': + currbit = bitc; + break; + case 'C': + currbit = bitC; + break; + case 'f': + currbit = bitf; + break; + case 'i': + currbit = biti; + break; + case 'I': + currbit = bitI; + break; + case 'j': + currbit = bitj; + break; + case 'J': + currbit = bitJ; + break; + case 'k': + currbit = bitk; + break; + case 'K': + currbit = bitK; + break; + case 's': + currbit = bits; + break; + case 'S': + currbit = bitS; + break; + case 'd': + currbit = bitd; + break; + case 'D': + currbit = bitD; + break; + case 'r': + currbit = bitr; + break; + case 'R': + currbit = bitR; + break; + case 'z': + currbit = bitz; + break; + case 'E': + currbit = bitE; + break; + case 'p': + currbit = bitp; + break; + default: + abort(); + } + if (!(bitmask & 1)) + { + bitpos[n_variable] = currbit; + n_variable++; + } - if (nextch == '0' || nextch == '1') - bitmask |= 1; - if (nextch == '1') - bitpattern |= 1; - patbits[i] = nextch; - getnextch(); - } - (void) patbits; + if (nextch == '0' || nextch == '1') + bitmask |= 1; + if (nextch == '1') + bitpattern |= 1; + patbits[i] = nextch; + getnextch(); + } + (void) patbits; - while (isspace(nextch) || nextch == ':') /* Get CPU level, unimplemented level, and privilege level */ - getnextch(); + while (isspace(nextch) || nextch == ':') /* Get CPU level, unimplemented level, and privilege level */ + getnextch(); - switch (nextch) { - case '0': cpulevel = 0; break; - case '1': cpulevel = 1; break; - case '2': cpulevel = 2; break; - case '3': cpulevel = 3; break; - case '4': cpulevel = 4; break; - case '5': cpulevel = 5; break; - case '6': cpulevel = 6; break; - case '7': cpulevel = 7; break; - default: abort(); - } - getnextch(); + switch (nextch) + { + case '0': + cpulevel = 0; + break; + case '1': + cpulevel = 1; + break; + case '2': + cpulevel = 2; + break; + case '3': + cpulevel = 3; + break; + case '4': + cpulevel = 4; + break; + case '5': + cpulevel = 5; + break; + case '6': + cpulevel = 6; + break; + case '7': + cpulevel = 7; + break; + default: + abort(); + } + getnextch(); - switch (nextch) { - case '0': uncpulevel = 0; break; - case '1': uncpulevel = 1; break; - case '2': uncpulevel = 2; break; - case '3': uncpulevel = 3; break; - case '4': uncpulevel = 4; break; - case '5': uncpulevel = 5; break; - case '6': uncpulevel = 6; break; - case '7': uncpulevel = 7; break; - default: abort(); - } - getnextch(); + switch (nextch) + { + case '0': + uncpulevel = 0; + break; + case '1': + uncpulevel = 1; + break; + case '2': + uncpulevel = 2; + break; + case '3': + uncpulevel = 3; + break; + case '4': + uncpulevel = 4; + break; + case '5': + uncpulevel = 5; + break; + case '6': + uncpulevel = 6; + break; + case '7': + uncpulevel = 7; + break; + default: + abort(); + } + getnextch(); - switch (nextch) { - case '0': plevel = 0; break; - case '1': plevel = 1; break; - case '2': plevel = 2; break; - case '3': plevel = 3; break; - default: abort(); - } - getnextch(); + switch (nextch) + { + case '0': + plevel = 0; + break; + case '1': + plevel = 1; + break; + case '2': + plevel = 2; + break; + case '3': + plevel = 3; + break; + default: + abort(); + } + getnextch(); - while (isspace(nextch)) /* Get flag set information */ - getnextch(); + while (isspace(nextch)) /* Get flag set information */ + getnextch(); - if (nextch != ':') - abort(); + if (nextch != ':') + abort(); - for(i = 0; i < 5; i++) { - getnextch(); - switch(nextch){ - case '-': flagset[i] = fa_unset; break; - case '/': flagset[i] = fa_isjmp; break; - case '+': flagset[i] = fa_isbranch; break; - case '0': flagset[i] = fa_zero; break; - case '1': flagset[i] = fa_one; break; - case 'x': flagset[i] = fa_dontcare; break; - case '?': flagset[i] = fa_unknown; break; - default: flagset[i] = fa_set; break; - } - } + for(i = 0; i < 5; i++) + { + getnextch(); + switch(nextch) + { + case '-': + flagset[i] = fa_unset; + break; + case '/': + flagset[i] = fa_isjmp; + break; + case '+': + flagset[i] = fa_isbranch; + break; + case '0': + flagset[i] = fa_zero; + break; + case '1': + flagset[i] = fa_one; + break; + case 'x': + flagset[i] = fa_dontcare; + break; + case '?': + flagset[i] = fa_unknown; + break; + default: + flagset[i] = fa_set; + break; + } + } - getnextch(); - while (isspace(nextch)) - getnextch(); + getnextch(); + while (isspace(nextch)) + getnextch(); - if (nextch != ':') /* Get flag used information */ - abort(); + if (nextch != ':') /* Get flag used information */ + abort(); - for(i = 0; i < 5; i++) { - getnextch(); - switch(nextch){ - case '-': flaguse[i] = fu_unused; break; - case '/': flaguse[i] = fu_isjmp; break; - case '+': flaguse[i] = fu_maybecc; break; - case '?': flaguse[i] = fu_unknown; break; - default: flaguse[i] = fu_used; break; - } - } + for(i = 0; i < 5; i++) + { + getnextch(); + switch(nextch) + { + case '-': + flaguse[i] = fu_unused; + break; + case '/': + flaguse[i] = fu_isjmp; + break; + case '+': + flaguse[i] = fu_maybecc; + break; + case '?': + flaguse[i] = fu_unknown; + break; + default: + flaguse[i] = fu_used; + break; + } + } - getnextch(); - while (isspace(nextch)) - getnextch(); + getnextch(); + while (isspace(nextch)) + getnextch(); - if (nextch != ':') /* Get control flow information */ - abort(); - - cflow = 0; - for(i = 0; i < 2; i++) { - getnextch(); - switch(nextch){ - case '-': break; - case 'R': cflow |= fl_return; break; - case 'B': cflow |= fl_branch; break; - case 'J': cflow |= fl_jump; break; - case 'T': cflow |= fl_trap; break; - default: abort(); - } - } - - getnextch(); - while (isspace(nextch)) - getnextch(); + if (nextch != ':') /* Get control flow information */ + abort(); - if (nextch != ':') /* Get source/dest usage information */ - abort(); + cflow = 0; + for(i = 0; i < 2; i++) + { + getnextch(); + switch(nextch) + { + case '-': + break; + case 'R': + cflow |= fl_return; + break; + case 'B': + cflow |= fl_branch; + break; + case 'J': + cflow |= fl_jump; + break; + case 'T': + cflow |= fl_trap; + break; + default: + abort(); + } + } - getnextch(); - sduse = nextchtohex() << 4; - getnextch(); - sduse |= nextchtohex(); + getnextch(); + while (isspace(nextch)) + getnextch(); - getnextch(); - while (isspace(nextch)) - getnextch(); + if (nextch != ':') /* Get source/dest usage information */ + abort(); - if (nextch != ':') - abort(); + getnextch(); + sduse = nextchtohex() << 4; + getnextch(); + sduse |= nextchtohex(); - fgets(opcstr, 250, tablef); - getnextch(); - { - int j; - /* Remove superfluous spaces from the string */ - char *opstrp = opcstr, *osendp; - char tmp[100], *p; - int slen = 0; + getnextch(); + while (isspace(nextch)) + getnextch(); - while (isspace((int)*opstrp)) - opstrp++; + if (nextch != ':') + abort(); - osendp = opstrp; - while (*osendp) { - if (!isspace ((int)*osendp)) - slen = osendp - opstrp + 1; - osendp++; - } - opstrp[slen] = 0; + fgets(opcstr, 250, tablef); + getnextch(); + { + int j; + /* Remove superfluous spaces from the string */ + char *opstrp = opcstr, *osendp; + char tmp[100], *p; + int slen = 0; - if (no_insns > 0) - printf(",\n"); - no_insns++; - strcpy (tmp, opstrp); - strcat (tmp, " "); - p = tmp; - while (!isspace(*p++)); - *p = 0; - printf("/* %s */\n", tmp); - printf("{0x%04X,%2d,{", bitpattern, n_variable); - for (j = 0; j < 16; j++) { - printf("%2d", bitpos[j]); - if (j < 15) - printf(","); - } - printf ("},0x%04X,%d,%d,%d,{", bitmask, cpulevel, uncpulevel, plevel); - for(i = 0; i < 5; i++) { - printf("{%d,%d}%s", flaguse[i], flagset[i], i == 4 ? "" : ","); - } - printf("}, %2d, %2d,_T(\"%s\")}", cflow, sduse, opstrp); - } + while (isspace((int)*opstrp)) + opstrp++; + + osendp = opstrp; + while (*osendp) + { + if (!isspace ((int)*osendp)) + slen = osendp - opstrp + 1; + osendp++; + } + opstrp[slen] = 0; + + if (no_insns > 0) + printf(",\n"); + no_insns++; + strcpy (tmp, opstrp); + strcat (tmp, " "); + p = tmp; + while (!isspace(*p++)); + *p = 0; + printf("/* %s */\n", tmp); + printf("{0x%04X,%2d,{", bitpattern, n_variable); + for (j = 0; j < 16; j++) + { + printf("%2d", bitpos[j]); + if (j < 15) + printf(","); + } + printf ("},0x%04X,%d,%d,%d,{", bitmask, cpulevel, uncpulevel, plevel); + for(i = 0; i < 5; i++) + { + printf("{%d,%d}%s", flaguse[i], flagset[i], i == 4 ? "" : ","); + } + printf("}, %2d, %2d,_T(\"%s\")}", cflow, sduse, opstrp); + } } printf("};\nint n_defs68k = %d;\n", no_insns); return 0; diff --git a/src/calc.cpp b/src/calc.cpp index 258fc177..c48fb4b2 100644 --- a/src/calc.cpp +++ b/src/calc.cpp @@ -27,7 +27,7 @@ #include #include - + #define STACK_SIZE 32 #define MAX_VALUES 32 #define IOBUFFERS 256 @@ -42,114 +42,145 @@ static double parsedvalues[MAX_VALUES]; // 4 = right to left static int op_preced(const TCHAR c) { - switch(c) { - case '!': - return 4; - case '*': case '/': case '\\': case '%': - return 3; - case '+': case '-': - return 2; - case '=': - return 1; + switch(c) + { + case '!': + return 4; + case '*': + case '/': + case '\\': + case '%': + return 3; + case '+': + case '-': + return 2; + case '=': + return 1; } return 0; } - + static bool op_left_assoc(const TCHAR c) { - switch(c) { - // left to right - case '*': case '/': case '%': case '+': case '-': - return true; - // right to left - case '=': case '!': - return false; + switch(c) + { + // left to right + case '*': + case '/': + case '%': + case '+': + case '-': + return true; + // right to left + case '=': + case '!': + return false; } return false; } - + static unsigned int op_arg_count(const TCHAR c) { - switch(c) { - case '*': case '/': case '%': case '+': case '-': case '=': - return 2; - case '!': - return 1; - default: - return c - 'A'; + switch(c) + { + case '*': + case '/': + case '%': + case '+': + case '-': + case '=': + return 2; + case '!': + return 1; + default: + return c - 'A'; } return 0; } - + #define is_operator(c) (c == '+' || c == '-' || c == '/' || c == '*' || c == '!' || c == '%' || c == '=') #define is_function(c) (c >= 'A' && c <= 'Z') #define is_ident(c) ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z')) - + static bool shunting_yard(const TCHAR *input, TCHAR *output) { const TCHAR *strpos = input, *strend = input + _tcslen(input); TCHAR c, *outpos = output; - + TCHAR stack[STACK_SIZE]; // operator stack unsigned int sl = 0; // stack length TCHAR sc; // used for record stack element - - while(strpos < strend) { - if (sl >= STACK_SIZE) - return false; - // read one token from the input stream + while(strpos < strend) + { + if (sl >= STACK_SIZE) + return false; + + // read one token from the input stream c = *strpos; - if(c != ' ') { + if(c != ' ') + { // If the token is a number (identifier), then add it to the output queue. - if(is_ident(c)) { - *outpos = c; ++outpos; + if(is_ident(c)) + { + *outpos = c; + ++outpos; } // If the token is a function token, then push it onto the stack. - else if(is_function(c)) { + else if(is_function(c)) + { stack[sl] = c; ++sl; } // If the token is a function argument separator (e.g., a comma): - else if(c == ',') { + else if(c == ',') + { bool pe = false; - while(sl > 0) { + while(sl > 0) + { sc = stack[sl - 1]; - if(sc == '(') { + if(sc == '(') + { pe = true; break; } - else { + else + { // Until the token at the top of the stack is a left parenthesis, // pop operators off the stack onto the output queue. - *outpos = sc; + *outpos = sc; ++outpos; sl--; } } // If no left parentheses are encountered, either the separator was misplaced // or parentheses were mismatched. - if(!pe) { + if(!pe) + { calc_log ((_T("Error: separator or parentheses mismatched\n"))); return false; } } // If the token is an operator, op1, then: - else if(is_operator(c)) { - while(sl > 0) { + else if(is_operator(c)) + { + while(sl > 0) + { sc = stack[sl - 1]; // While there is an operator token, o2, at the top of the stack // op1 is left-associative and its precedence is less than or equal to that of op2, // or op1 is right-associative and its precedence is less than that of op2, if(is_operator(sc) && - ((op_left_assoc(c) && (op_preced(c) <= op_preced(sc))) || - (!op_left_assoc(c) && (op_preced(c) < op_preced(sc))))) { + ((op_left_assoc(c) && (op_preced(c) <= op_preced(sc))) || + (!op_left_assoc(c) && (op_preced(c) < op_preced(sc))))) + { // Pop o2 off the stack, onto the output queue; - *outpos = sc; + *outpos = sc; ++outpos; sl--; } - else { + else + { break; } } @@ -158,45 +189,54 @@ static bool shunting_yard(const TCHAR *input, TCHAR *output) ++sl; } // If the token is a left parenthesis, then push it onto the stack. - else if(c == '(') { + else if(c == '(') + { stack[sl] = c; ++sl; } // If the token is a right parenthesis: - else if(c == ')') { + else if(c == ')') + { bool pe = false; // Until the token at the top of the stack is a left parenthesis, // pop operators off the stack onto the output queue - while(sl > 0) { + while(sl > 0) + { sc = stack[sl - 1]; - if(sc == '(') { + if(sc == '(') + { pe = true; break; } - else { - *outpos = sc; + else + { + *outpos = sc; ++outpos; sl--; } } // If the stack runs out without finding a left parenthesis, then there are mismatched parentheses. - if(!pe) { + if(!pe) + { calc_log ((_T("Error: parentheses mismatched\n"))); return false; } // Pop the left parenthesis from the stack, but not onto the output queue. sl--; // If the token at the top of the stack is a function token, pop it onto the output queue. - if(sl > 0) { + if(sl > 0) + { sc = stack[sl - 1]; - if(is_function(sc)) { - *outpos = sc; + if(is_function(sc)) + { + *outpos = sc; ++outpos; sl--; } } } - else { + else + { calc_log ((_T("Unknown token %c\n"), c)); return false; // Unknown token } @@ -205,88 +245,93 @@ static bool shunting_yard(const TCHAR *input, TCHAR *output) } // When there are no more tokens to read: // While there are still operator tokens in the stack: - while(sl > 0) { + while(sl > 0) + { sc = stack[sl - 1]; - if(sc == '(' || sc == ')') { + if(sc == '(' || sc == ')') + { printf("Error: parentheses mismatched\n"); return false; } - *outpos = sc; + *outpos = sc; ++outpos; --sl; } *outpos = 0; // Null terminator return true; } - + struct calcstack { - TCHAR *s; - double val; + TCHAR *s; + double val; }; static double docalcx(TCHAR op, double v1, double v2) { - switch (op) - { - case '-': - return v1 - v2; - case '+': - return v1 + v2; - case '*': - return v1 * v2; - case '/': - return v1 / v2; - case '\\': - return (int)v1 % (int)v2; + switch (op) + { + case '-': + return v1 - v2; + case '+': + return v1 + v2; + case '*': + return v1 * v2; + case '/': + return v1 / v2; + case '\\': + return (int)v1 % (int)v2; - } - return 0; + } + return 0; } static double stacktoval(struct calcstack *st) { - if (st->s) { - if (_tcslen(st->s) == 1 && st->s[0] >= 'a' && st->s[0] <= 'z') - return parsedvalues[st->s[0] - 'a']; - return _tstof (st->s); - } else { - return st->val; - } + if (st->s) + { + if (_tcslen(st->s) == 1 && st->s[0] >= 'a' && st->s[0] <= 'z') + return parsedvalues[st->s[0] - 'a']; + return _tstof (st->s); + } + else + { + return st->val; + } } static double docalc2(TCHAR op, struct calcstack *sv1, struct calcstack *sv2) { - double v1, v2; + double v1, v2; - v1 = stacktoval(sv1); - v2 = stacktoval(sv2); - return docalcx (op, v1, v2); + v1 = stacktoval(sv1); + v2 = stacktoval(sv2); + return docalcx (op, v1, v2); } static double docalc1(TCHAR op, struct calcstack *sv1, double v2) { - double v1; + double v1; - v1 = stacktoval(sv1); - return docalcx (op, v1, v2); + v1 = stacktoval(sv1); + return docalcx (op, v1, v2); } static TCHAR *stacktostr(struct calcstack *st) { - static TCHAR out[256]; - if (st->s) - return st->s; - _stprintf(out, _T("%f"), st->val); - return out; + static TCHAR out[256]; + if (st->s) + return st->s; + _stprintf(out, _T("%f"), st->val); + return out; } static TCHAR *chartostack(TCHAR c) { - TCHAR *s = xmalloc (TCHAR, 2); - s[0] = c; - s[1] = 0; - return s; + TCHAR *s = xmalloc (TCHAR, 2); + s[0] = c; + s[1] = 0; + return s; } static bool execution_order(const TCHAR *input, double *outval) @@ -294,160 +339,185 @@ static bool execution_order(const TCHAR *input, double *outval) const TCHAR *strpos = input, *strend = input + _tcslen(input); TCHAR c, res[4]; unsigned int sl = 0, rn = 0; - struct calcstack stack[STACK_SIZE] = { 0 }, *sc, *sc2; - double val = 0; - int i; - bool ok = false; + struct calcstack stack[STACK_SIZE] = { 0 }, *sc, *sc2; + double val = 0; + int i; + bool ok = false; - // While there are input tokens left - while(strpos < strend) { + // While there are input tokens left + while(strpos < strend) + { - if (sl >= STACK_SIZE) - return false; + if (sl >= STACK_SIZE) + return false; - // Read the next token from input. - c = *strpos; - // If the token is a value or identifier - if(is_ident(c)) { - // Push it onto the stack. - stack[sl].s = chartostack (c); + // Read the next token from input. + c = *strpos; + // If the token is a value or identifier + if(is_ident(c)) + { + // Push it onto the stack. + stack[sl].s = chartostack (c); ++sl; } - // Otherwise, the token is an operator (operator here includes both operators, and functions). - else if(is_operator(c) || is_function(c)) { - _stprintf(res, _T("_%02d"), rn); - calc_log ((_T("%s = "), res)); - ++rn; - // It is known a priori that the operator takes n arguments. - unsigned int nargs = op_arg_count(c); - // If there are fewer than n values on the stack - if(sl < nargs) { - // (Error) The user has not input sufficient values in the expression. - return false; - } - // Else, Pop the top n values from the stack. - // Evaluate the operator, with the values as arguments. - if(is_function(c)) { - calc_log ((_T("%c("), c)); - while(nargs > 0){ - sc = &stack[sl - nargs]; // to remove reverse order of arguments - if(nargs > 1) { - calc_log ((_T("%s, "), sc)); - } - else { - calc_log ((_T("%s)\n"), sc)); - } - --nargs; - } - sl-=op_arg_count(c); - } - else { - if(nargs == 1) { - sc = &stack[sl - 1]; - sl--; - val = docalc1 (c, sc, val); - calc_log ((_T("%c %s = %f;\n"), c, stacktostr(sc), val)); - } - else { - sc = &stack[sl - 2]; - calc_log ((_T("%s %c "), stacktostr(sc), c)); - sc2 = &stack[sl - 1]; - val = docalc2 (c, sc, sc2); - sl--;sl--; - calc_log ((_T("%s = %f;\n"), stacktostr(sc2), val)); - } - } - // Push the returned results, if any, back onto the stack. - stack[sl].val = val; - stack[sl].s = NULL; + // Otherwise, the token is an operator (operator here includes both operators, and functions). + else if(is_operator(c) || is_function(c)) + { + _stprintf(res, _T("_%02d"), rn); + calc_log ((_T("%s = "), res)); + ++rn; + // It is known a priori that the operator takes n arguments. + unsigned int nargs = op_arg_count(c); + // If there are fewer than n values on the stack + if(sl < nargs) + { + // (Error) The user has not input sufficient values in the expression. + return false; + } + // Else, Pop the top n values from the stack. + // Evaluate the operator, with the values as arguments. + if(is_function(c)) + { + calc_log ((_T("%c("), c)); + while(nargs > 0) + { + sc = &stack[sl - nargs]; // to remove reverse order of arguments + if(nargs > 1) + { + calc_log ((_T("%s, "), sc)); + } + else + { + calc_log ((_T("%s)\n"), sc)); + } + --nargs; + } + sl-=op_arg_count(c); + } + else + { + if(nargs == 1) + { + sc = &stack[sl - 1]; + sl--; + val = docalc1 (c, sc, val); + calc_log ((_T("%c %s = %f;\n"), c, stacktostr(sc), val)); + } + else + { + sc = &stack[sl - 2]; + calc_log ((_T("%s %c "), stacktostr(sc), c)); + sc2 = &stack[sl - 1]; + val = docalc2 (c, sc, sc2); + sl--; + sl--; + calc_log ((_T("%s = %f;\n"), stacktostr(sc2), val)); + } + } + // Push the returned results, if any, back onto the stack. + stack[sl].val = val; + stack[sl].s = NULL; ++sl; } ++strpos; } - // If there is only one value in the stack - // That value is the result of the calculation. - if(sl == 1) { - sc = &stack[sl - 1]; - sl--; - calc_log ((_T("result = %f\n"), val)); - if (outval) - *outval = val; - ok = true; - } - for (i = 0; i < STACK_SIZE; i++) - xfree (stack[i].s); - - // If there are more values in the stack - // (Error) The user input has too many values. + // If there is only one value in the stack + // That value is the result of the calculation. + if(sl == 1) + { + sc = &stack[sl - 1]; + sl--; + calc_log ((_T("result = %f\n"), val)); + if (outval) + *outval = val; + ok = true; + } + for (i = 0; i < STACK_SIZE; i++) + xfree (stack[i].s); - return ok; + // If there are more values in the stack + // (Error) The user input has too many values. + + return ok; } static bool parse_values(const TCHAR *ins, TCHAR *out) { - int ident = 0; - TCHAR tmp; - TCHAR inbuf[IOBUFFERS]; - int op; + int ident = 0; + TCHAR tmp; + TCHAR inbuf[IOBUFFERS]; + int op; - _tcscpy (inbuf, ins); - TCHAR *in = inbuf; - TCHAR *p = out; - op = 0; - if (in[0] == '-' || in[0] == '+') { - *p++ = '0'; - } - while (*in) { - TCHAR *instart = in; - if (_istdigit (*in)) { - if (ident >= MAX_VALUES) - return false; - if (op > 1 && (in[-1] == '-' || in[-1] == '+')) { - instart--; - p--; - } - *p++ = ident + 'a'; - while (_istdigit (*in) || *in == '.') - in++; - tmp = *in; - *in = 0; - parsedvalues[ident++] = _tstof (instart); - *in = tmp; - op = 0; - } else { - if (is_operator(*in)) - op++; - *p++ = *in++; - } - } - *p = 0; - return true; + _tcscpy (inbuf, ins); + TCHAR *in = inbuf; + TCHAR *p = out; + op = 0; + if (in[0] == '-' || in[0] == '+') + { + *p++ = '0'; + } + while (*in) + { + TCHAR *instart = in; + if (_istdigit (*in)) + { + if (ident >= MAX_VALUES) + return false; + if (op > 1 && (in[-1] == '-' || in[-1] == '+')) + { + instart--; + p--; + } + *p++ = ident + 'a'; + while (_istdigit (*in) || *in == '.') + in++; + tmp = *in; + *in = 0; + parsedvalues[ident++] = _tstof (instart); + *in = tmp; + op = 0; + } + else + { + if (is_operator(*in)) + op++; + *p++ = *in++; + } + } + *p = 0; + return true; } bool calc(const TCHAR *input, double *outval) { TCHAR output[IOBUFFERS], output2[IOBUFFERS]; calc_log ((_T("IN: '%s'\n"), input)); - if (parse_values(input, output2)) { - if(shunting_yard(output2, output)) { - calc_log ((_T("RPN OUT: %s\n"), output)); - if(!execution_order(output, outval)) { - calc_log ((_T("PARSE ERROR!\n"))); - } else { - return true; - } - } + if (parse_values(input, output2)) + { + if(shunting_yard(output2, output)) + { + calc_log ((_T("RPN OUT: %s\n"), output)); + if(!execution_order(output, outval)) + { + calc_log ((_T("PARSE ERROR!\n"))); + } + else + { + return true; + } + } } return false; } bool iscalcformula (const TCHAR *formula) { - for (int i = 0; i < _tcslen (formula); i++) { - TCHAR c = formula[i]; - if (is_operator (c)) - return true; - } - return false; + for (int i = 0; i < _tcslen (formula); i++) + { + TCHAR c = formula[i]; + if (is_operator (c)) + return true; + } + return false; } diff --git a/src/cdrom.cpp b/src/cdrom.cpp index 793760a7..dbdc423d 100644 --- a/src/cdrom.cpp +++ b/src/cdrom.cpp @@ -25,210 +25,224 @@ static const uae_u32 EDC_crctable[256] = { - 0x00000000L, 0x90910101L, 0x91210201L, 0x01B00300L, - 0x92410401L, 0x02D00500L, 0x03600600L, 0x93F10701L, - 0x94810801L, 0x04100900L, 0x05A00A00L, 0x95310B01L, - 0x06C00C00L, 0x96510D01L, 0x97E10E01L, 0x07700F00L, - 0x99011001L, 0x09901100L, 0x08201200L, 0x98B11301L, - 0x0B401400L, 0x9BD11501L, 0x9A611601L, 0x0AF01700L, - 0x0D801800L, 0x9D111901L, 0x9CA11A01L, 0x0C301B00L, - 0x9FC11C01L, 0x0F501D00L, 0x0EE01E00L, 0x9E711F01L, - 0x82012001L, 0x12902100L, 0x13202200L, 0x83B12301L, - 0x10402400L, 0x80D12501L, 0x81612601L, 0x11F02700L, - 0x16802800L, 0x86112901L, 0x87A12A01L, 0x17302B00L, - 0x84C12C01L, 0x14502D00L, 0x15E02E00L, 0x85712F01L, - 0x1B003000L, 0x8B913101L, 0x8A213201L, 0x1AB03300L, - 0x89413401L, 0x19D03500L, 0x18603600L, 0x88F13701L, - 0x8F813801L, 0x1F103900L, 0x1EA03A00L, 0x8E313B01L, - 0x1DC03C00L, 0x8D513D01L, 0x8CE13E01L, 0x1C703F00L, - 0xB4014001L, 0x24904100L, 0x25204200L, 0xB5B14301L, - 0x26404400L, 0xB6D14501L, 0xB7614601L, 0x27F04700L, - 0x20804800L, 0xB0114901L, 0xB1A14A01L, 0x21304B00L, - 0xB2C14C01L, 0x22504D00L, 0x23E04E00L, 0xB3714F01L, - 0x2D005000L, 0xBD915101L, 0xBC215201L, 0x2CB05300L, - 0xBF415401L, 0x2FD05500L, 0x2E605600L, 0xBEF15701L, - 0xB9815801L, 0x29105900L, 0x28A05A00L, 0xB8315B01L, - 0x2BC05C00L, 0xBB515D01L, 0xBAE15E01L, 0x2A705F00L, - 0x36006000L, 0xA6916101L, 0xA7216201L, 0x37B06300L, - 0xA4416401L, 0x34D06500L, 0x35606600L, 0xA5F16701L, - 0xA2816801L, 0x32106900L, 0x33A06A00L, 0xA3316B01L, - 0x30C06C00L, 0xA0516D01L, 0xA1E16E01L, 0x31706F00L, - 0xAF017001L, 0x3F907100L, 0x3E207200L, 0xAEB17301L, - 0x3D407400L, 0xADD17501L, 0xAC617601L, 0x3CF07700L, - 0x3B807800L, 0xAB117901L, 0xAAA17A01L, 0x3A307B00L, - 0xA9C17C01L, 0x39507D00L, 0x38E07E00L, 0xA8717F01L, - 0xD8018001L, 0x48908100L, 0x49208200L, 0xD9B18301L, - 0x4A408400L, 0xDAD18501L, 0xDB618601L, 0x4BF08700L, - 0x4C808800L, 0xDC118901L, 0xDDA18A01L, 0x4D308B00L, - 0xDEC18C01L, 0x4E508D00L, 0x4FE08E00L, 0xDF718F01L, - 0x41009000L, 0xD1919101L, 0xD0219201L, 0x40B09300L, - 0xD3419401L, 0x43D09500L, 0x42609600L, 0xD2F19701L, - 0xD5819801L, 0x45109900L, 0x44A09A00L, 0xD4319B01L, - 0x47C09C00L, 0xD7519D01L, 0xD6E19E01L, 0x46709F00L, - 0x5A00A000L, 0xCA91A101L, 0xCB21A201L, 0x5BB0A300L, - 0xC841A401L, 0x58D0A500L, 0x5960A600L, 0xC9F1A701L, - 0xCE81A801L, 0x5E10A900L, 0x5FA0AA00L, 0xCF31AB01L, - 0x5CC0AC00L, 0xCC51AD01L, 0xCDE1AE01L, 0x5D70AF00L, - 0xC301B001L, 0x5390B100L, 0x5220B200L, 0xC2B1B301L, - 0x5140B400L, 0xC1D1B501L, 0xC061B601L, 0x50F0B700L, - 0x5780B800L, 0xC711B901L, 0xC6A1BA01L, 0x5630BB00L, - 0xC5C1BC01L, 0x5550BD00L, 0x54E0BE00L, 0xC471BF01L, - 0x6C00C000L, 0xFC91C101L, 0xFD21C201L, 0x6DB0C300L, - 0xFE41C401L, 0x6ED0C500L, 0x6F60C600L, 0xFFF1C701L, - 0xF881C801L, 0x6810C900L, 0x69A0CA00L, 0xF931CB01L, - 0x6AC0CC00L, 0xFA51CD01L, 0xFBE1CE01L, 0x6B70CF00L, - 0xF501D001L, 0x6590D100L, 0x6420D200L, 0xF4B1D301L, - 0x6740D400L, 0xF7D1D501L, 0xF661D601L, 0x66F0D700L, - 0x6180D800L, 0xF111D901L, 0xF0A1DA01L, 0x6030DB00L, - 0xF3C1DC01L, 0x6350DD00L, 0x62E0DE00L, 0xF271DF01L, - 0xEE01E001L, 0x7E90E100L, 0x7F20E200L, 0xEFB1E301L, - 0x7C40E400L, 0xECD1E501L, 0xED61E601L, 0x7DF0E700L, - 0x7A80E800L, 0xEA11E901L, 0xEBA1EA01L, 0x7B30EB00L, - 0xE8C1EC01L, 0x7850ED00L, 0x79E0EE00L, 0xE971EF01L, - 0x7700F000L, 0xE791F101L, 0xE621F201L, 0x76B0F300L, - 0xE541F401L, 0x75D0F500L, 0x7460F600L, 0xE4F1F701L, - 0xE381F801L, 0x7310F900L, 0x72A0FA00L, 0xE231FB01L, - 0x71C0FC00L, 0xE151FD01L, 0xE0E1FE01L, 0x7070FF00L + 0x00000000L, 0x90910101L, 0x91210201L, 0x01B00300L, + 0x92410401L, 0x02D00500L, 0x03600600L, 0x93F10701L, + 0x94810801L, 0x04100900L, 0x05A00A00L, 0x95310B01L, + 0x06C00C00L, 0x96510D01L, 0x97E10E01L, 0x07700F00L, + 0x99011001L, 0x09901100L, 0x08201200L, 0x98B11301L, + 0x0B401400L, 0x9BD11501L, 0x9A611601L, 0x0AF01700L, + 0x0D801800L, 0x9D111901L, 0x9CA11A01L, 0x0C301B00L, + 0x9FC11C01L, 0x0F501D00L, 0x0EE01E00L, 0x9E711F01L, + 0x82012001L, 0x12902100L, 0x13202200L, 0x83B12301L, + 0x10402400L, 0x80D12501L, 0x81612601L, 0x11F02700L, + 0x16802800L, 0x86112901L, 0x87A12A01L, 0x17302B00L, + 0x84C12C01L, 0x14502D00L, 0x15E02E00L, 0x85712F01L, + 0x1B003000L, 0x8B913101L, 0x8A213201L, 0x1AB03300L, + 0x89413401L, 0x19D03500L, 0x18603600L, 0x88F13701L, + 0x8F813801L, 0x1F103900L, 0x1EA03A00L, 0x8E313B01L, + 0x1DC03C00L, 0x8D513D01L, 0x8CE13E01L, 0x1C703F00L, + 0xB4014001L, 0x24904100L, 0x25204200L, 0xB5B14301L, + 0x26404400L, 0xB6D14501L, 0xB7614601L, 0x27F04700L, + 0x20804800L, 0xB0114901L, 0xB1A14A01L, 0x21304B00L, + 0xB2C14C01L, 0x22504D00L, 0x23E04E00L, 0xB3714F01L, + 0x2D005000L, 0xBD915101L, 0xBC215201L, 0x2CB05300L, + 0xBF415401L, 0x2FD05500L, 0x2E605600L, 0xBEF15701L, + 0xB9815801L, 0x29105900L, 0x28A05A00L, 0xB8315B01L, + 0x2BC05C00L, 0xBB515D01L, 0xBAE15E01L, 0x2A705F00L, + 0x36006000L, 0xA6916101L, 0xA7216201L, 0x37B06300L, + 0xA4416401L, 0x34D06500L, 0x35606600L, 0xA5F16701L, + 0xA2816801L, 0x32106900L, 0x33A06A00L, 0xA3316B01L, + 0x30C06C00L, 0xA0516D01L, 0xA1E16E01L, 0x31706F00L, + 0xAF017001L, 0x3F907100L, 0x3E207200L, 0xAEB17301L, + 0x3D407400L, 0xADD17501L, 0xAC617601L, 0x3CF07700L, + 0x3B807800L, 0xAB117901L, 0xAAA17A01L, 0x3A307B00L, + 0xA9C17C01L, 0x39507D00L, 0x38E07E00L, 0xA8717F01L, + 0xD8018001L, 0x48908100L, 0x49208200L, 0xD9B18301L, + 0x4A408400L, 0xDAD18501L, 0xDB618601L, 0x4BF08700L, + 0x4C808800L, 0xDC118901L, 0xDDA18A01L, 0x4D308B00L, + 0xDEC18C01L, 0x4E508D00L, 0x4FE08E00L, 0xDF718F01L, + 0x41009000L, 0xD1919101L, 0xD0219201L, 0x40B09300L, + 0xD3419401L, 0x43D09500L, 0x42609600L, 0xD2F19701L, + 0xD5819801L, 0x45109900L, 0x44A09A00L, 0xD4319B01L, + 0x47C09C00L, 0xD7519D01L, 0xD6E19E01L, 0x46709F00L, + 0x5A00A000L, 0xCA91A101L, 0xCB21A201L, 0x5BB0A300L, + 0xC841A401L, 0x58D0A500L, 0x5960A600L, 0xC9F1A701L, + 0xCE81A801L, 0x5E10A900L, 0x5FA0AA00L, 0xCF31AB01L, + 0x5CC0AC00L, 0xCC51AD01L, 0xCDE1AE01L, 0x5D70AF00L, + 0xC301B001L, 0x5390B100L, 0x5220B200L, 0xC2B1B301L, + 0x5140B400L, 0xC1D1B501L, 0xC061B601L, 0x50F0B700L, + 0x5780B800L, 0xC711B901L, 0xC6A1BA01L, 0x5630BB00L, + 0xC5C1BC01L, 0x5550BD00L, 0x54E0BE00L, 0xC471BF01L, + 0x6C00C000L, 0xFC91C101L, 0xFD21C201L, 0x6DB0C300L, + 0xFE41C401L, 0x6ED0C500L, 0x6F60C600L, 0xFFF1C701L, + 0xF881C801L, 0x6810C900L, 0x69A0CA00L, 0xF931CB01L, + 0x6AC0CC00L, 0xFA51CD01L, 0xFBE1CE01L, 0x6B70CF00L, + 0xF501D001L, 0x6590D100L, 0x6420D200L, 0xF4B1D301L, + 0x6740D400L, 0xF7D1D501L, 0xF661D601L, 0x66F0D700L, + 0x6180D800L, 0xF111D901L, 0xF0A1DA01L, 0x6030DB00L, + 0xF3C1DC01L, 0x6350DD00L, 0x62E0DE00L, 0xF271DF01L, + 0xEE01E001L, 0x7E90E100L, 0x7F20E200L, 0xEFB1E301L, + 0x7C40E400L, 0xECD1E501L, 0xED61E601L, 0x7DF0E700L, + 0x7A80E800L, 0xEA11E901L, 0xEBA1EA01L, 0x7B30EB00L, + 0xE8C1EC01L, 0x7850ED00L, 0x79E0EE00L, 0xE971EF01L, + 0x7700F000L, 0xE791F101L, 0xE621F201L, 0x76B0F300L, + 0xE541F401L, 0x75D0F500L, 0x7460F600L, 0xE4F1F701L, + 0xE381F801L, 0x7310F900L, 0x72A0FA00L, 0xE231FB01L, + 0x71C0FC00L, 0xE151FD01L, 0xE0E1FE01L, 0x7070FF00L }; /*****************************************************************/ /* End of CRC Lookup Table */ /*****************************************************************/ -static uae_u8 rs_l12_alog[255] = { - 1, 2, 4, 8,16,32,64,128,29,58,116,232,205,135,19,38,76,152,45,90,180,117,234,201,143, 3, 6,12,24,48,96,192,157,39,78,156,37,74,148,53,106,212,181,119,238,193,159,35,70,140, 5,10,20,40,80,160,93,186,105,210,185,111,222,161,95,190,97,194,153,47,94,188,101,202,137,15,30,60,120,240,253,231,211,187,107,214,177,127,254,225,223,163,91,182,113,226,217,175,67,134,17,34,68,136,13,26,52,104,208,189,103,206,129,31,62,124,248,237,199,147,59,118,236,197,151,51,102,204,133,23,46,92,184,109,218,169,79,158,33,66,132,21,42,84,168,77,154,41,82,164,85,170,73,146,57,114,228,213,183,115,230,209,191,99,198,145,63,126,252,229,215,179,123,246,241,255,227,219,171,75,150,49,98,196,149,55,110,220,165,87,174,65,130,25,50,100,200,141, 7,14,28,56,112,224,221,167,83,166,81,162,89,178,121,242,249,239,195,155,43,86,172,69,138, 9,18,36,72,144,61,122,244,245,247,243,251,235,203,139,11,22,44,88,176,125,250,233,207,131,27,54,108,216,173,71,142,}; - static uae_u8 rs_l12_log[256] = { - 0, 0, 1,25, 2,50,26,198, 3,223,51,238,27,104,199,75, 4,100,224,14,52,141,239,129,28,193,105,248,200, 8,76,113, 5,138,101,47,225,36,15,33,53,147,142,218,240,18,130,69,29,181,194,125,106,39,249,185,201,154, 9,120,77,228,114,166, 6,191,139,98,102,221,48,253,226,152,37,179,16,145,34,136,54,208,148,206,143,150,219,189,241,210,19,92,131,56,70,64,30,66,182,163,195,72,126,110,107,58,40,84,250,133,186,61,202,94,155,159,10,21,121,43,78,212,229,172,115,243,167,87, 7,112,192,247,140,128,99,13,103,74,222,237,49,197,254,24,227,165,153,119,38,184,180,124,17,68,146,217,35,32,137,46,55,63,209,91,149,188,207,205,144,135,151,178,220,252,190,97,242,86,211,171,20,42,93,158,132,60,57,83,71,109,65,162,31,45,67,216,183,123,164,118,196,23,73,236,127,12,111,246,108,161,59,82,41,157,85,170,251,96,134,177,187,204,62,90,203,89,95,176,156,169,160,81,11,245,22,235,122,117,44,215,79,174,213,233,230,231,173,232,116,214,244,234,168,80,88,175,}; - static uae_u8 DQ[2][43] = { - {190,96,250,132,59,81,159,154,200,7,111,245,10,20,41,156,168,79,173,231,229,171,210,240,17,67,215,43,120,8,199,74,102,220,251,95,175,87,166,113,75,198,25,}, - {97,251,133,60,82,160,155,201,8,112,246,11,21,42,157,169,80,174,232,230,172,211,241,18,68,216,44,121,9,200,75,103,221,252,96,176,88,167,114,76,199,26,1,}, - }; - static uae_u8 DP[2][24] = { - {231,229,171,210,240,17,67,215,43,120,8,199,74,102,220,251,95,175,87,166,113,75,198,25,}, - {230,172,211,241,18,68,216,44,121,9,200,75,103,221,252,96,176,88,167,114,76,199,26,1,}, - }; +static uae_u8 rs_l12_alog[255] = +{ + 1, 2, 4, 8,16,32,64,128,29,58,116,232,205,135,19,38,76,152,45,90,180,117,234,201,143, 3, 6,12,24,48,96,192,157,39,78,156,37,74,148,53,106,212,181,119,238,193,159,35,70,140, 5,10,20,40,80,160,93,186,105,210,185,111,222,161,95,190,97,194,153,47,94,188,101,202,137,15,30,60,120,240,253,231,211,187,107,214,177,127,254,225,223,163,91,182,113,226,217,175,67,134,17,34,68,136,13,26,52,104,208,189,103,206,129,31,62,124,248,237,199,147,59,118,236,197,151,51,102,204,133,23,46,92,184,109,218,169,79,158,33,66,132,21,42,84,168,77,154,41,82,164,85,170,73,146,57,114,228,213,183,115,230,209,191,99,198,145,63,126,252,229,215,179,123,246,241,255,227,219,171,75,150,49,98,196,149,55,110,220,165,87,174,65,130,25,50,100,200,141, 7,14,28,56,112,224,221,167,83,166,81,162,89,178,121,242,249,239,195,155,43,86,172,69,138, 9,18,36,72,144,61,122,244,245,247,243,251,235,203,139,11,22,44,88,176,125,250,233,207,131,27,54,108,216,173,71,142, +}; +static uae_u8 rs_l12_log[256] = +{ + 0, 0, 1,25, 2,50,26,198, 3,223,51,238,27,104,199,75, 4,100,224,14,52,141,239,129,28,193,105,248,200, 8,76,113, 5,138,101,47,225,36,15,33,53,147,142,218,240,18,130,69,29,181,194,125,106,39,249,185,201,154, 9,120,77,228,114,166, 6,191,139,98,102,221,48,253,226,152,37,179,16,145,34,136,54,208,148,206,143,150,219,189,241,210,19,92,131,56,70,64,30,66,182,163,195,72,126,110,107,58,40,84,250,133,186,61,202,94,155,159,10,21,121,43,78,212,229,172,115,243,167,87, 7,112,192,247,140,128,99,13,103,74,222,237,49,197,254,24,227,165,153,119,38,184,180,124,17,68,146,217,35,32,137,46,55,63,209,91,149,188,207,205,144,135,151,178,220,252,190,97,242,86,211,171,20,42,93,158,132,60,57,83,71,109,65,162,31,45,67,216,183,123,164,118,196,23,73,236,127,12,111,246,108,161,59,82,41,157,85,170,251,96,134,177,187,204,62,90,203,89,95,176,156,169,160,81,11,245,22,235,122,117,44,215,79,174,213,233,230,231,173,232,116,214,244,234,168,80,88,175, +}; +static uae_u8 DQ[2][43] = +{ + {190,96,250,132,59,81,159,154,200,7,111,245,10,20,41,156,168,79,173,231,229,171,210,240,17,67,215,43,120,8,199,74,102,220,251,95,175,87,166,113,75,198,25,}, + {97,251,133,60,82,160,155,201,8,112,246,11,21,42,157,169,80,174,232,230,172,211,241,18,68,216,44,121,9,200,75,103,221,252,96,176,88,167,114,76,199,26,1,}, +}; +static uae_u8 DP[2][24] = +{ + {231,229,171,210,240,17,67,215,43,120,8,199,74,102,220,251,95,175,87,166,113,75,198,25,}, + {230,172,211,241,18,68,216,44,121,9,200,75,103,221,252,96,176,88,167,114,76,199,26,1,}, +}; - /* data sector definitions for RSPC */ - /* user data bytes per frame */ +/* data sector definitions for RSPC */ +/* user data bytes per frame */ #define L2_RAW (1024*2) - /* parity bytes for 16 bit units */ +/* parity bytes for 16 bit units */ #define L2_Q (26*2*2) #define L2_P (43*2*2) #define RS_L12_BITS 8 - static uae_u32 build_edc (const uae_u8 *inout, int from, int upto) - { - const uae_u8 *p = inout + from; - uae_u32 result = 0; - for (; from <= upto; from++) - result = EDC_crctable[(result ^ *p++) & 0xff] ^ (result >> 8); - return result; - } +static uae_u32 build_edc (const uae_u8 *inout, int from, int upto) +{ + const uae_u8 *p = inout + from; + uae_u32 result = 0; + for (; from <= upto; from++) + result = EDC_crctable[(result ^ *p++) & 0xff] ^ (result >> 8); + return result; +} - static void encode_L2_Q(uae_u8 *inout) - { - uae_u8 *Q; - int i,j; +static void encode_L2_Q(uae_u8 *inout) +{ + uae_u8 *Q; + int i,j; - Q = inout + 4 + L2_RAW + 4 + 8 + L2_P; - memset(Q, 0, L2_Q); - for (j = 0; j < 26; j++) { - for (i = 0; i < 43; i++) { - uae_u8 data; - /* LSB */ - data = inout[(j*43*2+i*2*44) % (4 + L2_RAW + 4 + 8 + L2_P)]; - if (data != 0) { - uae_u32 base = rs_l12_log[data]; - uae_u32 sum = base + DQ[0][i]; - if (sum >= ((1 << RS_L12_BITS)-1)) - sum -= (1 << RS_L12_BITS)-1; - Q[0] ^= rs_l12_alog[sum]; - sum = base + DQ[1][i]; - if (sum >= ((1 << RS_L12_BITS)-1)) - sum -= (1 << RS_L12_BITS)-1; - Q[26*2] ^= rs_l12_alog[sum]; - } - /* MSB */ - data = inout[(j*43*2+i*2*44+1) % (4 + L2_RAW + 4 + 8 + L2_P)]; - if (data != 0) { - uae_u32 base = rs_l12_log[data]; - uae_u32 sum = base+DQ[0][i]; - if (sum >= ((1 << RS_L12_BITS)-1)) - sum -= (1 << RS_L12_BITS)-1; - Q[1] ^= rs_l12_alog[sum]; - sum = base + DQ[1][i]; - if (sum >= ((1 << RS_L12_BITS)-1)) - sum -= (1 << RS_L12_BITS)-1; - Q[26*2+1] ^= rs_l12_alog[sum]; - } - } - Q += 2; - } - } + Q = inout + 4 + L2_RAW + 4 + 8 + L2_P; + memset(Q, 0, L2_Q); + for (j = 0; j < 26; j++) + { + for (i = 0; i < 43; i++) + { + uae_u8 data; + /* LSB */ + data = inout[(j*43*2+i*2*44) % (4 + L2_RAW + 4 + 8 + L2_P)]; + if (data != 0) + { + uae_u32 base = rs_l12_log[data]; + uae_u32 sum = base + DQ[0][i]; + if (sum >= ((1 << RS_L12_BITS)-1)) + sum -= (1 << RS_L12_BITS)-1; + Q[0] ^= rs_l12_alog[sum]; + sum = base + DQ[1][i]; + if (sum >= ((1 << RS_L12_BITS)-1)) + sum -= (1 << RS_L12_BITS)-1; + Q[26*2] ^= rs_l12_alog[sum]; + } + /* MSB */ + data = inout[(j*43*2+i*2*44+1) % (4 + L2_RAW + 4 + 8 + L2_P)]; + if (data != 0) + { + uae_u32 base = rs_l12_log[data]; + uae_u32 sum = base+DQ[0][i]; + if (sum >= ((1 << RS_L12_BITS)-1)) + sum -= (1 << RS_L12_BITS)-1; + Q[1] ^= rs_l12_alog[sum]; + sum = base + DQ[1][i]; + if (sum >= ((1 << RS_L12_BITS)-1)) + sum -= (1 << RS_L12_BITS)-1; + Q[26*2+1] ^= rs_l12_alog[sum]; + } + } + Q += 2; + } +} - static void encode_L2_P(uae_u8 inout[4 + L2_RAW + 4 + 8 + L2_P]) - { - uae_u8 *P; - int i,j; +static void encode_L2_P(uae_u8 inout[4 + L2_RAW + 4 + 8 + L2_P]) +{ + uae_u8 *P; + int i,j; - P = inout + 4 + L2_RAW + 4 + 8; - memset(P, 0, L2_P); - for (j = 0; j < 43; j++) { - for (i = 0; i < 24; i++) { - uae_u8 data; - /* LSB */ - data = inout[i*2*43]; - if (data != 0) { - uae_u32 base = rs_l12_log[data]; - uae_u32 sum = base + DP[0][i]; - if (sum >= ((1 << RS_L12_BITS)-1)) - sum -= (1 << RS_L12_BITS)-1; - P[0] ^= rs_l12_alog[sum]; - sum = base + DP[1][i]; - if (sum >= ((1 << RS_L12_BITS)-1)) - sum -= (1 << RS_L12_BITS)-1; - P[43*2] ^= rs_l12_alog[sum]; - } - /* MSB */ - data = inout[i*2*43+1]; - if (data != 0) { - uae_u32 base = rs_l12_log[data]; - uae_u32 sum = base + DP[0][i]; - if (sum >= ((1 << RS_L12_BITS)-1)) - sum -= (1 << RS_L12_BITS)-1; - P[1] ^= rs_l12_alog[sum]; - sum = base + DP[1][i]; - if (sum >= ((1 << RS_L12_BITS)-1)) - sum -= (1 << RS_L12_BITS)-1; - P[43*2+1] ^= rs_l12_alog[sum]; - } - } - P += 2; - inout += 2; - } - } + P = inout + 4 + L2_RAW + 4 + 8; + memset(P, 0, L2_P); + for (j = 0; j < 43; j++) + { + for (i = 0; i < 24; i++) + { + uae_u8 data; + /* LSB */ + data = inout[i*2*43]; + if (data != 0) + { + uae_u32 base = rs_l12_log[data]; + uae_u32 sum = base + DP[0][i]; + if (sum >= ((1 << RS_L12_BITS)-1)) + sum -= (1 << RS_L12_BITS)-1; + P[0] ^= rs_l12_alog[sum]; + sum = base + DP[1][i]; + if (sum >= ((1 << RS_L12_BITS)-1)) + sum -= (1 << RS_L12_BITS)-1; + P[43*2] ^= rs_l12_alog[sum]; + } + /* MSB */ + data = inout[i*2*43+1]; + if (data != 0) + { + uae_u32 base = rs_l12_log[data]; + uae_u32 sum = base + DP[0][i]; + if (sum >= ((1 << RS_L12_BITS)-1)) + sum -= (1 << RS_L12_BITS)-1; + P[1] ^= rs_l12_alog[sum]; + sum = base + DP[1][i]; + if (sum >= ((1 << RS_L12_BITS)-1)) + sum -= (1 << RS_L12_BITS)-1; + P[43*2+1] ^= rs_l12_alog[sum]; + } + } + P += 2; + inout += 2; + } +} - static uae_u8 tobcd (uae_u8 v) - { - return ((v / 10) << 4) | (v % 10); - } +static uae_u8 tobcd (uae_u8 v) +{ + return ((v / 10) << 4) | (v % 10); +} - void encode_l2 (uae_u8 *p, int address) - { - uae_u32 v; +void encode_l2 (uae_u8 *p, int address) +{ + uae_u32 v; - p[0] = 0x00; - memset (p + 1, 0xff, 11); - p[12] = tobcd ((uae_u8)(address / (60 * 75))); - p[13] = tobcd ((uae_u8)((address / 75) % 60)); - p[14] = tobcd ((uae_u8)(address % 75)); - p[15] = 1; /* MODE1 */ - v = build_edc (p, 0, 16 + 2048 - 1); - p[2064 + 0] = (uae_u8) (v >> 0); - p[2064 + 1] = (uae_u8) (v >> 8); - p[2064 + 2] = (uae_u8) (v >> 16); - p[2064 + 3] = (uae_u8) (v >> 24); - memset (p + 2064 + 4, 0, 8); - encode_L2_P (p + 12); - encode_L2_Q (p + 12); - } + p[0] = 0x00; + memset (p + 1, 0xff, 11); + p[12] = tobcd ((uae_u8)(address / (60 * 75))); + p[13] = tobcd ((uae_u8)((address / 75) % 60)); + p[14] = tobcd ((uae_u8)(address % 75)); + p[15] = 1; /* MODE1 */ + v = build_edc (p, 0, 16 + 2048 - 1); + p[2064 + 0] = (uae_u8) (v >> 0); + p[2064 + 1] = (uae_u8) (v >> 8); + p[2064 + 2] = (uae_u8) (v >> 16); + p[2064 + 3] = (uae_u8) (v >> 24); + memset (p + 2064 + 4, 0, 8); + encode_L2_P (p + 12); + encode_L2_Q (p + 12); +} diff --git a/src/cfgfile.cpp b/src/cfgfile.cpp index 657c115b..75b4ec12 100644 --- a/src/cfgfile.cpp +++ b/src/cfgfile.cpp @@ -1,11 +1,11 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Config file handling - * This still needs some thought before it's complete... - * - * Copyright 1998 Brian King, Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Config file handling + * This still needs some thought before it's complete... + * + * Copyright 1998 Brian King, Bernd Schmidt + */ #include "sysconfig.h" #include "sysdeps.h" @@ -19,7 +19,7 @@ #include "custom.h" #include "inputdevice.h" #include "savestate.h" -#include "memory.h" +#include "include/memory.h" #include "rommgr.h" #include "gui.h" #include "newcpu.h" @@ -42,7 +42,7 @@ static int uaeconfig; * as a help text. */ struct cfg_lines { - const TCHAR *config_label, *config_help; + const TCHAR *config_label, *config_help; }; static const TCHAR *guimode1[] = { _T("no"), _T("yes"), _T("nowait"), 0 }; @@ -67,15 +67,16 @@ static const TCHAR *cdconmodes[] = { _T(""), _T("uae"), _T("ide"), _T("scsi"), _ static const TCHAR *rtgtype[] = { _T("ZorroII"), _T("ZorroIII"), 0 }; static const TCHAR *waitblits[] = { _T("disabled"), _T("automatic"), _T("noidleonly"), _T("always"), 0 }; -static const TCHAR *obsolete[] = { - _T("accuracy"), _T("gfx_opengl"), _T("gfx_32bit_blits"), _T("32bit_blits"), - _T("gfx_immediate_blits"), _T("gfx_ntsc"), _T("win32"), _T("gfx_filter_bits"), - _T("sound_pri_cutoff"), _T("sound_pri_time"), _T("sound_min_buff"), _T("sound_bits"), - _T("gfx_test_speed"), _T("gfxlib_replacement"), _T("enforcer"), _T("catweasel_io"), - _T("kickstart_key_file"), _T("sound_adjust"), _T("sound_latency"), - _T("serial_hardware_dtrdsr"), _T("gfx_filter_upscale"), - _T("gfx_autoscale"), _T("parallel_sampler"), _T("parallel_ascii_emulation"), - _T("avoid_vid"), _T("avoid_dga"), _T("z3chipmem_size"), _T("state_replay_buffer"), _T("state_replay"), +static const TCHAR *obsolete[] = +{ + _T("accuracy"), _T("gfx_opengl"), _T("gfx_32bit_blits"), _T("32bit_blits"), + _T("gfx_immediate_blits"), _T("gfx_ntsc"), _T("win32"), _T("gfx_filter_bits"), + _T("sound_pri_cutoff"), _T("sound_pri_time"), _T("sound_min_buff"), _T("sound_bits"), + _T("gfx_test_speed"), _T("gfxlib_replacement"), _T("enforcer"), _T("catweasel_io"), + _T("kickstart_key_file"), _T("sound_adjust"), _T("sound_latency"), + _T("serial_hardware_dtrdsr"), _T("gfx_filter_upscale"), + _T("gfx_autoscale"), _T("parallel_sampler"), _T("parallel_ascii_emulation"), + _T("avoid_vid"), _T("avoid_dga"), _T("z3chipmem_size"), _T("state_replay_buffer"), _T("state_replay"), NULL }; @@ -83,1399 +84,1562 @@ static const TCHAR *obsolete[] = { static void trimwsa (char *s) { - /* Delete trailing whitespace. */ - int len = strlen (s); - while (len > 0 && strcspn (s + len - 1, "\t \r\n") == 0) - s[--len] = '\0'; + /* Delete trailing whitespace. */ + int len = strlen (s); + while (len > 0 && strcspn (s + len - 1, "\t \r\n") == 0) + s[--len] = '\0'; } static int match_string (const TCHAR *table[], const TCHAR *str) { - int i; - for (i = 0; table[i] != 0; i++) - if (strcasecmp (table[i], str) == 0) - return i; - return -1; + int i; + for (i = 0; table[i] != 0; i++) + if (strcasecmp (table[i], str) == 0) + return i; + return -1; } static TCHAR *cfgfile_subst_path2 (const TCHAR *path, const TCHAR *subst, const TCHAR *file) { - /* @@@ use strcasecmp for some targets. */ - if (_tcslen (path) > 0 && _tcsncmp (file, path, _tcslen (path)) == 0) { - int l; - TCHAR *p2, *p = xmalloc (TCHAR, _tcslen (file) + _tcslen (subst) + 2); - _tcscpy (p, subst); - l = _tcslen (p); - while (l > 0 && p[l - 1] == '/') - p[--l] = '\0'; - l = _tcslen (path); - while (file[l] == '/') - l++; - _tcscat (p, _T("/")); - _tcscat (p, file + l); - p2 = target_expand_environment (p); - xfree (p); - return p2; - } - return NULL; + /* @@@ use strcasecmp for some targets. */ + if (_tcslen (path) > 0 && _tcsncmp (file, path, _tcslen (path)) == 0) + { + int l; + TCHAR *p2, *p = xmalloc (TCHAR, _tcslen (file) + _tcslen (subst) + 2); + _tcscpy (p, subst); + l = _tcslen (p); + while (l > 0 && p[l - 1] == '/') + p[--l] = '\0'; + l = _tcslen (path); + while (file[l] == '/') + l++; + _tcscat (p, _T("/")); + _tcscat (p, file + l); + p2 = target_expand_environment (p); + xfree (p); + return p2; + } + return NULL; } TCHAR *cfgfile_subst_path (const TCHAR *path, const TCHAR *subst, const TCHAR *file) { - TCHAR *s = cfgfile_subst_path2 (path, subst, file); - if (s) - return s; - s = target_expand_environment (file); - return s; + TCHAR *s = cfgfile_subst_path2 (path, subst, file); + if (s) + return s; + s = target_expand_environment (file); + return s; } static bool isdefault (const TCHAR *s) { - TCHAR tmp[MAX_DPATH]; - if (!default_file || uaeconfig) - return false; - zfile_fseek (default_file, 0, SEEK_SET); - while (zfile_fgets (tmp, sizeof tmp / sizeof (TCHAR), default_file)) { - if (tmp[0] && tmp[_tcslen (tmp) - 1] == '\n') - tmp[_tcslen (tmp) - 1] = 0; - if (!_tcscmp (tmp, s)) - return true; - } - return false; + TCHAR tmp[MAX_DPATH]; + if (!default_file || uaeconfig) + return false; + zfile_fseek (default_file, 0, SEEK_SET); + while (zfile_fgets (tmp, sizeof tmp / sizeof (TCHAR), default_file)) + { + if (tmp[0] && tmp[_tcslen (tmp) - 1] == '\n') + tmp[_tcslen (tmp) - 1] = 0; + if (!_tcscmp (tmp, s)) + return true; + } + return false; } static size_t cfg_write (const void *b, struct zfile *z) { - size_t v; - TCHAR lf = 10; - v = zfile_fwrite ((void *)b, _tcslen ((TCHAR*)b), sizeof (TCHAR), z); - zfile_fwrite (&lf, 1, 1, z); - return v; + size_t v; + TCHAR lf = 10; + v = zfile_fwrite ((void *)b, _tcslen ((TCHAR*)b), sizeof (TCHAR), z); + zfile_fwrite (&lf, 1, 1, z); + return v; } #define UTF8NAME _T(".utf8") static void cfg_dowrite (struct zfile *f, const TCHAR *option, const TCHAR *value, int d, int target) { - TCHAR tmp[CONFIG_BLEN]; + TCHAR tmp[CONFIG_BLEN]; - if (value == NULL) - return; + if (value == NULL) + return; - if (target) - _stprintf (tmp, _T("%s.%s=%s"), TARGET_NAME, option, value); - else - _stprintf (tmp, _T("%s=%s"), option, value); - if (d && isdefault (tmp)) - goto end; - cfg_write (tmp, f); -end:; + if (target) + _stprintf (tmp, _T("%s.%s=%s"), TARGET_NAME, option, value); + else + _stprintf (tmp, _T("%s=%s"), option, value); + if (d && isdefault (tmp)) + goto end; + cfg_write (tmp, f); +end: + ; } void cfgfile_write_bool (struct zfile *f, const TCHAR *option, bool b) { - cfg_dowrite (f, option, b ? _T("true") : _T("false"), 0, 0); + cfg_dowrite (f, option, b ? _T("true") : _T("false"), 0, 0); } void cfgfile_dwrite_bool (struct zfile *f, const TCHAR *option, bool b) { - cfg_dowrite (f, option, b ? _T("true") : _T("false"), 1, 0); + cfg_dowrite (f, option, b ? _T("true") : _T("false"), 1, 0); } void cfgfile_dwrite_bool (struct zfile *f, const TCHAR *option, int b) { - cfgfile_dwrite_bool (f, option, b != 0); + cfgfile_dwrite_bool (f, option, b != 0); } void cfgfile_write_str (struct zfile *f, const TCHAR *option, const TCHAR *value) { - cfg_dowrite (f, option, value, 0, 0); + cfg_dowrite (f, option, value, 0, 0); } void cfgfile_dwrite_str (struct zfile *f, const TCHAR *option, const TCHAR *value) { - cfg_dowrite (f, option, value, 1, 0); + cfg_dowrite (f, option, value, 1, 0); } void cfgfile_target_write_bool (struct zfile *f, const TCHAR *option, bool b) { - cfg_dowrite (f, option, b ? _T("true") : _T("false"), 0, 1); + cfg_dowrite (f, option, b ? _T("true") : _T("false"), 0, 1); } void cfgfile_target_dwrite_bool (struct zfile *f, const TCHAR *option, bool b) { - cfg_dowrite (f, option, b ? _T("true") : _T("false"), 1, 1); + cfg_dowrite (f, option, b ? _T("true") : _T("false"), 1, 1); } void cfgfile_target_write_str (struct zfile *f, const TCHAR *option, const TCHAR *value) { - cfg_dowrite (f, option, value, 0, 1); + cfg_dowrite (f, option, value, 0, 1); } void cfgfile_target_dwrite_str (struct zfile *f, const TCHAR *option, const TCHAR *value) { - cfg_dowrite (f, option, value, 1, 1); + cfg_dowrite (f, option, value, 1, 1); } void cfgfile_write (struct zfile *f, const TCHAR *option, const TCHAR *format,...) { - va_list parms; - TCHAR tmp[CONFIG_BLEN]; + va_list parms; + TCHAR tmp[CONFIG_BLEN]; - va_start (parms, format); - _vsntprintf (tmp, CONFIG_BLEN, format, parms); - cfg_dowrite (f, option, tmp, 0, 0); - va_end (parms); + va_start (parms, format); + _vsntprintf (tmp, CONFIG_BLEN, format, parms); + cfg_dowrite (f, option, tmp, 0, 0); + va_end (parms); } void cfgfile_dwrite (struct zfile *f, const TCHAR *option, const TCHAR *format,...) { - va_list parms; - TCHAR tmp[CONFIG_BLEN]; + va_list parms; + TCHAR tmp[CONFIG_BLEN]; - va_start (parms, format); - _vsntprintf (tmp, CONFIG_BLEN, format, parms); - cfg_dowrite (f, option, tmp, 1, 0); - va_end (parms); + va_start (parms, format); + _vsntprintf (tmp, CONFIG_BLEN, format, parms); + cfg_dowrite (f, option, tmp, 1, 0); + va_end (parms); } void cfgfile_target_write (struct zfile *f, const TCHAR *option, const TCHAR *format,...) { - va_list parms; - TCHAR tmp[CONFIG_BLEN]; + va_list parms; + TCHAR tmp[CONFIG_BLEN]; - va_start (parms, format); - _vsntprintf (tmp, CONFIG_BLEN, format, parms); - cfg_dowrite (f, option, tmp, 0, 1); - va_end (parms); + va_start (parms, format); + _vsntprintf (tmp, CONFIG_BLEN, format, parms); + cfg_dowrite (f, option, tmp, 0, 1); + va_end (parms); } void cfgfile_target_dwrite (struct zfile *f, const TCHAR *option, const TCHAR *format,...) { - va_list parms; - TCHAR tmp[CONFIG_BLEN]; + va_list parms; + TCHAR tmp[CONFIG_BLEN]; - va_start (parms, format); - _vsntprintf (tmp, CONFIG_BLEN, format, parms); - cfg_dowrite (f, option, tmp, 1, 1); - va_end (parms); + va_start (parms, format); + _vsntprintf (tmp, CONFIG_BLEN, format, parms); + cfg_dowrite (f, option, tmp, 1, 1); + va_end (parms); } static void cfgfile_write_rom (struct zfile *f, const TCHAR *path, const TCHAR *romfile, const TCHAR *name) { - TCHAR *str = cfgfile_subst_path (path, UNEXPANDED, romfile); - cfgfile_write_str (f, name, str); - struct zfile *zf = zfile_fopen (str, _T("rb"), ZFD_ALL); - if (zf) { - struct romdata *rd = getromdatabyzfile (zf); - if (rd) { - TCHAR name2[MAX_DPATH], str2[MAX_DPATH]; - _tcscpy (name2, name); - _tcscat (name2, _T("_id")); - _stprintf (str2, _T("%08X,%s"), rd->crc32, rd->name); - cfgfile_write_str (f, name2, str2); - } - zfile_fclose (zf); - } - xfree (str); + TCHAR *str = cfgfile_subst_path (path, UNEXPANDED, romfile); + cfgfile_write_str (f, name, str); + struct zfile *zf = zfile_fopen (str, _T("rb"), ZFD_ALL); + if (zf) + { + struct romdata *rd = getromdatabyzfile (zf); + if (rd) + { + TCHAR name2[MAX_DPATH], str2[MAX_DPATH]; + _tcscpy (name2, name); + _tcscat (name2, _T("_id")); + _stprintf (str2, _T("%08X,%s"), rd->crc32, rd->name); + cfgfile_write_str (f, name2, str2); + } + zfile_fclose (zf); + } + xfree (str); } static void write_filesys_config (struct uae_prefs *p, const TCHAR *unexpanded, - const TCHAR *default_path, struct zfile *f) + const TCHAR *default_path, struct zfile *f) { - int i; - TCHAR tmp[MAX_DPATH], tmp2[MAX_DPATH]; - const TCHAR *hdcontrollers[] = { _T("uae"), - _T("ide0"), _T("ide1"), _T("ide2"), _T("ide3"), - _T("scsi0"), _T("scsi1"), _T("scsi2"), _T("scsi3"), _T("scsi4"), _T("scsi5"), _T("scsi6"), - _T("scsram"), _T("scide") }; /* scsram = smart card sram = pcmcia sram card */ + int i; + TCHAR tmp[MAX_DPATH], tmp2[MAX_DPATH]; + const TCHAR *hdcontrollers[] = { _T("uae"), + _T("ide0"), _T("ide1"), _T("ide2"), _T("ide3"), + _T("scsi0"), _T("scsi1"), _T("scsi2"), _T("scsi3"), _T("scsi4"), _T("scsi5"), _T("scsi6"), + _T("scsram"), _T("scide") + }; /* scsram = smart card sram = pcmcia sram card */ - for (i = 0; i < p->mountitems; i++) { - struct uaedev_config_info *uci = &p->mountconfig[i]; - TCHAR *str; - int bp = uci->bootpri; + for (i = 0; i < p->mountitems; i++) + { + struct uaedev_config_info *uci = &p->mountconfig[i]; + TCHAR *str; + int bp = uci->bootpri; - if (!uci->autoboot) - bp = -128; - if (uci->donotmount) - bp = -129; - str = cfgfile_subst_path (default_path, unexpanded, uci->rootdir); - if (!uci->ishdf) { - _stprintf (tmp, _T("%s,%s:%s:%s,%d"), uci->readonly ? _T("ro") : _T("rw"), - uci->devname ? uci->devname : _T(""), uci->volname, str, bp); - cfgfile_write_str (f, _T("filesystem2"), tmp); - } else { - _stprintf (tmp, _T("%s,%s:%s,%d,%d,%d,%d,%d,%s,%s"), - uci->readonly ? _T("ro") : _T("rw"), - uci->devname ? uci->devname : _T(""), str, - uci->sectors, uci->surfaces, uci->reserved, uci->blocksize, - bp, uci->filesys ? uci->filesys : _T(""), hdcontrollers[uci->controller]); - if (uci->cyls || (uci->pcyls && uci->pheads && uci->psecs)) { - TCHAR *s = tmp + _tcslen (tmp); - _stprintf (s, _T(",%d,%d/%d/%d"), uci->cyls, uci->pcyls, uci->pheads, uci->psecs); - } - cfgfile_write_str (f, _T("hardfile2"), tmp); - } - _stprintf (tmp2, _T("uaehf%d"), i); - cfgfile_write (f, tmp2, _T("%s,%s"), uci->ishdf ? _T("hdf") : _T("dir"), tmp); - xfree (str); - } + if (!uci->autoboot) + bp = -128; + if (uci->donotmount) + bp = -129; + str = cfgfile_subst_path (default_path, unexpanded, uci->rootdir); + if (!uci->ishdf) + { + _stprintf (tmp, _T("%s,%s:%s:%s,%d"), uci->readonly ? _T("ro") : _T("rw"), + uci->devname ? uci->devname : _T(""), uci->volname, str, bp); + cfgfile_write_str (f, _T("filesystem2"), tmp); + } + else + { + _stprintf (tmp, _T("%s,%s:%s,%d,%d,%d,%d,%d,%s,%s"), + uci->readonly ? _T("ro") : _T("rw"), + uci->devname ? uci->devname : _T(""), str, + uci->sectors, uci->surfaces, uci->reserved, uci->blocksize, + bp, uci->filesys ? uci->filesys : _T(""), hdcontrollers[uci->controller]); + if (uci->cyls || (uci->pcyls && uci->pheads && uci->psecs)) + { + TCHAR *s = tmp + _tcslen (tmp); + _stprintf (s, _T(",%d,%d/%d/%d"), uci->cyls, uci->pcyls, uci->pheads, uci->psecs); + } + cfgfile_write_str (f, _T("hardfile2"), tmp); + } + _stprintf (tmp2, _T("uaehf%d"), i); + cfgfile_write (f, tmp2, _T("%s,%s"), uci->ishdf ? _T("hdf") : _T("dir"), tmp); + xfree (str); + } } static void write_compatibility_cpu(struct zfile *f, struct uae_prefs *p) { - TCHAR tmp[100]; - int model; + TCHAR tmp[100]; + int model; - model = p->cpu_model; - if (model == 68030) - model = 68020; - if (model == 68060) - model = 68040; - if (p->address_space_24 && model == 68020) - _tcscpy (tmp, _T("68ec020")); - else - _stprintf(tmp, _T("%d"), model); - if (model == 68020 && (p->fpu_model == 68881 || p->fpu_model == 68882)) - _tcscat(tmp, _T("/68881")); - cfgfile_write (f, _T("cpu_type"), tmp); + model = p->cpu_model; + if (model == 68030) + model = 68020; + if (model == 68060) + model = 68040; + if (p->address_space_24 && model == 68020) + _tcscpy (tmp, _T("68ec020")); + else + _stprintf(tmp, _T("%d"), model); + if (model == 68020 && (p->fpu_model == 68881 || p->fpu_model == 68882)) + _tcscat(tmp, _T("/68881")); + cfgfile_write (f, _T("cpu_type"), tmp); } void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type) { - struct strlist *sl; - TCHAR *str, tmp[MAX_DPATH]; - int i; + struct strlist *sl; + TCHAR *str, tmp[MAX_DPATH]; + int i; - cfgfile_write_str (f, _T("config_description"), p->description); - cfgfile_write_bool (f, _T("config_hardware"), type & CONFIG_TYPE_HARDWARE); - cfgfile_write_bool (f, _T("config_host"), !!(type & CONFIG_TYPE_HOST)); - if (p->info[0]) - cfgfile_write (f, _T("config_info"), p->info); - cfgfile_write (f, _T("config_version"), _T("%d.%d.%d"), UAEMAJOR, UAEMINOR, UAESUBREV); - - for (sl = p->all_lines; sl; sl = sl->next) { - if (sl->unknown) { - if (sl->option) - cfgfile_write_str (f, sl->option, sl->value); + cfgfile_write_str (f, _T("config_description"), p->description); + cfgfile_write_bool (f, _T("config_hardware"), type & CONFIG_TYPE_HARDWARE); + cfgfile_write_bool (f, _T("config_host"), !!(type & CONFIG_TYPE_HOST)); + if (p->info[0]) + cfgfile_write (f, _T("config_info"), p->info); + cfgfile_write (f, _T("config_version"), _T("%d.%d.%d"), UAEMAJOR, UAEMINOR, UAESUBREV); + + for (sl = p->all_lines; sl; sl = sl->next) + { + if (sl->unknown) + { + if (sl->option) + cfgfile_write_str (f, sl->option, sl->value); + } } - } - _stprintf (tmp, _T("%s.rom_path"), TARGET_NAME); - cfgfile_write_str (f, tmp, p->path_rom); - _stprintf (tmp, _T("%s.floppy_path"), TARGET_NAME); - cfgfile_write_str (f, tmp, p->path_floppy); - _stprintf (tmp, _T("%s.hardfile_path"), TARGET_NAME); - cfgfile_write_str (f, tmp, p->path_hardfile); - _stprintf (tmp, _T("%s.cd_path"), TARGET_NAME); - cfgfile_write_str (f, tmp, p->path_cd); + _stprintf (tmp, _T("%s.rom_path"), TARGET_NAME); + cfgfile_write_str (f, tmp, p->path_rom); + _stprintf (tmp, _T("%s.floppy_path"), TARGET_NAME); + cfgfile_write_str (f, tmp, p->path_floppy); + _stprintf (tmp, _T("%s.hardfile_path"), TARGET_NAME); + cfgfile_write_str (f, tmp, p->path_hardfile); + _stprintf (tmp, _T("%s.cd_path"), TARGET_NAME); + cfgfile_write_str (f, tmp, p->path_cd); - cfg_write (_T("; host-specific"), f); + cfg_write (_T("; host-specific"), f); - target_save_options (f, p); + target_save_options (f, p); - cfg_write (_T("; common"), f); + cfg_write (_T("; common"), f); - cfgfile_write_str (f, _T("use_gui"), guimode1[p->start_gui]); - cfgfile_write_rom (f, p->path_rom, p->romfile, _T("kickstart_rom_file")); - cfgfile_write_rom (f, p->path_rom, p->romextfile, _T("kickstart_ext_rom_file")); - cfgfile_write_str (f, _T("flash_file"), p->flashfile); + cfgfile_write_str (f, _T("use_gui"), guimode1[p->start_gui]); + cfgfile_write_rom (f, p->path_rom, p->romfile, _T("kickstart_rom_file")); + cfgfile_write_rom (f, p->path_rom, p->romextfile, _T("kickstart_ext_rom_file")); + cfgfile_write_str (f, _T("flash_file"), p->flashfile); - p->nr_floppies = 4; - for (i = 0; i < 4; i++) { - str = cfgfile_subst_path (p->path_floppy, UNEXPANDED, p->floppyslots[i].df); - _stprintf (tmp, _T("floppy%d"), i); - cfgfile_write_str (f, tmp, str); - xfree (str); - _stprintf (tmp, _T("floppy%dtype"), i); - cfgfile_dwrite (f, tmp, _T("%d"), p->floppyslots[i].dfxtype); - if (p->floppyslots[i].dfxtype < 0 && p->nr_floppies > i) - p->nr_floppies = i; - } + p->nr_floppies = 4; + for (i = 0; i < 4; i++) + { + str = cfgfile_subst_path (p->path_floppy, UNEXPANDED, p->floppyslots[i].df); + _stprintf (tmp, _T("floppy%d"), i); + cfgfile_write_str (f, tmp, str); + xfree (str); + _stprintf (tmp, _T("floppy%dtype"), i); + cfgfile_dwrite (f, tmp, _T("%d"), p->floppyslots[i].dfxtype); + if (p->floppyslots[i].dfxtype < 0 && p->nr_floppies > i) + p->nr_floppies = i; + } - for (i = 0; i < MAX_TOTAL_SCSI_DEVICES; i++) { - if (p->cdslots[i].name[0] || p->cdslots[i].inuse) { - TCHAR tmp2[MAX_DPATH]; - _stprintf (tmp, _T("cdimage%d"), i); - TCHAR *s = cfgfile_subst_path (p->path_cd, UNEXPANDED, p->cdslots[i].name); - _tcscpy (tmp2, s); - xfree (s); - if (p->cdslots[i].type != SCSI_UNIT_DEFAULT || _tcschr (p->cdslots[i].name, ',') || p->cdslots[i].delayed) { - _tcscat (tmp2, _T(",")); - if (p->cdslots[i].delayed) { - _tcscat (tmp2, _T("delay")); - _tcscat (tmp2, _T(":")); - } - if (p->cdslots[i].type != SCSI_UNIT_DEFAULT) { - _tcscat (tmp2, cdmodes[p->cdslots[i].type + 1]); - } - } - cfgfile_write_str (f, tmp, tmp2); - } - } + for (i = 0; i < MAX_TOTAL_SCSI_DEVICES; i++) + { + if (p->cdslots[i].name[0] || p->cdslots[i].inuse) + { + TCHAR tmp2[MAX_DPATH]; + _stprintf (tmp, _T("cdimage%d"), i); + TCHAR *s = cfgfile_subst_path (p->path_cd, UNEXPANDED, p->cdslots[i].name); + _tcscpy (tmp2, s); + xfree (s); + if (p->cdslots[i].type != SCSI_UNIT_DEFAULT || _tcschr (p->cdslots[i].name, ',') || p->cdslots[i].delayed) + { + _tcscat (tmp2, _T(",")); + if (p->cdslots[i].delayed) + { + _tcscat (tmp2, _T("delay")); + _tcscat (tmp2, _T(":")); + } + if (p->cdslots[i].type != SCSI_UNIT_DEFAULT) + { + _tcscat (tmp2, cdmodes[p->cdslots[i].type + 1]); + } + } + cfgfile_write_str (f, tmp, tmp2); + } + } - cfgfile_write (f, _T("nr_floppies"), _T("%d"), p->nr_floppies); - cfgfile_write (f, _T("floppy_speed"), _T("%d"), p->floppy_speed); + cfgfile_write (f, _T("nr_floppies"), _T("%d"), p->nr_floppies); + cfgfile_write (f, _T("floppy_speed"), _T("%d"), p->floppy_speed); - cfgfile_write_str (f, _T("sound_output"), soundmode1[p->produce_sound]); - cfgfile_write_str (f, _T("sound_channels"), stereomode[p->sound_stereo]); - cfgfile_write (f, _T("sound_stereo_separation"), _T("%d"), p->sound_stereo_separation); - cfgfile_write (f, _T("sound_stereo_mixing_delay"), _T("%d"), p->sound_mixed_stereo_delay >= 0 ? p->sound_mixed_stereo_delay : 0); - cfgfile_write (f, _T("sound_frequency"), _T("%d"), p->sound_freq); - cfgfile_write_str (f, _T("sound_interpol"), interpolmode[p->sound_interpol]); - cfgfile_write_str (f, _T("sound_filter"), soundfiltermode1[p->sound_filter]); - cfgfile_write_str (f, _T("sound_filter_type"), soundfiltermode2[p->sound_filter_type]); - if (p->sound_volume_cd >= 0) - cfgfile_write (f, _T("sound_volume_cd"), _T("%d"), p->sound_volume_cd); + cfgfile_write_str (f, _T("sound_output"), soundmode1[p->produce_sound]); + cfgfile_write_str (f, _T("sound_channels"), stereomode[p->sound_stereo]); + cfgfile_write (f, _T("sound_stereo_separation"), _T("%d"), p->sound_stereo_separation); + cfgfile_write (f, _T("sound_stereo_mixing_delay"), _T("%d"), p->sound_mixed_stereo_delay >= 0 ? p->sound_mixed_stereo_delay : 0); + cfgfile_write (f, _T("sound_frequency"), _T("%d"), p->sound_freq); + cfgfile_write_str (f, _T("sound_interpol"), interpolmode[p->sound_interpol]); + cfgfile_write_str (f, _T("sound_filter"), soundfiltermode1[p->sound_filter]); + cfgfile_write_str (f, _T("sound_filter_type"), soundfiltermode2[p->sound_filter_type]); + if (p->sound_volume_cd >= 0) + cfgfile_write (f, _T("sound_volume_cd"), _T("%d"), p->sound_volume_cd); - cfgfile_write (f, _T("cachesize"), _T("%d"), p->cachesize); + cfgfile_write (f, _T("cachesize"), _T("%d"), p->cachesize); - for (i = 0; i < MAX_JPORTS; i++) { - struct jport *jp = &p->jports[i]; - int v = jp->id; - TCHAR tmp1[MAX_DPATH], tmp2[MAX_DPATH]; - if (v == JPORT_CUSTOM) { - _tcscpy (tmp2, _T("custom")); - } else if (v == JPORT_NONE) { - _tcscpy (tmp2, _T("none")); - } else if (v < JSEM_JOYS) { - _stprintf (tmp2, _T("kbd%d"), v + 1); - } else if (v < JSEM_MICE) { - _stprintf (tmp2, _T("joy%d"), v - JSEM_JOYS); - } else { - _tcscpy (tmp2, _T("mouse")); - if (v - JSEM_MICE > 0) - _stprintf (tmp2, _T("mouse%d"), v - JSEM_MICE); - } - if (i < 2 || jp->id >= 0) { - _stprintf (tmp1, _T("joyport%d"), i); - cfgfile_write (f, tmp1, tmp2); - _stprintf (tmp1, _T("joyport%dautofire"), i); - cfgfile_write (f, tmp1, joyaf[jp->autofire]); - if (i < 2 && jp->mode > 0) { - _stprintf (tmp1, _T("joyport%dmode"), i); - cfgfile_write (f, tmp1, joyportmodes[jp->mode]); - } - if (jp->name[0]) { - _stprintf (tmp1, _T("joyportfriendlyname%d"), i); - cfgfile_write (f, tmp1, jp->name); - } - if (jp->configname[0]) { - _stprintf (tmp1, _T("joyportname%d"), i); - cfgfile_write (f, tmp1, jp->configname); - } - } - } + for (i = 0; i < MAX_JPORTS; i++) + { + struct jport *jp = &p->jports[i]; + int v = jp->id; + TCHAR tmp1[MAX_DPATH], tmp2[MAX_DPATH]; + if (v == JPORT_CUSTOM) + { + _tcscpy (tmp2, _T("custom")); + } + else if (v == JPORT_NONE) + { + _tcscpy (tmp2, _T("none")); + } + else if (v < JSEM_JOYS) + { + _stprintf (tmp2, _T("kbd%d"), v + 1); + } + else if (v < JSEM_MICE) + { + _stprintf (tmp2, _T("joy%d"), v - JSEM_JOYS); + } + else + { + _tcscpy (tmp2, _T("mouse")); + if (v - JSEM_MICE > 0) + _stprintf (tmp2, _T("mouse%d"), v - JSEM_MICE); + } + if (i < 2 || jp->id >= 0) + { + _stprintf (tmp1, _T("joyport%d"), i); + cfgfile_write (f, tmp1, tmp2); + _stprintf (tmp1, _T("joyport%dautofire"), i); + cfgfile_write (f, tmp1, joyaf[jp->autofire]); + if (i < 2 && jp->mode > 0) + { + _stprintf (tmp1, _T("joyport%dmode"), i); + cfgfile_write (f, tmp1, joyportmodes[jp->mode]); + } + if (jp->name[0]) + { + _stprintf (tmp1, _T("joyportfriendlyname%d"), i); + cfgfile_write (f, tmp1, jp->name); + } + if (jp->configname[0]) + { + _stprintf (tmp1, _T("joyportname%d"), i); + cfgfile_write (f, tmp1, jp->configname); + } + } + } - cfgfile_write_bool (f, _T("bsdsocket_emu"), p->socket_emu); + cfgfile_write_bool (f, _T("bsdsocket_emu"), p->socket_emu); - cfgfile_write_bool (f, _T("synchronize_clock"), p->tod_hack); - cfgfile_dwrite_str (f, _T("absolute_mouse"), abspointers[p->input_tablet]); + cfgfile_write_bool (f, _T("synchronize_clock"), p->tod_hack); + cfgfile_dwrite_str (f, _T("absolute_mouse"), abspointers[p->input_tablet]); - cfgfile_write (f, _T("key_for_menu"), _T("%d"), p->key_for_menu); + cfgfile_write (f, _T("key_for_menu"), _T("%d"), p->key_for_menu); - cfgfile_write (f, _T("gfx_framerate"), _T("%d"), p->gfx_framerate); - cfgfile_write (f, _T("gfx_width"), _T("%d"), p->gfx_size.width); - cfgfile_write (f, _T("gfx_height"), _T("%d"), p->gfx_size.height); - cfgfile_write (f, _T("gfx_width_windowed"), _T("%d"), p->gfx_size_win.width); - cfgfile_write (f, _T("gfx_height_windowed"), _T("%d"), p->gfx_size_win.height); - cfgfile_write (f, _T("gfx_width_fullscreen"), _T("%d"), p->gfx_size_fs.width); - cfgfile_write (f, _T("gfx_height_fullscreen"), _T("%d"), p->gfx_size_fs.height); - cfgfile_write_bool (f, _T("gfx_lores"), p->gfx_resolution == 0); - cfgfile_write_str (f, _T("gfx_resolution"), lorestype1[p->gfx_resolution]); + cfgfile_write (f, _T("gfx_framerate"), _T("%d"), p->gfx_framerate); + cfgfile_write (f, _T("gfx_width"), _T("%d"), p->gfx_size.width); + cfgfile_write (f, _T("gfx_height"), _T("%d"), p->gfx_size.height); + cfgfile_write (f, _T("gfx_width_windowed"), _T("%d"), p->gfx_size_win.width); + cfgfile_write (f, _T("gfx_height_windowed"), _T("%d"), p->gfx_size_win.height); + cfgfile_write (f, _T("gfx_width_fullscreen"), _T("%d"), p->gfx_size_fs.width); + cfgfile_write (f, _T("gfx_height_fullscreen"), _T("%d"), p->gfx_size_fs.height); + cfgfile_write_bool (f, _T("gfx_lores"), p->gfx_resolution == 0); + cfgfile_write_str (f, _T("gfx_resolution"), lorestype1[p->gfx_resolution]); #ifdef RASPBERRY - cfgfile_write (f, _T("gfx_correct_aspect"), _T("%d"), p->gfx_correct_aspect); - cfgfile_write (f, _T("gfx_fullscreen_ratio"), _T("%d"), p->gfx_fullscreen_ratio); - cfgfile_write (f, _T("kbd_led_num"), _T("%d"), p->kbd_led_num); - cfgfile_write (f, _T("kbd_led_scr"), _T("%d"), p->kbd_led_scr); - cfgfile_write (f, _T("kbd_led_cap"), _T("%d"), p->kbd_led_cap); + cfgfile_write (f, _T("gfx_correct_aspect"), _T("%d"), p->gfx_correct_aspect); + cfgfile_write (f, _T("gfx_fullscreen_ratio"), _T("%d"), p->gfx_fullscreen_ratio); + cfgfile_write (f, _T("kbd_led_num"), _T("%d"), p->kbd_led_num); + cfgfile_write (f, _T("kbd_led_scr"), _T("%d"), p->kbd_led_scr); + cfgfile_write (f, _T("kbd_led_cap"), _T("%d"), p->kbd_led_cap); #endif - cfgfile_write_bool (f, _T("immediate_blits"), p->immediate_blits); - cfgfile_dwrite_str (f, _T("waiting_blits"), waitblits[p->waiting_blits]); - cfgfile_write_bool (f, _T("fast_copper"), p->fast_copper); - cfgfile_write_bool (f, _T("ntsc"), p->ntscmode); - cfgfile_dwrite_bool (f, _T("show_leds"), p->leds_on_screen); - if (p->chipset_mask & CSMASK_AGA) - cfgfile_write (f, _T("chipset"), _T("aga")); - else if ((p->chipset_mask & CSMASK_ECS_AGNUS) && (p->chipset_mask & CSMASK_ECS_DENISE)) - cfgfile_write (f, _T("chipset"), _T("ecs")); - else if (p->chipset_mask & CSMASK_ECS_AGNUS) - cfgfile_write (f, _T("chipset"), _T("ecs_agnus")); - else if (p->chipset_mask & CSMASK_ECS_DENISE) - cfgfile_write (f, _T("chipset"), _T("ecs_denise")); - else - cfgfile_write (f, _T("chipset"), _T("ocs")); - if (p->chipset_refreshrate > 0) - cfgfile_write (f, _T("chipset_refreshrate"), _T("%f"), p->chipset_refreshrate); + cfgfile_write_bool (f, _T("immediate_blits"), p->immediate_blits); + cfgfile_dwrite_str (f, _T("waiting_blits"), waitblits[p->waiting_blits]); + cfgfile_write_bool (f, _T("fast_copper"), p->fast_copper); + cfgfile_write_bool (f, _T("ntsc"), p->ntscmode); + cfgfile_dwrite_bool (f, _T("show_leds"), p->leds_on_screen); + if (p->chipset_mask & CSMASK_AGA) + cfgfile_write (f, _T("chipset"), _T("aga")); + else if ((p->chipset_mask & CSMASK_ECS_AGNUS) && (p->chipset_mask & CSMASK_ECS_DENISE)) + cfgfile_write (f, _T("chipset"), _T("ecs")); + else if (p->chipset_mask & CSMASK_ECS_AGNUS) + cfgfile_write (f, _T("chipset"), _T("ecs_agnus")); + else if (p->chipset_mask & CSMASK_ECS_DENISE) + cfgfile_write (f, _T("chipset"), _T("ecs_denise")); + else + cfgfile_write (f, _T("chipset"), _T("ocs")); + if (p->chipset_refreshrate > 0) + cfgfile_write (f, _T("chipset_refreshrate"), _T("%f"), p->chipset_refreshrate); - cfgfile_write_str (f, _T("collision_level"), collmode[p->collision_level]); + cfgfile_write_str (f, _T("collision_level"), collmode[p->collision_level]); - cfgfile_dwrite_bool (f, _T("cd32cd"), p->cs_cd32cd); - cfgfile_dwrite_bool (f, _T("cd32c2p"), p->cs_cd32c2p); - cfgfile_dwrite_bool (f, _T("cd32nvram"), p->cs_cd32nvram); + cfgfile_dwrite_bool (f, _T("cd32cd"), p->cs_cd32cd); + cfgfile_dwrite_bool (f, _T("cd32c2p"), p->cs_cd32c2p); + cfgfile_dwrite_bool (f, _T("cd32nvram"), p->cs_cd32nvram); - cfgfile_write (f, _T("fastmem_size"), _T("%d"), p->fastmem_size / 0x100000); - cfgfile_write (f, _T("z3mem_size"), _T("%d"), p->z3fastmem_size / 0x100000); - cfgfile_write (f, _T("z3mem_start"), _T("0x%x"), p->z3fastmem_start); - cfgfile_write (f, _T("bogomem_size"), _T("%d"), p->bogomem_size / 0x40000); - cfgfile_write (f, _T("gfxcard_size"), _T("%d"), p->rtgmem_size / 0x100000); - cfgfile_write_str (f, _T("gfxcard_type"), rtgtype[p->rtgmem_type]); - cfgfile_write (f, _T("chipmem_size"), _T("%d"), p->chipmem_size == 0x20000 ? -1 : (p->chipmem_size == 0x40000 ? 0 : p->chipmem_size / 0x80000)); + cfgfile_write (f, _T("fastmem_size"), _T("%d"), p->fastmem_size / 0x100000); + cfgfile_write (f, _T("z3mem_size"), _T("%d"), p->z3fastmem_size / 0x100000); + cfgfile_write (f, _T("z3mem_start"), _T("0x%x"), p->z3fastmem_start); + cfgfile_write (f, _T("bogomem_size"), _T("%d"), p->bogomem_size / 0x40000); + cfgfile_write (f, _T("gfxcard_size"), _T("%d"), p->rtgmem_size / 0x100000); + cfgfile_write_str (f, _T("gfxcard_type"), rtgtype[p->rtgmem_type]); + cfgfile_write (f, _T("chipmem_size"), _T("%d"), p->chipmem_size == 0x20000 ? -1 : (p->chipmem_size == 0x40000 ? 0 : p->chipmem_size / 0x80000)); - if (p->m68k_speed > 0) { - cfgfile_write (f, _T("finegrain_cpu_speed"), _T("%d"), p->m68k_speed); - } else { - cfgfile_write_str (f, _T("cpu_speed"), p->m68k_speed < 0 ? _T("max") : _T("real")); - } + if (p->m68k_speed > 0) + { + cfgfile_write (f, _T("finegrain_cpu_speed"), _T("%d"), p->m68k_speed); + } + else + { + cfgfile_write_str (f, _T("cpu_speed"), p->m68k_speed < 0 ? _T("max") : _T("real")); + } - /* do not reorder start */ - write_compatibility_cpu(f, p); - cfgfile_write (f, _T("cpu_model"), _T("%d"), p->cpu_model); - if (p->fpu_model) - cfgfile_write (f, _T("fpu_model"), _T("%d"), p->fpu_model); - cfgfile_write_bool (f, _T("cpu_compatible"), p->cpu_compatible); - cfgfile_write_bool (f, _T("cpu_24bit_addressing"), p->address_space_24); - /* do not reorder end */ - cfgfile_write (f, _T("rtg_modes"), _T("0x%x"), p->picasso96_modeflags); + /* do not reorder start */ + write_compatibility_cpu(f, p); + cfgfile_write (f, _T("cpu_model"), _T("%d"), p->cpu_model); + if (p->fpu_model) + cfgfile_write (f, _T("fpu_model"), _T("%d"), p->fpu_model); + cfgfile_write_bool (f, _T("cpu_compatible"), p->cpu_compatible); + cfgfile_write_bool (f, _T("cpu_24bit_addressing"), p->address_space_24); + /* do not reorder end */ + cfgfile_write (f, _T("rtg_modes"), _T("0x%x"), p->picasso96_modeflags); #ifdef FILESYS - write_filesys_config (p, UNEXPANDED, p->path_hardfile, f); - cfgfile_dwrite (f, _T("filesys_max_size"), _T("%d"), p->filesys_limit); + write_filesys_config (p, UNEXPANDED, p->path_hardfile, f); + cfgfile_dwrite (f, _T("filesys_max_size"), _T("%d"), p->filesys_limit); #endif - write_inputdevice_config (p, f); + write_inputdevice_config (p, f); } int cfgfile_yesno (const TCHAR *option, const TCHAR *value, const TCHAR *name, int *location) { - if (name != NULL && _tcscmp (option, name) != 0) - return 0; - if (strcasecmp (value, _T("yes")) == 0 || strcasecmp (value, _T("y")) == 0 - || strcasecmp (value, _T("true")) == 0 || strcasecmp (value, _T("t")) == 0) - *location = 1; - else if (strcasecmp (value, _T("no")) == 0 || strcasecmp (value, _T("n")) == 0 - || strcasecmp (value, _T("false")) == 0 || strcasecmp (value, _T("f")) == 0 - || strcasecmp (value, _T("0")) == 0) - *location = 0; - else { - write_log (_T("Option `%s' requires a value of either `yes' or `no' (was '%s').\n"), option, value); - return -1; - } - return 1; + if (name != NULL && _tcscmp (option, name) != 0) + return 0; + if (strcasecmp (value, _T("yes")) == 0 || strcasecmp (value, _T("y")) == 0 + || strcasecmp (value, _T("true")) == 0 || strcasecmp (value, _T("t")) == 0) + *location = 1; + else if (strcasecmp (value, _T("no")) == 0 || strcasecmp (value, _T("n")) == 0 + || strcasecmp (value, _T("false")) == 0 || strcasecmp (value, _T("f")) == 0 + || strcasecmp (value, _T("0")) == 0) + *location = 0; + else + { + write_log (_T("Option `%s' requires a value of either `yes' or `no' (was '%s').\n"), option, value); + return -1; + } + return 1; } int cfgfile_yesno (const TCHAR *option, const TCHAR *value, const TCHAR *name, bool *location) { - int val; - int ret = cfgfile_yesno (option, value, name, &val); - if (ret == 0) - return 0; - if (ret < 0) - *location = false; - else - *location = val != 0; - return 1; + int val; + int ret = cfgfile_yesno (option, value, name, &val); + if (ret == 0) + return 0; + if (ret < 0) + *location = false; + else + *location = val != 0; + return 1; } int cfgfile_doubleval (const TCHAR *option, const TCHAR *value, const TCHAR *name, double *location) { - int base = 10; - TCHAR *endptr; - if (name != NULL && _tcscmp (option, name) != 0) - return 0; - *location = _tcstod (value, &endptr); - return 1; + int base = 10; + TCHAR *endptr; + if (name != NULL && _tcscmp (option, name) != 0) + return 0; + *location = _tcstod (value, &endptr); + return 1; } int cfgfile_intval (const TCHAR *option, const TCHAR *value, const TCHAR *name, unsigned int *location, int scale) { - int base = 10; - TCHAR *endptr; - if (name != NULL && _tcscmp (option, name) != 0) - return 0; - /* I guess octal isn't popular enough to worry about here... */ - if (value[0] == '0' && _totupper(value[1]) == 'X') - value += 2, base = 16; - *location = _tcstol (value, &endptr, base) * scale; + int base = 10; + TCHAR *endptr; + if (name != NULL && _tcscmp (option, name) != 0) + return 0; + /* I guess octal isn't popular enough to worry about here... */ + if (value[0] == '0' && _totupper(value[1]) == 'X') + value += 2, base = 16; + *location = _tcstol (value, &endptr, base) * scale; - if (*endptr != '\0' || *value == '\0') { - if (strcasecmp (value, _T("false")) == 0 || strcasecmp (value, _T("no")) == 0) { - *location = 0; - return 1; - } - if (strcasecmp (value, _T("true")) == 0 || strcasecmp (value, _T("yes")) == 0) { - *location = 1; - return 1; - } - write_log (_T("Option '%s' requires a numeric argument but got '%s'\n"), option, value); - return -1; - } - return 1; + if (*endptr != '\0' || *value == '\0') + { + if (strcasecmp (value, _T("false")) == 0 || strcasecmp (value, _T("no")) == 0) + { + *location = 0; + return 1; + } + if (strcasecmp (value, _T("true")) == 0 || strcasecmp (value, _T("yes")) == 0) + { + *location = 1; + return 1; + } + write_log (_T("Option '%s' requires a numeric argument but got '%s'\n"), option, value); + return -1; + } + return 1; } int cfgfile_intval (const TCHAR *option, const TCHAR *value, const TCHAR *name, int *location, int scale) { - unsigned int v = 0; - int r = cfgfile_intval (option, value, name, &v, scale); - if (!r) - return 0; - *location = (int)v; - return r; + unsigned int v = 0; + int r = cfgfile_intval (option, value, name, &v, scale); + if (!r) + return 0; + *location = (int)v; + return r; } int cfgfile_strval (const TCHAR *option, const TCHAR *value, const TCHAR *name, int *location, const TCHAR *table[], int more) { - int val; - if (name != NULL && _tcscmp (option, name) != 0) - return 0; - val = match_string (table, value); - if (val == -1) { - if (more) - return 0; - if (!strcasecmp (value, _T("yes")) || !strcasecmp (value, _T("true"))) { - val = 1; - } else if (!strcasecmp (value, _T("no")) || !strcasecmp (value, _T("false"))) { - val = 0; - } else { - write_log (_T("Unknown value ('%s') for option '%s'.\n"), value, option); - return -1; - } - } - *location = val; - return 1; + int val; + if (name != NULL && _tcscmp (option, name) != 0) + return 0; + val = match_string (table, value); + if (val == -1) + { + if (more) + return 0; + if (!strcasecmp (value, _T("yes")) || !strcasecmp (value, _T("true"))) + { + val = 1; + } + else if (!strcasecmp (value, _T("no")) || !strcasecmp (value, _T("false"))) + { + val = 0; + } + else + { + write_log (_T("Unknown value ('%s') for option '%s'.\n"), value, option); + return -1; + } + } + *location = val; + return 1; } int cfgfile_strboolval (const TCHAR *option, const TCHAR *value, const TCHAR *name, bool *location, const TCHAR *table[], int more) { - int locationint; - if (!cfgfile_strval (option, value, name, &locationint, table, more)) - return 0; - *location = locationint != 0; - return 1; + int locationint; + if (!cfgfile_strval (option, value, name, &locationint, table, more)) + return 0; + *location = locationint != 0; + return 1; } int cfgfile_string (const TCHAR *option, const TCHAR *value, const TCHAR *name, TCHAR *location, int maxsz) { - if (_tcscmp (option, name) != 0) - return 0; - _tcsncpy (location, value, maxsz - 1); - location[maxsz - 1] = '\0'; - return 1; + if (_tcscmp (option, name) != 0) + return 0; + _tcsncpy (location, value, maxsz - 1); + location[maxsz - 1] = '\0'; + return 1; } int cfgfile_path (const TCHAR *option, const TCHAR *value, const TCHAR *name, TCHAR *location, int maxsz) { - if (!cfgfile_string (option, value, name, location, maxsz)) - return 0; - TCHAR *s = target_expand_environment (location); - _tcsncpy (location, s, maxsz - 1); - location[maxsz - 1] = 0; - xfree (s); - return 1; + if (!cfgfile_string (option, value, name, location, maxsz)) + return 0; + TCHAR *s = target_expand_environment (location); + _tcsncpy (location, s, maxsz - 1); + location[maxsz - 1] = 0; + xfree (s); + return 1; } int cfgfile_rom (const TCHAR *option, const TCHAR *value, const TCHAR *name, TCHAR *location, int maxsz) { - TCHAR id[MAX_DPATH]; - if (!cfgfile_string (option, value, name, id, sizeof id / sizeof (TCHAR))) - return 0; - if (zfile_exists (location)) - return 1; - TCHAR *p = _tcschr (id, ','); - if (p) { - TCHAR *endptr, tmp; - *p = 0; - tmp = id[4]; - id[4] = 0; - uae_u32 crc32 = _tcstol (id, &endptr, 16) << 16; - id[4] = tmp; - crc32 |= _tcstol (id + 4, &endptr, 16); - struct romdata *rd = getromdatabycrc (crc32); - if (rd) { - struct romlist *rl = getromlistbyromdata (rd); - if (rl) { - write_log (_T("%s: %s -> %s\n"), name, location, rl->path); - _tcsncpy (location, rl->path, maxsz); - } - } - } - return 1; + TCHAR id[MAX_DPATH]; + if (!cfgfile_string (option, value, name, id, sizeof id / sizeof (TCHAR))) + return 0; + if (zfile_exists (location)) + return 1; + TCHAR *p = _tcschr (id, ','); + if (p) + { + TCHAR *endptr, tmp; + *p = 0; + tmp = id[4]; + id[4] = 0; + uae_u32 crc32 = _tcstol (id, &endptr, 16) << 16; + id[4] = tmp; + crc32 |= _tcstol (id + 4, &endptr, 16); + struct romdata *rd = getromdatabycrc (crc32); + if (rd) + { + struct romlist *rl = getromlistbyromdata (rd); + if (rl) + { + write_log (_T("%s: %s -> %s\n"), name, location, rl->path); + _tcsncpy (location, rl->path, maxsz); + } + } + } + return 1; } static int getintval (TCHAR **p, int *result, int delim) { - TCHAR *value = *p; - int base = 10; - TCHAR *endptr; - TCHAR *p2 = _tcschr (*p, delim); + TCHAR *value = *p; + int base = 10; + TCHAR *endptr; + TCHAR *p2 = _tcschr (*p, delim); - if (p2 == 0) - return 0; + if (p2 == 0) + return 0; - *p2++ = '\0'; + *p2++ = '\0'; - if (value[0] == '0' && _totupper (value[1]) == 'X') - value += 2, base = 16; - *result = _tcstol (value, &endptr, base); - *p = p2; + if (value[0] == '0' && _totupper (value[1]) == 'X') + value += 2, base = 16; + *result = _tcstol (value, &endptr, base); + *p = p2; - if (*endptr != '\0' || *value == '\0') - return 0; + if (*endptr != '\0' || *value == '\0') + return 0; - return 1; + return 1; } static int getintval2 (TCHAR **p, int *result, int delim) { - TCHAR *value = *p; - int base = 10; - TCHAR *endptr; - TCHAR *p2 = _tcschr (*p, delim); + TCHAR *value = *p; + int base = 10; + TCHAR *endptr; + TCHAR *p2 = _tcschr (*p, delim); - if (p2 == 0) { - p2 = _tcschr (*p, 0); - if (p2 == 0) { - *p = 0; - return 0; - } - } - if (*p2 != 0) - *p2++ = '\0'; + if (p2 == 0) + { + p2 = _tcschr (*p, 0); + if (p2 == 0) + { + *p = 0; + return 0; + } + } + if (*p2 != 0) + *p2++ = '\0'; - if (value[0] == '0' && _totupper (value[1]) == 'X') - value += 2, base = 16; - *result = _tcstol (value, &endptr, base); - *p = p2; + if (value[0] == '0' && _totupper (value[1]) == 'X') + value += 2, base = 16; + *result = _tcstol (value, &endptr, base); + *p = p2; - if (*endptr != '\0' || *value == '\0') { - *p = 0; - return 0; - } + if (*endptr != '\0' || *value == '\0') + { + *p = 0; + return 0; + } - return 1; + return 1; } static void set_chipset_mask (struct uae_prefs *p, int val) { - p->chipset_mask = (val == 0 ? 0 - : val == 1 ? CSMASK_ECS_AGNUS - : val == 2 ? CSMASK_ECS_DENISE - : val == 3 ? CSMASK_ECS_DENISE | CSMASK_ECS_AGNUS - : CSMASK_AGA | CSMASK_ECS_DENISE | CSMASK_ECS_AGNUS); + p->chipset_mask = (val == 0 ? 0 + : val == 1 ? CSMASK_ECS_AGNUS + : val == 2 ? CSMASK_ECS_DENISE + : val == 3 ? CSMASK_ECS_DENISE | CSMASK_ECS_AGNUS + : CSMASK_AGA | CSMASK_ECS_DENISE | CSMASK_ECS_AGNUS); } static int cfgfile_parse_host (struct uae_prefs *p, TCHAR *option, TCHAR *value) { - int i; - bool vb; - TCHAR *section = 0; - TCHAR *tmpp; - TCHAR tmpbuf[CONFIG_BLEN]; + int i; + bool vb; + TCHAR *section = 0; + TCHAR *tmpp; + TCHAR tmpbuf[CONFIG_BLEN]; - if (_tcsncmp (option, _T("input."), 6) == 0) { - read_inputdevice_config (p, option, value); - return 1; - } + if (_tcsncmp (option, _T("input."), 6) == 0) + { + read_inputdevice_config (p, option, value); + return 1; + } - for (tmpp = option; *tmpp != '\0'; tmpp++) - if (_istupper (*tmpp)) - *tmpp = _totlower (*tmpp); - tmpp = _tcschr (option, '.'); - if (tmpp) { - section = option; - option = tmpp + 1; - *tmpp = '\0'; - if (_tcscmp (section, TARGET_NAME) == 0) { - /* We special case the various path options here. */ - if (cfgfile_path (option, value, _T("rom_path"), p->path_rom, sizeof p->path_rom / sizeof (TCHAR)) - || cfgfile_path (option, value, _T("floppy_path"), p->path_floppy, sizeof p->path_floppy / sizeof (TCHAR)) - || cfgfile_path (option, value, _T("cd_path"), p->path_cd, sizeof p->path_cd / sizeof (TCHAR)) - || cfgfile_path (option, value, _T("hardfile_path"), p->path_hardfile, sizeof p->path_hardfile / sizeof (TCHAR))) - return 1; - return target_parse_option (p, option, value); - } - return 0; - } + for (tmpp = option; *tmpp != '\0'; tmpp++) + if (_istupper (*tmpp)) + *tmpp = _totlower (*tmpp); + tmpp = _tcschr (option, '.'); + if (tmpp) + { + section = option; + option = tmpp + 1; + *tmpp = '\0'; + if (_tcscmp (section, TARGET_NAME) == 0) + { + /* We special case the various path options here. */ + if (cfgfile_path (option, value, _T("rom_path"), p->path_rom, sizeof p->path_rom / sizeof (TCHAR)) + || cfgfile_path (option, value, _T("floppy_path"), p->path_floppy, sizeof p->path_floppy / sizeof (TCHAR)) + || cfgfile_path (option, value, _T("cd_path"), p->path_cd, sizeof p->path_cd / sizeof (TCHAR)) + || cfgfile_path (option, value, _T("hardfile_path"), p->path_hardfile, sizeof p->path_hardfile / sizeof (TCHAR))) + return 1; + return target_parse_option (p, option, value); + } + return 0; + } - for (i = 0; i < MAX_TOTAL_SCSI_DEVICES; i++) { - TCHAR tmp[20]; - _stprintf (tmp, _T("cdimage%d"), i); - if (!_tcsicmp (option, tmp)) { - if (!_tcsicmp (value, _T("autodetect"))) { - p->cdslots[i].type = SCSI_UNIT_DEFAULT; - p->cdslots[i].inuse = true; - p->cdslots[i].name[0] = 0; - } else { - p->cdslots[i].delayed = false; - TCHAR *next = _tcsrchr (value, ','); - int type = SCSI_UNIT_DEFAULT; - int mode = 0; - int unitnum = 0; - for (;;) { - if (!next) - break; - *next++ = 0; - TCHAR *next2 = _tcschr (next, ':'); - if (next2) - *next2++ = 0; - int tmpval = 0; - if (!_tcsicmp (next, _T("delay"))) { - p->cdslots[i].delayed = true; - next = next2; - if (!next) - break; - next2 = _tcschr (next, ':'); - if (next2) - *next2++ = 0; - } - type = match_string (cdmodes, next); - if (type < 0) - type = SCSI_UNIT_DEFAULT; - else - type--; - next = next2; - if (!next) - break; - next2 = _tcschr (next, ':'); - if (next2) - *next2++ = 0; - mode = match_string (cdconmodes, next); - if (mode < 0) - mode = 0; - next = next2; - if (!next) - break; - next2 = _tcschr (next, ':'); - if (next2) - *next2++ = 0; - cfgfile_intval (option, next, tmp, &unitnum, 1); - } - if (_tcslen (value) > 0) { - TCHAR *s = cfgfile_subst_path (UNEXPANDED, p->path_cd, value); - _tcsncpy (p->cdslots[i].name, s, sizeof p->cdslots[i].name / sizeof (TCHAR)); - xfree (s); - } - p->cdslots[i].name[sizeof p->cdslots[i].name - 1] = 0; - p->cdslots[i].inuse = true; - p->cdslots[i].type = type; - } - // disable all following units - i++; - while (i < MAX_TOTAL_SCSI_DEVICES) { - p->cdslots[i].type = SCSI_UNIT_DISABLED; - i++; - } - return 1; - } - } + for (i = 0; i < MAX_TOTAL_SCSI_DEVICES; i++) + { + TCHAR tmp[20]; + _stprintf (tmp, _T("cdimage%d"), i); + if (!_tcsicmp (option, tmp)) + { + if (!_tcsicmp (value, _T("autodetect"))) + { + p->cdslots[i].type = SCSI_UNIT_DEFAULT; + p->cdslots[i].inuse = true; + p->cdslots[i].name[0] = 0; + } + else + { + p->cdslots[i].delayed = false; + TCHAR *next = _tcsrchr (value, ','); + int type = SCSI_UNIT_DEFAULT; + int mode = 0; + int unitnum = 0; + for (;;) + { + if (!next) + break; + *next++ = 0; + TCHAR *next2 = _tcschr (next, ':'); + if (next2) + *next2++ = 0; + int tmpval = 0; + if (!_tcsicmp (next, _T("delay"))) + { + p->cdslots[i].delayed = true; + next = next2; + if (!next) + break; + next2 = _tcschr (next, ':'); + if (next2) + *next2++ = 0; + } + type = match_string (cdmodes, next); + if (type < 0) + type = SCSI_UNIT_DEFAULT; + else + type--; + next = next2; + if (!next) + break; + next2 = _tcschr (next, ':'); + if (next2) + *next2++ = 0; + mode = match_string (cdconmodes, next); + if (mode < 0) + mode = 0; + next = next2; + if (!next) + break; + next2 = _tcschr (next, ':'); + if (next2) + *next2++ = 0; + cfgfile_intval (option, next, tmp, &unitnum, 1); + } + if (_tcslen (value) > 0) + { + TCHAR *s = cfgfile_subst_path (UNEXPANDED, p->path_cd, value); + _tcsncpy (p->cdslots[i].name, s, sizeof p->cdslots[i].name / sizeof (TCHAR)); + xfree (s); + } + p->cdslots[i].name[sizeof p->cdslots[i].name - 1] = 0; + p->cdslots[i].inuse = true; + p->cdslots[i].type = type; + } + // disable all following units + i++; + while (i < MAX_TOTAL_SCSI_DEVICES) + { + p->cdslots[i].type = SCSI_UNIT_DISABLED; + i++; + } + return 1; + } + } - if (cfgfile_intval (option, value, _T("sound_frequency"), &p->sound_freq, 1) - || cfgfile_intval (option, value, _T("sound_volume_cd"), &p->sound_volume_cd, 1) - || cfgfile_intval (option, value, _T("sound_stereo_separation"), &p->sound_stereo_separation, 1) - || cfgfile_intval (option, value, _T("sound_stereo_mixing_delay"), &p->sound_mixed_stereo_delay, 1) + if (cfgfile_intval (option, value, _T("sound_frequency"), &p->sound_freq, 1) + || cfgfile_intval (option, value, _T("sound_volume_cd"), &p->sound_volume_cd, 1) + || cfgfile_intval (option, value, _T("sound_stereo_separation"), &p->sound_stereo_separation, 1) + || cfgfile_intval (option, value, _T("sound_stereo_mixing_delay"), &p->sound_mixed_stereo_delay, 1) - || cfgfile_intval (option, value, _T("gfx_framerate"), &p->gfx_framerate, 1) - || cfgfile_intval (option, value, _T("gfx_width_windowed"), &p->gfx_size_win.width, 1) - || cfgfile_intval (option, value, _T("gfx_height_windowed"), &p->gfx_size_win.height, 1) - || cfgfile_intval (option, value, _T("gfx_width_fullscreen"), &p->gfx_size_fs.width, 1) - || cfgfile_intval (option, value, _T("gfx_height_fullscreen"), &p->gfx_size_fs.height, 1) - || cfgfile_intval (option, value, _T("filesys_max_size"), &p->filesys_limit, 1) - ) + || cfgfile_intval (option, value, _T("gfx_framerate"), &p->gfx_framerate, 1) + || cfgfile_intval (option, value, _T("gfx_width_windowed"), &p->gfx_size_win.width, 1) + || cfgfile_intval (option, value, _T("gfx_height_windowed"), &p->gfx_size_win.height, 1) + || cfgfile_intval (option, value, _T("gfx_width_fullscreen"), &p->gfx_size_fs.width, 1) + || cfgfile_intval (option, value, _T("gfx_height_fullscreen"), &p->gfx_size_fs.height, 1) + || cfgfile_intval (option, value, _T("filesys_max_size"), &p->filesys_limit, 1) + ) - return 1; + return 1; #ifdef RASPBERRY if (cfgfile_intval (option, value, "gfx_correct_aspect", &p->gfx_correct_aspect, 1)) - return 1; + return 1; if (cfgfile_intval (option, value, "gfx_fullscreen_ratio", &p->gfx_fullscreen_ratio, 1)) - return 1; - if (cfgfile_intval (option, value, "kbd_led_num", &p->kbd_led_num, 1)) - return 1; + return 1; + if (cfgfile_intval (option, value, "kbd_led_num", &p->kbd_led_num, 1)) + return 1; if (cfgfile_intval (option, value, "kbd_led_scr", &p->kbd_led_scr, 1)) - return 1; + return 1; if (cfgfile_intval (option, value, "kbd_led_cap", &p->kbd_led_cap, 1)) - return 1; + return 1; #endif - if (cfgfile_string (option, value, _T("config_info"), p->info, sizeof p->info / sizeof (TCHAR)) - || cfgfile_string (option, value, _T("config_description"), p->description, sizeof p->description / sizeof (TCHAR))) - return 1; + if (cfgfile_string (option, value, _T("config_info"), p->info, sizeof p->info / sizeof (TCHAR)) + || cfgfile_string (option, value, _T("config_description"), p->description, sizeof p->description / sizeof (TCHAR))) + return 1; - if (cfgfile_yesno (option, value, _T("bsdsocket_emu"), &p->socket_emu)) - return 1; + if (cfgfile_yesno (option, value, _T("bsdsocket_emu"), &p->socket_emu)) + return 1; - if (cfgfile_strval (option, value, _T("sound_output"), &p->produce_sound, soundmode1, 1) - || cfgfile_strval (option, value, _T("sound_output"), &p->produce_sound, soundmode2, 0) - || cfgfile_strval (option, value, _T("sound_interpol"), &p->sound_interpol, interpolmode, 0) - || cfgfile_strval (option, value, _T("sound_filter"), &p->sound_filter, soundfiltermode1, 0) - || cfgfile_strval (option, value, _T("sound_filter_type"), &p->sound_filter_type, soundfiltermode2, 0) - || cfgfile_strboolval (option, value, _T("use_gui"), &p->start_gui, guimode1, 1) - || cfgfile_strboolval (option, value, _T("use_gui"), &p->start_gui, guimode2, 1) - || cfgfile_strboolval (option, value, _T("use_gui"), &p->start_gui, guimode3, 0) - || cfgfile_strval (option, value, _T("gfx_resolution"), &p->gfx_resolution, lorestype1, 0) - || cfgfile_strval (option, value, _T("gfx_lores"), &p->gfx_resolution, lorestype2, 0) - || cfgfile_strval (option, value, _T("absolute_mouse"), &p->input_tablet, abspointers, 0)) - return 1; + if (cfgfile_strval (option, value, _T("sound_output"), &p->produce_sound, soundmode1, 1) + || cfgfile_strval (option, value, _T("sound_output"), &p->produce_sound, soundmode2, 0) + || cfgfile_strval (option, value, _T("sound_interpol"), &p->sound_interpol, interpolmode, 0) + || cfgfile_strval (option, value, _T("sound_filter"), &p->sound_filter, soundfiltermode1, 0) + || cfgfile_strval (option, value, _T("sound_filter_type"), &p->sound_filter_type, soundfiltermode2, 0) + || cfgfile_strboolval (option, value, _T("use_gui"), &p->start_gui, guimode1, 1) + || cfgfile_strboolval (option, value, _T("use_gui"), &p->start_gui, guimode2, 1) + || cfgfile_strboolval (option, value, _T("use_gui"), &p->start_gui, guimode3, 0) + || cfgfile_strval (option, value, _T("gfx_resolution"), &p->gfx_resolution, lorestype1, 0) + || cfgfile_strval (option, value, _T("gfx_lores"), &p->gfx_resolution, lorestype2, 0) + || cfgfile_strval (option, value, _T("absolute_mouse"), &p->input_tablet, abspointers, 0)) + return 1; - if (cfgfile_intval (option, value, "key_for_menu", &p->key_for_menu, 1)) - return 1; + if (cfgfile_intval (option, value, "key_for_menu", &p->key_for_menu, 1)) + return 1; - - if(cfgfile_yesno (option, value, _T("show_leds"), &vb)) { - p->leds_on_screen = vb; - return 1; - } - if (_tcscmp (option, _T("gfx_width")) == 0 || _tcscmp (option, _T("gfx_height")) == 0) { - cfgfile_intval (option, value, _T("gfx_width"), &p->gfx_size.width, 1); - cfgfile_intval (option, value, _T("gfx_height"), &p->gfx_size.height, 1); - return 1; - } + if(cfgfile_yesno (option, value, _T("show_leds"), &vb)) + { + p->leds_on_screen = vb; + return 1; + } - if (_tcscmp (option, _T("joyportfriendlyname0")) == 0 || _tcscmp (option, _T("joyportfriendlyname1")) == 0) { - inputdevice_joyport_config (p, value, _tcscmp (option, _T("joyportfriendlyname0")) == 0 ? 0 : 1, -1, 2); - return 1; - } - if (_tcscmp (option, _T("joyportfriendlyname2")) == 0 || _tcscmp (option, _T("joyportfriendlyname3")) == 0) { - inputdevice_joyport_config (p, value, _tcscmp (option, _T("joyportfriendlyname2")) == 0 ? 2 : 3, -1, 2); - return 1; - } - if (_tcscmp (option, _T("joyportname0")) == 0 || _tcscmp (option, _T("joyportname1")) == 0) { - inputdevice_joyport_config (p, value, _tcscmp (option, _T("joyportname0")) == 0 ? 0 : 1, -1, 1); - return 1; - } - if (_tcscmp (option, _T("joyportname2")) == 0 || _tcscmp (option, _T("joyportname3")) == 0) { - inputdevice_joyport_config (p, value, _tcscmp (option, _T("joyportname2")) == 0 ? 2 : 3, -1, 1); - return 1; - } - if (_tcscmp (option, _T("joyport0")) == 0 || _tcscmp (option, _T("joyport1")) == 0) { - inputdevice_joyport_config (p, value, _tcscmp (option, _T("joyport0")) == 0 ? 0 : 1, -1, 0); - return 1; - } - if (_tcscmp (option, _T("joyport2")) == 0 || _tcscmp (option, _T("joyport3")) == 0) { - inputdevice_joyport_config (p, value, _tcscmp (option, _T("joyport2")) == 0 ? 2 : 3, -1, 0); - return 1; - } - if (cfgfile_strval (option, value, _T("joyport0mode"), &p->jports[0].mode, joyportmodes, 0)) - return 1; - if (cfgfile_strval (option, value, _T("joyport1mode"), &p->jports[1].mode, joyportmodes, 0)) - return 1; - if (cfgfile_strval (option, value, _T("joyport2mode"), &p->jports[2].mode, joyportmodes, 0)) - return 1; - if (cfgfile_strval (option, value, _T("joyport3mode"), &p->jports[3].mode, joyportmodes, 0)) - return 1; - if (cfgfile_strval (option, value, _T("joyport0autofire"), &p->jports[0].autofire, joyaf, 0)) - return 1; - if (cfgfile_strval (option, value, _T("joyport1autofire"), &p->jports[1].autofire, joyaf, 0)) - return 1; - if (cfgfile_strval (option, value, _T("joyport2autofire"), &p->jports[2].autofire, joyaf, 0)) - return 1; - if (cfgfile_strval (option, value, _T("joyport3autofire"), &p->jports[3].autofire, joyaf, 0)) - return 1; + if (_tcscmp (option, _T("gfx_width")) == 0 || _tcscmp (option, _T("gfx_height")) == 0) + { + cfgfile_intval (option, value, _T("gfx_width"), &p->gfx_size.width, 1); + cfgfile_intval (option, value, _T("gfx_height"), &p->gfx_size.height, 1); + return 1; + } - if (cfgfile_string (option, value, _T("statefile"), tmpbuf, sizeof (tmpbuf) / sizeof (TCHAR))) { - _tcscpy (savestate_fname, tmpbuf); - if (zfile_exists (savestate_fname)) { - savestate_state = STATE_DORESTORE; - } else { - int ok = 0; - if (savestate_fname[0]) { - for (;;) { - TCHAR *p; - if (my_existsdir (savestate_fname)) { - ok = 1; - break; - } - p = _tcsrchr (savestate_fname, '\\'); - if (!p) - p = _tcsrchr (savestate_fname, '/'); - if (!p) - break; - *p = 0; - } - } - if (!ok) - savestate_fname[0] = 0; - } - return 1; - } + if (_tcscmp (option, _T("joyportfriendlyname0")) == 0 || _tcscmp (option, _T("joyportfriendlyname1")) == 0) + { + inputdevice_joyport_config (p, value, _tcscmp (option, _T("joyportfriendlyname0")) == 0 ? 0 : 1, -1, 2); + return 1; + } + if (_tcscmp (option, _T("joyportfriendlyname2")) == 0 || _tcscmp (option, _T("joyportfriendlyname3")) == 0) + { + inputdevice_joyport_config (p, value, _tcscmp (option, _T("joyportfriendlyname2")) == 0 ? 2 : 3, -1, 2); + return 1; + } + if (_tcscmp (option, _T("joyportname0")) == 0 || _tcscmp (option, _T("joyportname1")) == 0) + { + inputdevice_joyport_config (p, value, _tcscmp (option, _T("joyportname0")) == 0 ? 0 : 1, -1, 1); + return 1; + } + if (_tcscmp (option, _T("joyportname2")) == 0 || _tcscmp (option, _T("joyportname3")) == 0) + { + inputdevice_joyport_config (p, value, _tcscmp (option, _T("joyportname2")) == 0 ? 2 : 3, -1, 1); + return 1; + } + if (_tcscmp (option, _T("joyport0")) == 0 || _tcscmp (option, _T("joyport1")) == 0) + { + inputdevice_joyport_config (p, value, _tcscmp (option, _T("joyport0")) == 0 ? 0 : 1, -1, 0); + return 1; + } + if (_tcscmp (option, _T("joyport2")) == 0 || _tcscmp (option, _T("joyport3")) == 0) + { + inputdevice_joyport_config (p, value, _tcscmp (option, _T("joyport2")) == 0 ? 2 : 3, -1, 0); + return 1; + } + if (cfgfile_strval (option, value, _T("joyport0mode"), &p->jports[0].mode, joyportmodes, 0)) + return 1; + if (cfgfile_strval (option, value, _T("joyport1mode"), &p->jports[1].mode, joyportmodes, 0)) + return 1; + if (cfgfile_strval (option, value, _T("joyport2mode"), &p->jports[2].mode, joyportmodes, 0)) + return 1; + if (cfgfile_strval (option, value, _T("joyport3mode"), &p->jports[3].mode, joyportmodes, 0)) + return 1; + if (cfgfile_strval (option, value, _T("joyport0autofire"), &p->jports[0].autofire, joyaf, 0)) + return 1; + if (cfgfile_strval (option, value, _T("joyport1autofire"), &p->jports[1].autofire, joyaf, 0)) + return 1; + if (cfgfile_strval (option, value, _T("joyport2autofire"), &p->jports[2].autofire, joyaf, 0)) + return 1; + if (cfgfile_strval (option, value, _T("joyport3autofire"), &p->jports[3].autofire, joyaf, 0)) + return 1; - if (cfgfile_strval (option, value, _T("sound_channels"), &p->sound_stereo, stereomode, 1)) { - if (p->sound_stereo == SND_NONE) { /* "mixed stereo" compatibility hack */ - p->sound_stereo = SND_STEREO; - p->sound_mixed_stereo_delay = 5; - p->sound_stereo_separation = 7; - } - return 1; - } + if (cfgfile_string (option, value, _T("statefile"), tmpbuf, sizeof (tmpbuf) / sizeof (TCHAR))) + { + _tcscpy (savestate_fname, tmpbuf); + if (zfile_exists (savestate_fname)) + { + savestate_state = STATE_DORESTORE; + } + else + { + int ok = 0; + if (savestate_fname[0]) + { + for (;;) + { + TCHAR *p; + if (my_existsdir (savestate_fname)) + { + ok = 1; + break; + } + p = _tcsrchr (savestate_fname, '\\'); + if (!p) + p = _tcsrchr (savestate_fname, '/'); + if (!p) + break; + *p = 0; + } + } + if (!ok) + savestate_fname[0] = 0; + } + return 1; + } - if (cfgfile_string (option, value, _T("config_version"), tmpbuf, sizeof (tmpbuf) / sizeof (TCHAR))) { - TCHAR *tmpp2; - tmpp = _tcschr (value, '.'); - if (tmpp) { - *tmpp++ = 0; - tmpp2 = tmpp; - p->config_version = _tstol (tmpbuf) << 16; - tmpp = _tcschr (tmpp, '.'); - if (tmpp) { - *tmpp++ = 0; - p->config_version |= _tstol (tmpp2) << 8; - p->config_version |= _tstol (tmpp); - } - } - return 1; - } + if (cfgfile_strval (option, value, _T("sound_channels"), &p->sound_stereo, stereomode, 1)) + { + if (p->sound_stereo == SND_NONE) /* "mixed stereo" compatibility hack */ + { + p->sound_stereo = SND_STEREO; + p->sound_mixed_stereo_delay = 5; + p->sound_stereo_separation = 7; + } + return 1; + } - return 0; + if (cfgfile_string (option, value, _T("config_version"), tmpbuf, sizeof (tmpbuf) / sizeof (TCHAR))) + { + TCHAR *tmpp2; + tmpp = _tcschr (value, '.'); + if (tmpp) + { + *tmpp++ = 0; + tmpp2 = tmpp; + p->config_version = _tstol (tmpbuf) << 16; + tmpp = _tcschr (tmpp, '.'); + if (tmpp) + { + *tmpp++ = 0; + p->config_version |= _tstol (tmpp2) << 8; + p->config_version |= _tstol (tmpp); + } + } + return 1; + } + + return 0; } static struct uaedev_config_info *getuci(struct uae_prefs *p) { - if (p->mountitems < MOUNT_CONFIG_SIZE) - return &p->mountconfig[p->mountitems++]; - return NULL; + if (p->mountitems < MOUNT_CONFIG_SIZE) + return &p->mountconfig[p->mountitems++]; + return NULL; } struct uaedev_config_info *add_filesys_config (struct uae_prefs *p, int index, - const TCHAR *devname, const TCHAR *volname, const TCHAR *rootdir, bool readonly, - int cyls, int secspertrack, int surfaces, int reserved, - int blocksize, int bootpri, - const TCHAR *filesysdir, int hdc, int flag, - int pcyls, int pheads, int psecs) + const TCHAR *devname, const TCHAR *volname, const TCHAR *rootdir, bool readonly, + int cyls, int secspertrack, int surfaces, int reserved, + int blocksize, int bootpri, + const TCHAR *filesysdir, int hdc, int flag, + int pcyls, int pheads, int psecs) { - struct uaedev_config_info *uci; - int i; - TCHAR *s; + struct uaedev_config_info *uci; + int i; + TCHAR *s; - if (index < 0 && devname && _tcslen (devname) > 0) { - for (i = 0; i < p->mountitems; i++) { - if (p->mountconfig[i].devname && !_tcscmp (p->mountconfig[i].devname, devname)) - return 0; - } - } + if (index < 0 && devname && _tcslen (devname) > 0) + { + for (i = 0; i < p->mountitems; i++) + { + if (p->mountconfig[i].devname && !_tcscmp (p->mountconfig[i].devname, devname)) + return 0; + } + } - if (index < 0) { - uci = getuci(p); - uci->configoffset = -1; - } else { - uci = &p->mountconfig[index]; - } - if (!uci) - return 0; - uci->ishdf = volname == NULL ? 1 : 0; - _tcscpy (uci->devname, devname ? devname : _T("")); - _tcscpy (uci->volname, volname ? volname : _T("")); - _tcscpy (uci->rootdir, rootdir ? rootdir : _T("")); - validatedevicename (uci->devname); - validatevolumename (uci->volname); - uci->readonly = readonly; - uci->cyls = cyls; - uci->sectors = secspertrack; - uci->surfaces = surfaces; - uci->reserved = reserved; - uci->blocksize = blocksize; - uci->bootpri = bootpri; - uci->donotmount = 0; - uci->autoboot = 0; - if (!pcyls || !pheads || !psecs) - pcyls = pheads = psecs = 0; - uci->pcyls = pcyls; - uci->pheads = pheads; - uci->psecs = psecs; - if (bootpri < -128) - uci->donotmount = 1; - else if (bootpri >= -127) - uci->autoboot = 1; - uci->controller = hdc; - _tcscpy (uci->filesys, filesysdir ? filesysdir : _T("")); - if (!uci->devname[0]) { - TCHAR base[32]; - TCHAR base2[32]; - int num = 0; - if (uci->rootdir[0] == 0 && !uci->ishdf) - _tcscpy (base, _T("RDH")); - else - _tcscpy (base, _T("DH")); - _tcscpy (base2, base); - for (i = 0; i < p->mountitems; i++) { - _stprintf (base2, _T("%s%d"), base, num); - if (!_tcscmp(base2, p->mountconfig[i].devname)) { - num++; - i = -1; - continue; - } - } - _tcscpy (uci->devname, base2); - validatedevicename (uci->devname); - } - s = filesys_createvolname (volname, rootdir, _T("Harddrive")); - _tcscpy (uci->volname, s); - xfree (s); - return uci; + if (index < 0) + { + uci = getuci(p); + uci->configoffset = -1; + } + else + { + uci = &p->mountconfig[index]; + } + if (!uci) + return 0; + uci->ishdf = volname == NULL ? 1 : 0; + _tcscpy (uci->devname, devname ? devname : _T("")); + _tcscpy (uci->volname, volname ? volname : _T("")); + _tcscpy (uci->rootdir, rootdir ? rootdir : _T("")); + validatedevicename (uci->devname); + validatevolumename (uci->volname); + uci->readonly = readonly; + uci->cyls = cyls; + uci->sectors = secspertrack; + uci->surfaces = surfaces; + uci->reserved = reserved; + uci->blocksize = blocksize; + uci->bootpri = bootpri; + uci->donotmount = 0; + uci->autoboot = 0; + if (!pcyls || !pheads || !psecs) + pcyls = pheads = psecs = 0; + uci->pcyls = pcyls; + uci->pheads = pheads; + uci->psecs = psecs; + if (bootpri < -128) + uci->donotmount = 1; + else if (bootpri >= -127) + uci->autoboot = 1; + uci->controller = hdc; + _tcscpy (uci->filesys, filesysdir ? filesysdir : _T("")); + if (!uci->devname[0]) + { + TCHAR base[32]; + TCHAR base2[32]; + int num = 0; + if (uci->rootdir[0] == 0 && !uci->ishdf) + _tcscpy (base, _T("RDH")); + else + _tcscpy (base, _T("DH")); + _tcscpy (base2, base); + for (i = 0; i < p->mountitems; i++) + { + _stprintf (base2, _T("%s%d"), base, num); + if (!_tcscmp(base2, p->mountconfig[i].devname)) + { + num++; + i = -1; + continue; + } + } + _tcscpy (uci->devname, base2); + validatedevicename (uci->devname); + } + s = filesys_createvolname (volname, rootdir, _T("Harddrive")); + _tcscpy (uci->volname, s); + xfree (s); + return uci; } static int get_filesys_controller (const TCHAR *hdc) { - int hdcv = HD_CONTROLLER_UAE; - if(_tcslen(hdc) >= 4 && !_tcsncmp(hdc, _T("ide"), 3)) { - hdcv = hdc[3] - '0' + HD_CONTROLLER_IDE0; - if (hdcv < HD_CONTROLLER_IDE0 || hdcv > HD_CONTROLLER_IDE3) - hdcv = 0; - } - if(_tcslen(hdc) >= 5 && !_tcsncmp(hdc, _T("scsi"), 4)) { - hdcv = hdc[4] - '0' + HD_CONTROLLER_SCSI0; - if (hdcv < HD_CONTROLLER_SCSI0 || hdcv > HD_CONTROLLER_SCSI6) - hdcv = 0; - } - if (_tcslen (hdc) >= 6 && !_tcsncmp (hdc, _T("scsram"), 6)) - hdcv = HD_CONTROLLER_PCMCIA_SRAM; - if (_tcslen (hdc) >= 5 && !_tcsncmp (hdc, _T("scide"), 6)) - hdcv = HD_CONTROLLER_PCMCIA_IDE; - return hdcv; + int hdcv = HD_CONTROLLER_UAE; + if(_tcslen(hdc) >= 4 && !_tcsncmp(hdc, _T("ide"), 3)) + { + hdcv = hdc[3] - '0' + HD_CONTROLLER_IDE0; + if (hdcv < HD_CONTROLLER_IDE0 || hdcv > HD_CONTROLLER_IDE3) + hdcv = 0; + } + if(_tcslen(hdc) >= 5 && !_tcsncmp(hdc, _T("scsi"), 4)) + { + hdcv = hdc[4] - '0' + HD_CONTROLLER_SCSI0; + if (hdcv < HD_CONTROLLER_SCSI0 || hdcv > HD_CONTROLLER_SCSI6) + hdcv = 0; + } + if (_tcslen (hdc) >= 6 && !_tcsncmp (hdc, _T("scsram"), 6)) + hdcv = HD_CONTROLLER_PCMCIA_SRAM; + if (_tcslen (hdc) >= 5 && !_tcsncmp (hdc, _T("scide"), 6)) + hdcv = HD_CONTROLLER_PCMCIA_IDE; + return hdcv; } static int cfgfile_parse_newfilesys (struct uae_prefs *p, int nr, bool hdf, TCHAR *value) { - int cyls, secs, heads, reserved, bs, bp, hdcv; - int pcyls, pheads, psecs; - bool ro; - TCHAR *dname = NULL, *aname = _T(""), *root = NULL, *fs = NULL, *hdc; - TCHAR *tmpp = _tcschr (value, ','); - TCHAR *str = NULL; + int cyls, secs, heads, reserved, bs, bp, hdcv; + int pcyls, pheads, psecs; + bool ro; + TCHAR *dname = NULL, *aname = _T(""), *root = NULL, *fs = NULL, *hdc; + TCHAR *tmpp = _tcschr (value, ','); + TCHAR *str = NULL; - config_newfilesystem = 1; - if (tmpp == 0) - goto invalid_fs; + config_newfilesystem = 1; + if (tmpp == 0) + goto invalid_fs; - *tmpp++ = '\0'; - if (strcasecmp (value, _T("ro")) == 0) - ro = true; - else if (strcasecmp (value, _T("rw")) == 0) - ro = false; - else - goto invalid_fs; - cyls = 0,secs = 0; heads = 0; reserved = 0; bs = 0; bp = 0; - fs = 0; hdc = 0; hdcv = 0; - pcyls = pheads = psecs = 0; - - value = tmpp; - if (!hdf) { - tmpp = _tcschr (value, ':'); - if (tmpp == 0) - goto empty_fs; - *tmpp++ = 0; - dname = value; - aname = tmpp; - tmpp = _tcschr (tmpp, ':'); - if (tmpp == 0) - goto empty_fs; - *tmpp++ = 0; - root = tmpp; - tmpp = _tcschr (tmpp, ','); - if (tmpp == 0) - goto empty_fs; - *tmpp++ = 0; - if (! getintval (&tmpp, &bp, 0)) - goto empty_fs; - } else { - tmpp = _tcschr (value, ':'); - if (tmpp == 0) - goto invalid_fs; *tmpp++ = '\0'; - dname = value; - root = tmpp; - tmpp = _tcschr (tmpp, ','); - if (tmpp == 0) - goto invalid_fs; - *tmpp++ = 0; - aname = 0; - if (! getintval (&tmpp, &secs, ',') - || ! getintval (&tmpp, &heads, ',') - || ! getintval (&tmpp, &reserved, ',') - || ! getintval (&tmpp, &bs, ',')) - goto invalid_fs; - if (getintval2 (&tmpp, &bp, ',')) { - fs = tmpp; - tmpp = _tcschr (tmpp, ','); - if (tmpp != 0) { - *tmpp++ = 0; - TCHAR *tmpp2 = _tcschr (tmpp, ','); - if (tmpp2) - *tmpp2++ = 0; - hdcv = get_filesys_controller (tmpp); - if (tmpp2) { - if (getintval2 (&tmpp2, &cyls, ',')) { - getintval (&tmpp2, &pcyls, '/'); - getintval (&tmpp2, &pheads, '/'); - getintval2 (&tmpp2, &psecs, '/'); - } - } - } + if (strcasecmp (value, _T("ro")) == 0) + ro = true; + else if (strcasecmp (value, _T("rw")) == 0) + ro = false; + else + goto invalid_fs; + cyls = 0,secs = 0; + heads = 0; + reserved = 0; + bs = 0; + bp = 0; + fs = 0; + hdc = 0; + hdcv = 0; + pcyls = pheads = psecs = 0; + + value = tmpp; + if (!hdf) + { + tmpp = _tcschr (value, ':'); + if (tmpp == 0) + goto empty_fs; + *tmpp++ = 0; + dname = value; + aname = tmpp; + tmpp = _tcschr (tmpp, ':'); + if (tmpp == 0) + goto empty_fs; + *tmpp++ = 0; + root = tmpp; + tmpp = _tcschr (tmpp, ','); + if (tmpp == 0) + goto empty_fs; + *tmpp++ = 0; + if (! getintval (&tmpp, &bp, 0)) + goto empty_fs; + } + else + { + tmpp = _tcschr (value, ':'); + if (tmpp == 0) + goto invalid_fs; + *tmpp++ = '\0'; + dname = value; + root = tmpp; + tmpp = _tcschr (tmpp, ','); + if (tmpp == 0) + goto invalid_fs; + *tmpp++ = 0; + aname = 0; + if (! getintval (&tmpp, &secs, ',') + || ! getintval (&tmpp, &heads, ',') + || ! getintval (&tmpp, &reserved, ',') + || ! getintval (&tmpp, &bs, ',')) + goto invalid_fs; + if (getintval2 (&tmpp, &bp, ',')) + { + fs = tmpp; + tmpp = _tcschr (tmpp, ','); + if (tmpp != 0) + { + *tmpp++ = 0; + TCHAR *tmpp2 = _tcschr (tmpp, ','); + if (tmpp2) + *tmpp2++ = 0; + hdcv = get_filesys_controller (tmpp); + if (tmpp2) + { + if (getintval2 (&tmpp2, &cyls, ',')) + { + getintval (&tmpp2, &pcyls, '/'); + getintval (&tmpp2, &pheads, '/'); + getintval2 (&tmpp2, &psecs, '/'); + } + } + } + } } - } empty_fs: - if (root) { - if (_tcslen (root) > 3 && root[0] == 'H' && root[1] == 'D' && root[2] == '_') { - root += 2; - *root = ':'; - } - str = cfgfile_subst_path (UNEXPANDED, p->path_hardfile, root); - } + if (root) + { + if (_tcslen (root) > 3 && root[0] == 'H' && root[1] == 'D' && root[2] == '_') + { + root += 2; + *root = ':'; + } + str = cfgfile_subst_path (UNEXPANDED, p->path_hardfile, root); + } #ifdef FILESYS - add_filesys_config (p, nr, dname, aname, str, ro, cyls, secs, heads, reserved, bs, bp, fs, hdcv, 0, pcyls, pheads, psecs); + add_filesys_config (p, nr, dname, aname, str, ro, cyls, secs, heads, reserved, bs, bp, fs, hdcv, 0, pcyls, pheads, psecs); #endif - xfree (str); - return 1; + xfree (str); + return 1; invalid_fs: - write_log (_T("Invalid filesystem/hardfile specification.\n")); - return 1; + write_log (_T("Invalid filesystem/hardfile specification.\n")); + return 1; } static int cfgfile_parse_filesys (struct uae_prefs *p, const TCHAR *option, TCHAR *value) { - int i; + int i; - for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) { - TCHAR tmp[100]; - _stprintf (tmp, _T("uaehf%d"), i); - if (_tcscmp (option, tmp) == 0) { - for (;;) { - bool hdf = false; - TCHAR *tmpp = _tcschr (value, ','); - if (tmpp == NULL) - return 1; - *tmpp++ = 0; - if (strcasecmp (value, _T("hdf")) == 0) { - hdf = true; - } else if (strcasecmp (value, _T("dir")) != 0) { - return 1; - } + for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) + { + TCHAR tmp[100]; + _stprintf (tmp, _T("uaehf%d"), i); + if (_tcscmp (option, tmp) == 0) + { + for (;;) + { + bool hdf = false; + TCHAR *tmpp = _tcschr (value, ','); + if (tmpp == NULL) + return 1; + *tmpp++ = 0; + if (strcasecmp (value, _T("hdf")) == 0) + { + hdf = true; + } + else if (strcasecmp (value, _T("dir")) != 0) + { + return 1; + } #if 0 // not yet - return cfgfile_parse_newfilesys (p, i, hdf, tmpp); + return cfgfile_parse_newfilesys (p, i, hdf, tmpp); #else - return 1; + return 1; #endif - } - return 1; - } else if (!_tcsncmp (option, tmp, _tcslen (tmp)) && option[_tcslen (tmp)] == '_') { - struct uaedev_config_info *uci = &currprefs.mountconfig[i]; - if (uci->devname) { - const TCHAR *s = &option[_tcslen (tmp) + 1]; - if (!_tcscmp (s, _T("bootpri"))) { - getintval (&value, &uci->bootpri, 0); - } else if (!_tcscmp (s, _T("read-only"))) { - cfgfile_yesno (NULL, value, NULL, &uci->readonly); - } else if (!_tcscmp (s, _T("volumename"))) { - _tcscpy (uci->volname, value); - } else if (!_tcscmp (s, _T("devicename"))) { - _tcscpy (uci->devname, value); - } else if (!_tcscmp (s, _T("root"))) { - _tcscpy (uci->rootdir, value); - } else if (!_tcscmp (s, _T("filesys"))) { - _tcscpy (uci->filesys, value); - } else if (!_tcscmp (s, _T("controller"))) { - uci->controller = get_filesys_controller (value); - } - } - } - } + } + return 1; + } + else if (!_tcsncmp (option, tmp, _tcslen (tmp)) && option[_tcslen (tmp)] == '_') + { + struct uaedev_config_info *uci = &currprefs.mountconfig[i]; + if (uci->devname) + { + const TCHAR *s = &option[_tcslen (tmp) + 1]; + if (!_tcscmp (s, _T("bootpri"))) + { + getintval (&value, &uci->bootpri, 0); + } + else if (!_tcscmp (s, _T("read-only"))) + { + cfgfile_yesno (NULL, value, NULL, &uci->readonly); + } + else if (!_tcscmp (s, _T("volumename"))) + { + _tcscpy (uci->volname, value); + } + else if (!_tcscmp (s, _T("devicename"))) + { + _tcscpy (uci->devname, value); + } + else if (!_tcscmp (s, _T("root"))) + { + _tcscpy (uci->rootdir, value); + } + else if (!_tcscmp (s, _T("filesys"))) + { + _tcscpy (uci->filesys, value); + } + else if (!_tcscmp (s, _T("controller"))) + { + uci->controller = get_filesys_controller (value); + } + } + } + } - if (_tcscmp (option, _T("filesystem")) == 0 - || _tcscmp (option, _T("hardfile")) == 0) - { - int secs, heads, reserved, bs; - bool ro; - TCHAR *aname, *root; - TCHAR *tmpp = _tcschr (value, ','); - TCHAR *str; + if (_tcscmp (option, _T("filesystem")) == 0 + || _tcscmp (option, _T("hardfile")) == 0) + { + int secs, heads, reserved, bs; + bool ro; + TCHAR *aname, *root; + TCHAR *tmpp = _tcschr (value, ','); + TCHAR *str; - if (config_newfilesystem) - return 1; + if (config_newfilesystem) + return 1; - if (tmpp == 0) - goto invalid_fs; + if (tmpp == 0) + goto invalid_fs; - *tmpp++ = '\0'; - if (_tcscmp (value, _T("1")) == 0 || strcasecmp (value, _T("ro")) == 0 - || strcasecmp (value, _T("readonly")) == 0 - || strcasecmp (value, _T("read-only")) == 0) - ro = true; - else if (_tcscmp (value, _T("0")) == 0 || strcasecmp (value, _T("rw")) == 0 - || strcasecmp (value, _T("readwrite")) == 0 - || strcasecmp (value, _T("read-write")) == 0) - ro = false; - else - goto invalid_fs; - secs = 0; heads = 0; reserved = 0; bs = 0; + *tmpp++ = '\0'; + if (_tcscmp (value, _T("1")) == 0 || strcasecmp (value, _T("ro")) == 0 + || strcasecmp (value, _T("readonly")) == 0 + || strcasecmp (value, _T("read-only")) == 0) + ro = true; + else if (_tcscmp (value, _T("0")) == 0 || strcasecmp (value, _T("rw")) == 0 + || strcasecmp (value, _T("readwrite")) == 0 + || strcasecmp (value, _T("read-write")) == 0) + ro = false; + else + goto invalid_fs; + secs = 0; + heads = 0; + reserved = 0; + bs = 0; - value = tmpp; - if (_tcscmp (option, _T("filesystem")) == 0) { - tmpp = _tcschr (value, ':'); - if (tmpp == 0) - goto invalid_fs; - *tmpp++ = '\0'; - aname = value; - root = tmpp; - } else { - if (! getintval (&value, &secs, ',') - || ! getintval (&value, &heads, ',') - || ! getintval (&value, &reserved, ',') - || ! getintval (&value, &bs, ',')) - goto invalid_fs; - root = value; - aname = 0; - } - str = cfgfile_subst_path (UNEXPANDED, p->path_hardfile, root); + value = tmpp; + if (_tcscmp (option, _T("filesystem")) == 0) + { + tmpp = _tcschr (value, ':'); + if (tmpp == 0) + goto invalid_fs; + *tmpp++ = '\0'; + aname = value; + root = tmpp; + } + else + { + if (! getintval (&value, &secs, ',') + || ! getintval (&value, &heads, ',') + || ! getintval (&value, &reserved, ',') + || ! getintval (&value, &bs, ',')) + goto invalid_fs; + root = value; + aname = 0; + } + str = cfgfile_subst_path (UNEXPANDED, p->path_hardfile, root); #ifdef FILESYS - add_filesys_config (p, -1, NULL, aname, str, ro, 0, secs, heads, reserved, bs, 0, NULL, 0, 0, 0, 0, 0); + add_filesys_config (p, -1, NULL, aname, str, ro, 0, secs, heads, reserved, bs, 0, NULL, 0, 0, 0, 0, 0); #endif - xfree (str); - return 1; + xfree (str); + return 1; invalid_fs: - write_log (_T("Invalid filesystem/hardfile specification.\n")); - return 1; + write_log (_T("Invalid filesystem/hardfile specification.\n")); + return 1; - } + } - if (_tcscmp (option, _T("filesystem2")) == 0) - return cfgfile_parse_newfilesys (p, -1, false, value); - if (_tcscmp (option, _T("hardfile2")) == 0) - return cfgfile_parse_newfilesys (p, -1, true, value); + if (_tcscmp (option, _T("filesystem2")) == 0) + return cfgfile_parse_newfilesys (p, -1, false, value); + if (_tcscmp (option, _T("hardfile2")) == 0) + return cfgfile_parse_newfilesys (p, -1, true, value); - return 0; + return 0; } static int cfgfile_parse_hardware (struct uae_prefs *p, const TCHAR *option, TCHAR *value) { - int tmpval, dummyint, i; - TCHAR *section = 0; - TCHAR tmpbuf[CONFIG_BLEN]; + int tmpval, dummyint, i; + TCHAR *section = 0; + TCHAR tmpbuf[CONFIG_BLEN]; - if (cfgfile_yesno (option, value, _T("immediate_blits"), &p->immediate_blits) - || cfgfile_yesno (option, value, _T("fast_copper"), &p->fast_copper) - || cfgfile_yesno (option, value, _T("cd32cd"), &p->cs_cd32cd) - || cfgfile_yesno (option, value, _T("cd32c2p"), &p->cs_cd32c2p) - || cfgfile_yesno (option, value, _T("cd32nvram"), &p->cs_cd32nvram) - || cfgfile_yesno (option, value, _T("synchronize_clock"), &p->tod_hack) + if (cfgfile_yesno (option, value, _T("immediate_blits"), &p->immediate_blits) + || cfgfile_yesno (option, value, _T("fast_copper"), &p->fast_copper) + || cfgfile_yesno (option, value, _T("cd32cd"), &p->cs_cd32cd) + || cfgfile_yesno (option, value, _T("cd32c2p"), &p->cs_cd32c2p) + || cfgfile_yesno (option, value, _T("cd32nvram"), &p->cs_cd32nvram) + || cfgfile_yesno (option, value, _T("synchronize_clock"), &p->tod_hack) - || cfgfile_yesno (option, value, _T("ntsc"), &p->ntscmode) - || cfgfile_yesno (option, value, _T("cpu_compatible"), &p->cpu_compatible) - || cfgfile_yesno (option, value, _T("cpu_24bit_addressing"), &p->address_space_24)) - return 1; - if (cfgfile_intval (option, value, _T("cachesize"), &p->cachesize, 1) - || cfgfile_intval (option, value, _T("chipset_refreshrate"), &p->chipset_refreshrate, 1) - || cfgfile_intval (option, value, _T("fastmem_size"), &p->fastmem_size, 0x100000) - || cfgfile_intval (option, value, _T("z3mem_size"), &p->z3fastmem_size, 0x100000) - || cfgfile_intval (option, value, _T("z3mem_start"), &p->z3fastmem_start, 1) - || cfgfile_intval (option, value, _T("bogomem_size"), &p->bogomem_size, 0x40000) - || cfgfile_intval (option, value, _T("gfxcard_size"), &p->rtgmem_size, 0x100000) - || cfgfile_strval (option, value, _T("gfxcard_type"), &p->rtgmem_type, rtgtype, 0) - || cfgfile_intval (option, value, _T("rtg_modes"), &p->picasso96_modeflags, 1) - || cfgfile_intval (option, value, _T("floppy_speed"), &p->floppy_speed, 1) - || cfgfile_intval (option, value, _T("floppy_write_length"), &p->floppy_write_length, 1) - || cfgfile_intval (option, value, _T("nr_floppies"), &p->nr_floppies, 1) - || cfgfile_intval (option, value, _T("floppy0type"), &p->floppyslots[0].dfxtype, 1) - || cfgfile_intval (option, value, _T("floppy1type"), &p->floppyslots[1].dfxtype, 1) - || cfgfile_intval (option, value, _T("floppy2type"), &p->floppyslots[2].dfxtype, 1) - || cfgfile_intval (option, value, _T("floppy3type"), &p->floppyslots[3].dfxtype, 1)) - return 1; + || cfgfile_yesno (option, value, _T("ntsc"), &p->ntscmode) + || cfgfile_yesno (option, value, _T("cpu_compatible"), &p->cpu_compatible) + || cfgfile_yesno (option, value, _T("cpu_24bit_addressing"), &p->address_space_24)) + return 1; + if (cfgfile_intval (option, value, _T("cachesize"), &p->cachesize, 1) + || cfgfile_intval (option, value, _T("chipset_refreshrate"), &p->chipset_refreshrate, 1) + || cfgfile_intval (option, value, _T("fastmem_size"), &p->fastmem_size, 0x100000) + || cfgfile_intval (option, value, _T("z3mem_size"), &p->z3fastmem_size, 0x100000) + || cfgfile_intval (option, value, _T("z3mem_start"), &p->z3fastmem_start, 1) + || cfgfile_intval (option, value, _T("bogomem_size"), &p->bogomem_size, 0x40000) + || cfgfile_intval (option, value, _T("gfxcard_size"), &p->rtgmem_size, 0x100000) + || cfgfile_strval (option, value, _T("gfxcard_type"), &p->rtgmem_type, rtgtype, 0) + || cfgfile_intval (option, value, _T("rtg_modes"), &p->picasso96_modeflags, 1) + || cfgfile_intval (option, value, _T("floppy_speed"), &p->floppy_speed, 1) + || cfgfile_intval (option, value, _T("floppy_write_length"), &p->floppy_write_length, 1) + || cfgfile_intval (option, value, _T("nr_floppies"), &p->nr_floppies, 1) + || cfgfile_intval (option, value, _T("floppy0type"), &p->floppyslots[0].dfxtype, 1) + || cfgfile_intval (option, value, _T("floppy1type"), &p->floppyslots[1].dfxtype, 1) + || cfgfile_intval (option, value, _T("floppy2type"), &p->floppyslots[2].dfxtype, 1) + || cfgfile_intval (option, value, _T("floppy3type"), &p->floppyslots[3].dfxtype, 1)) + return 1; - if (cfgfile_strval (option, value, _T("collision_level"), &p->collision_level, collmode, 0) - || cfgfile_strval (option, value, _T("waiting_blits"), &p->waiting_blits, waitblits, 0) - ) - return 1; - if (cfgfile_string (option, value, _T("kickstart_rom_file"), p->romfile, sizeof p->romfile) - || cfgfile_string (option, value, _T("kickstart_ext_rom_file"), p->romextfile, sizeof p->romextfile) - || cfgfile_string (option, value, _T("flash_file"), p->flashfile, sizeof p->flashfile)) - return 1; + if (cfgfile_strval (option, value, _T("collision_level"), &p->collision_level, collmode, 0) + || cfgfile_strval (option, value, _T("waiting_blits"), &p->waiting_blits, waitblits, 0) + ) + return 1; + if (cfgfile_string (option, value, _T("kickstart_rom_file"), p->romfile, sizeof p->romfile) + || cfgfile_string (option, value, _T("kickstart_ext_rom_file"), p->romextfile, sizeof p->romextfile) + || cfgfile_string (option, value, _T("flash_file"), p->flashfile, sizeof p->flashfile)) + return 1; - for (i = 0; i < 4; i++) { - _stprintf (tmpbuf, _T("floppy%d"), i); - if (cfgfile_path (option, value, tmpbuf, p->floppyslots[i].df, sizeof p->floppyslots[i].df / sizeof (TCHAR))) - return 1; - } + for (i = 0; i < 4; i++) + { + _stprintf (tmpbuf, _T("floppy%d"), i); + if (cfgfile_path (option, value, tmpbuf, p->floppyslots[i].df, sizeof p->floppyslots[i].df / sizeof (TCHAR))) + return 1; + } - if (cfgfile_intval (option, value, _T("chipmem_size"), &dummyint, 1)) { - if (dummyint < 0) - p->chipmem_size = 0x20000; /* 128k, prototype support */ - else if (dummyint == 0) - p->chipmem_size = 0x40000; /* 256k */ - else - p->chipmem_size = dummyint * 0x80000; - return 1; - } + if (cfgfile_intval (option, value, _T("chipmem_size"), &dummyint, 1)) + { + if (dummyint < 0) + p->chipmem_size = 0x20000; /* 128k, prototype support */ + else if (dummyint == 0) + p->chipmem_size = 0x40000; /* 256k */ + else + p->chipmem_size = dummyint * 0x80000; + return 1; + } - if (cfgfile_strval (option, value, _T("chipset"), &tmpval, csmode, 0)) { - set_chipset_mask (p, tmpval); - return 1; - } + if (cfgfile_strval (option, value, _T("chipset"), &tmpval, csmode, 0)) + { + set_chipset_mask (p, tmpval); + return 1; + } - if (cfgfile_string (option, value, _T("fpu_model"), tmpbuf, sizeof tmpbuf / sizeof (TCHAR))) { - p->fpu_model = _tstol(tmpbuf); - return 1; - } + if (cfgfile_string (option, value, _T("fpu_model"), tmpbuf, sizeof tmpbuf / sizeof (TCHAR))) + { + p->fpu_model = _tstol(tmpbuf); + return 1; + } - if (cfgfile_string (option, value, _T("cpu_model"), tmpbuf, sizeof tmpbuf / sizeof (TCHAR))) { - p->cpu_model = _tstol(tmpbuf); - p->fpu_model = 0; - return 1; - } + if (cfgfile_string (option, value, _T("cpu_model"), tmpbuf, sizeof tmpbuf / sizeof (TCHAR))) + { + p->cpu_model = _tstol(tmpbuf); + p->fpu_model = 0; + return 1; + } /* old-style CPU configuration */ - if (cfgfile_string (option, value, _T("cpu_type"), tmpbuf, sizeof tmpbuf / sizeof (TCHAR))) { - p->fpu_model = 0; - p->address_space_24 = 0; - p->cpu_model = 680000; - if (!_tcscmp (tmpbuf, _T("68000"))) { - p->cpu_model = 68000; - } else if (!_tcscmp (tmpbuf, _T("68010"))) { - p->cpu_model = 68010; - } else if (!_tcscmp (tmpbuf, _T("68ec020"))) { - p->cpu_model = 68020; - p->address_space_24 = 1; - } else if (!_tcscmp (tmpbuf, _T("68020"))) { - p->cpu_model = 68020; - } else if (!_tcscmp (tmpbuf, _T("68ec020/68881"))) { - p->cpu_model = 68020; - p->fpu_model = 68881; - p->address_space_24 = 1; - } else if (!_tcscmp (tmpbuf, _T("68020/68881"))) { - p->cpu_model = 68020; - p->fpu_model = 68881; - } else if (!_tcscmp (tmpbuf, _T("68040"))) { - p->cpu_model = 68040; - p->fpu_model = 68040; - } else if (!_tcscmp (tmpbuf, _T("68060"))) { - p->cpu_model = 68060; - p->fpu_model = 68060; - } - return 1; - } - - /* Broken earlier versions used to write this out as a string. */ - if (cfgfile_strval (option, value, _T("finegraincpu_speed"), &p->m68k_speed, speedmode, 1)) { - p->m68k_speed--; - return 1; - } + if (cfgfile_string (option, value, _T("cpu_type"), tmpbuf, sizeof tmpbuf / sizeof (TCHAR))) + { + p->fpu_model = 0; + p->address_space_24 = 0; + p->cpu_model = 680000; + if (!_tcscmp (tmpbuf, _T("68000"))) + { + p->cpu_model = 68000; + } + else if (!_tcscmp (tmpbuf, _T("68010"))) + { + p->cpu_model = 68010; + } + else if (!_tcscmp (tmpbuf, _T("68ec020"))) + { + p->cpu_model = 68020; + p->address_space_24 = 1; + } + else if (!_tcscmp (tmpbuf, _T("68020"))) + { + p->cpu_model = 68020; + } + else if (!_tcscmp (tmpbuf, _T("68ec020/68881"))) + { + p->cpu_model = 68020; + p->fpu_model = 68881; + p->address_space_24 = 1; + } + else if (!_tcscmp (tmpbuf, _T("68020/68881"))) + { + p->cpu_model = 68020; + p->fpu_model = 68881; + } + else if (!_tcscmp (tmpbuf, _T("68040"))) + { + p->cpu_model = 68040; + p->fpu_model = 68040; + } + else if (!_tcscmp (tmpbuf, _T("68060"))) + { + p->cpu_model = 68060; + p->fpu_model = 68060; + } + return 1; + } - if (cfgfile_strval (option, value, _T("cpu_speed"), &p->m68k_speed, speedmode, 1)) { - p->m68k_speed--; - return 1; - } - if (cfgfile_intval (option, value, _T("cpu_speed"), &p->m68k_speed, 1)) { - p->m68k_speed *= CYCLE_UNIT; - return 1; - } + /* Broken earlier versions used to write this out as a string. */ + if (cfgfile_strval (option, value, _T("finegraincpu_speed"), &p->m68k_speed, speedmode, 1)) + { + p->m68k_speed--; + return 1; + } - if (cfgfile_intval (option, value, _T("finegrain_cpu_speed"), &p->m68k_speed, 1)) { - if (OFFICIAL_CYCLE_UNIT > CYCLE_UNIT) { - int factor = OFFICIAL_CYCLE_UNIT / CYCLE_UNIT; - p->m68k_speed = (p->m68k_speed + factor - 1) / factor; - } - if (strcasecmp (value, _T("max")) == 0) - p->m68k_speed = -1; - return 1; - } + if (cfgfile_strval (option, value, _T("cpu_speed"), &p->m68k_speed, speedmode, 1)) + { + p->m68k_speed--; + return 1; + } + if (cfgfile_intval (option, value, _T("cpu_speed"), &p->m68k_speed, 1)) + { + p->m68k_speed *= CYCLE_UNIT; + return 1; + } - if (cfgfile_parse_filesys (p, option, value)) - return 1; + if (cfgfile_intval (option, value, _T("finegrain_cpu_speed"), &p->m68k_speed, 1)) + { + if (OFFICIAL_CYCLE_UNIT > CYCLE_UNIT) + { + int factor = OFFICIAL_CYCLE_UNIT / CYCLE_UNIT; + p->m68k_speed = (p->m68k_speed + factor - 1) / factor; + } + if (strcasecmp (value, _T("max")) == 0) + p->m68k_speed = -1; + return 1; + } - return 0; + if (cfgfile_parse_filesys (p, option, value)) + return 1; + + return 0; } static bool createconfigstore (struct uae_prefs*); @@ -1483,1376 +1647,1541 @@ static int getconfigstoreline (const TCHAR *option, TCHAR *value); static void calcformula (struct uae_prefs *prefs, TCHAR *in) { - TCHAR out[MAX_DPATH], configvalue[CONFIG_BLEN]; - TCHAR *p = out; - double val; - int cnt1, cnt2; - static bool updatestore; + TCHAR out[MAX_DPATH], configvalue[CONFIG_BLEN]; + TCHAR *p = out; + double val; + int cnt1, cnt2; + static bool updatestore; - if (_tcslen (in) < 2 || in[0] != '[' || in[_tcslen (in) - 1] != ']') - return; - if (!configstore || updatestore) - createconfigstore (prefs); - updatestore = false; - if (!configstore) - return; - cnt1 = cnt2 = 0; - for (int i = 1; i < _tcslen (in) - 1; i++) { - TCHAR c = _totupper (in[i]); - if (c >= 'A' && c <='Z') { - TCHAR *start = &in[i]; - while (_istalnum (c) || c == '_' || c == '.') { - i++; - c = in[i]; - } - TCHAR store = in[i]; - in[i] = 0; - //write_log (_T("'%s'\n"), start); - if (!getconfigstoreline (start, configvalue)) - return; - _tcscpy (p, configvalue); - p += _tcslen (p); - in[i] = store; - i--; - cnt1++; - } else { - cnt2++; - *p ++= c; - } - } - *p = 0; - if (cnt1 == 0 && cnt2 == 0) - return; - /* single config entry only? */ - if (cnt1 == 1 && cnt2 == 0) { - _tcscpy (in, out); - updatestore = true; - return; - } - if (calc (out, &val)) { - _stprintf (in, _T("%d"), (int)val); - updatestore = true; - return; - } + if (_tcslen (in) < 2 || in[0] != '[' || in[_tcslen (in) - 1] != ']') + return; + if (!configstore || updatestore) + createconfigstore (prefs); + updatestore = false; + if (!configstore) + return; + cnt1 = cnt2 = 0; + for (int i = 1; i < _tcslen (in) - 1; i++) + { + TCHAR c = _totupper (in[i]); + if (c >= 'A' && c <='Z') + { + TCHAR *start = &in[i]; + while (_istalnum (c) || c == '_' || c == '.') + { + i++; + c = in[i]; + } + TCHAR store = in[i]; + in[i] = 0; + //write_log (_T("'%s'\n"), start); + if (!getconfigstoreline (start, configvalue)) + return; + _tcscpy (p, configvalue); + p += _tcslen (p); + in[i] = store; + i--; + cnt1++; + } + else + { + cnt2++; + *p ++= c; + } + } + *p = 0; + if (cnt1 == 0 && cnt2 == 0) + return; + /* single config entry only? */ + if (cnt1 == 1 && cnt2 == 0) + { + _tcscpy (in, out); + updatestore = true; + return; + } + if (calc (out, &val)) + { + _stprintf (in, _T("%d"), (int)val); + updatestore = true; + return; + } } int cfgfile_parse_option (struct uae_prefs *p, TCHAR *option, TCHAR *value, int type) { - calcformula (p, value); + calcformula (p, value); - if (!_tcscmp (option, _T("config_hardware"))) - return 1; - if (!_tcscmp (option, _T("config_host"))) - return 1; - if (type == 0 || (type & CONFIG_TYPE_HARDWARE)) { - if (cfgfile_parse_hardware (p, option, value)) - return 1; - } - if (type == 0 || (type & CONFIG_TYPE_HOST)) { - if (cfgfile_parse_host (p, option, value)) - return 1; - } - if (type > 0 && (type & (CONFIG_TYPE_HARDWARE | CONFIG_TYPE_HOST)) != (CONFIG_TYPE_HARDWARE | CONFIG_TYPE_HOST)) - return 1; - return 0; + if (!_tcscmp (option, _T("config_hardware"))) + return 1; + if (!_tcscmp (option, _T("config_host"))) + return 1; + if (type == 0 || (type & CONFIG_TYPE_HARDWARE)) + { + if (cfgfile_parse_hardware (p, option, value)) + return 1; + } + if (type == 0 || (type & CONFIG_TYPE_HOST)) + { + if (cfgfile_parse_host (p, option, value)) + return 1; + } + if (type > 0 && (type & (CONFIG_TYPE_HARDWARE | CONFIG_TYPE_HOST)) != (CONFIG_TYPE_HARDWARE | CONFIG_TYPE_HOST)) + return 1; + return 0; } static int isutf8ext (TCHAR *s) { - if (_tcslen (s) > _tcslen (UTF8NAME) && !_tcscmp (s + _tcslen (s) - _tcslen (UTF8NAME), UTF8NAME)) { - s[_tcslen (s) - _tcslen (UTF8NAME)] = 0; - return 1; - } - return 0; + if (_tcslen (s) > _tcslen (UTF8NAME) && !_tcscmp (s + _tcslen (s) - _tcslen (UTF8NAME), UTF8NAME)) + { + s[_tcslen (s) - _tcslen (UTF8NAME)] = 0; + return 1; + } + return 0; } static int cfgfile_separate_linea (char *line, TCHAR *line1b, TCHAR *line2b) { - char *line1, *line2; - int i; + char *line1, *line2; + int i; - line1 = line; - line1 += strspn (line1, "\t \r\n"); - if (*line1 == ';') - return 0; - line2 = strchr (line, '='); - if (! line2) { - write_log ("CFGFILE: line was incomplete with only %s\n", line1); - return 0; - } - *line2++ = '\0'; + line1 = line; + line1 += strspn (line1, "\t \r\n"); + if (*line1 == ';') + return 0; + line2 = strchr (line, '='); + if (! line2) + { + write_log ("CFGFILE: line was incomplete with only %s\n", line1); + return 0; + } + *line2++ = '\0'; - /* Get rid of whitespace. */ - i = strlen (line2); - while (i > 0 && (line2[i - 1] == '\t' || line2[i - 1] == ' ' - || line2[i - 1] == '\r' || line2[i - 1] == '\n')) - line2[--i] = '\0'; - line2 += strspn (line2, "\t \r\n"); + /* Get rid of whitespace. */ + i = strlen (line2); + while (i > 0 && (line2[i - 1] == '\t' || line2[i - 1] == ' ' + || line2[i - 1] == '\r' || line2[i - 1] == '\n')) + line2[--i] = '\0'; + line2 += strspn (line2, "\t \r\n"); - i = strlen (line); - while (i > 0 && (line[i - 1] == '\t' || line[i - 1] == ' ' - || line[i - 1] == '\r' || line[i - 1] == '\n')) - line[--i] = '\0'; - line += strspn (line, "\t \r\n"); + i = strlen (line); + while (i > 0 && (line[i - 1] == '\t' || line[i - 1] == ' ' + || line[i - 1] == '\r' || line[i - 1] == '\n')) + line[--i] = '\0'; + line += strspn (line, "\t \r\n"); - _tcscpy (line1b, line); - _tcscpy (line2b, line2); + _tcscpy (line1b, line); + _tcscpy (line2b, line2); - return 1; + return 1; } static int cfgfile_separate_line (TCHAR *line, TCHAR *line1b, TCHAR *line2b) { - TCHAR *line1, *line2; - int i; + TCHAR *line1, *line2; + int i; - line1 = line; - line1 += _tcsspn (line1, _T("\t \r\n")); - if (*line1 == ';') - return 0; - line2 = _tcschr (line, '='); - if (! line2) { - write_log (_T("CFGFILE: line was incomplete with only %s\n"), line1); - return 0; - } - *line2++ = '\0'; + line1 = line; + line1 += _tcsspn (line1, _T("\t \r\n")); + if (*line1 == ';') + return 0; + line2 = _tcschr (line, '='); + if (! line2) + { + write_log (_T("CFGFILE: line was incomplete with only %s\n"), line1); + return 0; + } + *line2++ = '\0'; - /* Get rid of whitespace. */ - i = _tcslen (line2); - while (i > 0 && (line2[i - 1] == '\t' || line2[i - 1] == ' ' - || line2[i - 1] == '\r' || line2[i - 1] == '\n')) - line2[--i] = '\0'; - line2 += _tcsspn (line2, _T("\t \r\n")); - _tcscpy (line2b, line2); - i = _tcslen (line); - while (i > 0 && (line[i - 1] == '\t' || line[i - 1] == ' ' - || line[i - 1] == '\r' || line[i - 1] == '\n')) - line[--i] = '\0'; - line += _tcsspn (line, _T("\t \r\n")); - _tcscpy (line1b, line); + /* Get rid of whitespace. */ + i = _tcslen (line2); + while (i > 0 && (line2[i - 1] == '\t' || line2[i - 1] == ' ' + || line2[i - 1] == '\r' || line2[i - 1] == '\n')) + line2[--i] = '\0'; + line2 += _tcsspn (line2, _T("\t \r\n")); + _tcscpy (line2b, line2); + i = _tcslen (line); + while (i > 0 && (line[i - 1] == '\t' || line[i - 1] == ' ' + || line[i - 1] == '\r' || line[i - 1] == '\n')) + line[--i] = '\0'; + line += _tcsspn (line, _T("\t \r\n")); + _tcscpy (line1b, line); - if (line2b[0] == '"' || line2b[0] == '\"') { - TCHAR c = line2b[0]; - int i = 0; - memmove (line2b, line2b + 1, (_tcslen (line2b) + 1) * sizeof (TCHAR)); - while (line2b[i] != 0 && line2b[i] != c) - i++; - line2b[i] = 0; - } + if (line2b[0] == '"' || line2b[0] == '\"') + { + TCHAR c = line2b[0]; + int i = 0; + memmove (line2b, line2b + 1, (_tcslen (line2b) + 1) * sizeof (TCHAR)); + while (line2b[i] != 0 && line2b[i] != c) + i++; + line2b[i] = 0; + } - if (isutf8ext (line1b)) - return 0; - return 1; + if (isutf8ext (line1b)) + return 0; + return 1; } static int isobsolete (TCHAR *s) { - int i = 0; - while (obsolete[i]) { - if (!strcasecmp (s, obsolete[i])) { - write_log (_T("obsolete config entry '%s'\n"), s); - return 1; - } - i++; - } - if (_tcslen (s) > 2 && !_tcsncmp (s, _T("w."), 2)) - return 1; - if (_tcslen (s) >= 10 && !_tcsncmp (s, _T("gfx_opengl"), 10)) { - write_log (_T("obsolete config entry '%s\n"), s); - return 1; - } - if (_tcslen (s) >= 6 && !_tcsncmp (s, _T("gfx_3d"), 6)) { - write_log (_T("obsolete config entry '%s\n"), s); - return 1; - } - return 0; + int i = 0; + while (obsolete[i]) + { + if (!strcasecmp (s, obsolete[i])) + { + write_log (_T("obsolete config entry '%s'\n"), s); + return 1; + } + i++; + } + if (_tcslen (s) > 2 && !_tcsncmp (s, _T("w."), 2)) + return 1; + if (_tcslen (s) >= 10 && !_tcsncmp (s, _T("gfx_opengl"), 10)) + { + write_log (_T("obsolete config entry '%s\n"), s); + return 1; + } + if (_tcslen (s) >= 6 && !_tcsncmp (s, _T("gfx_3d"), 6)) + { + write_log (_T("obsolete config entry '%s\n"), s); + return 1; + } + return 0; } static void cfgfile_parse_separated_line (struct uae_prefs *p, TCHAR *line1b, TCHAR *line2b, int type) { - TCHAR line3b[CONFIG_BLEN], line4b[CONFIG_BLEN]; - struct strlist *sl; - int ret; + TCHAR line3b[CONFIG_BLEN], line4b[CONFIG_BLEN]; + struct strlist *sl; + int ret; - _tcscpy (line3b, line1b); - _tcscpy (line4b, line2b); - ret = cfgfile_parse_option (p, line1b, line2b, type); - if (!isobsolete (line3b)) { - for (sl = p->all_lines; sl; sl = sl->next) { - if (sl->option && !strcasecmp (line1b, sl->option)) break; - } - if (!sl) { - struct strlist *u = xcalloc (struct strlist, 1); - u->option = my_strdup(line3b); - u->value = my_strdup(line4b); - u->next = p->all_lines; - p->all_lines = u; - if (!ret) { - u->unknown = 1; - write_log (_T("unknown config entry: '%s=%s'\n"), u->option, u->value); - } - } - } + _tcscpy (line3b, line1b); + _tcscpy (line4b, line2b); + ret = cfgfile_parse_option (p, line1b, line2b, type); + if (!isobsolete (line3b)) + { + for (sl = p->all_lines; sl; sl = sl->next) + { + if (sl->option && !strcasecmp (line1b, sl->option)) break; + } + if (!sl) + { + struct strlist *u = xcalloc (struct strlist, 1); + u->option = my_strdup(line3b); + u->value = my_strdup(line4b); + u->next = p->all_lines; + p->all_lines = u; + if (!ret) + { + u->unknown = 1; + write_log (_T("unknown config entry: '%s=%s'\n"), u->option, u->value); + } + } + } } void cfgfile_parse_lines (struct uae_prefs *p, const TCHAR *lines, int type) { - TCHAR *buf = my_strdup (lines); - TCHAR *t = buf; - for (;;) { - if (_tcslen (t) == 0) - break; - TCHAR *t2 = _tcschr (t, '\n'); - if (t2) - *t2 = 0; - cfgfile_parse_line (p, t, type); - if (!t2) - break; - t = t2 + 1; - } - xfree (buf); + TCHAR *buf = my_strdup (lines); + TCHAR *t = buf; + for (;;) + { + if (_tcslen (t) == 0) + break; + TCHAR *t2 = _tcschr (t, '\n'); + if (t2) + *t2 = 0; + cfgfile_parse_line (p, t, type); + if (!t2) + break; + t = t2 + 1; + } + xfree (buf); } void cfgfile_parse_line (struct uae_prefs *p, TCHAR *line, int type) { - TCHAR line1b[CONFIG_BLEN], line2b[CONFIG_BLEN]; + TCHAR line1b[CONFIG_BLEN], line2b[CONFIG_BLEN]; - if (!cfgfile_separate_line (line, line1b, line2b)) - return; - cfgfile_parse_separated_line (p, line1b, line2b, type); + if (!cfgfile_separate_line (line, line1b, line2b)) + return; + cfgfile_parse_separated_line (p, line1b, line2b, type); } static void subst (TCHAR *p, TCHAR *f, int n) { - TCHAR *str = cfgfile_subst_path (UNEXPANDED, p, f); - _tcsncpy (f, str, n - 1); - f[n - 1] = '\0'; - free (str); + TCHAR *str = cfgfile_subst_path (UNEXPANDED, p, f); + _tcsncpy (f, str, n - 1); + f[n - 1] = '\0'; + free (str); } static int getconfigstoreline (const TCHAR *option, TCHAR *value) { - TCHAR tmp[CONFIG_BLEN * 2], tmp2[CONFIG_BLEN * 2]; - int idx = 0; + TCHAR tmp[CONFIG_BLEN * 2], tmp2[CONFIG_BLEN * 2]; + int idx = 0; - if (!configstore) - return 0; - zfile_fseek (configstore, 0, SEEK_SET); - for (;;) { - if (!zfile_fgets (tmp, sizeof tmp / sizeof (TCHAR), configstore)) - return 0; - if (!cfgfile_separate_line (tmp, tmp2, value)) - continue; - if (!_tcsicmp (option, tmp2)) - return 1; - } + if (!configstore) + return 0; + zfile_fseek (configstore, 0, SEEK_SET); + for (;;) + { + if (!zfile_fgets (tmp, sizeof tmp / sizeof (TCHAR), configstore)) + return 0; + if (!cfgfile_separate_line (tmp, tmp2, value)) + continue; + if (!_tcsicmp (option, tmp2)) + return 1; + } } static bool createconfigstore (struct uae_prefs *p) { - uae_u8 zeros[4] = { 0 }; - zfile_fclose (configstore); - configstore = zfile_fopen_empty (NULL, _T("configstore"), 50000); - if (!configstore) - return false; - zfile_fseek (configstore, 0, SEEK_SET); - uaeconfig++; - cfgfile_save_options (configstore, p, 0); - uaeconfig--; - zfile_fwrite (zeros, 1, sizeof zeros, configstore); - zfile_fseek (configstore, 0, SEEK_SET); - return true; + uae_u8 zeros[4] = { 0 }; + zfile_fclose (configstore); + configstore = zfile_fopen_empty (NULL, _T("configstore"), 50000); + if (!configstore) + return false; + zfile_fseek (configstore, 0, SEEK_SET); + uaeconfig++; + cfgfile_save_options (configstore, p, 0); + uaeconfig--; + zfile_fwrite (zeros, 1, sizeof zeros, configstore); + zfile_fseek (configstore, 0, SEEK_SET); + return true; } static char *cfg_fgets (char *line, int max, struct zfile *fh) { #ifdef SINGLEFILE - extern TCHAR singlefile_config[]; - static TCHAR *sfile_ptr; - TCHAR *p; + extern TCHAR singlefile_config[]; + static TCHAR *sfile_ptr; + TCHAR *p; #endif - if (fh) - return zfile_fgetsa (line, max, fh); + if (fh) + return zfile_fgetsa (line, max, fh); #ifdef SINGLEFILE - if (sfile_ptr == 0) { - sfile_ptr = singlefile_config; - if (*sfile_ptr) { - write_log (_T("singlefile config found\n")); - while (*sfile_ptr++); - } - } - if (*sfile_ptr == 0) { - sfile_ptr = singlefile_config; - return 0; - } - p = sfile_ptr; - while (*p != 13 && *p != 10 && *p != 0) p++; - memset (line, 0, max); - memcpy (line, sfile_ptr, (p - sfile_ptr) * sizeof (TCHAR)); - sfile_ptr = p + 1; - if (*sfile_ptr == 13) - sfile_ptr++; - if (*sfile_ptr == 10) - sfile_ptr++; - return line; + if (sfile_ptr == 0) + { + sfile_ptr = singlefile_config; + if (*sfile_ptr) + { + write_log (_T("singlefile config found\n")); + while (*sfile_ptr++); + } + } + if (*sfile_ptr == 0) + { + sfile_ptr = singlefile_config; + return 0; + } + p = sfile_ptr; + while (*p != 13 && *p != 10 && *p != 0) p++; + memset (line, 0, max); + memcpy (line, sfile_ptr, (p - sfile_ptr) * sizeof (TCHAR)); + sfile_ptr = p + 1; + if (*sfile_ptr == 13) + sfile_ptr++; + if (*sfile_ptr == 10) + sfile_ptr++; + return line; #endif - return 0; + return 0; } static int cfgfile_load_2 (struct uae_prefs *p, const TCHAR *filename, bool real, int *type) { - int i; - struct zfile *fh; - char linea[CONFIG_BLEN]; - TCHAR line[CONFIG_BLEN], line1b[CONFIG_BLEN], line2b[CONFIG_BLEN]; - struct strlist *sl; - bool type1 = false, type2 = false; - int askedtype = 0; + int i; + struct zfile *fh; + char linea[CONFIG_BLEN]; + TCHAR line[CONFIG_BLEN], line1b[CONFIG_BLEN], line2b[CONFIG_BLEN]; + struct strlist *sl; + bool type1 = false, type2 = false; + int askedtype = 0; - if (type) { - askedtype = *type; - *type = 0; - } - if (real) { - p->config_version = 0; - config_newfilesystem = 0; - //reset_inputdevice_config (p); - } + if (type) + { + askedtype = *type; + *type = 0; + } + if (real) + { + p->config_version = 0; + config_newfilesystem = 0; + //reset_inputdevice_config (p); + } - fh = zfile_fopen (filename, _T("r"), ZFD_NORMAL); + fh = zfile_fopen (filename, _T("r"), ZFD_NORMAL); #ifndef SINGLEFILE - if (! fh) - return 0; + if (! fh) + return 0; #endif - while (cfg_fgets (linea, sizeof (linea), fh) != 0) { - trimwsa (linea); - if (strlen (linea) > 0) { - if (linea[0] == '#' || linea[0] == ';') { - struct strlist *u = xcalloc (struct strlist, 1); - u->option = NULL; - TCHAR *com = au (linea); - u->value = my_strdup (com); - xfree (com); - u->unknown = 1; - u->next = p->all_lines; - p->all_lines = u; - continue; - } - if (!cfgfile_separate_linea (linea, line1b, line2b)) - continue; - type1 = type2 = 0; - if (cfgfile_yesno (line1b, line2b, _T("config_hardware"), &type1) || - cfgfile_yesno (line1b, line2b, _T("config_host"), &type2)) { - if (type1 && type) - *type |= CONFIG_TYPE_HARDWARE; - if (type2 && type) - *type |= CONFIG_TYPE_HOST; - continue; - } - if (real) { - cfgfile_parse_separated_line (p, line1b, line2b, askedtype); - } else { - cfgfile_string (line1b, line2b, _T("config_description"), p->description, sizeof p->description / sizeof (TCHAR)); - } - } - } + while (cfg_fgets (linea, sizeof (linea), fh) != 0) + { + trimwsa (linea); + if (strlen (linea) > 0) + { + if (linea[0] == '#' || linea[0] == ';') + { + struct strlist *u = xcalloc (struct strlist, 1); + u->option = NULL; + TCHAR *com = au (linea); + u->value = my_strdup (com); + xfree (com); + u->unknown = 1; + u->next = p->all_lines; + p->all_lines = u; + continue; + } + if (!cfgfile_separate_linea (linea, line1b, line2b)) + continue; + type1 = type2 = 0; + if (cfgfile_yesno (line1b, line2b, _T("config_hardware"), &type1) || + cfgfile_yesno (line1b, line2b, _T("config_host"), &type2)) + { + if (type1 && type) + *type |= CONFIG_TYPE_HARDWARE; + if (type2 && type) + *type |= CONFIG_TYPE_HOST; + continue; + } + if (real) + { + cfgfile_parse_separated_line (p, line1b, line2b, askedtype); + } + else + { + cfgfile_string (line1b, line2b, _T("config_description"), p->description, sizeof p->description / sizeof (TCHAR)); + } + } + } - if (type && *type == 0) - *type = CONFIG_TYPE_HARDWARE | CONFIG_TYPE_HOST; - zfile_fclose (fh); + if (type && *type == 0) + *type = CONFIG_TYPE_HARDWARE | CONFIG_TYPE_HOST; + zfile_fclose (fh); - if (!real) - return 1; + if (!real) + return 1; - for (sl = temp_lines; sl; sl = sl->next) { - _stprintf (line, _T("%s=%s"), sl->option, sl->value); - cfgfile_parse_line (p, line, 0); - } + for (sl = temp_lines; sl; sl = sl->next) + { + _stprintf (line, _T("%s=%s"), sl->option, sl->value); + cfgfile_parse_line (p, line, 0); + } - for (i = 0; i < 4; i++) { - subst (p->path_floppy, p->floppyslots[i].df, sizeof p->floppyslots[i].df / sizeof (TCHAR)); - if(i >= p->nr_floppies) - p->floppyslots[i].dfxtype = DRV_NONE; - } - subst (p->path_rom, p->romfile, sizeof p->romfile / sizeof (TCHAR)); - subst (p->path_rom, p->romextfile, sizeof p->romextfile / sizeof (TCHAR)); + for (i = 0; i < 4; i++) + { + subst (p->path_floppy, p->floppyslots[i].df, sizeof p->floppyslots[i].df / sizeof (TCHAR)); + if(i >= p->nr_floppies) + p->floppyslots[i].dfxtype = DRV_NONE; + } + subst (p->path_rom, p->romfile, sizeof p->romfile / sizeof (TCHAR)); + subst (p->path_rom, p->romextfile, sizeof p->romextfile / sizeof (TCHAR)); - return 1; + return 1; } int cfgfile_load (struct uae_prefs *p, const TCHAR *filename, int *type, int ignorelink, int userconfig) { - int v; - TCHAR tmp[MAX_DPATH]; - int type2; - static int recursive; + int v; + TCHAR tmp[MAX_DPATH]; + int type2; + static int recursive; - if (recursive > 1) - return 0; - recursive++; - write_log (_T("load config '%s':%d\n"), filename, type ? *type : -1); - v = cfgfile_load_2 (p, filename, 1, type); - if (!v) { - write_log (_T("load failed\n")); - goto end; - } + if (recursive > 1) + return 0; + recursive++; + write_log (_T("load config '%s':%d\n"), filename, type ? *type : -1); + v = cfgfile_load_2 (p, filename, 1, type); + if (!v) + { + write_log (_T("load failed\n")); + goto end; + } end: - recursive--; - fixup_prefs (p); - return v; + recursive--; + fixup_prefs (p); + return v; } int cfgfile_save (struct uae_prefs *p, const TCHAR *filename, int type) { - struct zfile *fh; + struct zfile *fh; - fh = zfile_fopen (filename, _T("w"), ZFD_NORMAL); - if (! fh) - return 0; + fh = zfile_fopen (filename, _T("w"), ZFD_NORMAL); + if (! fh) + return 0; - if (!type) - type = CONFIG_TYPE_HARDWARE | CONFIG_TYPE_HOST; - cfgfile_save_options (fh, p, type); - zfile_fclose (fh); - return 1; + if (!type) + type = CONFIG_TYPE_HARDWARE | CONFIG_TYPE_HOST; + cfgfile_save_options (fh, p, type); + zfile_fclose (fh); + return 1; } int cfgfile_get_description (const TCHAR *filename, TCHAR *description) { - int result = 0; - struct uae_prefs *p = xmalloc (struct uae_prefs, 1); + int result = 0; + struct uae_prefs *p = xmalloc (struct uae_prefs, 1); - p->description[0] = 0; - if (cfgfile_load_2 (p, filename, 0, 0)) { - result = 1; - if (description) - _tcscpy (description, p->description); - } - xfree (p); - return result; + p->description[0] = 0; + if (cfgfile_load_2 (p, filename, 0, 0)) + { + result = 1; + if (description) + _tcscpy (description, p->description); + } + xfree (p); + return result; } int cfgfile_configuration_change(int v) { - static int mode; - if (v >= 0) - mode = v; - return mode; + static int mode; + if (v >= 0) + mode = v; + return mode; } static void parse_sound_spec (struct uae_prefs *p, const TCHAR *spec) { - TCHAR *x0 = my_strdup (spec); - TCHAR *x1, *x2 = NULL, *x3 = NULL, *x4 = NULL, *x5 = NULL; + TCHAR *x0 = my_strdup (spec); + TCHAR *x1, *x2 = NULL, *x3 = NULL, *x4 = NULL, *x5 = NULL; - x1 = _tcschr (x0, ':'); - if (x1 != NULL) { - *x1++ = '\0'; - x2 = _tcschr (x1 + 1, ':'); - if (x2 != NULL) { - *x2++ = '\0'; - x3 = _tcschr (x2 + 1, ':'); - if (x3 != NULL) { - *x3++ = '\0'; - x4 = _tcschr (x3 + 1, ':'); - if (x4 != NULL) { - *x4++ = '\0'; - x5 = _tcschr (x4 + 1, ':'); - } - } - } - } - p->produce_sound = _tstoi (x0); - if (x1) { - p->sound_stereo_separation = 0; - if (*x1 == 'S') { - p->sound_stereo = SND_STEREO; - p->sound_stereo_separation = 7; - } else if (*x1 == 's') - p->sound_stereo = SND_STEREO; - else - p->sound_stereo = SND_MONO; - } - if (x3) - p->sound_freq = _tstoi (x3); - free (x0); + x1 = _tcschr (x0, ':'); + if (x1 != NULL) + { + *x1++ = '\0'; + x2 = _tcschr (x1 + 1, ':'); + if (x2 != NULL) + { + *x2++ = '\0'; + x3 = _tcschr (x2 + 1, ':'); + if (x3 != NULL) + { + *x3++ = '\0'; + x4 = _tcschr (x3 + 1, ':'); + if (x4 != NULL) + { + *x4++ = '\0'; + x5 = _tcschr (x4 + 1, ':'); + } + } + } + } + p->produce_sound = _tstoi (x0); + if (x1) + { + p->sound_stereo_separation = 0; + if (*x1 == 'S') + { + p->sound_stereo = SND_STEREO; + p->sound_stereo_separation = 7; + } + else if (*x1 == 's') + p->sound_stereo = SND_STEREO; + else + p->sound_stereo = SND_MONO; + } + if (x3) + p->sound_freq = _tstoi (x3); + free (x0); } static void parse_joy_spec (struct uae_prefs *p, const TCHAR *spec) { - int v0 = 2, v1 = 0; - if (_tcslen(spec) != 2) - goto bad; + int v0 = 2, v1 = 0; + if (_tcslen(spec) != 2) + goto bad; - switch (spec[0]) { - case '0': v0 = JSEM_JOYS; break; - case '1': v0 = JSEM_JOYS + 1; break; - case 'M': case 'm': v0 = JSEM_MICE; break; - case 'A': case 'a': v0 = JSEM_KBDLAYOUT; break; - case 'B': case 'b': v0 = JSEM_KBDLAYOUT + 1; break; - case 'C': case 'c': v0 = JSEM_KBDLAYOUT + 2; break; - default: goto bad; - } + switch (spec[0]) + { + case '0': + v0 = JSEM_JOYS; + break; + case '1': + v0 = JSEM_JOYS + 1; + break; + case 'M': + case 'm': + v0 = JSEM_MICE; + break; + case 'A': + case 'a': + v0 = JSEM_KBDLAYOUT; + break; + case 'B': + case 'b': + v0 = JSEM_KBDLAYOUT + 1; + break; + case 'C': + case 'c': + v0 = JSEM_KBDLAYOUT + 2; + break; + default: + goto bad; + } - switch (spec[1]) { - case '0': v1 = JSEM_JOYS; break; - case '1': v1 = JSEM_JOYS + 1; break; - case 'M': case 'm': v1 = JSEM_MICE; break; - case 'A': case 'a': v1 = JSEM_KBDLAYOUT; break; - case 'B': case 'b': v1 = JSEM_KBDLAYOUT + 1; break; - case 'C': case 'c': v1 = JSEM_KBDLAYOUT + 2; break; - default: goto bad; - } - if (v0 == v1) - goto bad; - /* Let's scare Pascal programmers */ - if (0) + switch (spec[1]) + { + case '0': + v1 = JSEM_JOYS; + break; + case '1': + v1 = JSEM_JOYS + 1; + break; + case 'M': + case 'm': + v1 = JSEM_MICE; + break; + case 'A': + case 'a': + v1 = JSEM_KBDLAYOUT; + break; + case 'B': + case 'b': + v1 = JSEM_KBDLAYOUT + 1; + break; + case 'C': + case 'c': + v1 = JSEM_KBDLAYOUT + 2; + break; + default: + goto bad; + } + if (v0 == v1) + goto bad; + /* Let's scare Pascal programmers */ + if (0) bad: - write_log (_T("Bad joystick mode specification. Use -J xy, where x and y\n") - _T("can be 0 for joystick 0, 1 for joystick 1, M for mouse, and\n") - _T("a, b or c for different keyboard settings.\n")); + write_log (_T("Bad joystick mode specification. Use -J xy, where x and y\n") + _T("can be 0 for joystick 0, 1 for joystick 1, M for mouse, and\n") + _T("a, b or c for different keyboard settings.\n")); - p->jports[0].id = v0; - p->jports[1].id = v1; + p->jports[0].id = v0; + p->jports[1].id = v1; } static void parse_filesys_spec (struct uae_prefs *p, bool readonly, const TCHAR *spec) { - TCHAR buf[256]; - TCHAR *s2; + TCHAR buf[256]; + TCHAR *s2; - _tcsncpy (buf, spec, 255); buf[255] = 0; - s2 = _tcschr (buf, ':'); - if (s2) { - *s2++ = '\0'; + _tcsncpy (buf, spec, 255); + buf[255] = 0; + s2 = _tcschr (buf, ':'); + if (s2) + { + *s2++ = '\0'; #ifdef __DOS__ - { - TCHAR *tmp; + { + TCHAR *tmp; - while ((tmp = _tcschr (s2, '\\'))) - *tmp = '/'; - } + while ((tmp = _tcschr (s2, '\\'))) + *tmp = '/'; + } #endif #ifdef FILESYS - add_filesys_config (p, -1, NULL, buf, s2, readonly, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + add_filesys_config (p, -1, NULL, buf, s2, readonly, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); #endif - } else { - write_log (_T("Usage: [-m | -M] VOLNAME:mount_point\n")); - } + } + else + { + write_log (_T("Usage: [-m | -M] VOLNAME:mount_point\n")); + } } static void parse_hardfile_spec (struct uae_prefs *p, const TCHAR *spec) { - TCHAR *x0 = my_strdup (spec); - TCHAR *x1, *x2, *x3, *x4; + TCHAR *x0 = my_strdup (spec); + TCHAR *x1, *x2, *x3, *x4; - x1 = _tcschr (x0, ':'); - if (x1 == NULL) - goto argh; - *x1++ = '\0'; - x2 = _tcschr (x1 + 1, ':'); - if (x2 == NULL) - goto argh; - *x2++ = '\0'; - x3 = _tcschr (x2 + 1, ':'); - if (x3 == NULL) - goto argh; - *x3++ = '\0'; - x4 = _tcschr (x3 + 1, ':'); - if (x4 == NULL) - goto argh; - *x4++ = '\0'; + x1 = _tcschr (x0, ':'); + if (x1 == NULL) + goto argh; + *x1++ = '\0'; + x2 = _tcschr (x1 + 1, ':'); + if (x2 == NULL) + goto argh; + *x2++ = '\0'; + x3 = _tcschr (x2 + 1, ':'); + if (x3 == NULL) + goto argh; + *x3++ = '\0'; + x4 = _tcschr (x3 + 1, ':'); + if (x4 == NULL) + goto argh; + *x4++ = '\0'; #ifdef FILESYS - add_filesys_config (p, -1, NULL, NULL, x4, 0, 0, _tstoi (x0), _tstoi (x1), _tstoi (x2), _tstoi (x3), 0, 0, 0, 0, 0, 0, 0); + add_filesys_config (p, -1, NULL, NULL, x4, 0, 0, _tstoi (x0), _tstoi (x1), _tstoi (x2), _tstoi (x3), 0, 0, 0, 0, 0, 0, 0); #endif - free (x0); - return; + free (x0); + return; - argh: - free (x0); - write_log (_T("Bad hardfile parameter specified - type \"uae -h\" for help.\n")); - return; +argh: + free (x0); + write_log (_T("Bad hardfile parameter specified - type \"uae -h\" for help.\n")); + return; } static void parse_cpu_specs (struct uae_prefs *p, const TCHAR *spec) { - if (*spec < '0' || *spec > '4') { - write_log (_T("CPU parameter string must begin with '0', '1', '2', '3' or '4'.\n")); - return; - } + if (*spec < '0' || *spec > '4') + { + write_log (_T("CPU parameter string must begin with '0', '1', '2', '3' or '4'.\n")); + return; + } - p->cpu_model = (*spec++) * 10 + 68000; - p->address_space_24 = p->cpu_model < 68020; - p->cpu_compatible = 0; - while (*spec != '\0') { - switch (*spec) { - case 'a': - if (p->cpu_model < 68020) - write_log (_T("In 68000/68010 emulation, the address space is always 24 bit.\n")); - else if (p->cpu_model >= 68040) - write_log (_T("In 68040/060 emulation, the address space is always 32 bit.\n")); - else - p->address_space_24 = 1; - break; - case 'c': - if (p->cpu_model != 68000) - write_log (_T("The more compatible CPU emulation is only available for 68000\n") - _T("emulation, not for 68010 upwards.\n")); - else - p->cpu_compatible = 1; - break; - default: - write_log (_T("Bad CPU parameter specified - type \"uae -h\" for help.\n")); - break; - } - spec++; - } + p->cpu_model = (*spec++) * 10 + 68000; + p->address_space_24 = p->cpu_model < 68020; + p->cpu_compatible = 0; + while (*spec != '\0') + { + switch (*spec) + { + case 'a': + if (p->cpu_model < 68020) + write_log (_T("In 68000/68010 emulation, the address space is always 24 bit.\n")); + else if (p->cpu_model >= 68040) + write_log (_T("In 68040/060 emulation, the address space is always 32 bit.\n")); + else + p->address_space_24 = 1; + break; + case 'c': + if (p->cpu_model != 68000) + write_log (_T("The more compatible CPU emulation is only available for 68000\n") + _T("emulation, not for 68010 upwards.\n")); + else + p->cpu_compatible = 1; + break; + default: + write_log (_T("Bad CPU parameter specified - type \"uae -h\" for help.\n")); + break; + } + spec++; + } } static void cmdpath (TCHAR *dst, const TCHAR *src, int maxsz) { - TCHAR *s = target_expand_environment (src); - _tcsncpy (dst, s, maxsz); - dst[maxsz] = 0; - xfree (s); + TCHAR *s = target_expand_environment (src); + _tcsncpy (dst, s, maxsz); + dst[maxsz] = 0; + xfree (s); } /* Returns the number of args used up (0 or 1). */ int parse_cmdline_option (struct uae_prefs *p, TCHAR c, const TCHAR *arg) { - struct strlist *u = xcalloc (struct strlist, 1); - const TCHAR arg_required[] = _T("0123rKpImWSAJwNCZUFcblOdHRv"); + struct strlist *u = xcalloc (struct strlist, 1); + const TCHAR arg_required[] = _T("0123rKpImWSAJwNCZUFcblOdHRv"); - if (_tcschr (arg_required, c) && ! arg) { - printf (_T("Missing argument for option -%c\n"), c); - return -1; - } + if (_tcschr (arg_required, c) && ! arg) + { + printf (_T("Missing argument for option -%c\n"), c); + return -1; + } - u->option = xmalloc (TCHAR, 2); - u->option[0] = c; - u->option[1] = 0; - if (arg) - u->value = my_strdup(arg); - u->next = p->all_lines; - p->all_lines = u; + u->option = xmalloc (TCHAR, 2); + u->option[0] = c; + u->option[1] = 0; + if (arg) + u->value = my_strdup(arg); + u->next = p->all_lines; + p->all_lines = u; - switch (c) { - case '0': cmdpath (p->floppyslots[0].df, arg, 255); break; - case '1': cmdpath (p->floppyslots[1].df, arg, 255); break; - case '2': cmdpath (p->floppyslots[2].df, arg, 255); break; - case '3': cmdpath (p->floppyslots[3].df, arg, 255); break; - case 'r': cmdpath (p->romfile, arg, 255); break; - case 'K': cmdpath (p->romextfile, arg, 255); break; - case 'm': case 'M': parse_filesys_spec (p, c == 'M', arg); break; - case 'W': parse_hardfile_spec (p, arg); break; - case 'S': parse_sound_spec (p, arg); break; - case 'R': p->gfx_framerate = _tstoi (arg); break; - case 'J': parse_joy_spec (p, arg); break; + switch (c) + { + case '0': + cmdpath (p->floppyslots[0].df, arg, 255); + break; + case '1': + cmdpath (p->floppyslots[1].df, arg, 255); + break; + case '2': + cmdpath (p->floppyslots[2].df, arg, 255); + break; + case '3': + cmdpath (p->floppyslots[3].df, arg, 255); + break; + case 'r': + cmdpath (p->romfile, arg, 255); + break; + case 'K': + cmdpath (p->romextfile, arg, 255); + break; + case 'm': + case 'M': + parse_filesys_spec (p, c == 'M', arg); + break; + case 'W': + parse_hardfile_spec (p, arg); + break; + case 'S': + parse_sound_spec (p, arg); + break; + case 'R': + p->gfx_framerate = _tstoi (arg); + break; + case 'J': + parse_joy_spec (p, arg); + break; - case 'w': p->m68k_speed = _tstoi (arg); break; + case 'w': + p->m68k_speed = _tstoi (arg); + break; - case 'G': p->start_gui = 0; break; + case 'G': + p->start_gui = 0; + break; case 'n': - if (_tcschr (arg, 'i') != 0) - p->immediate_blits = 1; - break; + if (_tcschr (arg, 'i') != 0) + p->immediate_blits = 1; + break; case 'v': - set_chipset_mask (p, _tstoi (arg)); - break; + set_chipset_mask (p, _tstoi (arg)); + break; case 'C': - parse_cpu_specs (p, arg); - break; + parse_cpu_specs (p, arg); + break; case 'Z': - p->z3fastmem_size = _tstoi (arg) * 0x100000; - break; + p->z3fastmem_size = _tstoi (arg) * 0x100000; + break; case 'U': - p->rtgmem_size = _tstoi (arg) * 0x100000; - break; + p->rtgmem_size = _tstoi (arg) * 0x100000; + break; case 'F': - p->fastmem_size = _tstoi (arg) * 0x100000; - break; + p->fastmem_size = _tstoi (arg) * 0x100000; + break; case 'b': - p->bogomem_size = _tstoi (arg) * 0x40000; - break; + p->bogomem_size = _tstoi (arg) * 0x40000; + break; case 'c': - p->chipmem_size = _tstoi (arg) * 0x80000; - break; + p->chipmem_size = _tstoi (arg) * 0x80000; + break; default: - printf (_T("Unknown option -%c\n"), c); - return -1; - break; - } - return !! _tcschr (arg_required, c); + printf (_T("Unknown option -%c\n"), c); + return -1; + break; + } + return !! _tcschr (arg_required, c); } void cfgfile_addcfgparam (TCHAR *line) { - struct strlist *u; - TCHAR line1b[CONFIG_BLEN], line2b[CONFIG_BLEN]; + struct strlist *u; + TCHAR line1b[CONFIG_BLEN], line2b[CONFIG_BLEN]; - if (!line) { - struct strlist **ps = &temp_lines; - while (*ps) { - struct strlist *s = *ps; - *ps = s->next; - xfree (s->value); - xfree (s->option); - xfree (s); - } - temp_lines = 0; - return; - } - if (!cfgfile_separate_line (line, line1b, line2b)) - return; - u = xcalloc (struct strlist, 1); - u->option = my_strdup(line1b); - u->value = my_strdup(line2b); - u->next = temp_lines; - temp_lines = u; + if (!line) + { + struct strlist **ps = &temp_lines; + while (*ps) + { + struct strlist *s = *ps; + *ps = s->next; + xfree (s->value); + xfree (s->option); + xfree (s); + } + temp_lines = 0; + return; + } + if (!cfgfile_separate_line (line, line1b, line2b)) + return; + u = xcalloc (struct strlist, 1); + u->option = my_strdup(line1b); + u->value = my_strdup(line2b); + u->next = temp_lines; + temp_lines = u; } int cmdlineparser (const TCHAR *s, TCHAR *outp[], int max) { - int j, cnt = 0; - int slash = 0; - int quote = 0; - TCHAR tmp1[MAX_DPATH]; - const TCHAR *prev; - int doout; + int j, cnt = 0; + int slash = 0; + int quote = 0; + TCHAR tmp1[MAX_DPATH]; + const TCHAR *prev; + int doout; - doout = 0; - prev = s; - j = 0; - outp[0] = 0; - while (cnt < max) { - TCHAR c = *s++; - if (!c) - break; - if (c < 32) - continue; - if (c == '\\') - slash = 1; - if (!slash && c == '"') { - if (quote) { - quote = 0; - doout = 1; - } else { - quote = 1; - j = -1; - } - } - if (!quote && c == ' ') - doout = 1; - if (!doout) { - if (j >= 0) { - tmp1[j] = c; - tmp1[j + 1] = 0; - } - j++; - } - if (doout) { - if (_tcslen (tmp1) > 0) { - outp[cnt++] = my_strdup (tmp1); - outp[cnt] = 0; - } - tmp1[0] = 0; - doout = 0; - j = 0; - } - slash = 0; - } - if (j > 0 && cnt < max) { - outp[cnt++] = my_strdup (tmp1); - outp[cnt] = 0; - } - return cnt; + doout = 0; + prev = s; + j = 0; + outp[0] = 0; + while (cnt < max) + { + TCHAR c = *s++; + if (!c) + break; + if (c < 32) + continue; + if (c == '\\') + slash = 1; + if (!slash && c == '"') + { + if (quote) + { + quote = 0; + doout = 1; + } + else + { + quote = 1; + j = -1; + } + } + if (!quote && c == ' ') + doout = 1; + if (!doout) + { + if (j >= 0) + { + tmp1[j] = c; + tmp1[j + 1] = 0; + } + j++; + } + if (doout) + { + if (_tcslen (tmp1) > 0) + { + outp[cnt++] = my_strdup (tmp1); + outp[cnt] = 0; + } + tmp1[0] = 0; + doout = 0; + j = 0; + } + slash = 0; + } + if (j > 0 && cnt < max) + { + outp[cnt++] = my_strdup (tmp1); + outp[cnt] = 0; + } + return cnt; } #define UAELIB_MAX_PARSE 100 static bool cfgfile_parse_uaelib_option (struct uae_prefs *p, TCHAR *option, TCHAR *value, int type) { - return false; + return false; } uae_u32 cfgfile_modify (uae_u32 index, TCHAR *parms, uae_u32 size, TCHAR *out, uae_u32 outsize) { - TCHAR *p; - TCHAR *argc[UAELIB_MAX_PARSE]; - int argv, i; - uae_u32 err; - TCHAR zero = 0; - static TCHAR *configsearch; - static int configsearchfound; + TCHAR *p; + TCHAR *argc[UAELIB_MAX_PARSE]; + int argv, i; + uae_u32 err; + TCHAR zero = 0; + static TCHAR *configsearch; + static int configsearchfound; - err = 0; - argv = 0; - p = 0; - if (index != 0xffffffff) { - if (!configstore) { - err = 20; - goto end; - } - if (configsearch) { - TCHAR tmp[CONFIG_BLEN]; - int j = 0; - TCHAR *in = configsearch; - int inlen = _tcslen (configsearch); - int joker = 0; + err = 0; + argv = 0; + p = 0; + if (index != 0xffffffff) + { + if (!configstore) + { + err = 20; + goto end; + } + if (configsearch) + { + TCHAR tmp[CONFIG_BLEN]; + int j = 0; + TCHAR *in = configsearch; + int inlen = _tcslen (configsearch); + int joker = 0; - if (in[inlen - 1] == '*') { - joker = 1; - inlen--; - } + if (in[inlen - 1] == '*') + { + joker = 1; + inlen--; + } - for (;;) { - uae_u8 b = 0; + for (;;) + { + uae_u8 b = 0; - if (zfile_fread (&b, 1, 1, configstore) != 1) { - err = 10; - if (configsearch) - err = 5; - if (configsearchfound) - err = 0; - goto end; - } - if (j >= sizeof (tmp) / sizeof (TCHAR) - 1) - j = sizeof (tmp) / sizeof (TCHAR) - 1; - if (b == 0) { - err = 10; - if (configsearch) - err = 5; - if (configsearchfound) - err = 0; - goto end; - } - if (b == '\n') { - if (configsearch && !_tcsncmp (tmp, in, inlen) && - ((inlen > 0 && _tcslen (tmp) > inlen && tmp[inlen] == '=') || (joker))) { - TCHAR *p; - if (joker) - p = tmp - 1; - else - p = _tcschr (tmp, '='); - if (p) { - for (i = 0; out && i < outsize - 1; i++) { - TCHAR b = *++p; - out[i] = b; - out[i + 1] = 0; - if (!b) - break; - } - } - err = 0xffffffff; - configsearchfound++; - goto end; - } - index--; - j = 0; - } else { - tmp[j++] = b; - tmp[j] = 0; - } - } - } - err = 0xffffffff; - for (i = 0; out && i < outsize - 1; i++) { - uae_u8 b = 0; - if (zfile_fread (&b, 1, 1, configstore) != 1) - err = 0; - if (b == 0) - err = 0; - if (b == '\n') - b = 0; - out[i] = b; - out[i + 1] = 0; - if (!b) - break; - } - goto end; - } + if (zfile_fread (&b, 1, 1, configstore) != 1) + { + err = 10; + if (configsearch) + err = 5; + if (configsearchfound) + err = 0; + goto end; + } + if (j >= sizeof (tmp) / sizeof (TCHAR) - 1) + j = sizeof (tmp) / sizeof (TCHAR) - 1; + if (b == 0) + { + err = 10; + if (configsearch) + err = 5; + if (configsearchfound) + err = 0; + goto end; + } + if (b == '\n') + { + if (configsearch && !_tcsncmp (tmp, in, inlen) && + ((inlen > 0 && _tcslen (tmp) > inlen && tmp[inlen] == '=') || (joker))) + { + TCHAR *p; + if (joker) + p = tmp - 1; + else + p = _tcschr (tmp, '='); + if (p) + { + for (i = 0; out && i < outsize - 1; i++) + { + TCHAR b = *++p; + out[i] = b; + out[i + 1] = 0; + if (!b) + break; + } + } + err = 0xffffffff; + configsearchfound++; + goto end; + } + index--; + j = 0; + } + else + { + tmp[j++] = b; + tmp[j] = 0; + } + } + } + err = 0xffffffff; + for (i = 0; out && i < outsize - 1; i++) + { + uae_u8 b = 0; + if (zfile_fread (&b, 1, 1, configstore) != 1) + err = 0; + if (b == 0) + err = 0; + if (b == '\n') + b = 0; + out[i] = b; + out[i + 1] = 0; + if (!b) + break; + } + goto end; + } - if (size > 10000) - return 10; - argv = cmdlineparser (parms, argc, UAELIB_MAX_PARSE); + if (size > 10000) + return 10; + argv = cmdlineparser (parms, argc, UAELIB_MAX_PARSE); - if (argv <= 1 && index == 0xffffffff) { - createconfigstore (&currprefs); - xfree (configsearch); - configsearch = NULL; - if (!configstore) { - err = 20; - goto end; - } - if (argv > 0 && _tcslen (argc[0]) > 0) - configsearch = my_strdup (argc[0]); - err = 0xffffffff; - configsearchfound = 0; - goto end; - } + if (argv <= 1 && index == 0xffffffff) + { + createconfigstore (&currprefs); + xfree (configsearch); + configsearch = NULL; + if (!configstore) + { + err = 20; + goto end; + } + if (argv > 0 && _tcslen (argc[0]) > 0) + configsearch = my_strdup (argc[0]); + err = 0xffffffff; + configsearchfound = 0; + goto end; + } - for (i = 0; i < argv; i++) { - if (i + 2 <= argv) { - if (!inputdevice_uaelib (argc[i], argc[i + 1])) { - if (!cfgfile_parse_uaelib_option (&changed_prefs, argc[i], argc[i + 1], 0)) { - if (!cfgfile_parse_option (&changed_prefs, argc[i], argc[i + 1], 0)) { - err = 5; - break; - } - } - } - set_special (SPCFLAG_BRK); - i++; - } - } + for (i = 0; i < argv; i++) + { + if (i + 2 <= argv) + { + if (!inputdevice_uaelib (argc[i], argc[i + 1])) + { + if (!cfgfile_parse_uaelib_option (&changed_prefs, argc[i], argc[i + 1], 0)) + { + if (!cfgfile_parse_option (&changed_prefs, argc[i], argc[i + 1], 0)) + { + err = 5; + break; + } + } + } + set_special (SPCFLAG_BRK); + i++; + } + } end: - for (i = 0; i < argv; i++) - xfree (argc[i]); - xfree (p); - return err; + for (i = 0; i < argv; i++) + xfree (argc[i]); + xfree (p); + return err; } uae_u32 cfgfile_uaelib_modify (uae_u32 index, uae_u32 parms, uae_u32 size, uae_u32 out, uae_u32 outsize) { - uae_char *p, *parms_p = NULL, *parms_out = NULL; - int i, ret; - TCHAR *out_p = NULL, *parms_in = NULL; + uae_char *p, *parms_p = NULL, *parms_out = NULL; + int i, ret; + TCHAR *out_p = NULL, *parms_in = NULL; - if (out) - put_byte (out, 0); - if (size == 0) { - while (get_byte (parms + size) != 0) - size++; - } - parms_p = xmalloc (uae_char, size + 1); - if (!parms_p) { - ret = 10; - goto end; - } - if (out) { - out_p = xmalloc (TCHAR, outsize + 1); - if (!out_p) { - ret = 10; - goto end; - } - out_p[0] = 0; - } - p = parms_p; - for (i = 0; i < size; i++) { - p[i] = get_byte (parms + i); - if (p[i] == 10 || p[i] == 13 || p[i] == 0) - break; - } - p[i] = 0; - parms_in = au (parms_p); - ret = cfgfile_modify (index, parms_in, size, out_p, outsize); - xfree (parms_in); - if (out) { - parms_out = ua (out_p); - p = parms_out; - for (i = 0; i < outsize - 1; i++) { - uae_u8 b = *p++; - put_byte (out + i, b); - put_byte (out + i + 1, 0); - if (!b) - break; - } - } - xfree (parms_out); + if (out) + put_byte (out, 0); + if (size == 0) + { + while (get_byte (parms + size) != 0) + size++; + } + parms_p = xmalloc (uae_char, size + 1); + if (!parms_p) + { + ret = 10; + goto end; + } + if (out) + { + out_p = xmalloc (TCHAR, outsize + 1); + if (!out_p) + { + ret = 10; + goto end; + } + out_p[0] = 0; + } + p = parms_p; + for (i = 0; i < size; i++) + { + p[i] = get_byte (parms + i); + if (p[i] == 10 || p[i] == 13 || p[i] == 0) + break; + } + p[i] = 0; + parms_in = au (parms_p); + ret = cfgfile_modify (index, parms_in, size, out_p, outsize); + xfree (parms_in); + if (out) + { + parms_out = ua (out_p); + p = parms_out; + for (i = 0; i < outsize - 1; i++) + { + uae_u8 b = *p++; + put_byte (out + i, b); + put_byte (out + i + 1, 0); + if (!b) + break; + } + } + xfree (parms_out); end: - xfree (out_p); - xfree (parms_p); - return ret; + xfree (out_p); + xfree (parms_p); + return ret; } uae_u32 cfgfile_uaelib (int mode, uae_u32 name, uae_u32 dst, uae_u32 maxlen) { - TCHAR tmp[CONFIG_BLEN]; - int i; - struct strlist *sl; + TCHAR tmp[CONFIG_BLEN]; + int i; + struct strlist *sl; - if (mode) - return 0; + if (mode) + return 0; - for (i = 0; i < sizeof (tmp) / sizeof (TCHAR); i++) { - tmp[i] = get_byte (name + i); - if (tmp[i] == 0) - break; - } - tmp[sizeof(tmp) / sizeof (TCHAR) - 1] = 0; - if (tmp[0] == 0) - return 0; - for (sl = currprefs.all_lines; sl; sl = sl->next) { - if (!strcasecmp (sl->option, tmp)) - break; - } + for (i = 0; i < sizeof (tmp) / sizeof (TCHAR); i++) + { + tmp[i] = get_byte (name + i); + if (tmp[i] == 0) + break; + } + tmp[sizeof(tmp) / sizeof (TCHAR) - 1] = 0; + if (tmp[0] == 0) + return 0; + for (sl = currprefs.all_lines; sl; sl = sl->next) + { + if (!strcasecmp (sl->option, tmp)) + break; + } - if (sl) { - char *s = ua (sl->value); - for (i = 0; i < maxlen; i++) { - put_byte (dst + i, s[i]); - if (s[i] == 0) - break; - } - xfree (s); - return dst; - } - return 0; + if (sl) + { + char *s = ua (sl->value); + for (i = 0; i < maxlen; i++) + { + put_byte (dst + i, s[i]); + if (s[i] == 0) + break; + } + xfree (s); + return dst; + } + return 0; } #include "sd-pandora/sound.h" void default_prefs (struct uae_prefs *p, int type) { - int i; - int roms[] = { 6, 7, 8, 9, 10, 14, 5, 4, 3, 2, 1, -1 }; - TCHAR zero = 0; - struct zfile *f; + int i; + int roms[] = { 6, 7, 8, 9, 10, 14, 5, 4, 3, 2, 1, -1 }; + TCHAR zero = 0; + struct zfile *f; - reset_inputdevice_config (p); - memset (p, 0, sizeof (struct uae_prefs)); - _tcscpy (p->description, _T("UAE default configuration")); + reset_inputdevice_config (p); + memset (p, 0, sizeof (struct uae_prefs)); + _tcscpy (p->description, _T("UAE default configuration")); - p->start_gui = 1; + p->start_gui = 1; - p->all_lines = 0; + p->all_lines = 0; - p->mountitems = 0; - for (i = 0; i < MOUNT_CONFIG_SIZE; i++) { - p->mountconfig[i].configoffset = -1; - } + p->mountitems = 0; + for (i = 0; i < MOUNT_CONFIG_SIZE; i++) + { + p->mountconfig[i].configoffset = -1; + } - memset (&p->jports[0], 0, sizeof (struct jport)); - memset (&p->jports[1], 0, sizeof (struct jport)); - memset (&p->jports[2], 0, sizeof (struct jport)); - memset (&p->jports[3], 0, sizeof (struct jport)); - p->jports[0].id = JSEM_MICE; - p->jports[1].id = JSEM_JOYS; - p->jports[2].id = -1; - p->jports[3].id = -1; + memset (&p->jports[0], 0, sizeof (struct jport)); + memset (&p->jports[1], 0, sizeof (struct jport)); + memset (&p->jports[2], 0, sizeof (struct jport)); + memset (&p->jports[3], 0, sizeof (struct jport)); + p->jports[0].id = JSEM_MICE; + p->jports[1].id = JSEM_JOYS; + p->jports[2].id = -1; + p->jports[3].id = -1; - p->produce_sound = 3; - p->sound_stereo = SND_STEREO; - p->sound_stereo_separation = 7; - p->sound_mixed_stereo_delay = 0; - p->sound_freq = DEFAULT_SOUND_FREQ; - p->sound_interpol = 0; - p->sound_filter = FILTER_SOUND_OFF; - p->sound_filter_type = 0; - p->sound_volume_cd = 20; + p->produce_sound = 3; + p->sound_stereo = SND_STEREO; + p->sound_stereo_separation = 7; + p->sound_mixed_stereo_delay = 0; + p->sound_freq = DEFAULT_SOUND_FREQ; + p->sound_interpol = 0; + p->sound_filter = FILTER_SOUND_OFF; + p->sound_filter_type = 0; + p->sound_volume_cd = 20; - p->cachesize = DEFAULT_JIT_CACHE_SIZE; + p->cachesize = DEFAULT_JIT_CACHE_SIZE; - for (i = 0;i < 10; i++) - p->optcount[i] = -1; - p->optcount[0] = 4; /* How often a block has to be executed before it is translated */ - p->optcount[1] = 0; /* How often to use the naive translation */ - p->optcount[2] = 0; - p->optcount[3] = 0; - p->optcount[4] = 0; - p->optcount[5] = 0; + for (i = 0; i < 10; i++) + p->optcount[i] = -1; + p->optcount[0] = 4; /* How often a block has to be executed before it is translated */ + p->optcount[1] = 0; /* How often to use the naive translation */ + p->optcount[2] = 0; + p->optcount[3] = 0; + p->optcount[4] = 0; + p->optcount[5] = 0; - p->gfx_framerate = 0; - p->gfx_size_fs.width = 640; - p->gfx_size_fs.height = 480; - p->gfx_size_win.width = 320; - p->gfx_size_win.height = 240; + p->gfx_framerate = 0; + p->gfx_size_fs.width = 640; + p->gfx_size_fs.height = 480; + p->gfx_size_win.width = 320; + p->gfx_size_win.height = 240; #ifdef RASPBERRY - p->gfx_size.width = 640; - p->gfx_size.height = 262; + p->gfx_size.width = 640; + p->gfx_size.height = 262; #else - p->gfx_size.width = 320; - p->gfx_size.height = 240; + p->gfx_size.width = 320; + p->gfx_size.height = 240; #endif - p->gfx_resolution = RES_LORES; + p->gfx_resolution = RES_LORES; #ifdef RASPBERRY - p->gfx_correct_aspect = 1; - p->gfx_fullscreen_ratio = 100; - p->kbd_led_num = -1; // No status on numlock - p->kbd_led_scr = -1; // No status on scrollock - p->kbd_led_cap = -1; // No status on capslock + p->gfx_correct_aspect = 1; + p->gfx_fullscreen_ratio = 100; + p->kbd_led_num = -1; // No status on numlock + p->kbd_led_scr = -1; // No status on scrollock + p->kbd_led_cap = -1; // No status on capslock #endif - p->immediate_blits = 0; - p->waiting_blits = 0; - p->chipset_refreshrate = 50; - p->collision_level = 2; - p->leds_on_screen = 0; - p->fast_copper = 1; - p->tod_hack = 1; + p->immediate_blits = 0; + p->waiting_blits = 0; + p->chipset_refreshrate = 50; + p->collision_level = 2; + p->leds_on_screen = 0; + p->fast_copper = 1; + p->tod_hack = 1; - p->cs_cd32c2p = p->cs_cd32cd = p->cs_cd32nvram = false; + p->cs_cd32c2p = p->cs_cd32cd = p->cs_cd32nvram = false; - _tcscpy (p->floppyslots[0].df, _T("")); - _tcscpy (p->floppyslots[1].df, _T("")); - _tcscpy (p->floppyslots[2].df, _T("")); - _tcscpy (p->floppyslots[3].df, _T("")); + _tcscpy (p->floppyslots[0].df, _T("")); + _tcscpy (p->floppyslots[1].df, _T("")); + _tcscpy (p->floppyslots[2].df, _T("")); + _tcscpy (p->floppyslots[3].df, _T("")); - #if 0 - // Choose automatically first rom. - if (lstAvailableROMs.size() >= 1) - { - strncpy(currprefs.romfile,lstAvailableROMs[0]->Path,255); - //_tcscpy(currprefs.romfile,lstAvailableROMs[0]->Path,255); - } - else - _tcscpy (p->romfile, _T("kick.rom")); - #endif - configure_rom (p, roms, 0); +#if 0 + // Choose automatically first rom. + if (lstAvailableROMs.size() >= 1) + { + strncpy(currprefs.romfile,lstAvailableROMs[0]->Path,255); + //_tcscpy(currprefs.romfile,lstAvailableROMs[0]->Path,255); + } + else + _tcscpy (p->romfile, _T("kick.rom")); +#endif + configure_rom (p, roms, 0); - _tcscpy (p->romextfile, _T("")); - _tcscpy (p->flashfile, _T("")); + _tcscpy (p->romextfile, _T("")); + _tcscpy (p->flashfile, _T("")); - sprintf (p->path_rom, _T("%s/kickstarts/"), start_path_data); - sprintf (p->path_floppy, _T("%s/disks/"), start_path_data); - sprintf (p->path_hardfile, _T("%s/"), start_path_data); - sprintf (p->path_cd, _T("%s/cd32/"), start_path_data); + sprintf (p->path_rom, _T("%s/kickstarts/"), start_path_data); + sprintf (p->path_floppy, _T("%s/disks/"), start_path_data); + sprintf (p->path_hardfile, _T("%s/"), start_path_data); + sprintf (p->path_cd, _T("%s/cd32/"), start_path_data); - p->fpu_model = 0; - p->cpu_model = 68000; - p->m68k_speed = 0; - p->cpu_compatible = 0; - p->address_space_24 = 1; - p->chipset_mask = CSMASK_ECS_AGNUS; - p->ntscmode = 0; - p->filesys_limit = 0; + p->fpu_model = 0; + p->cpu_model = 68000; + p->m68k_speed = 0; + p->cpu_compatible = 0; + p->address_space_24 = 1; + p->chipset_mask = CSMASK_ECS_AGNUS; + p->ntscmode = 0; + p->filesys_limit = 0; - p->fastmem_size = 0x00000000; - p->z3fastmem_size = 0x00000000; - p->z3fastmem_start = z3_start_adr; - p->chipmem_size = 0x00100000; - p->bogomem_size = 0x00000000; - p->rtgmem_size = 0x00000000; - p->rtgmem_type = 1; + p->fastmem_size = 0x00000000; + p->z3fastmem_size = 0x00000000; + p->z3fastmem_start = z3_start_adr; + p->chipmem_size = 0x00100000; + p->bogomem_size = 0x00000000; + p->rtgmem_size = 0x00000000; + p->rtgmem_type = 1; - p->nr_floppies = 2; - p->floppyslots[0].dfxtype = DRV_35_DD; - p->floppyslots[1].dfxtype = DRV_35_DD; - p->floppyslots[2].dfxtype = DRV_NONE; - p->floppyslots[3].dfxtype = DRV_NONE; - p->floppy_speed = 100; - p->floppy_write_length = 0; - - p->socket_emu = 0; + p->nr_floppies = 2; + p->floppyslots[0].dfxtype = DRV_35_DD; + p->floppyslots[1].dfxtype = DRV_35_DD; + p->floppyslots[2].dfxtype = DRV_NONE; + p->floppyslots[3].dfxtype = DRV_NONE; + p->floppy_speed = 100; + p->floppy_write_length = 0; - p->input_tablet = TABLET_OFF; + p->socket_emu = 0; - p->key_for_menu = SDLK_F12; + p->input_tablet = TABLET_OFF; - inputdevice_default_prefs (p); + p->key_for_menu = SDLK_F12; - blkdev_default_prefs (p); + inputdevice_default_prefs (p); - target_default_options (p, type); + blkdev_default_prefs (p); - zfile_fclose (default_file); - default_file = NULL; - f = zfile_fopen_empty (NULL, _T("configstore")); - if (f) { - uaeconfig++; - cfgfile_save_options (f, p, 0); - uaeconfig--; - cfg_write (&zero, f); - default_file = f; - } + target_default_options (p, type); + + zfile_fclose (default_file); + default_file = NULL; + f = zfile_fopen_empty (NULL, _T("configstore")); + if (f) + { + uaeconfig++; + cfgfile_save_options (f, p, 0); + uaeconfig--; + cfg_write (&zero, f); + default_file = f; + } } int bip_a4000 (struct uae_prefs *p, int rom) { - int roms[4]; + int roms[4]; - roms[0] = 15; - roms[1] = 14; - roms[2] = 11; - roms[3] = -1; + roms[0] = 15; + roms[1] = 14; + roms[2] = 11; + roms[3] = -1; - p->bogomem_size = 0; - p->chipmem_size = 0x200000; - p->cpu_model = 68030; - p->fpu_model = 68882; - p->chipset_mask = CSMASK_AGA | CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE; - p->cpu_compatible = p->address_space_24 = 0; - p->m68k_speed = -1; - p->immediate_blits = 0; - p->cachesize = 8192; + p->bogomem_size = 0; + p->chipmem_size = 0x200000; + p->cpu_model = 68030; + p->fpu_model = 68882; + p->chipset_mask = CSMASK_AGA | CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE; + p->cpu_compatible = p->address_space_24 = 0; + p->m68k_speed = -1; + p->immediate_blits = 0; + p->cachesize = 8192; - p->nr_floppies = 2; - p->floppyslots[0].dfxtype = DRV_35_HD; - p->floppyslots[1].dfxtype = DRV_35_HD; - p->floppy_speed = 0; + p->nr_floppies = 2; + p->floppyslots[0].dfxtype = DRV_35_HD; + p->floppyslots[1].dfxtype = DRV_35_HD; + p->floppy_speed = 0; - return configure_rom (p, roms, 0); + return configure_rom (p, roms, 0); } int bip_cd32 (struct uae_prefs *p, int rom) { - int roms[2]; + int roms[2]; - p->cpu_model = 68020; - p->address_space_24 = 1; - p->chipset_mask = CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE | CSMASK_AGA; - p->chipmem_size = 0x200000; - p->bogomem_size = 0; - p->m68k_speed = M68K_SPEED_14MHZ_CYCLES; + p->cpu_model = 68020; + p->address_space_24 = 1; + p->chipset_mask = CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE | CSMASK_AGA; + p->chipmem_size = 0x200000; + p->bogomem_size = 0; + p->m68k_speed = M68K_SPEED_14MHZ_CYCLES; - p->cs_cd32c2p = p->cs_cd32cd = p->cs_cd32nvram = 1; - p->nr_floppies = 0; - p->floppyslots[0].dfxtype = DRV_NONE; - p->floppyslots[1].dfxtype = DRV_NONE; - fetch_datapath (p->flashfile, sizeof (p->flashfile) / sizeof (TCHAR)); - _tcscat (p->flashfile, _T("cd32.nvr")); + p->cs_cd32c2p = p->cs_cd32cd = p->cs_cd32nvram = 1; + p->nr_floppies = 0; + p->floppyslots[0].dfxtype = DRV_NONE; + p->floppyslots[1].dfxtype = DRV_NONE; + fetch_datapath (p->flashfile, sizeof (p->flashfile) / sizeof (TCHAR)); + _tcscat (p->flashfile, _T("cd32.nvr")); - p->cdslots[0].inuse = true; - p->cdslots[0].type = SCSI_UNIT_IMAGE; - - p->gfx_size.width = 384; - p->gfx_size.height = 256; + p->cdslots[0].inuse = true; + p->cdslots[0].type = SCSI_UNIT_IMAGE; - roms[0] = 64; - roms[1] = -1; - if (!configure_rom (p, roms, 0)) { - roms[0] = 18; - roms[1] = -1; - if (!configure_rom (p, roms, 0)) - return 0; - roms[0] = 19; - if (!configure_rom (p, roms, 0)) - return 0; - } + p->gfx_size.width = 384; + p->gfx_size.height = 256; + + roms[0] = 64; + roms[1] = -1; + if (!configure_rom (p, roms, 0)) + { + roms[0] = 18; + roms[1] = -1; + if (!configure_rom (p, roms, 0)) + return 0; + roms[0] = 19; + if (!configure_rom (p, roms, 0)) + return 0; + } // if (config > 0) { // roms[0] = 23; // if (!configure_rom (p, roms, 0)) // return 0; // } - return 1; + return 1; } int bip_a1200 (struct uae_prefs *p, int rom) { - int roms[4]; + int roms[4]; - if(rom == 310) - { - roms[0] = 15; - roms[1] = 11; - roms[2] = 31; - roms[3] = -1; - } - else - { - roms[0] = 11; - roms[1] = 15; - roms[2] = 31; - roms[3] = -1; - } - p->cpu_model = 68020; - p->address_space_24 = 1; - p->chipset_mask = CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE | CSMASK_AGA; - p->chipmem_size = 0x200000; - p->bogomem_size = 0; - p->m68k_speed = M68K_SPEED_14MHZ_CYCLES; + if(rom == 310) + { + roms[0] = 15; + roms[1] = 11; + roms[2] = 31; + roms[3] = -1; + } + else + { + roms[0] = 11; + roms[1] = 15; + roms[2] = 31; + roms[3] = -1; + } + p->cpu_model = 68020; + p->address_space_24 = 1; + p->chipset_mask = CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE | CSMASK_AGA; + p->chipmem_size = 0x200000; + p->bogomem_size = 0; + p->m68k_speed = M68K_SPEED_14MHZ_CYCLES; - p->nr_floppies = 1; - p->floppyslots[1].dfxtype = DRV_NONE; + p->nr_floppies = 1; + p->floppyslots[1].dfxtype = DRV_NONE; - return configure_rom (p, roms, 0); + return configure_rom (p, roms, 0); } int bip_a500plus (struct uae_prefs *p, int rom) { - int roms[4]; + int roms[4]; - if(rom == 130) - { - roms[0] = 6; - roms[1] = 5; - roms[2] = 4; - roms[3] = -1; - } - else - { - roms[0] = 7; - roms[1] = 6; - roms[2] = 5; - roms[3] = -1; - } - p->bogomem_size = 0; - p->chipmem_size = 0x00100000; - p->chipset_mask = CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE; - p->cpu_compatible = 0; - p->fast_copper = 0; - p->nr_floppies = 1; - p->floppyslots[1].dfxtype = DRV_NONE; - return configure_rom (p, roms, 0); + if(rom == 130) + { + roms[0] = 6; + roms[1] = 5; + roms[2] = 4; + roms[3] = -1; + } + else + { + roms[0] = 7; + roms[1] = 6; + roms[2] = 5; + roms[3] = -1; + } + p->bogomem_size = 0; + p->chipmem_size = 0x00100000; + p->chipset_mask = CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE; + p->cpu_compatible = 0; + p->fast_copper = 0; + p->nr_floppies = 1; + p->floppyslots[1].dfxtype = DRV_NONE; + return configure_rom (p, roms, 0); } int bip_a500 (struct uae_prefs *p, int rom) { - int roms[4]; + int roms[4]; - if(rom == 130) - { - roms[0] = 6; - roms[1] = 5; - roms[2] = 4; - roms[3] = -1; - } - else - { - roms[0] = 5; - roms[1] = 4; - roms[2] = 3; - roms[3] = -1; - } - p->chipmem_size = 0x00080000; - p->chipset_mask = 0; - p->cpu_compatible = 0; - p->fast_copper = 0; - p->nr_floppies = 1; - p->floppyslots[1].dfxtype = DRV_NONE; - return configure_rom (p, roms, 0); + if(rom == 130) + { + roms[0] = 6; + roms[1] = 5; + roms[2] = 4; + roms[3] = -1; + } + else + { + roms[0] = 5; + roms[1] = 4; + roms[2] = 3; + roms[3] = -1; + } + p->chipmem_size = 0x00080000; + p->chipset_mask = 0; + p->cpu_compatible = 0; + p->fast_copper = 0; + p->nr_floppies = 1; + p->floppyslots[1].dfxtype = DRV_NONE; + return configure_rom (p, roms, 0); } int bip_a2000 (struct uae_prefs *p, int rom) { - int roms[4]; + int roms[4]; - if(rom == 130) - { - roms[0] = 6; - roms[1] = 5; - roms[2] = 4; - roms[3] = -1; - } - else - { - roms[0] = 5; - roms[1] = 4; - roms[2] = 3; - roms[3] = -1; - } - p->chipmem_size = 0x00080000; - p->bogomem_size = 0x00080000; - p->chipset_mask = 0; - p->cpu_compatible = 0; - p->fast_copper = 0; - p->nr_floppies = 1; - p->floppyslots[1].dfxtype = DRV_NONE; - return configure_rom (p, roms, 0); + if(rom == 130) + { + roms[0] = 6; + roms[1] = 5; + roms[2] = 4; + roms[3] = -1; + } + else + { + roms[0] = 5; + roms[1] = 4; + roms[2] = 3; + roms[3] = -1; + } + p->chipmem_size = 0x00080000; + p->bogomem_size = 0x00080000; + p->chipset_mask = 0; + p->cpu_compatible = 0; + p->fast_copper = 0; + p->nr_floppies = 1; + p->floppyslots[1].dfxtype = DRV_NONE; + return configure_rom (p, roms, 0); } diff --git a/src/cia.cpp b/src/cia.cpp index efe02135..11904dc8 100644 --- a/src/cia.cpp +++ b/src/cia.cpp @@ -1,18 +1,18 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * CIA chip support - * - * Copyright 1995 Bernd Schmidt, Alessandro Bissacco - * Copyright 1996, 1997 Stefan Reinauer, Christian Schmitt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * CIA chip support + * + * Copyright 1995 Bernd Schmidt, Alessandro Bissacco + * Copyright 1996, 1997 Stefan Reinauer, Christian Schmitt + */ #include "sysconfig.h" #include "sysdeps.h" #include #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "cia.h" @@ -69,48 +69,55 @@ static uae_u8 kbcode; static void setclr (unsigned int *p, unsigned int val) { - if (val & 0x80) { - *p |= val & 0x7F; - } else { - *p &= ~val; - } + if (val & 0x80) + { + *p |= val & 0x7F; + } + else + { + *p &= ~val; + } } STATIC_INLINE void ICRA(uae_u32 data) { - if (ciaaimask & ciaaicr) { - ciaaicr |= 0x80; - INTREQ_0 (0x8000 | data); - } - ciaaicr_reg |= ciaaicr; + if (ciaaimask & ciaaicr) + { + ciaaicr |= 0x80; + INTREQ_0 (0x8000 | data); + } + ciaaicr_reg |= ciaaicr; } STATIC_INLINE void ICRB(uae_u32 data) { - if (ciabimask & ciabicr) { - ciabicr |= 0x80; - INTREQ_0 (0x8000 | data); - } - ciabicr_reg |= ciabicr; + if (ciabimask & ciabicr) + { + ciabicr |= 0x80; + INTREQ_0 (0x8000 | data); + } + ciabicr_reg |= ciabicr; } STATIC_INLINE void RethinkICRA (void) { - if (ciaaicr) { - ICRA (0x0008); - } + if (ciaaicr) + { + ICRA (0x0008); + } } STATIC_INLINE void RethinkICRB (void) { - if (ciabicr) { - ICRB (0x2000); - } + if (ciabicr) + { + ICRB (0x2000); + } } void rethink_cias (void) { - RethinkICRA (); - RethinkICRB (); + RethinkICRA (); + RethinkICRB (); } /* Figure out how many CIA timer cycles have passed for each timer since the @@ -118,46 +125,50 @@ void rethink_cias (void) static void compute_passed_time (void) { - unsigned long int ccount = (get_cycles () - eventtab[ev_cia].oldcycles + div10); - unsigned long int ciaclocks = ccount / DIV10; + unsigned long int ccount = (get_cycles () - eventtab[ev_cia].oldcycles + div10); + unsigned long int ciaclocks = ccount / DIV10; - ciaata_passed = ciaatb_passed = ciabta_passed = ciabtb_passed = 0; + ciaata_passed = ciaatb_passed = ciabta_passed = ciabtb_passed = 0; - /* CIA A timers */ - if ((ciaacra & 0x21) == 0x01) { - unsigned long int cc = ciaclocks; - if (cc > ciaastarta) - cc -= ciaastarta; - else - cc = 0; - ciaata_passed = cc; - } - if ((ciaacrb & 0x61) == 0x01) { - unsigned long int cc = ciaclocks; - if (cc > ciaastartb) - cc -= ciaastartb; - else - cc = 0; - ciaatb_passed = cc; - } + /* CIA A timers */ + if ((ciaacra & 0x21) == 0x01) + { + unsigned long int cc = ciaclocks; + if (cc > ciaastarta) + cc -= ciaastarta; + else + cc = 0; + ciaata_passed = cc; + } + if ((ciaacrb & 0x61) == 0x01) + { + unsigned long int cc = ciaclocks; + if (cc > ciaastartb) + cc -= ciaastartb; + else + cc = 0; + ciaatb_passed = cc; + } - /* CIA B timers */ - if ((ciabcra & 0x21) == 0x01) { - unsigned long int cc = ciaclocks; - if (cc > ciabstarta) - cc -= ciabstarta; - else - cc = 0; - ciabta_passed = cc; - } - if ((ciabcrb & 0x61) == 0x01) { - unsigned long int cc = ciaclocks; - if (cc > ciabstartb) - cc -= ciabstartb; - else - cc = 0; - ciabtb_passed = cc; - } + /* CIA B timers */ + if ((ciabcra & 0x21) == 0x01) + { + unsigned long int cc = ciaclocks; + if (cc > ciabstarta) + cc -= ciabstarta; + else + cc = 0; + ciabta_passed = cc; + } + if ((ciabcrb & 0x61) == 0x01) + { + unsigned long int cc = ciaclocks; + if (cc > ciabstartb) + cc -= ciabstartb; + else + cc = 0; + ciabtb_passed = cc; + } } /* Called to advance all CIA timers to the current time. This expects that @@ -166,814 +177,932 @@ static void compute_passed_time (void) static int CIA_update_check (void) { - unsigned long int ccount = (get_cycles () - eventtab[ev_cia].oldcycles + div10); - unsigned long int ciaclocks = ccount / DIV10; + unsigned long int ccount = (get_cycles () - eventtab[ev_cia].oldcycles + div10); + unsigned long int ciaclocks = ccount / DIV10; - int aovfla = 0, aovflb = 0, asp = 0, bovfla = 0, bovflb = 0, bsp = 0; - int icr = 0; + int aovfla = 0, aovflb = 0, asp = 0, bovfla = 0, bovflb = 0, bsp = 0; + int icr = 0; - div10 = ccount % DIV10; + div10 = ccount % DIV10; - /* CIA A timers */ - if ((ciaacra & 0x21) == 0x01) { - bool check = true; - unsigned long int cc = ciaclocks; - if (ciaastarta > 0) { - if (cc > ciaastarta) { - cc -= ciaastarta; - ciaastarta = 0; - } else { - ciaastarta -= cc; - check = false; - } - } - if (check) { - if ((ciaata + 1) == cc) { - if ((ciaacra & 0x48) == 0x40 && ciaasdr_cnt > 0 && --ciaasdr_cnt == 0) - asp = 1; - aovfla = 1; - if ((ciaacrb & 0x61) == 0x41 || (ciaacrb & 0x61) == 0x61) { - if (ciaatb-- == 0) - aovflb = 1; + /* CIA A timers */ + if ((ciaacra & 0x21) == 0x01) + { + bool check = true; + unsigned long int cc = ciaclocks; + if (ciaastarta > 0) + { + if (cc > ciaastarta) + { + cc -= ciaastarta; + ciaastarta = 0; + } + else + { + ciaastarta -= cc; + check = false; + } } - } - ciaata -= cc; - } - } - if ((ciaacrb & 0x61) == 0x01) { - bool check = true; - unsigned long int cc = ciaclocks; - if (ciaastartb > 0) { - if (cc > ciaastartb) { - cc -= ciaastartb; - ciaastartb = 0; - } else { - ciaastartb -= cc; - check = false; - } - } - if (check) { - if ((ciaatb + 1) == cc) - aovflb = 1; - ciaatb -= cc; - } - } - - /* CIA B timers */ - if ((ciabcra & 0x21) == 0x01) { - bool check = true; - unsigned long int cc = ciaclocks; - if (ciabstarta > 0) { - if (cc > ciabstarta) { - cc -= ciabstarta; - ciabstarta = 0; - } else { - ciabstarta -= cc; - check = false; - } - } - if (check) { - if ((ciabta + 1) == cc) { - if ((ciabcra & 0x48) == 0x40 && ciabsdr_cnt > 0 && --ciabsdr_cnt == 0) - bsp = 1; - bovfla = 1; - if ((ciabcrb & 0x61) == 0x41 || (ciabcrb & 0x61) == 0x61) { - if (ciabtb-- == 0) - bovflb = 1; + if (check) + { + if ((ciaata + 1) == cc) + { + if ((ciaacra & 0x48) == 0x40 && ciaasdr_cnt > 0 && --ciaasdr_cnt == 0) + asp = 1; + aovfla = 1; + if ((ciaacrb & 0x61) == 0x41 || (ciaacrb & 0x61) == 0x61) + { + if (ciaatb-- == 0) + aovflb = 1; + } + } + ciaata -= cc; } - } - ciabta -= cc; - } - } - if ((ciabcrb & 0x61) == 0x01) { - bool check = true; - unsigned long int cc = ciaclocks; - if (ciabstartb > 0) { - if (cc > ciabstartb) { - cc -= ciabstartb; - ciabstartb = 0; - } else { - ciabstartb -= cc; - check = false; - } - } - if (check) { - if ((ciabtb + 1) == cc) - bovflb = 1; - ciabtb -= cc; - } - } + } + if ((ciaacrb & 0x61) == 0x01) + { + bool check = true; + unsigned long int cc = ciaclocks; + if (ciaastartb > 0) + { + if (cc > ciaastartb) + { + cc -= ciaastartb; + ciaastartb = 0; + } + else + { + ciaastartb -= cc; + check = false; + } + } + if (check) + { + if ((ciaatb + 1) == cc) + aovflb = 1; + ciaatb -= cc; + } + } - if (aovfla) { - ciaaicr |= 1; icr = 1; - ciaata = ciaala; - if (ciaacra & 0x8) { - ciaacra &= ~1; + /* CIA B timers */ + if ((ciabcra & 0x21) == 0x01) + { + bool check = true; + unsigned long int cc = ciaclocks; + if (ciabstarta > 0) + { + if (cc > ciabstarta) + { + cc -= ciabstarta; + ciabstarta = 0; + } + else + { + ciabstarta -= cc; + check = false; + } + } + if (check) + { + if ((ciabta + 1) == cc) + { + if ((ciabcra & 0x48) == 0x40 && ciabsdr_cnt > 0 && --ciabsdr_cnt == 0) + bsp = 1; + bovfla = 1; + if ((ciabcrb & 0x61) == 0x41 || (ciabcrb & 0x61) == 0x61) + { + if (ciabtb-- == 0) + bovflb = 1; + } + } + ciabta -= cc; + } } - } - if (aovflb) { - ciaaicr |= 2; icr = 1; - ciaatb = ciaalb; - if (ciaacrb & 0x8) { - ciaacrb &= ~1; + if ((ciabcrb & 0x61) == 0x01) + { + bool check = true; + unsigned long int cc = ciaclocks; + if (ciabstartb > 0) + { + if (cc > ciabstartb) + { + cc -= ciabstartb; + ciabstartb = 0; + } + else + { + ciabstartb -= cc; + check = false; + } + } + if (check) + { + if ((ciabtb + 1) == cc) + bovflb = 1; + ciabtb -= cc; + } } - } - if (asp) { - ciaaicr |= 8; icr = 1; - } - if (bovfla) { - ciabicr |= 1; icr |= 2; - ciabta = ciabla; - if (ciabcra & 0x8) { - ciabcra &= ~1; + + if (aovfla) + { + ciaaicr |= 1; + icr = 1; + ciaata = ciaala; + if (ciaacra & 0x8) + { + ciaacra &= ~1; + } } - } - if (bovflb) { - ciabicr |= 2; icr |= 2; - ciabtb = ciablb; - if (ciabcrb & 0x8) { - ciabcrb &= ~1; + if (aovflb) + { + ciaaicr |= 2; + icr = 1; + ciaatb = ciaalb; + if (ciaacrb & 0x8) + { + ciaacrb &= ~1; + } } - } - if (bsp) { - ciabicr |= 8; icr |= 2; - } - return icr; + if (asp) + { + ciaaicr |= 8; + icr = 1; + } + if (bovfla) + { + ciabicr |= 1; + icr |= 2; + ciabta = ciabla; + if (ciabcra & 0x8) + { + ciabcra &= ~1; + } + } + if (bovflb) + { + ciabicr |= 2; + icr |= 2; + ciabtb = ciablb; + if (ciabcrb & 0x8) + { + ciabcrb &= ~1; + } + } + if (bsp) + { + ciabicr |= 8; + icr |= 2; + } + return icr; } static void CIA_update (void) { - int icr = CIA_update_check (); - if (icr & 1) - RethinkICRA (); - if (icr & 2) - RethinkICRB (); + int icr = CIA_update_check (); + if (icr & 1) + RethinkICRA (); + if (icr & 2) + RethinkICRB (); } /* Call this only after CIA_update has been called in the same cycle. */ static void CIA_calctimers (void) { - long int ciaatimea = -1, ciaatimeb = -1, ciabtimea = -1, ciabtimeb = -1; - int div10diff = DIV10 - div10; + long int ciaatimea = -1, ciaatimeb = -1, ciabtimea = -1, ciabtimeb = -1; + int div10diff = DIV10 - div10; - eventtab[ev_cia].oldcycles = get_cycles (); - if ((ciaacra & 0x21) == 0x01) { - ciaatimea = div10diff + DIV10 * (ciaata + ciaastarta); - } - if ((ciaacrb & 0x61) == 0x01) { - ciaatimeb = div10diff + DIV10 * (ciaatb + ciaastartb); - } + eventtab[ev_cia].oldcycles = get_cycles (); + if ((ciaacra & 0x21) == 0x01) + { + ciaatimea = div10diff + DIV10 * (ciaata + ciaastarta); + } + if ((ciaacrb & 0x61) == 0x01) + { + ciaatimeb = div10diff + DIV10 * (ciaatb + ciaastartb); + } - if ((ciabcra & 0x21) == 0x01) { - ciabtimea = div10diff + DIV10 * (ciabta + ciabstarta); - } - if ((ciabcrb & 0x61) == 0x01) { - ciabtimeb = div10diff + DIV10 * (ciabtb + ciabstartb); - } - eventtab[ev_cia].active = (ciaatimea != -1 || ciaatimeb != -1 - || ciabtimea != -1 || ciabtimeb != -1); - if (eventtab[ev_cia].active) { - unsigned long int ciatime = ~0L; - if (ciaatimea != -1) - ciatime = ciaatimea; - if (ciaatimeb != -1 && ciaatimeb < ciatime) - ciatime = ciaatimeb; - if (ciabtimea != -1 && ciabtimea < ciatime) - ciatime = ciabtimea; - if (ciabtimeb != -1 && ciabtimeb < ciatime) - ciatime = ciabtimeb; - eventtab[ev_cia].evtime = ciatime + get_cycles (); - } - events_schedule(); + if ((ciabcra & 0x21) == 0x01) + { + ciabtimea = div10diff + DIV10 * (ciabta + ciabstarta); + } + if ((ciabcrb & 0x61) == 0x01) + { + ciabtimeb = div10diff + DIV10 * (ciabtb + ciabstartb); + } + eventtab[ev_cia].active = (ciaatimea != -1 || ciaatimeb != -1 + || ciabtimea != -1 || ciabtimeb != -1); + if (eventtab[ev_cia].active) + { + unsigned long int ciatime = ~0L; + if (ciaatimea != -1) + ciatime = ciaatimea; + if (ciaatimeb != -1 && ciaatimeb < ciatime) + ciatime = ciaatimeb; + if (ciabtimea != -1 && ciabtimea < ciatime) + ciatime = ciabtimea; + if (ciabtimeb != -1 && ciabtimeb < ciatime) + ciatime = ciabtimeb; + eventtab[ev_cia].evtime = ciatime + get_cycles (); + } + events_schedule(); } void CIA_handler (void) { - CIA_update (); - CIA_calctimers (); + CIA_update (); + CIA_calctimers (); } void cia_diskindex (void) { - ciabicr |= 0x10; - RethinkICRB(); + ciabicr |= 0x10; + RethinkICRB(); } static int checkalarm (unsigned long tod, unsigned long alarm, int inc) { - if (tod == alarm) - return 1; - if (!inc) - return 0; - /* emulate buggy TODMED counter. - * it counts: .. 29 2A 2B 2C 2D 2E 2F 20 30 31 32 .. - * (2F->20->30 only takes couple of cycles but it will trigger alarm.. - */ - if (tod & 0x000fff) - return 0; - if (((tod - 1) & 0xfff000) == alarm) - return 1; - return 0; + if (tod == alarm) + return 1; + if (!inc) + return 0; + /* emulate buggy TODMED counter. + * it counts: .. 29 2A 2B 2C 2D 2E 2F 20 30 31 32 .. + * (2F->20->30 only takes couple of cycles but it will trigger alarm.. + */ + if (tod & 0x000fff) + return 0; + if (((tod - 1) & 0xfff000) == alarm) + return 1; + return 0; } STATIC_INLINE void ciab_checkalarm (int inc) { - if (checkalarm (ciabtod, ciabalarm, inc)) { - ciabicr |= 4; - RethinkICRB (); - } + if (checkalarm (ciabtod, ciabalarm, inc)) + { + ciabicr |= 4; + RethinkICRB (); + } } STATIC_INLINE void ciaa_checkalarm (int inc) { - if (checkalarm (ciaatod, ciaaalarm, inc)) { - ciaaicr |= 4; - RethinkICRA (); - } + if (checkalarm (ciaatod, ciaaalarm, inc)) + { + ciaaicr |= 4; + RethinkICRA (); + } } #ifdef TOD_HACK static int tod_hack, tod_hack_delay; static void tod_hack_reset (void) { - struct timeval tv; - uae_u32 rate = currprefs.ntscmode ? 60 : 50; - gettimeofday (&tv, NULL); - tod_hack = (uae_u32)(((uae_u64)tv.tv_sec) * rate + tv.tv_usec / (1000000 / rate)); - tod_hack -= ciaatod; - tod_hack_delay = 10 * 50; + struct timeval tv; + uae_u32 rate = currprefs.ntscmode ? 60 : 50; + gettimeofday (&tv, NULL); + tod_hack = (uae_u32)(((uae_u64)tv.tv_sec) * rate + tv.tv_usec / (1000000 / rate)); + tod_hack -= ciaatod; + tod_hack_delay = 10 * 50; } #endif static void setcode (uae_u8 keycode) { - kbcode = ~((keycode << 1) | (keycode >> 7)); + kbcode = ~((keycode << 1) | (keycode >> 7)); } static void keyreq (void) { - ciaasdr = kbcode; - kblostsynccnt = 8 * maxvpos * 8; // 8 frames * 8 bits. - ciaaicr |= 8; - RethinkICRA (); + ciaasdr = kbcode; + kblostsynccnt = 8 * maxvpos * 8; // 8 frames * 8 bits. + ciaaicr |= 8; + RethinkICRA (); } void CIA_hsync_posthandler (void) { - if (ciabtodon) { - ciabtod++; - ciabtod &= 0xFFFFFF; - ciab_checkalarm (1); - } - - if ((keys_available() || kbstate < 3) && !kblostsynccnt && (hsync_counter & 15) == 0) { - switch (kbstate) + if (ciabtodon) { - case 0: - kbcode = 0; /* powerup resync */ - kbstate++; - break; - case 1: - setcode (AK_INIT_POWERUP); - kbstate++; - break; - case 2: - setcode (AK_TERM_POWERUP); - kbstate++; - break; - case 3: - kbcode = ~get_next_key (); - break; + ciabtod++; + ciabtod &= 0xFFFFFF; + ciab_checkalarm (1); + } + + if ((keys_available() || kbstate < 3) && !kblostsynccnt && (hsync_counter & 15) == 0) + { + switch (kbstate) + { + case 0: + kbcode = 0; /* powerup resync */ + kbstate++; + break; + case 1: + setcode (AK_INIT_POWERUP); + kbstate++; + break; + case 2: + setcode (AK_TERM_POWERUP); + kbstate++; + break; + case 3: + kbcode = ~get_next_key (); + break; + } + keyreq (); } - keyreq (); - } } void CIA_vsync_prehandler (void) { - CIA_handler (); - if (kblostsynccnt > 0) { - kblostsynccnt -= maxvpos; - if (kblostsynccnt <= 0) { - kblostsynccnt = 0; - keyreq (); - } - } + CIA_handler (); + if (kblostsynccnt > 0) + { + kblostsynccnt -= maxvpos; + if (kblostsynccnt <= 0) + { + kblostsynccnt = 0; + keyreq (); + } + } } void CIA_vsync_posthandler (void) { #ifdef TOD_HACK - if (currprefs.tod_hack && ciaatodon) { - struct timeval tv; - uae_u32 t, nt, rate = currprefs.ntscmode ? 60 : 50; - if (tod_hack_delay > 0) { - tod_hack_delay--; - if (tod_hack_delay == 0) { - tod_hack_reset (); - tod_hack_delay = 0; - write_log (_T("TOD_HACK re-initialized CIATOD=%06X\n"), ciaatod); - } - } - if (tod_hack_delay == 0) { - gettimeofday (&tv, NULL); - t = (uae_u32)(((uae_u64)tv.tv_sec) * rate + tv.tv_usec / (1000000 / rate)); - nt = t - tod_hack; - if ((nt < ciaatod && ciaatod - nt < 10) || nt == ciaatod) - return; /* try not to count backwards */ - ciaatod = nt; - ciaatod &= 0xffffff; - ciaa_checkalarm (0); - return; + if (currprefs.tod_hack && ciaatodon) + { + struct timeval tv; + uae_u32 t, nt, rate = currprefs.ntscmode ? 60 : 50; + if (tod_hack_delay > 0) + { + tod_hack_delay--; + if (tod_hack_delay == 0) + { + tod_hack_reset (); + tod_hack_delay = 0; + write_log (_T("TOD_HACK re-initialized CIATOD=%06X\n"), ciaatod); + } + } + if (tod_hack_delay == 0) + { + gettimeofday (&tv, NULL); + t = (uae_u32)(((uae_u64)tv.tv_sec) * rate + tv.tv_usec / (1000000 / rate)); + nt = t - tod_hack; + if ((nt < ciaatod && ciaatod - nt < 10) || nt == ciaatod) + return; /* try not to count backwards */ + ciaatod = nt; + ciaatod &= 0xffffff; + ciaa_checkalarm (0); + return; + } } - } #endif - if (ciaatodon) { - ciaatod++; - ciaatod &= 0xFFFFFF; - ciaa_checkalarm (1); - } + if (ciaatodon) + { + ciaatod++; + ciaatod &= 0xFFFFFF; + ciaa_checkalarm (1); + } } static void bfe001_change (void) { - uae_u8 v = ciaapra; - bool led2; + uae_u8 v = ciaapra; + bool led2; - v |= ~ciaadra; /* output is high when pin's direction is input */ - led2 = (v & 2) ? 0 : 1; - if (led2 != led) { - led = led2; - gui_data.powerled = led2; - led_filter_audio(); - } - if (!(currprefs.chipset_mask & CSMASK_AGA) && (v & 1) != oldovl) { - oldovl = v & 1; - if (!oldovl) { - map_overlay (1); - } else { - map_overlay (0); + v |= ~ciaadra; /* output is high when pin's direction is input */ + led2 = (v & 2) ? 0 : 1; + if (led2 != led) + { + led = led2; + gui_data.powerled = led2; + led_filter_audio(); + } + if (!(currprefs.chipset_mask & CSMASK_AGA) && (v & 1) != oldovl) + { + oldovl = v & 1; + if (!oldovl) + { + map_overlay (1); + } + else + { + map_overlay (0); + } + } + if (currprefs.cs_cd32cd && (v & 1) != oldcd32mute) + { + oldcd32mute = v & 1; + akiko_mute (oldcd32mute ? 0 : 1); } - } - if (currprefs.cs_cd32cd && (v & 1) != oldcd32mute) { - oldcd32mute = v & 1; - akiko_mute (oldcd32mute ? 0 : 1); - } } static uae_u8 ReadCIAA (unsigned int addr) { - unsigned int tmp; - int reg = addr & 15; + unsigned int tmp; + int reg = addr & 15; - compute_passed_time (); + compute_passed_time (); - switch (reg) { - case 0: - tmp = DISK_status() & 0x3c; - tmp |= handle_joystick_buttons (ciaapra, ciaadra); - tmp |= (ciaapra | (ciaadra ^ 3)) & 0x03; - return tmp; - case 1: + switch (reg) + { + case 0: + tmp = DISK_status() & 0x3c; + tmp |= handle_joystick_buttons (ciaapra, ciaadra); + tmp |= (ciaapra | (ciaadra ^ 3)) & 0x03; + return tmp; + case 1: #ifdef INPUTDEVICE_SIMPLE - tmp = (ciaaprb & ciaadrb) | (ciaadrb ^ 0xff); + tmp = (ciaaprb & ciaadrb) | (ciaadrb ^ 0xff); #else - tmp = handle_parport_joystick (0, ciaaprb, ciaadrb); + tmp = handle_parport_joystick (0, ciaaprb, ciaadrb); #endif - if (ciaacrb & 2) { - int pb7 = 0; - if (ciaacrb & 4) - pb7 = ciaacrb & 1; - tmp &= ~0x80; - tmp |= pb7 ? 0x80 : 00; - } - if (ciaacra & 2) { - int pb6 = 0; - if (ciaacra & 4) - pb6 = ciaacra & 1; - tmp &= ~0x40; - tmp |= pb6 ? 0x40 : 00; - } - return tmp; - case 2: - return ciaadra; - case 3: - return ciaadrb; - case 4: - return (uae_u8)((ciaata - ciaata_passed) & 0xff); - case 5: - return (uae_u8)((ciaata - ciaata_passed) >> 8); - case 6: - return (uae_u8)((ciaatb - ciaatb_passed) & 0xff); - case 7: - return (uae_u8)((ciaatb - ciaatb_passed) >> 8); - case 8: - if (ciaatlatch) { - ciaatlatch = 0; - return (uae_u8)ciaatol; - } else - return (uae_u8)ciaatod; - case 9: - if (ciaatlatch) - return (uae_u8)(ciaatol >> 8); - else - return (uae_u8)(ciaatod >> 8); - case 10: - if (!ciaatlatch) { /* only if not already latched. A1200 confirmed. (TW) */ - /* no latching if ALARM is set */ - if (!(ciaacrb & 0x80)) - ciaatlatch = 1; - ciaatol = ciaatod; - } - return (uae_u8)(ciaatol >> 16); - case 12: - return ciaasdr; - case 13: - tmp = ciaaicr_reg; - ciaaicr &= ~ciaaicr_reg; - ciaaicr_reg = 0; - RethinkICRA(); - return tmp; - case 14: - return ciaacra; - case 15: - return ciaacrb; - } - return 0; + if (ciaacrb & 2) + { + int pb7 = 0; + if (ciaacrb & 4) + pb7 = ciaacrb & 1; + tmp &= ~0x80; + tmp |= pb7 ? 0x80 : 00; + } + if (ciaacra & 2) + { + int pb6 = 0; + if (ciaacra & 4) + pb6 = ciaacra & 1; + tmp &= ~0x40; + tmp |= pb6 ? 0x40 : 00; + } + return tmp; + case 2: + return ciaadra; + case 3: + return ciaadrb; + case 4: + return (uae_u8)((ciaata - ciaata_passed) & 0xff); + case 5: + return (uae_u8)((ciaata - ciaata_passed) >> 8); + case 6: + return (uae_u8)((ciaatb - ciaatb_passed) & 0xff); + case 7: + return (uae_u8)((ciaatb - ciaatb_passed) >> 8); + case 8: + if (ciaatlatch) + { + ciaatlatch = 0; + return (uae_u8)ciaatol; + } + else + return (uae_u8)ciaatod; + case 9: + if (ciaatlatch) + return (uae_u8)(ciaatol >> 8); + else + return (uae_u8)(ciaatod >> 8); + case 10: + if (!ciaatlatch) /* only if not already latched. A1200 confirmed. (TW) */ + { + /* no latching if ALARM is set */ + if (!(ciaacrb & 0x80)) + ciaatlatch = 1; + ciaatol = ciaatod; + } + return (uae_u8)(ciaatol >> 16); + case 12: + return ciaasdr; + case 13: + tmp = ciaaicr_reg; + ciaaicr &= ~ciaaicr_reg; + ciaaicr_reg = 0; + RethinkICRA(); + return tmp; + case 14: + return ciaacra; + case 15: + return ciaacrb; + } + return 0; } static uae_u8 ReadCIAB (unsigned int addr) { - unsigned int tmp; - int reg = addr & 15; + unsigned int tmp; + int reg = addr & 15; - compute_passed_time (); + compute_passed_time (); - switch (reg) { - case 0: - tmp = 0; + switch (reg) + { + case 0: + tmp = 0; #ifdef INPUTDEVICE_SIMPLE - tmp = ((ciabpra & ciabdra) | (ciabdra ^ 0xff)) & 0x7; + tmp = ((ciabpra & ciabdra) | (ciabdra ^ 0xff)) & 0x7; #else - tmp |= handle_parport_joystick (1, ciabpra, ciabdra); + tmp |= handle_parport_joystick (1, ciabpra, ciabdra); #endif - return tmp; - case 1: - tmp = ciabprb; - if (ciabcrb & 2) { - int pb7 = 0; - if (ciabcrb & 4) - pb7 = ciabcrb & 1; - tmp &= ~0x80; - tmp |= pb7 ? 0x80 : 00; - } - if (ciabcra & 2) { - int pb6 = 0; - if (ciabcra & 4) - pb6 = ciabcra & 1; - tmp &= ~0x40; - tmp |= pb6 ? 0x40 : 00; - } - return tmp; - case 2: - return ciabdra; - case 3: - return ciabdrb; - case 4: - return (uae_u8)((ciabta - ciabta_passed) & 0xff); - case 5: - return (uae_u8)((ciabta - ciabta_passed) >> 8); - case 6: - return (uae_u8)((ciabtb - ciabtb_passed) & 0xff); - case 7: - return (uae_u8)((ciabtb - ciabtb_passed) >> 8); - case 8: - if (ciabtlatch) { - ciabtlatch = 0; - return (uae_u8)ciabtol; - } else - return (uae_u8)ciabtod; - case 9: - if (ciabtlatch) - return (uae_u8)(ciabtol >> 8); - else - return (uae_u8)(ciabtod >> 8); - case 10: - if (!ciabtlatch) { - /* no latching if ALARM is set */ - if (!(ciabcrb & 0x80)) - ciabtlatch = 1; - ciabtol = ciabtod; - } - return (uae_u8)(ciabtol >> 16); - case 12: - return ciabsdr; - case 13: - tmp = ciabicr_reg; - ciabicr &= ~ciabicr_reg; - ciabicr_reg = 0; - RethinkICRB (); - return tmp; - case 14: - return ciabcra; - case 15: - return ciabcrb; - } - return 0; + return tmp; + case 1: + tmp = ciabprb; + if (ciabcrb & 2) + { + int pb7 = 0; + if (ciabcrb & 4) + pb7 = ciabcrb & 1; + tmp &= ~0x80; + tmp |= pb7 ? 0x80 : 00; + } + if (ciabcra & 2) + { + int pb6 = 0; + if (ciabcra & 4) + pb6 = ciabcra & 1; + tmp &= ~0x40; + tmp |= pb6 ? 0x40 : 00; + } + return tmp; + case 2: + return ciabdra; + case 3: + return ciabdrb; + case 4: + return (uae_u8)((ciabta - ciabta_passed) & 0xff); + case 5: + return (uae_u8)((ciabta - ciabta_passed) >> 8); + case 6: + return (uae_u8)((ciabtb - ciabtb_passed) & 0xff); + case 7: + return (uae_u8)((ciabtb - ciabtb_passed) >> 8); + case 8: + if (ciabtlatch) + { + ciabtlatch = 0; + return (uae_u8)ciabtol; + } + else + return (uae_u8)ciabtod; + case 9: + if (ciabtlatch) + return (uae_u8)(ciabtol >> 8); + else + return (uae_u8)(ciabtod >> 8); + case 10: + if (!ciabtlatch) + { + /* no latching if ALARM is set */ + if (!(ciabcrb & 0x80)) + ciabtlatch = 1; + ciabtol = ciabtod; + } + return (uae_u8)(ciabtol >> 16); + case 12: + return ciabsdr; + case 13: + tmp = ciabicr_reg; + ciabicr &= ~ciabicr_reg; + ciabicr_reg = 0; + RethinkICRB (); + return tmp; + case 14: + return ciabcra; + case 15: + return ciabcrb; + } + return 0; } static void WriteCIAA (uae_u16 addr,uae_u8 val) { - int reg = addr & 15; + int reg = addr & 15; - if ((currprefs.chipset_mask & CSMASK_AGA) && oldovl) { - map_overlay (1); - oldovl = 0; - } - switch (reg) { - case 0: - ciaapra = (ciaapra & ~0xc3) | (val & 0xc3); - bfe001_change (); - handle_cd32_joystick_cia (ciaapra, ciaadra); - break; - case 1: - ciaaprb = val; - break; - case 2: - ciaadra = val; - bfe001_change (); - break; - case 3: - ciaadrb = val; - break; - case 4: - CIA_update (); - ciaala = (ciaala & 0xff00) | val; - CIA_calctimers (); - break; - case 5: - CIA_update (); - ciaala = (ciaala & 0xff) | (val << 8); - if ((ciaacra & 1) == 0) - ciaata = ciaala; - if (ciaacra & 8) { - ciaata = ciaala; - ciaacra |= 1; - ciaastarta = CIASTARTCYCLESHI; - } - CIA_calctimers (); - break; - case 6: - CIA_update (); - ciaalb = (ciaalb & 0xff00) | val; - CIA_calctimers (); - break; - case 7: - CIA_update (); - ciaalb = (ciaalb & 0xff) | (val << 8); - if ((ciaacrb & 1) == 0) - ciaatb = ciaalb; - if (ciaacrb & 8) { - ciaatb = ciaalb; - ciaacrb |= 1; - ciaastartb = CIASTARTCYCLESHI; - } - CIA_calctimers (); - break; - case 8: - if (ciaacrb & 0x80) { - ciaaalarm = (ciaaalarm & ~0xff) | val; - } else { - ciaatod = (ciaatod & ~0xff) | val; - ciaatodon = 1; - ciaa_checkalarm (0); + if ((currprefs.chipset_mask & CSMASK_AGA) && oldovl) + { + map_overlay (1); + oldovl = 0; + } + switch (reg) + { + case 0: + ciaapra = (ciaapra & ~0xc3) | (val & 0xc3); + bfe001_change (); + handle_cd32_joystick_cia (ciaapra, ciaadra); + break; + case 1: + ciaaprb = val; + break; + case 2: + ciaadra = val; + bfe001_change (); + break; + case 3: + ciaadrb = val; + break; + case 4: + CIA_update (); + ciaala = (ciaala & 0xff00) | val; + CIA_calctimers (); + break; + case 5: + CIA_update (); + ciaala = (ciaala & 0xff) | (val << 8); + if ((ciaacra & 1) == 0) + ciaata = ciaala; + if (ciaacra & 8) + { + ciaata = ciaala; + ciaacra |= 1; + ciaastarta = CIASTARTCYCLESHI; + } + CIA_calctimers (); + break; + case 6: + CIA_update (); + ciaalb = (ciaalb & 0xff00) | val; + CIA_calctimers (); + break; + case 7: + CIA_update (); + ciaalb = (ciaalb & 0xff) | (val << 8); + if ((ciaacrb & 1) == 0) + ciaatb = ciaalb; + if (ciaacrb & 8) + { + ciaatb = ciaalb; + ciaacrb |= 1; + ciaastartb = CIASTARTCYCLESHI; + } + CIA_calctimers (); + break; + case 8: + if (ciaacrb & 0x80) + { + ciaaalarm = (ciaaalarm & ~0xff) | val; + } + else + { + ciaatod = (ciaatod & ~0xff) | val; + ciaatodon = 1; + ciaa_checkalarm (0); #ifdef TOD_HACK - if (currprefs.tod_hack) - tod_hack_reset (); + if (currprefs.tod_hack) + tod_hack_reset (); #endif - } - break; - case 9: - if (ciaacrb & 0x80) { - ciaaalarm = (ciaaalarm & ~0xff00) | (val << 8); - } else { - ciaatod = (ciaatod & ~0xff00) | (val << 8); - } - break; - case 10: - if (ciaacrb & 0x80) { - ciaaalarm = (ciaaalarm & ~0xff0000) | (val << 16); - } else { - ciaatod = (ciaatod & ~0xff0000) | (val << 16); - ciaatodon = 0; - } - break; - case 12: - CIA_update (); - ciaasdr = val; - if ((ciaacra & 0x41) == 0x41 && ciaasdr_cnt == 0) - ciaasdr_cnt = 8 * 2; - CIA_calctimers (); - break; - case 13: - setclr(&ciaaimask,val); - break; - case 14: - CIA_update (); - val &= 0x7f; /* bit 7 is unused */ - if ((val & 1) && !(ciaacra & 1)) - ciaastarta = CIASTARTCYCLESCRA; - if ((val & 0x40) == 0 && (ciaacra & 0x40) != 0) { - /* todo: check if low to high or high to low only */ - kblostsynccnt = 0; - } - ciaacra = val; - if (ciaacra & 0x10) { - ciaacra &= ~0x10; - ciaata = ciaala; - } - CIA_calctimers (); - break; - case 15: - CIA_update (); - if ((val & 1) && !(ciaacrb & 1)) - ciaastartb = CIASTARTCYCLESCRA; - ciaacrb = val; - if (ciaacrb & 0x10) { - ciaacrb &= ~0x10; - ciaatb = ciaalb; - } - CIA_calctimers (); - break; - } + } + break; + case 9: + if (ciaacrb & 0x80) + { + ciaaalarm = (ciaaalarm & ~0xff00) | (val << 8); + } + else + { + ciaatod = (ciaatod & ~0xff00) | (val << 8); + } + break; + case 10: + if (ciaacrb & 0x80) + { + ciaaalarm = (ciaaalarm & ~0xff0000) | (val << 16); + } + else + { + ciaatod = (ciaatod & ~0xff0000) | (val << 16); + ciaatodon = 0; + } + break; + case 12: + CIA_update (); + ciaasdr = val; + if ((ciaacra & 0x41) == 0x41 && ciaasdr_cnt == 0) + ciaasdr_cnt = 8 * 2; + CIA_calctimers (); + break; + case 13: + setclr(&ciaaimask,val); + break; + case 14: + CIA_update (); + val &= 0x7f; /* bit 7 is unused */ + if ((val & 1) && !(ciaacra & 1)) + ciaastarta = CIASTARTCYCLESCRA; + if ((val & 0x40) == 0 && (ciaacra & 0x40) != 0) + { + /* todo: check if low to high or high to low only */ + kblostsynccnt = 0; + } + ciaacra = val; + if (ciaacra & 0x10) + { + ciaacra &= ~0x10; + ciaata = ciaala; + } + CIA_calctimers (); + break; + case 15: + CIA_update (); + if ((val & 1) && !(ciaacrb & 1)) + ciaastartb = CIASTARTCYCLESCRA; + ciaacrb = val; + if (ciaacrb & 0x10) + { + ciaacrb &= ~0x10; + ciaatb = ciaalb; + } + CIA_calctimers (); + break; + } } static void WriteCIAB (uae_u16 addr,uae_u8 val) { - int reg = addr & 15; + int reg = addr & 15; - switch (reg) { - case 0: - ciabpra = val; - break; - case 1: - ciabprb = val; - DISK_select(val); - break; - case 2: - ciabdra = val; - break; - case 3: - ciabdrb = val; - break; - case 4: - CIA_update (); - ciabla = (ciabla & 0xff00) | val; - CIA_calctimers (); - break; - case 5: - CIA_update (); - ciabla = (ciabla & 0xff) | (val << 8); - if ((ciabcra & 1) == 0) - ciabta = ciabla; - if (ciabcra & 8) { - ciabta = ciabla; - ciabcra |= 1; - ciabstarta = CIASTARTCYCLESHI; - } - CIA_calctimers (); - break; - case 6: - CIA_update (); - ciablb = (ciablb & 0xff00) | val; - CIA_calctimers (); - break; - case 7: - CIA_update (); - ciablb = (ciablb & 0xff) | (val << 8); - if ((ciabcrb & 1) == 0) - ciabtb = ciablb; - if (ciabcrb & 8) { - ciabtb = ciablb; - ciabcrb |= 1; - ciabstartb = CIASTARTCYCLESHI; - } - CIA_calctimers (); - break; - case 8: - if (ciabcrb & 0x80) { - ciabalarm = (ciabalarm & ~0xff) | val; - } else { - ciabtod = (ciabtod & ~0xff) | val; - ciabtodon = 1; - ciab_checkalarm (0); - } - break; - case 9: - if (ciabcrb & 0x80) { - ciabalarm = (ciabalarm & ~0xff00) | (val << 8); - } else { - ciabtod = (ciabtod & ~0xff00) | (val << 8); - } - break; - case 10: - if (ciabcrb & 0x80) { - ciabalarm = (ciabalarm & ~0xff0000) | (val << 16); - } else { - ciabtod = (ciabtod & ~0xff0000) | (val << 16); - ciabtodon = 0; - } - break; - case 12: - CIA_update (); - ciabsdr = val; - if ((ciabcra & 0x40) == 0) - ciabsdr_cnt = 0; - if ((ciabcra & 0x41) == 0x41 && ciabsdr_cnt == 0) - ciabsdr_cnt = 8 * 2; - CIA_calctimers (); - break; - case 13: - setclr(&ciabimask,val); - break; - case 14: - CIA_update (); - val &= 0x7f; /* bit 7 is unused */ - if ((val & 1) && !(ciabcra & 1)) - ciabstarta = CIASTARTCYCLESCRA; - ciabcra = val; - if (ciabcra & 0x10) { - ciabcra &= ~0x10; - ciabta = ciabla; - } - CIA_calctimers (); - break; - case 15: - CIA_update (); - if ((val & 1) && !(ciabcrb & 1)) - ciabstartb = CIASTARTCYCLESCRA; - ciabcrb = val; - if (ciabcrb & 0x10) { - ciabcrb &= ~0x10; - ciabtb = ciablb; - } - CIA_calctimers (); - break; - } + switch (reg) + { + case 0: + ciabpra = val; + break; + case 1: + ciabprb = val; + DISK_select(val); + break; + case 2: + ciabdra = val; + break; + case 3: + ciabdrb = val; + break; + case 4: + CIA_update (); + ciabla = (ciabla & 0xff00) | val; + CIA_calctimers (); + break; + case 5: + CIA_update (); + ciabla = (ciabla & 0xff) | (val << 8); + if ((ciabcra & 1) == 0) + ciabta = ciabla; + if (ciabcra & 8) + { + ciabta = ciabla; + ciabcra |= 1; + ciabstarta = CIASTARTCYCLESHI; + } + CIA_calctimers (); + break; + case 6: + CIA_update (); + ciablb = (ciablb & 0xff00) | val; + CIA_calctimers (); + break; + case 7: + CIA_update (); + ciablb = (ciablb & 0xff) | (val << 8); + if ((ciabcrb & 1) == 0) + ciabtb = ciablb; + if (ciabcrb & 8) + { + ciabtb = ciablb; + ciabcrb |= 1; + ciabstartb = CIASTARTCYCLESHI; + } + CIA_calctimers (); + break; + case 8: + if (ciabcrb & 0x80) + { + ciabalarm = (ciabalarm & ~0xff) | val; + } + else + { + ciabtod = (ciabtod & ~0xff) | val; + ciabtodon = 1; + ciab_checkalarm (0); + } + break; + case 9: + if (ciabcrb & 0x80) + { + ciabalarm = (ciabalarm & ~0xff00) | (val << 8); + } + else + { + ciabtod = (ciabtod & ~0xff00) | (val << 8); + } + break; + case 10: + if (ciabcrb & 0x80) + { + ciabalarm = (ciabalarm & ~0xff0000) | (val << 16); + } + else + { + ciabtod = (ciabtod & ~0xff0000) | (val << 16); + ciabtodon = 0; + } + break; + case 12: + CIA_update (); + ciabsdr = val; + if ((ciabcra & 0x40) == 0) + ciabsdr_cnt = 0; + if ((ciabcra & 0x41) == 0x41 && ciabsdr_cnt == 0) + ciabsdr_cnt = 8 * 2; + CIA_calctimers (); + break; + case 13: + setclr(&ciabimask,val); + break; + case 14: + CIA_update (); + val &= 0x7f; /* bit 7 is unused */ + if ((val & 1) && !(ciabcra & 1)) + ciabstarta = CIASTARTCYCLESCRA; + ciabcra = val; + if (ciabcra & 0x10) + { + ciabcra &= ~0x10; + ciabta = ciabla; + } + CIA_calctimers (); + break; + case 15: + CIA_update (); + if ((val & 1) && !(ciabcrb & 1)) + ciabstartb = CIASTARTCYCLESCRA; + ciabcrb = val; + if (ciabcrb & 0x10) + { + ciabcrb &= ~0x10; + ciabtb = ciablb; + } + CIA_calctimers (); + break; + } } void cia_set_overlay (bool overlay) { - oldovl = overlay; + oldovl = overlay; } void CIA_reset (void) { #ifdef TOD_HACK - tod_hack = 0; - if (currprefs.tod_hack) - tod_hack_reset (); + tod_hack = 0; + if (currprefs.tod_hack) + tod_hack_reset (); #endif - kblostsynccnt = 0; - oldcd32mute = 1; + kblostsynccnt = 0; + oldcd32mute = 1; - if (!savestate_state) { - oldovl = true; - kbstate = 0; - ciaatlatch = ciabtlatch = 0; - ciaapra = 0; ciaadra = 0; - ciaatod = ciabtod = 0; ciaatodon = ciabtodon = 0; - ciaaicr = ciabicr = ciaaimask = ciabimask = 0; - ciaacra = ciaacrb = ciabcra = ciabcrb = 0x4; /* outmode = toggle; */ - ciaala = ciaalb = ciabla = ciablb = ciaata = ciaatb = ciabta = ciabtb = 0xFFFF; - ciaaalarm = ciabalarm = 0; - ciabpra = 0x8C; ciabdra = 0; - div10 = 0; - ciaasdr_cnt = 0; ciaasdr = 0; - ciabsdr_cnt = 0; ciabsdr = 0; - ciaata_passed = ciaatb_passed = ciabta_passed = ciabtb_passed = 0; - ciaatol = ciabtol = ciaaprb = ciaadrb = ciabprb = ciabdrb = 0; - CIA_calctimers (); - DISK_select_set (ciabprb); - } - map_overlay (0); - if (savestate_state) { - if (!(currprefs.chipset_mask & CSMASK_AGA)) { - oldovl = true; - } - bfe001_change (); - if (currprefs.chipset_mask & CSMASK_AGA) { - map_overlay (oldovl ? 0 : 1); - } - } + if (!savestate_state) + { + oldovl = true; + kbstate = 0; + ciaatlatch = ciabtlatch = 0; + ciaapra = 0; + ciaadra = 0; + ciaatod = ciabtod = 0; + ciaatodon = ciabtodon = 0; + ciaaicr = ciabicr = ciaaimask = ciabimask = 0; + ciaacra = ciaacrb = ciabcra = ciabcrb = 0x4; /* outmode = toggle; */ + ciaala = ciaalb = ciabla = ciablb = ciaata = ciaatb = ciabta = ciabtb = 0xFFFF; + ciaaalarm = ciabalarm = 0; + ciabpra = 0x8C; + ciabdra = 0; + div10 = 0; + ciaasdr_cnt = 0; + ciaasdr = 0; + ciabsdr_cnt = 0; + ciabsdr = 0; + ciaata_passed = ciaatb_passed = ciabta_passed = ciabtb_passed = 0; + ciaatol = ciabtol = ciaaprb = ciaadrb = ciabprb = ciabdrb = 0; + CIA_calctimers (); + DISK_select_set (ciabprb); + } + map_overlay (0); + if (savestate_state) + { + if (!(currprefs.chipset_mask & CSMASK_AGA)) + { + oldovl = true; + } + bfe001_change (); + if (currprefs.chipset_mask & CSMASK_AGA) + { + map_overlay (oldovl ? 0 : 1); + } + } #ifdef CD32 - if (!isrestore ()) { - akiko_reset (); - if (!akiko_init ()) - currprefs.cs_cd32cd = changed_prefs.cs_cd32cd = 0; - } + if (!isrestore ()) + { + akiko_reset (); + if (!akiko_init ()) + currprefs.cs_cd32cd = changed_prefs.cs_cd32cd = 0; + } #endif } @@ -988,163 +1117,174 @@ static void REGPARAM3 cia_lput (uaecptr, uae_u32) REGPARAM; static void REGPARAM3 cia_wput (uaecptr, uae_u32) REGPARAM; static void REGPARAM3 cia_bput (uaecptr, uae_u32) REGPARAM; -addrbank cia_bank = { - cia_lget, cia_wget, cia_bget, - cia_lput, cia_wput, cia_bput, - default_xlate, default_check, NULL, _T("CIA"), - cia_lgeti, cia_wgeti, ABFLAG_IO +addrbank cia_bank = +{ + cia_lget, cia_wget, cia_bget, + cia_lput, cia_wput, cia_bput, + default_xlate, default_check, NULL, _T("CIA"), + cia_lgeti, cia_wgeti, ABFLAG_IO }; static void cia_wait_pre (void) { - if (currprefs.cachesize) - return; + if (currprefs.cachesize) + return; - int div = (get_cycles () - eventtab[ev_cia].oldcycles) % DIV10; - int cycles; + int div = (get_cycles () - eventtab[ev_cia].oldcycles) % DIV10; + int cycles; - if (div >= DIV10 * ECLOCK_DATA_CYCLE / 10) { - cycles = DIV10 - div; - cycles += DIV10 * ECLOCK_DATA_CYCLE / 10; - } else if (div) { - cycles = DIV10 + DIV10 * ECLOCK_DATA_CYCLE / 10 - div; - } else { - cycles = DIV10 * ECLOCK_DATA_CYCLE / 10 - div; - } - if (cycles) { - do_cycles (cycles); - } + if (div >= DIV10 * ECLOCK_DATA_CYCLE / 10) + { + cycles = DIV10 - div; + cycles += DIV10 * ECLOCK_DATA_CYCLE / 10; + } + else if (div) + { + cycles = DIV10 + DIV10 * ECLOCK_DATA_CYCLE / 10 - div; + } + else + { + cycles = DIV10 * ECLOCK_DATA_CYCLE / 10 - div; + } + if (cycles) + { + do_cycles (cycles); + } } static void cia_wait_post (uae_u32 value) { - if (currprefs.cachesize) { - do_cycles (8 * CYCLE_UNIT / 2); - } else { - int c = 6 * CYCLE_UNIT / 2; - do_cycles (c); - } + if (currprefs.cachesize) + { + do_cycles (8 * CYCLE_UNIT / 2); + } + else + { + int c = 6 * CYCLE_UNIT / 2; + do_cycles (c); + } } static uae_u32 REGPARAM2 cia_bget (uaecptr addr) { - int r = (addr & 0xf00) >> 8; - uae_u8 v = 0xff; + int r = (addr & 0xf00) >> 8; + uae_u8 v = 0xff; #ifdef JIT - special_mem |= S_READ; + special_mem |= S_READ; #endif - cia_wait_pre (); - switch ((addr >> 12) & 3) { - case 0: - v = (addr & 1) ? ReadCIAA (r) : ReadCIAB (r); - break; - case 1: - v = (addr & 1) ? 0xff : ReadCIAB (r); - break; - case 2: - v = (addr & 1) ? ReadCIAA (r) : 0xff; - break; - case 3: - if (currprefs.cpu_model == 68000 && currprefs.cpu_compatible) - v = (addr & 1) ? regs.irc : regs.irc >> 8; - break; - } - cia_wait_post (v); + cia_wait_pre (); + switch ((addr >> 12) & 3) + { + case 0: + v = (addr & 1) ? ReadCIAA (r) : ReadCIAB (r); + break; + case 1: + v = (addr & 1) ? 0xff : ReadCIAB (r); + break; + case 2: + v = (addr & 1) ? ReadCIAA (r) : 0xff; + break; + case 3: + if (currprefs.cpu_model == 68000 && currprefs.cpu_compatible) + v = (addr & 1) ? regs.irc : regs.irc >> 8; + break; + } + cia_wait_post (v); - return v; + return v; } static uae_u32 REGPARAM2 cia_wget (uaecptr addr) { - int r = (addr & 0xf00) >> 8; - uae_u16 v = 0xffff; + int r = (addr & 0xf00) >> 8; + uae_u16 v = 0xffff; #ifdef JIT - special_mem |= S_READ; + special_mem |= S_READ; #endif - cia_wait_pre (); - switch ((addr >> 12) & 3) - { - case 0: - v = (ReadCIAB (r) << 8) | ReadCIAA (r); - break; - case 1: - v = (ReadCIAB (r) << 8) | 0xff; - break; - case 2: - v = (0xff << 8) | ReadCIAA (r); - break; - case 3: - if (currprefs.cpu_model == 68000 && currprefs.cpu_compatible) - v = regs.irc; - break; - } - cia_wait_post (v); - return v; + cia_wait_pre (); + switch ((addr >> 12) & 3) + { + case 0: + v = (ReadCIAB (r) << 8) | ReadCIAA (r); + break; + case 1: + v = (ReadCIAB (r) << 8) | 0xff; + break; + case 2: + v = (0xff << 8) | ReadCIAA (r); + break; + case 3: + if (currprefs.cpu_model == 68000 && currprefs.cpu_compatible) + v = regs.irc; + break; + } + cia_wait_post (v); + return v; } static uae_u32 REGPARAM2 cia_lget (uaecptr addr) { - uae_u32 v; - v = cia_wget (addr) << 16; - v |= cia_wget (addr + 2); - return v; + uae_u32 v; + v = cia_wget (addr) << 16; + v |= cia_wget (addr + 2); + return v; } static uae_u32 REGPARAM2 cia_wgeti (uaecptr addr) { - if (currprefs.cpu_model >= 68020) - return dummy_wgeti(addr); - return cia_wget(addr); + if (currprefs.cpu_model >= 68020) + return dummy_wgeti(addr); + return cia_wget(addr); } static uae_u32 REGPARAM2 cia_lgeti (uaecptr addr) { - if (currprefs.cpu_model >= 68020) - return dummy_lgeti(addr); - return cia_lget(addr); + if (currprefs.cpu_model >= 68020) + return dummy_lgeti(addr); + return cia_lget(addr); } static void REGPARAM2 cia_bput (uaecptr addr, uae_u32 value) { - value&=0xFF; - int r = (addr & 0xf00) >> 8; + value&=0xFF; + int r = (addr & 0xf00) >> 8; #ifdef JIT - special_mem |= S_WRITE; + special_mem |= S_WRITE; #endif - cia_wait_pre (); - if ((addr & 0x2000) == 0) - WriteCIAB (r, value); - if ((addr & 0x1000) == 0) - WriteCIAA (r, value); - cia_wait_post (value); + cia_wait_pre (); + if ((addr & 0x2000) == 0) + WriteCIAB (r, value); + if ((addr & 0x1000) == 0) + WriteCIAA (r, value); + cia_wait_post (value); } static void REGPARAM2 cia_wput (uaecptr addr, uae_u32 value) { - value&=0xFFFF; - int r = (addr & 0xf00) >> 8; + value&=0xFFFF; + int r = (addr & 0xf00) >> 8; #ifdef JIT - special_mem |= S_WRITE; + special_mem |= S_WRITE; #endif - cia_wait_pre (); - if ((addr & 0x2000) == 0) - WriteCIAB (r, value >> 8); - if ((addr & 0x1000) == 0) - WriteCIAA (r, value & 0xff); - cia_wait_post (value); + cia_wait_pre (); + if ((addr & 0x2000) == 0) + WriteCIAB (r, value >> 8); + if ((addr & 0x1000) == 0) + WriteCIAA (r, value & 0xff); + cia_wait_post (value); } static void REGPARAM2 cia_lput (uaecptr addr, uae_u32 value) { - cia_wput (addr, value >> 16); - cia_wput (addr + 2, value & 0xffff); + cia_wput (addr, value >> 16); + cia_wput (addr + 2, value & 0xffff); } /* battclock memory access */ @@ -1156,11 +1296,12 @@ static void REGPARAM3 clock_lput (uaecptr, uae_u32) REGPARAM; static void REGPARAM3 clock_wput (uaecptr, uae_u32) REGPARAM; static void REGPARAM3 clock_bput (uaecptr, uae_u32) REGPARAM; -addrbank clock_bank = { - clock_lget, clock_wget, clock_bget, - clock_lput, clock_wput, clock_bput, - default_xlate, default_check, NULL, _T("Battery backed up clock (none)"), - dummy_lgeti, dummy_wgeti, ABFLAG_IO +addrbank clock_bank = +{ + clock_lget, clock_wget, clock_bget, + clock_lput, clock_wput, clock_bput, + default_xlate, default_check, NULL, _T("Battery backed up clock (none)"), + dummy_lgeti, dummy_wgeti, ABFLAG_IO }; static unsigned int clock_control_d; @@ -1169,103 +1310,144 @@ static unsigned int clock_control_f; static uae_u8 getclockreg (int addr, struct tm *ct) { - uae_u8 v = 0; + uae_u8 v = 0; - switch (addr) { - case 0x0: v = ct->tm_sec % 10; break; - case 0x1: v = ct->tm_sec / 10; break; - case 0x2: v = ct->tm_min % 10; break; - case 0x3: v = ct->tm_min / 10; break; - case 0x4: v = ct->tm_hour % 10; break; - case 0x5: - if (clock_control_f & 4) { - v = ct->tm_hour / 10; // 24h - } else { - v = (ct->tm_hour % 12) / 10; // 12h - v |= ct->tm_hour >= 12 ? 4 : 0; // AM/PM bit - } - break; - case 0x6: v = ct->tm_mday % 10; break; - case 0x7: v = ct->tm_mday / 10; break; - case 0x8: v = (ct->tm_mon + 1) % 10; break; - case 0x9: v = (ct->tm_mon + 1) / 10; break; - case 0xA: v = ct->tm_year % 10; break; - case 0xB: v = (ct->tm_year / 10) & 0x0f; break; - case 0xC: v = ct->tm_wday; break; - case 0xD: v = clock_control_d; break; - case 0xE: v = clock_control_e; break; - case 0xF: v = clock_control_f; break; - } - return v; + switch (addr) + { + case 0x0: + v = ct->tm_sec % 10; + break; + case 0x1: + v = ct->tm_sec / 10; + break; + case 0x2: + v = ct->tm_min % 10; + break; + case 0x3: + v = ct->tm_min / 10; + break; + case 0x4: + v = ct->tm_hour % 10; + break; + case 0x5: + if (clock_control_f & 4) + { + v = ct->tm_hour / 10; // 24h + } + else + { + v = (ct->tm_hour % 12) / 10; // 12h + v |= ct->tm_hour >= 12 ? 4 : 0; // AM/PM bit + } + break; + case 0x6: + v = ct->tm_mday % 10; + break; + case 0x7: + v = ct->tm_mday / 10; + break; + case 0x8: + v = (ct->tm_mon + 1) % 10; + break; + case 0x9: + v = (ct->tm_mon + 1) / 10; + break; + case 0xA: + v = ct->tm_year % 10; + break; + case 0xB: + v = (ct->tm_year / 10) & 0x0f; + break; + case 0xC: + v = ct->tm_wday; + break; + case 0xD: + v = clock_control_d; + break; + case 0xE: + v = clock_control_e; + break; + case 0xF: + v = clock_control_f; + break; + } + return v; } void rtc_hardreset(void) { - clock_bank.name = _T("Battery backed up clock (MSM6242B)"); - clock_control_d = 0x1; - clock_control_e = 0; - clock_control_f = 0x4; /* 24/12 */ + clock_bank.name = _T("Battery backed up clock (MSM6242B)"); + clock_control_d = 0x1; + clock_control_e = 0; + clock_control_f = 0x4; /* 24/12 */ } static uae_u32 REGPARAM2 clock_lget (uaecptr addr) { - return (clock_wget (addr) << 16) | clock_wget (addr + 2); + return (clock_wget (addr) << 16) | clock_wget (addr + 2); } static uae_u32 REGPARAM2 clock_wget (uaecptr addr) { - return (clock_bget (addr) << 8) | clock_bget (addr + 1); + return (clock_bget (addr) << 8) | clock_bget (addr + 1); } static uae_u32 REGPARAM2 clock_bget (uaecptr addr) { - time_t t; - struct tm *ct; - uae_u8 v = 0; + time_t t; + struct tm *ct; + uae_u8 v = 0; #ifdef JIT - special_mem |= S_READ; + special_mem |= S_READ; #endif - addr &= 0x3f; - if ((addr & 3) == 2 || (addr & 3) == 0) { - if (currprefs.cpu_model == 68000 && currprefs.cpu_compatible) - v = regs.irc >> 8; - return v; - } - t = time(0); - ct = localtime (&t); - addr >>= 2; - return getclockreg (addr, ct); + addr &= 0x3f; + if ((addr & 3) == 2 || (addr & 3) == 0) + { + if (currprefs.cpu_model == 68000 && currprefs.cpu_compatible) + v = regs.irc >> 8; + return v; + } + t = time(0); + ct = localtime (&t); + addr >>= 2; + return getclockreg (addr, ct); } static void REGPARAM2 clock_lput (uaecptr addr, uae_u32 value) { - clock_wput (addr, value >> 16); - clock_wput (addr + 2, value); + clock_wput (addr, value >> 16); + clock_wput (addr + 2, value); } static void REGPARAM2 clock_wput (uaecptr addr, uae_u32 value) { - clock_bput (addr, value >> 8); - clock_bput (addr + 1, value); + clock_bput (addr, value >> 8); + clock_bput (addr + 1, value); } static void REGPARAM2 clock_bput (uaecptr addr, uae_u32 value) { #ifdef JIT - special_mem |= S_WRITE; + special_mem |= S_WRITE; #endif - addr &= 0x3f; - if ((addr & 1) != 1) - return; - addr >>= 2; - value &= 0x0f; - switch (addr) - { - case 0xD: clock_control_d = value & (1|8); break; - case 0xE: clock_control_e = value; break; - case 0xF: clock_control_f = value; break; - } + addr &= 0x3f; + if ((addr & 1) != 1) + return; + addr >>= 2; + value &= 0x0f; + switch (addr) + { + case 0xD: + clock_control_d = value & (1|8); + break; + case 0xE: + clock_control_e = value; + break; + case 0xF: + clock_control_f = value; + break; + } } #ifdef SAVESTATE @@ -1274,203 +1456,223 @@ static void REGPARAM2 clock_bput (uaecptr addr, uae_u32 value) static void save_cia_prepare (void) { - CIA_update_check (); - CIA_calctimers (); - compute_passed_time (); + CIA_update_check (); + CIA_calctimers (); + compute_passed_time (); } void restore_cia_start (void) { - /* Fixes very old statefiles without keyboard state */ - kbstate = 3; - kblostsynccnt = 0; + /* Fixes very old statefiles without keyboard state */ + kbstate = 3; + kblostsynccnt = 0; } void restore_cia_finish (void) { - eventtab[ev_cia].oldcycles = get_cycles (); - CIA_update (); - CIA_calctimers (); - compute_passed_time (); - eventtab[ev_cia].oldcycles -= div10; - DISK_select_set (ciabprb); + eventtab[ev_cia].oldcycles = get_cycles (); + CIA_update (); + CIA_calctimers (); + compute_passed_time (); + eventtab[ev_cia].oldcycles -= div10; + DISK_select_set (ciabprb); } uae_u8 *restore_cia (int num, uae_u8 *src) { - uae_u8 b; - uae_u16 w; - uae_u32 l; + uae_u8 b; + uae_u16 w; + uae_u32 l; - /* CIA registers */ - b = restore_u8 (); /* 0 PRA */ - if (num) ciabpra = b; else ciaapra = b; - b = restore_u8 (); /* 1 PRB */ - if (num) ciabprb = b; else ciaaprb = b; - b = restore_u8 (); /* 2 DDRA */ - if (num) ciabdra = b; else ciaadra = b; - b = restore_u8 (); /* 3 DDRB */ - if (num) ciabdrb = b; else ciaadrb = b; - w = restore_u16 (); /* 4 TA */ - if (num) ciabta = w; else ciaata = w; - w = restore_u16 (); /* 6 TB */ - if (num) ciabtb = w; else ciaatb = w; - l = restore_u8 (); /* 8/9/A TOD */ - l |= restore_u8 () << 8; - l |= restore_u8 () << 16; - if (num) ciabtod = l; else ciaatod = l; - restore_u8 (); /* B unused */ - b = restore_u8 (); /* C SDR */ - if (num) ciabsdr = b; else ciaasdr = b; - b = restore_u8 (); /* D ICR INFORMATION (not mask!) */ - if (num) ciabicr = b; else ciaaicr = b; - b = restore_u8 (); /* E CRA */ - if (num) ciabcra = b; else ciaacra = b; - b = restore_u8 (); /* F CRB */ - if (num) ciabcrb = b; else ciaacrb = b; + /* CIA registers */ + b = restore_u8 (); /* 0 PRA */ + if (num) ciabpra = b; + else ciaapra = b; + b = restore_u8 (); /* 1 PRB */ + if (num) ciabprb = b; + else ciaaprb = b; + b = restore_u8 (); /* 2 DDRA */ + if (num) ciabdra = b; + else ciaadra = b; + b = restore_u8 (); /* 3 DDRB */ + if (num) ciabdrb = b; + else ciaadrb = b; + w = restore_u16 (); /* 4 TA */ + if (num) ciabta = w; + else ciaata = w; + w = restore_u16 (); /* 6 TB */ + if (num) ciabtb = w; + else ciaatb = w; + l = restore_u8 (); /* 8/9/A TOD */ + l |= restore_u8 () << 8; + l |= restore_u8 () << 16; + if (num) ciabtod = l; + else ciaatod = l; + restore_u8 (); /* B unused */ + b = restore_u8 (); /* C SDR */ + if (num) ciabsdr = b; + else ciaasdr = b; + b = restore_u8 (); /* D ICR INFORMATION (not mask!) */ + if (num) ciabicr = b; + else ciaaicr = b; + b = restore_u8 (); /* E CRA */ + if (num) ciabcra = b; + else ciaacra = b; + b = restore_u8 (); /* F CRB */ + if (num) ciabcrb = b; + else ciaacrb = b; - /* CIA internal data */ + /* CIA internal data */ - b = restore_u8 (); /* ICR MASK */ - if (num) ciabimask = b; else ciaaimask = b; - w = restore_u8 (); /* timer A latch */ - w |= restore_u8 () << 8; - if (num) ciabla = w; else ciaala = w; - w = restore_u8 (); /* timer B latch */ - w |= restore_u8 () << 8; - if (num) ciablb = w; else ciaalb = w; - w = restore_u8 (); /* TOD latched value */ - w |= restore_u8 () << 8; - w |= restore_u8 () << 16; - if (num) ciabtol = w; else ciaatol = w; - l = restore_u8 (); /* alarm */ - l |= restore_u8 () << 8; - l |= restore_u8 () << 16; - if (num) ciabalarm = l; else ciaaalarm = l; - b = restore_u8 (); - if (num) ciabtlatch = b & 1; else ciaatlatch = b & 1; /* is TOD latched? */ - if (num) ciabtodon = b & 2; else ciaatodon = b & 2; /* is TOD stopped? */ - b = restore_u8 (); - if (num) - div10 = CYCLE_UNIT * b; - b = restore_u8 (); - if (num) ciabsdr_cnt = b; else ciaasdr_cnt = b; - return src; + b = restore_u8 (); /* ICR MASK */ + if (num) ciabimask = b; + else ciaaimask = b; + w = restore_u8 (); /* timer A latch */ + w |= restore_u8 () << 8; + if (num) ciabla = w; + else ciaala = w; + w = restore_u8 (); /* timer B latch */ + w |= restore_u8 () << 8; + if (num) ciablb = w; + else ciaalb = w; + w = restore_u8 (); /* TOD latched value */ + w |= restore_u8 () << 8; + w |= restore_u8 () << 16; + if (num) ciabtol = w; + else ciaatol = w; + l = restore_u8 (); /* alarm */ + l |= restore_u8 () << 8; + l |= restore_u8 () << 16; + if (num) ciabalarm = l; + else ciaaalarm = l; + b = restore_u8 (); + if (num) ciabtlatch = b & 1; + else ciaatlatch = b & 1; /* is TOD latched? */ + if (num) ciabtodon = b & 2; + else ciaatodon = b & 2; /* is TOD stopped? */ + b = restore_u8 (); + if (num) + div10 = CYCLE_UNIT * b; + b = restore_u8 (); + if (num) ciabsdr_cnt = b; + else ciaasdr_cnt = b; + return src; } uae_u8 *save_cia (int num, int *len, uae_u8 *dstptr) { - uae_u8 *dstbak,*dst, b; - uae_u16 t; + uae_u8 *dstbak,*dst, b; + uae_u16 t; - if (dstptr) - dstbak = dst = dstptr; - else - dstbak = dst = xmalloc (uae_u8, 100); + if (dstptr) + dstbak = dst = dstptr; + else + dstbak = dst = xmalloc (uae_u8, 100); - save_cia_prepare (); + save_cia_prepare (); - /* CIA registers */ + /* CIA registers */ - b = num ? ciabpra : ciaapra; /* 0 PRA */ - save_u8 (b); - b = num ? ciabprb : ciaaprb; /* 1 PRB */ - save_u8 (b); - b = num ? ciabdra : ciaadra; /* 2 DDRA */ - save_u8 (b); - b = num ? ciabdrb : ciaadrb; /* 3 DDRB */ - save_u8 (b); - t = (num ? ciabta - ciabta_passed : ciaata - ciaata_passed);/* 4 TA */ - save_u16 (t); - t = (num ? ciabtb - ciabtb_passed : ciaatb - ciaatb_passed);/* 6 TB */ - save_u16 (t); - b = (num ? ciabtod : ciaatod); /* 8 TODL */ - save_u8 (b); - b = (num ? ciabtod >> 8 : ciaatod >> 8); /* 9 TODM */ - save_u8 (b); - b = (num ? ciabtod >> 16 : ciaatod >> 16); /* A TODH */ - save_u8 (b); - save_u8 (0); /* B unused */ - b = num ? ciabsdr : ciaasdr; /* C SDR */ - save_u8 (b); - b = num ? ciabicr : ciaaicr; /* D ICR INFORMATION (not mask!) */ - save_u8 (b); - b = num ? ciabcra : ciaacra; /* E CRA */ - save_u8 (b); - b = num ? ciabcrb : ciaacrb; /* F CRB */ - save_u8 (b); + b = num ? ciabpra : ciaapra; /* 0 PRA */ + save_u8 (b); + b = num ? ciabprb : ciaaprb; /* 1 PRB */ + save_u8 (b); + b = num ? ciabdra : ciaadra; /* 2 DDRA */ + save_u8 (b); + b = num ? ciabdrb : ciaadrb; /* 3 DDRB */ + save_u8 (b); + t = (num ? ciabta - ciabta_passed : ciaata - ciaata_passed);/* 4 TA */ + save_u16 (t); + t = (num ? ciabtb - ciabtb_passed : ciaatb - ciaatb_passed);/* 6 TB */ + save_u16 (t); + b = (num ? ciabtod : ciaatod); /* 8 TODL */ + save_u8 (b); + b = (num ? ciabtod >> 8 : ciaatod >> 8); /* 9 TODM */ + save_u8 (b); + b = (num ? ciabtod >> 16 : ciaatod >> 16); /* A TODH */ + save_u8 (b); + save_u8 (0); /* B unused */ + b = num ? ciabsdr : ciaasdr; /* C SDR */ + save_u8 (b); + b = num ? ciabicr : ciaaicr; /* D ICR INFORMATION (not mask!) */ + save_u8 (b); + b = num ? ciabcra : ciaacra; /* E CRA */ + save_u8 (b); + b = num ? ciabcrb : ciaacrb; /* F CRB */ + save_u8 (b); - /* CIA internal data */ + /* CIA internal data */ - save_u8 (num ? ciabimask : ciaaimask); /* ICR */ - b = (num ? ciabla : ciaala); /* timer A latch LO */ - save_u8 (b); - b = (num ? ciabla >> 8 : ciaala >> 8); /* timer A latch HI */ - save_u8 (b); - b = (num ? ciablb : ciaalb); /* timer B latch LO */ - save_u8 (b); - b = (num ? ciablb >> 8 : ciaalb >> 8); /* timer B latch HI */ - save_u8 (b); - b = (num ? ciabtol : ciaatol); /* latched TOD LO */ - save_u8 (b); - b = (num ? ciabtol >> 8 : ciaatol >> 8); /* latched TOD MED */ - save_u8 (b); - b = (num ? ciabtol >> 16 : ciaatol >> 16); /* latched TOD HI */ - save_u8 (b); - b = (num ? ciabalarm : ciaaalarm); /* alarm LO */ - save_u8 (b); - b = (num ? ciabalarm >> 8 : ciaaalarm >>8 ); /* alarm MED */ - save_u8 (b); - b = (num ? ciabalarm >> 16 : ciaaalarm >> 16); /* alarm HI */ - save_u8 (b); - b = 0; - if (num) - b |= ciabtlatch ? 1 : 0; - else - b |= ciaatlatch ? 1 : 0; /* is TOD latched? */ - if (num) - b |= ciabtodon ? 2 : 0; - else - b |= ciaatodon ? 2 : 0; /* TOD stopped? */ - save_u8 (b); - save_u8 (num ? div10 / CYCLE_UNIT : 0); - save_u8 (num ? ciabsdr_cnt : ciaasdr_cnt); - *len = dst - dstbak; - return dstbak; + save_u8 (num ? ciabimask : ciaaimask); /* ICR */ + b = (num ? ciabla : ciaala); /* timer A latch LO */ + save_u8 (b); + b = (num ? ciabla >> 8 : ciaala >> 8); /* timer A latch HI */ + save_u8 (b); + b = (num ? ciablb : ciaalb); /* timer B latch LO */ + save_u8 (b); + b = (num ? ciablb >> 8 : ciaalb >> 8); /* timer B latch HI */ + save_u8 (b); + b = (num ? ciabtol : ciaatol); /* latched TOD LO */ + save_u8 (b); + b = (num ? ciabtol >> 8 : ciaatol >> 8); /* latched TOD MED */ + save_u8 (b); + b = (num ? ciabtol >> 16 : ciaatol >> 16); /* latched TOD HI */ + save_u8 (b); + b = (num ? ciabalarm : ciaaalarm); /* alarm LO */ + save_u8 (b); + b = (num ? ciabalarm >> 8 : ciaaalarm >>8 ); /* alarm MED */ + save_u8 (b); + b = (num ? ciabalarm >> 16 : ciaaalarm >> 16); /* alarm HI */ + save_u8 (b); + b = 0; + if (num) + b |= ciabtlatch ? 1 : 0; + else + b |= ciaatlatch ? 1 : 0; /* is TOD latched? */ + if (num) + b |= ciabtodon ? 2 : 0; + else + b |= ciaatodon ? 2 : 0; /* TOD stopped? */ + save_u8 (b); + save_u8 (num ? div10 / CYCLE_UNIT : 0); + save_u8 (num ? ciabsdr_cnt : ciaasdr_cnt); + *len = dst - dstbak; + return dstbak; } uae_u8 *save_keyboard (int *len, uae_u8 *dstptr) { - uae_u8 *dst, *dstbak; - if (dstptr) - dstbak = dst = dstptr; - else - dstbak = dst = xmalloc (uae_u8, 4 + 4 + 1 + 1 + 1 + 1 + 1 + 2); - save_u32 (1); - save_u8 (kbstate); - save_u8 (0); - save_u8 (0); - save_u8 (0); - save_u8 (kbcode); - save_u16 (kblostsynccnt); - *len = dst - dstbak; - return dstbak; + uae_u8 *dst, *dstbak; + if (dstptr) + dstbak = dst = dstptr; + else + dstbak = dst = xmalloc (uae_u8, 4 + 4 + 1 + 1 + 1 + 1 + 1 + 2); + save_u32 (1); + save_u8 (kbstate); + save_u8 (0); + save_u8 (0); + save_u8 (0); + save_u8 (kbcode); + save_u16 (kblostsynccnt); + *len = dst - dstbak; + return dstbak; } uae_u8 *restore_keyboard (uae_u8 *src) { - uae_u32 v = restore_u32 (); - kbstate = restore_u8 (); - restore_u8 (); - restore_u8 (); - restore_u8 (); - kbcode = restore_u8 (); - kblostsynccnt = restore_u16 (); - if (!(v & 1)) { - kbstate = 3; - kblostsynccnt = 0; - } - return src; + uae_u32 v = restore_u32 (); + kbstate = restore_u8 (); + restore_u8 (); + restore_u8 (); + restore_u8 (); + kbcode = restore_u8 (); + kblostsynccnt = restore_u16 (); + if (!(v & 1)) + { + kbstate = 3; + kblostsynccnt = 0; + } + return src; } #endif /* SAVESTATE */ diff --git a/src/cpudefs.cpp b/src/cpudefs.cpp index 57012d85..14778c82 100644 --- a/src/cpudefs.cpp +++ b/src/cpudefs.cpp @@ -1,385 +1,387 @@ #include "sysconfig.h" #include "sysdeps.h" #include "readcpu.h" -struct instr_def defs68k[] = { -/* ORSR.B */ -{0x003C, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{0,0},{0,0},{0,0},{0,0},{0,0}}, 0, 16,_T("ORSR.B #1")}, -/* ORSR.W */ -{0x007C, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,2,{{0,0},{0,0},{0,0},{0,0},{0,0}}, 4, 16,_T("ORSR.W #1")}, -/* CHK2.z */ -{0x00C0, 8,{17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0},0xF9C0,2,5,0,{{1,1},{1,5},{1,0},{1,5},{1,0}}, 4, 17,_T("CHK2.z #1,s[!Dreg,Areg,Aipi,Apdi,Immd]")}, -/* OR.z */ -{0x0000, 8,{17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("OR.z #z,d[!Areg]")}, -/* ANDSR.B */ -{0x023C, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{0,0},{0,0},{0,0},{0,0},{0,0}}, 0, 16,_T("ANDSR.B #1")}, -/* ANDSR.W */ -{0x027C, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,2,{{0,0},{0,0},{0,0},{0,0},{0,0}}, 4, 16,_T("ANDSR.W #1")}, -/* AND.z */ -{0x0200, 8,{17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("AND.z #z,d[!Areg]")}, -/* SUB.z */ -{0x0400, 8,{17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("SUB.z #z,d[!Areg]")}, -/* ADD.z */ -{0x0600, 8,{17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("ADD.z #z,d[!Areg]")}, -/* CALLM */ -{0x06C0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,3,0,{{0,1},{0,1},{0,1},{0,1},{0,1}}, 0, 16,_T("CALLM s[!Dreg,Areg,Aipi,Apdi,Immd]")}, -/* RTM */ -{0x06C0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,3,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 3, 16,_T("RTM s[Dreg,Areg]")}, -/* BTST */ -{0x0800, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,1},{1,0},{1,1},{1,1}}, 0, 17,_T("BTST #1,s[!Areg]")}, -/* BCHG */ -{0x0840, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,1},{1,0},{1,1},{1,1}}, 0, 19,_T("BCHG #1,s[!Areg,Immd,PC8r,PC16]")}, -/* BCLR */ -{0x0880, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,1},{1,0},{1,1},{1,1}}, 0, 19,_T("BCLR #1,s[!Areg,Immd,PC8r,PC16]")}, -/* BSET */ -{0x08C0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,1},{1,0},{1,1},{1,1}}, 0, 19,_T("BSET #1,s[!Areg,Immd,PC8r,PC16]")}, -/* EORSR.B */ -{0x0A3C, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{0,0},{0,0},{0,0},{0,0},{0,0}}, 0, 16,_T("EORSR.B #1")}, -/* EORSR.W */ -{0x0A7C, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,2,{{0,0},{0,0},{0,0},{0,0},{0,0}}, 4, 16,_T("EORSR.W #1")}, -/* EOR.z */ -{0x0A00, 8,{17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("EOR.z #z,d[!Areg]")}, -/* CMP.z */ -{0x0C00, 8,{17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 17,_T("CMP.z #z,s[!Areg,Immd,PC8r,PC16]")}, -/* CMP.z */ -{0x0C00, 8,{17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,2,0,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 17,_T("CMP.z #z,s[PC8r,PC16]")}, -/* CAS.B */ -{0x0AC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("CAS.B #1,s[!Dreg,Areg,Immd,PC8r,PC16]")}, -/* CAS.W */ -{0x0CC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("CAS.W #1,s[!Dreg,Areg,Immd,PC8r,PC16]")}, -/* CAS2.W */ -{0x0CFC, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,2,5,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 16,_T("CAS2.W #2")}, -/* MOVES.z */ -{0x0E00, 8,{17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,2,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 19,_T("MOVES.z #1,s[!Dreg,Areg,Immd,PC8r,PC16]")}, -/* CAS.L */ -{0x0EC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("CAS.L #1,s[!Dreg,Areg,Immd,PC8r,PC16]")}, -/* CAS2.L */ -{0x0EFC, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,2,5,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 16,_T("CAS2.L #2")}, -/* MVPMR.W */ -{0x0100, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MVPMR.W d[Areg-Ad16],Dr")}, -/* MVPMR.L */ -{0x0140, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MVPMR.L d[Areg-Ad16],Dr")}, -/* MVPRM.W */ -{0x0180, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MVPRM.W Dr,d[Areg-Ad16]")}, -/* MVPRM.L */ -{0x01C0, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MVPRM.L Dr,d[Areg-Ad16]")}, -/* BTST */ -{0x0100, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,0},{1,1},{1,1}}, 0, 17,_T("BTST Dr,s[!Areg]")}, -/* BCHG */ -{0x0140, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,0},{1,1},{1,1}}, 0, 19,_T("BCHG Dr,s[!Areg,Immd,PC8r,PC16]")}, -/* BCLR */ -{0x0180, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,0},{1,1},{1,1}}, 0, 19,_T("BCLR Dr,s[!Areg,Immd,PC8r,PC16]")}, -/* BSET */ -{0x01C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,0},{1,1},{1,1}}, 0, 19,_T("BSET Dr,s[!Areg,Immd,PC8r,PC16]")}, -/* MOVE.B */ -{0x1000,12,{14,14,14,13,13,13,11,11,11,12,12,12, 0, 0, 0, 0},0xF000,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 18,_T("MOVE.B s,d[!Areg]")}, -/* MOVEA.L */ -{0x2000,12,{14,14,14,13,13,13,11,11,11,12,12,12, 0, 0, 0, 0},0xF000,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MOVEA.L s,d[Areg]")}, -/* MOVE.L */ -{0x2000,12,{14,14,14,13,13,13,11,11,11,12,12,12, 0, 0, 0, 0},0xF000,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 18,_T("MOVE.L s,d[!Areg]")}, -/* MOVEA.W */ -{0x3000,12,{14,14,14,13,13,13,11,11,11,12,12,12, 0, 0, 0, 0},0xF000,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MOVEA.W s,d[Areg]")}, -/* MOVE.W */ -{0x3000,12,{14,14,14,13,13,13,11,11,11,12,12,12, 0, 0, 0, 0},0xF000,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 18,_T("MOVE.W s,d[!Areg]")}, -/* NEGX.z */ -{0x4000, 8,{17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{0,0},{1,0},{0,0},{1,0},{1,0}}, 0, 48,_T("NEGX.z d[!Areg]")}, -/* MVSR2.W */ -{0x40C0, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,1,{{0,1},{0,1},{0,1},{0,1},{0,1}}, 4, 16,_T("MVSR2.W d[!Areg]")}, -/* CLR.z */ -{0x4200, 8,{17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{1,1},{1,2},{1,3},{1,2},{1,2}}, 0, 32,_T("CLR.z d[!Areg]")}, -/* MVSR2.B */ -{0x42C0, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,1,0,0,{{0,1},{0,1},{0,1},{0,1},{0,1}}, 0, 16,_T("MVSR2.B d[!Areg]")}, -/* NEG.z */ -{0x4400, 8,{17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 48,_T("NEG.z d[!Areg]")}, -/* MV2SR.B */ -{0x44C0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 16,_T("MV2SR.B s[!Areg]")}, -/* NOT.z */ -{0x4600, 8,{17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 48,_T("NOT.z d[!Areg]")}, -/* MV2SR.W */ -{0x46C0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,2,{{0,0},{0,0},{0,0},{0,0},{0,0}}, 4, 16,_T("MV2SR.W s[!Areg]")}, -/* LINK.L */ -{0x4808, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 49,_T("LINK.L Ar,#2")}, -/* NBCD.B */ -{0x4800, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{0,0},{1,5},{0,0},{1,5},{1,0}}, 0, 48,_T("NBCD.B d[!Areg]")}, -/* BKPT */ -{0x4848, 3,{ 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 16,_T("BKPT #k")}, -/* SWAP.W */ -{0x4840, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 48,_T("SWAP.W s[Dreg]")}, -/* PEA.L */ -{0x4840, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 0,_T("PEA.L s[!Dreg,Areg,Aipi,Apdi,Immd]")}, -/* EXT.W */ -{0x4880, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 48,_T("EXT.W d[Dreg]")}, -/* MVMLE.W */ -{0x4880, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 2,_T("MVMLE.W #1,d[!Dreg,Areg,Aipi]")}, -/* EXT.L */ -{0x48C0, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 48,_T("EXT.L d[Dreg]")}, -/* MVMLE.L */ -{0x48C0, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 2,_T("MVMLE.L #1,d[!Dreg,Areg,Aipi]")}, -/* EXT.B */ -{0x49C0, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 48,_T("EXT.B d[Dreg]")}, -/* TST.z */ -{0x4A00, 8,{17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 16,_T("TST.z s[!Areg,PC16,PC8r]")}, -/* TST.z */ -{0x4A00, 8,{17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,2,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 16,_T("TST.z s[Areg,PC16,PC8r]")}, -/* TAS.B */ -{0x4AC0, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 48,_T("TAS.B d[!Areg]")}, -/* ILLEGAL */ -{0x4AFC, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("ILLEGAL")}, -/* MULL.L */ -{0x4C00, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("MULL.L #1,s[!Areg]")}, -/* DIVL.L */ -{0x4C40, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,0},{1,2}}, 4, 19,_T("DIVL.L #1,s[!Areg]")}, -/* MVMEL.W */ -{0x4C80, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 1,_T("MVMEL.W #1,s[!Dreg,Areg,Apdi,Immd]")}, -/* MVMEL.L */ -{0x4CC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 1,_T("MVMEL.L #1,s[!Dreg,Areg,Apdi,Immd]")}, -/* TRAP */ -{0x4E40, 4,{ 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF0,0,0,0,{{0,1},{0,1},{0,1},{0,1},{0,1}}, 0, 16,_T("TRAP #J")}, -/* LINK.W */ -{0x4E50, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 49,_T("LINK.W Ar,#1")}, -/* UNLK.L */ -{0x4E58, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 48,_T("UNLK.L Ar")}, -/* MVR2USP.L */ -{0x4E60, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,0,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 16,_T("MVR2USP.L Ar")}, -/* MVUSP2R.L */ -{0x4E68, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,0,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 32,_T("MVUSP2R.L Ar")}, -/* RESET */ -{0x4E70, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("RESET")}, -/* NOP */ -{0x4E71, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 0,_T("NOP")}, -/* STOP */ -{0x4E72, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,2,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 4, 16,_T("STOP #1")}, -/* RTE */ -{0x4E73, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,2,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 7, 0,_T("RTE")}, -/* RTD */ -{0x4E74, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 3, 16,_T("RTD #1")}, -/* RTS */ -{0x4E75, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 3, 0,_T("RTS")}, -/* TRAPV */ -{0x4E76, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{0,1},{0,1},{0,1},{0,1},{0,1}}, 4, 0,_T("TRAPV")}, -/* RTR */ -{0x4E77, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 3, 0,_T("RTR")}, -/* MOVEC2 */ -{0x4E7A, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,1,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 16,_T("MOVEC2 #1")}, -/* MOVE2C */ -{0x4E7B, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,1,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 16,_T("MOVE2C #1")}, -/* JSR.L */ -{0x4E80, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{4,6},{4,6},{4,6},{4,6},{4,6}}, 2, 128,_T("JSR.L s[!Dreg,Areg,Aipi,Apdi,Immd]")}, -/* CHK.L */ -{0x4100, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,2,0,0,{{1,1},{1,0},{1,5},{1,5},{1,5}}, 4, 17,_T("CHK.L s[!Areg],Dr")}, -/* CHK.W */ -{0x4180, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,0},{1,5},{1,5},{1,5}}, 4, 17,_T("CHK.W s[!Areg],Dr")}, -/* JMP.L */ -{0x4EC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{4,6},{4,6},{4,6},{4,6},{4,6}}, 2, 128,_T("JMP.L s[!Dreg,Areg,Aipi,Apdi,Immd]")}, -/* LEA.L */ -{0x41C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 2,_T("LEA.L s[!Dreg,Areg,Aipi,Apdi,Immd],Ar")}, -/* ADDA.W */ -{0x5040, 9,{ 7, 7, 7,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 19,_T("ADDA.W #j,d[Areg]")}, -/* ADDA.L */ -{0x5080, 9,{ 7, 7, 7,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 19,_T("ADDA.L #j,d[Areg]")}, -/* ADD.z */ -{0x5000,11,{ 7, 7, 7,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("ADD.z #j,d[!Areg]")}, -/* SUBA.W */ -{0x5140, 9,{ 7, 7, 7,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 19,_T("SUBA.W #j,d[Areg]")}, -/* SUBA.L */ -{0x5180, 9,{ 7, 7, 7,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 19,_T("SUBA.L #j,d[Areg]")}, -/* SUB.z */ -{0x5100,11,{ 7, 7, 7,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("SUB.z #j,d[!Areg]")}, -/* DBcc.W */ -{0x50C8, 7,{ 2, 2, 2, 2,15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xF0F8,0,0,0,{{1,1},{2,1},{2,1},{2,1},{2,1}}, 1, 49,_T("DBcc.W Dr,#1")}, -/* Scc.B */ -{0x50C0,10,{ 2, 2, 2, 2,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0},0xF0C0,0,0,0,{{1,1},{2,1},{2,1},{2,1},{2,1}}, 0, 32,_T("Scc.B d[!Areg]")}, -/* TRAPcc */ -{0x50FA, 4,{ 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xF0FF,2,0,0,{{1,1},{3,1},{3,1},{3,1},{3,1}}, 4, 16,_T("TRAPcc #1")}, -/* TRAPcc */ -{0x50FB, 4,{ 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xF0FF,2,0,0,{{1,1},{3,1},{3,1},{3,1},{3,1}}, 4, 16,_T("TRAPcc #2")}, -/* TRAPcc */ -{0x50FC, 4,{ 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xF0FF,2,0,0,{{1,1},{3,1},{3,1},{3,1},{3,1}}, 4, 0,_T("TRAPcc")}, -/* BSR.W */ -{0x6100, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{4,6},{4,6},{4,6},{4,6},{4,6}}, 1, 64,_T("BSR.W #1")}, -/* BSR.B */ -{0x6100, 8,{ 6, 6, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{4,6},{4,6},{4,6},{4,6},{4,6}}, 1, 64,_T("BSR.B #i")}, -/* BSR.L */ -{0x61FF, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{4,6},{4,6},{4,6},{4,6},{4,6}}, 1, 64,_T("BSR.L #2")}, -/* Bcc.W */ -{0x6000, 4,{ 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xF0FF,0,0,0,{{1,1},{2,1},{2,1},{2,1},{2,1}}, 1, 64,_T("Bcc.W #1")}, -/* Bcc.B */ -{0x6000,12,{ 3, 3, 3, 3, 6, 6, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0},0xF000,0,0,0,{{1,1},{2,1},{2,1},{2,1},{2,1}}, 1, 64,_T("Bcc.B #i")}, -/* Bcc.L */ -{0x60FF, 4,{ 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xF0FF,0,0,0,{{1,1},{2,1},{2,1},{2,1},{2,1}}, 1, 64,_T("Bcc.L #2")}, -/* MOVE.L */ -{0x7000,11,{15,15,15, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 18,_T("MOVE.L #i,Dr")}, -/* OR.z */ -{0x8000,11,{15,15,15,17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("OR.z s[!Areg],Dr")}, -/* DIVU.W */ -{0x80C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,0},{1,0},{1,0},{1,2}}, 4, 19,_T("DIVU.W s[!Areg],Dr")}, -/* SBCD.B */ -{0x8100, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{0,0},{1,5},{0,0},{1,5},{1,0}}, 0, 19,_T("SBCD.B d[Dreg],Dr")}, -/* SBCD.B */ -{0x8100, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{0,0},{1,5},{0,0},{1,5},{1,0}}, 0, 19,_T("SBCD.B d[Areg-Apdi],Arp")}, -/* OR.z */ -{0x8100,11,{15,15,15,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("OR.z Dr,d[!Areg,Dreg]")}, -/* PACK */ -{0x8140, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("PACK d[Dreg],Dr")}, -/* PACK */ -{0x8140, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("PACK d[Areg-Apdi],Arp")}, -/* UNPK */ -{0x8180, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("UNPK d[Dreg],Dr")}, -/* UNPK */ -{0x8180, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("UNPK d[Areg-Apdi],Arp")}, -/* DIVS.W */ -{0x81C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,0},{1,0},{1,0},{1,2}}, 4, 19,_T("DIVS.W s[!Areg],Dr")}, -/* SUB.z */ -{0x9000,11,{15,15,15,17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("SUB.z s,Dr")}, -/* SUBA.W */ -{0x90C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 19,_T("SUBA.W s,Ar")}, -/* SUBX.z */ -{0x9100,11,{15,15,15,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{0,0},{1,0},{0,0},{1,0},{1,0}}, 0, 19,_T("SUBX.z d[Dreg],Dr")}, -/* SUBX.z */ -{0x9100,11,{15,15,15,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{0,0},{1,0},{0,0},{1,0},{1,0}}, 0, 19,_T("SUBX.z d[Areg-Apdi],Arp")}, -/* SUB.z */ -{0x9100,11,{15,15,15,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("SUB.z Dr,d[!Areg,Dreg]")}, -/* SUBA.L */ -{0x91C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 19,_T("SUBA.L s,Ar")}, -/* CMP.z */ -{0xB000,11,{15,15,15,17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 17,_T("CMP.z s,Dr")}, -/* CMPA.W */ -{0xB0C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 17,_T("CMPA.W s,Ar")}, -/* CMPA.L */ -{0xB1C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 17,_T("CMPA.L s,Ar")}, -/* CMPM.z */ -{0xB100,11,{15,15,15,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 17,_T("CMPM.z d[Areg-Aipi],ArP")}, -/* EOR.z */ -{0xB100,11,{15,15,15,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("EOR.z Dr,d[!Areg]")}, -/* AND.z */ -{0xC000,11,{15,15,15,17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("AND.z s[!Areg],Dr")}, -/* MULU.W */ -{0xC0C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("MULU.W s[!Areg],Dr")}, -/* ABCD.B */ -{0xC100, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{0,0},{1,5},{0,0},{1,5},{1,0}}, 0, 19,_T("ABCD.B d[Dreg],Dr")}, -/* ABCD.B */ -{0xC100, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{0,0},{1,5},{0,0},{1,5},{1,0}}, 0, 19,_T("ABCD.B d[Areg-Apdi],Arp")}, -/* AND.z */ -{0xC100,11,{15,15,15,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("AND.z Dr,d[!Areg,Dreg]")}, -/* EXG.L */ -{0xC140, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 51,_T("EXG.L Dr,d[Dreg]")}, -/* EXG.L */ -{0xC140, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 51,_T("EXG.L Ar,d[Areg]")}, -/* EXG.L */ -{0xC180, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 51,_T("EXG.L Dr,d[Areg]")}, -/* MULS.W */ -{0xC1C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("MULS.W s[!Areg],Dr")}, -/* ADD.z */ -{0xD000,11,{15,15,15,17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("ADD.z s,Dr")}, -/* ADDA.W */ -{0xD0C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 19,_T("ADDA.W s,Ar")}, -/* ADDX.z */ -{0xD100,11,{15,15,15,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{0,0},{1,0},{0,0},{1,0},{1,0}}, 0, 19,_T("ADDX.z d[Dreg],Dr")}, -/* ADDX.z */ -{0xD100,11,{15,15,15,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{0,0},{1,0},{0,0},{1,0},{1,0}}, 0, 19,_T("ADDX.z d[Areg-Apdi],Arp")}, -/* ADD.z */ -{0xD100,11,{15,15,15,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("ADD.z Dr,d[!Areg,Dreg]")}, -/* ADDA.L */ -{0xD1C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 19,_T("ADDA.L s,Ar")}, -/* ASf.z */ -{0xE000, 9,{ 7, 7, 7, 4,17,17,16,16,16, 0, 0, 0, 0, 0, 0, 0},0xF038,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("ASf.z #j,DR")}, -/* LSf.z */ -{0xE008, 9,{ 7, 7, 7, 4,17,17,16,16,16, 0, 0, 0, 0, 0, 0, 0},0xF038,0,0,0,{{1,0},{1,0},{1,0},{1,2},{1,0}}, 0, 19,_T("LSf.z #j,DR")}, -/* ROXf.z */ -{0xE010, 9,{ 7, 7, 7, 4,17,17,16,16,16, 0, 0, 0, 0, 0, 0, 0},0xF038,0,0,0,{{0,0},{1,0},{1,0},{1,2},{1,0}}, 0, 19,_T("ROXf.z #j,DR")}, -/* ROf.z */ -{0xE018, 9,{ 7, 7, 7, 4,17,17,16,16,16, 0, 0, 0, 0, 0, 0, 0},0xF038,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,0}}, 0, 19,_T("ROf.z #j,DR")}, -/* ASf.z */ -{0xE020, 9,{15,15,15, 4,17,17,16,16,16, 0, 0, 0, 0, 0, 0, 0},0xF038,0,0,0,{{0,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("ASf.z Dr,DR")}, -/* LSf.z */ -{0xE028, 9,{15,15,15, 4,17,17,16,16,16, 0, 0, 0, 0, 0, 0, 0},0xF038,0,0,0,{{0,0},{1,0},{1,0},{1,2},{1,0}}, 0, 19,_T("LSf.z Dr,DR")}, -/* ROXf.z */ -{0xE030, 9,{15,15,15, 4,17,17,16,16,16, 0, 0, 0, 0, 0, 0, 0},0xF038,0,0,0,{{0,0},{1,0},{1,0},{1,2},{1,0}}, 0, 19,_T("ROXf.z Dr,DR")}, -/* ROf.z */ -{0xE038, 9,{15,15,15, 4,17,17,16,16,16, 0, 0, 0, 0, 0, 0, 0},0xF038,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,0}}, 0, 19,_T("ROf.z Dr,DR")}, -/* ASfW.W */ -{0xE0C0, 7,{ 4,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFEC0,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("ASfW.W d[!Dreg,Areg]")}, -/* LSfW.W */ -{0xE2C0, 7,{ 4,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFEC0,0,0,0,{{1,0},{1,0},{1,0},{1,2},{1,0}}, 0, 19,_T("LSfW.W d[!Dreg,Areg]")}, -/* ROXfW.W */ -{0xE4C0, 7,{ 4,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFEC0,0,0,0,{{0,0},{1,0},{1,0},{1,2},{1,0}}, 0, 19,_T("ROXfW.W d[!Dreg,Areg]")}, -/* ROfW.W */ -{0xE6C0, 7,{ 4,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFEC0,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,0}}, 0, 19,_T("ROfW.W d[!Dreg,Areg]")}, -/* BFTST */ -{0xE8C0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 17,_T("BFTST #1,s[!Areg,Apdi,Aipi,Immd]")}, -/* BFEXTU */ -{0xE9C0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 17,_T("BFEXTU #1,s[!Areg,Apdi,Aipi,Immd]")}, -/* BFCHG */ -{0xEAC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("BFCHG #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]")}, -/* BFEXTS */ -{0xEBC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 17,_T("BFEXTS #1,s[!Areg,Apdi,Aipi,Immd]")}, -/* BFCLR */ -{0xECC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("BFCLR #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]")}, -/* BFFFO */ -{0xEDC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 17,_T("BFFFO #1,s[!Areg,Apdi,Aipi,Immd]")}, -/* BFSET */ -{0xEEC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("BFSET #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]")}, -/* BFINS */ -{0xEFC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("BFINS #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]")}, -/* FPP */ -{0xF200, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 17,_T("FPP #1,s")}, -/* FDBcc */ -{0xF240, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 1, 17,_T("FDBcc #1,s[Areg-Dreg]")}, -/* FScc */ -{0xF240, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 17,_T("FScc #1,s[!Areg,Immd,PC8r,PC16]")}, -/* FTRAPcc */ -{0xF27A, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 16,_T("FTRAPcc #1")}, -/* FTRAPcc */ -{0xF27B, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 16,_T("FTRAPcc #2")}, -/* FTRAPcc */ -{0xF27C, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("FTRAPcc")}, -/* FBcc */ -{0xF280, 6,{10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 1, 17,_T("FBcc #K,#1")}, -/* FBcc */ -{0xF2C0, 6,{10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 1, 17,_T("FBcc #K,#2")}, -/* FSAVE */ -{0xF300, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 32,_T("FSAVE s[!Dreg,Areg,Aipi,Immd,PC8r,PC16]")}, -/* FRESTORE */ -{0xF340, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 16,_T("FRESTORE s[!Dreg,Areg,Apdi,Immd]")}, -/* MMUOP030 */ -{0xF000, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,3,4,2,{{3,5},{3,5},{3,5},{3,5},{3,5}}, 4, 17,_T("MMUOP030 s[Dreg,Areg,Apdi,Aipi,Aind,Ad16,Ad8r,absl,absw],#1")}, -/* CINVL */ -{0xF408, 5,{19,19,15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFF38,4,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 2,_T("CINVL #p,Ar")}, -/* CINVP */ -{0xF410, 5,{19,19,15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFF38,4,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 2,_T("CINVP #p,Ar")}, -/* CINVA */ -{0xF418, 5,{19,19,15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFF38,4,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("CINVA #p")}, -/* CPUSHL */ -{0xF428, 5,{19,19,15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFF38,4,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 2,_T("CPUSHL #p,Ar")}, -/* CPUSHP */ -{0xF430, 5,{19,19,15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFF38,4,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 2,_T("CPUSHP #p,Ar")}, -/* CPUSHA */ -{0xF438, 5,{19,19,15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFF38,4,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("CPUSHA #p")}, -/* PFLUSHN */ -{0xF500, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,4,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("PFLUSHN Ara")}, -/* PFLUSH */ -{0xF508, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,4,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("PFLUSH Ara")}, -/* PFLUSHAN */ -{0xF510, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,4,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("PFLUSHAN Ara")}, -/* PFLUSHA */ -{0xF518, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,4,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("PFLUSHA Ara")}, -/* PTESTR */ -{0xF548, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,4,5,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("PTESTR Ara")}, -/* PTESTW */ -{0xF568, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,4,5,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("PTESTW Ara")}, -/* MOVE16 */ -{0xF620, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,4,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MOVE16 ArP,AxP")}, -/* MOVE16 */ -{0xF600, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,4,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MOVE16 s[Dreg-Aipi],Al")}, -/* MOVE16 */ -{0xF600, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,4,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MOVE16 Al,d[Areg-Aipi]")}, -/* MOVE16 */ -{0xF600, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,4,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MOVE16 s[Aind],Al")}, -/* MOVE16 */ -{0xF600, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,4,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MOVE16 Al,d[Aipi-Aind]")}, -/* LPSTOP */ -{0xF800, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,5,0,2,{{3,5},{3,5},{3,5},{3,5},{3,5}}, 4, 16,_T("LPSTOP #1")}, -/* PLPAR */ -{0xF588, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,5,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("PLPAR Ara")}, -/* PLPAW */ -{0xF5C8, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,5,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("PLPAW Ara")}}; +struct instr_def defs68k[] = +{ + /* ORSR.B */ + {0x003C, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{0,0},{0,0},{0,0},{0,0},{0,0}}, 0, 16,_T("ORSR.B #1")}, + /* ORSR.W */ + {0x007C, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,2,{{0,0},{0,0},{0,0},{0,0},{0,0}}, 4, 16,_T("ORSR.W #1")}, + /* CHK2.z */ + {0x00C0, 8,{17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0},0xF9C0,2,5,0,{{1,1},{1,5},{1,0},{1,5},{1,0}}, 4, 17,_T("CHK2.z #1,s[!Dreg,Areg,Aipi,Apdi,Immd]")}, + /* OR.z */ + {0x0000, 8,{17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("OR.z #z,d[!Areg]")}, + /* ANDSR.B */ + {0x023C, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{0,0},{0,0},{0,0},{0,0},{0,0}}, 0, 16,_T("ANDSR.B #1")}, + /* ANDSR.W */ + {0x027C, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,2,{{0,0},{0,0},{0,0},{0,0},{0,0}}, 4, 16,_T("ANDSR.W #1")}, + /* AND.z */ + {0x0200, 8,{17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("AND.z #z,d[!Areg]")}, + /* SUB.z */ + {0x0400, 8,{17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("SUB.z #z,d[!Areg]")}, + /* ADD.z */ + {0x0600, 8,{17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("ADD.z #z,d[!Areg]")}, + /* CALLM */ + {0x06C0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,3,0,{{0,1},{0,1},{0,1},{0,1},{0,1}}, 0, 16,_T("CALLM s[!Dreg,Areg,Aipi,Apdi,Immd]")}, + /* RTM */ + {0x06C0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,3,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 3, 16,_T("RTM s[Dreg,Areg]")}, + /* BTST */ + {0x0800, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,1},{1,0},{1,1},{1,1}}, 0, 17,_T("BTST #1,s[!Areg]")}, + /* BCHG */ + {0x0840, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,1},{1,0},{1,1},{1,1}}, 0, 19,_T("BCHG #1,s[!Areg,Immd,PC8r,PC16]")}, + /* BCLR */ + {0x0880, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,1},{1,0},{1,1},{1,1}}, 0, 19,_T("BCLR #1,s[!Areg,Immd,PC8r,PC16]")}, + /* BSET */ + {0x08C0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,1},{1,0},{1,1},{1,1}}, 0, 19,_T("BSET #1,s[!Areg,Immd,PC8r,PC16]")}, + /* EORSR.B */ + {0x0A3C, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{0,0},{0,0},{0,0},{0,0},{0,0}}, 0, 16,_T("EORSR.B #1")}, + /* EORSR.W */ + {0x0A7C, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,2,{{0,0},{0,0},{0,0},{0,0},{0,0}}, 4, 16,_T("EORSR.W #1")}, + /* EOR.z */ + {0x0A00, 8,{17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("EOR.z #z,d[!Areg]")}, + /* CMP.z */ + {0x0C00, 8,{17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 17,_T("CMP.z #z,s[!Areg,Immd,PC8r,PC16]")}, + /* CMP.z */ + {0x0C00, 8,{17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,2,0,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 17,_T("CMP.z #z,s[PC8r,PC16]")}, + /* CAS.B */ + {0x0AC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("CAS.B #1,s[!Dreg,Areg,Immd,PC8r,PC16]")}, + /* CAS.W */ + {0x0CC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("CAS.W #1,s[!Dreg,Areg,Immd,PC8r,PC16]")}, + /* CAS2.W */ + {0x0CFC, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,2,5,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 16,_T("CAS2.W #2")}, + /* MOVES.z */ + {0x0E00, 8,{17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,2,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 19,_T("MOVES.z #1,s[!Dreg,Areg,Immd,PC8r,PC16]")}, + /* CAS.L */ + {0x0EC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("CAS.L #1,s[!Dreg,Areg,Immd,PC8r,PC16]")}, + /* CAS2.L */ + {0x0EFC, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,2,5,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 16,_T("CAS2.L #2")}, + /* MVPMR.W */ + {0x0100, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MVPMR.W d[Areg-Ad16],Dr")}, + /* MVPMR.L */ + {0x0140, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MVPMR.L d[Areg-Ad16],Dr")}, + /* MVPRM.W */ + {0x0180, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MVPRM.W Dr,d[Areg-Ad16]")}, + /* MVPRM.L */ + {0x01C0, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MVPRM.L Dr,d[Areg-Ad16]")}, + /* BTST */ + {0x0100, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,0},{1,1},{1,1}}, 0, 17,_T("BTST Dr,s[!Areg]")}, + /* BCHG */ + {0x0140, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,0},{1,1},{1,1}}, 0, 19,_T("BCHG Dr,s[!Areg,Immd,PC8r,PC16]")}, + /* BCLR */ + {0x0180, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,0},{1,1},{1,1}}, 0, 19,_T("BCLR Dr,s[!Areg,Immd,PC8r,PC16]")}, + /* BSET */ + {0x01C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,0},{1,1},{1,1}}, 0, 19,_T("BSET Dr,s[!Areg,Immd,PC8r,PC16]")}, + /* MOVE.B */ + {0x1000,12,{14,14,14,13,13,13,11,11,11,12,12,12, 0, 0, 0, 0},0xF000,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 18,_T("MOVE.B s,d[!Areg]")}, + /* MOVEA.L */ + {0x2000,12,{14,14,14,13,13,13,11,11,11,12,12,12, 0, 0, 0, 0},0xF000,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MOVEA.L s,d[Areg]")}, + /* MOVE.L */ + {0x2000,12,{14,14,14,13,13,13,11,11,11,12,12,12, 0, 0, 0, 0},0xF000,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 18,_T("MOVE.L s,d[!Areg]")}, + /* MOVEA.W */ + {0x3000,12,{14,14,14,13,13,13,11,11,11,12,12,12, 0, 0, 0, 0},0xF000,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MOVEA.W s,d[Areg]")}, + /* MOVE.W */ + {0x3000,12,{14,14,14,13,13,13,11,11,11,12,12,12, 0, 0, 0, 0},0xF000,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 18,_T("MOVE.W s,d[!Areg]")}, + /* NEGX.z */ + {0x4000, 8,{17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{0,0},{1,0},{0,0},{1,0},{1,0}}, 0, 48,_T("NEGX.z d[!Areg]")}, + /* MVSR2.W */ + {0x40C0, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,1,{{0,1},{0,1},{0,1},{0,1},{0,1}}, 4, 16,_T("MVSR2.W d[!Areg]")}, + /* CLR.z */ + {0x4200, 8,{17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{1,1},{1,2},{1,3},{1,2},{1,2}}, 0, 32,_T("CLR.z d[!Areg]")}, + /* MVSR2.B */ + {0x42C0, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,1,0,0,{{0,1},{0,1},{0,1},{0,1},{0,1}}, 0, 16,_T("MVSR2.B d[!Areg]")}, + /* NEG.z */ + {0x4400, 8,{17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 48,_T("NEG.z d[!Areg]")}, + /* MV2SR.B */ + {0x44C0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 16,_T("MV2SR.B s[!Areg]")}, + /* NOT.z */ + {0x4600, 8,{17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 48,_T("NOT.z d[!Areg]")}, + /* MV2SR.W */ + {0x46C0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,2,{{0,0},{0,0},{0,0},{0,0},{0,0}}, 4, 16,_T("MV2SR.W s[!Areg]")}, + /* LINK.L */ + {0x4808, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 49,_T("LINK.L Ar,#2")}, + /* NBCD.B */ + {0x4800, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{0,0},{1,5},{0,0},{1,5},{1,0}}, 0, 48,_T("NBCD.B d[!Areg]")}, + /* BKPT */ + {0x4848, 3,{ 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 16,_T("BKPT #k")}, + /* SWAP.W */ + {0x4840, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 48,_T("SWAP.W s[Dreg]")}, + /* PEA.L */ + {0x4840, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 0,_T("PEA.L s[!Dreg,Areg,Aipi,Apdi,Immd]")}, + /* EXT.W */ + {0x4880, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 48,_T("EXT.W d[Dreg]")}, + /* MVMLE.W */ + {0x4880, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 2,_T("MVMLE.W #1,d[!Dreg,Areg,Aipi]")}, + /* EXT.L */ + {0x48C0, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 48,_T("EXT.L d[Dreg]")}, + /* MVMLE.L */ + {0x48C0, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 2,_T("MVMLE.L #1,d[!Dreg,Areg,Aipi]")}, + /* EXT.B */ + {0x49C0, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 48,_T("EXT.B d[Dreg]")}, + /* TST.z */ + {0x4A00, 8,{17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 16,_T("TST.z s[!Areg,PC16,PC8r]")}, + /* TST.z */ + {0x4A00, 8,{17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,2,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 16,_T("TST.z s[Areg,PC16,PC8r]")}, + /* TAS.B */ + {0x4AC0, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 48,_T("TAS.B d[!Areg]")}, + /* ILLEGAL */ + {0x4AFC, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("ILLEGAL")}, + /* MULL.L */ + {0x4C00, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("MULL.L #1,s[!Areg]")}, + /* DIVL.L */ + {0x4C40, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,0},{1,2}}, 4, 19,_T("DIVL.L #1,s[!Areg]")}, + /* MVMEL.W */ + {0x4C80, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 1,_T("MVMEL.W #1,s[!Dreg,Areg,Apdi,Immd]")}, + /* MVMEL.L */ + {0x4CC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 1,_T("MVMEL.L #1,s[!Dreg,Areg,Apdi,Immd]")}, + /* TRAP */ + {0x4E40, 4,{ 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF0,0,0,0,{{0,1},{0,1},{0,1},{0,1},{0,1}}, 0, 16,_T("TRAP #J")}, + /* LINK.W */ + {0x4E50, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 49,_T("LINK.W Ar,#1")}, + /* UNLK.L */ + {0x4E58, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 48,_T("UNLK.L Ar")}, + /* MVR2USP.L */ + {0x4E60, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,0,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 16,_T("MVR2USP.L Ar")}, + /* MVUSP2R.L */ + {0x4E68, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,0,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 32,_T("MVUSP2R.L Ar")}, + /* RESET */ + {0x4E70, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("RESET")}, + /* NOP */ + {0x4E71, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 0,_T("NOP")}, + /* STOP */ + {0x4E72, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,2,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 4, 16,_T("STOP #1")}, + /* RTE */ + {0x4E73, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,2,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 7, 0,_T("RTE")}, + /* RTD */ + {0x4E74, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 3, 16,_T("RTD #1")}, + /* RTS */ + {0x4E75, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 3, 0,_T("RTS")}, + /* TRAPV */ + {0x4E76, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{0,1},{0,1},{0,1},{0,1},{0,1}}, 4, 0,_T("TRAPV")}, + /* RTR */ + {0x4E77, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 3, 0,_T("RTR")}, + /* MOVEC2 */ + {0x4E7A, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,1,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 16,_T("MOVEC2 #1")}, + /* MOVE2C */ + {0x4E7B, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,1,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 16,_T("MOVE2C #1")}, + /* JSR.L */ + {0x4E80, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{4,6},{4,6},{4,6},{4,6},{4,6}}, 2, 128,_T("JSR.L s[!Dreg,Areg,Aipi,Apdi,Immd]")}, + /* CHK.L */ + {0x4100, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,2,0,0,{{1,1},{1,0},{1,5},{1,5},{1,5}}, 4, 17,_T("CHK.L s[!Areg],Dr")}, + /* CHK.W */ + {0x4180, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,0},{1,5},{1,5},{1,5}}, 4, 17,_T("CHK.W s[!Areg],Dr")}, + /* JMP.L */ + {0x4EC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,0,0,0,{{4,6},{4,6},{4,6},{4,6},{4,6}}, 2, 128,_T("JMP.L s[!Dreg,Areg,Aipi,Apdi,Immd]")}, + /* LEA.L */ + {0x41C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 2,_T("LEA.L s[!Dreg,Areg,Aipi,Apdi,Immd],Ar")}, + /* ADDA.W */ + {0x5040, 9,{ 7, 7, 7,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 19,_T("ADDA.W #j,d[Areg]")}, + /* ADDA.L */ + {0x5080, 9,{ 7, 7, 7,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 19,_T("ADDA.L #j,d[Areg]")}, + /* ADD.z */ + {0x5000,11,{ 7, 7, 7,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("ADD.z #j,d[!Areg]")}, + /* SUBA.W */ + {0x5140, 9,{ 7, 7, 7,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 19,_T("SUBA.W #j,d[Areg]")}, + /* SUBA.L */ + {0x5180, 9,{ 7, 7, 7,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 19,_T("SUBA.L #j,d[Areg]")}, + /* SUB.z */ + {0x5100,11,{ 7, 7, 7,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("SUB.z #j,d[!Areg]")}, + /* DBcc.W */ + {0x50C8, 7,{ 2, 2, 2, 2,15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xF0F8,0,0,0,{{1,1},{2,1},{2,1},{2,1},{2,1}}, 1, 49,_T("DBcc.W Dr,#1")}, + /* Scc.B */ + {0x50C0,10,{ 2, 2, 2, 2,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0},0xF0C0,0,0,0,{{1,1},{2,1},{2,1},{2,1},{2,1}}, 0, 32,_T("Scc.B d[!Areg]")}, + /* TRAPcc */ + {0x50FA, 4,{ 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xF0FF,2,0,0,{{1,1},{3,1},{3,1},{3,1},{3,1}}, 4, 16,_T("TRAPcc #1")}, + /* TRAPcc */ + {0x50FB, 4,{ 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xF0FF,2,0,0,{{1,1},{3,1},{3,1},{3,1},{3,1}}, 4, 16,_T("TRAPcc #2")}, + /* TRAPcc */ + {0x50FC, 4,{ 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xF0FF,2,0,0,{{1,1},{3,1},{3,1},{3,1},{3,1}}, 4, 0,_T("TRAPcc")}, + /* BSR.W */ + {0x6100, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{4,6},{4,6},{4,6},{4,6},{4,6}}, 1, 64,_T("BSR.W #1")}, + /* BSR.B */ + {0x6100, 8,{ 6, 6, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0},0xFF00,0,0,0,{{4,6},{4,6},{4,6},{4,6},{4,6}}, 1, 64,_T("BSR.B #i")}, + /* BSR.L */ + {0x61FF, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,0,0,0,{{4,6},{4,6},{4,6},{4,6},{4,6}}, 1, 64,_T("BSR.L #2")}, + /* Bcc.W */ + {0x6000, 4,{ 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xF0FF,0,0,0,{{1,1},{2,1},{2,1},{2,1},{2,1}}, 1, 64,_T("Bcc.W #1")}, + /* Bcc.B */ + {0x6000,12,{ 3, 3, 3, 3, 6, 6, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0},0xF000,0,0,0,{{1,1},{2,1},{2,1},{2,1},{2,1}}, 1, 64,_T("Bcc.B #i")}, + /* Bcc.L */ + {0x60FF, 4,{ 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xF0FF,0,0,0,{{1,1},{2,1},{2,1},{2,1},{2,1}}, 1, 64,_T("Bcc.L #2")}, + /* MOVE.L */ + {0x7000,11,{15,15,15, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 18,_T("MOVE.L #i,Dr")}, + /* OR.z */ + {0x8000,11,{15,15,15,17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("OR.z s[!Areg],Dr")}, + /* DIVU.W */ + {0x80C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,0},{1,0},{1,0},{1,2}}, 4, 19,_T("DIVU.W s[!Areg],Dr")}, + /* SBCD.B */ + {0x8100, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{0,0},{1,5},{0,0},{1,5},{1,0}}, 0, 19,_T("SBCD.B d[Dreg],Dr")}, + /* SBCD.B */ + {0x8100, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{0,0},{1,5},{0,0},{1,5},{1,0}}, 0, 19,_T("SBCD.B d[Areg-Apdi],Arp")}, + /* OR.z */ + {0x8100,11,{15,15,15,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("OR.z Dr,d[!Areg,Dreg]")}, + /* PACK */ + {0x8140, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("PACK d[Dreg],Dr")}, + /* PACK */ + {0x8140, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("PACK d[Areg-Apdi],Arp")}, + /* UNPK */ + {0x8180, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("UNPK d[Dreg],Dr")}, + /* UNPK */ + {0x8180, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("UNPK d[Areg-Apdi],Arp")}, + /* DIVS.W */ + {0x81C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,0},{1,0},{1,0},{1,2}}, 4, 19,_T("DIVS.W s[!Areg],Dr")}, + /* SUB.z */ + {0x9000,11,{15,15,15,17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("SUB.z s,Dr")}, + /* SUBA.W */ + {0x90C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 19,_T("SUBA.W s,Ar")}, + /* SUBX.z */ + {0x9100,11,{15,15,15,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{0,0},{1,0},{0,0},{1,0},{1,0}}, 0, 19,_T("SUBX.z d[Dreg],Dr")}, + /* SUBX.z */ + {0x9100,11,{15,15,15,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{0,0},{1,0},{0,0},{1,0},{1,0}}, 0, 19,_T("SUBX.z d[Areg-Apdi],Arp")}, + /* SUB.z */ + {0x9100,11,{15,15,15,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("SUB.z Dr,d[!Areg,Dreg]")}, + /* SUBA.L */ + {0x91C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 19,_T("SUBA.L s,Ar")}, + /* CMP.z */ + {0xB000,11,{15,15,15,17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 17,_T("CMP.z s,Dr")}, + /* CMPA.W */ + {0xB0C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 17,_T("CMPA.W s,Ar")}, + /* CMPA.L */ + {0xB1C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 17,_T("CMPA.L s,Ar")}, + /* CMPM.z */ + {0xB100,11,{15,15,15,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,1},{1,0},{1,0},{1,0},{1,0}}, 0, 17,_T("CMPM.z d[Areg-Aipi],ArP")}, + /* EOR.z */ + {0xB100,11,{15,15,15,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("EOR.z Dr,d[!Areg]")}, + /* AND.z */ + {0xC000,11,{15,15,15,17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("AND.z s[!Areg],Dr")}, + /* MULU.W */ + {0xC0C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("MULU.W s[!Areg],Dr")}, + /* ABCD.B */ + {0xC100, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{0,0},{1,5},{0,0},{1,5},{1,0}}, 0, 19,_T("ABCD.B d[Dreg],Dr")}, + /* ABCD.B */ + {0xC100, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{0,0},{1,5},{0,0},{1,5},{1,0}}, 0, 19,_T("ABCD.B d[Areg-Apdi],Arp")}, + /* AND.z */ + {0xC100,11,{15,15,15,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("AND.z Dr,d[!Areg,Dreg]")}, + /* EXG.L */ + {0xC140, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 51,_T("EXG.L Dr,d[Dreg]")}, + /* EXG.L */ + {0xC140, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 51,_T("EXG.L Ar,d[Areg]")}, + /* EXG.L */ + {0xC180, 9,{15,15,15,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 51,_T("EXG.L Dr,d[Areg]")}, + /* MULS.W */ + {0xC1C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("MULS.W s[!Areg],Dr")}, + /* ADD.z */ + {0xD000,11,{15,15,15,17,17,11,11,11,12,12,12, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("ADD.z s,Dr")}, + /* ADDA.W */ + {0xD0C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 19,_T("ADDA.W s,Ar")}, + /* ADDX.z */ + {0xD100,11,{15,15,15,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{0,0},{1,0},{0,0},{1,0},{1,0}}, 0, 19,_T("ADDX.z d[Dreg],Dr")}, + /* ADDX.z */ + {0xD100,11,{15,15,15,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{0,0},{1,0},{0,0},{1,0},{1,0}}, 0, 19,_T("ADDX.z d[Areg-Apdi],Arp")}, + /* ADD.z */ + {0xD100,11,{15,15,15,17,17,13,13,13,14,14,14, 0, 0, 0, 0, 0},0xF100,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("ADD.z Dr,d[!Areg,Dreg]")}, + /* ADDA.L */ + {0xD1C0, 9,{15,15,15,11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0},0xF1C0,0,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 19,_T("ADDA.L s,Ar")}, + /* ASf.z */ + {0xE000, 9,{ 7, 7, 7, 4,17,17,16,16,16, 0, 0, 0, 0, 0, 0, 0},0xF038,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("ASf.z #j,DR")}, + /* LSf.z */ + {0xE008, 9,{ 7, 7, 7, 4,17,17,16,16,16, 0, 0, 0, 0, 0, 0, 0},0xF038,0,0,0,{{1,0},{1,0},{1,0},{1,2},{1,0}}, 0, 19,_T("LSf.z #j,DR")}, + /* ROXf.z */ + {0xE010, 9,{ 7, 7, 7, 4,17,17,16,16,16, 0, 0, 0, 0, 0, 0, 0},0xF038,0,0,0,{{0,0},{1,0},{1,0},{1,2},{1,0}}, 0, 19,_T("ROXf.z #j,DR")}, + /* ROf.z */ + {0xE018, 9,{ 7, 7, 7, 4,17,17,16,16,16, 0, 0, 0, 0, 0, 0, 0},0xF038,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,0}}, 0, 19,_T("ROf.z #j,DR")}, + /* ASf.z */ + {0xE020, 9,{15,15,15, 4,17,17,16,16,16, 0, 0, 0, 0, 0, 0, 0},0xF038,0,0,0,{{0,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("ASf.z Dr,DR")}, + /* LSf.z */ + {0xE028, 9,{15,15,15, 4,17,17,16,16,16, 0, 0, 0, 0, 0, 0, 0},0xF038,0,0,0,{{0,0},{1,0},{1,0},{1,2},{1,0}}, 0, 19,_T("LSf.z Dr,DR")}, + /* ROXf.z */ + {0xE030, 9,{15,15,15, 4,17,17,16,16,16, 0, 0, 0, 0, 0, 0, 0},0xF038,0,0,0,{{0,0},{1,0},{1,0},{1,2},{1,0}}, 0, 19,_T("ROXf.z Dr,DR")}, + /* ROf.z */ + {0xE038, 9,{15,15,15, 4,17,17,16,16,16, 0, 0, 0, 0, 0, 0, 0},0xF038,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,0}}, 0, 19,_T("ROf.z Dr,DR")}, + /* ASfW.W */ + {0xE0C0, 7,{ 4,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFEC0,0,0,0,{{1,0},{1,0},{1,0},{1,0},{1,0}}, 0, 19,_T("ASfW.W d[!Dreg,Areg]")}, + /* LSfW.W */ + {0xE2C0, 7,{ 4,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFEC0,0,0,0,{{1,0},{1,0},{1,0},{1,2},{1,0}}, 0, 19,_T("LSfW.W d[!Dreg,Areg]")}, + /* ROXfW.W */ + {0xE4C0, 7,{ 4,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFEC0,0,0,0,{{0,0},{1,0},{1,0},{1,2},{1,0}}, 0, 19,_T("ROXfW.W d[!Dreg,Areg]")}, + /* ROfW.W */ + {0xE6C0, 7,{ 4,13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFEC0,0,0,0,{{1,1},{1,0},{1,0},{1,2},{1,0}}, 0, 19,_T("ROfW.W d[!Dreg,Areg]")}, + /* BFTST */ + {0xE8C0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 17,_T("BFTST #1,s[!Areg,Apdi,Aipi,Immd]")}, + /* BFEXTU */ + {0xE9C0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 17,_T("BFEXTU #1,s[!Areg,Apdi,Aipi,Immd]")}, + /* BFCHG */ + {0xEAC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("BFCHG #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]")}, + /* BFEXTS */ + {0xEBC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 17,_T("BFEXTS #1,s[!Areg,Apdi,Aipi,Immd]")}, + /* BFCLR */ + {0xECC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("BFCLR #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]")}, + /* BFFFO */ + {0xEDC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 17,_T("BFFFO #1,s[!Areg,Apdi,Aipi,Immd]")}, + /* BFSET */ + {0xEEC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("BFSET #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]")}, + /* BFINS */ + {0xEFC0, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,0},{1,0},{1,2},{1,2}}, 0, 19,_T("BFINS #1,s[!Areg,Apdi,Aipi,Immd,PC8r,PC16]")}, + /* FPP */ + {0xF200, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 17,_T("FPP #1,s")}, + /* FDBcc */ + {0xF240, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 1, 17,_T("FDBcc #1,s[Areg-Dreg]")}, + /* FScc */ + {0xF240, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 17,_T("FScc #1,s[!Areg,Immd,PC8r,PC16]")}, + /* FTRAPcc */ + {0xF27A, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 16,_T("FTRAPcc #1")}, + /* FTRAPcc */ + {0xF27B, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 16,_T("FTRAPcc #2")}, + /* FTRAPcc */ + {0xF27C, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("FTRAPcc")}, + /* FBcc */ + {0xF280, 6,{10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 1, 17,_T("FBcc #K,#1")}, + /* FBcc */ + {0xF2C0, 6,{10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 1, 17,_T("FBcc #K,#2")}, + /* FSAVE */ + {0xF300, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 32,_T("FSAVE s[!Dreg,Areg,Aipi,Immd,PC8r,PC16]")}, + /* FRESTORE */ + {0xF340, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,2,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 16,_T("FRESTORE s[!Dreg,Areg,Apdi,Immd]")}, + /* MMUOP030 */ + {0xF000, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,3,4,2,{{3,5},{3,5},{3,5},{3,5},{3,5}}, 4, 17,_T("MMUOP030 s[Dreg,Areg,Apdi,Aipi,Aind,Ad16,Ad8r,absl,absw],#1")}, + /* CINVL */ + {0xF408, 5,{19,19,15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFF38,4,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 2,_T("CINVL #p,Ar")}, + /* CINVP */ + {0xF410, 5,{19,19,15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFF38,4,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 2,_T("CINVP #p,Ar")}, + /* CINVA */ + {0xF418, 5,{19,19,15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFF38,4,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("CINVA #p")}, + /* CPUSHL */ + {0xF428, 5,{19,19,15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFF38,4,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 2,_T("CPUSHL #p,Ar")}, + /* CPUSHP */ + {0xF430, 5,{19,19,15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFF38,4,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 2,_T("CPUSHP #p,Ar")}, + /* CPUSHA */ + {0xF438, 5,{19,19,15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFF38,4,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("CPUSHA #p")}, + /* PFLUSHN */ + {0xF500, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,4,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("PFLUSHN Ara")}, + /* PFLUSH */ + {0xF508, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,4,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("PFLUSH Ara")}, + /* PFLUSHAN */ + {0xF510, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,4,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("PFLUSHAN Ara")}, + /* PFLUSHA */ + {0xF518, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,4,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("PFLUSHA Ara")}, + /* PTESTR */ + {0xF548, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,4,5,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("PTESTR Ara")}, + /* PTESTW */ + {0xF568, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,4,5,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("PTESTW Ara")}, + /* MOVE16 */ + {0xF620, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,4,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MOVE16 ArP,AxP")}, + /* MOVE16 */ + {0xF600, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,4,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MOVE16 s[Dreg-Aipi],Al")}, + /* MOVE16 */ + {0xF600, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,4,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MOVE16 Al,d[Areg-Aipi]")}, + /* MOVE16 */ + {0xF600, 6,{11,11,11,12,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,4,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MOVE16 s[Aind],Al")}, + /* MOVE16 */ + {0xF600, 6,{13,13,13,14,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFC0,4,0,0,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 0, 18,_T("MOVE16 Al,d[Aipi-Aind]")}, + /* LPSTOP */ + {0xF800, 0,{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFFF,5,0,2,{{3,5},{3,5},{3,5},{3,5},{3,5}}, 4, 16,_T("LPSTOP #1")}, + /* PLPAR */ + {0xF588, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,5,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("PLPAR Ara")}, + /* PLPAW */ + {0xF5C8, 3,{15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},0xFFF8,5,0,2,{{1,1},{1,1},{1,1},{1,1},{1,1}}, 4, 0,_T("PLPAW Ara")} +}; int n_defs68k = 190; diff --git a/src/cpuemu_0.cpp b/src/cpuemu_0.cpp index 12e93490..5b55a29a 100644 --- a/src/cpuemu_0.cpp +++ b/src/cpuemu_0.cpp @@ -1,7 +1,7 @@ #include "sysconfig.h" #include "sysdeps.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "cpu_prefetch.h" @@ -28,4087 +28,6247 @@ /* OR.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0000_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* OR.B #.B,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0010_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* OR.B #.B,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0018_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (4); -return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (4); + return 13 * CYCLE_UNIT / 2; } /* OR.B #.B,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0020_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* OR.B #.B,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0028_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (6); -return 21 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (6); + return 21 * CYCLE_UNIT / 2; } /* OR.B #.B,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0030_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}}return 17 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + } + return 17 * CYCLE_UNIT / 2; } /* OR.B #.B,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0038_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* OR.B #.B,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0039_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (8); -return 17 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (8); + return 17 * CYCLE_UNIT / 2; } /* ORSR.B #.W */ uae_u32 REGPARAM2 CPUFUNC(op_003c_0)(uae_u32 opcode, struct regstruct ®s) { -{ MakeSR (regs); -{ uae_s16 src = get_iword (2); - src &= 0xFF; - regs.sr |= src; - MakeFromSR (regs); -}} m68k_incpc (4); -return 15 * CYCLE_UNIT / 2; + { + MakeSR (regs); + { + uae_s16 src = get_iword (2); + src &= 0xFF; + regs.sr |= src; + MakeFromSR (regs); + } + } + m68k_incpc (4); + return 15 * CYCLE_UNIT / 2; } /* OR.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0040_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* OR.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0050_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* OR.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0058_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (4); -return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (4); + return 13 * CYCLE_UNIT / 2; } /* OR.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0060_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* OR.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0068_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (6); -return 21 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (6); + return 21 * CYCLE_UNIT / 2; } /* OR.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0070_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}}return 17 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + } + return 17 * CYCLE_UNIT / 2; } /* OR.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0078_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* OR.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0079_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (8); -return 16 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (8); + return 16 * CYCLE_UNIT / 2; } /* ORSR.W #.W */ uae_u32 REGPARAM2 CPUFUNC(op_007c_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ MakeSR (regs); -{ uae_s16 src = get_iword (2); - regs.sr |= src; - MakeFromSR (regs); -}}} m68k_incpc (4); -return 15 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + MakeSR (regs); + { + uae_s16 src = get_iword (2); + regs.sr |= src; + MakeFromSR (regs); + } + } + } + m68k_incpc (4); + return 15 * CYCLE_UNIT / 2; } /* OR.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0080_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (6); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (6); + return 8 * CYCLE_UNIT / 2; } /* OR.L #.L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0090_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* OR.L #.L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0098_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (6); -return 15 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (6); + return 15 * CYCLE_UNIT / 2; } /* OR.L #.L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_00a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (6); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (6); + return 14 * CYCLE_UNIT / 2; } /* OR.L #.L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_00a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (8); -return 23 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (8); + return 23 * CYCLE_UNIT / 2; } /* OR.L #.L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_00b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - m68k_incpc (6); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}}return 21 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + m68k_incpc (6); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + } + return 21 * CYCLE_UNIT / 2; } /* OR.L #.L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_00b8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (8); -return 16 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (8); + return 16 * CYCLE_UNIT / 2; } /* OR.L #.L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_00b9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = get_ilong (6); -{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (10); -return 18 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = get_ilong (6); + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (10); + return 18 * CYCLE_UNIT / 2; } /* CHK2.B #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_00d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; - lower = (uae_s32)(uae_s8)get_byte (dsta); upper = (uae_s32)(uae_s8)get_byte (dsta + 1); - if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg; - SET_ZFLG (upper == reg || lower == reg); - SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); - if ((extra & 0x800) && GET_CFLG ()) { Exception (6); - return 8 * CYCLE_UNIT / 2; - } -} -}}} m68k_incpc (4); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower = (uae_s32)(uae_s8)get_byte (dsta); + upper = (uae_s32)(uae_s8)get_byte (dsta + 1); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG ()) + { + Exception (6); + return 8 * CYCLE_UNIT / 2; + } + } + } + } + } + m68k_incpc (4); + return 22 * CYCLE_UNIT / 2; } /* CHK2.B #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_00e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; - lower = (uae_s32)(uae_s8)get_byte (dsta); upper = (uae_s32)(uae_s8)get_byte (dsta + 1); - if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg; - SET_ZFLG (upper == reg || lower == reg); - SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); - if ((extra & 0x800) && GET_CFLG ()) { Exception (6); - return 12 * CYCLE_UNIT / 2; - } -} -}}} m68k_incpc (6); -return 33 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower = (uae_s32)(uae_s8)get_byte (dsta); + upper = (uae_s32)(uae_s8)get_byte (dsta + 1); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG ()) + { + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + } + } + } + } + m68k_incpc (6); + return 33 * CYCLE_UNIT / 2; } /* CHK2.B #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_00f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; - lower = (uae_s32)(uae_s8)get_byte (dsta); upper = (uae_s32)(uae_s8)get_byte (dsta + 1); - if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg; - SET_ZFLG (upper == reg || lower == reg); - SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); - if ((extra & 0x800) && GET_CFLG ()) { Exception (6); - return 8 * CYCLE_UNIT / 2; - } -} -}}}}return 29 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower = (uae_s32)(uae_s8)get_byte (dsta); + upper = (uae_s32)(uae_s8)get_byte (dsta + 1); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG ()) + { + Exception (6); + return 8 * CYCLE_UNIT / 2; + } + } + } + } + } + } + return 29 * CYCLE_UNIT / 2; } /* CHK2.B #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_00f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; - lower = (uae_s32)(uae_s8)get_byte (dsta); upper = (uae_s32)(uae_s8)get_byte (dsta + 1); - if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg; - SET_ZFLG (upper == reg || lower == reg); - SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); - if ((extra & 0x800) && GET_CFLG ()) { Exception (6); - return 12 * CYCLE_UNIT / 2; - } -} -}}} m68k_incpc (6); -return 25 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower = (uae_s32)(uae_s8)get_byte (dsta); + upper = (uae_s32)(uae_s8)get_byte (dsta + 1); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG ()) + { + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + } + } + } + } + m68k_incpc (6); + return 25 * CYCLE_UNIT / 2; } /* CHK2.B #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_00f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); - {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; - lower = (uae_s32)(uae_s8)get_byte (dsta); upper = (uae_s32)(uae_s8)get_byte (dsta + 1); - if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg; - SET_ZFLG (upper == reg || lower == reg); - SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); - if ((extra & 0x800) && GET_CFLG ()) { Exception (6); - return 16 * CYCLE_UNIT / 2; - } -} -}}} m68k_incpc (8); -return 28 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower = (uae_s32)(uae_s8)get_byte (dsta); + upper = (uae_s32)(uae_s8)get_byte (dsta + 1); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG ()) + { + Exception (6); + return 16 * CYCLE_UNIT / 2; + } + } + } + } + } + m68k_incpc (8); + return 28 * CYCLE_UNIT / 2; } /* CHK2.B #.W,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_00fa_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 2; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_getpc () + 4; - dsta += (uae_s32)(uae_s16)get_iword (4); - {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; - lower = (uae_s32)(uae_s8)get_byte (dsta); upper = (uae_s32)(uae_s8)get_byte (dsta + 1); - if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg; - SET_ZFLG (upper == reg || lower == reg); - SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); - if ((extra & 0x800) && GET_CFLG ()) { Exception (6); - return 12 * CYCLE_UNIT / 2; - } -} -}}} m68k_incpc (6); -return 33 * CYCLE_UNIT / 2; + uae_u32 dstreg = 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword (4); + { + uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower = (uae_s32)(uae_s8)get_byte (dsta); + upper = (uae_s32)(uae_s8)get_byte (dsta + 1); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG ()) + { + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + } + } + } + } + m68k_incpc (6); + return 33 * CYCLE_UNIT / 2; } /* CHK2.B #.W,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_00fb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 3; -{{ uae_s16 extra = get_iword (2); -{ uaecptr tmppc; - uaecptr dsta; - m68k_incpc (4); -{ tmppc = m68k_getpc (); - dsta = get_disp_ea_020 (tmppc, next_iword (regs)); - {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; - lower = (uae_s32)(uae_s8)get_byte (dsta); upper = (uae_s32)(uae_s8)get_byte (dsta + 1); - if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg; - SET_ZFLG (upper == reg || lower == reg); - SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); - if ((extra & 0x800) && GET_CFLG ()) { Exception (6); - return 8 * CYCLE_UNIT / 2; - } -} -}}}}return 29 * CYCLE_UNIT / 2; + uae_u32 dstreg = 3; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr tmppc; + uaecptr dsta; + m68k_incpc (4); + { + tmppc = m68k_getpc (); + dsta = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower = (uae_s32)(uae_s8)get_byte (dsta); + upper = (uae_s32)(uae_s8)get_byte (dsta + 1); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG ()) + { + Exception (6); + return 8 * CYCLE_UNIT / 2; + } + } + } + } + } + } + return 29 * CYCLE_UNIT / 2; } /* BTST.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0100_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= 31; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}} m68k_incpc (2); -return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + m68k_incpc (2); + return 5 * CYCLE_UNIT / 2; } /* MVPMR.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0108_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{ uaecptr memp = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_u16 val = ((get_byte (memp) & 0xff) << 8) + (get_byte (memp + 2) & 0xff); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + uaecptr memp = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_u16 val = ((get_byte (memp) & 0xff) << 8) + (get_byte (memp + 2) & 0xff); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* BTST.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0110_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (2); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (2); + return 9 * CYCLE_UNIT / 2; } /* BTST.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0118_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (2); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (2); + return 9 * CYCLE_UNIT / 2; } /* BTST.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0120_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* BTST.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0128_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 15 * CYCLE_UNIT / 2; } /* BTST.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0130_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* BTST.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0138_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 11 * CYCLE_UNIT / 2; } /* BTST.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0139_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } /* BTST.B Dn,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_013a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = 2; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_getpc () + 2; - dsta += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = 2; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_getpc () + 2; + dsta += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 11 * CYCLE_UNIT / 2; } /* BTST.B Dn,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_013b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = 3; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr tmppc; - uaecptr dsta; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - dsta = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = 3; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr tmppc; + uaecptr dsta; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + dsta = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* BTST.B Dn,#.B */ uae_u32 REGPARAM2 CPUFUNC(op_013c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = get_ibyte (2); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = get_ibyte (2); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* BCHG.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0140_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= 31; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - m68k_dreg (regs, dstreg) = (dst); -}}} m68k_incpc (2); -return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= 31; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + m68k_dreg (regs, dstreg) = (dst); + } + } + } + m68k_incpc (2); + return 5 * CYCLE_UNIT / 2; } /* MVPMR.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0148_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{ uaecptr memp = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_u32 val = ((get_byte (memp) & 0xff) << 24) + ((get_byte (memp + 2) & 0xff) << 16) - + ((get_byte (memp + 4) & 0xff) << 8) + (get_byte (memp + 6) & 0xff); - m68k_dreg (regs, dstreg) = (val); -}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + uaecptr memp = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_u32 val = ((get_byte (memp) & 0xff) << 24) + ((get_byte (memp + 2) & 0xff) << 16) + + ((get_byte (memp + 4) & 0xff) << 8) + (get_byte (memp + 6) & 0xff); + m68k_dreg (regs, dstreg) = (val); + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* BCHG.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0150_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta,dst); -}}}} m68k_incpc (2); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (2); + return 9 * CYCLE_UNIT / 2; } /* BCHG.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0158_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta,dst); -}}}} m68k_incpc (2); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (2); + return 9 * CYCLE_UNIT / 2; } /* BCHG.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0160_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta,dst); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* BCHG.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0168_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta,dst); -}}}} m68k_incpc (4); -return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (4); + return 15 * CYCLE_UNIT / 2; } /* BCHG.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0170_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta,dst); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta,dst); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* BCHG.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0178_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta,dst); -}}}} m68k_incpc (4); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (4); + return 11 * CYCLE_UNIT / 2; } /* BCHG.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0179_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta,dst); -}}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } /* BCLR.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0180_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= 31; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_dreg (regs, dstreg) = (dst); -}}} m68k_incpc (2); -return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + m68k_dreg (regs, dstreg) = (dst); + } + } + } + m68k_incpc (2); + return 5 * CYCLE_UNIT / 2; } /* MVPRM.W Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0188_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); - uaecptr memp = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - put_byte (memp, src >> 8); - put_byte (memp + 2, src); -}} m68k_incpc (4); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + uaecptr memp = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + put_byte (memp, src >> 8); + put_byte (memp + 2, src); + } + } + m68k_incpc (4); + return 11 * CYCLE_UNIT / 2; } /* BCLR.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0190_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (2); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (2); + return 9 * CYCLE_UNIT / 2; } /* BCLR.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0198_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (2); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (2); + return 9 * CYCLE_UNIT / 2; } /* BCLR.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_01a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* BCLR.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_01a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (4); -return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (4); + return 15 * CYCLE_UNIT / 2; } /* BCLR.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_01b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta,dst); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta,dst); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* BCLR.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_01b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (4); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (4); + return 11 * CYCLE_UNIT / 2; } /* BCLR.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_01b9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } /* BSET.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_01c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= 31; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_dreg (regs, dstreg) = (dst); -}}} m68k_incpc (2); -return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + m68k_dreg (regs, dstreg) = (dst); + } + } + } + m68k_incpc (2); + return 5 * CYCLE_UNIT / 2; } /* MVPRM.L Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_01c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); - uaecptr memp = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - put_byte (memp, src >> 24); - put_byte (memp + 2, src >> 16); - put_byte (memp + 4, src >> 8); - put_byte (memp + 6, src); -}} m68k_incpc (4); -return 17 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + uaecptr memp = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + put_byte (memp, src >> 24); + put_byte (memp + 2, src >> 16); + put_byte (memp + 4, src >> 8); + put_byte (memp + 6, src); + } + } + m68k_incpc (4); + return 17 * CYCLE_UNIT / 2; } /* BSET.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_01d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (2); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (2); + return 9 * CYCLE_UNIT / 2; } /* BSET.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_01d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (2); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (2); + return 9 * CYCLE_UNIT / 2; } /* BSET.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_01e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* BSET.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_01e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (4); -return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (4); + return 15 * CYCLE_UNIT / 2; } /* BSET.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_01f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta,dst); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta,dst); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* BSET.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_01f8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (4); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (4); + return 11 * CYCLE_UNIT / 2; } /* BSET.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_01f9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } /* AND.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0200_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* AND.B #.B,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0210_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* AND.B #.B,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0218_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (4); -return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (4); + return 13 * CYCLE_UNIT / 2; } /* AND.B #.B,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0220_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* AND.B #.B,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0228_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (6); -return 21 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (6); + return 21 * CYCLE_UNIT / 2; } /* AND.B #.B,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0230_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}}return 17 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + } + return 17 * CYCLE_UNIT / 2; } /* AND.B #.B,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0238_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* AND.B #.B,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0239_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (8); -return 16 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (8); + return 16 * CYCLE_UNIT / 2; } /* ANDSR.B #.W */ uae_u32 REGPARAM2 CPUFUNC(op_023c_0)(uae_u32 opcode, struct regstruct ®s) { -{ MakeSR (regs); -{ uae_s16 src = get_iword (2); - src |= 0xFF00; - regs.sr &= src; - MakeFromSR (regs); -}} m68k_incpc (4); -return 15 * CYCLE_UNIT / 2; + { + MakeSR (regs); + { + uae_s16 src = get_iword (2); + src |= 0xFF00; + regs.sr &= src; + MakeFromSR (regs); + } + } + m68k_incpc (4); + return 15 * CYCLE_UNIT / 2; } /* AND.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0240_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* AND.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0250_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* AND.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0258_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (4); -return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (4); + return 13 * CYCLE_UNIT / 2; } /* AND.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0260_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* AND.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0268_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (6); -return 21 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (6); + return 21 * CYCLE_UNIT / 2; } /* AND.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0270_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}}return 17 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + } + return 17 * CYCLE_UNIT / 2; } /* AND.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0278_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* AND.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0279_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (8); -return 16 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (8); + return 16 * CYCLE_UNIT / 2; } /* ANDSR.W #.W */ uae_u32 REGPARAM2 CPUFUNC(op_027c_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ MakeSR (regs); -{ uae_s16 src = get_iword (2); - regs.sr &= src; - MakeFromSR (regs); -}}} m68k_incpc (4); -return 15 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + MakeSR (regs); + { + uae_s16 src = get_iword (2); + regs.sr &= src; + MakeFromSR (regs); + } + } + } + m68k_incpc (4); + return 15 * CYCLE_UNIT / 2; } /* AND.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0280_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (6); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (6); + return 8 * CYCLE_UNIT / 2; } /* AND.L #.L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0290_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* AND.L #.L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0298_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (6); -return 15 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (6); + return 15 * CYCLE_UNIT / 2; } /* AND.L #.L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_02a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (6); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (6); + return 14 * CYCLE_UNIT / 2; } /* AND.L #.L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_02a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (8); -return 23 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (8); + return 23 * CYCLE_UNIT / 2; } /* AND.L #.L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_02b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - m68k_incpc (6); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}}return 19 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + m68k_incpc (6); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + } + return 19 * CYCLE_UNIT / 2; } /* AND.L #.L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_02b8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (8); -return 16 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (8); + return 16 * CYCLE_UNIT / 2; } /* AND.L #.L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_02b9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = get_ilong (6); -{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (10); -return 18 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = get_ilong (6); + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (10); + return 18 * CYCLE_UNIT / 2; } /* CHK2.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_02d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; - lower = (uae_s32)(uae_s16)get_word (dsta); upper = (uae_s32)(uae_s16)get_word (dsta + 2); - if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg; - SET_ZFLG (upper == reg || lower == reg); - SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); - if ((extra & 0x800) && GET_CFLG ()) { Exception (6); - return 8 * CYCLE_UNIT / 2; - } -} -}}} m68k_incpc (4); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower = (uae_s32)(uae_s16)get_word (dsta); + upper = (uae_s32)(uae_s16)get_word (dsta + 2); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG ()) + { + Exception (6); + return 8 * CYCLE_UNIT / 2; + } + } + } + } + } + m68k_incpc (4); + return 22 * CYCLE_UNIT / 2; } /* CHK2.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_02e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; - lower = (uae_s32)(uae_s16)get_word (dsta); upper = (uae_s32)(uae_s16)get_word (dsta + 2); - if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg; - SET_ZFLG (upper == reg || lower == reg); - SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); - if ((extra & 0x800) && GET_CFLG ()) { Exception (6); - return 12 * CYCLE_UNIT / 2; - } -} -}}} m68k_incpc (6); -return 33 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower = (uae_s32)(uae_s16)get_word (dsta); + upper = (uae_s32)(uae_s16)get_word (dsta + 2); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG ()) + { + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + } + } + } + } + m68k_incpc (6); + return 33 * CYCLE_UNIT / 2; } /* CHK2.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_02f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; - lower = (uae_s32)(uae_s16)get_word (dsta); upper = (uae_s32)(uae_s16)get_word (dsta + 2); - if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg; - SET_ZFLG (upper == reg || lower == reg); - SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); - if ((extra & 0x800) && GET_CFLG ()) { Exception (6); - return 8 * CYCLE_UNIT / 2; - } -} -}}}}return 29 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower = (uae_s32)(uae_s16)get_word (dsta); + upper = (uae_s32)(uae_s16)get_word (dsta + 2); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG ()) + { + Exception (6); + return 8 * CYCLE_UNIT / 2; + } + } + } + } + } + } + return 29 * CYCLE_UNIT / 2; } /* CHK2.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_02f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; - lower = (uae_s32)(uae_s16)get_word (dsta); upper = (uae_s32)(uae_s16)get_word (dsta + 2); - if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg; - SET_ZFLG (upper == reg || lower == reg); - SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); - if ((extra & 0x800) && GET_CFLG ()) { Exception (6); - return 12 * CYCLE_UNIT / 2; - } -} -}}} m68k_incpc (6); -return 25 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower = (uae_s32)(uae_s16)get_word (dsta); + upper = (uae_s32)(uae_s16)get_word (dsta + 2); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG ()) + { + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + } + } + } + } + m68k_incpc (6); + return 25 * CYCLE_UNIT / 2; } /* CHK2.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_02f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); - {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; - lower = (uae_s32)(uae_s16)get_word (dsta); upper = (uae_s32)(uae_s16)get_word (dsta + 2); - if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg; - SET_ZFLG (upper == reg || lower == reg); - SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); - if ((extra & 0x800) && GET_CFLG ()) { Exception (6); - return 16 * CYCLE_UNIT / 2; - } -} -}}} m68k_incpc (8); -return 28 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower = (uae_s32)(uae_s16)get_word (dsta); + upper = (uae_s32)(uae_s16)get_word (dsta + 2); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG ()) + { + Exception (6); + return 16 * CYCLE_UNIT / 2; + } + } + } + } + } + m68k_incpc (8); + return 28 * CYCLE_UNIT / 2; } /* CHK2.W #.W,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_02fa_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 2; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_getpc () + 4; - dsta += (uae_s32)(uae_s16)get_iword (4); - {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; - lower = (uae_s32)(uae_s16)get_word (dsta); upper = (uae_s32)(uae_s16)get_word (dsta + 2); - if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg; - SET_ZFLG (upper == reg || lower == reg); - SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); - if ((extra & 0x800) && GET_CFLG ()) { Exception (6); - return 12 * CYCLE_UNIT / 2; - } -} -}}} m68k_incpc (6); -return 33 * CYCLE_UNIT / 2; + uae_u32 dstreg = 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword (4); + { + uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower = (uae_s32)(uae_s16)get_word (dsta); + upper = (uae_s32)(uae_s16)get_word (dsta + 2); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG ()) + { + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + } + } + } + } + m68k_incpc (6); + return 33 * CYCLE_UNIT / 2; } /* CHK2.W #.W,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_02fb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 3; -{{ uae_s16 extra = get_iword (2); -{ uaecptr tmppc; - uaecptr dsta; - m68k_incpc (4); -{ tmppc = m68k_getpc (); - dsta = get_disp_ea_020 (tmppc, next_iword (regs)); - {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; - lower = (uae_s32)(uae_s16)get_word (dsta); upper = (uae_s32)(uae_s16)get_word (dsta + 2); - if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg; - SET_ZFLG (upper == reg || lower == reg); - SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); - if ((extra & 0x800) && GET_CFLG ()) { Exception (6); - return 8 * CYCLE_UNIT / 2; - } -} -}}}}return 29 * CYCLE_UNIT / 2; + uae_u32 dstreg = 3; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr tmppc; + uaecptr dsta; + m68k_incpc (4); + { + tmppc = m68k_getpc (); + dsta = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower = (uae_s32)(uae_s16)get_word (dsta); + upper = (uae_s32)(uae_s16)get_word (dsta + 2); + if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg; + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG ()) + { + Exception (6); + return 8 * CYCLE_UNIT / 2; + } + } + } + } + } + } + return 29 * CYCLE_UNIT / 2; } /* SUB.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0400_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* SUB.B #.B,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0410_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* SUB.B #.B,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0418_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (4); -return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 13 * CYCLE_UNIT / 2; } /* SUB.B #.B,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0420_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* SUB.B #.B,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0428_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (6); -return 21 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 21 * CYCLE_UNIT / 2; } /* SUB.B #.B,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0430_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}}}return 17 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + } + return 17 * CYCLE_UNIT / 2; } /* SUB.B #.B,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0438_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* SUB.B #.B,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0439_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (8); -return 16 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (8); + return 16 * CYCLE_UNIT / 2; } /* SUB.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0440_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* SUB.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0450_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* SUB.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0458_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (4); -return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 13 * CYCLE_UNIT / 2; } /* SUB.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0460_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* SUB.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0468_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (6); -return 21 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 21 * CYCLE_UNIT / 2; } /* SUB.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0470_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}}}return 17 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + } + return 17 * CYCLE_UNIT / 2; } /* SUB.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0478_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* SUB.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0479_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (8); -return 16 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (8); + return 16 * CYCLE_UNIT / 2; } /* SUB.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0480_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (6); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (6); + return 8 * CYCLE_UNIT / 2; } /* SUB.L #.L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0490_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* SUB.L #.L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0498_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (6); -return 15 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 15 * CYCLE_UNIT / 2; } /* SUB.L #.L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_04a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (6); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 14 * CYCLE_UNIT / 2; } /* SUB.L #.L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_04a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (8); -return 23 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (8); + return 23 * CYCLE_UNIT / 2; } /* SUB.L #.L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_04b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - m68k_incpc (6); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}}}return 19 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + m68k_incpc (6); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + } + return 19 * CYCLE_UNIT / 2; } /* SUB.L #.L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_04b8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (8); -return 16 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (8); + return 16 * CYCLE_UNIT / 2; } /* SUB.L #.L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_04b9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = get_ilong (6); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (10); -return 18 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = get_ilong (6); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (10); + return 18 * CYCLE_UNIT / 2; } /* CHK2.L #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_04d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; - lower = get_long (dsta); upper = get_long (dsta + 4); - SET_ZFLG (upper == reg || lower == reg); - SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); - if ((extra & 0x800) && GET_CFLG ()) { Exception (6); - return 8 * CYCLE_UNIT / 2; - } -} -}}} m68k_incpc (4); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower = get_long (dsta); + upper = get_long (dsta + 4); + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG ()) + { + Exception (6); + return 8 * CYCLE_UNIT / 2; + } + } + } + } + } + m68k_incpc (4); + return 22 * CYCLE_UNIT / 2; } /* CHK2.L #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_04e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; - lower = get_long (dsta); upper = get_long (dsta + 4); - SET_ZFLG (upper == reg || lower == reg); - SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); - if ((extra & 0x800) && GET_CFLG ()) { Exception (6); - return 12 * CYCLE_UNIT / 2; - } -} -}}} m68k_incpc (6); -return 33 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower = get_long (dsta); + upper = get_long (dsta + 4); + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG ()) + { + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + } + } + } + } + m68k_incpc (6); + return 33 * CYCLE_UNIT / 2; } /* CHK2.L #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_04f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; - lower = get_long (dsta); upper = get_long (dsta + 4); - SET_ZFLG (upper == reg || lower == reg); - SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); - if ((extra & 0x800) && GET_CFLG ()) { Exception (6); - return 8 * CYCLE_UNIT / 2; - } -} -}}}}return 29 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower = get_long (dsta); + upper = get_long (dsta + 4); + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG ()) + { + Exception (6); + return 8 * CYCLE_UNIT / 2; + } + } + } + } + } + } + return 29 * CYCLE_UNIT / 2; } /* CHK2.L #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_04f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; - lower = get_long (dsta); upper = get_long (dsta + 4); - SET_ZFLG (upper == reg || lower == reg); - SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); - if ((extra & 0x800) && GET_CFLG ()) { Exception (6); - return 12 * CYCLE_UNIT / 2; - } -} -}}} m68k_incpc (6); -return 25 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower = get_long (dsta); + upper = get_long (dsta + 4); + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG ()) + { + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + } + } + } + } + m68k_incpc (6); + return 25 * CYCLE_UNIT / 2; } /* CHK2.L #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_04f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); - {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; - lower = get_long (dsta); upper = get_long (dsta + 4); - SET_ZFLG (upper == reg || lower == reg); - SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); - if ((extra & 0x800) && GET_CFLG ()) { Exception (6); - return 16 * CYCLE_UNIT / 2; - } -} -}}} m68k_incpc (8); -return 28 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower = get_long (dsta); + upper = get_long (dsta + 4); + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG ()) + { + Exception (6); + return 16 * CYCLE_UNIT / 2; + } + } + } + } + } + m68k_incpc (8); + return 28 * CYCLE_UNIT / 2; } /* CHK2.L #.W,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_04fa_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 2; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_getpc () + 4; - dsta += (uae_s32)(uae_s16)get_iword (4); - {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; - lower = get_long (dsta); upper = get_long (dsta + 4); - SET_ZFLG (upper == reg || lower == reg); - SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); - if ((extra & 0x800) && GET_CFLG ()) { Exception (6); - return 12 * CYCLE_UNIT / 2; - } -} -}}} m68k_incpc (6); -return 33 * CYCLE_UNIT / 2; + uae_u32 dstreg = 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword (4); + { + uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower = get_long (dsta); + upper = get_long (dsta + 4); + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG ()) + { + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + } + } + } + } + m68k_incpc (6); + return 33 * CYCLE_UNIT / 2; } /* CHK2.L #.W,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_04fb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 3; -{{ uae_s16 extra = get_iword (2); -{ uaecptr tmppc; - uaecptr dsta; - m68k_incpc (4); -{ tmppc = m68k_getpc (); - dsta = get_disp_ea_020 (tmppc, next_iword (regs)); - {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; - lower = get_long (dsta); upper = get_long (dsta + 4); - SET_ZFLG (upper == reg || lower == reg); - SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); - if ((extra & 0x800) && GET_CFLG ()) { Exception (6); - return 8 * CYCLE_UNIT / 2; - } -} -}}}}return 29 * CYCLE_UNIT / 2; + uae_u32 dstreg = 3; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr tmppc; + uaecptr dsta; + m68k_incpc (4); + { + tmppc = m68k_getpc (); + dsta = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15]; + lower = get_long (dsta); + upper = get_long (dsta + 4); + SET_ZFLG (upper == reg || lower == reg); + SET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower); + if ((extra & 0x800) && GET_CFLG ()) + { + Exception (6); + return 8 * CYCLE_UNIT / 2; + } + } + } + } + } + } + return 29 * CYCLE_UNIT / 2; } /* ADD.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0600_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* ADD.B #.B,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0610_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* ADD.B #.B,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0618_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (4); -return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 13 * CYCLE_UNIT / 2; } /* ADD.B #.B,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0620_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ADD.B #.B,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0628_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (6); -return 21 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 21 * CYCLE_UNIT / 2; } /* ADD.B #.B,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0630_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}}}return 17 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + } + return 17 * CYCLE_UNIT / 2; } /* ADD.B #.B,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0638_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* ADD.B #.B,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0639_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (8); -return 16 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (8); + return 16 * CYCLE_UNIT / 2; } /* ADD.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0640_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* ADD.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0650_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* ADD.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0658_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (4); -return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 13 * CYCLE_UNIT / 2; } /* ADD.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0660_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ADD.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0668_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (6); -return 21 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 21 * CYCLE_UNIT / 2; } /* ADD.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0670_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}}}return 17 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + } + return 17 * CYCLE_UNIT / 2; } /* ADD.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0678_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* ADD.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0679_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (8); -return 16 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (8); + return 16 * CYCLE_UNIT / 2; } /* ADD.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0680_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (6); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (6); + return 8 * CYCLE_UNIT / 2; } /* ADD.L #.L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0690_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* ADD.L #.L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0698_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (6); -return 15 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 15 * CYCLE_UNIT / 2; } /* ADD.L #.L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_06a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (6); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 14 * CYCLE_UNIT / 2; } /* ADD.L #.L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_06a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (8); -return 23 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (8); + return 23 * CYCLE_UNIT / 2; } /* ADD.L #.L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_06b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - m68k_incpc (6); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}}}return 19 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + m68k_incpc (6); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + } + return 19 * CYCLE_UNIT / 2; } /* ADD.L #.L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_06b8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (8); -return 16 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (8); + return 16 * CYCLE_UNIT / 2; } /* ADD.L #.L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_06b9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = get_ilong (6); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (10); -return 18 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = get_ilong (6); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (10); + return 18 * CYCLE_UNIT / 2; } /* RTM.L Dn */ uae_u32 REGPARAM2 CPUFUNC(op_06c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{ m68k_incpc (2); - op_illg (opcode); -}return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + m68k_incpc (2); + op_illg (opcode); + } + return 4 * CYCLE_UNIT / 2; } /* RTM.L An */ uae_u32 REGPARAM2 CPUFUNC(op_06c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{ m68k_incpc (2); - op_illg (opcode); -}return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + m68k_incpc (2); + op_illg (opcode); + } + return 4 * CYCLE_UNIT / 2; } /* CALLM.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_06d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{ m68k_incpc (2); - op_illg (opcode); -}return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + m68k_incpc (2); + op_illg (opcode); + } + return 4 * CYCLE_UNIT / 2; } /* CALLM.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_06e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{ m68k_incpc (2); - op_illg (opcode); -}return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + m68k_incpc (2); + op_illg (opcode); + } + return 4 * CYCLE_UNIT / 2; } /* CALLM.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_06f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{ m68k_incpc (2); - op_illg (opcode); -}return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + m68k_incpc (2); + op_illg (opcode); + } + return 4 * CYCLE_UNIT / 2; } /* CALLM.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_06f8_0)(uae_u32 opcode, struct regstruct ®s) { -{ m68k_incpc (2); - op_illg (opcode); -}return 4 * CYCLE_UNIT / 2; + { + m68k_incpc (2); + op_illg (opcode); + } + return 4 * CYCLE_UNIT / 2; } /* CALLM.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_06f9_0)(uae_u32 opcode, struct regstruct ®s) { -{ m68k_incpc (2); - op_illg (opcode); -}return 4 * CYCLE_UNIT / 2; + { + m68k_incpc (2); + op_illg (opcode); + } + return 4 * CYCLE_UNIT / 2; } /* CALLM.L (d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_06fa_0)(uae_u32 opcode, struct regstruct ®s) { -{ m68k_incpc (2); - op_illg (opcode); -}return 4 * CYCLE_UNIT / 2; + { + m68k_incpc (2); + op_illg (opcode); + } + return 4 * CYCLE_UNIT / 2; } /* CALLM.L (d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_06fb_0)(uae_u32 opcode, struct regstruct ®s) { -{ m68k_incpc (2); - op_illg (opcode); -}return 4 * CYCLE_UNIT / 2; + { + m68k_incpc (2); + op_illg (opcode); + } + return 4 * CYCLE_UNIT / 2; } /* BTST.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0800_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= 31; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}} m68k_incpc (4); -return 5 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + m68k_incpc (4); + return 5 * CYCLE_UNIT / 2; } /* BTST.B #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0810_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* BTST.B #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0818_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* BTST.B #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0820_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 11 * CYCLE_UNIT / 2; } /* BTST.B #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0828_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* BTST.B #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0830_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* BTST.B #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0838_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } /* BTST.B #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0839_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (8); -return 15 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (8); + return 15 * CYCLE_UNIT / 2; } /* BTST.B #.W,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_083a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 2; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_getpc () + 4; - dsta += (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* BTST.B #.W,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_083b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 3; -{{ uae_s16 src = get_iword (2); -{ uaecptr tmppc; - uaecptr dsta; - m68k_incpc (4); -{ tmppc = m68k_getpc (); - dsta = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = 3; + { + { + uae_s16 src = get_iword (2); + { + uaecptr tmppc; + uaecptr dsta; + m68k_incpc (4); + { + tmppc = m68k_getpc (); + dsta = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* BTST.B #.W,#.B */ uae_u32 REGPARAM2 CPUFUNC(op_083c_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uae_s8 dst = get_ibyte (4); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uae_s8 dst = get_ibyte (4); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* BCHG.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0840_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= 31; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - m68k_dreg (regs, dstreg) = (dst); -}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= 31; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + m68k_dreg (regs, dstreg) = (dst); + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* BCHG.B #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0850_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta,dst); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* BCHG.B #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0858_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta,dst); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* BCHG.B #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0860_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta,dst); -}}}} m68k_incpc (4); -return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (4); + return 11 * CYCLE_UNIT / 2; } /* BCHG.B #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0868_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta,dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* BCHG.B #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0870_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta,dst); -}}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta,dst); + } + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* BCHG.B #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0878_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta,dst); -}}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } /* BCHG.B #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0879_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta,dst); -}}}} m68k_incpc (8); -return 15 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (8); + return 15 * CYCLE_UNIT / 2; } /* BCLR.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0880_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= 31; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_dreg (regs, dstreg) = (dst); -}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + m68k_dreg (regs, dstreg) = (dst); + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* BCLR.B #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0890_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* BCLR.B #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0898_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* BCLR.B #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_08a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (4); -return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (4); + return 11 * CYCLE_UNIT / 2; } /* BCLR.B #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_08a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* BCLR.B #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_08b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta,dst); -}}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta,dst); + } + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* BCLR.B #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_08b8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } /* BCLR.B #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_08b9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (8); -return 15 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (8); + return 15 * CYCLE_UNIT / 2; } /* BSET.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_08c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= 31; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_dreg (regs, dstreg) = (dst); -}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + m68k_dreg (regs, dstreg) = (dst); + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* BSET.B #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_08d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* BSET.B #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_08d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* BSET.B #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_08e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (4); -return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (4); + return 11 * CYCLE_UNIT / 2; } /* BSET.B #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_08e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* BSET.B #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_08f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta,dst); -}}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta,dst); + } + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* BSET.B #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_08f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } /* BSET.B #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_08f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta,dst); -}}}} m68k_incpc (8); -return 15 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta,dst); + } + } + } + } + m68k_incpc (8); + return 15 * CYCLE_UNIT / 2; } /* EOR.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0a00_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* EOR.B #.B,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0a10_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* EOR.B #.B,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0a18_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (4); -return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (4); + return 13 * CYCLE_UNIT / 2; } /* EOR.B #.B,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0a20_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* EOR.B #.B,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0a28_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (6); -return 21 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (6); + return 21 * CYCLE_UNIT / 2; } /* EOR.B #.B,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0a30_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}}return 17 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + } + return 17 * CYCLE_UNIT / 2; } /* EOR.B #.B,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0a38_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* EOR.B #.B,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0a39_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (8); -return 16 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (8); + return 16 * CYCLE_UNIT / 2; } /* EORSR.B #.W */ uae_u32 REGPARAM2 CPUFUNC(op_0a3c_0)(uae_u32 opcode, struct regstruct ®s) { -{ MakeSR (regs); -{ uae_s16 src = get_iword (2); - src &= 0xFF; - regs.sr ^= src; - MakeFromSR (regs); -}} m68k_incpc (4); -return 15 * CYCLE_UNIT / 2; + { + MakeSR (regs); + { + uae_s16 src = get_iword (2); + src &= 0xFF; + regs.sr ^= src; + MakeFromSR (regs); + } + } + m68k_incpc (4); + return 15 * CYCLE_UNIT / 2; } /* EOR.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0a40_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* EOR.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0a50_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* EOR.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0a58_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (4); -return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (4); + return 13 * CYCLE_UNIT / 2; } /* EOR.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0a60_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* EOR.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0a68_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (6); -return 21 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (6); + return 21 * CYCLE_UNIT / 2; } /* EOR.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0a70_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}}return 17 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + } + return 17 * CYCLE_UNIT / 2; } /* EOR.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0a78_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* EOR.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0a79_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (8); -return 16 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (8); + return 16 * CYCLE_UNIT / 2; } /* EORSR.W #.W */ uae_u32 REGPARAM2 CPUFUNC(op_0a7c_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ MakeSR (regs); -{ uae_s16 src = get_iword (2); - regs.sr ^= src; - MakeFromSR (regs); -}}} m68k_incpc (4); -return 15 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + MakeSR (regs); + { + uae_s16 src = get_iword (2); + regs.sr ^= src; + MakeFromSR (regs); + } + } + } + m68k_incpc (4); + return 15 * CYCLE_UNIT / 2; } /* EOR.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0a80_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (6); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (6); + return 8 * CYCLE_UNIT / 2; } /* EOR.L #.L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0a90_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* EOR.L #.L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0a98_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (6); -return 15 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (6); + return 15 * CYCLE_UNIT / 2; } /* EOR.L #.L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0aa0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (6); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (6); + return 14 * CYCLE_UNIT / 2; } /* EOR.L #.L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0aa8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (8); -return 23 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (8); + return 23 * CYCLE_UNIT / 2; } /* EOR.L #.L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0ab0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - m68k_incpc (6); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}}return 19 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + m68k_incpc (6); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + } + return 19 * CYCLE_UNIT / 2; } /* EOR.L #.L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0ab8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (8); -return 16 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (8); + return 16 * CYCLE_UNIT / 2; } /* EOR.L #.L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0ab9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = get_ilong (6); -{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (10); -return 18 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = get_ilong (6); + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (10); + return 18 * CYCLE_UNIT / 2; } /* CAS.B #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0ad0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); -{ int ru = (src >> 6) & 7; - int rc = src & 7; -{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(m68k_dreg (regs, rc))); -{ int flgs = ((uae_s8)(m68k_dreg (regs, rc))) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(m68k_dreg (regs, rc))) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); - m68k_incpc (4); - if (GET_ZFLG ()){ - put_byte (dsta, (m68k_dreg (regs, ru))); - }else{ - put_byte (dsta, dst); - m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xff) | (dst & 0xff); -}}}}}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + { + int ru = (src >> 6) & 7; + int rc = src & 7; + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(m68k_dreg (regs, rc))); + { + int flgs = ((uae_s8)(m68k_dreg (regs, rc))) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(m68k_dreg (regs, rc))) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + m68k_incpc (4); + if (GET_ZFLG ()) + { + put_byte (dsta, (m68k_dreg (regs, ru))); + } + else + { + put_byte (dsta, dst); + m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xff) | (dst & 0xff); + } + } + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* CAS.B #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0ad8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; -{ int ru = (src >> 6) & 7; - int rc = src & 7; -{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(m68k_dreg (regs, rc))); -{ int flgs = ((uae_s8)(m68k_dreg (regs, rc))) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(m68k_dreg (regs, rc))) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); - m68k_incpc (4); - if (GET_ZFLG ()){ - put_byte (dsta, (m68k_dreg (regs, ru))); - }else{ - put_byte (dsta, dst); - m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xff) | (dst & 0xff); -}}}}}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + { + int ru = (src >> 6) & 7; + int rc = src & 7; + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(m68k_dreg (regs, rc))); + { + int flgs = ((uae_s8)(m68k_dreg (regs, rc))) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(m68k_dreg (regs, rc))) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + m68k_incpc (4); + if (GET_ZFLG ()) + { + put_byte (dsta, (m68k_dreg (regs, ru))); + } + else + { + put_byte (dsta, dst); + m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xff) | (dst & 0xff); + } + } + } + } + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* CAS.B #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0ae0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{ int ru = (src >> 6) & 7; - int rc = src & 7; -{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(m68k_dreg (regs, rc))); -{ int flgs = ((uae_s8)(m68k_dreg (regs, rc))) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(m68k_dreg (regs, rc))) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); - m68k_incpc (4); - if (GET_ZFLG ()){ - put_byte (dsta, (m68k_dreg (regs, ru))); - }else{ - put_byte (dsta, dst); - m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xff) | (dst & 0xff); -}}}}}}}}return 19 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + int ru = (src >> 6) & 7; + int rc = src & 7; + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(m68k_dreg (regs, rc))); + { + int flgs = ((uae_s8)(m68k_dreg (regs, rc))) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(m68k_dreg (regs, rc))) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + m68k_incpc (4); + if (GET_ZFLG ()) + { + put_byte (dsta, (m68k_dreg (regs, ru))); + } + else + { + put_byte (dsta, dst); + m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xff) | (dst & 0xff); + } + } + } + } + } + } + } + } + return 19 * CYCLE_UNIT / 2; } #endif @@ -4117,4458 +6277,7078 @@ uae_u32 REGPARAM2 CPUFUNC(op_0ae0_0)(uae_u32 opcode, struct regstruct ®s) /* CAS.B #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0ae8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); -{ int ru = (src >> 6) & 7; - int rc = src & 7; -{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(m68k_dreg (regs, rc))); -{ int flgs = ((uae_s8)(m68k_dreg (regs, rc))) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(m68k_dreg (regs, rc))) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); - m68k_incpc (6); - if (GET_ZFLG ()){ - put_byte (dsta, (m68k_dreg (regs, ru))); - }else{ - put_byte (dsta, dst); - m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xff) | (dst & 0xff); -}}}}}}}}return 26 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + { + int ru = (src >> 6) & 7; + int rc = src & 7; + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(m68k_dreg (regs, rc))); + { + int flgs = ((uae_s8)(m68k_dreg (regs, rc))) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(m68k_dreg (regs, rc))) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + m68k_incpc (6); + if (GET_ZFLG ()) + { + put_byte (dsta, (m68k_dreg (regs, ru))); + } + else + { + put_byte (dsta, dst); + m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xff) | (dst & 0xff); + } + } + } + } + } + } + } + } + return 26 * CYCLE_UNIT / 2; } /* CAS.B #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0af0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); -{ int ru = (src >> 6) & 7; - int rc = src & 7; -{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(m68k_dreg (regs, rc))); -{ int flgs = ((uae_s8)(m68k_dreg (regs, rc))) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(m68k_dreg (regs, rc))) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); - if (GET_ZFLG ()){ - put_byte (dsta, (m68k_dreg (regs, ru))); - }else{ - put_byte (dsta, dst); - m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xff) | (dst & 0xff); -}}}}}}}}}return 21 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + { + int ru = (src >> 6) & 7; + int rc = src & 7; + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(m68k_dreg (regs, rc))); + { + int flgs = ((uae_s8)(m68k_dreg (regs, rc))) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(m68k_dreg (regs, rc))) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG ()) + { + put_byte (dsta, (m68k_dreg (regs, ru))); + } + else + { + put_byte (dsta, dst); + m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xff) | (dst & 0xff); + } + } + } + } + } + } + } + } + } + return 21 * CYCLE_UNIT / 2; } /* CAS.B #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0af8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); -{ int ru = (src >> 6) & 7; - int rc = src & 7; -{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(m68k_dreg (regs, rc))); -{ int flgs = ((uae_s8)(m68k_dreg (regs, rc))) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(m68k_dreg (regs, rc))) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); - m68k_incpc (6); - if (GET_ZFLG ()){ - put_byte (dsta, (m68k_dreg (regs, ru))); - }else{ - put_byte (dsta, dst); - m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xff) | (dst & 0xff); -}}}}}}}}return 18 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + { + int ru = (src >> 6) & 7; + int rc = src & 7; + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(m68k_dreg (regs, rc))); + { + int flgs = ((uae_s8)(m68k_dreg (regs, rc))) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(m68k_dreg (regs, rc))) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + m68k_incpc (6); + if (GET_ZFLG ()) + { + put_byte (dsta, (m68k_dreg (regs, ru))); + } + else + { + put_byte (dsta, dst); + m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xff) | (dst & 0xff); + } + } + } + } + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* CAS.B #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0af9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s8 dst = get_byte (dsta); -{ int ru = (src >> 6) & 7; - int rc = src & 7; -{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(m68k_dreg (regs, rc))); -{ int flgs = ((uae_s8)(m68k_dreg (regs, rc))) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(m68k_dreg (regs, rc))) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); - m68k_incpc (8); - if (GET_ZFLG ()){ - put_byte (dsta, (m68k_dreg (regs, ru))); - }else{ - put_byte (dsta, dst); - m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xff) | (dst & 0xff); -}}}}}}}}return 19 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s8 dst = get_byte (dsta); + { + int ru = (src >> 6) & 7; + int rc = src & 7; + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(m68k_dreg (regs, rc))); + { + int flgs = ((uae_s8)(m68k_dreg (regs, rc))) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(m68k_dreg (regs, rc))) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + m68k_incpc (8); + if (GET_ZFLG ()) + { + put_byte (dsta, (m68k_dreg (regs, ru))); + } + else + { + put_byte (dsta, dst); + m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xff) | (dst & 0xff); + } + } + } + } + } + } + } + } + return 19 * CYCLE_UNIT / 2; } /* CMP.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0c00_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* CMP.B #.B,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0c10_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 7 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 7 * CYCLE_UNIT / 2; } /* CMP.B #.B,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0c18_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* CMP.B #.B,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0c20_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* CMP.B #.B,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0c28_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2; } /* CMP.B #.B,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0c30_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* CMP.B #.B,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0c38_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* CMP.B #.B,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0c39_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (8); -return 13 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (8); + return 13 * CYCLE_UNIT / 2; } /* CMP.B #.B,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_0c3a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 2; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_getpc () + 4; - dsta += (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2; } /* CMP.B #.B,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0c3b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 3; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr tmppc; - uaecptr dsta; - m68k_incpc (4); -{ tmppc = m68k_getpc (); - dsta = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = 3; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr tmppc; + uaecptr dsta; + m68k_incpc (4); + { + tmppc = m68k_getpc (); + dsta = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* CMP.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0c40_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* CMP.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0c50_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 7 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 7 * CYCLE_UNIT / 2; } /* CMP.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0c58_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* CMP.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0c60_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* CMP.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0c68_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2; } /* CMP.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0c70_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* CMP.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0c78_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* CMP.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0c79_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (8); -return 13 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (8); + return 13 * CYCLE_UNIT / 2; } /* CMP.W #.W,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_0c7a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 2; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_getpc () + 4; - dsta += (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2; } /* CMP.W #.W,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0c7b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 3; -{{ uae_s16 src = get_iword (2); -{ uaecptr tmppc; - uaecptr dsta; - m68k_incpc (4); -{ tmppc = m68k_getpc (); - dsta = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = 3; + { + { + uae_s16 src = get_iword (2); + { + uaecptr tmppc; + uaecptr dsta; + m68k_incpc (4); + { + tmppc = m68k_getpc (); + dsta = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* CMP.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0c80_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (6); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (6); + return 8 * CYCLE_UNIT / 2; } /* CMP.L #.L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0c90_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* CMP.L #.L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0c98_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } /* CMP.L #.L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0ca0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* CMP.L #.L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0ca8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (8); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (8); + return 20 * CYCLE_UNIT / 2; } /* CMP.L #.L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0cb0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - m68k_incpc (6); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + m68k_incpc (6); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* CMP.L #.L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0cb8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (8); -return 13 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (8); + return 13 * CYCLE_UNIT / 2; } /* CMP.L #.L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0cb9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = get_ilong (6); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (10); -return 15 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = get_ilong (6); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (10); + return 15 * CYCLE_UNIT / 2; } /* CMP.L #.L,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_0cba_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 2; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_getpc () + 6; - dsta += (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (8); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_getpc () + 6; + dsta += (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (8); + return 20 * CYCLE_UNIT / 2; } /* CMP.L #.L,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0cbb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 3; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr tmppc; - uaecptr dsta; - m68k_incpc (6); -{ tmppc = m68k_getpc (); - dsta = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = 3; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr tmppc; + uaecptr dsta; + m68k_incpc (6); + { + tmppc = m68k_getpc (); + dsta = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* CAS.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0cd0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); -{ int ru = (src >> 6) & 7; - int rc = src & 7; -{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(m68k_dreg (regs, rc))); -{ int flgs = ((uae_s16)(m68k_dreg (regs, rc))) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(m68k_dreg (regs, rc))) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); - m68k_incpc (4); - if (GET_ZFLG ()){ - put_word (dsta, (m68k_dreg (regs, ru))); - }else{ - put_word (dsta, dst); - m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xffff) | (dst & 0xffff); -}}}}}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + { + int ru = (src >> 6) & 7; + int rc = src & 7; + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(m68k_dreg (regs, rc))); + { + int flgs = ((uae_s16)(m68k_dreg (regs, rc))) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(m68k_dreg (regs, rc))) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + m68k_incpc (4); + if (GET_ZFLG ()) + { + put_word (dsta, (m68k_dreg (regs, ru))); + } + else + { + put_word (dsta, dst); + m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xffff) | (dst & 0xffff); + } + } + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* CAS.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0cd8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; -{ int ru = (src >> 6) & 7; - int rc = src & 7; -{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(m68k_dreg (regs, rc))); -{ int flgs = ((uae_s16)(m68k_dreg (regs, rc))) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(m68k_dreg (regs, rc))) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); - m68k_incpc (4); - if (GET_ZFLG ()){ - put_word (dsta, (m68k_dreg (regs, ru))); - }else{ - put_word (dsta, dst); - m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xffff) | (dst & 0xffff); -}}}}}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + { + int ru = (src >> 6) & 7; + int rc = src & 7; + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(m68k_dreg (regs, rc))); + { + int flgs = ((uae_s16)(m68k_dreg (regs, rc))) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(m68k_dreg (regs, rc))) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + m68k_incpc (4); + if (GET_ZFLG ()) + { + put_word (dsta, (m68k_dreg (regs, ru))); + } + else + { + put_word (dsta, dst); + m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xffff) | (dst & 0xffff); + } + } + } + } + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* CAS.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0ce0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; -{ int ru = (src >> 6) & 7; - int rc = src & 7; -{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(m68k_dreg (regs, rc))); -{ int flgs = ((uae_s16)(m68k_dreg (regs, rc))) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(m68k_dreg (regs, rc))) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); - m68k_incpc (4); - if (GET_ZFLG ()){ - put_word (dsta, (m68k_dreg (regs, ru))); - }else{ - put_word (dsta, dst); - m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xffff) | (dst & 0xffff); -}}}}}}}}return 19 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + { + int ru = (src >> 6) & 7; + int rc = src & 7; + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(m68k_dreg (regs, rc))); + { + int flgs = ((uae_s16)(m68k_dreg (regs, rc))) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(m68k_dreg (regs, rc))) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + m68k_incpc (4); + if (GET_ZFLG ()) + { + put_word (dsta, (m68k_dreg (regs, ru))); + } + else + { + put_word (dsta, dst); + m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xffff) | (dst & 0xffff); + } + } + } + } + } + } + } + } + return 19 * CYCLE_UNIT / 2; } /* CAS.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0ce8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); -{ int ru = (src >> 6) & 7; - int rc = src & 7; -{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(m68k_dreg (regs, rc))); -{ int flgs = ((uae_s16)(m68k_dreg (regs, rc))) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(m68k_dreg (regs, rc))) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); - m68k_incpc (6); - if (GET_ZFLG ()){ - put_word (dsta, (m68k_dreg (regs, ru))); - }else{ - put_word (dsta, dst); - m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xffff) | (dst & 0xffff); -}}}}}}}}return 26 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + { + int ru = (src >> 6) & 7; + int rc = src & 7; + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(m68k_dreg (regs, rc))); + { + int flgs = ((uae_s16)(m68k_dreg (regs, rc))) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(m68k_dreg (regs, rc))) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + m68k_incpc (6); + if (GET_ZFLG ()) + { + put_word (dsta, (m68k_dreg (regs, ru))); + } + else + { + put_word (dsta, dst); + m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xffff) | (dst & 0xffff); + } + } + } + } + } + } + } + } + return 26 * CYCLE_UNIT / 2; } /* CAS.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0cf0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s16 dst = get_word (dsta); -{ int ru = (src >> 6) & 7; - int rc = src & 7; -{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(m68k_dreg (regs, rc))); -{ int flgs = ((uae_s16)(m68k_dreg (regs, rc))) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(m68k_dreg (regs, rc))) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); - if (GET_ZFLG ()){ - put_word (dsta, (m68k_dreg (regs, ru))); - }else{ - put_word (dsta, dst); - m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xffff) | (dst & 0xffff); -}}}}}}}}}return 21 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s16 dst = get_word (dsta); + { + int ru = (src >> 6) & 7; + int rc = src & 7; + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(m68k_dreg (regs, rc))); + { + int flgs = ((uae_s16)(m68k_dreg (regs, rc))) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(m68k_dreg (regs, rc))) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG ()) + { + put_word (dsta, (m68k_dreg (regs, ru))); + } + else + { + put_word (dsta, dst); + m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xffff) | (dst & 0xffff); + } + } + } + } + } + } + } + } + } + return 21 * CYCLE_UNIT / 2; } /* CAS.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0cf8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); -{ int ru = (src >> 6) & 7; - int rc = src & 7; -{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(m68k_dreg (regs, rc))); -{ int flgs = ((uae_s16)(m68k_dreg (regs, rc))) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(m68k_dreg (regs, rc))) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); - m68k_incpc (6); - if (GET_ZFLG ()){ - put_word (dsta, (m68k_dreg (regs, ru))); - }else{ - put_word (dsta, dst); - m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xffff) | (dst & 0xffff); -}}}}}}}}return 18 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + { + int ru = (src >> 6) & 7; + int rc = src & 7; + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(m68k_dreg (regs, rc))); + { + int flgs = ((uae_s16)(m68k_dreg (regs, rc))) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(m68k_dreg (regs, rc))) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + m68k_incpc (6); + if (GET_ZFLG ()) + { + put_word (dsta, (m68k_dreg (regs, ru))); + } + else + { + put_word (dsta, dst); + m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xffff) | (dst & 0xffff); + } + } + } + } + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* CAS.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0cf9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s16 dst = get_word (dsta); -{ int ru = (src >> 6) & 7; - int rc = src & 7; -{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(m68k_dreg (regs, rc))); -{ int flgs = ((uae_s16)(m68k_dreg (regs, rc))) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(m68k_dreg (regs, rc))) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); - m68k_incpc (8); - if (GET_ZFLG ()){ - put_word (dsta, (m68k_dreg (regs, ru))); - }else{ - put_word (dsta, dst); - m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xffff) | (dst & 0xffff); -}}}}}}}}return 19 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s16 dst = get_word (dsta); + { + int ru = (src >> 6) & 7; + int rc = src & 7; + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(m68k_dreg (regs, rc))); + { + int flgs = ((uae_s16)(m68k_dreg (regs, rc))) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(m68k_dreg (regs, rc))) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + m68k_incpc (8); + if (GET_ZFLG ()) + { + put_word (dsta, (m68k_dreg (regs, ru))); + } + else + { + put_word (dsta, dst); + m68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xffff) | (dst & 0xffff); + } + } + } + } + } + } + } + } + return 19 * CYCLE_UNIT / 2; } /* CAS2.W #.L */ uae_u32 REGPARAM2 CPUFUNC(op_0cfc_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 extra; - extra = get_ilong (2); - uae_u32 rn1 = regs.regs[(extra >> 28) & 15]; - uae_u32 rn2 = regs.regs[(extra >> 12) & 15]; - uae_u16 dst1 = get_word (rn1), dst2 = get_word (rn2); -{uae_u32 newv = ((uae_u16)(dst1)) - ((uae_u16)(m68k_dreg (regs, (extra >> 16) & 7))); -{ int flgs = ((uae_s16)(m68k_dreg (regs, (extra >> 16) & 7))) < 0; - int flgo = ((uae_s16)(dst1)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(m68k_dreg (regs, (extra >> 16) & 7))) > ((uae_u16)(dst1))); - SET_NFLG (flgn != 0); - if (GET_ZFLG ()) { -{uae_u32 newv = ((uae_u16)(dst2)) - ((uae_u16)(m68k_dreg (regs, extra & 7))); -{ int flgs = ((uae_s16)(m68k_dreg (regs, extra & 7))) < 0; - int flgo = ((uae_s16)(dst2)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(m68k_dreg (regs, extra & 7))) > ((uae_u16)(dst2))); - SET_NFLG (flgn != 0); - if (GET_ZFLG ()) { - put_word (rn1, m68k_dreg (regs, (extra >> 22) & 7)); - put_word (rn2, m68k_dreg (regs, (extra >> 6) & 7)); - }} -}}}} if (! GET_ZFLG ()) { - m68k_dreg (regs, (extra >> 0) & 7) = (m68k_dreg (regs, (extra >> 6) & 7) & ~0xffff) | (dst2 & 0xffff); - m68k_dreg (regs, (extra >> 16) & 7) = (m68k_dreg (regs, (extra >> 22) & 7) & ~0xffff) | (dst1 & 0xffff); - } -}} m68k_incpc (6); -return 25 * CYCLE_UNIT / 2; + { + { + uae_s32 extra; + extra = get_ilong (2); + uae_u32 rn1 = regs.regs[(extra >> 28) & 15]; + uae_u32 rn2 = regs.regs[(extra >> 12) & 15]; + uae_u16 dst1 = get_word (rn1), dst2 = get_word (rn2); + { + uae_u32 newv = ((uae_u16)(dst1)) - ((uae_u16)(m68k_dreg (regs, (extra >> 16) & 7))); + { + int flgs = ((uae_s16)(m68k_dreg (regs, (extra >> 16) & 7))) < 0; + int flgo = ((uae_s16)(dst1)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(m68k_dreg (regs, (extra >> 16) & 7))) > ((uae_u16)(dst1))); + SET_NFLG (flgn != 0); + if (GET_ZFLG ()) + { + { + uae_u32 newv = ((uae_u16)(dst2)) - ((uae_u16)(m68k_dreg (regs, extra & 7))); + { + int flgs = ((uae_s16)(m68k_dreg (regs, extra & 7))) < 0; + int flgo = ((uae_s16)(dst2)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(m68k_dreg (regs, extra & 7))) > ((uae_u16)(dst2))); + SET_NFLG (flgn != 0); + if (GET_ZFLG ()) + { + put_word (rn1, m68k_dreg (regs, (extra >> 22) & 7)); + put_word (rn2, m68k_dreg (regs, (extra >> 6) & 7)); + } + } + } + } + } + } + if (! GET_ZFLG ()) + { + m68k_dreg (regs, (extra >> 0) & 7) = (m68k_dreg (regs, (extra >> 6) & 7) & ~0xffff) | (dst2 & 0xffff); + m68k_dreg (regs, (extra >> 16) & 7) = (m68k_dreg (regs, (extra >> 22) & 7) & ~0xffff) | (dst1 & 0xffff); + } + } + } + m68k_incpc (6); + return 25 * CYCLE_UNIT / 2; } /* MOVES.B #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0e10_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) -{ uae_u32 src = regs.regs[(extra >> 12) & 15]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - put_byte (dsta,src); -}}else{{ uaecptr srca; - srca = m68k_areg (regs, dstreg); -{ uae_s8 src = get_byte (srca); - if (extra & 0x8000) { - m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src; - } else { - m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff); - } -}}}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) + { + uae_u32 src = regs.regs[(extra >> 12) & 15]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + put_byte (dsta,src); + } + } + else + { + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + { + uae_s8 src = get_byte (srca); + if (extra & 0x8000) + { + m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src; + } + else + { + m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* MOVES.B #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0e18_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) -{ uae_u32 src = regs.regs[(extra >> 12) & 15]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - put_byte (dsta,src); -}}else{{ uaecptr srca; - srca = m68k_areg (regs, dstreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - if (extra & 0x8000) { - m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src; - } else { - m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff); - } -}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) + { + uae_u32 src = regs.regs[(extra >> 12) & 15]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + put_byte (dsta,src); + } + } + else + { + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + if (extra & 0x8000) + { + m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src; + } + else + { + m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* MOVES.B #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0e20_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) -{ uae_u32 src = regs.regs[(extra >> 12) & 15]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - put_byte (dsta,src); -}}else{{ uaecptr srca; - srca = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, dstreg) = srca; - if (extra & 0x8000) { - m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src; - } else { - m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff); - } -}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) + { + uae_u32 src = regs.regs[(extra >> 12) & 15]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + put_byte (dsta,src); + } + } + else + { + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, dstreg) = srca; + if (extra & 0x8000) + { + m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src; + } + else + { + m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* MOVES.B #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0e28_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) -{ uae_u32 src = regs.regs[(extra >> 12) & 15]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - put_byte (dsta,src); -}}else{{ uaecptr srca; - srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 src = get_byte (srca); - if (extra & 0x8000) { - m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src; - } else { - m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff); - } -}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) + { + uae_u32 src = regs.regs[(extra >> 12) & 15]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + put_byte (dsta,src); + } + } + else + { + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 src = get_byte (srca); + if (extra & 0x8000) + { + m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src; + } + else + { + m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* MOVES.B #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0e30_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) -{ uae_u32 src = regs.regs[(extra >> 12) & 15]; -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - put_byte (dsta,src); -}}}else{{ uaecptr srca; - m68k_incpc (4); -{ srca = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 src = get_byte (srca); - if (extra & 0x8000) { - m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src; - } else { - m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff); - } -}}}}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) + { + uae_u32 src = regs.regs[(extra >> 12) & 15]; + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + put_byte (dsta,src); + } + } + } + else + { + { + uaecptr srca; + m68k_incpc (4); + { + srca = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 src = get_byte (srca); + if (extra & 0x8000) + { + m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src; + } + else + { + m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff); + } + } + } + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVES.B #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0e38_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) -{ uae_u32 src = regs.regs[(extra >> 12) & 15]; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - put_byte (dsta,src); -}}else{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 src = get_byte (srca); - if (extra & 0x8000) { - m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src; - } else { - m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff); - } -}}}}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) + { + uae_u32 src = regs.regs[(extra >> 12) & 15]; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + put_byte (dsta,src); + } + } + else + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 src = get_byte (srca); + if (extra & 0x8000) + { + m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src; + } + else + { + m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } /* MOVES.B #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0e39_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) -{ uae_u32 src = regs.regs[(extra >> 12) & 15]; -{ uaecptr dsta; - dsta = get_ilong (4); - put_byte (dsta,src); -}}else{{ uaecptr srca; - srca = get_ilong (4); -{ uae_s8 src = get_byte (srca); - if (extra & 0x8000) { - m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src; - } else { - m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff); - } -}}}}}} m68k_incpc (8); -return 13 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) + { + uae_u32 src = regs.regs[(extra >> 12) & 15]; + { + uaecptr dsta; + dsta = get_ilong (4); + put_byte (dsta,src); + } + } + else + { + { + uaecptr srca; + srca = get_ilong (4); + { + uae_s8 src = get_byte (srca); + if (extra & 0x8000) + { + m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src; + } + else + { + m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (8); + return 13 * CYCLE_UNIT / 2; } /* MOVES.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0e50_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) -{ uae_u32 src = regs.regs[(extra >> 12) & 15]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - put_word (dsta,src); -}}else{{ uaecptr srca; - srca = m68k_areg (regs, dstreg); -{ uae_s16 src = get_word (srca); - if (extra & 0x8000) { - m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src; - } else { - m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff); - } -}}}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) + { + uae_u32 src = regs.regs[(extra >> 12) & 15]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + put_word (dsta,src); + } + } + else + { + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + { + uae_s16 src = get_word (srca); + if (extra & 0x8000) + { + m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src; + } + else + { + m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* MOVES.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0e58_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) -{ uae_u32 src = regs.regs[(extra >> 12) & 15]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - put_word (dsta,src); -}}else{{ uaecptr srca; - srca = m68k_areg (regs, dstreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, dstreg) += 2; - if (extra & 0x8000) { - m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src; - } else { - m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff); - } -}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) + { + uae_u32 src = regs.regs[(extra >> 12) & 15]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + put_word (dsta,src); + } + } + else + { + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, dstreg) += 2; + if (extra & 0x8000) + { + m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src; + } + else + { + m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* MOVES.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0e60_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) -{ uae_u32 src = regs.regs[(extra >> 12) & 15]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - put_word (dsta,src); -}}else{{ uaecptr srca; - srca = m68k_areg (regs, dstreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, dstreg) = srca; - if (extra & 0x8000) { - m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src; - } else { - m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff); - } -}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) + { + uae_u32 src = regs.regs[(extra >> 12) & 15]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + put_word (dsta,src); + } + } + else + { + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, dstreg) = srca; + if (extra & 0x8000) + { + m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src; + } + else + { + m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* MOVES.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0e68_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) -{ uae_u32 src = regs.regs[(extra >> 12) & 15]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - put_word (dsta,src); -}}else{{ uaecptr srca; - srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 src = get_word (srca); - if (extra & 0x8000) { - m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src; - } else { - m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff); - } -}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) + { + uae_u32 src = regs.regs[(extra >> 12) & 15]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + put_word (dsta,src); + } + } + else + { + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 src = get_word (srca); + if (extra & 0x8000) + { + m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src; + } + else + { + m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* MOVES.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0e70_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) -{ uae_u32 src = regs.regs[(extra >> 12) & 15]; -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - put_word (dsta,src); -}}}else{{ uaecptr srca; - m68k_incpc (4); -{ srca = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); - if (extra & 0x8000) { - m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src; - } else { - m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff); - } -}}}}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) + { + uae_u32 src = regs.regs[(extra >> 12) & 15]; + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + put_word (dsta,src); + } + } + } + else + { + { + uaecptr srca; + m68k_incpc (4); + { + srca = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + if (extra & 0x8000) + { + m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src; + } + else + { + m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVES.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0e78_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) -{ uae_u32 src = regs.regs[(extra >> 12) & 15]; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - put_word (dsta,src); -}}else{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 src = get_word (srca); - if (extra & 0x8000) { - m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src; - } else { - m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff); - } -}}}}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) + { + uae_u32 src = regs.regs[(extra >> 12) & 15]; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + put_word (dsta,src); + } + } + else + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 src = get_word (srca); + if (extra & 0x8000) + { + m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src; + } + else + { + m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } /* MOVES.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0e79_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) -{ uae_u32 src = regs.regs[(extra >> 12) & 15]; -{ uaecptr dsta; - dsta = get_ilong (4); - put_word (dsta,src); -}}else{{ uaecptr srca; - srca = get_ilong (4); -{ uae_s16 src = get_word (srca); - if (extra & 0x8000) { - m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src; - } else { - m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff); - } -}}}}}} m68k_incpc (8); -return 13 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) + { + uae_u32 src = regs.regs[(extra >> 12) & 15]; + { + uaecptr dsta; + dsta = get_ilong (4); + put_word (dsta,src); + } + } + else + { + { + uaecptr srca; + srca = get_ilong (4); + { + uae_s16 src = get_word (srca); + if (extra & 0x8000) + { + m68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src; + } + else + { + m68k_dreg (regs, (extra >> 12) & 7) = (m68k_dreg (regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (8); + return 13 * CYCLE_UNIT / 2; } /* MOVES.L #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0e90_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) -{ uae_u32 src = regs.regs[(extra >> 12) & 15]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - put_long (dsta,src); -}}else{{ uaecptr srca; - srca = m68k_areg (regs, dstreg); -{ uae_s32 src = get_long (srca); - if (extra & 0x8000) { - m68k_areg (regs, (extra >> 12) & 7) = src; - } else { - m68k_dreg (regs, (extra >> 12) & 7) = (src); - } -}}}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) + { + uae_u32 src = regs.regs[(extra >> 12) & 15]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + put_long (dsta,src); + } + } + else + { + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + { + uae_s32 src = get_long (srca); + if (extra & 0x8000) + { + m68k_areg (regs, (extra >> 12) & 7) = src; + } + else + { + m68k_dreg (regs, (extra >> 12) & 7) = (src); + } + } + } + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* MOVES.L #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0e98_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) -{ uae_u32 src = regs.regs[(extra >> 12) & 15]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - put_long (dsta,src); -}}else{{ uaecptr srca; - srca = m68k_areg (regs, dstreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, dstreg) += 4; - if (extra & 0x8000) { - m68k_areg (regs, (extra >> 12) & 7) = src; - } else { - m68k_dreg (regs, (extra >> 12) & 7) = (src); - } -}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) + { + uae_u32 src = regs.regs[(extra >> 12) & 15]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + put_long (dsta,src); + } + } + else + { + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, dstreg) += 4; + if (extra & 0x8000) + { + m68k_areg (regs, (extra >> 12) & 7) = src; + } + else + { + m68k_dreg (regs, (extra >> 12) & 7) = (src); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* MOVES.L #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0ea0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) -{ uae_u32 src = regs.regs[(extra >> 12) & 15]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - put_long (dsta,src); -}}else{{ uaecptr srca; - srca = m68k_areg (regs, dstreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, dstreg) = srca; - if (extra & 0x8000) { - m68k_areg (regs, (extra >> 12) & 7) = src; - } else { - m68k_dreg (regs, (extra >> 12) & 7) = (src); - } -}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) + { + uae_u32 src = regs.regs[(extra >> 12) & 15]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + put_long (dsta,src); + } + } + else + { + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, dstreg) = srca; + if (extra & 0x8000) + { + m68k_areg (regs, (extra >> 12) & 7) = src; + } + else + { + m68k_dreg (regs, (extra >> 12) & 7) = (src); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* MOVES.L #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0ea8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) -{ uae_u32 src = regs.regs[(extra >> 12) & 15]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - put_long (dsta,src); -}}else{{ uaecptr srca; - srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s32 src = get_long (srca); - if (extra & 0x8000) { - m68k_areg (regs, (extra >> 12) & 7) = src; - } else { - m68k_dreg (regs, (extra >> 12) & 7) = (src); - } -}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) + { + uae_u32 src = regs.regs[(extra >> 12) & 15]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + put_long (dsta,src); + } + } + else + { + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s32 src = get_long (srca); + if (extra & 0x8000) + { + m68k_areg (regs, (extra >> 12) & 7) = src; + } + else + { + m68k_dreg (regs, (extra >> 12) & 7) = (src); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* MOVES.L #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0eb0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) -{ uae_u32 src = regs.regs[(extra >> 12) & 15]; -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - put_long (dsta,src); -}}}else{{ uaecptr srca; - m68k_incpc (4); -{ srca = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); - if (extra & 0x8000) { - m68k_areg (regs, (extra >> 12) & 7) = src; - } else { - m68k_dreg (regs, (extra >> 12) & 7) = (src); - } -}}}}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) + { + uae_u32 src = regs.regs[(extra >> 12) & 15]; + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + put_long (dsta,src); + } + } + } + else + { + { + uaecptr srca; + m68k_incpc (4); + { + srca = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + if (extra & 0x8000) + { + m68k_areg (regs, (extra >> 12) & 7) = src; + } + else + { + m68k_dreg (regs, (extra >> 12) & 7) = (src); + } + } + } + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVES.L #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0eb8_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) -{ uae_u32 src = regs.regs[(extra >> 12) & 15]; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - put_long (dsta,src); -}}else{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (4); -{ uae_s32 src = get_long (srca); - if (extra & 0x8000) { - m68k_areg (regs, (extra >> 12) & 7) = src; - } else { - m68k_dreg (regs, (extra >> 12) & 7) = (src); - } -}}}}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) + { + uae_u32 src = regs.regs[(extra >> 12) & 15]; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + put_long (dsta,src); + } + } + else + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (4); + { + uae_s32 src = get_long (srca); + if (extra & 0x8000) + { + m68k_areg (regs, (extra >> 12) & 7) = src; + } + else + { + m68k_dreg (regs, (extra >> 12) & 7) = (src); + } + } + } + } + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } /* MOVES.L #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0eb9_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) -{ uae_u32 src = regs.regs[(extra >> 12) & 15]; -{ uaecptr dsta; - dsta = get_ilong (4); - put_long (dsta,src); -}}else{{ uaecptr srca; - srca = get_ilong (4); -{ uae_s32 src = get_long (srca); - if (extra & 0x8000) { - m68k_areg (regs, (extra >> 12) & 7) = src; - } else { - m68k_dreg (regs, (extra >> 12) & 7) = (src); - } -}}}}}} m68k_incpc (8); -return 13 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) + { + uae_u32 src = regs.regs[(extra >> 12) & 15]; + { + uaecptr dsta; + dsta = get_ilong (4); + put_long (dsta,src); + } + } + else + { + { + uaecptr srca; + srca = get_ilong (4); + { + uae_s32 src = get_long (srca); + if (extra & 0x8000) + { + m68k_areg (regs, (extra >> 12) & 7) = src; + } + else + { + m68k_dreg (regs, (extra >> 12) & 7) = (src); + } + } + } + } + } + } + } + m68k_incpc (8); + return 13 * CYCLE_UNIT / 2; } /* CAS.L #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0ed0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); -{ int ru = (src >> 6) & 7; - int rc = src & 7; -{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(m68k_dreg (regs, rc))); -{ int flgs = ((uae_s32)(m68k_dreg (regs, rc))) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(m68k_dreg (regs, rc))) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); - m68k_incpc (4); - if (GET_ZFLG ()){ - put_long (dsta, (m68k_dreg (regs, ru))); - }else{ - put_long (dsta, dst); - m68k_dreg(regs, rc) = dst; -}}}}}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + { + int ru = (src >> 6) & 7; + int rc = src & 7; + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(m68k_dreg (regs, rc))); + { + int flgs = ((uae_s32)(m68k_dreg (regs, rc))) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(m68k_dreg (regs, rc))) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + m68k_incpc (4); + if (GET_ZFLG ()) + { + put_long (dsta, (m68k_dreg (regs, ru))); + } + else + { + put_long (dsta, dst); + m68k_dreg(regs, rc) = dst; + } + } + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* CAS.L #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0ed8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; -{ int ru = (src >> 6) & 7; - int rc = src & 7; -{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(m68k_dreg (regs, rc))); -{ int flgs = ((uae_s32)(m68k_dreg (regs, rc))) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(m68k_dreg (regs, rc))) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); - m68k_incpc (4); - if (GET_ZFLG ()){ - put_long (dsta, (m68k_dreg (regs, ru))); - }else{ - put_long (dsta, dst); - m68k_dreg(regs, rc) = dst; -}}}}}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + { + int ru = (src >> 6) & 7; + int rc = src & 7; + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(m68k_dreg (regs, rc))); + { + int flgs = ((uae_s32)(m68k_dreg (regs, rc))) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(m68k_dreg (regs, rc))) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + m68k_incpc (4); + if (GET_ZFLG ()) + { + put_long (dsta, (m68k_dreg (regs, ru))); + } + else + { + put_long (dsta, dst); + m68k_dreg(regs, rc) = dst; + } + } + } + } + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* CAS.L #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0ee0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; -{ int ru = (src >> 6) & 7; - int rc = src & 7; -{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(m68k_dreg (regs, rc))); -{ int flgs = ((uae_s32)(m68k_dreg (regs, rc))) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(m68k_dreg (regs, rc))) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); - m68k_incpc (4); - if (GET_ZFLG ()){ - put_long (dsta, (m68k_dreg (regs, ru))); - }else{ - put_long (dsta, dst); - m68k_dreg(regs, rc) = dst; -}}}}}}}}return 19 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + { + int ru = (src >> 6) & 7; + int rc = src & 7; + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(m68k_dreg (regs, rc))); + { + int flgs = ((uae_s32)(m68k_dreg (regs, rc))) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(m68k_dreg (regs, rc))) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + m68k_incpc (4); + if (GET_ZFLG ()) + { + put_long (dsta, (m68k_dreg (regs, ru))); + } + else + { + put_long (dsta, dst); + m68k_dreg(regs, rc) = dst; + } + } + } + } + } + } + } + } + return 19 * CYCLE_UNIT / 2; } /* CAS.L #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0ee8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s32 dst = get_long (dsta); -{ int ru = (src >> 6) & 7; - int rc = src & 7; -{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(m68k_dreg (regs, rc))); -{ int flgs = ((uae_s32)(m68k_dreg (regs, rc))) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(m68k_dreg (regs, rc))) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); - m68k_incpc (6); - if (GET_ZFLG ()){ - put_long (dsta, (m68k_dreg (regs, ru))); - }else{ - put_long (dsta, dst); - m68k_dreg(regs, rc) = dst; -}}}}}}}}return 26 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s32 dst = get_long (dsta); + { + int ru = (src >> 6) & 7; + int rc = src & 7; + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(m68k_dreg (regs, rc))); + { + int flgs = ((uae_s32)(m68k_dreg (regs, rc))) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(m68k_dreg (regs, rc))) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + m68k_incpc (6); + if (GET_ZFLG ()) + { + put_long (dsta, (m68k_dreg (regs, ru))); + } + else + { + put_long (dsta, dst); + m68k_dreg(regs, rc) = dst; + } + } + } + } + } + } + } + } + return 26 * CYCLE_UNIT / 2; } /* CAS.L #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0ef0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s32 dst = get_long (dsta); -{ int ru = (src >> 6) & 7; - int rc = src & 7; -{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(m68k_dreg (regs, rc))); -{ int flgs = ((uae_s32)(m68k_dreg (regs, rc))) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(m68k_dreg (regs, rc))) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); - if (GET_ZFLG ()){ - put_long (dsta, (m68k_dreg (regs, ru))); - }else{ - put_long (dsta, dst); - m68k_dreg(regs, rc) = dst; -}}}}}}}}}return 21 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s32 dst = get_long (dsta); + { + int ru = (src >> 6) & 7; + int rc = src & 7; + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(m68k_dreg (regs, rc))); + { + int flgs = ((uae_s32)(m68k_dreg (regs, rc))) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(m68k_dreg (regs, rc))) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + if (GET_ZFLG ()) + { + put_long (dsta, (m68k_dreg (regs, ru))); + } + else + { + put_long (dsta, dst); + m68k_dreg(regs, rc) = dst; + } + } + } + } + } + } + } + } + } + return 21 * CYCLE_UNIT / 2; } /* CAS.L #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0ef8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s32 dst = get_long (dsta); -{ int ru = (src >> 6) & 7; - int rc = src & 7; -{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(m68k_dreg (regs, rc))); -{ int flgs = ((uae_s32)(m68k_dreg (regs, rc))) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(m68k_dreg (regs, rc))) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); - m68k_incpc (6); - if (GET_ZFLG ()){ - put_long (dsta, (m68k_dreg (regs, ru))); - }else{ - put_long (dsta, dst); - m68k_dreg(regs, rc) = dst; -}}}}}}}}return 18 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s32 dst = get_long (dsta); + { + int ru = (src >> 6) & 7; + int rc = src & 7; + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(m68k_dreg (regs, rc))); + { + int flgs = ((uae_s32)(m68k_dreg (regs, rc))) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(m68k_dreg (regs, rc))) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + m68k_incpc (6); + if (GET_ZFLG ()) + { + put_long (dsta, (m68k_dreg (regs, ru))); + } + else + { + put_long (dsta, dst); + m68k_dreg(regs, rc) = dst; + } + } + } + } + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* CAS.L #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0ef9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s32 dst = get_long (dsta); -{ int ru = (src >> 6) & 7; - int rc = src & 7; -{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(m68k_dreg (regs, rc))); -{ int flgs = ((uae_s32)(m68k_dreg (regs, rc))) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(m68k_dreg (regs, rc))) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); - m68k_incpc (8); - if (GET_ZFLG ()){ - put_long (dsta, (m68k_dreg (regs, ru))); - }else{ - put_long (dsta, dst); - m68k_dreg(regs, rc) = dst; -}}}}}}}}return 19 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s32 dst = get_long (dsta); + { + int ru = (src >> 6) & 7; + int rc = src & 7; + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(m68k_dreg (regs, rc))); + { + int flgs = ((uae_s32)(m68k_dreg (regs, rc))) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(m68k_dreg (regs, rc))) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + m68k_incpc (8); + if (GET_ZFLG ()) + { + put_long (dsta, (m68k_dreg (regs, ru))); + } + else + { + put_long (dsta, dst); + m68k_dreg(regs, rc) = dst; + } + } + } + } + } + } + } + } + return 19 * CYCLE_UNIT / 2; } /* CAS2.L #.L */ uae_u32 REGPARAM2 CPUFUNC(op_0efc_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 extra; - extra = get_ilong (2); - uae_u32 rn1 = regs.regs[(extra >> 28) & 15]; - uae_u32 rn2 = regs.regs[(extra >> 12) & 15]; - uae_u32 dst1 = get_long (rn1), dst2 = get_long (rn2); -{uae_u32 newv = ((uae_u32)(dst1)) - ((uae_u32)(m68k_dreg (regs, (extra >> 16) & 7))); -{ int flgs = ((uae_s32)(m68k_dreg (regs, (extra >> 16) & 7))) < 0; - int flgo = ((uae_s32)(dst1)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(m68k_dreg (regs, (extra >> 16) & 7))) > ((uae_u32)(dst1))); - SET_NFLG (flgn != 0); - if (GET_ZFLG ()) { -{uae_u32 newv = ((uae_u32)(dst2)) - ((uae_u32)(m68k_dreg (regs, extra & 7))); -{ int flgs = ((uae_s32)(m68k_dreg (regs, extra & 7))) < 0; - int flgo = ((uae_s32)(dst2)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(m68k_dreg (regs, extra & 7))) > ((uae_u32)(dst2))); - SET_NFLG (flgn != 0); - if (GET_ZFLG ()) { - put_long (rn1, m68k_dreg (regs, (extra >> 22) & 7)); - put_long (rn2, m68k_dreg (regs, (extra >> 6) & 7)); - }} -}}}} if (! GET_ZFLG ()) { - m68k_dreg (regs, (extra >> 0) & 7) = dst2; - m68k_dreg (regs, (extra >> 16) & 7) = dst1; - } -}} m68k_incpc (6); -return 25 * CYCLE_UNIT / 2; + { + { + uae_s32 extra; + extra = get_ilong (2); + uae_u32 rn1 = regs.regs[(extra >> 28) & 15]; + uae_u32 rn2 = regs.regs[(extra >> 12) & 15]; + uae_u32 dst1 = get_long (rn1), dst2 = get_long (rn2); + { + uae_u32 newv = ((uae_u32)(dst1)) - ((uae_u32)(m68k_dreg (regs, (extra >> 16) & 7))); + { + int flgs = ((uae_s32)(m68k_dreg (regs, (extra >> 16) & 7))) < 0; + int flgo = ((uae_s32)(dst1)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(m68k_dreg (regs, (extra >> 16) & 7))) > ((uae_u32)(dst1))); + SET_NFLG (flgn != 0); + if (GET_ZFLG ()) + { + { + uae_u32 newv = ((uae_u32)(dst2)) - ((uae_u32)(m68k_dreg (regs, extra & 7))); + { + int flgs = ((uae_s32)(m68k_dreg (regs, extra & 7))) < 0; + int flgo = ((uae_s32)(dst2)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(m68k_dreg (regs, extra & 7))) > ((uae_u32)(dst2))); + SET_NFLG (flgn != 0); + if (GET_ZFLG ()) + { + put_long (rn1, m68k_dreg (regs, (extra >> 22) & 7)); + put_long (rn2, m68k_dreg (regs, (extra >> 6) & 7)); + } + } + } + } + } + } + if (! GET_ZFLG ()) + { + m68k_dreg (regs, (extra >> 0) & 7) = dst2; + m68k_dreg (regs, (extra >> 16) & 7) = dst1; + } + } + } + m68k_incpc (6); + return 25 * CYCLE_UNIT / 2; } /* MOVE.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1000_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (2); -}}}return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (2); + } + } + } + return 3 * CYCLE_UNIT / 2; } /* MOVE.B (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1010_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (2); -}}}}return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (2); + } + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVE.B (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1018_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (2); -}}}}return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (2); + } + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVE.B -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1020_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (2); -}}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (2); + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.B (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1028_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (4); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (4); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.B (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1030_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1038_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (4); -}}}}return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (4); + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1039_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (6); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (6); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.B (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_103a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (4); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (4); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.B (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_103b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_103c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (4); -}}}return 4 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (4); + } + } + } + return 4 * CYCLE_UNIT / 2; } /* MOVE.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1080_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (2); -}}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (2); + } + } + } + return 5 * CYCLE_UNIT / 2; } /* MOVE.B (An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1090_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (2); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (2); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.B (An)+,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1098_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (2); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (2); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.B -(An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (2); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (2); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.B (d16,An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.B (d8,An,Xn),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10b9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (6); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (6); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B (d16,PC),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10ba_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.B (d8,PC,Xn),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10bb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.B #.B,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10bc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + return 6 * CYCLE_UNIT / 2; } /* MOVE.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (2); -}}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (2); + } + } + } + return 5 * CYCLE_UNIT / 2; } /* MOVE.B (An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (2); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (2); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.B (An)+,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (2); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (2); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.B -(An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (2); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (2); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.B (d16,An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.B (d8,An,Xn),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10f8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10f9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (6); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (6); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B (d16,PC),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10fa_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.B (d8,PC,Xn),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10fb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.B #.B,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10fc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1100_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (2); -}}}return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (2); + } + } + } + return 6 * CYCLE_UNIT / 2; } /* MOVE.B (An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1110_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (2); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (2); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.B (An)+,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1118_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (2); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (2); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.B -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1120_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (2); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (2); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.B (d16,An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1128_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.B (d8,An,Xn),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1130_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1138_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1139_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (6); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (6); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B (d16,PC),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_113a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.B (d8,PC,Xn),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_113b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.B #.B,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_113c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}return 7 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVE.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1140_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVE.B (An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1150_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.B (An)+,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1158_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.B -(An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1160_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B (d16,An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1168_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (6); -}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (6); + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.B (d8,An,Xn),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1170_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (0); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (2); -}}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (0); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (2); + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1178_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (6); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (6); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1179_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (8); -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (8); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.B (d16,PC),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_117a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (6); -}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (6); + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.B (d8,PC,Xn),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_117b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (0); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (2); -}}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (0); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (2); + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.B #.B,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_117c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (6); -}}}return 7 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (6); + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVE.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_1180_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.B (An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_1190_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.B (An)+,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_1198_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.B -(An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B (d16,An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.B (d8,An,Xn),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11b9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - m68k_incpc (6); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + m68k_incpc (6); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.B (d16,PC),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11ba_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.B (d8,PC,Xn),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11bb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.B #.B,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11bc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVE.B (An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.B (An)+,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.B -(An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B (d16,An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (6); -}}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (6); + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.B (d8,An,Xn),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (0); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (2); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (0); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (2); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (6); -}}}}return 12 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (6); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (8); -}}}}return 14 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (8); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.B (d16,PC),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11fa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (6); -}}}}return 13 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (6); + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.B (d8,PC,Xn),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11fb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (0); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (2); -}}}}}return 15 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (0); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (2); + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.B #.B,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11fc_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (6); -}}}return 7 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (6); + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVE.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (6); -}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (6); + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.B (An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (6); -}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (6); + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.B (An)+,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (6); -}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (6); + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.B -(An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (6); -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (6); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.B (d16,An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (8); -}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (8); + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.B (d8,An,Xn),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_ilong (0); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}}}return 17 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_ilong (0); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + } + } + return 17 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (8); -}}}}return 14 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (8); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_ilong (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (10); -}}}}return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_ilong (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (10); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.B (d16,PC),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13fa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (8); -}}}}return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (8); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.B (d8,PC,Xn),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13fb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_ilong (0); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (4); -}}}}}return 17 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_ilong (0); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (4); + } + } + } + } + } + return 17 * CYCLE_UNIT / 2; } /* MOVE.B #.B,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13fc_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); - m68k_incpc (8); -}}}return 9 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + m68k_incpc (8); + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2000_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (2); -}}}return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + return 3 * CYCLE_UNIT / 2; } /* MOVE.L An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2008_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (2); -}}}return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + return 3 * CYCLE_UNIT / 2; } /* MOVE.L (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2010_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (2); -}}}}return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVE.L (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2018_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (2); -}}}}return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVE.L -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2020_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (2); -}}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2028_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (4); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (4); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.L (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2030_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2038_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (4); -}}}}return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (4); + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2039_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (6); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (6); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.L (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_203a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (4); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (4); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.L (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_203b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_203c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (6); -}}}return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (6); + } + } + } + return 6 * CYCLE_UNIT / 2; } /* MOVEA.L Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_2040_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (2); -}}}return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + return 3 * CYCLE_UNIT / 2; } /* MOVEA.L An,An */ uae_u32 REGPARAM2 CPUFUNC(op_2048_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (2); -}}}return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + return 3 * CYCLE_UNIT / 2; } /* MOVEA.L (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_2050_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (2); -}}}}return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVEA.L (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_2058_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (2); -}}}}return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVEA.L -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_2060_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (2); -}}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVEA.L (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_2068_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (4); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (4); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVEA.L (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_2070_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ m68k_areg (regs, dstreg) = (src); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + m68k_areg (regs, dstreg) = (src); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVEA.L (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_2078_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (4); -}}}}return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (4); + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVEA.L (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_2079_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (6); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (6); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVEA.L (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_207a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (4); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (4); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVEA.L (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_207b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ m68k_areg (regs, dstreg) = (src); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + m68k_areg (regs, dstreg) = (src); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVEA.L #.L,An */ uae_u32 REGPARAM2 CPUFUNC(op_207c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (6); -}}}return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (6); + } + } + } + return 6 * CYCLE_UNIT / 2; } /* MOVE.L Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2080_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (2); -}}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (2); + } + } + } + return 5 * CYCLE_UNIT / 2; } /* MOVE.L An,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2088_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (2); -}}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (2); + } + } + } + return 5 * CYCLE_UNIT / 2; } /* MOVE.L (An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2090_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (2); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (2); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.L (An)+,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2098_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (2); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (2); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.L -(An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (2); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (2); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.L (d16,An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.L (d8,An,Xn),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (4); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (4); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20b9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (6); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (6); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.L (d16,PC),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20ba_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.L (d8,PC,Xn),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20bb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.L #.L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20bc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (6); -}}}return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (6); + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.L Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (2); -}}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (2); + } + } + } + return 5 * CYCLE_UNIT / 2; } /* MOVE.L An,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (2); -}}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (2); + } + } + } + return 5 * CYCLE_UNIT / 2; } /* MOVE.L (An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (2); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (2); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.L (An)+,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (2); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (2); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.L -(An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (2); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (2); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.L (d16,An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.L (d8,An,Xn),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20f8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (4); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (4); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20f9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (6); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (6); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.L (d16,PC),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20fa_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.L (d8,PC,Xn),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20fb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.L #.L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20fc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (6); -}}}return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (6); + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.L Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2100_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (2); -}}}return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (2); + } + } + } + return 6 * CYCLE_UNIT / 2; } /* MOVE.L An,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2108_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (2); -}}}return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (2); + } + } + } + return 6 * CYCLE_UNIT / 2; } /* MOVE.L (An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2110_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (2); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (2); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.L (An)+,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2118_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (2); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (2); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.L -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2120_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (2); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (2); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.L (d16,An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2128_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.L (d8,An,Xn),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2130_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2138_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (4); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (4); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2139_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (6); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (6); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.L (d16,PC),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_213a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.L (d8,PC,Xn),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_213b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.L #.L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_213c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (6); -}}}return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (6); + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.L Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2140_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (4); -}}}return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (4); + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVE.L An,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2148_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (4); -}}}return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (4); + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVE.L (An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2150_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.L (An)+,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2158_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.L -(An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2160_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (4); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (4); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.L (d16,An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2168_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (6); -}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (6); + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.L (d8,An,Xn),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2170_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (0); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (2); -}}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (0); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (2); + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2178_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (6); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (6); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2179_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (8); -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (8); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.L (d16,PC),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_217a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (6); -}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (6); + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.L (d8,PC,Xn),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_217b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (0); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (2); -}}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (0); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (2); + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.L #.L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_217c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (8); -}}}return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (8); + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.L Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_2180_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.L An,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_2188_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.L (An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_2190_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } #endif @@ -8577,3994 +13357,5868 @@ uae_u32 REGPARAM2 CPUFUNC(op_2190_0)(uae_u32 opcode, struct regstruct ®s) /* MOVE.L (An)+,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_2198_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.L -(An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.L (d16,An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.L (d8,An,Xn),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21b9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - m68k_incpc (6); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + m68k_incpc (6); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.L (d16,PC),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21ba_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.L (d8,PC,Xn),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21bb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.L #.L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21bc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - m68k_incpc (6); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + m68k_incpc (6); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.L Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (4); -}}}return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (4); + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVE.L An,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (4); -}}}return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (4); + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVE.L (An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.L (An)+,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.L -(An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (4); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (4); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.L (d16,An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (6); -}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (6); + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.L (d8,An,Xn),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (0); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (2); -}}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (0); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (2); + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (6); -}}}}return 12 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (6); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (8); -}}}}return 14 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (8); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.L (d16,PC),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21fa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (6); -}}}}return 13 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (6); + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.L (d8,PC,Xn),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21fb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (0); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (2); -}}}}}return 15 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (0); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (2); + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.L #.L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21fc_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (8); -}}}return 9 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (8); + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.L Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (6); -}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (6); + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.L An,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (6); -}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (6); + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.L (An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (6); -}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (6); + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.L (An)+,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (6); -}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (6); + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.L -(An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (6); -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (6); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.L (d16,An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (8); -}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (8); + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.L (d8,An,Xn),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_ilong (0); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (4); -}}}}}return 17 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_ilong (0); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (4); + } + } + } + } + } + return 17 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (8); -}}}}return 14 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (8); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_ilong (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (10); -}}}}return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_ilong (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (10); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.L (d16,PC),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23fa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (8); -}}}}return 15 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (8); + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.L (d8,PC,Xn),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23fb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_ilong (0); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (4); -}}}}}return 17 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_ilong (0); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (4); + } + } + } + } + } + return 17 * CYCLE_UNIT / 2; } /* MOVE.L #.L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23fc_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = get_ilong (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); - m68k_incpc (10); -}}}return 11 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = get_ilong (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + m68k_incpc (10); + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3000_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (2); -}}}return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (2); + } + } + } + return 3 * CYCLE_UNIT / 2; } /* MOVE.W An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3008_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (2); -}}}return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (2); + } + } + } + return 3 * CYCLE_UNIT / 2; } /* MOVE.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3010_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (2); -}}}}return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (2); + } + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVE.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3018_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (2); -}}}}return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (2); + } + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVE.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3020_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (2); -}}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (2); + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3028_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (4); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (4); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3030_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3038_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (4); -}}}}return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (4); + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3039_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (6); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (6); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_303a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (4); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (4); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_303b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_303c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (4); -}}}return 4 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (4); + } + } + } + return 4 * CYCLE_UNIT / 2; } /* MOVEA.W Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_3040_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (2); -}}}return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (2); + } + } + } + return 3 * CYCLE_UNIT / 2; } /* MOVEA.W An,An */ uae_u32 REGPARAM2 CPUFUNC(op_3048_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (2); -}}}return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (2); + } + } + } + return 3 * CYCLE_UNIT / 2; } /* MOVEA.W (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_3050_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (2); -}}}}return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (2); + } + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVEA.W (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_3058_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (2); -}}}}return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (2); + } + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVEA.W -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_3060_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (2); -}}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (2); + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVEA.W (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_3068_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (4); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (4); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVEA.W (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_3070_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVEA.W (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_3078_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (4); -}}}}return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (4); + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVEA.W (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_3079_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (6); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (6); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVEA.W (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_307a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (4); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (4); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVEA.W (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_307b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVEA.W #.W,An */ uae_u32 REGPARAM2 CPUFUNC(op_307c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (4); -}}}return 4 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (4); + } + } + } + return 4 * CYCLE_UNIT / 2; } /* MOVE.W Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3080_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (2); -}}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (2); + } + } + } + return 5 * CYCLE_UNIT / 2; } /* MOVE.W An,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3088_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (2); -}}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (2); + } + } + } + return 5 * CYCLE_UNIT / 2; } /* MOVE.W (An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3090_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (2); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (2); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.W (An)+,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3098_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (2); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (2); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.W -(An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (2); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (2); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.W (d16,An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.W (d8,An,Xn),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30b9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (6); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (6); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W (d16,PC),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30ba_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.W (d8,PC,Xn),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30bb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30bc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + return 6 * CYCLE_UNIT / 2; } /* MOVE.W Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (2); -}}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (2); + } + } + } + return 5 * CYCLE_UNIT / 2; } /* MOVE.W An,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (2); -}}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (2); + } + } + } + return 5 * CYCLE_UNIT / 2; } /* MOVE.W (An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (2); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (2); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.W (An)+,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (2); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (2); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.W -(An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (2); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (2); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.W (d16,An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.W (d8,An,Xn),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30f8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30f9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (6); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (6); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W (d16,PC),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30fa_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.W (d8,PC,Xn),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30fb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30fc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.W Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3100_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (2); -}}}return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (2); + } + } + } + return 6 * CYCLE_UNIT / 2; } /* MOVE.W An,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3108_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (2); -}}}return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (2); + } + } + } + return 6 * CYCLE_UNIT / 2; } /* MOVE.W (An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3110_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (2); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (2); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.W (An)+,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3118_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (2); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (2); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.W -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3120_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (2); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (2); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.W (d16,An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3128_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.W (d8,An,Xn),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3130_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3138_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3139_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (6); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (6); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W (d16,PC),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_313a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.W (d8,PC,Xn),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_313b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_313c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}return 7 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVE.W Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3140_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + return 6 * CYCLE_UNIT / 2; } /* MOVE.W An,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3148_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + return 6 * CYCLE_UNIT / 2; } /* MOVE.W (An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3150_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.W (An)+,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3158_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.W -(An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3160_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W (d16,An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3168_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (6); -}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (6); + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.W (d8,An,Xn),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3170_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (0); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (2); -}}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (0); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (2); + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3178_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (6); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (6); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3179_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (8); -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (8); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.W (d16,PC),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_317a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (6); -}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (6); + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.W (d8,PC,Xn),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_317b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (0); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (2); -}}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (0); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (2); + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_317c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (6); -}}}return 7 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (6); + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVE.W Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_3180_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.W An,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_3188_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.W (An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_3190_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.W (An)+,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_3198_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.W -(An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W (d16,An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.W (d8,An,Xn),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31b9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - m68k_incpc (6); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + m68k_incpc (6); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.W (d16,PC),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31ba_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.W (d8,PC,Xn),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31bb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31bc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.W Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVE.W An,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVE.W (An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.W (An)+,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* MOVE.W -(An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W (d16,An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (6); -}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (6); + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.W (d8,An,Xn),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (0); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (2); -}}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (0); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (2); + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (6); -}}}}return 12 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (6); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (8); -}}}}return 14 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (8); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.W (d16,PC),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31fa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (6); -}}}}return 13 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (6); + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.W (d8,PC,Xn),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31fb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (0); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (2); -}}}}}return 15 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (0); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (2); + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31fc_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (6); -}}}return 7 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (6); + } + } + } + return 7 * CYCLE_UNIT / 2; } /* MOVE.W Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (6); -}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (6); + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.W An,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (6); -}}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (6); + } + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVE.W (An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (6); -}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (6); + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.W (An)+,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (6); -}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (6); + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MOVE.W -(An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (6); -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (6); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.W (d16,An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (8); -}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (8); + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.W (d8,An,Xn),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_ilong (0); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}}}return 17 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_ilong (0); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + } + } + return 17 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (8); -}}}}return 14 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (8); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_ilong (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (10); -}}}}return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_ilong (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (10); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.W (d16,PC),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33fa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (8); -}}}}return 15 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (8); + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVE.W (d8,PC,Xn),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33fb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_ilong (0); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (4); -}}}}}return 17 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_ilong (0); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (4); + } + } + } + } + } + return 17 * CYCLE_UNIT / 2; } /* MOVE.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33fc_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); - m68k_incpc (8); -}}}return 9 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + m68k_incpc (8); + } + } + } + return 9 * CYCLE_UNIT / 2; } /* NEGX.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4000_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((newv) & 0xff); -}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* NEGX.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4010_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (srca,newv); -}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (srca,newv); + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* NEGX.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4018_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (srca,newv); -}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (srca,newv); + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* NEGX.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4020_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (srca,newv); -}}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (srca,newv); + } + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* NEGX.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4028_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (srca,newv); -}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (srca,newv); + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* NEGX.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4030_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (srca,newv); -}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (srca,newv); + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* NEGX.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4038_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (srca,newv); -}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (srca,newv); + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* NEGX.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4039_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (srca,newv); -}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (srca,newv); + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* NEGX.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4040_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((newv) & 0xffff); -}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* NEGX.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4050_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (srca,newv); -}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (srca,newv); + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* NEGX.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4058_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (srca,newv); -}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (srca,newv); + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* NEGX.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4060_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (srca,newv); -}}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (srca,newv); + } + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* NEGX.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4068_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (srca,newv); -}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (srca,newv); + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* NEGX.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4070_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (srca,newv); -}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (srca,newv); + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* NEGX.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4078_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (srca,newv); -}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (srca,newv); + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* NEGX.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4079_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (srca,newv); -}}}}} m68k_incpc (6); -return 15 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (srca,newv); + } + } + } + } + } + m68k_incpc (6); + return 15 * CYCLE_UNIT / 2; } /* NEGX.L Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4080_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, srcreg) = (newv); -}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, srcreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* NEGX.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4090_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (srca,newv); -}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (srca,newv); + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* NEGX.L (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4098_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (srca,newv); -}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (srca,newv); + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* NEGX.L -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_40a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (srca,newv); -}}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (srca,newv); + } + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* NEGX.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_40a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (srca,newv); -}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (srca,newv); + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* NEGX.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_40b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (srca,newv); -}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (srca,newv); + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* NEGX.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_40b8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (srca,newv); -}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (srca,newv); + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* NEGX.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_40b9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (srca,newv); -}}}}} m68k_incpc (6); -return 15 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (srca,newv); + } + } + } + } + } + m68k_incpc (6); + return 15 * CYCLE_UNIT / 2; } /* MVSR2.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_40c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ MakeSR (regs); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((regs.sr) & 0xffff); -}}} m68k_incpc (2); -return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + MakeSR (regs); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((regs.sr) & 0xffff); + } + } + } + m68k_incpc (2); + return 5 * CYCLE_UNIT / 2; } /* MVSR2.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_40d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - MakeSR (regs); - put_word (srca,regs.sr); -}}} m68k_incpc (2); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + MakeSR (regs); + put_word (srca,regs.sr); + } + } + } + m68k_incpc (2); + return 9 * CYCLE_UNIT / 2; } /* MVSR2.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_40d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += 2; - MakeSR (regs); - put_word (srca,regs.sr); -}}} m68k_incpc (2); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += 2; + MakeSR (regs); + put_word (srca,regs.sr); + } + } + } + m68k_incpc (2); + return 9 * CYCLE_UNIT / 2; } /* MVSR2.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_40e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - m68k_areg (regs, srcreg) = srca; - MakeSR (regs); - put_word (srca,regs.sr); -}}} m68k_incpc (2); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + m68k_areg (regs, srcreg) = srca; + MakeSR (regs); + put_word (srca,regs.sr); + } + } + } + m68k_incpc (2); + return 9 * CYCLE_UNIT / 2; } /* MVSR2.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_40e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); - MakeSR (regs); - put_word (srca,regs.sr); -}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + MakeSR (regs); + put_word (srca,regs.sr); + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* MVSR2.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_40f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); - MakeSR (regs); - put_word (srca,regs.sr); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + MakeSR (regs); + put_word (srca,regs.sr); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MVSR2.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_40f8_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); - MakeSR (regs); - put_word (srca,regs.sr); -}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + MakeSR (regs); + put_word (srca,regs.sr); + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* MVSR2.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_40f9_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = get_ilong (2); - MakeSR (regs); - put_word (srca,regs.sr); -}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = get_ilong (2); + MakeSR (regs); + put_word (srca,regs.sr); + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } /* CHK.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4100_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - m68k_incpc (2); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 6 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 8 * CYCLE_UNIT / 2; - } -}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + m68k_incpc (2); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 6 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 8 * CYCLE_UNIT / 2; + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* CHK.L (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4110_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - m68k_incpc (2); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 10 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 12 * CYCLE_UNIT / 2; - } -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + m68k_incpc (2); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 10 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* CHK.L (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4118_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - m68k_incpc (2); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 10 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 12 * CYCLE_UNIT / 2; - } -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + m68k_incpc (2); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 10 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* CHK.L -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4120_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - m68k_incpc (2); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 11 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 13 * CYCLE_UNIT / 2; - } -}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + m68k_incpc (2); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 11 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 13 * CYCLE_UNIT / 2; + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* CHK.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4128_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - m68k_incpc (4); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 12 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 14 * CYCLE_UNIT / 2; - } -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + m68k_incpc (4); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 14 * CYCLE_UNIT / 2; + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* CHK.L (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4130_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 14 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 16 * CYCLE_UNIT / 2; - } -}}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 14 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 16 * CYCLE_UNIT / 2; + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* CHK.L (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4138_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - m68k_incpc (4); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 12 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 14 * CYCLE_UNIT / 2; - } -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + m68k_incpc (4); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 14 * CYCLE_UNIT / 2; + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* CHK.L (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4139_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - m68k_incpc (6); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 13 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 15 * CYCLE_UNIT / 2; - } -}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + m68k_incpc (6); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 13 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 15 * CYCLE_UNIT / 2; + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* CHK.L (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_413a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - m68k_incpc (4); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 12 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 14 * CYCLE_UNIT / 2; - } -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + m68k_incpc (4); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 14 * CYCLE_UNIT / 2; + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* CHK.L (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_413b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 14 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 16 * CYCLE_UNIT / 2; - } -}}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 14 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 16 * CYCLE_UNIT / 2; + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* CHK.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_413c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - m68k_incpc (6); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 11 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 13 * CYCLE_UNIT / 2; - } -}}}return 13 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + m68k_incpc (6); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 11 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 13 * CYCLE_UNIT / 2; + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* CHK.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4180_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (2); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 6 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 8 * CYCLE_UNIT / 2; - } -}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (2); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 6 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 8 * CYCLE_UNIT / 2; + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* CHK.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4190_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (2); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 10 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 12 * CYCLE_UNIT / 2; - } -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (2); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 10 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* CHK.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4198_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (2); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 10 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 12 * CYCLE_UNIT / 2; - } -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (2); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 10 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* CHK.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (2); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 11 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 13 * CYCLE_UNIT / 2; - } -}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (2); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 11 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 13 * CYCLE_UNIT / 2; + } + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* CHK.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (4); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 12 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 14 * CYCLE_UNIT / 2; - } -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (4); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 14 * CYCLE_UNIT / 2; + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* CHK.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 14 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 16 * CYCLE_UNIT / 2; - } -}}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 14 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 16 * CYCLE_UNIT / 2; + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* CHK.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (4); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 12 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 14 * CYCLE_UNIT / 2; - } -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (4); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 14 * CYCLE_UNIT / 2; + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* CHK.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41b9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (6); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 13 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 15 * CYCLE_UNIT / 2; - } -}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (6); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 13 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 15 * CYCLE_UNIT / 2; + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* CHK.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41ba_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (4); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 12 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 14 * CYCLE_UNIT / 2; - } -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (4); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 14 * CYCLE_UNIT / 2; + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* CHK.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41bb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 14 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 16 * CYCLE_UNIT / 2; - } -}}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 14 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 16 * CYCLE_UNIT / 2; + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* CHK.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41bc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (4); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 9 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 11 * CYCLE_UNIT / 2; - } -}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (4); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 9 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 11 * CYCLE_UNIT / 2; + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* LEA.L (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_41d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ m68k_areg (regs, dstreg) = (srca); -}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + m68k_areg (regs, dstreg) = (srca); + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* LEA.L (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_41e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ m68k_areg (regs, dstreg) = (srca); -}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + m68k_areg (regs, dstreg) = (srca); + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* LEA.L (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_41f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ m68k_areg (regs, dstreg) = (srca); -}}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + m68k_areg (regs, dstreg) = (srca); + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* LEA.L (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_41f8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ m68k_areg (regs, dstreg) = (srca); -}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + m68k_areg (regs, dstreg) = (srca); + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* LEA.L (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_41f9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ m68k_areg (regs, dstreg) = (srca); -}}} m68k_incpc (6); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + m68k_areg (regs, dstreg) = (srca); + } + } + } + m68k_incpc (6); + return 8 * CYCLE_UNIT / 2; } /* LEA.L (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_41fa_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ m68k_areg (regs, dstreg) = (srca); -}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + m68k_areg (regs, dstreg) = (srca); + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* LEA.L (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_41fb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ m68k_areg (regs, dstreg) = (srca); -}}}}return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + m68k_areg (regs, dstreg) = (srca); + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* CLR.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4200_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((0) & 0xff); -}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((0) & 0xff); + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* CLR.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4210_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - put_byte (srca,0); -}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte (srca,0); + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* CLR.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4218_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - put_byte (srca,0); -}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte (srca,0); + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* CLR.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4220_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - put_byte (srca,0); -}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte (srca,0); + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* CLR.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4228_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - put_byte (srca,0); -}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte (srca,0); + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* CLR.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4230_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - put_byte (srca,0); -}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte (srca,0); + } + } + } + return 11 * CYCLE_UNIT / 2; } /* CLR.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4238_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - put_byte (srca,0); -}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte (srca,0); + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* CLR.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4239_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - put_byte (srca,0); -}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte (srca,0); + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* CLR.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4240_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((0) & 0xffff); -}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((0) & 0xffff); + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* CLR.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4250_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - put_word (srca,0); -}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word (srca,0); + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* CLR.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4258_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - put_word (srca,0); -}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word (srca,0); + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* CLR.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4260_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - m68k_areg (regs, srcreg) = srca; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - put_word (srca,0); -}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word (srca,0); + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* CLR.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4268_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - put_word (srca,0); -}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word (srca,0); + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* CLR.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4270_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - put_word (srca,0); -}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word (srca,0); + } + } + } + return 11 * CYCLE_UNIT / 2; } /* CLR.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4278_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - put_word (srca,0); -}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word (srca,0); + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* CLR.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4279_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - put_word (srca,0); -}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word (srca,0); + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* CLR.L Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4280_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - m68k_dreg (regs, srcreg) = (0); -}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + m68k_dreg (regs, srcreg) = (0); + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* CLR.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4290_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - put_long (srca,0); -}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long (srca,0); + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* CLR.L (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4298_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - put_long (srca,0); -}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long (srca,0); + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* CLR.L -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_42a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - m68k_areg (regs, srcreg) = srca; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - put_long (srca,0); -}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long (srca,0); + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* CLR.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_42a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - put_long (srca,0); -}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long (srca,0); + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* CLR.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_42b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - put_long (srca,0); -}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long (srca,0); + } + } + } + return 11 * CYCLE_UNIT / 2; } /* CLR.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_42b8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - put_long (srca,0); -}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long (srca,0); + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* CLR.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_42b9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - put_long (srca,0); -}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long (srca,0); + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* MVSR2.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_42c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ MakeSR (regs); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((regs.sr & 0xff) & 0xffff); -}} m68k_incpc (2); -return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + MakeSR (regs); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((regs.sr & 0xff) & 0xffff); + } + } + m68k_incpc (2); + return 5 * CYCLE_UNIT / 2; } /* MVSR2.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_42d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - MakeSR (regs); - put_word (srca,regs.sr & 0xff); -}} m68k_incpc (2); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + MakeSR (regs); + put_word (srca,regs.sr & 0xff); + } + } + m68k_incpc (2); + return 9 * CYCLE_UNIT / 2; } /* MVSR2.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_42d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += 2; - MakeSR (regs); - put_word (srca,regs.sr & 0xff); -}} m68k_incpc (2); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += 2; + MakeSR (regs); + put_word (srca,regs.sr & 0xff); + } + } + m68k_incpc (2); + return 9 * CYCLE_UNIT / 2; } /* MVSR2.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_42e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - m68k_areg (regs, srcreg) = srca; - MakeSR (regs); - put_word (srca,regs.sr & 0xff); -}} m68k_incpc (2); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + m68k_areg (regs, srcreg) = srca; + MakeSR (regs); + put_word (srca,regs.sr & 0xff); + } + } + m68k_incpc (2); + return 9 * CYCLE_UNIT / 2; } /* MVSR2.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_42e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); - MakeSR (regs); - put_word (srca,regs.sr & 0xff); -}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + MakeSR (regs); + put_word (srca,regs.sr & 0xff); + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* MVSR2.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_42f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); - MakeSR (regs); - put_word (srca,regs.sr & 0xff); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + MakeSR (regs); + put_word (srca,regs.sr & 0xff); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MVSR2.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_42f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); - MakeSR (regs); - put_word (srca,regs.sr & 0xff); -}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + MakeSR (regs); + put_word (srca,regs.sr & 0xff); + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* MVSR2.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_42f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); - MakeSR (regs); - put_word (srca,regs.sr & 0xff); -}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + MakeSR (regs); + put_word (srca,regs.sr & 0xff); + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } #endif @@ -12573,4102 +19227,6156 @@ return 12 * CYCLE_UNIT / 2; /* NEG.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4400_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((dst) & 0xff); -}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((dst) & 0xff); + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* NEG.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4410_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (srca,dst); -}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (srca,dst); + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* NEG.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4418_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (srca,dst); -}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (srca,dst); + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* NEG.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4420_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (srca,dst); -}}}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (srca,dst); + } + } + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* NEG.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4428_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (srca,dst); -}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (srca,dst); + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* NEG.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4430_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (srca,dst); -}}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (srca,dst); + } + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* NEG.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4438_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (srca,dst); -}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (srca,dst); + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* NEG.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4439_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (srca,dst); -}}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (srca,dst); + } + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* NEG.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4440_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((dst) & 0xffff); -}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((dst) & 0xffff); + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* NEG.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4450_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (srca,dst); -}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (srca,dst); + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* NEG.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4458_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (srca,dst); -}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (srca,dst); + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* NEG.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4460_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (srca,dst); -}}}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (srca,dst); + } + } + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* NEG.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4468_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (srca,dst); -}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (srca,dst); + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* NEG.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4470_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (srca,dst); -}}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (srca,dst); + } + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* NEG.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4478_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (srca,dst); -}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (srca,dst); + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* NEG.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4479_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (srca,dst); -}}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (srca,dst); + } + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* NEG.L Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4480_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, srcreg) = (dst); -}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, srcreg) = (dst); + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* NEG.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4490_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (srca,dst); -}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (srca,dst); + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* NEG.L (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4498_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (srca,dst); -}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (srca,dst); + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* NEG.L -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_44a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (srca,dst); -}}}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (srca,dst); + } + } + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* NEG.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_44a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (srca,dst); -}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (srca,dst); + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* NEG.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_44b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (srca,dst); -}}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (srca,dst); + } + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* NEG.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_44b8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (srca,dst); -}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (srca,dst); + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* NEG.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_44b9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (srca,dst); -}}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (srca,dst); + } + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* MV2SR.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_44c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR (regs); -}} m68k_incpc (2); -return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR (regs); + } + } + m68k_incpc (2); + return 5 * CYCLE_UNIT / 2; } /* MV2SR.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_44d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR (regs); -}}} m68k_incpc (2); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR (regs); + } + } + } + m68k_incpc (2); + return 9 * CYCLE_UNIT / 2; } /* MV2SR.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_44d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR (regs); -}}} m68k_incpc (2); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR (regs); + } + } + } + m68k_incpc (2); + return 9 * CYCLE_UNIT / 2; } /* MV2SR.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_44e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR (regs); -}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR (regs); + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* MV2SR.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_44e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR (regs); -}}} m68k_incpc (4); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR (regs); + } + } + } + m68k_incpc (4); + return 11 * CYCLE_UNIT / 2; } /* MV2SR.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_44f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR (regs); -}}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR (regs); + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MV2SR.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_44f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR (regs); -}}} m68k_incpc (4); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR (regs); + } + } + } + m68k_incpc (4); + return 11 * CYCLE_UNIT / 2; } /* MV2SR.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_44f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR (regs); -}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR (regs); + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } /* MV2SR.B (d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_44fa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR (regs); -}}} m68k_incpc (4); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR (regs); + } + } + } + m68k_incpc (4); + return 11 * CYCLE_UNIT / 2; } /* MV2SR.B (d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_44fb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR (regs); -}}}}return 13 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR (regs); + } + } + } + } + return 13 * CYCLE_UNIT / 2; } /* MV2SR.B #.B */ uae_u32 REGPARAM2 CPUFUNC(op_44fc_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR (regs); -}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR (regs); + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* NOT.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4600_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((dst) & 0xff); -}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((dst) & 0xff); + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* NOT.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4610_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - put_byte (srca,dst); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte (srca,dst); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* NOT.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4618_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - put_byte (srca,dst); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte (srca,dst); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* NOT.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4620_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - put_byte (srca,dst); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte (srca,dst); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* NOT.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4628_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - put_byte (srca,dst); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte (srca,dst); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* NOT.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4630_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - put_byte (srca,dst); -}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte (srca,dst); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* NOT.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4638_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - put_byte (srca,dst); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte (srca,dst); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* NOT.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4639_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - put_byte (srca,dst); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte (srca,dst); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* NOT.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4640_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((dst) & 0xffff); -}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((dst) & 0xffff); + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* NOT.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4650_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - put_word (srca,dst); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word (srca,dst); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* NOT.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4658_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - put_word (srca,dst); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word (srca,dst); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* NOT.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4660_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - put_word (srca,dst); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word (srca,dst); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* NOT.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4668_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - put_word (srca,dst); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word (srca,dst); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* NOT.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4670_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - put_word (srca,dst); -}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word (srca,dst); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* NOT.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4678_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - put_word (srca,dst); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word (srca,dst); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* NOT.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4679_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - put_word (srca,dst); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word (srca,dst); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* NOT.L Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4680_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - m68k_dreg (regs, srcreg) = (dst); -}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + m68k_dreg (regs, srcreg) = (dst); + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* NOT.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4690_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - put_long (srca,dst); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long (srca,dst); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* NOT.L (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4698_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - put_long (srca,dst); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long (srca,dst); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* NOT.L -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_46a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - put_long (srca,dst); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long (srca,dst); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* NOT.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_46a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - put_long (srca,dst); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long (srca,dst); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* NOT.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_46b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - put_long (srca,dst); -}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long (srca,dst); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* NOT.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_46b8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - put_long (srca,dst); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long (srca,dst); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* NOT.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_46b9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - put_long (srca,dst); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long (srca,dst); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* MV2SR.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_46c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 src = m68k_dreg (regs, srcreg); - regs.sr = src; - MakeFromSR (regs); -}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + regs.sr = src; + MakeFromSR (regs); + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* MV2SR.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_46d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - regs.sr = src; - MakeFromSR (regs); -}}}} m68k_incpc (2); -return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + regs.sr = src; + MakeFromSR (regs); + } + } + } + } + m68k_incpc (2); + return 15 * CYCLE_UNIT / 2; } /* MV2SR.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_46d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; - regs.sr = src; - MakeFromSR (regs); -}}}} m68k_incpc (2); -return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + regs.sr = src; + MakeFromSR (regs); + } + } + } + } + m68k_incpc (2); + return 15 * CYCLE_UNIT / 2; } /* MV2SR.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_46e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; - regs.sr = src; - MakeFromSR (regs); -}}}} m68k_incpc (2); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + regs.sr = src; + MakeFromSR (regs); + } + } + } + } + m68k_incpc (2); + return 16 * CYCLE_UNIT / 2; } /* MV2SR.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_46e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); - regs.sr = src; - MakeFromSR (regs); -}}}} m68k_incpc (4); -return 17 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + regs.sr = src; + MakeFromSR (regs); + } + } + } + } + m68k_incpc (4); + return 17 * CYCLE_UNIT / 2; } /* MV2SR.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_46f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); - regs.sr = src; - MakeFromSR (regs); -}}}}}return 19 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + regs.sr = src; + MakeFromSR (regs); + } + } + } + } + } + return 19 * CYCLE_UNIT / 2; } /* MV2SR.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_46f8_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); - regs.sr = src; - MakeFromSR (regs); -}}}} m68k_incpc (4); -return 17 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + regs.sr = src; + MakeFromSR (regs); + } + } + } + } + m68k_incpc (4); + return 17 * CYCLE_UNIT / 2; } /* MV2SR.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_46f9_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); - regs.sr = src; - MakeFromSR (regs); -}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + regs.sr = src; + MakeFromSR (regs); + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2; } /* MV2SR.W (d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_46fa_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); - regs.sr = src; - MakeFromSR (regs); -}}}} m68k_incpc (4); -return 17 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + regs.sr = src; + MakeFromSR (regs); + } + } + } + } + m68k_incpc (4); + return 17 * CYCLE_UNIT / 2; } /* MV2SR.W (d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_46fb_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); - regs.sr = src; - MakeFromSR (regs); -}}}}}return 19 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + regs.sr = src; + MakeFromSR (regs); + } + } + } + } + } + return 19 * CYCLE_UNIT / 2; } /* MV2SR.W #.W */ uae_u32 REGPARAM2 CPUFUNC(op_46fc_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 src = get_iword (2); - regs.sr = src; - MakeFromSR (regs); -}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_iword (2); + regs.sr = src; + MakeFromSR (regs); + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* NBCD.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4800_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg; - if (newv_lo > 9) { newv_lo -= 6; } - newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((newv) & 0xff); -}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) + { + newv_lo -= 6; + } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((newv) & 0xff); + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* LINK.L An,#.L */ uae_u32 REGPARAM2 CPUFUNC(op_4808_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr olda; - olda = m68k_areg (regs, 7) - 4; - m68k_areg (regs, 7) = olda; -{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 offs; - offs = get_ilong (2); - put_long (olda,src); - m68k_areg (regs, srcreg) = (m68k_areg(regs, 7)); - m68k_areg(regs, 7) += offs; -}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr olda; + olda = m68k_areg (regs, 7) - 4; + m68k_areg (regs, 7) = olda; + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 offs; + offs = get_ilong (2); + put_long (olda,src); + m68k_areg (regs, srcreg) = (m68k_areg(regs, 7)); + m68k_areg(regs, 7) += offs; + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* NBCD.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4810_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg; - if (newv_lo > 9) { newv_lo -= 6; } - newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - put_byte (srca,newv); -}}}} m68k_incpc (2); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) + { + newv_lo -= 6; + } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + put_byte (srca,newv); + } + } + } + } + m68k_incpc (2); + return 13 * CYCLE_UNIT / 2; } /* NBCD.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4818_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg; - if (newv_lo > 9) { newv_lo -= 6; } - newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - put_byte (srca,newv); -}}}} m68k_incpc (2); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) + { + newv_lo -= 6; + } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + put_byte (srca,newv); + } + } + } + } + m68k_incpc (2); + return 13 * CYCLE_UNIT / 2; } /* NBCD.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4820_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg; - if (newv_lo > 9) { newv_lo -= 6; } - newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - put_byte (srca,newv); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) + { + newv_lo -= 6; + } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + put_byte (srca,newv); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* NBCD.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4828_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg; - if (newv_lo > 9) { newv_lo -= 6; } - newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - put_byte (srca,newv); -}}}} m68k_incpc (4); -return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) + { + newv_lo -= 6; + } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + put_byte (srca,newv); + } + } + } + } + m68k_incpc (4); + return 15 * CYCLE_UNIT / 2; } /* NBCD.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4830_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg; - if (newv_lo > 9) { newv_lo -= 6; } - newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - put_byte (srca,newv); -}}}}}return 17 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) + { + newv_lo -= 6; + } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + put_byte (srca,newv); + } + } + } + } + } + return 17 * CYCLE_UNIT / 2; } /* NBCD.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4838_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg; - if (newv_lo > 9) { newv_lo -= 6; } - newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - put_byte (srca,newv); -}}}} m68k_incpc (4); -return 15 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) + { + newv_lo -= 6; + } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + put_byte (srca,newv); + } + } + } + } + m68k_incpc (4); + return 15 * CYCLE_UNIT / 2; } /* NBCD.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4839_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg; - if (newv_lo > 9) { newv_lo -= 6; } - newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - put_byte (srca,newv); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) + { + newv_lo -= 6; + } + newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + put_byte (srca,newv); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* SWAP.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4840_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_u32 dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - m68k_dreg (regs, srcreg) = (dst); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_u32 dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + m68k_dreg (regs, srcreg) = (dst); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* BKPTQ.L # */ uae_u32 REGPARAM2 CPUFUNC(op_4848_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{ m68k_incpc (2); - op_illg (opcode); -}return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + m68k_incpc (2); + op_illg (opcode); + } + return 4 * CYCLE_UNIT / 2; } /* PEA.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4850_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, 7) - 4; - m68k_areg (regs, 7) = dsta; - put_long (dsta,srca); -}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long (dsta,srca); + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* PEA.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4868_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, 7) - 4; - m68k_areg (regs, 7) = dsta; - put_long (dsta,srca); -}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long (dsta,srca); + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* PEA.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4870_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uaecptr dsta; - dsta = m68k_areg (regs, 7) - 4; - m68k_areg (regs, 7) = dsta; - put_long (dsta,srca); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uaecptr dsta; + dsta = m68k_areg (regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long (dsta,srca); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* PEA.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4878_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, 7) - 4; - m68k_areg (regs, 7) = dsta; - put_long (dsta,srca); -}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long (dsta,srca); + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* PEA.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4879_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, 7) - 4; - m68k_areg (regs, 7) = dsta; - put_long (dsta,srca); -}}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long (dsta,srca); + } + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* PEA.L (d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_487a_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, 7) - 4; - m68k_areg (regs, 7) = dsta; - put_long (dsta,srca); -}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long (dsta,srca); + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* PEA.L (d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_487b_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uaecptr dsta; - dsta = m68k_areg (regs, 7) - 4; - m68k_areg (regs, 7) = dsta; - put_long (dsta,srca); -}}}}return 11 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uaecptr dsta; + dsta = m68k_areg (regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long (dsta,srca); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* EXT.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4880_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_u16 dst = (uae_s16)(uae_s8)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((dst) & 0xffff); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_u16 dst = (uae_s16)(uae_s8)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((dst) & 0xffff); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* MVMLE.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4890_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = m68k_areg (regs, dstreg); -{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_word (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } - while (amask) { - put_word (srca, m68k_areg (regs, movem_index1[amask])); - srca += 2; - amask = movem_next[amask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_word (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + while (amask) + { + put_word (srca, m68k_areg (regs, movem_index1[amask])); + srca += 2; + amask = movem_next[amask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* MVMLE.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_48a0_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = m68k_areg (regs, dstreg) - 0; -{ uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff; - int type = get_cpu_model() >= 68020; - while (amask) { - srca -= 2; - if (type) m68k_areg (regs, dstreg) = srca; - put_word (srca, m68k_areg (regs, movem_index2[amask])); - amask = movem_next[amask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } - while (dmask) { - srca -= 2; - put_word (srca, m68k_dreg (regs, movem_index2[dmask])); - dmask = movem_next[dmask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } - m68k_areg (regs, dstreg) = srca; -}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) - 0; + { + uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff; + int type = get_cpu_model() >= 68020; + while (amask) + { + srca -= 2; + if (type) m68k_areg (regs, dstreg) = srca; + put_word (srca, m68k_areg (regs, movem_index2[amask])); + amask = movem_next[amask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + while (dmask) + { + srca -= 2; + put_word (srca, m68k_dreg (regs, movem_index2[dmask])); + dmask = movem_next[dmask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + m68k_areg (regs, dstreg) = srca; + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2 + count_cycles; } /* MVMLE.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_48a8_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_word (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } - while (amask) { - put_word (srca, m68k_areg (regs, movem_index1[amask])); - srca += 2; - amask = movem_next[amask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_word (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + while (amask) + { + put_word (srca, m68k_areg (regs, movem_index1[amask])); + srca += 2; + amask = movem_next[amask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* MVMLE.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_48b0_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - m68k_incpc (4); -{ srca = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_word (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } - while (amask) { - put_word (srca, m68k_areg (regs, movem_index1[amask])); - srca += 2; - amask = movem_next[amask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } -}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + m68k_incpc (4); + { + srca = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_word (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + while (amask) + { + put_word (srca, m68k_areg (regs, movem_index1[amask])); + srca += 2; + amask = movem_next[amask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* MVMLE.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_48b8_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (4); -{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_word (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } - while (amask) { - put_word (srca, m68k_areg (regs, movem_index1[amask])); - srca += 2; - amask = movem_next[amask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (4); + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_word (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + while (amask) + { + put_word (srca, m68k_areg (regs, movem_index1[amask])); + srca += 2; + amask = movem_next[amask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* MVMLE.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_48b9_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = get_ilong (4); -{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_word (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } - while (amask) { - put_word (srca, m68k_areg (regs, movem_index1[amask])); - srca += 2; - amask = movem_next[amask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (8); -return 11 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = get_ilong (4); + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_word (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + while (amask) + { + put_word (srca, m68k_areg (regs, movem_index1[amask])); + srca += 2; + amask = movem_next[amask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (8); + return 11 * CYCLE_UNIT / 2 + count_cycles; } /* EXT.L Dn */ uae_u32 REGPARAM2 CPUFUNC(op_48c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_u32 dst = (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - m68k_dreg (regs, srcreg) = (dst); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_u32 dst = (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + m68k_dreg (regs, srcreg) = (dst); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* MVMLE.L #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_48d0_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = m68k_areg (regs, dstreg); -{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_long (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } - while (amask) { - put_long (srca, m68k_areg (regs, movem_index1[amask])); - srca += 4; - amask = movem_next[amask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_long (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + while (amask) + { + put_long (srca, m68k_areg (regs, movem_index1[amask])); + srca += 4; + amask = movem_next[amask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* MVMLE.L #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_48e0_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = m68k_areg (regs, dstreg) - 0; -{ uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff; - int type = get_cpu_model() >= 68020; - while (amask) { - srca -= 4; - if (type) m68k_areg (regs, dstreg) = srca; - put_long (srca, m68k_areg (regs, movem_index2[amask])); - amask = movem_next[amask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } - while (dmask) { - srca -= 4; - put_long (srca, m68k_dreg (regs, movem_index2[dmask])); - dmask = movem_next[dmask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } - m68k_areg (regs, dstreg) = srca; -}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) - 0; + { + uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff; + int type = get_cpu_model() >= 68020; + while (amask) + { + srca -= 4; + if (type) m68k_areg (regs, dstreg) = srca; + put_long (srca, m68k_areg (regs, movem_index2[amask])); + amask = movem_next[amask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + while (dmask) + { + srca -= 4; + put_long (srca, m68k_dreg (regs, movem_index2[dmask])); + dmask = movem_next[dmask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + m68k_areg (regs, dstreg) = srca; + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* MVMLE.L #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_48e8_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_long (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } - while (amask) { - put_long (srca, m68k_areg (regs, movem_index1[amask])); - srca += 4; - amask = movem_next[amask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_long (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + while (amask) + { + put_long (srca, m68k_areg (regs, movem_index1[amask])); + srca += 4; + amask = movem_next[amask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* MVMLE.L #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_48f0_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - m68k_incpc (4); -{ srca = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_long (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } - while (amask) { - put_long (srca, m68k_areg (regs, movem_index1[amask])); - srca += 4; - amask = movem_next[amask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } -}}}}return 13 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + m68k_incpc (4); + { + srca = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_long (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + while (amask) + { + put_long (srca, m68k_areg (regs, movem_index1[amask])); + srca += 4; + amask = movem_next[amask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + } + } + } + } + return 13 * CYCLE_UNIT / 2 + count_cycles; } /* MVMLE.L #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_48f8_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (4); -{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_long (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } - while (amask) { - put_long (srca, m68k_areg (regs, movem_index1[amask])); - srca += 4; - amask = movem_next[amask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (4); + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_long (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + while (amask) + { + put_long (srca, m68k_areg (regs, movem_index1[amask])); + srca += 4; + amask = movem_next[amask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* MVMLE.L #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_48f9_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = get_ilong (4); -{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_long (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } - while (amask) { - put_long (srca, m68k_areg (regs, movem_index1[amask])); - srca += 4; - amask = movem_next[amask]; - count_cycles += 3 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (8); -return 11 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = get_ilong (4); + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_long (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + while (amask) + { + put_long (srca, m68k_areg (regs, movem_index1[amask])); + srca += 4; + amask = movem_next[amask]; + count_cycles += 3 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (8); + return 11 * CYCLE_UNIT / 2 + count_cycles; } /* EXT.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_49c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_u32 dst = (uae_s32)(uae_s8)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - m68k_dreg (regs, srcreg) = (dst); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_u32 dst = (uae_s32)(uae_s8)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + m68k_dreg (regs, srcreg) = (dst); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* TST.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4a00_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* TST.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4a10_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* TST.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4a18_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* TST.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4a20_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* TST.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4a28_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* TST.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4a30_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* TST.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4a38_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* TST.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4a39_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* TST.B (d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_4a3a_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* TST.B (d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4a3b_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}}}return 11 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* TST.B #.B */ uae_u32 REGPARAM2 CPUFUNC(op_4a3c_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* TST.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4a40_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* TST.W An */ uae_u32 REGPARAM2 CPUFUNC(op_4a48_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_areg (regs, srcreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_areg (regs, srcreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* TST.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4a50_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* TST.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4a58_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* TST.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4a60_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* TST.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4a68_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* TST.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4a70_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* TST.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4a78_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* TST.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4a79_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* TST.W (d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_4a7a_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* TST.W (d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4a7b_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}}}return 11 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* TST.W #.W */ uae_u32 REGPARAM2 CPUFUNC(op_4a7c_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* TST.L Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4a80_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* TST.L An */ uae_u32 REGPARAM2 CPUFUNC(op_4a88_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_areg (regs, srcreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_areg (regs, srcreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* TST.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4a90_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* TST.L (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4a98_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* TST.L -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4aa0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* TST.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4aa8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* TST.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4ab0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* TST.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4ab8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* TST.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4ab9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* TST.L (d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_4aba_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* TST.L (d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4abb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 src = get_long (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}}}return 11 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 src = get_long (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* TST.L #.L */ uae_u32 REGPARAM2 CPUFUNC(op_4abc_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}} m68k_incpc (6); -return 8 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + m68k_incpc (6); + return 8 * CYCLE_UNIT / 2; } /* TAS.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4ac0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - src |= 0x80; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((src) & 0xff); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((src) & 0xff); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* TAS.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ad0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - src |= 0x80; - put_byte (srca,src); -}}} m68k_incpc (2); -return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte (srca,src); + } + } + } + m68k_incpc (2); + return 15 * CYCLE_UNIT / 2; } /* TAS.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4ad8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - src |= 0x80; - put_byte (srca,src); -}}} m68k_incpc (2); -return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte (srca,src); + } + } + } + m68k_incpc (2); + return 15 * CYCLE_UNIT / 2; } /* TAS.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ae0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - src |= 0x80; - put_byte (srca,src); -}}} m68k_incpc (2); -return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte (srca,src); + } + } + } + m68k_incpc (2); + return 15 * CYCLE_UNIT / 2; } /* TAS.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ae8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - src |= 0x80; - put_byte (srca,src); -}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte (srca,src); + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* TAS.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4af0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - src |= 0x80; - put_byte (srca,src); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte (srca,src); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* TAS.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4af8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - src |= 0x80; - put_byte (srca,src); -}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte (srca,src); + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* TAS.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4af9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - src |= 0x80; - put_byte (srca,src); -}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte (srca,src); + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2; } /* MULL.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4c00_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - m68k_incpc (4); - m68k_mull(opcode, dst, extra); -}}}return 47 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + m68k_incpc (4); + m68k_mull(opcode, dst, extra); + } + } + } + return 47 * CYCLE_UNIT / 2; } /* MULL.L #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4c10_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_incpc (4); - m68k_mull(opcode, dst, extra); -}}}}return 48 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_incpc (4); + m68k_mull(opcode, dst, extra); + } + } + } + } + return 48 * CYCLE_UNIT / 2; } /* MULL.L #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4c18_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - m68k_incpc (4); - m68k_mull(opcode, dst, extra); -}}}}return 51 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + m68k_incpc (4); + m68k_mull(opcode, dst, extra); + } + } + } + } + return 51 * CYCLE_UNIT / 2; } /* MULL.L #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4c20_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - m68k_incpc (4); - m68k_mull(opcode, dst, extra); -}}}}return 50 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + m68k_incpc (4); + m68k_mull(opcode, dst, extra); + } + } + } + } + return 50 * CYCLE_UNIT / 2; } /* MULL.L #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4c28_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s32 dst = get_long (dsta); - m68k_incpc (6); - m68k_mull(opcode, dst, extra); -}}}}return 59 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s32 dst = get_long (dsta); + m68k_incpc (6); + m68k_mull(opcode, dst, extra); + } + } + } + } + return 59 * CYCLE_UNIT / 2; } /* MULL.L #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4c30_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s32 dst = get_long (dsta); - m68k_mull(opcode, dst, extra); -}}}}}return 55 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s32 dst = get_long (dsta); + m68k_mull(opcode, dst, extra); + } + } + } + } + } + return 55 * CYCLE_UNIT / 2; } /* MULL.L #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4c38_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s32 dst = get_long (dsta); - m68k_incpc (6); - m68k_mull(opcode, dst, extra); -}}}}return 51 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s32 dst = get_long (dsta); + m68k_incpc (6); + m68k_mull(opcode, dst, extra); + } + } + } + } + return 51 * CYCLE_UNIT / 2; } /* MULL.L #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4c39_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s32 dst = get_long (dsta); - m68k_incpc (8); - m68k_mull(opcode, dst, extra); -}}}}return 54 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s32 dst = get_long (dsta); + m68k_incpc (8); + m68k_mull(opcode, dst, extra); + } + } + } + } + return 54 * CYCLE_UNIT / 2; } /* MULL.L #.W,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_4c3a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 2; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_getpc () + 4; - dsta += (uae_s32)(uae_s16)get_iword (4); -{ uae_s32 dst = get_long (dsta); - m68k_incpc (6); - m68k_mull(opcode, dst, extra); -}}}}return 59 * CYCLE_UNIT / 2; + uae_u32 dstreg = 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword (4); + { + uae_s32 dst = get_long (dsta); + m68k_incpc (6); + m68k_mull(opcode, dst, extra); + } + } + } + } + return 59 * CYCLE_UNIT / 2; } /* MULL.L #.W,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4c3b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 3; -{{ uae_s16 extra = get_iword (2); -{ uaecptr tmppc; - uaecptr dsta; - m68k_incpc (4); -{ tmppc = m68k_getpc (); - dsta = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 dst = get_long (dsta); - m68k_mull(opcode, dst, extra); -}}}}}return 55 * CYCLE_UNIT / 2; + uae_u32 dstreg = 3; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr tmppc; + uaecptr dsta; + m68k_incpc (4); + { + tmppc = m68k_getpc (); + dsta = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 dst = get_long (dsta); + m68k_mull(opcode, dst, extra); + } + } + } + } + } + return 55 * CYCLE_UNIT / 2; } /* MULL.L #.W,#.L */ uae_u32 REGPARAM2 CPUFUNC(op_4c3c_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uae_s32 dst; - dst = get_ilong (4); - m68k_incpc (8); - m68k_mull(opcode, dst, extra); -}}}return 52 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uae_s32 dst; + dst = get_ilong (4); + m68k_incpc (8); + m68k_mull(opcode, dst, extra); + } + } + } + return 52 * CYCLE_UNIT / 2; } /* DIVL.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4c40_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; - uae_u32 cyc = 0; -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - m68k_incpc (4); - if (dst == 0) { - Exception (5); - return 4 * CYCLE_UNIT / 2; - } - m68k_divl(opcode, dst, extra); -}}}return 82 * CYCLE_UNIT / 2 + cyc; + uae_u32 dstreg = opcode & 7; + uae_u32 cyc = 0; + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + m68k_incpc (4); + if (dst == 0) + { + Exception (5); + return 4 * CYCLE_UNIT / 2; + } + m68k_divl(opcode, dst, extra); + } + } + } + return 82 * CYCLE_UNIT / 2 + cyc; } /* DIVL.L #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4c50_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; - uae_u32 cyc = 0; -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_incpc (4); - if (dst == 0) { - Exception (5); - return 4 * CYCLE_UNIT / 2; - } - m68k_divl(opcode, dst, extra); -}}}}return 83 * CYCLE_UNIT / 2 + cyc; + uae_u32 dstreg = opcode & 7; + uae_u32 cyc = 0; + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_incpc (4); + if (dst == 0) + { + Exception (5); + return 4 * CYCLE_UNIT / 2; + } + m68k_divl(opcode, dst, extra); + } + } + } + } + return 83 * CYCLE_UNIT / 2 + cyc; } /* DIVL.L #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4c58_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; - uae_u32 cyc = 0; -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - m68k_incpc (4); - if (dst == 0) { - Exception (5); - return 4 * CYCLE_UNIT / 2; - } - m68k_divl(opcode, dst, extra); -}}}}return 86 * CYCLE_UNIT / 2 + cyc; + uae_u32 dstreg = opcode & 7; + uae_u32 cyc = 0; + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + m68k_incpc (4); + if (dst == 0) + { + Exception (5); + return 4 * CYCLE_UNIT / 2; + } + m68k_divl(opcode, dst, extra); + } + } + } + } + return 86 * CYCLE_UNIT / 2 + cyc; } /* DIVL.L #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4c60_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; - uae_u32 cyc = 0; -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - m68k_incpc (4); - if (dst == 0) { - Exception (5); - return 4 * CYCLE_UNIT / 2; - } - m68k_divl(opcode, dst, extra); -}}}}return 85 * CYCLE_UNIT / 2 + cyc; + uae_u32 dstreg = opcode & 7; + uae_u32 cyc = 0; + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + m68k_incpc (4); + if (dst == 0) + { + Exception (5); + return 4 * CYCLE_UNIT / 2; + } + m68k_divl(opcode, dst, extra); + } + } + } + } + return 85 * CYCLE_UNIT / 2 + cyc; } /* DIVL.L #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4c68_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; - uae_u32 cyc = 0; -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s32 dst = get_long (dsta); - m68k_incpc (6); - if (dst == 0) { - Exception (5); - return 4 * CYCLE_UNIT / 2; - } - m68k_divl(opcode, dst, extra); -}}}}return 94 * CYCLE_UNIT / 2 + cyc; + uae_u32 dstreg = opcode & 7; + uae_u32 cyc = 0; + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s32 dst = get_long (dsta); + m68k_incpc (6); + if (dst == 0) + { + Exception (5); + return 4 * CYCLE_UNIT / 2; + } + m68k_divl(opcode, dst, extra); + } + } + } + } + return 94 * CYCLE_UNIT / 2 + cyc; } /* DIVL.L #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4c70_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; - uae_u32 cyc = 0; -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s32 dst = get_long (dsta); - if (dst == 0) { - Exception (5); - return 4 * CYCLE_UNIT / 2; - } - m68k_divl(opcode, dst, extra); -}}}}}return 90 * CYCLE_UNIT / 2 + cyc; + uae_u32 dstreg = opcode & 7; + uae_u32 cyc = 0; + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s32 dst = get_long (dsta); + if (dst == 0) + { + Exception (5); + return 4 * CYCLE_UNIT / 2; + } + m68k_divl(opcode, dst, extra); + } + } + } + } + } + return 90 * CYCLE_UNIT / 2 + cyc; } /* DIVL.L #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4c78_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 cyc = 0; -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s32 dst = get_long (dsta); - m68k_incpc (6); - if (dst == 0) { - Exception (5); - return 4 * CYCLE_UNIT / 2; - } - m68k_divl(opcode, dst, extra); -}}}}return 86 * CYCLE_UNIT / 2 + cyc; + uae_u32 cyc = 0; + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s32 dst = get_long (dsta); + m68k_incpc (6); + if (dst == 0) + { + Exception (5); + return 4 * CYCLE_UNIT / 2; + } + m68k_divl(opcode, dst, extra); + } + } + } + } + return 86 * CYCLE_UNIT / 2 + cyc; } /* DIVL.L #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4c79_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 cyc = 0; -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s32 dst = get_long (dsta); - m68k_incpc (8); - if (dst == 0) { - Exception (5); - return 4 * CYCLE_UNIT / 2; - } - m68k_divl(opcode, dst, extra); -}}}}return 89 * CYCLE_UNIT / 2 + cyc; + uae_u32 cyc = 0; + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s32 dst = get_long (dsta); + m68k_incpc (8); + if (dst == 0) + { + Exception (5); + return 4 * CYCLE_UNIT / 2; + } + m68k_divl(opcode, dst, extra); + } + } + } + } + return 89 * CYCLE_UNIT / 2 + cyc; } /* DIVL.L #.W,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_4c7a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 2; - uae_u32 cyc = 0; -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; -{ uaecptr dsta; - dsta = m68k_getpc () + 4; - dsta += (uae_s32)(uae_s16)get_iword (4); -{ uae_s32 dst = get_long (dsta); - m68k_incpc (6); - if (dst == 0) { - Exception (5); - return 4 * CYCLE_UNIT / 2; - } - m68k_divl(opcode, dst, extra); -}}}}return 94 * CYCLE_UNIT / 2 + cyc; + uae_u32 dstreg = 2; + uae_u32 cyc = 0; + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; + { + uaecptr dsta; + dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword (4); + { + uae_s32 dst = get_long (dsta); + m68k_incpc (6); + if (dst == 0) + { + Exception (5); + return 4 * CYCLE_UNIT / 2; + } + m68k_divl(opcode, dst, extra); + } + } + } + } + return 94 * CYCLE_UNIT / 2 + cyc; } /* DIVL.L #.W,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4c7b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 3; - uae_u32 cyc = 0; -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; -{ uaecptr tmppc; - uaecptr dsta; - m68k_incpc (4); -{ tmppc = m68k_getpc (); - dsta = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 dst = get_long (dsta); - if (dst == 0) { - Exception (5); - return 4 * CYCLE_UNIT / 2; - } - m68k_divl(opcode, dst, extra); -}}}}}return 90 * CYCLE_UNIT / 2 + cyc; + uae_u32 dstreg = 3; + uae_u32 cyc = 0; + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; + { + uaecptr tmppc; + uaecptr dsta; + m68k_incpc (4); + { + tmppc = m68k_getpc (); + dsta = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 dst = get_long (dsta); + if (dst == 0) + { + Exception (5); + return 4 * CYCLE_UNIT / 2; + } + m68k_divl(opcode, dst, extra); + } + } + } + } + } + return 90 * CYCLE_UNIT / 2 + cyc; } /* DIVL.L #.W,#.L */ uae_u32 REGPARAM2 CPUFUNC(op_4c7c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 cyc = 0; -{{ uae_s16 extra = get_iword (2); - if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; -{ uae_s32 dst; - dst = get_ilong (4); - m68k_incpc (8); - if (dst == 0) { - Exception (5); - return 4 * CYCLE_UNIT / 2; - } - m68k_divl(opcode, dst, extra); -}}}return 87 * CYCLE_UNIT / 2 + cyc; + uae_u32 cyc = 0; + { + { + uae_s16 extra = get_iword (2); + if (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2; + { + uae_s32 dst; + dst = get_ilong (4); + m68k_incpc (8); + if (dst == 0) + { + Exception (5); + return 4 * CYCLE_UNIT / 2; + } + m68k_divl(opcode, dst, extra); + } + } + } + return 87 * CYCLE_UNIT / 2 + cyc; } /* MVMEL.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4c90_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_areg (regs, dstreg); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4c98_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_areg (regs, dstreg); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - m68k_areg (regs, dstreg) = srca; -}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + m68k_areg (regs, dstreg) = srca; + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ca8_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4cb0_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - m68k_incpc (4); -{ srca = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}}}return 17 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + m68k_incpc (4); + { + srca = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + } + return 17 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4cb8_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (4); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (4); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4cb9_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = get_ilong (4); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (8); -return 15 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = get_ilong (4); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (8); + return 15 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.W #.W,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_4cba_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = 2; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_getpc () + 4; - srca += (uae_s32)(uae_s16)get_iword (4); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = 2; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_getpc () + 4; + srca += (uae_s32)(uae_s16)get_iword (4); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.W #.W,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4cbb_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = 3; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (4); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}}}return 17 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = 3; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (4); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + } + return 17 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.L #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4cd0_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_areg (regs, dstreg); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.L #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4cd8_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_areg (regs, dstreg); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - m68k_areg (regs, dstreg) = srca; -}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + m68k_areg (regs, dstreg) = srca; + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.L #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ce8_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.L #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4cf0_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - m68k_incpc (4); -{ srca = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}}}return 19 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + m68k_incpc (4); + { + srca = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + } + return 19 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.L #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4cf8_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (4); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (4); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.L #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4cf9_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = get_ilong (4); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (8); -return 19 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = get_ilong (4); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (8); + return 19 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.L #.W,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_4cfa_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = 2; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_getpc () + 4; - srca += (uae_s32)(uae_s16)get_iword (4); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = 2; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_getpc () + 4; + srca += (uae_s32)(uae_s16)get_iword (4); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.L #.W,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4cfb_0)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = 3; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (4); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}}}return 19 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = 3; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (4); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + } + return 19 * CYCLE_UNIT / 2 + count_cycles; } /* TRAPQ.L # */ uae_u32 REGPARAM2 CPUFUNC(op_4e40_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 15); -{{ uae_u32 src = srcreg; - m68k_incpc (2); - Exception (src + 32); -}}return 27 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 15); + { + { + uae_u32 src = srcreg; + m68k_incpc (2); + Exception (src + 32); + } + } + return 27 * CYCLE_UNIT / 2; } /* LINK.W An,#.W */ uae_u32 REGPARAM2 CPUFUNC(op_4e50_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr olda; - olda = m68k_areg (regs, 7) - 4; - m68k_areg (regs, 7) = olda; -{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - put_long (olda,src); - m68k_areg (regs, srcreg) = (m68k_areg(regs, 7)); - m68k_areg(regs, 7) += offs; -}}}} m68k_incpc (4); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr olda; + olda = m68k_areg (regs, 7) - 4; + m68k_areg (regs, 7) = olda; + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + put_long (olda,src); + m68k_areg (regs, srcreg) = (m68k_areg(regs, 7)); + m68k_areg(regs, 7) += offs; + } + } + } + } + m68k_incpc (4); + return 7 * CYCLE_UNIT / 2; } /* UNLK.L An */ uae_u32 REGPARAM2 CPUFUNC(op_4e58_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_areg (regs, srcreg); - m68k_areg (regs, 7) = src; -{ uaecptr olda; - olda = m68k_areg (regs, 7); -{ uae_s32 old = get_long (olda); - m68k_areg (regs, 7) += 4; - m68k_areg (regs, srcreg) = (old); -}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_areg (regs, srcreg); + m68k_areg (regs, 7) = src; + { + uaecptr olda; + olda = m68k_areg (regs, 7); + { + uae_s32 old = get_long (olda); + m68k_areg (regs, 7) += 4; + m68k_areg (regs, srcreg) = (old); + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* MVR2USP.L An */ uae_u32 REGPARAM2 CPUFUNC(op_4e60_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s32 src = m68k_areg (regs, srcreg); - regs.usp = src; -}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = m68k_areg (regs, srcreg); + regs.usp = src; + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* MVUSP2R.L An */ uae_u32 REGPARAM2 CPUFUNC(op_4e68_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ m68k_areg (regs, srcreg) = (regs.usp); -}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + m68k_areg (regs, srcreg) = (regs.usp); + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* RESET.L */ uae_u32 REGPARAM2 CPUFUNC(op_4e70_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ cpureset (); - m68k_incpc (2); -}}return 519 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + cpureset (); + m68k_incpc (2); + } + } + return 519 * CYCLE_UNIT / 2; } /* NOP.L */ uae_u32 REGPARAM2 CPUFUNC(op_4e71_0)(uae_u32 opcode, struct regstruct ®s) { -{} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + {} m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* STOP.L #.W */ uae_u32 REGPARAM2 CPUFUNC(op_4e72_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 src = get_iword (2); - regs.sr = src; - MakeFromSR (regs); - m68k_setstopped (); - m68k_incpc (4); -}}}return 8 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_iword (2); + regs.sr = src; + MakeFromSR (regs); + m68k_setstopped (); + m68k_incpc (4); + } + } + } + return 8 * CYCLE_UNIT / 2; } /* RTE.L */ uae_u32 REGPARAM2 CPUFUNC(op_4e73_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ uae_u16 newsr; uae_u32 newpc; - for (;;) { - uaecptr a = m68k_areg (regs, 7); - uae_u16 sr = get_word (a); - uae_u32 pc = get_long (a + 2); - uae_u16 format = get_word (a + 2 + 4); - int frame = format >> 12; - int offset = 8; - newsr = sr; newpc = pc; - if (frame == 0x0) { m68k_areg (regs, 7) += offset; break; } - else if (frame == 0x1) { m68k_areg (regs, 7) += offset; } - else if (frame == 0x2) { m68k_areg (regs, 7) += offset + 4; break; } - else if (frame == 0x4) { m68k_areg (regs, 7) += offset + 8; break; } - else if (frame == 0x7) { m68k_areg (regs, 7) += offset + 52; break; } - else if (frame == 0x9) { m68k_areg (regs, 7) += offset + 12; break; } - else if (frame == 0xa) { m68k_areg (regs, 7) += offset + 24; break; } - else if (frame == 0xb) { m68k_areg (regs, 7) += offset + 84; break; } - else { m68k_areg (regs, 7) += offset; Exception (14); return 4 * CYCLE_UNIT / 2; } - regs.sr = newsr; - MakeFromSR(regs); -} - regs.sr = newsr; - MakeFromSR(regs); - if (newpc & 1) { - exception3i (0x4E73, newpc); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (newpc); -}}return 24 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + uae_u16 newsr; + uae_u32 newpc; + for (;;) + { + uaecptr a = m68k_areg (regs, 7); + uae_u16 sr = get_word (a); + uae_u32 pc = get_long (a + 2); + uae_u16 format = get_word (a + 2 + 4); + int frame = format >> 12; + int offset = 8; + newsr = sr; + newpc = pc; + if (frame == 0x0) + { + m68k_areg (regs, 7) += offset; + break; + } + else if (frame == 0x1) + { + m68k_areg (regs, 7) += offset; + } + else if (frame == 0x2) + { + m68k_areg (regs, 7) += offset + 4; + break; + } + else if (frame == 0x4) + { + m68k_areg (regs, 7) += offset + 8; + break; + } + else if (frame == 0x7) + { + m68k_areg (regs, 7) += offset + 52; + break; + } + else if (frame == 0x9) + { + m68k_areg (regs, 7) += offset + 12; + break; + } + else if (frame == 0xa) + { + m68k_areg (regs, 7) += offset + 24; + break; + } + else if (frame == 0xb) + { + m68k_areg (regs, 7) += offset + 84; + break; + } + else + { + m68k_areg (regs, 7) += offset; + Exception (14); + return 4 * CYCLE_UNIT / 2; + } + regs.sr = newsr; + MakeFromSR(regs); + } + regs.sr = newsr; + MakeFromSR(regs); + if (newpc & 1) + { + exception3i (0x4E73, newpc); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (newpc); + } + } + return 24 * CYCLE_UNIT / 2; } /* RTD.L #.W */ uae_u32 REGPARAM2 CPUFUNC(op_4e74_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr pca; - pca = m68k_areg (regs, 7); -{ uae_s32 pc = get_long (pca); - m68k_areg (regs, 7) += 4; -{ uae_s16 offs = get_iword (2); - m68k_areg(regs, 7) += offs; - if (pc & 1) { - exception3i (0x4E74, pc); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (pc); -}}}}return 12 * CYCLE_UNIT / 2; + { + { + uaecptr pca; + pca = m68k_areg (regs, 7); + { + uae_s32 pc = get_long (pca); + m68k_areg (regs, 7) += 4; + { + uae_s16 offs = get_iword (2); + m68k_areg(regs, 7) += offs; + if (pc & 1) + { + exception3i (0x4E74, pc); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (pc); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* RTS.L */ uae_u32 REGPARAM2 CPUFUNC(op_4e75_0)(uae_u32 opcode, struct regstruct ®s) { -{ uaecptr pc = m68k_getpc (); - m68k_do_rts (); - if (m68k_getpc () & 1) { - uaecptr faultpc = m68k_getpc (); - m68k_setpc (pc); - exception3i (0x4E75, faultpc); - return 8 * CYCLE_UNIT / 2; - } -}return 12 * CYCLE_UNIT / 2; + { + uaecptr pc = m68k_getpc (); + m68k_do_rts (); + if (m68k_getpc () & 1) + { + uaecptr faultpc = m68k_getpc (); + m68k_setpc (pc); + exception3i (0x4E75, faultpc); + return 8 * CYCLE_UNIT / 2; + } + } + return 12 * CYCLE_UNIT / 2; } /* TRAPV.L */ uae_u32 REGPARAM2 CPUFUNC(op_4e76_0)(uae_u32 opcode, struct regstruct ®s) { -{ m68k_incpc (2); - if (GET_VFLG ()) { - Exception (7); - return 4 * CYCLE_UNIT / 2; - } -}return 5 * CYCLE_UNIT / 2; + { + m68k_incpc (2); + if (GET_VFLG ()) + { + Exception (7); + return 4 * CYCLE_UNIT / 2; + } + } + return 5 * CYCLE_UNIT / 2; } /* RTR.L */ uae_u32 REGPARAM2 CPUFUNC(op_4e77_0)(uae_u32 opcode, struct regstruct ®s) { -{ uaecptr oldpc = m68k_getpc (); - MakeSR (regs); -{ uaecptr sra; - sra = m68k_areg (regs, 7); -{ uae_s16 sr = get_word (sra); - m68k_areg (regs, 7) += 2; -{ uaecptr pca; - pca = m68k_areg (regs, 7); -{ uae_s32 pc = get_long (pca); - m68k_areg (regs, 7) += 4; - regs.sr &= 0xFF00; sr &= 0xFF; - regs.sr |= sr; - m68k_setpc (pc); - MakeFromSR (regs); - if (m68k_getpc () & 1) { - uaecptr faultpc = m68k_getpc (); - m68k_setpc (oldpc); - exception3i (0x4E77, faultpc); - return 8 * CYCLE_UNIT / 2; - } -}}}}}return 15 * CYCLE_UNIT / 2; + { + uaecptr oldpc = m68k_getpc (); + MakeSR (regs); + { + uaecptr sra; + sra = m68k_areg (regs, 7); + { + uae_s16 sr = get_word (sra); + m68k_areg (regs, 7) += 2; + { + uaecptr pca; + pca = m68k_areg (regs, 7); + { + uae_s32 pc = get_long (pca); + m68k_areg (regs, 7) += 4; + regs.sr &= 0xFF00; + sr &= 0xFF; + regs.sr |= sr; + m68k_setpc (pc); + MakeFromSR (regs); + if (m68k_getpc () & 1) + { + uaecptr faultpc = m68k_getpc (); + m68k_setpc (oldpc); + exception3i (0x4E77, faultpc); + return 8 * CYCLE_UNIT / 2; + } + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* MOVEC2.L #.W */ uae_u32 REGPARAM2 CPUFUNC(op_4e7a_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 src = get_iword (2); -{ int regno = (src >> 12) & 15; - uae_u32 *regp = regs.regs + regno; - if (! m68k_movec2(src & 0xFFF, regp)) goto l_899; -}}}} m68k_incpc (4); -l_899: ; -return 7 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_iword (2); + { + int regno = (src >> 12) & 15; + uae_u32 *regp = regs.regs + regno; + if (! m68k_movec2(src & 0xFFF, regp)) goto l_899; + } + } + } + } + m68k_incpc (4); +l_899: + ; + return 7 * CYCLE_UNIT / 2; } /* MOVE2C.L #.W */ uae_u32 REGPARAM2 CPUFUNC(op_4e7b_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 src = get_iword (2); -{ int regno = (src >> 12) & 15; - uae_u32 *regp = regs.regs + regno; - if (! m68k_move2c(src & 0xFFF, regp)) goto l_900; -}}}} m68k_incpc (4); -l_900: ; -return 13 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_iword (2); + { + int regno = (src >> 12) & 15; + uae_u32 *regp = regs.regs + regno; + if (! m68k_move2c(src & 0xFFF, regp)) goto l_900; + } + } + } + } + m68k_incpc (4); +l_900: + ; + return 13 * CYCLE_UNIT / 2; } /* JSR.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4e90_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uaecptr oldpc = m68k_getpc () + 2; - if (srca & 1) { - exception3i (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - m68k_areg (regs, 7) -= 4; - put_long (m68k_areg (regs, 7), oldpc); -}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uaecptr oldpc = m68k_getpc () + 2; + if (srca & 1) + { + exception3i (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + m68k_areg (regs, 7) -= 4; + put_long (m68k_areg (regs, 7), oldpc); + } + } + } + return 13 * CYCLE_UNIT / 2; } /* JSR.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ea8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uaecptr oldpc = m68k_getpc () + 4; - if (srca & 1) { - exception3i (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - m68k_areg (regs, 7) -= 4; - put_long (m68k_areg (regs, 7), oldpc); -}}}return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uaecptr oldpc = m68k_getpc () + 4; + if (srca & 1) + { + exception3i (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + m68k_areg (regs, 7) -= 4; + put_long (m68k_areg (regs, 7), oldpc); + } + } + } + return 15 * CYCLE_UNIT / 2; } /* JSR.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4eb0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uaecptr oldpc = m68k_getpc () + 0; - if (srca & 1) { - exception3i (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - m68k_areg (regs, 7) -= 4; - put_long (m68k_areg (regs, 7), oldpc); -}}}}return 17 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uaecptr oldpc = m68k_getpc () + 0; + if (srca & 1) + { + exception3i (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + m68k_areg (regs, 7) -= 4; + put_long (m68k_areg (regs, 7), oldpc); + } + } + } + } + return 17 * CYCLE_UNIT / 2; } /* JSR.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4eb8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uaecptr oldpc = m68k_getpc () + 4; - if (srca & 1) { - exception3i (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - m68k_areg (regs, 7) -= 4; - put_long (m68k_areg (regs, 7), oldpc); -}}}return 13 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uaecptr oldpc = m68k_getpc () + 4; + if (srca & 1) + { + exception3i (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + m68k_areg (regs, 7) -= 4; + put_long (m68k_areg (regs, 7), oldpc); + } + } + } + return 13 * CYCLE_UNIT / 2; } /* JSR.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4eb9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uaecptr oldpc = m68k_getpc () + 6; - if (srca & 1) { - exception3i (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - m68k_areg (regs, 7) -= 4; - put_long (m68k_areg (regs, 7), oldpc); -}}}return 13 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uaecptr oldpc = m68k_getpc () + 6; + if (srca & 1) + { + exception3i (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + m68k_areg (regs, 7) -= 4; + put_long (m68k_areg (regs, 7), oldpc); + } + } + } + return 13 * CYCLE_UNIT / 2; } /* JSR.L (d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_4eba_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uaecptr oldpc = m68k_getpc () + 4; - if (srca & 1) { - exception3i (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - m68k_areg (regs, 7) -= 4; - put_long (m68k_areg (regs, 7), oldpc); -}}}return 15 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uaecptr oldpc = m68k_getpc () + 4; + if (srca & 1) + { + exception3i (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + m68k_areg (regs, 7) -= 4; + put_long (m68k_areg (regs, 7), oldpc); + } + } + } + return 15 * CYCLE_UNIT / 2; } /* JSR.L (d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4ebb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uaecptr oldpc = m68k_getpc () + 0; - if (srca & 1) { - exception3i (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - m68k_areg (regs, 7) -= 4; - put_long (m68k_areg (regs, 7), oldpc); -}}}}return 17 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uaecptr oldpc = m68k_getpc () + 0; + if (srca & 1) + { + exception3i (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + m68k_areg (regs, 7) -= 4; + put_long (m68k_areg (regs, 7), oldpc); + } + } + } + } + return 17 * CYCLE_UNIT / 2; } /* JMP.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ed0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - exception3i (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); -}}return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + exception3i (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + } + } + return 9 * CYCLE_UNIT / 2; } /* JMP.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ee8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); - if (srca & 1) { - exception3i (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); -}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + if (srca & 1) + { + exception3i (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + } + } + return 11 * CYCLE_UNIT / 2; } /* JMP.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4ef0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); - if (srca & 1) { - exception3i (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); -}}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + if (srca & 1) + { + exception3i (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + } + } + } + return 13 * CYCLE_UNIT / 2; } /* JMP.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4ef8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); - if (srca & 1) { - exception3i (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); -}}return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + if (srca & 1) + { + exception3i (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + } + } + return 9 * CYCLE_UNIT / 2; } /* JMP.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4ef9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); - if (srca & 1) { - exception3i (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); -}}return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + if (srca & 1) + { + exception3i (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + } + } + return 9 * CYCLE_UNIT / 2; } /* JMP.L (d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_4efa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); - if (srca & 1) { - exception3i (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); -}}return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + if (srca & 1) + { + exception3i (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + } + } + return 11 * CYCLE_UNIT / 2; } /* JMP.L (d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4efb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); - if (srca & 1) { - exception3i (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); -}}}return 13 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + if (srca & 1) + { + exception3i (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + } + } + } + return 13 * CYCLE_UNIT / 2; } /* ADDQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_5000_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* ADDQ.B #,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5010_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* ADDQ.B #,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_5018_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* ADDQ.B #,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5020_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* ADDQ.B #,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_5028_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ADDQ.B #,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_5030_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* ADDQ.B #,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_5038_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ADDQ.B #,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_5039_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* ADDQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_5040_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* ADDAQ.W #,An */ uae_u32 REGPARAM2 CPUFUNC(op_5048_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* ADDQ.W #,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5050_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* ADDQ.W #,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_5058_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* ADDQ.W #,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5060_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* ADDQ.W #,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_5068_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ADDQ.W #,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_5070_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* ADDQ.W #,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_5078_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ADDQ.W #,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_5079_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* ADDQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_5080_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* ADDAQ.L #,An */ uae_u32 REGPARAM2 CPUFUNC(op_5088_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* ADDQ.L #,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5090_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* ADDQ.L #,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_5098_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } #endif @@ -16677,3216 +25385,5335 @@ return 10 * CYCLE_UNIT / 2; /* ADDQ.L #,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_50a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* ADDQ.L #,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_50a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ADDQ.L #,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_50b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* ADDQ.L #,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_50b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ADDQ.L #,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_50b9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* Scc.B Dn (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* DBcc.W Dn,#.W (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - if (!cctrue (regs.ccrflags, 0)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 7 * CYCLE_UNIT / 2; - } - } else { - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + if (!cctrue (regs.ccrflags, 0)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 7 * CYCLE_UNIT / 2; + } + } + else + { + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2; } /* Scc.B (An) (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B -(An) (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - put_byte (srca,val); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* TRAPcc.L #.W (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50fa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 dummy = get_iword (2); - if (cctrue (regs.ccrflags, 0)) { Exception (7); goto l_950; } -}} m68k_incpc (4); -l_950: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s16 dummy = get_iword (2); + if (cctrue (regs.ccrflags, 0)) + { + Exception (7); + goto l_950; + } + } + } + m68k_incpc (4); +l_950: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L #.L (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50fb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 dummy; - dummy = get_ilong (2); - if (cctrue (regs.ccrflags, 0)) { Exception (7); goto l_951; } -}} m68k_incpc (6); -l_951: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s32 dummy; + dummy = get_ilong (2); + if (cctrue (regs.ccrflags, 0)) + { + Exception (7); + goto l_951; + } + } + } + m68k_incpc (6); +l_951: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50fc_0)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 0)) { Exception (7); goto l_952; } -} m68k_incpc (2); -l_952: ; -return 10 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 0)) + { + Exception (7); + goto l_952; + } + } + m68k_incpc (2); +l_952: + ; + return 10 * CYCLE_UNIT / 2; } /* SUBQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_5100_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* SUBQ.B #,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5110_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* SUBQ.B #,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_5118_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* SUBQ.B #,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5120_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* SUBQ.B #,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_5128_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* SUBQ.B #,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_5130_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* SUBQ.B #,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_5138_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* SUBQ.B #,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_5139_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* SUBQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_5140_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* SUBAQ.W #,An */ uae_u32 REGPARAM2 CPUFUNC(op_5148_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* SUBQ.W #,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5150_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* SUBQ.W #,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_5158_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* SUBQ.W #,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5160_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* SUBQ.W #,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_5168_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* SUBQ.W #,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_5170_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* SUBQ.W #,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_5178_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* SUBQ.W #,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_5179_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* SUBQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_5180_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* SUBAQ.L #,An */ uae_u32 REGPARAM2 CPUFUNC(op_5188_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* SUBQ.L #,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5190_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* SUBQ.L #,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_5198_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* SUBQ.L #,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_51a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* SUBQ.L #,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_51a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* SUBQ.L #,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_51b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* SUBQ.L #,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_51b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* SUBQ.L #,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_51b9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* Scc.B Dn (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* DBcc.W Dn,#.W (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - if (!cctrue (regs.ccrflags, 1)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 7 * CYCLE_UNIT / 2; - } - } else { - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + if (!cctrue (regs.ccrflags, 1)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 7 * CYCLE_UNIT / 2; + } + } + else + { + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2; } /* Scc.B (An) (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B -(An) (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - put_byte (srca,val); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* TRAPcc.L #.W (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51fa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 dummy = get_iword (2); - if (cctrue (regs.ccrflags, 1)) { Exception (7); goto l_988; } -}} m68k_incpc (4); -l_988: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s16 dummy = get_iword (2); + if (cctrue (regs.ccrflags, 1)) + { + Exception (7); + goto l_988; + } + } + } + m68k_incpc (4); +l_988: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L #.L (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51fb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 dummy; - dummy = get_ilong (2); - if (cctrue (regs.ccrflags, 1)) { Exception (7); goto l_989; } -}} m68k_incpc (6); -l_989: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s32 dummy; + dummy = get_ilong (2); + if (cctrue (regs.ccrflags, 1)) + { + Exception (7); + goto l_989; + } + } + } + m68k_incpc (6); +l_989: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51fc_0)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 1)) { Exception (7); goto l_990; } -} m68k_incpc (2); -l_990: ; -return 10 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 1)) + { + Exception (7); + goto l_990; + } + } + m68k_incpc (2); +l_990: + ; + return 10 * CYCLE_UNIT / 2; } /* Scc.B Dn (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* DBcc.W Dn,#.W (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - if (!cctrue (regs.ccrflags, 2)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 7 * CYCLE_UNIT / 2; - } - } else { - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + if (!cctrue (regs.ccrflags, 2)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 7 * CYCLE_UNIT / 2; + } + } + else + { + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2; } /* Scc.B (An) (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B -(An) (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - put_byte (srca,val); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* TRAPcc.L #.W (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52fa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 dummy = get_iword (2); - if (cctrue (regs.ccrflags, 2)) { Exception (7); goto l_1000; } -}} m68k_incpc (4); -l_1000: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s16 dummy = get_iword (2); + if (cctrue (regs.ccrflags, 2)) + { + Exception (7); + goto l_1000; + } + } + } + m68k_incpc (4); +l_1000: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L #.L (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52fb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 dummy; - dummy = get_ilong (2); - if (cctrue (regs.ccrflags, 2)) { Exception (7); goto l_1001; } -}} m68k_incpc (6); -l_1001: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s32 dummy; + dummy = get_ilong (2); + if (cctrue (regs.ccrflags, 2)) + { + Exception (7); + goto l_1001; + } + } + } + m68k_incpc (6); +l_1001: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52fc_0)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 2)) { Exception (7); goto l_1002; } -} m68k_incpc (2); -l_1002: ; -return 10 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 2)) + { + Exception (7); + goto l_1002; + } + } + m68k_incpc (2); +l_1002: + ; + return 10 * CYCLE_UNIT / 2; } /* Scc.B Dn (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* DBcc.W Dn,#.W (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - if (!cctrue (regs.ccrflags, 3)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 7 * CYCLE_UNIT / 2; - } - } else { - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + if (!cctrue (regs.ccrflags, 3)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 7 * CYCLE_UNIT / 2; + } + } + else + { + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2; } /* Scc.B (An) (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B -(An) (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - put_byte (srca,val); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* TRAPcc.L #.W (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53fa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 dummy = get_iword (2); - if (cctrue (regs.ccrflags, 3)) { Exception (7); goto l_1012; } -}} m68k_incpc (4); -l_1012: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s16 dummy = get_iword (2); + if (cctrue (regs.ccrflags, 3)) + { + Exception (7); + goto l_1012; + } + } + } + m68k_incpc (4); +l_1012: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L #.L (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53fb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 dummy; - dummy = get_ilong (2); - if (cctrue (regs.ccrflags, 3)) { Exception (7); goto l_1013; } -}} m68k_incpc (6); -l_1013: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s32 dummy; + dummy = get_ilong (2); + if (cctrue (regs.ccrflags, 3)) + { + Exception (7); + goto l_1013; + } + } + } + m68k_incpc (6); +l_1013: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53fc_0)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 3)) { Exception (7); goto l_1014; } -} m68k_incpc (2); -l_1014: ; -return 10 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 3)) + { + Exception (7); + goto l_1014; + } + } + m68k_incpc (2); +l_1014: + ; + return 10 * CYCLE_UNIT / 2; } /* Scc.B Dn (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* DBcc.W Dn,#.W (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - if (!cctrue (regs.ccrflags, 4)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 7 * CYCLE_UNIT / 2; - } - } else { - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + if (!cctrue (regs.ccrflags, 4)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 7 * CYCLE_UNIT / 2; + } + } + else + { + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2; } /* Scc.B (An) (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B -(An) (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - put_byte (srca,val); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* TRAPcc.L #.W (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54fa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 dummy = get_iword (2); - if (cctrue (regs.ccrflags, 4)) { Exception (7); goto l_1024; } -}} m68k_incpc (4); -l_1024: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s16 dummy = get_iword (2); + if (cctrue (regs.ccrflags, 4)) + { + Exception (7); + goto l_1024; + } + } + } + m68k_incpc (4); +l_1024: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L #.L (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54fb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 dummy; - dummy = get_ilong (2); - if (cctrue (regs.ccrflags, 4)) { Exception (7); goto l_1025; } -}} m68k_incpc (6); -l_1025: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s32 dummy; + dummy = get_ilong (2); + if (cctrue (regs.ccrflags, 4)) + { + Exception (7); + goto l_1025; + } + } + } + m68k_incpc (6); +l_1025: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54fc_0)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 4)) { Exception (7); goto l_1026; } -} m68k_incpc (2); -l_1026: ; -return 10 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 4)) + { + Exception (7); + goto l_1026; + } + } + m68k_incpc (2); +l_1026: + ; + return 10 * CYCLE_UNIT / 2; } /* Scc.B Dn (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* DBcc.W Dn,#.W (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - if (!cctrue (regs.ccrflags, 5)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 7 * CYCLE_UNIT / 2; - } - } else { - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + if (!cctrue (regs.ccrflags, 5)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 7 * CYCLE_UNIT / 2; + } + } + else + { + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2; } /* Scc.B (An) (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B -(An) (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - put_byte (srca,val); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* TRAPcc.L #.W (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55fa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 dummy = get_iword (2); - if (cctrue (regs.ccrflags, 5)) { Exception (7); goto l_1036; } -}} m68k_incpc (4); -l_1036: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s16 dummy = get_iword (2); + if (cctrue (regs.ccrflags, 5)) + { + Exception (7); + goto l_1036; + } + } + } + m68k_incpc (4); +l_1036: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L #.L (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55fb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 dummy; - dummy = get_ilong (2); - if (cctrue (regs.ccrflags, 5)) { Exception (7); goto l_1037; } -}} m68k_incpc (6); -l_1037: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s32 dummy; + dummy = get_ilong (2); + if (cctrue (regs.ccrflags, 5)) + { + Exception (7); + goto l_1037; + } + } + } + m68k_incpc (6); +l_1037: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55fc_0)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 5)) { Exception (7); goto l_1038; } -} m68k_incpc (2); -l_1038: ; -return 10 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 5)) + { + Exception (7); + goto l_1038; + } + } + m68k_incpc (2); +l_1038: + ; + return 10 * CYCLE_UNIT / 2; } /* Scc.B Dn (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* DBcc.W Dn,#.W (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - if (!cctrue (regs.ccrflags, 6)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 7 * CYCLE_UNIT / 2; - } - } else { - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + if (!cctrue (regs.ccrflags, 6)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 7 * CYCLE_UNIT / 2; + } + } + else + { + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2; } /* Scc.B (An) (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B -(An) (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - put_byte (srca,val); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* TRAPcc.L #.W (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56fa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 dummy = get_iword (2); - if (cctrue (regs.ccrflags, 6)) { Exception (7); goto l_1048; } -}} m68k_incpc (4); -l_1048: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s16 dummy = get_iword (2); + if (cctrue (regs.ccrflags, 6)) + { + Exception (7); + goto l_1048; + } + } + } + m68k_incpc (4); +l_1048: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L #.L (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56fb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 dummy; - dummy = get_ilong (2); - if (cctrue (regs.ccrflags, 6)) { Exception (7); goto l_1049; } -}} m68k_incpc (6); -l_1049: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s32 dummy; + dummy = get_ilong (2); + if (cctrue (regs.ccrflags, 6)) + { + Exception (7); + goto l_1049; + } + } + } + m68k_incpc (6); +l_1049: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56fc_0)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 6)) { Exception (7); goto l_1050; } -} m68k_incpc (2); -l_1050: ; -return 10 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 6)) + { + Exception (7); + goto l_1050; + } + } + m68k_incpc (2); +l_1050: + ; + return 10 * CYCLE_UNIT / 2; } /* Scc.B Dn (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* DBcc.W Dn,#.W (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - if (!cctrue (regs.ccrflags, 7)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 7 * CYCLE_UNIT / 2; - } - } else { - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + if (!cctrue (regs.ccrflags, 7)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 7 * CYCLE_UNIT / 2; + } + } + else + { + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2; } /* Scc.B (An) (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B -(An) (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - put_byte (srca,val); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* TRAPcc.L #.W (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57fa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 dummy = get_iword (2); - if (cctrue (regs.ccrflags, 7)) { Exception (7); goto l_1060; } -}} m68k_incpc (4); -l_1060: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s16 dummy = get_iword (2); + if (cctrue (regs.ccrflags, 7)) + { + Exception (7); + goto l_1060; + } + } + } + m68k_incpc (4); +l_1060: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L #.L (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57fb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 dummy; - dummy = get_ilong (2); - if (cctrue (regs.ccrflags, 7)) { Exception (7); goto l_1061; } -}} m68k_incpc (6); -l_1061: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s32 dummy; + dummy = get_ilong (2); + if (cctrue (regs.ccrflags, 7)) + { + Exception (7); + goto l_1061; + } + } + } + m68k_incpc (6); +l_1061: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57fc_0)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 7)) { Exception (7); goto l_1062; } -} m68k_incpc (2); -l_1062: ; -return 10 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 7)) + { + Exception (7); + goto l_1062; + } + } + m68k_incpc (2); +l_1062: + ; + return 10 * CYCLE_UNIT / 2; } /* Scc.B Dn (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* DBcc.W Dn,#.W (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - if (!cctrue (regs.ccrflags, 8)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 7 * CYCLE_UNIT / 2; - } - } else { - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + if (!cctrue (regs.ccrflags, 8)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 7 * CYCLE_UNIT / 2; + } + } + else + { + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2; } /* Scc.B (An) (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B -(An) (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - put_byte (srca,val); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* TRAPcc.L #.W (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58fa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 dummy = get_iword (2); - if (cctrue (regs.ccrflags, 8)) { Exception (7); goto l_1072; } -}} m68k_incpc (4); -l_1072: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s16 dummy = get_iword (2); + if (cctrue (regs.ccrflags, 8)) + { + Exception (7); + goto l_1072; + } + } + } + m68k_incpc (4); +l_1072: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L #.L (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58fb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 dummy; - dummy = get_ilong (2); - if (cctrue (regs.ccrflags, 8)) { Exception (7); goto l_1073; } -}} m68k_incpc (6); -l_1073: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s32 dummy; + dummy = get_ilong (2); + if (cctrue (regs.ccrflags, 8)) + { + Exception (7); + goto l_1073; + } + } + } + m68k_incpc (6); +l_1073: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58fc_0)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 8)) { Exception (7); goto l_1074; } -} m68k_incpc (2); -l_1074: ; -return 10 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 8)) + { + Exception (7); + goto l_1074; + } + } + m68k_incpc (2); +l_1074: + ; + return 10 * CYCLE_UNIT / 2; } /* Scc.B Dn (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* DBcc.W Dn,#.W (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - if (!cctrue (regs.ccrflags, 9)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 7 * CYCLE_UNIT / 2; - } - } else { - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + if (!cctrue (regs.ccrflags, 9)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 7 * CYCLE_UNIT / 2; + } + } + else + { + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2; } /* Scc.B (An) (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B -(An) (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - put_byte (srca,val); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* TRAPcc.L #.W (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59fa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 dummy = get_iword (2); - if (cctrue (regs.ccrflags, 9)) { Exception (7); goto l_1084; } -}} m68k_incpc (4); -l_1084: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s16 dummy = get_iword (2); + if (cctrue (regs.ccrflags, 9)) + { + Exception (7); + goto l_1084; + } + } + } + m68k_incpc (4); +l_1084: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L #.L (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59fb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 dummy; - dummy = get_ilong (2); - if (cctrue (regs.ccrflags, 9)) { Exception (7); goto l_1085; } -}} m68k_incpc (6); -l_1085: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s32 dummy; + dummy = get_ilong (2); + if (cctrue (regs.ccrflags, 9)) + { + Exception (7); + goto l_1085; + } + } + } + m68k_incpc (6); +l_1085: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59fc_0)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 9)) { Exception (7); goto l_1086; } -} m68k_incpc (2); -l_1086: ; -return 10 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 9)) + { + Exception (7); + goto l_1086; + } + } + m68k_incpc (2); +l_1086: + ; + return 10 * CYCLE_UNIT / 2; } /* Scc.B Dn (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5ac0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* DBcc.W Dn,#.W (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5ac8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - if (!cctrue (regs.ccrflags, 10)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 7 * CYCLE_UNIT / 2; - } - } else { - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + if (!cctrue (regs.ccrflags, 10)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 7 * CYCLE_UNIT / 2; + } + } + else + { + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2; } /* Scc.B (An) (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5ad0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5ad8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B -(An) (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5ae0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5ae8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5af0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - put_byte (srca,val); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5af8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5af9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* TRAPcc.L #.W (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5afa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 dummy = get_iword (2); - if (cctrue (regs.ccrflags, 10)) { Exception (7); goto l_1096; } -}} m68k_incpc (4); -l_1096: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s16 dummy = get_iword (2); + if (cctrue (regs.ccrflags, 10)) + { + Exception (7); + goto l_1096; + } + } + } + m68k_incpc (4); +l_1096: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L #.L (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5afb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 dummy; - dummy = get_ilong (2); - if (cctrue (regs.ccrflags, 10)) { Exception (7); goto l_1097; } -}} m68k_incpc (6); -l_1097: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s32 dummy; + dummy = get_ilong (2); + if (cctrue (regs.ccrflags, 10)) + { + Exception (7); + goto l_1097; + } + } + } + m68k_incpc (6); +l_1097: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5afc_0)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 10)) { Exception (7); goto l_1098; } -} m68k_incpc (2); -l_1098: ; -return 10 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 10)) + { + Exception (7); + goto l_1098; + } + } + m68k_incpc (2); +l_1098: + ; + return 10 * CYCLE_UNIT / 2; } /* Scc.B Dn (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bc0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* DBcc.W Dn,#.W (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bc8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - if (!cctrue (regs.ccrflags, 11)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 7 * CYCLE_UNIT / 2; - } - } else { - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + if (!cctrue (regs.ccrflags, 11)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 7 * CYCLE_UNIT / 2; + } + } + else + { + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2; } /* Scc.B (An) (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bd0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bd8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B -(An) (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5be0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5be8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bf0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - put_byte (srca,val); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bf8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bf9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* TRAPcc.L #.W (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bfa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 dummy = get_iword (2); - if (cctrue (regs.ccrflags, 11)) { Exception (7); goto l_1108; } -}} m68k_incpc (4); -l_1108: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s16 dummy = get_iword (2); + if (cctrue (regs.ccrflags, 11)) + { + Exception (7); + goto l_1108; + } + } + } + m68k_incpc (4); +l_1108: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L #.L (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bfb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 dummy; - dummy = get_ilong (2); - if (cctrue (regs.ccrflags, 11)) { Exception (7); goto l_1109; } -}} m68k_incpc (6); -l_1109: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s32 dummy; + dummy = get_ilong (2); + if (cctrue (regs.ccrflags, 11)) + { + Exception (7); + goto l_1109; + } + } + } + m68k_incpc (6); +l_1109: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bfc_0)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 11)) { Exception (7); goto l_1110; } -} m68k_incpc (2); -l_1110: ; -return 10 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 11)) + { + Exception (7); + goto l_1110; + } + } + m68k_incpc (2); +l_1110: + ; + return 10 * CYCLE_UNIT / 2; } /* Scc.B Dn (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cc0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* DBcc.W Dn,#.W (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cc8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - if (!cctrue (regs.ccrflags, 12)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 7 * CYCLE_UNIT / 2; - } - } else { - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + if (!cctrue (regs.ccrflags, 12)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 7 * CYCLE_UNIT / 2; + } + } + else + { + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2; } /* Scc.B (An) (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cd0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cd8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B -(An) (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5ce0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5ce8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cf0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - put_byte (srca,val); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cf8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cf9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* TRAPcc.L #.W (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cfa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 dummy = get_iword (2); - if (cctrue (regs.ccrflags, 12)) { Exception (7); goto l_1120; } -}} m68k_incpc (4); -l_1120: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s16 dummy = get_iword (2); + if (cctrue (regs.ccrflags, 12)) + { + Exception (7); + goto l_1120; + } + } + } + m68k_incpc (4); +l_1120: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L #.L (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cfb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 dummy; - dummy = get_ilong (2); - if (cctrue (regs.ccrflags, 12)) { Exception (7); goto l_1121; } -}} m68k_incpc (6); -l_1121: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s32 dummy; + dummy = get_ilong (2); + if (cctrue (regs.ccrflags, 12)) + { + Exception (7); + goto l_1121; + } + } + } + m68k_incpc (6); +l_1121: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cfc_0)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 12)) { Exception (7); goto l_1122; } -} m68k_incpc (2); -l_1122: ; -return 10 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 12)) + { + Exception (7); + goto l_1122; + } + } + m68k_incpc (2); +l_1122: + ; + return 10 * CYCLE_UNIT / 2; } /* Scc.B Dn (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5dc0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* DBcc.W Dn,#.W (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5dc8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - if (!cctrue (regs.ccrflags, 13)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 7 * CYCLE_UNIT / 2; - } - } else { - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + if (!cctrue (regs.ccrflags, 13)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 7 * CYCLE_UNIT / 2; + } + } + else + { + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2; } /* Scc.B (An) (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5dd0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5dd8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B -(An) (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5de0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5de8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5df0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - put_byte (srca,val); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5df8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5df9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* TRAPcc.L #.W (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5dfa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 dummy = get_iword (2); - if (cctrue (regs.ccrflags, 13)) { Exception (7); goto l_1132; } -}} m68k_incpc (4); -l_1132: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s16 dummy = get_iword (2); + if (cctrue (regs.ccrflags, 13)) + { + Exception (7); + goto l_1132; + } + } + } + m68k_incpc (4); +l_1132: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L #.L (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5dfb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 dummy; - dummy = get_ilong (2); - if (cctrue (regs.ccrflags, 13)) { Exception (7); goto l_1133; } -}} m68k_incpc (6); -l_1133: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s32 dummy; + dummy = get_ilong (2); + if (cctrue (regs.ccrflags, 13)) + { + Exception (7); + goto l_1133; + } + } + } + m68k_incpc (6); +l_1133: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5dfc_0)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 13)) { Exception (7); goto l_1134; } -} m68k_incpc (2); -l_1134: ; -return 10 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 13)) + { + Exception (7); + goto l_1134; + } + } + m68k_incpc (2); +l_1134: + ; + return 10 * CYCLE_UNIT / 2; } /* Scc.B Dn (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ec0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* DBcc.W Dn,#.W (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ec8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - if (!cctrue (regs.ccrflags, 14)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 7 * CYCLE_UNIT / 2; - } - } else { - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + if (!cctrue (regs.ccrflags, 14)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 7 * CYCLE_UNIT / 2; + } + } + else + { + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2; } /* Scc.B (An) (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ed0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ed8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B -(An) (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ee0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ee8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ef0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - put_byte (srca,val); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ef8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ef9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* TRAPcc.L #.W (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5efa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 dummy = get_iword (2); - if (cctrue (regs.ccrflags, 14)) { Exception (7); goto l_1144; } -}} m68k_incpc (4); -l_1144: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s16 dummy = get_iword (2); + if (cctrue (regs.ccrflags, 14)) + { + Exception (7); + goto l_1144; + } + } + } + m68k_incpc (4); +l_1144: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L #.L (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5efb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 dummy; - dummy = get_ilong (2); - if (cctrue (regs.ccrflags, 14)) { Exception (7); goto l_1145; } -}} m68k_incpc (6); -l_1145: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s32 dummy; + dummy = get_ilong (2); + if (cctrue (regs.ccrflags, 14)) + { + Exception (7); + goto l_1145; + } + } + } + m68k_incpc (6); +l_1145: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5efc_0)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 14)) { Exception (7); goto l_1146; } -} m68k_incpc (2); -l_1146: ; -return 10 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 14)) + { + Exception (7); + goto l_1146; + } + } + m68k_incpc (2); +l_1146: + ; + return 10 * CYCLE_UNIT / 2; } /* Scc.B Dn (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5fc0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* DBcc.W Dn,#.W (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5fc8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - if (!cctrue (regs.ccrflags, 15)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 7 * CYCLE_UNIT / 2; - } - } else { - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + if (!cctrue (regs.ccrflags, 15)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 7 * CYCLE_UNIT / 2; + } + } + else + { + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2; } /* Scc.B (An) (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5fd0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5fd8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B -(An) (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5fe0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5fe8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5ff0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - put_byte (srca,val); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5ff8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5ff9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - put_byte (srca,val); -}}}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + put_byte (srca,val); + } + } + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* TRAPcc.L #.W (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5ffa_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 dummy = get_iword (2); - if (cctrue (regs.ccrflags, 15)) { Exception (7); goto l_1156; } -}} m68k_incpc (4); -l_1156: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s16 dummy = get_iword (2); + if (cctrue (regs.ccrflags, 15)) + { + Exception (7); + goto l_1156; + } + } + } + m68k_incpc (4); +l_1156: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L #.L (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5ffb_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 dummy; - dummy = get_ilong (2); - if (cctrue (regs.ccrflags, 15)) { Exception (7); goto l_1157; } -}} m68k_incpc (6); -l_1157: ; -return 10 * CYCLE_UNIT / 2; + { + { + uae_s32 dummy; + dummy = get_ilong (2); + if (cctrue (regs.ccrflags, 15)) + { + Exception (7); + goto l_1157; + } + } + } + m68k_incpc (6); +l_1157: + ; + return 10 * CYCLE_UNIT / 2; } /* TRAPcc.L (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5ffc_0)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 15)) { Exception (7); goto l_1158; } -} m68k_incpc (2); -l_1158: ; -return 10 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 15)) + { + Exception (7); + goto l_1158; + } + } + m68k_incpc (2); +l_1158: + ; + return 10 * CYCLE_UNIT / 2; } /* Bcc.W #.W (T) */ uae_u32 REGPARAM2 CPUFUNC(op_6000_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 0)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 10 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 7 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 0)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 10 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 7 * CYCLE_UNIT / 2; } /* BccQ.B # (T) */ uae_u32 REGPARAM2 CPUFUNC(op_6001_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 0)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 0)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 5 * CYCLE_UNIT / 2; } /* Bcc.L #.L (T) */ uae_u32 REGPARAM2 CPUFUNC(op_60ff_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); - if (!cctrue (regs.ccrflags, 0)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 14 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (6); -}}return 9 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + if (!cctrue (regs.ccrflags, 0)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 14 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (6); + } + } + return 9 * CYCLE_UNIT / 2; } /* BSR.W #.W */ uae_u32 REGPARAM2 CPUFUNC(op_6100_0)(uae_u32 opcode, struct regstruct ®s) { -{ uae_s32 s; -{ uae_s16 src = get_iword (2); - s = (uae_s32)src + 2; - if (src & 1) { - exception3 (opcode, m68k_getpc () + s, 0, 1, m68k_getpc () + s); - return 8 * CYCLE_UNIT / 2; - } - m68k_do_bsr (regs, m68k_getpc () + 4, s); -}}return 13 * CYCLE_UNIT / 2; + { + uae_s32 s; + { + uae_s16 src = get_iword (2); + s = (uae_s32)src + 2; + if (src & 1) + { + exception3 (opcode, m68k_getpc () + s, 0, 1, m68k_getpc () + s); + return 8 * CYCLE_UNIT / 2; + } + m68k_do_bsr (regs, m68k_getpc () + 4, s); + } + } + return 13 * CYCLE_UNIT / 2; } /* BSRQ.B # */ uae_u32 REGPARAM2 CPUFUNC(op_6101_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{ uae_s32 s; -{ uae_u32 src = srcreg; - s = (uae_s32)src + 2; - if (src & 1) { - exception3 (opcode, m68k_getpc () + s, 0, 1, m68k_getpc () + s); - return 4 * CYCLE_UNIT / 2; - } - m68k_do_bsr (regs, m68k_getpc () + 2, s); -}}return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + uae_s32 s; + { + uae_u32 src = srcreg; + s = (uae_s32)src + 2; + if (src & 1) + { + exception3 (opcode, m68k_getpc () + s, 0, 1, m68k_getpc () + s); + return 4 * CYCLE_UNIT / 2; + } + m68k_do_bsr (regs, m68k_getpc () + 2, s); + } + } + return 13 * CYCLE_UNIT / 2; } /* BSR.L #.L */ uae_u32 REGPARAM2 CPUFUNC(op_61ff_0)(uae_u32 opcode, struct regstruct ®s) { -{ uae_s32 s; -{ uae_s32 src; - src = get_ilong (2); - s = (uae_s32)src + 2; - if (src & 1) { - exception3 (opcode, m68k_getpc () + s, 0, 1, m68k_getpc () + s); - return 12 * CYCLE_UNIT / 2; - } - m68k_do_bsr (regs, m68k_getpc () + 6, s); -}}return 13 * CYCLE_UNIT / 2; + { + uae_s32 s; + { + uae_s32 src; + src = get_ilong (2); + s = (uae_s32)src + 2; + if (src & 1) + { + exception3 (opcode, m68k_getpc () + s, 0, 1, m68k_getpc () + s); + return 12 * CYCLE_UNIT / 2; + } + m68k_do_bsr (regs, m68k_getpc () + 6, s); + } + } + return 13 * CYCLE_UNIT / 2; } /* Bcc.W #.W (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_6200_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 2)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 7 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 2)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 7 * CYCLE_UNIT / 2; } /* BccQ.B # (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_6201_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 2)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 2)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 5 * CYCLE_UNIT / 2; } /* Bcc.L #.L (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_62ff_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); - if (!cctrue (regs.ccrflags, 2)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (6); -}}return 9 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + if (!cctrue (regs.ccrflags, 2)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (6); + } + } + return 9 * CYCLE_UNIT / 2; } /* Bcc.W #.W (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_6300_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 3)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 7 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 3)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 7 * CYCLE_UNIT / 2; } /* BccQ.B # (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_6301_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 3)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 3)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 5 * CYCLE_UNIT / 2; } #endif @@ -19895,4835 +30722,7342 @@ didnt_jump:; /* Bcc.L #.L (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_63ff_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); - if (!cctrue (regs.ccrflags, 3)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (6); -}}return 9 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + if (!cctrue (regs.ccrflags, 3)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (6); + } + } + return 9 * CYCLE_UNIT / 2; } /* Bcc.W #.W (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_6400_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 4)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 7 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 4)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 7 * CYCLE_UNIT / 2; } /* BccQ.B # (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_6401_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 4)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 4)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 5 * CYCLE_UNIT / 2; } /* Bcc.L #.L (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_64ff_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); - if (!cctrue (regs.ccrflags, 4)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (6); -}}return 9 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + if (!cctrue (regs.ccrflags, 4)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (6); + } + } + return 9 * CYCLE_UNIT / 2; } /* Bcc.W #.W (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_6500_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 5)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 7 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 5)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 7 * CYCLE_UNIT / 2; } /* BccQ.B # (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_6501_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 5)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 5)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 5 * CYCLE_UNIT / 2; } /* Bcc.L #.L (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_65ff_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); - if (!cctrue (regs.ccrflags, 5)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (6); -}}return 9 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + if (!cctrue (regs.ccrflags, 5)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (6); + } + } + return 9 * CYCLE_UNIT / 2; } /* Bcc.W #.W (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_6600_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 6)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 7 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 6)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 7 * CYCLE_UNIT / 2; } /* BccQ.B # (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_6601_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 6)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 6)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 5 * CYCLE_UNIT / 2; } /* Bcc.L #.L (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_66ff_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); - if (!cctrue (regs.ccrflags, 6)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (6); -}}return 9 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + if (!cctrue (regs.ccrflags, 6)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (6); + } + } + return 9 * CYCLE_UNIT / 2; } /* Bcc.W #.W (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_6700_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 7)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 7 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 7)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 7 * CYCLE_UNIT / 2; } /* BccQ.B # (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_6701_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 7)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 7)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 5 * CYCLE_UNIT / 2; } /* Bcc.L #.L (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_67ff_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); - if (!cctrue (regs.ccrflags, 7)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (6); -}}return 9 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + if (!cctrue (regs.ccrflags, 7)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (6); + } + } + return 9 * CYCLE_UNIT / 2; } /* Bcc.W #.W (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_6800_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 8)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 7 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 8)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 7 * CYCLE_UNIT / 2; } /* BccQ.B # (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_6801_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 8)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 8)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 5 * CYCLE_UNIT / 2; } /* Bcc.L #.L (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_68ff_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); - if (!cctrue (regs.ccrflags, 8)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (6); -}}return 9 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + if (!cctrue (regs.ccrflags, 8)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (6); + } + } + return 9 * CYCLE_UNIT / 2; } /* Bcc.W #.W (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_6900_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 9)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 7 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 9)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 7 * CYCLE_UNIT / 2; } /* BccQ.B # (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_6901_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 9)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 9)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 5 * CYCLE_UNIT / 2; } /* Bcc.L #.L (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_69ff_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); - if (!cctrue (regs.ccrflags, 9)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (6); -}}return 9 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + if (!cctrue (regs.ccrflags, 9)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (6); + } + } + return 9 * CYCLE_UNIT / 2; } /* Bcc.W #.W (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_6a00_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 10)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 7 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 10)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 7 * CYCLE_UNIT / 2; } /* BccQ.B # (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_6a01_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 10)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 10)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 5 * CYCLE_UNIT / 2; } /* Bcc.L #.L (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_6aff_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); - if (!cctrue (regs.ccrflags, 10)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (6); -}}return 9 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + if (!cctrue (regs.ccrflags, 10)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (6); + } + } + return 9 * CYCLE_UNIT / 2; } /* Bcc.W #.W (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_6b00_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 11)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 7 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 11)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 7 * CYCLE_UNIT / 2; } /* BccQ.B # (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_6b01_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 11)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 11)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 5 * CYCLE_UNIT / 2; } /* Bcc.L #.L (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_6bff_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); - if (!cctrue (regs.ccrflags, 11)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (6); -}}return 9 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + if (!cctrue (regs.ccrflags, 11)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (6); + } + } + return 9 * CYCLE_UNIT / 2; } /* Bcc.W #.W (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_6c00_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 12)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 7 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 12)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 7 * CYCLE_UNIT / 2; } /* BccQ.B # (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_6c01_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 12)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 12)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 5 * CYCLE_UNIT / 2; } /* Bcc.L #.L (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_6cff_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); - if (!cctrue (regs.ccrflags, 12)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (6); -}}return 9 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + if (!cctrue (regs.ccrflags, 12)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (6); + } + } + return 9 * CYCLE_UNIT / 2; } /* Bcc.W #.W (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_6d00_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 13)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 7 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 13)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 7 * CYCLE_UNIT / 2; } /* BccQ.B # (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_6d01_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 13)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 13)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 5 * CYCLE_UNIT / 2; } /* Bcc.L #.L (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_6dff_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); - if (!cctrue (regs.ccrflags, 13)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (6); -}}return 9 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + if (!cctrue (regs.ccrflags, 13)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (6); + } + } + return 9 * CYCLE_UNIT / 2; } /* Bcc.W #.W (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_6e00_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 14)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 7 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 14)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 7 * CYCLE_UNIT / 2; } /* BccQ.B # (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_6e01_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 14)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 14)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 5 * CYCLE_UNIT / 2; } /* Bcc.L #.L (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_6eff_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); - if (!cctrue (regs.ccrflags, 14)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (6); -}}return 9 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + if (!cctrue (regs.ccrflags, 14)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (6); + } + } + return 9 * CYCLE_UNIT / 2; } /* Bcc.W #.W (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_6f00_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 15)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 7 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 15)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 7 * CYCLE_UNIT / 2; } /* BccQ.B # (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_6f01_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 15)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 15)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 5 * CYCLE_UNIT / 2; } /* Bcc.L #.L (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_6fff_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); - if (!cctrue (regs.ccrflags, 15)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 7 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 9 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (6); -}}return 9 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + if (!cctrue (regs.ccrflags, 15)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 7 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 9 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (6); + } + } + return 9 * CYCLE_UNIT / 2; } /* MOVEQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_7000_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_u32 src = srcreg; -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (2); -}}}return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_u32 src = srcreg; + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + return 3 * CYCLE_UNIT / 2; } /* OR.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8000_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* OR.B (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8010_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* OR.B (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8018_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* OR.B -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8020_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* OR.B (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8028_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* OR.B (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8030_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* OR.B (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8038_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* OR.B (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8039_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* OR.B (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_803a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* OR.B (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_803b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* OR.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_803c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* OR.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8040_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* OR.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8050_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* OR.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8058_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* OR.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8060_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* OR.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8068_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* OR.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8070_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* OR.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8078_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* OR.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8079_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* OR.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_807a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* OR.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_807b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* OR.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_807c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* OR.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8080_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* OR.L (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8090_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* OR.L (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8098_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* OR.L -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* OR.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* OR.L (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* OR.L (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* OR.L (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80b9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* OR.L (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80ba_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* OR.L (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80bb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* OR.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80bc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (6); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (6); + return 8 * CYCLE_UNIT / 2; } /* DIVU.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (2); - Exception (5); - return 4 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (2); - } -}}}return 44 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (2); + Exception (5); + return 4 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (2); + } + } + } + } + return 44 * CYCLE_UNIT / 2; } /* DIVU.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (2); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (2); - } -}}}}return 48 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (2); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (2); + } + } + } + } + } + return 48 * CYCLE_UNIT / 2; } /* DIVU.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (2); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (2); - } -}}}}return 48 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (2); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (2); + } + } + } + } + } + return 48 * CYCLE_UNIT / 2; } /* DIVU.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (2); - Exception (5); - return 10 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (2); - } -}}}}return 49 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (2); + Exception (5); + return 10 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (2); + } + } + } + } + } + return 49 * CYCLE_UNIT / 2; } /* DIVU.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (4); - Exception (5); - return 12 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (4); - } -}}}}return 50 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (4); + Exception (5); + return 12 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (4); + } + } + } + } + } + return 50 * CYCLE_UNIT / 2; } /* DIVU.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (0); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } -}}}}}return 52 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (0); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + return 52 * CYCLE_UNIT / 2; } /* DIVU.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80f8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (4); - Exception (5); - return 12 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (4); - } -}}}}return 50 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (4); + Exception (5); + return 12 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (4); + } + } + } + } + } + return 50 * CYCLE_UNIT / 2; } /* DIVU.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80f9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (6); - Exception (5); - return 16 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (6); - } -}}}}return 51 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (6); + Exception (5); + return 16 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (6); + } + } + } + } + } + return 51 * CYCLE_UNIT / 2; } /* DIVU.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80fa_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (4); - Exception (5); - return 12 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (4); - } -}}}}return 50 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (4); + Exception (5); + return 12 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (4); + } + } + } + } + } + return 50 * CYCLE_UNIT / 2; } /* DIVU.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80fb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (0); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } -}}}}}return 52 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (0); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + return 52 * CYCLE_UNIT / 2; } /* DIVU.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80fc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (4); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (4); - } -}}}return 47 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (4); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (4); + } + } + } + } + return 47 * CYCLE_UNIT / 2; } /* SBCD.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8100_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{ uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); - uae_u16 newv, tmp_newv; - int bcd = 0; - newv = tmp_newv = newv_hi + newv_lo; - if (newv_lo & 0xF0) { newv -= 6; bcd = 6; }; - if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG () ? 1 : 0)) & 0x100) > 0xFF) { newv -= 0x60; } - SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG () ? 1 : 0)) & 0x300) > 0xFF); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}} m68k_incpc (2); -return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); + uae_u16 newv, tmp_newv; + int bcd = 0; + newv = tmp_newv = newv_hi + newv_lo; + if (newv_lo & 0xF0) + { + newv -= 6; + bcd = 6; + }; + if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG () ? 1 : 0)) & 0x100) > 0xFF) + { + newv -= 0x60; + } + SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG () ? 1 : 0)) & 0x300) > 0xFF); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + m68k_incpc (2); + return 5 * CYCLE_UNIT / 2; } /* SBCD.B -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_8108_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{ uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); - uae_u16 newv, tmp_newv; - int bcd = 0; - newv = tmp_newv = newv_hi + newv_lo; - if (newv_lo & 0xF0) { newv -= 6; bcd = 6; }; - if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG () ? 1 : 0)) & 0x100) > 0xFF) { newv -= 0x60; } - SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG () ? 1 : 0)) & 0x300) > 0xFF); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - put_byte (dsta,newv); -}}}}}} m68k_incpc (2); -return 17 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); + uae_u16 newv, tmp_newv; + int bcd = 0; + newv = tmp_newv = newv_hi + newv_lo; + if (newv_lo & 0xF0) + { + newv -= 6; + bcd = 6; + }; + if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG () ? 1 : 0)) & 0x100) > 0xFF) + { + newv -= 0x60; + } + SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG () ? 1 : 0)) & 0x300) > 0xFF); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + put_byte (dsta,newv); + } + } + } + } + } + } + m68k_incpc (2); + return 17 * CYCLE_UNIT / 2; } /* OR.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_8110_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* OR.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_8118_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* OR.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_8120_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* OR.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_8128_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* OR.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_8130_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* OR.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_8138_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* OR.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_8139_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* PACK.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8140_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{ uae_u16 val = m68k_dreg (regs, srcreg) + get_iword (2); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & 0xffffff00) | ((val >> 4) & 0xf0) | (val & 0xf); -} m68k_incpc (4); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + uae_u16 val = m68k_dreg (regs, srcreg) + get_iword (2); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & 0xffffff00) | ((val >> 4) & 0xf0) | (val & 0xf); + } + m68k_incpc (4); + return 7 * CYCLE_UNIT / 2; } /* PACK.L -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_8148_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{ uae_u16 val; - m68k_areg (regs, srcreg) -= areg_byteinc[srcreg]; - val = (uae_u16)(get_byte (m68k_areg (regs, srcreg)) & 0xff); - m68k_areg (regs, srcreg) -= areg_byteinc[srcreg]; - val = (val | ((uae_u16)(get_byte (m68k_areg (regs, srcreg)) & 0xff) << 8)) + get_iword (2); - m68k_areg (regs, dstreg) -= areg_byteinc[dstreg]; - put_byte (m68k_areg (regs, dstreg),((val >> 4) & 0xf0) | (val & 0xf)); -} m68k_incpc (4); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + uae_u16 val; + m68k_areg (regs, srcreg) -= areg_byteinc[srcreg]; + val = (uae_u16)(get_byte (m68k_areg (regs, srcreg)) & 0xff); + m68k_areg (regs, srcreg) -= areg_byteinc[srcreg]; + val = (val | ((uae_u16)(get_byte (m68k_areg (regs, srcreg)) & 0xff) << 8)) + get_iword (2); + m68k_areg (regs, dstreg) -= areg_byteinc[dstreg]; + put_byte (m68k_areg (regs, dstreg),((val >> 4) & 0xf0) | (val & 0xf)); + } + m68k_incpc (4); + return 13 * CYCLE_UNIT / 2; } /* OR.W Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_8150_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* OR.W Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_8158_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* OR.W Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_8160_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* OR.W Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_8168_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* OR.W Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_8170_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* OR.W Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_8178_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* OR.W Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_8179_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* UNPK.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8180_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{ uae_u16 val = m68k_dreg (regs, srcreg); - val = (((val << 4) & 0xf00) | (val & 0xf)) + get_iword (2); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & 0xffff0000) | (val & 0xffff); -} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + uae_u16 val = m68k_dreg (regs, srcreg); + val = (((val << 4) & 0xf00) | (val & 0xf)) + get_iword (2); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & 0xffff0000) | (val & 0xffff); + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* UNPK.L -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_8188_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{ uae_u16 val; - m68k_areg (regs, srcreg) -= areg_byteinc[srcreg]; - val = (uae_u16)(get_byte (m68k_areg (regs, srcreg)) & 0xff); - val = (((val << 4) & 0xf00) | (val & 0xf)) + get_iword (2); - m68k_areg (regs, dstreg) -= 2 * areg_byteinc[dstreg]; - put_byte (m68k_areg (regs, dstreg) + areg_byteinc[dstreg], val); - put_byte (m68k_areg (regs, dstreg), val >> 8); -} m68k_incpc (4); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + uae_u16 val; + m68k_areg (regs, srcreg) -= areg_byteinc[srcreg]; + val = (uae_u16)(get_byte (m68k_areg (regs, srcreg)) & 0xff); + val = (((val << 4) & 0xf00) | (val & 0xf)) + get_iword (2); + m68k_areg (regs, dstreg) -= 2 * areg_byteinc[dstreg]; + put_byte (m68k_areg (regs, dstreg) + areg_byteinc[dstreg], val); + put_byte (m68k_areg (regs, dstreg), val >> 8); + } + m68k_incpc (4); + return 13 * CYCLE_UNIT / 2; } /* OR.L Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_8190_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* OR.L Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_8198_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* OR.L Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_81a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* OR.L Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_81a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* OR.L Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_81b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* OR.L Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_81b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* OR.L Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_81b9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* DIVS.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (2); - Exception (5); - return 4 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (2); -}}}return 57 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (2); + Exception (5); + return 4 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (2); + } + } + } + return 57 * CYCLE_UNIT / 2; } /* DIVS.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (2); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (2); -}}}}return 61 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (2); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (2); + } + } + } + } + return 61 * CYCLE_UNIT / 2; } /* DIVS.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (2); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (2); -}}}}return 61 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (2); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (2); + } + } + } + } + return 61 * CYCLE_UNIT / 2; } /* DIVS.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (2); - Exception (5); - return 10 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (2); -}}}}return 62 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (2); + Exception (5); + return 10 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (2); + } + } + } + } + return 62 * CYCLE_UNIT / 2; } /* DIVS.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (4); - Exception (5); - return 12 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (4); -}}}}return 63 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (4); + Exception (5); + return 12 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (4); + } + } + } + } + return 63 * CYCLE_UNIT / 2; } /* DIVS.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (0); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } -}}}}}return 65 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (0); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + return 65 * CYCLE_UNIT / 2; } /* DIVS.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81f8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (4); - Exception (5); - return 12 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (4); -}}}}return 63 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (4); + Exception (5); + return 12 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (4); + } + } + } + } + return 63 * CYCLE_UNIT / 2; } /* DIVS.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81f9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (6); - Exception (5); - return 16 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (6); -}}}}return 64 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (6); + Exception (5); + return 16 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (6); + } + } + } + } + return 64 * CYCLE_UNIT / 2; } /* DIVS.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81fa_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (4); - Exception (5); - return 12 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (4); -}}}}return 63 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (4); + Exception (5); + return 12 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (4); + } + } + } + } + return 63 * CYCLE_UNIT / 2; } /* DIVS.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81fb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (0); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } -}}}}}return 65 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (0); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + return 65 * CYCLE_UNIT / 2; } /* DIVS.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81fc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (4); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (4); -}}}return 60 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (4); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (4); + } + } + } + return 60 * CYCLE_UNIT / 2; } /* SUB.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9000_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* SUB.B (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9010_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* SUB.B (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9018_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* SUB.B -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9020_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* SUB.B (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9028_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* SUB.B (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9030_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* SUB.B (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9038_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* SUB.B (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9039_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* SUB.B (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_903a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* SUB.B (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_903b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* SUB.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_903c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* SUB.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9040_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* SUB.W An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9048_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* SUB.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9050_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* SUB.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9058_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* SUB.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9060_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* SUB.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9068_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* SUB.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9070_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* SUB.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9078_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* SUB.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9079_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* SUB.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_907a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* SUB.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_907b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* SUB.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_907c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* SUB.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9080_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* SUB.L An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9088_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* SUB.L (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9090_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* SUB.L (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9098_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* SUB.L -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* SUB.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* SUB.L (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* SUB.L (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* SUB.L (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90b9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* SUB.L (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90ba_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* SUB.L (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90bb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* SUB.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90bc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (6); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (6); + return 8 * CYCLE_UNIT / 2; } /* SUBA.W Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_90c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* SUBA.W An,An */ uae_u32 REGPARAM2 CPUFUNC(op_90c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* SUBA.W (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_90d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* SUBA.W (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_90d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* SUBA.W -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_90e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* SUBA.W (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_90e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* SUBA.W (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_90f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* SUBA.W (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_90f8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* SUBA.W (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_90f9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* SUBA.W (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_90fa_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* SUBA.W (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_90fb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* SUBA.W #.W,An */ uae_u32 REGPARAM2 CPUFUNC(op_90fc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* SUBX.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9100_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* SUBX.B -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9108_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{ uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (2); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 13 * CYCLE_UNIT / 2; } /* SUB.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9110_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* SUB.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_9118_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* SUB.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9120_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* SUB.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_9128_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* SUB.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_9130_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* SUB.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_9138_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* SUB.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_9139_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* SUBX.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9140_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* SUBX.W -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9148_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; -{ uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (2); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + { + uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 13 * CYCLE_UNIT / 2; } /* SUB.W Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9150_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* SUB.W Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_9158_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* SUB.W Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9160_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* SUB.W Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_9168_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* SUB.W Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_9170_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* SUB.W Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_9178_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* SUB.W Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_9179_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* SUBX.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9180_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* SUBX.L -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9188_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; -{ uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (2); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + { + uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 13 * CYCLE_UNIT / 2; } /* SUB.L Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9190_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* SUB.L Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_9198_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* SUB.L Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_91a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* SUB.L Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_91a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* SUB.L Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_91b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* SUB.L Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_91b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* SUB.L Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_91b9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* SUBA.L Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_91c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* SUBA.L An,An */ uae_u32 REGPARAM2 CPUFUNC(op_91c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* SUBA.L (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_91d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* SUBA.L (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_91d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* SUBA.L -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_91e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* SUBA.L (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_91e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* SUBA.L (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_91f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* SUBA.L (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_91f8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* SUBA.L (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_91f9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* SUBA.L (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_91fa_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* SUBA.L (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_91fb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* SUBA.L #.L,An */ uae_u32 REGPARAM2 CPUFUNC(op_91fc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (6); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (6); + return 8 * CYCLE_UNIT / 2; } /* CMP.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b000_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* CMP.B (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b010_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* CMP.B (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b018_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* CMP.B -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b020_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* CMP.B (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b028_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* CMP.B (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b030_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* CMP.B (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b038_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* CMP.B (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b039_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* CMP.B (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b03a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* CMP.B (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b03b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* CMP.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b03c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* CMP.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b040_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* CMP.W An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b048_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* CMP.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b050_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* CMP.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b058_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* CMP.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b060_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* CMP.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b068_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* CMP.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b070_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* CMP.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b078_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* CMP.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b079_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* CMP.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b07a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* CMP.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b07b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* CMP.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b07c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* CMP.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b080_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* CMP.L An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b088_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* CMP.L (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b090_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* CMP.L (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b098_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* CMP.L -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } #endif @@ -24732,4603 +38066,7165 @@ return 8 * CYCLE_UNIT / 2; /* CMP.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* CMP.L (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* CMP.L (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* CMP.L (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0b9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* CMP.L (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0ba_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* CMP.L (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0bb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* CMP.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0bc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (6); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (6); + return 8 * CYCLE_UNIT / 2; } /* CMPA.W Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_b0c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CMPA.W An,An */ uae_u32 REGPARAM2 CPUFUNC(op_b0c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CMPA.W (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_b0d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* CMPA.W (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_b0d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* CMPA.W -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_b0e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 9 * CYCLE_UNIT / 2; } /* CMPA.W (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_b0e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* CMPA.W (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_b0f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* CMPA.W (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_b0f8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* CMPA.W (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_b0f9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* CMPA.W (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_b0fa_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* CMPA.W (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_b0fb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* CMPA.W #.W,An */ uae_u32 REGPARAM2 CPUFUNC(op_b0fc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (4); -return 7 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (4); + return 7 * CYCLE_UNIT / 2; } /* EOR.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b100_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* CMPM.B (An)+,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_b108_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* EOR.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_b110_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* EOR.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_b118_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* EOR.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_b120_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* EOR.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_b128_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* EOR.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_b130_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* EOR.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_b138_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* EOR.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_b139_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* EOR.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b140_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* CMPM.W (An)+,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_b148_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* EOR.W Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_b150_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* EOR.W Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_b158_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* EOR.W Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_b160_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* EOR.W Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_b168_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* EOR.W Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_b170_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* EOR.W Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_b178_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* EOR.W Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_b179_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* EOR.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b180_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* CMPM.L (An)+,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_b188_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* EOR.L Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_b190_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* EOR.L Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_b198_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* EOR.L Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_b1a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* EOR.L Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_b1a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* EOR.L Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_b1b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* EOR.L Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_b1b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* EOR.L Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_b1b9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* CMPA.L Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_b1c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CMPA.L An,An */ uae_u32 REGPARAM2 CPUFUNC(op_b1c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CMPA.L (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_b1d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* CMPA.L (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_b1d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* CMPA.L -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_b1e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 9 * CYCLE_UNIT / 2; } /* CMPA.L (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_b1e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* CMPA.L (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_b1f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* CMPA.L (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_b1f8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* CMPA.L (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_b1f9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 11 * CYCLE_UNIT / 2; } /* CMPA.L (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_b1fa_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* CMPA.L (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_b1fb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* CMPA.L #.L,An */ uae_u32 REGPARAM2 CPUFUNC(op_b1fc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (6); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (6); + return 9 * CYCLE_UNIT / 2; } /* AND.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c000_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* AND.B (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c010_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* AND.B (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c018_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* AND.B -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c020_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* AND.B (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c028_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* AND.B (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c030_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* AND.B (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c038_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* AND.B (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c039_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* AND.B (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c03a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* AND.B (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c03b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* AND.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c03c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* AND.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c040_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* AND.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c050_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* AND.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c058_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* AND.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c060_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* AND.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c068_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* AND.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c070_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* AND.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c078_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* AND.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c079_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* AND.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c07a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* AND.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c07b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* AND.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c07c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* AND.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c080_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* AND.L (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c090_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* AND.L (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c098_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* AND.L -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* AND.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* AND.L (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* AND.L (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* AND.L (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0b9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* AND.L (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0ba_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* AND.L (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0bb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* AND.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0bc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (6); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (6); + return 8 * CYCLE_UNIT / 2; } /* MULU.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (2); -}}}}return 28 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (2); + } + } + } + } + return 28 * CYCLE_UNIT / 2; } /* MULU.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (2); -}}}}}return 32 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (2); + } + } + } + } + } + return 32 * CYCLE_UNIT / 2; } /* MULU.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (2); -}}}}}return 32 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (2); + } + } + } + } + } + return 32 * CYCLE_UNIT / 2; } /* MULU.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (2); -}}}}}return 33 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (2); + } + } + } + } + } + return 33 * CYCLE_UNIT / 2; } /* MULU.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (4); -}}}}}return 34 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (4); + } + } + } + } + } + return 34 * CYCLE_UNIT / 2; } /* MULU.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}return 36 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + return 36 * CYCLE_UNIT / 2; } /* MULU.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0f8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (4); -}}}}}return 34 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (4); + } + } + } + } + } + return 34 * CYCLE_UNIT / 2; } /* MULU.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0f9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (6); -}}}}}return 35 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (6); + } + } + } + } + } + return 35 * CYCLE_UNIT / 2; } /* MULU.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0fa_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (4); -}}}}}return 34 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (4); + } + } + } + } + } + return 34 * CYCLE_UNIT / 2; } /* MULU.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0fb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}return 36 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + return 36 * CYCLE_UNIT / 2; } /* MULU.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0fc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (4); -}}}}return 31 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (4); + } + } + } + } + return 31 * CYCLE_UNIT / 2; } /* ABCD.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c100_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{ uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); - uae_u16 newv, tmp_newv; - int cflg; - newv = tmp_newv = newv_hi + newv_lo; - if (newv_lo > 9) { newv += 6; } - cflg = (newv & 0x3F0) > 0x90; - if (cflg) newv += 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}} m68k_incpc (2); -return 5 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); + uae_u16 newv, tmp_newv; + int cflg; + newv = tmp_newv = newv_hi + newv_lo; + if (newv_lo > 9) + { + newv += 6; + } + cflg = (newv & 0x3F0) > 0x90; + if (cflg) newv += 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + m68k_incpc (2); + return 5 * CYCLE_UNIT / 2; } /* ABCD.B -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c108_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{ uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); - uae_u16 newv, tmp_newv; - int cflg; - newv = tmp_newv = newv_hi + newv_lo; - if (newv_lo > 9) { newv += 6; } - cflg = (newv & 0x3F0) > 0x90; - if (cflg) newv += 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - put_byte (dsta,newv); -}}}}}} m68k_incpc (2); -return 17 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); + uae_u16 newv, tmp_newv; + int cflg; + newv = tmp_newv = newv_hi + newv_lo; + if (newv_lo > 9) + { + newv += 6; + } + cflg = (newv & 0x3F0) > 0x90; + if (cflg) newv += 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + put_byte (dsta,newv); + } + } + } + } + } + } + m68k_incpc (2); + return 17 * CYCLE_UNIT / 2; } /* AND.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c110_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* AND.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_c118_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* AND.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c120_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* AND.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_c128_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* AND.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_c130_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* AND.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_c138_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* AND.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_c139_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta,src); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta,src); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* EXG.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c140_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - m68k_dreg (regs, srcreg) = (dst); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + m68k_dreg (regs, srcreg) = (dst); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* EXG.L An,An */ uae_u32 REGPARAM2 CPUFUNC(op_c148_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); - m68k_areg (regs, srcreg) = (dst); - m68k_areg (regs, dstreg) = (src); -}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + m68k_areg (regs, srcreg) = (dst); + m68k_areg (regs, dstreg) = (src); + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* AND.W Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c150_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* AND.W Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_c158_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* AND.W Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c160_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* AND.W Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_c168_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* AND.W Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_c170_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* AND.W Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_c178_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* AND.W Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_c179_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta,src); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta,src); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* EXG.L Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_c188_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); - m68k_dreg (regs, srcreg) = (dst); - m68k_areg (regs, dstreg) = (src); -}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + m68k_dreg (regs, srcreg) = (dst); + m68k_areg (regs, dstreg) = (src); + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* AND.L Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c190_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* AND.L Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_c198_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* AND.L Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c1a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* AND.L Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_c1a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* AND.L Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_c1b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* AND.L Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_c1b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* AND.L Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_c1b9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta,src); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta,src); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* MULS.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 28 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 28 * CYCLE_UNIT / 2; } /* MULS.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 32 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 32 * CYCLE_UNIT / 2; } /* MULS.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 32 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 32 * CYCLE_UNIT / 2; } /* MULS.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 33 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 33 * CYCLE_UNIT / 2; } /* MULS.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 34 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 34 * CYCLE_UNIT / 2; } /* MULS.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}return 36 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + return 36 * CYCLE_UNIT / 2; } /* MULS.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1f8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 34 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 34 * CYCLE_UNIT / 2; } /* MULS.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1f9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (6); -return 35 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (6); + return 35 * CYCLE_UNIT / 2; } /* MULS.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1fa_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 34 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 34 * CYCLE_UNIT / 2; } /* MULS.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1fb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}return 36 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + return 36 * CYCLE_UNIT / 2; } /* MULS.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1fc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); -}}}} m68k_incpc (4); -return 31 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (4); + return 31 * CYCLE_UNIT / 2; } /* ADD.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d000_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* ADD.B (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d010_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* ADD.B (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d018_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* ADD.B -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d020_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ADD.B (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d028_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* ADD.B (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d030_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* ADD.B (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d038_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* ADD.B (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d039_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* ADD.B (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d03a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* ADD.B (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d03b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* ADD.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d03c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* ADD.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d040_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* ADD.W An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d048_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* ADD.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d050_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* ADD.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d058_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* ADD.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d060_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ADD.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d068_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* ADD.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d070_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* ADD.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d078_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* ADD.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d079_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* ADD.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d07a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* ADD.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d07b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* ADD.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d07c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* ADD.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d080_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* ADD.L An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d088_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* ADD.L (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d090_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* ADD.L (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d098_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* ADD.L -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ADD.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* ADD.L (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* ADD.L (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* ADD.L (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0b9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* ADD.L (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0ba_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* ADD.L (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0bb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* ADD.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0bc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (6); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (6); + return 8 * CYCLE_UNIT / 2; } /* ADDA.W Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_d0c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* ADDA.W An,An */ uae_u32 REGPARAM2 CPUFUNC(op_d0c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* ADDA.W (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_d0d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* ADDA.W (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_d0d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* ADDA.W -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_d0e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ADDA.W (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_d0e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* ADDA.W (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_d0f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* ADDA.W (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_d0f8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* ADDA.W (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_d0f9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* ADDA.W (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_d0fa_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* ADDA.W (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_d0fb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* ADDA.W #.W,An */ uae_u32 REGPARAM2 CPUFUNC(op_d0fc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (4); -return 6 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (4); + return 6 * CYCLE_UNIT / 2; } /* ADDX.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d100_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* ADDX.B -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d108_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{ uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (2); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 13 * CYCLE_UNIT / 2; } /* ADD.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d110_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* ADD.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_d118_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* ADD.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d120_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* ADD.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_d128_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ADD.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_d130_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* ADD.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_d138_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ADD.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_d139_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta,newv); -}}}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* ADDX.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d140_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* ADDX.W -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d148_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; -{ uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (2); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + { + uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 13 * CYCLE_UNIT / 2; } /* ADD.W Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d150_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* ADD.W Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_d158_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* ADD.W Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d160_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* ADD.W Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_d168_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ADD.W Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_d170_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* ADD.W Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_d178_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ADD.W Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_d179_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta,newv); -}}}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* ADDX.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d180_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* ADDX.L -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d188_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; -{ uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (2); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + { + uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 13 * CYCLE_UNIT / 2; } /* ADD.L Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d190_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* ADD.L Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_d198_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* ADD.L Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d1a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* ADD.L Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_d1a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ADD.L Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_d1b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - m68k_incpc (2); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + m68k_incpc (2); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* ADD.L Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_d1b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ADD.L Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_d1b9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta,newv); -}}}}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta,newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* ADDA.L Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_d1c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* ADDA.L An,An */ uae_u32 REGPARAM2 CPUFUNC(op_d1c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 3 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 3 * CYCLE_UNIT / 2; } /* ADDA.L (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_d1d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* ADDA.L (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_d1d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 7 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 7 * CYCLE_UNIT / 2; } /* ADDA.L -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_d1e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ADDA.L (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_d1e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* ADDA.L (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_d1f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* ADDA.L (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_d1f8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* ADDA.L (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_d1f9_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (6); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (6); + return 10 * CYCLE_UNIT / 2; } /* ADDA.L (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_d1fa_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 9 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 9 * CYCLE_UNIT / 2; } /* ADDA.L (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_d1fb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - m68k_incpc (2); -{ tmppc = m68k_getpc (); - srca = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}}return 11 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + m68k_incpc (2); + { + tmppc = m68k_getpc (); + srca = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + return 11 * CYCLE_UNIT / 2; } /* ADDA.L #.L,An */ uae_u32 REGPARAM2 CPUFUNC(op_d1fc_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (6); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (6); + return 8 * CYCLE_UNIT / 2; } /* ASRQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e000_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - uae_u32 sign = (0x80 & val) >> 7; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - val = 0xff & (uae_u32)-sign; - SET_CFLG (sign); - COPY_CARRY (); - } else { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - val |= (0xff << (8 - cnt)) & (uae_u32)-sign; - val &= 0xff; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + uae_u32 sign = (0x80 & val) >> 7; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + val = 0xff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY (); + } + else + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + val |= (0xff << (8 - cnt)) & (uae_u32)-sign; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* LSRQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e008_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - SET_CFLG ((cnt == 8) & (val >> 7)); - COPY_CARRY (); - val = 0; - } else { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + SET_CFLG ((cnt == 8) & (val >> 7)); + COPY_CARRY (); + val = 0; + } + else + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* ROXRQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e010_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); -{ cnt--; - { - uae_u32 carry; - uae_u32 hival = (val << 1) | GET_XFLG (); - hival <<= (7 - cnt); - val >>= cnt; - carry = val & 1; - val >>= 1; - val |= hival; - SET_XFLG (carry); - val &= 0xff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG (); + hival <<= (7 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* RORQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e018_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); -{ uae_u32 hival; - cnt &= 7; - hival = val << (8 - cnt); - val >>= cnt; - val |= hival; - val &= 0xff; - SET_CFLG ((val & 0x80) >> 7); - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + { + uae_u32 hival; + cnt &= 7; + hival = val << (8 - cnt); + val >>= cnt; + val |= hival; + val &= 0xff; + SET_CFLG ((val & 0x80) >> 7); + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ASR.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e020_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - uae_u32 sign = (0x80 & val) >> 7; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - val = 0xff & (uae_u32)-sign; - SET_CFLG (sign); - COPY_CARRY (); - } else if (cnt > 0) { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - val |= (0xff << (8 - cnt)) & (uae_u32)-sign; - val &= 0xff; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + uae_u32 sign = (0x80 & val) >> 7; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + val = 0xff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY (); + } + else if (cnt > 0) + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + val |= (0xff << (8 - cnt)) & (uae_u32)-sign; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* LSR.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e028_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - SET_CFLG ((cnt == 8) & (val >> 7)); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + SET_CFLG ((cnt == 8) & (val >> 7)); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* ROXR.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e030_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 36) cnt -= 36; - if (cnt >= 18) cnt -= 18; - if (cnt >= 9) cnt -= 9; - if (cnt > 0) { - cnt--; - { - uae_u32 carry; - uae_u32 hival = (val << 1) | GET_XFLG (); - hival <<= (7 - cnt); - val >>= cnt; - carry = val & 1; - val >>= 1; - val |= hival; - SET_XFLG (carry); - val &= 0xff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 36) cnt -= 36; + if (cnt >= 18) cnt -= 18; + if (cnt >= 9) cnt -= 9; + if (cnt > 0) + { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG (); + hival <<= (7 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ROR.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e038_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt > 0) { uae_u32 hival; - cnt &= 7; - hival = val << (8 - cnt); - val >>= cnt; - val |= hival; - val &= 0xff; - SET_CFLG ((val & 0x80) >> 7); - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt > 0) + { + uae_u32 hival; + cnt &= 7; + hival = val << (8 - cnt); + val >>= cnt; + val |= hival; + val &= 0xff; + SET_CFLG ((val & 0x80) >> 7); + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ASRQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e040_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = (0x8000 & val) >> 15; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - val = 0xffff & (uae_u32)-sign; - SET_CFLG (sign); - COPY_CARRY (); - } else { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - val |= (0xffff << (16 - cnt)) & (uae_u32)-sign; - val &= 0xffff; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = (0x8000 & val) >> 15; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + val = 0xffff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY (); + } + else + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + val |= (0xffff << (16 - cnt)) & (uae_u32)-sign; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } #endif @@ -29337,4612 +45233,6624 @@ return 6 * CYCLE_UNIT / 2; /* LSRQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e048_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - SET_CFLG ((cnt == 16) & (val >> 15)); - COPY_CARRY (); - val = 0; - } else { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + SET_CFLG ((cnt == 16) & (val >> 15)); + COPY_CARRY (); + val = 0; + } + else + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* ROXRQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e050_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); -{ cnt--; - { - uae_u32 carry; - uae_u32 hival = (val << 1) | GET_XFLG (); - hival <<= (15 - cnt); - val >>= cnt; - carry = val & 1; - val >>= 1; - val |= hival; - SET_XFLG (carry); - val &= 0xffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG (); + hival <<= (15 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* RORQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e058_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); -{ uae_u32 hival; - cnt &= 15; - hival = val << (16 - cnt); - val >>= cnt; - val |= hival; - val &= 0xffff; - SET_CFLG ((val & 0x8000) >> 15); - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + { + uae_u32 hival; + cnt &= 15; + hival = val << (16 - cnt); + val >>= cnt; + val |= hival; + val &= 0xffff; + SET_CFLG ((val & 0x8000) >> 15); + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ASR.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e060_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = (0x8000 & val) >> 15; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - val = 0xffff & (uae_u32)-sign; - SET_CFLG (sign); - COPY_CARRY (); - } else if (cnt > 0) { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - val |= (0xffff << (16 - cnt)) & (uae_u32)-sign; - val &= 0xffff; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = (0x8000 & val) >> 15; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + val = 0xffff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY (); + } + else if (cnt > 0) + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + val |= (0xffff << (16 - cnt)) & (uae_u32)-sign; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* LSR.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e068_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - SET_CFLG ((cnt == 16) & (val >> 15)); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + SET_CFLG ((cnt == 16) & (val >> 15)); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* ROXR.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e070_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 34) cnt -= 34; - if (cnt >= 17) cnt -= 17; - if (cnt > 0) { - cnt--; - { - uae_u32 carry; - uae_u32 hival = (val << 1) | GET_XFLG (); - hival <<= (15 - cnt); - val >>= cnt; - carry = val & 1; - val >>= 1; - val |= hival; - SET_XFLG (carry); - val &= 0xffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 34) cnt -= 34; + if (cnt >= 17) cnt -= 17; + if (cnt > 0) + { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG (); + hival <<= (15 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ROR.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e078_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt > 0) { uae_u32 hival; - cnt &= 15; - hival = val << (16 - cnt); - val >>= cnt; - val |= hival; - val &= 0xffff; - SET_CFLG ((val & 0x8000) >> 15); - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt > 0) + { + uae_u32 hival; + cnt &= 15; + hival = val << (16 - cnt); + val >>= cnt; + val |= hival; + val &= 0xffff; + SET_CFLG ((val & 0x8000) >> 15); + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ASRQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e080_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - uae_u32 sign = (0x80000000 & val) >> 31; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - val = 0xffffffff & (uae_u32)-sign; - SET_CFLG (sign); - COPY_CARRY (); - } else { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign; - val &= 0xffffffff; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + uae_u32 sign = (0x80000000 & val) >> 31; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + val = 0xffffffff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY (); + } + else + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* LSRQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e088_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - SET_CFLG ((cnt == 32) & (val >> 31)); - COPY_CARRY (); - val = 0; - } else { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + SET_CFLG ((cnt == 32) & (val >> 31)); + COPY_CARRY (); + val = 0; + } + else + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* ROXRQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e090_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); -{ cnt--; - { - uae_u32 carry; - uae_u32 hival = (val << 1) | GET_XFLG (); - hival <<= (31 - cnt); - val >>= cnt; - carry = val & 1; - val >>= 1; - val |= hival; - SET_XFLG (carry); - val &= 0xffffffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG (); + hival <<= (31 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xffffffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* RORQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e098_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); -{ uae_u32 hival; - cnt &= 31; - hival = val << (32 - cnt); - val >>= cnt; - val |= hival; - val &= 0xffffffff; - SET_CFLG ((val & 0x80000000) >> 31); - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + { + uae_u32 hival; + cnt &= 31; + hival = val << (32 - cnt); + val >>= cnt; + val |= hival; + val &= 0xffffffff; + SET_CFLG ((val & 0x80000000) >> 31); + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ASR.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e0a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - uae_u32 sign = (0x80000000 & val) >> 31; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - val = 0xffffffff & (uae_u32)-sign; - SET_CFLG (sign); - COPY_CARRY (); - } else if (cnt > 0) { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign; - val &= 0xffffffff; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + uae_u32 sign = (0x80000000 & val) >> 31; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + val = 0xffffffff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY (); + } + else if (cnt > 0) + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* LSR.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e0a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - SET_CFLG ((cnt == 32) & (val >> 31)); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + SET_CFLG ((cnt == 32) & (val >> 31)); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* ROXR.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e0b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 33) cnt -= 33; - if (cnt > 0) { - cnt--; - { - uae_u32 carry; - uae_u32 hival = (val << 1) | GET_XFLG (); - hival <<= (31 - cnt); - val >>= cnt; - carry = val & 1; - val >>= 1; - val |= hival; - SET_XFLG (carry); - val &= 0xffffffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 33) cnt -= 33; + if (cnt > 0) + { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG (); + hival <<= (31 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xffffffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ROR.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e0b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt > 0) { uae_u32 hival; - cnt &= 31; - hival = val << (32 - cnt); - val >>= cnt; - val |= hival; - val &= 0xffffffff; - SET_CFLG ((val & 0x80000000) >> 31); - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt > 0) + { + uae_u32 hival; + cnt &= 31; + hival = val << (32 - cnt); + val >>= cnt; + val |= hival; + val &= 0xffffffff; + SET_CFLG ((val & 0x80000000) >> 31); + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ASRW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e0d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* ASRW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e0d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* ASRW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e0e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* ASRW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e0e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ASRW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e0f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - m68k_incpc (2); -{ dataa = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY (); - put_word (dataa,val); -}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + m68k_incpc (2); + { + dataa = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* ASRW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e0f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ASRW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e0f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = get_ilong (2); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = get_ilong (2); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* ASLQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e100_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 8 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else { - uae_u32 mask = (0xff << (7 - cnt)) & 0xff; - SET_VFLG ((val & mask) != mask && (val & mask) != 0); - val <<= cnt - 1; - SET_CFLG ((val & 0x80) >> 7); - COPY_CARRY (); - val <<= 1; - val &= 0xff; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + SET_VFLG (val != 0); + SET_CFLG (cnt == 8 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else + { + uae_u32 mask = (0xff << (7 - cnt)) & 0xff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x80) >> 7); + COPY_CARRY (); + val <<= 1; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* LSLQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e108_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - SET_CFLG (cnt == 8 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else { - val <<= (cnt - 1); - SET_CFLG ((val & 0x80) >> 7); - COPY_CARRY (); - val <<= 1; - val &= 0xff; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + SET_CFLG (cnt == 8 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else + { + val <<= (cnt - 1); + SET_CFLG ((val & 0x80) >> 7); + COPY_CARRY (); + val <<= 1; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* ROXLQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e110_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); -{ cnt--; - { - uae_u32 carry; - uae_u32 loval = val >> (7 - cnt); - carry = loval & 1; - val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); - SET_XFLG (carry); - val &= 0xff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (7 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ROLQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e118_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); -{ uae_u32 loval; - cnt &= 7; - loval = val >> (8 - cnt); - val <<= cnt; - val |= loval; - val &= 0xff; - SET_CFLG (val & 1); -} - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + { + uae_u32 loval; + cnt &= 7; + loval = val >> (8 - cnt); + val <<= cnt; + val |= loval; + val &= 0xff; + SET_CFLG (val & 1); + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ASL.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e120_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 8 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - uae_u32 mask = (0xff << (7 - cnt)) & 0xff; - SET_VFLG ((val & mask) != mask && (val & mask) != 0); - val <<= cnt - 1; - SET_CFLG ((val & 0x80) >> 7); - COPY_CARRY (); - val <<= 1; - val &= 0xff; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + SET_VFLG (val != 0); + SET_CFLG (cnt == 8 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + uae_u32 mask = (0xff << (7 - cnt)) & 0xff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x80) >> 7); + COPY_CARRY (); + val <<= 1; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* LSL.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e128_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - SET_CFLG (cnt == 8 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - val <<= (cnt - 1); - SET_CFLG ((val & 0x80) >> 7); - COPY_CARRY (); - val <<= 1; - val &= 0xff; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + SET_CFLG (cnt == 8 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + val <<= (cnt - 1); + SET_CFLG ((val & 0x80) >> 7); + COPY_CARRY (); + val <<= 1; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* ROXL.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e130_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 36) cnt -= 36; - if (cnt >= 18) cnt -= 18; - if (cnt >= 9) cnt -= 9; - if (cnt > 0) { - cnt--; - { - uae_u32 carry; - uae_u32 loval = val >> (7 - cnt); - carry = loval & 1; - val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); - SET_XFLG (carry); - val &= 0xff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 36) cnt -= 36; + if (cnt >= 18) cnt -= 18; + if (cnt >= 9) cnt -= 9; + if (cnt > 0) + { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (7 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ROL.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e138_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt > 0) { - uae_u32 loval; - cnt &= 7; - loval = val >> (8 - cnt); - val <<= cnt; - val |= loval; - val &= 0xff; - SET_CFLG (val & 1); -} - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt > 0) + { + uae_u32 loval; + cnt &= 7; + loval = val >> (8 - cnt); + val <<= cnt; + val |= loval; + val &= 0xff; + SET_CFLG (val & 1); + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ASLQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e140_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 16 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else { - uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff; - SET_VFLG ((val & mask) != mask && (val & mask) != 0); - val <<= cnt - 1; - SET_CFLG ((val & 0x8000) >> 15); - COPY_CARRY (); - val <<= 1; - val &= 0xffff; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + SET_VFLG (val != 0); + SET_CFLG (cnt == 16 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else + { + uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x8000) >> 15); + COPY_CARRY (); + val <<= 1; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* LSLQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e148_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - SET_CFLG (cnt == 16 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else { - val <<= (cnt - 1); - SET_CFLG ((val & 0x8000) >> 15); - COPY_CARRY (); - val <<= 1; - val &= 0xffff; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + SET_CFLG (cnt == 16 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else + { + val <<= (cnt - 1); + SET_CFLG ((val & 0x8000) >> 15); + COPY_CARRY (); + val <<= 1; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* ROXLQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e150_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); -{ cnt--; - { - uae_u32 carry; - uae_u32 loval = val >> (15 - cnt); - carry = loval & 1; - val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); - SET_XFLG (carry); - val &= 0xffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (15 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ROLQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e158_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); -{ uae_u32 loval; - cnt &= 15; - loval = val >> (16 - cnt); - val <<= cnt; - val |= loval; - val &= 0xffff; - SET_CFLG (val & 1); -} - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + { + uae_u32 loval; + cnt &= 15; + loval = val >> (16 - cnt); + val <<= cnt; + val |= loval; + val &= 0xffff; + SET_CFLG (val & 1); + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ASL.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e160_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 16 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff; - SET_VFLG ((val & mask) != mask && (val & mask) != 0); - val <<= cnt - 1; - SET_CFLG ((val & 0x8000) >> 15); - COPY_CARRY (); - val <<= 1; - val &= 0xffff; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + SET_VFLG (val != 0); + SET_CFLG (cnt == 16 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x8000) >> 15); + COPY_CARRY (); + val <<= 1; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* LSL.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e168_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - SET_CFLG (cnt == 16 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - val <<= (cnt - 1); - SET_CFLG ((val & 0x8000) >> 15); - COPY_CARRY (); - val <<= 1; - val &= 0xffff; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + SET_CFLG (cnt == 16 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + val <<= (cnt - 1); + SET_CFLG ((val & 0x8000) >> 15); + COPY_CARRY (); + val <<= 1; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* ROXL.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e170_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 34) cnt -= 34; - if (cnt >= 17) cnt -= 17; - if (cnt > 0) { - cnt--; - { - uae_u32 carry; - uae_u32 loval = val >> (15 - cnt); - carry = loval & 1; - val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); - SET_XFLG (carry); - val &= 0xffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 34) cnt -= 34; + if (cnt >= 17) cnt -= 17; + if (cnt > 0) + { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (15 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ROL.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e178_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt > 0) { - uae_u32 loval; - cnt &= 15; - loval = val >> (16 - cnt); - val <<= cnt; - val |= loval; - val &= 0xffff; - SET_CFLG (val & 1); -} - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt > 0) + { + uae_u32 loval; + cnt &= 15; + loval = val >> (16 - cnt); + val <<= cnt; + val |= loval; + val &= 0xffff; + SET_CFLG (val & 1); + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ASLQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e180_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 32 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else { - uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff; - SET_VFLG ((val & mask) != mask && (val & mask) != 0); - val <<= cnt - 1; - SET_CFLG ((val & 0x80000000) >> 31); - COPY_CARRY (); - val <<= 1; - val &= 0xffffffff; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + SET_VFLG (val != 0); + SET_CFLG (cnt == 32 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else + { + uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x80000000) >> 31); + COPY_CARRY (); + val <<= 1; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* LSLQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e188_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - SET_CFLG (cnt == 32 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else { - val <<= (cnt - 1); - SET_CFLG ((val & 0x80000000) >> 31); - COPY_CARRY (); - val <<= 1; - val &= 0xffffffff; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + SET_CFLG (cnt == 32 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else + { + val <<= (cnt - 1); + SET_CFLG ((val & 0x80000000) >> 31); + COPY_CARRY (); + val <<= 1; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* ROXLQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e190_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); -{ cnt--; - { - uae_u32 carry; - uae_u32 loval = val >> (31 - cnt); - carry = loval & 1; - val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); - SET_XFLG (carry); - val &= 0xffffffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (31 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xffffffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ROLQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e198_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); -{ uae_u32 loval; - cnt &= 31; - loval = val >> (32 - cnt); - val <<= cnt; - val |= loval; - val &= 0xffffffff; - SET_CFLG (val & 1); -} - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + { + uae_u32 loval; + cnt &= 31; + loval = val >> (32 - cnt); + val <<= cnt; + val |= loval; + val &= 0xffffffff; + SET_CFLG (val & 1); + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ASL.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e1a0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 32 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff; - SET_VFLG ((val & mask) != mask && (val & mask) != 0); - val <<= cnt - 1; - SET_CFLG ((val & 0x80000000) >> 31); - COPY_CARRY (); - val <<= 1; - val &= 0xffffffff; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + SET_VFLG (val != 0); + SET_CFLG (cnt == 32 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x80000000) >> 31); + COPY_CARRY (); + val <<= 1; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* LSL.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e1a8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - SET_CFLG (cnt == 32 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - val <<= (cnt - 1); - SET_CFLG ((val & 0x80000000) >> 31); - COPY_CARRY (); - val <<= 1; - val &= 0xffffffff; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + SET_CFLG (cnt == 32 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + val <<= (cnt - 1); + SET_CFLG ((val & 0x80000000) >> 31); + COPY_CARRY (); + val <<= 1; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* ROXL.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e1b0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 33) cnt -= 33; - if (cnt > 0) { - cnt--; - { - uae_u32 carry; - uae_u32 loval = val >> (31 - cnt); - carry = loval & 1; - val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); - SET_XFLG (carry); - val &= 0xffffffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 33) cnt -= 33; + if (cnt > 0) + { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (31 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xffffffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ROL.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e1b8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt > 0) { - uae_u32 loval; - cnt &= 31; - loval = val >> (32 - cnt); - val <<= cnt; - val |= loval; - val &= 0xffffffff; - SET_CFLG (val & 1); -} - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt > 0) + { + uae_u32 loval; + cnt &= 31; + loval = val >> (32 - cnt); + val <<= cnt; + val |= loval; + val &= 0xffffffff; + SET_CFLG (val & 1); + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ASLW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e1d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 sign2; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY (); - SET_VFLG (GET_VFLG () | (sign2 != sign)); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY (); + SET_VFLG (GET_VFLG () | (sign2 != sign)); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* ASLW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e1d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 sign2; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY (); - SET_VFLG (GET_VFLG () | (sign2 != sign)); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY (); + SET_VFLG (GET_VFLG () | (sign2 != sign)); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* ASLW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e1e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 sign2; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY (); - SET_VFLG (GET_VFLG () | (sign2 != sign)); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY (); + SET_VFLG (GET_VFLG () | (sign2 != sign)); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ASLW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e1e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 sign2; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY (); - SET_VFLG (GET_VFLG () | (sign2 != sign)); - put_word (dataa,val); -}}}} m68k_incpc (4); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY (); + SET_VFLG (GET_VFLG () | (sign2 != sign)); + put_word (dataa,val); + } + } + } + } + m68k_incpc (4); + return 13 * CYCLE_UNIT / 2; } /* ASLW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e1f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - m68k_incpc (2); -{ dataa = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 sign2; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY (); - SET_VFLG (GET_VFLG () | (sign2 != sign)); - put_word (dataa,val); -}}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + m68k_incpc (2); + { + dataa = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY (); + SET_VFLG (GET_VFLG () | (sign2 != sign)); + put_word (dataa,val); + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* ASLW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e1f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 sign2; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY (); - SET_VFLG (GET_VFLG () | (sign2 != sign)); - put_word (dataa,val); -}}}} m68k_incpc (4); -return 13 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY (); + SET_VFLG (GET_VFLG () | (sign2 != sign)); + put_word (dataa,val); + } + } + } + } + m68k_incpc (4); + return 13 * CYCLE_UNIT / 2; } /* ASLW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e1f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = get_ilong (2); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 sign2; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY (); - SET_VFLG (GET_VFLG () | (sign2 != sign)); - put_word (dataa,val); -}}}} m68k_incpc (6); -return 14 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = get_ilong (2); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY (); + SET_VFLG (GET_VFLG () | (sign2 != sign)); + put_word (dataa,val); + } + } + } + } + m68k_incpc (6); + return 14 * CYCLE_UNIT / 2; } /* LSRW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e2d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 carry = val & 1; - val >>= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* LSRW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e2d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; -{ uae_u32 val = (uae_u16)data; - uae_u32 carry = val & 1; - val >>= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + { + uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* LSRW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e2e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; -{ uae_u32 val = (uae_u16)data; - uae_u32 carry = val & 1; - val >>= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + { + uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* LSRW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e2e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 carry = val & 1; - val >>= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* LSRW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e2f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - m68k_incpc (2); -{ dataa = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 carry = val & 1; - val >>= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa,val); -}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + m68k_incpc (2); + { + dataa = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* LSRW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e2f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 carry = val & 1; - val >>= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* LSRW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e2f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = get_ilong (2); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 carry = val & 1; - val >>= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = get_ilong (2); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* LSLW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e3d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* LSLW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e3d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* LSLW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e3e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* LSLW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e3e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* LSLW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e3f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - m68k_incpc (2); -{ dataa = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa,val); -}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + m68k_incpc (2); + { + dataa = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* LSLW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e3f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* LSLW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e3f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = get_ilong (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = get_ilong (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* ROXRW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e4d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (GET_XFLG ()) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG ()) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* ROXRW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e4d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (GET_XFLG ()) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG ()) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 13 * CYCLE_UNIT / 2; } /* ROXRW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e4e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (GET_XFLG ()) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG ()) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* ROXRW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e4e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (GET_XFLG ()) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG ()) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ROXRW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e4f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - m68k_incpc (2); -{ dataa = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (GET_XFLG ()) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa,val); -}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + m68k_incpc (2); + { + dataa = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG ()) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* ROXRW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e4f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (GET_XFLG ()) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG ()) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ROXRW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e4f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = get_ilong (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (GET_XFLG ()) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = get_ilong (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG ()) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* ROXLW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e5d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (GET_XFLG ()) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG ()) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* ROXLW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e5d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (GET_XFLG ()) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG ()) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* ROXLW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e5e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (GET_XFLG ()) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG ()) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* ROXLW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e5e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (GET_XFLG ()) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG ()) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ROXLW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e5f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - m68k_incpc (2); -{ dataa = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (GET_XFLG ()) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa,val); -}}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + m68k_incpc (2); + { + dataa = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG ()) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* ROXLW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e5f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (GET_XFLG ()) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG ()) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ROXLW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e5f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = get_ilong (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (GET_XFLG ()) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa,val); -}}}} m68k_incpc (6); -return 13 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = get_ilong (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG ()) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa,val); + } + } + } + } + m68k_incpc (6); + return 13 * CYCLE_UNIT / 2; } /* RORW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e6d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* RORW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e6d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* RORW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e6e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* RORW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e6e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - put_word (dataa,val); -}}}} m68k_incpc (4); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + put_word (dataa,val); + } + } + } + } + m68k_incpc (4); + return 13 * CYCLE_UNIT / 2; } /* RORW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e6f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - m68k_incpc (2); -{ dataa = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - put_word (dataa,val); -}}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + m68k_incpc (2); + { + dataa = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + put_word (dataa,val); + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* RORW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e6f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - put_word (dataa,val); -}}}} m68k_incpc (4); -return 13 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + put_word (dataa,val); + } + } + } + } + m68k_incpc (4); + return 13 * CYCLE_UNIT / 2; } /* RORW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e6f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = get_ilong (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - put_word (dataa,val); -}}}} m68k_incpc (6); -return 14 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = get_ilong (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + put_word (dataa,val); + } + } + } + } + m68k_incpc (6); + return 14 * CYCLE_UNIT / 2; } /* ROLW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e7d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* ROLW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e7d8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 11 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 11 * CYCLE_UNIT / 2; } /* ROLW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e7e0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - put_word (dataa,val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + put_word (dataa,val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ROLW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e7e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - put_word (dataa,val); -}}}} m68k_incpc (4); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + put_word (dataa,val); + } + } + } + } + m68k_incpc (4); + return 13 * CYCLE_UNIT / 2; } /* ROLW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e7f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - m68k_incpc (2); -{ dataa = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - put_word (dataa,val); -}}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + m68k_incpc (2); + { + dataa = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + put_word (dataa,val); + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* ROLW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e7f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - put_word (dataa,val); -}}}} m68k_incpc (4); -return 13 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + put_word (dataa,val); + } + } + } + } + m68k_incpc (4); + return 13 * CYCLE_UNIT / 2; } /* ROLW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e7f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = get_ilong (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - put_word (dataa,val); -}}}} m68k_incpc (6); -return 14 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = get_ilong (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + put_word (dataa,val); + } + } + } + } + m68k_incpc (6); + return 14 * CYCLE_UNIT / 2; } /* BFTST.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e8c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp = m68k_dreg(regs, dstreg); - offset &= 0x1f; - tmp = (tmp << offset) | (tmp >> (32 - offset)); - bdata[0] = tmp & ((1 << (32 - width)) - 1); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); -}}}} m68k_incpc (4); -return 7 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp = m68k_dreg(regs, dstreg); + offset &= 0x1f; + tmp = (tmp << offset) | (tmp >> (32 - offset)); + bdata[0] = tmp & ((1 << (32 - width)) - 1); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + } + } + } + } + m68k_incpc (4); + return 7 * CYCLE_UNIT / 2; } /* BFTST.L #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e8d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); -}}}} m68k_incpc (4); -return 15 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + } + } + } + } + m68k_incpc (4); + return 15 * CYCLE_UNIT / 2; } /* BFTST.L #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e8e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); -}}}} m68k_incpc (6); -return 25 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + } + } + } + } + m68k_incpc (6); + return 25 * CYCLE_UNIT / 2; } /* BFTST.L #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e8f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); -}}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + } + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* BFTST.L #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e8f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); -}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2; } /* BFTST.L #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e8f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); -}}}} m68k_incpc (8); -return 18 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + } + } + } + } + m68k_incpc (8); + return 18 * CYCLE_UNIT / 2; } /* BFTST.L #.W,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_e8fa_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 2; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_getpc () + 4; - dsta += (uae_s32)(uae_s16)get_iword (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); -}}}} m68k_incpc (6); -return 25 * CYCLE_UNIT / 2; + uae_u32 dstreg = 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + } + } + } + } + m68k_incpc (6); + return 25 * CYCLE_UNIT / 2; } /* BFTST.L #.W,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e8fb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 3; -{{ uae_s16 extra = get_iword (2); -{ uaecptr tmppc; - uaecptr dsta; - m68k_incpc (4); -{ tmppc = m68k_getpc (); - dsta = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); -}}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = 3; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr tmppc; + uaecptr dsta; + m68k_incpc (4); + { + tmppc = m68k_getpc (); + dsta = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + } + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* BFEXTU.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e9c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp = m68k_dreg(regs, dstreg); - offset &= 0x1f; - tmp = (tmp << offset) | (tmp >> (32 - offset)); - bdata[0] = tmp & ((1 << (32 - width)) - 1); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - m68k_dreg (regs, (extra >> 12) & 7) = tmp; -}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp = m68k_dreg(regs, dstreg); + offset &= 0x1f; + tmp = (tmp << offset) | (tmp >> (32 - offset)); + bdata[0] = tmp & ((1 << (32 - width)) - 1); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + m68k_dreg (regs, (extra >> 12) & 7) = tmp; + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* BFEXTU.L #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e9d0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - m68k_dreg (regs, (extra >> 12) & 7) = tmp; -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + m68k_dreg (regs, (extra >> 12) & 7) = tmp; + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* BFEXTU.L #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e9e8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - m68k_dreg (regs, (extra >> 12) & 7) = tmp; -}}}} m68k_incpc (6); -return 26 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + m68k_dreg (regs, (extra >> 12) & 7) = tmp; + } + } + } + } + m68k_incpc (6); + return 26 * CYCLE_UNIT / 2; } /* BFEXTU.L #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e9f0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - m68k_dreg (regs, (extra >> 12) & 7) = tmp; -}}}}}return 21 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + m68k_dreg (regs, (extra >> 12) & 7) = tmp; + } + } + } + } + } + return 21 * CYCLE_UNIT / 2; } /* BFEXTU.L #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e9f8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - m68k_dreg (regs, (extra >> 12) & 7) = tmp; -}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + m68k_dreg (regs, (extra >> 12) & 7) = tmp; + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2; } /* BFEXTU.L #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e9f9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - m68k_dreg (regs, (extra >> 12) & 7) = tmp; -}}}} m68k_incpc (8); -return 19 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + m68k_dreg (regs, (extra >> 12) & 7) = tmp; + } + } + } + } + m68k_incpc (8); + return 19 * CYCLE_UNIT / 2; } /* BFEXTU.L #.W,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_e9fa_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 2; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_getpc () + 4; - dsta += (uae_s32)(uae_s16)get_iword (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - m68k_dreg (regs, (extra >> 12) & 7) = tmp; -}}}} m68k_incpc (6); -return 26 * CYCLE_UNIT / 2; + uae_u32 dstreg = 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + m68k_dreg (regs, (extra >> 12) & 7) = tmp; + } + } + } + } + m68k_incpc (6); + return 26 * CYCLE_UNIT / 2; } /* BFEXTU.L #.W,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e9fb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 3; -{{ uae_s16 extra = get_iword (2); -{ uaecptr tmppc; - uaecptr dsta; - m68k_incpc (4); -{ tmppc = m68k_getpc (); - dsta = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - m68k_dreg (regs, (extra >> 12) & 7) = tmp; -}}}}}return 21 * CYCLE_UNIT / 2; + uae_u32 dstreg = 3; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr tmppc; + uaecptr dsta; + m68k_incpc (4); + { + tmppc = m68k_getpc (); + dsta = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + m68k_dreg (regs, (extra >> 12) & 7) = tmp; + } + } + } + } + } + return 21 * CYCLE_UNIT / 2; } /* BFCHG.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_eac0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp = m68k_dreg(regs, dstreg); - offset &= 0x1f; - tmp = (tmp << offset) | (tmp >> (32 - offset)); - bdata[0] = tmp & ((1 << (32 - width)) - 1); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = tmp ^ (0xffffffffu >> (32 - width)); - tmp = bdata[0] | (tmp << (32 - width)); - m68k_dreg(regs, dstreg) = (tmp >> offset) | (tmp << (32 - offset)); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp = m68k_dreg(regs, dstreg); + offset &= 0x1f; + tmp = (tmp << offset) | (tmp >> (32 - offset)); + bdata[0] = tmp & ((1 << (32 - width)) - 1); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = tmp ^ (0xffffffffu >> (32 - width)); + tmp = bdata[0] | (tmp << (32 - width)); + m68k_dreg(regs, dstreg) = (tmp >> offset) | (tmp << (32 - offset)); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* BFCHG.L #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_ead0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = tmp ^ (0xffffffffu >> (32 - width)); - put_bitfield(dsta, bdata, tmp, offset, width); -}}}} m68k_incpc (4); -return 21 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = tmp ^ (0xffffffffu >> (32 - width)); + put_bitfield(dsta, bdata, tmp, offset, width); + } + } + } + } + m68k_incpc (4); + return 21 * CYCLE_UNIT / 2; } /* BFCHG.L #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_eae8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = tmp ^ (0xffffffffu >> (32 - width)); - put_bitfield(dsta, bdata, tmp, offset, width); -}}}} m68k_incpc (6); -return 29 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = tmp ^ (0xffffffffu >> (32 - width)); + put_bitfield(dsta, bdata, tmp, offset, width); + } + } + } + } + m68k_incpc (6); + return 29 * CYCLE_UNIT / 2; } /* BFCHG.L #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_eaf0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = tmp ^ (0xffffffffu >> (32 - width)); - put_bitfield(dsta, bdata, tmp, offset, width); -}}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = tmp ^ (0xffffffffu >> (32 - width)); + put_bitfield(dsta, bdata, tmp, offset, width); + } + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* BFCHG.L #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_eaf8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = tmp ^ (0xffffffffu >> (32 - width)); - put_bitfield(dsta, bdata, tmp, offset, width); -}}}} m68k_incpc (6); -return 21 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = tmp ^ (0xffffffffu >> (32 - width)); + put_bitfield(dsta, bdata, tmp, offset, width); + } + } + } + } + m68k_incpc (6); + return 21 * CYCLE_UNIT / 2; } /* BFCHG.L #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_eaf9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = tmp ^ (0xffffffffu >> (32 - width)); - put_bitfield(dsta, bdata, tmp, offset, width); -}}}} m68k_incpc (8); -return 22 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = tmp ^ (0xffffffffu >> (32 - width)); + put_bitfield(dsta, bdata, tmp, offset, width); + } + } + } + } + m68k_incpc (8); + return 22 * CYCLE_UNIT / 2; } /* BFEXTS.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_ebc0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp = m68k_dreg(regs, dstreg); - offset &= 0x1f; - tmp = (tmp << offset) | (tmp >> (32 - offset)); - bdata[0] = tmp & ((1 << (32 - width)) - 1); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp = (uae_s32)tmp >> (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - m68k_dreg (regs, (extra >> 12) & 7) = tmp; -}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp = m68k_dreg(regs, dstreg); + offset &= 0x1f; + tmp = (tmp << offset) | (tmp >> (32 - offset)); + bdata[0] = tmp & ((1 << (32 - width)) - 1); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp = (uae_s32)tmp >> (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + m68k_dreg (regs, (extra >> 12) & 7) = tmp; + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* BFEXTS.L #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_ebd0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp = (uae_s32)tmp >> (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - m68k_dreg (regs, (extra >> 12) & 7) = tmp; -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp = (uae_s32)tmp >> (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + m68k_dreg (regs, (extra >> 12) & 7) = tmp; + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* BFEXTS.L #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_ebe8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp = (uae_s32)tmp >> (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - m68k_dreg (regs, (extra >> 12) & 7) = tmp; -}}}} m68k_incpc (6); -return 26 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp = (uae_s32)tmp >> (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + m68k_dreg (regs, (extra >> 12) & 7) = tmp; + } + } + } + } + m68k_incpc (6); + return 26 * CYCLE_UNIT / 2; } /* BFEXTS.L #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_ebf0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp = (uae_s32)tmp >> (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - m68k_dreg (regs, (extra >> 12) & 7) = tmp; -}}}}}return 21 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp = (uae_s32)tmp >> (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + m68k_dreg (regs, (extra >> 12) & 7) = tmp; + } + } + } + } + } + return 21 * CYCLE_UNIT / 2; } /* BFEXTS.L #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_ebf8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp = (uae_s32)tmp >> (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - m68k_dreg (regs, (extra >> 12) & 7) = tmp; -}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp = (uae_s32)tmp >> (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + m68k_dreg (regs, (extra >> 12) & 7) = tmp; + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2; } /* BFEXTS.L #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_ebf9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp = (uae_s32)tmp >> (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - m68k_dreg (regs, (extra >> 12) & 7) = tmp; -}}}} m68k_incpc (8); -return 19 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp = (uae_s32)tmp >> (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + m68k_dreg (regs, (extra >> 12) & 7) = tmp; + } + } + } + } + m68k_incpc (8); + return 19 * CYCLE_UNIT / 2; } /* BFEXTS.L #.W,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_ebfa_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 2; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_getpc () + 4; - dsta += (uae_s32)(uae_s16)get_iword (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp = (uae_s32)tmp >> (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - m68k_dreg (regs, (extra >> 12) & 7) = tmp; -}}}} m68k_incpc (6); -return 26 * CYCLE_UNIT / 2; + uae_u32 dstreg = 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp = (uae_s32)tmp >> (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + m68k_dreg (regs, (extra >> 12) & 7) = tmp; + } + } + } + } + m68k_incpc (6); + return 26 * CYCLE_UNIT / 2; } /* BFEXTS.L #.W,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_ebfb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 3; -{{ uae_s16 extra = get_iword (2); -{ uaecptr tmppc; - uaecptr dsta; - m68k_incpc (4); -{ tmppc = m68k_getpc (); - dsta = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp = (uae_s32)tmp >> (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - m68k_dreg (regs, (extra >> 12) & 7) = tmp; -}}}}}return 21 * CYCLE_UNIT / 2; + uae_u32 dstreg = 3; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr tmppc; + uaecptr dsta; + m68k_incpc (4); + { + tmppc = m68k_getpc (); + dsta = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp = (uae_s32)tmp >> (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + m68k_dreg (regs, (extra >> 12) & 7) = tmp; + } + } + } + } + } + return 21 * CYCLE_UNIT / 2; } /* BFCLR.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_ecc0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp = m68k_dreg(regs, dstreg); - offset &= 0x1f; - tmp = (tmp << offset) | (tmp >> (32 - offset)); - bdata[0] = tmp & ((1 << (32 - width)) - 1); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = 0; - tmp = bdata[0] | (tmp << (32 - width)); - m68k_dreg(regs, dstreg) = (tmp >> offset) | (tmp << (32 - offset)); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp = m68k_dreg(regs, dstreg); + offset &= 0x1f; + tmp = (tmp << offset) | (tmp >> (32 - offset)); + bdata[0] = tmp & ((1 << (32 - width)) - 1); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = 0; + tmp = bdata[0] | (tmp << (32 - width)); + m68k_dreg(regs, dstreg) = (tmp >> offset) | (tmp << (32 - offset)); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* BFCLR.L #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_ecd0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = 0; - put_bitfield(dsta, bdata, tmp, offset, width); -}}}} m68k_incpc (4); -return 21 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = 0; + put_bitfield(dsta, bdata, tmp, offset, width); + } + } + } + } + m68k_incpc (4); + return 21 * CYCLE_UNIT / 2; } /* BFCLR.L #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_ece8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = 0; - put_bitfield(dsta, bdata, tmp, offset, width); -}}}} m68k_incpc (6); -return 29 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = 0; + put_bitfield(dsta, bdata, tmp, offset, width); + } + } + } + } + m68k_incpc (6); + return 29 * CYCLE_UNIT / 2; } /* BFCLR.L #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_ecf0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = 0; - put_bitfield(dsta, bdata, tmp, offset, width); -}}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = 0; + put_bitfield(dsta, bdata, tmp, offset, width); + } + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* BFCLR.L #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_ecf8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = 0; - put_bitfield(dsta, bdata, tmp, offset, width); -}}}} m68k_incpc (6); -return 21 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = 0; + put_bitfield(dsta, bdata, tmp, offset, width); + } + } + } + } + m68k_incpc (6); + return 21 * CYCLE_UNIT / 2; } /* BFCLR.L #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_ecf9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = 0; - put_bitfield(dsta, bdata, tmp, offset, width); -}}}} m68k_incpc (8); -return 22 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = 0; + put_bitfield(dsta, bdata, tmp, offset, width); + } + } + } + } + m68k_incpc (8); + return 22 * CYCLE_UNIT / 2; } /* BFFFO.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_edc0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 offset2 = offset; - uae_u32 tmp = m68k_dreg(regs, dstreg); - offset &= 0x1f; - tmp = (tmp << offset) | (tmp >> (32 - offset)); - bdata[0] = tmp & ((1 << (32 - width)) - 1); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - { uae_u32 mask = 1 << (width - 1); - while (mask) { if (tmp & mask) break; mask >>= 1; offset2++; }} - m68k_dreg (regs, (extra >> 12) & 7) = offset2; -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 offset2 = offset; + uae_u32 tmp = m68k_dreg(regs, dstreg); + offset &= 0x1f; + tmp = (tmp << offset) | (tmp >> (32 - offset)); + bdata[0] = tmp & ((1 << (32 - width)) - 1); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + { + uae_u32 mask = 1 << (width - 1); + while (mask) + { + if (tmp & mask) break; + mask >>= 1; + offset2++; + } + } + m68k_dreg (regs, (extra >> 12) & 7) = offset2; + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* BFFFO.L #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_edd0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 offset2 = offset; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - { uae_u32 mask = 1 << (width - 1); - while (mask) { if (tmp & mask) break; mask >>= 1; offset2++; }} - m68k_dreg (regs, (extra >> 12) & 7) = offset2; -}}}} m68k_incpc (4); -return 29 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 offset2 = offset; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + { + uae_u32 mask = 1 << (width - 1); + while (mask) + { + if (tmp & mask) break; + mask >>= 1; + offset2++; + } + } + m68k_dreg (regs, (extra >> 12) & 7) = offset2; + } + } + } + } + m68k_incpc (4); + return 29 * CYCLE_UNIT / 2; } /* BFFFO.L #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_ede8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 offset2 = offset; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - { uae_u32 mask = 1 << (width - 1); - while (mask) { if (tmp & mask) break; mask >>= 1; offset2++; }} - m68k_dreg (regs, (extra >> 12) & 7) = offset2; -}}}} m68k_incpc (6); -return 37 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 offset2 = offset; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + { + uae_u32 mask = 1 << (width - 1); + while (mask) + { + if (tmp & mask) break; + mask >>= 1; + offset2++; + } + } + m68k_dreg (regs, (extra >> 12) & 7) = offset2; + } + } + } + } + m68k_incpc (6); + return 37 * CYCLE_UNIT / 2; } /* BFFFO.L #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_edf0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 offset2 = offset; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - { uae_u32 mask = 1 << (width - 1); - while (mask) { if (tmp & mask) break; mask >>= 1; offset2++; }} - m68k_dreg (regs, (extra >> 12) & 7) = offset2; -}}}}}return 32 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 offset2 = offset; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + { + uae_u32 mask = 1 << (width - 1); + while (mask) + { + if (tmp & mask) break; + mask >>= 1; + offset2++; + } + } + m68k_dreg (regs, (extra >> 12) & 7) = offset2; + } + } + } + } + } + return 32 * CYCLE_UNIT / 2; } /* BFFFO.L #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_edf8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 offset2 = offset; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - { uae_u32 mask = 1 << (width - 1); - while (mask) { if (tmp & mask) break; mask >>= 1; offset2++; }} - m68k_dreg (regs, (extra >> 12) & 7) = offset2; -}}}} m68k_incpc (6); -return 29 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 offset2 = offset; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + { + uae_u32 mask = 1 << (width - 1); + while (mask) + { + if (tmp & mask) break; + mask >>= 1; + offset2++; + } + } + m68k_dreg (regs, (extra >> 12) & 7) = offset2; + } + } + } + } + m68k_incpc (6); + return 29 * CYCLE_UNIT / 2; } /* BFFFO.L #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_edf9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 offset2 = offset; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - { uae_u32 mask = 1 << (width - 1); - while (mask) { if (tmp & mask) break; mask >>= 1; offset2++; }} - m68k_dreg (regs, (extra >> 12) & 7) = offset2; -}}}} m68k_incpc (8); -return 30 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 offset2 = offset; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + { + uae_u32 mask = 1 << (width - 1); + while (mask) + { + if (tmp & mask) break; + mask >>= 1; + offset2++; + } + } + m68k_dreg (regs, (extra >> 12) & 7) = offset2; + } + } + } + } + m68k_incpc (8); + return 30 * CYCLE_UNIT / 2; } /* BFFFO.L #.W,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_edfa_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 2; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_getpc () + 4; - dsta += (uae_s32)(uae_s16)get_iword (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 offset2 = offset; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - { uae_u32 mask = 1 << (width - 1); - while (mask) { if (tmp & mask) break; mask >>= 1; offset2++; }} - m68k_dreg (regs, (extra >> 12) & 7) = offset2; -}}}} m68k_incpc (6); -return 37 * CYCLE_UNIT / 2; + uae_u32 dstreg = 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 offset2 = offset; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + { + uae_u32 mask = 1 << (width - 1); + while (mask) + { + if (tmp & mask) break; + mask >>= 1; + offset2++; + } + } + m68k_dreg (regs, (extra >> 12) & 7) = offset2; + } + } + } + } + m68k_incpc (6); + return 37 * CYCLE_UNIT / 2; } /* BFFFO.L #.W,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_edfb_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 3; -{{ uae_s16 extra = get_iword (2); -{ uaecptr tmppc; - uaecptr dsta; - m68k_incpc (4); -{ tmppc = m68k_getpc (); - dsta = get_disp_ea_020 (tmppc, next_iword (regs)); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 offset2 = offset; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - { uae_u32 mask = 1 << (width - 1); - while (mask) { if (tmp & mask) break; mask >>= 1; offset2++; }} - m68k_dreg (regs, (extra >> 12) & 7) = offset2; -}}}}}return 32 * CYCLE_UNIT / 2; + uae_u32 dstreg = 3; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr tmppc; + uaecptr dsta; + m68k_incpc (4); + { + tmppc = m68k_getpc (); + dsta = get_disp_ea_020 (tmppc, next_iword (regs)); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 offset2 = offset; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + { + uae_u32 mask = 1 << (width - 1); + while (mask) + { + if (tmp & mask) break; + mask >>= 1; + offset2++; + } + } + m68k_dreg (regs, (extra >> 12) & 7) = offset2; + } + } + } + } + } + return 32 * CYCLE_UNIT / 2; } /* BFSET.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_eec0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp = m68k_dreg(regs, dstreg); - offset &= 0x1f; - tmp = (tmp << offset) | (tmp >> (32 - offset)); - bdata[0] = tmp & ((1 << (32 - width)) - 1); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = 0xffffffffu >> (32 - width); - tmp = bdata[0] | (tmp << (32 - width)); - m68k_dreg(regs, dstreg) = (tmp >> offset) | (tmp << (32 - offset)); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp = m68k_dreg(regs, dstreg); + offset &= 0x1f; + tmp = (tmp << offset) | (tmp >> (32 - offset)); + bdata[0] = tmp & ((1 << (32 - width)) - 1); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = 0xffffffffu >> (32 - width); + tmp = bdata[0] | (tmp << (32 - width)); + m68k_dreg(regs, dstreg) = (tmp >> offset) | (tmp << (32 - offset)); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* BFSET.L #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_eed0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = 0xffffffffu >> (32 - width); - put_bitfield(dsta, bdata, tmp, offset, width); -}}}} m68k_incpc (4); -return 21 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = 0xffffffffu >> (32 - width); + put_bitfield(dsta, bdata, tmp, offset, width); + } + } + } + } + m68k_incpc (4); + return 21 * CYCLE_UNIT / 2; } /* BFSET.L #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_eee8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = 0xffffffffu >> (32 - width); - put_bitfield(dsta, bdata, tmp, offset, width); -}}}} m68k_incpc (6); -return 29 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = 0xffffffffu >> (32 - width); + put_bitfield(dsta, bdata, tmp, offset, width); + } + } + } + } + m68k_incpc (6); + return 29 * CYCLE_UNIT / 2; } /* BFSET.L #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_eef0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = 0xffffffffu >> (32 - width); - put_bitfield(dsta, bdata, tmp, offset, width); -}}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = 0xffffffffu >> (32 - width); + put_bitfield(dsta, bdata, tmp, offset, width); + } + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* BFSET.L #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_eef8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = 0xffffffffu >> (32 - width); - put_bitfield(dsta, bdata, tmp, offset, width); -}}}} m68k_incpc (6); -return 21 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = 0xffffffffu >> (32 - width); + put_bitfield(dsta, bdata, tmp, offset, width); + } + } + } + } + m68k_incpc (6); + return 21 * CYCLE_UNIT / 2; } /* BFSET.L #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_eef9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = 0xffffffffu >> (32 - width); - put_bitfield(dsta, bdata, tmp, offset, width); -}}}} m68k_incpc (8); -return 22 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = 0xffffffffu >> (32 - width); + put_bitfield(dsta, bdata, tmp, offset, width); + } + } + } + } + m68k_incpc (8); + return 22 * CYCLE_UNIT / 2; } /* BFINS.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_efc0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp = m68k_dreg(regs, dstreg); - offset &= 0x1f; - tmp = (tmp << offset) | (tmp >> (32 - offset)); - bdata[0] = tmp & ((1 << (32 - width)) - 1); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = m68k_dreg (regs, (extra >> 12) & 7); - tmp = tmp & (0xffffffffu >> (32 - width)); - SET_NFLG (tmp & (1 << (width - 1)) ? 1 : 0); - SET_ZFLG (tmp == 0); - tmp = bdata[0] | (tmp << (32 - width)); - m68k_dreg(regs, dstreg) = (tmp >> offset) | (tmp << (32 - offset)); -}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp = m68k_dreg(regs, dstreg); + offset &= 0x1f; + tmp = (tmp << offset) | (tmp >> (32 - offset)); + bdata[0] = tmp & ((1 << (32 - width)) - 1); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = m68k_dreg (regs, (extra >> 12) & 7); + tmp = tmp & (0xffffffffu >> (32 - width)); + SET_NFLG (tmp & (1 << (width - 1)) ? 1 : 0); + SET_ZFLG (tmp == 0); + tmp = bdata[0] | (tmp << (32 - width)); + m68k_dreg(regs, dstreg) = (tmp >> offset) | (tmp << (32 - offset)); + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* BFINS.L #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_efd0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = m68k_dreg (regs, (extra >> 12) & 7); - tmp = tmp & (0xffffffffu >> (32 - width)); - SET_NFLG (tmp & (1 << (width - 1)) ? 1 : 0); - SET_ZFLG (tmp == 0); - put_bitfield(dsta, bdata, tmp, offset, width); -}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = m68k_dreg (regs, (extra >> 12) & 7); + tmp = tmp & (0xffffffffu >> (32 - width)); + SET_NFLG (tmp & (1 << (width - 1)) ? 1 : 0); + SET_ZFLG (tmp == 0); + put_bitfield(dsta, bdata, tmp, offset, width); + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2; } /* BFINS.L #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_efe8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = m68k_dreg (regs, (extra >> 12) & 7); - tmp = tmp & (0xffffffffu >> (32 - width)); - SET_NFLG (tmp & (1 << (width - 1)) ? 1 : 0); - SET_ZFLG (tmp == 0); - put_bitfield(dsta, bdata, tmp, offset, width); -}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = m68k_dreg (regs, (extra >> 12) & 7); + tmp = tmp & (0xffffffffu >> (32 - width)); + SET_NFLG (tmp & (1 << (width - 1)) ? 1 : 0); + SET_ZFLG (tmp == 0); + put_bitfield(dsta, bdata, tmp, offset, width); + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* BFINS.L #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_eff0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - m68k_incpc (4); -{ dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = m68k_dreg (regs, (extra >> 12) & 7); - tmp = tmp & (0xffffffffu >> (32 - width)); - SET_NFLG (tmp & (1 << (width - 1)) ? 1 : 0); - SET_ZFLG (tmp == 0); - put_bitfield(dsta, bdata, tmp, offset, width); -}}}}}return 23 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + m68k_incpc (4); + { + dsta = get_disp_ea_020 (m68k_areg (regs, dstreg), next_iword (regs)); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = m68k_dreg (regs, (extra >> 12) & 7); + tmp = tmp & (0xffffffffu >> (32 - width)); + SET_NFLG (tmp & (1 << (width - 1)) ? 1 : 0); + SET_ZFLG (tmp == 0); + put_bitfield(dsta, bdata, tmp, offset, width); + } + } + } + } + } + return 23 * CYCLE_UNIT / 2; } /* BFINS.L #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_eff8_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = m68k_dreg (regs, (extra >> 12) & 7); - tmp = tmp & (0xffffffffu >> (32 - width)); - SET_NFLG (tmp & (1 << (width - 1)) ? 1 : 0); - SET_ZFLG (tmp == 0); - put_bitfield(dsta, bdata, tmp, offset, width); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = m68k_dreg (regs, (extra >> 12) & 7); + tmp = tmp & (0xffffffffu >> (32 - width)); + SET_NFLG (tmp & (1 << (width - 1)) ? 1 : 0); + SET_ZFLG (tmp == 0); + put_bitfield(dsta, bdata, tmp, offset, width); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* BFINS.L #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_eff9_0)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 extra = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_u32 bdata[2]; - uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; - int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; - uae_u32 tmp; - dsta += offset >> 3; - tmp = get_bitfield (dsta, bdata, offset, width); - SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); - tmp >>= (32 - width); - SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0); - tmp = m68k_dreg (regs, (extra >> 12) & 7); - tmp = tmp & (0xffffffffu >> (32 - width)); - SET_NFLG (tmp & (1 << (width - 1)) ? 1 : 0); - SET_ZFLG (tmp == 0); - put_bitfield(dsta, bdata, tmp, offset, width); -}}}} m68k_incpc (8); -return 21 * CYCLE_UNIT / 2; + { + { + uae_s16 extra = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_u32 bdata[2]; + uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f; + int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1; + uae_u32 tmp; + dsta += offset >> 3; + tmp = get_bitfield (dsta, bdata, offset, width); + SET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0); + tmp >>= (32 - width); + SET_ZFLG (tmp == 0); + SET_VFLG (0); + SET_CFLG (0); + tmp = m68k_dreg (regs, (extra >> 12) & 7); + tmp = tmp & (0xffffffffu >> (32 - width)); + SET_NFLG (tmp & (1 << (width - 1)) ? 1 : 0); + SET_ZFLG (tmp == 0); + put_bitfield(dsta, bdata, tmp, offset, width); + } + } + } + } + m68k_incpc (8); + return 21 * CYCLE_UNIT / 2; } /* MMUOP030.L Dn,#.W */ uae_u32 REGPARAM2 CPUFUNC(op_f000_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ uaecptr pc = m68k_getpc (); - uae_u16 extra = get_iword (2); - m68k_incpc (4); - uae_u16 extraa = 0; - mmu_op30 (pc, opcode, regs, extra, extraa); -}}return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + uaecptr pc = m68k_getpc (); + uae_u16 extra = get_iword (2); + m68k_incpc (4); + uae_u16 extraa = 0; + mmu_op30 (pc, opcode, regs, extra, extraa); + } + } + return 4 * CYCLE_UNIT / 2; } /* MMUOP030.L An,#.W */ uae_u32 REGPARAM2 CPUFUNC(op_f008_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ uaecptr pc = m68k_getpc (); - uae_u16 extra = get_iword (2); - m68k_incpc (4); - uae_u16 extraa = 0; - mmu_op30 (pc, opcode, regs, extra, extraa); -}}return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + uaecptr pc = m68k_getpc (); + uae_u16 extra = get_iword (2); + m68k_incpc (4); + uae_u16 extraa = 0; + mmu_op30 (pc, opcode, regs, extra, extraa); + } + } + return 4 * CYCLE_UNIT / 2; } /* MMUOP030.L (An),#.W */ uae_u32 REGPARAM2 CPUFUNC(op_f010_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ uaecptr pc = m68k_getpc (); - uae_u16 extra = get_iword (2); - m68k_incpc (4); -{ uaecptr extraa; - extraa = m68k_areg (regs, srcreg); - mmu_op30 (pc, opcode, regs, extra, extraa); -}}}return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + uaecptr pc = m68k_getpc (); + uae_u16 extra = get_iword (2); + m68k_incpc (4); + { + uaecptr extraa; + extraa = m68k_areg (regs, srcreg); + mmu_op30 (pc, opcode, regs, extra, extraa); + } + } + } + return 4 * CYCLE_UNIT / 2; } /* MMUOP030.L (An)+,#.W */ uae_u32 REGPARAM2 CPUFUNC(op_f018_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ uaecptr pc = m68k_getpc (); - uae_u16 extra = get_iword (2); - m68k_incpc (4); -{ uaecptr extraa; - extraa = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += 4; - mmu_op30 (pc, opcode, regs, extra, extraa); -}}}return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + uaecptr pc = m68k_getpc (); + uae_u16 extra = get_iword (2); + m68k_incpc (4); + { + uaecptr extraa; + extraa = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += 4; + mmu_op30 (pc, opcode, regs, extra, extraa); + } + } + } + return 4 * CYCLE_UNIT / 2; } /* MMUOP030.L -(An),#.W */ uae_u32 REGPARAM2 CPUFUNC(op_f020_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ uaecptr pc = m68k_getpc (); - uae_u16 extra = get_iword (2); - m68k_incpc (4); -{ uaecptr extraa; - extraa = m68k_areg (regs, srcreg) - 4; - m68k_areg (regs, srcreg) = extraa; - mmu_op30 (pc, opcode, regs, extra, extraa); -}}}return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + uaecptr pc = m68k_getpc (); + uae_u16 extra = get_iword (2); + m68k_incpc (4); + { + uaecptr extraa; + extraa = m68k_areg (regs, srcreg) - 4; + m68k_areg (regs, srcreg) = extraa; + mmu_op30 (pc, opcode, regs, extra, extraa); + } + } + } + return 6 * CYCLE_UNIT / 2; } /* MMUOP030.L (d16,An),#.W */ uae_u32 REGPARAM2 CPUFUNC(op_f028_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ uaecptr pc = m68k_getpc (); - uae_u16 extra = get_iword (2); - m68k_incpc (4); -{ uaecptr extraa; - extraa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (0); - m68k_incpc (2); - mmu_op30 (pc, opcode, regs, extra, extraa); -}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + uaecptr pc = m68k_getpc (); + uae_u16 extra = get_iword (2); + m68k_incpc (4); + { + uaecptr extraa; + extraa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (0); + m68k_incpc (2); + mmu_op30 (pc, opcode, regs, extra, extraa); + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MMUOP030.L (d8,An,Xn),#.W */ uae_u32 REGPARAM2 CPUFUNC(op_f030_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ uaecptr pc = m68k_getpc (); - uae_u16 extra = get_iword (2); - m68k_incpc (4); -{ uaecptr extraa; -{ extraa = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); - mmu_op30 (pc, opcode, regs, extra, extraa); -}}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + uaecptr pc = m68k_getpc (); + uae_u16 extra = get_iword (2); + m68k_incpc (4); + { + uaecptr extraa; + { + extraa = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + mmu_op30 (pc, opcode, regs, extra, extraa); + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MMUOP030.L (xxx).W,#.W */ uae_u32 REGPARAM2 CPUFUNC(op_f038_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ uaecptr pc = m68k_getpc (); - uae_u16 extra = get_iword (2); - m68k_incpc (4); -{ uaecptr extraa; - extraa = (uae_s32)(uae_s16)get_iword (0); - m68k_incpc (2); - mmu_op30 (pc, opcode, regs, extra, extraa); -}}}return 8 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + uaecptr pc = m68k_getpc (); + uae_u16 extra = get_iword (2); + m68k_incpc (4); + { + uaecptr extraa; + extraa = (uae_s32)(uae_s16)get_iword (0); + m68k_incpc (2); + mmu_op30 (pc, opcode, regs, extra, extraa); + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MMUOP030.L (xxx).L,#.W */ uae_u32 REGPARAM2 CPUFUNC(op_f039_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ uaecptr pc = m68k_getpc (); - uae_u16 extra = get_iword (2); - m68k_incpc (4); -{ uaecptr extraa; - extraa = get_ilong (0); - m68k_incpc (4); - mmu_op30 (pc, opcode, regs, extra, extraa); -}}}return 12 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + uaecptr pc = m68k_getpc (); + uae_u16 extra = get_iword (2); + m68k_incpc (4); + { + uaecptr extraa; + extraa = get_ilong (0); + m68k_incpc (4); + mmu_op30 (pc, opcode, regs, extra, extraa); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* FPP.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_f200_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{ + uae_u32 dstreg = opcode & 7; + { #ifdef FPUEMU -{ uae_s16 extra = get_iword (2); - m68k_incpc (4); - fpuop_arithmetic(opcode, regs, extra); -} + { + uae_s16 extra = get_iword (2); + m68k_incpc (4); + fpuop_arithmetic(opcode, regs, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FPP.L #.W,An */ uae_u32 REGPARAM2 CPUFUNC(op_f208_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{ + uae_u32 dstreg = opcode & 7; + { #ifdef FPUEMU -{ uae_s16 extra = get_iword (2); - m68k_incpc (4); - fpuop_arithmetic(opcode, regs, extra); -} + { + uae_s16 extra = get_iword (2); + m68k_incpc (4); + fpuop_arithmetic(opcode, regs, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FPP.L #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_f210_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{ + uae_u32 dstreg = opcode & 7; + { #ifdef FPUEMU -{ uae_s16 extra = get_iword (2); - m68k_incpc (4); - fpuop_arithmetic(opcode, regs, extra); -} + { + uae_s16 extra = get_iword (2); + m68k_incpc (4); + fpuop_arithmetic(opcode, regs, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FPP.L #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_f218_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{ + uae_u32 dstreg = opcode & 7; + { #ifdef FPUEMU -{ uae_s16 extra = get_iword (2); - m68k_incpc (4); - fpuop_arithmetic(opcode, regs, extra); -} + { + uae_s16 extra = get_iword (2); + m68k_incpc (4); + fpuop_arithmetic(opcode, regs, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FPP.L #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_f220_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{ + uae_u32 dstreg = opcode & 7; + { #ifdef FPUEMU -{ uae_s16 extra = get_iword (2); - m68k_incpc (4); - fpuop_arithmetic(opcode, regs, extra); -} + { + uae_s16 extra = get_iword (2); + m68k_incpc (4); + fpuop_arithmetic(opcode, regs, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FPP.L #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_f228_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{ + uae_u32 dstreg = opcode & 7; + { #ifdef FPUEMU -{ uae_s16 extra = get_iword (2); - m68k_incpc (4); - fpuop_arithmetic(opcode, regs, extra); -} + { + uae_s16 extra = get_iword (2); + m68k_incpc (4); + fpuop_arithmetic(opcode, regs, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FPP.L #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_f230_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{ + uae_u32 dstreg = opcode & 7; + { #ifdef FPUEMU -{ uae_s16 extra = get_iword (2); - m68k_incpc (4); - fpuop_arithmetic(opcode, regs, extra); -} + { + uae_s16 extra = get_iword (2); + m68k_incpc (4); + fpuop_arithmetic(opcode, regs, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FPP.L #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_f238_0)(uae_u32 opcode, struct regstruct ®s) { -{ + { #ifdef FPUEMU -{ uae_s16 extra = get_iword (2); - m68k_incpc (4); - fpuop_arithmetic(opcode, regs, extra); -} + { + uae_s16 extra = get_iword (2); + m68k_incpc (4); + fpuop_arithmetic(opcode, regs, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FPP.L #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_f239_0)(uae_u32 opcode, struct regstruct ®s) { -{ + { #ifdef FPUEMU -{ uae_s16 extra = get_iword (2); - m68k_incpc (4); - fpuop_arithmetic(opcode, regs, extra); -} + { + uae_s16 extra = get_iword (2); + m68k_incpc (4); + fpuop_arithmetic(opcode, regs, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FPP.L #.W,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_f23a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 2; -{ + uae_u32 dstreg = 2; + { #ifdef FPUEMU -{ uae_s16 extra = get_iword (2); - m68k_incpc (4); - fpuop_arithmetic(opcode, regs, extra); -} + { + uae_s16 extra = get_iword (2); + m68k_incpc (4); + fpuop_arithmetic(opcode, regs, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FPP.L #.W,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_f23b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 3; -{ + uae_u32 dstreg = 3; + { #ifdef FPUEMU -{ uae_s16 extra = get_iword (2); - m68k_incpc (4); - fpuop_arithmetic(opcode, regs, extra); -} + { + uae_s16 extra = get_iword (2); + m68k_incpc (4); + fpuop_arithmetic(opcode, regs, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FPP.L #.W,#.L */ uae_u32 REGPARAM2 CPUFUNC(op_f23c_0)(uae_u32 opcode, struct regstruct ®s) { -{ + { #ifdef FPUEMU -{ uae_s16 extra = get_iword (2); - m68k_incpc (4); - fpuop_arithmetic(opcode, regs, extra); -} + { + uae_s16 extra = get_iword (2); + m68k_incpc (4); + fpuop_arithmetic(opcode, regs, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FScc.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_f240_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{ + uae_u32 dstreg = opcode & 7; + { #ifdef FPUEMU -{ uae_s16 extra = get_iword (2); - m68k_incpc (4); - fpuop_scc (opcode, regs, extra); -} + { + uae_s16 extra = get_iword (2); + m68k_incpc (4); + fpuop_scc (opcode, regs, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FDBcc.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_f248_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{ + uae_u32 dstreg = opcode & 7; + { #ifdef FPUEMU -{ uae_s16 extra = get_iword (2); - m68k_incpc (4); - fpuop_dbcc (opcode, regs, extra); -} + { + uae_s16 extra = get_iword (2); + m68k_incpc (4); + fpuop_dbcc (opcode, regs, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FScc.L #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_f250_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{ + uae_u32 dstreg = opcode & 7; + { #ifdef FPUEMU -{ uae_s16 extra = get_iword (2); - m68k_incpc (4); - fpuop_scc (opcode, regs, extra); -} + { + uae_s16 extra = get_iword (2); + m68k_incpc (4); + fpuop_scc (opcode, regs, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FScc.L #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_f258_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{ + uae_u32 dstreg = opcode & 7; + { #ifdef FPUEMU -{ uae_s16 extra = get_iword (2); - m68k_incpc (4); - fpuop_scc (opcode, regs, extra); -} + { + uae_s16 extra = get_iword (2); + m68k_incpc (4); + fpuop_scc (opcode, regs, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FScc.L #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_f260_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{ + uae_u32 dstreg = opcode & 7; + { #ifdef FPUEMU -{ uae_s16 extra = get_iword (2); - m68k_incpc (4); - fpuop_scc (opcode, regs, extra); -} + { + uae_s16 extra = get_iword (2); + m68k_incpc (4); + fpuop_scc (opcode, regs, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FScc.L #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_f268_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{ + uae_u32 dstreg = opcode & 7; + { #ifdef FPUEMU -{ uae_s16 extra = get_iword (2); - m68k_incpc (4); - fpuop_scc (opcode, regs, extra); -} + { + uae_s16 extra = get_iword (2); + m68k_incpc (4); + fpuop_scc (opcode, regs, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FScc.L #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_f270_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{ + uae_u32 dstreg = opcode & 7; + { #ifdef FPUEMU -{ uae_s16 extra = get_iword (2); - m68k_incpc (4); - fpuop_scc (opcode, regs, extra); -} + { + uae_s16 extra = get_iword (2); + m68k_incpc (4); + fpuop_scc (opcode, regs, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FScc.L #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_f278_0)(uae_u32 opcode, struct regstruct ®s) { -{ + { #ifdef FPUEMU -{ uae_s16 extra = get_iword (2); - m68k_incpc (4); - fpuop_scc (opcode, regs, extra); -} + { + uae_s16 extra = get_iword (2); + m68k_incpc (4); + fpuop_scc (opcode, regs, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FScc.L #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_f279_0)(uae_u32 opcode, struct regstruct ®s) { -{ + { #ifdef FPUEMU -{ uae_s16 extra = get_iword (2); - m68k_incpc (4); - fpuop_scc (opcode, regs, extra); -} + { + uae_s16 extra = get_iword (2); + m68k_incpc (4); + fpuop_scc (opcode, regs, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FTRAPcc.L #.W */ uae_u32 REGPARAM2 CPUFUNC(op_f27a_0)(uae_u32 opcode, struct regstruct ®s) { -{ + { #ifdef FPUEMU - uaecptr oldpc = m68k_getpc (); - uae_u16 extra = get_iword (2); -{ uae_s16 dummy = get_iword (4); - m68k_incpc (6); - fpuop_trapcc (opcode, regs, oldpc, extra); -} + uaecptr oldpc = m68k_getpc (); + uae_u16 extra = get_iword (2); + { + uae_s16 dummy = get_iword (4); + m68k_incpc (6); + fpuop_trapcc (opcode, regs, oldpc, extra); + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FTRAPcc.L #.L */ uae_u32 REGPARAM2 CPUFUNC(op_f27b_0)(uae_u32 opcode, struct regstruct ®s) { -{ + { #ifdef FPUEMU - uaecptr oldpc = m68k_getpc (); - uae_u16 extra = get_iword (2); -{ uae_s32 dummy; - dummy = get_ilong (4); - m68k_incpc (8); - fpuop_trapcc (opcode, regs, oldpc, extra); -} + uaecptr oldpc = m68k_getpc (); + uae_u16 extra = get_iword (2); + { + uae_s32 dummy; + dummy = get_ilong (4); + m68k_incpc (8); + fpuop_trapcc (opcode, regs, oldpc, extra); + } #endif -}return 12 * CYCLE_UNIT / 2; + } + return 12 * CYCLE_UNIT / 2; } /* FTRAPcc.L */ uae_u32 REGPARAM2 CPUFUNC(op_f27c_0)(uae_u32 opcode, struct regstruct ®s) { -{ + { #ifdef FPUEMU - uaecptr oldpc = m68k_getpc (); - uae_u16 extra = get_iword (2); - m68k_incpc (4); - fpuop_trapcc (opcode, regs, oldpc, extra); + uaecptr oldpc = m68k_getpc (); + uae_u16 extra = get_iword (2); + m68k_incpc (4); + fpuop_trapcc (opcode, regs, oldpc, extra); #endif -}return 4 * CYCLE_UNIT / 2; + } + return 4 * CYCLE_UNIT / 2; } /* FBccQ.L #,#.W */ uae_u32 REGPARAM2 CPUFUNC(op_f280_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 63); -{ + uae_u32 srcreg = (opcode & 63); + { #ifdef FPUEMU - m68k_incpc (2); -{ uaecptr pc = m68k_getpc (); -{ uae_s16 extra = get_iword (0); - m68k_incpc (2); - fpuop_bcc (opcode, regs, pc,extra); -}} + m68k_incpc (2); + { + uaecptr pc = m68k_getpc (); + { + uae_s16 extra = get_iword (0); + m68k_incpc (2); + fpuop_bcc (opcode, regs, pc,extra); + } + } #endif -}return 8 * CYCLE_UNIT / 2; + } + return 8 * CYCLE_UNIT / 2; } /* FBccQ.L #,#.L */ uae_u32 REGPARAM2 CPUFUNC(op_f2c0_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 63); -{ + uae_u32 srcreg = (opcode & 63); + { #ifdef FPUEMU - m68k_incpc (2); -{ uaecptr pc = m68k_getpc (); -{ uae_s32 extra; - extra = get_ilong (0); - m68k_incpc (4); - fpuop_bcc (opcode, regs, pc,extra); -}} + m68k_incpc (2); + { + uaecptr pc = m68k_getpc (); + { + uae_s32 extra; + extra = get_ilong (0); + m68k_incpc (4); + fpuop_bcc (opcode, regs, pc,extra); + } + } #endif -}return 12 * CYCLE_UNIT / 2; + } + return 12 * CYCLE_UNIT / 2; } /* FSAVE.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_f310_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { #ifdef FPUEMU - m68k_incpc (2); - fpuop_save (opcode, regs); + m68k_incpc (2); + fpuop_save (opcode, regs); #endif -}}return 4 * CYCLE_UNIT / 2; + } + } + return 4 * CYCLE_UNIT / 2; } /* FSAVE.L -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_f320_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { #ifdef FPUEMU - m68k_incpc (2); - fpuop_save (opcode, regs); + m68k_incpc (2); + fpuop_save (opcode, regs); #endif -}}return 4 * CYCLE_UNIT / 2; + } + } + return 4 * CYCLE_UNIT / 2; } /* FSAVE.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_f328_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { #ifdef FPUEMU - m68k_incpc (2); - fpuop_save (opcode, regs); + m68k_incpc (2); + fpuop_save (opcode, regs); #endif -}}return 4 * CYCLE_UNIT / 2; + } + } + return 4 * CYCLE_UNIT / 2; } /* FSAVE.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_f330_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { #ifdef FPUEMU - m68k_incpc (2); - fpuop_save (opcode, regs); + m68k_incpc (2); + fpuop_save (opcode, regs); #endif -}}return 4 * CYCLE_UNIT / 2; + } + } + return 4 * CYCLE_UNIT / 2; } /* FSAVE.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_f338_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { #ifdef FPUEMU - m68k_incpc (2); - fpuop_save (opcode, regs); + m68k_incpc (2); + fpuop_save (opcode, regs); #endif -}}return 4 * CYCLE_UNIT / 2; + } + } + return 4 * CYCLE_UNIT / 2; } /* FSAVE.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_f339_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { #ifdef FPUEMU - m68k_incpc (2); - fpuop_save (opcode, regs); + m68k_incpc (2); + fpuop_save (opcode, regs); #endif -}}return 4 * CYCLE_UNIT / 2; + } + } + return 4 * CYCLE_UNIT / 2; } /* FRESTORE.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_f350_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { #ifdef FPUEMU - m68k_incpc (2); - fpuop_restore (opcode, regs); + m68k_incpc (2); + fpuop_restore (opcode, regs); #endif -}}return 4 * CYCLE_UNIT / 2; + } + } + return 4 * CYCLE_UNIT / 2; } /* FRESTORE.L (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_f358_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { #ifdef FPUEMU - m68k_incpc (2); - fpuop_restore (opcode, regs); + m68k_incpc (2); + fpuop_restore (opcode, regs); #endif -}}return 4 * CYCLE_UNIT / 2; + } + } + return 4 * CYCLE_UNIT / 2; } /* FRESTORE.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_f368_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { #ifdef FPUEMU - m68k_incpc (2); - fpuop_restore (opcode, regs); + m68k_incpc (2); + fpuop_restore (opcode, regs); #endif -}}return 4 * CYCLE_UNIT / 2; + } + } + return 4 * CYCLE_UNIT / 2; } /* FRESTORE.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_f370_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { #ifdef FPUEMU - m68k_incpc (2); - fpuop_restore (opcode, regs); + m68k_incpc (2); + fpuop_restore (opcode, regs); #endif -}}return 4 * CYCLE_UNIT / 2; + } + } + return 4 * CYCLE_UNIT / 2; } /* FRESTORE.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_f378_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { #ifdef FPUEMU - m68k_incpc (2); - fpuop_restore (opcode, regs); + m68k_incpc (2); + fpuop_restore (opcode, regs); #endif -}}return 4 * CYCLE_UNIT / 2; + } + } + return 4 * CYCLE_UNIT / 2; } /* FRESTORE.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_f379_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { #ifdef FPUEMU - m68k_incpc (2); - fpuop_restore (opcode, regs); + m68k_incpc (2); + fpuop_restore (opcode, regs); #endif -}}return 4 * CYCLE_UNIT / 2; + } + } + return 4 * CYCLE_UNIT / 2; } /* FRESTORE.L (d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_f37a_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { #ifdef FPUEMU - m68k_incpc (2); - fpuop_restore (opcode, regs); + m68k_incpc (2); + fpuop_restore (opcode, regs); #endif -}}return 4 * CYCLE_UNIT / 2; + } + } + return 4 * CYCLE_UNIT / 2; } /* FRESTORE.L (d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_f37b_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { #ifdef FPUEMU - m68k_incpc (2); - fpuop_restore (opcode, regs); + m68k_incpc (2); + fpuop_restore (opcode, regs); #endif -}}return 4 * CYCLE_UNIT / 2; + } + } + return 4 * CYCLE_UNIT / 2; } /* CINVLQ.L #,An */ uae_u32 REGPARAM2 CPUFUNC(op_f408_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 6) & 3); - uae_u32 dstreg = opcode & 7; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ if (opcode & 0x80) - flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 6) & 3); + uae_u32 dstreg = opcode & 7; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + if (opcode & 0x80) + flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CINVPQ.L #,An */ uae_u32 REGPARAM2 CPUFUNC(op_f410_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 6) & 3); - uae_u32 dstreg = opcode & 7; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ if (opcode & 0x80) - flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 6) & 3); + uae_u32 dstreg = opcode & 7; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + if (opcode & 0x80) + flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CINVAQ.L # */ uae_u32 REGPARAM2 CPUFUNC(op_f418_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 6) & 3); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ if (opcode & 0x80) - flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 6) & 3); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + if (opcode & 0x80) + flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CINVAQ.L # */ uae_u32 REGPARAM2 CPUFUNC(op_f419_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 6) & 3); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ if (opcode & 0x80) - flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 6) & 3); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + if (opcode & 0x80) + flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CINVAQ.L # */ uae_u32 REGPARAM2 CPUFUNC(op_f41a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 6) & 3); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ if (opcode & 0x80) - flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 6) & 3); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + if (opcode & 0x80) + flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CINVAQ.L # */ uae_u32 REGPARAM2 CPUFUNC(op_f41b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 6) & 3); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ if (opcode & 0x80) - flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 6) & 3); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + if (opcode & 0x80) + flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CINVAQ.L # */ uae_u32 REGPARAM2 CPUFUNC(op_f41c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 6) & 3); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ if (opcode & 0x80) - flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 6) & 3); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + if (opcode & 0x80) + flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CINVAQ.L # */ uae_u32 REGPARAM2 CPUFUNC(op_f41d_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 6) & 3); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ if (opcode & 0x80) - flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 6) & 3); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + if (opcode & 0x80) + flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CINVAQ.L # */ uae_u32 REGPARAM2 CPUFUNC(op_f41e_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 6) & 3); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ if (opcode & 0x80) - flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 6) & 3); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + if (opcode & 0x80) + flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CINVAQ.L # */ uae_u32 REGPARAM2 CPUFUNC(op_f41f_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 6) & 3); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ if (opcode & 0x80) - flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 6) & 3); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + if (opcode & 0x80) + flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CPUSHLQ.L #,An */ uae_u32 REGPARAM2 CPUFUNC(op_f428_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 6) & 3); - uae_u32 dstreg = opcode & 7; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ if (opcode & 0x80) - flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 6) & 3); + uae_u32 dstreg = opcode & 7; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + if (opcode & 0x80) + flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CPUSHPQ.L #,An */ uae_u32 REGPARAM2 CPUFUNC(op_f430_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 6) & 3); - uae_u32 dstreg = opcode & 7; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ if (opcode & 0x80) - flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 6) & 3); + uae_u32 dstreg = opcode & 7; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + if (opcode & 0x80) + flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CPUSHAQ.L # */ uae_u32 REGPARAM2 CPUFUNC(op_f438_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 6) & 3); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ if (opcode & 0x80) - flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 6) & 3); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + if (opcode & 0x80) + flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CPUSHAQ.L # */ uae_u32 REGPARAM2 CPUFUNC(op_f439_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 6) & 3); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ if (opcode & 0x80) - flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 6) & 3); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + if (opcode & 0x80) + flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CPUSHAQ.L # */ uae_u32 REGPARAM2 CPUFUNC(op_f43a_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 6) & 3); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ if (opcode & 0x80) - flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 6) & 3); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + if (opcode & 0x80) + flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CPUSHAQ.L # */ uae_u32 REGPARAM2 CPUFUNC(op_f43b_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 6) & 3); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ if (opcode & 0x80) - flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 6) & 3); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + if (opcode & 0x80) + flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CPUSHAQ.L # */ uae_u32 REGPARAM2 CPUFUNC(op_f43c_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 6) & 3); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ if (opcode & 0x80) - flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 6) & 3); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + if (opcode & 0x80) + flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CPUSHAQ.L # */ uae_u32 REGPARAM2 CPUFUNC(op_f43d_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 6) & 3); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ if (opcode & 0x80) - flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 6) & 3); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + if (opcode & 0x80) + flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CPUSHAQ.L # */ uae_u32 REGPARAM2 CPUFUNC(op_f43e_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 6) & 3); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ if (opcode & 0x80) - flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 6) & 3); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + if (opcode & 0x80) + flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CPUSHAQ.L # */ uae_u32 REGPARAM2 CPUFUNC(op_f43f_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 6) & 3); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ if (opcode & 0x80) - flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 6) & 3); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + if (opcode & 0x80) + flush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* PFLUSHN.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_f500_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ m68k_incpc (2); - mmu_op (opcode, regs, 0); -}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + m68k_incpc (2); + mmu_op (opcode, regs, 0); + } + } + return 12 * CYCLE_UNIT / 2; } /* PFLUSH.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_f508_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ m68k_incpc (2); - mmu_op (opcode, regs, 0); -}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + m68k_incpc (2); + mmu_op (opcode, regs, 0); + } + } + return 12 * CYCLE_UNIT / 2; } /* PFLUSHAN.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_f510_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ m68k_incpc (2); - mmu_op (opcode, regs, 0); -}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + m68k_incpc (2); + mmu_op (opcode, regs, 0); + } + } + return 12 * CYCLE_UNIT / 2; } /* PFLUSHA.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_f518_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ m68k_incpc (2); - mmu_op (opcode, regs, 0); -}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + m68k_incpc (2); + mmu_op (opcode, regs, 0); + } + } + return 12 * CYCLE_UNIT / 2; } /* PTESTR.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_f548_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ m68k_incpc (2); - mmu_op (opcode, regs, 0); -}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + m68k_incpc (2); + mmu_op (opcode, regs, 0); + } + } + return 12 * CYCLE_UNIT / 2; } /* PTESTW.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_f568_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ m68k_incpc (2); - mmu_op (opcode, regs, 0); -}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + m68k_incpc (2); + mmu_op (opcode, regs, 0); + } + } + return 12 * CYCLE_UNIT / 2; } /* PLPAR.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_f588_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ m68k_incpc (2); - mmu_op (opcode, regs, 0); -}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + m68k_incpc (2); + mmu_op (opcode, regs, 0); + } + } + return 12 * CYCLE_UNIT / 2; } /* PLPAW.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_f5c8_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ m68k_incpc (2); - mmu_op (opcode, regs, 0); -}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + m68k_incpc (2); + mmu_op (opcode, regs, 0); + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE16.L (An)+,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_f600_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{ uae_u32 v[4]; -{ uaecptr memsa; - memsa = m68k_areg (regs, srcreg); -{ uaecptr memda; - memda = get_ilong (2); - memsa &= ~15; - memda &= ~15; - v[0] = get_long (memsa); - v[1] = get_long (memsa + 4); - v[2] = get_long (memsa + 8); - v[3] = get_long (memsa + 12); - put_long (memda , v[0]); - put_long (memda + 4, v[1]); - put_long (memda + 8, v[2]); - put_long (memda + 12, v[3]); - m68k_areg (regs, srcreg) += 16; -}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + uae_u32 v[4]; + { + uaecptr memsa; + memsa = m68k_areg (regs, srcreg); + { + uaecptr memda; + memda = get_ilong (2); + memsa &= ~15; + memda &= ~15; + v[0] = get_long (memsa); + v[1] = get_long (memsa + 4); + v[2] = get_long (memsa + 8); + v[3] = get_long (memsa + 12); + put_long (memda, v[0]); + put_long (memda + 4, v[1]); + put_long (memda + 8, v[2]); + put_long (memda + 12, v[3]); + m68k_areg (regs, srcreg) += 16; + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } /* MOVE16.L (xxx).L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_f608_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{ uae_u32 v[4]; -{ uaecptr memsa; - memsa = get_ilong (2); -{ uaecptr memda; - memda = m68k_areg (regs, dstreg); - memsa &= ~15; - memda &= ~15; - v[0] = get_long (memsa); - v[1] = get_long (memsa + 4); - v[2] = get_long (memsa + 8); - v[3] = get_long (memsa + 12); - put_long (memda , v[0]); - put_long (memda + 4, v[1]); - put_long (memda + 8, v[2]); - put_long (memda + 12, v[3]); - m68k_areg (regs, dstreg) += 16; -}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + uae_u32 v[4]; + { + uaecptr memsa; + memsa = get_ilong (2); + { + uaecptr memda; + memda = m68k_areg (regs, dstreg); + memsa &= ~15; + memda &= ~15; + v[0] = get_long (memsa); + v[1] = get_long (memsa + 4); + v[2] = get_long (memsa + 8); + v[3] = get_long (memsa + 12); + put_long (memda, v[0]); + put_long (memda + 4, v[1]); + put_long (memda + 8, v[2]); + put_long (memda + 12, v[3]); + m68k_areg (regs, dstreg) += 16; + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } /* MOVE16.L (An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_f610_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{ uae_u32 v[4]; -{ uaecptr memsa; - memsa = m68k_areg (regs, srcreg); -{ uaecptr memda; - memda = get_ilong (2); - memsa &= ~15; - memda &= ~15; - v[0] = get_long (memsa); - v[1] = get_long (memsa + 4); - v[2] = get_long (memsa + 8); - v[3] = get_long (memsa + 12); - put_long (memda , v[0]); - put_long (memda + 4, v[1]); - put_long (memda + 8, v[2]); - put_long (memda + 12, v[3]); -}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + uae_u32 v[4]; + { + uaecptr memsa; + memsa = m68k_areg (regs, srcreg); + { + uaecptr memda; + memda = get_ilong (2); + memsa &= ~15; + memda &= ~15; + v[0] = get_long (memsa); + v[1] = get_long (memsa + 4); + v[2] = get_long (memsa + 8); + v[3] = get_long (memsa + 12); + put_long (memda, v[0]); + put_long (memda + 4, v[1]); + put_long (memda + 8, v[2]); + put_long (memda + 12, v[3]); + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } /* MOVE16.L (xxx).L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_f618_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{ uae_u32 v[4]; -{ uaecptr memsa; - memsa = get_ilong (2); -{ uaecptr memda; - memda = m68k_areg (regs, dstreg); - memsa &= ~15; - memda &= ~15; - v[0] = get_long (memsa); - v[1] = get_long (memsa + 4); - v[2] = get_long (memsa + 8); - v[3] = get_long (memsa + 12); - put_long (memda , v[0]); - put_long (memda + 4, v[1]); - put_long (memda + 8, v[2]); - put_long (memda + 12, v[3]); -}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + uae_u32 v[4]; + { + uaecptr memsa; + memsa = get_ilong (2); + { + uaecptr memda; + memda = m68k_areg (regs, dstreg); + memsa &= ~15; + memda &= ~15; + v[0] = get_long (memsa); + v[1] = get_long (memsa + 4); + v[2] = get_long (memsa + 8); + v[3] = get_long (memsa + 12); + put_long (memda, v[0]); + put_long (memda + 4, v[1]); + put_long (memda + 8, v[2]); + put_long (memda + 12, v[3]); + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } /* MOVE16.L (An)+,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_f620_0)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = 0; -{ uae_u32 v[4]; - uaecptr mems = m68k_areg (regs, srcreg) & ~15, memd; - dstreg = (get_iword (2) >> 12) & 7; - memd = m68k_areg (regs, dstreg) & ~15; - v[0] = get_long (mems); - v[1] = get_long (mems + 4); - v[2] = get_long (mems + 8); - v[3] = get_long (mems + 12); - put_long (memd , v[0]); - put_long (memd + 4, v[1]); - put_long (memd + 8, v[2]); - put_long (memd + 12, v[3]); - if (srcreg != dstreg) - m68k_areg (regs, srcreg) += 16; - m68k_areg (regs, dstreg) += 16; -} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = 0; + { + uae_u32 v[4]; + uaecptr mems = m68k_areg (regs, srcreg) & ~15, memd; + dstreg = (get_iword (2) >> 12) & 7; + memd = m68k_areg (regs, dstreg) & ~15; + v[0] = get_long (mems); + v[1] = get_long (mems + 4); + v[2] = get_long (mems + 8); + v[3] = get_long (mems + 12); + put_long (memd, v[0]); + put_long (memd + 4, v[1]); + put_long (memd + 8, v[2]); + put_long (memd + 12, v[3]); + if (srcreg != dstreg) + m68k_areg (regs, srcreg) += 16; + m68k_areg (regs, dstreg) += 16; + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* LPSTOP.L #.W */ uae_u32 REGPARAM2 CPUFUNC(op_f800_0)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ uae_u16 sw = get_iword (2); - uae_u16 sr; - if (sw != (0x100|0x80|0x40)) { Exception (4); return 4 * CYCLE_UNIT / 2; } - sr = get_iword (4); - if (!(sr & 0x8000)) { Exception (8); return 4 * CYCLE_UNIT / 2; } - regs.sr = sr; - MakeFromSR (regs); - m68k_setstopped(); - m68k_incpc (6); -}}return 4 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + uae_u16 sw = get_iword (2); + uae_u16 sr; + if (sw != (0x100|0x80|0x40)) + { + Exception (4); + return 4 * CYCLE_UNIT / 2; + } + sr = get_iword (4); + if (!(sr & 0x8000)) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + regs.sr = sr; + MakeFromSR (regs); + m68k_setstopped(); + m68k_incpc (6); + } + } + return 4 * CYCLE_UNIT / 2; } #endif @@ -34008,199 +51916,287 @@ uae_u32 REGPARAM2 CPUFUNC(op_f800_0)(uae_u32 opcode, struct regstruct ®s) /* NBCD.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4800_2)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((newv) & 0xff); -}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((newv) & 0xff); + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* NBCD.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4810_2)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (srca,newv); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (srca,newv); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* NBCD.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4818_2)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (srca,newv); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (srca,newv); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* NBCD.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4820_2)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (srca,newv); -}}}} m68k_incpc (2); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (srca,newv); + } + } + } + } + m68k_incpc (2); + return 13 * CYCLE_UNIT / 2; } /* NBCD.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4828_2)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (srca,newv); -}}}} m68k_incpc (4); -return 13 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (srca,newv); + } + } + } + } + m68k_incpc (4); + return 13 * CYCLE_UNIT / 2; } /* NBCD.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4830_2)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - m68k_incpc (2); -{ srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); -{ uae_s8 src = get_byte (srca); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (srca,newv); -}}}}}return 15 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + m68k_incpc (2); + { + srca = get_disp_ea_020 (m68k_areg (regs, srcreg), next_iword (regs)); + { + uae_s8 src = get_byte (srca); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (srca,newv); + } + } + } + } + } + return 15 * CYCLE_UNIT / 2; } /* NBCD.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4838_2)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (srca,newv); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (srca,newv); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* NBCD.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4839_2)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (srca,newv); -}}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (srca,newv); + } + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } #endif @@ -34212,55 +52208,89 @@ return 12 * CYCLE_UNIT / 2; /* SBCD.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8100_2)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{ uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); - uae_u16 newv, tmp_newv; - int bcd = 0; - newv = tmp_newv = newv_hi + newv_lo; - if (newv_lo & 0xF0) { newv -= 6; bcd = 6; }; - if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG () ? 1 : 0)) & 0x100) > 0xFF) { newv -= 0x60; } - SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG () ? 1 : 0)) & 0x300) > 0xFF); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); + uae_u16 newv, tmp_newv; + int bcd = 0; + newv = tmp_newv = newv_hi + newv_lo; + if (newv_lo & 0xF0) + { + newv -= 6; + bcd = 6; + }; + if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG () ? 1 : 0)) & 0x100) > 0xFF) + { + newv -= 0x60; + } + SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG () ? 1 : 0)) & 0x300) > 0xFF); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* SBCD.B -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_8108_2)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{ uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); - uae_u16 newv, tmp_newv; - int bcd = 0; - newv = tmp_newv = newv_hi + newv_lo; - if (newv_lo & 0xF0) { newv -= 6; bcd = 6; }; - if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG () ? 1 : 0)) & 0x100) > 0xFF) { newv -= 0x60; } - SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG () ? 1 : 0)) & 0x300) > 0xFF); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (dsta,newv); -}}}}}} m68k_incpc (2); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); + uae_u16 newv, tmp_newv; + int bcd = 0; + newv = tmp_newv = newv_hi + newv_lo; + if (newv_lo & 0xF0) + { + newv -= 6; + bcd = 6; + }; + if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG () ? 1 : 0)) & 0x100) > 0xFF) + { + newv -= 0x60; + } + SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG () ? 1 : 0)) & 0x300) > 0xFF); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (dsta,newv); + } + } + } + } + } + } + m68k_incpc (2); + return 16 * CYCLE_UNIT / 2; } #endif @@ -34269,57 +52299,83 @@ return 16 * CYCLE_UNIT / 2; /* ABCD.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c100_2)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{ uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); - uae_u16 newv, tmp_newv; - int cflg; - newv = tmp_newv = newv_hi + newv_lo; - if (newv_lo > 9) { newv += 6; } - cflg = (newv & 0x3F0) > 0x90; - if (cflg) newv += 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); + uae_u16 newv, tmp_newv; + int cflg; + newv = tmp_newv = newv_hi + newv_lo; + if (newv_lo > 9) + { + newv += 6; + } + cflg = (newv & 0x3F0) > 0x90; + if (cflg) newv += 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* ABCD.B -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c108_2)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{ uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); - uae_u16 newv, tmp_newv; - int cflg; - newv = tmp_newv = newv_hi + newv_lo; - if (newv_lo > 9) { newv += 6; } - cflg = (newv & 0x3F0) > 0x90; - if (cflg) newv += 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0); - put_byte (dsta,newv); -}}}}}} m68k_incpc (2); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); + uae_u16 newv, tmp_newv; + int cflg; + newv = tmp_newv = newv_hi + newv_lo; + if (newv_lo > 9) + { + newv += 6; + } + cflg = (newv & 0x3F0) > 0x90; + if (cflg) newv += 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0); + put_byte (dsta,newv); + } + } + } + } + } + } + m68k_incpc (2); + return 16 * CYCLE_UNIT / 2; } #endif diff --git a/src/cpuemu_11.cpp b/src/cpuemu_11.cpp index c8d3364b..0c2c7176 100644 --- a/src/cpuemu_11.cpp +++ b/src/cpuemu_11.cpp @@ -1,7 +1,7 @@ #include "sysconfig.h" #include "sysdeps.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "cpu_prefetch.h" @@ -28,4536 +28,6562 @@ /* OR.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0000_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* OR.B #.B,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0010_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* OR.B #.B,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0018_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* OR.B #.B,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0020_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* OR.B #.B,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0028_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* OR.B #.B,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0030_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* OR.B #.B,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0038_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* OR.B #.B,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0039_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= get_word_prefetch (regs, 8); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); - put_byte (dsta, src); -}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= get_word_prefetch (regs, 8); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* ORSR.B #.W */ uae_u32 REGPARAM2 CPUFUNC(op_003c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ MakeSR (regs); -{ uae_s16 src = get_word_prefetch (regs, 4); - src &= 0xFF; - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - regs.sr |= src; - MakeFromSR(regs); -}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + MakeSR (regs); + { + uae_s16 src = get_word_prefetch (regs, 4); + src &= 0xFF; + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + regs.sr |= src; + MakeFromSR(regs); + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/0) */ /* OR.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0040_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* OR.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0050_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_word (dsta, src); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* OR.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0058_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_word (dsta, src); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* OR.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0060_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_word (dsta, src); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* OR.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0068_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_word (dsta, src); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* OR.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0070_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_word (dsta, src); -}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* OR.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0078_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_word (dsta, src); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* OR.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0079_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); - put_word (dsta, src); -}}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* ORSR.W #.W */ uae_u32 REGPARAM2 CPUFUNC(op_007c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ MakeSR (regs); -{ uae_s16 src = get_word_prefetch (regs, 4); - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - regs.sr |= src; - MakeFromSR(regs); -}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + MakeSR (regs); + { + uae_s16 src = get_word_prefetch (regs, 4); + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + regs.sr |= src; + MakeFromSR(regs); + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/0) */ /* OR.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0080_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* OR.L #.L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0090_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_long (dsta, src); -}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* OR.L #.L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0098_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_long (dsta, src); -}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* OR.L #.L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_00a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_long (dsta, src); -}}}}} m68k_incpc (6); -return 30 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 30 * CYCLE_UNIT / 2 + count_cycles; } /* 30 (5/2) */ /* OR.L #.L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_00a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); - put_long (dsta, src); -}}}}} m68k_incpc (8); -return 32 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (8); + return 32 * CYCLE_UNIT / 2 + count_cycles; } /* 32 (6/2) */ /* OR.L #.L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_00b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 8)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); - put_long (dsta, src); -}}}}} m68k_incpc (8); -return 34 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 8)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (8); + return 34 * CYCLE_UNIT / 2 + count_cycles; } /* 34 (6/2) */ /* OR.L #.L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_00b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); - put_long (dsta, src); -}}}}} m68k_incpc (8); -return 32 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (8); + return 32 * CYCLE_UNIT / 2 + count_cycles; } /* 32 (6/2) */ /* OR.L #.L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_00b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 8) << 16; - dsta |= get_word_prefetch (regs, 10); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 12); - put_long (dsta, src); -}}}}} m68k_incpc (10); -return 36 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 8) << 16; + dsta |= get_word_prefetch (regs, 10); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 12); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (10); + return 36 * CYCLE_UNIT / 2 + count_cycles; } /* 36 (7/2) */ /* BTST.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0100_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - src &= 31; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6 (1/0) */ /* MVPMR.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0108_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{ uaecptr memp = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_u16 val = ((get_byte (memp) & 0xff) << 8) + (get_byte (memp + 2) & 0xff); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + uaecptr memp = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_u16 val = ((get_byte (memp) & 0xff) << 8) + (get_byte (memp + 2) & 0xff); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* BTST.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0110_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* BTST.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0118_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* BTST.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0120_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* BTST.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0128_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* BTST.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0130_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* BTST.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0138_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* BTST.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0139_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* BTST.B Dn,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_013a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = 2; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_getpc () + 2; - dsta += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = 2; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_getpc () + 2; + dsta += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* BTST.B Dn,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_013b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = 3; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr tmppc; - uaecptr dsta; - tmppc = m68k_getpc () + 2; - dsta = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = 3; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr tmppc; + uaecptr dsta; + tmppc = m68k_getpc () + 2; + dsta = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* BTST.B Dn,#.B */ uae_u32 REGPARAM2 CPUFUNC(op_013c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = (uae_u8)get_word_prefetch (regs, 4); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = (uae_u8)get_word_prefetch (regs, 4); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* BCHG.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0140_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - src &= 31; - if (src > 15) count_cycles += 2 * CYCLE_UNIT / 2; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - m68k_dreg (regs, dstreg) = (dst); -}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + src &= 31; + if (src > 15) count_cycles += 2 * CYCLE_UNIT / 2; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + m68k_dreg (regs, dstreg) = (dst); + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* MVPMR.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0148_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{ uaecptr memp = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_u32 val = ((get_byte (memp) & 0xff) << 24) + ((get_byte (memp + 2) & 0xff) << 16) - + ((get_byte (memp + 4) & 0xff) << 8) + (get_byte (memp + 6) & 0xff); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (val); -}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + uaecptr memp = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_u32 val = ((get_byte (memp) & 0xff) << 24) + ((get_byte (memp + 2) & 0xff) << 16) + + ((get_byte (memp + 4) & 0xff) << 8) + (get_byte (memp + 6) & 0xff); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (val); + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (6/0) */ /* BCHG.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0150_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* BCHG.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0158_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* BCHG.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0160_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* BCHG.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0168_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* BCHG.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0170_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* BCHG.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0178_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* BCHG.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0179_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* BCLR.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0180_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - src &= 31; - if (src > 15) count_cycles += 2 * CYCLE_UNIT / 2; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_dreg (regs, dstreg) = (dst); -}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + src &= 31; + if (src > 15) count_cycles += 2 * CYCLE_UNIT / 2; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + m68k_dreg (regs, dstreg) = (dst); + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (1/0) */ /* MVPRM.W Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0188_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); - uaecptr memp = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - put_byte (memp, src >> 8); - put_byte (memp + 2, src); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + uaecptr memp = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + put_byte (memp, src >> 8); + put_byte (memp + 2, src); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (2/2) */ /* BCLR.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0190_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* BCLR.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0198_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* BCLR.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_01a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* BCLR.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_01a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* BCLR.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_01b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* BCLR.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_01b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* BCLR.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_01b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* BSET.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_01c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - src &= 31; - if (src > 15) count_cycles += 2 * CYCLE_UNIT / 2; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_dreg (regs, dstreg) = (dst); -}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + src &= 31; + if (src > 15) count_cycles += 2 * CYCLE_UNIT / 2; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + m68k_dreg (regs, dstreg) = (dst); + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* MVPRM.L Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_01c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); - uaecptr memp = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - put_byte (memp, src >> 24); - put_byte (memp + 2, src >> 16); - put_byte (memp + 4, src >> 8); - put_byte (memp + 6, src); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + uaecptr memp = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + put_byte (memp, src >> 24); + put_byte (memp + 2, src >> 16); + put_byte (memp + 4, src >> 8); + put_byte (memp + 6, src); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (2/4) */ /* BSET.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_01d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* BSET.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_01d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* BSET.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_01e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* BSET.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_01e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* BSET.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_01f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* BSET.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_01f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* BSET.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_01f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* AND.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0200_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* AND.B #.B,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0210_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* AND.B #.B,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0218_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* AND.B #.B,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0220_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* AND.B #.B,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0228_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* AND.B #.B,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0230_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* AND.B #.B,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0238_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* AND.B #.B,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0239_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= get_word_prefetch (regs, 8); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); - put_byte (dsta, src); -}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= get_word_prefetch (regs, 8); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* ANDSR.B #.W */ uae_u32 REGPARAM2 CPUFUNC(op_023c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ MakeSR (regs); -{ uae_s16 src = get_word_prefetch (regs, 4); - src |= 0xFF00; - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - regs.sr &= src; - MakeFromSR(regs); -}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + MakeSR (regs); + { + uae_s16 src = get_word_prefetch (regs, 4); + src |= 0xFF00; + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + regs.sr &= src; + MakeFromSR(regs); + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/0) */ /* AND.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0240_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* AND.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0250_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_word (dsta, src); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* AND.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0258_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_word (dsta, src); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* AND.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0260_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_word (dsta, src); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* AND.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0268_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_word (dsta, src); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* AND.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0270_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_word (dsta, src); -}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* AND.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0278_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_word (dsta, src); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* AND.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0279_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); - put_word (dsta, src); -}}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* ANDSR.W #.W */ uae_u32 REGPARAM2 CPUFUNC(op_027c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ MakeSR (regs); -{ uae_s16 src = get_word_prefetch (regs, 4); - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - regs.sr &= src; - MakeFromSR(regs); -}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + MakeSR (regs); + { + uae_s16 src = get_word_prefetch (regs, 4); + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + regs.sr &= src; + MakeFromSR(regs); + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/0) */ /* AND.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0280_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* AND.L #.L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0290_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_long (dsta, src); -}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* AND.L #.L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0298_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_long (dsta, src); -}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* AND.L #.L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_02a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_long (dsta, src); -}}}}} m68k_incpc (6); -return 30 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 30 * CYCLE_UNIT / 2 + count_cycles; } /* 30 (5/2) */ /* AND.L #.L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_02a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); - put_long (dsta, src); -}}}}} m68k_incpc (8); -return 32 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (8); + return 32 * CYCLE_UNIT / 2 + count_cycles; } /* 32 (6/2) */ /* AND.L #.L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_02b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 8)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); - put_long (dsta, src); -}}}}} m68k_incpc (8); -return 34 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 8)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (8); + return 34 * CYCLE_UNIT / 2 + count_cycles; } /* 34 (6/2) */ /* AND.L #.L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_02b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); - put_long (dsta, src); -}}}}} m68k_incpc (8); -return 32 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (8); + return 32 * CYCLE_UNIT / 2 + count_cycles; } /* 32 (6/2) */ /* AND.L #.L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_02b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 8) << 16; - dsta |= get_word_prefetch (regs, 10); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 12); - put_long (dsta, src); -}}}}} m68k_incpc (10); -return 36 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 8) << 16; + dsta |= get_word_prefetch (regs, 10); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 12); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (10); + return 36 * CYCLE_UNIT / 2 + count_cycles; } /* 36 (7/2) */ /* SUB.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0400_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* SUB.B #.B,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0410_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* SUB.B #.B,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0418_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* SUB.B #.B,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0420_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* SUB.B #.B,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0428_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* SUB.B #.B,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0430_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* SUB.B #.B,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0438_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* SUB.B #.B,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0439_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= get_word_prefetch (regs, 8); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= get_word_prefetch (regs, 8); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* SUB.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0440_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* SUB.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0450_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* SUB.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0458_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* SUB.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0460_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* SUB.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0468_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* SUB.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0470_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* SUB.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0478_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* SUB.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0479_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* SUB.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0480_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* SUB.L #.L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0490_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* SUB.L #.L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0498_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* SUB.L #.L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_04a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (6); -return 30 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 30 * CYCLE_UNIT / 2 + count_cycles; } /* 30 (5/2) */ /* SUB.L #.L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_04a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (8); -return 32 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (8); + return 32 * CYCLE_UNIT / 2 + count_cycles; } /* 32 (6/2) */ /* SUB.L #.L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_04b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 8)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (8); -return 34 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 8)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (8); + return 34 * CYCLE_UNIT / 2 + count_cycles; } /* 34 (6/2) */ /* SUB.L #.L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_04b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (8); -return 32 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (8); + return 32 * CYCLE_UNIT / 2 + count_cycles; } /* 32 (6/2) */ /* SUB.L #.L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_04b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 8) << 16; - dsta |= get_word_prefetch (regs, 10); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 12); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (10); -return 36 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 8) << 16; + dsta |= get_word_prefetch (regs, 10); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 12); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (10); + return 36 * CYCLE_UNIT / 2 + count_cycles; } /* 36 (7/2) */ /* ADD.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0600_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* ADD.B #.B,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0610_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ADD.B #.B,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0618_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ADD.B #.B,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0620_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* ADD.B #.B,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0628_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* ADD.B #.B,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0630_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* ADD.B #.B,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0638_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* ADD.B #.B,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0639_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= get_word_prefetch (regs, 8); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= get_word_prefetch (regs, 8); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* ADD.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0640_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* ADD.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0650_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ADD.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0658_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ADD.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0660_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* ADD.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0668_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* ADD.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0670_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* ADD.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0678_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* ADD.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0679_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* ADD.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0680_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* ADD.L #.L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0690_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* ADD.L #.L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0698_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* ADD.L #.L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_06a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (6); -return 30 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 30 * CYCLE_UNIT / 2 + count_cycles; } /* 30 (5/2) */ /* ADD.L #.L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_06a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (8); -return 32 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (8); + return 32 * CYCLE_UNIT / 2 + count_cycles; } /* 32 (6/2) */ /* ADD.L #.L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_06b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 8)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (8); -return 34 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 8)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (8); + return 34 * CYCLE_UNIT / 2 + count_cycles; } /* 34 (6/2) */ /* ADD.L #.L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_06b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (8); -return 32 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (8); + return 32 * CYCLE_UNIT / 2 + count_cycles; } /* 32 (6/2) */ /* ADD.L #.L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_06b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 8) << 16; - dsta |= get_word_prefetch (regs, 10); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 12); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (10); -return 36 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 8) << 16; + dsta |= get_word_prefetch (regs, 10); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 12); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (10); + return 36 * CYCLE_UNIT / 2 + count_cycles; } /* 36 (7/2) */ /* BTST.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0800_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 31; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* BTST.B #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0810_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* BTST.B #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0818_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* BTST.B #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0820_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* BTST.B #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0828_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* BTST.B #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0830_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* BTST.B #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0838_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* BTST.B #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0839_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= get_word_prefetch (regs, 8); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (8); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= get_word_prefetch (regs, 8); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (8); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (5/0) */ /* BTST.B #.W,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_083a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = 2; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_getpc () + 4; - dsta += (uae_s32)(uae_s16)get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = 2; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* BTST.B #.W,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_083b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = 3; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr tmppc; - uaecptr dsta; - tmppc = m68k_getpc () + 4; - dsta = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 6)); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = 3; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr tmppc; + uaecptr dsta; + tmppc = m68k_getpc () + 4; + dsta = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 6)); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* BTST.B #.W,#.B */ uae_u32 REGPARAM2 CPUFUNC(op_083c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s8 dst = (uae_u8)get_word_prefetch (regs, 6); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s8 dst = (uae_u8)get_word_prefetch (regs, 6); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* BCHG.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0840_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 31; - if (src > 15) count_cycles += 2 * CYCLE_UNIT / 2; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - m68k_dreg (regs, dstreg) = (dst); -}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 31; + if (src > 15) count_cycles += 2 * CYCLE_UNIT / 2; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + m68k_dreg (regs, dstreg) = (dst); + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10+ (2/0) */ /* BCHG.B #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0850_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* BCHG.B #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0858_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* BCHG.B #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0860_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* BCHG.B #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0868_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* BCHG.B #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0870_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* BCHG.B #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0878_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* BCHG.B #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0879_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= get_word_prefetch (regs, 8); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= get_word_prefetch (regs, 8); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* BCLR.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0880_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 31; - if (src > 15) count_cycles += 2 * CYCLE_UNIT / 2; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_dreg (regs, dstreg) = (dst); -}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 31; + if (src > 15) count_cycles += 2 * CYCLE_UNIT / 2; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + m68k_dreg (regs, dstreg) = (dst); + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12+ (2/0) */ /* BCLR.B #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0890_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* BCLR.B #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0898_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* BCLR.B #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_08a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* BCLR.B #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_08a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* BCLR.B #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_08b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* BCLR.B #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_08b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* BCLR.B #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_08b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= get_word_prefetch (regs, 8); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= get_word_prefetch (regs, 8); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* BSET.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_08c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 31; - if (src > 15) count_cycles += 2 * CYCLE_UNIT / 2; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_dreg (regs, dstreg) = (dst); -}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 31; + if (src > 15) count_cycles += 2 * CYCLE_UNIT / 2; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + m68k_dreg (regs, dstreg) = (dst); + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10+ (2/0) */ /* BSET.B #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_08d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* BSET.B #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_08d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* BSET.B #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_08e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* BSET.B #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_08e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* BSET.B #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_08f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* BSET.B #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_08f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* BSET.B #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_08f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= get_word_prefetch (regs, 8); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= get_word_prefetch (regs, 8); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* EOR.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0a00_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* EOR.B #.B,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0a10_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* EOR.B #.B,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0a18_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* EOR.B #.B,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0a20_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* EOR.B #.B,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0a28_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* EOR.B #.B,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0a30_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* EOR.B #.B,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0a38_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* EOR.B #.B,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0a39_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= get_word_prefetch (regs, 8); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); - put_byte (dsta, src); -}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= get_word_prefetch (regs, 8); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* EORSR.B #.W */ uae_u32 REGPARAM2 CPUFUNC(op_0a3c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ MakeSR (regs); -{ uae_s16 src = get_word_prefetch (regs, 4); - src &= 0xFF; - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - regs.sr ^= src; - MakeFromSR(regs); -}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + MakeSR (regs); + { + uae_s16 src = get_word_prefetch (regs, 4); + src &= 0xFF; + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + regs.sr ^= src; + MakeFromSR(regs); + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/0) */ /* EOR.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0a40_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* EOR.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0a50_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_word (dsta, src); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* EOR.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0a58_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_word (dsta, src); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* EOR.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0a60_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_word (dsta, src); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* EOR.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0a68_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_word (dsta, src); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* EOR.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0a70_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_word (dsta, src); -}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* EOR.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0a78_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_word (dsta, src); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* EOR.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0a79_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); - put_word (dsta, src); -}}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* EORSR.W #.W */ uae_u32 REGPARAM2 CPUFUNC(op_0a7c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ MakeSR (regs); -{ uae_s16 src = get_word_prefetch (regs, 4); - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - regs.sr ^= src; - MakeFromSR(regs); -}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + MakeSR (regs); + { + uae_s16 src = get_word_prefetch (regs, 4); + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + regs.sr ^= src; + MakeFromSR(regs); + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/0) */ /* EOR.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0a80_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* EOR.L #.L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0a90_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_long (dsta, src); -}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* EOR.L #.L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0a98_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_long (dsta, src); -}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* EOR.L #.L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0aa0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_long (dsta, src); -}}}}} m68k_incpc (6); -return 30 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 30 * CYCLE_UNIT / 2 + count_cycles; } /* 30 (5/2) */ /* EOR.L #.L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0aa8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); - put_long (dsta, src); -}}}}} m68k_incpc (8); -return 32 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (8); + return 32 * CYCLE_UNIT / 2 + count_cycles; } /* 32 (6/2) */ /* EOR.L #.L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0ab0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 8)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); - put_long (dsta, src); -}}}}} m68k_incpc (8); -return 34 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 8)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (8); + return 34 * CYCLE_UNIT / 2 + count_cycles; } /* 34 (6/2) */ /* EOR.L #.L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0ab8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); - put_long (dsta, src); -}}}}} m68k_incpc (8); -return 32 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (8); + return 32 * CYCLE_UNIT / 2 + count_cycles; } /* 32 (6/2) */ /* EOR.L #.L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0ab9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 8) << 16; - dsta |= get_word_prefetch (regs, 10); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 12); - put_long (dsta, src); -}}}}} m68k_incpc (10); -return 36 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 8) << 16; + dsta |= get_word_prefetch (regs, 10); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 12); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (10); + return 36 * CYCLE_UNIT / 2 + count_cycles; } /* 36 (7/2) */ #endif @@ -4566,4481 +6592,6403 @@ return 36 * CYCLE_UNIT / 2 + count_cycles; /* CMP.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0c00_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* CMP.B #.B,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0c10_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* CMP.B #.B,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0c18_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* CMP.B #.B,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0c20_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* CMP.B #.B,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0c28_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* CMP.B #.B,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0c30_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* CMP.B #.B,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0c38_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* CMP.B #.B,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0c39_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= get_word_prefetch (regs, 8); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (8); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= get_word_prefetch (regs, 8); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (8); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (5/0) */ /* CMP.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0c40_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* CMP.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0c50_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* CMP.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0c58_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* CMP.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0c60_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* CMP.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0c68_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* CMP.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0c70_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* CMP.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0c78_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* CMP.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0c79_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (8); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (8); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (5/0) */ /* CMP.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0c80_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (6); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (6); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* CMP.L #.L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0c90_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (5/0) */ /* CMP.L #.L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0c98_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (5/0) */ /* CMP.L #.L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0ca0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (5/0) */ /* CMP.L #.L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0ca8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (6/0) */ /* CMP.L #.L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0cb0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 8)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (8); -return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 8)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (8); + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (6/0) */ /* CMP.L #.L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0cb8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 10); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (6/0) */ /* CMP.L #.L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0cb9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 8) << 16; - dsta |= get_word_prefetch (regs, 10); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 12); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (10); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 8) << 16; + dsta |= get_word_prefetch (regs, 10); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 12); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (10); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (7/0) */ /* MOVE.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1000_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* MOVE.B (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1010_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* MOVE.B (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1018_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* MOVE.B -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1020_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* MOVE.B (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1028_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* MOVE.B (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1030_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* MOVE.B (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1038_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* MOVE.B (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1039_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* MOVE.B (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_103a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* MOVE.B (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_103b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* MOVE.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_103c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* MOVE.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1080_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/1) */ /* MOVE.B (An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1090_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.B (An)+,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1098_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.B -(An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* MOVE.B (d16,An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.B (d8,An,Xn),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.B (xxx).W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.B (xxx).L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.B (d16,PC),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10ba_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.B (d8,PC,Xn),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10bb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.B #.B,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10bc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/1) */ /* MOVE.B (An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.B (An)+,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.B -(An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* MOVE.B (d16,An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.B (d8,An,Xn),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.B (xxx).W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.B (xxx).L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.B (d16,PC),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.B (d8,PC,Xn),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.B #.B,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10fc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1100_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); -}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/1) */ /* MOVE.B (An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1110_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.B (An)+,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1118_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.B -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1120_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); -}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* MOVE.B (d16,An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1128_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.B (d8,An,Xn),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1130_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.B (xxx).W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1138_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.B (xxx).L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1139_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.B (d16,PC),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_113a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.B (d8,PC,Xn),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_113b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.B #.B,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_113c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1140_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.B (An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1150_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.B (An)+,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1158_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.B -(An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1160_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.B (d16,An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1168_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.B (d8,An,Xn),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1170_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* MOVE.B (xxx).W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1178_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.B (xxx).L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1179_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 8); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (8); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 8); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (8); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* MOVE.B (d16,PC),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_117a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.B (d8,PC,Xn),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_117b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* MOVE.B #.B,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_117c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_1180_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* MOVE.B (An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_1190_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.B (An)+,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_1198_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.B -(An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/1) */ /* MOVE.B (d16,An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* MOVE.B (d8,An,Xn),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/1) */ /* MOVE.B (xxx).W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* MOVE.B (xxx).L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 8)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (8); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 8)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (8); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (5/1) */ /* MOVE.B (d16,PC),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11ba_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* MOVE.B (d8,PC,Xn),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11bb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/1) */ /* MOVE.B #.B,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11bc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.B (An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.B (An)+,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.B -(An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.B (d16,An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.B (d8,An,Xn),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* MOVE.B (xxx).W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.B (xxx).L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 8); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (8); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 8); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (8); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* MOVE.B (d16,PC),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.B (d8,PC,Xn),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* MOVE.B #.B,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11fc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.B (An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= regs.irc; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= regs.irc; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.B (An)+,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= regs.irc; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= regs.irc; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.B -(An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= regs.irc; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= regs.irc; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* MOVE.B (d16,An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= regs.irc; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (8); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= regs.irc; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (8); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* MOVE.B (d8,An,Xn),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= regs.irc; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (8); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= regs.irc; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (8); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (5/1) */ /* MOVE.B (xxx).W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= regs.irc; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (8); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= regs.irc; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (8); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* MOVE.B (xxx).L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 8) << 16; - dsta |= regs.irc; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (10); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 8) << 16; + dsta |= regs.irc; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (10); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (6/1) */ /* MOVE.B (d16,PC),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= regs.irc; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (8); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= regs.irc; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (8); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* MOVE.B (d8,PC,Xn),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= regs.irc; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (8); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= regs.irc; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (8); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (5/1) */ /* MOVE.B #.B,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13fc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= get_word_prefetch (regs, 8); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (8); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= get_word_prefetch (regs, 8); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (8); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2000_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* MOVE.L An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2008_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* MOVE.L (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2010_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* MOVE.L (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2018_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* MOVE.L -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2020_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* MOVE.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2028_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* MOVE.L (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2030_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* MOVE.L (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2038_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* MOVE.L (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2039_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (5/0) */ /* MOVE.L (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_203a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* MOVE.L (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_203b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* MOVE.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_203c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* MOVEA.L Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_2040_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* MOVEA.L An,An */ uae_u32 REGPARAM2 CPUFUNC(op_2048_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* MOVEA.L (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_2050_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* MOVEA.L (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_2058_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* MOVEA.L -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_2060_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* MOVEA.L (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_2068_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* MOVEA.L (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_2070_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* MOVEA.L (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_2078_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* MOVEA.L (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_2079_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (5/0) */ /* MOVEA.L (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_207a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* MOVEA.L (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_207b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* MOVEA.L #.L,An */ uae_u32 REGPARAM2 CPUFUNC(op_207c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* MOVE.L Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2080_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (1/2) */ /* MOVE.L An,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2088_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (1/2) */ /* MOVE.L (An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2090_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* MOVE.L (An)+,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2098_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* MOVE.L -(An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (3/2) */ /* MOVE.L (d16,An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* MOVE.L (d8,An,Xn),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ /* MOVE.L (xxx).W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* MOVE.L (xxx).L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* MOVE.L (d16,PC),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20ba_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* MOVE.L (d8,PC,Xn),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20bb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ /* MOVE.L #.L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20bc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* MOVE.L Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (1/2) */ /* MOVE.L An,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (1/2) */ /* MOVE.L (An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* MOVE.L (An)+,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* MOVE.L -(An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (3/2) */ /* MOVE.L (d16,An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* MOVE.L (d8,An,Xn),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ /* MOVE.L (xxx).W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* MOVE.L (xxx).L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* MOVE.L (d16,PC),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* MOVE.L (d8,PC,Xn),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ /* MOVE.L #.L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20fc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* MOVE.L Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2100_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (1/2) */ /* MOVE.L An,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2108_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (1/2) */ /* MOVE.L (An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2110_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); -}}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* MOVE.L (An)+,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2118_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); -}}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* MOVE.L -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2120_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); -}}}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + } + } + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (3/2) */ /* MOVE.L (d16,An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2128_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* MOVE.L (d8,An,Xn),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2130_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}}}return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + } + } + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ /* MOVE.L (xxx).W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2138_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* MOVE.L (xxx).L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2139_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}}}return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + } + } + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* MOVE.L (d16,PC),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_213a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* MOVE.L (d8,PC,Xn),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_213b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}}}return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + } + } + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ /* MOVE.L #.L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_213c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* MOVE.L Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2140_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (2/2) */ /* MOVE.L An,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2148_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (2/2) */ /* MOVE.L (An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2150_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* MOVE.L (An)+,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2158_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* MOVE.L -(An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2160_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ /* MOVE.L (d16,An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2168_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* MOVE.L (d8,An,Xn),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2170_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 22 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 30 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 22 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 30 * CYCLE_UNIT / 2 + count_cycles; } /* 30 (5/2) */ /* MOVE.L (xxx).W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2178_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* MOVE.L (xxx).L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2179_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 24 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 32 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 24 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 32 * CYCLE_UNIT / 2 + count_cycles; } /* 32 (6/2) */ /* MOVE.L (d16,PC),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_217a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* MOVE.L (d8,PC,Xn),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_217b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 22 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 30 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 22 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 30 * CYCLE_UNIT / 2 + count_cycles; } /* 30 (5/2) */ /* MOVE.L #.L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_217c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* MOVE.L Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_2180_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (2/2) */ /* MOVE.L An,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_2188_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (2/2) */ /* MOVE.L (An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_2190_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ #endif @@ -9049,5714 +12997,8130 @@ uae_u32 REGPARAM2 CPUFUNC(op_2190_11)(uae_u32 opcode, struct regstruct ®s) /* MOVE.L (An)+,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_2198_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ /* MOVE.L -(An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (4/2) */ /* MOVE.L (d16,An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 22 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 30 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 22 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 30 * CYCLE_UNIT / 2 + count_cycles; } /* 30 (5/2) */ /* MOVE.L (d8,An,Xn),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 24 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 32 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 24 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 32 * CYCLE_UNIT / 2 + count_cycles; } /* 32 (5/2) */ /* MOVE.L (xxx).W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 22 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 30 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 22 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 30 * CYCLE_UNIT / 2 + count_cycles; } /* 30 (5/2) */ /* MOVE.L (xxx).L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 8)); - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 26 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 34 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 8)); + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 26 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 34 * CYCLE_UNIT / 2 + count_cycles; } /* 34 (6/2) */ /* MOVE.L (d16,PC),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21ba_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 22 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 30 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 22 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 30 * CYCLE_UNIT / 2 + count_cycles; } /* 30 (5/2) */ /* MOVE.L (d8,PC,Xn),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21bb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 24 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 32 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 24 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 32 * CYCLE_UNIT / 2 + count_cycles; } /* 32 (5/2) */ /* MOVE.L #.L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21bc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 8)); - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 8)); + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ /* MOVE.L Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (2/2) */ /* MOVE.L An,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (2/2) */ /* MOVE.L (An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* MOVE.L (An)+,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* MOVE.L -(An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ /* MOVE.L (d16,An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* MOVE.L (d8,An,Xn),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 22 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 30 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 22 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 30 * CYCLE_UNIT / 2 + count_cycles; } /* 30 (5/2) */ /* MOVE.L (xxx).W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* MOVE.L (xxx).L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 24 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 32 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 24 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 32 * CYCLE_UNIT / 2 + count_cycles; } /* 32 (6/2) */ /* MOVE.L (d16,PC),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* MOVE.L (d8,PC,Xn),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 22 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 30 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 22 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 30 * CYCLE_UNIT / 2 + count_cycles; } /* 30 (5/2) */ /* MOVE.L #.L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21fc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* MOVE.L Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* MOVE.L An,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* MOVE.L (An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= regs.irc; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= regs.irc; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* MOVE.L (An)+,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= regs.irc; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= regs.irc; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* MOVE.L -(An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= regs.irc; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 30 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= regs.irc; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 30 * CYCLE_UNIT / 2 + count_cycles; } /* 30 (5/2) */ /* MOVE.L (d16,An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= regs.irc; - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 32 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= regs.irc; + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 32 * CYCLE_UNIT / 2 + count_cycles; } /* 32 (6/2) */ /* MOVE.L (d8,An,Xn),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= regs.irc; - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 22 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 34 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= regs.irc; + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 22 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 34 * CYCLE_UNIT / 2 + count_cycles; } /* 34 (6/2) */ /* MOVE.L (xxx).W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= regs.irc; - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 32 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= regs.irc; + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 32 * CYCLE_UNIT / 2 + count_cycles; } /* 32 (6/2) */ /* MOVE.L (xxx).L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 8) << 16; - dsta |= regs.irc; - if (dsta & 1) { - m68k_incpc (10); - exception3 (opcode, dsta); - return 24 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (10); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 36 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 8) << 16; + dsta |= regs.irc; + if (dsta & 1) + { + m68k_incpc (10); + exception3 (opcode, dsta); + return 24 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (10); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 36 * CYCLE_UNIT / 2 + count_cycles; } /* 36 (7/2) */ /* MOVE.L (d16,PC),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= regs.irc; - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 32 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= regs.irc; + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 32 * CYCLE_UNIT / 2 + count_cycles; } /* 32 (6/2) */ /* MOVE.L (d8,PC,Xn),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= regs.irc; - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 22 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 34 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= regs.irc; + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 22 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 34 * CYCLE_UNIT / 2 + count_cycles; } /* 34 (6/2) */ /* MOVE.L #.L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23fc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 8) << 16; - dsta |= get_word_prefetch (regs, 10); - if (dsta & 1) { - m68k_incpc (10); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (10); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 8) << 16; + dsta |= get_word_prefetch (regs, 10); + if (dsta & 1) + { + m68k_incpc (10); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (10); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* MOVE.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3000_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* MOVE.W An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3008_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* MOVE.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3010_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* MOVE.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3018_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* MOVE.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3020_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* MOVE.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3028_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* MOVE.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3030_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* MOVE.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3038_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* MOVE.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3039_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* MOVE.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_303a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* MOVE.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_303b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* MOVE.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_303c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* MOVEA.W Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_3040_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* MOVEA.W An,An */ uae_u32 REGPARAM2 CPUFUNC(op_3048_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* MOVEA.W (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_3050_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* MOVEA.W (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_3058_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* MOVEA.W -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_3060_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* MOVEA.W (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_3068_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* MOVEA.W (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_3070_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* MOVEA.W (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_3078_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* MOVEA.W (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_3079_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* MOVEA.W (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_307a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* MOVEA.W (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_307b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* MOVEA.W #.W,An */ uae_u32 REGPARAM2 CPUFUNC(op_307c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* MOVE.W Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3080_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/1) */ /* MOVE.W An,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3088_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/1) */ /* MOVE.W (An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3090_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.W (An)+,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3098_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.W -(An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* MOVE.W (d16,An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.W (d8,An,Xn),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.W (xxx).W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.W (xxx).L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.W (d16,PC),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30ba_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.W (d8,PC,Xn),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30bb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30bc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.W Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/1) */ /* MOVE.W An,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/1) */ /* MOVE.W (An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.W (An)+,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.W -(An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* MOVE.W (d16,An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.W (d8,An,Xn),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.W (xxx).W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.W (xxx).L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.W (d16,PC),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.W (d8,PC,Xn),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30fc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.W Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3100_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); -}}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/1) */ /* MOVE.W An,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3108_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); -}}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/1) */ /* MOVE.W (An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3110_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); -}}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + } + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.W (An)+,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3118_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); -}}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + } + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.W -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3120_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); -}}}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* MOVE.W (d16,An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3128_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.W (d8,An,Xn),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3130_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.W (xxx).W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3138_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.W (xxx).L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3139_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.W (d16,PC),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_313a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.W (d8,PC,Xn),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_313b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_313c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.W Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3140_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.W An,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3148_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.W (An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3150_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.W (An)+,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3158_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.W -(An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3160_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.W (d16,An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3168_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.W (d8,An,Xn),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3170_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* MOVE.W (xxx).W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3178_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.W (xxx).L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3179_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (8); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (8); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* MOVE.W (d16,PC),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_317a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.W (d8,PC,Xn),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_317b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* MOVE.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_317c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.W Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_3180_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* MOVE.W An,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_3188_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* MOVE.W (An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_3190_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.W (An)+,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_3198_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.W -(An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/1) */ /* MOVE.W (d16,An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* MOVE.W (d8,An,Xn),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/1) */ /* MOVE.W (xxx).W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* MOVE.W (xxx).L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 8)); - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 22 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (8); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 8)); + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 22 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (8); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (5/1) */ /* MOVE.W (d16,PC),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31ba_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* MOVE.W (d8,PC,Xn),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31bb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/1) */ /* MOVE.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31bc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.W Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.W An,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* MOVE.W (An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.W (An)+,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.W -(An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* MOVE.W (d16,An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.W (d8,An,Xn),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* MOVE.W (xxx).W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.W (xxx).L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (8); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (8); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* MOVE.W (d16,PC),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.W (d8,PC,Xn),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* MOVE.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31fc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.W Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.W An,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* MOVE.W (An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= regs.irc; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= regs.irc; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.W (An)+,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= regs.irc; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= regs.irc; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* MOVE.W -(An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= regs.irc; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= regs.irc; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/1) */ /* MOVE.W (d16,An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= regs.irc; - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (8); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= regs.irc; + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (8); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* MOVE.W (d8,An,Xn),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= regs.irc; - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (8); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= regs.irc; + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (8); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (5/1) */ /* MOVE.W (xxx).W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= regs.irc; - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (8); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= regs.irc; + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (8); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* MOVE.W (xxx).L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 8) << 16; - dsta |= regs.irc; - if (dsta & 1) { - m68k_incpc (10); - exception3 (opcode, dsta); - return 20 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (10); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 8) << 16; + dsta |= regs.irc; + if (dsta & 1) + { + m68k_incpc (10); + exception3 (opcode, dsta); + return 20 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (10); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (6/1) */ /* MOVE.W (d16,PC),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= regs.irc; - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (8); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= regs.irc; + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (8); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/1) */ /* MOVE.W (d8,PC,Xn),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= regs.irc; - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 18 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (8); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= regs.irc; + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 18 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (8); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (5/1) */ /* MOVE.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33fc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 6) << 16; - dsta |= get_word_prefetch (regs, 8); - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 16 * CYCLE_UNIT / 2; - } -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (8); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 6) << 16; + dsta |= get_word_prefetch (regs, 8); + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 16 * CYCLE_UNIT / 2; + } + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (8); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* NEGX.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4000_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((newv) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* NEGX.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4010_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (srca, newv); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (srca, newv); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* NEGX.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4018_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (srca, newv); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (srca, newv); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* NEGX.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4020_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (srca, newv); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (srca, newv); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* NEGX.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4028_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (srca, newv); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (srca, newv); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* NEGX.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4030_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (srca, newv); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (srca, newv); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* NEGX.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4038_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (srca, newv); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (srca, newv); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* NEGX.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4039_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (srca, newv); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (srca, newv); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* NEGX.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4040_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((newv) & 0xffff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* NEGX.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4050_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (srca, newv); -}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (srca, newv); + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* NEGX.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4058_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (srca, newv); -}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (srca, newv); + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* NEGX.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4060_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (srca, newv); -}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (srca, newv); + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* NEGX.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4068_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (srca, newv); -}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (srca, newv); + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* NEGX.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4070_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (srca, newv); -}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (srca, newv); + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* NEGX.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4078_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (srca, newv); -}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (srca, newv); + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* NEGX.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4079_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (srca, newv); -}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (srca, newv); + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* NEGX.L Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4080_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, srcreg) = (newv); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, srcreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6 (1/0) */ /* NEGX.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4090_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (srca, newv); -}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (srca, newv); + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* NEGX.L (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4098_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (srca, newv); -}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (srca, newv); + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* NEGX.L -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_40a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (srca, newv); -}}}}}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (srca, newv); + } + } + } + } + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (3/2) */ /* NEGX.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_40a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (srca, newv); -}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (srca, newv); + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* NEGX.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_40b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (srca, newv); -}}}}}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (srca, newv); + } + } + } + } + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ /* NEGX.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_40b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (srca, newv); -}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (srca, newv); + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* NEGX.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_40b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (srca, newv); -}}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (srca, newv); + } + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* MVSR2.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_40c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); - MakeSR (regs); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((regs.sr) & 0xffff); -}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + MakeSR (regs); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((regs.sr) & 0xffff); + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6 (1/0) */ /* MVSR2.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_40d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{ put_word (srca, regs.sr | 0x0010); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - MakeSR (regs); - put_word (srca, regs.sr); -}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + put_word (srca, regs.sr | 0x0010); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + MakeSR (regs); + put_word (srca, regs.sr); + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (1/2) */ /* MVSR2.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_40d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, srcreg) += 2; - put_word (srca, regs.sr | 0x0010); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - MakeSR (regs); - put_word (srca, regs.sr); -}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, srcreg) += 2; + put_word (srca, regs.sr | 0x0010); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + MakeSR (regs); + put_word (srca, regs.sr); + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (1/2) */ /* MVSR2.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_40e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, srcreg) = srca; - put_word (srca, regs.sr | 0x0010); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - MakeSR (regs); - put_word (srca, regs.sr); -}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, srcreg) = srca; + put_word (srca, regs.sr | 0x0010); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + MakeSR (regs); + put_word (srca, regs.sr); + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (1/2) */ /* MVSR2.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_40e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{ put_word (srca, regs.sr | 0x0010); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - MakeSR (regs); - put_word (srca, regs.sr); -}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + put_word (srca, regs.sr | 0x0010); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + MakeSR (regs); + put_word (srca, regs.sr); + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (2/2) */ /* MVSR2.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_40f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{ put_word (srca, regs.sr | 0x0010); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - MakeSR (regs); - put_word (srca, regs.sr); -}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + put_word (srca, regs.sr | 0x0010); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + MakeSR (regs); + put_word (srca, regs.sr); + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (2/2) */ /* MVSR2.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_40f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{ put_word (srca, regs.sr | 0x0010); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - MakeSR (regs); - put_word (srca, regs.sr); -}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + put_word (srca, regs.sr | 0x0010); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + MakeSR (regs); + put_word (srca, regs.sr); + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (2/2) */ /* MVSR2.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_40f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{ put_word (srca, regs.sr | 0x0010); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - MakeSR (regs); - put_word (srca, regs.sr); -}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + put_word (srca, regs.sr | 0x0010); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + MakeSR (regs); + put_word (srca, regs.sr); + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* CHK.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4180_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (2); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 8 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 10 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (2); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 8 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 10 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (1/0) */ /* CHK.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4190_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (2); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 12 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 14 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (2); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 14 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/0) */ /* CHK.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4198_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (2); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 12 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 14 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (2); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 14 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/0) */ /* CHK.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (2); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 14 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 16 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (2); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 14 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 16 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (2/0) */ /* CHK.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (4); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 16 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 18 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (4); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 16 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 18 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/0) */ /* CHK.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (4); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 18 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 20 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (4); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 18 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 20 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/0) */ /* CHK.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (4); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 16 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 18 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (4); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 16 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 18 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/0) */ /* CHK.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (6); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 20 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 22 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (6); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 20 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 22 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/0) */ /* CHK.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41ba_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (4); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 16 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 18 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (4); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 16 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 18 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/0) */ /* CHK.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41bb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (4); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 18 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 20 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (4); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 18 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 20 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/0) */ /* CHK.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41bc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (4); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 12 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 14 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (4); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 14 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/0) */ /* LEA.L (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_41d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_areg (regs, dstreg) = (srca); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_areg (regs, dstreg) = (srca); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* LEA.L (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_41e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_areg (regs, dstreg) = (srca); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_areg (regs, dstreg) = (srca); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* LEA.L (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_41f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_areg (regs, dstreg) = (srca); -}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_areg (regs, dstreg) = (srca); + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* LEA.L (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_41f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_areg (regs, dstreg) = (srca); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_areg (regs, dstreg) = (srca); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* LEA.L (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_41f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 8); - m68k_areg (regs, dstreg) = (srca); -}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + m68k_areg (regs, dstreg) = (srca); + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* LEA.L (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_41fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_areg (regs, dstreg) = (srca); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_areg (regs, dstreg) = (srca); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* LEA.L (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_41fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_areg (regs, dstreg) = (srca); -}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_areg (regs, dstreg) = (srca); + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* CLR.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4200_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((0) & 0xff); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((0) & 0xff); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* CLR.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4210_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - put_byte (srca, 0); -}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte (srca, 0); + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* CLR.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4218_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - put_byte (srca, 0); -}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte (srca, 0); + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* CLR.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4220_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - put_byte (srca, 0); -}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte (srca, 0); + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* CLR.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4228_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - put_byte (srca, 0); -}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte (srca, 0); + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* CLR.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4230_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - put_byte (srca, 0); -}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte (srca, 0); + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* CLR.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4238_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - put_byte (srca, 0); -}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte (srca, 0); + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* CLR.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4239_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - put_byte (srca, 0); -}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte (srca, 0); + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* CLR.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4240_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((0) & 0xffff); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((0) & 0xffff); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* CLR.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4250_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - put_word (srca, 0); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word (srca, 0); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* CLR.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4258_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - put_word (srca, 0); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word (srca, 0); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* CLR.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4260_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - put_word (srca, 0); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word (srca, 0); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* CLR.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4268_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - put_word (srca, 0); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word (srca, 0); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* CLR.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4270_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - put_word (srca, 0); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word (srca, 0); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* CLR.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4278_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - put_word (srca, 0); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word (srca, 0); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* CLR.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4279_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - put_word (srca, 0); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word (srca, 0); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* CLR.L Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4280_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - m68k_dreg (regs, srcreg) = (0); -}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + m68k_dreg (regs, srcreg) = (0); + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6 (1/0) */ /* CLR.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4290_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - put_long (srca, 0); -}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long (srca, 0); + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* CLR.L (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4298_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - put_long (srca, 0); -}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long (srca, 0); + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* CLR.L -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_42a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - put_long (srca, 0); -}}}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long (srca, 0); + } + } + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (3/2) */ /* CLR.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_42a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - put_long (srca, 0); -}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long (srca, 0); + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* CLR.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_42b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - put_long (srca, 0); -}}}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long (srca, 0); + } + } + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ /* CLR.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_42b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - put_long (srca, 0); -}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long (srca, 0); + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* CLR.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_42b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - put_long (srca, 0); -}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long (srca, 0); + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ #endif @@ -14765,4755 +21129,6774 @@ return 28 * CYCLE_UNIT / 2 + count_cycles; /* NEG.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4400_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((dst) & 0xff); -}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((dst) & 0xff); + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* NEG.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4410_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (srca, dst); -}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (srca, dst); + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* NEG.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4418_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (srca, dst); -}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (srca, dst); + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* NEG.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4420_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (srca, dst); -}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (srca, dst); + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* NEG.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4428_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (srca, dst); -}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (srca, dst); + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* NEG.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4430_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (srca, dst); -}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (srca, dst); + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* NEG.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4438_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (srca, dst); -}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (srca, dst); + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* NEG.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4439_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (srca, dst); -}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (srca, dst); + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* NEG.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4440_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((dst) & 0xffff); -}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((dst) & 0xffff); + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* NEG.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4450_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (srca, dst); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (srca, dst); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* NEG.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4458_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (srca, dst); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (srca, dst); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* NEG.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4460_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (srca, dst); -}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (srca, dst); + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* NEG.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4468_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (srca, dst); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (srca, dst); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* NEG.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4470_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (srca, dst); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (srca, dst); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* NEG.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4478_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (srca, dst); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (srca, dst); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* NEG.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4479_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (srca, dst); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (srca, dst); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* NEG.L Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4480_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, srcreg) = (dst); -}}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, srcreg) = (dst); + } + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6 (1/0) */ /* NEG.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4490_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (srca, dst); -}}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (srca, dst); + } + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* NEG.L (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4498_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (srca, dst); -}}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (srca, dst); + } + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* NEG.L -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_44a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (srca, dst); -}}}}}}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (srca, dst); + } + } + } + } + } + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (3/2) */ /* NEG.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_44a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (srca, dst); -}}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (srca, dst); + } + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* NEG.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_44b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (srca, dst); -}}}}}}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (srca, dst); + } + } + } + } + } + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ /* NEG.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_44b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (srca, dst); -}}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (srca, dst); + } + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* NEG.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_44b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (srca, dst); -}}}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (srca, dst); + } + } + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* MV2SR.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_44c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* MV2SR.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_44d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* MV2SR.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_44d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* MV2SR.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_44e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/0) */ /* MV2SR.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_44e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* MV2SR.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_44f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/0) */ /* MV2SR.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_44f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* MV2SR.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_44f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (6); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (6); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/0) */ /* MV2SR.B (d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_44fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* MV2SR.B (d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_44fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/0) */ /* MV2SR.B #.B */ uae_u32 REGPARAM2 CPUFUNC(op_44fc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* NOT.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4600_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((dst) & 0xff); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((dst) & 0xff); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* NOT.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4610_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - put_byte (srca, dst); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte (srca, dst); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* NOT.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4618_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - put_byte (srca, dst); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte (srca, dst); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* NOT.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4620_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - put_byte (srca, dst); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte (srca, dst); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* NOT.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4628_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - put_byte (srca, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte (srca, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* NOT.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4630_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - put_byte (srca, dst); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte (srca, dst); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* NOT.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4638_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - put_byte (srca, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte (srca, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* NOT.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4639_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - put_byte (srca, dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte (srca, dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* NOT.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4640_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((dst) & 0xffff); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((dst) & 0xffff); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* NOT.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4650_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - put_word (srca, dst); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word (srca, dst); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* NOT.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4658_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - put_word (srca, dst); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word (srca, dst); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* NOT.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4660_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - put_word (srca, dst); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word (srca, dst); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* NOT.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4668_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - put_word (srca, dst); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word (srca, dst); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* NOT.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4670_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - put_word (srca, dst); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word (srca, dst); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* NOT.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4678_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - put_word (srca, dst); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word (srca, dst); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* NOT.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4679_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - put_word (srca, dst); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word (srca, dst); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* NOT.L Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4680_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - m68k_dreg (regs, srcreg) = (dst); -}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + m68k_dreg (regs, srcreg) = (dst); + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6 (1/0) */ /* NOT.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4690_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - put_long (srca, dst); -}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long (srca, dst); + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* NOT.L (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4698_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - put_long (srca, dst); -}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long (srca, dst); + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* NOT.L -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_46a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - put_long (srca, dst); -}}}}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long (srca, dst); + } + } + } + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (3/2) */ /* NOT.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_46a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - put_long (srca, dst); -}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long (srca, dst); + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* NOT.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_46b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - put_long (srca, dst); -}}}}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long (srca, dst); + } + } + } + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ /* NOT.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_46b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - put_long (srca, dst); -}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long (srca, dst); + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* NOT.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_46b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - put_long (srca, dst); -}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long (srca, dst); + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* MV2SR.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_46c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 src = m68k_dreg (regs, srcreg); - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* MV2SR.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_46d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* MV2SR.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_46d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* MV2SR.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_46e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/0) */ /* MV2SR.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_46e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* MV2SR.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_46f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/0) */ /* MV2SR.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_46f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* MV2SR.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_46f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (6); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (6); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (5/0) */ /* MV2SR.W (d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_46fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* MV2SR.W (d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_46fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (4/0) */ /* MV2SR.W #.W */ uae_u32 REGPARAM2 CPUFUNC(op_46fc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 src = get_word_prefetch (regs, 4); - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word_prefetch (regs, 4); + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* NBCD.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4800_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((newv) & 0xff); -}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((newv) & 0xff); + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6 (1/0) */ /* NBCD.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4810_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (srca, newv); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (srca, newv); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* NBCD.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4818_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (srca, newv); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (srca, newv); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* NBCD.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4820_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (srca, newv); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (srca, newv); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* NBCD.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4828_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (srca, newv); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (srca, newv); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* NBCD.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4830_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (srca, newv); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (srca, newv); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* NBCD.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4838_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (srca, newv); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (srca, newv); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* NBCD.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4839_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (srca, newv); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (srca, newv); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* SWAP.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4840_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - m68k_dreg (regs, srcreg) = (dst); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + m68k_dreg (regs, srcreg) = (dst); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* PEA.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4850_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, 7) - 4; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, 7) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_long (dsta, srca); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, 7) - 4; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, 7) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_long (dsta, srca); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (1/2) */ /* PEA.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4868_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, 7) - 4; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, 7) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_long (dsta, srca); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, 7) - 4; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, 7) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_long (dsta, srca); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (2/2) */ /* PEA.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4870_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uaecptr dsta; - dsta = m68k_areg (regs, 7) - 4; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, 7) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_long (dsta, srca); -}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uaecptr dsta; + dsta = m68k_areg (regs, 7) - 4; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, 7) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_long (dsta, srca); + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (2/2) */ /* PEA.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4878_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, 7) - 4; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, 7) = dsta; - put_long (dsta, srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, 7) - 4; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, 7) = dsta; + put_long (dsta, srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (2/2) */ /* PEA.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4879_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uaecptr dsta; - dsta = m68k_areg (regs, 7) - 4; - if (dsta & 1) { - m68k_incpc (8); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, 7) = dsta; - put_long (dsta, srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uaecptr dsta; + dsta = m68k_areg (regs, 7) - 4; + if (dsta & 1) + { + m68k_incpc (8); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, 7) = dsta; + put_long (dsta, srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* PEA.L (d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_487a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uaecptr dsta; - dsta = m68k_areg (regs, 7) - 4; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, 7) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_long (dsta, srca); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uaecptr dsta; + dsta = m68k_areg (regs, 7) - 4; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, 7) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_long (dsta, srca); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (2/2) */ /* PEA.L (d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_487b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); -{ uaecptr dsta; - dsta = m68k_areg (regs, 7) - 4; - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, 7) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_long (dsta, srca); -}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + { + uaecptr dsta; + dsta = m68k_areg (regs, 7) - 4; + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, 7) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_long (dsta, srca); + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (2/2) */ /* EXT.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4880_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 dst = (uae_s16)(uae_s8)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((dst) & 0xffff); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 dst = (uae_s16)(uae_s8)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((dst) & 0xffff); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* MVMLE.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4890_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_word_prefetch (regs, 4); -{ uaecptr srca; - srca = m68k_areg (regs, dstreg); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_word (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - put_word (srca, m68k_areg (regs, movem_index1[amask])); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_word_prefetch (regs, 4); + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_word (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + put_word (srca, m68k_areg (regs, movem_index1[amask])); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (2/0) */ /* MVMLE.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_48a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_word_prefetch (regs, 4); -{ uaecptr srca; - srca = m68k_areg (regs, dstreg) - 0; - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff; - while (amask) { - srca -= 2; - put_word (srca, m68k_areg (regs, movem_index2[amask])); - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (dmask) { - srca -= 2; - put_word (srca, m68k_dreg (regs, movem_index2[dmask])); - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - m68k_areg (regs, dstreg) = srca; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_word_prefetch (regs, 4); + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) - 0; + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff; + while (amask) + { + srca -= 2; + put_word (srca, m68k_areg (regs, movem_index2[amask])); + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (dmask) + { + srca -= 2; + put_word (srca, m68k_dreg (regs, movem_index2[dmask])); + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + m68k_areg (regs, dstreg) = srca; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (2/0) */ /* MVMLE.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_48a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_word_prefetch (regs, 4); -{ uaecptr srca; - srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_word (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - put_word (srca, m68k_areg (regs, movem_index1[amask])); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -}}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_word_prefetch (regs, 4); + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_word (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + put_word (srca, m68k_areg (regs, movem_index1[amask])); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + } + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12+ (3/0) */ /* MVMLE.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_48b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_word_prefetch (regs, 4); -{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 14 * CYCLE_UNIT / 2; - } -{{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_word (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - put_word (srca, m68k_areg (regs, movem_index1[amask])); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -}}}} m68k_incpc (6); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_word_prefetch (regs, 4); + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 14 * CYCLE_UNIT / 2; + } + { + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_word (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + put_word (srca, m68k_areg (regs, movem_index1[amask])); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + } + } + } + } + m68k_incpc (6); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14+ (3/0) */ /* MVMLE.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_48b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_word_prefetch (regs, 4); -{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_word (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - put_word (srca, m68k_areg (regs, movem_index1[amask])); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -}}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_word_prefetch (regs, 4); + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_word (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + put_word (srca, m68k_areg (regs, movem_index1[amask])); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + } + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12+ (3/0) */ /* MVMLE.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_48b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_word_prefetch (regs, 4); -{ uaecptr srca; - srca = get_word_prefetch (regs, 6) << 16; - srca |= get_word_prefetch (regs, 8); - if (srca & 1) { - m68k_incpc (8); - exception3 (opcode, srca); - return 16 * CYCLE_UNIT / 2; - } -{{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_word (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - put_word (srca, m68k_areg (regs, movem_index1[amask])); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 10); -}}}} m68k_incpc (8); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_word_prefetch (regs, 4); + { + uaecptr srca; + srca = get_word_prefetch (regs, 6) << 16; + srca |= get_word_prefetch (regs, 8); + if (srca & 1) + { + m68k_incpc (8); + exception3 (opcode, srca); + return 16 * CYCLE_UNIT / 2; + } + { + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_word (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + put_word (srca, m68k_areg (regs, movem_index1[amask])); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + } + } + } + } + m68k_incpc (8); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16+ (4/0) */ /* EXT.L Dn */ uae_u32 REGPARAM2 CPUFUNC(op_48c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 dst = (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - m68k_dreg (regs, srcreg) = (dst); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 dst = (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + m68k_dreg (regs, srcreg) = (dst); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* MVMLE.L #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_48d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_word_prefetch (regs, 4); -{ uaecptr srca; - srca = m68k_areg (regs, dstreg); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_long (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - put_long (srca, m68k_areg (regs, movem_index1[amask])); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_word_prefetch (regs, 4); + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_long (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + put_long (srca, m68k_areg (regs, movem_index1[amask])); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (2/0) */ /* MVMLE.L #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_48e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_word_prefetch (regs, 4); -{ uaecptr srca; - srca = m68k_areg (regs, dstreg) - 0; - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff; - while (amask) { - srca -= 4; - put_long (srca, m68k_areg (regs, movem_index2[amask])); - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (dmask) { - srca -= 4; - put_long (srca, m68k_dreg (regs, movem_index2[dmask])); - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - m68k_areg (regs, dstreg) = srca; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_word_prefetch (regs, 4); + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) - 0; + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff; + while (amask) + { + srca -= 4; + put_long (srca, m68k_areg (regs, movem_index2[amask])); + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (dmask) + { + srca -= 4; + put_long (srca, m68k_dreg (regs, movem_index2[dmask])); + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + m68k_areg (regs, dstreg) = srca; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (2/0) */ /* MVMLE.L #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_48e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_word_prefetch (regs, 4); -{ uaecptr srca; - srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_long (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - put_long (srca, m68k_areg (regs, movem_index1[amask])); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -}}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_word_prefetch (regs, 4); + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_long (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + put_long (srca, m68k_areg (regs, movem_index1[amask])); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + } + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12+ (3/0) */ /* MVMLE.L #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_48f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_word_prefetch (regs, 4); -{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 14 * CYCLE_UNIT / 2; - } -{{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_long (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - put_long (srca, m68k_areg (regs, movem_index1[amask])); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -}}}} m68k_incpc (6); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_word_prefetch (regs, 4); + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 14 * CYCLE_UNIT / 2; + } + { + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_long (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + put_long (srca, m68k_areg (regs, movem_index1[amask])); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + } + } + } + } + m68k_incpc (6); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14+ (3/0) */ /* MVMLE.L #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_48f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_word_prefetch (regs, 4); -{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_long (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - put_long (srca, m68k_areg (regs, movem_index1[amask])); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -}}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_word_prefetch (regs, 4); + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_long (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + put_long (srca, m68k_areg (regs, movem_index1[amask])); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + } + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12+ (3/0) */ /* MVMLE.L #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_48f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_word_prefetch (regs, 4); -{ uaecptr srca; - srca = get_word_prefetch (regs, 6) << 16; - srca |= get_word_prefetch (regs, 8); - if (srca & 1) { - m68k_incpc (8); - exception3 (opcode, srca); - return 16 * CYCLE_UNIT / 2; - } -{{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_long (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - put_long (srca, m68k_areg (regs, movem_index1[amask])); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 10); -}}}} m68k_incpc (8); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_word_prefetch (regs, 4); + { + uaecptr srca; + srca = get_word_prefetch (regs, 6) << 16; + srca |= get_word_prefetch (regs, 8); + if (srca & 1) + { + m68k_incpc (8); + exception3 (opcode, srca); + return 16 * CYCLE_UNIT / 2; + } + { + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_long (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + put_long (srca, m68k_areg (regs, movem_index1[amask])); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + } + } + } + } + m68k_incpc (8); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16+ (4/0) */ /* TST.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4a00_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* TST.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4a10_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* TST.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4a18_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* TST.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4a20_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* TST.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4a28_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* TST.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4a30_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* TST.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4a38_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* TST.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4a39_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* TST.B #.B */ uae_u32 REGPARAM2 CPUFUNC(op_4a3c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* TST.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4a40_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* TST.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4a50_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* TST.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4a58_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* TST.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4a60_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* TST.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4a68_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* TST.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4a70_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* TST.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4a78_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* TST.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4a79_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* TST.W #.W */ uae_u32 REGPARAM2 CPUFUNC(op_4a7c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = get_word_prefetch (regs, 4); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* TST.L Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4a80_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* TST.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4a90_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* TST.L (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4a98_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* TST.L -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4aa0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* TST.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4aa8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* TST.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4ab0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* TST.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4ab8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* TST.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4ab9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (5/0) */ /* TST.L #.L */ uae_u32 REGPARAM2 CPUFUNC(op_4abc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* TAS.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4ac0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - src |= 0x80; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((src) & 0xff); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + src |= 0x80; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((src) & 0xff); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* TAS.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ad0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - src |= 0x80; - put_byte (srca, src); -}}} m68k_incpc (2); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + src |= 0x80; + put_byte (srca, src); + } + } + } + m68k_incpc (2); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (2/1) */ /* TAS.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4ad8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - src |= 0x80; - put_byte (srca, src); -}}} m68k_incpc (2); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + src |= 0x80; + put_byte (srca, src); + } + } + } + m68k_incpc (2); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (2/1) */ /* TAS.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ae0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - src |= 0x80; - put_byte (srca, src); -}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + src |= 0x80; + put_byte (srca, src); + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (2/1) */ /* TAS.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ae8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src |= 0x80; - put_byte (srca, src); -}}} m68k_incpc (4); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src |= 0x80; + put_byte (srca, src); + } + } + } + m68k_incpc (4); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (3/1) */ /* TAS.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4af0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src |= 0x80; - put_byte (srca, src); -}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src |= 0x80; + put_byte (srca, src); + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (3/1) */ /* TAS.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4af8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - src |= 0x80; - put_byte (srca, src); -}}} m68k_incpc (4); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + src |= 0x80; + put_byte (srca, src); + } + } + } + m68k_incpc (4); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (3/1) */ /* TAS.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4af9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - src |= 0x80; - put_byte (srca, src); -}}} m68k_incpc (6); -return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + src |= 0x80; + put_byte (srca, src); + } + } + } + m68k_incpc (6); + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/1) */ /* MVMEL.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4c90_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_word_prefetch (regs, 4); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_areg (regs, dstreg); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_word_prefetch (regs, 4); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12+ (3/0) */ /* MVMEL.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4c98_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_word_prefetch (regs, 4); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_areg (regs, dstreg); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - m68k_areg (regs, dstreg) = srca; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_word_prefetch (regs, 4); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + m68k_areg (regs, dstreg) = srca; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12+ (3/0) */ /* MVMEL.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ca8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_word_prefetch (regs, 4); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_word_prefetch (regs, 4); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16+ (4/0) */ /* MVMEL.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4cb0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_word_prefetch (regs, 4); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 14 * CYCLE_UNIT / 2; - } -{{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_word_prefetch (regs, 4); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 14 * CYCLE_UNIT / 2; + } + { + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18+ (4/0) */ /* MVMEL.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4cb8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_word_prefetch (regs, 4); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_word_prefetch (regs, 4); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16+ (4/0) */ /* MVMEL.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4cb9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_word_prefetch (regs, 4); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = get_word_prefetch (regs, 6) << 16; - srca |= get_word_prefetch (regs, 8); - if (srca & 1) { - m68k_incpc (8); - exception3 (opcode, srca); - return 16 * CYCLE_UNIT / 2; - } -{{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 10); -}}}} m68k_incpc (8); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_word_prefetch (regs, 4); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = get_word_prefetch (regs, 6) << 16; + srca |= get_word_prefetch (regs, 8); + if (srca & 1) + { + m68k_incpc (8); + exception3 (opcode, srca); + return 16 * CYCLE_UNIT / 2; + } + { + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + } + } + } + } + m68k_incpc (8); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20+ (5/0) */ /* MVMEL.W #.W,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_4cba_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = 2; -{ uae_u16 mask = get_word_prefetch (regs, 4); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_getpc () + 4; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = 2; + { + uae_u16 mask = get_word_prefetch (regs, 4); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_getpc () + 4; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16+ (4/0) */ /* MVMEL.W #.W,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4cbb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = 3; -{ uae_u16 mask = get_word_prefetch (regs, 4); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 4; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 6)); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 14 * CYCLE_UNIT / 2; - } -{{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = 3; + { + uae_u16 mask = get_word_prefetch (regs, 4); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 4; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 6)); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 14 * CYCLE_UNIT / 2; + } + { + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18+ (4/0) */ /* MVMEL.L #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4cd0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_word_prefetch (regs, 4); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_areg (regs, dstreg); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_word_prefetch (regs, 4); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12+ (3/0) */ /* MVMEL.L #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4cd8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_word_prefetch (regs, 4); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_areg (regs, dstreg); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - m68k_areg (regs, dstreg) = srca; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_word_prefetch (regs, 4); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + m68k_areg (regs, dstreg) = srca; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12+ (3/0) */ /* MVMEL.L #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ce8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_word_prefetch (regs, 4); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_word_prefetch (regs, 4); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16+ (4/0) */ /* MVMEL.L #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4cf0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_word_prefetch (regs, 4); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 14 * CYCLE_UNIT / 2; - } -{{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_word_prefetch (regs, 4); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 6)); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 14 * CYCLE_UNIT / 2; + } + { + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18+ (4/0) */ /* MVMEL.L #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4cf8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_word_prefetch (regs, 4); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_word_prefetch (regs, 4); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16+ (4/0) */ /* MVMEL.L #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4cf9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_word_prefetch (regs, 4); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = get_word_prefetch (regs, 6) << 16; - srca |= get_word_prefetch (regs, 8); - if (srca & 1) { - m68k_incpc (8); - exception3 (opcode, srca); - return 16 * CYCLE_UNIT / 2; - } -{{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 10); -}}}} m68k_incpc (8); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_word_prefetch (regs, 4); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = get_word_prefetch (regs, 6) << 16; + srca |= get_word_prefetch (regs, 8); + if (srca & 1) + { + m68k_incpc (8); + exception3 (opcode, srca); + return 16 * CYCLE_UNIT / 2; + } + { + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 10); + } + } + } + } + m68k_incpc (8); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20+ (5/0) */ /* MVMEL.L #.W,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_4cfa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = 2; -{ uae_u16 mask = get_word_prefetch (regs, 4); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_getpc () + 4; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = 2; + { + uae_u16 mask = get_word_prefetch (regs, 4); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_getpc () + 4; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16+ (4/0) */ /* MVMEL.L #.W,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4cfb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = 3; -{ uae_u16 mask = get_word_prefetch (regs, 4); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 4; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 6)); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 14 * CYCLE_UNIT / 2; - } -{{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = 3; + { + uae_u16 mask = get_word_prefetch (regs, 4); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 4; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 6)); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 14 * CYCLE_UNIT / 2; + } + { + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18+ (4/0) */ /* TRAPQ.L # */ uae_u32 REGPARAM2 CPUFUNC(op_4e40_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 15); -{{ uae_u32 src = srcreg; - m68k_incpc (2); - Exception (src + 32); -}}return 34 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 15); + { + { + uae_u32 src = srcreg; + m68k_incpc (2); + Exception (src + 32); + } + } + return 34 * CYCLE_UNIT / 2 + count_cycles; } /* 34 (0/0) */ /* LINK.W An,#.W */ uae_u32 REGPARAM2 CPUFUNC(op_4e50_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr olda; - olda = m68k_areg (regs, 7) - 4; - if (olda & 1) { - m68k_incpc (4); - exception3 (opcode, olda); - return 4 * CYCLE_UNIT / 2; - } -{ m68k_areg (regs, 7) = olda; -{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s16 offs = get_word_prefetch (regs, 4); - put_long (olda, src); - m68k_areg (regs, srcreg) = (m68k_areg (regs, 7)); - m68k_areg (regs, 7) += offs; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr olda; + olda = m68k_areg (regs, 7) - 4; + if (olda & 1) + { + m68k_incpc (4); + exception3 (opcode, olda); + return 4 * CYCLE_UNIT / 2; + } + { + m68k_areg (regs, 7) = olda; + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s16 offs = get_word_prefetch (regs, 4); + put_long (olda, src); + m68k_areg (regs, srcreg) = (m68k_areg (regs, 7)); + m68k_areg (regs, 7) += offs; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (2/2) */ /* UNLK.L An */ uae_u32 REGPARAM2 CPUFUNC(op_4e58_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_areg (regs, srcreg); - m68k_areg (regs, 7) = src; -{ uaecptr olda; - olda = m68k_areg (regs, 7); - if (olda & 1) { - m68k_incpc (2); - exception3 (opcode, olda); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 old = get_long (olda); - m68k_areg (regs, 7) += 4; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_areg (regs, srcreg) = (old); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_areg (regs, srcreg); + m68k_areg (regs, 7) = src; + { + uaecptr olda; + olda = m68k_areg (regs, 7); + if (olda & 1) + { + m68k_incpc (2); + exception3 (opcode, olda); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 old = get_long (olda); + m68k_areg (regs, 7) += 4; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_areg (regs, srcreg) = (old); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* MVR2USP.L An */ uae_u32 REGPARAM2 CPUFUNC(op_4e60_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s32 src = m68k_areg (regs, srcreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - regs.usp = src; -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = m68k_areg (regs, srcreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + regs.usp = src; + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* MVUSP2R.L An */ uae_u32 REGPARAM2 CPUFUNC(op_4e68_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_areg (regs, srcreg) = (regs.usp); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_areg (regs, srcreg) = (regs.usp); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* RESET.L */ uae_u32 REGPARAM2 CPUFUNC(op_4e70_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); - cpureset (); - m68k_incpc (2); - get_word_prefetch (regs, 2); -}}return 132 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + cpureset (); + m68k_incpc (2); + get_word_prefetch (regs, 2); + } + } + return 132 * CYCLE_UNIT / 2 + count_cycles; } /* 132 (1/0) */ /* NOP.L */ uae_u32 REGPARAM2 CPUFUNC(op_4e71_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* STOP.L #.W */ uae_u32 REGPARAM2 CPUFUNC(op_4e72_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ regs.sr = regs.irc; - MakeFromSR(regs); - m68k_setstopped (); - m68k_incpc (4); -}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + regs.sr = regs.irc; + MakeFromSR(regs); + m68k_setstopped (); + m68k_incpc (4); + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (0/0) */ /* RTE.L */ uae_u32 REGPARAM2 CPUFUNC(op_4e73_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr sra; - sra = m68k_areg (regs, 7); - if (sra & 1) { - m68k_incpc (2); - exception3 (opcode, sra); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 sr = get_word (sra); - m68k_areg (regs, 7) += 2; -{ uaecptr pca; - pca = m68k_areg (regs, 7); - if (pca & 1) { - m68k_incpc (2); - exception3 (opcode, pca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 pc = get_long (pca); - m68k_areg (regs, 7) += 4; - regs.sr = sr; - if (pc & 1) { - exception3i (0x4E73, pc); - return 16 * CYCLE_UNIT / 2; - } - m68k_setpc (pc); - MakeFromSR(regs); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr sra; + sra = m68k_areg (regs, 7); + if (sra & 1) + { + m68k_incpc (2); + exception3 (opcode, sra); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 sr = get_word (sra); + m68k_areg (regs, 7) += 2; + { + uaecptr pca; + pca = m68k_areg (regs, 7); + if (pca & 1) + { + m68k_incpc (2); + exception3 (opcode, pca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 pc = get_long (pca); + m68k_areg (regs, 7) += 4; + regs.sr = sr; + if (pc & 1) + { + exception3i (0x4E73, pc); + return 16 * CYCLE_UNIT / 2; + } + m68k_setpc (pc); + MakeFromSR(regs); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (5/0) */ /* RTD.L #.W */ uae_u32 REGPARAM2 CPUFUNC(op_4e74_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr pca; - pca = m68k_areg (regs, 7); - if (pca & 1) { - m68k_incpc (2); - exception3 (opcode, pca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 pc = get_long (pca); - m68k_areg (regs, 7) += 4; -{ uae_s16 offs = get_word_prefetch (regs, 4); - m68k_areg (regs, 7) += offs; - if (pc & 1) { - exception3i (0x4E74, pc); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (pc); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr pca; + pca = m68k_areg (regs, 7); + if (pca & 1) + { + m68k_incpc (2); + exception3 (opcode, pca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 pc = get_long (pca); + m68k_areg (regs, 7) += 4; + { + uae_s16 offs = get_word_prefetch (regs, 4); + m68k_areg (regs, 7) += offs; + if (pc & 1) + { + exception3i (0x4E74, pc); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (pc); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (5/0) */ /* RTS.L */ uae_u32 REGPARAM2 CPUFUNC(op_4e75_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uaecptr pc = m68k_getpc (); - m68k_do_rts (); - if (m68k_getpc () & 1) { - uaecptr faultpc = m68k_getpc (); - m68k_setpc (pc); - exception3i (0x4E75, faultpc); - return 8 * CYCLE_UNIT / 2; - } - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uaecptr pc = m68k_getpc (); + m68k_do_rts (); + if (m68k_getpc () & 1) + { + uaecptr faultpc = m68k_getpc (); + m68k_setpc (pc); + exception3i (0x4E75, faultpc); + return 8 * CYCLE_UNIT / 2; + } + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* TRAPV.L */ uae_u32 REGPARAM2 CPUFUNC(op_4e76_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - if (GET_VFLG ()) { - Exception (7); - return 4 * CYCLE_UNIT / 2; - } -}return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + if (GET_VFLG ()) + { + Exception (7); + return 4 * CYCLE_UNIT / 2; + } + } + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* RTR.L */ uae_u32 REGPARAM2 CPUFUNC(op_4e77_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uaecptr oldpc = m68k_getpc (); - MakeSR (regs); -{ uaecptr sra; - sra = m68k_areg (regs, 7); - if (sra & 1) { - m68k_incpc (2); - exception3 (opcode, sra); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 sr = get_word (sra); - m68k_areg (regs, 7) += 2; -{ uaecptr pca; - pca = m68k_areg (regs, 7); - if (pca & 1) { - m68k_incpc (2); - exception3 (opcode, pca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 pc = get_long (pca); - m68k_areg (regs, 7) += 4; - regs.sr &= 0xFF00; sr &= 0xFF; - regs.sr |= sr; - m68k_setpc (pc); - MakeFromSR(regs); - if (m68k_getpc () & 1) { - uaecptr faultpc = m68k_getpc (); - m68k_setpc (oldpc); - exception3i (0x4E77, faultpc); - return 8 * CYCLE_UNIT / 2; - } - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}}}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uaecptr oldpc = m68k_getpc (); + MakeSR (regs); + { + uaecptr sra; + sra = m68k_areg (regs, 7); + if (sra & 1) + { + m68k_incpc (2); + exception3 (opcode, sra); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 sr = get_word (sra); + m68k_areg (regs, 7) += 2; + { + uaecptr pca; + pca = m68k_areg (regs, 7); + if (pca & 1) + { + m68k_incpc (2); + exception3 (opcode, pca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 pc = get_long (pca); + m68k_areg (regs, 7) += 4; + regs.sr &= 0xFF00; + sr &= 0xFF; + regs.sr |= sr; + m68k_setpc (pc); + MakeFromSR(regs); + if (m68k_getpc () & 1) + { + uaecptr faultpc = m68k_getpc (); + m68k_setpc (oldpc); + exception3i (0x4E77, faultpc); + return 8 * CYCLE_UNIT / 2; + } + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (5/0) */ /* JSR.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4e90_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uaecptr oldpc = m68k_getpc () + 2; - if (srca & 1) { - exception3i (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - get_word_prefetch (regs, 0); - m68k_areg (regs, 7) -= 4; - put_long (m68k_areg (regs, 7), oldpc); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uaecptr oldpc = m68k_getpc () + 2; + if (srca & 1) + { + exception3i (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + get_word_prefetch (regs, 0); + m68k_areg (regs, 7) -= 4; + put_long (m68k_areg (regs, 7), oldpc); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (2/2) */ /* JSR.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ea8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)regs.irc; -{ uaecptr oldpc = m68k_getpc () + 4; - if (srca & 1) { - exception3i (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - get_word_prefetch (regs, 0); - m68k_areg (regs, 7) -= 4; - put_long (m68k_areg (regs, 7), oldpc); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)regs.irc; + { + uaecptr oldpc = m68k_getpc () + 4; + if (srca & 1) + { + exception3i (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + get_word_prefetch (regs, 0); + m68k_areg (regs, 7) -= 4; + put_long (m68k_areg (regs, 7), oldpc); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (2/2) */ /* JSR.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4eb0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), regs.irc); -{ uaecptr oldpc = m68k_getpc () + 2; - if (srca & 1) { - exception3i (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } - oldpc += 2; - m68k_setpc (srca); - get_word_prefetch (regs, 0); - m68k_areg (regs, 7) -= 4; - put_long (m68k_areg (regs, 7), oldpc); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), regs.irc); + { + uaecptr oldpc = m68k_getpc () + 2; + if (srca & 1) + { + exception3i (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + oldpc += 2; + m68k_setpc (srca); + get_word_prefetch (regs, 0); + m68k_areg (regs, 7) -= 4; + put_long (m68k_areg (regs, 7), oldpc); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (2/2) */ /* JSR.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4eb8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)regs.irc; -{ uaecptr oldpc = m68k_getpc () + 4; - if (srca & 1) { - exception3i (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - get_word_prefetch (regs, 0); - m68k_areg (regs, 7) -= 4; - put_long (m68k_areg (regs, 7), oldpc); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)regs.irc; + { + uaecptr oldpc = m68k_getpc () + 4; + if (srca & 1) + { + exception3i (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + get_word_prefetch (regs, 0); + m68k_areg (regs, 7) -= 4; + put_long (m68k_areg (regs, 7), oldpc); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (2/2) */ /* JSR.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4eb9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= regs.irc; -{ uaecptr oldpc = m68k_getpc () + 6; - if (srca & 1) { - exception3i (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - get_word_prefetch (regs, 0); - m68k_areg (regs, 7) -= 4; - put_long (m68k_areg (regs, 7), oldpc); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= regs.irc; + { + uaecptr oldpc = m68k_getpc () + 6; + if (srca & 1) + { + exception3i (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + get_word_prefetch (regs, 0); + m68k_areg (regs, 7) -= 4; + put_long (m68k_areg (regs, 7), oldpc); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* JSR.L (d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_4eba_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)regs.irc; -{ uaecptr oldpc = m68k_getpc () + 4; - if (srca & 1) { - exception3i (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - get_word_prefetch (regs, 0); - m68k_areg (regs, 7) -= 4; - put_long (m68k_areg (regs, 7), oldpc); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)regs.irc; + { + uaecptr oldpc = m68k_getpc () + 4; + if (srca & 1) + { + exception3i (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + get_word_prefetch (regs, 0); + m68k_areg (regs, 7) -= 4; + put_long (m68k_areg (regs, 7), oldpc); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (2/2) */ /* JSR.L (d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4ebb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, regs.irc); -{ uaecptr oldpc = m68k_getpc () + 2; - if (srca & 1) { - exception3i (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } - oldpc += 2; - m68k_setpc (srca); - get_word_prefetch (regs, 0); - m68k_areg (regs, 7) -= 4; - put_long (m68k_areg (regs, 7), oldpc); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, regs.irc); + { + uaecptr oldpc = m68k_getpc () + 2; + if (srca & 1) + { + exception3i (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + oldpc += 2; + m68k_setpc (srca); + get_word_prefetch (regs, 0); + m68k_areg (regs, 7) -= 4; + put_long (m68k_areg (regs, 7), oldpc); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (2/2) */ /* JMP.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ed0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - exception3i (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + exception3i (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* JMP.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ee8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)regs.irc; - if (srca & 1) { - exception3i (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)regs.irc; + if (srca & 1) + { + exception3i (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* JMP.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4ef0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), regs.irc); - if (srca & 1) { - exception3i (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), regs.irc); + if (srca & 1) + { + exception3i (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/0) */ /* JMP.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4ef8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)regs.irc; - if (srca & 1) { - exception3i (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)regs.irc; + if (srca & 1) + { + exception3i (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* JMP.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4ef9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= regs.irc; - if (srca & 1) { - exception3i (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= regs.irc; + if (srca & 1) + { + exception3i (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* JMP.L (d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_4efa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)regs.irc; - if (srca & 1) { - exception3i (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)regs.irc; + if (srca & 1) + { + exception3i (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* JMP.L (d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4efb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, regs.irc); - if (srca & 1) { - exception3i (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, regs.irc); + if (srca & 1) + { + exception3i (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/0) */ /* ADDQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_5000_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* ADDQ.B #,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5010_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* ADDQ.B #,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_5018_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* ADDQ.B #,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5020_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* ADDQ.B #,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_5028_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ADDQ.B #,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_5030_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* ADDQ.B #,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_5038_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ADDQ.B #,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_5039_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* ADDQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_5040_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* ADDAQ.W #,An */ uae_u32 REGPARAM2 CPUFUNC(op_5048_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* ADDQ.W #,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5050_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* ADDQ.W #,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_5058_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* ADDQ.W #,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5060_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* ADDQ.W #,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_5068_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ADDQ.W #,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_5070_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* ADDQ.W #,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_5078_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ADDQ.W #,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_5079_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* ADDQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_5080_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* ADDAQ.L #,An */ uae_u32 REGPARAM2 CPUFUNC(op_5088_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* ADDQ.L #,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5090_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* ADDQ.L #,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_5098_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ #endif @@ -19522,3676 +27905,5628 @@ return 20 * CYCLE_UNIT / 2 + count_cycles; /* ADDQ.L #,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_50a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (3/2) */ /* ADDQ.L #,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_50a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* ADDQ.L #,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_50b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ /* ADDQ.L #,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_50b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* ADDQ.L #,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_50b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* Scc.B Dn (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4+ (1/0) */ /* DBcc.W Dn,#.W (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = regs.irc; - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 0)) { - m68k_incpc ((uae_s32)offs + 2); - get_word_prefetch (regs, 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = regs.irc; + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 0)) + { + m68k_incpc ((uae_s32)offs + 2); + get_word_prefetch (regs, 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10+ (2/0) */ /* Scc.B (An) (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B (An)+ (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B -(An) (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* Scc.B (d16,An) (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (d8,An,Xn) (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* Scc.B (xxx).W (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (xxx).L (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* SUBQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_5100_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* SUBQ.B #,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5110_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* SUBQ.B #,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_5118_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* SUBQ.B #,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5120_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* SUBQ.B #,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_5128_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* SUBQ.B #,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_5130_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* SUBQ.B #,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_5138_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* SUBQ.B #,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_5139_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* SUBQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_5140_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* SUBAQ.W #,An */ uae_u32 REGPARAM2 CPUFUNC(op_5148_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* SUBQ.W #,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5150_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* SUBQ.W #,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_5158_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* SUBQ.W #,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5160_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* SUBQ.W #,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_5168_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* SUBQ.W #,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_5170_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* SUBQ.W #,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_5178_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* SUBQ.W #,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_5179_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* SUBQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_5180_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* SUBAQ.L #,An */ uae_u32 REGPARAM2 CPUFUNC(op_5188_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* SUBQ.L #,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5190_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* SUBQ.L #,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_5198_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* SUBQ.L #,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_51a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (3/2) */ /* SUBQ.L #,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_51a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* SUBQ.L #,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_51b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ /* SUBQ.L #,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_51b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* SUBQ.L #,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_51b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* Scc.B Dn (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4+ (1/0) */ /* DBcc.W Dn,#.W (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = regs.irc; - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 1)) { - m68k_incpc ((uae_s32)offs + 2); - get_word_prefetch (regs, 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = regs.irc; + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 1)) + { + m68k_incpc ((uae_s32)offs + 2); + get_word_prefetch (regs, 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10+ (2/0) */ /* Scc.B (An) (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B (An)+ (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B -(An) (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* Scc.B (d16,An) (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (d8,An,Xn) (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* Scc.B (xxx).W (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (xxx).L (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* Scc.B Dn (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4+ (1/0) */ /* DBcc.W Dn,#.W (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = regs.irc; - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 2)) { - m68k_incpc ((uae_s32)offs + 2); - get_word_prefetch (regs, 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = regs.irc; + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 2)) + { + m68k_incpc ((uae_s32)offs + 2); + get_word_prefetch (regs, 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10+ (2/0) */ /* Scc.B (An) (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B (An)+ (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B -(An) (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* Scc.B (d16,An) (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (d8,An,Xn) (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* Scc.B (xxx).W (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (xxx).L (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* Scc.B Dn (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4+ (1/0) */ /* DBcc.W Dn,#.W (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = regs.irc; - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 3)) { - m68k_incpc ((uae_s32)offs + 2); - get_word_prefetch (regs, 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = regs.irc; + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 3)) + { + m68k_incpc ((uae_s32)offs + 2); + get_word_prefetch (regs, 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10+ (2/0) */ /* Scc.B (An) (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B (An)+ (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B -(An) (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* Scc.B (d16,An) (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (d8,An,Xn) (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* Scc.B (xxx).W (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (xxx).L (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* Scc.B Dn (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4+ (1/0) */ /* DBcc.W Dn,#.W (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = regs.irc; - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 4)) { - m68k_incpc ((uae_s32)offs + 2); - get_word_prefetch (regs, 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = regs.irc; + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 4)) + { + m68k_incpc ((uae_s32)offs + 2); + get_word_prefetch (regs, 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10+ (2/0) */ /* Scc.B (An) (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B (An)+ (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B -(An) (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* Scc.B (d16,An) (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (d8,An,Xn) (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* Scc.B (xxx).W (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (xxx).L (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* Scc.B Dn (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4+ (1/0) */ /* DBcc.W Dn,#.W (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = regs.irc; - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 5)) { - m68k_incpc ((uae_s32)offs + 2); - get_word_prefetch (regs, 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = regs.irc; + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 5)) + { + m68k_incpc ((uae_s32)offs + 2); + get_word_prefetch (regs, 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10+ (2/0) */ /* Scc.B (An) (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B (An)+ (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B -(An) (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* Scc.B (d16,An) (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (d8,An,Xn) (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* Scc.B (xxx).W (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (xxx).L (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* Scc.B Dn (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4+ (1/0) */ /* DBcc.W Dn,#.W (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = regs.irc; - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 6)) { - m68k_incpc ((uae_s32)offs + 2); - get_word_prefetch (regs, 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = regs.irc; + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 6)) + { + m68k_incpc ((uae_s32)offs + 2); + get_word_prefetch (regs, 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10+ (2/0) */ /* Scc.B (An) (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B (An)+ (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B -(An) (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* Scc.B (d16,An) (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (d8,An,Xn) (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* Scc.B (xxx).W (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (xxx).L (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* Scc.B Dn (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4+ (1/0) */ /* DBcc.W Dn,#.W (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = regs.irc; - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 7)) { - m68k_incpc ((uae_s32)offs + 2); - get_word_prefetch (regs, 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = regs.irc; + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 7)) + { + m68k_incpc ((uae_s32)offs + 2); + get_word_prefetch (regs, 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10+ (2/0) */ /* Scc.B (An) (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B (An)+ (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B -(An) (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* Scc.B (d16,An) (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (d8,An,Xn) (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* Scc.B (xxx).W (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (xxx).L (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* Scc.B Dn (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4+ (1/0) */ /* DBcc.W Dn,#.W (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = regs.irc; - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 8)) { - m68k_incpc ((uae_s32)offs + 2); - get_word_prefetch (regs, 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = regs.irc; + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 8)) + { + m68k_incpc ((uae_s32)offs + 2); + get_word_prefetch (regs, 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10+ (2/0) */ /* Scc.B (An) (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B (An)+ (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B -(An) (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* Scc.B (d16,An) (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (d8,An,Xn) (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* Scc.B (xxx).W (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (xxx).L (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* Scc.B Dn (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4+ (1/0) */ /* DBcc.W Dn,#.W (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = regs.irc; - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 9)) { - m68k_incpc ((uae_s32)offs + 2); - get_word_prefetch (regs, 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = regs.irc; + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 9)) + { + m68k_incpc ((uae_s32)offs + 2); + get_word_prefetch (regs, 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10+ (2/0) */ /* Scc.B (An) (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B (An)+ (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B -(An) (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* Scc.B (d16,An) (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (d8,An,Xn) (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* Scc.B (xxx).W (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (xxx).L (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* Scc.B Dn (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5ac0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4+ (1/0) */ /* DBcc.W Dn,#.W (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5ac8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = regs.irc; - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 10)) { - m68k_incpc ((uae_s32)offs + 2); - get_word_prefetch (regs, 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = regs.irc; + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 10)) + { + m68k_incpc ((uae_s32)offs + 2); + get_word_prefetch (regs, 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10+ (2/0) */ /* Scc.B (An) (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5ad0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B (An)+ (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5ad8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B -(An) (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5ae0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* Scc.B (d16,An) (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5ae8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (d8,An,Xn) (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5af0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* Scc.B (xxx).W (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5af8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (xxx).L (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5af9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* Scc.B Dn (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bc0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4+ (1/0) */ /* DBcc.W Dn,#.W (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bc8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = regs.irc; - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 11)) { - m68k_incpc ((uae_s32)offs + 2); - get_word_prefetch (regs, 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = regs.irc; + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 11)) + { + m68k_incpc ((uae_s32)offs + 2); + get_word_prefetch (regs, 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10+ (2/0) */ /* Scc.B (An) (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bd0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B (An)+ (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bd8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B -(An) (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5be0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* Scc.B (d16,An) (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5be8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (d8,An,Xn) (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bf0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* Scc.B (xxx).W (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bf8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (xxx).L (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bf9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* Scc.B Dn (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cc0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4+ (1/0) */ /* DBcc.W Dn,#.W (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cc8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = regs.irc; - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 12)) { - m68k_incpc ((uae_s32)offs + 2); - get_word_prefetch (regs, 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = regs.irc; + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 12)) + { + m68k_incpc ((uae_s32)offs + 2); + get_word_prefetch (regs, 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10+ (2/0) */ /* Scc.B (An) (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cd0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B (An)+ (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cd8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B -(An) (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5ce0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* Scc.B (d16,An) (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5ce8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (d8,An,Xn) (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cf0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* Scc.B (xxx).W (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cf8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (xxx).L (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cf9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* Scc.B Dn (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5dc0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4+ (1/0) */ /* DBcc.W Dn,#.W (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5dc8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = regs.irc; - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 13)) { - m68k_incpc ((uae_s32)offs + 2); - get_word_prefetch (regs, 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = regs.irc; + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 13)) + { + m68k_incpc ((uae_s32)offs + 2); + get_word_prefetch (regs, 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10+ (2/0) */ /* Scc.B (An) (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5dd0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B (An)+ (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5dd8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B -(An) (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5de0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* Scc.B (d16,An) (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5de8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (d8,An,Xn) (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5df0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* Scc.B (xxx).W (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5df8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (xxx).L (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5df9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* Scc.B Dn (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ec0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4+ (1/0) */ /* DBcc.W Dn,#.W (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ec8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = regs.irc; - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 14)) { - m68k_incpc ((uae_s32)offs + 2); - get_word_prefetch (regs, 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = regs.irc; + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 14)) + { + m68k_incpc ((uae_s32)offs + 2); + get_word_prefetch (regs, 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10+ (2/0) */ /* Scc.B (An) (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ed0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B (An)+ (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ed8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B -(An) (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ee0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* Scc.B (d16,An) (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ee8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (d8,An,Xn) (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ef0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* Scc.B (xxx).W (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ef8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (xxx).L (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ef9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* Scc.B Dn (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5fc0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4+ (1/0) */ /* DBcc.W Dn,#.W (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5fc8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = regs.irc; - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 15)) { - m68k_incpc ((uae_s32)offs + 2); - get_word_prefetch (regs, 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = regs.irc; + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 15)) + { + m68k_incpc ((uae_s32)offs + 2); + get_word_prefetch (regs, 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10+ (2/0) */ /* Scc.B (An) (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5fd0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B (An)+ (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5fd8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* Scc.B -(An) (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5fe0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* Scc.B (d16,An) (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5fe8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (d8,An,Xn) (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5ff0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* Scc.B (xxx).W (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5ff8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* Scc.B (xxx).L (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5ff9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - put_byte (srca, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* Bcc.W #.W (T) */ uae_u32 REGPARAM2 CPUFUNC(op_6000_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = regs.irc; - if (!cctrue (regs.ccrflags, 0)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = regs.irc; + if (!cctrue (regs.ccrflags, 0)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* BccQ.B # (T) */ uae_u32 REGPARAM2 CPUFUNC(op_6001_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 0)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 0)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.L #.L (T) */ uae_u32 REGPARAM2 CPUFUNC(op_60ff_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ if (cctrue (regs.ccrflags, 0)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (cctrue (regs.ccrflags, 0)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* BSR.W #.W */ uae_u32 REGPARAM2 CPUFUNC(op_6100_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_s32 s; -{ uae_s16 src = regs.irc; - s = (uae_s32)src + 2; - if (src & 1) { - exception3 (opcode, m68k_getpc () + s, 0, 1, m68k_getpc () + s); - return 4 * CYCLE_UNIT / 2; - } - m68k_do_bsr (regs, m68k_getpc () + 4, s); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_s32 s; + { + uae_s16 src = regs.irc; + s = (uae_s32)src + 2; + if (src & 1) + { + exception3 (opcode, m68k_getpc () + s, 0, 1, m68k_getpc () + s); + return 4 * CYCLE_UNIT / 2; + } + m68k_do_bsr (regs, m68k_getpc () + 4, s); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (2/2) */ /* BSRQ.B # */ uae_u32 REGPARAM2 CPUFUNC(op_6101_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{ uae_s32 s; -{ uae_u32 src = srcreg; - s = (uae_s32)src + 2; - if (src & 1) { - exception3 (opcode, m68k_getpc () + s, 0, 1, m68k_getpc () + s); - return 4 * CYCLE_UNIT / 2; - } - m68k_do_bsr (regs, m68k_getpc () + 2, s); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + uae_s32 s; + { + uae_u32 src = srcreg; + s = (uae_s32)src + 2; + if (src & 1) + { + exception3 (opcode, m68k_getpc () + s, 0, 1, m68k_getpc () + s); + return 4 * CYCLE_UNIT / 2; + } + m68k_do_bsr (regs, m68k_getpc () + 2, s); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (2/2) */ /* BSR.L #.L */ uae_u32 REGPARAM2 CPUFUNC(op_61ff_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_s32 s; - uae_u32 src = 0xffffffff; - s = (uae_s32)src + 2; - if (src & 1) { - exception3 (opcode, m68k_getpc () + s, 0, 1, m68k_getpc () + s); - return 4 * CYCLE_UNIT / 2; - } - m68k_do_bsr (regs, m68k_getpc () + 2, s); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_s32 s; + uae_u32 src = 0xffffffff; + s = (uae_s32)src + 2; + if (src & 1) + { + exception3 (opcode, m68k_getpc () + s, 0, 1, m68k_getpc () + s); + return 4 * CYCLE_UNIT / 2; + } + m68k_do_bsr (regs, m68k_getpc () + 2, s); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (2/2) */ /* Bcc.W #.W (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_6200_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = regs.irc; - if (!cctrue (regs.ccrflags, 2)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = regs.irc; + if (!cctrue (regs.ccrflags, 2)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* BccQ.B # (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_6201_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 2)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 2)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.L #.L (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_62ff_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ if (cctrue (regs.ccrflags, 2)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (cctrue (regs.ccrflags, 2)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.W #.W (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_6300_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = regs.irc; - if (!cctrue (regs.ccrflags, 3)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = regs.irc; + if (!cctrue (regs.ccrflags, 3)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* BccQ.B # (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_6301_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 3)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 3)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ #endif @@ -23200,6059 +33535,8807 @@ didnt_jump:; /* Bcc.L #.L (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_63ff_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ if (cctrue (regs.ccrflags, 3)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (cctrue (regs.ccrflags, 3)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.W #.W (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_6400_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = regs.irc; - if (!cctrue (regs.ccrflags, 4)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = regs.irc; + if (!cctrue (regs.ccrflags, 4)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* BccQ.B # (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_6401_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 4)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 4)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.L #.L (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_64ff_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ if (cctrue (regs.ccrflags, 4)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (cctrue (regs.ccrflags, 4)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.W #.W (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_6500_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = regs.irc; - if (!cctrue (regs.ccrflags, 5)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = regs.irc; + if (!cctrue (regs.ccrflags, 5)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* BccQ.B # (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_6501_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 5)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 5)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.L #.L (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_65ff_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ if (cctrue (regs.ccrflags, 5)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (cctrue (regs.ccrflags, 5)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.W #.W (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_6600_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = regs.irc; - if (!cctrue (regs.ccrflags, 6)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = regs.irc; + if (!cctrue (regs.ccrflags, 6)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* BccQ.B # (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_6601_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 6)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 6)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.L #.L (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_66ff_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ if (cctrue (regs.ccrflags, 6)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (cctrue (regs.ccrflags, 6)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.W #.W (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_6700_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = regs.irc; - if (!cctrue (regs.ccrflags, 7)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = regs.irc; + if (!cctrue (regs.ccrflags, 7)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* BccQ.B # (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_6701_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 7)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 7)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.L #.L (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_67ff_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ if (cctrue (regs.ccrflags, 7)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (cctrue (regs.ccrflags, 7)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.W #.W (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_6800_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = regs.irc; - if (!cctrue (regs.ccrflags, 8)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = regs.irc; + if (!cctrue (regs.ccrflags, 8)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* BccQ.B # (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_6801_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 8)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 8)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.L #.L (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_68ff_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ if (cctrue (regs.ccrflags, 8)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (cctrue (regs.ccrflags, 8)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.W #.W (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_6900_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = regs.irc; - if (!cctrue (regs.ccrflags, 9)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = regs.irc; + if (!cctrue (regs.ccrflags, 9)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* BccQ.B # (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_6901_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 9)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 9)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.L #.L (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_69ff_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ if (cctrue (regs.ccrflags, 9)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (cctrue (regs.ccrflags, 9)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.W #.W (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_6a00_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = regs.irc; - if (!cctrue (regs.ccrflags, 10)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = regs.irc; + if (!cctrue (regs.ccrflags, 10)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* BccQ.B # (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_6a01_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 10)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 10)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.L #.L (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_6aff_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ if (cctrue (regs.ccrflags, 10)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (cctrue (regs.ccrflags, 10)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.W #.W (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_6b00_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = regs.irc; - if (!cctrue (regs.ccrflags, 11)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = regs.irc; + if (!cctrue (regs.ccrflags, 11)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* BccQ.B # (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_6b01_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 11)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 11)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.L #.L (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_6bff_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ if (cctrue (regs.ccrflags, 11)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (cctrue (regs.ccrflags, 11)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.W #.W (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_6c00_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = regs.irc; - if (!cctrue (regs.ccrflags, 12)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = regs.irc; + if (!cctrue (regs.ccrflags, 12)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* BccQ.B # (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_6c01_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 12)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 12)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.L #.L (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_6cff_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ if (cctrue (regs.ccrflags, 12)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (cctrue (regs.ccrflags, 12)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.W #.W (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_6d00_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = regs.irc; - if (!cctrue (regs.ccrflags, 13)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = regs.irc; + if (!cctrue (regs.ccrflags, 13)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* BccQ.B # (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_6d01_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 13)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 13)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.L #.L (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_6dff_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ if (cctrue (regs.ccrflags, 13)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (cctrue (regs.ccrflags, 13)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.W #.W (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_6e00_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = regs.irc; - if (!cctrue (regs.ccrflags, 14)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = regs.irc; + if (!cctrue (regs.ccrflags, 14)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* BccQ.B # (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_6e01_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 14)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 14)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.L #.L (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_6eff_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ if (cctrue (regs.ccrflags, 14)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (cctrue (regs.ccrflags, 14)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.W #.W (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_6f00_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uae_s16 src = regs.irc; - if (!cctrue (regs.ccrflags, 15)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uae_s16 src = regs.irc; + if (!cctrue (regs.ccrflags, 15)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* BccQ.B # (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_6f01_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 15)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - get_word_prefetch (regs, 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 15)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + get_word_prefetch (regs, 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* Bcc.L #.L (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_6fff_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ if (cctrue (regs.ccrflags, 15)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + if (cctrue (regs.ccrflags, 15)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* MOVEQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_7000_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_u32 src = srcreg; -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (2); - regs.ir = regs.irc; - get_word_prefetch (regs, 2); -}}}return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_u32 src = srcreg; + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (2); + regs.ir = regs.irc; + get_word_prefetch (regs, 2); + } + } + } + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* OR.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8000_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* OR.B (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8010_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* OR.B (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8018_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* OR.B -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8020_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* OR.B (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8028_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* OR.B (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8030_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* OR.B (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8038_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* OR.B (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8039_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* OR.B (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_803a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* OR.B (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_803b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* OR.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_803c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* OR.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8040_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* OR.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8050_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* OR.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8058_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* OR.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8060_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* OR.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8068_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* OR.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8070_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* OR.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8078_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* OR.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8079_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* OR.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_807a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* OR.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_807b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* OR.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_807c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* OR.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8080_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* OR.L (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8090_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (src); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* OR.L (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8098_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (src); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* OR.L -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (src); -}}}}} m68k_incpc (2); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + m68k_incpc (2); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* OR.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (src); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* OR.L (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (src); -}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* OR.L (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (src); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* OR.L (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - m68k_dreg (regs, dstreg) = (src); -}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (5/0) */ /* OR.L (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80ba_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (src); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* OR.L (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80bb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (src); -}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* OR.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80bc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* DIVU.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - m68k_incpc (2); - Exception (5); - return 4 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (2); - } -}}}return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + m68k_incpc (2); + Exception (5); + return 4 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (2); + } + } + } + } + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4+ (1/0) */ /* DIVU.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - m68k_incpc (2); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (2); - } -}}}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + m68k_incpc (2); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (2); + } + } + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (2/0) */ /* DIVU.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - m68k_incpc (2); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (2); - } -}}}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + m68k_incpc (2); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (2); + } + } + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (2/0) */ /* DIVU.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - m68k_incpc (2); - Exception (5); - return 10 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (2); - } -}}}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + m68k_incpc (2); + Exception (5); + return 10 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (2); + } + } + } + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10+ (2/0) */ /* DIVU.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - m68k_incpc (4); - Exception (5); - return 12 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (4); - } -}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + m68k_incpc (4); + Exception (5); + return 12 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (4); + } + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12+ (3/0) */ /* DIVU.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - m68k_incpc (4); - Exception (5); - return 14 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (4); - } -}}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + m68k_incpc (4); + Exception (5); + return 14 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (4); + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14+ (3/0) */ /* DIVU.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - m68k_incpc (4); - Exception (5); - return 12 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (4); - } -}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + m68k_incpc (4); + Exception (5); + return 12 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (4); + } + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12+ (3/0) */ /* DIVU.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - m68k_incpc (6); - Exception (5); - return 16 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (6); - } -}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + m68k_incpc (6); + Exception (5); + return 16 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (6); + } + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16+ (4/0) */ /* DIVU.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - m68k_incpc (4); - Exception (5); - return 12 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (4); - } -}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + m68k_incpc (4); + Exception (5); + return 12 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (4); + } + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12+ (3/0) */ /* DIVU.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - m68k_incpc (4); - Exception (5); - return 14 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (4); - } -}}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + m68k_incpc (4); + Exception (5); + return 14 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (4); + } + } + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14+ (3/0) */ /* DIVU.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80fc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - m68k_incpc (4); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (4); - } -}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + m68k_incpc (4); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (4); + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (2/0) */ /* SBCD.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8100_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); - uae_u16 newv, tmp_newv; - int bcd = 0; - newv = tmp_newv = newv_hi + newv_lo; - if (newv_lo & 0xF0) { newv -= 6; bcd = 6; }; - if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG () ? 1 : 0)) & 0x100) > 0xFF) { newv -= 0x60; } - SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG () ? 1 : 0)) & 0x300) > 0xFF); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); + uae_u16 newv, tmp_newv; + int bcd = 0; + newv = tmp_newv = newv_hi + newv_lo; + if (newv_lo & 0xF0) + { + newv -= 6; + bcd = 6; + }; + if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG () ? 1 : 0)) & 0x100) > 0xFF) + { + newv -= 0x60; + } + SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG () ? 1 : 0)) & 0x300) > 0xFF); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6 (1/0) */ /* SBCD.B -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_8108_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); - uae_u16 newv, tmp_newv; - int bcd = 0; - newv = tmp_newv = newv_hi + newv_lo; - if (newv_lo & 0xF0) { newv -= 6; bcd = 6; }; - if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG () ? 1 : 0)) & 0x100) > 0xFF) { newv -= 0x60; } - SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG () ? 1 : 0)) & 0x300) > 0xFF); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (dsta, newv); -}}}}}} m68k_incpc (2); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); + uae_u16 newv, tmp_newv; + int bcd = 0; + newv = tmp_newv = newv_hi + newv_lo; + if (newv_lo & 0xF0) + { + newv -= 6; + bcd = 6; + }; + if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG () ? 1 : 0)) & 0x100) > 0xFF) + { + newv -= 0x60; + } + SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG () ? 1 : 0)) & 0x300) > 0xFF); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (dsta, newv); + } + } + } + } + } + } + m68k_incpc (2); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* OR.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_8110_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_byte (dsta, src); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* OR.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_8118_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_byte (dsta, src); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* OR.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_8120_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_byte (dsta, src); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* OR.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_8128_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* OR.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_8130_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* OR.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_8138_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* OR.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_8139_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* OR.W Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_8150_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_word (dsta, src); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* OR.W Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_8158_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_word (dsta, src); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* OR.W Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_8160_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_word (dsta, src); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* OR.W Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_8168_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_word (dsta, src); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* OR.W Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_8170_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_word (dsta, src); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* OR.W Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_8178_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_word (dsta, src); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* OR.W Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_8179_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_word (dsta, src); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* OR.L Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_8190_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_long (dsta, src); -}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* OR.L Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_8198_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_long (dsta, src); -}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* OR.L Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_81a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_long (dsta, src); -}}}}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (3/2) */ /* OR.L Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_81a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_long (dsta, src); -}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* OR.L Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_81b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_long (dsta, src); -}}}}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ /* OR.L Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_81b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_long (dsta, src); -}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* OR.L Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_81b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_long (dsta, src); -}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* DIVS.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - m68k_incpc (2); - Exception (5); - return 4 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (2); -}}}return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + m68k_incpc (2); + Exception (5); + return 4 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (2); + } + } + } + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4+ (1/0) */ /* DIVS.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - m68k_incpc (2); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (2); -}}}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + m68k_incpc (2); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (2); + } + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (2/0) */ /* DIVS.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - m68k_incpc (2); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (2); -}}}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + m68k_incpc (2); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (2); + } + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (2/0) */ /* DIVS.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - m68k_incpc (2); - Exception (5); - return 10 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (2); -}}}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + m68k_incpc (2); + Exception (5); + return 10 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (2); + } + } + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10+ (2/0) */ /* DIVS.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - m68k_incpc (4); - Exception (5); - return 12 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (4); -}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + m68k_incpc (4); + Exception (5); + return 12 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (4); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12+ (3/0) */ /* DIVS.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - m68k_incpc (4); - Exception (5); - return 14 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (4); -}}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + m68k_incpc (4); + Exception (5); + return 14 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (4); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14+ (3/0) */ /* DIVS.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - m68k_incpc (4); - Exception (5); - return 12 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (4); -}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + m68k_incpc (4); + Exception (5); + return 12 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (4); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12+ (3/0) */ /* DIVS.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - m68k_incpc (6); - Exception (5); - return 16 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (6); -}}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + m68k_incpc (6); + Exception (5); + return 16 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (6); + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16+ (4/0) */ /* DIVS.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - m68k_incpc (4); - Exception (5); - return 12 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (4); -}}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + m68k_incpc (4); + Exception (5); + return 12 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (4); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12+ (3/0) */ /* DIVS.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - m68k_incpc (4); - Exception (5); - return 14 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (4); -}}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + m68k_incpc (4); + Exception (5); + return 14 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (4); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14+ (3/0) */ /* DIVS.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81fc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - m68k_incpc (4); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (4); -}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + m68k_incpc (4); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (4); + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (2/0) */ /* SUB.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9000_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* SUB.B (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9010_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* SUB.B (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9018_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* SUB.B -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9020_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* SUB.B (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9028_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* SUB.B (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9030_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* SUB.B (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9038_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* SUB.B (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9039_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* SUB.B (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_903a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* SUB.B (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_903b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* SUB.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_903c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* SUB.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9040_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* SUB.W An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9048_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* SUB.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9050_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* SUB.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9058_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* SUB.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9060_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* SUB.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9068_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* SUB.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9070_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* SUB.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9078_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* SUB.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9079_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* SUB.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_907a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* SUB.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_907b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* SUB.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_907c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* SUB.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9080_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* SUB.L An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9088_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* SUB.L (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9090_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* SUB.L (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9098_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* SUB.L -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}} m68k_incpc (2); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* SUB.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* SUB.L (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* SUB.L (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* SUB.L (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (5/0) */ /* SUB.L (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90ba_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* SUB.L (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90bb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* SUB.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90bc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* SUBA.W Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_90c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* SUBA.W An,An */ uae_u32 REGPARAM2 CPUFUNC(op_90c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* SUBA.W (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_90d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* SUBA.W (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_90d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* SUBA.W -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_90e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/0) */ /* SUBA.W (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_90e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* SUBA.W (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_90f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/0) */ /* SUBA.W (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_90f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* SUBA.W (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_90f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* SUBA.W (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_90fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* SUBA.W (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_90fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/0) */ /* SUBA.W #.W,An */ uae_u32 REGPARAM2 CPUFUNC(op_90fc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* SUBX.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9100_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* SUBX.B -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9108_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* SUB.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9110_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* SUB.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_9118_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* SUB.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9120_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* SUB.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_9128_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* SUB.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_9130_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* SUB.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_9138_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* SUB.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_9139_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* SUBX.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9140_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* SUBX.W -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9148_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (dsta, newv); -}}}}}}}}} m68k_incpc (2); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* SUB.W Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9150_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* SUB.W Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_9158_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* SUB.W Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9160_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* SUB.W Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_9168_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* SUB.W Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_9170_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* SUB.W Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_9178_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* SUB.W Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_9179_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* SUBX.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9180_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* SUBX.L -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9188_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (dsta, newv); -}}}}}}}}} m68k_incpc (2); -return 30 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 30 * CYCLE_UNIT / 2 + count_cycles; } /* 30 (5/2) */ /* SUB.L Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9190_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* SUB.L Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_9198_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* SUB.L Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_91a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (3/2) */ /* SUB.L Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_91a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* SUB.L Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_91b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ /* SUB.L Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_91b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* SUB.L Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_91b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* SUBA.L Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_91c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* SUBA.L An,An */ uae_u32 REGPARAM2 CPUFUNC(op_91c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* SUBA.L (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_91d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* SUBA.L (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_91d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* SUBA.L -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_91e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* SUBA.L (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_91e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* SUBA.L (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_91f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* SUBA.L (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_91f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* SUBA.L (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_91f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (5/0) */ /* SUBA.L (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_91fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* SUBA.L (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_91fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* SUBA.L #.L,An */ uae_u32 REGPARAM2 CPUFUNC(op_91fc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* CMP.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b000_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* CMP.B (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b010_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* CMP.B (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b018_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* CMP.B -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b020_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* CMP.B (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b028_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* CMP.B (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b030_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* CMP.B (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b038_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* CMP.B (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b039_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* CMP.B (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b03a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* CMP.B (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b03b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* CMP.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b03c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* CMP.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b040_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* CMP.W An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b048_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* CMP.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b050_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* CMP.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b058_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* CMP.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b060_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* CMP.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b068_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* CMP.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b070_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* CMP.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b078_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* CMP.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b079_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* CMP.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b07a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* CMP.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b07b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* CMP.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b07c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* CMP.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b080_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6 (1/0) */ /* CMP.L An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b088_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6 (1/0) */ /* CMP.L (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b090_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* CMP.L (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b098_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* CMP.L -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (2); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ #endif @@ -29261,6097 +42344,9027 @@ return 16 * CYCLE_UNIT / 2 + count_cycles; /* CMP.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* CMP.L (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* CMP.L (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* CMP.L (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (5/0) */ /* CMP.L (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0ba_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* CMP.L (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0bb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* CMP.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0bc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (6); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (6); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* CMPA.W Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_b0c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6 (1/0) */ /* CMPA.W An,An */ uae_u32 REGPARAM2 CPUFUNC(op_b0c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6 (1/0) */ /* CMPA.W (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_b0d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* CMPA.W (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_b0d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* CMPA.W -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_b0e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* CMPA.W (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_b0e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* CMPA.W (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_b0f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* CMPA.W (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_b0f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* CMPA.W (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_b0f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* CMPA.W (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_b0fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* CMPA.W (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_b0fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* CMPA.W #.W,An */ uae_u32 REGPARAM2 CPUFUNC(op_b0fc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* EOR.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b100_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* CMPM.B (An)+,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_b108_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* EOR.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_b110_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_byte (dsta, src); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* EOR.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_b118_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_byte (dsta, src); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* EOR.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_b120_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_byte (dsta, src); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* EOR.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_b128_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* EOR.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_b130_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* EOR.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_b138_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* EOR.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_b139_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* EOR.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b140_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* CMPM.W (An)+,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_b148_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* EOR.W Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_b150_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_word (dsta, src); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* EOR.W Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_b158_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_word (dsta, src); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* EOR.W Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_b160_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_word (dsta, src); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* EOR.W Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_b168_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_word (dsta, src); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* EOR.W Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_b170_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_word (dsta, src); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* EOR.W Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_b178_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_word (dsta, src); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* EOR.W Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_b179_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_word (dsta, src); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* EOR.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b180_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* CMPM.L (An)+,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_b188_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (5/0) */ /* EOR.L Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_b190_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_long (dsta, src); -}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* EOR.L Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_b198_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_long (dsta, src); -}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* EOR.L Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_b1a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_long (dsta, src); -}}}}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (3/2) */ /* EOR.L Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_b1a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_long (dsta, src); -}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* EOR.L Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_b1b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_long (dsta, src); -}}}}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ /* EOR.L Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_b1b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_long (dsta, src); -}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* EOR.L Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_b1b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_long (dsta, src); -}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* CMPA.L Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_b1c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6 (1/0) */ /* CMPA.L An,An */ uae_u32 REGPARAM2 CPUFUNC(op_b1c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6 (1/0) */ /* CMPA.L (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_b1d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* CMPA.L (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_b1d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* CMPA.L -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_b1e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (2); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* CMPA.L (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_b1e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* CMPA.L (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_b1f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* CMPA.L (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_b1f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* CMPA.L (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_b1f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (5/0) */ /* CMPA.L (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_b1fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* CMPA.L (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_b1fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* CMPA.L #.L,An */ uae_u32 REGPARAM2 CPUFUNC(op_b1fc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (6); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (6); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* AND.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c000_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* AND.B (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c010_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* AND.B (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c018_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* AND.B -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c020_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* AND.B (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c028_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* AND.B (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c030_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* AND.B (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c038_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* AND.B (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c039_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* AND.B (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c03a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* AND.B (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c03b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* AND.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c03c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* AND.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c040_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* AND.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c050_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* AND.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c058_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* AND.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c060_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* AND.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c068_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* AND.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c070_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* AND.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c078_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* AND.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c079_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* AND.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c07a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* AND.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c07b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* AND.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c07c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* AND.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c080_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* AND.L (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c090_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (src); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* AND.L (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c098_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (src); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* AND.L -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, dstreg) = (src); -}}}}} m68k_incpc (2); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + m68k_incpc (2); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* AND.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (src); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* AND.L (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (src); -}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* AND.L (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (src); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* AND.L (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - m68k_dreg (regs, dstreg) = (src); -}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (5/0) */ /* AND.L (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0ba_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (src); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* AND.L (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0bb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - m68k_dreg (regs, dstreg) = (src); -}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* AND.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0bc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* MULU.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (2); -}}}}return 38 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (2); + } + } + } + } + return 38 * CYCLE_UNIT / 2 + count_cycles; } /* 38+ (1/0) */ /* MULU.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (2); -}}}}}}return 42 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (2); + } + } + } + } + } + } + return 42 * CYCLE_UNIT / 2 + count_cycles; } /* 42+ (2/0) */ /* MULU.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (2); -}}}}}}return 42 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (2); + } + } + } + } + } + } + return 42 * CYCLE_UNIT / 2 + count_cycles; } /* 42+ (2/0) */ /* MULU.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (2); -}}}}}}return 44 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (2); + } + } + } + } + } + } + return 44 * CYCLE_UNIT / 2 + count_cycles; } /* 44+ (2/0) */ /* MULU.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (4); -}}}}}}return 46 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (4); + } + } + } + } + } + } + return 46 * CYCLE_UNIT / 2 + count_cycles; } /* 46+ (3/0) */ /* MULU.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (4); -}}}}}}return 48 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (4); + } + } + } + } + } + } + return 48 * CYCLE_UNIT / 2 + count_cycles; } /* 48+ (3/0) */ /* MULU.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (4); -}}}}}}return 46 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (4); + } + } + } + } + } + } + return 46 * CYCLE_UNIT / 2 + count_cycles; } /* 46+ (3/0) */ /* MULU.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (6); -}}}}}}return 50 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (6); + } + } + } + } + } + } + return 50 * CYCLE_UNIT / 2 + count_cycles; } /* 50+ (4/0) */ /* MULU.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (4); -}}}}}}return 46 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (4); + } + } + } + } + } + } + return 46 * CYCLE_UNIT / 2 + count_cycles; } /* 46+ (3/0) */ /* MULU.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (4); -}}}}}}return 48 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (4); + } + } + } + } + } + } + return 48 * CYCLE_UNIT / 2 + count_cycles; } /* 48+ (3/0) */ /* MULU.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0fc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (4); -}}}}return 42 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (4); + } + } + } + } + return 42 * CYCLE_UNIT / 2 + count_cycles; } /* 42+ (2/0) */ /* ABCD.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c100_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); - uae_u16 newv, tmp_newv; - int cflg; - newv = tmp_newv = newv_hi + newv_lo; - if (newv_lo > 9) { newv += 6; } - cflg = (newv & 0x3F0) > 0x90; - if (cflg) newv += 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); + uae_u16 newv, tmp_newv; + int cflg; + newv = tmp_newv = newv_hi + newv_lo; + if (newv_lo > 9) + { + newv += 6; + } + cflg = (newv & 0x3F0) > 0x90; + if (cflg) newv += 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6 (1/0) */ /* ABCD.B -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c108_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); - uae_u16 newv, tmp_newv; - int cflg; - newv = tmp_newv = newv_hi + newv_lo; - if (newv_lo > 9) { newv += 6; } - cflg = (newv & 0x3F0) > 0x90; - if (cflg) newv += 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0); - put_byte (dsta, newv); -}}}}}} m68k_incpc (2); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); + uae_u16 newv, tmp_newv; + int cflg; + newv = tmp_newv = newv_hi + newv_lo; + if (newv_lo > 9) + { + newv += 6; + } + cflg = (newv & 0x3F0) > 0x90; + if (cflg) newv += 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + m68k_incpc (2); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* AND.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c110_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_byte (dsta, src); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* AND.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_c118_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_byte (dsta, src); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* AND.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c120_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_byte (dsta, src); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* AND.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_c128_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* AND.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_c130_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* AND.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_c138_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* AND.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_c139_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* EXG.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c140_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, srcreg) = (dst); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, srcreg) = (dst); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6 (1/0) */ /* EXG.L An,An */ uae_u32 REGPARAM2 CPUFUNC(op_c148_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_areg (regs, srcreg) = (dst); - m68k_areg (regs, dstreg) = (src); -}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_areg (regs, srcreg) = (dst); + m68k_areg (regs, dstreg) = (src); + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6 (1/0) */ /* AND.W Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c150_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_word (dsta, src); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* AND.W Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_c158_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_word (dsta, src); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* AND.W Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c160_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_word (dsta, src); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* AND.W Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_c168_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_word (dsta, src); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* AND.W Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_c170_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_word (dsta, src); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* AND.W Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_c178_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_word (dsta, src); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* AND.W Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_c179_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_word (dsta, src); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_word (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* EXG.L Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_c188_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - m68k_dreg (regs, srcreg) = (dst); - m68k_areg (regs, dstreg) = (src); -}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + m68k_dreg (regs, srcreg) = (dst); + m68k_areg (regs, dstreg) = (src); + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6 (1/0) */ /* AND.L Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c190_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_long (dsta, src); -}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* AND.L Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_c198_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_long (dsta, src); -}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* AND.L Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c1a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); - put_long (dsta, src); -}}}}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (3/2) */ /* AND.L Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_c1a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_long (dsta, src); -}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* AND.L Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_c1b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_long (dsta, src); -}}}}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ /* AND.L Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_c1b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); - put_long (dsta, src); -}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* AND.L Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_c1b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); - put_long (dsta, src); -}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + put_long (dsta, src); + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* MULS.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 38 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 38 * CYCLE_UNIT / 2 + count_cycles; } /* 38+ (1/0) */ /* MULS.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 42 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 42 * CYCLE_UNIT / 2 + count_cycles; } /* 42+ (2/0) */ /* MULS.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 42 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 42 * CYCLE_UNIT / 2 + count_cycles; } /* 42+ (2/0) */ /* MULS.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 44 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 44 * CYCLE_UNIT / 2 + count_cycles; } /* 44+ (2/0) */ /* MULS.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 46 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 46 * CYCLE_UNIT / 2 + count_cycles; } /* 46+ (3/0) */ /* MULS.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 48 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 48 * CYCLE_UNIT / 2 + count_cycles; } /* 48+ (3/0) */ /* MULS.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 46 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 46 * CYCLE_UNIT / 2 + count_cycles; } /* 46+ (3/0) */ /* MULS.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (6); -return 50 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (6); + return 50 * CYCLE_UNIT / 2 + count_cycles; } /* 50+ (4/0) */ /* MULS.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 46 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 46 * CYCLE_UNIT / 2 + count_cycles; } /* 46+ (3/0) */ /* MULS.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 48 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 48 * CYCLE_UNIT / 2 + count_cycles; } /* 48+ (3/0) */ /* MULS.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1fc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}} m68k_incpc (4); -return 42 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (4); + return 42 * CYCLE_UNIT / 2 + count_cycles; } /* 42+ (2/0) */ /* ADD.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d000_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* ADD.B (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d010_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* ADD.B (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d018_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* ADD.B -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d020_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* ADD.B (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d028_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* ADD.B (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d030_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* ADD.B (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d038_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* ADD.B (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d039_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* ADD.B (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d03a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* ADD.B (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d03b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* ADD.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d03c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = (uae_u8)get_word_prefetch (regs, 4); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* ADD.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d040_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* ADD.W An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d048_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* ADD.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d050_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* ADD.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d058_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* ADD.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d060_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* 10 (2/0) */ /* ADD.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d068_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* ADD.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d070_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* ADD.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d078_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* ADD.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d079_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (4/0) */ /* ADD.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d07a_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (3/0) */ /* ADD.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d07b_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* ADD.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d07c_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (2/0) */ /* ADD.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d080_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* ADD.L An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d088_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* ADD.L (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d090_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* ADD.L (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d098_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* ADD.L -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}} m68k_incpc (2); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* ADD.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* ADD.L (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* ADD.L (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* ADD.L (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (5/0) */ /* ADD.L (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0ba_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* ADD.L (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0bb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* ADD.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0bc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* ADDA.W Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_d0c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* ADDA.W An,An */ uae_u32 REGPARAM2 CPUFUNC(op_d0c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* ADDA.W (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_d0d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* ADDA.W (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_d0d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* ADDA.W -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_d0e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/0) */ /* ADDA.W (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_d0e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* ADDA.W (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_d0f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/0) */ /* ADDA.W (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_d0f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* ADDA.W (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_d0f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* ADDA.W (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_d0fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* ADDA.W (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_d0fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/0) */ /* ADDA.W #.W,An */ uae_u32 REGPARAM2 CPUFUNC(op_d0fc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_word_prefetch (regs, 4); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_word_prefetch (regs, 4); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/0) */ /* ADDX.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d100_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* ADDX.B -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d108_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* ADD.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d110_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* ADD.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_d118_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* ADD.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d120_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* ADD.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_d128_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ADD.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_d130_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* ADD.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_d138_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ADD.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_d139_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); -{ uae_s8 dst = get_byte (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + { + uae_s8 dst = get_byte (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* ADDX.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d140_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* 4 (1/0) */ /* ADDX.W -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d148_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (dsta, newv); -}}}}}}}}} m68k_incpc (2); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* ADD.W Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d150_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* ADD.W Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_d158_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* ADD.W Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d160_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* ADD.W Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_d168_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ADD.W Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_d170_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* ADD.W Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_d178_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ADD.W Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_d179_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 dst = get_word (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 dst = get_word (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* ADDX.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d180_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* ADDX.L -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d188_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 14 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (dsta, newv); -}}}}}}}}} m68k_incpc (2); -return 30 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 14 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 30 * CYCLE_UNIT / 2 + count_cycles; } /* 30 (5/2) */ /* ADD.L Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d190_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* ADD.L Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_d198_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (3/2) */ /* ADD.L Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d1a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (3/2) */ /* ADD.L Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_d1a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* ADD.L Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_d1b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); - if (dsta & 1) { - m68k_incpc (2); - exception3 (opcode, dsta); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_word_prefetch (regs, 4)); + if (dsta & 1) + { + m68k_incpc (2); + exception3 (opcode, dsta); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2 + count_cycles; } /* 26 (4/2) */ /* ADD.L Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_d1b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dsta & 1) { - m68k_incpc (4); - exception3 (opcode, dsta); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dsta & 1) + { + m68k_incpc (4); + exception3 (opcode, dsta); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2 + count_cycles; } /* 24 (4/2) */ /* ADD.L Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_d1b9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_word_prefetch (regs, 4) << 16; - dsta |= get_word_prefetch (regs, 6); - if (dsta & 1) { - m68k_incpc (6); - exception3 (opcode, dsta); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 dst = get_long (dsta); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_word_prefetch (regs, 4) << 16; + dsta |= get_word_prefetch (regs, 6); + if (dsta & 1) + { + m68k_incpc (6); + exception3 (opcode, dsta); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 dst = get_long (dsta); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2 + count_cycles; } /* 28 (5/2) */ /* ADDA.L Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_d1c0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* ADDA.L An,An */ uae_u32 REGPARAM2 CPUFUNC(op_d1c8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8 (1/0) */ /* ADDA.L (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_d1d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* ADDA.L (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_d1d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (3/0) */ /* ADDA.L -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_d1e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* ADDA.L (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_d1e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* ADDA.L (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_d1f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* ADDA.L (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_d1f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (4); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (4); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* ADDA.L (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_d1f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_word_prefetch (regs, 4) << 16; - srca |= get_word_prefetch (regs, 6); - if (srca & 1) { - m68k_incpc (6); - exception3 (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_word_prefetch (regs, 4) << 16; + srca |= get_word_prefetch (regs, 6); + if (srca & 1) + { + m68k_incpc (6); + exception3 (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2 + count_cycles; } /* 22 (5/0) */ /* ADDA.L (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_d1fa_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (4/0) */ /* ADDA.L (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_d1fb_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); - if (srca & 1) { - m68k_incpc (2); - exception3 (opcode, srca); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_word_prefetch (regs, 4)); + if (srca & 1) + { + m68k_incpc (2); + exception3 (opcode, srca); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/0) */ /* ADDA.L #.L,An */ uae_u32 REGPARAM2 CPUFUNC(op_d1fc_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_word_prefetch (regs, 4) << 16; - src |= get_word_prefetch (regs, 6); -{ uae_s32 dst = m68k_areg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_word_prefetch (regs, 4) << 16; + src |= get_word_prefetch (regs, 6); + { + uae_s32 dst = m68k_areg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/0) */ /* ASRQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e000_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u8)data; - uae_u32 sign = (0x80 & val) >> 7; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - val = 0xff & (uae_u32)-sign; - SET_CFLG (sign); - COPY_CARRY (); - } else { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - val |= (0xff << (8 - cnt)) & (uae_u32)-sign; - val &= 0xff; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u8)data; + uae_u32 sign = (0x80 & val) >> 7; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + val = 0xff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY (); + } + else + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + val |= (0xff << (8 - cnt)) & (uae_u32)-sign; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* LSRQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e008_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - SET_CFLG ((cnt == 8) & (val >> 7)); - COPY_CARRY (); - val = 0; - } else { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + SET_CFLG ((cnt == 8) & (val >> 7)); + COPY_CARRY (); + val = 0; + } + else + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ROXRQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e010_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); -{ cnt--; - { - uae_u32 carry; - uae_u32 hival = (val << 1) | GET_XFLG (); - hival <<= (7 - cnt); - val >>= cnt; - carry = val & 1; - val >>= 1; - val |= hival; - SET_XFLG (carry); - val &= 0xff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG (); + hival <<= (7 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* RORQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e018_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); -{ uae_u32 hival; - cnt &= 7; - hival = val << (8 - cnt); - val >>= cnt; - val |= hival; - val &= 0xff; - SET_CFLG ((val & 0x80) >> 7); - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + { + uae_u32 hival; + cnt &= 7; + hival = val << (8 - cnt); + val >>= cnt; + val |= hival; + val &= 0xff; + SET_CFLG ((val & 0x80) >> 7); + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ASR.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e020_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u8)data; - uae_u32 sign = (0x80 & val) >> 7; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - val = 0xff & (uae_u32)-sign; - SET_CFLG (sign); - COPY_CARRY (); - } else if (cnt > 0) { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - val |= (0xff << (8 - cnt)) & (uae_u32)-sign; - val &= 0xff; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u8)data; + uae_u32 sign = (0x80 & val) >> 7; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + val = 0xff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY (); + } + else if (cnt > 0) + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + val |= (0xff << (8 - cnt)) & (uae_u32)-sign; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* LSR.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e028_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - SET_CFLG ((cnt == 8) & (val >> 7)); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + SET_CFLG ((cnt == 8) & (val >> 7)); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ROXR.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e030_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 36) cnt -= 36; - if (cnt >= 18) cnt -= 18; - if (cnt >= 9) cnt -= 9; - if (cnt > 0) { - cnt--; - { - uae_u32 carry; - uae_u32 hival = (val << 1) | GET_XFLG (); - hival <<= (7 - cnt); - val >>= cnt; - carry = val & 1; - val >>= 1; - val |= hival; - SET_XFLG (carry); - val &= 0xff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 36) cnt -= 36; + if (cnt >= 18) cnt -= 18; + if (cnt >= 9) cnt -= 9; + if (cnt > 0) + { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG (); + hival <<= (7 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ROR.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e038_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt > 0) { uae_u32 hival; - cnt &= 7; - hival = val << (8 - cnt); - val >>= cnt; - val |= hival; - val &= 0xff; - SET_CFLG ((val & 0x80) >> 7); - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt > 0) + { + uae_u32 hival; + cnt &= 7; + hival = val << (8 - cnt); + val >>= cnt; + val |= hival; + val &= 0xff; + SET_CFLG ((val & 0x80) >> 7); + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ASRQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e040_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = (0x8000 & val) >> 15; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - val = 0xffff & (uae_u32)-sign; - SET_CFLG (sign); - COPY_CARRY (); - } else { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - val |= (0xffff << (16 - cnt)) & (uae_u32)-sign; - val &= 0xffff; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = (0x8000 & val) >> 15; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + val = 0xffff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY (); + } + else + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + val |= (0xffff << (16 - cnt)) & (uae_u32)-sign; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ #endif @@ -35360,2876 +51373,3893 @@ return 6 * CYCLE_UNIT / 2 + count_cycles; /* LSRQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e048_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - SET_CFLG ((cnt == 16) & (val >> 15)); - COPY_CARRY (); - val = 0; - } else { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + SET_CFLG ((cnt == 16) & (val >> 15)); + COPY_CARRY (); + val = 0; + } + else + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ROXRQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e050_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); -{ cnt--; - { - uae_u32 carry; - uae_u32 hival = (val << 1) | GET_XFLG (); - hival <<= (15 - cnt); - val >>= cnt; - carry = val & 1; - val >>= 1; - val |= hival; - SET_XFLG (carry); - val &= 0xffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG (); + hival <<= (15 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* RORQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e058_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); -{ uae_u32 hival; - cnt &= 15; - hival = val << (16 - cnt); - val >>= cnt; - val |= hival; - val &= 0xffff; - SET_CFLG ((val & 0x8000) >> 15); - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + { + uae_u32 hival; + cnt &= 15; + hival = val << (16 - cnt); + val >>= cnt; + val |= hival; + val &= 0xffff; + SET_CFLG ((val & 0x8000) >> 15); + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ASR.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e060_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = (0x8000 & val) >> 15; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - val = 0xffff & (uae_u32)-sign; - SET_CFLG (sign); - COPY_CARRY (); - } else if (cnt > 0) { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - val |= (0xffff << (16 - cnt)) & (uae_u32)-sign; - val &= 0xffff; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = (0x8000 & val) >> 15; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + val = 0xffff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY (); + } + else if (cnt > 0) + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + val |= (0xffff << (16 - cnt)) & (uae_u32)-sign; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* LSR.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e068_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - SET_CFLG ((cnt == 16) & (val >> 15)); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + SET_CFLG ((cnt == 16) & (val >> 15)); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ROXR.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e070_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 34) cnt -= 34; - if (cnt >= 17) cnt -= 17; - if (cnt > 0) { - cnt--; - { - uae_u32 carry; - uae_u32 hival = (val << 1) | GET_XFLG (); - hival <<= (15 - cnt); - val >>= cnt; - carry = val & 1; - val >>= 1; - val |= hival; - SET_XFLG (carry); - val &= 0xffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 34) cnt -= 34; + if (cnt >= 17) cnt -= 17; + if (cnt > 0) + { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG (); + hival <<= (15 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ROR.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e078_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt > 0) { uae_u32 hival; - cnt &= 15; - hival = val << (16 - cnt); - val >>= cnt; - val |= hival; - val &= 0xffff; - SET_CFLG ((val & 0x8000) >> 15); - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt > 0) + { + uae_u32 hival; + cnt &= 15; + hival = val << (16 - cnt); + val >>= cnt; + val |= hival; + val &= 0xffff; + SET_CFLG ((val & 0x8000) >> 15); + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ASRQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e080_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = data; - uae_u32 sign = (0x80000000 & val) >> 31; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - val = 0xffffffff & (uae_u32)-sign; - SET_CFLG (sign); - COPY_CARRY (); - } else { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign; - val &= 0xffffffff; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = data; + uae_u32 sign = (0x80000000 & val) >> 31; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + val = 0xffffffff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY (); + } + else + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (1/0) */ /* LSRQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e088_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - SET_CFLG ((cnt == 32) & (val >> 31)); - COPY_CARRY (); - val = 0; - } else { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + SET_CFLG ((cnt == 32) & (val >> 31)); + COPY_CARRY (); + val = 0; + } + else + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (1/0) */ /* ROXRQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e090_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); -{ cnt--; - { - uae_u32 carry; - uae_u32 hival = (val << 1) | GET_XFLG (); - hival <<= (31 - cnt); - val >>= cnt; - carry = val & 1; - val >>= 1; - val |= hival; - SET_XFLG (carry); - val &= 0xffffffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG (); + hival <<= (31 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xffffffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (1/0) */ /* RORQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e098_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); -{ uae_u32 hival; - cnt &= 31; - hival = val << (32 - cnt); - val >>= cnt; - val |= hival; - val &= 0xffffffff; - SET_CFLG ((val & 0x80000000) >> 31); - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + { + uae_u32 hival; + cnt &= 31; + hival = val << (32 - cnt); + val >>= cnt; + val |= hival; + val &= 0xffffffff; + SET_CFLG ((val & 0x80000000) >> 31); + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (1/0) */ /* ASR.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e0a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = data; - uae_u32 sign = (0x80000000 & val) >> 31; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - val = 0xffffffff & (uae_u32)-sign; - SET_CFLG (sign); - COPY_CARRY (); - } else if (cnt > 0) { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign; - val &= 0xffffffff; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = data; + uae_u32 sign = (0x80000000 & val) >> 31; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + val = 0xffffffff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY (); + } + else if (cnt > 0) + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (1/0) */ /* LSR.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e0a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - SET_CFLG ((cnt == 32) & (val >> 31)); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + SET_CFLG ((cnt == 32) & (val >> 31)); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (1/0) */ /* ROXR.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e0b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 33) cnt -= 33; - if (cnt > 0) { - cnt--; - { - uae_u32 carry; - uae_u32 hival = (val << 1) | GET_XFLG (); - hival <<= (31 - cnt); - val >>= cnt; - carry = val & 1; - val >>= 1; - val |= hival; - SET_XFLG (carry); - val &= 0xffffffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 33) cnt -= 33; + if (cnt > 0) + { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG (); + hival <<= (31 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xffffffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (1/0) */ /* ROR.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e0b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt > 0) { uae_u32 hival; - cnt &= 31; - hival = val << (32 - cnt); - val >>= cnt; - val |= hival; - val &= 0xffffffff; - SET_CFLG ((val & 0x80000000) >> 31); - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt > 0) + { + uae_u32 hival; + cnt &= 31; + hival = val << (32 - cnt); + val >>= cnt; + val |= hival; + val &= 0xffffffff; + SET_CFLG ((val & 0x80000000) >> 31); + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (1/0) */ /* ASRW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e0d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* ASRW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e0d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* ASRW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e0e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; - if (dataa & 1) { - m68k_incpc (4); - exception3 (opcode, dataa); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + if (dataa & 1) + { + m68k_incpc (4); + exception3 (opcode, dataa); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* ASRW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e0e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ASRW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e0f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* ASRW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e0f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dataa & 1) { - m68k_incpc (4); - exception3 (opcode, dataa); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dataa & 1) + { + m68k_incpc (4); + exception3 (opcode, dataa); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ASRW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e0f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr dataa; - dataa = get_word_prefetch (regs, 4) << 16; - dataa |= get_word_prefetch (regs, 6); - if (dataa & 1) { - m68k_incpc (6); - exception3 (opcode, dataa); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr dataa; + dataa = get_word_prefetch (regs, 4) << 16; + dataa |= get_word_prefetch (regs, 6); + if (dataa & 1) + { + m68k_incpc (6); + exception3 (opcode, dataa); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* ASLQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e100_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 8 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else { - uae_u32 mask = (0xff << (7 - cnt)) & 0xff; - SET_VFLG ((val & mask) != mask && (val & mask) != 0); - val <<= cnt - 1; - SET_CFLG ((val & 0x80) >> 7); - COPY_CARRY (); - val <<= 1; - val &= 0xff; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + SET_VFLG (val != 0); + SET_CFLG (cnt == 8 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else + { + uae_u32 mask = (0xff << (7 - cnt)) & 0xff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x80) >> 7); + COPY_CARRY (); + val <<= 1; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* LSLQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e108_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - SET_CFLG (cnt == 8 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else { - val <<= (cnt - 1); - SET_CFLG ((val & 0x80) >> 7); - COPY_CARRY (); - val <<= 1; - val &= 0xff; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + SET_CFLG (cnt == 8 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else + { + val <<= (cnt - 1); + SET_CFLG ((val & 0x80) >> 7); + COPY_CARRY (); + val <<= 1; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ROXLQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e110_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); -{ cnt--; - { - uae_u32 carry; - uae_u32 loval = val >> (7 - cnt); - carry = loval & 1; - val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); - SET_XFLG (carry); - val &= 0xff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (7 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ROLQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e118_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); -{ uae_u32 loval; - cnt &= 7; - loval = val >> (8 - cnt); - val <<= cnt; - val |= loval; - val &= 0xff; - SET_CFLG (val & 1); -} - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + { + uae_u32 loval; + cnt &= 7; + loval = val >> (8 - cnt); + val <<= cnt; + val |= loval; + val &= 0xff; + SET_CFLG (val & 1); + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ASL.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e120_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 8 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - uae_u32 mask = (0xff << (7 - cnt)) & 0xff; - SET_VFLG ((val & mask) != mask && (val & mask) != 0); - val <<= cnt - 1; - SET_CFLG ((val & 0x80) >> 7); - COPY_CARRY (); - val <<= 1; - val &= 0xff; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + SET_VFLG (val != 0); + SET_CFLG (cnt == 8 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + uae_u32 mask = (0xff << (7 - cnt)) & 0xff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x80) >> 7); + COPY_CARRY (); + val <<= 1; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* LSL.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e128_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - SET_CFLG (cnt == 8 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - val <<= (cnt - 1); - SET_CFLG ((val & 0x80) >> 7); - COPY_CARRY (); - val <<= 1; - val &= 0xff; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + SET_CFLG (cnt == 8 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + val <<= (cnt - 1); + SET_CFLG ((val & 0x80) >> 7); + COPY_CARRY (); + val <<= 1; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ROXL.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e130_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 36) cnt -= 36; - if (cnt >= 18) cnt -= 18; - if (cnt >= 9) cnt -= 9; - if (cnt > 0) { - cnt--; - { - uae_u32 carry; - uae_u32 loval = val >> (7 - cnt); - carry = loval & 1; - val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); - SET_XFLG (carry); - val &= 0xff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 36) cnt -= 36; + if (cnt >= 18) cnt -= 18; + if (cnt >= 9) cnt -= 9; + if (cnt > 0) + { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (7 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ROL.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e138_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt > 0) { - uae_u32 loval; - cnt &= 7; - loval = val >> (8 - cnt); - val <<= cnt; - val |= loval; - val &= 0xff; - SET_CFLG (val & 1); -} - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt > 0) + { + uae_u32 loval; + cnt &= 7; + loval = val >> (8 - cnt); + val <<= cnt; + val |= loval; + val &= 0xff; + SET_CFLG (val & 1); + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ASLQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e140_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 16 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else { - uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff; - SET_VFLG ((val & mask) != mask && (val & mask) != 0); - val <<= cnt - 1; - SET_CFLG ((val & 0x8000) >> 15); - COPY_CARRY (); - val <<= 1; - val &= 0xffff; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + SET_VFLG (val != 0); + SET_CFLG (cnt == 16 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else + { + uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x8000) >> 15); + COPY_CARRY (); + val <<= 1; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* LSLQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e148_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - SET_CFLG (cnt == 16 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else { - val <<= (cnt - 1); - SET_CFLG ((val & 0x8000) >> 15); - COPY_CARRY (); - val <<= 1; - val &= 0xffff; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + SET_CFLG (cnt == 16 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else + { + val <<= (cnt - 1); + SET_CFLG ((val & 0x8000) >> 15); + COPY_CARRY (); + val <<= 1; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ROXLQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e150_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); -{ cnt--; - { - uae_u32 carry; - uae_u32 loval = val >> (15 - cnt); - carry = loval & 1; - val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); - SET_XFLG (carry); - val &= 0xffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (15 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ROLQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e158_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); -{ uae_u32 loval; - cnt &= 15; - loval = val >> (16 - cnt); - val <<= cnt; - val |= loval; - val &= 0xffff; - SET_CFLG (val & 1); -} - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + { + uae_u32 loval; + cnt &= 15; + loval = val >> (16 - cnt); + val <<= cnt; + val |= loval; + val &= 0xffff; + SET_CFLG (val & 1); + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ASL.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e160_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 16 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff; - SET_VFLG ((val & mask) != mask && (val & mask) != 0); - val <<= cnt - 1; - SET_CFLG ((val & 0x8000) >> 15); - COPY_CARRY (); - val <<= 1; - val &= 0xffff; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + SET_VFLG (val != 0); + SET_CFLG (cnt == 16 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x8000) >> 15); + COPY_CARRY (); + val <<= 1; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* LSL.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e168_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - SET_CFLG (cnt == 16 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - val <<= (cnt - 1); - SET_CFLG ((val & 0x8000) >> 15); - COPY_CARRY (); - val <<= 1; - val &= 0xffff; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + SET_CFLG (cnt == 16 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + val <<= (cnt - 1); + SET_CFLG ((val & 0x8000) >> 15); + COPY_CARRY (); + val <<= 1; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ROXL.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e170_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 34) cnt -= 34; - if (cnt >= 17) cnt -= 17; - if (cnt > 0) { - cnt--; - { - uae_u32 carry; - uae_u32 loval = val >> (15 - cnt); - carry = loval & 1; - val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); - SET_XFLG (carry); - val &= 0xffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 34) cnt -= 34; + if (cnt >= 17) cnt -= 17; + if (cnt > 0) + { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (15 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ROL.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e178_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt > 0) { - uae_u32 loval; - cnt &= 15; - loval = val >> (16 - cnt); - val <<= cnt; - val |= loval; - val &= 0xffff; - SET_CFLG (val & 1); -} - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt > 0) + { + uae_u32 loval; + cnt &= 15; + loval = val >> (16 - cnt); + val <<= cnt; + val |= loval; + val &= 0xffff; + SET_CFLG (val & 1); + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* 6+ (1/0) */ /* ASLQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e180_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 32 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else { - uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff; - SET_VFLG ((val & mask) != mask && (val & mask) != 0); - val <<= cnt - 1; - SET_CFLG ((val & 0x80000000) >> 31); - COPY_CARRY (); - val <<= 1; - val &= 0xffffffff; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + SET_VFLG (val != 0); + SET_CFLG (cnt == 32 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else + { + uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x80000000) >> 31); + COPY_CARRY (); + val <<= 1; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (1/0) */ /* LSLQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e188_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - SET_CFLG (cnt == 32 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else { - val <<= (cnt - 1); - SET_CFLG ((val & 0x80000000) >> 31); - COPY_CARRY (); - val <<= 1; - val &= 0xffffffff; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + SET_CFLG (cnt == 32 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else + { + val <<= (cnt - 1); + SET_CFLG ((val & 0x80000000) >> 31); + COPY_CARRY (); + val <<= 1; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (1/0) */ /* ROXLQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e190_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); -{ cnt--; - { - uae_u32 carry; - uae_u32 loval = val >> (31 - cnt); - carry = loval & 1; - val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); - SET_XFLG (carry); - val &= 0xffffffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (31 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xffffffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (1/0) */ /* ROLQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e198_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); -{ uae_u32 loval; - cnt &= 31; - loval = val >> (32 - cnt); - val <<= cnt; - val |= loval; - val &= 0xffffffff; - SET_CFLG (val & 1); -} - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + { + uae_u32 loval; + cnt &= 31; + loval = val >> (32 - cnt); + val <<= cnt; + val |= loval; + val &= 0xffffffff; + SET_CFLG (val & 1); + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (1/0) */ /* ASL.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e1a0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 32 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff; - SET_VFLG ((val & mask) != mask && (val & mask) != 0); - val <<= cnt - 1; - SET_CFLG ((val & 0x80000000) >> 31); - COPY_CARRY (); - val <<= 1; - val &= 0xffffffff; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + SET_VFLG (val != 0); + SET_CFLG (cnt == 32 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x80000000) >> 31); + COPY_CARRY (); + val <<= 1; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (1/0) */ /* LSL.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e1a8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - SET_CFLG (cnt == 32 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - val <<= (cnt - 1); - SET_CFLG ((val & 0x80000000) >> 31); - COPY_CARRY (); - val <<= 1; - val &= 0xffffffff; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + SET_CFLG (cnt == 32 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + val <<= (cnt - 1); + SET_CFLG ((val & 0x80000000) >> 31); + COPY_CARRY (); + val <<= 1; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (1/0) */ /* ROXL.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e1b0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 33) cnt -= 33; - if (cnt > 0) { - cnt--; - { - uae_u32 carry; - uae_u32 loval = val >> (31 - cnt); - carry = loval & 1; - val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); - SET_XFLG (carry); - val &= 0xffffffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 33) cnt -= 33; + if (cnt > 0) + { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (31 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xffffffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (1/0) */ /* ROL.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e1b8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt > 0) { - uae_u32 loval; - cnt &= 31; - loval = val >> (32 - cnt); - val <<= cnt; - val |= loval; - val &= 0xffffffff; - SET_CFLG (val & 1); -} - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt > 0) + { + uae_u32 loval; + cnt &= 31; + loval = val >> (32 - cnt); + val <<= cnt; + val |= loval; + val &= 0xffffffff; + SET_CFLG (val & 1); + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* 8+ (1/0) */ /* ASLW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e1d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 sign2; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY (); - SET_VFLG (GET_VFLG () | (sign2 != sign)); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY (); + SET_VFLG (GET_VFLG () | (sign2 != sign)); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* ASLW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e1d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 sign2; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY (); - SET_VFLG (GET_VFLG () | (sign2 != sign)); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY (); + SET_VFLG (GET_VFLG () | (sign2 != sign)); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* ASLW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e1e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; - if (dataa & 1) { - m68k_incpc (4); - exception3 (opcode, dataa); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 sign2; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY (); - SET_VFLG (GET_VFLG () | (sign2 != sign)); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + if (dataa & 1) + { + m68k_incpc (4); + exception3 (opcode, dataa); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY (); + SET_VFLG (GET_VFLG () | (sign2 != sign)); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* ASLW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e1e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 sign2; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY (); - SET_VFLG (GET_VFLG () | (sign2 != sign)); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY (); + SET_VFLG (GET_VFLG () | (sign2 != sign)); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ASLW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e1f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 sign2; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY (); - SET_VFLG (GET_VFLG () | (sign2 != sign)); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY (); + SET_VFLG (GET_VFLG () | (sign2 != sign)); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* ASLW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e1f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dataa & 1) { - m68k_incpc (4); - exception3 (opcode, dataa); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 sign2; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY (); - SET_VFLG (GET_VFLG () | (sign2 != sign)); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dataa & 1) + { + m68k_incpc (4); + exception3 (opcode, dataa); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY (); + SET_VFLG (GET_VFLG () | (sign2 != sign)); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ASLW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e1f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr dataa; - dataa = get_word_prefetch (regs, 4) << 16; - dataa |= get_word_prefetch (regs, 6); - if (dataa & 1) { - m68k_incpc (6); - exception3 (opcode, dataa); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 sign2; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY (); - SET_VFLG (GET_VFLG () | (sign2 != sign)); - put_word (dataa, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr dataa; + dataa = get_word_prefetch (regs, 4) << 16; + dataa |= get_word_prefetch (regs, 6); + if (dataa & 1) + { + m68k_incpc (6); + exception3 (opcode, dataa); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY (); + SET_VFLG (GET_VFLG () | (sign2 != sign)); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* LSRW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e2d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - uae_u32 carry = val & 1; - val >>= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* LSRW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e2d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - uae_u32 carry = val & 1; - val >>= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* LSRW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e2e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; - if (dataa & 1) { - m68k_incpc (4); - exception3 (opcode, dataa); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u32 val = (uae_u16)data; - uae_u32 carry = val & 1; - val >>= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + if (dataa & 1) + { + m68k_incpc (4); + exception3 (opcode, dataa); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* LSRW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e2e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 val = (uae_u16)data; - uae_u32 carry = val & 1; - val >>= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* LSRW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e2f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 val = (uae_u16)data; - uae_u32 carry = val & 1; - val >>= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* LSRW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e2f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dataa & 1) { - m68k_incpc (4); - exception3 (opcode, dataa); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u32 val = (uae_u16)data; - uae_u32 carry = val & 1; - val >>= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dataa & 1) + { + m68k_incpc (4); + exception3 (opcode, dataa); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* LSRW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e2f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr dataa; - dataa = get_word_prefetch (regs, 4) << 16; - dataa |= get_word_prefetch (regs, 6); - if (dataa & 1) { - m68k_incpc (6); - exception3 (opcode, dataa); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u32 val = (uae_u16)data; - uae_u32 carry = val & 1; - val >>= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr dataa; + dataa = get_word_prefetch (regs, 4) << 16; + dataa |= get_word_prefetch (regs, 6); + if (dataa & 1) + { + m68k_incpc (6); + exception3 (opcode, dataa); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* LSLW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e3d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* LSLW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e3d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* LSLW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e3e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; - if (dataa & 1) { - m68k_incpc (4); - exception3 (opcode, dataa); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + if (dataa & 1) + { + m68k_incpc (4); + exception3 (opcode, dataa); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* LSLW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e3e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* LSLW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e3f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* LSLW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e3f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dataa & 1) { - m68k_incpc (4); - exception3 (opcode, dataa); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dataa & 1) + { + m68k_incpc (4); + exception3 (opcode, dataa); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* LSLW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e3f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr dataa; - dataa = get_word_prefetch (regs, 4) << 16; - dataa |= get_word_prefetch (regs, 6); - if (dataa & 1) { - m68k_incpc (6); - exception3 (opcode, dataa); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr dataa; + dataa = get_word_prefetch (regs, 4) << 16; + dataa |= get_word_prefetch (regs, 6); + if (dataa & 1) + { + m68k_incpc (6); + exception3 (opcode, dataa); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* ROXRW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e4d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (GET_XFLG ()) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG ()) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* ROXRW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e4d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (GET_XFLG ()) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG ()) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* ROXRW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e4e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; - if (dataa & 1) { - m68k_incpc (4); - exception3 (opcode, dataa); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (GET_XFLG ()) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + if (dataa & 1) + { + m68k_incpc (4); + exception3 (opcode, dataa); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG ()) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* ROXRW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e4e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (GET_XFLG ()) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG ()) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ROXRW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e4f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (GET_XFLG ()) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG ()) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* ROXRW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e4f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dataa & 1) { - m68k_incpc (4); - exception3 (opcode, dataa); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (GET_XFLG ()) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dataa & 1) + { + m68k_incpc (4); + exception3 (opcode, dataa); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG ()) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ROXRW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e4f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr dataa; - dataa = get_word_prefetch (regs, 4) << 16; - dataa |= get_word_prefetch (regs, 6); - if (dataa & 1) { - m68k_incpc (6); - exception3 (opcode, dataa); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (GET_XFLG ()) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr dataa; + dataa = get_word_prefetch (regs, 4) << 16; + dataa |= get_word_prefetch (regs, 6); + if (dataa & 1) + { + m68k_incpc (6); + exception3 (opcode, dataa); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG ()) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* ROXLW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e5d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (GET_XFLG ()) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG ()) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* ROXLW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e5d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (GET_XFLG ()) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG ()) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* ROXLW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e5e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; - if (dataa & 1) { - m68k_incpc (4); - exception3 (opcode, dataa); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (GET_XFLG ()) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + if (dataa & 1) + { + m68k_incpc (4); + exception3 (opcode, dataa); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG ()) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* ROXLW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e5e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (GET_XFLG ()) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG ()) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ROXLW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e5f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (GET_XFLG ()) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG ()) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* ROXLW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e5f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dataa & 1) { - m68k_incpc (4); - exception3 (opcode, dataa); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (GET_XFLG ()) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dataa & 1) + { + m68k_incpc (4); + exception3 (opcode, dataa); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG ()) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ROXLW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e5f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr dataa; - dataa = get_word_prefetch (regs, 4) << 16; - dataa |= get_word_prefetch (regs, 6); - if (dataa & 1) { - m68k_incpc (6); - exception3 (opcode, dataa); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (GET_XFLG ()) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr dataa; + dataa = get_word_prefetch (regs, 4) << 16; + dataa |= get_word_prefetch (regs, 6); + if (dataa & 1) + { + m68k_incpc (6); + exception3 (opcode, dataa); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG ()) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* RORW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e6d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* RORW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e6d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* RORW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e6e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; - if (dataa & 1) { - m68k_incpc (4); - exception3 (opcode, dataa); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + if (dataa & 1) + { + m68k_incpc (4); + exception3 (opcode, dataa); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* RORW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e6e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* RORW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e6f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* RORW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e6f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dataa & 1) { - m68k_incpc (4); - exception3 (opcode, dataa); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dataa & 1) + { + m68k_incpc (4); + exception3 (opcode, dataa); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* RORW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e6f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr dataa; - dataa = get_word_prefetch (regs, 4) << 16; - dataa |= get_word_prefetch (regs, 6); - if (dataa & 1) { - m68k_incpc (6); - exception3 (opcode, dataa); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - put_word (dataa, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr dataa; + dataa = get_word_prefetch (regs, 4) << 16; + dataa |= get_word_prefetch (regs, 6); + if (dataa & 1) + { + m68k_incpc (6); + exception3 (opcode, dataa); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ /* ROLW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e7d0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* ROLW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e7d8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 4 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* 12 (2/1) */ /* ROLW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e7e0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; - if (dataa & 1) { - m68k_incpc (4); - exception3 (opcode, dataa); - return 6 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; - regs.ir = regs.irc; - get_word_prefetch (regs, 4); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - put_word (dataa, val); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + if (dataa & 1) + { + m68k_incpc (4); + exception3 (opcode, dataa); + return 6 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + regs.ir = regs.irc; + get_word_prefetch (regs, 4); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* 14 (2/1) */ /* ROLW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e7e8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ROLW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e7f0_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); - if (dataa & 1) { - m68k_incpc (2); - exception3 (opcode, dataa); - return 10 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_word_prefetch (regs, 4)); + if (dataa & 1) + { + m68k_incpc (2); + exception3 (opcode, dataa); + return 10 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* 18 (3/1) */ /* ROLW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e7f8_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); - if (dataa & 1) { - m68k_incpc (4); - exception3 (opcode, dataa); - return 8 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 6); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - put_word (dataa, val); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_word_prefetch (regs, 4); + if (dataa & 1) + { + m68k_incpc (4); + exception3 (opcode, dataa); + return 8 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 6); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* 16 (3/1) */ /* ROLW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e7f9_11)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{{ uaecptr dataa; - dataa = get_word_prefetch (regs, 4) << 16; - dataa |= get_word_prefetch (regs, 6); - if (dataa & 1) { - m68k_incpc (6); - exception3 (opcode, dataa); - return 12 * CYCLE_UNIT / 2; - } -{{ uae_s16 data = get_word (dataa); - regs.ir = regs.irc; - get_word_prefetch (regs, 8); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - put_word (dataa, val); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + { + uaecptr dataa; + dataa = get_word_prefetch (regs, 4) << 16; + dataa |= get_word_prefetch (regs, 6); + if (dataa & 1) + { + m68k_incpc (6); + exception3 (opcode, dataa); + return 12 * CYCLE_UNIT / 2; + } + { + { + uae_s16 data = get_word (dataa); + regs.ir = regs.irc; + get_word_prefetch (regs, 8); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + put_word (dataa, val); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* 20 (4/1) */ #endif diff --git a/src/cpuemu_4.cpp b/src/cpuemu_4.cpp index 1b2479dc..6c96b507 100644 --- a/src/cpuemu_4.cpp +++ b/src/cpuemu_4.cpp @@ -1,7 +1,7 @@ #include "sysconfig.h" #include "sysdeps.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "cpu_prefetch.h" @@ -28,3511 +28,5327 @@ /* OR.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0000_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* OR.B #.B,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0010_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* OR.B #.B,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0018_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* OR.B #.B,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0020_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* OR.B #.B,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0028_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* OR.B #.B,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0030_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* OR.B #.B,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0038_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* OR.B #.B,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0039_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2; } /* ORSR.B #.W */ uae_u32 REGPARAM2 CPUFUNC(op_003c_4)(uae_u32 opcode, struct regstruct ®s) { -{ MakeSR (regs); -{ uae_s16 src = get_iword (2); - src &= 0xFF; - m68k_incpc (4); - regs.sr |= src; - MakeFromSR(regs); -}}return 20 * CYCLE_UNIT / 2; + { + MakeSR (regs); + { + uae_s16 src = get_iword (2); + src &= 0xFF; + m68k_incpc (4); + regs.sr |= src; + MakeFromSR(regs); + } + } + return 20 * CYCLE_UNIT / 2; } /* OR.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0040_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* OR.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0050_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* OR.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0058_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* OR.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0060_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* OR.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0068_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* OR.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0070_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); -{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* OR.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0078_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* OR.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0079_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2; } /* ORSR.W #.W */ uae_u32 REGPARAM2 CPUFUNC(op_007c_4)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ MakeSR (regs); -{ uae_s16 src = get_iword (2); - m68k_incpc (4); - regs.sr |= src; - MakeFromSR(regs); -}}}return 20 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + MakeSR (regs); + { + uae_s16 src = get_iword (2); + m68k_incpc (4); + regs.sr |= src; + MakeFromSR(regs); + } + } + } + return 20 * CYCLE_UNIT / 2; } /* OR.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0080_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* OR.L #.L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0090_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* OR.L #.L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0098_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* OR.L #.L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_00a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (6); -return 30 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (6); + return 30 * CYCLE_UNIT / 2; } /* OR.L #.L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_00a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (8); -return 32 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (8); + return 32 * CYCLE_UNIT / 2; } /* OR.L #.L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_00b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (6)); -{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (8); -return 34 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (6)); + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (8); + return 34 * CYCLE_UNIT / 2; } /* OR.L #.L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_00b8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (8); -return 32 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (8); + return 32 * CYCLE_UNIT / 2; } /* OR.L #.L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_00b9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = get_ilong (6); -{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (10); -return 36 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = get_ilong (6); + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (10); + return 36 * CYCLE_UNIT / 2; } /* BTST.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0100_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= 31; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* MVPMR.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0108_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{ uaecptr memp = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_u16 val = ((get_byte (memp) & 0xff) << 8) + (get_byte (memp + 2) & 0xff); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + uaecptr memp = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_u16 val = ((get_byte (memp) & 0xff) << 8) + (get_byte (memp + 2) & 0xff); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* BTST.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0110_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* BTST.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0118_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* BTST.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0120_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* BTST.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0128_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* BTST.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0130_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* BTST.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0138_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* BTST.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0139_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* BTST.B Dn,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_013a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = 2; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_getpc () + 2; - dsta += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = 2; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_getpc () + 2; + dsta += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* BTST.B Dn,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_013b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = 3; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr tmppc; - uaecptr dsta; - tmppc = m68k_getpc () + 2; - dsta = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = 3; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr tmppc; + uaecptr dsta; + tmppc = m68k_getpc () + 2; + dsta = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* BTST.B Dn,#.B */ uae_u32 REGPARAM2 CPUFUNC(op_013c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = get_ibyte (2); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = get_ibyte (2); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* BCHG.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0140_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= 31; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - m68k_dreg (regs, dstreg) = (dst); -}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= 31; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + m68k_dreg (regs, dstreg) = (dst); + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* MVPMR.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0148_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{ uaecptr memp = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_u32 val = ((get_byte (memp) & 0xff) << 24) + ((get_byte (memp + 2) & 0xff) << 16) - + ((get_byte (memp + 4) & 0xff) << 8) + (get_byte (memp + 6) & 0xff); - m68k_dreg (regs, dstreg) = (val); -}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + uaecptr memp = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_u32 val = ((get_byte (memp) & 0xff) << 24) + ((get_byte (memp + 2) & 0xff) << 16) + + ((get_byte (memp + 4) & 0xff) << 8) + (get_byte (memp + 6) & 0xff); + m68k_dreg (regs, dstreg) = (val); + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* BCHG.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0150_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* BCHG.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0158_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* BCHG.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0160_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* BCHG.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0168_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* BCHG.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0170_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* BCHG.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0178_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* BCHG.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0179_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* BCLR.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0180_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= 31; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_dreg (regs, dstreg) = (dst); -}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + m68k_dreg (regs, dstreg) = (dst); + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* MVPRM.W Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0188_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); - uaecptr memp = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - put_byte (memp, src >> 8); - put_byte (memp + 2, src); -}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + uaecptr memp = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + put_byte (memp, src >> 8); + put_byte (memp + 2, src); + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* BCLR.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0190_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* BCLR.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0198_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* BCLR.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_01a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* BCLR.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_01a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* BCLR.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_01b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* BCLR.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_01b8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* BCLR.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_01b9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* BSET.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_01c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= 31; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_dreg (regs, dstreg) = (dst); -}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + m68k_dreg (regs, dstreg) = (dst); + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* MVPRM.L Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_01c8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); - uaecptr memp = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - put_byte (memp, src >> 24); - put_byte (memp + 2, src >> 16); - put_byte (memp + 4, src >> 8); - put_byte (memp + 6, src); -}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + uaecptr memp = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + put_byte (memp, src >> 24); + put_byte (memp + 2, src >> 16); + put_byte (memp + 4, src >> 8); + put_byte (memp + 6, src); + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* BSET.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_01d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* BSET.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_01d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* BSET.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_01e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* BSET.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_01e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* BSET.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_01f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* BSET.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_01f8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* BSET.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_01f9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* AND.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0200_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* AND.B #.B,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0210_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* AND.B #.B,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0218_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* AND.B #.B,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0220_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* AND.B #.B,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0228_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* AND.B #.B,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0230_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* AND.B #.B,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0238_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* AND.B #.B,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0239_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2; } /* ANDSR.B #.W */ uae_u32 REGPARAM2 CPUFUNC(op_023c_4)(uae_u32 opcode, struct regstruct ®s) { -{ MakeSR (regs); -{ uae_s16 src = get_iword (2); - src |= 0xFF00; - m68k_incpc (4); - regs.sr &= src; - MakeFromSR(regs); -}}return 20 * CYCLE_UNIT / 2; + { + MakeSR (regs); + { + uae_s16 src = get_iword (2); + src |= 0xFF00; + m68k_incpc (4); + regs.sr &= src; + MakeFromSR(regs); + } + } + return 20 * CYCLE_UNIT / 2; } /* AND.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0240_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* AND.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0250_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* AND.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0258_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* AND.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0260_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* AND.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0268_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* AND.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0270_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); -{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* AND.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0278_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* AND.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0279_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2; } /* ANDSR.W #.W */ uae_u32 REGPARAM2 CPUFUNC(op_027c_4)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ MakeSR (regs); -{ uae_s16 src = get_iword (2); - m68k_incpc (4); - regs.sr &= src; - MakeFromSR(regs); -}}}return 20 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + MakeSR (regs); + { + uae_s16 src = get_iword (2); + m68k_incpc (4); + regs.sr &= src; + MakeFromSR(regs); + } + } + } + return 20 * CYCLE_UNIT / 2; } /* AND.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0280_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* AND.L #.L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0290_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* AND.L #.L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0298_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* AND.L #.L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_02a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (6); -return 30 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (6); + return 30 * CYCLE_UNIT / 2; } /* AND.L #.L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_02a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (8); -return 32 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (8); + return 32 * CYCLE_UNIT / 2; } /* AND.L #.L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_02b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (6)); -{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (8); -return 34 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (6)); + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (8); + return 34 * CYCLE_UNIT / 2; } /* AND.L #.L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_02b8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (8); -return 32 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (8); + return 32 * CYCLE_UNIT / 2; } /* AND.L #.L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_02b9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = get_ilong (6); -{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (10); -return 36 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = get_ilong (6); + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (10); + return 36 * CYCLE_UNIT / 2; } /* SUB.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0400_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* SUB.B #.B,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0410_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* SUB.B #.B,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0418_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* SUB.B #.B,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0420_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* SUB.B #.B,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0428_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* SUB.B #.B,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0430_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* SUB.B #.B,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0438_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* SUB.B #.B,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0439_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2; } /* SUB.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0440_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* SUB.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0450_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* SUB.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0458_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* SUB.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0460_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* SUB.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0468_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* SUB.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0470_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* SUB.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0478_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* SUB.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0479_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2; } /* SUB.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0480_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* SUB.L #.L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0490_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* SUB.L #.L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0498_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* SUB.L #.L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_04a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (6); -return 30 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 30 * CYCLE_UNIT / 2; } /* SUB.L #.L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_04a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (8); -return 32 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (8); + return 32 * CYCLE_UNIT / 2; } /* SUB.L #.L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_04b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (6)); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (8); -return 34 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (6)); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (8); + return 34 * CYCLE_UNIT / 2; } /* SUB.L #.L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_04b8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (8); -return 32 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (8); + return 32 * CYCLE_UNIT / 2; } /* SUB.L #.L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_04b9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = get_ilong (6); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (10); -return 36 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = get_ilong (6); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (10); + return 36 * CYCLE_UNIT / 2; } /* ADD.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0600_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* ADD.B #.B,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0610_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ADD.B #.B,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0618_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ADD.B #.B,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0620_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* ADD.B #.B,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0628_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* ADD.B #.B,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0630_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* ADD.B #.B,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0638_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* ADD.B #.B,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0639_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2; } /* ADD.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0640_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* ADD.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0650_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ADD.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0658_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ADD.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0660_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* ADD.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0668_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* ADD.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0670_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* ADD.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0678_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* ADD.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0679_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2; } /* ADD.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0680_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* ADD.L #.L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0690_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* ADD.L #.L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0698_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* ADD.L #.L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_06a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (6); -return 30 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 30 * CYCLE_UNIT / 2; } /* ADD.L #.L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_06a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (8); -return 32 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (8); + return 32 * CYCLE_UNIT / 2; } /* ADD.L #.L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_06b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (6)); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (8); -return 34 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (6)); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (8); + return 34 * CYCLE_UNIT / 2; } /* ADD.L #.L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_06b8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (8); -return 32 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (8); + return 32 * CYCLE_UNIT / 2; } /* ADD.L #.L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_06b9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = get_ilong (6); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (10); -return 36 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = get_ilong (6); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (10); + return 36 * CYCLE_UNIT / 2; } /* BTST.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0800_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= 31; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* BTST.B #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0810_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* BTST.B #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0818_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* BTST.B #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0820_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* BTST.B #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0828_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* BTST.B #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0830_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2; } /* BTST.B #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0838_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* BTST.B #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0839_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (8); -return 20 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (8); + return 20 * CYCLE_UNIT / 2; } /* BTST.B #.W,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_083a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 2; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_getpc () + 4; - dsta += (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* BTST.B #.W,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_083b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = 3; -{{ uae_s16 src = get_iword (2); -{ uaecptr tmppc; - uaecptr dsta; - tmppc = m68k_getpc () + 4; - dsta = get_disp_ea_000 (regs, tmppc, get_iword (4)); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = 3; + { + { + uae_s16 src = get_iword (2); + { + uaecptr tmppc; + uaecptr dsta; + tmppc = m68k_getpc () + 4; + dsta = get_disp_ea_000 (regs, tmppc, get_iword (4)); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2; } /* BTST.B #.W,#.B */ uae_u32 REGPARAM2 CPUFUNC(op_083c_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uae_s8 dst = get_ibyte (4); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); -}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uae_s8 dst = get_ibyte (4); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } /* BCHG.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0840_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= 31; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - m68k_dreg (regs, dstreg) = (dst); -}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= 31; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + m68k_dreg (regs, dstreg) = (dst); + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* BCHG.B #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0850_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* BCHG.B #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0858_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* BCHG.B #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0860_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* BCHG.B #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0868_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* BCHG.B #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0870_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* BCHG.B #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0878_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* BCHG.B #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0879_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - dst ^= (1 << src); - SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); - put_byte (dsta, dst); -}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG (((uae_u32)dst & (1 << src)) >> src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2; } /* BCLR.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0880_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= 31; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - m68k_dreg (regs, dstreg) = (dst); -}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + m68k_dreg (regs, dstreg) = (dst); + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* BCLR.B #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0890_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* BCLR.B #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0898_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* BCLR.B #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_08a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* BCLR.B #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_08a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* BCLR.B #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_08b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* BCLR.B #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_08b8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* BCLR.B #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_08b9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst &= ~(1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2; } /* BSET.L #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_08c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= 31; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - m68k_dreg (regs, dstreg) = (dst); -}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + m68k_dreg (regs, dstreg) = (dst); + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* BSET.B #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_08d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* BSET.B #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_08d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* BSET.B #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_08e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* BSET.B #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_08e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* BSET.B #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_08f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* BSET.B #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_08f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* BSET.B #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_08f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s8 dst = get_byte (dsta); - src &= 7; - SET_ZFLG (1 ^ ((dst >> src) & 1)); - dst |= (1 << src); - put_byte (dsta, dst); -}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s8 dst = get_byte (dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte (dsta, dst); + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2; } /* EOR.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0a00_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* EOR.B #.B,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0a10_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* EOR.B #.B,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0a18_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* EOR.B #.B,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0a20_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* EOR.B #.B,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0a28_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* EOR.B #.B,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0a30_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* EOR.B #.B,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0a38_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* EOR.B #.B,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0a39_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2; } /* EORSR.B #.W */ uae_u32 REGPARAM2 CPUFUNC(op_0a3c_4)(uae_u32 opcode, struct regstruct ®s) { -{ MakeSR (regs); -{ uae_s16 src = get_iword (2); - src &= 0xFF; - m68k_incpc (4); - regs.sr ^= src; - MakeFromSR(regs); -}}return 20 * CYCLE_UNIT / 2; + { + MakeSR (regs); + { + uae_s16 src = get_iword (2); + src &= 0xFF; + m68k_incpc (4); + regs.sr ^= src; + MakeFromSR(regs); + } + } + return 20 * CYCLE_UNIT / 2; } /* EOR.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0a40_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* EOR.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0a50_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* EOR.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0a58_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* EOR.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0a60_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* EOR.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0a68_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* EOR.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0a70_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); -{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* EOR.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0a78_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* EOR.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0a79_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2; } /* EORSR.W #.W */ uae_u32 REGPARAM2 CPUFUNC(op_0a7c_4)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ MakeSR (regs); -{ uae_s16 src = get_iword (2); - m68k_incpc (4); - regs.sr ^= src; - MakeFromSR(regs); -}}}return 20 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + MakeSR (regs); + { + uae_s16 src = get_iword (2); + m68k_incpc (4); + regs.sr ^= src; + MakeFromSR(regs); + } + } + } + return 20 * CYCLE_UNIT / 2; } /* EOR.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0a80_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* EOR.L #.L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0a90_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* EOR.L #.L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0a98_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* EOR.L #.L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0aa0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (6); -return 30 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (6); + return 30 * CYCLE_UNIT / 2; } /* EOR.L #.L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0aa8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (8); -return 32 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (8); + return 32 * CYCLE_UNIT / 2; } /* EOR.L #.L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0ab0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (6)); -{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (8); -return 34 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (6)); + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (8); + return 34 * CYCLE_UNIT / 2; } /* EOR.L #.L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0ab8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (8); -return 32 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (8); + return 32 * CYCLE_UNIT / 2; } /* EOR.L #.L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0ab9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = get_ilong (6); -{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (10); -return 36 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = get_ilong (6); + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (10); + return 36 * CYCLE_UNIT / 2; } #endif @@ -3541,3269 +5357,4831 @@ return 36 * CYCLE_UNIT / 2; /* CMP.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0c00_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* CMP.B #.B,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0c10_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* CMP.B #.B,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0c18_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* CMP.B #.B,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0c20_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* CMP.B #.B,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0c28_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* CMP.B #.B,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0c30_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2; } /* CMP.B #.B,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0c38_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* CMP.B #.B,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0c39_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (8); -return 20 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (8); + return 20 * CYCLE_UNIT / 2; } /* CMP.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0c40_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* CMP.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0c50_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* CMP.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0c58_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* CMP.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0c60_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* CMP.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0c68_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* CMP.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0c70_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2; } /* CMP.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0c78_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* CMP.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0c79_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (8); -return 20 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (8); + return 20 * CYCLE_UNIT / 2; } /* CMP.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_0c80_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (6); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (6); + return 14 * CYCLE_UNIT / 2; } /* CMP.L #.L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0c90_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* CMP.L #.L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_0c98_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* CMP.L #.L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_0ca0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* CMP.L #.L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_0ca8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2; } /* CMP.L #.L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_0cb0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (6)); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (8); -return 26 * CYCLE_UNIT / 2; + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (6)); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (8); + return 26 * CYCLE_UNIT / 2; } /* CMP.L #.L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_0cb8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (6); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (8); -return 24 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (6); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (8); + return 24 * CYCLE_UNIT / 2; } /* CMP.L #.L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_0cb9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = get_ilong (6); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (10); -return 28 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = get_ilong (6); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (10); + return 28 * CYCLE_UNIT / 2; } /* MOVE.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1000_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (2); -}}}return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (2); + } + } + } + return 4 * CYCLE_UNIT / 2; } /* MOVE.B (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1010_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (2); -}}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (2); + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.B (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1018_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (2); -}}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (2); + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.B -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1020_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (2); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (2); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.B (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1028_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (4); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (4); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1030_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (4); -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (4); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1038_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (4); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (4); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_1039_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (6); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (6); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.B (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_103a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (4); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (4); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_103b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (4); -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (4); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_103c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); - m68k_incpc (4); -}}}return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + m68k_incpc (4); + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1080_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); -}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.B (An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1090_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B (An)+,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1098_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B -(An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.B (d16,An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.B (d8,An,Xn),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10b8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10b9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.B (d16,PC),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10ba_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.B (d8,PC,Xn),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10bb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.B #.B,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_10bc_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); -}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.B (An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B (An)+,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B -(An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.B (d16,An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.B (d8,An,Xn),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10f8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10f9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.B (d16,PC),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10fa_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.B (d8,PC,Xn),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10fb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.B #.B,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_10fc_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1100_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); -}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.B (An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1110_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B (An)+,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1118_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1120_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (2); -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (2); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.B (d16,An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1128_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.B (d8,An,Xn),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1130_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1138_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_1139_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.B (d16,PC),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_113a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.B (d8,PC,Xn),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_113b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.B #.B,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_113c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1140_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B (An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1150_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.B (An)+,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1158_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.B -(An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1160_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.B (d16,An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1168_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.B (d8,An,Xn),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1170_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1178_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_1179_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (8); -}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (8); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.B (d16,PC),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_117a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.B (d8,PC,Xn),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_117b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MOVE.B #.B,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_117c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_1180_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.B (An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_1190_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.B (An)+,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_1198_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.B -(An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.B (d16,An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MOVE.B (d8,An,Xn),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11b8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11b9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (6)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (8); -}}}}return 26 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (6)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (8); + } + } + } + } + return 26 * CYCLE_UNIT / 2; } /* MOVE.B (d16,PC),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11ba_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MOVE.B (d8,PC,Xn),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11bb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.B #.B,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_11bc_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.B (An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.B (An)+,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.B -(An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.B (d16,An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.B (d8,An,Xn),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (8); -}}}}return 24 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (8); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.B (d16,PC),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11fa_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.B (d8,PC,Xn),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11fb_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 22 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MOVE.B #.B,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_11fc_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}return 16 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.B (An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.B (An)+,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.B -(An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (6); -}}}}return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (6); + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MOVE.B (d16,An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (8); -}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (8); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.B (d8,An,Xn),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (8); -}}}}return 26 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (8); + } + } + } + } + return 26 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (8); -}}}}return 24 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (8); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.B (xxx).L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_ilong (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (10); -}}}}return 28 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_ilong (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (10); + } + } + } + } + return 28 * CYCLE_UNIT / 2; } /* MOVE.B (d16,PC),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13fa_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (8); -}}}}return 24 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (8); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.B (d8,PC,Xn),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13fb_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (8); -}}}}return 26 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (8); + } + } + } + } + return 26 * CYCLE_UNIT / 2; } /* MOVE.B #.B,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_13fc_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); - m68k_incpc (8); -}}}return 20 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + m68k_incpc (8); + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2000_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (2); -}}}return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + return 4 * CYCLE_UNIT / 2; } /* MOVE.L An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2008_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (2); -}}}return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + return 4 * CYCLE_UNIT / 2; } /* MOVE.L (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2010_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (2); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.L (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2018_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (2); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.L -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2020_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (2); -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2028_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.L (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2030_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s32 src = get_long (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s32 src = get_long (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2038_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_2039_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.L (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_203a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.L (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_203b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s32 src = get_long (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s32 src = get_long (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_203c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (6); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (6); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVEA.L Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_2040_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (2); -}}}return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + return 4 * CYCLE_UNIT / 2; } /* MOVEA.L An,An */ uae_u32 REGPARAM2 CPUFUNC(op_2048_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (2); -}}}return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + return 4 * CYCLE_UNIT / 2; } /* MOVEA.L (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_2050_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (2); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVEA.L (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_2058_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (2); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVEA.L -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_2060_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (2); -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVEA.L (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_2068_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVEA.L (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_2070_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s32 src = get_long (srca); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s32 src = get_long (srca); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVEA.L (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_2078_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVEA.L (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_2079_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVEA.L (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_207a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVEA.L (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_207b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s32 src = get_long (srca); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s32 src = get_long (srca); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVEA.L #.L,An */ uae_u32 REGPARAM2 CPUFUNC(op_207c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ m68k_areg (regs, dstreg) = (src); - m68k_incpc (6); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + m68k_areg (regs, dstreg) = (src); + m68k_incpc (6); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.L Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2080_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.L An,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2088_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.L (An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2090_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.L (An)+,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2098_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.L -(An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); -}}}}return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MOVE.L (d16,An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.L (d8,An,Xn),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 26 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 26 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20b8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20b9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 28 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 28 * CYCLE_UNIT / 2; } /* MOVE.L (d16,PC),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20ba_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.L (d8,PC,Xn),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20bb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 26 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 26 * CYCLE_UNIT / 2; } /* MOVE.L #.L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_20bc_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.L Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.L An,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20c8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.L (An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.L (An)+,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.L -(An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); -}}}}return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MOVE.L (d16,An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.L (d8,An,Xn),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 26 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 26 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20f8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20f9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 28 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 28 * CYCLE_UNIT / 2; } /* MOVE.L (d16,PC),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20fa_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.L (d8,PC,Xn),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20fb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 26 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 26 * CYCLE_UNIT / 2; } /* MOVE.L #.L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_20fc_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.L Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2100_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.L An,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2108_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.L (An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2110_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.L (An)+,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2118_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.L -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2120_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (2); -}}}}return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (2); + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MOVE.L (d16,An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2128_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.L (d8,An,Xn),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2130_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 26 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 26 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2138_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_2139_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 28 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 28 * CYCLE_UNIT / 2; } /* MOVE.L (d16,PC),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_213a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.L (d8,PC,Xn),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_213b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 26 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 26 * CYCLE_UNIT / 2; } /* MOVE.L #.L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_213c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.L Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2140_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.L An,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2148_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.L (An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2150_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.L (An)+,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2158_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.L -(An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2160_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 26 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 26 * CYCLE_UNIT / 2; } /* MOVE.L (d16,An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2168_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 28 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 28 * CYCLE_UNIT / 2; } /* MOVE.L (d8,An,Xn),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2170_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 30 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 30 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2178_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 28 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 28 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_2179_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); -}}}}return 32 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + } + } + } + } + return 32 * CYCLE_UNIT / 2; } /* MOVE.L (d16,PC),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_217a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 28 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 28 * CYCLE_UNIT / 2; } /* MOVE.L (d8,PC,Xn),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_217b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 30 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 30 * CYCLE_UNIT / 2; } /* MOVE.L #.L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_217c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); -}}}return 24 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.L Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_2180_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.L An,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_2188_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.L (An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_2190_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 26 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 26 * CYCLE_UNIT / 2; } #endif @@ -6812,3741 +10190,5391 @@ uae_u32 REGPARAM2 CPUFUNC(op_2190_4)(uae_u32 opcode, struct regstruct ®s) /* MOVE.L (An)+,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_2198_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 26 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 26 * CYCLE_UNIT / 2; } /* MOVE.L -(An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 28 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 28 * CYCLE_UNIT / 2; } /* MOVE.L (d16,An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 30 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 30 * CYCLE_UNIT / 2; } /* MOVE.L (d8,An,Xn),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 32 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 32 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21b8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 30 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 30 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21b9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (6)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); -}}}}return 34 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (6)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + } + } + } + } + return 34 * CYCLE_UNIT / 2; } /* MOVE.L (d16,PC),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21ba_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 30 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 30 * CYCLE_UNIT / 2; } /* MOVE.L (d8,PC,Xn),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21bb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 32 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 32 * CYCLE_UNIT / 2; } /* MOVE.L #.L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_21bc_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (6)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); -}}}return 26 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (6)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + } + } + } + return 26 * CYCLE_UNIT / 2; } /* MOVE.L Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.L An,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21c8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.L (An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.L (An)+,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.L -(An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (4); -}}}}return 26 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (4); + } + } + } + } + return 26 * CYCLE_UNIT / 2; } /* MOVE.L (d16,An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 28 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 28 * CYCLE_UNIT / 2; } /* MOVE.L (d8,An,Xn),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 30 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 30 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 28 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 28 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); -}}}}return 32 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + } + } + } + } + return 32 * CYCLE_UNIT / 2; } /* MOVE.L (d16,PC),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21fa_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 28 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 28 * CYCLE_UNIT / 2; } /* MOVE.L (d8,PC,Xn),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21fb_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 30 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 30 * CYCLE_UNIT / 2; } /* MOVE.L #.L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_21fc_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); -}}}return 24 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.L Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.L An,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23c8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.L (An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 28 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 28 * CYCLE_UNIT / 2; } /* MOVE.L (An)+,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 28 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 28 * CYCLE_UNIT / 2; } /* MOVE.L -(An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (6); -}}}}return 30 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (6); + } + } + } + } + return 30 * CYCLE_UNIT / 2; } /* MOVE.L (d16,An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); -}}}}return 32 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + } + } + } + } + return 32 * CYCLE_UNIT / 2; } /* MOVE.L (d8,An,Xn),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); -}}}}return 34 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + } + } + } + } + return 34 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); -}}}}return 32 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + } + } + } + } + return 32 * CYCLE_UNIT / 2; } /* MOVE.L (xxx).L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_ilong (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (10); -}}}}return 36 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_ilong (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (10); + } + } + } + } + return 36 * CYCLE_UNIT / 2; } /* MOVE.L (d16,PC),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23fa_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); -}}}}return 32 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + } + } + } + } + return 32 * CYCLE_UNIT / 2; } /* MOVE.L (d8,PC,Xn),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23fb_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (8); -}}}}return 34 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (8); + } + } + } + } + return 34 * CYCLE_UNIT / 2; } /* MOVE.L #.L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_23fc_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); -{ uaecptr dsta; - dsta = get_ilong (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); - m68k_incpc (10); -}}}return 28 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + { + uaecptr dsta; + dsta = get_ilong (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + m68k_incpc (10); + } + } + } + return 28 * CYCLE_UNIT / 2; } /* MOVE.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3000_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (2); -}}}return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (2); + } + } + } + return 4 * CYCLE_UNIT / 2; } /* MOVE.W An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3008_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (2); -}}}return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (2); + } + } + } + return 4 * CYCLE_UNIT / 2; } /* MOVE.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3010_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (2); -}}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (2); + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3018_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (2); -}}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (2); + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3020_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (2); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (2); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVE.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3028_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (4); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (4); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3030_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (4); -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (4); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3038_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (4); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (4); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_3039_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (6); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (6); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_303a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (4); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (4); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_303b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (4); -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (4); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_303c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); - m68k_incpc (4); -}}}return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + m68k_incpc (4); + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVEA.W Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_3040_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (2); -}}}return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (2); + } + } + } + return 4 * CYCLE_UNIT / 2; } /* MOVEA.W An,An */ uae_u32 REGPARAM2 CPUFUNC(op_3048_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (2); -}}}return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (2); + } + } + } + return 4 * CYCLE_UNIT / 2; } /* MOVEA.W (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_3050_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (2); -}}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (2); + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVEA.W (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_3058_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (2); -}}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (2); + } + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVEA.W -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_3060_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (2); -}}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (2); + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* MOVEA.W (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_3068_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (4); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (4); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVEA.W (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_3070_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (4); -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (4); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVEA.W (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_3078_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (4); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (4); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVEA.W (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_3079_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (6); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (6); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVEA.W (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_307a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (4); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (4); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVEA.W (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_307b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (4); -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (4); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVEA.W #.W,An */ uae_u32 REGPARAM2 CPUFUNC(op_307c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ src = (uae_s32)(uae_s16)src; - m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); - m68k_incpc (4); -}}}return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + src = (uae_s32)(uae_s16)src; + m68k_areg (regs, dstreg) = (uae_s32)(uae_s16)(src); + m68k_incpc (4); + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.W Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3080_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); -}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.W An,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3088_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); -}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.W (An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3090_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W (An)+,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3098_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W -(An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.W (d16,An),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.W (d8,An,Xn),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30b8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).L,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30b9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.W (d16,PC),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30ba_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.W (d8,PC,Xn),(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30bb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_30bc_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); -}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.W An,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30c8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); -}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.W (An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W (An)+,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W -(An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.W (d16,An),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.W (d8,An,Xn),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30f8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).L,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30f9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.W (d16,PC),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30fa_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.W (d8,PC,Xn),(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30fb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_30fc_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); - m68k_areg (regs, dstreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + m68k_areg (regs, dstreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3100_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); -}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.W An,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3108_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); -}}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + } + } + } + return 8 * CYCLE_UNIT / 2; } /* MOVE.W (An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3110_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W (An)+,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3118_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); -}}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + } + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3120_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (2); -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (2); + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.W (d16,An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3128_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.W (d8,An,Xn),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3130_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3138_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).L,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_3139_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.W (d16,PC),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_313a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.W (d8,PC,Xn),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_313b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_313c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; - m68k_areg (regs, dstreg) = dsta; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3140_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W An,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3148_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W (An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3150_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.W (An)+,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3158_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.W -(An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3160_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.W (d16,An),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3168_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.W (d8,An,Xn),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3170_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3178_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).L,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_3179_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (8); -}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (8); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.W (d16,PC),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_317a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.W (d8,PC,Xn),(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_317b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MOVE.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_317c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.W Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_3180_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.W An,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_3188_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + return 14 * CYCLE_UNIT / 2; } /* MOVE.W (An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_3190_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.W (An)+,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_3198_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.W -(An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.W (d16,An),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MOVE.W (d8,An,Xn),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31b8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).L,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31b9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (6)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (8); -}}}}return 26 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (6)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (8); + } + } + } + } + return 26 * CYCLE_UNIT / 2; } /* MOVE.W (d16,PC),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31ba_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MOVE.W (d8,PC,Xn),(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31bb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_31bc_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.W Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W An,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31c8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MOVE.W (An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.W (An)+,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.W -(An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (4); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (4); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MOVE.W (d16,An),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.W (d8,An,Xn),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).L,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (8); -}}}}return 24 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (8); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.W (d16,PC),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31fa_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.W (d8,PC,Xn),(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31fb_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}return 22 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MOVE.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_31fc_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}return 16 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.W Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.W An,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33c8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MOVE.W (An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.W (An)+,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVE.W -(An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (6); -}}}}return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (6); + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MOVE.W (d16,An),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (8); -}}}}return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (8); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.W (d8,An,Xn),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (8); -}}}}return 26 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (8); + } + } + } + } + return 26 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (8); -}}}}return 24 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (8); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.W (xxx).L,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_ilong (6); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (10); -}}}}return 28 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_ilong (6); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (10); + } + } + } + } + return 28 * CYCLE_UNIT / 2; } /* MOVE.W (d16,PC),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33fa_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (8); -}}}}return 24 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (8); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MOVE.W (d8,PC,Xn),(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33fb_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (8); -}}}}return 26 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (8); + } + } + } + } + return 26 * CYCLE_UNIT / 2; } /* MOVE.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_33fc_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); -{ uaecptr dsta; - dsta = get_ilong (4); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); - m68k_incpc (8); -}}}return 20 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + { + uaecptr dsta; + dsta = get_ilong (4); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + m68k_incpc (8); + } + } + } + return 20 * CYCLE_UNIT / 2; } /* NEGX.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4000_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((newv) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* NEGX.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4010_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (srca, newv); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (srca, newv); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* NEGX.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4018_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (srca, newv); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (srca, newv); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* NEGX.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4020_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (srca, newv); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (srca, newv); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* NEGX.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4028_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (srca, newv); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (srca, newv); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* NEGX.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4030_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (srca, newv); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (srca, newv); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* NEGX.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4038_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (srca, newv); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (srca, newv); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* NEGX.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4039_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (srca, newv); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (srca, newv); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* NEGX.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4040_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((newv) & 0xffff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* NEGX.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4050_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (srca, newv); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (srca, newv); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* NEGX.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4058_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (srca, newv); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (srca, newv); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* NEGX.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4060_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (srca, newv); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (srca, newv); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* NEGX.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4068_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (srca, newv); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (srca, newv); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* NEGX.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4070_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (srca, newv); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (srca, newv); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* NEGX.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4078_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (srca, newv); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (srca, newv); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* NEGX.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4079_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (srca, newv); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (srca, newv); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* NEGX.L Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4080_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, srcreg) = (newv); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, srcreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* NEGX.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4090_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (srca, newv); -}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (srca, newv); + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* NEGX.L (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4098_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (srca, newv); -}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (srca, newv); + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* NEGX.L -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_40a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (srca, newv); -}}}}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (srca, newv); + } + } + } + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2; } /* NEGX.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_40a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (srca, newv); -}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (srca, newv); + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* NEGX.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_40b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (srca, newv); -}}}}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (srca, newv); + } + } + } + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2; } /* NEGX.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_40b8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (srca, newv); -}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (srca, newv); + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* NEGX.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_40b9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (srca, newv); -}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (srca, newv); + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* MVSR2.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_40c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ MakeSR (regs); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((regs.sr) & 0xffff); -}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + MakeSR (regs); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((regs.sr) & 0xffff); + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* MVSR2.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_40d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - put_word (srca, regs.sr | 0x0010); - MakeSR (regs); - put_word (srca, regs.sr); -}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + put_word (srca, regs.sr | 0x0010); + MakeSR (regs); + put_word (srca, regs.sr); + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* MVSR2.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_40d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += 2; - put_word (srca, regs.sr | 0x0010); - MakeSR (regs); - put_word (srca, regs.sr); -}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += 2; + put_word (srca, regs.sr | 0x0010); + MakeSR (regs); + put_word (srca, regs.sr); + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* MVSR2.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_40e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - m68k_areg (regs, srcreg) = srca; - put_word (srca, regs.sr | 0x0010); - MakeSR (regs); - put_word (srca, regs.sr); -}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + m68k_areg (regs, srcreg) = srca; + put_word (srca, regs.sr | 0x0010); + MakeSR (regs); + put_word (srca, regs.sr); + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* MVSR2.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_40e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); - put_word (srca, regs.sr | 0x0010); - MakeSR (regs); - put_word (srca, regs.sr); -}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + put_word (srca, regs.sr | 0x0010); + MakeSR (regs); + put_word (srca, regs.sr); + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* MVSR2.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_40f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); - put_word (srca, regs.sr | 0x0010); - MakeSR (regs); - put_word (srca, regs.sr); -}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + put_word (srca, regs.sr | 0x0010); + MakeSR (regs); + put_word (srca, regs.sr); + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* MVSR2.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_40f8_4)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); - put_word (srca, regs.sr | 0x0010); - MakeSR (regs); - put_word (srca, regs.sr); -}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + put_word (srca, regs.sr | 0x0010); + MakeSR (regs); + put_word (srca, regs.sr); + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* MVSR2.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_40f9_4)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = get_ilong (2); - put_word (srca, regs.sr | 0x0010); - MakeSR (regs); - put_word (srca, regs.sr); -}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = get_ilong (2); + put_word (srca, regs.sr | 0x0010); + MakeSR (regs); + put_word (srca, regs.sr); + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* CHK.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4180_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (2); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 8 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 10 * CYCLE_UNIT / 2; - } -}}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (2); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 8 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 10 * CYCLE_UNIT / 2; + } + } + } + } + return 10 * CYCLE_UNIT / 2; } /* CHK.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4190_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (2); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 12 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 14 * CYCLE_UNIT / 2; - } -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (2); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 14 * CYCLE_UNIT / 2; + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* CHK.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4198_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (2); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 12 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 14 * CYCLE_UNIT / 2; - } -}}}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (2); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 14 * CYCLE_UNIT / 2; + } + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* CHK.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (2); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 14 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 16 * CYCLE_UNIT / 2; - } -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (2); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 14 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 16 * CYCLE_UNIT / 2; + } + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* CHK.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (4); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 16 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 18 * CYCLE_UNIT / 2; - } -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (4); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 16 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 18 * CYCLE_UNIT / 2; + } + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* CHK.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (4); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 18 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 20 * CYCLE_UNIT / 2; - } -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (4); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 18 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 20 * CYCLE_UNIT / 2; + } + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* CHK.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41b8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (4); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 16 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 18 * CYCLE_UNIT / 2; - } -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (4); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 16 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 18 * CYCLE_UNIT / 2; + } + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* CHK.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41b9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (6); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 20 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 22 * CYCLE_UNIT / 2; - } -}}}}return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (6); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 20 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 22 * CYCLE_UNIT / 2; + } + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* CHK.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41ba_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (4); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 16 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 18 * CYCLE_UNIT / 2; - } -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (4); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 16 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 18 * CYCLE_UNIT / 2; + } + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* CHK.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41bb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (4); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 18 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 20 * CYCLE_UNIT / 2; - } -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (4); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 18 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 20 * CYCLE_UNIT / 2; + } + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* CHK.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_41bc_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - m68k_incpc (4); - if (dst > src) { - SET_NFLG (0); - Exception (6); - return 12 * CYCLE_UNIT / 2; - } - if ((uae_s32)dst < 0) { - SET_NFLG (1); - Exception (6); - return 14 * CYCLE_UNIT / 2; - } -}}}return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + m68k_incpc (4); + if (dst > src) + { + SET_NFLG (0); + Exception (6); + return 12 * CYCLE_UNIT / 2; + } + if ((uae_s32)dst < 0) + { + SET_NFLG (1); + Exception (6); + return 14 * CYCLE_UNIT / 2; + } + } + } + } + return 14 * CYCLE_UNIT / 2; } /* LEA.L (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_41d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ m68k_areg (regs, dstreg) = (srca); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + m68k_areg (regs, dstreg) = (srca); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* LEA.L (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_41e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ m68k_areg (regs, dstreg) = (srca); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + m68k_areg (regs, dstreg) = (srca); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* LEA.L (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_41f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ m68k_areg (regs, dstreg) = (srca); -}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + m68k_areg (regs, dstreg) = (srca); + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* LEA.L (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_41f8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ m68k_areg (regs, dstreg) = (srca); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + m68k_areg (regs, dstreg) = (srca); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* LEA.L (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_41f9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ m68k_areg (regs, dstreg) = (srca); -}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + m68k_areg (regs, dstreg) = (srca); + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } /* LEA.L (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_41fa_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ m68k_areg (regs, dstreg) = (srca); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + m68k_areg (regs, dstreg) = (srca); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* LEA.L (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_41fb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ m68k_areg (regs, dstreg) = (srca); -}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + m68k_areg (regs, dstreg) = (srca); + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* CLR.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4200_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((0) & 0xff); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((0) & 0xff); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CLR.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4210_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - put_byte (srca, 0); -}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte (srca, 0); + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* CLR.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4218_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - put_byte (srca, 0); -}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte (srca, 0); + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* CLR.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4220_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - put_byte (srca, 0); -}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte (srca, 0); + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* CLR.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4228_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - put_byte (srca, 0); -}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte (srca, 0); + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* CLR.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4230_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - put_byte (srca, 0); -}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte (srca, 0); + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* CLR.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4238_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - put_byte (srca, 0); -}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte (srca, 0); + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* CLR.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4239_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(0)) == 0); - SET_NFLG (((uae_s8)(0)) < 0); - put_byte (srca, 0); -}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte (srca, 0); + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* CLR.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4240_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((0) & 0xffff); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((0) & 0xffff); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CLR.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4250_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - put_word (srca, 0); -}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word (srca, 0); + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* CLR.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4258_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - put_word (srca, 0); -}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word (srca, 0); + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* CLR.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4260_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - m68k_areg (regs, srcreg) = srca; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - put_word (srca, 0); -}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word (srca, 0); + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* CLR.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4268_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - put_word (srca, 0); -}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word (srca, 0); + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* CLR.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4270_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - put_word (srca, 0); -}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word (srca, 0); + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* CLR.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4278_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - put_word (srca, 0); -}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word (srca, 0); + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* CLR.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4279_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(0)) == 0); - SET_NFLG (((uae_s16)(0)) < 0); - put_word (srca, 0); -}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word (srca, 0); + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* CLR.L Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4280_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - m68k_dreg (regs, srcreg) = (0); -}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + m68k_dreg (regs, srcreg) = (0); + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* CLR.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4290_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - put_long (srca, 0); -}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long (srca, 0); + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* CLR.L (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4298_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - put_long (srca, 0); -}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long (srca, 0); + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* CLR.L -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_42a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; - m68k_areg (regs, srcreg) = srca; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - put_long (srca, 0); -}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long (srca, 0); + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2; } /* CLR.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_42a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - put_long (srca, 0); -}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long (srca, 0); + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* CLR.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_42b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - put_long (srca, 0); -}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long (srca, 0); + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2; } /* CLR.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_42b8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - put_long (srca, 0); -}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long (srca, 0); + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* CLR.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_42b9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(0)) == 0); - SET_NFLG (((uae_s32)(0)) < 0); - put_long (srca, 0); -}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long (srca, 0); + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* MVSR2.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_42c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ MakeSR (regs); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((regs.sr & 0xff) & 0xffff); -}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + MakeSR (regs); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((regs.sr & 0xff) & 0xffff); + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* MVSR2.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_42d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - MakeSR (regs); - put_word (srca, regs.sr & 0xff); -}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + MakeSR (regs); + put_word (srca, regs.sr & 0xff); + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* MVSR2.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_42d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += 2; - MakeSR (regs); - put_word (srca, regs.sr & 0xff); -}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += 2; + MakeSR (regs); + put_word (srca, regs.sr & 0xff); + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* MVSR2.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_42e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - m68k_areg (regs, srcreg) = srca; - MakeSR (regs); - put_word (srca, regs.sr & 0xff); -}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + m68k_areg (regs, srcreg) = srca; + MakeSR (regs); + put_word (srca, regs.sr & 0xff); + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* MVSR2.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_42e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); - MakeSR (regs); - put_word (srca, regs.sr & 0xff); -}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + MakeSR (regs); + put_word (srca, regs.sr & 0xff); + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* MVSR2.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_42f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); - MakeSR (regs); - put_word (srca, regs.sr & 0xff); -}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + MakeSR (regs); + put_word (srca, regs.sr & 0xff); + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* MVSR2.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_42f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); - MakeSR (regs); - put_word (srca, regs.sr & 0xff); -}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + MakeSR (regs); + put_word (srca, regs.sr & 0xff); + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* MVSR2.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_42f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); - MakeSR (regs); - put_word (srca, regs.sr & 0xff); -}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + MakeSR (regs); + put_word (srca, regs.sr & 0xff); + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } #endif @@ -10555,3608 +15583,5347 @@ return 16 * CYCLE_UNIT / 2; /* NEG.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4400_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((dst) & 0xff); -}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((dst) & 0xff); + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* NEG.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4410_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (srca, dst); -}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (srca, dst); + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* NEG.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4418_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (srca, dst); -}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (srca, dst); + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* NEG.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4420_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (srca, dst); -}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (srca, dst); + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* NEG.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4428_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (srca, dst); -}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (srca, dst); + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* NEG.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4430_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s8 src = get_byte (srca); -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (srca, dst); -}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (srca, dst); + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* NEG.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4438_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (srca, dst); -}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (srca, dst); + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* NEG.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4439_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{{uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(0)) < 0; - int flgn = ((uae_s8)(dst)) < 0; - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (srca, dst); -}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + { + uae_u32 dst = ((uae_u8)(0)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (srca, dst); + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* NEG.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4440_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((dst) & 0xffff); -}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((dst) & 0xffff); + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* NEG.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4450_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (srca, dst); -}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (srca, dst); + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* NEG.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4458_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (srca, dst); -}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (srca, dst); + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* NEG.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4460_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (srca, dst); -}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (srca, dst); + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* NEG.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4468_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (srca, dst); -}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (srca, dst); + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* NEG.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4470_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (srca, dst); -}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (srca, dst); + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* NEG.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4478_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (srca, dst); -}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (srca, dst); + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* NEG.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4479_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{{uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(0)) < 0; - int flgn = ((uae_s16)(dst)) < 0; - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (srca, dst); -}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + { + uae_u32 dst = ((uae_u16)(0)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (srca, dst); + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* NEG.L Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4480_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, srcreg) = (dst); -}}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, srcreg) = (dst); + } + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* NEG.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4490_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (srca, dst); -}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (srca, dst); + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* NEG.L (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4498_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (srca, dst); -}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (srca, dst); + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* NEG.L -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_44a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (srca, dst); -}}}}}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (srca, dst); + } + } + } + } + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2; } /* NEG.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_44a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (srca, dst); -}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (srca, dst); + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* NEG.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_44b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s32 src = get_long (srca); -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (srca, dst); -}}}}}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s32 src = get_long (srca); + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (srca, dst); + } + } + } + } + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2; } /* NEG.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_44b8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (srca, dst); -}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (srca, dst); + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* NEG.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_44b9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{{uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(0)) < 0; - int flgn = ((uae_s32)(dst)) < 0; - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (srca, dst); -}}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + { + uae_u32 dst = ((uae_u32)(0)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (srca, dst); + } + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* MV2SR.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_44c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (2); -}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (2); + } + } + return 12 * CYCLE_UNIT / 2; } /* MV2SR.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_44d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (2); -}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (2); + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MV2SR.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_44d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (2); -}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (2); + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MV2SR.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_44e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (2); -}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (2); + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MV2SR.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_44e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (4); -}}}return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (4); + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MV2SR.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_44f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (4); -}}}return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (4); + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MV2SR.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_44f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (4); -}}}return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (4); + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MV2SR.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_44f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (6); -}}}return 24 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (6); + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MV2SR.B (d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_44fa_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (4); -}}}return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (4); + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MV2SR.B (d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_44fb_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (4); -}}}return 22 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (4); + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MV2SR.B #.B */ uae_u32 REGPARAM2 CPUFUNC(op_44fc_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - MakeSR (regs); - regs.sr &= 0xFF00; - regs.sr |= src & 0xFF; - MakeFromSR(regs); - m68k_incpc (4); -}}return 16 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + MakeSR (regs); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(regs); + m68k_incpc (4); + } + } + return 16 * CYCLE_UNIT / 2; } /* NOT.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4600_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((dst) & 0xff); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((dst) & 0xff); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* NOT.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4610_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - put_byte (srca, dst); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte (srca, dst); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* NOT.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4618_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - put_byte (srca, dst); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte (srca, dst); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* NOT.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4620_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - put_byte (srca, dst); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte (srca, dst); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* NOT.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4628_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - put_byte (srca, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte (srca, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* NOT.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4630_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - put_byte (srca, dst); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte (srca, dst); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* NOT.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4638_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - put_byte (srca, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte (srca, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* NOT.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4639_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(dst)) == 0); - SET_NFLG (((uae_s8)(dst)) < 0); - put_byte (srca, dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte (srca, dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* NOT.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4640_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((dst) & 0xffff); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((dst) & 0xffff); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* NOT.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4650_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - put_word (srca, dst); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word (srca, dst); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* NOT.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4658_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - put_word (srca, dst); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word (srca, dst); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* NOT.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4660_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - put_word (srca, dst); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word (srca, dst); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* NOT.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4668_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - put_word (srca, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word (srca, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* NOT.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4670_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - put_word (srca, dst); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word (srca, dst); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* NOT.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4678_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - put_word (srca, dst); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word (srca, dst); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* NOT.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4679_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - put_word (srca, dst); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word (srca, dst); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* NOT.L Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4680_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - m68k_dreg (regs, srcreg) = (dst); -}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + m68k_dreg (regs, srcreg) = (dst); + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* NOT.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4690_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - put_long (srca, dst); -}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long (srca, dst); + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* NOT.L (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4698_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - put_long (srca, dst); -}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long (srca, dst); + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* NOT.L -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_46a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - put_long (srca, dst); -}}}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long (srca, dst); + } + } + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2; } /* NOT.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_46a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - put_long (srca, dst); -}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long (srca, dst); + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* NOT.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_46b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - put_long (srca, dst); -}}}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long (srca, dst); + } + } + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2; } /* NOT.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_46b8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - put_long (srca, dst); -}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long (srca, dst); + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* NOT.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_46b9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uae_u32 dst = ~src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - put_long (srca, dst); -}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uae_u32 dst = ~src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long (srca, dst); + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* MV2SR.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_46c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 src = m68k_dreg (regs, srcreg); - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (2); -}}}return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (2); + } + } + } + return 12 * CYCLE_UNIT / 2; } /* MV2SR.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_46d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (2); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (2); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MV2SR.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_46d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (2); -}}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (2); + } + } + } + } + return 16 * CYCLE_UNIT / 2; } /* MV2SR.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_46e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (2); -}}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (2); + } + } + } + } + return 18 * CYCLE_UNIT / 2; } /* MV2SR.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_46e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (4); -}}}}return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (4); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MV2SR.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_46f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (4); -}}}}return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (4); + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MV2SR.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_46f8_4)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (4); -}}}}return 20 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (4); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MV2SR.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_46f9_4)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (6); -}}}}return 24 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (6); + } + } + } + } + return 24 * CYCLE_UNIT / 2; } /* MV2SR.W (d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_46fa_4)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (4); -}}}}return 20 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (4); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MV2SR.W (d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_46fb_4)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (4); -}}}}return 22 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (4); + } + } + } + } + return 22 * CYCLE_UNIT / 2; } /* MV2SR.W #.W */ uae_u32 REGPARAM2 CPUFUNC(op_46fc_4)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 src = get_iword (2); - regs.sr = src; - MakeFromSR(regs); - m68k_incpc (4); -}}}return 16 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_iword (2); + regs.sr = src; + MakeFromSR(regs); + m68k_incpc (4); + } + } + } + return 16 * CYCLE_UNIT / 2; } /* NBCD.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4800_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((newv) & 0xff); -}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((newv) & 0xff); + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* NBCD.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4810_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (srca, newv); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (srca, newv); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* NBCD.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4818_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (srca, newv); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (srca, newv); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* NBCD.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4820_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (srca, newv); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (srca, newv); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* NBCD.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4828_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (srca, newv); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (srca, newv); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* NBCD.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4830_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (srca, newv); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (srca, newv); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* NBCD.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4838_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (srca, newv); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (srca, newv); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* NBCD.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4839_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = - (src & 0xF0); - uae_u16 newv; - int cflg, tmp_newv; - if (newv_lo > 9) { newv_lo -= 6; } - tmp_newv = newv = newv_hi + newv_lo; - cflg = (newv & 0x1F0) > 0x90; - if (cflg) newv -= 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (srca, newv); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg, tmp_newv; + if (newv_lo > 9) + { + newv_lo -= 6; + } + tmp_newv = newv = newv_hi + newv_lo; + cflg = (newv & 0x1F0) > 0x90; + if (cflg) newv -= 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (srca, newv); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* SWAP.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4840_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_u32 dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - m68k_dreg (regs, srcreg) = (dst); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_u32 dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + m68k_dreg (regs, srcreg) = (dst); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* PEA.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4850_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, 7) - 4; - m68k_areg (regs, 7) = dsta; - put_long (dsta, srca); -}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long (dsta, srca); + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* PEA.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4868_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, 7) - 4; - m68k_areg (regs, 7) = dsta; - put_long (dsta, srca); -}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long (dsta, srca); + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* PEA.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4870_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uaecptr dsta; - dsta = m68k_areg (regs, 7) - 4; - m68k_areg (regs, 7) = dsta; - put_long (dsta, srca); -}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uaecptr dsta; + dsta = m68k_areg (regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long (dsta, srca); + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2; } /* PEA.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4878_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, 7) - 4; - m68k_areg (regs, 7) = dsta; - put_long (dsta, srca); -}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long (dsta, srca); + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* PEA.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4879_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, 7) - 4; - m68k_areg (regs, 7) = dsta; - put_long (dsta, srca); -}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long (dsta, srca); + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* PEA.L (d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_487a_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uaecptr dsta; - dsta = m68k_areg (regs, 7) - 4; - m68k_areg (regs, 7) = dsta; - put_long (dsta, srca); -}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uaecptr dsta; + dsta = m68k_areg (regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long (dsta, srca); + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* PEA.L (d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_487b_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uaecptr dsta; - dsta = m68k_areg (regs, 7) - 4; - m68k_areg (regs, 7) = dsta; - put_long (dsta, srca); -}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uaecptr dsta; + dsta = m68k_areg (regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + put_long (dsta, srca); + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2; } /* EXT.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4880_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_u16 dst = (uae_s16)(uae_s8)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(dst)) == 0); - SET_NFLG (((uae_s16)(dst)) < 0); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((dst) & 0xffff); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_u16 dst = (uae_s16)(uae_s8)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((dst) & 0xffff); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* MVMLE.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4890_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = m68k_areg (regs, dstreg); -{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_word (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - put_word (srca, m68k_areg (regs, movem_index1[amask])); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_word (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + put_word (srca, m68k_areg (regs, movem_index1[amask])); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* MVMLE.W #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_48a0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = m68k_areg (regs, dstreg) - 0; -{ uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff; - while (amask) { - srca -= 2; - put_word (srca, m68k_areg (regs, movem_index2[amask])); - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (dmask) { - srca -= 2; - put_word (srca, m68k_dreg (regs, movem_index2[dmask])); - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - m68k_areg (regs, dstreg) = srca; -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) - 0; + { + uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff; + while (amask) + { + srca -= 2; + put_word (srca, m68k_areg (regs, movem_index2[amask])); + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (dmask) + { + srca -= 2; + put_word (srca, m68k_dreg (regs, movem_index2[dmask])); + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + m68k_areg (regs, dstreg) = srca; + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* MVMLE.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_48a8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_word (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - put_word (srca, m68k_areg (regs, movem_index1[amask])); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_word (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + put_word (srca, m68k_areg (regs, movem_index1[amask])); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* MVMLE.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_48b0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); -{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_word (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - put_word (srca, m68k_areg (regs, movem_index1[amask])); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_word (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + put_word (srca, m68k_areg (regs, movem_index1[amask])); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* MVMLE.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_48b8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (4); -{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_word (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - put_word (srca, m68k_areg (regs, movem_index1[amask])); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (4); + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_word (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + put_word (srca, m68k_areg (regs, movem_index1[amask])); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* MVMLE.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_48b9_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = get_ilong (4); -{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_word (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - put_word (srca, m68k_areg (regs, movem_index1[amask])); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (8); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = get_ilong (4); + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_word (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + put_word (srca, m68k_areg (regs, movem_index1[amask])); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (8); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* EXT.L Dn */ uae_u32 REGPARAM2 CPUFUNC(op_48c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_u32 dst = (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(dst)) == 0); - SET_NFLG (((uae_s32)(dst)) < 0); - m68k_dreg (regs, srcreg) = (dst); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_u32 dst = (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + m68k_dreg (regs, srcreg) = (dst); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* MVMLE.L #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_48d0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = m68k_areg (regs, dstreg); -{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_long (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - put_long (srca, m68k_areg (regs, movem_index1[amask])); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_long (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + put_long (srca, m68k_areg (regs, movem_index1[amask])); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* MVMLE.L #.W,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_48e0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = m68k_areg (regs, dstreg) - 0; -{ uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff; - while (amask) { - srca -= 4; - put_long (srca, m68k_areg (regs, movem_index2[amask])); - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (dmask) { - srca -= 4; - put_long (srca, m68k_dreg (regs, movem_index2[dmask])); - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - m68k_areg (regs, dstreg) = srca; -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) - 0; + { + uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff; + while (amask) + { + srca -= 4; + put_long (srca, m68k_areg (regs, movem_index2[amask])); + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (dmask) + { + srca -= 4; + put_long (srca, m68k_dreg (regs, movem_index2[dmask])); + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + m68k_areg (regs, dstreg) = srca; + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* MVMLE.L #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_48e8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_long (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - put_long (srca, m68k_areg (regs, movem_index1[amask])); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_long (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + put_long (srca, m68k_areg (regs, movem_index1[amask])); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* MVMLE.L #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_48f0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); -{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_long (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - put_long (srca, m68k_areg (regs, movem_index1[amask])); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_long (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + put_long (srca, m68k_areg (regs, movem_index1[amask])); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* MVMLE.L #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_48f8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (4); -{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_long (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - put_long (srca, m68k_areg (regs, movem_index1[amask])); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (4); + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_long (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + put_long (srca, m68k_areg (regs, movem_index1[amask])); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* MVMLE.L #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_48f9_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_iword (2); -{ uaecptr srca; - srca = get_ilong (4); -{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; - while (dmask) { - put_long (srca, m68k_dreg (regs, movem_index1[dmask])); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - put_long (srca, m68k_areg (regs, movem_index1[amask])); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (8); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_iword (2); + { + uaecptr srca; + srca = get_ilong (4); + { + uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) + { + put_long (srca, m68k_dreg (regs, movem_index1[dmask])); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + put_long (srca, m68k_areg (regs, movem_index1[amask])); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (8); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* TST.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4a00_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* TST.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4a10_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* TST.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4a18_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* TST.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4a20_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* TST.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4a28_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* TST.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4a30_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* TST.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4a38_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* TST.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4a39_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* TST.B #.B */ uae_u32 REGPARAM2 CPUFUNC(op_4a3c_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s8 src = get_ibyte (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); -}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + { + { + uae_s8 src = get_ibyte (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* TST.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4a40_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* TST.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4a50_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* TST.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4a58_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* TST.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4a60_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* TST.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4a68_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* TST.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4a70_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* TST.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4a78_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* TST.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4a79_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* TST.W #.W */ uae_u32 REGPARAM2 CPUFUNC(op_4a7c_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); -}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* TST.L Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4a80_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* TST.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4a90_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* TST.L (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4a98_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* TST.L -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4aa0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* TST.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4aa8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* TST.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4ab0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s32 src = get_long (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s32 src = get_long (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* TST.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4ab8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* TST.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4ab9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* TST.L #.L */ uae_u32 REGPARAM2 CPUFUNC(op_4abc_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s32 src; - src = get_ilong (2); - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); -}} m68k_incpc (6); -return 12 * CYCLE_UNIT / 2; + { + { + uae_s32 src; + src = get_ilong (2); + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + } + } + m68k_incpc (6); + return 12 * CYCLE_UNIT / 2; } /* TAS.B Dn */ uae_u32 REGPARAM2 CPUFUNC(op_4ac0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - src |= 0x80; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((src) & 0xff); -}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((src) & 0xff); + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* TAS.B (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ad0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - src |= 0x80; - put_byte (srca, src); -}}} m68k_incpc (2); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte (srca, src); + } + } + } + m68k_incpc (2); + return 18 * CYCLE_UNIT / 2; } /* TAS.B (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4ad8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - src |= 0x80; - put_byte (srca, src); -}}} m68k_incpc (2); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte (srca, src); + } + } + } + m68k_incpc (2); + return 18 * CYCLE_UNIT / 2; } /* TAS.B -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ae0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - src |= 0x80; - put_byte (srca, src); -}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte (srca, src); + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* TAS.B (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ae8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - src |= 0x80; - put_byte (srca, src); -}}} m68k_incpc (4); -return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte (srca, src); + } + } + } + m68k_incpc (4); + return 22 * CYCLE_UNIT / 2; } /* TAS.B (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4af0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - src |= 0x80; - put_byte (srca, src); -}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte (srca, src); + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* TAS.B (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4af8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - src |= 0x80; - put_byte (srca, src); -}}} m68k_incpc (4); -return 22 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte (srca, src); + } + } + } + m68k_incpc (4); + return 22 * CYCLE_UNIT / 2; } /* TAS.B (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4af9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - src |= 0x80; - put_byte (srca, src); -}}} m68k_incpc (6); -return 26 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte (srca, src); + } + } + } + m68k_incpc (6); + return 26 * CYCLE_UNIT / 2; } /* MVMEL.W #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4c90_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_areg (regs, dstreg); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.W #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4c98_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_areg (regs, dstreg); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - m68k_areg (regs, dstreg) = srca; -}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + m68k_areg (regs, dstreg) = srca; + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.W #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ca8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.W #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4cb0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.W #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4cb8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (4); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (4); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.W #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4cb9_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = get_ilong (4); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (8); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = get_ilong (4); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (8); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.W #.W,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_4cba_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = 2; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_getpc () + 4; - srca += (uae_s32)(uae_s16)get_iword (4); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = 2; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_getpc () + 4; + srca += (uae_s32)(uae_s16)get_iword (4); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.W #.W,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4cbb_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = 3; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 4; - srca = get_disp_ea_000 (regs, tmppc, get_iword (4)); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - dmask = movem_next[dmask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); - srca += 2; - amask = movem_next[amask]; - count_cycles += 4 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = 3; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 4; + srca = get_disp_ea_000 (regs, tmppc, get_iword (4)); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + dmask = movem_next[dmask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word (srca); + srca += 2; + amask = movem_next[amask]; + count_cycles += 4 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.L #.W,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_4cd0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_areg (regs, dstreg); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.L #.W,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_4cd8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_areg (regs, dstreg); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - m68k_areg (regs, dstreg) = srca; -}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_areg (regs, dstreg); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + m68k_areg (regs, dstreg) = srca; + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.L #.W,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ce8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (4); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.L #.W,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4cf0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = opcode & 7; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = opcode & 7; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (4)); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.L #.W,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4cf8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (4); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (4); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.L #.W,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4cf9_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = get_ilong (4); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (8); -return 20 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = get_ilong (4); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (8); + return 20 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.L #.W,(d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_4cfa_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = 2; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr srca; - srca = m68k_getpc () + 4; - srca += (uae_s32)(uae_s16)get_iword (4); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = 2; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr srca; + srca = m68k_getpc () + 4; + srca += (uae_s32)(uae_s16)get_iword (4); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* MVMEL.L #.W,(d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4cfb_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = 3; -{ uae_u16 mask = get_iword (2); - uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; -{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 4; - srca = get_disp_ea_000 (regs, tmppc, get_iword (4)); -{ while (dmask) { - m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); - srca += 4; - dmask = movem_next[dmask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } - while (amask) { - m68k_areg (regs, movem_index1[amask]) = get_long (srca); - srca += 4; - amask = movem_next[amask]; - count_cycles += 8 * CYCLE_UNIT / 2; - } -}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = 3; + { + uae_u16 mask = get_iword (2); + uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 4; + srca = get_disp_ea_000 (regs, tmppc, get_iword (4)); + { + while (dmask) + { + m68k_dreg (regs, movem_index1[dmask]) = get_long (srca); + srca += 4; + dmask = movem_next[dmask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + while (amask) + { + m68k_areg (regs, movem_index1[amask]) = get_long (srca); + srca += 4; + amask = movem_next[amask]; + count_cycles += 8 * CYCLE_UNIT / 2; + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2 + count_cycles; } /* TRAPQ.L # */ uae_u32 REGPARAM2 CPUFUNC(op_4e40_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 15); -{{ uae_u32 src = srcreg; - m68k_incpc (2); - Exception (src + 32); -}}return 34 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 15); + { + { + uae_u32 src = srcreg; + m68k_incpc (2); + Exception (src + 32); + } + } + return 34 * CYCLE_UNIT / 2; } /* LINK.W An,#.W */ uae_u32 REGPARAM2 CPUFUNC(op_4e50_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr olda; - olda = m68k_areg (regs, 7) - 4; - m68k_areg (regs, 7) = olda; -{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - put_long (olda, src); - m68k_areg (regs, srcreg) = (m68k_areg (regs, 7)); - m68k_areg (regs, 7) += offs; -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr olda; + olda = m68k_areg (regs, 7) - 4; + m68k_areg (regs, 7) = olda; + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + put_long (olda, src); + m68k_areg (regs, srcreg) = (m68k_areg (regs, 7)); + m68k_areg (regs, 7) += offs; + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* UNLK.L An */ uae_u32 REGPARAM2 CPUFUNC(op_4e58_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uae_s32 src = m68k_areg (regs, srcreg); - m68k_areg (regs, 7) = src; -{ uaecptr olda; - olda = m68k_areg (regs, 7); -{ uae_s32 old = get_long (olda); - m68k_areg (regs, 7) += 4; - m68k_areg (regs, srcreg) = (old); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s32 src = m68k_areg (regs, srcreg); + m68k_areg (regs, 7) = src; + { + uaecptr olda; + olda = m68k_areg (regs, 7); + { + uae_s32 old = get_long (olda); + m68k_areg (regs, 7) += 4; + m68k_areg (regs, srcreg) = (old); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* MVR2USP.L An */ uae_u32 REGPARAM2 CPUFUNC(op_4e60_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s32 src = m68k_areg (regs, srcreg); - regs.usp = src; -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s32 src = m68k_areg (regs, srcreg); + regs.usp = src; + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* MVUSP2R.L An */ uae_u32 REGPARAM2 CPUFUNC(op_4e68_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ m68k_areg (regs, srcreg) = (regs.usp); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + m68k_areg (regs, srcreg) = (regs.usp); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* RESET.L */ uae_u32 REGPARAM2 CPUFUNC(op_4e70_4)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ cpureset (); - m68k_incpc (2); -}}return 132 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + cpureset (); + m68k_incpc (2); + } + } + return 132 * CYCLE_UNIT / 2; } /* NOP.L */ uae_u32 REGPARAM2 CPUFUNC(op_4e71_4)(uae_u32 opcode, struct regstruct ®s) { -{} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + {} m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* STOP.L #.W */ uae_u32 REGPARAM2 CPUFUNC(op_4e72_4)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 src = get_iword (2); - regs.sr = src; - MakeFromSR(regs); - m68k_setstopped (); - m68k_incpc (4); -}}}return 8 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_iword (2); + regs.sr = src; + MakeFromSR(regs); + m68k_setstopped (); + m68k_incpc (4); + } + } + } + return 8 * CYCLE_UNIT / 2; } /* RTE.L */ uae_u32 REGPARAM2 CPUFUNC(op_4e73_4)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{ uae_u16 newsr; uae_u32 newpc; - for (;;) { - uaecptr a = m68k_areg (regs, 7); - uae_u16 sr = get_word (a); - uae_u32 pc = get_long (a + 2); - uae_u16 format = get_word (a + 2 + 4); - int frame = format >> 12; - int offset = 8; - newsr = sr; newpc = pc; - if (frame == 0x0) { m68k_areg (regs, 7) += offset; break; } - else if (frame == 0x1) { m68k_areg (regs, 7) += offset; } - else if (frame == 0x2) { m68k_areg (regs, 7) += offset + 4; break; } - else if (frame == 0x8) { m68k_areg (regs, 7) += offset + 50; break; } - else if (frame == 0x9) { m68k_areg (regs, 7) += offset + 12; break; } - else if (frame == 0xa) { m68k_areg (regs, 7) += offset + 24; break; } - else if (frame == 0xb) { m68k_areg (regs, 7) += offset + 84; break; } - else { m68k_areg (regs, 7) += offset; Exception (14); return 4 * CYCLE_UNIT / 2; } - regs.sr = newsr; - MakeFromSR(regs); -} - regs.sr = newsr; - MakeFromSR(regs); - if (newpc & 1) { - exception3i (0x4E73, newpc); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (newpc); -}}return 24 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + uae_u16 newsr; + uae_u32 newpc; + for (;;) + { + uaecptr a = m68k_areg (regs, 7); + uae_u16 sr = get_word (a); + uae_u32 pc = get_long (a + 2); + uae_u16 format = get_word (a + 2 + 4); + int frame = format >> 12; + int offset = 8; + newsr = sr; + newpc = pc; + if (frame == 0x0) + { + m68k_areg (regs, 7) += offset; + break; + } + else if (frame == 0x1) + { + m68k_areg (regs, 7) += offset; + } + else if (frame == 0x2) + { + m68k_areg (regs, 7) += offset + 4; + break; + } + else if (frame == 0x8) + { + m68k_areg (regs, 7) += offset + 50; + break; + } + else if (frame == 0x9) + { + m68k_areg (regs, 7) += offset + 12; + break; + } + else if (frame == 0xa) + { + m68k_areg (regs, 7) += offset + 24; + break; + } + else if (frame == 0xb) + { + m68k_areg (regs, 7) += offset + 84; + break; + } + else + { + m68k_areg (regs, 7) += offset; + Exception (14); + return 4 * CYCLE_UNIT / 2; + } + regs.sr = newsr; + MakeFromSR(regs); + } + regs.sr = newsr; + MakeFromSR(regs); + if (newpc & 1) + { + exception3i (0x4E73, newpc); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (newpc); + } + } + return 24 * CYCLE_UNIT / 2; } /* RTD.L #.W */ uae_u32 REGPARAM2 CPUFUNC(op_4e74_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr pca; - pca = m68k_areg (regs, 7); -{ uae_s32 pc = get_long (pca); - m68k_areg (regs, 7) += 4; -{ uae_s16 offs = get_iword (2); - m68k_areg (regs, 7) += offs; - if (pc & 1) { - exception3i (0x4E74, pc); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (pc); -}}}}return 20 * CYCLE_UNIT / 2; + { + { + uaecptr pca; + pca = m68k_areg (regs, 7); + { + uae_s32 pc = get_long (pca); + m68k_areg (regs, 7) += 4; + { + uae_s16 offs = get_iword (2); + m68k_areg (regs, 7) += offs; + if (pc & 1) + { + exception3i (0x4E74, pc); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (pc); + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* RTS.L */ uae_u32 REGPARAM2 CPUFUNC(op_4e75_4)(uae_u32 opcode, struct regstruct ®s) { -{ uaecptr pc = m68k_getpc (); - m68k_do_rts (); - if (m68k_getpc () & 1) { - uaecptr faultpc = m68k_getpc (); - m68k_setpc (pc); - exception3i (0x4E75, faultpc); - return 8 * CYCLE_UNIT / 2; - } -}return 16 * CYCLE_UNIT / 2; + { + uaecptr pc = m68k_getpc (); + m68k_do_rts (); + if (m68k_getpc () & 1) + { + uaecptr faultpc = m68k_getpc (); + m68k_setpc (pc); + exception3i (0x4E75, faultpc); + return 8 * CYCLE_UNIT / 2; + } + } + return 16 * CYCLE_UNIT / 2; } /* TRAPV.L */ uae_u32 REGPARAM2 CPUFUNC(op_4e76_4)(uae_u32 opcode, struct regstruct ®s) { -{ m68k_incpc (2); - if (GET_VFLG ()) { - Exception (7); - return 4 * CYCLE_UNIT / 2; - } -}return 4 * CYCLE_UNIT / 2; + { + m68k_incpc (2); + if (GET_VFLG ()) + { + Exception (7); + return 4 * CYCLE_UNIT / 2; + } + } + return 4 * CYCLE_UNIT / 2; } /* RTR.L */ uae_u32 REGPARAM2 CPUFUNC(op_4e77_4)(uae_u32 opcode, struct regstruct ®s) { -{ uaecptr oldpc = m68k_getpc (); - MakeSR (regs); -{ uaecptr sra; - sra = m68k_areg (regs, 7); -{ uae_s16 sr = get_word (sra); - m68k_areg (regs, 7) += 2; -{ uaecptr pca; - pca = m68k_areg (regs, 7); -{ uae_s32 pc = get_long (pca); - m68k_areg (regs, 7) += 4; - regs.sr &= 0xFF00; sr &= 0xFF; - regs.sr |= sr; - m68k_setpc (pc); - MakeFromSR(regs); - if (m68k_getpc () & 1) { - uaecptr faultpc = m68k_getpc (); - m68k_setpc (oldpc); - exception3i (0x4E77, faultpc); - return 8 * CYCLE_UNIT / 2; - } -}}}}}return 20 * CYCLE_UNIT / 2; + { + uaecptr oldpc = m68k_getpc (); + MakeSR (regs); + { + uaecptr sra; + sra = m68k_areg (regs, 7); + { + uae_s16 sr = get_word (sra); + m68k_areg (regs, 7) += 2; + { + uaecptr pca; + pca = m68k_areg (regs, 7); + { + uae_s32 pc = get_long (pca); + m68k_areg (regs, 7) += 4; + regs.sr &= 0xFF00; + sr &= 0xFF; + regs.sr |= sr; + m68k_setpc (pc); + MakeFromSR(regs); + if (m68k_getpc () & 1) + { + uaecptr faultpc = m68k_getpc (); + m68k_setpc (oldpc); + exception3i (0x4E77, faultpc); + return 8 * CYCLE_UNIT / 2; + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2; } /* MOVEC2.L #.W */ uae_u32 REGPARAM2 CPUFUNC(op_4e7a_4)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 src = get_iword (2); -{ int regno = (src >> 12) & 15; - uae_u32 *regp = regs.regs + regno; - if (! m68k_movec2(src & 0xFFF, regp)) goto l_40775; -}}}} m68k_incpc (4); -l_40775: ; -return 8 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_iword (2); + { + int regno = (src >> 12) & 15; + uae_u32 *regp = regs.regs + regno; + if (! m68k_movec2(src & 0xFFF, regp)) goto l_40775; + } + } + } + } + m68k_incpc (4); +l_40775: + ; + return 8 * CYCLE_UNIT / 2; } /* MOVE2C.L #.W */ uae_u32 REGPARAM2 CPUFUNC(op_4e7b_4)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uae_s16 src = get_iword (2); -{ int regno = (src >> 12) & 15; - uae_u32 *regp = regs.regs + regno; - if (! m68k_move2c(src & 0xFFF, regp)) goto l_40776; -}}}} m68k_incpc (4); -l_40776: ; -return 8 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uae_s16 src = get_iword (2); + { + int regno = (src >> 12) & 15; + uae_u32 *regp = regs.regs + regno; + if (! m68k_move2c(src & 0xFFF, regp)) goto l_40776; + } + } + } + } + m68k_incpc (4); +l_40776: + ; + return 8 * CYCLE_UNIT / 2; } /* JSR.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4e90_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uaecptr oldpc = m68k_getpc () + 2; - if (srca & 1) { - exception3i (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - m68k_areg (regs, 7) -= 4; - put_long (m68k_areg (regs, 7), oldpc); -}}}return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uaecptr oldpc = m68k_getpc () + 2; + if (srca & 1) + { + exception3i (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + m68k_areg (regs, 7) -= 4; + put_long (m68k_areg (regs, 7), oldpc); + } + } + } + return 16 * CYCLE_UNIT / 2; } /* JSR.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ea8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uaecptr oldpc = m68k_getpc () + 4; - if (srca & 1) { - exception3i (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - m68k_areg (regs, 7) -= 4; - put_long (m68k_areg (regs, 7), oldpc); -}}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uaecptr oldpc = m68k_getpc () + 4; + if (srca & 1) + { + exception3i (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + m68k_areg (regs, 7) -= 4; + put_long (m68k_areg (regs, 7), oldpc); + } + } + } + return 18 * CYCLE_UNIT / 2; } /* JSR.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4eb0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uaecptr oldpc = m68k_getpc () + 4; - if (srca & 1) { - exception3i (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - m68k_areg (regs, 7) -= 4; - put_long (m68k_areg (regs, 7), oldpc); -}}}return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uaecptr oldpc = m68k_getpc () + 4; + if (srca & 1) + { + exception3i (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + m68k_areg (regs, 7) -= 4; + put_long (m68k_areg (regs, 7), oldpc); + } + } + } + return 22 * CYCLE_UNIT / 2; } /* JSR.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4eb8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uaecptr oldpc = m68k_getpc () + 4; - if (srca & 1) { - exception3i (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - m68k_areg (regs, 7) -= 4; - put_long (m68k_areg (regs, 7), oldpc); -}}}return 18 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uaecptr oldpc = m68k_getpc () + 4; + if (srca & 1) + { + exception3i (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + m68k_areg (regs, 7) -= 4; + put_long (m68k_areg (regs, 7), oldpc); + } + } + } + return 18 * CYCLE_UNIT / 2; } /* JSR.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4eb9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{ uaecptr oldpc = m68k_getpc () + 6; - if (srca & 1) { - exception3i (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - m68k_areg (regs, 7) -= 4; - put_long (m68k_areg (regs, 7), oldpc); -}}}return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uaecptr oldpc = m68k_getpc () + 6; + if (srca & 1) + { + exception3i (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + m68k_areg (regs, 7) -= 4; + put_long (m68k_areg (regs, 7), oldpc); + } + } + } + return 20 * CYCLE_UNIT / 2; } /* JSR.L (d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_4eba_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uaecptr oldpc = m68k_getpc () + 4; - if (srca & 1) { - exception3i (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - m68k_areg (regs, 7) -= 4; - put_long (m68k_areg (regs, 7), oldpc); -}}}return 18 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uaecptr oldpc = m68k_getpc () + 4; + if (srca & 1) + { + exception3i (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + m68k_areg (regs, 7) -= 4; + put_long (m68k_areg (regs, 7), oldpc); + } + } + } + return 18 * CYCLE_UNIT / 2; } /* JSR.L (d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4ebb_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uaecptr oldpc = m68k_getpc () + 4; - if (srca & 1) { - exception3i (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); - m68k_areg (regs, 7) -= 4; - put_long (m68k_areg (regs, 7), oldpc); -}}}return 22 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uaecptr oldpc = m68k_getpc () + 4; + if (srca & 1) + { + exception3i (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + m68k_areg (regs, 7) -= 4; + put_long (m68k_areg (regs, 7), oldpc); + } + } + } + return 22 * CYCLE_UNIT / 2; } /* JMP.L (An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ed0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - if (srca & 1) { - exception3i (opcode, srca); - return 4 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); -}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + if (srca & 1) + { + exception3i (opcode, srca); + return 4 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + } + } + return 8 * CYCLE_UNIT / 2; } /* JMP.L (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_4ee8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); - if (srca & 1) { - exception3i (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); -}}return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + if (srca & 1) + { + exception3i (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + } + } + return 10 * CYCLE_UNIT / 2; } /* JMP.L (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4ef0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); - if (srca & 1) { - exception3i (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); -}}return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + if (srca & 1) + { + exception3i (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + } + } + return 14 * CYCLE_UNIT / 2; } /* JMP.L (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_4ef8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); - if (srca & 1) { - exception3i (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); -}}return 10 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + if (srca & 1) + { + exception3i (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + } + } + return 10 * CYCLE_UNIT / 2; } /* JMP.L (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_4ef9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); - if (srca & 1) { - exception3i (opcode, srca); - return 12 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); -}}return 12 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + if (srca & 1) + { + exception3i (opcode, srca); + return 12 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + } + } + return 12 * CYCLE_UNIT / 2; } /* JMP.L (d16,PC) */ uae_u32 REGPARAM2 CPUFUNC(op_4efa_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); - if (srca & 1) { - exception3i (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); -}}return 10 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + if (srca & 1) + { + exception3i (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + } + } + return 10 * CYCLE_UNIT / 2; } /* JMP.L (d8,PC,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_4efb_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); - if (srca & 1) { - exception3i (opcode, srca); - return 8 * CYCLE_UNIT / 2; - } - m68k_setpc (srca); -}}return 14 * CYCLE_UNIT / 2; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + if (srca & 1) + { + exception3i (opcode, srca); + return 8 * CYCLE_UNIT / 2; + } + m68k_setpc (srca); + } + } + return 14 * CYCLE_UNIT / 2; } /* ADDQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_5000_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* ADDQ.B #,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5010_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ADDQ.B #,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_5018_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ADDQ.B #,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5020_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* ADDQ.B #,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_5028_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ADDQ.B #,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_5030_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* ADDQ.B #,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_5038_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ADDQ.B #,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_5039_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* ADDQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_5040_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* ADDAQ.W #,An */ uae_u32 REGPARAM2 CPUFUNC(op_5048_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ADDQ.W #,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5050_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ADDQ.W #,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_5058_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ADDQ.W #,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5060_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* ADDQ.W #,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_5068_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ADDQ.W #,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_5070_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* ADDQ.W #,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_5078_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ADDQ.W #,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_5079_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* ADDQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_5080_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ADDAQ.L #,An */ uae_u32 REGPARAM2 CPUFUNC(op_5088_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ADDQ.L #,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5090_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* ADDQ.L #,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_5098_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } #endif @@ -14165,2819 +20932,4490 @@ return 20 * CYCLE_UNIT / 2; /* ADDQ.L #,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_50a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2; } /* ADDQ.L #,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_50a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* ADDQ.L #,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_50b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2; } /* ADDQ.L #,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_50b8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* ADDQ.L #,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_50b9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* Scc.B Dn (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50c0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* DBcc.W Dn,#.W (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50c8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 0)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 0)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* Scc.B (An) (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B -(An) (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (T) */ uae_u32 REGPARAM2 CPUFUNC(op_50f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 0) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* SUBQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_5100_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* SUBQ.B #,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5110_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* SUBQ.B #,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_5118_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* SUBQ.B #,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5120_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* SUBQ.B #,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_5128_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* SUBQ.B #,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_5130_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* SUBQ.B #,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_5138_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* SUBQ.B #,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_5139_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* SUBQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_5140_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* SUBAQ.W #,An */ uae_u32 REGPARAM2 CPUFUNC(op_5148_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* SUBQ.W #,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5150_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* SUBQ.W #,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_5158_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* SUBQ.W #,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5160_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* SUBQ.W #,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_5168_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* SUBQ.W #,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_5170_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* SUBQ.W #,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_5178_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* SUBQ.W #,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_5179_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* SUBQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_5180_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* SUBAQ.L #,An */ uae_u32 REGPARAM2 CPUFUNC(op_5188_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* SUBQ.L #,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_5190_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* SUBQ.L #,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_5198_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* SUBQ.L #,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_51a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2; } /* SUBQ.L #,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_51a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* SUBQ.L #,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_51b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2; } /* SUBQ.L #,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_51b8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* SUBQ.L #,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_51b9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; -{{ uae_u32 src = srcreg; -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + { + { + uae_u32 src = srcreg; + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* Scc.B Dn (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51c0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* DBcc.W Dn,#.W (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51c8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 1)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 1)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* Scc.B (An) (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B -(An) (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (F) */ uae_u32 REGPARAM2 CPUFUNC(op_51f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 1) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* Scc.B Dn (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52c0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* DBcc.W Dn,#.W (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52c8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 2)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 2)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* Scc.B (An) (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B -(An) (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_52f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 2) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* Scc.B Dn (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53c0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* DBcc.W Dn,#.W (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53c8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 3)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 3)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* Scc.B (An) (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B -(An) (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_53f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 3) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* Scc.B Dn (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54c0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* DBcc.W Dn,#.W (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54c8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 4)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 4)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* Scc.B (An) (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B -(An) (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_54f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 4) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* Scc.B Dn (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55c0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* DBcc.W Dn,#.W (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55c8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 5)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 5)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* Scc.B (An) (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B -(An) (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_55f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 5) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* Scc.B Dn (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56c0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* DBcc.W Dn,#.W (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56c8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 6)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 6)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* Scc.B (An) (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B -(An) (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_56f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 6) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* Scc.B Dn (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57c0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* DBcc.W Dn,#.W (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57c8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 7)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 7)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* Scc.B (An) (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B -(An) (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_57f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 7) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* Scc.B Dn (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58c0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* DBcc.W Dn,#.W (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58c8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 8)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 8)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* Scc.B (An) (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B -(An) (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_58f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 8) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* Scc.B Dn (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59c0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* DBcc.W Dn,#.W (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59c8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 9)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 9)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* Scc.B (An) (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B -(An) (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_59f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 9) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* Scc.B Dn (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5ac0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* DBcc.W Dn,#.W (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5ac8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 10)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 10)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* Scc.B (An) (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5ad0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5ad8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B -(An) (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5ae0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5ae8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5af0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5af8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_5af9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 10) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* Scc.B Dn (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bc0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* DBcc.W Dn,#.W (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bc8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 11)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 11)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* Scc.B (An) (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bd0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bd8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B -(An) (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5be0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5be8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bf0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bf8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_5bf9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 11) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* Scc.B Dn (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cc0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* DBcc.W Dn,#.W (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cc8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 12)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 12)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* Scc.B (An) (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cd0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cd8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B -(An) (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5ce0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5ce8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cf0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cf8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_5cf9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 12) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* Scc.B Dn (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5dc0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* DBcc.W Dn,#.W (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5dc8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 13)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 13)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* Scc.B (An) (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5dd0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5dd8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B -(An) (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5de0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5de8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5df0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5df8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_5df9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 13) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* Scc.B Dn (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ec0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* DBcc.W Dn,#.W (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ec8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 14)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 14)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* Scc.B (An) (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ed0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ed8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B -(An) (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ee0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ee8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ef0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ef8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_5ef9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 14) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* Scc.B Dn (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5fc0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{{{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + { + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + count_cycles += ((val ? 2 : 0)) * CYCLE_UNIT / 2; + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* DBcc.W Dn,#.W (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5fc8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 offs = get_iword (2); - uaecptr oldpc = m68k_getpc (); - count_cycles += 2 * CYCLE_UNIT / 2; - if (!cctrue (regs.ccrflags, 15)) { - m68k_incpc ((uae_s32)offs + 2); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); - if (src) { - if (offs & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); - return 10 * CYCLE_UNIT / 2; - } - return 10 * CYCLE_UNIT / 2 + count_cycles; - } - count_cycles += 4 * CYCLE_UNIT / 2; - } else { - count_cycles += 2 * CYCLE_UNIT / 2; - } - m68k_setpc (oldpc + 4); -}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 offs = get_iword (2); + uaecptr oldpc = m68k_getpc (); + count_cycles += 2 * CYCLE_UNIT / 2; + if (!cctrue (regs.ccrflags, 15)) + { + m68k_incpc ((uae_s32)offs + 2); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff); + if (src) + { + if (offs & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)offs + 2); + return 10 * CYCLE_UNIT / 2; + } + return 10 * CYCLE_UNIT / 2 + count_cycles; + } + count_cycles += 4 * CYCLE_UNIT / 2; + } + else + { + count_cycles += 2 * CYCLE_UNIT / 2; + } + m68k_setpc (oldpc + 4); + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* Scc.B (An) (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5fd0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B (An)+ (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5fd8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* Scc.B -(An) (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5fe0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; - m68k_areg (regs, srcreg) = srca; -{{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + { + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* Scc.B (d16,An) (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5fe8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (d8,An,Xn) (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5ff0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* Scc.B (xxx).W (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5ff8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* Scc.B (xxx).L (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_5ff9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); -{{ int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; - put_byte (srca, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + { + { + int val = cctrue (regs.ccrflags, 15) ? 0xff : 0; + put_byte (srca, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* Bcc.W #.W (T) */ uae_u32 REGPARAM2 CPUFUNC(op_6000_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 0)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 10 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 12 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 0)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 10 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 12 * CYCLE_UNIT / 2; } /* BccQ.B # (T) */ uae_u32 REGPARAM2 CPUFUNC(op_6001_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 0)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 0)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.L #.L (T) */ uae_u32 REGPARAM2 CPUFUNC(op_60ff_4)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 0)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); -}return 8 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 0)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + } + return 8 * CYCLE_UNIT / 2; } /* BSR.W #.W */ uae_u32 REGPARAM2 CPUFUNC(op_6100_4)(uae_u32 opcode, struct regstruct ®s) { -{ uae_s32 s; -{ uae_s16 src = get_iword (2); - s = (uae_s32)src + 2; - if (src & 1) { - exception3 (opcode, m68k_getpc () + s, 0, 1, m68k_getpc () + s); - return 8 * CYCLE_UNIT / 2; - } - m68k_do_bsr (regs, m68k_getpc () + 4, s); -}}return 18 * CYCLE_UNIT / 2; + { + uae_s32 s; + { + uae_s16 src = get_iword (2); + s = (uae_s32)src + 2; + if (src & 1) + { + exception3 (opcode, m68k_getpc () + s, 0, 1, m68k_getpc () + s); + return 8 * CYCLE_UNIT / 2; + } + m68k_do_bsr (regs, m68k_getpc () + 4, s); + } + } + return 18 * CYCLE_UNIT / 2; } /* BSRQ.B # */ uae_u32 REGPARAM2 CPUFUNC(op_6101_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{ uae_s32 s; -{ uae_u32 src = srcreg; - s = (uae_s32)src + 2; - if (src & 1) { - exception3 (opcode, m68k_getpc () + s, 0, 1, m68k_getpc () + s); - return 4 * CYCLE_UNIT / 2; - } - m68k_do_bsr (regs, m68k_getpc () + 2, s); -}}return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + uae_s32 s; + { + uae_u32 src = srcreg; + s = (uae_s32)src + 2; + if (src & 1) + { + exception3 (opcode, m68k_getpc () + s, 0, 1, m68k_getpc () + s); + return 4 * CYCLE_UNIT / 2; + } + m68k_do_bsr (regs, m68k_getpc () + 2, s); + } + } + return 18 * CYCLE_UNIT / 2; } /* BSR.L #.L */ uae_u32 REGPARAM2 CPUFUNC(op_61ff_4)(uae_u32 opcode, struct regstruct ®s) { -{ uae_s32 s; - uae_u32 src = 0xffffffff; - s = (uae_s32)src + 2; - if (src & 1) { - exception3 (opcode, m68k_getpc () + s, 0, 1, m68k_getpc () + s); - return 4 * CYCLE_UNIT / 2; - } - m68k_do_bsr (regs, m68k_getpc () + 2, s); -}return 18 * CYCLE_UNIT / 2; + { + uae_s32 s; + uae_u32 src = 0xffffffff; + s = (uae_s32)src + 2; + if (src & 1) + { + exception3 (opcode, m68k_getpc () + s, 0, 1, m68k_getpc () + s); + return 4 * CYCLE_UNIT / 2; + } + m68k_do_bsr (regs, m68k_getpc () + 2, s); + } + return 18 * CYCLE_UNIT / 2; } /* Bcc.W #.W (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_6200_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 2)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 10 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 12 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 2)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 10 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 12 * CYCLE_UNIT / 2; } /* BccQ.B # (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_6201_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 2)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 2)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.L #.L (HI) */ uae_u32 REGPARAM2 CPUFUNC(op_62ff_4)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 2)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); -}return 8 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 2)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.W #.W (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_6300_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 3)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 10 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 12 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 3)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 10 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 12 * CYCLE_UNIT / 2; } /* BccQ.B # (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_6301_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 3)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 3)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 8 * CYCLE_UNIT / 2; } #endif @@ -16986,4750 +25424,7150 @@ didnt_jump:; /* Bcc.L #.L (LS) */ uae_u32 REGPARAM2 CPUFUNC(op_63ff_4)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 3)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); -}return 8 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 3)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.W #.W (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_6400_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 4)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 10 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 12 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 4)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 10 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 12 * CYCLE_UNIT / 2; } /* BccQ.B # (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_6401_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 4)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 4)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.L #.L (CC) */ uae_u32 REGPARAM2 CPUFUNC(op_64ff_4)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 4)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); -}return 8 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 4)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.W #.W (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_6500_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 5)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 10 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 12 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 5)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 10 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 12 * CYCLE_UNIT / 2; } /* BccQ.B # (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_6501_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 5)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 5)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.L #.L (CS) */ uae_u32 REGPARAM2 CPUFUNC(op_65ff_4)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 5)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); -}return 8 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 5)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.W #.W (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_6600_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 6)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 10 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 12 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 6)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 10 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 12 * CYCLE_UNIT / 2; } /* BccQ.B # (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_6601_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 6)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 6)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.L #.L (NE) */ uae_u32 REGPARAM2 CPUFUNC(op_66ff_4)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 6)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); -}return 8 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 6)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.W #.W (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_6700_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 7)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 10 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 12 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 7)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 10 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 12 * CYCLE_UNIT / 2; } /* BccQ.B # (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_6701_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 7)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 7)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.L #.L (EQ) */ uae_u32 REGPARAM2 CPUFUNC(op_67ff_4)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 7)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); -}return 8 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 7)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.W #.W (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_6800_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 8)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 10 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 12 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 8)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 10 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 12 * CYCLE_UNIT / 2; } /* BccQ.B # (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_6801_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 8)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 8)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.L #.L (VC) */ uae_u32 REGPARAM2 CPUFUNC(op_68ff_4)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 8)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); -}return 8 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 8)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.W #.W (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_6900_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 9)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 10 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 12 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 9)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 10 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 12 * CYCLE_UNIT / 2; } /* BccQ.B # (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_6901_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 9)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 9)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.L #.L (VS) */ uae_u32 REGPARAM2 CPUFUNC(op_69ff_4)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 9)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); -}return 8 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 9)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.W #.W (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_6a00_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 10)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 10 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 12 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 10)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 10 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 12 * CYCLE_UNIT / 2; } /* BccQ.B # (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_6a01_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 10)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 10)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.L #.L (PL) */ uae_u32 REGPARAM2 CPUFUNC(op_6aff_4)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 10)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); -}return 8 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 10)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.W #.W (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_6b00_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 11)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 10 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 12 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 11)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 10 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 12 * CYCLE_UNIT / 2; } /* BccQ.B # (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_6b01_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 11)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 11)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.L #.L (MI) */ uae_u32 REGPARAM2 CPUFUNC(op_6bff_4)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 11)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); -}return 8 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 11)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.W #.W (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_6c00_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 12)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 10 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 12 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 12)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 10 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 12 * CYCLE_UNIT / 2; } /* BccQ.B # (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_6c01_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 12)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 12)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.L #.L (GE) */ uae_u32 REGPARAM2 CPUFUNC(op_6cff_4)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 12)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); -}return 8 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 12)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.W #.W (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_6d00_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 13)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 10 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 12 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 13)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 10 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 12 * CYCLE_UNIT / 2; } /* BccQ.B # (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_6d01_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 13)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 13)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.L #.L (LT) */ uae_u32 REGPARAM2 CPUFUNC(op_6dff_4)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 13)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); -}return 8 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 13)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.W #.W (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_6e00_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 14)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 10 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 12 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 14)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 10 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 12 * CYCLE_UNIT / 2; } /* BccQ.B # (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_6e01_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 14)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 14)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.L #.L (GT) */ uae_u32 REGPARAM2 CPUFUNC(op_6eff_4)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 14)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); -}return 8 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 14)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.W #.W (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_6f00_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uae_s16 src = get_iword (2); - if (!cctrue (regs.ccrflags, 15)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 10 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (4); -}}return 12 * CYCLE_UNIT / 2; + { + { + uae_s16 src = get_iword (2); + if (!cctrue (regs.ccrflags, 15)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 10 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (4); + } + } + return 12 * CYCLE_UNIT / 2; } /* BccQ.B # (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_6f01_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); -{{ uae_u32 src = srcreg; - if (!cctrue (regs.ccrflags, 15)) goto didnt_jump; - if (src & 1) { - exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc ((uae_s32)src + 2); - return 10 * CYCLE_UNIT / 2; -didnt_jump:; - m68k_incpc (2); -}}return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + { + { + uae_u32 src = srcreg; + if (!cctrue (regs.ccrflags, 15)) goto didnt_jump; + if (src & 1) + { + exception3i (opcode, m68k_getpc () + 2 + (uae_s32)src); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc ((uae_s32)src + 2); + return 10 * CYCLE_UNIT / 2; +didnt_jump: + ; + m68k_incpc (2); + } + } + return 8 * CYCLE_UNIT / 2; } /* Bcc.L #.L (LE) */ uae_u32 REGPARAM2 CPUFUNC(op_6fff_4)(uae_u32 opcode, struct regstruct ®s) { -{ if (cctrue (regs.ccrflags, 15)) { - exception3i (opcode, m68k_getpc () + 1); - return 6 * CYCLE_UNIT / 2; - } - m68k_incpc (2); -}return 8 * CYCLE_UNIT / 2; + { + if (cctrue (regs.ccrflags, 15)) + { + exception3i (opcode, m68k_getpc () + 1); + return 6 * CYCLE_UNIT / 2; + } + m68k_incpc (2); + } + return 8 * CYCLE_UNIT / 2; } /* MOVEQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_7000_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_u32 src = srcreg; -{ CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); - m68k_incpc (2); -}}}return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_u32 src = srcreg; + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + m68k_incpc (2); + } + } + } + return 4 * CYCLE_UNIT / 2; } /* OR.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8000_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* OR.B (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8010_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* OR.B (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8018_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* OR.B -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8020_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* OR.B (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8028_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* OR.B (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8030_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* OR.B (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8038_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* OR.B (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8039_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* OR.B (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_803a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* OR.B (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_803b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* OR.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_803c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* OR.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8040_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* OR.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8050_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* OR.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8058_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* OR.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8060_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* OR.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8068_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* OR.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8070_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* OR.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8078_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* OR.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8079_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* OR.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_807a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* OR.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_807b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* OR.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_807c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* OR.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8080_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* OR.L (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8090_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* OR.L (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8098_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* OR.L -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (2); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (2); + return 16 * CYCLE_UNIT / 2; } /* OR.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* OR.L (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2; } /* OR.L (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80b8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* OR.L (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80b9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* OR.L (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80ba_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* OR.L (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80bb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2; } /* OR.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80bc_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* DIVU.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80c0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (2); - Exception (5); - return 4 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (2); - } -}}}return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (2); + Exception (5); + return 4 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (2); + } + } + } + } + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* DIVU.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80d0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (2); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (2); - } -}}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (2); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (2); + } + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* DIVU.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80d8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (2); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (2); - } -}}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (2); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (2); + } + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* DIVU.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80e0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (2); - Exception (5); - return 10 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (2); - } -}}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (2); + Exception (5); + return 10 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (2); + } + } + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* DIVU.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80e8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (4); - Exception (5); - return 12 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (4); - } -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (4); + Exception (5); + return 12 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (4); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* DIVU.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80f0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (4); - Exception (5); - return 14 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (4); - } -}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (4); + Exception (5); + return 14 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (4); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* DIVU.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80f8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (4); - Exception (5); - return 12 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (4); - } -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (4); + Exception (5); + return 12 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (4); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* DIVU.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80f9_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (6); - Exception (5); - return 16 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (6); - } -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (6); + Exception (5); + return 16 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (6); + } + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* DIVU.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80fa_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (4); - Exception (5); - return 12 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (4); - } -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (4); + Exception (5); + return 12 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (4); + } + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* DIVU.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80fb_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (4); - Exception (5); - return 14 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (4); - } -}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (4); + Exception (5); + return 14 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (4); + } + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* DIVU.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_80fc_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - CLEAR_CZNV (); - if (src == 0) { - SET_VFLG (1); - if (dst < 0) SET_NFLG (1); - m68k_incpc (4); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } else { - uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; - uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; - count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; - if (newv > 0xffff) { - SET_VFLG (1); - SET_NFLG (1); - } else { - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - m68k_incpc (4); - } -}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + CLEAR_CZNV (); + if (src == 0) + { + SET_VFLG (1); + if (dst < 0) SET_NFLG (1); + m68k_incpc (4); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + else + { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + count_cycles += ((getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4) * CYCLE_UNIT / 2; + if (newv > 0xffff) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + m68k_incpc (4); + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* SBCD.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_8100_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{ uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); - uae_u16 newv, tmp_newv; - int bcd = 0; - newv = tmp_newv = newv_hi + newv_lo; - if (newv_lo & 0xF0) { newv -= 6; bcd = 6; }; - if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG () ? 1 : 0)) & 0x100) > 0xFF) { newv -= 0x60; } - SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG () ? 1 : 0)) & 0x300) > 0xFF); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); + uae_u16 newv, tmp_newv; + int bcd = 0; + newv = tmp_newv = newv_hi + newv_lo; + if (newv_lo & 0xF0) + { + newv -= 6; + bcd = 6; + }; + if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG () ? 1 : 0)) & 0x100) > 0xFF) + { + newv -= 0x60; + } + SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG () ? 1 : 0)) & 0x300) > 0xFF); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* SBCD.B -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_8108_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{ uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); - uae_u16 newv, tmp_newv; - int bcd = 0; - newv = tmp_newv = newv_hi + newv_lo; - if (newv_lo & 0xF0) { newv -= 6; bcd = 6; }; - if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG () ? 1 : 0)) & 0x100) > 0xFF) { newv -= 0x60; } - SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG () ? 1 : 0)) & 0x300) > 0xFF); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); - put_byte (dsta, newv); -}}}}}} m68k_incpc (2); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); + uae_u16 newv, tmp_newv; + int bcd = 0; + newv = tmp_newv = newv_hi + newv_lo; + if (newv_lo & 0xF0) + { + newv -= 6; + bcd = 6; + }; + if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG () ? 1 : 0)) & 0x100) > 0xFF) + { + newv -= 0x60; + } + SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG () ? 1 : 0)) & 0x300) > 0xFF); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0); + put_byte (dsta, newv); + } + } + } + } + } + } + m68k_incpc (2); + return 18 * CYCLE_UNIT / 2; } /* OR.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_8110_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* OR.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_8118_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* OR.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_8120_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* OR.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_8128_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* OR.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_8130_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* OR.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_8138_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* OR.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_8139_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* OR.W Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_8150_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* OR.W Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_8158_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* OR.W Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_8160_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* OR.W Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_8168_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* OR.W Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_8170_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* OR.W Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_8178_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* OR.W Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_8179_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s16 dst = get_word (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s16 dst = get_word (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* OR.L Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_8190_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* OR.L Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_8198_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* OR.L Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_81a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2; } /* OR.L Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_81a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* OR.L Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_81b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2; } /* OR.L Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_81b8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* OR.L Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_81b9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s32 dst = get_long (dsta); - src |= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s32 dst = get_long (dsta); + src |= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* DIVS.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81c0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (2); - Exception (5); - return 4 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (2); -}}}return 4 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (2); + Exception (5); + return 4 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (2); + } + } + } + return 4 * CYCLE_UNIT / 2 + count_cycles; } /* DIVS.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81d0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (2); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (2); -}}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (2); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (2); + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* DIVS.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81d8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (2); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (2); -}}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (2); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (2); + } + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* DIVS.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81e0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (2); - Exception (5); - return 10 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (2); -}}}}return 10 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (2); + Exception (5); + return 10 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (2); + } + } + } + } + return 10 * CYCLE_UNIT / 2 + count_cycles; } /* DIVS.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81e8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (4); - Exception (5); - return 12 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (4); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (4); + Exception (5); + return 12 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (4); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* DIVS.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81f0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (4); - Exception (5); - return 14 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (4); -}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (4); + Exception (5); + return 14 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (4); + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* DIVS.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81f8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (4); - Exception (5); - return 12 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (4); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (4); + Exception (5); + return 12 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (4); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* DIVS.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81f9_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (6); - Exception (5); - return 16 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (6); -}}}}return 16 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (6); + Exception (5); + return 16 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (6); + } + } + } + } + return 16 * CYCLE_UNIT / 2 + count_cycles; } /* DIVS.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81fa_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (4); - Exception (5); - return 12 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (4); -}}}}return 12 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (4); + Exception (5); + return 12 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (4); + } + } + } + } + return 12 * CYCLE_UNIT / 2 + count_cycles; } /* DIVS.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81fb_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (4); - Exception (5); - return 14 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (4); -}}}}return 14 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (4); + Exception (5); + return 14 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (4); + } + } + } + } + return 14 * CYCLE_UNIT / 2 + count_cycles; } /* DIVS.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_81fc_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - if (src == 0) { - SET_VFLG (1); - SET_ZFLG (1); - m68k_incpc (4); - Exception (5); - return 8 * CYCLE_UNIT / 2; - } - CLEAR_CZNV (); - count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; - if (dst == 0x80000000 && src == -1) { - SET_VFLG (1); - SET_NFLG (1); - } else { - uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; - uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; - if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { - SET_VFLG (1); - SET_NFLG (1); - } else { - if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_NFLG (((uae_s16)(newv)) < 0); - newv = (newv & 0xffff) | ((uae_u32)rem << 16); - m68k_dreg (regs, dstreg) = (newv); - } - } - m68k_incpc (4); -}}}return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + if (src == 0) + { + SET_VFLG (1); + SET_ZFLG (1); + m68k_incpc (4); + Exception (5); + return 8 * CYCLE_UNIT / 2; + } + CLEAR_CZNV (); + count_cycles += ((getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4) * CYCLE_UNIT / 2; + if (dst == 0x80000000 && src == -1) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) + { + SET_VFLG (1); + SET_NFLG (1); + } + else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg (regs, dstreg) = (newv); + } + } + m68k_incpc (4); + } + } + } + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* SUB.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9000_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* SUB.B (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9010_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* SUB.B (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9018_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* SUB.B -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9020_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* SUB.B (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9028_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* SUB.B (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9030_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* SUB.B (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9038_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* SUB.B (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9039_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* SUB.B (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_903a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* SUB.B (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_903b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* SUB.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_903c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* SUB.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9040_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* SUB.W An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9048_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* SUB.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9050_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* SUB.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9058_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* SUB.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9060_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* SUB.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9068_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* SUB.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9070_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* SUB.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9078_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* SUB.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9079_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* SUB.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_907a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* SUB.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_907b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* SUB.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_907c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* SUB.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9080_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* SUB.L An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9088_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* SUB.L (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9090_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* SUB.L (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9098_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* SUB.L -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (2); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 16 * CYCLE_UNIT / 2; } /* SUB.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* SUB.L (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2; } /* SUB.L (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90b8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* SUB.L (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90b9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* SUB.L (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90ba_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* SUB.L (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90bb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2; } /* SUB.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_90bc_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* SUBA.W Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_90c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* SUBA.W An,An */ uae_u32 REGPARAM2 CPUFUNC(op_90c8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* SUBA.W (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_90d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* SUBA.W (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_90d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* SUBA.W -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_90e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* SUBA.W (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_90e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* SUBA.W (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_90f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* SUBA.W (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_90f8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* SUBA.W (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_90f9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* SUBA.W (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_90fa_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* SUBA.W (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_90fb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* SUBA.W #.W,An */ uae_u32 REGPARAM2 CPUFUNC(op_90fc_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* SUBX.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9100_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* SUBX.B -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9108_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{ uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 18 * CYCLE_UNIT / 2; } /* SUB.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9110_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* SUB.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_9118_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* SUB.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9120_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* SUB.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_9128_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* SUB.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_9130_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* SUB.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_9138_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* SUB.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_9139_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* SUBX.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9140_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* SUBX.W -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9148_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; -{ uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (2); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + { + uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 18 * CYCLE_UNIT / 2; } /* SUB.W Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9150_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* SUB.W Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_9158_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* SUB.W Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9160_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* SUB.W Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_9168_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* SUB.W Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_9170_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* SUB.W Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_9178_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* SUB.W Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_9179_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* SUBX.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_9180_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* SUBX.L -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9188_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; -{ uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (2); -return 30 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + { + uae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 30 * CYCLE_UNIT / 2; } /* SUB.L Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_9190_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* SUB.L Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_9198_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* SUB.L Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_91a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2; } /* SUB.L Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_91a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* SUB.L Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_91b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2; } /* SUB.L Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_91b8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* SUB.L Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_91b9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* SUBA.L Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_91c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* SUBA.L An,An */ uae_u32 REGPARAM2 CPUFUNC(op_91c8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* SUBA.L (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_91d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* SUBA.L (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_91d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* SUBA.L -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_91e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 16 * CYCLE_UNIT / 2; } /* SUBA.L (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_91e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* SUBA.L (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_91f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2; } /* SUBA.L (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_91f8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* SUBA.L (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_91f9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* SUBA.L (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_91fa_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* SUBA.L (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_91fb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2; } /* SUBA.L #.L,An */ uae_u32 REGPARAM2 CPUFUNC(op_91fc_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst - src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst - src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* CMP.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b000_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CMP.B (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b010_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* CMP.B (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b018_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* CMP.B -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b020_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* CMP.B (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b028_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* CMP.B (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b030_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* CMP.B (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b038_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* CMP.B (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b039_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* CMP.B (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b03a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* CMP.B (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b03b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* CMP.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b03c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* CMP.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b040_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CMP.W An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b048_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CMP.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b050_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* CMP.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b058_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* CMP.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b060_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* CMP.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b068_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* CMP.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b070_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* CMP.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b078_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* CMP.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b079_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* CMP.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b07a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* CMP.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b07b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* CMP.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b07c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* CMP.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b080_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* CMP.L An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b088_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* CMP.L (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b090_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* CMP.L (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b098_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* CMP.L -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 16 * CYCLE_UNIT / 2; } #endif @@ -21738,4669 +32576,7161 @@ return 16 * CYCLE_UNIT / 2; /* CMP.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* CMP.L (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2; } /* CMP.L (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0b8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* CMP.L (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0b9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* CMP.L (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0ba_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* CMP.L (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0bb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2; } /* CMP.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b0bc_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (6); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (6); + return 14 * CYCLE_UNIT / 2; } /* CMPA.W Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_b0c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* CMPA.W An,An */ uae_u32 REGPARAM2 CPUFUNC(op_b0c8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* CMPA.W (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_b0d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* CMPA.W (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_b0d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* CMPA.W -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_b0e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* CMPA.W (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_b0e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* CMPA.W (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_b0f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* CMPA.W (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_b0f8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* CMPA.W (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_b0f9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 18 * CYCLE_UNIT / 2; } /* CMPA.W (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_b0fa_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* CMPA.W (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_b0fb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* CMPA.W #.W,An */ uae_u32 REGPARAM2 CPUFUNC(op_b0fc_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (4); -return 10 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (4); + return 10 * CYCLE_UNIT / 2; } /* EOR.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b100_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CMPM.B (An)+,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_b108_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; -{{uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + { + { + uae_u32 newv = ((uae_u8)(dst)) - ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* EOR.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_b110_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* EOR.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_b118_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* EOR.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_b120_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* EOR.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_b128_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* EOR.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_b130_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* EOR.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_b138_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* EOR.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_b139_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* EOR.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b140_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* CMPM.W (An)+,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_b148_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; -{{uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + { + { + uae_u32 newv = ((uae_u16)(dst)) - ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* EOR.W Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_b150_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* EOR.W Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_b158_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* EOR.W Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_b160_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* EOR.W Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_b168_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* EOR.W Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_b170_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* EOR.W Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_b178_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* EOR.W Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_b179_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s16 dst = get_word (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s16 dst = get_word (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* EOR.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_b180_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* CMPM.L (An)+,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_b188_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* EOR.L Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_b190_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* EOR.L Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_b198_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* EOR.L Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_b1a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2; } /* EOR.L Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_b1a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* EOR.L Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_b1b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2; } /* EOR.L Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_b1b8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* EOR.L Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_b1b9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s32 dst = get_long (dsta); - src ^= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s32 dst = get_long (dsta); + src ^= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* CMPA.L Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_b1c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* CMPA.L An,An */ uae_u32 REGPARAM2 CPUFUNC(op_b1c8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* CMPA.L (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_b1d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* CMPA.L (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_b1d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* CMPA.L -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_b1e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (2); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (2); + return 16 * CYCLE_UNIT / 2; } /* CMPA.L (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_b1e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* CMPA.L (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_b1f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2; } /* CMPA.L (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_b1f8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* CMPA.L (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_b1f9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* CMPA.L (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_b1fa_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* CMPA.L (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_b1fb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2; } /* CMPA.L #.L,An */ uae_u32 REGPARAM2 CPUFUNC(op_b1fc_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs != flgo) && (flgn != flgo)); - SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); - SET_NFLG (flgn != 0); -}}}}}} m68k_incpc (6); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) - ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); + } + } + } + } + } + } + m68k_incpc (6); + return 14 * CYCLE_UNIT / 2; } /* AND.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c000_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* AND.B (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c010_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* AND.B (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c018_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* AND.B -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c020_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* AND.B (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c028_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* AND.B (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c030_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* AND.B (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c038_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* AND.B (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c039_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* AND.B (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c03a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* AND.B (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c03b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* AND.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c03c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((src) & 0xff); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* AND.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c040_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* AND.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c050_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* AND.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c058_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* AND.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c060_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* AND.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c068_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* AND.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c070_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* AND.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c078_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* AND.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c079_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* AND.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c07a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* AND.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c07b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* AND.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c07c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); -}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((src) & 0xffff); + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* AND.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c080_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* AND.L (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c090_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* AND.L (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c098_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* AND.L -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (2); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (2); + return 16 * CYCLE_UNIT / 2; } /* AND.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* AND.L (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2; } /* AND.L (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0b8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* AND.L (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0b9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* AND.L (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0ba_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* AND.L (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0bb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2; } /* AND.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0bc_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* MULU.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0c0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (2); -}}}}return 38 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (2); + } + } + } + } + return 38 * CYCLE_UNIT / 2 + count_cycles; } /* MULU.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0d0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (2); -}}}}}return 42 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (2); + } + } + } + } + } + return 42 * CYCLE_UNIT / 2 + count_cycles; } /* MULU.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0d8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (2); -}}}}}return 42 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (2); + } + } + } + } + } + return 42 * CYCLE_UNIT / 2 + count_cycles; } /* MULU.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0e0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (2); -}}}}}return 44 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (2); + } + } + } + } + } + return 44 * CYCLE_UNIT / 2 + count_cycles; } /* MULU.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0e8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (4); -}}}}}return 46 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (4); + } + } + } + } + } + return 46 * CYCLE_UNIT / 2 + count_cycles; } /* MULU.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0f0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (4); -}}}}}return 48 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (4); + } + } + } + } + } + return 48 * CYCLE_UNIT / 2 + count_cycles; } /* MULU.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0f8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (4); -}}}}}return 46 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (4); + } + } + } + } + } + return 46 * CYCLE_UNIT / 2 + count_cycles; } /* MULU.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0f9_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (6); -}}}}}return 50 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (6); + } + } + } + } + } + return 50 * CYCLE_UNIT / 2 + count_cycles; } /* MULU.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0fa_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (4); -}}}}}return 46 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (4); + } + } + } + } + } + return 46 * CYCLE_UNIT / 2 + count_cycles; } /* MULU.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0fb_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (4); -}}}}}return 48 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (4); + } + } + } + } + } + return 48 * CYCLE_UNIT / 2 + count_cycles; } /* MULU.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c0fc_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); - m68k_incpc (4); -}}}}return 42 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + m68k_incpc (4); + } + } + } + } + return 42 * CYCLE_UNIT / 2 + count_cycles; } /* ABCD.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c100_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{ uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); - uae_u16 newv, tmp_newv; - int cflg; - newv = tmp_newv = newv_hi + newv_lo; - if (newv_lo > 9) { newv += 6; } - cflg = (newv & 0x3F0) > 0x90; - if (cflg) newv += 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); + uae_u16 newv, tmp_newv; + int cflg; + newv = tmp_newv = newv_hi + newv_lo; + if (newv_lo > 9) + { + newv += 6; + } + cflg = (newv & 0x3F0) > 0x90; + if (cflg) newv += 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* ABCD.B -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c108_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{ uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG () ? 1 : 0); - uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); - uae_u16 newv, tmp_newv; - int cflg; - newv = tmp_newv = newv_hi + newv_lo; - if (newv_lo > 9) { newv += 6; } - cflg = (newv & 0x3F0) > 0x90; - if (cflg) newv += 0x60; - SET_CFLG (cflg); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - SET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0); - put_byte (dsta, newv); -}}}}}} m68k_incpc (2); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG () ? 1 : 0); + uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); + uae_u16 newv, tmp_newv; + int cflg; + newv = tmp_newv = newv_hi + newv_lo; + if (newv_lo > 9) + { + newv += 6; + } + cflg = (newv & 0x3F0) > 0x90; + if (cflg) newv += 0x60; + SET_CFLG (cflg); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + SET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + m68k_incpc (2); + return 18 * CYCLE_UNIT / 2; } /* AND.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c110_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* AND.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_c118_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* AND.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c120_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* AND.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_c128_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* AND.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_c130_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* AND.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_c138_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* AND.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_c139_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s8)(src)) == 0); - SET_NFLG (((uae_s8)(src)) < 0); - put_byte (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* EXG.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c140_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); - m68k_dreg (regs, srcreg) = (dst); - m68k_dreg (regs, dstreg) = (src); -}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + m68k_dreg (regs, srcreg) = (dst); + m68k_dreg (regs, dstreg) = (src); + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* EXG.L An,An */ uae_u32 REGPARAM2 CPUFUNC(op_c148_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); - m68k_areg (regs, srcreg) = (dst); - m68k_areg (regs, dstreg) = (src); -}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + m68k_areg (regs, srcreg) = (dst); + m68k_areg (regs, dstreg) = (src); + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* AND.W Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c150_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* AND.W Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_c158_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* AND.W Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c160_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* AND.W Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_c168_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* AND.W Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_c170_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* AND.W Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_c178_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* AND.W Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_c179_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s16 dst = get_word (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(src)) == 0); - SET_NFLG (((uae_s16)(src)) < 0); - put_word (dsta, src); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s16 dst = get_word (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word (dsta, src); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* EXG.L Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_c188_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); - m68k_dreg (regs, srcreg) = (dst); - m68k_areg (regs, dstreg) = (src); -}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + m68k_dreg (regs, srcreg) = (dst); + m68k_areg (regs, dstreg) = (src); + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* AND.L Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c190_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* AND.L Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_c198_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* AND.L Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_c1a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2; } /* AND.L Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_c1a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* AND.L Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_c1b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2; } /* AND.L Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_c1b8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* AND.L Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_c1b9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s32 dst = get_long (dsta); - src &= dst; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(src)) == 0); - SET_NFLG (((uae_s32)(src)) < 0); - put_long (dsta, src); -}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s32 dst = get_long (dsta); + src &= dst; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long (dsta, src); + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* MULS.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1c0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 38 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 38 * CYCLE_UNIT / 2 + count_cycles; } /* MULS.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1d0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 42 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 42 * CYCLE_UNIT / 2 + count_cycles; } /* MULS.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1d8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 42 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 42 * CYCLE_UNIT / 2 + count_cycles; } /* MULS.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1e0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 44 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 44 * CYCLE_UNIT / 2 + count_cycles; } /* MULS.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1e8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 46 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 46 * CYCLE_UNIT / 2 + count_cycles; } /* MULS.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1f0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 48 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 48 * CYCLE_UNIT / 2 + count_cycles; } /* MULS.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1f8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 46 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 46 * CYCLE_UNIT / 2 + count_cycles; } /* MULS.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1f9_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (6); -return 50 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (6); + return 50 * CYCLE_UNIT / 2 + count_cycles; } /* MULS.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1fa_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 46 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 46 * CYCLE_UNIT / 2 + count_cycles; } /* MULS.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1fb_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 48 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 48 * CYCLE_UNIT / 2 + count_cycles; } /* MULS.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_c1fc_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; - CLEAR_CZNV (); - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_NFLG (((uae_s32)(newv)) < 0); - count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (newv); -}}}} m68k_incpc (4); -return 42 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV (); + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + count_cycles += (bitset_count16(src ^ (src << 1)) * 2) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (4); + return 42 * CYCLE_UNIT / 2 + count_cycles; } /* ADD.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d000_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* ADD.B (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d010_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ADD.B (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d018_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) += areg_byteinc[srcreg]; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ADD.B -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d020_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* ADD.B (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d028_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ADD.B (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d030_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* ADD.B (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d038_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ADD.B (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d039_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* ADD.B (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d03a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ADD.B (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d03b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s8 src = get_byte (srca); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s8 src = get_byte (srca); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* ADD.B #.B,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d03c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = get_ibyte (2); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = get_ibyte (2); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* ADD.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d040_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* ADD.W An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d048_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* ADD.W (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d050_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ADD.W (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d058_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ADD.W -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d060_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (2); -return 10 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (2); + return 10 * CYCLE_UNIT / 2; } /* ADD.W (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d068_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ADD.W (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d070_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* ADD.W (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d078_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ADD.W (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d079_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* ADD.W (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d07a_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ADD.W (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d07b_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}}} m68k_incpc (4); -return 14 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + } + m68k_incpc (4); + return 14 * CYCLE_UNIT / 2; } /* ADD.W #.W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d07c_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}}} m68k_incpc (4); -return 8 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + } + m68k_incpc (4); + return 8 * CYCLE_UNIT / 2; } /* ADD.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d080_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ADD.L An,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d088_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ADD.L (An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d090_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* ADD.L (An)+,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d098_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* ADD.L -(An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (2); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 16 * CYCLE_UNIT / 2; } /* ADD.L (d16,An),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* ADD.L (d8,An,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2; } /* ADD.L (xxx).W,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0b8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* ADD.L (xxx).L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0b9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* ADD.L (d16,PC),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0ba_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* ADD.L (d8,PC,Xn),Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0bb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2; } /* ADD.L #.L,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d0bc_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* ADDA.W Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_d0c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ADDA.W An,An */ uae_u32 REGPARAM2 CPUFUNC(op_d0c8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ADDA.W (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_d0d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ADDA.W (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_d0d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) += 2; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) += 2; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ADDA.W -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_d0e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* ADDA.W (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_d0e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ADDA.W (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_d0f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* ADDA.W (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_d0f8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ADDA.W (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_d0f9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* ADDA.W (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_d0fa_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ADDA.W (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_d0fb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s16 src = get_word (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s16 src = get_word (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* ADDA.W #.W,An */ uae_u32 REGPARAM2 CPUFUNC(op_d0fc_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = get_iword (2); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (4); -return 12 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = get_iword (2); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (4); + return 12 * CYCLE_UNIT / 2; } /* ADDX.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d100_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uae_s8 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); -}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uae_s8 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((newv) & 0xff); + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* ADDX.B -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d108_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; -{ uae_s8 src = get_byte (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{ uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); - SET_NFLG (((uae_s8)(newv)) < 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - areg_byteinc[srcreg]; + { + uae_s8 src = get_byte (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 18 * CYCLE_UNIT / 2; } /* ADD.B Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d110_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ADD.B Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_d118_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) += areg_byteinc[dstreg]; + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ADD.B Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d120_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; -{ uae_s8 dst = get_byte (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - areg_byteinc[dstreg]; + { + uae_s8 dst = get_byte (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* ADD.B Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_d128_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ADD.B Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_d130_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* ADD.B Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_d138_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ADD.B Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_d139_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s8 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s8 dst = get_byte (dsta); -{{uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); -{ int flgs = ((uae_s8)(src)) < 0; - int flgo = ((uae_s8)(dst)) < 0; - int flgn = ((uae_s8)(newv)) < 0; - SET_ZFLG (((uae_s8)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_byte (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s8 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s8 dst = get_byte (dsta); + { + { + uae_u32 newv = ((uae_u8)(dst)) + ((uae_u8)(src)); + { + int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_byte (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* ADDX.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d140_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uae_s16 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); -}}}}} m68k_incpc (2); -return 4 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uae_s16 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((newv) & 0xffff); + } + } + } + } + } + m68k_incpc (2); + return 4 * CYCLE_UNIT / 2; } /* ADDX.W -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d148_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; -{ uae_s16 src = get_word (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; -{ uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); - SET_NFLG (((uae_s16)(newv)) < 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (2); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + { + uae_s16 src = get_word (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + { + uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 18 * CYCLE_UNIT / 2; } /* ADD.W Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d150_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ADD.W Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_d158_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) += 2; -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) += 2; + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ADD.W Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d160_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 2; -{ uae_s16 dst = get_word (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 2; + { + uae_s16 dst = get_word (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* ADD.W Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_d168_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ADD.W Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_d170_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* ADD.W Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_d178_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ADD.W Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_d179_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s16 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s16 dst = get_word (dsta); -{{uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); -{ int flgs = ((uae_s16)(src)) < 0; - int flgo = ((uae_s16)(dst)) < 0; - int flgn = ((uae_s16)(newv)) < 0; - SET_ZFLG (((uae_s16)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_word (dsta, newv); -}}}}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s16 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s16 dst = get_word (dsta); + { + { + uae_u32 newv = ((uae_u16)(dst)) + ((uae_u16)(src)); + { + int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_word (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* ADDX.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_d180_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_dreg (regs, dstreg); -{ uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - m68k_dreg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_dreg (regs, dstreg); + { + uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ADDX.L -(An),-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d188_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; -{ uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); - COPY_CARRY (); - SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); - SET_NFLG (((uae_s32)(newv)) < 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (2); -return 30 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + { + uae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY (); + SET_ZFLG (GET_ZFLG () & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 30 * CYCLE_UNIT / 2; } /* ADD.L Dn,(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d190_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* ADD.L Dn,(An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_d198_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg); -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) += 4; -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (2); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg); + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) += 4; + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 20 * CYCLE_UNIT / 2; } /* ADD.L Dn,-(An) */ uae_u32 REGPARAM2 CPUFUNC(op_d1a0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) - 4; -{ uae_s32 dst = get_long (dsta); - m68k_areg (regs, dstreg) = dsta; -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (2); -return 22 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) - 4; + { + uae_s32 dst = get_long (dsta); + m68k_areg (regs, dstreg) = dsta; + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (2); + return 22 * CYCLE_UNIT / 2; } /* ADD.L Dn,(d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_d1a8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* ADD.L Dn,(d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_d1b0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (4); -return 26 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_disp_ea_000 (regs, m68k_areg (regs, dstreg), get_iword (2)); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 26 * CYCLE_UNIT / 2; } /* ADD.L Dn,(xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_d1b8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (4); -return 24 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (4); + return 24 * CYCLE_UNIT / 2; } /* ADD.L Dn,(xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_d1b9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = ((opcode >> 9) & 7); -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uaecptr dsta; - dsta = get_ilong (2); -{ uae_s32 dst = get_long (dsta); -{{uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); -{ int flgs = ((uae_s32)(src)) < 0; - int flgo = ((uae_s32)(dst)) < 0; - int flgn = ((uae_s32)(newv)) < 0; - SET_ZFLG (((uae_s32)(newv)) == 0); - SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); - SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); - COPY_CARRY (); - SET_NFLG (flgn != 0); - put_long (dsta, newv); -}}}}}}} m68k_incpc (6); -return 28 * CYCLE_UNIT / 2; + uae_u32 srcreg = ((opcode >> 9) & 7); + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uaecptr dsta; + dsta = get_ilong (2); + { + uae_s32 dst = get_long (dsta); + { + { + uae_u32 newv = ((uae_u32)(dst)) + ((uae_u32)(src)); + { + int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY (); + SET_NFLG (flgn != 0); + put_long (dsta, newv); + } + } + } + } + } + } + } + m68k_incpc (6); + return 28 * CYCLE_UNIT / 2; } /* ADDA.L Dn,An */ uae_u32 REGPARAM2 CPUFUNC(op_d1c0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_dreg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_dreg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ADDA.L An,An */ uae_u32 REGPARAM2 CPUFUNC(op_d1c8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src = m68k_areg (regs, srcreg); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src = m68k_areg (regs, srcreg); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2; } /* ADDA.L (An),An */ uae_u32 REGPARAM2 CPUFUNC(op_d1d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* ADDA.L (An)+,An */ uae_u32 REGPARAM2 CPUFUNC(op_d1d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) += 4; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) += 4; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* ADDA.L -(An),An */ uae_u32 REGPARAM2 CPUFUNC(op_d1e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 4; -{ uae_s32 src = get_long (srca); - m68k_areg (regs, srcreg) = srca; -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (2); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 4; + { + uae_s32 src = get_long (srca); + m68k_areg (regs, srcreg) = srca; + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (2); + return 16 * CYCLE_UNIT / 2; } /* ADDA.L (d16,An),An */ uae_u32 REGPARAM2 CPUFUNC(op_d1e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* ADDA.L (d8,An,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_d1f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2; } /* ADDA.L (xxx).W,An */ uae_u32 REGPARAM2 CPUFUNC(op_d1f8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* ADDA.L (xxx).L,An */ uae_u32 REGPARAM2 CPUFUNC(op_d1f9_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = get_ilong (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (6); -return 22 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = get_ilong (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (6); + return 22 * CYCLE_UNIT / 2; } /* ADDA.L (d16,PC),An */ uae_u32 REGPARAM2 CPUFUNC(op_d1fa_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr srca; - srca = m68k_getpc () + 2; - srca += (uae_s32)(uae_s16)get_iword (2); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr srca; + srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword (2); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* ADDA.L (d8,PC,Xn),An */ uae_u32 REGPARAM2 CPUFUNC(op_d1fb_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uaecptr tmppc; - uaecptr srca; - tmppc = m68k_getpc () + 2; - srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); -{ uae_s32 src = get_long (srca); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}}} m68k_incpc (4); -return 20 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uaecptr tmppc; + uaecptr srca; + tmppc = m68k_getpc () + 2; + srca = get_disp_ea_000 (regs, tmppc, get_iword (2)); + { + uae_s32 src = get_long (srca); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + } + m68k_incpc (4); + return 20 * CYCLE_UNIT / 2; } /* ADDA.L #.L,An */ uae_u32 REGPARAM2 CPUFUNC(op_d1fc_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 dstreg = (opcode >> 9) & 7; -{{ uae_s32 src; - src = get_ilong (2); -{ uae_s32 dst = m68k_areg (regs, dstreg); -{ uae_u32 newv = dst + src; - m68k_areg (regs, dstreg) = (newv); -}}}} m68k_incpc (6); -return 16 * CYCLE_UNIT / 2; + uae_u32 dstreg = (opcode >> 9) & 7; + { + { + uae_s32 src; + src = get_ilong (2); + { + uae_s32 dst = m68k_areg (regs, dstreg); + { + uae_u32 newv = dst + src; + m68k_areg (regs, dstreg) = (newv); + } + } + } + } + m68k_incpc (6); + return 16 * CYCLE_UNIT / 2; } /* ASRQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e000_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - uae_u32 sign = (0x80 & val) >> 7; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - val = 0xff & (uae_u32)-sign; - SET_CFLG (sign); - COPY_CARRY (); - } else { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - val |= (0xff << (8 - cnt)) & (uae_u32)-sign; - val &= 0xff; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + uae_u32 sign = (0x80 & val) >> 7; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + val = 0xff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY (); + } + else + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + val |= (0xff << (8 - cnt)) & (uae_u32)-sign; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* LSRQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e008_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - SET_CFLG ((cnt == 8) & (val >> 7)); - COPY_CARRY (); - val = 0; - } else { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + SET_CFLG ((cnt == 8) & (val >> 7)); + COPY_CARRY (); + val = 0; + } + else + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ROXRQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e010_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); -{ cnt--; - { - uae_u32 carry; - uae_u32 hival = (val << 1) | GET_XFLG (); - hival <<= (7 - cnt); - val >>= cnt; - carry = val & 1; - val >>= 1; - val |= hival; - SET_XFLG (carry); - val &= 0xff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG (); + hival <<= (7 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* RORQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e018_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); -{ uae_u32 hival; - cnt &= 7; - hival = val << (8 - cnt); - val >>= cnt; - val |= hival; - val &= 0xff; - SET_CFLG ((val & 0x80) >> 7); - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + { + uae_u32 hival; + cnt &= 7; + hival = val << (8 - cnt); + val >>= cnt; + val |= hival; + val &= 0xff; + SET_CFLG ((val & 0x80) >> 7); + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ASR.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e020_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - uae_u32 sign = (0x80 & val) >> 7; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - val = 0xff & (uae_u32)-sign; - SET_CFLG (sign); - COPY_CARRY (); - } else if (cnt > 0) { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - val |= (0xff << (8 - cnt)) & (uae_u32)-sign; - val &= 0xff; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + uae_u32 sign = (0x80 & val) >> 7; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + val = 0xff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY (); + } + else if (cnt > 0) + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + val |= (0xff << (8 - cnt)) & (uae_u32)-sign; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* LSR.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e028_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - SET_CFLG ((cnt == 8) & (val >> 7)); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + SET_CFLG ((cnt == 8) & (val >> 7)); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ROXR.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e030_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 36) cnt -= 36; - if (cnt >= 18) cnt -= 18; - if (cnt >= 9) cnt -= 9; - if (cnt > 0) { - cnt--; - { - uae_u32 carry; - uae_u32 hival = (val << 1) | GET_XFLG (); - hival <<= (7 - cnt); - val >>= cnt; - carry = val & 1; - val >>= 1; - val |= hival; - SET_XFLG (carry); - val &= 0xff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 36) cnt -= 36; + if (cnt >= 18) cnt -= 18; + if (cnt >= 9) cnt -= 9; + if (cnt > 0) + { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG (); + hival <<= (7 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ROR.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e038_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt > 0) { uae_u32 hival; - cnt &= 7; - hival = val << (8 - cnt); - val >>= cnt; - val |= hival; - val &= 0xff; - SET_CFLG ((val & 0x80) >> 7); - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt > 0) + { + uae_u32 hival; + cnt &= 7; + hival = val << (8 - cnt); + val >>= cnt; + val |= hival; + val &= 0xff; + SET_CFLG ((val & 0x80) >> 7); + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ASRQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e040_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = (0x8000 & val) >> 15; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - val = 0xffff & (uae_u32)-sign; - SET_CFLG (sign); - COPY_CARRY (); - } else { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - val |= (0xffff << (16 - cnt)) & (uae_u32)-sign; - val &= 0xffff; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = (0x8000 & val) >> 15; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + val = 0xffff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY (); + } + else + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + val |= (0xffff << (16 - cnt)) & (uae_u32)-sign; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } #endif @@ -26409,2342 +39739,3191 @@ return 6 * CYCLE_UNIT / 2 + count_cycles; /* LSRQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e048_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - SET_CFLG ((cnt == 16) & (val >> 15)); - COPY_CARRY (); - val = 0; - } else { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + SET_CFLG ((cnt == 16) & (val >> 15)); + COPY_CARRY (); + val = 0; + } + else + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ROXRQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e050_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); -{ cnt--; - { - uae_u32 carry; - uae_u32 hival = (val << 1) | GET_XFLG (); - hival <<= (15 - cnt); - val >>= cnt; - carry = val & 1; - val >>= 1; - val |= hival; - SET_XFLG (carry); - val &= 0xffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG (); + hival <<= (15 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* RORQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e058_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); -{ uae_u32 hival; - cnt &= 15; - hival = val << (16 - cnt); - val >>= cnt; - val |= hival; - val &= 0xffff; - SET_CFLG ((val & 0x8000) >> 15); - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + { + uae_u32 hival; + cnt &= 15; + hival = val << (16 - cnt); + val >>= cnt; + val |= hival; + val &= 0xffff; + SET_CFLG ((val & 0x8000) >> 15); + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ASR.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e060_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = (0x8000 & val) >> 15; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - val = 0xffff & (uae_u32)-sign; - SET_CFLG (sign); - COPY_CARRY (); - } else if (cnt > 0) { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - val |= (0xffff << (16 - cnt)) & (uae_u32)-sign; - val &= 0xffff; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = (0x8000 & val) >> 15; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + val = 0xffff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY (); + } + else if (cnt > 0) + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + val |= (0xffff << (16 - cnt)) & (uae_u32)-sign; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* LSR.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e068_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - SET_CFLG ((cnt == 16) & (val >> 15)); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + SET_CFLG ((cnt == 16) & (val >> 15)); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ROXR.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e070_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 34) cnt -= 34; - if (cnt >= 17) cnt -= 17; - if (cnt > 0) { - cnt--; - { - uae_u32 carry; - uae_u32 hival = (val << 1) | GET_XFLG (); - hival <<= (15 - cnt); - val >>= cnt; - carry = val & 1; - val >>= 1; - val |= hival; - SET_XFLG (carry); - val &= 0xffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 34) cnt -= 34; + if (cnt >= 17) cnt -= 17; + if (cnt > 0) + { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG (); + hival <<= (15 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ROR.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e078_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt > 0) { uae_u32 hival; - cnt &= 15; - hival = val << (16 - cnt); - val >>= cnt; - val |= hival; - val &= 0xffff; - SET_CFLG ((val & 0x8000) >> 15); - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt > 0) + { + uae_u32 hival; + cnt &= 15; + hival = val << (16 - cnt); + val >>= cnt; + val |= hival; + val &= 0xffff; + SET_CFLG ((val & 0x8000) >> 15); + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ASRQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e080_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - uae_u32 sign = (0x80000000 & val) >> 31; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - val = 0xffffffff & (uae_u32)-sign; - SET_CFLG (sign); - COPY_CARRY (); - } else { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign; - val &= 0xffffffff; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + uae_u32 sign = (0x80000000 & val) >> 31; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + val = 0xffffffff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY (); + } + else + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* LSRQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e088_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - SET_CFLG ((cnt == 32) & (val >> 31)); - COPY_CARRY (); - val = 0; - } else { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + SET_CFLG ((cnt == 32) & (val >> 31)); + COPY_CARRY (); + val = 0; + } + else + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* ROXRQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e090_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); -{ cnt--; - { - uae_u32 carry; - uae_u32 hival = (val << 1) | GET_XFLG (); - hival <<= (31 - cnt); - val >>= cnt; - carry = val & 1; - val >>= 1; - val |= hival; - SET_XFLG (carry); - val &= 0xffffffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG (); + hival <<= (31 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xffffffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* RORQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e098_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); -{ uae_u32 hival; - cnt &= 31; - hival = val << (32 - cnt); - val >>= cnt; - val |= hival; - val &= 0xffffffff; - SET_CFLG ((val & 0x80000000) >> 31); - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + { + uae_u32 hival; + cnt &= 31; + hival = val << (32 - cnt); + val >>= cnt; + val |= hival; + val &= 0xffffffff; + SET_CFLG ((val & 0x80000000) >> 31); + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* ASR.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e0a0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - uae_u32 sign = (0x80000000 & val) >> 31; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - val = 0xffffffff & (uae_u32)-sign; - SET_CFLG (sign); - COPY_CARRY (); - } else if (cnt > 0) { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign; - val &= 0xffffffff; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + uae_u32 sign = (0x80000000 & val) >> 31; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + val = 0xffffffff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY (); + } + else if (cnt > 0) + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* LSR.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e0a8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - SET_CFLG ((cnt == 32) & (val >> 31)); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - val >>= cnt - 1; - SET_CFLG (val & 1); - COPY_CARRY (); - val >>= 1; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + SET_CFLG ((cnt == 32) & (val >> 31)); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY (); + val >>= 1; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* ROXR.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e0b0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 33) cnt -= 33; - if (cnt > 0) { - cnt--; - { - uae_u32 carry; - uae_u32 hival = (val << 1) | GET_XFLG (); - hival <<= (31 - cnt); - val >>= cnt; - carry = val & 1; - val >>= 1; - val |= hival; - SET_XFLG (carry); - val &= 0xffffffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 33) cnt -= 33; + if (cnt > 0) + { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG (); + hival <<= (31 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xffffffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* ROR.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e0b8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt > 0) { uae_u32 hival; - cnt &= 31; - hival = val << (32 - cnt); - val >>= cnt; - val |= hival; - val &= 0xffffffff; - SET_CFLG ((val & 0x80000000) >> 31); - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt > 0) + { + uae_u32 hival; + cnt &= 31; + hival = val << (32 - cnt); + val >>= cnt; + val |= hival; + val &= 0xffffffff; + SET_CFLG ((val & 0x80000000) >> 31); + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* ASRW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e0d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ASRW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e0d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ASRW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e0e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* ASRW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e0e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ASRW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e0f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* ASRW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e0f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ASRW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e0f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = get_ilong (2); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 cflg = val & 1; - val = (val >> 1) | sign; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (cflg); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = get_ilong (2); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* ASLQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e100_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 8 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else { - uae_u32 mask = (0xff << (7 - cnt)) & 0xff; - SET_VFLG ((val & mask) != mask && (val & mask) != 0); - val <<= cnt - 1; - SET_CFLG ((val & 0x80) >> 7); - COPY_CARRY (); - val <<= 1; - val &= 0xff; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + SET_VFLG (val != 0); + SET_CFLG (cnt == 8 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else + { + uae_u32 mask = (0xff << (7 - cnt)) & 0xff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x80) >> 7); + COPY_CARRY (); + val <<= 1; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* LSLQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e108_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - SET_CFLG (cnt == 8 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else { - val <<= (cnt - 1); - SET_CFLG ((val & 0x80) >> 7); - COPY_CARRY (); - val <<= 1; - val &= 0xff; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + SET_CFLG (cnt == 8 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else + { + val <<= (cnt - 1); + SET_CFLG ((val & 0x80) >> 7); + COPY_CARRY (); + val <<= 1; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ROXLQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e110_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); -{ cnt--; - { - uae_u32 carry; - uae_u32 loval = val >> (7 - cnt); - carry = loval & 1; - val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); - SET_XFLG (carry); - val &= 0xff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (7 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ROLQ.B #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e118_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); -{ uae_u32 loval; - cnt &= 7; - loval = val >> (8 - cnt); - val <<= cnt; - val |= loval; - val &= 0xff; - SET_CFLG (val & 1); -} - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + { + uae_u32 loval; + cnt &= 7; + loval = val >> (8 - cnt); + val <<= cnt; + val |= loval; + val &= 0xff; + SET_CFLG (val & 1); + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ASL.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e120_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 8 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - uae_u32 mask = (0xff << (7 - cnt)) & 0xff; - SET_VFLG ((val & mask) != mask && (val & mask) != 0); - val <<= cnt - 1; - SET_CFLG ((val & 0x80) >> 7); - COPY_CARRY (); - val <<= 1; - val &= 0xff; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + SET_VFLG (val != 0); + SET_CFLG (cnt == 8 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + uae_u32 mask = (0xff << (7 - cnt)) & 0xff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x80) >> 7); + COPY_CARRY (); + val <<= 1; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* LSL.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e128_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 8) { - SET_CFLG (cnt == 8 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - val <<= (cnt - 1); - SET_CFLG ((val & 0x80) >> 7); - COPY_CARRY (); - val <<= 1; - val &= 0xff; - } - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 8) + { + SET_CFLG (cnt == 8 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + val <<= (cnt - 1); + SET_CFLG ((val & 0x80) >> 7); + COPY_CARRY (); + val <<= 1; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ROXL.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e130_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 36) cnt -= 36; - if (cnt >= 18) cnt -= 18; - if (cnt >= 9) cnt -= 9; - if (cnt > 0) { - cnt--; - { - uae_u32 carry; - uae_u32 loval = val >> (7 - cnt); - carry = loval & 1; - val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); - SET_XFLG (carry); - val &= 0xff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 36) cnt -= 36; + if (cnt >= 18) cnt -= 18; + if (cnt >= 9) cnt -= 9; + if (cnt > 0) + { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (7 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ROL.B Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e138_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s8 cnt = m68k_dreg (regs, srcreg); -{ uae_s8 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u8)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt > 0) { - uae_u32 loval; - cnt &= 7; - loval = val >> (8 - cnt); - val <<= cnt; - val |= loval; - val &= 0xff; - SET_CFLG (val & 1); -} - SET_ZFLG (((uae_s8)(val)) == 0); - SET_NFLG (((uae_s8)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s8 cnt = m68k_dreg (regs, srcreg); + { + uae_s8 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt > 0) + { + uae_u32 loval; + cnt &= 7; + loval = val >> (8 - cnt); + val <<= cnt; + val |= loval; + val &= 0xff; + SET_CFLG (val & 1); + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xff) | ((val) & 0xff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ASLQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e140_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 16 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else { - uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff; - SET_VFLG ((val & mask) != mask && (val & mask) != 0); - val <<= cnt - 1; - SET_CFLG ((val & 0x8000) >> 15); - COPY_CARRY (); - val <<= 1; - val &= 0xffff; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + SET_VFLG (val != 0); + SET_CFLG (cnt == 16 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else + { + uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x8000) >> 15); + COPY_CARRY (); + val <<= 1; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* LSLQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e148_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - SET_CFLG (cnt == 16 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else { - val <<= (cnt - 1); - SET_CFLG ((val & 0x8000) >> 15); - COPY_CARRY (); - val <<= 1; - val &= 0xffff; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + SET_CFLG (cnt == 16 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else + { + val <<= (cnt - 1); + SET_CFLG ((val & 0x8000) >> 15); + COPY_CARRY (); + val <<= 1; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ROXLQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e150_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); -{ cnt--; - { - uae_u32 carry; - uae_u32 loval = val >> (15 - cnt); - carry = loval & 1; - val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); - SET_XFLG (carry); - val &= 0xffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (15 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ROLQ.W #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e158_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); -{ uae_u32 loval; - cnt &= 15; - loval = val >> (16 - cnt); - val <<= cnt; - val |= loval; - val &= 0xffff; - SET_CFLG (val & 1); -} - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + { + uae_u32 loval; + cnt &= 15; + loval = val >> (16 - cnt); + val <<= cnt; + val |= loval; + val &= 0xffff; + SET_CFLG (val & 1); + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ASL.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e160_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 16 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff; - SET_VFLG ((val & mask) != mask && (val & mask) != 0); - val <<= cnt - 1; - SET_CFLG ((val & 0x8000) >> 15); - COPY_CARRY (); - val <<= 1; - val &= 0xffff; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + SET_VFLG (val != 0); + SET_CFLG (cnt == 16 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x8000) >> 15); + COPY_CARRY (); + val <<= 1; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* LSL.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e168_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 16) { - SET_CFLG (cnt == 16 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - val <<= (cnt - 1); - SET_CFLG ((val & 0x8000) >> 15); - COPY_CARRY (); - val <<= 1; - val &= 0xffff; - } - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 16) + { + SET_CFLG (cnt == 16 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + val <<= (cnt - 1); + SET_CFLG ((val & 0x8000) >> 15); + COPY_CARRY (); + val <<= 1; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ROXL.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e170_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 34) cnt -= 34; - if (cnt >= 17) cnt -= 17; - if (cnt > 0) { - cnt--; - { - uae_u32 carry; - uae_u32 loval = val >> (15 - cnt); - carry = loval & 1; - val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); - SET_XFLG (carry); - val &= 0xffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 34) cnt -= 34; + if (cnt >= 17) cnt -= 17; + if (cnt > 0) + { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (15 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ROL.W Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e178_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s16 cnt = m68k_dreg (regs, srcreg); -{ uae_s16 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = (uae_u16)data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt > 0) { - uae_u32 loval; - cnt &= 15; - loval = val >> (16 - cnt); - val <<= cnt; - val |= loval; - val &= 0xffff; - SET_CFLG (val & 1); -} - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); -}}}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s16 cnt = m68k_dreg (regs, srcreg); + { + uae_s16 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt > 0) + { + uae_u32 loval; + cnt &= 15; + loval = val >> (16 - cnt); + val <<= cnt; + val |= loval; + val &= 0xffff; + SET_CFLG (val & 1); + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & ~0xffff) | ((val) & 0xffff); + } + } + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2 + count_cycles; } /* ASLQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e180_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 32 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else { - uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff; - SET_VFLG ((val & mask) != mask && (val & mask) != 0); - val <<= cnt - 1; - SET_CFLG ((val & 0x80000000) >> 31); - COPY_CARRY (); - val <<= 1; - val &= 0xffffffff; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + SET_VFLG (val != 0); + SET_CFLG (cnt == 32 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else + { + uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x80000000) >> 31); + COPY_CARRY (); + val <<= 1; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* LSLQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e188_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - SET_CFLG (cnt == 32 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else { - val <<= (cnt - 1); - SET_CFLG ((val & 0x80000000) >> 31); - COPY_CARRY (); - val <<= 1; - val &= 0xffffffff; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + SET_CFLG (cnt == 32 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else + { + val <<= (cnt - 1); + SET_CFLG ((val & 0x80000000) >> 31); + COPY_CARRY (); + val <<= 1; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* ROXLQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e190_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); -{ cnt--; - { - uae_u32 carry; - uae_u32 loval = val >> (31 - cnt); - carry = loval & 1; - val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); - SET_XFLG (carry); - val &= 0xffffffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (31 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xffffffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* ROLQ.L #,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e198_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; -{{ uae_u32 cnt = srcreg; -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); -{ uae_u32 loval; - cnt &= 31; - loval = val >> (32 - cnt); - val <<= cnt; - val |= loval; - val &= 0xffffffff; - SET_CFLG (val & 1); -} - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + { + { + uae_u32 cnt = srcreg; + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + { + uae_u32 loval; + cnt &= 31; + loval = val >> (32 - cnt); + val <<= cnt; + val |= loval; + val &= 0xffffffff; + SET_CFLG (val & 1); + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* ASL.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e1a0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - SET_VFLG (val != 0); - SET_CFLG (cnt == 32 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff; - SET_VFLG ((val & mask) != mask && (val & mask) != 0); - val <<= cnt - 1; - SET_CFLG ((val & 0x80000000) >> 31); - COPY_CARRY (); - val <<= 1; - val &= 0xffffffff; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + SET_VFLG (val != 0); + SET_CFLG (cnt == 32 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x80000000) >> 31); + COPY_CARRY (); + val <<= 1; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* LSL.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e1a8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 32) { - SET_CFLG (cnt == 32 ? val & 1 : 0); - COPY_CARRY (); - val = 0; - } else if (cnt > 0) { - val <<= (cnt - 1); - SET_CFLG ((val & 0x80000000) >> 31); - COPY_CARRY (); - val <<= 1; - val &= 0xffffffff; - } - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 32) + { + SET_CFLG (cnt == 32 ? val & 1 : 0); + COPY_CARRY (); + val = 0; + } + else if (cnt > 0) + { + val <<= (cnt - 1); + SET_CFLG ((val & 0x80000000) >> 31); + COPY_CARRY (); + val <<= 1; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* ROXL.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e1b0_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt >= 33) cnt -= 33; - if (cnt > 0) { - cnt--; - { - uae_u32 carry; - uae_u32 loval = val >> (31 - cnt); - carry = loval & 1; - val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); - SET_XFLG (carry); - val &= 0xffffffff; - } } - SET_CFLG (GET_XFLG ()); - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt >= 33) cnt -= 33; + if (cnt > 0) + { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (31 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xffffffff; + } + } + SET_CFLG (GET_XFLG ()); + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* ROL.L Dn,Dn */ uae_u32 REGPARAM2 CPUFUNC(op_e1b8_4)(uae_u32 opcode, struct regstruct ®s) { - int count_cycles = 0; - uae_u32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; -{{ uae_s32 cnt = m68k_dreg (regs, srcreg); -{ uae_s32 data = m68k_dreg (regs, dstreg); -{ uae_u32 val = data; - cnt &= 63; - CLEAR_CZNV (); - if (cnt > 0) { - uae_u32 loval; - cnt &= 31; - loval = val >> (32 - cnt); - val <<= cnt; - val |= loval; - val &= 0xffffffff; - SET_CFLG (val & 1); -} - SET_ZFLG (((uae_s32)(val)) == 0); - SET_NFLG (((uae_s32)(val)) < 0); - count_cycles += (2 * cnt) * CYCLE_UNIT / 2; - m68k_dreg (regs, dstreg) = (val); -}}}} m68k_incpc (2); -return 8 * CYCLE_UNIT / 2 + count_cycles; + int count_cycles = 0; + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + { + { + uae_s32 cnt = m68k_dreg (regs, srcreg); + { + uae_s32 data = m68k_dreg (regs, dstreg); + { + uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV (); + if (cnt > 0) + { + uae_u32 loval; + cnt &= 31; + loval = val >> (32 - cnt); + val <<= cnt; + val |= loval; + val &= 0xffffffff; + SET_CFLG (val & 1); + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + count_cycles += (2 * cnt) * CYCLE_UNIT / 2; + m68k_dreg (regs, dstreg) = (val); + } + } + } + } + m68k_incpc (2); + return 8 * CYCLE_UNIT / 2 + count_cycles; } /* ASLW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e1d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 sign2; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY (); - SET_VFLG (GET_VFLG () | (sign2 != sign)); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY (); + SET_VFLG (GET_VFLG () | (sign2 != sign)); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ASLW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e1d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 sign2; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY (); - SET_VFLG (GET_VFLG () | (sign2 != sign)); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY (); + SET_VFLG (GET_VFLG () | (sign2 != sign)); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ASLW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e1e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 sign2; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY (); - SET_VFLG (GET_VFLG () | (sign2 != sign)); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY (); + SET_VFLG (GET_VFLG () | (sign2 != sign)); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* ASLW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e1e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 sign2; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY (); - SET_VFLG (GET_VFLG () | (sign2 != sign)); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY (); + SET_VFLG (GET_VFLG () | (sign2 != sign)); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ASLW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e1f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 sign2; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY (); - SET_VFLG (GET_VFLG () | (sign2 != sign)); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY (); + SET_VFLG (GET_VFLG () | (sign2 != sign)); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* ASLW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e1f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 sign2; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY (); - SET_VFLG (GET_VFLG () | (sign2 != sign)); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY (); + SET_VFLG (GET_VFLG () | (sign2 != sign)); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ASLW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e1f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = get_ilong (2); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 sign = 0x8000 & val; - uae_u32 sign2; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - sign2 = 0x8000 & val; - SET_CFLG (sign != 0); - COPY_CARRY (); - SET_VFLG (GET_VFLG () | (sign2 != sign)); - put_word (dataa, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = get_ilong (2); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY (); + SET_VFLG (GET_VFLG () | (sign2 != sign)); + put_word (dataa, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* LSRW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e2d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 carry = val & 1; - val >>= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* LSRW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e2d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; -{ uae_u32 val = (uae_u16)data; - uae_u32 carry = val & 1; - val >>= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + { + uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* LSRW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e2e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; -{ uae_u32 val = (uae_u16)data; - uae_u32 carry = val & 1; - val >>= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + { + uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* LSRW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e2e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 carry = val & 1; - val >>= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* LSRW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e2f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 carry = val & 1; - val >>= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* LSRW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e2f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 carry = val & 1; - val >>= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* LSRW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e2f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = get_ilong (2); -{ uae_s16 data = get_word (dataa); -{ uae_u32 val = (uae_u16)data; - uae_u32 carry = val & 1; - val >>= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = get_ilong (2); + { + uae_s16 data = get_word (dataa); + { + uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* LSLW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e3d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* LSLW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e3d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* LSLW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e3e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* LSLW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e3e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* LSLW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e3f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* LSLW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e3f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* LSLW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e3f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = get_ilong (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = get_ilong (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* ROXRW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e4d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (GET_XFLG ()) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG ()) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ROXRW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e4d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (GET_XFLG ()) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG ()) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ROXRW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e4e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (GET_XFLG ()) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG ()) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* ROXRW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e4e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (GET_XFLG ()) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG ()) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ROXRW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e4f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (GET_XFLG ()) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG ()) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* ROXRW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e4f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (GET_XFLG ()) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG ()) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ROXRW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e4f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = get_ilong (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (GET_XFLG ()) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = get_ilong (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG ()) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* ROXLW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e5d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (GET_XFLG ()) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG ()) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ROXLW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e5d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (GET_XFLG ()) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG ()) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ROXLW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e5e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (GET_XFLG ()) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG ()) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* ROXLW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e5e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (GET_XFLG ()) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG ()) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ROXLW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e5f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (GET_XFLG ()) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG ()) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* ROXLW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e5f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (GET_XFLG ()) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG ()) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ROXLW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e5f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = get_ilong (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (GET_XFLG ()) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - COPY_CARRY (); - put_word (dataa, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = get_ilong (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG ()) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + COPY_CARRY (); + put_word (dataa, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* RORW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e6d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* RORW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e6d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* RORW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e6e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* RORW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e6e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* RORW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e6f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* RORW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e6f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* RORW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e6f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = get_ilong (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 1; - val >>= 1; - if (carry) val |= 0x8000; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry); - put_word (dataa, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = get_ilong (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry); + put_word (dataa, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } /* ROLW.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_e7d0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ROLW.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_e7d8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg); -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) += 2; -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg); + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) += 2; + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* ROLW.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_e7e0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) - 2; -{ uae_s16 data = get_word (dataa); - m68k_areg (regs, srcreg) = dataa; -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - put_word (dataa, val); -}}}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) - 2; + { + uae_s16 data = get_word (dataa); + m68k_areg (regs, srcreg) = dataa; + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + put_word (dataa, val); + } + } + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* ROLW.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_e7e8_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ROLW.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_e7f0_4)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr dataa; - dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr dataa; + dataa = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* ROLW.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_e7f8_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = (uae_s32)(uae_s16)get_iword (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - put_word (dataa, val); -}}}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = (uae_s32)(uae_s16)get_iword (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + put_word (dataa, val); + } + } + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* ROLW.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_e7f9_4)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr dataa; - dataa = get_ilong (2); -{ uae_s16 data = get_word (dataa); -{ uae_u16 val = data; - uae_u32 carry = val & 0x8000; - val <<= 1; - if (carry) val |= 1; - CLEAR_CZNV (); - SET_ZFLG (((uae_s16)(val)) == 0); - SET_NFLG (((uae_s16)(val)) < 0); - SET_CFLG (carry >> 15); - put_word (dataa, val); -}}}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr dataa; + dataa = get_ilong (2); + { + uae_s16 data = get_word (dataa); + { + uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV (); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (carry >> 15); + put_word (dataa, val); + } + } + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } #endif @@ -28771,102 +42950,134 @@ return 20 * CYCLE_UNIT / 2; /* MVSR2.W Dn */ uae_u32 REGPARAM2 CPUFUNC(op_40c0_5)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ MakeSR (regs); - m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((regs.sr) & 0xffff); -}} m68k_incpc (2); -return 6 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + MakeSR (regs); + m68k_dreg (regs, srcreg) = (m68k_dreg (regs, srcreg) & ~0xffff) | ((regs.sr) & 0xffff); + } + } + m68k_incpc (2); + return 6 * CYCLE_UNIT / 2; } /* MVSR2.W (An) */ uae_u32 REGPARAM2 CPUFUNC(op_40d0_5)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - put_word (srca, regs.sr | 0x0010); - MakeSR (regs); - put_word (srca, regs.sr); -}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + put_word (srca, regs.sr | 0x0010); + MakeSR (regs); + put_word (srca, regs.sr); + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* MVSR2.W (An)+ */ uae_u32 REGPARAM2 CPUFUNC(op_40d8_5)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg); - m68k_areg (regs, srcreg) += 2; - put_word (srca, regs.sr | 0x0010); - MakeSR (regs); - put_word (srca, regs.sr); -}} m68k_incpc (2); -return 12 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg); + m68k_areg (regs, srcreg) += 2; + put_word (srca, regs.sr | 0x0010); + MakeSR (regs); + put_word (srca, regs.sr); + } + } + m68k_incpc (2); + return 12 * CYCLE_UNIT / 2; } /* MVSR2.W -(An) */ uae_u32 REGPARAM2 CPUFUNC(op_40e0_5)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) - 2; - m68k_areg (regs, srcreg) = srca; - put_word (srca, regs.sr | 0x0010); - MakeSR (regs); - put_word (srca, regs.sr); -}} m68k_incpc (2); -return 14 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) - 2; + m68k_areg (regs, srcreg) = srca; + put_word (srca, regs.sr | 0x0010); + MakeSR (regs); + put_word (srca, regs.sr); + } + } + m68k_incpc (2); + return 14 * CYCLE_UNIT / 2; } /* MVSR2.W (d16,An) */ uae_u32 REGPARAM2 CPUFUNC(op_40e8_5)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); - put_word (srca, regs.sr | 0x0010); - MakeSR (regs); - put_word (srca, regs.sr); -}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)get_iword (2); + put_word (srca, regs.sr | 0x0010); + MakeSR (regs); + put_word (srca, regs.sr); + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* MVSR2.W (d8,An,Xn) */ uae_u32 REGPARAM2 CPUFUNC(op_40f0_5)(uae_u32 opcode, struct regstruct ®s) { - uae_u32 srcreg = (opcode & 7); -{{ uaecptr srca; - srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); - put_word (srca, regs.sr | 0x0010); - MakeSR (regs); - put_word (srca, regs.sr); -}} m68k_incpc (4); -return 18 * CYCLE_UNIT / 2; + uae_u32 srcreg = (opcode & 7); + { + { + uaecptr srca; + srca = get_disp_ea_000 (regs, m68k_areg (regs, srcreg), get_iword (2)); + put_word (srca, regs.sr | 0x0010); + MakeSR (regs); + put_word (srca, regs.sr); + } + } + m68k_incpc (4); + return 18 * CYCLE_UNIT / 2; } /* MVSR2.W (xxx).W */ uae_u32 REGPARAM2 CPUFUNC(op_40f8_5)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = (uae_s32)(uae_s16)get_iword (2); - put_word (srca, regs.sr | 0x0010); - MakeSR (regs); - put_word (srca, regs.sr); -}} m68k_incpc (4); -return 16 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = (uae_s32)(uae_s16)get_iword (2); + put_word (srca, regs.sr | 0x0010); + MakeSR (regs); + put_word (srca, regs.sr); + } + } + m68k_incpc (4); + return 16 * CYCLE_UNIT / 2; } /* MVSR2.W (xxx).L */ uae_u32 REGPARAM2 CPUFUNC(op_40f9_5)(uae_u32 opcode, struct regstruct ®s) { -{{ uaecptr srca; - srca = get_ilong (2); - put_word (srca, regs.sr | 0x0010); - MakeSR (regs); - put_word (srca, regs.sr); -}} m68k_incpc (6); -return 20 * CYCLE_UNIT / 2; + { + { + uaecptr srca; + srca = get_ilong (2); + put_word (srca, regs.sr | 0x0010); + MakeSR (regs); + put_word (srca, regs.sr); + } + } + m68k_incpc (6); + return 20 * CYCLE_UNIT / 2; } #endif @@ -28875,23 +43086,40 @@ return 20 * CYCLE_UNIT / 2; /* RTE.L */ uae_u32 REGPARAM2 CPUFUNC(op_4e73_5)(uae_u32 opcode, struct regstruct ®s) { -{if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; } -{{ uaecptr sra; - sra = m68k_areg (regs, 7); -{ uae_s16 sr = get_word (sra); - m68k_areg (regs, 7) += 2; -{ uaecptr pca; - pca = m68k_areg (regs, 7); -{ uae_s32 pc = get_long (pca); - m68k_areg (regs, 7) += 4; - regs.sr = sr; - if (pc & 1) { - exception3i (0x4E73, pc); - return 16 * CYCLE_UNIT / 2; - } - m68k_setpc (pc); - MakeFromSR(regs); -}}}}}}return 20 * CYCLE_UNIT / 2; + { + if (!regs.s) + { + Exception (8); + return 4 * CYCLE_UNIT / 2; + } + { + { + uaecptr sra; + sra = m68k_areg (regs, 7); + { + uae_s16 sr = get_word (sra); + m68k_areg (regs, 7) += 2; + { + uaecptr pca; + pca = m68k_areg (regs, 7); + { + uae_s32 pc = get_long (pca); + m68k_areg (regs, 7) += 4; + regs.sr = sr; + if (pc & 1) + { + exception3i (0x4E73, pc); + return 16 * CYCLE_UNIT / 2; + } + m68k_setpc (pc); + MakeFromSR(regs); + } + } + } + } + } + } + return 20 * CYCLE_UNIT / 2; } #endif diff --git a/src/cpustbl.cpp b/src/cpustbl.cpp index b54f407f..471960af 100644 --- a/src/cpustbl.cpp +++ b/src/cpustbl.cpp @@ -1,7 +1,7 @@ #include "sysconfig.h" #include "sysdeps.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "cpu_prefetch.h" @@ -13,12072 +13,12086 @@ #include "noflags.h" #endif #ifdef CPUEMU_0 -const struct cputbl CPUFUNC(op_smalltbl_0)[] = { -{ CPUFUNC(op_0000_0), 0 }, /* OR */ -{ CPUFUNC(op_0010_0), 16 }, /* OR */ -{ CPUFUNC(op_0018_0), 24 }, /* OR */ -{ CPUFUNC(op_0020_0), 32 }, /* OR */ -{ CPUFUNC(op_0028_0), 40 }, /* OR */ -{ CPUFUNC(op_0030_0), 48 }, /* OR */ -{ CPUFUNC(op_0038_0), 56 }, /* OR */ -{ CPUFUNC(op_0039_0), 57 }, /* OR */ -{ CPUFUNC(op_003c_0), 60 }, /* ORSR */ -{ CPUFUNC(op_0040_0), 64 }, /* OR */ -{ CPUFUNC(op_0050_0), 80 }, /* OR */ -{ CPUFUNC(op_0058_0), 88 }, /* OR */ -{ CPUFUNC(op_0060_0), 96 }, /* OR */ -{ CPUFUNC(op_0068_0), 104 }, /* OR */ -{ CPUFUNC(op_0070_0), 112 }, /* OR */ -{ CPUFUNC(op_0078_0), 120 }, /* OR */ -{ CPUFUNC(op_0079_0), 121 }, /* OR */ -{ CPUFUNC(op_007c_0), 124 }, /* ORSR */ -{ CPUFUNC(op_0080_0), 128 }, /* OR */ -{ CPUFUNC(op_0090_0), 144 }, /* OR */ -{ CPUFUNC(op_0098_0), 152 }, /* OR */ -{ CPUFUNC(op_00a0_0), 160 }, /* OR */ -{ CPUFUNC(op_00a8_0), 168 }, /* OR */ -{ CPUFUNC(op_00b0_0), 176 }, /* OR */ -{ CPUFUNC(op_00b8_0), 184 }, /* OR */ -{ CPUFUNC(op_00b9_0), 185 }, /* OR */ -{ CPUFUNC(op_00d0_0), 208 }, /* CHK2 */ -{ CPUFUNC(op_00e8_0), 232 }, /* CHK2 */ -{ CPUFUNC(op_00f0_0), 240 }, /* CHK2 */ -{ CPUFUNC(op_00f8_0), 248 }, /* CHK2 */ -{ CPUFUNC(op_00f9_0), 249 }, /* CHK2 */ -{ CPUFUNC(op_00fa_0), 250 }, /* CHK2 */ -{ CPUFUNC(op_00fb_0), 251 }, /* CHK2 */ -{ CPUFUNC(op_0100_0), 256 }, /* BTST */ -{ CPUFUNC(op_0108_0), 264 }, /* MVPMR */ -{ CPUFUNC(op_0110_0), 272 }, /* BTST */ -{ CPUFUNC(op_0118_0), 280 }, /* BTST */ -{ CPUFUNC(op_0120_0), 288 }, /* BTST */ -{ CPUFUNC(op_0128_0), 296 }, /* BTST */ -{ CPUFUNC(op_0130_0), 304 }, /* BTST */ -{ CPUFUNC(op_0138_0), 312 }, /* BTST */ -{ CPUFUNC(op_0139_0), 313 }, /* BTST */ -{ CPUFUNC(op_013a_0), 314 }, /* BTST */ -{ CPUFUNC(op_013b_0), 315 }, /* BTST */ -{ CPUFUNC(op_013c_0), 316 }, /* BTST */ -{ CPUFUNC(op_0140_0), 320 }, /* BCHG */ -{ CPUFUNC(op_0148_0), 328 }, /* MVPMR */ -{ CPUFUNC(op_0150_0), 336 }, /* BCHG */ -{ CPUFUNC(op_0158_0), 344 }, /* BCHG */ -{ CPUFUNC(op_0160_0), 352 }, /* BCHG */ -{ CPUFUNC(op_0168_0), 360 }, /* BCHG */ -{ CPUFUNC(op_0170_0), 368 }, /* BCHG */ -{ CPUFUNC(op_0178_0), 376 }, /* BCHG */ -{ CPUFUNC(op_0179_0), 377 }, /* BCHG */ -{ CPUFUNC(op_0180_0), 384 }, /* BCLR */ -{ CPUFUNC(op_0188_0), 392 }, /* MVPRM */ -{ CPUFUNC(op_0190_0), 400 }, /* BCLR */ -{ CPUFUNC(op_0198_0), 408 }, /* BCLR */ -{ CPUFUNC(op_01a0_0), 416 }, /* BCLR */ -{ CPUFUNC(op_01a8_0), 424 }, /* BCLR */ -{ CPUFUNC(op_01b0_0), 432 }, /* BCLR */ -{ CPUFUNC(op_01b8_0), 440 }, /* BCLR */ -{ CPUFUNC(op_01b9_0), 441 }, /* BCLR */ -{ CPUFUNC(op_01c0_0), 448 }, /* BSET */ -{ CPUFUNC(op_01c8_0), 456 }, /* MVPRM */ -{ CPUFUNC(op_01d0_0), 464 }, /* BSET */ -{ CPUFUNC(op_01d8_0), 472 }, /* BSET */ -{ CPUFUNC(op_01e0_0), 480 }, /* BSET */ -{ CPUFUNC(op_01e8_0), 488 }, /* BSET */ -{ CPUFUNC(op_01f0_0), 496 }, /* BSET */ -{ CPUFUNC(op_01f8_0), 504 }, /* BSET */ -{ CPUFUNC(op_01f9_0), 505 }, /* BSET */ -{ CPUFUNC(op_0200_0), 512 }, /* AND */ -{ CPUFUNC(op_0210_0), 528 }, /* AND */ -{ CPUFUNC(op_0218_0), 536 }, /* AND */ -{ CPUFUNC(op_0220_0), 544 }, /* AND */ -{ CPUFUNC(op_0228_0), 552 }, /* AND */ -{ CPUFUNC(op_0230_0), 560 }, /* AND */ -{ CPUFUNC(op_0238_0), 568 }, /* AND */ -{ CPUFUNC(op_0239_0), 569 }, /* AND */ -{ CPUFUNC(op_023c_0), 572 }, /* ANDSR */ -{ CPUFUNC(op_0240_0), 576 }, /* AND */ -{ CPUFUNC(op_0250_0), 592 }, /* AND */ -{ CPUFUNC(op_0258_0), 600 }, /* AND */ -{ CPUFUNC(op_0260_0), 608 }, /* AND */ -{ CPUFUNC(op_0268_0), 616 }, /* AND */ -{ CPUFUNC(op_0270_0), 624 }, /* AND */ -{ CPUFUNC(op_0278_0), 632 }, /* AND */ -{ CPUFUNC(op_0279_0), 633 }, /* AND */ -{ CPUFUNC(op_027c_0), 636 }, /* ANDSR */ -{ CPUFUNC(op_0280_0), 640 }, /* AND */ -{ CPUFUNC(op_0290_0), 656 }, /* AND */ -{ CPUFUNC(op_0298_0), 664 }, /* AND */ -{ CPUFUNC(op_02a0_0), 672 }, /* AND */ -{ CPUFUNC(op_02a8_0), 680 }, /* AND */ -{ CPUFUNC(op_02b0_0), 688 }, /* AND */ -{ CPUFUNC(op_02b8_0), 696 }, /* AND */ -{ CPUFUNC(op_02b9_0), 697 }, /* AND */ -{ CPUFUNC(op_02d0_0), 720 }, /* CHK2 */ -{ CPUFUNC(op_02e8_0), 744 }, /* CHK2 */ -{ CPUFUNC(op_02f0_0), 752 }, /* CHK2 */ -{ CPUFUNC(op_02f8_0), 760 }, /* CHK2 */ -{ CPUFUNC(op_02f9_0), 761 }, /* CHK2 */ -{ CPUFUNC(op_02fa_0), 762 }, /* CHK2 */ -{ CPUFUNC(op_02fb_0), 763 }, /* CHK2 */ -{ CPUFUNC(op_0400_0), 1024 }, /* SUB */ -{ CPUFUNC(op_0410_0), 1040 }, /* SUB */ -{ CPUFUNC(op_0418_0), 1048 }, /* SUB */ -{ CPUFUNC(op_0420_0), 1056 }, /* SUB */ -{ CPUFUNC(op_0428_0), 1064 }, /* SUB */ -{ CPUFUNC(op_0430_0), 1072 }, /* SUB */ -{ CPUFUNC(op_0438_0), 1080 }, /* SUB */ -{ CPUFUNC(op_0439_0), 1081 }, /* SUB */ -{ CPUFUNC(op_0440_0), 1088 }, /* SUB */ -{ CPUFUNC(op_0450_0), 1104 }, /* SUB */ -{ CPUFUNC(op_0458_0), 1112 }, /* SUB */ -{ CPUFUNC(op_0460_0), 1120 }, /* SUB */ -{ CPUFUNC(op_0468_0), 1128 }, /* SUB */ -{ CPUFUNC(op_0470_0), 1136 }, /* SUB */ -{ CPUFUNC(op_0478_0), 1144 }, /* SUB */ -{ CPUFUNC(op_0479_0), 1145 }, /* SUB */ -{ CPUFUNC(op_0480_0), 1152 }, /* SUB */ -{ CPUFUNC(op_0490_0), 1168 }, /* SUB */ -{ CPUFUNC(op_0498_0), 1176 }, /* SUB */ -{ CPUFUNC(op_04a0_0), 1184 }, /* SUB */ -{ CPUFUNC(op_04a8_0), 1192 }, /* SUB */ -{ CPUFUNC(op_04b0_0), 1200 }, /* SUB */ -{ CPUFUNC(op_04b8_0), 1208 }, /* SUB */ -{ CPUFUNC(op_04b9_0), 1209 }, /* SUB */ -{ CPUFUNC(op_04d0_0), 1232 }, /* CHK2 */ -{ CPUFUNC(op_04e8_0), 1256 }, /* CHK2 */ -{ CPUFUNC(op_04f0_0), 1264 }, /* CHK2 */ -{ CPUFUNC(op_04f8_0), 1272 }, /* CHK2 */ -{ CPUFUNC(op_04f9_0), 1273 }, /* CHK2 */ -{ CPUFUNC(op_04fa_0), 1274 }, /* CHK2 */ -{ CPUFUNC(op_04fb_0), 1275 }, /* CHK2 */ -{ CPUFUNC(op_0600_0), 1536 }, /* ADD */ -{ CPUFUNC(op_0610_0), 1552 }, /* ADD */ -{ CPUFUNC(op_0618_0), 1560 }, /* ADD */ -{ CPUFUNC(op_0620_0), 1568 }, /* ADD */ -{ CPUFUNC(op_0628_0), 1576 }, /* ADD */ -{ CPUFUNC(op_0630_0), 1584 }, /* ADD */ -{ CPUFUNC(op_0638_0), 1592 }, /* ADD */ -{ CPUFUNC(op_0639_0), 1593 }, /* ADD */ -{ CPUFUNC(op_0640_0), 1600 }, /* ADD */ -{ CPUFUNC(op_0650_0), 1616 }, /* ADD */ -{ CPUFUNC(op_0658_0), 1624 }, /* ADD */ -{ CPUFUNC(op_0660_0), 1632 }, /* ADD */ -{ CPUFUNC(op_0668_0), 1640 }, /* ADD */ -{ CPUFUNC(op_0670_0), 1648 }, /* ADD */ -{ CPUFUNC(op_0678_0), 1656 }, /* ADD */ -{ CPUFUNC(op_0679_0), 1657 }, /* ADD */ -{ CPUFUNC(op_0680_0), 1664 }, /* ADD */ -{ CPUFUNC(op_0690_0), 1680 }, /* ADD */ -{ CPUFUNC(op_0698_0), 1688 }, /* ADD */ -{ CPUFUNC(op_06a0_0), 1696 }, /* ADD */ -{ CPUFUNC(op_06a8_0), 1704 }, /* ADD */ -{ CPUFUNC(op_06b0_0), 1712 }, /* ADD */ -{ CPUFUNC(op_06b8_0), 1720 }, /* ADD */ -{ CPUFUNC(op_06b9_0), 1721 }, /* ADD */ -{ CPUFUNC(op_06c0_0), 1728 }, /* RTM */ -{ CPUFUNC(op_06c8_0), 1736 }, /* RTM */ -{ CPUFUNC(op_06d0_0), 1744 }, /* CALLM */ -{ CPUFUNC(op_06e8_0), 1768 }, /* CALLM */ -{ CPUFUNC(op_06f0_0), 1776 }, /* CALLM */ -{ CPUFUNC(op_06f8_0), 1784 }, /* CALLM */ -{ CPUFUNC(op_06f9_0), 1785 }, /* CALLM */ -{ CPUFUNC(op_06fa_0), 1786 }, /* CALLM */ -{ CPUFUNC(op_06fb_0), 1787 }, /* CALLM */ -{ CPUFUNC(op_0800_0), 2048 }, /* BTST */ -{ CPUFUNC(op_0810_0), 2064 }, /* BTST */ -{ CPUFUNC(op_0818_0), 2072 }, /* BTST */ -{ CPUFUNC(op_0820_0), 2080 }, /* BTST */ -{ CPUFUNC(op_0828_0), 2088 }, /* BTST */ -{ CPUFUNC(op_0830_0), 2096 }, /* BTST */ -{ CPUFUNC(op_0838_0), 2104 }, /* BTST */ -{ CPUFUNC(op_0839_0), 2105 }, /* BTST */ -{ CPUFUNC(op_083a_0), 2106 }, /* BTST */ -{ CPUFUNC(op_083b_0), 2107 }, /* BTST */ -{ CPUFUNC(op_083c_0), 2108 }, /* BTST */ -{ CPUFUNC(op_0840_0), 2112 }, /* BCHG */ -{ CPUFUNC(op_0850_0), 2128 }, /* BCHG */ -{ CPUFUNC(op_0858_0), 2136 }, /* BCHG */ -{ CPUFUNC(op_0860_0), 2144 }, /* BCHG */ -{ CPUFUNC(op_0868_0), 2152 }, /* BCHG */ -{ CPUFUNC(op_0870_0), 2160 }, /* BCHG */ -{ CPUFUNC(op_0878_0), 2168 }, /* BCHG */ -{ CPUFUNC(op_0879_0), 2169 }, /* BCHG */ -{ CPUFUNC(op_0880_0), 2176 }, /* BCLR */ -{ CPUFUNC(op_0890_0), 2192 }, /* BCLR */ -{ CPUFUNC(op_0898_0), 2200 }, /* BCLR */ -{ CPUFUNC(op_08a0_0), 2208 }, /* BCLR */ -{ CPUFUNC(op_08a8_0), 2216 }, /* BCLR */ -{ CPUFUNC(op_08b0_0), 2224 }, /* BCLR */ -{ CPUFUNC(op_08b8_0), 2232 }, /* BCLR */ -{ CPUFUNC(op_08b9_0), 2233 }, /* BCLR */ -{ CPUFUNC(op_08c0_0), 2240 }, /* BSET */ -{ CPUFUNC(op_08d0_0), 2256 }, /* BSET */ -{ CPUFUNC(op_08d8_0), 2264 }, /* BSET */ -{ CPUFUNC(op_08e0_0), 2272 }, /* BSET */ -{ CPUFUNC(op_08e8_0), 2280 }, /* BSET */ -{ CPUFUNC(op_08f0_0), 2288 }, /* BSET */ -{ CPUFUNC(op_08f8_0), 2296 }, /* BSET */ -{ CPUFUNC(op_08f9_0), 2297 }, /* BSET */ -{ CPUFUNC(op_0a00_0), 2560 }, /* EOR */ -{ CPUFUNC(op_0a10_0), 2576 }, /* EOR */ -{ CPUFUNC(op_0a18_0), 2584 }, /* EOR */ -{ CPUFUNC(op_0a20_0), 2592 }, /* EOR */ -{ CPUFUNC(op_0a28_0), 2600 }, /* EOR */ -{ CPUFUNC(op_0a30_0), 2608 }, /* EOR */ -{ CPUFUNC(op_0a38_0), 2616 }, /* EOR */ -{ CPUFUNC(op_0a39_0), 2617 }, /* EOR */ -{ CPUFUNC(op_0a3c_0), 2620 }, /* EORSR */ -{ CPUFUNC(op_0a40_0), 2624 }, /* EOR */ -{ CPUFUNC(op_0a50_0), 2640 }, /* EOR */ -{ CPUFUNC(op_0a58_0), 2648 }, /* EOR */ -{ CPUFUNC(op_0a60_0), 2656 }, /* EOR */ -{ CPUFUNC(op_0a68_0), 2664 }, /* EOR */ -{ CPUFUNC(op_0a70_0), 2672 }, /* EOR */ -{ CPUFUNC(op_0a78_0), 2680 }, /* EOR */ -{ CPUFUNC(op_0a79_0), 2681 }, /* EOR */ -{ CPUFUNC(op_0a7c_0), 2684 }, /* EORSR */ -{ CPUFUNC(op_0a80_0), 2688 }, /* EOR */ -{ CPUFUNC(op_0a90_0), 2704 }, /* EOR */ -{ CPUFUNC(op_0a98_0), 2712 }, /* EOR */ -{ CPUFUNC(op_0aa0_0), 2720 }, /* EOR */ -{ CPUFUNC(op_0aa8_0), 2728 }, /* EOR */ -{ CPUFUNC(op_0ab0_0), 2736 }, /* EOR */ -{ CPUFUNC(op_0ab8_0), 2744 }, /* EOR */ -{ CPUFUNC(op_0ab9_0), 2745 }, /* EOR */ -{ CPUFUNC(op_0ad0_0), 2768 }, /* CAS */ -{ CPUFUNC(op_0ad8_0), 2776 }, /* CAS */ -{ CPUFUNC(op_0ae0_0), 2784 }, /* CAS */ -{ CPUFUNC(op_0ae8_0), 2792 }, /* CAS */ -{ CPUFUNC(op_0af0_0), 2800 }, /* CAS */ -{ CPUFUNC(op_0af8_0), 2808 }, /* CAS */ -{ CPUFUNC(op_0af9_0), 2809 }, /* CAS */ -{ CPUFUNC(op_0c00_0), 3072 }, /* CMP */ -{ CPUFUNC(op_0c10_0), 3088 }, /* CMP */ -{ CPUFUNC(op_0c18_0), 3096 }, /* CMP */ -{ CPUFUNC(op_0c20_0), 3104 }, /* CMP */ -{ CPUFUNC(op_0c28_0), 3112 }, /* CMP */ -{ CPUFUNC(op_0c30_0), 3120 }, /* CMP */ -{ CPUFUNC(op_0c38_0), 3128 }, /* CMP */ -{ CPUFUNC(op_0c39_0), 3129 }, /* CMP */ -{ CPUFUNC(op_0c3a_0), 3130 }, /* CMP */ -{ CPUFUNC(op_0c3b_0), 3131 }, /* CMP */ -{ CPUFUNC(op_0c40_0), 3136 }, /* CMP */ -{ CPUFUNC(op_0c50_0), 3152 }, /* CMP */ -{ CPUFUNC(op_0c58_0), 3160 }, /* CMP */ -{ CPUFUNC(op_0c60_0), 3168 }, /* CMP */ -{ CPUFUNC(op_0c68_0), 3176 }, /* CMP */ -{ CPUFUNC(op_0c70_0), 3184 }, /* CMP */ -{ CPUFUNC(op_0c78_0), 3192 }, /* CMP */ -{ CPUFUNC(op_0c79_0), 3193 }, /* CMP */ -{ CPUFUNC(op_0c7a_0), 3194 }, /* CMP */ -{ CPUFUNC(op_0c7b_0), 3195 }, /* CMP */ -{ CPUFUNC(op_0c80_0), 3200 }, /* CMP */ -{ CPUFUNC(op_0c90_0), 3216 }, /* CMP */ -{ CPUFUNC(op_0c98_0), 3224 }, /* CMP */ -{ CPUFUNC(op_0ca0_0), 3232 }, /* CMP */ -{ CPUFUNC(op_0ca8_0), 3240 }, /* CMP */ -{ CPUFUNC(op_0cb0_0), 3248 }, /* CMP */ -{ CPUFUNC(op_0cb8_0), 3256 }, /* CMP */ -{ CPUFUNC(op_0cb9_0), 3257 }, /* CMP */ -{ CPUFUNC(op_0cba_0), 3258 }, /* CMP */ -{ CPUFUNC(op_0cbb_0), 3259 }, /* CMP */ -{ CPUFUNC(op_0cd0_0), 3280 }, /* CAS */ -{ CPUFUNC(op_0cd8_0), 3288 }, /* CAS */ -{ CPUFUNC(op_0ce0_0), 3296 }, /* CAS */ -{ CPUFUNC(op_0ce8_0), 3304 }, /* CAS */ -{ CPUFUNC(op_0cf0_0), 3312 }, /* CAS */ -{ CPUFUNC(op_0cf8_0), 3320 }, /* CAS */ -{ CPUFUNC(op_0cf9_0), 3321 }, /* CAS */ -{ CPUFUNC(op_0cfc_0), 3324 }, /* CAS2 */ -{ CPUFUNC(op_0e10_0), 3600 }, /* MOVES */ -{ CPUFUNC(op_0e18_0), 3608 }, /* MOVES */ -{ CPUFUNC(op_0e20_0), 3616 }, /* MOVES */ -{ CPUFUNC(op_0e28_0), 3624 }, /* MOVES */ -{ CPUFUNC(op_0e30_0), 3632 }, /* MOVES */ -{ CPUFUNC(op_0e38_0), 3640 }, /* MOVES */ -{ CPUFUNC(op_0e39_0), 3641 }, /* MOVES */ -{ CPUFUNC(op_0e50_0), 3664 }, /* MOVES */ -{ CPUFUNC(op_0e58_0), 3672 }, /* MOVES */ -{ CPUFUNC(op_0e60_0), 3680 }, /* MOVES */ -{ CPUFUNC(op_0e68_0), 3688 }, /* MOVES */ -{ CPUFUNC(op_0e70_0), 3696 }, /* MOVES */ -{ CPUFUNC(op_0e78_0), 3704 }, /* MOVES */ -{ CPUFUNC(op_0e79_0), 3705 }, /* MOVES */ -{ CPUFUNC(op_0e90_0), 3728 }, /* MOVES */ -{ CPUFUNC(op_0e98_0), 3736 }, /* MOVES */ -{ CPUFUNC(op_0ea0_0), 3744 }, /* MOVES */ -{ CPUFUNC(op_0ea8_0), 3752 }, /* MOVES */ -{ CPUFUNC(op_0eb0_0), 3760 }, /* MOVES */ -{ CPUFUNC(op_0eb8_0), 3768 }, /* MOVES */ -{ CPUFUNC(op_0eb9_0), 3769 }, /* MOVES */ -{ CPUFUNC(op_0ed0_0), 3792 }, /* CAS */ -{ CPUFUNC(op_0ed8_0), 3800 }, /* CAS */ -{ CPUFUNC(op_0ee0_0), 3808 }, /* CAS */ -{ CPUFUNC(op_0ee8_0), 3816 }, /* CAS */ -{ CPUFUNC(op_0ef0_0), 3824 }, /* CAS */ -{ CPUFUNC(op_0ef8_0), 3832 }, /* CAS */ -{ CPUFUNC(op_0ef9_0), 3833 }, /* CAS */ -{ CPUFUNC(op_0efc_0), 3836 }, /* CAS2 */ -{ CPUFUNC(op_1000_0), 4096 }, /* MOVE */ -{ CPUFUNC(op_1010_0), 4112 }, /* MOVE */ -{ CPUFUNC(op_1018_0), 4120 }, /* MOVE */ -{ CPUFUNC(op_1020_0), 4128 }, /* MOVE */ -{ CPUFUNC(op_1028_0), 4136 }, /* MOVE */ -{ CPUFUNC(op_1030_0), 4144 }, /* MOVE */ -{ CPUFUNC(op_1038_0), 4152 }, /* MOVE */ -{ CPUFUNC(op_1039_0), 4153 }, /* MOVE */ -{ CPUFUNC(op_103a_0), 4154 }, /* MOVE */ -{ CPUFUNC(op_103b_0), 4155 }, /* MOVE */ -{ CPUFUNC(op_103c_0), 4156 }, /* MOVE */ -{ CPUFUNC(op_1080_0), 4224 }, /* MOVE */ -{ CPUFUNC(op_1090_0), 4240 }, /* MOVE */ -{ CPUFUNC(op_1098_0), 4248 }, /* MOVE */ -{ CPUFUNC(op_10a0_0), 4256 }, /* MOVE */ -{ CPUFUNC(op_10a8_0), 4264 }, /* MOVE */ -{ CPUFUNC(op_10b0_0), 4272 }, /* MOVE */ -{ CPUFUNC(op_10b8_0), 4280 }, /* MOVE */ -{ CPUFUNC(op_10b9_0), 4281 }, /* MOVE */ -{ CPUFUNC(op_10ba_0), 4282 }, /* MOVE */ -{ CPUFUNC(op_10bb_0), 4283 }, /* MOVE */ -{ CPUFUNC(op_10bc_0), 4284 }, /* MOVE */ -{ CPUFUNC(op_10c0_0), 4288 }, /* MOVE */ -{ CPUFUNC(op_10d0_0), 4304 }, /* MOVE */ -{ CPUFUNC(op_10d8_0), 4312 }, /* MOVE */ -{ CPUFUNC(op_10e0_0), 4320 }, /* MOVE */ -{ CPUFUNC(op_10e8_0), 4328 }, /* MOVE */ -{ CPUFUNC(op_10f0_0), 4336 }, /* MOVE */ -{ CPUFUNC(op_10f8_0), 4344 }, /* MOVE */ -{ CPUFUNC(op_10f9_0), 4345 }, /* MOVE */ -{ CPUFUNC(op_10fa_0), 4346 }, /* MOVE */ -{ CPUFUNC(op_10fb_0), 4347 }, /* MOVE */ -{ CPUFUNC(op_10fc_0), 4348 }, /* MOVE */ -{ CPUFUNC(op_1100_0), 4352 }, /* MOVE */ -{ CPUFUNC(op_1110_0), 4368 }, /* MOVE */ -{ CPUFUNC(op_1118_0), 4376 }, /* MOVE */ -{ CPUFUNC(op_1120_0), 4384 }, /* MOVE */ -{ CPUFUNC(op_1128_0), 4392 }, /* MOVE */ -{ CPUFUNC(op_1130_0), 4400 }, /* MOVE */ -{ CPUFUNC(op_1138_0), 4408 }, /* MOVE */ -{ CPUFUNC(op_1139_0), 4409 }, /* MOVE */ -{ CPUFUNC(op_113a_0), 4410 }, /* MOVE */ -{ CPUFUNC(op_113b_0), 4411 }, /* MOVE */ -{ CPUFUNC(op_113c_0), 4412 }, /* MOVE */ -{ CPUFUNC(op_1140_0), 4416 }, /* MOVE */ -{ CPUFUNC(op_1150_0), 4432 }, /* MOVE */ -{ CPUFUNC(op_1158_0), 4440 }, /* MOVE */ -{ CPUFUNC(op_1160_0), 4448 }, /* MOVE */ -{ CPUFUNC(op_1168_0), 4456 }, /* MOVE */ -{ CPUFUNC(op_1170_0), 4464 }, /* MOVE */ -{ CPUFUNC(op_1178_0), 4472 }, /* MOVE */ -{ CPUFUNC(op_1179_0), 4473 }, /* MOVE */ -{ CPUFUNC(op_117a_0), 4474 }, /* MOVE */ -{ CPUFUNC(op_117b_0), 4475 }, /* MOVE */ -{ CPUFUNC(op_117c_0), 4476 }, /* MOVE */ -{ CPUFUNC(op_1180_0), 4480 }, /* MOVE */ -{ CPUFUNC(op_1190_0), 4496 }, /* MOVE */ -{ CPUFUNC(op_1198_0), 4504 }, /* MOVE */ -{ CPUFUNC(op_11a0_0), 4512 }, /* MOVE */ -{ CPUFUNC(op_11a8_0), 4520 }, /* MOVE */ -{ CPUFUNC(op_11b0_0), 4528 }, /* MOVE */ -{ CPUFUNC(op_11b8_0), 4536 }, /* MOVE */ -{ CPUFUNC(op_11b9_0), 4537 }, /* MOVE */ -{ CPUFUNC(op_11ba_0), 4538 }, /* MOVE */ -{ CPUFUNC(op_11bb_0), 4539 }, /* MOVE */ -{ CPUFUNC(op_11bc_0), 4540 }, /* MOVE */ -{ CPUFUNC(op_11c0_0), 4544 }, /* MOVE */ -{ CPUFUNC(op_11d0_0), 4560 }, /* MOVE */ -{ CPUFUNC(op_11d8_0), 4568 }, /* MOVE */ -{ CPUFUNC(op_11e0_0), 4576 }, /* MOVE */ -{ CPUFUNC(op_11e8_0), 4584 }, /* MOVE */ -{ CPUFUNC(op_11f0_0), 4592 }, /* MOVE */ -{ CPUFUNC(op_11f8_0), 4600 }, /* MOVE */ -{ CPUFUNC(op_11f9_0), 4601 }, /* MOVE */ -{ CPUFUNC(op_11fa_0), 4602 }, /* MOVE */ -{ CPUFUNC(op_11fb_0), 4603 }, /* MOVE */ -{ CPUFUNC(op_11fc_0), 4604 }, /* MOVE */ -{ CPUFUNC(op_13c0_0), 5056 }, /* MOVE */ -{ CPUFUNC(op_13d0_0), 5072 }, /* MOVE */ -{ CPUFUNC(op_13d8_0), 5080 }, /* MOVE */ -{ CPUFUNC(op_13e0_0), 5088 }, /* MOVE */ -{ CPUFUNC(op_13e8_0), 5096 }, /* MOVE */ -{ CPUFUNC(op_13f0_0), 5104 }, /* MOVE */ -{ CPUFUNC(op_13f8_0), 5112 }, /* MOVE */ -{ CPUFUNC(op_13f9_0), 5113 }, /* MOVE */ -{ CPUFUNC(op_13fa_0), 5114 }, /* MOVE */ -{ CPUFUNC(op_13fb_0), 5115 }, /* MOVE */ -{ CPUFUNC(op_13fc_0), 5116 }, /* MOVE */ -{ CPUFUNC(op_2000_0), 8192 }, /* MOVE */ -{ CPUFUNC(op_2008_0), 8200 }, /* MOVE */ -{ CPUFUNC(op_2010_0), 8208 }, /* MOVE */ -{ CPUFUNC(op_2018_0), 8216 }, /* MOVE */ -{ CPUFUNC(op_2020_0), 8224 }, /* MOVE */ -{ CPUFUNC(op_2028_0), 8232 }, /* MOVE */ -{ CPUFUNC(op_2030_0), 8240 }, /* MOVE */ -{ CPUFUNC(op_2038_0), 8248 }, /* MOVE */ -{ CPUFUNC(op_2039_0), 8249 }, /* MOVE */ -{ CPUFUNC(op_203a_0), 8250 }, /* MOVE */ -{ CPUFUNC(op_203b_0), 8251 }, /* MOVE */ -{ CPUFUNC(op_203c_0), 8252 }, /* MOVE */ -{ CPUFUNC(op_2040_0), 8256 }, /* MOVEA */ -{ CPUFUNC(op_2048_0), 8264 }, /* MOVEA */ -{ CPUFUNC(op_2050_0), 8272 }, /* MOVEA */ -{ CPUFUNC(op_2058_0), 8280 }, /* MOVEA */ -{ CPUFUNC(op_2060_0), 8288 }, /* MOVEA */ -{ CPUFUNC(op_2068_0), 8296 }, /* MOVEA */ -{ CPUFUNC(op_2070_0), 8304 }, /* MOVEA */ -{ CPUFUNC(op_2078_0), 8312 }, /* MOVEA */ -{ CPUFUNC(op_2079_0), 8313 }, /* MOVEA */ -{ CPUFUNC(op_207a_0), 8314 }, /* MOVEA */ -{ CPUFUNC(op_207b_0), 8315 }, /* MOVEA */ -{ CPUFUNC(op_207c_0), 8316 }, /* MOVEA */ -{ CPUFUNC(op_2080_0), 8320 }, /* MOVE */ -{ CPUFUNC(op_2088_0), 8328 }, /* MOVE */ -{ CPUFUNC(op_2090_0), 8336 }, /* MOVE */ -{ CPUFUNC(op_2098_0), 8344 }, /* MOVE */ -{ CPUFUNC(op_20a0_0), 8352 }, /* MOVE */ -{ CPUFUNC(op_20a8_0), 8360 }, /* MOVE */ -{ CPUFUNC(op_20b0_0), 8368 }, /* MOVE */ -{ CPUFUNC(op_20b8_0), 8376 }, /* MOVE */ -{ CPUFUNC(op_20b9_0), 8377 }, /* MOVE */ -{ CPUFUNC(op_20ba_0), 8378 }, /* MOVE */ -{ CPUFUNC(op_20bb_0), 8379 }, /* MOVE */ -{ CPUFUNC(op_20bc_0), 8380 }, /* MOVE */ -{ CPUFUNC(op_20c0_0), 8384 }, /* MOVE */ -{ CPUFUNC(op_20c8_0), 8392 }, /* MOVE */ -{ CPUFUNC(op_20d0_0), 8400 }, /* MOVE */ -{ CPUFUNC(op_20d8_0), 8408 }, /* MOVE */ -{ CPUFUNC(op_20e0_0), 8416 }, /* MOVE */ -{ CPUFUNC(op_20e8_0), 8424 }, /* MOVE */ -{ CPUFUNC(op_20f0_0), 8432 }, /* MOVE */ -{ CPUFUNC(op_20f8_0), 8440 }, /* MOVE */ -{ CPUFUNC(op_20f9_0), 8441 }, /* MOVE */ -{ CPUFUNC(op_20fa_0), 8442 }, /* MOVE */ -{ CPUFUNC(op_20fb_0), 8443 }, /* MOVE */ -{ CPUFUNC(op_20fc_0), 8444 }, /* MOVE */ -{ CPUFUNC(op_2100_0), 8448 }, /* MOVE */ -{ CPUFUNC(op_2108_0), 8456 }, /* MOVE */ -{ CPUFUNC(op_2110_0), 8464 }, /* MOVE */ -{ CPUFUNC(op_2118_0), 8472 }, /* MOVE */ -{ CPUFUNC(op_2120_0), 8480 }, /* MOVE */ -{ CPUFUNC(op_2128_0), 8488 }, /* MOVE */ -{ CPUFUNC(op_2130_0), 8496 }, /* MOVE */ -{ CPUFUNC(op_2138_0), 8504 }, /* MOVE */ -{ CPUFUNC(op_2139_0), 8505 }, /* MOVE */ -{ CPUFUNC(op_213a_0), 8506 }, /* MOVE */ -{ CPUFUNC(op_213b_0), 8507 }, /* MOVE */ -{ CPUFUNC(op_213c_0), 8508 }, /* MOVE */ -{ CPUFUNC(op_2140_0), 8512 }, /* MOVE */ -{ CPUFUNC(op_2148_0), 8520 }, /* MOVE */ -{ CPUFUNC(op_2150_0), 8528 }, /* MOVE */ -{ CPUFUNC(op_2158_0), 8536 }, /* MOVE */ -{ CPUFUNC(op_2160_0), 8544 }, /* MOVE */ -{ CPUFUNC(op_2168_0), 8552 }, /* MOVE */ -{ CPUFUNC(op_2170_0), 8560 }, /* MOVE */ -{ CPUFUNC(op_2178_0), 8568 }, /* MOVE */ -{ CPUFUNC(op_2179_0), 8569 }, /* MOVE */ -{ CPUFUNC(op_217a_0), 8570 }, /* MOVE */ -{ CPUFUNC(op_217b_0), 8571 }, /* MOVE */ -{ CPUFUNC(op_217c_0), 8572 }, /* MOVE */ -{ CPUFUNC(op_2180_0), 8576 }, /* MOVE */ -{ CPUFUNC(op_2188_0), 8584 }, /* MOVE */ -{ CPUFUNC(op_2190_0), 8592 }, /* MOVE */ -{ CPUFUNC(op_2198_0), 8600 }, /* MOVE */ -{ CPUFUNC(op_21a0_0), 8608 }, /* MOVE */ -{ CPUFUNC(op_21a8_0), 8616 }, /* MOVE */ -{ CPUFUNC(op_21b0_0), 8624 }, /* MOVE */ -{ CPUFUNC(op_21b8_0), 8632 }, /* MOVE */ -{ CPUFUNC(op_21b9_0), 8633 }, /* MOVE */ -{ CPUFUNC(op_21ba_0), 8634 }, /* MOVE */ -{ CPUFUNC(op_21bb_0), 8635 }, /* MOVE */ -{ CPUFUNC(op_21bc_0), 8636 }, /* MOVE */ -{ CPUFUNC(op_21c0_0), 8640 }, /* MOVE */ -{ CPUFUNC(op_21c8_0), 8648 }, /* MOVE */ -{ CPUFUNC(op_21d0_0), 8656 }, /* MOVE */ -{ CPUFUNC(op_21d8_0), 8664 }, /* MOVE */ -{ CPUFUNC(op_21e0_0), 8672 }, /* MOVE */ -{ CPUFUNC(op_21e8_0), 8680 }, /* MOVE */ -{ CPUFUNC(op_21f0_0), 8688 }, /* MOVE */ -{ CPUFUNC(op_21f8_0), 8696 }, /* MOVE */ -{ CPUFUNC(op_21f9_0), 8697 }, /* MOVE */ -{ CPUFUNC(op_21fa_0), 8698 }, /* MOVE */ -{ CPUFUNC(op_21fb_0), 8699 }, /* MOVE */ -{ CPUFUNC(op_21fc_0), 8700 }, /* MOVE */ -{ CPUFUNC(op_23c0_0), 9152 }, /* MOVE */ -{ CPUFUNC(op_23c8_0), 9160 }, /* MOVE */ -{ CPUFUNC(op_23d0_0), 9168 }, /* MOVE */ -{ CPUFUNC(op_23d8_0), 9176 }, /* MOVE */ -{ CPUFUNC(op_23e0_0), 9184 }, /* MOVE */ -{ CPUFUNC(op_23e8_0), 9192 }, /* MOVE */ -{ CPUFUNC(op_23f0_0), 9200 }, /* MOVE */ -{ CPUFUNC(op_23f8_0), 9208 }, /* MOVE */ -{ CPUFUNC(op_23f9_0), 9209 }, /* MOVE */ -{ CPUFUNC(op_23fa_0), 9210 }, /* MOVE */ -{ CPUFUNC(op_23fb_0), 9211 }, /* MOVE */ -{ CPUFUNC(op_23fc_0), 9212 }, /* MOVE */ -{ CPUFUNC(op_3000_0), 12288 }, /* MOVE */ -{ CPUFUNC(op_3008_0), 12296 }, /* MOVE */ -{ CPUFUNC(op_3010_0), 12304 }, /* MOVE */ -{ CPUFUNC(op_3018_0), 12312 }, /* MOVE */ -{ CPUFUNC(op_3020_0), 12320 }, /* MOVE */ -{ CPUFUNC(op_3028_0), 12328 }, /* MOVE */ -{ CPUFUNC(op_3030_0), 12336 }, /* MOVE */ -{ CPUFUNC(op_3038_0), 12344 }, /* MOVE */ -{ CPUFUNC(op_3039_0), 12345 }, /* MOVE */ -{ CPUFUNC(op_303a_0), 12346 }, /* MOVE */ -{ CPUFUNC(op_303b_0), 12347 }, /* MOVE */ -{ CPUFUNC(op_303c_0), 12348 }, /* MOVE */ -{ CPUFUNC(op_3040_0), 12352 }, /* MOVEA */ -{ CPUFUNC(op_3048_0), 12360 }, /* MOVEA */ -{ CPUFUNC(op_3050_0), 12368 }, /* MOVEA */ -{ CPUFUNC(op_3058_0), 12376 }, /* MOVEA */ -{ CPUFUNC(op_3060_0), 12384 }, /* MOVEA */ -{ CPUFUNC(op_3068_0), 12392 }, /* MOVEA */ -{ CPUFUNC(op_3070_0), 12400 }, /* MOVEA */ -{ CPUFUNC(op_3078_0), 12408 }, /* MOVEA */ -{ CPUFUNC(op_3079_0), 12409 }, /* MOVEA */ -{ CPUFUNC(op_307a_0), 12410 }, /* MOVEA */ -{ CPUFUNC(op_307b_0), 12411 }, /* MOVEA */ -{ CPUFUNC(op_307c_0), 12412 }, /* MOVEA */ -{ CPUFUNC(op_3080_0), 12416 }, /* MOVE */ -{ CPUFUNC(op_3088_0), 12424 }, /* MOVE */ -{ CPUFUNC(op_3090_0), 12432 }, /* MOVE */ -{ CPUFUNC(op_3098_0), 12440 }, /* MOVE */ -{ CPUFUNC(op_30a0_0), 12448 }, /* MOVE */ -{ CPUFUNC(op_30a8_0), 12456 }, /* MOVE */ -{ CPUFUNC(op_30b0_0), 12464 }, /* MOVE */ -{ CPUFUNC(op_30b8_0), 12472 }, /* MOVE */ -{ CPUFUNC(op_30b9_0), 12473 }, /* MOVE */ -{ CPUFUNC(op_30ba_0), 12474 }, /* MOVE */ -{ CPUFUNC(op_30bb_0), 12475 }, /* MOVE */ -{ CPUFUNC(op_30bc_0), 12476 }, /* MOVE */ -{ CPUFUNC(op_30c0_0), 12480 }, /* MOVE */ -{ CPUFUNC(op_30c8_0), 12488 }, /* MOVE */ -{ CPUFUNC(op_30d0_0), 12496 }, /* MOVE */ -{ CPUFUNC(op_30d8_0), 12504 }, /* MOVE */ -{ CPUFUNC(op_30e0_0), 12512 }, /* MOVE */ -{ CPUFUNC(op_30e8_0), 12520 }, /* MOVE */ -{ CPUFUNC(op_30f0_0), 12528 }, /* MOVE */ -{ CPUFUNC(op_30f8_0), 12536 }, /* MOVE */ -{ CPUFUNC(op_30f9_0), 12537 }, /* MOVE */ -{ CPUFUNC(op_30fa_0), 12538 }, /* MOVE */ -{ CPUFUNC(op_30fb_0), 12539 }, /* MOVE */ -{ CPUFUNC(op_30fc_0), 12540 }, /* MOVE */ -{ CPUFUNC(op_3100_0), 12544 }, /* MOVE */ -{ CPUFUNC(op_3108_0), 12552 }, /* MOVE */ -{ CPUFUNC(op_3110_0), 12560 }, /* MOVE */ -{ CPUFUNC(op_3118_0), 12568 }, /* MOVE */ -{ CPUFUNC(op_3120_0), 12576 }, /* MOVE */ -{ CPUFUNC(op_3128_0), 12584 }, /* MOVE */ -{ CPUFUNC(op_3130_0), 12592 }, /* MOVE */ -{ CPUFUNC(op_3138_0), 12600 }, /* MOVE */ -{ CPUFUNC(op_3139_0), 12601 }, /* MOVE */ -{ CPUFUNC(op_313a_0), 12602 }, /* MOVE */ -{ CPUFUNC(op_313b_0), 12603 }, /* MOVE */ -{ CPUFUNC(op_313c_0), 12604 }, /* MOVE */ -{ CPUFUNC(op_3140_0), 12608 }, /* MOVE */ -{ CPUFUNC(op_3148_0), 12616 }, /* MOVE */ -{ CPUFUNC(op_3150_0), 12624 }, /* MOVE */ -{ CPUFUNC(op_3158_0), 12632 }, /* MOVE */ -{ CPUFUNC(op_3160_0), 12640 }, /* MOVE */ -{ CPUFUNC(op_3168_0), 12648 }, /* MOVE */ -{ CPUFUNC(op_3170_0), 12656 }, /* MOVE */ -{ CPUFUNC(op_3178_0), 12664 }, /* MOVE */ -{ CPUFUNC(op_3179_0), 12665 }, /* MOVE */ -{ CPUFUNC(op_317a_0), 12666 }, /* MOVE */ -{ CPUFUNC(op_317b_0), 12667 }, /* MOVE */ -{ CPUFUNC(op_317c_0), 12668 }, /* MOVE */ -{ CPUFUNC(op_3180_0), 12672 }, /* MOVE */ -{ CPUFUNC(op_3188_0), 12680 }, /* MOVE */ -{ CPUFUNC(op_3190_0), 12688 }, /* MOVE */ -{ CPUFUNC(op_3198_0), 12696 }, /* MOVE */ -{ CPUFUNC(op_31a0_0), 12704 }, /* MOVE */ -{ CPUFUNC(op_31a8_0), 12712 }, /* MOVE */ -{ CPUFUNC(op_31b0_0), 12720 }, /* MOVE */ -{ CPUFUNC(op_31b8_0), 12728 }, /* MOVE */ -{ CPUFUNC(op_31b9_0), 12729 }, /* MOVE */ -{ CPUFUNC(op_31ba_0), 12730 }, /* MOVE */ -{ CPUFUNC(op_31bb_0), 12731 }, /* MOVE */ -{ CPUFUNC(op_31bc_0), 12732 }, /* MOVE */ -{ CPUFUNC(op_31c0_0), 12736 }, /* MOVE */ -{ CPUFUNC(op_31c8_0), 12744 }, /* MOVE */ -{ CPUFUNC(op_31d0_0), 12752 }, /* MOVE */ -{ CPUFUNC(op_31d8_0), 12760 }, /* MOVE */ -{ CPUFUNC(op_31e0_0), 12768 }, /* MOVE */ -{ CPUFUNC(op_31e8_0), 12776 }, /* MOVE */ -{ CPUFUNC(op_31f0_0), 12784 }, /* MOVE */ -{ CPUFUNC(op_31f8_0), 12792 }, /* MOVE */ -{ CPUFUNC(op_31f9_0), 12793 }, /* MOVE */ -{ CPUFUNC(op_31fa_0), 12794 }, /* MOVE */ -{ CPUFUNC(op_31fb_0), 12795 }, /* MOVE */ -{ CPUFUNC(op_31fc_0), 12796 }, /* MOVE */ -{ CPUFUNC(op_33c0_0), 13248 }, /* MOVE */ -{ CPUFUNC(op_33c8_0), 13256 }, /* MOVE */ -{ CPUFUNC(op_33d0_0), 13264 }, /* MOVE */ -{ CPUFUNC(op_33d8_0), 13272 }, /* MOVE */ -{ CPUFUNC(op_33e0_0), 13280 }, /* MOVE */ -{ CPUFUNC(op_33e8_0), 13288 }, /* MOVE */ -{ CPUFUNC(op_33f0_0), 13296 }, /* MOVE */ -{ CPUFUNC(op_33f8_0), 13304 }, /* MOVE */ -{ CPUFUNC(op_33f9_0), 13305 }, /* MOVE */ -{ CPUFUNC(op_33fa_0), 13306 }, /* MOVE */ -{ CPUFUNC(op_33fb_0), 13307 }, /* MOVE */ -{ CPUFUNC(op_33fc_0), 13308 }, /* MOVE */ -{ CPUFUNC(op_4000_0), 16384 }, /* NEGX */ -{ CPUFUNC(op_4010_0), 16400 }, /* NEGX */ -{ CPUFUNC(op_4018_0), 16408 }, /* NEGX */ -{ CPUFUNC(op_4020_0), 16416 }, /* NEGX */ -{ CPUFUNC(op_4028_0), 16424 }, /* NEGX */ -{ CPUFUNC(op_4030_0), 16432 }, /* NEGX */ -{ CPUFUNC(op_4038_0), 16440 }, /* NEGX */ -{ CPUFUNC(op_4039_0), 16441 }, /* NEGX */ -{ CPUFUNC(op_4040_0), 16448 }, /* NEGX */ -{ CPUFUNC(op_4050_0), 16464 }, /* NEGX */ -{ CPUFUNC(op_4058_0), 16472 }, /* NEGX */ -{ CPUFUNC(op_4060_0), 16480 }, /* NEGX */ -{ CPUFUNC(op_4068_0), 16488 }, /* NEGX */ -{ CPUFUNC(op_4070_0), 16496 }, /* NEGX */ -{ CPUFUNC(op_4078_0), 16504 }, /* NEGX */ -{ CPUFUNC(op_4079_0), 16505 }, /* NEGX */ -{ CPUFUNC(op_4080_0), 16512 }, /* NEGX */ -{ CPUFUNC(op_4090_0), 16528 }, /* NEGX */ -{ CPUFUNC(op_4098_0), 16536 }, /* NEGX */ -{ CPUFUNC(op_40a0_0), 16544 }, /* NEGX */ -{ CPUFUNC(op_40a8_0), 16552 }, /* NEGX */ -{ CPUFUNC(op_40b0_0), 16560 }, /* NEGX */ -{ CPUFUNC(op_40b8_0), 16568 }, /* NEGX */ -{ CPUFUNC(op_40b9_0), 16569 }, /* NEGX */ -{ CPUFUNC(op_40c0_0), 16576 }, /* MVSR2 */ -{ CPUFUNC(op_40d0_0), 16592 }, /* MVSR2 */ -{ CPUFUNC(op_40d8_0), 16600 }, /* MVSR2 */ -{ CPUFUNC(op_40e0_0), 16608 }, /* MVSR2 */ -{ CPUFUNC(op_40e8_0), 16616 }, /* MVSR2 */ -{ CPUFUNC(op_40f0_0), 16624 }, /* MVSR2 */ -{ CPUFUNC(op_40f8_0), 16632 }, /* MVSR2 */ -{ CPUFUNC(op_40f9_0), 16633 }, /* MVSR2 */ -{ CPUFUNC(op_4100_0), 16640 }, /* CHK */ -{ CPUFUNC(op_4110_0), 16656 }, /* CHK */ -{ CPUFUNC(op_4118_0), 16664 }, /* CHK */ -{ CPUFUNC(op_4120_0), 16672 }, /* CHK */ -{ CPUFUNC(op_4128_0), 16680 }, /* CHK */ -{ CPUFUNC(op_4130_0), 16688 }, /* CHK */ -{ CPUFUNC(op_4138_0), 16696 }, /* CHK */ -{ CPUFUNC(op_4139_0), 16697 }, /* CHK */ -{ CPUFUNC(op_413a_0), 16698 }, /* CHK */ -{ CPUFUNC(op_413b_0), 16699 }, /* CHK */ -{ CPUFUNC(op_413c_0), 16700 }, /* CHK */ -{ CPUFUNC(op_4180_0), 16768 }, /* CHK */ -{ CPUFUNC(op_4190_0), 16784 }, /* CHK */ -{ CPUFUNC(op_4198_0), 16792 }, /* CHK */ -{ CPUFUNC(op_41a0_0), 16800 }, /* CHK */ -{ CPUFUNC(op_41a8_0), 16808 }, /* CHK */ -{ CPUFUNC(op_41b0_0), 16816 }, /* CHK */ -{ CPUFUNC(op_41b8_0), 16824 }, /* CHK */ -{ CPUFUNC(op_41b9_0), 16825 }, /* CHK */ -{ CPUFUNC(op_41ba_0), 16826 }, /* CHK */ -{ CPUFUNC(op_41bb_0), 16827 }, /* CHK */ -{ CPUFUNC(op_41bc_0), 16828 }, /* CHK */ -{ CPUFUNC(op_41d0_0), 16848 }, /* LEA */ -{ CPUFUNC(op_41e8_0), 16872 }, /* LEA */ -{ CPUFUNC(op_41f0_0), 16880 }, /* LEA */ -{ CPUFUNC(op_41f8_0), 16888 }, /* LEA */ -{ CPUFUNC(op_41f9_0), 16889 }, /* LEA */ -{ CPUFUNC(op_41fa_0), 16890 }, /* LEA */ -{ CPUFUNC(op_41fb_0), 16891 }, /* LEA */ -{ CPUFUNC(op_4200_0), 16896 }, /* CLR */ -{ CPUFUNC(op_4210_0), 16912 }, /* CLR */ -{ CPUFUNC(op_4218_0), 16920 }, /* CLR */ -{ CPUFUNC(op_4220_0), 16928 }, /* CLR */ -{ CPUFUNC(op_4228_0), 16936 }, /* CLR */ -{ CPUFUNC(op_4230_0), 16944 }, /* CLR */ -{ CPUFUNC(op_4238_0), 16952 }, /* CLR */ -{ CPUFUNC(op_4239_0), 16953 }, /* CLR */ -{ CPUFUNC(op_4240_0), 16960 }, /* CLR */ -{ CPUFUNC(op_4250_0), 16976 }, /* CLR */ -{ CPUFUNC(op_4258_0), 16984 }, /* CLR */ -{ CPUFUNC(op_4260_0), 16992 }, /* CLR */ -{ CPUFUNC(op_4268_0), 17000 }, /* CLR */ -{ CPUFUNC(op_4270_0), 17008 }, /* CLR */ -{ CPUFUNC(op_4278_0), 17016 }, /* CLR */ -{ CPUFUNC(op_4279_0), 17017 }, /* CLR */ -{ CPUFUNC(op_4280_0), 17024 }, /* CLR */ -{ CPUFUNC(op_4290_0), 17040 }, /* CLR */ -{ CPUFUNC(op_4298_0), 17048 }, /* CLR */ -{ CPUFUNC(op_42a0_0), 17056 }, /* CLR */ -{ CPUFUNC(op_42a8_0), 17064 }, /* CLR */ -{ CPUFUNC(op_42b0_0), 17072 }, /* CLR */ -{ CPUFUNC(op_42b8_0), 17080 }, /* CLR */ -{ CPUFUNC(op_42b9_0), 17081 }, /* CLR */ -{ CPUFUNC(op_42c0_0), 17088 }, /* MVSR2 */ -{ CPUFUNC(op_42d0_0), 17104 }, /* MVSR2 */ -{ CPUFUNC(op_42d8_0), 17112 }, /* MVSR2 */ -{ CPUFUNC(op_42e0_0), 17120 }, /* MVSR2 */ -{ CPUFUNC(op_42e8_0), 17128 }, /* MVSR2 */ -{ CPUFUNC(op_42f0_0), 17136 }, /* MVSR2 */ -{ CPUFUNC(op_42f8_0), 17144 }, /* MVSR2 */ -{ CPUFUNC(op_42f9_0), 17145 }, /* MVSR2 */ -{ CPUFUNC(op_4400_0), 17408 }, /* NEG */ -{ CPUFUNC(op_4410_0), 17424 }, /* NEG */ -{ CPUFUNC(op_4418_0), 17432 }, /* NEG */ -{ CPUFUNC(op_4420_0), 17440 }, /* NEG */ -{ CPUFUNC(op_4428_0), 17448 }, /* NEG */ -{ CPUFUNC(op_4430_0), 17456 }, /* NEG */ -{ CPUFUNC(op_4438_0), 17464 }, /* NEG */ -{ CPUFUNC(op_4439_0), 17465 }, /* NEG */ -{ CPUFUNC(op_4440_0), 17472 }, /* NEG */ -{ CPUFUNC(op_4450_0), 17488 }, /* NEG */ -{ CPUFUNC(op_4458_0), 17496 }, /* NEG */ -{ CPUFUNC(op_4460_0), 17504 }, /* NEG */ -{ CPUFUNC(op_4468_0), 17512 }, /* NEG */ -{ CPUFUNC(op_4470_0), 17520 }, /* NEG */ -{ CPUFUNC(op_4478_0), 17528 }, /* NEG */ -{ CPUFUNC(op_4479_0), 17529 }, /* NEG */ -{ CPUFUNC(op_4480_0), 17536 }, /* NEG */ -{ CPUFUNC(op_4490_0), 17552 }, /* NEG */ -{ CPUFUNC(op_4498_0), 17560 }, /* NEG */ -{ CPUFUNC(op_44a0_0), 17568 }, /* NEG */ -{ CPUFUNC(op_44a8_0), 17576 }, /* NEG */ -{ CPUFUNC(op_44b0_0), 17584 }, /* NEG */ -{ CPUFUNC(op_44b8_0), 17592 }, /* NEG */ -{ CPUFUNC(op_44b9_0), 17593 }, /* NEG */ -{ CPUFUNC(op_44c0_0), 17600 }, /* MV2SR */ -{ CPUFUNC(op_44d0_0), 17616 }, /* MV2SR */ -{ CPUFUNC(op_44d8_0), 17624 }, /* MV2SR */ -{ CPUFUNC(op_44e0_0), 17632 }, /* MV2SR */ -{ CPUFUNC(op_44e8_0), 17640 }, /* MV2SR */ -{ CPUFUNC(op_44f0_0), 17648 }, /* MV2SR */ -{ CPUFUNC(op_44f8_0), 17656 }, /* MV2SR */ -{ CPUFUNC(op_44f9_0), 17657 }, /* MV2SR */ -{ CPUFUNC(op_44fa_0), 17658 }, /* MV2SR */ -{ CPUFUNC(op_44fb_0), 17659 }, /* MV2SR */ -{ CPUFUNC(op_44fc_0), 17660 }, /* MV2SR */ -{ CPUFUNC(op_4600_0), 17920 }, /* NOT */ -{ CPUFUNC(op_4610_0), 17936 }, /* NOT */ -{ CPUFUNC(op_4618_0), 17944 }, /* NOT */ -{ CPUFUNC(op_4620_0), 17952 }, /* NOT */ -{ CPUFUNC(op_4628_0), 17960 }, /* NOT */ -{ CPUFUNC(op_4630_0), 17968 }, /* NOT */ -{ CPUFUNC(op_4638_0), 17976 }, /* NOT */ -{ CPUFUNC(op_4639_0), 17977 }, /* NOT */ -{ CPUFUNC(op_4640_0), 17984 }, /* NOT */ -{ CPUFUNC(op_4650_0), 18000 }, /* NOT */ -{ CPUFUNC(op_4658_0), 18008 }, /* NOT */ -{ CPUFUNC(op_4660_0), 18016 }, /* NOT */ -{ CPUFUNC(op_4668_0), 18024 }, /* NOT */ -{ CPUFUNC(op_4670_0), 18032 }, /* NOT */ -{ CPUFUNC(op_4678_0), 18040 }, /* NOT */ -{ CPUFUNC(op_4679_0), 18041 }, /* NOT */ -{ CPUFUNC(op_4680_0), 18048 }, /* NOT */ -{ CPUFUNC(op_4690_0), 18064 }, /* NOT */ -{ CPUFUNC(op_4698_0), 18072 }, /* NOT */ -{ CPUFUNC(op_46a0_0), 18080 }, /* NOT */ -{ CPUFUNC(op_46a8_0), 18088 }, /* NOT */ -{ CPUFUNC(op_46b0_0), 18096 }, /* NOT */ -{ CPUFUNC(op_46b8_0), 18104 }, /* NOT */ -{ CPUFUNC(op_46b9_0), 18105 }, /* NOT */ -{ CPUFUNC(op_46c0_0), 18112 }, /* MV2SR */ -{ CPUFUNC(op_46d0_0), 18128 }, /* MV2SR */ -{ CPUFUNC(op_46d8_0), 18136 }, /* MV2SR */ -{ CPUFUNC(op_46e0_0), 18144 }, /* MV2SR */ -{ CPUFUNC(op_46e8_0), 18152 }, /* MV2SR */ -{ CPUFUNC(op_46f0_0), 18160 }, /* MV2SR */ -{ CPUFUNC(op_46f8_0), 18168 }, /* MV2SR */ -{ CPUFUNC(op_46f9_0), 18169 }, /* MV2SR */ -{ CPUFUNC(op_46fa_0), 18170 }, /* MV2SR */ -{ CPUFUNC(op_46fb_0), 18171 }, /* MV2SR */ -{ CPUFUNC(op_46fc_0), 18172 }, /* MV2SR */ -{ CPUFUNC(op_4800_0), 18432 }, /* NBCD */ -{ CPUFUNC(op_4808_0), 18440 }, /* LINK */ -{ CPUFUNC(op_4810_0), 18448 }, /* NBCD */ -{ CPUFUNC(op_4818_0), 18456 }, /* NBCD */ -{ CPUFUNC(op_4820_0), 18464 }, /* NBCD */ -{ CPUFUNC(op_4828_0), 18472 }, /* NBCD */ -{ CPUFUNC(op_4830_0), 18480 }, /* NBCD */ -{ CPUFUNC(op_4838_0), 18488 }, /* NBCD */ -{ CPUFUNC(op_4839_0), 18489 }, /* NBCD */ -{ CPUFUNC(op_4840_0), 18496 }, /* SWAP */ -{ CPUFUNC(op_4848_0), 18504 }, /* BKPT */ -{ CPUFUNC(op_4850_0), 18512 }, /* PEA */ -{ CPUFUNC(op_4868_0), 18536 }, /* PEA */ -{ CPUFUNC(op_4870_0), 18544 }, /* PEA */ -{ CPUFUNC(op_4878_0), 18552 }, /* PEA */ -{ CPUFUNC(op_4879_0), 18553 }, /* PEA */ -{ CPUFUNC(op_487a_0), 18554 }, /* PEA */ -{ CPUFUNC(op_487b_0), 18555 }, /* PEA */ -{ CPUFUNC(op_4880_0), 18560 }, /* EXT */ -{ CPUFUNC(op_4890_0), 18576 }, /* MVMLE */ -{ CPUFUNC(op_48a0_0), 18592 }, /* MVMLE */ -{ CPUFUNC(op_48a8_0), 18600 }, /* MVMLE */ -{ CPUFUNC(op_48b0_0), 18608 }, /* MVMLE */ -{ CPUFUNC(op_48b8_0), 18616 }, /* MVMLE */ -{ CPUFUNC(op_48b9_0), 18617 }, /* MVMLE */ -{ CPUFUNC(op_48c0_0), 18624 }, /* EXT */ -{ CPUFUNC(op_48d0_0), 18640 }, /* MVMLE */ -{ CPUFUNC(op_48e0_0), 18656 }, /* MVMLE */ -{ CPUFUNC(op_48e8_0), 18664 }, /* MVMLE */ -{ CPUFUNC(op_48f0_0), 18672 }, /* MVMLE */ -{ CPUFUNC(op_48f8_0), 18680 }, /* MVMLE */ -{ CPUFUNC(op_48f9_0), 18681 }, /* MVMLE */ -{ CPUFUNC(op_49c0_0), 18880 }, /* EXT */ -{ CPUFUNC(op_4a00_0), 18944 }, /* TST */ -{ CPUFUNC(op_4a10_0), 18960 }, /* TST */ -{ CPUFUNC(op_4a18_0), 18968 }, /* TST */ -{ CPUFUNC(op_4a20_0), 18976 }, /* TST */ -{ CPUFUNC(op_4a28_0), 18984 }, /* TST */ -{ CPUFUNC(op_4a30_0), 18992 }, /* TST */ -{ CPUFUNC(op_4a38_0), 19000 }, /* TST */ -{ CPUFUNC(op_4a39_0), 19001 }, /* TST */ -{ CPUFUNC(op_4a3a_0), 19002 }, /* TST */ -{ CPUFUNC(op_4a3b_0), 19003 }, /* TST */ -{ CPUFUNC(op_4a3c_0), 19004 }, /* TST */ -{ CPUFUNC(op_4a40_0), 19008 }, /* TST */ -{ CPUFUNC(op_4a48_0), 19016 }, /* TST */ -{ CPUFUNC(op_4a50_0), 19024 }, /* TST */ -{ CPUFUNC(op_4a58_0), 19032 }, /* TST */ -{ CPUFUNC(op_4a60_0), 19040 }, /* TST */ -{ CPUFUNC(op_4a68_0), 19048 }, /* TST */ -{ CPUFUNC(op_4a70_0), 19056 }, /* TST */ -{ CPUFUNC(op_4a78_0), 19064 }, /* TST */ -{ CPUFUNC(op_4a79_0), 19065 }, /* TST */ -{ CPUFUNC(op_4a7a_0), 19066 }, /* TST */ -{ CPUFUNC(op_4a7b_0), 19067 }, /* TST */ -{ CPUFUNC(op_4a7c_0), 19068 }, /* TST */ -{ CPUFUNC(op_4a80_0), 19072 }, /* TST */ -{ CPUFUNC(op_4a88_0), 19080 }, /* TST */ -{ CPUFUNC(op_4a90_0), 19088 }, /* TST */ -{ CPUFUNC(op_4a98_0), 19096 }, /* TST */ -{ CPUFUNC(op_4aa0_0), 19104 }, /* TST */ -{ CPUFUNC(op_4aa8_0), 19112 }, /* TST */ -{ CPUFUNC(op_4ab0_0), 19120 }, /* TST */ -{ CPUFUNC(op_4ab8_0), 19128 }, /* TST */ -{ CPUFUNC(op_4ab9_0), 19129 }, /* TST */ -{ CPUFUNC(op_4aba_0), 19130 }, /* TST */ -{ CPUFUNC(op_4abb_0), 19131 }, /* TST */ -{ CPUFUNC(op_4abc_0), 19132 }, /* TST */ -{ CPUFUNC(op_4ac0_0), 19136 }, /* TAS */ -{ CPUFUNC(op_4ad0_0), 19152 }, /* TAS */ -{ CPUFUNC(op_4ad8_0), 19160 }, /* TAS */ -{ CPUFUNC(op_4ae0_0), 19168 }, /* TAS */ -{ CPUFUNC(op_4ae8_0), 19176 }, /* TAS */ -{ CPUFUNC(op_4af0_0), 19184 }, /* TAS */ -{ CPUFUNC(op_4af8_0), 19192 }, /* TAS */ -{ CPUFUNC(op_4af9_0), 19193 }, /* TAS */ -{ CPUFUNC(op_4c00_0), 19456 }, /* MULL */ -{ CPUFUNC(op_4c10_0), 19472 }, /* MULL */ -{ CPUFUNC(op_4c18_0), 19480 }, /* MULL */ -{ CPUFUNC(op_4c20_0), 19488 }, /* MULL */ -{ CPUFUNC(op_4c28_0), 19496 }, /* MULL */ -{ CPUFUNC(op_4c30_0), 19504 }, /* MULL */ -{ CPUFUNC(op_4c38_0), 19512 }, /* MULL */ -{ CPUFUNC(op_4c39_0), 19513 }, /* MULL */ -{ CPUFUNC(op_4c3a_0), 19514 }, /* MULL */ -{ CPUFUNC(op_4c3b_0), 19515 }, /* MULL */ -{ CPUFUNC(op_4c3c_0), 19516 }, /* MULL */ -{ CPUFUNC(op_4c40_0), 19520 }, /* DIVL */ -{ CPUFUNC(op_4c50_0), 19536 }, /* DIVL */ -{ CPUFUNC(op_4c58_0), 19544 }, /* DIVL */ -{ CPUFUNC(op_4c60_0), 19552 }, /* DIVL */ -{ CPUFUNC(op_4c68_0), 19560 }, /* DIVL */ -{ CPUFUNC(op_4c70_0), 19568 }, /* DIVL */ -{ CPUFUNC(op_4c78_0), 19576 }, /* DIVL */ -{ CPUFUNC(op_4c79_0), 19577 }, /* DIVL */ -{ CPUFUNC(op_4c7a_0), 19578 }, /* DIVL */ -{ CPUFUNC(op_4c7b_0), 19579 }, /* DIVL */ -{ CPUFUNC(op_4c7c_0), 19580 }, /* DIVL */ -{ CPUFUNC(op_4c90_0), 19600 }, /* MVMEL */ -{ CPUFUNC(op_4c98_0), 19608 }, /* MVMEL */ -{ CPUFUNC(op_4ca8_0), 19624 }, /* MVMEL */ -{ CPUFUNC(op_4cb0_0), 19632 }, /* MVMEL */ -{ CPUFUNC(op_4cb8_0), 19640 }, /* MVMEL */ -{ CPUFUNC(op_4cb9_0), 19641 }, /* MVMEL */ -{ CPUFUNC(op_4cba_0), 19642 }, /* MVMEL */ -{ CPUFUNC(op_4cbb_0), 19643 }, /* MVMEL */ -{ CPUFUNC(op_4cd0_0), 19664 }, /* MVMEL */ -{ CPUFUNC(op_4cd8_0), 19672 }, /* MVMEL */ -{ CPUFUNC(op_4ce8_0), 19688 }, /* MVMEL */ -{ CPUFUNC(op_4cf0_0), 19696 }, /* MVMEL */ -{ CPUFUNC(op_4cf8_0), 19704 }, /* MVMEL */ -{ CPUFUNC(op_4cf9_0), 19705 }, /* MVMEL */ -{ CPUFUNC(op_4cfa_0), 19706 }, /* MVMEL */ -{ CPUFUNC(op_4cfb_0), 19707 }, /* MVMEL */ -{ CPUFUNC(op_4e40_0), 20032 }, /* TRAP */ -{ CPUFUNC(op_4e50_0), 20048 }, /* LINK */ -{ CPUFUNC(op_4e58_0), 20056 }, /* UNLK */ -{ CPUFUNC(op_4e60_0), 20064 }, /* MVR2USP */ -{ CPUFUNC(op_4e68_0), 20072 }, /* MVUSP2R */ -{ CPUFUNC(op_4e70_0), 20080 }, /* RESET */ -{ CPUFUNC(op_4e71_0), 20081 }, /* NOP */ -{ CPUFUNC(op_4e72_0), 20082 }, /* STOP */ -{ CPUFUNC(op_4e73_0), 20083 }, /* RTE */ -{ CPUFUNC(op_4e74_0), 20084 }, /* RTD */ -{ CPUFUNC(op_4e75_0), 20085 }, /* RTS */ -{ CPUFUNC(op_4e76_0), 20086 }, /* TRAPV */ -{ CPUFUNC(op_4e77_0), 20087 }, /* RTR */ -{ CPUFUNC(op_4e7a_0), 20090 }, /* MOVEC2 */ -{ CPUFUNC(op_4e7b_0), 20091 }, /* MOVE2C */ -{ CPUFUNC(op_4e90_0), 20112 }, /* JSR */ -{ CPUFUNC(op_4ea8_0), 20136 }, /* JSR */ -{ CPUFUNC(op_4eb0_0), 20144 }, /* JSR */ -{ CPUFUNC(op_4eb8_0), 20152 }, /* JSR */ -{ CPUFUNC(op_4eb9_0), 20153 }, /* JSR */ -{ CPUFUNC(op_4eba_0), 20154 }, /* JSR */ -{ CPUFUNC(op_4ebb_0), 20155 }, /* JSR */ -{ CPUFUNC(op_4ed0_0), 20176 }, /* JMP */ -{ CPUFUNC(op_4ee8_0), 20200 }, /* JMP */ -{ CPUFUNC(op_4ef0_0), 20208 }, /* JMP */ -{ CPUFUNC(op_4ef8_0), 20216 }, /* JMP */ -{ CPUFUNC(op_4ef9_0), 20217 }, /* JMP */ -{ CPUFUNC(op_4efa_0), 20218 }, /* JMP */ -{ CPUFUNC(op_4efb_0), 20219 }, /* JMP */ -{ CPUFUNC(op_5000_0), 20480 }, /* ADD */ -{ CPUFUNC(op_5010_0), 20496 }, /* ADD */ -{ CPUFUNC(op_5018_0), 20504 }, /* ADD */ -{ CPUFUNC(op_5020_0), 20512 }, /* ADD */ -{ CPUFUNC(op_5028_0), 20520 }, /* ADD */ -{ CPUFUNC(op_5030_0), 20528 }, /* ADD */ -{ CPUFUNC(op_5038_0), 20536 }, /* ADD */ -{ CPUFUNC(op_5039_0), 20537 }, /* ADD */ -{ CPUFUNC(op_5040_0), 20544 }, /* ADD */ -{ CPUFUNC(op_5048_0), 20552 }, /* ADDA */ -{ CPUFUNC(op_5050_0), 20560 }, /* ADD */ -{ CPUFUNC(op_5058_0), 20568 }, /* ADD */ -{ CPUFUNC(op_5060_0), 20576 }, /* ADD */ -{ CPUFUNC(op_5068_0), 20584 }, /* ADD */ -{ CPUFUNC(op_5070_0), 20592 }, /* ADD */ -{ CPUFUNC(op_5078_0), 20600 }, /* ADD */ -{ CPUFUNC(op_5079_0), 20601 }, /* ADD */ -{ CPUFUNC(op_5080_0), 20608 }, /* ADD */ -{ CPUFUNC(op_5088_0), 20616 }, /* ADDA */ -{ CPUFUNC(op_5090_0), 20624 }, /* ADD */ -{ CPUFUNC(op_5098_0), 20632 }, /* ADD */ -{ CPUFUNC(op_50a0_0), 20640 }, /* ADD */ -{ CPUFUNC(op_50a8_0), 20648 }, /* ADD */ -{ CPUFUNC(op_50b0_0), 20656 }, /* ADD */ -{ CPUFUNC(op_50b8_0), 20664 }, /* ADD */ -{ CPUFUNC(op_50b9_0), 20665 }, /* ADD */ -{ CPUFUNC(op_50c0_0), 20672 }, /* Scc */ -{ CPUFUNC(op_50c8_0), 20680 }, /* DBcc */ -{ CPUFUNC(op_50d0_0), 20688 }, /* Scc */ -{ CPUFUNC(op_50d8_0), 20696 }, /* Scc */ -{ CPUFUNC(op_50e0_0), 20704 }, /* Scc */ -{ CPUFUNC(op_50e8_0), 20712 }, /* Scc */ -{ CPUFUNC(op_50f0_0), 20720 }, /* Scc */ -{ CPUFUNC(op_50f8_0), 20728 }, /* Scc */ -{ CPUFUNC(op_50f9_0), 20729 }, /* Scc */ -{ CPUFUNC(op_50fa_0), 20730 }, /* TRAPcc */ -{ CPUFUNC(op_50fb_0), 20731 }, /* TRAPcc */ -{ CPUFUNC(op_50fc_0), 20732 }, /* TRAPcc */ -{ CPUFUNC(op_5100_0), 20736 }, /* SUB */ -{ CPUFUNC(op_5110_0), 20752 }, /* SUB */ -{ CPUFUNC(op_5118_0), 20760 }, /* SUB */ -{ CPUFUNC(op_5120_0), 20768 }, /* SUB */ -{ CPUFUNC(op_5128_0), 20776 }, /* SUB */ -{ CPUFUNC(op_5130_0), 20784 }, /* SUB */ -{ CPUFUNC(op_5138_0), 20792 }, /* SUB */ -{ CPUFUNC(op_5139_0), 20793 }, /* SUB */ -{ CPUFUNC(op_5140_0), 20800 }, /* SUB */ -{ CPUFUNC(op_5148_0), 20808 }, /* SUBA */ -{ CPUFUNC(op_5150_0), 20816 }, /* SUB */ -{ CPUFUNC(op_5158_0), 20824 }, /* SUB */ -{ CPUFUNC(op_5160_0), 20832 }, /* SUB */ -{ CPUFUNC(op_5168_0), 20840 }, /* SUB */ -{ CPUFUNC(op_5170_0), 20848 }, /* SUB */ -{ CPUFUNC(op_5178_0), 20856 }, /* SUB */ -{ CPUFUNC(op_5179_0), 20857 }, /* SUB */ -{ CPUFUNC(op_5180_0), 20864 }, /* SUB */ -{ CPUFUNC(op_5188_0), 20872 }, /* SUBA */ -{ CPUFUNC(op_5190_0), 20880 }, /* SUB */ -{ CPUFUNC(op_5198_0), 20888 }, /* SUB */ -{ CPUFUNC(op_51a0_0), 20896 }, /* SUB */ -{ CPUFUNC(op_51a8_0), 20904 }, /* SUB */ -{ CPUFUNC(op_51b0_0), 20912 }, /* SUB */ -{ CPUFUNC(op_51b8_0), 20920 }, /* SUB */ -{ CPUFUNC(op_51b9_0), 20921 }, /* SUB */ -{ CPUFUNC(op_51c0_0), 20928 }, /* Scc */ -{ CPUFUNC(op_51c8_0), 20936 }, /* DBcc */ -{ CPUFUNC(op_51d0_0), 20944 }, /* Scc */ -{ CPUFUNC(op_51d8_0), 20952 }, /* Scc */ -{ CPUFUNC(op_51e0_0), 20960 }, /* Scc */ -{ CPUFUNC(op_51e8_0), 20968 }, /* Scc */ -{ CPUFUNC(op_51f0_0), 20976 }, /* Scc */ -{ CPUFUNC(op_51f8_0), 20984 }, /* Scc */ -{ CPUFUNC(op_51f9_0), 20985 }, /* Scc */ -{ CPUFUNC(op_51fa_0), 20986 }, /* TRAPcc */ -{ CPUFUNC(op_51fb_0), 20987 }, /* TRAPcc */ -{ CPUFUNC(op_51fc_0), 20988 }, /* TRAPcc */ -{ CPUFUNC(op_52c0_0), 21184 }, /* Scc */ -{ CPUFUNC(op_52c8_0), 21192 }, /* DBcc */ -{ CPUFUNC(op_52d0_0), 21200 }, /* Scc */ -{ CPUFUNC(op_52d8_0), 21208 }, /* Scc */ -{ CPUFUNC(op_52e0_0), 21216 }, /* Scc */ -{ CPUFUNC(op_52e8_0), 21224 }, /* Scc */ -{ CPUFUNC(op_52f0_0), 21232 }, /* Scc */ -{ CPUFUNC(op_52f8_0), 21240 }, /* Scc */ -{ CPUFUNC(op_52f9_0), 21241 }, /* Scc */ -{ CPUFUNC(op_52fa_0), 21242 }, /* TRAPcc */ -{ CPUFUNC(op_52fb_0), 21243 }, /* TRAPcc */ -{ CPUFUNC(op_52fc_0), 21244 }, /* TRAPcc */ -{ CPUFUNC(op_53c0_0), 21440 }, /* Scc */ -{ CPUFUNC(op_53c8_0), 21448 }, /* DBcc */ -{ CPUFUNC(op_53d0_0), 21456 }, /* Scc */ -{ CPUFUNC(op_53d8_0), 21464 }, /* Scc */ -{ CPUFUNC(op_53e0_0), 21472 }, /* Scc */ -{ CPUFUNC(op_53e8_0), 21480 }, /* Scc */ -{ CPUFUNC(op_53f0_0), 21488 }, /* Scc */ -{ CPUFUNC(op_53f8_0), 21496 }, /* Scc */ -{ CPUFUNC(op_53f9_0), 21497 }, /* Scc */ -{ CPUFUNC(op_53fa_0), 21498 }, /* TRAPcc */ -{ CPUFUNC(op_53fb_0), 21499 }, /* TRAPcc */ -{ CPUFUNC(op_53fc_0), 21500 }, /* TRAPcc */ -{ CPUFUNC(op_54c0_0), 21696 }, /* Scc */ -{ CPUFUNC(op_54c8_0), 21704 }, /* DBcc */ -{ CPUFUNC(op_54d0_0), 21712 }, /* Scc */ -{ CPUFUNC(op_54d8_0), 21720 }, /* Scc */ -{ CPUFUNC(op_54e0_0), 21728 }, /* Scc */ -{ CPUFUNC(op_54e8_0), 21736 }, /* Scc */ -{ CPUFUNC(op_54f0_0), 21744 }, /* Scc */ -{ CPUFUNC(op_54f8_0), 21752 }, /* Scc */ -{ CPUFUNC(op_54f9_0), 21753 }, /* Scc */ -{ CPUFUNC(op_54fa_0), 21754 }, /* TRAPcc */ -{ CPUFUNC(op_54fb_0), 21755 }, /* TRAPcc */ -{ CPUFUNC(op_54fc_0), 21756 }, /* TRAPcc */ -{ CPUFUNC(op_55c0_0), 21952 }, /* Scc */ -{ CPUFUNC(op_55c8_0), 21960 }, /* DBcc */ -{ CPUFUNC(op_55d0_0), 21968 }, /* Scc */ -{ CPUFUNC(op_55d8_0), 21976 }, /* Scc */ -{ CPUFUNC(op_55e0_0), 21984 }, /* Scc */ -{ CPUFUNC(op_55e8_0), 21992 }, /* Scc */ -{ CPUFUNC(op_55f0_0), 22000 }, /* Scc */ -{ CPUFUNC(op_55f8_0), 22008 }, /* Scc */ -{ CPUFUNC(op_55f9_0), 22009 }, /* Scc */ -{ CPUFUNC(op_55fa_0), 22010 }, /* TRAPcc */ -{ CPUFUNC(op_55fb_0), 22011 }, /* TRAPcc */ -{ CPUFUNC(op_55fc_0), 22012 }, /* TRAPcc */ -{ CPUFUNC(op_56c0_0), 22208 }, /* Scc */ -{ CPUFUNC(op_56c8_0), 22216 }, /* DBcc */ -{ CPUFUNC(op_56d0_0), 22224 }, /* Scc */ -{ CPUFUNC(op_56d8_0), 22232 }, /* Scc */ -{ CPUFUNC(op_56e0_0), 22240 }, /* Scc */ -{ CPUFUNC(op_56e8_0), 22248 }, /* Scc */ -{ CPUFUNC(op_56f0_0), 22256 }, /* Scc */ -{ CPUFUNC(op_56f8_0), 22264 }, /* Scc */ -{ CPUFUNC(op_56f9_0), 22265 }, /* Scc */ -{ CPUFUNC(op_56fa_0), 22266 }, /* TRAPcc */ -{ CPUFUNC(op_56fb_0), 22267 }, /* TRAPcc */ -{ CPUFUNC(op_56fc_0), 22268 }, /* TRAPcc */ -{ CPUFUNC(op_57c0_0), 22464 }, /* Scc */ -{ CPUFUNC(op_57c8_0), 22472 }, /* DBcc */ -{ CPUFUNC(op_57d0_0), 22480 }, /* Scc */ -{ CPUFUNC(op_57d8_0), 22488 }, /* Scc */ -{ CPUFUNC(op_57e0_0), 22496 }, /* Scc */ -{ CPUFUNC(op_57e8_0), 22504 }, /* Scc */ -{ CPUFUNC(op_57f0_0), 22512 }, /* Scc */ -{ CPUFUNC(op_57f8_0), 22520 }, /* Scc */ -{ CPUFUNC(op_57f9_0), 22521 }, /* Scc */ -{ CPUFUNC(op_57fa_0), 22522 }, /* TRAPcc */ -{ CPUFUNC(op_57fb_0), 22523 }, /* TRAPcc */ -{ CPUFUNC(op_57fc_0), 22524 }, /* TRAPcc */ -{ CPUFUNC(op_58c0_0), 22720 }, /* Scc */ -{ CPUFUNC(op_58c8_0), 22728 }, /* DBcc */ -{ CPUFUNC(op_58d0_0), 22736 }, /* Scc */ -{ CPUFUNC(op_58d8_0), 22744 }, /* Scc */ -{ CPUFUNC(op_58e0_0), 22752 }, /* Scc */ -{ CPUFUNC(op_58e8_0), 22760 }, /* Scc */ -{ CPUFUNC(op_58f0_0), 22768 }, /* Scc */ -{ CPUFUNC(op_58f8_0), 22776 }, /* Scc */ -{ CPUFUNC(op_58f9_0), 22777 }, /* Scc */ -{ CPUFUNC(op_58fa_0), 22778 }, /* TRAPcc */ -{ CPUFUNC(op_58fb_0), 22779 }, /* TRAPcc */ -{ CPUFUNC(op_58fc_0), 22780 }, /* TRAPcc */ -{ CPUFUNC(op_59c0_0), 22976 }, /* Scc */ -{ CPUFUNC(op_59c8_0), 22984 }, /* DBcc */ -{ CPUFUNC(op_59d0_0), 22992 }, /* Scc */ -{ CPUFUNC(op_59d8_0), 23000 }, /* Scc */ -{ CPUFUNC(op_59e0_0), 23008 }, /* Scc */ -{ CPUFUNC(op_59e8_0), 23016 }, /* Scc */ -{ CPUFUNC(op_59f0_0), 23024 }, /* Scc */ -{ CPUFUNC(op_59f8_0), 23032 }, /* Scc */ -{ CPUFUNC(op_59f9_0), 23033 }, /* Scc */ -{ CPUFUNC(op_59fa_0), 23034 }, /* TRAPcc */ -{ CPUFUNC(op_59fb_0), 23035 }, /* TRAPcc */ -{ CPUFUNC(op_59fc_0), 23036 }, /* TRAPcc */ -{ CPUFUNC(op_5ac0_0), 23232 }, /* Scc */ -{ CPUFUNC(op_5ac8_0), 23240 }, /* DBcc */ -{ CPUFUNC(op_5ad0_0), 23248 }, /* Scc */ -{ CPUFUNC(op_5ad8_0), 23256 }, /* Scc */ -{ CPUFUNC(op_5ae0_0), 23264 }, /* Scc */ -{ CPUFUNC(op_5ae8_0), 23272 }, /* Scc */ -{ CPUFUNC(op_5af0_0), 23280 }, /* Scc */ -{ CPUFUNC(op_5af8_0), 23288 }, /* Scc */ -{ CPUFUNC(op_5af9_0), 23289 }, /* Scc */ -{ CPUFUNC(op_5afa_0), 23290 }, /* TRAPcc */ -{ CPUFUNC(op_5afb_0), 23291 }, /* TRAPcc */ -{ CPUFUNC(op_5afc_0), 23292 }, /* TRAPcc */ -{ CPUFUNC(op_5bc0_0), 23488 }, /* Scc */ -{ CPUFUNC(op_5bc8_0), 23496 }, /* DBcc */ -{ CPUFUNC(op_5bd0_0), 23504 }, /* Scc */ -{ CPUFUNC(op_5bd8_0), 23512 }, /* Scc */ -{ CPUFUNC(op_5be0_0), 23520 }, /* Scc */ -{ CPUFUNC(op_5be8_0), 23528 }, /* Scc */ -{ CPUFUNC(op_5bf0_0), 23536 }, /* Scc */ -{ CPUFUNC(op_5bf8_0), 23544 }, /* Scc */ -{ CPUFUNC(op_5bf9_0), 23545 }, /* Scc */ -{ CPUFUNC(op_5bfa_0), 23546 }, /* TRAPcc */ -{ CPUFUNC(op_5bfb_0), 23547 }, /* TRAPcc */ -{ CPUFUNC(op_5bfc_0), 23548 }, /* TRAPcc */ -{ CPUFUNC(op_5cc0_0), 23744 }, /* Scc */ -{ CPUFUNC(op_5cc8_0), 23752 }, /* DBcc */ -{ CPUFUNC(op_5cd0_0), 23760 }, /* Scc */ -{ CPUFUNC(op_5cd8_0), 23768 }, /* Scc */ -{ CPUFUNC(op_5ce0_0), 23776 }, /* Scc */ -{ CPUFUNC(op_5ce8_0), 23784 }, /* Scc */ -{ CPUFUNC(op_5cf0_0), 23792 }, /* Scc */ -{ CPUFUNC(op_5cf8_0), 23800 }, /* Scc */ -{ CPUFUNC(op_5cf9_0), 23801 }, /* Scc */ -{ CPUFUNC(op_5cfa_0), 23802 }, /* TRAPcc */ -{ CPUFUNC(op_5cfb_0), 23803 }, /* TRAPcc */ -{ CPUFUNC(op_5cfc_0), 23804 }, /* TRAPcc */ -{ CPUFUNC(op_5dc0_0), 24000 }, /* Scc */ -{ CPUFUNC(op_5dc8_0), 24008 }, /* DBcc */ -{ CPUFUNC(op_5dd0_0), 24016 }, /* Scc */ -{ CPUFUNC(op_5dd8_0), 24024 }, /* Scc */ -{ CPUFUNC(op_5de0_0), 24032 }, /* Scc */ -{ CPUFUNC(op_5de8_0), 24040 }, /* Scc */ -{ CPUFUNC(op_5df0_0), 24048 }, /* Scc */ -{ CPUFUNC(op_5df8_0), 24056 }, /* Scc */ -{ CPUFUNC(op_5df9_0), 24057 }, /* Scc */ -{ CPUFUNC(op_5dfa_0), 24058 }, /* TRAPcc */ -{ CPUFUNC(op_5dfb_0), 24059 }, /* TRAPcc */ -{ CPUFUNC(op_5dfc_0), 24060 }, /* TRAPcc */ -{ CPUFUNC(op_5ec0_0), 24256 }, /* Scc */ -{ CPUFUNC(op_5ec8_0), 24264 }, /* DBcc */ -{ CPUFUNC(op_5ed0_0), 24272 }, /* Scc */ -{ CPUFUNC(op_5ed8_0), 24280 }, /* Scc */ -{ CPUFUNC(op_5ee0_0), 24288 }, /* Scc */ -{ CPUFUNC(op_5ee8_0), 24296 }, /* Scc */ -{ CPUFUNC(op_5ef0_0), 24304 }, /* Scc */ -{ CPUFUNC(op_5ef8_0), 24312 }, /* Scc */ -{ CPUFUNC(op_5ef9_0), 24313 }, /* Scc */ -{ CPUFUNC(op_5efa_0), 24314 }, /* TRAPcc */ -{ CPUFUNC(op_5efb_0), 24315 }, /* TRAPcc */ -{ CPUFUNC(op_5efc_0), 24316 }, /* TRAPcc */ -{ CPUFUNC(op_5fc0_0), 24512 }, /* Scc */ -{ CPUFUNC(op_5fc8_0), 24520 }, /* DBcc */ -{ CPUFUNC(op_5fd0_0), 24528 }, /* Scc */ -{ CPUFUNC(op_5fd8_0), 24536 }, /* Scc */ -{ CPUFUNC(op_5fe0_0), 24544 }, /* Scc */ -{ CPUFUNC(op_5fe8_0), 24552 }, /* Scc */ -{ CPUFUNC(op_5ff0_0), 24560 }, /* Scc */ -{ CPUFUNC(op_5ff8_0), 24568 }, /* Scc */ -{ CPUFUNC(op_5ff9_0), 24569 }, /* Scc */ -{ CPUFUNC(op_5ffa_0), 24570 }, /* TRAPcc */ -{ CPUFUNC(op_5ffb_0), 24571 }, /* TRAPcc */ -{ CPUFUNC(op_5ffc_0), 24572 }, /* TRAPcc */ -{ CPUFUNC(op_6000_0), 24576 }, /* Bcc */ -{ CPUFUNC(op_6001_0), 24577 }, /* Bcc */ -{ CPUFUNC(op_60ff_0), 24831 }, /* Bcc */ -{ CPUFUNC(op_6100_0), 24832 }, /* BSR */ -{ CPUFUNC(op_6101_0), 24833 }, /* BSR */ -{ CPUFUNC(op_61ff_0), 25087 }, /* BSR */ -{ CPUFUNC(op_6200_0), 25088 }, /* Bcc */ -{ CPUFUNC(op_6201_0), 25089 }, /* Bcc */ -{ CPUFUNC(op_62ff_0), 25343 }, /* Bcc */ -{ CPUFUNC(op_6300_0), 25344 }, /* Bcc */ -{ CPUFUNC(op_6301_0), 25345 }, /* Bcc */ -{ CPUFUNC(op_63ff_0), 25599 }, /* Bcc */ -{ CPUFUNC(op_6400_0), 25600 }, /* Bcc */ -{ CPUFUNC(op_6401_0), 25601 }, /* Bcc */ -{ CPUFUNC(op_64ff_0), 25855 }, /* Bcc */ -{ CPUFUNC(op_6500_0), 25856 }, /* Bcc */ -{ CPUFUNC(op_6501_0), 25857 }, /* Bcc */ -{ CPUFUNC(op_65ff_0), 26111 }, /* Bcc */ -{ CPUFUNC(op_6600_0), 26112 }, /* Bcc */ -{ CPUFUNC(op_6601_0), 26113 }, /* Bcc */ -{ CPUFUNC(op_66ff_0), 26367 }, /* Bcc */ -{ CPUFUNC(op_6700_0), 26368 }, /* Bcc */ -{ CPUFUNC(op_6701_0), 26369 }, /* Bcc */ -{ CPUFUNC(op_67ff_0), 26623 }, /* Bcc */ -{ CPUFUNC(op_6800_0), 26624 }, /* Bcc */ -{ CPUFUNC(op_6801_0), 26625 }, /* Bcc */ -{ CPUFUNC(op_68ff_0), 26879 }, /* Bcc */ -{ CPUFUNC(op_6900_0), 26880 }, /* Bcc */ -{ CPUFUNC(op_6901_0), 26881 }, /* Bcc */ -{ CPUFUNC(op_69ff_0), 27135 }, /* Bcc */ -{ CPUFUNC(op_6a00_0), 27136 }, /* Bcc */ -{ CPUFUNC(op_6a01_0), 27137 }, /* Bcc */ -{ CPUFUNC(op_6aff_0), 27391 }, /* Bcc */ -{ CPUFUNC(op_6b00_0), 27392 }, /* Bcc */ -{ CPUFUNC(op_6b01_0), 27393 }, /* Bcc */ -{ CPUFUNC(op_6bff_0), 27647 }, /* Bcc */ -{ CPUFUNC(op_6c00_0), 27648 }, /* Bcc */ -{ CPUFUNC(op_6c01_0), 27649 }, /* Bcc */ -{ CPUFUNC(op_6cff_0), 27903 }, /* Bcc */ -{ CPUFUNC(op_6d00_0), 27904 }, /* Bcc */ -{ CPUFUNC(op_6d01_0), 27905 }, /* Bcc */ -{ CPUFUNC(op_6dff_0), 28159 }, /* Bcc */ -{ CPUFUNC(op_6e00_0), 28160 }, /* Bcc */ -{ CPUFUNC(op_6e01_0), 28161 }, /* Bcc */ -{ CPUFUNC(op_6eff_0), 28415 }, /* Bcc */ -{ CPUFUNC(op_6f00_0), 28416 }, /* Bcc */ -{ CPUFUNC(op_6f01_0), 28417 }, /* Bcc */ -{ CPUFUNC(op_6fff_0), 28671 }, /* Bcc */ -{ CPUFUNC(op_7000_0), 28672 }, /* MOVE */ -{ CPUFUNC(op_8000_0), 32768 }, /* OR */ -{ CPUFUNC(op_8010_0), 32784 }, /* OR */ -{ CPUFUNC(op_8018_0), 32792 }, /* OR */ -{ CPUFUNC(op_8020_0), 32800 }, /* OR */ -{ CPUFUNC(op_8028_0), 32808 }, /* OR */ -{ CPUFUNC(op_8030_0), 32816 }, /* OR */ -{ CPUFUNC(op_8038_0), 32824 }, /* OR */ -{ CPUFUNC(op_8039_0), 32825 }, /* OR */ -{ CPUFUNC(op_803a_0), 32826 }, /* OR */ -{ CPUFUNC(op_803b_0), 32827 }, /* OR */ -{ CPUFUNC(op_803c_0), 32828 }, /* OR */ -{ CPUFUNC(op_8040_0), 32832 }, /* OR */ -{ CPUFUNC(op_8050_0), 32848 }, /* OR */ -{ CPUFUNC(op_8058_0), 32856 }, /* OR */ -{ CPUFUNC(op_8060_0), 32864 }, /* OR */ -{ CPUFUNC(op_8068_0), 32872 }, /* OR */ -{ CPUFUNC(op_8070_0), 32880 }, /* OR */ -{ CPUFUNC(op_8078_0), 32888 }, /* OR */ -{ CPUFUNC(op_8079_0), 32889 }, /* OR */ -{ CPUFUNC(op_807a_0), 32890 }, /* OR */ -{ CPUFUNC(op_807b_0), 32891 }, /* OR */ -{ CPUFUNC(op_807c_0), 32892 }, /* OR */ -{ CPUFUNC(op_8080_0), 32896 }, /* OR */ -{ CPUFUNC(op_8090_0), 32912 }, /* OR */ -{ CPUFUNC(op_8098_0), 32920 }, /* OR */ -{ CPUFUNC(op_80a0_0), 32928 }, /* OR */ -{ CPUFUNC(op_80a8_0), 32936 }, /* OR */ -{ CPUFUNC(op_80b0_0), 32944 }, /* OR */ -{ CPUFUNC(op_80b8_0), 32952 }, /* OR */ -{ CPUFUNC(op_80b9_0), 32953 }, /* OR */ -{ CPUFUNC(op_80ba_0), 32954 }, /* OR */ -{ CPUFUNC(op_80bb_0), 32955 }, /* OR */ -{ CPUFUNC(op_80bc_0), 32956 }, /* OR */ -{ CPUFUNC(op_80c0_0), 32960 }, /* DIVU */ -{ CPUFUNC(op_80d0_0), 32976 }, /* DIVU */ -{ CPUFUNC(op_80d8_0), 32984 }, /* DIVU */ -{ CPUFUNC(op_80e0_0), 32992 }, /* DIVU */ -{ CPUFUNC(op_80e8_0), 33000 }, /* DIVU */ -{ CPUFUNC(op_80f0_0), 33008 }, /* DIVU */ -{ CPUFUNC(op_80f8_0), 33016 }, /* DIVU */ -{ CPUFUNC(op_80f9_0), 33017 }, /* DIVU */ -{ CPUFUNC(op_80fa_0), 33018 }, /* DIVU */ -{ CPUFUNC(op_80fb_0), 33019 }, /* DIVU */ -{ CPUFUNC(op_80fc_0), 33020 }, /* DIVU */ -{ CPUFUNC(op_8100_0), 33024 }, /* SBCD */ -{ CPUFUNC(op_8108_0), 33032 }, /* SBCD */ -{ CPUFUNC(op_8110_0), 33040 }, /* OR */ -{ CPUFUNC(op_8118_0), 33048 }, /* OR */ -{ CPUFUNC(op_8120_0), 33056 }, /* OR */ -{ CPUFUNC(op_8128_0), 33064 }, /* OR */ -{ CPUFUNC(op_8130_0), 33072 }, /* OR */ -{ CPUFUNC(op_8138_0), 33080 }, /* OR */ -{ CPUFUNC(op_8139_0), 33081 }, /* OR */ -{ CPUFUNC(op_8140_0), 33088 }, /* PACK */ -{ CPUFUNC(op_8148_0), 33096 }, /* PACK */ -{ CPUFUNC(op_8150_0), 33104 }, /* OR */ -{ CPUFUNC(op_8158_0), 33112 }, /* OR */ -{ CPUFUNC(op_8160_0), 33120 }, /* OR */ -{ CPUFUNC(op_8168_0), 33128 }, /* OR */ -{ CPUFUNC(op_8170_0), 33136 }, /* OR */ -{ CPUFUNC(op_8178_0), 33144 }, /* OR */ -{ CPUFUNC(op_8179_0), 33145 }, /* OR */ -{ CPUFUNC(op_8180_0), 33152 }, /* UNPK */ -{ CPUFUNC(op_8188_0), 33160 }, /* UNPK */ -{ CPUFUNC(op_8190_0), 33168 }, /* OR */ -{ CPUFUNC(op_8198_0), 33176 }, /* OR */ -{ CPUFUNC(op_81a0_0), 33184 }, /* OR */ -{ CPUFUNC(op_81a8_0), 33192 }, /* OR */ -{ CPUFUNC(op_81b0_0), 33200 }, /* OR */ -{ CPUFUNC(op_81b8_0), 33208 }, /* OR */ -{ CPUFUNC(op_81b9_0), 33209 }, /* OR */ -{ CPUFUNC(op_81c0_0), 33216 }, /* DIVS */ -{ CPUFUNC(op_81d0_0), 33232 }, /* DIVS */ -{ CPUFUNC(op_81d8_0), 33240 }, /* DIVS */ -{ CPUFUNC(op_81e0_0), 33248 }, /* DIVS */ -{ CPUFUNC(op_81e8_0), 33256 }, /* DIVS */ -{ CPUFUNC(op_81f0_0), 33264 }, /* DIVS */ -{ CPUFUNC(op_81f8_0), 33272 }, /* DIVS */ -{ CPUFUNC(op_81f9_0), 33273 }, /* DIVS */ -{ CPUFUNC(op_81fa_0), 33274 }, /* DIVS */ -{ CPUFUNC(op_81fb_0), 33275 }, /* DIVS */ -{ CPUFUNC(op_81fc_0), 33276 }, /* DIVS */ -{ CPUFUNC(op_9000_0), 36864 }, /* SUB */ -{ CPUFUNC(op_9010_0), 36880 }, /* SUB */ -{ CPUFUNC(op_9018_0), 36888 }, /* SUB */ -{ CPUFUNC(op_9020_0), 36896 }, /* SUB */ -{ CPUFUNC(op_9028_0), 36904 }, /* SUB */ -{ CPUFUNC(op_9030_0), 36912 }, /* SUB */ -{ CPUFUNC(op_9038_0), 36920 }, /* SUB */ -{ CPUFUNC(op_9039_0), 36921 }, /* SUB */ -{ CPUFUNC(op_903a_0), 36922 }, /* SUB */ -{ CPUFUNC(op_903b_0), 36923 }, /* SUB */ -{ CPUFUNC(op_903c_0), 36924 }, /* SUB */ -{ CPUFUNC(op_9040_0), 36928 }, /* SUB */ -{ CPUFUNC(op_9048_0), 36936 }, /* SUB */ -{ CPUFUNC(op_9050_0), 36944 }, /* SUB */ -{ CPUFUNC(op_9058_0), 36952 }, /* SUB */ -{ CPUFUNC(op_9060_0), 36960 }, /* SUB */ -{ CPUFUNC(op_9068_0), 36968 }, /* SUB */ -{ CPUFUNC(op_9070_0), 36976 }, /* SUB */ -{ CPUFUNC(op_9078_0), 36984 }, /* SUB */ -{ CPUFUNC(op_9079_0), 36985 }, /* SUB */ -{ CPUFUNC(op_907a_0), 36986 }, /* SUB */ -{ CPUFUNC(op_907b_0), 36987 }, /* SUB */ -{ CPUFUNC(op_907c_0), 36988 }, /* SUB */ -{ CPUFUNC(op_9080_0), 36992 }, /* SUB */ -{ CPUFUNC(op_9088_0), 37000 }, /* SUB */ -{ CPUFUNC(op_9090_0), 37008 }, /* SUB */ -{ CPUFUNC(op_9098_0), 37016 }, /* SUB */ -{ CPUFUNC(op_90a0_0), 37024 }, /* SUB */ -{ CPUFUNC(op_90a8_0), 37032 }, /* SUB */ -{ CPUFUNC(op_90b0_0), 37040 }, /* SUB */ -{ CPUFUNC(op_90b8_0), 37048 }, /* SUB */ -{ CPUFUNC(op_90b9_0), 37049 }, /* SUB */ -{ CPUFUNC(op_90ba_0), 37050 }, /* SUB */ -{ CPUFUNC(op_90bb_0), 37051 }, /* SUB */ -{ CPUFUNC(op_90bc_0), 37052 }, /* SUB */ -{ CPUFUNC(op_90c0_0), 37056 }, /* SUBA */ -{ CPUFUNC(op_90c8_0), 37064 }, /* SUBA */ -{ CPUFUNC(op_90d0_0), 37072 }, /* SUBA */ -{ CPUFUNC(op_90d8_0), 37080 }, /* SUBA */ -{ CPUFUNC(op_90e0_0), 37088 }, /* SUBA */ -{ CPUFUNC(op_90e8_0), 37096 }, /* SUBA */ -{ CPUFUNC(op_90f0_0), 37104 }, /* SUBA */ -{ CPUFUNC(op_90f8_0), 37112 }, /* SUBA */ -{ CPUFUNC(op_90f9_0), 37113 }, /* SUBA */ -{ CPUFUNC(op_90fa_0), 37114 }, /* SUBA */ -{ CPUFUNC(op_90fb_0), 37115 }, /* SUBA */ -{ CPUFUNC(op_90fc_0), 37116 }, /* SUBA */ -{ CPUFUNC(op_9100_0), 37120 }, /* SUBX */ -{ CPUFUNC(op_9108_0), 37128 }, /* SUBX */ -{ CPUFUNC(op_9110_0), 37136 }, /* SUB */ -{ CPUFUNC(op_9118_0), 37144 }, /* SUB */ -{ CPUFUNC(op_9120_0), 37152 }, /* SUB */ -{ CPUFUNC(op_9128_0), 37160 }, /* SUB */ -{ CPUFUNC(op_9130_0), 37168 }, /* SUB */ -{ CPUFUNC(op_9138_0), 37176 }, /* SUB */ -{ CPUFUNC(op_9139_0), 37177 }, /* SUB */ -{ CPUFUNC(op_9140_0), 37184 }, /* SUBX */ -{ CPUFUNC(op_9148_0), 37192 }, /* SUBX */ -{ CPUFUNC(op_9150_0), 37200 }, /* SUB */ -{ CPUFUNC(op_9158_0), 37208 }, /* SUB */ -{ CPUFUNC(op_9160_0), 37216 }, /* SUB */ -{ CPUFUNC(op_9168_0), 37224 }, /* SUB */ -{ CPUFUNC(op_9170_0), 37232 }, /* SUB */ -{ CPUFUNC(op_9178_0), 37240 }, /* SUB */ -{ CPUFUNC(op_9179_0), 37241 }, /* SUB */ -{ CPUFUNC(op_9180_0), 37248 }, /* SUBX */ -{ CPUFUNC(op_9188_0), 37256 }, /* SUBX */ -{ CPUFUNC(op_9190_0), 37264 }, /* SUB */ -{ CPUFUNC(op_9198_0), 37272 }, /* SUB */ -{ CPUFUNC(op_91a0_0), 37280 }, /* SUB */ -{ CPUFUNC(op_91a8_0), 37288 }, /* SUB */ -{ CPUFUNC(op_91b0_0), 37296 }, /* SUB */ -{ CPUFUNC(op_91b8_0), 37304 }, /* SUB */ -{ CPUFUNC(op_91b9_0), 37305 }, /* SUB */ -{ CPUFUNC(op_91c0_0), 37312 }, /* SUBA */ -{ CPUFUNC(op_91c8_0), 37320 }, /* SUBA */ -{ CPUFUNC(op_91d0_0), 37328 }, /* SUBA */ -{ CPUFUNC(op_91d8_0), 37336 }, /* SUBA */ -{ CPUFUNC(op_91e0_0), 37344 }, /* SUBA */ -{ CPUFUNC(op_91e8_0), 37352 }, /* SUBA */ -{ CPUFUNC(op_91f0_0), 37360 }, /* SUBA */ -{ CPUFUNC(op_91f8_0), 37368 }, /* SUBA */ -{ CPUFUNC(op_91f9_0), 37369 }, /* SUBA */ -{ CPUFUNC(op_91fa_0), 37370 }, /* SUBA */ -{ CPUFUNC(op_91fb_0), 37371 }, /* SUBA */ -{ CPUFUNC(op_91fc_0), 37372 }, /* SUBA */ -{ CPUFUNC(op_b000_0), 45056 }, /* CMP */ -{ CPUFUNC(op_b010_0), 45072 }, /* CMP */ -{ CPUFUNC(op_b018_0), 45080 }, /* CMP */ -{ CPUFUNC(op_b020_0), 45088 }, /* CMP */ -{ CPUFUNC(op_b028_0), 45096 }, /* CMP */ -{ CPUFUNC(op_b030_0), 45104 }, /* CMP */ -{ CPUFUNC(op_b038_0), 45112 }, /* CMP */ -{ CPUFUNC(op_b039_0), 45113 }, /* CMP */ -{ CPUFUNC(op_b03a_0), 45114 }, /* CMP */ -{ CPUFUNC(op_b03b_0), 45115 }, /* CMP */ -{ CPUFUNC(op_b03c_0), 45116 }, /* CMP */ -{ CPUFUNC(op_b040_0), 45120 }, /* CMP */ -{ CPUFUNC(op_b048_0), 45128 }, /* CMP */ -{ CPUFUNC(op_b050_0), 45136 }, /* CMP */ -{ CPUFUNC(op_b058_0), 45144 }, /* CMP */ -{ CPUFUNC(op_b060_0), 45152 }, /* CMP */ -{ CPUFUNC(op_b068_0), 45160 }, /* CMP */ -{ CPUFUNC(op_b070_0), 45168 }, /* CMP */ -{ CPUFUNC(op_b078_0), 45176 }, /* CMP */ -{ CPUFUNC(op_b079_0), 45177 }, /* CMP */ -{ CPUFUNC(op_b07a_0), 45178 }, /* CMP */ -{ CPUFUNC(op_b07b_0), 45179 }, /* CMP */ -{ CPUFUNC(op_b07c_0), 45180 }, /* CMP */ -{ CPUFUNC(op_b080_0), 45184 }, /* CMP */ -{ CPUFUNC(op_b088_0), 45192 }, /* CMP */ -{ CPUFUNC(op_b090_0), 45200 }, /* CMP */ -{ CPUFUNC(op_b098_0), 45208 }, /* CMP */ -{ CPUFUNC(op_b0a0_0), 45216 }, /* CMP */ -{ CPUFUNC(op_b0a8_0), 45224 }, /* CMP */ -{ CPUFUNC(op_b0b0_0), 45232 }, /* CMP */ -{ CPUFUNC(op_b0b8_0), 45240 }, /* CMP */ -{ CPUFUNC(op_b0b9_0), 45241 }, /* CMP */ -{ CPUFUNC(op_b0ba_0), 45242 }, /* CMP */ -{ CPUFUNC(op_b0bb_0), 45243 }, /* CMP */ -{ CPUFUNC(op_b0bc_0), 45244 }, /* CMP */ -{ CPUFUNC(op_b0c0_0), 45248 }, /* CMPA */ -{ CPUFUNC(op_b0c8_0), 45256 }, /* CMPA */ -{ CPUFUNC(op_b0d0_0), 45264 }, /* CMPA */ -{ CPUFUNC(op_b0d8_0), 45272 }, /* CMPA */ -{ CPUFUNC(op_b0e0_0), 45280 }, /* CMPA */ -{ CPUFUNC(op_b0e8_0), 45288 }, /* CMPA */ -{ CPUFUNC(op_b0f0_0), 45296 }, /* CMPA */ -{ CPUFUNC(op_b0f8_0), 45304 }, /* CMPA */ -{ CPUFUNC(op_b0f9_0), 45305 }, /* CMPA */ -{ CPUFUNC(op_b0fa_0), 45306 }, /* CMPA */ -{ CPUFUNC(op_b0fb_0), 45307 }, /* CMPA */ -{ CPUFUNC(op_b0fc_0), 45308 }, /* CMPA */ -{ CPUFUNC(op_b100_0), 45312 }, /* EOR */ -{ CPUFUNC(op_b108_0), 45320 }, /* CMPM */ -{ CPUFUNC(op_b110_0), 45328 }, /* EOR */ -{ CPUFUNC(op_b118_0), 45336 }, /* EOR */ -{ CPUFUNC(op_b120_0), 45344 }, /* EOR */ -{ CPUFUNC(op_b128_0), 45352 }, /* EOR */ -{ CPUFUNC(op_b130_0), 45360 }, /* EOR */ -{ CPUFUNC(op_b138_0), 45368 }, /* EOR */ -{ CPUFUNC(op_b139_0), 45369 }, /* EOR */ -{ CPUFUNC(op_b140_0), 45376 }, /* EOR */ -{ CPUFUNC(op_b148_0), 45384 }, /* CMPM */ -{ CPUFUNC(op_b150_0), 45392 }, /* EOR */ -{ CPUFUNC(op_b158_0), 45400 }, /* EOR */ -{ CPUFUNC(op_b160_0), 45408 }, /* EOR */ -{ CPUFUNC(op_b168_0), 45416 }, /* EOR */ -{ CPUFUNC(op_b170_0), 45424 }, /* EOR */ -{ CPUFUNC(op_b178_0), 45432 }, /* EOR */ -{ CPUFUNC(op_b179_0), 45433 }, /* EOR */ -{ CPUFUNC(op_b180_0), 45440 }, /* EOR */ -{ CPUFUNC(op_b188_0), 45448 }, /* CMPM */ -{ CPUFUNC(op_b190_0), 45456 }, /* EOR */ -{ CPUFUNC(op_b198_0), 45464 }, /* EOR */ -{ CPUFUNC(op_b1a0_0), 45472 }, /* EOR */ -{ CPUFUNC(op_b1a8_0), 45480 }, /* EOR */ -{ CPUFUNC(op_b1b0_0), 45488 }, /* EOR */ -{ CPUFUNC(op_b1b8_0), 45496 }, /* EOR */ -{ CPUFUNC(op_b1b9_0), 45497 }, /* EOR */ -{ CPUFUNC(op_b1c0_0), 45504 }, /* CMPA */ -{ CPUFUNC(op_b1c8_0), 45512 }, /* CMPA */ -{ CPUFUNC(op_b1d0_0), 45520 }, /* CMPA */ -{ CPUFUNC(op_b1d8_0), 45528 }, /* CMPA */ -{ CPUFUNC(op_b1e0_0), 45536 }, /* CMPA */ -{ CPUFUNC(op_b1e8_0), 45544 }, /* CMPA */ -{ CPUFUNC(op_b1f0_0), 45552 }, /* CMPA */ -{ CPUFUNC(op_b1f8_0), 45560 }, /* CMPA */ -{ CPUFUNC(op_b1f9_0), 45561 }, /* CMPA */ -{ CPUFUNC(op_b1fa_0), 45562 }, /* CMPA */ -{ CPUFUNC(op_b1fb_0), 45563 }, /* CMPA */ -{ CPUFUNC(op_b1fc_0), 45564 }, /* CMPA */ -{ CPUFUNC(op_c000_0), 49152 }, /* AND */ -{ CPUFUNC(op_c010_0), 49168 }, /* AND */ -{ CPUFUNC(op_c018_0), 49176 }, /* AND */ -{ CPUFUNC(op_c020_0), 49184 }, /* AND */ -{ CPUFUNC(op_c028_0), 49192 }, /* AND */ -{ CPUFUNC(op_c030_0), 49200 }, /* AND */ -{ CPUFUNC(op_c038_0), 49208 }, /* AND */ -{ CPUFUNC(op_c039_0), 49209 }, /* AND */ -{ CPUFUNC(op_c03a_0), 49210 }, /* AND */ -{ CPUFUNC(op_c03b_0), 49211 }, /* AND */ -{ CPUFUNC(op_c03c_0), 49212 }, /* AND */ -{ CPUFUNC(op_c040_0), 49216 }, /* AND */ -{ CPUFUNC(op_c050_0), 49232 }, /* AND */ -{ CPUFUNC(op_c058_0), 49240 }, /* AND */ -{ CPUFUNC(op_c060_0), 49248 }, /* AND */ -{ CPUFUNC(op_c068_0), 49256 }, /* AND */ -{ CPUFUNC(op_c070_0), 49264 }, /* AND */ -{ CPUFUNC(op_c078_0), 49272 }, /* AND */ -{ CPUFUNC(op_c079_0), 49273 }, /* AND */ -{ CPUFUNC(op_c07a_0), 49274 }, /* AND */ -{ CPUFUNC(op_c07b_0), 49275 }, /* AND */ -{ CPUFUNC(op_c07c_0), 49276 }, /* AND */ -{ CPUFUNC(op_c080_0), 49280 }, /* AND */ -{ CPUFUNC(op_c090_0), 49296 }, /* AND */ -{ CPUFUNC(op_c098_0), 49304 }, /* AND */ -{ CPUFUNC(op_c0a0_0), 49312 }, /* AND */ -{ CPUFUNC(op_c0a8_0), 49320 }, /* AND */ -{ CPUFUNC(op_c0b0_0), 49328 }, /* AND */ -{ CPUFUNC(op_c0b8_0), 49336 }, /* AND */ -{ CPUFUNC(op_c0b9_0), 49337 }, /* AND */ -{ CPUFUNC(op_c0ba_0), 49338 }, /* AND */ -{ CPUFUNC(op_c0bb_0), 49339 }, /* AND */ -{ CPUFUNC(op_c0bc_0), 49340 }, /* AND */ -{ CPUFUNC(op_c0c0_0), 49344 }, /* MULU */ -{ CPUFUNC(op_c0d0_0), 49360 }, /* MULU */ -{ CPUFUNC(op_c0d8_0), 49368 }, /* MULU */ -{ CPUFUNC(op_c0e0_0), 49376 }, /* MULU */ -{ CPUFUNC(op_c0e8_0), 49384 }, /* MULU */ -{ CPUFUNC(op_c0f0_0), 49392 }, /* MULU */ -{ CPUFUNC(op_c0f8_0), 49400 }, /* MULU */ -{ CPUFUNC(op_c0f9_0), 49401 }, /* MULU */ -{ CPUFUNC(op_c0fa_0), 49402 }, /* MULU */ -{ CPUFUNC(op_c0fb_0), 49403 }, /* MULU */ -{ CPUFUNC(op_c0fc_0), 49404 }, /* MULU */ -{ CPUFUNC(op_c100_0), 49408 }, /* ABCD */ -{ CPUFUNC(op_c108_0), 49416 }, /* ABCD */ -{ CPUFUNC(op_c110_0), 49424 }, /* AND */ -{ CPUFUNC(op_c118_0), 49432 }, /* AND */ -{ CPUFUNC(op_c120_0), 49440 }, /* AND */ -{ CPUFUNC(op_c128_0), 49448 }, /* AND */ -{ CPUFUNC(op_c130_0), 49456 }, /* AND */ -{ CPUFUNC(op_c138_0), 49464 }, /* AND */ -{ CPUFUNC(op_c139_0), 49465 }, /* AND */ -{ CPUFUNC(op_c140_0), 49472 }, /* EXG */ -{ CPUFUNC(op_c148_0), 49480 }, /* EXG */ -{ CPUFUNC(op_c150_0), 49488 }, /* AND */ -{ CPUFUNC(op_c158_0), 49496 }, /* AND */ -{ CPUFUNC(op_c160_0), 49504 }, /* AND */ -{ CPUFUNC(op_c168_0), 49512 }, /* AND */ -{ CPUFUNC(op_c170_0), 49520 }, /* AND */ -{ CPUFUNC(op_c178_0), 49528 }, /* AND */ -{ CPUFUNC(op_c179_0), 49529 }, /* AND */ -{ CPUFUNC(op_c188_0), 49544 }, /* EXG */ -{ CPUFUNC(op_c190_0), 49552 }, /* AND */ -{ CPUFUNC(op_c198_0), 49560 }, /* AND */ -{ CPUFUNC(op_c1a0_0), 49568 }, /* AND */ -{ CPUFUNC(op_c1a8_0), 49576 }, /* AND */ -{ CPUFUNC(op_c1b0_0), 49584 }, /* AND */ -{ CPUFUNC(op_c1b8_0), 49592 }, /* AND */ -{ CPUFUNC(op_c1b9_0), 49593 }, /* AND */ -{ CPUFUNC(op_c1c0_0), 49600 }, /* MULS */ -{ CPUFUNC(op_c1d0_0), 49616 }, /* MULS */ -{ CPUFUNC(op_c1d8_0), 49624 }, /* MULS */ -{ CPUFUNC(op_c1e0_0), 49632 }, /* MULS */ -{ CPUFUNC(op_c1e8_0), 49640 }, /* MULS */ -{ CPUFUNC(op_c1f0_0), 49648 }, /* MULS */ -{ CPUFUNC(op_c1f8_0), 49656 }, /* MULS */ -{ CPUFUNC(op_c1f9_0), 49657 }, /* MULS */ -{ CPUFUNC(op_c1fa_0), 49658 }, /* MULS */ -{ CPUFUNC(op_c1fb_0), 49659 }, /* MULS */ -{ CPUFUNC(op_c1fc_0), 49660 }, /* MULS */ -{ CPUFUNC(op_d000_0), 53248 }, /* ADD */ -{ CPUFUNC(op_d010_0), 53264 }, /* ADD */ -{ CPUFUNC(op_d018_0), 53272 }, /* ADD */ -{ CPUFUNC(op_d020_0), 53280 }, /* ADD */ -{ CPUFUNC(op_d028_0), 53288 }, /* ADD */ -{ CPUFUNC(op_d030_0), 53296 }, /* ADD */ -{ CPUFUNC(op_d038_0), 53304 }, /* ADD */ -{ CPUFUNC(op_d039_0), 53305 }, /* ADD */ -{ CPUFUNC(op_d03a_0), 53306 }, /* ADD */ -{ CPUFUNC(op_d03b_0), 53307 }, /* ADD */ -{ CPUFUNC(op_d03c_0), 53308 }, /* ADD */ -{ CPUFUNC(op_d040_0), 53312 }, /* ADD */ -{ CPUFUNC(op_d048_0), 53320 }, /* ADD */ -{ CPUFUNC(op_d050_0), 53328 }, /* ADD */ -{ CPUFUNC(op_d058_0), 53336 }, /* ADD */ -{ CPUFUNC(op_d060_0), 53344 }, /* ADD */ -{ CPUFUNC(op_d068_0), 53352 }, /* ADD */ -{ CPUFUNC(op_d070_0), 53360 }, /* ADD */ -{ CPUFUNC(op_d078_0), 53368 }, /* ADD */ -{ CPUFUNC(op_d079_0), 53369 }, /* ADD */ -{ CPUFUNC(op_d07a_0), 53370 }, /* ADD */ -{ CPUFUNC(op_d07b_0), 53371 }, /* ADD */ -{ CPUFUNC(op_d07c_0), 53372 }, /* ADD */ -{ CPUFUNC(op_d080_0), 53376 }, /* ADD */ -{ CPUFUNC(op_d088_0), 53384 }, /* ADD */ -{ CPUFUNC(op_d090_0), 53392 }, /* ADD */ -{ CPUFUNC(op_d098_0), 53400 }, /* ADD */ -{ CPUFUNC(op_d0a0_0), 53408 }, /* ADD */ -{ CPUFUNC(op_d0a8_0), 53416 }, /* ADD */ -{ CPUFUNC(op_d0b0_0), 53424 }, /* ADD */ -{ CPUFUNC(op_d0b8_0), 53432 }, /* ADD */ -{ CPUFUNC(op_d0b9_0), 53433 }, /* ADD */ -{ CPUFUNC(op_d0ba_0), 53434 }, /* ADD */ -{ CPUFUNC(op_d0bb_0), 53435 }, /* ADD */ -{ CPUFUNC(op_d0bc_0), 53436 }, /* ADD */ -{ CPUFUNC(op_d0c0_0), 53440 }, /* ADDA */ -{ CPUFUNC(op_d0c8_0), 53448 }, /* ADDA */ -{ CPUFUNC(op_d0d0_0), 53456 }, /* ADDA */ -{ CPUFUNC(op_d0d8_0), 53464 }, /* ADDA */ -{ CPUFUNC(op_d0e0_0), 53472 }, /* ADDA */ -{ CPUFUNC(op_d0e8_0), 53480 }, /* ADDA */ -{ CPUFUNC(op_d0f0_0), 53488 }, /* ADDA */ -{ CPUFUNC(op_d0f8_0), 53496 }, /* ADDA */ -{ CPUFUNC(op_d0f9_0), 53497 }, /* ADDA */ -{ CPUFUNC(op_d0fa_0), 53498 }, /* ADDA */ -{ CPUFUNC(op_d0fb_0), 53499 }, /* ADDA */ -{ CPUFUNC(op_d0fc_0), 53500 }, /* ADDA */ -{ CPUFUNC(op_d100_0), 53504 }, /* ADDX */ -{ CPUFUNC(op_d108_0), 53512 }, /* ADDX */ -{ CPUFUNC(op_d110_0), 53520 }, /* ADD */ -{ CPUFUNC(op_d118_0), 53528 }, /* ADD */ -{ CPUFUNC(op_d120_0), 53536 }, /* ADD */ -{ CPUFUNC(op_d128_0), 53544 }, /* ADD */ -{ CPUFUNC(op_d130_0), 53552 }, /* ADD */ -{ CPUFUNC(op_d138_0), 53560 }, /* ADD */ -{ CPUFUNC(op_d139_0), 53561 }, /* ADD */ -{ CPUFUNC(op_d140_0), 53568 }, /* ADDX */ -{ CPUFUNC(op_d148_0), 53576 }, /* ADDX */ -{ CPUFUNC(op_d150_0), 53584 }, /* ADD */ -{ CPUFUNC(op_d158_0), 53592 }, /* ADD */ -{ CPUFUNC(op_d160_0), 53600 }, /* ADD */ -{ CPUFUNC(op_d168_0), 53608 }, /* ADD */ -{ CPUFUNC(op_d170_0), 53616 }, /* ADD */ -{ CPUFUNC(op_d178_0), 53624 }, /* ADD */ -{ CPUFUNC(op_d179_0), 53625 }, /* ADD */ -{ CPUFUNC(op_d180_0), 53632 }, /* ADDX */ -{ CPUFUNC(op_d188_0), 53640 }, /* ADDX */ -{ CPUFUNC(op_d190_0), 53648 }, /* ADD */ -{ CPUFUNC(op_d198_0), 53656 }, /* ADD */ -{ CPUFUNC(op_d1a0_0), 53664 }, /* ADD */ -{ CPUFUNC(op_d1a8_0), 53672 }, /* ADD */ -{ CPUFUNC(op_d1b0_0), 53680 }, /* ADD */ -{ CPUFUNC(op_d1b8_0), 53688 }, /* ADD */ -{ CPUFUNC(op_d1b9_0), 53689 }, /* ADD */ -{ CPUFUNC(op_d1c0_0), 53696 }, /* ADDA */ -{ CPUFUNC(op_d1c8_0), 53704 }, /* ADDA */ -{ CPUFUNC(op_d1d0_0), 53712 }, /* ADDA */ -{ CPUFUNC(op_d1d8_0), 53720 }, /* ADDA */ -{ CPUFUNC(op_d1e0_0), 53728 }, /* ADDA */ -{ CPUFUNC(op_d1e8_0), 53736 }, /* ADDA */ -{ CPUFUNC(op_d1f0_0), 53744 }, /* ADDA */ -{ CPUFUNC(op_d1f8_0), 53752 }, /* ADDA */ -{ CPUFUNC(op_d1f9_0), 53753 }, /* ADDA */ -{ CPUFUNC(op_d1fa_0), 53754 }, /* ADDA */ -{ CPUFUNC(op_d1fb_0), 53755 }, /* ADDA */ -{ CPUFUNC(op_d1fc_0), 53756 }, /* ADDA */ -{ CPUFUNC(op_e000_0), 57344 }, /* ASR */ -{ CPUFUNC(op_e008_0), 57352 }, /* LSR */ -{ CPUFUNC(op_e010_0), 57360 }, /* ROXR */ -{ CPUFUNC(op_e018_0), 57368 }, /* ROR */ -{ CPUFUNC(op_e020_0), 57376 }, /* ASR */ -{ CPUFUNC(op_e028_0), 57384 }, /* LSR */ -{ CPUFUNC(op_e030_0), 57392 }, /* ROXR */ -{ CPUFUNC(op_e038_0), 57400 }, /* ROR */ -{ CPUFUNC(op_e040_0), 57408 }, /* ASR */ -{ CPUFUNC(op_e048_0), 57416 }, /* LSR */ -{ CPUFUNC(op_e050_0), 57424 }, /* ROXR */ -{ CPUFUNC(op_e058_0), 57432 }, /* ROR */ -{ CPUFUNC(op_e060_0), 57440 }, /* ASR */ -{ CPUFUNC(op_e068_0), 57448 }, /* LSR */ -{ CPUFUNC(op_e070_0), 57456 }, /* ROXR */ -{ CPUFUNC(op_e078_0), 57464 }, /* ROR */ -{ CPUFUNC(op_e080_0), 57472 }, /* ASR */ -{ CPUFUNC(op_e088_0), 57480 }, /* LSR */ -{ CPUFUNC(op_e090_0), 57488 }, /* ROXR */ -{ CPUFUNC(op_e098_0), 57496 }, /* ROR */ -{ CPUFUNC(op_e0a0_0), 57504 }, /* ASR */ -{ CPUFUNC(op_e0a8_0), 57512 }, /* LSR */ -{ CPUFUNC(op_e0b0_0), 57520 }, /* ROXR */ -{ CPUFUNC(op_e0b8_0), 57528 }, /* ROR */ -{ CPUFUNC(op_e0d0_0), 57552 }, /* ASRW */ -{ CPUFUNC(op_e0d8_0), 57560 }, /* ASRW */ -{ CPUFUNC(op_e0e0_0), 57568 }, /* ASRW */ -{ CPUFUNC(op_e0e8_0), 57576 }, /* ASRW */ -{ CPUFUNC(op_e0f0_0), 57584 }, /* ASRW */ -{ CPUFUNC(op_e0f8_0), 57592 }, /* ASRW */ -{ CPUFUNC(op_e0f9_0), 57593 }, /* ASRW */ -{ CPUFUNC(op_e100_0), 57600 }, /* ASL */ -{ CPUFUNC(op_e108_0), 57608 }, /* LSL */ -{ CPUFUNC(op_e110_0), 57616 }, /* ROXL */ -{ CPUFUNC(op_e118_0), 57624 }, /* ROL */ -{ CPUFUNC(op_e120_0), 57632 }, /* ASL */ -{ CPUFUNC(op_e128_0), 57640 }, /* LSL */ -{ CPUFUNC(op_e130_0), 57648 }, /* ROXL */ -{ CPUFUNC(op_e138_0), 57656 }, /* ROL */ -{ CPUFUNC(op_e140_0), 57664 }, /* ASL */ -{ CPUFUNC(op_e148_0), 57672 }, /* LSL */ -{ CPUFUNC(op_e150_0), 57680 }, /* ROXL */ -{ CPUFUNC(op_e158_0), 57688 }, /* ROL */ -{ CPUFUNC(op_e160_0), 57696 }, /* ASL */ -{ CPUFUNC(op_e168_0), 57704 }, /* LSL */ -{ CPUFUNC(op_e170_0), 57712 }, /* ROXL */ -{ CPUFUNC(op_e178_0), 57720 }, /* ROL */ -{ CPUFUNC(op_e180_0), 57728 }, /* ASL */ -{ CPUFUNC(op_e188_0), 57736 }, /* LSL */ -{ CPUFUNC(op_e190_0), 57744 }, /* ROXL */ -{ CPUFUNC(op_e198_0), 57752 }, /* ROL */ -{ CPUFUNC(op_e1a0_0), 57760 }, /* ASL */ -{ CPUFUNC(op_e1a8_0), 57768 }, /* LSL */ -{ CPUFUNC(op_e1b0_0), 57776 }, /* ROXL */ -{ CPUFUNC(op_e1b8_0), 57784 }, /* ROL */ -{ CPUFUNC(op_e1d0_0), 57808 }, /* ASLW */ -{ CPUFUNC(op_e1d8_0), 57816 }, /* ASLW */ -{ CPUFUNC(op_e1e0_0), 57824 }, /* ASLW */ -{ CPUFUNC(op_e1e8_0), 57832 }, /* ASLW */ -{ CPUFUNC(op_e1f0_0), 57840 }, /* ASLW */ -{ CPUFUNC(op_e1f8_0), 57848 }, /* ASLW */ -{ CPUFUNC(op_e1f9_0), 57849 }, /* ASLW */ -{ CPUFUNC(op_e2d0_0), 58064 }, /* LSRW */ -{ CPUFUNC(op_e2d8_0), 58072 }, /* LSRW */ -{ CPUFUNC(op_e2e0_0), 58080 }, /* LSRW */ -{ CPUFUNC(op_e2e8_0), 58088 }, /* LSRW */ -{ CPUFUNC(op_e2f0_0), 58096 }, /* LSRW */ -{ CPUFUNC(op_e2f8_0), 58104 }, /* LSRW */ -{ CPUFUNC(op_e2f9_0), 58105 }, /* LSRW */ -{ CPUFUNC(op_e3d0_0), 58320 }, /* LSLW */ -{ CPUFUNC(op_e3d8_0), 58328 }, /* LSLW */ -{ CPUFUNC(op_e3e0_0), 58336 }, /* LSLW */ -{ CPUFUNC(op_e3e8_0), 58344 }, /* LSLW */ -{ CPUFUNC(op_e3f0_0), 58352 }, /* LSLW */ -{ CPUFUNC(op_e3f8_0), 58360 }, /* LSLW */ -{ CPUFUNC(op_e3f9_0), 58361 }, /* LSLW */ -{ CPUFUNC(op_e4d0_0), 58576 }, /* ROXRW */ -{ CPUFUNC(op_e4d8_0), 58584 }, /* ROXRW */ -{ CPUFUNC(op_e4e0_0), 58592 }, /* ROXRW */ -{ CPUFUNC(op_e4e8_0), 58600 }, /* ROXRW */ -{ CPUFUNC(op_e4f0_0), 58608 }, /* ROXRW */ -{ CPUFUNC(op_e4f8_0), 58616 }, /* ROXRW */ -{ CPUFUNC(op_e4f9_0), 58617 }, /* ROXRW */ -{ CPUFUNC(op_e5d0_0), 58832 }, /* ROXLW */ -{ CPUFUNC(op_e5d8_0), 58840 }, /* ROXLW */ -{ CPUFUNC(op_e5e0_0), 58848 }, /* ROXLW */ -{ CPUFUNC(op_e5e8_0), 58856 }, /* ROXLW */ -{ CPUFUNC(op_e5f0_0), 58864 }, /* ROXLW */ -{ CPUFUNC(op_e5f8_0), 58872 }, /* ROXLW */ -{ CPUFUNC(op_e5f9_0), 58873 }, /* ROXLW */ -{ CPUFUNC(op_e6d0_0), 59088 }, /* RORW */ -{ CPUFUNC(op_e6d8_0), 59096 }, /* RORW */ -{ CPUFUNC(op_e6e0_0), 59104 }, /* RORW */ -{ CPUFUNC(op_e6e8_0), 59112 }, /* RORW */ -{ CPUFUNC(op_e6f0_0), 59120 }, /* RORW */ -{ CPUFUNC(op_e6f8_0), 59128 }, /* RORW */ -{ CPUFUNC(op_e6f9_0), 59129 }, /* RORW */ -{ CPUFUNC(op_e7d0_0), 59344 }, /* ROLW */ -{ CPUFUNC(op_e7d8_0), 59352 }, /* ROLW */ -{ CPUFUNC(op_e7e0_0), 59360 }, /* ROLW */ -{ CPUFUNC(op_e7e8_0), 59368 }, /* ROLW */ -{ CPUFUNC(op_e7f0_0), 59376 }, /* ROLW */ -{ CPUFUNC(op_e7f8_0), 59384 }, /* ROLW */ -{ CPUFUNC(op_e7f9_0), 59385 }, /* ROLW */ -{ CPUFUNC(op_e8c0_0), 59584 }, /* BFTST */ -{ CPUFUNC(op_e8d0_0), 59600 }, /* BFTST */ -{ CPUFUNC(op_e8e8_0), 59624 }, /* BFTST */ -{ CPUFUNC(op_e8f0_0), 59632 }, /* BFTST */ -{ CPUFUNC(op_e8f8_0), 59640 }, /* BFTST */ -{ CPUFUNC(op_e8f9_0), 59641 }, /* BFTST */ -{ CPUFUNC(op_e8fa_0), 59642 }, /* BFTST */ -{ CPUFUNC(op_e8fb_0), 59643 }, /* BFTST */ -{ CPUFUNC(op_e9c0_0), 59840 }, /* BFEXTU */ -{ CPUFUNC(op_e9d0_0), 59856 }, /* BFEXTU */ -{ CPUFUNC(op_e9e8_0), 59880 }, /* BFEXTU */ -{ CPUFUNC(op_e9f0_0), 59888 }, /* BFEXTU */ -{ CPUFUNC(op_e9f8_0), 59896 }, /* BFEXTU */ -{ CPUFUNC(op_e9f9_0), 59897 }, /* BFEXTU */ -{ CPUFUNC(op_e9fa_0), 59898 }, /* BFEXTU */ -{ CPUFUNC(op_e9fb_0), 59899 }, /* BFEXTU */ -{ CPUFUNC(op_eac0_0), 60096 }, /* BFCHG */ -{ CPUFUNC(op_ead0_0), 60112 }, /* BFCHG */ -{ CPUFUNC(op_eae8_0), 60136 }, /* BFCHG */ -{ CPUFUNC(op_eaf0_0), 60144 }, /* BFCHG */ -{ CPUFUNC(op_eaf8_0), 60152 }, /* BFCHG */ -{ CPUFUNC(op_eaf9_0), 60153 }, /* BFCHG */ -{ CPUFUNC(op_ebc0_0), 60352 }, /* BFEXTS */ -{ CPUFUNC(op_ebd0_0), 60368 }, /* BFEXTS */ -{ CPUFUNC(op_ebe8_0), 60392 }, /* BFEXTS */ -{ CPUFUNC(op_ebf0_0), 60400 }, /* BFEXTS */ -{ CPUFUNC(op_ebf8_0), 60408 }, /* BFEXTS */ -{ CPUFUNC(op_ebf9_0), 60409 }, /* BFEXTS */ -{ CPUFUNC(op_ebfa_0), 60410 }, /* BFEXTS */ -{ CPUFUNC(op_ebfb_0), 60411 }, /* BFEXTS */ -{ CPUFUNC(op_ecc0_0), 60608 }, /* BFCLR */ -{ CPUFUNC(op_ecd0_0), 60624 }, /* BFCLR */ -{ CPUFUNC(op_ece8_0), 60648 }, /* BFCLR */ -{ CPUFUNC(op_ecf0_0), 60656 }, /* BFCLR */ -{ CPUFUNC(op_ecf8_0), 60664 }, /* BFCLR */ -{ CPUFUNC(op_ecf9_0), 60665 }, /* BFCLR */ -{ CPUFUNC(op_edc0_0), 60864 }, /* BFFFO */ -{ CPUFUNC(op_edd0_0), 60880 }, /* BFFFO */ -{ CPUFUNC(op_ede8_0), 60904 }, /* BFFFO */ -{ CPUFUNC(op_edf0_0), 60912 }, /* BFFFO */ -{ CPUFUNC(op_edf8_0), 60920 }, /* BFFFO */ -{ CPUFUNC(op_edf9_0), 60921 }, /* BFFFO */ -{ CPUFUNC(op_edfa_0), 60922 }, /* BFFFO */ -{ CPUFUNC(op_edfb_0), 60923 }, /* BFFFO */ -{ CPUFUNC(op_eec0_0), 61120 }, /* BFSET */ -{ CPUFUNC(op_eed0_0), 61136 }, /* BFSET */ -{ CPUFUNC(op_eee8_0), 61160 }, /* BFSET */ -{ CPUFUNC(op_eef0_0), 61168 }, /* BFSET */ -{ CPUFUNC(op_eef8_0), 61176 }, /* BFSET */ -{ CPUFUNC(op_eef9_0), 61177 }, /* BFSET */ -{ CPUFUNC(op_efc0_0), 61376 }, /* BFINS */ -{ CPUFUNC(op_efd0_0), 61392 }, /* BFINS */ -{ CPUFUNC(op_efe8_0), 61416 }, /* BFINS */ -{ CPUFUNC(op_eff0_0), 61424 }, /* BFINS */ -{ CPUFUNC(op_eff8_0), 61432 }, /* BFINS */ -{ CPUFUNC(op_eff9_0), 61433 }, /* BFINS */ -{ CPUFUNC(op_f000_0), 61440 }, /* MMUOP030 */ -{ CPUFUNC(op_f008_0), 61448 }, /* MMUOP030 */ -{ CPUFUNC(op_f010_0), 61456 }, /* MMUOP030 */ -{ CPUFUNC(op_f018_0), 61464 }, /* MMUOP030 */ -{ CPUFUNC(op_f020_0), 61472 }, /* MMUOP030 */ -{ CPUFUNC(op_f028_0), 61480 }, /* MMUOP030 */ -{ CPUFUNC(op_f030_0), 61488 }, /* MMUOP030 */ -{ CPUFUNC(op_f038_0), 61496 }, /* MMUOP030 */ -{ CPUFUNC(op_f039_0), 61497 }, /* MMUOP030 */ -{ CPUFUNC(op_f200_0), 61952 }, /* FPP */ -{ CPUFUNC(op_f208_0), 61960 }, /* FPP */ -{ CPUFUNC(op_f210_0), 61968 }, /* FPP */ -{ CPUFUNC(op_f218_0), 61976 }, /* FPP */ -{ CPUFUNC(op_f220_0), 61984 }, /* FPP */ -{ CPUFUNC(op_f228_0), 61992 }, /* FPP */ -{ CPUFUNC(op_f230_0), 62000 }, /* FPP */ -{ CPUFUNC(op_f238_0), 62008 }, /* FPP */ -{ CPUFUNC(op_f239_0), 62009 }, /* FPP */ -{ CPUFUNC(op_f23a_0), 62010 }, /* FPP */ -{ CPUFUNC(op_f23b_0), 62011 }, /* FPP */ -{ CPUFUNC(op_f23c_0), 62012 }, /* FPP */ -{ CPUFUNC(op_f240_0), 62016 }, /* FScc */ -{ CPUFUNC(op_f248_0), 62024 }, /* FDBcc */ -{ CPUFUNC(op_f250_0), 62032 }, /* FScc */ -{ CPUFUNC(op_f258_0), 62040 }, /* FScc */ -{ CPUFUNC(op_f260_0), 62048 }, /* FScc */ -{ CPUFUNC(op_f268_0), 62056 }, /* FScc */ -{ CPUFUNC(op_f270_0), 62064 }, /* FScc */ -{ CPUFUNC(op_f278_0), 62072 }, /* FScc */ -{ CPUFUNC(op_f279_0), 62073 }, /* FScc */ -{ CPUFUNC(op_f27a_0), 62074 }, /* FTRAPcc */ -{ CPUFUNC(op_f27b_0), 62075 }, /* FTRAPcc */ -{ CPUFUNC(op_f27c_0), 62076 }, /* FTRAPcc */ -{ CPUFUNC(op_f280_0), 62080 }, /* FBcc */ -{ CPUFUNC(op_f2c0_0), 62144 }, /* FBcc */ -{ CPUFUNC(op_f310_0), 62224 }, /* FSAVE */ -{ CPUFUNC(op_f320_0), 62240 }, /* FSAVE */ -{ CPUFUNC(op_f328_0), 62248 }, /* FSAVE */ -{ CPUFUNC(op_f330_0), 62256 }, /* FSAVE */ -{ CPUFUNC(op_f338_0), 62264 }, /* FSAVE */ -{ CPUFUNC(op_f339_0), 62265 }, /* FSAVE */ -{ CPUFUNC(op_f350_0), 62288 }, /* FRESTORE */ -{ CPUFUNC(op_f358_0), 62296 }, /* FRESTORE */ -{ CPUFUNC(op_f368_0), 62312 }, /* FRESTORE */ -{ CPUFUNC(op_f370_0), 62320 }, /* FRESTORE */ -{ CPUFUNC(op_f378_0), 62328 }, /* FRESTORE */ -{ CPUFUNC(op_f379_0), 62329 }, /* FRESTORE */ -{ CPUFUNC(op_f37a_0), 62330 }, /* FRESTORE */ -{ CPUFUNC(op_f37b_0), 62331 }, /* FRESTORE */ -{ CPUFUNC(op_f408_0), 62472 }, /* CINVL */ -{ CPUFUNC(op_f410_0), 62480 }, /* CINVP */ -{ CPUFUNC(op_f418_0), 62488 }, /* CINVA */ -{ CPUFUNC(op_f419_0), 62489 }, /* CINVA */ -{ CPUFUNC(op_f41a_0), 62490 }, /* CINVA */ -{ CPUFUNC(op_f41b_0), 62491 }, /* CINVA */ -{ CPUFUNC(op_f41c_0), 62492 }, /* CINVA */ -{ CPUFUNC(op_f41d_0), 62493 }, /* CINVA */ -{ CPUFUNC(op_f41e_0), 62494 }, /* CINVA */ -{ CPUFUNC(op_f41f_0), 62495 }, /* CINVA */ -{ CPUFUNC(op_f428_0), 62504 }, /* CPUSHL */ -{ CPUFUNC(op_f430_0), 62512 }, /* CPUSHP */ -{ CPUFUNC(op_f438_0), 62520 }, /* CPUSHA */ -{ CPUFUNC(op_f439_0), 62521 }, /* CPUSHA */ -{ CPUFUNC(op_f43a_0), 62522 }, /* CPUSHA */ -{ CPUFUNC(op_f43b_0), 62523 }, /* CPUSHA */ -{ CPUFUNC(op_f43c_0), 62524 }, /* CPUSHA */ -{ CPUFUNC(op_f43d_0), 62525 }, /* CPUSHA */ -{ CPUFUNC(op_f43e_0), 62526 }, /* CPUSHA */ -{ CPUFUNC(op_f43f_0), 62527 }, /* CPUSHA */ -{ CPUFUNC(op_f500_0), 62720 }, /* PFLUSHN */ -{ CPUFUNC(op_f508_0), 62728 }, /* PFLUSH */ -{ CPUFUNC(op_f510_0), 62736 }, /* PFLUSHAN */ -{ CPUFUNC(op_f518_0), 62744 }, /* PFLUSHA */ -{ CPUFUNC(op_f548_0), 62792 }, /* PTESTR */ -{ CPUFUNC(op_f568_0), 62824 }, /* PTESTW */ -{ CPUFUNC(op_f588_0), 62856 }, /* PLPAR */ -{ CPUFUNC(op_f5c8_0), 62920 }, /* PLPAW */ -{ CPUFUNC(op_f600_0), 62976 }, /* MOVE16 */ -{ CPUFUNC(op_f608_0), 62984 }, /* MOVE16 */ -{ CPUFUNC(op_f610_0), 62992 }, /* MOVE16 */ -{ CPUFUNC(op_f618_0), 63000 }, /* MOVE16 */ -{ CPUFUNC(op_f620_0), 63008 }, /* MOVE16 */ -{ CPUFUNC(op_f800_0), 63488 }, /* LPSTOP */ -{ 0, 0 }}; +const struct cputbl CPUFUNC(op_smalltbl_0)[] = +{ + { CPUFUNC(op_0000_0), 0 }, /* OR */ + { CPUFUNC(op_0010_0), 16 }, /* OR */ + { CPUFUNC(op_0018_0), 24 }, /* OR */ + { CPUFUNC(op_0020_0), 32 }, /* OR */ + { CPUFUNC(op_0028_0), 40 }, /* OR */ + { CPUFUNC(op_0030_0), 48 }, /* OR */ + { CPUFUNC(op_0038_0), 56 }, /* OR */ + { CPUFUNC(op_0039_0), 57 }, /* OR */ + { CPUFUNC(op_003c_0), 60 }, /* ORSR */ + { CPUFUNC(op_0040_0), 64 }, /* OR */ + { CPUFUNC(op_0050_0), 80 }, /* OR */ + { CPUFUNC(op_0058_0), 88 }, /* OR */ + { CPUFUNC(op_0060_0), 96 }, /* OR */ + { CPUFUNC(op_0068_0), 104 }, /* OR */ + { CPUFUNC(op_0070_0), 112 }, /* OR */ + { CPUFUNC(op_0078_0), 120 }, /* OR */ + { CPUFUNC(op_0079_0), 121 }, /* OR */ + { CPUFUNC(op_007c_0), 124 }, /* ORSR */ + { CPUFUNC(op_0080_0), 128 }, /* OR */ + { CPUFUNC(op_0090_0), 144 }, /* OR */ + { CPUFUNC(op_0098_0), 152 }, /* OR */ + { CPUFUNC(op_00a0_0), 160 }, /* OR */ + { CPUFUNC(op_00a8_0), 168 }, /* OR */ + { CPUFUNC(op_00b0_0), 176 }, /* OR */ + { CPUFUNC(op_00b8_0), 184 }, /* OR */ + { CPUFUNC(op_00b9_0), 185 }, /* OR */ + { CPUFUNC(op_00d0_0), 208 }, /* CHK2 */ + { CPUFUNC(op_00e8_0), 232 }, /* CHK2 */ + { CPUFUNC(op_00f0_0), 240 }, /* CHK2 */ + { CPUFUNC(op_00f8_0), 248 }, /* CHK2 */ + { CPUFUNC(op_00f9_0), 249 }, /* CHK2 */ + { CPUFUNC(op_00fa_0), 250 }, /* CHK2 */ + { CPUFUNC(op_00fb_0), 251 }, /* CHK2 */ + { CPUFUNC(op_0100_0), 256 }, /* BTST */ + { CPUFUNC(op_0108_0), 264 }, /* MVPMR */ + { CPUFUNC(op_0110_0), 272 }, /* BTST */ + { CPUFUNC(op_0118_0), 280 }, /* BTST */ + { CPUFUNC(op_0120_0), 288 }, /* BTST */ + { CPUFUNC(op_0128_0), 296 }, /* BTST */ + { CPUFUNC(op_0130_0), 304 }, /* BTST */ + { CPUFUNC(op_0138_0), 312 }, /* BTST */ + { CPUFUNC(op_0139_0), 313 }, /* BTST */ + { CPUFUNC(op_013a_0), 314 }, /* BTST */ + { CPUFUNC(op_013b_0), 315 }, /* BTST */ + { CPUFUNC(op_013c_0), 316 }, /* BTST */ + { CPUFUNC(op_0140_0), 320 }, /* BCHG */ + { CPUFUNC(op_0148_0), 328 }, /* MVPMR */ + { CPUFUNC(op_0150_0), 336 }, /* BCHG */ + { CPUFUNC(op_0158_0), 344 }, /* BCHG */ + { CPUFUNC(op_0160_0), 352 }, /* BCHG */ + { CPUFUNC(op_0168_0), 360 }, /* BCHG */ + { CPUFUNC(op_0170_0), 368 }, /* BCHG */ + { CPUFUNC(op_0178_0), 376 }, /* BCHG */ + { CPUFUNC(op_0179_0), 377 }, /* BCHG */ + { CPUFUNC(op_0180_0), 384 }, /* BCLR */ + { CPUFUNC(op_0188_0), 392 }, /* MVPRM */ + { CPUFUNC(op_0190_0), 400 }, /* BCLR */ + { CPUFUNC(op_0198_0), 408 }, /* BCLR */ + { CPUFUNC(op_01a0_0), 416 }, /* BCLR */ + { CPUFUNC(op_01a8_0), 424 }, /* BCLR */ + { CPUFUNC(op_01b0_0), 432 }, /* BCLR */ + { CPUFUNC(op_01b8_0), 440 }, /* BCLR */ + { CPUFUNC(op_01b9_0), 441 }, /* BCLR */ + { CPUFUNC(op_01c0_0), 448 }, /* BSET */ + { CPUFUNC(op_01c8_0), 456 }, /* MVPRM */ + { CPUFUNC(op_01d0_0), 464 }, /* BSET */ + { CPUFUNC(op_01d8_0), 472 }, /* BSET */ + { CPUFUNC(op_01e0_0), 480 }, /* BSET */ + { CPUFUNC(op_01e8_0), 488 }, /* BSET */ + { CPUFUNC(op_01f0_0), 496 }, /* BSET */ + { CPUFUNC(op_01f8_0), 504 }, /* BSET */ + { CPUFUNC(op_01f9_0), 505 }, /* BSET */ + { CPUFUNC(op_0200_0), 512 }, /* AND */ + { CPUFUNC(op_0210_0), 528 }, /* AND */ + { CPUFUNC(op_0218_0), 536 }, /* AND */ + { CPUFUNC(op_0220_0), 544 }, /* AND */ + { CPUFUNC(op_0228_0), 552 }, /* AND */ + { CPUFUNC(op_0230_0), 560 }, /* AND */ + { CPUFUNC(op_0238_0), 568 }, /* AND */ + { CPUFUNC(op_0239_0), 569 }, /* AND */ + { CPUFUNC(op_023c_0), 572 }, /* ANDSR */ + { CPUFUNC(op_0240_0), 576 }, /* AND */ + { CPUFUNC(op_0250_0), 592 }, /* AND */ + { CPUFUNC(op_0258_0), 600 }, /* AND */ + { CPUFUNC(op_0260_0), 608 }, /* AND */ + { CPUFUNC(op_0268_0), 616 }, /* AND */ + { CPUFUNC(op_0270_0), 624 }, /* AND */ + { CPUFUNC(op_0278_0), 632 }, /* AND */ + { CPUFUNC(op_0279_0), 633 }, /* AND */ + { CPUFUNC(op_027c_0), 636 }, /* ANDSR */ + { CPUFUNC(op_0280_0), 640 }, /* AND */ + { CPUFUNC(op_0290_0), 656 }, /* AND */ + { CPUFUNC(op_0298_0), 664 }, /* AND */ + { CPUFUNC(op_02a0_0), 672 }, /* AND */ + { CPUFUNC(op_02a8_0), 680 }, /* AND */ + { CPUFUNC(op_02b0_0), 688 }, /* AND */ + { CPUFUNC(op_02b8_0), 696 }, /* AND */ + { CPUFUNC(op_02b9_0), 697 }, /* AND */ + { CPUFUNC(op_02d0_0), 720 }, /* CHK2 */ + { CPUFUNC(op_02e8_0), 744 }, /* CHK2 */ + { CPUFUNC(op_02f0_0), 752 }, /* CHK2 */ + { CPUFUNC(op_02f8_0), 760 }, /* CHK2 */ + { CPUFUNC(op_02f9_0), 761 }, /* CHK2 */ + { CPUFUNC(op_02fa_0), 762 }, /* CHK2 */ + { CPUFUNC(op_02fb_0), 763 }, /* CHK2 */ + { CPUFUNC(op_0400_0), 1024 }, /* SUB */ + { CPUFUNC(op_0410_0), 1040 }, /* SUB */ + { CPUFUNC(op_0418_0), 1048 }, /* SUB */ + { CPUFUNC(op_0420_0), 1056 }, /* SUB */ + { CPUFUNC(op_0428_0), 1064 }, /* SUB */ + { CPUFUNC(op_0430_0), 1072 }, /* SUB */ + { CPUFUNC(op_0438_0), 1080 }, /* SUB */ + { CPUFUNC(op_0439_0), 1081 }, /* SUB */ + { CPUFUNC(op_0440_0), 1088 }, /* SUB */ + { CPUFUNC(op_0450_0), 1104 }, /* SUB */ + { CPUFUNC(op_0458_0), 1112 }, /* SUB */ + { CPUFUNC(op_0460_0), 1120 }, /* SUB */ + { CPUFUNC(op_0468_0), 1128 }, /* SUB */ + { CPUFUNC(op_0470_0), 1136 }, /* SUB */ + { CPUFUNC(op_0478_0), 1144 }, /* SUB */ + { CPUFUNC(op_0479_0), 1145 }, /* SUB */ + { CPUFUNC(op_0480_0), 1152 }, /* SUB */ + { CPUFUNC(op_0490_0), 1168 }, /* SUB */ + { CPUFUNC(op_0498_0), 1176 }, /* SUB */ + { CPUFUNC(op_04a0_0), 1184 }, /* SUB */ + { CPUFUNC(op_04a8_0), 1192 }, /* SUB */ + { CPUFUNC(op_04b0_0), 1200 }, /* SUB */ + { CPUFUNC(op_04b8_0), 1208 }, /* SUB */ + { CPUFUNC(op_04b9_0), 1209 }, /* SUB */ + { CPUFUNC(op_04d0_0), 1232 }, /* CHK2 */ + { CPUFUNC(op_04e8_0), 1256 }, /* CHK2 */ + { CPUFUNC(op_04f0_0), 1264 }, /* CHK2 */ + { CPUFUNC(op_04f8_0), 1272 }, /* CHK2 */ + { CPUFUNC(op_04f9_0), 1273 }, /* CHK2 */ + { CPUFUNC(op_04fa_0), 1274 }, /* CHK2 */ + { CPUFUNC(op_04fb_0), 1275 }, /* CHK2 */ + { CPUFUNC(op_0600_0), 1536 }, /* ADD */ + { CPUFUNC(op_0610_0), 1552 }, /* ADD */ + { CPUFUNC(op_0618_0), 1560 }, /* ADD */ + { CPUFUNC(op_0620_0), 1568 }, /* ADD */ + { CPUFUNC(op_0628_0), 1576 }, /* ADD */ + { CPUFUNC(op_0630_0), 1584 }, /* ADD */ + { CPUFUNC(op_0638_0), 1592 }, /* ADD */ + { CPUFUNC(op_0639_0), 1593 }, /* ADD */ + { CPUFUNC(op_0640_0), 1600 }, /* ADD */ + { CPUFUNC(op_0650_0), 1616 }, /* ADD */ + { CPUFUNC(op_0658_0), 1624 }, /* ADD */ + { CPUFUNC(op_0660_0), 1632 }, /* ADD */ + { CPUFUNC(op_0668_0), 1640 }, /* ADD */ + { CPUFUNC(op_0670_0), 1648 }, /* ADD */ + { CPUFUNC(op_0678_0), 1656 }, /* ADD */ + { CPUFUNC(op_0679_0), 1657 }, /* ADD */ + { CPUFUNC(op_0680_0), 1664 }, /* ADD */ + { CPUFUNC(op_0690_0), 1680 }, /* ADD */ + { CPUFUNC(op_0698_0), 1688 }, /* ADD */ + { CPUFUNC(op_06a0_0), 1696 }, /* ADD */ + { CPUFUNC(op_06a8_0), 1704 }, /* ADD */ + { CPUFUNC(op_06b0_0), 1712 }, /* ADD */ + { CPUFUNC(op_06b8_0), 1720 }, /* ADD */ + { CPUFUNC(op_06b9_0), 1721 }, /* ADD */ + { CPUFUNC(op_06c0_0), 1728 }, /* RTM */ + { CPUFUNC(op_06c8_0), 1736 }, /* RTM */ + { CPUFUNC(op_06d0_0), 1744 }, /* CALLM */ + { CPUFUNC(op_06e8_0), 1768 }, /* CALLM */ + { CPUFUNC(op_06f0_0), 1776 }, /* CALLM */ + { CPUFUNC(op_06f8_0), 1784 }, /* CALLM */ + { CPUFUNC(op_06f9_0), 1785 }, /* CALLM */ + { CPUFUNC(op_06fa_0), 1786 }, /* CALLM */ + { CPUFUNC(op_06fb_0), 1787 }, /* CALLM */ + { CPUFUNC(op_0800_0), 2048 }, /* BTST */ + { CPUFUNC(op_0810_0), 2064 }, /* BTST */ + { CPUFUNC(op_0818_0), 2072 }, /* BTST */ + { CPUFUNC(op_0820_0), 2080 }, /* BTST */ + { CPUFUNC(op_0828_0), 2088 }, /* BTST */ + { CPUFUNC(op_0830_0), 2096 }, /* BTST */ + { CPUFUNC(op_0838_0), 2104 }, /* BTST */ + { CPUFUNC(op_0839_0), 2105 }, /* BTST */ + { CPUFUNC(op_083a_0), 2106 }, /* BTST */ + { CPUFUNC(op_083b_0), 2107 }, /* BTST */ + { CPUFUNC(op_083c_0), 2108 }, /* BTST */ + { CPUFUNC(op_0840_0), 2112 }, /* BCHG */ + { CPUFUNC(op_0850_0), 2128 }, /* BCHG */ + { CPUFUNC(op_0858_0), 2136 }, /* BCHG */ + { CPUFUNC(op_0860_0), 2144 }, /* BCHG */ + { CPUFUNC(op_0868_0), 2152 }, /* BCHG */ + { CPUFUNC(op_0870_0), 2160 }, /* BCHG */ + { CPUFUNC(op_0878_0), 2168 }, /* BCHG */ + { CPUFUNC(op_0879_0), 2169 }, /* BCHG */ + { CPUFUNC(op_0880_0), 2176 }, /* BCLR */ + { CPUFUNC(op_0890_0), 2192 }, /* BCLR */ + { CPUFUNC(op_0898_0), 2200 }, /* BCLR */ + { CPUFUNC(op_08a0_0), 2208 }, /* BCLR */ + { CPUFUNC(op_08a8_0), 2216 }, /* BCLR */ + { CPUFUNC(op_08b0_0), 2224 }, /* BCLR */ + { CPUFUNC(op_08b8_0), 2232 }, /* BCLR */ + { CPUFUNC(op_08b9_0), 2233 }, /* BCLR */ + { CPUFUNC(op_08c0_0), 2240 }, /* BSET */ + { CPUFUNC(op_08d0_0), 2256 }, /* BSET */ + { CPUFUNC(op_08d8_0), 2264 }, /* BSET */ + { CPUFUNC(op_08e0_0), 2272 }, /* BSET */ + { CPUFUNC(op_08e8_0), 2280 }, /* BSET */ + { CPUFUNC(op_08f0_0), 2288 }, /* BSET */ + { CPUFUNC(op_08f8_0), 2296 }, /* BSET */ + { CPUFUNC(op_08f9_0), 2297 }, /* BSET */ + { CPUFUNC(op_0a00_0), 2560 }, /* EOR */ + { CPUFUNC(op_0a10_0), 2576 }, /* EOR */ + { CPUFUNC(op_0a18_0), 2584 }, /* EOR */ + { CPUFUNC(op_0a20_0), 2592 }, /* EOR */ + { CPUFUNC(op_0a28_0), 2600 }, /* EOR */ + { CPUFUNC(op_0a30_0), 2608 }, /* EOR */ + { CPUFUNC(op_0a38_0), 2616 }, /* EOR */ + { CPUFUNC(op_0a39_0), 2617 }, /* EOR */ + { CPUFUNC(op_0a3c_0), 2620 }, /* EORSR */ + { CPUFUNC(op_0a40_0), 2624 }, /* EOR */ + { CPUFUNC(op_0a50_0), 2640 }, /* EOR */ + { CPUFUNC(op_0a58_0), 2648 }, /* EOR */ + { CPUFUNC(op_0a60_0), 2656 }, /* EOR */ + { CPUFUNC(op_0a68_0), 2664 }, /* EOR */ + { CPUFUNC(op_0a70_0), 2672 }, /* EOR */ + { CPUFUNC(op_0a78_0), 2680 }, /* EOR */ + { CPUFUNC(op_0a79_0), 2681 }, /* EOR */ + { CPUFUNC(op_0a7c_0), 2684 }, /* EORSR */ + { CPUFUNC(op_0a80_0), 2688 }, /* EOR */ + { CPUFUNC(op_0a90_0), 2704 }, /* EOR */ + { CPUFUNC(op_0a98_0), 2712 }, /* EOR */ + { CPUFUNC(op_0aa0_0), 2720 }, /* EOR */ + { CPUFUNC(op_0aa8_0), 2728 }, /* EOR */ + { CPUFUNC(op_0ab0_0), 2736 }, /* EOR */ + { CPUFUNC(op_0ab8_0), 2744 }, /* EOR */ + { CPUFUNC(op_0ab9_0), 2745 }, /* EOR */ + { CPUFUNC(op_0ad0_0), 2768 }, /* CAS */ + { CPUFUNC(op_0ad8_0), 2776 }, /* CAS */ + { CPUFUNC(op_0ae0_0), 2784 }, /* CAS */ + { CPUFUNC(op_0ae8_0), 2792 }, /* CAS */ + { CPUFUNC(op_0af0_0), 2800 }, /* CAS */ + { CPUFUNC(op_0af8_0), 2808 }, /* CAS */ + { CPUFUNC(op_0af9_0), 2809 }, /* CAS */ + { CPUFUNC(op_0c00_0), 3072 }, /* CMP */ + { CPUFUNC(op_0c10_0), 3088 }, /* CMP */ + { CPUFUNC(op_0c18_0), 3096 }, /* CMP */ + { CPUFUNC(op_0c20_0), 3104 }, /* CMP */ + { CPUFUNC(op_0c28_0), 3112 }, /* CMP */ + { CPUFUNC(op_0c30_0), 3120 }, /* CMP */ + { CPUFUNC(op_0c38_0), 3128 }, /* CMP */ + { CPUFUNC(op_0c39_0), 3129 }, /* CMP */ + { CPUFUNC(op_0c3a_0), 3130 }, /* CMP */ + { CPUFUNC(op_0c3b_0), 3131 }, /* CMP */ + { CPUFUNC(op_0c40_0), 3136 }, /* CMP */ + { CPUFUNC(op_0c50_0), 3152 }, /* CMP */ + { CPUFUNC(op_0c58_0), 3160 }, /* CMP */ + { CPUFUNC(op_0c60_0), 3168 }, /* CMP */ + { CPUFUNC(op_0c68_0), 3176 }, /* CMP */ + { CPUFUNC(op_0c70_0), 3184 }, /* CMP */ + { CPUFUNC(op_0c78_0), 3192 }, /* CMP */ + { CPUFUNC(op_0c79_0), 3193 }, /* CMP */ + { CPUFUNC(op_0c7a_0), 3194 }, /* CMP */ + { CPUFUNC(op_0c7b_0), 3195 }, /* CMP */ + { CPUFUNC(op_0c80_0), 3200 }, /* CMP */ + { CPUFUNC(op_0c90_0), 3216 }, /* CMP */ + { CPUFUNC(op_0c98_0), 3224 }, /* CMP */ + { CPUFUNC(op_0ca0_0), 3232 }, /* CMP */ + { CPUFUNC(op_0ca8_0), 3240 }, /* CMP */ + { CPUFUNC(op_0cb0_0), 3248 }, /* CMP */ + { CPUFUNC(op_0cb8_0), 3256 }, /* CMP */ + { CPUFUNC(op_0cb9_0), 3257 }, /* CMP */ + { CPUFUNC(op_0cba_0), 3258 }, /* CMP */ + { CPUFUNC(op_0cbb_0), 3259 }, /* CMP */ + { CPUFUNC(op_0cd0_0), 3280 }, /* CAS */ + { CPUFUNC(op_0cd8_0), 3288 }, /* CAS */ + { CPUFUNC(op_0ce0_0), 3296 }, /* CAS */ + { CPUFUNC(op_0ce8_0), 3304 }, /* CAS */ + { CPUFUNC(op_0cf0_0), 3312 }, /* CAS */ + { CPUFUNC(op_0cf8_0), 3320 }, /* CAS */ + { CPUFUNC(op_0cf9_0), 3321 }, /* CAS */ + { CPUFUNC(op_0cfc_0), 3324 }, /* CAS2 */ + { CPUFUNC(op_0e10_0), 3600 }, /* MOVES */ + { CPUFUNC(op_0e18_0), 3608 }, /* MOVES */ + { CPUFUNC(op_0e20_0), 3616 }, /* MOVES */ + { CPUFUNC(op_0e28_0), 3624 }, /* MOVES */ + { CPUFUNC(op_0e30_0), 3632 }, /* MOVES */ + { CPUFUNC(op_0e38_0), 3640 }, /* MOVES */ + { CPUFUNC(op_0e39_0), 3641 }, /* MOVES */ + { CPUFUNC(op_0e50_0), 3664 }, /* MOVES */ + { CPUFUNC(op_0e58_0), 3672 }, /* MOVES */ + { CPUFUNC(op_0e60_0), 3680 }, /* MOVES */ + { CPUFUNC(op_0e68_0), 3688 }, /* MOVES */ + { CPUFUNC(op_0e70_0), 3696 }, /* MOVES */ + { CPUFUNC(op_0e78_0), 3704 }, /* MOVES */ + { CPUFUNC(op_0e79_0), 3705 }, /* MOVES */ + { CPUFUNC(op_0e90_0), 3728 }, /* MOVES */ + { CPUFUNC(op_0e98_0), 3736 }, /* MOVES */ + { CPUFUNC(op_0ea0_0), 3744 }, /* MOVES */ + { CPUFUNC(op_0ea8_0), 3752 }, /* MOVES */ + { CPUFUNC(op_0eb0_0), 3760 }, /* MOVES */ + { CPUFUNC(op_0eb8_0), 3768 }, /* MOVES */ + { CPUFUNC(op_0eb9_0), 3769 }, /* MOVES */ + { CPUFUNC(op_0ed0_0), 3792 }, /* CAS */ + { CPUFUNC(op_0ed8_0), 3800 }, /* CAS */ + { CPUFUNC(op_0ee0_0), 3808 }, /* CAS */ + { CPUFUNC(op_0ee8_0), 3816 }, /* CAS */ + { CPUFUNC(op_0ef0_0), 3824 }, /* CAS */ + { CPUFUNC(op_0ef8_0), 3832 }, /* CAS */ + { CPUFUNC(op_0ef9_0), 3833 }, /* CAS */ + { CPUFUNC(op_0efc_0), 3836 }, /* CAS2 */ + { CPUFUNC(op_1000_0), 4096 }, /* MOVE */ + { CPUFUNC(op_1010_0), 4112 }, /* MOVE */ + { CPUFUNC(op_1018_0), 4120 }, /* MOVE */ + { CPUFUNC(op_1020_0), 4128 }, /* MOVE */ + { CPUFUNC(op_1028_0), 4136 }, /* MOVE */ + { CPUFUNC(op_1030_0), 4144 }, /* MOVE */ + { CPUFUNC(op_1038_0), 4152 }, /* MOVE */ + { CPUFUNC(op_1039_0), 4153 }, /* MOVE */ + { CPUFUNC(op_103a_0), 4154 }, /* MOVE */ + { CPUFUNC(op_103b_0), 4155 }, /* MOVE */ + { CPUFUNC(op_103c_0), 4156 }, /* MOVE */ + { CPUFUNC(op_1080_0), 4224 }, /* MOVE */ + { CPUFUNC(op_1090_0), 4240 }, /* MOVE */ + { CPUFUNC(op_1098_0), 4248 }, /* MOVE */ + { CPUFUNC(op_10a0_0), 4256 }, /* MOVE */ + { CPUFUNC(op_10a8_0), 4264 }, /* MOVE */ + { CPUFUNC(op_10b0_0), 4272 }, /* MOVE */ + { CPUFUNC(op_10b8_0), 4280 }, /* MOVE */ + { CPUFUNC(op_10b9_0), 4281 }, /* MOVE */ + { CPUFUNC(op_10ba_0), 4282 }, /* MOVE */ + { CPUFUNC(op_10bb_0), 4283 }, /* MOVE */ + { CPUFUNC(op_10bc_0), 4284 }, /* MOVE */ + { CPUFUNC(op_10c0_0), 4288 }, /* MOVE */ + { CPUFUNC(op_10d0_0), 4304 }, /* MOVE */ + { CPUFUNC(op_10d8_0), 4312 }, /* MOVE */ + { CPUFUNC(op_10e0_0), 4320 }, /* MOVE */ + { CPUFUNC(op_10e8_0), 4328 }, /* MOVE */ + { CPUFUNC(op_10f0_0), 4336 }, /* MOVE */ + { CPUFUNC(op_10f8_0), 4344 }, /* MOVE */ + { CPUFUNC(op_10f9_0), 4345 }, /* MOVE */ + { CPUFUNC(op_10fa_0), 4346 }, /* MOVE */ + { CPUFUNC(op_10fb_0), 4347 }, /* MOVE */ + { CPUFUNC(op_10fc_0), 4348 }, /* MOVE */ + { CPUFUNC(op_1100_0), 4352 }, /* MOVE */ + { CPUFUNC(op_1110_0), 4368 }, /* MOVE */ + { CPUFUNC(op_1118_0), 4376 }, /* MOVE */ + { CPUFUNC(op_1120_0), 4384 }, /* MOVE */ + { CPUFUNC(op_1128_0), 4392 }, /* MOVE */ + { CPUFUNC(op_1130_0), 4400 }, /* MOVE */ + { CPUFUNC(op_1138_0), 4408 }, /* MOVE */ + { CPUFUNC(op_1139_0), 4409 }, /* MOVE */ + { CPUFUNC(op_113a_0), 4410 }, /* MOVE */ + { CPUFUNC(op_113b_0), 4411 }, /* MOVE */ + { CPUFUNC(op_113c_0), 4412 }, /* MOVE */ + { CPUFUNC(op_1140_0), 4416 }, /* MOVE */ + { CPUFUNC(op_1150_0), 4432 }, /* MOVE */ + { CPUFUNC(op_1158_0), 4440 }, /* MOVE */ + { CPUFUNC(op_1160_0), 4448 }, /* MOVE */ + { CPUFUNC(op_1168_0), 4456 }, /* MOVE */ + { CPUFUNC(op_1170_0), 4464 }, /* MOVE */ + { CPUFUNC(op_1178_0), 4472 }, /* MOVE */ + { CPUFUNC(op_1179_0), 4473 }, /* MOVE */ + { CPUFUNC(op_117a_0), 4474 }, /* MOVE */ + { CPUFUNC(op_117b_0), 4475 }, /* MOVE */ + { CPUFUNC(op_117c_0), 4476 }, /* MOVE */ + { CPUFUNC(op_1180_0), 4480 }, /* MOVE */ + { CPUFUNC(op_1190_0), 4496 }, /* MOVE */ + { CPUFUNC(op_1198_0), 4504 }, /* MOVE */ + { CPUFUNC(op_11a0_0), 4512 }, /* MOVE */ + { CPUFUNC(op_11a8_0), 4520 }, /* MOVE */ + { CPUFUNC(op_11b0_0), 4528 }, /* MOVE */ + { CPUFUNC(op_11b8_0), 4536 }, /* MOVE */ + { CPUFUNC(op_11b9_0), 4537 }, /* MOVE */ + { CPUFUNC(op_11ba_0), 4538 }, /* MOVE */ + { CPUFUNC(op_11bb_0), 4539 }, /* MOVE */ + { CPUFUNC(op_11bc_0), 4540 }, /* MOVE */ + { CPUFUNC(op_11c0_0), 4544 }, /* MOVE */ + { CPUFUNC(op_11d0_0), 4560 }, /* MOVE */ + { CPUFUNC(op_11d8_0), 4568 }, /* MOVE */ + { CPUFUNC(op_11e0_0), 4576 }, /* MOVE */ + { CPUFUNC(op_11e8_0), 4584 }, /* MOVE */ + { CPUFUNC(op_11f0_0), 4592 }, /* MOVE */ + { CPUFUNC(op_11f8_0), 4600 }, /* MOVE */ + { CPUFUNC(op_11f9_0), 4601 }, /* MOVE */ + { CPUFUNC(op_11fa_0), 4602 }, /* MOVE */ + { CPUFUNC(op_11fb_0), 4603 }, /* MOVE */ + { CPUFUNC(op_11fc_0), 4604 }, /* MOVE */ + { CPUFUNC(op_13c0_0), 5056 }, /* MOVE */ + { CPUFUNC(op_13d0_0), 5072 }, /* MOVE */ + { CPUFUNC(op_13d8_0), 5080 }, /* MOVE */ + { CPUFUNC(op_13e0_0), 5088 }, /* MOVE */ + { CPUFUNC(op_13e8_0), 5096 }, /* MOVE */ + { CPUFUNC(op_13f0_0), 5104 }, /* MOVE */ + { CPUFUNC(op_13f8_0), 5112 }, /* MOVE */ + { CPUFUNC(op_13f9_0), 5113 }, /* MOVE */ + { CPUFUNC(op_13fa_0), 5114 }, /* MOVE */ + { CPUFUNC(op_13fb_0), 5115 }, /* MOVE */ + { CPUFUNC(op_13fc_0), 5116 }, /* MOVE */ + { CPUFUNC(op_2000_0), 8192 }, /* MOVE */ + { CPUFUNC(op_2008_0), 8200 }, /* MOVE */ + { CPUFUNC(op_2010_0), 8208 }, /* MOVE */ + { CPUFUNC(op_2018_0), 8216 }, /* MOVE */ + { CPUFUNC(op_2020_0), 8224 }, /* MOVE */ + { CPUFUNC(op_2028_0), 8232 }, /* MOVE */ + { CPUFUNC(op_2030_0), 8240 }, /* MOVE */ + { CPUFUNC(op_2038_0), 8248 }, /* MOVE */ + { CPUFUNC(op_2039_0), 8249 }, /* MOVE */ + { CPUFUNC(op_203a_0), 8250 }, /* MOVE */ + { CPUFUNC(op_203b_0), 8251 }, /* MOVE */ + { CPUFUNC(op_203c_0), 8252 }, /* MOVE */ + { CPUFUNC(op_2040_0), 8256 }, /* MOVEA */ + { CPUFUNC(op_2048_0), 8264 }, /* MOVEA */ + { CPUFUNC(op_2050_0), 8272 }, /* MOVEA */ + { CPUFUNC(op_2058_0), 8280 }, /* MOVEA */ + { CPUFUNC(op_2060_0), 8288 }, /* MOVEA */ + { CPUFUNC(op_2068_0), 8296 }, /* MOVEA */ + { CPUFUNC(op_2070_0), 8304 }, /* MOVEA */ + { CPUFUNC(op_2078_0), 8312 }, /* MOVEA */ + { CPUFUNC(op_2079_0), 8313 }, /* MOVEA */ + { CPUFUNC(op_207a_0), 8314 }, /* MOVEA */ + { CPUFUNC(op_207b_0), 8315 }, /* MOVEA */ + { CPUFUNC(op_207c_0), 8316 }, /* MOVEA */ + { CPUFUNC(op_2080_0), 8320 }, /* MOVE */ + { CPUFUNC(op_2088_0), 8328 }, /* MOVE */ + { CPUFUNC(op_2090_0), 8336 }, /* MOVE */ + { CPUFUNC(op_2098_0), 8344 }, /* MOVE */ + { CPUFUNC(op_20a0_0), 8352 }, /* MOVE */ + { CPUFUNC(op_20a8_0), 8360 }, /* MOVE */ + { CPUFUNC(op_20b0_0), 8368 }, /* MOVE */ + { CPUFUNC(op_20b8_0), 8376 }, /* MOVE */ + { CPUFUNC(op_20b9_0), 8377 }, /* MOVE */ + { CPUFUNC(op_20ba_0), 8378 }, /* MOVE */ + { CPUFUNC(op_20bb_0), 8379 }, /* MOVE */ + { CPUFUNC(op_20bc_0), 8380 }, /* MOVE */ + { CPUFUNC(op_20c0_0), 8384 }, /* MOVE */ + { CPUFUNC(op_20c8_0), 8392 }, /* MOVE */ + { CPUFUNC(op_20d0_0), 8400 }, /* MOVE */ + { CPUFUNC(op_20d8_0), 8408 }, /* MOVE */ + { CPUFUNC(op_20e0_0), 8416 }, /* MOVE */ + { CPUFUNC(op_20e8_0), 8424 }, /* MOVE */ + { CPUFUNC(op_20f0_0), 8432 }, /* MOVE */ + { CPUFUNC(op_20f8_0), 8440 }, /* MOVE */ + { CPUFUNC(op_20f9_0), 8441 }, /* MOVE */ + { CPUFUNC(op_20fa_0), 8442 }, /* MOVE */ + { CPUFUNC(op_20fb_0), 8443 }, /* MOVE */ + { CPUFUNC(op_20fc_0), 8444 }, /* MOVE */ + { CPUFUNC(op_2100_0), 8448 }, /* MOVE */ + { CPUFUNC(op_2108_0), 8456 }, /* MOVE */ + { CPUFUNC(op_2110_0), 8464 }, /* MOVE */ + { CPUFUNC(op_2118_0), 8472 }, /* MOVE */ + { CPUFUNC(op_2120_0), 8480 }, /* MOVE */ + { CPUFUNC(op_2128_0), 8488 }, /* MOVE */ + { CPUFUNC(op_2130_0), 8496 }, /* MOVE */ + { CPUFUNC(op_2138_0), 8504 }, /* MOVE */ + { CPUFUNC(op_2139_0), 8505 }, /* MOVE */ + { CPUFUNC(op_213a_0), 8506 }, /* MOVE */ + { CPUFUNC(op_213b_0), 8507 }, /* MOVE */ + { CPUFUNC(op_213c_0), 8508 }, /* MOVE */ + { CPUFUNC(op_2140_0), 8512 }, /* MOVE */ + { CPUFUNC(op_2148_0), 8520 }, /* MOVE */ + { CPUFUNC(op_2150_0), 8528 }, /* MOVE */ + { CPUFUNC(op_2158_0), 8536 }, /* MOVE */ + { CPUFUNC(op_2160_0), 8544 }, /* MOVE */ + { CPUFUNC(op_2168_0), 8552 }, /* MOVE */ + { CPUFUNC(op_2170_0), 8560 }, /* MOVE */ + { CPUFUNC(op_2178_0), 8568 }, /* MOVE */ + { CPUFUNC(op_2179_0), 8569 }, /* MOVE */ + { CPUFUNC(op_217a_0), 8570 }, /* MOVE */ + { CPUFUNC(op_217b_0), 8571 }, /* MOVE */ + { CPUFUNC(op_217c_0), 8572 }, /* MOVE */ + { CPUFUNC(op_2180_0), 8576 }, /* MOVE */ + { CPUFUNC(op_2188_0), 8584 }, /* MOVE */ + { CPUFUNC(op_2190_0), 8592 }, /* MOVE */ + { CPUFUNC(op_2198_0), 8600 }, /* MOVE */ + { CPUFUNC(op_21a0_0), 8608 }, /* MOVE */ + { CPUFUNC(op_21a8_0), 8616 }, /* MOVE */ + { CPUFUNC(op_21b0_0), 8624 }, /* MOVE */ + { CPUFUNC(op_21b8_0), 8632 }, /* MOVE */ + { CPUFUNC(op_21b9_0), 8633 }, /* MOVE */ + { CPUFUNC(op_21ba_0), 8634 }, /* MOVE */ + { CPUFUNC(op_21bb_0), 8635 }, /* MOVE */ + { CPUFUNC(op_21bc_0), 8636 }, /* MOVE */ + { CPUFUNC(op_21c0_0), 8640 }, /* MOVE */ + { CPUFUNC(op_21c8_0), 8648 }, /* MOVE */ + { CPUFUNC(op_21d0_0), 8656 }, /* MOVE */ + { CPUFUNC(op_21d8_0), 8664 }, /* MOVE */ + { CPUFUNC(op_21e0_0), 8672 }, /* MOVE */ + { CPUFUNC(op_21e8_0), 8680 }, /* MOVE */ + { CPUFUNC(op_21f0_0), 8688 }, /* MOVE */ + { CPUFUNC(op_21f8_0), 8696 }, /* MOVE */ + { CPUFUNC(op_21f9_0), 8697 }, /* MOVE */ + { CPUFUNC(op_21fa_0), 8698 }, /* MOVE */ + { CPUFUNC(op_21fb_0), 8699 }, /* MOVE */ + { CPUFUNC(op_21fc_0), 8700 }, /* MOVE */ + { CPUFUNC(op_23c0_0), 9152 }, /* MOVE */ + { CPUFUNC(op_23c8_0), 9160 }, /* MOVE */ + { CPUFUNC(op_23d0_0), 9168 }, /* MOVE */ + { CPUFUNC(op_23d8_0), 9176 }, /* MOVE */ + { CPUFUNC(op_23e0_0), 9184 }, /* MOVE */ + { CPUFUNC(op_23e8_0), 9192 }, /* MOVE */ + { CPUFUNC(op_23f0_0), 9200 }, /* MOVE */ + { CPUFUNC(op_23f8_0), 9208 }, /* MOVE */ + { CPUFUNC(op_23f9_0), 9209 }, /* MOVE */ + { CPUFUNC(op_23fa_0), 9210 }, /* MOVE */ + { CPUFUNC(op_23fb_0), 9211 }, /* MOVE */ + { CPUFUNC(op_23fc_0), 9212 }, /* MOVE */ + { CPUFUNC(op_3000_0), 12288 }, /* MOVE */ + { CPUFUNC(op_3008_0), 12296 }, /* MOVE */ + { CPUFUNC(op_3010_0), 12304 }, /* MOVE */ + { CPUFUNC(op_3018_0), 12312 }, /* MOVE */ + { CPUFUNC(op_3020_0), 12320 }, /* MOVE */ + { CPUFUNC(op_3028_0), 12328 }, /* MOVE */ + { CPUFUNC(op_3030_0), 12336 }, /* MOVE */ + { CPUFUNC(op_3038_0), 12344 }, /* MOVE */ + { CPUFUNC(op_3039_0), 12345 }, /* MOVE */ + { CPUFUNC(op_303a_0), 12346 }, /* MOVE */ + { CPUFUNC(op_303b_0), 12347 }, /* MOVE */ + { CPUFUNC(op_303c_0), 12348 }, /* MOVE */ + { CPUFUNC(op_3040_0), 12352 }, /* MOVEA */ + { CPUFUNC(op_3048_0), 12360 }, /* MOVEA */ + { CPUFUNC(op_3050_0), 12368 }, /* MOVEA */ + { CPUFUNC(op_3058_0), 12376 }, /* MOVEA */ + { CPUFUNC(op_3060_0), 12384 }, /* MOVEA */ + { CPUFUNC(op_3068_0), 12392 }, /* MOVEA */ + { CPUFUNC(op_3070_0), 12400 }, /* MOVEA */ + { CPUFUNC(op_3078_0), 12408 }, /* MOVEA */ + { CPUFUNC(op_3079_0), 12409 }, /* MOVEA */ + { CPUFUNC(op_307a_0), 12410 }, /* MOVEA */ + { CPUFUNC(op_307b_0), 12411 }, /* MOVEA */ + { CPUFUNC(op_307c_0), 12412 }, /* MOVEA */ + { CPUFUNC(op_3080_0), 12416 }, /* MOVE */ + { CPUFUNC(op_3088_0), 12424 }, /* MOVE */ + { CPUFUNC(op_3090_0), 12432 }, /* MOVE */ + { CPUFUNC(op_3098_0), 12440 }, /* MOVE */ + { CPUFUNC(op_30a0_0), 12448 }, /* MOVE */ + { CPUFUNC(op_30a8_0), 12456 }, /* MOVE */ + { CPUFUNC(op_30b0_0), 12464 }, /* MOVE */ + { CPUFUNC(op_30b8_0), 12472 }, /* MOVE */ + { CPUFUNC(op_30b9_0), 12473 }, /* MOVE */ + { CPUFUNC(op_30ba_0), 12474 }, /* MOVE */ + { CPUFUNC(op_30bb_0), 12475 }, /* MOVE */ + { CPUFUNC(op_30bc_0), 12476 }, /* MOVE */ + { CPUFUNC(op_30c0_0), 12480 }, /* MOVE */ + { CPUFUNC(op_30c8_0), 12488 }, /* MOVE */ + { CPUFUNC(op_30d0_0), 12496 }, /* MOVE */ + { CPUFUNC(op_30d8_0), 12504 }, /* MOVE */ + { CPUFUNC(op_30e0_0), 12512 }, /* MOVE */ + { CPUFUNC(op_30e8_0), 12520 }, /* MOVE */ + { CPUFUNC(op_30f0_0), 12528 }, /* MOVE */ + { CPUFUNC(op_30f8_0), 12536 }, /* MOVE */ + { CPUFUNC(op_30f9_0), 12537 }, /* MOVE */ + { CPUFUNC(op_30fa_0), 12538 }, /* MOVE */ + { CPUFUNC(op_30fb_0), 12539 }, /* MOVE */ + { CPUFUNC(op_30fc_0), 12540 }, /* MOVE */ + { CPUFUNC(op_3100_0), 12544 }, /* MOVE */ + { CPUFUNC(op_3108_0), 12552 }, /* MOVE */ + { CPUFUNC(op_3110_0), 12560 }, /* MOVE */ + { CPUFUNC(op_3118_0), 12568 }, /* MOVE */ + { CPUFUNC(op_3120_0), 12576 }, /* MOVE */ + { CPUFUNC(op_3128_0), 12584 }, /* MOVE */ + { CPUFUNC(op_3130_0), 12592 }, /* MOVE */ + { CPUFUNC(op_3138_0), 12600 }, /* MOVE */ + { CPUFUNC(op_3139_0), 12601 }, /* MOVE */ + { CPUFUNC(op_313a_0), 12602 }, /* MOVE */ + { CPUFUNC(op_313b_0), 12603 }, /* MOVE */ + { CPUFUNC(op_313c_0), 12604 }, /* MOVE */ + { CPUFUNC(op_3140_0), 12608 }, /* MOVE */ + { CPUFUNC(op_3148_0), 12616 }, /* MOVE */ + { CPUFUNC(op_3150_0), 12624 }, /* MOVE */ + { CPUFUNC(op_3158_0), 12632 }, /* MOVE */ + { CPUFUNC(op_3160_0), 12640 }, /* MOVE */ + { CPUFUNC(op_3168_0), 12648 }, /* MOVE */ + { CPUFUNC(op_3170_0), 12656 }, /* MOVE */ + { CPUFUNC(op_3178_0), 12664 }, /* MOVE */ + { CPUFUNC(op_3179_0), 12665 }, /* MOVE */ + { CPUFUNC(op_317a_0), 12666 }, /* MOVE */ + { CPUFUNC(op_317b_0), 12667 }, /* MOVE */ + { CPUFUNC(op_317c_0), 12668 }, /* MOVE */ + { CPUFUNC(op_3180_0), 12672 }, /* MOVE */ + { CPUFUNC(op_3188_0), 12680 }, /* MOVE */ + { CPUFUNC(op_3190_0), 12688 }, /* MOVE */ + { CPUFUNC(op_3198_0), 12696 }, /* MOVE */ + { CPUFUNC(op_31a0_0), 12704 }, /* MOVE */ + { CPUFUNC(op_31a8_0), 12712 }, /* MOVE */ + { CPUFUNC(op_31b0_0), 12720 }, /* MOVE */ + { CPUFUNC(op_31b8_0), 12728 }, /* MOVE */ + { CPUFUNC(op_31b9_0), 12729 }, /* MOVE */ + { CPUFUNC(op_31ba_0), 12730 }, /* MOVE */ + { CPUFUNC(op_31bb_0), 12731 }, /* MOVE */ + { CPUFUNC(op_31bc_0), 12732 }, /* MOVE */ + { CPUFUNC(op_31c0_0), 12736 }, /* MOVE */ + { CPUFUNC(op_31c8_0), 12744 }, /* MOVE */ + { CPUFUNC(op_31d0_0), 12752 }, /* MOVE */ + { CPUFUNC(op_31d8_0), 12760 }, /* MOVE */ + { CPUFUNC(op_31e0_0), 12768 }, /* MOVE */ + { CPUFUNC(op_31e8_0), 12776 }, /* MOVE */ + { CPUFUNC(op_31f0_0), 12784 }, /* MOVE */ + { CPUFUNC(op_31f8_0), 12792 }, /* MOVE */ + { CPUFUNC(op_31f9_0), 12793 }, /* MOVE */ + { CPUFUNC(op_31fa_0), 12794 }, /* MOVE */ + { CPUFUNC(op_31fb_0), 12795 }, /* MOVE */ + { CPUFUNC(op_31fc_0), 12796 }, /* MOVE */ + { CPUFUNC(op_33c0_0), 13248 }, /* MOVE */ + { CPUFUNC(op_33c8_0), 13256 }, /* MOVE */ + { CPUFUNC(op_33d0_0), 13264 }, /* MOVE */ + { CPUFUNC(op_33d8_0), 13272 }, /* MOVE */ + { CPUFUNC(op_33e0_0), 13280 }, /* MOVE */ + { CPUFUNC(op_33e8_0), 13288 }, /* MOVE */ + { CPUFUNC(op_33f0_0), 13296 }, /* MOVE */ + { CPUFUNC(op_33f8_0), 13304 }, /* MOVE */ + { CPUFUNC(op_33f9_0), 13305 }, /* MOVE */ + { CPUFUNC(op_33fa_0), 13306 }, /* MOVE */ + { CPUFUNC(op_33fb_0), 13307 }, /* MOVE */ + { CPUFUNC(op_33fc_0), 13308 }, /* MOVE */ + { CPUFUNC(op_4000_0), 16384 }, /* NEGX */ + { CPUFUNC(op_4010_0), 16400 }, /* NEGX */ + { CPUFUNC(op_4018_0), 16408 }, /* NEGX */ + { CPUFUNC(op_4020_0), 16416 }, /* NEGX */ + { CPUFUNC(op_4028_0), 16424 }, /* NEGX */ + { CPUFUNC(op_4030_0), 16432 }, /* NEGX */ + { CPUFUNC(op_4038_0), 16440 }, /* NEGX */ + { CPUFUNC(op_4039_0), 16441 }, /* NEGX */ + { CPUFUNC(op_4040_0), 16448 }, /* NEGX */ + { CPUFUNC(op_4050_0), 16464 }, /* NEGX */ + { CPUFUNC(op_4058_0), 16472 }, /* NEGX */ + { CPUFUNC(op_4060_0), 16480 }, /* NEGX */ + { CPUFUNC(op_4068_0), 16488 }, /* NEGX */ + { CPUFUNC(op_4070_0), 16496 }, /* NEGX */ + { CPUFUNC(op_4078_0), 16504 }, /* NEGX */ + { CPUFUNC(op_4079_0), 16505 }, /* NEGX */ + { CPUFUNC(op_4080_0), 16512 }, /* NEGX */ + { CPUFUNC(op_4090_0), 16528 }, /* NEGX */ + { CPUFUNC(op_4098_0), 16536 }, /* NEGX */ + { CPUFUNC(op_40a0_0), 16544 }, /* NEGX */ + { CPUFUNC(op_40a8_0), 16552 }, /* NEGX */ + { CPUFUNC(op_40b0_0), 16560 }, /* NEGX */ + { CPUFUNC(op_40b8_0), 16568 }, /* NEGX */ + { CPUFUNC(op_40b9_0), 16569 }, /* NEGX */ + { CPUFUNC(op_40c0_0), 16576 }, /* MVSR2 */ + { CPUFUNC(op_40d0_0), 16592 }, /* MVSR2 */ + { CPUFUNC(op_40d8_0), 16600 }, /* MVSR2 */ + { CPUFUNC(op_40e0_0), 16608 }, /* MVSR2 */ + { CPUFUNC(op_40e8_0), 16616 }, /* MVSR2 */ + { CPUFUNC(op_40f0_0), 16624 }, /* MVSR2 */ + { CPUFUNC(op_40f8_0), 16632 }, /* MVSR2 */ + { CPUFUNC(op_40f9_0), 16633 }, /* MVSR2 */ + { CPUFUNC(op_4100_0), 16640 }, /* CHK */ + { CPUFUNC(op_4110_0), 16656 }, /* CHK */ + { CPUFUNC(op_4118_0), 16664 }, /* CHK */ + { CPUFUNC(op_4120_0), 16672 }, /* CHK */ + { CPUFUNC(op_4128_0), 16680 }, /* CHK */ + { CPUFUNC(op_4130_0), 16688 }, /* CHK */ + { CPUFUNC(op_4138_0), 16696 }, /* CHK */ + { CPUFUNC(op_4139_0), 16697 }, /* CHK */ + { CPUFUNC(op_413a_0), 16698 }, /* CHK */ + { CPUFUNC(op_413b_0), 16699 }, /* CHK */ + { CPUFUNC(op_413c_0), 16700 }, /* CHK */ + { CPUFUNC(op_4180_0), 16768 }, /* CHK */ + { CPUFUNC(op_4190_0), 16784 }, /* CHK */ + { CPUFUNC(op_4198_0), 16792 }, /* CHK */ + { CPUFUNC(op_41a0_0), 16800 }, /* CHK */ + { CPUFUNC(op_41a8_0), 16808 }, /* CHK */ + { CPUFUNC(op_41b0_0), 16816 }, /* CHK */ + { CPUFUNC(op_41b8_0), 16824 }, /* CHK */ + { CPUFUNC(op_41b9_0), 16825 }, /* CHK */ + { CPUFUNC(op_41ba_0), 16826 }, /* CHK */ + { CPUFUNC(op_41bb_0), 16827 }, /* CHK */ + { CPUFUNC(op_41bc_0), 16828 }, /* CHK */ + { CPUFUNC(op_41d0_0), 16848 }, /* LEA */ + { CPUFUNC(op_41e8_0), 16872 }, /* LEA */ + { CPUFUNC(op_41f0_0), 16880 }, /* LEA */ + { CPUFUNC(op_41f8_0), 16888 }, /* LEA */ + { CPUFUNC(op_41f9_0), 16889 }, /* LEA */ + { CPUFUNC(op_41fa_0), 16890 }, /* LEA */ + { CPUFUNC(op_41fb_0), 16891 }, /* LEA */ + { CPUFUNC(op_4200_0), 16896 }, /* CLR */ + { CPUFUNC(op_4210_0), 16912 }, /* CLR */ + { CPUFUNC(op_4218_0), 16920 }, /* CLR */ + { CPUFUNC(op_4220_0), 16928 }, /* CLR */ + { CPUFUNC(op_4228_0), 16936 }, /* CLR */ + { CPUFUNC(op_4230_0), 16944 }, /* CLR */ + { CPUFUNC(op_4238_0), 16952 }, /* CLR */ + { CPUFUNC(op_4239_0), 16953 }, /* CLR */ + { CPUFUNC(op_4240_0), 16960 }, /* CLR */ + { CPUFUNC(op_4250_0), 16976 }, /* CLR */ + { CPUFUNC(op_4258_0), 16984 }, /* CLR */ + { CPUFUNC(op_4260_0), 16992 }, /* CLR */ + { CPUFUNC(op_4268_0), 17000 }, /* CLR */ + { CPUFUNC(op_4270_0), 17008 }, /* CLR */ + { CPUFUNC(op_4278_0), 17016 }, /* CLR */ + { CPUFUNC(op_4279_0), 17017 }, /* CLR */ + { CPUFUNC(op_4280_0), 17024 }, /* CLR */ + { CPUFUNC(op_4290_0), 17040 }, /* CLR */ + { CPUFUNC(op_4298_0), 17048 }, /* CLR */ + { CPUFUNC(op_42a0_0), 17056 }, /* CLR */ + { CPUFUNC(op_42a8_0), 17064 }, /* CLR */ + { CPUFUNC(op_42b0_0), 17072 }, /* CLR */ + { CPUFUNC(op_42b8_0), 17080 }, /* CLR */ + { CPUFUNC(op_42b9_0), 17081 }, /* CLR */ + { CPUFUNC(op_42c0_0), 17088 }, /* MVSR2 */ + { CPUFUNC(op_42d0_0), 17104 }, /* MVSR2 */ + { CPUFUNC(op_42d8_0), 17112 }, /* MVSR2 */ + { CPUFUNC(op_42e0_0), 17120 }, /* MVSR2 */ + { CPUFUNC(op_42e8_0), 17128 }, /* MVSR2 */ + { CPUFUNC(op_42f0_0), 17136 }, /* MVSR2 */ + { CPUFUNC(op_42f8_0), 17144 }, /* MVSR2 */ + { CPUFUNC(op_42f9_0), 17145 }, /* MVSR2 */ + { CPUFUNC(op_4400_0), 17408 }, /* NEG */ + { CPUFUNC(op_4410_0), 17424 }, /* NEG */ + { CPUFUNC(op_4418_0), 17432 }, /* NEG */ + { CPUFUNC(op_4420_0), 17440 }, /* NEG */ + { CPUFUNC(op_4428_0), 17448 }, /* NEG */ + { CPUFUNC(op_4430_0), 17456 }, /* NEG */ + { CPUFUNC(op_4438_0), 17464 }, /* NEG */ + { CPUFUNC(op_4439_0), 17465 }, /* NEG */ + { CPUFUNC(op_4440_0), 17472 }, /* NEG */ + { CPUFUNC(op_4450_0), 17488 }, /* NEG */ + { CPUFUNC(op_4458_0), 17496 }, /* NEG */ + { CPUFUNC(op_4460_0), 17504 }, /* NEG */ + { CPUFUNC(op_4468_0), 17512 }, /* NEG */ + { CPUFUNC(op_4470_0), 17520 }, /* NEG */ + { CPUFUNC(op_4478_0), 17528 }, /* NEG */ + { CPUFUNC(op_4479_0), 17529 }, /* NEG */ + { CPUFUNC(op_4480_0), 17536 }, /* NEG */ + { CPUFUNC(op_4490_0), 17552 }, /* NEG */ + { CPUFUNC(op_4498_0), 17560 }, /* NEG */ + { CPUFUNC(op_44a0_0), 17568 }, /* NEG */ + { CPUFUNC(op_44a8_0), 17576 }, /* NEG */ + { CPUFUNC(op_44b0_0), 17584 }, /* NEG */ + { CPUFUNC(op_44b8_0), 17592 }, /* NEG */ + { CPUFUNC(op_44b9_0), 17593 }, /* NEG */ + { CPUFUNC(op_44c0_0), 17600 }, /* MV2SR */ + { CPUFUNC(op_44d0_0), 17616 }, /* MV2SR */ + { CPUFUNC(op_44d8_0), 17624 }, /* MV2SR */ + { CPUFUNC(op_44e0_0), 17632 }, /* MV2SR */ + { CPUFUNC(op_44e8_0), 17640 }, /* MV2SR */ + { CPUFUNC(op_44f0_0), 17648 }, /* MV2SR */ + { CPUFUNC(op_44f8_0), 17656 }, /* MV2SR */ + { CPUFUNC(op_44f9_0), 17657 }, /* MV2SR */ + { CPUFUNC(op_44fa_0), 17658 }, /* MV2SR */ + { CPUFUNC(op_44fb_0), 17659 }, /* MV2SR */ + { CPUFUNC(op_44fc_0), 17660 }, /* MV2SR */ + { CPUFUNC(op_4600_0), 17920 }, /* NOT */ + { CPUFUNC(op_4610_0), 17936 }, /* NOT */ + { CPUFUNC(op_4618_0), 17944 }, /* NOT */ + { CPUFUNC(op_4620_0), 17952 }, /* NOT */ + { CPUFUNC(op_4628_0), 17960 }, /* NOT */ + { CPUFUNC(op_4630_0), 17968 }, /* NOT */ + { CPUFUNC(op_4638_0), 17976 }, /* NOT */ + { CPUFUNC(op_4639_0), 17977 }, /* NOT */ + { CPUFUNC(op_4640_0), 17984 }, /* NOT */ + { CPUFUNC(op_4650_0), 18000 }, /* NOT */ + { CPUFUNC(op_4658_0), 18008 }, /* NOT */ + { CPUFUNC(op_4660_0), 18016 }, /* NOT */ + { CPUFUNC(op_4668_0), 18024 }, /* NOT */ + { CPUFUNC(op_4670_0), 18032 }, /* NOT */ + { CPUFUNC(op_4678_0), 18040 }, /* NOT */ + { CPUFUNC(op_4679_0), 18041 }, /* NOT */ + { CPUFUNC(op_4680_0), 18048 }, /* NOT */ + { CPUFUNC(op_4690_0), 18064 }, /* NOT */ + { CPUFUNC(op_4698_0), 18072 }, /* NOT */ + { CPUFUNC(op_46a0_0), 18080 }, /* NOT */ + { CPUFUNC(op_46a8_0), 18088 }, /* NOT */ + { CPUFUNC(op_46b0_0), 18096 }, /* NOT */ + { CPUFUNC(op_46b8_0), 18104 }, /* NOT */ + { CPUFUNC(op_46b9_0), 18105 }, /* NOT */ + { CPUFUNC(op_46c0_0), 18112 }, /* MV2SR */ + { CPUFUNC(op_46d0_0), 18128 }, /* MV2SR */ + { CPUFUNC(op_46d8_0), 18136 }, /* MV2SR */ + { CPUFUNC(op_46e0_0), 18144 }, /* MV2SR */ + { CPUFUNC(op_46e8_0), 18152 }, /* MV2SR */ + { CPUFUNC(op_46f0_0), 18160 }, /* MV2SR */ + { CPUFUNC(op_46f8_0), 18168 }, /* MV2SR */ + { CPUFUNC(op_46f9_0), 18169 }, /* MV2SR */ + { CPUFUNC(op_46fa_0), 18170 }, /* MV2SR */ + { CPUFUNC(op_46fb_0), 18171 }, /* MV2SR */ + { CPUFUNC(op_46fc_0), 18172 }, /* MV2SR */ + { CPUFUNC(op_4800_0), 18432 }, /* NBCD */ + { CPUFUNC(op_4808_0), 18440 }, /* LINK */ + { CPUFUNC(op_4810_0), 18448 }, /* NBCD */ + { CPUFUNC(op_4818_0), 18456 }, /* NBCD */ + { CPUFUNC(op_4820_0), 18464 }, /* NBCD */ + { CPUFUNC(op_4828_0), 18472 }, /* NBCD */ + { CPUFUNC(op_4830_0), 18480 }, /* NBCD */ + { CPUFUNC(op_4838_0), 18488 }, /* NBCD */ + { CPUFUNC(op_4839_0), 18489 }, /* NBCD */ + { CPUFUNC(op_4840_0), 18496 }, /* SWAP */ + { CPUFUNC(op_4848_0), 18504 }, /* BKPT */ + { CPUFUNC(op_4850_0), 18512 }, /* PEA */ + { CPUFUNC(op_4868_0), 18536 }, /* PEA */ + { CPUFUNC(op_4870_0), 18544 }, /* PEA */ + { CPUFUNC(op_4878_0), 18552 }, /* PEA */ + { CPUFUNC(op_4879_0), 18553 }, /* PEA */ + { CPUFUNC(op_487a_0), 18554 }, /* PEA */ + { CPUFUNC(op_487b_0), 18555 }, /* PEA */ + { CPUFUNC(op_4880_0), 18560 }, /* EXT */ + { CPUFUNC(op_4890_0), 18576 }, /* MVMLE */ + { CPUFUNC(op_48a0_0), 18592 }, /* MVMLE */ + { CPUFUNC(op_48a8_0), 18600 }, /* MVMLE */ + { CPUFUNC(op_48b0_0), 18608 }, /* MVMLE */ + { CPUFUNC(op_48b8_0), 18616 }, /* MVMLE */ + { CPUFUNC(op_48b9_0), 18617 }, /* MVMLE */ + { CPUFUNC(op_48c0_0), 18624 }, /* EXT */ + { CPUFUNC(op_48d0_0), 18640 }, /* MVMLE */ + { CPUFUNC(op_48e0_0), 18656 }, /* MVMLE */ + { CPUFUNC(op_48e8_0), 18664 }, /* MVMLE */ + { CPUFUNC(op_48f0_0), 18672 }, /* MVMLE */ + { CPUFUNC(op_48f8_0), 18680 }, /* MVMLE */ + { CPUFUNC(op_48f9_0), 18681 }, /* MVMLE */ + { CPUFUNC(op_49c0_0), 18880 }, /* EXT */ + { CPUFUNC(op_4a00_0), 18944 }, /* TST */ + { CPUFUNC(op_4a10_0), 18960 }, /* TST */ + { CPUFUNC(op_4a18_0), 18968 }, /* TST */ + { CPUFUNC(op_4a20_0), 18976 }, /* TST */ + { CPUFUNC(op_4a28_0), 18984 }, /* TST */ + { CPUFUNC(op_4a30_0), 18992 }, /* TST */ + { CPUFUNC(op_4a38_0), 19000 }, /* TST */ + { CPUFUNC(op_4a39_0), 19001 }, /* TST */ + { CPUFUNC(op_4a3a_0), 19002 }, /* TST */ + { CPUFUNC(op_4a3b_0), 19003 }, /* TST */ + { CPUFUNC(op_4a3c_0), 19004 }, /* TST */ + { CPUFUNC(op_4a40_0), 19008 }, /* TST */ + { CPUFUNC(op_4a48_0), 19016 }, /* TST */ + { CPUFUNC(op_4a50_0), 19024 }, /* TST */ + { CPUFUNC(op_4a58_0), 19032 }, /* TST */ + { CPUFUNC(op_4a60_0), 19040 }, /* TST */ + { CPUFUNC(op_4a68_0), 19048 }, /* TST */ + { CPUFUNC(op_4a70_0), 19056 }, /* TST */ + { CPUFUNC(op_4a78_0), 19064 }, /* TST */ + { CPUFUNC(op_4a79_0), 19065 }, /* TST */ + { CPUFUNC(op_4a7a_0), 19066 }, /* TST */ + { CPUFUNC(op_4a7b_0), 19067 }, /* TST */ + { CPUFUNC(op_4a7c_0), 19068 }, /* TST */ + { CPUFUNC(op_4a80_0), 19072 }, /* TST */ + { CPUFUNC(op_4a88_0), 19080 }, /* TST */ + { CPUFUNC(op_4a90_0), 19088 }, /* TST */ + { CPUFUNC(op_4a98_0), 19096 }, /* TST */ + { CPUFUNC(op_4aa0_0), 19104 }, /* TST */ + { CPUFUNC(op_4aa8_0), 19112 }, /* TST */ + { CPUFUNC(op_4ab0_0), 19120 }, /* TST */ + { CPUFUNC(op_4ab8_0), 19128 }, /* TST */ + { CPUFUNC(op_4ab9_0), 19129 }, /* TST */ + { CPUFUNC(op_4aba_0), 19130 }, /* TST */ + { CPUFUNC(op_4abb_0), 19131 }, /* TST */ + { CPUFUNC(op_4abc_0), 19132 }, /* TST */ + { CPUFUNC(op_4ac0_0), 19136 }, /* TAS */ + { CPUFUNC(op_4ad0_0), 19152 }, /* TAS */ + { CPUFUNC(op_4ad8_0), 19160 }, /* TAS */ + { CPUFUNC(op_4ae0_0), 19168 }, /* TAS */ + { CPUFUNC(op_4ae8_0), 19176 }, /* TAS */ + { CPUFUNC(op_4af0_0), 19184 }, /* TAS */ + { CPUFUNC(op_4af8_0), 19192 }, /* TAS */ + { CPUFUNC(op_4af9_0), 19193 }, /* TAS */ + { CPUFUNC(op_4c00_0), 19456 }, /* MULL */ + { CPUFUNC(op_4c10_0), 19472 }, /* MULL */ + { CPUFUNC(op_4c18_0), 19480 }, /* MULL */ + { CPUFUNC(op_4c20_0), 19488 }, /* MULL */ + { CPUFUNC(op_4c28_0), 19496 }, /* MULL */ + { CPUFUNC(op_4c30_0), 19504 }, /* MULL */ + { CPUFUNC(op_4c38_0), 19512 }, /* MULL */ + { CPUFUNC(op_4c39_0), 19513 }, /* MULL */ + { CPUFUNC(op_4c3a_0), 19514 }, /* MULL */ + { CPUFUNC(op_4c3b_0), 19515 }, /* MULL */ + { CPUFUNC(op_4c3c_0), 19516 }, /* MULL */ + { CPUFUNC(op_4c40_0), 19520 }, /* DIVL */ + { CPUFUNC(op_4c50_0), 19536 }, /* DIVL */ + { CPUFUNC(op_4c58_0), 19544 }, /* DIVL */ + { CPUFUNC(op_4c60_0), 19552 }, /* DIVL */ + { CPUFUNC(op_4c68_0), 19560 }, /* DIVL */ + { CPUFUNC(op_4c70_0), 19568 }, /* DIVL */ + { CPUFUNC(op_4c78_0), 19576 }, /* DIVL */ + { CPUFUNC(op_4c79_0), 19577 }, /* DIVL */ + { CPUFUNC(op_4c7a_0), 19578 }, /* DIVL */ + { CPUFUNC(op_4c7b_0), 19579 }, /* DIVL */ + { CPUFUNC(op_4c7c_0), 19580 }, /* DIVL */ + { CPUFUNC(op_4c90_0), 19600 }, /* MVMEL */ + { CPUFUNC(op_4c98_0), 19608 }, /* MVMEL */ + { CPUFUNC(op_4ca8_0), 19624 }, /* MVMEL */ + { CPUFUNC(op_4cb0_0), 19632 }, /* MVMEL */ + { CPUFUNC(op_4cb8_0), 19640 }, /* MVMEL */ + { CPUFUNC(op_4cb9_0), 19641 }, /* MVMEL */ + { CPUFUNC(op_4cba_0), 19642 }, /* MVMEL */ + { CPUFUNC(op_4cbb_0), 19643 }, /* MVMEL */ + { CPUFUNC(op_4cd0_0), 19664 }, /* MVMEL */ + { CPUFUNC(op_4cd8_0), 19672 }, /* MVMEL */ + { CPUFUNC(op_4ce8_0), 19688 }, /* MVMEL */ + { CPUFUNC(op_4cf0_0), 19696 }, /* MVMEL */ + { CPUFUNC(op_4cf8_0), 19704 }, /* MVMEL */ + { CPUFUNC(op_4cf9_0), 19705 }, /* MVMEL */ + { CPUFUNC(op_4cfa_0), 19706 }, /* MVMEL */ + { CPUFUNC(op_4cfb_0), 19707 }, /* MVMEL */ + { CPUFUNC(op_4e40_0), 20032 }, /* TRAP */ + { CPUFUNC(op_4e50_0), 20048 }, /* LINK */ + { CPUFUNC(op_4e58_0), 20056 }, /* UNLK */ + { CPUFUNC(op_4e60_0), 20064 }, /* MVR2USP */ + { CPUFUNC(op_4e68_0), 20072 }, /* MVUSP2R */ + { CPUFUNC(op_4e70_0), 20080 }, /* RESET */ + { CPUFUNC(op_4e71_0), 20081 }, /* NOP */ + { CPUFUNC(op_4e72_0), 20082 }, /* STOP */ + { CPUFUNC(op_4e73_0), 20083 }, /* RTE */ + { CPUFUNC(op_4e74_0), 20084 }, /* RTD */ + { CPUFUNC(op_4e75_0), 20085 }, /* RTS */ + { CPUFUNC(op_4e76_0), 20086 }, /* TRAPV */ + { CPUFUNC(op_4e77_0), 20087 }, /* RTR */ + { CPUFUNC(op_4e7a_0), 20090 }, /* MOVEC2 */ + { CPUFUNC(op_4e7b_0), 20091 }, /* MOVE2C */ + { CPUFUNC(op_4e90_0), 20112 }, /* JSR */ + { CPUFUNC(op_4ea8_0), 20136 }, /* JSR */ + { CPUFUNC(op_4eb0_0), 20144 }, /* JSR */ + { CPUFUNC(op_4eb8_0), 20152 }, /* JSR */ + { CPUFUNC(op_4eb9_0), 20153 }, /* JSR */ + { CPUFUNC(op_4eba_0), 20154 }, /* JSR */ + { CPUFUNC(op_4ebb_0), 20155 }, /* JSR */ + { CPUFUNC(op_4ed0_0), 20176 }, /* JMP */ + { CPUFUNC(op_4ee8_0), 20200 }, /* JMP */ + { CPUFUNC(op_4ef0_0), 20208 }, /* JMP */ + { CPUFUNC(op_4ef8_0), 20216 }, /* JMP */ + { CPUFUNC(op_4ef9_0), 20217 }, /* JMP */ + { CPUFUNC(op_4efa_0), 20218 }, /* JMP */ + { CPUFUNC(op_4efb_0), 20219 }, /* JMP */ + { CPUFUNC(op_5000_0), 20480 }, /* ADD */ + { CPUFUNC(op_5010_0), 20496 }, /* ADD */ + { CPUFUNC(op_5018_0), 20504 }, /* ADD */ + { CPUFUNC(op_5020_0), 20512 }, /* ADD */ + { CPUFUNC(op_5028_0), 20520 }, /* ADD */ + { CPUFUNC(op_5030_0), 20528 }, /* ADD */ + { CPUFUNC(op_5038_0), 20536 }, /* ADD */ + { CPUFUNC(op_5039_0), 20537 }, /* ADD */ + { CPUFUNC(op_5040_0), 20544 }, /* ADD */ + { CPUFUNC(op_5048_0), 20552 }, /* ADDA */ + { CPUFUNC(op_5050_0), 20560 }, /* ADD */ + { CPUFUNC(op_5058_0), 20568 }, /* ADD */ + { CPUFUNC(op_5060_0), 20576 }, /* ADD */ + { CPUFUNC(op_5068_0), 20584 }, /* ADD */ + { CPUFUNC(op_5070_0), 20592 }, /* ADD */ + { CPUFUNC(op_5078_0), 20600 }, /* ADD */ + { CPUFUNC(op_5079_0), 20601 }, /* ADD */ + { CPUFUNC(op_5080_0), 20608 }, /* ADD */ + { CPUFUNC(op_5088_0), 20616 }, /* ADDA */ + { CPUFUNC(op_5090_0), 20624 }, /* ADD */ + { CPUFUNC(op_5098_0), 20632 }, /* ADD */ + { CPUFUNC(op_50a0_0), 20640 }, /* ADD */ + { CPUFUNC(op_50a8_0), 20648 }, /* ADD */ + { CPUFUNC(op_50b0_0), 20656 }, /* ADD */ + { CPUFUNC(op_50b8_0), 20664 }, /* ADD */ + { CPUFUNC(op_50b9_0), 20665 }, /* ADD */ + { CPUFUNC(op_50c0_0), 20672 }, /* Scc */ + { CPUFUNC(op_50c8_0), 20680 }, /* DBcc */ + { CPUFUNC(op_50d0_0), 20688 }, /* Scc */ + { CPUFUNC(op_50d8_0), 20696 }, /* Scc */ + { CPUFUNC(op_50e0_0), 20704 }, /* Scc */ + { CPUFUNC(op_50e8_0), 20712 }, /* Scc */ + { CPUFUNC(op_50f0_0), 20720 }, /* Scc */ + { CPUFUNC(op_50f8_0), 20728 }, /* Scc */ + { CPUFUNC(op_50f9_0), 20729 }, /* Scc */ + { CPUFUNC(op_50fa_0), 20730 }, /* TRAPcc */ + { CPUFUNC(op_50fb_0), 20731 }, /* TRAPcc */ + { CPUFUNC(op_50fc_0), 20732 }, /* TRAPcc */ + { CPUFUNC(op_5100_0), 20736 }, /* SUB */ + { CPUFUNC(op_5110_0), 20752 }, /* SUB */ + { CPUFUNC(op_5118_0), 20760 }, /* SUB */ + { CPUFUNC(op_5120_0), 20768 }, /* SUB */ + { CPUFUNC(op_5128_0), 20776 }, /* SUB */ + { CPUFUNC(op_5130_0), 20784 }, /* SUB */ + { CPUFUNC(op_5138_0), 20792 }, /* SUB */ + { CPUFUNC(op_5139_0), 20793 }, /* SUB */ + { CPUFUNC(op_5140_0), 20800 }, /* SUB */ + { CPUFUNC(op_5148_0), 20808 }, /* SUBA */ + { CPUFUNC(op_5150_0), 20816 }, /* SUB */ + { CPUFUNC(op_5158_0), 20824 }, /* SUB */ + { CPUFUNC(op_5160_0), 20832 }, /* SUB */ + { CPUFUNC(op_5168_0), 20840 }, /* SUB */ + { CPUFUNC(op_5170_0), 20848 }, /* SUB */ + { CPUFUNC(op_5178_0), 20856 }, /* SUB */ + { CPUFUNC(op_5179_0), 20857 }, /* SUB */ + { CPUFUNC(op_5180_0), 20864 }, /* SUB */ + { CPUFUNC(op_5188_0), 20872 }, /* SUBA */ + { CPUFUNC(op_5190_0), 20880 }, /* SUB */ + { CPUFUNC(op_5198_0), 20888 }, /* SUB */ + { CPUFUNC(op_51a0_0), 20896 }, /* SUB */ + { CPUFUNC(op_51a8_0), 20904 }, /* SUB */ + { CPUFUNC(op_51b0_0), 20912 }, /* SUB */ + { CPUFUNC(op_51b8_0), 20920 }, /* SUB */ + { CPUFUNC(op_51b9_0), 20921 }, /* SUB */ + { CPUFUNC(op_51c0_0), 20928 }, /* Scc */ + { CPUFUNC(op_51c8_0), 20936 }, /* DBcc */ + { CPUFUNC(op_51d0_0), 20944 }, /* Scc */ + { CPUFUNC(op_51d8_0), 20952 }, /* Scc */ + { CPUFUNC(op_51e0_0), 20960 }, /* Scc */ + { CPUFUNC(op_51e8_0), 20968 }, /* Scc */ + { CPUFUNC(op_51f0_0), 20976 }, /* Scc */ + { CPUFUNC(op_51f8_0), 20984 }, /* Scc */ + { CPUFUNC(op_51f9_0), 20985 }, /* Scc */ + { CPUFUNC(op_51fa_0), 20986 }, /* TRAPcc */ + { CPUFUNC(op_51fb_0), 20987 }, /* TRAPcc */ + { CPUFUNC(op_51fc_0), 20988 }, /* TRAPcc */ + { CPUFUNC(op_52c0_0), 21184 }, /* Scc */ + { CPUFUNC(op_52c8_0), 21192 }, /* DBcc */ + { CPUFUNC(op_52d0_0), 21200 }, /* Scc */ + { CPUFUNC(op_52d8_0), 21208 }, /* Scc */ + { CPUFUNC(op_52e0_0), 21216 }, /* Scc */ + { CPUFUNC(op_52e8_0), 21224 }, /* Scc */ + { CPUFUNC(op_52f0_0), 21232 }, /* Scc */ + { CPUFUNC(op_52f8_0), 21240 }, /* Scc */ + { CPUFUNC(op_52f9_0), 21241 }, /* Scc */ + { CPUFUNC(op_52fa_0), 21242 }, /* TRAPcc */ + { CPUFUNC(op_52fb_0), 21243 }, /* TRAPcc */ + { CPUFUNC(op_52fc_0), 21244 }, /* TRAPcc */ + { CPUFUNC(op_53c0_0), 21440 }, /* Scc */ + { CPUFUNC(op_53c8_0), 21448 }, /* DBcc */ + { CPUFUNC(op_53d0_0), 21456 }, /* Scc */ + { CPUFUNC(op_53d8_0), 21464 }, /* Scc */ + { CPUFUNC(op_53e0_0), 21472 }, /* Scc */ + { CPUFUNC(op_53e8_0), 21480 }, /* Scc */ + { CPUFUNC(op_53f0_0), 21488 }, /* Scc */ + { CPUFUNC(op_53f8_0), 21496 }, /* Scc */ + { CPUFUNC(op_53f9_0), 21497 }, /* Scc */ + { CPUFUNC(op_53fa_0), 21498 }, /* TRAPcc */ + { CPUFUNC(op_53fb_0), 21499 }, /* TRAPcc */ + { CPUFUNC(op_53fc_0), 21500 }, /* TRAPcc */ + { CPUFUNC(op_54c0_0), 21696 }, /* Scc */ + { CPUFUNC(op_54c8_0), 21704 }, /* DBcc */ + { CPUFUNC(op_54d0_0), 21712 }, /* Scc */ + { CPUFUNC(op_54d8_0), 21720 }, /* Scc */ + { CPUFUNC(op_54e0_0), 21728 }, /* Scc */ + { CPUFUNC(op_54e8_0), 21736 }, /* Scc */ + { CPUFUNC(op_54f0_0), 21744 }, /* Scc */ + { CPUFUNC(op_54f8_0), 21752 }, /* Scc */ + { CPUFUNC(op_54f9_0), 21753 }, /* Scc */ + { CPUFUNC(op_54fa_0), 21754 }, /* TRAPcc */ + { CPUFUNC(op_54fb_0), 21755 }, /* TRAPcc */ + { CPUFUNC(op_54fc_0), 21756 }, /* TRAPcc */ + { CPUFUNC(op_55c0_0), 21952 }, /* Scc */ + { CPUFUNC(op_55c8_0), 21960 }, /* DBcc */ + { CPUFUNC(op_55d0_0), 21968 }, /* Scc */ + { CPUFUNC(op_55d8_0), 21976 }, /* Scc */ + { CPUFUNC(op_55e0_0), 21984 }, /* Scc */ + { CPUFUNC(op_55e8_0), 21992 }, /* Scc */ + { CPUFUNC(op_55f0_0), 22000 }, /* Scc */ + { CPUFUNC(op_55f8_0), 22008 }, /* Scc */ + { CPUFUNC(op_55f9_0), 22009 }, /* Scc */ + { CPUFUNC(op_55fa_0), 22010 }, /* TRAPcc */ + { CPUFUNC(op_55fb_0), 22011 }, /* TRAPcc */ + { CPUFUNC(op_55fc_0), 22012 }, /* TRAPcc */ + { CPUFUNC(op_56c0_0), 22208 }, /* Scc */ + { CPUFUNC(op_56c8_0), 22216 }, /* DBcc */ + { CPUFUNC(op_56d0_0), 22224 }, /* Scc */ + { CPUFUNC(op_56d8_0), 22232 }, /* Scc */ + { CPUFUNC(op_56e0_0), 22240 }, /* Scc */ + { CPUFUNC(op_56e8_0), 22248 }, /* Scc */ + { CPUFUNC(op_56f0_0), 22256 }, /* Scc */ + { CPUFUNC(op_56f8_0), 22264 }, /* Scc */ + { CPUFUNC(op_56f9_0), 22265 }, /* Scc */ + { CPUFUNC(op_56fa_0), 22266 }, /* TRAPcc */ + { CPUFUNC(op_56fb_0), 22267 }, /* TRAPcc */ + { CPUFUNC(op_56fc_0), 22268 }, /* TRAPcc */ + { CPUFUNC(op_57c0_0), 22464 }, /* Scc */ + { CPUFUNC(op_57c8_0), 22472 }, /* DBcc */ + { CPUFUNC(op_57d0_0), 22480 }, /* Scc */ + { CPUFUNC(op_57d8_0), 22488 }, /* Scc */ + { CPUFUNC(op_57e0_0), 22496 }, /* Scc */ + { CPUFUNC(op_57e8_0), 22504 }, /* Scc */ + { CPUFUNC(op_57f0_0), 22512 }, /* Scc */ + { CPUFUNC(op_57f8_0), 22520 }, /* Scc */ + { CPUFUNC(op_57f9_0), 22521 }, /* Scc */ + { CPUFUNC(op_57fa_0), 22522 }, /* TRAPcc */ + { CPUFUNC(op_57fb_0), 22523 }, /* TRAPcc */ + { CPUFUNC(op_57fc_0), 22524 }, /* TRAPcc */ + { CPUFUNC(op_58c0_0), 22720 }, /* Scc */ + { CPUFUNC(op_58c8_0), 22728 }, /* DBcc */ + { CPUFUNC(op_58d0_0), 22736 }, /* Scc */ + { CPUFUNC(op_58d8_0), 22744 }, /* Scc */ + { CPUFUNC(op_58e0_0), 22752 }, /* Scc */ + { CPUFUNC(op_58e8_0), 22760 }, /* Scc */ + { CPUFUNC(op_58f0_0), 22768 }, /* Scc */ + { CPUFUNC(op_58f8_0), 22776 }, /* Scc */ + { CPUFUNC(op_58f9_0), 22777 }, /* Scc */ + { CPUFUNC(op_58fa_0), 22778 }, /* TRAPcc */ + { CPUFUNC(op_58fb_0), 22779 }, /* TRAPcc */ + { CPUFUNC(op_58fc_0), 22780 }, /* TRAPcc */ + { CPUFUNC(op_59c0_0), 22976 }, /* Scc */ + { CPUFUNC(op_59c8_0), 22984 }, /* DBcc */ + { CPUFUNC(op_59d0_0), 22992 }, /* Scc */ + { CPUFUNC(op_59d8_0), 23000 }, /* Scc */ + { CPUFUNC(op_59e0_0), 23008 }, /* Scc */ + { CPUFUNC(op_59e8_0), 23016 }, /* Scc */ + { CPUFUNC(op_59f0_0), 23024 }, /* Scc */ + { CPUFUNC(op_59f8_0), 23032 }, /* Scc */ + { CPUFUNC(op_59f9_0), 23033 }, /* Scc */ + { CPUFUNC(op_59fa_0), 23034 }, /* TRAPcc */ + { CPUFUNC(op_59fb_0), 23035 }, /* TRAPcc */ + { CPUFUNC(op_59fc_0), 23036 }, /* TRAPcc */ + { CPUFUNC(op_5ac0_0), 23232 }, /* Scc */ + { CPUFUNC(op_5ac8_0), 23240 }, /* DBcc */ + { CPUFUNC(op_5ad0_0), 23248 }, /* Scc */ + { CPUFUNC(op_5ad8_0), 23256 }, /* Scc */ + { CPUFUNC(op_5ae0_0), 23264 }, /* Scc */ + { CPUFUNC(op_5ae8_0), 23272 }, /* Scc */ + { CPUFUNC(op_5af0_0), 23280 }, /* Scc */ + { CPUFUNC(op_5af8_0), 23288 }, /* Scc */ + { CPUFUNC(op_5af9_0), 23289 }, /* Scc */ + { CPUFUNC(op_5afa_0), 23290 }, /* TRAPcc */ + { CPUFUNC(op_5afb_0), 23291 }, /* TRAPcc */ + { CPUFUNC(op_5afc_0), 23292 }, /* TRAPcc */ + { CPUFUNC(op_5bc0_0), 23488 }, /* Scc */ + { CPUFUNC(op_5bc8_0), 23496 }, /* DBcc */ + { CPUFUNC(op_5bd0_0), 23504 }, /* Scc */ + { CPUFUNC(op_5bd8_0), 23512 }, /* Scc */ + { CPUFUNC(op_5be0_0), 23520 }, /* Scc */ + { CPUFUNC(op_5be8_0), 23528 }, /* Scc */ + { CPUFUNC(op_5bf0_0), 23536 }, /* Scc */ + { CPUFUNC(op_5bf8_0), 23544 }, /* Scc */ + { CPUFUNC(op_5bf9_0), 23545 }, /* Scc */ + { CPUFUNC(op_5bfa_0), 23546 }, /* TRAPcc */ + { CPUFUNC(op_5bfb_0), 23547 }, /* TRAPcc */ + { CPUFUNC(op_5bfc_0), 23548 }, /* TRAPcc */ + { CPUFUNC(op_5cc0_0), 23744 }, /* Scc */ + { CPUFUNC(op_5cc8_0), 23752 }, /* DBcc */ + { CPUFUNC(op_5cd0_0), 23760 }, /* Scc */ + { CPUFUNC(op_5cd8_0), 23768 }, /* Scc */ + { CPUFUNC(op_5ce0_0), 23776 }, /* Scc */ + { CPUFUNC(op_5ce8_0), 23784 }, /* Scc */ + { CPUFUNC(op_5cf0_0), 23792 }, /* Scc */ + { CPUFUNC(op_5cf8_0), 23800 }, /* Scc */ + { CPUFUNC(op_5cf9_0), 23801 }, /* Scc */ + { CPUFUNC(op_5cfa_0), 23802 }, /* TRAPcc */ + { CPUFUNC(op_5cfb_0), 23803 }, /* TRAPcc */ + { CPUFUNC(op_5cfc_0), 23804 }, /* TRAPcc */ + { CPUFUNC(op_5dc0_0), 24000 }, /* Scc */ + { CPUFUNC(op_5dc8_0), 24008 }, /* DBcc */ + { CPUFUNC(op_5dd0_0), 24016 }, /* Scc */ + { CPUFUNC(op_5dd8_0), 24024 }, /* Scc */ + { CPUFUNC(op_5de0_0), 24032 }, /* Scc */ + { CPUFUNC(op_5de8_0), 24040 }, /* Scc */ + { CPUFUNC(op_5df0_0), 24048 }, /* Scc */ + { CPUFUNC(op_5df8_0), 24056 }, /* Scc */ + { CPUFUNC(op_5df9_0), 24057 }, /* Scc */ + { CPUFUNC(op_5dfa_0), 24058 }, /* TRAPcc */ + { CPUFUNC(op_5dfb_0), 24059 }, /* TRAPcc */ + { CPUFUNC(op_5dfc_0), 24060 }, /* TRAPcc */ + { CPUFUNC(op_5ec0_0), 24256 }, /* Scc */ + { CPUFUNC(op_5ec8_0), 24264 }, /* DBcc */ + { CPUFUNC(op_5ed0_0), 24272 }, /* Scc */ + { CPUFUNC(op_5ed8_0), 24280 }, /* Scc */ + { CPUFUNC(op_5ee0_0), 24288 }, /* Scc */ + { CPUFUNC(op_5ee8_0), 24296 }, /* Scc */ + { CPUFUNC(op_5ef0_0), 24304 }, /* Scc */ + { CPUFUNC(op_5ef8_0), 24312 }, /* Scc */ + { CPUFUNC(op_5ef9_0), 24313 }, /* Scc */ + { CPUFUNC(op_5efa_0), 24314 }, /* TRAPcc */ + { CPUFUNC(op_5efb_0), 24315 }, /* TRAPcc */ + { CPUFUNC(op_5efc_0), 24316 }, /* TRAPcc */ + { CPUFUNC(op_5fc0_0), 24512 }, /* Scc */ + { CPUFUNC(op_5fc8_0), 24520 }, /* DBcc */ + { CPUFUNC(op_5fd0_0), 24528 }, /* Scc */ + { CPUFUNC(op_5fd8_0), 24536 }, /* Scc */ + { CPUFUNC(op_5fe0_0), 24544 }, /* Scc */ + { CPUFUNC(op_5fe8_0), 24552 }, /* Scc */ + { CPUFUNC(op_5ff0_0), 24560 }, /* Scc */ + { CPUFUNC(op_5ff8_0), 24568 }, /* Scc */ + { CPUFUNC(op_5ff9_0), 24569 }, /* Scc */ + { CPUFUNC(op_5ffa_0), 24570 }, /* TRAPcc */ + { CPUFUNC(op_5ffb_0), 24571 }, /* TRAPcc */ + { CPUFUNC(op_5ffc_0), 24572 }, /* TRAPcc */ + { CPUFUNC(op_6000_0), 24576 }, /* Bcc */ + { CPUFUNC(op_6001_0), 24577 }, /* Bcc */ + { CPUFUNC(op_60ff_0), 24831 }, /* Bcc */ + { CPUFUNC(op_6100_0), 24832 }, /* BSR */ + { CPUFUNC(op_6101_0), 24833 }, /* BSR */ + { CPUFUNC(op_61ff_0), 25087 }, /* BSR */ + { CPUFUNC(op_6200_0), 25088 }, /* Bcc */ + { CPUFUNC(op_6201_0), 25089 }, /* Bcc */ + { CPUFUNC(op_62ff_0), 25343 }, /* Bcc */ + { CPUFUNC(op_6300_0), 25344 }, /* Bcc */ + { CPUFUNC(op_6301_0), 25345 }, /* Bcc */ + { CPUFUNC(op_63ff_0), 25599 }, /* Bcc */ + { CPUFUNC(op_6400_0), 25600 }, /* Bcc */ + { CPUFUNC(op_6401_0), 25601 }, /* Bcc */ + { CPUFUNC(op_64ff_0), 25855 }, /* Bcc */ + { CPUFUNC(op_6500_0), 25856 }, /* Bcc */ + { CPUFUNC(op_6501_0), 25857 }, /* Bcc */ + { CPUFUNC(op_65ff_0), 26111 }, /* Bcc */ + { CPUFUNC(op_6600_0), 26112 }, /* Bcc */ + { CPUFUNC(op_6601_0), 26113 }, /* Bcc */ + { CPUFUNC(op_66ff_0), 26367 }, /* Bcc */ + { CPUFUNC(op_6700_0), 26368 }, /* Bcc */ + { CPUFUNC(op_6701_0), 26369 }, /* Bcc */ + { CPUFUNC(op_67ff_0), 26623 }, /* Bcc */ + { CPUFUNC(op_6800_0), 26624 }, /* Bcc */ + { CPUFUNC(op_6801_0), 26625 }, /* Bcc */ + { CPUFUNC(op_68ff_0), 26879 }, /* Bcc */ + { CPUFUNC(op_6900_0), 26880 }, /* Bcc */ + { CPUFUNC(op_6901_0), 26881 }, /* Bcc */ + { CPUFUNC(op_69ff_0), 27135 }, /* Bcc */ + { CPUFUNC(op_6a00_0), 27136 }, /* Bcc */ + { CPUFUNC(op_6a01_0), 27137 }, /* Bcc */ + { CPUFUNC(op_6aff_0), 27391 }, /* Bcc */ + { CPUFUNC(op_6b00_0), 27392 }, /* Bcc */ + { CPUFUNC(op_6b01_0), 27393 }, /* Bcc */ + { CPUFUNC(op_6bff_0), 27647 }, /* Bcc */ + { CPUFUNC(op_6c00_0), 27648 }, /* Bcc */ + { CPUFUNC(op_6c01_0), 27649 }, /* Bcc */ + { CPUFUNC(op_6cff_0), 27903 }, /* Bcc */ + { CPUFUNC(op_6d00_0), 27904 }, /* Bcc */ + { CPUFUNC(op_6d01_0), 27905 }, /* Bcc */ + { CPUFUNC(op_6dff_0), 28159 }, /* Bcc */ + { CPUFUNC(op_6e00_0), 28160 }, /* Bcc */ + { CPUFUNC(op_6e01_0), 28161 }, /* Bcc */ + { CPUFUNC(op_6eff_0), 28415 }, /* Bcc */ + { CPUFUNC(op_6f00_0), 28416 }, /* Bcc */ + { CPUFUNC(op_6f01_0), 28417 }, /* Bcc */ + { CPUFUNC(op_6fff_0), 28671 }, /* Bcc */ + { CPUFUNC(op_7000_0), 28672 }, /* MOVE */ + { CPUFUNC(op_8000_0), 32768 }, /* OR */ + { CPUFUNC(op_8010_0), 32784 }, /* OR */ + { CPUFUNC(op_8018_0), 32792 }, /* OR */ + { CPUFUNC(op_8020_0), 32800 }, /* OR */ + { CPUFUNC(op_8028_0), 32808 }, /* OR */ + { CPUFUNC(op_8030_0), 32816 }, /* OR */ + { CPUFUNC(op_8038_0), 32824 }, /* OR */ + { CPUFUNC(op_8039_0), 32825 }, /* OR */ + { CPUFUNC(op_803a_0), 32826 }, /* OR */ + { CPUFUNC(op_803b_0), 32827 }, /* OR */ + { CPUFUNC(op_803c_0), 32828 }, /* OR */ + { CPUFUNC(op_8040_0), 32832 }, /* OR */ + { CPUFUNC(op_8050_0), 32848 }, /* OR */ + { CPUFUNC(op_8058_0), 32856 }, /* OR */ + { CPUFUNC(op_8060_0), 32864 }, /* OR */ + { CPUFUNC(op_8068_0), 32872 }, /* OR */ + { CPUFUNC(op_8070_0), 32880 }, /* OR */ + { CPUFUNC(op_8078_0), 32888 }, /* OR */ + { CPUFUNC(op_8079_0), 32889 }, /* OR */ + { CPUFUNC(op_807a_0), 32890 }, /* OR */ + { CPUFUNC(op_807b_0), 32891 }, /* OR */ + { CPUFUNC(op_807c_0), 32892 }, /* OR */ + { CPUFUNC(op_8080_0), 32896 }, /* OR */ + { CPUFUNC(op_8090_0), 32912 }, /* OR */ + { CPUFUNC(op_8098_0), 32920 }, /* OR */ + { CPUFUNC(op_80a0_0), 32928 }, /* OR */ + { CPUFUNC(op_80a8_0), 32936 }, /* OR */ + { CPUFUNC(op_80b0_0), 32944 }, /* OR */ + { CPUFUNC(op_80b8_0), 32952 }, /* OR */ + { CPUFUNC(op_80b9_0), 32953 }, /* OR */ + { CPUFUNC(op_80ba_0), 32954 }, /* OR */ + { CPUFUNC(op_80bb_0), 32955 }, /* OR */ + { CPUFUNC(op_80bc_0), 32956 }, /* OR */ + { CPUFUNC(op_80c0_0), 32960 }, /* DIVU */ + { CPUFUNC(op_80d0_0), 32976 }, /* DIVU */ + { CPUFUNC(op_80d8_0), 32984 }, /* DIVU */ + { CPUFUNC(op_80e0_0), 32992 }, /* DIVU */ + { CPUFUNC(op_80e8_0), 33000 }, /* DIVU */ + { CPUFUNC(op_80f0_0), 33008 }, /* DIVU */ + { CPUFUNC(op_80f8_0), 33016 }, /* DIVU */ + { CPUFUNC(op_80f9_0), 33017 }, /* DIVU */ + { CPUFUNC(op_80fa_0), 33018 }, /* DIVU */ + { CPUFUNC(op_80fb_0), 33019 }, /* DIVU */ + { CPUFUNC(op_80fc_0), 33020 }, /* DIVU */ + { CPUFUNC(op_8100_0), 33024 }, /* SBCD */ + { CPUFUNC(op_8108_0), 33032 }, /* SBCD */ + { CPUFUNC(op_8110_0), 33040 }, /* OR */ + { CPUFUNC(op_8118_0), 33048 }, /* OR */ + { CPUFUNC(op_8120_0), 33056 }, /* OR */ + { CPUFUNC(op_8128_0), 33064 }, /* OR */ + { CPUFUNC(op_8130_0), 33072 }, /* OR */ + { CPUFUNC(op_8138_0), 33080 }, /* OR */ + { CPUFUNC(op_8139_0), 33081 }, /* OR */ + { CPUFUNC(op_8140_0), 33088 }, /* PACK */ + { CPUFUNC(op_8148_0), 33096 }, /* PACK */ + { CPUFUNC(op_8150_0), 33104 }, /* OR */ + { CPUFUNC(op_8158_0), 33112 }, /* OR */ + { CPUFUNC(op_8160_0), 33120 }, /* OR */ + { CPUFUNC(op_8168_0), 33128 }, /* OR */ + { CPUFUNC(op_8170_0), 33136 }, /* OR */ + { CPUFUNC(op_8178_0), 33144 }, /* OR */ + { CPUFUNC(op_8179_0), 33145 }, /* OR */ + { CPUFUNC(op_8180_0), 33152 }, /* UNPK */ + { CPUFUNC(op_8188_0), 33160 }, /* UNPK */ + { CPUFUNC(op_8190_0), 33168 }, /* OR */ + { CPUFUNC(op_8198_0), 33176 }, /* OR */ + { CPUFUNC(op_81a0_0), 33184 }, /* OR */ + { CPUFUNC(op_81a8_0), 33192 }, /* OR */ + { CPUFUNC(op_81b0_0), 33200 }, /* OR */ + { CPUFUNC(op_81b8_0), 33208 }, /* OR */ + { CPUFUNC(op_81b9_0), 33209 }, /* OR */ + { CPUFUNC(op_81c0_0), 33216 }, /* DIVS */ + { CPUFUNC(op_81d0_0), 33232 }, /* DIVS */ + { CPUFUNC(op_81d8_0), 33240 }, /* DIVS */ + { CPUFUNC(op_81e0_0), 33248 }, /* DIVS */ + { CPUFUNC(op_81e8_0), 33256 }, /* DIVS */ + { CPUFUNC(op_81f0_0), 33264 }, /* DIVS */ + { CPUFUNC(op_81f8_0), 33272 }, /* DIVS */ + { CPUFUNC(op_81f9_0), 33273 }, /* DIVS */ + { CPUFUNC(op_81fa_0), 33274 }, /* DIVS */ + { CPUFUNC(op_81fb_0), 33275 }, /* DIVS */ + { CPUFUNC(op_81fc_0), 33276 }, /* DIVS */ + { CPUFUNC(op_9000_0), 36864 }, /* SUB */ + { CPUFUNC(op_9010_0), 36880 }, /* SUB */ + { CPUFUNC(op_9018_0), 36888 }, /* SUB */ + { CPUFUNC(op_9020_0), 36896 }, /* SUB */ + { CPUFUNC(op_9028_0), 36904 }, /* SUB */ + { CPUFUNC(op_9030_0), 36912 }, /* SUB */ + { CPUFUNC(op_9038_0), 36920 }, /* SUB */ + { CPUFUNC(op_9039_0), 36921 }, /* SUB */ + { CPUFUNC(op_903a_0), 36922 }, /* SUB */ + { CPUFUNC(op_903b_0), 36923 }, /* SUB */ + { CPUFUNC(op_903c_0), 36924 }, /* SUB */ + { CPUFUNC(op_9040_0), 36928 }, /* SUB */ + { CPUFUNC(op_9048_0), 36936 }, /* SUB */ + { CPUFUNC(op_9050_0), 36944 }, /* SUB */ + { CPUFUNC(op_9058_0), 36952 }, /* SUB */ + { CPUFUNC(op_9060_0), 36960 }, /* SUB */ + { CPUFUNC(op_9068_0), 36968 }, /* SUB */ + { CPUFUNC(op_9070_0), 36976 }, /* SUB */ + { CPUFUNC(op_9078_0), 36984 }, /* SUB */ + { CPUFUNC(op_9079_0), 36985 }, /* SUB */ + { CPUFUNC(op_907a_0), 36986 }, /* SUB */ + { CPUFUNC(op_907b_0), 36987 }, /* SUB */ + { CPUFUNC(op_907c_0), 36988 }, /* SUB */ + { CPUFUNC(op_9080_0), 36992 }, /* SUB */ + { CPUFUNC(op_9088_0), 37000 }, /* SUB */ + { CPUFUNC(op_9090_0), 37008 }, /* SUB */ + { CPUFUNC(op_9098_0), 37016 }, /* SUB */ + { CPUFUNC(op_90a0_0), 37024 }, /* SUB */ + { CPUFUNC(op_90a8_0), 37032 }, /* SUB */ + { CPUFUNC(op_90b0_0), 37040 }, /* SUB */ + { CPUFUNC(op_90b8_0), 37048 }, /* SUB */ + { CPUFUNC(op_90b9_0), 37049 }, /* SUB */ + { CPUFUNC(op_90ba_0), 37050 }, /* SUB */ + { CPUFUNC(op_90bb_0), 37051 }, /* SUB */ + { CPUFUNC(op_90bc_0), 37052 }, /* SUB */ + { CPUFUNC(op_90c0_0), 37056 }, /* SUBA */ + { CPUFUNC(op_90c8_0), 37064 }, /* SUBA */ + { CPUFUNC(op_90d0_0), 37072 }, /* SUBA */ + { CPUFUNC(op_90d8_0), 37080 }, /* SUBA */ + { CPUFUNC(op_90e0_0), 37088 }, /* SUBA */ + { CPUFUNC(op_90e8_0), 37096 }, /* SUBA */ + { CPUFUNC(op_90f0_0), 37104 }, /* SUBA */ + { CPUFUNC(op_90f8_0), 37112 }, /* SUBA */ + { CPUFUNC(op_90f9_0), 37113 }, /* SUBA */ + { CPUFUNC(op_90fa_0), 37114 }, /* SUBA */ + { CPUFUNC(op_90fb_0), 37115 }, /* SUBA */ + { CPUFUNC(op_90fc_0), 37116 }, /* SUBA */ + { CPUFUNC(op_9100_0), 37120 }, /* SUBX */ + { CPUFUNC(op_9108_0), 37128 }, /* SUBX */ + { CPUFUNC(op_9110_0), 37136 }, /* SUB */ + { CPUFUNC(op_9118_0), 37144 }, /* SUB */ + { CPUFUNC(op_9120_0), 37152 }, /* SUB */ + { CPUFUNC(op_9128_0), 37160 }, /* SUB */ + { CPUFUNC(op_9130_0), 37168 }, /* SUB */ + { CPUFUNC(op_9138_0), 37176 }, /* SUB */ + { CPUFUNC(op_9139_0), 37177 }, /* SUB */ + { CPUFUNC(op_9140_0), 37184 }, /* SUBX */ + { CPUFUNC(op_9148_0), 37192 }, /* SUBX */ + { CPUFUNC(op_9150_0), 37200 }, /* SUB */ + { CPUFUNC(op_9158_0), 37208 }, /* SUB */ + { CPUFUNC(op_9160_0), 37216 }, /* SUB */ + { CPUFUNC(op_9168_0), 37224 }, /* SUB */ + { CPUFUNC(op_9170_0), 37232 }, /* SUB */ + { CPUFUNC(op_9178_0), 37240 }, /* SUB */ + { CPUFUNC(op_9179_0), 37241 }, /* SUB */ + { CPUFUNC(op_9180_0), 37248 }, /* SUBX */ + { CPUFUNC(op_9188_0), 37256 }, /* SUBX */ + { CPUFUNC(op_9190_0), 37264 }, /* SUB */ + { CPUFUNC(op_9198_0), 37272 }, /* SUB */ + { CPUFUNC(op_91a0_0), 37280 }, /* SUB */ + { CPUFUNC(op_91a8_0), 37288 }, /* SUB */ + { CPUFUNC(op_91b0_0), 37296 }, /* SUB */ + { CPUFUNC(op_91b8_0), 37304 }, /* SUB */ + { CPUFUNC(op_91b9_0), 37305 }, /* SUB */ + { CPUFUNC(op_91c0_0), 37312 }, /* SUBA */ + { CPUFUNC(op_91c8_0), 37320 }, /* SUBA */ + { CPUFUNC(op_91d0_0), 37328 }, /* SUBA */ + { CPUFUNC(op_91d8_0), 37336 }, /* SUBA */ + { CPUFUNC(op_91e0_0), 37344 }, /* SUBA */ + { CPUFUNC(op_91e8_0), 37352 }, /* SUBA */ + { CPUFUNC(op_91f0_0), 37360 }, /* SUBA */ + { CPUFUNC(op_91f8_0), 37368 }, /* SUBA */ + { CPUFUNC(op_91f9_0), 37369 }, /* SUBA */ + { CPUFUNC(op_91fa_0), 37370 }, /* SUBA */ + { CPUFUNC(op_91fb_0), 37371 }, /* SUBA */ + { CPUFUNC(op_91fc_0), 37372 }, /* SUBA */ + { CPUFUNC(op_b000_0), 45056 }, /* CMP */ + { CPUFUNC(op_b010_0), 45072 }, /* CMP */ + { CPUFUNC(op_b018_0), 45080 }, /* CMP */ + { CPUFUNC(op_b020_0), 45088 }, /* CMP */ + { CPUFUNC(op_b028_0), 45096 }, /* CMP */ + { CPUFUNC(op_b030_0), 45104 }, /* CMP */ + { CPUFUNC(op_b038_0), 45112 }, /* CMP */ + { CPUFUNC(op_b039_0), 45113 }, /* CMP */ + { CPUFUNC(op_b03a_0), 45114 }, /* CMP */ + { CPUFUNC(op_b03b_0), 45115 }, /* CMP */ + { CPUFUNC(op_b03c_0), 45116 }, /* CMP */ + { CPUFUNC(op_b040_0), 45120 }, /* CMP */ + { CPUFUNC(op_b048_0), 45128 }, /* CMP */ + { CPUFUNC(op_b050_0), 45136 }, /* CMP */ + { CPUFUNC(op_b058_0), 45144 }, /* CMP */ + { CPUFUNC(op_b060_0), 45152 }, /* CMP */ + { CPUFUNC(op_b068_0), 45160 }, /* CMP */ + { CPUFUNC(op_b070_0), 45168 }, /* CMP */ + { CPUFUNC(op_b078_0), 45176 }, /* CMP */ + { CPUFUNC(op_b079_0), 45177 }, /* CMP */ + { CPUFUNC(op_b07a_0), 45178 }, /* CMP */ + { CPUFUNC(op_b07b_0), 45179 }, /* CMP */ + { CPUFUNC(op_b07c_0), 45180 }, /* CMP */ + { CPUFUNC(op_b080_0), 45184 }, /* CMP */ + { CPUFUNC(op_b088_0), 45192 }, /* CMP */ + { CPUFUNC(op_b090_0), 45200 }, /* CMP */ + { CPUFUNC(op_b098_0), 45208 }, /* CMP */ + { CPUFUNC(op_b0a0_0), 45216 }, /* CMP */ + { CPUFUNC(op_b0a8_0), 45224 }, /* CMP */ + { CPUFUNC(op_b0b0_0), 45232 }, /* CMP */ + { CPUFUNC(op_b0b8_0), 45240 }, /* CMP */ + { CPUFUNC(op_b0b9_0), 45241 }, /* CMP */ + { CPUFUNC(op_b0ba_0), 45242 }, /* CMP */ + { CPUFUNC(op_b0bb_0), 45243 }, /* CMP */ + { CPUFUNC(op_b0bc_0), 45244 }, /* CMP */ + { CPUFUNC(op_b0c0_0), 45248 }, /* CMPA */ + { CPUFUNC(op_b0c8_0), 45256 }, /* CMPA */ + { CPUFUNC(op_b0d0_0), 45264 }, /* CMPA */ + { CPUFUNC(op_b0d8_0), 45272 }, /* CMPA */ + { CPUFUNC(op_b0e0_0), 45280 }, /* CMPA */ + { CPUFUNC(op_b0e8_0), 45288 }, /* CMPA */ + { CPUFUNC(op_b0f0_0), 45296 }, /* CMPA */ + { CPUFUNC(op_b0f8_0), 45304 }, /* CMPA */ + { CPUFUNC(op_b0f9_0), 45305 }, /* CMPA */ + { CPUFUNC(op_b0fa_0), 45306 }, /* CMPA */ + { CPUFUNC(op_b0fb_0), 45307 }, /* CMPA */ + { CPUFUNC(op_b0fc_0), 45308 }, /* CMPA */ + { CPUFUNC(op_b100_0), 45312 }, /* EOR */ + { CPUFUNC(op_b108_0), 45320 }, /* CMPM */ + { CPUFUNC(op_b110_0), 45328 }, /* EOR */ + { CPUFUNC(op_b118_0), 45336 }, /* EOR */ + { CPUFUNC(op_b120_0), 45344 }, /* EOR */ + { CPUFUNC(op_b128_0), 45352 }, /* EOR */ + { CPUFUNC(op_b130_0), 45360 }, /* EOR */ + { CPUFUNC(op_b138_0), 45368 }, /* EOR */ + { CPUFUNC(op_b139_0), 45369 }, /* EOR */ + { CPUFUNC(op_b140_0), 45376 }, /* EOR */ + { CPUFUNC(op_b148_0), 45384 }, /* CMPM */ + { CPUFUNC(op_b150_0), 45392 }, /* EOR */ + { CPUFUNC(op_b158_0), 45400 }, /* EOR */ + { CPUFUNC(op_b160_0), 45408 }, /* EOR */ + { CPUFUNC(op_b168_0), 45416 }, /* EOR */ + { CPUFUNC(op_b170_0), 45424 }, /* EOR */ + { CPUFUNC(op_b178_0), 45432 }, /* EOR */ + { CPUFUNC(op_b179_0), 45433 }, /* EOR */ + { CPUFUNC(op_b180_0), 45440 }, /* EOR */ + { CPUFUNC(op_b188_0), 45448 }, /* CMPM */ + { CPUFUNC(op_b190_0), 45456 }, /* EOR */ + { CPUFUNC(op_b198_0), 45464 }, /* EOR */ + { CPUFUNC(op_b1a0_0), 45472 }, /* EOR */ + { CPUFUNC(op_b1a8_0), 45480 }, /* EOR */ + { CPUFUNC(op_b1b0_0), 45488 }, /* EOR */ + { CPUFUNC(op_b1b8_0), 45496 }, /* EOR */ + { CPUFUNC(op_b1b9_0), 45497 }, /* EOR */ + { CPUFUNC(op_b1c0_0), 45504 }, /* CMPA */ + { CPUFUNC(op_b1c8_0), 45512 }, /* CMPA */ + { CPUFUNC(op_b1d0_0), 45520 }, /* CMPA */ + { CPUFUNC(op_b1d8_0), 45528 }, /* CMPA */ + { CPUFUNC(op_b1e0_0), 45536 }, /* CMPA */ + { CPUFUNC(op_b1e8_0), 45544 }, /* CMPA */ + { CPUFUNC(op_b1f0_0), 45552 }, /* CMPA */ + { CPUFUNC(op_b1f8_0), 45560 }, /* CMPA */ + { CPUFUNC(op_b1f9_0), 45561 }, /* CMPA */ + { CPUFUNC(op_b1fa_0), 45562 }, /* CMPA */ + { CPUFUNC(op_b1fb_0), 45563 }, /* CMPA */ + { CPUFUNC(op_b1fc_0), 45564 }, /* CMPA */ + { CPUFUNC(op_c000_0), 49152 }, /* AND */ + { CPUFUNC(op_c010_0), 49168 }, /* AND */ + { CPUFUNC(op_c018_0), 49176 }, /* AND */ + { CPUFUNC(op_c020_0), 49184 }, /* AND */ + { CPUFUNC(op_c028_0), 49192 }, /* AND */ + { CPUFUNC(op_c030_0), 49200 }, /* AND */ + { CPUFUNC(op_c038_0), 49208 }, /* AND */ + { CPUFUNC(op_c039_0), 49209 }, /* AND */ + { CPUFUNC(op_c03a_0), 49210 }, /* AND */ + { CPUFUNC(op_c03b_0), 49211 }, /* AND */ + { CPUFUNC(op_c03c_0), 49212 }, /* AND */ + { CPUFUNC(op_c040_0), 49216 }, /* AND */ + { CPUFUNC(op_c050_0), 49232 }, /* AND */ + { CPUFUNC(op_c058_0), 49240 }, /* AND */ + { CPUFUNC(op_c060_0), 49248 }, /* AND */ + { CPUFUNC(op_c068_0), 49256 }, /* AND */ + { CPUFUNC(op_c070_0), 49264 }, /* AND */ + { CPUFUNC(op_c078_0), 49272 }, /* AND */ + { CPUFUNC(op_c079_0), 49273 }, /* AND */ + { CPUFUNC(op_c07a_0), 49274 }, /* AND */ + { CPUFUNC(op_c07b_0), 49275 }, /* AND */ + { CPUFUNC(op_c07c_0), 49276 }, /* AND */ + { CPUFUNC(op_c080_0), 49280 }, /* AND */ + { CPUFUNC(op_c090_0), 49296 }, /* AND */ + { CPUFUNC(op_c098_0), 49304 }, /* AND */ + { CPUFUNC(op_c0a0_0), 49312 }, /* AND */ + { CPUFUNC(op_c0a8_0), 49320 }, /* AND */ + { CPUFUNC(op_c0b0_0), 49328 }, /* AND */ + { CPUFUNC(op_c0b8_0), 49336 }, /* AND */ + { CPUFUNC(op_c0b9_0), 49337 }, /* AND */ + { CPUFUNC(op_c0ba_0), 49338 }, /* AND */ + { CPUFUNC(op_c0bb_0), 49339 }, /* AND */ + { CPUFUNC(op_c0bc_0), 49340 }, /* AND */ + { CPUFUNC(op_c0c0_0), 49344 }, /* MULU */ + { CPUFUNC(op_c0d0_0), 49360 }, /* MULU */ + { CPUFUNC(op_c0d8_0), 49368 }, /* MULU */ + { CPUFUNC(op_c0e0_0), 49376 }, /* MULU */ + { CPUFUNC(op_c0e8_0), 49384 }, /* MULU */ + { CPUFUNC(op_c0f0_0), 49392 }, /* MULU */ + { CPUFUNC(op_c0f8_0), 49400 }, /* MULU */ + { CPUFUNC(op_c0f9_0), 49401 }, /* MULU */ + { CPUFUNC(op_c0fa_0), 49402 }, /* MULU */ + { CPUFUNC(op_c0fb_0), 49403 }, /* MULU */ + { CPUFUNC(op_c0fc_0), 49404 }, /* MULU */ + { CPUFUNC(op_c100_0), 49408 }, /* ABCD */ + { CPUFUNC(op_c108_0), 49416 }, /* ABCD */ + { CPUFUNC(op_c110_0), 49424 }, /* AND */ + { CPUFUNC(op_c118_0), 49432 }, /* AND */ + { CPUFUNC(op_c120_0), 49440 }, /* AND */ + { CPUFUNC(op_c128_0), 49448 }, /* AND */ + { CPUFUNC(op_c130_0), 49456 }, /* AND */ + { CPUFUNC(op_c138_0), 49464 }, /* AND */ + { CPUFUNC(op_c139_0), 49465 }, /* AND */ + { CPUFUNC(op_c140_0), 49472 }, /* EXG */ + { CPUFUNC(op_c148_0), 49480 }, /* EXG */ + { CPUFUNC(op_c150_0), 49488 }, /* AND */ + { CPUFUNC(op_c158_0), 49496 }, /* AND */ + { CPUFUNC(op_c160_0), 49504 }, /* AND */ + { CPUFUNC(op_c168_0), 49512 }, /* AND */ + { CPUFUNC(op_c170_0), 49520 }, /* AND */ + { CPUFUNC(op_c178_0), 49528 }, /* AND */ + { CPUFUNC(op_c179_0), 49529 }, /* AND */ + { CPUFUNC(op_c188_0), 49544 }, /* EXG */ + { CPUFUNC(op_c190_0), 49552 }, /* AND */ + { CPUFUNC(op_c198_0), 49560 }, /* AND */ + { CPUFUNC(op_c1a0_0), 49568 }, /* AND */ + { CPUFUNC(op_c1a8_0), 49576 }, /* AND */ + { CPUFUNC(op_c1b0_0), 49584 }, /* AND */ + { CPUFUNC(op_c1b8_0), 49592 }, /* AND */ + { CPUFUNC(op_c1b9_0), 49593 }, /* AND */ + { CPUFUNC(op_c1c0_0), 49600 }, /* MULS */ + { CPUFUNC(op_c1d0_0), 49616 }, /* MULS */ + { CPUFUNC(op_c1d8_0), 49624 }, /* MULS */ + { CPUFUNC(op_c1e0_0), 49632 }, /* MULS */ + { CPUFUNC(op_c1e8_0), 49640 }, /* MULS */ + { CPUFUNC(op_c1f0_0), 49648 }, /* MULS */ + { CPUFUNC(op_c1f8_0), 49656 }, /* MULS */ + { CPUFUNC(op_c1f9_0), 49657 }, /* MULS */ + { CPUFUNC(op_c1fa_0), 49658 }, /* MULS */ + { CPUFUNC(op_c1fb_0), 49659 }, /* MULS */ + { CPUFUNC(op_c1fc_0), 49660 }, /* MULS */ + { CPUFUNC(op_d000_0), 53248 }, /* ADD */ + { CPUFUNC(op_d010_0), 53264 }, /* ADD */ + { CPUFUNC(op_d018_0), 53272 }, /* ADD */ + { CPUFUNC(op_d020_0), 53280 }, /* ADD */ + { CPUFUNC(op_d028_0), 53288 }, /* ADD */ + { CPUFUNC(op_d030_0), 53296 }, /* ADD */ + { CPUFUNC(op_d038_0), 53304 }, /* ADD */ + { CPUFUNC(op_d039_0), 53305 }, /* ADD */ + { CPUFUNC(op_d03a_0), 53306 }, /* ADD */ + { CPUFUNC(op_d03b_0), 53307 }, /* ADD */ + { CPUFUNC(op_d03c_0), 53308 }, /* ADD */ + { CPUFUNC(op_d040_0), 53312 }, /* ADD */ + { CPUFUNC(op_d048_0), 53320 }, /* ADD */ + { CPUFUNC(op_d050_0), 53328 }, /* ADD */ + { CPUFUNC(op_d058_0), 53336 }, /* ADD */ + { CPUFUNC(op_d060_0), 53344 }, /* ADD */ + { CPUFUNC(op_d068_0), 53352 }, /* ADD */ + { CPUFUNC(op_d070_0), 53360 }, /* ADD */ + { CPUFUNC(op_d078_0), 53368 }, /* ADD */ + { CPUFUNC(op_d079_0), 53369 }, /* ADD */ + { CPUFUNC(op_d07a_0), 53370 }, /* ADD */ + { CPUFUNC(op_d07b_0), 53371 }, /* ADD */ + { CPUFUNC(op_d07c_0), 53372 }, /* ADD */ + { CPUFUNC(op_d080_0), 53376 }, /* ADD */ + { CPUFUNC(op_d088_0), 53384 }, /* ADD */ + { CPUFUNC(op_d090_0), 53392 }, /* ADD */ + { CPUFUNC(op_d098_0), 53400 }, /* ADD */ + { CPUFUNC(op_d0a0_0), 53408 }, /* ADD */ + { CPUFUNC(op_d0a8_0), 53416 }, /* ADD */ + { CPUFUNC(op_d0b0_0), 53424 }, /* ADD */ + { CPUFUNC(op_d0b8_0), 53432 }, /* ADD */ + { CPUFUNC(op_d0b9_0), 53433 }, /* ADD */ + { CPUFUNC(op_d0ba_0), 53434 }, /* ADD */ + { CPUFUNC(op_d0bb_0), 53435 }, /* ADD */ + { CPUFUNC(op_d0bc_0), 53436 }, /* ADD */ + { CPUFUNC(op_d0c0_0), 53440 }, /* ADDA */ + { CPUFUNC(op_d0c8_0), 53448 }, /* ADDA */ + { CPUFUNC(op_d0d0_0), 53456 }, /* ADDA */ + { CPUFUNC(op_d0d8_0), 53464 }, /* ADDA */ + { CPUFUNC(op_d0e0_0), 53472 }, /* ADDA */ + { CPUFUNC(op_d0e8_0), 53480 }, /* ADDA */ + { CPUFUNC(op_d0f0_0), 53488 }, /* ADDA */ + { CPUFUNC(op_d0f8_0), 53496 }, /* ADDA */ + { CPUFUNC(op_d0f9_0), 53497 }, /* ADDA */ + { CPUFUNC(op_d0fa_0), 53498 }, /* ADDA */ + { CPUFUNC(op_d0fb_0), 53499 }, /* ADDA */ + { CPUFUNC(op_d0fc_0), 53500 }, /* ADDA */ + { CPUFUNC(op_d100_0), 53504 }, /* ADDX */ + { CPUFUNC(op_d108_0), 53512 }, /* ADDX */ + { CPUFUNC(op_d110_0), 53520 }, /* ADD */ + { CPUFUNC(op_d118_0), 53528 }, /* ADD */ + { CPUFUNC(op_d120_0), 53536 }, /* ADD */ + { CPUFUNC(op_d128_0), 53544 }, /* ADD */ + { CPUFUNC(op_d130_0), 53552 }, /* ADD */ + { CPUFUNC(op_d138_0), 53560 }, /* ADD */ + { CPUFUNC(op_d139_0), 53561 }, /* ADD */ + { CPUFUNC(op_d140_0), 53568 }, /* ADDX */ + { CPUFUNC(op_d148_0), 53576 }, /* ADDX */ + { CPUFUNC(op_d150_0), 53584 }, /* ADD */ + { CPUFUNC(op_d158_0), 53592 }, /* ADD */ + { CPUFUNC(op_d160_0), 53600 }, /* ADD */ + { CPUFUNC(op_d168_0), 53608 }, /* ADD */ + { CPUFUNC(op_d170_0), 53616 }, /* ADD */ + { CPUFUNC(op_d178_0), 53624 }, /* ADD */ + { CPUFUNC(op_d179_0), 53625 }, /* ADD */ + { CPUFUNC(op_d180_0), 53632 }, /* ADDX */ + { CPUFUNC(op_d188_0), 53640 }, /* ADDX */ + { CPUFUNC(op_d190_0), 53648 }, /* ADD */ + { CPUFUNC(op_d198_0), 53656 }, /* ADD */ + { CPUFUNC(op_d1a0_0), 53664 }, /* ADD */ + { CPUFUNC(op_d1a8_0), 53672 }, /* ADD */ + { CPUFUNC(op_d1b0_0), 53680 }, /* ADD */ + { CPUFUNC(op_d1b8_0), 53688 }, /* ADD */ + { CPUFUNC(op_d1b9_0), 53689 }, /* ADD */ + { CPUFUNC(op_d1c0_0), 53696 }, /* ADDA */ + { CPUFUNC(op_d1c8_0), 53704 }, /* ADDA */ + { CPUFUNC(op_d1d0_0), 53712 }, /* ADDA */ + { CPUFUNC(op_d1d8_0), 53720 }, /* ADDA */ + { CPUFUNC(op_d1e0_0), 53728 }, /* ADDA */ + { CPUFUNC(op_d1e8_0), 53736 }, /* ADDA */ + { CPUFUNC(op_d1f0_0), 53744 }, /* ADDA */ + { CPUFUNC(op_d1f8_0), 53752 }, /* ADDA */ + { CPUFUNC(op_d1f9_0), 53753 }, /* ADDA */ + { CPUFUNC(op_d1fa_0), 53754 }, /* ADDA */ + { CPUFUNC(op_d1fb_0), 53755 }, /* ADDA */ + { CPUFUNC(op_d1fc_0), 53756 }, /* ADDA */ + { CPUFUNC(op_e000_0), 57344 }, /* ASR */ + { CPUFUNC(op_e008_0), 57352 }, /* LSR */ + { CPUFUNC(op_e010_0), 57360 }, /* ROXR */ + { CPUFUNC(op_e018_0), 57368 }, /* ROR */ + { CPUFUNC(op_e020_0), 57376 }, /* ASR */ + { CPUFUNC(op_e028_0), 57384 }, /* LSR */ + { CPUFUNC(op_e030_0), 57392 }, /* ROXR */ + { CPUFUNC(op_e038_0), 57400 }, /* ROR */ + { CPUFUNC(op_e040_0), 57408 }, /* ASR */ + { CPUFUNC(op_e048_0), 57416 }, /* LSR */ + { CPUFUNC(op_e050_0), 57424 }, /* ROXR */ + { CPUFUNC(op_e058_0), 57432 }, /* ROR */ + { CPUFUNC(op_e060_0), 57440 }, /* ASR */ + { CPUFUNC(op_e068_0), 57448 }, /* LSR */ + { CPUFUNC(op_e070_0), 57456 }, /* ROXR */ + { CPUFUNC(op_e078_0), 57464 }, /* ROR */ + { CPUFUNC(op_e080_0), 57472 }, /* ASR */ + { CPUFUNC(op_e088_0), 57480 }, /* LSR */ + { CPUFUNC(op_e090_0), 57488 }, /* ROXR */ + { CPUFUNC(op_e098_0), 57496 }, /* ROR */ + { CPUFUNC(op_e0a0_0), 57504 }, /* ASR */ + { CPUFUNC(op_e0a8_0), 57512 }, /* LSR */ + { CPUFUNC(op_e0b0_0), 57520 }, /* ROXR */ + { CPUFUNC(op_e0b8_0), 57528 }, /* ROR */ + { CPUFUNC(op_e0d0_0), 57552 }, /* ASRW */ + { CPUFUNC(op_e0d8_0), 57560 }, /* ASRW */ + { CPUFUNC(op_e0e0_0), 57568 }, /* ASRW */ + { CPUFUNC(op_e0e8_0), 57576 }, /* ASRW */ + { CPUFUNC(op_e0f0_0), 57584 }, /* ASRW */ + { CPUFUNC(op_e0f8_0), 57592 }, /* ASRW */ + { CPUFUNC(op_e0f9_0), 57593 }, /* ASRW */ + { CPUFUNC(op_e100_0), 57600 }, /* ASL */ + { CPUFUNC(op_e108_0), 57608 }, /* LSL */ + { CPUFUNC(op_e110_0), 57616 }, /* ROXL */ + { CPUFUNC(op_e118_0), 57624 }, /* ROL */ + { CPUFUNC(op_e120_0), 57632 }, /* ASL */ + { CPUFUNC(op_e128_0), 57640 }, /* LSL */ + { CPUFUNC(op_e130_0), 57648 }, /* ROXL */ + { CPUFUNC(op_e138_0), 57656 }, /* ROL */ + { CPUFUNC(op_e140_0), 57664 }, /* ASL */ + { CPUFUNC(op_e148_0), 57672 }, /* LSL */ + { CPUFUNC(op_e150_0), 57680 }, /* ROXL */ + { CPUFUNC(op_e158_0), 57688 }, /* ROL */ + { CPUFUNC(op_e160_0), 57696 }, /* ASL */ + { CPUFUNC(op_e168_0), 57704 }, /* LSL */ + { CPUFUNC(op_e170_0), 57712 }, /* ROXL */ + { CPUFUNC(op_e178_0), 57720 }, /* ROL */ + { CPUFUNC(op_e180_0), 57728 }, /* ASL */ + { CPUFUNC(op_e188_0), 57736 }, /* LSL */ + { CPUFUNC(op_e190_0), 57744 }, /* ROXL */ + { CPUFUNC(op_e198_0), 57752 }, /* ROL */ + { CPUFUNC(op_e1a0_0), 57760 }, /* ASL */ + { CPUFUNC(op_e1a8_0), 57768 }, /* LSL */ + { CPUFUNC(op_e1b0_0), 57776 }, /* ROXL */ + { CPUFUNC(op_e1b8_0), 57784 }, /* ROL */ + { CPUFUNC(op_e1d0_0), 57808 }, /* ASLW */ + { CPUFUNC(op_e1d8_0), 57816 }, /* ASLW */ + { CPUFUNC(op_e1e0_0), 57824 }, /* ASLW */ + { CPUFUNC(op_e1e8_0), 57832 }, /* ASLW */ + { CPUFUNC(op_e1f0_0), 57840 }, /* ASLW */ + { CPUFUNC(op_e1f8_0), 57848 }, /* ASLW */ + { CPUFUNC(op_e1f9_0), 57849 }, /* ASLW */ + { CPUFUNC(op_e2d0_0), 58064 }, /* LSRW */ + { CPUFUNC(op_e2d8_0), 58072 }, /* LSRW */ + { CPUFUNC(op_e2e0_0), 58080 }, /* LSRW */ + { CPUFUNC(op_e2e8_0), 58088 }, /* LSRW */ + { CPUFUNC(op_e2f0_0), 58096 }, /* LSRW */ + { CPUFUNC(op_e2f8_0), 58104 }, /* LSRW */ + { CPUFUNC(op_e2f9_0), 58105 }, /* LSRW */ + { CPUFUNC(op_e3d0_0), 58320 }, /* LSLW */ + { CPUFUNC(op_e3d8_0), 58328 }, /* LSLW */ + { CPUFUNC(op_e3e0_0), 58336 }, /* LSLW */ + { CPUFUNC(op_e3e8_0), 58344 }, /* LSLW */ + { CPUFUNC(op_e3f0_0), 58352 }, /* LSLW */ + { CPUFUNC(op_e3f8_0), 58360 }, /* LSLW */ + { CPUFUNC(op_e3f9_0), 58361 }, /* LSLW */ + { CPUFUNC(op_e4d0_0), 58576 }, /* ROXRW */ + { CPUFUNC(op_e4d8_0), 58584 }, /* ROXRW */ + { CPUFUNC(op_e4e0_0), 58592 }, /* ROXRW */ + { CPUFUNC(op_e4e8_0), 58600 }, /* ROXRW */ + { CPUFUNC(op_e4f0_0), 58608 }, /* ROXRW */ + { CPUFUNC(op_e4f8_0), 58616 }, /* ROXRW */ + { CPUFUNC(op_e4f9_0), 58617 }, /* ROXRW */ + { CPUFUNC(op_e5d0_0), 58832 }, /* ROXLW */ + { CPUFUNC(op_e5d8_0), 58840 }, /* ROXLW */ + { CPUFUNC(op_e5e0_0), 58848 }, /* ROXLW */ + { CPUFUNC(op_e5e8_0), 58856 }, /* ROXLW */ + { CPUFUNC(op_e5f0_0), 58864 }, /* ROXLW */ + { CPUFUNC(op_e5f8_0), 58872 }, /* ROXLW */ + { CPUFUNC(op_e5f9_0), 58873 }, /* ROXLW */ + { CPUFUNC(op_e6d0_0), 59088 }, /* RORW */ + { CPUFUNC(op_e6d8_0), 59096 }, /* RORW */ + { CPUFUNC(op_e6e0_0), 59104 }, /* RORW */ + { CPUFUNC(op_e6e8_0), 59112 }, /* RORW */ + { CPUFUNC(op_e6f0_0), 59120 }, /* RORW */ + { CPUFUNC(op_e6f8_0), 59128 }, /* RORW */ + { CPUFUNC(op_e6f9_0), 59129 }, /* RORW */ + { CPUFUNC(op_e7d0_0), 59344 }, /* ROLW */ + { CPUFUNC(op_e7d8_0), 59352 }, /* ROLW */ + { CPUFUNC(op_e7e0_0), 59360 }, /* ROLW */ + { CPUFUNC(op_e7e8_0), 59368 }, /* ROLW */ + { CPUFUNC(op_e7f0_0), 59376 }, /* ROLW */ + { CPUFUNC(op_e7f8_0), 59384 }, /* ROLW */ + { CPUFUNC(op_e7f9_0), 59385 }, /* ROLW */ + { CPUFUNC(op_e8c0_0), 59584 }, /* BFTST */ + { CPUFUNC(op_e8d0_0), 59600 }, /* BFTST */ + { CPUFUNC(op_e8e8_0), 59624 }, /* BFTST */ + { CPUFUNC(op_e8f0_0), 59632 }, /* BFTST */ + { CPUFUNC(op_e8f8_0), 59640 }, /* BFTST */ + { CPUFUNC(op_e8f9_0), 59641 }, /* BFTST */ + { CPUFUNC(op_e8fa_0), 59642 }, /* BFTST */ + { CPUFUNC(op_e8fb_0), 59643 }, /* BFTST */ + { CPUFUNC(op_e9c0_0), 59840 }, /* BFEXTU */ + { CPUFUNC(op_e9d0_0), 59856 }, /* BFEXTU */ + { CPUFUNC(op_e9e8_0), 59880 }, /* BFEXTU */ + { CPUFUNC(op_e9f0_0), 59888 }, /* BFEXTU */ + { CPUFUNC(op_e9f8_0), 59896 }, /* BFEXTU */ + { CPUFUNC(op_e9f9_0), 59897 }, /* BFEXTU */ + { CPUFUNC(op_e9fa_0), 59898 }, /* BFEXTU */ + { CPUFUNC(op_e9fb_0), 59899 }, /* BFEXTU */ + { CPUFUNC(op_eac0_0), 60096 }, /* BFCHG */ + { CPUFUNC(op_ead0_0), 60112 }, /* BFCHG */ + { CPUFUNC(op_eae8_0), 60136 }, /* BFCHG */ + { CPUFUNC(op_eaf0_0), 60144 }, /* BFCHG */ + { CPUFUNC(op_eaf8_0), 60152 }, /* BFCHG */ + { CPUFUNC(op_eaf9_0), 60153 }, /* BFCHG */ + { CPUFUNC(op_ebc0_0), 60352 }, /* BFEXTS */ + { CPUFUNC(op_ebd0_0), 60368 }, /* BFEXTS */ + { CPUFUNC(op_ebe8_0), 60392 }, /* BFEXTS */ + { CPUFUNC(op_ebf0_0), 60400 }, /* BFEXTS */ + { CPUFUNC(op_ebf8_0), 60408 }, /* BFEXTS */ + { CPUFUNC(op_ebf9_0), 60409 }, /* BFEXTS */ + { CPUFUNC(op_ebfa_0), 60410 }, /* BFEXTS */ + { CPUFUNC(op_ebfb_0), 60411 }, /* BFEXTS */ + { CPUFUNC(op_ecc0_0), 60608 }, /* BFCLR */ + { CPUFUNC(op_ecd0_0), 60624 }, /* BFCLR */ + { CPUFUNC(op_ece8_0), 60648 }, /* BFCLR */ + { CPUFUNC(op_ecf0_0), 60656 }, /* BFCLR */ + { CPUFUNC(op_ecf8_0), 60664 }, /* BFCLR */ + { CPUFUNC(op_ecf9_0), 60665 }, /* BFCLR */ + { CPUFUNC(op_edc0_0), 60864 }, /* BFFFO */ + { CPUFUNC(op_edd0_0), 60880 }, /* BFFFO */ + { CPUFUNC(op_ede8_0), 60904 }, /* BFFFO */ + { CPUFUNC(op_edf0_0), 60912 }, /* BFFFO */ + { CPUFUNC(op_edf8_0), 60920 }, /* BFFFO */ + { CPUFUNC(op_edf9_0), 60921 }, /* BFFFO */ + { CPUFUNC(op_edfa_0), 60922 }, /* BFFFO */ + { CPUFUNC(op_edfb_0), 60923 }, /* BFFFO */ + { CPUFUNC(op_eec0_0), 61120 }, /* BFSET */ + { CPUFUNC(op_eed0_0), 61136 }, /* BFSET */ + { CPUFUNC(op_eee8_0), 61160 }, /* BFSET */ + { CPUFUNC(op_eef0_0), 61168 }, /* BFSET */ + { CPUFUNC(op_eef8_0), 61176 }, /* BFSET */ + { CPUFUNC(op_eef9_0), 61177 }, /* BFSET */ + { CPUFUNC(op_efc0_0), 61376 }, /* BFINS */ + { CPUFUNC(op_efd0_0), 61392 }, /* BFINS */ + { CPUFUNC(op_efe8_0), 61416 }, /* BFINS */ + { CPUFUNC(op_eff0_0), 61424 }, /* BFINS */ + { CPUFUNC(op_eff8_0), 61432 }, /* BFINS */ + { CPUFUNC(op_eff9_0), 61433 }, /* BFINS */ + { CPUFUNC(op_f000_0), 61440 }, /* MMUOP030 */ + { CPUFUNC(op_f008_0), 61448 }, /* MMUOP030 */ + { CPUFUNC(op_f010_0), 61456 }, /* MMUOP030 */ + { CPUFUNC(op_f018_0), 61464 }, /* MMUOP030 */ + { CPUFUNC(op_f020_0), 61472 }, /* MMUOP030 */ + { CPUFUNC(op_f028_0), 61480 }, /* MMUOP030 */ + { CPUFUNC(op_f030_0), 61488 }, /* MMUOP030 */ + { CPUFUNC(op_f038_0), 61496 }, /* MMUOP030 */ + { CPUFUNC(op_f039_0), 61497 }, /* MMUOP030 */ + { CPUFUNC(op_f200_0), 61952 }, /* FPP */ + { CPUFUNC(op_f208_0), 61960 }, /* FPP */ + { CPUFUNC(op_f210_0), 61968 }, /* FPP */ + { CPUFUNC(op_f218_0), 61976 }, /* FPP */ + { CPUFUNC(op_f220_0), 61984 }, /* FPP */ + { CPUFUNC(op_f228_0), 61992 }, /* FPP */ + { CPUFUNC(op_f230_0), 62000 }, /* FPP */ + { CPUFUNC(op_f238_0), 62008 }, /* FPP */ + { CPUFUNC(op_f239_0), 62009 }, /* FPP */ + { CPUFUNC(op_f23a_0), 62010 }, /* FPP */ + { CPUFUNC(op_f23b_0), 62011 }, /* FPP */ + { CPUFUNC(op_f23c_0), 62012 }, /* FPP */ + { CPUFUNC(op_f240_0), 62016 }, /* FScc */ + { CPUFUNC(op_f248_0), 62024 }, /* FDBcc */ + { CPUFUNC(op_f250_0), 62032 }, /* FScc */ + { CPUFUNC(op_f258_0), 62040 }, /* FScc */ + { CPUFUNC(op_f260_0), 62048 }, /* FScc */ + { CPUFUNC(op_f268_0), 62056 }, /* FScc */ + { CPUFUNC(op_f270_0), 62064 }, /* FScc */ + { CPUFUNC(op_f278_0), 62072 }, /* FScc */ + { CPUFUNC(op_f279_0), 62073 }, /* FScc */ + { CPUFUNC(op_f27a_0), 62074 }, /* FTRAPcc */ + { CPUFUNC(op_f27b_0), 62075 }, /* FTRAPcc */ + { CPUFUNC(op_f27c_0), 62076 }, /* FTRAPcc */ + { CPUFUNC(op_f280_0), 62080 }, /* FBcc */ + { CPUFUNC(op_f2c0_0), 62144 }, /* FBcc */ + { CPUFUNC(op_f310_0), 62224 }, /* FSAVE */ + { CPUFUNC(op_f320_0), 62240 }, /* FSAVE */ + { CPUFUNC(op_f328_0), 62248 }, /* FSAVE */ + { CPUFUNC(op_f330_0), 62256 }, /* FSAVE */ + { CPUFUNC(op_f338_0), 62264 }, /* FSAVE */ + { CPUFUNC(op_f339_0), 62265 }, /* FSAVE */ + { CPUFUNC(op_f350_0), 62288 }, /* FRESTORE */ + { CPUFUNC(op_f358_0), 62296 }, /* FRESTORE */ + { CPUFUNC(op_f368_0), 62312 }, /* FRESTORE */ + { CPUFUNC(op_f370_0), 62320 }, /* FRESTORE */ + { CPUFUNC(op_f378_0), 62328 }, /* FRESTORE */ + { CPUFUNC(op_f379_0), 62329 }, /* FRESTORE */ + { CPUFUNC(op_f37a_0), 62330 }, /* FRESTORE */ + { CPUFUNC(op_f37b_0), 62331 }, /* FRESTORE */ + { CPUFUNC(op_f408_0), 62472 }, /* CINVL */ + { CPUFUNC(op_f410_0), 62480 }, /* CINVP */ + { CPUFUNC(op_f418_0), 62488 }, /* CINVA */ + { CPUFUNC(op_f419_0), 62489 }, /* CINVA */ + { CPUFUNC(op_f41a_0), 62490 }, /* CINVA */ + { CPUFUNC(op_f41b_0), 62491 }, /* CINVA */ + { CPUFUNC(op_f41c_0), 62492 }, /* CINVA */ + { CPUFUNC(op_f41d_0), 62493 }, /* CINVA */ + { CPUFUNC(op_f41e_0), 62494 }, /* CINVA */ + { CPUFUNC(op_f41f_0), 62495 }, /* CINVA */ + { CPUFUNC(op_f428_0), 62504 }, /* CPUSHL */ + { CPUFUNC(op_f430_0), 62512 }, /* CPUSHP */ + { CPUFUNC(op_f438_0), 62520 }, /* CPUSHA */ + { CPUFUNC(op_f439_0), 62521 }, /* CPUSHA */ + { CPUFUNC(op_f43a_0), 62522 }, /* CPUSHA */ + { CPUFUNC(op_f43b_0), 62523 }, /* CPUSHA */ + { CPUFUNC(op_f43c_0), 62524 }, /* CPUSHA */ + { CPUFUNC(op_f43d_0), 62525 }, /* CPUSHA */ + { CPUFUNC(op_f43e_0), 62526 }, /* CPUSHA */ + { CPUFUNC(op_f43f_0), 62527 }, /* CPUSHA */ + { CPUFUNC(op_f500_0), 62720 }, /* PFLUSHN */ + { CPUFUNC(op_f508_0), 62728 }, /* PFLUSH */ + { CPUFUNC(op_f510_0), 62736 }, /* PFLUSHAN */ + { CPUFUNC(op_f518_0), 62744 }, /* PFLUSHA */ + { CPUFUNC(op_f548_0), 62792 }, /* PTESTR */ + { CPUFUNC(op_f568_0), 62824 }, /* PTESTW */ + { CPUFUNC(op_f588_0), 62856 }, /* PLPAR */ + { CPUFUNC(op_f5c8_0), 62920 }, /* PLPAW */ + { CPUFUNC(op_f600_0), 62976 }, /* MOVE16 */ + { CPUFUNC(op_f608_0), 62984 }, /* MOVE16 */ + { CPUFUNC(op_f610_0), 62992 }, /* MOVE16 */ + { CPUFUNC(op_f618_0), 63000 }, /* MOVE16 */ + { CPUFUNC(op_f620_0), 63008 }, /* MOVE16 */ + { CPUFUNC(op_f800_0), 63488 }, /* LPSTOP */ + { 0, 0 } +}; #endif /* CPUEMU_0 */ -const struct cputbl CPUFUNC(op_smalltbl_1)[] = { -{ CPUFUNC(op_0000_0), 0 }, /* OR */ -{ CPUFUNC(op_0010_0), 16 }, /* OR */ -{ CPUFUNC(op_0018_0), 24 }, /* OR */ -{ CPUFUNC(op_0020_0), 32 }, /* OR */ -{ CPUFUNC(op_0028_0), 40 }, /* OR */ -{ CPUFUNC(op_0030_0), 48 }, /* OR */ -{ CPUFUNC(op_0038_0), 56 }, /* OR */ -{ CPUFUNC(op_0039_0), 57 }, /* OR */ -{ CPUFUNC(op_003c_0), 60 }, /* ORSR */ -{ CPUFUNC(op_0040_0), 64 }, /* OR */ -{ CPUFUNC(op_0050_0), 80 }, /* OR */ -{ CPUFUNC(op_0058_0), 88 }, /* OR */ -{ CPUFUNC(op_0060_0), 96 }, /* OR */ -{ CPUFUNC(op_0068_0), 104 }, /* OR */ -{ CPUFUNC(op_0070_0), 112 }, /* OR */ -{ CPUFUNC(op_0078_0), 120 }, /* OR */ -{ CPUFUNC(op_0079_0), 121 }, /* OR */ -{ CPUFUNC(op_007c_0), 124 }, /* ORSR */ -{ CPUFUNC(op_0080_0), 128 }, /* OR */ -{ CPUFUNC(op_0090_0), 144 }, /* OR */ -{ CPUFUNC(op_0098_0), 152 }, /* OR */ -{ CPUFUNC(op_00a0_0), 160 }, /* OR */ -{ CPUFUNC(op_00a8_0), 168 }, /* OR */ -{ CPUFUNC(op_00b0_0), 176 }, /* OR */ -{ CPUFUNC(op_00b8_0), 184 }, /* OR */ -{ CPUFUNC(op_00b9_0), 185 }, /* OR */ -{ CPUFUNC(op_00d0_0), 208 }, /* CHK2 */ -{ CPUFUNC(op_00e8_0), 232 }, /* CHK2 */ -{ CPUFUNC(op_00f0_0), 240 }, /* CHK2 */ -{ CPUFUNC(op_00f8_0), 248 }, /* CHK2 */ -{ CPUFUNC(op_00f9_0), 249 }, /* CHK2 */ -{ CPUFUNC(op_00fa_0), 250 }, /* CHK2 */ -{ CPUFUNC(op_00fb_0), 251 }, /* CHK2 */ -{ CPUFUNC(op_0100_0), 256 }, /* BTST */ -{ CPUFUNC(op_0108_0), 264 }, /* MVPMR */ -{ CPUFUNC(op_0110_0), 272 }, /* BTST */ -{ CPUFUNC(op_0118_0), 280 }, /* BTST */ -{ CPUFUNC(op_0120_0), 288 }, /* BTST */ -{ CPUFUNC(op_0128_0), 296 }, /* BTST */ -{ CPUFUNC(op_0130_0), 304 }, /* BTST */ -{ CPUFUNC(op_0138_0), 312 }, /* BTST */ -{ CPUFUNC(op_0139_0), 313 }, /* BTST */ -{ CPUFUNC(op_013a_0), 314 }, /* BTST */ -{ CPUFUNC(op_013b_0), 315 }, /* BTST */ -{ CPUFUNC(op_013c_0), 316 }, /* BTST */ -{ CPUFUNC(op_0140_0), 320 }, /* BCHG */ -{ CPUFUNC(op_0148_0), 328 }, /* MVPMR */ -{ CPUFUNC(op_0150_0), 336 }, /* BCHG */ -{ CPUFUNC(op_0158_0), 344 }, /* BCHG */ -{ CPUFUNC(op_0160_0), 352 }, /* BCHG */ -{ CPUFUNC(op_0168_0), 360 }, /* BCHG */ -{ CPUFUNC(op_0170_0), 368 }, /* BCHG */ -{ CPUFUNC(op_0178_0), 376 }, /* BCHG */ -{ CPUFUNC(op_0179_0), 377 }, /* BCHG */ -{ CPUFUNC(op_0180_0), 384 }, /* BCLR */ -{ CPUFUNC(op_0188_0), 392 }, /* MVPRM */ -{ CPUFUNC(op_0190_0), 400 }, /* BCLR */ -{ CPUFUNC(op_0198_0), 408 }, /* BCLR */ -{ CPUFUNC(op_01a0_0), 416 }, /* BCLR */ -{ CPUFUNC(op_01a8_0), 424 }, /* BCLR */ -{ CPUFUNC(op_01b0_0), 432 }, /* BCLR */ -{ CPUFUNC(op_01b8_0), 440 }, /* BCLR */ -{ CPUFUNC(op_01b9_0), 441 }, /* BCLR */ -{ CPUFUNC(op_01c0_0), 448 }, /* BSET */ -{ CPUFUNC(op_01c8_0), 456 }, /* MVPRM */ -{ CPUFUNC(op_01d0_0), 464 }, /* BSET */ -{ CPUFUNC(op_01d8_0), 472 }, /* BSET */ -{ CPUFUNC(op_01e0_0), 480 }, /* BSET */ -{ CPUFUNC(op_01e8_0), 488 }, /* BSET */ -{ CPUFUNC(op_01f0_0), 496 }, /* BSET */ -{ CPUFUNC(op_01f8_0), 504 }, /* BSET */ -{ CPUFUNC(op_01f9_0), 505 }, /* BSET */ -{ CPUFUNC(op_0200_0), 512 }, /* AND */ -{ CPUFUNC(op_0210_0), 528 }, /* AND */ -{ CPUFUNC(op_0218_0), 536 }, /* AND */ -{ CPUFUNC(op_0220_0), 544 }, /* AND */ -{ CPUFUNC(op_0228_0), 552 }, /* AND */ -{ CPUFUNC(op_0230_0), 560 }, /* AND */ -{ CPUFUNC(op_0238_0), 568 }, /* AND */ -{ CPUFUNC(op_0239_0), 569 }, /* AND */ -{ CPUFUNC(op_023c_0), 572 }, /* ANDSR */ -{ CPUFUNC(op_0240_0), 576 }, /* AND */ -{ CPUFUNC(op_0250_0), 592 }, /* AND */ -{ CPUFUNC(op_0258_0), 600 }, /* AND */ -{ CPUFUNC(op_0260_0), 608 }, /* AND */ -{ CPUFUNC(op_0268_0), 616 }, /* AND */ -{ CPUFUNC(op_0270_0), 624 }, /* AND */ -{ CPUFUNC(op_0278_0), 632 }, /* AND */ -{ CPUFUNC(op_0279_0), 633 }, /* AND */ -{ CPUFUNC(op_027c_0), 636 }, /* ANDSR */ -{ CPUFUNC(op_0280_0), 640 }, /* AND */ -{ CPUFUNC(op_0290_0), 656 }, /* AND */ -{ CPUFUNC(op_0298_0), 664 }, /* AND */ -{ CPUFUNC(op_02a0_0), 672 }, /* AND */ -{ CPUFUNC(op_02a8_0), 680 }, /* AND */ -{ CPUFUNC(op_02b0_0), 688 }, /* AND */ -{ CPUFUNC(op_02b8_0), 696 }, /* AND */ -{ CPUFUNC(op_02b9_0), 697 }, /* AND */ -{ CPUFUNC(op_02d0_0), 720 }, /* CHK2 */ -{ CPUFUNC(op_02e8_0), 744 }, /* CHK2 */ -{ CPUFUNC(op_02f0_0), 752 }, /* CHK2 */ -{ CPUFUNC(op_02f8_0), 760 }, /* CHK2 */ -{ CPUFUNC(op_02f9_0), 761 }, /* CHK2 */ -{ CPUFUNC(op_02fa_0), 762 }, /* CHK2 */ -{ CPUFUNC(op_02fb_0), 763 }, /* CHK2 */ -{ CPUFUNC(op_0400_0), 1024 }, /* SUB */ -{ CPUFUNC(op_0410_0), 1040 }, /* SUB */ -{ CPUFUNC(op_0418_0), 1048 }, /* SUB */ -{ CPUFUNC(op_0420_0), 1056 }, /* SUB */ -{ CPUFUNC(op_0428_0), 1064 }, /* SUB */ -{ CPUFUNC(op_0430_0), 1072 }, /* SUB */ -{ CPUFUNC(op_0438_0), 1080 }, /* SUB */ -{ CPUFUNC(op_0439_0), 1081 }, /* SUB */ -{ CPUFUNC(op_0440_0), 1088 }, /* SUB */ -{ CPUFUNC(op_0450_0), 1104 }, /* SUB */ -{ CPUFUNC(op_0458_0), 1112 }, /* SUB */ -{ CPUFUNC(op_0460_0), 1120 }, /* SUB */ -{ CPUFUNC(op_0468_0), 1128 }, /* SUB */ -{ CPUFUNC(op_0470_0), 1136 }, /* SUB */ -{ CPUFUNC(op_0478_0), 1144 }, /* SUB */ -{ CPUFUNC(op_0479_0), 1145 }, /* SUB */ -{ CPUFUNC(op_0480_0), 1152 }, /* SUB */ -{ CPUFUNC(op_0490_0), 1168 }, /* SUB */ -{ CPUFUNC(op_0498_0), 1176 }, /* SUB */ -{ CPUFUNC(op_04a0_0), 1184 }, /* SUB */ -{ CPUFUNC(op_04a8_0), 1192 }, /* SUB */ -{ CPUFUNC(op_04b0_0), 1200 }, /* SUB */ -{ CPUFUNC(op_04b8_0), 1208 }, /* SUB */ -{ CPUFUNC(op_04b9_0), 1209 }, /* SUB */ -{ CPUFUNC(op_04d0_0), 1232 }, /* CHK2 */ -{ CPUFUNC(op_04e8_0), 1256 }, /* CHK2 */ -{ CPUFUNC(op_04f0_0), 1264 }, /* CHK2 */ -{ CPUFUNC(op_04f8_0), 1272 }, /* CHK2 */ -{ CPUFUNC(op_04f9_0), 1273 }, /* CHK2 */ -{ CPUFUNC(op_04fa_0), 1274 }, /* CHK2 */ -{ CPUFUNC(op_04fb_0), 1275 }, /* CHK2 */ -{ CPUFUNC(op_0600_0), 1536 }, /* ADD */ -{ CPUFUNC(op_0610_0), 1552 }, /* ADD */ -{ CPUFUNC(op_0618_0), 1560 }, /* ADD */ -{ CPUFUNC(op_0620_0), 1568 }, /* ADD */ -{ CPUFUNC(op_0628_0), 1576 }, /* ADD */ -{ CPUFUNC(op_0630_0), 1584 }, /* ADD */ -{ CPUFUNC(op_0638_0), 1592 }, /* ADD */ -{ CPUFUNC(op_0639_0), 1593 }, /* ADD */ -{ CPUFUNC(op_0640_0), 1600 }, /* ADD */ -{ CPUFUNC(op_0650_0), 1616 }, /* ADD */ -{ CPUFUNC(op_0658_0), 1624 }, /* ADD */ -{ CPUFUNC(op_0660_0), 1632 }, /* ADD */ -{ CPUFUNC(op_0668_0), 1640 }, /* ADD */ -{ CPUFUNC(op_0670_0), 1648 }, /* ADD */ -{ CPUFUNC(op_0678_0), 1656 }, /* ADD */ -{ CPUFUNC(op_0679_0), 1657 }, /* ADD */ -{ CPUFUNC(op_0680_0), 1664 }, /* ADD */ -{ CPUFUNC(op_0690_0), 1680 }, /* ADD */ -{ CPUFUNC(op_0698_0), 1688 }, /* ADD */ -{ CPUFUNC(op_06a0_0), 1696 }, /* ADD */ -{ CPUFUNC(op_06a8_0), 1704 }, /* ADD */ -{ CPUFUNC(op_06b0_0), 1712 }, /* ADD */ -{ CPUFUNC(op_06b8_0), 1720 }, /* ADD */ -{ CPUFUNC(op_06b9_0), 1721 }, /* ADD */ -{ CPUFUNC(op_06c0_0), 1728 }, /* RTM */ -{ CPUFUNC(op_06c8_0), 1736 }, /* RTM */ -{ CPUFUNC(op_06d0_0), 1744 }, /* CALLM */ -{ CPUFUNC(op_06e8_0), 1768 }, /* CALLM */ -{ CPUFUNC(op_06f0_0), 1776 }, /* CALLM */ -{ CPUFUNC(op_06f8_0), 1784 }, /* CALLM */ -{ CPUFUNC(op_06f9_0), 1785 }, /* CALLM */ -{ CPUFUNC(op_06fa_0), 1786 }, /* CALLM */ -{ CPUFUNC(op_06fb_0), 1787 }, /* CALLM */ -{ CPUFUNC(op_0800_0), 2048 }, /* BTST */ -{ CPUFUNC(op_0810_0), 2064 }, /* BTST */ -{ CPUFUNC(op_0818_0), 2072 }, /* BTST */ -{ CPUFUNC(op_0820_0), 2080 }, /* BTST */ -{ CPUFUNC(op_0828_0), 2088 }, /* BTST */ -{ CPUFUNC(op_0830_0), 2096 }, /* BTST */ -{ CPUFUNC(op_0838_0), 2104 }, /* BTST */ -{ CPUFUNC(op_0839_0), 2105 }, /* BTST */ -{ CPUFUNC(op_083a_0), 2106 }, /* BTST */ -{ CPUFUNC(op_083b_0), 2107 }, /* BTST */ -{ CPUFUNC(op_083c_0), 2108 }, /* BTST */ -{ CPUFUNC(op_0840_0), 2112 }, /* BCHG */ -{ CPUFUNC(op_0850_0), 2128 }, /* BCHG */ -{ CPUFUNC(op_0858_0), 2136 }, /* BCHG */ -{ CPUFUNC(op_0860_0), 2144 }, /* BCHG */ -{ CPUFUNC(op_0868_0), 2152 }, /* BCHG */ -{ CPUFUNC(op_0870_0), 2160 }, /* BCHG */ -{ CPUFUNC(op_0878_0), 2168 }, /* BCHG */ -{ CPUFUNC(op_0879_0), 2169 }, /* BCHG */ -{ CPUFUNC(op_0880_0), 2176 }, /* BCLR */ -{ CPUFUNC(op_0890_0), 2192 }, /* BCLR */ -{ CPUFUNC(op_0898_0), 2200 }, /* BCLR */ -{ CPUFUNC(op_08a0_0), 2208 }, /* BCLR */ -{ CPUFUNC(op_08a8_0), 2216 }, /* BCLR */ -{ CPUFUNC(op_08b0_0), 2224 }, /* BCLR */ -{ CPUFUNC(op_08b8_0), 2232 }, /* BCLR */ -{ CPUFUNC(op_08b9_0), 2233 }, /* BCLR */ -{ CPUFUNC(op_08c0_0), 2240 }, /* BSET */ -{ CPUFUNC(op_08d0_0), 2256 }, /* BSET */ -{ CPUFUNC(op_08d8_0), 2264 }, /* BSET */ -{ CPUFUNC(op_08e0_0), 2272 }, /* BSET */ -{ CPUFUNC(op_08e8_0), 2280 }, /* BSET */ -{ CPUFUNC(op_08f0_0), 2288 }, /* BSET */ -{ CPUFUNC(op_08f8_0), 2296 }, /* BSET */ -{ CPUFUNC(op_08f9_0), 2297 }, /* BSET */ -{ CPUFUNC(op_0a00_0), 2560 }, /* EOR */ -{ CPUFUNC(op_0a10_0), 2576 }, /* EOR */ -{ CPUFUNC(op_0a18_0), 2584 }, /* EOR */ -{ CPUFUNC(op_0a20_0), 2592 }, /* EOR */ -{ CPUFUNC(op_0a28_0), 2600 }, /* EOR */ -{ CPUFUNC(op_0a30_0), 2608 }, /* EOR */ -{ CPUFUNC(op_0a38_0), 2616 }, /* EOR */ -{ CPUFUNC(op_0a39_0), 2617 }, /* EOR */ -{ CPUFUNC(op_0a3c_0), 2620 }, /* EORSR */ -{ CPUFUNC(op_0a40_0), 2624 }, /* EOR */ -{ CPUFUNC(op_0a50_0), 2640 }, /* EOR */ -{ CPUFUNC(op_0a58_0), 2648 }, /* EOR */ -{ CPUFUNC(op_0a60_0), 2656 }, /* EOR */ -{ CPUFUNC(op_0a68_0), 2664 }, /* EOR */ -{ CPUFUNC(op_0a70_0), 2672 }, /* EOR */ -{ CPUFUNC(op_0a78_0), 2680 }, /* EOR */ -{ CPUFUNC(op_0a79_0), 2681 }, /* EOR */ -{ CPUFUNC(op_0a7c_0), 2684 }, /* EORSR */ -{ CPUFUNC(op_0a80_0), 2688 }, /* EOR */ -{ CPUFUNC(op_0a90_0), 2704 }, /* EOR */ -{ CPUFUNC(op_0a98_0), 2712 }, /* EOR */ -{ CPUFUNC(op_0aa0_0), 2720 }, /* EOR */ -{ CPUFUNC(op_0aa8_0), 2728 }, /* EOR */ -{ CPUFUNC(op_0ab0_0), 2736 }, /* EOR */ -{ CPUFUNC(op_0ab8_0), 2744 }, /* EOR */ -{ CPUFUNC(op_0ab9_0), 2745 }, /* EOR */ -{ CPUFUNC(op_0ad0_0), 2768 }, /* CAS */ -{ CPUFUNC(op_0ad8_0), 2776 }, /* CAS */ -{ CPUFUNC(op_0ae0_0), 2784 }, /* CAS */ -{ CPUFUNC(op_0ae8_0), 2792 }, /* CAS */ -{ CPUFUNC(op_0af0_0), 2800 }, /* CAS */ -{ CPUFUNC(op_0af8_0), 2808 }, /* CAS */ -{ CPUFUNC(op_0af9_0), 2809 }, /* CAS */ -{ CPUFUNC(op_0c00_0), 3072 }, /* CMP */ -{ CPUFUNC(op_0c10_0), 3088 }, /* CMP */ -{ CPUFUNC(op_0c18_0), 3096 }, /* CMP */ -{ CPUFUNC(op_0c20_0), 3104 }, /* CMP */ -{ CPUFUNC(op_0c28_0), 3112 }, /* CMP */ -{ CPUFUNC(op_0c30_0), 3120 }, /* CMP */ -{ CPUFUNC(op_0c38_0), 3128 }, /* CMP */ -{ CPUFUNC(op_0c39_0), 3129 }, /* CMP */ -{ CPUFUNC(op_0c3a_0), 3130 }, /* CMP */ -{ CPUFUNC(op_0c3b_0), 3131 }, /* CMP */ -{ CPUFUNC(op_0c40_0), 3136 }, /* CMP */ -{ CPUFUNC(op_0c50_0), 3152 }, /* CMP */ -{ CPUFUNC(op_0c58_0), 3160 }, /* CMP */ -{ CPUFUNC(op_0c60_0), 3168 }, /* CMP */ -{ CPUFUNC(op_0c68_0), 3176 }, /* CMP */ -{ CPUFUNC(op_0c70_0), 3184 }, /* CMP */ -{ CPUFUNC(op_0c78_0), 3192 }, /* CMP */ -{ CPUFUNC(op_0c79_0), 3193 }, /* CMP */ -{ CPUFUNC(op_0c7a_0), 3194 }, /* CMP */ -{ CPUFUNC(op_0c7b_0), 3195 }, /* CMP */ -{ CPUFUNC(op_0c80_0), 3200 }, /* CMP */ -{ CPUFUNC(op_0c90_0), 3216 }, /* CMP */ -{ CPUFUNC(op_0c98_0), 3224 }, /* CMP */ -{ CPUFUNC(op_0ca0_0), 3232 }, /* CMP */ -{ CPUFUNC(op_0ca8_0), 3240 }, /* CMP */ -{ CPUFUNC(op_0cb0_0), 3248 }, /* CMP */ -{ CPUFUNC(op_0cb8_0), 3256 }, /* CMP */ -{ CPUFUNC(op_0cb9_0), 3257 }, /* CMP */ -{ CPUFUNC(op_0cba_0), 3258 }, /* CMP */ -{ CPUFUNC(op_0cbb_0), 3259 }, /* CMP */ -{ CPUFUNC(op_0cd0_0), 3280 }, /* CAS */ -{ CPUFUNC(op_0cd8_0), 3288 }, /* CAS */ -{ CPUFUNC(op_0ce0_0), 3296 }, /* CAS */ -{ CPUFUNC(op_0ce8_0), 3304 }, /* CAS */ -{ CPUFUNC(op_0cf0_0), 3312 }, /* CAS */ -{ CPUFUNC(op_0cf8_0), 3320 }, /* CAS */ -{ CPUFUNC(op_0cf9_0), 3321 }, /* CAS */ -{ CPUFUNC(op_0cfc_0), 3324 }, /* CAS2 */ -{ CPUFUNC(op_0e10_0), 3600 }, /* MOVES */ -{ CPUFUNC(op_0e18_0), 3608 }, /* MOVES */ -{ CPUFUNC(op_0e20_0), 3616 }, /* MOVES */ -{ CPUFUNC(op_0e28_0), 3624 }, /* MOVES */ -{ CPUFUNC(op_0e30_0), 3632 }, /* MOVES */ -{ CPUFUNC(op_0e38_0), 3640 }, /* MOVES */ -{ CPUFUNC(op_0e39_0), 3641 }, /* MOVES */ -{ CPUFUNC(op_0e50_0), 3664 }, /* MOVES */ -{ CPUFUNC(op_0e58_0), 3672 }, /* MOVES */ -{ CPUFUNC(op_0e60_0), 3680 }, /* MOVES */ -{ CPUFUNC(op_0e68_0), 3688 }, /* MOVES */ -{ CPUFUNC(op_0e70_0), 3696 }, /* MOVES */ -{ CPUFUNC(op_0e78_0), 3704 }, /* MOVES */ -{ CPUFUNC(op_0e79_0), 3705 }, /* MOVES */ -{ CPUFUNC(op_0e90_0), 3728 }, /* MOVES */ -{ CPUFUNC(op_0e98_0), 3736 }, /* MOVES */ -{ CPUFUNC(op_0ea0_0), 3744 }, /* MOVES */ -{ CPUFUNC(op_0ea8_0), 3752 }, /* MOVES */ -{ CPUFUNC(op_0eb0_0), 3760 }, /* MOVES */ -{ CPUFUNC(op_0eb8_0), 3768 }, /* MOVES */ -{ CPUFUNC(op_0eb9_0), 3769 }, /* MOVES */ -{ CPUFUNC(op_0ed0_0), 3792 }, /* CAS */ -{ CPUFUNC(op_0ed8_0), 3800 }, /* CAS */ -{ CPUFUNC(op_0ee0_0), 3808 }, /* CAS */ -{ CPUFUNC(op_0ee8_0), 3816 }, /* CAS */ -{ CPUFUNC(op_0ef0_0), 3824 }, /* CAS */ -{ CPUFUNC(op_0ef8_0), 3832 }, /* CAS */ -{ CPUFUNC(op_0ef9_0), 3833 }, /* CAS */ -{ CPUFUNC(op_0efc_0), 3836 }, /* CAS2 */ -{ CPUFUNC(op_1000_0), 4096 }, /* MOVE */ -{ CPUFUNC(op_1010_0), 4112 }, /* MOVE */ -{ CPUFUNC(op_1018_0), 4120 }, /* MOVE */ -{ CPUFUNC(op_1020_0), 4128 }, /* MOVE */ -{ CPUFUNC(op_1028_0), 4136 }, /* MOVE */ -{ CPUFUNC(op_1030_0), 4144 }, /* MOVE */ -{ CPUFUNC(op_1038_0), 4152 }, /* MOVE */ -{ CPUFUNC(op_1039_0), 4153 }, /* MOVE */ -{ CPUFUNC(op_103a_0), 4154 }, /* MOVE */ -{ CPUFUNC(op_103b_0), 4155 }, /* MOVE */ -{ CPUFUNC(op_103c_0), 4156 }, /* MOVE */ -{ CPUFUNC(op_1080_0), 4224 }, /* MOVE */ -{ CPUFUNC(op_1090_0), 4240 }, /* MOVE */ -{ CPUFUNC(op_1098_0), 4248 }, /* MOVE */ -{ CPUFUNC(op_10a0_0), 4256 }, /* MOVE */ -{ CPUFUNC(op_10a8_0), 4264 }, /* MOVE */ -{ CPUFUNC(op_10b0_0), 4272 }, /* MOVE */ -{ CPUFUNC(op_10b8_0), 4280 }, /* MOVE */ -{ CPUFUNC(op_10b9_0), 4281 }, /* MOVE */ -{ CPUFUNC(op_10ba_0), 4282 }, /* MOVE */ -{ CPUFUNC(op_10bb_0), 4283 }, /* MOVE */ -{ CPUFUNC(op_10bc_0), 4284 }, /* MOVE */ -{ CPUFUNC(op_10c0_0), 4288 }, /* MOVE */ -{ CPUFUNC(op_10d0_0), 4304 }, /* MOVE */ -{ CPUFUNC(op_10d8_0), 4312 }, /* MOVE */ -{ CPUFUNC(op_10e0_0), 4320 }, /* MOVE */ -{ CPUFUNC(op_10e8_0), 4328 }, /* MOVE */ -{ CPUFUNC(op_10f0_0), 4336 }, /* MOVE */ -{ CPUFUNC(op_10f8_0), 4344 }, /* MOVE */ -{ CPUFUNC(op_10f9_0), 4345 }, /* MOVE */ -{ CPUFUNC(op_10fa_0), 4346 }, /* MOVE */ -{ CPUFUNC(op_10fb_0), 4347 }, /* MOVE */ -{ CPUFUNC(op_10fc_0), 4348 }, /* MOVE */ -{ CPUFUNC(op_1100_0), 4352 }, /* MOVE */ -{ CPUFUNC(op_1110_0), 4368 }, /* MOVE */ -{ CPUFUNC(op_1118_0), 4376 }, /* MOVE */ -{ CPUFUNC(op_1120_0), 4384 }, /* MOVE */ -{ CPUFUNC(op_1128_0), 4392 }, /* MOVE */ -{ CPUFUNC(op_1130_0), 4400 }, /* MOVE */ -{ CPUFUNC(op_1138_0), 4408 }, /* MOVE */ -{ CPUFUNC(op_1139_0), 4409 }, /* MOVE */ -{ CPUFUNC(op_113a_0), 4410 }, /* MOVE */ -{ CPUFUNC(op_113b_0), 4411 }, /* MOVE */ -{ CPUFUNC(op_113c_0), 4412 }, /* MOVE */ -{ CPUFUNC(op_1140_0), 4416 }, /* MOVE */ -{ CPUFUNC(op_1150_0), 4432 }, /* MOVE */ -{ CPUFUNC(op_1158_0), 4440 }, /* MOVE */ -{ CPUFUNC(op_1160_0), 4448 }, /* MOVE */ -{ CPUFUNC(op_1168_0), 4456 }, /* MOVE */ -{ CPUFUNC(op_1170_0), 4464 }, /* MOVE */ -{ CPUFUNC(op_1178_0), 4472 }, /* MOVE */ -{ CPUFUNC(op_1179_0), 4473 }, /* MOVE */ -{ CPUFUNC(op_117a_0), 4474 }, /* MOVE */ -{ CPUFUNC(op_117b_0), 4475 }, /* MOVE */ -{ CPUFUNC(op_117c_0), 4476 }, /* MOVE */ -{ CPUFUNC(op_1180_0), 4480 }, /* MOVE */ -{ CPUFUNC(op_1190_0), 4496 }, /* MOVE */ -{ CPUFUNC(op_1198_0), 4504 }, /* MOVE */ -{ CPUFUNC(op_11a0_0), 4512 }, /* MOVE */ -{ CPUFUNC(op_11a8_0), 4520 }, /* MOVE */ -{ CPUFUNC(op_11b0_0), 4528 }, /* MOVE */ -{ CPUFUNC(op_11b8_0), 4536 }, /* MOVE */ -{ CPUFUNC(op_11b9_0), 4537 }, /* MOVE */ -{ CPUFUNC(op_11ba_0), 4538 }, /* MOVE */ -{ CPUFUNC(op_11bb_0), 4539 }, /* MOVE */ -{ CPUFUNC(op_11bc_0), 4540 }, /* MOVE */ -{ CPUFUNC(op_11c0_0), 4544 }, /* MOVE */ -{ CPUFUNC(op_11d0_0), 4560 }, /* MOVE */ -{ CPUFUNC(op_11d8_0), 4568 }, /* MOVE */ -{ CPUFUNC(op_11e0_0), 4576 }, /* MOVE */ -{ CPUFUNC(op_11e8_0), 4584 }, /* MOVE */ -{ CPUFUNC(op_11f0_0), 4592 }, /* MOVE */ -{ CPUFUNC(op_11f8_0), 4600 }, /* MOVE */ -{ CPUFUNC(op_11f9_0), 4601 }, /* MOVE */ -{ CPUFUNC(op_11fa_0), 4602 }, /* MOVE */ -{ CPUFUNC(op_11fb_0), 4603 }, /* MOVE */ -{ CPUFUNC(op_11fc_0), 4604 }, /* MOVE */ -{ CPUFUNC(op_13c0_0), 5056 }, /* MOVE */ -{ CPUFUNC(op_13d0_0), 5072 }, /* MOVE */ -{ CPUFUNC(op_13d8_0), 5080 }, /* MOVE */ -{ CPUFUNC(op_13e0_0), 5088 }, /* MOVE */ -{ CPUFUNC(op_13e8_0), 5096 }, /* MOVE */ -{ CPUFUNC(op_13f0_0), 5104 }, /* MOVE */ -{ CPUFUNC(op_13f8_0), 5112 }, /* MOVE */ -{ CPUFUNC(op_13f9_0), 5113 }, /* MOVE */ -{ CPUFUNC(op_13fa_0), 5114 }, /* MOVE */ -{ CPUFUNC(op_13fb_0), 5115 }, /* MOVE */ -{ CPUFUNC(op_13fc_0), 5116 }, /* MOVE */ -{ CPUFUNC(op_2000_0), 8192 }, /* MOVE */ -{ CPUFUNC(op_2008_0), 8200 }, /* MOVE */ -{ CPUFUNC(op_2010_0), 8208 }, /* MOVE */ -{ CPUFUNC(op_2018_0), 8216 }, /* MOVE */ -{ CPUFUNC(op_2020_0), 8224 }, /* MOVE */ -{ CPUFUNC(op_2028_0), 8232 }, /* MOVE */ -{ CPUFUNC(op_2030_0), 8240 }, /* MOVE */ -{ CPUFUNC(op_2038_0), 8248 }, /* MOVE */ -{ CPUFUNC(op_2039_0), 8249 }, /* MOVE */ -{ CPUFUNC(op_203a_0), 8250 }, /* MOVE */ -{ CPUFUNC(op_203b_0), 8251 }, /* MOVE */ -{ CPUFUNC(op_203c_0), 8252 }, /* MOVE */ -{ CPUFUNC(op_2040_0), 8256 }, /* MOVEA */ -{ CPUFUNC(op_2048_0), 8264 }, /* MOVEA */ -{ CPUFUNC(op_2050_0), 8272 }, /* MOVEA */ -{ CPUFUNC(op_2058_0), 8280 }, /* MOVEA */ -{ CPUFUNC(op_2060_0), 8288 }, /* MOVEA */ -{ CPUFUNC(op_2068_0), 8296 }, /* MOVEA */ -{ CPUFUNC(op_2070_0), 8304 }, /* MOVEA */ -{ CPUFUNC(op_2078_0), 8312 }, /* MOVEA */ -{ CPUFUNC(op_2079_0), 8313 }, /* MOVEA */ -{ CPUFUNC(op_207a_0), 8314 }, /* MOVEA */ -{ CPUFUNC(op_207b_0), 8315 }, /* MOVEA */ -{ CPUFUNC(op_207c_0), 8316 }, /* MOVEA */ -{ CPUFUNC(op_2080_0), 8320 }, /* MOVE */ -{ CPUFUNC(op_2088_0), 8328 }, /* MOVE */ -{ CPUFUNC(op_2090_0), 8336 }, /* MOVE */ -{ CPUFUNC(op_2098_0), 8344 }, /* MOVE */ -{ CPUFUNC(op_20a0_0), 8352 }, /* MOVE */ -{ CPUFUNC(op_20a8_0), 8360 }, /* MOVE */ -{ CPUFUNC(op_20b0_0), 8368 }, /* MOVE */ -{ CPUFUNC(op_20b8_0), 8376 }, /* MOVE */ -{ CPUFUNC(op_20b9_0), 8377 }, /* MOVE */ -{ CPUFUNC(op_20ba_0), 8378 }, /* MOVE */ -{ CPUFUNC(op_20bb_0), 8379 }, /* MOVE */ -{ CPUFUNC(op_20bc_0), 8380 }, /* MOVE */ -{ CPUFUNC(op_20c0_0), 8384 }, /* MOVE */ -{ CPUFUNC(op_20c8_0), 8392 }, /* MOVE */ -{ CPUFUNC(op_20d0_0), 8400 }, /* MOVE */ -{ CPUFUNC(op_20d8_0), 8408 }, /* MOVE */ -{ CPUFUNC(op_20e0_0), 8416 }, /* MOVE */ -{ CPUFUNC(op_20e8_0), 8424 }, /* MOVE */ -{ CPUFUNC(op_20f0_0), 8432 }, /* MOVE */ -{ CPUFUNC(op_20f8_0), 8440 }, /* MOVE */ -{ CPUFUNC(op_20f9_0), 8441 }, /* MOVE */ -{ CPUFUNC(op_20fa_0), 8442 }, /* MOVE */ -{ CPUFUNC(op_20fb_0), 8443 }, /* MOVE */ -{ CPUFUNC(op_20fc_0), 8444 }, /* MOVE */ -{ CPUFUNC(op_2100_0), 8448 }, /* MOVE */ -{ CPUFUNC(op_2108_0), 8456 }, /* MOVE */ -{ CPUFUNC(op_2110_0), 8464 }, /* MOVE */ -{ CPUFUNC(op_2118_0), 8472 }, /* MOVE */ -{ CPUFUNC(op_2120_0), 8480 }, /* MOVE */ -{ CPUFUNC(op_2128_0), 8488 }, /* MOVE */ -{ CPUFUNC(op_2130_0), 8496 }, /* MOVE */ -{ CPUFUNC(op_2138_0), 8504 }, /* MOVE */ -{ CPUFUNC(op_2139_0), 8505 }, /* MOVE */ -{ CPUFUNC(op_213a_0), 8506 }, /* MOVE */ -{ CPUFUNC(op_213b_0), 8507 }, /* MOVE */ -{ CPUFUNC(op_213c_0), 8508 }, /* MOVE */ -{ CPUFUNC(op_2140_0), 8512 }, /* MOVE */ -{ CPUFUNC(op_2148_0), 8520 }, /* MOVE */ -{ CPUFUNC(op_2150_0), 8528 }, /* MOVE */ -{ CPUFUNC(op_2158_0), 8536 }, /* MOVE */ -{ CPUFUNC(op_2160_0), 8544 }, /* MOVE */ -{ CPUFUNC(op_2168_0), 8552 }, /* MOVE */ -{ CPUFUNC(op_2170_0), 8560 }, /* MOVE */ -{ CPUFUNC(op_2178_0), 8568 }, /* MOVE */ -{ CPUFUNC(op_2179_0), 8569 }, /* MOVE */ -{ CPUFUNC(op_217a_0), 8570 }, /* MOVE */ -{ CPUFUNC(op_217b_0), 8571 }, /* MOVE */ -{ CPUFUNC(op_217c_0), 8572 }, /* MOVE */ -{ CPUFUNC(op_2180_0), 8576 }, /* MOVE */ -{ CPUFUNC(op_2188_0), 8584 }, /* MOVE */ -{ CPUFUNC(op_2190_0), 8592 }, /* MOVE */ -{ CPUFUNC(op_2198_0), 8600 }, /* MOVE */ -{ CPUFUNC(op_21a0_0), 8608 }, /* MOVE */ -{ CPUFUNC(op_21a8_0), 8616 }, /* MOVE */ -{ CPUFUNC(op_21b0_0), 8624 }, /* MOVE */ -{ CPUFUNC(op_21b8_0), 8632 }, /* MOVE */ -{ CPUFUNC(op_21b9_0), 8633 }, /* MOVE */ -{ CPUFUNC(op_21ba_0), 8634 }, /* MOVE */ -{ CPUFUNC(op_21bb_0), 8635 }, /* MOVE */ -{ CPUFUNC(op_21bc_0), 8636 }, /* MOVE */ -{ CPUFUNC(op_21c0_0), 8640 }, /* MOVE */ -{ CPUFUNC(op_21c8_0), 8648 }, /* MOVE */ -{ CPUFUNC(op_21d0_0), 8656 }, /* MOVE */ -{ CPUFUNC(op_21d8_0), 8664 }, /* MOVE */ -{ CPUFUNC(op_21e0_0), 8672 }, /* MOVE */ -{ CPUFUNC(op_21e8_0), 8680 }, /* MOVE */ -{ CPUFUNC(op_21f0_0), 8688 }, /* MOVE */ -{ CPUFUNC(op_21f8_0), 8696 }, /* MOVE */ -{ CPUFUNC(op_21f9_0), 8697 }, /* MOVE */ -{ CPUFUNC(op_21fa_0), 8698 }, /* MOVE */ -{ CPUFUNC(op_21fb_0), 8699 }, /* MOVE */ -{ CPUFUNC(op_21fc_0), 8700 }, /* MOVE */ -{ CPUFUNC(op_23c0_0), 9152 }, /* MOVE */ -{ CPUFUNC(op_23c8_0), 9160 }, /* MOVE */ -{ CPUFUNC(op_23d0_0), 9168 }, /* MOVE */ -{ CPUFUNC(op_23d8_0), 9176 }, /* MOVE */ -{ CPUFUNC(op_23e0_0), 9184 }, /* MOVE */ -{ CPUFUNC(op_23e8_0), 9192 }, /* MOVE */ -{ CPUFUNC(op_23f0_0), 9200 }, /* MOVE */ -{ CPUFUNC(op_23f8_0), 9208 }, /* MOVE */ -{ CPUFUNC(op_23f9_0), 9209 }, /* MOVE */ -{ CPUFUNC(op_23fa_0), 9210 }, /* MOVE */ -{ CPUFUNC(op_23fb_0), 9211 }, /* MOVE */ -{ CPUFUNC(op_23fc_0), 9212 }, /* MOVE */ -{ CPUFUNC(op_3000_0), 12288 }, /* MOVE */ -{ CPUFUNC(op_3008_0), 12296 }, /* MOVE */ -{ CPUFUNC(op_3010_0), 12304 }, /* MOVE */ -{ CPUFUNC(op_3018_0), 12312 }, /* MOVE */ -{ CPUFUNC(op_3020_0), 12320 }, /* MOVE */ -{ CPUFUNC(op_3028_0), 12328 }, /* MOVE */ -{ CPUFUNC(op_3030_0), 12336 }, /* MOVE */ -{ CPUFUNC(op_3038_0), 12344 }, /* MOVE */ -{ CPUFUNC(op_3039_0), 12345 }, /* MOVE */ -{ CPUFUNC(op_303a_0), 12346 }, /* MOVE */ -{ CPUFUNC(op_303b_0), 12347 }, /* MOVE */ -{ CPUFUNC(op_303c_0), 12348 }, /* MOVE */ -{ CPUFUNC(op_3040_0), 12352 }, /* MOVEA */ -{ CPUFUNC(op_3048_0), 12360 }, /* MOVEA */ -{ CPUFUNC(op_3050_0), 12368 }, /* MOVEA */ -{ CPUFUNC(op_3058_0), 12376 }, /* MOVEA */ -{ CPUFUNC(op_3060_0), 12384 }, /* MOVEA */ -{ CPUFUNC(op_3068_0), 12392 }, /* MOVEA */ -{ CPUFUNC(op_3070_0), 12400 }, /* MOVEA */ -{ CPUFUNC(op_3078_0), 12408 }, /* MOVEA */ -{ CPUFUNC(op_3079_0), 12409 }, /* MOVEA */ -{ CPUFUNC(op_307a_0), 12410 }, /* MOVEA */ -{ CPUFUNC(op_307b_0), 12411 }, /* MOVEA */ -{ CPUFUNC(op_307c_0), 12412 }, /* MOVEA */ -{ CPUFUNC(op_3080_0), 12416 }, /* MOVE */ -{ CPUFUNC(op_3088_0), 12424 }, /* MOVE */ -{ CPUFUNC(op_3090_0), 12432 }, /* MOVE */ -{ CPUFUNC(op_3098_0), 12440 }, /* MOVE */ -{ CPUFUNC(op_30a0_0), 12448 }, /* MOVE */ -{ CPUFUNC(op_30a8_0), 12456 }, /* MOVE */ -{ CPUFUNC(op_30b0_0), 12464 }, /* MOVE */ -{ CPUFUNC(op_30b8_0), 12472 }, /* MOVE */ -{ CPUFUNC(op_30b9_0), 12473 }, /* MOVE */ -{ CPUFUNC(op_30ba_0), 12474 }, /* MOVE */ -{ CPUFUNC(op_30bb_0), 12475 }, /* MOVE */ -{ CPUFUNC(op_30bc_0), 12476 }, /* MOVE */ -{ CPUFUNC(op_30c0_0), 12480 }, /* MOVE */ -{ CPUFUNC(op_30c8_0), 12488 }, /* MOVE */ -{ CPUFUNC(op_30d0_0), 12496 }, /* MOVE */ -{ CPUFUNC(op_30d8_0), 12504 }, /* MOVE */ -{ CPUFUNC(op_30e0_0), 12512 }, /* MOVE */ -{ CPUFUNC(op_30e8_0), 12520 }, /* MOVE */ -{ CPUFUNC(op_30f0_0), 12528 }, /* MOVE */ -{ CPUFUNC(op_30f8_0), 12536 }, /* MOVE */ -{ CPUFUNC(op_30f9_0), 12537 }, /* MOVE */ -{ CPUFUNC(op_30fa_0), 12538 }, /* MOVE */ -{ CPUFUNC(op_30fb_0), 12539 }, /* MOVE */ -{ CPUFUNC(op_30fc_0), 12540 }, /* MOVE */ -{ CPUFUNC(op_3100_0), 12544 }, /* MOVE */ -{ CPUFUNC(op_3108_0), 12552 }, /* MOVE */ -{ CPUFUNC(op_3110_0), 12560 }, /* MOVE */ -{ CPUFUNC(op_3118_0), 12568 }, /* MOVE */ -{ CPUFUNC(op_3120_0), 12576 }, /* MOVE */ -{ CPUFUNC(op_3128_0), 12584 }, /* MOVE */ -{ CPUFUNC(op_3130_0), 12592 }, /* MOVE */ -{ CPUFUNC(op_3138_0), 12600 }, /* MOVE */ -{ CPUFUNC(op_3139_0), 12601 }, /* MOVE */ -{ CPUFUNC(op_313a_0), 12602 }, /* MOVE */ -{ CPUFUNC(op_313b_0), 12603 }, /* MOVE */ -{ CPUFUNC(op_313c_0), 12604 }, /* MOVE */ -{ CPUFUNC(op_3140_0), 12608 }, /* MOVE */ -{ CPUFUNC(op_3148_0), 12616 }, /* MOVE */ -{ CPUFUNC(op_3150_0), 12624 }, /* MOVE */ -{ CPUFUNC(op_3158_0), 12632 }, /* MOVE */ -{ CPUFUNC(op_3160_0), 12640 }, /* MOVE */ -{ CPUFUNC(op_3168_0), 12648 }, /* MOVE */ -{ CPUFUNC(op_3170_0), 12656 }, /* MOVE */ -{ CPUFUNC(op_3178_0), 12664 }, /* MOVE */ -{ CPUFUNC(op_3179_0), 12665 }, /* MOVE */ -{ CPUFUNC(op_317a_0), 12666 }, /* MOVE */ -{ CPUFUNC(op_317b_0), 12667 }, /* MOVE */ -{ CPUFUNC(op_317c_0), 12668 }, /* MOVE */ -{ CPUFUNC(op_3180_0), 12672 }, /* MOVE */ -{ CPUFUNC(op_3188_0), 12680 }, /* MOVE */ -{ CPUFUNC(op_3190_0), 12688 }, /* MOVE */ -{ CPUFUNC(op_3198_0), 12696 }, /* MOVE */ -{ CPUFUNC(op_31a0_0), 12704 }, /* MOVE */ -{ CPUFUNC(op_31a8_0), 12712 }, /* MOVE */ -{ CPUFUNC(op_31b0_0), 12720 }, /* MOVE */ -{ CPUFUNC(op_31b8_0), 12728 }, /* MOVE */ -{ CPUFUNC(op_31b9_0), 12729 }, /* MOVE */ -{ CPUFUNC(op_31ba_0), 12730 }, /* MOVE */ -{ CPUFUNC(op_31bb_0), 12731 }, /* MOVE */ -{ CPUFUNC(op_31bc_0), 12732 }, /* MOVE */ -{ CPUFUNC(op_31c0_0), 12736 }, /* MOVE */ -{ CPUFUNC(op_31c8_0), 12744 }, /* MOVE */ -{ CPUFUNC(op_31d0_0), 12752 }, /* MOVE */ -{ CPUFUNC(op_31d8_0), 12760 }, /* MOVE */ -{ CPUFUNC(op_31e0_0), 12768 }, /* MOVE */ -{ CPUFUNC(op_31e8_0), 12776 }, /* MOVE */ -{ CPUFUNC(op_31f0_0), 12784 }, /* MOVE */ -{ CPUFUNC(op_31f8_0), 12792 }, /* MOVE */ -{ CPUFUNC(op_31f9_0), 12793 }, /* MOVE */ -{ CPUFUNC(op_31fa_0), 12794 }, /* MOVE */ -{ CPUFUNC(op_31fb_0), 12795 }, /* MOVE */ -{ CPUFUNC(op_31fc_0), 12796 }, /* MOVE */ -{ CPUFUNC(op_33c0_0), 13248 }, /* MOVE */ -{ CPUFUNC(op_33c8_0), 13256 }, /* MOVE */ -{ CPUFUNC(op_33d0_0), 13264 }, /* MOVE */ -{ CPUFUNC(op_33d8_0), 13272 }, /* MOVE */ -{ CPUFUNC(op_33e0_0), 13280 }, /* MOVE */ -{ CPUFUNC(op_33e8_0), 13288 }, /* MOVE */ -{ CPUFUNC(op_33f0_0), 13296 }, /* MOVE */ -{ CPUFUNC(op_33f8_0), 13304 }, /* MOVE */ -{ CPUFUNC(op_33f9_0), 13305 }, /* MOVE */ -{ CPUFUNC(op_33fa_0), 13306 }, /* MOVE */ -{ CPUFUNC(op_33fb_0), 13307 }, /* MOVE */ -{ CPUFUNC(op_33fc_0), 13308 }, /* MOVE */ -{ CPUFUNC(op_4000_0), 16384 }, /* NEGX */ -{ CPUFUNC(op_4010_0), 16400 }, /* NEGX */ -{ CPUFUNC(op_4018_0), 16408 }, /* NEGX */ -{ CPUFUNC(op_4020_0), 16416 }, /* NEGX */ -{ CPUFUNC(op_4028_0), 16424 }, /* NEGX */ -{ CPUFUNC(op_4030_0), 16432 }, /* NEGX */ -{ CPUFUNC(op_4038_0), 16440 }, /* NEGX */ -{ CPUFUNC(op_4039_0), 16441 }, /* NEGX */ -{ CPUFUNC(op_4040_0), 16448 }, /* NEGX */ -{ CPUFUNC(op_4050_0), 16464 }, /* NEGX */ -{ CPUFUNC(op_4058_0), 16472 }, /* NEGX */ -{ CPUFUNC(op_4060_0), 16480 }, /* NEGX */ -{ CPUFUNC(op_4068_0), 16488 }, /* NEGX */ -{ CPUFUNC(op_4070_0), 16496 }, /* NEGX */ -{ CPUFUNC(op_4078_0), 16504 }, /* NEGX */ -{ CPUFUNC(op_4079_0), 16505 }, /* NEGX */ -{ CPUFUNC(op_4080_0), 16512 }, /* NEGX */ -{ CPUFUNC(op_4090_0), 16528 }, /* NEGX */ -{ CPUFUNC(op_4098_0), 16536 }, /* NEGX */ -{ CPUFUNC(op_40a0_0), 16544 }, /* NEGX */ -{ CPUFUNC(op_40a8_0), 16552 }, /* NEGX */ -{ CPUFUNC(op_40b0_0), 16560 }, /* NEGX */ -{ CPUFUNC(op_40b8_0), 16568 }, /* NEGX */ -{ CPUFUNC(op_40b9_0), 16569 }, /* NEGX */ -{ CPUFUNC(op_40c0_0), 16576 }, /* MVSR2 */ -{ CPUFUNC(op_40d0_0), 16592 }, /* MVSR2 */ -{ CPUFUNC(op_40d8_0), 16600 }, /* MVSR2 */ -{ CPUFUNC(op_40e0_0), 16608 }, /* MVSR2 */ -{ CPUFUNC(op_40e8_0), 16616 }, /* MVSR2 */ -{ CPUFUNC(op_40f0_0), 16624 }, /* MVSR2 */ -{ CPUFUNC(op_40f8_0), 16632 }, /* MVSR2 */ -{ CPUFUNC(op_40f9_0), 16633 }, /* MVSR2 */ -{ CPUFUNC(op_4100_0), 16640 }, /* CHK */ -{ CPUFUNC(op_4110_0), 16656 }, /* CHK */ -{ CPUFUNC(op_4118_0), 16664 }, /* CHK */ -{ CPUFUNC(op_4120_0), 16672 }, /* CHK */ -{ CPUFUNC(op_4128_0), 16680 }, /* CHK */ -{ CPUFUNC(op_4130_0), 16688 }, /* CHK */ -{ CPUFUNC(op_4138_0), 16696 }, /* CHK */ -{ CPUFUNC(op_4139_0), 16697 }, /* CHK */ -{ CPUFUNC(op_413a_0), 16698 }, /* CHK */ -{ CPUFUNC(op_413b_0), 16699 }, /* CHK */ -{ CPUFUNC(op_413c_0), 16700 }, /* CHK */ -{ CPUFUNC(op_4180_0), 16768 }, /* CHK */ -{ CPUFUNC(op_4190_0), 16784 }, /* CHK */ -{ CPUFUNC(op_4198_0), 16792 }, /* CHK */ -{ CPUFUNC(op_41a0_0), 16800 }, /* CHK */ -{ CPUFUNC(op_41a8_0), 16808 }, /* CHK */ -{ CPUFUNC(op_41b0_0), 16816 }, /* CHK */ -{ CPUFUNC(op_41b8_0), 16824 }, /* CHK */ -{ CPUFUNC(op_41b9_0), 16825 }, /* CHK */ -{ CPUFUNC(op_41ba_0), 16826 }, /* CHK */ -{ CPUFUNC(op_41bb_0), 16827 }, /* CHK */ -{ CPUFUNC(op_41bc_0), 16828 }, /* CHK */ -{ CPUFUNC(op_41d0_0), 16848 }, /* LEA */ -{ CPUFUNC(op_41e8_0), 16872 }, /* LEA */ -{ CPUFUNC(op_41f0_0), 16880 }, /* LEA */ -{ CPUFUNC(op_41f8_0), 16888 }, /* LEA */ -{ CPUFUNC(op_41f9_0), 16889 }, /* LEA */ -{ CPUFUNC(op_41fa_0), 16890 }, /* LEA */ -{ CPUFUNC(op_41fb_0), 16891 }, /* LEA */ -{ CPUFUNC(op_4200_0), 16896 }, /* CLR */ -{ CPUFUNC(op_4210_0), 16912 }, /* CLR */ -{ CPUFUNC(op_4218_0), 16920 }, /* CLR */ -{ CPUFUNC(op_4220_0), 16928 }, /* CLR */ -{ CPUFUNC(op_4228_0), 16936 }, /* CLR */ -{ CPUFUNC(op_4230_0), 16944 }, /* CLR */ -{ CPUFUNC(op_4238_0), 16952 }, /* CLR */ -{ CPUFUNC(op_4239_0), 16953 }, /* CLR */ -{ CPUFUNC(op_4240_0), 16960 }, /* CLR */ -{ CPUFUNC(op_4250_0), 16976 }, /* CLR */ -{ CPUFUNC(op_4258_0), 16984 }, /* CLR */ -{ CPUFUNC(op_4260_0), 16992 }, /* CLR */ -{ CPUFUNC(op_4268_0), 17000 }, /* CLR */ -{ CPUFUNC(op_4270_0), 17008 }, /* CLR */ -{ CPUFUNC(op_4278_0), 17016 }, /* CLR */ -{ CPUFUNC(op_4279_0), 17017 }, /* CLR */ -{ CPUFUNC(op_4280_0), 17024 }, /* CLR */ -{ CPUFUNC(op_4290_0), 17040 }, /* CLR */ -{ CPUFUNC(op_4298_0), 17048 }, /* CLR */ -{ CPUFUNC(op_42a0_0), 17056 }, /* CLR */ -{ CPUFUNC(op_42a8_0), 17064 }, /* CLR */ -{ CPUFUNC(op_42b0_0), 17072 }, /* CLR */ -{ CPUFUNC(op_42b8_0), 17080 }, /* CLR */ -{ CPUFUNC(op_42b9_0), 17081 }, /* CLR */ -{ CPUFUNC(op_42c0_0), 17088 }, /* MVSR2 */ -{ CPUFUNC(op_42d0_0), 17104 }, /* MVSR2 */ -{ CPUFUNC(op_42d8_0), 17112 }, /* MVSR2 */ -{ CPUFUNC(op_42e0_0), 17120 }, /* MVSR2 */ -{ CPUFUNC(op_42e8_0), 17128 }, /* MVSR2 */ -{ CPUFUNC(op_42f0_0), 17136 }, /* MVSR2 */ -{ CPUFUNC(op_42f8_0), 17144 }, /* MVSR2 */ -{ CPUFUNC(op_42f9_0), 17145 }, /* MVSR2 */ -{ CPUFUNC(op_4400_0), 17408 }, /* NEG */ -{ CPUFUNC(op_4410_0), 17424 }, /* NEG */ -{ CPUFUNC(op_4418_0), 17432 }, /* NEG */ -{ CPUFUNC(op_4420_0), 17440 }, /* NEG */ -{ CPUFUNC(op_4428_0), 17448 }, /* NEG */ -{ CPUFUNC(op_4430_0), 17456 }, /* NEG */ -{ CPUFUNC(op_4438_0), 17464 }, /* NEG */ -{ CPUFUNC(op_4439_0), 17465 }, /* NEG */ -{ CPUFUNC(op_4440_0), 17472 }, /* NEG */ -{ CPUFUNC(op_4450_0), 17488 }, /* NEG */ -{ CPUFUNC(op_4458_0), 17496 }, /* NEG */ -{ CPUFUNC(op_4460_0), 17504 }, /* NEG */ -{ CPUFUNC(op_4468_0), 17512 }, /* NEG */ -{ CPUFUNC(op_4470_0), 17520 }, /* NEG */ -{ CPUFUNC(op_4478_0), 17528 }, /* NEG */ -{ CPUFUNC(op_4479_0), 17529 }, /* NEG */ -{ CPUFUNC(op_4480_0), 17536 }, /* NEG */ -{ CPUFUNC(op_4490_0), 17552 }, /* NEG */ -{ CPUFUNC(op_4498_0), 17560 }, /* NEG */ -{ CPUFUNC(op_44a0_0), 17568 }, /* NEG */ -{ CPUFUNC(op_44a8_0), 17576 }, /* NEG */ -{ CPUFUNC(op_44b0_0), 17584 }, /* NEG */ -{ CPUFUNC(op_44b8_0), 17592 }, /* NEG */ -{ CPUFUNC(op_44b9_0), 17593 }, /* NEG */ -{ CPUFUNC(op_44c0_0), 17600 }, /* MV2SR */ -{ CPUFUNC(op_44d0_0), 17616 }, /* MV2SR */ -{ CPUFUNC(op_44d8_0), 17624 }, /* MV2SR */ -{ CPUFUNC(op_44e0_0), 17632 }, /* MV2SR */ -{ CPUFUNC(op_44e8_0), 17640 }, /* MV2SR */ -{ CPUFUNC(op_44f0_0), 17648 }, /* MV2SR */ -{ CPUFUNC(op_44f8_0), 17656 }, /* MV2SR */ -{ CPUFUNC(op_44f9_0), 17657 }, /* MV2SR */ -{ CPUFUNC(op_44fa_0), 17658 }, /* MV2SR */ -{ CPUFUNC(op_44fb_0), 17659 }, /* MV2SR */ -{ CPUFUNC(op_44fc_0), 17660 }, /* MV2SR */ -{ CPUFUNC(op_4600_0), 17920 }, /* NOT */ -{ CPUFUNC(op_4610_0), 17936 }, /* NOT */ -{ CPUFUNC(op_4618_0), 17944 }, /* NOT */ -{ CPUFUNC(op_4620_0), 17952 }, /* NOT */ -{ CPUFUNC(op_4628_0), 17960 }, /* NOT */ -{ CPUFUNC(op_4630_0), 17968 }, /* NOT */ -{ CPUFUNC(op_4638_0), 17976 }, /* NOT */ -{ CPUFUNC(op_4639_0), 17977 }, /* NOT */ -{ CPUFUNC(op_4640_0), 17984 }, /* NOT */ -{ CPUFUNC(op_4650_0), 18000 }, /* NOT */ -{ CPUFUNC(op_4658_0), 18008 }, /* NOT */ -{ CPUFUNC(op_4660_0), 18016 }, /* NOT */ -{ CPUFUNC(op_4668_0), 18024 }, /* NOT */ -{ CPUFUNC(op_4670_0), 18032 }, /* NOT */ -{ CPUFUNC(op_4678_0), 18040 }, /* NOT */ -{ CPUFUNC(op_4679_0), 18041 }, /* NOT */ -{ CPUFUNC(op_4680_0), 18048 }, /* NOT */ -{ CPUFUNC(op_4690_0), 18064 }, /* NOT */ -{ CPUFUNC(op_4698_0), 18072 }, /* NOT */ -{ CPUFUNC(op_46a0_0), 18080 }, /* NOT */ -{ CPUFUNC(op_46a8_0), 18088 }, /* NOT */ -{ CPUFUNC(op_46b0_0), 18096 }, /* NOT */ -{ CPUFUNC(op_46b8_0), 18104 }, /* NOT */ -{ CPUFUNC(op_46b9_0), 18105 }, /* NOT */ -{ CPUFUNC(op_46c0_0), 18112 }, /* MV2SR */ -{ CPUFUNC(op_46d0_0), 18128 }, /* MV2SR */ -{ CPUFUNC(op_46d8_0), 18136 }, /* MV2SR */ -{ CPUFUNC(op_46e0_0), 18144 }, /* MV2SR */ -{ CPUFUNC(op_46e8_0), 18152 }, /* MV2SR */ -{ CPUFUNC(op_46f0_0), 18160 }, /* MV2SR */ -{ CPUFUNC(op_46f8_0), 18168 }, /* MV2SR */ -{ CPUFUNC(op_46f9_0), 18169 }, /* MV2SR */ -{ CPUFUNC(op_46fa_0), 18170 }, /* MV2SR */ -{ CPUFUNC(op_46fb_0), 18171 }, /* MV2SR */ -{ CPUFUNC(op_46fc_0), 18172 }, /* MV2SR */ -{ CPUFUNC(op_4800_0), 18432 }, /* NBCD */ -{ CPUFUNC(op_4808_0), 18440 }, /* LINK */ -{ CPUFUNC(op_4810_0), 18448 }, /* NBCD */ -{ CPUFUNC(op_4818_0), 18456 }, /* NBCD */ -{ CPUFUNC(op_4820_0), 18464 }, /* NBCD */ -{ CPUFUNC(op_4828_0), 18472 }, /* NBCD */ -{ CPUFUNC(op_4830_0), 18480 }, /* NBCD */ -{ CPUFUNC(op_4838_0), 18488 }, /* NBCD */ -{ CPUFUNC(op_4839_0), 18489 }, /* NBCD */ -{ CPUFUNC(op_4840_0), 18496 }, /* SWAP */ -{ CPUFUNC(op_4848_0), 18504 }, /* BKPT */ -{ CPUFUNC(op_4850_0), 18512 }, /* PEA */ -{ CPUFUNC(op_4868_0), 18536 }, /* PEA */ -{ CPUFUNC(op_4870_0), 18544 }, /* PEA */ -{ CPUFUNC(op_4878_0), 18552 }, /* PEA */ -{ CPUFUNC(op_4879_0), 18553 }, /* PEA */ -{ CPUFUNC(op_487a_0), 18554 }, /* PEA */ -{ CPUFUNC(op_487b_0), 18555 }, /* PEA */ -{ CPUFUNC(op_4880_0), 18560 }, /* EXT */ -{ CPUFUNC(op_4890_0), 18576 }, /* MVMLE */ -{ CPUFUNC(op_48a0_0), 18592 }, /* MVMLE */ -{ CPUFUNC(op_48a8_0), 18600 }, /* MVMLE */ -{ CPUFUNC(op_48b0_0), 18608 }, /* MVMLE */ -{ CPUFUNC(op_48b8_0), 18616 }, /* MVMLE */ -{ CPUFUNC(op_48b9_0), 18617 }, /* MVMLE */ -{ CPUFUNC(op_48c0_0), 18624 }, /* EXT */ -{ CPUFUNC(op_48d0_0), 18640 }, /* MVMLE */ -{ CPUFUNC(op_48e0_0), 18656 }, /* MVMLE */ -{ CPUFUNC(op_48e8_0), 18664 }, /* MVMLE */ -{ CPUFUNC(op_48f0_0), 18672 }, /* MVMLE */ -{ CPUFUNC(op_48f8_0), 18680 }, /* MVMLE */ -{ CPUFUNC(op_48f9_0), 18681 }, /* MVMLE */ -{ CPUFUNC(op_49c0_0), 18880 }, /* EXT */ -{ CPUFUNC(op_4a00_0), 18944 }, /* TST */ -{ CPUFUNC(op_4a10_0), 18960 }, /* TST */ -{ CPUFUNC(op_4a18_0), 18968 }, /* TST */ -{ CPUFUNC(op_4a20_0), 18976 }, /* TST */ -{ CPUFUNC(op_4a28_0), 18984 }, /* TST */ -{ CPUFUNC(op_4a30_0), 18992 }, /* TST */ -{ CPUFUNC(op_4a38_0), 19000 }, /* TST */ -{ CPUFUNC(op_4a39_0), 19001 }, /* TST */ -{ CPUFUNC(op_4a3a_0), 19002 }, /* TST */ -{ CPUFUNC(op_4a3b_0), 19003 }, /* TST */ -{ CPUFUNC(op_4a3c_0), 19004 }, /* TST */ -{ CPUFUNC(op_4a40_0), 19008 }, /* TST */ -{ CPUFUNC(op_4a48_0), 19016 }, /* TST */ -{ CPUFUNC(op_4a50_0), 19024 }, /* TST */ -{ CPUFUNC(op_4a58_0), 19032 }, /* TST */ -{ CPUFUNC(op_4a60_0), 19040 }, /* TST */ -{ CPUFUNC(op_4a68_0), 19048 }, /* TST */ -{ CPUFUNC(op_4a70_0), 19056 }, /* TST */ -{ CPUFUNC(op_4a78_0), 19064 }, /* TST */ -{ CPUFUNC(op_4a79_0), 19065 }, /* TST */ -{ CPUFUNC(op_4a7a_0), 19066 }, /* TST */ -{ CPUFUNC(op_4a7b_0), 19067 }, /* TST */ -{ CPUFUNC(op_4a7c_0), 19068 }, /* TST */ -{ CPUFUNC(op_4a80_0), 19072 }, /* TST */ -{ CPUFUNC(op_4a88_0), 19080 }, /* TST */ -{ CPUFUNC(op_4a90_0), 19088 }, /* TST */ -{ CPUFUNC(op_4a98_0), 19096 }, /* TST */ -{ CPUFUNC(op_4aa0_0), 19104 }, /* TST */ -{ CPUFUNC(op_4aa8_0), 19112 }, /* TST */ -{ CPUFUNC(op_4ab0_0), 19120 }, /* TST */ -{ CPUFUNC(op_4ab8_0), 19128 }, /* TST */ -{ CPUFUNC(op_4ab9_0), 19129 }, /* TST */ -{ CPUFUNC(op_4aba_0), 19130 }, /* TST */ -{ CPUFUNC(op_4abb_0), 19131 }, /* TST */ -{ CPUFUNC(op_4abc_0), 19132 }, /* TST */ -{ CPUFUNC(op_4ac0_0), 19136 }, /* TAS */ -{ CPUFUNC(op_4ad0_0), 19152 }, /* TAS */ -{ CPUFUNC(op_4ad8_0), 19160 }, /* TAS */ -{ CPUFUNC(op_4ae0_0), 19168 }, /* TAS */ -{ CPUFUNC(op_4ae8_0), 19176 }, /* TAS */ -{ CPUFUNC(op_4af0_0), 19184 }, /* TAS */ -{ CPUFUNC(op_4af8_0), 19192 }, /* TAS */ -{ CPUFUNC(op_4af9_0), 19193 }, /* TAS */ -{ CPUFUNC(op_4c00_0), 19456 }, /* MULL */ -{ CPUFUNC(op_4c10_0), 19472 }, /* MULL */ -{ CPUFUNC(op_4c18_0), 19480 }, /* MULL */ -{ CPUFUNC(op_4c20_0), 19488 }, /* MULL */ -{ CPUFUNC(op_4c28_0), 19496 }, /* MULL */ -{ CPUFUNC(op_4c30_0), 19504 }, /* MULL */ -{ CPUFUNC(op_4c38_0), 19512 }, /* MULL */ -{ CPUFUNC(op_4c39_0), 19513 }, /* MULL */ -{ CPUFUNC(op_4c3a_0), 19514 }, /* MULL */ -{ CPUFUNC(op_4c3b_0), 19515 }, /* MULL */ -{ CPUFUNC(op_4c3c_0), 19516 }, /* MULL */ -{ CPUFUNC(op_4c40_0), 19520 }, /* DIVL */ -{ CPUFUNC(op_4c50_0), 19536 }, /* DIVL */ -{ CPUFUNC(op_4c58_0), 19544 }, /* DIVL */ -{ CPUFUNC(op_4c60_0), 19552 }, /* DIVL */ -{ CPUFUNC(op_4c68_0), 19560 }, /* DIVL */ -{ CPUFUNC(op_4c70_0), 19568 }, /* DIVL */ -{ CPUFUNC(op_4c78_0), 19576 }, /* DIVL */ -{ CPUFUNC(op_4c79_0), 19577 }, /* DIVL */ -{ CPUFUNC(op_4c7a_0), 19578 }, /* DIVL */ -{ CPUFUNC(op_4c7b_0), 19579 }, /* DIVL */ -{ CPUFUNC(op_4c7c_0), 19580 }, /* DIVL */ -{ CPUFUNC(op_4c90_0), 19600 }, /* MVMEL */ -{ CPUFUNC(op_4c98_0), 19608 }, /* MVMEL */ -{ CPUFUNC(op_4ca8_0), 19624 }, /* MVMEL */ -{ CPUFUNC(op_4cb0_0), 19632 }, /* MVMEL */ -{ CPUFUNC(op_4cb8_0), 19640 }, /* MVMEL */ -{ CPUFUNC(op_4cb9_0), 19641 }, /* MVMEL */ -{ CPUFUNC(op_4cba_0), 19642 }, /* MVMEL */ -{ CPUFUNC(op_4cbb_0), 19643 }, /* MVMEL */ -{ CPUFUNC(op_4cd0_0), 19664 }, /* MVMEL */ -{ CPUFUNC(op_4cd8_0), 19672 }, /* MVMEL */ -{ CPUFUNC(op_4ce8_0), 19688 }, /* MVMEL */ -{ CPUFUNC(op_4cf0_0), 19696 }, /* MVMEL */ -{ CPUFUNC(op_4cf8_0), 19704 }, /* MVMEL */ -{ CPUFUNC(op_4cf9_0), 19705 }, /* MVMEL */ -{ CPUFUNC(op_4cfa_0), 19706 }, /* MVMEL */ -{ CPUFUNC(op_4cfb_0), 19707 }, /* MVMEL */ -{ CPUFUNC(op_4e40_0), 20032 }, /* TRAP */ -{ CPUFUNC(op_4e50_0), 20048 }, /* LINK */ -{ CPUFUNC(op_4e58_0), 20056 }, /* UNLK */ -{ CPUFUNC(op_4e60_0), 20064 }, /* MVR2USP */ -{ CPUFUNC(op_4e68_0), 20072 }, /* MVUSP2R */ -{ CPUFUNC(op_4e70_0), 20080 }, /* RESET */ -{ CPUFUNC(op_4e71_0), 20081 }, /* NOP */ -{ CPUFUNC(op_4e72_0), 20082 }, /* STOP */ -{ CPUFUNC(op_4e73_0), 20083 }, /* RTE */ -{ CPUFUNC(op_4e74_0), 20084 }, /* RTD */ -{ CPUFUNC(op_4e75_0), 20085 }, /* RTS */ -{ CPUFUNC(op_4e76_0), 20086 }, /* TRAPV */ -{ CPUFUNC(op_4e77_0), 20087 }, /* RTR */ -{ CPUFUNC(op_4e7a_0), 20090 }, /* MOVEC2 */ -{ CPUFUNC(op_4e7b_0), 20091 }, /* MOVE2C */ -{ CPUFUNC(op_4e90_0), 20112 }, /* JSR */ -{ CPUFUNC(op_4ea8_0), 20136 }, /* JSR */ -{ CPUFUNC(op_4eb0_0), 20144 }, /* JSR */ -{ CPUFUNC(op_4eb8_0), 20152 }, /* JSR */ -{ CPUFUNC(op_4eb9_0), 20153 }, /* JSR */ -{ CPUFUNC(op_4eba_0), 20154 }, /* JSR */ -{ CPUFUNC(op_4ebb_0), 20155 }, /* JSR */ -{ CPUFUNC(op_4ed0_0), 20176 }, /* JMP */ -{ CPUFUNC(op_4ee8_0), 20200 }, /* JMP */ -{ CPUFUNC(op_4ef0_0), 20208 }, /* JMP */ -{ CPUFUNC(op_4ef8_0), 20216 }, /* JMP */ -{ CPUFUNC(op_4ef9_0), 20217 }, /* JMP */ -{ CPUFUNC(op_4efa_0), 20218 }, /* JMP */ -{ CPUFUNC(op_4efb_0), 20219 }, /* JMP */ -{ CPUFUNC(op_5000_0), 20480 }, /* ADD */ -{ CPUFUNC(op_5010_0), 20496 }, /* ADD */ -{ CPUFUNC(op_5018_0), 20504 }, /* ADD */ -{ CPUFUNC(op_5020_0), 20512 }, /* ADD */ -{ CPUFUNC(op_5028_0), 20520 }, /* ADD */ -{ CPUFUNC(op_5030_0), 20528 }, /* ADD */ -{ CPUFUNC(op_5038_0), 20536 }, /* ADD */ -{ CPUFUNC(op_5039_0), 20537 }, /* ADD */ -{ CPUFUNC(op_5040_0), 20544 }, /* ADD */ -{ CPUFUNC(op_5048_0), 20552 }, /* ADDA */ -{ CPUFUNC(op_5050_0), 20560 }, /* ADD */ -{ CPUFUNC(op_5058_0), 20568 }, /* ADD */ -{ CPUFUNC(op_5060_0), 20576 }, /* ADD */ -{ CPUFUNC(op_5068_0), 20584 }, /* ADD */ -{ CPUFUNC(op_5070_0), 20592 }, /* ADD */ -{ CPUFUNC(op_5078_0), 20600 }, /* ADD */ -{ CPUFUNC(op_5079_0), 20601 }, /* ADD */ -{ CPUFUNC(op_5080_0), 20608 }, /* ADD */ -{ CPUFUNC(op_5088_0), 20616 }, /* ADDA */ -{ CPUFUNC(op_5090_0), 20624 }, /* ADD */ -{ CPUFUNC(op_5098_0), 20632 }, /* ADD */ -{ CPUFUNC(op_50a0_0), 20640 }, /* ADD */ -{ CPUFUNC(op_50a8_0), 20648 }, /* ADD */ -{ CPUFUNC(op_50b0_0), 20656 }, /* ADD */ -{ CPUFUNC(op_50b8_0), 20664 }, /* ADD */ -{ CPUFUNC(op_50b9_0), 20665 }, /* ADD */ -{ CPUFUNC(op_50c0_0), 20672 }, /* Scc */ -{ CPUFUNC(op_50c8_0), 20680 }, /* DBcc */ -{ CPUFUNC(op_50d0_0), 20688 }, /* Scc */ -{ CPUFUNC(op_50d8_0), 20696 }, /* Scc */ -{ CPUFUNC(op_50e0_0), 20704 }, /* Scc */ -{ CPUFUNC(op_50e8_0), 20712 }, /* Scc */ -{ CPUFUNC(op_50f0_0), 20720 }, /* Scc */ -{ CPUFUNC(op_50f8_0), 20728 }, /* Scc */ -{ CPUFUNC(op_50f9_0), 20729 }, /* Scc */ -{ CPUFUNC(op_50fa_0), 20730 }, /* TRAPcc */ -{ CPUFUNC(op_50fb_0), 20731 }, /* TRAPcc */ -{ CPUFUNC(op_50fc_0), 20732 }, /* TRAPcc */ -{ CPUFUNC(op_5100_0), 20736 }, /* SUB */ -{ CPUFUNC(op_5110_0), 20752 }, /* SUB */ -{ CPUFUNC(op_5118_0), 20760 }, /* SUB */ -{ CPUFUNC(op_5120_0), 20768 }, /* SUB */ -{ CPUFUNC(op_5128_0), 20776 }, /* SUB */ -{ CPUFUNC(op_5130_0), 20784 }, /* SUB */ -{ CPUFUNC(op_5138_0), 20792 }, /* SUB */ -{ CPUFUNC(op_5139_0), 20793 }, /* SUB */ -{ CPUFUNC(op_5140_0), 20800 }, /* SUB */ -{ CPUFUNC(op_5148_0), 20808 }, /* SUBA */ -{ CPUFUNC(op_5150_0), 20816 }, /* SUB */ -{ CPUFUNC(op_5158_0), 20824 }, /* SUB */ -{ CPUFUNC(op_5160_0), 20832 }, /* SUB */ -{ CPUFUNC(op_5168_0), 20840 }, /* SUB */ -{ CPUFUNC(op_5170_0), 20848 }, /* SUB */ -{ CPUFUNC(op_5178_0), 20856 }, /* SUB */ -{ CPUFUNC(op_5179_0), 20857 }, /* SUB */ -{ CPUFUNC(op_5180_0), 20864 }, /* SUB */ -{ CPUFUNC(op_5188_0), 20872 }, /* SUBA */ -{ CPUFUNC(op_5190_0), 20880 }, /* SUB */ -{ CPUFUNC(op_5198_0), 20888 }, /* SUB */ -{ CPUFUNC(op_51a0_0), 20896 }, /* SUB */ -{ CPUFUNC(op_51a8_0), 20904 }, /* SUB */ -{ CPUFUNC(op_51b0_0), 20912 }, /* SUB */ -{ CPUFUNC(op_51b8_0), 20920 }, /* SUB */ -{ CPUFUNC(op_51b9_0), 20921 }, /* SUB */ -{ CPUFUNC(op_51c0_0), 20928 }, /* Scc */ -{ CPUFUNC(op_51c8_0), 20936 }, /* DBcc */ -{ CPUFUNC(op_51d0_0), 20944 }, /* Scc */ -{ CPUFUNC(op_51d8_0), 20952 }, /* Scc */ -{ CPUFUNC(op_51e0_0), 20960 }, /* Scc */ -{ CPUFUNC(op_51e8_0), 20968 }, /* Scc */ -{ CPUFUNC(op_51f0_0), 20976 }, /* Scc */ -{ CPUFUNC(op_51f8_0), 20984 }, /* Scc */ -{ CPUFUNC(op_51f9_0), 20985 }, /* Scc */ -{ CPUFUNC(op_51fa_0), 20986 }, /* TRAPcc */ -{ CPUFUNC(op_51fb_0), 20987 }, /* TRAPcc */ -{ CPUFUNC(op_51fc_0), 20988 }, /* TRAPcc */ -{ CPUFUNC(op_52c0_0), 21184 }, /* Scc */ -{ CPUFUNC(op_52c8_0), 21192 }, /* DBcc */ -{ CPUFUNC(op_52d0_0), 21200 }, /* Scc */ -{ CPUFUNC(op_52d8_0), 21208 }, /* Scc */ -{ CPUFUNC(op_52e0_0), 21216 }, /* Scc */ -{ CPUFUNC(op_52e8_0), 21224 }, /* Scc */ -{ CPUFUNC(op_52f0_0), 21232 }, /* Scc */ -{ CPUFUNC(op_52f8_0), 21240 }, /* Scc */ -{ CPUFUNC(op_52f9_0), 21241 }, /* Scc */ -{ CPUFUNC(op_52fa_0), 21242 }, /* TRAPcc */ -{ CPUFUNC(op_52fb_0), 21243 }, /* TRAPcc */ -{ CPUFUNC(op_52fc_0), 21244 }, /* TRAPcc */ -{ CPUFUNC(op_53c0_0), 21440 }, /* Scc */ -{ CPUFUNC(op_53c8_0), 21448 }, /* DBcc */ -{ CPUFUNC(op_53d0_0), 21456 }, /* Scc */ -{ CPUFUNC(op_53d8_0), 21464 }, /* Scc */ -{ CPUFUNC(op_53e0_0), 21472 }, /* Scc */ -{ CPUFUNC(op_53e8_0), 21480 }, /* Scc */ -{ CPUFUNC(op_53f0_0), 21488 }, /* Scc */ -{ CPUFUNC(op_53f8_0), 21496 }, /* Scc */ -{ CPUFUNC(op_53f9_0), 21497 }, /* Scc */ -{ CPUFUNC(op_53fa_0), 21498 }, /* TRAPcc */ -{ CPUFUNC(op_53fb_0), 21499 }, /* TRAPcc */ -{ CPUFUNC(op_53fc_0), 21500 }, /* TRAPcc */ -{ CPUFUNC(op_54c0_0), 21696 }, /* Scc */ -{ CPUFUNC(op_54c8_0), 21704 }, /* DBcc */ -{ CPUFUNC(op_54d0_0), 21712 }, /* Scc */ -{ CPUFUNC(op_54d8_0), 21720 }, /* Scc */ -{ CPUFUNC(op_54e0_0), 21728 }, /* Scc */ -{ CPUFUNC(op_54e8_0), 21736 }, /* Scc */ -{ CPUFUNC(op_54f0_0), 21744 }, /* Scc */ -{ CPUFUNC(op_54f8_0), 21752 }, /* Scc */ -{ CPUFUNC(op_54f9_0), 21753 }, /* Scc */ -{ CPUFUNC(op_54fa_0), 21754 }, /* TRAPcc */ -{ CPUFUNC(op_54fb_0), 21755 }, /* TRAPcc */ -{ CPUFUNC(op_54fc_0), 21756 }, /* TRAPcc */ -{ CPUFUNC(op_55c0_0), 21952 }, /* Scc */ -{ CPUFUNC(op_55c8_0), 21960 }, /* DBcc */ -{ CPUFUNC(op_55d0_0), 21968 }, /* Scc */ -{ CPUFUNC(op_55d8_0), 21976 }, /* Scc */ -{ CPUFUNC(op_55e0_0), 21984 }, /* Scc */ -{ CPUFUNC(op_55e8_0), 21992 }, /* Scc */ -{ CPUFUNC(op_55f0_0), 22000 }, /* Scc */ -{ CPUFUNC(op_55f8_0), 22008 }, /* Scc */ -{ CPUFUNC(op_55f9_0), 22009 }, /* Scc */ -{ CPUFUNC(op_55fa_0), 22010 }, /* TRAPcc */ -{ CPUFUNC(op_55fb_0), 22011 }, /* TRAPcc */ -{ CPUFUNC(op_55fc_0), 22012 }, /* TRAPcc */ -{ CPUFUNC(op_56c0_0), 22208 }, /* Scc */ -{ CPUFUNC(op_56c8_0), 22216 }, /* DBcc */ -{ CPUFUNC(op_56d0_0), 22224 }, /* Scc */ -{ CPUFUNC(op_56d8_0), 22232 }, /* Scc */ -{ CPUFUNC(op_56e0_0), 22240 }, /* Scc */ -{ CPUFUNC(op_56e8_0), 22248 }, /* Scc */ -{ CPUFUNC(op_56f0_0), 22256 }, /* Scc */ -{ CPUFUNC(op_56f8_0), 22264 }, /* Scc */ -{ CPUFUNC(op_56f9_0), 22265 }, /* Scc */ -{ CPUFUNC(op_56fa_0), 22266 }, /* TRAPcc */ -{ CPUFUNC(op_56fb_0), 22267 }, /* TRAPcc */ -{ CPUFUNC(op_56fc_0), 22268 }, /* TRAPcc */ -{ CPUFUNC(op_57c0_0), 22464 }, /* Scc */ -{ CPUFUNC(op_57c8_0), 22472 }, /* DBcc */ -{ CPUFUNC(op_57d0_0), 22480 }, /* Scc */ -{ CPUFUNC(op_57d8_0), 22488 }, /* Scc */ -{ CPUFUNC(op_57e0_0), 22496 }, /* Scc */ -{ CPUFUNC(op_57e8_0), 22504 }, /* Scc */ -{ CPUFUNC(op_57f0_0), 22512 }, /* Scc */ -{ CPUFUNC(op_57f8_0), 22520 }, /* Scc */ -{ CPUFUNC(op_57f9_0), 22521 }, /* Scc */ -{ CPUFUNC(op_57fa_0), 22522 }, /* TRAPcc */ -{ CPUFUNC(op_57fb_0), 22523 }, /* TRAPcc */ -{ CPUFUNC(op_57fc_0), 22524 }, /* TRAPcc */ -{ CPUFUNC(op_58c0_0), 22720 }, /* Scc */ -{ CPUFUNC(op_58c8_0), 22728 }, /* DBcc */ -{ CPUFUNC(op_58d0_0), 22736 }, /* Scc */ -{ CPUFUNC(op_58d8_0), 22744 }, /* Scc */ -{ CPUFUNC(op_58e0_0), 22752 }, /* Scc */ -{ CPUFUNC(op_58e8_0), 22760 }, /* Scc */ -{ CPUFUNC(op_58f0_0), 22768 }, /* Scc */ -{ CPUFUNC(op_58f8_0), 22776 }, /* Scc */ -{ CPUFUNC(op_58f9_0), 22777 }, /* Scc */ -{ CPUFUNC(op_58fa_0), 22778 }, /* TRAPcc */ -{ CPUFUNC(op_58fb_0), 22779 }, /* TRAPcc */ -{ CPUFUNC(op_58fc_0), 22780 }, /* TRAPcc */ -{ CPUFUNC(op_59c0_0), 22976 }, /* Scc */ -{ CPUFUNC(op_59c8_0), 22984 }, /* DBcc */ -{ CPUFUNC(op_59d0_0), 22992 }, /* Scc */ -{ CPUFUNC(op_59d8_0), 23000 }, /* Scc */ -{ CPUFUNC(op_59e0_0), 23008 }, /* Scc */ -{ CPUFUNC(op_59e8_0), 23016 }, /* Scc */ -{ CPUFUNC(op_59f0_0), 23024 }, /* Scc */ -{ CPUFUNC(op_59f8_0), 23032 }, /* Scc */ -{ CPUFUNC(op_59f9_0), 23033 }, /* Scc */ -{ CPUFUNC(op_59fa_0), 23034 }, /* TRAPcc */ -{ CPUFUNC(op_59fb_0), 23035 }, /* TRAPcc */ -{ CPUFUNC(op_59fc_0), 23036 }, /* TRAPcc */ -{ CPUFUNC(op_5ac0_0), 23232 }, /* Scc */ -{ CPUFUNC(op_5ac8_0), 23240 }, /* DBcc */ -{ CPUFUNC(op_5ad0_0), 23248 }, /* Scc */ -{ CPUFUNC(op_5ad8_0), 23256 }, /* Scc */ -{ CPUFUNC(op_5ae0_0), 23264 }, /* Scc */ -{ CPUFUNC(op_5ae8_0), 23272 }, /* Scc */ -{ CPUFUNC(op_5af0_0), 23280 }, /* Scc */ -{ CPUFUNC(op_5af8_0), 23288 }, /* Scc */ -{ CPUFUNC(op_5af9_0), 23289 }, /* Scc */ -{ CPUFUNC(op_5afa_0), 23290 }, /* TRAPcc */ -{ CPUFUNC(op_5afb_0), 23291 }, /* TRAPcc */ -{ CPUFUNC(op_5afc_0), 23292 }, /* TRAPcc */ -{ CPUFUNC(op_5bc0_0), 23488 }, /* Scc */ -{ CPUFUNC(op_5bc8_0), 23496 }, /* DBcc */ -{ CPUFUNC(op_5bd0_0), 23504 }, /* Scc */ -{ CPUFUNC(op_5bd8_0), 23512 }, /* Scc */ -{ CPUFUNC(op_5be0_0), 23520 }, /* Scc */ -{ CPUFUNC(op_5be8_0), 23528 }, /* Scc */ -{ CPUFUNC(op_5bf0_0), 23536 }, /* Scc */ -{ CPUFUNC(op_5bf8_0), 23544 }, /* Scc */ -{ CPUFUNC(op_5bf9_0), 23545 }, /* Scc */ -{ CPUFUNC(op_5bfa_0), 23546 }, /* TRAPcc */ -{ CPUFUNC(op_5bfb_0), 23547 }, /* TRAPcc */ -{ CPUFUNC(op_5bfc_0), 23548 }, /* TRAPcc */ -{ CPUFUNC(op_5cc0_0), 23744 }, /* Scc */ -{ CPUFUNC(op_5cc8_0), 23752 }, /* DBcc */ -{ CPUFUNC(op_5cd0_0), 23760 }, /* Scc */ -{ CPUFUNC(op_5cd8_0), 23768 }, /* Scc */ -{ CPUFUNC(op_5ce0_0), 23776 }, /* Scc */ -{ CPUFUNC(op_5ce8_0), 23784 }, /* Scc */ -{ CPUFUNC(op_5cf0_0), 23792 }, /* Scc */ -{ CPUFUNC(op_5cf8_0), 23800 }, /* Scc */ -{ CPUFUNC(op_5cf9_0), 23801 }, /* Scc */ -{ CPUFUNC(op_5cfa_0), 23802 }, /* TRAPcc */ -{ CPUFUNC(op_5cfb_0), 23803 }, /* TRAPcc */ -{ CPUFUNC(op_5cfc_0), 23804 }, /* TRAPcc */ -{ CPUFUNC(op_5dc0_0), 24000 }, /* Scc */ -{ CPUFUNC(op_5dc8_0), 24008 }, /* DBcc */ -{ CPUFUNC(op_5dd0_0), 24016 }, /* Scc */ -{ CPUFUNC(op_5dd8_0), 24024 }, /* Scc */ -{ CPUFUNC(op_5de0_0), 24032 }, /* Scc */ -{ CPUFUNC(op_5de8_0), 24040 }, /* Scc */ -{ CPUFUNC(op_5df0_0), 24048 }, /* Scc */ -{ CPUFUNC(op_5df8_0), 24056 }, /* Scc */ -{ CPUFUNC(op_5df9_0), 24057 }, /* Scc */ -{ CPUFUNC(op_5dfa_0), 24058 }, /* TRAPcc */ -{ CPUFUNC(op_5dfb_0), 24059 }, /* TRAPcc */ -{ CPUFUNC(op_5dfc_0), 24060 }, /* TRAPcc */ -{ CPUFUNC(op_5ec0_0), 24256 }, /* Scc */ -{ CPUFUNC(op_5ec8_0), 24264 }, /* DBcc */ -{ CPUFUNC(op_5ed0_0), 24272 }, /* Scc */ -{ CPUFUNC(op_5ed8_0), 24280 }, /* Scc */ -{ CPUFUNC(op_5ee0_0), 24288 }, /* Scc */ -{ CPUFUNC(op_5ee8_0), 24296 }, /* Scc */ -{ CPUFUNC(op_5ef0_0), 24304 }, /* Scc */ -{ CPUFUNC(op_5ef8_0), 24312 }, /* Scc */ -{ CPUFUNC(op_5ef9_0), 24313 }, /* Scc */ -{ CPUFUNC(op_5efa_0), 24314 }, /* TRAPcc */ -{ CPUFUNC(op_5efb_0), 24315 }, /* TRAPcc */ -{ CPUFUNC(op_5efc_0), 24316 }, /* TRAPcc */ -{ CPUFUNC(op_5fc0_0), 24512 }, /* Scc */ -{ CPUFUNC(op_5fc8_0), 24520 }, /* DBcc */ -{ CPUFUNC(op_5fd0_0), 24528 }, /* Scc */ -{ CPUFUNC(op_5fd8_0), 24536 }, /* Scc */ -{ CPUFUNC(op_5fe0_0), 24544 }, /* Scc */ -{ CPUFUNC(op_5fe8_0), 24552 }, /* Scc */ -{ CPUFUNC(op_5ff0_0), 24560 }, /* Scc */ -{ CPUFUNC(op_5ff8_0), 24568 }, /* Scc */ -{ CPUFUNC(op_5ff9_0), 24569 }, /* Scc */ -{ CPUFUNC(op_5ffa_0), 24570 }, /* TRAPcc */ -{ CPUFUNC(op_5ffb_0), 24571 }, /* TRAPcc */ -{ CPUFUNC(op_5ffc_0), 24572 }, /* TRAPcc */ -{ CPUFUNC(op_6000_0), 24576 }, /* Bcc */ -{ CPUFUNC(op_6001_0), 24577 }, /* Bcc */ -{ CPUFUNC(op_60ff_0), 24831 }, /* Bcc */ -{ CPUFUNC(op_6100_0), 24832 }, /* BSR */ -{ CPUFUNC(op_6101_0), 24833 }, /* BSR */ -{ CPUFUNC(op_61ff_0), 25087 }, /* BSR */ -{ CPUFUNC(op_6200_0), 25088 }, /* Bcc */ -{ CPUFUNC(op_6201_0), 25089 }, /* Bcc */ -{ CPUFUNC(op_62ff_0), 25343 }, /* Bcc */ -{ CPUFUNC(op_6300_0), 25344 }, /* Bcc */ -{ CPUFUNC(op_6301_0), 25345 }, /* Bcc */ -{ CPUFUNC(op_63ff_0), 25599 }, /* Bcc */ -{ CPUFUNC(op_6400_0), 25600 }, /* Bcc */ -{ CPUFUNC(op_6401_0), 25601 }, /* Bcc */ -{ CPUFUNC(op_64ff_0), 25855 }, /* Bcc */ -{ CPUFUNC(op_6500_0), 25856 }, /* Bcc */ -{ CPUFUNC(op_6501_0), 25857 }, /* Bcc */ -{ CPUFUNC(op_65ff_0), 26111 }, /* Bcc */ -{ CPUFUNC(op_6600_0), 26112 }, /* Bcc */ -{ CPUFUNC(op_6601_0), 26113 }, /* Bcc */ -{ CPUFUNC(op_66ff_0), 26367 }, /* Bcc */ -{ CPUFUNC(op_6700_0), 26368 }, /* Bcc */ -{ CPUFUNC(op_6701_0), 26369 }, /* Bcc */ -{ CPUFUNC(op_67ff_0), 26623 }, /* Bcc */ -{ CPUFUNC(op_6800_0), 26624 }, /* Bcc */ -{ CPUFUNC(op_6801_0), 26625 }, /* Bcc */ -{ CPUFUNC(op_68ff_0), 26879 }, /* Bcc */ -{ CPUFUNC(op_6900_0), 26880 }, /* Bcc */ -{ CPUFUNC(op_6901_0), 26881 }, /* Bcc */ -{ CPUFUNC(op_69ff_0), 27135 }, /* Bcc */ -{ CPUFUNC(op_6a00_0), 27136 }, /* Bcc */ -{ CPUFUNC(op_6a01_0), 27137 }, /* Bcc */ -{ CPUFUNC(op_6aff_0), 27391 }, /* Bcc */ -{ CPUFUNC(op_6b00_0), 27392 }, /* Bcc */ -{ CPUFUNC(op_6b01_0), 27393 }, /* Bcc */ -{ CPUFUNC(op_6bff_0), 27647 }, /* Bcc */ -{ CPUFUNC(op_6c00_0), 27648 }, /* Bcc */ -{ CPUFUNC(op_6c01_0), 27649 }, /* Bcc */ -{ CPUFUNC(op_6cff_0), 27903 }, /* Bcc */ -{ CPUFUNC(op_6d00_0), 27904 }, /* Bcc */ -{ CPUFUNC(op_6d01_0), 27905 }, /* Bcc */ -{ CPUFUNC(op_6dff_0), 28159 }, /* Bcc */ -{ CPUFUNC(op_6e00_0), 28160 }, /* Bcc */ -{ CPUFUNC(op_6e01_0), 28161 }, /* Bcc */ -{ CPUFUNC(op_6eff_0), 28415 }, /* Bcc */ -{ CPUFUNC(op_6f00_0), 28416 }, /* Bcc */ -{ CPUFUNC(op_6f01_0), 28417 }, /* Bcc */ -{ CPUFUNC(op_6fff_0), 28671 }, /* Bcc */ -{ CPUFUNC(op_7000_0), 28672 }, /* MOVE */ -{ CPUFUNC(op_8000_0), 32768 }, /* OR */ -{ CPUFUNC(op_8010_0), 32784 }, /* OR */ -{ CPUFUNC(op_8018_0), 32792 }, /* OR */ -{ CPUFUNC(op_8020_0), 32800 }, /* OR */ -{ CPUFUNC(op_8028_0), 32808 }, /* OR */ -{ CPUFUNC(op_8030_0), 32816 }, /* OR */ -{ CPUFUNC(op_8038_0), 32824 }, /* OR */ -{ CPUFUNC(op_8039_0), 32825 }, /* OR */ -{ CPUFUNC(op_803a_0), 32826 }, /* OR */ -{ CPUFUNC(op_803b_0), 32827 }, /* OR */ -{ CPUFUNC(op_803c_0), 32828 }, /* OR */ -{ CPUFUNC(op_8040_0), 32832 }, /* OR */ -{ CPUFUNC(op_8050_0), 32848 }, /* OR */ -{ CPUFUNC(op_8058_0), 32856 }, /* OR */ -{ CPUFUNC(op_8060_0), 32864 }, /* OR */ -{ CPUFUNC(op_8068_0), 32872 }, /* OR */ -{ CPUFUNC(op_8070_0), 32880 }, /* OR */ -{ CPUFUNC(op_8078_0), 32888 }, /* OR */ -{ CPUFUNC(op_8079_0), 32889 }, /* OR */ -{ CPUFUNC(op_807a_0), 32890 }, /* OR */ -{ CPUFUNC(op_807b_0), 32891 }, /* OR */ -{ CPUFUNC(op_807c_0), 32892 }, /* OR */ -{ CPUFUNC(op_8080_0), 32896 }, /* OR */ -{ CPUFUNC(op_8090_0), 32912 }, /* OR */ -{ CPUFUNC(op_8098_0), 32920 }, /* OR */ -{ CPUFUNC(op_80a0_0), 32928 }, /* OR */ -{ CPUFUNC(op_80a8_0), 32936 }, /* OR */ -{ CPUFUNC(op_80b0_0), 32944 }, /* OR */ -{ CPUFUNC(op_80b8_0), 32952 }, /* OR */ -{ CPUFUNC(op_80b9_0), 32953 }, /* OR */ -{ CPUFUNC(op_80ba_0), 32954 }, /* OR */ -{ CPUFUNC(op_80bb_0), 32955 }, /* OR */ -{ CPUFUNC(op_80bc_0), 32956 }, /* OR */ -{ CPUFUNC(op_80c0_0), 32960 }, /* DIVU */ -{ CPUFUNC(op_80d0_0), 32976 }, /* DIVU */ -{ CPUFUNC(op_80d8_0), 32984 }, /* DIVU */ -{ CPUFUNC(op_80e0_0), 32992 }, /* DIVU */ -{ CPUFUNC(op_80e8_0), 33000 }, /* DIVU */ -{ CPUFUNC(op_80f0_0), 33008 }, /* DIVU */ -{ CPUFUNC(op_80f8_0), 33016 }, /* DIVU */ -{ CPUFUNC(op_80f9_0), 33017 }, /* DIVU */ -{ CPUFUNC(op_80fa_0), 33018 }, /* DIVU */ -{ CPUFUNC(op_80fb_0), 33019 }, /* DIVU */ -{ CPUFUNC(op_80fc_0), 33020 }, /* DIVU */ -{ CPUFUNC(op_8100_0), 33024 }, /* SBCD */ -{ CPUFUNC(op_8108_0), 33032 }, /* SBCD */ -{ CPUFUNC(op_8110_0), 33040 }, /* OR */ -{ CPUFUNC(op_8118_0), 33048 }, /* OR */ -{ CPUFUNC(op_8120_0), 33056 }, /* OR */ -{ CPUFUNC(op_8128_0), 33064 }, /* OR */ -{ CPUFUNC(op_8130_0), 33072 }, /* OR */ -{ CPUFUNC(op_8138_0), 33080 }, /* OR */ -{ CPUFUNC(op_8139_0), 33081 }, /* OR */ -{ CPUFUNC(op_8140_0), 33088 }, /* PACK */ -{ CPUFUNC(op_8148_0), 33096 }, /* PACK */ -{ CPUFUNC(op_8150_0), 33104 }, /* OR */ -{ CPUFUNC(op_8158_0), 33112 }, /* OR */ -{ CPUFUNC(op_8160_0), 33120 }, /* OR */ -{ CPUFUNC(op_8168_0), 33128 }, /* OR */ -{ CPUFUNC(op_8170_0), 33136 }, /* OR */ -{ CPUFUNC(op_8178_0), 33144 }, /* OR */ -{ CPUFUNC(op_8179_0), 33145 }, /* OR */ -{ CPUFUNC(op_8180_0), 33152 }, /* UNPK */ -{ CPUFUNC(op_8188_0), 33160 }, /* UNPK */ -{ CPUFUNC(op_8190_0), 33168 }, /* OR */ -{ CPUFUNC(op_8198_0), 33176 }, /* OR */ -{ CPUFUNC(op_81a0_0), 33184 }, /* OR */ -{ CPUFUNC(op_81a8_0), 33192 }, /* OR */ -{ CPUFUNC(op_81b0_0), 33200 }, /* OR */ -{ CPUFUNC(op_81b8_0), 33208 }, /* OR */ -{ CPUFUNC(op_81b9_0), 33209 }, /* OR */ -{ CPUFUNC(op_81c0_0), 33216 }, /* DIVS */ -{ CPUFUNC(op_81d0_0), 33232 }, /* DIVS */ -{ CPUFUNC(op_81d8_0), 33240 }, /* DIVS */ -{ CPUFUNC(op_81e0_0), 33248 }, /* DIVS */ -{ CPUFUNC(op_81e8_0), 33256 }, /* DIVS */ -{ CPUFUNC(op_81f0_0), 33264 }, /* DIVS */ -{ CPUFUNC(op_81f8_0), 33272 }, /* DIVS */ -{ CPUFUNC(op_81f9_0), 33273 }, /* DIVS */ -{ CPUFUNC(op_81fa_0), 33274 }, /* DIVS */ -{ CPUFUNC(op_81fb_0), 33275 }, /* DIVS */ -{ CPUFUNC(op_81fc_0), 33276 }, /* DIVS */ -{ CPUFUNC(op_9000_0), 36864 }, /* SUB */ -{ CPUFUNC(op_9010_0), 36880 }, /* SUB */ -{ CPUFUNC(op_9018_0), 36888 }, /* SUB */ -{ CPUFUNC(op_9020_0), 36896 }, /* SUB */ -{ CPUFUNC(op_9028_0), 36904 }, /* SUB */ -{ CPUFUNC(op_9030_0), 36912 }, /* SUB */ -{ CPUFUNC(op_9038_0), 36920 }, /* SUB */ -{ CPUFUNC(op_9039_0), 36921 }, /* SUB */ -{ CPUFUNC(op_903a_0), 36922 }, /* SUB */ -{ CPUFUNC(op_903b_0), 36923 }, /* SUB */ -{ CPUFUNC(op_903c_0), 36924 }, /* SUB */ -{ CPUFUNC(op_9040_0), 36928 }, /* SUB */ -{ CPUFUNC(op_9048_0), 36936 }, /* SUB */ -{ CPUFUNC(op_9050_0), 36944 }, /* SUB */ -{ CPUFUNC(op_9058_0), 36952 }, /* SUB */ -{ CPUFUNC(op_9060_0), 36960 }, /* SUB */ -{ CPUFUNC(op_9068_0), 36968 }, /* SUB */ -{ CPUFUNC(op_9070_0), 36976 }, /* SUB */ -{ CPUFUNC(op_9078_0), 36984 }, /* SUB */ -{ CPUFUNC(op_9079_0), 36985 }, /* SUB */ -{ CPUFUNC(op_907a_0), 36986 }, /* SUB */ -{ CPUFUNC(op_907b_0), 36987 }, /* SUB */ -{ CPUFUNC(op_907c_0), 36988 }, /* SUB */ -{ CPUFUNC(op_9080_0), 36992 }, /* SUB */ -{ CPUFUNC(op_9088_0), 37000 }, /* SUB */ -{ CPUFUNC(op_9090_0), 37008 }, /* SUB */ -{ CPUFUNC(op_9098_0), 37016 }, /* SUB */ -{ CPUFUNC(op_90a0_0), 37024 }, /* SUB */ -{ CPUFUNC(op_90a8_0), 37032 }, /* SUB */ -{ CPUFUNC(op_90b0_0), 37040 }, /* SUB */ -{ CPUFUNC(op_90b8_0), 37048 }, /* SUB */ -{ CPUFUNC(op_90b9_0), 37049 }, /* SUB */ -{ CPUFUNC(op_90ba_0), 37050 }, /* SUB */ -{ CPUFUNC(op_90bb_0), 37051 }, /* SUB */ -{ CPUFUNC(op_90bc_0), 37052 }, /* SUB */ -{ CPUFUNC(op_90c0_0), 37056 }, /* SUBA */ -{ CPUFUNC(op_90c8_0), 37064 }, /* SUBA */ -{ CPUFUNC(op_90d0_0), 37072 }, /* SUBA */ -{ CPUFUNC(op_90d8_0), 37080 }, /* SUBA */ -{ CPUFUNC(op_90e0_0), 37088 }, /* SUBA */ -{ CPUFUNC(op_90e8_0), 37096 }, /* SUBA */ -{ CPUFUNC(op_90f0_0), 37104 }, /* SUBA */ -{ CPUFUNC(op_90f8_0), 37112 }, /* SUBA */ -{ CPUFUNC(op_90f9_0), 37113 }, /* SUBA */ -{ CPUFUNC(op_90fa_0), 37114 }, /* SUBA */ -{ CPUFUNC(op_90fb_0), 37115 }, /* SUBA */ -{ CPUFUNC(op_90fc_0), 37116 }, /* SUBA */ -{ CPUFUNC(op_9100_0), 37120 }, /* SUBX */ -{ CPUFUNC(op_9108_0), 37128 }, /* SUBX */ -{ CPUFUNC(op_9110_0), 37136 }, /* SUB */ -{ CPUFUNC(op_9118_0), 37144 }, /* SUB */ -{ CPUFUNC(op_9120_0), 37152 }, /* SUB */ -{ CPUFUNC(op_9128_0), 37160 }, /* SUB */ -{ CPUFUNC(op_9130_0), 37168 }, /* SUB */ -{ CPUFUNC(op_9138_0), 37176 }, /* SUB */ -{ CPUFUNC(op_9139_0), 37177 }, /* SUB */ -{ CPUFUNC(op_9140_0), 37184 }, /* SUBX */ -{ CPUFUNC(op_9148_0), 37192 }, /* SUBX */ -{ CPUFUNC(op_9150_0), 37200 }, /* SUB */ -{ CPUFUNC(op_9158_0), 37208 }, /* SUB */ -{ CPUFUNC(op_9160_0), 37216 }, /* SUB */ -{ CPUFUNC(op_9168_0), 37224 }, /* SUB */ -{ CPUFUNC(op_9170_0), 37232 }, /* SUB */ -{ CPUFUNC(op_9178_0), 37240 }, /* SUB */ -{ CPUFUNC(op_9179_0), 37241 }, /* SUB */ -{ CPUFUNC(op_9180_0), 37248 }, /* SUBX */ -{ CPUFUNC(op_9188_0), 37256 }, /* SUBX */ -{ CPUFUNC(op_9190_0), 37264 }, /* SUB */ -{ CPUFUNC(op_9198_0), 37272 }, /* SUB */ -{ CPUFUNC(op_91a0_0), 37280 }, /* SUB */ -{ CPUFUNC(op_91a8_0), 37288 }, /* SUB */ -{ CPUFUNC(op_91b0_0), 37296 }, /* SUB */ -{ CPUFUNC(op_91b8_0), 37304 }, /* SUB */ -{ CPUFUNC(op_91b9_0), 37305 }, /* SUB */ -{ CPUFUNC(op_91c0_0), 37312 }, /* SUBA */ -{ CPUFUNC(op_91c8_0), 37320 }, /* SUBA */ -{ CPUFUNC(op_91d0_0), 37328 }, /* SUBA */ -{ CPUFUNC(op_91d8_0), 37336 }, /* SUBA */ -{ CPUFUNC(op_91e0_0), 37344 }, /* SUBA */ -{ CPUFUNC(op_91e8_0), 37352 }, /* SUBA */ -{ CPUFUNC(op_91f0_0), 37360 }, /* SUBA */ -{ CPUFUNC(op_91f8_0), 37368 }, /* SUBA */ -{ CPUFUNC(op_91f9_0), 37369 }, /* SUBA */ -{ CPUFUNC(op_91fa_0), 37370 }, /* SUBA */ -{ CPUFUNC(op_91fb_0), 37371 }, /* SUBA */ -{ CPUFUNC(op_91fc_0), 37372 }, /* SUBA */ -{ CPUFUNC(op_b000_0), 45056 }, /* CMP */ -{ CPUFUNC(op_b010_0), 45072 }, /* CMP */ -{ CPUFUNC(op_b018_0), 45080 }, /* CMP */ -{ CPUFUNC(op_b020_0), 45088 }, /* CMP */ -{ CPUFUNC(op_b028_0), 45096 }, /* CMP */ -{ CPUFUNC(op_b030_0), 45104 }, /* CMP */ -{ CPUFUNC(op_b038_0), 45112 }, /* CMP */ -{ CPUFUNC(op_b039_0), 45113 }, /* CMP */ -{ CPUFUNC(op_b03a_0), 45114 }, /* CMP */ -{ CPUFUNC(op_b03b_0), 45115 }, /* CMP */ -{ CPUFUNC(op_b03c_0), 45116 }, /* CMP */ -{ CPUFUNC(op_b040_0), 45120 }, /* CMP */ -{ CPUFUNC(op_b048_0), 45128 }, /* CMP */ -{ CPUFUNC(op_b050_0), 45136 }, /* CMP */ -{ CPUFUNC(op_b058_0), 45144 }, /* CMP */ -{ CPUFUNC(op_b060_0), 45152 }, /* CMP */ -{ CPUFUNC(op_b068_0), 45160 }, /* CMP */ -{ CPUFUNC(op_b070_0), 45168 }, /* CMP */ -{ CPUFUNC(op_b078_0), 45176 }, /* CMP */ -{ CPUFUNC(op_b079_0), 45177 }, /* CMP */ -{ CPUFUNC(op_b07a_0), 45178 }, /* CMP */ -{ CPUFUNC(op_b07b_0), 45179 }, /* CMP */ -{ CPUFUNC(op_b07c_0), 45180 }, /* CMP */ -{ CPUFUNC(op_b080_0), 45184 }, /* CMP */ -{ CPUFUNC(op_b088_0), 45192 }, /* CMP */ -{ CPUFUNC(op_b090_0), 45200 }, /* CMP */ -{ CPUFUNC(op_b098_0), 45208 }, /* CMP */ -{ CPUFUNC(op_b0a0_0), 45216 }, /* CMP */ -{ CPUFUNC(op_b0a8_0), 45224 }, /* CMP */ -{ CPUFUNC(op_b0b0_0), 45232 }, /* CMP */ -{ CPUFUNC(op_b0b8_0), 45240 }, /* CMP */ -{ CPUFUNC(op_b0b9_0), 45241 }, /* CMP */ -{ CPUFUNC(op_b0ba_0), 45242 }, /* CMP */ -{ CPUFUNC(op_b0bb_0), 45243 }, /* CMP */ -{ CPUFUNC(op_b0bc_0), 45244 }, /* CMP */ -{ CPUFUNC(op_b0c0_0), 45248 }, /* CMPA */ -{ CPUFUNC(op_b0c8_0), 45256 }, /* CMPA */ -{ CPUFUNC(op_b0d0_0), 45264 }, /* CMPA */ -{ CPUFUNC(op_b0d8_0), 45272 }, /* CMPA */ -{ CPUFUNC(op_b0e0_0), 45280 }, /* CMPA */ -{ CPUFUNC(op_b0e8_0), 45288 }, /* CMPA */ -{ CPUFUNC(op_b0f0_0), 45296 }, /* CMPA */ -{ CPUFUNC(op_b0f8_0), 45304 }, /* CMPA */ -{ CPUFUNC(op_b0f9_0), 45305 }, /* CMPA */ -{ CPUFUNC(op_b0fa_0), 45306 }, /* CMPA */ -{ CPUFUNC(op_b0fb_0), 45307 }, /* CMPA */ -{ CPUFUNC(op_b0fc_0), 45308 }, /* CMPA */ -{ CPUFUNC(op_b100_0), 45312 }, /* EOR */ -{ CPUFUNC(op_b108_0), 45320 }, /* CMPM */ -{ CPUFUNC(op_b110_0), 45328 }, /* EOR */ -{ CPUFUNC(op_b118_0), 45336 }, /* EOR */ -{ CPUFUNC(op_b120_0), 45344 }, /* EOR */ -{ CPUFUNC(op_b128_0), 45352 }, /* EOR */ -{ CPUFUNC(op_b130_0), 45360 }, /* EOR */ -{ CPUFUNC(op_b138_0), 45368 }, /* EOR */ -{ CPUFUNC(op_b139_0), 45369 }, /* EOR */ -{ CPUFUNC(op_b140_0), 45376 }, /* EOR */ -{ CPUFUNC(op_b148_0), 45384 }, /* CMPM */ -{ CPUFUNC(op_b150_0), 45392 }, /* EOR */ -{ CPUFUNC(op_b158_0), 45400 }, /* EOR */ -{ CPUFUNC(op_b160_0), 45408 }, /* EOR */ -{ CPUFUNC(op_b168_0), 45416 }, /* EOR */ -{ CPUFUNC(op_b170_0), 45424 }, /* EOR */ -{ CPUFUNC(op_b178_0), 45432 }, /* EOR */ -{ CPUFUNC(op_b179_0), 45433 }, /* EOR */ -{ CPUFUNC(op_b180_0), 45440 }, /* EOR */ -{ CPUFUNC(op_b188_0), 45448 }, /* CMPM */ -{ CPUFUNC(op_b190_0), 45456 }, /* EOR */ -{ CPUFUNC(op_b198_0), 45464 }, /* EOR */ -{ CPUFUNC(op_b1a0_0), 45472 }, /* EOR */ -{ CPUFUNC(op_b1a8_0), 45480 }, /* EOR */ -{ CPUFUNC(op_b1b0_0), 45488 }, /* EOR */ -{ CPUFUNC(op_b1b8_0), 45496 }, /* EOR */ -{ CPUFUNC(op_b1b9_0), 45497 }, /* EOR */ -{ CPUFUNC(op_b1c0_0), 45504 }, /* CMPA */ -{ CPUFUNC(op_b1c8_0), 45512 }, /* CMPA */ -{ CPUFUNC(op_b1d0_0), 45520 }, /* CMPA */ -{ CPUFUNC(op_b1d8_0), 45528 }, /* CMPA */ -{ CPUFUNC(op_b1e0_0), 45536 }, /* CMPA */ -{ CPUFUNC(op_b1e8_0), 45544 }, /* CMPA */ -{ CPUFUNC(op_b1f0_0), 45552 }, /* CMPA */ -{ CPUFUNC(op_b1f8_0), 45560 }, /* CMPA */ -{ CPUFUNC(op_b1f9_0), 45561 }, /* CMPA */ -{ CPUFUNC(op_b1fa_0), 45562 }, /* CMPA */ -{ CPUFUNC(op_b1fb_0), 45563 }, /* CMPA */ -{ CPUFUNC(op_b1fc_0), 45564 }, /* CMPA */ -{ CPUFUNC(op_c000_0), 49152 }, /* AND */ -{ CPUFUNC(op_c010_0), 49168 }, /* AND */ -{ CPUFUNC(op_c018_0), 49176 }, /* AND */ -{ CPUFUNC(op_c020_0), 49184 }, /* AND */ -{ CPUFUNC(op_c028_0), 49192 }, /* AND */ -{ CPUFUNC(op_c030_0), 49200 }, /* AND */ -{ CPUFUNC(op_c038_0), 49208 }, /* AND */ -{ CPUFUNC(op_c039_0), 49209 }, /* AND */ -{ CPUFUNC(op_c03a_0), 49210 }, /* AND */ -{ CPUFUNC(op_c03b_0), 49211 }, /* AND */ -{ CPUFUNC(op_c03c_0), 49212 }, /* AND */ -{ CPUFUNC(op_c040_0), 49216 }, /* AND */ -{ CPUFUNC(op_c050_0), 49232 }, /* AND */ -{ CPUFUNC(op_c058_0), 49240 }, /* AND */ -{ CPUFUNC(op_c060_0), 49248 }, /* AND */ -{ CPUFUNC(op_c068_0), 49256 }, /* AND */ -{ CPUFUNC(op_c070_0), 49264 }, /* AND */ -{ CPUFUNC(op_c078_0), 49272 }, /* AND */ -{ CPUFUNC(op_c079_0), 49273 }, /* AND */ -{ CPUFUNC(op_c07a_0), 49274 }, /* AND */ -{ CPUFUNC(op_c07b_0), 49275 }, /* AND */ -{ CPUFUNC(op_c07c_0), 49276 }, /* AND */ -{ CPUFUNC(op_c080_0), 49280 }, /* AND */ -{ CPUFUNC(op_c090_0), 49296 }, /* AND */ -{ CPUFUNC(op_c098_0), 49304 }, /* AND */ -{ CPUFUNC(op_c0a0_0), 49312 }, /* AND */ -{ CPUFUNC(op_c0a8_0), 49320 }, /* AND */ -{ CPUFUNC(op_c0b0_0), 49328 }, /* AND */ -{ CPUFUNC(op_c0b8_0), 49336 }, /* AND */ -{ CPUFUNC(op_c0b9_0), 49337 }, /* AND */ -{ CPUFUNC(op_c0ba_0), 49338 }, /* AND */ -{ CPUFUNC(op_c0bb_0), 49339 }, /* AND */ -{ CPUFUNC(op_c0bc_0), 49340 }, /* AND */ -{ CPUFUNC(op_c0c0_0), 49344 }, /* MULU */ -{ CPUFUNC(op_c0d0_0), 49360 }, /* MULU */ -{ CPUFUNC(op_c0d8_0), 49368 }, /* MULU */ -{ CPUFUNC(op_c0e0_0), 49376 }, /* MULU */ -{ CPUFUNC(op_c0e8_0), 49384 }, /* MULU */ -{ CPUFUNC(op_c0f0_0), 49392 }, /* MULU */ -{ CPUFUNC(op_c0f8_0), 49400 }, /* MULU */ -{ CPUFUNC(op_c0f9_0), 49401 }, /* MULU */ -{ CPUFUNC(op_c0fa_0), 49402 }, /* MULU */ -{ CPUFUNC(op_c0fb_0), 49403 }, /* MULU */ -{ CPUFUNC(op_c0fc_0), 49404 }, /* MULU */ -{ CPUFUNC(op_c100_0), 49408 }, /* ABCD */ -{ CPUFUNC(op_c108_0), 49416 }, /* ABCD */ -{ CPUFUNC(op_c110_0), 49424 }, /* AND */ -{ CPUFUNC(op_c118_0), 49432 }, /* AND */ -{ CPUFUNC(op_c120_0), 49440 }, /* AND */ -{ CPUFUNC(op_c128_0), 49448 }, /* AND */ -{ CPUFUNC(op_c130_0), 49456 }, /* AND */ -{ CPUFUNC(op_c138_0), 49464 }, /* AND */ -{ CPUFUNC(op_c139_0), 49465 }, /* AND */ -{ CPUFUNC(op_c140_0), 49472 }, /* EXG */ -{ CPUFUNC(op_c148_0), 49480 }, /* EXG */ -{ CPUFUNC(op_c150_0), 49488 }, /* AND */ -{ CPUFUNC(op_c158_0), 49496 }, /* AND */ -{ CPUFUNC(op_c160_0), 49504 }, /* AND */ -{ CPUFUNC(op_c168_0), 49512 }, /* AND */ -{ CPUFUNC(op_c170_0), 49520 }, /* AND */ -{ CPUFUNC(op_c178_0), 49528 }, /* AND */ -{ CPUFUNC(op_c179_0), 49529 }, /* AND */ -{ CPUFUNC(op_c188_0), 49544 }, /* EXG */ -{ CPUFUNC(op_c190_0), 49552 }, /* AND */ -{ CPUFUNC(op_c198_0), 49560 }, /* AND */ -{ CPUFUNC(op_c1a0_0), 49568 }, /* AND */ -{ CPUFUNC(op_c1a8_0), 49576 }, /* AND */ -{ CPUFUNC(op_c1b0_0), 49584 }, /* AND */ -{ CPUFUNC(op_c1b8_0), 49592 }, /* AND */ -{ CPUFUNC(op_c1b9_0), 49593 }, /* AND */ -{ CPUFUNC(op_c1c0_0), 49600 }, /* MULS */ -{ CPUFUNC(op_c1d0_0), 49616 }, /* MULS */ -{ CPUFUNC(op_c1d8_0), 49624 }, /* MULS */ -{ CPUFUNC(op_c1e0_0), 49632 }, /* MULS */ -{ CPUFUNC(op_c1e8_0), 49640 }, /* MULS */ -{ CPUFUNC(op_c1f0_0), 49648 }, /* MULS */ -{ CPUFUNC(op_c1f8_0), 49656 }, /* MULS */ -{ CPUFUNC(op_c1f9_0), 49657 }, /* MULS */ -{ CPUFUNC(op_c1fa_0), 49658 }, /* MULS */ -{ CPUFUNC(op_c1fb_0), 49659 }, /* MULS */ -{ CPUFUNC(op_c1fc_0), 49660 }, /* MULS */ -{ CPUFUNC(op_d000_0), 53248 }, /* ADD */ -{ CPUFUNC(op_d010_0), 53264 }, /* ADD */ -{ CPUFUNC(op_d018_0), 53272 }, /* ADD */ -{ CPUFUNC(op_d020_0), 53280 }, /* ADD */ -{ CPUFUNC(op_d028_0), 53288 }, /* ADD */ -{ CPUFUNC(op_d030_0), 53296 }, /* ADD */ -{ CPUFUNC(op_d038_0), 53304 }, /* ADD */ -{ CPUFUNC(op_d039_0), 53305 }, /* ADD */ -{ CPUFUNC(op_d03a_0), 53306 }, /* ADD */ -{ CPUFUNC(op_d03b_0), 53307 }, /* ADD */ -{ CPUFUNC(op_d03c_0), 53308 }, /* ADD */ -{ CPUFUNC(op_d040_0), 53312 }, /* ADD */ -{ CPUFUNC(op_d048_0), 53320 }, /* ADD */ -{ CPUFUNC(op_d050_0), 53328 }, /* ADD */ -{ CPUFUNC(op_d058_0), 53336 }, /* ADD */ -{ CPUFUNC(op_d060_0), 53344 }, /* ADD */ -{ CPUFUNC(op_d068_0), 53352 }, /* ADD */ -{ CPUFUNC(op_d070_0), 53360 }, /* ADD */ -{ CPUFUNC(op_d078_0), 53368 }, /* ADD */ -{ CPUFUNC(op_d079_0), 53369 }, /* ADD */ -{ CPUFUNC(op_d07a_0), 53370 }, /* ADD */ -{ CPUFUNC(op_d07b_0), 53371 }, /* ADD */ -{ CPUFUNC(op_d07c_0), 53372 }, /* ADD */ -{ CPUFUNC(op_d080_0), 53376 }, /* ADD */ -{ CPUFUNC(op_d088_0), 53384 }, /* ADD */ -{ CPUFUNC(op_d090_0), 53392 }, /* ADD */ -{ CPUFUNC(op_d098_0), 53400 }, /* ADD */ -{ CPUFUNC(op_d0a0_0), 53408 }, /* ADD */ -{ CPUFUNC(op_d0a8_0), 53416 }, /* ADD */ -{ CPUFUNC(op_d0b0_0), 53424 }, /* ADD */ -{ CPUFUNC(op_d0b8_0), 53432 }, /* ADD */ -{ CPUFUNC(op_d0b9_0), 53433 }, /* ADD */ -{ CPUFUNC(op_d0ba_0), 53434 }, /* ADD */ -{ CPUFUNC(op_d0bb_0), 53435 }, /* ADD */ -{ CPUFUNC(op_d0bc_0), 53436 }, /* ADD */ -{ CPUFUNC(op_d0c0_0), 53440 }, /* ADDA */ -{ CPUFUNC(op_d0c8_0), 53448 }, /* ADDA */ -{ CPUFUNC(op_d0d0_0), 53456 }, /* ADDA */ -{ CPUFUNC(op_d0d8_0), 53464 }, /* ADDA */ -{ CPUFUNC(op_d0e0_0), 53472 }, /* ADDA */ -{ CPUFUNC(op_d0e8_0), 53480 }, /* ADDA */ -{ CPUFUNC(op_d0f0_0), 53488 }, /* ADDA */ -{ CPUFUNC(op_d0f8_0), 53496 }, /* ADDA */ -{ CPUFUNC(op_d0f9_0), 53497 }, /* ADDA */ -{ CPUFUNC(op_d0fa_0), 53498 }, /* ADDA */ -{ CPUFUNC(op_d0fb_0), 53499 }, /* ADDA */ -{ CPUFUNC(op_d0fc_0), 53500 }, /* ADDA */ -{ CPUFUNC(op_d100_0), 53504 }, /* ADDX */ -{ CPUFUNC(op_d108_0), 53512 }, /* ADDX */ -{ CPUFUNC(op_d110_0), 53520 }, /* ADD */ -{ CPUFUNC(op_d118_0), 53528 }, /* ADD */ -{ CPUFUNC(op_d120_0), 53536 }, /* ADD */ -{ CPUFUNC(op_d128_0), 53544 }, /* ADD */ -{ CPUFUNC(op_d130_0), 53552 }, /* ADD */ -{ CPUFUNC(op_d138_0), 53560 }, /* ADD */ -{ CPUFUNC(op_d139_0), 53561 }, /* ADD */ -{ CPUFUNC(op_d140_0), 53568 }, /* ADDX */ -{ CPUFUNC(op_d148_0), 53576 }, /* ADDX */ -{ CPUFUNC(op_d150_0), 53584 }, /* ADD */ -{ CPUFUNC(op_d158_0), 53592 }, /* ADD */ -{ CPUFUNC(op_d160_0), 53600 }, /* ADD */ -{ CPUFUNC(op_d168_0), 53608 }, /* ADD */ -{ CPUFUNC(op_d170_0), 53616 }, /* ADD */ -{ CPUFUNC(op_d178_0), 53624 }, /* ADD */ -{ CPUFUNC(op_d179_0), 53625 }, /* ADD */ -{ CPUFUNC(op_d180_0), 53632 }, /* ADDX */ -{ CPUFUNC(op_d188_0), 53640 }, /* ADDX */ -{ CPUFUNC(op_d190_0), 53648 }, /* ADD */ -{ CPUFUNC(op_d198_0), 53656 }, /* ADD */ -{ CPUFUNC(op_d1a0_0), 53664 }, /* ADD */ -{ CPUFUNC(op_d1a8_0), 53672 }, /* ADD */ -{ CPUFUNC(op_d1b0_0), 53680 }, /* ADD */ -{ CPUFUNC(op_d1b8_0), 53688 }, /* ADD */ -{ CPUFUNC(op_d1b9_0), 53689 }, /* ADD */ -{ CPUFUNC(op_d1c0_0), 53696 }, /* ADDA */ -{ CPUFUNC(op_d1c8_0), 53704 }, /* ADDA */ -{ CPUFUNC(op_d1d0_0), 53712 }, /* ADDA */ -{ CPUFUNC(op_d1d8_0), 53720 }, /* ADDA */ -{ CPUFUNC(op_d1e0_0), 53728 }, /* ADDA */ -{ CPUFUNC(op_d1e8_0), 53736 }, /* ADDA */ -{ CPUFUNC(op_d1f0_0), 53744 }, /* ADDA */ -{ CPUFUNC(op_d1f8_0), 53752 }, /* ADDA */ -{ CPUFUNC(op_d1f9_0), 53753 }, /* ADDA */ -{ CPUFUNC(op_d1fa_0), 53754 }, /* ADDA */ -{ CPUFUNC(op_d1fb_0), 53755 }, /* ADDA */ -{ CPUFUNC(op_d1fc_0), 53756 }, /* ADDA */ -{ CPUFUNC(op_e000_0), 57344 }, /* ASR */ -{ CPUFUNC(op_e008_0), 57352 }, /* LSR */ -{ CPUFUNC(op_e010_0), 57360 }, /* ROXR */ -{ CPUFUNC(op_e018_0), 57368 }, /* ROR */ -{ CPUFUNC(op_e020_0), 57376 }, /* ASR */ -{ CPUFUNC(op_e028_0), 57384 }, /* LSR */ -{ CPUFUNC(op_e030_0), 57392 }, /* ROXR */ -{ CPUFUNC(op_e038_0), 57400 }, /* ROR */ -{ CPUFUNC(op_e040_0), 57408 }, /* ASR */ -{ CPUFUNC(op_e048_0), 57416 }, /* LSR */ -{ CPUFUNC(op_e050_0), 57424 }, /* ROXR */ -{ CPUFUNC(op_e058_0), 57432 }, /* ROR */ -{ CPUFUNC(op_e060_0), 57440 }, /* ASR */ -{ CPUFUNC(op_e068_0), 57448 }, /* LSR */ -{ CPUFUNC(op_e070_0), 57456 }, /* ROXR */ -{ CPUFUNC(op_e078_0), 57464 }, /* ROR */ -{ CPUFUNC(op_e080_0), 57472 }, /* ASR */ -{ CPUFUNC(op_e088_0), 57480 }, /* LSR */ -{ CPUFUNC(op_e090_0), 57488 }, /* ROXR */ -{ CPUFUNC(op_e098_0), 57496 }, /* ROR */ -{ CPUFUNC(op_e0a0_0), 57504 }, /* ASR */ -{ CPUFUNC(op_e0a8_0), 57512 }, /* LSR */ -{ CPUFUNC(op_e0b0_0), 57520 }, /* ROXR */ -{ CPUFUNC(op_e0b8_0), 57528 }, /* ROR */ -{ CPUFUNC(op_e0d0_0), 57552 }, /* ASRW */ -{ CPUFUNC(op_e0d8_0), 57560 }, /* ASRW */ -{ CPUFUNC(op_e0e0_0), 57568 }, /* ASRW */ -{ CPUFUNC(op_e0e8_0), 57576 }, /* ASRW */ -{ CPUFUNC(op_e0f0_0), 57584 }, /* ASRW */ -{ CPUFUNC(op_e0f8_0), 57592 }, /* ASRW */ -{ CPUFUNC(op_e0f9_0), 57593 }, /* ASRW */ -{ CPUFUNC(op_e100_0), 57600 }, /* ASL */ -{ CPUFUNC(op_e108_0), 57608 }, /* LSL */ -{ CPUFUNC(op_e110_0), 57616 }, /* ROXL */ -{ CPUFUNC(op_e118_0), 57624 }, /* ROL */ -{ CPUFUNC(op_e120_0), 57632 }, /* ASL */ -{ CPUFUNC(op_e128_0), 57640 }, /* LSL */ -{ CPUFUNC(op_e130_0), 57648 }, /* ROXL */ -{ CPUFUNC(op_e138_0), 57656 }, /* ROL */ -{ CPUFUNC(op_e140_0), 57664 }, /* ASL */ -{ CPUFUNC(op_e148_0), 57672 }, /* LSL */ -{ CPUFUNC(op_e150_0), 57680 }, /* ROXL */ -{ CPUFUNC(op_e158_0), 57688 }, /* ROL */ -{ CPUFUNC(op_e160_0), 57696 }, /* ASL */ -{ CPUFUNC(op_e168_0), 57704 }, /* LSL */ -{ CPUFUNC(op_e170_0), 57712 }, /* ROXL */ -{ CPUFUNC(op_e178_0), 57720 }, /* ROL */ -{ CPUFUNC(op_e180_0), 57728 }, /* ASL */ -{ CPUFUNC(op_e188_0), 57736 }, /* LSL */ -{ CPUFUNC(op_e190_0), 57744 }, /* ROXL */ -{ CPUFUNC(op_e198_0), 57752 }, /* ROL */ -{ CPUFUNC(op_e1a0_0), 57760 }, /* ASL */ -{ CPUFUNC(op_e1a8_0), 57768 }, /* LSL */ -{ CPUFUNC(op_e1b0_0), 57776 }, /* ROXL */ -{ CPUFUNC(op_e1b8_0), 57784 }, /* ROL */ -{ CPUFUNC(op_e1d0_0), 57808 }, /* ASLW */ -{ CPUFUNC(op_e1d8_0), 57816 }, /* ASLW */ -{ CPUFUNC(op_e1e0_0), 57824 }, /* ASLW */ -{ CPUFUNC(op_e1e8_0), 57832 }, /* ASLW */ -{ CPUFUNC(op_e1f0_0), 57840 }, /* ASLW */ -{ CPUFUNC(op_e1f8_0), 57848 }, /* ASLW */ -{ CPUFUNC(op_e1f9_0), 57849 }, /* ASLW */ -{ CPUFUNC(op_e2d0_0), 58064 }, /* LSRW */ -{ CPUFUNC(op_e2d8_0), 58072 }, /* LSRW */ -{ CPUFUNC(op_e2e0_0), 58080 }, /* LSRW */ -{ CPUFUNC(op_e2e8_0), 58088 }, /* LSRW */ -{ CPUFUNC(op_e2f0_0), 58096 }, /* LSRW */ -{ CPUFUNC(op_e2f8_0), 58104 }, /* LSRW */ -{ CPUFUNC(op_e2f9_0), 58105 }, /* LSRW */ -{ CPUFUNC(op_e3d0_0), 58320 }, /* LSLW */ -{ CPUFUNC(op_e3d8_0), 58328 }, /* LSLW */ -{ CPUFUNC(op_e3e0_0), 58336 }, /* LSLW */ -{ CPUFUNC(op_e3e8_0), 58344 }, /* LSLW */ -{ CPUFUNC(op_e3f0_0), 58352 }, /* LSLW */ -{ CPUFUNC(op_e3f8_0), 58360 }, /* LSLW */ -{ CPUFUNC(op_e3f9_0), 58361 }, /* LSLW */ -{ CPUFUNC(op_e4d0_0), 58576 }, /* ROXRW */ -{ CPUFUNC(op_e4d8_0), 58584 }, /* ROXRW */ -{ CPUFUNC(op_e4e0_0), 58592 }, /* ROXRW */ -{ CPUFUNC(op_e4e8_0), 58600 }, /* ROXRW */ -{ CPUFUNC(op_e4f0_0), 58608 }, /* ROXRW */ -{ CPUFUNC(op_e4f8_0), 58616 }, /* ROXRW */ -{ CPUFUNC(op_e4f9_0), 58617 }, /* ROXRW */ -{ CPUFUNC(op_e5d0_0), 58832 }, /* ROXLW */ -{ CPUFUNC(op_e5d8_0), 58840 }, /* ROXLW */ -{ CPUFUNC(op_e5e0_0), 58848 }, /* ROXLW */ -{ CPUFUNC(op_e5e8_0), 58856 }, /* ROXLW */ -{ CPUFUNC(op_e5f0_0), 58864 }, /* ROXLW */ -{ CPUFUNC(op_e5f8_0), 58872 }, /* ROXLW */ -{ CPUFUNC(op_e5f9_0), 58873 }, /* ROXLW */ -{ CPUFUNC(op_e6d0_0), 59088 }, /* RORW */ -{ CPUFUNC(op_e6d8_0), 59096 }, /* RORW */ -{ CPUFUNC(op_e6e0_0), 59104 }, /* RORW */ -{ CPUFUNC(op_e6e8_0), 59112 }, /* RORW */ -{ CPUFUNC(op_e6f0_0), 59120 }, /* RORW */ -{ CPUFUNC(op_e6f8_0), 59128 }, /* RORW */ -{ CPUFUNC(op_e6f9_0), 59129 }, /* RORW */ -{ CPUFUNC(op_e7d0_0), 59344 }, /* ROLW */ -{ CPUFUNC(op_e7d8_0), 59352 }, /* ROLW */ -{ CPUFUNC(op_e7e0_0), 59360 }, /* ROLW */ -{ CPUFUNC(op_e7e8_0), 59368 }, /* ROLW */ -{ CPUFUNC(op_e7f0_0), 59376 }, /* ROLW */ -{ CPUFUNC(op_e7f8_0), 59384 }, /* ROLW */ -{ CPUFUNC(op_e7f9_0), 59385 }, /* ROLW */ -{ CPUFUNC(op_e8c0_0), 59584 }, /* BFTST */ -{ CPUFUNC(op_e8d0_0), 59600 }, /* BFTST */ -{ CPUFUNC(op_e8e8_0), 59624 }, /* BFTST */ -{ CPUFUNC(op_e8f0_0), 59632 }, /* BFTST */ -{ CPUFUNC(op_e8f8_0), 59640 }, /* BFTST */ -{ CPUFUNC(op_e8f9_0), 59641 }, /* BFTST */ -{ CPUFUNC(op_e8fa_0), 59642 }, /* BFTST */ -{ CPUFUNC(op_e8fb_0), 59643 }, /* BFTST */ -{ CPUFUNC(op_e9c0_0), 59840 }, /* BFEXTU */ -{ CPUFUNC(op_e9d0_0), 59856 }, /* BFEXTU */ -{ CPUFUNC(op_e9e8_0), 59880 }, /* BFEXTU */ -{ CPUFUNC(op_e9f0_0), 59888 }, /* BFEXTU */ -{ CPUFUNC(op_e9f8_0), 59896 }, /* BFEXTU */ -{ CPUFUNC(op_e9f9_0), 59897 }, /* BFEXTU */ -{ CPUFUNC(op_e9fa_0), 59898 }, /* BFEXTU */ -{ CPUFUNC(op_e9fb_0), 59899 }, /* BFEXTU */ -{ CPUFUNC(op_eac0_0), 60096 }, /* BFCHG */ -{ CPUFUNC(op_ead0_0), 60112 }, /* BFCHG */ -{ CPUFUNC(op_eae8_0), 60136 }, /* BFCHG */ -{ CPUFUNC(op_eaf0_0), 60144 }, /* BFCHG */ -{ CPUFUNC(op_eaf8_0), 60152 }, /* BFCHG */ -{ CPUFUNC(op_eaf9_0), 60153 }, /* BFCHG */ -{ CPUFUNC(op_ebc0_0), 60352 }, /* BFEXTS */ -{ CPUFUNC(op_ebd0_0), 60368 }, /* BFEXTS */ -{ CPUFUNC(op_ebe8_0), 60392 }, /* BFEXTS */ -{ CPUFUNC(op_ebf0_0), 60400 }, /* BFEXTS */ -{ CPUFUNC(op_ebf8_0), 60408 }, /* BFEXTS */ -{ CPUFUNC(op_ebf9_0), 60409 }, /* BFEXTS */ -{ CPUFUNC(op_ebfa_0), 60410 }, /* BFEXTS */ -{ CPUFUNC(op_ebfb_0), 60411 }, /* BFEXTS */ -{ CPUFUNC(op_ecc0_0), 60608 }, /* BFCLR */ -{ CPUFUNC(op_ecd0_0), 60624 }, /* BFCLR */ -{ CPUFUNC(op_ece8_0), 60648 }, /* BFCLR */ -{ CPUFUNC(op_ecf0_0), 60656 }, /* BFCLR */ -{ CPUFUNC(op_ecf8_0), 60664 }, /* BFCLR */ -{ CPUFUNC(op_ecf9_0), 60665 }, /* BFCLR */ -{ CPUFUNC(op_edc0_0), 60864 }, /* BFFFO */ -{ CPUFUNC(op_edd0_0), 60880 }, /* BFFFO */ -{ CPUFUNC(op_ede8_0), 60904 }, /* BFFFO */ -{ CPUFUNC(op_edf0_0), 60912 }, /* BFFFO */ -{ CPUFUNC(op_edf8_0), 60920 }, /* BFFFO */ -{ CPUFUNC(op_edf9_0), 60921 }, /* BFFFO */ -{ CPUFUNC(op_edfa_0), 60922 }, /* BFFFO */ -{ CPUFUNC(op_edfb_0), 60923 }, /* BFFFO */ -{ CPUFUNC(op_eec0_0), 61120 }, /* BFSET */ -{ CPUFUNC(op_eed0_0), 61136 }, /* BFSET */ -{ CPUFUNC(op_eee8_0), 61160 }, /* BFSET */ -{ CPUFUNC(op_eef0_0), 61168 }, /* BFSET */ -{ CPUFUNC(op_eef8_0), 61176 }, /* BFSET */ -{ CPUFUNC(op_eef9_0), 61177 }, /* BFSET */ -{ CPUFUNC(op_efc0_0), 61376 }, /* BFINS */ -{ CPUFUNC(op_efd0_0), 61392 }, /* BFINS */ -{ CPUFUNC(op_efe8_0), 61416 }, /* BFINS */ -{ CPUFUNC(op_eff0_0), 61424 }, /* BFINS */ -{ CPUFUNC(op_eff8_0), 61432 }, /* BFINS */ -{ CPUFUNC(op_eff9_0), 61433 }, /* BFINS */ -{ CPUFUNC(op_f000_0), 61440 }, /* MMUOP030 */ -{ CPUFUNC(op_f008_0), 61448 }, /* MMUOP030 */ -{ CPUFUNC(op_f010_0), 61456 }, /* MMUOP030 */ -{ CPUFUNC(op_f018_0), 61464 }, /* MMUOP030 */ -{ CPUFUNC(op_f020_0), 61472 }, /* MMUOP030 */ -{ CPUFUNC(op_f028_0), 61480 }, /* MMUOP030 */ -{ CPUFUNC(op_f030_0), 61488 }, /* MMUOP030 */ -{ CPUFUNC(op_f038_0), 61496 }, /* MMUOP030 */ -{ CPUFUNC(op_f039_0), 61497 }, /* MMUOP030 */ -{ CPUFUNC(op_f200_0), 61952 }, /* FPP */ -{ CPUFUNC(op_f208_0), 61960 }, /* FPP */ -{ CPUFUNC(op_f210_0), 61968 }, /* FPP */ -{ CPUFUNC(op_f218_0), 61976 }, /* FPP */ -{ CPUFUNC(op_f220_0), 61984 }, /* FPP */ -{ CPUFUNC(op_f228_0), 61992 }, /* FPP */ -{ CPUFUNC(op_f230_0), 62000 }, /* FPP */ -{ CPUFUNC(op_f238_0), 62008 }, /* FPP */ -{ CPUFUNC(op_f239_0), 62009 }, /* FPP */ -{ CPUFUNC(op_f23a_0), 62010 }, /* FPP */ -{ CPUFUNC(op_f23b_0), 62011 }, /* FPP */ -{ CPUFUNC(op_f23c_0), 62012 }, /* FPP */ -{ CPUFUNC(op_f240_0), 62016 }, /* FScc */ -{ CPUFUNC(op_f248_0), 62024 }, /* FDBcc */ -{ CPUFUNC(op_f250_0), 62032 }, /* FScc */ -{ CPUFUNC(op_f258_0), 62040 }, /* FScc */ -{ CPUFUNC(op_f260_0), 62048 }, /* FScc */ -{ CPUFUNC(op_f268_0), 62056 }, /* FScc */ -{ CPUFUNC(op_f270_0), 62064 }, /* FScc */ -{ CPUFUNC(op_f278_0), 62072 }, /* FScc */ -{ CPUFUNC(op_f279_0), 62073 }, /* FScc */ -{ CPUFUNC(op_f27a_0), 62074 }, /* FTRAPcc */ -{ CPUFUNC(op_f27b_0), 62075 }, /* FTRAPcc */ -{ CPUFUNC(op_f27c_0), 62076 }, /* FTRAPcc */ -{ CPUFUNC(op_f280_0), 62080 }, /* FBcc */ -{ CPUFUNC(op_f2c0_0), 62144 }, /* FBcc */ -{ CPUFUNC(op_f310_0), 62224 }, /* FSAVE */ -{ CPUFUNC(op_f320_0), 62240 }, /* FSAVE */ -{ CPUFUNC(op_f328_0), 62248 }, /* FSAVE */ -{ CPUFUNC(op_f330_0), 62256 }, /* FSAVE */ -{ CPUFUNC(op_f338_0), 62264 }, /* FSAVE */ -{ CPUFUNC(op_f339_0), 62265 }, /* FSAVE */ -{ CPUFUNC(op_f350_0), 62288 }, /* FRESTORE */ -{ CPUFUNC(op_f358_0), 62296 }, /* FRESTORE */ -{ CPUFUNC(op_f368_0), 62312 }, /* FRESTORE */ -{ CPUFUNC(op_f370_0), 62320 }, /* FRESTORE */ -{ CPUFUNC(op_f378_0), 62328 }, /* FRESTORE */ -{ CPUFUNC(op_f379_0), 62329 }, /* FRESTORE */ -{ CPUFUNC(op_f37a_0), 62330 }, /* FRESTORE */ -{ CPUFUNC(op_f37b_0), 62331 }, /* FRESTORE */ -{ CPUFUNC(op_f408_0), 62472 }, /* CINVL */ -{ CPUFUNC(op_f410_0), 62480 }, /* CINVP */ -{ CPUFUNC(op_f418_0), 62488 }, /* CINVA */ -{ CPUFUNC(op_f419_0), 62489 }, /* CINVA */ -{ CPUFUNC(op_f41a_0), 62490 }, /* CINVA */ -{ CPUFUNC(op_f41b_0), 62491 }, /* CINVA */ -{ CPUFUNC(op_f41c_0), 62492 }, /* CINVA */ -{ CPUFUNC(op_f41d_0), 62493 }, /* CINVA */ -{ CPUFUNC(op_f41e_0), 62494 }, /* CINVA */ -{ CPUFUNC(op_f41f_0), 62495 }, /* CINVA */ -{ CPUFUNC(op_f428_0), 62504 }, /* CPUSHL */ -{ CPUFUNC(op_f430_0), 62512 }, /* CPUSHP */ -{ CPUFUNC(op_f438_0), 62520 }, /* CPUSHA */ -{ CPUFUNC(op_f439_0), 62521 }, /* CPUSHA */ -{ CPUFUNC(op_f43a_0), 62522 }, /* CPUSHA */ -{ CPUFUNC(op_f43b_0), 62523 }, /* CPUSHA */ -{ CPUFUNC(op_f43c_0), 62524 }, /* CPUSHA */ -{ CPUFUNC(op_f43d_0), 62525 }, /* CPUSHA */ -{ CPUFUNC(op_f43e_0), 62526 }, /* CPUSHA */ -{ CPUFUNC(op_f43f_0), 62527 }, /* CPUSHA */ -{ CPUFUNC(op_f500_0), 62720 }, /* PFLUSHN */ -{ CPUFUNC(op_f508_0), 62728 }, /* PFLUSH */ -{ CPUFUNC(op_f510_0), 62736 }, /* PFLUSHAN */ -{ CPUFUNC(op_f518_0), 62744 }, /* PFLUSHA */ -{ CPUFUNC(op_f548_0), 62792 }, /* PTESTR */ -{ CPUFUNC(op_f568_0), 62824 }, /* PTESTW */ -{ CPUFUNC(op_f600_0), 62976 }, /* MOVE16 */ -{ CPUFUNC(op_f608_0), 62984 }, /* MOVE16 */ -{ CPUFUNC(op_f610_0), 62992 }, /* MOVE16 */ -{ CPUFUNC(op_f618_0), 63000 }, /* MOVE16 */ -{ CPUFUNC(op_f620_0), 63008 }, /* MOVE16 */ -{ 0, 0 }}; -const struct cputbl CPUFUNC(op_smalltbl_2)[] = { -{ CPUFUNC(op_0000_0), 0 }, /* OR */ -{ CPUFUNC(op_0010_0), 16 }, /* OR */ -{ CPUFUNC(op_0018_0), 24 }, /* OR */ -{ CPUFUNC(op_0020_0), 32 }, /* OR */ -{ CPUFUNC(op_0028_0), 40 }, /* OR */ -{ CPUFUNC(op_0030_0), 48 }, /* OR */ -{ CPUFUNC(op_0038_0), 56 }, /* OR */ -{ CPUFUNC(op_0039_0), 57 }, /* OR */ -{ CPUFUNC(op_003c_0), 60 }, /* ORSR */ -{ CPUFUNC(op_0040_0), 64 }, /* OR */ -{ CPUFUNC(op_0050_0), 80 }, /* OR */ -{ CPUFUNC(op_0058_0), 88 }, /* OR */ -{ CPUFUNC(op_0060_0), 96 }, /* OR */ -{ CPUFUNC(op_0068_0), 104 }, /* OR */ -{ CPUFUNC(op_0070_0), 112 }, /* OR */ -{ CPUFUNC(op_0078_0), 120 }, /* OR */ -{ CPUFUNC(op_0079_0), 121 }, /* OR */ -{ CPUFUNC(op_007c_0), 124 }, /* ORSR */ -{ CPUFUNC(op_0080_0), 128 }, /* OR */ -{ CPUFUNC(op_0090_0), 144 }, /* OR */ -{ CPUFUNC(op_0098_0), 152 }, /* OR */ -{ CPUFUNC(op_00a0_0), 160 }, /* OR */ -{ CPUFUNC(op_00a8_0), 168 }, /* OR */ -{ CPUFUNC(op_00b0_0), 176 }, /* OR */ -{ CPUFUNC(op_00b8_0), 184 }, /* OR */ -{ CPUFUNC(op_00b9_0), 185 }, /* OR */ -{ CPUFUNC(op_00d0_0), 208 }, /* CHK2 */ -{ CPUFUNC(op_00e8_0), 232 }, /* CHK2 */ -{ CPUFUNC(op_00f0_0), 240 }, /* CHK2 */ -{ CPUFUNC(op_00f8_0), 248 }, /* CHK2 */ -{ CPUFUNC(op_00f9_0), 249 }, /* CHK2 */ -{ CPUFUNC(op_00fa_0), 250 }, /* CHK2 */ -{ CPUFUNC(op_00fb_0), 251 }, /* CHK2 */ -{ CPUFUNC(op_0100_0), 256 }, /* BTST */ -{ CPUFUNC(op_0108_0), 264 }, /* MVPMR */ -{ CPUFUNC(op_0110_0), 272 }, /* BTST */ -{ CPUFUNC(op_0118_0), 280 }, /* BTST */ -{ CPUFUNC(op_0120_0), 288 }, /* BTST */ -{ CPUFUNC(op_0128_0), 296 }, /* BTST */ -{ CPUFUNC(op_0130_0), 304 }, /* BTST */ -{ CPUFUNC(op_0138_0), 312 }, /* BTST */ -{ CPUFUNC(op_0139_0), 313 }, /* BTST */ -{ CPUFUNC(op_013a_0), 314 }, /* BTST */ -{ CPUFUNC(op_013b_0), 315 }, /* BTST */ -{ CPUFUNC(op_013c_0), 316 }, /* BTST */ -{ CPUFUNC(op_0140_0), 320 }, /* BCHG */ -{ CPUFUNC(op_0148_0), 328 }, /* MVPMR */ -{ CPUFUNC(op_0150_0), 336 }, /* BCHG */ -{ CPUFUNC(op_0158_0), 344 }, /* BCHG */ -{ CPUFUNC(op_0160_0), 352 }, /* BCHG */ -{ CPUFUNC(op_0168_0), 360 }, /* BCHG */ -{ CPUFUNC(op_0170_0), 368 }, /* BCHG */ -{ CPUFUNC(op_0178_0), 376 }, /* BCHG */ -{ CPUFUNC(op_0179_0), 377 }, /* BCHG */ -{ CPUFUNC(op_0180_0), 384 }, /* BCLR */ -{ CPUFUNC(op_0188_0), 392 }, /* MVPRM */ -{ CPUFUNC(op_0190_0), 400 }, /* BCLR */ -{ CPUFUNC(op_0198_0), 408 }, /* BCLR */ -{ CPUFUNC(op_01a0_0), 416 }, /* BCLR */ -{ CPUFUNC(op_01a8_0), 424 }, /* BCLR */ -{ CPUFUNC(op_01b0_0), 432 }, /* BCLR */ -{ CPUFUNC(op_01b8_0), 440 }, /* BCLR */ -{ CPUFUNC(op_01b9_0), 441 }, /* BCLR */ -{ CPUFUNC(op_01c0_0), 448 }, /* BSET */ -{ CPUFUNC(op_01c8_0), 456 }, /* MVPRM */ -{ CPUFUNC(op_01d0_0), 464 }, /* BSET */ -{ CPUFUNC(op_01d8_0), 472 }, /* BSET */ -{ CPUFUNC(op_01e0_0), 480 }, /* BSET */ -{ CPUFUNC(op_01e8_0), 488 }, /* BSET */ -{ CPUFUNC(op_01f0_0), 496 }, /* BSET */ -{ CPUFUNC(op_01f8_0), 504 }, /* BSET */ -{ CPUFUNC(op_01f9_0), 505 }, /* BSET */ -{ CPUFUNC(op_0200_0), 512 }, /* AND */ -{ CPUFUNC(op_0210_0), 528 }, /* AND */ -{ CPUFUNC(op_0218_0), 536 }, /* AND */ -{ CPUFUNC(op_0220_0), 544 }, /* AND */ -{ CPUFUNC(op_0228_0), 552 }, /* AND */ -{ CPUFUNC(op_0230_0), 560 }, /* AND */ -{ CPUFUNC(op_0238_0), 568 }, /* AND */ -{ CPUFUNC(op_0239_0), 569 }, /* AND */ -{ CPUFUNC(op_023c_0), 572 }, /* ANDSR */ -{ CPUFUNC(op_0240_0), 576 }, /* AND */ -{ CPUFUNC(op_0250_0), 592 }, /* AND */ -{ CPUFUNC(op_0258_0), 600 }, /* AND */ -{ CPUFUNC(op_0260_0), 608 }, /* AND */ -{ CPUFUNC(op_0268_0), 616 }, /* AND */ -{ CPUFUNC(op_0270_0), 624 }, /* AND */ -{ CPUFUNC(op_0278_0), 632 }, /* AND */ -{ CPUFUNC(op_0279_0), 633 }, /* AND */ -{ CPUFUNC(op_027c_0), 636 }, /* ANDSR */ -{ CPUFUNC(op_0280_0), 640 }, /* AND */ -{ CPUFUNC(op_0290_0), 656 }, /* AND */ -{ CPUFUNC(op_0298_0), 664 }, /* AND */ -{ CPUFUNC(op_02a0_0), 672 }, /* AND */ -{ CPUFUNC(op_02a8_0), 680 }, /* AND */ -{ CPUFUNC(op_02b0_0), 688 }, /* AND */ -{ CPUFUNC(op_02b8_0), 696 }, /* AND */ -{ CPUFUNC(op_02b9_0), 697 }, /* AND */ -{ CPUFUNC(op_02d0_0), 720 }, /* CHK2 */ -{ CPUFUNC(op_02e8_0), 744 }, /* CHK2 */ -{ CPUFUNC(op_02f0_0), 752 }, /* CHK2 */ -{ CPUFUNC(op_02f8_0), 760 }, /* CHK2 */ -{ CPUFUNC(op_02f9_0), 761 }, /* CHK2 */ -{ CPUFUNC(op_02fa_0), 762 }, /* CHK2 */ -{ CPUFUNC(op_02fb_0), 763 }, /* CHK2 */ -{ CPUFUNC(op_0400_0), 1024 }, /* SUB */ -{ CPUFUNC(op_0410_0), 1040 }, /* SUB */ -{ CPUFUNC(op_0418_0), 1048 }, /* SUB */ -{ CPUFUNC(op_0420_0), 1056 }, /* SUB */ -{ CPUFUNC(op_0428_0), 1064 }, /* SUB */ -{ CPUFUNC(op_0430_0), 1072 }, /* SUB */ -{ CPUFUNC(op_0438_0), 1080 }, /* SUB */ -{ CPUFUNC(op_0439_0), 1081 }, /* SUB */ -{ CPUFUNC(op_0440_0), 1088 }, /* SUB */ -{ CPUFUNC(op_0450_0), 1104 }, /* SUB */ -{ CPUFUNC(op_0458_0), 1112 }, /* SUB */ -{ CPUFUNC(op_0460_0), 1120 }, /* SUB */ -{ CPUFUNC(op_0468_0), 1128 }, /* SUB */ -{ CPUFUNC(op_0470_0), 1136 }, /* SUB */ -{ CPUFUNC(op_0478_0), 1144 }, /* SUB */ -{ CPUFUNC(op_0479_0), 1145 }, /* SUB */ -{ CPUFUNC(op_0480_0), 1152 }, /* SUB */ -{ CPUFUNC(op_0490_0), 1168 }, /* SUB */ -{ CPUFUNC(op_0498_0), 1176 }, /* SUB */ -{ CPUFUNC(op_04a0_0), 1184 }, /* SUB */ -{ CPUFUNC(op_04a8_0), 1192 }, /* SUB */ -{ CPUFUNC(op_04b0_0), 1200 }, /* SUB */ -{ CPUFUNC(op_04b8_0), 1208 }, /* SUB */ -{ CPUFUNC(op_04b9_0), 1209 }, /* SUB */ -{ CPUFUNC(op_04d0_0), 1232 }, /* CHK2 */ -{ CPUFUNC(op_04e8_0), 1256 }, /* CHK2 */ -{ CPUFUNC(op_04f0_0), 1264 }, /* CHK2 */ -{ CPUFUNC(op_04f8_0), 1272 }, /* CHK2 */ -{ CPUFUNC(op_04f9_0), 1273 }, /* CHK2 */ -{ CPUFUNC(op_04fa_0), 1274 }, /* CHK2 */ -{ CPUFUNC(op_04fb_0), 1275 }, /* CHK2 */ -{ CPUFUNC(op_0600_0), 1536 }, /* ADD */ -{ CPUFUNC(op_0610_0), 1552 }, /* ADD */ -{ CPUFUNC(op_0618_0), 1560 }, /* ADD */ -{ CPUFUNC(op_0620_0), 1568 }, /* ADD */ -{ CPUFUNC(op_0628_0), 1576 }, /* ADD */ -{ CPUFUNC(op_0630_0), 1584 }, /* ADD */ -{ CPUFUNC(op_0638_0), 1592 }, /* ADD */ -{ CPUFUNC(op_0639_0), 1593 }, /* ADD */ -{ CPUFUNC(op_0640_0), 1600 }, /* ADD */ -{ CPUFUNC(op_0650_0), 1616 }, /* ADD */ -{ CPUFUNC(op_0658_0), 1624 }, /* ADD */ -{ CPUFUNC(op_0660_0), 1632 }, /* ADD */ -{ CPUFUNC(op_0668_0), 1640 }, /* ADD */ -{ CPUFUNC(op_0670_0), 1648 }, /* ADD */ -{ CPUFUNC(op_0678_0), 1656 }, /* ADD */ -{ CPUFUNC(op_0679_0), 1657 }, /* ADD */ -{ CPUFUNC(op_0680_0), 1664 }, /* ADD */ -{ CPUFUNC(op_0690_0), 1680 }, /* ADD */ -{ CPUFUNC(op_0698_0), 1688 }, /* ADD */ -{ CPUFUNC(op_06a0_0), 1696 }, /* ADD */ -{ CPUFUNC(op_06a8_0), 1704 }, /* ADD */ -{ CPUFUNC(op_06b0_0), 1712 }, /* ADD */ -{ CPUFUNC(op_06b8_0), 1720 }, /* ADD */ -{ CPUFUNC(op_06b9_0), 1721 }, /* ADD */ -{ CPUFUNC(op_06c0_0), 1728 }, /* RTM */ -{ CPUFUNC(op_06c8_0), 1736 }, /* RTM */ -{ CPUFUNC(op_06d0_0), 1744 }, /* CALLM */ -{ CPUFUNC(op_06e8_0), 1768 }, /* CALLM */ -{ CPUFUNC(op_06f0_0), 1776 }, /* CALLM */ -{ CPUFUNC(op_06f8_0), 1784 }, /* CALLM */ -{ CPUFUNC(op_06f9_0), 1785 }, /* CALLM */ -{ CPUFUNC(op_06fa_0), 1786 }, /* CALLM */ -{ CPUFUNC(op_06fb_0), 1787 }, /* CALLM */ -{ CPUFUNC(op_0800_0), 2048 }, /* BTST */ -{ CPUFUNC(op_0810_0), 2064 }, /* BTST */ -{ CPUFUNC(op_0818_0), 2072 }, /* BTST */ -{ CPUFUNC(op_0820_0), 2080 }, /* BTST */ -{ CPUFUNC(op_0828_0), 2088 }, /* BTST */ -{ CPUFUNC(op_0830_0), 2096 }, /* BTST */ -{ CPUFUNC(op_0838_0), 2104 }, /* BTST */ -{ CPUFUNC(op_0839_0), 2105 }, /* BTST */ -{ CPUFUNC(op_083a_0), 2106 }, /* BTST */ -{ CPUFUNC(op_083b_0), 2107 }, /* BTST */ -{ CPUFUNC(op_083c_0), 2108 }, /* BTST */ -{ CPUFUNC(op_0840_0), 2112 }, /* BCHG */ -{ CPUFUNC(op_0850_0), 2128 }, /* BCHG */ -{ CPUFUNC(op_0858_0), 2136 }, /* BCHG */ -{ CPUFUNC(op_0860_0), 2144 }, /* BCHG */ -{ CPUFUNC(op_0868_0), 2152 }, /* BCHG */ -{ CPUFUNC(op_0870_0), 2160 }, /* BCHG */ -{ CPUFUNC(op_0878_0), 2168 }, /* BCHG */ -{ CPUFUNC(op_0879_0), 2169 }, /* BCHG */ -{ CPUFUNC(op_0880_0), 2176 }, /* BCLR */ -{ CPUFUNC(op_0890_0), 2192 }, /* BCLR */ -{ CPUFUNC(op_0898_0), 2200 }, /* BCLR */ -{ CPUFUNC(op_08a0_0), 2208 }, /* BCLR */ -{ CPUFUNC(op_08a8_0), 2216 }, /* BCLR */ -{ CPUFUNC(op_08b0_0), 2224 }, /* BCLR */ -{ CPUFUNC(op_08b8_0), 2232 }, /* BCLR */ -{ CPUFUNC(op_08b9_0), 2233 }, /* BCLR */ -{ CPUFUNC(op_08c0_0), 2240 }, /* BSET */ -{ CPUFUNC(op_08d0_0), 2256 }, /* BSET */ -{ CPUFUNC(op_08d8_0), 2264 }, /* BSET */ -{ CPUFUNC(op_08e0_0), 2272 }, /* BSET */ -{ CPUFUNC(op_08e8_0), 2280 }, /* BSET */ -{ CPUFUNC(op_08f0_0), 2288 }, /* BSET */ -{ CPUFUNC(op_08f8_0), 2296 }, /* BSET */ -{ CPUFUNC(op_08f9_0), 2297 }, /* BSET */ -{ CPUFUNC(op_0a00_0), 2560 }, /* EOR */ -{ CPUFUNC(op_0a10_0), 2576 }, /* EOR */ -{ CPUFUNC(op_0a18_0), 2584 }, /* EOR */ -{ CPUFUNC(op_0a20_0), 2592 }, /* EOR */ -{ CPUFUNC(op_0a28_0), 2600 }, /* EOR */ -{ CPUFUNC(op_0a30_0), 2608 }, /* EOR */ -{ CPUFUNC(op_0a38_0), 2616 }, /* EOR */ -{ CPUFUNC(op_0a39_0), 2617 }, /* EOR */ -{ CPUFUNC(op_0a3c_0), 2620 }, /* EORSR */ -{ CPUFUNC(op_0a40_0), 2624 }, /* EOR */ -{ CPUFUNC(op_0a50_0), 2640 }, /* EOR */ -{ CPUFUNC(op_0a58_0), 2648 }, /* EOR */ -{ CPUFUNC(op_0a60_0), 2656 }, /* EOR */ -{ CPUFUNC(op_0a68_0), 2664 }, /* EOR */ -{ CPUFUNC(op_0a70_0), 2672 }, /* EOR */ -{ CPUFUNC(op_0a78_0), 2680 }, /* EOR */ -{ CPUFUNC(op_0a79_0), 2681 }, /* EOR */ -{ CPUFUNC(op_0a7c_0), 2684 }, /* EORSR */ -{ CPUFUNC(op_0a80_0), 2688 }, /* EOR */ -{ CPUFUNC(op_0a90_0), 2704 }, /* EOR */ -{ CPUFUNC(op_0a98_0), 2712 }, /* EOR */ -{ CPUFUNC(op_0aa0_0), 2720 }, /* EOR */ -{ CPUFUNC(op_0aa8_0), 2728 }, /* EOR */ -{ CPUFUNC(op_0ab0_0), 2736 }, /* EOR */ -{ CPUFUNC(op_0ab8_0), 2744 }, /* EOR */ -{ CPUFUNC(op_0ab9_0), 2745 }, /* EOR */ -{ CPUFUNC(op_0ad0_0), 2768 }, /* CAS */ -{ CPUFUNC(op_0ad8_0), 2776 }, /* CAS */ -{ CPUFUNC(op_0ae0_0), 2784 }, /* CAS */ -{ CPUFUNC(op_0ae8_0), 2792 }, /* CAS */ -{ CPUFUNC(op_0af0_0), 2800 }, /* CAS */ -{ CPUFUNC(op_0af8_0), 2808 }, /* CAS */ -{ CPUFUNC(op_0af9_0), 2809 }, /* CAS */ -{ CPUFUNC(op_0c00_0), 3072 }, /* CMP */ -{ CPUFUNC(op_0c10_0), 3088 }, /* CMP */ -{ CPUFUNC(op_0c18_0), 3096 }, /* CMP */ -{ CPUFUNC(op_0c20_0), 3104 }, /* CMP */ -{ CPUFUNC(op_0c28_0), 3112 }, /* CMP */ -{ CPUFUNC(op_0c30_0), 3120 }, /* CMP */ -{ CPUFUNC(op_0c38_0), 3128 }, /* CMP */ -{ CPUFUNC(op_0c39_0), 3129 }, /* CMP */ -{ CPUFUNC(op_0c3a_0), 3130 }, /* CMP */ -{ CPUFUNC(op_0c3b_0), 3131 }, /* CMP */ -{ CPUFUNC(op_0c40_0), 3136 }, /* CMP */ -{ CPUFUNC(op_0c50_0), 3152 }, /* CMP */ -{ CPUFUNC(op_0c58_0), 3160 }, /* CMP */ -{ CPUFUNC(op_0c60_0), 3168 }, /* CMP */ -{ CPUFUNC(op_0c68_0), 3176 }, /* CMP */ -{ CPUFUNC(op_0c70_0), 3184 }, /* CMP */ -{ CPUFUNC(op_0c78_0), 3192 }, /* CMP */ -{ CPUFUNC(op_0c79_0), 3193 }, /* CMP */ -{ CPUFUNC(op_0c7a_0), 3194 }, /* CMP */ -{ CPUFUNC(op_0c7b_0), 3195 }, /* CMP */ -{ CPUFUNC(op_0c80_0), 3200 }, /* CMP */ -{ CPUFUNC(op_0c90_0), 3216 }, /* CMP */ -{ CPUFUNC(op_0c98_0), 3224 }, /* CMP */ -{ CPUFUNC(op_0ca0_0), 3232 }, /* CMP */ -{ CPUFUNC(op_0ca8_0), 3240 }, /* CMP */ -{ CPUFUNC(op_0cb0_0), 3248 }, /* CMP */ -{ CPUFUNC(op_0cb8_0), 3256 }, /* CMP */ -{ CPUFUNC(op_0cb9_0), 3257 }, /* CMP */ -{ CPUFUNC(op_0cba_0), 3258 }, /* CMP */ -{ CPUFUNC(op_0cbb_0), 3259 }, /* CMP */ -{ CPUFUNC(op_0cd0_0), 3280 }, /* CAS */ -{ CPUFUNC(op_0cd8_0), 3288 }, /* CAS */ -{ CPUFUNC(op_0ce0_0), 3296 }, /* CAS */ -{ CPUFUNC(op_0ce8_0), 3304 }, /* CAS */ -{ CPUFUNC(op_0cf0_0), 3312 }, /* CAS */ -{ CPUFUNC(op_0cf8_0), 3320 }, /* CAS */ -{ CPUFUNC(op_0cf9_0), 3321 }, /* CAS */ -{ CPUFUNC(op_0cfc_0), 3324 }, /* CAS2 */ -{ CPUFUNC(op_0e10_0), 3600 }, /* MOVES */ -{ CPUFUNC(op_0e18_0), 3608 }, /* MOVES */ -{ CPUFUNC(op_0e20_0), 3616 }, /* MOVES */ -{ CPUFUNC(op_0e28_0), 3624 }, /* MOVES */ -{ CPUFUNC(op_0e30_0), 3632 }, /* MOVES */ -{ CPUFUNC(op_0e38_0), 3640 }, /* MOVES */ -{ CPUFUNC(op_0e39_0), 3641 }, /* MOVES */ -{ CPUFUNC(op_0e50_0), 3664 }, /* MOVES */ -{ CPUFUNC(op_0e58_0), 3672 }, /* MOVES */ -{ CPUFUNC(op_0e60_0), 3680 }, /* MOVES */ -{ CPUFUNC(op_0e68_0), 3688 }, /* MOVES */ -{ CPUFUNC(op_0e70_0), 3696 }, /* MOVES */ -{ CPUFUNC(op_0e78_0), 3704 }, /* MOVES */ -{ CPUFUNC(op_0e79_0), 3705 }, /* MOVES */ -{ CPUFUNC(op_0e90_0), 3728 }, /* MOVES */ -{ CPUFUNC(op_0e98_0), 3736 }, /* MOVES */ -{ CPUFUNC(op_0ea0_0), 3744 }, /* MOVES */ -{ CPUFUNC(op_0ea8_0), 3752 }, /* MOVES */ -{ CPUFUNC(op_0eb0_0), 3760 }, /* MOVES */ -{ CPUFUNC(op_0eb8_0), 3768 }, /* MOVES */ -{ CPUFUNC(op_0eb9_0), 3769 }, /* MOVES */ -{ CPUFUNC(op_0ed0_0), 3792 }, /* CAS */ -{ CPUFUNC(op_0ed8_0), 3800 }, /* CAS */ -{ CPUFUNC(op_0ee0_0), 3808 }, /* CAS */ -{ CPUFUNC(op_0ee8_0), 3816 }, /* CAS */ -{ CPUFUNC(op_0ef0_0), 3824 }, /* CAS */ -{ CPUFUNC(op_0ef8_0), 3832 }, /* CAS */ -{ CPUFUNC(op_0ef9_0), 3833 }, /* CAS */ -{ CPUFUNC(op_0efc_0), 3836 }, /* CAS2 */ -{ CPUFUNC(op_1000_0), 4096 }, /* MOVE */ -{ CPUFUNC(op_1010_0), 4112 }, /* MOVE */ -{ CPUFUNC(op_1018_0), 4120 }, /* MOVE */ -{ CPUFUNC(op_1020_0), 4128 }, /* MOVE */ -{ CPUFUNC(op_1028_0), 4136 }, /* MOVE */ -{ CPUFUNC(op_1030_0), 4144 }, /* MOVE */ -{ CPUFUNC(op_1038_0), 4152 }, /* MOVE */ -{ CPUFUNC(op_1039_0), 4153 }, /* MOVE */ -{ CPUFUNC(op_103a_0), 4154 }, /* MOVE */ -{ CPUFUNC(op_103b_0), 4155 }, /* MOVE */ -{ CPUFUNC(op_103c_0), 4156 }, /* MOVE */ -{ CPUFUNC(op_1080_0), 4224 }, /* MOVE */ -{ CPUFUNC(op_1090_0), 4240 }, /* MOVE */ -{ CPUFUNC(op_1098_0), 4248 }, /* MOVE */ -{ CPUFUNC(op_10a0_0), 4256 }, /* MOVE */ -{ CPUFUNC(op_10a8_0), 4264 }, /* MOVE */ -{ CPUFUNC(op_10b0_0), 4272 }, /* MOVE */ -{ CPUFUNC(op_10b8_0), 4280 }, /* MOVE */ -{ CPUFUNC(op_10b9_0), 4281 }, /* MOVE */ -{ CPUFUNC(op_10ba_0), 4282 }, /* MOVE */ -{ CPUFUNC(op_10bb_0), 4283 }, /* MOVE */ -{ CPUFUNC(op_10bc_0), 4284 }, /* MOVE */ -{ CPUFUNC(op_10c0_0), 4288 }, /* MOVE */ -{ CPUFUNC(op_10d0_0), 4304 }, /* MOVE */ -{ CPUFUNC(op_10d8_0), 4312 }, /* MOVE */ -{ CPUFUNC(op_10e0_0), 4320 }, /* MOVE */ -{ CPUFUNC(op_10e8_0), 4328 }, /* MOVE */ -{ CPUFUNC(op_10f0_0), 4336 }, /* MOVE */ -{ CPUFUNC(op_10f8_0), 4344 }, /* MOVE */ -{ CPUFUNC(op_10f9_0), 4345 }, /* MOVE */ -{ CPUFUNC(op_10fa_0), 4346 }, /* MOVE */ -{ CPUFUNC(op_10fb_0), 4347 }, /* MOVE */ -{ CPUFUNC(op_10fc_0), 4348 }, /* MOVE */ -{ CPUFUNC(op_1100_0), 4352 }, /* MOVE */ -{ CPUFUNC(op_1110_0), 4368 }, /* MOVE */ -{ CPUFUNC(op_1118_0), 4376 }, /* MOVE */ -{ CPUFUNC(op_1120_0), 4384 }, /* MOVE */ -{ CPUFUNC(op_1128_0), 4392 }, /* MOVE */ -{ CPUFUNC(op_1130_0), 4400 }, /* MOVE */ -{ CPUFUNC(op_1138_0), 4408 }, /* MOVE */ -{ CPUFUNC(op_1139_0), 4409 }, /* MOVE */ -{ CPUFUNC(op_113a_0), 4410 }, /* MOVE */ -{ CPUFUNC(op_113b_0), 4411 }, /* MOVE */ -{ CPUFUNC(op_113c_0), 4412 }, /* MOVE */ -{ CPUFUNC(op_1140_0), 4416 }, /* MOVE */ -{ CPUFUNC(op_1150_0), 4432 }, /* MOVE */ -{ CPUFUNC(op_1158_0), 4440 }, /* MOVE */ -{ CPUFUNC(op_1160_0), 4448 }, /* MOVE */ -{ CPUFUNC(op_1168_0), 4456 }, /* MOVE */ -{ CPUFUNC(op_1170_0), 4464 }, /* MOVE */ -{ CPUFUNC(op_1178_0), 4472 }, /* MOVE */ -{ CPUFUNC(op_1179_0), 4473 }, /* MOVE */ -{ CPUFUNC(op_117a_0), 4474 }, /* MOVE */ -{ CPUFUNC(op_117b_0), 4475 }, /* MOVE */ -{ CPUFUNC(op_117c_0), 4476 }, /* MOVE */ -{ CPUFUNC(op_1180_0), 4480 }, /* MOVE */ -{ CPUFUNC(op_1190_0), 4496 }, /* MOVE */ -{ CPUFUNC(op_1198_0), 4504 }, /* MOVE */ -{ CPUFUNC(op_11a0_0), 4512 }, /* MOVE */ -{ CPUFUNC(op_11a8_0), 4520 }, /* MOVE */ -{ CPUFUNC(op_11b0_0), 4528 }, /* MOVE */ -{ CPUFUNC(op_11b8_0), 4536 }, /* MOVE */ -{ CPUFUNC(op_11b9_0), 4537 }, /* MOVE */ -{ CPUFUNC(op_11ba_0), 4538 }, /* MOVE */ -{ CPUFUNC(op_11bb_0), 4539 }, /* MOVE */ -{ CPUFUNC(op_11bc_0), 4540 }, /* MOVE */ -{ CPUFUNC(op_11c0_0), 4544 }, /* MOVE */ -{ CPUFUNC(op_11d0_0), 4560 }, /* MOVE */ -{ CPUFUNC(op_11d8_0), 4568 }, /* MOVE */ -{ CPUFUNC(op_11e0_0), 4576 }, /* MOVE */ -{ CPUFUNC(op_11e8_0), 4584 }, /* MOVE */ -{ CPUFUNC(op_11f0_0), 4592 }, /* MOVE */ -{ CPUFUNC(op_11f8_0), 4600 }, /* MOVE */ -{ CPUFUNC(op_11f9_0), 4601 }, /* MOVE */ -{ CPUFUNC(op_11fa_0), 4602 }, /* MOVE */ -{ CPUFUNC(op_11fb_0), 4603 }, /* MOVE */ -{ CPUFUNC(op_11fc_0), 4604 }, /* MOVE */ -{ CPUFUNC(op_13c0_0), 5056 }, /* MOVE */ -{ CPUFUNC(op_13d0_0), 5072 }, /* MOVE */ -{ CPUFUNC(op_13d8_0), 5080 }, /* MOVE */ -{ CPUFUNC(op_13e0_0), 5088 }, /* MOVE */ -{ CPUFUNC(op_13e8_0), 5096 }, /* MOVE */ -{ CPUFUNC(op_13f0_0), 5104 }, /* MOVE */ -{ CPUFUNC(op_13f8_0), 5112 }, /* MOVE */ -{ CPUFUNC(op_13f9_0), 5113 }, /* MOVE */ -{ CPUFUNC(op_13fa_0), 5114 }, /* MOVE */ -{ CPUFUNC(op_13fb_0), 5115 }, /* MOVE */ -{ CPUFUNC(op_13fc_0), 5116 }, /* MOVE */ -{ CPUFUNC(op_2000_0), 8192 }, /* MOVE */ -{ CPUFUNC(op_2008_0), 8200 }, /* MOVE */ -{ CPUFUNC(op_2010_0), 8208 }, /* MOVE */ -{ CPUFUNC(op_2018_0), 8216 }, /* MOVE */ -{ CPUFUNC(op_2020_0), 8224 }, /* MOVE */ -{ CPUFUNC(op_2028_0), 8232 }, /* MOVE */ -{ CPUFUNC(op_2030_0), 8240 }, /* MOVE */ -{ CPUFUNC(op_2038_0), 8248 }, /* MOVE */ -{ CPUFUNC(op_2039_0), 8249 }, /* MOVE */ -{ CPUFUNC(op_203a_0), 8250 }, /* MOVE */ -{ CPUFUNC(op_203b_0), 8251 }, /* MOVE */ -{ CPUFUNC(op_203c_0), 8252 }, /* MOVE */ -{ CPUFUNC(op_2040_0), 8256 }, /* MOVEA */ -{ CPUFUNC(op_2048_0), 8264 }, /* MOVEA */ -{ CPUFUNC(op_2050_0), 8272 }, /* MOVEA */ -{ CPUFUNC(op_2058_0), 8280 }, /* MOVEA */ -{ CPUFUNC(op_2060_0), 8288 }, /* MOVEA */ -{ CPUFUNC(op_2068_0), 8296 }, /* MOVEA */ -{ CPUFUNC(op_2070_0), 8304 }, /* MOVEA */ -{ CPUFUNC(op_2078_0), 8312 }, /* MOVEA */ -{ CPUFUNC(op_2079_0), 8313 }, /* MOVEA */ -{ CPUFUNC(op_207a_0), 8314 }, /* MOVEA */ -{ CPUFUNC(op_207b_0), 8315 }, /* MOVEA */ -{ CPUFUNC(op_207c_0), 8316 }, /* MOVEA */ -{ CPUFUNC(op_2080_0), 8320 }, /* MOVE */ -{ CPUFUNC(op_2088_0), 8328 }, /* MOVE */ -{ CPUFUNC(op_2090_0), 8336 }, /* MOVE */ -{ CPUFUNC(op_2098_0), 8344 }, /* MOVE */ -{ CPUFUNC(op_20a0_0), 8352 }, /* MOVE */ -{ CPUFUNC(op_20a8_0), 8360 }, /* MOVE */ -{ CPUFUNC(op_20b0_0), 8368 }, /* MOVE */ -{ CPUFUNC(op_20b8_0), 8376 }, /* MOVE */ -{ CPUFUNC(op_20b9_0), 8377 }, /* MOVE */ -{ CPUFUNC(op_20ba_0), 8378 }, /* MOVE */ -{ CPUFUNC(op_20bb_0), 8379 }, /* MOVE */ -{ CPUFUNC(op_20bc_0), 8380 }, /* MOVE */ -{ CPUFUNC(op_20c0_0), 8384 }, /* MOVE */ -{ CPUFUNC(op_20c8_0), 8392 }, /* MOVE */ -{ CPUFUNC(op_20d0_0), 8400 }, /* MOVE */ -{ CPUFUNC(op_20d8_0), 8408 }, /* MOVE */ -{ CPUFUNC(op_20e0_0), 8416 }, /* MOVE */ -{ CPUFUNC(op_20e8_0), 8424 }, /* MOVE */ -{ CPUFUNC(op_20f0_0), 8432 }, /* MOVE */ -{ CPUFUNC(op_20f8_0), 8440 }, /* MOVE */ -{ CPUFUNC(op_20f9_0), 8441 }, /* MOVE */ -{ CPUFUNC(op_20fa_0), 8442 }, /* MOVE */ -{ CPUFUNC(op_20fb_0), 8443 }, /* MOVE */ -{ CPUFUNC(op_20fc_0), 8444 }, /* MOVE */ -{ CPUFUNC(op_2100_0), 8448 }, /* MOVE */ -{ CPUFUNC(op_2108_0), 8456 }, /* MOVE */ -{ CPUFUNC(op_2110_0), 8464 }, /* MOVE */ -{ CPUFUNC(op_2118_0), 8472 }, /* MOVE */ -{ CPUFUNC(op_2120_0), 8480 }, /* MOVE */ -{ CPUFUNC(op_2128_0), 8488 }, /* MOVE */ -{ CPUFUNC(op_2130_0), 8496 }, /* MOVE */ -{ CPUFUNC(op_2138_0), 8504 }, /* MOVE */ -{ CPUFUNC(op_2139_0), 8505 }, /* MOVE */ -{ CPUFUNC(op_213a_0), 8506 }, /* MOVE */ -{ CPUFUNC(op_213b_0), 8507 }, /* MOVE */ -{ CPUFUNC(op_213c_0), 8508 }, /* MOVE */ -{ CPUFUNC(op_2140_0), 8512 }, /* MOVE */ -{ CPUFUNC(op_2148_0), 8520 }, /* MOVE */ -{ CPUFUNC(op_2150_0), 8528 }, /* MOVE */ -{ CPUFUNC(op_2158_0), 8536 }, /* MOVE */ -{ CPUFUNC(op_2160_0), 8544 }, /* MOVE */ -{ CPUFUNC(op_2168_0), 8552 }, /* MOVE */ -{ CPUFUNC(op_2170_0), 8560 }, /* MOVE */ -{ CPUFUNC(op_2178_0), 8568 }, /* MOVE */ -{ CPUFUNC(op_2179_0), 8569 }, /* MOVE */ -{ CPUFUNC(op_217a_0), 8570 }, /* MOVE */ -{ CPUFUNC(op_217b_0), 8571 }, /* MOVE */ -{ CPUFUNC(op_217c_0), 8572 }, /* MOVE */ -{ CPUFUNC(op_2180_0), 8576 }, /* MOVE */ -{ CPUFUNC(op_2188_0), 8584 }, /* MOVE */ -{ CPUFUNC(op_2190_0), 8592 }, /* MOVE */ -{ CPUFUNC(op_2198_0), 8600 }, /* MOVE */ -{ CPUFUNC(op_21a0_0), 8608 }, /* MOVE */ -{ CPUFUNC(op_21a8_0), 8616 }, /* MOVE */ -{ CPUFUNC(op_21b0_0), 8624 }, /* MOVE */ -{ CPUFUNC(op_21b8_0), 8632 }, /* MOVE */ -{ CPUFUNC(op_21b9_0), 8633 }, /* MOVE */ -{ CPUFUNC(op_21ba_0), 8634 }, /* MOVE */ -{ CPUFUNC(op_21bb_0), 8635 }, /* MOVE */ -{ CPUFUNC(op_21bc_0), 8636 }, /* MOVE */ -{ CPUFUNC(op_21c0_0), 8640 }, /* MOVE */ -{ CPUFUNC(op_21c8_0), 8648 }, /* MOVE */ -{ CPUFUNC(op_21d0_0), 8656 }, /* MOVE */ -{ CPUFUNC(op_21d8_0), 8664 }, /* MOVE */ -{ CPUFUNC(op_21e0_0), 8672 }, /* MOVE */ -{ CPUFUNC(op_21e8_0), 8680 }, /* MOVE */ -{ CPUFUNC(op_21f0_0), 8688 }, /* MOVE */ -{ CPUFUNC(op_21f8_0), 8696 }, /* MOVE */ -{ CPUFUNC(op_21f9_0), 8697 }, /* MOVE */ -{ CPUFUNC(op_21fa_0), 8698 }, /* MOVE */ -{ CPUFUNC(op_21fb_0), 8699 }, /* MOVE */ -{ CPUFUNC(op_21fc_0), 8700 }, /* MOVE */ -{ CPUFUNC(op_23c0_0), 9152 }, /* MOVE */ -{ CPUFUNC(op_23c8_0), 9160 }, /* MOVE */ -{ CPUFUNC(op_23d0_0), 9168 }, /* MOVE */ -{ CPUFUNC(op_23d8_0), 9176 }, /* MOVE */ -{ CPUFUNC(op_23e0_0), 9184 }, /* MOVE */ -{ CPUFUNC(op_23e8_0), 9192 }, /* MOVE */ -{ CPUFUNC(op_23f0_0), 9200 }, /* MOVE */ -{ CPUFUNC(op_23f8_0), 9208 }, /* MOVE */ -{ CPUFUNC(op_23f9_0), 9209 }, /* MOVE */ -{ CPUFUNC(op_23fa_0), 9210 }, /* MOVE */ -{ CPUFUNC(op_23fb_0), 9211 }, /* MOVE */ -{ CPUFUNC(op_23fc_0), 9212 }, /* MOVE */ -{ CPUFUNC(op_3000_0), 12288 }, /* MOVE */ -{ CPUFUNC(op_3008_0), 12296 }, /* MOVE */ -{ CPUFUNC(op_3010_0), 12304 }, /* MOVE */ -{ CPUFUNC(op_3018_0), 12312 }, /* MOVE */ -{ CPUFUNC(op_3020_0), 12320 }, /* MOVE */ -{ CPUFUNC(op_3028_0), 12328 }, /* MOVE */ -{ CPUFUNC(op_3030_0), 12336 }, /* MOVE */ -{ CPUFUNC(op_3038_0), 12344 }, /* MOVE */ -{ CPUFUNC(op_3039_0), 12345 }, /* MOVE */ -{ CPUFUNC(op_303a_0), 12346 }, /* MOVE */ -{ CPUFUNC(op_303b_0), 12347 }, /* MOVE */ -{ CPUFUNC(op_303c_0), 12348 }, /* MOVE */ -{ CPUFUNC(op_3040_0), 12352 }, /* MOVEA */ -{ CPUFUNC(op_3048_0), 12360 }, /* MOVEA */ -{ CPUFUNC(op_3050_0), 12368 }, /* MOVEA */ -{ CPUFUNC(op_3058_0), 12376 }, /* MOVEA */ -{ CPUFUNC(op_3060_0), 12384 }, /* MOVEA */ -{ CPUFUNC(op_3068_0), 12392 }, /* MOVEA */ -{ CPUFUNC(op_3070_0), 12400 }, /* MOVEA */ -{ CPUFUNC(op_3078_0), 12408 }, /* MOVEA */ -{ CPUFUNC(op_3079_0), 12409 }, /* MOVEA */ -{ CPUFUNC(op_307a_0), 12410 }, /* MOVEA */ -{ CPUFUNC(op_307b_0), 12411 }, /* MOVEA */ -{ CPUFUNC(op_307c_0), 12412 }, /* MOVEA */ -{ CPUFUNC(op_3080_0), 12416 }, /* MOVE */ -{ CPUFUNC(op_3088_0), 12424 }, /* MOVE */ -{ CPUFUNC(op_3090_0), 12432 }, /* MOVE */ -{ CPUFUNC(op_3098_0), 12440 }, /* MOVE */ -{ CPUFUNC(op_30a0_0), 12448 }, /* MOVE */ -{ CPUFUNC(op_30a8_0), 12456 }, /* MOVE */ -{ CPUFUNC(op_30b0_0), 12464 }, /* MOVE */ -{ CPUFUNC(op_30b8_0), 12472 }, /* MOVE */ -{ CPUFUNC(op_30b9_0), 12473 }, /* MOVE */ -{ CPUFUNC(op_30ba_0), 12474 }, /* MOVE */ -{ CPUFUNC(op_30bb_0), 12475 }, /* MOVE */ -{ CPUFUNC(op_30bc_0), 12476 }, /* MOVE */ -{ CPUFUNC(op_30c0_0), 12480 }, /* MOVE */ -{ CPUFUNC(op_30c8_0), 12488 }, /* MOVE */ -{ CPUFUNC(op_30d0_0), 12496 }, /* MOVE */ -{ CPUFUNC(op_30d8_0), 12504 }, /* MOVE */ -{ CPUFUNC(op_30e0_0), 12512 }, /* MOVE */ -{ CPUFUNC(op_30e8_0), 12520 }, /* MOVE */ -{ CPUFUNC(op_30f0_0), 12528 }, /* MOVE */ -{ CPUFUNC(op_30f8_0), 12536 }, /* MOVE */ -{ CPUFUNC(op_30f9_0), 12537 }, /* MOVE */ -{ CPUFUNC(op_30fa_0), 12538 }, /* MOVE */ -{ CPUFUNC(op_30fb_0), 12539 }, /* MOVE */ -{ CPUFUNC(op_30fc_0), 12540 }, /* MOVE */ -{ CPUFUNC(op_3100_0), 12544 }, /* MOVE */ -{ CPUFUNC(op_3108_0), 12552 }, /* MOVE */ -{ CPUFUNC(op_3110_0), 12560 }, /* MOVE */ -{ CPUFUNC(op_3118_0), 12568 }, /* MOVE */ -{ CPUFUNC(op_3120_0), 12576 }, /* MOVE */ -{ CPUFUNC(op_3128_0), 12584 }, /* MOVE */ -{ CPUFUNC(op_3130_0), 12592 }, /* MOVE */ -{ CPUFUNC(op_3138_0), 12600 }, /* MOVE */ -{ CPUFUNC(op_3139_0), 12601 }, /* MOVE */ -{ CPUFUNC(op_313a_0), 12602 }, /* MOVE */ -{ CPUFUNC(op_313b_0), 12603 }, /* MOVE */ -{ CPUFUNC(op_313c_0), 12604 }, /* MOVE */ -{ CPUFUNC(op_3140_0), 12608 }, /* MOVE */ -{ CPUFUNC(op_3148_0), 12616 }, /* MOVE */ -{ CPUFUNC(op_3150_0), 12624 }, /* MOVE */ -{ CPUFUNC(op_3158_0), 12632 }, /* MOVE */ -{ CPUFUNC(op_3160_0), 12640 }, /* MOVE */ -{ CPUFUNC(op_3168_0), 12648 }, /* MOVE */ -{ CPUFUNC(op_3170_0), 12656 }, /* MOVE */ -{ CPUFUNC(op_3178_0), 12664 }, /* MOVE */ -{ CPUFUNC(op_3179_0), 12665 }, /* MOVE */ -{ CPUFUNC(op_317a_0), 12666 }, /* MOVE */ -{ CPUFUNC(op_317b_0), 12667 }, /* MOVE */ -{ CPUFUNC(op_317c_0), 12668 }, /* MOVE */ -{ CPUFUNC(op_3180_0), 12672 }, /* MOVE */ -{ CPUFUNC(op_3188_0), 12680 }, /* MOVE */ -{ CPUFUNC(op_3190_0), 12688 }, /* MOVE */ -{ CPUFUNC(op_3198_0), 12696 }, /* MOVE */ -{ CPUFUNC(op_31a0_0), 12704 }, /* MOVE */ -{ CPUFUNC(op_31a8_0), 12712 }, /* MOVE */ -{ CPUFUNC(op_31b0_0), 12720 }, /* MOVE */ -{ CPUFUNC(op_31b8_0), 12728 }, /* MOVE */ -{ CPUFUNC(op_31b9_0), 12729 }, /* MOVE */ -{ CPUFUNC(op_31ba_0), 12730 }, /* MOVE */ -{ CPUFUNC(op_31bb_0), 12731 }, /* MOVE */ -{ CPUFUNC(op_31bc_0), 12732 }, /* MOVE */ -{ CPUFUNC(op_31c0_0), 12736 }, /* MOVE */ -{ CPUFUNC(op_31c8_0), 12744 }, /* MOVE */ -{ CPUFUNC(op_31d0_0), 12752 }, /* MOVE */ -{ CPUFUNC(op_31d8_0), 12760 }, /* MOVE */ -{ CPUFUNC(op_31e0_0), 12768 }, /* MOVE */ -{ CPUFUNC(op_31e8_0), 12776 }, /* MOVE */ -{ CPUFUNC(op_31f0_0), 12784 }, /* MOVE */ -{ CPUFUNC(op_31f8_0), 12792 }, /* MOVE */ -{ CPUFUNC(op_31f9_0), 12793 }, /* MOVE */ -{ CPUFUNC(op_31fa_0), 12794 }, /* MOVE */ -{ CPUFUNC(op_31fb_0), 12795 }, /* MOVE */ -{ CPUFUNC(op_31fc_0), 12796 }, /* MOVE */ -{ CPUFUNC(op_33c0_0), 13248 }, /* MOVE */ -{ CPUFUNC(op_33c8_0), 13256 }, /* MOVE */ -{ CPUFUNC(op_33d0_0), 13264 }, /* MOVE */ -{ CPUFUNC(op_33d8_0), 13272 }, /* MOVE */ -{ CPUFUNC(op_33e0_0), 13280 }, /* MOVE */ -{ CPUFUNC(op_33e8_0), 13288 }, /* MOVE */ -{ CPUFUNC(op_33f0_0), 13296 }, /* MOVE */ -{ CPUFUNC(op_33f8_0), 13304 }, /* MOVE */ -{ CPUFUNC(op_33f9_0), 13305 }, /* MOVE */ -{ CPUFUNC(op_33fa_0), 13306 }, /* MOVE */ -{ CPUFUNC(op_33fb_0), 13307 }, /* MOVE */ -{ CPUFUNC(op_33fc_0), 13308 }, /* MOVE */ -{ CPUFUNC(op_4000_0), 16384 }, /* NEGX */ -{ CPUFUNC(op_4010_0), 16400 }, /* NEGX */ -{ CPUFUNC(op_4018_0), 16408 }, /* NEGX */ -{ CPUFUNC(op_4020_0), 16416 }, /* NEGX */ -{ CPUFUNC(op_4028_0), 16424 }, /* NEGX */ -{ CPUFUNC(op_4030_0), 16432 }, /* NEGX */ -{ CPUFUNC(op_4038_0), 16440 }, /* NEGX */ -{ CPUFUNC(op_4039_0), 16441 }, /* NEGX */ -{ CPUFUNC(op_4040_0), 16448 }, /* NEGX */ -{ CPUFUNC(op_4050_0), 16464 }, /* NEGX */ -{ CPUFUNC(op_4058_0), 16472 }, /* NEGX */ -{ CPUFUNC(op_4060_0), 16480 }, /* NEGX */ -{ CPUFUNC(op_4068_0), 16488 }, /* NEGX */ -{ CPUFUNC(op_4070_0), 16496 }, /* NEGX */ -{ CPUFUNC(op_4078_0), 16504 }, /* NEGX */ -{ CPUFUNC(op_4079_0), 16505 }, /* NEGX */ -{ CPUFUNC(op_4080_0), 16512 }, /* NEGX */ -{ CPUFUNC(op_4090_0), 16528 }, /* NEGX */ -{ CPUFUNC(op_4098_0), 16536 }, /* NEGX */ -{ CPUFUNC(op_40a0_0), 16544 }, /* NEGX */ -{ CPUFUNC(op_40a8_0), 16552 }, /* NEGX */ -{ CPUFUNC(op_40b0_0), 16560 }, /* NEGX */ -{ CPUFUNC(op_40b8_0), 16568 }, /* NEGX */ -{ CPUFUNC(op_40b9_0), 16569 }, /* NEGX */ -{ CPUFUNC(op_40c0_0), 16576 }, /* MVSR2 */ -{ CPUFUNC(op_40d0_0), 16592 }, /* MVSR2 */ -{ CPUFUNC(op_40d8_0), 16600 }, /* MVSR2 */ -{ CPUFUNC(op_40e0_0), 16608 }, /* MVSR2 */ -{ CPUFUNC(op_40e8_0), 16616 }, /* MVSR2 */ -{ CPUFUNC(op_40f0_0), 16624 }, /* MVSR2 */ -{ CPUFUNC(op_40f8_0), 16632 }, /* MVSR2 */ -{ CPUFUNC(op_40f9_0), 16633 }, /* MVSR2 */ -{ CPUFUNC(op_4100_0), 16640 }, /* CHK */ -{ CPUFUNC(op_4110_0), 16656 }, /* CHK */ -{ CPUFUNC(op_4118_0), 16664 }, /* CHK */ -{ CPUFUNC(op_4120_0), 16672 }, /* CHK */ -{ CPUFUNC(op_4128_0), 16680 }, /* CHK */ -{ CPUFUNC(op_4130_0), 16688 }, /* CHK */ -{ CPUFUNC(op_4138_0), 16696 }, /* CHK */ -{ CPUFUNC(op_4139_0), 16697 }, /* CHK */ -{ CPUFUNC(op_413a_0), 16698 }, /* CHK */ -{ CPUFUNC(op_413b_0), 16699 }, /* CHK */ -{ CPUFUNC(op_413c_0), 16700 }, /* CHK */ -{ CPUFUNC(op_4180_0), 16768 }, /* CHK */ -{ CPUFUNC(op_4190_0), 16784 }, /* CHK */ -{ CPUFUNC(op_4198_0), 16792 }, /* CHK */ -{ CPUFUNC(op_41a0_0), 16800 }, /* CHK */ -{ CPUFUNC(op_41a8_0), 16808 }, /* CHK */ -{ CPUFUNC(op_41b0_0), 16816 }, /* CHK */ -{ CPUFUNC(op_41b8_0), 16824 }, /* CHK */ -{ CPUFUNC(op_41b9_0), 16825 }, /* CHK */ -{ CPUFUNC(op_41ba_0), 16826 }, /* CHK */ -{ CPUFUNC(op_41bb_0), 16827 }, /* CHK */ -{ CPUFUNC(op_41bc_0), 16828 }, /* CHK */ -{ CPUFUNC(op_41d0_0), 16848 }, /* LEA */ -{ CPUFUNC(op_41e8_0), 16872 }, /* LEA */ -{ CPUFUNC(op_41f0_0), 16880 }, /* LEA */ -{ CPUFUNC(op_41f8_0), 16888 }, /* LEA */ -{ CPUFUNC(op_41f9_0), 16889 }, /* LEA */ -{ CPUFUNC(op_41fa_0), 16890 }, /* LEA */ -{ CPUFUNC(op_41fb_0), 16891 }, /* LEA */ -{ CPUFUNC(op_4200_0), 16896 }, /* CLR */ -{ CPUFUNC(op_4210_0), 16912 }, /* CLR */ -{ CPUFUNC(op_4218_0), 16920 }, /* CLR */ -{ CPUFUNC(op_4220_0), 16928 }, /* CLR */ -{ CPUFUNC(op_4228_0), 16936 }, /* CLR */ -{ CPUFUNC(op_4230_0), 16944 }, /* CLR */ -{ CPUFUNC(op_4238_0), 16952 }, /* CLR */ -{ CPUFUNC(op_4239_0), 16953 }, /* CLR */ -{ CPUFUNC(op_4240_0), 16960 }, /* CLR */ -{ CPUFUNC(op_4250_0), 16976 }, /* CLR */ -{ CPUFUNC(op_4258_0), 16984 }, /* CLR */ -{ CPUFUNC(op_4260_0), 16992 }, /* CLR */ -{ CPUFUNC(op_4268_0), 17000 }, /* CLR */ -{ CPUFUNC(op_4270_0), 17008 }, /* CLR */ -{ CPUFUNC(op_4278_0), 17016 }, /* CLR */ -{ CPUFUNC(op_4279_0), 17017 }, /* CLR */ -{ CPUFUNC(op_4280_0), 17024 }, /* CLR */ -{ CPUFUNC(op_4290_0), 17040 }, /* CLR */ -{ CPUFUNC(op_4298_0), 17048 }, /* CLR */ -{ CPUFUNC(op_42a0_0), 17056 }, /* CLR */ -{ CPUFUNC(op_42a8_0), 17064 }, /* CLR */ -{ CPUFUNC(op_42b0_0), 17072 }, /* CLR */ -{ CPUFUNC(op_42b8_0), 17080 }, /* CLR */ -{ CPUFUNC(op_42b9_0), 17081 }, /* CLR */ -{ CPUFUNC(op_42c0_0), 17088 }, /* MVSR2 */ -{ CPUFUNC(op_42d0_0), 17104 }, /* MVSR2 */ -{ CPUFUNC(op_42d8_0), 17112 }, /* MVSR2 */ -{ CPUFUNC(op_42e0_0), 17120 }, /* MVSR2 */ -{ CPUFUNC(op_42e8_0), 17128 }, /* MVSR2 */ -{ CPUFUNC(op_42f0_0), 17136 }, /* MVSR2 */ -{ CPUFUNC(op_42f8_0), 17144 }, /* MVSR2 */ -{ CPUFUNC(op_42f9_0), 17145 }, /* MVSR2 */ -{ CPUFUNC(op_4400_0), 17408 }, /* NEG */ -{ CPUFUNC(op_4410_0), 17424 }, /* NEG */ -{ CPUFUNC(op_4418_0), 17432 }, /* NEG */ -{ CPUFUNC(op_4420_0), 17440 }, /* NEG */ -{ CPUFUNC(op_4428_0), 17448 }, /* NEG */ -{ CPUFUNC(op_4430_0), 17456 }, /* NEG */ -{ CPUFUNC(op_4438_0), 17464 }, /* NEG */ -{ CPUFUNC(op_4439_0), 17465 }, /* NEG */ -{ CPUFUNC(op_4440_0), 17472 }, /* NEG */ -{ CPUFUNC(op_4450_0), 17488 }, /* NEG */ -{ CPUFUNC(op_4458_0), 17496 }, /* NEG */ -{ CPUFUNC(op_4460_0), 17504 }, /* NEG */ -{ CPUFUNC(op_4468_0), 17512 }, /* NEG */ -{ CPUFUNC(op_4470_0), 17520 }, /* NEG */ -{ CPUFUNC(op_4478_0), 17528 }, /* NEG */ -{ CPUFUNC(op_4479_0), 17529 }, /* NEG */ -{ CPUFUNC(op_4480_0), 17536 }, /* NEG */ -{ CPUFUNC(op_4490_0), 17552 }, /* NEG */ -{ CPUFUNC(op_4498_0), 17560 }, /* NEG */ -{ CPUFUNC(op_44a0_0), 17568 }, /* NEG */ -{ CPUFUNC(op_44a8_0), 17576 }, /* NEG */ -{ CPUFUNC(op_44b0_0), 17584 }, /* NEG */ -{ CPUFUNC(op_44b8_0), 17592 }, /* NEG */ -{ CPUFUNC(op_44b9_0), 17593 }, /* NEG */ -{ CPUFUNC(op_44c0_0), 17600 }, /* MV2SR */ -{ CPUFUNC(op_44d0_0), 17616 }, /* MV2SR */ -{ CPUFUNC(op_44d8_0), 17624 }, /* MV2SR */ -{ CPUFUNC(op_44e0_0), 17632 }, /* MV2SR */ -{ CPUFUNC(op_44e8_0), 17640 }, /* MV2SR */ -{ CPUFUNC(op_44f0_0), 17648 }, /* MV2SR */ -{ CPUFUNC(op_44f8_0), 17656 }, /* MV2SR */ -{ CPUFUNC(op_44f9_0), 17657 }, /* MV2SR */ -{ CPUFUNC(op_44fa_0), 17658 }, /* MV2SR */ -{ CPUFUNC(op_44fb_0), 17659 }, /* MV2SR */ -{ CPUFUNC(op_44fc_0), 17660 }, /* MV2SR */ -{ CPUFUNC(op_4600_0), 17920 }, /* NOT */ -{ CPUFUNC(op_4610_0), 17936 }, /* NOT */ -{ CPUFUNC(op_4618_0), 17944 }, /* NOT */ -{ CPUFUNC(op_4620_0), 17952 }, /* NOT */ -{ CPUFUNC(op_4628_0), 17960 }, /* NOT */ -{ CPUFUNC(op_4630_0), 17968 }, /* NOT */ -{ CPUFUNC(op_4638_0), 17976 }, /* NOT */ -{ CPUFUNC(op_4639_0), 17977 }, /* NOT */ -{ CPUFUNC(op_4640_0), 17984 }, /* NOT */ -{ CPUFUNC(op_4650_0), 18000 }, /* NOT */ -{ CPUFUNC(op_4658_0), 18008 }, /* NOT */ -{ CPUFUNC(op_4660_0), 18016 }, /* NOT */ -{ CPUFUNC(op_4668_0), 18024 }, /* NOT */ -{ CPUFUNC(op_4670_0), 18032 }, /* NOT */ -{ CPUFUNC(op_4678_0), 18040 }, /* NOT */ -{ CPUFUNC(op_4679_0), 18041 }, /* NOT */ -{ CPUFUNC(op_4680_0), 18048 }, /* NOT */ -{ CPUFUNC(op_4690_0), 18064 }, /* NOT */ -{ CPUFUNC(op_4698_0), 18072 }, /* NOT */ -{ CPUFUNC(op_46a0_0), 18080 }, /* NOT */ -{ CPUFUNC(op_46a8_0), 18088 }, /* NOT */ -{ CPUFUNC(op_46b0_0), 18096 }, /* NOT */ -{ CPUFUNC(op_46b8_0), 18104 }, /* NOT */ -{ CPUFUNC(op_46b9_0), 18105 }, /* NOT */ -{ CPUFUNC(op_46c0_0), 18112 }, /* MV2SR */ -{ CPUFUNC(op_46d0_0), 18128 }, /* MV2SR */ -{ CPUFUNC(op_46d8_0), 18136 }, /* MV2SR */ -{ CPUFUNC(op_46e0_0), 18144 }, /* MV2SR */ -{ CPUFUNC(op_46e8_0), 18152 }, /* MV2SR */ -{ CPUFUNC(op_46f0_0), 18160 }, /* MV2SR */ -{ CPUFUNC(op_46f8_0), 18168 }, /* MV2SR */ -{ CPUFUNC(op_46f9_0), 18169 }, /* MV2SR */ -{ CPUFUNC(op_46fa_0), 18170 }, /* MV2SR */ -{ CPUFUNC(op_46fb_0), 18171 }, /* MV2SR */ -{ CPUFUNC(op_46fc_0), 18172 }, /* MV2SR */ -{ CPUFUNC(op_4800_2), 18432 }, /* NBCD */ -{ CPUFUNC(op_4808_0), 18440 }, /* LINK */ -{ CPUFUNC(op_4810_2), 18448 }, /* NBCD */ -{ CPUFUNC(op_4818_2), 18456 }, /* NBCD */ -{ CPUFUNC(op_4820_2), 18464 }, /* NBCD */ -{ CPUFUNC(op_4828_2), 18472 }, /* NBCD */ -{ CPUFUNC(op_4830_2), 18480 }, /* NBCD */ -{ CPUFUNC(op_4838_2), 18488 }, /* NBCD */ -{ CPUFUNC(op_4839_2), 18489 }, /* NBCD */ -{ CPUFUNC(op_4840_0), 18496 }, /* SWAP */ -{ CPUFUNC(op_4848_0), 18504 }, /* BKPT */ -{ CPUFUNC(op_4850_0), 18512 }, /* PEA */ -{ CPUFUNC(op_4868_0), 18536 }, /* PEA */ -{ CPUFUNC(op_4870_0), 18544 }, /* PEA */ -{ CPUFUNC(op_4878_0), 18552 }, /* PEA */ -{ CPUFUNC(op_4879_0), 18553 }, /* PEA */ -{ CPUFUNC(op_487a_0), 18554 }, /* PEA */ -{ CPUFUNC(op_487b_0), 18555 }, /* PEA */ -{ CPUFUNC(op_4880_0), 18560 }, /* EXT */ -{ CPUFUNC(op_4890_0), 18576 }, /* MVMLE */ -{ CPUFUNC(op_48a0_0), 18592 }, /* MVMLE */ -{ CPUFUNC(op_48a8_0), 18600 }, /* MVMLE */ -{ CPUFUNC(op_48b0_0), 18608 }, /* MVMLE */ -{ CPUFUNC(op_48b8_0), 18616 }, /* MVMLE */ -{ CPUFUNC(op_48b9_0), 18617 }, /* MVMLE */ -{ CPUFUNC(op_48c0_0), 18624 }, /* EXT */ -{ CPUFUNC(op_48d0_0), 18640 }, /* MVMLE */ -{ CPUFUNC(op_48e0_0), 18656 }, /* MVMLE */ -{ CPUFUNC(op_48e8_0), 18664 }, /* MVMLE */ -{ CPUFUNC(op_48f0_0), 18672 }, /* MVMLE */ -{ CPUFUNC(op_48f8_0), 18680 }, /* MVMLE */ -{ CPUFUNC(op_48f9_0), 18681 }, /* MVMLE */ -{ CPUFUNC(op_49c0_0), 18880 }, /* EXT */ -{ CPUFUNC(op_4a00_0), 18944 }, /* TST */ -{ CPUFUNC(op_4a10_0), 18960 }, /* TST */ -{ CPUFUNC(op_4a18_0), 18968 }, /* TST */ -{ CPUFUNC(op_4a20_0), 18976 }, /* TST */ -{ CPUFUNC(op_4a28_0), 18984 }, /* TST */ -{ CPUFUNC(op_4a30_0), 18992 }, /* TST */ -{ CPUFUNC(op_4a38_0), 19000 }, /* TST */ -{ CPUFUNC(op_4a39_0), 19001 }, /* TST */ -{ CPUFUNC(op_4a3a_0), 19002 }, /* TST */ -{ CPUFUNC(op_4a3b_0), 19003 }, /* TST */ -{ CPUFUNC(op_4a3c_0), 19004 }, /* TST */ -{ CPUFUNC(op_4a40_0), 19008 }, /* TST */ -{ CPUFUNC(op_4a48_0), 19016 }, /* TST */ -{ CPUFUNC(op_4a50_0), 19024 }, /* TST */ -{ CPUFUNC(op_4a58_0), 19032 }, /* TST */ -{ CPUFUNC(op_4a60_0), 19040 }, /* TST */ -{ CPUFUNC(op_4a68_0), 19048 }, /* TST */ -{ CPUFUNC(op_4a70_0), 19056 }, /* TST */ -{ CPUFUNC(op_4a78_0), 19064 }, /* TST */ -{ CPUFUNC(op_4a79_0), 19065 }, /* TST */ -{ CPUFUNC(op_4a7a_0), 19066 }, /* TST */ -{ CPUFUNC(op_4a7b_0), 19067 }, /* TST */ -{ CPUFUNC(op_4a7c_0), 19068 }, /* TST */ -{ CPUFUNC(op_4a80_0), 19072 }, /* TST */ -{ CPUFUNC(op_4a88_0), 19080 }, /* TST */ -{ CPUFUNC(op_4a90_0), 19088 }, /* TST */ -{ CPUFUNC(op_4a98_0), 19096 }, /* TST */ -{ CPUFUNC(op_4aa0_0), 19104 }, /* TST */ -{ CPUFUNC(op_4aa8_0), 19112 }, /* TST */ -{ CPUFUNC(op_4ab0_0), 19120 }, /* TST */ -{ CPUFUNC(op_4ab8_0), 19128 }, /* TST */ -{ CPUFUNC(op_4ab9_0), 19129 }, /* TST */ -{ CPUFUNC(op_4aba_0), 19130 }, /* TST */ -{ CPUFUNC(op_4abb_0), 19131 }, /* TST */ -{ CPUFUNC(op_4abc_0), 19132 }, /* TST */ -{ CPUFUNC(op_4ac0_0), 19136 }, /* TAS */ -{ CPUFUNC(op_4ad0_0), 19152 }, /* TAS */ -{ CPUFUNC(op_4ad8_0), 19160 }, /* TAS */ -{ CPUFUNC(op_4ae0_0), 19168 }, /* TAS */ -{ CPUFUNC(op_4ae8_0), 19176 }, /* TAS */ -{ CPUFUNC(op_4af0_0), 19184 }, /* TAS */ -{ CPUFUNC(op_4af8_0), 19192 }, /* TAS */ -{ CPUFUNC(op_4af9_0), 19193 }, /* TAS */ -{ CPUFUNC(op_4c00_0), 19456 }, /* MULL */ -{ CPUFUNC(op_4c10_0), 19472 }, /* MULL */ -{ CPUFUNC(op_4c18_0), 19480 }, /* MULL */ -{ CPUFUNC(op_4c20_0), 19488 }, /* MULL */ -{ CPUFUNC(op_4c28_0), 19496 }, /* MULL */ -{ CPUFUNC(op_4c30_0), 19504 }, /* MULL */ -{ CPUFUNC(op_4c38_0), 19512 }, /* MULL */ -{ CPUFUNC(op_4c39_0), 19513 }, /* MULL */ -{ CPUFUNC(op_4c3a_0), 19514 }, /* MULL */ -{ CPUFUNC(op_4c3b_0), 19515 }, /* MULL */ -{ CPUFUNC(op_4c3c_0), 19516 }, /* MULL */ -{ CPUFUNC(op_4c40_0), 19520 }, /* DIVL */ -{ CPUFUNC(op_4c50_0), 19536 }, /* DIVL */ -{ CPUFUNC(op_4c58_0), 19544 }, /* DIVL */ -{ CPUFUNC(op_4c60_0), 19552 }, /* DIVL */ -{ CPUFUNC(op_4c68_0), 19560 }, /* DIVL */ -{ CPUFUNC(op_4c70_0), 19568 }, /* DIVL */ -{ CPUFUNC(op_4c78_0), 19576 }, /* DIVL */ -{ CPUFUNC(op_4c79_0), 19577 }, /* DIVL */ -{ CPUFUNC(op_4c7a_0), 19578 }, /* DIVL */ -{ CPUFUNC(op_4c7b_0), 19579 }, /* DIVL */ -{ CPUFUNC(op_4c7c_0), 19580 }, /* DIVL */ -{ CPUFUNC(op_4c90_0), 19600 }, /* MVMEL */ -{ CPUFUNC(op_4c98_0), 19608 }, /* MVMEL */ -{ CPUFUNC(op_4ca8_0), 19624 }, /* MVMEL */ -{ CPUFUNC(op_4cb0_0), 19632 }, /* MVMEL */ -{ CPUFUNC(op_4cb8_0), 19640 }, /* MVMEL */ -{ CPUFUNC(op_4cb9_0), 19641 }, /* MVMEL */ -{ CPUFUNC(op_4cba_0), 19642 }, /* MVMEL */ -{ CPUFUNC(op_4cbb_0), 19643 }, /* MVMEL */ -{ CPUFUNC(op_4cd0_0), 19664 }, /* MVMEL */ -{ CPUFUNC(op_4cd8_0), 19672 }, /* MVMEL */ -{ CPUFUNC(op_4ce8_0), 19688 }, /* MVMEL */ -{ CPUFUNC(op_4cf0_0), 19696 }, /* MVMEL */ -{ CPUFUNC(op_4cf8_0), 19704 }, /* MVMEL */ -{ CPUFUNC(op_4cf9_0), 19705 }, /* MVMEL */ -{ CPUFUNC(op_4cfa_0), 19706 }, /* MVMEL */ -{ CPUFUNC(op_4cfb_0), 19707 }, /* MVMEL */ -{ CPUFUNC(op_4e40_0), 20032 }, /* TRAP */ -{ CPUFUNC(op_4e50_0), 20048 }, /* LINK */ -{ CPUFUNC(op_4e58_0), 20056 }, /* UNLK */ -{ CPUFUNC(op_4e60_0), 20064 }, /* MVR2USP */ -{ CPUFUNC(op_4e68_0), 20072 }, /* MVUSP2R */ -{ CPUFUNC(op_4e70_0), 20080 }, /* RESET */ -{ CPUFUNC(op_4e71_0), 20081 }, /* NOP */ -{ CPUFUNC(op_4e72_0), 20082 }, /* STOP */ -{ CPUFUNC(op_4e73_0), 20083 }, /* RTE */ -{ CPUFUNC(op_4e74_0), 20084 }, /* RTD */ -{ CPUFUNC(op_4e75_0), 20085 }, /* RTS */ -{ CPUFUNC(op_4e76_0), 20086 }, /* TRAPV */ -{ CPUFUNC(op_4e77_0), 20087 }, /* RTR */ -{ CPUFUNC(op_4e7a_0), 20090 }, /* MOVEC2 */ -{ CPUFUNC(op_4e7b_0), 20091 }, /* MOVE2C */ -{ CPUFUNC(op_4e90_0), 20112 }, /* JSR */ -{ CPUFUNC(op_4ea8_0), 20136 }, /* JSR */ -{ CPUFUNC(op_4eb0_0), 20144 }, /* JSR */ -{ CPUFUNC(op_4eb8_0), 20152 }, /* JSR */ -{ CPUFUNC(op_4eb9_0), 20153 }, /* JSR */ -{ CPUFUNC(op_4eba_0), 20154 }, /* JSR */ -{ CPUFUNC(op_4ebb_0), 20155 }, /* JSR */ -{ CPUFUNC(op_4ed0_0), 20176 }, /* JMP */ -{ CPUFUNC(op_4ee8_0), 20200 }, /* JMP */ -{ CPUFUNC(op_4ef0_0), 20208 }, /* JMP */ -{ CPUFUNC(op_4ef8_0), 20216 }, /* JMP */ -{ CPUFUNC(op_4ef9_0), 20217 }, /* JMP */ -{ CPUFUNC(op_4efa_0), 20218 }, /* JMP */ -{ CPUFUNC(op_4efb_0), 20219 }, /* JMP */ -{ CPUFUNC(op_5000_0), 20480 }, /* ADD */ -{ CPUFUNC(op_5010_0), 20496 }, /* ADD */ -{ CPUFUNC(op_5018_0), 20504 }, /* ADD */ -{ CPUFUNC(op_5020_0), 20512 }, /* ADD */ -{ CPUFUNC(op_5028_0), 20520 }, /* ADD */ -{ CPUFUNC(op_5030_0), 20528 }, /* ADD */ -{ CPUFUNC(op_5038_0), 20536 }, /* ADD */ -{ CPUFUNC(op_5039_0), 20537 }, /* ADD */ -{ CPUFUNC(op_5040_0), 20544 }, /* ADD */ -{ CPUFUNC(op_5048_0), 20552 }, /* ADDA */ -{ CPUFUNC(op_5050_0), 20560 }, /* ADD */ -{ CPUFUNC(op_5058_0), 20568 }, /* ADD */ -{ CPUFUNC(op_5060_0), 20576 }, /* ADD */ -{ CPUFUNC(op_5068_0), 20584 }, /* ADD */ -{ CPUFUNC(op_5070_0), 20592 }, /* ADD */ -{ CPUFUNC(op_5078_0), 20600 }, /* ADD */ -{ CPUFUNC(op_5079_0), 20601 }, /* ADD */ -{ CPUFUNC(op_5080_0), 20608 }, /* ADD */ -{ CPUFUNC(op_5088_0), 20616 }, /* ADDA */ -{ CPUFUNC(op_5090_0), 20624 }, /* ADD */ -{ CPUFUNC(op_5098_0), 20632 }, /* ADD */ -{ CPUFUNC(op_50a0_0), 20640 }, /* ADD */ -{ CPUFUNC(op_50a8_0), 20648 }, /* ADD */ -{ CPUFUNC(op_50b0_0), 20656 }, /* ADD */ -{ CPUFUNC(op_50b8_0), 20664 }, /* ADD */ -{ CPUFUNC(op_50b9_0), 20665 }, /* ADD */ -{ CPUFUNC(op_50c0_0), 20672 }, /* Scc */ -{ CPUFUNC(op_50c8_0), 20680 }, /* DBcc */ -{ CPUFUNC(op_50d0_0), 20688 }, /* Scc */ -{ CPUFUNC(op_50d8_0), 20696 }, /* Scc */ -{ CPUFUNC(op_50e0_0), 20704 }, /* Scc */ -{ CPUFUNC(op_50e8_0), 20712 }, /* Scc */ -{ CPUFUNC(op_50f0_0), 20720 }, /* Scc */ -{ CPUFUNC(op_50f8_0), 20728 }, /* Scc */ -{ CPUFUNC(op_50f9_0), 20729 }, /* Scc */ -{ CPUFUNC(op_50fa_0), 20730 }, /* TRAPcc */ -{ CPUFUNC(op_50fb_0), 20731 }, /* TRAPcc */ -{ CPUFUNC(op_50fc_0), 20732 }, /* TRAPcc */ -{ CPUFUNC(op_5100_0), 20736 }, /* SUB */ -{ CPUFUNC(op_5110_0), 20752 }, /* SUB */ -{ CPUFUNC(op_5118_0), 20760 }, /* SUB */ -{ CPUFUNC(op_5120_0), 20768 }, /* SUB */ -{ CPUFUNC(op_5128_0), 20776 }, /* SUB */ -{ CPUFUNC(op_5130_0), 20784 }, /* SUB */ -{ CPUFUNC(op_5138_0), 20792 }, /* SUB */ -{ CPUFUNC(op_5139_0), 20793 }, /* SUB */ -{ CPUFUNC(op_5140_0), 20800 }, /* SUB */ -{ CPUFUNC(op_5148_0), 20808 }, /* SUBA */ -{ CPUFUNC(op_5150_0), 20816 }, /* SUB */ -{ CPUFUNC(op_5158_0), 20824 }, /* SUB */ -{ CPUFUNC(op_5160_0), 20832 }, /* SUB */ -{ CPUFUNC(op_5168_0), 20840 }, /* SUB */ -{ CPUFUNC(op_5170_0), 20848 }, /* SUB */ -{ CPUFUNC(op_5178_0), 20856 }, /* SUB */ -{ CPUFUNC(op_5179_0), 20857 }, /* SUB */ -{ CPUFUNC(op_5180_0), 20864 }, /* SUB */ -{ CPUFUNC(op_5188_0), 20872 }, /* SUBA */ -{ CPUFUNC(op_5190_0), 20880 }, /* SUB */ -{ CPUFUNC(op_5198_0), 20888 }, /* SUB */ -{ CPUFUNC(op_51a0_0), 20896 }, /* SUB */ -{ CPUFUNC(op_51a8_0), 20904 }, /* SUB */ -{ CPUFUNC(op_51b0_0), 20912 }, /* SUB */ -{ CPUFUNC(op_51b8_0), 20920 }, /* SUB */ -{ CPUFUNC(op_51b9_0), 20921 }, /* SUB */ -{ CPUFUNC(op_51c0_0), 20928 }, /* Scc */ -{ CPUFUNC(op_51c8_0), 20936 }, /* DBcc */ -{ CPUFUNC(op_51d0_0), 20944 }, /* Scc */ -{ CPUFUNC(op_51d8_0), 20952 }, /* Scc */ -{ CPUFUNC(op_51e0_0), 20960 }, /* Scc */ -{ CPUFUNC(op_51e8_0), 20968 }, /* Scc */ -{ CPUFUNC(op_51f0_0), 20976 }, /* Scc */ -{ CPUFUNC(op_51f8_0), 20984 }, /* Scc */ -{ CPUFUNC(op_51f9_0), 20985 }, /* Scc */ -{ CPUFUNC(op_51fa_0), 20986 }, /* TRAPcc */ -{ CPUFUNC(op_51fb_0), 20987 }, /* TRAPcc */ -{ CPUFUNC(op_51fc_0), 20988 }, /* TRAPcc */ -{ CPUFUNC(op_52c0_0), 21184 }, /* Scc */ -{ CPUFUNC(op_52c8_0), 21192 }, /* DBcc */ -{ CPUFUNC(op_52d0_0), 21200 }, /* Scc */ -{ CPUFUNC(op_52d8_0), 21208 }, /* Scc */ -{ CPUFUNC(op_52e0_0), 21216 }, /* Scc */ -{ CPUFUNC(op_52e8_0), 21224 }, /* Scc */ -{ CPUFUNC(op_52f0_0), 21232 }, /* Scc */ -{ CPUFUNC(op_52f8_0), 21240 }, /* Scc */ -{ CPUFUNC(op_52f9_0), 21241 }, /* Scc */ -{ CPUFUNC(op_52fa_0), 21242 }, /* TRAPcc */ -{ CPUFUNC(op_52fb_0), 21243 }, /* TRAPcc */ -{ CPUFUNC(op_52fc_0), 21244 }, /* TRAPcc */ -{ CPUFUNC(op_53c0_0), 21440 }, /* Scc */ -{ CPUFUNC(op_53c8_0), 21448 }, /* DBcc */ -{ CPUFUNC(op_53d0_0), 21456 }, /* Scc */ -{ CPUFUNC(op_53d8_0), 21464 }, /* Scc */ -{ CPUFUNC(op_53e0_0), 21472 }, /* Scc */ -{ CPUFUNC(op_53e8_0), 21480 }, /* Scc */ -{ CPUFUNC(op_53f0_0), 21488 }, /* Scc */ -{ CPUFUNC(op_53f8_0), 21496 }, /* Scc */ -{ CPUFUNC(op_53f9_0), 21497 }, /* Scc */ -{ CPUFUNC(op_53fa_0), 21498 }, /* TRAPcc */ -{ CPUFUNC(op_53fb_0), 21499 }, /* TRAPcc */ -{ CPUFUNC(op_53fc_0), 21500 }, /* TRAPcc */ -{ CPUFUNC(op_54c0_0), 21696 }, /* Scc */ -{ CPUFUNC(op_54c8_0), 21704 }, /* DBcc */ -{ CPUFUNC(op_54d0_0), 21712 }, /* Scc */ -{ CPUFUNC(op_54d8_0), 21720 }, /* Scc */ -{ CPUFUNC(op_54e0_0), 21728 }, /* Scc */ -{ CPUFUNC(op_54e8_0), 21736 }, /* Scc */ -{ CPUFUNC(op_54f0_0), 21744 }, /* Scc */ -{ CPUFUNC(op_54f8_0), 21752 }, /* Scc */ -{ CPUFUNC(op_54f9_0), 21753 }, /* Scc */ -{ CPUFUNC(op_54fa_0), 21754 }, /* TRAPcc */ -{ CPUFUNC(op_54fb_0), 21755 }, /* TRAPcc */ -{ CPUFUNC(op_54fc_0), 21756 }, /* TRAPcc */ -{ CPUFUNC(op_55c0_0), 21952 }, /* Scc */ -{ CPUFUNC(op_55c8_0), 21960 }, /* DBcc */ -{ CPUFUNC(op_55d0_0), 21968 }, /* Scc */ -{ CPUFUNC(op_55d8_0), 21976 }, /* Scc */ -{ CPUFUNC(op_55e0_0), 21984 }, /* Scc */ -{ CPUFUNC(op_55e8_0), 21992 }, /* Scc */ -{ CPUFUNC(op_55f0_0), 22000 }, /* Scc */ -{ CPUFUNC(op_55f8_0), 22008 }, /* Scc */ -{ CPUFUNC(op_55f9_0), 22009 }, /* Scc */ -{ CPUFUNC(op_55fa_0), 22010 }, /* TRAPcc */ -{ CPUFUNC(op_55fb_0), 22011 }, /* TRAPcc */ -{ CPUFUNC(op_55fc_0), 22012 }, /* TRAPcc */ -{ CPUFUNC(op_56c0_0), 22208 }, /* Scc */ -{ CPUFUNC(op_56c8_0), 22216 }, /* DBcc */ -{ CPUFUNC(op_56d0_0), 22224 }, /* Scc */ -{ CPUFUNC(op_56d8_0), 22232 }, /* Scc */ -{ CPUFUNC(op_56e0_0), 22240 }, /* Scc */ -{ CPUFUNC(op_56e8_0), 22248 }, /* Scc */ -{ CPUFUNC(op_56f0_0), 22256 }, /* Scc */ -{ CPUFUNC(op_56f8_0), 22264 }, /* Scc */ -{ CPUFUNC(op_56f9_0), 22265 }, /* Scc */ -{ CPUFUNC(op_56fa_0), 22266 }, /* TRAPcc */ -{ CPUFUNC(op_56fb_0), 22267 }, /* TRAPcc */ -{ CPUFUNC(op_56fc_0), 22268 }, /* TRAPcc */ -{ CPUFUNC(op_57c0_0), 22464 }, /* Scc */ -{ CPUFUNC(op_57c8_0), 22472 }, /* DBcc */ -{ CPUFUNC(op_57d0_0), 22480 }, /* Scc */ -{ CPUFUNC(op_57d8_0), 22488 }, /* Scc */ -{ CPUFUNC(op_57e0_0), 22496 }, /* Scc */ -{ CPUFUNC(op_57e8_0), 22504 }, /* Scc */ -{ CPUFUNC(op_57f0_0), 22512 }, /* Scc */ -{ CPUFUNC(op_57f8_0), 22520 }, /* Scc */ -{ CPUFUNC(op_57f9_0), 22521 }, /* Scc */ -{ CPUFUNC(op_57fa_0), 22522 }, /* TRAPcc */ -{ CPUFUNC(op_57fb_0), 22523 }, /* TRAPcc */ -{ CPUFUNC(op_57fc_0), 22524 }, /* TRAPcc */ -{ CPUFUNC(op_58c0_0), 22720 }, /* Scc */ -{ CPUFUNC(op_58c8_0), 22728 }, /* DBcc */ -{ CPUFUNC(op_58d0_0), 22736 }, /* Scc */ -{ CPUFUNC(op_58d8_0), 22744 }, /* Scc */ -{ CPUFUNC(op_58e0_0), 22752 }, /* Scc */ -{ CPUFUNC(op_58e8_0), 22760 }, /* Scc */ -{ CPUFUNC(op_58f0_0), 22768 }, /* Scc */ -{ CPUFUNC(op_58f8_0), 22776 }, /* Scc */ -{ CPUFUNC(op_58f9_0), 22777 }, /* Scc */ -{ CPUFUNC(op_58fa_0), 22778 }, /* TRAPcc */ -{ CPUFUNC(op_58fb_0), 22779 }, /* TRAPcc */ -{ CPUFUNC(op_58fc_0), 22780 }, /* TRAPcc */ -{ CPUFUNC(op_59c0_0), 22976 }, /* Scc */ -{ CPUFUNC(op_59c8_0), 22984 }, /* DBcc */ -{ CPUFUNC(op_59d0_0), 22992 }, /* Scc */ -{ CPUFUNC(op_59d8_0), 23000 }, /* Scc */ -{ CPUFUNC(op_59e0_0), 23008 }, /* Scc */ -{ CPUFUNC(op_59e8_0), 23016 }, /* Scc */ -{ CPUFUNC(op_59f0_0), 23024 }, /* Scc */ -{ CPUFUNC(op_59f8_0), 23032 }, /* Scc */ -{ CPUFUNC(op_59f9_0), 23033 }, /* Scc */ -{ CPUFUNC(op_59fa_0), 23034 }, /* TRAPcc */ -{ CPUFUNC(op_59fb_0), 23035 }, /* TRAPcc */ -{ CPUFUNC(op_59fc_0), 23036 }, /* TRAPcc */ -{ CPUFUNC(op_5ac0_0), 23232 }, /* Scc */ -{ CPUFUNC(op_5ac8_0), 23240 }, /* DBcc */ -{ CPUFUNC(op_5ad0_0), 23248 }, /* Scc */ -{ CPUFUNC(op_5ad8_0), 23256 }, /* Scc */ -{ CPUFUNC(op_5ae0_0), 23264 }, /* Scc */ -{ CPUFUNC(op_5ae8_0), 23272 }, /* Scc */ -{ CPUFUNC(op_5af0_0), 23280 }, /* Scc */ -{ CPUFUNC(op_5af8_0), 23288 }, /* Scc */ -{ CPUFUNC(op_5af9_0), 23289 }, /* Scc */ -{ CPUFUNC(op_5afa_0), 23290 }, /* TRAPcc */ -{ CPUFUNC(op_5afb_0), 23291 }, /* TRAPcc */ -{ CPUFUNC(op_5afc_0), 23292 }, /* TRAPcc */ -{ CPUFUNC(op_5bc0_0), 23488 }, /* Scc */ -{ CPUFUNC(op_5bc8_0), 23496 }, /* DBcc */ -{ CPUFUNC(op_5bd0_0), 23504 }, /* Scc */ -{ CPUFUNC(op_5bd8_0), 23512 }, /* Scc */ -{ CPUFUNC(op_5be0_0), 23520 }, /* Scc */ -{ CPUFUNC(op_5be8_0), 23528 }, /* Scc */ -{ CPUFUNC(op_5bf0_0), 23536 }, /* Scc */ -{ CPUFUNC(op_5bf8_0), 23544 }, /* Scc */ -{ CPUFUNC(op_5bf9_0), 23545 }, /* Scc */ -{ CPUFUNC(op_5bfa_0), 23546 }, /* TRAPcc */ -{ CPUFUNC(op_5bfb_0), 23547 }, /* TRAPcc */ -{ CPUFUNC(op_5bfc_0), 23548 }, /* TRAPcc */ -{ CPUFUNC(op_5cc0_0), 23744 }, /* Scc */ -{ CPUFUNC(op_5cc8_0), 23752 }, /* DBcc */ -{ CPUFUNC(op_5cd0_0), 23760 }, /* Scc */ -{ CPUFUNC(op_5cd8_0), 23768 }, /* Scc */ -{ CPUFUNC(op_5ce0_0), 23776 }, /* Scc */ -{ CPUFUNC(op_5ce8_0), 23784 }, /* Scc */ -{ CPUFUNC(op_5cf0_0), 23792 }, /* Scc */ -{ CPUFUNC(op_5cf8_0), 23800 }, /* Scc */ -{ CPUFUNC(op_5cf9_0), 23801 }, /* Scc */ -{ CPUFUNC(op_5cfa_0), 23802 }, /* TRAPcc */ -{ CPUFUNC(op_5cfb_0), 23803 }, /* TRAPcc */ -{ CPUFUNC(op_5cfc_0), 23804 }, /* TRAPcc */ -{ CPUFUNC(op_5dc0_0), 24000 }, /* Scc */ -{ CPUFUNC(op_5dc8_0), 24008 }, /* DBcc */ -{ CPUFUNC(op_5dd0_0), 24016 }, /* Scc */ -{ CPUFUNC(op_5dd8_0), 24024 }, /* Scc */ -{ CPUFUNC(op_5de0_0), 24032 }, /* Scc */ -{ CPUFUNC(op_5de8_0), 24040 }, /* Scc */ -{ CPUFUNC(op_5df0_0), 24048 }, /* Scc */ -{ CPUFUNC(op_5df8_0), 24056 }, /* Scc */ -{ CPUFUNC(op_5df9_0), 24057 }, /* Scc */ -{ CPUFUNC(op_5dfa_0), 24058 }, /* TRAPcc */ -{ CPUFUNC(op_5dfb_0), 24059 }, /* TRAPcc */ -{ CPUFUNC(op_5dfc_0), 24060 }, /* TRAPcc */ -{ CPUFUNC(op_5ec0_0), 24256 }, /* Scc */ -{ CPUFUNC(op_5ec8_0), 24264 }, /* DBcc */ -{ CPUFUNC(op_5ed0_0), 24272 }, /* Scc */ -{ CPUFUNC(op_5ed8_0), 24280 }, /* Scc */ -{ CPUFUNC(op_5ee0_0), 24288 }, /* Scc */ -{ CPUFUNC(op_5ee8_0), 24296 }, /* Scc */ -{ CPUFUNC(op_5ef0_0), 24304 }, /* Scc */ -{ CPUFUNC(op_5ef8_0), 24312 }, /* Scc */ -{ CPUFUNC(op_5ef9_0), 24313 }, /* Scc */ -{ CPUFUNC(op_5efa_0), 24314 }, /* TRAPcc */ -{ CPUFUNC(op_5efb_0), 24315 }, /* TRAPcc */ -{ CPUFUNC(op_5efc_0), 24316 }, /* TRAPcc */ -{ CPUFUNC(op_5fc0_0), 24512 }, /* Scc */ -{ CPUFUNC(op_5fc8_0), 24520 }, /* DBcc */ -{ CPUFUNC(op_5fd0_0), 24528 }, /* Scc */ -{ CPUFUNC(op_5fd8_0), 24536 }, /* Scc */ -{ CPUFUNC(op_5fe0_0), 24544 }, /* Scc */ -{ CPUFUNC(op_5fe8_0), 24552 }, /* Scc */ -{ CPUFUNC(op_5ff0_0), 24560 }, /* Scc */ -{ CPUFUNC(op_5ff8_0), 24568 }, /* Scc */ -{ CPUFUNC(op_5ff9_0), 24569 }, /* Scc */ -{ CPUFUNC(op_5ffa_0), 24570 }, /* TRAPcc */ -{ CPUFUNC(op_5ffb_0), 24571 }, /* TRAPcc */ -{ CPUFUNC(op_5ffc_0), 24572 }, /* TRAPcc */ -{ CPUFUNC(op_6000_0), 24576 }, /* Bcc */ -{ CPUFUNC(op_6001_0), 24577 }, /* Bcc */ -{ CPUFUNC(op_60ff_0), 24831 }, /* Bcc */ -{ CPUFUNC(op_6100_0), 24832 }, /* BSR */ -{ CPUFUNC(op_6101_0), 24833 }, /* BSR */ -{ CPUFUNC(op_61ff_0), 25087 }, /* BSR */ -{ CPUFUNC(op_6200_0), 25088 }, /* Bcc */ -{ CPUFUNC(op_6201_0), 25089 }, /* Bcc */ -{ CPUFUNC(op_62ff_0), 25343 }, /* Bcc */ -{ CPUFUNC(op_6300_0), 25344 }, /* Bcc */ -{ CPUFUNC(op_6301_0), 25345 }, /* Bcc */ -{ CPUFUNC(op_63ff_0), 25599 }, /* Bcc */ -{ CPUFUNC(op_6400_0), 25600 }, /* Bcc */ -{ CPUFUNC(op_6401_0), 25601 }, /* Bcc */ -{ CPUFUNC(op_64ff_0), 25855 }, /* Bcc */ -{ CPUFUNC(op_6500_0), 25856 }, /* Bcc */ -{ CPUFUNC(op_6501_0), 25857 }, /* Bcc */ -{ CPUFUNC(op_65ff_0), 26111 }, /* Bcc */ -{ CPUFUNC(op_6600_0), 26112 }, /* Bcc */ -{ CPUFUNC(op_6601_0), 26113 }, /* Bcc */ -{ CPUFUNC(op_66ff_0), 26367 }, /* Bcc */ -{ CPUFUNC(op_6700_0), 26368 }, /* Bcc */ -{ CPUFUNC(op_6701_0), 26369 }, /* Bcc */ -{ CPUFUNC(op_67ff_0), 26623 }, /* Bcc */ -{ CPUFUNC(op_6800_0), 26624 }, /* Bcc */ -{ CPUFUNC(op_6801_0), 26625 }, /* Bcc */ -{ CPUFUNC(op_68ff_0), 26879 }, /* Bcc */ -{ CPUFUNC(op_6900_0), 26880 }, /* Bcc */ -{ CPUFUNC(op_6901_0), 26881 }, /* Bcc */ -{ CPUFUNC(op_69ff_0), 27135 }, /* Bcc */ -{ CPUFUNC(op_6a00_0), 27136 }, /* Bcc */ -{ CPUFUNC(op_6a01_0), 27137 }, /* Bcc */ -{ CPUFUNC(op_6aff_0), 27391 }, /* Bcc */ -{ CPUFUNC(op_6b00_0), 27392 }, /* Bcc */ -{ CPUFUNC(op_6b01_0), 27393 }, /* Bcc */ -{ CPUFUNC(op_6bff_0), 27647 }, /* Bcc */ -{ CPUFUNC(op_6c00_0), 27648 }, /* Bcc */ -{ CPUFUNC(op_6c01_0), 27649 }, /* Bcc */ -{ CPUFUNC(op_6cff_0), 27903 }, /* Bcc */ -{ CPUFUNC(op_6d00_0), 27904 }, /* Bcc */ -{ CPUFUNC(op_6d01_0), 27905 }, /* Bcc */ -{ CPUFUNC(op_6dff_0), 28159 }, /* Bcc */ -{ CPUFUNC(op_6e00_0), 28160 }, /* Bcc */ -{ CPUFUNC(op_6e01_0), 28161 }, /* Bcc */ -{ CPUFUNC(op_6eff_0), 28415 }, /* Bcc */ -{ CPUFUNC(op_6f00_0), 28416 }, /* Bcc */ -{ CPUFUNC(op_6f01_0), 28417 }, /* Bcc */ -{ CPUFUNC(op_6fff_0), 28671 }, /* Bcc */ -{ CPUFUNC(op_7000_0), 28672 }, /* MOVE */ -{ CPUFUNC(op_8000_0), 32768 }, /* OR */ -{ CPUFUNC(op_8010_0), 32784 }, /* OR */ -{ CPUFUNC(op_8018_0), 32792 }, /* OR */ -{ CPUFUNC(op_8020_0), 32800 }, /* OR */ -{ CPUFUNC(op_8028_0), 32808 }, /* OR */ -{ CPUFUNC(op_8030_0), 32816 }, /* OR */ -{ CPUFUNC(op_8038_0), 32824 }, /* OR */ -{ CPUFUNC(op_8039_0), 32825 }, /* OR */ -{ CPUFUNC(op_803a_0), 32826 }, /* OR */ -{ CPUFUNC(op_803b_0), 32827 }, /* OR */ -{ CPUFUNC(op_803c_0), 32828 }, /* OR */ -{ CPUFUNC(op_8040_0), 32832 }, /* OR */ -{ CPUFUNC(op_8050_0), 32848 }, /* OR */ -{ CPUFUNC(op_8058_0), 32856 }, /* OR */ -{ CPUFUNC(op_8060_0), 32864 }, /* OR */ -{ CPUFUNC(op_8068_0), 32872 }, /* OR */ -{ CPUFUNC(op_8070_0), 32880 }, /* OR */ -{ CPUFUNC(op_8078_0), 32888 }, /* OR */ -{ CPUFUNC(op_8079_0), 32889 }, /* OR */ -{ CPUFUNC(op_807a_0), 32890 }, /* OR */ -{ CPUFUNC(op_807b_0), 32891 }, /* OR */ -{ CPUFUNC(op_807c_0), 32892 }, /* OR */ -{ CPUFUNC(op_8080_0), 32896 }, /* OR */ -{ CPUFUNC(op_8090_0), 32912 }, /* OR */ -{ CPUFUNC(op_8098_0), 32920 }, /* OR */ -{ CPUFUNC(op_80a0_0), 32928 }, /* OR */ -{ CPUFUNC(op_80a8_0), 32936 }, /* OR */ -{ CPUFUNC(op_80b0_0), 32944 }, /* OR */ -{ CPUFUNC(op_80b8_0), 32952 }, /* OR */ -{ CPUFUNC(op_80b9_0), 32953 }, /* OR */ -{ CPUFUNC(op_80ba_0), 32954 }, /* OR */ -{ CPUFUNC(op_80bb_0), 32955 }, /* OR */ -{ CPUFUNC(op_80bc_0), 32956 }, /* OR */ -{ CPUFUNC(op_80c0_0), 32960 }, /* DIVU */ -{ CPUFUNC(op_80d0_0), 32976 }, /* DIVU */ -{ CPUFUNC(op_80d8_0), 32984 }, /* DIVU */ -{ CPUFUNC(op_80e0_0), 32992 }, /* DIVU */ -{ CPUFUNC(op_80e8_0), 33000 }, /* DIVU */ -{ CPUFUNC(op_80f0_0), 33008 }, /* DIVU */ -{ CPUFUNC(op_80f8_0), 33016 }, /* DIVU */ -{ CPUFUNC(op_80f9_0), 33017 }, /* DIVU */ -{ CPUFUNC(op_80fa_0), 33018 }, /* DIVU */ -{ CPUFUNC(op_80fb_0), 33019 }, /* DIVU */ -{ CPUFUNC(op_80fc_0), 33020 }, /* DIVU */ -{ CPUFUNC(op_8100_2), 33024 }, /* SBCD */ -{ CPUFUNC(op_8108_2), 33032 }, /* SBCD */ -{ CPUFUNC(op_8110_0), 33040 }, /* OR */ -{ CPUFUNC(op_8118_0), 33048 }, /* OR */ -{ CPUFUNC(op_8120_0), 33056 }, /* OR */ -{ CPUFUNC(op_8128_0), 33064 }, /* OR */ -{ CPUFUNC(op_8130_0), 33072 }, /* OR */ -{ CPUFUNC(op_8138_0), 33080 }, /* OR */ -{ CPUFUNC(op_8139_0), 33081 }, /* OR */ -{ CPUFUNC(op_8140_0), 33088 }, /* PACK */ -{ CPUFUNC(op_8148_0), 33096 }, /* PACK */ -{ CPUFUNC(op_8150_0), 33104 }, /* OR */ -{ CPUFUNC(op_8158_0), 33112 }, /* OR */ -{ CPUFUNC(op_8160_0), 33120 }, /* OR */ -{ CPUFUNC(op_8168_0), 33128 }, /* OR */ -{ CPUFUNC(op_8170_0), 33136 }, /* OR */ -{ CPUFUNC(op_8178_0), 33144 }, /* OR */ -{ CPUFUNC(op_8179_0), 33145 }, /* OR */ -{ CPUFUNC(op_8180_0), 33152 }, /* UNPK */ -{ CPUFUNC(op_8188_0), 33160 }, /* UNPK */ -{ CPUFUNC(op_8190_0), 33168 }, /* OR */ -{ CPUFUNC(op_8198_0), 33176 }, /* OR */ -{ CPUFUNC(op_81a0_0), 33184 }, /* OR */ -{ CPUFUNC(op_81a8_0), 33192 }, /* OR */ -{ CPUFUNC(op_81b0_0), 33200 }, /* OR */ -{ CPUFUNC(op_81b8_0), 33208 }, /* OR */ -{ CPUFUNC(op_81b9_0), 33209 }, /* OR */ -{ CPUFUNC(op_81c0_0), 33216 }, /* DIVS */ -{ CPUFUNC(op_81d0_0), 33232 }, /* DIVS */ -{ CPUFUNC(op_81d8_0), 33240 }, /* DIVS */ -{ CPUFUNC(op_81e0_0), 33248 }, /* DIVS */ -{ CPUFUNC(op_81e8_0), 33256 }, /* DIVS */ -{ CPUFUNC(op_81f0_0), 33264 }, /* DIVS */ -{ CPUFUNC(op_81f8_0), 33272 }, /* DIVS */ -{ CPUFUNC(op_81f9_0), 33273 }, /* DIVS */ -{ CPUFUNC(op_81fa_0), 33274 }, /* DIVS */ -{ CPUFUNC(op_81fb_0), 33275 }, /* DIVS */ -{ CPUFUNC(op_81fc_0), 33276 }, /* DIVS */ -{ CPUFUNC(op_9000_0), 36864 }, /* SUB */ -{ CPUFUNC(op_9010_0), 36880 }, /* SUB */ -{ CPUFUNC(op_9018_0), 36888 }, /* SUB */ -{ CPUFUNC(op_9020_0), 36896 }, /* SUB */ -{ CPUFUNC(op_9028_0), 36904 }, /* SUB */ -{ CPUFUNC(op_9030_0), 36912 }, /* SUB */ -{ CPUFUNC(op_9038_0), 36920 }, /* SUB */ -{ CPUFUNC(op_9039_0), 36921 }, /* SUB */ -{ CPUFUNC(op_903a_0), 36922 }, /* SUB */ -{ CPUFUNC(op_903b_0), 36923 }, /* SUB */ -{ CPUFUNC(op_903c_0), 36924 }, /* SUB */ -{ CPUFUNC(op_9040_0), 36928 }, /* SUB */ -{ CPUFUNC(op_9048_0), 36936 }, /* SUB */ -{ CPUFUNC(op_9050_0), 36944 }, /* SUB */ -{ CPUFUNC(op_9058_0), 36952 }, /* SUB */ -{ CPUFUNC(op_9060_0), 36960 }, /* SUB */ -{ CPUFUNC(op_9068_0), 36968 }, /* SUB */ -{ CPUFUNC(op_9070_0), 36976 }, /* SUB */ -{ CPUFUNC(op_9078_0), 36984 }, /* SUB */ -{ CPUFUNC(op_9079_0), 36985 }, /* SUB */ -{ CPUFUNC(op_907a_0), 36986 }, /* SUB */ -{ CPUFUNC(op_907b_0), 36987 }, /* SUB */ -{ CPUFUNC(op_907c_0), 36988 }, /* SUB */ -{ CPUFUNC(op_9080_0), 36992 }, /* SUB */ -{ CPUFUNC(op_9088_0), 37000 }, /* SUB */ -{ CPUFUNC(op_9090_0), 37008 }, /* SUB */ -{ CPUFUNC(op_9098_0), 37016 }, /* SUB */ -{ CPUFUNC(op_90a0_0), 37024 }, /* SUB */ -{ CPUFUNC(op_90a8_0), 37032 }, /* SUB */ -{ CPUFUNC(op_90b0_0), 37040 }, /* SUB */ -{ CPUFUNC(op_90b8_0), 37048 }, /* SUB */ -{ CPUFUNC(op_90b9_0), 37049 }, /* SUB */ -{ CPUFUNC(op_90ba_0), 37050 }, /* SUB */ -{ CPUFUNC(op_90bb_0), 37051 }, /* SUB */ -{ CPUFUNC(op_90bc_0), 37052 }, /* SUB */ -{ CPUFUNC(op_90c0_0), 37056 }, /* SUBA */ -{ CPUFUNC(op_90c8_0), 37064 }, /* SUBA */ -{ CPUFUNC(op_90d0_0), 37072 }, /* SUBA */ -{ CPUFUNC(op_90d8_0), 37080 }, /* SUBA */ -{ CPUFUNC(op_90e0_0), 37088 }, /* SUBA */ -{ CPUFUNC(op_90e8_0), 37096 }, /* SUBA */ -{ CPUFUNC(op_90f0_0), 37104 }, /* SUBA */ -{ CPUFUNC(op_90f8_0), 37112 }, /* SUBA */ -{ CPUFUNC(op_90f9_0), 37113 }, /* SUBA */ -{ CPUFUNC(op_90fa_0), 37114 }, /* SUBA */ -{ CPUFUNC(op_90fb_0), 37115 }, /* SUBA */ -{ CPUFUNC(op_90fc_0), 37116 }, /* SUBA */ -{ CPUFUNC(op_9100_0), 37120 }, /* SUBX */ -{ CPUFUNC(op_9108_0), 37128 }, /* SUBX */ -{ CPUFUNC(op_9110_0), 37136 }, /* SUB */ -{ CPUFUNC(op_9118_0), 37144 }, /* SUB */ -{ CPUFUNC(op_9120_0), 37152 }, /* SUB */ -{ CPUFUNC(op_9128_0), 37160 }, /* SUB */ -{ CPUFUNC(op_9130_0), 37168 }, /* SUB */ -{ CPUFUNC(op_9138_0), 37176 }, /* SUB */ -{ CPUFUNC(op_9139_0), 37177 }, /* SUB */ -{ CPUFUNC(op_9140_0), 37184 }, /* SUBX */ -{ CPUFUNC(op_9148_0), 37192 }, /* SUBX */ -{ CPUFUNC(op_9150_0), 37200 }, /* SUB */ -{ CPUFUNC(op_9158_0), 37208 }, /* SUB */ -{ CPUFUNC(op_9160_0), 37216 }, /* SUB */ -{ CPUFUNC(op_9168_0), 37224 }, /* SUB */ -{ CPUFUNC(op_9170_0), 37232 }, /* SUB */ -{ CPUFUNC(op_9178_0), 37240 }, /* SUB */ -{ CPUFUNC(op_9179_0), 37241 }, /* SUB */ -{ CPUFUNC(op_9180_0), 37248 }, /* SUBX */ -{ CPUFUNC(op_9188_0), 37256 }, /* SUBX */ -{ CPUFUNC(op_9190_0), 37264 }, /* SUB */ -{ CPUFUNC(op_9198_0), 37272 }, /* SUB */ -{ CPUFUNC(op_91a0_0), 37280 }, /* SUB */ -{ CPUFUNC(op_91a8_0), 37288 }, /* SUB */ -{ CPUFUNC(op_91b0_0), 37296 }, /* SUB */ -{ CPUFUNC(op_91b8_0), 37304 }, /* SUB */ -{ CPUFUNC(op_91b9_0), 37305 }, /* SUB */ -{ CPUFUNC(op_91c0_0), 37312 }, /* SUBA */ -{ CPUFUNC(op_91c8_0), 37320 }, /* SUBA */ -{ CPUFUNC(op_91d0_0), 37328 }, /* SUBA */ -{ CPUFUNC(op_91d8_0), 37336 }, /* SUBA */ -{ CPUFUNC(op_91e0_0), 37344 }, /* SUBA */ -{ CPUFUNC(op_91e8_0), 37352 }, /* SUBA */ -{ CPUFUNC(op_91f0_0), 37360 }, /* SUBA */ -{ CPUFUNC(op_91f8_0), 37368 }, /* SUBA */ -{ CPUFUNC(op_91f9_0), 37369 }, /* SUBA */ -{ CPUFUNC(op_91fa_0), 37370 }, /* SUBA */ -{ CPUFUNC(op_91fb_0), 37371 }, /* SUBA */ -{ CPUFUNC(op_91fc_0), 37372 }, /* SUBA */ -{ CPUFUNC(op_b000_0), 45056 }, /* CMP */ -{ CPUFUNC(op_b010_0), 45072 }, /* CMP */ -{ CPUFUNC(op_b018_0), 45080 }, /* CMP */ -{ CPUFUNC(op_b020_0), 45088 }, /* CMP */ -{ CPUFUNC(op_b028_0), 45096 }, /* CMP */ -{ CPUFUNC(op_b030_0), 45104 }, /* CMP */ -{ CPUFUNC(op_b038_0), 45112 }, /* CMP */ -{ CPUFUNC(op_b039_0), 45113 }, /* CMP */ -{ CPUFUNC(op_b03a_0), 45114 }, /* CMP */ -{ CPUFUNC(op_b03b_0), 45115 }, /* CMP */ -{ CPUFUNC(op_b03c_0), 45116 }, /* CMP */ -{ CPUFUNC(op_b040_0), 45120 }, /* CMP */ -{ CPUFUNC(op_b048_0), 45128 }, /* CMP */ -{ CPUFUNC(op_b050_0), 45136 }, /* CMP */ -{ CPUFUNC(op_b058_0), 45144 }, /* CMP */ -{ CPUFUNC(op_b060_0), 45152 }, /* CMP */ -{ CPUFUNC(op_b068_0), 45160 }, /* CMP */ -{ CPUFUNC(op_b070_0), 45168 }, /* CMP */ -{ CPUFUNC(op_b078_0), 45176 }, /* CMP */ -{ CPUFUNC(op_b079_0), 45177 }, /* CMP */ -{ CPUFUNC(op_b07a_0), 45178 }, /* CMP */ -{ CPUFUNC(op_b07b_0), 45179 }, /* CMP */ -{ CPUFUNC(op_b07c_0), 45180 }, /* CMP */ -{ CPUFUNC(op_b080_0), 45184 }, /* CMP */ -{ CPUFUNC(op_b088_0), 45192 }, /* CMP */ -{ CPUFUNC(op_b090_0), 45200 }, /* CMP */ -{ CPUFUNC(op_b098_0), 45208 }, /* CMP */ -{ CPUFUNC(op_b0a0_0), 45216 }, /* CMP */ -{ CPUFUNC(op_b0a8_0), 45224 }, /* CMP */ -{ CPUFUNC(op_b0b0_0), 45232 }, /* CMP */ -{ CPUFUNC(op_b0b8_0), 45240 }, /* CMP */ -{ CPUFUNC(op_b0b9_0), 45241 }, /* CMP */ -{ CPUFUNC(op_b0ba_0), 45242 }, /* CMP */ -{ CPUFUNC(op_b0bb_0), 45243 }, /* CMP */ -{ CPUFUNC(op_b0bc_0), 45244 }, /* CMP */ -{ CPUFUNC(op_b0c0_0), 45248 }, /* CMPA */ -{ CPUFUNC(op_b0c8_0), 45256 }, /* CMPA */ -{ CPUFUNC(op_b0d0_0), 45264 }, /* CMPA */ -{ CPUFUNC(op_b0d8_0), 45272 }, /* CMPA */ -{ CPUFUNC(op_b0e0_0), 45280 }, /* CMPA */ -{ CPUFUNC(op_b0e8_0), 45288 }, /* CMPA */ -{ CPUFUNC(op_b0f0_0), 45296 }, /* CMPA */ -{ CPUFUNC(op_b0f8_0), 45304 }, /* CMPA */ -{ CPUFUNC(op_b0f9_0), 45305 }, /* CMPA */ -{ CPUFUNC(op_b0fa_0), 45306 }, /* CMPA */ -{ CPUFUNC(op_b0fb_0), 45307 }, /* CMPA */ -{ CPUFUNC(op_b0fc_0), 45308 }, /* CMPA */ -{ CPUFUNC(op_b100_0), 45312 }, /* EOR */ -{ CPUFUNC(op_b108_0), 45320 }, /* CMPM */ -{ CPUFUNC(op_b110_0), 45328 }, /* EOR */ -{ CPUFUNC(op_b118_0), 45336 }, /* EOR */ -{ CPUFUNC(op_b120_0), 45344 }, /* EOR */ -{ CPUFUNC(op_b128_0), 45352 }, /* EOR */ -{ CPUFUNC(op_b130_0), 45360 }, /* EOR */ -{ CPUFUNC(op_b138_0), 45368 }, /* EOR */ -{ CPUFUNC(op_b139_0), 45369 }, /* EOR */ -{ CPUFUNC(op_b140_0), 45376 }, /* EOR */ -{ CPUFUNC(op_b148_0), 45384 }, /* CMPM */ -{ CPUFUNC(op_b150_0), 45392 }, /* EOR */ -{ CPUFUNC(op_b158_0), 45400 }, /* EOR */ -{ CPUFUNC(op_b160_0), 45408 }, /* EOR */ -{ CPUFUNC(op_b168_0), 45416 }, /* EOR */ -{ CPUFUNC(op_b170_0), 45424 }, /* EOR */ -{ CPUFUNC(op_b178_0), 45432 }, /* EOR */ -{ CPUFUNC(op_b179_0), 45433 }, /* EOR */ -{ CPUFUNC(op_b180_0), 45440 }, /* EOR */ -{ CPUFUNC(op_b188_0), 45448 }, /* CMPM */ -{ CPUFUNC(op_b190_0), 45456 }, /* EOR */ -{ CPUFUNC(op_b198_0), 45464 }, /* EOR */ -{ CPUFUNC(op_b1a0_0), 45472 }, /* EOR */ -{ CPUFUNC(op_b1a8_0), 45480 }, /* EOR */ -{ CPUFUNC(op_b1b0_0), 45488 }, /* EOR */ -{ CPUFUNC(op_b1b8_0), 45496 }, /* EOR */ -{ CPUFUNC(op_b1b9_0), 45497 }, /* EOR */ -{ CPUFUNC(op_b1c0_0), 45504 }, /* CMPA */ -{ CPUFUNC(op_b1c8_0), 45512 }, /* CMPA */ -{ CPUFUNC(op_b1d0_0), 45520 }, /* CMPA */ -{ CPUFUNC(op_b1d8_0), 45528 }, /* CMPA */ -{ CPUFUNC(op_b1e0_0), 45536 }, /* CMPA */ -{ CPUFUNC(op_b1e8_0), 45544 }, /* CMPA */ -{ CPUFUNC(op_b1f0_0), 45552 }, /* CMPA */ -{ CPUFUNC(op_b1f8_0), 45560 }, /* CMPA */ -{ CPUFUNC(op_b1f9_0), 45561 }, /* CMPA */ -{ CPUFUNC(op_b1fa_0), 45562 }, /* CMPA */ -{ CPUFUNC(op_b1fb_0), 45563 }, /* CMPA */ -{ CPUFUNC(op_b1fc_0), 45564 }, /* CMPA */ -{ CPUFUNC(op_c000_0), 49152 }, /* AND */ -{ CPUFUNC(op_c010_0), 49168 }, /* AND */ -{ CPUFUNC(op_c018_0), 49176 }, /* AND */ -{ CPUFUNC(op_c020_0), 49184 }, /* AND */ -{ CPUFUNC(op_c028_0), 49192 }, /* AND */ -{ CPUFUNC(op_c030_0), 49200 }, /* AND */ -{ CPUFUNC(op_c038_0), 49208 }, /* AND */ -{ CPUFUNC(op_c039_0), 49209 }, /* AND */ -{ CPUFUNC(op_c03a_0), 49210 }, /* AND */ -{ CPUFUNC(op_c03b_0), 49211 }, /* AND */ -{ CPUFUNC(op_c03c_0), 49212 }, /* AND */ -{ CPUFUNC(op_c040_0), 49216 }, /* AND */ -{ CPUFUNC(op_c050_0), 49232 }, /* AND */ -{ CPUFUNC(op_c058_0), 49240 }, /* AND */ -{ CPUFUNC(op_c060_0), 49248 }, /* AND */ -{ CPUFUNC(op_c068_0), 49256 }, /* AND */ -{ CPUFUNC(op_c070_0), 49264 }, /* AND */ -{ CPUFUNC(op_c078_0), 49272 }, /* AND */ -{ CPUFUNC(op_c079_0), 49273 }, /* AND */ -{ CPUFUNC(op_c07a_0), 49274 }, /* AND */ -{ CPUFUNC(op_c07b_0), 49275 }, /* AND */ -{ CPUFUNC(op_c07c_0), 49276 }, /* AND */ -{ CPUFUNC(op_c080_0), 49280 }, /* AND */ -{ CPUFUNC(op_c090_0), 49296 }, /* AND */ -{ CPUFUNC(op_c098_0), 49304 }, /* AND */ -{ CPUFUNC(op_c0a0_0), 49312 }, /* AND */ -{ CPUFUNC(op_c0a8_0), 49320 }, /* AND */ -{ CPUFUNC(op_c0b0_0), 49328 }, /* AND */ -{ CPUFUNC(op_c0b8_0), 49336 }, /* AND */ -{ CPUFUNC(op_c0b9_0), 49337 }, /* AND */ -{ CPUFUNC(op_c0ba_0), 49338 }, /* AND */ -{ CPUFUNC(op_c0bb_0), 49339 }, /* AND */ -{ CPUFUNC(op_c0bc_0), 49340 }, /* AND */ -{ CPUFUNC(op_c0c0_0), 49344 }, /* MULU */ -{ CPUFUNC(op_c0d0_0), 49360 }, /* MULU */ -{ CPUFUNC(op_c0d8_0), 49368 }, /* MULU */ -{ CPUFUNC(op_c0e0_0), 49376 }, /* MULU */ -{ CPUFUNC(op_c0e8_0), 49384 }, /* MULU */ -{ CPUFUNC(op_c0f0_0), 49392 }, /* MULU */ -{ CPUFUNC(op_c0f8_0), 49400 }, /* MULU */ -{ CPUFUNC(op_c0f9_0), 49401 }, /* MULU */ -{ CPUFUNC(op_c0fa_0), 49402 }, /* MULU */ -{ CPUFUNC(op_c0fb_0), 49403 }, /* MULU */ -{ CPUFUNC(op_c0fc_0), 49404 }, /* MULU */ -{ CPUFUNC(op_c100_2), 49408 }, /* ABCD */ -{ CPUFUNC(op_c108_2), 49416 }, /* ABCD */ -{ CPUFUNC(op_c110_0), 49424 }, /* AND */ -{ CPUFUNC(op_c118_0), 49432 }, /* AND */ -{ CPUFUNC(op_c120_0), 49440 }, /* AND */ -{ CPUFUNC(op_c128_0), 49448 }, /* AND */ -{ CPUFUNC(op_c130_0), 49456 }, /* AND */ -{ CPUFUNC(op_c138_0), 49464 }, /* AND */ -{ CPUFUNC(op_c139_0), 49465 }, /* AND */ -{ CPUFUNC(op_c140_0), 49472 }, /* EXG */ -{ CPUFUNC(op_c148_0), 49480 }, /* EXG */ -{ CPUFUNC(op_c150_0), 49488 }, /* AND */ -{ CPUFUNC(op_c158_0), 49496 }, /* AND */ -{ CPUFUNC(op_c160_0), 49504 }, /* AND */ -{ CPUFUNC(op_c168_0), 49512 }, /* AND */ -{ CPUFUNC(op_c170_0), 49520 }, /* AND */ -{ CPUFUNC(op_c178_0), 49528 }, /* AND */ -{ CPUFUNC(op_c179_0), 49529 }, /* AND */ -{ CPUFUNC(op_c188_0), 49544 }, /* EXG */ -{ CPUFUNC(op_c190_0), 49552 }, /* AND */ -{ CPUFUNC(op_c198_0), 49560 }, /* AND */ -{ CPUFUNC(op_c1a0_0), 49568 }, /* AND */ -{ CPUFUNC(op_c1a8_0), 49576 }, /* AND */ -{ CPUFUNC(op_c1b0_0), 49584 }, /* AND */ -{ CPUFUNC(op_c1b8_0), 49592 }, /* AND */ -{ CPUFUNC(op_c1b9_0), 49593 }, /* AND */ -{ CPUFUNC(op_c1c0_0), 49600 }, /* MULS */ -{ CPUFUNC(op_c1d0_0), 49616 }, /* MULS */ -{ CPUFUNC(op_c1d8_0), 49624 }, /* MULS */ -{ CPUFUNC(op_c1e0_0), 49632 }, /* MULS */ -{ CPUFUNC(op_c1e8_0), 49640 }, /* MULS */ -{ CPUFUNC(op_c1f0_0), 49648 }, /* MULS */ -{ CPUFUNC(op_c1f8_0), 49656 }, /* MULS */ -{ CPUFUNC(op_c1f9_0), 49657 }, /* MULS */ -{ CPUFUNC(op_c1fa_0), 49658 }, /* MULS */ -{ CPUFUNC(op_c1fb_0), 49659 }, /* MULS */ -{ CPUFUNC(op_c1fc_0), 49660 }, /* MULS */ -{ CPUFUNC(op_d000_0), 53248 }, /* ADD */ -{ CPUFUNC(op_d010_0), 53264 }, /* ADD */ -{ CPUFUNC(op_d018_0), 53272 }, /* ADD */ -{ CPUFUNC(op_d020_0), 53280 }, /* ADD */ -{ CPUFUNC(op_d028_0), 53288 }, /* ADD */ -{ CPUFUNC(op_d030_0), 53296 }, /* ADD */ -{ CPUFUNC(op_d038_0), 53304 }, /* ADD */ -{ CPUFUNC(op_d039_0), 53305 }, /* ADD */ -{ CPUFUNC(op_d03a_0), 53306 }, /* ADD */ -{ CPUFUNC(op_d03b_0), 53307 }, /* ADD */ -{ CPUFUNC(op_d03c_0), 53308 }, /* ADD */ -{ CPUFUNC(op_d040_0), 53312 }, /* ADD */ -{ CPUFUNC(op_d048_0), 53320 }, /* ADD */ -{ CPUFUNC(op_d050_0), 53328 }, /* ADD */ -{ CPUFUNC(op_d058_0), 53336 }, /* ADD */ -{ CPUFUNC(op_d060_0), 53344 }, /* ADD */ -{ CPUFUNC(op_d068_0), 53352 }, /* ADD */ -{ CPUFUNC(op_d070_0), 53360 }, /* ADD */ -{ CPUFUNC(op_d078_0), 53368 }, /* ADD */ -{ CPUFUNC(op_d079_0), 53369 }, /* ADD */ -{ CPUFUNC(op_d07a_0), 53370 }, /* ADD */ -{ CPUFUNC(op_d07b_0), 53371 }, /* ADD */ -{ CPUFUNC(op_d07c_0), 53372 }, /* ADD */ -{ CPUFUNC(op_d080_0), 53376 }, /* ADD */ -{ CPUFUNC(op_d088_0), 53384 }, /* ADD */ -{ CPUFUNC(op_d090_0), 53392 }, /* ADD */ -{ CPUFUNC(op_d098_0), 53400 }, /* ADD */ -{ CPUFUNC(op_d0a0_0), 53408 }, /* ADD */ -{ CPUFUNC(op_d0a8_0), 53416 }, /* ADD */ -{ CPUFUNC(op_d0b0_0), 53424 }, /* ADD */ -{ CPUFUNC(op_d0b8_0), 53432 }, /* ADD */ -{ CPUFUNC(op_d0b9_0), 53433 }, /* ADD */ -{ CPUFUNC(op_d0ba_0), 53434 }, /* ADD */ -{ CPUFUNC(op_d0bb_0), 53435 }, /* ADD */ -{ CPUFUNC(op_d0bc_0), 53436 }, /* ADD */ -{ CPUFUNC(op_d0c0_0), 53440 }, /* ADDA */ -{ CPUFUNC(op_d0c8_0), 53448 }, /* ADDA */ -{ CPUFUNC(op_d0d0_0), 53456 }, /* ADDA */ -{ CPUFUNC(op_d0d8_0), 53464 }, /* ADDA */ -{ CPUFUNC(op_d0e0_0), 53472 }, /* ADDA */ -{ CPUFUNC(op_d0e8_0), 53480 }, /* ADDA */ -{ CPUFUNC(op_d0f0_0), 53488 }, /* ADDA */ -{ CPUFUNC(op_d0f8_0), 53496 }, /* ADDA */ -{ CPUFUNC(op_d0f9_0), 53497 }, /* ADDA */ -{ CPUFUNC(op_d0fa_0), 53498 }, /* ADDA */ -{ CPUFUNC(op_d0fb_0), 53499 }, /* ADDA */ -{ CPUFUNC(op_d0fc_0), 53500 }, /* ADDA */ -{ CPUFUNC(op_d100_0), 53504 }, /* ADDX */ -{ CPUFUNC(op_d108_0), 53512 }, /* ADDX */ -{ CPUFUNC(op_d110_0), 53520 }, /* ADD */ -{ CPUFUNC(op_d118_0), 53528 }, /* ADD */ -{ CPUFUNC(op_d120_0), 53536 }, /* ADD */ -{ CPUFUNC(op_d128_0), 53544 }, /* ADD */ -{ CPUFUNC(op_d130_0), 53552 }, /* ADD */ -{ CPUFUNC(op_d138_0), 53560 }, /* ADD */ -{ CPUFUNC(op_d139_0), 53561 }, /* ADD */ -{ CPUFUNC(op_d140_0), 53568 }, /* ADDX */ -{ CPUFUNC(op_d148_0), 53576 }, /* ADDX */ -{ CPUFUNC(op_d150_0), 53584 }, /* ADD */ -{ CPUFUNC(op_d158_0), 53592 }, /* ADD */ -{ CPUFUNC(op_d160_0), 53600 }, /* ADD */ -{ CPUFUNC(op_d168_0), 53608 }, /* ADD */ -{ CPUFUNC(op_d170_0), 53616 }, /* ADD */ -{ CPUFUNC(op_d178_0), 53624 }, /* ADD */ -{ CPUFUNC(op_d179_0), 53625 }, /* ADD */ -{ CPUFUNC(op_d180_0), 53632 }, /* ADDX */ -{ CPUFUNC(op_d188_0), 53640 }, /* ADDX */ -{ CPUFUNC(op_d190_0), 53648 }, /* ADD */ -{ CPUFUNC(op_d198_0), 53656 }, /* ADD */ -{ CPUFUNC(op_d1a0_0), 53664 }, /* ADD */ -{ CPUFUNC(op_d1a8_0), 53672 }, /* ADD */ -{ CPUFUNC(op_d1b0_0), 53680 }, /* ADD */ -{ CPUFUNC(op_d1b8_0), 53688 }, /* ADD */ -{ CPUFUNC(op_d1b9_0), 53689 }, /* ADD */ -{ CPUFUNC(op_d1c0_0), 53696 }, /* ADDA */ -{ CPUFUNC(op_d1c8_0), 53704 }, /* ADDA */ -{ CPUFUNC(op_d1d0_0), 53712 }, /* ADDA */ -{ CPUFUNC(op_d1d8_0), 53720 }, /* ADDA */ -{ CPUFUNC(op_d1e0_0), 53728 }, /* ADDA */ -{ CPUFUNC(op_d1e8_0), 53736 }, /* ADDA */ -{ CPUFUNC(op_d1f0_0), 53744 }, /* ADDA */ -{ CPUFUNC(op_d1f8_0), 53752 }, /* ADDA */ -{ CPUFUNC(op_d1f9_0), 53753 }, /* ADDA */ -{ CPUFUNC(op_d1fa_0), 53754 }, /* ADDA */ -{ CPUFUNC(op_d1fb_0), 53755 }, /* ADDA */ -{ CPUFUNC(op_d1fc_0), 53756 }, /* ADDA */ -{ CPUFUNC(op_e000_0), 57344 }, /* ASR */ -{ CPUFUNC(op_e008_0), 57352 }, /* LSR */ -{ CPUFUNC(op_e010_0), 57360 }, /* ROXR */ -{ CPUFUNC(op_e018_0), 57368 }, /* ROR */ -{ CPUFUNC(op_e020_0), 57376 }, /* ASR */ -{ CPUFUNC(op_e028_0), 57384 }, /* LSR */ -{ CPUFUNC(op_e030_0), 57392 }, /* ROXR */ -{ CPUFUNC(op_e038_0), 57400 }, /* ROR */ -{ CPUFUNC(op_e040_0), 57408 }, /* ASR */ -{ CPUFUNC(op_e048_0), 57416 }, /* LSR */ -{ CPUFUNC(op_e050_0), 57424 }, /* ROXR */ -{ CPUFUNC(op_e058_0), 57432 }, /* ROR */ -{ CPUFUNC(op_e060_0), 57440 }, /* ASR */ -{ CPUFUNC(op_e068_0), 57448 }, /* LSR */ -{ CPUFUNC(op_e070_0), 57456 }, /* ROXR */ -{ CPUFUNC(op_e078_0), 57464 }, /* ROR */ -{ CPUFUNC(op_e080_0), 57472 }, /* ASR */ -{ CPUFUNC(op_e088_0), 57480 }, /* LSR */ -{ CPUFUNC(op_e090_0), 57488 }, /* ROXR */ -{ CPUFUNC(op_e098_0), 57496 }, /* ROR */ -{ CPUFUNC(op_e0a0_0), 57504 }, /* ASR */ -{ CPUFUNC(op_e0a8_0), 57512 }, /* LSR */ -{ CPUFUNC(op_e0b0_0), 57520 }, /* ROXR */ -{ CPUFUNC(op_e0b8_0), 57528 }, /* ROR */ -{ CPUFUNC(op_e0d0_0), 57552 }, /* ASRW */ -{ CPUFUNC(op_e0d8_0), 57560 }, /* ASRW */ -{ CPUFUNC(op_e0e0_0), 57568 }, /* ASRW */ -{ CPUFUNC(op_e0e8_0), 57576 }, /* ASRW */ -{ CPUFUNC(op_e0f0_0), 57584 }, /* ASRW */ -{ CPUFUNC(op_e0f8_0), 57592 }, /* ASRW */ -{ CPUFUNC(op_e0f9_0), 57593 }, /* ASRW */ -{ CPUFUNC(op_e100_0), 57600 }, /* ASL */ -{ CPUFUNC(op_e108_0), 57608 }, /* LSL */ -{ CPUFUNC(op_e110_0), 57616 }, /* ROXL */ -{ CPUFUNC(op_e118_0), 57624 }, /* ROL */ -{ CPUFUNC(op_e120_0), 57632 }, /* ASL */ -{ CPUFUNC(op_e128_0), 57640 }, /* LSL */ -{ CPUFUNC(op_e130_0), 57648 }, /* ROXL */ -{ CPUFUNC(op_e138_0), 57656 }, /* ROL */ -{ CPUFUNC(op_e140_0), 57664 }, /* ASL */ -{ CPUFUNC(op_e148_0), 57672 }, /* LSL */ -{ CPUFUNC(op_e150_0), 57680 }, /* ROXL */ -{ CPUFUNC(op_e158_0), 57688 }, /* ROL */ -{ CPUFUNC(op_e160_0), 57696 }, /* ASL */ -{ CPUFUNC(op_e168_0), 57704 }, /* LSL */ -{ CPUFUNC(op_e170_0), 57712 }, /* ROXL */ -{ CPUFUNC(op_e178_0), 57720 }, /* ROL */ -{ CPUFUNC(op_e180_0), 57728 }, /* ASL */ -{ CPUFUNC(op_e188_0), 57736 }, /* LSL */ -{ CPUFUNC(op_e190_0), 57744 }, /* ROXL */ -{ CPUFUNC(op_e198_0), 57752 }, /* ROL */ -{ CPUFUNC(op_e1a0_0), 57760 }, /* ASL */ -{ CPUFUNC(op_e1a8_0), 57768 }, /* LSL */ -{ CPUFUNC(op_e1b0_0), 57776 }, /* ROXL */ -{ CPUFUNC(op_e1b8_0), 57784 }, /* ROL */ -{ CPUFUNC(op_e1d0_0), 57808 }, /* ASLW */ -{ CPUFUNC(op_e1d8_0), 57816 }, /* ASLW */ -{ CPUFUNC(op_e1e0_0), 57824 }, /* ASLW */ -{ CPUFUNC(op_e1e8_0), 57832 }, /* ASLW */ -{ CPUFUNC(op_e1f0_0), 57840 }, /* ASLW */ -{ CPUFUNC(op_e1f8_0), 57848 }, /* ASLW */ -{ CPUFUNC(op_e1f9_0), 57849 }, /* ASLW */ -{ CPUFUNC(op_e2d0_0), 58064 }, /* LSRW */ -{ CPUFUNC(op_e2d8_0), 58072 }, /* LSRW */ -{ CPUFUNC(op_e2e0_0), 58080 }, /* LSRW */ -{ CPUFUNC(op_e2e8_0), 58088 }, /* LSRW */ -{ CPUFUNC(op_e2f0_0), 58096 }, /* LSRW */ -{ CPUFUNC(op_e2f8_0), 58104 }, /* LSRW */ -{ CPUFUNC(op_e2f9_0), 58105 }, /* LSRW */ -{ CPUFUNC(op_e3d0_0), 58320 }, /* LSLW */ -{ CPUFUNC(op_e3d8_0), 58328 }, /* LSLW */ -{ CPUFUNC(op_e3e0_0), 58336 }, /* LSLW */ -{ CPUFUNC(op_e3e8_0), 58344 }, /* LSLW */ -{ CPUFUNC(op_e3f0_0), 58352 }, /* LSLW */ -{ CPUFUNC(op_e3f8_0), 58360 }, /* LSLW */ -{ CPUFUNC(op_e3f9_0), 58361 }, /* LSLW */ -{ CPUFUNC(op_e4d0_0), 58576 }, /* ROXRW */ -{ CPUFUNC(op_e4d8_0), 58584 }, /* ROXRW */ -{ CPUFUNC(op_e4e0_0), 58592 }, /* ROXRW */ -{ CPUFUNC(op_e4e8_0), 58600 }, /* ROXRW */ -{ CPUFUNC(op_e4f0_0), 58608 }, /* ROXRW */ -{ CPUFUNC(op_e4f8_0), 58616 }, /* ROXRW */ -{ CPUFUNC(op_e4f9_0), 58617 }, /* ROXRW */ -{ CPUFUNC(op_e5d0_0), 58832 }, /* ROXLW */ -{ CPUFUNC(op_e5d8_0), 58840 }, /* ROXLW */ -{ CPUFUNC(op_e5e0_0), 58848 }, /* ROXLW */ -{ CPUFUNC(op_e5e8_0), 58856 }, /* ROXLW */ -{ CPUFUNC(op_e5f0_0), 58864 }, /* ROXLW */ -{ CPUFUNC(op_e5f8_0), 58872 }, /* ROXLW */ -{ CPUFUNC(op_e5f9_0), 58873 }, /* ROXLW */ -{ CPUFUNC(op_e6d0_0), 59088 }, /* RORW */ -{ CPUFUNC(op_e6d8_0), 59096 }, /* RORW */ -{ CPUFUNC(op_e6e0_0), 59104 }, /* RORW */ -{ CPUFUNC(op_e6e8_0), 59112 }, /* RORW */ -{ CPUFUNC(op_e6f0_0), 59120 }, /* RORW */ -{ CPUFUNC(op_e6f8_0), 59128 }, /* RORW */ -{ CPUFUNC(op_e6f9_0), 59129 }, /* RORW */ -{ CPUFUNC(op_e7d0_0), 59344 }, /* ROLW */ -{ CPUFUNC(op_e7d8_0), 59352 }, /* ROLW */ -{ CPUFUNC(op_e7e0_0), 59360 }, /* ROLW */ -{ CPUFUNC(op_e7e8_0), 59368 }, /* ROLW */ -{ CPUFUNC(op_e7f0_0), 59376 }, /* ROLW */ -{ CPUFUNC(op_e7f8_0), 59384 }, /* ROLW */ -{ CPUFUNC(op_e7f9_0), 59385 }, /* ROLW */ -{ CPUFUNC(op_e8c0_0), 59584 }, /* BFTST */ -{ CPUFUNC(op_e8d0_0), 59600 }, /* BFTST */ -{ CPUFUNC(op_e8e8_0), 59624 }, /* BFTST */ -{ CPUFUNC(op_e8f0_0), 59632 }, /* BFTST */ -{ CPUFUNC(op_e8f8_0), 59640 }, /* BFTST */ -{ CPUFUNC(op_e8f9_0), 59641 }, /* BFTST */ -{ CPUFUNC(op_e8fa_0), 59642 }, /* BFTST */ -{ CPUFUNC(op_e8fb_0), 59643 }, /* BFTST */ -{ CPUFUNC(op_e9c0_0), 59840 }, /* BFEXTU */ -{ CPUFUNC(op_e9d0_0), 59856 }, /* BFEXTU */ -{ CPUFUNC(op_e9e8_0), 59880 }, /* BFEXTU */ -{ CPUFUNC(op_e9f0_0), 59888 }, /* BFEXTU */ -{ CPUFUNC(op_e9f8_0), 59896 }, /* BFEXTU */ -{ CPUFUNC(op_e9f9_0), 59897 }, /* BFEXTU */ -{ CPUFUNC(op_e9fa_0), 59898 }, /* BFEXTU */ -{ CPUFUNC(op_e9fb_0), 59899 }, /* BFEXTU */ -{ CPUFUNC(op_eac0_0), 60096 }, /* BFCHG */ -{ CPUFUNC(op_ead0_0), 60112 }, /* BFCHG */ -{ CPUFUNC(op_eae8_0), 60136 }, /* BFCHG */ -{ CPUFUNC(op_eaf0_0), 60144 }, /* BFCHG */ -{ CPUFUNC(op_eaf8_0), 60152 }, /* BFCHG */ -{ CPUFUNC(op_eaf9_0), 60153 }, /* BFCHG */ -{ CPUFUNC(op_ebc0_0), 60352 }, /* BFEXTS */ -{ CPUFUNC(op_ebd0_0), 60368 }, /* BFEXTS */ -{ CPUFUNC(op_ebe8_0), 60392 }, /* BFEXTS */ -{ CPUFUNC(op_ebf0_0), 60400 }, /* BFEXTS */ -{ CPUFUNC(op_ebf8_0), 60408 }, /* BFEXTS */ -{ CPUFUNC(op_ebf9_0), 60409 }, /* BFEXTS */ -{ CPUFUNC(op_ebfa_0), 60410 }, /* BFEXTS */ -{ CPUFUNC(op_ebfb_0), 60411 }, /* BFEXTS */ -{ CPUFUNC(op_ecc0_0), 60608 }, /* BFCLR */ -{ CPUFUNC(op_ecd0_0), 60624 }, /* BFCLR */ -{ CPUFUNC(op_ece8_0), 60648 }, /* BFCLR */ -{ CPUFUNC(op_ecf0_0), 60656 }, /* BFCLR */ -{ CPUFUNC(op_ecf8_0), 60664 }, /* BFCLR */ -{ CPUFUNC(op_ecf9_0), 60665 }, /* BFCLR */ -{ CPUFUNC(op_edc0_0), 60864 }, /* BFFFO */ -{ CPUFUNC(op_edd0_0), 60880 }, /* BFFFO */ -{ CPUFUNC(op_ede8_0), 60904 }, /* BFFFO */ -{ CPUFUNC(op_edf0_0), 60912 }, /* BFFFO */ -{ CPUFUNC(op_edf8_0), 60920 }, /* BFFFO */ -{ CPUFUNC(op_edf9_0), 60921 }, /* BFFFO */ -{ CPUFUNC(op_edfa_0), 60922 }, /* BFFFO */ -{ CPUFUNC(op_edfb_0), 60923 }, /* BFFFO */ -{ CPUFUNC(op_eec0_0), 61120 }, /* BFSET */ -{ CPUFUNC(op_eed0_0), 61136 }, /* BFSET */ -{ CPUFUNC(op_eee8_0), 61160 }, /* BFSET */ -{ CPUFUNC(op_eef0_0), 61168 }, /* BFSET */ -{ CPUFUNC(op_eef8_0), 61176 }, /* BFSET */ -{ CPUFUNC(op_eef9_0), 61177 }, /* BFSET */ -{ CPUFUNC(op_efc0_0), 61376 }, /* BFINS */ -{ CPUFUNC(op_efd0_0), 61392 }, /* BFINS */ -{ CPUFUNC(op_efe8_0), 61416 }, /* BFINS */ -{ CPUFUNC(op_eff0_0), 61424 }, /* BFINS */ -{ CPUFUNC(op_eff8_0), 61432 }, /* BFINS */ -{ CPUFUNC(op_eff9_0), 61433 }, /* BFINS */ -{ CPUFUNC(op_f000_0), 61440 }, /* MMUOP030 */ -{ CPUFUNC(op_f008_0), 61448 }, /* MMUOP030 */ -{ CPUFUNC(op_f010_0), 61456 }, /* MMUOP030 */ -{ CPUFUNC(op_f018_0), 61464 }, /* MMUOP030 */ -{ CPUFUNC(op_f020_0), 61472 }, /* MMUOP030 */ -{ CPUFUNC(op_f028_0), 61480 }, /* MMUOP030 */ -{ CPUFUNC(op_f030_0), 61488 }, /* MMUOP030 */ -{ CPUFUNC(op_f038_0), 61496 }, /* MMUOP030 */ -{ CPUFUNC(op_f039_0), 61497 }, /* MMUOP030 */ -{ CPUFUNC(op_f200_0), 61952 }, /* FPP */ -{ CPUFUNC(op_f208_0), 61960 }, /* FPP */ -{ CPUFUNC(op_f210_0), 61968 }, /* FPP */ -{ CPUFUNC(op_f218_0), 61976 }, /* FPP */ -{ CPUFUNC(op_f220_0), 61984 }, /* FPP */ -{ CPUFUNC(op_f228_0), 61992 }, /* FPP */ -{ CPUFUNC(op_f230_0), 62000 }, /* FPP */ -{ CPUFUNC(op_f238_0), 62008 }, /* FPP */ -{ CPUFUNC(op_f239_0), 62009 }, /* FPP */ -{ CPUFUNC(op_f23a_0), 62010 }, /* FPP */ -{ CPUFUNC(op_f23b_0), 62011 }, /* FPP */ -{ CPUFUNC(op_f23c_0), 62012 }, /* FPP */ -{ CPUFUNC(op_f240_0), 62016 }, /* FScc */ -{ CPUFUNC(op_f248_0), 62024 }, /* FDBcc */ -{ CPUFUNC(op_f250_0), 62032 }, /* FScc */ -{ CPUFUNC(op_f258_0), 62040 }, /* FScc */ -{ CPUFUNC(op_f260_0), 62048 }, /* FScc */ -{ CPUFUNC(op_f268_0), 62056 }, /* FScc */ -{ CPUFUNC(op_f270_0), 62064 }, /* FScc */ -{ CPUFUNC(op_f278_0), 62072 }, /* FScc */ -{ CPUFUNC(op_f279_0), 62073 }, /* FScc */ -{ CPUFUNC(op_f27a_0), 62074 }, /* FTRAPcc */ -{ CPUFUNC(op_f27b_0), 62075 }, /* FTRAPcc */ -{ CPUFUNC(op_f27c_0), 62076 }, /* FTRAPcc */ -{ CPUFUNC(op_f280_0), 62080 }, /* FBcc */ -{ CPUFUNC(op_f2c0_0), 62144 }, /* FBcc */ -{ CPUFUNC(op_f310_0), 62224 }, /* FSAVE */ -{ CPUFUNC(op_f320_0), 62240 }, /* FSAVE */ -{ CPUFUNC(op_f328_0), 62248 }, /* FSAVE */ -{ CPUFUNC(op_f330_0), 62256 }, /* FSAVE */ -{ CPUFUNC(op_f338_0), 62264 }, /* FSAVE */ -{ CPUFUNC(op_f339_0), 62265 }, /* FSAVE */ -{ CPUFUNC(op_f350_0), 62288 }, /* FRESTORE */ -{ CPUFUNC(op_f358_0), 62296 }, /* FRESTORE */ -{ CPUFUNC(op_f368_0), 62312 }, /* FRESTORE */ -{ CPUFUNC(op_f370_0), 62320 }, /* FRESTORE */ -{ CPUFUNC(op_f378_0), 62328 }, /* FRESTORE */ -{ CPUFUNC(op_f379_0), 62329 }, /* FRESTORE */ -{ CPUFUNC(op_f37a_0), 62330 }, /* FRESTORE */ -{ CPUFUNC(op_f37b_0), 62331 }, /* FRESTORE */ -{ 0, 0 }}; -const struct cputbl CPUFUNC(op_smalltbl_3)[] = { -{ CPUFUNC(op_0000_0), 0 }, /* OR */ -{ CPUFUNC(op_0010_0), 16 }, /* OR */ -{ CPUFUNC(op_0018_0), 24 }, /* OR */ -{ CPUFUNC(op_0020_0), 32 }, /* OR */ -{ CPUFUNC(op_0028_0), 40 }, /* OR */ -{ CPUFUNC(op_0030_0), 48 }, /* OR */ -{ CPUFUNC(op_0038_0), 56 }, /* OR */ -{ CPUFUNC(op_0039_0), 57 }, /* OR */ -{ CPUFUNC(op_003c_0), 60 }, /* ORSR */ -{ CPUFUNC(op_0040_0), 64 }, /* OR */ -{ CPUFUNC(op_0050_0), 80 }, /* OR */ -{ CPUFUNC(op_0058_0), 88 }, /* OR */ -{ CPUFUNC(op_0060_0), 96 }, /* OR */ -{ CPUFUNC(op_0068_0), 104 }, /* OR */ -{ CPUFUNC(op_0070_0), 112 }, /* OR */ -{ CPUFUNC(op_0078_0), 120 }, /* OR */ -{ CPUFUNC(op_0079_0), 121 }, /* OR */ -{ CPUFUNC(op_007c_0), 124 }, /* ORSR */ -{ CPUFUNC(op_0080_0), 128 }, /* OR */ -{ CPUFUNC(op_0090_0), 144 }, /* OR */ -{ CPUFUNC(op_0098_0), 152 }, /* OR */ -{ CPUFUNC(op_00a0_0), 160 }, /* OR */ -{ CPUFUNC(op_00a8_0), 168 }, /* OR */ -{ CPUFUNC(op_00b0_0), 176 }, /* OR */ -{ CPUFUNC(op_00b8_0), 184 }, /* OR */ -{ CPUFUNC(op_00b9_0), 185 }, /* OR */ -{ CPUFUNC(op_00d0_0), 208 }, /* CHK2 */ -{ CPUFUNC(op_00e8_0), 232 }, /* CHK2 */ -{ CPUFUNC(op_00f0_0), 240 }, /* CHK2 */ -{ CPUFUNC(op_00f8_0), 248 }, /* CHK2 */ -{ CPUFUNC(op_00f9_0), 249 }, /* CHK2 */ -{ CPUFUNC(op_00fa_0), 250 }, /* CHK2 */ -{ CPUFUNC(op_00fb_0), 251 }, /* CHK2 */ -{ CPUFUNC(op_0100_0), 256 }, /* BTST */ -{ CPUFUNC(op_0108_0), 264 }, /* MVPMR */ -{ CPUFUNC(op_0110_0), 272 }, /* BTST */ -{ CPUFUNC(op_0118_0), 280 }, /* BTST */ -{ CPUFUNC(op_0120_0), 288 }, /* BTST */ -{ CPUFUNC(op_0128_0), 296 }, /* BTST */ -{ CPUFUNC(op_0130_0), 304 }, /* BTST */ -{ CPUFUNC(op_0138_0), 312 }, /* BTST */ -{ CPUFUNC(op_0139_0), 313 }, /* BTST */ -{ CPUFUNC(op_013a_0), 314 }, /* BTST */ -{ CPUFUNC(op_013b_0), 315 }, /* BTST */ -{ CPUFUNC(op_013c_0), 316 }, /* BTST */ -{ CPUFUNC(op_0140_0), 320 }, /* BCHG */ -{ CPUFUNC(op_0148_0), 328 }, /* MVPMR */ -{ CPUFUNC(op_0150_0), 336 }, /* BCHG */ -{ CPUFUNC(op_0158_0), 344 }, /* BCHG */ -{ CPUFUNC(op_0160_0), 352 }, /* BCHG */ -{ CPUFUNC(op_0168_0), 360 }, /* BCHG */ -{ CPUFUNC(op_0170_0), 368 }, /* BCHG */ -{ CPUFUNC(op_0178_0), 376 }, /* BCHG */ -{ CPUFUNC(op_0179_0), 377 }, /* BCHG */ -{ CPUFUNC(op_0180_0), 384 }, /* BCLR */ -{ CPUFUNC(op_0188_0), 392 }, /* MVPRM */ -{ CPUFUNC(op_0190_0), 400 }, /* BCLR */ -{ CPUFUNC(op_0198_0), 408 }, /* BCLR */ -{ CPUFUNC(op_01a0_0), 416 }, /* BCLR */ -{ CPUFUNC(op_01a8_0), 424 }, /* BCLR */ -{ CPUFUNC(op_01b0_0), 432 }, /* BCLR */ -{ CPUFUNC(op_01b8_0), 440 }, /* BCLR */ -{ CPUFUNC(op_01b9_0), 441 }, /* BCLR */ -{ CPUFUNC(op_01c0_0), 448 }, /* BSET */ -{ CPUFUNC(op_01c8_0), 456 }, /* MVPRM */ -{ CPUFUNC(op_01d0_0), 464 }, /* BSET */ -{ CPUFUNC(op_01d8_0), 472 }, /* BSET */ -{ CPUFUNC(op_01e0_0), 480 }, /* BSET */ -{ CPUFUNC(op_01e8_0), 488 }, /* BSET */ -{ CPUFUNC(op_01f0_0), 496 }, /* BSET */ -{ CPUFUNC(op_01f8_0), 504 }, /* BSET */ -{ CPUFUNC(op_01f9_0), 505 }, /* BSET */ -{ CPUFUNC(op_0200_0), 512 }, /* AND */ -{ CPUFUNC(op_0210_0), 528 }, /* AND */ -{ CPUFUNC(op_0218_0), 536 }, /* AND */ -{ CPUFUNC(op_0220_0), 544 }, /* AND */ -{ CPUFUNC(op_0228_0), 552 }, /* AND */ -{ CPUFUNC(op_0230_0), 560 }, /* AND */ -{ CPUFUNC(op_0238_0), 568 }, /* AND */ -{ CPUFUNC(op_0239_0), 569 }, /* AND */ -{ CPUFUNC(op_023c_0), 572 }, /* ANDSR */ -{ CPUFUNC(op_0240_0), 576 }, /* AND */ -{ CPUFUNC(op_0250_0), 592 }, /* AND */ -{ CPUFUNC(op_0258_0), 600 }, /* AND */ -{ CPUFUNC(op_0260_0), 608 }, /* AND */ -{ CPUFUNC(op_0268_0), 616 }, /* AND */ -{ CPUFUNC(op_0270_0), 624 }, /* AND */ -{ CPUFUNC(op_0278_0), 632 }, /* AND */ -{ CPUFUNC(op_0279_0), 633 }, /* AND */ -{ CPUFUNC(op_027c_0), 636 }, /* ANDSR */ -{ CPUFUNC(op_0280_0), 640 }, /* AND */ -{ CPUFUNC(op_0290_0), 656 }, /* AND */ -{ CPUFUNC(op_0298_0), 664 }, /* AND */ -{ CPUFUNC(op_02a0_0), 672 }, /* AND */ -{ CPUFUNC(op_02a8_0), 680 }, /* AND */ -{ CPUFUNC(op_02b0_0), 688 }, /* AND */ -{ CPUFUNC(op_02b8_0), 696 }, /* AND */ -{ CPUFUNC(op_02b9_0), 697 }, /* AND */ -{ CPUFUNC(op_02d0_0), 720 }, /* CHK2 */ -{ CPUFUNC(op_02e8_0), 744 }, /* CHK2 */ -{ CPUFUNC(op_02f0_0), 752 }, /* CHK2 */ -{ CPUFUNC(op_02f8_0), 760 }, /* CHK2 */ -{ CPUFUNC(op_02f9_0), 761 }, /* CHK2 */ -{ CPUFUNC(op_02fa_0), 762 }, /* CHK2 */ -{ CPUFUNC(op_02fb_0), 763 }, /* CHK2 */ -{ CPUFUNC(op_0400_0), 1024 }, /* SUB */ -{ CPUFUNC(op_0410_0), 1040 }, /* SUB */ -{ CPUFUNC(op_0418_0), 1048 }, /* SUB */ -{ CPUFUNC(op_0420_0), 1056 }, /* SUB */ -{ CPUFUNC(op_0428_0), 1064 }, /* SUB */ -{ CPUFUNC(op_0430_0), 1072 }, /* SUB */ -{ CPUFUNC(op_0438_0), 1080 }, /* SUB */ -{ CPUFUNC(op_0439_0), 1081 }, /* SUB */ -{ CPUFUNC(op_0440_0), 1088 }, /* SUB */ -{ CPUFUNC(op_0450_0), 1104 }, /* SUB */ -{ CPUFUNC(op_0458_0), 1112 }, /* SUB */ -{ CPUFUNC(op_0460_0), 1120 }, /* SUB */ -{ CPUFUNC(op_0468_0), 1128 }, /* SUB */ -{ CPUFUNC(op_0470_0), 1136 }, /* SUB */ -{ CPUFUNC(op_0478_0), 1144 }, /* SUB */ -{ CPUFUNC(op_0479_0), 1145 }, /* SUB */ -{ CPUFUNC(op_0480_0), 1152 }, /* SUB */ -{ CPUFUNC(op_0490_0), 1168 }, /* SUB */ -{ CPUFUNC(op_0498_0), 1176 }, /* SUB */ -{ CPUFUNC(op_04a0_0), 1184 }, /* SUB */ -{ CPUFUNC(op_04a8_0), 1192 }, /* SUB */ -{ CPUFUNC(op_04b0_0), 1200 }, /* SUB */ -{ CPUFUNC(op_04b8_0), 1208 }, /* SUB */ -{ CPUFUNC(op_04b9_0), 1209 }, /* SUB */ -{ CPUFUNC(op_04d0_0), 1232 }, /* CHK2 */ -{ CPUFUNC(op_04e8_0), 1256 }, /* CHK2 */ -{ CPUFUNC(op_04f0_0), 1264 }, /* CHK2 */ -{ CPUFUNC(op_04f8_0), 1272 }, /* CHK2 */ -{ CPUFUNC(op_04f9_0), 1273 }, /* CHK2 */ -{ CPUFUNC(op_04fa_0), 1274 }, /* CHK2 */ -{ CPUFUNC(op_04fb_0), 1275 }, /* CHK2 */ -{ CPUFUNC(op_0600_0), 1536 }, /* ADD */ -{ CPUFUNC(op_0610_0), 1552 }, /* ADD */ -{ CPUFUNC(op_0618_0), 1560 }, /* ADD */ -{ CPUFUNC(op_0620_0), 1568 }, /* ADD */ -{ CPUFUNC(op_0628_0), 1576 }, /* ADD */ -{ CPUFUNC(op_0630_0), 1584 }, /* ADD */ -{ CPUFUNC(op_0638_0), 1592 }, /* ADD */ -{ CPUFUNC(op_0639_0), 1593 }, /* ADD */ -{ CPUFUNC(op_0640_0), 1600 }, /* ADD */ -{ CPUFUNC(op_0650_0), 1616 }, /* ADD */ -{ CPUFUNC(op_0658_0), 1624 }, /* ADD */ -{ CPUFUNC(op_0660_0), 1632 }, /* ADD */ -{ CPUFUNC(op_0668_0), 1640 }, /* ADD */ -{ CPUFUNC(op_0670_0), 1648 }, /* ADD */ -{ CPUFUNC(op_0678_0), 1656 }, /* ADD */ -{ CPUFUNC(op_0679_0), 1657 }, /* ADD */ -{ CPUFUNC(op_0680_0), 1664 }, /* ADD */ -{ CPUFUNC(op_0690_0), 1680 }, /* ADD */ -{ CPUFUNC(op_0698_0), 1688 }, /* ADD */ -{ CPUFUNC(op_06a0_0), 1696 }, /* ADD */ -{ CPUFUNC(op_06a8_0), 1704 }, /* ADD */ -{ CPUFUNC(op_06b0_0), 1712 }, /* ADD */ -{ CPUFUNC(op_06b8_0), 1720 }, /* ADD */ -{ CPUFUNC(op_06b9_0), 1721 }, /* ADD */ -{ CPUFUNC(op_06c0_0), 1728 }, /* RTM */ -{ CPUFUNC(op_06c8_0), 1736 }, /* RTM */ -{ CPUFUNC(op_06d0_0), 1744 }, /* CALLM */ -{ CPUFUNC(op_06e8_0), 1768 }, /* CALLM */ -{ CPUFUNC(op_06f0_0), 1776 }, /* CALLM */ -{ CPUFUNC(op_06f8_0), 1784 }, /* CALLM */ -{ CPUFUNC(op_06f9_0), 1785 }, /* CALLM */ -{ CPUFUNC(op_06fa_0), 1786 }, /* CALLM */ -{ CPUFUNC(op_06fb_0), 1787 }, /* CALLM */ -{ CPUFUNC(op_0800_0), 2048 }, /* BTST */ -{ CPUFUNC(op_0810_0), 2064 }, /* BTST */ -{ CPUFUNC(op_0818_0), 2072 }, /* BTST */ -{ CPUFUNC(op_0820_0), 2080 }, /* BTST */ -{ CPUFUNC(op_0828_0), 2088 }, /* BTST */ -{ CPUFUNC(op_0830_0), 2096 }, /* BTST */ -{ CPUFUNC(op_0838_0), 2104 }, /* BTST */ -{ CPUFUNC(op_0839_0), 2105 }, /* BTST */ -{ CPUFUNC(op_083a_0), 2106 }, /* BTST */ -{ CPUFUNC(op_083b_0), 2107 }, /* BTST */ -{ CPUFUNC(op_083c_0), 2108 }, /* BTST */ -{ CPUFUNC(op_0840_0), 2112 }, /* BCHG */ -{ CPUFUNC(op_0850_0), 2128 }, /* BCHG */ -{ CPUFUNC(op_0858_0), 2136 }, /* BCHG */ -{ CPUFUNC(op_0860_0), 2144 }, /* BCHG */ -{ CPUFUNC(op_0868_0), 2152 }, /* BCHG */ -{ CPUFUNC(op_0870_0), 2160 }, /* BCHG */ -{ CPUFUNC(op_0878_0), 2168 }, /* BCHG */ -{ CPUFUNC(op_0879_0), 2169 }, /* BCHG */ -{ CPUFUNC(op_0880_0), 2176 }, /* BCLR */ -{ CPUFUNC(op_0890_0), 2192 }, /* BCLR */ -{ CPUFUNC(op_0898_0), 2200 }, /* BCLR */ -{ CPUFUNC(op_08a0_0), 2208 }, /* BCLR */ -{ CPUFUNC(op_08a8_0), 2216 }, /* BCLR */ -{ CPUFUNC(op_08b0_0), 2224 }, /* BCLR */ -{ CPUFUNC(op_08b8_0), 2232 }, /* BCLR */ -{ CPUFUNC(op_08b9_0), 2233 }, /* BCLR */ -{ CPUFUNC(op_08c0_0), 2240 }, /* BSET */ -{ CPUFUNC(op_08d0_0), 2256 }, /* BSET */ -{ CPUFUNC(op_08d8_0), 2264 }, /* BSET */ -{ CPUFUNC(op_08e0_0), 2272 }, /* BSET */ -{ CPUFUNC(op_08e8_0), 2280 }, /* BSET */ -{ CPUFUNC(op_08f0_0), 2288 }, /* BSET */ -{ CPUFUNC(op_08f8_0), 2296 }, /* BSET */ -{ CPUFUNC(op_08f9_0), 2297 }, /* BSET */ -{ CPUFUNC(op_0a00_0), 2560 }, /* EOR */ -{ CPUFUNC(op_0a10_0), 2576 }, /* EOR */ -{ CPUFUNC(op_0a18_0), 2584 }, /* EOR */ -{ CPUFUNC(op_0a20_0), 2592 }, /* EOR */ -{ CPUFUNC(op_0a28_0), 2600 }, /* EOR */ -{ CPUFUNC(op_0a30_0), 2608 }, /* EOR */ -{ CPUFUNC(op_0a38_0), 2616 }, /* EOR */ -{ CPUFUNC(op_0a39_0), 2617 }, /* EOR */ -{ CPUFUNC(op_0a3c_0), 2620 }, /* EORSR */ -{ CPUFUNC(op_0a40_0), 2624 }, /* EOR */ -{ CPUFUNC(op_0a50_0), 2640 }, /* EOR */ -{ CPUFUNC(op_0a58_0), 2648 }, /* EOR */ -{ CPUFUNC(op_0a60_0), 2656 }, /* EOR */ -{ CPUFUNC(op_0a68_0), 2664 }, /* EOR */ -{ CPUFUNC(op_0a70_0), 2672 }, /* EOR */ -{ CPUFUNC(op_0a78_0), 2680 }, /* EOR */ -{ CPUFUNC(op_0a79_0), 2681 }, /* EOR */ -{ CPUFUNC(op_0a7c_0), 2684 }, /* EORSR */ -{ CPUFUNC(op_0a80_0), 2688 }, /* EOR */ -{ CPUFUNC(op_0a90_0), 2704 }, /* EOR */ -{ CPUFUNC(op_0a98_0), 2712 }, /* EOR */ -{ CPUFUNC(op_0aa0_0), 2720 }, /* EOR */ -{ CPUFUNC(op_0aa8_0), 2728 }, /* EOR */ -{ CPUFUNC(op_0ab0_0), 2736 }, /* EOR */ -{ CPUFUNC(op_0ab8_0), 2744 }, /* EOR */ -{ CPUFUNC(op_0ab9_0), 2745 }, /* EOR */ -{ CPUFUNC(op_0ad0_0), 2768 }, /* CAS */ -{ CPUFUNC(op_0ad8_0), 2776 }, /* CAS */ -{ CPUFUNC(op_0ae0_0), 2784 }, /* CAS */ -{ CPUFUNC(op_0ae8_0), 2792 }, /* CAS */ -{ CPUFUNC(op_0af0_0), 2800 }, /* CAS */ -{ CPUFUNC(op_0af8_0), 2808 }, /* CAS */ -{ CPUFUNC(op_0af9_0), 2809 }, /* CAS */ -{ CPUFUNC(op_0c00_0), 3072 }, /* CMP */ -{ CPUFUNC(op_0c10_0), 3088 }, /* CMP */ -{ CPUFUNC(op_0c18_0), 3096 }, /* CMP */ -{ CPUFUNC(op_0c20_0), 3104 }, /* CMP */ -{ CPUFUNC(op_0c28_0), 3112 }, /* CMP */ -{ CPUFUNC(op_0c30_0), 3120 }, /* CMP */ -{ CPUFUNC(op_0c38_0), 3128 }, /* CMP */ -{ CPUFUNC(op_0c39_0), 3129 }, /* CMP */ -{ CPUFUNC(op_0c3a_0), 3130 }, /* CMP */ -{ CPUFUNC(op_0c3b_0), 3131 }, /* CMP */ -{ CPUFUNC(op_0c40_0), 3136 }, /* CMP */ -{ CPUFUNC(op_0c50_0), 3152 }, /* CMP */ -{ CPUFUNC(op_0c58_0), 3160 }, /* CMP */ -{ CPUFUNC(op_0c60_0), 3168 }, /* CMP */ -{ CPUFUNC(op_0c68_0), 3176 }, /* CMP */ -{ CPUFUNC(op_0c70_0), 3184 }, /* CMP */ -{ CPUFUNC(op_0c78_0), 3192 }, /* CMP */ -{ CPUFUNC(op_0c79_0), 3193 }, /* CMP */ -{ CPUFUNC(op_0c7a_0), 3194 }, /* CMP */ -{ CPUFUNC(op_0c7b_0), 3195 }, /* CMP */ -{ CPUFUNC(op_0c80_0), 3200 }, /* CMP */ -{ CPUFUNC(op_0c90_0), 3216 }, /* CMP */ -{ CPUFUNC(op_0c98_0), 3224 }, /* CMP */ -{ CPUFUNC(op_0ca0_0), 3232 }, /* CMP */ -{ CPUFUNC(op_0ca8_0), 3240 }, /* CMP */ -{ CPUFUNC(op_0cb0_0), 3248 }, /* CMP */ -{ CPUFUNC(op_0cb8_0), 3256 }, /* CMP */ -{ CPUFUNC(op_0cb9_0), 3257 }, /* CMP */ -{ CPUFUNC(op_0cba_0), 3258 }, /* CMP */ -{ CPUFUNC(op_0cbb_0), 3259 }, /* CMP */ -{ CPUFUNC(op_0cd0_0), 3280 }, /* CAS */ -{ CPUFUNC(op_0cd8_0), 3288 }, /* CAS */ -{ CPUFUNC(op_0ce0_0), 3296 }, /* CAS */ -{ CPUFUNC(op_0ce8_0), 3304 }, /* CAS */ -{ CPUFUNC(op_0cf0_0), 3312 }, /* CAS */ -{ CPUFUNC(op_0cf8_0), 3320 }, /* CAS */ -{ CPUFUNC(op_0cf9_0), 3321 }, /* CAS */ -{ CPUFUNC(op_0cfc_0), 3324 }, /* CAS2 */ -{ CPUFUNC(op_0e10_0), 3600 }, /* MOVES */ -{ CPUFUNC(op_0e18_0), 3608 }, /* MOVES */ -{ CPUFUNC(op_0e20_0), 3616 }, /* MOVES */ -{ CPUFUNC(op_0e28_0), 3624 }, /* MOVES */ -{ CPUFUNC(op_0e30_0), 3632 }, /* MOVES */ -{ CPUFUNC(op_0e38_0), 3640 }, /* MOVES */ -{ CPUFUNC(op_0e39_0), 3641 }, /* MOVES */ -{ CPUFUNC(op_0e50_0), 3664 }, /* MOVES */ -{ CPUFUNC(op_0e58_0), 3672 }, /* MOVES */ -{ CPUFUNC(op_0e60_0), 3680 }, /* MOVES */ -{ CPUFUNC(op_0e68_0), 3688 }, /* MOVES */ -{ CPUFUNC(op_0e70_0), 3696 }, /* MOVES */ -{ CPUFUNC(op_0e78_0), 3704 }, /* MOVES */ -{ CPUFUNC(op_0e79_0), 3705 }, /* MOVES */ -{ CPUFUNC(op_0e90_0), 3728 }, /* MOVES */ -{ CPUFUNC(op_0e98_0), 3736 }, /* MOVES */ -{ CPUFUNC(op_0ea0_0), 3744 }, /* MOVES */ -{ CPUFUNC(op_0ea8_0), 3752 }, /* MOVES */ -{ CPUFUNC(op_0eb0_0), 3760 }, /* MOVES */ -{ CPUFUNC(op_0eb8_0), 3768 }, /* MOVES */ -{ CPUFUNC(op_0eb9_0), 3769 }, /* MOVES */ -{ CPUFUNC(op_0ed0_0), 3792 }, /* CAS */ -{ CPUFUNC(op_0ed8_0), 3800 }, /* CAS */ -{ CPUFUNC(op_0ee0_0), 3808 }, /* CAS */ -{ CPUFUNC(op_0ee8_0), 3816 }, /* CAS */ -{ CPUFUNC(op_0ef0_0), 3824 }, /* CAS */ -{ CPUFUNC(op_0ef8_0), 3832 }, /* CAS */ -{ CPUFUNC(op_0ef9_0), 3833 }, /* CAS */ -{ CPUFUNC(op_0efc_0), 3836 }, /* CAS2 */ -{ CPUFUNC(op_1000_0), 4096 }, /* MOVE */ -{ CPUFUNC(op_1010_0), 4112 }, /* MOVE */ -{ CPUFUNC(op_1018_0), 4120 }, /* MOVE */ -{ CPUFUNC(op_1020_0), 4128 }, /* MOVE */ -{ CPUFUNC(op_1028_0), 4136 }, /* MOVE */ -{ CPUFUNC(op_1030_0), 4144 }, /* MOVE */ -{ CPUFUNC(op_1038_0), 4152 }, /* MOVE */ -{ CPUFUNC(op_1039_0), 4153 }, /* MOVE */ -{ CPUFUNC(op_103a_0), 4154 }, /* MOVE */ -{ CPUFUNC(op_103b_0), 4155 }, /* MOVE */ -{ CPUFUNC(op_103c_0), 4156 }, /* MOVE */ -{ CPUFUNC(op_1080_0), 4224 }, /* MOVE */ -{ CPUFUNC(op_1090_0), 4240 }, /* MOVE */ -{ CPUFUNC(op_1098_0), 4248 }, /* MOVE */ -{ CPUFUNC(op_10a0_0), 4256 }, /* MOVE */ -{ CPUFUNC(op_10a8_0), 4264 }, /* MOVE */ -{ CPUFUNC(op_10b0_0), 4272 }, /* MOVE */ -{ CPUFUNC(op_10b8_0), 4280 }, /* MOVE */ -{ CPUFUNC(op_10b9_0), 4281 }, /* MOVE */ -{ CPUFUNC(op_10ba_0), 4282 }, /* MOVE */ -{ CPUFUNC(op_10bb_0), 4283 }, /* MOVE */ -{ CPUFUNC(op_10bc_0), 4284 }, /* MOVE */ -{ CPUFUNC(op_10c0_0), 4288 }, /* MOVE */ -{ CPUFUNC(op_10d0_0), 4304 }, /* MOVE */ -{ CPUFUNC(op_10d8_0), 4312 }, /* MOVE */ -{ CPUFUNC(op_10e0_0), 4320 }, /* MOVE */ -{ CPUFUNC(op_10e8_0), 4328 }, /* MOVE */ -{ CPUFUNC(op_10f0_0), 4336 }, /* MOVE */ -{ CPUFUNC(op_10f8_0), 4344 }, /* MOVE */ -{ CPUFUNC(op_10f9_0), 4345 }, /* MOVE */ -{ CPUFUNC(op_10fa_0), 4346 }, /* MOVE */ -{ CPUFUNC(op_10fb_0), 4347 }, /* MOVE */ -{ CPUFUNC(op_10fc_0), 4348 }, /* MOVE */ -{ CPUFUNC(op_1100_0), 4352 }, /* MOVE */ -{ CPUFUNC(op_1110_0), 4368 }, /* MOVE */ -{ CPUFUNC(op_1118_0), 4376 }, /* MOVE */ -{ CPUFUNC(op_1120_0), 4384 }, /* MOVE */ -{ CPUFUNC(op_1128_0), 4392 }, /* MOVE */ -{ CPUFUNC(op_1130_0), 4400 }, /* MOVE */ -{ CPUFUNC(op_1138_0), 4408 }, /* MOVE */ -{ CPUFUNC(op_1139_0), 4409 }, /* MOVE */ -{ CPUFUNC(op_113a_0), 4410 }, /* MOVE */ -{ CPUFUNC(op_113b_0), 4411 }, /* MOVE */ -{ CPUFUNC(op_113c_0), 4412 }, /* MOVE */ -{ CPUFUNC(op_1140_0), 4416 }, /* MOVE */ -{ CPUFUNC(op_1150_0), 4432 }, /* MOVE */ -{ CPUFUNC(op_1158_0), 4440 }, /* MOVE */ -{ CPUFUNC(op_1160_0), 4448 }, /* MOVE */ -{ CPUFUNC(op_1168_0), 4456 }, /* MOVE */ -{ CPUFUNC(op_1170_0), 4464 }, /* MOVE */ -{ CPUFUNC(op_1178_0), 4472 }, /* MOVE */ -{ CPUFUNC(op_1179_0), 4473 }, /* MOVE */ -{ CPUFUNC(op_117a_0), 4474 }, /* MOVE */ -{ CPUFUNC(op_117b_0), 4475 }, /* MOVE */ -{ CPUFUNC(op_117c_0), 4476 }, /* MOVE */ -{ CPUFUNC(op_1180_0), 4480 }, /* MOVE */ -{ CPUFUNC(op_1190_0), 4496 }, /* MOVE */ -{ CPUFUNC(op_1198_0), 4504 }, /* MOVE */ -{ CPUFUNC(op_11a0_0), 4512 }, /* MOVE */ -{ CPUFUNC(op_11a8_0), 4520 }, /* MOVE */ -{ CPUFUNC(op_11b0_0), 4528 }, /* MOVE */ -{ CPUFUNC(op_11b8_0), 4536 }, /* MOVE */ -{ CPUFUNC(op_11b9_0), 4537 }, /* MOVE */ -{ CPUFUNC(op_11ba_0), 4538 }, /* MOVE */ -{ CPUFUNC(op_11bb_0), 4539 }, /* MOVE */ -{ CPUFUNC(op_11bc_0), 4540 }, /* MOVE */ -{ CPUFUNC(op_11c0_0), 4544 }, /* MOVE */ -{ CPUFUNC(op_11d0_0), 4560 }, /* MOVE */ -{ CPUFUNC(op_11d8_0), 4568 }, /* MOVE */ -{ CPUFUNC(op_11e0_0), 4576 }, /* MOVE */ -{ CPUFUNC(op_11e8_0), 4584 }, /* MOVE */ -{ CPUFUNC(op_11f0_0), 4592 }, /* MOVE */ -{ CPUFUNC(op_11f8_0), 4600 }, /* MOVE */ -{ CPUFUNC(op_11f9_0), 4601 }, /* MOVE */ -{ CPUFUNC(op_11fa_0), 4602 }, /* MOVE */ -{ CPUFUNC(op_11fb_0), 4603 }, /* MOVE */ -{ CPUFUNC(op_11fc_0), 4604 }, /* MOVE */ -{ CPUFUNC(op_13c0_0), 5056 }, /* MOVE */ -{ CPUFUNC(op_13d0_0), 5072 }, /* MOVE */ -{ CPUFUNC(op_13d8_0), 5080 }, /* MOVE */ -{ CPUFUNC(op_13e0_0), 5088 }, /* MOVE */ -{ CPUFUNC(op_13e8_0), 5096 }, /* MOVE */ -{ CPUFUNC(op_13f0_0), 5104 }, /* MOVE */ -{ CPUFUNC(op_13f8_0), 5112 }, /* MOVE */ -{ CPUFUNC(op_13f9_0), 5113 }, /* MOVE */ -{ CPUFUNC(op_13fa_0), 5114 }, /* MOVE */ -{ CPUFUNC(op_13fb_0), 5115 }, /* MOVE */ -{ CPUFUNC(op_13fc_0), 5116 }, /* MOVE */ -{ CPUFUNC(op_2000_0), 8192 }, /* MOVE */ -{ CPUFUNC(op_2008_0), 8200 }, /* MOVE */ -{ CPUFUNC(op_2010_0), 8208 }, /* MOVE */ -{ CPUFUNC(op_2018_0), 8216 }, /* MOVE */ -{ CPUFUNC(op_2020_0), 8224 }, /* MOVE */ -{ CPUFUNC(op_2028_0), 8232 }, /* MOVE */ -{ CPUFUNC(op_2030_0), 8240 }, /* MOVE */ -{ CPUFUNC(op_2038_0), 8248 }, /* MOVE */ -{ CPUFUNC(op_2039_0), 8249 }, /* MOVE */ -{ CPUFUNC(op_203a_0), 8250 }, /* MOVE */ -{ CPUFUNC(op_203b_0), 8251 }, /* MOVE */ -{ CPUFUNC(op_203c_0), 8252 }, /* MOVE */ -{ CPUFUNC(op_2040_0), 8256 }, /* MOVEA */ -{ CPUFUNC(op_2048_0), 8264 }, /* MOVEA */ -{ CPUFUNC(op_2050_0), 8272 }, /* MOVEA */ -{ CPUFUNC(op_2058_0), 8280 }, /* MOVEA */ -{ CPUFUNC(op_2060_0), 8288 }, /* MOVEA */ -{ CPUFUNC(op_2068_0), 8296 }, /* MOVEA */ -{ CPUFUNC(op_2070_0), 8304 }, /* MOVEA */ -{ CPUFUNC(op_2078_0), 8312 }, /* MOVEA */ -{ CPUFUNC(op_2079_0), 8313 }, /* MOVEA */ -{ CPUFUNC(op_207a_0), 8314 }, /* MOVEA */ -{ CPUFUNC(op_207b_0), 8315 }, /* MOVEA */ -{ CPUFUNC(op_207c_0), 8316 }, /* MOVEA */ -{ CPUFUNC(op_2080_0), 8320 }, /* MOVE */ -{ CPUFUNC(op_2088_0), 8328 }, /* MOVE */ -{ CPUFUNC(op_2090_0), 8336 }, /* MOVE */ -{ CPUFUNC(op_2098_0), 8344 }, /* MOVE */ -{ CPUFUNC(op_20a0_0), 8352 }, /* MOVE */ -{ CPUFUNC(op_20a8_0), 8360 }, /* MOVE */ -{ CPUFUNC(op_20b0_0), 8368 }, /* MOVE */ -{ CPUFUNC(op_20b8_0), 8376 }, /* MOVE */ -{ CPUFUNC(op_20b9_0), 8377 }, /* MOVE */ -{ CPUFUNC(op_20ba_0), 8378 }, /* MOVE */ -{ CPUFUNC(op_20bb_0), 8379 }, /* MOVE */ -{ CPUFUNC(op_20bc_0), 8380 }, /* MOVE */ -{ CPUFUNC(op_20c0_0), 8384 }, /* MOVE */ -{ CPUFUNC(op_20c8_0), 8392 }, /* MOVE */ -{ CPUFUNC(op_20d0_0), 8400 }, /* MOVE */ -{ CPUFUNC(op_20d8_0), 8408 }, /* MOVE */ -{ CPUFUNC(op_20e0_0), 8416 }, /* MOVE */ -{ CPUFUNC(op_20e8_0), 8424 }, /* MOVE */ -{ CPUFUNC(op_20f0_0), 8432 }, /* MOVE */ -{ CPUFUNC(op_20f8_0), 8440 }, /* MOVE */ -{ CPUFUNC(op_20f9_0), 8441 }, /* MOVE */ -{ CPUFUNC(op_20fa_0), 8442 }, /* MOVE */ -{ CPUFUNC(op_20fb_0), 8443 }, /* MOVE */ -{ CPUFUNC(op_20fc_0), 8444 }, /* MOVE */ -{ CPUFUNC(op_2100_0), 8448 }, /* MOVE */ -{ CPUFUNC(op_2108_0), 8456 }, /* MOVE */ -{ CPUFUNC(op_2110_0), 8464 }, /* MOVE */ -{ CPUFUNC(op_2118_0), 8472 }, /* MOVE */ -{ CPUFUNC(op_2120_0), 8480 }, /* MOVE */ -{ CPUFUNC(op_2128_0), 8488 }, /* MOVE */ -{ CPUFUNC(op_2130_0), 8496 }, /* MOVE */ -{ CPUFUNC(op_2138_0), 8504 }, /* MOVE */ -{ CPUFUNC(op_2139_0), 8505 }, /* MOVE */ -{ CPUFUNC(op_213a_0), 8506 }, /* MOVE */ -{ CPUFUNC(op_213b_0), 8507 }, /* MOVE */ -{ CPUFUNC(op_213c_0), 8508 }, /* MOVE */ -{ CPUFUNC(op_2140_0), 8512 }, /* MOVE */ -{ CPUFUNC(op_2148_0), 8520 }, /* MOVE */ -{ CPUFUNC(op_2150_0), 8528 }, /* MOVE */ -{ CPUFUNC(op_2158_0), 8536 }, /* MOVE */ -{ CPUFUNC(op_2160_0), 8544 }, /* MOVE */ -{ CPUFUNC(op_2168_0), 8552 }, /* MOVE */ -{ CPUFUNC(op_2170_0), 8560 }, /* MOVE */ -{ CPUFUNC(op_2178_0), 8568 }, /* MOVE */ -{ CPUFUNC(op_2179_0), 8569 }, /* MOVE */ -{ CPUFUNC(op_217a_0), 8570 }, /* MOVE */ -{ CPUFUNC(op_217b_0), 8571 }, /* MOVE */ -{ CPUFUNC(op_217c_0), 8572 }, /* MOVE */ -{ CPUFUNC(op_2180_0), 8576 }, /* MOVE */ -{ CPUFUNC(op_2188_0), 8584 }, /* MOVE */ -{ CPUFUNC(op_2190_0), 8592 }, /* MOVE */ -{ CPUFUNC(op_2198_0), 8600 }, /* MOVE */ -{ CPUFUNC(op_21a0_0), 8608 }, /* MOVE */ -{ CPUFUNC(op_21a8_0), 8616 }, /* MOVE */ -{ CPUFUNC(op_21b0_0), 8624 }, /* MOVE */ -{ CPUFUNC(op_21b8_0), 8632 }, /* MOVE */ -{ CPUFUNC(op_21b9_0), 8633 }, /* MOVE */ -{ CPUFUNC(op_21ba_0), 8634 }, /* MOVE */ -{ CPUFUNC(op_21bb_0), 8635 }, /* MOVE */ -{ CPUFUNC(op_21bc_0), 8636 }, /* MOVE */ -{ CPUFUNC(op_21c0_0), 8640 }, /* MOVE */ -{ CPUFUNC(op_21c8_0), 8648 }, /* MOVE */ -{ CPUFUNC(op_21d0_0), 8656 }, /* MOVE */ -{ CPUFUNC(op_21d8_0), 8664 }, /* MOVE */ -{ CPUFUNC(op_21e0_0), 8672 }, /* MOVE */ -{ CPUFUNC(op_21e8_0), 8680 }, /* MOVE */ -{ CPUFUNC(op_21f0_0), 8688 }, /* MOVE */ -{ CPUFUNC(op_21f8_0), 8696 }, /* MOVE */ -{ CPUFUNC(op_21f9_0), 8697 }, /* MOVE */ -{ CPUFUNC(op_21fa_0), 8698 }, /* MOVE */ -{ CPUFUNC(op_21fb_0), 8699 }, /* MOVE */ -{ CPUFUNC(op_21fc_0), 8700 }, /* MOVE */ -{ CPUFUNC(op_23c0_0), 9152 }, /* MOVE */ -{ CPUFUNC(op_23c8_0), 9160 }, /* MOVE */ -{ CPUFUNC(op_23d0_0), 9168 }, /* MOVE */ -{ CPUFUNC(op_23d8_0), 9176 }, /* MOVE */ -{ CPUFUNC(op_23e0_0), 9184 }, /* MOVE */ -{ CPUFUNC(op_23e8_0), 9192 }, /* MOVE */ -{ CPUFUNC(op_23f0_0), 9200 }, /* MOVE */ -{ CPUFUNC(op_23f8_0), 9208 }, /* MOVE */ -{ CPUFUNC(op_23f9_0), 9209 }, /* MOVE */ -{ CPUFUNC(op_23fa_0), 9210 }, /* MOVE */ -{ CPUFUNC(op_23fb_0), 9211 }, /* MOVE */ -{ CPUFUNC(op_23fc_0), 9212 }, /* MOVE */ -{ CPUFUNC(op_3000_0), 12288 }, /* MOVE */ -{ CPUFUNC(op_3008_0), 12296 }, /* MOVE */ -{ CPUFUNC(op_3010_0), 12304 }, /* MOVE */ -{ CPUFUNC(op_3018_0), 12312 }, /* MOVE */ -{ CPUFUNC(op_3020_0), 12320 }, /* MOVE */ -{ CPUFUNC(op_3028_0), 12328 }, /* MOVE */ -{ CPUFUNC(op_3030_0), 12336 }, /* MOVE */ -{ CPUFUNC(op_3038_0), 12344 }, /* MOVE */ -{ CPUFUNC(op_3039_0), 12345 }, /* MOVE */ -{ CPUFUNC(op_303a_0), 12346 }, /* MOVE */ -{ CPUFUNC(op_303b_0), 12347 }, /* MOVE */ -{ CPUFUNC(op_303c_0), 12348 }, /* MOVE */ -{ CPUFUNC(op_3040_0), 12352 }, /* MOVEA */ -{ CPUFUNC(op_3048_0), 12360 }, /* MOVEA */ -{ CPUFUNC(op_3050_0), 12368 }, /* MOVEA */ -{ CPUFUNC(op_3058_0), 12376 }, /* MOVEA */ -{ CPUFUNC(op_3060_0), 12384 }, /* MOVEA */ -{ CPUFUNC(op_3068_0), 12392 }, /* MOVEA */ -{ CPUFUNC(op_3070_0), 12400 }, /* MOVEA */ -{ CPUFUNC(op_3078_0), 12408 }, /* MOVEA */ -{ CPUFUNC(op_3079_0), 12409 }, /* MOVEA */ -{ CPUFUNC(op_307a_0), 12410 }, /* MOVEA */ -{ CPUFUNC(op_307b_0), 12411 }, /* MOVEA */ -{ CPUFUNC(op_307c_0), 12412 }, /* MOVEA */ -{ CPUFUNC(op_3080_0), 12416 }, /* MOVE */ -{ CPUFUNC(op_3088_0), 12424 }, /* MOVE */ -{ CPUFUNC(op_3090_0), 12432 }, /* MOVE */ -{ CPUFUNC(op_3098_0), 12440 }, /* MOVE */ -{ CPUFUNC(op_30a0_0), 12448 }, /* MOVE */ -{ CPUFUNC(op_30a8_0), 12456 }, /* MOVE */ -{ CPUFUNC(op_30b0_0), 12464 }, /* MOVE */ -{ CPUFUNC(op_30b8_0), 12472 }, /* MOVE */ -{ CPUFUNC(op_30b9_0), 12473 }, /* MOVE */ -{ CPUFUNC(op_30ba_0), 12474 }, /* MOVE */ -{ CPUFUNC(op_30bb_0), 12475 }, /* MOVE */ -{ CPUFUNC(op_30bc_0), 12476 }, /* MOVE */ -{ CPUFUNC(op_30c0_0), 12480 }, /* MOVE */ -{ CPUFUNC(op_30c8_0), 12488 }, /* MOVE */ -{ CPUFUNC(op_30d0_0), 12496 }, /* MOVE */ -{ CPUFUNC(op_30d8_0), 12504 }, /* MOVE */ -{ CPUFUNC(op_30e0_0), 12512 }, /* MOVE */ -{ CPUFUNC(op_30e8_0), 12520 }, /* MOVE */ -{ CPUFUNC(op_30f0_0), 12528 }, /* MOVE */ -{ CPUFUNC(op_30f8_0), 12536 }, /* MOVE */ -{ CPUFUNC(op_30f9_0), 12537 }, /* MOVE */ -{ CPUFUNC(op_30fa_0), 12538 }, /* MOVE */ -{ CPUFUNC(op_30fb_0), 12539 }, /* MOVE */ -{ CPUFUNC(op_30fc_0), 12540 }, /* MOVE */ -{ CPUFUNC(op_3100_0), 12544 }, /* MOVE */ -{ CPUFUNC(op_3108_0), 12552 }, /* MOVE */ -{ CPUFUNC(op_3110_0), 12560 }, /* MOVE */ -{ CPUFUNC(op_3118_0), 12568 }, /* MOVE */ -{ CPUFUNC(op_3120_0), 12576 }, /* MOVE */ -{ CPUFUNC(op_3128_0), 12584 }, /* MOVE */ -{ CPUFUNC(op_3130_0), 12592 }, /* MOVE */ -{ CPUFUNC(op_3138_0), 12600 }, /* MOVE */ -{ CPUFUNC(op_3139_0), 12601 }, /* MOVE */ -{ CPUFUNC(op_313a_0), 12602 }, /* MOVE */ -{ CPUFUNC(op_313b_0), 12603 }, /* MOVE */ -{ CPUFUNC(op_313c_0), 12604 }, /* MOVE */ -{ CPUFUNC(op_3140_0), 12608 }, /* MOVE */ -{ CPUFUNC(op_3148_0), 12616 }, /* MOVE */ -{ CPUFUNC(op_3150_0), 12624 }, /* MOVE */ -{ CPUFUNC(op_3158_0), 12632 }, /* MOVE */ -{ CPUFUNC(op_3160_0), 12640 }, /* MOVE */ -{ CPUFUNC(op_3168_0), 12648 }, /* MOVE */ -{ CPUFUNC(op_3170_0), 12656 }, /* MOVE */ -{ CPUFUNC(op_3178_0), 12664 }, /* MOVE */ -{ CPUFUNC(op_3179_0), 12665 }, /* MOVE */ -{ CPUFUNC(op_317a_0), 12666 }, /* MOVE */ -{ CPUFUNC(op_317b_0), 12667 }, /* MOVE */ -{ CPUFUNC(op_317c_0), 12668 }, /* MOVE */ -{ CPUFUNC(op_3180_0), 12672 }, /* MOVE */ -{ CPUFUNC(op_3188_0), 12680 }, /* MOVE */ -{ CPUFUNC(op_3190_0), 12688 }, /* MOVE */ -{ CPUFUNC(op_3198_0), 12696 }, /* MOVE */ -{ CPUFUNC(op_31a0_0), 12704 }, /* MOVE */ -{ CPUFUNC(op_31a8_0), 12712 }, /* MOVE */ -{ CPUFUNC(op_31b0_0), 12720 }, /* MOVE */ -{ CPUFUNC(op_31b8_0), 12728 }, /* MOVE */ -{ CPUFUNC(op_31b9_0), 12729 }, /* MOVE */ -{ CPUFUNC(op_31ba_0), 12730 }, /* MOVE */ -{ CPUFUNC(op_31bb_0), 12731 }, /* MOVE */ -{ CPUFUNC(op_31bc_0), 12732 }, /* MOVE */ -{ CPUFUNC(op_31c0_0), 12736 }, /* MOVE */ -{ CPUFUNC(op_31c8_0), 12744 }, /* MOVE */ -{ CPUFUNC(op_31d0_0), 12752 }, /* MOVE */ -{ CPUFUNC(op_31d8_0), 12760 }, /* MOVE */ -{ CPUFUNC(op_31e0_0), 12768 }, /* MOVE */ -{ CPUFUNC(op_31e8_0), 12776 }, /* MOVE */ -{ CPUFUNC(op_31f0_0), 12784 }, /* MOVE */ -{ CPUFUNC(op_31f8_0), 12792 }, /* MOVE */ -{ CPUFUNC(op_31f9_0), 12793 }, /* MOVE */ -{ CPUFUNC(op_31fa_0), 12794 }, /* MOVE */ -{ CPUFUNC(op_31fb_0), 12795 }, /* MOVE */ -{ CPUFUNC(op_31fc_0), 12796 }, /* MOVE */ -{ CPUFUNC(op_33c0_0), 13248 }, /* MOVE */ -{ CPUFUNC(op_33c8_0), 13256 }, /* MOVE */ -{ CPUFUNC(op_33d0_0), 13264 }, /* MOVE */ -{ CPUFUNC(op_33d8_0), 13272 }, /* MOVE */ -{ CPUFUNC(op_33e0_0), 13280 }, /* MOVE */ -{ CPUFUNC(op_33e8_0), 13288 }, /* MOVE */ -{ CPUFUNC(op_33f0_0), 13296 }, /* MOVE */ -{ CPUFUNC(op_33f8_0), 13304 }, /* MOVE */ -{ CPUFUNC(op_33f9_0), 13305 }, /* MOVE */ -{ CPUFUNC(op_33fa_0), 13306 }, /* MOVE */ -{ CPUFUNC(op_33fb_0), 13307 }, /* MOVE */ -{ CPUFUNC(op_33fc_0), 13308 }, /* MOVE */ -{ CPUFUNC(op_4000_0), 16384 }, /* NEGX */ -{ CPUFUNC(op_4010_0), 16400 }, /* NEGX */ -{ CPUFUNC(op_4018_0), 16408 }, /* NEGX */ -{ CPUFUNC(op_4020_0), 16416 }, /* NEGX */ -{ CPUFUNC(op_4028_0), 16424 }, /* NEGX */ -{ CPUFUNC(op_4030_0), 16432 }, /* NEGX */ -{ CPUFUNC(op_4038_0), 16440 }, /* NEGX */ -{ CPUFUNC(op_4039_0), 16441 }, /* NEGX */ -{ CPUFUNC(op_4040_0), 16448 }, /* NEGX */ -{ CPUFUNC(op_4050_0), 16464 }, /* NEGX */ -{ CPUFUNC(op_4058_0), 16472 }, /* NEGX */ -{ CPUFUNC(op_4060_0), 16480 }, /* NEGX */ -{ CPUFUNC(op_4068_0), 16488 }, /* NEGX */ -{ CPUFUNC(op_4070_0), 16496 }, /* NEGX */ -{ CPUFUNC(op_4078_0), 16504 }, /* NEGX */ -{ CPUFUNC(op_4079_0), 16505 }, /* NEGX */ -{ CPUFUNC(op_4080_0), 16512 }, /* NEGX */ -{ CPUFUNC(op_4090_0), 16528 }, /* NEGX */ -{ CPUFUNC(op_4098_0), 16536 }, /* NEGX */ -{ CPUFUNC(op_40a0_0), 16544 }, /* NEGX */ -{ CPUFUNC(op_40a8_0), 16552 }, /* NEGX */ -{ CPUFUNC(op_40b0_0), 16560 }, /* NEGX */ -{ CPUFUNC(op_40b8_0), 16568 }, /* NEGX */ -{ CPUFUNC(op_40b9_0), 16569 }, /* NEGX */ -{ CPUFUNC(op_40c0_0), 16576 }, /* MVSR2 */ -{ CPUFUNC(op_40d0_0), 16592 }, /* MVSR2 */ -{ CPUFUNC(op_40d8_0), 16600 }, /* MVSR2 */ -{ CPUFUNC(op_40e0_0), 16608 }, /* MVSR2 */ -{ CPUFUNC(op_40e8_0), 16616 }, /* MVSR2 */ -{ CPUFUNC(op_40f0_0), 16624 }, /* MVSR2 */ -{ CPUFUNC(op_40f8_0), 16632 }, /* MVSR2 */ -{ CPUFUNC(op_40f9_0), 16633 }, /* MVSR2 */ -{ CPUFUNC(op_4100_0), 16640 }, /* CHK */ -{ CPUFUNC(op_4110_0), 16656 }, /* CHK */ -{ CPUFUNC(op_4118_0), 16664 }, /* CHK */ -{ CPUFUNC(op_4120_0), 16672 }, /* CHK */ -{ CPUFUNC(op_4128_0), 16680 }, /* CHK */ -{ CPUFUNC(op_4130_0), 16688 }, /* CHK */ -{ CPUFUNC(op_4138_0), 16696 }, /* CHK */ -{ CPUFUNC(op_4139_0), 16697 }, /* CHK */ -{ CPUFUNC(op_413a_0), 16698 }, /* CHK */ -{ CPUFUNC(op_413b_0), 16699 }, /* CHK */ -{ CPUFUNC(op_413c_0), 16700 }, /* CHK */ -{ CPUFUNC(op_4180_0), 16768 }, /* CHK */ -{ CPUFUNC(op_4190_0), 16784 }, /* CHK */ -{ CPUFUNC(op_4198_0), 16792 }, /* CHK */ -{ CPUFUNC(op_41a0_0), 16800 }, /* CHK */ -{ CPUFUNC(op_41a8_0), 16808 }, /* CHK */ -{ CPUFUNC(op_41b0_0), 16816 }, /* CHK */ -{ CPUFUNC(op_41b8_0), 16824 }, /* CHK */ -{ CPUFUNC(op_41b9_0), 16825 }, /* CHK */ -{ CPUFUNC(op_41ba_0), 16826 }, /* CHK */ -{ CPUFUNC(op_41bb_0), 16827 }, /* CHK */ -{ CPUFUNC(op_41bc_0), 16828 }, /* CHK */ -{ CPUFUNC(op_41d0_0), 16848 }, /* LEA */ -{ CPUFUNC(op_41e8_0), 16872 }, /* LEA */ -{ CPUFUNC(op_41f0_0), 16880 }, /* LEA */ -{ CPUFUNC(op_41f8_0), 16888 }, /* LEA */ -{ CPUFUNC(op_41f9_0), 16889 }, /* LEA */ -{ CPUFUNC(op_41fa_0), 16890 }, /* LEA */ -{ CPUFUNC(op_41fb_0), 16891 }, /* LEA */ -{ CPUFUNC(op_4200_0), 16896 }, /* CLR */ -{ CPUFUNC(op_4210_0), 16912 }, /* CLR */ -{ CPUFUNC(op_4218_0), 16920 }, /* CLR */ -{ CPUFUNC(op_4220_0), 16928 }, /* CLR */ -{ CPUFUNC(op_4228_0), 16936 }, /* CLR */ -{ CPUFUNC(op_4230_0), 16944 }, /* CLR */ -{ CPUFUNC(op_4238_0), 16952 }, /* CLR */ -{ CPUFUNC(op_4239_0), 16953 }, /* CLR */ -{ CPUFUNC(op_4240_0), 16960 }, /* CLR */ -{ CPUFUNC(op_4250_0), 16976 }, /* CLR */ -{ CPUFUNC(op_4258_0), 16984 }, /* CLR */ -{ CPUFUNC(op_4260_0), 16992 }, /* CLR */ -{ CPUFUNC(op_4268_0), 17000 }, /* CLR */ -{ CPUFUNC(op_4270_0), 17008 }, /* CLR */ -{ CPUFUNC(op_4278_0), 17016 }, /* CLR */ -{ CPUFUNC(op_4279_0), 17017 }, /* CLR */ -{ CPUFUNC(op_4280_0), 17024 }, /* CLR */ -{ CPUFUNC(op_4290_0), 17040 }, /* CLR */ -{ CPUFUNC(op_4298_0), 17048 }, /* CLR */ -{ CPUFUNC(op_42a0_0), 17056 }, /* CLR */ -{ CPUFUNC(op_42a8_0), 17064 }, /* CLR */ -{ CPUFUNC(op_42b0_0), 17072 }, /* CLR */ -{ CPUFUNC(op_42b8_0), 17080 }, /* CLR */ -{ CPUFUNC(op_42b9_0), 17081 }, /* CLR */ -{ CPUFUNC(op_42c0_0), 17088 }, /* MVSR2 */ -{ CPUFUNC(op_42d0_0), 17104 }, /* MVSR2 */ -{ CPUFUNC(op_42d8_0), 17112 }, /* MVSR2 */ -{ CPUFUNC(op_42e0_0), 17120 }, /* MVSR2 */ -{ CPUFUNC(op_42e8_0), 17128 }, /* MVSR2 */ -{ CPUFUNC(op_42f0_0), 17136 }, /* MVSR2 */ -{ CPUFUNC(op_42f8_0), 17144 }, /* MVSR2 */ -{ CPUFUNC(op_42f9_0), 17145 }, /* MVSR2 */ -{ CPUFUNC(op_4400_0), 17408 }, /* NEG */ -{ CPUFUNC(op_4410_0), 17424 }, /* NEG */ -{ CPUFUNC(op_4418_0), 17432 }, /* NEG */ -{ CPUFUNC(op_4420_0), 17440 }, /* NEG */ -{ CPUFUNC(op_4428_0), 17448 }, /* NEG */ -{ CPUFUNC(op_4430_0), 17456 }, /* NEG */ -{ CPUFUNC(op_4438_0), 17464 }, /* NEG */ -{ CPUFUNC(op_4439_0), 17465 }, /* NEG */ -{ CPUFUNC(op_4440_0), 17472 }, /* NEG */ -{ CPUFUNC(op_4450_0), 17488 }, /* NEG */ -{ CPUFUNC(op_4458_0), 17496 }, /* NEG */ -{ CPUFUNC(op_4460_0), 17504 }, /* NEG */ -{ CPUFUNC(op_4468_0), 17512 }, /* NEG */ -{ CPUFUNC(op_4470_0), 17520 }, /* NEG */ -{ CPUFUNC(op_4478_0), 17528 }, /* NEG */ -{ CPUFUNC(op_4479_0), 17529 }, /* NEG */ -{ CPUFUNC(op_4480_0), 17536 }, /* NEG */ -{ CPUFUNC(op_4490_0), 17552 }, /* NEG */ -{ CPUFUNC(op_4498_0), 17560 }, /* NEG */ -{ CPUFUNC(op_44a0_0), 17568 }, /* NEG */ -{ CPUFUNC(op_44a8_0), 17576 }, /* NEG */ -{ CPUFUNC(op_44b0_0), 17584 }, /* NEG */ -{ CPUFUNC(op_44b8_0), 17592 }, /* NEG */ -{ CPUFUNC(op_44b9_0), 17593 }, /* NEG */ -{ CPUFUNC(op_44c0_0), 17600 }, /* MV2SR */ -{ CPUFUNC(op_44d0_0), 17616 }, /* MV2SR */ -{ CPUFUNC(op_44d8_0), 17624 }, /* MV2SR */ -{ CPUFUNC(op_44e0_0), 17632 }, /* MV2SR */ -{ CPUFUNC(op_44e8_0), 17640 }, /* MV2SR */ -{ CPUFUNC(op_44f0_0), 17648 }, /* MV2SR */ -{ CPUFUNC(op_44f8_0), 17656 }, /* MV2SR */ -{ CPUFUNC(op_44f9_0), 17657 }, /* MV2SR */ -{ CPUFUNC(op_44fa_0), 17658 }, /* MV2SR */ -{ CPUFUNC(op_44fb_0), 17659 }, /* MV2SR */ -{ CPUFUNC(op_44fc_0), 17660 }, /* MV2SR */ -{ CPUFUNC(op_4600_0), 17920 }, /* NOT */ -{ CPUFUNC(op_4610_0), 17936 }, /* NOT */ -{ CPUFUNC(op_4618_0), 17944 }, /* NOT */ -{ CPUFUNC(op_4620_0), 17952 }, /* NOT */ -{ CPUFUNC(op_4628_0), 17960 }, /* NOT */ -{ CPUFUNC(op_4630_0), 17968 }, /* NOT */ -{ CPUFUNC(op_4638_0), 17976 }, /* NOT */ -{ CPUFUNC(op_4639_0), 17977 }, /* NOT */ -{ CPUFUNC(op_4640_0), 17984 }, /* NOT */ -{ CPUFUNC(op_4650_0), 18000 }, /* NOT */ -{ CPUFUNC(op_4658_0), 18008 }, /* NOT */ -{ CPUFUNC(op_4660_0), 18016 }, /* NOT */ -{ CPUFUNC(op_4668_0), 18024 }, /* NOT */ -{ CPUFUNC(op_4670_0), 18032 }, /* NOT */ -{ CPUFUNC(op_4678_0), 18040 }, /* NOT */ -{ CPUFUNC(op_4679_0), 18041 }, /* NOT */ -{ CPUFUNC(op_4680_0), 18048 }, /* NOT */ -{ CPUFUNC(op_4690_0), 18064 }, /* NOT */ -{ CPUFUNC(op_4698_0), 18072 }, /* NOT */ -{ CPUFUNC(op_46a0_0), 18080 }, /* NOT */ -{ CPUFUNC(op_46a8_0), 18088 }, /* NOT */ -{ CPUFUNC(op_46b0_0), 18096 }, /* NOT */ -{ CPUFUNC(op_46b8_0), 18104 }, /* NOT */ -{ CPUFUNC(op_46b9_0), 18105 }, /* NOT */ -{ CPUFUNC(op_46c0_0), 18112 }, /* MV2SR */ -{ CPUFUNC(op_46d0_0), 18128 }, /* MV2SR */ -{ CPUFUNC(op_46d8_0), 18136 }, /* MV2SR */ -{ CPUFUNC(op_46e0_0), 18144 }, /* MV2SR */ -{ CPUFUNC(op_46e8_0), 18152 }, /* MV2SR */ -{ CPUFUNC(op_46f0_0), 18160 }, /* MV2SR */ -{ CPUFUNC(op_46f8_0), 18168 }, /* MV2SR */ -{ CPUFUNC(op_46f9_0), 18169 }, /* MV2SR */ -{ CPUFUNC(op_46fa_0), 18170 }, /* MV2SR */ -{ CPUFUNC(op_46fb_0), 18171 }, /* MV2SR */ -{ CPUFUNC(op_46fc_0), 18172 }, /* MV2SR */ -{ CPUFUNC(op_4800_2), 18432 }, /* NBCD */ -{ CPUFUNC(op_4808_0), 18440 }, /* LINK */ -{ CPUFUNC(op_4810_2), 18448 }, /* NBCD */ -{ CPUFUNC(op_4818_2), 18456 }, /* NBCD */ -{ CPUFUNC(op_4820_2), 18464 }, /* NBCD */ -{ CPUFUNC(op_4828_2), 18472 }, /* NBCD */ -{ CPUFUNC(op_4830_2), 18480 }, /* NBCD */ -{ CPUFUNC(op_4838_2), 18488 }, /* NBCD */ -{ CPUFUNC(op_4839_2), 18489 }, /* NBCD */ -{ CPUFUNC(op_4840_0), 18496 }, /* SWAP */ -{ CPUFUNC(op_4848_0), 18504 }, /* BKPT */ -{ CPUFUNC(op_4850_0), 18512 }, /* PEA */ -{ CPUFUNC(op_4868_0), 18536 }, /* PEA */ -{ CPUFUNC(op_4870_0), 18544 }, /* PEA */ -{ CPUFUNC(op_4878_0), 18552 }, /* PEA */ -{ CPUFUNC(op_4879_0), 18553 }, /* PEA */ -{ CPUFUNC(op_487a_0), 18554 }, /* PEA */ -{ CPUFUNC(op_487b_0), 18555 }, /* PEA */ -{ CPUFUNC(op_4880_0), 18560 }, /* EXT */ -{ CPUFUNC(op_4890_0), 18576 }, /* MVMLE */ -{ CPUFUNC(op_48a0_0), 18592 }, /* MVMLE */ -{ CPUFUNC(op_48a8_0), 18600 }, /* MVMLE */ -{ CPUFUNC(op_48b0_0), 18608 }, /* MVMLE */ -{ CPUFUNC(op_48b8_0), 18616 }, /* MVMLE */ -{ CPUFUNC(op_48b9_0), 18617 }, /* MVMLE */ -{ CPUFUNC(op_48c0_0), 18624 }, /* EXT */ -{ CPUFUNC(op_48d0_0), 18640 }, /* MVMLE */ -{ CPUFUNC(op_48e0_0), 18656 }, /* MVMLE */ -{ CPUFUNC(op_48e8_0), 18664 }, /* MVMLE */ -{ CPUFUNC(op_48f0_0), 18672 }, /* MVMLE */ -{ CPUFUNC(op_48f8_0), 18680 }, /* MVMLE */ -{ CPUFUNC(op_48f9_0), 18681 }, /* MVMLE */ -{ CPUFUNC(op_49c0_0), 18880 }, /* EXT */ -{ CPUFUNC(op_4a00_0), 18944 }, /* TST */ -{ CPUFUNC(op_4a10_0), 18960 }, /* TST */ -{ CPUFUNC(op_4a18_0), 18968 }, /* TST */ -{ CPUFUNC(op_4a20_0), 18976 }, /* TST */ -{ CPUFUNC(op_4a28_0), 18984 }, /* TST */ -{ CPUFUNC(op_4a30_0), 18992 }, /* TST */ -{ CPUFUNC(op_4a38_0), 19000 }, /* TST */ -{ CPUFUNC(op_4a39_0), 19001 }, /* TST */ -{ CPUFUNC(op_4a3a_0), 19002 }, /* TST */ -{ CPUFUNC(op_4a3b_0), 19003 }, /* TST */ -{ CPUFUNC(op_4a3c_0), 19004 }, /* TST */ -{ CPUFUNC(op_4a40_0), 19008 }, /* TST */ -{ CPUFUNC(op_4a48_0), 19016 }, /* TST */ -{ CPUFUNC(op_4a50_0), 19024 }, /* TST */ -{ CPUFUNC(op_4a58_0), 19032 }, /* TST */ -{ CPUFUNC(op_4a60_0), 19040 }, /* TST */ -{ CPUFUNC(op_4a68_0), 19048 }, /* TST */ -{ CPUFUNC(op_4a70_0), 19056 }, /* TST */ -{ CPUFUNC(op_4a78_0), 19064 }, /* TST */ -{ CPUFUNC(op_4a79_0), 19065 }, /* TST */ -{ CPUFUNC(op_4a7a_0), 19066 }, /* TST */ -{ CPUFUNC(op_4a7b_0), 19067 }, /* TST */ -{ CPUFUNC(op_4a7c_0), 19068 }, /* TST */ -{ CPUFUNC(op_4a80_0), 19072 }, /* TST */ -{ CPUFUNC(op_4a88_0), 19080 }, /* TST */ -{ CPUFUNC(op_4a90_0), 19088 }, /* TST */ -{ CPUFUNC(op_4a98_0), 19096 }, /* TST */ -{ CPUFUNC(op_4aa0_0), 19104 }, /* TST */ -{ CPUFUNC(op_4aa8_0), 19112 }, /* TST */ -{ CPUFUNC(op_4ab0_0), 19120 }, /* TST */ -{ CPUFUNC(op_4ab8_0), 19128 }, /* TST */ -{ CPUFUNC(op_4ab9_0), 19129 }, /* TST */ -{ CPUFUNC(op_4aba_0), 19130 }, /* TST */ -{ CPUFUNC(op_4abb_0), 19131 }, /* TST */ -{ CPUFUNC(op_4abc_0), 19132 }, /* TST */ -{ CPUFUNC(op_4ac0_0), 19136 }, /* TAS */ -{ CPUFUNC(op_4ad0_0), 19152 }, /* TAS */ -{ CPUFUNC(op_4ad8_0), 19160 }, /* TAS */ -{ CPUFUNC(op_4ae0_0), 19168 }, /* TAS */ -{ CPUFUNC(op_4ae8_0), 19176 }, /* TAS */ -{ CPUFUNC(op_4af0_0), 19184 }, /* TAS */ -{ CPUFUNC(op_4af8_0), 19192 }, /* TAS */ -{ CPUFUNC(op_4af9_0), 19193 }, /* TAS */ -{ CPUFUNC(op_4c00_0), 19456 }, /* MULL */ -{ CPUFUNC(op_4c10_0), 19472 }, /* MULL */ -{ CPUFUNC(op_4c18_0), 19480 }, /* MULL */ -{ CPUFUNC(op_4c20_0), 19488 }, /* MULL */ -{ CPUFUNC(op_4c28_0), 19496 }, /* MULL */ -{ CPUFUNC(op_4c30_0), 19504 }, /* MULL */ -{ CPUFUNC(op_4c38_0), 19512 }, /* MULL */ -{ CPUFUNC(op_4c39_0), 19513 }, /* MULL */ -{ CPUFUNC(op_4c3a_0), 19514 }, /* MULL */ -{ CPUFUNC(op_4c3b_0), 19515 }, /* MULL */ -{ CPUFUNC(op_4c3c_0), 19516 }, /* MULL */ -{ CPUFUNC(op_4c40_0), 19520 }, /* DIVL */ -{ CPUFUNC(op_4c50_0), 19536 }, /* DIVL */ -{ CPUFUNC(op_4c58_0), 19544 }, /* DIVL */ -{ CPUFUNC(op_4c60_0), 19552 }, /* DIVL */ -{ CPUFUNC(op_4c68_0), 19560 }, /* DIVL */ -{ CPUFUNC(op_4c70_0), 19568 }, /* DIVL */ -{ CPUFUNC(op_4c78_0), 19576 }, /* DIVL */ -{ CPUFUNC(op_4c79_0), 19577 }, /* DIVL */ -{ CPUFUNC(op_4c7a_0), 19578 }, /* DIVL */ -{ CPUFUNC(op_4c7b_0), 19579 }, /* DIVL */ -{ CPUFUNC(op_4c7c_0), 19580 }, /* DIVL */ -{ CPUFUNC(op_4c90_0), 19600 }, /* MVMEL */ -{ CPUFUNC(op_4c98_0), 19608 }, /* MVMEL */ -{ CPUFUNC(op_4ca8_0), 19624 }, /* MVMEL */ -{ CPUFUNC(op_4cb0_0), 19632 }, /* MVMEL */ -{ CPUFUNC(op_4cb8_0), 19640 }, /* MVMEL */ -{ CPUFUNC(op_4cb9_0), 19641 }, /* MVMEL */ -{ CPUFUNC(op_4cba_0), 19642 }, /* MVMEL */ -{ CPUFUNC(op_4cbb_0), 19643 }, /* MVMEL */ -{ CPUFUNC(op_4cd0_0), 19664 }, /* MVMEL */ -{ CPUFUNC(op_4cd8_0), 19672 }, /* MVMEL */ -{ CPUFUNC(op_4ce8_0), 19688 }, /* MVMEL */ -{ CPUFUNC(op_4cf0_0), 19696 }, /* MVMEL */ -{ CPUFUNC(op_4cf8_0), 19704 }, /* MVMEL */ -{ CPUFUNC(op_4cf9_0), 19705 }, /* MVMEL */ -{ CPUFUNC(op_4cfa_0), 19706 }, /* MVMEL */ -{ CPUFUNC(op_4cfb_0), 19707 }, /* MVMEL */ -{ CPUFUNC(op_4e40_0), 20032 }, /* TRAP */ -{ CPUFUNC(op_4e50_0), 20048 }, /* LINK */ -{ CPUFUNC(op_4e58_0), 20056 }, /* UNLK */ -{ CPUFUNC(op_4e60_0), 20064 }, /* MVR2USP */ -{ CPUFUNC(op_4e68_0), 20072 }, /* MVUSP2R */ -{ CPUFUNC(op_4e70_0), 20080 }, /* RESET */ -{ CPUFUNC(op_4e71_0), 20081 }, /* NOP */ -{ CPUFUNC(op_4e72_0), 20082 }, /* STOP */ -{ CPUFUNC(op_4e73_0), 20083 }, /* RTE */ -{ CPUFUNC(op_4e74_0), 20084 }, /* RTD */ -{ CPUFUNC(op_4e75_0), 20085 }, /* RTS */ -{ CPUFUNC(op_4e76_0), 20086 }, /* TRAPV */ -{ CPUFUNC(op_4e77_0), 20087 }, /* RTR */ -{ CPUFUNC(op_4e7a_0), 20090 }, /* MOVEC2 */ -{ CPUFUNC(op_4e7b_0), 20091 }, /* MOVE2C */ -{ CPUFUNC(op_4e90_0), 20112 }, /* JSR */ -{ CPUFUNC(op_4ea8_0), 20136 }, /* JSR */ -{ CPUFUNC(op_4eb0_0), 20144 }, /* JSR */ -{ CPUFUNC(op_4eb8_0), 20152 }, /* JSR */ -{ CPUFUNC(op_4eb9_0), 20153 }, /* JSR */ -{ CPUFUNC(op_4eba_0), 20154 }, /* JSR */ -{ CPUFUNC(op_4ebb_0), 20155 }, /* JSR */ -{ CPUFUNC(op_4ed0_0), 20176 }, /* JMP */ -{ CPUFUNC(op_4ee8_0), 20200 }, /* JMP */ -{ CPUFUNC(op_4ef0_0), 20208 }, /* JMP */ -{ CPUFUNC(op_4ef8_0), 20216 }, /* JMP */ -{ CPUFUNC(op_4ef9_0), 20217 }, /* JMP */ -{ CPUFUNC(op_4efa_0), 20218 }, /* JMP */ -{ CPUFUNC(op_4efb_0), 20219 }, /* JMP */ -{ CPUFUNC(op_5000_0), 20480 }, /* ADD */ -{ CPUFUNC(op_5010_0), 20496 }, /* ADD */ -{ CPUFUNC(op_5018_0), 20504 }, /* ADD */ -{ CPUFUNC(op_5020_0), 20512 }, /* ADD */ -{ CPUFUNC(op_5028_0), 20520 }, /* ADD */ -{ CPUFUNC(op_5030_0), 20528 }, /* ADD */ -{ CPUFUNC(op_5038_0), 20536 }, /* ADD */ -{ CPUFUNC(op_5039_0), 20537 }, /* ADD */ -{ CPUFUNC(op_5040_0), 20544 }, /* ADD */ -{ CPUFUNC(op_5048_0), 20552 }, /* ADDA */ -{ CPUFUNC(op_5050_0), 20560 }, /* ADD */ -{ CPUFUNC(op_5058_0), 20568 }, /* ADD */ -{ CPUFUNC(op_5060_0), 20576 }, /* ADD */ -{ CPUFUNC(op_5068_0), 20584 }, /* ADD */ -{ CPUFUNC(op_5070_0), 20592 }, /* ADD */ -{ CPUFUNC(op_5078_0), 20600 }, /* ADD */ -{ CPUFUNC(op_5079_0), 20601 }, /* ADD */ -{ CPUFUNC(op_5080_0), 20608 }, /* ADD */ -{ CPUFUNC(op_5088_0), 20616 }, /* ADDA */ -{ CPUFUNC(op_5090_0), 20624 }, /* ADD */ -{ CPUFUNC(op_5098_0), 20632 }, /* ADD */ -{ CPUFUNC(op_50a0_0), 20640 }, /* ADD */ -{ CPUFUNC(op_50a8_0), 20648 }, /* ADD */ -{ CPUFUNC(op_50b0_0), 20656 }, /* ADD */ -{ CPUFUNC(op_50b8_0), 20664 }, /* ADD */ -{ CPUFUNC(op_50b9_0), 20665 }, /* ADD */ -{ CPUFUNC(op_50c0_0), 20672 }, /* Scc */ -{ CPUFUNC(op_50c8_0), 20680 }, /* DBcc */ -{ CPUFUNC(op_50d0_0), 20688 }, /* Scc */ -{ CPUFUNC(op_50d8_0), 20696 }, /* Scc */ -{ CPUFUNC(op_50e0_0), 20704 }, /* Scc */ -{ CPUFUNC(op_50e8_0), 20712 }, /* Scc */ -{ CPUFUNC(op_50f0_0), 20720 }, /* Scc */ -{ CPUFUNC(op_50f8_0), 20728 }, /* Scc */ -{ CPUFUNC(op_50f9_0), 20729 }, /* Scc */ -{ CPUFUNC(op_50fa_0), 20730 }, /* TRAPcc */ -{ CPUFUNC(op_50fb_0), 20731 }, /* TRAPcc */ -{ CPUFUNC(op_50fc_0), 20732 }, /* TRAPcc */ -{ CPUFUNC(op_5100_0), 20736 }, /* SUB */ -{ CPUFUNC(op_5110_0), 20752 }, /* SUB */ -{ CPUFUNC(op_5118_0), 20760 }, /* SUB */ -{ CPUFUNC(op_5120_0), 20768 }, /* SUB */ -{ CPUFUNC(op_5128_0), 20776 }, /* SUB */ -{ CPUFUNC(op_5130_0), 20784 }, /* SUB */ -{ CPUFUNC(op_5138_0), 20792 }, /* SUB */ -{ CPUFUNC(op_5139_0), 20793 }, /* SUB */ -{ CPUFUNC(op_5140_0), 20800 }, /* SUB */ -{ CPUFUNC(op_5148_0), 20808 }, /* SUBA */ -{ CPUFUNC(op_5150_0), 20816 }, /* SUB */ -{ CPUFUNC(op_5158_0), 20824 }, /* SUB */ -{ CPUFUNC(op_5160_0), 20832 }, /* SUB */ -{ CPUFUNC(op_5168_0), 20840 }, /* SUB */ -{ CPUFUNC(op_5170_0), 20848 }, /* SUB */ -{ CPUFUNC(op_5178_0), 20856 }, /* SUB */ -{ CPUFUNC(op_5179_0), 20857 }, /* SUB */ -{ CPUFUNC(op_5180_0), 20864 }, /* SUB */ -{ CPUFUNC(op_5188_0), 20872 }, /* SUBA */ -{ CPUFUNC(op_5190_0), 20880 }, /* SUB */ -{ CPUFUNC(op_5198_0), 20888 }, /* SUB */ -{ CPUFUNC(op_51a0_0), 20896 }, /* SUB */ -{ CPUFUNC(op_51a8_0), 20904 }, /* SUB */ -{ CPUFUNC(op_51b0_0), 20912 }, /* SUB */ -{ CPUFUNC(op_51b8_0), 20920 }, /* SUB */ -{ CPUFUNC(op_51b9_0), 20921 }, /* SUB */ -{ CPUFUNC(op_51c0_0), 20928 }, /* Scc */ -{ CPUFUNC(op_51c8_0), 20936 }, /* DBcc */ -{ CPUFUNC(op_51d0_0), 20944 }, /* Scc */ -{ CPUFUNC(op_51d8_0), 20952 }, /* Scc */ -{ CPUFUNC(op_51e0_0), 20960 }, /* Scc */ -{ CPUFUNC(op_51e8_0), 20968 }, /* Scc */ -{ CPUFUNC(op_51f0_0), 20976 }, /* Scc */ -{ CPUFUNC(op_51f8_0), 20984 }, /* Scc */ -{ CPUFUNC(op_51f9_0), 20985 }, /* Scc */ -{ CPUFUNC(op_51fa_0), 20986 }, /* TRAPcc */ -{ CPUFUNC(op_51fb_0), 20987 }, /* TRAPcc */ -{ CPUFUNC(op_51fc_0), 20988 }, /* TRAPcc */ -{ CPUFUNC(op_52c0_0), 21184 }, /* Scc */ -{ CPUFUNC(op_52c8_0), 21192 }, /* DBcc */ -{ CPUFUNC(op_52d0_0), 21200 }, /* Scc */ -{ CPUFUNC(op_52d8_0), 21208 }, /* Scc */ -{ CPUFUNC(op_52e0_0), 21216 }, /* Scc */ -{ CPUFUNC(op_52e8_0), 21224 }, /* Scc */ -{ CPUFUNC(op_52f0_0), 21232 }, /* Scc */ -{ CPUFUNC(op_52f8_0), 21240 }, /* Scc */ -{ CPUFUNC(op_52f9_0), 21241 }, /* Scc */ -{ CPUFUNC(op_52fa_0), 21242 }, /* TRAPcc */ -{ CPUFUNC(op_52fb_0), 21243 }, /* TRAPcc */ -{ CPUFUNC(op_52fc_0), 21244 }, /* TRAPcc */ -{ CPUFUNC(op_53c0_0), 21440 }, /* Scc */ -{ CPUFUNC(op_53c8_0), 21448 }, /* DBcc */ -{ CPUFUNC(op_53d0_0), 21456 }, /* Scc */ -{ CPUFUNC(op_53d8_0), 21464 }, /* Scc */ -{ CPUFUNC(op_53e0_0), 21472 }, /* Scc */ -{ CPUFUNC(op_53e8_0), 21480 }, /* Scc */ -{ CPUFUNC(op_53f0_0), 21488 }, /* Scc */ -{ CPUFUNC(op_53f8_0), 21496 }, /* Scc */ -{ CPUFUNC(op_53f9_0), 21497 }, /* Scc */ -{ CPUFUNC(op_53fa_0), 21498 }, /* TRAPcc */ -{ CPUFUNC(op_53fb_0), 21499 }, /* TRAPcc */ -{ CPUFUNC(op_53fc_0), 21500 }, /* TRAPcc */ -{ CPUFUNC(op_54c0_0), 21696 }, /* Scc */ -{ CPUFUNC(op_54c8_0), 21704 }, /* DBcc */ -{ CPUFUNC(op_54d0_0), 21712 }, /* Scc */ -{ CPUFUNC(op_54d8_0), 21720 }, /* Scc */ -{ CPUFUNC(op_54e0_0), 21728 }, /* Scc */ -{ CPUFUNC(op_54e8_0), 21736 }, /* Scc */ -{ CPUFUNC(op_54f0_0), 21744 }, /* Scc */ -{ CPUFUNC(op_54f8_0), 21752 }, /* Scc */ -{ CPUFUNC(op_54f9_0), 21753 }, /* Scc */ -{ CPUFUNC(op_54fa_0), 21754 }, /* TRAPcc */ -{ CPUFUNC(op_54fb_0), 21755 }, /* TRAPcc */ -{ CPUFUNC(op_54fc_0), 21756 }, /* TRAPcc */ -{ CPUFUNC(op_55c0_0), 21952 }, /* Scc */ -{ CPUFUNC(op_55c8_0), 21960 }, /* DBcc */ -{ CPUFUNC(op_55d0_0), 21968 }, /* Scc */ -{ CPUFUNC(op_55d8_0), 21976 }, /* Scc */ -{ CPUFUNC(op_55e0_0), 21984 }, /* Scc */ -{ CPUFUNC(op_55e8_0), 21992 }, /* Scc */ -{ CPUFUNC(op_55f0_0), 22000 }, /* Scc */ -{ CPUFUNC(op_55f8_0), 22008 }, /* Scc */ -{ CPUFUNC(op_55f9_0), 22009 }, /* Scc */ -{ CPUFUNC(op_55fa_0), 22010 }, /* TRAPcc */ -{ CPUFUNC(op_55fb_0), 22011 }, /* TRAPcc */ -{ CPUFUNC(op_55fc_0), 22012 }, /* TRAPcc */ -{ CPUFUNC(op_56c0_0), 22208 }, /* Scc */ -{ CPUFUNC(op_56c8_0), 22216 }, /* DBcc */ -{ CPUFUNC(op_56d0_0), 22224 }, /* Scc */ -{ CPUFUNC(op_56d8_0), 22232 }, /* Scc */ -{ CPUFUNC(op_56e0_0), 22240 }, /* Scc */ -{ CPUFUNC(op_56e8_0), 22248 }, /* Scc */ -{ CPUFUNC(op_56f0_0), 22256 }, /* Scc */ -{ CPUFUNC(op_56f8_0), 22264 }, /* Scc */ -{ CPUFUNC(op_56f9_0), 22265 }, /* Scc */ -{ CPUFUNC(op_56fa_0), 22266 }, /* TRAPcc */ -{ CPUFUNC(op_56fb_0), 22267 }, /* TRAPcc */ -{ CPUFUNC(op_56fc_0), 22268 }, /* TRAPcc */ -{ CPUFUNC(op_57c0_0), 22464 }, /* Scc */ -{ CPUFUNC(op_57c8_0), 22472 }, /* DBcc */ -{ CPUFUNC(op_57d0_0), 22480 }, /* Scc */ -{ CPUFUNC(op_57d8_0), 22488 }, /* Scc */ -{ CPUFUNC(op_57e0_0), 22496 }, /* Scc */ -{ CPUFUNC(op_57e8_0), 22504 }, /* Scc */ -{ CPUFUNC(op_57f0_0), 22512 }, /* Scc */ -{ CPUFUNC(op_57f8_0), 22520 }, /* Scc */ -{ CPUFUNC(op_57f9_0), 22521 }, /* Scc */ -{ CPUFUNC(op_57fa_0), 22522 }, /* TRAPcc */ -{ CPUFUNC(op_57fb_0), 22523 }, /* TRAPcc */ -{ CPUFUNC(op_57fc_0), 22524 }, /* TRAPcc */ -{ CPUFUNC(op_58c0_0), 22720 }, /* Scc */ -{ CPUFUNC(op_58c8_0), 22728 }, /* DBcc */ -{ CPUFUNC(op_58d0_0), 22736 }, /* Scc */ -{ CPUFUNC(op_58d8_0), 22744 }, /* Scc */ -{ CPUFUNC(op_58e0_0), 22752 }, /* Scc */ -{ CPUFUNC(op_58e8_0), 22760 }, /* Scc */ -{ CPUFUNC(op_58f0_0), 22768 }, /* Scc */ -{ CPUFUNC(op_58f8_0), 22776 }, /* Scc */ -{ CPUFUNC(op_58f9_0), 22777 }, /* Scc */ -{ CPUFUNC(op_58fa_0), 22778 }, /* TRAPcc */ -{ CPUFUNC(op_58fb_0), 22779 }, /* TRAPcc */ -{ CPUFUNC(op_58fc_0), 22780 }, /* TRAPcc */ -{ CPUFUNC(op_59c0_0), 22976 }, /* Scc */ -{ CPUFUNC(op_59c8_0), 22984 }, /* DBcc */ -{ CPUFUNC(op_59d0_0), 22992 }, /* Scc */ -{ CPUFUNC(op_59d8_0), 23000 }, /* Scc */ -{ CPUFUNC(op_59e0_0), 23008 }, /* Scc */ -{ CPUFUNC(op_59e8_0), 23016 }, /* Scc */ -{ CPUFUNC(op_59f0_0), 23024 }, /* Scc */ -{ CPUFUNC(op_59f8_0), 23032 }, /* Scc */ -{ CPUFUNC(op_59f9_0), 23033 }, /* Scc */ -{ CPUFUNC(op_59fa_0), 23034 }, /* TRAPcc */ -{ CPUFUNC(op_59fb_0), 23035 }, /* TRAPcc */ -{ CPUFUNC(op_59fc_0), 23036 }, /* TRAPcc */ -{ CPUFUNC(op_5ac0_0), 23232 }, /* Scc */ -{ CPUFUNC(op_5ac8_0), 23240 }, /* DBcc */ -{ CPUFUNC(op_5ad0_0), 23248 }, /* Scc */ -{ CPUFUNC(op_5ad8_0), 23256 }, /* Scc */ -{ CPUFUNC(op_5ae0_0), 23264 }, /* Scc */ -{ CPUFUNC(op_5ae8_0), 23272 }, /* Scc */ -{ CPUFUNC(op_5af0_0), 23280 }, /* Scc */ -{ CPUFUNC(op_5af8_0), 23288 }, /* Scc */ -{ CPUFUNC(op_5af9_0), 23289 }, /* Scc */ -{ CPUFUNC(op_5afa_0), 23290 }, /* TRAPcc */ -{ CPUFUNC(op_5afb_0), 23291 }, /* TRAPcc */ -{ CPUFUNC(op_5afc_0), 23292 }, /* TRAPcc */ -{ CPUFUNC(op_5bc0_0), 23488 }, /* Scc */ -{ CPUFUNC(op_5bc8_0), 23496 }, /* DBcc */ -{ CPUFUNC(op_5bd0_0), 23504 }, /* Scc */ -{ CPUFUNC(op_5bd8_0), 23512 }, /* Scc */ -{ CPUFUNC(op_5be0_0), 23520 }, /* Scc */ -{ CPUFUNC(op_5be8_0), 23528 }, /* Scc */ -{ CPUFUNC(op_5bf0_0), 23536 }, /* Scc */ -{ CPUFUNC(op_5bf8_0), 23544 }, /* Scc */ -{ CPUFUNC(op_5bf9_0), 23545 }, /* Scc */ -{ CPUFUNC(op_5bfa_0), 23546 }, /* TRAPcc */ -{ CPUFUNC(op_5bfb_0), 23547 }, /* TRAPcc */ -{ CPUFUNC(op_5bfc_0), 23548 }, /* TRAPcc */ -{ CPUFUNC(op_5cc0_0), 23744 }, /* Scc */ -{ CPUFUNC(op_5cc8_0), 23752 }, /* DBcc */ -{ CPUFUNC(op_5cd0_0), 23760 }, /* Scc */ -{ CPUFUNC(op_5cd8_0), 23768 }, /* Scc */ -{ CPUFUNC(op_5ce0_0), 23776 }, /* Scc */ -{ CPUFUNC(op_5ce8_0), 23784 }, /* Scc */ -{ CPUFUNC(op_5cf0_0), 23792 }, /* Scc */ -{ CPUFUNC(op_5cf8_0), 23800 }, /* Scc */ -{ CPUFUNC(op_5cf9_0), 23801 }, /* Scc */ -{ CPUFUNC(op_5cfa_0), 23802 }, /* TRAPcc */ -{ CPUFUNC(op_5cfb_0), 23803 }, /* TRAPcc */ -{ CPUFUNC(op_5cfc_0), 23804 }, /* TRAPcc */ -{ CPUFUNC(op_5dc0_0), 24000 }, /* Scc */ -{ CPUFUNC(op_5dc8_0), 24008 }, /* DBcc */ -{ CPUFUNC(op_5dd0_0), 24016 }, /* Scc */ -{ CPUFUNC(op_5dd8_0), 24024 }, /* Scc */ -{ CPUFUNC(op_5de0_0), 24032 }, /* Scc */ -{ CPUFUNC(op_5de8_0), 24040 }, /* Scc */ -{ CPUFUNC(op_5df0_0), 24048 }, /* Scc */ -{ CPUFUNC(op_5df8_0), 24056 }, /* Scc */ -{ CPUFUNC(op_5df9_0), 24057 }, /* Scc */ -{ CPUFUNC(op_5dfa_0), 24058 }, /* TRAPcc */ -{ CPUFUNC(op_5dfb_0), 24059 }, /* TRAPcc */ -{ CPUFUNC(op_5dfc_0), 24060 }, /* TRAPcc */ -{ CPUFUNC(op_5ec0_0), 24256 }, /* Scc */ -{ CPUFUNC(op_5ec8_0), 24264 }, /* DBcc */ -{ CPUFUNC(op_5ed0_0), 24272 }, /* Scc */ -{ CPUFUNC(op_5ed8_0), 24280 }, /* Scc */ -{ CPUFUNC(op_5ee0_0), 24288 }, /* Scc */ -{ CPUFUNC(op_5ee8_0), 24296 }, /* Scc */ -{ CPUFUNC(op_5ef0_0), 24304 }, /* Scc */ -{ CPUFUNC(op_5ef8_0), 24312 }, /* Scc */ -{ CPUFUNC(op_5ef9_0), 24313 }, /* Scc */ -{ CPUFUNC(op_5efa_0), 24314 }, /* TRAPcc */ -{ CPUFUNC(op_5efb_0), 24315 }, /* TRAPcc */ -{ CPUFUNC(op_5efc_0), 24316 }, /* TRAPcc */ -{ CPUFUNC(op_5fc0_0), 24512 }, /* Scc */ -{ CPUFUNC(op_5fc8_0), 24520 }, /* DBcc */ -{ CPUFUNC(op_5fd0_0), 24528 }, /* Scc */ -{ CPUFUNC(op_5fd8_0), 24536 }, /* Scc */ -{ CPUFUNC(op_5fe0_0), 24544 }, /* Scc */ -{ CPUFUNC(op_5fe8_0), 24552 }, /* Scc */ -{ CPUFUNC(op_5ff0_0), 24560 }, /* Scc */ -{ CPUFUNC(op_5ff8_0), 24568 }, /* Scc */ -{ CPUFUNC(op_5ff9_0), 24569 }, /* Scc */ -{ CPUFUNC(op_5ffa_0), 24570 }, /* TRAPcc */ -{ CPUFUNC(op_5ffb_0), 24571 }, /* TRAPcc */ -{ CPUFUNC(op_5ffc_0), 24572 }, /* TRAPcc */ -{ CPUFUNC(op_6000_0), 24576 }, /* Bcc */ -{ CPUFUNC(op_6001_0), 24577 }, /* Bcc */ -{ CPUFUNC(op_60ff_0), 24831 }, /* Bcc */ -{ CPUFUNC(op_6100_0), 24832 }, /* BSR */ -{ CPUFUNC(op_6101_0), 24833 }, /* BSR */ -{ CPUFUNC(op_61ff_0), 25087 }, /* BSR */ -{ CPUFUNC(op_6200_0), 25088 }, /* Bcc */ -{ CPUFUNC(op_6201_0), 25089 }, /* Bcc */ -{ CPUFUNC(op_62ff_0), 25343 }, /* Bcc */ -{ CPUFUNC(op_6300_0), 25344 }, /* Bcc */ -{ CPUFUNC(op_6301_0), 25345 }, /* Bcc */ -{ CPUFUNC(op_63ff_0), 25599 }, /* Bcc */ -{ CPUFUNC(op_6400_0), 25600 }, /* Bcc */ -{ CPUFUNC(op_6401_0), 25601 }, /* Bcc */ -{ CPUFUNC(op_64ff_0), 25855 }, /* Bcc */ -{ CPUFUNC(op_6500_0), 25856 }, /* Bcc */ -{ CPUFUNC(op_6501_0), 25857 }, /* Bcc */ -{ CPUFUNC(op_65ff_0), 26111 }, /* Bcc */ -{ CPUFUNC(op_6600_0), 26112 }, /* Bcc */ -{ CPUFUNC(op_6601_0), 26113 }, /* Bcc */ -{ CPUFUNC(op_66ff_0), 26367 }, /* Bcc */ -{ CPUFUNC(op_6700_0), 26368 }, /* Bcc */ -{ CPUFUNC(op_6701_0), 26369 }, /* Bcc */ -{ CPUFUNC(op_67ff_0), 26623 }, /* Bcc */ -{ CPUFUNC(op_6800_0), 26624 }, /* Bcc */ -{ CPUFUNC(op_6801_0), 26625 }, /* Bcc */ -{ CPUFUNC(op_68ff_0), 26879 }, /* Bcc */ -{ CPUFUNC(op_6900_0), 26880 }, /* Bcc */ -{ CPUFUNC(op_6901_0), 26881 }, /* Bcc */ -{ CPUFUNC(op_69ff_0), 27135 }, /* Bcc */ -{ CPUFUNC(op_6a00_0), 27136 }, /* Bcc */ -{ CPUFUNC(op_6a01_0), 27137 }, /* Bcc */ -{ CPUFUNC(op_6aff_0), 27391 }, /* Bcc */ -{ CPUFUNC(op_6b00_0), 27392 }, /* Bcc */ -{ CPUFUNC(op_6b01_0), 27393 }, /* Bcc */ -{ CPUFUNC(op_6bff_0), 27647 }, /* Bcc */ -{ CPUFUNC(op_6c00_0), 27648 }, /* Bcc */ -{ CPUFUNC(op_6c01_0), 27649 }, /* Bcc */ -{ CPUFUNC(op_6cff_0), 27903 }, /* Bcc */ -{ CPUFUNC(op_6d00_0), 27904 }, /* Bcc */ -{ CPUFUNC(op_6d01_0), 27905 }, /* Bcc */ -{ CPUFUNC(op_6dff_0), 28159 }, /* Bcc */ -{ CPUFUNC(op_6e00_0), 28160 }, /* Bcc */ -{ CPUFUNC(op_6e01_0), 28161 }, /* Bcc */ -{ CPUFUNC(op_6eff_0), 28415 }, /* Bcc */ -{ CPUFUNC(op_6f00_0), 28416 }, /* Bcc */ -{ CPUFUNC(op_6f01_0), 28417 }, /* Bcc */ -{ CPUFUNC(op_6fff_0), 28671 }, /* Bcc */ -{ CPUFUNC(op_7000_0), 28672 }, /* MOVE */ -{ CPUFUNC(op_8000_0), 32768 }, /* OR */ -{ CPUFUNC(op_8010_0), 32784 }, /* OR */ -{ CPUFUNC(op_8018_0), 32792 }, /* OR */ -{ CPUFUNC(op_8020_0), 32800 }, /* OR */ -{ CPUFUNC(op_8028_0), 32808 }, /* OR */ -{ CPUFUNC(op_8030_0), 32816 }, /* OR */ -{ CPUFUNC(op_8038_0), 32824 }, /* OR */ -{ CPUFUNC(op_8039_0), 32825 }, /* OR */ -{ CPUFUNC(op_803a_0), 32826 }, /* OR */ -{ CPUFUNC(op_803b_0), 32827 }, /* OR */ -{ CPUFUNC(op_803c_0), 32828 }, /* OR */ -{ CPUFUNC(op_8040_0), 32832 }, /* OR */ -{ CPUFUNC(op_8050_0), 32848 }, /* OR */ -{ CPUFUNC(op_8058_0), 32856 }, /* OR */ -{ CPUFUNC(op_8060_0), 32864 }, /* OR */ -{ CPUFUNC(op_8068_0), 32872 }, /* OR */ -{ CPUFUNC(op_8070_0), 32880 }, /* OR */ -{ CPUFUNC(op_8078_0), 32888 }, /* OR */ -{ CPUFUNC(op_8079_0), 32889 }, /* OR */ -{ CPUFUNC(op_807a_0), 32890 }, /* OR */ -{ CPUFUNC(op_807b_0), 32891 }, /* OR */ -{ CPUFUNC(op_807c_0), 32892 }, /* OR */ -{ CPUFUNC(op_8080_0), 32896 }, /* OR */ -{ CPUFUNC(op_8090_0), 32912 }, /* OR */ -{ CPUFUNC(op_8098_0), 32920 }, /* OR */ -{ CPUFUNC(op_80a0_0), 32928 }, /* OR */ -{ CPUFUNC(op_80a8_0), 32936 }, /* OR */ -{ CPUFUNC(op_80b0_0), 32944 }, /* OR */ -{ CPUFUNC(op_80b8_0), 32952 }, /* OR */ -{ CPUFUNC(op_80b9_0), 32953 }, /* OR */ -{ CPUFUNC(op_80ba_0), 32954 }, /* OR */ -{ CPUFUNC(op_80bb_0), 32955 }, /* OR */ -{ CPUFUNC(op_80bc_0), 32956 }, /* OR */ -{ CPUFUNC(op_80c0_0), 32960 }, /* DIVU */ -{ CPUFUNC(op_80d0_0), 32976 }, /* DIVU */ -{ CPUFUNC(op_80d8_0), 32984 }, /* DIVU */ -{ CPUFUNC(op_80e0_0), 32992 }, /* DIVU */ -{ CPUFUNC(op_80e8_0), 33000 }, /* DIVU */ -{ CPUFUNC(op_80f0_0), 33008 }, /* DIVU */ -{ CPUFUNC(op_80f8_0), 33016 }, /* DIVU */ -{ CPUFUNC(op_80f9_0), 33017 }, /* DIVU */ -{ CPUFUNC(op_80fa_0), 33018 }, /* DIVU */ -{ CPUFUNC(op_80fb_0), 33019 }, /* DIVU */ -{ CPUFUNC(op_80fc_0), 33020 }, /* DIVU */ -{ CPUFUNC(op_8100_2), 33024 }, /* SBCD */ -{ CPUFUNC(op_8108_2), 33032 }, /* SBCD */ -{ CPUFUNC(op_8110_0), 33040 }, /* OR */ -{ CPUFUNC(op_8118_0), 33048 }, /* OR */ -{ CPUFUNC(op_8120_0), 33056 }, /* OR */ -{ CPUFUNC(op_8128_0), 33064 }, /* OR */ -{ CPUFUNC(op_8130_0), 33072 }, /* OR */ -{ CPUFUNC(op_8138_0), 33080 }, /* OR */ -{ CPUFUNC(op_8139_0), 33081 }, /* OR */ -{ CPUFUNC(op_8140_0), 33088 }, /* PACK */ -{ CPUFUNC(op_8148_0), 33096 }, /* PACK */ -{ CPUFUNC(op_8150_0), 33104 }, /* OR */ -{ CPUFUNC(op_8158_0), 33112 }, /* OR */ -{ CPUFUNC(op_8160_0), 33120 }, /* OR */ -{ CPUFUNC(op_8168_0), 33128 }, /* OR */ -{ CPUFUNC(op_8170_0), 33136 }, /* OR */ -{ CPUFUNC(op_8178_0), 33144 }, /* OR */ -{ CPUFUNC(op_8179_0), 33145 }, /* OR */ -{ CPUFUNC(op_8180_0), 33152 }, /* UNPK */ -{ CPUFUNC(op_8188_0), 33160 }, /* UNPK */ -{ CPUFUNC(op_8190_0), 33168 }, /* OR */ -{ CPUFUNC(op_8198_0), 33176 }, /* OR */ -{ CPUFUNC(op_81a0_0), 33184 }, /* OR */ -{ CPUFUNC(op_81a8_0), 33192 }, /* OR */ -{ CPUFUNC(op_81b0_0), 33200 }, /* OR */ -{ CPUFUNC(op_81b8_0), 33208 }, /* OR */ -{ CPUFUNC(op_81b9_0), 33209 }, /* OR */ -{ CPUFUNC(op_81c0_0), 33216 }, /* DIVS */ -{ CPUFUNC(op_81d0_0), 33232 }, /* DIVS */ -{ CPUFUNC(op_81d8_0), 33240 }, /* DIVS */ -{ CPUFUNC(op_81e0_0), 33248 }, /* DIVS */ -{ CPUFUNC(op_81e8_0), 33256 }, /* DIVS */ -{ CPUFUNC(op_81f0_0), 33264 }, /* DIVS */ -{ CPUFUNC(op_81f8_0), 33272 }, /* DIVS */ -{ CPUFUNC(op_81f9_0), 33273 }, /* DIVS */ -{ CPUFUNC(op_81fa_0), 33274 }, /* DIVS */ -{ CPUFUNC(op_81fb_0), 33275 }, /* DIVS */ -{ CPUFUNC(op_81fc_0), 33276 }, /* DIVS */ -{ CPUFUNC(op_9000_0), 36864 }, /* SUB */ -{ CPUFUNC(op_9010_0), 36880 }, /* SUB */ -{ CPUFUNC(op_9018_0), 36888 }, /* SUB */ -{ CPUFUNC(op_9020_0), 36896 }, /* SUB */ -{ CPUFUNC(op_9028_0), 36904 }, /* SUB */ -{ CPUFUNC(op_9030_0), 36912 }, /* SUB */ -{ CPUFUNC(op_9038_0), 36920 }, /* SUB */ -{ CPUFUNC(op_9039_0), 36921 }, /* SUB */ -{ CPUFUNC(op_903a_0), 36922 }, /* SUB */ -{ CPUFUNC(op_903b_0), 36923 }, /* SUB */ -{ CPUFUNC(op_903c_0), 36924 }, /* SUB */ -{ CPUFUNC(op_9040_0), 36928 }, /* SUB */ -{ CPUFUNC(op_9048_0), 36936 }, /* SUB */ -{ CPUFUNC(op_9050_0), 36944 }, /* SUB */ -{ CPUFUNC(op_9058_0), 36952 }, /* SUB */ -{ CPUFUNC(op_9060_0), 36960 }, /* SUB */ -{ CPUFUNC(op_9068_0), 36968 }, /* SUB */ -{ CPUFUNC(op_9070_0), 36976 }, /* SUB */ -{ CPUFUNC(op_9078_0), 36984 }, /* SUB */ -{ CPUFUNC(op_9079_0), 36985 }, /* SUB */ -{ CPUFUNC(op_907a_0), 36986 }, /* SUB */ -{ CPUFUNC(op_907b_0), 36987 }, /* SUB */ -{ CPUFUNC(op_907c_0), 36988 }, /* SUB */ -{ CPUFUNC(op_9080_0), 36992 }, /* SUB */ -{ CPUFUNC(op_9088_0), 37000 }, /* SUB */ -{ CPUFUNC(op_9090_0), 37008 }, /* SUB */ -{ CPUFUNC(op_9098_0), 37016 }, /* SUB */ -{ CPUFUNC(op_90a0_0), 37024 }, /* SUB */ -{ CPUFUNC(op_90a8_0), 37032 }, /* SUB */ -{ CPUFUNC(op_90b0_0), 37040 }, /* SUB */ -{ CPUFUNC(op_90b8_0), 37048 }, /* SUB */ -{ CPUFUNC(op_90b9_0), 37049 }, /* SUB */ -{ CPUFUNC(op_90ba_0), 37050 }, /* SUB */ -{ CPUFUNC(op_90bb_0), 37051 }, /* SUB */ -{ CPUFUNC(op_90bc_0), 37052 }, /* SUB */ -{ CPUFUNC(op_90c0_0), 37056 }, /* SUBA */ -{ CPUFUNC(op_90c8_0), 37064 }, /* SUBA */ -{ CPUFUNC(op_90d0_0), 37072 }, /* SUBA */ -{ CPUFUNC(op_90d8_0), 37080 }, /* SUBA */ -{ CPUFUNC(op_90e0_0), 37088 }, /* SUBA */ -{ CPUFUNC(op_90e8_0), 37096 }, /* SUBA */ -{ CPUFUNC(op_90f0_0), 37104 }, /* SUBA */ -{ CPUFUNC(op_90f8_0), 37112 }, /* SUBA */ -{ CPUFUNC(op_90f9_0), 37113 }, /* SUBA */ -{ CPUFUNC(op_90fa_0), 37114 }, /* SUBA */ -{ CPUFUNC(op_90fb_0), 37115 }, /* SUBA */ -{ CPUFUNC(op_90fc_0), 37116 }, /* SUBA */ -{ CPUFUNC(op_9100_0), 37120 }, /* SUBX */ -{ CPUFUNC(op_9108_0), 37128 }, /* SUBX */ -{ CPUFUNC(op_9110_0), 37136 }, /* SUB */ -{ CPUFUNC(op_9118_0), 37144 }, /* SUB */ -{ CPUFUNC(op_9120_0), 37152 }, /* SUB */ -{ CPUFUNC(op_9128_0), 37160 }, /* SUB */ -{ CPUFUNC(op_9130_0), 37168 }, /* SUB */ -{ CPUFUNC(op_9138_0), 37176 }, /* SUB */ -{ CPUFUNC(op_9139_0), 37177 }, /* SUB */ -{ CPUFUNC(op_9140_0), 37184 }, /* SUBX */ -{ CPUFUNC(op_9148_0), 37192 }, /* SUBX */ -{ CPUFUNC(op_9150_0), 37200 }, /* SUB */ -{ CPUFUNC(op_9158_0), 37208 }, /* SUB */ -{ CPUFUNC(op_9160_0), 37216 }, /* SUB */ -{ CPUFUNC(op_9168_0), 37224 }, /* SUB */ -{ CPUFUNC(op_9170_0), 37232 }, /* SUB */ -{ CPUFUNC(op_9178_0), 37240 }, /* SUB */ -{ CPUFUNC(op_9179_0), 37241 }, /* SUB */ -{ CPUFUNC(op_9180_0), 37248 }, /* SUBX */ -{ CPUFUNC(op_9188_0), 37256 }, /* SUBX */ -{ CPUFUNC(op_9190_0), 37264 }, /* SUB */ -{ CPUFUNC(op_9198_0), 37272 }, /* SUB */ -{ CPUFUNC(op_91a0_0), 37280 }, /* SUB */ -{ CPUFUNC(op_91a8_0), 37288 }, /* SUB */ -{ CPUFUNC(op_91b0_0), 37296 }, /* SUB */ -{ CPUFUNC(op_91b8_0), 37304 }, /* SUB */ -{ CPUFUNC(op_91b9_0), 37305 }, /* SUB */ -{ CPUFUNC(op_91c0_0), 37312 }, /* SUBA */ -{ CPUFUNC(op_91c8_0), 37320 }, /* SUBA */ -{ CPUFUNC(op_91d0_0), 37328 }, /* SUBA */ -{ CPUFUNC(op_91d8_0), 37336 }, /* SUBA */ -{ CPUFUNC(op_91e0_0), 37344 }, /* SUBA */ -{ CPUFUNC(op_91e8_0), 37352 }, /* SUBA */ -{ CPUFUNC(op_91f0_0), 37360 }, /* SUBA */ -{ CPUFUNC(op_91f8_0), 37368 }, /* SUBA */ -{ CPUFUNC(op_91f9_0), 37369 }, /* SUBA */ -{ CPUFUNC(op_91fa_0), 37370 }, /* SUBA */ -{ CPUFUNC(op_91fb_0), 37371 }, /* SUBA */ -{ CPUFUNC(op_91fc_0), 37372 }, /* SUBA */ -{ CPUFUNC(op_b000_0), 45056 }, /* CMP */ -{ CPUFUNC(op_b010_0), 45072 }, /* CMP */ -{ CPUFUNC(op_b018_0), 45080 }, /* CMP */ -{ CPUFUNC(op_b020_0), 45088 }, /* CMP */ -{ CPUFUNC(op_b028_0), 45096 }, /* CMP */ -{ CPUFUNC(op_b030_0), 45104 }, /* CMP */ -{ CPUFUNC(op_b038_0), 45112 }, /* CMP */ -{ CPUFUNC(op_b039_0), 45113 }, /* CMP */ -{ CPUFUNC(op_b03a_0), 45114 }, /* CMP */ -{ CPUFUNC(op_b03b_0), 45115 }, /* CMP */ -{ CPUFUNC(op_b03c_0), 45116 }, /* CMP */ -{ CPUFUNC(op_b040_0), 45120 }, /* CMP */ -{ CPUFUNC(op_b048_0), 45128 }, /* CMP */ -{ CPUFUNC(op_b050_0), 45136 }, /* CMP */ -{ CPUFUNC(op_b058_0), 45144 }, /* CMP */ -{ CPUFUNC(op_b060_0), 45152 }, /* CMP */ -{ CPUFUNC(op_b068_0), 45160 }, /* CMP */ -{ CPUFUNC(op_b070_0), 45168 }, /* CMP */ -{ CPUFUNC(op_b078_0), 45176 }, /* CMP */ -{ CPUFUNC(op_b079_0), 45177 }, /* CMP */ -{ CPUFUNC(op_b07a_0), 45178 }, /* CMP */ -{ CPUFUNC(op_b07b_0), 45179 }, /* CMP */ -{ CPUFUNC(op_b07c_0), 45180 }, /* CMP */ -{ CPUFUNC(op_b080_0), 45184 }, /* CMP */ -{ CPUFUNC(op_b088_0), 45192 }, /* CMP */ -{ CPUFUNC(op_b090_0), 45200 }, /* CMP */ -{ CPUFUNC(op_b098_0), 45208 }, /* CMP */ -{ CPUFUNC(op_b0a0_0), 45216 }, /* CMP */ -{ CPUFUNC(op_b0a8_0), 45224 }, /* CMP */ -{ CPUFUNC(op_b0b0_0), 45232 }, /* CMP */ -{ CPUFUNC(op_b0b8_0), 45240 }, /* CMP */ -{ CPUFUNC(op_b0b9_0), 45241 }, /* CMP */ -{ CPUFUNC(op_b0ba_0), 45242 }, /* CMP */ -{ CPUFUNC(op_b0bb_0), 45243 }, /* CMP */ -{ CPUFUNC(op_b0bc_0), 45244 }, /* CMP */ -{ CPUFUNC(op_b0c0_0), 45248 }, /* CMPA */ -{ CPUFUNC(op_b0c8_0), 45256 }, /* CMPA */ -{ CPUFUNC(op_b0d0_0), 45264 }, /* CMPA */ -{ CPUFUNC(op_b0d8_0), 45272 }, /* CMPA */ -{ CPUFUNC(op_b0e0_0), 45280 }, /* CMPA */ -{ CPUFUNC(op_b0e8_0), 45288 }, /* CMPA */ -{ CPUFUNC(op_b0f0_0), 45296 }, /* CMPA */ -{ CPUFUNC(op_b0f8_0), 45304 }, /* CMPA */ -{ CPUFUNC(op_b0f9_0), 45305 }, /* CMPA */ -{ CPUFUNC(op_b0fa_0), 45306 }, /* CMPA */ -{ CPUFUNC(op_b0fb_0), 45307 }, /* CMPA */ -{ CPUFUNC(op_b0fc_0), 45308 }, /* CMPA */ -{ CPUFUNC(op_b100_0), 45312 }, /* EOR */ -{ CPUFUNC(op_b108_0), 45320 }, /* CMPM */ -{ CPUFUNC(op_b110_0), 45328 }, /* EOR */ -{ CPUFUNC(op_b118_0), 45336 }, /* EOR */ -{ CPUFUNC(op_b120_0), 45344 }, /* EOR */ -{ CPUFUNC(op_b128_0), 45352 }, /* EOR */ -{ CPUFUNC(op_b130_0), 45360 }, /* EOR */ -{ CPUFUNC(op_b138_0), 45368 }, /* EOR */ -{ CPUFUNC(op_b139_0), 45369 }, /* EOR */ -{ CPUFUNC(op_b140_0), 45376 }, /* EOR */ -{ CPUFUNC(op_b148_0), 45384 }, /* CMPM */ -{ CPUFUNC(op_b150_0), 45392 }, /* EOR */ -{ CPUFUNC(op_b158_0), 45400 }, /* EOR */ -{ CPUFUNC(op_b160_0), 45408 }, /* EOR */ -{ CPUFUNC(op_b168_0), 45416 }, /* EOR */ -{ CPUFUNC(op_b170_0), 45424 }, /* EOR */ -{ CPUFUNC(op_b178_0), 45432 }, /* EOR */ -{ CPUFUNC(op_b179_0), 45433 }, /* EOR */ -{ CPUFUNC(op_b180_0), 45440 }, /* EOR */ -{ CPUFUNC(op_b188_0), 45448 }, /* CMPM */ -{ CPUFUNC(op_b190_0), 45456 }, /* EOR */ -{ CPUFUNC(op_b198_0), 45464 }, /* EOR */ -{ CPUFUNC(op_b1a0_0), 45472 }, /* EOR */ -{ CPUFUNC(op_b1a8_0), 45480 }, /* EOR */ -{ CPUFUNC(op_b1b0_0), 45488 }, /* EOR */ -{ CPUFUNC(op_b1b8_0), 45496 }, /* EOR */ -{ CPUFUNC(op_b1b9_0), 45497 }, /* EOR */ -{ CPUFUNC(op_b1c0_0), 45504 }, /* CMPA */ -{ CPUFUNC(op_b1c8_0), 45512 }, /* CMPA */ -{ CPUFUNC(op_b1d0_0), 45520 }, /* CMPA */ -{ CPUFUNC(op_b1d8_0), 45528 }, /* CMPA */ -{ CPUFUNC(op_b1e0_0), 45536 }, /* CMPA */ -{ CPUFUNC(op_b1e8_0), 45544 }, /* CMPA */ -{ CPUFUNC(op_b1f0_0), 45552 }, /* CMPA */ -{ CPUFUNC(op_b1f8_0), 45560 }, /* CMPA */ -{ CPUFUNC(op_b1f9_0), 45561 }, /* CMPA */ -{ CPUFUNC(op_b1fa_0), 45562 }, /* CMPA */ -{ CPUFUNC(op_b1fb_0), 45563 }, /* CMPA */ -{ CPUFUNC(op_b1fc_0), 45564 }, /* CMPA */ -{ CPUFUNC(op_c000_0), 49152 }, /* AND */ -{ CPUFUNC(op_c010_0), 49168 }, /* AND */ -{ CPUFUNC(op_c018_0), 49176 }, /* AND */ -{ CPUFUNC(op_c020_0), 49184 }, /* AND */ -{ CPUFUNC(op_c028_0), 49192 }, /* AND */ -{ CPUFUNC(op_c030_0), 49200 }, /* AND */ -{ CPUFUNC(op_c038_0), 49208 }, /* AND */ -{ CPUFUNC(op_c039_0), 49209 }, /* AND */ -{ CPUFUNC(op_c03a_0), 49210 }, /* AND */ -{ CPUFUNC(op_c03b_0), 49211 }, /* AND */ -{ CPUFUNC(op_c03c_0), 49212 }, /* AND */ -{ CPUFUNC(op_c040_0), 49216 }, /* AND */ -{ CPUFUNC(op_c050_0), 49232 }, /* AND */ -{ CPUFUNC(op_c058_0), 49240 }, /* AND */ -{ CPUFUNC(op_c060_0), 49248 }, /* AND */ -{ CPUFUNC(op_c068_0), 49256 }, /* AND */ -{ CPUFUNC(op_c070_0), 49264 }, /* AND */ -{ CPUFUNC(op_c078_0), 49272 }, /* AND */ -{ CPUFUNC(op_c079_0), 49273 }, /* AND */ -{ CPUFUNC(op_c07a_0), 49274 }, /* AND */ -{ CPUFUNC(op_c07b_0), 49275 }, /* AND */ -{ CPUFUNC(op_c07c_0), 49276 }, /* AND */ -{ CPUFUNC(op_c080_0), 49280 }, /* AND */ -{ CPUFUNC(op_c090_0), 49296 }, /* AND */ -{ CPUFUNC(op_c098_0), 49304 }, /* AND */ -{ CPUFUNC(op_c0a0_0), 49312 }, /* AND */ -{ CPUFUNC(op_c0a8_0), 49320 }, /* AND */ -{ CPUFUNC(op_c0b0_0), 49328 }, /* AND */ -{ CPUFUNC(op_c0b8_0), 49336 }, /* AND */ -{ CPUFUNC(op_c0b9_0), 49337 }, /* AND */ -{ CPUFUNC(op_c0ba_0), 49338 }, /* AND */ -{ CPUFUNC(op_c0bb_0), 49339 }, /* AND */ -{ CPUFUNC(op_c0bc_0), 49340 }, /* AND */ -{ CPUFUNC(op_c0c0_0), 49344 }, /* MULU */ -{ CPUFUNC(op_c0d0_0), 49360 }, /* MULU */ -{ CPUFUNC(op_c0d8_0), 49368 }, /* MULU */ -{ CPUFUNC(op_c0e0_0), 49376 }, /* MULU */ -{ CPUFUNC(op_c0e8_0), 49384 }, /* MULU */ -{ CPUFUNC(op_c0f0_0), 49392 }, /* MULU */ -{ CPUFUNC(op_c0f8_0), 49400 }, /* MULU */ -{ CPUFUNC(op_c0f9_0), 49401 }, /* MULU */ -{ CPUFUNC(op_c0fa_0), 49402 }, /* MULU */ -{ CPUFUNC(op_c0fb_0), 49403 }, /* MULU */ -{ CPUFUNC(op_c0fc_0), 49404 }, /* MULU */ -{ CPUFUNC(op_c100_2), 49408 }, /* ABCD */ -{ CPUFUNC(op_c108_2), 49416 }, /* ABCD */ -{ CPUFUNC(op_c110_0), 49424 }, /* AND */ -{ CPUFUNC(op_c118_0), 49432 }, /* AND */ -{ CPUFUNC(op_c120_0), 49440 }, /* AND */ -{ CPUFUNC(op_c128_0), 49448 }, /* AND */ -{ CPUFUNC(op_c130_0), 49456 }, /* AND */ -{ CPUFUNC(op_c138_0), 49464 }, /* AND */ -{ CPUFUNC(op_c139_0), 49465 }, /* AND */ -{ CPUFUNC(op_c140_0), 49472 }, /* EXG */ -{ CPUFUNC(op_c148_0), 49480 }, /* EXG */ -{ CPUFUNC(op_c150_0), 49488 }, /* AND */ -{ CPUFUNC(op_c158_0), 49496 }, /* AND */ -{ CPUFUNC(op_c160_0), 49504 }, /* AND */ -{ CPUFUNC(op_c168_0), 49512 }, /* AND */ -{ CPUFUNC(op_c170_0), 49520 }, /* AND */ -{ CPUFUNC(op_c178_0), 49528 }, /* AND */ -{ CPUFUNC(op_c179_0), 49529 }, /* AND */ -{ CPUFUNC(op_c188_0), 49544 }, /* EXG */ -{ CPUFUNC(op_c190_0), 49552 }, /* AND */ -{ CPUFUNC(op_c198_0), 49560 }, /* AND */ -{ CPUFUNC(op_c1a0_0), 49568 }, /* AND */ -{ CPUFUNC(op_c1a8_0), 49576 }, /* AND */ -{ CPUFUNC(op_c1b0_0), 49584 }, /* AND */ -{ CPUFUNC(op_c1b8_0), 49592 }, /* AND */ -{ CPUFUNC(op_c1b9_0), 49593 }, /* AND */ -{ CPUFUNC(op_c1c0_0), 49600 }, /* MULS */ -{ CPUFUNC(op_c1d0_0), 49616 }, /* MULS */ -{ CPUFUNC(op_c1d8_0), 49624 }, /* MULS */ -{ CPUFUNC(op_c1e0_0), 49632 }, /* MULS */ -{ CPUFUNC(op_c1e8_0), 49640 }, /* MULS */ -{ CPUFUNC(op_c1f0_0), 49648 }, /* MULS */ -{ CPUFUNC(op_c1f8_0), 49656 }, /* MULS */ -{ CPUFUNC(op_c1f9_0), 49657 }, /* MULS */ -{ CPUFUNC(op_c1fa_0), 49658 }, /* MULS */ -{ CPUFUNC(op_c1fb_0), 49659 }, /* MULS */ -{ CPUFUNC(op_c1fc_0), 49660 }, /* MULS */ -{ CPUFUNC(op_d000_0), 53248 }, /* ADD */ -{ CPUFUNC(op_d010_0), 53264 }, /* ADD */ -{ CPUFUNC(op_d018_0), 53272 }, /* ADD */ -{ CPUFUNC(op_d020_0), 53280 }, /* ADD */ -{ CPUFUNC(op_d028_0), 53288 }, /* ADD */ -{ CPUFUNC(op_d030_0), 53296 }, /* ADD */ -{ CPUFUNC(op_d038_0), 53304 }, /* ADD */ -{ CPUFUNC(op_d039_0), 53305 }, /* ADD */ -{ CPUFUNC(op_d03a_0), 53306 }, /* ADD */ -{ CPUFUNC(op_d03b_0), 53307 }, /* ADD */ -{ CPUFUNC(op_d03c_0), 53308 }, /* ADD */ -{ CPUFUNC(op_d040_0), 53312 }, /* ADD */ -{ CPUFUNC(op_d048_0), 53320 }, /* ADD */ -{ CPUFUNC(op_d050_0), 53328 }, /* ADD */ -{ CPUFUNC(op_d058_0), 53336 }, /* ADD */ -{ CPUFUNC(op_d060_0), 53344 }, /* ADD */ -{ CPUFUNC(op_d068_0), 53352 }, /* ADD */ -{ CPUFUNC(op_d070_0), 53360 }, /* ADD */ -{ CPUFUNC(op_d078_0), 53368 }, /* ADD */ -{ CPUFUNC(op_d079_0), 53369 }, /* ADD */ -{ CPUFUNC(op_d07a_0), 53370 }, /* ADD */ -{ CPUFUNC(op_d07b_0), 53371 }, /* ADD */ -{ CPUFUNC(op_d07c_0), 53372 }, /* ADD */ -{ CPUFUNC(op_d080_0), 53376 }, /* ADD */ -{ CPUFUNC(op_d088_0), 53384 }, /* ADD */ -{ CPUFUNC(op_d090_0), 53392 }, /* ADD */ -{ CPUFUNC(op_d098_0), 53400 }, /* ADD */ -{ CPUFUNC(op_d0a0_0), 53408 }, /* ADD */ -{ CPUFUNC(op_d0a8_0), 53416 }, /* ADD */ -{ CPUFUNC(op_d0b0_0), 53424 }, /* ADD */ -{ CPUFUNC(op_d0b8_0), 53432 }, /* ADD */ -{ CPUFUNC(op_d0b9_0), 53433 }, /* ADD */ -{ CPUFUNC(op_d0ba_0), 53434 }, /* ADD */ -{ CPUFUNC(op_d0bb_0), 53435 }, /* ADD */ -{ CPUFUNC(op_d0bc_0), 53436 }, /* ADD */ -{ CPUFUNC(op_d0c0_0), 53440 }, /* ADDA */ -{ CPUFUNC(op_d0c8_0), 53448 }, /* ADDA */ -{ CPUFUNC(op_d0d0_0), 53456 }, /* ADDA */ -{ CPUFUNC(op_d0d8_0), 53464 }, /* ADDA */ -{ CPUFUNC(op_d0e0_0), 53472 }, /* ADDA */ -{ CPUFUNC(op_d0e8_0), 53480 }, /* ADDA */ -{ CPUFUNC(op_d0f0_0), 53488 }, /* ADDA */ -{ CPUFUNC(op_d0f8_0), 53496 }, /* ADDA */ -{ CPUFUNC(op_d0f9_0), 53497 }, /* ADDA */ -{ CPUFUNC(op_d0fa_0), 53498 }, /* ADDA */ -{ CPUFUNC(op_d0fb_0), 53499 }, /* ADDA */ -{ CPUFUNC(op_d0fc_0), 53500 }, /* ADDA */ -{ CPUFUNC(op_d100_0), 53504 }, /* ADDX */ -{ CPUFUNC(op_d108_0), 53512 }, /* ADDX */ -{ CPUFUNC(op_d110_0), 53520 }, /* ADD */ -{ CPUFUNC(op_d118_0), 53528 }, /* ADD */ -{ CPUFUNC(op_d120_0), 53536 }, /* ADD */ -{ CPUFUNC(op_d128_0), 53544 }, /* ADD */ -{ CPUFUNC(op_d130_0), 53552 }, /* ADD */ -{ CPUFUNC(op_d138_0), 53560 }, /* ADD */ -{ CPUFUNC(op_d139_0), 53561 }, /* ADD */ -{ CPUFUNC(op_d140_0), 53568 }, /* ADDX */ -{ CPUFUNC(op_d148_0), 53576 }, /* ADDX */ -{ CPUFUNC(op_d150_0), 53584 }, /* ADD */ -{ CPUFUNC(op_d158_0), 53592 }, /* ADD */ -{ CPUFUNC(op_d160_0), 53600 }, /* ADD */ -{ CPUFUNC(op_d168_0), 53608 }, /* ADD */ -{ CPUFUNC(op_d170_0), 53616 }, /* ADD */ -{ CPUFUNC(op_d178_0), 53624 }, /* ADD */ -{ CPUFUNC(op_d179_0), 53625 }, /* ADD */ -{ CPUFUNC(op_d180_0), 53632 }, /* ADDX */ -{ CPUFUNC(op_d188_0), 53640 }, /* ADDX */ -{ CPUFUNC(op_d190_0), 53648 }, /* ADD */ -{ CPUFUNC(op_d198_0), 53656 }, /* ADD */ -{ CPUFUNC(op_d1a0_0), 53664 }, /* ADD */ -{ CPUFUNC(op_d1a8_0), 53672 }, /* ADD */ -{ CPUFUNC(op_d1b0_0), 53680 }, /* ADD */ -{ CPUFUNC(op_d1b8_0), 53688 }, /* ADD */ -{ CPUFUNC(op_d1b9_0), 53689 }, /* ADD */ -{ CPUFUNC(op_d1c0_0), 53696 }, /* ADDA */ -{ CPUFUNC(op_d1c8_0), 53704 }, /* ADDA */ -{ CPUFUNC(op_d1d0_0), 53712 }, /* ADDA */ -{ CPUFUNC(op_d1d8_0), 53720 }, /* ADDA */ -{ CPUFUNC(op_d1e0_0), 53728 }, /* ADDA */ -{ CPUFUNC(op_d1e8_0), 53736 }, /* ADDA */ -{ CPUFUNC(op_d1f0_0), 53744 }, /* ADDA */ -{ CPUFUNC(op_d1f8_0), 53752 }, /* ADDA */ -{ CPUFUNC(op_d1f9_0), 53753 }, /* ADDA */ -{ CPUFUNC(op_d1fa_0), 53754 }, /* ADDA */ -{ CPUFUNC(op_d1fb_0), 53755 }, /* ADDA */ -{ CPUFUNC(op_d1fc_0), 53756 }, /* ADDA */ -{ CPUFUNC(op_e000_0), 57344 }, /* ASR */ -{ CPUFUNC(op_e008_0), 57352 }, /* LSR */ -{ CPUFUNC(op_e010_0), 57360 }, /* ROXR */ -{ CPUFUNC(op_e018_0), 57368 }, /* ROR */ -{ CPUFUNC(op_e020_0), 57376 }, /* ASR */ -{ CPUFUNC(op_e028_0), 57384 }, /* LSR */ -{ CPUFUNC(op_e030_0), 57392 }, /* ROXR */ -{ CPUFUNC(op_e038_0), 57400 }, /* ROR */ -{ CPUFUNC(op_e040_0), 57408 }, /* ASR */ -{ CPUFUNC(op_e048_0), 57416 }, /* LSR */ -{ CPUFUNC(op_e050_0), 57424 }, /* ROXR */ -{ CPUFUNC(op_e058_0), 57432 }, /* ROR */ -{ CPUFUNC(op_e060_0), 57440 }, /* ASR */ -{ CPUFUNC(op_e068_0), 57448 }, /* LSR */ -{ CPUFUNC(op_e070_0), 57456 }, /* ROXR */ -{ CPUFUNC(op_e078_0), 57464 }, /* ROR */ -{ CPUFUNC(op_e080_0), 57472 }, /* ASR */ -{ CPUFUNC(op_e088_0), 57480 }, /* LSR */ -{ CPUFUNC(op_e090_0), 57488 }, /* ROXR */ -{ CPUFUNC(op_e098_0), 57496 }, /* ROR */ -{ CPUFUNC(op_e0a0_0), 57504 }, /* ASR */ -{ CPUFUNC(op_e0a8_0), 57512 }, /* LSR */ -{ CPUFUNC(op_e0b0_0), 57520 }, /* ROXR */ -{ CPUFUNC(op_e0b8_0), 57528 }, /* ROR */ -{ CPUFUNC(op_e0d0_0), 57552 }, /* ASRW */ -{ CPUFUNC(op_e0d8_0), 57560 }, /* ASRW */ -{ CPUFUNC(op_e0e0_0), 57568 }, /* ASRW */ -{ CPUFUNC(op_e0e8_0), 57576 }, /* ASRW */ -{ CPUFUNC(op_e0f0_0), 57584 }, /* ASRW */ -{ CPUFUNC(op_e0f8_0), 57592 }, /* ASRW */ -{ CPUFUNC(op_e0f9_0), 57593 }, /* ASRW */ -{ CPUFUNC(op_e100_0), 57600 }, /* ASL */ -{ CPUFUNC(op_e108_0), 57608 }, /* LSL */ -{ CPUFUNC(op_e110_0), 57616 }, /* ROXL */ -{ CPUFUNC(op_e118_0), 57624 }, /* ROL */ -{ CPUFUNC(op_e120_0), 57632 }, /* ASL */ -{ CPUFUNC(op_e128_0), 57640 }, /* LSL */ -{ CPUFUNC(op_e130_0), 57648 }, /* ROXL */ -{ CPUFUNC(op_e138_0), 57656 }, /* ROL */ -{ CPUFUNC(op_e140_0), 57664 }, /* ASL */ -{ CPUFUNC(op_e148_0), 57672 }, /* LSL */ -{ CPUFUNC(op_e150_0), 57680 }, /* ROXL */ -{ CPUFUNC(op_e158_0), 57688 }, /* ROL */ -{ CPUFUNC(op_e160_0), 57696 }, /* ASL */ -{ CPUFUNC(op_e168_0), 57704 }, /* LSL */ -{ CPUFUNC(op_e170_0), 57712 }, /* ROXL */ -{ CPUFUNC(op_e178_0), 57720 }, /* ROL */ -{ CPUFUNC(op_e180_0), 57728 }, /* ASL */ -{ CPUFUNC(op_e188_0), 57736 }, /* LSL */ -{ CPUFUNC(op_e190_0), 57744 }, /* ROXL */ -{ CPUFUNC(op_e198_0), 57752 }, /* ROL */ -{ CPUFUNC(op_e1a0_0), 57760 }, /* ASL */ -{ CPUFUNC(op_e1a8_0), 57768 }, /* LSL */ -{ CPUFUNC(op_e1b0_0), 57776 }, /* ROXL */ -{ CPUFUNC(op_e1b8_0), 57784 }, /* ROL */ -{ CPUFUNC(op_e1d0_0), 57808 }, /* ASLW */ -{ CPUFUNC(op_e1d8_0), 57816 }, /* ASLW */ -{ CPUFUNC(op_e1e0_0), 57824 }, /* ASLW */ -{ CPUFUNC(op_e1e8_0), 57832 }, /* ASLW */ -{ CPUFUNC(op_e1f0_0), 57840 }, /* ASLW */ -{ CPUFUNC(op_e1f8_0), 57848 }, /* ASLW */ -{ CPUFUNC(op_e1f9_0), 57849 }, /* ASLW */ -{ CPUFUNC(op_e2d0_0), 58064 }, /* LSRW */ -{ CPUFUNC(op_e2d8_0), 58072 }, /* LSRW */ -{ CPUFUNC(op_e2e0_0), 58080 }, /* LSRW */ -{ CPUFUNC(op_e2e8_0), 58088 }, /* LSRW */ -{ CPUFUNC(op_e2f0_0), 58096 }, /* LSRW */ -{ CPUFUNC(op_e2f8_0), 58104 }, /* LSRW */ -{ CPUFUNC(op_e2f9_0), 58105 }, /* LSRW */ -{ CPUFUNC(op_e3d0_0), 58320 }, /* LSLW */ -{ CPUFUNC(op_e3d8_0), 58328 }, /* LSLW */ -{ CPUFUNC(op_e3e0_0), 58336 }, /* LSLW */ -{ CPUFUNC(op_e3e8_0), 58344 }, /* LSLW */ -{ CPUFUNC(op_e3f0_0), 58352 }, /* LSLW */ -{ CPUFUNC(op_e3f8_0), 58360 }, /* LSLW */ -{ CPUFUNC(op_e3f9_0), 58361 }, /* LSLW */ -{ CPUFUNC(op_e4d0_0), 58576 }, /* ROXRW */ -{ CPUFUNC(op_e4d8_0), 58584 }, /* ROXRW */ -{ CPUFUNC(op_e4e0_0), 58592 }, /* ROXRW */ -{ CPUFUNC(op_e4e8_0), 58600 }, /* ROXRW */ -{ CPUFUNC(op_e4f0_0), 58608 }, /* ROXRW */ -{ CPUFUNC(op_e4f8_0), 58616 }, /* ROXRW */ -{ CPUFUNC(op_e4f9_0), 58617 }, /* ROXRW */ -{ CPUFUNC(op_e5d0_0), 58832 }, /* ROXLW */ -{ CPUFUNC(op_e5d8_0), 58840 }, /* ROXLW */ -{ CPUFUNC(op_e5e0_0), 58848 }, /* ROXLW */ -{ CPUFUNC(op_e5e8_0), 58856 }, /* ROXLW */ -{ CPUFUNC(op_e5f0_0), 58864 }, /* ROXLW */ -{ CPUFUNC(op_e5f8_0), 58872 }, /* ROXLW */ -{ CPUFUNC(op_e5f9_0), 58873 }, /* ROXLW */ -{ CPUFUNC(op_e6d0_0), 59088 }, /* RORW */ -{ CPUFUNC(op_e6d8_0), 59096 }, /* RORW */ -{ CPUFUNC(op_e6e0_0), 59104 }, /* RORW */ -{ CPUFUNC(op_e6e8_0), 59112 }, /* RORW */ -{ CPUFUNC(op_e6f0_0), 59120 }, /* RORW */ -{ CPUFUNC(op_e6f8_0), 59128 }, /* RORW */ -{ CPUFUNC(op_e6f9_0), 59129 }, /* RORW */ -{ CPUFUNC(op_e7d0_0), 59344 }, /* ROLW */ -{ CPUFUNC(op_e7d8_0), 59352 }, /* ROLW */ -{ CPUFUNC(op_e7e0_0), 59360 }, /* ROLW */ -{ CPUFUNC(op_e7e8_0), 59368 }, /* ROLW */ -{ CPUFUNC(op_e7f0_0), 59376 }, /* ROLW */ -{ CPUFUNC(op_e7f8_0), 59384 }, /* ROLW */ -{ CPUFUNC(op_e7f9_0), 59385 }, /* ROLW */ -{ CPUFUNC(op_e8c0_0), 59584 }, /* BFTST */ -{ CPUFUNC(op_e8d0_0), 59600 }, /* BFTST */ -{ CPUFUNC(op_e8e8_0), 59624 }, /* BFTST */ -{ CPUFUNC(op_e8f0_0), 59632 }, /* BFTST */ -{ CPUFUNC(op_e8f8_0), 59640 }, /* BFTST */ -{ CPUFUNC(op_e8f9_0), 59641 }, /* BFTST */ -{ CPUFUNC(op_e8fa_0), 59642 }, /* BFTST */ -{ CPUFUNC(op_e8fb_0), 59643 }, /* BFTST */ -{ CPUFUNC(op_e9c0_0), 59840 }, /* BFEXTU */ -{ CPUFUNC(op_e9d0_0), 59856 }, /* BFEXTU */ -{ CPUFUNC(op_e9e8_0), 59880 }, /* BFEXTU */ -{ CPUFUNC(op_e9f0_0), 59888 }, /* BFEXTU */ -{ CPUFUNC(op_e9f8_0), 59896 }, /* BFEXTU */ -{ CPUFUNC(op_e9f9_0), 59897 }, /* BFEXTU */ -{ CPUFUNC(op_e9fa_0), 59898 }, /* BFEXTU */ -{ CPUFUNC(op_e9fb_0), 59899 }, /* BFEXTU */ -{ CPUFUNC(op_eac0_0), 60096 }, /* BFCHG */ -{ CPUFUNC(op_ead0_0), 60112 }, /* BFCHG */ -{ CPUFUNC(op_eae8_0), 60136 }, /* BFCHG */ -{ CPUFUNC(op_eaf0_0), 60144 }, /* BFCHG */ -{ CPUFUNC(op_eaf8_0), 60152 }, /* BFCHG */ -{ CPUFUNC(op_eaf9_0), 60153 }, /* BFCHG */ -{ CPUFUNC(op_ebc0_0), 60352 }, /* BFEXTS */ -{ CPUFUNC(op_ebd0_0), 60368 }, /* BFEXTS */ -{ CPUFUNC(op_ebe8_0), 60392 }, /* BFEXTS */ -{ CPUFUNC(op_ebf0_0), 60400 }, /* BFEXTS */ -{ CPUFUNC(op_ebf8_0), 60408 }, /* BFEXTS */ -{ CPUFUNC(op_ebf9_0), 60409 }, /* BFEXTS */ -{ CPUFUNC(op_ebfa_0), 60410 }, /* BFEXTS */ -{ CPUFUNC(op_ebfb_0), 60411 }, /* BFEXTS */ -{ CPUFUNC(op_ecc0_0), 60608 }, /* BFCLR */ -{ CPUFUNC(op_ecd0_0), 60624 }, /* BFCLR */ -{ CPUFUNC(op_ece8_0), 60648 }, /* BFCLR */ -{ CPUFUNC(op_ecf0_0), 60656 }, /* BFCLR */ -{ CPUFUNC(op_ecf8_0), 60664 }, /* BFCLR */ -{ CPUFUNC(op_ecf9_0), 60665 }, /* BFCLR */ -{ CPUFUNC(op_edc0_0), 60864 }, /* BFFFO */ -{ CPUFUNC(op_edd0_0), 60880 }, /* BFFFO */ -{ CPUFUNC(op_ede8_0), 60904 }, /* BFFFO */ -{ CPUFUNC(op_edf0_0), 60912 }, /* BFFFO */ -{ CPUFUNC(op_edf8_0), 60920 }, /* BFFFO */ -{ CPUFUNC(op_edf9_0), 60921 }, /* BFFFO */ -{ CPUFUNC(op_edfa_0), 60922 }, /* BFFFO */ -{ CPUFUNC(op_edfb_0), 60923 }, /* BFFFO */ -{ CPUFUNC(op_eec0_0), 61120 }, /* BFSET */ -{ CPUFUNC(op_eed0_0), 61136 }, /* BFSET */ -{ CPUFUNC(op_eee8_0), 61160 }, /* BFSET */ -{ CPUFUNC(op_eef0_0), 61168 }, /* BFSET */ -{ CPUFUNC(op_eef8_0), 61176 }, /* BFSET */ -{ CPUFUNC(op_eef9_0), 61177 }, /* BFSET */ -{ CPUFUNC(op_efc0_0), 61376 }, /* BFINS */ -{ CPUFUNC(op_efd0_0), 61392 }, /* BFINS */ -{ CPUFUNC(op_efe8_0), 61416 }, /* BFINS */ -{ CPUFUNC(op_eff0_0), 61424 }, /* BFINS */ -{ CPUFUNC(op_eff8_0), 61432 }, /* BFINS */ -{ CPUFUNC(op_eff9_0), 61433 }, /* BFINS */ -{ CPUFUNC(op_f200_0), 61952 }, /* FPP */ -{ CPUFUNC(op_f208_0), 61960 }, /* FPP */ -{ CPUFUNC(op_f210_0), 61968 }, /* FPP */ -{ CPUFUNC(op_f218_0), 61976 }, /* FPP */ -{ CPUFUNC(op_f220_0), 61984 }, /* FPP */ -{ CPUFUNC(op_f228_0), 61992 }, /* FPP */ -{ CPUFUNC(op_f230_0), 62000 }, /* FPP */ -{ CPUFUNC(op_f238_0), 62008 }, /* FPP */ -{ CPUFUNC(op_f239_0), 62009 }, /* FPP */ -{ CPUFUNC(op_f23a_0), 62010 }, /* FPP */ -{ CPUFUNC(op_f23b_0), 62011 }, /* FPP */ -{ CPUFUNC(op_f23c_0), 62012 }, /* FPP */ -{ CPUFUNC(op_f240_0), 62016 }, /* FScc */ -{ CPUFUNC(op_f248_0), 62024 }, /* FDBcc */ -{ CPUFUNC(op_f250_0), 62032 }, /* FScc */ -{ CPUFUNC(op_f258_0), 62040 }, /* FScc */ -{ CPUFUNC(op_f260_0), 62048 }, /* FScc */ -{ CPUFUNC(op_f268_0), 62056 }, /* FScc */ -{ CPUFUNC(op_f270_0), 62064 }, /* FScc */ -{ CPUFUNC(op_f278_0), 62072 }, /* FScc */ -{ CPUFUNC(op_f279_0), 62073 }, /* FScc */ -{ CPUFUNC(op_f27a_0), 62074 }, /* FTRAPcc */ -{ CPUFUNC(op_f27b_0), 62075 }, /* FTRAPcc */ -{ CPUFUNC(op_f27c_0), 62076 }, /* FTRAPcc */ -{ CPUFUNC(op_f280_0), 62080 }, /* FBcc */ -{ CPUFUNC(op_f2c0_0), 62144 }, /* FBcc */ -{ CPUFUNC(op_f310_0), 62224 }, /* FSAVE */ -{ CPUFUNC(op_f320_0), 62240 }, /* FSAVE */ -{ CPUFUNC(op_f328_0), 62248 }, /* FSAVE */ -{ CPUFUNC(op_f330_0), 62256 }, /* FSAVE */ -{ CPUFUNC(op_f338_0), 62264 }, /* FSAVE */ -{ CPUFUNC(op_f339_0), 62265 }, /* FSAVE */ -{ CPUFUNC(op_f350_0), 62288 }, /* FRESTORE */ -{ CPUFUNC(op_f358_0), 62296 }, /* FRESTORE */ -{ CPUFUNC(op_f368_0), 62312 }, /* FRESTORE */ -{ CPUFUNC(op_f370_0), 62320 }, /* FRESTORE */ -{ CPUFUNC(op_f378_0), 62328 }, /* FRESTORE */ -{ CPUFUNC(op_f379_0), 62329 }, /* FRESTORE */ -{ CPUFUNC(op_f37a_0), 62330 }, /* FRESTORE */ -{ CPUFUNC(op_f37b_0), 62331 }, /* FRESTORE */ -{ 0, 0 }}; -const struct cputbl CPUFUNC(op_smalltbl_4)[] = { -{ CPUFUNC(op_0000_4), 0 }, /* OR */ -{ CPUFUNC(op_0010_4), 16 }, /* OR */ -{ CPUFUNC(op_0018_4), 24 }, /* OR */ -{ CPUFUNC(op_0020_4), 32 }, /* OR */ -{ CPUFUNC(op_0028_4), 40 }, /* OR */ -{ CPUFUNC(op_0030_4), 48 }, /* OR */ -{ CPUFUNC(op_0038_4), 56 }, /* OR */ -{ CPUFUNC(op_0039_4), 57 }, /* OR */ -{ CPUFUNC(op_003c_4), 60 }, /* ORSR */ -{ CPUFUNC(op_0040_4), 64 }, /* OR */ -{ CPUFUNC(op_0050_4), 80 }, /* OR */ -{ CPUFUNC(op_0058_4), 88 }, /* OR */ -{ CPUFUNC(op_0060_4), 96 }, /* OR */ -{ CPUFUNC(op_0068_4), 104 }, /* OR */ -{ CPUFUNC(op_0070_4), 112 }, /* OR */ -{ CPUFUNC(op_0078_4), 120 }, /* OR */ -{ CPUFUNC(op_0079_4), 121 }, /* OR */ -{ CPUFUNC(op_007c_4), 124 }, /* ORSR */ -{ CPUFUNC(op_0080_4), 128 }, /* OR */ -{ CPUFUNC(op_0090_4), 144 }, /* OR */ -{ CPUFUNC(op_0098_4), 152 }, /* OR */ -{ CPUFUNC(op_00a0_4), 160 }, /* OR */ -{ CPUFUNC(op_00a8_4), 168 }, /* OR */ -{ CPUFUNC(op_00b0_4), 176 }, /* OR */ -{ CPUFUNC(op_00b8_4), 184 }, /* OR */ -{ CPUFUNC(op_00b9_4), 185 }, /* OR */ -{ CPUFUNC(op_0100_4), 256 }, /* BTST */ -{ CPUFUNC(op_0108_4), 264 }, /* MVPMR */ -{ CPUFUNC(op_0110_4), 272 }, /* BTST */ -{ CPUFUNC(op_0118_4), 280 }, /* BTST */ -{ CPUFUNC(op_0120_4), 288 }, /* BTST */ -{ CPUFUNC(op_0128_4), 296 }, /* BTST */ -{ CPUFUNC(op_0130_4), 304 }, /* BTST */ -{ CPUFUNC(op_0138_4), 312 }, /* BTST */ -{ CPUFUNC(op_0139_4), 313 }, /* BTST */ -{ CPUFUNC(op_013a_4), 314 }, /* BTST */ -{ CPUFUNC(op_013b_4), 315 }, /* BTST */ -{ CPUFUNC(op_013c_4), 316 }, /* BTST */ -{ CPUFUNC(op_0140_4), 320 }, /* BCHG */ -{ CPUFUNC(op_0148_4), 328 }, /* MVPMR */ -{ CPUFUNC(op_0150_4), 336 }, /* BCHG */ -{ CPUFUNC(op_0158_4), 344 }, /* BCHG */ -{ CPUFUNC(op_0160_4), 352 }, /* BCHG */ -{ CPUFUNC(op_0168_4), 360 }, /* BCHG */ -{ CPUFUNC(op_0170_4), 368 }, /* BCHG */ -{ CPUFUNC(op_0178_4), 376 }, /* BCHG */ -{ CPUFUNC(op_0179_4), 377 }, /* BCHG */ -{ CPUFUNC(op_0180_4), 384 }, /* BCLR */ -{ CPUFUNC(op_0188_4), 392 }, /* MVPRM */ -{ CPUFUNC(op_0190_4), 400 }, /* BCLR */ -{ CPUFUNC(op_0198_4), 408 }, /* BCLR */ -{ CPUFUNC(op_01a0_4), 416 }, /* BCLR */ -{ CPUFUNC(op_01a8_4), 424 }, /* BCLR */ -{ CPUFUNC(op_01b0_4), 432 }, /* BCLR */ -{ CPUFUNC(op_01b8_4), 440 }, /* BCLR */ -{ CPUFUNC(op_01b9_4), 441 }, /* BCLR */ -{ CPUFUNC(op_01c0_4), 448 }, /* BSET */ -{ CPUFUNC(op_01c8_4), 456 }, /* MVPRM */ -{ CPUFUNC(op_01d0_4), 464 }, /* BSET */ -{ CPUFUNC(op_01d8_4), 472 }, /* BSET */ -{ CPUFUNC(op_01e0_4), 480 }, /* BSET */ -{ CPUFUNC(op_01e8_4), 488 }, /* BSET */ -{ CPUFUNC(op_01f0_4), 496 }, /* BSET */ -{ CPUFUNC(op_01f8_4), 504 }, /* BSET */ -{ CPUFUNC(op_01f9_4), 505 }, /* BSET */ -{ CPUFUNC(op_0200_4), 512 }, /* AND */ -{ CPUFUNC(op_0210_4), 528 }, /* AND */ -{ CPUFUNC(op_0218_4), 536 }, /* AND */ -{ CPUFUNC(op_0220_4), 544 }, /* AND */ -{ CPUFUNC(op_0228_4), 552 }, /* AND */ -{ CPUFUNC(op_0230_4), 560 }, /* AND */ -{ CPUFUNC(op_0238_4), 568 }, /* AND */ -{ CPUFUNC(op_0239_4), 569 }, /* AND */ -{ CPUFUNC(op_023c_4), 572 }, /* ANDSR */ -{ CPUFUNC(op_0240_4), 576 }, /* AND */ -{ CPUFUNC(op_0250_4), 592 }, /* AND */ -{ CPUFUNC(op_0258_4), 600 }, /* AND */ -{ CPUFUNC(op_0260_4), 608 }, /* AND */ -{ CPUFUNC(op_0268_4), 616 }, /* AND */ -{ CPUFUNC(op_0270_4), 624 }, /* AND */ -{ CPUFUNC(op_0278_4), 632 }, /* AND */ -{ CPUFUNC(op_0279_4), 633 }, /* AND */ -{ CPUFUNC(op_027c_4), 636 }, /* ANDSR */ -{ CPUFUNC(op_0280_4), 640 }, /* AND */ -{ CPUFUNC(op_0290_4), 656 }, /* AND */ -{ CPUFUNC(op_0298_4), 664 }, /* AND */ -{ CPUFUNC(op_02a0_4), 672 }, /* AND */ -{ CPUFUNC(op_02a8_4), 680 }, /* AND */ -{ CPUFUNC(op_02b0_4), 688 }, /* AND */ -{ CPUFUNC(op_02b8_4), 696 }, /* AND */ -{ CPUFUNC(op_02b9_4), 697 }, /* AND */ -{ CPUFUNC(op_0400_4), 1024 }, /* SUB */ -{ CPUFUNC(op_0410_4), 1040 }, /* SUB */ -{ CPUFUNC(op_0418_4), 1048 }, /* SUB */ -{ CPUFUNC(op_0420_4), 1056 }, /* SUB */ -{ CPUFUNC(op_0428_4), 1064 }, /* SUB */ -{ CPUFUNC(op_0430_4), 1072 }, /* SUB */ -{ CPUFUNC(op_0438_4), 1080 }, /* SUB */ -{ CPUFUNC(op_0439_4), 1081 }, /* SUB */ -{ CPUFUNC(op_0440_4), 1088 }, /* SUB */ -{ CPUFUNC(op_0450_4), 1104 }, /* SUB */ -{ CPUFUNC(op_0458_4), 1112 }, /* SUB */ -{ CPUFUNC(op_0460_4), 1120 }, /* SUB */ -{ CPUFUNC(op_0468_4), 1128 }, /* SUB */ -{ CPUFUNC(op_0470_4), 1136 }, /* SUB */ -{ CPUFUNC(op_0478_4), 1144 }, /* SUB */ -{ CPUFUNC(op_0479_4), 1145 }, /* SUB */ -{ CPUFUNC(op_0480_4), 1152 }, /* SUB */ -{ CPUFUNC(op_0490_4), 1168 }, /* SUB */ -{ CPUFUNC(op_0498_4), 1176 }, /* SUB */ -{ CPUFUNC(op_04a0_4), 1184 }, /* SUB */ -{ CPUFUNC(op_04a8_4), 1192 }, /* SUB */ -{ CPUFUNC(op_04b0_4), 1200 }, /* SUB */ -{ CPUFUNC(op_04b8_4), 1208 }, /* SUB */ -{ CPUFUNC(op_04b9_4), 1209 }, /* SUB */ -{ CPUFUNC(op_0600_4), 1536 }, /* ADD */ -{ CPUFUNC(op_0610_4), 1552 }, /* ADD */ -{ CPUFUNC(op_0618_4), 1560 }, /* ADD */ -{ CPUFUNC(op_0620_4), 1568 }, /* ADD */ -{ CPUFUNC(op_0628_4), 1576 }, /* ADD */ -{ CPUFUNC(op_0630_4), 1584 }, /* ADD */ -{ CPUFUNC(op_0638_4), 1592 }, /* ADD */ -{ CPUFUNC(op_0639_4), 1593 }, /* ADD */ -{ CPUFUNC(op_0640_4), 1600 }, /* ADD */ -{ CPUFUNC(op_0650_4), 1616 }, /* ADD */ -{ CPUFUNC(op_0658_4), 1624 }, /* ADD */ -{ CPUFUNC(op_0660_4), 1632 }, /* ADD */ -{ CPUFUNC(op_0668_4), 1640 }, /* ADD */ -{ CPUFUNC(op_0670_4), 1648 }, /* ADD */ -{ CPUFUNC(op_0678_4), 1656 }, /* ADD */ -{ CPUFUNC(op_0679_4), 1657 }, /* ADD */ -{ CPUFUNC(op_0680_4), 1664 }, /* ADD */ -{ CPUFUNC(op_0690_4), 1680 }, /* ADD */ -{ CPUFUNC(op_0698_4), 1688 }, /* ADD */ -{ CPUFUNC(op_06a0_4), 1696 }, /* ADD */ -{ CPUFUNC(op_06a8_4), 1704 }, /* ADD */ -{ CPUFUNC(op_06b0_4), 1712 }, /* ADD */ -{ CPUFUNC(op_06b8_4), 1720 }, /* ADD */ -{ CPUFUNC(op_06b9_4), 1721 }, /* ADD */ -{ CPUFUNC(op_0800_4), 2048 }, /* BTST */ -{ CPUFUNC(op_0810_4), 2064 }, /* BTST */ -{ CPUFUNC(op_0818_4), 2072 }, /* BTST */ -{ CPUFUNC(op_0820_4), 2080 }, /* BTST */ -{ CPUFUNC(op_0828_4), 2088 }, /* BTST */ -{ CPUFUNC(op_0830_4), 2096 }, /* BTST */ -{ CPUFUNC(op_0838_4), 2104 }, /* BTST */ -{ CPUFUNC(op_0839_4), 2105 }, /* BTST */ -{ CPUFUNC(op_083a_4), 2106 }, /* BTST */ -{ CPUFUNC(op_083b_4), 2107 }, /* BTST */ -{ CPUFUNC(op_083c_4), 2108 }, /* BTST */ -{ CPUFUNC(op_0840_4), 2112 }, /* BCHG */ -{ CPUFUNC(op_0850_4), 2128 }, /* BCHG */ -{ CPUFUNC(op_0858_4), 2136 }, /* BCHG */ -{ CPUFUNC(op_0860_4), 2144 }, /* BCHG */ -{ CPUFUNC(op_0868_4), 2152 }, /* BCHG */ -{ CPUFUNC(op_0870_4), 2160 }, /* BCHG */ -{ CPUFUNC(op_0878_4), 2168 }, /* BCHG */ -{ CPUFUNC(op_0879_4), 2169 }, /* BCHG */ -{ CPUFUNC(op_0880_4), 2176 }, /* BCLR */ -{ CPUFUNC(op_0890_4), 2192 }, /* BCLR */ -{ CPUFUNC(op_0898_4), 2200 }, /* BCLR */ -{ CPUFUNC(op_08a0_4), 2208 }, /* BCLR */ -{ CPUFUNC(op_08a8_4), 2216 }, /* BCLR */ -{ CPUFUNC(op_08b0_4), 2224 }, /* BCLR */ -{ CPUFUNC(op_08b8_4), 2232 }, /* BCLR */ -{ CPUFUNC(op_08b9_4), 2233 }, /* BCLR */ -{ CPUFUNC(op_08c0_4), 2240 }, /* BSET */ -{ CPUFUNC(op_08d0_4), 2256 }, /* BSET */ -{ CPUFUNC(op_08d8_4), 2264 }, /* BSET */ -{ CPUFUNC(op_08e0_4), 2272 }, /* BSET */ -{ CPUFUNC(op_08e8_4), 2280 }, /* BSET */ -{ CPUFUNC(op_08f0_4), 2288 }, /* BSET */ -{ CPUFUNC(op_08f8_4), 2296 }, /* BSET */ -{ CPUFUNC(op_08f9_4), 2297 }, /* BSET */ -{ CPUFUNC(op_0a00_4), 2560 }, /* EOR */ -{ CPUFUNC(op_0a10_4), 2576 }, /* EOR */ -{ CPUFUNC(op_0a18_4), 2584 }, /* EOR */ -{ CPUFUNC(op_0a20_4), 2592 }, /* EOR */ -{ CPUFUNC(op_0a28_4), 2600 }, /* EOR */ -{ CPUFUNC(op_0a30_4), 2608 }, /* EOR */ -{ CPUFUNC(op_0a38_4), 2616 }, /* EOR */ -{ CPUFUNC(op_0a39_4), 2617 }, /* EOR */ -{ CPUFUNC(op_0a3c_4), 2620 }, /* EORSR */ -{ CPUFUNC(op_0a40_4), 2624 }, /* EOR */ -{ CPUFUNC(op_0a50_4), 2640 }, /* EOR */ -{ CPUFUNC(op_0a58_4), 2648 }, /* EOR */ -{ CPUFUNC(op_0a60_4), 2656 }, /* EOR */ -{ CPUFUNC(op_0a68_4), 2664 }, /* EOR */ -{ CPUFUNC(op_0a70_4), 2672 }, /* EOR */ -{ CPUFUNC(op_0a78_4), 2680 }, /* EOR */ -{ CPUFUNC(op_0a79_4), 2681 }, /* EOR */ -{ CPUFUNC(op_0a7c_4), 2684 }, /* EORSR */ -{ CPUFUNC(op_0a80_4), 2688 }, /* EOR */ -{ CPUFUNC(op_0a90_4), 2704 }, /* EOR */ -{ CPUFUNC(op_0a98_4), 2712 }, /* EOR */ -{ CPUFUNC(op_0aa0_4), 2720 }, /* EOR */ -{ CPUFUNC(op_0aa8_4), 2728 }, /* EOR */ -{ CPUFUNC(op_0ab0_4), 2736 }, /* EOR */ -{ CPUFUNC(op_0ab8_4), 2744 }, /* EOR */ -{ CPUFUNC(op_0ab9_4), 2745 }, /* EOR */ -{ CPUFUNC(op_0c00_4), 3072 }, /* CMP */ -{ CPUFUNC(op_0c10_4), 3088 }, /* CMP */ -{ CPUFUNC(op_0c18_4), 3096 }, /* CMP */ -{ CPUFUNC(op_0c20_4), 3104 }, /* CMP */ -{ CPUFUNC(op_0c28_4), 3112 }, /* CMP */ -{ CPUFUNC(op_0c30_4), 3120 }, /* CMP */ -{ CPUFUNC(op_0c38_4), 3128 }, /* CMP */ -{ CPUFUNC(op_0c39_4), 3129 }, /* CMP */ -{ CPUFUNC(op_0c40_4), 3136 }, /* CMP */ -{ CPUFUNC(op_0c50_4), 3152 }, /* CMP */ -{ CPUFUNC(op_0c58_4), 3160 }, /* CMP */ -{ CPUFUNC(op_0c60_4), 3168 }, /* CMP */ -{ CPUFUNC(op_0c68_4), 3176 }, /* CMP */ -{ CPUFUNC(op_0c70_4), 3184 }, /* CMP */ -{ CPUFUNC(op_0c78_4), 3192 }, /* CMP */ -{ CPUFUNC(op_0c79_4), 3193 }, /* CMP */ -{ CPUFUNC(op_0c80_4), 3200 }, /* CMP */ -{ CPUFUNC(op_0c90_4), 3216 }, /* CMP */ -{ CPUFUNC(op_0c98_4), 3224 }, /* CMP */ -{ CPUFUNC(op_0ca0_4), 3232 }, /* CMP */ -{ CPUFUNC(op_0ca8_4), 3240 }, /* CMP */ -{ CPUFUNC(op_0cb0_4), 3248 }, /* CMP */ -{ CPUFUNC(op_0cb8_4), 3256 }, /* CMP */ -{ CPUFUNC(op_0cb9_4), 3257 }, /* CMP */ -{ CPUFUNC(op_1000_4), 4096 }, /* MOVE */ -{ CPUFUNC(op_1010_4), 4112 }, /* MOVE */ -{ CPUFUNC(op_1018_4), 4120 }, /* MOVE */ -{ CPUFUNC(op_1020_4), 4128 }, /* MOVE */ -{ CPUFUNC(op_1028_4), 4136 }, /* MOVE */ -{ CPUFUNC(op_1030_4), 4144 }, /* MOVE */ -{ CPUFUNC(op_1038_4), 4152 }, /* MOVE */ -{ CPUFUNC(op_1039_4), 4153 }, /* MOVE */ -{ CPUFUNC(op_103a_4), 4154 }, /* MOVE */ -{ CPUFUNC(op_103b_4), 4155 }, /* MOVE */ -{ CPUFUNC(op_103c_4), 4156 }, /* MOVE */ -{ CPUFUNC(op_1080_4), 4224 }, /* MOVE */ -{ CPUFUNC(op_1090_4), 4240 }, /* MOVE */ -{ CPUFUNC(op_1098_4), 4248 }, /* MOVE */ -{ CPUFUNC(op_10a0_4), 4256 }, /* MOVE */ -{ CPUFUNC(op_10a8_4), 4264 }, /* MOVE */ -{ CPUFUNC(op_10b0_4), 4272 }, /* MOVE */ -{ CPUFUNC(op_10b8_4), 4280 }, /* MOVE */ -{ CPUFUNC(op_10b9_4), 4281 }, /* MOVE */ -{ CPUFUNC(op_10ba_4), 4282 }, /* MOVE */ -{ CPUFUNC(op_10bb_4), 4283 }, /* MOVE */ -{ CPUFUNC(op_10bc_4), 4284 }, /* MOVE */ -{ CPUFUNC(op_10c0_4), 4288 }, /* MOVE */ -{ CPUFUNC(op_10d0_4), 4304 }, /* MOVE */ -{ CPUFUNC(op_10d8_4), 4312 }, /* MOVE */ -{ CPUFUNC(op_10e0_4), 4320 }, /* MOVE */ -{ CPUFUNC(op_10e8_4), 4328 }, /* MOVE */ -{ CPUFUNC(op_10f0_4), 4336 }, /* MOVE */ -{ CPUFUNC(op_10f8_4), 4344 }, /* MOVE */ -{ CPUFUNC(op_10f9_4), 4345 }, /* MOVE */ -{ CPUFUNC(op_10fa_4), 4346 }, /* MOVE */ -{ CPUFUNC(op_10fb_4), 4347 }, /* MOVE */ -{ CPUFUNC(op_10fc_4), 4348 }, /* MOVE */ -{ CPUFUNC(op_1100_4), 4352 }, /* MOVE */ -{ CPUFUNC(op_1110_4), 4368 }, /* MOVE */ -{ CPUFUNC(op_1118_4), 4376 }, /* MOVE */ -{ CPUFUNC(op_1120_4), 4384 }, /* MOVE */ -{ CPUFUNC(op_1128_4), 4392 }, /* MOVE */ -{ CPUFUNC(op_1130_4), 4400 }, /* MOVE */ -{ CPUFUNC(op_1138_4), 4408 }, /* MOVE */ -{ CPUFUNC(op_1139_4), 4409 }, /* MOVE */ -{ CPUFUNC(op_113a_4), 4410 }, /* MOVE */ -{ CPUFUNC(op_113b_4), 4411 }, /* MOVE */ -{ CPUFUNC(op_113c_4), 4412 }, /* MOVE */ -{ CPUFUNC(op_1140_4), 4416 }, /* MOVE */ -{ CPUFUNC(op_1150_4), 4432 }, /* MOVE */ -{ CPUFUNC(op_1158_4), 4440 }, /* MOVE */ -{ CPUFUNC(op_1160_4), 4448 }, /* MOVE */ -{ CPUFUNC(op_1168_4), 4456 }, /* MOVE */ -{ CPUFUNC(op_1170_4), 4464 }, /* MOVE */ -{ CPUFUNC(op_1178_4), 4472 }, /* MOVE */ -{ CPUFUNC(op_1179_4), 4473 }, /* MOVE */ -{ CPUFUNC(op_117a_4), 4474 }, /* MOVE */ -{ CPUFUNC(op_117b_4), 4475 }, /* MOVE */ -{ CPUFUNC(op_117c_4), 4476 }, /* MOVE */ -{ CPUFUNC(op_1180_4), 4480 }, /* MOVE */ -{ CPUFUNC(op_1190_4), 4496 }, /* MOVE */ -{ CPUFUNC(op_1198_4), 4504 }, /* MOVE */ -{ CPUFUNC(op_11a0_4), 4512 }, /* MOVE */ -{ CPUFUNC(op_11a8_4), 4520 }, /* MOVE */ -{ CPUFUNC(op_11b0_4), 4528 }, /* MOVE */ -{ CPUFUNC(op_11b8_4), 4536 }, /* MOVE */ -{ CPUFUNC(op_11b9_4), 4537 }, /* MOVE */ -{ CPUFUNC(op_11ba_4), 4538 }, /* MOVE */ -{ CPUFUNC(op_11bb_4), 4539 }, /* MOVE */ -{ CPUFUNC(op_11bc_4), 4540 }, /* MOVE */ -{ CPUFUNC(op_11c0_4), 4544 }, /* MOVE */ -{ CPUFUNC(op_11d0_4), 4560 }, /* MOVE */ -{ CPUFUNC(op_11d8_4), 4568 }, /* MOVE */ -{ CPUFUNC(op_11e0_4), 4576 }, /* MOVE */ -{ CPUFUNC(op_11e8_4), 4584 }, /* MOVE */ -{ CPUFUNC(op_11f0_4), 4592 }, /* MOVE */ -{ CPUFUNC(op_11f8_4), 4600 }, /* MOVE */ -{ CPUFUNC(op_11f9_4), 4601 }, /* MOVE */ -{ CPUFUNC(op_11fa_4), 4602 }, /* MOVE */ -{ CPUFUNC(op_11fb_4), 4603 }, /* MOVE */ -{ CPUFUNC(op_11fc_4), 4604 }, /* MOVE */ -{ CPUFUNC(op_13c0_4), 5056 }, /* MOVE */ -{ CPUFUNC(op_13d0_4), 5072 }, /* MOVE */ -{ CPUFUNC(op_13d8_4), 5080 }, /* MOVE */ -{ CPUFUNC(op_13e0_4), 5088 }, /* MOVE */ -{ CPUFUNC(op_13e8_4), 5096 }, /* MOVE */ -{ CPUFUNC(op_13f0_4), 5104 }, /* MOVE */ -{ CPUFUNC(op_13f8_4), 5112 }, /* MOVE */ -{ CPUFUNC(op_13f9_4), 5113 }, /* MOVE */ -{ CPUFUNC(op_13fa_4), 5114 }, /* MOVE */ -{ CPUFUNC(op_13fb_4), 5115 }, /* MOVE */ -{ CPUFUNC(op_13fc_4), 5116 }, /* MOVE */ -{ CPUFUNC(op_2000_4), 8192 }, /* MOVE */ -{ CPUFUNC(op_2008_4), 8200 }, /* MOVE */ -{ CPUFUNC(op_2010_4), 8208 }, /* MOVE */ -{ CPUFUNC(op_2018_4), 8216 }, /* MOVE */ -{ CPUFUNC(op_2020_4), 8224 }, /* MOVE */ -{ CPUFUNC(op_2028_4), 8232 }, /* MOVE */ -{ CPUFUNC(op_2030_4), 8240 }, /* MOVE */ -{ CPUFUNC(op_2038_4), 8248 }, /* MOVE */ -{ CPUFUNC(op_2039_4), 8249 }, /* MOVE */ -{ CPUFUNC(op_203a_4), 8250 }, /* MOVE */ -{ CPUFUNC(op_203b_4), 8251 }, /* MOVE */ -{ CPUFUNC(op_203c_4), 8252 }, /* MOVE */ -{ CPUFUNC(op_2040_4), 8256 }, /* MOVEA */ -{ CPUFUNC(op_2048_4), 8264 }, /* MOVEA */ -{ CPUFUNC(op_2050_4), 8272 }, /* MOVEA */ -{ CPUFUNC(op_2058_4), 8280 }, /* MOVEA */ -{ CPUFUNC(op_2060_4), 8288 }, /* MOVEA */ -{ CPUFUNC(op_2068_4), 8296 }, /* MOVEA */ -{ CPUFUNC(op_2070_4), 8304 }, /* MOVEA */ -{ CPUFUNC(op_2078_4), 8312 }, /* MOVEA */ -{ CPUFUNC(op_2079_4), 8313 }, /* MOVEA */ -{ CPUFUNC(op_207a_4), 8314 }, /* MOVEA */ -{ CPUFUNC(op_207b_4), 8315 }, /* MOVEA */ -{ CPUFUNC(op_207c_4), 8316 }, /* MOVEA */ -{ CPUFUNC(op_2080_4), 8320 }, /* MOVE */ -{ CPUFUNC(op_2088_4), 8328 }, /* MOVE */ -{ CPUFUNC(op_2090_4), 8336 }, /* MOVE */ -{ CPUFUNC(op_2098_4), 8344 }, /* MOVE */ -{ CPUFUNC(op_20a0_4), 8352 }, /* MOVE */ -{ CPUFUNC(op_20a8_4), 8360 }, /* MOVE */ -{ CPUFUNC(op_20b0_4), 8368 }, /* MOVE */ -{ CPUFUNC(op_20b8_4), 8376 }, /* MOVE */ -{ CPUFUNC(op_20b9_4), 8377 }, /* MOVE */ -{ CPUFUNC(op_20ba_4), 8378 }, /* MOVE */ -{ CPUFUNC(op_20bb_4), 8379 }, /* MOVE */ -{ CPUFUNC(op_20bc_4), 8380 }, /* MOVE */ -{ CPUFUNC(op_20c0_4), 8384 }, /* MOVE */ -{ CPUFUNC(op_20c8_4), 8392 }, /* MOVE */ -{ CPUFUNC(op_20d0_4), 8400 }, /* MOVE */ -{ CPUFUNC(op_20d8_4), 8408 }, /* MOVE */ -{ CPUFUNC(op_20e0_4), 8416 }, /* MOVE */ -{ CPUFUNC(op_20e8_4), 8424 }, /* MOVE */ -{ CPUFUNC(op_20f0_4), 8432 }, /* MOVE */ -{ CPUFUNC(op_20f8_4), 8440 }, /* MOVE */ -{ CPUFUNC(op_20f9_4), 8441 }, /* MOVE */ -{ CPUFUNC(op_20fa_4), 8442 }, /* MOVE */ -{ CPUFUNC(op_20fb_4), 8443 }, /* MOVE */ -{ CPUFUNC(op_20fc_4), 8444 }, /* MOVE */ -{ CPUFUNC(op_2100_4), 8448 }, /* MOVE */ -{ CPUFUNC(op_2108_4), 8456 }, /* MOVE */ -{ CPUFUNC(op_2110_4), 8464 }, /* MOVE */ -{ CPUFUNC(op_2118_4), 8472 }, /* MOVE */ -{ CPUFUNC(op_2120_4), 8480 }, /* MOVE */ -{ CPUFUNC(op_2128_4), 8488 }, /* MOVE */ -{ CPUFUNC(op_2130_4), 8496 }, /* MOVE */ -{ CPUFUNC(op_2138_4), 8504 }, /* MOVE */ -{ CPUFUNC(op_2139_4), 8505 }, /* MOVE */ -{ CPUFUNC(op_213a_4), 8506 }, /* MOVE */ -{ CPUFUNC(op_213b_4), 8507 }, /* MOVE */ -{ CPUFUNC(op_213c_4), 8508 }, /* MOVE */ -{ CPUFUNC(op_2140_4), 8512 }, /* MOVE */ -{ CPUFUNC(op_2148_4), 8520 }, /* MOVE */ -{ CPUFUNC(op_2150_4), 8528 }, /* MOVE */ -{ CPUFUNC(op_2158_4), 8536 }, /* MOVE */ -{ CPUFUNC(op_2160_4), 8544 }, /* MOVE */ -{ CPUFUNC(op_2168_4), 8552 }, /* MOVE */ -{ CPUFUNC(op_2170_4), 8560 }, /* MOVE */ -{ CPUFUNC(op_2178_4), 8568 }, /* MOVE */ -{ CPUFUNC(op_2179_4), 8569 }, /* MOVE */ -{ CPUFUNC(op_217a_4), 8570 }, /* MOVE */ -{ CPUFUNC(op_217b_4), 8571 }, /* MOVE */ -{ CPUFUNC(op_217c_4), 8572 }, /* MOVE */ -{ CPUFUNC(op_2180_4), 8576 }, /* MOVE */ -{ CPUFUNC(op_2188_4), 8584 }, /* MOVE */ -{ CPUFUNC(op_2190_4), 8592 }, /* MOVE */ -{ CPUFUNC(op_2198_4), 8600 }, /* MOVE */ -{ CPUFUNC(op_21a0_4), 8608 }, /* MOVE */ -{ CPUFUNC(op_21a8_4), 8616 }, /* MOVE */ -{ CPUFUNC(op_21b0_4), 8624 }, /* MOVE */ -{ CPUFUNC(op_21b8_4), 8632 }, /* MOVE */ -{ CPUFUNC(op_21b9_4), 8633 }, /* MOVE */ -{ CPUFUNC(op_21ba_4), 8634 }, /* MOVE */ -{ CPUFUNC(op_21bb_4), 8635 }, /* MOVE */ -{ CPUFUNC(op_21bc_4), 8636 }, /* MOVE */ -{ CPUFUNC(op_21c0_4), 8640 }, /* MOVE */ -{ CPUFUNC(op_21c8_4), 8648 }, /* MOVE */ -{ CPUFUNC(op_21d0_4), 8656 }, /* MOVE */ -{ CPUFUNC(op_21d8_4), 8664 }, /* MOVE */ -{ CPUFUNC(op_21e0_4), 8672 }, /* MOVE */ -{ CPUFUNC(op_21e8_4), 8680 }, /* MOVE */ -{ CPUFUNC(op_21f0_4), 8688 }, /* MOVE */ -{ CPUFUNC(op_21f8_4), 8696 }, /* MOVE */ -{ CPUFUNC(op_21f9_4), 8697 }, /* MOVE */ -{ CPUFUNC(op_21fa_4), 8698 }, /* MOVE */ -{ CPUFUNC(op_21fb_4), 8699 }, /* MOVE */ -{ CPUFUNC(op_21fc_4), 8700 }, /* MOVE */ -{ CPUFUNC(op_23c0_4), 9152 }, /* MOVE */ -{ CPUFUNC(op_23c8_4), 9160 }, /* MOVE */ -{ CPUFUNC(op_23d0_4), 9168 }, /* MOVE */ -{ CPUFUNC(op_23d8_4), 9176 }, /* MOVE */ -{ CPUFUNC(op_23e0_4), 9184 }, /* MOVE */ -{ CPUFUNC(op_23e8_4), 9192 }, /* MOVE */ -{ CPUFUNC(op_23f0_4), 9200 }, /* MOVE */ -{ CPUFUNC(op_23f8_4), 9208 }, /* MOVE */ -{ CPUFUNC(op_23f9_4), 9209 }, /* MOVE */ -{ CPUFUNC(op_23fa_4), 9210 }, /* MOVE */ -{ CPUFUNC(op_23fb_4), 9211 }, /* MOVE */ -{ CPUFUNC(op_23fc_4), 9212 }, /* MOVE */ -{ CPUFUNC(op_3000_4), 12288 }, /* MOVE */ -{ CPUFUNC(op_3008_4), 12296 }, /* MOVE */ -{ CPUFUNC(op_3010_4), 12304 }, /* MOVE */ -{ CPUFUNC(op_3018_4), 12312 }, /* MOVE */ -{ CPUFUNC(op_3020_4), 12320 }, /* MOVE */ -{ CPUFUNC(op_3028_4), 12328 }, /* MOVE */ -{ CPUFUNC(op_3030_4), 12336 }, /* MOVE */ -{ CPUFUNC(op_3038_4), 12344 }, /* MOVE */ -{ CPUFUNC(op_3039_4), 12345 }, /* MOVE */ -{ CPUFUNC(op_303a_4), 12346 }, /* MOVE */ -{ CPUFUNC(op_303b_4), 12347 }, /* MOVE */ -{ CPUFUNC(op_303c_4), 12348 }, /* MOVE */ -{ CPUFUNC(op_3040_4), 12352 }, /* MOVEA */ -{ CPUFUNC(op_3048_4), 12360 }, /* MOVEA */ -{ CPUFUNC(op_3050_4), 12368 }, /* MOVEA */ -{ CPUFUNC(op_3058_4), 12376 }, /* MOVEA */ -{ CPUFUNC(op_3060_4), 12384 }, /* MOVEA */ -{ CPUFUNC(op_3068_4), 12392 }, /* MOVEA */ -{ CPUFUNC(op_3070_4), 12400 }, /* MOVEA */ -{ CPUFUNC(op_3078_4), 12408 }, /* MOVEA */ -{ CPUFUNC(op_3079_4), 12409 }, /* MOVEA */ -{ CPUFUNC(op_307a_4), 12410 }, /* MOVEA */ -{ CPUFUNC(op_307b_4), 12411 }, /* MOVEA */ -{ CPUFUNC(op_307c_4), 12412 }, /* MOVEA */ -{ CPUFUNC(op_3080_4), 12416 }, /* MOVE */ -{ CPUFUNC(op_3088_4), 12424 }, /* MOVE */ -{ CPUFUNC(op_3090_4), 12432 }, /* MOVE */ -{ CPUFUNC(op_3098_4), 12440 }, /* MOVE */ -{ CPUFUNC(op_30a0_4), 12448 }, /* MOVE */ -{ CPUFUNC(op_30a8_4), 12456 }, /* MOVE */ -{ CPUFUNC(op_30b0_4), 12464 }, /* MOVE */ -{ CPUFUNC(op_30b8_4), 12472 }, /* MOVE */ -{ CPUFUNC(op_30b9_4), 12473 }, /* MOVE */ -{ CPUFUNC(op_30ba_4), 12474 }, /* MOVE */ -{ CPUFUNC(op_30bb_4), 12475 }, /* MOVE */ -{ CPUFUNC(op_30bc_4), 12476 }, /* MOVE */ -{ CPUFUNC(op_30c0_4), 12480 }, /* MOVE */ -{ CPUFUNC(op_30c8_4), 12488 }, /* MOVE */ -{ CPUFUNC(op_30d0_4), 12496 }, /* MOVE */ -{ CPUFUNC(op_30d8_4), 12504 }, /* MOVE */ -{ CPUFUNC(op_30e0_4), 12512 }, /* MOVE */ -{ CPUFUNC(op_30e8_4), 12520 }, /* MOVE */ -{ CPUFUNC(op_30f0_4), 12528 }, /* MOVE */ -{ CPUFUNC(op_30f8_4), 12536 }, /* MOVE */ -{ CPUFUNC(op_30f9_4), 12537 }, /* MOVE */ -{ CPUFUNC(op_30fa_4), 12538 }, /* MOVE */ -{ CPUFUNC(op_30fb_4), 12539 }, /* MOVE */ -{ CPUFUNC(op_30fc_4), 12540 }, /* MOVE */ -{ CPUFUNC(op_3100_4), 12544 }, /* MOVE */ -{ CPUFUNC(op_3108_4), 12552 }, /* MOVE */ -{ CPUFUNC(op_3110_4), 12560 }, /* MOVE */ -{ CPUFUNC(op_3118_4), 12568 }, /* MOVE */ -{ CPUFUNC(op_3120_4), 12576 }, /* MOVE */ -{ CPUFUNC(op_3128_4), 12584 }, /* MOVE */ -{ CPUFUNC(op_3130_4), 12592 }, /* MOVE */ -{ CPUFUNC(op_3138_4), 12600 }, /* MOVE */ -{ CPUFUNC(op_3139_4), 12601 }, /* MOVE */ -{ CPUFUNC(op_313a_4), 12602 }, /* MOVE */ -{ CPUFUNC(op_313b_4), 12603 }, /* MOVE */ -{ CPUFUNC(op_313c_4), 12604 }, /* MOVE */ -{ CPUFUNC(op_3140_4), 12608 }, /* MOVE */ -{ CPUFUNC(op_3148_4), 12616 }, /* MOVE */ -{ CPUFUNC(op_3150_4), 12624 }, /* MOVE */ -{ CPUFUNC(op_3158_4), 12632 }, /* MOVE */ -{ CPUFUNC(op_3160_4), 12640 }, /* MOVE */ -{ CPUFUNC(op_3168_4), 12648 }, /* MOVE */ -{ CPUFUNC(op_3170_4), 12656 }, /* MOVE */ -{ CPUFUNC(op_3178_4), 12664 }, /* MOVE */ -{ CPUFUNC(op_3179_4), 12665 }, /* MOVE */ -{ CPUFUNC(op_317a_4), 12666 }, /* MOVE */ -{ CPUFUNC(op_317b_4), 12667 }, /* MOVE */ -{ CPUFUNC(op_317c_4), 12668 }, /* MOVE */ -{ CPUFUNC(op_3180_4), 12672 }, /* MOVE */ -{ CPUFUNC(op_3188_4), 12680 }, /* MOVE */ -{ CPUFUNC(op_3190_4), 12688 }, /* MOVE */ -{ CPUFUNC(op_3198_4), 12696 }, /* MOVE */ -{ CPUFUNC(op_31a0_4), 12704 }, /* MOVE */ -{ CPUFUNC(op_31a8_4), 12712 }, /* MOVE */ -{ CPUFUNC(op_31b0_4), 12720 }, /* MOVE */ -{ CPUFUNC(op_31b8_4), 12728 }, /* MOVE */ -{ CPUFUNC(op_31b9_4), 12729 }, /* MOVE */ -{ CPUFUNC(op_31ba_4), 12730 }, /* MOVE */ -{ CPUFUNC(op_31bb_4), 12731 }, /* MOVE */ -{ CPUFUNC(op_31bc_4), 12732 }, /* MOVE */ -{ CPUFUNC(op_31c0_4), 12736 }, /* MOVE */ -{ CPUFUNC(op_31c8_4), 12744 }, /* MOVE */ -{ CPUFUNC(op_31d0_4), 12752 }, /* MOVE */ -{ CPUFUNC(op_31d8_4), 12760 }, /* MOVE */ -{ CPUFUNC(op_31e0_4), 12768 }, /* MOVE */ -{ CPUFUNC(op_31e8_4), 12776 }, /* MOVE */ -{ CPUFUNC(op_31f0_4), 12784 }, /* MOVE */ -{ CPUFUNC(op_31f8_4), 12792 }, /* MOVE */ -{ CPUFUNC(op_31f9_4), 12793 }, /* MOVE */ -{ CPUFUNC(op_31fa_4), 12794 }, /* MOVE */ -{ CPUFUNC(op_31fb_4), 12795 }, /* MOVE */ -{ CPUFUNC(op_31fc_4), 12796 }, /* MOVE */ -{ CPUFUNC(op_33c0_4), 13248 }, /* MOVE */ -{ CPUFUNC(op_33c8_4), 13256 }, /* MOVE */ -{ CPUFUNC(op_33d0_4), 13264 }, /* MOVE */ -{ CPUFUNC(op_33d8_4), 13272 }, /* MOVE */ -{ CPUFUNC(op_33e0_4), 13280 }, /* MOVE */ -{ CPUFUNC(op_33e8_4), 13288 }, /* MOVE */ -{ CPUFUNC(op_33f0_4), 13296 }, /* MOVE */ -{ CPUFUNC(op_33f8_4), 13304 }, /* MOVE */ -{ CPUFUNC(op_33f9_4), 13305 }, /* MOVE */ -{ CPUFUNC(op_33fa_4), 13306 }, /* MOVE */ -{ CPUFUNC(op_33fb_4), 13307 }, /* MOVE */ -{ CPUFUNC(op_33fc_4), 13308 }, /* MOVE */ -{ CPUFUNC(op_4000_4), 16384 }, /* NEGX */ -{ CPUFUNC(op_4010_4), 16400 }, /* NEGX */ -{ CPUFUNC(op_4018_4), 16408 }, /* NEGX */ -{ CPUFUNC(op_4020_4), 16416 }, /* NEGX */ -{ CPUFUNC(op_4028_4), 16424 }, /* NEGX */ -{ CPUFUNC(op_4030_4), 16432 }, /* NEGX */ -{ CPUFUNC(op_4038_4), 16440 }, /* NEGX */ -{ CPUFUNC(op_4039_4), 16441 }, /* NEGX */ -{ CPUFUNC(op_4040_4), 16448 }, /* NEGX */ -{ CPUFUNC(op_4050_4), 16464 }, /* NEGX */ -{ CPUFUNC(op_4058_4), 16472 }, /* NEGX */ -{ CPUFUNC(op_4060_4), 16480 }, /* NEGX */ -{ CPUFUNC(op_4068_4), 16488 }, /* NEGX */ -{ CPUFUNC(op_4070_4), 16496 }, /* NEGX */ -{ CPUFUNC(op_4078_4), 16504 }, /* NEGX */ -{ CPUFUNC(op_4079_4), 16505 }, /* NEGX */ -{ CPUFUNC(op_4080_4), 16512 }, /* NEGX */ -{ CPUFUNC(op_4090_4), 16528 }, /* NEGX */ -{ CPUFUNC(op_4098_4), 16536 }, /* NEGX */ -{ CPUFUNC(op_40a0_4), 16544 }, /* NEGX */ -{ CPUFUNC(op_40a8_4), 16552 }, /* NEGX */ -{ CPUFUNC(op_40b0_4), 16560 }, /* NEGX */ -{ CPUFUNC(op_40b8_4), 16568 }, /* NEGX */ -{ CPUFUNC(op_40b9_4), 16569 }, /* NEGX */ -{ CPUFUNC(op_40c0_4), 16576 }, /* MVSR2 */ -{ CPUFUNC(op_40d0_4), 16592 }, /* MVSR2 */ -{ CPUFUNC(op_40d8_4), 16600 }, /* MVSR2 */ -{ CPUFUNC(op_40e0_4), 16608 }, /* MVSR2 */ -{ CPUFUNC(op_40e8_4), 16616 }, /* MVSR2 */ -{ CPUFUNC(op_40f0_4), 16624 }, /* MVSR2 */ -{ CPUFUNC(op_40f8_4), 16632 }, /* MVSR2 */ -{ CPUFUNC(op_40f9_4), 16633 }, /* MVSR2 */ -{ CPUFUNC(op_4180_4), 16768 }, /* CHK */ -{ CPUFUNC(op_4190_4), 16784 }, /* CHK */ -{ CPUFUNC(op_4198_4), 16792 }, /* CHK */ -{ CPUFUNC(op_41a0_4), 16800 }, /* CHK */ -{ CPUFUNC(op_41a8_4), 16808 }, /* CHK */ -{ CPUFUNC(op_41b0_4), 16816 }, /* CHK */ -{ CPUFUNC(op_41b8_4), 16824 }, /* CHK */ -{ CPUFUNC(op_41b9_4), 16825 }, /* CHK */ -{ CPUFUNC(op_41ba_4), 16826 }, /* CHK */ -{ CPUFUNC(op_41bb_4), 16827 }, /* CHK */ -{ CPUFUNC(op_41bc_4), 16828 }, /* CHK */ -{ CPUFUNC(op_41d0_4), 16848 }, /* LEA */ -{ CPUFUNC(op_41e8_4), 16872 }, /* LEA */ -{ CPUFUNC(op_41f0_4), 16880 }, /* LEA */ -{ CPUFUNC(op_41f8_4), 16888 }, /* LEA */ -{ CPUFUNC(op_41f9_4), 16889 }, /* LEA */ -{ CPUFUNC(op_41fa_4), 16890 }, /* LEA */ -{ CPUFUNC(op_41fb_4), 16891 }, /* LEA */ -{ CPUFUNC(op_4200_4), 16896 }, /* CLR */ -{ CPUFUNC(op_4210_4), 16912 }, /* CLR */ -{ CPUFUNC(op_4218_4), 16920 }, /* CLR */ -{ CPUFUNC(op_4220_4), 16928 }, /* CLR */ -{ CPUFUNC(op_4228_4), 16936 }, /* CLR */ -{ CPUFUNC(op_4230_4), 16944 }, /* CLR */ -{ CPUFUNC(op_4238_4), 16952 }, /* CLR */ -{ CPUFUNC(op_4239_4), 16953 }, /* CLR */ -{ CPUFUNC(op_4240_4), 16960 }, /* CLR */ -{ CPUFUNC(op_4250_4), 16976 }, /* CLR */ -{ CPUFUNC(op_4258_4), 16984 }, /* CLR */ -{ CPUFUNC(op_4260_4), 16992 }, /* CLR */ -{ CPUFUNC(op_4268_4), 17000 }, /* CLR */ -{ CPUFUNC(op_4270_4), 17008 }, /* CLR */ -{ CPUFUNC(op_4278_4), 17016 }, /* CLR */ -{ CPUFUNC(op_4279_4), 17017 }, /* CLR */ -{ CPUFUNC(op_4280_4), 17024 }, /* CLR */ -{ CPUFUNC(op_4290_4), 17040 }, /* CLR */ -{ CPUFUNC(op_4298_4), 17048 }, /* CLR */ -{ CPUFUNC(op_42a0_4), 17056 }, /* CLR */ -{ CPUFUNC(op_42a8_4), 17064 }, /* CLR */ -{ CPUFUNC(op_42b0_4), 17072 }, /* CLR */ -{ CPUFUNC(op_42b8_4), 17080 }, /* CLR */ -{ CPUFUNC(op_42b9_4), 17081 }, /* CLR */ -{ CPUFUNC(op_42c0_4), 17088 }, /* MVSR2 */ -{ CPUFUNC(op_42d0_4), 17104 }, /* MVSR2 */ -{ CPUFUNC(op_42d8_4), 17112 }, /* MVSR2 */ -{ CPUFUNC(op_42e0_4), 17120 }, /* MVSR2 */ -{ CPUFUNC(op_42e8_4), 17128 }, /* MVSR2 */ -{ CPUFUNC(op_42f0_4), 17136 }, /* MVSR2 */ -{ CPUFUNC(op_42f8_4), 17144 }, /* MVSR2 */ -{ CPUFUNC(op_42f9_4), 17145 }, /* MVSR2 */ -{ CPUFUNC(op_4400_4), 17408 }, /* NEG */ -{ CPUFUNC(op_4410_4), 17424 }, /* NEG */ -{ CPUFUNC(op_4418_4), 17432 }, /* NEG */ -{ CPUFUNC(op_4420_4), 17440 }, /* NEG */ -{ CPUFUNC(op_4428_4), 17448 }, /* NEG */ -{ CPUFUNC(op_4430_4), 17456 }, /* NEG */ -{ CPUFUNC(op_4438_4), 17464 }, /* NEG */ -{ CPUFUNC(op_4439_4), 17465 }, /* NEG */ -{ CPUFUNC(op_4440_4), 17472 }, /* NEG */ -{ CPUFUNC(op_4450_4), 17488 }, /* NEG */ -{ CPUFUNC(op_4458_4), 17496 }, /* NEG */ -{ CPUFUNC(op_4460_4), 17504 }, /* NEG */ -{ CPUFUNC(op_4468_4), 17512 }, /* NEG */ -{ CPUFUNC(op_4470_4), 17520 }, /* NEG */ -{ CPUFUNC(op_4478_4), 17528 }, /* NEG */ -{ CPUFUNC(op_4479_4), 17529 }, /* NEG */ -{ CPUFUNC(op_4480_4), 17536 }, /* NEG */ -{ CPUFUNC(op_4490_4), 17552 }, /* NEG */ -{ CPUFUNC(op_4498_4), 17560 }, /* NEG */ -{ CPUFUNC(op_44a0_4), 17568 }, /* NEG */ -{ CPUFUNC(op_44a8_4), 17576 }, /* NEG */ -{ CPUFUNC(op_44b0_4), 17584 }, /* NEG */ -{ CPUFUNC(op_44b8_4), 17592 }, /* NEG */ -{ CPUFUNC(op_44b9_4), 17593 }, /* NEG */ -{ CPUFUNC(op_44c0_4), 17600 }, /* MV2SR */ -{ CPUFUNC(op_44d0_4), 17616 }, /* MV2SR */ -{ CPUFUNC(op_44d8_4), 17624 }, /* MV2SR */ -{ CPUFUNC(op_44e0_4), 17632 }, /* MV2SR */ -{ CPUFUNC(op_44e8_4), 17640 }, /* MV2SR */ -{ CPUFUNC(op_44f0_4), 17648 }, /* MV2SR */ -{ CPUFUNC(op_44f8_4), 17656 }, /* MV2SR */ -{ CPUFUNC(op_44f9_4), 17657 }, /* MV2SR */ -{ CPUFUNC(op_44fa_4), 17658 }, /* MV2SR */ -{ CPUFUNC(op_44fb_4), 17659 }, /* MV2SR */ -{ CPUFUNC(op_44fc_4), 17660 }, /* MV2SR */ -{ CPUFUNC(op_4600_4), 17920 }, /* NOT */ -{ CPUFUNC(op_4610_4), 17936 }, /* NOT */ -{ CPUFUNC(op_4618_4), 17944 }, /* NOT */ -{ CPUFUNC(op_4620_4), 17952 }, /* NOT */ -{ CPUFUNC(op_4628_4), 17960 }, /* NOT */ -{ CPUFUNC(op_4630_4), 17968 }, /* NOT */ -{ CPUFUNC(op_4638_4), 17976 }, /* NOT */ -{ CPUFUNC(op_4639_4), 17977 }, /* NOT */ -{ CPUFUNC(op_4640_4), 17984 }, /* NOT */ -{ CPUFUNC(op_4650_4), 18000 }, /* NOT */ -{ CPUFUNC(op_4658_4), 18008 }, /* NOT */ -{ CPUFUNC(op_4660_4), 18016 }, /* NOT */ -{ CPUFUNC(op_4668_4), 18024 }, /* NOT */ -{ CPUFUNC(op_4670_4), 18032 }, /* NOT */ -{ CPUFUNC(op_4678_4), 18040 }, /* NOT */ -{ CPUFUNC(op_4679_4), 18041 }, /* NOT */ -{ CPUFUNC(op_4680_4), 18048 }, /* NOT */ -{ CPUFUNC(op_4690_4), 18064 }, /* NOT */ -{ CPUFUNC(op_4698_4), 18072 }, /* NOT */ -{ CPUFUNC(op_46a0_4), 18080 }, /* NOT */ -{ CPUFUNC(op_46a8_4), 18088 }, /* NOT */ -{ CPUFUNC(op_46b0_4), 18096 }, /* NOT */ -{ CPUFUNC(op_46b8_4), 18104 }, /* NOT */ -{ CPUFUNC(op_46b9_4), 18105 }, /* NOT */ -{ CPUFUNC(op_46c0_4), 18112 }, /* MV2SR */ -{ CPUFUNC(op_46d0_4), 18128 }, /* MV2SR */ -{ CPUFUNC(op_46d8_4), 18136 }, /* MV2SR */ -{ CPUFUNC(op_46e0_4), 18144 }, /* MV2SR */ -{ CPUFUNC(op_46e8_4), 18152 }, /* MV2SR */ -{ CPUFUNC(op_46f0_4), 18160 }, /* MV2SR */ -{ CPUFUNC(op_46f8_4), 18168 }, /* MV2SR */ -{ CPUFUNC(op_46f9_4), 18169 }, /* MV2SR */ -{ CPUFUNC(op_46fa_4), 18170 }, /* MV2SR */ -{ CPUFUNC(op_46fb_4), 18171 }, /* MV2SR */ -{ CPUFUNC(op_46fc_4), 18172 }, /* MV2SR */ -{ CPUFUNC(op_4800_4), 18432 }, /* NBCD */ -{ CPUFUNC(op_4810_4), 18448 }, /* NBCD */ -{ CPUFUNC(op_4818_4), 18456 }, /* NBCD */ -{ CPUFUNC(op_4820_4), 18464 }, /* NBCD */ -{ CPUFUNC(op_4828_4), 18472 }, /* NBCD */ -{ CPUFUNC(op_4830_4), 18480 }, /* NBCD */ -{ CPUFUNC(op_4838_4), 18488 }, /* NBCD */ -{ CPUFUNC(op_4839_4), 18489 }, /* NBCD */ -{ CPUFUNC(op_4840_4), 18496 }, /* SWAP */ -{ CPUFUNC(op_4850_4), 18512 }, /* PEA */ -{ CPUFUNC(op_4868_4), 18536 }, /* PEA */ -{ CPUFUNC(op_4870_4), 18544 }, /* PEA */ -{ CPUFUNC(op_4878_4), 18552 }, /* PEA */ -{ CPUFUNC(op_4879_4), 18553 }, /* PEA */ -{ CPUFUNC(op_487a_4), 18554 }, /* PEA */ -{ CPUFUNC(op_487b_4), 18555 }, /* PEA */ -{ CPUFUNC(op_4880_4), 18560 }, /* EXT */ -{ CPUFUNC(op_4890_4), 18576 }, /* MVMLE */ -{ CPUFUNC(op_48a0_4), 18592 }, /* MVMLE */ -{ CPUFUNC(op_48a8_4), 18600 }, /* MVMLE */ -{ CPUFUNC(op_48b0_4), 18608 }, /* MVMLE */ -{ CPUFUNC(op_48b8_4), 18616 }, /* MVMLE */ -{ CPUFUNC(op_48b9_4), 18617 }, /* MVMLE */ -{ CPUFUNC(op_48c0_4), 18624 }, /* EXT */ -{ CPUFUNC(op_48d0_4), 18640 }, /* MVMLE */ -{ CPUFUNC(op_48e0_4), 18656 }, /* MVMLE */ -{ CPUFUNC(op_48e8_4), 18664 }, /* MVMLE */ -{ CPUFUNC(op_48f0_4), 18672 }, /* MVMLE */ -{ CPUFUNC(op_48f8_4), 18680 }, /* MVMLE */ -{ CPUFUNC(op_48f9_4), 18681 }, /* MVMLE */ -{ CPUFUNC(op_4a00_4), 18944 }, /* TST */ -{ CPUFUNC(op_4a10_4), 18960 }, /* TST */ -{ CPUFUNC(op_4a18_4), 18968 }, /* TST */ -{ CPUFUNC(op_4a20_4), 18976 }, /* TST */ -{ CPUFUNC(op_4a28_4), 18984 }, /* TST */ -{ CPUFUNC(op_4a30_4), 18992 }, /* TST */ -{ CPUFUNC(op_4a38_4), 19000 }, /* TST */ -{ CPUFUNC(op_4a39_4), 19001 }, /* TST */ -{ CPUFUNC(op_4a3c_4), 19004 }, /* TST */ -{ CPUFUNC(op_4a40_4), 19008 }, /* TST */ -{ CPUFUNC(op_4a50_4), 19024 }, /* TST */ -{ CPUFUNC(op_4a58_4), 19032 }, /* TST */ -{ CPUFUNC(op_4a60_4), 19040 }, /* TST */ -{ CPUFUNC(op_4a68_4), 19048 }, /* TST */ -{ CPUFUNC(op_4a70_4), 19056 }, /* TST */ -{ CPUFUNC(op_4a78_4), 19064 }, /* TST */ -{ CPUFUNC(op_4a79_4), 19065 }, /* TST */ -{ CPUFUNC(op_4a7c_4), 19068 }, /* TST */ -{ CPUFUNC(op_4a80_4), 19072 }, /* TST */ -{ CPUFUNC(op_4a90_4), 19088 }, /* TST */ -{ CPUFUNC(op_4a98_4), 19096 }, /* TST */ -{ CPUFUNC(op_4aa0_4), 19104 }, /* TST */ -{ CPUFUNC(op_4aa8_4), 19112 }, /* TST */ -{ CPUFUNC(op_4ab0_4), 19120 }, /* TST */ -{ CPUFUNC(op_4ab8_4), 19128 }, /* TST */ -{ CPUFUNC(op_4ab9_4), 19129 }, /* TST */ -{ CPUFUNC(op_4abc_4), 19132 }, /* TST */ -{ CPUFUNC(op_4ac0_4), 19136 }, /* TAS */ -{ CPUFUNC(op_4ad0_4), 19152 }, /* TAS */ -{ CPUFUNC(op_4ad8_4), 19160 }, /* TAS */ -{ CPUFUNC(op_4ae0_4), 19168 }, /* TAS */ -{ CPUFUNC(op_4ae8_4), 19176 }, /* TAS */ -{ CPUFUNC(op_4af0_4), 19184 }, /* TAS */ -{ CPUFUNC(op_4af8_4), 19192 }, /* TAS */ -{ CPUFUNC(op_4af9_4), 19193 }, /* TAS */ -{ CPUFUNC(op_4c90_4), 19600 }, /* MVMEL */ -{ CPUFUNC(op_4c98_4), 19608 }, /* MVMEL */ -{ CPUFUNC(op_4ca8_4), 19624 }, /* MVMEL */ -{ CPUFUNC(op_4cb0_4), 19632 }, /* MVMEL */ -{ CPUFUNC(op_4cb8_4), 19640 }, /* MVMEL */ -{ CPUFUNC(op_4cb9_4), 19641 }, /* MVMEL */ -{ CPUFUNC(op_4cba_4), 19642 }, /* MVMEL */ -{ CPUFUNC(op_4cbb_4), 19643 }, /* MVMEL */ -{ CPUFUNC(op_4cd0_4), 19664 }, /* MVMEL */ -{ CPUFUNC(op_4cd8_4), 19672 }, /* MVMEL */ -{ CPUFUNC(op_4ce8_4), 19688 }, /* MVMEL */ -{ CPUFUNC(op_4cf0_4), 19696 }, /* MVMEL */ -{ CPUFUNC(op_4cf8_4), 19704 }, /* MVMEL */ -{ CPUFUNC(op_4cf9_4), 19705 }, /* MVMEL */ -{ CPUFUNC(op_4cfa_4), 19706 }, /* MVMEL */ -{ CPUFUNC(op_4cfb_4), 19707 }, /* MVMEL */ -{ CPUFUNC(op_4e40_4), 20032 }, /* TRAP */ -{ CPUFUNC(op_4e50_4), 20048 }, /* LINK */ -{ CPUFUNC(op_4e58_4), 20056 }, /* UNLK */ -{ CPUFUNC(op_4e60_4), 20064 }, /* MVR2USP */ -{ CPUFUNC(op_4e68_4), 20072 }, /* MVUSP2R */ -{ CPUFUNC(op_4e70_4), 20080 }, /* RESET */ -{ CPUFUNC(op_4e71_4), 20081 }, /* NOP */ -{ CPUFUNC(op_4e72_4), 20082 }, /* STOP */ -{ CPUFUNC(op_4e73_4), 20083 }, /* RTE */ -{ CPUFUNC(op_4e74_4), 20084 }, /* RTD */ -{ CPUFUNC(op_4e75_4), 20085 }, /* RTS */ -{ CPUFUNC(op_4e76_4), 20086 }, /* TRAPV */ -{ CPUFUNC(op_4e77_4), 20087 }, /* RTR */ -{ CPUFUNC(op_4e7a_4), 20090 }, /* MOVEC2 */ -{ CPUFUNC(op_4e7b_4), 20091 }, /* MOVE2C */ -{ CPUFUNC(op_4e90_4), 20112 }, /* JSR */ -{ CPUFUNC(op_4ea8_4), 20136 }, /* JSR */ -{ CPUFUNC(op_4eb0_4), 20144 }, /* JSR */ -{ CPUFUNC(op_4eb8_4), 20152 }, /* JSR */ -{ CPUFUNC(op_4eb9_4), 20153 }, /* JSR */ -{ CPUFUNC(op_4eba_4), 20154 }, /* JSR */ -{ CPUFUNC(op_4ebb_4), 20155 }, /* JSR */ -{ CPUFUNC(op_4ed0_4), 20176 }, /* JMP */ -{ CPUFUNC(op_4ee8_4), 20200 }, /* JMP */ -{ CPUFUNC(op_4ef0_4), 20208 }, /* JMP */ -{ CPUFUNC(op_4ef8_4), 20216 }, /* JMP */ -{ CPUFUNC(op_4ef9_4), 20217 }, /* JMP */ -{ CPUFUNC(op_4efa_4), 20218 }, /* JMP */ -{ CPUFUNC(op_4efb_4), 20219 }, /* JMP */ -{ CPUFUNC(op_5000_4), 20480 }, /* ADD */ -{ CPUFUNC(op_5010_4), 20496 }, /* ADD */ -{ CPUFUNC(op_5018_4), 20504 }, /* ADD */ -{ CPUFUNC(op_5020_4), 20512 }, /* ADD */ -{ CPUFUNC(op_5028_4), 20520 }, /* ADD */ -{ CPUFUNC(op_5030_4), 20528 }, /* ADD */ -{ CPUFUNC(op_5038_4), 20536 }, /* ADD */ -{ CPUFUNC(op_5039_4), 20537 }, /* ADD */ -{ CPUFUNC(op_5040_4), 20544 }, /* ADD */ -{ CPUFUNC(op_5048_4), 20552 }, /* ADDA */ -{ CPUFUNC(op_5050_4), 20560 }, /* ADD */ -{ CPUFUNC(op_5058_4), 20568 }, /* ADD */ -{ CPUFUNC(op_5060_4), 20576 }, /* ADD */ -{ CPUFUNC(op_5068_4), 20584 }, /* ADD */ -{ CPUFUNC(op_5070_4), 20592 }, /* ADD */ -{ CPUFUNC(op_5078_4), 20600 }, /* ADD */ -{ CPUFUNC(op_5079_4), 20601 }, /* ADD */ -{ CPUFUNC(op_5080_4), 20608 }, /* ADD */ -{ CPUFUNC(op_5088_4), 20616 }, /* ADDA */ -{ CPUFUNC(op_5090_4), 20624 }, /* ADD */ -{ CPUFUNC(op_5098_4), 20632 }, /* ADD */ -{ CPUFUNC(op_50a0_4), 20640 }, /* ADD */ -{ CPUFUNC(op_50a8_4), 20648 }, /* ADD */ -{ CPUFUNC(op_50b0_4), 20656 }, /* ADD */ -{ CPUFUNC(op_50b8_4), 20664 }, /* ADD */ -{ CPUFUNC(op_50b9_4), 20665 }, /* ADD */ -{ CPUFUNC(op_50c0_4), 20672 }, /* Scc */ -{ CPUFUNC(op_50c8_4), 20680 }, /* DBcc */ -{ CPUFUNC(op_50d0_4), 20688 }, /* Scc */ -{ CPUFUNC(op_50d8_4), 20696 }, /* Scc */ -{ CPUFUNC(op_50e0_4), 20704 }, /* Scc */ -{ CPUFUNC(op_50e8_4), 20712 }, /* Scc */ -{ CPUFUNC(op_50f0_4), 20720 }, /* Scc */ -{ CPUFUNC(op_50f8_4), 20728 }, /* Scc */ -{ CPUFUNC(op_50f9_4), 20729 }, /* Scc */ -{ CPUFUNC(op_5100_4), 20736 }, /* SUB */ -{ CPUFUNC(op_5110_4), 20752 }, /* SUB */ -{ CPUFUNC(op_5118_4), 20760 }, /* SUB */ -{ CPUFUNC(op_5120_4), 20768 }, /* SUB */ -{ CPUFUNC(op_5128_4), 20776 }, /* SUB */ -{ CPUFUNC(op_5130_4), 20784 }, /* SUB */ -{ CPUFUNC(op_5138_4), 20792 }, /* SUB */ -{ CPUFUNC(op_5139_4), 20793 }, /* SUB */ -{ CPUFUNC(op_5140_4), 20800 }, /* SUB */ -{ CPUFUNC(op_5148_4), 20808 }, /* SUBA */ -{ CPUFUNC(op_5150_4), 20816 }, /* SUB */ -{ CPUFUNC(op_5158_4), 20824 }, /* SUB */ -{ CPUFUNC(op_5160_4), 20832 }, /* SUB */ -{ CPUFUNC(op_5168_4), 20840 }, /* SUB */ -{ CPUFUNC(op_5170_4), 20848 }, /* SUB */ -{ CPUFUNC(op_5178_4), 20856 }, /* SUB */ -{ CPUFUNC(op_5179_4), 20857 }, /* SUB */ -{ CPUFUNC(op_5180_4), 20864 }, /* SUB */ -{ CPUFUNC(op_5188_4), 20872 }, /* SUBA */ -{ CPUFUNC(op_5190_4), 20880 }, /* SUB */ -{ CPUFUNC(op_5198_4), 20888 }, /* SUB */ -{ CPUFUNC(op_51a0_4), 20896 }, /* SUB */ -{ CPUFUNC(op_51a8_4), 20904 }, /* SUB */ -{ CPUFUNC(op_51b0_4), 20912 }, /* SUB */ -{ CPUFUNC(op_51b8_4), 20920 }, /* SUB */ -{ CPUFUNC(op_51b9_4), 20921 }, /* SUB */ -{ CPUFUNC(op_51c0_4), 20928 }, /* Scc */ -{ CPUFUNC(op_51c8_4), 20936 }, /* DBcc */ -{ CPUFUNC(op_51d0_4), 20944 }, /* Scc */ -{ CPUFUNC(op_51d8_4), 20952 }, /* Scc */ -{ CPUFUNC(op_51e0_4), 20960 }, /* Scc */ -{ CPUFUNC(op_51e8_4), 20968 }, /* Scc */ -{ CPUFUNC(op_51f0_4), 20976 }, /* Scc */ -{ CPUFUNC(op_51f8_4), 20984 }, /* Scc */ -{ CPUFUNC(op_51f9_4), 20985 }, /* Scc */ -{ CPUFUNC(op_52c0_4), 21184 }, /* Scc */ -{ CPUFUNC(op_52c8_4), 21192 }, /* DBcc */ -{ CPUFUNC(op_52d0_4), 21200 }, /* Scc */ -{ CPUFUNC(op_52d8_4), 21208 }, /* Scc */ -{ CPUFUNC(op_52e0_4), 21216 }, /* Scc */ -{ CPUFUNC(op_52e8_4), 21224 }, /* Scc */ -{ CPUFUNC(op_52f0_4), 21232 }, /* Scc */ -{ CPUFUNC(op_52f8_4), 21240 }, /* Scc */ -{ CPUFUNC(op_52f9_4), 21241 }, /* Scc */ -{ CPUFUNC(op_53c0_4), 21440 }, /* Scc */ -{ CPUFUNC(op_53c8_4), 21448 }, /* DBcc */ -{ CPUFUNC(op_53d0_4), 21456 }, /* Scc */ -{ CPUFUNC(op_53d8_4), 21464 }, /* Scc */ -{ CPUFUNC(op_53e0_4), 21472 }, /* Scc */ -{ CPUFUNC(op_53e8_4), 21480 }, /* Scc */ -{ CPUFUNC(op_53f0_4), 21488 }, /* Scc */ -{ CPUFUNC(op_53f8_4), 21496 }, /* Scc */ -{ CPUFUNC(op_53f9_4), 21497 }, /* Scc */ -{ CPUFUNC(op_54c0_4), 21696 }, /* Scc */ -{ CPUFUNC(op_54c8_4), 21704 }, /* DBcc */ -{ CPUFUNC(op_54d0_4), 21712 }, /* Scc */ -{ CPUFUNC(op_54d8_4), 21720 }, /* Scc */ -{ CPUFUNC(op_54e0_4), 21728 }, /* Scc */ -{ CPUFUNC(op_54e8_4), 21736 }, /* Scc */ -{ CPUFUNC(op_54f0_4), 21744 }, /* Scc */ -{ CPUFUNC(op_54f8_4), 21752 }, /* Scc */ -{ CPUFUNC(op_54f9_4), 21753 }, /* Scc */ -{ CPUFUNC(op_55c0_4), 21952 }, /* Scc */ -{ CPUFUNC(op_55c8_4), 21960 }, /* DBcc */ -{ CPUFUNC(op_55d0_4), 21968 }, /* Scc */ -{ CPUFUNC(op_55d8_4), 21976 }, /* Scc */ -{ CPUFUNC(op_55e0_4), 21984 }, /* Scc */ -{ CPUFUNC(op_55e8_4), 21992 }, /* Scc */ -{ CPUFUNC(op_55f0_4), 22000 }, /* Scc */ -{ CPUFUNC(op_55f8_4), 22008 }, /* Scc */ -{ CPUFUNC(op_55f9_4), 22009 }, /* Scc */ -{ CPUFUNC(op_56c0_4), 22208 }, /* Scc */ -{ CPUFUNC(op_56c8_4), 22216 }, /* DBcc */ -{ CPUFUNC(op_56d0_4), 22224 }, /* Scc */ -{ CPUFUNC(op_56d8_4), 22232 }, /* Scc */ -{ CPUFUNC(op_56e0_4), 22240 }, /* Scc */ -{ CPUFUNC(op_56e8_4), 22248 }, /* Scc */ -{ CPUFUNC(op_56f0_4), 22256 }, /* Scc */ -{ CPUFUNC(op_56f8_4), 22264 }, /* Scc */ -{ CPUFUNC(op_56f9_4), 22265 }, /* Scc */ -{ CPUFUNC(op_57c0_4), 22464 }, /* Scc */ -{ CPUFUNC(op_57c8_4), 22472 }, /* DBcc */ -{ CPUFUNC(op_57d0_4), 22480 }, /* Scc */ -{ CPUFUNC(op_57d8_4), 22488 }, /* Scc */ -{ CPUFUNC(op_57e0_4), 22496 }, /* Scc */ -{ CPUFUNC(op_57e8_4), 22504 }, /* Scc */ -{ CPUFUNC(op_57f0_4), 22512 }, /* Scc */ -{ CPUFUNC(op_57f8_4), 22520 }, /* Scc */ -{ CPUFUNC(op_57f9_4), 22521 }, /* Scc */ -{ CPUFUNC(op_58c0_4), 22720 }, /* Scc */ -{ CPUFUNC(op_58c8_4), 22728 }, /* DBcc */ -{ CPUFUNC(op_58d0_4), 22736 }, /* Scc */ -{ CPUFUNC(op_58d8_4), 22744 }, /* Scc */ -{ CPUFUNC(op_58e0_4), 22752 }, /* Scc */ -{ CPUFUNC(op_58e8_4), 22760 }, /* Scc */ -{ CPUFUNC(op_58f0_4), 22768 }, /* Scc */ -{ CPUFUNC(op_58f8_4), 22776 }, /* Scc */ -{ CPUFUNC(op_58f9_4), 22777 }, /* Scc */ -{ CPUFUNC(op_59c0_4), 22976 }, /* Scc */ -{ CPUFUNC(op_59c8_4), 22984 }, /* DBcc */ -{ CPUFUNC(op_59d0_4), 22992 }, /* Scc */ -{ CPUFUNC(op_59d8_4), 23000 }, /* Scc */ -{ CPUFUNC(op_59e0_4), 23008 }, /* Scc */ -{ CPUFUNC(op_59e8_4), 23016 }, /* Scc */ -{ CPUFUNC(op_59f0_4), 23024 }, /* Scc */ -{ CPUFUNC(op_59f8_4), 23032 }, /* Scc */ -{ CPUFUNC(op_59f9_4), 23033 }, /* Scc */ -{ CPUFUNC(op_5ac0_4), 23232 }, /* Scc */ -{ CPUFUNC(op_5ac8_4), 23240 }, /* DBcc */ -{ CPUFUNC(op_5ad0_4), 23248 }, /* Scc */ -{ CPUFUNC(op_5ad8_4), 23256 }, /* Scc */ -{ CPUFUNC(op_5ae0_4), 23264 }, /* Scc */ -{ CPUFUNC(op_5ae8_4), 23272 }, /* Scc */ -{ CPUFUNC(op_5af0_4), 23280 }, /* Scc */ -{ CPUFUNC(op_5af8_4), 23288 }, /* Scc */ -{ CPUFUNC(op_5af9_4), 23289 }, /* Scc */ -{ CPUFUNC(op_5bc0_4), 23488 }, /* Scc */ -{ CPUFUNC(op_5bc8_4), 23496 }, /* DBcc */ -{ CPUFUNC(op_5bd0_4), 23504 }, /* Scc */ -{ CPUFUNC(op_5bd8_4), 23512 }, /* Scc */ -{ CPUFUNC(op_5be0_4), 23520 }, /* Scc */ -{ CPUFUNC(op_5be8_4), 23528 }, /* Scc */ -{ CPUFUNC(op_5bf0_4), 23536 }, /* Scc */ -{ CPUFUNC(op_5bf8_4), 23544 }, /* Scc */ -{ CPUFUNC(op_5bf9_4), 23545 }, /* Scc */ -{ CPUFUNC(op_5cc0_4), 23744 }, /* Scc */ -{ CPUFUNC(op_5cc8_4), 23752 }, /* DBcc */ -{ CPUFUNC(op_5cd0_4), 23760 }, /* Scc */ -{ CPUFUNC(op_5cd8_4), 23768 }, /* Scc */ -{ CPUFUNC(op_5ce0_4), 23776 }, /* Scc */ -{ CPUFUNC(op_5ce8_4), 23784 }, /* Scc */ -{ CPUFUNC(op_5cf0_4), 23792 }, /* Scc */ -{ CPUFUNC(op_5cf8_4), 23800 }, /* Scc */ -{ CPUFUNC(op_5cf9_4), 23801 }, /* Scc */ -{ CPUFUNC(op_5dc0_4), 24000 }, /* Scc */ -{ CPUFUNC(op_5dc8_4), 24008 }, /* DBcc */ -{ CPUFUNC(op_5dd0_4), 24016 }, /* Scc */ -{ CPUFUNC(op_5dd8_4), 24024 }, /* Scc */ -{ CPUFUNC(op_5de0_4), 24032 }, /* Scc */ -{ CPUFUNC(op_5de8_4), 24040 }, /* Scc */ -{ CPUFUNC(op_5df0_4), 24048 }, /* Scc */ -{ CPUFUNC(op_5df8_4), 24056 }, /* Scc */ -{ CPUFUNC(op_5df9_4), 24057 }, /* Scc */ -{ CPUFUNC(op_5ec0_4), 24256 }, /* Scc */ -{ CPUFUNC(op_5ec8_4), 24264 }, /* DBcc */ -{ CPUFUNC(op_5ed0_4), 24272 }, /* Scc */ -{ CPUFUNC(op_5ed8_4), 24280 }, /* Scc */ -{ CPUFUNC(op_5ee0_4), 24288 }, /* Scc */ -{ CPUFUNC(op_5ee8_4), 24296 }, /* Scc */ -{ CPUFUNC(op_5ef0_4), 24304 }, /* Scc */ -{ CPUFUNC(op_5ef8_4), 24312 }, /* Scc */ -{ CPUFUNC(op_5ef9_4), 24313 }, /* Scc */ -{ CPUFUNC(op_5fc0_4), 24512 }, /* Scc */ -{ CPUFUNC(op_5fc8_4), 24520 }, /* DBcc */ -{ CPUFUNC(op_5fd0_4), 24528 }, /* Scc */ -{ CPUFUNC(op_5fd8_4), 24536 }, /* Scc */ -{ CPUFUNC(op_5fe0_4), 24544 }, /* Scc */ -{ CPUFUNC(op_5fe8_4), 24552 }, /* Scc */ -{ CPUFUNC(op_5ff0_4), 24560 }, /* Scc */ -{ CPUFUNC(op_5ff8_4), 24568 }, /* Scc */ -{ CPUFUNC(op_5ff9_4), 24569 }, /* Scc */ -{ CPUFUNC(op_6000_4), 24576 }, /* Bcc */ -{ CPUFUNC(op_6001_4), 24577 }, /* Bcc */ -{ CPUFUNC(op_60ff_4), 24831 }, /* Bcc */ -{ CPUFUNC(op_6100_4), 24832 }, /* BSR */ -{ CPUFUNC(op_6101_4), 24833 }, /* BSR */ -{ CPUFUNC(op_61ff_4), 25087 }, /* BSR */ -{ CPUFUNC(op_6200_4), 25088 }, /* Bcc */ -{ CPUFUNC(op_6201_4), 25089 }, /* Bcc */ -{ CPUFUNC(op_62ff_4), 25343 }, /* Bcc */ -{ CPUFUNC(op_6300_4), 25344 }, /* Bcc */ -{ CPUFUNC(op_6301_4), 25345 }, /* Bcc */ -{ CPUFUNC(op_63ff_4), 25599 }, /* Bcc */ -{ CPUFUNC(op_6400_4), 25600 }, /* Bcc */ -{ CPUFUNC(op_6401_4), 25601 }, /* Bcc */ -{ CPUFUNC(op_64ff_4), 25855 }, /* Bcc */ -{ CPUFUNC(op_6500_4), 25856 }, /* Bcc */ -{ CPUFUNC(op_6501_4), 25857 }, /* Bcc */ -{ CPUFUNC(op_65ff_4), 26111 }, /* Bcc */ -{ CPUFUNC(op_6600_4), 26112 }, /* Bcc */ -{ CPUFUNC(op_6601_4), 26113 }, /* Bcc */ -{ CPUFUNC(op_66ff_4), 26367 }, /* Bcc */ -{ CPUFUNC(op_6700_4), 26368 }, /* Bcc */ -{ CPUFUNC(op_6701_4), 26369 }, /* Bcc */ -{ CPUFUNC(op_67ff_4), 26623 }, /* Bcc */ -{ CPUFUNC(op_6800_4), 26624 }, /* Bcc */ -{ CPUFUNC(op_6801_4), 26625 }, /* Bcc */ -{ CPUFUNC(op_68ff_4), 26879 }, /* Bcc */ -{ CPUFUNC(op_6900_4), 26880 }, /* Bcc */ -{ CPUFUNC(op_6901_4), 26881 }, /* Bcc */ -{ CPUFUNC(op_69ff_4), 27135 }, /* Bcc */ -{ CPUFUNC(op_6a00_4), 27136 }, /* Bcc */ -{ CPUFUNC(op_6a01_4), 27137 }, /* Bcc */ -{ CPUFUNC(op_6aff_4), 27391 }, /* Bcc */ -{ CPUFUNC(op_6b00_4), 27392 }, /* Bcc */ -{ CPUFUNC(op_6b01_4), 27393 }, /* Bcc */ -{ CPUFUNC(op_6bff_4), 27647 }, /* Bcc */ -{ CPUFUNC(op_6c00_4), 27648 }, /* Bcc */ -{ CPUFUNC(op_6c01_4), 27649 }, /* Bcc */ -{ CPUFUNC(op_6cff_4), 27903 }, /* Bcc */ -{ CPUFUNC(op_6d00_4), 27904 }, /* Bcc */ -{ CPUFUNC(op_6d01_4), 27905 }, /* Bcc */ -{ CPUFUNC(op_6dff_4), 28159 }, /* Bcc */ -{ CPUFUNC(op_6e00_4), 28160 }, /* Bcc */ -{ CPUFUNC(op_6e01_4), 28161 }, /* Bcc */ -{ CPUFUNC(op_6eff_4), 28415 }, /* Bcc */ -{ CPUFUNC(op_6f00_4), 28416 }, /* Bcc */ -{ CPUFUNC(op_6f01_4), 28417 }, /* Bcc */ -{ CPUFUNC(op_6fff_4), 28671 }, /* Bcc */ -{ CPUFUNC(op_7000_4), 28672 }, /* MOVE */ -{ CPUFUNC(op_8000_4), 32768 }, /* OR */ -{ CPUFUNC(op_8010_4), 32784 }, /* OR */ -{ CPUFUNC(op_8018_4), 32792 }, /* OR */ -{ CPUFUNC(op_8020_4), 32800 }, /* OR */ -{ CPUFUNC(op_8028_4), 32808 }, /* OR */ -{ CPUFUNC(op_8030_4), 32816 }, /* OR */ -{ CPUFUNC(op_8038_4), 32824 }, /* OR */ -{ CPUFUNC(op_8039_4), 32825 }, /* OR */ -{ CPUFUNC(op_803a_4), 32826 }, /* OR */ -{ CPUFUNC(op_803b_4), 32827 }, /* OR */ -{ CPUFUNC(op_803c_4), 32828 }, /* OR */ -{ CPUFUNC(op_8040_4), 32832 }, /* OR */ -{ CPUFUNC(op_8050_4), 32848 }, /* OR */ -{ CPUFUNC(op_8058_4), 32856 }, /* OR */ -{ CPUFUNC(op_8060_4), 32864 }, /* OR */ -{ CPUFUNC(op_8068_4), 32872 }, /* OR */ -{ CPUFUNC(op_8070_4), 32880 }, /* OR */ -{ CPUFUNC(op_8078_4), 32888 }, /* OR */ -{ CPUFUNC(op_8079_4), 32889 }, /* OR */ -{ CPUFUNC(op_807a_4), 32890 }, /* OR */ -{ CPUFUNC(op_807b_4), 32891 }, /* OR */ -{ CPUFUNC(op_807c_4), 32892 }, /* OR */ -{ CPUFUNC(op_8080_4), 32896 }, /* OR */ -{ CPUFUNC(op_8090_4), 32912 }, /* OR */ -{ CPUFUNC(op_8098_4), 32920 }, /* OR */ -{ CPUFUNC(op_80a0_4), 32928 }, /* OR */ -{ CPUFUNC(op_80a8_4), 32936 }, /* OR */ -{ CPUFUNC(op_80b0_4), 32944 }, /* OR */ -{ CPUFUNC(op_80b8_4), 32952 }, /* OR */ -{ CPUFUNC(op_80b9_4), 32953 }, /* OR */ -{ CPUFUNC(op_80ba_4), 32954 }, /* OR */ -{ CPUFUNC(op_80bb_4), 32955 }, /* OR */ -{ CPUFUNC(op_80bc_4), 32956 }, /* OR */ -{ CPUFUNC(op_80c0_4), 32960 }, /* DIVU */ -{ CPUFUNC(op_80d0_4), 32976 }, /* DIVU */ -{ CPUFUNC(op_80d8_4), 32984 }, /* DIVU */ -{ CPUFUNC(op_80e0_4), 32992 }, /* DIVU */ -{ CPUFUNC(op_80e8_4), 33000 }, /* DIVU */ -{ CPUFUNC(op_80f0_4), 33008 }, /* DIVU */ -{ CPUFUNC(op_80f8_4), 33016 }, /* DIVU */ -{ CPUFUNC(op_80f9_4), 33017 }, /* DIVU */ -{ CPUFUNC(op_80fa_4), 33018 }, /* DIVU */ -{ CPUFUNC(op_80fb_4), 33019 }, /* DIVU */ -{ CPUFUNC(op_80fc_4), 33020 }, /* DIVU */ -{ CPUFUNC(op_8100_4), 33024 }, /* SBCD */ -{ CPUFUNC(op_8108_4), 33032 }, /* SBCD */ -{ CPUFUNC(op_8110_4), 33040 }, /* OR */ -{ CPUFUNC(op_8118_4), 33048 }, /* OR */ -{ CPUFUNC(op_8120_4), 33056 }, /* OR */ -{ CPUFUNC(op_8128_4), 33064 }, /* OR */ -{ CPUFUNC(op_8130_4), 33072 }, /* OR */ -{ CPUFUNC(op_8138_4), 33080 }, /* OR */ -{ CPUFUNC(op_8139_4), 33081 }, /* OR */ -{ CPUFUNC(op_8150_4), 33104 }, /* OR */ -{ CPUFUNC(op_8158_4), 33112 }, /* OR */ -{ CPUFUNC(op_8160_4), 33120 }, /* OR */ -{ CPUFUNC(op_8168_4), 33128 }, /* OR */ -{ CPUFUNC(op_8170_4), 33136 }, /* OR */ -{ CPUFUNC(op_8178_4), 33144 }, /* OR */ -{ CPUFUNC(op_8179_4), 33145 }, /* OR */ -{ CPUFUNC(op_8190_4), 33168 }, /* OR */ -{ CPUFUNC(op_8198_4), 33176 }, /* OR */ -{ CPUFUNC(op_81a0_4), 33184 }, /* OR */ -{ CPUFUNC(op_81a8_4), 33192 }, /* OR */ -{ CPUFUNC(op_81b0_4), 33200 }, /* OR */ -{ CPUFUNC(op_81b8_4), 33208 }, /* OR */ -{ CPUFUNC(op_81b9_4), 33209 }, /* OR */ -{ CPUFUNC(op_81c0_4), 33216 }, /* DIVS */ -{ CPUFUNC(op_81d0_4), 33232 }, /* DIVS */ -{ CPUFUNC(op_81d8_4), 33240 }, /* DIVS */ -{ CPUFUNC(op_81e0_4), 33248 }, /* DIVS */ -{ CPUFUNC(op_81e8_4), 33256 }, /* DIVS */ -{ CPUFUNC(op_81f0_4), 33264 }, /* DIVS */ -{ CPUFUNC(op_81f8_4), 33272 }, /* DIVS */ -{ CPUFUNC(op_81f9_4), 33273 }, /* DIVS */ -{ CPUFUNC(op_81fa_4), 33274 }, /* DIVS */ -{ CPUFUNC(op_81fb_4), 33275 }, /* DIVS */ -{ CPUFUNC(op_81fc_4), 33276 }, /* DIVS */ -{ CPUFUNC(op_9000_4), 36864 }, /* SUB */ -{ CPUFUNC(op_9010_4), 36880 }, /* SUB */ -{ CPUFUNC(op_9018_4), 36888 }, /* SUB */ -{ CPUFUNC(op_9020_4), 36896 }, /* SUB */ -{ CPUFUNC(op_9028_4), 36904 }, /* SUB */ -{ CPUFUNC(op_9030_4), 36912 }, /* SUB */ -{ CPUFUNC(op_9038_4), 36920 }, /* SUB */ -{ CPUFUNC(op_9039_4), 36921 }, /* SUB */ -{ CPUFUNC(op_903a_4), 36922 }, /* SUB */ -{ CPUFUNC(op_903b_4), 36923 }, /* SUB */ -{ CPUFUNC(op_903c_4), 36924 }, /* SUB */ -{ CPUFUNC(op_9040_4), 36928 }, /* SUB */ -{ CPUFUNC(op_9048_4), 36936 }, /* SUB */ -{ CPUFUNC(op_9050_4), 36944 }, /* SUB */ -{ CPUFUNC(op_9058_4), 36952 }, /* SUB */ -{ CPUFUNC(op_9060_4), 36960 }, /* SUB */ -{ CPUFUNC(op_9068_4), 36968 }, /* SUB */ -{ CPUFUNC(op_9070_4), 36976 }, /* SUB */ -{ CPUFUNC(op_9078_4), 36984 }, /* SUB */ -{ CPUFUNC(op_9079_4), 36985 }, /* SUB */ -{ CPUFUNC(op_907a_4), 36986 }, /* SUB */ -{ CPUFUNC(op_907b_4), 36987 }, /* SUB */ -{ CPUFUNC(op_907c_4), 36988 }, /* SUB */ -{ CPUFUNC(op_9080_4), 36992 }, /* SUB */ -{ CPUFUNC(op_9088_4), 37000 }, /* SUB */ -{ CPUFUNC(op_9090_4), 37008 }, /* SUB */ -{ CPUFUNC(op_9098_4), 37016 }, /* SUB */ -{ CPUFUNC(op_90a0_4), 37024 }, /* SUB */ -{ CPUFUNC(op_90a8_4), 37032 }, /* SUB */ -{ CPUFUNC(op_90b0_4), 37040 }, /* SUB */ -{ CPUFUNC(op_90b8_4), 37048 }, /* SUB */ -{ CPUFUNC(op_90b9_4), 37049 }, /* SUB */ -{ CPUFUNC(op_90ba_4), 37050 }, /* SUB */ -{ CPUFUNC(op_90bb_4), 37051 }, /* SUB */ -{ CPUFUNC(op_90bc_4), 37052 }, /* SUB */ -{ CPUFUNC(op_90c0_4), 37056 }, /* SUBA */ -{ CPUFUNC(op_90c8_4), 37064 }, /* SUBA */ -{ CPUFUNC(op_90d0_4), 37072 }, /* SUBA */ -{ CPUFUNC(op_90d8_4), 37080 }, /* SUBA */ -{ CPUFUNC(op_90e0_4), 37088 }, /* SUBA */ -{ CPUFUNC(op_90e8_4), 37096 }, /* SUBA */ -{ CPUFUNC(op_90f0_4), 37104 }, /* SUBA */ -{ CPUFUNC(op_90f8_4), 37112 }, /* SUBA */ -{ CPUFUNC(op_90f9_4), 37113 }, /* SUBA */ -{ CPUFUNC(op_90fa_4), 37114 }, /* SUBA */ -{ CPUFUNC(op_90fb_4), 37115 }, /* SUBA */ -{ CPUFUNC(op_90fc_4), 37116 }, /* SUBA */ -{ CPUFUNC(op_9100_4), 37120 }, /* SUBX */ -{ CPUFUNC(op_9108_4), 37128 }, /* SUBX */ -{ CPUFUNC(op_9110_4), 37136 }, /* SUB */ -{ CPUFUNC(op_9118_4), 37144 }, /* SUB */ -{ CPUFUNC(op_9120_4), 37152 }, /* SUB */ -{ CPUFUNC(op_9128_4), 37160 }, /* SUB */ -{ CPUFUNC(op_9130_4), 37168 }, /* SUB */ -{ CPUFUNC(op_9138_4), 37176 }, /* SUB */ -{ CPUFUNC(op_9139_4), 37177 }, /* SUB */ -{ CPUFUNC(op_9140_4), 37184 }, /* SUBX */ -{ CPUFUNC(op_9148_4), 37192 }, /* SUBX */ -{ CPUFUNC(op_9150_4), 37200 }, /* SUB */ -{ CPUFUNC(op_9158_4), 37208 }, /* SUB */ -{ CPUFUNC(op_9160_4), 37216 }, /* SUB */ -{ CPUFUNC(op_9168_4), 37224 }, /* SUB */ -{ CPUFUNC(op_9170_4), 37232 }, /* SUB */ -{ CPUFUNC(op_9178_4), 37240 }, /* SUB */ -{ CPUFUNC(op_9179_4), 37241 }, /* SUB */ -{ CPUFUNC(op_9180_4), 37248 }, /* SUBX */ -{ CPUFUNC(op_9188_4), 37256 }, /* SUBX */ -{ CPUFUNC(op_9190_4), 37264 }, /* SUB */ -{ CPUFUNC(op_9198_4), 37272 }, /* SUB */ -{ CPUFUNC(op_91a0_4), 37280 }, /* SUB */ -{ CPUFUNC(op_91a8_4), 37288 }, /* SUB */ -{ CPUFUNC(op_91b0_4), 37296 }, /* SUB */ -{ CPUFUNC(op_91b8_4), 37304 }, /* SUB */ -{ CPUFUNC(op_91b9_4), 37305 }, /* SUB */ -{ CPUFUNC(op_91c0_4), 37312 }, /* SUBA */ -{ CPUFUNC(op_91c8_4), 37320 }, /* SUBA */ -{ CPUFUNC(op_91d0_4), 37328 }, /* SUBA */ -{ CPUFUNC(op_91d8_4), 37336 }, /* SUBA */ -{ CPUFUNC(op_91e0_4), 37344 }, /* SUBA */ -{ CPUFUNC(op_91e8_4), 37352 }, /* SUBA */ -{ CPUFUNC(op_91f0_4), 37360 }, /* SUBA */ -{ CPUFUNC(op_91f8_4), 37368 }, /* SUBA */ -{ CPUFUNC(op_91f9_4), 37369 }, /* SUBA */ -{ CPUFUNC(op_91fa_4), 37370 }, /* SUBA */ -{ CPUFUNC(op_91fb_4), 37371 }, /* SUBA */ -{ CPUFUNC(op_91fc_4), 37372 }, /* SUBA */ -{ CPUFUNC(op_b000_4), 45056 }, /* CMP */ -{ CPUFUNC(op_b010_4), 45072 }, /* CMP */ -{ CPUFUNC(op_b018_4), 45080 }, /* CMP */ -{ CPUFUNC(op_b020_4), 45088 }, /* CMP */ -{ CPUFUNC(op_b028_4), 45096 }, /* CMP */ -{ CPUFUNC(op_b030_4), 45104 }, /* CMP */ -{ CPUFUNC(op_b038_4), 45112 }, /* CMP */ -{ CPUFUNC(op_b039_4), 45113 }, /* CMP */ -{ CPUFUNC(op_b03a_4), 45114 }, /* CMP */ -{ CPUFUNC(op_b03b_4), 45115 }, /* CMP */ -{ CPUFUNC(op_b03c_4), 45116 }, /* CMP */ -{ CPUFUNC(op_b040_4), 45120 }, /* CMP */ -{ CPUFUNC(op_b048_4), 45128 }, /* CMP */ -{ CPUFUNC(op_b050_4), 45136 }, /* CMP */ -{ CPUFUNC(op_b058_4), 45144 }, /* CMP */ -{ CPUFUNC(op_b060_4), 45152 }, /* CMP */ -{ CPUFUNC(op_b068_4), 45160 }, /* CMP */ -{ CPUFUNC(op_b070_4), 45168 }, /* CMP */ -{ CPUFUNC(op_b078_4), 45176 }, /* CMP */ -{ CPUFUNC(op_b079_4), 45177 }, /* CMP */ -{ CPUFUNC(op_b07a_4), 45178 }, /* CMP */ -{ CPUFUNC(op_b07b_4), 45179 }, /* CMP */ -{ CPUFUNC(op_b07c_4), 45180 }, /* CMP */ -{ CPUFUNC(op_b080_4), 45184 }, /* CMP */ -{ CPUFUNC(op_b088_4), 45192 }, /* CMP */ -{ CPUFUNC(op_b090_4), 45200 }, /* CMP */ -{ CPUFUNC(op_b098_4), 45208 }, /* CMP */ -{ CPUFUNC(op_b0a0_4), 45216 }, /* CMP */ -{ CPUFUNC(op_b0a8_4), 45224 }, /* CMP */ -{ CPUFUNC(op_b0b0_4), 45232 }, /* CMP */ -{ CPUFUNC(op_b0b8_4), 45240 }, /* CMP */ -{ CPUFUNC(op_b0b9_4), 45241 }, /* CMP */ -{ CPUFUNC(op_b0ba_4), 45242 }, /* CMP */ -{ CPUFUNC(op_b0bb_4), 45243 }, /* CMP */ -{ CPUFUNC(op_b0bc_4), 45244 }, /* CMP */ -{ CPUFUNC(op_b0c0_4), 45248 }, /* CMPA */ -{ CPUFUNC(op_b0c8_4), 45256 }, /* CMPA */ -{ CPUFUNC(op_b0d0_4), 45264 }, /* CMPA */ -{ CPUFUNC(op_b0d8_4), 45272 }, /* CMPA */ -{ CPUFUNC(op_b0e0_4), 45280 }, /* CMPA */ -{ CPUFUNC(op_b0e8_4), 45288 }, /* CMPA */ -{ CPUFUNC(op_b0f0_4), 45296 }, /* CMPA */ -{ CPUFUNC(op_b0f8_4), 45304 }, /* CMPA */ -{ CPUFUNC(op_b0f9_4), 45305 }, /* CMPA */ -{ CPUFUNC(op_b0fa_4), 45306 }, /* CMPA */ -{ CPUFUNC(op_b0fb_4), 45307 }, /* CMPA */ -{ CPUFUNC(op_b0fc_4), 45308 }, /* CMPA */ -{ CPUFUNC(op_b100_4), 45312 }, /* EOR */ -{ CPUFUNC(op_b108_4), 45320 }, /* CMPM */ -{ CPUFUNC(op_b110_4), 45328 }, /* EOR */ -{ CPUFUNC(op_b118_4), 45336 }, /* EOR */ -{ CPUFUNC(op_b120_4), 45344 }, /* EOR */ -{ CPUFUNC(op_b128_4), 45352 }, /* EOR */ -{ CPUFUNC(op_b130_4), 45360 }, /* EOR */ -{ CPUFUNC(op_b138_4), 45368 }, /* EOR */ -{ CPUFUNC(op_b139_4), 45369 }, /* EOR */ -{ CPUFUNC(op_b140_4), 45376 }, /* EOR */ -{ CPUFUNC(op_b148_4), 45384 }, /* CMPM */ -{ CPUFUNC(op_b150_4), 45392 }, /* EOR */ -{ CPUFUNC(op_b158_4), 45400 }, /* EOR */ -{ CPUFUNC(op_b160_4), 45408 }, /* EOR */ -{ CPUFUNC(op_b168_4), 45416 }, /* EOR */ -{ CPUFUNC(op_b170_4), 45424 }, /* EOR */ -{ CPUFUNC(op_b178_4), 45432 }, /* EOR */ -{ CPUFUNC(op_b179_4), 45433 }, /* EOR */ -{ CPUFUNC(op_b180_4), 45440 }, /* EOR */ -{ CPUFUNC(op_b188_4), 45448 }, /* CMPM */ -{ CPUFUNC(op_b190_4), 45456 }, /* EOR */ -{ CPUFUNC(op_b198_4), 45464 }, /* EOR */ -{ CPUFUNC(op_b1a0_4), 45472 }, /* EOR */ -{ CPUFUNC(op_b1a8_4), 45480 }, /* EOR */ -{ CPUFUNC(op_b1b0_4), 45488 }, /* EOR */ -{ CPUFUNC(op_b1b8_4), 45496 }, /* EOR */ -{ CPUFUNC(op_b1b9_4), 45497 }, /* EOR */ -{ CPUFUNC(op_b1c0_4), 45504 }, /* CMPA */ -{ CPUFUNC(op_b1c8_4), 45512 }, /* CMPA */ -{ CPUFUNC(op_b1d0_4), 45520 }, /* CMPA */ -{ CPUFUNC(op_b1d8_4), 45528 }, /* CMPA */ -{ CPUFUNC(op_b1e0_4), 45536 }, /* CMPA */ -{ CPUFUNC(op_b1e8_4), 45544 }, /* CMPA */ -{ CPUFUNC(op_b1f0_4), 45552 }, /* CMPA */ -{ CPUFUNC(op_b1f8_4), 45560 }, /* CMPA */ -{ CPUFUNC(op_b1f9_4), 45561 }, /* CMPA */ -{ CPUFUNC(op_b1fa_4), 45562 }, /* CMPA */ -{ CPUFUNC(op_b1fb_4), 45563 }, /* CMPA */ -{ CPUFUNC(op_b1fc_4), 45564 }, /* CMPA */ -{ CPUFUNC(op_c000_4), 49152 }, /* AND */ -{ CPUFUNC(op_c010_4), 49168 }, /* AND */ -{ CPUFUNC(op_c018_4), 49176 }, /* AND */ -{ CPUFUNC(op_c020_4), 49184 }, /* AND */ -{ CPUFUNC(op_c028_4), 49192 }, /* AND */ -{ CPUFUNC(op_c030_4), 49200 }, /* AND */ -{ CPUFUNC(op_c038_4), 49208 }, /* AND */ -{ CPUFUNC(op_c039_4), 49209 }, /* AND */ -{ CPUFUNC(op_c03a_4), 49210 }, /* AND */ -{ CPUFUNC(op_c03b_4), 49211 }, /* AND */ -{ CPUFUNC(op_c03c_4), 49212 }, /* AND */ -{ CPUFUNC(op_c040_4), 49216 }, /* AND */ -{ CPUFUNC(op_c050_4), 49232 }, /* AND */ -{ CPUFUNC(op_c058_4), 49240 }, /* AND */ -{ CPUFUNC(op_c060_4), 49248 }, /* AND */ -{ CPUFUNC(op_c068_4), 49256 }, /* AND */ -{ CPUFUNC(op_c070_4), 49264 }, /* AND */ -{ CPUFUNC(op_c078_4), 49272 }, /* AND */ -{ CPUFUNC(op_c079_4), 49273 }, /* AND */ -{ CPUFUNC(op_c07a_4), 49274 }, /* AND */ -{ CPUFUNC(op_c07b_4), 49275 }, /* AND */ -{ CPUFUNC(op_c07c_4), 49276 }, /* AND */ -{ CPUFUNC(op_c080_4), 49280 }, /* AND */ -{ CPUFUNC(op_c090_4), 49296 }, /* AND */ -{ CPUFUNC(op_c098_4), 49304 }, /* AND */ -{ CPUFUNC(op_c0a0_4), 49312 }, /* AND */ -{ CPUFUNC(op_c0a8_4), 49320 }, /* AND */ -{ CPUFUNC(op_c0b0_4), 49328 }, /* AND */ -{ CPUFUNC(op_c0b8_4), 49336 }, /* AND */ -{ CPUFUNC(op_c0b9_4), 49337 }, /* AND */ -{ CPUFUNC(op_c0ba_4), 49338 }, /* AND */ -{ CPUFUNC(op_c0bb_4), 49339 }, /* AND */ -{ CPUFUNC(op_c0bc_4), 49340 }, /* AND */ -{ CPUFUNC(op_c0c0_4), 49344 }, /* MULU */ -{ CPUFUNC(op_c0d0_4), 49360 }, /* MULU */ -{ CPUFUNC(op_c0d8_4), 49368 }, /* MULU */ -{ CPUFUNC(op_c0e0_4), 49376 }, /* MULU */ -{ CPUFUNC(op_c0e8_4), 49384 }, /* MULU */ -{ CPUFUNC(op_c0f0_4), 49392 }, /* MULU */ -{ CPUFUNC(op_c0f8_4), 49400 }, /* MULU */ -{ CPUFUNC(op_c0f9_4), 49401 }, /* MULU */ -{ CPUFUNC(op_c0fa_4), 49402 }, /* MULU */ -{ CPUFUNC(op_c0fb_4), 49403 }, /* MULU */ -{ CPUFUNC(op_c0fc_4), 49404 }, /* MULU */ -{ CPUFUNC(op_c100_4), 49408 }, /* ABCD */ -{ CPUFUNC(op_c108_4), 49416 }, /* ABCD */ -{ CPUFUNC(op_c110_4), 49424 }, /* AND */ -{ CPUFUNC(op_c118_4), 49432 }, /* AND */ -{ CPUFUNC(op_c120_4), 49440 }, /* AND */ -{ CPUFUNC(op_c128_4), 49448 }, /* AND */ -{ CPUFUNC(op_c130_4), 49456 }, /* AND */ -{ CPUFUNC(op_c138_4), 49464 }, /* AND */ -{ CPUFUNC(op_c139_4), 49465 }, /* AND */ -{ CPUFUNC(op_c140_4), 49472 }, /* EXG */ -{ CPUFUNC(op_c148_4), 49480 }, /* EXG */ -{ CPUFUNC(op_c150_4), 49488 }, /* AND */ -{ CPUFUNC(op_c158_4), 49496 }, /* AND */ -{ CPUFUNC(op_c160_4), 49504 }, /* AND */ -{ CPUFUNC(op_c168_4), 49512 }, /* AND */ -{ CPUFUNC(op_c170_4), 49520 }, /* AND */ -{ CPUFUNC(op_c178_4), 49528 }, /* AND */ -{ CPUFUNC(op_c179_4), 49529 }, /* AND */ -{ CPUFUNC(op_c188_4), 49544 }, /* EXG */ -{ CPUFUNC(op_c190_4), 49552 }, /* AND */ -{ CPUFUNC(op_c198_4), 49560 }, /* AND */ -{ CPUFUNC(op_c1a0_4), 49568 }, /* AND */ -{ CPUFUNC(op_c1a8_4), 49576 }, /* AND */ -{ CPUFUNC(op_c1b0_4), 49584 }, /* AND */ -{ CPUFUNC(op_c1b8_4), 49592 }, /* AND */ -{ CPUFUNC(op_c1b9_4), 49593 }, /* AND */ -{ CPUFUNC(op_c1c0_4), 49600 }, /* MULS */ -{ CPUFUNC(op_c1d0_4), 49616 }, /* MULS */ -{ CPUFUNC(op_c1d8_4), 49624 }, /* MULS */ -{ CPUFUNC(op_c1e0_4), 49632 }, /* MULS */ -{ CPUFUNC(op_c1e8_4), 49640 }, /* MULS */ -{ CPUFUNC(op_c1f0_4), 49648 }, /* MULS */ -{ CPUFUNC(op_c1f8_4), 49656 }, /* MULS */ -{ CPUFUNC(op_c1f9_4), 49657 }, /* MULS */ -{ CPUFUNC(op_c1fa_4), 49658 }, /* MULS */ -{ CPUFUNC(op_c1fb_4), 49659 }, /* MULS */ -{ CPUFUNC(op_c1fc_4), 49660 }, /* MULS */ -{ CPUFUNC(op_d000_4), 53248 }, /* ADD */ -{ CPUFUNC(op_d010_4), 53264 }, /* ADD */ -{ CPUFUNC(op_d018_4), 53272 }, /* ADD */ -{ CPUFUNC(op_d020_4), 53280 }, /* ADD */ -{ CPUFUNC(op_d028_4), 53288 }, /* ADD */ -{ CPUFUNC(op_d030_4), 53296 }, /* ADD */ -{ CPUFUNC(op_d038_4), 53304 }, /* ADD */ -{ CPUFUNC(op_d039_4), 53305 }, /* ADD */ -{ CPUFUNC(op_d03a_4), 53306 }, /* ADD */ -{ CPUFUNC(op_d03b_4), 53307 }, /* ADD */ -{ CPUFUNC(op_d03c_4), 53308 }, /* ADD */ -{ CPUFUNC(op_d040_4), 53312 }, /* ADD */ -{ CPUFUNC(op_d048_4), 53320 }, /* ADD */ -{ CPUFUNC(op_d050_4), 53328 }, /* ADD */ -{ CPUFUNC(op_d058_4), 53336 }, /* ADD */ -{ CPUFUNC(op_d060_4), 53344 }, /* ADD */ -{ CPUFUNC(op_d068_4), 53352 }, /* ADD */ -{ CPUFUNC(op_d070_4), 53360 }, /* ADD */ -{ CPUFUNC(op_d078_4), 53368 }, /* ADD */ -{ CPUFUNC(op_d079_4), 53369 }, /* ADD */ -{ CPUFUNC(op_d07a_4), 53370 }, /* ADD */ -{ CPUFUNC(op_d07b_4), 53371 }, /* ADD */ -{ CPUFUNC(op_d07c_4), 53372 }, /* ADD */ -{ CPUFUNC(op_d080_4), 53376 }, /* ADD */ -{ CPUFUNC(op_d088_4), 53384 }, /* ADD */ -{ CPUFUNC(op_d090_4), 53392 }, /* ADD */ -{ CPUFUNC(op_d098_4), 53400 }, /* ADD */ -{ CPUFUNC(op_d0a0_4), 53408 }, /* ADD */ -{ CPUFUNC(op_d0a8_4), 53416 }, /* ADD */ -{ CPUFUNC(op_d0b0_4), 53424 }, /* ADD */ -{ CPUFUNC(op_d0b8_4), 53432 }, /* ADD */ -{ CPUFUNC(op_d0b9_4), 53433 }, /* ADD */ -{ CPUFUNC(op_d0ba_4), 53434 }, /* ADD */ -{ CPUFUNC(op_d0bb_4), 53435 }, /* ADD */ -{ CPUFUNC(op_d0bc_4), 53436 }, /* ADD */ -{ CPUFUNC(op_d0c0_4), 53440 }, /* ADDA */ -{ CPUFUNC(op_d0c8_4), 53448 }, /* ADDA */ -{ CPUFUNC(op_d0d0_4), 53456 }, /* ADDA */ -{ CPUFUNC(op_d0d8_4), 53464 }, /* ADDA */ -{ CPUFUNC(op_d0e0_4), 53472 }, /* ADDA */ -{ CPUFUNC(op_d0e8_4), 53480 }, /* ADDA */ -{ CPUFUNC(op_d0f0_4), 53488 }, /* ADDA */ -{ CPUFUNC(op_d0f8_4), 53496 }, /* ADDA */ -{ CPUFUNC(op_d0f9_4), 53497 }, /* ADDA */ -{ CPUFUNC(op_d0fa_4), 53498 }, /* ADDA */ -{ CPUFUNC(op_d0fb_4), 53499 }, /* ADDA */ -{ CPUFUNC(op_d0fc_4), 53500 }, /* ADDA */ -{ CPUFUNC(op_d100_4), 53504 }, /* ADDX */ -{ CPUFUNC(op_d108_4), 53512 }, /* ADDX */ -{ CPUFUNC(op_d110_4), 53520 }, /* ADD */ -{ CPUFUNC(op_d118_4), 53528 }, /* ADD */ -{ CPUFUNC(op_d120_4), 53536 }, /* ADD */ -{ CPUFUNC(op_d128_4), 53544 }, /* ADD */ -{ CPUFUNC(op_d130_4), 53552 }, /* ADD */ -{ CPUFUNC(op_d138_4), 53560 }, /* ADD */ -{ CPUFUNC(op_d139_4), 53561 }, /* ADD */ -{ CPUFUNC(op_d140_4), 53568 }, /* ADDX */ -{ CPUFUNC(op_d148_4), 53576 }, /* ADDX */ -{ CPUFUNC(op_d150_4), 53584 }, /* ADD */ -{ CPUFUNC(op_d158_4), 53592 }, /* ADD */ -{ CPUFUNC(op_d160_4), 53600 }, /* ADD */ -{ CPUFUNC(op_d168_4), 53608 }, /* ADD */ -{ CPUFUNC(op_d170_4), 53616 }, /* ADD */ -{ CPUFUNC(op_d178_4), 53624 }, /* ADD */ -{ CPUFUNC(op_d179_4), 53625 }, /* ADD */ -{ CPUFUNC(op_d180_4), 53632 }, /* ADDX */ -{ CPUFUNC(op_d188_4), 53640 }, /* ADDX */ -{ CPUFUNC(op_d190_4), 53648 }, /* ADD */ -{ CPUFUNC(op_d198_4), 53656 }, /* ADD */ -{ CPUFUNC(op_d1a0_4), 53664 }, /* ADD */ -{ CPUFUNC(op_d1a8_4), 53672 }, /* ADD */ -{ CPUFUNC(op_d1b0_4), 53680 }, /* ADD */ -{ CPUFUNC(op_d1b8_4), 53688 }, /* ADD */ -{ CPUFUNC(op_d1b9_4), 53689 }, /* ADD */ -{ CPUFUNC(op_d1c0_4), 53696 }, /* ADDA */ -{ CPUFUNC(op_d1c8_4), 53704 }, /* ADDA */ -{ CPUFUNC(op_d1d0_4), 53712 }, /* ADDA */ -{ CPUFUNC(op_d1d8_4), 53720 }, /* ADDA */ -{ CPUFUNC(op_d1e0_4), 53728 }, /* ADDA */ -{ CPUFUNC(op_d1e8_4), 53736 }, /* ADDA */ -{ CPUFUNC(op_d1f0_4), 53744 }, /* ADDA */ -{ CPUFUNC(op_d1f8_4), 53752 }, /* ADDA */ -{ CPUFUNC(op_d1f9_4), 53753 }, /* ADDA */ -{ CPUFUNC(op_d1fa_4), 53754 }, /* ADDA */ -{ CPUFUNC(op_d1fb_4), 53755 }, /* ADDA */ -{ CPUFUNC(op_d1fc_4), 53756 }, /* ADDA */ -{ CPUFUNC(op_e000_4), 57344 }, /* ASR */ -{ CPUFUNC(op_e008_4), 57352 }, /* LSR */ -{ CPUFUNC(op_e010_4), 57360 }, /* ROXR */ -{ CPUFUNC(op_e018_4), 57368 }, /* ROR */ -{ CPUFUNC(op_e020_4), 57376 }, /* ASR */ -{ CPUFUNC(op_e028_4), 57384 }, /* LSR */ -{ CPUFUNC(op_e030_4), 57392 }, /* ROXR */ -{ CPUFUNC(op_e038_4), 57400 }, /* ROR */ -{ CPUFUNC(op_e040_4), 57408 }, /* ASR */ -{ CPUFUNC(op_e048_4), 57416 }, /* LSR */ -{ CPUFUNC(op_e050_4), 57424 }, /* ROXR */ -{ CPUFUNC(op_e058_4), 57432 }, /* ROR */ -{ CPUFUNC(op_e060_4), 57440 }, /* ASR */ -{ CPUFUNC(op_e068_4), 57448 }, /* LSR */ -{ CPUFUNC(op_e070_4), 57456 }, /* ROXR */ -{ CPUFUNC(op_e078_4), 57464 }, /* ROR */ -{ CPUFUNC(op_e080_4), 57472 }, /* ASR */ -{ CPUFUNC(op_e088_4), 57480 }, /* LSR */ -{ CPUFUNC(op_e090_4), 57488 }, /* ROXR */ -{ CPUFUNC(op_e098_4), 57496 }, /* ROR */ -{ CPUFUNC(op_e0a0_4), 57504 }, /* ASR */ -{ CPUFUNC(op_e0a8_4), 57512 }, /* LSR */ -{ CPUFUNC(op_e0b0_4), 57520 }, /* ROXR */ -{ CPUFUNC(op_e0b8_4), 57528 }, /* ROR */ -{ CPUFUNC(op_e0d0_4), 57552 }, /* ASRW */ -{ CPUFUNC(op_e0d8_4), 57560 }, /* ASRW */ -{ CPUFUNC(op_e0e0_4), 57568 }, /* ASRW */ -{ CPUFUNC(op_e0e8_4), 57576 }, /* ASRW */ -{ CPUFUNC(op_e0f0_4), 57584 }, /* ASRW */ -{ CPUFUNC(op_e0f8_4), 57592 }, /* ASRW */ -{ CPUFUNC(op_e0f9_4), 57593 }, /* ASRW */ -{ CPUFUNC(op_e100_4), 57600 }, /* ASL */ -{ CPUFUNC(op_e108_4), 57608 }, /* LSL */ -{ CPUFUNC(op_e110_4), 57616 }, /* ROXL */ -{ CPUFUNC(op_e118_4), 57624 }, /* ROL */ -{ CPUFUNC(op_e120_4), 57632 }, /* ASL */ -{ CPUFUNC(op_e128_4), 57640 }, /* LSL */ -{ CPUFUNC(op_e130_4), 57648 }, /* ROXL */ -{ CPUFUNC(op_e138_4), 57656 }, /* ROL */ -{ CPUFUNC(op_e140_4), 57664 }, /* ASL */ -{ CPUFUNC(op_e148_4), 57672 }, /* LSL */ -{ CPUFUNC(op_e150_4), 57680 }, /* ROXL */ -{ CPUFUNC(op_e158_4), 57688 }, /* ROL */ -{ CPUFUNC(op_e160_4), 57696 }, /* ASL */ -{ CPUFUNC(op_e168_4), 57704 }, /* LSL */ -{ CPUFUNC(op_e170_4), 57712 }, /* ROXL */ -{ CPUFUNC(op_e178_4), 57720 }, /* ROL */ -{ CPUFUNC(op_e180_4), 57728 }, /* ASL */ -{ CPUFUNC(op_e188_4), 57736 }, /* LSL */ -{ CPUFUNC(op_e190_4), 57744 }, /* ROXL */ -{ CPUFUNC(op_e198_4), 57752 }, /* ROL */ -{ CPUFUNC(op_e1a0_4), 57760 }, /* ASL */ -{ CPUFUNC(op_e1a8_4), 57768 }, /* LSL */ -{ CPUFUNC(op_e1b0_4), 57776 }, /* ROXL */ -{ CPUFUNC(op_e1b8_4), 57784 }, /* ROL */ -{ CPUFUNC(op_e1d0_4), 57808 }, /* ASLW */ -{ CPUFUNC(op_e1d8_4), 57816 }, /* ASLW */ -{ CPUFUNC(op_e1e0_4), 57824 }, /* ASLW */ -{ CPUFUNC(op_e1e8_4), 57832 }, /* ASLW */ -{ CPUFUNC(op_e1f0_4), 57840 }, /* ASLW */ -{ CPUFUNC(op_e1f8_4), 57848 }, /* ASLW */ -{ CPUFUNC(op_e1f9_4), 57849 }, /* ASLW */ -{ CPUFUNC(op_e2d0_4), 58064 }, /* LSRW */ -{ CPUFUNC(op_e2d8_4), 58072 }, /* LSRW */ -{ CPUFUNC(op_e2e0_4), 58080 }, /* LSRW */ -{ CPUFUNC(op_e2e8_4), 58088 }, /* LSRW */ -{ CPUFUNC(op_e2f0_4), 58096 }, /* LSRW */ -{ CPUFUNC(op_e2f8_4), 58104 }, /* LSRW */ -{ CPUFUNC(op_e2f9_4), 58105 }, /* LSRW */ -{ CPUFUNC(op_e3d0_4), 58320 }, /* LSLW */ -{ CPUFUNC(op_e3d8_4), 58328 }, /* LSLW */ -{ CPUFUNC(op_e3e0_4), 58336 }, /* LSLW */ -{ CPUFUNC(op_e3e8_4), 58344 }, /* LSLW */ -{ CPUFUNC(op_e3f0_4), 58352 }, /* LSLW */ -{ CPUFUNC(op_e3f8_4), 58360 }, /* LSLW */ -{ CPUFUNC(op_e3f9_4), 58361 }, /* LSLW */ -{ CPUFUNC(op_e4d0_4), 58576 }, /* ROXRW */ -{ CPUFUNC(op_e4d8_4), 58584 }, /* ROXRW */ -{ CPUFUNC(op_e4e0_4), 58592 }, /* ROXRW */ -{ CPUFUNC(op_e4e8_4), 58600 }, /* ROXRW */ -{ CPUFUNC(op_e4f0_4), 58608 }, /* ROXRW */ -{ CPUFUNC(op_e4f8_4), 58616 }, /* ROXRW */ -{ CPUFUNC(op_e4f9_4), 58617 }, /* ROXRW */ -{ CPUFUNC(op_e5d0_4), 58832 }, /* ROXLW */ -{ CPUFUNC(op_e5d8_4), 58840 }, /* ROXLW */ -{ CPUFUNC(op_e5e0_4), 58848 }, /* ROXLW */ -{ CPUFUNC(op_e5e8_4), 58856 }, /* ROXLW */ -{ CPUFUNC(op_e5f0_4), 58864 }, /* ROXLW */ -{ CPUFUNC(op_e5f8_4), 58872 }, /* ROXLW */ -{ CPUFUNC(op_e5f9_4), 58873 }, /* ROXLW */ -{ CPUFUNC(op_e6d0_4), 59088 }, /* RORW */ -{ CPUFUNC(op_e6d8_4), 59096 }, /* RORW */ -{ CPUFUNC(op_e6e0_4), 59104 }, /* RORW */ -{ CPUFUNC(op_e6e8_4), 59112 }, /* RORW */ -{ CPUFUNC(op_e6f0_4), 59120 }, /* RORW */ -{ CPUFUNC(op_e6f8_4), 59128 }, /* RORW */ -{ CPUFUNC(op_e6f9_4), 59129 }, /* RORW */ -{ CPUFUNC(op_e7d0_4), 59344 }, /* ROLW */ -{ CPUFUNC(op_e7d8_4), 59352 }, /* ROLW */ -{ CPUFUNC(op_e7e0_4), 59360 }, /* ROLW */ -{ CPUFUNC(op_e7e8_4), 59368 }, /* ROLW */ -{ CPUFUNC(op_e7f0_4), 59376 }, /* ROLW */ -{ CPUFUNC(op_e7f8_4), 59384 }, /* ROLW */ -{ CPUFUNC(op_e7f9_4), 59385 }, /* ROLW */ -{ 0, 0 }}; -const struct cputbl CPUFUNC(op_smalltbl_5)[] = { -{ CPUFUNC(op_0000_4), 0 }, /* OR */ -{ CPUFUNC(op_0010_4), 16 }, /* OR */ -{ CPUFUNC(op_0018_4), 24 }, /* OR */ -{ CPUFUNC(op_0020_4), 32 }, /* OR */ -{ CPUFUNC(op_0028_4), 40 }, /* OR */ -{ CPUFUNC(op_0030_4), 48 }, /* OR */ -{ CPUFUNC(op_0038_4), 56 }, /* OR */ -{ CPUFUNC(op_0039_4), 57 }, /* OR */ -{ CPUFUNC(op_003c_4), 60 }, /* ORSR */ -{ CPUFUNC(op_0040_4), 64 }, /* OR */ -{ CPUFUNC(op_0050_4), 80 }, /* OR */ -{ CPUFUNC(op_0058_4), 88 }, /* OR */ -{ CPUFUNC(op_0060_4), 96 }, /* OR */ -{ CPUFUNC(op_0068_4), 104 }, /* OR */ -{ CPUFUNC(op_0070_4), 112 }, /* OR */ -{ CPUFUNC(op_0078_4), 120 }, /* OR */ -{ CPUFUNC(op_0079_4), 121 }, /* OR */ -{ CPUFUNC(op_007c_4), 124 }, /* ORSR */ -{ CPUFUNC(op_0080_4), 128 }, /* OR */ -{ CPUFUNC(op_0090_4), 144 }, /* OR */ -{ CPUFUNC(op_0098_4), 152 }, /* OR */ -{ CPUFUNC(op_00a0_4), 160 }, /* OR */ -{ CPUFUNC(op_00a8_4), 168 }, /* OR */ -{ CPUFUNC(op_00b0_4), 176 }, /* OR */ -{ CPUFUNC(op_00b8_4), 184 }, /* OR */ -{ CPUFUNC(op_00b9_4), 185 }, /* OR */ -{ CPUFUNC(op_0100_4), 256 }, /* BTST */ -{ CPUFUNC(op_0108_4), 264 }, /* MVPMR */ -{ CPUFUNC(op_0110_4), 272 }, /* BTST */ -{ CPUFUNC(op_0118_4), 280 }, /* BTST */ -{ CPUFUNC(op_0120_4), 288 }, /* BTST */ -{ CPUFUNC(op_0128_4), 296 }, /* BTST */ -{ CPUFUNC(op_0130_4), 304 }, /* BTST */ -{ CPUFUNC(op_0138_4), 312 }, /* BTST */ -{ CPUFUNC(op_0139_4), 313 }, /* BTST */ -{ CPUFUNC(op_013a_4), 314 }, /* BTST */ -{ CPUFUNC(op_013b_4), 315 }, /* BTST */ -{ CPUFUNC(op_013c_4), 316 }, /* BTST */ -{ CPUFUNC(op_0140_4), 320 }, /* BCHG */ -{ CPUFUNC(op_0148_4), 328 }, /* MVPMR */ -{ CPUFUNC(op_0150_4), 336 }, /* BCHG */ -{ CPUFUNC(op_0158_4), 344 }, /* BCHG */ -{ CPUFUNC(op_0160_4), 352 }, /* BCHG */ -{ CPUFUNC(op_0168_4), 360 }, /* BCHG */ -{ CPUFUNC(op_0170_4), 368 }, /* BCHG */ -{ CPUFUNC(op_0178_4), 376 }, /* BCHG */ -{ CPUFUNC(op_0179_4), 377 }, /* BCHG */ -{ CPUFUNC(op_0180_4), 384 }, /* BCLR */ -{ CPUFUNC(op_0188_4), 392 }, /* MVPRM */ -{ CPUFUNC(op_0190_4), 400 }, /* BCLR */ -{ CPUFUNC(op_0198_4), 408 }, /* BCLR */ -{ CPUFUNC(op_01a0_4), 416 }, /* BCLR */ -{ CPUFUNC(op_01a8_4), 424 }, /* BCLR */ -{ CPUFUNC(op_01b0_4), 432 }, /* BCLR */ -{ CPUFUNC(op_01b8_4), 440 }, /* BCLR */ -{ CPUFUNC(op_01b9_4), 441 }, /* BCLR */ -{ CPUFUNC(op_01c0_4), 448 }, /* BSET */ -{ CPUFUNC(op_01c8_4), 456 }, /* MVPRM */ -{ CPUFUNC(op_01d0_4), 464 }, /* BSET */ -{ CPUFUNC(op_01d8_4), 472 }, /* BSET */ -{ CPUFUNC(op_01e0_4), 480 }, /* BSET */ -{ CPUFUNC(op_01e8_4), 488 }, /* BSET */ -{ CPUFUNC(op_01f0_4), 496 }, /* BSET */ -{ CPUFUNC(op_01f8_4), 504 }, /* BSET */ -{ CPUFUNC(op_01f9_4), 505 }, /* BSET */ -{ CPUFUNC(op_0200_4), 512 }, /* AND */ -{ CPUFUNC(op_0210_4), 528 }, /* AND */ -{ CPUFUNC(op_0218_4), 536 }, /* AND */ -{ CPUFUNC(op_0220_4), 544 }, /* AND */ -{ CPUFUNC(op_0228_4), 552 }, /* AND */ -{ CPUFUNC(op_0230_4), 560 }, /* AND */ -{ CPUFUNC(op_0238_4), 568 }, /* AND */ -{ CPUFUNC(op_0239_4), 569 }, /* AND */ -{ CPUFUNC(op_023c_4), 572 }, /* ANDSR */ -{ CPUFUNC(op_0240_4), 576 }, /* AND */ -{ CPUFUNC(op_0250_4), 592 }, /* AND */ -{ CPUFUNC(op_0258_4), 600 }, /* AND */ -{ CPUFUNC(op_0260_4), 608 }, /* AND */ -{ CPUFUNC(op_0268_4), 616 }, /* AND */ -{ CPUFUNC(op_0270_4), 624 }, /* AND */ -{ CPUFUNC(op_0278_4), 632 }, /* AND */ -{ CPUFUNC(op_0279_4), 633 }, /* AND */ -{ CPUFUNC(op_027c_4), 636 }, /* ANDSR */ -{ CPUFUNC(op_0280_4), 640 }, /* AND */ -{ CPUFUNC(op_0290_4), 656 }, /* AND */ -{ CPUFUNC(op_0298_4), 664 }, /* AND */ -{ CPUFUNC(op_02a0_4), 672 }, /* AND */ -{ CPUFUNC(op_02a8_4), 680 }, /* AND */ -{ CPUFUNC(op_02b0_4), 688 }, /* AND */ -{ CPUFUNC(op_02b8_4), 696 }, /* AND */ -{ CPUFUNC(op_02b9_4), 697 }, /* AND */ -{ CPUFUNC(op_0400_4), 1024 }, /* SUB */ -{ CPUFUNC(op_0410_4), 1040 }, /* SUB */ -{ CPUFUNC(op_0418_4), 1048 }, /* SUB */ -{ CPUFUNC(op_0420_4), 1056 }, /* SUB */ -{ CPUFUNC(op_0428_4), 1064 }, /* SUB */ -{ CPUFUNC(op_0430_4), 1072 }, /* SUB */ -{ CPUFUNC(op_0438_4), 1080 }, /* SUB */ -{ CPUFUNC(op_0439_4), 1081 }, /* SUB */ -{ CPUFUNC(op_0440_4), 1088 }, /* SUB */ -{ CPUFUNC(op_0450_4), 1104 }, /* SUB */ -{ CPUFUNC(op_0458_4), 1112 }, /* SUB */ -{ CPUFUNC(op_0460_4), 1120 }, /* SUB */ -{ CPUFUNC(op_0468_4), 1128 }, /* SUB */ -{ CPUFUNC(op_0470_4), 1136 }, /* SUB */ -{ CPUFUNC(op_0478_4), 1144 }, /* SUB */ -{ CPUFUNC(op_0479_4), 1145 }, /* SUB */ -{ CPUFUNC(op_0480_4), 1152 }, /* SUB */ -{ CPUFUNC(op_0490_4), 1168 }, /* SUB */ -{ CPUFUNC(op_0498_4), 1176 }, /* SUB */ -{ CPUFUNC(op_04a0_4), 1184 }, /* SUB */ -{ CPUFUNC(op_04a8_4), 1192 }, /* SUB */ -{ CPUFUNC(op_04b0_4), 1200 }, /* SUB */ -{ CPUFUNC(op_04b8_4), 1208 }, /* SUB */ -{ CPUFUNC(op_04b9_4), 1209 }, /* SUB */ -{ CPUFUNC(op_0600_4), 1536 }, /* ADD */ -{ CPUFUNC(op_0610_4), 1552 }, /* ADD */ -{ CPUFUNC(op_0618_4), 1560 }, /* ADD */ -{ CPUFUNC(op_0620_4), 1568 }, /* ADD */ -{ CPUFUNC(op_0628_4), 1576 }, /* ADD */ -{ CPUFUNC(op_0630_4), 1584 }, /* ADD */ -{ CPUFUNC(op_0638_4), 1592 }, /* ADD */ -{ CPUFUNC(op_0639_4), 1593 }, /* ADD */ -{ CPUFUNC(op_0640_4), 1600 }, /* ADD */ -{ CPUFUNC(op_0650_4), 1616 }, /* ADD */ -{ CPUFUNC(op_0658_4), 1624 }, /* ADD */ -{ CPUFUNC(op_0660_4), 1632 }, /* ADD */ -{ CPUFUNC(op_0668_4), 1640 }, /* ADD */ -{ CPUFUNC(op_0670_4), 1648 }, /* ADD */ -{ CPUFUNC(op_0678_4), 1656 }, /* ADD */ -{ CPUFUNC(op_0679_4), 1657 }, /* ADD */ -{ CPUFUNC(op_0680_4), 1664 }, /* ADD */ -{ CPUFUNC(op_0690_4), 1680 }, /* ADD */ -{ CPUFUNC(op_0698_4), 1688 }, /* ADD */ -{ CPUFUNC(op_06a0_4), 1696 }, /* ADD */ -{ CPUFUNC(op_06a8_4), 1704 }, /* ADD */ -{ CPUFUNC(op_06b0_4), 1712 }, /* ADD */ -{ CPUFUNC(op_06b8_4), 1720 }, /* ADD */ -{ CPUFUNC(op_06b9_4), 1721 }, /* ADD */ -{ CPUFUNC(op_0800_4), 2048 }, /* BTST */ -{ CPUFUNC(op_0810_4), 2064 }, /* BTST */ -{ CPUFUNC(op_0818_4), 2072 }, /* BTST */ -{ CPUFUNC(op_0820_4), 2080 }, /* BTST */ -{ CPUFUNC(op_0828_4), 2088 }, /* BTST */ -{ CPUFUNC(op_0830_4), 2096 }, /* BTST */ -{ CPUFUNC(op_0838_4), 2104 }, /* BTST */ -{ CPUFUNC(op_0839_4), 2105 }, /* BTST */ -{ CPUFUNC(op_083a_4), 2106 }, /* BTST */ -{ CPUFUNC(op_083b_4), 2107 }, /* BTST */ -{ CPUFUNC(op_083c_4), 2108 }, /* BTST */ -{ CPUFUNC(op_0840_4), 2112 }, /* BCHG */ -{ CPUFUNC(op_0850_4), 2128 }, /* BCHG */ -{ CPUFUNC(op_0858_4), 2136 }, /* BCHG */ -{ CPUFUNC(op_0860_4), 2144 }, /* BCHG */ -{ CPUFUNC(op_0868_4), 2152 }, /* BCHG */ -{ CPUFUNC(op_0870_4), 2160 }, /* BCHG */ -{ CPUFUNC(op_0878_4), 2168 }, /* BCHG */ -{ CPUFUNC(op_0879_4), 2169 }, /* BCHG */ -{ CPUFUNC(op_0880_4), 2176 }, /* BCLR */ -{ CPUFUNC(op_0890_4), 2192 }, /* BCLR */ -{ CPUFUNC(op_0898_4), 2200 }, /* BCLR */ -{ CPUFUNC(op_08a0_4), 2208 }, /* BCLR */ -{ CPUFUNC(op_08a8_4), 2216 }, /* BCLR */ -{ CPUFUNC(op_08b0_4), 2224 }, /* BCLR */ -{ CPUFUNC(op_08b8_4), 2232 }, /* BCLR */ -{ CPUFUNC(op_08b9_4), 2233 }, /* BCLR */ -{ CPUFUNC(op_08c0_4), 2240 }, /* BSET */ -{ CPUFUNC(op_08d0_4), 2256 }, /* BSET */ -{ CPUFUNC(op_08d8_4), 2264 }, /* BSET */ -{ CPUFUNC(op_08e0_4), 2272 }, /* BSET */ -{ CPUFUNC(op_08e8_4), 2280 }, /* BSET */ -{ CPUFUNC(op_08f0_4), 2288 }, /* BSET */ -{ CPUFUNC(op_08f8_4), 2296 }, /* BSET */ -{ CPUFUNC(op_08f9_4), 2297 }, /* BSET */ -{ CPUFUNC(op_0a00_4), 2560 }, /* EOR */ -{ CPUFUNC(op_0a10_4), 2576 }, /* EOR */ -{ CPUFUNC(op_0a18_4), 2584 }, /* EOR */ -{ CPUFUNC(op_0a20_4), 2592 }, /* EOR */ -{ CPUFUNC(op_0a28_4), 2600 }, /* EOR */ -{ CPUFUNC(op_0a30_4), 2608 }, /* EOR */ -{ CPUFUNC(op_0a38_4), 2616 }, /* EOR */ -{ CPUFUNC(op_0a39_4), 2617 }, /* EOR */ -{ CPUFUNC(op_0a3c_4), 2620 }, /* EORSR */ -{ CPUFUNC(op_0a40_4), 2624 }, /* EOR */ -{ CPUFUNC(op_0a50_4), 2640 }, /* EOR */ -{ CPUFUNC(op_0a58_4), 2648 }, /* EOR */ -{ CPUFUNC(op_0a60_4), 2656 }, /* EOR */ -{ CPUFUNC(op_0a68_4), 2664 }, /* EOR */ -{ CPUFUNC(op_0a70_4), 2672 }, /* EOR */ -{ CPUFUNC(op_0a78_4), 2680 }, /* EOR */ -{ CPUFUNC(op_0a79_4), 2681 }, /* EOR */ -{ CPUFUNC(op_0a7c_4), 2684 }, /* EORSR */ -{ CPUFUNC(op_0a80_4), 2688 }, /* EOR */ -{ CPUFUNC(op_0a90_4), 2704 }, /* EOR */ -{ CPUFUNC(op_0a98_4), 2712 }, /* EOR */ -{ CPUFUNC(op_0aa0_4), 2720 }, /* EOR */ -{ CPUFUNC(op_0aa8_4), 2728 }, /* EOR */ -{ CPUFUNC(op_0ab0_4), 2736 }, /* EOR */ -{ CPUFUNC(op_0ab8_4), 2744 }, /* EOR */ -{ CPUFUNC(op_0ab9_4), 2745 }, /* EOR */ -{ CPUFUNC(op_0c00_4), 3072 }, /* CMP */ -{ CPUFUNC(op_0c10_4), 3088 }, /* CMP */ -{ CPUFUNC(op_0c18_4), 3096 }, /* CMP */ -{ CPUFUNC(op_0c20_4), 3104 }, /* CMP */ -{ CPUFUNC(op_0c28_4), 3112 }, /* CMP */ -{ CPUFUNC(op_0c30_4), 3120 }, /* CMP */ -{ CPUFUNC(op_0c38_4), 3128 }, /* CMP */ -{ CPUFUNC(op_0c39_4), 3129 }, /* CMP */ -{ CPUFUNC(op_0c40_4), 3136 }, /* CMP */ -{ CPUFUNC(op_0c50_4), 3152 }, /* CMP */ -{ CPUFUNC(op_0c58_4), 3160 }, /* CMP */ -{ CPUFUNC(op_0c60_4), 3168 }, /* CMP */ -{ CPUFUNC(op_0c68_4), 3176 }, /* CMP */ -{ CPUFUNC(op_0c70_4), 3184 }, /* CMP */ -{ CPUFUNC(op_0c78_4), 3192 }, /* CMP */ -{ CPUFUNC(op_0c79_4), 3193 }, /* CMP */ -{ CPUFUNC(op_0c80_4), 3200 }, /* CMP */ -{ CPUFUNC(op_0c90_4), 3216 }, /* CMP */ -{ CPUFUNC(op_0c98_4), 3224 }, /* CMP */ -{ CPUFUNC(op_0ca0_4), 3232 }, /* CMP */ -{ CPUFUNC(op_0ca8_4), 3240 }, /* CMP */ -{ CPUFUNC(op_0cb0_4), 3248 }, /* CMP */ -{ CPUFUNC(op_0cb8_4), 3256 }, /* CMP */ -{ CPUFUNC(op_0cb9_4), 3257 }, /* CMP */ -{ CPUFUNC(op_1000_4), 4096 }, /* MOVE */ -{ CPUFUNC(op_1010_4), 4112 }, /* MOVE */ -{ CPUFUNC(op_1018_4), 4120 }, /* MOVE */ -{ CPUFUNC(op_1020_4), 4128 }, /* MOVE */ -{ CPUFUNC(op_1028_4), 4136 }, /* MOVE */ -{ CPUFUNC(op_1030_4), 4144 }, /* MOVE */ -{ CPUFUNC(op_1038_4), 4152 }, /* MOVE */ -{ CPUFUNC(op_1039_4), 4153 }, /* MOVE */ -{ CPUFUNC(op_103a_4), 4154 }, /* MOVE */ -{ CPUFUNC(op_103b_4), 4155 }, /* MOVE */ -{ CPUFUNC(op_103c_4), 4156 }, /* MOVE */ -{ CPUFUNC(op_1080_4), 4224 }, /* MOVE */ -{ CPUFUNC(op_1090_4), 4240 }, /* MOVE */ -{ CPUFUNC(op_1098_4), 4248 }, /* MOVE */ -{ CPUFUNC(op_10a0_4), 4256 }, /* MOVE */ -{ CPUFUNC(op_10a8_4), 4264 }, /* MOVE */ -{ CPUFUNC(op_10b0_4), 4272 }, /* MOVE */ -{ CPUFUNC(op_10b8_4), 4280 }, /* MOVE */ -{ CPUFUNC(op_10b9_4), 4281 }, /* MOVE */ -{ CPUFUNC(op_10ba_4), 4282 }, /* MOVE */ -{ CPUFUNC(op_10bb_4), 4283 }, /* MOVE */ -{ CPUFUNC(op_10bc_4), 4284 }, /* MOVE */ -{ CPUFUNC(op_10c0_4), 4288 }, /* MOVE */ -{ CPUFUNC(op_10d0_4), 4304 }, /* MOVE */ -{ CPUFUNC(op_10d8_4), 4312 }, /* MOVE */ -{ CPUFUNC(op_10e0_4), 4320 }, /* MOVE */ -{ CPUFUNC(op_10e8_4), 4328 }, /* MOVE */ -{ CPUFUNC(op_10f0_4), 4336 }, /* MOVE */ -{ CPUFUNC(op_10f8_4), 4344 }, /* MOVE */ -{ CPUFUNC(op_10f9_4), 4345 }, /* MOVE */ -{ CPUFUNC(op_10fa_4), 4346 }, /* MOVE */ -{ CPUFUNC(op_10fb_4), 4347 }, /* MOVE */ -{ CPUFUNC(op_10fc_4), 4348 }, /* MOVE */ -{ CPUFUNC(op_1100_4), 4352 }, /* MOVE */ -{ CPUFUNC(op_1110_4), 4368 }, /* MOVE */ -{ CPUFUNC(op_1118_4), 4376 }, /* MOVE */ -{ CPUFUNC(op_1120_4), 4384 }, /* MOVE */ -{ CPUFUNC(op_1128_4), 4392 }, /* MOVE */ -{ CPUFUNC(op_1130_4), 4400 }, /* MOVE */ -{ CPUFUNC(op_1138_4), 4408 }, /* MOVE */ -{ CPUFUNC(op_1139_4), 4409 }, /* MOVE */ -{ CPUFUNC(op_113a_4), 4410 }, /* MOVE */ -{ CPUFUNC(op_113b_4), 4411 }, /* MOVE */ -{ CPUFUNC(op_113c_4), 4412 }, /* MOVE */ -{ CPUFUNC(op_1140_4), 4416 }, /* MOVE */ -{ CPUFUNC(op_1150_4), 4432 }, /* MOVE */ -{ CPUFUNC(op_1158_4), 4440 }, /* MOVE */ -{ CPUFUNC(op_1160_4), 4448 }, /* MOVE */ -{ CPUFUNC(op_1168_4), 4456 }, /* MOVE */ -{ CPUFUNC(op_1170_4), 4464 }, /* MOVE */ -{ CPUFUNC(op_1178_4), 4472 }, /* MOVE */ -{ CPUFUNC(op_1179_4), 4473 }, /* MOVE */ -{ CPUFUNC(op_117a_4), 4474 }, /* MOVE */ -{ CPUFUNC(op_117b_4), 4475 }, /* MOVE */ -{ CPUFUNC(op_117c_4), 4476 }, /* MOVE */ -{ CPUFUNC(op_1180_4), 4480 }, /* MOVE */ -{ CPUFUNC(op_1190_4), 4496 }, /* MOVE */ -{ CPUFUNC(op_1198_4), 4504 }, /* MOVE */ -{ CPUFUNC(op_11a0_4), 4512 }, /* MOVE */ -{ CPUFUNC(op_11a8_4), 4520 }, /* MOVE */ -{ CPUFUNC(op_11b0_4), 4528 }, /* MOVE */ -{ CPUFUNC(op_11b8_4), 4536 }, /* MOVE */ -{ CPUFUNC(op_11b9_4), 4537 }, /* MOVE */ -{ CPUFUNC(op_11ba_4), 4538 }, /* MOVE */ -{ CPUFUNC(op_11bb_4), 4539 }, /* MOVE */ -{ CPUFUNC(op_11bc_4), 4540 }, /* MOVE */ -{ CPUFUNC(op_11c0_4), 4544 }, /* MOVE */ -{ CPUFUNC(op_11d0_4), 4560 }, /* MOVE */ -{ CPUFUNC(op_11d8_4), 4568 }, /* MOVE */ -{ CPUFUNC(op_11e0_4), 4576 }, /* MOVE */ -{ CPUFUNC(op_11e8_4), 4584 }, /* MOVE */ -{ CPUFUNC(op_11f0_4), 4592 }, /* MOVE */ -{ CPUFUNC(op_11f8_4), 4600 }, /* MOVE */ -{ CPUFUNC(op_11f9_4), 4601 }, /* MOVE */ -{ CPUFUNC(op_11fa_4), 4602 }, /* MOVE */ -{ CPUFUNC(op_11fb_4), 4603 }, /* MOVE */ -{ CPUFUNC(op_11fc_4), 4604 }, /* MOVE */ -{ CPUFUNC(op_13c0_4), 5056 }, /* MOVE */ -{ CPUFUNC(op_13d0_4), 5072 }, /* MOVE */ -{ CPUFUNC(op_13d8_4), 5080 }, /* MOVE */ -{ CPUFUNC(op_13e0_4), 5088 }, /* MOVE */ -{ CPUFUNC(op_13e8_4), 5096 }, /* MOVE */ -{ CPUFUNC(op_13f0_4), 5104 }, /* MOVE */ -{ CPUFUNC(op_13f8_4), 5112 }, /* MOVE */ -{ CPUFUNC(op_13f9_4), 5113 }, /* MOVE */ -{ CPUFUNC(op_13fa_4), 5114 }, /* MOVE */ -{ CPUFUNC(op_13fb_4), 5115 }, /* MOVE */ -{ CPUFUNC(op_13fc_4), 5116 }, /* MOVE */ -{ CPUFUNC(op_2000_4), 8192 }, /* MOVE */ -{ CPUFUNC(op_2008_4), 8200 }, /* MOVE */ -{ CPUFUNC(op_2010_4), 8208 }, /* MOVE */ -{ CPUFUNC(op_2018_4), 8216 }, /* MOVE */ -{ CPUFUNC(op_2020_4), 8224 }, /* MOVE */ -{ CPUFUNC(op_2028_4), 8232 }, /* MOVE */ -{ CPUFUNC(op_2030_4), 8240 }, /* MOVE */ -{ CPUFUNC(op_2038_4), 8248 }, /* MOVE */ -{ CPUFUNC(op_2039_4), 8249 }, /* MOVE */ -{ CPUFUNC(op_203a_4), 8250 }, /* MOVE */ -{ CPUFUNC(op_203b_4), 8251 }, /* MOVE */ -{ CPUFUNC(op_203c_4), 8252 }, /* MOVE */ -{ CPUFUNC(op_2040_4), 8256 }, /* MOVEA */ -{ CPUFUNC(op_2048_4), 8264 }, /* MOVEA */ -{ CPUFUNC(op_2050_4), 8272 }, /* MOVEA */ -{ CPUFUNC(op_2058_4), 8280 }, /* MOVEA */ -{ CPUFUNC(op_2060_4), 8288 }, /* MOVEA */ -{ CPUFUNC(op_2068_4), 8296 }, /* MOVEA */ -{ CPUFUNC(op_2070_4), 8304 }, /* MOVEA */ -{ CPUFUNC(op_2078_4), 8312 }, /* MOVEA */ -{ CPUFUNC(op_2079_4), 8313 }, /* MOVEA */ -{ CPUFUNC(op_207a_4), 8314 }, /* MOVEA */ -{ CPUFUNC(op_207b_4), 8315 }, /* MOVEA */ -{ CPUFUNC(op_207c_4), 8316 }, /* MOVEA */ -{ CPUFUNC(op_2080_4), 8320 }, /* MOVE */ -{ CPUFUNC(op_2088_4), 8328 }, /* MOVE */ -{ CPUFUNC(op_2090_4), 8336 }, /* MOVE */ -{ CPUFUNC(op_2098_4), 8344 }, /* MOVE */ -{ CPUFUNC(op_20a0_4), 8352 }, /* MOVE */ -{ CPUFUNC(op_20a8_4), 8360 }, /* MOVE */ -{ CPUFUNC(op_20b0_4), 8368 }, /* MOVE */ -{ CPUFUNC(op_20b8_4), 8376 }, /* MOVE */ -{ CPUFUNC(op_20b9_4), 8377 }, /* MOVE */ -{ CPUFUNC(op_20ba_4), 8378 }, /* MOVE */ -{ CPUFUNC(op_20bb_4), 8379 }, /* MOVE */ -{ CPUFUNC(op_20bc_4), 8380 }, /* MOVE */ -{ CPUFUNC(op_20c0_4), 8384 }, /* MOVE */ -{ CPUFUNC(op_20c8_4), 8392 }, /* MOVE */ -{ CPUFUNC(op_20d0_4), 8400 }, /* MOVE */ -{ CPUFUNC(op_20d8_4), 8408 }, /* MOVE */ -{ CPUFUNC(op_20e0_4), 8416 }, /* MOVE */ -{ CPUFUNC(op_20e8_4), 8424 }, /* MOVE */ -{ CPUFUNC(op_20f0_4), 8432 }, /* MOVE */ -{ CPUFUNC(op_20f8_4), 8440 }, /* MOVE */ -{ CPUFUNC(op_20f9_4), 8441 }, /* MOVE */ -{ CPUFUNC(op_20fa_4), 8442 }, /* MOVE */ -{ CPUFUNC(op_20fb_4), 8443 }, /* MOVE */ -{ CPUFUNC(op_20fc_4), 8444 }, /* MOVE */ -{ CPUFUNC(op_2100_4), 8448 }, /* MOVE */ -{ CPUFUNC(op_2108_4), 8456 }, /* MOVE */ -{ CPUFUNC(op_2110_4), 8464 }, /* MOVE */ -{ CPUFUNC(op_2118_4), 8472 }, /* MOVE */ -{ CPUFUNC(op_2120_4), 8480 }, /* MOVE */ -{ CPUFUNC(op_2128_4), 8488 }, /* MOVE */ -{ CPUFUNC(op_2130_4), 8496 }, /* MOVE */ -{ CPUFUNC(op_2138_4), 8504 }, /* MOVE */ -{ CPUFUNC(op_2139_4), 8505 }, /* MOVE */ -{ CPUFUNC(op_213a_4), 8506 }, /* MOVE */ -{ CPUFUNC(op_213b_4), 8507 }, /* MOVE */ -{ CPUFUNC(op_213c_4), 8508 }, /* MOVE */ -{ CPUFUNC(op_2140_4), 8512 }, /* MOVE */ -{ CPUFUNC(op_2148_4), 8520 }, /* MOVE */ -{ CPUFUNC(op_2150_4), 8528 }, /* MOVE */ -{ CPUFUNC(op_2158_4), 8536 }, /* MOVE */ -{ CPUFUNC(op_2160_4), 8544 }, /* MOVE */ -{ CPUFUNC(op_2168_4), 8552 }, /* MOVE */ -{ CPUFUNC(op_2170_4), 8560 }, /* MOVE */ -{ CPUFUNC(op_2178_4), 8568 }, /* MOVE */ -{ CPUFUNC(op_2179_4), 8569 }, /* MOVE */ -{ CPUFUNC(op_217a_4), 8570 }, /* MOVE */ -{ CPUFUNC(op_217b_4), 8571 }, /* MOVE */ -{ CPUFUNC(op_217c_4), 8572 }, /* MOVE */ -{ CPUFUNC(op_2180_4), 8576 }, /* MOVE */ -{ CPUFUNC(op_2188_4), 8584 }, /* MOVE */ -{ CPUFUNC(op_2190_4), 8592 }, /* MOVE */ -{ CPUFUNC(op_2198_4), 8600 }, /* MOVE */ -{ CPUFUNC(op_21a0_4), 8608 }, /* MOVE */ -{ CPUFUNC(op_21a8_4), 8616 }, /* MOVE */ -{ CPUFUNC(op_21b0_4), 8624 }, /* MOVE */ -{ CPUFUNC(op_21b8_4), 8632 }, /* MOVE */ -{ CPUFUNC(op_21b9_4), 8633 }, /* MOVE */ -{ CPUFUNC(op_21ba_4), 8634 }, /* MOVE */ -{ CPUFUNC(op_21bb_4), 8635 }, /* MOVE */ -{ CPUFUNC(op_21bc_4), 8636 }, /* MOVE */ -{ CPUFUNC(op_21c0_4), 8640 }, /* MOVE */ -{ CPUFUNC(op_21c8_4), 8648 }, /* MOVE */ -{ CPUFUNC(op_21d0_4), 8656 }, /* MOVE */ -{ CPUFUNC(op_21d8_4), 8664 }, /* MOVE */ -{ CPUFUNC(op_21e0_4), 8672 }, /* MOVE */ -{ CPUFUNC(op_21e8_4), 8680 }, /* MOVE */ -{ CPUFUNC(op_21f0_4), 8688 }, /* MOVE */ -{ CPUFUNC(op_21f8_4), 8696 }, /* MOVE */ -{ CPUFUNC(op_21f9_4), 8697 }, /* MOVE */ -{ CPUFUNC(op_21fa_4), 8698 }, /* MOVE */ -{ CPUFUNC(op_21fb_4), 8699 }, /* MOVE */ -{ CPUFUNC(op_21fc_4), 8700 }, /* MOVE */ -{ CPUFUNC(op_23c0_4), 9152 }, /* MOVE */ -{ CPUFUNC(op_23c8_4), 9160 }, /* MOVE */ -{ CPUFUNC(op_23d0_4), 9168 }, /* MOVE */ -{ CPUFUNC(op_23d8_4), 9176 }, /* MOVE */ -{ CPUFUNC(op_23e0_4), 9184 }, /* MOVE */ -{ CPUFUNC(op_23e8_4), 9192 }, /* MOVE */ -{ CPUFUNC(op_23f0_4), 9200 }, /* MOVE */ -{ CPUFUNC(op_23f8_4), 9208 }, /* MOVE */ -{ CPUFUNC(op_23f9_4), 9209 }, /* MOVE */ -{ CPUFUNC(op_23fa_4), 9210 }, /* MOVE */ -{ CPUFUNC(op_23fb_4), 9211 }, /* MOVE */ -{ CPUFUNC(op_23fc_4), 9212 }, /* MOVE */ -{ CPUFUNC(op_3000_4), 12288 }, /* MOVE */ -{ CPUFUNC(op_3008_4), 12296 }, /* MOVE */ -{ CPUFUNC(op_3010_4), 12304 }, /* MOVE */ -{ CPUFUNC(op_3018_4), 12312 }, /* MOVE */ -{ CPUFUNC(op_3020_4), 12320 }, /* MOVE */ -{ CPUFUNC(op_3028_4), 12328 }, /* MOVE */ -{ CPUFUNC(op_3030_4), 12336 }, /* MOVE */ -{ CPUFUNC(op_3038_4), 12344 }, /* MOVE */ -{ CPUFUNC(op_3039_4), 12345 }, /* MOVE */ -{ CPUFUNC(op_303a_4), 12346 }, /* MOVE */ -{ CPUFUNC(op_303b_4), 12347 }, /* MOVE */ -{ CPUFUNC(op_303c_4), 12348 }, /* MOVE */ -{ CPUFUNC(op_3040_4), 12352 }, /* MOVEA */ -{ CPUFUNC(op_3048_4), 12360 }, /* MOVEA */ -{ CPUFUNC(op_3050_4), 12368 }, /* MOVEA */ -{ CPUFUNC(op_3058_4), 12376 }, /* MOVEA */ -{ CPUFUNC(op_3060_4), 12384 }, /* MOVEA */ -{ CPUFUNC(op_3068_4), 12392 }, /* MOVEA */ -{ CPUFUNC(op_3070_4), 12400 }, /* MOVEA */ -{ CPUFUNC(op_3078_4), 12408 }, /* MOVEA */ -{ CPUFUNC(op_3079_4), 12409 }, /* MOVEA */ -{ CPUFUNC(op_307a_4), 12410 }, /* MOVEA */ -{ CPUFUNC(op_307b_4), 12411 }, /* MOVEA */ -{ CPUFUNC(op_307c_4), 12412 }, /* MOVEA */ -{ CPUFUNC(op_3080_4), 12416 }, /* MOVE */ -{ CPUFUNC(op_3088_4), 12424 }, /* MOVE */ -{ CPUFUNC(op_3090_4), 12432 }, /* MOVE */ -{ CPUFUNC(op_3098_4), 12440 }, /* MOVE */ -{ CPUFUNC(op_30a0_4), 12448 }, /* MOVE */ -{ CPUFUNC(op_30a8_4), 12456 }, /* MOVE */ -{ CPUFUNC(op_30b0_4), 12464 }, /* MOVE */ -{ CPUFUNC(op_30b8_4), 12472 }, /* MOVE */ -{ CPUFUNC(op_30b9_4), 12473 }, /* MOVE */ -{ CPUFUNC(op_30ba_4), 12474 }, /* MOVE */ -{ CPUFUNC(op_30bb_4), 12475 }, /* MOVE */ -{ CPUFUNC(op_30bc_4), 12476 }, /* MOVE */ -{ CPUFUNC(op_30c0_4), 12480 }, /* MOVE */ -{ CPUFUNC(op_30c8_4), 12488 }, /* MOVE */ -{ CPUFUNC(op_30d0_4), 12496 }, /* MOVE */ -{ CPUFUNC(op_30d8_4), 12504 }, /* MOVE */ -{ CPUFUNC(op_30e0_4), 12512 }, /* MOVE */ -{ CPUFUNC(op_30e8_4), 12520 }, /* MOVE */ -{ CPUFUNC(op_30f0_4), 12528 }, /* MOVE */ -{ CPUFUNC(op_30f8_4), 12536 }, /* MOVE */ -{ CPUFUNC(op_30f9_4), 12537 }, /* MOVE */ -{ CPUFUNC(op_30fa_4), 12538 }, /* MOVE */ -{ CPUFUNC(op_30fb_4), 12539 }, /* MOVE */ -{ CPUFUNC(op_30fc_4), 12540 }, /* MOVE */ -{ CPUFUNC(op_3100_4), 12544 }, /* MOVE */ -{ CPUFUNC(op_3108_4), 12552 }, /* MOVE */ -{ CPUFUNC(op_3110_4), 12560 }, /* MOVE */ -{ CPUFUNC(op_3118_4), 12568 }, /* MOVE */ -{ CPUFUNC(op_3120_4), 12576 }, /* MOVE */ -{ CPUFUNC(op_3128_4), 12584 }, /* MOVE */ -{ CPUFUNC(op_3130_4), 12592 }, /* MOVE */ -{ CPUFUNC(op_3138_4), 12600 }, /* MOVE */ -{ CPUFUNC(op_3139_4), 12601 }, /* MOVE */ -{ CPUFUNC(op_313a_4), 12602 }, /* MOVE */ -{ CPUFUNC(op_313b_4), 12603 }, /* MOVE */ -{ CPUFUNC(op_313c_4), 12604 }, /* MOVE */ -{ CPUFUNC(op_3140_4), 12608 }, /* MOVE */ -{ CPUFUNC(op_3148_4), 12616 }, /* MOVE */ -{ CPUFUNC(op_3150_4), 12624 }, /* MOVE */ -{ CPUFUNC(op_3158_4), 12632 }, /* MOVE */ -{ CPUFUNC(op_3160_4), 12640 }, /* MOVE */ -{ CPUFUNC(op_3168_4), 12648 }, /* MOVE */ -{ CPUFUNC(op_3170_4), 12656 }, /* MOVE */ -{ CPUFUNC(op_3178_4), 12664 }, /* MOVE */ -{ CPUFUNC(op_3179_4), 12665 }, /* MOVE */ -{ CPUFUNC(op_317a_4), 12666 }, /* MOVE */ -{ CPUFUNC(op_317b_4), 12667 }, /* MOVE */ -{ CPUFUNC(op_317c_4), 12668 }, /* MOVE */ -{ CPUFUNC(op_3180_4), 12672 }, /* MOVE */ -{ CPUFUNC(op_3188_4), 12680 }, /* MOVE */ -{ CPUFUNC(op_3190_4), 12688 }, /* MOVE */ -{ CPUFUNC(op_3198_4), 12696 }, /* MOVE */ -{ CPUFUNC(op_31a0_4), 12704 }, /* MOVE */ -{ CPUFUNC(op_31a8_4), 12712 }, /* MOVE */ -{ CPUFUNC(op_31b0_4), 12720 }, /* MOVE */ -{ CPUFUNC(op_31b8_4), 12728 }, /* MOVE */ -{ CPUFUNC(op_31b9_4), 12729 }, /* MOVE */ -{ CPUFUNC(op_31ba_4), 12730 }, /* MOVE */ -{ CPUFUNC(op_31bb_4), 12731 }, /* MOVE */ -{ CPUFUNC(op_31bc_4), 12732 }, /* MOVE */ -{ CPUFUNC(op_31c0_4), 12736 }, /* MOVE */ -{ CPUFUNC(op_31c8_4), 12744 }, /* MOVE */ -{ CPUFUNC(op_31d0_4), 12752 }, /* MOVE */ -{ CPUFUNC(op_31d8_4), 12760 }, /* MOVE */ -{ CPUFUNC(op_31e0_4), 12768 }, /* MOVE */ -{ CPUFUNC(op_31e8_4), 12776 }, /* MOVE */ -{ CPUFUNC(op_31f0_4), 12784 }, /* MOVE */ -{ CPUFUNC(op_31f8_4), 12792 }, /* MOVE */ -{ CPUFUNC(op_31f9_4), 12793 }, /* MOVE */ -{ CPUFUNC(op_31fa_4), 12794 }, /* MOVE */ -{ CPUFUNC(op_31fb_4), 12795 }, /* MOVE */ -{ CPUFUNC(op_31fc_4), 12796 }, /* MOVE */ -{ CPUFUNC(op_33c0_4), 13248 }, /* MOVE */ -{ CPUFUNC(op_33c8_4), 13256 }, /* MOVE */ -{ CPUFUNC(op_33d0_4), 13264 }, /* MOVE */ -{ CPUFUNC(op_33d8_4), 13272 }, /* MOVE */ -{ CPUFUNC(op_33e0_4), 13280 }, /* MOVE */ -{ CPUFUNC(op_33e8_4), 13288 }, /* MOVE */ -{ CPUFUNC(op_33f0_4), 13296 }, /* MOVE */ -{ CPUFUNC(op_33f8_4), 13304 }, /* MOVE */ -{ CPUFUNC(op_33f9_4), 13305 }, /* MOVE */ -{ CPUFUNC(op_33fa_4), 13306 }, /* MOVE */ -{ CPUFUNC(op_33fb_4), 13307 }, /* MOVE */ -{ CPUFUNC(op_33fc_4), 13308 }, /* MOVE */ -{ CPUFUNC(op_4000_4), 16384 }, /* NEGX */ -{ CPUFUNC(op_4010_4), 16400 }, /* NEGX */ -{ CPUFUNC(op_4018_4), 16408 }, /* NEGX */ -{ CPUFUNC(op_4020_4), 16416 }, /* NEGX */ -{ CPUFUNC(op_4028_4), 16424 }, /* NEGX */ -{ CPUFUNC(op_4030_4), 16432 }, /* NEGX */ -{ CPUFUNC(op_4038_4), 16440 }, /* NEGX */ -{ CPUFUNC(op_4039_4), 16441 }, /* NEGX */ -{ CPUFUNC(op_4040_4), 16448 }, /* NEGX */ -{ CPUFUNC(op_4050_4), 16464 }, /* NEGX */ -{ CPUFUNC(op_4058_4), 16472 }, /* NEGX */ -{ CPUFUNC(op_4060_4), 16480 }, /* NEGX */ -{ CPUFUNC(op_4068_4), 16488 }, /* NEGX */ -{ CPUFUNC(op_4070_4), 16496 }, /* NEGX */ -{ CPUFUNC(op_4078_4), 16504 }, /* NEGX */ -{ CPUFUNC(op_4079_4), 16505 }, /* NEGX */ -{ CPUFUNC(op_4080_4), 16512 }, /* NEGX */ -{ CPUFUNC(op_4090_4), 16528 }, /* NEGX */ -{ CPUFUNC(op_4098_4), 16536 }, /* NEGX */ -{ CPUFUNC(op_40a0_4), 16544 }, /* NEGX */ -{ CPUFUNC(op_40a8_4), 16552 }, /* NEGX */ -{ CPUFUNC(op_40b0_4), 16560 }, /* NEGX */ -{ CPUFUNC(op_40b8_4), 16568 }, /* NEGX */ -{ CPUFUNC(op_40b9_4), 16569 }, /* NEGX */ -{ CPUFUNC(op_40c0_5), 16576 }, /* MVSR2 */ -{ CPUFUNC(op_40d0_5), 16592 }, /* MVSR2 */ -{ CPUFUNC(op_40d8_5), 16600 }, /* MVSR2 */ -{ CPUFUNC(op_40e0_5), 16608 }, /* MVSR2 */ -{ CPUFUNC(op_40e8_5), 16616 }, /* MVSR2 */ -{ CPUFUNC(op_40f0_5), 16624 }, /* MVSR2 */ -{ CPUFUNC(op_40f8_5), 16632 }, /* MVSR2 */ -{ CPUFUNC(op_40f9_5), 16633 }, /* MVSR2 */ -{ CPUFUNC(op_4180_4), 16768 }, /* CHK */ -{ CPUFUNC(op_4190_4), 16784 }, /* CHK */ -{ CPUFUNC(op_4198_4), 16792 }, /* CHK */ -{ CPUFUNC(op_41a0_4), 16800 }, /* CHK */ -{ CPUFUNC(op_41a8_4), 16808 }, /* CHK */ -{ CPUFUNC(op_41b0_4), 16816 }, /* CHK */ -{ CPUFUNC(op_41b8_4), 16824 }, /* CHK */ -{ CPUFUNC(op_41b9_4), 16825 }, /* CHK */ -{ CPUFUNC(op_41ba_4), 16826 }, /* CHK */ -{ CPUFUNC(op_41bb_4), 16827 }, /* CHK */ -{ CPUFUNC(op_41bc_4), 16828 }, /* CHK */ -{ CPUFUNC(op_41d0_4), 16848 }, /* LEA */ -{ CPUFUNC(op_41e8_4), 16872 }, /* LEA */ -{ CPUFUNC(op_41f0_4), 16880 }, /* LEA */ -{ CPUFUNC(op_41f8_4), 16888 }, /* LEA */ -{ CPUFUNC(op_41f9_4), 16889 }, /* LEA */ -{ CPUFUNC(op_41fa_4), 16890 }, /* LEA */ -{ CPUFUNC(op_41fb_4), 16891 }, /* LEA */ -{ CPUFUNC(op_4200_4), 16896 }, /* CLR */ -{ CPUFUNC(op_4210_4), 16912 }, /* CLR */ -{ CPUFUNC(op_4218_4), 16920 }, /* CLR */ -{ CPUFUNC(op_4220_4), 16928 }, /* CLR */ -{ CPUFUNC(op_4228_4), 16936 }, /* CLR */ -{ CPUFUNC(op_4230_4), 16944 }, /* CLR */ -{ CPUFUNC(op_4238_4), 16952 }, /* CLR */ -{ CPUFUNC(op_4239_4), 16953 }, /* CLR */ -{ CPUFUNC(op_4240_4), 16960 }, /* CLR */ -{ CPUFUNC(op_4250_4), 16976 }, /* CLR */ -{ CPUFUNC(op_4258_4), 16984 }, /* CLR */ -{ CPUFUNC(op_4260_4), 16992 }, /* CLR */ -{ CPUFUNC(op_4268_4), 17000 }, /* CLR */ -{ CPUFUNC(op_4270_4), 17008 }, /* CLR */ -{ CPUFUNC(op_4278_4), 17016 }, /* CLR */ -{ CPUFUNC(op_4279_4), 17017 }, /* CLR */ -{ CPUFUNC(op_4280_4), 17024 }, /* CLR */ -{ CPUFUNC(op_4290_4), 17040 }, /* CLR */ -{ CPUFUNC(op_4298_4), 17048 }, /* CLR */ -{ CPUFUNC(op_42a0_4), 17056 }, /* CLR */ -{ CPUFUNC(op_42a8_4), 17064 }, /* CLR */ -{ CPUFUNC(op_42b0_4), 17072 }, /* CLR */ -{ CPUFUNC(op_42b8_4), 17080 }, /* CLR */ -{ CPUFUNC(op_42b9_4), 17081 }, /* CLR */ -{ CPUFUNC(op_4400_4), 17408 }, /* NEG */ -{ CPUFUNC(op_4410_4), 17424 }, /* NEG */ -{ CPUFUNC(op_4418_4), 17432 }, /* NEG */ -{ CPUFUNC(op_4420_4), 17440 }, /* NEG */ -{ CPUFUNC(op_4428_4), 17448 }, /* NEG */ -{ CPUFUNC(op_4430_4), 17456 }, /* NEG */ -{ CPUFUNC(op_4438_4), 17464 }, /* NEG */ -{ CPUFUNC(op_4439_4), 17465 }, /* NEG */ -{ CPUFUNC(op_4440_4), 17472 }, /* NEG */ -{ CPUFUNC(op_4450_4), 17488 }, /* NEG */ -{ CPUFUNC(op_4458_4), 17496 }, /* NEG */ -{ CPUFUNC(op_4460_4), 17504 }, /* NEG */ -{ CPUFUNC(op_4468_4), 17512 }, /* NEG */ -{ CPUFUNC(op_4470_4), 17520 }, /* NEG */ -{ CPUFUNC(op_4478_4), 17528 }, /* NEG */ -{ CPUFUNC(op_4479_4), 17529 }, /* NEG */ -{ CPUFUNC(op_4480_4), 17536 }, /* NEG */ -{ CPUFUNC(op_4490_4), 17552 }, /* NEG */ -{ CPUFUNC(op_4498_4), 17560 }, /* NEG */ -{ CPUFUNC(op_44a0_4), 17568 }, /* NEG */ -{ CPUFUNC(op_44a8_4), 17576 }, /* NEG */ -{ CPUFUNC(op_44b0_4), 17584 }, /* NEG */ -{ CPUFUNC(op_44b8_4), 17592 }, /* NEG */ -{ CPUFUNC(op_44b9_4), 17593 }, /* NEG */ -{ CPUFUNC(op_44c0_4), 17600 }, /* MV2SR */ -{ CPUFUNC(op_44d0_4), 17616 }, /* MV2SR */ -{ CPUFUNC(op_44d8_4), 17624 }, /* MV2SR */ -{ CPUFUNC(op_44e0_4), 17632 }, /* MV2SR */ -{ CPUFUNC(op_44e8_4), 17640 }, /* MV2SR */ -{ CPUFUNC(op_44f0_4), 17648 }, /* MV2SR */ -{ CPUFUNC(op_44f8_4), 17656 }, /* MV2SR */ -{ CPUFUNC(op_44f9_4), 17657 }, /* MV2SR */ -{ CPUFUNC(op_44fa_4), 17658 }, /* MV2SR */ -{ CPUFUNC(op_44fb_4), 17659 }, /* MV2SR */ -{ CPUFUNC(op_44fc_4), 17660 }, /* MV2SR */ -{ CPUFUNC(op_4600_4), 17920 }, /* NOT */ -{ CPUFUNC(op_4610_4), 17936 }, /* NOT */ -{ CPUFUNC(op_4618_4), 17944 }, /* NOT */ -{ CPUFUNC(op_4620_4), 17952 }, /* NOT */ -{ CPUFUNC(op_4628_4), 17960 }, /* NOT */ -{ CPUFUNC(op_4630_4), 17968 }, /* NOT */ -{ CPUFUNC(op_4638_4), 17976 }, /* NOT */ -{ CPUFUNC(op_4639_4), 17977 }, /* NOT */ -{ CPUFUNC(op_4640_4), 17984 }, /* NOT */ -{ CPUFUNC(op_4650_4), 18000 }, /* NOT */ -{ CPUFUNC(op_4658_4), 18008 }, /* NOT */ -{ CPUFUNC(op_4660_4), 18016 }, /* NOT */ -{ CPUFUNC(op_4668_4), 18024 }, /* NOT */ -{ CPUFUNC(op_4670_4), 18032 }, /* NOT */ -{ CPUFUNC(op_4678_4), 18040 }, /* NOT */ -{ CPUFUNC(op_4679_4), 18041 }, /* NOT */ -{ CPUFUNC(op_4680_4), 18048 }, /* NOT */ -{ CPUFUNC(op_4690_4), 18064 }, /* NOT */ -{ CPUFUNC(op_4698_4), 18072 }, /* NOT */ -{ CPUFUNC(op_46a0_4), 18080 }, /* NOT */ -{ CPUFUNC(op_46a8_4), 18088 }, /* NOT */ -{ CPUFUNC(op_46b0_4), 18096 }, /* NOT */ -{ CPUFUNC(op_46b8_4), 18104 }, /* NOT */ -{ CPUFUNC(op_46b9_4), 18105 }, /* NOT */ -{ CPUFUNC(op_46c0_4), 18112 }, /* MV2SR */ -{ CPUFUNC(op_46d0_4), 18128 }, /* MV2SR */ -{ CPUFUNC(op_46d8_4), 18136 }, /* MV2SR */ -{ CPUFUNC(op_46e0_4), 18144 }, /* MV2SR */ -{ CPUFUNC(op_46e8_4), 18152 }, /* MV2SR */ -{ CPUFUNC(op_46f0_4), 18160 }, /* MV2SR */ -{ CPUFUNC(op_46f8_4), 18168 }, /* MV2SR */ -{ CPUFUNC(op_46f9_4), 18169 }, /* MV2SR */ -{ CPUFUNC(op_46fa_4), 18170 }, /* MV2SR */ -{ CPUFUNC(op_46fb_4), 18171 }, /* MV2SR */ -{ CPUFUNC(op_46fc_4), 18172 }, /* MV2SR */ -{ CPUFUNC(op_4800_4), 18432 }, /* NBCD */ -{ CPUFUNC(op_4810_4), 18448 }, /* NBCD */ -{ CPUFUNC(op_4818_4), 18456 }, /* NBCD */ -{ CPUFUNC(op_4820_4), 18464 }, /* NBCD */ -{ CPUFUNC(op_4828_4), 18472 }, /* NBCD */ -{ CPUFUNC(op_4830_4), 18480 }, /* NBCD */ -{ CPUFUNC(op_4838_4), 18488 }, /* NBCD */ -{ CPUFUNC(op_4839_4), 18489 }, /* NBCD */ -{ CPUFUNC(op_4840_4), 18496 }, /* SWAP */ -{ CPUFUNC(op_4850_4), 18512 }, /* PEA */ -{ CPUFUNC(op_4868_4), 18536 }, /* PEA */ -{ CPUFUNC(op_4870_4), 18544 }, /* PEA */ -{ CPUFUNC(op_4878_4), 18552 }, /* PEA */ -{ CPUFUNC(op_4879_4), 18553 }, /* PEA */ -{ CPUFUNC(op_487a_4), 18554 }, /* PEA */ -{ CPUFUNC(op_487b_4), 18555 }, /* PEA */ -{ CPUFUNC(op_4880_4), 18560 }, /* EXT */ -{ CPUFUNC(op_4890_4), 18576 }, /* MVMLE */ -{ CPUFUNC(op_48a0_4), 18592 }, /* MVMLE */ -{ CPUFUNC(op_48a8_4), 18600 }, /* MVMLE */ -{ CPUFUNC(op_48b0_4), 18608 }, /* MVMLE */ -{ CPUFUNC(op_48b8_4), 18616 }, /* MVMLE */ -{ CPUFUNC(op_48b9_4), 18617 }, /* MVMLE */ -{ CPUFUNC(op_48c0_4), 18624 }, /* EXT */ -{ CPUFUNC(op_48d0_4), 18640 }, /* MVMLE */ -{ CPUFUNC(op_48e0_4), 18656 }, /* MVMLE */ -{ CPUFUNC(op_48e8_4), 18664 }, /* MVMLE */ -{ CPUFUNC(op_48f0_4), 18672 }, /* MVMLE */ -{ CPUFUNC(op_48f8_4), 18680 }, /* MVMLE */ -{ CPUFUNC(op_48f9_4), 18681 }, /* MVMLE */ -{ CPUFUNC(op_4a00_4), 18944 }, /* TST */ -{ CPUFUNC(op_4a10_4), 18960 }, /* TST */ -{ CPUFUNC(op_4a18_4), 18968 }, /* TST */ -{ CPUFUNC(op_4a20_4), 18976 }, /* TST */ -{ CPUFUNC(op_4a28_4), 18984 }, /* TST */ -{ CPUFUNC(op_4a30_4), 18992 }, /* TST */ -{ CPUFUNC(op_4a38_4), 19000 }, /* TST */ -{ CPUFUNC(op_4a39_4), 19001 }, /* TST */ -{ CPUFUNC(op_4a3c_4), 19004 }, /* TST */ -{ CPUFUNC(op_4a40_4), 19008 }, /* TST */ -{ CPUFUNC(op_4a50_4), 19024 }, /* TST */ -{ CPUFUNC(op_4a58_4), 19032 }, /* TST */ -{ CPUFUNC(op_4a60_4), 19040 }, /* TST */ -{ CPUFUNC(op_4a68_4), 19048 }, /* TST */ -{ CPUFUNC(op_4a70_4), 19056 }, /* TST */ -{ CPUFUNC(op_4a78_4), 19064 }, /* TST */ -{ CPUFUNC(op_4a79_4), 19065 }, /* TST */ -{ CPUFUNC(op_4a7c_4), 19068 }, /* TST */ -{ CPUFUNC(op_4a80_4), 19072 }, /* TST */ -{ CPUFUNC(op_4a90_4), 19088 }, /* TST */ -{ CPUFUNC(op_4a98_4), 19096 }, /* TST */ -{ CPUFUNC(op_4aa0_4), 19104 }, /* TST */ -{ CPUFUNC(op_4aa8_4), 19112 }, /* TST */ -{ CPUFUNC(op_4ab0_4), 19120 }, /* TST */ -{ CPUFUNC(op_4ab8_4), 19128 }, /* TST */ -{ CPUFUNC(op_4ab9_4), 19129 }, /* TST */ -{ CPUFUNC(op_4abc_4), 19132 }, /* TST */ -{ CPUFUNC(op_4ac0_4), 19136 }, /* TAS */ -{ CPUFUNC(op_4ad0_4), 19152 }, /* TAS */ -{ CPUFUNC(op_4ad8_4), 19160 }, /* TAS */ -{ CPUFUNC(op_4ae0_4), 19168 }, /* TAS */ -{ CPUFUNC(op_4ae8_4), 19176 }, /* TAS */ -{ CPUFUNC(op_4af0_4), 19184 }, /* TAS */ -{ CPUFUNC(op_4af8_4), 19192 }, /* TAS */ -{ CPUFUNC(op_4af9_4), 19193 }, /* TAS */ -{ CPUFUNC(op_4c90_4), 19600 }, /* MVMEL */ -{ CPUFUNC(op_4c98_4), 19608 }, /* MVMEL */ -{ CPUFUNC(op_4ca8_4), 19624 }, /* MVMEL */ -{ CPUFUNC(op_4cb0_4), 19632 }, /* MVMEL */ -{ CPUFUNC(op_4cb8_4), 19640 }, /* MVMEL */ -{ CPUFUNC(op_4cb9_4), 19641 }, /* MVMEL */ -{ CPUFUNC(op_4cba_4), 19642 }, /* MVMEL */ -{ CPUFUNC(op_4cbb_4), 19643 }, /* MVMEL */ -{ CPUFUNC(op_4cd0_4), 19664 }, /* MVMEL */ -{ CPUFUNC(op_4cd8_4), 19672 }, /* MVMEL */ -{ CPUFUNC(op_4ce8_4), 19688 }, /* MVMEL */ -{ CPUFUNC(op_4cf0_4), 19696 }, /* MVMEL */ -{ CPUFUNC(op_4cf8_4), 19704 }, /* MVMEL */ -{ CPUFUNC(op_4cf9_4), 19705 }, /* MVMEL */ -{ CPUFUNC(op_4cfa_4), 19706 }, /* MVMEL */ -{ CPUFUNC(op_4cfb_4), 19707 }, /* MVMEL */ -{ CPUFUNC(op_4e40_4), 20032 }, /* TRAP */ -{ CPUFUNC(op_4e50_4), 20048 }, /* LINK */ -{ CPUFUNC(op_4e58_4), 20056 }, /* UNLK */ -{ CPUFUNC(op_4e60_4), 20064 }, /* MVR2USP */ -{ CPUFUNC(op_4e68_4), 20072 }, /* MVUSP2R */ -{ CPUFUNC(op_4e70_4), 20080 }, /* RESET */ -{ CPUFUNC(op_4e71_4), 20081 }, /* NOP */ -{ CPUFUNC(op_4e72_4), 20082 }, /* STOP */ -{ CPUFUNC(op_4e73_5), 20083 }, /* RTE */ -{ CPUFUNC(op_4e74_4), 20084 }, /* RTD */ -{ CPUFUNC(op_4e75_4), 20085 }, /* RTS */ -{ CPUFUNC(op_4e76_4), 20086 }, /* TRAPV */ -{ CPUFUNC(op_4e77_4), 20087 }, /* RTR */ -{ CPUFUNC(op_4e90_4), 20112 }, /* JSR */ -{ CPUFUNC(op_4ea8_4), 20136 }, /* JSR */ -{ CPUFUNC(op_4eb0_4), 20144 }, /* JSR */ -{ CPUFUNC(op_4eb8_4), 20152 }, /* JSR */ -{ CPUFUNC(op_4eb9_4), 20153 }, /* JSR */ -{ CPUFUNC(op_4eba_4), 20154 }, /* JSR */ -{ CPUFUNC(op_4ebb_4), 20155 }, /* JSR */ -{ CPUFUNC(op_4ed0_4), 20176 }, /* JMP */ -{ CPUFUNC(op_4ee8_4), 20200 }, /* JMP */ -{ CPUFUNC(op_4ef0_4), 20208 }, /* JMP */ -{ CPUFUNC(op_4ef8_4), 20216 }, /* JMP */ -{ CPUFUNC(op_4ef9_4), 20217 }, /* JMP */ -{ CPUFUNC(op_4efa_4), 20218 }, /* JMP */ -{ CPUFUNC(op_4efb_4), 20219 }, /* JMP */ -{ CPUFUNC(op_5000_4), 20480 }, /* ADD */ -{ CPUFUNC(op_5010_4), 20496 }, /* ADD */ -{ CPUFUNC(op_5018_4), 20504 }, /* ADD */ -{ CPUFUNC(op_5020_4), 20512 }, /* ADD */ -{ CPUFUNC(op_5028_4), 20520 }, /* ADD */ -{ CPUFUNC(op_5030_4), 20528 }, /* ADD */ -{ CPUFUNC(op_5038_4), 20536 }, /* ADD */ -{ CPUFUNC(op_5039_4), 20537 }, /* ADD */ -{ CPUFUNC(op_5040_4), 20544 }, /* ADD */ -{ CPUFUNC(op_5048_4), 20552 }, /* ADDA */ -{ CPUFUNC(op_5050_4), 20560 }, /* ADD */ -{ CPUFUNC(op_5058_4), 20568 }, /* ADD */ -{ CPUFUNC(op_5060_4), 20576 }, /* ADD */ -{ CPUFUNC(op_5068_4), 20584 }, /* ADD */ -{ CPUFUNC(op_5070_4), 20592 }, /* ADD */ -{ CPUFUNC(op_5078_4), 20600 }, /* ADD */ -{ CPUFUNC(op_5079_4), 20601 }, /* ADD */ -{ CPUFUNC(op_5080_4), 20608 }, /* ADD */ -{ CPUFUNC(op_5088_4), 20616 }, /* ADDA */ -{ CPUFUNC(op_5090_4), 20624 }, /* ADD */ -{ CPUFUNC(op_5098_4), 20632 }, /* ADD */ -{ CPUFUNC(op_50a0_4), 20640 }, /* ADD */ -{ CPUFUNC(op_50a8_4), 20648 }, /* ADD */ -{ CPUFUNC(op_50b0_4), 20656 }, /* ADD */ -{ CPUFUNC(op_50b8_4), 20664 }, /* ADD */ -{ CPUFUNC(op_50b9_4), 20665 }, /* ADD */ -{ CPUFUNC(op_50c0_4), 20672 }, /* Scc */ -{ CPUFUNC(op_50c8_4), 20680 }, /* DBcc */ -{ CPUFUNC(op_50d0_4), 20688 }, /* Scc */ -{ CPUFUNC(op_50d8_4), 20696 }, /* Scc */ -{ CPUFUNC(op_50e0_4), 20704 }, /* Scc */ -{ CPUFUNC(op_50e8_4), 20712 }, /* Scc */ -{ CPUFUNC(op_50f0_4), 20720 }, /* Scc */ -{ CPUFUNC(op_50f8_4), 20728 }, /* Scc */ -{ CPUFUNC(op_50f9_4), 20729 }, /* Scc */ -{ CPUFUNC(op_5100_4), 20736 }, /* SUB */ -{ CPUFUNC(op_5110_4), 20752 }, /* SUB */ -{ CPUFUNC(op_5118_4), 20760 }, /* SUB */ -{ CPUFUNC(op_5120_4), 20768 }, /* SUB */ -{ CPUFUNC(op_5128_4), 20776 }, /* SUB */ -{ CPUFUNC(op_5130_4), 20784 }, /* SUB */ -{ CPUFUNC(op_5138_4), 20792 }, /* SUB */ -{ CPUFUNC(op_5139_4), 20793 }, /* SUB */ -{ CPUFUNC(op_5140_4), 20800 }, /* SUB */ -{ CPUFUNC(op_5148_4), 20808 }, /* SUBA */ -{ CPUFUNC(op_5150_4), 20816 }, /* SUB */ -{ CPUFUNC(op_5158_4), 20824 }, /* SUB */ -{ CPUFUNC(op_5160_4), 20832 }, /* SUB */ -{ CPUFUNC(op_5168_4), 20840 }, /* SUB */ -{ CPUFUNC(op_5170_4), 20848 }, /* SUB */ -{ CPUFUNC(op_5178_4), 20856 }, /* SUB */ -{ CPUFUNC(op_5179_4), 20857 }, /* SUB */ -{ CPUFUNC(op_5180_4), 20864 }, /* SUB */ -{ CPUFUNC(op_5188_4), 20872 }, /* SUBA */ -{ CPUFUNC(op_5190_4), 20880 }, /* SUB */ -{ CPUFUNC(op_5198_4), 20888 }, /* SUB */ -{ CPUFUNC(op_51a0_4), 20896 }, /* SUB */ -{ CPUFUNC(op_51a8_4), 20904 }, /* SUB */ -{ CPUFUNC(op_51b0_4), 20912 }, /* SUB */ -{ CPUFUNC(op_51b8_4), 20920 }, /* SUB */ -{ CPUFUNC(op_51b9_4), 20921 }, /* SUB */ -{ CPUFUNC(op_51c0_4), 20928 }, /* Scc */ -{ CPUFUNC(op_51c8_4), 20936 }, /* DBcc */ -{ CPUFUNC(op_51d0_4), 20944 }, /* Scc */ -{ CPUFUNC(op_51d8_4), 20952 }, /* Scc */ -{ CPUFUNC(op_51e0_4), 20960 }, /* Scc */ -{ CPUFUNC(op_51e8_4), 20968 }, /* Scc */ -{ CPUFUNC(op_51f0_4), 20976 }, /* Scc */ -{ CPUFUNC(op_51f8_4), 20984 }, /* Scc */ -{ CPUFUNC(op_51f9_4), 20985 }, /* Scc */ -{ CPUFUNC(op_52c0_4), 21184 }, /* Scc */ -{ CPUFUNC(op_52c8_4), 21192 }, /* DBcc */ -{ CPUFUNC(op_52d0_4), 21200 }, /* Scc */ -{ CPUFUNC(op_52d8_4), 21208 }, /* Scc */ -{ CPUFUNC(op_52e0_4), 21216 }, /* Scc */ -{ CPUFUNC(op_52e8_4), 21224 }, /* Scc */ -{ CPUFUNC(op_52f0_4), 21232 }, /* Scc */ -{ CPUFUNC(op_52f8_4), 21240 }, /* Scc */ -{ CPUFUNC(op_52f9_4), 21241 }, /* Scc */ -{ CPUFUNC(op_53c0_4), 21440 }, /* Scc */ -{ CPUFUNC(op_53c8_4), 21448 }, /* DBcc */ -{ CPUFUNC(op_53d0_4), 21456 }, /* Scc */ -{ CPUFUNC(op_53d8_4), 21464 }, /* Scc */ -{ CPUFUNC(op_53e0_4), 21472 }, /* Scc */ -{ CPUFUNC(op_53e8_4), 21480 }, /* Scc */ -{ CPUFUNC(op_53f0_4), 21488 }, /* Scc */ -{ CPUFUNC(op_53f8_4), 21496 }, /* Scc */ -{ CPUFUNC(op_53f9_4), 21497 }, /* Scc */ -{ CPUFUNC(op_54c0_4), 21696 }, /* Scc */ -{ CPUFUNC(op_54c8_4), 21704 }, /* DBcc */ -{ CPUFUNC(op_54d0_4), 21712 }, /* Scc */ -{ CPUFUNC(op_54d8_4), 21720 }, /* Scc */ -{ CPUFUNC(op_54e0_4), 21728 }, /* Scc */ -{ CPUFUNC(op_54e8_4), 21736 }, /* Scc */ -{ CPUFUNC(op_54f0_4), 21744 }, /* Scc */ -{ CPUFUNC(op_54f8_4), 21752 }, /* Scc */ -{ CPUFUNC(op_54f9_4), 21753 }, /* Scc */ -{ CPUFUNC(op_55c0_4), 21952 }, /* Scc */ -{ CPUFUNC(op_55c8_4), 21960 }, /* DBcc */ -{ CPUFUNC(op_55d0_4), 21968 }, /* Scc */ -{ CPUFUNC(op_55d8_4), 21976 }, /* Scc */ -{ CPUFUNC(op_55e0_4), 21984 }, /* Scc */ -{ CPUFUNC(op_55e8_4), 21992 }, /* Scc */ -{ CPUFUNC(op_55f0_4), 22000 }, /* Scc */ -{ CPUFUNC(op_55f8_4), 22008 }, /* Scc */ -{ CPUFUNC(op_55f9_4), 22009 }, /* Scc */ -{ CPUFUNC(op_56c0_4), 22208 }, /* Scc */ -{ CPUFUNC(op_56c8_4), 22216 }, /* DBcc */ -{ CPUFUNC(op_56d0_4), 22224 }, /* Scc */ -{ CPUFUNC(op_56d8_4), 22232 }, /* Scc */ -{ CPUFUNC(op_56e0_4), 22240 }, /* Scc */ -{ CPUFUNC(op_56e8_4), 22248 }, /* Scc */ -{ CPUFUNC(op_56f0_4), 22256 }, /* Scc */ -{ CPUFUNC(op_56f8_4), 22264 }, /* Scc */ -{ CPUFUNC(op_56f9_4), 22265 }, /* Scc */ -{ CPUFUNC(op_57c0_4), 22464 }, /* Scc */ -{ CPUFUNC(op_57c8_4), 22472 }, /* DBcc */ -{ CPUFUNC(op_57d0_4), 22480 }, /* Scc */ -{ CPUFUNC(op_57d8_4), 22488 }, /* Scc */ -{ CPUFUNC(op_57e0_4), 22496 }, /* Scc */ -{ CPUFUNC(op_57e8_4), 22504 }, /* Scc */ -{ CPUFUNC(op_57f0_4), 22512 }, /* Scc */ -{ CPUFUNC(op_57f8_4), 22520 }, /* Scc */ -{ CPUFUNC(op_57f9_4), 22521 }, /* Scc */ -{ CPUFUNC(op_58c0_4), 22720 }, /* Scc */ -{ CPUFUNC(op_58c8_4), 22728 }, /* DBcc */ -{ CPUFUNC(op_58d0_4), 22736 }, /* Scc */ -{ CPUFUNC(op_58d8_4), 22744 }, /* Scc */ -{ CPUFUNC(op_58e0_4), 22752 }, /* Scc */ -{ CPUFUNC(op_58e8_4), 22760 }, /* Scc */ -{ CPUFUNC(op_58f0_4), 22768 }, /* Scc */ -{ CPUFUNC(op_58f8_4), 22776 }, /* Scc */ -{ CPUFUNC(op_58f9_4), 22777 }, /* Scc */ -{ CPUFUNC(op_59c0_4), 22976 }, /* Scc */ -{ CPUFUNC(op_59c8_4), 22984 }, /* DBcc */ -{ CPUFUNC(op_59d0_4), 22992 }, /* Scc */ -{ CPUFUNC(op_59d8_4), 23000 }, /* Scc */ -{ CPUFUNC(op_59e0_4), 23008 }, /* Scc */ -{ CPUFUNC(op_59e8_4), 23016 }, /* Scc */ -{ CPUFUNC(op_59f0_4), 23024 }, /* Scc */ -{ CPUFUNC(op_59f8_4), 23032 }, /* Scc */ -{ CPUFUNC(op_59f9_4), 23033 }, /* Scc */ -{ CPUFUNC(op_5ac0_4), 23232 }, /* Scc */ -{ CPUFUNC(op_5ac8_4), 23240 }, /* DBcc */ -{ CPUFUNC(op_5ad0_4), 23248 }, /* Scc */ -{ CPUFUNC(op_5ad8_4), 23256 }, /* Scc */ -{ CPUFUNC(op_5ae0_4), 23264 }, /* Scc */ -{ CPUFUNC(op_5ae8_4), 23272 }, /* Scc */ -{ CPUFUNC(op_5af0_4), 23280 }, /* Scc */ -{ CPUFUNC(op_5af8_4), 23288 }, /* Scc */ -{ CPUFUNC(op_5af9_4), 23289 }, /* Scc */ -{ CPUFUNC(op_5bc0_4), 23488 }, /* Scc */ -{ CPUFUNC(op_5bc8_4), 23496 }, /* DBcc */ -{ CPUFUNC(op_5bd0_4), 23504 }, /* Scc */ -{ CPUFUNC(op_5bd8_4), 23512 }, /* Scc */ -{ CPUFUNC(op_5be0_4), 23520 }, /* Scc */ -{ CPUFUNC(op_5be8_4), 23528 }, /* Scc */ -{ CPUFUNC(op_5bf0_4), 23536 }, /* Scc */ -{ CPUFUNC(op_5bf8_4), 23544 }, /* Scc */ -{ CPUFUNC(op_5bf9_4), 23545 }, /* Scc */ -{ CPUFUNC(op_5cc0_4), 23744 }, /* Scc */ -{ CPUFUNC(op_5cc8_4), 23752 }, /* DBcc */ -{ CPUFUNC(op_5cd0_4), 23760 }, /* Scc */ -{ CPUFUNC(op_5cd8_4), 23768 }, /* Scc */ -{ CPUFUNC(op_5ce0_4), 23776 }, /* Scc */ -{ CPUFUNC(op_5ce8_4), 23784 }, /* Scc */ -{ CPUFUNC(op_5cf0_4), 23792 }, /* Scc */ -{ CPUFUNC(op_5cf8_4), 23800 }, /* Scc */ -{ CPUFUNC(op_5cf9_4), 23801 }, /* Scc */ -{ CPUFUNC(op_5dc0_4), 24000 }, /* Scc */ -{ CPUFUNC(op_5dc8_4), 24008 }, /* DBcc */ -{ CPUFUNC(op_5dd0_4), 24016 }, /* Scc */ -{ CPUFUNC(op_5dd8_4), 24024 }, /* Scc */ -{ CPUFUNC(op_5de0_4), 24032 }, /* Scc */ -{ CPUFUNC(op_5de8_4), 24040 }, /* Scc */ -{ CPUFUNC(op_5df0_4), 24048 }, /* Scc */ -{ CPUFUNC(op_5df8_4), 24056 }, /* Scc */ -{ CPUFUNC(op_5df9_4), 24057 }, /* Scc */ -{ CPUFUNC(op_5ec0_4), 24256 }, /* Scc */ -{ CPUFUNC(op_5ec8_4), 24264 }, /* DBcc */ -{ CPUFUNC(op_5ed0_4), 24272 }, /* Scc */ -{ CPUFUNC(op_5ed8_4), 24280 }, /* Scc */ -{ CPUFUNC(op_5ee0_4), 24288 }, /* Scc */ -{ CPUFUNC(op_5ee8_4), 24296 }, /* Scc */ -{ CPUFUNC(op_5ef0_4), 24304 }, /* Scc */ -{ CPUFUNC(op_5ef8_4), 24312 }, /* Scc */ -{ CPUFUNC(op_5ef9_4), 24313 }, /* Scc */ -{ CPUFUNC(op_5fc0_4), 24512 }, /* Scc */ -{ CPUFUNC(op_5fc8_4), 24520 }, /* DBcc */ -{ CPUFUNC(op_5fd0_4), 24528 }, /* Scc */ -{ CPUFUNC(op_5fd8_4), 24536 }, /* Scc */ -{ CPUFUNC(op_5fe0_4), 24544 }, /* Scc */ -{ CPUFUNC(op_5fe8_4), 24552 }, /* Scc */ -{ CPUFUNC(op_5ff0_4), 24560 }, /* Scc */ -{ CPUFUNC(op_5ff8_4), 24568 }, /* Scc */ -{ CPUFUNC(op_5ff9_4), 24569 }, /* Scc */ -{ CPUFUNC(op_6000_4), 24576 }, /* Bcc */ -{ CPUFUNC(op_6001_4), 24577 }, /* Bcc */ -{ CPUFUNC(op_60ff_4), 24831 }, /* Bcc */ -{ CPUFUNC(op_6100_4), 24832 }, /* BSR */ -{ CPUFUNC(op_6101_4), 24833 }, /* BSR */ -{ CPUFUNC(op_61ff_4), 25087 }, /* BSR */ -{ CPUFUNC(op_6200_4), 25088 }, /* Bcc */ -{ CPUFUNC(op_6201_4), 25089 }, /* Bcc */ -{ CPUFUNC(op_62ff_4), 25343 }, /* Bcc */ -{ CPUFUNC(op_6300_4), 25344 }, /* Bcc */ -{ CPUFUNC(op_6301_4), 25345 }, /* Bcc */ -{ CPUFUNC(op_63ff_4), 25599 }, /* Bcc */ -{ CPUFUNC(op_6400_4), 25600 }, /* Bcc */ -{ CPUFUNC(op_6401_4), 25601 }, /* Bcc */ -{ CPUFUNC(op_64ff_4), 25855 }, /* Bcc */ -{ CPUFUNC(op_6500_4), 25856 }, /* Bcc */ -{ CPUFUNC(op_6501_4), 25857 }, /* Bcc */ -{ CPUFUNC(op_65ff_4), 26111 }, /* Bcc */ -{ CPUFUNC(op_6600_4), 26112 }, /* Bcc */ -{ CPUFUNC(op_6601_4), 26113 }, /* Bcc */ -{ CPUFUNC(op_66ff_4), 26367 }, /* Bcc */ -{ CPUFUNC(op_6700_4), 26368 }, /* Bcc */ -{ CPUFUNC(op_6701_4), 26369 }, /* Bcc */ -{ CPUFUNC(op_67ff_4), 26623 }, /* Bcc */ -{ CPUFUNC(op_6800_4), 26624 }, /* Bcc */ -{ CPUFUNC(op_6801_4), 26625 }, /* Bcc */ -{ CPUFUNC(op_68ff_4), 26879 }, /* Bcc */ -{ CPUFUNC(op_6900_4), 26880 }, /* Bcc */ -{ CPUFUNC(op_6901_4), 26881 }, /* Bcc */ -{ CPUFUNC(op_69ff_4), 27135 }, /* Bcc */ -{ CPUFUNC(op_6a00_4), 27136 }, /* Bcc */ -{ CPUFUNC(op_6a01_4), 27137 }, /* Bcc */ -{ CPUFUNC(op_6aff_4), 27391 }, /* Bcc */ -{ CPUFUNC(op_6b00_4), 27392 }, /* Bcc */ -{ CPUFUNC(op_6b01_4), 27393 }, /* Bcc */ -{ CPUFUNC(op_6bff_4), 27647 }, /* Bcc */ -{ CPUFUNC(op_6c00_4), 27648 }, /* Bcc */ -{ CPUFUNC(op_6c01_4), 27649 }, /* Bcc */ -{ CPUFUNC(op_6cff_4), 27903 }, /* Bcc */ -{ CPUFUNC(op_6d00_4), 27904 }, /* Bcc */ -{ CPUFUNC(op_6d01_4), 27905 }, /* Bcc */ -{ CPUFUNC(op_6dff_4), 28159 }, /* Bcc */ -{ CPUFUNC(op_6e00_4), 28160 }, /* Bcc */ -{ CPUFUNC(op_6e01_4), 28161 }, /* Bcc */ -{ CPUFUNC(op_6eff_4), 28415 }, /* Bcc */ -{ CPUFUNC(op_6f00_4), 28416 }, /* Bcc */ -{ CPUFUNC(op_6f01_4), 28417 }, /* Bcc */ -{ CPUFUNC(op_6fff_4), 28671 }, /* Bcc */ -{ CPUFUNC(op_7000_4), 28672 }, /* MOVE */ -{ CPUFUNC(op_8000_4), 32768 }, /* OR */ -{ CPUFUNC(op_8010_4), 32784 }, /* OR */ -{ CPUFUNC(op_8018_4), 32792 }, /* OR */ -{ CPUFUNC(op_8020_4), 32800 }, /* OR */ -{ CPUFUNC(op_8028_4), 32808 }, /* OR */ -{ CPUFUNC(op_8030_4), 32816 }, /* OR */ -{ CPUFUNC(op_8038_4), 32824 }, /* OR */ -{ CPUFUNC(op_8039_4), 32825 }, /* OR */ -{ CPUFUNC(op_803a_4), 32826 }, /* OR */ -{ CPUFUNC(op_803b_4), 32827 }, /* OR */ -{ CPUFUNC(op_803c_4), 32828 }, /* OR */ -{ CPUFUNC(op_8040_4), 32832 }, /* OR */ -{ CPUFUNC(op_8050_4), 32848 }, /* OR */ -{ CPUFUNC(op_8058_4), 32856 }, /* OR */ -{ CPUFUNC(op_8060_4), 32864 }, /* OR */ -{ CPUFUNC(op_8068_4), 32872 }, /* OR */ -{ CPUFUNC(op_8070_4), 32880 }, /* OR */ -{ CPUFUNC(op_8078_4), 32888 }, /* OR */ -{ CPUFUNC(op_8079_4), 32889 }, /* OR */ -{ CPUFUNC(op_807a_4), 32890 }, /* OR */ -{ CPUFUNC(op_807b_4), 32891 }, /* OR */ -{ CPUFUNC(op_807c_4), 32892 }, /* OR */ -{ CPUFUNC(op_8080_4), 32896 }, /* OR */ -{ CPUFUNC(op_8090_4), 32912 }, /* OR */ -{ CPUFUNC(op_8098_4), 32920 }, /* OR */ -{ CPUFUNC(op_80a0_4), 32928 }, /* OR */ -{ CPUFUNC(op_80a8_4), 32936 }, /* OR */ -{ CPUFUNC(op_80b0_4), 32944 }, /* OR */ -{ CPUFUNC(op_80b8_4), 32952 }, /* OR */ -{ CPUFUNC(op_80b9_4), 32953 }, /* OR */ -{ CPUFUNC(op_80ba_4), 32954 }, /* OR */ -{ CPUFUNC(op_80bb_4), 32955 }, /* OR */ -{ CPUFUNC(op_80bc_4), 32956 }, /* OR */ -{ CPUFUNC(op_80c0_4), 32960 }, /* DIVU */ -{ CPUFUNC(op_80d0_4), 32976 }, /* DIVU */ -{ CPUFUNC(op_80d8_4), 32984 }, /* DIVU */ -{ CPUFUNC(op_80e0_4), 32992 }, /* DIVU */ -{ CPUFUNC(op_80e8_4), 33000 }, /* DIVU */ -{ CPUFUNC(op_80f0_4), 33008 }, /* DIVU */ -{ CPUFUNC(op_80f8_4), 33016 }, /* DIVU */ -{ CPUFUNC(op_80f9_4), 33017 }, /* DIVU */ -{ CPUFUNC(op_80fa_4), 33018 }, /* DIVU */ -{ CPUFUNC(op_80fb_4), 33019 }, /* DIVU */ -{ CPUFUNC(op_80fc_4), 33020 }, /* DIVU */ -{ CPUFUNC(op_8100_4), 33024 }, /* SBCD */ -{ CPUFUNC(op_8108_4), 33032 }, /* SBCD */ -{ CPUFUNC(op_8110_4), 33040 }, /* OR */ -{ CPUFUNC(op_8118_4), 33048 }, /* OR */ -{ CPUFUNC(op_8120_4), 33056 }, /* OR */ -{ CPUFUNC(op_8128_4), 33064 }, /* OR */ -{ CPUFUNC(op_8130_4), 33072 }, /* OR */ -{ CPUFUNC(op_8138_4), 33080 }, /* OR */ -{ CPUFUNC(op_8139_4), 33081 }, /* OR */ -{ CPUFUNC(op_8150_4), 33104 }, /* OR */ -{ CPUFUNC(op_8158_4), 33112 }, /* OR */ -{ CPUFUNC(op_8160_4), 33120 }, /* OR */ -{ CPUFUNC(op_8168_4), 33128 }, /* OR */ -{ CPUFUNC(op_8170_4), 33136 }, /* OR */ -{ CPUFUNC(op_8178_4), 33144 }, /* OR */ -{ CPUFUNC(op_8179_4), 33145 }, /* OR */ -{ CPUFUNC(op_8190_4), 33168 }, /* OR */ -{ CPUFUNC(op_8198_4), 33176 }, /* OR */ -{ CPUFUNC(op_81a0_4), 33184 }, /* OR */ -{ CPUFUNC(op_81a8_4), 33192 }, /* OR */ -{ CPUFUNC(op_81b0_4), 33200 }, /* OR */ -{ CPUFUNC(op_81b8_4), 33208 }, /* OR */ -{ CPUFUNC(op_81b9_4), 33209 }, /* OR */ -{ CPUFUNC(op_81c0_4), 33216 }, /* DIVS */ -{ CPUFUNC(op_81d0_4), 33232 }, /* DIVS */ -{ CPUFUNC(op_81d8_4), 33240 }, /* DIVS */ -{ CPUFUNC(op_81e0_4), 33248 }, /* DIVS */ -{ CPUFUNC(op_81e8_4), 33256 }, /* DIVS */ -{ CPUFUNC(op_81f0_4), 33264 }, /* DIVS */ -{ CPUFUNC(op_81f8_4), 33272 }, /* DIVS */ -{ CPUFUNC(op_81f9_4), 33273 }, /* DIVS */ -{ CPUFUNC(op_81fa_4), 33274 }, /* DIVS */ -{ CPUFUNC(op_81fb_4), 33275 }, /* DIVS */ -{ CPUFUNC(op_81fc_4), 33276 }, /* DIVS */ -{ CPUFUNC(op_9000_4), 36864 }, /* SUB */ -{ CPUFUNC(op_9010_4), 36880 }, /* SUB */ -{ CPUFUNC(op_9018_4), 36888 }, /* SUB */ -{ CPUFUNC(op_9020_4), 36896 }, /* SUB */ -{ CPUFUNC(op_9028_4), 36904 }, /* SUB */ -{ CPUFUNC(op_9030_4), 36912 }, /* SUB */ -{ CPUFUNC(op_9038_4), 36920 }, /* SUB */ -{ CPUFUNC(op_9039_4), 36921 }, /* SUB */ -{ CPUFUNC(op_903a_4), 36922 }, /* SUB */ -{ CPUFUNC(op_903b_4), 36923 }, /* SUB */ -{ CPUFUNC(op_903c_4), 36924 }, /* SUB */ -{ CPUFUNC(op_9040_4), 36928 }, /* SUB */ -{ CPUFUNC(op_9048_4), 36936 }, /* SUB */ -{ CPUFUNC(op_9050_4), 36944 }, /* SUB */ -{ CPUFUNC(op_9058_4), 36952 }, /* SUB */ -{ CPUFUNC(op_9060_4), 36960 }, /* SUB */ -{ CPUFUNC(op_9068_4), 36968 }, /* SUB */ -{ CPUFUNC(op_9070_4), 36976 }, /* SUB */ -{ CPUFUNC(op_9078_4), 36984 }, /* SUB */ -{ CPUFUNC(op_9079_4), 36985 }, /* SUB */ -{ CPUFUNC(op_907a_4), 36986 }, /* SUB */ -{ CPUFUNC(op_907b_4), 36987 }, /* SUB */ -{ CPUFUNC(op_907c_4), 36988 }, /* SUB */ -{ CPUFUNC(op_9080_4), 36992 }, /* SUB */ -{ CPUFUNC(op_9088_4), 37000 }, /* SUB */ -{ CPUFUNC(op_9090_4), 37008 }, /* SUB */ -{ CPUFUNC(op_9098_4), 37016 }, /* SUB */ -{ CPUFUNC(op_90a0_4), 37024 }, /* SUB */ -{ CPUFUNC(op_90a8_4), 37032 }, /* SUB */ -{ CPUFUNC(op_90b0_4), 37040 }, /* SUB */ -{ CPUFUNC(op_90b8_4), 37048 }, /* SUB */ -{ CPUFUNC(op_90b9_4), 37049 }, /* SUB */ -{ CPUFUNC(op_90ba_4), 37050 }, /* SUB */ -{ CPUFUNC(op_90bb_4), 37051 }, /* SUB */ -{ CPUFUNC(op_90bc_4), 37052 }, /* SUB */ -{ CPUFUNC(op_90c0_4), 37056 }, /* SUBA */ -{ CPUFUNC(op_90c8_4), 37064 }, /* SUBA */ -{ CPUFUNC(op_90d0_4), 37072 }, /* SUBA */ -{ CPUFUNC(op_90d8_4), 37080 }, /* SUBA */ -{ CPUFUNC(op_90e0_4), 37088 }, /* SUBA */ -{ CPUFUNC(op_90e8_4), 37096 }, /* SUBA */ -{ CPUFUNC(op_90f0_4), 37104 }, /* SUBA */ -{ CPUFUNC(op_90f8_4), 37112 }, /* SUBA */ -{ CPUFUNC(op_90f9_4), 37113 }, /* SUBA */ -{ CPUFUNC(op_90fa_4), 37114 }, /* SUBA */ -{ CPUFUNC(op_90fb_4), 37115 }, /* SUBA */ -{ CPUFUNC(op_90fc_4), 37116 }, /* SUBA */ -{ CPUFUNC(op_9100_4), 37120 }, /* SUBX */ -{ CPUFUNC(op_9108_4), 37128 }, /* SUBX */ -{ CPUFUNC(op_9110_4), 37136 }, /* SUB */ -{ CPUFUNC(op_9118_4), 37144 }, /* SUB */ -{ CPUFUNC(op_9120_4), 37152 }, /* SUB */ -{ CPUFUNC(op_9128_4), 37160 }, /* SUB */ -{ CPUFUNC(op_9130_4), 37168 }, /* SUB */ -{ CPUFUNC(op_9138_4), 37176 }, /* SUB */ -{ CPUFUNC(op_9139_4), 37177 }, /* SUB */ -{ CPUFUNC(op_9140_4), 37184 }, /* SUBX */ -{ CPUFUNC(op_9148_4), 37192 }, /* SUBX */ -{ CPUFUNC(op_9150_4), 37200 }, /* SUB */ -{ CPUFUNC(op_9158_4), 37208 }, /* SUB */ -{ CPUFUNC(op_9160_4), 37216 }, /* SUB */ -{ CPUFUNC(op_9168_4), 37224 }, /* SUB */ -{ CPUFUNC(op_9170_4), 37232 }, /* SUB */ -{ CPUFUNC(op_9178_4), 37240 }, /* SUB */ -{ CPUFUNC(op_9179_4), 37241 }, /* SUB */ -{ CPUFUNC(op_9180_4), 37248 }, /* SUBX */ -{ CPUFUNC(op_9188_4), 37256 }, /* SUBX */ -{ CPUFUNC(op_9190_4), 37264 }, /* SUB */ -{ CPUFUNC(op_9198_4), 37272 }, /* SUB */ -{ CPUFUNC(op_91a0_4), 37280 }, /* SUB */ -{ CPUFUNC(op_91a8_4), 37288 }, /* SUB */ -{ CPUFUNC(op_91b0_4), 37296 }, /* SUB */ -{ CPUFUNC(op_91b8_4), 37304 }, /* SUB */ -{ CPUFUNC(op_91b9_4), 37305 }, /* SUB */ -{ CPUFUNC(op_91c0_4), 37312 }, /* SUBA */ -{ CPUFUNC(op_91c8_4), 37320 }, /* SUBA */ -{ CPUFUNC(op_91d0_4), 37328 }, /* SUBA */ -{ CPUFUNC(op_91d8_4), 37336 }, /* SUBA */ -{ CPUFUNC(op_91e0_4), 37344 }, /* SUBA */ -{ CPUFUNC(op_91e8_4), 37352 }, /* SUBA */ -{ CPUFUNC(op_91f0_4), 37360 }, /* SUBA */ -{ CPUFUNC(op_91f8_4), 37368 }, /* SUBA */ -{ CPUFUNC(op_91f9_4), 37369 }, /* SUBA */ -{ CPUFUNC(op_91fa_4), 37370 }, /* SUBA */ -{ CPUFUNC(op_91fb_4), 37371 }, /* SUBA */ -{ CPUFUNC(op_91fc_4), 37372 }, /* SUBA */ -{ CPUFUNC(op_b000_4), 45056 }, /* CMP */ -{ CPUFUNC(op_b010_4), 45072 }, /* CMP */ -{ CPUFUNC(op_b018_4), 45080 }, /* CMP */ -{ CPUFUNC(op_b020_4), 45088 }, /* CMP */ -{ CPUFUNC(op_b028_4), 45096 }, /* CMP */ -{ CPUFUNC(op_b030_4), 45104 }, /* CMP */ -{ CPUFUNC(op_b038_4), 45112 }, /* CMP */ -{ CPUFUNC(op_b039_4), 45113 }, /* CMP */ -{ CPUFUNC(op_b03a_4), 45114 }, /* CMP */ -{ CPUFUNC(op_b03b_4), 45115 }, /* CMP */ -{ CPUFUNC(op_b03c_4), 45116 }, /* CMP */ -{ CPUFUNC(op_b040_4), 45120 }, /* CMP */ -{ CPUFUNC(op_b048_4), 45128 }, /* CMP */ -{ CPUFUNC(op_b050_4), 45136 }, /* CMP */ -{ CPUFUNC(op_b058_4), 45144 }, /* CMP */ -{ CPUFUNC(op_b060_4), 45152 }, /* CMP */ -{ CPUFUNC(op_b068_4), 45160 }, /* CMP */ -{ CPUFUNC(op_b070_4), 45168 }, /* CMP */ -{ CPUFUNC(op_b078_4), 45176 }, /* CMP */ -{ CPUFUNC(op_b079_4), 45177 }, /* CMP */ -{ CPUFUNC(op_b07a_4), 45178 }, /* CMP */ -{ CPUFUNC(op_b07b_4), 45179 }, /* CMP */ -{ CPUFUNC(op_b07c_4), 45180 }, /* CMP */ -{ CPUFUNC(op_b080_4), 45184 }, /* CMP */ -{ CPUFUNC(op_b088_4), 45192 }, /* CMP */ -{ CPUFUNC(op_b090_4), 45200 }, /* CMP */ -{ CPUFUNC(op_b098_4), 45208 }, /* CMP */ -{ CPUFUNC(op_b0a0_4), 45216 }, /* CMP */ -{ CPUFUNC(op_b0a8_4), 45224 }, /* CMP */ -{ CPUFUNC(op_b0b0_4), 45232 }, /* CMP */ -{ CPUFUNC(op_b0b8_4), 45240 }, /* CMP */ -{ CPUFUNC(op_b0b9_4), 45241 }, /* CMP */ -{ CPUFUNC(op_b0ba_4), 45242 }, /* CMP */ -{ CPUFUNC(op_b0bb_4), 45243 }, /* CMP */ -{ CPUFUNC(op_b0bc_4), 45244 }, /* CMP */ -{ CPUFUNC(op_b0c0_4), 45248 }, /* CMPA */ -{ CPUFUNC(op_b0c8_4), 45256 }, /* CMPA */ -{ CPUFUNC(op_b0d0_4), 45264 }, /* CMPA */ -{ CPUFUNC(op_b0d8_4), 45272 }, /* CMPA */ -{ CPUFUNC(op_b0e0_4), 45280 }, /* CMPA */ -{ CPUFUNC(op_b0e8_4), 45288 }, /* CMPA */ -{ CPUFUNC(op_b0f0_4), 45296 }, /* CMPA */ -{ CPUFUNC(op_b0f8_4), 45304 }, /* CMPA */ -{ CPUFUNC(op_b0f9_4), 45305 }, /* CMPA */ -{ CPUFUNC(op_b0fa_4), 45306 }, /* CMPA */ -{ CPUFUNC(op_b0fb_4), 45307 }, /* CMPA */ -{ CPUFUNC(op_b0fc_4), 45308 }, /* CMPA */ -{ CPUFUNC(op_b100_4), 45312 }, /* EOR */ -{ CPUFUNC(op_b108_4), 45320 }, /* CMPM */ -{ CPUFUNC(op_b110_4), 45328 }, /* EOR */ -{ CPUFUNC(op_b118_4), 45336 }, /* EOR */ -{ CPUFUNC(op_b120_4), 45344 }, /* EOR */ -{ CPUFUNC(op_b128_4), 45352 }, /* EOR */ -{ CPUFUNC(op_b130_4), 45360 }, /* EOR */ -{ CPUFUNC(op_b138_4), 45368 }, /* EOR */ -{ CPUFUNC(op_b139_4), 45369 }, /* EOR */ -{ CPUFUNC(op_b140_4), 45376 }, /* EOR */ -{ CPUFUNC(op_b148_4), 45384 }, /* CMPM */ -{ CPUFUNC(op_b150_4), 45392 }, /* EOR */ -{ CPUFUNC(op_b158_4), 45400 }, /* EOR */ -{ CPUFUNC(op_b160_4), 45408 }, /* EOR */ -{ CPUFUNC(op_b168_4), 45416 }, /* EOR */ -{ CPUFUNC(op_b170_4), 45424 }, /* EOR */ -{ CPUFUNC(op_b178_4), 45432 }, /* EOR */ -{ CPUFUNC(op_b179_4), 45433 }, /* EOR */ -{ CPUFUNC(op_b180_4), 45440 }, /* EOR */ -{ CPUFUNC(op_b188_4), 45448 }, /* CMPM */ -{ CPUFUNC(op_b190_4), 45456 }, /* EOR */ -{ CPUFUNC(op_b198_4), 45464 }, /* EOR */ -{ CPUFUNC(op_b1a0_4), 45472 }, /* EOR */ -{ CPUFUNC(op_b1a8_4), 45480 }, /* EOR */ -{ CPUFUNC(op_b1b0_4), 45488 }, /* EOR */ -{ CPUFUNC(op_b1b8_4), 45496 }, /* EOR */ -{ CPUFUNC(op_b1b9_4), 45497 }, /* EOR */ -{ CPUFUNC(op_b1c0_4), 45504 }, /* CMPA */ -{ CPUFUNC(op_b1c8_4), 45512 }, /* CMPA */ -{ CPUFUNC(op_b1d0_4), 45520 }, /* CMPA */ -{ CPUFUNC(op_b1d8_4), 45528 }, /* CMPA */ -{ CPUFUNC(op_b1e0_4), 45536 }, /* CMPA */ -{ CPUFUNC(op_b1e8_4), 45544 }, /* CMPA */ -{ CPUFUNC(op_b1f0_4), 45552 }, /* CMPA */ -{ CPUFUNC(op_b1f8_4), 45560 }, /* CMPA */ -{ CPUFUNC(op_b1f9_4), 45561 }, /* CMPA */ -{ CPUFUNC(op_b1fa_4), 45562 }, /* CMPA */ -{ CPUFUNC(op_b1fb_4), 45563 }, /* CMPA */ -{ CPUFUNC(op_b1fc_4), 45564 }, /* CMPA */ -{ CPUFUNC(op_c000_4), 49152 }, /* AND */ -{ CPUFUNC(op_c010_4), 49168 }, /* AND */ -{ CPUFUNC(op_c018_4), 49176 }, /* AND */ -{ CPUFUNC(op_c020_4), 49184 }, /* AND */ -{ CPUFUNC(op_c028_4), 49192 }, /* AND */ -{ CPUFUNC(op_c030_4), 49200 }, /* AND */ -{ CPUFUNC(op_c038_4), 49208 }, /* AND */ -{ CPUFUNC(op_c039_4), 49209 }, /* AND */ -{ CPUFUNC(op_c03a_4), 49210 }, /* AND */ -{ CPUFUNC(op_c03b_4), 49211 }, /* AND */ -{ CPUFUNC(op_c03c_4), 49212 }, /* AND */ -{ CPUFUNC(op_c040_4), 49216 }, /* AND */ -{ CPUFUNC(op_c050_4), 49232 }, /* AND */ -{ CPUFUNC(op_c058_4), 49240 }, /* AND */ -{ CPUFUNC(op_c060_4), 49248 }, /* AND */ -{ CPUFUNC(op_c068_4), 49256 }, /* AND */ -{ CPUFUNC(op_c070_4), 49264 }, /* AND */ -{ CPUFUNC(op_c078_4), 49272 }, /* AND */ -{ CPUFUNC(op_c079_4), 49273 }, /* AND */ -{ CPUFUNC(op_c07a_4), 49274 }, /* AND */ -{ CPUFUNC(op_c07b_4), 49275 }, /* AND */ -{ CPUFUNC(op_c07c_4), 49276 }, /* AND */ -{ CPUFUNC(op_c080_4), 49280 }, /* AND */ -{ CPUFUNC(op_c090_4), 49296 }, /* AND */ -{ CPUFUNC(op_c098_4), 49304 }, /* AND */ -{ CPUFUNC(op_c0a0_4), 49312 }, /* AND */ -{ CPUFUNC(op_c0a8_4), 49320 }, /* AND */ -{ CPUFUNC(op_c0b0_4), 49328 }, /* AND */ -{ CPUFUNC(op_c0b8_4), 49336 }, /* AND */ -{ CPUFUNC(op_c0b9_4), 49337 }, /* AND */ -{ CPUFUNC(op_c0ba_4), 49338 }, /* AND */ -{ CPUFUNC(op_c0bb_4), 49339 }, /* AND */ -{ CPUFUNC(op_c0bc_4), 49340 }, /* AND */ -{ CPUFUNC(op_c0c0_4), 49344 }, /* MULU */ -{ CPUFUNC(op_c0d0_4), 49360 }, /* MULU */ -{ CPUFUNC(op_c0d8_4), 49368 }, /* MULU */ -{ CPUFUNC(op_c0e0_4), 49376 }, /* MULU */ -{ CPUFUNC(op_c0e8_4), 49384 }, /* MULU */ -{ CPUFUNC(op_c0f0_4), 49392 }, /* MULU */ -{ CPUFUNC(op_c0f8_4), 49400 }, /* MULU */ -{ CPUFUNC(op_c0f9_4), 49401 }, /* MULU */ -{ CPUFUNC(op_c0fa_4), 49402 }, /* MULU */ -{ CPUFUNC(op_c0fb_4), 49403 }, /* MULU */ -{ CPUFUNC(op_c0fc_4), 49404 }, /* MULU */ -{ CPUFUNC(op_c100_4), 49408 }, /* ABCD */ -{ CPUFUNC(op_c108_4), 49416 }, /* ABCD */ -{ CPUFUNC(op_c110_4), 49424 }, /* AND */ -{ CPUFUNC(op_c118_4), 49432 }, /* AND */ -{ CPUFUNC(op_c120_4), 49440 }, /* AND */ -{ CPUFUNC(op_c128_4), 49448 }, /* AND */ -{ CPUFUNC(op_c130_4), 49456 }, /* AND */ -{ CPUFUNC(op_c138_4), 49464 }, /* AND */ -{ CPUFUNC(op_c139_4), 49465 }, /* AND */ -{ CPUFUNC(op_c140_4), 49472 }, /* EXG */ -{ CPUFUNC(op_c148_4), 49480 }, /* EXG */ -{ CPUFUNC(op_c150_4), 49488 }, /* AND */ -{ CPUFUNC(op_c158_4), 49496 }, /* AND */ -{ CPUFUNC(op_c160_4), 49504 }, /* AND */ -{ CPUFUNC(op_c168_4), 49512 }, /* AND */ -{ CPUFUNC(op_c170_4), 49520 }, /* AND */ -{ CPUFUNC(op_c178_4), 49528 }, /* AND */ -{ CPUFUNC(op_c179_4), 49529 }, /* AND */ -{ CPUFUNC(op_c188_4), 49544 }, /* EXG */ -{ CPUFUNC(op_c190_4), 49552 }, /* AND */ -{ CPUFUNC(op_c198_4), 49560 }, /* AND */ -{ CPUFUNC(op_c1a0_4), 49568 }, /* AND */ -{ CPUFUNC(op_c1a8_4), 49576 }, /* AND */ -{ CPUFUNC(op_c1b0_4), 49584 }, /* AND */ -{ CPUFUNC(op_c1b8_4), 49592 }, /* AND */ -{ CPUFUNC(op_c1b9_4), 49593 }, /* AND */ -{ CPUFUNC(op_c1c0_4), 49600 }, /* MULS */ -{ CPUFUNC(op_c1d0_4), 49616 }, /* MULS */ -{ CPUFUNC(op_c1d8_4), 49624 }, /* MULS */ -{ CPUFUNC(op_c1e0_4), 49632 }, /* MULS */ -{ CPUFUNC(op_c1e8_4), 49640 }, /* MULS */ -{ CPUFUNC(op_c1f0_4), 49648 }, /* MULS */ -{ CPUFUNC(op_c1f8_4), 49656 }, /* MULS */ -{ CPUFUNC(op_c1f9_4), 49657 }, /* MULS */ -{ CPUFUNC(op_c1fa_4), 49658 }, /* MULS */ -{ CPUFUNC(op_c1fb_4), 49659 }, /* MULS */ -{ CPUFUNC(op_c1fc_4), 49660 }, /* MULS */ -{ CPUFUNC(op_d000_4), 53248 }, /* ADD */ -{ CPUFUNC(op_d010_4), 53264 }, /* ADD */ -{ CPUFUNC(op_d018_4), 53272 }, /* ADD */ -{ CPUFUNC(op_d020_4), 53280 }, /* ADD */ -{ CPUFUNC(op_d028_4), 53288 }, /* ADD */ -{ CPUFUNC(op_d030_4), 53296 }, /* ADD */ -{ CPUFUNC(op_d038_4), 53304 }, /* ADD */ -{ CPUFUNC(op_d039_4), 53305 }, /* ADD */ -{ CPUFUNC(op_d03a_4), 53306 }, /* ADD */ -{ CPUFUNC(op_d03b_4), 53307 }, /* ADD */ -{ CPUFUNC(op_d03c_4), 53308 }, /* ADD */ -{ CPUFUNC(op_d040_4), 53312 }, /* ADD */ -{ CPUFUNC(op_d048_4), 53320 }, /* ADD */ -{ CPUFUNC(op_d050_4), 53328 }, /* ADD */ -{ CPUFUNC(op_d058_4), 53336 }, /* ADD */ -{ CPUFUNC(op_d060_4), 53344 }, /* ADD */ -{ CPUFUNC(op_d068_4), 53352 }, /* ADD */ -{ CPUFUNC(op_d070_4), 53360 }, /* ADD */ -{ CPUFUNC(op_d078_4), 53368 }, /* ADD */ -{ CPUFUNC(op_d079_4), 53369 }, /* ADD */ -{ CPUFUNC(op_d07a_4), 53370 }, /* ADD */ -{ CPUFUNC(op_d07b_4), 53371 }, /* ADD */ -{ CPUFUNC(op_d07c_4), 53372 }, /* ADD */ -{ CPUFUNC(op_d080_4), 53376 }, /* ADD */ -{ CPUFUNC(op_d088_4), 53384 }, /* ADD */ -{ CPUFUNC(op_d090_4), 53392 }, /* ADD */ -{ CPUFUNC(op_d098_4), 53400 }, /* ADD */ -{ CPUFUNC(op_d0a0_4), 53408 }, /* ADD */ -{ CPUFUNC(op_d0a8_4), 53416 }, /* ADD */ -{ CPUFUNC(op_d0b0_4), 53424 }, /* ADD */ -{ CPUFUNC(op_d0b8_4), 53432 }, /* ADD */ -{ CPUFUNC(op_d0b9_4), 53433 }, /* ADD */ -{ CPUFUNC(op_d0ba_4), 53434 }, /* ADD */ -{ CPUFUNC(op_d0bb_4), 53435 }, /* ADD */ -{ CPUFUNC(op_d0bc_4), 53436 }, /* ADD */ -{ CPUFUNC(op_d0c0_4), 53440 }, /* ADDA */ -{ CPUFUNC(op_d0c8_4), 53448 }, /* ADDA */ -{ CPUFUNC(op_d0d0_4), 53456 }, /* ADDA */ -{ CPUFUNC(op_d0d8_4), 53464 }, /* ADDA */ -{ CPUFUNC(op_d0e0_4), 53472 }, /* ADDA */ -{ CPUFUNC(op_d0e8_4), 53480 }, /* ADDA */ -{ CPUFUNC(op_d0f0_4), 53488 }, /* ADDA */ -{ CPUFUNC(op_d0f8_4), 53496 }, /* ADDA */ -{ CPUFUNC(op_d0f9_4), 53497 }, /* ADDA */ -{ CPUFUNC(op_d0fa_4), 53498 }, /* ADDA */ -{ CPUFUNC(op_d0fb_4), 53499 }, /* ADDA */ -{ CPUFUNC(op_d0fc_4), 53500 }, /* ADDA */ -{ CPUFUNC(op_d100_4), 53504 }, /* ADDX */ -{ CPUFUNC(op_d108_4), 53512 }, /* ADDX */ -{ CPUFUNC(op_d110_4), 53520 }, /* ADD */ -{ CPUFUNC(op_d118_4), 53528 }, /* ADD */ -{ CPUFUNC(op_d120_4), 53536 }, /* ADD */ -{ CPUFUNC(op_d128_4), 53544 }, /* ADD */ -{ CPUFUNC(op_d130_4), 53552 }, /* ADD */ -{ CPUFUNC(op_d138_4), 53560 }, /* ADD */ -{ CPUFUNC(op_d139_4), 53561 }, /* ADD */ -{ CPUFUNC(op_d140_4), 53568 }, /* ADDX */ -{ CPUFUNC(op_d148_4), 53576 }, /* ADDX */ -{ CPUFUNC(op_d150_4), 53584 }, /* ADD */ -{ CPUFUNC(op_d158_4), 53592 }, /* ADD */ -{ CPUFUNC(op_d160_4), 53600 }, /* ADD */ -{ CPUFUNC(op_d168_4), 53608 }, /* ADD */ -{ CPUFUNC(op_d170_4), 53616 }, /* ADD */ -{ CPUFUNC(op_d178_4), 53624 }, /* ADD */ -{ CPUFUNC(op_d179_4), 53625 }, /* ADD */ -{ CPUFUNC(op_d180_4), 53632 }, /* ADDX */ -{ CPUFUNC(op_d188_4), 53640 }, /* ADDX */ -{ CPUFUNC(op_d190_4), 53648 }, /* ADD */ -{ CPUFUNC(op_d198_4), 53656 }, /* ADD */ -{ CPUFUNC(op_d1a0_4), 53664 }, /* ADD */ -{ CPUFUNC(op_d1a8_4), 53672 }, /* ADD */ -{ CPUFUNC(op_d1b0_4), 53680 }, /* ADD */ -{ CPUFUNC(op_d1b8_4), 53688 }, /* ADD */ -{ CPUFUNC(op_d1b9_4), 53689 }, /* ADD */ -{ CPUFUNC(op_d1c0_4), 53696 }, /* ADDA */ -{ CPUFUNC(op_d1c8_4), 53704 }, /* ADDA */ -{ CPUFUNC(op_d1d0_4), 53712 }, /* ADDA */ -{ CPUFUNC(op_d1d8_4), 53720 }, /* ADDA */ -{ CPUFUNC(op_d1e0_4), 53728 }, /* ADDA */ -{ CPUFUNC(op_d1e8_4), 53736 }, /* ADDA */ -{ CPUFUNC(op_d1f0_4), 53744 }, /* ADDA */ -{ CPUFUNC(op_d1f8_4), 53752 }, /* ADDA */ -{ CPUFUNC(op_d1f9_4), 53753 }, /* ADDA */ -{ CPUFUNC(op_d1fa_4), 53754 }, /* ADDA */ -{ CPUFUNC(op_d1fb_4), 53755 }, /* ADDA */ -{ CPUFUNC(op_d1fc_4), 53756 }, /* ADDA */ -{ CPUFUNC(op_e000_4), 57344 }, /* ASR */ -{ CPUFUNC(op_e008_4), 57352 }, /* LSR */ -{ CPUFUNC(op_e010_4), 57360 }, /* ROXR */ -{ CPUFUNC(op_e018_4), 57368 }, /* ROR */ -{ CPUFUNC(op_e020_4), 57376 }, /* ASR */ -{ CPUFUNC(op_e028_4), 57384 }, /* LSR */ -{ CPUFUNC(op_e030_4), 57392 }, /* ROXR */ -{ CPUFUNC(op_e038_4), 57400 }, /* ROR */ -{ CPUFUNC(op_e040_4), 57408 }, /* ASR */ -{ CPUFUNC(op_e048_4), 57416 }, /* LSR */ -{ CPUFUNC(op_e050_4), 57424 }, /* ROXR */ -{ CPUFUNC(op_e058_4), 57432 }, /* ROR */ -{ CPUFUNC(op_e060_4), 57440 }, /* ASR */ -{ CPUFUNC(op_e068_4), 57448 }, /* LSR */ -{ CPUFUNC(op_e070_4), 57456 }, /* ROXR */ -{ CPUFUNC(op_e078_4), 57464 }, /* ROR */ -{ CPUFUNC(op_e080_4), 57472 }, /* ASR */ -{ CPUFUNC(op_e088_4), 57480 }, /* LSR */ -{ CPUFUNC(op_e090_4), 57488 }, /* ROXR */ -{ CPUFUNC(op_e098_4), 57496 }, /* ROR */ -{ CPUFUNC(op_e0a0_4), 57504 }, /* ASR */ -{ CPUFUNC(op_e0a8_4), 57512 }, /* LSR */ -{ CPUFUNC(op_e0b0_4), 57520 }, /* ROXR */ -{ CPUFUNC(op_e0b8_4), 57528 }, /* ROR */ -{ CPUFUNC(op_e0d0_4), 57552 }, /* ASRW */ -{ CPUFUNC(op_e0d8_4), 57560 }, /* ASRW */ -{ CPUFUNC(op_e0e0_4), 57568 }, /* ASRW */ -{ CPUFUNC(op_e0e8_4), 57576 }, /* ASRW */ -{ CPUFUNC(op_e0f0_4), 57584 }, /* ASRW */ -{ CPUFUNC(op_e0f8_4), 57592 }, /* ASRW */ -{ CPUFUNC(op_e0f9_4), 57593 }, /* ASRW */ -{ CPUFUNC(op_e100_4), 57600 }, /* ASL */ -{ CPUFUNC(op_e108_4), 57608 }, /* LSL */ -{ CPUFUNC(op_e110_4), 57616 }, /* ROXL */ -{ CPUFUNC(op_e118_4), 57624 }, /* ROL */ -{ CPUFUNC(op_e120_4), 57632 }, /* ASL */ -{ CPUFUNC(op_e128_4), 57640 }, /* LSL */ -{ CPUFUNC(op_e130_4), 57648 }, /* ROXL */ -{ CPUFUNC(op_e138_4), 57656 }, /* ROL */ -{ CPUFUNC(op_e140_4), 57664 }, /* ASL */ -{ CPUFUNC(op_e148_4), 57672 }, /* LSL */ -{ CPUFUNC(op_e150_4), 57680 }, /* ROXL */ -{ CPUFUNC(op_e158_4), 57688 }, /* ROL */ -{ CPUFUNC(op_e160_4), 57696 }, /* ASL */ -{ CPUFUNC(op_e168_4), 57704 }, /* LSL */ -{ CPUFUNC(op_e170_4), 57712 }, /* ROXL */ -{ CPUFUNC(op_e178_4), 57720 }, /* ROL */ -{ CPUFUNC(op_e180_4), 57728 }, /* ASL */ -{ CPUFUNC(op_e188_4), 57736 }, /* LSL */ -{ CPUFUNC(op_e190_4), 57744 }, /* ROXL */ -{ CPUFUNC(op_e198_4), 57752 }, /* ROL */ -{ CPUFUNC(op_e1a0_4), 57760 }, /* ASL */ -{ CPUFUNC(op_e1a8_4), 57768 }, /* LSL */ -{ CPUFUNC(op_e1b0_4), 57776 }, /* ROXL */ -{ CPUFUNC(op_e1b8_4), 57784 }, /* ROL */ -{ CPUFUNC(op_e1d0_4), 57808 }, /* ASLW */ -{ CPUFUNC(op_e1d8_4), 57816 }, /* ASLW */ -{ CPUFUNC(op_e1e0_4), 57824 }, /* ASLW */ -{ CPUFUNC(op_e1e8_4), 57832 }, /* ASLW */ -{ CPUFUNC(op_e1f0_4), 57840 }, /* ASLW */ -{ CPUFUNC(op_e1f8_4), 57848 }, /* ASLW */ -{ CPUFUNC(op_e1f9_4), 57849 }, /* ASLW */ -{ CPUFUNC(op_e2d0_4), 58064 }, /* LSRW */ -{ CPUFUNC(op_e2d8_4), 58072 }, /* LSRW */ -{ CPUFUNC(op_e2e0_4), 58080 }, /* LSRW */ -{ CPUFUNC(op_e2e8_4), 58088 }, /* LSRW */ -{ CPUFUNC(op_e2f0_4), 58096 }, /* LSRW */ -{ CPUFUNC(op_e2f8_4), 58104 }, /* LSRW */ -{ CPUFUNC(op_e2f9_4), 58105 }, /* LSRW */ -{ CPUFUNC(op_e3d0_4), 58320 }, /* LSLW */ -{ CPUFUNC(op_e3d8_4), 58328 }, /* LSLW */ -{ CPUFUNC(op_e3e0_4), 58336 }, /* LSLW */ -{ CPUFUNC(op_e3e8_4), 58344 }, /* LSLW */ -{ CPUFUNC(op_e3f0_4), 58352 }, /* LSLW */ -{ CPUFUNC(op_e3f8_4), 58360 }, /* LSLW */ -{ CPUFUNC(op_e3f9_4), 58361 }, /* LSLW */ -{ CPUFUNC(op_e4d0_4), 58576 }, /* ROXRW */ -{ CPUFUNC(op_e4d8_4), 58584 }, /* ROXRW */ -{ CPUFUNC(op_e4e0_4), 58592 }, /* ROXRW */ -{ CPUFUNC(op_e4e8_4), 58600 }, /* ROXRW */ -{ CPUFUNC(op_e4f0_4), 58608 }, /* ROXRW */ -{ CPUFUNC(op_e4f8_4), 58616 }, /* ROXRW */ -{ CPUFUNC(op_e4f9_4), 58617 }, /* ROXRW */ -{ CPUFUNC(op_e5d0_4), 58832 }, /* ROXLW */ -{ CPUFUNC(op_e5d8_4), 58840 }, /* ROXLW */ -{ CPUFUNC(op_e5e0_4), 58848 }, /* ROXLW */ -{ CPUFUNC(op_e5e8_4), 58856 }, /* ROXLW */ -{ CPUFUNC(op_e5f0_4), 58864 }, /* ROXLW */ -{ CPUFUNC(op_e5f8_4), 58872 }, /* ROXLW */ -{ CPUFUNC(op_e5f9_4), 58873 }, /* ROXLW */ -{ CPUFUNC(op_e6d0_4), 59088 }, /* RORW */ -{ CPUFUNC(op_e6d8_4), 59096 }, /* RORW */ -{ CPUFUNC(op_e6e0_4), 59104 }, /* RORW */ -{ CPUFUNC(op_e6e8_4), 59112 }, /* RORW */ -{ CPUFUNC(op_e6f0_4), 59120 }, /* RORW */ -{ CPUFUNC(op_e6f8_4), 59128 }, /* RORW */ -{ CPUFUNC(op_e6f9_4), 59129 }, /* RORW */ -{ CPUFUNC(op_e7d0_4), 59344 }, /* ROLW */ -{ CPUFUNC(op_e7d8_4), 59352 }, /* ROLW */ -{ CPUFUNC(op_e7e0_4), 59360 }, /* ROLW */ -{ CPUFUNC(op_e7e8_4), 59368 }, /* ROLW */ -{ CPUFUNC(op_e7f0_4), 59376 }, /* ROLW */ -{ CPUFUNC(op_e7f8_4), 59384 }, /* ROLW */ -{ CPUFUNC(op_e7f9_4), 59385 }, /* ROLW */ -{ 0, 0 }}; +const struct cputbl CPUFUNC(op_smalltbl_1)[] = +{ + { CPUFUNC(op_0000_0), 0 }, /* OR */ + { CPUFUNC(op_0010_0), 16 }, /* OR */ + { CPUFUNC(op_0018_0), 24 }, /* OR */ + { CPUFUNC(op_0020_0), 32 }, /* OR */ + { CPUFUNC(op_0028_0), 40 }, /* OR */ + { CPUFUNC(op_0030_0), 48 }, /* OR */ + { CPUFUNC(op_0038_0), 56 }, /* OR */ + { CPUFUNC(op_0039_0), 57 }, /* OR */ + { CPUFUNC(op_003c_0), 60 }, /* ORSR */ + { CPUFUNC(op_0040_0), 64 }, /* OR */ + { CPUFUNC(op_0050_0), 80 }, /* OR */ + { CPUFUNC(op_0058_0), 88 }, /* OR */ + { CPUFUNC(op_0060_0), 96 }, /* OR */ + { CPUFUNC(op_0068_0), 104 }, /* OR */ + { CPUFUNC(op_0070_0), 112 }, /* OR */ + { CPUFUNC(op_0078_0), 120 }, /* OR */ + { CPUFUNC(op_0079_0), 121 }, /* OR */ + { CPUFUNC(op_007c_0), 124 }, /* ORSR */ + { CPUFUNC(op_0080_0), 128 }, /* OR */ + { CPUFUNC(op_0090_0), 144 }, /* OR */ + { CPUFUNC(op_0098_0), 152 }, /* OR */ + { CPUFUNC(op_00a0_0), 160 }, /* OR */ + { CPUFUNC(op_00a8_0), 168 }, /* OR */ + { CPUFUNC(op_00b0_0), 176 }, /* OR */ + { CPUFUNC(op_00b8_0), 184 }, /* OR */ + { CPUFUNC(op_00b9_0), 185 }, /* OR */ + { CPUFUNC(op_00d0_0), 208 }, /* CHK2 */ + { CPUFUNC(op_00e8_0), 232 }, /* CHK2 */ + { CPUFUNC(op_00f0_0), 240 }, /* CHK2 */ + { CPUFUNC(op_00f8_0), 248 }, /* CHK2 */ + { CPUFUNC(op_00f9_0), 249 }, /* CHK2 */ + { CPUFUNC(op_00fa_0), 250 }, /* CHK2 */ + { CPUFUNC(op_00fb_0), 251 }, /* CHK2 */ + { CPUFUNC(op_0100_0), 256 }, /* BTST */ + { CPUFUNC(op_0108_0), 264 }, /* MVPMR */ + { CPUFUNC(op_0110_0), 272 }, /* BTST */ + { CPUFUNC(op_0118_0), 280 }, /* BTST */ + { CPUFUNC(op_0120_0), 288 }, /* BTST */ + { CPUFUNC(op_0128_0), 296 }, /* BTST */ + { CPUFUNC(op_0130_0), 304 }, /* BTST */ + { CPUFUNC(op_0138_0), 312 }, /* BTST */ + { CPUFUNC(op_0139_0), 313 }, /* BTST */ + { CPUFUNC(op_013a_0), 314 }, /* BTST */ + { CPUFUNC(op_013b_0), 315 }, /* BTST */ + { CPUFUNC(op_013c_0), 316 }, /* BTST */ + { CPUFUNC(op_0140_0), 320 }, /* BCHG */ + { CPUFUNC(op_0148_0), 328 }, /* MVPMR */ + { CPUFUNC(op_0150_0), 336 }, /* BCHG */ + { CPUFUNC(op_0158_0), 344 }, /* BCHG */ + { CPUFUNC(op_0160_0), 352 }, /* BCHG */ + { CPUFUNC(op_0168_0), 360 }, /* BCHG */ + { CPUFUNC(op_0170_0), 368 }, /* BCHG */ + { CPUFUNC(op_0178_0), 376 }, /* BCHG */ + { CPUFUNC(op_0179_0), 377 }, /* BCHG */ + { CPUFUNC(op_0180_0), 384 }, /* BCLR */ + { CPUFUNC(op_0188_0), 392 }, /* MVPRM */ + { CPUFUNC(op_0190_0), 400 }, /* BCLR */ + { CPUFUNC(op_0198_0), 408 }, /* BCLR */ + { CPUFUNC(op_01a0_0), 416 }, /* BCLR */ + { CPUFUNC(op_01a8_0), 424 }, /* BCLR */ + { CPUFUNC(op_01b0_0), 432 }, /* BCLR */ + { CPUFUNC(op_01b8_0), 440 }, /* BCLR */ + { CPUFUNC(op_01b9_0), 441 }, /* BCLR */ + { CPUFUNC(op_01c0_0), 448 }, /* BSET */ + { CPUFUNC(op_01c8_0), 456 }, /* MVPRM */ + { CPUFUNC(op_01d0_0), 464 }, /* BSET */ + { CPUFUNC(op_01d8_0), 472 }, /* BSET */ + { CPUFUNC(op_01e0_0), 480 }, /* BSET */ + { CPUFUNC(op_01e8_0), 488 }, /* BSET */ + { CPUFUNC(op_01f0_0), 496 }, /* BSET */ + { CPUFUNC(op_01f8_0), 504 }, /* BSET */ + { CPUFUNC(op_01f9_0), 505 }, /* BSET */ + { CPUFUNC(op_0200_0), 512 }, /* AND */ + { CPUFUNC(op_0210_0), 528 }, /* AND */ + { CPUFUNC(op_0218_0), 536 }, /* AND */ + { CPUFUNC(op_0220_0), 544 }, /* AND */ + { CPUFUNC(op_0228_0), 552 }, /* AND */ + { CPUFUNC(op_0230_0), 560 }, /* AND */ + { CPUFUNC(op_0238_0), 568 }, /* AND */ + { CPUFUNC(op_0239_0), 569 }, /* AND */ + { CPUFUNC(op_023c_0), 572 }, /* ANDSR */ + { CPUFUNC(op_0240_0), 576 }, /* AND */ + { CPUFUNC(op_0250_0), 592 }, /* AND */ + { CPUFUNC(op_0258_0), 600 }, /* AND */ + { CPUFUNC(op_0260_0), 608 }, /* AND */ + { CPUFUNC(op_0268_0), 616 }, /* AND */ + { CPUFUNC(op_0270_0), 624 }, /* AND */ + { CPUFUNC(op_0278_0), 632 }, /* AND */ + { CPUFUNC(op_0279_0), 633 }, /* AND */ + { CPUFUNC(op_027c_0), 636 }, /* ANDSR */ + { CPUFUNC(op_0280_0), 640 }, /* AND */ + { CPUFUNC(op_0290_0), 656 }, /* AND */ + { CPUFUNC(op_0298_0), 664 }, /* AND */ + { CPUFUNC(op_02a0_0), 672 }, /* AND */ + { CPUFUNC(op_02a8_0), 680 }, /* AND */ + { CPUFUNC(op_02b0_0), 688 }, /* AND */ + { CPUFUNC(op_02b8_0), 696 }, /* AND */ + { CPUFUNC(op_02b9_0), 697 }, /* AND */ + { CPUFUNC(op_02d0_0), 720 }, /* CHK2 */ + { CPUFUNC(op_02e8_0), 744 }, /* CHK2 */ + { CPUFUNC(op_02f0_0), 752 }, /* CHK2 */ + { CPUFUNC(op_02f8_0), 760 }, /* CHK2 */ + { CPUFUNC(op_02f9_0), 761 }, /* CHK2 */ + { CPUFUNC(op_02fa_0), 762 }, /* CHK2 */ + { CPUFUNC(op_02fb_0), 763 }, /* CHK2 */ + { CPUFUNC(op_0400_0), 1024 }, /* SUB */ + { CPUFUNC(op_0410_0), 1040 }, /* SUB */ + { CPUFUNC(op_0418_0), 1048 }, /* SUB */ + { CPUFUNC(op_0420_0), 1056 }, /* SUB */ + { CPUFUNC(op_0428_0), 1064 }, /* SUB */ + { CPUFUNC(op_0430_0), 1072 }, /* SUB */ + { CPUFUNC(op_0438_0), 1080 }, /* SUB */ + { CPUFUNC(op_0439_0), 1081 }, /* SUB */ + { CPUFUNC(op_0440_0), 1088 }, /* SUB */ + { CPUFUNC(op_0450_0), 1104 }, /* SUB */ + { CPUFUNC(op_0458_0), 1112 }, /* SUB */ + { CPUFUNC(op_0460_0), 1120 }, /* SUB */ + { CPUFUNC(op_0468_0), 1128 }, /* SUB */ + { CPUFUNC(op_0470_0), 1136 }, /* SUB */ + { CPUFUNC(op_0478_0), 1144 }, /* SUB */ + { CPUFUNC(op_0479_0), 1145 }, /* SUB */ + { CPUFUNC(op_0480_0), 1152 }, /* SUB */ + { CPUFUNC(op_0490_0), 1168 }, /* SUB */ + { CPUFUNC(op_0498_0), 1176 }, /* SUB */ + { CPUFUNC(op_04a0_0), 1184 }, /* SUB */ + { CPUFUNC(op_04a8_0), 1192 }, /* SUB */ + { CPUFUNC(op_04b0_0), 1200 }, /* SUB */ + { CPUFUNC(op_04b8_0), 1208 }, /* SUB */ + { CPUFUNC(op_04b9_0), 1209 }, /* SUB */ + { CPUFUNC(op_04d0_0), 1232 }, /* CHK2 */ + { CPUFUNC(op_04e8_0), 1256 }, /* CHK2 */ + { CPUFUNC(op_04f0_0), 1264 }, /* CHK2 */ + { CPUFUNC(op_04f8_0), 1272 }, /* CHK2 */ + { CPUFUNC(op_04f9_0), 1273 }, /* CHK2 */ + { CPUFUNC(op_04fa_0), 1274 }, /* CHK2 */ + { CPUFUNC(op_04fb_0), 1275 }, /* CHK2 */ + { CPUFUNC(op_0600_0), 1536 }, /* ADD */ + { CPUFUNC(op_0610_0), 1552 }, /* ADD */ + { CPUFUNC(op_0618_0), 1560 }, /* ADD */ + { CPUFUNC(op_0620_0), 1568 }, /* ADD */ + { CPUFUNC(op_0628_0), 1576 }, /* ADD */ + { CPUFUNC(op_0630_0), 1584 }, /* ADD */ + { CPUFUNC(op_0638_0), 1592 }, /* ADD */ + { CPUFUNC(op_0639_0), 1593 }, /* ADD */ + { CPUFUNC(op_0640_0), 1600 }, /* ADD */ + { CPUFUNC(op_0650_0), 1616 }, /* ADD */ + { CPUFUNC(op_0658_0), 1624 }, /* ADD */ + { CPUFUNC(op_0660_0), 1632 }, /* ADD */ + { CPUFUNC(op_0668_0), 1640 }, /* ADD */ + { CPUFUNC(op_0670_0), 1648 }, /* ADD */ + { CPUFUNC(op_0678_0), 1656 }, /* ADD */ + { CPUFUNC(op_0679_0), 1657 }, /* ADD */ + { CPUFUNC(op_0680_0), 1664 }, /* ADD */ + { CPUFUNC(op_0690_0), 1680 }, /* ADD */ + { CPUFUNC(op_0698_0), 1688 }, /* ADD */ + { CPUFUNC(op_06a0_0), 1696 }, /* ADD */ + { CPUFUNC(op_06a8_0), 1704 }, /* ADD */ + { CPUFUNC(op_06b0_0), 1712 }, /* ADD */ + { CPUFUNC(op_06b8_0), 1720 }, /* ADD */ + { CPUFUNC(op_06b9_0), 1721 }, /* ADD */ + { CPUFUNC(op_06c0_0), 1728 }, /* RTM */ + { CPUFUNC(op_06c8_0), 1736 }, /* RTM */ + { CPUFUNC(op_06d0_0), 1744 }, /* CALLM */ + { CPUFUNC(op_06e8_0), 1768 }, /* CALLM */ + { CPUFUNC(op_06f0_0), 1776 }, /* CALLM */ + { CPUFUNC(op_06f8_0), 1784 }, /* CALLM */ + { CPUFUNC(op_06f9_0), 1785 }, /* CALLM */ + { CPUFUNC(op_06fa_0), 1786 }, /* CALLM */ + { CPUFUNC(op_06fb_0), 1787 }, /* CALLM */ + { CPUFUNC(op_0800_0), 2048 }, /* BTST */ + { CPUFUNC(op_0810_0), 2064 }, /* BTST */ + { CPUFUNC(op_0818_0), 2072 }, /* BTST */ + { CPUFUNC(op_0820_0), 2080 }, /* BTST */ + { CPUFUNC(op_0828_0), 2088 }, /* BTST */ + { CPUFUNC(op_0830_0), 2096 }, /* BTST */ + { CPUFUNC(op_0838_0), 2104 }, /* BTST */ + { CPUFUNC(op_0839_0), 2105 }, /* BTST */ + { CPUFUNC(op_083a_0), 2106 }, /* BTST */ + { CPUFUNC(op_083b_0), 2107 }, /* BTST */ + { CPUFUNC(op_083c_0), 2108 }, /* BTST */ + { CPUFUNC(op_0840_0), 2112 }, /* BCHG */ + { CPUFUNC(op_0850_0), 2128 }, /* BCHG */ + { CPUFUNC(op_0858_0), 2136 }, /* BCHG */ + { CPUFUNC(op_0860_0), 2144 }, /* BCHG */ + { CPUFUNC(op_0868_0), 2152 }, /* BCHG */ + { CPUFUNC(op_0870_0), 2160 }, /* BCHG */ + { CPUFUNC(op_0878_0), 2168 }, /* BCHG */ + { CPUFUNC(op_0879_0), 2169 }, /* BCHG */ + { CPUFUNC(op_0880_0), 2176 }, /* BCLR */ + { CPUFUNC(op_0890_0), 2192 }, /* BCLR */ + { CPUFUNC(op_0898_0), 2200 }, /* BCLR */ + { CPUFUNC(op_08a0_0), 2208 }, /* BCLR */ + { CPUFUNC(op_08a8_0), 2216 }, /* BCLR */ + { CPUFUNC(op_08b0_0), 2224 }, /* BCLR */ + { CPUFUNC(op_08b8_0), 2232 }, /* BCLR */ + { CPUFUNC(op_08b9_0), 2233 }, /* BCLR */ + { CPUFUNC(op_08c0_0), 2240 }, /* BSET */ + { CPUFUNC(op_08d0_0), 2256 }, /* BSET */ + { CPUFUNC(op_08d8_0), 2264 }, /* BSET */ + { CPUFUNC(op_08e0_0), 2272 }, /* BSET */ + { CPUFUNC(op_08e8_0), 2280 }, /* BSET */ + { CPUFUNC(op_08f0_0), 2288 }, /* BSET */ + { CPUFUNC(op_08f8_0), 2296 }, /* BSET */ + { CPUFUNC(op_08f9_0), 2297 }, /* BSET */ + { CPUFUNC(op_0a00_0), 2560 }, /* EOR */ + { CPUFUNC(op_0a10_0), 2576 }, /* EOR */ + { CPUFUNC(op_0a18_0), 2584 }, /* EOR */ + { CPUFUNC(op_0a20_0), 2592 }, /* EOR */ + { CPUFUNC(op_0a28_0), 2600 }, /* EOR */ + { CPUFUNC(op_0a30_0), 2608 }, /* EOR */ + { CPUFUNC(op_0a38_0), 2616 }, /* EOR */ + { CPUFUNC(op_0a39_0), 2617 }, /* EOR */ + { CPUFUNC(op_0a3c_0), 2620 }, /* EORSR */ + { CPUFUNC(op_0a40_0), 2624 }, /* EOR */ + { CPUFUNC(op_0a50_0), 2640 }, /* EOR */ + { CPUFUNC(op_0a58_0), 2648 }, /* EOR */ + { CPUFUNC(op_0a60_0), 2656 }, /* EOR */ + { CPUFUNC(op_0a68_0), 2664 }, /* EOR */ + { CPUFUNC(op_0a70_0), 2672 }, /* EOR */ + { CPUFUNC(op_0a78_0), 2680 }, /* EOR */ + { CPUFUNC(op_0a79_0), 2681 }, /* EOR */ + { CPUFUNC(op_0a7c_0), 2684 }, /* EORSR */ + { CPUFUNC(op_0a80_0), 2688 }, /* EOR */ + { CPUFUNC(op_0a90_0), 2704 }, /* EOR */ + { CPUFUNC(op_0a98_0), 2712 }, /* EOR */ + { CPUFUNC(op_0aa0_0), 2720 }, /* EOR */ + { CPUFUNC(op_0aa8_0), 2728 }, /* EOR */ + { CPUFUNC(op_0ab0_0), 2736 }, /* EOR */ + { CPUFUNC(op_0ab8_0), 2744 }, /* EOR */ + { CPUFUNC(op_0ab9_0), 2745 }, /* EOR */ + { CPUFUNC(op_0ad0_0), 2768 }, /* CAS */ + { CPUFUNC(op_0ad8_0), 2776 }, /* CAS */ + { CPUFUNC(op_0ae0_0), 2784 }, /* CAS */ + { CPUFUNC(op_0ae8_0), 2792 }, /* CAS */ + { CPUFUNC(op_0af0_0), 2800 }, /* CAS */ + { CPUFUNC(op_0af8_0), 2808 }, /* CAS */ + { CPUFUNC(op_0af9_0), 2809 }, /* CAS */ + { CPUFUNC(op_0c00_0), 3072 }, /* CMP */ + { CPUFUNC(op_0c10_0), 3088 }, /* CMP */ + { CPUFUNC(op_0c18_0), 3096 }, /* CMP */ + { CPUFUNC(op_0c20_0), 3104 }, /* CMP */ + { CPUFUNC(op_0c28_0), 3112 }, /* CMP */ + { CPUFUNC(op_0c30_0), 3120 }, /* CMP */ + { CPUFUNC(op_0c38_0), 3128 }, /* CMP */ + { CPUFUNC(op_0c39_0), 3129 }, /* CMP */ + { CPUFUNC(op_0c3a_0), 3130 }, /* CMP */ + { CPUFUNC(op_0c3b_0), 3131 }, /* CMP */ + { CPUFUNC(op_0c40_0), 3136 }, /* CMP */ + { CPUFUNC(op_0c50_0), 3152 }, /* CMP */ + { CPUFUNC(op_0c58_0), 3160 }, /* CMP */ + { CPUFUNC(op_0c60_0), 3168 }, /* CMP */ + { CPUFUNC(op_0c68_0), 3176 }, /* CMP */ + { CPUFUNC(op_0c70_0), 3184 }, /* CMP */ + { CPUFUNC(op_0c78_0), 3192 }, /* CMP */ + { CPUFUNC(op_0c79_0), 3193 }, /* CMP */ + { CPUFUNC(op_0c7a_0), 3194 }, /* CMP */ + { CPUFUNC(op_0c7b_0), 3195 }, /* CMP */ + { CPUFUNC(op_0c80_0), 3200 }, /* CMP */ + { CPUFUNC(op_0c90_0), 3216 }, /* CMP */ + { CPUFUNC(op_0c98_0), 3224 }, /* CMP */ + { CPUFUNC(op_0ca0_0), 3232 }, /* CMP */ + { CPUFUNC(op_0ca8_0), 3240 }, /* CMP */ + { CPUFUNC(op_0cb0_0), 3248 }, /* CMP */ + { CPUFUNC(op_0cb8_0), 3256 }, /* CMP */ + { CPUFUNC(op_0cb9_0), 3257 }, /* CMP */ + { CPUFUNC(op_0cba_0), 3258 }, /* CMP */ + { CPUFUNC(op_0cbb_0), 3259 }, /* CMP */ + { CPUFUNC(op_0cd0_0), 3280 }, /* CAS */ + { CPUFUNC(op_0cd8_0), 3288 }, /* CAS */ + { CPUFUNC(op_0ce0_0), 3296 }, /* CAS */ + { CPUFUNC(op_0ce8_0), 3304 }, /* CAS */ + { CPUFUNC(op_0cf0_0), 3312 }, /* CAS */ + { CPUFUNC(op_0cf8_0), 3320 }, /* CAS */ + { CPUFUNC(op_0cf9_0), 3321 }, /* CAS */ + { CPUFUNC(op_0cfc_0), 3324 }, /* CAS2 */ + { CPUFUNC(op_0e10_0), 3600 }, /* MOVES */ + { CPUFUNC(op_0e18_0), 3608 }, /* MOVES */ + { CPUFUNC(op_0e20_0), 3616 }, /* MOVES */ + { CPUFUNC(op_0e28_0), 3624 }, /* MOVES */ + { CPUFUNC(op_0e30_0), 3632 }, /* MOVES */ + { CPUFUNC(op_0e38_0), 3640 }, /* MOVES */ + { CPUFUNC(op_0e39_0), 3641 }, /* MOVES */ + { CPUFUNC(op_0e50_0), 3664 }, /* MOVES */ + { CPUFUNC(op_0e58_0), 3672 }, /* MOVES */ + { CPUFUNC(op_0e60_0), 3680 }, /* MOVES */ + { CPUFUNC(op_0e68_0), 3688 }, /* MOVES */ + { CPUFUNC(op_0e70_0), 3696 }, /* MOVES */ + { CPUFUNC(op_0e78_0), 3704 }, /* MOVES */ + { CPUFUNC(op_0e79_0), 3705 }, /* MOVES */ + { CPUFUNC(op_0e90_0), 3728 }, /* MOVES */ + { CPUFUNC(op_0e98_0), 3736 }, /* MOVES */ + { CPUFUNC(op_0ea0_0), 3744 }, /* MOVES */ + { CPUFUNC(op_0ea8_0), 3752 }, /* MOVES */ + { CPUFUNC(op_0eb0_0), 3760 }, /* MOVES */ + { CPUFUNC(op_0eb8_0), 3768 }, /* MOVES */ + { CPUFUNC(op_0eb9_0), 3769 }, /* MOVES */ + { CPUFUNC(op_0ed0_0), 3792 }, /* CAS */ + { CPUFUNC(op_0ed8_0), 3800 }, /* CAS */ + { CPUFUNC(op_0ee0_0), 3808 }, /* CAS */ + { CPUFUNC(op_0ee8_0), 3816 }, /* CAS */ + { CPUFUNC(op_0ef0_0), 3824 }, /* CAS */ + { CPUFUNC(op_0ef8_0), 3832 }, /* CAS */ + { CPUFUNC(op_0ef9_0), 3833 }, /* CAS */ + { CPUFUNC(op_0efc_0), 3836 }, /* CAS2 */ + { CPUFUNC(op_1000_0), 4096 }, /* MOVE */ + { CPUFUNC(op_1010_0), 4112 }, /* MOVE */ + { CPUFUNC(op_1018_0), 4120 }, /* MOVE */ + { CPUFUNC(op_1020_0), 4128 }, /* MOVE */ + { CPUFUNC(op_1028_0), 4136 }, /* MOVE */ + { CPUFUNC(op_1030_0), 4144 }, /* MOVE */ + { CPUFUNC(op_1038_0), 4152 }, /* MOVE */ + { CPUFUNC(op_1039_0), 4153 }, /* MOVE */ + { CPUFUNC(op_103a_0), 4154 }, /* MOVE */ + { CPUFUNC(op_103b_0), 4155 }, /* MOVE */ + { CPUFUNC(op_103c_0), 4156 }, /* MOVE */ + { CPUFUNC(op_1080_0), 4224 }, /* MOVE */ + { CPUFUNC(op_1090_0), 4240 }, /* MOVE */ + { CPUFUNC(op_1098_0), 4248 }, /* MOVE */ + { CPUFUNC(op_10a0_0), 4256 }, /* MOVE */ + { CPUFUNC(op_10a8_0), 4264 }, /* MOVE */ + { CPUFUNC(op_10b0_0), 4272 }, /* MOVE */ + { CPUFUNC(op_10b8_0), 4280 }, /* MOVE */ + { CPUFUNC(op_10b9_0), 4281 }, /* MOVE */ + { CPUFUNC(op_10ba_0), 4282 }, /* MOVE */ + { CPUFUNC(op_10bb_0), 4283 }, /* MOVE */ + { CPUFUNC(op_10bc_0), 4284 }, /* MOVE */ + { CPUFUNC(op_10c0_0), 4288 }, /* MOVE */ + { CPUFUNC(op_10d0_0), 4304 }, /* MOVE */ + { CPUFUNC(op_10d8_0), 4312 }, /* MOVE */ + { CPUFUNC(op_10e0_0), 4320 }, /* MOVE */ + { CPUFUNC(op_10e8_0), 4328 }, /* MOVE */ + { CPUFUNC(op_10f0_0), 4336 }, /* MOVE */ + { CPUFUNC(op_10f8_0), 4344 }, /* MOVE */ + { CPUFUNC(op_10f9_0), 4345 }, /* MOVE */ + { CPUFUNC(op_10fa_0), 4346 }, /* MOVE */ + { CPUFUNC(op_10fb_0), 4347 }, /* MOVE */ + { CPUFUNC(op_10fc_0), 4348 }, /* MOVE */ + { CPUFUNC(op_1100_0), 4352 }, /* MOVE */ + { CPUFUNC(op_1110_0), 4368 }, /* MOVE */ + { CPUFUNC(op_1118_0), 4376 }, /* MOVE */ + { CPUFUNC(op_1120_0), 4384 }, /* MOVE */ + { CPUFUNC(op_1128_0), 4392 }, /* MOVE */ + { CPUFUNC(op_1130_0), 4400 }, /* MOVE */ + { CPUFUNC(op_1138_0), 4408 }, /* MOVE */ + { CPUFUNC(op_1139_0), 4409 }, /* MOVE */ + { CPUFUNC(op_113a_0), 4410 }, /* MOVE */ + { CPUFUNC(op_113b_0), 4411 }, /* MOVE */ + { CPUFUNC(op_113c_0), 4412 }, /* MOVE */ + { CPUFUNC(op_1140_0), 4416 }, /* MOVE */ + { CPUFUNC(op_1150_0), 4432 }, /* MOVE */ + { CPUFUNC(op_1158_0), 4440 }, /* MOVE */ + { CPUFUNC(op_1160_0), 4448 }, /* MOVE */ + { CPUFUNC(op_1168_0), 4456 }, /* MOVE */ + { CPUFUNC(op_1170_0), 4464 }, /* MOVE */ + { CPUFUNC(op_1178_0), 4472 }, /* MOVE */ + { CPUFUNC(op_1179_0), 4473 }, /* MOVE */ + { CPUFUNC(op_117a_0), 4474 }, /* MOVE */ + { CPUFUNC(op_117b_0), 4475 }, /* MOVE */ + { CPUFUNC(op_117c_0), 4476 }, /* MOVE */ + { CPUFUNC(op_1180_0), 4480 }, /* MOVE */ + { CPUFUNC(op_1190_0), 4496 }, /* MOVE */ + { CPUFUNC(op_1198_0), 4504 }, /* MOVE */ + { CPUFUNC(op_11a0_0), 4512 }, /* MOVE */ + { CPUFUNC(op_11a8_0), 4520 }, /* MOVE */ + { CPUFUNC(op_11b0_0), 4528 }, /* MOVE */ + { CPUFUNC(op_11b8_0), 4536 }, /* MOVE */ + { CPUFUNC(op_11b9_0), 4537 }, /* MOVE */ + { CPUFUNC(op_11ba_0), 4538 }, /* MOVE */ + { CPUFUNC(op_11bb_0), 4539 }, /* MOVE */ + { CPUFUNC(op_11bc_0), 4540 }, /* MOVE */ + { CPUFUNC(op_11c0_0), 4544 }, /* MOVE */ + { CPUFUNC(op_11d0_0), 4560 }, /* MOVE */ + { CPUFUNC(op_11d8_0), 4568 }, /* MOVE */ + { CPUFUNC(op_11e0_0), 4576 }, /* MOVE */ + { CPUFUNC(op_11e8_0), 4584 }, /* MOVE */ + { CPUFUNC(op_11f0_0), 4592 }, /* MOVE */ + { CPUFUNC(op_11f8_0), 4600 }, /* MOVE */ + { CPUFUNC(op_11f9_0), 4601 }, /* MOVE */ + { CPUFUNC(op_11fa_0), 4602 }, /* MOVE */ + { CPUFUNC(op_11fb_0), 4603 }, /* MOVE */ + { CPUFUNC(op_11fc_0), 4604 }, /* MOVE */ + { CPUFUNC(op_13c0_0), 5056 }, /* MOVE */ + { CPUFUNC(op_13d0_0), 5072 }, /* MOVE */ + { CPUFUNC(op_13d8_0), 5080 }, /* MOVE */ + { CPUFUNC(op_13e0_0), 5088 }, /* MOVE */ + { CPUFUNC(op_13e8_0), 5096 }, /* MOVE */ + { CPUFUNC(op_13f0_0), 5104 }, /* MOVE */ + { CPUFUNC(op_13f8_0), 5112 }, /* MOVE */ + { CPUFUNC(op_13f9_0), 5113 }, /* MOVE */ + { CPUFUNC(op_13fa_0), 5114 }, /* MOVE */ + { CPUFUNC(op_13fb_0), 5115 }, /* MOVE */ + { CPUFUNC(op_13fc_0), 5116 }, /* MOVE */ + { CPUFUNC(op_2000_0), 8192 }, /* MOVE */ + { CPUFUNC(op_2008_0), 8200 }, /* MOVE */ + { CPUFUNC(op_2010_0), 8208 }, /* MOVE */ + { CPUFUNC(op_2018_0), 8216 }, /* MOVE */ + { CPUFUNC(op_2020_0), 8224 }, /* MOVE */ + { CPUFUNC(op_2028_0), 8232 }, /* MOVE */ + { CPUFUNC(op_2030_0), 8240 }, /* MOVE */ + { CPUFUNC(op_2038_0), 8248 }, /* MOVE */ + { CPUFUNC(op_2039_0), 8249 }, /* MOVE */ + { CPUFUNC(op_203a_0), 8250 }, /* MOVE */ + { CPUFUNC(op_203b_0), 8251 }, /* MOVE */ + { CPUFUNC(op_203c_0), 8252 }, /* MOVE */ + { CPUFUNC(op_2040_0), 8256 }, /* MOVEA */ + { CPUFUNC(op_2048_0), 8264 }, /* MOVEA */ + { CPUFUNC(op_2050_0), 8272 }, /* MOVEA */ + { CPUFUNC(op_2058_0), 8280 }, /* MOVEA */ + { CPUFUNC(op_2060_0), 8288 }, /* MOVEA */ + { CPUFUNC(op_2068_0), 8296 }, /* MOVEA */ + { CPUFUNC(op_2070_0), 8304 }, /* MOVEA */ + { CPUFUNC(op_2078_0), 8312 }, /* MOVEA */ + { CPUFUNC(op_2079_0), 8313 }, /* MOVEA */ + { CPUFUNC(op_207a_0), 8314 }, /* MOVEA */ + { CPUFUNC(op_207b_0), 8315 }, /* MOVEA */ + { CPUFUNC(op_207c_0), 8316 }, /* MOVEA */ + { CPUFUNC(op_2080_0), 8320 }, /* MOVE */ + { CPUFUNC(op_2088_0), 8328 }, /* MOVE */ + { CPUFUNC(op_2090_0), 8336 }, /* MOVE */ + { CPUFUNC(op_2098_0), 8344 }, /* MOVE */ + { CPUFUNC(op_20a0_0), 8352 }, /* MOVE */ + { CPUFUNC(op_20a8_0), 8360 }, /* MOVE */ + { CPUFUNC(op_20b0_0), 8368 }, /* MOVE */ + { CPUFUNC(op_20b8_0), 8376 }, /* MOVE */ + { CPUFUNC(op_20b9_0), 8377 }, /* MOVE */ + { CPUFUNC(op_20ba_0), 8378 }, /* MOVE */ + { CPUFUNC(op_20bb_0), 8379 }, /* MOVE */ + { CPUFUNC(op_20bc_0), 8380 }, /* MOVE */ + { CPUFUNC(op_20c0_0), 8384 }, /* MOVE */ + { CPUFUNC(op_20c8_0), 8392 }, /* MOVE */ + { CPUFUNC(op_20d0_0), 8400 }, /* MOVE */ + { CPUFUNC(op_20d8_0), 8408 }, /* MOVE */ + { CPUFUNC(op_20e0_0), 8416 }, /* MOVE */ + { CPUFUNC(op_20e8_0), 8424 }, /* MOVE */ + { CPUFUNC(op_20f0_0), 8432 }, /* MOVE */ + { CPUFUNC(op_20f8_0), 8440 }, /* MOVE */ + { CPUFUNC(op_20f9_0), 8441 }, /* MOVE */ + { CPUFUNC(op_20fa_0), 8442 }, /* MOVE */ + { CPUFUNC(op_20fb_0), 8443 }, /* MOVE */ + { CPUFUNC(op_20fc_0), 8444 }, /* MOVE */ + { CPUFUNC(op_2100_0), 8448 }, /* MOVE */ + { CPUFUNC(op_2108_0), 8456 }, /* MOVE */ + { CPUFUNC(op_2110_0), 8464 }, /* MOVE */ + { CPUFUNC(op_2118_0), 8472 }, /* MOVE */ + { CPUFUNC(op_2120_0), 8480 }, /* MOVE */ + { CPUFUNC(op_2128_0), 8488 }, /* MOVE */ + { CPUFUNC(op_2130_0), 8496 }, /* MOVE */ + { CPUFUNC(op_2138_0), 8504 }, /* MOVE */ + { CPUFUNC(op_2139_0), 8505 }, /* MOVE */ + { CPUFUNC(op_213a_0), 8506 }, /* MOVE */ + { CPUFUNC(op_213b_0), 8507 }, /* MOVE */ + { CPUFUNC(op_213c_0), 8508 }, /* MOVE */ + { CPUFUNC(op_2140_0), 8512 }, /* MOVE */ + { CPUFUNC(op_2148_0), 8520 }, /* MOVE */ + { CPUFUNC(op_2150_0), 8528 }, /* MOVE */ + { CPUFUNC(op_2158_0), 8536 }, /* MOVE */ + { CPUFUNC(op_2160_0), 8544 }, /* MOVE */ + { CPUFUNC(op_2168_0), 8552 }, /* MOVE */ + { CPUFUNC(op_2170_0), 8560 }, /* MOVE */ + { CPUFUNC(op_2178_0), 8568 }, /* MOVE */ + { CPUFUNC(op_2179_0), 8569 }, /* MOVE */ + { CPUFUNC(op_217a_0), 8570 }, /* MOVE */ + { CPUFUNC(op_217b_0), 8571 }, /* MOVE */ + { CPUFUNC(op_217c_0), 8572 }, /* MOVE */ + { CPUFUNC(op_2180_0), 8576 }, /* MOVE */ + { CPUFUNC(op_2188_0), 8584 }, /* MOVE */ + { CPUFUNC(op_2190_0), 8592 }, /* MOVE */ + { CPUFUNC(op_2198_0), 8600 }, /* MOVE */ + { CPUFUNC(op_21a0_0), 8608 }, /* MOVE */ + { CPUFUNC(op_21a8_0), 8616 }, /* MOVE */ + { CPUFUNC(op_21b0_0), 8624 }, /* MOVE */ + { CPUFUNC(op_21b8_0), 8632 }, /* MOVE */ + { CPUFUNC(op_21b9_0), 8633 }, /* MOVE */ + { CPUFUNC(op_21ba_0), 8634 }, /* MOVE */ + { CPUFUNC(op_21bb_0), 8635 }, /* MOVE */ + { CPUFUNC(op_21bc_0), 8636 }, /* MOVE */ + { CPUFUNC(op_21c0_0), 8640 }, /* MOVE */ + { CPUFUNC(op_21c8_0), 8648 }, /* MOVE */ + { CPUFUNC(op_21d0_0), 8656 }, /* MOVE */ + { CPUFUNC(op_21d8_0), 8664 }, /* MOVE */ + { CPUFUNC(op_21e0_0), 8672 }, /* MOVE */ + { CPUFUNC(op_21e8_0), 8680 }, /* MOVE */ + { CPUFUNC(op_21f0_0), 8688 }, /* MOVE */ + { CPUFUNC(op_21f8_0), 8696 }, /* MOVE */ + { CPUFUNC(op_21f9_0), 8697 }, /* MOVE */ + { CPUFUNC(op_21fa_0), 8698 }, /* MOVE */ + { CPUFUNC(op_21fb_0), 8699 }, /* MOVE */ + { CPUFUNC(op_21fc_0), 8700 }, /* MOVE */ + { CPUFUNC(op_23c0_0), 9152 }, /* MOVE */ + { CPUFUNC(op_23c8_0), 9160 }, /* MOVE */ + { CPUFUNC(op_23d0_0), 9168 }, /* MOVE */ + { CPUFUNC(op_23d8_0), 9176 }, /* MOVE */ + { CPUFUNC(op_23e0_0), 9184 }, /* MOVE */ + { CPUFUNC(op_23e8_0), 9192 }, /* MOVE */ + { CPUFUNC(op_23f0_0), 9200 }, /* MOVE */ + { CPUFUNC(op_23f8_0), 9208 }, /* MOVE */ + { CPUFUNC(op_23f9_0), 9209 }, /* MOVE */ + { CPUFUNC(op_23fa_0), 9210 }, /* MOVE */ + { CPUFUNC(op_23fb_0), 9211 }, /* MOVE */ + { CPUFUNC(op_23fc_0), 9212 }, /* MOVE */ + { CPUFUNC(op_3000_0), 12288 }, /* MOVE */ + { CPUFUNC(op_3008_0), 12296 }, /* MOVE */ + { CPUFUNC(op_3010_0), 12304 }, /* MOVE */ + { CPUFUNC(op_3018_0), 12312 }, /* MOVE */ + { CPUFUNC(op_3020_0), 12320 }, /* MOVE */ + { CPUFUNC(op_3028_0), 12328 }, /* MOVE */ + { CPUFUNC(op_3030_0), 12336 }, /* MOVE */ + { CPUFUNC(op_3038_0), 12344 }, /* MOVE */ + { CPUFUNC(op_3039_0), 12345 }, /* MOVE */ + { CPUFUNC(op_303a_0), 12346 }, /* MOVE */ + { CPUFUNC(op_303b_0), 12347 }, /* MOVE */ + { CPUFUNC(op_303c_0), 12348 }, /* MOVE */ + { CPUFUNC(op_3040_0), 12352 }, /* MOVEA */ + { CPUFUNC(op_3048_0), 12360 }, /* MOVEA */ + { CPUFUNC(op_3050_0), 12368 }, /* MOVEA */ + { CPUFUNC(op_3058_0), 12376 }, /* MOVEA */ + { CPUFUNC(op_3060_0), 12384 }, /* MOVEA */ + { CPUFUNC(op_3068_0), 12392 }, /* MOVEA */ + { CPUFUNC(op_3070_0), 12400 }, /* MOVEA */ + { CPUFUNC(op_3078_0), 12408 }, /* MOVEA */ + { CPUFUNC(op_3079_0), 12409 }, /* MOVEA */ + { CPUFUNC(op_307a_0), 12410 }, /* MOVEA */ + { CPUFUNC(op_307b_0), 12411 }, /* MOVEA */ + { CPUFUNC(op_307c_0), 12412 }, /* MOVEA */ + { CPUFUNC(op_3080_0), 12416 }, /* MOVE */ + { CPUFUNC(op_3088_0), 12424 }, /* MOVE */ + { CPUFUNC(op_3090_0), 12432 }, /* MOVE */ + { CPUFUNC(op_3098_0), 12440 }, /* MOVE */ + { CPUFUNC(op_30a0_0), 12448 }, /* MOVE */ + { CPUFUNC(op_30a8_0), 12456 }, /* MOVE */ + { CPUFUNC(op_30b0_0), 12464 }, /* MOVE */ + { CPUFUNC(op_30b8_0), 12472 }, /* MOVE */ + { CPUFUNC(op_30b9_0), 12473 }, /* MOVE */ + { CPUFUNC(op_30ba_0), 12474 }, /* MOVE */ + { CPUFUNC(op_30bb_0), 12475 }, /* MOVE */ + { CPUFUNC(op_30bc_0), 12476 }, /* MOVE */ + { CPUFUNC(op_30c0_0), 12480 }, /* MOVE */ + { CPUFUNC(op_30c8_0), 12488 }, /* MOVE */ + { CPUFUNC(op_30d0_0), 12496 }, /* MOVE */ + { CPUFUNC(op_30d8_0), 12504 }, /* MOVE */ + { CPUFUNC(op_30e0_0), 12512 }, /* MOVE */ + { CPUFUNC(op_30e8_0), 12520 }, /* MOVE */ + { CPUFUNC(op_30f0_0), 12528 }, /* MOVE */ + { CPUFUNC(op_30f8_0), 12536 }, /* MOVE */ + { CPUFUNC(op_30f9_0), 12537 }, /* MOVE */ + { CPUFUNC(op_30fa_0), 12538 }, /* MOVE */ + { CPUFUNC(op_30fb_0), 12539 }, /* MOVE */ + { CPUFUNC(op_30fc_0), 12540 }, /* MOVE */ + { CPUFUNC(op_3100_0), 12544 }, /* MOVE */ + { CPUFUNC(op_3108_0), 12552 }, /* MOVE */ + { CPUFUNC(op_3110_0), 12560 }, /* MOVE */ + { CPUFUNC(op_3118_0), 12568 }, /* MOVE */ + { CPUFUNC(op_3120_0), 12576 }, /* MOVE */ + { CPUFUNC(op_3128_0), 12584 }, /* MOVE */ + { CPUFUNC(op_3130_0), 12592 }, /* MOVE */ + { CPUFUNC(op_3138_0), 12600 }, /* MOVE */ + { CPUFUNC(op_3139_0), 12601 }, /* MOVE */ + { CPUFUNC(op_313a_0), 12602 }, /* MOVE */ + { CPUFUNC(op_313b_0), 12603 }, /* MOVE */ + { CPUFUNC(op_313c_0), 12604 }, /* MOVE */ + { CPUFUNC(op_3140_0), 12608 }, /* MOVE */ + { CPUFUNC(op_3148_0), 12616 }, /* MOVE */ + { CPUFUNC(op_3150_0), 12624 }, /* MOVE */ + { CPUFUNC(op_3158_0), 12632 }, /* MOVE */ + { CPUFUNC(op_3160_0), 12640 }, /* MOVE */ + { CPUFUNC(op_3168_0), 12648 }, /* MOVE */ + { CPUFUNC(op_3170_0), 12656 }, /* MOVE */ + { CPUFUNC(op_3178_0), 12664 }, /* MOVE */ + { CPUFUNC(op_3179_0), 12665 }, /* MOVE */ + { CPUFUNC(op_317a_0), 12666 }, /* MOVE */ + { CPUFUNC(op_317b_0), 12667 }, /* MOVE */ + { CPUFUNC(op_317c_0), 12668 }, /* MOVE */ + { CPUFUNC(op_3180_0), 12672 }, /* MOVE */ + { CPUFUNC(op_3188_0), 12680 }, /* MOVE */ + { CPUFUNC(op_3190_0), 12688 }, /* MOVE */ + { CPUFUNC(op_3198_0), 12696 }, /* MOVE */ + { CPUFUNC(op_31a0_0), 12704 }, /* MOVE */ + { CPUFUNC(op_31a8_0), 12712 }, /* MOVE */ + { CPUFUNC(op_31b0_0), 12720 }, /* MOVE */ + { CPUFUNC(op_31b8_0), 12728 }, /* MOVE */ + { CPUFUNC(op_31b9_0), 12729 }, /* MOVE */ + { CPUFUNC(op_31ba_0), 12730 }, /* MOVE */ + { CPUFUNC(op_31bb_0), 12731 }, /* MOVE */ + { CPUFUNC(op_31bc_0), 12732 }, /* MOVE */ + { CPUFUNC(op_31c0_0), 12736 }, /* MOVE */ + { CPUFUNC(op_31c8_0), 12744 }, /* MOVE */ + { CPUFUNC(op_31d0_0), 12752 }, /* MOVE */ + { CPUFUNC(op_31d8_0), 12760 }, /* MOVE */ + { CPUFUNC(op_31e0_0), 12768 }, /* MOVE */ + { CPUFUNC(op_31e8_0), 12776 }, /* MOVE */ + { CPUFUNC(op_31f0_0), 12784 }, /* MOVE */ + { CPUFUNC(op_31f8_0), 12792 }, /* MOVE */ + { CPUFUNC(op_31f9_0), 12793 }, /* MOVE */ + { CPUFUNC(op_31fa_0), 12794 }, /* MOVE */ + { CPUFUNC(op_31fb_0), 12795 }, /* MOVE */ + { CPUFUNC(op_31fc_0), 12796 }, /* MOVE */ + { CPUFUNC(op_33c0_0), 13248 }, /* MOVE */ + { CPUFUNC(op_33c8_0), 13256 }, /* MOVE */ + { CPUFUNC(op_33d0_0), 13264 }, /* MOVE */ + { CPUFUNC(op_33d8_0), 13272 }, /* MOVE */ + { CPUFUNC(op_33e0_0), 13280 }, /* MOVE */ + { CPUFUNC(op_33e8_0), 13288 }, /* MOVE */ + { CPUFUNC(op_33f0_0), 13296 }, /* MOVE */ + { CPUFUNC(op_33f8_0), 13304 }, /* MOVE */ + { CPUFUNC(op_33f9_0), 13305 }, /* MOVE */ + { CPUFUNC(op_33fa_0), 13306 }, /* MOVE */ + { CPUFUNC(op_33fb_0), 13307 }, /* MOVE */ + { CPUFUNC(op_33fc_0), 13308 }, /* MOVE */ + { CPUFUNC(op_4000_0), 16384 }, /* NEGX */ + { CPUFUNC(op_4010_0), 16400 }, /* NEGX */ + { CPUFUNC(op_4018_0), 16408 }, /* NEGX */ + { CPUFUNC(op_4020_0), 16416 }, /* NEGX */ + { CPUFUNC(op_4028_0), 16424 }, /* NEGX */ + { CPUFUNC(op_4030_0), 16432 }, /* NEGX */ + { CPUFUNC(op_4038_0), 16440 }, /* NEGX */ + { CPUFUNC(op_4039_0), 16441 }, /* NEGX */ + { CPUFUNC(op_4040_0), 16448 }, /* NEGX */ + { CPUFUNC(op_4050_0), 16464 }, /* NEGX */ + { CPUFUNC(op_4058_0), 16472 }, /* NEGX */ + { CPUFUNC(op_4060_0), 16480 }, /* NEGX */ + { CPUFUNC(op_4068_0), 16488 }, /* NEGX */ + { CPUFUNC(op_4070_0), 16496 }, /* NEGX */ + { CPUFUNC(op_4078_0), 16504 }, /* NEGX */ + { CPUFUNC(op_4079_0), 16505 }, /* NEGX */ + { CPUFUNC(op_4080_0), 16512 }, /* NEGX */ + { CPUFUNC(op_4090_0), 16528 }, /* NEGX */ + { CPUFUNC(op_4098_0), 16536 }, /* NEGX */ + { CPUFUNC(op_40a0_0), 16544 }, /* NEGX */ + { CPUFUNC(op_40a8_0), 16552 }, /* NEGX */ + { CPUFUNC(op_40b0_0), 16560 }, /* NEGX */ + { CPUFUNC(op_40b8_0), 16568 }, /* NEGX */ + { CPUFUNC(op_40b9_0), 16569 }, /* NEGX */ + { CPUFUNC(op_40c0_0), 16576 }, /* MVSR2 */ + { CPUFUNC(op_40d0_0), 16592 }, /* MVSR2 */ + { CPUFUNC(op_40d8_0), 16600 }, /* MVSR2 */ + { CPUFUNC(op_40e0_0), 16608 }, /* MVSR2 */ + { CPUFUNC(op_40e8_0), 16616 }, /* MVSR2 */ + { CPUFUNC(op_40f0_0), 16624 }, /* MVSR2 */ + { CPUFUNC(op_40f8_0), 16632 }, /* MVSR2 */ + { CPUFUNC(op_40f9_0), 16633 }, /* MVSR2 */ + { CPUFUNC(op_4100_0), 16640 }, /* CHK */ + { CPUFUNC(op_4110_0), 16656 }, /* CHK */ + { CPUFUNC(op_4118_0), 16664 }, /* CHK */ + { CPUFUNC(op_4120_0), 16672 }, /* CHK */ + { CPUFUNC(op_4128_0), 16680 }, /* CHK */ + { CPUFUNC(op_4130_0), 16688 }, /* CHK */ + { CPUFUNC(op_4138_0), 16696 }, /* CHK */ + { CPUFUNC(op_4139_0), 16697 }, /* CHK */ + { CPUFUNC(op_413a_0), 16698 }, /* CHK */ + { CPUFUNC(op_413b_0), 16699 }, /* CHK */ + { CPUFUNC(op_413c_0), 16700 }, /* CHK */ + { CPUFUNC(op_4180_0), 16768 }, /* CHK */ + { CPUFUNC(op_4190_0), 16784 }, /* CHK */ + { CPUFUNC(op_4198_0), 16792 }, /* CHK */ + { CPUFUNC(op_41a0_0), 16800 }, /* CHK */ + { CPUFUNC(op_41a8_0), 16808 }, /* CHK */ + { CPUFUNC(op_41b0_0), 16816 }, /* CHK */ + { CPUFUNC(op_41b8_0), 16824 }, /* CHK */ + { CPUFUNC(op_41b9_0), 16825 }, /* CHK */ + { CPUFUNC(op_41ba_0), 16826 }, /* CHK */ + { CPUFUNC(op_41bb_0), 16827 }, /* CHK */ + { CPUFUNC(op_41bc_0), 16828 }, /* CHK */ + { CPUFUNC(op_41d0_0), 16848 }, /* LEA */ + { CPUFUNC(op_41e8_0), 16872 }, /* LEA */ + { CPUFUNC(op_41f0_0), 16880 }, /* LEA */ + { CPUFUNC(op_41f8_0), 16888 }, /* LEA */ + { CPUFUNC(op_41f9_0), 16889 }, /* LEA */ + { CPUFUNC(op_41fa_0), 16890 }, /* LEA */ + { CPUFUNC(op_41fb_0), 16891 }, /* LEA */ + { CPUFUNC(op_4200_0), 16896 }, /* CLR */ + { CPUFUNC(op_4210_0), 16912 }, /* CLR */ + { CPUFUNC(op_4218_0), 16920 }, /* CLR */ + { CPUFUNC(op_4220_0), 16928 }, /* CLR */ + { CPUFUNC(op_4228_0), 16936 }, /* CLR */ + { CPUFUNC(op_4230_0), 16944 }, /* CLR */ + { CPUFUNC(op_4238_0), 16952 }, /* CLR */ + { CPUFUNC(op_4239_0), 16953 }, /* CLR */ + { CPUFUNC(op_4240_0), 16960 }, /* CLR */ + { CPUFUNC(op_4250_0), 16976 }, /* CLR */ + { CPUFUNC(op_4258_0), 16984 }, /* CLR */ + { CPUFUNC(op_4260_0), 16992 }, /* CLR */ + { CPUFUNC(op_4268_0), 17000 }, /* CLR */ + { CPUFUNC(op_4270_0), 17008 }, /* CLR */ + { CPUFUNC(op_4278_0), 17016 }, /* CLR */ + { CPUFUNC(op_4279_0), 17017 }, /* CLR */ + { CPUFUNC(op_4280_0), 17024 }, /* CLR */ + { CPUFUNC(op_4290_0), 17040 }, /* CLR */ + { CPUFUNC(op_4298_0), 17048 }, /* CLR */ + { CPUFUNC(op_42a0_0), 17056 }, /* CLR */ + { CPUFUNC(op_42a8_0), 17064 }, /* CLR */ + { CPUFUNC(op_42b0_0), 17072 }, /* CLR */ + { CPUFUNC(op_42b8_0), 17080 }, /* CLR */ + { CPUFUNC(op_42b9_0), 17081 }, /* CLR */ + { CPUFUNC(op_42c0_0), 17088 }, /* MVSR2 */ + { CPUFUNC(op_42d0_0), 17104 }, /* MVSR2 */ + { CPUFUNC(op_42d8_0), 17112 }, /* MVSR2 */ + { CPUFUNC(op_42e0_0), 17120 }, /* MVSR2 */ + { CPUFUNC(op_42e8_0), 17128 }, /* MVSR2 */ + { CPUFUNC(op_42f0_0), 17136 }, /* MVSR2 */ + { CPUFUNC(op_42f8_0), 17144 }, /* MVSR2 */ + { CPUFUNC(op_42f9_0), 17145 }, /* MVSR2 */ + { CPUFUNC(op_4400_0), 17408 }, /* NEG */ + { CPUFUNC(op_4410_0), 17424 }, /* NEG */ + { CPUFUNC(op_4418_0), 17432 }, /* NEG */ + { CPUFUNC(op_4420_0), 17440 }, /* NEG */ + { CPUFUNC(op_4428_0), 17448 }, /* NEG */ + { CPUFUNC(op_4430_0), 17456 }, /* NEG */ + { CPUFUNC(op_4438_0), 17464 }, /* NEG */ + { CPUFUNC(op_4439_0), 17465 }, /* NEG */ + { CPUFUNC(op_4440_0), 17472 }, /* NEG */ + { CPUFUNC(op_4450_0), 17488 }, /* NEG */ + { CPUFUNC(op_4458_0), 17496 }, /* NEG */ + { CPUFUNC(op_4460_0), 17504 }, /* NEG */ + { CPUFUNC(op_4468_0), 17512 }, /* NEG */ + { CPUFUNC(op_4470_0), 17520 }, /* NEG */ + { CPUFUNC(op_4478_0), 17528 }, /* NEG */ + { CPUFUNC(op_4479_0), 17529 }, /* NEG */ + { CPUFUNC(op_4480_0), 17536 }, /* NEG */ + { CPUFUNC(op_4490_0), 17552 }, /* NEG */ + { CPUFUNC(op_4498_0), 17560 }, /* NEG */ + { CPUFUNC(op_44a0_0), 17568 }, /* NEG */ + { CPUFUNC(op_44a8_0), 17576 }, /* NEG */ + { CPUFUNC(op_44b0_0), 17584 }, /* NEG */ + { CPUFUNC(op_44b8_0), 17592 }, /* NEG */ + { CPUFUNC(op_44b9_0), 17593 }, /* NEG */ + { CPUFUNC(op_44c0_0), 17600 }, /* MV2SR */ + { CPUFUNC(op_44d0_0), 17616 }, /* MV2SR */ + { CPUFUNC(op_44d8_0), 17624 }, /* MV2SR */ + { CPUFUNC(op_44e0_0), 17632 }, /* MV2SR */ + { CPUFUNC(op_44e8_0), 17640 }, /* MV2SR */ + { CPUFUNC(op_44f0_0), 17648 }, /* MV2SR */ + { CPUFUNC(op_44f8_0), 17656 }, /* MV2SR */ + { CPUFUNC(op_44f9_0), 17657 }, /* MV2SR */ + { CPUFUNC(op_44fa_0), 17658 }, /* MV2SR */ + { CPUFUNC(op_44fb_0), 17659 }, /* MV2SR */ + { CPUFUNC(op_44fc_0), 17660 }, /* MV2SR */ + { CPUFUNC(op_4600_0), 17920 }, /* NOT */ + { CPUFUNC(op_4610_0), 17936 }, /* NOT */ + { CPUFUNC(op_4618_0), 17944 }, /* NOT */ + { CPUFUNC(op_4620_0), 17952 }, /* NOT */ + { CPUFUNC(op_4628_0), 17960 }, /* NOT */ + { CPUFUNC(op_4630_0), 17968 }, /* NOT */ + { CPUFUNC(op_4638_0), 17976 }, /* NOT */ + { CPUFUNC(op_4639_0), 17977 }, /* NOT */ + { CPUFUNC(op_4640_0), 17984 }, /* NOT */ + { CPUFUNC(op_4650_0), 18000 }, /* NOT */ + { CPUFUNC(op_4658_0), 18008 }, /* NOT */ + { CPUFUNC(op_4660_0), 18016 }, /* NOT */ + { CPUFUNC(op_4668_0), 18024 }, /* NOT */ + { CPUFUNC(op_4670_0), 18032 }, /* NOT */ + { CPUFUNC(op_4678_0), 18040 }, /* NOT */ + { CPUFUNC(op_4679_0), 18041 }, /* NOT */ + { CPUFUNC(op_4680_0), 18048 }, /* NOT */ + { CPUFUNC(op_4690_0), 18064 }, /* NOT */ + { CPUFUNC(op_4698_0), 18072 }, /* NOT */ + { CPUFUNC(op_46a0_0), 18080 }, /* NOT */ + { CPUFUNC(op_46a8_0), 18088 }, /* NOT */ + { CPUFUNC(op_46b0_0), 18096 }, /* NOT */ + { CPUFUNC(op_46b8_0), 18104 }, /* NOT */ + { CPUFUNC(op_46b9_0), 18105 }, /* NOT */ + { CPUFUNC(op_46c0_0), 18112 }, /* MV2SR */ + { CPUFUNC(op_46d0_0), 18128 }, /* MV2SR */ + { CPUFUNC(op_46d8_0), 18136 }, /* MV2SR */ + { CPUFUNC(op_46e0_0), 18144 }, /* MV2SR */ + { CPUFUNC(op_46e8_0), 18152 }, /* MV2SR */ + { CPUFUNC(op_46f0_0), 18160 }, /* MV2SR */ + { CPUFUNC(op_46f8_0), 18168 }, /* MV2SR */ + { CPUFUNC(op_46f9_0), 18169 }, /* MV2SR */ + { CPUFUNC(op_46fa_0), 18170 }, /* MV2SR */ + { CPUFUNC(op_46fb_0), 18171 }, /* MV2SR */ + { CPUFUNC(op_46fc_0), 18172 }, /* MV2SR */ + { CPUFUNC(op_4800_0), 18432 }, /* NBCD */ + { CPUFUNC(op_4808_0), 18440 }, /* LINK */ + { CPUFUNC(op_4810_0), 18448 }, /* NBCD */ + { CPUFUNC(op_4818_0), 18456 }, /* NBCD */ + { CPUFUNC(op_4820_0), 18464 }, /* NBCD */ + { CPUFUNC(op_4828_0), 18472 }, /* NBCD */ + { CPUFUNC(op_4830_0), 18480 }, /* NBCD */ + { CPUFUNC(op_4838_0), 18488 }, /* NBCD */ + { CPUFUNC(op_4839_0), 18489 }, /* NBCD */ + { CPUFUNC(op_4840_0), 18496 }, /* SWAP */ + { CPUFUNC(op_4848_0), 18504 }, /* BKPT */ + { CPUFUNC(op_4850_0), 18512 }, /* PEA */ + { CPUFUNC(op_4868_0), 18536 }, /* PEA */ + { CPUFUNC(op_4870_0), 18544 }, /* PEA */ + { CPUFUNC(op_4878_0), 18552 }, /* PEA */ + { CPUFUNC(op_4879_0), 18553 }, /* PEA */ + { CPUFUNC(op_487a_0), 18554 }, /* PEA */ + { CPUFUNC(op_487b_0), 18555 }, /* PEA */ + { CPUFUNC(op_4880_0), 18560 }, /* EXT */ + { CPUFUNC(op_4890_0), 18576 }, /* MVMLE */ + { CPUFUNC(op_48a0_0), 18592 }, /* MVMLE */ + { CPUFUNC(op_48a8_0), 18600 }, /* MVMLE */ + { CPUFUNC(op_48b0_0), 18608 }, /* MVMLE */ + { CPUFUNC(op_48b8_0), 18616 }, /* MVMLE */ + { CPUFUNC(op_48b9_0), 18617 }, /* MVMLE */ + { CPUFUNC(op_48c0_0), 18624 }, /* EXT */ + { CPUFUNC(op_48d0_0), 18640 }, /* MVMLE */ + { CPUFUNC(op_48e0_0), 18656 }, /* MVMLE */ + { CPUFUNC(op_48e8_0), 18664 }, /* MVMLE */ + { CPUFUNC(op_48f0_0), 18672 }, /* MVMLE */ + { CPUFUNC(op_48f8_0), 18680 }, /* MVMLE */ + { CPUFUNC(op_48f9_0), 18681 }, /* MVMLE */ + { CPUFUNC(op_49c0_0), 18880 }, /* EXT */ + { CPUFUNC(op_4a00_0), 18944 }, /* TST */ + { CPUFUNC(op_4a10_0), 18960 }, /* TST */ + { CPUFUNC(op_4a18_0), 18968 }, /* TST */ + { CPUFUNC(op_4a20_0), 18976 }, /* TST */ + { CPUFUNC(op_4a28_0), 18984 }, /* TST */ + { CPUFUNC(op_4a30_0), 18992 }, /* TST */ + { CPUFUNC(op_4a38_0), 19000 }, /* TST */ + { CPUFUNC(op_4a39_0), 19001 }, /* TST */ + { CPUFUNC(op_4a3a_0), 19002 }, /* TST */ + { CPUFUNC(op_4a3b_0), 19003 }, /* TST */ + { CPUFUNC(op_4a3c_0), 19004 }, /* TST */ + { CPUFUNC(op_4a40_0), 19008 }, /* TST */ + { CPUFUNC(op_4a48_0), 19016 }, /* TST */ + { CPUFUNC(op_4a50_0), 19024 }, /* TST */ + { CPUFUNC(op_4a58_0), 19032 }, /* TST */ + { CPUFUNC(op_4a60_0), 19040 }, /* TST */ + { CPUFUNC(op_4a68_0), 19048 }, /* TST */ + { CPUFUNC(op_4a70_0), 19056 }, /* TST */ + { CPUFUNC(op_4a78_0), 19064 }, /* TST */ + { CPUFUNC(op_4a79_0), 19065 }, /* TST */ + { CPUFUNC(op_4a7a_0), 19066 }, /* TST */ + { CPUFUNC(op_4a7b_0), 19067 }, /* TST */ + { CPUFUNC(op_4a7c_0), 19068 }, /* TST */ + { CPUFUNC(op_4a80_0), 19072 }, /* TST */ + { CPUFUNC(op_4a88_0), 19080 }, /* TST */ + { CPUFUNC(op_4a90_0), 19088 }, /* TST */ + { CPUFUNC(op_4a98_0), 19096 }, /* TST */ + { CPUFUNC(op_4aa0_0), 19104 }, /* TST */ + { CPUFUNC(op_4aa8_0), 19112 }, /* TST */ + { CPUFUNC(op_4ab0_0), 19120 }, /* TST */ + { CPUFUNC(op_4ab8_0), 19128 }, /* TST */ + { CPUFUNC(op_4ab9_0), 19129 }, /* TST */ + { CPUFUNC(op_4aba_0), 19130 }, /* TST */ + { CPUFUNC(op_4abb_0), 19131 }, /* TST */ + { CPUFUNC(op_4abc_0), 19132 }, /* TST */ + { CPUFUNC(op_4ac0_0), 19136 }, /* TAS */ + { CPUFUNC(op_4ad0_0), 19152 }, /* TAS */ + { CPUFUNC(op_4ad8_0), 19160 }, /* TAS */ + { CPUFUNC(op_4ae0_0), 19168 }, /* TAS */ + { CPUFUNC(op_4ae8_0), 19176 }, /* TAS */ + { CPUFUNC(op_4af0_0), 19184 }, /* TAS */ + { CPUFUNC(op_4af8_0), 19192 }, /* TAS */ + { CPUFUNC(op_4af9_0), 19193 }, /* TAS */ + { CPUFUNC(op_4c00_0), 19456 }, /* MULL */ + { CPUFUNC(op_4c10_0), 19472 }, /* MULL */ + { CPUFUNC(op_4c18_0), 19480 }, /* MULL */ + { CPUFUNC(op_4c20_0), 19488 }, /* MULL */ + { CPUFUNC(op_4c28_0), 19496 }, /* MULL */ + { CPUFUNC(op_4c30_0), 19504 }, /* MULL */ + { CPUFUNC(op_4c38_0), 19512 }, /* MULL */ + { CPUFUNC(op_4c39_0), 19513 }, /* MULL */ + { CPUFUNC(op_4c3a_0), 19514 }, /* MULL */ + { CPUFUNC(op_4c3b_0), 19515 }, /* MULL */ + { CPUFUNC(op_4c3c_0), 19516 }, /* MULL */ + { CPUFUNC(op_4c40_0), 19520 }, /* DIVL */ + { CPUFUNC(op_4c50_0), 19536 }, /* DIVL */ + { CPUFUNC(op_4c58_0), 19544 }, /* DIVL */ + { CPUFUNC(op_4c60_0), 19552 }, /* DIVL */ + { CPUFUNC(op_4c68_0), 19560 }, /* DIVL */ + { CPUFUNC(op_4c70_0), 19568 }, /* DIVL */ + { CPUFUNC(op_4c78_0), 19576 }, /* DIVL */ + { CPUFUNC(op_4c79_0), 19577 }, /* DIVL */ + { CPUFUNC(op_4c7a_0), 19578 }, /* DIVL */ + { CPUFUNC(op_4c7b_0), 19579 }, /* DIVL */ + { CPUFUNC(op_4c7c_0), 19580 }, /* DIVL */ + { CPUFUNC(op_4c90_0), 19600 }, /* MVMEL */ + { CPUFUNC(op_4c98_0), 19608 }, /* MVMEL */ + { CPUFUNC(op_4ca8_0), 19624 }, /* MVMEL */ + { CPUFUNC(op_4cb0_0), 19632 }, /* MVMEL */ + { CPUFUNC(op_4cb8_0), 19640 }, /* MVMEL */ + { CPUFUNC(op_4cb9_0), 19641 }, /* MVMEL */ + { CPUFUNC(op_4cba_0), 19642 }, /* MVMEL */ + { CPUFUNC(op_4cbb_0), 19643 }, /* MVMEL */ + { CPUFUNC(op_4cd0_0), 19664 }, /* MVMEL */ + { CPUFUNC(op_4cd8_0), 19672 }, /* MVMEL */ + { CPUFUNC(op_4ce8_0), 19688 }, /* MVMEL */ + { CPUFUNC(op_4cf0_0), 19696 }, /* MVMEL */ + { CPUFUNC(op_4cf8_0), 19704 }, /* MVMEL */ + { CPUFUNC(op_4cf9_0), 19705 }, /* MVMEL */ + { CPUFUNC(op_4cfa_0), 19706 }, /* MVMEL */ + { CPUFUNC(op_4cfb_0), 19707 }, /* MVMEL */ + { CPUFUNC(op_4e40_0), 20032 }, /* TRAP */ + { CPUFUNC(op_4e50_0), 20048 }, /* LINK */ + { CPUFUNC(op_4e58_0), 20056 }, /* UNLK */ + { CPUFUNC(op_4e60_0), 20064 }, /* MVR2USP */ + { CPUFUNC(op_4e68_0), 20072 }, /* MVUSP2R */ + { CPUFUNC(op_4e70_0), 20080 }, /* RESET */ + { CPUFUNC(op_4e71_0), 20081 }, /* NOP */ + { CPUFUNC(op_4e72_0), 20082 }, /* STOP */ + { CPUFUNC(op_4e73_0), 20083 }, /* RTE */ + { CPUFUNC(op_4e74_0), 20084 }, /* RTD */ + { CPUFUNC(op_4e75_0), 20085 }, /* RTS */ + { CPUFUNC(op_4e76_0), 20086 }, /* TRAPV */ + { CPUFUNC(op_4e77_0), 20087 }, /* RTR */ + { CPUFUNC(op_4e7a_0), 20090 }, /* MOVEC2 */ + { CPUFUNC(op_4e7b_0), 20091 }, /* MOVE2C */ + { CPUFUNC(op_4e90_0), 20112 }, /* JSR */ + { CPUFUNC(op_4ea8_0), 20136 }, /* JSR */ + { CPUFUNC(op_4eb0_0), 20144 }, /* JSR */ + { CPUFUNC(op_4eb8_0), 20152 }, /* JSR */ + { CPUFUNC(op_4eb9_0), 20153 }, /* JSR */ + { CPUFUNC(op_4eba_0), 20154 }, /* JSR */ + { CPUFUNC(op_4ebb_0), 20155 }, /* JSR */ + { CPUFUNC(op_4ed0_0), 20176 }, /* JMP */ + { CPUFUNC(op_4ee8_0), 20200 }, /* JMP */ + { CPUFUNC(op_4ef0_0), 20208 }, /* JMP */ + { CPUFUNC(op_4ef8_0), 20216 }, /* JMP */ + { CPUFUNC(op_4ef9_0), 20217 }, /* JMP */ + { CPUFUNC(op_4efa_0), 20218 }, /* JMP */ + { CPUFUNC(op_4efb_0), 20219 }, /* JMP */ + { CPUFUNC(op_5000_0), 20480 }, /* ADD */ + { CPUFUNC(op_5010_0), 20496 }, /* ADD */ + { CPUFUNC(op_5018_0), 20504 }, /* ADD */ + { CPUFUNC(op_5020_0), 20512 }, /* ADD */ + { CPUFUNC(op_5028_0), 20520 }, /* ADD */ + { CPUFUNC(op_5030_0), 20528 }, /* ADD */ + { CPUFUNC(op_5038_0), 20536 }, /* ADD */ + { CPUFUNC(op_5039_0), 20537 }, /* ADD */ + { CPUFUNC(op_5040_0), 20544 }, /* ADD */ + { CPUFUNC(op_5048_0), 20552 }, /* ADDA */ + { CPUFUNC(op_5050_0), 20560 }, /* ADD */ + { CPUFUNC(op_5058_0), 20568 }, /* ADD */ + { CPUFUNC(op_5060_0), 20576 }, /* ADD */ + { CPUFUNC(op_5068_0), 20584 }, /* ADD */ + { CPUFUNC(op_5070_0), 20592 }, /* ADD */ + { CPUFUNC(op_5078_0), 20600 }, /* ADD */ + { CPUFUNC(op_5079_0), 20601 }, /* ADD */ + { CPUFUNC(op_5080_0), 20608 }, /* ADD */ + { CPUFUNC(op_5088_0), 20616 }, /* ADDA */ + { CPUFUNC(op_5090_0), 20624 }, /* ADD */ + { CPUFUNC(op_5098_0), 20632 }, /* ADD */ + { CPUFUNC(op_50a0_0), 20640 }, /* ADD */ + { CPUFUNC(op_50a8_0), 20648 }, /* ADD */ + { CPUFUNC(op_50b0_0), 20656 }, /* ADD */ + { CPUFUNC(op_50b8_0), 20664 }, /* ADD */ + { CPUFUNC(op_50b9_0), 20665 }, /* ADD */ + { CPUFUNC(op_50c0_0), 20672 }, /* Scc */ + { CPUFUNC(op_50c8_0), 20680 }, /* DBcc */ + { CPUFUNC(op_50d0_0), 20688 }, /* Scc */ + { CPUFUNC(op_50d8_0), 20696 }, /* Scc */ + { CPUFUNC(op_50e0_0), 20704 }, /* Scc */ + { CPUFUNC(op_50e8_0), 20712 }, /* Scc */ + { CPUFUNC(op_50f0_0), 20720 }, /* Scc */ + { CPUFUNC(op_50f8_0), 20728 }, /* Scc */ + { CPUFUNC(op_50f9_0), 20729 }, /* Scc */ + { CPUFUNC(op_50fa_0), 20730 }, /* TRAPcc */ + { CPUFUNC(op_50fb_0), 20731 }, /* TRAPcc */ + { CPUFUNC(op_50fc_0), 20732 }, /* TRAPcc */ + { CPUFUNC(op_5100_0), 20736 }, /* SUB */ + { CPUFUNC(op_5110_0), 20752 }, /* SUB */ + { CPUFUNC(op_5118_0), 20760 }, /* SUB */ + { CPUFUNC(op_5120_0), 20768 }, /* SUB */ + { CPUFUNC(op_5128_0), 20776 }, /* SUB */ + { CPUFUNC(op_5130_0), 20784 }, /* SUB */ + { CPUFUNC(op_5138_0), 20792 }, /* SUB */ + { CPUFUNC(op_5139_0), 20793 }, /* SUB */ + { CPUFUNC(op_5140_0), 20800 }, /* SUB */ + { CPUFUNC(op_5148_0), 20808 }, /* SUBA */ + { CPUFUNC(op_5150_0), 20816 }, /* SUB */ + { CPUFUNC(op_5158_0), 20824 }, /* SUB */ + { CPUFUNC(op_5160_0), 20832 }, /* SUB */ + { CPUFUNC(op_5168_0), 20840 }, /* SUB */ + { CPUFUNC(op_5170_0), 20848 }, /* SUB */ + { CPUFUNC(op_5178_0), 20856 }, /* SUB */ + { CPUFUNC(op_5179_0), 20857 }, /* SUB */ + { CPUFUNC(op_5180_0), 20864 }, /* SUB */ + { CPUFUNC(op_5188_0), 20872 }, /* SUBA */ + { CPUFUNC(op_5190_0), 20880 }, /* SUB */ + { CPUFUNC(op_5198_0), 20888 }, /* SUB */ + { CPUFUNC(op_51a0_0), 20896 }, /* SUB */ + { CPUFUNC(op_51a8_0), 20904 }, /* SUB */ + { CPUFUNC(op_51b0_0), 20912 }, /* SUB */ + { CPUFUNC(op_51b8_0), 20920 }, /* SUB */ + { CPUFUNC(op_51b9_0), 20921 }, /* SUB */ + { CPUFUNC(op_51c0_0), 20928 }, /* Scc */ + { CPUFUNC(op_51c8_0), 20936 }, /* DBcc */ + { CPUFUNC(op_51d0_0), 20944 }, /* Scc */ + { CPUFUNC(op_51d8_0), 20952 }, /* Scc */ + { CPUFUNC(op_51e0_0), 20960 }, /* Scc */ + { CPUFUNC(op_51e8_0), 20968 }, /* Scc */ + { CPUFUNC(op_51f0_0), 20976 }, /* Scc */ + { CPUFUNC(op_51f8_0), 20984 }, /* Scc */ + { CPUFUNC(op_51f9_0), 20985 }, /* Scc */ + { CPUFUNC(op_51fa_0), 20986 }, /* TRAPcc */ + { CPUFUNC(op_51fb_0), 20987 }, /* TRAPcc */ + { CPUFUNC(op_51fc_0), 20988 }, /* TRAPcc */ + { CPUFUNC(op_52c0_0), 21184 }, /* Scc */ + { CPUFUNC(op_52c8_0), 21192 }, /* DBcc */ + { CPUFUNC(op_52d0_0), 21200 }, /* Scc */ + { CPUFUNC(op_52d8_0), 21208 }, /* Scc */ + { CPUFUNC(op_52e0_0), 21216 }, /* Scc */ + { CPUFUNC(op_52e8_0), 21224 }, /* Scc */ + { CPUFUNC(op_52f0_0), 21232 }, /* Scc */ + { CPUFUNC(op_52f8_0), 21240 }, /* Scc */ + { CPUFUNC(op_52f9_0), 21241 }, /* Scc */ + { CPUFUNC(op_52fa_0), 21242 }, /* TRAPcc */ + { CPUFUNC(op_52fb_0), 21243 }, /* TRAPcc */ + { CPUFUNC(op_52fc_0), 21244 }, /* TRAPcc */ + { CPUFUNC(op_53c0_0), 21440 }, /* Scc */ + { CPUFUNC(op_53c8_0), 21448 }, /* DBcc */ + { CPUFUNC(op_53d0_0), 21456 }, /* Scc */ + { CPUFUNC(op_53d8_0), 21464 }, /* Scc */ + { CPUFUNC(op_53e0_0), 21472 }, /* Scc */ + { CPUFUNC(op_53e8_0), 21480 }, /* Scc */ + { CPUFUNC(op_53f0_0), 21488 }, /* Scc */ + { CPUFUNC(op_53f8_0), 21496 }, /* Scc */ + { CPUFUNC(op_53f9_0), 21497 }, /* Scc */ + { CPUFUNC(op_53fa_0), 21498 }, /* TRAPcc */ + { CPUFUNC(op_53fb_0), 21499 }, /* TRAPcc */ + { CPUFUNC(op_53fc_0), 21500 }, /* TRAPcc */ + { CPUFUNC(op_54c0_0), 21696 }, /* Scc */ + { CPUFUNC(op_54c8_0), 21704 }, /* DBcc */ + { CPUFUNC(op_54d0_0), 21712 }, /* Scc */ + { CPUFUNC(op_54d8_0), 21720 }, /* Scc */ + { CPUFUNC(op_54e0_0), 21728 }, /* Scc */ + { CPUFUNC(op_54e8_0), 21736 }, /* Scc */ + { CPUFUNC(op_54f0_0), 21744 }, /* Scc */ + { CPUFUNC(op_54f8_0), 21752 }, /* Scc */ + { CPUFUNC(op_54f9_0), 21753 }, /* Scc */ + { CPUFUNC(op_54fa_0), 21754 }, /* TRAPcc */ + { CPUFUNC(op_54fb_0), 21755 }, /* TRAPcc */ + { CPUFUNC(op_54fc_0), 21756 }, /* TRAPcc */ + { CPUFUNC(op_55c0_0), 21952 }, /* Scc */ + { CPUFUNC(op_55c8_0), 21960 }, /* DBcc */ + { CPUFUNC(op_55d0_0), 21968 }, /* Scc */ + { CPUFUNC(op_55d8_0), 21976 }, /* Scc */ + { CPUFUNC(op_55e0_0), 21984 }, /* Scc */ + { CPUFUNC(op_55e8_0), 21992 }, /* Scc */ + { CPUFUNC(op_55f0_0), 22000 }, /* Scc */ + { CPUFUNC(op_55f8_0), 22008 }, /* Scc */ + { CPUFUNC(op_55f9_0), 22009 }, /* Scc */ + { CPUFUNC(op_55fa_0), 22010 }, /* TRAPcc */ + { CPUFUNC(op_55fb_0), 22011 }, /* TRAPcc */ + { CPUFUNC(op_55fc_0), 22012 }, /* TRAPcc */ + { CPUFUNC(op_56c0_0), 22208 }, /* Scc */ + { CPUFUNC(op_56c8_0), 22216 }, /* DBcc */ + { CPUFUNC(op_56d0_0), 22224 }, /* Scc */ + { CPUFUNC(op_56d8_0), 22232 }, /* Scc */ + { CPUFUNC(op_56e0_0), 22240 }, /* Scc */ + { CPUFUNC(op_56e8_0), 22248 }, /* Scc */ + { CPUFUNC(op_56f0_0), 22256 }, /* Scc */ + { CPUFUNC(op_56f8_0), 22264 }, /* Scc */ + { CPUFUNC(op_56f9_0), 22265 }, /* Scc */ + { CPUFUNC(op_56fa_0), 22266 }, /* TRAPcc */ + { CPUFUNC(op_56fb_0), 22267 }, /* TRAPcc */ + { CPUFUNC(op_56fc_0), 22268 }, /* TRAPcc */ + { CPUFUNC(op_57c0_0), 22464 }, /* Scc */ + { CPUFUNC(op_57c8_0), 22472 }, /* DBcc */ + { CPUFUNC(op_57d0_0), 22480 }, /* Scc */ + { CPUFUNC(op_57d8_0), 22488 }, /* Scc */ + { CPUFUNC(op_57e0_0), 22496 }, /* Scc */ + { CPUFUNC(op_57e8_0), 22504 }, /* Scc */ + { CPUFUNC(op_57f0_0), 22512 }, /* Scc */ + { CPUFUNC(op_57f8_0), 22520 }, /* Scc */ + { CPUFUNC(op_57f9_0), 22521 }, /* Scc */ + { CPUFUNC(op_57fa_0), 22522 }, /* TRAPcc */ + { CPUFUNC(op_57fb_0), 22523 }, /* TRAPcc */ + { CPUFUNC(op_57fc_0), 22524 }, /* TRAPcc */ + { CPUFUNC(op_58c0_0), 22720 }, /* Scc */ + { CPUFUNC(op_58c8_0), 22728 }, /* DBcc */ + { CPUFUNC(op_58d0_0), 22736 }, /* Scc */ + { CPUFUNC(op_58d8_0), 22744 }, /* Scc */ + { CPUFUNC(op_58e0_0), 22752 }, /* Scc */ + { CPUFUNC(op_58e8_0), 22760 }, /* Scc */ + { CPUFUNC(op_58f0_0), 22768 }, /* Scc */ + { CPUFUNC(op_58f8_0), 22776 }, /* Scc */ + { CPUFUNC(op_58f9_0), 22777 }, /* Scc */ + { CPUFUNC(op_58fa_0), 22778 }, /* TRAPcc */ + { CPUFUNC(op_58fb_0), 22779 }, /* TRAPcc */ + { CPUFUNC(op_58fc_0), 22780 }, /* TRAPcc */ + { CPUFUNC(op_59c0_0), 22976 }, /* Scc */ + { CPUFUNC(op_59c8_0), 22984 }, /* DBcc */ + { CPUFUNC(op_59d0_0), 22992 }, /* Scc */ + { CPUFUNC(op_59d8_0), 23000 }, /* Scc */ + { CPUFUNC(op_59e0_0), 23008 }, /* Scc */ + { CPUFUNC(op_59e8_0), 23016 }, /* Scc */ + { CPUFUNC(op_59f0_0), 23024 }, /* Scc */ + { CPUFUNC(op_59f8_0), 23032 }, /* Scc */ + { CPUFUNC(op_59f9_0), 23033 }, /* Scc */ + { CPUFUNC(op_59fa_0), 23034 }, /* TRAPcc */ + { CPUFUNC(op_59fb_0), 23035 }, /* TRAPcc */ + { CPUFUNC(op_59fc_0), 23036 }, /* TRAPcc */ + { CPUFUNC(op_5ac0_0), 23232 }, /* Scc */ + { CPUFUNC(op_5ac8_0), 23240 }, /* DBcc */ + { CPUFUNC(op_5ad0_0), 23248 }, /* Scc */ + { CPUFUNC(op_5ad8_0), 23256 }, /* Scc */ + { CPUFUNC(op_5ae0_0), 23264 }, /* Scc */ + { CPUFUNC(op_5ae8_0), 23272 }, /* Scc */ + { CPUFUNC(op_5af0_0), 23280 }, /* Scc */ + { CPUFUNC(op_5af8_0), 23288 }, /* Scc */ + { CPUFUNC(op_5af9_0), 23289 }, /* Scc */ + { CPUFUNC(op_5afa_0), 23290 }, /* TRAPcc */ + { CPUFUNC(op_5afb_0), 23291 }, /* TRAPcc */ + { CPUFUNC(op_5afc_0), 23292 }, /* TRAPcc */ + { CPUFUNC(op_5bc0_0), 23488 }, /* Scc */ + { CPUFUNC(op_5bc8_0), 23496 }, /* DBcc */ + { CPUFUNC(op_5bd0_0), 23504 }, /* Scc */ + { CPUFUNC(op_5bd8_0), 23512 }, /* Scc */ + { CPUFUNC(op_5be0_0), 23520 }, /* Scc */ + { CPUFUNC(op_5be8_0), 23528 }, /* Scc */ + { CPUFUNC(op_5bf0_0), 23536 }, /* Scc */ + { CPUFUNC(op_5bf8_0), 23544 }, /* Scc */ + { CPUFUNC(op_5bf9_0), 23545 }, /* Scc */ + { CPUFUNC(op_5bfa_0), 23546 }, /* TRAPcc */ + { CPUFUNC(op_5bfb_0), 23547 }, /* TRAPcc */ + { CPUFUNC(op_5bfc_0), 23548 }, /* TRAPcc */ + { CPUFUNC(op_5cc0_0), 23744 }, /* Scc */ + { CPUFUNC(op_5cc8_0), 23752 }, /* DBcc */ + { CPUFUNC(op_5cd0_0), 23760 }, /* Scc */ + { CPUFUNC(op_5cd8_0), 23768 }, /* Scc */ + { CPUFUNC(op_5ce0_0), 23776 }, /* Scc */ + { CPUFUNC(op_5ce8_0), 23784 }, /* Scc */ + { CPUFUNC(op_5cf0_0), 23792 }, /* Scc */ + { CPUFUNC(op_5cf8_0), 23800 }, /* Scc */ + { CPUFUNC(op_5cf9_0), 23801 }, /* Scc */ + { CPUFUNC(op_5cfa_0), 23802 }, /* TRAPcc */ + { CPUFUNC(op_5cfb_0), 23803 }, /* TRAPcc */ + { CPUFUNC(op_5cfc_0), 23804 }, /* TRAPcc */ + { CPUFUNC(op_5dc0_0), 24000 }, /* Scc */ + { CPUFUNC(op_5dc8_0), 24008 }, /* DBcc */ + { CPUFUNC(op_5dd0_0), 24016 }, /* Scc */ + { CPUFUNC(op_5dd8_0), 24024 }, /* Scc */ + { CPUFUNC(op_5de0_0), 24032 }, /* Scc */ + { CPUFUNC(op_5de8_0), 24040 }, /* Scc */ + { CPUFUNC(op_5df0_0), 24048 }, /* Scc */ + { CPUFUNC(op_5df8_0), 24056 }, /* Scc */ + { CPUFUNC(op_5df9_0), 24057 }, /* Scc */ + { CPUFUNC(op_5dfa_0), 24058 }, /* TRAPcc */ + { CPUFUNC(op_5dfb_0), 24059 }, /* TRAPcc */ + { CPUFUNC(op_5dfc_0), 24060 }, /* TRAPcc */ + { CPUFUNC(op_5ec0_0), 24256 }, /* Scc */ + { CPUFUNC(op_5ec8_0), 24264 }, /* DBcc */ + { CPUFUNC(op_5ed0_0), 24272 }, /* Scc */ + { CPUFUNC(op_5ed8_0), 24280 }, /* Scc */ + { CPUFUNC(op_5ee0_0), 24288 }, /* Scc */ + { CPUFUNC(op_5ee8_0), 24296 }, /* Scc */ + { CPUFUNC(op_5ef0_0), 24304 }, /* Scc */ + { CPUFUNC(op_5ef8_0), 24312 }, /* Scc */ + { CPUFUNC(op_5ef9_0), 24313 }, /* Scc */ + { CPUFUNC(op_5efa_0), 24314 }, /* TRAPcc */ + { CPUFUNC(op_5efb_0), 24315 }, /* TRAPcc */ + { CPUFUNC(op_5efc_0), 24316 }, /* TRAPcc */ + { CPUFUNC(op_5fc0_0), 24512 }, /* Scc */ + { CPUFUNC(op_5fc8_0), 24520 }, /* DBcc */ + { CPUFUNC(op_5fd0_0), 24528 }, /* Scc */ + { CPUFUNC(op_5fd8_0), 24536 }, /* Scc */ + { CPUFUNC(op_5fe0_0), 24544 }, /* Scc */ + { CPUFUNC(op_5fe8_0), 24552 }, /* Scc */ + { CPUFUNC(op_5ff0_0), 24560 }, /* Scc */ + { CPUFUNC(op_5ff8_0), 24568 }, /* Scc */ + { CPUFUNC(op_5ff9_0), 24569 }, /* Scc */ + { CPUFUNC(op_5ffa_0), 24570 }, /* TRAPcc */ + { CPUFUNC(op_5ffb_0), 24571 }, /* TRAPcc */ + { CPUFUNC(op_5ffc_0), 24572 }, /* TRAPcc */ + { CPUFUNC(op_6000_0), 24576 }, /* Bcc */ + { CPUFUNC(op_6001_0), 24577 }, /* Bcc */ + { CPUFUNC(op_60ff_0), 24831 }, /* Bcc */ + { CPUFUNC(op_6100_0), 24832 }, /* BSR */ + { CPUFUNC(op_6101_0), 24833 }, /* BSR */ + { CPUFUNC(op_61ff_0), 25087 }, /* BSR */ + { CPUFUNC(op_6200_0), 25088 }, /* Bcc */ + { CPUFUNC(op_6201_0), 25089 }, /* Bcc */ + { CPUFUNC(op_62ff_0), 25343 }, /* Bcc */ + { CPUFUNC(op_6300_0), 25344 }, /* Bcc */ + { CPUFUNC(op_6301_0), 25345 }, /* Bcc */ + { CPUFUNC(op_63ff_0), 25599 }, /* Bcc */ + { CPUFUNC(op_6400_0), 25600 }, /* Bcc */ + { CPUFUNC(op_6401_0), 25601 }, /* Bcc */ + { CPUFUNC(op_64ff_0), 25855 }, /* Bcc */ + { CPUFUNC(op_6500_0), 25856 }, /* Bcc */ + { CPUFUNC(op_6501_0), 25857 }, /* Bcc */ + { CPUFUNC(op_65ff_0), 26111 }, /* Bcc */ + { CPUFUNC(op_6600_0), 26112 }, /* Bcc */ + { CPUFUNC(op_6601_0), 26113 }, /* Bcc */ + { CPUFUNC(op_66ff_0), 26367 }, /* Bcc */ + { CPUFUNC(op_6700_0), 26368 }, /* Bcc */ + { CPUFUNC(op_6701_0), 26369 }, /* Bcc */ + { CPUFUNC(op_67ff_0), 26623 }, /* Bcc */ + { CPUFUNC(op_6800_0), 26624 }, /* Bcc */ + { CPUFUNC(op_6801_0), 26625 }, /* Bcc */ + { CPUFUNC(op_68ff_0), 26879 }, /* Bcc */ + { CPUFUNC(op_6900_0), 26880 }, /* Bcc */ + { CPUFUNC(op_6901_0), 26881 }, /* Bcc */ + { CPUFUNC(op_69ff_0), 27135 }, /* Bcc */ + { CPUFUNC(op_6a00_0), 27136 }, /* Bcc */ + { CPUFUNC(op_6a01_0), 27137 }, /* Bcc */ + { CPUFUNC(op_6aff_0), 27391 }, /* Bcc */ + { CPUFUNC(op_6b00_0), 27392 }, /* Bcc */ + { CPUFUNC(op_6b01_0), 27393 }, /* Bcc */ + { CPUFUNC(op_6bff_0), 27647 }, /* Bcc */ + { CPUFUNC(op_6c00_0), 27648 }, /* Bcc */ + { CPUFUNC(op_6c01_0), 27649 }, /* Bcc */ + { CPUFUNC(op_6cff_0), 27903 }, /* Bcc */ + { CPUFUNC(op_6d00_0), 27904 }, /* Bcc */ + { CPUFUNC(op_6d01_0), 27905 }, /* Bcc */ + { CPUFUNC(op_6dff_0), 28159 }, /* Bcc */ + { CPUFUNC(op_6e00_0), 28160 }, /* Bcc */ + { CPUFUNC(op_6e01_0), 28161 }, /* Bcc */ + { CPUFUNC(op_6eff_0), 28415 }, /* Bcc */ + { CPUFUNC(op_6f00_0), 28416 }, /* Bcc */ + { CPUFUNC(op_6f01_0), 28417 }, /* Bcc */ + { CPUFUNC(op_6fff_0), 28671 }, /* Bcc */ + { CPUFUNC(op_7000_0), 28672 }, /* MOVE */ + { CPUFUNC(op_8000_0), 32768 }, /* OR */ + { CPUFUNC(op_8010_0), 32784 }, /* OR */ + { CPUFUNC(op_8018_0), 32792 }, /* OR */ + { CPUFUNC(op_8020_0), 32800 }, /* OR */ + { CPUFUNC(op_8028_0), 32808 }, /* OR */ + { CPUFUNC(op_8030_0), 32816 }, /* OR */ + { CPUFUNC(op_8038_0), 32824 }, /* OR */ + { CPUFUNC(op_8039_0), 32825 }, /* OR */ + { CPUFUNC(op_803a_0), 32826 }, /* OR */ + { CPUFUNC(op_803b_0), 32827 }, /* OR */ + { CPUFUNC(op_803c_0), 32828 }, /* OR */ + { CPUFUNC(op_8040_0), 32832 }, /* OR */ + { CPUFUNC(op_8050_0), 32848 }, /* OR */ + { CPUFUNC(op_8058_0), 32856 }, /* OR */ + { CPUFUNC(op_8060_0), 32864 }, /* OR */ + { CPUFUNC(op_8068_0), 32872 }, /* OR */ + { CPUFUNC(op_8070_0), 32880 }, /* OR */ + { CPUFUNC(op_8078_0), 32888 }, /* OR */ + { CPUFUNC(op_8079_0), 32889 }, /* OR */ + { CPUFUNC(op_807a_0), 32890 }, /* OR */ + { CPUFUNC(op_807b_0), 32891 }, /* OR */ + { CPUFUNC(op_807c_0), 32892 }, /* OR */ + { CPUFUNC(op_8080_0), 32896 }, /* OR */ + { CPUFUNC(op_8090_0), 32912 }, /* OR */ + { CPUFUNC(op_8098_0), 32920 }, /* OR */ + { CPUFUNC(op_80a0_0), 32928 }, /* OR */ + { CPUFUNC(op_80a8_0), 32936 }, /* OR */ + { CPUFUNC(op_80b0_0), 32944 }, /* OR */ + { CPUFUNC(op_80b8_0), 32952 }, /* OR */ + { CPUFUNC(op_80b9_0), 32953 }, /* OR */ + { CPUFUNC(op_80ba_0), 32954 }, /* OR */ + { CPUFUNC(op_80bb_0), 32955 }, /* OR */ + { CPUFUNC(op_80bc_0), 32956 }, /* OR */ + { CPUFUNC(op_80c0_0), 32960 }, /* DIVU */ + { CPUFUNC(op_80d0_0), 32976 }, /* DIVU */ + { CPUFUNC(op_80d8_0), 32984 }, /* DIVU */ + { CPUFUNC(op_80e0_0), 32992 }, /* DIVU */ + { CPUFUNC(op_80e8_0), 33000 }, /* DIVU */ + { CPUFUNC(op_80f0_0), 33008 }, /* DIVU */ + { CPUFUNC(op_80f8_0), 33016 }, /* DIVU */ + { CPUFUNC(op_80f9_0), 33017 }, /* DIVU */ + { CPUFUNC(op_80fa_0), 33018 }, /* DIVU */ + { CPUFUNC(op_80fb_0), 33019 }, /* DIVU */ + { CPUFUNC(op_80fc_0), 33020 }, /* DIVU */ + { CPUFUNC(op_8100_0), 33024 }, /* SBCD */ + { CPUFUNC(op_8108_0), 33032 }, /* SBCD */ + { CPUFUNC(op_8110_0), 33040 }, /* OR */ + { CPUFUNC(op_8118_0), 33048 }, /* OR */ + { CPUFUNC(op_8120_0), 33056 }, /* OR */ + { CPUFUNC(op_8128_0), 33064 }, /* OR */ + { CPUFUNC(op_8130_0), 33072 }, /* OR */ + { CPUFUNC(op_8138_0), 33080 }, /* OR */ + { CPUFUNC(op_8139_0), 33081 }, /* OR */ + { CPUFUNC(op_8140_0), 33088 }, /* PACK */ + { CPUFUNC(op_8148_0), 33096 }, /* PACK */ + { CPUFUNC(op_8150_0), 33104 }, /* OR */ + { CPUFUNC(op_8158_0), 33112 }, /* OR */ + { CPUFUNC(op_8160_0), 33120 }, /* OR */ + { CPUFUNC(op_8168_0), 33128 }, /* OR */ + { CPUFUNC(op_8170_0), 33136 }, /* OR */ + { CPUFUNC(op_8178_0), 33144 }, /* OR */ + { CPUFUNC(op_8179_0), 33145 }, /* OR */ + { CPUFUNC(op_8180_0), 33152 }, /* UNPK */ + { CPUFUNC(op_8188_0), 33160 }, /* UNPK */ + { CPUFUNC(op_8190_0), 33168 }, /* OR */ + { CPUFUNC(op_8198_0), 33176 }, /* OR */ + { CPUFUNC(op_81a0_0), 33184 }, /* OR */ + { CPUFUNC(op_81a8_0), 33192 }, /* OR */ + { CPUFUNC(op_81b0_0), 33200 }, /* OR */ + { CPUFUNC(op_81b8_0), 33208 }, /* OR */ + { CPUFUNC(op_81b9_0), 33209 }, /* OR */ + { CPUFUNC(op_81c0_0), 33216 }, /* DIVS */ + { CPUFUNC(op_81d0_0), 33232 }, /* DIVS */ + { CPUFUNC(op_81d8_0), 33240 }, /* DIVS */ + { CPUFUNC(op_81e0_0), 33248 }, /* DIVS */ + { CPUFUNC(op_81e8_0), 33256 }, /* DIVS */ + { CPUFUNC(op_81f0_0), 33264 }, /* DIVS */ + { CPUFUNC(op_81f8_0), 33272 }, /* DIVS */ + { CPUFUNC(op_81f9_0), 33273 }, /* DIVS */ + { CPUFUNC(op_81fa_0), 33274 }, /* DIVS */ + { CPUFUNC(op_81fb_0), 33275 }, /* DIVS */ + { CPUFUNC(op_81fc_0), 33276 }, /* DIVS */ + { CPUFUNC(op_9000_0), 36864 }, /* SUB */ + { CPUFUNC(op_9010_0), 36880 }, /* SUB */ + { CPUFUNC(op_9018_0), 36888 }, /* SUB */ + { CPUFUNC(op_9020_0), 36896 }, /* SUB */ + { CPUFUNC(op_9028_0), 36904 }, /* SUB */ + { CPUFUNC(op_9030_0), 36912 }, /* SUB */ + { CPUFUNC(op_9038_0), 36920 }, /* SUB */ + { CPUFUNC(op_9039_0), 36921 }, /* SUB */ + { CPUFUNC(op_903a_0), 36922 }, /* SUB */ + { CPUFUNC(op_903b_0), 36923 }, /* SUB */ + { CPUFUNC(op_903c_0), 36924 }, /* SUB */ + { CPUFUNC(op_9040_0), 36928 }, /* SUB */ + { CPUFUNC(op_9048_0), 36936 }, /* SUB */ + { CPUFUNC(op_9050_0), 36944 }, /* SUB */ + { CPUFUNC(op_9058_0), 36952 }, /* SUB */ + { CPUFUNC(op_9060_0), 36960 }, /* SUB */ + { CPUFUNC(op_9068_0), 36968 }, /* SUB */ + { CPUFUNC(op_9070_0), 36976 }, /* SUB */ + { CPUFUNC(op_9078_0), 36984 }, /* SUB */ + { CPUFUNC(op_9079_0), 36985 }, /* SUB */ + { CPUFUNC(op_907a_0), 36986 }, /* SUB */ + { CPUFUNC(op_907b_0), 36987 }, /* SUB */ + { CPUFUNC(op_907c_0), 36988 }, /* SUB */ + { CPUFUNC(op_9080_0), 36992 }, /* SUB */ + { CPUFUNC(op_9088_0), 37000 }, /* SUB */ + { CPUFUNC(op_9090_0), 37008 }, /* SUB */ + { CPUFUNC(op_9098_0), 37016 }, /* SUB */ + { CPUFUNC(op_90a0_0), 37024 }, /* SUB */ + { CPUFUNC(op_90a8_0), 37032 }, /* SUB */ + { CPUFUNC(op_90b0_0), 37040 }, /* SUB */ + { CPUFUNC(op_90b8_0), 37048 }, /* SUB */ + { CPUFUNC(op_90b9_0), 37049 }, /* SUB */ + { CPUFUNC(op_90ba_0), 37050 }, /* SUB */ + { CPUFUNC(op_90bb_0), 37051 }, /* SUB */ + { CPUFUNC(op_90bc_0), 37052 }, /* SUB */ + { CPUFUNC(op_90c0_0), 37056 }, /* SUBA */ + { CPUFUNC(op_90c8_0), 37064 }, /* SUBA */ + { CPUFUNC(op_90d0_0), 37072 }, /* SUBA */ + { CPUFUNC(op_90d8_0), 37080 }, /* SUBA */ + { CPUFUNC(op_90e0_0), 37088 }, /* SUBA */ + { CPUFUNC(op_90e8_0), 37096 }, /* SUBA */ + { CPUFUNC(op_90f0_0), 37104 }, /* SUBA */ + { CPUFUNC(op_90f8_0), 37112 }, /* SUBA */ + { CPUFUNC(op_90f9_0), 37113 }, /* SUBA */ + { CPUFUNC(op_90fa_0), 37114 }, /* SUBA */ + { CPUFUNC(op_90fb_0), 37115 }, /* SUBA */ + { CPUFUNC(op_90fc_0), 37116 }, /* SUBA */ + { CPUFUNC(op_9100_0), 37120 }, /* SUBX */ + { CPUFUNC(op_9108_0), 37128 }, /* SUBX */ + { CPUFUNC(op_9110_0), 37136 }, /* SUB */ + { CPUFUNC(op_9118_0), 37144 }, /* SUB */ + { CPUFUNC(op_9120_0), 37152 }, /* SUB */ + { CPUFUNC(op_9128_0), 37160 }, /* SUB */ + { CPUFUNC(op_9130_0), 37168 }, /* SUB */ + { CPUFUNC(op_9138_0), 37176 }, /* SUB */ + { CPUFUNC(op_9139_0), 37177 }, /* SUB */ + { CPUFUNC(op_9140_0), 37184 }, /* SUBX */ + { CPUFUNC(op_9148_0), 37192 }, /* SUBX */ + { CPUFUNC(op_9150_0), 37200 }, /* SUB */ + { CPUFUNC(op_9158_0), 37208 }, /* SUB */ + { CPUFUNC(op_9160_0), 37216 }, /* SUB */ + { CPUFUNC(op_9168_0), 37224 }, /* SUB */ + { CPUFUNC(op_9170_0), 37232 }, /* SUB */ + { CPUFUNC(op_9178_0), 37240 }, /* SUB */ + { CPUFUNC(op_9179_0), 37241 }, /* SUB */ + { CPUFUNC(op_9180_0), 37248 }, /* SUBX */ + { CPUFUNC(op_9188_0), 37256 }, /* SUBX */ + { CPUFUNC(op_9190_0), 37264 }, /* SUB */ + { CPUFUNC(op_9198_0), 37272 }, /* SUB */ + { CPUFUNC(op_91a0_0), 37280 }, /* SUB */ + { CPUFUNC(op_91a8_0), 37288 }, /* SUB */ + { CPUFUNC(op_91b0_0), 37296 }, /* SUB */ + { CPUFUNC(op_91b8_0), 37304 }, /* SUB */ + { CPUFUNC(op_91b9_0), 37305 }, /* SUB */ + { CPUFUNC(op_91c0_0), 37312 }, /* SUBA */ + { CPUFUNC(op_91c8_0), 37320 }, /* SUBA */ + { CPUFUNC(op_91d0_0), 37328 }, /* SUBA */ + { CPUFUNC(op_91d8_0), 37336 }, /* SUBA */ + { CPUFUNC(op_91e0_0), 37344 }, /* SUBA */ + { CPUFUNC(op_91e8_0), 37352 }, /* SUBA */ + { CPUFUNC(op_91f0_0), 37360 }, /* SUBA */ + { CPUFUNC(op_91f8_0), 37368 }, /* SUBA */ + { CPUFUNC(op_91f9_0), 37369 }, /* SUBA */ + { CPUFUNC(op_91fa_0), 37370 }, /* SUBA */ + { CPUFUNC(op_91fb_0), 37371 }, /* SUBA */ + { CPUFUNC(op_91fc_0), 37372 }, /* SUBA */ + { CPUFUNC(op_b000_0), 45056 }, /* CMP */ + { CPUFUNC(op_b010_0), 45072 }, /* CMP */ + { CPUFUNC(op_b018_0), 45080 }, /* CMP */ + { CPUFUNC(op_b020_0), 45088 }, /* CMP */ + { CPUFUNC(op_b028_0), 45096 }, /* CMP */ + { CPUFUNC(op_b030_0), 45104 }, /* CMP */ + { CPUFUNC(op_b038_0), 45112 }, /* CMP */ + { CPUFUNC(op_b039_0), 45113 }, /* CMP */ + { CPUFUNC(op_b03a_0), 45114 }, /* CMP */ + { CPUFUNC(op_b03b_0), 45115 }, /* CMP */ + { CPUFUNC(op_b03c_0), 45116 }, /* CMP */ + { CPUFUNC(op_b040_0), 45120 }, /* CMP */ + { CPUFUNC(op_b048_0), 45128 }, /* CMP */ + { CPUFUNC(op_b050_0), 45136 }, /* CMP */ + { CPUFUNC(op_b058_0), 45144 }, /* CMP */ + { CPUFUNC(op_b060_0), 45152 }, /* CMP */ + { CPUFUNC(op_b068_0), 45160 }, /* CMP */ + { CPUFUNC(op_b070_0), 45168 }, /* CMP */ + { CPUFUNC(op_b078_0), 45176 }, /* CMP */ + { CPUFUNC(op_b079_0), 45177 }, /* CMP */ + { CPUFUNC(op_b07a_0), 45178 }, /* CMP */ + { CPUFUNC(op_b07b_0), 45179 }, /* CMP */ + { CPUFUNC(op_b07c_0), 45180 }, /* CMP */ + { CPUFUNC(op_b080_0), 45184 }, /* CMP */ + { CPUFUNC(op_b088_0), 45192 }, /* CMP */ + { CPUFUNC(op_b090_0), 45200 }, /* CMP */ + { CPUFUNC(op_b098_0), 45208 }, /* CMP */ + { CPUFUNC(op_b0a0_0), 45216 }, /* CMP */ + { CPUFUNC(op_b0a8_0), 45224 }, /* CMP */ + { CPUFUNC(op_b0b0_0), 45232 }, /* CMP */ + { CPUFUNC(op_b0b8_0), 45240 }, /* CMP */ + { CPUFUNC(op_b0b9_0), 45241 }, /* CMP */ + { CPUFUNC(op_b0ba_0), 45242 }, /* CMP */ + { CPUFUNC(op_b0bb_0), 45243 }, /* CMP */ + { CPUFUNC(op_b0bc_0), 45244 }, /* CMP */ + { CPUFUNC(op_b0c0_0), 45248 }, /* CMPA */ + { CPUFUNC(op_b0c8_0), 45256 }, /* CMPA */ + { CPUFUNC(op_b0d0_0), 45264 }, /* CMPA */ + { CPUFUNC(op_b0d8_0), 45272 }, /* CMPA */ + { CPUFUNC(op_b0e0_0), 45280 }, /* CMPA */ + { CPUFUNC(op_b0e8_0), 45288 }, /* CMPA */ + { CPUFUNC(op_b0f0_0), 45296 }, /* CMPA */ + { CPUFUNC(op_b0f8_0), 45304 }, /* CMPA */ + { CPUFUNC(op_b0f9_0), 45305 }, /* CMPA */ + { CPUFUNC(op_b0fa_0), 45306 }, /* CMPA */ + { CPUFUNC(op_b0fb_0), 45307 }, /* CMPA */ + { CPUFUNC(op_b0fc_0), 45308 }, /* CMPA */ + { CPUFUNC(op_b100_0), 45312 }, /* EOR */ + { CPUFUNC(op_b108_0), 45320 }, /* CMPM */ + { CPUFUNC(op_b110_0), 45328 }, /* EOR */ + { CPUFUNC(op_b118_0), 45336 }, /* EOR */ + { CPUFUNC(op_b120_0), 45344 }, /* EOR */ + { CPUFUNC(op_b128_0), 45352 }, /* EOR */ + { CPUFUNC(op_b130_0), 45360 }, /* EOR */ + { CPUFUNC(op_b138_0), 45368 }, /* EOR */ + { CPUFUNC(op_b139_0), 45369 }, /* EOR */ + { CPUFUNC(op_b140_0), 45376 }, /* EOR */ + { CPUFUNC(op_b148_0), 45384 }, /* CMPM */ + { CPUFUNC(op_b150_0), 45392 }, /* EOR */ + { CPUFUNC(op_b158_0), 45400 }, /* EOR */ + { CPUFUNC(op_b160_0), 45408 }, /* EOR */ + { CPUFUNC(op_b168_0), 45416 }, /* EOR */ + { CPUFUNC(op_b170_0), 45424 }, /* EOR */ + { CPUFUNC(op_b178_0), 45432 }, /* EOR */ + { CPUFUNC(op_b179_0), 45433 }, /* EOR */ + { CPUFUNC(op_b180_0), 45440 }, /* EOR */ + { CPUFUNC(op_b188_0), 45448 }, /* CMPM */ + { CPUFUNC(op_b190_0), 45456 }, /* EOR */ + { CPUFUNC(op_b198_0), 45464 }, /* EOR */ + { CPUFUNC(op_b1a0_0), 45472 }, /* EOR */ + { CPUFUNC(op_b1a8_0), 45480 }, /* EOR */ + { CPUFUNC(op_b1b0_0), 45488 }, /* EOR */ + { CPUFUNC(op_b1b8_0), 45496 }, /* EOR */ + { CPUFUNC(op_b1b9_0), 45497 }, /* EOR */ + { CPUFUNC(op_b1c0_0), 45504 }, /* CMPA */ + { CPUFUNC(op_b1c8_0), 45512 }, /* CMPA */ + { CPUFUNC(op_b1d0_0), 45520 }, /* CMPA */ + { CPUFUNC(op_b1d8_0), 45528 }, /* CMPA */ + { CPUFUNC(op_b1e0_0), 45536 }, /* CMPA */ + { CPUFUNC(op_b1e8_0), 45544 }, /* CMPA */ + { CPUFUNC(op_b1f0_0), 45552 }, /* CMPA */ + { CPUFUNC(op_b1f8_0), 45560 }, /* CMPA */ + { CPUFUNC(op_b1f9_0), 45561 }, /* CMPA */ + { CPUFUNC(op_b1fa_0), 45562 }, /* CMPA */ + { CPUFUNC(op_b1fb_0), 45563 }, /* CMPA */ + { CPUFUNC(op_b1fc_0), 45564 }, /* CMPA */ + { CPUFUNC(op_c000_0), 49152 }, /* AND */ + { CPUFUNC(op_c010_0), 49168 }, /* AND */ + { CPUFUNC(op_c018_0), 49176 }, /* AND */ + { CPUFUNC(op_c020_0), 49184 }, /* AND */ + { CPUFUNC(op_c028_0), 49192 }, /* AND */ + { CPUFUNC(op_c030_0), 49200 }, /* AND */ + { CPUFUNC(op_c038_0), 49208 }, /* AND */ + { CPUFUNC(op_c039_0), 49209 }, /* AND */ + { CPUFUNC(op_c03a_0), 49210 }, /* AND */ + { CPUFUNC(op_c03b_0), 49211 }, /* AND */ + { CPUFUNC(op_c03c_0), 49212 }, /* AND */ + { CPUFUNC(op_c040_0), 49216 }, /* AND */ + { CPUFUNC(op_c050_0), 49232 }, /* AND */ + { CPUFUNC(op_c058_0), 49240 }, /* AND */ + { CPUFUNC(op_c060_0), 49248 }, /* AND */ + { CPUFUNC(op_c068_0), 49256 }, /* AND */ + { CPUFUNC(op_c070_0), 49264 }, /* AND */ + { CPUFUNC(op_c078_0), 49272 }, /* AND */ + { CPUFUNC(op_c079_0), 49273 }, /* AND */ + { CPUFUNC(op_c07a_0), 49274 }, /* AND */ + { CPUFUNC(op_c07b_0), 49275 }, /* AND */ + { CPUFUNC(op_c07c_0), 49276 }, /* AND */ + { CPUFUNC(op_c080_0), 49280 }, /* AND */ + { CPUFUNC(op_c090_0), 49296 }, /* AND */ + { CPUFUNC(op_c098_0), 49304 }, /* AND */ + { CPUFUNC(op_c0a0_0), 49312 }, /* AND */ + { CPUFUNC(op_c0a8_0), 49320 }, /* AND */ + { CPUFUNC(op_c0b0_0), 49328 }, /* AND */ + { CPUFUNC(op_c0b8_0), 49336 }, /* AND */ + { CPUFUNC(op_c0b9_0), 49337 }, /* AND */ + { CPUFUNC(op_c0ba_0), 49338 }, /* AND */ + { CPUFUNC(op_c0bb_0), 49339 }, /* AND */ + { CPUFUNC(op_c0bc_0), 49340 }, /* AND */ + { CPUFUNC(op_c0c0_0), 49344 }, /* MULU */ + { CPUFUNC(op_c0d0_0), 49360 }, /* MULU */ + { CPUFUNC(op_c0d8_0), 49368 }, /* MULU */ + { CPUFUNC(op_c0e0_0), 49376 }, /* MULU */ + { CPUFUNC(op_c0e8_0), 49384 }, /* MULU */ + { CPUFUNC(op_c0f0_0), 49392 }, /* MULU */ + { CPUFUNC(op_c0f8_0), 49400 }, /* MULU */ + { CPUFUNC(op_c0f9_0), 49401 }, /* MULU */ + { CPUFUNC(op_c0fa_0), 49402 }, /* MULU */ + { CPUFUNC(op_c0fb_0), 49403 }, /* MULU */ + { CPUFUNC(op_c0fc_0), 49404 }, /* MULU */ + { CPUFUNC(op_c100_0), 49408 }, /* ABCD */ + { CPUFUNC(op_c108_0), 49416 }, /* ABCD */ + { CPUFUNC(op_c110_0), 49424 }, /* AND */ + { CPUFUNC(op_c118_0), 49432 }, /* AND */ + { CPUFUNC(op_c120_0), 49440 }, /* AND */ + { CPUFUNC(op_c128_0), 49448 }, /* AND */ + { CPUFUNC(op_c130_0), 49456 }, /* AND */ + { CPUFUNC(op_c138_0), 49464 }, /* AND */ + { CPUFUNC(op_c139_0), 49465 }, /* AND */ + { CPUFUNC(op_c140_0), 49472 }, /* EXG */ + { CPUFUNC(op_c148_0), 49480 }, /* EXG */ + { CPUFUNC(op_c150_0), 49488 }, /* AND */ + { CPUFUNC(op_c158_0), 49496 }, /* AND */ + { CPUFUNC(op_c160_0), 49504 }, /* AND */ + { CPUFUNC(op_c168_0), 49512 }, /* AND */ + { CPUFUNC(op_c170_0), 49520 }, /* AND */ + { CPUFUNC(op_c178_0), 49528 }, /* AND */ + { CPUFUNC(op_c179_0), 49529 }, /* AND */ + { CPUFUNC(op_c188_0), 49544 }, /* EXG */ + { CPUFUNC(op_c190_0), 49552 }, /* AND */ + { CPUFUNC(op_c198_0), 49560 }, /* AND */ + { CPUFUNC(op_c1a0_0), 49568 }, /* AND */ + { CPUFUNC(op_c1a8_0), 49576 }, /* AND */ + { CPUFUNC(op_c1b0_0), 49584 }, /* AND */ + { CPUFUNC(op_c1b8_0), 49592 }, /* AND */ + { CPUFUNC(op_c1b9_0), 49593 }, /* AND */ + { CPUFUNC(op_c1c0_0), 49600 }, /* MULS */ + { CPUFUNC(op_c1d0_0), 49616 }, /* MULS */ + { CPUFUNC(op_c1d8_0), 49624 }, /* MULS */ + { CPUFUNC(op_c1e0_0), 49632 }, /* MULS */ + { CPUFUNC(op_c1e8_0), 49640 }, /* MULS */ + { CPUFUNC(op_c1f0_0), 49648 }, /* MULS */ + { CPUFUNC(op_c1f8_0), 49656 }, /* MULS */ + { CPUFUNC(op_c1f9_0), 49657 }, /* MULS */ + { CPUFUNC(op_c1fa_0), 49658 }, /* MULS */ + { CPUFUNC(op_c1fb_0), 49659 }, /* MULS */ + { CPUFUNC(op_c1fc_0), 49660 }, /* MULS */ + { CPUFUNC(op_d000_0), 53248 }, /* ADD */ + { CPUFUNC(op_d010_0), 53264 }, /* ADD */ + { CPUFUNC(op_d018_0), 53272 }, /* ADD */ + { CPUFUNC(op_d020_0), 53280 }, /* ADD */ + { CPUFUNC(op_d028_0), 53288 }, /* ADD */ + { CPUFUNC(op_d030_0), 53296 }, /* ADD */ + { CPUFUNC(op_d038_0), 53304 }, /* ADD */ + { CPUFUNC(op_d039_0), 53305 }, /* ADD */ + { CPUFUNC(op_d03a_0), 53306 }, /* ADD */ + { CPUFUNC(op_d03b_0), 53307 }, /* ADD */ + { CPUFUNC(op_d03c_0), 53308 }, /* ADD */ + { CPUFUNC(op_d040_0), 53312 }, /* ADD */ + { CPUFUNC(op_d048_0), 53320 }, /* ADD */ + { CPUFUNC(op_d050_0), 53328 }, /* ADD */ + { CPUFUNC(op_d058_0), 53336 }, /* ADD */ + { CPUFUNC(op_d060_0), 53344 }, /* ADD */ + { CPUFUNC(op_d068_0), 53352 }, /* ADD */ + { CPUFUNC(op_d070_0), 53360 }, /* ADD */ + { CPUFUNC(op_d078_0), 53368 }, /* ADD */ + { CPUFUNC(op_d079_0), 53369 }, /* ADD */ + { CPUFUNC(op_d07a_0), 53370 }, /* ADD */ + { CPUFUNC(op_d07b_0), 53371 }, /* ADD */ + { CPUFUNC(op_d07c_0), 53372 }, /* ADD */ + { CPUFUNC(op_d080_0), 53376 }, /* ADD */ + { CPUFUNC(op_d088_0), 53384 }, /* ADD */ + { CPUFUNC(op_d090_0), 53392 }, /* ADD */ + { CPUFUNC(op_d098_0), 53400 }, /* ADD */ + { CPUFUNC(op_d0a0_0), 53408 }, /* ADD */ + { CPUFUNC(op_d0a8_0), 53416 }, /* ADD */ + { CPUFUNC(op_d0b0_0), 53424 }, /* ADD */ + { CPUFUNC(op_d0b8_0), 53432 }, /* ADD */ + { CPUFUNC(op_d0b9_0), 53433 }, /* ADD */ + { CPUFUNC(op_d0ba_0), 53434 }, /* ADD */ + { CPUFUNC(op_d0bb_0), 53435 }, /* ADD */ + { CPUFUNC(op_d0bc_0), 53436 }, /* ADD */ + { CPUFUNC(op_d0c0_0), 53440 }, /* ADDA */ + { CPUFUNC(op_d0c8_0), 53448 }, /* ADDA */ + { CPUFUNC(op_d0d0_0), 53456 }, /* ADDA */ + { CPUFUNC(op_d0d8_0), 53464 }, /* ADDA */ + { CPUFUNC(op_d0e0_0), 53472 }, /* ADDA */ + { CPUFUNC(op_d0e8_0), 53480 }, /* ADDA */ + { CPUFUNC(op_d0f0_0), 53488 }, /* ADDA */ + { CPUFUNC(op_d0f8_0), 53496 }, /* ADDA */ + { CPUFUNC(op_d0f9_0), 53497 }, /* ADDA */ + { CPUFUNC(op_d0fa_0), 53498 }, /* ADDA */ + { CPUFUNC(op_d0fb_0), 53499 }, /* ADDA */ + { CPUFUNC(op_d0fc_0), 53500 }, /* ADDA */ + { CPUFUNC(op_d100_0), 53504 }, /* ADDX */ + { CPUFUNC(op_d108_0), 53512 }, /* ADDX */ + { CPUFUNC(op_d110_0), 53520 }, /* ADD */ + { CPUFUNC(op_d118_0), 53528 }, /* ADD */ + { CPUFUNC(op_d120_0), 53536 }, /* ADD */ + { CPUFUNC(op_d128_0), 53544 }, /* ADD */ + { CPUFUNC(op_d130_0), 53552 }, /* ADD */ + { CPUFUNC(op_d138_0), 53560 }, /* ADD */ + { CPUFUNC(op_d139_0), 53561 }, /* ADD */ + { CPUFUNC(op_d140_0), 53568 }, /* ADDX */ + { CPUFUNC(op_d148_0), 53576 }, /* ADDX */ + { CPUFUNC(op_d150_0), 53584 }, /* ADD */ + { CPUFUNC(op_d158_0), 53592 }, /* ADD */ + { CPUFUNC(op_d160_0), 53600 }, /* ADD */ + { CPUFUNC(op_d168_0), 53608 }, /* ADD */ + { CPUFUNC(op_d170_0), 53616 }, /* ADD */ + { CPUFUNC(op_d178_0), 53624 }, /* ADD */ + { CPUFUNC(op_d179_0), 53625 }, /* ADD */ + { CPUFUNC(op_d180_0), 53632 }, /* ADDX */ + { CPUFUNC(op_d188_0), 53640 }, /* ADDX */ + { CPUFUNC(op_d190_0), 53648 }, /* ADD */ + { CPUFUNC(op_d198_0), 53656 }, /* ADD */ + { CPUFUNC(op_d1a0_0), 53664 }, /* ADD */ + { CPUFUNC(op_d1a8_0), 53672 }, /* ADD */ + { CPUFUNC(op_d1b0_0), 53680 }, /* ADD */ + { CPUFUNC(op_d1b8_0), 53688 }, /* ADD */ + { CPUFUNC(op_d1b9_0), 53689 }, /* ADD */ + { CPUFUNC(op_d1c0_0), 53696 }, /* ADDA */ + { CPUFUNC(op_d1c8_0), 53704 }, /* ADDA */ + { CPUFUNC(op_d1d0_0), 53712 }, /* ADDA */ + { CPUFUNC(op_d1d8_0), 53720 }, /* ADDA */ + { CPUFUNC(op_d1e0_0), 53728 }, /* ADDA */ + { CPUFUNC(op_d1e8_0), 53736 }, /* ADDA */ + { CPUFUNC(op_d1f0_0), 53744 }, /* ADDA */ + { CPUFUNC(op_d1f8_0), 53752 }, /* ADDA */ + { CPUFUNC(op_d1f9_0), 53753 }, /* ADDA */ + { CPUFUNC(op_d1fa_0), 53754 }, /* ADDA */ + { CPUFUNC(op_d1fb_0), 53755 }, /* ADDA */ + { CPUFUNC(op_d1fc_0), 53756 }, /* ADDA */ + { CPUFUNC(op_e000_0), 57344 }, /* ASR */ + { CPUFUNC(op_e008_0), 57352 }, /* LSR */ + { CPUFUNC(op_e010_0), 57360 }, /* ROXR */ + { CPUFUNC(op_e018_0), 57368 }, /* ROR */ + { CPUFUNC(op_e020_0), 57376 }, /* ASR */ + { CPUFUNC(op_e028_0), 57384 }, /* LSR */ + { CPUFUNC(op_e030_0), 57392 }, /* ROXR */ + { CPUFUNC(op_e038_0), 57400 }, /* ROR */ + { CPUFUNC(op_e040_0), 57408 }, /* ASR */ + { CPUFUNC(op_e048_0), 57416 }, /* LSR */ + { CPUFUNC(op_e050_0), 57424 }, /* ROXR */ + { CPUFUNC(op_e058_0), 57432 }, /* ROR */ + { CPUFUNC(op_e060_0), 57440 }, /* ASR */ + { CPUFUNC(op_e068_0), 57448 }, /* LSR */ + { CPUFUNC(op_e070_0), 57456 }, /* ROXR */ + { CPUFUNC(op_e078_0), 57464 }, /* ROR */ + { CPUFUNC(op_e080_0), 57472 }, /* ASR */ + { CPUFUNC(op_e088_0), 57480 }, /* LSR */ + { CPUFUNC(op_e090_0), 57488 }, /* ROXR */ + { CPUFUNC(op_e098_0), 57496 }, /* ROR */ + { CPUFUNC(op_e0a0_0), 57504 }, /* ASR */ + { CPUFUNC(op_e0a8_0), 57512 }, /* LSR */ + { CPUFUNC(op_e0b0_0), 57520 }, /* ROXR */ + { CPUFUNC(op_e0b8_0), 57528 }, /* ROR */ + { CPUFUNC(op_e0d0_0), 57552 }, /* ASRW */ + { CPUFUNC(op_e0d8_0), 57560 }, /* ASRW */ + { CPUFUNC(op_e0e0_0), 57568 }, /* ASRW */ + { CPUFUNC(op_e0e8_0), 57576 }, /* ASRW */ + { CPUFUNC(op_e0f0_0), 57584 }, /* ASRW */ + { CPUFUNC(op_e0f8_0), 57592 }, /* ASRW */ + { CPUFUNC(op_e0f9_0), 57593 }, /* ASRW */ + { CPUFUNC(op_e100_0), 57600 }, /* ASL */ + { CPUFUNC(op_e108_0), 57608 }, /* LSL */ + { CPUFUNC(op_e110_0), 57616 }, /* ROXL */ + { CPUFUNC(op_e118_0), 57624 }, /* ROL */ + { CPUFUNC(op_e120_0), 57632 }, /* ASL */ + { CPUFUNC(op_e128_0), 57640 }, /* LSL */ + { CPUFUNC(op_e130_0), 57648 }, /* ROXL */ + { CPUFUNC(op_e138_0), 57656 }, /* ROL */ + { CPUFUNC(op_e140_0), 57664 }, /* ASL */ + { CPUFUNC(op_e148_0), 57672 }, /* LSL */ + { CPUFUNC(op_e150_0), 57680 }, /* ROXL */ + { CPUFUNC(op_e158_0), 57688 }, /* ROL */ + { CPUFUNC(op_e160_0), 57696 }, /* ASL */ + { CPUFUNC(op_e168_0), 57704 }, /* LSL */ + { CPUFUNC(op_e170_0), 57712 }, /* ROXL */ + { CPUFUNC(op_e178_0), 57720 }, /* ROL */ + { CPUFUNC(op_e180_0), 57728 }, /* ASL */ + { CPUFUNC(op_e188_0), 57736 }, /* LSL */ + { CPUFUNC(op_e190_0), 57744 }, /* ROXL */ + { CPUFUNC(op_e198_0), 57752 }, /* ROL */ + { CPUFUNC(op_e1a0_0), 57760 }, /* ASL */ + { CPUFUNC(op_e1a8_0), 57768 }, /* LSL */ + { CPUFUNC(op_e1b0_0), 57776 }, /* ROXL */ + { CPUFUNC(op_e1b8_0), 57784 }, /* ROL */ + { CPUFUNC(op_e1d0_0), 57808 }, /* ASLW */ + { CPUFUNC(op_e1d8_0), 57816 }, /* ASLW */ + { CPUFUNC(op_e1e0_0), 57824 }, /* ASLW */ + { CPUFUNC(op_e1e8_0), 57832 }, /* ASLW */ + { CPUFUNC(op_e1f0_0), 57840 }, /* ASLW */ + { CPUFUNC(op_e1f8_0), 57848 }, /* ASLW */ + { CPUFUNC(op_e1f9_0), 57849 }, /* ASLW */ + { CPUFUNC(op_e2d0_0), 58064 }, /* LSRW */ + { CPUFUNC(op_e2d8_0), 58072 }, /* LSRW */ + { CPUFUNC(op_e2e0_0), 58080 }, /* LSRW */ + { CPUFUNC(op_e2e8_0), 58088 }, /* LSRW */ + { CPUFUNC(op_e2f0_0), 58096 }, /* LSRW */ + { CPUFUNC(op_e2f8_0), 58104 }, /* LSRW */ + { CPUFUNC(op_e2f9_0), 58105 }, /* LSRW */ + { CPUFUNC(op_e3d0_0), 58320 }, /* LSLW */ + { CPUFUNC(op_e3d8_0), 58328 }, /* LSLW */ + { CPUFUNC(op_e3e0_0), 58336 }, /* LSLW */ + { CPUFUNC(op_e3e8_0), 58344 }, /* LSLW */ + { CPUFUNC(op_e3f0_0), 58352 }, /* LSLW */ + { CPUFUNC(op_e3f8_0), 58360 }, /* LSLW */ + { CPUFUNC(op_e3f9_0), 58361 }, /* LSLW */ + { CPUFUNC(op_e4d0_0), 58576 }, /* ROXRW */ + { CPUFUNC(op_e4d8_0), 58584 }, /* ROXRW */ + { CPUFUNC(op_e4e0_0), 58592 }, /* ROXRW */ + { CPUFUNC(op_e4e8_0), 58600 }, /* ROXRW */ + { CPUFUNC(op_e4f0_0), 58608 }, /* ROXRW */ + { CPUFUNC(op_e4f8_0), 58616 }, /* ROXRW */ + { CPUFUNC(op_e4f9_0), 58617 }, /* ROXRW */ + { CPUFUNC(op_e5d0_0), 58832 }, /* ROXLW */ + { CPUFUNC(op_e5d8_0), 58840 }, /* ROXLW */ + { CPUFUNC(op_e5e0_0), 58848 }, /* ROXLW */ + { CPUFUNC(op_e5e8_0), 58856 }, /* ROXLW */ + { CPUFUNC(op_e5f0_0), 58864 }, /* ROXLW */ + { CPUFUNC(op_e5f8_0), 58872 }, /* ROXLW */ + { CPUFUNC(op_e5f9_0), 58873 }, /* ROXLW */ + { CPUFUNC(op_e6d0_0), 59088 }, /* RORW */ + { CPUFUNC(op_e6d8_0), 59096 }, /* RORW */ + { CPUFUNC(op_e6e0_0), 59104 }, /* RORW */ + { CPUFUNC(op_e6e8_0), 59112 }, /* RORW */ + { CPUFUNC(op_e6f0_0), 59120 }, /* RORW */ + { CPUFUNC(op_e6f8_0), 59128 }, /* RORW */ + { CPUFUNC(op_e6f9_0), 59129 }, /* RORW */ + { CPUFUNC(op_e7d0_0), 59344 }, /* ROLW */ + { CPUFUNC(op_e7d8_0), 59352 }, /* ROLW */ + { CPUFUNC(op_e7e0_0), 59360 }, /* ROLW */ + { CPUFUNC(op_e7e8_0), 59368 }, /* ROLW */ + { CPUFUNC(op_e7f0_0), 59376 }, /* ROLW */ + { CPUFUNC(op_e7f8_0), 59384 }, /* ROLW */ + { CPUFUNC(op_e7f9_0), 59385 }, /* ROLW */ + { CPUFUNC(op_e8c0_0), 59584 }, /* BFTST */ + { CPUFUNC(op_e8d0_0), 59600 }, /* BFTST */ + { CPUFUNC(op_e8e8_0), 59624 }, /* BFTST */ + { CPUFUNC(op_e8f0_0), 59632 }, /* BFTST */ + { CPUFUNC(op_e8f8_0), 59640 }, /* BFTST */ + { CPUFUNC(op_e8f9_0), 59641 }, /* BFTST */ + { CPUFUNC(op_e8fa_0), 59642 }, /* BFTST */ + { CPUFUNC(op_e8fb_0), 59643 }, /* BFTST */ + { CPUFUNC(op_e9c0_0), 59840 }, /* BFEXTU */ + { CPUFUNC(op_e9d0_0), 59856 }, /* BFEXTU */ + { CPUFUNC(op_e9e8_0), 59880 }, /* BFEXTU */ + { CPUFUNC(op_e9f0_0), 59888 }, /* BFEXTU */ + { CPUFUNC(op_e9f8_0), 59896 }, /* BFEXTU */ + { CPUFUNC(op_e9f9_0), 59897 }, /* BFEXTU */ + { CPUFUNC(op_e9fa_0), 59898 }, /* BFEXTU */ + { CPUFUNC(op_e9fb_0), 59899 }, /* BFEXTU */ + { CPUFUNC(op_eac0_0), 60096 }, /* BFCHG */ + { CPUFUNC(op_ead0_0), 60112 }, /* BFCHG */ + { CPUFUNC(op_eae8_0), 60136 }, /* BFCHG */ + { CPUFUNC(op_eaf0_0), 60144 }, /* BFCHG */ + { CPUFUNC(op_eaf8_0), 60152 }, /* BFCHG */ + { CPUFUNC(op_eaf9_0), 60153 }, /* BFCHG */ + { CPUFUNC(op_ebc0_0), 60352 }, /* BFEXTS */ + { CPUFUNC(op_ebd0_0), 60368 }, /* BFEXTS */ + { CPUFUNC(op_ebe8_0), 60392 }, /* BFEXTS */ + { CPUFUNC(op_ebf0_0), 60400 }, /* BFEXTS */ + { CPUFUNC(op_ebf8_0), 60408 }, /* BFEXTS */ + { CPUFUNC(op_ebf9_0), 60409 }, /* BFEXTS */ + { CPUFUNC(op_ebfa_0), 60410 }, /* BFEXTS */ + { CPUFUNC(op_ebfb_0), 60411 }, /* BFEXTS */ + { CPUFUNC(op_ecc0_0), 60608 }, /* BFCLR */ + { CPUFUNC(op_ecd0_0), 60624 }, /* BFCLR */ + { CPUFUNC(op_ece8_0), 60648 }, /* BFCLR */ + { CPUFUNC(op_ecf0_0), 60656 }, /* BFCLR */ + { CPUFUNC(op_ecf8_0), 60664 }, /* BFCLR */ + { CPUFUNC(op_ecf9_0), 60665 }, /* BFCLR */ + { CPUFUNC(op_edc0_0), 60864 }, /* BFFFO */ + { CPUFUNC(op_edd0_0), 60880 }, /* BFFFO */ + { CPUFUNC(op_ede8_0), 60904 }, /* BFFFO */ + { CPUFUNC(op_edf0_0), 60912 }, /* BFFFO */ + { CPUFUNC(op_edf8_0), 60920 }, /* BFFFO */ + { CPUFUNC(op_edf9_0), 60921 }, /* BFFFO */ + { CPUFUNC(op_edfa_0), 60922 }, /* BFFFO */ + { CPUFUNC(op_edfb_0), 60923 }, /* BFFFO */ + { CPUFUNC(op_eec0_0), 61120 }, /* BFSET */ + { CPUFUNC(op_eed0_0), 61136 }, /* BFSET */ + { CPUFUNC(op_eee8_0), 61160 }, /* BFSET */ + { CPUFUNC(op_eef0_0), 61168 }, /* BFSET */ + { CPUFUNC(op_eef8_0), 61176 }, /* BFSET */ + { CPUFUNC(op_eef9_0), 61177 }, /* BFSET */ + { CPUFUNC(op_efc0_0), 61376 }, /* BFINS */ + { CPUFUNC(op_efd0_0), 61392 }, /* BFINS */ + { CPUFUNC(op_efe8_0), 61416 }, /* BFINS */ + { CPUFUNC(op_eff0_0), 61424 }, /* BFINS */ + { CPUFUNC(op_eff8_0), 61432 }, /* BFINS */ + { CPUFUNC(op_eff9_0), 61433 }, /* BFINS */ + { CPUFUNC(op_f000_0), 61440 }, /* MMUOP030 */ + { CPUFUNC(op_f008_0), 61448 }, /* MMUOP030 */ + { CPUFUNC(op_f010_0), 61456 }, /* MMUOP030 */ + { CPUFUNC(op_f018_0), 61464 }, /* MMUOP030 */ + { CPUFUNC(op_f020_0), 61472 }, /* MMUOP030 */ + { CPUFUNC(op_f028_0), 61480 }, /* MMUOP030 */ + { CPUFUNC(op_f030_0), 61488 }, /* MMUOP030 */ + { CPUFUNC(op_f038_0), 61496 }, /* MMUOP030 */ + { CPUFUNC(op_f039_0), 61497 }, /* MMUOP030 */ + { CPUFUNC(op_f200_0), 61952 }, /* FPP */ + { CPUFUNC(op_f208_0), 61960 }, /* FPP */ + { CPUFUNC(op_f210_0), 61968 }, /* FPP */ + { CPUFUNC(op_f218_0), 61976 }, /* FPP */ + { CPUFUNC(op_f220_0), 61984 }, /* FPP */ + { CPUFUNC(op_f228_0), 61992 }, /* FPP */ + { CPUFUNC(op_f230_0), 62000 }, /* FPP */ + { CPUFUNC(op_f238_0), 62008 }, /* FPP */ + { CPUFUNC(op_f239_0), 62009 }, /* FPP */ + { CPUFUNC(op_f23a_0), 62010 }, /* FPP */ + { CPUFUNC(op_f23b_0), 62011 }, /* FPP */ + { CPUFUNC(op_f23c_0), 62012 }, /* FPP */ + { CPUFUNC(op_f240_0), 62016 }, /* FScc */ + { CPUFUNC(op_f248_0), 62024 }, /* FDBcc */ + { CPUFUNC(op_f250_0), 62032 }, /* FScc */ + { CPUFUNC(op_f258_0), 62040 }, /* FScc */ + { CPUFUNC(op_f260_0), 62048 }, /* FScc */ + { CPUFUNC(op_f268_0), 62056 }, /* FScc */ + { CPUFUNC(op_f270_0), 62064 }, /* FScc */ + { CPUFUNC(op_f278_0), 62072 }, /* FScc */ + { CPUFUNC(op_f279_0), 62073 }, /* FScc */ + { CPUFUNC(op_f27a_0), 62074 }, /* FTRAPcc */ + { CPUFUNC(op_f27b_0), 62075 }, /* FTRAPcc */ + { CPUFUNC(op_f27c_0), 62076 }, /* FTRAPcc */ + { CPUFUNC(op_f280_0), 62080 }, /* FBcc */ + { CPUFUNC(op_f2c0_0), 62144 }, /* FBcc */ + { CPUFUNC(op_f310_0), 62224 }, /* FSAVE */ + { CPUFUNC(op_f320_0), 62240 }, /* FSAVE */ + { CPUFUNC(op_f328_0), 62248 }, /* FSAVE */ + { CPUFUNC(op_f330_0), 62256 }, /* FSAVE */ + { CPUFUNC(op_f338_0), 62264 }, /* FSAVE */ + { CPUFUNC(op_f339_0), 62265 }, /* FSAVE */ + { CPUFUNC(op_f350_0), 62288 }, /* FRESTORE */ + { CPUFUNC(op_f358_0), 62296 }, /* FRESTORE */ + { CPUFUNC(op_f368_0), 62312 }, /* FRESTORE */ + { CPUFUNC(op_f370_0), 62320 }, /* FRESTORE */ + { CPUFUNC(op_f378_0), 62328 }, /* FRESTORE */ + { CPUFUNC(op_f379_0), 62329 }, /* FRESTORE */ + { CPUFUNC(op_f37a_0), 62330 }, /* FRESTORE */ + { CPUFUNC(op_f37b_0), 62331 }, /* FRESTORE */ + { CPUFUNC(op_f408_0), 62472 }, /* CINVL */ + { CPUFUNC(op_f410_0), 62480 }, /* CINVP */ + { CPUFUNC(op_f418_0), 62488 }, /* CINVA */ + { CPUFUNC(op_f419_0), 62489 }, /* CINVA */ + { CPUFUNC(op_f41a_0), 62490 }, /* CINVA */ + { CPUFUNC(op_f41b_0), 62491 }, /* CINVA */ + { CPUFUNC(op_f41c_0), 62492 }, /* CINVA */ + { CPUFUNC(op_f41d_0), 62493 }, /* CINVA */ + { CPUFUNC(op_f41e_0), 62494 }, /* CINVA */ + { CPUFUNC(op_f41f_0), 62495 }, /* CINVA */ + { CPUFUNC(op_f428_0), 62504 }, /* CPUSHL */ + { CPUFUNC(op_f430_0), 62512 }, /* CPUSHP */ + { CPUFUNC(op_f438_0), 62520 }, /* CPUSHA */ + { CPUFUNC(op_f439_0), 62521 }, /* CPUSHA */ + { CPUFUNC(op_f43a_0), 62522 }, /* CPUSHA */ + { CPUFUNC(op_f43b_0), 62523 }, /* CPUSHA */ + { CPUFUNC(op_f43c_0), 62524 }, /* CPUSHA */ + { CPUFUNC(op_f43d_0), 62525 }, /* CPUSHA */ + { CPUFUNC(op_f43e_0), 62526 }, /* CPUSHA */ + { CPUFUNC(op_f43f_0), 62527 }, /* CPUSHA */ + { CPUFUNC(op_f500_0), 62720 }, /* PFLUSHN */ + { CPUFUNC(op_f508_0), 62728 }, /* PFLUSH */ + { CPUFUNC(op_f510_0), 62736 }, /* PFLUSHAN */ + { CPUFUNC(op_f518_0), 62744 }, /* PFLUSHA */ + { CPUFUNC(op_f548_0), 62792 }, /* PTESTR */ + { CPUFUNC(op_f568_0), 62824 }, /* PTESTW */ + { CPUFUNC(op_f600_0), 62976 }, /* MOVE16 */ + { CPUFUNC(op_f608_0), 62984 }, /* MOVE16 */ + { CPUFUNC(op_f610_0), 62992 }, /* MOVE16 */ + { CPUFUNC(op_f618_0), 63000 }, /* MOVE16 */ + { CPUFUNC(op_f620_0), 63008 }, /* MOVE16 */ + { 0, 0 } +}; +const struct cputbl CPUFUNC(op_smalltbl_2)[] = +{ + { CPUFUNC(op_0000_0), 0 }, /* OR */ + { CPUFUNC(op_0010_0), 16 }, /* OR */ + { CPUFUNC(op_0018_0), 24 }, /* OR */ + { CPUFUNC(op_0020_0), 32 }, /* OR */ + { CPUFUNC(op_0028_0), 40 }, /* OR */ + { CPUFUNC(op_0030_0), 48 }, /* OR */ + { CPUFUNC(op_0038_0), 56 }, /* OR */ + { CPUFUNC(op_0039_0), 57 }, /* OR */ + { CPUFUNC(op_003c_0), 60 }, /* ORSR */ + { CPUFUNC(op_0040_0), 64 }, /* OR */ + { CPUFUNC(op_0050_0), 80 }, /* OR */ + { CPUFUNC(op_0058_0), 88 }, /* OR */ + { CPUFUNC(op_0060_0), 96 }, /* OR */ + { CPUFUNC(op_0068_0), 104 }, /* OR */ + { CPUFUNC(op_0070_0), 112 }, /* OR */ + { CPUFUNC(op_0078_0), 120 }, /* OR */ + { CPUFUNC(op_0079_0), 121 }, /* OR */ + { CPUFUNC(op_007c_0), 124 }, /* ORSR */ + { CPUFUNC(op_0080_0), 128 }, /* OR */ + { CPUFUNC(op_0090_0), 144 }, /* OR */ + { CPUFUNC(op_0098_0), 152 }, /* OR */ + { CPUFUNC(op_00a0_0), 160 }, /* OR */ + { CPUFUNC(op_00a8_0), 168 }, /* OR */ + { CPUFUNC(op_00b0_0), 176 }, /* OR */ + { CPUFUNC(op_00b8_0), 184 }, /* OR */ + { CPUFUNC(op_00b9_0), 185 }, /* OR */ + { CPUFUNC(op_00d0_0), 208 }, /* CHK2 */ + { CPUFUNC(op_00e8_0), 232 }, /* CHK2 */ + { CPUFUNC(op_00f0_0), 240 }, /* CHK2 */ + { CPUFUNC(op_00f8_0), 248 }, /* CHK2 */ + { CPUFUNC(op_00f9_0), 249 }, /* CHK2 */ + { CPUFUNC(op_00fa_0), 250 }, /* CHK2 */ + { CPUFUNC(op_00fb_0), 251 }, /* CHK2 */ + { CPUFUNC(op_0100_0), 256 }, /* BTST */ + { CPUFUNC(op_0108_0), 264 }, /* MVPMR */ + { CPUFUNC(op_0110_0), 272 }, /* BTST */ + { CPUFUNC(op_0118_0), 280 }, /* BTST */ + { CPUFUNC(op_0120_0), 288 }, /* BTST */ + { CPUFUNC(op_0128_0), 296 }, /* BTST */ + { CPUFUNC(op_0130_0), 304 }, /* BTST */ + { CPUFUNC(op_0138_0), 312 }, /* BTST */ + { CPUFUNC(op_0139_0), 313 }, /* BTST */ + { CPUFUNC(op_013a_0), 314 }, /* BTST */ + { CPUFUNC(op_013b_0), 315 }, /* BTST */ + { CPUFUNC(op_013c_0), 316 }, /* BTST */ + { CPUFUNC(op_0140_0), 320 }, /* BCHG */ + { CPUFUNC(op_0148_0), 328 }, /* MVPMR */ + { CPUFUNC(op_0150_0), 336 }, /* BCHG */ + { CPUFUNC(op_0158_0), 344 }, /* BCHG */ + { CPUFUNC(op_0160_0), 352 }, /* BCHG */ + { CPUFUNC(op_0168_0), 360 }, /* BCHG */ + { CPUFUNC(op_0170_0), 368 }, /* BCHG */ + { CPUFUNC(op_0178_0), 376 }, /* BCHG */ + { CPUFUNC(op_0179_0), 377 }, /* BCHG */ + { CPUFUNC(op_0180_0), 384 }, /* BCLR */ + { CPUFUNC(op_0188_0), 392 }, /* MVPRM */ + { CPUFUNC(op_0190_0), 400 }, /* BCLR */ + { CPUFUNC(op_0198_0), 408 }, /* BCLR */ + { CPUFUNC(op_01a0_0), 416 }, /* BCLR */ + { CPUFUNC(op_01a8_0), 424 }, /* BCLR */ + { CPUFUNC(op_01b0_0), 432 }, /* BCLR */ + { CPUFUNC(op_01b8_0), 440 }, /* BCLR */ + { CPUFUNC(op_01b9_0), 441 }, /* BCLR */ + { CPUFUNC(op_01c0_0), 448 }, /* BSET */ + { CPUFUNC(op_01c8_0), 456 }, /* MVPRM */ + { CPUFUNC(op_01d0_0), 464 }, /* BSET */ + { CPUFUNC(op_01d8_0), 472 }, /* BSET */ + { CPUFUNC(op_01e0_0), 480 }, /* BSET */ + { CPUFUNC(op_01e8_0), 488 }, /* BSET */ + { CPUFUNC(op_01f0_0), 496 }, /* BSET */ + { CPUFUNC(op_01f8_0), 504 }, /* BSET */ + { CPUFUNC(op_01f9_0), 505 }, /* BSET */ + { CPUFUNC(op_0200_0), 512 }, /* AND */ + { CPUFUNC(op_0210_0), 528 }, /* AND */ + { CPUFUNC(op_0218_0), 536 }, /* AND */ + { CPUFUNC(op_0220_0), 544 }, /* AND */ + { CPUFUNC(op_0228_0), 552 }, /* AND */ + { CPUFUNC(op_0230_0), 560 }, /* AND */ + { CPUFUNC(op_0238_0), 568 }, /* AND */ + { CPUFUNC(op_0239_0), 569 }, /* AND */ + { CPUFUNC(op_023c_0), 572 }, /* ANDSR */ + { CPUFUNC(op_0240_0), 576 }, /* AND */ + { CPUFUNC(op_0250_0), 592 }, /* AND */ + { CPUFUNC(op_0258_0), 600 }, /* AND */ + { CPUFUNC(op_0260_0), 608 }, /* AND */ + { CPUFUNC(op_0268_0), 616 }, /* AND */ + { CPUFUNC(op_0270_0), 624 }, /* AND */ + { CPUFUNC(op_0278_0), 632 }, /* AND */ + { CPUFUNC(op_0279_0), 633 }, /* AND */ + { CPUFUNC(op_027c_0), 636 }, /* ANDSR */ + { CPUFUNC(op_0280_0), 640 }, /* AND */ + { CPUFUNC(op_0290_0), 656 }, /* AND */ + { CPUFUNC(op_0298_0), 664 }, /* AND */ + { CPUFUNC(op_02a0_0), 672 }, /* AND */ + { CPUFUNC(op_02a8_0), 680 }, /* AND */ + { CPUFUNC(op_02b0_0), 688 }, /* AND */ + { CPUFUNC(op_02b8_0), 696 }, /* AND */ + { CPUFUNC(op_02b9_0), 697 }, /* AND */ + { CPUFUNC(op_02d0_0), 720 }, /* CHK2 */ + { CPUFUNC(op_02e8_0), 744 }, /* CHK2 */ + { CPUFUNC(op_02f0_0), 752 }, /* CHK2 */ + { CPUFUNC(op_02f8_0), 760 }, /* CHK2 */ + { CPUFUNC(op_02f9_0), 761 }, /* CHK2 */ + { CPUFUNC(op_02fa_0), 762 }, /* CHK2 */ + { CPUFUNC(op_02fb_0), 763 }, /* CHK2 */ + { CPUFUNC(op_0400_0), 1024 }, /* SUB */ + { CPUFUNC(op_0410_0), 1040 }, /* SUB */ + { CPUFUNC(op_0418_0), 1048 }, /* SUB */ + { CPUFUNC(op_0420_0), 1056 }, /* SUB */ + { CPUFUNC(op_0428_0), 1064 }, /* SUB */ + { CPUFUNC(op_0430_0), 1072 }, /* SUB */ + { CPUFUNC(op_0438_0), 1080 }, /* SUB */ + { CPUFUNC(op_0439_0), 1081 }, /* SUB */ + { CPUFUNC(op_0440_0), 1088 }, /* SUB */ + { CPUFUNC(op_0450_0), 1104 }, /* SUB */ + { CPUFUNC(op_0458_0), 1112 }, /* SUB */ + { CPUFUNC(op_0460_0), 1120 }, /* SUB */ + { CPUFUNC(op_0468_0), 1128 }, /* SUB */ + { CPUFUNC(op_0470_0), 1136 }, /* SUB */ + { CPUFUNC(op_0478_0), 1144 }, /* SUB */ + { CPUFUNC(op_0479_0), 1145 }, /* SUB */ + { CPUFUNC(op_0480_0), 1152 }, /* SUB */ + { CPUFUNC(op_0490_0), 1168 }, /* SUB */ + { CPUFUNC(op_0498_0), 1176 }, /* SUB */ + { CPUFUNC(op_04a0_0), 1184 }, /* SUB */ + { CPUFUNC(op_04a8_0), 1192 }, /* SUB */ + { CPUFUNC(op_04b0_0), 1200 }, /* SUB */ + { CPUFUNC(op_04b8_0), 1208 }, /* SUB */ + { CPUFUNC(op_04b9_0), 1209 }, /* SUB */ + { CPUFUNC(op_04d0_0), 1232 }, /* CHK2 */ + { CPUFUNC(op_04e8_0), 1256 }, /* CHK2 */ + { CPUFUNC(op_04f0_0), 1264 }, /* CHK2 */ + { CPUFUNC(op_04f8_0), 1272 }, /* CHK2 */ + { CPUFUNC(op_04f9_0), 1273 }, /* CHK2 */ + { CPUFUNC(op_04fa_0), 1274 }, /* CHK2 */ + { CPUFUNC(op_04fb_0), 1275 }, /* CHK2 */ + { CPUFUNC(op_0600_0), 1536 }, /* ADD */ + { CPUFUNC(op_0610_0), 1552 }, /* ADD */ + { CPUFUNC(op_0618_0), 1560 }, /* ADD */ + { CPUFUNC(op_0620_0), 1568 }, /* ADD */ + { CPUFUNC(op_0628_0), 1576 }, /* ADD */ + { CPUFUNC(op_0630_0), 1584 }, /* ADD */ + { CPUFUNC(op_0638_0), 1592 }, /* ADD */ + { CPUFUNC(op_0639_0), 1593 }, /* ADD */ + { CPUFUNC(op_0640_0), 1600 }, /* ADD */ + { CPUFUNC(op_0650_0), 1616 }, /* ADD */ + { CPUFUNC(op_0658_0), 1624 }, /* ADD */ + { CPUFUNC(op_0660_0), 1632 }, /* ADD */ + { CPUFUNC(op_0668_0), 1640 }, /* ADD */ + { CPUFUNC(op_0670_0), 1648 }, /* ADD */ + { CPUFUNC(op_0678_0), 1656 }, /* ADD */ + { CPUFUNC(op_0679_0), 1657 }, /* ADD */ + { CPUFUNC(op_0680_0), 1664 }, /* ADD */ + { CPUFUNC(op_0690_0), 1680 }, /* ADD */ + { CPUFUNC(op_0698_0), 1688 }, /* ADD */ + { CPUFUNC(op_06a0_0), 1696 }, /* ADD */ + { CPUFUNC(op_06a8_0), 1704 }, /* ADD */ + { CPUFUNC(op_06b0_0), 1712 }, /* ADD */ + { CPUFUNC(op_06b8_0), 1720 }, /* ADD */ + { CPUFUNC(op_06b9_0), 1721 }, /* ADD */ + { CPUFUNC(op_06c0_0), 1728 }, /* RTM */ + { CPUFUNC(op_06c8_0), 1736 }, /* RTM */ + { CPUFUNC(op_06d0_0), 1744 }, /* CALLM */ + { CPUFUNC(op_06e8_0), 1768 }, /* CALLM */ + { CPUFUNC(op_06f0_0), 1776 }, /* CALLM */ + { CPUFUNC(op_06f8_0), 1784 }, /* CALLM */ + { CPUFUNC(op_06f9_0), 1785 }, /* CALLM */ + { CPUFUNC(op_06fa_0), 1786 }, /* CALLM */ + { CPUFUNC(op_06fb_0), 1787 }, /* CALLM */ + { CPUFUNC(op_0800_0), 2048 }, /* BTST */ + { CPUFUNC(op_0810_0), 2064 }, /* BTST */ + { CPUFUNC(op_0818_0), 2072 }, /* BTST */ + { CPUFUNC(op_0820_0), 2080 }, /* BTST */ + { CPUFUNC(op_0828_0), 2088 }, /* BTST */ + { CPUFUNC(op_0830_0), 2096 }, /* BTST */ + { CPUFUNC(op_0838_0), 2104 }, /* BTST */ + { CPUFUNC(op_0839_0), 2105 }, /* BTST */ + { CPUFUNC(op_083a_0), 2106 }, /* BTST */ + { CPUFUNC(op_083b_0), 2107 }, /* BTST */ + { CPUFUNC(op_083c_0), 2108 }, /* BTST */ + { CPUFUNC(op_0840_0), 2112 }, /* BCHG */ + { CPUFUNC(op_0850_0), 2128 }, /* BCHG */ + { CPUFUNC(op_0858_0), 2136 }, /* BCHG */ + { CPUFUNC(op_0860_0), 2144 }, /* BCHG */ + { CPUFUNC(op_0868_0), 2152 }, /* BCHG */ + { CPUFUNC(op_0870_0), 2160 }, /* BCHG */ + { CPUFUNC(op_0878_0), 2168 }, /* BCHG */ + { CPUFUNC(op_0879_0), 2169 }, /* BCHG */ + { CPUFUNC(op_0880_0), 2176 }, /* BCLR */ + { CPUFUNC(op_0890_0), 2192 }, /* BCLR */ + { CPUFUNC(op_0898_0), 2200 }, /* BCLR */ + { CPUFUNC(op_08a0_0), 2208 }, /* BCLR */ + { CPUFUNC(op_08a8_0), 2216 }, /* BCLR */ + { CPUFUNC(op_08b0_0), 2224 }, /* BCLR */ + { CPUFUNC(op_08b8_0), 2232 }, /* BCLR */ + { CPUFUNC(op_08b9_0), 2233 }, /* BCLR */ + { CPUFUNC(op_08c0_0), 2240 }, /* BSET */ + { CPUFUNC(op_08d0_0), 2256 }, /* BSET */ + { CPUFUNC(op_08d8_0), 2264 }, /* BSET */ + { CPUFUNC(op_08e0_0), 2272 }, /* BSET */ + { CPUFUNC(op_08e8_0), 2280 }, /* BSET */ + { CPUFUNC(op_08f0_0), 2288 }, /* BSET */ + { CPUFUNC(op_08f8_0), 2296 }, /* BSET */ + { CPUFUNC(op_08f9_0), 2297 }, /* BSET */ + { CPUFUNC(op_0a00_0), 2560 }, /* EOR */ + { CPUFUNC(op_0a10_0), 2576 }, /* EOR */ + { CPUFUNC(op_0a18_0), 2584 }, /* EOR */ + { CPUFUNC(op_0a20_0), 2592 }, /* EOR */ + { CPUFUNC(op_0a28_0), 2600 }, /* EOR */ + { CPUFUNC(op_0a30_0), 2608 }, /* EOR */ + { CPUFUNC(op_0a38_0), 2616 }, /* EOR */ + { CPUFUNC(op_0a39_0), 2617 }, /* EOR */ + { CPUFUNC(op_0a3c_0), 2620 }, /* EORSR */ + { CPUFUNC(op_0a40_0), 2624 }, /* EOR */ + { CPUFUNC(op_0a50_0), 2640 }, /* EOR */ + { CPUFUNC(op_0a58_0), 2648 }, /* EOR */ + { CPUFUNC(op_0a60_0), 2656 }, /* EOR */ + { CPUFUNC(op_0a68_0), 2664 }, /* EOR */ + { CPUFUNC(op_0a70_0), 2672 }, /* EOR */ + { CPUFUNC(op_0a78_0), 2680 }, /* EOR */ + { CPUFUNC(op_0a79_0), 2681 }, /* EOR */ + { CPUFUNC(op_0a7c_0), 2684 }, /* EORSR */ + { CPUFUNC(op_0a80_0), 2688 }, /* EOR */ + { CPUFUNC(op_0a90_0), 2704 }, /* EOR */ + { CPUFUNC(op_0a98_0), 2712 }, /* EOR */ + { CPUFUNC(op_0aa0_0), 2720 }, /* EOR */ + { CPUFUNC(op_0aa8_0), 2728 }, /* EOR */ + { CPUFUNC(op_0ab0_0), 2736 }, /* EOR */ + { CPUFUNC(op_0ab8_0), 2744 }, /* EOR */ + { CPUFUNC(op_0ab9_0), 2745 }, /* EOR */ + { CPUFUNC(op_0ad0_0), 2768 }, /* CAS */ + { CPUFUNC(op_0ad8_0), 2776 }, /* CAS */ + { CPUFUNC(op_0ae0_0), 2784 }, /* CAS */ + { CPUFUNC(op_0ae8_0), 2792 }, /* CAS */ + { CPUFUNC(op_0af0_0), 2800 }, /* CAS */ + { CPUFUNC(op_0af8_0), 2808 }, /* CAS */ + { CPUFUNC(op_0af9_0), 2809 }, /* CAS */ + { CPUFUNC(op_0c00_0), 3072 }, /* CMP */ + { CPUFUNC(op_0c10_0), 3088 }, /* CMP */ + { CPUFUNC(op_0c18_0), 3096 }, /* CMP */ + { CPUFUNC(op_0c20_0), 3104 }, /* CMP */ + { CPUFUNC(op_0c28_0), 3112 }, /* CMP */ + { CPUFUNC(op_0c30_0), 3120 }, /* CMP */ + { CPUFUNC(op_0c38_0), 3128 }, /* CMP */ + { CPUFUNC(op_0c39_0), 3129 }, /* CMP */ + { CPUFUNC(op_0c3a_0), 3130 }, /* CMP */ + { CPUFUNC(op_0c3b_0), 3131 }, /* CMP */ + { CPUFUNC(op_0c40_0), 3136 }, /* CMP */ + { CPUFUNC(op_0c50_0), 3152 }, /* CMP */ + { CPUFUNC(op_0c58_0), 3160 }, /* CMP */ + { CPUFUNC(op_0c60_0), 3168 }, /* CMP */ + { CPUFUNC(op_0c68_0), 3176 }, /* CMP */ + { CPUFUNC(op_0c70_0), 3184 }, /* CMP */ + { CPUFUNC(op_0c78_0), 3192 }, /* CMP */ + { CPUFUNC(op_0c79_0), 3193 }, /* CMP */ + { CPUFUNC(op_0c7a_0), 3194 }, /* CMP */ + { CPUFUNC(op_0c7b_0), 3195 }, /* CMP */ + { CPUFUNC(op_0c80_0), 3200 }, /* CMP */ + { CPUFUNC(op_0c90_0), 3216 }, /* CMP */ + { CPUFUNC(op_0c98_0), 3224 }, /* CMP */ + { CPUFUNC(op_0ca0_0), 3232 }, /* CMP */ + { CPUFUNC(op_0ca8_0), 3240 }, /* CMP */ + { CPUFUNC(op_0cb0_0), 3248 }, /* CMP */ + { CPUFUNC(op_0cb8_0), 3256 }, /* CMP */ + { CPUFUNC(op_0cb9_0), 3257 }, /* CMP */ + { CPUFUNC(op_0cba_0), 3258 }, /* CMP */ + { CPUFUNC(op_0cbb_0), 3259 }, /* CMP */ + { CPUFUNC(op_0cd0_0), 3280 }, /* CAS */ + { CPUFUNC(op_0cd8_0), 3288 }, /* CAS */ + { CPUFUNC(op_0ce0_0), 3296 }, /* CAS */ + { CPUFUNC(op_0ce8_0), 3304 }, /* CAS */ + { CPUFUNC(op_0cf0_0), 3312 }, /* CAS */ + { CPUFUNC(op_0cf8_0), 3320 }, /* CAS */ + { CPUFUNC(op_0cf9_0), 3321 }, /* CAS */ + { CPUFUNC(op_0cfc_0), 3324 }, /* CAS2 */ + { CPUFUNC(op_0e10_0), 3600 }, /* MOVES */ + { CPUFUNC(op_0e18_0), 3608 }, /* MOVES */ + { CPUFUNC(op_0e20_0), 3616 }, /* MOVES */ + { CPUFUNC(op_0e28_0), 3624 }, /* MOVES */ + { CPUFUNC(op_0e30_0), 3632 }, /* MOVES */ + { CPUFUNC(op_0e38_0), 3640 }, /* MOVES */ + { CPUFUNC(op_0e39_0), 3641 }, /* MOVES */ + { CPUFUNC(op_0e50_0), 3664 }, /* MOVES */ + { CPUFUNC(op_0e58_0), 3672 }, /* MOVES */ + { CPUFUNC(op_0e60_0), 3680 }, /* MOVES */ + { CPUFUNC(op_0e68_0), 3688 }, /* MOVES */ + { CPUFUNC(op_0e70_0), 3696 }, /* MOVES */ + { CPUFUNC(op_0e78_0), 3704 }, /* MOVES */ + { CPUFUNC(op_0e79_0), 3705 }, /* MOVES */ + { CPUFUNC(op_0e90_0), 3728 }, /* MOVES */ + { CPUFUNC(op_0e98_0), 3736 }, /* MOVES */ + { CPUFUNC(op_0ea0_0), 3744 }, /* MOVES */ + { CPUFUNC(op_0ea8_0), 3752 }, /* MOVES */ + { CPUFUNC(op_0eb0_0), 3760 }, /* MOVES */ + { CPUFUNC(op_0eb8_0), 3768 }, /* MOVES */ + { CPUFUNC(op_0eb9_0), 3769 }, /* MOVES */ + { CPUFUNC(op_0ed0_0), 3792 }, /* CAS */ + { CPUFUNC(op_0ed8_0), 3800 }, /* CAS */ + { CPUFUNC(op_0ee0_0), 3808 }, /* CAS */ + { CPUFUNC(op_0ee8_0), 3816 }, /* CAS */ + { CPUFUNC(op_0ef0_0), 3824 }, /* CAS */ + { CPUFUNC(op_0ef8_0), 3832 }, /* CAS */ + { CPUFUNC(op_0ef9_0), 3833 }, /* CAS */ + { CPUFUNC(op_0efc_0), 3836 }, /* CAS2 */ + { CPUFUNC(op_1000_0), 4096 }, /* MOVE */ + { CPUFUNC(op_1010_0), 4112 }, /* MOVE */ + { CPUFUNC(op_1018_0), 4120 }, /* MOVE */ + { CPUFUNC(op_1020_0), 4128 }, /* MOVE */ + { CPUFUNC(op_1028_0), 4136 }, /* MOVE */ + { CPUFUNC(op_1030_0), 4144 }, /* MOVE */ + { CPUFUNC(op_1038_0), 4152 }, /* MOVE */ + { CPUFUNC(op_1039_0), 4153 }, /* MOVE */ + { CPUFUNC(op_103a_0), 4154 }, /* MOVE */ + { CPUFUNC(op_103b_0), 4155 }, /* MOVE */ + { CPUFUNC(op_103c_0), 4156 }, /* MOVE */ + { CPUFUNC(op_1080_0), 4224 }, /* MOVE */ + { CPUFUNC(op_1090_0), 4240 }, /* MOVE */ + { CPUFUNC(op_1098_0), 4248 }, /* MOVE */ + { CPUFUNC(op_10a0_0), 4256 }, /* MOVE */ + { CPUFUNC(op_10a8_0), 4264 }, /* MOVE */ + { CPUFUNC(op_10b0_0), 4272 }, /* MOVE */ + { CPUFUNC(op_10b8_0), 4280 }, /* MOVE */ + { CPUFUNC(op_10b9_0), 4281 }, /* MOVE */ + { CPUFUNC(op_10ba_0), 4282 }, /* MOVE */ + { CPUFUNC(op_10bb_0), 4283 }, /* MOVE */ + { CPUFUNC(op_10bc_0), 4284 }, /* MOVE */ + { CPUFUNC(op_10c0_0), 4288 }, /* MOVE */ + { CPUFUNC(op_10d0_0), 4304 }, /* MOVE */ + { CPUFUNC(op_10d8_0), 4312 }, /* MOVE */ + { CPUFUNC(op_10e0_0), 4320 }, /* MOVE */ + { CPUFUNC(op_10e8_0), 4328 }, /* MOVE */ + { CPUFUNC(op_10f0_0), 4336 }, /* MOVE */ + { CPUFUNC(op_10f8_0), 4344 }, /* MOVE */ + { CPUFUNC(op_10f9_0), 4345 }, /* MOVE */ + { CPUFUNC(op_10fa_0), 4346 }, /* MOVE */ + { CPUFUNC(op_10fb_0), 4347 }, /* MOVE */ + { CPUFUNC(op_10fc_0), 4348 }, /* MOVE */ + { CPUFUNC(op_1100_0), 4352 }, /* MOVE */ + { CPUFUNC(op_1110_0), 4368 }, /* MOVE */ + { CPUFUNC(op_1118_0), 4376 }, /* MOVE */ + { CPUFUNC(op_1120_0), 4384 }, /* MOVE */ + { CPUFUNC(op_1128_0), 4392 }, /* MOVE */ + { CPUFUNC(op_1130_0), 4400 }, /* MOVE */ + { CPUFUNC(op_1138_0), 4408 }, /* MOVE */ + { CPUFUNC(op_1139_0), 4409 }, /* MOVE */ + { CPUFUNC(op_113a_0), 4410 }, /* MOVE */ + { CPUFUNC(op_113b_0), 4411 }, /* MOVE */ + { CPUFUNC(op_113c_0), 4412 }, /* MOVE */ + { CPUFUNC(op_1140_0), 4416 }, /* MOVE */ + { CPUFUNC(op_1150_0), 4432 }, /* MOVE */ + { CPUFUNC(op_1158_0), 4440 }, /* MOVE */ + { CPUFUNC(op_1160_0), 4448 }, /* MOVE */ + { CPUFUNC(op_1168_0), 4456 }, /* MOVE */ + { CPUFUNC(op_1170_0), 4464 }, /* MOVE */ + { CPUFUNC(op_1178_0), 4472 }, /* MOVE */ + { CPUFUNC(op_1179_0), 4473 }, /* MOVE */ + { CPUFUNC(op_117a_0), 4474 }, /* MOVE */ + { CPUFUNC(op_117b_0), 4475 }, /* MOVE */ + { CPUFUNC(op_117c_0), 4476 }, /* MOVE */ + { CPUFUNC(op_1180_0), 4480 }, /* MOVE */ + { CPUFUNC(op_1190_0), 4496 }, /* MOVE */ + { CPUFUNC(op_1198_0), 4504 }, /* MOVE */ + { CPUFUNC(op_11a0_0), 4512 }, /* MOVE */ + { CPUFUNC(op_11a8_0), 4520 }, /* MOVE */ + { CPUFUNC(op_11b0_0), 4528 }, /* MOVE */ + { CPUFUNC(op_11b8_0), 4536 }, /* MOVE */ + { CPUFUNC(op_11b9_0), 4537 }, /* MOVE */ + { CPUFUNC(op_11ba_0), 4538 }, /* MOVE */ + { CPUFUNC(op_11bb_0), 4539 }, /* MOVE */ + { CPUFUNC(op_11bc_0), 4540 }, /* MOVE */ + { CPUFUNC(op_11c0_0), 4544 }, /* MOVE */ + { CPUFUNC(op_11d0_0), 4560 }, /* MOVE */ + { CPUFUNC(op_11d8_0), 4568 }, /* MOVE */ + { CPUFUNC(op_11e0_0), 4576 }, /* MOVE */ + { CPUFUNC(op_11e8_0), 4584 }, /* MOVE */ + { CPUFUNC(op_11f0_0), 4592 }, /* MOVE */ + { CPUFUNC(op_11f8_0), 4600 }, /* MOVE */ + { CPUFUNC(op_11f9_0), 4601 }, /* MOVE */ + { CPUFUNC(op_11fa_0), 4602 }, /* MOVE */ + { CPUFUNC(op_11fb_0), 4603 }, /* MOVE */ + { CPUFUNC(op_11fc_0), 4604 }, /* MOVE */ + { CPUFUNC(op_13c0_0), 5056 }, /* MOVE */ + { CPUFUNC(op_13d0_0), 5072 }, /* MOVE */ + { CPUFUNC(op_13d8_0), 5080 }, /* MOVE */ + { CPUFUNC(op_13e0_0), 5088 }, /* MOVE */ + { CPUFUNC(op_13e8_0), 5096 }, /* MOVE */ + { CPUFUNC(op_13f0_0), 5104 }, /* MOVE */ + { CPUFUNC(op_13f8_0), 5112 }, /* MOVE */ + { CPUFUNC(op_13f9_0), 5113 }, /* MOVE */ + { CPUFUNC(op_13fa_0), 5114 }, /* MOVE */ + { CPUFUNC(op_13fb_0), 5115 }, /* MOVE */ + { CPUFUNC(op_13fc_0), 5116 }, /* MOVE */ + { CPUFUNC(op_2000_0), 8192 }, /* MOVE */ + { CPUFUNC(op_2008_0), 8200 }, /* MOVE */ + { CPUFUNC(op_2010_0), 8208 }, /* MOVE */ + { CPUFUNC(op_2018_0), 8216 }, /* MOVE */ + { CPUFUNC(op_2020_0), 8224 }, /* MOVE */ + { CPUFUNC(op_2028_0), 8232 }, /* MOVE */ + { CPUFUNC(op_2030_0), 8240 }, /* MOVE */ + { CPUFUNC(op_2038_0), 8248 }, /* MOVE */ + { CPUFUNC(op_2039_0), 8249 }, /* MOVE */ + { CPUFUNC(op_203a_0), 8250 }, /* MOVE */ + { CPUFUNC(op_203b_0), 8251 }, /* MOVE */ + { CPUFUNC(op_203c_0), 8252 }, /* MOVE */ + { CPUFUNC(op_2040_0), 8256 }, /* MOVEA */ + { CPUFUNC(op_2048_0), 8264 }, /* MOVEA */ + { CPUFUNC(op_2050_0), 8272 }, /* MOVEA */ + { CPUFUNC(op_2058_0), 8280 }, /* MOVEA */ + { CPUFUNC(op_2060_0), 8288 }, /* MOVEA */ + { CPUFUNC(op_2068_0), 8296 }, /* MOVEA */ + { CPUFUNC(op_2070_0), 8304 }, /* MOVEA */ + { CPUFUNC(op_2078_0), 8312 }, /* MOVEA */ + { CPUFUNC(op_2079_0), 8313 }, /* MOVEA */ + { CPUFUNC(op_207a_0), 8314 }, /* MOVEA */ + { CPUFUNC(op_207b_0), 8315 }, /* MOVEA */ + { CPUFUNC(op_207c_0), 8316 }, /* MOVEA */ + { CPUFUNC(op_2080_0), 8320 }, /* MOVE */ + { CPUFUNC(op_2088_0), 8328 }, /* MOVE */ + { CPUFUNC(op_2090_0), 8336 }, /* MOVE */ + { CPUFUNC(op_2098_0), 8344 }, /* MOVE */ + { CPUFUNC(op_20a0_0), 8352 }, /* MOVE */ + { CPUFUNC(op_20a8_0), 8360 }, /* MOVE */ + { CPUFUNC(op_20b0_0), 8368 }, /* MOVE */ + { CPUFUNC(op_20b8_0), 8376 }, /* MOVE */ + { CPUFUNC(op_20b9_0), 8377 }, /* MOVE */ + { CPUFUNC(op_20ba_0), 8378 }, /* MOVE */ + { CPUFUNC(op_20bb_0), 8379 }, /* MOVE */ + { CPUFUNC(op_20bc_0), 8380 }, /* MOVE */ + { CPUFUNC(op_20c0_0), 8384 }, /* MOVE */ + { CPUFUNC(op_20c8_0), 8392 }, /* MOVE */ + { CPUFUNC(op_20d0_0), 8400 }, /* MOVE */ + { CPUFUNC(op_20d8_0), 8408 }, /* MOVE */ + { CPUFUNC(op_20e0_0), 8416 }, /* MOVE */ + { CPUFUNC(op_20e8_0), 8424 }, /* MOVE */ + { CPUFUNC(op_20f0_0), 8432 }, /* MOVE */ + { CPUFUNC(op_20f8_0), 8440 }, /* MOVE */ + { CPUFUNC(op_20f9_0), 8441 }, /* MOVE */ + { CPUFUNC(op_20fa_0), 8442 }, /* MOVE */ + { CPUFUNC(op_20fb_0), 8443 }, /* MOVE */ + { CPUFUNC(op_20fc_0), 8444 }, /* MOVE */ + { CPUFUNC(op_2100_0), 8448 }, /* MOVE */ + { CPUFUNC(op_2108_0), 8456 }, /* MOVE */ + { CPUFUNC(op_2110_0), 8464 }, /* MOVE */ + { CPUFUNC(op_2118_0), 8472 }, /* MOVE */ + { CPUFUNC(op_2120_0), 8480 }, /* MOVE */ + { CPUFUNC(op_2128_0), 8488 }, /* MOVE */ + { CPUFUNC(op_2130_0), 8496 }, /* MOVE */ + { CPUFUNC(op_2138_0), 8504 }, /* MOVE */ + { CPUFUNC(op_2139_0), 8505 }, /* MOVE */ + { CPUFUNC(op_213a_0), 8506 }, /* MOVE */ + { CPUFUNC(op_213b_0), 8507 }, /* MOVE */ + { CPUFUNC(op_213c_0), 8508 }, /* MOVE */ + { CPUFUNC(op_2140_0), 8512 }, /* MOVE */ + { CPUFUNC(op_2148_0), 8520 }, /* MOVE */ + { CPUFUNC(op_2150_0), 8528 }, /* MOVE */ + { CPUFUNC(op_2158_0), 8536 }, /* MOVE */ + { CPUFUNC(op_2160_0), 8544 }, /* MOVE */ + { CPUFUNC(op_2168_0), 8552 }, /* MOVE */ + { CPUFUNC(op_2170_0), 8560 }, /* MOVE */ + { CPUFUNC(op_2178_0), 8568 }, /* MOVE */ + { CPUFUNC(op_2179_0), 8569 }, /* MOVE */ + { CPUFUNC(op_217a_0), 8570 }, /* MOVE */ + { CPUFUNC(op_217b_0), 8571 }, /* MOVE */ + { CPUFUNC(op_217c_0), 8572 }, /* MOVE */ + { CPUFUNC(op_2180_0), 8576 }, /* MOVE */ + { CPUFUNC(op_2188_0), 8584 }, /* MOVE */ + { CPUFUNC(op_2190_0), 8592 }, /* MOVE */ + { CPUFUNC(op_2198_0), 8600 }, /* MOVE */ + { CPUFUNC(op_21a0_0), 8608 }, /* MOVE */ + { CPUFUNC(op_21a8_0), 8616 }, /* MOVE */ + { CPUFUNC(op_21b0_0), 8624 }, /* MOVE */ + { CPUFUNC(op_21b8_0), 8632 }, /* MOVE */ + { CPUFUNC(op_21b9_0), 8633 }, /* MOVE */ + { CPUFUNC(op_21ba_0), 8634 }, /* MOVE */ + { CPUFUNC(op_21bb_0), 8635 }, /* MOVE */ + { CPUFUNC(op_21bc_0), 8636 }, /* MOVE */ + { CPUFUNC(op_21c0_0), 8640 }, /* MOVE */ + { CPUFUNC(op_21c8_0), 8648 }, /* MOVE */ + { CPUFUNC(op_21d0_0), 8656 }, /* MOVE */ + { CPUFUNC(op_21d8_0), 8664 }, /* MOVE */ + { CPUFUNC(op_21e0_0), 8672 }, /* MOVE */ + { CPUFUNC(op_21e8_0), 8680 }, /* MOVE */ + { CPUFUNC(op_21f0_0), 8688 }, /* MOVE */ + { CPUFUNC(op_21f8_0), 8696 }, /* MOVE */ + { CPUFUNC(op_21f9_0), 8697 }, /* MOVE */ + { CPUFUNC(op_21fa_0), 8698 }, /* MOVE */ + { CPUFUNC(op_21fb_0), 8699 }, /* MOVE */ + { CPUFUNC(op_21fc_0), 8700 }, /* MOVE */ + { CPUFUNC(op_23c0_0), 9152 }, /* MOVE */ + { CPUFUNC(op_23c8_0), 9160 }, /* MOVE */ + { CPUFUNC(op_23d0_0), 9168 }, /* MOVE */ + { CPUFUNC(op_23d8_0), 9176 }, /* MOVE */ + { CPUFUNC(op_23e0_0), 9184 }, /* MOVE */ + { CPUFUNC(op_23e8_0), 9192 }, /* MOVE */ + { CPUFUNC(op_23f0_0), 9200 }, /* MOVE */ + { CPUFUNC(op_23f8_0), 9208 }, /* MOVE */ + { CPUFUNC(op_23f9_0), 9209 }, /* MOVE */ + { CPUFUNC(op_23fa_0), 9210 }, /* MOVE */ + { CPUFUNC(op_23fb_0), 9211 }, /* MOVE */ + { CPUFUNC(op_23fc_0), 9212 }, /* MOVE */ + { CPUFUNC(op_3000_0), 12288 }, /* MOVE */ + { CPUFUNC(op_3008_0), 12296 }, /* MOVE */ + { CPUFUNC(op_3010_0), 12304 }, /* MOVE */ + { CPUFUNC(op_3018_0), 12312 }, /* MOVE */ + { CPUFUNC(op_3020_0), 12320 }, /* MOVE */ + { CPUFUNC(op_3028_0), 12328 }, /* MOVE */ + { CPUFUNC(op_3030_0), 12336 }, /* MOVE */ + { CPUFUNC(op_3038_0), 12344 }, /* MOVE */ + { CPUFUNC(op_3039_0), 12345 }, /* MOVE */ + { CPUFUNC(op_303a_0), 12346 }, /* MOVE */ + { CPUFUNC(op_303b_0), 12347 }, /* MOVE */ + { CPUFUNC(op_303c_0), 12348 }, /* MOVE */ + { CPUFUNC(op_3040_0), 12352 }, /* MOVEA */ + { CPUFUNC(op_3048_0), 12360 }, /* MOVEA */ + { CPUFUNC(op_3050_0), 12368 }, /* MOVEA */ + { CPUFUNC(op_3058_0), 12376 }, /* MOVEA */ + { CPUFUNC(op_3060_0), 12384 }, /* MOVEA */ + { CPUFUNC(op_3068_0), 12392 }, /* MOVEA */ + { CPUFUNC(op_3070_0), 12400 }, /* MOVEA */ + { CPUFUNC(op_3078_0), 12408 }, /* MOVEA */ + { CPUFUNC(op_3079_0), 12409 }, /* MOVEA */ + { CPUFUNC(op_307a_0), 12410 }, /* MOVEA */ + { CPUFUNC(op_307b_0), 12411 }, /* MOVEA */ + { CPUFUNC(op_307c_0), 12412 }, /* MOVEA */ + { CPUFUNC(op_3080_0), 12416 }, /* MOVE */ + { CPUFUNC(op_3088_0), 12424 }, /* MOVE */ + { CPUFUNC(op_3090_0), 12432 }, /* MOVE */ + { CPUFUNC(op_3098_0), 12440 }, /* MOVE */ + { CPUFUNC(op_30a0_0), 12448 }, /* MOVE */ + { CPUFUNC(op_30a8_0), 12456 }, /* MOVE */ + { CPUFUNC(op_30b0_0), 12464 }, /* MOVE */ + { CPUFUNC(op_30b8_0), 12472 }, /* MOVE */ + { CPUFUNC(op_30b9_0), 12473 }, /* MOVE */ + { CPUFUNC(op_30ba_0), 12474 }, /* MOVE */ + { CPUFUNC(op_30bb_0), 12475 }, /* MOVE */ + { CPUFUNC(op_30bc_0), 12476 }, /* MOVE */ + { CPUFUNC(op_30c0_0), 12480 }, /* MOVE */ + { CPUFUNC(op_30c8_0), 12488 }, /* MOVE */ + { CPUFUNC(op_30d0_0), 12496 }, /* MOVE */ + { CPUFUNC(op_30d8_0), 12504 }, /* MOVE */ + { CPUFUNC(op_30e0_0), 12512 }, /* MOVE */ + { CPUFUNC(op_30e8_0), 12520 }, /* MOVE */ + { CPUFUNC(op_30f0_0), 12528 }, /* MOVE */ + { CPUFUNC(op_30f8_0), 12536 }, /* MOVE */ + { CPUFUNC(op_30f9_0), 12537 }, /* MOVE */ + { CPUFUNC(op_30fa_0), 12538 }, /* MOVE */ + { CPUFUNC(op_30fb_0), 12539 }, /* MOVE */ + { CPUFUNC(op_30fc_0), 12540 }, /* MOVE */ + { CPUFUNC(op_3100_0), 12544 }, /* MOVE */ + { CPUFUNC(op_3108_0), 12552 }, /* MOVE */ + { CPUFUNC(op_3110_0), 12560 }, /* MOVE */ + { CPUFUNC(op_3118_0), 12568 }, /* MOVE */ + { CPUFUNC(op_3120_0), 12576 }, /* MOVE */ + { CPUFUNC(op_3128_0), 12584 }, /* MOVE */ + { CPUFUNC(op_3130_0), 12592 }, /* MOVE */ + { CPUFUNC(op_3138_0), 12600 }, /* MOVE */ + { CPUFUNC(op_3139_0), 12601 }, /* MOVE */ + { CPUFUNC(op_313a_0), 12602 }, /* MOVE */ + { CPUFUNC(op_313b_0), 12603 }, /* MOVE */ + { CPUFUNC(op_313c_0), 12604 }, /* MOVE */ + { CPUFUNC(op_3140_0), 12608 }, /* MOVE */ + { CPUFUNC(op_3148_0), 12616 }, /* MOVE */ + { CPUFUNC(op_3150_0), 12624 }, /* MOVE */ + { CPUFUNC(op_3158_0), 12632 }, /* MOVE */ + { CPUFUNC(op_3160_0), 12640 }, /* MOVE */ + { CPUFUNC(op_3168_0), 12648 }, /* MOVE */ + { CPUFUNC(op_3170_0), 12656 }, /* MOVE */ + { CPUFUNC(op_3178_0), 12664 }, /* MOVE */ + { CPUFUNC(op_3179_0), 12665 }, /* MOVE */ + { CPUFUNC(op_317a_0), 12666 }, /* MOVE */ + { CPUFUNC(op_317b_0), 12667 }, /* MOVE */ + { CPUFUNC(op_317c_0), 12668 }, /* MOVE */ + { CPUFUNC(op_3180_0), 12672 }, /* MOVE */ + { CPUFUNC(op_3188_0), 12680 }, /* MOVE */ + { CPUFUNC(op_3190_0), 12688 }, /* MOVE */ + { CPUFUNC(op_3198_0), 12696 }, /* MOVE */ + { CPUFUNC(op_31a0_0), 12704 }, /* MOVE */ + { CPUFUNC(op_31a8_0), 12712 }, /* MOVE */ + { CPUFUNC(op_31b0_0), 12720 }, /* MOVE */ + { CPUFUNC(op_31b8_0), 12728 }, /* MOVE */ + { CPUFUNC(op_31b9_0), 12729 }, /* MOVE */ + { CPUFUNC(op_31ba_0), 12730 }, /* MOVE */ + { CPUFUNC(op_31bb_0), 12731 }, /* MOVE */ + { CPUFUNC(op_31bc_0), 12732 }, /* MOVE */ + { CPUFUNC(op_31c0_0), 12736 }, /* MOVE */ + { CPUFUNC(op_31c8_0), 12744 }, /* MOVE */ + { CPUFUNC(op_31d0_0), 12752 }, /* MOVE */ + { CPUFUNC(op_31d8_0), 12760 }, /* MOVE */ + { CPUFUNC(op_31e0_0), 12768 }, /* MOVE */ + { CPUFUNC(op_31e8_0), 12776 }, /* MOVE */ + { CPUFUNC(op_31f0_0), 12784 }, /* MOVE */ + { CPUFUNC(op_31f8_0), 12792 }, /* MOVE */ + { CPUFUNC(op_31f9_0), 12793 }, /* MOVE */ + { CPUFUNC(op_31fa_0), 12794 }, /* MOVE */ + { CPUFUNC(op_31fb_0), 12795 }, /* MOVE */ + { CPUFUNC(op_31fc_0), 12796 }, /* MOVE */ + { CPUFUNC(op_33c0_0), 13248 }, /* MOVE */ + { CPUFUNC(op_33c8_0), 13256 }, /* MOVE */ + { CPUFUNC(op_33d0_0), 13264 }, /* MOVE */ + { CPUFUNC(op_33d8_0), 13272 }, /* MOVE */ + { CPUFUNC(op_33e0_0), 13280 }, /* MOVE */ + { CPUFUNC(op_33e8_0), 13288 }, /* MOVE */ + { CPUFUNC(op_33f0_0), 13296 }, /* MOVE */ + { CPUFUNC(op_33f8_0), 13304 }, /* MOVE */ + { CPUFUNC(op_33f9_0), 13305 }, /* MOVE */ + { CPUFUNC(op_33fa_0), 13306 }, /* MOVE */ + { CPUFUNC(op_33fb_0), 13307 }, /* MOVE */ + { CPUFUNC(op_33fc_0), 13308 }, /* MOVE */ + { CPUFUNC(op_4000_0), 16384 }, /* NEGX */ + { CPUFUNC(op_4010_0), 16400 }, /* NEGX */ + { CPUFUNC(op_4018_0), 16408 }, /* NEGX */ + { CPUFUNC(op_4020_0), 16416 }, /* NEGX */ + { CPUFUNC(op_4028_0), 16424 }, /* NEGX */ + { CPUFUNC(op_4030_0), 16432 }, /* NEGX */ + { CPUFUNC(op_4038_0), 16440 }, /* NEGX */ + { CPUFUNC(op_4039_0), 16441 }, /* NEGX */ + { CPUFUNC(op_4040_0), 16448 }, /* NEGX */ + { CPUFUNC(op_4050_0), 16464 }, /* NEGX */ + { CPUFUNC(op_4058_0), 16472 }, /* NEGX */ + { CPUFUNC(op_4060_0), 16480 }, /* NEGX */ + { CPUFUNC(op_4068_0), 16488 }, /* NEGX */ + { CPUFUNC(op_4070_0), 16496 }, /* NEGX */ + { CPUFUNC(op_4078_0), 16504 }, /* NEGX */ + { CPUFUNC(op_4079_0), 16505 }, /* NEGX */ + { CPUFUNC(op_4080_0), 16512 }, /* NEGX */ + { CPUFUNC(op_4090_0), 16528 }, /* NEGX */ + { CPUFUNC(op_4098_0), 16536 }, /* NEGX */ + { CPUFUNC(op_40a0_0), 16544 }, /* NEGX */ + { CPUFUNC(op_40a8_0), 16552 }, /* NEGX */ + { CPUFUNC(op_40b0_0), 16560 }, /* NEGX */ + { CPUFUNC(op_40b8_0), 16568 }, /* NEGX */ + { CPUFUNC(op_40b9_0), 16569 }, /* NEGX */ + { CPUFUNC(op_40c0_0), 16576 }, /* MVSR2 */ + { CPUFUNC(op_40d0_0), 16592 }, /* MVSR2 */ + { CPUFUNC(op_40d8_0), 16600 }, /* MVSR2 */ + { CPUFUNC(op_40e0_0), 16608 }, /* MVSR2 */ + { CPUFUNC(op_40e8_0), 16616 }, /* MVSR2 */ + { CPUFUNC(op_40f0_0), 16624 }, /* MVSR2 */ + { CPUFUNC(op_40f8_0), 16632 }, /* MVSR2 */ + { CPUFUNC(op_40f9_0), 16633 }, /* MVSR2 */ + { CPUFUNC(op_4100_0), 16640 }, /* CHK */ + { CPUFUNC(op_4110_0), 16656 }, /* CHK */ + { CPUFUNC(op_4118_0), 16664 }, /* CHK */ + { CPUFUNC(op_4120_0), 16672 }, /* CHK */ + { CPUFUNC(op_4128_0), 16680 }, /* CHK */ + { CPUFUNC(op_4130_0), 16688 }, /* CHK */ + { CPUFUNC(op_4138_0), 16696 }, /* CHK */ + { CPUFUNC(op_4139_0), 16697 }, /* CHK */ + { CPUFUNC(op_413a_0), 16698 }, /* CHK */ + { CPUFUNC(op_413b_0), 16699 }, /* CHK */ + { CPUFUNC(op_413c_0), 16700 }, /* CHK */ + { CPUFUNC(op_4180_0), 16768 }, /* CHK */ + { CPUFUNC(op_4190_0), 16784 }, /* CHK */ + { CPUFUNC(op_4198_0), 16792 }, /* CHK */ + { CPUFUNC(op_41a0_0), 16800 }, /* CHK */ + { CPUFUNC(op_41a8_0), 16808 }, /* CHK */ + { CPUFUNC(op_41b0_0), 16816 }, /* CHK */ + { CPUFUNC(op_41b8_0), 16824 }, /* CHK */ + { CPUFUNC(op_41b9_0), 16825 }, /* CHK */ + { CPUFUNC(op_41ba_0), 16826 }, /* CHK */ + { CPUFUNC(op_41bb_0), 16827 }, /* CHK */ + { CPUFUNC(op_41bc_0), 16828 }, /* CHK */ + { CPUFUNC(op_41d0_0), 16848 }, /* LEA */ + { CPUFUNC(op_41e8_0), 16872 }, /* LEA */ + { CPUFUNC(op_41f0_0), 16880 }, /* LEA */ + { CPUFUNC(op_41f8_0), 16888 }, /* LEA */ + { CPUFUNC(op_41f9_0), 16889 }, /* LEA */ + { CPUFUNC(op_41fa_0), 16890 }, /* LEA */ + { CPUFUNC(op_41fb_0), 16891 }, /* LEA */ + { CPUFUNC(op_4200_0), 16896 }, /* CLR */ + { CPUFUNC(op_4210_0), 16912 }, /* CLR */ + { CPUFUNC(op_4218_0), 16920 }, /* CLR */ + { CPUFUNC(op_4220_0), 16928 }, /* CLR */ + { CPUFUNC(op_4228_0), 16936 }, /* CLR */ + { CPUFUNC(op_4230_0), 16944 }, /* CLR */ + { CPUFUNC(op_4238_0), 16952 }, /* CLR */ + { CPUFUNC(op_4239_0), 16953 }, /* CLR */ + { CPUFUNC(op_4240_0), 16960 }, /* CLR */ + { CPUFUNC(op_4250_0), 16976 }, /* CLR */ + { CPUFUNC(op_4258_0), 16984 }, /* CLR */ + { CPUFUNC(op_4260_0), 16992 }, /* CLR */ + { CPUFUNC(op_4268_0), 17000 }, /* CLR */ + { CPUFUNC(op_4270_0), 17008 }, /* CLR */ + { CPUFUNC(op_4278_0), 17016 }, /* CLR */ + { CPUFUNC(op_4279_0), 17017 }, /* CLR */ + { CPUFUNC(op_4280_0), 17024 }, /* CLR */ + { CPUFUNC(op_4290_0), 17040 }, /* CLR */ + { CPUFUNC(op_4298_0), 17048 }, /* CLR */ + { CPUFUNC(op_42a0_0), 17056 }, /* CLR */ + { CPUFUNC(op_42a8_0), 17064 }, /* CLR */ + { CPUFUNC(op_42b0_0), 17072 }, /* CLR */ + { CPUFUNC(op_42b8_0), 17080 }, /* CLR */ + { CPUFUNC(op_42b9_0), 17081 }, /* CLR */ + { CPUFUNC(op_42c0_0), 17088 }, /* MVSR2 */ + { CPUFUNC(op_42d0_0), 17104 }, /* MVSR2 */ + { CPUFUNC(op_42d8_0), 17112 }, /* MVSR2 */ + { CPUFUNC(op_42e0_0), 17120 }, /* MVSR2 */ + { CPUFUNC(op_42e8_0), 17128 }, /* MVSR2 */ + { CPUFUNC(op_42f0_0), 17136 }, /* MVSR2 */ + { CPUFUNC(op_42f8_0), 17144 }, /* MVSR2 */ + { CPUFUNC(op_42f9_0), 17145 }, /* MVSR2 */ + { CPUFUNC(op_4400_0), 17408 }, /* NEG */ + { CPUFUNC(op_4410_0), 17424 }, /* NEG */ + { CPUFUNC(op_4418_0), 17432 }, /* NEG */ + { CPUFUNC(op_4420_0), 17440 }, /* NEG */ + { CPUFUNC(op_4428_0), 17448 }, /* NEG */ + { CPUFUNC(op_4430_0), 17456 }, /* NEG */ + { CPUFUNC(op_4438_0), 17464 }, /* NEG */ + { CPUFUNC(op_4439_0), 17465 }, /* NEG */ + { CPUFUNC(op_4440_0), 17472 }, /* NEG */ + { CPUFUNC(op_4450_0), 17488 }, /* NEG */ + { CPUFUNC(op_4458_0), 17496 }, /* NEG */ + { CPUFUNC(op_4460_0), 17504 }, /* NEG */ + { CPUFUNC(op_4468_0), 17512 }, /* NEG */ + { CPUFUNC(op_4470_0), 17520 }, /* NEG */ + { CPUFUNC(op_4478_0), 17528 }, /* NEG */ + { CPUFUNC(op_4479_0), 17529 }, /* NEG */ + { CPUFUNC(op_4480_0), 17536 }, /* NEG */ + { CPUFUNC(op_4490_0), 17552 }, /* NEG */ + { CPUFUNC(op_4498_0), 17560 }, /* NEG */ + { CPUFUNC(op_44a0_0), 17568 }, /* NEG */ + { CPUFUNC(op_44a8_0), 17576 }, /* NEG */ + { CPUFUNC(op_44b0_0), 17584 }, /* NEG */ + { CPUFUNC(op_44b8_0), 17592 }, /* NEG */ + { CPUFUNC(op_44b9_0), 17593 }, /* NEG */ + { CPUFUNC(op_44c0_0), 17600 }, /* MV2SR */ + { CPUFUNC(op_44d0_0), 17616 }, /* MV2SR */ + { CPUFUNC(op_44d8_0), 17624 }, /* MV2SR */ + { CPUFUNC(op_44e0_0), 17632 }, /* MV2SR */ + { CPUFUNC(op_44e8_0), 17640 }, /* MV2SR */ + { CPUFUNC(op_44f0_0), 17648 }, /* MV2SR */ + { CPUFUNC(op_44f8_0), 17656 }, /* MV2SR */ + { CPUFUNC(op_44f9_0), 17657 }, /* MV2SR */ + { CPUFUNC(op_44fa_0), 17658 }, /* MV2SR */ + { CPUFUNC(op_44fb_0), 17659 }, /* MV2SR */ + { CPUFUNC(op_44fc_0), 17660 }, /* MV2SR */ + { CPUFUNC(op_4600_0), 17920 }, /* NOT */ + { CPUFUNC(op_4610_0), 17936 }, /* NOT */ + { CPUFUNC(op_4618_0), 17944 }, /* NOT */ + { CPUFUNC(op_4620_0), 17952 }, /* NOT */ + { CPUFUNC(op_4628_0), 17960 }, /* NOT */ + { CPUFUNC(op_4630_0), 17968 }, /* NOT */ + { CPUFUNC(op_4638_0), 17976 }, /* NOT */ + { CPUFUNC(op_4639_0), 17977 }, /* NOT */ + { CPUFUNC(op_4640_0), 17984 }, /* NOT */ + { CPUFUNC(op_4650_0), 18000 }, /* NOT */ + { CPUFUNC(op_4658_0), 18008 }, /* NOT */ + { CPUFUNC(op_4660_0), 18016 }, /* NOT */ + { CPUFUNC(op_4668_0), 18024 }, /* NOT */ + { CPUFUNC(op_4670_0), 18032 }, /* NOT */ + { CPUFUNC(op_4678_0), 18040 }, /* NOT */ + { CPUFUNC(op_4679_0), 18041 }, /* NOT */ + { CPUFUNC(op_4680_0), 18048 }, /* NOT */ + { CPUFUNC(op_4690_0), 18064 }, /* NOT */ + { CPUFUNC(op_4698_0), 18072 }, /* NOT */ + { CPUFUNC(op_46a0_0), 18080 }, /* NOT */ + { CPUFUNC(op_46a8_0), 18088 }, /* NOT */ + { CPUFUNC(op_46b0_0), 18096 }, /* NOT */ + { CPUFUNC(op_46b8_0), 18104 }, /* NOT */ + { CPUFUNC(op_46b9_0), 18105 }, /* NOT */ + { CPUFUNC(op_46c0_0), 18112 }, /* MV2SR */ + { CPUFUNC(op_46d0_0), 18128 }, /* MV2SR */ + { CPUFUNC(op_46d8_0), 18136 }, /* MV2SR */ + { CPUFUNC(op_46e0_0), 18144 }, /* MV2SR */ + { CPUFUNC(op_46e8_0), 18152 }, /* MV2SR */ + { CPUFUNC(op_46f0_0), 18160 }, /* MV2SR */ + { CPUFUNC(op_46f8_0), 18168 }, /* MV2SR */ + { CPUFUNC(op_46f9_0), 18169 }, /* MV2SR */ + { CPUFUNC(op_46fa_0), 18170 }, /* MV2SR */ + { CPUFUNC(op_46fb_0), 18171 }, /* MV2SR */ + { CPUFUNC(op_46fc_0), 18172 }, /* MV2SR */ + { CPUFUNC(op_4800_2), 18432 }, /* NBCD */ + { CPUFUNC(op_4808_0), 18440 }, /* LINK */ + { CPUFUNC(op_4810_2), 18448 }, /* NBCD */ + { CPUFUNC(op_4818_2), 18456 }, /* NBCD */ + { CPUFUNC(op_4820_2), 18464 }, /* NBCD */ + { CPUFUNC(op_4828_2), 18472 }, /* NBCD */ + { CPUFUNC(op_4830_2), 18480 }, /* NBCD */ + { CPUFUNC(op_4838_2), 18488 }, /* NBCD */ + { CPUFUNC(op_4839_2), 18489 }, /* NBCD */ + { CPUFUNC(op_4840_0), 18496 }, /* SWAP */ + { CPUFUNC(op_4848_0), 18504 }, /* BKPT */ + { CPUFUNC(op_4850_0), 18512 }, /* PEA */ + { CPUFUNC(op_4868_0), 18536 }, /* PEA */ + { CPUFUNC(op_4870_0), 18544 }, /* PEA */ + { CPUFUNC(op_4878_0), 18552 }, /* PEA */ + { CPUFUNC(op_4879_0), 18553 }, /* PEA */ + { CPUFUNC(op_487a_0), 18554 }, /* PEA */ + { CPUFUNC(op_487b_0), 18555 }, /* PEA */ + { CPUFUNC(op_4880_0), 18560 }, /* EXT */ + { CPUFUNC(op_4890_0), 18576 }, /* MVMLE */ + { CPUFUNC(op_48a0_0), 18592 }, /* MVMLE */ + { CPUFUNC(op_48a8_0), 18600 }, /* MVMLE */ + { CPUFUNC(op_48b0_0), 18608 }, /* MVMLE */ + { CPUFUNC(op_48b8_0), 18616 }, /* MVMLE */ + { CPUFUNC(op_48b9_0), 18617 }, /* MVMLE */ + { CPUFUNC(op_48c0_0), 18624 }, /* EXT */ + { CPUFUNC(op_48d0_0), 18640 }, /* MVMLE */ + { CPUFUNC(op_48e0_0), 18656 }, /* MVMLE */ + { CPUFUNC(op_48e8_0), 18664 }, /* MVMLE */ + { CPUFUNC(op_48f0_0), 18672 }, /* MVMLE */ + { CPUFUNC(op_48f8_0), 18680 }, /* MVMLE */ + { CPUFUNC(op_48f9_0), 18681 }, /* MVMLE */ + { CPUFUNC(op_49c0_0), 18880 }, /* EXT */ + { CPUFUNC(op_4a00_0), 18944 }, /* TST */ + { CPUFUNC(op_4a10_0), 18960 }, /* TST */ + { CPUFUNC(op_4a18_0), 18968 }, /* TST */ + { CPUFUNC(op_4a20_0), 18976 }, /* TST */ + { CPUFUNC(op_4a28_0), 18984 }, /* TST */ + { CPUFUNC(op_4a30_0), 18992 }, /* TST */ + { CPUFUNC(op_4a38_0), 19000 }, /* TST */ + { CPUFUNC(op_4a39_0), 19001 }, /* TST */ + { CPUFUNC(op_4a3a_0), 19002 }, /* TST */ + { CPUFUNC(op_4a3b_0), 19003 }, /* TST */ + { CPUFUNC(op_4a3c_0), 19004 }, /* TST */ + { CPUFUNC(op_4a40_0), 19008 }, /* TST */ + { CPUFUNC(op_4a48_0), 19016 }, /* TST */ + { CPUFUNC(op_4a50_0), 19024 }, /* TST */ + { CPUFUNC(op_4a58_0), 19032 }, /* TST */ + { CPUFUNC(op_4a60_0), 19040 }, /* TST */ + { CPUFUNC(op_4a68_0), 19048 }, /* TST */ + { CPUFUNC(op_4a70_0), 19056 }, /* TST */ + { CPUFUNC(op_4a78_0), 19064 }, /* TST */ + { CPUFUNC(op_4a79_0), 19065 }, /* TST */ + { CPUFUNC(op_4a7a_0), 19066 }, /* TST */ + { CPUFUNC(op_4a7b_0), 19067 }, /* TST */ + { CPUFUNC(op_4a7c_0), 19068 }, /* TST */ + { CPUFUNC(op_4a80_0), 19072 }, /* TST */ + { CPUFUNC(op_4a88_0), 19080 }, /* TST */ + { CPUFUNC(op_4a90_0), 19088 }, /* TST */ + { CPUFUNC(op_4a98_0), 19096 }, /* TST */ + { CPUFUNC(op_4aa0_0), 19104 }, /* TST */ + { CPUFUNC(op_4aa8_0), 19112 }, /* TST */ + { CPUFUNC(op_4ab0_0), 19120 }, /* TST */ + { CPUFUNC(op_4ab8_0), 19128 }, /* TST */ + { CPUFUNC(op_4ab9_0), 19129 }, /* TST */ + { CPUFUNC(op_4aba_0), 19130 }, /* TST */ + { CPUFUNC(op_4abb_0), 19131 }, /* TST */ + { CPUFUNC(op_4abc_0), 19132 }, /* TST */ + { CPUFUNC(op_4ac0_0), 19136 }, /* TAS */ + { CPUFUNC(op_4ad0_0), 19152 }, /* TAS */ + { CPUFUNC(op_4ad8_0), 19160 }, /* TAS */ + { CPUFUNC(op_4ae0_0), 19168 }, /* TAS */ + { CPUFUNC(op_4ae8_0), 19176 }, /* TAS */ + { CPUFUNC(op_4af0_0), 19184 }, /* TAS */ + { CPUFUNC(op_4af8_0), 19192 }, /* TAS */ + { CPUFUNC(op_4af9_0), 19193 }, /* TAS */ + { CPUFUNC(op_4c00_0), 19456 }, /* MULL */ + { CPUFUNC(op_4c10_0), 19472 }, /* MULL */ + { CPUFUNC(op_4c18_0), 19480 }, /* MULL */ + { CPUFUNC(op_4c20_0), 19488 }, /* MULL */ + { CPUFUNC(op_4c28_0), 19496 }, /* MULL */ + { CPUFUNC(op_4c30_0), 19504 }, /* MULL */ + { CPUFUNC(op_4c38_0), 19512 }, /* MULL */ + { CPUFUNC(op_4c39_0), 19513 }, /* MULL */ + { CPUFUNC(op_4c3a_0), 19514 }, /* MULL */ + { CPUFUNC(op_4c3b_0), 19515 }, /* MULL */ + { CPUFUNC(op_4c3c_0), 19516 }, /* MULL */ + { CPUFUNC(op_4c40_0), 19520 }, /* DIVL */ + { CPUFUNC(op_4c50_0), 19536 }, /* DIVL */ + { CPUFUNC(op_4c58_0), 19544 }, /* DIVL */ + { CPUFUNC(op_4c60_0), 19552 }, /* DIVL */ + { CPUFUNC(op_4c68_0), 19560 }, /* DIVL */ + { CPUFUNC(op_4c70_0), 19568 }, /* DIVL */ + { CPUFUNC(op_4c78_0), 19576 }, /* DIVL */ + { CPUFUNC(op_4c79_0), 19577 }, /* DIVL */ + { CPUFUNC(op_4c7a_0), 19578 }, /* DIVL */ + { CPUFUNC(op_4c7b_0), 19579 }, /* DIVL */ + { CPUFUNC(op_4c7c_0), 19580 }, /* DIVL */ + { CPUFUNC(op_4c90_0), 19600 }, /* MVMEL */ + { CPUFUNC(op_4c98_0), 19608 }, /* MVMEL */ + { CPUFUNC(op_4ca8_0), 19624 }, /* MVMEL */ + { CPUFUNC(op_4cb0_0), 19632 }, /* MVMEL */ + { CPUFUNC(op_4cb8_0), 19640 }, /* MVMEL */ + { CPUFUNC(op_4cb9_0), 19641 }, /* MVMEL */ + { CPUFUNC(op_4cba_0), 19642 }, /* MVMEL */ + { CPUFUNC(op_4cbb_0), 19643 }, /* MVMEL */ + { CPUFUNC(op_4cd0_0), 19664 }, /* MVMEL */ + { CPUFUNC(op_4cd8_0), 19672 }, /* MVMEL */ + { CPUFUNC(op_4ce8_0), 19688 }, /* MVMEL */ + { CPUFUNC(op_4cf0_0), 19696 }, /* MVMEL */ + { CPUFUNC(op_4cf8_0), 19704 }, /* MVMEL */ + { CPUFUNC(op_4cf9_0), 19705 }, /* MVMEL */ + { CPUFUNC(op_4cfa_0), 19706 }, /* MVMEL */ + { CPUFUNC(op_4cfb_0), 19707 }, /* MVMEL */ + { CPUFUNC(op_4e40_0), 20032 }, /* TRAP */ + { CPUFUNC(op_4e50_0), 20048 }, /* LINK */ + { CPUFUNC(op_4e58_0), 20056 }, /* UNLK */ + { CPUFUNC(op_4e60_0), 20064 }, /* MVR2USP */ + { CPUFUNC(op_4e68_0), 20072 }, /* MVUSP2R */ + { CPUFUNC(op_4e70_0), 20080 }, /* RESET */ + { CPUFUNC(op_4e71_0), 20081 }, /* NOP */ + { CPUFUNC(op_4e72_0), 20082 }, /* STOP */ + { CPUFUNC(op_4e73_0), 20083 }, /* RTE */ + { CPUFUNC(op_4e74_0), 20084 }, /* RTD */ + { CPUFUNC(op_4e75_0), 20085 }, /* RTS */ + { CPUFUNC(op_4e76_0), 20086 }, /* TRAPV */ + { CPUFUNC(op_4e77_0), 20087 }, /* RTR */ + { CPUFUNC(op_4e7a_0), 20090 }, /* MOVEC2 */ + { CPUFUNC(op_4e7b_0), 20091 }, /* MOVE2C */ + { CPUFUNC(op_4e90_0), 20112 }, /* JSR */ + { CPUFUNC(op_4ea8_0), 20136 }, /* JSR */ + { CPUFUNC(op_4eb0_0), 20144 }, /* JSR */ + { CPUFUNC(op_4eb8_0), 20152 }, /* JSR */ + { CPUFUNC(op_4eb9_0), 20153 }, /* JSR */ + { CPUFUNC(op_4eba_0), 20154 }, /* JSR */ + { CPUFUNC(op_4ebb_0), 20155 }, /* JSR */ + { CPUFUNC(op_4ed0_0), 20176 }, /* JMP */ + { CPUFUNC(op_4ee8_0), 20200 }, /* JMP */ + { CPUFUNC(op_4ef0_0), 20208 }, /* JMP */ + { CPUFUNC(op_4ef8_0), 20216 }, /* JMP */ + { CPUFUNC(op_4ef9_0), 20217 }, /* JMP */ + { CPUFUNC(op_4efa_0), 20218 }, /* JMP */ + { CPUFUNC(op_4efb_0), 20219 }, /* JMP */ + { CPUFUNC(op_5000_0), 20480 }, /* ADD */ + { CPUFUNC(op_5010_0), 20496 }, /* ADD */ + { CPUFUNC(op_5018_0), 20504 }, /* ADD */ + { CPUFUNC(op_5020_0), 20512 }, /* ADD */ + { CPUFUNC(op_5028_0), 20520 }, /* ADD */ + { CPUFUNC(op_5030_0), 20528 }, /* ADD */ + { CPUFUNC(op_5038_0), 20536 }, /* ADD */ + { CPUFUNC(op_5039_0), 20537 }, /* ADD */ + { CPUFUNC(op_5040_0), 20544 }, /* ADD */ + { CPUFUNC(op_5048_0), 20552 }, /* ADDA */ + { CPUFUNC(op_5050_0), 20560 }, /* ADD */ + { CPUFUNC(op_5058_0), 20568 }, /* ADD */ + { CPUFUNC(op_5060_0), 20576 }, /* ADD */ + { CPUFUNC(op_5068_0), 20584 }, /* ADD */ + { CPUFUNC(op_5070_0), 20592 }, /* ADD */ + { CPUFUNC(op_5078_0), 20600 }, /* ADD */ + { CPUFUNC(op_5079_0), 20601 }, /* ADD */ + { CPUFUNC(op_5080_0), 20608 }, /* ADD */ + { CPUFUNC(op_5088_0), 20616 }, /* ADDA */ + { CPUFUNC(op_5090_0), 20624 }, /* ADD */ + { CPUFUNC(op_5098_0), 20632 }, /* ADD */ + { CPUFUNC(op_50a0_0), 20640 }, /* ADD */ + { CPUFUNC(op_50a8_0), 20648 }, /* ADD */ + { CPUFUNC(op_50b0_0), 20656 }, /* ADD */ + { CPUFUNC(op_50b8_0), 20664 }, /* ADD */ + { CPUFUNC(op_50b9_0), 20665 }, /* ADD */ + { CPUFUNC(op_50c0_0), 20672 }, /* Scc */ + { CPUFUNC(op_50c8_0), 20680 }, /* DBcc */ + { CPUFUNC(op_50d0_0), 20688 }, /* Scc */ + { CPUFUNC(op_50d8_0), 20696 }, /* Scc */ + { CPUFUNC(op_50e0_0), 20704 }, /* Scc */ + { CPUFUNC(op_50e8_0), 20712 }, /* Scc */ + { CPUFUNC(op_50f0_0), 20720 }, /* Scc */ + { CPUFUNC(op_50f8_0), 20728 }, /* Scc */ + { CPUFUNC(op_50f9_0), 20729 }, /* Scc */ + { CPUFUNC(op_50fa_0), 20730 }, /* TRAPcc */ + { CPUFUNC(op_50fb_0), 20731 }, /* TRAPcc */ + { CPUFUNC(op_50fc_0), 20732 }, /* TRAPcc */ + { CPUFUNC(op_5100_0), 20736 }, /* SUB */ + { CPUFUNC(op_5110_0), 20752 }, /* SUB */ + { CPUFUNC(op_5118_0), 20760 }, /* SUB */ + { CPUFUNC(op_5120_0), 20768 }, /* SUB */ + { CPUFUNC(op_5128_0), 20776 }, /* SUB */ + { CPUFUNC(op_5130_0), 20784 }, /* SUB */ + { CPUFUNC(op_5138_0), 20792 }, /* SUB */ + { CPUFUNC(op_5139_0), 20793 }, /* SUB */ + { CPUFUNC(op_5140_0), 20800 }, /* SUB */ + { CPUFUNC(op_5148_0), 20808 }, /* SUBA */ + { CPUFUNC(op_5150_0), 20816 }, /* SUB */ + { CPUFUNC(op_5158_0), 20824 }, /* SUB */ + { CPUFUNC(op_5160_0), 20832 }, /* SUB */ + { CPUFUNC(op_5168_0), 20840 }, /* SUB */ + { CPUFUNC(op_5170_0), 20848 }, /* SUB */ + { CPUFUNC(op_5178_0), 20856 }, /* SUB */ + { CPUFUNC(op_5179_0), 20857 }, /* SUB */ + { CPUFUNC(op_5180_0), 20864 }, /* SUB */ + { CPUFUNC(op_5188_0), 20872 }, /* SUBA */ + { CPUFUNC(op_5190_0), 20880 }, /* SUB */ + { CPUFUNC(op_5198_0), 20888 }, /* SUB */ + { CPUFUNC(op_51a0_0), 20896 }, /* SUB */ + { CPUFUNC(op_51a8_0), 20904 }, /* SUB */ + { CPUFUNC(op_51b0_0), 20912 }, /* SUB */ + { CPUFUNC(op_51b8_0), 20920 }, /* SUB */ + { CPUFUNC(op_51b9_0), 20921 }, /* SUB */ + { CPUFUNC(op_51c0_0), 20928 }, /* Scc */ + { CPUFUNC(op_51c8_0), 20936 }, /* DBcc */ + { CPUFUNC(op_51d0_0), 20944 }, /* Scc */ + { CPUFUNC(op_51d8_0), 20952 }, /* Scc */ + { CPUFUNC(op_51e0_0), 20960 }, /* Scc */ + { CPUFUNC(op_51e8_0), 20968 }, /* Scc */ + { CPUFUNC(op_51f0_0), 20976 }, /* Scc */ + { CPUFUNC(op_51f8_0), 20984 }, /* Scc */ + { CPUFUNC(op_51f9_0), 20985 }, /* Scc */ + { CPUFUNC(op_51fa_0), 20986 }, /* TRAPcc */ + { CPUFUNC(op_51fb_0), 20987 }, /* TRAPcc */ + { CPUFUNC(op_51fc_0), 20988 }, /* TRAPcc */ + { CPUFUNC(op_52c0_0), 21184 }, /* Scc */ + { CPUFUNC(op_52c8_0), 21192 }, /* DBcc */ + { CPUFUNC(op_52d0_0), 21200 }, /* Scc */ + { CPUFUNC(op_52d8_0), 21208 }, /* Scc */ + { CPUFUNC(op_52e0_0), 21216 }, /* Scc */ + { CPUFUNC(op_52e8_0), 21224 }, /* Scc */ + { CPUFUNC(op_52f0_0), 21232 }, /* Scc */ + { CPUFUNC(op_52f8_0), 21240 }, /* Scc */ + { CPUFUNC(op_52f9_0), 21241 }, /* Scc */ + { CPUFUNC(op_52fa_0), 21242 }, /* TRAPcc */ + { CPUFUNC(op_52fb_0), 21243 }, /* TRAPcc */ + { CPUFUNC(op_52fc_0), 21244 }, /* TRAPcc */ + { CPUFUNC(op_53c0_0), 21440 }, /* Scc */ + { CPUFUNC(op_53c8_0), 21448 }, /* DBcc */ + { CPUFUNC(op_53d0_0), 21456 }, /* Scc */ + { CPUFUNC(op_53d8_0), 21464 }, /* Scc */ + { CPUFUNC(op_53e0_0), 21472 }, /* Scc */ + { CPUFUNC(op_53e8_0), 21480 }, /* Scc */ + { CPUFUNC(op_53f0_0), 21488 }, /* Scc */ + { CPUFUNC(op_53f8_0), 21496 }, /* Scc */ + { CPUFUNC(op_53f9_0), 21497 }, /* Scc */ + { CPUFUNC(op_53fa_0), 21498 }, /* TRAPcc */ + { CPUFUNC(op_53fb_0), 21499 }, /* TRAPcc */ + { CPUFUNC(op_53fc_0), 21500 }, /* TRAPcc */ + { CPUFUNC(op_54c0_0), 21696 }, /* Scc */ + { CPUFUNC(op_54c8_0), 21704 }, /* DBcc */ + { CPUFUNC(op_54d0_0), 21712 }, /* Scc */ + { CPUFUNC(op_54d8_0), 21720 }, /* Scc */ + { CPUFUNC(op_54e0_0), 21728 }, /* Scc */ + { CPUFUNC(op_54e8_0), 21736 }, /* Scc */ + { CPUFUNC(op_54f0_0), 21744 }, /* Scc */ + { CPUFUNC(op_54f8_0), 21752 }, /* Scc */ + { CPUFUNC(op_54f9_0), 21753 }, /* Scc */ + { CPUFUNC(op_54fa_0), 21754 }, /* TRAPcc */ + { CPUFUNC(op_54fb_0), 21755 }, /* TRAPcc */ + { CPUFUNC(op_54fc_0), 21756 }, /* TRAPcc */ + { CPUFUNC(op_55c0_0), 21952 }, /* Scc */ + { CPUFUNC(op_55c8_0), 21960 }, /* DBcc */ + { CPUFUNC(op_55d0_0), 21968 }, /* Scc */ + { CPUFUNC(op_55d8_0), 21976 }, /* Scc */ + { CPUFUNC(op_55e0_0), 21984 }, /* Scc */ + { CPUFUNC(op_55e8_0), 21992 }, /* Scc */ + { CPUFUNC(op_55f0_0), 22000 }, /* Scc */ + { CPUFUNC(op_55f8_0), 22008 }, /* Scc */ + { CPUFUNC(op_55f9_0), 22009 }, /* Scc */ + { CPUFUNC(op_55fa_0), 22010 }, /* TRAPcc */ + { CPUFUNC(op_55fb_0), 22011 }, /* TRAPcc */ + { CPUFUNC(op_55fc_0), 22012 }, /* TRAPcc */ + { CPUFUNC(op_56c0_0), 22208 }, /* Scc */ + { CPUFUNC(op_56c8_0), 22216 }, /* DBcc */ + { CPUFUNC(op_56d0_0), 22224 }, /* Scc */ + { CPUFUNC(op_56d8_0), 22232 }, /* Scc */ + { CPUFUNC(op_56e0_0), 22240 }, /* Scc */ + { CPUFUNC(op_56e8_0), 22248 }, /* Scc */ + { CPUFUNC(op_56f0_0), 22256 }, /* Scc */ + { CPUFUNC(op_56f8_0), 22264 }, /* Scc */ + { CPUFUNC(op_56f9_0), 22265 }, /* Scc */ + { CPUFUNC(op_56fa_0), 22266 }, /* TRAPcc */ + { CPUFUNC(op_56fb_0), 22267 }, /* TRAPcc */ + { CPUFUNC(op_56fc_0), 22268 }, /* TRAPcc */ + { CPUFUNC(op_57c0_0), 22464 }, /* Scc */ + { CPUFUNC(op_57c8_0), 22472 }, /* DBcc */ + { CPUFUNC(op_57d0_0), 22480 }, /* Scc */ + { CPUFUNC(op_57d8_0), 22488 }, /* Scc */ + { CPUFUNC(op_57e0_0), 22496 }, /* Scc */ + { CPUFUNC(op_57e8_0), 22504 }, /* Scc */ + { CPUFUNC(op_57f0_0), 22512 }, /* Scc */ + { CPUFUNC(op_57f8_0), 22520 }, /* Scc */ + { CPUFUNC(op_57f9_0), 22521 }, /* Scc */ + { CPUFUNC(op_57fa_0), 22522 }, /* TRAPcc */ + { CPUFUNC(op_57fb_0), 22523 }, /* TRAPcc */ + { CPUFUNC(op_57fc_0), 22524 }, /* TRAPcc */ + { CPUFUNC(op_58c0_0), 22720 }, /* Scc */ + { CPUFUNC(op_58c8_0), 22728 }, /* DBcc */ + { CPUFUNC(op_58d0_0), 22736 }, /* Scc */ + { CPUFUNC(op_58d8_0), 22744 }, /* Scc */ + { CPUFUNC(op_58e0_0), 22752 }, /* Scc */ + { CPUFUNC(op_58e8_0), 22760 }, /* Scc */ + { CPUFUNC(op_58f0_0), 22768 }, /* Scc */ + { CPUFUNC(op_58f8_0), 22776 }, /* Scc */ + { CPUFUNC(op_58f9_0), 22777 }, /* Scc */ + { CPUFUNC(op_58fa_0), 22778 }, /* TRAPcc */ + { CPUFUNC(op_58fb_0), 22779 }, /* TRAPcc */ + { CPUFUNC(op_58fc_0), 22780 }, /* TRAPcc */ + { CPUFUNC(op_59c0_0), 22976 }, /* Scc */ + { CPUFUNC(op_59c8_0), 22984 }, /* DBcc */ + { CPUFUNC(op_59d0_0), 22992 }, /* Scc */ + { CPUFUNC(op_59d8_0), 23000 }, /* Scc */ + { CPUFUNC(op_59e0_0), 23008 }, /* Scc */ + { CPUFUNC(op_59e8_0), 23016 }, /* Scc */ + { CPUFUNC(op_59f0_0), 23024 }, /* Scc */ + { CPUFUNC(op_59f8_0), 23032 }, /* Scc */ + { CPUFUNC(op_59f9_0), 23033 }, /* Scc */ + { CPUFUNC(op_59fa_0), 23034 }, /* TRAPcc */ + { CPUFUNC(op_59fb_0), 23035 }, /* TRAPcc */ + { CPUFUNC(op_59fc_0), 23036 }, /* TRAPcc */ + { CPUFUNC(op_5ac0_0), 23232 }, /* Scc */ + { CPUFUNC(op_5ac8_0), 23240 }, /* DBcc */ + { CPUFUNC(op_5ad0_0), 23248 }, /* Scc */ + { CPUFUNC(op_5ad8_0), 23256 }, /* Scc */ + { CPUFUNC(op_5ae0_0), 23264 }, /* Scc */ + { CPUFUNC(op_5ae8_0), 23272 }, /* Scc */ + { CPUFUNC(op_5af0_0), 23280 }, /* Scc */ + { CPUFUNC(op_5af8_0), 23288 }, /* Scc */ + { CPUFUNC(op_5af9_0), 23289 }, /* Scc */ + { CPUFUNC(op_5afa_0), 23290 }, /* TRAPcc */ + { CPUFUNC(op_5afb_0), 23291 }, /* TRAPcc */ + { CPUFUNC(op_5afc_0), 23292 }, /* TRAPcc */ + { CPUFUNC(op_5bc0_0), 23488 }, /* Scc */ + { CPUFUNC(op_5bc8_0), 23496 }, /* DBcc */ + { CPUFUNC(op_5bd0_0), 23504 }, /* Scc */ + { CPUFUNC(op_5bd8_0), 23512 }, /* Scc */ + { CPUFUNC(op_5be0_0), 23520 }, /* Scc */ + { CPUFUNC(op_5be8_0), 23528 }, /* Scc */ + { CPUFUNC(op_5bf0_0), 23536 }, /* Scc */ + { CPUFUNC(op_5bf8_0), 23544 }, /* Scc */ + { CPUFUNC(op_5bf9_0), 23545 }, /* Scc */ + { CPUFUNC(op_5bfa_0), 23546 }, /* TRAPcc */ + { CPUFUNC(op_5bfb_0), 23547 }, /* TRAPcc */ + { CPUFUNC(op_5bfc_0), 23548 }, /* TRAPcc */ + { CPUFUNC(op_5cc0_0), 23744 }, /* Scc */ + { CPUFUNC(op_5cc8_0), 23752 }, /* DBcc */ + { CPUFUNC(op_5cd0_0), 23760 }, /* Scc */ + { CPUFUNC(op_5cd8_0), 23768 }, /* Scc */ + { CPUFUNC(op_5ce0_0), 23776 }, /* Scc */ + { CPUFUNC(op_5ce8_0), 23784 }, /* Scc */ + { CPUFUNC(op_5cf0_0), 23792 }, /* Scc */ + { CPUFUNC(op_5cf8_0), 23800 }, /* Scc */ + { CPUFUNC(op_5cf9_0), 23801 }, /* Scc */ + { CPUFUNC(op_5cfa_0), 23802 }, /* TRAPcc */ + { CPUFUNC(op_5cfb_0), 23803 }, /* TRAPcc */ + { CPUFUNC(op_5cfc_0), 23804 }, /* TRAPcc */ + { CPUFUNC(op_5dc0_0), 24000 }, /* Scc */ + { CPUFUNC(op_5dc8_0), 24008 }, /* DBcc */ + { CPUFUNC(op_5dd0_0), 24016 }, /* Scc */ + { CPUFUNC(op_5dd8_0), 24024 }, /* Scc */ + { CPUFUNC(op_5de0_0), 24032 }, /* Scc */ + { CPUFUNC(op_5de8_0), 24040 }, /* Scc */ + { CPUFUNC(op_5df0_0), 24048 }, /* Scc */ + { CPUFUNC(op_5df8_0), 24056 }, /* Scc */ + { CPUFUNC(op_5df9_0), 24057 }, /* Scc */ + { CPUFUNC(op_5dfa_0), 24058 }, /* TRAPcc */ + { CPUFUNC(op_5dfb_0), 24059 }, /* TRAPcc */ + { CPUFUNC(op_5dfc_0), 24060 }, /* TRAPcc */ + { CPUFUNC(op_5ec0_0), 24256 }, /* Scc */ + { CPUFUNC(op_5ec8_0), 24264 }, /* DBcc */ + { CPUFUNC(op_5ed0_0), 24272 }, /* Scc */ + { CPUFUNC(op_5ed8_0), 24280 }, /* Scc */ + { CPUFUNC(op_5ee0_0), 24288 }, /* Scc */ + { CPUFUNC(op_5ee8_0), 24296 }, /* Scc */ + { CPUFUNC(op_5ef0_0), 24304 }, /* Scc */ + { CPUFUNC(op_5ef8_0), 24312 }, /* Scc */ + { CPUFUNC(op_5ef9_0), 24313 }, /* Scc */ + { CPUFUNC(op_5efa_0), 24314 }, /* TRAPcc */ + { CPUFUNC(op_5efb_0), 24315 }, /* TRAPcc */ + { CPUFUNC(op_5efc_0), 24316 }, /* TRAPcc */ + { CPUFUNC(op_5fc0_0), 24512 }, /* Scc */ + { CPUFUNC(op_5fc8_0), 24520 }, /* DBcc */ + { CPUFUNC(op_5fd0_0), 24528 }, /* Scc */ + { CPUFUNC(op_5fd8_0), 24536 }, /* Scc */ + { CPUFUNC(op_5fe0_0), 24544 }, /* Scc */ + { CPUFUNC(op_5fe8_0), 24552 }, /* Scc */ + { CPUFUNC(op_5ff0_0), 24560 }, /* Scc */ + { CPUFUNC(op_5ff8_0), 24568 }, /* Scc */ + { CPUFUNC(op_5ff9_0), 24569 }, /* Scc */ + { CPUFUNC(op_5ffa_0), 24570 }, /* TRAPcc */ + { CPUFUNC(op_5ffb_0), 24571 }, /* TRAPcc */ + { CPUFUNC(op_5ffc_0), 24572 }, /* TRAPcc */ + { CPUFUNC(op_6000_0), 24576 }, /* Bcc */ + { CPUFUNC(op_6001_0), 24577 }, /* Bcc */ + { CPUFUNC(op_60ff_0), 24831 }, /* Bcc */ + { CPUFUNC(op_6100_0), 24832 }, /* BSR */ + { CPUFUNC(op_6101_0), 24833 }, /* BSR */ + { CPUFUNC(op_61ff_0), 25087 }, /* BSR */ + { CPUFUNC(op_6200_0), 25088 }, /* Bcc */ + { CPUFUNC(op_6201_0), 25089 }, /* Bcc */ + { CPUFUNC(op_62ff_0), 25343 }, /* Bcc */ + { CPUFUNC(op_6300_0), 25344 }, /* Bcc */ + { CPUFUNC(op_6301_0), 25345 }, /* Bcc */ + { CPUFUNC(op_63ff_0), 25599 }, /* Bcc */ + { CPUFUNC(op_6400_0), 25600 }, /* Bcc */ + { CPUFUNC(op_6401_0), 25601 }, /* Bcc */ + { CPUFUNC(op_64ff_0), 25855 }, /* Bcc */ + { CPUFUNC(op_6500_0), 25856 }, /* Bcc */ + { CPUFUNC(op_6501_0), 25857 }, /* Bcc */ + { CPUFUNC(op_65ff_0), 26111 }, /* Bcc */ + { CPUFUNC(op_6600_0), 26112 }, /* Bcc */ + { CPUFUNC(op_6601_0), 26113 }, /* Bcc */ + { CPUFUNC(op_66ff_0), 26367 }, /* Bcc */ + { CPUFUNC(op_6700_0), 26368 }, /* Bcc */ + { CPUFUNC(op_6701_0), 26369 }, /* Bcc */ + { CPUFUNC(op_67ff_0), 26623 }, /* Bcc */ + { CPUFUNC(op_6800_0), 26624 }, /* Bcc */ + { CPUFUNC(op_6801_0), 26625 }, /* Bcc */ + { CPUFUNC(op_68ff_0), 26879 }, /* Bcc */ + { CPUFUNC(op_6900_0), 26880 }, /* Bcc */ + { CPUFUNC(op_6901_0), 26881 }, /* Bcc */ + { CPUFUNC(op_69ff_0), 27135 }, /* Bcc */ + { CPUFUNC(op_6a00_0), 27136 }, /* Bcc */ + { CPUFUNC(op_6a01_0), 27137 }, /* Bcc */ + { CPUFUNC(op_6aff_0), 27391 }, /* Bcc */ + { CPUFUNC(op_6b00_0), 27392 }, /* Bcc */ + { CPUFUNC(op_6b01_0), 27393 }, /* Bcc */ + { CPUFUNC(op_6bff_0), 27647 }, /* Bcc */ + { CPUFUNC(op_6c00_0), 27648 }, /* Bcc */ + { CPUFUNC(op_6c01_0), 27649 }, /* Bcc */ + { CPUFUNC(op_6cff_0), 27903 }, /* Bcc */ + { CPUFUNC(op_6d00_0), 27904 }, /* Bcc */ + { CPUFUNC(op_6d01_0), 27905 }, /* Bcc */ + { CPUFUNC(op_6dff_0), 28159 }, /* Bcc */ + { CPUFUNC(op_6e00_0), 28160 }, /* Bcc */ + { CPUFUNC(op_6e01_0), 28161 }, /* Bcc */ + { CPUFUNC(op_6eff_0), 28415 }, /* Bcc */ + { CPUFUNC(op_6f00_0), 28416 }, /* Bcc */ + { CPUFUNC(op_6f01_0), 28417 }, /* Bcc */ + { CPUFUNC(op_6fff_0), 28671 }, /* Bcc */ + { CPUFUNC(op_7000_0), 28672 }, /* MOVE */ + { CPUFUNC(op_8000_0), 32768 }, /* OR */ + { CPUFUNC(op_8010_0), 32784 }, /* OR */ + { CPUFUNC(op_8018_0), 32792 }, /* OR */ + { CPUFUNC(op_8020_0), 32800 }, /* OR */ + { CPUFUNC(op_8028_0), 32808 }, /* OR */ + { CPUFUNC(op_8030_0), 32816 }, /* OR */ + { CPUFUNC(op_8038_0), 32824 }, /* OR */ + { CPUFUNC(op_8039_0), 32825 }, /* OR */ + { CPUFUNC(op_803a_0), 32826 }, /* OR */ + { CPUFUNC(op_803b_0), 32827 }, /* OR */ + { CPUFUNC(op_803c_0), 32828 }, /* OR */ + { CPUFUNC(op_8040_0), 32832 }, /* OR */ + { CPUFUNC(op_8050_0), 32848 }, /* OR */ + { CPUFUNC(op_8058_0), 32856 }, /* OR */ + { CPUFUNC(op_8060_0), 32864 }, /* OR */ + { CPUFUNC(op_8068_0), 32872 }, /* OR */ + { CPUFUNC(op_8070_0), 32880 }, /* OR */ + { CPUFUNC(op_8078_0), 32888 }, /* OR */ + { CPUFUNC(op_8079_0), 32889 }, /* OR */ + { CPUFUNC(op_807a_0), 32890 }, /* OR */ + { CPUFUNC(op_807b_0), 32891 }, /* OR */ + { CPUFUNC(op_807c_0), 32892 }, /* OR */ + { CPUFUNC(op_8080_0), 32896 }, /* OR */ + { CPUFUNC(op_8090_0), 32912 }, /* OR */ + { CPUFUNC(op_8098_0), 32920 }, /* OR */ + { CPUFUNC(op_80a0_0), 32928 }, /* OR */ + { CPUFUNC(op_80a8_0), 32936 }, /* OR */ + { CPUFUNC(op_80b0_0), 32944 }, /* OR */ + { CPUFUNC(op_80b8_0), 32952 }, /* OR */ + { CPUFUNC(op_80b9_0), 32953 }, /* OR */ + { CPUFUNC(op_80ba_0), 32954 }, /* OR */ + { CPUFUNC(op_80bb_0), 32955 }, /* OR */ + { CPUFUNC(op_80bc_0), 32956 }, /* OR */ + { CPUFUNC(op_80c0_0), 32960 }, /* DIVU */ + { CPUFUNC(op_80d0_0), 32976 }, /* DIVU */ + { CPUFUNC(op_80d8_0), 32984 }, /* DIVU */ + { CPUFUNC(op_80e0_0), 32992 }, /* DIVU */ + { CPUFUNC(op_80e8_0), 33000 }, /* DIVU */ + { CPUFUNC(op_80f0_0), 33008 }, /* DIVU */ + { CPUFUNC(op_80f8_0), 33016 }, /* DIVU */ + { CPUFUNC(op_80f9_0), 33017 }, /* DIVU */ + { CPUFUNC(op_80fa_0), 33018 }, /* DIVU */ + { CPUFUNC(op_80fb_0), 33019 }, /* DIVU */ + { CPUFUNC(op_80fc_0), 33020 }, /* DIVU */ + { CPUFUNC(op_8100_2), 33024 }, /* SBCD */ + { CPUFUNC(op_8108_2), 33032 }, /* SBCD */ + { CPUFUNC(op_8110_0), 33040 }, /* OR */ + { CPUFUNC(op_8118_0), 33048 }, /* OR */ + { CPUFUNC(op_8120_0), 33056 }, /* OR */ + { CPUFUNC(op_8128_0), 33064 }, /* OR */ + { CPUFUNC(op_8130_0), 33072 }, /* OR */ + { CPUFUNC(op_8138_0), 33080 }, /* OR */ + { CPUFUNC(op_8139_0), 33081 }, /* OR */ + { CPUFUNC(op_8140_0), 33088 }, /* PACK */ + { CPUFUNC(op_8148_0), 33096 }, /* PACK */ + { CPUFUNC(op_8150_0), 33104 }, /* OR */ + { CPUFUNC(op_8158_0), 33112 }, /* OR */ + { CPUFUNC(op_8160_0), 33120 }, /* OR */ + { CPUFUNC(op_8168_0), 33128 }, /* OR */ + { CPUFUNC(op_8170_0), 33136 }, /* OR */ + { CPUFUNC(op_8178_0), 33144 }, /* OR */ + { CPUFUNC(op_8179_0), 33145 }, /* OR */ + { CPUFUNC(op_8180_0), 33152 }, /* UNPK */ + { CPUFUNC(op_8188_0), 33160 }, /* UNPK */ + { CPUFUNC(op_8190_0), 33168 }, /* OR */ + { CPUFUNC(op_8198_0), 33176 }, /* OR */ + { CPUFUNC(op_81a0_0), 33184 }, /* OR */ + { CPUFUNC(op_81a8_0), 33192 }, /* OR */ + { CPUFUNC(op_81b0_0), 33200 }, /* OR */ + { CPUFUNC(op_81b8_0), 33208 }, /* OR */ + { CPUFUNC(op_81b9_0), 33209 }, /* OR */ + { CPUFUNC(op_81c0_0), 33216 }, /* DIVS */ + { CPUFUNC(op_81d0_0), 33232 }, /* DIVS */ + { CPUFUNC(op_81d8_0), 33240 }, /* DIVS */ + { CPUFUNC(op_81e0_0), 33248 }, /* DIVS */ + { CPUFUNC(op_81e8_0), 33256 }, /* DIVS */ + { CPUFUNC(op_81f0_0), 33264 }, /* DIVS */ + { CPUFUNC(op_81f8_0), 33272 }, /* DIVS */ + { CPUFUNC(op_81f9_0), 33273 }, /* DIVS */ + { CPUFUNC(op_81fa_0), 33274 }, /* DIVS */ + { CPUFUNC(op_81fb_0), 33275 }, /* DIVS */ + { CPUFUNC(op_81fc_0), 33276 }, /* DIVS */ + { CPUFUNC(op_9000_0), 36864 }, /* SUB */ + { CPUFUNC(op_9010_0), 36880 }, /* SUB */ + { CPUFUNC(op_9018_0), 36888 }, /* SUB */ + { CPUFUNC(op_9020_0), 36896 }, /* SUB */ + { CPUFUNC(op_9028_0), 36904 }, /* SUB */ + { CPUFUNC(op_9030_0), 36912 }, /* SUB */ + { CPUFUNC(op_9038_0), 36920 }, /* SUB */ + { CPUFUNC(op_9039_0), 36921 }, /* SUB */ + { CPUFUNC(op_903a_0), 36922 }, /* SUB */ + { CPUFUNC(op_903b_0), 36923 }, /* SUB */ + { CPUFUNC(op_903c_0), 36924 }, /* SUB */ + { CPUFUNC(op_9040_0), 36928 }, /* SUB */ + { CPUFUNC(op_9048_0), 36936 }, /* SUB */ + { CPUFUNC(op_9050_0), 36944 }, /* SUB */ + { CPUFUNC(op_9058_0), 36952 }, /* SUB */ + { CPUFUNC(op_9060_0), 36960 }, /* SUB */ + { CPUFUNC(op_9068_0), 36968 }, /* SUB */ + { CPUFUNC(op_9070_0), 36976 }, /* SUB */ + { CPUFUNC(op_9078_0), 36984 }, /* SUB */ + { CPUFUNC(op_9079_0), 36985 }, /* SUB */ + { CPUFUNC(op_907a_0), 36986 }, /* SUB */ + { CPUFUNC(op_907b_0), 36987 }, /* SUB */ + { CPUFUNC(op_907c_0), 36988 }, /* SUB */ + { CPUFUNC(op_9080_0), 36992 }, /* SUB */ + { CPUFUNC(op_9088_0), 37000 }, /* SUB */ + { CPUFUNC(op_9090_0), 37008 }, /* SUB */ + { CPUFUNC(op_9098_0), 37016 }, /* SUB */ + { CPUFUNC(op_90a0_0), 37024 }, /* SUB */ + { CPUFUNC(op_90a8_0), 37032 }, /* SUB */ + { CPUFUNC(op_90b0_0), 37040 }, /* SUB */ + { CPUFUNC(op_90b8_0), 37048 }, /* SUB */ + { CPUFUNC(op_90b9_0), 37049 }, /* SUB */ + { CPUFUNC(op_90ba_0), 37050 }, /* SUB */ + { CPUFUNC(op_90bb_0), 37051 }, /* SUB */ + { CPUFUNC(op_90bc_0), 37052 }, /* SUB */ + { CPUFUNC(op_90c0_0), 37056 }, /* SUBA */ + { CPUFUNC(op_90c8_0), 37064 }, /* SUBA */ + { CPUFUNC(op_90d0_0), 37072 }, /* SUBA */ + { CPUFUNC(op_90d8_0), 37080 }, /* SUBA */ + { CPUFUNC(op_90e0_0), 37088 }, /* SUBA */ + { CPUFUNC(op_90e8_0), 37096 }, /* SUBA */ + { CPUFUNC(op_90f0_0), 37104 }, /* SUBA */ + { CPUFUNC(op_90f8_0), 37112 }, /* SUBA */ + { CPUFUNC(op_90f9_0), 37113 }, /* SUBA */ + { CPUFUNC(op_90fa_0), 37114 }, /* SUBA */ + { CPUFUNC(op_90fb_0), 37115 }, /* SUBA */ + { CPUFUNC(op_90fc_0), 37116 }, /* SUBA */ + { CPUFUNC(op_9100_0), 37120 }, /* SUBX */ + { CPUFUNC(op_9108_0), 37128 }, /* SUBX */ + { CPUFUNC(op_9110_0), 37136 }, /* SUB */ + { CPUFUNC(op_9118_0), 37144 }, /* SUB */ + { CPUFUNC(op_9120_0), 37152 }, /* SUB */ + { CPUFUNC(op_9128_0), 37160 }, /* SUB */ + { CPUFUNC(op_9130_0), 37168 }, /* SUB */ + { CPUFUNC(op_9138_0), 37176 }, /* SUB */ + { CPUFUNC(op_9139_0), 37177 }, /* SUB */ + { CPUFUNC(op_9140_0), 37184 }, /* SUBX */ + { CPUFUNC(op_9148_0), 37192 }, /* SUBX */ + { CPUFUNC(op_9150_0), 37200 }, /* SUB */ + { CPUFUNC(op_9158_0), 37208 }, /* SUB */ + { CPUFUNC(op_9160_0), 37216 }, /* SUB */ + { CPUFUNC(op_9168_0), 37224 }, /* SUB */ + { CPUFUNC(op_9170_0), 37232 }, /* SUB */ + { CPUFUNC(op_9178_0), 37240 }, /* SUB */ + { CPUFUNC(op_9179_0), 37241 }, /* SUB */ + { CPUFUNC(op_9180_0), 37248 }, /* SUBX */ + { CPUFUNC(op_9188_0), 37256 }, /* SUBX */ + { CPUFUNC(op_9190_0), 37264 }, /* SUB */ + { CPUFUNC(op_9198_0), 37272 }, /* SUB */ + { CPUFUNC(op_91a0_0), 37280 }, /* SUB */ + { CPUFUNC(op_91a8_0), 37288 }, /* SUB */ + { CPUFUNC(op_91b0_0), 37296 }, /* SUB */ + { CPUFUNC(op_91b8_0), 37304 }, /* SUB */ + { CPUFUNC(op_91b9_0), 37305 }, /* SUB */ + { CPUFUNC(op_91c0_0), 37312 }, /* SUBA */ + { CPUFUNC(op_91c8_0), 37320 }, /* SUBA */ + { CPUFUNC(op_91d0_0), 37328 }, /* SUBA */ + { CPUFUNC(op_91d8_0), 37336 }, /* SUBA */ + { CPUFUNC(op_91e0_0), 37344 }, /* SUBA */ + { CPUFUNC(op_91e8_0), 37352 }, /* SUBA */ + { CPUFUNC(op_91f0_0), 37360 }, /* SUBA */ + { CPUFUNC(op_91f8_0), 37368 }, /* SUBA */ + { CPUFUNC(op_91f9_0), 37369 }, /* SUBA */ + { CPUFUNC(op_91fa_0), 37370 }, /* SUBA */ + { CPUFUNC(op_91fb_0), 37371 }, /* SUBA */ + { CPUFUNC(op_91fc_0), 37372 }, /* SUBA */ + { CPUFUNC(op_b000_0), 45056 }, /* CMP */ + { CPUFUNC(op_b010_0), 45072 }, /* CMP */ + { CPUFUNC(op_b018_0), 45080 }, /* CMP */ + { CPUFUNC(op_b020_0), 45088 }, /* CMP */ + { CPUFUNC(op_b028_0), 45096 }, /* CMP */ + { CPUFUNC(op_b030_0), 45104 }, /* CMP */ + { CPUFUNC(op_b038_0), 45112 }, /* CMP */ + { CPUFUNC(op_b039_0), 45113 }, /* CMP */ + { CPUFUNC(op_b03a_0), 45114 }, /* CMP */ + { CPUFUNC(op_b03b_0), 45115 }, /* CMP */ + { CPUFUNC(op_b03c_0), 45116 }, /* CMP */ + { CPUFUNC(op_b040_0), 45120 }, /* CMP */ + { CPUFUNC(op_b048_0), 45128 }, /* CMP */ + { CPUFUNC(op_b050_0), 45136 }, /* CMP */ + { CPUFUNC(op_b058_0), 45144 }, /* CMP */ + { CPUFUNC(op_b060_0), 45152 }, /* CMP */ + { CPUFUNC(op_b068_0), 45160 }, /* CMP */ + { CPUFUNC(op_b070_0), 45168 }, /* CMP */ + { CPUFUNC(op_b078_0), 45176 }, /* CMP */ + { CPUFUNC(op_b079_0), 45177 }, /* CMP */ + { CPUFUNC(op_b07a_0), 45178 }, /* CMP */ + { CPUFUNC(op_b07b_0), 45179 }, /* CMP */ + { CPUFUNC(op_b07c_0), 45180 }, /* CMP */ + { CPUFUNC(op_b080_0), 45184 }, /* CMP */ + { CPUFUNC(op_b088_0), 45192 }, /* CMP */ + { CPUFUNC(op_b090_0), 45200 }, /* CMP */ + { CPUFUNC(op_b098_0), 45208 }, /* CMP */ + { CPUFUNC(op_b0a0_0), 45216 }, /* CMP */ + { CPUFUNC(op_b0a8_0), 45224 }, /* CMP */ + { CPUFUNC(op_b0b0_0), 45232 }, /* CMP */ + { CPUFUNC(op_b0b8_0), 45240 }, /* CMP */ + { CPUFUNC(op_b0b9_0), 45241 }, /* CMP */ + { CPUFUNC(op_b0ba_0), 45242 }, /* CMP */ + { CPUFUNC(op_b0bb_0), 45243 }, /* CMP */ + { CPUFUNC(op_b0bc_0), 45244 }, /* CMP */ + { CPUFUNC(op_b0c0_0), 45248 }, /* CMPA */ + { CPUFUNC(op_b0c8_0), 45256 }, /* CMPA */ + { CPUFUNC(op_b0d0_0), 45264 }, /* CMPA */ + { CPUFUNC(op_b0d8_0), 45272 }, /* CMPA */ + { CPUFUNC(op_b0e0_0), 45280 }, /* CMPA */ + { CPUFUNC(op_b0e8_0), 45288 }, /* CMPA */ + { CPUFUNC(op_b0f0_0), 45296 }, /* CMPA */ + { CPUFUNC(op_b0f8_0), 45304 }, /* CMPA */ + { CPUFUNC(op_b0f9_0), 45305 }, /* CMPA */ + { CPUFUNC(op_b0fa_0), 45306 }, /* CMPA */ + { CPUFUNC(op_b0fb_0), 45307 }, /* CMPA */ + { CPUFUNC(op_b0fc_0), 45308 }, /* CMPA */ + { CPUFUNC(op_b100_0), 45312 }, /* EOR */ + { CPUFUNC(op_b108_0), 45320 }, /* CMPM */ + { CPUFUNC(op_b110_0), 45328 }, /* EOR */ + { CPUFUNC(op_b118_0), 45336 }, /* EOR */ + { CPUFUNC(op_b120_0), 45344 }, /* EOR */ + { CPUFUNC(op_b128_0), 45352 }, /* EOR */ + { CPUFUNC(op_b130_0), 45360 }, /* EOR */ + { CPUFUNC(op_b138_0), 45368 }, /* EOR */ + { CPUFUNC(op_b139_0), 45369 }, /* EOR */ + { CPUFUNC(op_b140_0), 45376 }, /* EOR */ + { CPUFUNC(op_b148_0), 45384 }, /* CMPM */ + { CPUFUNC(op_b150_0), 45392 }, /* EOR */ + { CPUFUNC(op_b158_0), 45400 }, /* EOR */ + { CPUFUNC(op_b160_0), 45408 }, /* EOR */ + { CPUFUNC(op_b168_0), 45416 }, /* EOR */ + { CPUFUNC(op_b170_0), 45424 }, /* EOR */ + { CPUFUNC(op_b178_0), 45432 }, /* EOR */ + { CPUFUNC(op_b179_0), 45433 }, /* EOR */ + { CPUFUNC(op_b180_0), 45440 }, /* EOR */ + { CPUFUNC(op_b188_0), 45448 }, /* CMPM */ + { CPUFUNC(op_b190_0), 45456 }, /* EOR */ + { CPUFUNC(op_b198_0), 45464 }, /* EOR */ + { CPUFUNC(op_b1a0_0), 45472 }, /* EOR */ + { CPUFUNC(op_b1a8_0), 45480 }, /* EOR */ + { CPUFUNC(op_b1b0_0), 45488 }, /* EOR */ + { CPUFUNC(op_b1b8_0), 45496 }, /* EOR */ + { CPUFUNC(op_b1b9_0), 45497 }, /* EOR */ + { CPUFUNC(op_b1c0_0), 45504 }, /* CMPA */ + { CPUFUNC(op_b1c8_0), 45512 }, /* CMPA */ + { CPUFUNC(op_b1d0_0), 45520 }, /* CMPA */ + { CPUFUNC(op_b1d8_0), 45528 }, /* CMPA */ + { CPUFUNC(op_b1e0_0), 45536 }, /* CMPA */ + { CPUFUNC(op_b1e8_0), 45544 }, /* CMPA */ + { CPUFUNC(op_b1f0_0), 45552 }, /* CMPA */ + { CPUFUNC(op_b1f8_0), 45560 }, /* CMPA */ + { CPUFUNC(op_b1f9_0), 45561 }, /* CMPA */ + { CPUFUNC(op_b1fa_0), 45562 }, /* CMPA */ + { CPUFUNC(op_b1fb_0), 45563 }, /* CMPA */ + { CPUFUNC(op_b1fc_0), 45564 }, /* CMPA */ + { CPUFUNC(op_c000_0), 49152 }, /* AND */ + { CPUFUNC(op_c010_0), 49168 }, /* AND */ + { CPUFUNC(op_c018_0), 49176 }, /* AND */ + { CPUFUNC(op_c020_0), 49184 }, /* AND */ + { CPUFUNC(op_c028_0), 49192 }, /* AND */ + { CPUFUNC(op_c030_0), 49200 }, /* AND */ + { CPUFUNC(op_c038_0), 49208 }, /* AND */ + { CPUFUNC(op_c039_0), 49209 }, /* AND */ + { CPUFUNC(op_c03a_0), 49210 }, /* AND */ + { CPUFUNC(op_c03b_0), 49211 }, /* AND */ + { CPUFUNC(op_c03c_0), 49212 }, /* AND */ + { CPUFUNC(op_c040_0), 49216 }, /* AND */ + { CPUFUNC(op_c050_0), 49232 }, /* AND */ + { CPUFUNC(op_c058_0), 49240 }, /* AND */ + { CPUFUNC(op_c060_0), 49248 }, /* AND */ + { CPUFUNC(op_c068_0), 49256 }, /* AND */ + { CPUFUNC(op_c070_0), 49264 }, /* AND */ + { CPUFUNC(op_c078_0), 49272 }, /* AND */ + { CPUFUNC(op_c079_0), 49273 }, /* AND */ + { CPUFUNC(op_c07a_0), 49274 }, /* AND */ + { CPUFUNC(op_c07b_0), 49275 }, /* AND */ + { CPUFUNC(op_c07c_0), 49276 }, /* AND */ + { CPUFUNC(op_c080_0), 49280 }, /* AND */ + { CPUFUNC(op_c090_0), 49296 }, /* AND */ + { CPUFUNC(op_c098_0), 49304 }, /* AND */ + { CPUFUNC(op_c0a0_0), 49312 }, /* AND */ + { CPUFUNC(op_c0a8_0), 49320 }, /* AND */ + { CPUFUNC(op_c0b0_0), 49328 }, /* AND */ + { CPUFUNC(op_c0b8_0), 49336 }, /* AND */ + { CPUFUNC(op_c0b9_0), 49337 }, /* AND */ + { CPUFUNC(op_c0ba_0), 49338 }, /* AND */ + { CPUFUNC(op_c0bb_0), 49339 }, /* AND */ + { CPUFUNC(op_c0bc_0), 49340 }, /* AND */ + { CPUFUNC(op_c0c0_0), 49344 }, /* MULU */ + { CPUFUNC(op_c0d0_0), 49360 }, /* MULU */ + { CPUFUNC(op_c0d8_0), 49368 }, /* MULU */ + { CPUFUNC(op_c0e0_0), 49376 }, /* MULU */ + { CPUFUNC(op_c0e8_0), 49384 }, /* MULU */ + { CPUFUNC(op_c0f0_0), 49392 }, /* MULU */ + { CPUFUNC(op_c0f8_0), 49400 }, /* MULU */ + { CPUFUNC(op_c0f9_0), 49401 }, /* MULU */ + { CPUFUNC(op_c0fa_0), 49402 }, /* MULU */ + { CPUFUNC(op_c0fb_0), 49403 }, /* MULU */ + { CPUFUNC(op_c0fc_0), 49404 }, /* MULU */ + { CPUFUNC(op_c100_2), 49408 }, /* ABCD */ + { CPUFUNC(op_c108_2), 49416 }, /* ABCD */ + { CPUFUNC(op_c110_0), 49424 }, /* AND */ + { CPUFUNC(op_c118_0), 49432 }, /* AND */ + { CPUFUNC(op_c120_0), 49440 }, /* AND */ + { CPUFUNC(op_c128_0), 49448 }, /* AND */ + { CPUFUNC(op_c130_0), 49456 }, /* AND */ + { CPUFUNC(op_c138_0), 49464 }, /* AND */ + { CPUFUNC(op_c139_0), 49465 }, /* AND */ + { CPUFUNC(op_c140_0), 49472 }, /* EXG */ + { CPUFUNC(op_c148_0), 49480 }, /* EXG */ + { CPUFUNC(op_c150_0), 49488 }, /* AND */ + { CPUFUNC(op_c158_0), 49496 }, /* AND */ + { CPUFUNC(op_c160_0), 49504 }, /* AND */ + { CPUFUNC(op_c168_0), 49512 }, /* AND */ + { CPUFUNC(op_c170_0), 49520 }, /* AND */ + { CPUFUNC(op_c178_0), 49528 }, /* AND */ + { CPUFUNC(op_c179_0), 49529 }, /* AND */ + { CPUFUNC(op_c188_0), 49544 }, /* EXG */ + { CPUFUNC(op_c190_0), 49552 }, /* AND */ + { CPUFUNC(op_c198_0), 49560 }, /* AND */ + { CPUFUNC(op_c1a0_0), 49568 }, /* AND */ + { CPUFUNC(op_c1a8_0), 49576 }, /* AND */ + { CPUFUNC(op_c1b0_0), 49584 }, /* AND */ + { CPUFUNC(op_c1b8_0), 49592 }, /* AND */ + { CPUFUNC(op_c1b9_0), 49593 }, /* AND */ + { CPUFUNC(op_c1c0_0), 49600 }, /* MULS */ + { CPUFUNC(op_c1d0_0), 49616 }, /* MULS */ + { CPUFUNC(op_c1d8_0), 49624 }, /* MULS */ + { CPUFUNC(op_c1e0_0), 49632 }, /* MULS */ + { CPUFUNC(op_c1e8_0), 49640 }, /* MULS */ + { CPUFUNC(op_c1f0_0), 49648 }, /* MULS */ + { CPUFUNC(op_c1f8_0), 49656 }, /* MULS */ + { CPUFUNC(op_c1f9_0), 49657 }, /* MULS */ + { CPUFUNC(op_c1fa_0), 49658 }, /* MULS */ + { CPUFUNC(op_c1fb_0), 49659 }, /* MULS */ + { CPUFUNC(op_c1fc_0), 49660 }, /* MULS */ + { CPUFUNC(op_d000_0), 53248 }, /* ADD */ + { CPUFUNC(op_d010_0), 53264 }, /* ADD */ + { CPUFUNC(op_d018_0), 53272 }, /* ADD */ + { CPUFUNC(op_d020_0), 53280 }, /* ADD */ + { CPUFUNC(op_d028_0), 53288 }, /* ADD */ + { CPUFUNC(op_d030_0), 53296 }, /* ADD */ + { CPUFUNC(op_d038_0), 53304 }, /* ADD */ + { CPUFUNC(op_d039_0), 53305 }, /* ADD */ + { CPUFUNC(op_d03a_0), 53306 }, /* ADD */ + { CPUFUNC(op_d03b_0), 53307 }, /* ADD */ + { CPUFUNC(op_d03c_0), 53308 }, /* ADD */ + { CPUFUNC(op_d040_0), 53312 }, /* ADD */ + { CPUFUNC(op_d048_0), 53320 }, /* ADD */ + { CPUFUNC(op_d050_0), 53328 }, /* ADD */ + { CPUFUNC(op_d058_0), 53336 }, /* ADD */ + { CPUFUNC(op_d060_0), 53344 }, /* ADD */ + { CPUFUNC(op_d068_0), 53352 }, /* ADD */ + { CPUFUNC(op_d070_0), 53360 }, /* ADD */ + { CPUFUNC(op_d078_0), 53368 }, /* ADD */ + { CPUFUNC(op_d079_0), 53369 }, /* ADD */ + { CPUFUNC(op_d07a_0), 53370 }, /* ADD */ + { CPUFUNC(op_d07b_0), 53371 }, /* ADD */ + { CPUFUNC(op_d07c_0), 53372 }, /* ADD */ + { CPUFUNC(op_d080_0), 53376 }, /* ADD */ + { CPUFUNC(op_d088_0), 53384 }, /* ADD */ + { CPUFUNC(op_d090_0), 53392 }, /* ADD */ + { CPUFUNC(op_d098_0), 53400 }, /* ADD */ + { CPUFUNC(op_d0a0_0), 53408 }, /* ADD */ + { CPUFUNC(op_d0a8_0), 53416 }, /* ADD */ + { CPUFUNC(op_d0b0_0), 53424 }, /* ADD */ + { CPUFUNC(op_d0b8_0), 53432 }, /* ADD */ + { CPUFUNC(op_d0b9_0), 53433 }, /* ADD */ + { CPUFUNC(op_d0ba_0), 53434 }, /* ADD */ + { CPUFUNC(op_d0bb_0), 53435 }, /* ADD */ + { CPUFUNC(op_d0bc_0), 53436 }, /* ADD */ + { CPUFUNC(op_d0c0_0), 53440 }, /* ADDA */ + { CPUFUNC(op_d0c8_0), 53448 }, /* ADDA */ + { CPUFUNC(op_d0d0_0), 53456 }, /* ADDA */ + { CPUFUNC(op_d0d8_0), 53464 }, /* ADDA */ + { CPUFUNC(op_d0e0_0), 53472 }, /* ADDA */ + { CPUFUNC(op_d0e8_0), 53480 }, /* ADDA */ + { CPUFUNC(op_d0f0_0), 53488 }, /* ADDA */ + { CPUFUNC(op_d0f8_0), 53496 }, /* ADDA */ + { CPUFUNC(op_d0f9_0), 53497 }, /* ADDA */ + { CPUFUNC(op_d0fa_0), 53498 }, /* ADDA */ + { CPUFUNC(op_d0fb_0), 53499 }, /* ADDA */ + { CPUFUNC(op_d0fc_0), 53500 }, /* ADDA */ + { CPUFUNC(op_d100_0), 53504 }, /* ADDX */ + { CPUFUNC(op_d108_0), 53512 }, /* ADDX */ + { CPUFUNC(op_d110_0), 53520 }, /* ADD */ + { CPUFUNC(op_d118_0), 53528 }, /* ADD */ + { CPUFUNC(op_d120_0), 53536 }, /* ADD */ + { CPUFUNC(op_d128_0), 53544 }, /* ADD */ + { CPUFUNC(op_d130_0), 53552 }, /* ADD */ + { CPUFUNC(op_d138_0), 53560 }, /* ADD */ + { CPUFUNC(op_d139_0), 53561 }, /* ADD */ + { CPUFUNC(op_d140_0), 53568 }, /* ADDX */ + { CPUFUNC(op_d148_0), 53576 }, /* ADDX */ + { CPUFUNC(op_d150_0), 53584 }, /* ADD */ + { CPUFUNC(op_d158_0), 53592 }, /* ADD */ + { CPUFUNC(op_d160_0), 53600 }, /* ADD */ + { CPUFUNC(op_d168_0), 53608 }, /* ADD */ + { CPUFUNC(op_d170_0), 53616 }, /* ADD */ + { CPUFUNC(op_d178_0), 53624 }, /* ADD */ + { CPUFUNC(op_d179_0), 53625 }, /* ADD */ + { CPUFUNC(op_d180_0), 53632 }, /* ADDX */ + { CPUFUNC(op_d188_0), 53640 }, /* ADDX */ + { CPUFUNC(op_d190_0), 53648 }, /* ADD */ + { CPUFUNC(op_d198_0), 53656 }, /* ADD */ + { CPUFUNC(op_d1a0_0), 53664 }, /* ADD */ + { CPUFUNC(op_d1a8_0), 53672 }, /* ADD */ + { CPUFUNC(op_d1b0_0), 53680 }, /* ADD */ + { CPUFUNC(op_d1b8_0), 53688 }, /* ADD */ + { CPUFUNC(op_d1b9_0), 53689 }, /* ADD */ + { CPUFUNC(op_d1c0_0), 53696 }, /* ADDA */ + { CPUFUNC(op_d1c8_0), 53704 }, /* ADDA */ + { CPUFUNC(op_d1d0_0), 53712 }, /* ADDA */ + { CPUFUNC(op_d1d8_0), 53720 }, /* ADDA */ + { CPUFUNC(op_d1e0_0), 53728 }, /* ADDA */ + { CPUFUNC(op_d1e8_0), 53736 }, /* ADDA */ + { CPUFUNC(op_d1f0_0), 53744 }, /* ADDA */ + { CPUFUNC(op_d1f8_0), 53752 }, /* ADDA */ + { CPUFUNC(op_d1f9_0), 53753 }, /* ADDA */ + { CPUFUNC(op_d1fa_0), 53754 }, /* ADDA */ + { CPUFUNC(op_d1fb_0), 53755 }, /* ADDA */ + { CPUFUNC(op_d1fc_0), 53756 }, /* ADDA */ + { CPUFUNC(op_e000_0), 57344 }, /* ASR */ + { CPUFUNC(op_e008_0), 57352 }, /* LSR */ + { CPUFUNC(op_e010_0), 57360 }, /* ROXR */ + { CPUFUNC(op_e018_0), 57368 }, /* ROR */ + { CPUFUNC(op_e020_0), 57376 }, /* ASR */ + { CPUFUNC(op_e028_0), 57384 }, /* LSR */ + { CPUFUNC(op_e030_0), 57392 }, /* ROXR */ + { CPUFUNC(op_e038_0), 57400 }, /* ROR */ + { CPUFUNC(op_e040_0), 57408 }, /* ASR */ + { CPUFUNC(op_e048_0), 57416 }, /* LSR */ + { CPUFUNC(op_e050_0), 57424 }, /* ROXR */ + { CPUFUNC(op_e058_0), 57432 }, /* ROR */ + { CPUFUNC(op_e060_0), 57440 }, /* ASR */ + { CPUFUNC(op_e068_0), 57448 }, /* LSR */ + { CPUFUNC(op_e070_0), 57456 }, /* ROXR */ + { CPUFUNC(op_e078_0), 57464 }, /* ROR */ + { CPUFUNC(op_e080_0), 57472 }, /* ASR */ + { CPUFUNC(op_e088_0), 57480 }, /* LSR */ + { CPUFUNC(op_e090_0), 57488 }, /* ROXR */ + { CPUFUNC(op_e098_0), 57496 }, /* ROR */ + { CPUFUNC(op_e0a0_0), 57504 }, /* ASR */ + { CPUFUNC(op_e0a8_0), 57512 }, /* LSR */ + { CPUFUNC(op_e0b0_0), 57520 }, /* ROXR */ + { CPUFUNC(op_e0b8_0), 57528 }, /* ROR */ + { CPUFUNC(op_e0d0_0), 57552 }, /* ASRW */ + { CPUFUNC(op_e0d8_0), 57560 }, /* ASRW */ + { CPUFUNC(op_e0e0_0), 57568 }, /* ASRW */ + { CPUFUNC(op_e0e8_0), 57576 }, /* ASRW */ + { CPUFUNC(op_e0f0_0), 57584 }, /* ASRW */ + { CPUFUNC(op_e0f8_0), 57592 }, /* ASRW */ + { CPUFUNC(op_e0f9_0), 57593 }, /* ASRW */ + { CPUFUNC(op_e100_0), 57600 }, /* ASL */ + { CPUFUNC(op_e108_0), 57608 }, /* LSL */ + { CPUFUNC(op_e110_0), 57616 }, /* ROXL */ + { CPUFUNC(op_e118_0), 57624 }, /* ROL */ + { CPUFUNC(op_e120_0), 57632 }, /* ASL */ + { CPUFUNC(op_e128_0), 57640 }, /* LSL */ + { CPUFUNC(op_e130_0), 57648 }, /* ROXL */ + { CPUFUNC(op_e138_0), 57656 }, /* ROL */ + { CPUFUNC(op_e140_0), 57664 }, /* ASL */ + { CPUFUNC(op_e148_0), 57672 }, /* LSL */ + { CPUFUNC(op_e150_0), 57680 }, /* ROXL */ + { CPUFUNC(op_e158_0), 57688 }, /* ROL */ + { CPUFUNC(op_e160_0), 57696 }, /* ASL */ + { CPUFUNC(op_e168_0), 57704 }, /* LSL */ + { CPUFUNC(op_e170_0), 57712 }, /* ROXL */ + { CPUFUNC(op_e178_0), 57720 }, /* ROL */ + { CPUFUNC(op_e180_0), 57728 }, /* ASL */ + { CPUFUNC(op_e188_0), 57736 }, /* LSL */ + { CPUFUNC(op_e190_0), 57744 }, /* ROXL */ + { CPUFUNC(op_e198_0), 57752 }, /* ROL */ + { CPUFUNC(op_e1a0_0), 57760 }, /* ASL */ + { CPUFUNC(op_e1a8_0), 57768 }, /* LSL */ + { CPUFUNC(op_e1b0_0), 57776 }, /* ROXL */ + { CPUFUNC(op_e1b8_0), 57784 }, /* ROL */ + { CPUFUNC(op_e1d0_0), 57808 }, /* ASLW */ + { CPUFUNC(op_e1d8_0), 57816 }, /* ASLW */ + { CPUFUNC(op_e1e0_0), 57824 }, /* ASLW */ + { CPUFUNC(op_e1e8_0), 57832 }, /* ASLW */ + { CPUFUNC(op_e1f0_0), 57840 }, /* ASLW */ + { CPUFUNC(op_e1f8_0), 57848 }, /* ASLW */ + { CPUFUNC(op_e1f9_0), 57849 }, /* ASLW */ + { CPUFUNC(op_e2d0_0), 58064 }, /* LSRW */ + { CPUFUNC(op_e2d8_0), 58072 }, /* LSRW */ + { CPUFUNC(op_e2e0_0), 58080 }, /* LSRW */ + { CPUFUNC(op_e2e8_0), 58088 }, /* LSRW */ + { CPUFUNC(op_e2f0_0), 58096 }, /* LSRW */ + { CPUFUNC(op_e2f8_0), 58104 }, /* LSRW */ + { CPUFUNC(op_e2f9_0), 58105 }, /* LSRW */ + { CPUFUNC(op_e3d0_0), 58320 }, /* LSLW */ + { CPUFUNC(op_e3d8_0), 58328 }, /* LSLW */ + { CPUFUNC(op_e3e0_0), 58336 }, /* LSLW */ + { CPUFUNC(op_e3e8_0), 58344 }, /* LSLW */ + { CPUFUNC(op_e3f0_0), 58352 }, /* LSLW */ + { CPUFUNC(op_e3f8_0), 58360 }, /* LSLW */ + { CPUFUNC(op_e3f9_0), 58361 }, /* LSLW */ + { CPUFUNC(op_e4d0_0), 58576 }, /* ROXRW */ + { CPUFUNC(op_e4d8_0), 58584 }, /* ROXRW */ + { CPUFUNC(op_e4e0_0), 58592 }, /* ROXRW */ + { CPUFUNC(op_e4e8_0), 58600 }, /* ROXRW */ + { CPUFUNC(op_e4f0_0), 58608 }, /* ROXRW */ + { CPUFUNC(op_e4f8_0), 58616 }, /* ROXRW */ + { CPUFUNC(op_e4f9_0), 58617 }, /* ROXRW */ + { CPUFUNC(op_e5d0_0), 58832 }, /* ROXLW */ + { CPUFUNC(op_e5d8_0), 58840 }, /* ROXLW */ + { CPUFUNC(op_e5e0_0), 58848 }, /* ROXLW */ + { CPUFUNC(op_e5e8_0), 58856 }, /* ROXLW */ + { CPUFUNC(op_e5f0_0), 58864 }, /* ROXLW */ + { CPUFUNC(op_e5f8_0), 58872 }, /* ROXLW */ + { CPUFUNC(op_e5f9_0), 58873 }, /* ROXLW */ + { CPUFUNC(op_e6d0_0), 59088 }, /* RORW */ + { CPUFUNC(op_e6d8_0), 59096 }, /* RORW */ + { CPUFUNC(op_e6e0_0), 59104 }, /* RORW */ + { CPUFUNC(op_e6e8_0), 59112 }, /* RORW */ + { CPUFUNC(op_e6f0_0), 59120 }, /* RORW */ + { CPUFUNC(op_e6f8_0), 59128 }, /* RORW */ + { CPUFUNC(op_e6f9_0), 59129 }, /* RORW */ + { CPUFUNC(op_e7d0_0), 59344 }, /* ROLW */ + { CPUFUNC(op_e7d8_0), 59352 }, /* ROLW */ + { CPUFUNC(op_e7e0_0), 59360 }, /* ROLW */ + { CPUFUNC(op_e7e8_0), 59368 }, /* ROLW */ + { CPUFUNC(op_e7f0_0), 59376 }, /* ROLW */ + { CPUFUNC(op_e7f8_0), 59384 }, /* ROLW */ + { CPUFUNC(op_e7f9_0), 59385 }, /* ROLW */ + { CPUFUNC(op_e8c0_0), 59584 }, /* BFTST */ + { CPUFUNC(op_e8d0_0), 59600 }, /* BFTST */ + { CPUFUNC(op_e8e8_0), 59624 }, /* BFTST */ + { CPUFUNC(op_e8f0_0), 59632 }, /* BFTST */ + { CPUFUNC(op_e8f8_0), 59640 }, /* BFTST */ + { CPUFUNC(op_e8f9_0), 59641 }, /* BFTST */ + { CPUFUNC(op_e8fa_0), 59642 }, /* BFTST */ + { CPUFUNC(op_e8fb_0), 59643 }, /* BFTST */ + { CPUFUNC(op_e9c0_0), 59840 }, /* BFEXTU */ + { CPUFUNC(op_e9d0_0), 59856 }, /* BFEXTU */ + { CPUFUNC(op_e9e8_0), 59880 }, /* BFEXTU */ + { CPUFUNC(op_e9f0_0), 59888 }, /* BFEXTU */ + { CPUFUNC(op_e9f8_0), 59896 }, /* BFEXTU */ + { CPUFUNC(op_e9f9_0), 59897 }, /* BFEXTU */ + { CPUFUNC(op_e9fa_0), 59898 }, /* BFEXTU */ + { CPUFUNC(op_e9fb_0), 59899 }, /* BFEXTU */ + { CPUFUNC(op_eac0_0), 60096 }, /* BFCHG */ + { CPUFUNC(op_ead0_0), 60112 }, /* BFCHG */ + { CPUFUNC(op_eae8_0), 60136 }, /* BFCHG */ + { CPUFUNC(op_eaf0_0), 60144 }, /* BFCHG */ + { CPUFUNC(op_eaf8_0), 60152 }, /* BFCHG */ + { CPUFUNC(op_eaf9_0), 60153 }, /* BFCHG */ + { CPUFUNC(op_ebc0_0), 60352 }, /* BFEXTS */ + { CPUFUNC(op_ebd0_0), 60368 }, /* BFEXTS */ + { CPUFUNC(op_ebe8_0), 60392 }, /* BFEXTS */ + { CPUFUNC(op_ebf0_0), 60400 }, /* BFEXTS */ + { CPUFUNC(op_ebf8_0), 60408 }, /* BFEXTS */ + { CPUFUNC(op_ebf9_0), 60409 }, /* BFEXTS */ + { CPUFUNC(op_ebfa_0), 60410 }, /* BFEXTS */ + { CPUFUNC(op_ebfb_0), 60411 }, /* BFEXTS */ + { CPUFUNC(op_ecc0_0), 60608 }, /* BFCLR */ + { CPUFUNC(op_ecd0_0), 60624 }, /* BFCLR */ + { CPUFUNC(op_ece8_0), 60648 }, /* BFCLR */ + { CPUFUNC(op_ecf0_0), 60656 }, /* BFCLR */ + { CPUFUNC(op_ecf8_0), 60664 }, /* BFCLR */ + { CPUFUNC(op_ecf9_0), 60665 }, /* BFCLR */ + { CPUFUNC(op_edc0_0), 60864 }, /* BFFFO */ + { CPUFUNC(op_edd0_0), 60880 }, /* BFFFO */ + { CPUFUNC(op_ede8_0), 60904 }, /* BFFFO */ + { CPUFUNC(op_edf0_0), 60912 }, /* BFFFO */ + { CPUFUNC(op_edf8_0), 60920 }, /* BFFFO */ + { CPUFUNC(op_edf9_0), 60921 }, /* BFFFO */ + { CPUFUNC(op_edfa_0), 60922 }, /* BFFFO */ + { CPUFUNC(op_edfb_0), 60923 }, /* BFFFO */ + { CPUFUNC(op_eec0_0), 61120 }, /* BFSET */ + { CPUFUNC(op_eed0_0), 61136 }, /* BFSET */ + { CPUFUNC(op_eee8_0), 61160 }, /* BFSET */ + { CPUFUNC(op_eef0_0), 61168 }, /* BFSET */ + { CPUFUNC(op_eef8_0), 61176 }, /* BFSET */ + { CPUFUNC(op_eef9_0), 61177 }, /* BFSET */ + { CPUFUNC(op_efc0_0), 61376 }, /* BFINS */ + { CPUFUNC(op_efd0_0), 61392 }, /* BFINS */ + { CPUFUNC(op_efe8_0), 61416 }, /* BFINS */ + { CPUFUNC(op_eff0_0), 61424 }, /* BFINS */ + { CPUFUNC(op_eff8_0), 61432 }, /* BFINS */ + { CPUFUNC(op_eff9_0), 61433 }, /* BFINS */ + { CPUFUNC(op_f000_0), 61440 }, /* MMUOP030 */ + { CPUFUNC(op_f008_0), 61448 }, /* MMUOP030 */ + { CPUFUNC(op_f010_0), 61456 }, /* MMUOP030 */ + { CPUFUNC(op_f018_0), 61464 }, /* MMUOP030 */ + { CPUFUNC(op_f020_0), 61472 }, /* MMUOP030 */ + { CPUFUNC(op_f028_0), 61480 }, /* MMUOP030 */ + { CPUFUNC(op_f030_0), 61488 }, /* MMUOP030 */ + { CPUFUNC(op_f038_0), 61496 }, /* MMUOP030 */ + { CPUFUNC(op_f039_0), 61497 }, /* MMUOP030 */ + { CPUFUNC(op_f200_0), 61952 }, /* FPP */ + { CPUFUNC(op_f208_0), 61960 }, /* FPP */ + { CPUFUNC(op_f210_0), 61968 }, /* FPP */ + { CPUFUNC(op_f218_0), 61976 }, /* FPP */ + { CPUFUNC(op_f220_0), 61984 }, /* FPP */ + { CPUFUNC(op_f228_0), 61992 }, /* FPP */ + { CPUFUNC(op_f230_0), 62000 }, /* FPP */ + { CPUFUNC(op_f238_0), 62008 }, /* FPP */ + { CPUFUNC(op_f239_0), 62009 }, /* FPP */ + { CPUFUNC(op_f23a_0), 62010 }, /* FPP */ + { CPUFUNC(op_f23b_0), 62011 }, /* FPP */ + { CPUFUNC(op_f23c_0), 62012 }, /* FPP */ + { CPUFUNC(op_f240_0), 62016 }, /* FScc */ + { CPUFUNC(op_f248_0), 62024 }, /* FDBcc */ + { CPUFUNC(op_f250_0), 62032 }, /* FScc */ + { CPUFUNC(op_f258_0), 62040 }, /* FScc */ + { CPUFUNC(op_f260_0), 62048 }, /* FScc */ + { CPUFUNC(op_f268_0), 62056 }, /* FScc */ + { CPUFUNC(op_f270_0), 62064 }, /* FScc */ + { CPUFUNC(op_f278_0), 62072 }, /* FScc */ + { CPUFUNC(op_f279_0), 62073 }, /* FScc */ + { CPUFUNC(op_f27a_0), 62074 }, /* FTRAPcc */ + { CPUFUNC(op_f27b_0), 62075 }, /* FTRAPcc */ + { CPUFUNC(op_f27c_0), 62076 }, /* FTRAPcc */ + { CPUFUNC(op_f280_0), 62080 }, /* FBcc */ + { CPUFUNC(op_f2c0_0), 62144 }, /* FBcc */ + { CPUFUNC(op_f310_0), 62224 }, /* FSAVE */ + { CPUFUNC(op_f320_0), 62240 }, /* FSAVE */ + { CPUFUNC(op_f328_0), 62248 }, /* FSAVE */ + { CPUFUNC(op_f330_0), 62256 }, /* FSAVE */ + { CPUFUNC(op_f338_0), 62264 }, /* FSAVE */ + { CPUFUNC(op_f339_0), 62265 }, /* FSAVE */ + { CPUFUNC(op_f350_0), 62288 }, /* FRESTORE */ + { CPUFUNC(op_f358_0), 62296 }, /* FRESTORE */ + { CPUFUNC(op_f368_0), 62312 }, /* FRESTORE */ + { CPUFUNC(op_f370_0), 62320 }, /* FRESTORE */ + { CPUFUNC(op_f378_0), 62328 }, /* FRESTORE */ + { CPUFUNC(op_f379_0), 62329 }, /* FRESTORE */ + { CPUFUNC(op_f37a_0), 62330 }, /* FRESTORE */ + { CPUFUNC(op_f37b_0), 62331 }, /* FRESTORE */ + { 0, 0 } +}; +const struct cputbl CPUFUNC(op_smalltbl_3)[] = +{ + { CPUFUNC(op_0000_0), 0 }, /* OR */ + { CPUFUNC(op_0010_0), 16 }, /* OR */ + { CPUFUNC(op_0018_0), 24 }, /* OR */ + { CPUFUNC(op_0020_0), 32 }, /* OR */ + { CPUFUNC(op_0028_0), 40 }, /* OR */ + { CPUFUNC(op_0030_0), 48 }, /* OR */ + { CPUFUNC(op_0038_0), 56 }, /* OR */ + { CPUFUNC(op_0039_0), 57 }, /* OR */ + { CPUFUNC(op_003c_0), 60 }, /* ORSR */ + { CPUFUNC(op_0040_0), 64 }, /* OR */ + { CPUFUNC(op_0050_0), 80 }, /* OR */ + { CPUFUNC(op_0058_0), 88 }, /* OR */ + { CPUFUNC(op_0060_0), 96 }, /* OR */ + { CPUFUNC(op_0068_0), 104 }, /* OR */ + { CPUFUNC(op_0070_0), 112 }, /* OR */ + { CPUFUNC(op_0078_0), 120 }, /* OR */ + { CPUFUNC(op_0079_0), 121 }, /* OR */ + { CPUFUNC(op_007c_0), 124 }, /* ORSR */ + { CPUFUNC(op_0080_0), 128 }, /* OR */ + { CPUFUNC(op_0090_0), 144 }, /* OR */ + { CPUFUNC(op_0098_0), 152 }, /* OR */ + { CPUFUNC(op_00a0_0), 160 }, /* OR */ + { CPUFUNC(op_00a8_0), 168 }, /* OR */ + { CPUFUNC(op_00b0_0), 176 }, /* OR */ + { CPUFUNC(op_00b8_0), 184 }, /* OR */ + { CPUFUNC(op_00b9_0), 185 }, /* OR */ + { CPUFUNC(op_00d0_0), 208 }, /* CHK2 */ + { CPUFUNC(op_00e8_0), 232 }, /* CHK2 */ + { CPUFUNC(op_00f0_0), 240 }, /* CHK2 */ + { CPUFUNC(op_00f8_0), 248 }, /* CHK2 */ + { CPUFUNC(op_00f9_0), 249 }, /* CHK2 */ + { CPUFUNC(op_00fa_0), 250 }, /* CHK2 */ + { CPUFUNC(op_00fb_0), 251 }, /* CHK2 */ + { CPUFUNC(op_0100_0), 256 }, /* BTST */ + { CPUFUNC(op_0108_0), 264 }, /* MVPMR */ + { CPUFUNC(op_0110_0), 272 }, /* BTST */ + { CPUFUNC(op_0118_0), 280 }, /* BTST */ + { CPUFUNC(op_0120_0), 288 }, /* BTST */ + { CPUFUNC(op_0128_0), 296 }, /* BTST */ + { CPUFUNC(op_0130_0), 304 }, /* BTST */ + { CPUFUNC(op_0138_0), 312 }, /* BTST */ + { CPUFUNC(op_0139_0), 313 }, /* BTST */ + { CPUFUNC(op_013a_0), 314 }, /* BTST */ + { CPUFUNC(op_013b_0), 315 }, /* BTST */ + { CPUFUNC(op_013c_0), 316 }, /* BTST */ + { CPUFUNC(op_0140_0), 320 }, /* BCHG */ + { CPUFUNC(op_0148_0), 328 }, /* MVPMR */ + { CPUFUNC(op_0150_0), 336 }, /* BCHG */ + { CPUFUNC(op_0158_0), 344 }, /* BCHG */ + { CPUFUNC(op_0160_0), 352 }, /* BCHG */ + { CPUFUNC(op_0168_0), 360 }, /* BCHG */ + { CPUFUNC(op_0170_0), 368 }, /* BCHG */ + { CPUFUNC(op_0178_0), 376 }, /* BCHG */ + { CPUFUNC(op_0179_0), 377 }, /* BCHG */ + { CPUFUNC(op_0180_0), 384 }, /* BCLR */ + { CPUFUNC(op_0188_0), 392 }, /* MVPRM */ + { CPUFUNC(op_0190_0), 400 }, /* BCLR */ + { CPUFUNC(op_0198_0), 408 }, /* BCLR */ + { CPUFUNC(op_01a0_0), 416 }, /* BCLR */ + { CPUFUNC(op_01a8_0), 424 }, /* BCLR */ + { CPUFUNC(op_01b0_0), 432 }, /* BCLR */ + { CPUFUNC(op_01b8_0), 440 }, /* BCLR */ + { CPUFUNC(op_01b9_0), 441 }, /* BCLR */ + { CPUFUNC(op_01c0_0), 448 }, /* BSET */ + { CPUFUNC(op_01c8_0), 456 }, /* MVPRM */ + { CPUFUNC(op_01d0_0), 464 }, /* BSET */ + { CPUFUNC(op_01d8_0), 472 }, /* BSET */ + { CPUFUNC(op_01e0_0), 480 }, /* BSET */ + { CPUFUNC(op_01e8_0), 488 }, /* BSET */ + { CPUFUNC(op_01f0_0), 496 }, /* BSET */ + { CPUFUNC(op_01f8_0), 504 }, /* BSET */ + { CPUFUNC(op_01f9_0), 505 }, /* BSET */ + { CPUFUNC(op_0200_0), 512 }, /* AND */ + { CPUFUNC(op_0210_0), 528 }, /* AND */ + { CPUFUNC(op_0218_0), 536 }, /* AND */ + { CPUFUNC(op_0220_0), 544 }, /* AND */ + { CPUFUNC(op_0228_0), 552 }, /* AND */ + { CPUFUNC(op_0230_0), 560 }, /* AND */ + { CPUFUNC(op_0238_0), 568 }, /* AND */ + { CPUFUNC(op_0239_0), 569 }, /* AND */ + { CPUFUNC(op_023c_0), 572 }, /* ANDSR */ + { CPUFUNC(op_0240_0), 576 }, /* AND */ + { CPUFUNC(op_0250_0), 592 }, /* AND */ + { CPUFUNC(op_0258_0), 600 }, /* AND */ + { CPUFUNC(op_0260_0), 608 }, /* AND */ + { CPUFUNC(op_0268_0), 616 }, /* AND */ + { CPUFUNC(op_0270_0), 624 }, /* AND */ + { CPUFUNC(op_0278_0), 632 }, /* AND */ + { CPUFUNC(op_0279_0), 633 }, /* AND */ + { CPUFUNC(op_027c_0), 636 }, /* ANDSR */ + { CPUFUNC(op_0280_0), 640 }, /* AND */ + { CPUFUNC(op_0290_0), 656 }, /* AND */ + { CPUFUNC(op_0298_0), 664 }, /* AND */ + { CPUFUNC(op_02a0_0), 672 }, /* AND */ + { CPUFUNC(op_02a8_0), 680 }, /* AND */ + { CPUFUNC(op_02b0_0), 688 }, /* AND */ + { CPUFUNC(op_02b8_0), 696 }, /* AND */ + { CPUFUNC(op_02b9_0), 697 }, /* AND */ + { CPUFUNC(op_02d0_0), 720 }, /* CHK2 */ + { CPUFUNC(op_02e8_0), 744 }, /* CHK2 */ + { CPUFUNC(op_02f0_0), 752 }, /* CHK2 */ + { CPUFUNC(op_02f8_0), 760 }, /* CHK2 */ + { CPUFUNC(op_02f9_0), 761 }, /* CHK2 */ + { CPUFUNC(op_02fa_0), 762 }, /* CHK2 */ + { CPUFUNC(op_02fb_0), 763 }, /* CHK2 */ + { CPUFUNC(op_0400_0), 1024 }, /* SUB */ + { CPUFUNC(op_0410_0), 1040 }, /* SUB */ + { CPUFUNC(op_0418_0), 1048 }, /* SUB */ + { CPUFUNC(op_0420_0), 1056 }, /* SUB */ + { CPUFUNC(op_0428_0), 1064 }, /* SUB */ + { CPUFUNC(op_0430_0), 1072 }, /* SUB */ + { CPUFUNC(op_0438_0), 1080 }, /* SUB */ + { CPUFUNC(op_0439_0), 1081 }, /* SUB */ + { CPUFUNC(op_0440_0), 1088 }, /* SUB */ + { CPUFUNC(op_0450_0), 1104 }, /* SUB */ + { CPUFUNC(op_0458_0), 1112 }, /* SUB */ + { CPUFUNC(op_0460_0), 1120 }, /* SUB */ + { CPUFUNC(op_0468_0), 1128 }, /* SUB */ + { CPUFUNC(op_0470_0), 1136 }, /* SUB */ + { CPUFUNC(op_0478_0), 1144 }, /* SUB */ + { CPUFUNC(op_0479_0), 1145 }, /* SUB */ + { CPUFUNC(op_0480_0), 1152 }, /* SUB */ + { CPUFUNC(op_0490_0), 1168 }, /* SUB */ + { CPUFUNC(op_0498_0), 1176 }, /* SUB */ + { CPUFUNC(op_04a0_0), 1184 }, /* SUB */ + { CPUFUNC(op_04a8_0), 1192 }, /* SUB */ + { CPUFUNC(op_04b0_0), 1200 }, /* SUB */ + { CPUFUNC(op_04b8_0), 1208 }, /* SUB */ + { CPUFUNC(op_04b9_0), 1209 }, /* SUB */ + { CPUFUNC(op_04d0_0), 1232 }, /* CHK2 */ + { CPUFUNC(op_04e8_0), 1256 }, /* CHK2 */ + { CPUFUNC(op_04f0_0), 1264 }, /* CHK2 */ + { CPUFUNC(op_04f8_0), 1272 }, /* CHK2 */ + { CPUFUNC(op_04f9_0), 1273 }, /* CHK2 */ + { CPUFUNC(op_04fa_0), 1274 }, /* CHK2 */ + { CPUFUNC(op_04fb_0), 1275 }, /* CHK2 */ + { CPUFUNC(op_0600_0), 1536 }, /* ADD */ + { CPUFUNC(op_0610_0), 1552 }, /* ADD */ + { CPUFUNC(op_0618_0), 1560 }, /* ADD */ + { CPUFUNC(op_0620_0), 1568 }, /* ADD */ + { CPUFUNC(op_0628_0), 1576 }, /* ADD */ + { CPUFUNC(op_0630_0), 1584 }, /* ADD */ + { CPUFUNC(op_0638_0), 1592 }, /* ADD */ + { CPUFUNC(op_0639_0), 1593 }, /* ADD */ + { CPUFUNC(op_0640_0), 1600 }, /* ADD */ + { CPUFUNC(op_0650_0), 1616 }, /* ADD */ + { CPUFUNC(op_0658_0), 1624 }, /* ADD */ + { CPUFUNC(op_0660_0), 1632 }, /* ADD */ + { CPUFUNC(op_0668_0), 1640 }, /* ADD */ + { CPUFUNC(op_0670_0), 1648 }, /* ADD */ + { CPUFUNC(op_0678_0), 1656 }, /* ADD */ + { CPUFUNC(op_0679_0), 1657 }, /* ADD */ + { CPUFUNC(op_0680_0), 1664 }, /* ADD */ + { CPUFUNC(op_0690_0), 1680 }, /* ADD */ + { CPUFUNC(op_0698_0), 1688 }, /* ADD */ + { CPUFUNC(op_06a0_0), 1696 }, /* ADD */ + { CPUFUNC(op_06a8_0), 1704 }, /* ADD */ + { CPUFUNC(op_06b0_0), 1712 }, /* ADD */ + { CPUFUNC(op_06b8_0), 1720 }, /* ADD */ + { CPUFUNC(op_06b9_0), 1721 }, /* ADD */ + { CPUFUNC(op_06c0_0), 1728 }, /* RTM */ + { CPUFUNC(op_06c8_0), 1736 }, /* RTM */ + { CPUFUNC(op_06d0_0), 1744 }, /* CALLM */ + { CPUFUNC(op_06e8_0), 1768 }, /* CALLM */ + { CPUFUNC(op_06f0_0), 1776 }, /* CALLM */ + { CPUFUNC(op_06f8_0), 1784 }, /* CALLM */ + { CPUFUNC(op_06f9_0), 1785 }, /* CALLM */ + { CPUFUNC(op_06fa_0), 1786 }, /* CALLM */ + { CPUFUNC(op_06fb_0), 1787 }, /* CALLM */ + { CPUFUNC(op_0800_0), 2048 }, /* BTST */ + { CPUFUNC(op_0810_0), 2064 }, /* BTST */ + { CPUFUNC(op_0818_0), 2072 }, /* BTST */ + { CPUFUNC(op_0820_0), 2080 }, /* BTST */ + { CPUFUNC(op_0828_0), 2088 }, /* BTST */ + { CPUFUNC(op_0830_0), 2096 }, /* BTST */ + { CPUFUNC(op_0838_0), 2104 }, /* BTST */ + { CPUFUNC(op_0839_0), 2105 }, /* BTST */ + { CPUFUNC(op_083a_0), 2106 }, /* BTST */ + { CPUFUNC(op_083b_0), 2107 }, /* BTST */ + { CPUFUNC(op_083c_0), 2108 }, /* BTST */ + { CPUFUNC(op_0840_0), 2112 }, /* BCHG */ + { CPUFUNC(op_0850_0), 2128 }, /* BCHG */ + { CPUFUNC(op_0858_0), 2136 }, /* BCHG */ + { CPUFUNC(op_0860_0), 2144 }, /* BCHG */ + { CPUFUNC(op_0868_0), 2152 }, /* BCHG */ + { CPUFUNC(op_0870_0), 2160 }, /* BCHG */ + { CPUFUNC(op_0878_0), 2168 }, /* BCHG */ + { CPUFUNC(op_0879_0), 2169 }, /* BCHG */ + { CPUFUNC(op_0880_0), 2176 }, /* BCLR */ + { CPUFUNC(op_0890_0), 2192 }, /* BCLR */ + { CPUFUNC(op_0898_0), 2200 }, /* BCLR */ + { CPUFUNC(op_08a0_0), 2208 }, /* BCLR */ + { CPUFUNC(op_08a8_0), 2216 }, /* BCLR */ + { CPUFUNC(op_08b0_0), 2224 }, /* BCLR */ + { CPUFUNC(op_08b8_0), 2232 }, /* BCLR */ + { CPUFUNC(op_08b9_0), 2233 }, /* BCLR */ + { CPUFUNC(op_08c0_0), 2240 }, /* BSET */ + { CPUFUNC(op_08d0_0), 2256 }, /* BSET */ + { CPUFUNC(op_08d8_0), 2264 }, /* BSET */ + { CPUFUNC(op_08e0_0), 2272 }, /* BSET */ + { CPUFUNC(op_08e8_0), 2280 }, /* BSET */ + { CPUFUNC(op_08f0_0), 2288 }, /* BSET */ + { CPUFUNC(op_08f8_0), 2296 }, /* BSET */ + { CPUFUNC(op_08f9_0), 2297 }, /* BSET */ + { CPUFUNC(op_0a00_0), 2560 }, /* EOR */ + { CPUFUNC(op_0a10_0), 2576 }, /* EOR */ + { CPUFUNC(op_0a18_0), 2584 }, /* EOR */ + { CPUFUNC(op_0a20_0), 2592 }, /* EOR */ + { CPUFUNC(op_0a28_0), 2600 }, /* EOR */ + { CPUFUNC(op_0a30_0), 2608 }, /* EOR */ + { CPUFUNC(op_0a38_0), 2616 }, /* EOR */ + { CPUFUNC(op_0a39_0), 2617 }, /* EOR */ + { CPUFUNC(op_0a3c_0), 2620 }, /* EORSR */ + { CPUFUNC(op_0a40_0), 2624 }, /* EOR */ + { CPUFUNC(op_0a50_0), 2640 }, /* EOR */ + { CPUFUNC(op_0a58_0), 2648 }, /* EOR */ + { CPUFUNC(op_0a60_0), 2656 }, /* EOR */ + { CPUFUNC(op_0a68_0), 2664 }, /* EOR */ + { CPUFUNC(op_0a70_0), 2672 }, /* EOR */ + { CPUFUNC(op_0a78_0), 2680 }, /* EOR */ + { CPUFUNC(op_0a79_0), 2681 }, /* EOR */ + { CPUFUNC(op_0a7c_0), 2684 }, /* EORSR */ + { CPUFUNC(op_0a80_0), 2688 }, /* EOR */ + { CPUFUNC(op_0a90_0), 2704 }, /* EOR */ + { CPUFUNC(op_0a98_0), 2712 }, /* EOR */ + { CPUFUNC(op_0aa0_0), 2720 }, /* EOR */ + { CPUFUNC(op_0aa8_0), 2728 }, /* EOR */ + { CPUFUNC(op_0ab0_0), 2736 }, /* EOR */ + { CPUFUNC(op_0ab8_0), 2744 }, /* EOR */ + { CPUFUNC(op_0ab9_0), 2745 }, /* EOR */ + { CPUFUNC(op_0ad0_0), 2768 }, /* CAS */ + { CPUFUNC(op_0ad8_0), 2776 }, /* CAS */ + { CPUFUNC(op_0ae0_0), 2784 }, /* CAS */ + { CPUFUNC(op_0ae8_0), 2792 }, /* CAS */ + { CPUFUNC(op_0af0_0), 2800 }, /* CAS */ + { CPUFUNC(op_0af8_0), 2808 }, /* CAS */ + { CPUFUNC(op_0af9_0), 2809 }, /* CAS */ + { CPUFUNC(op_0c00_0), 3072 }, /* CMP */ + { CPUFUNC(op_0c10_0), 3088 }, /* CMP */ + { CPUFUNC(op_0c18_0), 3096 }, /* CMP */ + { CPUFUNC(op_0c20_0), 3104 }, /* CMP */ + { CPUFUNC(op_0c28_0), 3112 }, /* CMP */ + { CPUFUNC(op_0c30_0), 3120 }, /* CMP */ + { CPUFUNC(op_0c38_0), 3128 }, /* CMP */ + { CPUFUNC(op_0c39_0), 3129 }, /* CMP */ + { CPUFUNC(op_0c3a_0), 3130 }, /* CMP */ + { CPUFUNC(op_0c3b_0), 3131 }, /* CMP */ + { CPUFUNC(op_0c40_0), 3136 }, /* CMP */ + { CPUFUNC(op_0c50_0), 3152 }, /* CMP */ + { CPUFUNC(op_0c58_0), 3160 }, /* CMP */ + { CPUFUNC(op_0c60_0), 3168 }, /* CMP */ + { CPUFUNC(op_0c68_0), 3176 }, /* CMP */ + { CPUFUNC(op_0c70_0), 3184 }, /* CMP */ + { CPUFUNC(op_0c78_0), 3192 }, /* CMP */ + { CPUFUNC(op_0c79_0), 3193 }, /* CMP */ + { CPUFUNC(op_0c7a_0), 3194 }, /* CMP */ + { CPUFUNC(op_0c7b_0), 3195 }, /* CMP */ + { CPUFUNC(op_0c80_0), 3200 }, /* CMP */ + { CPUFUNC(op_0c90_0), 3216 }, /* CMP */ + { CPUFUNC(op_0c98_0), 3224 }, /* CMP */ + { CPUFUNC(op_0ca0_0), 3232 }, /* CMP */ + { CPUFUNC(op_0ca8_0), 3240 }, /* CMP */ + { CPUFUNC(op_0cb0_0), 3248 }, /* CMP */ + { CPUFUNC(op_0cb8_0), 3256 }, /* CMP */ + { CPUFUNC(op_0cb9_0), 3257 }, /* CMP */ + { CPUFUNC(op_0cba_0), 3258 }, /* CMP */ + { CPUFUNC(op_0cbb_0), 3259 }, /* CMP */ + { CPUFUNC(op_0cd0_0), 3280 }, /* CAS */ + { CPUFUNC(op_0cd8_0), 3288 }, /* CAS */ + { CPUFUNC(op_0ce0_0), 3296 }, /* CAS */ + { CPUFUNC(op_0ce8_0), 3304 }, /* CAS */ + { CPUFUNC(op_0cf0_0), 3312 }, /* CAS */ + { CPUFUNC(op_0cf8_0), 3320 }, /* CAS */ + { CPUFUNC(op_0cf9_0), 3321 }, /* CAS */ + { CPUFUNC(op_0cfc_0), 3324 }, /* CAS2 */ + { CPUFUNC(op_0e10_0), 3600 }, /* MOVES */ + { CPUFUNC(op_0e18_0), 3608 }, /* MOVES */ + { CPUFUNC(op_0e20_0), 3616 }, /* MOVES */ + { CPUFUNC(op_0e28_0), 3624 }, /* MOVES */ + { CPUFUNC(op_0e30_0), 3632 }, /* MOVES */ + { CPUFUNC(op_0e38_0), 3640 }, /* MOVES */ + { CPUFUNC(op_0e39_0), 3641 }, /* MOVES */ + { CPUFUNC(op_0e50_0), 3664 }, /* MOVES */ + { CPUFUNC(op_0e58_0), 3672 }, /* MOVES */ + { CPUFUNC(op_0e60_0), 3680 }, /* MOVES */ + { CPUFUNC(op_0e68_0), 3688 }, /* MOVES */ + { CPUFUNC(op_0e70_0), 3696 }, /* MOVES */ + { CPUFUNC(op_0e78_0), 3704 }, /* MOVES */ + { CPUFUNC(op_0e79_0), 3705 }, /* MOVES */ + { CPUFUNC(op_0e90_0), 3728 }, /* MOVES */ + { CPUFUNC(op_0e98_0), 3736 }, /* MOVES */ + { CPUFUNC(op_0ea0_0), 3744 }, /* MOVES */ + { CPUFUNC(op_0ea8_0), 3752 }, /* MOVES */ + { CPUFUNC(op_0eb0_0), 3760 }, /* MOVES */ + { CPUFUNC(op_0eb8_0), 3768 }, /* MOVES */ + { CPUFUNC(op_0eb9_0), 3769 }, /* MOVES */ + { CPUFUNC(op_0ed0_0), 3792 }, /* CAS */ + { CPUFUNC(op_0ed8_0), 3800 }, /* CAS */ + { CPUFUNC(op_0ee0_0), 3808 }, /* CAS */ + { CPUFUNC(op_0ee8_0), 3816 }, /* CAS */ + { CPUFUNC(op_0ef0_0), 3824 }, /* CAS */ + { CPUFUNC(op_0ef8_0), 3832 }, /* CAS */ + { CPUFUNC(op_0ef9_0), 3833 }, /* CAS */ + { CPUFUNC(op_0efc_0), 3836 }, /* CAS2 */ + { CPUFUNC(op_1000_0), 4096 }, /* MOVE */ + { CPUFUNC(op_1010_0), 4112 }, /* MOVE */ + { CPUFUNC(op_1018_0), 4120 }, /* MOVE */ + { CPUFUNC(op_1020_0), 4128 }, /* MOVE */ + { CPUFUNC(op_1028_0), 4136 }, /* MOVE */ + { CPUFUNC(op_1030_0), 4144 }, /* MOVE */ + { CPUFUNC(op_1038_0), 4152 }, /* MOVE */ + { CPUFUNC(op_1039_0), 4153 }, /* MOVE */ + { CPUFUNC(op_103a_0), 4154 }, /* MOVE */ + { CPUFUNC(op_103b_0), 4155 }, /* MOVE */ + { CPUFUNC(op_103c_0), 4156 }, /* MOVE */ + { CPUFUNC(op_1080_0), 4224 }, /* MOVE */ + { CPUFUNC(op_1090_0), 4240 }, /* MOVE */ + { CPUFUNC(op_1098_0), 4248 }, /* MOVE */ + { CPUFUNC(op_10a0_0), 4256 }, /* MOVE */ + { CPUFUNC(op_10a8_0), 4264 }, /* MOVE */ + { CPUFUNC(op_10b0_0), 4272 }, /* MOVE */ + { CPUFUNC(op_10b8_0), 4280 }, /* MOVE */ + { CPUFUNC(op_10b9_0), 4281 }, /* MOVE */ + { CPUFUNC(op_10ba_0), 4282 }, /* MOVE */ + { CPUFUNC(op_10bb_0), 4283 }, /* MOVE */ + { CPUFUNC(op_10bc_0), 4284 }, /* MOVE */ + { CPUFUNC(op_10c0_0), 4288 }, /* MOVE */ + { CPUFUNC(op_10d0_0), 4304 }, /* MOVE */ + { CPUFUNC(op_10d8_0), 4312 }, /* MOVE */ + { CPUFUNC(op_10e0_0), 4320 }, /* MOVE */ + { CPUFUNC(op_10e8_0), 4328 }, /* MOVE */ + { CPUFUNC(op_10f0_0), 4336 }, /* MOVE */ + { CPUFUNC(op_10f8_0), 4344 }, /* MOVE */ + { CPUFUNC(op_10f9_0), 4345 }, /* MOVE */ + { CPUFUNC(op_10fa_0), 4346 }, /* MOVE */ + { CPUFUNC(op_10fb_0), 4347 }, /* MOVE */ + { CPUFUNC(op_10fc_0), 4348 }, /* MOVE */ + { CPUFUNC(op_1100_0), 4352 }, /* MOVE */ + { CPUFUNC(op_1110_0), 4368 }, /* MOVE */ + { CPUFUNC(op_1118_0), 4376 }, /* MOVE */ + { CPUFUNC(op_1120_0), 4384 }, /* MOVE */ + { CPUFUNC(op_1128_0), 4392 }, /* MOVE */ + { CPUFUNC(op_1130_0), 4400 }, /* MOVE */ + { CPUFUNC(op_1138_0), 4408 }, /* MOVE */ + { CPUFUNC(op_1139_0), 4409 }, /* MOVE */ + { CPUFUNC(op_113a_0), 4410 }, /* MOVE */ + { CPUFUNC(op_113b_0), 4411 }, /* MOVE */ + { CPUFUNC(op_113c_0), 4412 }, /* MOVE */ + { CPUFUNC(op_1140_0), 4416 }, /* MOVE */ + { CPUFUNC(op_1150_0), 4432 }, /* MOVE */ + { CPUFUNC(op_1158_0), 4440 }, /* MOVE */ + { CPUFUNC(op_1160_0), 4448 }, /* MOVE */ + { CPUFUNC(op_1168_0), 4456 }, /* MOVE */ + { CPUFUNC(op_1170_0), 4464 }, /* MOVE */ + { CPUFUNC(op_1178_0), 4472 }, /* MOVE */ + { CPUFUNC(op_1179_0), 4473 }, /* MOVE */ + { CPUFUNC(op_117a_0), 4474 }, /* MOVE */ + { CPUFUNC(op_117b_0), 4475 }, /* MOVE */ + { CPUFUNC(op_117c_0), 4476 }, /* MOVE */ + { CPUFUNC(op_1180_0), 4480 }, /* MOVE */ + { CPUFUNC(op_1190_0), 4496 }, /* MOVE */ + { CPUFUNC(op_1198_0), 4504 }, /* MOVE */ + { CPUFUNC(op_11a0_0), 4512 }, /* MOVE */ + { CPUFUNC(op_11a8_0), 4520 }, /* MOVE */ + { CPUFUNC(op_11b0_0), 4528 }, /* MOVE */ + { CPUFUNC(op_11b8_0), 4536 }, /* MOVE */ + { CPUFUNC(op_11b9_0), 4537 }, /* MOVE */ + { CPUFUNC(op_11ba_0), 4538 }, /* MOVE */ + { CPUFUNC(op_11bb_0), 4539 }, /* MOVE */ + { CPUFUNC(op_11bc_0), 4540 }, /* MOVE */ + { CPUFUNC(op_11c0_0), 4544 }, /* MOVE */ + { CPUFUNC(op_11d0_0), 4560 }, /* MOVE */ + { CPUFUNC(op_11d8_0), 4568 }, /* MOVE */ + { CPUFUNC(op_11e0_0), 4576 }, /* MOVE */ + { CPUFUNC(op_11e8_0), 4584 }, /* MOVE */ + { CPUFUNC(op_11f0_0), 4592 }, /* MOVE */ + { CPUFUNC(op_11f8_0), 4600 }, /* MOVE */ + { CPUFUNC(op_11f9_0), 4601 }, /* MOVE */ + { CPUFUNC(op_11fa_0), 4602 }, /* MOVE */ + { CPUFUNC(op_11fb_0), 4603 }, /* MOVE */ + { CPUFUNC(op_11fc_0), 4604 }, /* MOVE */ + { CPUFUNC(op_13c0_0), 5056 }, /* MOVE */ + { CPUFUNC(op_13d0_0), 5072 }, /* MOVE */ + { CPUFUNC(op_13d8_0), 5080 }, /* MOVE */ + { CPUFUNC(op_13e0_0), 5088 }, /* MOVE */ + { CPUFUNC(op_13e8_0), 5096 }, /* MOVE */ + { CPUFUNC(op_13f0_0), 5104 }, /* MOVE */ + { CPUFUNC(op_13f8_0), 5112 }, /* MOVE */ + { CPUFUNC(op_13f9_0), 5113 }, /* MOVE */ + { CPUFUNC(op_13fa_0), 5114 }, /* MOVE */ + { CPUFUNC(op_13fb_0), 5115 }, /* MOVE */ + { CPUFUNC(op_13fc_0), 5116 }, /* MOVE */ + { CPUFUNC(op_2000_0), 8192 }, /* MOVE */ + { CPUFUNC(op_2008_0), 8200 }, /* MOVE */ + { CPUFUNC(op_2010_0), 8208 }, /* MOVE */ + { CPUFUNC(op_2018_0), 8216 }, /* MOVE */ + { CPUFUNC(op_2020_0), 8224 }, /* MOVE */ + { CPUFUNC(op_2028_0), 8232 }, /* MOVE */ + { CPUFUNC(op_2030_0), 8240 }, /* MOVE */ + { CPUFUNC(op_2038_0), 8248 }, /* MOVE */ + { CPUFUNC(op_2039_0), 8249 }, /* MOVE */ + { CPUFUNC(op_203a_0), 8250 }, /* MOVE */ + { CPUFUNC(op_203b_0), 8251 }, /* MOVE */ + { CPUFUNC(op_203c_0), 8252 }, /* MOVE */ + { CPUFUNC(op_2040_0), 8256 }, /* MOVEA */ + { CPUFUNC(op_2048_0), 8264 }, /* MOVEA */ + { CPUFUNC(op_2050_0), 8272 }, /* MOVEA */ + { CPUFUNC(op_2058_0), 8280 }, /* MOVEA */ + { CPUFUNC(op_2060_0), 8288 }, /* MOVEA */ + { CPUFUNC(op_2068_0), 8296 }, /* MOVEA */ + { CPUFUNC(op_2070_0), 8304 }, /* MOVEA */ + { CPUFUNC(op_2078_0), 8312 }, /* MOVEA */ + { CPUFUNC(op_2079_0), 8313 }, /* MOVEA */ + { CPUFUNC(op_207a_0), 8314 }, /* MOVEA */ + { CPUFUNC(op_207b_0), 8315 }, /* MOVEA */ + { CPUFUNC(op_207c_0), 8316 }, /* MOVEA */ + { CPUFUNC(op_2080_0), 8320 }, /* MOVE */ + { CPUFUNC(op_2088_0), 8328 }, /* MOVE */ + { CPUFUNC(op_2090_0), 8336 }, /* MOVE */ + { CPUFUNC(op_2098_0), 8344 }, /* MOVE */ + { CPUFUNC(op_20a0_0), 8352 }, /* MOVE */ + { CPUFUNC(op_20a8_0), 8360 }, /* MOVE */ + { CPUFUNC(op_20b0_0), 8368 }, /* MOVE */ + { CPUFUNC(op_20b8_0), 8376 }, /* MOVE */ + { CPUFUNC(op_20b9_0), 8377 }, /* MOVE */ + { CPUFUNC(op_20ba_0), 8378 }, /* MOVE */ + { CPUFUNC(op_20bb_0), 8379 }, /* MOVE */ + { CPUFUNC(op_20bc_0), 8380 }, /* MOVE */ + { CPUFUNC(op_20c0_0), 8384 }, /* MOVE */ + { CPUFUNC(op_20c8_0), 8392 }, /* MOVE */ + { CPUFUNC(op_20d0_0), 8400 }, /* MOVE */ + { CPUFUNC(op_20d8_0), 8408 }, /* MOVE */ + { CPUFUNC(op_20e0_0), 8416 }, /* MOVE */ + { CPUFUNC(op_20e8_0), 8424 }, /* MOVE */ + { CPUFUNC(op_20f0_0), 8432 }, /* MOVE */ + { CPUFUNC(op_20f8_0), 8440 }, /* MOVE */ + { CPUFUNC(op_20f9_0), 8441 }, /* MOVE */ + { CPUFUNC(op_20fa_0), 8442 }, /* MOVE */ + { CPUFUNC(op_20fb_0), 8443 }, /* MOVE */ + { CPUFUNC(op_20fc_0), 8444 }, /* MOVE */ + { CPUFUNC(op_2100_0), 8448 }, /* MOVE */ + { CPUFUNC(op_2108_0), 8456 }, /* MOVE */ + { CPUFUNC(op_2110_0), 8464 }, /* MOVE */ + { CPUFUNC(op_2118_0), 8472 }, /* MOVE */ + { CPUFUNC(op_2120_0), 8480 }, /* MOVE */ + { CPUFUNC(op_2128_0), 8488 }, /* MOVE */ + { CPUFUNC(op_2130_0), 8496 }, /* MOVE */ + { CPUFUNC(op_2138_0), 8504 }, /* MOVE */ + { CPUFUNC(op_2139_0), 8505 }, /* MOVE */ + { CPUFUNC(op_213a_0), 8506 }, /* MOVE */ + { CPUFUNC(op_213b_0), 8507 }, /* MOVE */ + { CPUFUNC(op_213c_0), 8508 }, /* MOVE */ + { CPUFUNC(op_2140_0), 8512 }, /* MOVE */ + { CPUFUNC(op_2148_0), 8520 }, /* MOVE */ + { CPUFUNC(op_2150_0), 8528 }, /* MOVE */ + { CPUFUNC(op_2158_0), 8536 }, /* MOVE */ + { CPUFUNC(op_2160_0), 8544 }, /* MOVE */ + { CPUFUNC(op_2168_0), 8552 }, /* MOVE */ + { CPUFUNC(op_2170_0), 8560 }, /* MOVE */ + { CPUFUNC(op_2178_0), 8568 }, /* MOVE */ + { CPUFUNC(op_2179_0), 8569 }, /* MOVE */ + { CPUFUNC(op_217a_0), 8570 }, /* MOVE */ + { CPUFUNC(op_217b_0), 8571 }, /* MOVE */ + { CPUFUNC(op_217c_0), 8572 }, /* MOVE */ + { CPUFUNC(op_2180_0), 8576 }, /* MOVE */ + { CPUFUNC(op_2188_0), 8584 }, /* MOVE */ + { CPUFUNC(op_2190_0), 8592 }, /* MOVE */ + { CPUFUNC(op_2198_0), 8600 }, /* MOVE */ + { CPUFUNC(op_21a0_0), 8608 }, /* MOVE */ + { CPUFUNC(op_21a8_0), 8616 }, /* MOVE */ + { CPUFUNC(op_21b0_0), 8624 }, /* MOVE */ + { CPUFUNC(op_21b8_0), 8632 }, /* MOVE */ + { CPUFUNC(op_21b9_0), 8633 }, /* MOVE */ + { CPUFUNC(op_21ba_0), 8634 }, /* MOVE */ + { CPUFUNC(op_21bb_0), 8635 }, /* MOVE */ + { CPUFUNC(op_21bc_0), 8636 }, /* MOVE */ + { CPUFUNC(op_21c0_0), 8640 }, /* MOVE */ + { CPUFUNC(op_21c8_0), 8648 }, /* MOVE */ + { CPUFUNC(op_21d0_0), 8656 }, /* MOVE */ + { CPUFUNC(op_21d8_0), 8664 }, /* MOVE */ + { CPUFUNC(op_21e0_0), 8672 }, /* MOVE */ + { CPUFUNC(op_21e8_0), 8680 }, /* MOVE */ + { CPUFUNC(op_21f0_0), 8688 }, /* MOVE */ + { CPUFUNC(op_21f8_0), 8696 }, /* MOVE */ + { CPUFUNC(op_21f9_0), 8697 }, /* MOVE */ + { CPUFUNC(op_21fa_0), 8698 }, /* MOVE */ + { CPUFUNC(op_21fb_0), 8699 }, /* MOVE */ + { CPUFUNC(op_21fc_0), 8700 }, /* MOVE */ + { CPUFUNC(op_23c0_0), 9152 }, /* MOVE */ + { CPUFUNC(op_23c8_0), 9160 }, /* MOVE */ + { CPUFUNC(op_23d0_0), 9168 }, /* MOVE */ + { CPUFUNC(op_23d8_0), 9176 }, /* MOVE */ + { CPUFUNC(op_23e0_0), 9184 }, /* MOVE */ + { CPUFUNC(op_23e8_0), 9192 }, /* MOVE */ + { CPUFUNC(op_23f0_0), 9200 }, /* MOVE */ + { CPUFUNC(op_23f8_0), 9208 }, /* MOVE */ + { CPUFUNC(op_23f9_0), 9209 }, /* MOVE */ + { CPUFUNC(op_23fa_0), 9210 }, /* MOVE */ + { CPUFUNC(op_23fb_0), 9211 }, /* MOVE */ + { CPUFUNC(op_23fc_0), 9212 }, /* MOVE */ + { CPUFUNC(op_3000_0), 12288 }, /* MOVE */ + { CPUFUNC(op_3008_0), 12296 }, /* MOVE */ + { CPUFUNC(op_3010_0), 12304 }, /* MOVE */ + { CPUFUNC(op_3018_0), 12312 }, /* MOVE */ + { CPUFUNC(op_3020_0), 12320 }, /* MOVE */ + { CPUFUNC(op_3028_0), 12328 }, /* MOVE */ + { CPUFUNC(op_3030_0), 12336 }, /* MOVE */ + { CPUFUNC(op_3038_0), 12344 }, /* MOVE */ + { CPUFUNC(op_3039_0), 12345 }, /* MOVE */ + { CPUFUNC(op_303a_0), 12346 }, /* MOVE */ + { CPUFUNC(op_303b_0), 12347 }, /* MOVE */ + { CPUFUNC(op_303c_0), 12348 }, /* MOVE */ + { CPUFUNC(op_3040_0), 12352 }, /* MOVEA */ + { CPUFUNC(op_3048_0), 12360 }, /* MOVEA */ + { CPUFUNC(op_3050_0), 12368 }, /* MOVEA */ + { CPUFUNC(op_3058_0), 12376 }, /* MOVEA */ + { CPUFUNC(op_3060_0), 12384 }, /* MOVEA */ + { CPUFUNC(op_3068_0), 12392 }, /* MOVEA */ + { CPUFUNC(op_3070_0), 12400 }, /* MOVEA */ + { CPUFUNC(op_3078_0), 12408 }, /* MOVEA */ + { CPUFUNC(op_3079_0), 12409 }, /* MOVEA */ + { CPUFUNC(op_307a_0), 12410 }, /* MOVEA */ + { CPUFUNC(op_307b_0), 12411 }, /* MOVEA */ + { CPUFUNC(op_307c_0), 12412 }, /* MOVEA */ + { CPUFUNC(op_3080_0), 12416 }, /* MOVE */ + { CPUFUNC(op_3088_0), 12424 }, /* MOVE */ + { CPUFUNC(op_3090_0), 12432 }, /* MOVE */ + { CPUFUNC(op_3098_0), 12440 }, /* MOVE */ + { CPUFUNC(op_30a0_0), 12448 }, /* MOVE */ + { CPUFUNC(op_30a8_0), 12456 }, /* MOVE */ + { CPUFUNC(op_30b0_0), 12464 }, /* MOVE */ + { CPUFUNC(op_30b8_0), 12472 }, /* MOVE */ + { CPUFUNC(op_30b9_0), 12473 }, /* MOVE */ + { CPUFUNC(op_30ba_0), 12474 }, /* MOVE */ + { CPUFUNC(op_30bb_0), 12475 }, /* MOVE */ + { CPUFUNC(op_30bc_0), 12476 }, /* MOVE */ + { CPUFUNC(op_30c0_0), 12480 }, /* MOVE */ + { CPUFUNC(op_30c8_0), 12488 }, /* MOVE */ + { CPUFUNC(op_30d0_0), 12496 }, /* MOVE */ + { CPUFUNC(op_30d8_0), 12504 }, /* MOVE */ + { CPUFUNC(op_30e0_0), 12512 }, /* MOVE */ + { CPUFUNC(op_30e8_0), 12520 }, /* MOVE */ + { CPUFUNC(op_30f0_0), 12528 }, /* MOVE */ + { CPUFUNC(op_30f8_0), 12536 }, /* MOVE */ + { CPUFUNC(op_30f9_0), 12537 }, /* MOVE */ + { CPUFUNC(op_30fa_0), 12538 }, /* MOVE */ + { CPUFUNC(op_30fb_0), 12539 }, /* MOVE */ + { CPUFUNC(op_30fc_0), 12540 }, /* MOVE */ + { CPUFUNC(op_3100_0), 12544 }, /* MOVE */ + { CPUFUNC(op_3108_0), 12552 }, /* MOVE */ + { CPUFUNC(op_3110_0), 12560 }, /* MOVE */ + { CPUFUNC(op_3118_0), 12568 }, /* MOVE */ + { CPUFUNC(op_3120_0), 12576 }, /* MOVE */ + { CPUFUNC(op_3128_0), 12584 }, /* MOVE */ + { CPUFUNC(op_3130_0), 12592 }, /* MOVE */ + { CPUFUNC(op_3138_0), 12600 }, /* MOVE */ + { CPUFUNC(op_3139_0), 12601 }, /* MOVE */ + { CPUFUNC(op_313a_0), 12602 }, /* MOVE */ + { CPUFUNC(op_313b_0), 12603 }, /* MOVE */ + { CPUFUNC(op_313c_0), 12604 }, /* MOVE */ + { CPUFUNC(op_3140_0), 12608 }, /* MOVE */ + { CPUFUNC(op_3148_0), 12616 }, /* MOVE */ + { CPUFUNC(op_3150_0), 12624 }, /* MOVE */ + { CPUFUNC(op_3158_0), 12632 }, /* MOVE */ + { CPUFUNC(op_3160_0), 12640 }, /* MOVE */ + { CPUFUNC(op_3168_0), 12648 }, /* MOVE */ + { CPUFUNC(op_3170_0), 12656 }, /* MOVE */ + { CPUFUNC(op_3178_0), 12664 }, /* MOVE */ + { CPUFUNC(op_3179_0), 12665 }, /* MOVE */ + { CPUFUNC(op_317a_0), 12666 }, /* MOVE */ + { CPUFUNC(op_317b_0), 12667 }, /* MOVE */ + { CPUFUNC(op_317c_0), 12668 }, /* MOVE */ + { CPUFUNC(op_3180_0), 12672 }, /* MOVE */ + { CPUFUNC(op_3188_0), 12680 }, /* MOVE */ + { CPUFUNC(op_3190_0), 12688 }, /* MOVE */ + { CPUFUNC(op_3198_0), 12696 }, /* MOVE */ + { CPUFUNC(op_31a0_0), 12704 }, /* MOVE */ + { CPUFUNC(op_31a8_0), 12712 }, /* MOVE */ + { CPUFUNC(op_31b0_0), 12720 }, /* MOVE */ + { CPUFUNC(op_31b8_0), 12728 }, /* MOVE */ + { CPUFUNC(op_31b9_0), 12729 }, /* MOVE */ + { CPUFUNC(op_31ba_0), 12730 }, /* MOVE */ + { CPUFUNC(op_31bb_0), 12731 }, /* MOVE */ + { CPUFUNC(op_31bc_0), 12732 }, /* MOVE */ + { CPUFUNC(op_31c0_0), 12736 }, /* MOVE */ + { CPUFUNC(op_31c8_0), 12744 }, /* MOVE */ + { CPUFUNC(op_31d0_0), 12752 }, /* MOVE */ + { CPUFUNC(op_31d8_0), 12760 }, /* MOVE */ + { CPUFUNC(op_31e0_0), 12768 }, /* MOVE */ + { CPUFUNC(op_31e8_0), 12776 }, /* MOVE */ + { CPUFUNC(op_31f0_0), 12784 }, /* MOVE */ + { CPUFUNC(op_31f8_0), 12792 }, /* MOVE */ + { CPUFUNC(op_31f9_0), 12793 }, /* MOVE */ + { CPUFUNC(op_31fa_0), 12794 }, /* MOVE */ + { CPUFUNC(op_31fb_0), 12795 }, /* MOVE */ + { CPUFUNC(op_31fc_0), 12796 }, /* MOVE */ + { CPUFUNC(op_33c0_0), 13248 }, /* MOVE */ + { CPUFUNC(op_33c8_0), 13256 }, /* MOVE */ + { CPUFUNC(op_33d0_0), 13264 }, /* MOVE */ + { CPUFUNC(op_33d8_0), 13272 }, /* MOVE */ + { CPUFUNC(op_33e0_0), 13280 }, /* MOVE */ + { CPUFUNC(op_33e8_0), 13288 }, /* MOVE */ + { CPUFUNC(op_33f0_0), 13296 }, /* MOVE */ + { CPUFUNC(op_33f8_0), 13304 }, /* MOVE */ + { CPUFUNC(op_33f9_0), 13305 }, /* MOVE */ + { CPUFUNC(op_33fa_0), 13306 }, /* MOVE */ + { CPUFUNC(op_33fb_0), 13307 }, /* MOVE */ + { CPUFUNC(op_33fc_0), 13308 }, /* MOVE */ + { CPUFUNC(op_4000_0), 16384 }, /* NEGX */ + { CPUFUNC(op_4010_0), 16400 }, /* NEGX */ + { CPUFUNC(op_4018_0), 16408 }, /* NEGX */ + { CPUFUNC(op_4020_0), 16416 }, /* NEGX */ + { CPUFUNC(op_4028_0), 16424 }, /* NEGX */ + { CPUFUNC(op_4030_0), 16432 }, /* NEGX */ + { CPUFUNC(op_4038_0), 16440 }, /* NEGX */ + { CPUFUNC(op_4039_0), 16441 }, /* NEGX */ + { CPUFUNC(op_4040_0), 16448 }, /* NEGX */ + { CPUFUNC(op_4050_0), 16464 }, /* NEGX */ + { CPUFUNC(op_4058_0), 16472 }, /* NEGX */ + { CPUFUNC(op_4060_0), 16480 }, /* NEGX */ + { CPUFUNC(op_4068_0), 16488 }, /* NEGX */ + { CPUFUNC(op_4070_0), 16496 }, /* NEGX */ + { CPUFUNC(op_4078_0), 16504 }, /* NEGX */ + { CPUFUNC(op_4079_0), 16505 }, /* NEGX */ + { CPUFUNC(op_4080_0), 16512 }, /* NEGX */ + { CPUFUNC(op_4090_0), 16528 }, /* NEGX */ + { CPUFUNC(op_4098_0), 16536 }, /* NEGX */ + { CPUFUNC(op_40a0_0), 16544 }, /* NEGX */ + { CPUFUNC(op_40a8_0), 16552 }, /* NEGX */ + { CPUFUNC(op_40b0_0), 16560 }, /* NEGX */ + { CPUFUNC(op_40b8_0), 16568 }, /* NEGX */ + { CPUFUNC(op_40b9_0), 16569 }, /* NEGX */ + { CPUFUNC(op_40c0_0), 16576 }, /* MVSR2 */ + { CPUFUNC(op_40d0_0), 16592 }, /* MVSR2 */ + { CPUFUNC(op_40d8_0), 16600 }, /* MVSR2 */ + { CPUFUNC(op_40e0_0), 16608 }, /* MVSR2 */ + { CPUFUNC(op_40e8_0), 16616 }, /* MVSR2 */ + { CPUFUNC(op_40f0_0), 16624 }, /* MVSR2 */ + { CPUFUNC(op_40f8_0), 16632 }, /* MVSR2 */ + { CPUFUNC(op_40f9_0), 16633 }, /* MVSR2 */ + { CPUFUNC(op_4100_0), 16640 }, /* CHK */ + { CPUFUNC(op_4110_0), 16656 }, /* CHK */ + { CPUFUNC(op_4118_0), 16664 }, /* CHK */ + { CPUFUNC(op_4120_0), 16672 }, /* CHK */ + { CPUFUNC(op_4128_0), 16680 }, /* CHK */ + { CPUFUNC(op_4130_0), 16688 }, /* CHK */ + { CPUFUNC(op_4138_0), 16696 }, /* CHK */ + { CPUFUNC(op_4139_0), 16697 }, /* CHK */ + { CPUFUNC(op_413a_0), 16698 }, /* CHK */ + { CPUFUNC(op_413b_0), 16699 }, /* CHK */ + { CPUFUNC(op_413c_0), 16700 }, /* CHK */ + { CPUFUNC(op_4180_0), 16768 }, /* CHK */ + { CPUFUNC(op_4190_0), 16784 }, /* CHK */ + { CPUFUNC(op_4198_0), 16792 }, /* CHK */ + { CPUFUNC(op_41a0_0), 16800 }, /* CHK */ + { CPUFUNC(op_41a8_0), 16808 }, /* CHK */ + { CPUFUNC(op_41b0_0), 16816 }, /* CHK */ + { CPUFUNC(op_41b8_0), 16824 }, /* CHK */ + { CPUFUNC(op_41b9_0), 16825 }, /* CHK */ + { CPUFUNC(op_41ba_0), 16826 }, /* CHK */ + { CPUFUNC(op_41bb_0), 16827 }, /* CHK */ + { CPUFUNC(op_41bc_0), 16828 }, /* CHK */ + { CPUFUNC(op_41d0_0), 16848 }, /* LEA */ + { CPUFUNC(op_41e8_0), 16872 }, /* LEA */ + { CPUFUNC(op_41f0_0), 16880 }, /* LEA */ + { CPUFUNC(op_41f8_0), 16888 }, /* LEA */ + { CPUFUNC(op_41f9_0), 16889 }, /* LEA */ + { CPUFUNC(op_41fa_0), 16890 }, /* LEA */ + { CPUFUNC(op_41fb_0), 16891 }, /* LEA */ + { CPUFUNC(op_4200_0), 16896 }, /* CLR */ + { CPUFUNC(op_4210_0), 16912 }, /* CLR */ + { CPUFUNC(op_4218_0), 16920 }, /* CLR */ + { CPUFUNC(op_4220_0), 16928 }, /* CLR */ + { CPUFUNC(op_4228_0), 16936 }, /* CLR */ + { CPUFUNC(op_4230_0), 16944 }, /* CLR */ + { CPUFUNC(op_4238_0), 16952 }, /* CLR */ + { CPUFUNC(op_4239_0), 16953 }, /* CLR */ + { CPUFUNC(op_4240_0), 16960 }, /* CLR */ + { CPUFUNC(op_4250_0), 16976 }, /* CLR */ + { CPUFUNC(op_4258_0), 16984 }, /* CLR */ + { CPUFUNC(op_4260_0), 16992 }, /* CLR */ + { CPUFUNC(op_4268_0), 17000 }, /* CLR */ + { CPUFUNC(op_4270_0), 17008 }, /* CLR */ + { CPUFUNC(op_4278_0), 17016 }, /* CLR */ + { CPUFUNC(op_4279_0), 17017 }, /* CLR */ + { CPUFUNC(op_4280_0), 17024 }, /* CLR */ + { CPUFUNC(op_4290_0), 17040 }, /* CLR */ + { CPUFUNC(op_4298_0), 17048 }, /* CLR */ + { CPUFUNC(op_42a0_0), 17056 }, /* CLR */ + { CPUFUNC(op_42a8_0), 17064 }, /* CLR */ + { CPUFUNC(op_42b0_0), 17072 }, /* CLR */ + { CPUFUNC(op_42b8_0), 17080 }, /* CLR */ + { CPUFUNC(op_42b9_0), 17081 }, /* CLR */ + { CPUFUNC(op_42c0_0), 17088 }, /* MVSR2 */ + { CPUFUNC(op_42d0_0), 17104 }, /* MVSR2 */ + { CPUFUNC(op_42d8_0), 17112 }, /* MVSR2 */ + { CPUFUNC(op_42e0_0), 17120 }, /* MVSR2 */ + { CPUFUNC(op_42e8_0), 17128 }, /* MVSR2 */ + { CPUFUNC(op_42f0_0), 17136 }, /* MVSR2 */ + { CPUFUNC(op_42f8_0), 17144 }, /* MVSR2 */ + { CPUFUNC(op_42f9_0), 17145 }, /* MVSR2 */ + { CPUFUNC(op_4400_0), 17408 }, /* NEG */ + { CPUFUNC(op_4410_0), 17424 }, /* NEG */ + { CPUFUNC(op_4418_0), 17432 }, /* NEG */ + { CPUFUNC(op_4420_0), 17440 }, /* NEG */ + { CPUFUNC(op_4428_0), 17448 }, /* NEG */ + { CPUFUNC(op_4430_0), 17456 }, /* NEG */ + { CPUFUNC(op_4438_0), 17464 }, /* NEG */ + { CPUFUNC(op_4439_0), 17465 }, /* NEG */ + { CPUFUNC(op_4440_0), 17472 }, /* NEG */ + { CPUFUNC(op_4450_0), 17488 }, /* NEG */ + { CPUFUNC(op_4458_0), 17496 }, /* NEG */ + { CPUFUNC(op_4460_0), 17504 }, /* NEG */ + { CPUFUNC(op_4468_0), 17512 }, /* NEG */ + { CPUFUNC(op_4470_0), 17520 }, /* NEG */ + { CPUFUNC(op_4478_0), 17528 }, /* NEG */ + { CPUFUNC(op_4479_0), 17529 }, /* NEG */ + { CPUFUNC(op_4480_0), 17536 }, /* NEG */ + { CPUFUNC(op_4490_0), 17552 }, /* NEG */ + { CPUFUNC(op_4498_0), 17560 }, /* NEG */ + { CPUFUNC(op_44a0_0), 17568 }, /* NEG */ + { CPUFUNC(op_44a8_0), 17576 }, /* NEG */ + { CPUFUNC(op_44b0_0), 17584 }, /* NEG */ + { CPUFUNC(op_44b8_0), 17592 }, /* NEG */ + { CPUFUNC(op_44b9_0), 17593 }, /* NEG */ + { CPUFUNC(op_44c0_0), 17600 }, /* MV2SR */ + { CPUFUNC(op_44d0_0), 17616 }, /* MV2SR */ + { CPUFUNC(op_44d8_0), 17624 }, /* MV2SR */ + { CPUFUNC(op_44e0_0), 17632 }, /* MV2SR */ + { CPUFUNC(op_44e8_0), 17640 }, /* MV2SR */ + { CPUFUNC(op_44f0_0), 17648 }, /* MV2SR */ + { CPUFUNC(op_44f8_0), 17656 }, /* MV2SR */ + { CPUFUNC(op_44f9_0), 17657 }, /* MV2SR */ + { CPUFUNC(op_44fa_0), 17658 }, /* MV2SR */ + { CPUFUNC(op_44fb_0), 17659 }, /* MV2SR */ + { CPUFUNC(op_44fc_0), 17660 }, /* MV2SR */ + { CPUFUNC(op_4600_0), 17920 }, /* NOT */ + { CPUFUNC(op_4610_0), 17936 }, /* NOT */ + { CPUFUNC(op_4618_0), 17944 }, /* NOT */ + { CPUFUNC(op_4620_0), 17952 }, /* NOT */ + { CPUFUNC(op_4628_0), 17960 }, /* NOT */ + { CPUFUNC(op_4630_0), 17968 }, /* NOT */ + { CPUFUNC(op_4638_0), 17976 }, /* NOT */ + { CPUFUNC(op_4639_0), 17977 }, /* NOT */ + { CPUFUNC(op_4640_0), 17984 }, /* NOT */ + { CPUFUNC(op_4650_0), 18000 }, /* NOT */ + { CPUFUNC(op_4658_0), 18008 }, /* NOT */ + { CPUFUNC(op_4660_0), 18016 }, /* NOT */ + { CPUFUNC(op_4668_0), 18024 }, /* NOT */ + { CPUFUNC(op_4670_0), 18032 }, /* NOT */ + { CPUFUNC(op_4678_0), 18040 }, /* NOT */ + { CPUFUNC(op_4679_0), 18041 }, /* NOT */ + { CPUFUNC(op_4680_0), 18048 }, /* NOT */ + { CPUFUNC(op_4690_0), 18064 }, /* NOT */ + { CPUFUNC(op_4698_0), 18072 }, /* NOT */ + { CPUFUNC(op_46a0_0), 18080 }, /* NOT */ + { CPUFUNC(op_46a8_0), 18088 }, /* NOT */ + { CPUFUNC(op_46b0_0), 18096 }, /* NOT */ + { CPUFUNC(op_46b8_0), 18104 }, /* NOT */ + { CPUFUNC(op_46b9_0), 18105 }, /* NOT */ + { CPUFUNC(op_46c0_0), 18112 }, /* MV2SR */ + { CPUFUNC(op_46d0_0), 18128 }, /* MV2SR */ + { CPUFUNC(op_46d8_0), 18136 }, /* MV2SR */ + { CPUFUNC(op_46e0_0), 18144 }, /* MV2SR */ + { CPUFUNC(op_46e8_0), 18152 }, /* MV2SR */ + { CPUFUNC(op_46f0_0), 18160 }, /* MV2SR */ + { CPUFUNC(op_46f8_0), 18168 }, /* MV2SR */ + { CPUFUNC(op_46f9_0), 18169 }, /* MV2SR */ + { CPUFUNC(op_46fa_0), 18170 }, /* MV2SR */ + { CPUFUNC(op_46fb_0), 18171 }, /* MV2SR */ + { CPUFUNC(op_46fc_0), 18172 }, /* MV2SR */ + { CPUFUNC(op_4800_2), 18432 }, /* NBCD */ + { CPUFUNC(op_4808_0), 18440 }, /* LINK */ + { CPUFUNC(op_4810_2), 18448 }, /* NBCD */ + { CPUFUNC(op_4818_2), 18456 }, /* NBCD */ + { CPUFUNC(op_4820_2), 18464 }, /* NBCD */ + { CPUFUNC(op_4828_2), 18472 }, /* NBCD */ + { CPUFUNC(op_4830_2), 18480 }, /* NBCD */ + { CPUFUNC(op_4838_2), 18488 }, /* NBCD */ + { CPUFUNC(op_4839_2), 18489 }, /* NBCD */ + { CPUFUNC(op_4840_0), 18496 }, /* SWAP */ + { CPUFUNC(op_4848_0), 18504 }, /* BKPT */ + { CPUFUNC(op_4850_0), 18512 }, /* PEA */ + { CPUFUNC(op_4868_0), 18536 }, /* PEA */ + { CPUFUNC(op_4870_0), 18544 }, /* PEA */ + { CPUFUNC(op_4878_0), 18552 }, /* PEA */ + { CPUFUNC(op_4879_0), 18553 }, /* PEA */ + { CPUFUNC(op_487a_0), 18554 }, /* PEA */ + { CPUFUNC(op_487b_0), 18555 }, /* PEA */ + { CPUFUNC(op_4880_0), 18560 }, /* EXT */ + { CPUFUNC(op_4890_0), 18576 }, /* MVMLE */ + { CPUFUNC(op_48a0_0), 18592 }, /* MVMLE */ + { CPUFUNC(op_48a8_0), 18600 }, /* MVMLE */ + { CPUFUNC(op_48b0_0), 18608 }, /* MVMLE */ + { CPUFUNC(op_48b8_0), 18616 }, /* MVMLE */ + { CPUFUNC(op_48b9_0), 18617 }, /* MVMLE */ + { CPUFUNC(op_48c0_0), 18624 }, /* EXT */ + { CPUFUNC(op_48d0_0), 18640 }, /* MVMLE */ + { CPUFUNC(op_48e0_0), 18656 }, /* MVMLE */ + { CPUFUNC(op_48e8_0), 18664 }, /* MVMLE */ + { CPUFUNC(op_48f0_0), 18672 }, /* MVMLE */ + { CPUFUNC(op_48f8_0), 18680 }, /* MVMLE */ + { CPUFUNC(op_48f9_0), 18681 }, /* MVMLE */ + { CPUFUNC(op_49c0_0), 18880 }, /* EXT */ + { CPUFUNC(op_4a00_0), 18944 }, /* TST */ + { CPUFUNC(op_4a10_0), 18960 }, /* TST */ + { CPUFUNC(op_4a18_0), 18968 }, /* TST */ + { CPUFUNC(op_4a20_0), 18976 }, /* TST */ + { CPUFUNC(op_4a28_0), 18984 }, /* TST */ + { CPUFUNC(op_4a30_0), 18992 }, /* TST */ + { CPUFUNC(op_4a38_0), 19000 }, /* TST */ + { CPUFUNC(op_4a39_0), 19001 }, /* TST */ + { CPUFUNC(op_4a3a_0), 19002 }, /* TST */ + { CPUFUNC(op_4a3b_0), 19003 }, /* TST */ + { CPUFUNC(op_4a3c_0), 19004 }, /* TST */ + { CPUFUNC(op_4a40_0), 19008 }, /* TST */ + { CPUFUNC(op_4a48_0), 19016 }, /* TST */ + { CPUFUNC(op_4a50_0), 19024 }, /* TST */ + { CPUFUNC(op_4a58_0), 19032 }, /* TST */ + { CPUFUNC(op_4a60_0), 19040 }, /* TST */ + { CPUFUNC(op_4a68_0), 19048 }, /* TST */ + { CPUFUNC(op_4a70_0), 19056 }, /* TST */ + { CPUFUNC(op_4a78_0), 19064 }, /* TST */ + { CPUFUNC(op_4a79_0), 19065 }, /* TST */ + { CPUFUNC(op_4a7a_0), 19066 }, /* TST */ + { CPUFUNC(op_4a7b_0), 19067 }, /* TST */ + { CPUFUNC(op_4a7c_0), 19068 }, /* TST */ + { CPUFUNC(op_4a80_0), 19072 }, /* TST */ + { CPUFUNC(op_4a88_0), 19080 }, /* TST */ + { CPUFUNC(op_4a90_0), 19088 }, /* TST */ + { CPUFUNC(op_4a98_0), 19096 }, /* TST */ + { CPUFUNC(op_4aa0_0), 19104 }, /* TST */ + { CPUFUNC(op_4aa8_0), 19112 }, /* TST */ + { CPUFUNC(op_4ab0_0), 19120 }, /* TST */ + { CPUFUNC(op_4ab8_0), 19128 }, /* TST */ + { CPUFUNC(op_4ab9_0), 19129 }, /* TST */ + { CPUFUNC(op_4aba_0), 19130 }, /* TST */ + { CPUFUNC(op_4abb_0), 19131 }, /* TST */ + { CPUFUNC(op_4abc_0), 19132 }, /* TST */ + { CPUFUNC(op_4ac0_0), 19136 }, /* TAS */ + { CPUFUNC(op_4ad0_0), 19152 }, /* TAS */ + { CPUFUNC(op_4ad8_0), 19160 }, /* TAS */ + { CPUFUNC(op_4ae0_0), 19168 }, /* TAS */ + { CPUFUNC(op_4ae8_0), 19176 }, /* TAS */ + { CPUFUNC(op_4af0_0), 19184 }, /* TAS */ + { CPUFUNC(op_4af8_0), 19192 }, /* TAS */ + { CPUFUNC(op_4af9_0), 19193 }, /* TAS */ + { CPUFUNC(op_4c00_0), 19456 }, /* MULL */ + { CPUFUNC(op_4c10_0), 19472 }, /* MULL */ + { CPUFUNC(op_4c18_0), 19480 }, /* MULL */ + { CPUFUNC(op_4c20_0), 19488 }, /* MULL */ + { CPUFUNC(op_4c28_0), 19496 }, /* MULL */ + { CPUFUNC(op_4c30_0), 19504 }, /* MULL */ + { CPUFUNC(op_4c38_0), 19512 }, /* MULL */ + { CPUFUNC(op_4c39_0), 19513 }, /* MULL */ + { CPUFUNC(op_4c3a_0), 19514 }, /* MULL */ + { CPUFUNC(op_4c3b_0), 19515 }, /* MULL */ + { CPUFUNC(op_4c3c_0), 19516 }, /* MULL */ + { CPUFUNC(op_4c40_0), 19520 }, /* DIVL */ + { CPUFUNC(op_4c50_0), 19536 }, /* DIVL */ + { CPUFUNC(op_4c58_0), 19544 }, /* DIVL */ + { CPUFUNC(op_4c60_0), 19552 }, /* DIVL */ + { CPUFUNC(op_4c68_0), 19560 }, /* DIVL */ + { CPUFUNC(op_4c70_0), 19568 }, /* DIVL */ + { CPUFUNC(op_4c78_0), 19576 }, /* DIVL */ + { CPUFUNC(op_4c79_0), 19577 }, /* DIVL */ + { CPUFUNC(op_4c7a_0), 19578 }, /* DIVL */ + { CPUFUNC(op_4c7b_0), 19579 }, /* DIVL */ + { CPUFUNC(op_4c7c_0), 19580 }, /* DIVL */ + { CPUFUNC(op_4c90_0), 19600 }, /* MVMEL */ + { CPUFUNC(op_4c98_0), 19608 }, /* MVMEL */ + { CPUFUNC(op_4ca8_0), 19624 }, /* MVMEL */ + { CPUFUNC(op_4cb0_0), 19632 }, /* MVMEL */ + { CPUFUNC(op_4cb8_0), 19640 }, /* MVMEL */ + { CPUFUNC(op_4cb9_0), 19641 }, /* MVMEL */ + { CPUFUNC(op_4cba_0), 19642 }, /* MVMEL */ + { CPUFUNC(op_4cbb_0), 19643 }, /* MVMEL */ + { CPUFUNC(op_4cd0_0), 19664 }, /* MVMEL */ + { CPUFUNC(op_4cd8_0), 19672 }, /* MVMEL */ + { CPUFUNC(op_4ce8_0), 19688 }, /* MVMEL */ + { CPUFUNC(op_4cf0_0), 19696 }, /* MVMEL */ + { CPUFUNC(op_4cf8_0), 19704 }, /* MVMEL */ + { CPUFUNC(op_4cf9_0), 19705 }, /* MVMEL */ + { CPUFUNC(op_4cfa_0), 19706 }, /* MVMEL */ + { CPUFUNC(op_4cfb_0), 19707 }, /* MVMEL */ + { CPUFUNC(op_4e40_0), 20032 }, /* TRAP */ + { CPUFUNC(op_4e50_0), 20048 }, /* LINK */ + { CPUFUNC(op_4e58_0), 20056 }, /* UNLK */ + { CPUFUNC(op_4e60_0), 20064 }, /* MVR2USP */ + { CPUFUNC(op_4e68_0), 20072 }, /* MVUSP2R */ + { CPUFUNC(op_4e70_0), 20080 }, /* RESET */ + { CPUFUNC(op_4e71_0), 20081 }, /* NOP */ + { CPUFUNC(op_4e72_0), 20082 }, /* STOP */ + { CPUFUNC(op_4e73_0), 20083 }, /* RTE */ + { CPUFUNC(op_4e74_0), 20084 }, /* RTD */ + { CPUFUNC(op_4e75_0), 20085 }, /* RTS */ + { CPUFUNC(op_4e76_0), 20086 }, /* TRAPV */ + { CPUFUNC(op_4e77_0), 20087 }, /* RTR */ + { CPUFUNC(op_4e7a_0), 20090 }, /* MOVEC2 */ + { CPUFUNC(op_4e7b_0), 20091 }, /* MOVE2C */ + { CPUFUNC(op_4e90_0), 20112 }, /* JSR */ + { CPUFUNC(op_4ea8_0), 20136 }, /* JSR */ + { CPUFUNC(op_4eb0_0), 20144 }, /* JSR */ + { CPUFUNC(op_4eb8_0), 20152 }, /* JSR */ + { CPUFUNC(op_4eb9_0), 20153 }, /* JSR */ + { CPUFUNC(op_4eba_0), 20154 }, /* JSR */ + { CPUFUNC(op_4ebb_0), 20155 }, /* JSR */ + { CPUFUNC(op_4ed0_0), 20176 }, /* JMP */ + { CPUFUNC(op_4ee8_0), 20200 }, /* JMP */ + { CPUFUNC(op_4ef0_0), 20208 }, /* JMP */ + { CPUFUNC(op_4ef8_0), 20216 }, /* JMP */ + { CPUFUNC(op_4ef9_0), 20217 }, /* JMP */ + { CPUFUNC(op_4efa_0), 20218 }, /* JMP */ + { CPUFUNC(op_4efb_0), 20219 }, /* JMP */ + { CPUFUNC(op_5000_0), 20480 }, /* ADD */ + { CPUFUNC(op_5010_0), 20496 }, /* ADD */ + { CPUFUNC(op_5018_0), 20504 }, /* ADD */ + { CPUFUNC(op_5020_0), 20512 }, /* ADD */ + { CPUFUNC(op_5028_0), 20520 }, /* ADD */ + { CPUFUNC(op_5030_0), 20528 }, /* ADD */ + { CPUFUNC(op_5038_0), 20536 }, /* ADD */ + { CPUFUNC(op_5039_0), 20537 }, /* ADD */ + { CPUFUNC(op_5040_0), 20544 }, /* ADD */ + { CPUFUNC(op_5048_0), 20552 }, /* ADDA */ + { CPUFUNC(op_5050_0), 20560 }, /* ADD */ + { CPUFUNC(op_5058_0), 20568 }, /* ADD */ + { CPUFUNC(op_5060_0), 20576 }, /* ADD */ + { CPUFUNC(op_5068_0), 20584 }, /* ADD */ + { CPUFUNC(op_5070_0), 20592 }, /* ADD */ + { CPUFUNC(op_5078_0), 20600 }, /* ADD */ + { CPUFUNC(op_5079_0), 20601 }, /* ADD */ + { CPUFUNC(op_5080_0), 20608 }, /* ADD */ + { CPUFUNC(op_5088_0), 20616 }, /* ADDA */ + { CPUFUNC(op_5090_0), 20624 }, /* ADD */ + { CPUFUNC(op_5098_0), 20632 }, /* ADD */ + { CPUFUNC(op_50a0_0), 20640 }, /* ADD */ + { CPUFUNC(op_50a8_0), 20648 }, /* ADD */ + { CPUFUNC(op_50b0_0), 20656 }, /* ADD */ + { CPUFUNC(op_50b8_0), 20664 }, /* ADD */ + { CPUFUNC(op_50b9_0), 20665 }, /* ADD */ + { CPUFUNC(op_50c0_0), 20672 }, /* Scc */ + { CPUFUNC(op_50c8_0), 20680 }, /* DBcc */ + { CPUFUNC(op_50d0_0), 20688 }, /* Scc */ + { CPUFUNC(op_50d8_0), 20696 }, /* Scc */ + { CPUFUNC(op_50e0_0), 20704 }, /* Scc */ + { CPUFUNC(op_50e8_0), 20712 }, /* Scc */ + { CPUFUNC(op_50f0_0), 20720 }, /* Scc */ + { CPUFUNC(op_50f8_0), 20728 }, /* Scc */ + { CPUFUNC(op_50f9_0), 20729 }, /* Scc */ + { CPUFUNC(op_50fa_0), 20730 }, /* TRAPcc */ + { CPUFUNC(op_50fb_0), 20731 }, /* TRAPcc */ + { CPUFUNC(op_50fc_0), 20732 }, /* TRAPcc */ + { CPUFUNC(op_5100_0), 20736 }, /* SUB */ + { CPUFUNC(op_5110_0), 20752 }, /* SUB */ + { CPUFUNC(op_5118_0), 20760 }, /* SUB */ + { CPUFUNC(op_5120_0), 20768 }, /* SUB */ + { CPUFUNC(op_5128_0), 20776 }, /* SUB */ + { CPUFUNC(op_5130_0), 20784 }, /* SUB */ + { CPUFUNC(op_5138_0), 20792 }, /* SUB */ + { CPUFUNC(op_5139_0), 20793 }, /* SUB */ + { CPUFUNC(op_5140_0), 20800 }, /* SUB */ + { CPUFUNC(op_5148_0), 20808 }, /* SUBA */ + { CPUFUNC(op_5150_0), 20816 }, /* SUB */ + { CPUFUNC(op_5158_0), 20824 }, /* SUB */ + { CPUFUNC(op_5160_0), 20832 }, /* SUB */ + { CPUFUNC(op_5168_0), 20840 }, /* SUB */ + { CPUFUNC(op_5170_0), 20848 }, /* SUB */ + { CPUFUNC(op_5178_0), 20856 }, /* SUB */ + { CPUFUNC(op_5179_0), 20857 }, /* SUB */ + { CPUFUNC(op_5180_0), 20864 }, /* SUB */ + { CPUFUNC(op_5188_0), 20872 }, /* SUBA */ + { CPUFUNC(op_5190_0), 20880 }, /* SUB */ + { CPUFUNC(op_5198_0), 20888 }, /* SUB */ + { CPUFUNC(op_51a0_0), 20896 }, /* SUB */ + { CPUFUNC(op_51a8_0), 20904 }, /* SUB */ + { CPUFUNC(op_51b0_0), 20912 }, /* SUB */ + { CPUFUNC(op_51b8_0), 20920 }, /* SUB */ + { CPUFUNC(op_51b9_0), 20921 }, /* SUB */ + { CPUFUNC(op_51c0_0), 20928 }, /* Scc */ + { CPUFUNC(op_51c8_0), 20936 }, /* DBcc */ + { CPUFUNC(op_51d0_0), 20944 }, /* Scc */ + { CPUFUNC(op_51d8_0), 20952 }, /* Scc */ + { CPUFUNC(op_51e0_0), 20960 }, /* Scc */ + { CPUFUNC(op_51e8_0), 20968 }, /* Scc */ + { CPUFUNC(op_51f0_0), 20976 }, /* Scc */ + { CPUFUNC(op_51f8_0), 20984 }, /* Scc */ + { CPUFUNC(op_51f9_0), 20985 }, /* Scc */ + { CPUFUNC(op_51fa_0), 20986 }, /* TRAPcc */ + { CPUFUNC(op_51fb_0), 20987 }, /* TRAPcc */ + { CPUFUNC(op_51fc_0), 20988 }, /* TRAPcc */ + { CPUFUNC(op_52c0_0), 21184 }, /* Scc */ + { CPUFUNC(op_52c8_0), 21192 }, /* DBcc */ + { CPUFUNC(op_52d0_0), 21200 }, /* Scc */ + { CPUFUNC(op_52d8_0), 21208 }, /* Scc */ + { CPUFUNC(op_52e0_0), 21216 }, /* Scc */ + { CPUFUNC(op_52e8_0), 21224 }, /* Scc */ + { CPUFUNC(op_52f0_0), 21232 }, /* Scc */ + { CPUFUNC(op_52f8_0), 21240 }, /* Scc */ + { CPUFUNC(op_52f9_0), 21241 }, /* Scc */ + { CPUFUNC(op_52fa_0), 21242 }, /* TRAPcc */ + { CPUFUNC(op_52fb_0), 21243 }, /* TRAPcc */ + { CPUFUNC(op_52fc_0), 21244 }, /* TRAPcc */ + { CPUFUNC(op_53c0_0), 21440 }, /* Scc */ + { CPUFUNC(op_53c8_0), 21448 }, /* DBcc */ + { CPUFUNC(op_53d0_0), 21456 }, /* Scc */ + { CPUFUNC(op_53d8_0), 21464 }, /* Scc */ + { CPUFUNC(op_53e0_0), 21472 }, /* Scc */ + { CPUFUNC(op_53e8_0), 21480 }, /* Scc */ + { CPUFUNC(op_53f0_0), 21488 }, /* Scc */ + { CPUFUNC(op_53f8_0), 21496 }, /* Scc */ + { CPUFUNC(op_53f9_0), 21497 }, /* Scc */ + { CPUFUNC(op_53fa_0), 21498 }, /* TRAPcc */ + { CPUFUNC(op_53fb_0), 21499 }, /* TRAPcc */ + { CPUFUNC(op_53fc_0), 21500 }, /* TRAPcc */ + { CPUFUNC(op_54c0_0), 21696 }, /* Scc */ + { CPUFUNC(op_54c8_0), 21704 }, /* DBcc */ + { CPUFUNC(op_54d0_0), 21712 }, /* Scc */ + { CPUFUNC(op_54d8_0), 21720 }, /* Scc */ + { CPUFUNC(op_54e0_0), 21728 }, /* Scc */ + { CPUFUNC(op_54e8_0), 21736 }, /* Scc */ + { CPUFUNC(op_54f0_0), 21744 }, /* Scc */ + { CPUFUNC(op_54f8_0), 21752 }, /* Scc */ + { CPUFUNC(op_54f9_0), 21753 }, /* Scc */ + { CPUFUNC(op_54fa_0), 21754 }, /* TRAPcc */ + { CPUFUNC(op_54fb_0), 21755 }, /* TRAPcc */ + { CPUFUNC(op_54fc_0), 21756 }, /* TRAPcc */ + { CPUFUNC(op_55c0_0), 21952 }, /* Scc */ + { CPUFUNC(op_55c8_0), 21960 }, /* DBcc */ + { CPUFUNC(op_55d0_0), 21968 }, /* Scc */ + { CPUFUNC(op_55d8_0), 21976 }, /* Scc */ + { CPUFUNC(op_55e0_0), 21984 }, /* Scc */ + { CPUFUNC(op_55e8_0), 21992 }, /* Scc */ + { CPUFUNC(op_55f0_0), 22000 }, /* Scc */ + { CPUFUNC(op_55f8_0), 22008 }, /* Scc */ + { CPUFUNC(op_55f9_0), 22009 }, /* Scc */ + { CPUFUNC(op_55fa_0), 22010 }, /* TRAPcc */ + { CPUFUNC(op_55fb_0), 22011 }, /* TRAPcc */ + { CPUFUNC(op_55fc_0), 22012 }, /* TRAPcc */ + { CPUFUNC(op_56c0_0), 22208 }, /* Scc */ + { CPUFUNC(op_56c8_0), 22216 }, /* DBcc */ + { CPUFUNC(op_56d0_0), 22224 }, /* Scc */ + { CPUFUNC(op_56d8_0), 22232 }, /* Scc */ + { CPUFUNC(op_56e0_0), 22240 }, /* Scc */ + { CPUFUNC(op_56e8_0), 22248 }, /* Scc */ + { CPUFUNC(op_56f0_0), 22256 }, /* Scc */ + { CPUFUNC(op_56f8_0), 22264 }, /* Scc */ + { CPUFUNC(op_56f9_0), 22265 }, /* Scc */ + { CPUFUNC(op_56fa_0), 22266 }, /* TRAPcc */ + { CPUFUNC(op_56fb_0), 22267 }, /* TRAPcc */ + { CPUFUNC(op_56fc_0), 22268 }, /* TRAPcc */ + { CPUFUNC(op_57c0_0), 22464 }, /* Scc */ + { CPUFUNC(op_57c8_0), 22472 }, /* DBcc */ + { CPUFUNC(op_57d0_0), 22480 }, /* Scc */ + { CPUFUNC(op_57d8_0), 22488 }, /* Scc */ + { CPUFUNC(op_57e0_0), 22496 }, /* Scc */ + { CPUFUNC(op_57e8_0), 22504 }, /* Scc */ + { CPUFUNC(op_57f0_0), 22512 }, /* Scc */ + { CPUFUNC(op_57f8_0), 22520 }, /* Scc */ + { CPUFUNC(op_57f9_0), 22521 }, /* Scc */ + { CPUFUNC(op_57fa_0), 22522 }, /* TRAPcc */ + { CPUFUNC(op_57fb_0), 22523 }, /* TRAPcc */ + { CPUFUNC(op_57fc_0), 22524 }, /* TRAPcc */ + { CPUFUNC(op_58c0_0), 22720 }, /* Scc */ + { CPUFUNC(op_58c8_0), 22728 }, /* DBcc */ + { CPUFUNC(op_58d0_0), 22736 }, /* Scc */ + { CPUFUNC(op_58d8_0), 22744 }, /* Scc */ + { CPUFUNC(op_58e0_0), 22752 }, /* Scc */ + { CPUFUNC(op_58e8_0), 22760 }, /* Scc */ + { CPUFUNC(op_58f0_0), 22768 }, /* Scc */ + { CPUFUNC(op_58f8_0), 22776 }, /* Scc */ + { CPUFUNC(op_58f9_0), 22777 }, /* Scc */ + { CPUFUNC(op_58fa_0), 22778 }, /* TRAPcc */ + { CPUFUNC(op_58fb_0), 22779 }, /* TRAPcc */ + { CPUFUNC(op_58fc_0), 22780 }, /* TRAPcc */ + { CPUFUNC(op_59c0_0), 22976 }, /* Scc */ + { CPUFUNC(op_59c8_0), 22984 }, /* DBcc */ + { CPUFUNC(op_59d0_0), 22992 }, /* Scc */ + { CPUFUNC(op_59d8_0), 23000 }, /* Scc */ + { CPUFUNC(op_59e0_0), 23008 }, /* Scc */ + { CPUFUNC(op_59e8_0), 23016 }, /* Scc */ + { CPUFUNC(op_59f0_0), 23024 }, /* Scc */ + { CPUFUNC(op_59f8_0), 23032 }, /* Scc */ + { CPUFUNC(op_59f9_0), 23033 }, /* Scc */ + { CPUFUNC(op_59fa_0), 23034 }, /* TRAPcc */ + { CPUFUNC(op_59fb_0), 23035 }, /* TRAPcc */ + { CPUFUNC(op_59fc_0), 23036 }, /* TRAPcc */ + { CPUFUNC(op_5ac0_0), 23232 }, /* Scc */ + { CPUFUNC(op_5ac8_0), 23240 }, /* DBcc */ + { CPUFUNC(op_5ad0_0), 23248 }, /* Scc */ + { CPUFUNC(op_5ad8_0), 23256 }, /* Scc */ + { CPUFUNC(op_5ae0_0), 23264 }, /* Scc */ + { CPUFUNC(op_5ae8_0), 23272 }, /* Scc */ + { CPUFUNC(op_5af0_0), 23280 }, /* Scc */ + { CPUFUNC(op_5af8_0), 23288 }, /* Scc */ + { CPUFUNC(op_5af9_0), 23289 }, /* Scc */ + { CPUFUNC(op_5afa_0), 23290 }, /* TRAPcc */ + { CPUFUNC(op_5afb_0), 23291 }, /* TRAPcc */ + { CPUFUNC(op_5afc_0), 23292 }, /* TRAPcc */ + { CPUFUNC(op_5bc0_0), 23488 }, /* Scc */ + { CPUFUNC(op_5bc8_0), 23496 }, /* DBcc */ + { CPUFUNC(op_5bd0_0), 23504 }, /* Scc */ + { CPUFUNC(op_5bd8_0), 23512 }, /* Scc */ + { CPUFUNC(op_5be0_0), 23520 }, /* Scc */ + { CPUFUNC(op_5be8_0), 23528 }, /* Scc */ + { CPUFUNC(op_5bf0_0), 23536 }, /* Scc */ + { CPUFUNC(op_5bf8_0), 23544 }, /* Scc */ + { CPUFUNC(op_5bf9_0), 23545 }, /* Scc */ + { CPUFUNC(op_5bfa_0), 23546 }, /* TRAPcc */ + { CPUFUNC(op_5bfb_0), 23547 }, /* TRAPcc */ + { CPUFUNC(op_5bfc_0), 23548 }, /* TRAPcc */ + { CPUFUNC(op_5cc0_0), 23744 }, /* Scc */ + { CPUFUNC(op_5cc8_0), 23752 }, /* DBcc */ + { CPUFUNC(op_5cd0_0), 23760 }, /* Scc */ + { CPUFUNC(op_5cd8_0), 23768 }, /* Scc */ + { CPUFUNC(op_5ce0_0), 23776 }, /* Scc */ + { CPUFUNC(op_5ce8_0), 23784 }, /* Scc */ + { CPUFUNC(op_5cf0_0), 23792 }, /* Scc */ + { CPUFUNC(op_5cf8_0), 23800 }, /* Scc */ + { CPUFUNC(op_5cf9_0), 23801 }, /* Scc */ + { CPUFUNC(op_5cfa_0), 23802 }, /* TRAPcc */ + { CPUFUNC(op_5cfb_0), 23803 }, /* TRAPcc */ + { CPUFUNC(op_5cfc_0), 23804 }, /* TRAPcc */ + { CPUFUNC(op_5dc0_0), 24000 }, /* Scc */ + { CPUFUNC(op_5dc8_0), 24008 }, /* DBcc */ + { CPUFUNC(op_5dd0_0), 24016 }, /* Scc */ + { CPUFUNC(op_5dd8_0), 24024 }, /* Scc */ + { CPUFUNC(op_5de0_0), 24032 }, /* Scc */ + { CPUFUNC(op_5de8_0), 24040 }, /* Scc */ + { CPUFUNC(op_5df0_0), 24048 }, /* Scc */ + { CPUFUNC(op_5df8_0), 24056 }, /* Scc */ + { CPUFUNC(op_5df9_0), 24057 }, /* Scc */ + { CPUFUNC(op_5dfa_0), 24058 }, /* TRAPcc */ + { CPUFUNC(op_5dfb_0), 24059 }, /* TRAPcc */ + { CPUFUNC(op_5dfc_0), 24060 }, /* TRAPcc */ + { CPUFUNC(op_5ec0_0), 24256 }, /* Scc */ + { CPUFUNC(op_5ec8_0), 24264 }, /* DBcc */ + { CPUFUNC(op_5ed0_0), 24272 }, /* Scc */ + { CPUFUNC(op_5ed8_0), 24280 }, /* Scc */ + { CPUFUNC(op_5ee0_0), 24288 }, /* Scc */ + { CPUFUNC(op_5ee8_0), 24296 }, /* Scc */ + { CPUFUNC(op_5ef0_0), 24304 }, /* Scc */ + { CPUFUNC(op_5ef8_0), 24312 }, /* Scc */ + { CPUFUNC(op_5ef9_0), 24313 }, /* Scc */ + { CPUFUNC(op_5efa_0), 24314 }, /* TRAPcc */ + { CPUFUNC(op_5efb_0), 24315 }, /* TRAPcc */ + { CPUFUNC(op_5efc_0), 24316 }, /* TRAPcc */ + { CPUFUNC(op_5fc0_0), 24512 }, /* Scc */ + { CPUFUNC(op_5fc8_0), 24520 }, /* DBcc */ + { CPUFUNC(op_5fd0_0), 24528 }, /* Scc */ + { CPUFUNC(op_5fd8_0), 24536 }, /* Scc */ + { CPUFUNC(op_5fe0_0), 24544 }, /* Scc */ + { CPUFUNC(op_5fe8_0), 24552 }, /* Scc */ + { CPUFUNC(op_5ff0_0), 24560 }, /* Scc */ + { CPUFUNC(op_5ff8_0), 24568 }, /* Scc */ + { CPUFUNC(op_5ff9_0), 24569 }, /* Scc */ + { CPUFUNC(op_5ffa_0), 24570 }, /* TRAPcc */ + { CPUFUNC(op_5ffb_0), 24571 }, /* TRAPcc */ + { CPUFUNC(op_5ffc_0), 24572 }, /* TRAPcc */ + { CPUFUNC(op_6000_0), 24576 }, /* Bcc */ + { CPUFUNC(op_6001_0), 24577 }, /* Bcc */ + { CPUFUNC(op_60ff_0), 24831 }, /* Bcc */ + { CPUFUNC(op_6100_0), 24832 }, /* BSR */ + { CPUFUNC(op_6101_0), 24833 }, /* BSR */ + { CPUFUNC(op_61ff_0), 25087 }, /* BSR */ + { CPUFUNC(op_6200_0), 25088 }, /* Bcc */ + { CPUFUNC(op_6201_0), 25089 }, /* Bcc */ + { CPUFUNC(op_62ff_0), 25343 }, /* Bcc */ + { CPUFUNC(op_6300_0), 25344 }, /* Bcc */ + { CPUFUNC(op_6301_0), 25345 }, /* Bcc */ + { CPUFUNC(op_63ff_0), 25599 }, /* Bcc */ + { CPUFUNC(op_6400_0), 25600 }, /* Bcc */ + { CPUFUNC(op_6401_0), 25601 }, /* Bcc */ + { CPUFUNC(op_64ff_0), 25855 }, /* Bcc */ + { CPUFUNC(op_6500_0), 25856 }, /* Bcc */ + { CPUFUNC(op_6501_0), 25857 }, /* Bcc */ + { CPUFUNC(op_65ff_0), 26111 }, /* Bcc */ + { CPUFUNC(op_6600_0), 26112 }, /* Bcc */ + { CPUFUNC(op_6601_0), 26113 }, /* Bcc */ + { CPUFUNC(op_66ff_0), 26367 }, /* Bcc */ + { CPUFUNC(op_6700_0), 26368 }, /* Bcc */ + { CPUFUNC(op_6701_0), 26369 }, /* Bcc */ + { CPUFUNC(op_67ff_0), 26623 }, /* Bcc */ + { CPUFUNC(op_6800_0), 26624 }, /* Bcc */ + { CPUFUNC(op_6801_0), 26625 }, /* Bcc */ + { CPUFUNC(op_68ff_0), 26879 }, /* Bcc */ + { CPUFUNC(op_6900_0), 26880 }, /* Bcc */ + { CPUFUNC(op_6901_0), 26881 }, /* Bcc */ + { CPUFUNC(op_69ff_0), 27135 }, /* Bcc */ + { CPUFUNC(op_6a00_0), 27136 }, /* Bcc */ + { CPUFUNC(op_6a01_0), 27137 }, /* Bcc */ + { CPUFUNC(op_6aff_0), 27391 }, /* Bcc */ + { CPUFUNC(op_6b00_0), 27392 }, /* Bcc */ + { CPUFUNC(op_6b01_0), 27393 }, /* Bcc */ + { CPUFUNC(op_6bff_0), 27647 }, /* Bcc */ + { CPUFUNC(op_6c00_0), 27648 }, /* Bcc */ + { CPUFUNC(op_6c01_0), 27649 }, /* Bcc */ + { CPUFUNC(op_6cff_0), 27903 }, /* Bcc */ + { CPUFUNC(op_6d00_0), 27904 }, /* Bcc */ + { CPUFUNC(op_6d01_0), 27905 }, /* Bcc */ + { CPUFUNC(op_6dff_0), 28159 }, /* Bcc */ + { CPUFUNC(op_6e00_0), 28160 }, /* Bcc */ + { CPUFUNC(op_6e01_0), 28161 }, /* Bcc */ + { CPUFUNC(op_6eff_0), 28415 }, /* Bcc */ + { CPUFUNC(op_6f00_0), 28416 }, /* Bcc */ + { CPUFUNC(op_6f01_0), 28417 }, /* Bcc */ + { CPUFUNC(op_6fff_0), 28671 }, /* Bcc */ + { CPUFUNC(op_7000_0), 28672 }, /* MOVE */ + { CPUFUNC(op_8000_0), 32768 }, /* OR */ + { CPUFUNC(op_8010_0), 32784 }, /* OR */ + { CPUFUNC(op_8018_0), 32792 }, /* OR */ + { CPUFUNC(op_8020_0), 32800 }, /* OR */ + { CPUFUNC(op_8028_0), 32808 }, /* OR */ + { CPUFUNC(op_8030_0), 32816 }, /* OR */ + { CPUFUNC(op_8038_0), 32824 }, /* OR */ + { CPUFUNC(op_8039_0), 32825 }, /* OR */ + { CPUFUNC(op_803a_0), 32826 }, /* OR */ + { CPUFUNC(op_803b_0), 32827 }, /* OR */ + { CPUFUNC(op_803c_0), 32828 }, /* OR */ + { CPUFUNC(op_8040_0), 32832 }, /* OR */ + { CPUFUNC(op_8050_0), 32848 }, /* OR */ + { CPUFUNC(op_8058_0), 32856 }, /* OR */ + { CPUFUNC(op_8060_0), 32864 }, /* OR */ + { CPUFUNC(op_8068_0), 32872 }, /* OR */ + { CPUFUNC(op_8070_0), 32880 }, /* OR */ + { CPUFUNC(op_8078_0), 32888 }, /* OR */ + { CPUFUNC(op_8079_0), 32889 }, /* OR */ + { CPUFUNC(op_807a_0), 32890 }, /* OR */ + { CPUFUNC(op_807b_0), 32891 }, /* OR */ + { CPUFUNC(op_807c_0), 32892 }, /* OR */ + { CPUFUNC(op_8080_0), 32896 }, /* OR */ + { CPUFUNC(op_8090_0), 32912 }, /* OR */ + { CPUFUNC(op_8098_0), 32920 }, /* OR */ + { CPUFUNC(op_80a0_0), 32928 }, /* OR */ + { CPUFUNC(op_80a8_0), 32936 }, /* OR */ + { CPUFUNC(op_80b0_0), 32944 }, /* OR */ + { CPUFUNC(op_80b8_0), 32952 }, /* OR */ + { CPUFUNC(op_80b9_0), 32953 }, /* OR */ + { CPUFUNC(op_80ba_0), 32954 }, /* OR */ + { CPUFUNC(op_80bb_0), 32955 }, /* OR */ + { CPUFUNC(op_80bc_0), 32956 }, /* OR */ + { CPUFUNC(op_80c0_0), 32960 }, /* DIVU */ + { CPUFUNC(op_80d0_0), 32976 }, /* DIVU */ + { CPUFUNC(op_80d8_0), 32984 }, /* DIVU */ + { CPUFUNC(op_80e0_0), 32992 }, /* DIVU */ + { CPUFUNC(op_80e8_0), 33000 }, /* DIVU */ + { CPUFUNC(op_80f0_0), 33008 }, /* DIVU */ + { CPUFUNC(op_80f8_0), 33016 }, /* DIVU */ + { CPUFUNC(op_80f9_0), 33017 }, /* DIVU */ + { CPUFUNC(op_80fa_0), 33018 }, /* DIVU */ + { CPUFUNC(op_80fb_0), 33019 }, /* DIVU */ + { CPUFUNC(op_80fc_0), 33020 }, /* DIVU */ + { CPUFUNC(op_8100_2), 33024 }, /* SBCD */ + { CPUFUNC(op_8108_2), 33032 }, /* SBCD */ + { CPUFUNC(op_8110_0), 33040 }, /* OR */ + { CPUFUNC(op_8118_0), 33048 }, /* OR */ + { CPUFUNC(op_8120_0), 33056 }, /* OR */ + { CPUFUNC(op_8128_0), 33064 }, /* OR */ + { CPUFUNC(op_8130_0), 33072 }, /* OR */ + { CPUFUNC(op_8138_0), 33080 }, /* OR */ + { CPUFUNC(op_8139_0), 33081 }, /* OR */ + { CPUFUNC(op_8140_0), 33088 }, /* PACK */ + { CPUFUNC(op_8148_0), 33096 }, /* PACK */ + { CPUFUNC(op_8150_0), 33104 }, /* OR */ + { CPUFUNC(op_8158_0), 33112 }, /* OR */ + { CPUFUNC(op_8160_0), 33120 }, /* OR */ + { CPUFUNC(op_8168_0), 33128 }, /* OR */ + { CPUFUNC(op_8170_0), 33136 }, /* OR */ + { CPUFUNC(op_8178_0), 33144 }, /* OR */ + { CPUFUNC(op_8179_0), 33145 }, /* OR */ + { CPUFUNC(op_8180_0), 33152 }, /* UNPK */ + { CPUFUNC(op_8188_0), 33160 }, /* UNPK */ + { CPUFUNC(op_8190_0), 33168 }, /* OR */ + { CPUFUNC(op_8198_0), 33176 }, /* OR */ + { CPUFUNC(op_81a0_0), 33184 }, /* OR */ + { CPUFUNC(op_81a8_0), 33192 }, /* OR */ + { CPUFUNC(op_81b0_0), 33200 }, /* OR */ + { CPUFUNC(op_81b8_0), 33208 }, /* OR */ + { CPUFUNC(op_81b9_0), 33209 }, /* OR */ + { CPUFUNC(op_81c0_0), 33216 }, /* DIVS */ + { CPUFUNC(op_81d0_0), 33232 }, /* DIVS */ + { CPUFUNC(op_81d8_0), 33240 }, /* DIVS */ + { CPUFUNC(op_81e0_0), 33248 }, /* DIVS */ + { CPUFUNC(op_81e8_0), 33256 }, /* DIVS */ + { CPUFUNC(op_81f0_0), 33264 }, /* DIVS */ + { CPUFUNC(op_81f8_0), 33272 }, /* DIVS */ + { CPUFUNC(op_81f9_0), 33273 }, /* DIVS */ + { CPUFUNC(op_81fa_0), 33274 }, /* DIVS */ + { CPUFUNC(op_81fb_0), 33275 }, /* DIVS */ + { CPUFUNC(op_81fc_0), 33276 }, /* DIVS */ + { CPUFUNC(op_9000_0), 36864 }, /* SUB */ + { CPUFUNC(op_9010_0), 36880 }, /* SUB */ + { CPUFUNC(op_9018_0), 36888 }, /* SUB */ + { CPUFUNC(op_9020_0), 36896 }, /* SUB */ + { CPUFUNC(op_9028_0), 36904 }, /* SUB */ + { CPUFUNC(op_9030_0), 36912 }, /* SUB */ + { CPUFUNC(op_9038_0), 36920 }, /* SUB */ + { CPUFUNC(op_9039_0), 36921 }, /* SUB */ + { CPUFUNC(op_903a_0), 36922 }, /* SUB */ + { CPUFUNC(op_903b_0), 36923 }, /* SUB */ + { CPUFUNC(op_903c_0), 36924 }, /* SUB */ + { CPUFUNC(op_9040_0), 36928 }, /* SUB */ + { CPUFUNC(op_9048_0), 36936 }, /* SUB */ + { CPUFUNC(op_9050_0), 36944 }, /* SUB */ + { CPUFUNC(op_9058_0), 36952 }, /* SUB */ + { CPUFUNC(op_9060_0), 36960 }, /* SUB */ + { CPUFUNC(op_9068_0), 36968 }, /* SUB */ + { CPUFUNC(op_9070_0), 36976 }, /* SUB */ + { CPUFUNC(op_9078_0), 36984 }, /* SUB */ + { CPUFUNC(op_9079_0), 36985 }, /* SUB */ + { CPUFUNC(op_907a_0), 36986 }, /* SUB */ + { CPUFUNC(op_907b_0), 36987 }, /* SUB */ + { CPUFUNC(op_907c_0), 36988 }, /* SUB */ + { CPUFUNC(op_9080_0), 36992 }, /* SUB */ + { CPUFUNC(op_9088_0), 37000 }, /* SUB */ + { CPUFUNC(op_9090_0), 37008 }, /* SUB */ + { CPUFUNC(op_9098_0), 37016 }, /* SUB */ + { CPUFUNC(op_90a0_0), 37024 }, /* SUB */ + { CPUFUNC(op_90a8_0), 37032 }, /* SUB */ + { CPUFUNC(op_90b0_0), 37040 }, /* SUB */ + { CPUFUNC(op_90b8_0), 37048 }, /* SUB */ + { CPUFUNC(op_90b9_0), 37049 }, /* SUB */ + { CPUFUNC(op_90ba_0), 37050 }, /* SUB */ + { CPUFUNC(op_90bb_0), 37051 }, /* SUB */ + { CPUFUNC(op_90bc_0), 37052 }, /* SUB */ + { CPUFUNC(op_90c0_0), 37056 }, /* SUBA */ + { CPUFUNC(op_90c8_0), 37064 }, /* SUBA */ + { CPUFUNC(op_90d0_0), 37072 }, /* SUBA */ + { CPUFUNC(op_90d8_0), 37080 }, /* SUBA */ + { CPUFUNC(op_90e0_0), 37088 }, /* SUBA */ + { CPUFUNC(op_90e8_0), 37096 }, /* SUBA */ + { CPUFUNC(op_90f0_0), 37104 }, /* SUBA */ + { CPUFUNC(op_90f8_0), 37112 }, /* SUBA */ + { CPUFUNC(op_90f9_0), 37113 }, /* SUBA */ + { CPUFUNC(op_90fa_0), 37114 }, /* SUBA */ + { CPUFUNC(op_90fb_0), 37115 }, /* SUBA */ + { CPUFUNC(op_90fc_0), 37116 }, /* SUBA */ + { CPUFUNC(op_9100_0), 37120 }, /* SUBX */ + { CPUFUNC(op_9108_0), 37128 }, /* SUBX */ + { CPUFUNC(op_9110_0), 37136 }, /* SUB */ + { CPUFUNC(op_9118_0), 37144 }, /* SUB */ + { CPUFUNC(op_9120_0), 37152 }, /* SUB */ + { CPUFUNC(op_9128_0), 37160 }, /* SUB */ + { CPUFUNC(op_9130_0), 37168 }, /* SUB */ + { CPUFUNC(op_9138_0), 37176 }, /* SUB */ + { CPUFUNC(op_9139_0), 37177 }, /* SUB */ + { CPUFUNC(op_9140_0), 37184 }, /* SUBX */ + { CPUFUNC(op_9148_0), 37192 }, /* SUBX */ + { CPUFUNC(op_9150_0), 37200 }, /* SUB */ + { CPUFUNC(op_9158_0), 37208 }, /* SUB */ + { CPUFUNC(op_9160_0), 37216 }, /* SUB */ + { CPUFUNC(op_9168_0), 37224 }, /* SUB */ + { CPUFUNC(op_9170_0), 37232 }, /* SUB */ + { CPUFUNC(op_9178_0), 37240 }, /* SUB */ + { CPUFUNC(op_9179_0), 37241 }, /* SUB */ + { CPUFUNC(op_9180_0), 37248 }, /* SUBX */ + { CPUFUNC(op_9188_0), 37256 }, /* SUBX */ + { CPUFUNC(op_9190_0), 37264 }, /* SUB */ + { CPUFUNC(op_9198_0), 37272 }, /* SUB */ + { CPUFUNC(op_91a0_0), 37280 }, /* SUB */ + { CPUFUNC(op_91a8_0), 37288 }, /* SUB */ + { CPUFUNC(op_91b0_0), 37296 }, /* SUB */ + { CPUFUNC(op_91b8_0), 37304 }, /* SUB */ + { CPUFUNC(op_91b9_0), 37305 }, /* SUB */ + { CPUFUNC(op_91c0_0), 37312 }, /* SUBA */ + { CPUFUNC(op_91c8_0), 37320 }, /* SUBA */ + { CPUFUNC(op_91d0_0), 37328 }, /* SUBA */ + { CPUFUNC(op_91d8_0), 37336 }, /* SUBA */ + { CPUFUNC(op_91e0_0), 37344 }, /* SUBA */ + { CPUFUNC(op_91e8_0), 37352 }, /* SUBA */ + { CPUFUNC(op_91f0_0), 37360 }, /* SUBA */ + { CPUFUNC(op_91f8_0), 37368 }, /* SUBA */ + { CPUFUNC(op_91f9_0), 37369 }, /* SUBA */ + { CPUFUNC(op_91fa_0), 37370 }, /* SUBA */ + { CPUFUNC(op_91fb_0), 37371 }, /* SUBA */ + { CPUFUNC(op_91fc_0), 37372 }, /* SUBA */ + { CPUFUNC(op_b000_0), 45056 }, /* CMP */ + { CPUFUNC(op_b010_0), 45072 }, /* CMP */ + { CPUFUNC(op_b018_0), 45080 }, /* CMP */ + { CPUFUNC(op_b020_0), 45088 }, /* CMP */ + { CPUFUNC(op_b028_0), 45096 }, /* CMP */ + { CPUFUNC(op_b030_0), 45104 }, /* CMP */ + { CPUFUNC(op_b038_0), 45112 }, /* CMP */ + { CPUFUNC(op_b039_0), 45113 }, /* CMP */ + { CPUFUNC(op_b03a_0), 45114 }, /* CMP */ + { CPUFUNC(op_b03b_0), 45115 }, /* CMP */ + { CPUFUNC(op_b03c_0), 45116 }, /* CMP */ + { CPUFUNC(op_b040_0), 45120 }, /* CMP */ + { CPUFUNC(op_b048_0), 45128 }, /* CMP */ + { CPUFUNC(op_b050_0), 45136 }, /* CMP */ + { CPUFUNC(op_b058_0), 45144 }, /* CMP */ + { CPUFUNC(op_b060_0), 45152 }, /* CMP */ + { CPUFUNC(op_b068_0), 45160 }, /* CMP */ + { CPUFUNC(op_b070_0), 45168 }, /* CMP */ + { CPUFUNC(op_b078_0), 45176 }, /* CMP */ + { CPUFUNC(op_b079_0), 45177 }, /* CMP */ + { CPUFUNC(op_b07a_0), 45178 }, /* CMP */ + { CPUFUNC(op_b07b_0), 45179 }, /* CMP */ + { CPUFUNC(op_b07c_0), 45180 }, /* CMP */ + { CPUFUNC(op_b080_0), 45184 }, /* CMP */ + { CPUFUNC(op_b088_0), 45192 }, /* CMP */ + { CPUFUNC(op_b090_0), 45200 }, /* CMP */ + { CPUFUNC(op_b098_0), 45208 }, /* CMP */ + { CPUFUNC(op_b0a0_0), 45216 }, /* CMP */ + { CPUFUNC(op_b0a8_0), 45224 }, /* CMP */ + { CPUFUNC(op_b0b0_0), 45232 }, /* CMP */ + { CPUFUNC(op_b0b8_0), 45240 }, /* CMP */ + { CPUFUNC(op_b0b9_0), 45241 }, /* CMP */ + { CPUFUNC(op_b0ba_0), 45242 }, /* CMP */ + { CPUFUNC(op_b0bb_0), 45243 }, /* CMP */ + { CPUFUNC(op_b0bc_0), 45244 }, /* CMP */ + { CPUFUNC(op_b0c0_0), 45248 }, /* CMPA */ + { CPUFUNC(op_b0c8_0), 45256 }, /* CMPA */ + { CPUFUNC(op_b0d0_0), 45264 }, /* CMPA */ + { CPUFUNC(op_b0d8_0), 45272 }, /* CMPA */ + { CPUFUNC(op_b0e0_0), 45280 }, /* CMPA */ + { CPUFUNC(op_b0e8_0), 45288 }, /* CMPA */ + { CPUFUNC(op_b0f0_0), 45296 }, /* CMPA */ + { CPUFUNC(op_b0f8_0), 45304 }, /* CMPA */ + { CPUFUNC(op_b0f9_0), 45305 }, /* CMPA */ + { CPUFUNC(op_b0fa_0), 45306 }, /* CMPA */ + { CPUFUNC(op_b0fb_0), 45307 }, /* CMPA */ + { CPUFUNC(op_b0fc_0), 45308 }, /* CMPA */ + { CPUFUNC(op_b100_0), 45312 }, /* EOR */ + { CPUFUNC(op_b108_0), 45320 }, /* CMPM */ + { CPUFUNC(op_b110_0), 45328 }, /* EOR */ + { CPUFUNC(op_b118_0), 45336 }, /* EOR */ + { CPUFUNC(op_b120_0), 45344 }, /* EOR */ + { CPUFUNC(op_b128_0), 45352 }, /* EOR */ + { CPUFUNC(op_b130_0), 45360 }, /* EOR */ + { CPUFUNC(op_b138_0), 45368 }, /* EOR */ + { CPUFUNC(op_b139_0), 45369 }, /* EOR */ + { CPUFUNC(op_b140_0), 45376 }, /* EOR */ + { CPUFUNC(op_b148_0), 45384 }, /* CMPM */ + { CPUFUNC(op_b150_0), 45392 }, /* EOR */ + { CPUFUNC(op_b158_0), 45400 }, /* EOR */ + { CPUFUNC(op_b160_0), 45408 }, /* EOR */ + { CPUFUNC(op_b168_0), 45416 }, /* EOR */ + { CPUFUNC(op_b170_0), 45424 }, /* EOR */ + { CPUFUNC(op_b178_0), 45432 }, /* EOR */ + { CPUFUNC(op_b179_0), 45433 }, /* EOR */ + { CPUFUNC(op_b180_0), 45440 }, /* EOR */ + { CPUFUNC(op_b188_0), 45448 }, /* CMPM */ + { CPUFUNC(op_b190_0), 45456 }, /* EOR */ + { CPUFUNC(op_b198_0), 45464 }, /* EOR */ + { CPUFUNC(op_b1a0_0), 45472 }, /* EOR */ + { CPUFUNC(op_b1a8_0), 45480 }, /* EOR */ + { CPUFUNC(op_b1b0_0), 45488 }, /* EOR */ + { CPUFUNC(op_b1b8_0), 45496 }, /* EOR */ + { CPUFUNC(op_b1b9_0), 45497 }, /* EOR */ + { CPUFUNC(op_b1c0_0), 45504 }, /* CMPA */ + { CPUFUNC(op_b1c8_0), 45512 }, /* CMPA */ + { CPUFUNC(op_b1d0_0), 45520 }, /* CMPA */ + { CPUFUNC(op_b1d8_0), 45528 }, /* CMPA */ + { CPUFUNC(op_b1e0_0), 45536 }, /* CMPA */ + { CPUFUNC(op_b1e8_0), 45544 }, /* CMPA */ + { CPUFUNC(op_b1f0_0), 45552 }, /* CMPA */ + { CPUFUNC(op_b1f8_0), 45560 }, /* CMPA */ + { CPUFUNC(op_b1f9_0), 45561 }, /* CMPA */ + { CPUFUNC(op_b1fa_0), 45562 }, /* CMPA */ + { CPUFUNC(op_b1fb_0), 45563 }, /* CMPA */ + { CPUFUNC(op_b1fc_0), 45564 }, /* CMPA */ + { CPUFUNC(op_c000_0), 49152 }, /* AND */ + { CPUFUNC(op_c010_0), 49168 }, /* AND */ + { CPUFUNC(op_c018_0), 49176 }, /* AND */ + { CPUFUNC(op_c020_0), 49184 }, /* AND */ + { CPUFUNC(op_c028_0), 49192 }, /* AND */ + { CPUFUNC(op_c030_0), 49200 }, /* AND */ + { CPUFUNC(op_c038_0), 49208 }, /* AND */ + { CPUFUNC(op_c039_0), 49209 }, /* AND */ + { CPUFUNC(op_c03a_0), 49210 }, /* AND */ + { CPUFUNC(op_c03b_0), 49211 }, /* AND */ + { CPUFUNC(op_c03c_0), 49212 }, /* AND */ + { CPUFUNC(op_c040_0), 49216 }, /* AND */ + { CPUFUNC(op_c050_0), 49232 }, /* AND */ + { CPUFUNC(op_c058_0), 49240 }, /* AND */ + { CPUFUNC(op_c060_0), 49248 }, /* AND */ + { CPUFUNC(op_c068_0), 49256 }, /* AND */ + { CPUFUNC(op_c070_0), 49264 }, /* AND */ + { CPUFUNC(op_c078_0), 49272 }, /* AND */ + { CPUFUNC(op_c079_0), 49273 }, /* AND */ + { CPUFUNC(op_c07a_0), 49274 }, /* AND */ + { CPUFUNC(op_c07b_0), 49275 }, /* AND */ + { CPUFUNC(op_c07c_0), 49276 }, /* AND */ + { CPUFUNC(op_c080_0), 49280 }, /* AND */ + { CPUFUNC(op_c090_0), 49296 }, /* AND */ + { CPUFUNC(op_c098_0), 49304 }, /* AND */ + { CPUFUNC(op_c0a0_0), 49312 }, /* AND */ + { CPUFUNC(op_c0a8_0), 49320 }, /* AND */ + { CPUFUNC(op_c0b0_0), 49328 }, /* AND */ + { CPUFUNC(op_c0b8_0), 49336 }, /* AND */ + { CPUFUNC(op_c0b9_0), 49337 }, /* AND */ + { CPUFUNC(op_c0ba_0), 49338 }, /* AND */ + { CPUFUNC(op_c0bb_0), 49339 }, /* AND */ + { CPUFUNC(op_c0bc_0), 49340 }, /* AND */ + { CPUFUNC(op_c0c0_0), 49344 }, /* MULU */ + { CPUFUNC(op_c0d0_0), 49360 }, /* MULU */ + { CPUFUNC(op_c0d8_0), 49368 }, /* MULU */ + { CPUFUNC(op_c0e0_0), 49376 }, /* MULU */ + { CPUFUNC(op_c0e8_0), 49384 }, /* MULU */ + { CPUFUNC(op_c0f0_0), 49392 }, /* MULU */ + { CPUFUNC(op_c0f8_0), 49400 }, /* MULU */ + { CPUFUNC(op_c0f9_0), 49401 }, /* MULU */ + { CPUFUNC(op_c0fa_0), 49402 }, /* MULU */ + { CPUFUNC(op_c0fb_0), 49403 }, /* MULU */ + { CPUFUNC(op_c0fc_0), 49404 }, /* MULU */ + { CPUFUNC(op_c100_2), 49408 }, /* ABCD */ + { CPUFUNC(op_c108_2), 49416 }, /* ABCD */ + { CPUFUNC(op_c110_0), 49424 }, /* AND */ + { CPUFUNC(op_c118_0), 49432 }, /* AND */ + { CPUFUNC(op_c120_0), 49440 }, /* AND */ + { CPUFUNC(op_c128_0), 49448 }, /* AND */ + { CPUFUNC(op_c130_0), 49456 }, /* AND */ + { CPUFUNC(op_c138_0), 49464 }, /* AND */ + { CPUFUNC(op_c139_0), 49465 }, /* AND */ + { CPUFUNC(op_c140_0), 49472 }, /* EXG */ + { CPUFUNC(op_c148_0), 49480 }, /* EXG */ + { CPUFUNC(op_c150_0), 49488 }, /* AND */ + { CPUFUNC(op_c158_0), 49496 }, /* AND */ + { CPUFUNC(op_c160_0), 49504 }, /* AND */ + { CPUFUNC(op_c168_0), 49512 }, /* AND */ + { CPUFUNC(op_c170_0), 49520 }, /* AND */ + { CPUFUNC(op_c178_0), 49528 }, /* AND */ + { CPUFUNC(op_c179_0), 49529 }, /* AND */ + { CPUFUNC(op_c188_0), 49544 }, /* EXG */ + { CPUFUNC(op_c190_0), 49552 }, /* AND */ + { CPUFUNC(op_c198_0), 49560 }, /* AND */ + { CPUFUNC(op_c1a0_0), 49568 }, /* AND */ + { CPUFUNC(op_c1a8_0), 49576 }, /* AND */ + { CPUFUNC(op_c1b0_0), 49584 }, /* AND */ + { CPUFUNC(op_c1b8_0), 49592 }, /* AND */ + { CPUFUNC(op_c1b9_0), 49593 }, /* AND */ + { CPUFUNC(op_c1c0_0), 49600 }, /* MULS */ + { CPUFUNC(op_c1d0_0), 49616 }, /* MULS */ + { CPUFUNC(op_c1d8_0), 49624 }, /* MULS */ + { CPUFUNC(op_c1e0_0), 49632 }, /* MULS */ + { CPUFUNC(op_c1e8_0), 49640 }, /* MULS */ + { CPUFUNC(op_c1f0_0), 49648 }, /* MULS */ + { CPUFUNC(op_c1f8_0), 49656 }, /* MULS */ + { CPUFUNC(op_c1f9_0), 49657 }, /* MULS */ + { CPUFUNC(op_c1fa_0), 49658 }, /* MULS */ + { CPUFUNC(op_c1fb_0), 49659 }, /* MULS */ + { CPUFUNC(op_c1fc_0), 49660 }, /* MULS */ + { CPUFUNC(op_d000_0), 53248 }, /* ADD */ + { CPUFUNC(op_d010_0), 53264 }, /* ADD */ + { CPUFUNC(op_d018_0), 53272 }, /* ADD */ + { CPUFUNC(op_d020_0), 53280 }, /* ADD */ + { CPUFUNC(op_d028_0), 53288 }, /* ADD */ + { CPUFUNC(op_d030_0), 53296 }, /* ADD */ + { CPUFUNC(op_d038_0), 53304 }, /* ADD */ + { CPUFUNC(op_d039_0), 53305 }, /* ADD */ + { CPUFUNC(op_d03a_0), 53306 }, /* ADD */ + { CPUFUNC(op_d03b_0), 53307 }, /* ADD */ + { CPUFUNC(op_d03c_0), 53308 }, /* ADD */ + { CPUFUNC(op_d040_0), 53312 }, /* ADD */ + { CPUFUNC(op_d048_0), 53320 }, /* ADD */ + { CPUFUNC(op_d050_0), 53328 }, /* ADD */ + { CPUFUNC(op_d058_0), 53336 }, /* ADD */ + { CPUFUNC(op_d060_0), 53344 }, /* ADD */ + { CPUFUNC(op_d068_0), 53352 }, /* ADD */ + { CPUFUNC(op_d070_0), 53360 }, /* ADD */ + { CPUFUNC(op_d078_0), 53368 }, /* ADD */ + { CPUFUNC(op_d079_0), 53369 }, /* ADD */ + { CPUFUNC(op_d07a_0), 53370 }, /* ADD */ + { CPUFUNC(op_d07b_0), 53371 }, /* ADD */ + { CPUFUNC(op_d07c_0), 53372 }, /* ADD */ + { CPUFUNC(op_d080_0), 53376 }, /* ADD */ + { CPUFUNC(op_d088_0), 53384 }, /* ADD */ + { CPUFUNC(op_d090_0), 53392 }, /* ADD */ + { CPUFUNC(op_d098_0), 53400 }, /* ADD */ + { CPUFUNC(op_d0a0_0), 53408 }, /* ADD */ + { CPUFUNC(op_d0a8_0), 53416 }, /* ADD */ + { CPUFUNC(op_d0b0_0), 53424 }, /* ADD */ + { CPUFUNC(op_d0b8_0), 53432 }, /* ADD */ + { CPUFUNC(op_d0b9_0), 53433 }, /* ADD */ + { CPUFUNC(op_d0ba_0), 53434 }, /* ADD */ + { CPUFUNC(op_d0bb_0), 53435 }, /* ADD */ + { CPUFUNC(op_d0bc_0), 53436 }, /* ADD */ + { CPUFUNC(op_d0c0_0), 53440 }, /* ADDA */ + { CPUFUNC(op_d0c8_0), 53448 }, /* ADDA */ + { CPUFUNC(op_d0d0_0), 53456 }, /* ADDA */ + { CPUFUNC(op_d0d8_0), 53464 }, /* ADDA */ + { CPUFUNC(op_d0e0_0), 53472 }, /* ADDA */ + { CPUFUNC(op_d0e8_0), 53480 }, /* ADDA */ + { CPUFUNC(op_d0f0_0), 53488 }, /* ADDA */ + { CPUFUNC(op_d0f8_0), 53496 }, /* ADDA */ + { CPUFUNC(op_d0f9_0), 53497 }, /* ADDA */ + { CPUFUNC(op_d0fa_0), 53498 }, /* ADDA */ + { CPUFUNC(op_d0fb_0), 53499 }, /* ADDA */ + { CPUFUNC(op_d0fc_0), 53500 }, /* ADDA */ + { CPUFUNC(op_d100_0), 53504 }, /* ADDX */ + { CPUFUNC(op_d108_0), 53512 }, /* ADDX */ + { CPUFUNC(op_d110_0), 53520 }, /* ADD */ + { CPUFUNC(op_d118_0), 53528 }, /* ADD */ + { CPUFUNC(op_d120_0), 53536 }, /* ADD */ + { CPUFUNC(op_d128_0), 53544 }, /* ADD */ + { CPUFUNC(op_d130_0), 53552 }, /* ADD */ + { CPUFUNC(op_d138_0), 53560 }, /* ADD */ + { CPUFUNC(op_d139_0), 53561 }, /* ADD */ + { CPUFUNC(op_d140_0), 53568 }, /* ADDX */ + { CPUFUNC(op_d148_0), 53576 }, /* ADDX */ + { CPUFUNC(op_d150_0), 53584 }, /* ADD */ + { CPUFUNC(op_d158_0), 53592 }, /* ADD */ + { CPUFUNC(op_d160_0), 53600 }, /* ADD */ + { CPUFUNC(op_d168_0), 53608 }, /* ADD */ + { CPUFUNC(op_d170_0), 53616 }, /* ADD */ + { CPUFUNC(op_d178_0), 53624 }, /* ADD */ + { CPUFUNC(op_d179_0), 53625 }, /* ADD */ + { CPUFUNC(op_d180_0), 53632 }, /* ADDX */ + { CPUFUNC(op_d188_0), 53640 }, /* ADDX */ + { CPUFUNC(op_d190_0), 53648 }, /* ADD */ + { CPUFUNC(op_d198_0), 53656 }, /* ADD */ + { CPUFUNC(op_d1a0_0), 53664 }, /* ADD */ + { CPUFUNC(op_d1a8_0), 53672 }, /* ADD */ + { CPUFUNC(op_d1b0_0), 53680 }, /* ADD */ + { CPUFUNC(op_d1b8_0), 53688 }, /* ADD */ + { CPUFUNC(op_d1b9_0), 53689 }, /* ADD */ + { CPUFUNC(op_d1c0_0), 53696 }, /* ADDA */ + { CPUFUNC(op_d1c8_0), 53704 }, /* ADDA */ + { CPUFUNC(op_d1d0_0), 53712 }, /* ADDA */ + { CPUFUNC(op_d1d8_0), 53720 }, /* ADDA */ + { CPUFUNC(op_d1e0_0), 53728 }, /* ADDA */ + { CPUFUNC(op_d1e8_0), 53736 }, /* ADDA */ + { CPUFUNC(op_d1f0_0), 53744 }, /* ADDA */ + { CPUFUNC(op_d1f8_0), 53752 }, /* ADDA */ + { CPUFUNC(op_d1f9_0), 53753 }, /* ADDA */ + { CPUFUNC(op_d1fa_0), 53754 }, /* ADDA */ + { CPUFUNC(op_d1fb_0), 53755 }, /* ADDA */ + { CPUFUNC(op_d1fc_0), 53756 }, /* ADDA */ + { CPUFUNC(op_e000_0), 57344 }, /* ASR */ + { CPUFUNC(op_e008_0), 57352 }, /* LSR */ + { CPUFUNC(op_e010_0), 57360 }, /* ROXR */ + { CPUFUNC(op_e018_0), 57368 }, /* ROR */ + { CPUFUNC(op_e020_0), 57376 }, /* ASR */ + { CPUFUNC(op_e028_0), 57384 }, /* LSR */ + { CPUFUNC(op_e030_0), 57392 }, /* ROXR */ + { CPUFUNC(op_e038_0), 57400 }, /* ROR */ + { CPUFUNC(op_e040_0), 57408 }, /* ASR */ + { CPUFUNC(op_e048_0), 57416 }, /* LSR */ + { CPUFUNC(op_e050_0), 57424 }, /* ROXR */ + { CPUFUNC(op_e058_0), 57432 }, /* ROR */ + { CPUFUNC(op_e060_0), 57440 }, /* ASR */ + { CPUFUNC(op_e068_0), 57448 }, /* LSR */ + { CPUFUNC(op_e070_0), 57456 }, /* ROXR */ + { CPUFUNC(op_e078_0), 57464 }, /* ROR */ + { CPUFUNC(op_e080_0), 57472 }, /* ASR */ + { CPUFUNC(op_e088_0), 57480 }, /* LSR */ + { CPUFUNC(op_e090_0), 57488 }, /* ROXR */ + { CPUFUNC(op_e098_0), 57496 }, /* ROR */ + { CPUFUNC(op_e0a0_0), 57504 }, /* ASR */ + { CPUFUNC(op_e0a8_0), 57512 }, /* LSR */ + { CPUFUNC(op_e0b0_0), 57520 }, /* ROXR */ + { CPUFUNC(op_e0b8_0), 57528 }, /* ROR */ + { CPUFUNC(op_e0d0_0), 57552 }, /* ASRW */ + { CPUFUNC(op_e0d8_0), 57560 }, /* ASRW */ + { CPUFUNC(op_e0e0_0), 57568 }, /* ASRW */ + { CPUFUNC(op_e0e8_0), 57576 }, /* ASRW */ + { CPUFUNC(op_e0f0_0), 57584 }, /* ASRW */ + { CPUFUNC(op_e0f8_0), 57592 }, /* ASRW */ + { CPUFUNC(op_e0f9_0), 57593 }, /* ASRW */ + { CPUFUNC(op_e100_0), 57600 }, /* ASL */ + { CPUFUNC(op_e108_0), 57608 }, /* LSL */ + { CPUFUNC(op_e110_0), 57616 }, /* ROXL */ + { CPUFUNC(op_e118_0), 57624 }, /* ROL */ + { CPUFUNC(op_e120_0), 57632 }, /* ASL */ + { CPUFUNC(op_e128_0), 57640 }, /* LSL */ + { CPUFUNC(op_e130_0), 57648 }, /* ROXL */ + { CPUFUNC(op_e138_0), 57656 }, /* ROL */ + { CPUFUNC(op_e140_0), 57664 }, /* ASL */ + { CPUFUNC(op_e148_0), 57672 }, /* LSL */ + { CPUFUNC(op_e150_0), 57680 }, /* ROXL */ + { CPUFUNC(op_e158_0), 57688 }, /* ROL */ + { CPUFUNC(op_e160_0), 57696 }, /* ASL */ + { CPUFUNC(op_e168_0), 57704 }, /* LSL */ + { CPUFUNC(op_e170_0), 57712 }, /* ROXL */ + { CPUFUNC(op_e178_0), 57720 }, /* ROL */ + { CPUFUNC(op_e180_0), 57728 }, /* ASL */ + { CPUFUNC(op_e188_0), 57736 }, /* LSL */ + { CPUFUNC(op_e190_0), 57744 }, /* ROXL */ + { CPUFUNC(op_e198_0), 57752 }, /* ROL */ + { CPUFUNC(op_e1a0_0), 57760 }, /* ASL */ + { CPUFUNC(op_e1a8_0), 57768 }, /* LSL */ + { CPUFUNC(op_e1b0_0), 57776 }, /* ROXL */ + { CPUFUNC(op_e1b8_0), 57784 }, /* ROL */ + { CPUFUNC(op_e1d0_0), 57808 }, /* ASLW */ + { CPUFUNC(op_e1d8_0), 57816 }, /* ASLW */ + { CPUFUNC(op_e1e0_0), 57824 }, /* ASLW */ + { CPUFUNC(op_e1e8_0), 57832 }, /* ASLW */ + { CPUFUNC(op_e1f0_0), 57840 }, /* ASLW */ + { CPUFUNC(op_e1f8_0), 57848 }, /* ASLW */ + { CPUFUNC(op_e1f9_0), 57849 }, /* ASLW */ + { CPUFUNC(op_e2d0_0), 58064 }, /* LSRW */ + { CPUFUNC(op_e2d8_0), 58072 }, /* LSRW */ + { CPUFUNC(op_e2e0_0), 58080 }, /* LSRW */ + { CPUFUNC(op_e2e8_0), 58088 }, /* LSRW */ + { CPUFUNC(op_e2f0_0), 58096 }, /* LSRW */ + { CPUFUNC(op_e2f8_0), 58104 }, /* LSRW */ + { CPUFUNC(op_e2f9_0), 58105 }, /* LSRW */ + { CPUFUNC(op_e3d0_0), 58320 }, /* LSLW */ + { CPUFUNC(op_e3d8_0), 58328 }, /* LSLW */ + { CPUFUNC(op_e3e0_0), 58336 }, /* LSLW */ + { CPUFUNC(op_e3e8_0), 58344 }, /* LSLW */ + { CPUFUNC(op_e3f0_0), 58352 }, /* LSLW */ + { CPUFUNC(op_e3f8_0), 58360 }, /* LSLW */ + { CPUFUNC(op_e3f9_0), 58361 }, /* LSLW */ + { CPUFUNC(op_e4d0_0), 58576 }, /* ROXRW */ + { CPUFUNC(op_e4d8_0), 58584 }, /* ROXRW */ + { CPUFUNC(op_e4e0_0), 58592 }, /* ROXRW */ + { CPUFUNC(op_e4e8_0), 58600 }, /* ROXRW */ + { CPUFUNC(op_e4f0_0), 58608 }, /* ROXRW */ + { CPUFUNC(op_e4f8_0), 58616 }, /* ROXRW */ + { CPUFUNC(op_e4f9_0), 58617 }, /* ROXRW */ + { CPUFUNC(op_e5d0_0), 58832 }, /* ROXLW */ + { CPUFUNC(op_e5d8_0), 58840 }, /* ROXLW */ + { CPUFUNC(op_e5e0_0), 58848 }, /* ROXLW */ + { CPUFUNC(op_e5e8_0), 58856 }, /* ROXLW */ + { CPUFUNC(op_e5f0_0), 58864 }, /* ROXLW */ + { CPUFUNC(op_e5f8_0), 58872 }, /* ROXLW */ + { CPUFUNC(op_e5f9_0), 58873 }, /* ROXLW */ + { CPUFUNC(op_e6d0_0), 59088 }, /* RORW */ + { CPUFUNC(op_e6d8_0), 59096 }, /* RORW */ + { CPUFUNC(op_e6e0_0), 59104 }, /* RORW */ + { CPUFUNC(op_e6e8_0), 59112 }, /* RORW */ + { CPUFUNC(op_e6f0_0), 59120 }, /* RORW */ + { CPUFUNC(op_e6f8_0), 59128 }, /* RORW */ + { CPUFUNC(op_e6f9_0), 59129 }, /* RORW */ + { CPUFUNC(op_e7d0_0), 59344 }, /* ROLW */ + { CPUFUNC(op_e7d8_0), 59352 }, /* ROLW */ + { CPUFUNC(op_e7e0_0), 59360 }, /* ROLW */ + { CPUFUNC(op_e7e8_0), 59368 }, /* ROLW */ + { CPUFUNC(op_e7f0_0), 59376 }, /* ROLW */ + { CPUFUNC(op_e7f8_0), 59384 }, /* ROLW */ + { CPUFUNC(op_e7f9_0), 59385 }, /* ROLW */ + { CPUFUNC(op_e8c0_0), 59584 }, /* BFTST */ + { CPUFUNC(op_e8d0_0), 59600 }, /* BFTST */ + { CPUFUNC(op_e8e8_0), 59624 }, /* BFTST */ + { CPUFUNC(op_e8f0_0), 59632 }, /* BFTST */ + { CPUFUNC(op_e8f8_0), 59640 }, /* BFTST */ + { CPUFUNC(op_e8f9_0), 59641 }, /* BFTST */ + { CPUFUNC(op_e8fa_0), 59642 }, /* BFTST */ + { CPUFUNC(op_e8fb_0), 59643 }, /* BFTST */ + { CPUFUNC(op_e9c0_0), 59840 }, /* BFEXTU */ + { CPUFUNC(op_e9d0_0), 59856 }, /* BFEXTU */ + { CPUFUNC(op_e9e8_0), 59880 }, /* BFEXTU */ + { CPUFUNC(op_e9f0_0), 59888 }, /* BFEXTU */ + { CPUFUNC(op_e9f8_0), 59896 }, /* BFEXTU */ + { CPUFUNC(op_e9f9_0), 59897 }, /* BFEXTU */ + { CPUFUNC(op_e9fa_0), 59898 }, /* BFEXTU */ + { CPUFUNC(op_e9fb_0), 59899 }, /* BFEXTU */ + { CPUFUNC(op_eac0_0), 60096 }, /* BFCHG */ + { CPUFUNC(op_ead0_0), 60112 }, /* BFCHG */ + { CPUFUNC(op_eae8_0), 60136 }, /* BFCHG */ + { CPUFUNC(op_eaf0_0), 60144 }, /* BFCHG */ + { CPUFUNC(op_eaf8_0), 60152 }, /* BFCHG */ + { CPUFUNC(op_eaf9_0), 60153 }, /* BFCHG */ + { CPUFUNC(op_ebc0_0), 60352 }, /* BFEXTS */ + { CPUFUNC(op_ebd0_0), 60368 }, /* BFEXTS */ + { CPUFUNC(op_ebe8_0), 60392 }, /* BFEXTS */ + { CPUFUNC(op_ebf0_0), 60400 }, /* BFEXTS */ + { CPUFUNC(op_ebf8_0), 60408 }, /* BFEXTS */ + { CPUFUNC(op_ebf9_0), 60409 }, /* BFEXTS */ + { CPUFUNC(op_ebfa_0), 60410 }, /* BFEXTS */ + { CPUFUNC(op_ebfb_0), 60411 }, /* BFEXTS */ + { CPUFUNC(op_ecc0_0), 60608 }, /* BFCLR */ + { CPUFUNC(op_ecd0_0), 60624 }, /* BFCLR */ + { CPUFUNC(op_ece8_0), 60648 }, /* BFCLR */ + { CPUFUNC(op_ecf0_0), 60656 }, /* BFCLR */ + { CPUFUNC(op_ecf8_0), 60664 }, /* BFCLR */ + { CPUFUNC(op_ecf9_0), 60665 }, /* BFCLR */ + { CPUFUNC(op_edc0_0), 60864 }, /* BFFFO */ + { CPUFUNC(op_edd0_0), 60880 }, /* BFFFO */ + { CPUFUNC(op_ede8_0), 60904 }, /* BFFFO */ + { CPUFUNC(op_edf0_0), 60912 }, /* BFFFO */ + { CPUFUNC(op_edf8_0), 60920 }, /* BFFFO */ + { CPUFUNC(op_edf9_0), 60921 }, /* BFFFO */ + { CPUFUNC(op_edfa_0), 60922 }, /* BFFFO */ + { CPUFUNC(op_edfb_0), 60923 }, /* BFFFO */ + { CPUFUNC(op_eec0_0), 61120 }, /* BFSET */ + { CPUFUNC(op_eed0_0), 61136 }, /* BFSET */ + { CPUFUNC(op_eee8_0), 61160 }, /* BFSET */ + { CPUFUNC(op_eef0_0), 61168 }, /* BFSET */ + { CPUFUNC(op_eef8_0), 61176 }, /* BFSET */ + { CPUFUNC(op_eef9_0), 61177 }, /* BFSET */ + { CPUFUNC(op_efc0_0), 61376 }, /* BFINS */ + { CPUFUNC(op_efd0_0), 61392 }, /* BFINS */ + { CPUFUNC(op_efe8_0), 61416 }, /* BFINS */ + { CPUFUNC(op_eff0_0), 61424 }, /* BFINS */ + { CPUFUNC(op_eff8_0), 61432 }, /* BFINS */ + { CPUFUNC(op_eff9_0), 61433 }, /* BFINS */ + { CPUFUNC(op_f200_0), 61952 }, /* FPP */ + { CPUFUNC(op_f208_0), 61960 }, /* FPP */ + { CPUFUNC(op_f210_0), 61968 }, /* FPP */ + { CPUFUNC(op_f218_0), 61976 }, /* FPP */ + { CPUFUNC(op_f220_0), 61984 }, /* FPP */ + { CPUFUNC(op_f228_0), 61992 }, /* FPP */ + { CPUFUNC(op_f230_0), 62000 }, /* FPP */ + { CPUFUNC(op_f238_0), 62008 }, /* FPP */ + { CPUFUNC(op_f239_0), 62009 }, /* FPP */ + { CPUFUNC(op_f23a_0), 62010 }, /* FPP */ + { CPUFUNC(op_f23b_0), 62011 }, /* FPP */ + { CPUFUNC(op_f23c_0), 62012 }, /* FPP */ + { CPUFUNC(op_f240_0), 62016 }, /* FScc */ + { CPUFUNC(op_f248_0), 62024 }, /* FDBcc */ + { CPUFUNC(op_f250_0), 62032 }, /* FScc */ + { CPUFUNC(op_f258_0), 62040 }, /* FScc */ + { CPUFUNC(op_f260_0), 62048 }, /* FScc */ + { CPUFUNC(op_f268_0), 62056 }, /* FScc */ + { CPUFUNC(op_f270_0), 62064 }, /* FScc */ + { CPUFUNC(op_f278_0), 62072 }, /* FScc */ + { CPUFUNC(op_f279_0), 62073 }, /* FScc */ + { CPUFUNC(op_f27a_0), 62074 }, /* FTRAPcc */ + { CPUFUNC(op_f27b_0), 62075 }, /* FTRAPcc */ + { CPUFUNC(op_f27c_0), 62076 }, /* FTRAPcc */ + { CPUFUNC(op_f280_0), 62080 }, /* FBcc */ + { CPUFUNC(op_f2c0_0), 62144 }, /* FBcc */ + { CPUFUNC(op_f310_0), 62224 }, /* FSAVE */ + { CPUFUNC(op_f320_0), 62240 }, /* FSAVE */ + { CPUFUNC(op_f328_0), 62248 }, /* FSAVE */ + { CPUFUNC(op_f330_0), 62256 }, /* FSAVE */ + { CPUFUNC(op_f338_0), 62264 }, /* FSAVE */ + { CPUFUNC(op_f339_0), 62265 }, /* FSAVE */ + { CPUFUNC(op_f350_0), 62288 }, /* FRESTORE */ + { CPUFUNC(op_f358_0), 62296 }, /* FRESTORE */ + { CPUFUNC(op_f368_0), 62312 }, /* FRESTORE */ + { CPUFUNC(op_f370_0), 62320 }, /* FRESTORE */ + { CPUFUNC(op_f378_0), 62328 }, /* FRESTORE */ + { CPUFUNC(op_f379_0), 62329 }, /* FRESTORE */ + { CPUFUNC(op_f37a_0), 62330 }, /* FRESTORE */ + { CPUFUNC(op_f37b_0), 62331 }, /* FRESTORE */ + { 0, 0 } +}; +const struct cputbl CPUFUNC(op_smalltbl_4)[] = +{ + { CPUFUNC(op_0000_4), 0 }, /* OR */ + { CPUFUNC(op_0010_4), 16 }, /* OR */ + { CPUFUNC(op_0018_4), 24 }, /* OR */ + { CPUFUNC(op_0020_4), 32 }, /* OR */ + { CPUFUNC(op_0028_4), 40 }, /* OR */ + { CPUFUNC(op_0030_4), 48 }, /* OR */ + { CPUFUNC(op_0038_4), 56 }, /* OR */ + { CPUFUNC(op_0039_4), 57 }, /* OR */ + { CPUFUNC(op_003c_4), 60 }, /* ORSR */ + { CPUFUNC(op_0040_4), 64 }, /* OR */ + { CPUFUNC(op_0050_4), 80 }, /* OR */ + { CPUFUNC(op_0058_4), 88 }, /* OR */ + { CPUFUNC(op_0060_4), 96 }, /* OR */ + { CPUFUNC(op_0068_4), 104 }, /* OR */ + { CPUFUNC(op_0070_4), 112 }, /* OR */ + { CPUFUNC(op_0078_4), 120 }, /* OR */ + { CPUFUNC(op_0079_4), 121 }, /* OR */ + { CPUFUNC(op_007c_4), 124 }, /* ORSR */ + { CPUFUNC(op_0080_4), 128 }, /* OR */ + { CPUFUNC(op_0090_4), 144 }, /* OR */ + { CPUFUNC(op_0098_4), 152 }, /* OR */ + { CPUFUNC(op_00a0_4), 160 }, /* OR */ + { CPUFUNC(op_00a8_4), 168 }, /* OR */ + { CPUFUNC(op_00b0_4), 176 }, /* OR */ + { CPUFUNC(op_00b8_4), 184 }, /* OR */ + { CPUFUNC(op_00b9_4), 185 }, /* OR */ + { CPUFUNC(op_0100_4), 256 }, /* BTST */ + { CPUFUNC(op_0108_4), 264 }, /* MVPMR */ + { CPUFUNC(op_0110_4), 272 }, /* BTST */ + { CPUFUNC(op_0118_4), 280 }, /* BTST */ + { CPUFUNC(op_0120_4), 288 }, /* BTST */ + { CPUFUNC(op_0128_4), 296 }, /* BTST */ + { CPUFUNC(op_0130_4), 304 }, /* BTST */ + { CPUFUNC(op_0138_4), 312 }, /* BTST */ + { CPUFUNC(op_0139_4), 313 }, /* BTST */ + { CPUFUNC(op_013a_4), 314 }, /* BTST */ + { CPUFUNC(op_013b_4), 315 }, /* BTST */ + { CPUFUNC(op_013c_4), 316 }, /* BTST */ + { CPUFUNC(op_0140_4), 320 }, /* BCHG */ + { CPUFUNC(op_0148_4), 328 }, /* MVPMR */ + { CPUFUNC(op_0150_4), 336 }, /* BCHG */ + { CPUFUNC(op_0158_4), 344 }, /* BCHG */ + { CPUFUNC(op_0160_4), 352 }, /* BCHG */ + { CPUFUNC(op_0168_4), 360 }, /* BCHG */ + { CPUFUNC(op_0170_4), 368 }, /* BCHG */ + { CPUFUNC(op_0178_4), 376 }, /* BCHG */ + { CPUFUNC(op_0179_4), 377 }, /* BCHG */ + { CPUFUNC(op_0180_4), 384 }, /* BCLR */ + { CPUFUNC(op_0188_4), 392 }, /* MVPRM */ + { CPUFUNC(op_0190_4), 400 }, /* BCLR */ + { CPUFUNC(op_0198_4), 408 }, /* BCLR */ + { CPUFUNC(op_01a0_4), 416 }, /* BCLR */ + { CPUFUNC(op_01a8_4), 424 }, /* BCLR */ + { CPUFUNC(op_01b0_4), 432 }, /* BCLR */ + { CPUFUNC(op_01b8_4), 440 }, /* BCLR */ + { CPUFUNC(op_01b9_4), 441 }, /* BCLR */ + { CPUFUNC(op_01c0_4), 448 }, /* BSET */ + { CPUFUNC(op_01c8_4), 456 }, /* MVPRM */ + { CPUFUNC(op_01d0_4), 464 }, /* BSET */ + { CPUFUNC(op_01d8_4), 472 }, /* BSET */ + { CPUFUNC(op_01e0_4), 480 }, /* BSET */ + { CPUFUNC(op_01e8_4), 488 }, /* BSET */ + { CPUFUNC(op_01f0_4), 496 }, /* BSET */ + { CPUFUNC(op_01f8_4), 504 }, /* BSET */ + { CPUFUNC(op_01f9_4), 505 }, /* BSET */ + { CPUFUNC(op_0200_4), 512 }, /* AND */ + { CPUFUNC(op_0210_4), 528 }, /* AND */ + { CPUFUNC(op_0218_4), 536 }, /* AND */ + { CPUFUNC(op_0220_4), 544 }, /* AND */ + { CPUFUNC(op_0228_4), 552 }, /* AND */ + { CPUFUNC(op_0230_4), 560 }, /* AND */ + { CPUFUNC(op_0238_4), 568 }, /* AND */ + { CPUFUNC(op_0239_4), 569 }, /* AND */ + { CPUFUNC(op_023c_4), 572 }, /* ANDSR */ + { CPUFUNC(op_0240_4), 576 }, /* AND */ + { CPUFUNC(op_0250_4), 592 }, /* AND */ + { CPUFUNC(op_0258_4), 600 }, /* AND */ + { CPUFUNC(op_0260_4), 608 }, /* AND */ + { CPUFUNC(op_0268_4), 616 }, /* AND */ + { CPUFUNC(op_0270_4), 624 }, /* AND */ + { CPUFUNC(op_0278_4), 632 }, /* AND */ + { CPUFUNC(op_0279_4), 633 }, /* AND */ + { CPUFUNC(op_027c_4), 636 }, /* ANDSR */ + { CPUFUNC(op_0280_4), 640 }, /* AND */ + { CPUFUNC(op_0290_4), 656 }, /* AND */ + { CPUFUNC(op_0298_4), 664 }, /* AND */ + { CPUFUNC(op_02a0_4), 672 }, /* AND */ + { CPUFUNC(op_02a8_4), 680 }, /* AND */ + { CPUFUNC(op_02b0_4), 688 }, /* AND */ + { CPUFUNC(op_02b8_4), 696 }, /* AND */ + { CPUFUNC(op_02b9_4), 697 }, /* AND */ + { CPUFUNC(op_0400_4), 1024 }, /* SUB */ + { CPUFUNC(op_0410_4), 1040 }, /* SUB */ + { CPUFUNC(op_0418_4), 1048 }, /* SUB */ + { CPUFUNC(op_0420_4), 1056 }, /* SUB */ + { CPUFUNC(op_0428_4), 1064 }, /* SUB */ + { CPUFUNC(op_0430_4), 1072 }, /* SUB */ + { CPUFUNC(op_0438_4), 1080 }, /* SUB */ + { CPUFUNC(op_0439_4), 1081 }, /* SUB */ + { CPUFUNC(op_0440_4), 1088 }, /* SUB */ + { CPUFUNC(op_0450_4), 1104 }, /* SUB */ + { CPUFUNC(op_0458_4), 1112 }, /* SUB */ + { CPUFUNC(op_0460_4), 1120 }, /* SUB */ + { CPUFUNC(op_0468_4), 1128 }, /* SUB */ + { CPUFUNC(op_0470_4), 1136 }, /* SUB */ + { CPUFUNC(op_0478_4), 1144 }, /* SUB */ + { CPUFUNC(op_0479_4), 1145 }, /* SUB */ + { CPUFUNC(op_0480_4), 1152 }, /* SUB */ + { CPUFUNC(op_0490_4), 1168 }, /* SUB */ + { CPUFUNC(op_0498_4), 1176 }, /* SUB */ + { CPUFUNC(op_04a0_4), 1184 }, /* SUB */ + { CPUFUNC(op_04a8_4), 1192 }, /* SUB */ + { CPUFUNC(op_04b0_4), 1200 }, /* SUB */ + { CPUFUNC(op_04b8_4), 1208 }, /* SUB */ + { CPUFUNC(op_04b9_4), 1209 }, /* SUB */ + { CPUFUNC(op_0600_4), 1536 }, /* ADD */ + { CPUFUNC(op_0610_4), 1552 }, /* ADD */ + { CPUFUNC(op_0618_4), 1560 }, /* ADD */ + { CPUFUNC(op_0620_4), 1568 }, /* ADD */ + { CPUFUNC(op_0628_4), 1576 }, /* ADD */ + { CPUFUNC(op_0630_4), 1584 }, /* ADD */ + { CPUFUNC(op_0638_4), 1592 }, /* ADD */ + { CPUFUNC(op_0639_4), 1593 }, /* ADD */ + { CPUFUNC(op_0640_4), 1600 }, /* ADD */ + { CPUFUNC(op_0650_4), 1616 }, /* ADD */ + { CPUFUNC(op_0658_4), 1624 }, /* ADD */ + { CPUFUNC(op_0660_4), 1632 }, /* ADD */ + { CPUFUNC(op_0668_4), 1640 }, /* ADD */ + { CPUFUNC(op_0670_4), 1648 }, /* ADD */ + { CPUFUNC(op_0678_4), 1656 }, /* ADD */ + { CPUFUNC(op_0679_4), 1657 }, /* ADD */ + { CPUFUNC(op_0680_4), 1664 }, /* ADD */ + { CPUFUNC(op_0690_4), 1680 }, /* ADD */ + { CPUFUNC(op_0698_4), 1688 }, /* ADD */ + { CPUFUNC(op_06a0_4), 1696 }, /* ADD */ + { CPUFUNC(op_06a8_4), 1704 }, /* ADD */ + { CPUFUNC(op_06b0_4), 1712 }, /* ADD */ + { CPUFUNC(op_06b8_4), 1720 }, /* ADD */ + { CPUFUNC(op_06b9_4), 1721 }, /* ADD */ + { CPUFUNC(op_0800_4), 2048 }, /* BTST */ + { CPUFUNC(op_0810_4), 2064 }, /* BTST */ + { CPUFUNC(op_0818_4), 2072 }, /* BTST */ + { CPUFUNC(op_0820_4), 2080 }, /* BTST */ + { CPUFUNC(op_0828_4), 2088 }, /* BTST */ + { CPUFUNC(op_0830_4), 2096 }, /* BTST */ + { CPUFUNC(op_0838_4), 2104 }, /* BTST */ + { CPUFUNC(op_0839_4), 2105 }, /* BTST */ + { CPUFUNC(op_083a_4), 2106 }, /* BTST */ + { CPUFUNC(op_083b_4), 2107 }, /* BTST */ + { CPUFUNC(op_083c_4), 2108 }, /* BTST */ + { CPUFUNC(op_0840_4), 2112 }, /* BCHG */ + { CPUFUNC(op_0850_4), 2128 }, /* BCHG */ + { CPUFUNC(op_0858_4), 2136 }, /* BCHG */ + { CPUFUNC(op_0860_4), 2144 }, /* BCHG */ + { CPUFUNC(op_0868_4), 2152 }, /* BCHG */ + { CPUFUNC(op_0870_4), 2160 }, /* BCHG */ + { CPUFUNC(op_0878_4), 2168 }, /* BCHG */ + { CPUFUNC(op_0879_4), 2169 }, /* BCHG */ + { CPUFUNC(op_0880_4), 2176 }, /* BCLR */ + { CPUFUNC(op_0890_4), 2192 }, /* BCLR */ + { CPUFUNC(op_0898_4), 2200 }, /* BCLR */ + { CPUFUNC(op_08a0_4), 2208 }, /* BCLR */ + { CPUFUNC(op_08a8_4), 2216 }, /* BCLR */ + { CPUFUNC(op_08b0_4), 2224 }, /* BCLR */ + { CPUFUNC(op_08b8_4), 2232 }, /* BCLR */ + { CPUFUNC(op_08b9_4), 2233 }, /* BCLR */ + { CPUFUNC(op_08c0_4), 2240 }, /* BSET */ + { CPUFUNC(op_08d0_4), 2256 }, /* BSET */ + { CPUFUNC(op_08d8_4), 2264 }, /* BSET */ + { CPUFUNC(op_08e0_4), 2272 }, /* BSET */ + { CPUFUNC(op_08e8_4), 2280 }, /* BSET */ + { CPUFUNC(op_08f0_4), 2288 }, /* BSET */ + { CPUFUNC(op_08f8_4), 2296 }, /* BSET */ + { CPUFUNC(op_08f9_4), 2297 }, /* BSET */ + { CPUFUNC(op_0a00_4), 2560 }, /* EOR */ + { CPUFUNC(op_0a10_4), 2576 }, /* EOR */ + { CPUFUNC(op_0a18_4), 2584 }, /* EOR */ + { CPUFUNC(op_0a20_4), 2592 }, /* EOR */ + { CPUFUNC(op_0a28_4), 2600 }, /* EOR */ + { CPUFUNC(op_0a30_4), 2608 }, /* EOR */ + { CPUFUNC(op_0a38_4), 2616 }, /* EOR */ + { CPUFUNC(op_0a39_4), 2617 }, /* EOR */ + { CPUFUNC(op_0a3c_4), 2620 }, /* EORSR */ + { CPUFUNC(op_0a40_4), 2624 }, /* EOR */ + { CPUFUNC(op_0a50_4), 2640 }, /* EOR */ + { CPUFUNC(op_0a58_4), 2648 }, /* EOR */ + { CPUFUNC(op_0a60_4), 2656 }, /* EOR */ + { CPUFUNC(op_0a68_4), 2664 }, /* EOR */ + { CPUFUNC(op_0a70_4), 2672 }, /* EOR */ + { CPUFUNC(op_0a78_4), 2680 }, /* EOR */ + { CPUFUNC(op_0a79_4), 2681 }, /* EOR */ + { CPUFUNC(op_0a7c_4), 2684 }, /* EORSR */ + { CPUFUNC(op_0a80_4), 2688 }, /* EOR */ + { CPUFUNC(op_0a90_4), 2704 }, /* EOR */ + { CPUFUNC(op_0a98_4), 2712 }, /* EOR */ + { CPUFUNC(op_0aa0_4), 2720 }, /* EOR */ + { CPUFUNC(op_0aa8_4), 2728 }, /* EOR */ + { CPUFUNC(op_0ab0_4), 2736 }, /* EOR */ + { CPUFUNC(op_0ab8_4), 2744 }, /* EOR */ + { CPUFUNC(op_0ab9_4), 2745 }, /* EOR */ + { CPUFUNC(op_0c00_4), 3072 }, /* CMP */ + { CPUFUNC(op_0c10_4), 3088 }, /* CMP */ + { CPUFUNC(op_0c18_4), 3096 }, /* CMP */ + { CPUFUNC(op_0c20_4), 3104 }, /* CMP */ + { CPUFUNC(op_0c28_4), 3112 }, /* CMP */ + { CPUFUNC(op_0c30_4), 3120 }, /* CMP */ + { CPUFUNC(op_0c38_4), 3128 }, /* CMP */ + { CPUFUNC(op_0c39_4), 3129 }, /* CMP */ + { CPUFUNC(op_0c40_4), 3136 }, /* CMP */ + { CPUFUNC(op_0c50_4), 3152 }, /* CMP */ + { CPUFUNC(op_0c58_4), 3160 }, /* CMP */ + { CPUFUNC(op_0c60_4), 3168 }, /* CMP */ + { CPUFUNC(op_0c68_4), 3176 }, /* CMP */ + { CPUFUNC(op_0c70_4), 3184 }, /* CMP */ + { CPUFUNC(op_0c78_4), 3192 }, /* CMP */ + { CPUFUNC(op_0c79_4), 3193 }, /* CMP */ + { CPUFUNC(op_0c80_4), 3200 }, /* CMP */ + { CPUFUNC(op_0c90_4), 3216 }, /* CMP */ + { CPUFUNC(op_0c98_4), 3224 }, /* CMP */ + { CPUFUNC(op_0ca0_4), 3232 }, /* CMP */ + { CPUFUNC(op_0ca8_4), 3240 }, /* CMP */ + { CPUFUNC(op_0cb0_4), 3248 }, /* CMP */ + { CPUFUNC(op_0cb8_4), 3256 }, /* CMP */ + { CPUFUNC(op_0cb9_4), 3257 }, /* CMP */ + { CPUFUNC(op_1000_4), 4096 }, /* MOVE */ + { CPUFUNC(op_1010_4), 4112 }, /* MOVE */ + { CPUFUNC(op_1018_4), 4120 }, /* MOVE */ + { CPUFUNC(op_1020_4), 4128 }, /* MOVE */ + { CPUFUNC(op_1028_4), 4136 }, /* MOVE */ + { CPUFUNC(op_1030_4), 4144 }, /* MOVE */ + { CPUFUNC(op_1038_4), 4152 }, /* MOVE */ + { CPUFUNC(op_1039_4), 4153 }, /* MOVE */ + { CPUFUNC(op_103a_4), 4154 }, /* MOVE */ + { CPUFUNC(op_103b_4), 4155 }, /* MOVE */ + { CPUFUNC(op_103c_4), 4156 }, /* MOVE */ + { CPUFUNC(op_1080_4), 4224 }, /* MOVE */ + { CPUFUNC(op_1090_4), 4240 }, /* MOVE */ + { CPUFUNC(op_1098_4), 4248 }, /* MOVE */ + { CPUFUNC(op_10a0_4), 4256 }, /* MOVE */ + { CPUFUNC(op_10a8_4), 4264 }, /* MOVE */ + { CPUFUNC(op_10b0_4), 4272 }, /* MOVE */ + { CPUFUNC(op_10b8_4), 4280 }, /* MOVE */ + { CPUFUNC(op_10b9_4), 4281 }, /* MOVE */ + { CPUFUNC(op_10ba_4), 4282 }, /* MOVE */ + { CPUFUNC(op_10bb_4), 4283 }, /* MOVE */ + { CPUFUNC(op_10bc_4), 4284 }, /* MOVE */ + { CPUFUNC(op_10c0_4), 4288 }, /* MOVE */ + { CPUFUNC(op_10d0_4), 4304 }, /* MOVE */ + { CPUFUNC(op_10d8_4), 4312 }, /* MOVE */ + { CPUFUNC(op_10e0_4), 4320 }, /* MOVE */ + { CPUFUNC(op_10e8_4), 4328 }, /* MOVE */ + { CPUFUNC(op_10f0_4), 4336 }, /* MOVE */ + { CPUFUNC(op_10f8_4), 4344 }, /* MOVE */ + { CPUFUNC(op_10f9_4), 4345 }, /* MOVE */ + { CPUFUNC(op_10fa_4), 4346 }, /* MOVE */ + { CPUFUNC(op_10fb_4), 4347 }, /* MOVE */ + { CPUFUNC(op_10fc_4), 4348 }, /* MOVE */ + { CPUFUNC(op_1100_4), 4352 }, /* MOVE */ + { CPUFUNC(op_1110_4), 4368 }, /* MOVE */ + { CPUFUNC(op_1118_4), 4376 }, /* MOVE */ + { CPUFUNC(op_1120_4), 4384 }, /* MOVE */ + { CPUFUNC(op_1128_4), 4392 }, /* MOVE */ + { CPUFUNC(op_1130_4), 4400 }, /* MOVE */ + { CPUFUNC(op_1138_4), 4408 }, /* MOVE */ + { CPUFUNC(op_1139_4), 4409 }, /* MOVE */ + { CPUFUNC(op_113a_4), 4410 }, /* MOVE */ + { CPUFUNC(op_113b_4), 4411 }, /* MOVE */ + { CPUFUNC(op_113c_4), 4412 }, /* MOVE */ + { CPUFUNC(op_1140_4), 4416 }, /* MOVE */ + { CPUFUNC(op_1150_4), 4432 }, /* MOVE */ + { CPUFUNC(op_1158_4), 4440 }, /* MOVE */ + { CPUFUNC(op_1160_4), 4448 }, /* MOVE */ + { CPUFUNC(op_1168_4), 4456 }, /* MOVE */ + { CPUFUNC(op_1170_4), 4464 }, /* MOVE */ + { CPUFUNC(op_1178_4), 4472 }, /* MOVE */ + { CPUFUNC(op_1179_4), 4473 }, /* MOVE */ + { CPUFUNC(op_117a_4), 4474 }, /* MOVE */ + { CPUFUNC(op_117b_4), 4475 }, /* MOVE */ + { CPUFUNC(op_117c_4), 4476 }, /* MOVE */ + { CPUFUNC(op_1180_4), 4480 }, /* MOVE */ + { CPUFUNC(op_1190_4), 4496 }, /* MOVE */ + { CPUFUNC(op_1198_4), 4504 }, /* MOVE */ + { CPUFUNC(op_11a0_4), 4512 }, /* MOVE */ + { CPUFUNC(op_11a8_4), 4520 }, /* MOVE */ + { CPUFUNC(op_11b0_4), 4528 }, /* MOVE */ + { CPUFUNC(op_11b8_4), 4536 }, /* MOVE */ + { CPUFUNC(op_11b9_4), 4537 }, /* MOVE */ + { CPUFUNC(op_11ba_4), 4538 }, /* MOVE */ + { CPUFUNC(op_11bb_4), 4539 }, /* MOVE */ + { CPUFUNC(op_11bc_4), 4540 }, /* MOVE */ + { CPUFUNC(op_11c0_4), 4544 }, /* MOVE */ + { CPUFUNC(op_11d0_4), 4560 }, /* MOVE */ + { CPUFUNC(op_11d8_4), 4568 }, /* MOVE */ + { CPUFUNC(op_11e0_4), 4576 }, /* MOVE */ + { CPUFUNC(op_11e8_4), 4584 }, /* MOVE */ + { CPUFUNC(op_11f0_4), 4592 }, /* MOVE */ + { CPUFUNC(op_11f8_4), 4600 }, /* MOVE */ + { CPUFUNC(op_11f9_4), 4601 }, /* MOVE */ + { CPUFUNC(op_11fa_4), 4602 }, /* MOVE */ + { CPUFUNC(op_11fb_4), 4603 }, /* MOVE */ + { CPUFUNC(op_11fc_4), 4604 }, /* MOVE */ + { CPUFUNC(op_13c0_4), 5056 }, /* MOVE */ + { CPUFUNC(op_13d0_4), 5072 }, /* MOVE */ + { CPUFUNC(op_13d8_4), 5080 }, /* MOVE */ + { CPUFUNC(op_13e0_4), 5088 }, /* MOVE */ + { CPUFUNC(op_13e8_4), 5096 }, /* MOVE */ + { CPUFUNC(op_13f0_4), 5104 }, /* MOVE */ + { CPUFUNC(op_13f8_4), 5112 }, /* MOVE */ + { CPUFUNC(op_13f9_4), 5113 }, /* MOVE */ + { CPUFUNC(op_13fa_4), 5114 }, /* MOVE */ + { CPUFUNC(op_13fb_4), 5115 }, /* MOVE */ + { CPUFUNC(op_13fc_4), 5116 }, /* MOVE */ + { CPUFUNC(op_2000_4), 8192 }, /* MOVE */ + { CPUFUNC(op_2008_4), 8200 }, /* MOVE */ + { CPUFUNC(op_2010_4), 8208 }, /* MOVE */ + { CPUFUNC(op_2018_4), 8216 }, /* MOVE */ + { CPUFUNC(op_2020_4), 8224 }, /* MOVE */ + { CPUFUNC(op_2028_4), 8232 }, /* MOVE */ + { CPUFUNC(op_2030_4), 8240 }, /* MOVE */ + { CPUFUNC(op_2038_4), 8248 }, /* MOVE */ + { CPUFUNC(op_2039_4), 8249 }, /* MOVE */ + { CPUFUNC(op_203a_4), 8250 }, /* MOVE */ + { CPUFUNC(op_203b_4), 8251 }, /* MOVE */ + { CPUFUNC(op_203c_4), 8252 }, /* MOVE */ + { CPUFUNC(op_2040_4), 8256 }, /* MOVEA */ + { CPUFUNC(op_2048_4), 8264 }, /* MOVEA */ + { CPUFUNC(op_2050_4), 8272 }, /* MOVEA */ + { CPUFUNC(op_2058_4), 8280 }, /* MOVEA */ + { CPUFUNC(op_2060_4), 8288 }, /* MOVEA */ + { CPUFUNC(op_2068_4), 8296 }, /* MOVEA */ + { CPUFUNC(op_2070_4), 8304 }, /* MOVEA */ + { CPUFUNC(op_2078_4), 8312 }, /* MOVEA */ + { CPUFUNC(op_2079_4), 8313 }, /* MOVEA */ + { CPUFUNC(op_207a_4), 8314 }, /* MOVEA */ + { CPUFUNC(op_207b_4), 8315 }, /* MOVEA */ + { CPUFUNC(op_207c_4), 8316 }, /* MOVEA */ + { CPUFUNC(op_2080_4), 8320 }, /* MOVE */ + { CPUFUNC(op_2088_4), 8328 }, /* MOVE */ + { CPUFUNC(op_2090_4), 8336 }, /* MOVE */ + { CPUFUNC(op_2098_4), 8344 }, /* MOVE */ + { CPUFUNC(op_20a0_4), 8352 }, /* MOVE */ + { CPUFUNC(op_20a8_4), 8360 }, /* MOVE */ + { CPUFUNC(op_20b0_4), 8368 }, /* MOVE */ + { CPUFUNC(op_20b8_4), 8376 }, /* MOVE */ + { CPUFUNC(op_20b9_4), 8377 }, /* MOVE */ + { CPUFUNC(op_20ba_4), 8378 }, /* MOVE */ + { CPUFUNC(op_20bb_4), 8379 }, /* MOVE */ + { CPUFUNC(op_20bc_4), 8380 }, /* MOVE */ + { CPUFUNC(op_20c0_4), 8384 }, /* MOVE */ + { CPUFUNC(op_20c8_4), 8392 }, /* MOVE */ + { CPUFUNC(op_20d0_4), 8400 }, /* MOVE */ + { CPUFUNC(op_20d8_4), 8408 }, /* MOVE */ + { CPUFUNC(op_20e0_4), 8416 }, /* MOVE */ + { CPUFUNC(op_20e8_4), 8424 }, /* MOVE */ + { CPUFUNC(op_20f0_4), 8432 }, /* MOVE */ + { CPUFUNC(op_20f8_4), 8440 }, /* MOVE */ + { CPUFUNC(op_20f9_4), 8441 }, /* MOVE */ + { CPUFUNC(op_20fa_4), 8442 }, /* MOVE */ + { CPUFUNC(op_20fb_4), 8443 }, /* MOVE */ + { CPUFUNC(op_20fc_4), 8444 }, /* MOVE */ + { CPUFUNC(op_2100_4), 8448 }, /* MOVE */ + { CPUFUNC(op_2108_4), 8456 }, /* MOVE */ + { CPUFUNC(op_2110_4), 8464 }, /* MOVE */ + { CPUFUNC(op_2118_4), 8472 }, /* MOVE */ + { CPUFUNC(op_2120_4), 8480 }, /* MOVE */ + { CPUFUNC(op_2128_4), 8488 }, /* MOVE */ + { CPUFUNC(op_2130_4), 8496 }, /* MOVE */ + { CPUFUNC(op_2138_4), 8504 }, /* MOVE */ + { CPUFUNC(op_2139_4), 8505 }, /* MOVE */ + { CPUFUNC(op_213a_4), 8506 }, /* MOVE */ + { CPUFUNC(op_213b_4), 8507 }, /* MOVE */ + { CPUFUNC(op_213c_4), 8508 }, /* MOVE */ + { CPUFUNC(op_2140_4), 8512 }, /* MOVE */ + { CPUFUNC(op_2148_4), 8520 }, /* MOVE */ + { CPUFUNC(op_2150_4), 8528 }, /* MOVE */ + { CPUFUNC(op_2158_4), 8536 }, /* MOVE */ + { CPUFUNC(op_2160_4), 8544 }, /* MOVE */ + { CPUFUNC(op_2168_4), 8552 }, /* MOVE */ + { CPUFUNC(op_2170_4), 8560 }, /* MOVE */ + { CPUFUNC(op_2178_4), 8568 }, /* MOVE */ + { CPUFUNC(op_2179_4), 8569 }, /* MOVE */ + { CPUFUNC(op_217a_4), 8570 }, /* MOVE */ + { CPUFUNC(op_217b_4), 8571 }, /* MOVE */ + { CPUFUNC(op_217c_4), 8572 }, /* MOVE */ + { CPUFUNC(op_2180_4), 8576 }, /* MOVE */ + { CPUFUNC(op_2188_4), 8584 }, /* MOVE */ + { CPUFUNC(op_2190_4), 8592 }, /* MOVE */ + { CPUFUNC(op_2198_4), 8600 }, /* MOVE */ + { CPUFUNC(op_21a0_4), 8608 }, /* MOVE */ + { CPUFUNC(op_21a8_4), 8616 }, /* MOVE */ + { CPUFUNC(op_21b0_4), 8624 }, /* MOVE */ + { CPUFUNC(op_21b8_4), 8632 }, /* MOVE */ + { CPUFUNC(op_21b9_4), 8633 }, /* MOVE */ + { CPUFUNC(op_21ba_4), 8634 }, /* MOVE */ + { CPUFUNC(op_21bb_4), 8635 }, /* MOVE */ + { CPUFUNC(op_21bc_4), 8636 }, /* MOVE */ + { CPUFUNC(op_21c0_4), 8640 }, /* MOVE */ + { CPUFUNC(op_21c8_4), 8648 }, /* MOVE */ + { CPUFUNC(op_21d0_4), 8656 }, /* MOVE */ + { CPUFUNC(op_21d8_4), 8664 }, /* MOVE */ + { CPUFUNC(op_21e0_4), 8672 }, /* MOVE */ + { CPUFUNC(op_21e8_4), 8680 }, /* MOVE */ + { CPUFUNC(op_21f0_4), 8688 }, /* MOVE */ + { CPUFUNC(op_21f8_4), 8696 }, /* MOVE */ + { CPUFUNC(op_21f9_4), 8697 }, /* MOVE */ + { CPUFUNC(op_21fa_4), 8698 }, /* MOVE */ + { CPUFUNC(op_21fb_4), 8699 }, /* MOVE */ + { CPUFUNC(op_21fc_4), 8700 }, /* MOVE */ + { CPUFUNC(op_23c0_4), 9152 }, /* MOVE */ + { CPUFUNC(op_23c8_4), 9160 }, /* MOVE */ + { CPUFUNC(op_23d0_4), 9168 }, /* MOVE */ + { CPUFUNC(op_23d8_4), 9176 }, /* MOVE */ + { CPUFUNC(op_23e0_4), 9184 }, /* MOVE */ + { CPUFUNC(op_23e8_4), 9192 }, /* MOVE */ + { CPUFUNC(op_23f0_4), 9200 }, /* MOVE */ + { CPUFUNC(op_23f8_4), 9208 }, /* MOVE */ + { CPUFUNC(op_23f9_4), 9209 }, /* MOVE */ + { CPUFUNC(op_23fa_4), 9210 }, /* MOVE */ + { CPUFUNC(op_23fb_4), 9211 }, /* MOVE */ + { CPUFUNC(op_23fc_4), 9212 }, /* MOVE */ + { CPUFUNC(op_3000_4), 12288 }, /* MOVE */ + { CPUFUNC(op_3008_4), 12296 }, /* MOVE */ + { CPUFUNC(op_3010_4), 12304 }, /* MOVE */ + { CPUFUNC(op_3018_4), 12312 }, /* MOVE */ + { CPUFUNC(op_3020_4), 12320 }, /* MOVE */ + { CPUFUNC(op_3028_4), 12328 }, /* MOVE */ + { CPUFUNC(op_3030_4), 12336 }, /* MOVE */ + { CPUFUNC(op_3038_4), 12344 }, /* MOVE */ + { CPUFUNC(op_3039_4), 12345 }, /* MOVE */ + { CPUFUNC(op_303a_4), 12346 }, /* MOVE */ + { CPUFUNC(op_303b_4), 12347 }, /* MOVE */ + { CPUFUNC(op_303c_4), 12348 }, /* MOVE */ + { CPUFUNC(op_3040_4), 12352 }, /* MOVEA */ + { CPUFUNC(op_3048_4), 12360 }, /* MOVEA */ + { CPUFUNC(op_3050_4), 12368 }, /* MOVEA */ + { CPUFUNC(op_3058_4), 12376 }, /* MOVEA */ + { CPUFUNC(op_3060_4), 12384 }, /* MOVEA */ + { CPUFUNC(op_3068_4), 12392 }, /* MOVEA */ + { CPUFUNC(op_3070_4), 12400 }, /* MOVEA */ + { CPUFUNC(op_3078_4), 12408 }, /* MOVEA */ + { CPUFUNC(op_3079_4), 12409 }, /* MOVEA */ + { CPUFUNC(op_307a_4), 12410 }, /* MOVEA */ + { CPUFUNC(op_307b_4), 12411 }, /* MOVEA */ + { CPUFUNC(op_307c_4), 12412 }, /* MOVEA */ + { CPUFUNC(op_3080_4), 12416 }, /* MOVE */ + { CPUFUNC(op_3088_4), 12424 }, /* MOVE */ + { CPUFUNC(op_3090_4), 12432 }, /* MOVE */ + { CPUFUNC(op_3098_4), 12440 }, /* MOVE */ + { CPUFUNC(op_30a0_4), 12448 }, /* MOVE */ + { CPUFUNC(op_30a8_4), 12456 }, /* MOVE */ + { CPUFUNC(op_30b0_4), 12464 }, /* MOVE */ + { CPUFUNC(op_30b8_4), 12472 }, /* MOVE */ + { CPUFUNC(op_30b9_4), 12473 }, /* MOVE */ + { CPUFUNC(op_30ba_4), 12474 }, /* MOVE */ + { CPUFUNC(op_30bb_4), 12475 }, /* MOVE */ + { CPUFUNC(op_30bc_4), 12476 }, /* MOVE */ + { CPUFUNC(op_30c0_4), 12480 }, /* MOVE */ + { CPUFUNC(op_30c8_4), 12488 }, /* MOVE */ + { CPUFUNC(op_30d0_4), 12496 }, /* MOVE */ + { CPUFUNC(op_30d8_4), 12504 }, /* MOVE */ + { CPUFUNC(op_30e0_4), 12512 }, /* MOVE */ + { CPUFUNC(op_30e8_4), 12520 }, /* MOVE */ + { CPUFUNC(op_30f0_4), 12528 }, /* MOVE */ + { CPUFUNC(op_30f8_4), 12536 }, /* MOVE */ + { CPUFUNC(op_30f9_4), 12537 }, /* MOVE */ + { CPUFUNC(op_30fa_4), 12538 }, /* MOVE */ + { CPUFUNC(op_30fb_4), 12539 }, /* MOVE */ + { CPUFUNC(op_30fc_4), 12540 }, /* MOVE */ + { CPUFUNC(op_3100_4), 12544 }, /* MOVE */ + { CPUFUNC(op_3108_4), 12552 }, /* MOVE */ + { CPUFUNC(op_3110_4), 12560 }, /* MOVE */ + { CPUFUNC(op_3118_4), 12568 }, /* MOVE */ + { CPUFUNC(op_3120_4), 12576 }, /* MOVE */ + { CPUFUNC(op_3128_4), 12584 }, /* MOVE */ + { CPUFUNC(op_3130_4), 12592 }, /* MOVE */ + { CPUFUNC(op_3138_4), 12600 }, /* MOVE */ + { CPUFUNC(op_3139_4), 12601 }, /* MOVE */ + { CPUFUNC(op_313a_4), 12602 }, /* MOVE */ + { CPUFUNC(op_313b_4), 12603 }, /* MOVE */ + { CPUFUNC(op_313c_4), 12604 }, /* MOVE */ + { CPUFUNC(op_3140_4), 12608 }, /* MOVE */ + { CPUFUNC(op_3148_4), 12616 }, /* MOVE */ + { CPUFUNC(op_3150_4), 12624 }, /* MOVE */ + { CPUFUNC(op_3158_4), 12632 }, /* MOVE */ + { CPUFUNC(op_3160_4), 12640 }, /* MOVE */ + { CPUFUNC(op_3168_4), 12648 }, /* MOVE */ + { CPUFUNC(op_3170_4), 12656 }, /* MOVE */ + { CPUFUNC(op_3178_4), 12664 }, /* MOVE */ + { CPUFUNC(op_3179_4), 12665 }, /* MOVE */ + { CPUFUNC(op_317a_4), 12666 }, /* MOVE */ + { CPUFUNC(op_317b_4), 12667 }, /* MOVE */ + { CPUFUNC(op_317c_4), 12668 }, /* MOVE */ + { CPUFUNC(op_3180_4), 12672 }, /* MOVE */ + { CPUFUNC(op_3188_4), 12680 }, /* MOVE */ + { CPUFUNC(op_3190_4), 12688 }, /* MOVE */ + { CPUFUNC(op_3198_4), 12696 }, /* MOVE */ + { CPUFUNC(op_31a0_4), 12704 }, /* MOVE */ + { CPUFUNC(op_31a8_4), 12712 }, /* MOVE */ + { CPUFUNC(op_31b0_4), 12720 }, /* MOVE */ + { CPUFUNC(op_31b8_4), 12728 }, /* MOVE */ + { CPUFUNC(op_31b9_4), 12729 }, /* MOVE */ + { CPUFUNC(op_31ba_4), 12730 }, /* MOVE */ + { CPUFUNC(op_31bb_4), 12731 }, /* MOVE */ + { CPUFUNC(op_31bc_4), 12732 }, /* MOVE */ + { CPUFUNC(op_31c0_4), 12736 }, /* MOVE */ + { CPUFUNC(op_31c8_4), 12744 }, /* MOVE */ + { CPUFUNC(op_31d0_4), 12752 }, /* MOVE */ + { CPUFUNC(op_31d8_4), 12760 }, /* MOVE */ + { CPUFUNC(op_31e0_4), 12768 }, /* MOVE */ + { CPUFUNC(op_31e8_4), 12776 }, /* MOVE */ + { CPUFUNC(op_31f0_4), 12784 }, /* MOVE */ + { CPUFUNC(op_31f8_4), 12792 }, /* MOVE */ + { CPUFUNC(op_31f9_4), 12793 }, /* MOVE */ + { CPUFUNC(op_31fa_4), 12794 }, /* MOVE */ + { CPUFUNC(op_31fb_4), 12795 }, /* MOVE */ + { CPUFUNC(op_31fc_4), 12796 }, /* MOVE */ + { CPUFUNC(op_33c0_4), 13248 }, /* MOVE */ + { CPUFUNC(op_33c8_4), 13256 }, /* MOVE */ + { CPUFUNC(op_33d0_4), 13264 }, /* MOVE */ + { CPUFUNC(op_33d8_4), 13272 }, /* MOVE */ + { CPUFUNC(op_33e0_4), 13280 }, /* MOVE */ + { CPUFUNC(op_33e8_4), 13288 }, /* MOVE */ + { CPUFUNC(op_33f0_4), 13296 }, /* MOVE */ + { CPUFUNC(op_33f8_4), 13304 }, /* MOVE */ + { CPUFUNC(op_33f9_4), 13305 }, /* MOVE */ + { CPUFUNC(op_33fa_4), 13306 }, /* MOVE */ + { CPUFUNC(op_33fb_4), 13307 }, /* MOVE */ + { CPUFUNC(op_33fc_4), 13308 }, /* MOVE */ + { CPUFUNC(op_4000_4), 16384 }, /* NEGX */ + { CPUFUNC(op_4010_4), 16400 }, /* NEGX */ + { CPUFUNC(op_4018_4), 16408 }, /* NEGX */ + { CPUFUNC(op_4020_4), 16416 }, /* NEGX */ + { CPUFUNC(op_4028_4), 16424 }, /* NEGX */ + { CPUFUNC(op_4030_4), 16432 }, /* NEGX */ + { CPUFUNC(op_4038_4), 16440 }, /* NEGX */ + { CPUFUNC(op_4039_4), 16441 }, /* NEGX */ + { CPUFUNC(op_4040_4), 16448 }, /* NEGX */ + { CPUFUNC(op_4050_4), 16464 }, /* NEGX */ + { CPUFUNC(op_4058_4), 16472 }, /* NEGX */ + { CPUFUNC(op_4060_4), 16480 }, /* NEGX */ + { CPUFUNC(op_4068_4), 16488 }, /* NEGX */ + { CPUFUNC(op_4070_4), 16496 }, /* NEGX */ + { CPUFUNC(op_4078_4), 16504 }, /* NEGX */ + { CPUFUNC(op_4079_4), 16505 }, /* NEGX */ + { CPUFUNC(op_4080_4), 16512 }, /* NEGX */ + { CPUFUNC(op_4090_4), 16528 }, /* NEGX */ + { CPUFUNC(op_4098_4), 16536 }, /* NEGX */ + { CPUFUNC(op_40a0_4), 16544 }, /* NEGX */ + { CPUFUNC(op_40a8_4), 16552 }, /* NEGX */ + { CPUFUNC(op_40b0_4), 16560 }, /* NEGX */ + { CPUFUNC(op_40b8_4), 16568 }, /* NEGX */ + { CPUFUNC(op_40b9_4), 16569 }, /* NEGX */ + { CPUFUNC(op_40c0_4), 16576 }, /* MVSR2 */ + { CPUFUNC(op_40d0_4), 16592 }, /* MVSR2 */ + { CPUFUNC(op_40d8_4), 16600 }, /* MVSR2 */ + { CPUFUNC(op_40e0_4), 16608 }, /* MVSR2 */ + { CPUFUNC(op_40e8_4), 16616 }, /* MVSR2 */ + { CPUFUNC(op_40f0_4), 16624 }, /* MVSR2 */ + { CPUFUNC(op_40f8_4), 16632 }, /* MVSR2 */ + { CPUFUNC(op_40f9_4), 16633 }, /* MVSR2 */ + { CPUFUNC(op_4180_4), 16768 }, /* CHK */ + { CPUFUNC(op_4190_4), 16784 }, /* CHK */ + { CPUFUNC(op_4198_4), 16792 }, /* CHK */ + { CPUFUNC(op_41a0_4), 16800 }, /* CHK */ + { CPUFUNC(op_41a8_4), 16808 }, /* CHK */ + { CPUFUNC(op_41b0_4), 16816 }, /* CHK */ + { CPUFUNC(op_41b8_4), 16824 }, /* CHK */ + { CPUFUNC(op_41b9_4), 16825 }, /* CHK */ + { CPUFUNC(op_41ba_4), 16826 }, /* CHK */ + { CPUFUNC(op_41bb_4), 16827 }, /* CHK */ + { CPUFUNC(op_41bc_4), 16828 }, /* CHK */ + { CPUFUNC(op_41d0_4), 16848 }, /* LEA */ + { CPUFUNC(op_41e8_4), 16872 }, /* LEA */ + { CPUFUNC(op_41f0_4), 16880 }, /* LEA */ + { CPUFUNC(op_41f8_4), 16888 }, /* LEA */ + { CPUFUNC(op_41f9_4), 16889 }, /* LEA */ + { CPUFUNC(op_41fa_4), 16890 }, /* LEA */ + { CPUFUNC(op_41fb_4), 16891 }, /* LEA */ + { CPUFUNC(op_4200_4), 16896 }, /* CLR */ + { CPUFUNC(op_4210_4), 16912 }, /* CLR */ + { CPUFUNC(op_4218_4), 16920 }, /* CLR */ + { CPUFUNC(op_4220_4), 16928 }, /* CLR */ + { CPUFUNC(op_4228_4), 16936 }, /* CLR */ + { CPUFUNC(op_4230_4), 16944 }, /* CLR */ + { CPUFUNC(op_4238_4), 16952 }, /* CLR */ + { CPUFUNC(op_4239_4), 16953 }, /* CLR */ + { CPUFUNC(op_4240_4), 16960 }, /* CLR */ + { CPUFUNC(op_4250_4), 16976 }, /* CLR */ + { CPUFUNC(op_4258_4), 16984 }, /* CLR */ + { CPUFUNC(op_4260_4), 16992 }, /* CLR */ + { CPUFUNC(op_4268_4), 17000 }, /* CLR */ + { CPUFUNC(op_4270_4), 17008 }, /* CLR */ + { CPUFUNC(op_4278_4), 17016 }, /* CLR */ + { CPUFUNC(op_4279_4), 17017 }, /* CLR */ + { CPUFUNC(op_4280_4), 17024 }, /* CLR */ + { CPUFUNC(op_4290_4), 17040 }, /* CLR */ + { CPUFUNC(op_4298_4), 17048 }, /* CLR */ + { CPUFUNC(op_42a0_4), 17056 }, /* CLR */ + { CPUFUNC(op_42a8_4), 17064 }, /* CLR */ + { CPUFUNC(op_42b0_4), 17072 }, /* CLR */ + { CPUFUNC(op_42b8_4), 17080 }, /* CLR */ + { CPUFUNC(op_42b9_4), 17081 }, /* CLR */ + { CPUFUNC(op_42c0_4), 17088 }, /* MVSR2 */ + { CPUFUNC(op_42d0_4), 17104 }, /* MVSR2 */ + { CPUFUNC(op_42d8_4), 17112 }, /* MVSR2 */ + { CPUFUNC(op_42e0_4), 17120 }, /* MVSR2 */ + { CPUFUNC(op_42e8_4), 17128 }, /* MVSR2 */ + { CPUFUNC(op_42f0_4), 17136 }, /* MVSR2 */ + { CPUFUNC(op_42f8_4), 17144 }, /* MVSR2 */ + { CPUFUNC(op_42f9_4), 17145 }, /* MVSR2 */ + { CPUFUNC(op_4400_4), 17408 }, /* NEG */ + { CPUFUNC(op_4410_4), 17424 }, /* NEG */ + { CPUFUNC(op_4418_4), 17432 }, /* NEG */ + { CPUFUNC(op_4420_4), 17440 }, /* NEG */ + { CPUFUNC(op_4428_4), 17448 }, /* NEG */ + { CPUFUNC(op_4430_4), 17456 }, /* NEG */ + { CPUFUNC(op_4438_4), 17464 }, /* NEG */ + { CPUFUNC(op_4439_4), 17465 }, /* NEG */ + { CPUFUNC(op_4440_4), 17472 }, /* NEG */ + { CPUFUNC(op_4450_4), 17488 }, /* NEG */ + { CPUFUNC(op_4458_4), 17496 }, /* NEG */ + { CPUFUNC(op_4460_4), 17504 }, /* NEG */ + { CPUFUNC(op_4468_4), 17512 }, /* NEG */ + { CPUFUNC(op_4470_4), 17520 }, /* NEG */ + { CPUFUNC(op_4478_4), 17528 }, /* NEG */ + { CPUFUNC(op_4479_4), 17529 }, /* NEG */ + { CPUFUNC(op_4480_4), 17536 }, /* NEG */ + { CPUFUNC(op_4490_4), 17552 }, /* NEG */ + { CPUFUNC(op_4498_4), 17560 }, /* NEG */ + { CPUFUNC(op_44a0_4), 17568 }, /* NEG */ + { CPUFUNC(op_44a8_4), 17576 }, /* NEG */ + { CPUFUNC(op_44b0_4), 17584 }, /* NEG */ + { CPUFUNC(op_44b8_4), 17592 }, /* NEG */ + { CPUFUNC(op_44b9_4), 17593 }, /* NEG */ + { CPUFUNC(op_44c0_4), 17600 }, /* MV2SR */ + { CPUFUNC(op_44d0_4), 17616 }, /* MV2SR */ + { CPUFUNC(op_44d8_4), 17624 }, /* MV2SR */ + { CPUFUNC(op_44e0_4), 17632 }, /* MV2SR */ + { CPUFUNC(op_44e8_4), 17640 }, /* MV2SR */ + { CPUFUNC(op_44f0_4), 17648 }, /* MV2SR */ + { CPUFUNC(op_44f8_4), 17656 }, /* MV2SR */ + { CPUFUNC(op_44f9_4), 17657 }, /* MV2SR */ + { CPUFUNC(op_44fa_4), 17658 }, /* MV2SR */ + { CPUFUNC(op_44fb_4), 17659 }, /* MV2SR */ + { CPUFUNC(op_44fc_4), 17660 }, /* MV2SR */ + { CPUFUNC(op_4600_4), 17920 }, /* NOT */ + { CPUFUNC(op_4610_4), 17936 }, /* NOT */ + { CPUFUNC(op_4618_4), 17944 }, /* NOT */ + { CPUFUNC(op_4620_4), 17952 }, /* NOT */ + { CPUFUNC(op_4628_4), 17960 }, /* NOT */ + { CPUFUNC(op_4630_4), 17968 }, /* NOT */ + { CPUFUNC(op_4638_4), 17976 }, /* NOT */ + { CPUFUNC(op_4639_4), 17977 }, /* NOT */ + { CPUFUNC(op_4640_4), 17984 }, /* NOT */ + { CPUFUNC(op_4650_4), 18000 }, /* NOT */ + { CPUFUNC(op_4658_4), 18008 }, /* NOT */ + { CPUFUNC(op_4660_4), 18016 }, /* NOT */ + { CPUFUNC(op_4668_4), 18024 }, /* NOT */ + { CPUFUNC(op_4670_4), 18032 }, /* NOT */ + { CPUFUNC(op_4678_4), 18040 }, /* NOT */ + { CPUFUNC(op_4679_4), 18041 }, /* NOT */ + { CPUFUNC(op_4680_4), 18048 }, /* NOT */ + { CPUFUNC(op_4690_4), 18064 }, /* NOT */ + { CPUFUNC(op_4698_4), 18072 }, /* NOT */ + { CPUFUNC(op_46a0_4), 18080 }, /* NOT */ + { CPUFUNC(op_46a8_4), 18088 }, /* NOT */ + { CPUFUNC(op_46b0_4), 18096 }, /* NOT */ + { CPUFUNC(op_46b8_4), 18104 }, /* NOT */ + { CPUFUNC(op_46b9_4), 18105 }, /* NOT */ + { CPUFUNC(op_46c0_4), 18112 }, /* MV2SR */ + { CPUFUNC(op_46d0_4), 18128 }, /* MV2SR */ + { CPUFUNC(op_46d8_4), 18136 }, /* MV2SR */ + { CPUFUNC(op_46e0_4), 18144 }, /* MV2SR */ + { CPUFUNC(op_46e8_4), 18152 }, /* MV2SR */ + { CPUFUNC(op_46f0_4), 18160 }, /* MV2SR */ + { CPUFUNC(op_46f8_4), 18168 }, /* MV2SR */ + { CPUFUNC(op_46f9_4), 18169 }, /* MV2SR */ + { CPUFUNC(op_46fa_4), 18170 }, /* MV2SR */ + { CPUFUNC(op_46fb_4), 18171 }, /* MV2SR */ + { CPUFUNC(op_46fc_4), 18172 }, /* MV2SR */ + { CPUFUNC(op_4800_4), 18432 }, /* NBCD */ + { CPUFUNC(op_4810_4), 18448 }, /* NBCD */ + { CPUFUNC(op_4818_4), 18456 }, /* NBCD */ + { CPUFUNC(op_4820_4), 18464 }, /* NBCD */ + { CPUFUNC(op_4828_4), 18472 }, /* NBCD */ + { CPUFUNC(op_4830_4), 18480 }, /* NBCD */ + { CPUFUNC(op_4838_4), 18488 }, /* NBCD */ + { CPUFUNC(op_4839_4), 18489 }, /* NBCD */ + { CPUFUNC(op_4840_4), 18496 }, /* SWAP */ + { CPUFUNC(op_4850_4), 18512 }, /* PEA */ + { CPUFUNC(op_4868_4), 18536 }, /* PEA */ + { CPUFUNC(op_4870_4), 18544 }, /* PEA */ + { CPUFUNC(op_4878_4), 18552 }, /* PEA */ + { CPUFUNC(op_4879_4), 18553 }, /* PEA */ + { CPUFUNC(op_487a_4), 18554 }, /* PEA */ + { CPUFUNC(op_487b_4), 18555 }, /* PEA */ + { CPUFUNC(op_4880_4), 18560 }, /* EXT */ + { CPUFUNC(op_4890_4), 18576 }, /* MVMLE */ + { CPUFUNC(op_48a0_4), 18592 }, /* MVMLE */ + { CPUFUNC(op_48a8_4), 18600 }, /* MVMLE */ + { CPUFUNC(op_48b0_4), 18608 }, /* MVMLE */ + { CPUFUNC(op_48b8_4), 18616 }, /* MVMLE */ + { CPUFUNC(op_48b9_4), 18617 }, /* MVMLE */ + { CPUFUNC(op_48c0_4), 18624 }, /* EXT */ + { CPUFUNC(op_48d0_4), 18640 }, /* MVMLE */ + { CPUFUNC(op_48e0_4), 18656 }, /* MVMLE */ + { CPUFUNC(op_48e8_4), 18664 }, /* MVMLE */ + { CPUFUNC(op_48f0_4), 18672 }, /* MVMLE */ + { CPUFUNC(op_48f8_4), 18680 }, /* MVMLE */ + { CPUFUNC(op_48f9_4), 18681 }, /* MVMLE */ + { CPUFUNC(op_4a00_4), 18944 }, /* TST */ + { CPUFUNC(op_4a10_4), 18960 }, /* TST */ + { CPUFUNC(op_4a18_4), 18968 }, /* TST */ + { CPUFUNC(op_4a20_4), 18976 }, /* TST */ + { CPUFUNC(op_4a28_4), 18984 }, /* TST */ + { CPUFUNC(op_4a30_4), 18992 }, /* TST */ + { CPUFUNC(op_4a38_4), 19000 }, /* TST */ + { CPUFUNC(op_4a39_4), 19001 }, /* TST */ + { CPUFUNC(op_4a3c_4), 19004 }, /* TST */ + { CPUFUNC(op_4a40_4), 19008 }, /* TST */ + { CPUFUNC(op_4a50_4), 19024 }, /* TST */ + { CPUFUNC(op_4a58_4), 19032 }, /* TST */ + { CPUFUNC(op_4a60_4), 19040 }, /* TST */ + { CPUFUNC(op_4a68_4), 19048 }, /* TST */ + { CPUFUNC(op_4a70_4), 19056 }, /* TST */ + { CPUFUNC(op_4a78_4), 19064 }, /* TST */ + { CPUFUNC(op_4a79_4), 19065 }, /* TST */ + { CPUFUNC(op_4a7c_4), 19068 }, /* TST */ + { CPUFUNC(op_4a80_4), 19072 }, /* TST */ + { CPUFUNC(op_4a90_4), 19088 }, /* TST */ + { CPUFUNC(op_4a98_4), 19096 }, /* TST */ + { CPUFUNC(op_4aa0_4), 19104 }, /* TST */ + { CPUFUNC(op_4aa8_4), 19112 }, /* TST */ + { CPUFUNC(op_4ab0_4), 19120 }, /* TST */ + { CPUFUNC(op_4ab8_4), 19128 }, /* TST */ + { CPUFUNC(op_4ab9_4), 19129 }, /* TST */ + { CPUFUNC(op_4abc_4), 19132 }, /* TST */ + { CPUFUNC(op_4ac0_4), 19136 }, /* TAS */ + { CPUFUNC(op_4ad0_4), 19152 }, /* TAS */ + { CPUFUNC(op_4ad8_4), 19160 }, /* TAS */ + { CPUFUNC(op_4ae0_4), 19168 }, /* TAS */ + { CPUFUNC(op_4ae8_4), 19176 }, /* TAS */ + { CPUFUNC(op_4af0_4), 19184 }, /* TAS */ + { CPUFUNC(op_4af8_4), 19192 }, /* TAS */ + { CPUFUNC(op_4af9_4), 19193 }, /* TAS */ + { CPUFUNC(op_4c90_4), 19600 }, /* MVMEL */ + { CPUFUNC(op_4c98_4), 19608 }, /* MVMEL */ + { CPUFUNC(op_4ca8_4), 19624 }, /* MVMEL */ + { CPUFUNC(op_4cb0_4), 19632 }, /* MVMEL */ + { CPUFUNC(op_4cb8_4), 19640 }, /* MVMEL */ + { CPUFUNC(op_4cb9_4), 19641 }, /* MVMEL */ + { CPUFUNC(op_4cba_4), 19642 }, /* MVMEL */ + { CPUFUNC(op_4cbb_4), 19643 }, /* MVMEL */ + { CPUFUNC(op_4cd0_4), 19664 }, /* MVMEL */ + { CPUFUNC(op_4cd8_4), 19672 }, /* MVMEL */ + { CPUFUNC(op_4ce8_4), 19688 }, /* MVMEL */ + { CPUFUNC(op_4cf0_4), 19696 }, /* MVMEL */ + { CPUFUNC(op_4cf8_4), 19704 }, /* MVMEL */ + { CPUFUNC(op_4cf9_4), 19705 }, /* MVMEL */ + { CPUFUNC(op_4cfa_4), 19706 }, /* MVMEL */ + { CPUFUNC(op_4cfb_4), 19707 }, /* MVMEL */ + { CPUFUNC(op_4e40_4), 20032 }, /* TRAP */ + { CPUFUNC(op_4e50_4), 20048 }, /* LINK */ + { CPUFUNC(op_4e58_4), 20056 }, /* UNLK */ + { CPUFUNC(op_4e60_4), 20064 }, /* MVR2USP */ + { CPUFUNC(op_4e68_4), 20072 }, /* MVUSP2R */ + { CPUFUNC(op_4e70_4), 20080 }, /* RESET */ + { CPUFUNC(op_4e71_4), 20081 }, /* NOP */ + { CPUFUNC(op_4e72_4), 20082 }, /* STOP */ + { CPUFUNC(op_4e73_4), 20083 }, /* RTE */ + { CPUFUNC(op_4e74_4), 20084 }, /* RTD */ + { CPUFUNC(op_4e75_4), 20085 }, /* RTS */ + { CPUFUNC(op_4e76_4), 20086 }, /* TRAPV */ + { CPUFUNC(op_4e77_4), 20087 }, /* RTR */ + { CPUFUNC(op_4e7a_4), 20090 }, /* MOVEC2 */ + { CPUFUNC(op_4e7b_4), 20091 }, /* MOVE2C */ + { CPUFUNC(op_4e90_4), 20112 }, /* JSR */ + { CPUFUNC(op_4ea8_4), 20136 }, /* JSR */ + { CPUFUNC(op_4eb0_4), 20144 }, /* JSR */ + { CPUFUNC(op_4eb8_4), 20152 }, /* JSR */ + { CPUFUNC(op_4eb9_4), 20153 }, /* JSR */ + { CPUFUNC(op_4eba_4), 20154 }, /* JSR */ + { CPUFUNC(op_4ebb_4), 20155 }, /* JSR */ + { CPUFUNC(op_4ed0_4), 20176 }, /* JMP */ + { CPUFUNC(op_4ee8_4), 20200 }, /* JMP */ + { CPUFUNC(op_4ef0_4), 20208 }, /* JMP */ + { CPUFUNC(op_4ef8_4), 20216 }, /* JMP */ + { CPUFUNC(op_4ef9_4), 20217 }, /* JMP */ + { CPUFUNC(op_4efa_4), 20218 }, /* JMP */ + { CPUFUNC(op_4efb_4), 20219 }, /* JMP */ + { CPUFUNC(op_5000_4), 20480 }, /* ADD */ + { CPUFUNC(op_5010_4), 20496 }, /* ADD */ + { CPUFUNC(op_5018_4), 20504 }, /* ADD */ + { CPUFUNC(op_5020_4), 20512 }, /* ADD */ + { CPUFUNC(op_5028_4), 20520 }, /* ADD */ + { CPUFUNC(op_5030_4), 20528 }, /* ADD */ + { CPUFUNC(op_5038_4), 20536 }, /* ADD */ + { CPUFUNC(op_5039_4), 20537 }, /* ADD */ + { CPUFUNC(op_5040_4), 20544 }, /* ADD */ + { CPUFUNC(op_5048_4), 20552 }, /* ADDA */ + { CPUFUNC(op_5050_4), 20560 }, /* ADD */ + { CPUFUNC(op_5058_4), 20568 }, /* ADD */ + { CPUFUNC(op_5060_4), 20576 }, /* ADD */ + { CPUFUNC(op_5068_4), 20584 }, /* ADD */ + { CPUFUNC(op_5070_4), 20592 }, /* ADD */ + { CPUFUNC(op_5078_4), 20600 }, /* ADD */ + { CPUFUNC(op_5079_4), 20601 }, /* ADD */ + { CPUFUNC(op_5080_4), 20608 }, /* ADD */ + { CPUFUNC(op_5088_4), 20616 }, /* ADDA */ + { CPUFUNC(op_5090_4), 20624 }, /* ADD */ + { CPUFUNC(op_5098_4), 20632 }, /* ADD */ + { CPUFUNC(op_50a0_4), 20640 }, /* ADD */ + { CPUFUNC(op_50a8_4), 20648 }, /* ADD */ + { CPUFUNC(op_50b0_4), 20656 }, /* ADD */ + { CPUFUNC(op_50b8_4), 20664 }, /* ADD */ + { CPUFUNC(op_50b9_4), 20665 }, /* ADD */ + { CPUFUNC(op_50c0_4), 20672 }, /* Scc */ + { CPUFUNC(op_50c8_4), 20680 }, /* DBcc */ + { CPUFUNC(op_50d0_4), 20688 }, /* Scc */ + { CPUFUNC(op_50d8_4), 20696 }, /* Scc */ + { CPUFUNC(op_50e0_4), 20704 }, /* Scc */ + { CPUFUNC(op_50e8_4), 20712 }, /* Scc */ + { CPUFUNC(op_50f0_4), 20720 }, /* Scc */ + { CPUFUNC(op_50f8_4), 20728 }, /* Scc */ + { CPUFUNC(op_50f9_4), 20729 }, /* Scc */ + { CPUFUNC(op_5100_4), 20736 }, /* SUB */ + { CPUFUNC(op_5110_4), 20752 }, /* SUB */ + { CPUFUNC(op_5118_4), 20760 }, /* SUB */ + { CPUFUNC(op_5120_4), 20768 }, /* SUB */ + { CPUFUNC(op_5128_4), 20776 }, /* SUB */ + { CPUFUNC(op_5130_4), 20784 }, /* SUB */ + { CPUFUNC(op_5138_4), 20792 }, /* SUB */ + { CPUFUNC(op_5139_4), 20793 }, /* SUB */ + { CPUFUNC(op_5140_4), 20800 }, /* SUB */ + { CPUFUNC(op_5148_4), 20808 }, /* SUBA */ + { CPUFUNC(op_5150_4), 20816 }, /* SUB */ + { CPUFUNC(op_5158_4), 20824 }, /* SUB */ + { CPUFUNC(op_5160_4), 20832 }, /* SUB */ + { CPUFUNC(op_5168_4), 20840 }, /* SUB */ + { CPUFUNC(op_5170_4), 20848 }, /* SUB */ + { CPUFUNC(op_5178_4), 20856 }, /* SUB */ + { CPUFUNC(op_5179_4), 20857 }, /* SUB */ + { CPUFUNC(op_5180_4), 20864 }, /* SUB */ + { CPUFUNC(op_5188_4), 20872 }, /* SUBA */ + { CPUFUNC(op_5190_4), 20880 }, /* SUB */ + { CPUFUNC(op_5198_4), 20888 }, /* SUB */ + { CPUFUNC(op_51a0_4), 20896 }, /* SUB */ + { CPUFUNC(op_51a8_4), 20904 }, /* SUB */ + { CPUFUNC(op_51b0_4), 20912 }, /* SUB */ + { CPUFUNC(op_51b8_4), 20920 }, /* SUB */ + { CPUFUNC(op_51b9_4), 20921 }, /* SUB */ + { CPUFUNC(op_51c0_4), 20928 }, /* Scc */ + { CPUFUNC(op_51c8_4), 20936 }, /* DBcc */ + { CPUFUNC(op_51d0_4), 20944 }, /* Scc */ + { CPUFUNC(op_51d8_4), 20952 }, /* Scc */ + { CPUFUNC(op_51e0_4), 20960 }, /* Scc */ + { CPUFUNC(op_51e8_4), 20968 }, /* Scc */ + { CPUFUNC(op_51f0_4), 20976 }, /* Scc */ + { CPUFUNC(op_51f8_4), 20984 }, /* Scc */ + { CPUFUNC(op_51f9_4), 20985 }, /* Scc */ + { CPUFUNC(op_52c0_4), 21184 }, /* Scc */ + { CPUFUNC(op_52c8_4), 21192 }, /* DBcc */ + { CPUFUNC(op_52d0_4), 21200 }, /* Scc */ + { CPUFUNC(op_52d8_4), 21208 }, /* Scc */ + { CPUFUNC(op_52e0_4), 21216 }, /* Scc */ + { CPUFUNC(op_52e8_4), 21224 }, /* Scc */ + { CPUFUNC(op_52f0_4), 21232 }, /* Scc */ + { CPUFUNC(op_52f8_4), 21240 }, /* Scc */ + { CPUFUNC(op_52f9_4), 21241 }, /* Scc */ + { CPUFUNC(op_53c0_4), 21440 }, /* Scc */ + { CPUFUNC(op_53c8_4), 21448 }, /* DBcc */ + { CPUFUNC(op_53d0_4), 21456 }, /* Scc */ + { CPUFUNC(op_53d8_4), 21464 }, /* Scc */ + { CPUFUNC(op_53e0_4), 21472 }, /* Scc */ + { CPUFUNC(op_53e8_4), 21480 }, /* Scc */ + { CPUFUNC(op_53f0_4), 21488 }, /* Scc */ + { CPUFUNC(op_53f8_4), 21496 }, /* Scc */ + { CPUFUNC(op_53f9_4), 21497 }, /* Scc */ + { CPUFUNC(op_54c0_4), 21696 }, /* Scc */ + { CPUFUNC(op_54c8_4), 21704 }, /* DBcc */ + { CPUFUNC(op_54d0_4), 21712 }, /* Scc */ + { CPUFUNC(op_54d8_4), 21720 }, /* Scc */ + { CPUFUNC(op_54e0_4), 21728 }, /* Scc */ + { CPUFUNC(op_54e8_4), 21736 }, /* Scc */ + { CPUFUNC(op_54f0_4), 21744 }, /* Scc */ + { CPUFUNC(op_54f8_4), 21752 }, /* Scc */ + { CPUFUNC(op_54f9_4), 21753 }, /* Scc */ + { CPUFUNC(op_55c0_4), 21952 }, /* Scc */ + { CPUFUNC(op_55c8_4), 21960 }, /* DBcc */ + { CPUFUNC(op_55d0_4), 21968 }, /* Scc */ + { CPUFUNC(op_55d8_4), 21976 }, /* Scc */ + { CPUFUNC(op_55e0_4), 21984 }, /* Scc */ + { CPUFUNC(op_55e8_4), 21992 }, /* Scc */ + { CPUFUNC(op_55f0_4), 22000 }, /* Scc */ + { CPUFUNC(op_55f8_4), 22008 }, /* Scc */ + { CPUFUNC(op_55f9_4), 22009 }, /* Scc */ + { CPUFUNC(op_56c0_4), 22208 }, /* Scc */ + { CPUFUNC(op_56c8_4), 22216 }, /* DBcc */ + { CPUFUNC(op_56d0_4), 22224 }, /* Scc */ + { CPUFUNC(op_56d8_4), 22232 }, /* Scc */ + { CPUFUNC(op_56e0_4), 22240 }, /* Scc */ + { CPUFUNC(op_56e8_4), 22248 }, /* Scc */ + { CPUFUNC(op_56f0_4), 22256 }, /* Scc */ + { CPUFUNC(op_56f8_4), 22264 }, /* Scc */ + { CPUFUNC(op_56f9_4), 22265 }, /* Scc */ + { CPUFUNC(op_57c0_4), 22464 }, /* Scc */ + { CPUFUNC(op_57c8_4), 22472 }, /* DBcc */ + { CPUFUNC(op_57d0_4), 22480 }, /* Scc */ + { CPUFUNC(op_57d8_4), 22488 }, /* Scc */ + { CPUFUNC(op_57e0_4), 22496 }, /* Scc */ + { CPUFUNC(op_57e8_4), 22504 }, /* Scc */ + { CPUFUNC(op_57f0_4), 22512 }, /* Scc */ + { CPUFUNC(op_57f8_4), 22520 }, /* Scc */ + { CPUFUNC(op_57f9_4), 22521 }, /* Scc */ + { CPUFUNC(op_58c0_4), 22720 }, /* Scc */ + { CPUFUNC(op_58c8_4), 22728 }, /* DBcc */ + { CPUFUNC(op_58d0_4), 22736 }, /* Scc */ + { CPUFUNC(op_58d8_4), 22744 }, /* Scc */ + { CPUFUNC(op_58e0_4), 22752 }, /* Scc */ + { CPUFUNC(op_58e8_4), 22760 }, /* Scc */ + { CPUFUNC(op_58f0_4), 22768 }, /* Scc */ + { CPUFUNC(op_58f8_4), 22776 }, /* Scc */ + { CPUFUNC(op_58f9_4), 22777 }, /* Scc */ + { CPUFUNC(op_59c0_4), 22976 }, /* Scc */ + { CPUFUNC(op_59c8_4), 22984 }, /* DBcc */ + { CPUFUNC(op_59d0_4), 22992 }, /* Scc */ + { CPUFUNC(op_59d8_4), 23000 }, /* Scc */ + { CPUFUNC(op_59e0_4), 23008 }, /* Scc */ + { CPUFUNC(op_59e8_4), 23016 }, /* Scc */ + { CPUFUNC(op_59f0_4), 23024 }, /* Scc */ + { CPUFUNC(op_59f8_4), 23032 }, /* Scc */ + { CPUFUNC(op_59f9_4), 23033 }, /* Scc */ + { CPUFUNC(op_5ac0_4), 23232 }, /* Scc */ + { CPUFUNC(op_5ac8_4), 23240 }, /* DBcc */ + { CPUFUNC(op_5ad0_4), 23248 }, /* Scc */ + { CPUFUNC(op_5ad8_4), 23256 }, /* Scc */ + { CPUFUNC(op_5ae0_4), 23264 }, /* Scc */ + { CPUFUNC(op_5ae8_4), 23272 }, /* Scc */ + { CPUFUNC(op_5af0_4), 23280 }, /* Scc */ + { CPUFUNC(op_5af8_4), 23288 }, /* Scc */ + { CPUFUNC(op_5af9_4), 23289 }, /* Scc */ + { CPUFUNC(op_5bc0_4), 23488 }, /* Scc */ + { CPUFUNC(op_5bc8_4), 23496 }, /* DBcc */ + { CPUFUNC(op_5bd0_4), 23504 }, /* Scc */ + { CPUFUNC(op_5bd8_4), 23512 }, /* Scc */ + { CPUFUNC(op_5be0_4), 23520 }, /* Scc */ + { CPUFUNC(op_5be8_4), 23528 }, /* Scc */ + { CPUFUNC(op_5bf0_4), 23536 }, /* Scc */ + { CPUFUNC(op_5bf8_4), 23544 }, /* Scc */ + { CPUFUNC(op_5bf9_4), 23545 }, /* Scc */ + { CPUFUNC(op_5cc0_4), 23744 }, /* Scc */ + { CPUFUNC(op_5cc8_4), 23752 }, /* DBcc */ + { CPUFUNC(op_5cd0_4), 23760 }, /* Scc */ + { CPUFUNC(op_5cd8_4), 23768 }, /* Scc */ + { CPUFUNC(op_5ce0_4), 23776 }, /* Scc */ + { CPUFUNC(op_5ce8_4), 23784 }, /* Scc */ + { CPUFUNC(op_5cf0_4), 23792 }, /* Scc */ + { CPUFUNC(op_5cf8_4), 23800 }, /* Scc */ + { CPUFUNC(op_5cf9_4), 23801 }, /* Scc */ + { CPUFUNC(op_5dc0_4), 24000 }, /* Scc */ + { CPUFUNC(op_5dc8_4), 24008 }, /* DBcc */ + { CPUFUNC(op_5dd0_4), 24016 }, /* Scc */ + { CPUFUNC(op_5dd8_4), 24024 }, /* Scc */ + { CPUFUNC(op_5de0_4), 24032 }, /* Scc */ + { CPUFUNC(op_5de8_4), 24040 }, /* Scc */ + { CPUFUNC(op_5df0_4), 24048 }, /* Scc */ + { CPUFUNC(op_5df8_4), 24056 }, /* Scc */ + { CPUFUNC(op_5df9_4), 24057 }, /* Scc */ + { CPUFUNC(op_5ec0_4), 24256 }, /* Scc */ + { CPUFUNC(op_5ec8_4), 24264 }, /* DBcc */ + { CPUFUNC(op_5ed0_4), 24272 }, /* Scc */ + { CPUFUNC(op_5ed8_4), 24280 }, /* Scc */ + { CPUFUNC(op_5ee0_4), 24288 }, /* Scc */ + { CPUFUNC(op_5ee8_4), 24296 }, /* Scc */ + { CPUFUNC(op_5ef0_4), 24304 }, /* Scc */ + { CPUFUNC(op_5ef8_4), 24312 }, /* Scc */ + { CPUFUNC(op_5ef9_4), 24313 }, /* Scc */ + { CPUFUNC(op_5fc0_4), 24512 }, /* Scc */ + { CPUFUNC(op_5fc8_4), 24520 }, /* DBcc */ + { CPUFUNC(op_5fd0_4), 24528 }, /* Scc */ + { CPUFUNC(op_5fd8_4), 24536 }, /* Scc */ + { CPUFUNC(op_5fe0_4), 24544 }, /* Scc */ + { CPUFUNC(op_5fe8_4), 24552 }, /* Scc */ + { CPUFUNC(op_5ff0_4), 24560 }, /* Scc */ + { CPUFUNC(op_5ff8_4), 24568 }, /* Scc */ + { CPUFUNC(op_5ff9_4), 24569 }, /* Scc */ + { CPUFUNC(op_6000_4), 24576 }, /* Bcc */ + { CPUFUNC(op_6001_4), 24577 }, /* Bcc */ + { CPUFUNC(op_60ff_4), 24831 }, /* Bcc */ + { CPUFUNC(op_6100_4), 24832 }, /* BSR */ + { CPUFUNC(op_6101_4), 24833 }, /* BSR */ + { CPUFUNC(op_61ff_4), 25087 }, /* BSR */ + { CPUFUNC(op_6200_4), 25088 }, /* Bcc */ + { CPUFUNC(op_6201_4), 25089 }, /* Bcc */ + { CPUFUNC(op_62ff_4), 25343 }, /* Bcc */ + { CPUFUNC(op_6300_4), 25344 }, /* Bcc */ + { CPUFUNC(op_6301_4), 25345 }, /* Bcc */ + { CPUFUNC(op_63ff_4), 25599 }, /* Bcc */ + { CPUFUNC(op_6400_4), 25600 }, /* Bcc */ + { CPUFUNC(op_6401_4), 25601 }, /* Bcc */ + { CPUFUNC(op_64ff_4), 25855 }, /* Bcc */ + { CPUFUNC(op_6500_4), 25856 }, /* Bcc */ + { CPUFUNC(op_6501_4), 25857 }, /* Bcc */ + { CPUFUNC(op_65ff_4), 26111 }, /* Bcc */ + { CPUFUNC(op_6600_4), 26112 }, /* Bcc */ + { CPUFUNC(op_6601_4), 26113 }, /* Bcc */ + { CPUFUNC(op_66ff_4), 26367 }, /* Bcc */ + { CPUFUNC(op_6700_4), 26368 }, /* Bcc */ + { CPUFUNC(op_6701_4), 26369 }, /* Bcc */ + { CPUFUNC(op_67ff_4), 26623 }, /* Bcc */ + { CPUFUNC(op_6800_4), 26624 }, /* Bcc */ + { CPUFUNC(op_6801_4), 26625 }, /* Bcc */ + { CPUFUNC(op_68ff_4), 26879 }, /* Bcc */ + { CPUFUNC(op_6900_4), 26880 }, /* Bcc */ + { CPUFUNC(op_6901_4), 26881 }, /* Bcc */ + { CPUFUNC(op_69ff_4), 27135 }, /* Bcc */ + { CPUFUNC(op_6a00_4), 27136 }, /* Bcc */ + { CPUFUNC(op_6a01_4), 27137 }, /* Bcc */ + { CPUFUNC(op_6aff_4), 27391 }, /* Bcc */ + { CPUFUNC(op_6b00_4), 27392 }, /* Bcc */ + { CPUFUNC(op_6b01_4), 27393 }, /* Bcc */ + { CPUFUNC(op_6bff_4), 27647 }, /* Bcc */ + { CPUFUNC(op_6c00_4), 27648 }, /* Bcc */ + { CPUFUNC(op_6c01_4), 27649 }, /* Bcc */ + { CPUFUNC(op_6cff_4), 27903 }, /* Bcc */ + { CPUFUNC(op_6d00_4), 27904 }, /* Bcc */ + { CPUFUNC(op_6d01_4), 27905 }, /* Bcc */ + { CPUFUNC(op_6dff_4), 28159 }, /* Bcc */ + { CPUFUNC(op_6e00_4), 28160 }, /* Bcc */ + { CPUFUNC(op_6e01_4), 28161 }, /* Bcc */ + { CPUFUNC(op_6eff_4), 28415 }, /* Bcc */ + { CPUFUNC(op_6f00_4), 28416 }, /* Bcc */ + { CPUFUNC(op_6f01_4), 28417 }, /* Bcc */ + { CPUFUNC(op_6fff_4), 28671 }, /* Bcc */ + { CPUFUNC(op_7000_4), 28672 }, /* MOVE */ + { CPUFUNC(op_8000_4), 32768 }, /* OR */ + { CPUFUNC(op_8010_4), 32784 }, /* OR */ + { CPUFUNC(op_8018_4), 32792 }, /* OR */ + { CPUFUNC(op_8020_4), 32800 }, /* OR */ + { CPUFUNC(op_8028_4), 32808 }, /* OR */ + { CPUFUNC(op_8030_4), 32816 }, /* OR */ + { CPUFUNC(op_8038_4), 32824 }, /* OR */ + { CPUFUNC(op_8039_4), 32825 }, /* OR */ + { CPUFUNC(op_803a_4), 32826 }, /* OR */ + { CPUFUNC(op_803b_4), 32827 }, /* OR */ + { CPUFUNC(op_803c_4), 32828 }, /* OR */ + { CPUFUNC(op_8040_4), 32832 }, /* OR */ + { CPUFUNC(op_8050_4), 32848 }, /* OR */ + { CPUFUNC(op_8058_4), 32856 }, /* OR */ + { CPUFUNC(op_8060_4), 32864 }, /* OR */ + { CPUFUNC(op_8068_4), 32872 }, /* OR */ + { CPUFUNC(op_8070_4), 32880 }, /* OR */ + { CPUFUNC(op_8078_4), 32888 }, /* OR */ + { CPUFUNC(op_8079_4), 32889 }, /* OR */ + { CPUFUNC(op_807a_4), 32890 }, /* OR */ + { CPUFUNC(op_807b_4), 32891 }, /* OR */ + { CPUFUNC(op_807c_4), 32892 }, /* OR */ + { CPUFUNC(op_8080_4), 32896 }, /* OR */ + { CPUFUNC(op_8090_4), 32912 }, /* OR */ + { CPUFUNC(op_8098_4), 32920 }, /* OR */ + { CPUFUNC(op_80a0_4), 32928 }, /* OR */ + { CPUFUNC(op_80a8_4), 32936 }, /* OR */ + { CPUFUNC(op_80b0_4), 32944 }, /* OR */ + { CPUFUNC(op_80b8_4), 32952 }, /* OR */ + { CPUFUNC(op_80b9_4), 32953 }, /* OR */ + { CPUFUNC(op_80ba_4), 32954 }, /* OR */ + { CPUFUNC(op_80bb_4), 32955 }, /* OR */ + { CPUFUNC(op_80bc_4), 32956 }, /* OR */ + { CPUFUNC(op_80c0_4), 32960 }, /* DIVU */ + { CPUFUNC(op_80d0_4), 32976 }, /* DIVU */ + { CPUFUNC(op_80d8_4), 32984 }, /* DIVU */ + { CPUFUNC(op_80e0_4), 32992 }, /* DIVU */ + { CPUFUNC(op_80e8_4), 33000 }, /* DIVU */ + { CPUFUNC(op_80f0_4), 33008 }, /* DIVU */ + { CPUFUNC(op_80f8_4), 33016 }, /* DIVU */ + { CPUFUNC(op_80f9_4), 33017 }, /* DIVU */ + { CPUFUNC(op_80fa_4), 33018 }, /* DIVU */ + { CPUFUNC(op_80fb_4), 33019 }, /* DIVU */ + { CPUFUNC(op_80fc_4), 33020 }, /* DIVU */ + { CPUFUNC(op_8100_4), 33024 }, /* SBCD */ + { CPUFUNC(op_8108_4), 33032 }, /* SBCD */ + { CPUFUNC(op_8110_4), 33040 }, /* OR */ + { CPUFUNC(op_8118_4), 33048 }, /* OR */ + { CPUFUNC(op_8120_4), 33056 }, /* OR */ + { CPUFUNC(op_8128_4), 33064 }, /* OR */ + { CPUFUNC(op_8130_4), 33072 }, /* OR */ + { CPUFUNC(op_8138_4), 33080 }, /* OR */ + { CPUFUNC(op_8139_4), 33081 }, /* OR */ + { CPUFUNC(op_8150_4), 33104 }, /* OR */ + { CPUFUNC(op_8158_4), 33112 }, /* OR */ + { CPUFUNC(op_8160_4), 33120 }, /* OR */ + { CPUFUNC(op_8168_4), 33128 }, /* OR */ + { CPUFUNC(op_8170_4), 33136 }, /* OR */ + { CPUFUNC(op_8178_4), 33144 }, /* OR */ + { CPUFUNC(op_8179_4), 33145 }, /* OR */ + { CPUFUNC(op_8190_4), 33168 }, /* OR */ + { CPUFUNC(op_8198_4), 33176 }, /* OR */ + { CPUFUNC(op_81a0_4), 33184 }, /* OR */ + { CPUFUNC(op_81a8_4), 33192 }, /* OR */ + { CPUFUNC(op_81b0_4), 33200 }, /* OR */ + { CPUFUNC(op_81b8_4), 33208 }, /* OR */ + { CPUFUNC(op_81b9_4), 33209 }, /* OR */ + { CPUFUNC(op_81c0_4), 33216 }, /* DIVS */ + { CPUFUNC(op_81d0_4), 33232 }, /* DIVS */ + { CPUFUNC(op_81d8_4), 33240 }, /* DIVS */ + { CPUFUNC(op_81e0_4), 33248 }, /* DIVS */ + { CPUFUNC(op_81e8_4), 33256 }, /* DIVS */ + { CPUFUNC(op_81f0_4), 33264 }, /* DIVS */ + { CPUFUNC(op_81f8_4), 33272 }, /* DIVS */ + { CPUFUNC(op_81f9_4), 33273 }, /* DIVS */ + { CPUFUNC(op_81fa_4), 33274 }, /* DIVS */ + { CPUFUNC(op_81fb_4), 33275 }, /* DIVS */ + { CPUFUNC(op_81fc_4), 33276 }, /* DIVS */ + { CPUFUNC(op_9000_4), 36864 }, /* SUB */ + { CPUFUNC(op_9010_4), 36880 }, /* SUB */ + { CPUFUNC(op_9018_4), 36888 }, /* SUB */ + { CPUFUNC(op_9020_4), 36896 }, /* SUB */ + { CPUFUNC(op_9028_4), 36904 }, /* SUB */ + { CPUFUNC(op_9030_4), 36912 }, /* SUB */ + { CPUFUNC(op_9038_4), 36920 }, /* SUB */ + { CPUFUNC(op_9039_4), 36921 }, /* SUB */ + { CPUFUNC(op_903a_4), 36922 }, /* SUB */ + { CPUFUNC(op_903b_4), 36923 }, /* SUB */ + { CPUFUNC(op_903c_4), 36924 }, /* SUB */ + { CPUFUNC(op_9040_4), 36928 }, /* SUB */ + { CPUFUNC(op_9048_4), 36936 }, /* SUB */ + { CPUFUNC(op_9050_4), 36944 }, /* SUB */ + { CPUFUNC(op_9058_4), 36952 }, /* SUB */ + { CPUFUNC(op_9060_4), 36960 }, /* SUB */ + { CPUFUNC(op_9068_4), 36968 }, /* SUB */ + { CPUFUNC(op_9070_4), 36976 }, /* SUB */ + { CPUFUNC(op_9078_4), 36984 }, /* SUB */ + { CPUFUNC(op_9079_4), 36985 }, /* SUB */ + { CPUFUNC(op_907a_4), 36986 }, /* SUB */ + { CPUFUNC(op_907b_4), 36987 }, /* SUB */ + { CPUFUNC(op_907c_4), 36988 }, /* SUB */ + { CPUFUNC(op_9080_4), 36992 }, /* SUB */ + { CPUFUNC(op_9088_4), 37000 }, /* SUB */ + { CPUFUNC(op_9090_4), 37008 }, /* SUB */ + { CPUFUNC(op_9098_4), 37016 }, /* SUB */ + { CPUFUNC(op_90a0_4), 37024 }, /* SUB */ + { CPUFUNC(op_90a8_4), 37032 }, /* SUB */ + { CPUFUNC(op_90b0_4), 37040 }, /* SUB */ + { CPUFUNC(op_90b8_4), 37048 }, /* SUB */ + { CPUFUNC(op_90b9_4), 37049 }, /* SUB */ + { CPUFUNC(op_90ba_4), 37050 }, /* SUB */ + { CPUFUNC(op_90bb_4), 37051 }, /* SUB */ + { CPUFUNC(op_90bc_4), 37052 }, /* SUB */ + { CPUFUNC(op_90c0_4), 37056 }, /* SUBA */ + { CPUFUNC(op_90c8_4), 37064 }, /* SUBA */ + { CPUFUNC(op_90d0_4), 37072 }, /* SUBA */ + { CPUFUNC(op_90d8_4), 37080 }, /* SUBA */ + { CPUFUNC(op_90e0_4), 37088 }, /* SUBA */ + { CPUFUNC(op_90e8_4), 37096 }, /* SUBA */ + { CPUFUNC(op_90f0_4), 37104 }, /* SUBA */ + { CPUFUNC(op_90f8_4), 37112 }, /* SUBA */ + { CPUFUNC(op_90f9_4), 37113 }, /* SUBA */ + { CPUFUNC(op_90fa_4), 37114 }, /* SUBA */ + { CPUFUNC(op_90fb_4), 37115 }, /* SUBA */ + { CPUFUNC(op_90fc_4), 37116 }, /* SUBA */ + { CPUFUNC(op_9100_4), 37120 }, /* SUBX */ + { CPUFUNC(op_9108_4), 37128 }, /* SUBX */ + { CPUFUNC(op_9110_4), 37136 }, /* SUB */ + { CPUFUNC(op_9118_4), 37144 }, /* SUB */ + { CPUFUNC(op_9120_4), 37152 }, /* SUB */ + { CPUFUNC(op_9128_4), 37160 }, /* SUB */ + { CPUFUNC(op_9130_4), 37168 }, /* SUB */ + { CPUFUNC(op_9138_4), 37176 }, /* SUB */ + { CPUFUNC(op_9139_4), 37177 }, /* SUB */ + { CPUFUNC(op_9140_4), 37184 }, /* SUBX */ + { CPUFUNC(op_9148_4), 37192 }, /* SUBX */ + { CPUFUNC(op_9150_4), 37200 }, /* SUB */ + { CPUFUNC(op_9158_4), 37208 }, /* SUB */ + { CPUFUNC(op_9160_4), 37216 }, /* SUB */ + { CPUFUNC(op_9168_4), 37224 }, /* SUB */ + { CPUFUNC(op_9170_4), 37232 }, /* SUB */ + { CPUFUNC(op_9178_4), 37240 }, /* SUB */ + { CPUFUNC(op_9179_4), 37241 }, /* SUB */ + { CPUFUNC(op_9180_4), 37248 }, /* SUBX */ + { CPUFUNC(op_9188_4), 37256 }, /* SUBX */ + { CPUFUNC(op_9190_4), 37264 }, /* SUB */ + { CPUFUNC(op_9198_4), 37272 }, /* SUB */ + { CPUFUNC(op_91a0_4), 37280 }, /* SUB */ + { CPUFUNC(op_91a8_4), 37288 }, /* SUB */ + { CPUFUNC(op_91b0_4), 37296 }, /* SUB */ + { CPUFUNC(op_91b8_4), 37304 }, /* SUB */ + { CPUFUNC(op_91b9_4), 37305 }, /* SUB */ + { CPUFUNC(op_91c0_4), 37312 }, /* SUBA */ + { CPUFUNC(op_91c8_4), 37320 }, /* SUBA */ + { CPUFUNC(op_91d0_4), 37328 }, /* SUBA */ + { CPUFUNC(op_91d8_4), 37336 }, /* SUBA */ + { CPUFUNC(op_91e0_4), 37344 }, /* SUBA */ + { CPUFUNC(op_91e8_4), 37352 }, /* SUBA */ + { CPUFUNC(op_91f0_4), 37360 }, /* SUBA */ + { CPUFUNC(op_91f8_4), 37368 }, /* SUBA */ + { CPUFUNC(op_91f9_4), 37369 }, /* SUBA */ + { CPUFUNC(op_91fa_4), 37370 }, /* SUBA */ + { CPUFUNC(op_91fb_4), 37371 }, /* SUBA */ + { CPUFUNC(op_91fc_4), 37372 }, /* SUBA */ + { CPUFUNC(op_b000_4), 45056 }, /* CMP */ + { CPUFUNC(op_b010_4), 45072 }, /* CMP */ + { CPUFUNC(op_b018_4), 45080 }, /* CMP */ + { CPUFUNC(op_b020_4), 45088 }, /* CMP */ + { CPUFUNC(op_b028_4), 45096 }, /* CMP */ + { CPUFUNC(op_b030_4), 45104 }, /* CMP */ + { CPUFUNC(op_b038_4), 45112 }, /* CMP */ + { CPUFUNC(op_b039_4), 45113 }, /* CMP */ + { CPUFUNC(op_b03a_4), 45114 }, /* CMP */ + { CPUFUNC(op_b03b_4), 45115 }, /* CMP */ + { CPUFUNC(op_b03c_4), 45116 }, /* CMP */ + { CPUFUNC(op_b040_4), 45120 }, /* CMP */ + { CPUFUNC(op_b048_4), 45128 }, /* CMP */ + { CPUFUNC(op_b050_4), 45136 }, /* CMP */ + { CPUFUNC(op_b058_4), 45144 }, /* CMP */ + { CPUFUNC(op_b060_4), 45152 }, /* CMP */ + { CPUFUNC(op_b068_4), 45160 }, /* CMP */ + { CPUFUNC(op_b070_4), 45168 }, /* CMP */ + { CPUFUNC(op_b078_4), 45176 }, /* CMP */ + { CPUFUNC(op_b079_4), 45177 }, /* CMP */ + { CPUFUNC(op_b07a_4), 45178 }, /* CMP */ + { CPUFUNC(op_b07b_4), 45179 }, /* CMP */ + { CPUFUNC(op_b07c_4), 45180 }, /* CMP */ + { CPUFUNC(op_b080_4), 45184 }, /* CMP */ + { CPUFUNC(op_b088_4), 45192 }, /* CMP */ + { CPUFUNC(op_b090_4), 45200 }, /* CMP */ + { CPUFUNC(op_b098_4), 45208 }, /* CMP */ + { CPUFUNC(op_b0a0_4), 45216 }, /* CMP */ + { CPUFUNC(op_b0a8_4), 45224 }, /* CMP */ + { CPUFUNC(op_b0b0_4), 45232 }, /* CMP */ + { CPUFUNC(op_b0b8_4), 45240 }, /* CMP */ + { CPUFUNC(op_b0b9_4), 45241 }, /* CMP */ + { CPUFUNC(op_b0ba_4), 45242 }, /* CMP */ + { CPUFUNC(op_b0bb_4), 45243 }, /* CMP */ + { CPUFUNC(op_b0bc_4), 45244 }, /* CMP */ + { CPUFUNC(op_b0c0_4), 45248 }, /* CMPA */ + { CPUFUNC(op_b0c8_4), 45256 }, /* CMPA */ + { CPUFUNC(op_b0d0_4), 45264 }, /* CMPA */ + { CPUFUNC(op_b0d8_4), 45272 }, /* CMPA */ + { CPUFUNC(op_b0e0_4), 45280 }, /* CMPA */ + { CPUFUNC(op_b0e8_4), 45288 }, /* CMPA */ + { CPUFUNC(op_b0f0_4), 45296 }, /* CMPA */ + { CPUFUNC(op_b0f8_4), 45304 }, /* CMPA */ + { CPUFUNC(op_b0f9_4), 45305 }, /* CMPA */ + { CPUFUNC(op_b0fa_4), 45306 }, /* CMPA */ + { CPUFUNC(op_b0fb_4), 45307 }, /* CMPA */ + { CPUFUNC(op_b0fc_4), 45308 }, /* CMPA */ + { CPUFUNC(op_b100_4), 45312 }, /* EOR */ + { CPUFUNC(op_b108_4), 45320 }, /* CMPM */ + { CPUFUNC(op_b110_4), 45328 }, /* EOR */ + { CPUFUNC(op_b118_4), 45336 }, /* EOR */ + { CPUFUNC(op_b120_4), 45344 }, /* EOR */ + { CPUFUNC(op_b128_4), 45352 }, /* EOR */ + { CPUFUNC(op_b130_4), 45360 }, /* EOR */ + { CPUFUNC(op_b138_4), 45368 }, /* EOR */ + { CPUFUNC(op_b139_4), 45369 }, /* EOR */ + { CPUFUNC(op_b140_4), 45376 }, /* EOR */ + { CPUFUNC(op_b148_4), 45384 }, /* CMPM */ + { CPUFUNC(op_b150_4), 45392 }, /* EOR */ + { CPUFUNC(op_b158_4), 45400 }, /* EOR */ + { CPUFUNC(op_b160_4), 45408 }, /* EOR */ + { CPUFUNC(op_b168_4), 45416 }, /* EOR */ + { CPUFUNC(op_b170_4), 45424 }, /* EOR */ + { CPUFUNC(op_b178_4), 45432 }, /* EOR */ + { CPUFUNC(op_b179_4), 45433 }, /* EOR */ + { CPUFUNC(op_b180_4), 45440 }, /* EOR */ + { CPUFUNC(op_b188_4), 45448 }, /* CMPM */ + { CPUFUNC(op_b190_4), 45456 }, /* EOR */ + { CPUFUNC(op_b198_4), 45464 }, /* EOR */ + { CPUFUNC(op_b1a0_4), 45472 }, /* EOR */ + { CPUFUNC(op_b1a8_4), 45480 }, /* EOR */ + { CPUFUNC(op_b1b0_4), 45488 }, /* EOR */ + { CPUFUNC(op_b1b8_4), 45496 }, /* EOR */ + { CPUFUNC(op_b1b9_4), 45497 }, /* EOR */ + { CPUFUNC(op_b1c0_4), 45504 }, /* CMPA */ + { CPUFUNC(op_b1c8_4), 45512 }, /* CMPA */ + { CPUFUNC(op_b1d0_4), 45520 }, /* CMPA */ + { CPUFUNC(op_b1d8_4), 45528 }, /* CMPA */ + { CPUFUNC(op_b1e0_4), 45536 }, /* CMPA */ + { CPUFUNC(op_b1e8_4), 45544 }, /* CMPA */ + { CPUFUNC(op_b1f0_4), 45552 }, /* CMPA */ + { CPUFUNC(op_b1f8_4), 45560 }, /* CMPA */ + { CPUFUNC(op_b1f9_4), 45561 }, /* CMPA */ + { CPUFUNC(op_b1fa_4), 45562 }, /* CMPA */ + { CPUFUNC(op_b1fb_4), 45563 }, /* CMPA */ + { CPUFUNC(op_b1fc_4), 45564 }, /* CMPA */ + { CPUFUNC(op_c000_4), 49152 }, /* AND */ + { CPUFUNC(op_c010_4), 49168 }, /* AND */ + { CPUFUNC(op_c018_4), 49176 }, /* AND */ + { CPUFUNC(op_c020_4), 49184 }, /* AND */ + { CPUFUNC(op_c028_4), 49192 }, /* AND */ + { CPUFUNC(op_c030_4), 49200 }, /* AND */ + { CPUFUNC(op_c038_4), 49208 }, /* AND */ + { CPUFUNC(op_c039_4), 49209 }, /* AND */ + { CPUFUNC(op_c03a_4), 49210 }, /* AND */ + { CPUFUNC(op_c03b_4), 49211 }, /* AND */ + { CPUFUNC(op_c03c_4), 49212 }, /* AND */ + { CPUFUNC(op_c040_4), 49216 }, /* AND */ + { CPUFUNC(op_c050_4), 49232 }, /* AND */ + { CPUFUNC(op_c058_4), 49240 }, /* AND */ + { CPUFUNC(op_c060_4), 49248 }, /* AND */ + { CPUFUNC(op_c068_4), 49256 }, /* AND */ + { CPUFUNC(op_c070_4), 49264 }, /* AND */ + { CPUFUNC(op_c078_4), 49272 }, /* AND */ + { CPUFUNC(op_c079_4), 49273 }, /* AND */ + { CPUFUNC(op_c07a_4), 49274 }, /* AND */ + { CPUFUNC(op_c07b_4), 49275 }, /* AND */ + { CPUFUNC(op_c07c_4), 49276 }, /* AND */ + { CPUFUNC(op_c080_4), 49280 }, /* AND */ + { CPUFUNC(op_c090_4), 49296 }, /* AND */ + { CPUFUNC(op_c098_4), 49304 }, /* AND */ + { CPUFUNC(op_c0a0_4), 49312 }, /* AND */ + { CPUFUNC(op_c0a8_4), 49320 }, /* AND */ + { CPUFUNC(op_c0b0_4), 49328 }, /* AND */ + { CPUFUNC(op_c0b8_4), 49336 }, /* AND */ + { CPUFUNC(op_c0b9_4), 49337 }, /* AND */ + { CPUFUNC(op_c0ba_4), 49338 }, /* AND */ + { CPUFUNC(op_c0bb_4), 49339 }, /* AND */ + { CPUFUNC(op_c0bc_4), 49340 }, /* AND */ + { CPUFUNC(op_c0c0_4), 49344 }, /* MULU */ + { CPUFUNC(op_c0d0_4), 49360 }, /* MULU */ + { CPUFUNC(op_c0d8_4), 49368 }, /* MULU */ + { CPUFUNC(op_c0e0_4), 49376 }, /* MULU */ + { CPUFUNC(op_c0e8_4), 49384 }, /* MULU */ + { CPUFUNC(op_c0f0_4), 49392 }, /* MULU */ + { CPUFUNC(op_c0f8_4), 49400 }, /* MULU */ + { CPUFUNC(op_c0f9_4), 49401 }, /* MULU */ + { CPUFUNC(op_c0fa_4), 49402 }, /* MULU */ + { CPUFUNC(op_c0fb_4), 49403 }, /* MULU */ + { CPUFUNC(op_c0fc_4), 49404 }, /* MULU */ + { CPUFUNC(op_c100_4), 49408 }, /* ABCD */ + { CPUFUNC(op_c108_4), 49416 }, /* ABCD */ + { CPUFUNC(op_c110_4), 49424 }, /* AND */ + { CPUFUNC(op_c118_4), 49432 }, /* AND */ + { CPUFUNC(op_c120_4), 49440 }, /* AND */ + { CPUFUNC(op_c128_4), 49448 }, /* AND */ + { CPUFUNC(op_c130_4), 49456 }, /* AND */ + { CPUFUNC(op_c138_4), 49464 }, /* AND */ + { CPUFUNC(op_c139_4), 49465 }, /* AND */ + { CPUFUNC(op_c140_4), 49472 }, /* EXG */ + { CPUFUNC(op_c148_4), 49480 }, /* EXG */ + { CPUFUNC(op_c150_4), 49488 }, /* AND */ + { CPUFUNC(op_c158_4), 49496 }, /* AND */ + { CPUFUNC(op_c160_4), 49504 }, /* AND */ + { CPUFUNC(op_c168_4), 49512 }, /* AND */ + { CPUFUNC(op_c170_4), 49520 }, /* AND */ + { CPUFUNC(op_c178_4), 49528 }, /* AND */ + { CPUFUNC(op_c179_4), 49529 }, /* AND */ + { CPUFUNC(op_c188_4), 49544 }, /* EXG */ + { CPUFUNC(op_c190_4), 49552 }, /* AND */ + { CPUFUNC(op_c198_4), 49560 }, /* AND */ + { CPUFUNC(op_c1a0_4), 49568 }, /* AND */ + { CPUFUNC(op_c1a8_4), 49576 }, /* AND */ + { CPUFUNC(op_c1b0_4), 49584 }, /* AND */ + { CPUFUNC(op_c1b8_4), 49592 }, /* AND */ + { CPUFUNC(op_c1b9_4), 49593 }, /* AND */ + { CPUFUNC(op_c1c0_4), 49600 }, /* MULS */ + { CPUFUNC(op_c1d0_4), 49616 }, /* MULS */ + { CPUFUNC(op_c1d8_4), 49624 }, /* MULS */ + { CPUFUNC(op_c1e0_4), 49632 }, /* MULS */ + { CPUFUNC(op_c1e8_4), 49640 }, /* MULS */ + { CPUFUNC(op_c1f0_4), 49648 }, /* MULS */ + { CPUFUNC(op_c1f8_4), 49656 }, /* MULS */ + { CPUFUNC(op_c1f9_4), 49657 }, /* MULS */ + { CPUFUNC(op_c1fa_4), 49658 }, /* MULS */ + { CPUFUNC(op_c1fb_4), 49659 }, /* MULS */ + { CPUFUNC(op_c1fc_4), 49660 }, /* MULS */ + { CPUFUNC(op_d000_4), 53248 }, /* ADD */ + { CPUFUNC(op_d010_4), 53264 }, /* ADD */ + { CPUFUNC(op_d018_4), 53272 }, /* ADD */ + { CPUFUNC(op_d020_4), 53280 }, /* ADD */ + { CPUFUNC(op_d028_4), 53288 }, /* ADD */ + { CPUFUNC(op_d030_4), 53296 }, /* ADD */ + { CPUFUNC(op_d038_4), 53304 }, /* ADD */ + { CPUFUNC(op_d039_4), 53305 }, /* ADD */ + { CPUFUNC(op_d03a_4), 53306 }, /* ADD */ + { CPUFUNC(op_d03b_4), 53307 }, /* ADD */ + { CPUFUNC(op_d03c_4), 53308 }, /* ADD */ + { CPUFUNC(op_d040_4), 53312 }, /* ADD */ + { CPUFUNC(op_d048_4), 53320 }, /* ADD */ + { CPUFUNC(op_d050_4), 53328 }, /* ADD */ + { CPUFUNC(op_d058_4), 53336 }, /* ADD */ + { CPUFUNC(op_d060_4), 53344 }, /* ADD */ + { CPUFUNC(op_d068_4), 53352 }, /* ADD */ + { CPUFUNC(op_d070_4), 53360 }, /* ADD */ + { CPUFUNC(op_d078_4), 53368 }, /* ADD */ + { CPUFUNC(op_d079_4), 53369 }, /* ADD */ + { CPUFUNC(op_d07a_4), 53370 }, /* ADD */ + { CPUFUNC(op_d07b_4), 53371 }, /* ADD */ + { CPUFUNC(op_d07c_4), 53372 }, /* ADD */ + { CPUFUNC(op_d080_4), 53376 }, /* ADD */ + { CPUFUNC(op_d088_4), 53384 }, /* ADD */ + { CPUFUNC(op_d090_4), 53392 }, /* ADD */ + { CPUFUNC(op_d098_4), 53400 }, /* ADD */ + { CPUFUNC(op_d0a0_4), 53408 }, /* ADD */ + { CPUFUNC(op_d0a8_4), 53416 }, /* ADD */ + { CPUFUNC(op_d0b0_4), 53424 }, /* ADD */ + { CPUFUNC(op_d0b8_4), 53432 }, /* ADD */ + { CPUFUNC(op_d0b9_4), 53433 }, /* ADD */ + { CPUFUNC(op_d0ba_4), 53434 }, /* ADD */ + { CPUFUNC(op_d0bb_4), 53435 }, /* ADD */ + { CPUFUNC(op_d0bc_4), 53436 }, /* ADD */ + { CPUFUNC(op_d0c0_4), 53440 }, /* ADDA */ + { CPUFUNC(op_d0c8_4), 53448 }, /* ADDA */ + { CPUFUNC(op_d0d0_4), 53456 }, /* ADDA */ + { CPUFUNC(op_d0d8_4), 53464 }, /* ADDA */ + { CPUFUNC(op_d0e0_4), 53472 }, /* ADDA */ + { CPUFUNC(op_d0e8_4), 53480 }, /* ADDA */ + { CPUFUNC(op_d0f0_4), 53488 }, /* ADDA */ + { CPUFUNC(op_d0f8_4), 53496 }, /* ADDA */ + { CPUFUNC(op_d0f9_4), 53497 }, /* ADDA */ + { CPUFUNC(op_d0fa_4), 53498 }, /* ADDA */ + { CPUFUNC(op_d0fb_4), 53499 }, /* ADDA */ + { CPUFUNC(op_d0fc_4), 53500 }, /* ADDA */ + { CPUFUNC(op_d100_4), 53504 }, /* ADDX */ + { CPUFUNC(op_d108_4), 53512 }, /* ADDX */ + { CPUFUNC(op_d110_4), 53520 }, /* ADD */ + { CPUFUNC(op_d118_4), 53528 }, /* ADD */ + { CPUFUNC(op_d120_4), 53536 }, /* ADD */ + { CPUFUNC(op_d128_4), 53544 }, /* ADD */ + { CPUFUNC(op_d130_4), 53552 }, /* ADD */ + { CPUFUNC(op_d138_4), 53560 }, /* ADD */ + { CPUFUNC(op_d139_4), 53561 }, /* ADD */ + { CPUFUNC(op_d140_4), 53568 }, /* ADDX */ + { CPUFUNC(op_d148_4), 53576 }, /* ADDX */ + { CPUFUNC(op_d150_4), 53584 }, /* ADD */ + { CPUFUNC(op_d158_4), 53592 }, /* ADD */ + { CPUFUNC(op_d160_4), 53600 }, /* ADD */ + { CPUFUNC(op_d168_4), 53608 }, /* ADD */ + { CPUFUNC(op_d170_4), 53616 }, /* ADD */ + { CPUFUNC(op_d178_4), 53624 }, /* ADD */ + { CPUFUNC(op_d179_4), 53625 }, /* ADD */ + { CPUFUNC(op_d180_4), 53632 }, /* ADDX */ + { CPUFUNC(op_d188_4), 53640 }, /* ADDX */ + { CPUFUNC(op_d190_4), 53648 }, /* ADD */ + { CPUFUNC(op_d198_4), 53656 }, /* ADD */ + { CPUFUNC(op_d1a0_4), 53664 }, /* ADD */ + { CPUFUNC(op_d1a8_4), 53672 }, /* ADD */ + { CPUFUNC(op_d1b0_4), 53680 }, /* ADD */ + { CPUFUNC(op_d1b8_4), 53688 }, /* ADD */ + { CPUFUNC(op_d1b9_4), 53689 }, /* ADD */ + { CPUFUNC(op_d1c0_4), 53696 }, /* ADDA */ + { CPUFUNC(op_d1c8_4), 53704 }, /* ADDA */ + { CPUFUNC(op_d1d0_4), 53712 }, /* ADDA */ + { CPUFUNC(op_d1d8_4), 53720 }, /* ADDA */ + { CPUFUNC(op_d1e0_4), 53728 }, /* ADDA */ + { CPUFUNC(op_d1e8_4), 53736 }, /* ADDA */ + { CPUFUNC(op_d1f0_4), 53744 }, /* ADDA */ + { CPUFUNC(op_d1f8_4), 53752 }, /* ADDA */ + { CPUFUNC(op_d1f9_4), 53753 }, /* ADDA */ + { CPUFUNC(op_d1fa_4), 53754 }, /* ADDA */ + { CPUFUNC(op_d1fb_4), 53755 }, /* ADDA */ + { CPUFUNC(op_d1fc_4), 53756 }, /* ADDA */ + { CPUFUNC(op_e000_4), 57344 }, /* ASR */ + { CPUFUNC(op_e008_4), 57352 }, /* LSR */ + { CPUFUNC(op_e010_4), 57360 }, /* ROXR */ + { CPUFUNC(op_e018_4), 57368 }, /* ROR */ + { CPUFUNC(op_e020_4), 57376 }, /* ASR */ + { CPUFUNC(op_e028_4), 57384 }, /* LSR */ + { CPUFUNC(op_e030_4), 57392 }, /* ROXR */ + { CPUFUNC(op_e038_4), 57400 }, /* ROR */ + { CPUFUNC(op_e040_4), 57408 }, /* ASR */ + { CPUFUNC(op_e048_4), 57416 }, /* LSR */ + { CPUFUNC(op_e050_4), 57424 }, /* ROXR */ + { CPUFUNC(op_e058_4), 57432 }, /* ROR */ + { CPUFUNC(op_e060_4), 57440 }, /* ASR */ + { CPUFUNC(op_e068_4), 57448 }, /* LSR */ + { CPUFUNC(op_e070_4), 57456 }, /* ROXR */ + { CPUFUNC(op_e078_4), 57464 }, /* ROR */ + { CPUFUNC(op_e080_4), 57472 }, /* ASR */ + { CPUFUNC(op_e088_4), 57480 }, /* LSR */ + { CPUFUNC(op_e090_4), 57488 }, /* ROXR */ + { CPUFUNC(op_e098_4), 57496 }, /* ROR */ + { CPUFUNC(op_e0a0_4), 57504 }, /* ASR */ + { CPUFUNC(op_e0a8_4), 57512 }, /* LSR */ + { CPUFUNC(op_e0b0_4), 57520 }, /* ROXR */ + { CPUFUNC(op_e0b8_4), 57528 }, /* ROR */ + { CPUFUNC(op_e0d0_4), 57552 }, /* ASRW */ + { CPUFUNC(op_e0d8_4), 57560 }, /* ASRW */ + { CPUFUNC(op_e0e0_4), 57568 }, /* ASRW */ + { CPUFUNC(op_e0e8_4), 57576 }, /* ASRW */ + { CPUFUNC(op_e0f0_4), 57584 }, /* ASRW */ + { CPUFUNC(op_e0f8_4), 57592 }, /* ASRW */ + { CPUFUNC(op_e0f9_4), 57593 }, /* ASRW */ + { CPUFUNC(op_e100_4), 57600 }, /* ASL */ + { CPUFUNC(op_e108_4), 57608 }, /* LSL */ + { CPUFUNC(op_e110_4), 57616 }, /* ROXL */ + { CPUFUNC(op_e118_4), 57624 }, /* ROL */ + { CPUFUNC(op_e120_4), 57632 }, /* ASL */ + { CPUFUNC(op_e128_4), 57640 }, /* LSL */ + { CPUFUNC(op_e130_4), 57648 }, /* ROXL */ + { CPUFUNC(op_e138_4), 57656 }, /* ROL */ + { CPUFUNC(op_e140_4), 57664 }, /* ASL */ + { CPUFUNC(op_e148_4), 57672 }, /* LSL */ + { CPUFUNC(op_e150_4), 57680 }, /* ROXL */ + { CPUFUNC(op_e158_4), 57688 }, /* ROL */ + { CPUFUNC(op_e160_4), 57696 }, /* ASL */ + { CPUFUNC(op_e168_4), 57704 }, /* LSL */ + { CPUFUNC(op_e170_4), 57712 }, /* ROXL */ + { CPUFUNC(op_e178_4), 57720 }, /* ROL */ + { CPUFUNC(op_e180_4), 57728 }, /* ASL */ + { CPUFUNC(op_e188_4), 57736 }, /* LSL */ + { CPUFUNC(op_e190_4), 57744 }, /* ROXL */ + { CPUFUNC(op_e198_4), 57752 }, /* ROL */ + { CPUFUNC(op_e1a0_4), 57760 }, /* ASL */ + { CPUFUNC(op_e1a8_4), 57768 }, /* LSL */ + { CPUFUNC(op_e1b0_4), 57776 }, /* ROXL */ + { CPUFUNC(op_e1b8_4), 57784 }, /* ROL */ + { CPUFUNC(op_e1d0_4), 57808 }, /* ASLW */ + { CPUFUNC(op_e1d8_4), 57816 }, /* ASLW */ + { CPUFUNC(op_e1e0_4), 57824 }, /* ASLW */ + { CPUFUNC(op_e1e8_4), 57832 }, /* ASLW */ + { CPUFUNC(op_e1f0_4), 57840 }, /* ASLW */ + { CPUFUNC(op_e1f8_4), 57848 }, /* ASLW */ + { CPUFUNC(op_e1f9_4), 57849 }, /* ASLW */ + { CPUFUNC(op_e2d0_4), 58064 }, /* LSRW */ + { CPUFUNC(op_e2d8_4), 58072 }, /* LSRW */ + { CPUFUNC(op_e2e0_4), 58080 }, /* LSRW */ + { CPUFUNC(op_e2e8_4), 58088 }, /* LSRW */ + { CPUFUNC(op_e2f0_4), 58096 }, /* LSRW */ + { CPUFUNC(op_e2f8_4), 58104 }, /* LSRW */ + { CPUFUNC(op_e2f9_4), 58105 }, /* LSRW */ + { CPUFUNC(op_e3d0_4), 58320 }, /* LSLW */ + { CPUFUNC(op_e3d8_4), 58328 }, /* LSLW */ + { CPUFUNC(op_e3e0_4), 58336 }, /* LSLW */ + { CPUFUNC(op_e3e8_4), 58344 }, /* LSLW */ + { CPUFUNC(op_e3f0_4), 58352 }, /* LSLW */ + { CPUFUNC(op_e3f8_4), 58360 }, /* LSLW */ + { CPUFUNC(op_e3f9_4), 58361 }, /* LSLW */ + { CPUFUNC(op_e4d0_4), 58576 }, /* ROXRW */ + { CPUFUNC(op_e4d8_4), 58584 }, /* ROXRW */ + { CPUFUNC(op_e4e0_4), 58592 }, /* ROXRW */ + { CPUFUNC(op_e4e8_4), 58600 }, /* ROXRW */ + { CPUFUNC(op_e4f0_4), 58608 }, /* ROXRW */ + { CPUFUNC(op_e4f8_4), 58616 }, /* ROXRW */ + { CPUFUNC(op_e4f9_4), 58617 }, /* ROXRW */ + { CPUFUNC(op_e5d0_4), 58832 }, /* ROXLW */ + { CPUFUNC(op_e5d8_4), 58840 }, /* ROXLW */ + { CPUFUNC(op_e5e0_4), 58848 }, /* ROXLW */ + { CPUFUNC(op_e5e8_4), 58856 }, /* ROXLW */ + { CPUFUNC(op_e5f0_4), 58864 }, /* ROXLW */ + { CPUFUNC(op_e5f8_4), 58872 }, /* ROXLW */ + { CPUFUNC(op_e5f9_4), 58873 }, /* ROXLW */ + { CPUFUNC(op_e6d0_4), 59088 }, /* RORW */ + { CPUFUNC(op_e6d8_4), 59096 }, /* RORW */ + { CPUFUNC(op_e6e0_4), 59104 }, /* RORW */ + { CPUFUNC(op_e6e8_4), 59112 }, /* RORW */ + { CPUFUNC(op_e6f0_4), 59120 }, /* RORW */ + { CPUFUNC(op_e6f8_4), 59128 }, /* RORW */ + { CPUFUNC(op_e6f9_4), 59129 }, /* RORW */ + { CPUFUNC(op_e7d0_4), 59344 }, /* ROLW */ + { CPUFUNC(op_e7d8_4), 59352 }, /* ROLW */ + { CPUFUNC(op_e7e0_4), 59360 }, /* ROLW */ + { CPUFUNC(op_e7e8_4), 59368 }, /* ROLW */ + { CPUFUNC(op_e7f0_4), 59376 }, /* ROLW */ + { CPUFUNC(op_e7f8_4), 59384 }, /* ROLW */ + { CPUFUNC(op_e7f9_4), 59385 }, /* ROLW */ + { 0, 0 } +}; +const struct cputbl CPUFUNC(op_smalltbl_5)[] = +{ + { CPUFUNC(op_0000_4), 0 }, /* OR */ + { CPUFUNC(op_0010_4), 16 }, /* OR */ + { CPUFUNC(op_0018_4), 24 }, /* OR */ + { CPUFUNC(op_0020_4), 32 }, /* OR */ + { CPUFUNC(op_0028_4), 40 }, /* OR */ + { CPUFUNC(op_0030_4), 48 }, /* OR */ + { CPUFUNC(op_0038_4), 56 }, /* OR */ + { CPUFUNC(op_0039_4), 57 }, /* OR */ + { CPUFUNC(op_003c_4), 60 }, /* ORSR */ + { CPUFUNC(op_0040_4), 64 }, /* OR */ + { CPUFUNC(op_0050_4), 80 }, /* OR */ + { CPUFUNC(op_0058_4), 88 }, /* OR */ + { CPUFUNC(op_0060_4), 96 }, /* OR */ + { CPUFUNC(op_0068_4), 104 }, /* OR */ + { CPUFUNC(op_0070_4), 112 }, /* OR */ + { CPUFUNC(op_0078_4), 120 }, /* OR */ + { CPUFUNC(op_0079_4), 121 }, /* OR */ + { CPUFUNC(op_007c_4), 124 }, /* ORSR */ + { CPUFUNC(op_0080_4), 128 }, /* OR */ + { CPUFUNC(op_0090_4), 144 }, /* OR */ + { CPUFUNC(op_0098_4), 152 }, /* OR */ + { CPUFUNC(op_00a0_4), 160 }, /* OR */ + { CPUFUNC(op_00a8_4), 168 }, /* OR */ + { CPUFUNC(op_00b0_4), 176 }, /* OR */ + { CPUFUNC(op_00b8_4), 184 }, /* OR */ + { CPUFUNC(op_00b9_4), 185 }, /* OR */ + { CPUFUNC(op_0100_4), 256 }, /* BTST */ + { CPUFUNC(op_0108_4), 264 }, /* MVPMR */ + { CPUFUNC(op_0110_4), 272 }, /* BTST */ + { CPUFUNC(op_0118_4), 280 }, /* BTST */ + { CPUFUNC(op_0120_4), 288 }, /* BTST */ + { CPUFUNC(op_0128_4), 296 }, /* BTST */ + { CPUFUNC(op_0130_4), 304 }, /* BTST */ + { CPUFUNC(op_0138_4), 312 }, /* BTST */ + { CPUFUNC(op_0139_4), 313 }, /* BTST */ + { CPUFUNC(op_013a_4), 314 }, /* BTST */ + { CPUFUNC(op_013b_4), 315 }, /* BTST */ + { CPUFUNC(op_013c_4), 316 }, /* BTST */ + { CPUFUNC(op_0140_4), 320 }, /* BCHG */ + { CPUFUNC(op_0148_4), 328 }, /* MVPMR */ + { CPUFUNC(op_0150_4), 336 }, /* BCHG */ + { CPUFUNC(op_0158_4), 344 }, /* BCHG */ + { CPUFUNC(op_0160_4), 352 }, /* BCHG */ + { CPUFUNC(op_0168_4), 360 }, /* BCHG */ + { CPUFUNC(op_0170_4), 368 }, /* BCHG */ + { CPUFUNC(op_0178_4), 376 }, /* BCHG */ + { CPUFUNC(op_0179_4), 377 }, /* BCHG */ + { CPUFUNC(op_0180_4), 384 }, /* BCLR */ + { CPUFUNC(op_0188_4), 392 }, /* MVPRM */ + { CPUFUNC(op_0190_4), 400 }, /* BCLR */ + { CPUFUNC(op_0198_4), 408 }, /* BCLR */ + { CPUFUNC(op_01a0_4), 416 }, /* BCLR */ + { CPUFUNC(op_01a8_4), 424 }, /* BCLR */ + { CPUFUNC(op_01b0_4), 432 }, /* BCLR */ + { CPUFUNC(op_01b8_4), 440 }, /* BCLR */ + { CPUFUNC(op_01b9_4), 441 }, /* BCLR */ + { CPUFUNC(op_01c0_4), 448 }, /* BSET */ + { CPUFUNC(op_01c8_4), 456 }, /* MVPRM */ + { CPUFUNC(op_01d0_4), 464 }, /* BSET */ + { CPUFUNC(op_01d8_4), 472 }, /* BSET */ + { CPUFUNC(op_01e0_4), 480 }, /* BSET */ + { CPUFUNC(op_01e8_4), 488 }, /* BSET */ + { CPUFUNC(op_01f0_4), 496 }, /* BSET */ + { CPUFUNC(op_01f8_4), 504 }, /* BSET */ + { CPUFUNC(op_01f9_4), 505 }, /* BSET */ + { CPUFUNC(op_0200_4), 512 }, /* AND */ + { CPUFUNC(op_0210_4), 528 }, /* AND */ + { CPUFUNC(op_0218_4), 536 }, /* AND */ + { CPUFUNC(op_0220_4), 544 }, /* AND */ + { CPUFUNC(op_0228_4), 552 }, /* AND */ + { CPUFUNC(op_0230_4), 560 }, /* AND */ + { CPUFUNC(op_0238_4), 568 }, /* AND */ + { CPUFUNC(op_0239_4), 569 }, /* AND */ + { CPUFUNC(op_023c_4), 572 }, /* ANDSR */ + { CPUFUNC(op_0240_4), 576 }, /* AND */ + { CPUFUNC(op_0250_4), 592 }, /* AND */ + { CPUFUNC(op_0258_4), 600 }, /* AND */ + { CPUFUNC(op_0260_4), 608 }, /* AND */ + { CPUFUNC(op_0268_4), 616 }, /* AND */ + { CPUFUNC(op_0270_4), 624 }, /* AND */ + { CPUFUNC(op_0278_4), 632 }, /* AND */ + { CPUFUNC(op_0279_4), 633 }, /* AND */ + { CPUFUNC(op_027c_4), 636 }, /* ANDSR */ + { CPUFUNC(op_0280_4), 640 }, /* AND */ + { CPUFUNC(op_0290_4), 656 }, /* AND */ + { CPUFUNC(op_0298_4), 664 }, /* AND */ + { CPUFUNC(op_02a0_4), 672 }, /* AND */ + { CPUFUNC(op_02a8_4), 680 }, /* AND */ + { CPUFUNC(op_02b0_4), 688 }, /* AND */ + { CPUFUNC(op_02b8_4), 696 }, /* AND */ + { CPUFUNC(op_02b9_4), 697 }, /* AND */ + { CPUFUNC(op_0400_4), 1024 }, /* SUB */ + { CPUFUNC(op_0410_4), 1040 }, /* SUB */ + { CPUFUNC(op_0418_4), 1048 }, /* SUB */ + { CPUFUNC(op_0420_4), 1056 }, /* SUB */ + { CPUFUNC(op_0428_4), 1064 }, /* SUB */ + { CPUFUNC(op_0430_4), 1072 }, /* SUB */ + { CPUFUNC(op_0438_4), 1080 }, /* SUB */ + { CPUFUNC(op_0439_4), 1081 }, /* SUB */ + { CPUFUNC(op_0440_4), 1088 }, /* SUB */ + { CPUFUNC(op_0450_4), 1104 }, /* SUB */ + { CPUFUNC(op_0458_4), 1112 }, /* SUB */ + { CPUFUNC(op_0460_4), 1120 }, /* SUB */ + { CPUFUNC(op_0468_4), 1128 }, /* SUB */ + { CPUFUNC(op_0470_4), 1136 }, /* SUB */ + { CPUFUNC(op_0478_4), 1144 }, /* SUB */ + { CPUFUNC(op_0479_4), 1145 }, /* SUB */ + { CPUFUNC(op_0480_4), 1152 }, /* SUB */ + { CPUFUNC(op_0490_4), 1168 }, /* SUB */ + { CPUFUNC(op_0498_4), 1176 }, /* SUB */ + { CPUFUNC(op_04a0_4), 1184 }, /* SUB */ + { CPUFUNC(op_04a8_4), 1192 }, /* SUB */ + { CPUFUNC(op_04b0_4), 1200 }, /* SUB */ + { CPUFUNC(op_04b8_4), 1208 }, /* SUB */ + { CPUFUNC(op_04b9_4), 1209 }, /* SUB */ + { CPUFUNC(op_0600_4), 1536 }, /* ADD */ + { CPUFUNC(op_0610_4), 1552 }, /* ADD */ + { CPUFUNC(op_0618_4), 1560 }, /* ADD */ + { CPUFUNC(op_0620_4), 1568 }, /* ADD */ + { CPUFUNC(op_0628_4), 1576 }, /* ADD */ + { CPUFUNC(op_0630_4), 1584 }, /* ADD */ + { CPUFUNC(op_0638_4), 1592 }, /* ADD */ + { CPUFUNC(op_0639_4), 1593 }, /* ADD */ + { CPUFUNC(op_0640_4), 1600 }, /* ADD */ + { CPUFUNC(op_0650_4), 1616 }, /* ADD */ + { CPUFUNC(op_0658_4), 1624 }, /* ADD */ + { CPUFUNC(op_0660_4), 1632 }, /* ADD */ + { CPUFUNC(op_0668_4), 1640 }, /* ADD */ + { CPUFUNC(op_0670_4), 1648 }, /* ADD */ + { CPUFUNC(op_0678_4), 1656 }, /* ADD */ + { CPUFUNC(op_0679_4), 1657 }, /* ADD */ + { CPUFUNC(op_0680_4), 1664 }, /* ADD */ + { CPUFUNC(op_0690_4), 1680 }, /* ADD */ + { CPUFUNC(op_0698_4), 1688 }, /* ADD */ + { CPUFUNC(op_06a0_4), 1696 }, /* ADD */ + { CPUFUNC(op_06a8_4), 1704 }, /* ADD */ + { CPUFUNC(op_06b0_4), 1712 }, /* ADD */ + { CPUFUNC(op_06b8_4), 1720 }, /* ADD */ + { CPUFUNC(op_06b9_4), 1721 }, /* ADD */ + { CPUFUNC(op_0800_4), 2048 }, /* BTST */ + { CPUFUNC(op_0810_4), 2064 }, /* BTST */ + { CPUFUNC(op_0818_4), 2072 }, /* BTST */ + { CPUFUNC(op_0820_4), 2080 }, /* BTST */ + { CPUFUNC(op_0828_4), 2088 }, /* BTST */ + { CPUFUNC(op_0830_4), 2096 }, /* BTST */ + { CPUFUNC(op_0838_4), 2104 }, /* BTST */ + { CPUFUNC(op_0839_4), 2105 }, /* BTST */ + { CPUFUNC(op_083a_4), 2106 }, /* BTST */ + { CPUFUNC(op_083b_4), 2107 }, /* BTST */ + { CPUFUNC(op_083c_4), 2108 }, /* BTST */ + { CPUFUNC(op_0840_4), 2112 }, /* BCHG */ + { CPUFUNC(op_0850_4), 2128 }, /* BCHG */ + { CPUFUNC(op_0858_4), 2136 }, /* BCHG */ + { CPUFUNC(op_0860_4), 2144 }, /* BCHG */ + { CPUFUNC(op_0868_4), 2152 }, /* BCHG */ + { CPUFUNC(op_0870_4), 2160 }, /* BCHG */ + { CPUFUNC(op_0878_4), 2168 }, /* BCHG */ + { CPUFUNC(op_0879_4), 2169 }, /* BCHG */ + { CPUFUNC(op_0880_4), 2176 }, /* BCLR */ + { CPUFUNC(op_0890_4), 2192 }, /* BCLR */ + { CPUFUNC(op_0898_4), 2200 }, /* BCLR */ + { CPUFUNC(op_08a0_4), 2208 }, /* BCLR */ + { CPUFUNC(op_08a8_4), 2216 }, /* BCLR */ + { CPUFUNC(op_08b0_4), 2224 }, /* BCLR */ + { CPUFUNC(op_08b8_4), 2232 }, /* BCLR */ + { CPUFUNC(op_08b9_4), 2233 }, /* BCLR */ + { CPUFUNC(op_08c0_4), 2240 }, /* BSET */ + { CPUFUNC(op_08d0_4), 2256 }, /* BSET */ + { CPUFUNC(op_08d8_4), 2264 }, /* BSET */ + { CPUFUNC(op_08e0_4), 2272 }, /* BSET */ + { CPUFUNC(op_08e8_4), 2280 }, /* BSET */ + { CPUFUNC(op_08f0_4), 2288 }, /* BSET */ + { CPUFUNC(op_08f8_4), 2296 }, /* BSET */ + { CPUFUNC(op_08f9_4), 2297 }, /* BSET */ + { CPUFUNC(op_0a00_4), 2560 }, /* EOR */ + { CPUFUNC(op_0a10_4), 2576 }, /* EOR */ + { CPUFUNC(op_0a18_4), 2584 }, /* EOR */ + { CPUFUNC(op_0a20_4), 2592 }, /* EOR */ + { CPUFUNC(op_0a28_4), 2600 }, /* EOR */ + { CPUFUNC(op_0a30_4), 2608 }, /* EOR */ + { CPUFUNC(op_0a38_4), 2616 }, /* EOR */ + { CPUFUNC(op_0a39_4), 2617 }, /* EOR */ + { CPUFUNC(op_0a3c_4), 2620 }, /* EORSR */ + { CPUFUNC(op_0a40_4), 2624 }, /* EOR */ + { CPUFUNC(op_0a50_4), 2640 }, /* EOR */ + { CPUFUNC(op_0a58_4), 2648 }, /* EOR */ + { CPUFUNC(op_0a60_4), 2656 }, /* EOR */ + { CPUFUNC(op_0a68_4), 2664 }, /* EOR */ + { CPUFUNC(op_0a70_4), 2672 }, /* EOR */ + { CPUFUNC(op_0a78_4), 2680 }, /* EOR */ + { CPUFUNC(op_0a79_4), 2681 }, /* EOR */ + { CPUFUNC(op_0a7c_4), 2684 }, /* EORSR */ + { CPUFUNC(op_0a80_4), 2688 }, /* EOR */ + { CPUFUNC(op_0a90_4), 2704 }, /* EOR */ + { CPUFUNC(op_0a98_4), 2712 }, /* EOR */ + { CPUFUNC(op_0aa0_4), 2720 }, /* EOR */ + { CPUFUNC(op_0aa8_4), 2728 }, /* EOR */ + { CPUFUNC(op_0ab0_4), 2736 }, /* EOR */ + { CPUFUNC(op_0ab8_4), 2744 }, /* EOR */ + { CPUFUNC(op_0ab9_4), 2745 }, /* EOR */ + { CPUFUNC(op_0c00_4), 3072 }, /* CMP */ + { CPUFUNC(op_0c10_4), 3088 }, /* CMP */ + { CPUFUNC(op_0c18_4), 3096 }, /* CMP */ + { CPUFUNC(op_0c20_4), 3104 }, /* CMP */ + { CPUFUNC(op_0c28_4), 3112 }, /* CMP */ + { CPUFUNC(op_0c30_4), 3120 }, /* CMP */ + { CPUFUNC(op_0c38_4), 3128 }, /* CMP */ + { CPUFUNC(op_0c39_4), 3129 }, /* CMP */ + { CPUFUNC(op_0c40_4), 3136 }, /* CMP */ + { CPUFUNC(op_0c50_4), 3152 }, /* CMP */ + { CPUFUNC(op_0c58_4), 3160 }, /* CMP */ + { CPUFUNC(op_0c60_4), 3168 }, /* CMP */ + { CPUFUNC(op_0c68_4), 3176 }, /* CMP */ + { CPUFUNC(op_0c70_4), 3184 }, /* CMP */ + { CPUFUNC(op_0c78_4), 3192 }, /* CMP */ + { CPUFUNC(op_0c79_4), 3193 }, /* CMP */ + { CPUFUNC(op_0c80_4), 3200 }, /* CMP */ + { CPUFUNC(op_0c90_4), 3216 }, /* CMP */ + { CPUFUNC(op_0c98_4), 3224 }, /* CMP */ + { CPUFUNC(op_0ca0_4), 3232 }, /* CMP */ + { CPUFUNC(op_0ca8_4), 3240 }, /* CMP */ + { CPUFUNC(op_0cb0_4), 3248 }, /* CMP */ + { CPUFUNC(op_0cb8_4), 3256 }, /* CMP */ + { CPUFUNC(op_0cb9_4), 3257 }, /* CMP */ + { CPUFUNC(op_1000_4), 4096 }, /* MOVE */ + { CPUFUNC(op_1010_4), 4112 }, /* MOVE */ + { CPUFUNC(op_1018_4), 4120 }, /* MOVE */ + { CPUFUNC(op_1020_4), 4128 }, /* MOVE */ + { CPUFUNC(op_1028_4), 4136 }, /* MOVE */ + { CPUFUNC(op_1030_4), 4144 }, /* MOVE */ + { CPUFUNC(op_1038_4), 4152 }, /* MOVE */ + { CPUFUNC(op_1039_4), 4153 }, /* MOVE */ + { CPUFUNC(op_103a_4), 4154 }, /* MOVE */ + { CPUFUNC(op_103b_4), 4155 }, /* MOVE */ + { CPUFUNC(op_103c_4), 4156 }, /* MOVE */ + { CPUFUNC(op_1080_4), 4224 }, /* MOVE */ + { CPUFUNC(op_1090_4), 4240 }, /* MOVE */ + { CPUFUNC(op_1098_4), 4248 }, /* MOVE */ + { CPUFUNC(op_10a0_4), 4256 }, /* MOVE */ + { CPUFUNC(op_10a8_4), 4264 }, /* MOVE */ + { CPUFUNC(op_10b0_4), 4272 }, /* MOVE */ + { CPUFUNC(op_10b8_4), 4280 }, /* MOVE */ + { CPUFUNC(op_10b9_4), 4281 }, /* MOVE */ + { CPUFUNC(op_10ba_4), 4282 }, /* MOVE */ + { CPUFUNC(op_10bb_4), 4283 }, /* MOVE */ + { CPUFUNC(op_10bc_4), 4284 }, /* MOVE */ + { CPUFUNC(op_10c0_4), 4288 }, /* MOVE */ + { CPUFUNC(op_10d0_4), 4304 }, /* MOVE */ + { CPUFUNC(op_10d8_4), 4312 }, /* MOVE */ + { CPUFUNC(op_10e0_4), 4320 }, /* MOVE */ + { CPUFUNC(op_10e8_4), 4328 }, /* MOVE */ + { CPUFUNC(op_10f0_4), 4336 }, /* MOVE */ + { CPUFUNC(op_10f8_4), 4344 }, /* MOVE */ + { CPUFUNC(op_10f9_4), 4345 }, /* MOVE */ + { CPUFUNC(op_10fa_4), 4346 }, /* MOVE */ + { CPUFUNC(op_10fb_4), 4347 }, /* MOVE */ + { CPUFUNC(op_10fc_4), 4348 }, /* MOVE */ + { CPUFUNC(op_1100_4), 4352 }, /* MOVE */ + { CPUFUNC(op_1110_4), 4368 }, /* MOVE */ + { CPUFUNC(op_1118_4), 4376 }, /* MOVE */ + { CPUFUNC(op_1120_4), 4384 }, /* MOVE */ + { CPUFUNC(op_1128_4), 4392 }, /* MOVE */ + { CPUFUNC(op_1130_4), 4400 }, /* MOVE */ + { CPUFUNC(op_1138_4), 4408 }, /* MOVE */ + { CPUFUNC(op_1139_4), 4409 }, /* MOVE */ + { CPUFUNC(op_113a_4), 4410 }, /* MOVE */ + { CPUFUNC(op_113b_4), 4411 }, /* MOVE */ + { CPUFUNC(op_113c_4), 4412 }, /* MOVE */ + { CPUFUNC(op_1140_4), 4416 }, /* MOVE */ + { CPUFUNC(op_1150_4), 4432 }, /* MOVE */ + { CPUFUNC(op_1158_4), 4440 }, /* MOVE */ + { CPUFUNC(op_1160_4), 4448 }, /* MOVE */ + { CPUFUNC(op_1168_4), 4456 }, /* MOVE */ + { CPUFUNC(op_1170_4), 4464 }, /* MOVE */ + { CPUFUNC(op_1178_4), 4472 }, /* MOVE */ + { CPUFUNC(op_1179_4), 4473 }, /* MOVE */ + { CPUFUNC(op_117a_4), 4474 }, /* MOVE */ + { CPUFUNC(op_117b_4), 4475 }, /* MOVE */ + { CPUFUNC(op_117c_4), 4476 }, /* MOVE */ + { CPUFUNC(op_1180_4), 4480 }, /* MOVE */ + { CPUFUNC(op_1190_4), 4496 }, /* MOVE */ + { CPUFUNC(op_1198_4), 4504 }, /* MOVE */ + { CPUFUNC(op_11a0_4), 4512 }, /* MOVE */ + { CPUFUNC(op_11a8_4), 4520 }, /* MOVE */ + { CPUFUNC(op_11b0_4), 4528 }, /* MOVE */ + { CPUFUNC(op_11b8_4), 4536 }, /* MOVE */ + { CPUFUNC(op_11b9_4), 4537 }, /* MOVE */ + { CPUFUNC(op_11ba_4), 4538 }, /* MOVE */ + { CPUFUNC(op_11bb_4), 4539 }, /* MOVE */ + { CPUFUNC(op_11bc_4), 4540 }, /* MOVE */ + { CPUFUNC(op_11c0_4), 4544 }, /* MOVE */ + { CPUFUNC(op_11d0_4), 4560 }, /* MOVE */ + { CPUFUNC(op_11d8_4), 4568 }, /* MOVE */ + { CPUFUNC(op_11e0_4), 4576 }, /* MOVE */ + { CPUFUNC(op_11e8_4), 4584 }, /* MOVE */ + { CPUFUNC(op_11f0_4), 4592 }, /* MOVE */ + { CPUFUNC(op_11f8_4), 4600 }, /* MOVE */ + { CPUFUNC(op_11f9_4), 4601 }, /* MOVE */ + { CPUFUNC(op_11fa_4), 4602 }, /* MOVE */ + { CPUFUNC(op_11fb_4), 4603 }, /* MOVE */ + { CPUFUNC(op_11fc_4), 4604 }, /* MOVE */ + { CPUFUNC(op_13c0_4), 5056 }, /* MOVE */ + { CPUFUNC(op_13d0_4), 5072 }, /* MOVE */ + { CPUFUNC(op_13d8_4), 5080 }, /* MOVE */ + { CPUFUNC(op_13e0_4), 5088 }, /* MOVE */ + { CPUFUNC(op_13e8_4), 5096 }, /* MOVE */ + { CPUFUNC(op_13f0_4), 5104 }, /* MOVE */ + { CPUFUNC(op_13f8_4), 5112 }, /* MOVE */ + { CPUFUNC(op_13f9_4), 5113 }, /* MOVE */ + { CPUFUNC(op_13fa_4), 5114 }, /* MOVE */ + { CPUFUNC(op_13fb_4), 5115 }, /* MOVE */ + { CPUFUNC(op_13fc_4), 5116 }, /* MOVE */ + { CPUFUNC(op_2000_4), 8192 }, /* MOVE */ + { CPUFUNC(op_2008_4), 8200 }, /* MOVE */ + { CPUFUNC(op_2010_4), 8208 }, /* MOVE */ + { CPUFUNC(op_2018_4), 8216 }, /* MOVE */ + { CPUFUNC(op_2020_4), 8224 }, /* MOVE */ + { CPUFUNC(op_2028_4), 8232 }, /* MOVE */ + { CPUFUNC(op_2030_4), 8240 }, /* MOVE */ + { CPUFUNC(op_2038_4), 8248 }, /* MOVE */ + { CPUFUNC(op_2039_4), 8249 }, /* MOVE */ + { CPUFUNC(op_203a_4), 8250 }, /* MOVE */ + { CPUFUNC(op_203b_4), 8251 }, /* MOVE */ + { CPUFUNC(op_203c_4), 8252 }, /* MOVE */ + { CPUFUNC(op_2040_4), 8256 }, /* MOVEA */ + { CPUFUNC(op_2048_4), 8264 }, /* MOVEA */ + { CPUFUNC(op_2050_4), 8272 }, /* MOVEA */ + { CPUFUNC(op_2058_4), 8280 }, /* MOVEA */ + { CPUFUNC(op_2060_4), 8288 }, /* MOVEA */ + { CPUFUNC(op_2068_4), 8296 }, /* MOVEA */ + { CPUFUNC(op_2070_4), 8304 }, /* MOVEA */ + { CPUFUNC(op_2078_4), 8312 }, /* MOVEA */ + { CPUFUNC(op_2079_4), 8313 }, /* MOVEA */ + { CPUFUNC(op_207a_4), 8314 }, /* MOVEA */ + { CPUFUNC(op_207b_4), 8315 }, /* MOVEA */ + { CPUFUNC(op_207c_4), 8316 }, /* MOVEA */ + { CPUFUNC(op_2080_4), 8320 }, /* MOVE */ + { CPUFUNC(op_2088_4), 8328 }, /* MOVE */ + { CPUFUNC(op_2090_4), 8336 }, /* MOVE */ + { CPUFUNC(op_2098_4), 8344 }, /* MOVE */ + { CPUFUNC(op_20a0_4), 8352 }, /* MOVE */ + { CPUFUNC(op_20a8_4), 8360 }, /* MOVE */ + { CPUFUNC(op_20b0_4), 8368 }, /* MOVE */ + { CPUFUNC(op_20b8_4), 8376 }, /* MOVE */ + { CPUFUNC(op_20b9_4), 8377 }, /* MOVE */ + { CPUFUNC(op_20ba_4), 8378 }, /* MOVE */ + { CPUFUNC(op_20bb_4), 8379 }, /* MOVE */ + { CPUFUNC(op_20bc_4), 8380 }, /* MOVE */ + { CPUFUNC(op_20c0_4), 8384 }, /* MOVE */ + { CPUFUNC(op_20c8_4), 8392 }, /* MOVE */ + { CPUFUNC(op_20d0_4), 8400 }, /* MOVE */ + { CPUFUNC(op_20d8_4), 8408 }, /* MOVE */ + { CPUFUNC(op_20e0_4), 8416 }, /* MOVE */ + { CPUFUNC(op_20e8_4), 8424 }, /* MOVE */ + { CPUFUNC(op_20f0_4), 8432 }, /* MOVE */ + { CPUFUNC(op_20f8_4), 8440 }, /* MOVE */ + { CPUFUNC(op_20f9_4), 8441 }, /* MOVE */ + { CPUFUNC(op_20fa_4), 8442 }, /* MOVE */ + { CPUFUNC(op_20fb_4), 8443 }, /* MOVE */ + { CPUFUNC(op_20fc_4), 8444 }, /* MOVE */ + { CPUFUNC(op_2100_4), 8448 }, /* MOVE */ + { CPUFUNC(op_2108_4), 8456 }, /* MOVE */ + { CPUFUNC(op_2110_4), 8464 }, /* MOVE */ + { CPUFUNC(op_2118_4), 8472 }, /* MOVE */ + { CPUFUNC(op_2120_4), 8480 }, /* MOVE */ + { CPUFUNC(op_2128_4), 8488 }, /* MOVE */ + { CPUFUNC(op_2130_4), 8496 }, /* MOVE */ + { CPUFUNC(op_2138_4), 8504 }, /* MOVE */ + { CPUFUNC(op_2139_4), 8505 }, /* MOVE */ + { CPUFUNC(op_213a_4), 8506 }, /* MOVE */ + { CPUFUNC(op_213b_4), 8507 }, /* MOVE */ + { CPUFUNC(op_213c_4), 8508 }, /* MOVE */ + { CPUFUNC(op_2140_4), 8512 }, /* MOVE */ + { CPUFUNC(op_2148_4), 8520 }, /* MOVE */ + { CPUFUNC(op_2150_4), 8528 }, /* MOVE */ + { CPUFUNC(op_2158_4), 8536 }, /* MOVE */ + { CPUFUNC(op_2160_4), 8544 }, /* MOVE */ + { CPUFUNC(op_2168_4), 8552 }, /* MOVE */ + { CPUFUNC(op_2170_4), 8560 }, /* MOVE */ + { CPUFUNC(op_2178_4), 8568 }, /* MOVE */ + { CPUFUNC(op_2179_4), 8569 }, /* MOVE */ + { CPUFUNC(op_217a_4), 8570 }, /* MOVE */ + { CPUFUNC(op_217b_4), 8571 }, /* MOVE */ + { CPUFUNC(op_217c_4), 8572 }, /* MOVE */ + { CPUFUNC(op_2180_4), 8576 }, /* MOVE */ + { CPUFUNC(op_2188_4), 8584 }, /* MOVE */ + { CPUFUNC(op_2190_4), 8592 }, /* MOVE */ + { CPUFUNC(op_2198_4), 8600 }, /* MOVE */ + { CPUFUNC(op_21a0_4), 8608 }, /* MOVE */ + { CPUFUNC(op_21a8_4), 8616 }, /* MOVE */ + { CPUFUNC(op_21b0_4), 8624 }, /* MOVE */ + { CPUFUNC(op_21b8_4), 8632 }, /* MOVE */ + { CPUFUNC(op_21b9_4), 8633 }, /* MOVE */ + { CPUFUNC(op_21ba_4), 8634 }, /* MOVE */ + { CPUFUNC(op_21bb_4), 8635 }, /* MOVE */ + { CPUFUNC(op_21bc_4), 8636 }, /* MOVE */ + { CPUFUNC(op_21c0_4), 8640 }, /* MOVE */ + { CPUFUNC(op_21c8_4), 8648 }, /* MOVE */ + { CPUFUNC(op_21d0_4), 8656 }, /* MOVE */ + { CPUFUNC(op_21d8_4), 8664 }, /* MOVE */ + { CPUFUNC(op_21e0_4), 8672 }, /* MOVE */ + { CPUFUNC(op_21e8_4), 8680 }, /* MOVE */ + { CPUFUNC(op_21f0_4), 8688 }, /* MOVE */ + { CPUFUNC(op_21f8_4), 8696 }, /* MOVE */ + { CPUFUNC(op_21f9_4), 8697 }, /* MOVE */ + { CPUFUNC(op_21fa_4), 8698 }, /* MOVE */ + { CPUFUNC(op_21fb_4), 8699 }, /* MOVE */ + { CPUFUNC(op_21fc_4), 8700 }, /* MOVE */ + { CPUFUNC(op_23c0_4), 9152 }, /* MOVE */ + { CPUFUNC(op_23c8_4), 9160 }, /* MOVE */ + { CPUFUNC(op_23d0_4), 9168 }, /* MOVE */ + { CPUFUNC(op_23d8_4), 9176 }, /* MOVE */ + { CPUFUNC(op_23e0_4), 9184 }, /* MOVE */ + { CPUFUNC(op_23e8_4), 9192 }, /* MOVE */ + { CPUFUNC(op_23f0_4), 9200 }, /* MOVE */ + { CPUFUNC(op_23f8_4), 9208 }, /* MOVE */ + { CPUFUNC(op_23f9_4), 9209 }, /* MOVE */ + { CPUFUNC(op_23fa_4), 9210 }, /* MOVE */ + { CPUFUNC(op_23fb_4), 9211 }, /* MOVE */ + { CPUFUNC(op_23fc_4), 9212 }, /* MOVE */ + { CPUFUNC(op_3000_4), 12288 }, /* MOVE */ + { CPUFUNC(op_3008_4), 12296 }, /* MOVE */ + { CPUFUNC(op_3010_4), 12304 }, /* MOVE */ + { CPUFUNC(op_3018_4), 12312 }, /* MOVE */ + { CPUFUNC(op_3020_4), 12320 }, /* MOVE */ + { CPUFUNC(op_3028_4), 12328 }, /* MOVE */ + { CPUFUNC(op_3030_4), 12336 }, /* MOVE */ + { CPUFUNC(op_3038_4), 12344 }, /* MOVE */ + { CPUFUNC(op_3039_4), 12345 }, /* MOVE */ + { CPUFUNC(op_303a_4), 12346 }, /* MOVE */ + { CPUFUNC(op_303b_4), 12347 }, /* MOVE */ + { CPUFUNC(op_303c_4), 12348 }, /* MOVE */ + { CPUFUNC(op_3040_4), 12352 }, /* MOVEA */ + { CPUFUNC(op_3048_4), 12360 }, /* MOVEA */ + { CPUFUNC(op_3050_4), 12368 }, /* MOVEA */ + { CPUFUNC(op_3058_4), 12376 }, /* MOVEA */ + { CPUFUNC(op_3060_4), 12384 }, /* MOVEA */ + { CPUFUNC(op_3068_4), 12392 }, /* MOVEA */ + { CPUFUNC(op_3070_4), 12400 }, /* MOVEA */ + { CPUFUNC(op_3078_4), 12408 }, /* MOVEA */ + { CPUFUNC(op_3079_4), 12409 }, /* MOVEA */ + { CPUFUNC(op_307a_4), 12410 }, /* MOVEA */ + { CPUFUNC(op_307b_4), 12411 }, /* MOVEA */ + { CPUFUNC(op_307c_4), 12412 }, /* MOVEA */ + { CPUFUNC(op_3080_4), 12416 }, /* MOVE */ + { CPUFUNC(op_3088_4), 12424 }, /* MOVE */ + { CPUFUNC(op_3090_4), 12432 }, /* MOVE */ + { CPUFUNC(op_3098_4), 12440 }, /* MOVE */ + { CPUFUNC(op_30a0_4), 12448 }, /* MOVE */ + { CPUFUNC(op_30a8_4), 12456 }, /* MOVE */ + { CPUFUNC(op_30b0_4), 12464 }, /* MOVE */ + { CPUFUNC(op_30b8_4), 12472 }, /* MOVE */ + { CPUFUNC(op_30b9_4), 12473 }, /* MOVE */ + { CPUFUNC(op_30ba_4), 12474 }, /* MOVE */ + { CPUFUNC(op_30bb_4), 12475 }, /* MOVE */ + { CPUFUNC(op_30bc_4), 12476 }, /* MOVE */ + { CPUFUNC(op_30c0_4), 12480 }, /* MOVE */ + { CPUFUNC(op_30c8_4), 12488 }, /* MOVE */ + { CPUFUNC(op_30d0_4), 12496 }, /* MOVE */ + { CPUFUNC(op_30d8_4), 12504 }, /* MOVE */ + { CPUFUNC(op_30e0_4), 12512 }, /* MOVE */ + { CPUFUNC(op_30e8_4), 12520 }, /* MOVE */ + { CPUFUNC(op_30f0_4), 12528 }, /* MOVE */ + { CPUFUNC(op_30f8_4), 12536 }, /* MOVE */ + { CPUFUNC(op_30f9_4), 12537 }, /* MOVE */ + { CPUFUNC(op_30fa_4), 12538 }, /* MOVE */ + { CPUFUNC(op_30fb_4), 12539 }, /* MOVE */ + { CPUFUNC(op_30fc_4), 12540 }, /* MOVE */ + { CPUFUNC(op_3100_4), 12544 }, /* MOVE */ + { CPUFUNC(op_3108_4), 12552 }, /* MOVE */ + { CPUFUNC(op_3110_4), 12560 }, /* MOVE */ + { CPUFUNC(op_3118_4), 12568 }, /* MOVE */ + { CPUFUNC(op_3120_4), 12576 }, /* MOVE */ + { CPUFUNC(op_3128_4), 12584 }, /* MOVE */ + { CPUFUNC(op_3130_4), 12592 }, /* MOVE */ + { CPUFUNC(op_3138_4), 12600 }, /* MOVE */ + { CPUFUNC(op_3139_4), 12601 }, /* MOVE */ + { CPUFUNC(op_313a_4), 12602 }, /* MOVE */ + { CPUFUNC(op_313b_4), 12603 }, /* MOVE */ + { CPUFUNC(op_313c_4), 12604 }, /* MOVE */ + { CPUFUNC(op_3140_4), 12608 }, /* MOVE */ + { CPUFUNC(op_3148_4), 12616 }, /* MOVE */ + { CPUFUNC(op_3150_4), 12624 }, /* MOVE */ + { CPUFUNC(op_3158_4), 12632 }, /* MOVE */ + { CPUFUNC(op_3160_4), 12640 }, /* MOVE */ + { CPUFUNC(op_3168_4), 12648 }, /* MOVE */ + { CPUFUNC(op_3170_4), 12656 }, /* MOVE */ + { CPUFUNC(op_3178_4), 12664 }, /* MOVE */ + { CPUFUNC(op_3179_4), 12665 }, /* MOVE */ + { CPUFUNC(op_317a_4), 12666 }, /* MOVE */ + { CPUFUNC(op_317b_4), 12667 }, /* MOVE */ + { CPUFUNC(op_317c_4), 12668 }, /* MOVE */ + { CPUFUNC(op_3180_4), 12672 }, /* MOVE */ + { CPUFUNC(op_3188_4), 12680 }, /* MOVE */ + { CPUFUNC(op_3190_4), 12688 }, /* MOVE */ + { CPUFUNC(op_3198_4), 12696 }, /* MOVE */ + { CPUFUNC(op_31a0_4), 12704 }, /* MOVE */ + { CPUFUNC(op_31a8_4), 12712 }, /* MOVE */ + { CPUFUNC(op_31b0_4), 12720 }, /* MOVE */ + { CPUFUNC(op_31b8_4), 12728 }, /* MOVE */ + { CPUFUNC(op_31b9_4), 12729 }, /* MOVE */ + { CPUFUNC(op_31ba_4), 12730 }, /* MOVE */ + { CPUFUNC(op_31bb_4), 12731 }, /* MOVE */ + { CPUFUNC(op_31bc_4), 12732 }, /* MOVE */ + { CPUFUNC(op_31c0_4), 12736 }, /* MOVE */ + { CPUFUNC(op_31c8_4), 12744 }, /* MOVE */ + { CPUFUNC(op_31d0_4), 12752 }, /* MOVE */ + { CPUFUNC(op_31d8_4), 12760 }, /* MOVE */ + { CPUFUNC(op_31e0_4), 12768 }, /* MOVE */ + { CPUFUNC(op_31e8_4), 12776 }, /* MOVE */ + { CPUFUNC(op_31f0_4), 12784 }, /* MOVE */ + { CPUFUNC(op_31f8_4), 12792 }, /* MOVE */ + { CPUFUNC(op_31f9_4), 12793 }, /* MOVE */ + { CPUFUNC(op_31fa_4), 12794 }, /* MOVE */ + { CPUFUNC(op_31fb_4), 12795 }, /* MOVE */ + { CPUFUNC(op_31fc_4), 12796 }, /* MOVE */ + { CPUFUNC(op_33c0_4), 13248 }, /* MOVE */ + { CPUFUNC(op_33c8_4), 13256 }, /* MOVE */ + { CPUFUNC(op_33d0_4), 13264 }, /* MOVE */ + { CPUFUNC(op_33d8_4), 13272 }, /* MOVE */ + { CPUFUNC(op_33e0_4), 13280 }, /* MOVE */ + { CPUFUNC(op_33e8_4), 13288 }, /* MOVE */ + { CPUFUNC(op_33f0_4), 13296 }, /* MOVE */ + { CPUFUNC(op_33f8_4), 13304 }, /* MOVE */ + { CPUFUNC(op_33f9_4), 13305 }, /* MOVE */ + { CPUFUNC(op_33fa_4), 13306 }, /* MOVE */ + { CPUFUNC(op_33fb_4), 13307 }, /* MOVE */ + { CPUFUNC(op_33fc_4), 13308 }, /* MOVE */ + { CPUFUNC(op_4000_4), 16384 }, /* NEGX */ + { CPUFUNC(op_4010_4), 16400 }, /* NEGX */ + { CPUFUNC(op_4018_4), 16408 }, /* NEGX */ + { CPUFUNC(op_4020_4), 16416 }, /* NEGX */ + { CPUFUNC(op_4028_4), 16424 }, /* NEGX */ + { CPUFUNC(op_4030_4), 16432 }, /* NEGX */ + { CPUFUNC(op_4038_4), 16440 }, /* NEGX */ + { CPUFUNC(op_4039_4), 16441 }, /* NEGX */ + { CPUFUNC(op_4040_4), 16448 }, /* NEGX */ + { CPUFUNC(op_4050_4), 16464 }, /* NEGX */ + { CPUFUNC(op_4058_4), 16472 }, /* NEGX */ + { CPUFUNC(op_4060_4), 16480 }, /* NEGX */ + { CPUFUNC(op_4068_4), 16488 }, /* NEGX */ + { CPUFUNC(op_4070_4), 16496 }, /* NEGX */ + { CPUFUNC(op_4078_4), 16504 }, /* NEGX */ + { CPUFUNC(op_4079_4), 16505 }, /* NEGX */ + { CPUFUNC(op_4080_4), 16512 }, /* NEGX */ + { CPUFUNC(op_4090_4), 16528 }, /* NEGX */ + { CPUFUNC(op_4098_4), 16536 }, /* NEGX */ + { CPUFUNC(op_40a0_4), 16544 }, /* NEGX */ + { CPUFUNC(op_40a8_4), 16552 }, /* NEGX */ + { CPUFUNC(op_40b0_4), 16560 }, /* NEGX */ + { CPUFUNC(op_40b8_4), 16568 }, /* NEGX */ + { CPUFUNC(op_40b9_4), 16569 }, /* NEGX */ + { CPUFUNC(op_40c0_5), 16576 }, /* MVSR2 */ + { CPUFUNC(op_40d0_5), 16592 }, /* MVSR2 */ + { CPUFUNC(op_40d8_5), 16600 }, /* MVSR2 */ + { CPUFUNC(op_40e0_5), 16608 }, /* MVSR2 */ + { CPUFUNC(op_40e8_5), 16616 }, /* MVSR2 */ + { CPUFUNC(op_40f0_5), 16624 }, /* MVSR2 */ + { CPUFUNC(op_40f8_5), 16632 }, /* MVSR2 */ + { CPUFUNC(op_40f9_5), 16633 }, /* MVSR2 */ + { CPUFUNC(op_4180_4), 16768 }, /* CHK */ + { CPUFUNC(op_4190_4), 16784 }, /* CHK */ + { CPUFUNC(op_4198_4), 16792 }, /* CHK */ + { CPUFUNC(op_41a0_4), 16800 }, /* CHK */ + { CPUFUNC(op_41a8_4), 16808 }, /* CHK */ + { CPUFUNC(op_41b0_4), 16816 }, /* CHK */ + { CPUFUNC(op_41b8_4), 16824 }, /* CHK */ + { CPUFUNC(op_41b9_4), 16825 }, /* CHK */ + { CPUFUNC(op_41ba_4), 16826 }, /* CHK */ + { CPUFUNC(op_41bb_4), 16827 }, /* CHK */ + { CPUFUNC(op_41bc_4), 16828 }, /* CHK */ + { CPUFUNC(op_41d0_4), 16848 }, /* LEA */ + { CPUFUNC(op_41e8_4), 16872 }, /* LEA */ + { CPUFUNC(op_41f0_4), 16880 }, /* LEA */ + { CPUFUNC(op_41f8_4), 16888 }, /* LEA */ + { CPUFUNC(op_41f9_4), 16889 }, /* LEA */ + { CPUFUNC(op_41fa_4), 16890 }, /* LEA */ + { CPUFUNC(op_41fb_4), 16891 }, /* LEA */ + { CPUFUNC(op_4200_4), 16896 }, /* CLR */ + { CPUFUNC(op_4210_4), 16912 }, /* CLR */ + { CPUFUNC(op_4218_4), 16920 }, /* CLR */ + { CPUFUNC(op_4220_4), 16928 }, /* CLR */ + { CPUFUNC(op_4228_4), 16936 }, /* CLR */ + { CPUFUNC(op_4230_4), 16944 }, /* CLR */ + { CPUFUNC(op_4238_4), 16952 }, /* CLR */ + { CPUFUNC(op_4239_4), 16953 }, /* CLR */ + { CPUFUNC(op_4240_4), 16960 }, /* CLR */ + { CPUFUNC(op_4250_4), 16976 }, /* CLR */ + { CPUFUNC(op_4258_4), 16984 }, /* CLR */ + { CPUFUNC(op_4260_4), 16992 }, /* CLR */ + { CPUFUNC(op_4268_4), 17000 }, /* CLR */ + { CPUFUNC(op_4270_4), 17008 }, /* CLR */ + { CPUFUNC(op_4278_4), 17016 }, /* CLR */ + { CPUFUNC(op_4279_4), 17017 }, /* CLR */ + { CPUFUNC(op_4280_4), 17024 }, /* CLR */ + { CPUFUNC(op_4290_4), 17040 }, /* CLR */ + { CPUFUNC(op_4298_4), 17048 }, /* CLR */ + { CPUFUNC(op_42a0_4), 17056 }, /* CLR */ + { CPUFUNC(op_42a8_4), 17064 }, /* CLR */ + { CPUFUNC(op_42b0_4), 17072 }, /* CLR */ + { CPUFUNC(op_42b8_4), 17080 }, /* CLR */ + { CPUFUNC(op_42b9_4), 17081 }, /* CLR */ + { CPUFUNC(op_4400_4), 17408 }, /* NEG */ + { CPUFUNC(op_4410_4), 17424 }, /* NEG */ + { CPUFUNC(op_4418_4), 17432 }, /* NEG */ + { CPUFUNC(op_4420_4), 17440 }, /* NEG */ + { CPUFUNC(op_4428_4), 17448 }, /* NEG */ + { CPUFUNC(op_4430_4), 17456 }, /* NEG */ + { CPUFUNC(op_4438_4), 17464 }, /* NEG */ + { CPUFUNC(op_4439_4), 17465 }, /* NEG */ + { CPUFUNC(op_4440_4), 17472 }, /* NEG */ + { CPUFUNC(op_4450_4), 17488 }, /* NEG */ + { CPUFUNC(op_4458_4), 17496 }, /* NEG */ + { CPUFUNC(op_4460_4), 17504 }, /* NEG */ + { CPUFUNC(op_4468_4), 17512 }, /* NEG */ + { CPUFUNC(op_4470_4), 17520 }, /* NEG */ + { CPUFUNC(op_4478_4), 17528 }, /* NEG */ + { CPUFUNC(op_4479_4), 17529 }, /* NEG */ + { CPUFUNC(op_4480_4), 17536 }, /* NEG */ + { CPUFUNC(op_4490_4), 17552 }, /* NEG */ + { CPUFUNC(op_4498_4), 17560 }, /* NEG */ + { CPUFUNC(op_44a0_4), 17568 }, /* NEG */ + { CPUFUNC(op_44a8_4), 17576 }, /* NEG */ + { CPUFUNC(op_44b0_4), 17584 }, /* NEG */ + { CPUFUNC(op_44b8_4), 17592 }, /* NEG */ + { CPUFUNC(op_44b9_4), 17593 }, /* NEG */ + { CPUFUNC(op_44c0_4), 17600 }, /* MV2SR */ + { CPUFUNC(op_44d0_4), 17616 }, /* MV2SR */ + { CPUFUNC(op_44d8_4), 17624 }, /* MV2SR */ + { CPUFUNC(op_44e0_4), 17632 }, /* MV2SR */ + { CPUFUNC(op_44e8_4), 17640 }, /* MV2SR */ + { CPUFUNC(op_44f0_4), 17648 }, /* MV2SR */ + { CPUFUNC(op_44f8_4), 17656 }, /* MV2SR */ + { CPUFUNC(op_44f9_4), 17657 }, /* MV2SR */ + { CPUFUNC(op_44fa_4), 17658 }, /* MV2SR */ + { CPUFUNC(op_44fb_4), 17659 }, /* MV2SR */ + { CPUFUNC(op_44fc_4), 17660 }, /* MV2SR */ + { CPUFUNC(op_4600_4), 17920 }, /* NOT */ + { CPUFUNC(op_4610_4), 17936 }, /* NOT */ + { CPUFUNC(op_4618_4), 17944 }, /* NOT */ + { CPUFUNC(op_4620_4), 17952 }, /* NOT */ + { CPUFUNC(op_4628_4), 17960 }, /* NOT */ + { CPUFUNC(op_4630_4), 17968 }, /* NOT */ + { CPUFUNC(op_4638_4), 17976 }, /* NOT */ + { CPUFUNC(op_4639_4), 17977 }, /* NOT */ + { CPUFUNC(op_4640_4), 17984 }, /* NOT */ + { CPUFUNC(op_4650_4), 18000 }, /* NOT */ + { CPUFUNC(op_4658_4), 18008 }, /* NOT */ + { CPUFUNC(op_4660_4), 18016 }, /* NOT */ + { CPUFUNC(op_4668_4), 18024 }, /* NOT */ + { CPUFUNC(op_4670_4), 18032 }, /* NOT */ + { CPUFUNC(op_4678_4), 18040 }, /* NOT */ + { CPUFUNC(op_4679_4), 18041 }, /* NOT */ + { CPUFUNC(op_4680_4), 18048 }, /* NOT */ + { CPUFUNC(op_4690_4), 18064 }, /* NOT */ + { CPUFUNC(op_4698_4), 18072 }, /* NOT */ + { CPUFUNC(op_46a0_4), 18080 }, /* NOT */ + { CPUFUNC(op_46a8_4), 18088 }, /* NOT */ + { CPUFUNC(op_46b0_4), 18096 }, /* NOT */ + { CPUFUNC(op_46b8_4), 18104 }, /* NOT */ + { CPUFUNC(op_46b9_4), 18105 }, /* NOT */ + { CPUFUNC(op_46c0_4), 18112 }, /* MV2SR */ + { CPUFUNC(op_46d0_4), 18128 }, /* MV2SR */ + { CPUFUNC(op_46d8_4), 18136 }, /* MV2SR */ + { CPUFUNC(op_46e0_4), 18144 }, /* MV2SR */ + { CPUFUNC(op_46e8_4), 18152 }, /* MV2SR */ + { CPUFUNC(op_46f0_4), 18160 }, /* MV2SR */ + { CPUFUNC(op_46f8_4), 18168 }, /* MV2SR */ + { CPUFUNC(op_46f9_4), 18169 }, /* MV2SR */ + { CPUFUNC(op_46fa_4), 18170 }, /* MV2SR */ + { CPUFUNC(op_46fb_4), 18171 }, /* MV2SR */ + { CPUFUNC(op_46fc_4), 18172 }, /* MV2SR */ + { CPUFUNC(op_4800_4), 18432 }, /* NBCD */ + { CPUFUNC(op_4810_4), 18448 }, /* NBCD */ + { CPUFUNC(op_4818_4), 18456 }, /* NBCD */ + { CPUFUNC(op_4820_4), 18464 }, /* NBCD */ + { CPUFUNC(op_4828_4), 18472 }, /* NBCD */ + { CPUFUNC(op_4830_4), 18480 }, /* NBCD */ + { CPUFUNC(op_4838_4), 18488 }, /* NBCD */ + { CPUFUNC(op_4839_4), 18489 }, /* NBCD */ + { CPUFUNC(op_4840_4), 18496 }, /* SWAP */ + { CPUFUNC(op_4850_4), 18512 }, /* PEA */ + { CPUFUNC(op_4868_4), 18536 }, /* PEA */ + { CPUFUNC(op_4870_4), 18544 }, /* PEA */ + { CPUFUNC(op_4878_4), 18552 }, /* PEA */ + { CPUFUNC(op_4879_4), 18553 }, /* PEA */ + { CPUFUNC(op_487a_4), 18554 }, /* PEA */ + { CPUFUNC(op_487b_4), 18555 }, /* PEA */ + { CPUFUNC(op_4880_4), 18560 }, /* EXT */ + { CPUFUNC(op_4890_4), 18576 }, /* MVMLE */ + { CPUFUNC(op_48a0_4), 18592 }, /* MVMLE */ + { CPUFUNC(op_48a8_4), 18600 }, /* MVMLE */ + { CPUFUNC(op_48b0_4), 18608 }, /* MVMLE */ + { CPUFUNC(op_48b8_4), 18616 }, /* MVMLE */ + { CPUFUNC(op_48b9_4), 18617 }, /* MVMLE */ + { CPUFUNC(op_48c0_4), 18624 }, /* EXT */ + { CPUFUNC(op_48d0_4), 18640 }, /* MVMLE */ + { CPUFUNC(op_48e0_4), 18656 }, /* MVMLE */ + { CPUFUNC(op_48e8_4), 18664 }, /* MVMLE */ + { CPUFUNC(op_48f0_4), 18672 }, /* MVMLE */ + { CPUFUNC(op_48f8_4), 18680 }, /* MVMLE */ + { CPUFUNC(op_48f9_4), 18681 }, /* MVMLE */ + { CPUFUNC(op_4a00_4), 18944 }, /* TST */ + { CPUFUNC(op_4a10_4), 18960 }, /* TST */ + { CPUFUNC(op_4a18_4), 18968 }, /* TST */ + { CPUFUNC(op_4a20_4), 18976 }, /* TST */ + { CPUFUNC(op_4a28_4), 18984 }, /* TST */ + { CPUFUNC(op_4a30_4), 18992 }, /* TST */ + { CPUFUNC(op_4a38_4), 19000 }, /* TST */ + { CPUFUNC(op_4a39_4), 19001 }, /* TST */ + { CPUFUNC(op_4a3c_4), 19004 }, /* TST */ + { CPUFUNC(op_4a40_4), 19008 }, /* TST */ + { CPUFUNC(op_4a50_4), 19024 }, /* TST */ + { CPUFUNC(op_4a58_4), 19032 }, /* TST */ + { CPUFUNC(op_4a60_4), 19040 }, /* TST */ + { CPUFUNC(op_4a68_4), 19048 }, /* TST */ + { CPUFUNC(op_4a70_4), 19056 }, /* TST */ + { CPUFUNC(op_4a78_4), 19064 }, /* TST */ + { CPUFUNC(op_4a79_4), 19065 }, /* TST */ + { CPUFUNC(op_4a7c_4), 19068 }, /* TST */ + { CPUFUNC(op_4a80_4), 19072 }, /* TST */ + { CPUFUNC(op_4a90_4), 19088 }, /* TST */ + { CPUFUNC(op_4a98_4), 19096 }, /* TST */ + { CPUFUNC(op_4aa0_4), 19104 }, /* TST */ + { CPUFUNC(op_4aa8_4), 19112 }, /* TST */ + { CPUFUNC(op_4ab0_4), 19120 }, /* TST */ + { CPUFUNC(op_4ab8_4), 19128 }, /* TST */ + { CPUFUNC(op_4ab9_4), 19129 }, /* TST */ + { CPUFUNC(op_4abc_4), 19132 }, /* TST */ + { CPUFUNC(op_4ac0_4), 19136 }, /* TAS */ + { CPUFUNC(op_4ad0_4), 19152 }, /* TAS */ + { CPUFUNC(op_4ad8_4), 19160 }, /* TAS */ + { CPUFUNC(op_4ae0_4), 19168 }, /* TAS */ + { CPUFUNC(op_4ae8_4), 19176 }, /* TAS */ + { CPUFUNC(op_4af0_4), 19184 }, /* TAS */ + { CPUFUNC(op_4af8_4), 19192 }, /* TAS */ + { CPUFUNC(op_4af9_4), 19193 }, /* TAS */ + { CPUFUNC(op_4c90_4), 19600 }, /* MVMEL */ + { CPUFUNC(op_4c98_4), 19608 }, /* MVMEL */ + { CPUFUNC(op_4ca8_4), 19624 }, /* MVMEL */ + { CPUFUNC(op_4cb0_4), 19632 }, /* MVMEL */ + { CPUFUNC(op_4cb8_4), 19640 }, /* MVMEL */ + { CPUFUNC(op_4cb9_4), 19641 }, /* MVMEL */ + { CPUFUNC(op_4cba_4), 19642 }, /* MVMEL */ + { CPUFUNC(op_4cbb_4), 19643 }, /* MVMEL */ + { CPUFUNC(op_4cd0_4), 19664 }, /* MVMEL */ + { CPUFUNC(op_4cd8_4), 19672 }, /* MVMEL */ + { CPUFUNC(op_4ce8_4), 19688 }, /* MVMEL */ + { CPUFUNC(op_4cf0_4), 19696 }, /* MVMEL */ + { CPUFUNC(op_4cf8_4), 19704 }, /* MVMEL */ + { CPUFUNC(op_4cf9_4), 19705 }, /* MVMEL */ + { CPUFUNC(op_4cfa_4), 19706 }, /* MVMEL */ + { CPUFUNC(op_4cfb_4), 19707 }, /* MVMEL */ + { CPUFUNC(op_4e40_4), 20032 }, /* TRAP */ + { CPUFUNC(op_4e50_4), 20048 }, /* LINK */ + { CPUFUNC(op_4e58_4), 20056 }, /* UNLK */ + { CPUFUNC(op_4e60_4), 20064 }, /* MVR2USP */ + { CPUFUNC(op_4e68_4), 20072 }, /* MVUSP2R */ + { CPUFUNC(op_4e70_4), 20080 }, /* RESET */ + { CPUFUNC(op_4e71_4), 20081 }, /* NOP */ + { CPUFUNC(op_4e72_4), 20082 }, /* STOP */ + { CPUFUNC(op_4e73_5), 20083 }, /* RTE */ + { CPUFUNC(op_4e74_4), 20084 }, /* RTD */ + { CPUFUNC(op_4e75_4), 20085 }, /* RTS */ + { CPUFUNC(op_4e76_4), 20086 }, /* TRAPV */ + { CPUFUNC(op_4e77_4), 20087 }, /* RTR */ + { CPUFUNC(op_4e90_4), 20112 }, /* JSR */ + { CPUFUNC(op_4ea8_4), 20136 }, /* JSR */ + { CPUFUNC(op_4eb0_4), 20144 }, /* JSR */ + { CPUFUNC(op_4eb8_4), 20152 }, /* JSR */ + { CPUFUNC(op_4eb9_4), 20153 }, /* JSR */ + { CPUFUNC(op_4eba_4), 20154 }, /* JSR */ + { CPUFUNC(op_4ebb_4), 20155 }, /* JSR */ + { CPUFUNC(op_4ed0_4), 20176 }, /* JMP */ + { CPUFUNC(op_4ee8_4), 20200 }, /* JMP */ + { CPUFUNC(op_4ef0_4), 20208 }, /* JMP */ + { CPUFUNC(op_4ef8_4), 20216 }, /* JMP */ + { CPUFUNC(op_4ef9_4), 20217 }, /* JMP */ + { CPUFUNC(op_4efa_4), 20218 }, /* JMP */ + { CPUFUNC(op_4efb_4), 20219 }, /* JMP */ + { CPUFUNC(op_5000_4), 20480 }, /* ADD */ + { CPUFUNC(op_5010_4), 20496 }, /* ADD */ + { CPUFUNC(op_5018_4), 20504 }, /* ADD */ + { CPUFUNC(op_5020_4), 20512 }, /* ADD */ + { CPUFUNC(op_5028_4), 20520 }, /* ADD */ + { CPUFUNC(op_5030_4), 20528 }, /* ADD */ + { CPUFUNC(op_5038_4), 20536 }, /* ADD */ + { CPUFUNC(op_5039_4), 20537 }, /* ADD */ + { CPUFUNC(op_5040_4), 20544 }, /* ADD */ + { CPUFUNC(op_5048_4), 20552 }, /* ADDA */ + { CPUFUNC(op_5050_4), 20560 }, /* ADD */ + { CPUFUNC(op_5058_4), 20568 }, /* ADD */ + { CPUFUNC(op_5060_4), 20576 }, /* ADD */ + { CPUFUNC(op_5068_4), 20584 }, /* ADD */ + { CPUFUNC(op_5070_4), 20592 }, /* ADD */ + { CPUFUNC(op_5078_4), 20600 }, /* ADD */ + { CPUFUNC(op_5079_4), 20601 }, /* ADD */ + { CPUFUNC(op_5080_4), 20608 }, /* ADD */ + { CPUFUNC(op_5088_4), 20616 }, /* ADDA */ + { CPUFUNC(op_5090_4), 20624 }, /* ADD */ + { CPUFUNC(op_5098_4), 20632 }, /* ADD */ + { CPUFUNC(op_50a0_4), 20640 }, /* ADD */ + { CPUFUNC(op_50a8_4), 20648 }, /* ADD */ + { CPUFUNC(op_50b0_4), 20656 }, /* ADD */ + { CPUFUNC(op_50b8_4), 20664 }, /* ADD */ + { CPUFUNC(op_50b9_4), 20665 }, /* ADD */ + { CPUFUNC(op_50c0_4), 20672 }, /* Scc */ + { CPUFUNC(op_50c8_4), 20680 }, /* DBcc */ + { CPUFUNC(op_50d0_4), 20688 }, /* Scc */ + { CPUFUNC(op_50d8_4), 20696 }, /* Scc */ + { CPUFUNC(op_50e0_4), 20704 }, /* Scc */ + { CPUFUNC(op_50e8_4), 20712 }, /* Scc */ + { CPUFUNC(op_50f0_4), 20720 }, /* Scc */ + { CPUFUNC(op_50f8_4), 20728 }, /* Scc */ + { CPUFUNC(op_50f9_4), 20729 }, /* Scc */ + { CPUFUNC(op_5100_4), 20736 }, /* SUB */ + { CPUFUNC(op_5110_4), 20752 }, /* SUB */ + { CPUFUNC(op_5118_4), 20760 }, /* SUB */ + { CPUFUNC(op_5120_4), 20768 }, /* SUB */ + { CPUFUNC(op_5128_4), 20776 }, /* SUB */ + { CPUFUNC(op_5130_4), 20784 }, /* SUB */ + { CPUFUNC(op_5138_4), 20792 }, /* SUB */ + { CPUFUNC(op_5139_4), 20793 }, /* SUB */ + { CPUFUNC(op_5140_4), 20800 }, /* SUB */ + { CPUFUNC(op_5148_4), 20808 }, /* SUBA */ + { CPUFUNC(op_5150_4), 20816 }, /* SUB */ + { CPUFUNC(op_5158_4), 20824 }, /* SUB */ + { CPUFUNC(op_5160_4), 20832 }, /* SUB */ + { CPUFUNC(op_5168_4), 20840 }, /* SUB */ + { CPUFUNC(op_5170_4), 20848 }, /* SUB */ + { CPUFUNC(op_5178_4), 20856 }, /* SUB */ + { CPUFUNC(op_5179_4), 20857 }, /* SUB */ + { CPUFUNC(op_5180_4), 20864 }, /* SUB */ + { CPUFUNC(op_5188_4), 20872 }, /* SUBA */ + { CPUFUNC(op_5190_4), 20880 }, /* SUB */ + { CPUFUNC(op_5198_4), 20888 }, /* SUB */ + { CPUFUNC(op_51a0_4), 20896 }, /* SUB */ + { CPUFUNC(op_51a8_4), 20904 }, /* SUB */ + { CPUFUNC(op_51b0_4), 20912 }, /* SUB */ + { CPUFUNC(op_51b8_4), 20920 }, /* SUB */ + { CPUFUNC(op_51b9_4), 20921 }, /* SUB */ + { CPUFUNC(op_51c0_4), 20928 }, /* Scc */ + { CPUFUNC(op_51c8_4), 20936 }, /* DBcc */ + { CPUFUNC(op_51d0_4), 20944 }, /* Scc */ + { CPUFUNC(op_51d8_4), 20952 }, /* Scc */ + { CPUFUNC(op_51e0_4), 20960 }, /* Scc */ + { CPUFUNC(op_51e8_4), 20968 }, /* Scc */ + { CPUFUNC(op_51f0_4), 20976 }, /* Scc */ + { CPUFUNC(op_51f8_4), 20984 }, /* Scc */ + { CPUFUNC(op_51f9_4), 20985 }, /* Scc */ + { CPUFUNC(op_52c0_4), 21184 }, /* Scc */ + { CPUFUNC(op_52c8_4), 21192 }, /* DBcc */ + { CPUFUNC(op_52d0_4), 21200 }, /* Scc */ + { CPUFUNC(op_52d8_4), 21208 }, /* Scc */ + { CPUFUNC(op_52e0_4), 21216 }, /* Scc */ + { CPUFUNC(op_52e8_4), 21224 }, /* Scc */ + { CPUFUNC(op_52f0_4), 21232 }, /* Scc */ + { CPUFUNC(op_52f8_4), 21240 }, /* Scc */ + { CPUFUNC(op_52f9_4), 21241 }, /* Scc */ + { CPUFUNC(op_53c0_4), 21440 }, /* Scc */ + { CPUFUNC(op_53c8_4), 21448 }, /* DBcc */ + { CPUFUNC(op_53d0_4), 21456 }, /* Scc */ + { CPUFUNC(op_53d8_4), 21464 }, /* Scc */ + { CPUFUNC(op_53e0_4), 21472 }, /* Scc */ + { CPUFUNC(op_53e8_4), 21480 }, /* Scc */ + { CPUFUNC(op_53f0_4), 21488 }, /* Scc */ + { CPUFUNC(op_53f8_4), 21496 }, /* Scc */ + { CPUFUNC(op_53f9_4), 21497 }, /* Scc */ + { CPUFUNC(op_54c0_4), 21696 }, /* Scc */ + { CPUFUNC(op_54c8_4), 21704 }, /* DBcc */ + { CPUFUNC(op_54d0_4), 21712 }, /* Scc */ + { CPUFUNC(op_54d8_4), 21720 }, /* Scc */ + { CPUFUNC(op_54e0_4), 21728 }, /* Scc */ + { CPUFUNC(op_54e8_4), 21736 }, /* Scc */ + { CPUFUNC(op_54f0_4), 21744 }, /* Scc */ + { CPUFUNC(op_54f8_4), 21752 }, /* Scc */ + { CPUFUNC(op_54f9_4), 21753 }, /* Scc */ + { CPUFUNC(op_55c0_4), 21952 }, /* Scc */ + { CPUFUNC(op_55c8_4), 21960 }, /* DBcc */ + { CPUFUNC(op_55d0_4), 21968 }, /* Scc */ + { CPUFUNC(op_55d8_4), 21976 }, /* Scc */ + { CPUFUNC(op_55e0_4), 21984 }, /* Scc */ + { CPUFUNC(op_55e8_4), 21992 }, /* Scc */ + { CPUFUNC(op_55f0_4), 22000 }, /* Scc */ + { CPUFUNC(op_55f8_4), 22008 }, /* Scc */ + { CPUFUNC(op_55f9_4), 22009 }, /* Scc */ + { CPUFUNC(op_56c0_4), 22208 }, /* Scc */ + { CPUFUNC(op_56c8_4), 22216 }, /* DBcc */ + { CPUFUNC(op_56d0_4), 22224 }, /* Scc */ + { CPUFUNC(op_56d8_4), 22232 }, /* Scc */ + { CPUFUNC(op_56e0_4), 22240 }, /* Scc */ + { CPUFUNC(op_56e8_4), 22248 }, /* Scc */ + { CPUFUNC(op_56f0_4), 22256 }, /* Scc */ + { CPUFUNC(op_56f8_4), 22264 }, /* Scc */ + { CPUFUNC(op_56f9_4), 22265 }, /* Scc */ + { CPUFUNC(op_57c0_4), 22464 }, /* Scc */ + { CPUFUNC(op_57c8_4), 22472 }, /* DBcc */ + { CPUFUNC(op_57d0_4), 22480 }, /* Scc */ + { CPUFUNC(op_57d8_4), 22488 }, /* Scc */ + { CPUFUNC(op_57e0_4), 22496 }, /* Scc */ + { CPUFUNC(op_57e8_4), 22504 }, /* Scc */ + { CPUFUNC(op_57f0_4), 22512 }, /* Scc */ + { CPUFUNC(op_57f8_4), 22520 }, /* Scc */ + { CPUFUNC(op_57f9_4), 22521 }, /* Scc */ + { CPUFUNC(op_58c0_4), 22720 }, /* Scc */ + { CPUFUNC(op_58c8_4), 22728 }, /* DBcc */ + { CPUFUNC(op_58d0_4), 22736 }, /* Scc */ + { CPUFUNC(op_58d8_4), 22744 }, /* Scc */ + { CPUFUNC(op_58e0_4), 22752 }, /* Scc */ + { CPUFUNC(op_58e8_4), 22760 }, /* Scc */ + { CPUFUNC(op_58f0_4), 22768 }, /* Scc */ + { CPUFUNC(op_58f8_4), 22776 }, /* Scc */ + { CPUFUNC(op_58f9_4), 22777 }, /* Scc */ + { CPUFUNC(op_59c0_4), 22976 }, /* Scc */ + { CPUFUNC(op_59c8_4), 22984 }, /* DBcc */ + { CPUFUNC(op_59d0_4), 22992 }, /* Scc */ + { CPUFUNC(op_59d8_4), 23000 }, /* Scc */ + { CPUFUNC(op_59e0_4), 23008 }, /* Scc */ + { CPUFUNC(op_59e8_4), 23016 }, /* Scc */ + { CPUFUNC(op_59f0_4), 23024 }, /* Scc */ + { CPUFUNC(op_59f8_4), 23032 }, /* Scc */ + { CPUFUNC(op_59f9_4), 23033 }, /* Scc */ + { CPUFUNC(op_5ac0_4), 23232 }, /* Scc */ + { CPUFUNC(op_5ac8_4), 23240 }, /* DBcc */ + { CPUFUNC(op_5ad0_4), 23248 }, /* Scc */ + { CPUFUNC(op_5ad8_4), 23256 }, /* Scc */ + { CPUFUNC(op_5ae0_4), 23264 }, /* Scc */ + { CPUFUNC(op_5ae8_4), 23272 }, /* Scc */ + { CPUFUNC(op_5af0_4), 23280 }, /* Scc */ + { CPUFUNC(op_5af8_4), 23288 }, /* Scc */ + { CPUFUNC(op_5af9_4), 23289 }, /* Scc */ + { CPUFUNC(op_5bc0_4), 23488 }, /* Scc */ + { CPUFUNC(op_5bc8_4), 23496 }, /* DBcc */ + { CPUFUNC(op_5bd0_4), 23504 }, /* Scc */ + { CPUFUNC(op_5bd8_4), 23512 }, /* Scc */ + { CPUFUNC(op_5be0_4), 23520 }, /* Scc */ + { CPUFUNC(op_5be8_4), 23528 }, /* Scc */ + { CPUFUNC(op_5bf0_4), 23536 }, /* Scc */ + { CPUFUNC(op_5bf8_4), 23544 }, /* Scc */ + { CPUFUNC(op_5bf9_4), 23545 }, /* Scc */ + { CPUFUNC(op_5cc0_4), 23744 }, /* Scc */ + { CPUFUNC(op_5cc8_4), 23752 }, /* DBcc */ + { CPUFUNC(op_5cd0_4), 23760 }, /* Scc */ + { CPUFUNC(op_5cd8_4), 23768 }, /* Scc */ + { CPUFUNC(op_5ce0_4), 23776 }, /* Scc */ + { CPUFUNC(op_5ce8_4), 23784 }, /* Scc */ + { CPUFUNC(op_5cf0_4), 23792 }, /* Scc */ + { CPUFUNC(op_5cf8_4), 23800 }, /* Scc */ + { CPUFUNC(op_5cf9_4), 23801 }, /* Scc */ + { CPUFUNC(op_5dc0_4), 24000 }, /* Scc */ + { CPUFUNC(op_5dc8_4), 24008 }, /* DBcc */ + { CPUFUNC(op_5dd0_4), 24016 }, /* Scc */ + { CPUFUNC(op_5dd8_4), 24024 }, /* Scc */ + { CPUFUNC(op_5de0_4), 24032 }, /* Scc */ + { CPUFUNC(op_5de8_4), 24040 }, /* Scc */ + { CPUFUNC(op_5df0_4), 24048 }, /* Scc */ + { CPUFUNC(op_5df8_4), 24056 }, /* Scc */ + { CPUFUNC(op_5df9_4), 24057 }, /* Scc */ + { CPUFUNC(op_5ec0_4), 24256 }, /* Scc */ + { CPUFUNC(op_5ec8_4), 24264 }, /* DBcc */ + { CPUFUNC(op_5ed0_4), 24272 }, /* Scc */ + { CPUFUNC(op_5ed8_4), 24280 }, /* Scc */ + { CPUFUNC(op_5ee0_4), 24288 }, /* Scc */ + { CPUFUNC(op_5ee8_4), 24296 }, /* Scc */ + { CPUFUNC(op_5ef0_4), 24304 }, /* Scc */ + { CPUFUNC(op_5ef8_4), 24312 }, /* Scc */ + { CPUFUNC(op_5ef9_4), 24313 }, /* Scc */ + { CPUFUNC(op_5fc0_4), 24512 }, /* Scc */ + { CPUFUNC(op_5fc8_4), 24520 }, /* DBcc */ + { CPUFUNC(op_5fd0_4), 24528 }, /* Scc */ + { CPUFUNC(op_5fd8_4), 24536 }, /* Scc */ + { CPUFUNC(op_5fe0_4), 24544 }, /* Scc */ + { CPUFUNC(op_5fe8_4), 24552 }, /* Scc */ + { CPUFUNC(op_5ff0_4), 24560 }, /* Scc */ + { CPUFUNC(op_5ff8_4), 24568 }, /* Scc */ + { CPUFUNC(op_5ff9_4), 24569 }, /* Scc */ + { CPUFUNC(op_6000_4), 24576 }, /* Bcc */ + { CPUFUNC(op_6001_4), 24577 }, /* Bcc */ + { CPUFUNC(op_60ff_4), 24831 }, /* Bcc */ + { CPUFUNC(op_6100_4), 24832 }, /* BSR */ + { CPUFUNC(op_6101_4), 24833 }, /* BSR */ + { CPUFUNC(op_61ff_4), 25087 }, /* BSR */ + { CPUFUNC(op_6200_4), 25088 }, /* Bcc */ + { CPUFUNC(op_6201_4), 25089 }, /* Bcc */ + { CPUFUNC(op_62ff_4), 25343 }, /* Bcc */ + { CPUFUNC(op_6300_4), 25344 }, /* Bcc */ + { CPUFUNC(op_6301_4), 25345 }, /* Bcc */ + { CPUFUNC(op_63ff_4), 25599 }, /* Bcc */ + { CPUFUNC(op_6400_4), 25600 }, /* Bcc */ + { CPUFUNC(op_6401_4), 25601 }, /* Bcc */ + { CPUFUNC(op_64ff_4), 25855 }, /* Bcc */ + { CPUFUNC(op_6500_4), 25856 }, /* Bcc */ + { CPUFUNC(op_6501_4), 25857 }, /* Bcc */ + { CPUFUNC(op_65ff_4), 26111 }, /* Bcc */ + { CPUFUNC(op_6600_4), 26112 }, /* Bcc */ + { CPUFUNC(op_6601_4), 26113 }, /* Bcc */ + { CPUFUNC(op_66ff_4), 26367 }, /* Bcc */ + { CPUFUNC(op_6700_4), 26368 }, /* Bcc */ + { CPUFUNC(op_6701_4), 26369 }, /* Bcc */ + { CPUFUNC(op_67ff_4), 26623 }, /* Bcc */ + { CPUFUNC(op_6800_4), 26624 }, /* Bcc */ + { CPUFUNC(op_6801_4), 26625 }, /* Bcc */ + { CPUFUNC(op_68ff_4), 26879 }, /* Bcc */ + { CPUFUNC(op_6900_4), 26880 }, /* Bcc */ + { CPUFUNC(op_6901_4), 26881 }, /* Bcc */ + { CPUFUNC(op_69ff_4), 27135 }, /* Bcc */ + { CPUFUNC(op_6a00_4), 27136 }, /* Bcc */ + { CPUFUNC(op_6a01_4), 27137 }, /* Bcc */ + { CPUFUNC(op_6aff_4), 27391 }, /* Bcc */ + { CPUFUNC(op_6b00_4), 27392 }, /* Bcc */ + { CPUFUNC(op_6b01_4), 27393 }, /* Bcc */ + { CPUFUNC(op_6bff_4), 27647 }, /* Bcc */ + { CPUFUNC(op_6c00_4), 27648 }, /* Bcc */ + { CPUFUNC(op_6c01_4), 27649 }, /* Bcc */ + { CPUFUNC(op_6cff_4), 27903 }, /* Bcc */ + { CPUFUNC(op_6d00_4), 27904 }, /* Bcc */ + { CPUFUNC(op_6d01_4), 27905 }, /* Bcc */ + { CPUFUNC(op_6dff_4), 28159 }, /* Bcc */ + { CPUFUNC(op_6e00_4), 28160 }, /* Bcc */ + { CPUFUNC(op_6e01_4), 28161 }, /* Bcc */ + { CPUFUNC(op_6eff_4), 28415 }, /* Bcc */ + { CPUFUNC(op_6f00_4), 28416 }, /* Bcc */ + { CPUFUNC(op_6f01_4), 28417 }, /* Bcc */ + { CPUFUNC(op_6fff_4), 28671 }, /* Bcc */ + { CPUFUNC(op_7000_4), 28672 }, /* MOVE */ + { CPUFUNC(op_8000_4), 32768 }, /* OR */ + { CPUFUNC(op_8010_4), 32784 }, /* OR */ + { CPUFUNC(op_8018_4), 32792 }, /* OR */ + { CPUFUNC(op_8020_4), 32800 }, /* OR */ + { CPUFUNC(op_8028_4), 32808 }, /* OR */ + { CPUFUNC(op_8030_4), 32816 }, /* OR */ + { CPUFUNC(op_8038_4), 32824 }, /* OR */ + { CPUFUNC(op_8039_4), 32825 }, /* OR */ + { CPUFUNC(op_803a_4), 32826 }, /* OR */ + { CPUFUNC(op_803b_4), 32827 }, /* OR */ + { CPUFUNC(op_803c_4), 32828 }, /* OR */ + { CPUFUNC(op_8040_4), 32832 }, /* OR */ + { CPUFUNC(op_8050_4), 32848 }, /* OR */ + { CPUFUNC(op_8058_4), 32856 }, /* OR */ + { CPUFUNC(op_8060_4), 32864 }, /* OR */ + { CPUFUNC(op_8068_4), 32872 }, /* OR */ + { CPUFUNC(op_8070_4), 32880 }, /* OR */ + { CPUFUNC(op_8078_4), 32888 }, /* OR */ + { CPUFUNC(op_8079_4), 32889 }, /* OR */ + { CPUFUNC(op_807a_4), 32890 }, /* OR */ + { CPUFUNC(op_807b_4), 32891 }, /* OR */ + { CPUFUNC(op_807c_4), 32892 }, /* OR */ + { CPUFUNC(op_8080_4), 32896 }, /* OR */ + { CPUFUNC(op_8090_4), 32912 }, /* OR */ + { CPUFUNC(op_8098_4), 32920 }, /* OR */ + { CPUFUNC(op_80a0_4), 32928 }, /* OR */ + { CPUFUNC(op_80a8_4), 32936 }, /* OR */ + { CPUFUNC(op_80b0_4), 32944 }, /* OR */ + { CPUFUNC(op_80b8_4), 32952 }, /* OR */ + { CPUFUNC(op_80b9_4), 32953 }, /* OR */ + { CPUFUNC(op_80ba_4), 32954 }, /* OR */ + { CPUFUNC(op_80bb_4), 32955 }, /* OR */ + { CPUFUNC(op_80bc_4), 32956 }, /* OR */ + { CPUFUNC(op_80c0_4), 32960 }, /* DIVU */ + { CPUFUNC(op_80d0_4), 32976 }, /* DIVU */ + { CPUFUNC(op_80d8_4), 32984 }, /* DIVU */ + { CPUFUNC(op_80e0_4), 32992 }, /* DIVU */ + { CPUFUNC(op_80e8_4), 33000 }, /* DIVU */ + { CPUFUNC(op_80f0_4), 33008 }, /* DIVU */ + { CPUFUNC(op_80f8_4), 33016 }, /* DIVU */ + { CPUFUNC(op_80f9_4), 33017 }, /* DIVU */ + { CPUFUNC(op_80fa_4), 33018 }, /* DIVU */ + { CPUFUNC(op_80fb_4), 33019 }, /* DIVU */ + { CPUFUNC(op_80fc_4), 33020 }, /* DIVU */ + { CPUFUNC(op_8100_4), 33024 }, /* SBCD */ + { CPUFUNC(op_8108_4), 33032 }, /* SBCD */ + { CPUFUNC(op_8110_4), 33040 }, /* OR */ + { CPUFUNC(op_8118_4), 33048 }, /* OR */ + { CPUFUNC(op_8120_4), 33056 }, /* OR */ + { CPUFUNC(op_8128_4), 33064 }, /* OR */ + { CPUFUNC(op_8130_4), 33072 }, /* OR */ + { CPUFUNC(op_8138_4), 33080 }, /* OR */ + { CPUFUNC(op_8139_4), 33081 }, /* OR */ + { CPUFUNC(op_8150_4), 33104 }, /* OR */ + { CPUFUNC(op_8158_4), 33112 }, /* OR */ + { CPUFUNC(op_8160_4), 33120 }, /* OR */ + { CPUFUNC(op_8168_4), 33128 }, /* OR */ + { CPUFUNC(op_8170_4), 33136 }, /* OR */ + { CPUFUNC(op_8178_4), 33144 }, /* OR */ + { CPUFUNC(op_8179_4), 33145 }, /* OR */ + { CPUFUNC(op_8190_4), 33168 }, /* OR */ + { CPUFUNC(op_8198_4), 33176 }, /* OR */ + { CPUFUNC(op_81a0_4), 33184 }, /* OR */ + { CPUFUNC(op_81a8_4), 33192 }, /* OR */ + { CPUFUNC(op_81b0_4), 33200 }, /* OR */ + { CPUFUNC(op_81b8_4), 33208 }, /* OR */ + { CPUFUNC(op_81b9_4), 33209 }, /* OR */ + { CPUFUNC(op_81c0_4), 33216 }, /* DIVS */ + { CPUFUNC(op_81d0_4), 33232 }, /* DIVS */ + { CPUFUNC(op_81d8_4), 33240 }, /* DIVS */ + { CPUFUNC(op_81e0_4), 33248 }, /* DIVS */ + { CPUFUNC(op_81e8_4), 33256 }, /* DIVS */ + { CPUFUNC(op_81f0_4), 33264 }, /* DIVS */ + { CPUFUNC(op_81f8_4), 33272 }, /* DIVS */ + { CPUFUNC(op_81f9_4), 33273 }, /* DIVS */ + { CPUFUNC(op_81fa_4), 33274 }, /* DIVS */ + { CPUFUNC(op_81fb_4), 33275 }, /* DIVS */ + { CPUFUNC(op_81fc_4), 33276 }, /* DIVS */ + { CPUFUNC(op_9000_4), 36864 }, /* SUB */ + { CPUFUNC(op_9010_4), 36880 }, /* SUB */ + { CPUFUNC(op_9018_4), 36888 }, /* SUB */ + { CPUFUNC(op_9020_4), 36896 }, /* SUB */ + { CPUFUNC(op_9028_4), 36904 }, /* SUB */ + { CPUFUNC(op_9030_4), 36912 }, /* SUB */ + { CPUFUNC(op_9038_4), 36920 }, /* SUB */ + { CPUFUNC(op_9039_4), 36921 }, /* SUB */ + { CPUFUNC(op_903a_4), 36922 }, /* SUB */ + { CPUFUNC(op_903b_4), 36923 }, /* SUB */ + { CPUFUNC(op_903c_4), 36924 }, /* SUB */ + { CPUFUNC(op_9040_4), 36928 }, /* SUB */ + { CPUFUNC(op_9048_4), 36936 }, /* SUB */ + { CPUFUNC(op_9050_4), 36944 }, /* SUB */ + { CPUFUNC(op_9058_4), 36952 }, /* SUB */ + { CPUFUNC(op_9060_4), 36960 }, /* SUB */ + { CPUFUNC(op_9068_4), 36968 }, /* SUB */ + { CPUFUNC(op_9070_4), 36976 }, /* SUB */ + { CPUFUNC(op_9078_4), 36984 }, /* SUB */ + { CPUFUNC(op_9079_4), 36985 }, /* SUB */ + { CPUFUNC(op_907a_4), 36986 }, /* SUB */ + { CPUFUNC(op_907b_4), 36987 }, /* SUB */ + { CPUFUNC(op_907c_4), 36988 }, /* SUB */ + { CPUFUNC(op_9080_4), 36992 }, /* SUB */ + { CPUFUNC(op_9088_4), 37000 }, /* SUB */ + { CPUFUNC(op_9090_4), 37008 }, /* SUB */ + { CPUFUNC(op_9098_4), 37016 }, /* SUB */ + { CPUFUNC(op_90a0_4), 37024 }, /* SUB */ + { CPUFUNC(op_90a8_4), 37032 }, /* SUB */ + { CPUFUNC(op_90b0_4), 37040 }, /* SUB */ + { CPUFUNC(op_90b8_4), 37048 }, /* SUB */ + { CPUFUNC(op_90b9_4), 37049 }, /* SUB */ + { CPUFUNC(op_90ba_4), 37050 }, /* SUB */ + { CPUFUNC(op_90bb_4), 37051 }, /* SUB */ + { CPUFUNC(op_90bc_4), 37052 }, /* SUB */ + { CPUFUNC(op_90c0_4), 37056 }, /* SUBA */ + { CPUFUNC(op_90c8_4), 37064 }, /* SUBA */ + { CPUFUNC(op_90d0_4), 37072 }, /* SUBA */ + { CPUFUNC(op_90d8_4), 37080 }, /* SUBA */ + { CPUFUNC(op_90e0_4), 37088 }, /* SUBA */ + { CPUFUNC(op_90e8_4), 37096 }, /* SUBA */ + { CPUFUNC(op_90f0_4), 37104 }, /* SUBA */ + { CPUFUNC(op_90f8_4), 37112 }, /* SUBA */ + { CPUFUNC(op_90f9_4), 37113 }, /* SUBA */ + { CPUFUNC(op_90fa_4), 37114 }, /* SUBA */ + { CPUFUNC(op_90fb_4), 37115 }, /* SUBA */ + { CPUFUNC(op_90fc_4), 37116 }, /* SUBA */ + { CPUFUNC(op_9100_4), 37120 }, /* SUBX */ + { CPUFUNC(op_9108_4), 37128 }, /* SUBX */ + { CPUFUNC(op_9110_4), 37136 }, /* SUB */ + { CPUFUNC(op_9118_4), 37144 }, /* SUB */ + { CPUFUNC(op_9120_4), 37152 }, /* SUB */ + { CPUFUNC(op_9128_4), 37160 }, /* SUB */ + { CPUFUNC(op_9130_4), 37168 }, /* SUB */ + { CPUFUNC(op_9138_4), 37176 }, /* SUB */ + { CPUFUNC(op_9139_4), 37177 }, /* SUB */ + { CPUFUNC(op_9140_4), 37184 }, /* SUBX */ + { CPUFUNC(op_9148_4), 37192 }, /* SUBX */ + { CPUFUNC(op_9150_4), 37200 }, /* SUB */ + { CPUFUNC(op_9158_4), 37208 }, /* SUB */ + { CPUFUNC(op_9160_4), 37216 }, /* SUB */ + { CPUFUNC(op_9168_4), 37224 }, /* SUB */ + { CPUFUNC(op_9170_4), 37232 }, /* SUB */ + { CPUFUNC(op_9178_4), 37240 }, /* SUB */ + { CPUFUNC(op_9179_4), 37241 }, /* SUB */ + { CPUFUNC(op_9180_4), 37248 }, /* SUBX */ + { CPUFUNC(op_9188_4), 37256 }, /* SUBX */ + { CPUFUNC(op_9190_4), 37264 }, /* SUB */ + { CPUFUNC(op_9198_4), 37272 }, /* SUB */ + { CPUFUNC(op_91a0_4), 37280 }, /* SUB */ + { CPUFUNC(op_91a8_4), 37288 }, /* SUB */ + { CPUFUNC(op_91b0_4), 37296 }, /* SUB */ + { CPUFUNC(op_91b8_4), 37304 }, /* SUB */ + { CPUFUNC(op_91b9_4), 37305 }, /* SUB */ + { CPUFUNC(op_91c0_4), 37312 }, /* SUBA */ + { CPUFUNC(op_91c8_4), 37320 }, /* SUBA */ + { CPUFUNC(op_91d0_4), 37328 }, /* SUBA */ + { CPUFUNC(op_91d8_4), 37336 }, /* SUBA */ + { CPUFUNC(op_91e0_4), 37344 }, /* SUBA */ + { CPUFUNC(op_91e8_4), 37352 }, /* SUBA */ + { CPUFUNC(op_91f0_4), 37360 }, /* SUBA */ + { CPUFUNC(op_91f8_4), 37368 }, /* SUBA */ + { CPUFUNC(op_91f9_4), 37369 }, /* SUBA */ + { CPUFUNC(op_91fa_4), 37370 }, /* SUBA */ + { CPUFUNC(op_91fb_4), 37371 }, /* SUBA */ + { CPUFUNC(op_91fc_4), 37372 }, /* SUBA */ + { CPUFUNC(op_b000_4), 45056 }, /* CMP */ + { CPUFUNC(op_b010_4), 45072 }, /* CMP */ + { CPUFUNC(op_b018_4), 45080 }, /* CMP */ + { CPUFUNC(op_b020_4), 45088 }, /* CMP */ + { CPUFUNC(op_b028_4), 45096 }, /* CMP */ + { CPUFUNC(op_b030_4), 45104 }, /* CMP */ + { CPUFUNC(op_b038_4), 45112 }, /* CMP */ + { CPUFUNC(op_b039_4), 45113 }, /* CMP */ + { CPUFUNC(op_b03a_4), 45114 }, /* CMP */ + { CPUFUNC(op_b03b_4), 45115 }, /* CMP */ + { CPUFUNC(op_b03c_4), 45116 }, /* CMP */ + { CPUFUNC(op_b040_4), 45120 }, /* CMP */ + { CPUFUNC(op_b048_4), 45128 }, /* CMP */ + { CPUFUNC(op_b050_4), 45136 }, /* CMP */ + { CPUFUNC(op_b058_4), 45144 }, /* CMP */ + { CPUFUNC(op_b060_4), 45152 }, /* CMP */ + { CPUFUNC(op_b068_4), 45160 }, /* CMP */ + { CPUFUNC(op_b070_4), 45168 }, /* CMP */ + { CPUFUNC(op_b078_4), 45176 }, /* CMP */ + { CPUFUNC(op_b079_4), 45177 }, /* CMP */ + { CPUFUNC(op_b07a_4), 45178 }, /* CMP */ + { CPUFUNC(op_b07b_4), 45179 }, /* CMP */ + { CPUFUNC(op_b07c_4), 45180 }, /* CMP */ + { CPUFUNC(op_b080_4), 45184 }, /* CMP */ + { CPUFUNC(op_b088_4), 45192 }, /* CMP */ + { CPUFUNC(op_b090_4), 45200 }, /* CMP */ + { CPUFUNC(op_b098_4), 45208 }, /* CMP */ + { CPUFUNC(op_b0a0_4), 45216 }, /* CMP */ + { CPUFUNC(op_b0a8_4), 45224 }, /* CMP */ + { CPUFUNC(op_b0b0_4), 45232 }, /* CMP */ + { CPUFUNC(op_b0b8_4), 45240 }, /* CMP */ + { CPUFUNC(op_b0b9_4), 45241 }, /* CMP */ + { CPUFUNC(op_b0ba_4), 45242 }, /* CMP */ + { CPUFUNC(op_b0bb_4), 45243 }, /* CMP */ + { CPUFUNC(op_b0bc_4), 45244 }, /* CMP */ + { CPUFUNC(op_b0c0_4), 45248 }, /* CMPA */ + { CPUFUNC(op_b0c8_4), 45256 }, /* CMPA */ + { CPUFUNC(op_b0d0_4), 45264 }, /* CMPA */ + { CPUFUNC(op_b0d8_4), 45272 }, /* CMPA */ + { CPUFUNC(op_b0e0_4), 45280 }, /* CMPA */ + { CPUFUNC(op_b0e8_4), 45288 }, /* CMPA */ + { CPUFUNC(op_b0f0_4), 45296 }, /* CMPA */ + { CPUFUNC(op_b0f8_4), 45304 }, /* CMPA */ + { CPUFUNC(op_b0f9_4), 45305 }, /* CMPA */ + { CPUFUNC(op_b0fa_4), 45306 }, /* CMPA */ + { CPUFUNC(op_b0fb_4), 45307 }, /* CMPA */ + { CPUFUNC(op_b0fc_4), 45308 }, /* CMPA */ + { CPUFUNC(op_b100_4), 45312 }, /* EOR */ + { CPUFUNC(op_b108_4), 45320 }, /* CMPM */ + { CPUFUNC(op_b110_4), 45328 }, /* EOR */ + { CPUFUNC(op_b118_4), 45336 }, /* EOR */ + { CPUFUNC(op_b120_4), 45344 }, /* EOR */ + { CPUFUNC(op_b128_4), 45352 }, /* EOR */ + { CPUFUNC(op_b130_4), 45360 }, /* EOR */ + { CPUFUNC(op_b138_4), 45368 }, /* EOR */ + { CPUFUNC(op_b139_4), 45369 }, /* EOR */ + { CPUFUNC(op_b140_4), 45376 }, /* EOR */ + { CPUFUNC(op_b148_4), 45384 }, /* CMPM */ + { CPUFUNC(op_b150_4), 45392 }, /* EOR */ + { CPUFUNC(op_b158_4), 45400 }, /* EOR */ + { CPUFUNC(op_b160_4), 45408 }, /* EOR */ + { CPUFUNC(op_b168_4), 45416 }, /* EOR */ + { CPUFUNC(op_b170_4), 45424 }, /* EOR */ + { CPUFUNC(op_b178_4), 45432 }, /* EOR */ + { CPUFUNC(op_b179_4), 45433 }, /* EOR */ + { CPUFUNC(op_b180_4), 45440 }, /* EOR */ + { CPUFUNC(op_b188_4), 45448 }, /* CMPM */ + { CPUFUNC(op_b190_4), 45456 }, /* EOR */ + { CPUFUNC(op_b198_4), 45464 }, /* EOR */ + { CPUFUNC(op_b1a0_4), 45472 }, /* EOR */ + { CPUFUNC(op_b1a8_4), 45480 }, /* EOR */ + { CPUFUNC(op_b1b0_4), 45488 }, /* EOR */ + { CPUFUNC(op_b1b8_4), 45496 }, /* EOR */ + { CPUFUNC(op_b1b9_4), 45497 }, /* EOR */ + { CPUFUNC(op_b1c0_4), 45504 }, /* CMPA */ + { CPUFUNC(op_b1c8_4), 45512 }, /* CMPA */ + { CPUFUNC(op_b1d0_4), 45520 }, /* CMPA */ + { CPUFUNC(op_b1d8_4), 45528 }, /* CMPA */ + { CPUFUNC(op_b1e0_4), 45536 }, /* CMPA */ + { CPUFUNC(op_b1e8_4), 45544 }, /* CMPA */ + { CPUFUNC(op_b1f0_4), 45552 }, /* CMPA */ + { CPUFUNC(op_b1f8_4), 45560 }, /* CMPA */ + { CPUFUNC(op_b1f9_4), 45561 }, /* CMPA */ + { CPUFUNC(op_b1fa_4), 45562 }, /* CMPA */ + { CPUFUNC(op_b1fb_4), 45563 }, /* CMPA */ + { CPUFUNC(op_b1fc_4), 45564 }, /* CMPA */ + { CPUFUNC(op_c000_4), 49152 }, /* AND */ + { CPUFUNC(op_c010_4), 49168 }, /* AND */ + { CPUFUNC(op_c018_4), 49176 }, /* AND */ + { CPUFUNC(op_c020_4), 49184 }, /* AND */ + { CPUFUNC(op_c028_4), 49192 }, /* AND */ + { CPUFUNC(op_c030_4), 49200 }, /* AND */ + { CPUFUNC(op_c038_4), 49208 }, /* AND */ + { CPUFUNC(op_c039_4), 49209 }, /* AND */ + { CPUFUNC(op_c03a_4), 49210 }, /* AND */ + { CPUFUNC(op_c03b_4), 49211 }, /* AND */ + { CPUFUNC(op_c03c_4), 49212 }, /* AND */ + { CPUFUNC(op_c040_4), 49216 }, /* AND */ + { CPUFUNC(op_c050_4), 49232 }, /* AND */ + { CPUFUNC(op_c058_4), 49240 }, /* AND */ + { CPUFUNC(op_c060_4), 49248 }, /* AND */ + { CPUFUNC(op_c068_4), 49256 }, /* AND */ + { CPUFUNC(op_c070_4), 49264 }, /* AND */ + { CPUFUNC(op_c078_4), 49272 }, /* AND */ + { CPUFUNC(op_c079_4), 49273 }, /* AND */ + { CPUFUNC(op_c07a_4), 49274 }, /* AND */ + { CPUFUNC(op_c07b_4), 49275 }, /* AND */ + { CPUFUNC(op_c07c_4), 49276 }, /* AND */ + { CPUFUNC(op_c080_4), 49280 }, /* AND */ + { CPUFUNC(op_c090_4), 49296 }, /* AND */ + { CPUFUNC(op_c098_4), 49304 }, /* AND */ + { CPUFUNC(op_c0a0_4), 49312 }, /* AND */ + { CPUFUNC(op_c0a8_4), 49320 }, /* AND */ + { CPUFUNC(op_c0b0_4), 49328 }, /* AND */ + { CPUFUNC(op_c0b8_4), 49336 }, /* AND */ + { CPUFUNC(op_c0b9_4), 49337 }, /* AND */ + { CPUFUNC(op_c0ba_4), 49338 }, /* AND */ + { CPUFUNC(op_c0bb_4), 49339 }, /* AND */ + { CPUFUNC(op_c0bc_4), 49340 }, /* AND */ + { CPUFUNC(op_c0c0_4), 49344 }, /* MULU */ + { CPUFUNC(op_c0d0_4), 49360 }, /* MULU */ + { CPUFUNC(op_c0d8_4), 49368 }, /* MULU */ + { CPUFUNC(op_c0e0_4), 49376 }, /* MULU */ + { CPUFUNC(op_c0e8_4), 49384 }, /* MULU */ + { CPUFUNC(op_c0f0_4), 49392 }, /* MULU */ + { CPUFUNC(op_c0f8_4), 49400 }, /* MULU */ + { CPUFUNC(op_c0f9_4), 49401 }, /* MULU */ + { CPUFUNC(op_c0fa_4), 49402 }, /* MULU */ + { CPUFUNC(op_c0fb_4), 49403 }, /* MULU */ + { CPUFUNC(op_c0fc_4), 49404 }, /* MULU */ + { CPUFUNC(op_c100_4), 49408 }, /* ABCD */ + { CPUFUNC(op_c108_4), 49416 }, /* ABCD */ + { CPUFUNC(op_c110_4), 49424 }, /* AND */ + { CPUFUNC(op_c118_4), 49432 }, /* AND */ + { CPUFUNC(op_c120_4), 49440 }, /* AND */ + { CPUFUNC(op_c128_4), 49448 }, /* AND */ + { CPUFUNC(op_c130_4), 49456 }, /* AND */ + { CPUFUNC(op_c138_4), 49464 }, /* AND */ + { CPUFUNC(op_c139_4), 49465 }, /* AND */ + { CPUFUNC(op_c140_4), 49472 }, /* EXG */ + { CPUFUNC(op_c148_4), 49480 }, /* EXG */ + { CPUFUNC(op_c150_4), 49488 }, /* AND */ + { CPUFUNC(op_c158_4), 49496 }, /* AND */ + { CPUFUNC(op_c160_4), 49504 }, /* AND */ + { CPUFUNC(op_c168_4), 49512 }, /* AND */ + { CPUFUNC(op_c170_4), 49520 }, /* AND */ + { CPUFUNC(op_c178_4), 49528 }, /* AND */ + { CPUFUNC(op_c179_4), 49529 }, /* AND */ + { CPUFUNC(op_c188_4), 49544 }, /* EXG */ + { CPUFUNC(op_c190_4), 49552 }, /* AND */ + { CPUFUNC(op_c198_4), 49560 }, /* AND */ + { CPUFUNC(op_c1a0_4), 49568 }, /* AND */ + { CPUFUNC(op_c1a8_4), 49576 }, /* AND */ + { CPUFUNC(op_c1b0_4), 49584 }, /* AND */ + { CPUFUNC(op_c1b8_4), 49592 }, /* AND */ + { CPUFUNC(op_c1b9_4), 49593 }, /* AND */ + { CPUFUNC(op_c1c0_4), 49600 }, /* MULS */ + { CPUFUNC(op_c1d0_4), 49616 }, /* MULS */ + { CPUFUNC(op_c1d8_4), 49624 }, /* MULS */ + { CPUFUNC(op_c1e0_4), 49632 }, /* MULS */ + { CPUFUNC(op_c1e8_4), 49640 }, /* MULS */ + { CPUFUNC(op_c1f0_4), 49648 }, /* MULS */ + { CPUFUNC(op_c1f8_4), 49656 }, /* MULS */ + { CPUFUNC(op_c1f9_4), 49657 }, /* MULS */ + { CPUFUNC(op_c1fa_4), 49658 }, /* MULS */ + { CPUFUNC(op_c1fb_4), 49659 }, /* MULS */ + { CPUFUNC(op_c1fc_4), 49660 }, /* MULS */ + { CPUFUNC(op_d000_4), 53248 }, /* ADD */ + { CPUFUNC(op_d010_4), 53264 }, /* ADD */ + { CPUFUNC(op_d018_4), 53272 }, /* ADD */ + { CPUFUNC(op_d020_4), 53280 }, /* ADD */ + { CPUFUNC(op_d028_4), 53288 }, /* ADD */ + { CPUFUNC(op_d030_4), 53296 }, /* ADD */ + { CPUFUNC(op_d038_4), 53304 }, /* ADD */ + { CPUFUNC(op_d039_4), 53305 }, /* ADD */ + { CPUFUNC(op_d03a_4), 53306 }, /* ADD */ + { CPUFUNC(op_d03b_4), 53307 }, /* ADD */ + { CPUFUNC(op_d03c_4), 53308 }, /* ADD */ + { CPUFUNC(op_d040_4), 53312 }, /* ADD */ + { CPUFUNC(op_d048_4), 53320 }, /* ADD */ + { CPUFUNC(op_d050_4), 53328 }, /* ADD */ + { CPUFUNC(op_d058_4), 53336 }, /* ADD */ + { CPUFUNC(op_d060_4), 53344 }, /* ADD */ + { CPUFUNC(op_d068_4), 53352 }, /* ADD */ + { CPUFUNC(op_d070_4), 53360 }, /* ADD */ + { CPUFUNC(op_d078_4), 53368 }, /* ADD */ + { CPUFUNC(op_d079_4), 53369 }, /* ADD */ + { CPUFUNC(op_d07a_4), 53370 }, /* ADD */ + { CPUFUNC(op_d07b_4), 53371 }, /* ADD */ + { CPUFUNC(op_d07c_4), 53372 }, /* ADD */ + { CPUFUNC(op_d080_4), 53376 }, /* ADD */ + { CPUFUNC(op_d088_4), 53384 }, /* ADD */ + { CPUFUNC(op_d090_4), 53392 }, /* ADD */ + { CPUFUNC(op_d098_4), 53400 }, /* ADD */ + { CPUFUNC(op_d0a0_4), 53408 }, /* ADD */ + { CPUFUNC(op_d0a8_4), 53416 }, /* ADD */ + { CPUFUNC(op_d0b0_4), 53424 }, /* ADD */ + { CPUFUNC(op_d0b8_4), 53432 }, /* ADD */ + { CPUFUNC(op_d0b9_4), 53433 }, /* ADD */ + { CPUFUNC(op_d0ba_4), 53434 }, /* ADD */ + { CPUFUNC(op_d0bb_4), 53435 }, /* ADD */ + { CPUFUNC(op_d0bc_4), 53436 }, /* ADD */ + { CPUFUNC(op_d0c0_4), 53440 }, /* ADDA */ + { CPUFUNC(op_d0c8_4), 53448 }, /* ADDA */ + { CPUFUNC(op_d0d0_4), 53456 }, /* ADDA */ + { CPUFUNC(op_d0d8_4), 53464 }, /* ADDA */ + { CPUFUNC(op_d0e0_4), 53472 }, /* ADDA */ + { CPUFUNC(op_d0e8_4), 53480 }, /* ADDA */ + { CPUFUNC(op_d0f0_4), 53488 }, /* ADDA */ + { CPUFUNC(op_d0f8_4), 53496 }, /* ADDA */ + { CPUFUNC(op_d0f9_4), 53497 }, /* ADDA */ + { CPUFUNC(op_d0fa_4), 53498 }, /* ADDA */ + { CPUFUNC(op_d0fb_4), 53499 }, /* ADDA */ + { CPUFUNC(op_d0fc_4), 53500 }, /* ADDA */ + { CPUFUNC(op_d100_4), 53504 }, /* ADDX */ + { CPUFUNC(op_d108_4), 53512 }, /* ADDX */ + { CPUFUNC(op_d110_4), 53520 }, /* ADD */ + { CPUFUNC(op_d118_4), 53528 }, /* ADD */ + { CPUFUNC(op_d120_4), 53536 }, /* ADD */ + { CPUFUNC(op_d128_4), 53544 }, /* ADD */ + { CPUFUNC(op_d130_4), 53552 }, /* ADD */ + { CPUFUNC(op_d138_4), 53560 }, /* ADD */ + { CPUFUNC(op_d139_4), 53561 }, /* ADD */ + { CPUFUNC(op_d140_4), 53568 }, /* ADDX */ + { CPUFUNC(op_d148_4), 53576 }, /* ADDX */ + { CPUFUNC(op_d150_4), 53584 }, /* ADD */ + { CPUFUNC(op_d158_4), 53592 }, /* ADD */ + { CPUFUNC(op_d160_4), 53600 }, /* ADD */ + { CPUFUNC(op_d168_4), 53608 }, /* ADD */ + { CPUFUNC(op_d170_4), 53616 }, /* ADD */ + { CPUFUNC(op_d178_4), 53624 }, /* ADD */ + { CPUFUNC(op_d179_4), 53625 }, /* ADD */ + { CPUFUNC(op_d180_4), 53632 }, /* ADDX */ + { CPUFUNC(op_d188_4), 53640 }, /* ADDX */ + { CPUFUNC(op_d190_4), 53648 }, /* ADD */ + { CPUFUNC(op_d198_4), 53656 }, /* ADD */ + { CPUFUNC(op_d1a0_4), 53664 }, /* ADD */ + { CPUFUNC(op_d1a8_4), 53672 }, /* ADD */ + { CPUFUNC(op_d1b0_4), 53680 }, /* ADD */ + { CPUFUNC(op_d1b8_4), 53688 }, /* ADD */ + { CPUFUNC(op_d1b9_4), 53689 }, /* ADD */ + { CPUFUNC(op_d1c0_4), 53696 }, /* ADDA */ + { CPUFUNC(op_d1c8_4), 53704 }, /* ADDA */ + { CPUFUNC(op_d1d0_4), 53712 }, /* ADDA */ + { CPUFUNC(op_d1d8_4), 53720 }, /* ADDA */ + { CPUFUNC(op_d1e0_4), 53728 }, /* ADDA */ + { CPUFUNC(op_d1e8_4), 53736 }, /* ADDA */ + { CPUFUNC(op_d1f0_4), 53744 }, /* ADDA */ + { CPUFUNC(op_d1f8_4), 53752 }, /* ADDA */ + { CPUFUNC(op_d1f9_4), 53753 }, /* ADDA */ + { CPUFUNC(op_d1fa_4), 53754 }, /* ADDA */ + { CPUFUNC(op_d1fb_4), 53755 }, /* ADDA */ + { CPUFUNC(op_d1fc_4), 53756 }, /* ADDA */ + { CPUFUNC(op_e000_4), 57344 }, /* ASR */ + { CPUFUNC(op_e008_4), 57352 }, /* LSR */ + { CPUFUNC(op_e010_4), 57360 }, /* ROXR */ + { CPUFUNC(op_e018_4), 57368 }, /* ROR */ + { CPUFUNC(op_e020_4), 57376 }, /* ASR */ + { CPUFUNC(op_e028_4), 57384 }, /* LSR */ + { CPUFUNC(op_e030_4), 57392 }, /* ROXR */ + { CPUFUNC(op_e038_4), 57400 }, /* ROR */ + { CPUFUNC(op_e040_4), 57408 }, /* ASR */ + { CPUFUNC(op_e048_4), 57416 }, /* LSR */ + { CPUFUNC(op_e050_4), 57424 }, /* ROXR */ + { CPUFUNC(op_e058_4), 57432 }, /* ROR */ + { CPUFUNC(op_e060_4), 57440 }, /* ASR */ + { CPUFUNC(op_e068_4), 57448 }, /* LSR */ + { CPUFUNC(op_e070_4), 57456 }, /* ROXR */ + { CPUFUNC(op_e078_4), 57464 }, /* ROR */ + { CPUFUNC(op_e080_4), 57472 }, /* ASR */ + { CPUFUNC(op_e088_4), 57480 }, /* LSR */ + { CPUFUNC(op_e090_4), 57488 }, /* ROXR */ + { CPUFUNC(op_e098_4), 57496 }, /* ROR */ + { CPUFUNC(op_e0a0_4), 57504 }, /* ASR */ + { CPUFUNC(op_e0a8_4), 57512 }, /* LSR */ + { CPUFUNC(op_e0b0_4), 57520 }, /* ROXR */ + { CPUFUNC(op_e0b8_4), 57528 }, /* ROR */ + { CPUFUNC(op_e0d0_4), 57552 }, /* ASRW */ + { CPUFUNC(op_e0d8_4), 57560 }, /* ASRW */ + { CPUFUNC(op_e0e0_4), 57568 }, /* ASRW */ + { CPUFUNC(op_e0e8_4), 57576 }, /* ASRW */ + { CPUFUNC(op_e0f0_4), 57584 }, /* ASRW */ + { CPUFUNC(op_e0f8_4), 57592 }, /* ASRW */ + { CPUFUNC(op_e0f9_4), 57593 }, /* ASRW */ + { CPUFUNC(op_e100_4), 57600 }, /* ASL */ + { CPUFUNC(op_e108_4), 57608 }, /* LSL */ + { CPUFUNC(op_e110_4), 57616 }, /* ROXL */ + { CPUFUNC(op_e118_4), 57624 }, /* ROL */ + { CPUFUNC(op_e120_4), 57632 }, /* ASL */ + { CPUFUNC(op_e128_4), 57640 }, /* LSL */ + { CPUFUNC(op_e130_4), 57648 }, /* ROXL */ + { CPUFUNC(op_e138_4), 57656 }, /* ROL */ + { CPUFUNC(op_e140_4), 57664 }, /* ASL */ + { CPUFUNC(op_e148_4), 57672 }, /* LSL */ + { CPUFUNC(op_e150_4), 57680 }, /* ROXL */ + { CPUFUNC(op_e158_4), 57688 }, /* ROL */ + { CPUFUNC(op_e160_4), 57696 }, /* ASL */ + { CPUFUNC(op_e168_4), 57704 }, /* LSL */ + { CPUFUNC(op_e170_4), 57712 }, /* ROXL */ + { CPUFUNC(op_e178_4), 57720 }, /* ROL */ + { CPUFUNC(op_e180_4), 57728 }, /* ASL */ + { CPUFUNC(op_e188_4), 57736 }, /* LSL */ + { CPUFUNC(op_e190_4), 57744 }, /* ROXL */ + { CPUFUNC(op_e198_4), 57752 }, /* ROL */ + { CPUFUNC(op_e1a0_4), 57760 }, /* ASL */ + { CPUFUNC(op_e1a8_4), 57768 }, /* LSL */ + { CPUFUNC(op_e1b0_4), 57776 }, /* ROXL */ + { CPUFUNC(op_e1b8_4), 57784 }, /* ROL */ + { CPUFUNC(op_e1d0_4), 57808 }, /* ASLW */ + { CPUFUNC(op_e1d8_4), 57816 }, /* ASLW */ + { CPUFUNC(op_e1e0_4), 57824 }, /* ASLW */ + { CPUFUNC(op_e1e8_4), 57832 }, /* ASLW */ + { CPUFUNC(op_e1f0_4), 57840 }, /* ASLW */ + { CPUFUNC(op_e1f8_4), 57848 }, /* ASLW */ + { CPUFUNC(op_e1f9_4), 57849 }, /* ASLW */ + { CPUFUNC(op_e2d0_4), 58064 }, /* LSRW */ + { CPUFUNC(op_e2d8_4), 58072 }, /* LSRW */ + { CPUFUNC(op_e2e0_4), 58080 }, /* LSRW */ + { CPUFUNC(op_e2e8_4), 58088 }, /* LSRW */ + { CPUFUNC(op_e2f0_4), 58096 }, /* LSRW */ + { CPUFUNC(op_e2f8_4), 58104 }, /* LSRW */ + { CPUFUNC(op_e2f9_4), 58105 }, /* LSRW */ + { CPUFUNC(op_e3d0_4), 58320 }, /* LSLW */ + { CPUFUNC(op_e3d8_4), 58328 }, /* LSLW */ + { CPUFUNC(op_e3e0_4), 58336 }, /* LSLW */ + { CPUFUNC(op_e3e8_4), 58344 }, /* LSLW */ + { CPUFUNC(op_e3f0_4), 58352 }, /* LSLW */ + { CPUFUNC(op_e3f8_4), 58360 }, /* LSLW */ + { CPUFUNC(op_e3f9_4), 58361 }, /* LSLW */ + { CPUFUNC(op_e4d0_4), 58576 }, /* ROXRW */ + { CPUFUNC(op_e4d8_4), 58584 }, /* ROXRW */ + { CPUFUNC(op_e4e0_4), 58592 }, /* ROXRW */ + { CPUFUNC(op_e4e8_4), 58600 }, /* ROXRW */ + { CPUFUNC(op_e4f0_4), 58608 }, /* ROXRW */ + { CPUFUNC(op_e4f8_4), 58616 }, /* ROXRW */ + { CPUFUNC(op_e4f9_4), 58617 }, /* ROXRW */ + { CPUFUNC(op_e5d0_4), 58832 }, /* ROXLW */ + { CPUFUNC(op_e5d8_4), 58840 }, /* ROXLW */ + { CPUFUNC(op_e5e0_4), 58848 }, /* ROXLW */ + { CPUFUNC(op_e5e8_4), 58856 }, /* ROXLW */ + { CPUFUNC(op_e5f0_4), 58864 }, /* ROXLW */ + { CPUFUNC(op_e5f8_4), 58872 }, /* ROXLW */ + { CPUFUNC(op_e5f9_4), 58873 }, /* ROXLW */ + { CPUFUNC(op_e6d0_4), 59088 }, /* RORW */ + { CPUFUNC(op_e6d8_4), 59096 }, /* RORW */ + { CPUFUNC(op_e6e0_4), 59104 }, /* RORW */ + { CPUFUNC(op_e6e8_4), 59112 }, /* RORW */ + { CPUFUNC(op_e6f0_4), 59120 }, /* RORW */ + { CPUFUNC(op_e6f8_4), 59128 }, /* RORW */ + { CPUFUNC(op_e6f9_4), 59129 }, /* RORW */ + { CPUFUNC(op_e7d0_4), 59344 }, /* ROLW */ + { CPUFUNC(op_e7d8_4), 59352 }, /* ROLW */ + { CPUFUNC(op_e7e0_4), 59360 }, /* ROLW */ + { CPUFUNC(op_e7e8_4), 59368 }, /* ROLW */ + { CPUFUNC(op_e7f0_4), 59376 }, /* ROLW */ + { CPUFUNC(op_e7f8_4), 59384 }, /* ROLW */ + { CPUFUNC(op_e7f9_4), 59385 }, /* ROLW */ + { 0, 0 } +}; #ifdef CPUEMU_11 -const struct cputbl CPUFUNC(op_smalltbl_11)[] = { -{ CPUFUNC(op_0000_11), 0 }, /* OR */ -{ CPUFUNC(op_0010_11), 16 }, /* OR */ -{ CPUFUNC(op_0018_11), 24 }, /* OR */ -{ CPUFUNC(op_0020_11), 32 }, /* OR */ -{ CPUFUNC(op_0028_11), 40 }, /* OR */ -{ CPUFUNC(op_0030_11), 48 }, /* OR */ -{ CPUFUNC(op_0038_11), 56 }, /* OR */ -{ CPUFUNC(op_0039_11), 57 }, /* OR */ -{ CPUFUNC(op_003c_11), 60 }, /* ORSR */ -{ CPUFUNC(op_0040_11), 64 }, /* OR */ -{ CPUFUNC(op_0050_11), 80 }, /* OR */ -{ CPUFUNC(op_0058_11), 88 }, /* OR */ -{ CPUFUNC(op_0060_11), 96 }, /* OR */ -{ CPUFUNC(op_0068_11), 104 }, /* OR */ -{ CPUFUNC(op_0070_11), 112 }, /* OR */ -{ CPUFUNC(op_0078_11), 120 }, /* OR */ -{ CPUFUNC(op_0079_11), 121 }, /* OR */ -{ CPUFUNC(op_007c_11), 124 }, /* ORSR */ -{ CPUFUNC(op_0080_11), 128 }, /* OR */ -{ CPUFUNC(op_0090_11), 144 }, /* OR */ -{ CPUFUNC(op_0098_11), 152 }, /* OR */ -{ CPUFUNC(op_00a0_11), 160 }, /* OR */ -{ CPUFUNC(op_00a8_11), 168 }, /* OR */ -{ CPUFUNC(op_00b0_11), 176 }, /* OR */ -{ CPUFUNC(op_00b8_11), 184 }, /* OR */ -{ CPUFUNC(op_00b9_11), 185 }, /* OR */ -{ CPUFUNC(op_0100_11), 256 }, /* BTST */ -{ CPUFUNC(op_0108_11), 264 }, /* MVPMR */ -{ CPUFUNC(op_0110_11), 272 }, /* BTST */ -{ CPUFUNC(op_0118_11), 280 }, /* BTST */ -{ CPUFUNC(op_0120_11), 288 }, /* BTST */ -{ CPUFUNC(op_0128_11), 296 }, /* BTST */ -{ CPUFUNC(op_0130_11), 304 }, /* BTST */ -{ CPUFUNC(op_0138_11), 312 }, /* BTST */ -{ CPUFUNC(op_0139_11), 313 }, /* BTST */ -{ CPUFUNC(op_013a_11), 314 }, /* BTST */ -{ CPUFUNC(op_013b_11), 315 }, /* BTST */ -{ CPUFUNC(op_013c_11), 316 }, /* BTST */ -{ CPUFUNC(op_0140_11), 320 }, /* BCHG */ -{ CPUFUNC(op_0148_11), 328 }, /* MVPMR */ -{ CPUFUNC(op_0150_11), 336 }, /* BCHG */ -{ CPUFUNC(op_0158_11), 344 }, /* BCHG */ -{ CPUFUNC(op_0160_11), 352 }, /* BCHG */ -{ CPUFUNC(op_0168_11), 360 }, /* BCHG */ -{ CPUFUNC(op_0170_11), 368 }, /* BCHG */ -{ CPUFUNC(op_0178_11), 376 }, /* BCHG */ -{ CPUFUNC(op_0179_11), 377 }, /* BCHG */ -{ CPUFUNC(op_0180_11), 384 }, /* BCLR */ -{ CPUFUNC(op_0188_11), 392 }, /* MVPRM */ -{ CPUFUNC(op_0190_11), 400 }, /* BCLR */ -{ CPUFUNC(op_0198_11), 408 }, /* BCLR */ -{ CPUFUNC(op_01a0_11), 416 }, /* BCLR */ -{ CPUFUNC(op_01a8_11), 424 }, /* BCLR */ -{ CPUFUNC(op_01b0_11), 432 }, /* BCLR */ -{ CPUFUNC(op_01b8_11), 440 }, /* BCLR */ -{ CPUFUNC(op_01b9_11), 441 }, /* BCLR */ -{ CPUFUNC(op_01c0_11), 448 }, /* BSET */ -{ CPUFUNC(op_01c8_11), 456 }, /* MVPRM */ -{ CPUFUNC(op_01d0_11), 464 }, /* BSET */ -{ CPUFUNC(op_01d8_11), 472 }, /* BSET */ -{ CPUFUNC(op_01e0_11), 480 }, /* BSET */ -{ CPUFUNC(op_01e8_11), 488 }, /* BSET */ -{ CPUFUNC(op_01f0_11), 496 }, /* BSET */ -{ CPUFUNC(op_01f8_11), 504 }, /* BSET */ -{ CPUFUNC(op_01f9_11), 505 }, /* BSET */ -{ CPUFUNC(op_0200_11), 512 }, /* AND */ -{ CPUFUNC(op_0210_11), 528 }, /* AND */ -{ CPUFUNC(op_0218_11), 536 }, /* AND */ -{ CPUFUNC(op_0220_11), 544 }, /* AND */ -{ CPUFUNC(op_0228_11), 552 }, /* AND */ -{ CPUFUNC(op_0230_11), 560 }, /* AND */ -{ CPUFUNC(op_0238_11), 568 }, /* AND */ -{ CPUFUNC(op_0239_11), 569 }, /* AND */ -{ CPUFUNC(op_023c_11), 572 }, /* ANDSR */ -{ CPUFUNC(op_0240_11), 576 }, /* AND */ -{ CPUFUNC(op_0250_11), 592 }, /* AND */ -{ CPUFUNC(op_0258_11), 600 }, /* AND */ -{ CPUFUNC(op_0260_11), 608 }, /* AND */ -{ CPUFUNC(op_0268_11), 616 }, /* AND */ -{ CPUFUNC(op_0270_11), 624 }, /* AND */ -{ CPUFUNC(op_0278_11), 632 }, /* AND */ -{ CPUFUNC(op_0279_11), 633 }, /* AND */ -{ CPUFUNC(op_027c_11), 636 }, /* ANDSR */ -{ CPUFUNC(op_0280_11), 640 }, /* AND */ -{ CPUFUNC(op_0290_11), 656 }, /* AND */ -{ CPUFUNC(op_0298_11), 664 }, /* AND */ -{ CPUFUNC(op_02a0_11), 672 }, /* AND */ -{ CPUFUNC(op_02a8_11), 680 }, /* AND */ -{ CPUFUNC(op_02b0_11), 688 }, /* AND */ -{ CPUFUNC(op_02b8_11), 696 }, /* AND */ -{ CPUFUNC(op_02b9_11), 697 }, /* AND */ -{ CPUFUNC(op_0400_11), 1024 }, /* SUB */ -{ CPUFUNC(op_0410_11), 1040 }, /* SUB */ -{ CPUFUNC(op_0418_11), 1048 }, /* SUB */ -{ CPUFUNC(op_0420_11), 1056 }, /* SUB */ -{ CPUFUNC(op_0428_11), 1064 }, /* SUB */ -{ CPUFUNC(op_0430_11), 1072 }, /* SUB */ -{ CPUFUNC(op_0438_11), 1080 }, /* SUB */ -{ CPUFUNC(op_0439_11), 1081 }, /* SUB */ -{ CPUFUNC(op_0440_11), 1088 }, /* SUB */ -{ CPUFUNC(op_0450_11), 1104 }, /* SUB */ -{ CPUFUNC(op_0458_11), 1112 }, /* SUB */ -{ CPUFUNC(op_0460_11), 1120 }, /* SUB */ -{ CPUFUNC(op_0468_11), 1128 }, /* SUB */ -{ CPUFUNC(op_0470_11), 1136 }, /* SUB */ -{ CPUFUNC(op_0478_11), 1144 }, /* SUB */ -{ CPUFUNC(op_0479_11), 1145 }, /* SUB */ -{ CPUFUNC(op_0480_11), 1152 }, /* SUB */ -{ CPUFUNC(op_0490_11), 1168 }, /* SUB */ -{ CPUFUNC(op_0498_11), 1176 }, /* SUB */ -{ CPUFUNC(op_04a0_11), 1184 }, /* SUB */ -{ CPUFUNC(op_04a8_11), 1192 }, /* SUB */ -{ CPUFUNC(op_04b0_11), 1200 }, /* SUB */ -{ CPUFUNC(op_04b8_11), 1208 }, /* SUB */ -{ CPUFUNC(op_04b9_11), 1209 }, /* SUB */ -{ CPUFUNC(op_0600_11), 1536 }, /* ADD */ -{ CPUFUNC(op_0610_11), 1552 }, /* ADD */ -{ CPUFUNC(op_0618_11), 1560 }, /* ADD */ -{ CPUFUNC(op_0620_11), 1568 }, /* ADD */ -{ CPUFUNC(op_0628_11), 1576 }, /* ADD */ -{ CPUFUNC(op_0630_11), 1584 }, /* ADD */ -{ CPUFUNC(op_0638_11), 1592 }, /* ADD */ -{ CPUFUNC(op_0639_11), 1593 }, /* ADD */ -{ CPUFUNC(op_0640_11), 1600 }, /* ADD */ -{ CPUFUNC(op_0650_11), 1616 }, /* ADD */ -{ CPUFUNC(op_0658_11), 1624 }, /* ADD */ -{ CPUFUNC(op_0660_11), 1632 }, /* ADD */ -{ CPUFUNC(op_0668_11), 1640 }, /* ADD */ -{ CPUFUNC(op_0670_11), 1648 }, /* ADD */ -{ CPUFUNC(op_0678_11), 1656 }, /* ADD */ -{ CPUFUNC(op_0679_11), 1657 }, /* ADD */ -{ CPUFUNC(op_0680_11), 1664 }, /* ADD */ -{ CPUFUNC(op_0690_11), 1680 }, /* ADD */ -{ CPUFUNC(op_0698_11), 1688 }, /* ADD */ -{ CPUFUNC(op_06a0_11), 1696 }, /* ADD */ -{ CPUFUNC(op_06a8_11), 1704 }, /* ADD */ -{ CPUFUNC(op_06b0_11), 1712 }, /* ADD */ -{ CPUFUNC(op_06b8_11), 1720 }, /* ADD */ -{ CPUFUNC(op_06b9_11), 1721 }, /* ADD */ -{ CPUFUNC(op_0800_11), 2048 }, /* BTST */ -{ CPUFUNC(op_0810_11), 2064 }, /* BTST */ -{ CPUFUNC(op_0818_11), 2072 }, /* BTST */ -{ CPUFUNC(op_0820_11), 2080 }, /* BTST */ -{ CPUFUNC(op_0828_11), 2088 }, /* BTST */ -{ CPUFUNC(op_0830_11), 2096 }, /* BTST */ -{ CPUFUNC(op_0838_11), 2104 }, /* BTST */ -{ CPUFUNC(op_0839_11), 2105 }, /* BTST */ -{ CPUFUNC(op_083a_11), 2106 }, /* BTST */ -{ CPUFUNC(op_083b_11), 2107 }, /* BTST */ -{ CPUFUNC(op_083c_11), 2108 }, /* BTST */ -{ CPUFUNC(op_0840_11), 2112 }, /* BCHG */ -{ CPUFUNC(op_0850_11), 2128 }, /* BCHG */ -{ CPUFUNC(op_0858_11), 2136 }, /* BCHG */ -{ CPUFUNC(op_0860_11), 2144 }, /* BCHG */ -{ CPUFUNC(op_0868_11), 2152 }, /* BCHG */ -{ CPUFUNC(op_0870_11), 2160 }, /* BCHG */ -{ CPUFUNC(op_0878_11), 2168 }, /* BCHG */ -{ CPUFUNC(op_0879_11), 2169 }, /* BCHG */ -{ CPUFUNC(op_0880_11), 2176 }, /* BCLR */ -{ CPUFUNC(op_0890_11), 2192 }, /* BCLR */ -{ CPUFUNC(op_0898_11), 2200 }, /* BCLR */ -{ CPUFUNC(op_08a0_11), 2208 }, /* BCLR */ -{ CPUFUNC(op_08a8_11), 2216 }, /* BCLR */ -{ CPUFUNC(op_08b0_11), 2224 }, /* BCLR */ -{ CPUFUNC(op_08b8_11), 2232 }, /* BCLR */ -{ CPUFUNC(op_08b9_11), 2233 }, /* BCLR */ -{ CPUFUNC(op_08c0_11), 2240 }, /* BSET */ -{ CPUFUNC(op_08d0_11), 2256 }, /* BSET */ -{ CPUFUNC(op_08d8_11), 2264 }, /* BSET */ -{ CPUFUNC(op_08e0_11), 2272 }, /* BSET */ -{ CPUFUNC(op_08e8_11), 2280 }, /* BSET */ -{ CPUFUNC(op_08f0_11), 2288 }, /* BSET */ -{ CPUFUNC(op_08f8_11), 2296 }, /* BSET */ -{ CPUFUNC(op_08f9_11), 2297 }, /* BSET */ -{ CPUFUNC(op_0a00_11), 2560 }, /* EOR */ -{ CPUFUNC(op_0a10_11), 2576 }, /* EOR */ -{ CPUFUNC(op_0a18_11), 2584 }, /* EOR */ -{ CPUFUNC(op_0a20_11), 2592 }, /* EOR */ -{ CPUFUNC(op_0a28_11), 2600 }, /* EOR */ -{ CPUFUNC(op_0a30_11), 2608 }, /* EOR */ -{ CPUFUNC(op_0a38_11), 2616 }, /* EOR */ -{ CPUFUNC(op_0a39_11), 2617 }, /* EOR */ -{ CPUFUNC(op_0a3c_11), 2620 }, /* EORSR */ -{ CPUFUNC(op_0a40_11), 2624 }, /* EOR */ -{ CPUFUNC(op_0a50_11), 2640 }, /* EOR */ -{ CPUFUNC(op_0a58_11), 2648 }, /* EOR */ -{ CPUFUNC(op_0a60_11), 2656 }, /* EOR */ -{ CPUFUNC(op_0a68_11), 2664 }, /* EOR */ -{ CPUFUNC(op_0a70_11), 2672 }, /* EOR */ -{ CPUFUNC(op_0a78_11), 2680 }, /* EOR */ -{ CPUFUNC(op_0a79_11), 2681 }, /* EOR */ -{ CPUFUNC(op_0a7c_11), 2684 }, /* EORSR */ -{ CPUFUNC(op_0a80_11), 2688 }, /* EOR */ -{ CPUFUNC(op_0a90_11), 2704 }, /* EOR */ -{ CPUFUNC(op_0a98_11), 2712 }, /* EOR */ -{ CPUFUNC(op_0aa0_11), 2720 }, /* EOR */ -{ CPUFUNC(op_0aa8_11), 2728 }, /* EOR */ -{ CPUFUNC(op_0ab0_11), 2736 }, /* EOR */ -{ CPUFUNC(op_0ab8_11), 2744 }, /* EOR */ -{ CPUFUNC(op_0ab9_11), 2745 }, /* EOR */ -{ CPUFUNC(op_0c00_11), 3072 }, /* CMP */ -{ CPUFUNC(op_0c10_11), 3088 }, /* CMP */ -{ CPUFUNC(op_0c18_11), 3096 }, /* CMP */ -{ CPUFUNC(op_0c20_11), 3104 }, /* CMP */ -{ CPUFUNC(op_0c28_11), 3112 }, /* CMP */ -{ CPUFUNC(op_0c30_11), 3120 }, /* CMP */ -{ CPUFUNC(op_0c38_11), 3128 }, /* CMP */ -{ CPUFUNC(op_0c39_11), 3129 }, /* CMP */ -{ CPUFUNC(op_0c40_11), 3136 }, /* CMP */ -{ CPUFUNC(op_0c50_11), 3152 }, /* CMP */ -{ CPUFUNC(op_0c58_11), 3160 }, /* CMP */ -{ CPUFUNC(op_0c60_11), 3168 }, /* CMP */ -{ CPUFUNC(op_0c68_11), 3176 }, /* CMP */ -{ CPUFUNC(op_0c70_11), 3184 }, /* CMP */ -{ CPUFUNC(op_0c78_11), 3192 }, /* CMP */ -{ CPUFUNC(op_0c79_11), 3193 }, /* CMP */ -{ CPUFUNC(op_0c80_11), 3200 }, /* CMP */ -{ CPUFUNC(op_0c90_11), 3216 }, /* CMP */ -{ CPUFUNC(op_0c98_11), 3224 }, /* CMP */ -{ CPUFUNC(op_0ca0_11), 3232 }, /* CMP */ -{ CPUFUNC(op_0ca8_11), 3240 }, /* CMP */ -{ CPUFUNC(op_0cb0_11), 3248 }, /* CMP */ -{ CPUFUNC(op_0cb8_11), 3256 }, /* CMP */ -{ CPUFUNC(op_0cb9_11), 3257 }, /* CMP */ -{ CPUFUNC(op_1000_11), 4096 }, /* MOVE */ -{ CPUFUNC(op_1010_11), 4112 }, /* MOVE */ -{ CPUFUNC(op_1018_11), 4120 }, /* MOVE */ -{ CPUFUNC(op_1020_11), 4128 }, /* MOVE */ -{ CPUFUNC(op_1028_11), 4136 }, /* MOVE */ -{ CPUFUNC(op_1030_11), 4144 }, /* MOVE */ -{ CPUFUNC(op_1038_11), 4152 }, /* MOVE */ -{ CPUFUNC(op_1039_11), 4153 }, /* MOVE */ -{ CPUFUNC(op_103a_11), 4154 }, /* MOVE */ -{ CPUFUNC(op_103b_11), 4155 }, /* MOVE */ -{ CPUFUNC(op_103c_11), 4156 }, /* MOVE */ -{ CPUFUNC(op_1080_11), 4224 }, /* MOVE */ -{ CPUFUNC(op_1090_11), 4240 }, /* MOVE */ -{ CPUFUNC(op_1098_11), 4248 }, /* MOVE */ -{ CPUFUNC(op_10a0_11), 4256 }, /* MOVE */ -{ CPUFUNC(op_10a8_11), 4264 }, /* MOVE */ -{ CPUFUNC(op_10b0_11), 4272 }, /* MOVE */ -{ CPUFUNC(op_10b8_11), 4280 }, /* MOVE */ -{ CPUFUNC(op_10b9_11), 4281 }, /* MOVE */ -{ CPUFUNC(op_10ba_11), 4282 }, /* MOVE */ -{ CPUFUNC(op_10bb_11), 4283 }, /* MOVE */ -{ CPUFUNC(op_10bc_11), 4284 }, /* MOVE */ -{ CPUFUNC(op_10c0_11), 4288 }, /* MOVE */ -{ CPUFUNC(op_10d0_11), 4304 }, /* MOVE */ -{ CPUFUNC(op_10d8_11), 4312 }, /* MOVE */ -{ CPUFUNC(op_10e0_11), 4320 }, /* MOVE */ -{ CPUFUNC(op_10e8_11), 4328 }, /* MOVE */ -{ CPUFUNC(op_10f0_11), 4336 }, /* MOVE */ -{ CPUFUNC(op_10f8_11), 4344 }, /* MOVE */ -{ CPUFUNC(op_10f9_11), 4345 }, /* MOVE */ -{ CPUFUNC(op_10fa_11), 4346 }, /* MOVE */ -{ CPUFUNC(op_10fb_11), 4347 }, /* MOVE */ -{ CPUFUNC(op_10fc_11), 4348 }, /* MOVE */ -{ CPUFUNC(op_1100_11), 4352 }, /* MOVE */ -{ CPUFUNC(op_1110_11), 4368 }, /* MOVE */ -{ CPUFUNC(op_1118_11), 4376 }, /* MOVE */ -{ CPUFUNC(op_1120_11), 4384 }, /* MOVE */ -{ CPUFUNC(op_1128_11), 4392 }, /* MOVE */ -{ CPUFUNC(op_1130_11), 4400 }, /* MOVE */ -{ CPUFUNC(op_1138_11), 4408 }, /* MOVE */ -{ CPUFUNC(op_1139_11), 4409 }, /* MOVE */ -{ CPUFUNC(op_113a_11), 4410 }, /* MOVE */ -{ CPUFUNC(op_113b_11), 4411 }, /* MOVE */ -{ CPUFUNC(op_113c_11), 4412 }, /* MOVE */ -{ CPUFUNC(op_1140_11), 4416 }, /* MOVE */ -{ CPUFUNC(op_1150_11), 4432 }, /* MOVE */ -{ CPUFUNC(op_1158_11), 4440 }, /* MOVE */ -{ CPUFUNC(op_1160_11), 4448 }, /* MOVE */ -{ CPUFUNC(op_1168_11), 4456 }, /* MOVE */ -{ CPUFUNC(op_1170_11), 4464 }, /* MOVE */ -{ CPUFUNC(op_1178_11), 4472 }, /* MOVE */ -{ CPUFUNC(op_1179_11), 4473 }, /* MOVE */ -{ CPUFUNC(op_117a_11), 4474 }, /* MOVE */ -{ CPUFUNC(op_117b_11), 4475 }, /* MOVE */ -{ CPUFUNC(op_117c_11), 4476 }, /* MOVE */ -{ CPUFUNC(op_1180_11), 4480 }, /* MOVE */ -{ CPUFUNC(op_1190_11), 4496 }, /* MOVE */ -{ CPUFUNC(op_1198_11), 4504 }, /* MOVE */ -{ CPUFUNC(op_11a0_11), 4512 }, /* MOVE */ -{ CPUFUNC(op_11a8_11), 4520 }, /* MOVE */ -{ CPUFUNC(op_11b0_11), 4528 }, /* MOVE */ -{ CPUFUNC(op_11b8_11), 4536 }, /* MOVE */ -{ CPUFUNC(op_11b9_11), 4537 }, /* MOVE */ -{ CPUFUNC(op_11ba_11), 4538 }, /* MOVE */ -{ CPUFUNC(op_11bb_11), 4539 }, /* MOVE */ -{ CPUFUNC(op_11bc_11), 4540 }, /* MOVE */ -{ CPUFUNC(op_11c0_11), 4544 }, /* MOVE */ -{ CPUFUNC(op_11d0_11), 4560 }, /* MOVE */ -{ CPUFUNC(op_11d8_11), 4568 }, /* MOVE */ -{ CPUFUNC(op_11e0_11), 4576 }, /* MOVE */ -{ CPUFUNC(op_11e8_11), 4584 }, /* MOVE */ -{ CPUFUNC(op_11f0_11), 4592 }, /* MOVE */ -{ CPUFUNC(op_11f8_11), 4600 }, /* MOVE */ -{ CPUFUNC(op_11f9_11), 4601 }, /* MOVE */ -{ CPUFUNC(op_11fa_11), 4602 }, /* MOVE */ -{ CPUFUNC(op_11fb_11), 4603 }, /* MOVE */ -{ CPUFUNC(op_11fc_11), 4604 }, /* MOVE */ -{ CPUFUNC(op_13c0_11), 5056 }, /* MOVE */ -{ CPUFUNC(op_13d0_11), 5072 }, /* MOVE */ -{ CPUFUNC(op_13d8_11), 5080 }, /* MOVE */ -{ CPUFUNC(op_13e0_11), 5088 }, /* MOVE */ -{ CPUFUNC(op_13e8_11), 5096 }, /* MOVE */ -{ CPUFUNC(op_13f0_11), 5104 }, /* MOVE */ -{ CPUFUNC(op_13f8_11), 5112 }, /* MOVE */ -{ CPUFUNC(op_13f9_11), 5113 }, /* MOVE */ -{ CPUFUNC(op_13fa_11), 5114 }, /* MOVE */ -{ CPUFUNC(op_13fb_11), 5115 }, /* MOVE */ -{ CPUFUNC(op_13fc_11), 5116 }, /* MOVE */ -{ CPUFUNC(op_2000_11), 8192 }, /* MOVE */ -{ CPUFUNC(op_2008_11), 8200 }, /* MOVE */ -{ CPUFUNC(op_2010_11), 8208 }, /* MOVE */ -{ CPUFUNC(op_2018_11), 8216 }, /* MOVE */ -{ CPUFUNC(op_2020_11), 8224 }, /* MOVE */ -{ CPUFUNC(op_2028_11), 8232 }, /* MOVE */ -{ CPUFUNC(op_2030_11), 8240 }, /* MOVE */ -{ CPUFUNC(op_2038_11), 8248 }, /* MOVE */ -{ CPUFUNC(op_2039_11), 8249 }, /* MOVE */ -{ CPUFUNC(op_203a_11), 8250 }, /* MOVE */ -{ CPUFUNC(op_203b_11), 8251 }, /* MOVE */ -{ CPUFUNC(op_203c_11), 8252 }, /* MOVE */ -{ CPUFUNC(op_2040_11), 8256 }, /* MOVEA */ -{ CPUFUNC(op_2048_11), 8264 }, /* MOVEA */ -{ CPUFUNC(op_2050_11), 8272 }, /* MOVEA */ -{ CPUFUNC(op_2058_11), 8280 }, /* MOVEA */ -{ CPUFUNC(op_2060_11), 8288 }, /* MOVEA */ -{ CPUFUNC(op_2068_11), 8296 }, /* MOVEA */ -{ CPUFUNC(op_2070_11), 8304 }, /* MOVEA */ -{ CPUFUNC(op_2078_11), 8312 }, /* MOVEA */ -{ CPUFUNC(op_2079_11), 8313 }, /* MOVEA */ -{ CPUFUNC(op_207a_11), 8314 }, /* MOVEA */ -{ CPUFUNC(op_207b_11), 8315 }, /* MOVEA */ -{ CPUFUNC(op_207c_11), 8316 }, /* MOVEA */ -{ CPUFUNC(op_2080_11), 8320 }, /* MOVE */ -{ CPUFUNC(op_2088_11), 8328 }, /* MOVE */ -{ CPUFUNC(op_2090_11), 8336 }, /* MOVE */ -{ CPUFUNC(op_2098_11), 8344 }, /* MOVE */ -{ CPUFUNC(op_20a0_11), 8352 }, /* MOVE */ -{ CPUFUNC(op_20a8_11), 8360 }, /* MOVE */ -{ CPUFUNC(op_20b0_11), 8368 }, /* MOVE */ -{ CPUFUNC(op_20b8_11), 8376 }, /* MOVE */ -{ CPUFUNC(op_20b9_11), 8377 }, /* MOVE */ -{ CPUFUNC(op_20ba_11), 8378 }, /* MOVE */ -{ CPUFUNC(op_20bb_11), 8379 }, /* MOVE */ -{ CPUFUNC(op_20bc_11), 8380 }, /* MOVE */ -{ CPUFUNC(op_20c0_11), 8384 }, /* MOVE */ -{ CPUFUNC(op_20c8_11), 8392 }, /* MOVE */ -{ CPUFUNC(op_20d0_11), 8400 }, /* MOVE */ -{ CPUFUNC(op_20d8_11), 8408 }, /* MOVE */ -{ CPUFUNC(op_20e0_11), 8416 }, /* MOVE */ -{ CPUFUNC(op_20e8_11), 8424 }, /* MOVE */ -{ CPUFUNC(op_20f0_11), 8432 }, /* MOVE */ -{ CPUFUNC(op_20f8_11), 8440 }, /* MOVE */ -{ CPUFUNC(op_20f9_11), 8441 }, /* MOVE */ -{ CPUFUNC(op_20fa_11), 8442 }, /* MOVE */ -{ CPUFUNC(op_20fb_11), 8443 }, /* MOVE */ -{ CPUFUNC(op_20fc_11), 8444 }, /* MOVE */ -{ CPUFUNC(op_2100_11), 8448 }, /* MOVE */ -{ CPUFUNC(op_2108_11), 8456 }, /* MOVE */ -{ CPUFUNC(op_2110_11), 8464 }, /* MOVE */ -{ CPUFUNC(op_2118_11), 8472 }, /* MOVE */ -{ CPUFUNC(op_2120_11), 8480 }, /* MOVE */ -{ CPUFUNC(op_2128_11), 8488 }, /* MOVE */ -{ CPUFUNC(op_2130_11), 8496 }, /* MOVE */ -{ CPUFUNC(op_2138_11), 8504 }, /* MOVE */ -{ CPUFUNC(op_2139_11), 8505 }, /* MOVE */ -{ CPUFUNC(op_213a_11), 8506 }, /* MOVE */ -{ CPUFUNC(op_213b_11), 8507 }, /* MOVE */ -{ CPUFUNC(op_213c_11), 8508 }, /* MOVE */ -{ CPUFUNC(op_2140_11), 8512 }, /* MOVE */ -{ CPUFUNC(op_2148_11), 8520 }, /* MOVE */ -{ CPUFUNC(op_2150_11), 8528 }, /* MOVE */ -{ CPUFUNC(op_2158_11), 8536 }, /* MOVE */ -{ CPUFUNC(op_2160_11), 8544 }, /* MOVE */ -{ CPUFUNC(op_2168_11), 8552 }, /* MOVE */ -{ CPUFUNC(op_2170_11), 8560 }, /* MOVE */ -{ CPUFUNC(op_2178_11), 8568 }, /* MOVE */ -{ CPUFUNC(op_2179_11), 8569 }, /* MOVE */ -{ CPUFUNC(op_217a_11), 8570 }, /* MOVE */ -{ CPUFUNC(op_217b_11), 8571 }, /* MOVE */ -{ CPUFUNC(op_217c_11), 8572 }, /* MOVE */ -{ CPUFUNC(op_2180_11), 8576 }, /* MOVE */ -{ CPUFUNC(op_2188_11), 8584 }, /* MOVE */ -{ CPUFUNC(op_2190_11), 8592 }, /* MOVE */ -{ CPUFUNC(op_2198_11), 8600 }, /* MOVE */ -{ CPUFUNC(op_21a0_11), 8608 }, /* MOVE */ -{ CPUFUNC(op_21a8_11), 8616 }, /* MOVE */ -{ CPUFUNC(op_21b0_11), 8624 }, /* MOVE */ -{ CPUFUNC(op_21b8_11), 8632 }, /* MOVE */ -{ CPUFUNC(op_21b9_11), 8633 }, /* MOVE */ -{ CPUFUNC(op_21ba_11), 8634 }, /* MOVE */ -{ CPUFUNC(op_21bb_11), 8635 }, /* MOVE */ -{ CPUFUNC(op_21bc_11), 8636 }, /* MOVE */ -{ CPUFUNC(op_21c0_11), 8640 }, /* MOVE */ -{ CPUFUNC(op_21c8_11), 8648 }, /* MOVE */ -{ CPUFUNC(op_21d0_11), 8656 }, /* MOVE */ -{ CPUFUNC(op_21d8_11), 8664 }, /* MOVE */ -{ CPUFUNC(op_21e0_11), 8672 }, /* MOVE */ -{ CPUFUNC(op_21e8_11), 8680 }, /* MOVE */ -{ CPUFUNC(op_21f0_11), 8688 }, /* MOVE */ -{ CPUFUNC(op_21f8_11), 8696 }, /* MOVE */ -{ CPUFUNC(op_21f9_11), 8697 }, /* MOVE */ -{ CPUFUNC(op_21fa_11), 8698 }, /* MOVE */ -{ CPUFUNC(op_21fb_11), 8699 }, /* MOVE */ -{ CPUFUNC(op_21fc_11), 8700 }, /* MOVE */ -{ CPUFUNC(op_23c0_11), 9152 }, /* MOVE */ -{ CPUFUNC(op_23c8_11), 9160 }, /* MOVE */ -{ CPUFUNC(op_23d0_11), 9168 }, /* MOVE */ -{ CPUFUNC(op_23d8_11), 9176 }, /* MOVE */ -{ CPUFUNC(op_23e0_11), 9184 }, /* MOVE */ -{ CPUFUNC(op_23e8_11), 9192 }, /* MOVE */ -{ CPUFUNC(op_23f0_11), 9200 }, /* MOVE */ -{ CPUFUNC(op_23f8_11), 9208 }, /* MOVE */ -{ CPUFUNC(op_23f9_11), 9209 }, /* MOVE */ -{ CPUFUNC(op_23fa_11), 9210 }, /* MOVE */ -{ CPUFUNC(op_23fb_11), 9211 }, /* MOVE */ -{ CPUFUNC(op_23fc_11), 9212 }, /* MOVE */ -{ CPUFUNC(op_3000_11), 12288 }, /* MOVE */ -{ CPUFUNC(op_3008_11), 12296 }, /* MOVE */ -{ CPUFUNC(op_3010_11), 12304 }, /* MOVE */ -{ CPUFUNC(op_3018_11), 12312 }, /* MOVE */ -{ CPUFUNC(op_3020_11), 12320 }, /* MOVE */ -{ CPUFUNC(op_3028_11), 12328 }, /* MOVE */ -{ CPUFUNC(op_3030_11), 12336 }, /* MOVE */ -{ CPUFUNC(op_3038_11), 12344 }, /* MOVE */ -{ CPUFUNC(op_3039_11), 12345 }, /* MOVE */ -{ CPUFUNC(op_303a_11), 12346 }, /* MOVE */ -{ CPUFUNC(op_303b_11), 12347 }, /* MOVE */ -{ CPUFUNC(op_303c_11), 12348 }, /* MOVE */ -{ CPUFUNC(op_3040_11), 12352 }, /* MOVEA */ -{ CPUFUNC(op_3048_11), 12360 }, /* MOVEA */ -{ CPUFUNC(op_3050_11), 12368 }, /* MOVEA */ -{ CPUFUNC(op_3058_11), 12376 }, /* MOVEA */ -{ CPUFUNC(op_3060_11), 12384 }, /* MOVEA */ -{ CPUFUNC(op_3068_11), 12392 }, /* MOVEA */ -{ CPUFUNC(op_3070_11), 12400 }, /* MOVEA */ -{ CPUFUNC(op_3078_11), 12408 }, /* MOVEA */ -{ CPUFUNC(op_3079_11), 12409 }, /* MOVEA */ -{ CPUFUNC(op_307a_11), 12410 }, /* MOVEA */ -{ CPUFUNC(op_307b_11), 12411 }, /* MOVEA */ -{ CPUFUNC(op_307c_11), 12412 }, /* MOVEA */ -{ CPUFUNC(op_3080_11), 12416 }, /* MOVE */ -{ CPUFUNC(op_3088_11), 12424 }, /* MOVE */ -{ CPUFUNC(op_3090_11), 12432 }, /* MOVE */ -{ CPUFUNC(op_3098_11), 12440 }, /* MOVE */ -{ CPUFUNC(op_30a0_11), 12448 }, /* MOVE */ -{ CPUFUNC(op_30a8_11), 12456 }, /* MOVE */ -{ CPUFUNC(op_30b0_11), 12464 }, /* MOVE */ -{ CPUFUNC(op_30b8_11), 12472 }, /* MOVE */ -{ CPUFUNC(op_30b9_11), 12473 }, /* MOVE */ -{ CPUFUNC(op_30ba_11), 12474 }, /* MOVE */ -{ CPUFUNC(op_30bb_11), 12475 }, /* MOVE */ -{ CPUFUNC(op_30bc_11), 12476 }, /* MOVE */ -{ CPUFUNC(op_30c0_11), 12480 }, /* MOVE */ -{ CPUFUNC(op_30c8_11), 12488 }, /* MOVE */ -{ CPUFUNC(op_30d0_11), 12496 }, /* MOVE */ -{ CPUFUNC(op_30d8_11), 12504 }, /* MOVE */ -{ CPUFUNC(op_30e0_11), 12512 }, /* MOVE */ -{ CPUFUNC(op_30e8_11), 12520 }, /* MOVE */ -{ CPUFUNC(op_30f0_11), 12528 }, /* MOVE */ -{ CPUFUNC(op_30f8_11), 12536 }, /* MOVE */ -{ CPUFUNC(op_30f9_11), 12537 }, /* MOVE */ -{ CPUFUNC(op_30fa_11), 12538 }, /* MOVE */ -{ CPUFUNC(op_30fb_11), 12539 }, /* MOVE */ -{ CPUFUNC(op_30fc_11), 12540 }, /* MOVE */ -{ CPUFUNC(op_3100_11), 12544 }, /* MOVE */ -{ CPUFUNC(op_3108_11), 12552 }, /* MOVE */ -{ CPUFUNC(op_3110_11), 12560 }, /* MOVE */ -{ CPUFUNC(op_3118_11), 12568 }, /* MOVE */ -{ CPUFUNC(op_3120_11), 12576 }, /* MOVE */ -{ CPUFUNC(op_3128_11), 12584 }, /* MOVE */ -{ CPUFUNC(op_3130_11), 12592 }, /* MOVE */ -{ CPUFUNC(op_3138_11), 12600 }, /* MOVE */ -{ CPUFUNC(op_3139_11), 12601 }, /* MOVE */ -{ CPUFUNC(op_313a_11), 12602 }, /* MOVE */ -{ CPUFUNC(op_313b_11), 12603 }, /* MOVE */ -{ CPUFUNC(op_313c_11), 12604 }, /* MOVE */ -{ CPUFUNC(op_3140_11), 12608 }, /* MOVE */ -{ CPUFUNC(op_3148_11), 12616 }, /* MOVE */ -{ CPUFUNC(op_3150_11), 12624 }, /* MOVE */ -{ CPUFUNC(op_3158_11), 12632 }, /* MOVE */ -{ CPUFUNC(op_3160_11), 12640 }, /* MOVE */ -{ CPUFUNC(op_3168_11), 12648 }, /* MOVE */ -{ CPUFUNC(op_3170_11), 12656 }, /* MOVE */ -{ CPUFUNC(op_3178_11), 12664 }, /* MOVE */ -{ CPUFUNC(op_3179_11), 12665 }, /* MOVE */ -{ CPUFUNC(op_317a_11), 12666 }, /* MOVE */ -{ CPUFUNC(op_317b_11), 12667 }, /* MOVE */ -{ CPUFUNC(op_317c_11), 12668 }, /* MOVE */ -{ CPUFUNC(op_3180_11), 12672 }, /* MOVE */ -{ CPUFUNC(op_3188_11), 12680 }, /* MOVE */ -{ CPUFUNC(op_3190_11), 12688 }, /* MOVE */ -{ CPUFUNC(op_3198_11), 12696 }, /* MOVE */ -{ CPUFUNC(op_31a0_11), 12704 }, /* MOVE */ -{ CPUFUNC(op_31a8_11), 12712 }, /* MOVE */ -{ CPUFUNC(op_31b0_11), 12720 }, /* MOVE */ -{ CPUFUNC(op_31b8_11), 12728 }, /* MOVE */ -{ CPUFUNC(op_31b9_11), 12729 }, /* MOVE */ -{ CPUFUNC(op_31ba_11), 12730 }, /* MOVE */ -{ CPUFUNC(op_31bb_11), 12731 }, /* MOVE */ -{ CPUFUNC(op_31bc_11), 12732 }, /* MOVE */ -{ CPUFUNC(op_31c0_11), 12736 }, /* MOVE */ -{ CPUFUNC(op_31c8_11), 12744 }, /* MOVE */ -{ CPUFUNC(op_31d0_11), 12752 }, /* MOVE */ -{ CPUFUNC(op_31d8_11), 12760 }, /* MOVE */ -{ CPUFUNC(op_31e0_11), 12768 }, /* MOVE */ -{ CPUFUNC(op_31e8_11), 12776 }, /* MOVE */ -{ CPUFUNC(op_31f0_11), 12784 }, /* MOVE */ -{ CPUFUNC(op_31f8_11), 12792 }, /* MOVE */ -{ CPUFUNC(op_31f9_11), 12793 }, /* MOVE */ -{ CPUFUNC(op_31fa_11), 12794 }, /* MOVE */ -{ CPUFUNC(op_31fb_11), 12795 }, /* MOVE */ -{ CPUFUNC(op_31fc_11), 12796 }, /* MOVE */ -{ CPUFUNC(op_33c0_11), 13248 }, /* MOVE */ -{ CPUFUNC(op_33c8_11), 13256 }, /* MOVE */ -{ CPUFUNC(op_33d0_11), 13264 }, /* MOVE */ -{ CPUFUNC(op_33d8_11), 13272 }, /* MOVE */ -{ CPUFUNC(op_33e0_11), 13280 }, /* MOVE */ -{ CPUFUNC(op_33e8_11), 13288 }, /* MOVE */ -{ CPUFUNC(op_33f0_11), 13296 }, /* MOVE */ -{ CPUFUNC(op_33f8_11), 13304 }, /* MOVE */ -{ CPUFUNC(op_33f9_11), 13305 }, /* MOVE */ -{ CPUFUNC(op_33fa_11), 13306 }, /* MOVE */ -{ CPUFUNC(op_33fb_11), 13307 }, /* MOVE */ -{ CPUFUNC(op_33fc_11), 13308 }, /* MOVE */ -{ CPUFUNC(op_4000_11), 16384 }, /* NEGX */ -{ CPUFUNC(op_4010_11), 16400 }, /* NEGX */ -{ CPUFUNC(op_4018_11), 16408 }, /* NEGX */ -{ CPUFUNC(op_4020_11), 16416 }, /* NEGX */ -{ CPUFUNC(op_4028_11), 16424 }, /* NEGX */ -{ CPUFUNC(op_4030_11), 16432 }, /* NEGX */ -{ CPUFUNC(op_4038_11), 16440 }, /* NEGX */ -{ CPUFUNC(op_4039_11), 16441 }, /* NEGX */ -{ CPUFUNC(op_4040_11), 16448 }, /* NEGX */ -{ CPUFUNC(op_4050_11), 16464 }, /* NEGX */ -{ CPUFUNC(op_4058_11), 16472 }, /* NEGX */ -{ CPUFUNC(op_4060_11), 16480 }, /* NEGX */ -{ CPUFUNC(op_4068_11), 16488 }, /* NEGX */ -{ CPUFUNC(op_4070_11), 16496 }, /* NEGX */ -{ CPUFUNC(op_4078_11), 16504 }, /* NEGX */ -{ CPUFUNC(op_4079_11), 16505 }, /* NEGX */ -{ CPUFUNC(op_4080_11), 16512 }, /* NEGX */ -{ CPUFUNC(op_4090_11), 16528 }, /* NEGX */ -{ CPUFUNC(op_4098_11), 16536 }, /* NEGX */ -{ CPUFUNC(op_40a0_11), 16544 }, /* NEGX */ -{ CPUFUNC(op_40a8_11), 16552 }, /* NEGX */ -{ CPUFUNC(op_40b0_11), 16560 }, /* NEGX */ -{ CPUFUNC(op_40b8_11), 16568 }, /* NEGX */ -{ CPUFUNC(op_40b9_11), 16569 }, /* NEGX */ -{ CPUFUNC(op_40c0_11), 16576 }, /* MVSR2 */ -{ CPUFUNC(op_40d0_11), 16592 }, /* MVSR2 */ -{ CPUFUNC(op_40d8_11), 16600 }, /* MVSR2 */ -{ CPUFUNC(op_40e0_11), 16608 }, /* MVSR2 */ -{ CPUFUNC(op_40e8_11), 16616 }, /* MVSR2 */ -{ CPUFUNC(op_40f0_11), 16624 }, /* MVSR2 */ -{ CPUFUNC(op_40f8_11), 16632 }, /* MVSR2 */ -{ CPUFUNC(op_40f9_11), 16633 }, /* MVSR2 */ -{ CPUFUNC(op_4180_11), 16768 }, /* CHK */ -{ CPUFUNC(op_4190_11), 16784 }, /* CHK */ -{ CPUFUNC(op_4198_11), 16792 }, /* CHK */ -{ CPUFUNC(op_41a0_11), 16800 }, /* CHK */ -{ CPUFUNC(op_41a8_11), 16808 }, /* CHK */ -{ CPUFUNC(op_41b0_11), 16816 }, /* CHK */ -{ CPUFUNC(op_41b8_11), 16824 }, /* CHK */ -{ CPUFUNC(op_41b9_11), 16825 }, /* CHK */ -{ CPUFUNC(op_41ba_11), 16826 }, /* CHK */ -{ CPUFUNC(op_41bb_11), 16827 }, /* CHK */ -{ CPUFUNC(op_41bc_11), 16828 }, /* CHK */ -{ CPUFUNC(op_41d0_11), 16848 }, /* LEA */ -{ CPUFUNC(op_41e8_11), 16872 }, /* LEA */ -{ CPUFUNC(op_41f0_11), 16880 }, /* LEA */ -{ CPUFUNC(op_41f8_11), 16888 }, /* LEA */ -{ CPUFUNC(op_41f9_11), 16889 }, /* LEA */ -{ CPUFUNC(op_41fa_11), 16890 }, /* LEA */ -{ CPUFUNC(op_41fb_11), 16891 }, /* LEA */ -{ CPUFUNC(op_4200_11), 16896 }, /* CLR */ -{ CPUFUNC(op_4210_11), 16912 }, /* CLR */ -{ CPUFUNC(op_4218_11), 16920 }, /* CLR */ -{ CPUFUNC(op_4220_11), 16928 }, /* CLR */ -{ CPUFUNC(op_4228_11), 16936 }, /* CLR */ -{ CPUFUNC(op_4230_11), 16944 }, /* CLR */ -{ CPUFUNC(op_4238_11), 16952 }, /* CLR */ -{ CPUFUNC(op_4239_11), 16953 }, /* CLR */ -{ CPUFUNC(op_4240_11), 16960 }, /* CLR */ -{ CPUFUNC(op_4250_11), 16976 }, /* CLR */ -{ CPUFUNC(op_4258_11), 16984 }, /* CLR */ -{ CPUFUNC(op_4260_11), 16992 }, /* CLR */ -{ CPUFUNC(op_4268_11), 17000 }, /* CLR */ -{ CPUFUNC(op_4270_11), 17008 }, /* CLR */ -{ CPUFUNC(op_4278_11), 17016 }, /* CLR */ -{ CPUFUNC(op_4279_11), 17017 }, /* CLR */ -{ CPUFUNC(op_4280_11), 17024 }, /* CLR */ -{ CPUFUNC(op_4290_11), 17040 }, /* CLR */ -{ CPUFUNC(op_4298_11), 17048 }, /* CLR */ -{ CPUFUNC(op_42a0_11), 17056 }, /* CLR */ -{ CPUFUNC(op_42a8_11), 17064 }, /* CLR */ -{ CPUFUNC(op_42b0_11), 17072 }, /* CLR */ -{ CPUFUNC(op_42b8_11), 17080 }, /* CLR */ -{ CPUFUNC(op_42b9_11), 17081 }, /* CLR */ -{ CPUFUNC(op_4400_11), 17408 }, /* NEG */ -{ CPUFUNC(op_4410_11), 17424 }, /* NEG */ -{ CPUFUNC(op_4418_11), 17432 }, /* NEG */ -{ CPUFUNC(op_4420_11), 17440 }, /* NEG */ -{ CPUFUNC(op_4428_11), 17448 }, /* NEG */ -{ CPUFUNC(op_4430_11), 17456 }, /* NEG */ -{ CPUFUNC(op_4438_11), 17464 }, /* NEG */ -{ CPUFUNC(op_4439_11), 17465 }, /* NEG */ -{ CPUFUNC(op_4440_11), 17472 }, /* NEG */ -{ CPUFUNC(op_4450_11), 17488 }, /* NEG */ -{ CPUFUNC(op_4458_11), 17496 }, /* NEG */ -{ CPUFUNC(op_4460_11), 17504 }, /* NEG */ -{ CPUFUNC(op_4468_11), 17512 }, /* NEG */ -{ CPUFUNC(op_4470_11), 17520 }, /* NEG */ -{ CPUFUNC(op_4478_11), 17528 }, /* NEG */ -{ CPUFUNC(op_4479_11), 17529 }, /* NEG */ -{ CPUFUNC(op_4480_11), 17536 }, /* NEG */ -{ CPUFUNC(op_4490_11), 17552 }, /* NEG */ -{ CPUFUNC(op_4498_11), 17560 }, /* NEG */ -{ CPUFUNC(op_44a0_11), 17568 }, /* NEG */ -{ CPUFUNC(op_44a8_11), 17576 }, /* NEG */ -{ CPUFUNC(op_44b0_11), 17584 }, /* NEG */ -{ CPUFUNC(op_44b8_11), 17592 }, /* NEG */ -{ CPUFUNC(op_44b9_11), 17593 }, /* NEG */ -{ CPUFUNC(op_44c0_11), 17600 }, /* MV2SR */ -{ CPUFUNC(op_44d0_11), 17616 }, /* MV2SR */ -{ CPUFUNC(op_44d8_11), 17624 }, /* MV2SR */ -{ CPUFUNC(op_44e0_11), 17632 }, /* MV2SR */ -{ CPUFUNC(op_44e8_11), 17640 }, /* MV2SR */ -{ CPUFUNC(op_44f0_11), 17648 }, /* MV2SR */ -{ CPUFUNC(op_44f8_11), 17656 }, /* MV2SR */ -{ CPUFUNC(op_44f9_11), 17657 }, /* MV2SR */ -{ CPUFUNC(op_44fa_11), 17658 }, /* MV2SR */ -{ CPUFUNC(op_44fb_11), 17659 }, /* MV2SR */ -{ CPUFUNC(op_44fc_11), 17660 }, /* MV2SR */ -{ CPUFUNC(op_4600_11), 17920 }, /* NOT */ -{ CPUFUNC(op_4610_11), 17936 }, /* NOT */ -{ CPUFUNC(op_4618_11), 17944 }, /* NOT */ -{ CPUFUNC(op_4620_11), 17952 }, /* NOT */ -{ CPUFUNC(op_4628_11), 17960 }, /* NOT */ -{ CPUFUNC(op_4630_11), 17968 }, /* NOT */ -{ CPUFUNC(op_4638_11), 17976 }, /* NOT */ -{ CPUFUNC(op_4639_11), 17977 }, /* NOT */ -{ CPUFUNC(op_4640_11), 17984 }, /* NOT */ -{ CPUFUNC(op_4650_11), 18000 }, /* NOT */ -{ CPUFUNC(op_4658_11), 18008 }, /* NOT */ -{ CPUFUNC(op_4660_11), 18016 }, /* NOT */ -{ CPUFUNC(op_4668_11), 18024 }, /* NOT */ -{ CPUFUNC(op_4670_11), 18032 }, /* NOT */ -{ CPUFUNC(op_4678_11), 18040 }, /* NOT */ -{ CPUFUNC(op_4679_11), 18041 }, /* NOT */ -{ CPUFUNC(op_4680_11), 18048 }, /* NOT */ -{ CPUFUNC(op_4690_11), 18064 }, /* NOT */ -{ CPUFUNC(op_4698_11), 18072 }, /* NOT */ -{ CPUFUNC(op_46a0_11), 18080 }, /* NOT */ -{ CPUFUNC(op_46a8_11), 18088 }, /* NOT */ -{ CPUFUNC(op_46b0_11), 18096 }, /* NOT */ -{ CPUFUNC(op_46b8_11), 18104 }, /* NOT */ -{ CPUFUNC(op_46b9_11), 18105 }, /* NOT */ -{ CPUFUNC(op_46c0_11), 18112 }, /* MV2SR */ -{ CPUFUNC(op_46d0_11), 18128 }, /* MV2SR */ -{ CPUFUNC(op_46d8_11), 18136 }, /* MV2SR */ -{ CPUFUNC(op_46e0_11), 18144 }, /* MV2SR */ -{ CPUFUNC(op_46e8_11), 18152 }, /* MV2SR */ -{ CPUFUNC(op_46f0_11), 18160 }, /* MV2SR */ -{ CPUFUNC(op_46f8_11), 18168 }, /* MV2SR */ -{ CPUFUNC(op_46f9_11), 18169 }, /* MV2SR */ -{ CPUFUNC(op_46fa_11), 18170 }, /* MV2SR */ -{ CPUFUNC(op_46fb_11), 18171 }, /* MV2SR */ -{ CPUFUNC(op_46fc_11), 18172 }, /* MV2SR */ -{ CPUFUNC(op_4800_11), 18432 }, /* NBCD */ -{ CPUFUNC(op_4810_11), 18448 }, /* NBCD */ -{ CPUFUNC(op_4818_11), 18456 }, /* NBCD */ -{ CPUFUNC(op_4820_11), 18464 }, /* NBCD */ -{ CPUFUNC(op_4828_11), 18472 }, /* NBCD */ -{ CPUFUNC(op_4830_11), 18480 }, /* NBCD */ -{ CPUFUNC(op_4838_11), 18488 }, /* NBCD */ -{ CPUFUNC(op_4839_11), 18489 }, /* NBCD */ -{ CPUFUNC(op_4840_11), 18496 }, /* SWAP */ -{ CPUFUNC(op_4850_11), 18512 }, /* PEA */ -{ CPUFUNC(op_4868_11), 18536 }, /* PEA */ -{ CPUFUNC(op_4870_11), 18544 }, /* PEA */ -{ CPUFUNC(op_4878_11), 18552 }, /* PEA */ -{ CPUFUNC(op_4879_11), 18553 }, /* PEA */ -{ CPUFUNC(op_487a_11), 18554 }, /* PEA */ -{ CPUFUNC(op_487b_11), 18555 }, /* PEA */ -{ CPUFUNC(op_4880_11), 18560 }, /* EXT */ -{ CPUFUNC(op_4890_11), 18576 }, /* MVMLE */ -{ CPUFUNC(op_48a0_11), 18592 }, /* MVMLE */ -{ CPUFUNC(op_48a8_11), 18600 }, /* MVMLE */ -{ CPUFUNC(op_48b0_11), 18608 }, /* MVMLE */ -{ CPUFUNC(op_48b8_11), 18616 }, /* MVMLE */ -{ CPUFUNC(op_48b9_11), 18617 }, /* MVMLE */ -{ CPUFUNC(op_48c0_11), 18624 }, /* EXT */ -{ CPUFUNC(op_48d0_11), 18640 }, /* MVMLE */ -{ CPUFUNC(op_48e0_11), 18656 }, /* MVMLE */ -{ CPUFUNC(op_48e8_11), 18664 }, /* MVMLE */ -{ CPUFUNC(op_48f0_11), 18672 }, /* MVMLE */ -{ CPUFUNC(op_48f8_11), 18680 }, /* MVMLE */ -{ CPUFUNC(op_48f9_11), 18681 }, /* MVMLE */ -{ CPUFUNC(op_4a00_11), 18944 }, /* TST */ -{ CPUFUNC(op_4a10_11), 18960 }, /* TST */ -{ CPUFUNC(op_4a18_11), 18968 }, /* TST */ -{ CPUFUNC(op_4a20_11), 18976 }, /* TST */ -{ CPUFUNC(op_4a28_11), 18984 }, /* TST */ -{ CPUFUNC(op_4a30_11), 18992 }, /* TST */ -{ CPUFUNC(op_4a38_11), 19000 }, /* TST */ -{ CPUFUNC(op_4a39_11), 19001 }, /* TST */ -{ CPUFUNC(op_4a3c_11), 19004 }, /* TST */ -{ CPUFUNC(op_4a40_11), 19008 }, /* TST */ -{ CPUFUNC(op_4a50_11), 19024 }, /* TST */ -{ CPUFUNC(op_4a58_11), 19032 }, /* TST */ -{ CPUFUNC(op_4a60_11), 19040 }, /* TST */ -{ CPUFUNC(op_4a68_11), 19048 }, /* TST */ -{ CPUFUNC(op_4a70_11), 19056 }, /* TST */ -{ CPUFUNC(op_4a78_11), 19064 }, /* TST */ -{ CPUFUNC(op_4a79_11), 19065 }, /* TST */ -{ CPUFUNC(op_4a7c_11), 19068 }, /* TST */ -{ CPUFUNC(op_4a80_11), 19072 }, /* TST */ -{ CPUFUNC(op_4a90_11), 19088 }, /* TST */ -{ CPUFUNC(op_4a98_11), 19096 }, /* TST */ -{ CPUFUNC(op_4aa0_11), 19104 }, /* TST */ -{ CPUFUNC(op_4aa8_11), 19112 }, /* TST */ -{ CPUFUNC(op_4ab0_11), 19120 }, /* TST */ -{ CPUFUNC(op_4ab8_11), 19128 }, /* TST */ -{ CPUFUNC(op_4ab9_11), 19129 }, /* TST */ -{ CPUFUNC(op_4abc_11), 19132 }, /* TST */ -{ CPUFUNC(op_4ac0_11), 19136 }, /* TAS */ -{ CPUFUNC(op_4ad0_11), 19152 }, /* TAS */ -{ CPUFUNC(op_4ad8_11), 19160 }, /* TAS */ -{ CPUFUNC(op_4ae0_11), 19168 }, /* TAS */ -{ CPUFUNC(op_4ae8_11), 19176 }, /* TAS */ -{ CPUFUNC(op_4af0_11), 19184 }, /* TAS */ -{ CPUFUNC(op_4af8_11), 19192 }, /* TAS */ -{ CPUFUNC(op_4af9_11), 19193 }, /* TAS */ -{ CPUFUNC(op_4c90_11), 19600 }, /* MVMEL */ -{ CPUFUNC(op_4c98_11), 19608 }, /* MVMEL */ -{ CPUFUNC(op_4ca8_11), 19624 }, /* MVMEL */ -{ CPUFUNC(op_4cb0_11), 19632 }, /* MVMEL */ -{ CPUFUNC(op_4cb8_11), 19640 }, /* MVMEL */ -{ CPUFUNC(op_4cb9_11), 19641 }, /* MVMEL */ -{ CPUFUNC(op_4cba_11), 19642 }, /* MVMEL */ -{ CPUFUNC(op_4cbb_11), 19643 }, /* MVMEL */ -{ CPUFUNC(op_4cd0_11), 19664 }, /* MVMEL */ -{ CPUFUNC(op_4cd8_11), 19672 }, /* MVMEL */ -{ CPUFUNC(op_4ce8_11), 19688 }, /* MVMEL */ -{ CPUFUNC(op_4cf0_11), 19696 }, /* MVMEL */ -{ CPUFUNC(op_4cf8_11), 19704 }, /* MVMEL */ -{ CPUFUNC(op_4cf9_11), 19705 }, /* MVMEL */ -{ CPUFUNC(op_4cfa_11), 19706 }, /* MVMEL */ -{ CPUFUNC(op_4cfb_11), 19707 }, /* MVMEL */ -{ CPUFUNC(op_4e40_11), 20032 }, /* TRAP */ -{ CPUFUNC(op_4e50_11), 20048 }, /* LINK */ -{ CPUFUNC(op_4e58_11), 20056 }, /* UNLK */ -{ CPUFUNC(op_4e60_11), 20064 }, /* MVR2USP */ -{ CPUFUNC(op_4e68_11), 20072 }, /* MVUSP2R */ -{ CPUFUNC(op_4e70_11), 20080 }, /* RESET */ -{ CPUFUNC(op_4e71_11), 20081 }, /* NOP */ -{ CPUFUNC(op_4e72_11), 20082 }, /* STOP */ -{ CPUFUNC(op_4e73_11), 20083 }, /* RTE */ -{ CPUFUNC(op_4e74_11), 20084 }, /* RTD */ -{ CPUFUNC(op_4e75_11), 20085 }, /* RTS */ -{ CPUFUNC(op_4e76_11), 20086 }, /* TRAPV */ -{ CPUFUNC(op_4e77_11), 20087 }, /* RTR */ -{ CPUFUNC(op_4e90_11), 20112 }, /* JSR */ -{ CPUFUNC(op_4ea8_11), 20136 }, /* JSR */ -{ CPUFUNC(op_4eb0_11), 20144 }, /* JSR */ -{ CPUFUNC(op_4eb8_11), 20152 }, /* JSR */ -{ CPUFUNC(op_4eb9_11), 20153 }, /* JSR */ -{ CPUFUNC(op_4eba_11), 20154 }, /* JSR */ -{ CPUFUNC(op_4ebb_11), 20155 }, /* JSR */ -{ CPUFUNC(op_4ed0_11), 20176 }, /* JMP */ -{ CPUFUNC(op_4ee8_11), 20200 }, /* JMP */ -{ CPUFUNC(op_4ef0_11), 20208 }, /* JMP */ -{ CPUFUNC(op_4ef8_11), 20216 }, /* JMP */ -{ CPUFUNC(op_4ef9_11), 20217 }, /* JMP */ -{ CPUFUNC(op_4efa_11), 20218 }, /* JMP */ -{ CPUFUNC(op_4efb_11), 20219 }, /* JMP */ -{ CPUFUNC(op_5000_11), 20480 }, /* ADD */ -{ CPUFUNC(op_5010_11), 20496 }, /* ADD */ -{ CPUFUNC(op_5018_11), 20504 }, /* ADD */ -{ CPUFUNC(op_5020_11), 20512 }, /* ADD */ -{ CPUFUNC(op_5028_11), 20520 }, /* ADD */ -{ CPUFUNC(op_5030_11), 20528 }, /* ADD */ -{ CPUFUNC(op_5038_11), 20536 }, /* ADD */ -{ CPUFUNC(op_5039_11), 20537 }, /* ADD */ -{ CPUFUNC(op_5040_11), 20544 }, /* ADD */ -{ CPUFUNC(op_5048_11), 20552 }, /* ADDA */ -{ CPUFUNC(op_5050_11), 20560 }, /* ADD */ -{ CPUFUNC(op_5058_11), 20568 }, /* ADD */ -{ CPUFUNC(op_5060_11), 20576 }, /* ADD */ -{ CPUFUNC(op_5068_11), 20584 }, /* ADD */ -{ CPUFUNC(op_5070_11), 20592 }, /* ADD */ -{ CPUFUNC(op_5078_11), 20600 }, /* ADD */ -{ CPUFUNC(op_5079_11), 20601 }, /* ADD */ -{ CPUFUNC(op_5080_11), 20608 }, /* ADD */ -{ CPUFUNC(op_5088_11), 20616 }, /* ADDA */ -{ CPUFUNC(op_5090_11), 20624 }, /* ADD */ -{ CPUFUNC(op_5098_11), 20632 }, /* ADD */ -{ CPUFUNC(op_50a0_11), 20640 }, /* ADD */ -{ CPUFUNC(op_50a8_11), 20648 }, /* ADD */ -{ CPUFUNC(op_50b0_11), 20656 }, /* ADD */ -{ CPUFUNC(op_50b8_11), 20664 }, /* ADD */ -{ CPUFUNC(op_50b9_11), 20665 }, /* ADD */ -{ CPUFUNC(op_50c0_11), 20672 }, /* Scc */ -{ CPUFUNC(op_50c8_11), 20680 }, /* DBcc */ -{ CPUFUNC(op_50d0_11), 20688 }, /* Scc */ -{ CPUFUNC(op_50d8_11), 20696 }, /* Scc */ -{ CPUFUNC(op_50e0_11), 20704 }, /* Scc */ -{ CPUFUNC(op_50e8_11), 20712 }, /* Scc */ -{ CPUFUNC(op_50f0_11), 20720 }, /* Scc */ -{ CPUFUNC(op_50f8_11), 20728 }, /* Scc */ -{ CPUFUNC(op_50f9_11), 20729 }, /* Scc */ -{ CPUFUNC(op_5100_11), 20736 }, /* SUB */ -{ CPUFUNC(op_5110_11), 20752 }, /* SUB */ -{ CPUFUNC(op_5118_11), 20760 }, /* SUB */ -{ CPUFUNC(op_5120_11), 20768 }, /* SUB */ -{ CPUFUNC(op_5128_11), 20776 }, /* SUB */ -{ CPUFUNC(op_5130_11), 20784 }, /* SUB */ -{ CPUFUNC(op_5138_11), 20792 }, /* SUB */ -{ CPUFUNC(op_5139_11), 20793 }, /* SUB */ -{ CPUFUNC(op_5140_11), 20800 }, /* SUB */ -{ CPUFUNC(op_5148_11), 20808 }, /* SUBA */ -{ CPUFUNC(op_5150_11), 20816 }, /* SUB */ -{ CPUFUNC(op_5158_11), 20824 }, /* SUB */ -{ CPUFUNC(op_5160_11), 20832 }, /* SUB */ -{ CPUFUNC(op_5168_11), 20840 }, /* SUB */ -{ CPUFUNC(op_5170_11), 20848 }, /* SUB */ -{ CPUFUNC(op_5178_11), 20856 }, /* SUB */ -{ CPUFUNC(op_5179_11), 20857 }, /* SUB */ -{ CPUFUNC(op_5180_11), 20864 }, /* SUB */ -{ CPUFUNC(op_5188_11), 20872 }, /* SUBA */ -{ CPUFUNC(op_5190_11), 20880 }, /* SUB */ -{ CPUFUNC(op_5198_11), 20888 }, /* SUB */ -{ CPUFUNC(op_51a0_11), 20896 }, /* SUB */ -{ CPUFUNC(op_51a8_11), 20904 }, /* SUB */ -{ CPUFUNC(op_51b0_11), 20912 }, /* SUB */ -{ CPUFUNC(op_51b8_11), 20920 }, /* SUB */ -{ CPUFUNC(op_51b9_11), 20921 }, /* SUB */ -{ CPUFUNC(op_51c0_11), 20928 }, /* Scc */ -{ CPUFUNC(op_51c8_11), 20936 }, /* DBcc */ -{ CPUFUNC(op_51d0_11), 20944 }, /* Scc */ -{ CPUFUNC(op_51d8_11), 20952 }, /* Scc */ -{ CPUFUNC(op_51e0_11), 20960 }, /* Scc */ -{ CPUFUNC(op_51e8_11), 20968 }, /* Scc */ -{ CPUFUNC(op_51f0_11), 20976 }, /* Scc */ -{ CPUFUNC(op_51f8_11), 20984 }, /* Scc */ -{ CPUFUNC(op_51f9_11), 20985 }, /* Scc */ -{ CPUFUNC(op_52c0_11), 21184 }, /* Scc */ -{ CPUFUNC(op_52c8_11), 21192 }, /* DBcc */ -{ CPUFUNC(op_52d0_11), 21200 }, /* Scc */ -{ CPUFUNC(op_52d8_11), 21208 }, /* Scc */ -{ CPUFUNC(op_52e0_11), 21216 }, /* Scc */ -{ CPUFUNC(op_52e8_11), 21224 }, /* Scc */ -{ CPUFUNC(op_52f0_11), 21232 }, /* Scc */ -{ CPUFUNC(op_52f8_11), 21240 }, /* Scc */ -{ CPUFUNC(op_52f9_11), 21241 }, /* Scc */ -{ CPUFUNC(op_53c0_11), 21440 }, /* Scc */ -{ CPUFUNC(op_53c8_11), 21448 }, /* DBcc */ -{ CPUFUNC(op_53d0_11), 21456 }, /* Scc */ -{ CPUFUNC(op_53d8_11), 21464 }, /* Scc */ -{ CPUFUNC(op_53e0_11), 21472 }, /* Scc */ -{ CPUFUNC(op_53e8_11), 21480 }, /* Scc */ -{ CPUFUNC(op_53f0_11), 21488 }, /* Scc */ -{ CPUFUNC(op_53f8_11), 21496 }, /* Scc */ -{ CPUFUNC(op_53f9_11), 21497 }, /* Scc */ -{ CPUFUNC(op_54c0_11), 21696 }, /* Scc */ -{ CPUFUNC(op_54c8_11), 21704 }, /* DBcc */ -{ CPUFUNC(op_54d0_11), 21712 }, /* Scc */ -{ CPUFUNC(op_54d8_11), 21720 }, /* Scc */ -{ CPUFUNC(op_54e0_11), 21728 }, /* Scc */ -{ CPUFUNC(op_54e8_11), 21736 }, /* Scc */ -{ CPUFUNC(op_54f0_11), 21744 }, /* Scc */ -{ CPUFUNC(op_54f8_11), 21752 }, /* Scc */ -{ CPUFUNC(op_54f9_11), 21753 }, /* Scc */ -{ CPUFUNC(op_55c0_11), 21952 }, /* Scc */ -{ CPUFUNC(op_55c8_11), 21960 }, /* DBcc */ -{ CPUFUNC(op_55d0_11), 21968 }, /* Scc */ -{ CPUFUNC(op_55d8_11), 21976 }, /* Scc */ -{ CPUFUNC(op_55e0_11), 21984 }, /* Scc */ -{ CPUFUNC(op_55e8_11), 21992 }, /* Scc */ -{ CPUFUNC(op_55f0_11), 22000 }, /* Scc */ -{ CPUFUNC(op_55f8_11), 22008 }, /* Scc */ -{ CPUFUNC(op_55f9_11), 22009 }, /* Scc */ -{ CPUFUNC(op_56c0_11), 22208 }, /* Scc */ -{ CPUFUNC(op_56c8_11), 22216 }, /* DBcc */ -{ CPUFUNC(op_56d0_11), 22224 }, /* Scc */ -{ CPUFUNC(op_56d8_11), 22232 }, /* Scc */ -{ CPUFUNC(op_56e0_11), 22240 }, /* Scc */ -{ CPUFUNC(op_56e8_11), 22248 }, /* Scc */ -{ CPUFUNC(op_56f0_11), 22256 }, /* Scc */ -{ CPUFUNC(op_56f8_11), 22264 }, /* Scc */ -{ CPUFUNC(op_56f9_11), 22265 }, /* Scc */ -{ CPUFUNC(op_57c0_11), 22464 }, /* Scc */ -{ CPUFUNC(op_57c8_11), 22472 }, /* DBcc */ -{ CPUFUNC(op_57d0_11), 22480 }, /* Scc */ -{ CPUFUNC(op_57d8_11), 22488 }, /* Scc */ -{ CPUFUNC(op_57e0_11), 22496 }, /* Scc */ -{ CPUFUNC(op_57e8_11), 22504 }, /* Scc */ -{ CPUFUNC(op_57f0_11), 22512 }, /* Scc */ -{ CPUFUNC(op_57f8_11), 22520 }, /* Scc */ -{ CPUFUNC(op_57f9_11), 22521 }, /* Scc */ -{ CPUFUNC(op_58c0_11), 22720 }, /* Scc */ -{ CPUFUNC(op_58c8_11), 22728 }, /* DBcc */ -{ CPUFUNC(op_58d0_11), 22736 }, /* Scc */ -{ CPUFUNC(op_58d8_11), 22744 }, /* Scc */ -{ CPUFUNC(op_58e0_11), 22752 }, /* Scc */ -{ CPUFUNC(op_58e8_11), 22760 }, /* Scc */ -{ CPUFUNC(op_58f0_11), 22768 }, /* Scc */ -{ CPUFUNC(op_58f8_11), 22776 }, /* Scc */ -{ CPUFUNC(op_58f9_11), 22777 }, /* Scc */ -{ CPUFUNC(op_59c0_11), 22976 }, /* Scc */ -{ CPUFUNC(op_59c8_11), 22984 }, /* DBcc */ -{ CPUFUNC(op_59d0_11), 22992 }, /* Scc */ -{ CPUFUNC(op_59d8_11), 23000 }, /* Scc */ -{ CPUFUNC(op_59e0_11), 23008 }, /* Scc */ -{ CPUFUNC(op_59e8_11), 23016 }, /* Scc */ -{ CPUFUNC(op_59f0_11), 23024 }, /* Scc */ -{ CPUFUNC(op_59f8_11), 23032 }, /* Scc */ -{ CPUFUNC(op_59f9_11), 23033 }, /* Scc */ -{ CPUFUNC(op_5ac0_11), 23232 }, /* Scc */ -{ CPUFUNC(op_5ac8_11), 23240 }, /* DBcc */ -{ CPUFUNC(op_5ad0_11), 23248 }, /* Scc */ -{ CPUFUNC(op_5ad8_11), 23256 }, /* Scc */ -{ CPUFUNC(op_5ae0_11), 23264 }, /* Scc */ -{ CPUFUNC(op_5ae8_11), 23272 }, /* Scc */ -{ CPUFUNC(op_5af0_11), 23280 }, /* Scc */ -{ CPUFUNC(op_5af8_11), 23288 }, /* Scc */ -{ CPUFUNC(op_5af9_11), 23289 }, /* Scc */ -{ CPUFUNC(op_5bc0_11), 23488 }, /* Scc */ -{ CPUFUNC(op_5bc8_11), 23496 }, /* DBcc */ -{ CPUFUNC(op_5bd0_11), 23504 }, /* Scc */ -{ CPUFUNC(op_5bd8_11), 23512 }, /* Scc */ -{ CPUFUNC(op_5be0_11), 23520 }, /* Scc */ -{ CPUFUNC(op_5be8_11), 23528 }, /* Scc */ -{ CPUFUNC(op_5bf0_11), 23536 }, /* Scc */ -{ CPUFUNC(op_5bf8_11), 23544 }, /* Scc */ -{ CPUFUNC(op_5bf9_11), 23545 }, /* Scc */ -{ CPUFUNC(op_5cc0_11), 23744 }, /* Scc */ -{ CPUFUNC(op_5cc8_11), 23752 }, /* DBcc */ -{ CPUFUNC(op_5cd0_11), 23760 }, /* Scc */ -{ CPUFUNC(op_5cd8_11), 23768 }, /* Scc */ -{ CPUFUNC(op_5ce0_11), 23776 }, /* Scc */ -{ CPUFUNC(op_5ce8_11), 23784 }, /* Scc */ -{ CPUFUNC(op_5cf0_11), 23792 }, /* Scc */ -{ CPUFUNC(op_5cf8_11), 23800 }, /* Scc */ -{ CPUFUNC(op_5cf9_11), 23801 }, /* Scc */ -{ CPUFUNC(op_5dc0_11), 24000 }, /* Scc */ -{ CPUFUNC(op_5dc8_11), 24008 }, /* DBcc */ -{ CPUFUNC(op_5dd0_11), 24016 }, /* Scc */ -{ CPUFUNC(op_5dd8_11), 24024 }, /* Scc */ -{ CPUFUNC(op_5de0_11), 24032 }, /* Scc */ -{ CPUFUNC(op_5de8_11), 24040 }, /* Scc */ -{ CPUFUNC(op_5df0_11), 24048 }, /* Scc */ -{ CPUFUNC(op_5df8_11), 24056 }, /* Scc */ -{ CPUFUNC(op_5df9_11), 24057 }, /* Scc */ -{ CPUFUNC(op_5ec0_11), 24256 }, /* Scc */ -{ CPUFUNC(op_5ec8_11), 24264 }, /* DBcc */ -{ CPUFUNC(op_5ed0_11), 24272 }, /* Scc */ -{ CPUFUNC(op_5ed8_11), 24280 }, /* Scc */ -{ CPUFUNC(op_5ee0_11), 24288 }, /* Scc */ -{ CPUFUNC(op_5ee8_11), 24296 }, /* Scc */ -{ CPUFUNC(op_5ef0_11), 24304 }, /* Scc */ -{ CPUFUNC(op_5ef8_11), 24312 }, /* Scc */ -{ CPUFUNC(op_5ef9_11), 24313 }, /* Scc */ -{ CPUFUNC(op_5fc0_11), 24512 }, /* Scc */ -{ CPUFUNC(op_5fc8_11), 24520 }, /* DBcc */ -{ CPUFUNC(op_5fd0_11), 24528 }, /* Scc */ -{ CPUFUNC(op_5fd8_11), 24536 }, /* Scc */ -{ CPUFUNC(op_5fe0_11), 24544 }, /* Scc */ -{ CPUFUNC(op_5fe8_11), 24552 }, /* Scc */ -{ CPUFUNC(op_5ff0_11), 24560 }, /* Scc */ -{ CPUFUNC(op_5ff8_11), 24568 }, /* Scc */ -{ CPUFUNC(op_5ff9_11), 24569 }, /* Scc */ -{ CPUFUNC(op_6000_11), 24576 }, /* Bcc */ -{ CPUFUNC(op_6001_11), 24577 }, /* Bcc */ -{ CPUFUNC(op_60ff_11), 24831 }, /* Bcc */ -{ CPUFUNC(op_6100_11), 24832 }, /* BSR */ -{ CPUFUNC(op_6101_11), 24833 }, /* BSR */ -{ CPUFUNC(op_61ff_11), 25087 }, /* BSR */ -{ CPUFUNC(op_6200_11), 25088 }, /* Bcc */ -{ CPUFUNC(op_6201_11), 25089 }, /* Bcc */ -{ CPUFUNC(op_62ff_11), 25343 }, /* Bcc */ -{ CPUFUNC(op_6300_11), 25344 }, /* Bcc */ -{ CPUFUNC(op_6301_11), 25345 }, /* Bcc */ -{ CPUFUNC(op_63ff_11), 25599 }, /* Bcc */ -{ CPUFUNC(op_6400_11), 25600 }, /* Bcc */ -{ CPUFUNC(op_6401_11), 25601 }, /* Bcc */ -{ CPUFUNC(op_64ff_11), 25855 }, /* Bcc */ -{ CPUFUNC(op_6500_11), 25856 }, /* Bcc */ -{ CPUFUNC(op_6501_11), 25857 }, /* Bcc */ -{ CPUFUNC(op_65ff_11), 26111 }, /* Bcc */ -{ CPUFUNC(op_6600_11), 26112 }, /* Bcc */ -{ CPUFUNC(op_6601_11), 26113 }, /* Bcc */ -{ CPUFUNC(op_66ff_11), 26367 }, /* Bcc */ -{ CPUFUNC(op_6700_11), 26368 }, /* Bcc */ -{ CPUFUNC(op_6701_11), 26369 }, /* Bcc */ -{ CPUFUNC(op_67ff_11), 26623 }, /* Bcc */ -{ CPUFUNC(op_6800_11), 26624 }, /* Bcc */ -{ CPUFUNC(op_6801_11), 26625 }, /* Bcc */ -{ CPUFUNC(op_68ff_11), 26879 }, /* Bcc */ -{ CPUFUNC(op_6900_11), 26880 }, /* Bcc */ -{ CPUFUNC(op_6901_11), 26881 }, /* Bcc */ -{ CPUFUNC(op_69ff_11), 27135 }, /* Bcc */ -{ CPUFUNC(op_6a00_11), 27136 }, /* Bcc */ -{ CPUFUNC(op_6a01_11), 27137 }, /* Bcc */ -{ CPUFUNC(op_6aff_11), 27391 }, /* Bcc */ -{ CPUFUNC(op_6b00_11), 27392 }, /* Bcc */ -{ CPUFUNC(op_6b01_11), 27393 }, /* Bcc */ -{ CPUFUNC(op_6bff_11), 27647 }, /* Bcc */ -{ CPUFUNC(op_6c00_11), 27648 }, /* Bcc */ -{ CPUFUNC(op_6c01_11), 27649 }, /* Bcc */ -{ CPUFUNC(op_6cff_11), 27903 }, /* Bcc */ -{ CPUFUNC(op_6d00_11), 27904 }, /* Bcc */ -{ CPUFUNC(op_6d01_11), 27905 }, /* Bcc */ -{ CPUFUNC(op_6dff_11), 28159 }, /* Bcc */ -{ CPUFUNC(op_6e00_11), 28160 }, /* Bcc */ -{ CPUFUNC(op_6e01_11), 28161 }, /* Bcc */ -{ CPUFUNC(op_6eff_11), 28415 }, /* Bcc */ -{ CPUFUNC(op_6f00_11), 28416 }, /* Bcc */ -{ CPUFUNC(op_6f01_11), 28417 }, /* Bcc */ -{ CPUFUNC(op_6fff_11), 28671 }, /* Bcc */ -{ CPUFUNC(op_7000_11), 28672 }, /* MOVE */ -{ CPUFUNC(op_8000_11), 32768 }, /* OR */ -{ CPUFUNC(op_8010_11), 32784 }, /* OR */ -{ CPUFUNC(op_8018_11), 32792 }, /* OR */ -{ CPUFUNC(op_8020_11), 32800 }, /* OR */ -{ CPUFUNC(op_8028_11), 32808 }, /* OR */ -{ CPUFUNC(op_8030_11), 32816 }, /* OR */ -{ CPUFUNC(op_8038_11), 32824 }, /* OR */ -{ CPUFUNC(op_8039_11), 32825 }, /* OR */ -{ CPUFUNC(op_803a_11), 32826 }, /* OR */ -{ CPUFUNC(op_803b_11), 32827 }, /* OR */ -{ CPUFUNC(op_803c_11), 32828 }, /* OR */ -{ CPUFUNC(op_8040_11), 32832 }, /* OR */ -{ CPUFUNC(op_8050_11), 32848 }, /* OR */ -{ CPUFUNC(op_8058_11), 32856 }, /* OR */ -{ CPUFUNC(op_8060_11), 32864 }, /* OR */ -{ CPUFUNC(op_8068_11), 32872 }, /* OR */ -{ CPUFUNC(op_8070_11), 32880 }, /* OR */ -{ CPUFUNC(op_8078_11), 32888 }, /* OR */ -{ CPUFUNC(op_8079_11), 32889 }, /* OR */ -{ CPUFUNC(op_807a_11), 32890 }, /* OR */ -{ CPUFUNC(op_807b_11), 32891 }, /* OR */ -{ CPUFUNC(op_807c_11), 32892 }, /* OR */ -{ CPUFUNC(op_8080_11), 32896 }, /* OR */ -{ CPUFUNC(op_8090_11), 32912 }, /* OR */ -{ CPUFUNC(op_8098_11), 32920 }, /* OR */ -{ CPUFUNC(op_80a0_11), 32928 }, /* OR */ -{ CPUFUNC(op_80a8_11), 32936 }, /* OR */ -{ CPUFUNC(op_80b0_11), 32944 }, /* OR */ -{ CPUFUNC(op_80b8_11), 32952 }, /* OR */ -{ CPUFUNC(op_80b9_11), 32953 }, /* OR */ -{ CPUFUNC(op_80ba_11), 32954 }, /* OR */ -{ CPUFUNC(op_80bb_11), 32955 }, /* OR */ -{ CPUFUNC(op_80bc_11), 32956 }, /* OR */ -{ CPUFUNC(op_80c0_11), 32960 }, /* DIVU */ -{ CPUFUNC(op_80d0_11), 32976 }, /* DIVU */ -{ CPUFUNC(op_80d8_11), 32984 }, /* DIVU */ -{ CPUFUNC(op_80e0_11), 32992 }, /* DIVU */ -{ CPUFUNC(op_80e8_11), 33000 }, /* DIVU */ -{ CPUFUNC(op_80f0_11), 33008 }, /* DIVU */ -{ CPUFUNC(op_80f8_11), 33016 }, /* DIVU */ -{ CPUFUNC(op_80f9_11), 33017 }, /* DIVU */ -{ CPUFUNC(op_80fa_11), 33018 }, /* DIVU */ -{ CPUFUNC(op_80fb_11), 33019 }, /* DIVU */ -{ CPUFUNC(op_80fc_11), 33020 }, /* DIVU */ -{ CPUFUNC(op_8100_11), 33024 }, /* SBCD */ -{ CPUFUNC(op_8108_11), 33032 }, /* SBCD */ -{ CPUFUNC(op_8110_11), 33040 }, /* OR */ -{ CPUFUNC(op_8118_11), 33048 }, /* OR */ -{ CPUFUNC(op_8120_11), 33056 }, /* OR */ -{ CPUFUNC(op_8128_11), 33064 }, /* OR */ -{ CPUFUNC(op_8130_11), 33072 }, /* OR */ -{ CPUFUNC(op_8138_11), 33080 }, /* OR */ -{ CPUFUNC(op_8139_11), 33081 }, /* OR */ -{ CPUFUNC(op_8150_11), 33104 }, /* OR */ -{ CPUFUNC(op_8158_11), 33112 }, /* OR */ -{ CPUFUNC(op_8160_11), 33120 }, /* OR */ -{ CPUFUNC(op_8168_11), 33128 }, /* OR */ -{ CPUFUNC(op_8170_11), 33136 }, /* OR */ -{ CPUFUNC(op_8178_11), 33144 }, /* OR */ -{ CPUFUNC(op_8179_11), 33145 }, /* OR */ -{ CPUFUNC(op_8190_11), 33168 }, /* OR */ -{ CPUFUNC(op_8198_11), 33176 }, /* OR */ -{ CPUFUNC(op_81a0_11), 33184 }, /* OR */ -{ CPUFUNC(op_81a8_11), 33192 }, /* OR */ -{ CPUFUNC(op_81b0_11), 33200 }, /* OR */ -{ CPUFUNC(op_81b8_11), 33208 }, /* OR */ -{ CPUFUNC(op_81b9_11), 33209 }, /* OR */ -{ CPUFUNC(op_81c0_11), 33216 }, /* DIVS */ -{ CPUFUNC(op_81d0_11), 33232 }, /* DIVS */ -{ CPUFUNC(op_81d8_11), 33240 }, /* DIVS */ -{ CPUFUNC(op_81e0_11), 33248 }, /* DIVS */ -{ CPUFUNC(op_81e8_11), 33256 }, /* DIVS */ -{ CPUFUNC(op_81f0_11), 33264 }, /* DIVS */ -{ CPUFUNC(op_81f8_11), 33272 }, /* DIVS */ -{ CPUFUNC(op_81f9_11), 33273 }, /* DIVS */ -{ CPUFUNC(op_81fa_11), 33274 }, /* DIVS */ -{ CPUFUNC(op_81fb_11), 33275 }, /* DIVS */ -{ CPUFUNC(op_81fc_11), 33276 }, /* DIVS */ -{ CPUFUNC(op_9000_11), 36864 }, /* SUB */ -{ CPUFUNC(op_9010_11), 36880 }, /* SUB */ -{ CPUFUNC(op_9018_11), 36888 }, /* SUB */ -{ CPUFUNC(op_9020_11), 36896 }, /* SUB */ -{ CPUFUNC(op_9028_11), 36904 }, /* SUB */ -{ CPUFUNC(op_9030_11), 36912 }, /* SUB */ -{ CPUFUNC(op_9038_11), 36920 }, /* SUB */ -{ CPUFUNC(op_9039_11), 36921 }, /* SUB */ -{ CPUFUNC(op_903a_11), 36922 }, /* SUB */ -{ CPUFUNC(op_903b_11), 36923 }, /* SUB */ -{ CPUFUNC(op_903c_11), 36924 }, /* SUB */ -{ CPUFUNC(op_9040_11), 36928 }, /* SUB */ -{ CPUFUNC(op_9048_11), 36936 }, /* SUB */ -{ CPUFUNC(op_9050_11), 36944 }, /* SUB */ -{ CPUFUNC(op_9058_11), 36952 }, /* SUB */ -{ CPUFUNC(op_9060_11), 36960 }, /* SUB */ -{ CPUFUNC(op_9068_11), 36968 }, /* SUB */ -{ CPUFUNC(op_9070_11), 36976 }, /* SUB */ -{ CPUFUNC(op_9078_11), 36984 }, /* SUB */ -{ CPUFUNC(op_9079_11), 36985 }, /* SUB */ -{ CPUFUNC(op_907a_11), 36986 }, /* SUB */ -{ CPUFUNC(op_907b_11), 36987 }, /* SUB */ -{ CPUFUNC(op_907c_11), 36988 }, /* SUB */ -{ CPUFUNC(op_9080_11), 36992 }, /* SUB */ -{ CPUFUNC(op_9088_11), 37000 }, /* SUB */ -{ CPUFUNC(op_9090_11), 37008 }, /* SUB */ -{ CPUFUNC(op_9098_11), 37016 }, /* SUB */ -{ CPUFUNC(op_90a0_11), 37024 }, /* SUB */ -{ CPUFUNC(op_90a8_11), 37032 }, /* SUB */ -{ CPUFUNC(op_90b0_11), 37040 }, /* SUB */ -{ CPUFUNC(op_90b8_11), 37048 }, /* SUB */ -{ CPUFUNC(op_90b9_11), 37049 }, /* SUB */ -{ CPUFUNC(op_90ba_11), 37050 }, /* SUB */ -{ CPUFUNC(op_90bb_11), 37051 }, /* SUB */ -{ CPUFUNC(op_90bc_11), 37052 }, /* SUB */ -{ CPUFUNC(op_90c0_11), 37056 }, /* SUBA */ -{ CPUFUNC(op_90c8_11), 37064 }, /* SUBA */ -{ CPUFUNC(op_90d0_11), 37072 }, /* SUBA */ -{ CPUFUNC(op_90d8_11), 37080 }, /* SUBA */ -{ CPUFUNC(op_90e0_11), 37088 }, /* SUBA */ -{ CPUFUNC(op_90e8_11), 37096 }, /* SUBA */ -{ CPUFUNC(op_90f0_11), 37104 }, /* SUBA */ -{ CPUFUNC(op_90f8_11), 37112 }, /* SUBA */ -{ CPUFUNC(op_90f9_11), 37113 }, /* SUBA */ -{ CPUFUNC(op_90fa_11), 37114 }, /* SUBA */ -{ CPUFUNC(op_90fb_11), 37115 }, /* SUBA */ -{ CPUFUNC(op_90fc_11), 37116 }, /* SUBA */ -{ CPUFUNC(op_9100_11), 37120 }, /* SUBX */ -{ CPUFUNC(op_9108_11), 37128 }, /* SUBX */ -{ CPUFUNC(op_9110_11), 37136 }, /* SUB */ -{ CPUFUNC(op_9118_11), 37144 }, /* SUB */ -{ CPUFUNC(op_9120_11), 37152 }, /* SUB */ -{ CPUFUNC(op_9128_11), 37160 }, /* SUB */ -{ CPUFUNC(op_9130_11), 37168 }, /* SUB */ -{ CPUFUNC(op_9138_11), 37176 }, /* SUB */ -{ CPUFUNC(op_9139_11), 37177 }, /* SUB */ -{ CPUFUNC(op_9140_11), 37184 }, /* SUBX */ -{ CPUFUNC(op_9148_11), 37192 }, /* SUBX */ -{ CPUFUNC(op_9150_11), 37200 }, /* SUB */ -{ CPUFUNC(op_9158_11), 37208 }, /* SUB */ -{ CPUFUNC(op_9160_11), 37216 }, /* SUB */ -{ CPUFUNC(op_9168_11), 37224 }, /* SUB */ -{ CPUFUNC(op_9170_11), 37232 }, /* SUB */ -{ CPUFUNC(op_9178_11), 37240 }, /* SUB */ -{ CPUFUNC(op_9179_11), 37241 }, /* SUB */ -{ CPUFUNC(op_9180_11), 37248 }, /* SUBX */ -{ CPUFUNC(op_9188_11), 37256 }, /* SUBX */ -{ CPUFUNC(op_9190_11), 37264 }, /* SUB */ -{ CPUFUNC(op_9198_11), 37272 }, /* SUB */ -{ CPUFUNC(op_91a0_11), 37280 }, /* SUB */ -{ CPUFUNC(op_91a8_11), 37288 }, /* SUB */ -{ CPUFUNC(op_91b0_11), 37296 }, /* SUB */ -{ CPUFUNC(op_91b8_11), 37304 }, /* SUB */ -{ CPUFUNC(op_91b9_11), 37305 }, /* SUB */ -{ CPUFUNC(op_91c0_11), 37312 }, /* SUBA */ -{ CPUFUNC(op_91c8_11), 37320 }, /* SUBA */ -{ CPUFUNC(op_91d0_11), 37328 }, /* SUBA */ -{ CPUFUNC(op_91d8_11), 37336 }, /* SUBA */ -{ CPUFUNC(op_91e0_11), 37344 }, /* SUBA */ -{ CPUFUNC(op_91e8_11), 37352 }, /* SUBA */ -{ CPUFUNC(op_91f0_11), 37360 }, /* SUBA */ -{ CPUFUNC(op_91f8_11), 37368 }, /* SUBA */ -{ CPUFUNC(op_91f9_11), 37369 }, /* SUBA */ -{ CPUFUNC(op_91fa_11), 37370 }, /* SUBA */ -{ CPUFUNC(op_91fb_11), 37371 }, /* SUBA */ -{ CPUFUNC(op_91fc_11), 37372 }, /* SUBA */ -{ CPUFUNC(op_b000_11), 45056 }, /* CMP */ -{ CPUFUNC(op_b010_11), 45072 }, /* CMP */ -{ CPUFUNC(op_b018_11), 45080 }, /* CMP */ -{ CPUFUNC(op_b020_11), 45088 }, /* CMP */ -{ CPUFUNC(op_b028_11), 45096 }, /* CMP */ -{ CPUFUNC(op_b030_11), 45104 }, /* CMP */ -{ CPUFUNC(op_b038_11), 45112 }, /* CMP */ -{ CPUFUNC(op_b039_11), 45113 }, /* CMP */ -{ CPUFUNC(op_b03a_11), 45114 }, /* CMP */ -{ CPUFUNC(op_b03b_11), 45115 }, /* CMP */ -{ CPUFUNC(op_b03c_11), 45116 }, /* CMP */ -{ CPUFUNC(op_b040_11), 45120 }, /* CMP */ -{ CPUFUNC(op_b048_11), 45128 }, /* CMP */ -{ CPUFUNC(op_b050_11), 45136 }, /* CMP */ -{ CPUFUNC(op_b058_11), 45144 }, /* CMP */ -{ CPUFUNC(op_b060_11), 45152 }, /* CMP */ -{ CPUFUNC(op_b068_11), 45160 }, /* CMP */ -{ CPUFUNC(op_b070_11), 45168 }, /* CMP */ -{ CPUFUNC(op_b078_11), 45176 }, /* CMP */ -{ CPUFUNC(op_b079_11), 45177 }, /* CMP */ -{ CPUFUNC(op_b07a_11), 45178 }, /* CMP */ -{ CPUFUNC(op_b07b_11), 45179 }, /* CMP */ -{ CPUFUNC(op_b07c_11), 45180 }, /* CMP */ -{ CPUFUNC(op_b080_11), 45184 }, /* CMP */ -{ CPUFUNC(op_b088_11), 45192 }, /* CMP */ -{ CPUFUNC(op_b090_11), 45200 }, /* CMP */ -{ CPUFUNC(op_b098_11), 45208 }, /* CMP */ -{ CPUFUNC(op_b0a0_11), 45216 }, /* CMP */ -{ CPUFUNC(op_b0a8_11), 45224 }, /* CMP */ -{ CPUFUNC(op_b0b0_11), 45232 }, /* CMP */ -{ CPUFUNC(op_b0b8_11), 45240 }, /* CMP */ -{ CPUFUNC(op_b0b9_11), 45241 }, /* CMP */ -{ CPUFUNC(op_b0ba_11), 45242 }, /* CMP */ -{ CPUFUNC(op_b0bb_11), 45243 }, /* CMP */ -{ CPUFUNC(op_b0bc_11), 45244 }, /* CMP */ -{ CPUFUNC(op_b0c0_11), 45248 }, /* CMPA */ -{ CPUFUNC(op_b0c8_11), 45256 }, /* CMPA */ -{ CPUFUNC(op_b0d0_11), 45264 }, /* CMPA */ -{ CPUFUNC(op_b0d8_11), 45272 }, /* CMPA */ -{ CPUFUNC(op_b0e0_11), 45280 }, /* CMPA */ -{ CPUFUNC(op_b0e8_11), 45288 }, /* CMPA */ -{ CPUFUNC(op_b0f0_11), 45296 }, /* CMPA */ -{ CPUFUNC(op_b0f8_11), 45304 }, /* CMPA */ -{ CPUFUNC(op_b0f9_11), 45305 }, /* CMPA */ -{ CPUFUNC(op_b0fa_11), 45306 }, /* CMPA */ -{ CPUFUNC(op_b0fb_11), 45307 }, /* CMPA */ -{ CPUFUNC(op_b0fc_11), 45308 }, /* CMPA */ -{ CPUFUNC(op_b100_11), 45312 }, /* EOR */ -{ CPUFUNC(op_b108_11), 45320 }, /* CMPM */ -{ CPUFUNC(op_b110_11), 45328 }, /* EOR */ -{ CPUFUNC(op_b118_11), 45336 }, /* EOR */ -{ CPUFUNC(op_b120_11), 45344 }, /* EOR */ -{ CPUFUNC(op_b128_11), 45352 }, /* EOR */ -{ CPUFUNC(op_b130_11), 45360 }, /* EOR */ -{ CPUFUNC(op_b138_11), 45368 }, /* EOR */ -{ CPUFUNC(op_b139_11), 45369 }, /* EOR */ -{ CPUFUNC(op_b140_11), 45376 }, /* EOR */ -{ CPUFUNC(op_b148_11), 45384 }, /* CMPM */ -{ CPUFUNC(op_b150_11), 45392 }, /* EOR */ -{ CPUFUNC(op_b158_11), 45400 }, /* EOR */ -{ CPUFUNC(op_b160_11), 45408 }, /* EOR */ -{ CPUFUNC(op_b168_11), 45416 }, /* EOR */ -{ CPUFUNC(op_b170_11), 45424 }, /* EOR */ -{ CPUFUNC(op_b178_11), 45432 }, /* EOR */ -{ CPUFUNC(op_b179_11), 45433 }, /* EOR */ -{ CPUFUNC(op_b180_11), 45440 }, /* EOR */ -{ CPUFUNC(op_b188_11), 45448 }, /* CMPM */ -{ CPUFUNC(op_b190_11), 45456 }, /* EOR */ -{ CPUFUNC(op_b198_11), 45464 }, /* EOR */ -{ CPUFUNC(op_b1a0_11), 45472 }, /* EOR */ -{ CPUFUNC(op_b1a8_11), 45480 }, /* EOR */ -{ CPUFUNC(op_b1b0_11), 45488 }, /* EOR */ -{ CPUFUNC(op_b1b8_11), 45496 }, /* EOR */ -{ CPUFUNC(op_b1b9_11), 45497 }, /* EOR */ -{ CPUFUNC(op_b1c0_11), 45504 }, /* CMPA */ -{ CPUFUNC(op_b1c8_11), 45512 }, /* CMPA */ -{ CPUFUNC(op_b1d0_11), 45520 }, /* CMPA */ -{ CPUFUNC(op_b1d8_11), 45528 }, /* CMPA */ -{ CPUFUNC(op_b1e0_11), 45536 }, /* CMPA */ -{ CPUFUNC(op_b1e8_11), 45544 }, /* CMPA */ -{ CPUFUNC(op_b1f0_11), 45552 }, /* CMPA */ -{ CPUFUNC(op_b1f8_11), 45560 }, /* CMPA */ -{ CPUFUNC(op_b1f9_11), 45561 }, /* CMPA */ -{ CPUFUNC(op_b1fa_11), 45562 }, /* CMPA */ -{ CPUFUNC(op_b1fb_11), 45563 }, /* CMPA */ -{ CPUFUNC(op_b1fc_11), 45564 }, /* CMPA */ -{ CPUFUNC(op_c000_11), 49152 }, /* AND */ -{ CPUFUNC(op_c010_11), 49168 }, /* AND */ -{ CPUFUNC(op_c018_11), 49176 }, /* AND */ -{ CPUFUNC(op_c020_11), 49184 }, /* AND */ -{ CPUFUNC(op_c028_11), 49192 }, /* AND */ -{ CPUFUNC(op_c030_11), 49200 }, /* AND */ -{ CPUFUNC(op_c038_11), 49208 }, /* AND */ -{ CPUFUNC(op_c039_11), 49209 }, /* AND */ -{ CPUFUNC(op_c03a_11), 49210 }, /* AND */ -{ CPUFUNC(op_c03b_11), 49211 }, /* AND */ -{ CPUFUNC(op_c03c_11), 49212 }, /* AND */ -{ CPUFUNC(op_c040_11), 49216 }, /* AND */ -{ CPUFUNC(op_c050_11), 49232 }, /* AND */ -{ CPUFUNC(op_c058_11), 49240 }, /* AND */ -{ CPUFUNC(op_c060_11), 49248 }, /* AND */ -{ CPUFUNC(op_c068_11), 49256 }, /* AND */ -{ CPUFUNC(op_c070_11), 49264 }, /* AND */ -{ CPUFUNC(op_c078_11), 49272 }, /* AND */ -{ CPUFUNC(op_c079_11), 49273 }, /* AND */ -{ CPUFUNC(op_c07a_11), 49274 }, /* AND */ -{ CPUFUNC(op_c07b_11), 49275 }, /* AND */ -{ CPUFUNC(op_c07c_11), 49276 }, /* AND */ -{ CPUFUNC(op_c080_11), 49280 }, /* AND */ -{ CPUFUNC(op_c090_11), 49296 }, /* AND */ -{ CPUFUNC(op_c098_11), 49304 }, /* AND */ -{ CPUFUNC(op_c0a0_11), 49312 }, /* AND */ -{ CPUFUNC(op_c0a8_11), 49320 }, /* AND */ -{ CPUFUNC(op_c0b0_11), 49328 }, /* AND */ -{ CPUFUNC(op_c0b8_11), 49336 }, /* AND */ -{ CPUFUNC(op_c0b9_11), 49337 }, /* AND */ -{ CPUFUNC(op_c0ba_11), 49338 }, /* AND */ -{ CPUFUNC(op_c0bb_11), 49339 }, /* AND */ -{ CPUFUNC(op_c0bc_11), 49340 }, /* AND */ -{ CPUFUNC(op_c0c0_11), 49344 }, /* MULU */ -{ CPUFUNC(op_c0d0_11), 49360 }, /* MULU */ -{ CPUFUNC(op_c0d8_11), 49368 }, /* MULU */ -{ CPUFUNC(op_c0e0_11), 49376 }, /* MULU */ -{ CPUFUNC(op_c0e8_11), 49384 }, /* MULU */ -{ CPUFUNC(op_c0f0_11), 49392 }, /* MULU */ -{ CPUFUNC(op_c0f8_11), 49400 }, /* MULU */ -{ CPUFUNC(op_c0f9_11), 49401 }, /* MULU */ -{ CPUFUNC(op_c0fa_11), 49402 }, /* MULU */ -{ CPUFUNC(op_c0fb_11), 49403 }, /* MULU */ -{ CPUFUNC(op_c0fc_11), 49404 }, /* MULU */ -{ CPUFUNC(op_c100_11), 49408 }, /* ABCD */ -{ CPUFUNC(op_c108_11), 49416 }, /* ABCD */ -{ CPUFUNC(op_c110_11), 49424 }, /* AND */ -{ CPUFUNC(op_c118_11), 49432 }, /* AND */ -{ CPUFUNC(op_c120_11), 49440 }, /* AND */ -{ CPUFUNC(op_c128_11), 49448 }, /* AND */ -{ CPUFUNC(op_c130_11), 49456 }, /* AND */ -{ CPUFUNC(op_c138_11), 49464 }, /* AND */ -{ CPUFUNC(op_c139_11), 49465 }, /* AND */ -{ CPUFUNC(op_c140_11), 49472 }, /* EXG */ -{ CPUFUNC(op_c148_11), 49480 }, /* EXG */ -{ CPUFUNC(op_c150_11), 49488 }, /* AND */ -{ CPUFUNC(op_c158_11), 49496 }, /* AND */ -{ CPUFUNC(op_c160_11), 49504 }, /* AND */ -{ CPUFUNC(op_c168_11), 49512 }, /* AND */ -{ CPUFUNC(op_c170_11), 49520 }, /* AND */ -{ CPUFUNC(op_c178_11), 49528 }, /* AND */ -{ CPUFUNC(op_c179_11), 49529 }, /* AND */ -{ CPUFUNC(op_c188_11), 49544 }, /* EXG */ -{ CPUFUNC(op_c190_11), 49552 }, /* AND */ -{ CPUFUNC(op_c198_11), 49560 }, /* AND */ -{ CPUFUNC(op_c1a0_11), 49568 }, /* AND */ -{ CPUFUNC(op_c1a8_11), 49576 }, /* AND */ -{ CPUFUNC(op_c1b0_11), 49584 }, /* AND */ -{ CPUFUNC(op_c1b8_11), 49592 }, /* AND */ -{ CPUFUNC(op_c1b9_11), 49593 }, /* AND */ -{ CPUFUNC(op_c1c0_11), 49600 }, /* MULS */ -{ CPUFUNC(op_c1d0_11), 49616 }, /* MULS */ -{ CPUFUNC(op_c1d8_11), 49624 }, /* MULS */ -{ CPUFUNC(op_c1e0_11), 49632 }, /* MULS */ -{ CPUFUNC(op_c1e8_11), 49640 }, /* MULS */ -{ CPUFUNC(op_c1f0_11), 49648 }, /* MULS */ -{ CPUFUNC(op_c1f8_11), 49656 }, /* MULS */ -{ CPUFUNC(op_c1f9_11), 49657 }, /* MULS */ -{ CPUFUNC(op_c1fa_11), 49658 }, /* MULS */ -{ CPUFUNC(op_c1fb_11), 49659 }, /* MULS */ -{ CPUFUNC(op_c1fc_11), 49660 }, /* MULS */ -{ CPUFUNC(op_d000_11), 53248 }, /* ADD */ -{ CPUFUNC(op_d010_11), 53264 }, /* ADD */ -{ CPUFUNC(op_d018_11), 53272 }, /* ADD */ -{ CPUFUNC(op_d020_11), 53280 }, /* ADD */ -{ CPUFUNC(op_d028_11), 53288 }, /* ADD */ -{ CPUFUNC(op_d030_11), 53296 }, /* ADD */ -{ CPUFUNC(op_d038_11), 53304 }, /* ADD */ -{ CPUFUNC(op_d039_11), 53305 }, /* ADD */ -{ CPUFUNC(op_d03a_11), 53306 }, /* ADD */ -{ CPUFUNC(op_d03b_11), 53307 }, /* ADD */ -{ CPUFUNC(op_d03c_11), 53308 }, /* ADD */ -{ CPUFUNC(op_d040_11), 53312 }, /* ADD */ -{ CPUFUNC(op_d048_11), 53320 }, /* ADD */ -{ CPUFUNC(op_d050_11), 53328 }, /* ADD */ -{ CPUFUNC(op_d058_11), 53336 }, /* ADD */ -{ CPUFUNC(op_d060_11), 53344 }, /* ADD */ -{ CPUFUNC(op_d068_11), 53352 }, /* ADD */ -{ CPUFUNC(op_d070_11), 53360 }, /* ADD */ -{ CPUFUNC(op_d078_11), 53368 }, /* ADD */ -{ CPUFUNC(op_d079_11), 53369 }, /* ADD */ -{ CPUFUNC(op_d07a_11), 53370 }, /* ADD */ -{ CPUFUNC(op_d07b_11), 53371 }, /* ADD */ -{ CPUFUNC(op_d07c_11), 53372 }, /* ADD */ -{ CPUFUNC(op_d080_11), 53376 }, /* ADD */ -{ CPUFUNC(op_d088_11), 53384 }, /* ADD */ -{ CPUFUNC(op_d090_11), 53392 }, /* ADD */ -{ CPUFUNC(op_d098_11), 53400 }, /* ADD */ -{ CPUFUNC(op_d0a0_11), 53408 }, /* ADD */ -{ CPUFUNC(op_d0a8_11), 53416 }, /* ADD */ -{ CPUFUNC(op_d0b0_11), 53424 }, /* ADD */ -{ CPUFUNC(op_d0b8_11), 53432 }, /* ADD */ -{ CPUFUNC(op_d0b9_11), 53433 }, /* ADD */ -{ CPUFUNC(op_d0ba_11), 53434 }, /* ADD */ -{ CPUFUNC(op_d0bb_11), 53435 }, /* ADD */ -{ CPUFUNC(op_d0bc_11), 53436 }, /* ADD */ -{ CPUFUNC(op_d0c0_11), 53440 }, /* ADDA */ -{ CPUFUNC(op_d0c8_11), 53448 }, /* ADDA */ -{ CPUFUNC(op_d0d0_11), 53456 }, /* ADDA */ -{ CPUFUNC(op_d0d8_11), 53464 }, /* ADDA */ -{ CPUFUNC(op_d0e0_11), 53472 }, /* ADDA */ -{ CPUFUNC(op_d0e8_11), 53480 }, /* ADDA */ -{ CPUFUNC(op_d0f0_11), 53488 }, /* ADDA */ -{ CPUFUNC(op_d0f8_11), 53496 }, /* ADDA */ -{ CPUFUNC(op_d0f9_11), 53497 }, /* ADDA */ -{ CPUFUNC(op_d0fa_11), 53498 }, /* ADDA */ -{ CPUFUNC(op_d0fb_11), 53499 }, /* ADDA */ -{ CPUFUNC(op_d0fc_11), 53500 }, /* ADDA */ -{ CPUFUNC(op_d100_11), 53504 }, /* ADDX */ -{ CPUFUNC(op_d108_11), 53512 }, /* ADDX */ -{ CPUFUNC(op_d110_11), 53520 }, /* ADD */ -{ CPUFUNC(op_d118_11), 53528 }, /* ADD */ -{ CPUFUNC(op_d120_11), 53536 }, /* ADD */ -{ CPUFUNC(op_d128_11), 53544 }, /* ADD */ -{ CPUFUNC(op_d130_11), 53552 }, /* ADD */ -{ CPUFUNC(op_d138_11), 53560 }, /* ADD */ -{ CPUFUNC(op_d139_11), 53561 }, /* ADD */ -{ CPUFUNC(op_d140_11), 53568 }, /* ADDX */ -{ CPUFUNC(op_d148_11), 53576 }, /* ADDX */ -{ CPUFUNC(op_d150_11), 53584 }, /* ADD */ -{ CPUFUNC(op_d158_11), 53592 }, /* ADD */ -{ CPUFUNC(op_d160_11), 53600 }, /* ADD */ -{ CPUFUNC(op_d168_11), 53608 }, /* ADD */ -{ CPUFUNC(op_d170_11), 53616 }, /* ADD */ -{ CPUFUNC(op_d178_11), 53624 }, /* ADD */ -{ CPUFUNC(op_d179_11), 53625 }, /* ADD */ -{ CPUFUNC(op_d180_11), 53632 }, /* ADDX */ -{ CPUFUNC(op_d188_11), 53640 }, /* ADDX */ -{ CPUFUNC(op_d190_11), 53648 }, /* ADD */ -{ CPUFUNC(op_d198_11), 53656 }, /* ADD */ -{ CPUFUNC(op_d1a0_11), 53664 }, /* ADD */ -{ CPUFUNC(op_d1a8_11), 53672 }, /* ADD */ -{ CPUFUNC(op_d1b0_11), 53680 }, /* ADD */ -{ CPUFUNC(op_d1b8_11), 53688 }, /* ADD */ -{ CPUFUNC(op_d1b9_11), 53689 }, /* ADD */ -{ CPUFUNC(op_d1c0_11), 53696 }, /* ADDA */ -{ CPUFUNC(op_d1c8_11), 53704 }, /* ADDA */ -{ CPUFUNC(op_d1d0_11), 53712 }, /* ADDA */ -{ CPUFUNC(op_d1d8_11), 53720 }, /* ADDA */ -{ CPUFUNC(op_d1e0_11), 53728 }, /* ADDA */ -{ CPUFUNC(op_d1e8_11), 53736 }, /* ADDA */ -{ CPUFUNC(op_d1f0_11), 53744 }, /* ADDA */ -{ CPUFUNC(op_d1f8_11), 53752 }, /* ADDA */ -{ CPUFUNC(op_d1f9_11), 53753 }, /* ADDA */ -{ CPUFUNC(op_d1fa_11), 53754 }, /* ADDA */ -{ CPUFUNC(op_d1fb_11), 53755 }, /* ADDA */ -{ CPUFUNC(op_d1fc_11), 53756 }, /* ADDA */ -{ CPUFUNC(op_e000_11), 57344 }, /* ASR */ -{ CPUFUNC(op_e008_11), 57352 }, /* LSR */ -{ CPUFUNC(op_e010_11), 57360 }, /* ROXR */ -{ CPUFUNC(op_e018_11), 57368 }, /* ROR */ -{ CPUFUNC(op_e020_11), 57376 }, /* ASR */ -{ CPUFUNC(op_e028_11), 57384 }, /* LSR */ -{ CPUFUNC(op_e030_11), 57392 }, /* ROXR */ -{ CPUFUNC(op_e038_11), 57400 }, /* ROR */ -{ CPUFUNC(op_e040_11), 57408 }, /* ASR */ -{ CPUFUNC(op_e048_11), 57416 }, /* LSR */ -{ CPUFUNC(op_e050_11), 57424 }, /* ROXR */ -{ CPUFUNC(op_e058_11), 57432 }, /* ROR */ -{ CPUFUNC(op_e060_11), 57440 }, /* ASR */ -{ CPUFUNC(op_e068_11), 57448 }, /* LSR */ -{ CPUFUNC(op_e070_11), 57456 }, /* ROXR */ -{ CPUFUNC(op_e078_11), 57464 }, /* ROR */ -{ CPUFUNC(op_e080_11), 57472 }, /* ASR */ -{ CPUFUNC(op_e088_11), 57480 }, /* LSR */ -{ CPUFUNC(op_e090_11), 57488 }, /* ROXR */ -{ CPUFUNC(op_e098_11), 57496 }, /* ROR */ -{ CPUFUNC(op_e0a0_11), 57504 }, /* ASR */ -{ CPUFUNC(op_e0a8_11), 57512 }, /* LSR */ -{ CPUFUNC(op_e0b0_11), 57520 }, /* ROXR */ -{ CPUFUNC(op_e0b8_11), 57528 }, /* ROR */ -{ CPUFUNC(op_e0d0_11), 57552 }, /* ASRW */ -{ CPUFUNC(op_e0d8_11), 57560 }, /* ASRW */ -{ CPUFUNC(op_e0e0_11), 57568 }, /* ASRW */ -{ CPUFUNC(op_e0e8_11), 57576 }, /* ASRW */ -{ CPUFUNC(op_e0f0_11), 57584 }, /* ASRW */ -{ CPUFUNC(op_e0f8_11), 57592 }, /* ASRW */ -{ CPUFUNC(op_e0f9_11), 57593 }, /* ASRW */ -{ CPUFUNC(op_e100_11), 57600 }, /* ASL */ -{ CPUFUNC(op_e108_11), 57608 }, /* LSL */ -{ CPUFUNC(op_e110_11), 57616 }, /* ROXL */ -{ CPUFUNC(op_e118_11), 57624 }, /* ROL */ -{ CPUFUNC(op_e120_11), 57632 }, /* ASL */ -{ CPUFUNC(op_e128_11), 57640 }, /* LSL */ -{ CPUFUNC(op_e130_11), 57648 }, /* ROXL */ -{ CPUFUNC(op_e138_11), 57656 }, /* ROL */ -{ CPUFUNC(op_e140_11), 57664 }, /* ASL */ -{ CPUFUNC(op_e148_11), 57672 }, /* LSL */ -{ CPUFUNC(op_e150_11), 57680 }, /* ROXL */ -{ CPUFUNC(op_e158_11), 57688 }, /* ROL */ -{ CPUFUNC(op_e160_11), 57696 }, /* ASL */ -{ CPUFUNC(op_e168_11), 57704 }, /* LSL */ -{ CPUFUNC(op_e170_11), 57712 }, /* ROXL */ -{ CPUFUNC(op_e178_11), 57720 }, /* ROL */ -{ CPUFUNC(op_e180_11), 57728 }, /* ASL */ -{ CPUFUNC(op_e188_11), 57736 }, /* LSL */ -{ CPUFUNC(op_e190_11), 57744 }, /* ROXL */ -{ CPUFUNC(op_e198_11), 57752 }, /* ROL */ -{ CPUFUNC(op_e1a0_11), 57760 }, /* ASL */ -{ CPUFUNC(op_e1a8_11), 57768 }, /* LSL */ -{ CPUFUNC(op_e1b0_11), 57776 }, /* ROXL */ -{ CPUFUNC(op_e1b8_11), 57784 }, /* ROL */ -{ CPUFUNC(op_e1d0_11), 57808 }, /* ASLW */ -{ CPUFUNC(op_e1d8_11), 57816 }, /* ASLW */ -{ CPUFUNC(op_e1e0_11), 57824 }, /* ASLW */ -{ CPUFUNC(op_e1e8_11), 57832 }, /* ASLW */ -{ CPUFUNC(op_e1f0_11), 57840 }, /* ASLW */ -{ CPUFUNC(op_e1f8_11), 57848 }, /* ASLW */ -{ CPUFUNC(op_e1f9_11), 57849 }, /* ASLW */ -{ CPUFUNC(op_e2d0_11), 58064 }, /* LSRW */ -{ CPUFUNC(op_e2d8_11), 58072 }, /* LSRW */ -{ CPUFUNC(op_e2e0_11), 58080 }, /* LSRW */ -{ CPUFUNC(op_e2e8_11), 58088 }, /* LSRW */ -{ CPUFUNC(op_e2f0_11), 58096 }, /* LSRW */ -{ CPUFUNC(op_e2f8_11), 58104 }, /* LSRW */ -{ CPUFUNC(op_e2f9_11), 58105 }, /* LSRW */ -{ CPUFUNC(op_e3d0_11), 58320 }, /* LSLW */ -{ CPUFUNC(op_e3d8_11), 58328 }, /* LSLW */ -{ CPUFUNC(op_e3e0_11), 58336 }, /* LSLW */ -{ CPUFUNC(op_e3e8_11), 58344 }, /* LSLW */ -{ CPUFUNC(op_e3f0_11), 58352 }, /* LSLW */ -{ CPUFUNC(op_e3f8_11), 58360 }, /* LSLW */ -{ CPUFUNC(op_e3f9_11), 58361 }, /* LSLW */ -{ CPUFUNC(op_e4d0_11), 58576 }, /* ROXRW */ -{ CPUFUNC(op_e4d8_11), 58584 }, /* ROXRW */ -{ CPUFUNC(op_e4e0_11), 58592 }, /* ROXRW */ -{ CPUFUNC(op_e4e8_11), 58600 }, /* ROXRW */ -{ CPUFUNC(op_e4f0_11), 58608 }, /* ROXRW */ -{ CPUFUNC(op_e4f8_11), 58616 }, /* ROXRW */ -{ CPUFUNC(op_e4f9_11), 58617 }, /* ROXRW */ -{ CPUFUNC(op_e5d0_11), 58832 }, /* ROXLW */ -{ CPUFUNC(op_e5d8_11), 58840 }, /* ROXLW */ -{ CPUFUNC(op_e5e0_11), 58848 }, /* ROXLW */ -{ CPUFUNC(op_e5e8_11), 58856 }, /* ROXLW */ -{ CPUFUNC(op_e5f0_11), 58864 }, /* ROXLW */ -{ CPUFUNC(op_e5f8_11), 58872 }, /* ROXLW */ -{ CPUFUNC(op_e5f9_11), 58873 }, /* ROXLW */ -{ CPUFUNC(op_e6d0_11), 59088 }, /* RORW */ -{ CPUFUNC(op_e6d8_11), 59096 }, /* RORW */ -{ CPUFUNC(op_e6e0_11), 59104 }, /* RORW */ -{ CPUFUNC(op_e6e8_11), 59112 }, /* RORW */ -{ CPUFUNC(op_e6f0_11), 59120 }, /* RORW */ -{ CPUFUNC(op_e6f8_11), 59128 }, /* RORW */ -{ CPUFUNC(op_e6f9_11), 59129 }, /* RORW */ -{ CPUFUNC(op_e7d0_11), 59344 }, /* ROLW */ -{ CPUFUNC(op_e7d8_11), 59352 }, /* ROLW */ -{ CPUFUNC(op_e7e0_11), 59360 }, /* ROLW */ -{ CPUFUNC(op_e7e8_11), 59368 }, /* ROLW */ -{ CPUFUNC(op_e7f0_11), 59376 }, /* ROLW */ -{ CPUFUNC(op_e7f8_11), 59384 }, /* ROLW */ -{ CPUFUNC(op_e7f9_11), 59385 }, /* ROLW */ -{ 0, 0 }}; +const struct cputbl CPUFUNC(op_smalltbl_11)[] = +{ + { CPUFUNC(op_0000_11), 0 }, /* OR */ + { CPUFUNC(op_0010_11), 16 }, /* OR */ + { CPUFUNC(op_0018_11), 24 }, /* OR */ + { CPUFUNC(op_0020_11), 32 }, /* OR */ + { CPUFUNC(op_0028_11), 40 }, /* OR */ + { CPUFUNC(op_0030_11), 48 }, /* OR */ + { CPUFUNC(op_0038_11), 56 }, /* OR */ + { CPUFUNC(op_0039_11), 57 }, /* OR */ + { CPUFUNC(op_003c_11), 60 }, /* ORSR */ + { CPUFUNC(op_0040_11), 64 }, /* OR */ + { CPUFUNC(op_0050_11), 80 }, /* OR */ + { CPUFUNC(op_0058_11), 88 }, /* OR */ + { CPUFUNC(op_0060_11), 96 }, /* OR */ + { CPUFUNC(op_0068_11), 104 }, /* OR */ + { CPUFUNC(op_0070_11), 112 }, /* OR */ + { CPUFUNC(op_0078_11), 120 }, /* OR */ + { CPUFUNC(op_0079_11), 121 }, /* OR */ + { CPUFUNC(op_007c_11), 124 }, /* ORSR */ + { CPUFUNC(op_0080_11), 128 }, /* OR */ + { CPUFUNC(op_0090_11), 144 }, /* OR */ + { CPUFUNC(op_0098_11), 152 }, /* OR */ + { CPUFUNC(op_00a0_11), 160 }, /* OR */ + { CPUFUNC(op_00a8_11), 168 }, /* OR */ + { CPUFUNC(op_00b0_11), 176 }, /* OR */ + { CPUFUNC(op_00b8_11), 184 }, /* OR */ + { CPUFUNC(op_00b9_11), 185 }, /* OR */ + { CPUFUNC(op_0100_11), 256 }, /* BTST */ + { CPUFUNC(op_0108_11), 264 }, /* MVPMR */ + { CPUFUNC(op_0110_11), 272 }, /* BTST */ + { CPUFUNC(op_0118_11), 280 }, /* BTST */ + { CPUFUNC(op_0120_11), 288 }, /* BTST */ + { CPUFUNC(op_0128_11), 296 }, /* BTST */ + { CPUFUNC(op_0130_11), 304 }, /* BTST */ + { CPUFUNC(op_0138_11), 312 }, /* BTST */ + { CPUFUNC(op_0139_11), 313 }, /* BTST */ + { CPUFUNC(op_013a_11), 314 }, /* BTST */ + { CPUFUNC(op_013b_11), 315 }, /* BTST */ + { CPUFUNC(op_013c_11), 316 }, /* BTST */ + { CPUFUNC(op_0140_11), 320 }, /* BCHG */ + { CPUFUNC(op_0148_11), 328 }, /* MVPMR */ + { CPUFUNC(op_0150_11), 336 }, /* BCHG */ + { CPUFUNC(op_0158_11), 344 }, /* BCHG */ + { CPUFUNC(op_0160_11), 352 }, /* BCHG */ + { CPUFUNC(op_0168_11), 360 }, /* BCHG */ + { CPUFUNC(op_0170_11), 368 }, /* BCHG */ + { CPUFUNC(op_0178_11), 376 }, /* BCHG */ + { CPUFUNC(op_0179_11), 377 }, /* BCHG */ + { CPUFUNC(op_0180_11), 384 }, /* BCLR */ + { CPUFUNC(op_0188_11), 392 }, /* MVPRM */ + { CPUFUNC(op_0190_11), 400 }, /* BCLR */ + { CPUFUNC(op_0198_11), 408 }, /* BCLR */ + { CPUFUNC(op_01a0_11), 416 }, /* BCLR */ + { CPUFUNC(op_01a8_11), 424 }, /* BCLR */ + { CPUFUNC(op_01b0_11), 432 }, /* BCLR */ + { CPUFUNC(op_01b8_11), 440 }, /* BCLR */ + { CPUFUNC(op_01b9_11), 441 }, /* BCLR */ + { CPUFUNC(op_01c0_11), 448 }, /* BSET */ + { CPUFUNC(op_01c8_11), 456 }, /* MVPRM */ + { CPUFUNC(op_01d0_11), 464 }, /* BSET */ + { CPUFUNC(op_01d8_11), 472 }, /* BSET */ + { CPUFUNC(op_01e0_11), 480 }, /* BSET */ + { CPUFUNC(op_01e8_11), 488 }, /* BSET */ + { CPUFUNC(op_01f0_11), 496 }, /* BSET */ + { CPUFUNC(op_01f8_11), 504 }, /* BSET */ + { CPUFUNC(op_01f9_11), 505 }, /* BSET */ + { CPUFUNC(op_0200_11), 512 }, /* AND */ + { CPUFUNC(op_0210_11), 528 }, /* AND */ + { CPUFUNC(op_0218_11), 536 }, /* AND */ + { CPUFUNC(op_0220_11), 544 }, /* AND */ + { CPUFUNC(op_0228_11), 552 }, /* AND */ + { CPUFUNC(op_0230_11), 560 }, /* AND */ + { CPUFUNC(op_0238_11), 568 }, /* AND */ + { CPUFUNC(op_0239_11), 569 }, /* AND */ + { CPUFUNC(op_023c_11), 572 }, /* ANDSR */ + { CPUFUNC(op_0240_11), 576 }, /* AND */ + { CPUFUNC(op_0250_11), 592 }, /* AND */ + { CPUFUNC(op_0258_11), 600 }, /* AND */ + { CPUFUNC(op_0260_11), 608 }, /* AND */ + { CPUFUNC(op_0268_11), 616 }, /* AND */ + { CPUFUNC(op_0270_11), 624 }, /* AND */ + { CPUFUNC(op_0278_11), 632 }, /* AND */ + { CPUFUNC(op_0279_11), 633 }, /* AND */ + { CPUFUNC(op_027c_11), 636 }, /* ANDSR */ + { CPUFUNC(op_0280_11), 640 }, /* AND */ + { CPUFUNC(op_0290_11), 656 }, /* AND */ + { CPUFUNC(op_0298_11), 664 }, /* AND */ + { CPUFUNC(op_02a0_11), 672 }, /* AND */ + { CPUFUNC(op_02a8_11), 680 }, /* AND */ + { CPUFUNC(op_02b0_11), 688 }, /* AND */ + { CPUFUNC(op_02b8_11), 696 }, /* AND */ + { CPUFUNC(op_02b9_11), 697 }, /* AND */ + { CPUFUNC(op_0400_11), 1024 }, /* SUB */ + { CPUFUNC(op_0410_11), 1040 }, /* SUB */ + { CPUFUNC(op_0418_11), 1048 }, /* SUB */ + { CPUFUNC(op_0420_11), 1056 }, /* SUB */ + { CPUFUNC(op_0428_11), 1064 }, /* SUB */ + { CPUFUNC(op_0430_11), 1072 }, /* SUB */ + { CPUFUNC(op_0438_11), 1080 }, /* SUB */ + { CPUFUNC(op_0439_11), 1081 }, /* SUB */ + { CPUFUNC(op_0440_11), 1088 }, /* SUB */ + { CPUFUNC(op_0450_11), 1104 }, /* SUB */ + { CPUFUNC(op_0458_11), 1112 }, /* SUB */ + { CPUFUNC(op_0460_11), 1120 }, /* SUB */ + { CPUFUNC(op_0468_11), 1128 }, /* SUB */ + { CPUFUNC(op_0470_11), 1136 }, /* SUB */ + { CPUFUNC(op_0478_11), 1144 }, /* SUB */ + { CPUFUNC(op_0479_11), 1145 }, /* SUB */ + { CPUFUNC(op_0480_11), 1152 }, /* SUB */ + { CPUFUNC(op_0490_11), 1168 }, /* SUB */ + { CPUFUNC(op_0498_11), 1176 }, /* SUB */ + { CPUFUNC(op_04a0_11), 1184 }, /* SUB */ + { CPUFUNC(op_04a8_11), 1192 }, /* SUB */ + { CPUFUNC(op_04b0_11), 1200 }, /* SUB */ + { CPUFUNC(op_04b8_11), 1208 }, /* SUB */ + { CPUFUNC(op_04b9_11), 1209 }, /* SUB */ + { CPUFUNC(op_0600_11), 1536 }, /* ADD */ + { CPUFUNC(op_0610_11), 1552 }, /* ADD */ + { CPUFUNC(op_0618_11), 1560 }, /* ADD */ + { CPUFUNC(op_0620_11), 1568 }, /* ADD */ + { CPUFUNC(op_0628_11), 1576 }, /* ADD */ + { CPUFUNC(op_0630_11), 1584 }, /* ADD */ + { CPUFUNC(op_0638_11), 1592 }, /* ADD */ + { CPUFUNC(op_0639_11), 1593 }, /* ADD */ + { CPUFUNC(op_0640_11), 1600 }, /* ADD */ + { CPUFUNC(op_0650_11), 1616 }, /* ADD */ + { CPUFUNC(op_0658_11), 1624 }, /* ADD */ + { CPUFUNC(op_0660_11), 1632 }, /* ADD */ + { CPUFUNC(op_0668_11), 1640 }, /* ADD */ + { CPUFUNC(op_0670_11), 1648 }, /* ADD */ + { CPUFUNC(op_0678_11), 1656 }, /* ADD */ + { CPUFUNC(op_0679_11), 1657 }, /* ADD */ + { CPUFUNC(op_0680_11), 1664 }, /* ADD */ + { CPUFUNC(op_0690_11), 1680 }, /* ADD */ + { CPUFUNC(op_0698_11), 1688 }, /* ADD */ + { CPUFUNC(op_06a0_11), 1696 }, /* ADD */ + { CPUFUNC(op_06a8_11), 1704 }, /* ADD */ + { CPUFUNC(op_06b0_11), 1712 }, /* ADD */ + { CPUFUNC(op_06b8_11), 1720 }, /* ADD */ + { CPUFUNC(op_06b9_11), 1721 }, /* ADD */ + { CPUFUNC(op_0800_11), 2048 }, /* BTST */ + { CPUFUNC(op_0810_11), 2064 }, /* BTST */ + { CPUFUNC(op_0818_11), 2072 }, /* BTST */ + { CPUFUNC(op_0820_11), 2080 }, /* BTST */ + { CPUFUNC(op_0828_11), 2088 }, /* BTST */ + { CPUFUNC(op_0830_11), 2096 }, /* BTST */ + { CPUFUNC(op_0838_11), 2104 }, /* BTST */ + { CPUFUNC(op_0839_11), 2105 }, /* BTST */ + { CPUFUNC(op_083a_11), 2106 }, /* BTST */ + { CPUFUNC(op_083b_11), 2107 }, /* BTST */ + { CPUFUNC(op_083c_11), 2108 }, /* BTST */ + { CPUFUNC(op_0840_11), 2112 }, /* BCHG */ + { CPUFUNC(op_0850_11), 2128 }, /* BCHG */ + { CPUFUNC(op_0858_11), 2136 }, /* BCHG */ + { CPUFUNC(op_0860_11), 2144 }, /* BCHG */ + { CPUFUNC(op_0868_11), 2152 }, /* BCHG */ + { CPUFUNC(op_0870_11), 2160 }, /* BCHG */ + { CPUFUNC(op_0878_11), 2168 }, /* BCHG */ + { CPUFUNC(op_0879_11), 2169 }, /* BCHG */ + { CPUFUNC(op_0880_11), 2176 }, /* BCLR */ + { CPUFUNC(op_0890_11), 2192 }, /* BCLR */ + { CPUFUNC(op_0898_11), 2200 }, /* BCLR */ + { CPUFUNC(op_08a0_11), 2208 }, /* BCLR */ + { CPUFUNC(op_08a8_11), 2216 }, /* BCLR */ + { CPUFUNC(op_08b0_11), 2224 }, /* BCLR */ + { CPUFUNC(op_08b8_11), 2232 }, /* BCLR */ + { CPUFUNC(op_08b9_11), 2233 }, /* BCLR */ + { CPUFUNC(op_08c0_11), 2240 }, /* BSET */ + { CPUFUNC(op_08d0_11), 2256 }, /* BSET */ + { CPUFUNC(op_08d8_11), 2264 }, /* BSET */ + { CPUFUNC(op_08e0_11), 2272 }, /* BSET */ + { CPUFUNC(op_08e8_11), 2280 }, /* BSET */ + { CPUFUNC(op_08f0_11), 2288 }, /* BSET */ + { CPUFUNC(op_08f8_11), 2296 }, /* BSET */ + { CPUFUNC(op_08f9_11), 2297 }, /* BSET */ + { CPUFUNC(op_0a00_11), 2560 }, /* EOR */ + { CPUFUNC(op_0a10_11), 2576 }, /* EOR */ + { CPUFUNC(op_0a18_11), 2584 }, /* EOR */ + { CPUFUNC(op_0a20_11), 2592 }, /* EOR */ + { CPUFUNC(op_0a28_11), 2600 }, /* EOR */ + { CPUFUNC(op_0a30_11), 2608 }, /* EOR */ + { CPUFUNC(op_0a38_11), 2616 }, /* EOR */ + { CPUFUNC(op_0a39_11), 2617 }, /* EOR */ + { CPUFUNC(op_0a3c_11), 2620 }, /* EORSR */ + { CPUFUNC(op_0a40_11), 2624 }, /* EOR */ + { CPUFUNC(op_0a50_11), 2640 }, /* EOR */ + { CPUFUNC(op_0a58_11), 2648 }, /* EOR */ + { CPUFUNC(op_0a60_11), 2656 }, /* EOR */ + { CPUFUNC(op_0a68_11), 2664 }, /* EOR */ + { CPUFUNC(op_0a70_11), 2672 }, /* EOR */ + { CPUFUNC(op_0a78_11), 2680 }, /* EOR */ + { CPUFUNC(op_0a79_11), 2681 }, /* EOR */ + { CPUFUNC(op_0a7c_11), 2684 }, /* EORSR */ + { CPUFUNC(op_0a80_11), 2688 }, /* EOR */ + { CPUFUNC(op_0a90_11), 2704 }, /* EOR */ + { CPUFUNC(op_0a98_11), 2712 }, /* EOR */ + { CPUFUNC(op_0aa0_11), 2720 }, /* EOR */ + { CPUFUNC(op_0aa8_11), 2728 }, /* EOR */ + { CPUFUNC(op_0ab0_11), 2736 }, /* EOR */ + { CPUFUNC(op_0ab8_11), 2744 }, /* EOR */ + { CPUFUNC(op_0ab9_11), 2745 }, /* EOR */ + { CPUFUNC(op_0c00_11), 3072 }, /* CMP */ + { CPUFUNC(op_0c10_11), 3088 }, /* CMP */ + { CPUFUNC(op_0c18_11), 3096 }, /* CMP */ + { CPUFUNC(op_0c20_11), 3104 }, /* CMP */ + { CPUFUNC(op_0c28_11), 3112 }, /* CMP */ + { CPUFUNC(op_0c30_11), 3120 }, /* CMP */ + { CPUFUNC(op_0c38_11), 3128 }, /* CMP */ + { CPUFUNC(op_0c39_11), 3129 }, /* CMP */ + { CPUFUNC(op_0c40_11), 3136 }, /* CMP */ + { CPUFUNC(op_0c50_11), 3152 }, /* CMP */ + { CPUFUNC(op_0c58_11), 3160 }, /* CMP */ + { CPUFUNC(op_0c60_11), 3168 }, /* CMP */ + { CPUFUNC(op_0c68_11), 3176 }, /* CMP */ + { CPUFUNC(op_0c70_11), 3184 }, /* CMP */ + { CPUFUNC(op_0c78_11), 3192 }, /* CMP */ + { CPUFUNC(op_0c79_11), 3193 }, /* CMP */ + { CPUFUNC(op_0c80_11), 3200 }, /* CMP */ + { CPUFUNC(op_0c90_11), 3216 }, /* CMP */ + { CPUFUNC(op_0c98_11), 3224 }, /* CMP */ + { CPUFUNC(op_0ca0_11), 3232 }, /* CMP */ + { CPUFUNC(op_0ca8_11), 3240 }, /* CMP */ + { CPUFUNC(op_0cb0_11), 3248 }, /* CMP */ + { CPUFUNC(op_0cb8_11), 3256 }, /* CMP */ + { CPUFUNC(op_0cb9_11), 3257 }, /* CMP */ + { CPUFUNC(op_1000_11), 4096 }, /* MOVE */ + { CPUFUNC(op_1010_11), 4112 }, /* MOVE */ + { CPUFUNC(op_1018_11), 4120 }, /* MOVE */ + { CPUFUNC(op_1020_11), 4128 }, /* MOVE */ + { CPUFUNC(op_1028_11), 4136 }, /* MOVE */ + { CPUFUNC(op_1030_11), 4144 }, /* MOVE */ + { CPUFUNC(op_1038_11), 4152 }, /* MOVE */ + { CPUFUNC(op_1039_11), 4153 }, /* MOVE */ + { CPUFUNC(op_103a_11), 4154 }, /* MOVE */ + { CPUFUNC(op_103b_11), 4155 }, /* MOVE */ + { CPUFUNC(op_103c_11), 4156 }, /* MOVE */ + { CPUFUNC(op_1080_11), 4224 }, /* MOVE */ + { CPUFUNC(op_1090_11), 4240 }, /* MOVE */ + { CPUFUNC(op_1098_11), 4248 }, /* MOVE */ + { CPUFUNC(op_10a0_11), 4256 }, /* MOVE */ + { CPUFUNC(op_10a8_11), 4264 }, /* MOVE */ + { CPUFUNC(op_10b0_11), 4272 }, /* MOVE */ + { CPUFUNC(op_10b8_11), 4280 }, /* MOVE */ + { CPUFUNC(op_10b9_11), 4281 }, /* MOVE */ + { CPUFUNC(op_10ba_11), 4282 }, /* MOVE */ + { CPUFUNC(op_10bb_11), 4283 }, /* MOVE */ + { CPUFUNC(op_10bc_11), 4284 }, /* MOVE */ + { CPUFUNC(op_10c0_11), 4288 }, /* MOVE */ + { CPUFUNC(op_10d0_11), 4304 }, /* MOVE */ + { CPUFUNC(op_10d8_11), 4312 }, /* MOVE */ + { CPUFUNC(op_10e0_11), 4320 }, /* MOVE */ + { CPUFUNC(op_10e8_11), 4328 }, /* MOVE */ + { CPUFUNC(op_10f0_11), 4336 }, /* MOVE */ + { CPUFUNC(op_10f8_11), 4344 }, /* MOVE */ + { CPUFUNC(op_10f9_11), 4345 }, /* MOVE */ + { CPUFUNC(op_10fa_11), 4346 }, /* MOVE */ + { CPUFUNC(op_10fb_11), 4347 }, /* MOVE */ + { CPUFUNC(op_10fc_11), 4348 }, /* MOVE */ + { CPUFUNC(op_1100_11), 4352 }, /* MOVE */ + { CPUFUNC(op_1110_11), 4368 }, /* MOVE */ + { CPUFUNC(op_1118_11), 4376 }, /* MOVE */ + { CPUFUNC(op_1120_11), 4384 }, /* MOVE */ + { CPUFUNC(op_1128_11), 4392 }, /* MOVE */ + { CPUFUNC(op_1130_11), 4400 }, /* MOVE */ + { CPUFUNC(op_1138_11), 4408 }, /* MOVE */ + { CPUFUNC(op_1139_11), 4409 }, /* MOVE */ + { CPUFUNC(op_113a_11), 4410 }, /* MOVE */ + { CPUFUNC(op_113b_11), 4411 }, /* MOVE */ + { CPUFUNC(op_113c_11), 4412 }, /* MOVE */ + { CPUFUNC(op_1140_11), 4416 }, /* MOVE */ + { CPUFUNC(op_1150_11), 4432 }, /* MOVE */ + { CPUFUNC(op_1158_11), 4440 }, /* MOVE */ + { CPUFUNC(op_1160_11), 4448 }, /* MOVE */ + { CPUFUNC(op_1168_11), 4456 }, /* MOVE */ + { CPUFUNC(op_1170_11), 4464 }, /* MOVE */ + { CPUFUNC(op_1178_11), 4472 }, /* MOVE */ + { CPUFUNC(op_1179_11), 4473 }, /* MOVE */ + { CPUFUNC(op_117a_11), 4474 }, /* MOVE */ + { CPUFUNC(op_117b_11), 4475 }, /* MOVE */ + { CPUFUNC(op_117c_11), 4476 }, /* MOVE */ + { CPUFUNC(op_1180_11), 4480 }, /* MOVE */ + { CPUFUNC(op_1190_11), 4496 }, /* MOVE */ + { CPUFUNC(op_1198_11), 4504 }, /* MOVE */ + { CPUFUNC(op_11a0_11), 4512 }, /* MOVE */ + { CPUFUNC(op_11a8_11), 4520 }, /* MOVE */ + { CPUFUNC(op_11b0_11), 4528 }, /* MOVE */ + { CPUFUNC(op_11b8_11), 4536 }, /* MOVE */ + { CPUFUNC(op_11b9_11), 4537 }, /* MOVE */ + { CPUFUNC(op_11ba_11), 4538 }, /* MOVE */ + { CPUFUNC(op_11bb_11), 4539 }, /* MOVE */ + { CPUFUNC(op_11bc_11), 4540 }, /* MOVE */ + { CPUFUNC(op_11c0_11), 4544 }, /* MOVE */ + { CPUFUNC(op_11d0_11), 4560 }, /* MOVE */ + { CPUFUNC(op_11d8_11), 4568 }, /* MOVE */ + { CPUFUNC(op_11e0_11), 4576 }, /* MOVE */ + { CPUFUNC(op_11e8_11), 4584 }, /* MOVE */ + { CPUFUNC(op_11f0_11), 4592 }, /* MOVE */ + { CPUFUNC(op_11f8_11), 4600 }, /* MOVE */ + { CPUFUNC(op_11f9_11), 4601 }, /* MOVE */ + { CPUFUNC(op_11fa_11), 4602 }, /* MOVE */ + { CPUFUNC(op_11fb_11), 4603 }, /* MOVE */ + { CPUFUNC(op_11fc_11), 4604 }, /* MOVE */ + { CPUFUNC(op_13c0_11), 5056 }, /* MOVE */ + { CPUFUNC(op_13d0_11), 5072 }, /* MOVE */ + { CPUFUNC(op_13d8_11), 5080 }, /* MOVE */ + { CPUFUNC(op_13e0_11), 5088 }, /* MOVE */ + { CPUFUNC(op_13e8_11), 5096 }, /* MOVE */ + { CPUFUNC(op_13f0_11), 5104 }, /* MOVE */ + { CPUFUNC(op_13f8_11), 5112 }, /* MOVE */ + { CPUFUNC(op_13f9_11), 5113 }, /* MOVE */ + { CPUFUNC(op_13fa_11), 5114 }, /* MOVE */ + { CPUFUNC(op_13fb_11), 5115 }, /* MOVE */ + { CPUFUNC(op_13fc_11), 5116 }, /* MOVE */ + { CPUFUNC(op_2000_11), 8192 }, /* MOVE */ + { CPUFUNC(op_2008_11), 8200 }, /* MOVE */ + { CPUFUNC(op_2010_11), 8208 }, /* MOVE */ + { CPUFUNC(op_2018_11), 8216 }, /* MOVE */ + { CPUFUNC(op_2020_11), 8224 }, /* MOVE */ + { CPUFUNC(op_2028_11), 8232 }, /* MOVE */ + { CPUFUNC(op_2030_11), 8240 }, /* MOVE */ + { CPUFUNC(op_2038_11), 8248 }, /* MOVE */ + { CPUFUNC(op_2039_11), 8249 }, /* MOVE */ + { CPUFUNC(op_203a_11), 8250 }, /* MOVE */ + { CPUFUNC(op_203b_11), 8251 }, /* MOVE */ + { CPUFUNC(op_203c_11), 8252 }, /* MOVE */ + { CPUFUNC(op_2040_11), 8256 }, /* MOVEA */ + { CPUFUNC(op_2048_11), 8264 }, /* MOVEA */ + { CPUFUNC(op_2050_11), 8272 }, /* MOVEA */ + { CPUFUNC(op_2058_11), 8280 }, /* MOVEA */ + { CPUFUNC(op_2060_11), 8288 }, /* MOVEA */ + { CPUFUNC(op_2068_11), 8296 }, /* MOVEA */ + { CPUFUNC(op_2070_11), 8304 }, /* MOVEA */ + { CPUFUNC(op_2078_11), 8312 }, /* MOVEA */ + { CPUFUNC(op_2079_11), 8313 }, /* MOVEA */ + { CPUFUNC(op_207a_11), 8314 }, /* MOVEA */ + { CPUFUNC(op_207b_11), 8315 }, /* MOVEA */ + { CPUFUNC(op_207c_11), 8316 }, /* MOVEA */ + { CPUFUNC(op_2080_11), 8320 }, /* MOVE */ + { CPUFUNC(op_2088_11), 8328 }, /* MOVE */ + { CPUFUNC(op_2090_11), 8336 }, /* MOVE */ + { CPUFUNC(op_2098_11), 8344 }, /* MOVE */ + { CPUFUNC(op_20a0_11), 8352 }, /* MOVE */ + { CPUFUNC(op_20a8_11), 8360 }, /* MOVE */ + { CPUFUNC(op_20b0_11), 8368 }, /* MOVE */ + { CPUFUNC(op_20b8_11), 8376 }, /* MOVE */ + { CPUFUNC(op_20b9_11), 8377 }, /* MOVE */ + { CPUFUNC(op_20ba_11), 8378 }, /* MOVE */ + { CPUFUNC(op_20bb_11), 8379 }, /* MOVE */ + { CPUFUNC(op_20bc_11), 8380 }, /* MOVE */ + { CPUFUNC(op_20c0_11), 8384 }, /* MOVE */ + { CPUFUNC(op_20c8_11), 8392 }, /* MOVE */ + { CPUFUNC(op_20d0_11), 8400 }, /* MOVE */ + { CPUFUNC(op_20d8_11), 8408 }, /* MOVE */ + { CPUFUNC(op_20e0_11), 8416 }, /* MOVE */ + { CPUFUNC(op_20e8_11), 8424 }, /* MOVE */ + { CPUFUNC(op_20f0_11), 8432 }, /* MOVE */ + { CPUFUNC(op_20f8_11), 8440 }, /* MOVE */ + { CPUFUNC(op_20f9_11), 8441 }, /* MOVE */ + { CPUFUNC(op_20fa_11), 8442 }, /* MOVE */ + { CPUFUNC(op_20fb_11), 8443 }, /* MOVE */ + { CPUFUNC(op_20fc_11), 8444 }, /* MOVE */ + { CPUFUNC(op_2100_11), 8448 }, /* MOVE */ + { CPUFUNC(op_2108_11), 8456 }, /* MOVE */ + { CPUFUNC(op_2110_11), 8464 }, /* MOVE */ + { CPUFUNC(op_2118_11), 8472 }, /* MOVE */ + { CPUFUNC(op_2120_11), 8480 }, /* MOVE */ + { CPUFUNC(op_2128_11), 8488 }, /* MOVE */ + { CPUFUNC(op_2130_11), 8496 }, /* MOVE */ + { CPUFUNC(op_2138_11), 8504 }, /* MOVE */ + { CPUFUNC(op_2139_11), 8505 }, /* MOVE */ + { CPUFUNC(op_213a_11), 8506 }, /* MOVE */ + { CPUFUNC(op_213b_11), 8507 }, /* MOVE */ + { CPUFUNC(op_213c_11), 8508 }, /* MOVE */ + { CPUFUNC(op_2140_11), 8512 }, /* MOVE */ + { CPUFUNC(op_2148_11), 8520 }, /* MOVE */ + { CPUFUNC(op_2150_11), 8528 }, /* MOVE */ + { CPUFUNC(op_2158_11), 8536 }, /* MOVE */ + { CPUFUNC(op_2160_11), 8544 }, /* MOVE */ + { CPUFUNC(op_2168_11), 8552 }, /* MOVE */ + { CPUFUNC(op_2170_11), 8560 }, /* MOVE */ + { CPUFUNC(op_2178_11), 8568 }, /* MOVE */ + { CPUFUNC(op_2179_11), 8569 }, /* MOVE */ + { CPUFUNC(op_217a_11), 8570 }, /* MOVE */ + { CPUFUNC(op_217b_11), 8571 }, /* MOVE */ + { CPUFUNC(op_217c_11), 8572 }, /* MOVE */ + { CPUFUNC(op_2180_11), 8576 }, /* MOVE */ + { CPUFUNC(op_2188_11), 8584 }, /* MOVE */ + { CPUFUNC(op_2190_11), 8592 }, /* MOVE */ + { CPUFUNC(op_2198_11), 8600 }, /* MOVE */ + { CPUFUNC(op_21a0_11), 8608 }, /* MOVE */ + { CPUFUNC(op_21a8_11), 8616 }, /* MOVE */ + { CPUFUNC(op_21b0_11), 8624 }, /* MOVE */ + { CPUFUNC(op_21b8_11), 8632 }, /* MOVE */ + { CPUFUNC(op_21b9_11), 8633 }, /* MOVE */ + { CPUFUNC(op_21ba_11), 8634 }, /* MOVE */ + { CPUFUNC(op_21bb_11), 8635 }, /* MOVE */ + { CPUFUNC(op_21bc_11), 8636 }, /* MOVE */ + { CPUFUNC(op_21c0_11), 8640 }, /* MOVE */ + { CPUFUNC(op_21c8_11), 8648 }, /* MOVE */ + { CPUFUNC(op_21d0_11), 8656 }, /* MOVE */ + { CPUFUNC(op_21d8_11), 8664 }, /* MOVE */ + { CPUFUNC(op_21e0_11), 8672 }, /* MOVE */ + { CPUFUNC(op_21e8_11), 8680 }, /* MOVE */ + { CPUFUNC(op_21f0_11), 8688 }, /* MOVE */ + { CPUFUNC(op_21f8_11), 8696 }, /* MOVE */ + { CPUFUNC(op_21f9_11), 8697 }, /* MOVE */ + { CPUFUNC(op_21fa_11), 8698 }, /* MOVE */ + { CPUFUNC(op_21fb_11), 8699 }, /* MOVE */ + { CPUFUNC(op_21fc_11), 8700 }, /* MOVE */ + { CPUFUNC(op_23c0_11), 9152 }, /* MOVE */ + { CPUFUNC(op_23c8_11), 9160 }, /* MOVE */ + { CPUFUNC(op_23d0_11), 9168 }, /* MOVE */ + { CPUFUNC(op_23d8_11), 9176 }, /* MOVE */ + { CPUFUNC(op_23e0_11), 9184 }, /* MOVE */ + { CPUFUNC(op_23e8_11), 9192 }, /* MOVE */ + { CPUFUNC(op_23f0_11), 9200 }, /* MOVE */ + { CPUFUNC(op_23f8_11), 9208 }, /* MOVE */ + { CPUFUNC(op_23f9_11), 9209 }, /* MOVE */ + { CPUFUNC(op_23fa_11), 9210 }, /* MOVE */ + { CPUFUNC(op_23fb_11), 9211 }, /* MOVE */ + { CPUFUNC(op_23fc_11), 9212 }, /* MOVE */ + { CPUFUNC(op_3000_11), 12288 }, /* MOVE */ + { CPUFUNC(op_3008_11), 12296 }, /* MOVE */ + { CPUFUNC(op_3010_11), 12304 }, /* MOVE */ + { CPUFUNC(op_3018_11), 12312 }, /* MOVE */ + { CPUFUNC(op_3020_11), 12320 }, /* MOVE */ + { CPUFUNC(op_3028_11), 12328 }, /* MOVE */ + { CPUFUNC(op_3030_11), 12336 }, /* MOVE */ + { CPUFUNC(op_3038_11), 12344 }, /* MOVE */ + { CPUFUNC(op_3039_11), 12345 }, /* MOVE */ + { CPUFUNC(op_303a_11), 12346 }, /* MOVE */ + { CPUFUNC(op_303b_11), 12347 }, /* MOVE */ + { CPUFUNC(op_303c_11), 12348 }, /* MOVE */ + { CPUFUNC(op_3040_11), 12352 }, /* MOVEA */ + { CPUFUNC(op_3048_11), 12360 }, /* MOVEA */ + { CPUFUNC(op_3050_11), 12368 }, /* MOVEA */ + { CPUFUNC(op_3058_11), 12376 }, /* MOVEA */ + { CPUFUNC(op_3060_11), 12384 }, /* MOVEA */ + { CPUFUNC(op_3068_11), 12392 }, /* MOVEA */ + { CPUFUNC(op_3070_11), 12400 }, /* MOVEA */ + { CPUFUNC(op_3078_11), 12408 }, /* MOVEA */ + { CPUFUNC(op_3079_11), 12409 }, /* MOVEA */ + { CPUFUNC(op_307a_11), 12410 }, /* MOVEA */ + { CPUFUNC(op_307b_11), 12411 }, /* MOVEA */ + { CPUFUNC(op_307c_11), 12412 }, /* MOVEA */ + { CPUFUNC(op_3080_11), 12416 }, /* MOVE */ + { CPUFUNC(op_3088_11), 12424 }, /* MOVE */ + { CPUFUNC(op_3090_11), 12432 }, /* MOVE */ + { CPUFUNC(op_3098_11), 12440 }, /* MOVE */ + { CPUFUNC(op_30a0_11), 12448 }, /* MOVE */ + { CPUFUNC(op_30a8_11), 12456 }, /* MOVE */ + { CPUFUNC(op_30b0_11), 12464 }, /* MOVE */ + { CPUFUNC(op_30b8_11), 12472 }, /* MOVE */ + { CPUFUNC(op_30b9_11), 12473 }, /* MOVE */ + { CPUFUNC(op_30ba_11), 12474 }, /* MOVE */ + { CPUFUNC(op_30bb_11), 12475 }, /* MOVE */ + { CPUFUNC(op_30bc_11), 12476 }, /* MOVE */ + { CPUFUNC(op_30c0_11), 12480 }, /* MOVE */ + { CPUFUNC(op_30c8_11), 12488 }, /* MOVE */ + { CPUFUNC(op_30d0_11), 12496 }, /* MOVE */ + { CPUFUNC(op_30d8_11), 12504 }, /* MOVE */ + { CPUFUNC(op_30e0_11), 12512 }, /* MOVE */ + { CPUFUNC(op_30e8_11), 12520 }, /* MOVE */ + { CPUFUNC(op_30f0_11), 12528 }, /* MOVE */ + { CPUFUNC(op_30f8_11), 12536 }, /* MOVE */ + { CPUFUNC(op_30f9_11), 12537 }, /* MOVE */ + { CPUFUNC(op_30fa_11), 12538 }, /* MOVE */ + { CPUFUNC(op_30fb_11), 12539 }, /* MOVE */ + { CPUFUNC(op_30fc_11), 12540 }, /* MOVE */ + { CPUFUNC(op_3100_11), 12544 }, /* MOVE */ + { CPUFUNC(op_3108_11), 12552 }, /* MOVE */ + { CPUFUNC(op_3110_11), 12560 }, /* MOVE */ + { CPUFUNC(op_3118_11), 12568 }, /* MOVE */ + { CPUFUNC(op_3120_11), 12576 }, /* MOVE */ + { CPUFUNC(op_3128_11), 12584 }, /* MOVE */ + { CPUFUNC(op_3130_11), 12592 }, /* MOVE */ + { CPUFUNC(op_3138_11), 12600 }, /* MOVE */ + { CPUFUNC(op_3139_11), 12601 }, /* MOVE */ + { CPUFUNC(op_313a_11), 12602 }, /* MOVE */ + { CPUFUNC(op_313b_11), 12603 }, /* MOVE */ + { CPUFUNC(op_313c_11), 12604 }, /* MOVE */ + { CPUFUNC(op_3140_11), 12608 }, /* MOVE */ + { CPUFUNC(op_3148_11), 12616 }, /* MOVE */ + { CPUFUNC(op_3150_11), 12624 }, /* MOVE */ + { CPUFUNC(op_3158_11), 12632 }, /* MOVE */ + { CPUFUNC(op_3160_11), 12640 }, /* MOVE */ + { CPUFUNC(op_3168_11), 12648 }, /* MOVE */ + { CPUFUNC(op_3170_11), 12656 }, /* MOVE */ + { CPUFUNC(op_3178_11), 12664 }, /* MOVE */ + { CPUFUNC(op_3179_11), 12665 }, /* MOVE */ + { CPUFUNC(op_317a_11), 12666 }, /* MOVE */ + { CPUFUNC(op_317b_11), 12667 }, /* MOVE */ + { CPUFUNC(op_317c_11), 12668 }, /* MOVE */ + { CPUFUNC(op_3180_11), 12672 }, /* MOVE */ + { CPUFUNC(op_3188_11), 12680 }, /* MOVE */ + { CPUFUNC(op_3190_11), 12688 }, /* MOVE */ + { CPUFUNC(op_3198_11), 12696 }, /* MOVE */ + { CPUFUNC(op_31a0_11), 12704 }, /* MOVE */ + { CPUFUNC(op_31a8_11), 12712 }, /* MOVE */ + { CPUFUNC(op_31b0_11), 12720 }, /* MOVE */ + { CPUFUNC(op_31b8_11), 12728 }, /* MOVE */ + { CPUFUNC(op_31b9_11), 12729 }, /* MOVE */ + { CPUFUNC(op_31ba_11), 12730 }, /* MOVE */ + { CPUFUNC(op_31bb_11), 12731 }, /* MOVE */ + { CPUFUNC(op_31bc_11), 12732 }, /* MOVE */ + { CPUFUNC(op_31c0_11), 12736 }, /* MOVE */ + { CPUFUNC(op_31c8_11), 12744 }, /* MOVE */ + { CPUFUNC(op_31d0_11), 12752 }, /* MOVE */ + { CPUFUNC(op_31d8_11), 12760 }, /* MOVE */ + { CPUFUNC(op_31e0_11), 12768 }, /* MOVE */ + { CPUFUNC(op_31e8_11), 12776 }, /* MOVE */ + { CPUFUNC(op_31f0_11), 12784 }, /* MOVE */ + { CPUFUNC(op_31f8_11), 12792 }, /* MOVE */ + { CPUFUNC(op_31f9_11), 12793 }, /* MOVE */ + { CPUFUNC(op_31fa_11), 12794 }, /* MOVE */ + { CPUFUNC(op_31fb_11), 12795 }, /* MOVE */ + { CPUFUNC(op_31fc_11), 12796 }, /* MOVE */ + { CPUFUNC(op_33c0_11), 13248 }, /* MOVE */ + { CPUFUNC(op_33c8_11), 13256 }, /* MOVE */ + { CPUFUNC(op_33d0_11), 13264 }, /* MOVE */ + { CPUFUNC(op_33d8_11), 13272 }, /* MOVE */ + { CPUFUNC(op_33e0_11), 13280 }, /* MOVE */ + { CPUFUNC(op_33e8_11), 13288 }, /* MOVE */ + { CPUFUNC(op_33f0_11), 13296 }, /* MOVE */ + { CPUFUNC(op_33f8_11), 13304 }, /* MOVE */ + { CPUFUNC(op_33f9_11), 13305 }, /* MOVE */ + { CPUFUNC(op_33fa_11), 13306 }, /* MOVE */ + { CPUFUNC(op_33fb_11), 13307 }, /* MOVE */ + { CPUFUNC(op_33fc_11), 13308 }, /* MOVE */ + { CPUFUNC(op_4000_11), 16384 }, /* NEGX */ + { CPUFUNC(op_4010_11), 16400 }, /* NEGX */ + { CPUFUNC(op_4018_11), 16408 }, /* NEGX */ + { CPUFUNC(op_4020_11), 16416 }, /* NEGX */ + { CPUFUNC(op_4028_11), 16424 }, /* NEGX */ + { CPUFUNC(op_4030_11), 16432 }, /* NEGX */ + { CPUFUNC(op_4038_11), 16440 }, /* NEGX */ + { CPUFUNC(op_4039_11), 16441 }, /* NEGX */ + { CPUFUNC(op_4040_11), 16448 }, /* NEGX */ + { CPUFUNC(op_4050_11), 16464 }, /* NEGX */ + { CPUFUNC(op_4058_11), 16472 }, /* NEGX */ + { CPUFUNC(op_4060_11), 16480 }, /* NEGX */ + { CPUFUNC(op_4068_11), 16488 }, /* NEGX */ + { CPUFUNC(op_4070_11), 16496 }, /* NEGX */ + { CPUFUNC(op_4078_11), 16504 }, /* NEGX */ + { CPUFUNC(op_4079_11), 16505 }, /* NEGX */ + { CPUFUNC(op_4080_11), 16512 }, /* NEGX */ + { CPUFUNC(op_4090_11), 16528 }, /* NEGX */ + { CPUFUNC(op_4098_11), 16536 }, /* NEGX */ + { CPUFUNC(op_40a0_11), 16544 }, /* NEGX */ + { CPUFUNC(op_40a8_11), 16552 }, /* NEGX */ + { CPUFUNC(op_40b0_11), 16560 }, /* NEGX */ + { CPUFUNC(op_40b8_11), 16568 }, /* NEGX */ + { CPUFUNC(op_40b9_11), 16569 }, /* NEGX */ + { CPUFUNC(op_40c0_11), 16576 }, /* MVSR2 */ + { CPUFUNC(op_40d0_11), 16592 }, /* MVSR2 */ + { CPUFUNC(op_40d8_11), 16600 }, /* MVSR2 */ + { CPUFUNC(op_40e0_11), 16608 }, /* MVSR2 */ + { CPUFUNC(op_40e8_11), 16616 }, /* MVSR2 */ + { CPUFUNC(op_40f0_11), 16624 }, /* MVSR2 */ + { CPUFUNC(op_40f8_11), 16632 }, /* MVSR2 */ + { CPUFUNC(op_40f9_11), 16633 }, /* MVSR2 */ + { CPUFUNC(op_4180_11), 16768 }, /* CHK */ + { CPUFUNC(op_4190_11), 16784 }, /* CHK */ + { CPUFUNC(op_4198_11), 16792 }, /* CHK */ + { CPUFUNC(op_41a0_11), 16800 }, /* CHK */ + { CPUFUNC(op_41a8_11), 16808 }, /* CHK */ + { CPUFUNC(op_41b0_11), 16816 }, /* CHK */ + { CPUFUNC(op_41b8_11), 16824 }, /* CHK */ + { CPUFUNC(op_41b9_11), 16825 }, /* CHK */ + { CPUFUNC(op_41ba_11), 16826 }, /* CHK */ + { CPUFUNC(op_41bb_11), 16827 }, /* CHK */ + { CPUFUNC(op_41bc_11), 16828 }, /* CHK */ + { CPUFUNC(op_41d0_11), 16848 }, /* LEA */ + { CPUFUNC(op_41e8_11), 16872 }, /* LEA */ + { CPUFUNC(op_41f0_11), 16880 }, /* LEA */ + { CPUFUNC(op_41f8_11), 16888 }, /* LEA */ + { CPUFUNC(op_41f9_11), 16889 }, /* LEA */ + { CPUFUNC(op_41fa_11), 16890 }, /* LEA */ + { CPUFUNC(op_41fb_11), 16891 }, /* LEA */ + { CPUFUNC(op_4200_11), 16896 }, /* CLR */ + { CPUFUNC(op_4210_11), 16912 }, /* CLR */ + { CPUFUNC(op_4218_11), 16920 }, /* CLR */ + { CPUFUNC(op_4220_11), 16928 }, /* CLR */ + { CPUFUNC(op_4228_11), 16936 }, /* CLR */ + { CPUFUNC(op_4230_11), 16944 }, /* CLR */ + { CPUFUNC(op_4238_11), 16952 }, /* CLR */ + { CPUFUNC(op_4239_11), 16953 }, /* CLR */ + { CPUFUNC(op_4240_11), 16960 }, /* CLR */ + { CPUFUNC(op_4250_11), 16976 }, /* CLR */ + { CPUFUNC(op_4258_11), 16984 }, /* CLR */ + { CPUFUNC(op_4260_11), 16992 }, /* CLR */ + { CPUFUNC(op_4268_11), 17000 }, /* CLR */ + { CPUFUNC(op_4270_11), 17008 }, /* CLR */ + { CPUFUNC(op_4278_11), 17016 }, /* CLR */ + { CPUFUNC(op_4279_11), 17017 }, /* CLR */ + { CPUFUNC(op_4280_11), 17024 }, /* CLR */ + { CPUFUNC(op_4290_11), 17040 }, /* CLR */ + { CPUFUNC(op_4298_11), 17048 }, /* CLR */ + { CPUFUNC(op_42a0_11), 17056 }, /* CLR */ + { CPUFUNC(op_42a8_11), 17064 }, /* CLR */ + { CPUFUNC(op_42b0_11), 17072 }, /* CLR */ + { CPUFUNC(op_42b8_11), 17080 }, /* CLR */ + { CPUFUNC(op_42b9_11), 17081 }, /* CLR */ + { CPUFUNC(op_4400_11), 17408 }, /* NEG */ + { CPUFUNC(op_4410_11), 17424 }, /* NEG */ + { CPUFUNC(op_4418_11), 17432 }, /* NEG */ + { CPUFUNC(op_4420_11), 17440 }, /* NEG */ + { CPUFUNC(op_4428_11), 17448 }, /* NEG */ + { CPUFUNC(op_4430_11), 17456 }, /* NEG */ + { CPUFUNC(op_4438_11), 17464 }, /* NEG */ + { CPUFUNC(op_4439_11), 17465 }, /* NEG */ + { CPUFUNC(op_4440_11), 17472 }, /* NEG */ + { CPUFUNC(op_4450_11), 17488 }, /* NEG */ + { CPUFUNC(op_4458_11), 17496 }, /* NEG */ + { CPUFUNC(op_4460_11), 17504 }, /* NEG */ + { CPUFUNC(op_4468_11), 17512 }, /* NEG */ + { CPUFUNC(op_4470_11), 17520 }, /* NEG */ + { CPUFUNC(op_4478_11), 17528 }, /* NEG */ + { CPUFUNC(op_4479_11), 17529 }, /* NEG */ + { CPUFUNC(op_4480_11), 17536 }, /* NEG */ + { CPUFUNC(op_4490_11), 17552 }, /* NEG */ + { CPUFUNC(op_4498_11), 17560 }, /* NEG */ + { CPUFUNC(op_44a0_11), 17568 }, /* NEG */ + { CPUFUNC(op_44a8_11), 17576 }, /* NEG */ + { CPUFUNC(op_44b0_11), 17584 }, /* NEG */ + { CPUFUNC(op_44b8_11), 17592 }, /* NEG */ + { CPUFUNC(op_44b9_11), 17593 }, /* NEG */ + { CPUFUNC(op_44c0_11), 17600 }, /* MV2SR */ + { CPUFUNC(op_44d0_11), 17616 }, /* MV2SR */ + { CPUFUNC(op_44d8_11), 17624 }, /* MV2SR */ + { CPUFUNC(op_44e0_11), 17632 }, /* MV2SR */ + { CPUFUNC(op_44e8_11), 17640 }, /* MV2SR */ + { CPUFUNC(op_44f0_11), 17648 }, /* MV2SR */ + { CPUFUNC(op_44f8_11), 17656 }, /* MV2SR */ + { CPUFUNC(op_44f9_11), 17657 }, /* MV2SR */ + { CPUFUNC(op_44fa_11), 17658 }, /* MV2SR */ + { CPUFUNC(op_44fb_11), 17659 }, /* MV2SR */ + { CPUFUNC(op_44fc_11), 17660 }, /* MV2SR */ + { CPUFUNC(op_4600_11), 17920 }, /* NOT */ + { CPUFUNC(op_4610_11), 17936 }, /* NOT */ + { CPUFUNC(op_4618_11), 17944 }, /* NOT */ + { CPUFUNC(op_4620_11), 17952 }, /* NOT */ + { CPUFUNC(op_4628_11), 17960 }, /* NOT */ + { CPUFUNC(op_4630_11), 17968 }, /* NOT */ + { CPUFUNC(op_4638_11), 17976 }, /* NOT */ + { CPUFUNC(op_4639_11), 17977 }, /* NOT */ + { CPUFUNC(op_4640_11), 17984 }, /* NOT */ + { CPUFUNC(op_4650_11), 18000 }, /* NOT */ + { CPUFUNC(op_4658_11), 18008 }, /* NOT */ + { CPUFUNC(op_4660_11), 18016 }, /* NOT */ + { CPUFUNC(op_4668_11), 18024 }, /* NOT */ + { CPUFUNC(op_4670_11), 18032 }, /* NOT */ + { CPUFUNC(op_4678_11), 18040 }, /* NOT */ + { CPUFUNC(op_4679_11), 18041 }, /* NOT */ + { CPUFUNC(op_4680_11), 18048 }, /* NOT */ + { CPUFUNC(op_4690_11), 18064 }, /* NOT */ + { CPUFUNC(op_4698_11), 18072 }, /* NOT */ + { CPUFUNC(op_46a0_11), 18080 }, /* NOT */ + { CPUFUNC(op_46a8_11), 18088 }, /* NOT */ + { CPUFUNC(op_46b0_11), 18096 }, /* NOT */ + { CPUFUNC(op_46b8_11), 18104 }, /* NOT */ + { CPUFUNC(op_46b9_11), 18105 }, /* NOT */ + { CPUFUNC(op_46c0_11), 18112 }, /* MV2SR */ + { CPUFUNC(op_46d0_11), 18128 }, /* MV2SR */ + { CPUFUNC(op_46d8_11), 18136 }, /* MV2SR */ + { CPUFUNC(op_46e0_11), 18144 }, /* MV2SR */ + { CPUFUNC(op_46e8_11), 18152 }, /* MV2SR */ + { CPUFUNC(op_46f0_11), 18160 }, /* MV2SR */ + { CPUFUNC(op_46f8_11), 18168 }, /* MV2SR */ + { CPUFUNC(op_46f9_11), 18169 }, /* MV2SR */ + { CPUFUNC(op_46fa_11), 18170 }, /* MV2SR */ + { CPUFUNC(op_46fb_11), 18171 }, /* MV2SR */ + { CPUFUNC(op_46fc_11), 18172 }, /* MV2SR */ + { CPUFUNC(op_4800_11), 18432 }, /* NBCD */ + { CPUFUNC(op_4810_11), 18448 }, /* NBCD */ + { CPUFUNC(op_4818_11), 18456 }, /* NBCD */ + { CPUFUNC(op_4820_11), 18464 }, /* NBCD */ + { CPUFUNC(op_4828_11), 18472 }, /* NBCD */ + { CPUFUNC(op_4830_11), 18480 }, /* NBCD */ + { CPUFUNC(op_4838_11), 18488 }, /* NBCD */ + { CPUFUNC(op_4839_11), 18489 }, /* NBCD */ + { CPUFUNC(op_4840_11), 18496 }, /* SWAP */ + { CPUFUNC(op_4850_11), 18512 }, /* PEA */ + { CPUFUNC(op_4868_11), 18536 }, /* PEA */ + { CPUFUNC(op_4870_11), 18544 }, /* PEA */ + { CPUFUNC(op_4878_11), 18552 }, /* PEA */ + { CPUFUNC(op_4879_11), 18553 }, /* PEA */ + { CPUFUNC(op_487a_11), 18554 }, /* PEA */ + { CPUFUNC(op_487b_11), 18555 }, /* PEA */ + { CPUFUNC(op_4880_11), 18560 }, /* EXT */ + { CPUFUNC(op_4890_11), 18576 }, /* MVMLE */ + { CPUFUNC(op_48a0_11), 18592 }, /* MVMLE */ + { CPUFUNC(op_48a8_11), 18600 }, /* MVMLE */ + { CPUFUNC(op_48b0_11), 18608 }, /* MVMLE */ + { CPUFUNC(op_48b8_11), 18616 }, /* MVMLE */ + { CPUFUNC(op_48b9_11), 18617 }, /* MVMLE */ + { CPUFUNC(op_48c0_11), 18624 }, /* EXT */ + { CPUFUNC(op_48d0_11), 18640 }, /* MVMLE */ + { CPUFUNC(op_48e0_11), 18656 }, /* MVMLE */ + { CPUFUNC(op_48e8_11), 18664 }, /* MVMLE */ + { CPUFUNC(op_48f0_11), 18672 }, /* MVMLE */ + { CPUFUNC(op_48f8_11), 18680 }, /* MVMLE */ + { CPUFUNC(op_48f9_11), 18681 }, /* MVMLE */ + { CPUFUNC(op_4a00_11), 18944 }, /* TST */ + { CPUFUNC(op_4a10_11), 18960 }, /* TST */ + { CPUFUNC(op_4a18_11), 18968 }, /* TST */ + { CPUFUNC(op_4a20_11), 18976 }, /* TST */ + { CPUFUNC(op_4a28_11), 18984 }, /* TST */ + { CPUFUNC(op_4a30_11), 18992 }, /* TST */ + { CPUFUNC(op_4a38_11), 19000 }, /* TST */ + { CPUFUNC(op_4a39_11), 19001 }, /* TST */ + { CPUFUNC(op_4a3c_11), 19004 }, /* TST */ + { CPUFUNC(op_4a40_11), 19008 }, /* TST */ + { CPUFUNC(op_4a50_11), 19024 }, /* TST */ + { CPUFUNC(op_4a58_11), 19032 }, /* TST */ + { CPUFUNC(op_4a60_11), 19040 }, /* TST */ + { CPUFUNC(op_4a68_11), 19048 }, /* TST */ + { CPUFUNC(op_4a70_11), 19056 }, /* TST */ + { CPUFUNC(op_4a78_11), 19064 }, /* TST */ + { CPUFUNC(op_4a79_11), 19065 }, /* TST */ + { CPUFUNC(op_4a7c_11), 19068 }, /* TST */ + { CPUFUNC(op_4a80_11), 19072 }, /* TST */ + { CPUFUNC(op_4a90_11), 19088 }, /* TST */ + { CPUFUNC(op_4a98_11), 19096 }, /* TST */ + { CPUFUNC(op_4aa0_11), 19104 }, /* TST */ + { CPUFUNC(op_4aa8_11), 19112 }, /* TST */ + { CPUFUNC(op_4ab0_11), 19120 }, /* TST */ + { CPUFUNC(op_4ab8_11), 19128 }, /* TST */ + { CPUFUNC(op_4ab9_11), 19129 }, /* TST */ + { CPUFUNC(op_4abc_11), 19132 }, /* TST */ + { CPUFUNC(op_4ac0_11), 19136 }, /* TAS */ + { CPUFUNC(op_4ad0_11), 19152 }, /* TAS */ + { CPUFUNC(op_4ad8_11), 19160 }, /* TAS */ + { CPUFUNC(op_4ae0_11), 19168 }, /* TAS */ + { CPUFUNC(op_4ae8_11), 19176 }, /* TAS */ + { CPUFUNC(op_4af0_11), 19184 }, /* TAS */ + { CPUFUNC(op_4af8_11), 19192 }, /* TAS */ + { CPUFUNC(op_4af9_11), 19193 }, /* TAS */ + { CPUFUNC(op_4c90_11), 19600 }, /* MVMEL */ + { CPUFUNC(op_4c98_11), 19608 }, /* MVMEL */ + { CPUFUNC(op_4ca8_11), 19624 }, /* MVMEL */ + { CPUFUNC(op_4cb0_11), 19632 }, /* MVMEL */ + { CPUFUNC(op_4cb8_11), 19640 }, /* MVMEL */ + { CPUFUNC(op_4cb9_11), 19641 }, /* MVMEL */ + { CPUFUNC(op_4cba_11), 19642 }, /* MVMEL */ + { CPUFUNC(op_4cbb_11), 19643 }, /* MVMEL */ + { CPUFUNC(op_4cd0_11), 19664 }, /* MVMEL */ + { CPUFUNC(op_4cd8_11), 19672 }, /* MVMEL */ + { CPUFUNC(op_4ce8_11), 19688 }, /* MVMEL */ + { CPUFUNC(op_4cf0_11), 19696 }, /* MVMEL */ + { CPUFUNC(op_4cf8_11), 19704 }, /* MVMEL */ + { CPUFUNC(op_4cf9_11), 19705 }, /* MVMEL */ + { CPUFUNC(op_4cfa_11), 19706 }, /* MVMEL */ + { CPUFUNC(op_4cfb_11), 19707 }, /* MVMEL */ + { CPUFUNC(op_4e40_11), 20032 }, /* TRAP */ + { CPUFUNC(op_4e50_11), 20048 }, /* LINK */ + { CPUFUNC(op_4e58_11), 20056 }, /* UNLK */ + { CPUFUNC(op_4e60_11), 20064 }, /* MVR2USP */ + { CPUFUNC(op_4e68_11), 20072 }, /* MVUSP2R */ + { CPUFUNC(op_4e70_11), 20080 }, /* RESET */ + { CPUFUNC(op_4e71_11), 20081 }, /* NOP */ + { CPUFUNC(op_4e72_11), 20082 }, /* STOP */ + { CPUFUNC(op_4e73_11), 20083 }, /* RTE */ + { CPUFUNC(op_4e74_11), 20084 }, /* RTD */ + { CPUFUNC(op_4e75_11), 20085 }, /* RTS */ + { CPUFUNC(op_4e76_11), 20086 }, /* TRAPV */ + { CPUFUNC(op_4e77_11), 20087 }, /* RTR */ + { CPUFUNC(op_4e90_11), 20112 }, /* JSR */ + { CPUFUNC(op_4ea8_11), 20136 }, /* JSR */ + { CPUFUNC(op_4eb0_11), 20144 }, /* JSR */ + { CPUFUNC(op_4eb8_11), 20152 }, /* JSR */ + { CPUFUNC(op_4eb9_11), 20153 }, /* JSR */ + { CPUFUNC(op_4eba_11), 20154 }, /* JSR */ + { CPUFUNC(op_4ebb_11), 20155 }, /* JSR */ + { CPUFUNC(op_4ed0_11), 20176 }, /* JMP */ + { CPUFUNC(op_4ee8_11), 20200 }, /* JMP */ + { CPUFUNC(op_4ef0_11), 20208 }, /* JMP */ + { CPUFUNC(op_4ef8_11), 20216 }, /* JMP */ + { CPUFUNC(op_4ef9_11), 20217 }, /* JMP */ + { CPUFUNC(op_4efa_11), 20218 }, /* JMP */ + { CPUFUNC(op_4efb_11), 20219 }, /* JMP */ + { CPUFUNC(op_5000_11), 20480 }, /* ADD */ + { CPUFUNC(op_5010_11), 20496 }, /* ADD */ + { CPUFUNC(op_5018_11), 20504 }, /* ADD */ + { CPUFUNC(op_5020_11), 20512 }, /* ADD */ + { CPUFUNC(op_5028_11), 20520 }, /* ADD */ + { CPUFUNC(op_5030_11), 20528 }, /* ADD */ + { CPUFUNC(op_5038_11), 20536 }, /* ADD */ + { CPUFUNC(op_5039_11), 20537 }, /* ADD */ + { CPUFUNC(op_5040_11), 20544 }, /* ADD */ + { CPUFUNC(op_5048_11), 20552 }, /* ADDA */ + { CPUFUNC(op_5050_11), 20560 }, /* ADD */ + { CPUFUNC(op_5058_11), 20568 }, /* ADD */ + { CPUFUNC(op_5060_11), 20576 }, /* ADD */ + { CPUFUNC(op_5068_11), 20584 }, /* ADD */ + { CPUFUNC(op_5070_11), 20592 }, /* ADD */ + { CPUFUNC(op_5078_11), 20600 }, /* ADD */ + { CPUFUNC(op_5079_11), 20601 }, /* ADD */ + { CPUFUNC(op_5080_11), 20608 }, /* ADD */ + { CPUFUNC(op_5088_11), 20616 }, /* ADDA */ + { CPUFUNC(op_5090_11), 20624 }, /* ADD */ + { CPUFUNC(op_5098_11), 20632 }, /* ADD */ + { CPUFUNC(op_50a0_11), 20640 }, /* ADD */ + { CPUFUNC(op_50a8_11), 20648 }, /* ADD */ + { CPUFUNC(op_50b0_11), 20656 }, /* ADD */ + { CPUFUNC(op_50b8_11), 20664 }, /* ADD */ + { CPUFUNC(op_50b9_11), 20665 }, /* ADD */ + { CPUFUNC(op_50c0_11), 20672 }, /* Scc */ + { CPUFUNC(op_50c8_11), 20680 }, /* DBcc */ + { CPUFUNC(op_50d0_11), 20688 }, /* Scc */ + { CPUFUNC(op_50d8_11), 20696 }, /* Scc */ + { CPUFUNC(op_50e0_11), 20704 }, /* Scc */ + { CPUFUNC(op_50e8_11), 20712 }, /* Scc */ + { CPUFUNC(op_50f0_11), 20720 }, /* Scc */ + { CPUFUNC(op_50f8_11), 20728 }, /* Scc */ + { CPUFUNC(op_50f9_11), 20729 }, /* Scc */ + { CPUFUNC(op_5100_11), 20736 }, /* SUB */ + { CPUFUNC(op_5110_11), 20752 }, /* SUB */ + { CPUFUNC(op_5118_11), 20760 }, /* SUB */ + { CPUFUNC(op_5120_11), 20768 }, /* SUB */ + { CPUFUNC(op_5128_11), 20776 }, /* SUB */ + { CPUFUNC(op_5130_11), 20784 }, /* SUB */ + { CPUFUNC(op_5138_11), 20792 }, /* SUB */ + { CPUFUNC(op_5139_11), 20793 }, /* SUB */ + { CPUFUNC(op_5140_11), 20800 }, /* SUB */ + { CPUFUNC(op_5148_11), 20808 }, /* SUBA */ + { CPUFUNC(op_5150_11), 20816 }, /* SUB */ + { CPUFUNC(op_5158_11), 20824 }, /* SUB */ + { CPUFUNC(op_5160_11), 20832 }, /* SUB */ + { CPUFUNC(op_5168_11), 20840 }, /* SUB */ + { CPUFUNC(op_5170_11), 20848 }, /* SUB */ + { CPUFUNC(op_5178_11), 20856 }, /* SUB */ + { CPUFUNC(op_5179_11), 20857 }, /* SUB */ + { CPUFUNC(op_5180_11), 20864 }, /* SUB */ + { CPUFUNC(op_5188_11), 20872 }, /* SUBA */ + { CPUFUNC(op_5190_11), 20880 }, /* SUB */ + { CPUFUNC(op_5198_11), 20888 }, /* SUB */ + { CPUFUNC(op_51a0_11), 20896 }, /* SUB */ + { CPUFUNC(op_51a8_11), 20904 }, /* SUB */ + { CPUFUNC(op_51b0_11), 20912 }, /* SUB */ + { CPUFUNC(op_51b8_11), 20920 }, /* SUB */ + { CPUFUNC(op_51b9_11), 20921 }, /* SUB */ + { CPUFUNC(op_51c0_11), 20928 }, /* Scc */ + { CPUFUNC(op_51c8_11), 20936 }, /* DBcc */ + { CPUFUNC(op_51d0_11), 20944 }, /* Scc */ + { CPUFUNC(op_51d8_11), 20952 }, /* Scc */ + { CPUFUNC(op_51e0_11), 20960 }, /* Scc */ + { CPUFUNC(op_51e8_11), 20968 }, /* Scc */ + { CPUFUNC(op_51f0_11), 20976 }, /* Scc */ + { CPUFUNC(op_51f8_11), 20984 }, /* Scc */ + { CPUFUNC(op_51f9_11), 20985 }, /* Scc */ + { CPUFUNC(op_52c0_11), 21184 }, /* Scc */ + { CPUFUNC(op_52c8_11), 21192 }, /* DBcc */ + { CPUFUNC(op_52d0_11), 21200 }, /* Scc */ + { CPUFUNC(op_52d8_11), 21208 }, /* Scc */ + { CPUFUNC(op_52e0_11), 21216 }, /* Scc */ + { CPUFUNC(op_52e8_11), 21224 }, /* Scc */ + { CPUFUNC(op_52f0_11), 21232 }, /* Scc */ + { CPUFUNC(op_52f8_11), 21240 }, /* Scc */ + { CPUFUNC(op_52f9_11), 21241 }, /* Scc */ + { CPUFUNC(op_53c0_11), 21440 }, /* Scc */ + { CPUFUNC(op_53c8_11), 21448 }, /* DBcc */ + { CPUFUNC(op_53d0_11), 21456 }, /* Scc */ + { CPUFUNC(op_53d8_11), 21464 }, /* Scc */ + { CPUFUNC(op_53e0_11), 21472 }, /* Scc */ + { CPUFUNC(op_53e8_11), 21480 }, /* Scc */ + { CPUFUNC(op_53f0_11), 21488 }, /* Scc */ + { CPUFUNC(op_53f8_11), 21496 }, /* Scc */ + { CPUFUNC(op_53f9_11), 21497 }, /* Scc */ + { CPUFUNC(op_54c0_11), 21696 }, /* Scc */ + { CPUFUNC(op_54c8_11), 21704 }, /* DBcc */ + { CPUFUNC(op_54d0_11), 21712 }, /* Scc */ + { CPUFUNC(op_54d8_11), 21720 }, /* Scc */ + { CPUFUNC(op_54e0_11), 21728 }, /* Scc */ + { CPUFUNC(op_54e8_11), 21736 }, /* Scc */ + { CPUFUNC(op_54f0_11), 21744 }, /* Scc */ + { CPUFUNC(op_54f8_11), 21752 }, /* Scc */ + { CPUFUNC(op_54f9_11), 21753 }, /* Scc */ + { CPUFUNC(op_55c0_11), 21952 }, /* Scc */ + { CPUFUNC(op_55c8_11), 21960 }, /* DBcc */ + { CPUFUNC(op_55d0_11), 21968 }, /* Scc */ + { CPUFUNC(op_55d8_11), 21976 }, /* Scc */ + { CPUFUNC(op_55e0_11), 21984 }, /* Scc */ + { CPUFUNC(op_55e8_11), 21992 }, /* Scc */ + { CPUFUNC(op_55f0_11), 22000 }, /* Scc */ + { CPUFUNC(op_55f8_11), 22008 }, /* Scc */ + { CPUFUNC(op_55f9_11), 22009 }, /* Scc */ + { CPUFUNC(op_56c0_11), 22208 }, /* Scc */ + { CPUFUNC(op_56c8_11), 22216 }, /* DBcc */ + { CPUFUNC(op_56d0_11), 22224 }, /* Scc */ + { CPUFUNC(op_56d8_11), 22232 }, /* Scc */ + { CPUFUNC(op_56e0_11), 22240 }, /* Scc */ + { CPUFUNC(op_56e8_11), 22248 }, /* Scc */ + { CPUFUNC(op_56f0_11), 22256 }, /* Scc */ + { CPUFUNC(op_56f8_11), 22264 }, /* Scc */ + { CPUFUNC(op_56f9_11), 22265 }, /* Scc */ + { CPUFUNC(op_57c0_11), 22464 }, /* Scc */ + { CPUFUNC(op_57c8_11), 22472 }, /* DBcc */ + { CPUFUNC(op_57d0_11), 22480 }, /* Scc */ + { CPUFUNC(op_57d8_11), 22488 }, /* Scc */ + { CPUFUNC(op_57e0_11), 22496 }, /* Scc */ + { CPUFUNC(op_57e8_11), 22504 }, /* Scc */ + { CPUFUNC(op_57f0_11), 22512 }, /* Scc */ + { CPUFUNC(op_57f8_11), 22520 }, /* Scc */ + { CPUFUNC(op_57f9_11), 22521 }, /* Scc */ + { CPUFUNC(op_58c0_11), 22720 }, /* Scc */ + { CPUFUNC(op_58c8_11), 22728 }, /* DBcc */ + { CPUFUNC(op_58d0_11), 22736 }, /* Scc */ + { CPUFUNC(op_58d8_11), 22744 }, /* Scc */ + { CPUFUNC(op_58e0_11), 22752 }, /* Scc */ + { CPUFUNC(op_58e8_11), 22760 }, /* Scc */ + { CPUFUNC(op_58f0_11), 22768 }, /* Scc */ + { CPUFUNC(op_58f8_11), 22776 }, /* Scc */ + { CPUFUNC(op_58f9_11), 22777 }, /* Scc */ + { CPUFUNC(op_59c0_11), 22976 }, /* Scc */ + { CPUFUNC(op_59c8_11), 22984 }, /* DBcc */ + { CPUFUNC(op_59d0_11), 22992 }, /* Scc */ + { CPUFUNC(op_59d8_11), 23000 }, /* Scc */ + { CPUFUNC(op_59e0_11), 23008 }, /* Scc */ + { CPUFUNC(op_59e8_11), 23016 }, /* Scc */ + { CPUFUNC(op_59f0_11), 23024 }, /* Scc */ + { CPUFUNC(op_59f8_11), 23032 }, /* Scc */ + { CPUFUNC(op_59f9_11), 23033 }, /* Scc */ + { CPUFUNC(op_5ac0_11), 23232 }, /* Scc */ + { CPUFUNC(op_5ac8_11), 23240 }, /* DBcc */ + { CPUFUNC(op_5ad0_11), 23248 }, /* Scc */ + { CPUFUNC(op_5ad8_11), 23256 }, /* Scc */ + { CPUFUNC(op_5ae0_11), 23264 }, /* Scc */ + { CPUFUNC(op_5ae8_11), 23272 }, /* Scc */ + { CPUFUNC(op_5af0_11), 23280 }, /* Scc */ + { CPUFUNC(op_5af8_11), 23288 }, /* Scc */ + { CPUFUNC(op_5af9_11), 23289 }, /* Scc */ + { CPUFUNC(op_5bc0_11), 23488 }, /* Scc */ + { CPUFUNC(op_5bc8_11), 23496 }, /* DBcc */ + { CPUFUNC(op_5bd0_11), 23504 }, /* Scc */ + { CPUFUNC(op_5bd8_11), 23512 }, /* Scc */ + { CPUFUNC(op_5be0_11), 23520 }, /* Scc */ + { CPUFUNC(op_5be8_11), 23528 }, /* Scc */ + { CPUFUNC(op_5bf0_11), 23536 }, /* Scc */ + { CPUFUNC(op_5bf8_11), 23544 }, /* Scc */ + { CPUFUNC(op_5bf9_11), 23545 }, /* Scc */ + { CPUFUNC(op_5cc0_11), 23744 }, /* Scc */ + { CPUFUNC(op_5cc8_11), 23752 }, /* DBcc */ + { CPUFUNC(op_5cd0_11), 23760 }, /* Scc */ + { CPUFUNC(op_5cd8_11), 23768 }, /* Scc */ + { CPUFUNC(op_5ce0_11), 23776 }, /* Scc */ + { CPUFUNC(op_5ce8_11), 23784 }, /* Scc */ + { CPUFUNC(op_5cf0_11), 23792 }, /* Scc */ + { CPUFUNC(op_5cf8_11), 23800 }, /* Scc */ + { CPUFUNC(op_5cf9_11), 23801 }, /* Scc */ + { CPUFUNC(op_5dc0_11), 24000 }, /* Scc */ + { CPUFUNC(op_5dc8_11), 24008 }, /* DBcc */ + { CPUFUNC(op_5dd0_11), 24016 }, /* Scc */ + { CPUFUNC(op_5dd8_11), 24024 }, /* Scc */ + { CPUFUNC(op_5de0_11), 24032 }, /* Scc */ + { CPUFUNC(op_5de8_11), 24040 }, /* Scc */ + { CPUFUNC(op_5df0_11), 24048 }, /* Scc */ + { CPUFUNC(op_5df8_11), 24056 }, /* Scc */ + { CPUFUNC(op_5df9_11), 24057 }, /* Scc */ + { CPUFUNC(op_5ec0_11), 24256 }, /* Scc */ + { CPUFUNC(op_5ec8_11), 24264 }, /* DBcc */ + { CPUFUNC(op_5ed0_11), 24272 }, /* Scc */ + { CPUFUNC(op_5ed8_11), 24280 }, /* Scc */ + { CPUFUNC(op_5ee0_11), 24288 }, /* Scc */ + { CPUFUNC(op_5ee8_11), 24296 }, /* Scc */ + { CPUFUNC(op_5ef0_11), 24304 }, /* Scc */ + { CPUFUNC(op_5ef8_11), 24312 }, /* Scc */ + { CPUFUNC(op_5ef9_11), 24313 }, /* Scc */ + { CPUFUNC(op_5fc0_11), 24512 }, /* Scc */ + { CPUFUNC(op_5fc8_11), 24520 }, /* DBcc */ + { CPUFUNC(op_5fd0_11), 24528 }, /* Scc */ + { CPUFUNC(op_5fd8_11), 24536 }, /* Scc */ + { CPUFUNC(op_5fe0_11), 24544 }, /* Scc */ + { CPUFUNC(op_5fe8_11), 24552 }, /* Scc */ + { CPUFUNC(op_5ff0_11), 24560 }, /* Scc */ + { CPUFUNC(op_5ff8_11), 24568 }, /* Scc */ + { CPUFUNC(op_5ff9_11), 24569 }, /* Scc */ + { CPUFUNC(op_6000_11), 24576 }, /* Bcc */ + { CPUFUNC(op_6001_11), 24577 }, /* Bcc */ + { CPUFUNC(op_60ff_11), 24831 }, /* Bcc */ + { CPUFUNC(op_6100_11), 24832 }, /* BSR */ + { CPUFUNC(op_6101_11), 24833 }, /* BSR */ + { CPUFUNC(op_61ff_11), 25087 }, /* BSR */ + { CPUFUNC(op_6200_11), 25088 }, /* Bcc */ + { CPUFUNC(op_6201_11), 25089 }, /* Bcc */ + { CPUFUNC(op_62ff_11), 25343 }, /* Bcc */ + { CPUFUNC(op_6300_11), 25344 }, /* Bcc */ + { CPUFUNC(op_6301_11), 25345 }, /* Bcc */ + { CPUFUNC(op_63ff_11), 25599 }, /* Bcc */ + { CPUFUNC(op_6400_11), 25600 }, /* Bcc */ + { CPUFUNC(op_6401_11), 25601 }, /* Bcc */ + { CPUFUNC(op_64ff_11), 25855 }, /* Bcc */ + { CPUFUNC(op_6500_11), 25856 }, /* Bcc */ + { CPUFUNC(op_6501_11), 25857 }, /* Bcc */ + { CPUFUNC(op_65ff_11), 26111 }, /* Bcc */ + { CPUFUNC(op_6600_11), 26112 }, /* Bcc */ + { CPUFUNC(op_6601_11), 26113 }, /* Bcc */ + { CPUFUNC(op_66ff_11), 26367 }, /* Bcc */ + { CPUFUNC(op_6700_11), 26368 }, /* Bcc */ + { CPUFUNC(op_6701_11), 26369 }, /* Bcc */ + { CPUFUNC(op_67ff_11), 26623 }, /* Bcc */ + { CPUFUNC(op_6800_11), 26624 }, /* Bcc */ + { CPUFUNC(op_6801_11), 26625 }, /* Bcc */ + { CPUFUNC(op_68ff_11), 26879 }, /* Bcc */ + { CPUFUNC(op_6900_11), 26880 }, /* Bcc */ + { CPUFUNC(op_6901_11), 26881 }, /* Bcc */ + { CPUFUNC(op_69ff_11), 27135 }, /* Bcc */ + { CPUFUNC(op_6a00_11), 27136 }, /* Bcc */ + { CPUFUNC(op_6a01_11), 27137 }, /* Bcc */ + { CPUFUNC(op_6aff_11), 27391 }, /* Bcc */ + { CPUFUNC(op_6b00_11), 27392 }, /* Bcc */ + { CPUFUNC(op_6b01_11), 27393 }, /* Bcc */ + { CPUFUNC(op_6bff_11), 27647 }, /* Bcc */ + { CPUFUNC(op_6c00_11), 27648 }, /* Bcc */ + { CPUFUNC(op_6c01_11), 27649 }, /* Bcc */ + { CPUFUNC(op_6cff_11), 27903 }, /* Bcc */ + { CPUFUNC(op_6d00_11), 27904 }, /* Bcc */ + { CPUFUNC(op_6d01_11), 27905 }, /* Bcc */ + { CPUFUNC(op_6dff_11), 28159 }, /* Bcc */ + { CPUFUNC(op_6e00_11), 28160 }, /* Bcc */ + { CPUFUNC(op_6e01_11), 28161 }, /* Bcc */ + { CPUFUNC(op_6eff_11), 28415 }, /* Bcc */ + { CPUFUNC(op_6f00_11), 28416 }, /* Bcc */ + { CPUFUNC(op_6f01_11), 28417 }, /* Bcc */ + { CPUFUNC(op_6fff_11), 28671 }, /* Bcc */ + { CPUFUNC(op_7000_11), 28672 }, /* MOVE */ + { CPUFUNC(op_8000_11), 32768 }, /* OR */ + { CPUFUNC(op_8010_11), 32784 }, /* OR */ + { CPUFUNC(op_8018_11), 32792 }, /* OR */ + { CPUFUNC(op_8020_11), 32800 }, /* OR */ + { CPUFUNC(op_8028_11), 32808 }, /* OR */ + { CPUFUNC(op_8030_11), 32816 }, /* OR */ + { CPUFUNC(op_8038_11), 32824 }, /* OR */ + { CPUFUNC(op_8039_11), 32825 }, /* OR */ + { CPUFUNC(op_803a_11), 32826 }, /* OR */ + { CPUFUNC(op_803b_11), 32827 }, /* OR */ + { CPUFUNC(op_803c_11), 32828 }, /* OR */ + { CPUFUNC(op_8040_11), 32832 }, /* OR */ + { CPUFUNC(op_8050_11), 32848 }, /* OR */ + { CPUFUNC(op_8058_11), 32856 }, /* OR */ + { CPUFUNC(op_8060_11), 32864 }, /* OR */ + { CPUFUNC(op_8068_11), 32872 }, /* OR */ + { CPUFUNC(op_8070_11), 32880 }, /* OR */ + { CPUFUNC(op_8078_11), 32888 }, /* OR */ + { CPUFUNC(op_8079_11), 32889 }, /* OR */ + { CPUFUNC(op_807a_11), 32890 }, /* OR */ + { CPUFUNC(op_807b_11), 32891 }, /* OR */ + { CPUFUNC(op_807c_11), 32892 }, /* OR */ + { CPUFUNC(op_8080_11), 32896 }, /* OR */ + { CPUFUNC(op_8090_11), 32912 }, /* OR */ + { CPUFUNC(op_8098_11), 32920 }, /* OR */ + { CPUFUNC(op_80a0_11), 32928 }, /* OR */ + { CPUFUNC(op_80a8_11), 32936 }, /* OR */ + { CPUFUNC(op_80b0_11), 32944 }, /* OR */ + { CPUFUNC(op_80b8_11), 32952 }, /* OR */ + { CPUFUNC(op_80b9_11), 32953 }, /* OR */ + { CPUFUNC(op_80ba_11), 32954 }, /* OR */ + { CPUFUNC(op_80bb_11), 32955 }, /* OR */ + { CPUFUNC(op_80bc_11), 32956 }, /* OR */ + { CPUFUNC(op_80c0_11), 32960 }, /* DIVU */ + { CPUFUNC(op_80d0_11), 32976 }, /* DIVU */ + { CPUFUNC(op_80d8_11), 32984 }, /* DIVU */ + { CPUFUNC(op_80e0_11), 32992 }, /* DIVU */ + { CPUFUNC(op_80e8_11), 33000 }, /* DIVU */ + { CPUFUNC(op_80f0_11), 33008 }, /* DIVU */ + { CPUFUNC(op_80f8_11), 33016 }, /* DIVU */ + { CPUFUNC(op_80f9_11), 33017 }, /* DIVU */ + { CPUFUNC(op_80fa_11), 33018 }, /* DIVU */ + { CPUFUNC(op_80fb_11), 33019 }, /* DIVU */ + { CPUFUNC(op_80fc_11), 33020 }, /* DIVU */ + { CPUFUNC(op_8100_11), 33024 }, /* SBCD */ + { CPUFUNC(op_8108_11), 33032 }, /* SBCD */ + { CPUFUNC(op_8110_11), 33040 }, /* OR */ + { CPUFUNC(op_8118_11), 33048 }, /* OR */ + { CPUFUNC(op_8120_11), 33056 }, /* OR */ + { CPUFUNC(op_8128_11), 33064 }, /* OR */ + { CPUFUNC(op_8130_11), 33072 }, /* OR */ + { CPUFUNC(op_8138_11), 33080 }, /* OR */ + { CPUFUNC(op_8139_11), 33081 }, /* OR */ + { CPUFUNC(op_8150_11), 33104 }, /* OR */ + { CPUFUNC(op_8158_11), 33112 }, /* OR */ + { CPUFUNC(op_8160_11), 33120 }, /* OR */ + { CPUFUNC(op_8168_11), 33128 }, /* OR */ + { CPUFUNC(op_8170_11), 33136 }, /* OR */ + { CPUFUNC(op_8178_11), 33144 }, /* OR */ + { CPUFUNC(op_8179_11), 33145 }, /* OR */ + { CPUFUNC(op_8190_11), 33168 }, /* OR */ + { CPUFUNC(op_8198_11), 33176 }, /* OR */ + { CPUFUNC(op_81a0_11), 33184 }, /* OR */ + { CPUFUNC(op_81a8_11), 33192 }, /* OR */ + { CPUFUNC(op_81b0_11), 33200 }, /* OR */ + { CPUFUNC(op_81b8_11), 33208 }, /* OR */ + { CPUFUNC(op_81b9_11), 33209 }, /* OR */ + { CPUFUNC(op_81c0_11), 33216 }, /* DIVS */ + { CPUFUNC(op_81d0_11), 33232 }, /* DIVS */ + { CPUFUNC(op_81d8_11), 33240 }, /* DIVS */ + { CPUFUNC(op_81e0_11), 33248 }, /* DIVS */ + { CPUFUNC(op_81e8_11), 33256 }, /* DIVS */ + { CPUFUNC(op_81f0_11), 33264 }, /* DIVS */ + { CPUFUNC(op_81f8_11), 33272 }, /* DIVS */ + { CPUFUNC(op_81f9_11), 33273 }, /* DIVS */ + { CPUFUNC(op_81fa_11), 33274 }, /* DIVS */ + { CPUFUNC(op_81fb_11), 33275 }, /* DIVS */ + { CPUFUNC(op_81fc_11), 33276 }, /* DIVS */ + { CPUFUNC(op_9000_11), 36864 }, /* SUB */ + { CPUFUNC(op_9010_11), 36880 }, /* SUB */ + { CPUFUNC(op_9018_11), 36888 }, /* SUB */ + { CPUFUNC(op_9020_11), 36896 }, /* SUB */ + { CPUFUNC(op_9028_11), 36904 }, /* SUB */ + { CPUFUNC(op_9030_11), 36912 }, /* SUB */ + { CPUFUNC(op_9038_11), 36920 }, /* SUB */ + { CPUFUNC(op_9039_11), 36921 }, /* SUB */ + { CPUFUNC(op_903a_11), 36922 }, /* SUB */ + { CPUFUNC(op_903b_11), 36923 }, /* SUB */ + { CPUFUNC(op_903c_11), 36924 }, /* SUB */ + { CPUFUNC(op_9040_11), 36928 }, /* SUB */ + { CPUFUNC(op_9048_11), 36936 }, /* SUB */ + { CPUFUNC(op_9050_11), 36944 }, /* SUB */ + { CPUFUNC(op_9058_11), 36952 }, /* SUB */ + { CPUFUNC(op_9060_11), 36960 }, /* SUB */ + { CPUFUNC(op_9068_11), 36968 }, /* SUB */ + { CPUFUNC(op_9070_11), 36976 }, /* SUB */ + { CPUFUNC(op_9078_11), 36984 }, /* SUB */ + { CPUFUNC(op_9079_11), 36985 }, /* SUB */ + { CPUFUNC(op_907a_11), 36986 }, /* SUB */ + { CPUFUNC(op_907b_11), 36987 }, /* SUB */ + { CPUFUNC(op_907c_11), 36988 }, /* SUB */ + { CPUFUNC(op_9080_11), 36992 }, /* SUB */ + { CPUFUNC(op_9088_11), 37000 }, /* SUB */ + { CPUFUNC(op_9090_11), 37008 }, /* SUB */ + { CPUFUNC(op_9098_11), 37016 }, /* SUB */ + { CPUFUNC(op_90a0_11), 37024 }, /* SUB */ + { CPUFUNC(op_90a8_11), 37032 }, /* SUB */ + { CPUFUNC(op_90b0_11), 37040 }, /* SUB */ + { CPUFUNC(op_90b8_11), 37048 }, /* SUB */ + { CPUFUNC(op_90b9_11), 37049 }, /* SUB */ + { CPUFUNC(op_90ba_11), 37050 }, /* SUB */ + { CPUFUNC(op_90bb_11), 37051 }, /* SUB */ + { CPUFUNC(op_90bc_11), 37052 }, /* SUB */ + { CPUFUNC(op_90c0_11), 37056 }, /* SUBA */ + { CPUFUNC(op_90c8_11), 37064 }, /* SUBA */ + { CPUFUNC(op_90d0_11), 37072 }, /* SUBA */ + { CPUFUNC(op_90d8_11), 37080 }, /* SUBA */ + { CPUFUNC(op_90e0_11), 37088 }, /* SUBA */ + { CPUFUNC(op_90e8_11), 37096 }, /* SUBA */ + { CPUFUNC(op_90f0_11), 37104 }, /* SUBA */ + { CPUFUNC(op_90f8_11), 37112 }, /* SUBA */ + { CPUFUNC(op_90f9_11), 37113 }, /* SUBA */ + { CPUFUNC(op_90fa_11), 37114 }, /* SUBA */ + { CPUFUNC(op_90fb_11), 37115 }, /* SUBA */ + { CPUFUNC(op_90fc_11), 37116 }, /* SUBA */ + { CPUFUNC(op_9100_11), 37120 }, /* SUBX */ + { CPUFUNC(op_9108_11), 37128 }, /* SUBX */ + { CPUFUNC(op_9110_11), 37136 }, /* SUB */ + { CPUFUNC(op_9118_11), 37144 }, /* SUB */ + { CPUFUNC(op_9120_11), 37152 }, /* SUB */ + { CPUFUNC(op_9128_11), 37160 }, /* SUB */ + { CPUFUNC(op_9130_11), 37168 }, /* SUB */ + { CPUFUNC(op_9138_11), 37176 }, /* SUB */ + { CPUFUNC(op_9139_11), 37177 }, /* SUB */ + { CPUFUNC(op_9140_11), 37184 }, /* SUBX */ + { CPUFUNC(op_9148_11), 37192 }, /* SUBX */ + { CPUFUNC(op_9150_11), 37200 }, /* SUB */ + { CPUFUNC(op_9158_11), 37208 }, /* SUB */ + { CPUFUNC(op_9160_11), 37216 }, /* SUB */ + { CPUFUNC(op_9168_11), 37224 }, /* SUB */ + { CPUFUNC(op_9170_11), 37232 }, /* SUB */ + { CPUFUNC(op_9178_11), 37240 }, /* SUB */ + { CPUFUNC(op_9179_11), 37241 }, /* SUB */ + { CPUFUNC(op_9180_11), 37248 }, /* SUBX */ + { CPUFUNC(op_9188_11), 37256 }, /* SUBX */ + { CPUFUNC(op_9190_11), 37264 }, /* SUB */ + { CPUFUNC(op_9198_11), 37272 }, /* SUB */ + { CPUFUNC(op_91a0_11), 37280 }, /* SUB */ + { CPUFUNC(op_91a8_11), 37288 }, /* SUB */ + { CPUFUNC(op_91b0_11), 37296 }, /* SUB */ + { CPUFUNC(op_91b8_11), 37304 }, /* SUB */ + { CPUFUNC(op_91b9_11), 37305 }, /* SUB */ + { CPUFUNC(op_91c0_11), 37312 }, /* SUBA */ + { CPUFUNC(op_91c8_11), 37320 }, /* SUBA */ + { CPUFUNC(op_91d0_11), 37328 }, /* SUBA */ + { CPUFUNC(op_91d8_11), 37336 }, /* SUBA */ + { CPUFUNC(op_91e0_11), 37344 }, /* SUBA */ + { CPUFUNC(op_91e8_11), 37352 }, /* SUBA */ + { CPUFUNC(op_91f0_11), 37360 }, /* SUBA */ + { CPUFUNC(op_91f8_11), 37368 }, /* SUBA */ + { CPUFUNC(op_91f9_11), 37369 }, /* SUBA */ + { CPUFUNC(op_91fa_11), 37370 }, /* SUBA */ + { CPUFUNC(op_91fb_11), 37371 }, /* SUBA */ + { CPUFUNC(op_91fc_11), 37372 }, /* SUBA */ + { CPUFUNC(op_b000_11), 45056 }, /* CMP */ + { CPUFUNC(op_b010_11), 45072 }, /* CMP */ + { CPUFUNC(op_b018_11), 45080 }, /* CMP */ + { CPUFUNC(op_b020_11), 45088 }, /* CMP */ + { CPUFUNC(op_b028_11), 45096 }, /* CMP */ + { CPUFUNC(op_b030_11), 45104 }, /* CMP */ + { CPUFUNC(op_b038_11), 45112 }, /* CMP */ + { CPUFUNC(op_b039_11), 45113 }, /* CMP */ + { CPUFUNC(op_b03a_11), 45114 }, /* CMP */ + { CPUFUNC(op_b03b_11), 45115 }, /* CMP */ + { CPUFUNC(op_b03c_11), 45116 }, /* CMP */ + { CPUFUNC(op_b040_11), 45120 }, /* CMP */ + { CPUFUNC(op_b048_11), 45128 }, /* CMP */ + { CPUFUNC(op_b050_11), 45136 }, /* CMP */ + { CPUFUNC(op_b058_11), 45144 }, /* CMP */ + { CPUFUNC(op_b060_11), 45152 }, /* CMP */ + { CPUFUNC(op_b068_11), 45160 }, /* CMP */ + { CPUFUNC(op_b070_11), 45168 }, /* CMP */ + { CPUFUNC(op_b078_11), 45176 }, /* CMP */ + { CPUFUNC(op_b079_11), 45177 }, /* CMP */ + { CPUFUNC(op_b07a_11), 45178 }, /* CMP */ + { CPUFUNC(op_b07b_11), 45179 }, /* CMP */ + { CPUFUNC(op_b07c_11), 45180 }, /* CMP */ + { CPUFUNC(op_b080_11), 45184 }, /* CMP */ + { CPUFUNC(op_b088_11), 45192 }, /* CMP */ + { CPUFUNC(op_b090_11), 45200 }, /* CMP */ + { CPUFUNC(op_b098_11), 45208 }, /* CMP */ + { CPUFUNC(op_b0a0_11), 45216 }, /* CMP */ + { CPUFUNC(op_b0a8_11), 45224 }, /* CMP */ + { CPUFUNC(op_b0b0_11), 45232 }, /* CMP */ + { CPUFUNC(op_b0b8_11), 45240 }, /* CMP */ + { CPUFUNC(op_b0b9_11), 45241 }, /* CMP */ + { CPUFUNC(op_b0ba_11), 45242 }, /* CMP */ + { CPUFUNC(op_b0bb_11), 45243 }, /* CMP */ + { CPUFUNC(op_b0bc_11), 45244 }, /* CMP */ + { CPUFUNC(op_b0c0_11), 45248 }, /* CMPA */ + { CPUFUNC(op_b0c8_11), 45256 }, /* CMPA */ + { CPUFUNC(op_b0d0_11), 45264 }, /* CMPA */ + { CPUFUNC(op_b0d8_11), 45272 }, /* CMPA */ + { CPUFUNC(op_b0e0_11), 45280 }, /* CMPA */ + { CPUFUNC(op_b0e8_11), 45288 }, /* CMPA */ + { CPUFUNC(op_b0f0_11), 45296 }, /* CMPA */ + { CPUFUNC(op_b0f8_11), 45304 }, /* CMPA */ + { CPUFUNC(op_b0f9_11), 45305 }, /* CMPA */ + { CPUFUNC(op_b0fa_11), 45306 }, /* CMPA */ + { CPUFUNC(op_b0fb_11), 45307 }, /* CMPA */ + { CPUFUNC(op_b0fc_11), 45308 }, /* CMPA */ + { CPUFUNC(op_b100_11), 45312 }, /* EOR */ + { CPUFUNC(op_b108_11), 45320 }, /* CMPM */ + { CPUFUNC(op_b110_11), 45328 }, /* EOR */ + { CPUFUNC(op_b118_11), 45336 }, /* EOR */ + { CPUFUNC(op_b120_11), 45344 }, /* EOR */ + { CPUFUNC(op_b128_11), 45352 }, /* EOR */ + { CPUFUNC(op_b130_11), 45360 }, /* EOR */ + { CPUFUNC(op_b138_11), 45368 }, /* EOR */ + { CPUFUNC(op_b139_11), 45369 }, /* EOR */ + { CPUFUNC(op_b140_11), 45376 }, /* EOR */ + { CPUFUNC(op_b148_11), 45384 }, /* CMPM */ + { CPUFUNC(op_b150_11), 45392 }, /* EOR */ + { CPUFUNC(op_b158_11), 45400 }, /* EOR */ + { CPUFUNC(op_b160_11), 45408 }, /* EOR */ + { CPUFUNC(op_b168_11), 45416 }, /* EOR */ + { CPUFUNC(op_b170_11), 45424 }, /* EOR */ + { CPUFUNC(op_b178_11), 45432 }, /* EOR */ + { CPUFUNC(op_b179_11), 45433 }, /* EOR */ + { CPUFUNC(op_b180_11), 45440 }, /* EOR */ + { CPUFUNC(op_b188_11), 45448 }, /* CMPM */ + { CPUFUNC(op_b190_11), 45456 }, /* EOR */ + { CPUFUNC(op_b198_11), 45464 }, /* EOR */ + { CPUFUNC(op_b1a0_11), 45472 }, /* EOR */ + { CPUFUNC(op_b1a8_11), 45480 }, /* EOR */ + { CPUFUNC(op_b1b0_11), 45488 }, /* EOR */ + { CPUFUNC(op_b1b8_11), 45496 }, /* EOR */ + { CPUFUNC(op_b1b9_11), 45497 }, /* EOR */ + { CPUFUNC(op_b1c0_11), 45504 }, /* CMPA */ + { CPUFUNC(op_b1c8_11), 45512 }, /* CMPA */ + { CPUFUNC(op_b1d0_11), 45520 }, /* CMPA */ + { CPUFUNC(op_b1d8_11), 45528 }, /* CMPA */ + { CPUFUNC(op_b1e0_11), 45536 }, /* CMPA */ + { CPUFUNC(op_b1e8_11), 45544 }, /* CMPA */ + { CPUFUNC(op_b1f0_11), 45552 }, /* CMPA */ + { CPUFUNC(op_b1f8_11), 45560 }, /* CMPA */ + { CPUFUNC(op_b1f9_11), 45561 }, /* CMPA */ + { CPUFUNC(op_b1fa_11), 45562 }, /* CMPA */ + { CPUFUNC(op_b1fb_11), 45563 }, /* CMPA */ + { CPUFUNC(op_b1fc_11), 45564 }, /* CMPA */ + { CPUFUNC(op_c000_11), 49152 }, /* AND */ + { CPUFUNC(op_c010_11), 49168 }, /* AND */ + { CPUFUNC(op_c018_11), 49176 }, /* AND */ + { CPUFUNC(op_c020_11), 49184 }, /* AND */ + { CPUFUNC(op_c028_11), 49192 }, /* AND */ + { CPUFUNC(op_c030_11), 49200 }, /* AND */ + { CPUFUNC(op_c038_11), 49208 }, /* AND */ + { CPUFUNC(op_c039_11), 49209 }, /* AND */ + { CPUFUNC(op_c03a_11), 49210 }, /* AND */ + { CPUFUNC(op_c03b_11), 49211 }, /* AND */ + { CPUFUNC(op_c03c_11), 49212 }, /* AND */ + { CPUFUNC(op_c040_11), 49216 }, /* AND */ + { CPUFUNC(op_c050_11), 49232 }, /* AND */ + { CPUFUNC(op_c058_11), 49240 }, /* AND */ + { CPUFUNC(op_c060_11), 49248 }, /* AND */ + { CPUFUNC(op_c068_11), 49256 }, /* AND */ + { CPUFUNC(op_c070_11), 49264 }, /* AND */ + { CPUFUNC(op_c078_11), 49272 }, /* AND */ + { CPUFUNC(op_c079_11), 49273 }, /* AND */ + { CPUFUNC(op_c07a_11), 49274 }, /* AND */ + { CPUFUNC(op_c07b_11), 49275 }, /* AND */ + { CPUFUNC(op_c07c_11), 49276 }, /* AND */ + { CPUFUNC(op_c080_11), 49280 }, /* AND */ + { CPUFUNC(op_c090_11), 49296 }, /* AND */ + { CPUFUNC(op_c098_11), 49304 }, /* AND */ + { CPUFUNC(op_c0a0_11), 49312 }, /* AND */ + { CPUFUNC(op_c0a8_11), 49320 }, /* AND */ + { CPUFUNC(op_c0b0_11), 49328 }, /* AND */ + { CPUFUNC(op_c0b8_11), 49336 }, /* AND */ + { CPUFUNC(op_c0b9_11), 49337 }, /* AND */ + { CPUFUNC(op_c0ba_11), 49338 }, /* AND */ + { CPUFUNC(op_c0bb_11), 49339 }, /* AND */ + { CPUFUNC(op_c0bc_11), 49340 }, /* AND */ + { CPUFUNC(op_c0c0_11), 49344 }, /* MULU */ + { CPUFUNC(op_c0d0_11), 49360 }, /* MULU */ + { CPUFUNC(op_c0d8_11), 49368 }, /* MULU */ + { CPUFUNC(op_c0e0_11), 49376 }, /* MULU */ + { CPUFUNC(op_c0e8_11), 49384 }, /* MULU */ + { CPUFUNC(op_c0f0_11), 49392 }, /* MULU */ + { CPUFUNC(op_c0f8_11), 49400 }, /* MULU */ + { CPUFUNC(op_c0f9_11), 49401 }, /* MULU */ + { CPUFUNC(op_c0fa_11), 49402 }, /* MULU */ + { CPUFUNC(op_c0fb_11), 49403 }, /* MULU */ + { CPUFUNC(op_c0fc_11), 49404 }, /* MULU */ + { CPUFUNC(op_c100_11), 49408 }, /* ABCD */ + { CPUFUNC(op_c108_11), 49416 }, /* ABCD */ + { CPUFUNC(op_c110_11), 49424 }, /* AND */ + { CPUFUNC(op_c118_11), 49432 }, /* AND */ + { CPUFUNC(op_c120_11), 49440 }, /* AND */ + { CPUFUNC(op_c128_11), 49448 }, /* AND */ + { CPUFUNC(op_c130_11), 49456 }, /* AND */ + { CPUFUNC(op_c138_11), 49464 }, /* AND */ + { CPUFUNC(op_c139_11), 49465 }, /* AND */ + { CPUFUNC(op_c140_11), 49472 }, /* EXG */ + { CPUFUNC(op_c148_11), 49480 }, /* EXG */ + { CPUFUNC(op_c150_11), 49488 }, /* AND */ + { CPUFUNC(op_c158_11), 49496 }, /* AND */ + { CPUFUNC(op_c160_11), 49504 }, /* AND */ + { CPUFUNC(op_c168_11), 49512 }, /* AND */ + { CPUFUNC(op_c170_11), 49520 }, /* AND */ + { CPUFUNC(op_c178_11), 49528 }, /* AND */ + { CPUFUNC(op_c179_11), 49529 }, /* AND */ + { CPUFUNC(op_c188_11), 49544 }, /* EXG */ + { CPUFUNC(op_c190_11), 49552 }, /* AND */ + { CPUFUNC(op_c198_11), 49560 }, /* AND */ + { CPUFUNC(op_c1a0_11), 49568 }, /* AND */ + { CPUFUNC(op_c1a8_11), 49576 }, /* AND */ + { CPUFUNC(op_c1b0_11), 49584 }, /* AND */ + { CPUFUNC(op_c1b8_11), 49592 }, /* AND */ + { CPUFUNC(op_c1b9_11), 49593 }, /* AND */ + { CPUFUNC(op_c1c0_11), 49600 }, /* MULS */ + { CPUFUNC(op_c1d0_11), 49616 }, /* MULS */ + { CPUFUNC(op_c1d8_11), 49624 }, /* MULS */ + { CPUFUNC(op_c1e0_11), 49632 }, /* MULS */ + { CPUFUNC(op_c1e8_11), 49640 }, /* MULS */ + { CPUFUNC(op_c1f0_11), 49648 }, /* MULS */ + { CPUFUNC(op_c1f8_11), 49656 }, /* MULS */ + { CPUFUNC(op_c1f9_11), 49657 }, /* MULS */ + { CPUFUNC(op_c1fa_11), 49658 }, /* MULS */ + { CPUFUNC(op_c1fb_11), 49659 }, /* MULS */ + { CPUFUNC(op_c1fc_11), 49660 }, /* MULS */ + { CPUFUNC(op_d000_11), 53248 }, /* ADD */ + { CPUFUNC(op_d010_11), 53264 }, /* ADD */ + { CPUFUNC(op_d018_11), 53272 }, /* ADD */ + { CPUFUNC(op_d020_11), 53280 }, /* ADD */ + { CPUFUNC(op_d028_11), 53288 }, /* ADD */ + { CPUFUNC(op_d030_11), 53296 }, /* ADD */ + { CPUFUNC(op_d038_11), 53304 }, /* ADD */ + { CPUFUNC(op_d039_11), 53305 }, /* ADD */ + { CPUFUNC(op_d03a_11), 53306 }, /* ADD */ + { CPUFUNC(op_d03b_11), 53307 }, /* ADD */ + { CPUFUNC(op_d03c_11), 53308 }, /* ADD */ + { CPUFUNC(op_d040_11), 53312 }, /* ADD */ + { CPUFUNC(op_d048_11), 53320 }, /* ADD */ + { CPUFUNC(op_d050_11), 53328 }, /* ADD */ + { CPUFUNC(op_d058_11), 53336 }, /* ADD */ + { CPUFUNC(op_d060_11), 53344 }, /* ADD */ + { CPUFUNC(op_d068_11), 53352 }, /* ADD */ + { CPUFUNC(op_d070_11), 53360 }, /* ADD */ + { CPUFUNC(op_d078_11), 53368 }, /* ADD */ + { CPUFUNC(op_d079_11), 53369 }, /* ADD */ + { CPUFUNC(op_d07a_11), 53370 }, /* ADD */ + { CPUFUNC(op_d07b_11), 53371 }, /* ADD */ + { CPUFUNC(op_d07c_11), 53372 }, /* ADD */ + { CPUFUNC(op_d080_11), 53376 }, /* ADD */ + { CPUFUNC(op_d088_11), 53384 }, /* ADD */ + { CPUFUNC(op_d090_11), 53392 }, /* ADD */ + { CPUFUNC(op_d098_11), 53400 }, /* ADD */ + { CPUFUNC(op_d0a0_11), 53408 }, /* ADD */ + { CPUFUNC(op_d0a8_11), 53416 }, /* ADD */ + { CPUFUNC(op_d0b0_11), 53424 }, /* ADD */ + { CPUFUNC(op_d0b8_11), 53432 }, /* ADD */ + { CPUFUNC(op_d0b9_11), 53433 }, /* ADD */ + { CPUFUNC(op_d0ba_11), 53434 }, /* ADD */ + { CPUFUNC(op_d0bb_11), 53435 }, /* ADD */ + { CPUFUNC(op_d0bc_11), 53436 }, /* ADD */ + { CPUFUNC(op_d0c0_11), 53440 }, /* ADDA */ + { CPUFUNC(op_d0c8_11), 53448 }, /* ADDA */ + { CPUFUNC(op_d0d0_11), 53456 }, /* ADDA */ + { CPUFUNC(op_d0d8_11), 53464 }, /* ADDA */ + { CPUFUNC(op_d0e0_11), 53472 }, /* ADDA */ + { CPUFUNC(op_d0e8_11), 53480 }, /* ADDA */ + { CPUFUNC(op_d0f0_11), 53488 }, /* ADDA */ + { CPUFUNC(op_d0f8_11), 53496 }, /* ADDA */ + { CPUFUNC(op_d0f9_11), 53497 }, /* ADDA */ + { CPUFUNC(op_d0fa_11), 53498 }, /* ADDA */ + { CPUFUNC(op_d0fb_11), 53499 }, /* ADDA */ + { CPUFUNC(op_d0fc_11), 53500 }, /* ADDA */ + { CPUFUNC(op_d100_11), 53504 }, /* ADDX */ + { CPUFUNC(op_d108_11), 53512 }, /* ADDX */ + { CPUFUNC(op_d110_11), 53520 }, /* ADD */ + { CPUFUNC(op_d118_11), 53528 }, /* ADD */ + { CPUFUNC(op_d120_11), 53536 }, /* ADD */ + { CPUFUNC(op_d128_11), 53544 }, /* ADD */ + { CPUFUNC(op_d130_11), 53552 }, /* ADD */ + { CPUFUNC(op_d138_11), 53560 }, /* ADD */ + { CPUFUNC(op_d139_11), 53561 }, /* ADD */ + { CPUFUNC(op_d140_11), 53568 }, /* ADDX */ + { CPUFUNC(op_d148_11), 53576 }, /* ADDX */ + { CPUFUNC(op_d150_11), 53584 }, /* ADD */ + { CPUFUNC(op_d158_11), 53592 }, /* ADD */ + { CPUFUNC(op_d160_11), 53600 }, /* ADD */ + { CPUFUNC(op_d168_11), 53608 }, /* ADD */ + { CPUFUNC(op_d170_11), 53616 }, /* ADD */ + { CPUFUNC(op_d178_11), 53624 }, /* ADD */ + { CPUFUNC(op_d179_11), 53625 }, /* ADD */ + { CPUFUNC(op_d180_11), 53632 }, /* ADDX */ + { CPUFUNC(op_d188_11), 53640 }, /* ADDX */ + { CPUFUNC(op_d190_11), 53648 }, /* ADD */ + { CPUFUNC(op_d198_11), 53656 }, /* ADD */ + { CPUFUNC(op_d1a0_11), 53664 }, /* ADD */ + { CPUFUNC(op_d1a8_11), 53672 }, /* ADD */ + { CPUFUNC(op_d1b0_11), 53680 }, /* ADD */ + { CPUFUNC(op_d1b8_11), 53688 }, /* ADD */ + { CPUFUNC(op_d1b9_11), 53689 }, /* ADD */ + { CPUFUNC(op_d1c0_11), 53696 }, /* ADDA */ + { CPUFUNC(op_d1c8_11), 53704 }, /* ADDA */ + { CPUFUNC(op_d1d0_11), 53712 }, /* ADDA */ + { CPUFUNC(op_d1d8_11), 53720 }, /* ADDA */ + { CPUFUNC(op_d1e0_11), 53728 }, /* ADDA */ + { CPUFUNC(op_d1e8_11), 53736 }, /* ADDA */ + { CPUFUNC(op_d1f0_11), 53744 }, /* ADDA */ + { CPUFUNC(op_d1f8_11), 53752 }, /* ADDA */ + { CPUFUNC(op_d1f9_11), 53753 }, /* ADDA */ + { CPUFUNC(op_d1fa_11), 53754 }, /* ADDA */ + { CPUFUNC(op_d1fb_11), 53755 }, /* ADDA */ + { CPUFUNC(op_d1fc_11), 53756 }, /* ADDA */ + { CPUFUNC(op_e000_11), 57344 }, /* ASR */ + { CPUFUNC(op_e008_11), 57352 }, /* LSR */ + { CPUFUNC(op_e010_11), 57360 }, /* ROXR */ + { CPUFUNC(op_e018_11), 57368 }, /* ROR */ + { CPUFUNC(op_e020_11), 57376 }, /* ASR */ + { CPUFUNC(op_e028_11), 57384 }, /* LSR */ + { CPUFUNC(op_e030_11), 57392 }, /* ROXR */ + { CPUFUNC(op_e038_11), 57400 }, /* ROR */ + { CPUFUNC(op_e040_11), 57408 }, /* ASR */ + { CPUFUNC(op_e048_11), 57416 }, /* LSR */ + { CPUFUNC(op_e050_11), 57424 }, /* ROXR */ + { CPUFUNC(op_e058_11), 57432 }, /* ROR */ + { CPUFUNC(op_e060_11), 57440 }, /* ASR */ + { CPUFUNC(op_e068_11), 57448 }, /* LSR */ + { CPUFUNC(op_e070_11), 57456 }, /* ROXR */ + { CPUFUNC(op_e078_11), 57464 }, /* ROR */ + { CPUFUNC(op_e080_11), 57472 }, /* ASR */ + { CPUFUNC(op_e088_11), 57480 }, /* LSR */ + { CPUFUNC(op_e090_11), 57488 }, /* ROXR */ + { CPUFUNC(op_e098_11), 57496 }, /* ROR */ + { CPUFUNC(op_e0a0_11), 57504 }, /* ASR */ + { CPUFUNC(op_e0a8_11), 57512 }, /* LSR */ + { CPUFUNC(op_e0b0_11), 57520 }, /* ROXR */ + { CPUFUNC(op_e0b8_11), 57528 }, /* ROR */ + { CPUFUNC(op_e0d0_11), 57552 }, /* ASRW */ + { CPUFUNC(op_e0d8_11), 57560 }, /* ASRW */ + { CPUFUNC(op_e0e0_11), 57568 }, /* ASRW */ + { CPUFUNC(op_e0e8_11), 57576 }, /* ASRW */ + { CPUFUNC(op_e0f0_11), 57584 }, /* ASRW */ + { CPUFUNC(op_e0f8_11), 57592 }, /* ASRW */ + { CPUFUNC(op_e0f9_11), 57593 }, /* ASRW */ + { CPUFUNC(op_e100_11), 57600 }, /* ASL */ + { CPUFUNC(op_e108_11), 57608 }, /* LSL */ + { CPUFUNC(op_e110_11), 57616 }, /* ROXL */ + { CPUFUNC(op_e118_11), 57624 }, /* ROL */ + { CPUFUNC(op_e120_11), 57632 }, /* ASL */ + { CPUFUNC(op_e128_11), 57640 }, /* LSL */ + { CPUFUNC(op_e130_11), 57648 }, /* ROXL */ + { CPUFUNC(op_e138_11), 57656 }, /* ROL */ + { CPUFUNC(op_e140_11), 57664 }, /* ASL */ + { CPUFUNC(op_e148_11), 57672 }, /* LSL */ + { CPUFUNC(op_e150_11), 57680 }, /* ROXL */ + { CPUFUNC(op_e158_11), 57688 }, /* ROL */ + { CPUFUNC(op_e160_11), 57696 }, /* ASL */ + { CPUFUNC(op_e168_11), 57704 }, /* LSL */ + { CPUFUNC(op_e170_11), 57712 }, /* ROXL */ + { CPUFUNC(op_e178_11), 57720 }, /* ROL */ + { CPUFUNC(op_e180_11), 57728 }, /* ASL */ + { CPUFUNC(op_e188_11), 57736 }, /* LSL */ + { CPUFUNC(op_e190_11), 57744 }, /* ROXL */ + { CPUFUNC(op_e198_11), 57752 }, /* ROL */ + { CPUFUNC(op_e1a0_11), 57760 }, /* ASL */ + { CPUFUNC(op_e1a8_11), 57768 }, /* LSL */ + { CPUFUNC(op_e1b0_11), 57776 }, /* ROXL */ + { CPUFUNC(op_e1b8_11), 57784 }, /* ROL */ + { CPUFUNC(op_e1d0_11), 57808 }, /* ASLW */ + { CPUFUNC(op_e1d8_11), 57816 }, /* ASLW */ + { CPUFUNC(op_e1e0_11), 57824 }, /* ASLW */ + { CPUFUNC(op_e1e8_11), 57832 }, /* ASLW */ + { CPUFUNC(op_e1f0_11), 57840 }, /* ASLW */ + { CPUFUNC(op_e1f8_11), 57848 }, /* ASLW */ + { CPUFUNC(op_e1f9_11), 57849 }, /* ASLW */ + { CPUFUNC(op_e2d0_11), 58064 }, /* LSRW */ + { CPUFUNC(op_e2d8_11), 58072 }, /* LSRW */ + { CPUFUNC(op_e2e0_11), 58080 }, /* LSRW */ + { CPUFUNC(op_e2e8_11), 58088 }, /* LSRW */ + { CPUFUNC(op_e2f0_11), 58096 }, /* LSRW */ + { CPUFUNC(op_e2f8_11), 58104 }, /* LSRW */ + { CPUFUNC(op_e2f9_11), 58105 }, /* LSRW */ + { CPUFUNC(op_e3d0_11), 58320 }, /* LSLW */ + { CPUFUNC(op_e3d8_11), 58328 }, /* LSLW */ + { CPUFUNC(op_e3e0_11), 58336 }, /* LSLW */ + { CPUFUNC(op_e3e8_11), 58344 }, /* LSLW */ + { CPUFUNC(op_e3f0_11), 58352 }, /* LSLW */ + { CPUFUNC(op_e3f8_11), 58360 }, /* LSLW */ + { CPUFUNC(op_e3f9_11), 58361 }, /* LSLW */ + { CPUFUNC(op_e4d0_11), 58576 }, /* ROXRW */ + { CPUFUNC(op_e4d8_11), 58584 }, /* ROXRW */ + { CPUFUNC(op_e4e0_11), 58592 }, /* ROXRW */ + { CPUFUNC(op_e4e8_11), 58600 }, /* ROXRW */ + { CPUFUNC(op_e4f0_11), 58608 }, /* ROXRW */ + { CPUFUNC(op_e4f8_11), 58616 }, /* ROXRW */ + { CPUFUNC(op_e4f9_11), 58617 }, /* ROXRW */ + { CPUFUNC(op_e5d0_11), 58832 }, /* ROXLW */ + { CPUFUNC(op_e5d8_11), 58840 }, /* ROXLW */ + { CPUFUNC(op_e5e0_11), 58848 }, /* ROXLW */ + { CPUFUNC(op_e5e8_11), 58856 }, /* ROXLW */ + { CPUFUNC(op_e5f0_11), 58864 }, /* ROXLW */ + { CPUFUNC(op_e5f8_11), 58872 }, /* ROXLW */ + { CPUFUNC(op_e5f9_11), 58873 }, /* ROXLW */ + { CPUFUNC(op_e6d0_11), 59088 }, /* RORW */ + { CPUFUNC(op_e6d8_11), 59096 }, /* RORW */ + { CPUFUNC(op_e6e0_11), 59104 }, /* RORW */ + { CPUFUNC(op_e6e8_11), 59112 }, /* RORW */ + { CPUFUNC(op_e6f0_11), 59120 }, /* RORW */ + { CPUFUNC(op_e6f8_11), 59128 }, /* RORW */ + { CPUFUNC(op_e6f9_11), 59129 }, /* RORW */ + { CPUFUNC(op_e7d0_11), 59344 }, /* ROLW */ + { CPUFUNC(op_e7d8_11), 59352 }, /* ROLW */ + { CPUFUNC(op_e7e0_11), 59360 }, /* ROLW */ + { CPUFUNC(op_e7e8_11), 59368 }, /* ROLW */ + { CPUFUNC(op_e7f0_11), 59376 }, /* ROLW */ + { CPUFUNC(op_e7f8_11), 59384 }, /* ROLW */ + { CPUFUNC(op_e7f9_11), 59385 }, /* ROLW */ + { 0, 0 } +}; #endif /* CPUEMU_11 */ diff --git a/src/crc32.cpp b/src/crc32.cpp index 29cd3769..19a5923b 100644 --- a/src/crc32.cpp +++ b/src/crc32.cpp @@ -8,49 +8,51 @@ static unsigned long crc_table32[256]; static unsigned short crc_table16[256]; static void make_crc_table (void) { - unsigned long c; - unsigned short w; - int n, k; - for (n = 0; n < 256; n++) { - c = (unsigned long)n; - w = n << 8; - for (k = 0; k < 8; k++) { - c = (c >> 1) ^ (c & 1 ? 0xedb88320 : 0); - w = (w << 1) ^ ((w & 0x8000) ? 0x1021 : 0); - } - crc_table32[n] = c; - crc_table16[n] = w; - } + unsigned long c; + unsigned short w; + int n, k; + for (n = 0; n < 256; n++) + { + c = (unsigned long)n; + w = n << 8; + for (k = 0; k < 8; k++) + { + c = (c >> 1) ^ (c & 1 ? 0xedb88320 : 0); + w = (w << 1) ^ ((w & 0x8000) ? 0x1021 : 0); + } + crc_table32[n] = c; + crc_table16[n] = w; + } } uae_u32 get_crc32_val (uae_u8 v, uae_u32 crc) { - if (!crc_table32[1]) - make_crc_table(); - crc ^= 0xffffffff; - crc = crc_table32[(crc ^ v) & 0xff] ^ (crc >> 8); - return crc ^ 0xffffffff; + if (!crc_table32[1]) + make_crc_table(); + crc ^= 0xffffffff; + crc = crc_table32[(crc ^ v) & 0xff] ^ (crc >> 8); + return crc ^ 0xffffffff; } uae_u32 get_crc32 (void *vbuf, int len) { - uae_u8 *buf = (uae_u8*)vbuf; - uae_u32 crc; - if (!crc_table32[1]) - make_crc_table(); - crc = 0xffffffff; - while (len-- > 0) - crc = crc_table32[(crc ^ (*buf++)) & 0xff] ^ (crc >> 8); - return crc ^ 0xffffffff; + uae_u8 *buf = (uae_u8*)vbuf; + uae_u32 crc; + if (!crc_table32[1]) + make_crc_table(); + crc = 0xffffffff; + while (len-- > 0) + crc = crc_table32[(crc ^ (*buf++)) & 0xff] ^ (crc >> 8); + return crc ^ 0xffffffff; } uae_u16 get_crc16 (void *vbuf, int len) { - uae_u8 *buf = (uae_u8*)vbuf; - uae_u16 crc; - if (!crc_table32[1]) - make_crc_table(); - crc = 0xffff; - while (len-- > 0) - crc = (crc << 8) ^ crc_table16[((crc >> 8) ^ (*buf++)) & 0xff]; - return crc; + uae_u8 *buf = (uae_u8*)vbuf; + uae_u16 crc; + if (!crc_table32[1]) + make_crc_table(); + crc = 0xffff; + while (len-- > 0) + crc = (crc << 8) ^ crc_table16[((crc >> 8) ^ (*buf++)) & 0xff]; + return crc; } #ifndef GET_UINT32_BE @@ -74,44 +76,44 @@ uae_u16 get_crc16 (void *vbuf, int len) typedef struct { - unsigned long total[2]; /*!< number of bytes processed */ - unsigned long state[5]; /*!< intermediate digest state */ - unsigned char buffer[64]; /*!< data block being processed */ + unsigned long total[2]; /*!< number of bytes processed */ + unsigned long state[5]; /*!< intermediate digest state */ + unsigned char buffer[64]; /*!< data block being processed */ } sha1_context; static void sha1_starts( sha1_context *ctx ) { - ctx->total[0] = 0; - ctx->total[1] = 0; + ctx->total[0] = 0; + ctx->total[1] = 0; - ctx->state[0] = 0x67452301; - ctx->state[1] = 0xEFCDAB89; - ctx->state[2] = 0x98BADCFE; - ctx->state[3] = 0x10325476; - ctx->state[4] = 0xC3D2E1F0; + ctx->state[0] = 0x67452301; + ctx->state[1] = 0xEFCDAB89; + ctx->state[2] = 0x98BADCFE; + ctx->state[3] = 0x10325476; + ctx->state[4] = 0xC3D2E1F0; } static void sha1_process( sha1_context *ctx, unsigned char data[64] ) { - unsigned long temp, W[16], A, B, C, D, E; + unsigned long temp, W[16], A, B, C, D, E; - GET_UINT32_BE( W[0], data, 0 ); - GET_UINT32_BE( W[1], data, 4 ); - GET_UINT32_BE( W[2], data, 8 ); - GET_UINT32_BE( W[3], data, 12 ); - GET_UINT32_BE( W[4], data, 16 ); - GET_UINT32_BE( W[5], data, 20 ); - GET_UINT32_BE( W[6], data, 24 ); - GET_UINT32_BE( W[7], data, 28 ); - GET_UINT32_BE( W[8], data, 32 ); - GET_UINT32_BE( W[9], data, 36 ); - GET_UINT32_BE( W[10], data, 40 ); - GET_UINT32_BE( W[11], data, 44 ); - GET_UINT32_BE( W[12], data, 48 ); - GET_UINT32_BE( W[13], data, 52 ); - GET_UINT32_BE( W[14], data, 56 ); - GET_UINT32_BE( W[15], data, 60 ); + GET_UINT32_BE( W[0], data, 0 ); + GET_UINT32_BE( W[1], data, 4 ); + GET_UINT32_BE( W[2], data, 8 ); + GET_UINT32_BE( W[3], data, 12 ); + GET_UINT32_BE( W[4], data, 16 ); + GET_UINT32_BE( W[5], data, 20 ); + GET_UINT32_BE( W[6], data, 24 ); + GET_UINT32_BE( W[7], data, 28 ); + GET_UINT32_BE( W[8], data, 32 ); + GET_UINT32_BE( W[9], data, 36 ); + GET_UINT32_BE( W[10], data, 40 ); + GET_UINT32_BE( W[11], data, 44 ); + GET_UINT32_BE( W[12], data, 48 ); + GET_UINT32_BE( W[13], data, 52 ); + GET_UINT32_BE( W[14], data, 56 ); + GET_UINT32_BE( W[15], data, 60 ); #define S(x,n) ((x << n) | ((x & 0xFFFFFFFF) >> (32 - n))) @@ -127,35 +129,35 @@ static void sha1_process( sha1_context *ctx, unsigned char data[64] ) e += S(a,5) + F(b,c,d) + K + x; b = S(b,30); \ } - A = ctx->state[0]; - B = ctx->state[1]; - C = ctx->state[2]; - D = ctx->state[3]; - E = ctx->state[4]; + A = ctx->state[0]; + B = ctx->state[1]; + C = ctx->state[2]; + D = ctx->state[3]; + E = ctx->state[4]; #define F(x,y,z) (z ^ (x & (y ^ z))) #define K 0x5A827999 - P( A, B, C, D, E, W[0] ); - P( E, A, B, C, D, W[1] ); - P( D, E, A, B, C, W[2] ); - P( C, D, E, A, B, W[3] ); - P( B, C, D, E, A, W[4] ); - P( A, B, C, D, E, W[5] ); - P( E, A, B, C, D, W[6] ); - P( D, E, A, B, C, W[7] ); - P( C, D, E, A, B, W[8] ); - P( B, C, D, E, A, W[9] ); - P( A, B, C, D, E, W[10] ); - P( E, A, B, C, D, W[11] ); - P( D, E, A, B, C, W[12] ); - P( C, D, E, A, B, W[13] ); - P( B, C, D, E, A, W[14] ); - P( A, B, C, D, E, W[15] ); - P( E, A, B, C, D, R(16) ); - P( D, E, A, B, C, R(17) ); - P( C, D, E, A, B, R(18) ); - P( B, C, D, E, A, R(19) ); + P( A, B, C, D, E, W[0] ); + P( E, A, B, C, D, W[1] ); + P( D, E, A, B, C, W[2] ); + P( C, D, E, A, B, W[3] ); + P( B, C, D, E, A, W[4] ); + P( A, B, C, D, E, W[5] ); + P( E, A, B, C, D, W[6] ); + P( D, E, A, B, C, W[7] ); + P( C, D, E, A, B, W[8] ); + P( B, C, D, E, A, W[9] ); + P( A, B, C, D, E, W[10] ); + P( E, A, B, C, D, W[11] ); + P( D, E, A, B, C, W[12] ); + P( C, D, E, A, B, W[13] ); + P( B, C, D, E, A, W[14] ); + P( A, B, C, D, E, W[15] ); + P( E, A, B, C, D, R(16) ); + P( D, E, A, B, C, R(17) ); + P( C, D, E, A, B, R(18) ); + P( B, C, D, E, A, R(19) ); #undef K #undef F @@ -163,26 +165,26 @@ static void sha1_process( sha1_context *ctx, unsigned char data[64] ) #define F(x,y,z) (x ^ y ^ z) #define K 0x6ED9EBA1 - P( A, B, C, D, E, R(20) ); - P( E, A, B, C, D, R(21) ); - P( D, E, A, B, C, R(22) ); - P( C, D, E, A, B, R(23) ); - P( B, C, D, E, A, R(24) ); - P( A, B, C, D, E, R(25) ); - P( E, A, B, C, D, R(26) ); - P( D, E, A, B, C, R(27) ); - P( C, D, E, A, B, R(28) ); - P( B, C, D, E, A, R(29) ); - P( A, B, C, D, E, R(30) ); - P( E, A, B, C, D, R(31) ); - P( D, E, A, B, C, R(32) ); - P( C, D, E, A, B, R(33) ); - P( B, C, D, E, A, R(34) ); - P( A, B, C, D, E, R(35) ); - P( E, A, B, C, D, R(36) ); - P( D, E, A, B, C, R(37) ); - P( C, D, E, A, B, R(38) ); - P( B, C, D, E, A, R(39) ); + P( A, B, C, D, E, R(20) ); + P( E, A, B, C, D, R(21) ); + P( D, E, A, B, C, R(22) ); + P( C, D, E, A, B, R(23) ); + P( B, C, D, E, A, R(24) ); + P( A, B, C, D, E, R(25) ); + P( E, A, B, C, D, R(26) ); + P( D, E, A, B, C, R(27) ); + P( C, D, E, A, B, R(28) ); + P( B, C, D, E, A, R(29) ); + P( A, B, C, D, E, R(30) ); + P( E, A, B, C, D, R(31) ); + P( D, E, A, B, C, R(32) ); + P( C, D, E, A, B, R(33) ); + P( B, C, D, E, A, R(34) ); + P( A, B, C, D, E, R(35) ); + P( E, A, B, C, D, R(36) ); + P( D, E, A, B, C, R(37) ); + P( C, D, E, A, B, R(38) ); + P( B, C, D, E, A, R(39) ); #undef K #undef F @@ -190,26 +192,26 @@ static void sha1_process( sha1_context *ctx, unsigned char data[64] ) #define F(x,y,z) ((x & y) | (z & (x | y))) #define K 0x8F1BBCDC - P( A, B, C, D, E, R(40) ); - P( E, A, B, C, D, R(41) ); - P( D, E, A, B, C, R(42) ); - P( C, D, E, A, B, R(43) ); - P( B, C, D, E, A, R(44) ); - P( A, B, C, D, E, R(45) ); - P( E, A, B, C, D, R(46) ); - P( D, E, A, B, C, R(47) ); - P( C, D, E, A, B, R(48) ); - P( B, C, D, E, A, R(49) ); - P( A, B, C, D, E, R(50) ); - P( E, A, B, C, D, R(51) ); - P( D, E, A, B, C, R(52) ); - P( C, D, E, A, B, R(53) ); - P( B, C, D, E, A, R(54) ); - P( A, B, C, D, E, R(55) ); - P( E, A, B, C, D, R(56) ); - P( D, E, A, B, C, R(57) ); - P( C, D, E, A, B, R(58) ); - P( B, C, D, E, A, R(59) ); + P( A, B, C, D, E, R(40) ); + P( E, A, B, C, D, R(41) ); + P( D, E, A, B, C, R(42) ); + P( C, D, E, A, B, R(43) ); + P( B, C, D, E, A, R(44) ); + P( A, B, C, D, E, R(45) ); + P( E, A, B, C, D, R(46) ); + P( D, E, A, B, C, R(47) ); + P( C, D, E, A, B, R(48) ); + P( B, C, D, E, A, R(49) ); + P( A, B, C, D, E, R(50) ); + P( E, A, B, C, D, R(51) ); + P( D, E, A, B, C, R(52) ); + P( C, D, E, A, B, R(53) ); + P( B, C, D, E, A, R(54) ); + P( A, B, C, D, E, R(55) ); + P( E, A, B, C, D, R(56) ); + P( D, E, A, B, C, R(57) ); + P( C, D, E, A, B, R(58) ); + P( B, C, D, E, A, R(59) ); #undef K #undef F @@ -217,35 +219,35 @@ static void sha1_process( sha1_context *ctx, unsigned char data[64] ) #define F(x,y,z) (x ^ y ^ z) #define K 0xCA62C1D6 - P( A, B, C, D, E, R(60) ); - P( E, A, B, C, D, R(61) ); - P( D, E, A, B, C, R(62) ); - P( C, D, E, A, B, R(63) ); - P( B, C, D, E, A, R(64) ); - P( A, B, C, D, E, R(65) ); - P( E, A, B, C, D, R(66) ); - P( D, E, A, B, C, R(67) ); - P( C, D, E, A, B, R(68) ); - P( B, C, D, E, A, R(69) ); - P( A, B, C, D, E, R(70) ); - P( E, A, B, C, D, R(71) ); - P( D, E, A, B, C, R(72) ); - P( C, D, E, A, B, R(73) ); - P( B, C, D, E, A, R(74) ); - P( A, B, C, D, E, R(75) ); - P( E, A, B, C, D, R(76) ); - P( D, E, A, B, C, R(77) ); - P( C, D, E, A, B, R(78) ); - P( B, C, D, E, A, R(79) ); + P( A, B, C, D, E, R(60) ); + P( E, A, B, C, D, R(61) ); + P( D, E, A, B, C, R(62) ); + P( C, D, E, A, B, R(63) ); + P( B, C, D, E, A, R(64) ); + P( A, B, C, D, E, R(65) ); + P( E, A, B, C, D, R(66) ); + P( D, E, A, B, C, R(67) ); + P( C, D, E, A, B, R(68) ); + P( B, C, D, E, A, R(69) ); + P( A, B, C, D, E, R(70) ); + P( E, A, B, C, D, R(71) ); + P( D, E, A, B, C, R(72) ); + P( C, D, E, A, B, R(73) ); + P( B, C, D, E, A, R(74) ); + P( A, B, C, D, E, R(75) ); + P( E, A, B, C, D, R(76) ); + P( D, E, A, B, C, R(77) ); + P( C, D, E, A, B, R(78) ); + P( B, C, D, E, A, R(79) ); #undef K #undef F - ctx->state[0] += A; - ctx->state[1] += B; - ctx->state[2] += C; - ctx->state[3] += D; - ctx->state[4] += E; + ctx->state[0] += A; + ctx->state[1] += B; + ctx->state[2] += C; + ctx->state[3] += D; + ctx->state[4] += E; } /* @@ -253,51 +255,51 @@ static void sha1_process( sha1_context *ctx, unsigned char data[64] ) */ static void sha1_update( sha1_context *ctx, unsigned char *input, int ilen ) { - int fill; - unsigned long left; + int fill; + unsigned long left; - if( ilen <= 0 ) - return; + if( ilen <= 0 ) + return; - left = ctx->total[0] & 0x3F; - fill = 64 - left; + left = ctx->total[0] & 0x3F; + fill = 64 - left; - ctx->total[0] += ilen; - ctx->total[0] &= 0xFFFFFFFF; + ctx->total[0] += ilen; + ctx->total[0] &= 0xFFFFFFFF; - if( ctx->total[0] < (unsigned long) ilen ) - ctx->total[1]++; + if( ctx->total[0] < (unsigned long) ilen ) + ctx->total[1]++; - if( left && ilen >= fill ) - { - memcpy( (void *) (ctx->buffer + left), - (void *) input, fill ); - sha1_process( ctx, ctx->buffer ); - input += fill; - ilen -= fill; - left = 0; - } + if( left && ilen >= fill ) + { + memcpy( (void *) (ctx->buffer + left), + (void *) input, fill ); + sha1_process( ctx, ctx->buffer ); + input += fill; + ilen -= fill; + left = 0; + } - while( ilen >= 64 ) - { - sha1_process( ctx, input ); - input += 64; - ilen -= 64; - } + while( ilen >= 64 ) + { + sha1_process( ctx, input ); + input += 64; + ilen -= 64; + } - if( ilen > 0 ) - { - memcpy( (void *) (ctx->buffer + left), - (void *) input, ilen ); - } + if( ilen > 0 ) + { + memcpy( (void *) (ctx->buffer + left), + (void *) input, ilen ); + } } static const unsigned char sha1_padding[64] = { - 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; /* @@ -305,54 +307,55 @@ static const unsigned char sha1_padding[64] = */ static void sha1_finish( sha1_context *ctx, unsigned char output[20] ) { - unsigned long last, padn; - unsigned long high, low; - unsigned char msglen[8]; + unsigned long last, padn; + unsigned long high, low; + unsigned char msglen[8]; - high = ( ctx->total[0] >> 29 ) - | ( ctx->total[1] << 3 ); - low = ( ctx->total[0] << 3 ); + high = ( ctx->total[0] >> 29 ) + | ( ctx->total[1] << 3 ); + low = ( ctx->total[0] << 3 ); - PUT_UINT32_BE( high, msglen, 0 ); - PUT_UINT32_BE( low, msglen, 4 ); + PUT_UINT32_BE( high, msglen, 0 ); + PUT_UINT32_BE( low, msglen, 4 ); - last = ctx->total[0] & 0x3F; - padn = ( last < 56 ) ? ( 56 - last ) : ( 120 - last ); + last = ctx->total[0] & 0x3F; + padn = ( last < 56 ) ? ( 56 - last ) : ( 120 - last ); - sha1_update( ctx, (unsigned char *) sha1_padding, padn ); - sha1_update( ctx, msglen, 8 ); + sha1_update( ctx, (unsigned char *) sha1_padding, padn ); + sha1_update( ctx, msglen, 8 ); - PUT_UINT32_BE( ctx->state[0], output, 0 ); - PUT_UINT32_BE( ctx->state[1], output, 4 ); - PUT_UINT32_BE( ctx->state[2], output, 8 ); - PUT_UINT32_BE( ctx->state[3], output, 12 ); - PUT_UINT32_BE( ctx->state[4], output, 16 ); + PUT_UINT32_BE( ctx->state[0], output, 0 ); + PUT_UINT32_BE( ctx->state[1], output, 4 ); + PUT_UINT32_BE( ctx->state[2], output, 8 ); + PUT_UINT32_BE( ctx->state[3], output, 12 ); + PUT_UINT32_BE( ctx->state[4], output, 16 ); } void get_sha1 (void *vinput, int len, void *vout) { - uae_u8 *input = (uae_u8*)vinput; - uae_u8 *out = (uae_u8*)vout; - sha1_context ctx; + uae_u8 *input = (uae_u8*)vinput; + uae_u8 *out = (uae_u8*)vout; + sha1_context ctx; - sha1_starts( &ctx ); - sha1_update( &ctx, input, len ); - sha1_finish( &ctx, out ); + sha1_starts( &ctx ); + sha1_update( &ctx, input, len ); + sha1_finish( &ctx, out ); } const TCHAR *get_sha1_txt (void *vinput, int len) { - uae_u8 *input = (uae_u8*)vinput; - static TCHAR outtxt[SHA1_SIZE * 2 + 1]; - uae_u8 out[SHA1_SIZE]; - int i; - TCHAR *p; + uae_u8 *input = (uae_u8*)vinput; + static TCHAR outtxt[SHA1_SIZE * 2 + 1]; + uae_u8 out[SHA1_SIZE]; + int i; + TCHAR *p; - p = outtxt; - get_sha1 (input, len, out); - for (i = 0; i < SHA1_SIZE; i++) { - _stprintf (p, _T("%02X"), out[i]); - p += 2; - } - *p = 0; - return outtxt; -} \ No newline at end of file + p = outtxt; + get_sha1 (input, len, out); + for (i = 0; i < SHA1_SIZE; i++) + { + _stprintf (p, _T("%02X"), out[i]); + p += 2; + } + *p = 0; + return outtxt; +} diff --git a/src/disk.cpp b/src/disk.cpp index 762f8f8b..6994c326 100644 --- a/src/disk.cpp +++ b/src/disk.cpp @@ -1,15 +1,15 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Floppy disk emulation - * - * Copyright 1995 Hannu Rummukainen - * Copyright 1995-2001 Bernd Schmidt - * Copyright 2000-2003 Toni Wilen - * - * Original High Density Drive Handling by Dr. Adil Temel (C) 2001 [atemel1@hotmail.com] - * - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Floppy disk emulation + * + * Copyright 1995 Hannu Rummukainen + * Copyright 1995-2001 Bernd Schmidt + * Copyright 2000-2003 Toni Wilen + * + * Original High Density Drive Handling by Dr. Adil Temel (C) 2001 [atemel1@hotmail.com] + * + */ #include "sysconfig.h" #include "sysdeps.h" @@ -22,7 +22,7 @@ #include "disk.h" #include "gui.h" #include "zfile.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "osemu.h" @@ -100,13 +100,14 @@ static uae_u8 prev_data; static int prev_step; typedef enum { TRACK_AMIGADOS, TRACK_RAW, TRACK_RAW1, TRACK_PCDOS, TRACK_DISKSPARE, TRACK_NONE } image_tracktype; -typedef struct { - uae_u16 len; - uae_u32 offs; - int bitlen, track; - uae_u16 sync; - image_tracktype type; - int revolutions; +typedef struct +{ + uae_u16 len; + uae_u32 offs; + int bitlen, track; + uae_u16 sync; + image_tracktype type; + int revolutions; } trackid; #define MAX_TRACKS (2 * 83) @@ -127,47 +128,48 @@ typedef struct { #define DRIVE_ID_525SD 0x55555555 /* 40 track 5.25 drive , kickstart does not recognize this */ typedef enum { ADF_NONE = -1, ADF_NORMAL, ADF_EXT1, ADF_EXT2, ADF_FDI, ADF_IPF, ADF_CATWEASEL, ADF_PCDOS } drive_filetype; -typedef struct { - struct zfile *diskfile; - struct zfile *writediskfile; - drive_filetype filetype; - trackid trackdata[MAX_TRACKS]; - trackid writetrackdata[MAX_TRACKS]; - int buffered_cyl, buffered_side; - int cyl; - bool motoroff; - int motordelay; /* dskrdy needs some clock cycles before it changes after switching off motor */ - bool state; - bool wrprot; - uae_u16 bigmfmbuf[0x4000 * DDHDMULT]; - uae_u16 tracktiming[0x4000 * DDHDMULT]; - int multi_revolution; - int skipoffset; - int mfmpos; - int indexoffset; - int tracklen; - int revolutions; - int prevtracklen; - int trackspeed; - int num_tracks, write_num_tracks, num_secs; - int hard_num_cyls; - bool dskchange; - int dskchange_time; - bool dskready; - int dskready_up_time; - int dskready_down_time; - int writtento; - int steplimit; - frame_time_t steplimitcycle; - int indexhack, indexhackmode; - int ddhd; /* 1=DD 2=HD */ - int drive_id_scnt; /* drive id shift counter */ - int idbit; - unsigned long drive_id; /* drive id to be reported */ - TCHAR newname[256]; /* storage space for new filename during eject delay */ - uae_u32 crc32; - int useturbo; - int floppybitcounter; /* number of bits left */ +typedef struct +{ + struct zfile *diskfile; + struct zfile *writediskfile; + drive_filetype filetype; + trackid trackdata[MAX_TRACKS]; + trackid writetrackdata[MAX_TRACKS]; + int buffered_cyl, buffered_side; + int cyl; + bool motoroff; + int motordelay; /* dskrdy needs some clock cycles before it changes after switching off motor */ + bool state; + bool wrprot; + uae_u16 bigmfmbuf[0x4000 * DDHDMULT]; + uae_u16 tracktiming[0x4000 * DDHDMULT]; + int multi_revolution; + int skipoffset; + int mfmpos; + int indexoffset; + int tracklen; + int revolutions; + int prevtracklen; + int trackspeed; + int num_tracks, write_num_tracks, num_secs; + int hard_num_cyls; + bool dskchange; + int dskchange_time; + bool dskready; + int dskready_up_time; + int dskready_down_time; + int writtento; + int steplimit; + frame_time_t steplimitcycle; + int indexhack, indexhackmode; + int ddhd; /* 1=DD 2=HD */ + int drive_id_scnt; /* drive id shift counter */ + int idbit; + unsigned long drive_id; /* drive id to be reported */ + TCHAR newname[256]; /* storage space for new filename during eject delay */ + uae_u32 crc32; + int useturbo; + int floppybitcounter; /* number of bits left */ } drive; #define MIN_STEPLIMIT_CYCLE (CYCLE_UNIT * 250) @@ -176,20 +178,22 @@ static uae_u16 bigmfmbufw[0x4000 * DDHDMULT]; static drive floppy[MAX_FLOPPY_DRIVES]; static TCHAR dfxhistory[2][MAX_PREVIOUS_FLOPPIES][MAX_DPATH]; -static uae_u8 exeheader[]={0x00,0x00,0x03,0xf3,0x00,0x00,0x00,0x00}; -static uae_u8 bootblock_ofs[]={ - 0x44,0x4f,0x53,0x00,0xc0,0x20,0x0f,0x19,0x00,0x00,0x03,0x70,0x43,0xfa,0x00,0x18, - 0x4e,0xae,0xff,0xa0,0x4a,0x80,0x67,0x0a,0x20,0x40,0x20,0x68,0x00,0x16,0x70,0x00, - 0x4e,0x75,0x70,0xff,0x60,0xfa,0x64,0x6f,0x73,0x2e,0x6c,0x69,0x62,0x72,0x61,0x72, - 0x79 +static uae_u8 exeheader[]= {0x00,0x00,0x03,0xf3,0x00,0x00,0x00,0x00}; +static uae_u8 bootblock_ofs[]= +{ + 0x44,0x4f,0x53,0x00,0xc0,0x20,0x0f,0x19,0x00,0x00,0x03,0x70,0x43,0xfa,0x00,0x18, + 0x4e,0xae,0xff,0xa0,0x4a,0x80,0x67,0x0a,0x20,0x40,0x20,0x68,0x00,0x16,0x70,0x00, + 0x4e,0x75,0x70,0xff,0x60,0xfa,0x64,0x6f,0x73,0x2e,0x6c,0x69,0x62,0x72,0x61,0x72, + 0x79 }; -static uae_u8 bootblock_ffs[]={ - 0x44, 0x4F, 0x53, 0x01, 0xE3, 0x3D, 0x0E, 0x72, 0x00, 0x00, 0x03, 0x70, 0x43, 0xFA, 0x00, 0x3E, - 0x70, 0x25, 0x4E, 0xAE, 0xFD, 0xD8, 0x4A, 0x80, 0x67, 0x0C, 0x22, 0x40, 0x08, 0xE9, 0x00, 0x06, - 0x00, 0x22, 0x4E, 0xAE, 0xFE, 0x62, 0x43, 0xFA, 0x00, 0x18, 0x4E, 0xAE, 0xFF, 0xA0, 0x4A, 0x80, - 0x67, 0x0A, 0x20, 0x40, 0x20, 0x68, 0x00, 0x16, 0x70, 0x00, 0x4E, 0x75, 0x70, 0xFF, 0x4E, 0x75, - 0x64, 0x6F, 0x73, 0x2E, 0x6C, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x00, 0x65, 0x78, 0x70, 0x61, - 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x2E, 0x6C, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x00, 0x00, 0x00, +static uae_u8 bootblock_ffs[]= +{ + 0x44, 0x4F, 0x53, 0x01, 0xE3, 0x3D, 0x0E, 0x72, 0x00, 0x00, 0x03, 0x70, 0x43, 0xFA, 0x00, 0x3E, + 0x70, 0x25, 0x4E, 0xAE, 0xFD, 0xD8, 0x4A, 0x80, 0x67, 0x0C, 0x22, 0x40, 0x08, 0xE9, 0x00, 0x06, + 0x00, 0x22, 0x4E, 0xAE, 0xFE, 0x62, 0x43, 0xFA, 0x00, 0x18, 0x4E, 0xAE, 0xFF, 0xA0, 0x4A, 0x80, + 0x67, 0x0A, 0x20, 0x40, 0x20, 0x68, 0x00, 0x16, 0x70, 0x00, 0x4E, 0x75, 0x70, 0xFF, 0x4E, 0x75, + 0x64, 0x6F, 0x73, 0x2E, 0x6C, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x00, 0x65, 0x78, 0x70, 0x61, + 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x2E, 0x6C, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x00, 0x00, 0x00, }; #define FS_OFS_DATABLOCKSIZE 488 @@ -200,298 +204,327 @@ static uae_u8 bootblock_ffs[]={ static void writeimageblock (struct zfile *dst, uae_u8 *sector, int offset) { - zfile_fseek (dst, offset, SEEK_SET); - zfile_fwrite (sector, FS_FLOPPY_BLOCKSIZE, 1, dst); + zfile_fseek (dst, offset, SEEK_SET); + zfile_fwrite (sector, FS_FLOPPY_BLOCKSIZE, 1, dst); } static void disk_checksum(uae_u8 *p, uae_u8 *c) { - uae_u32 cs = 0; - int i; - for (i = 0; i < FS_FLOPPY_BLOCKSIZE; i+= 4) - cs += (p[i] << 24) | (p[i+1] << 16) | (p[i+2] << 8) | (p[i+3] << 0); - cs = -cs; - c[0] = cs >> 24; c[1] = cs >> 16; c[2] = cs >> 8; c[3] = cs >> 0; + uae_u32 cs = 0; + int i; + for (i = 0; i < FS_FLOPPY_BLOCKSIZE; i+= 4) + cs += (p[i] << 24) | (p[i+1] << 16) | (p[i+2] << 8) | (p[i+3] << 0); + cs = -cs; + c[0] = cs >> 24; + c[1] = cs >> 16; + c[2] = cs >> 8; + c[3] = cs >> 0; } static int dirhash (const uae_char *name) { - unsigned long hash; - int i; + unsigned long hash; + int i; - hash = strlen (name); - for(i = 0; i < strlen (name); i++) { - hash = hash * 13; - hash = hash + toupper (name[i]); - hash = hash & 0x7ff; - } - hash = hash % ((FS_FLOPPY_BLOCKSIZE / 4) - 56); - return hash; + hash = strlen (name); + for(i = 0; i < strlen (name); i++) + { + hash = hash * 13; + hash = hash + toupper (name[i]); + hash = hash & 0x7ff; + } + hash = hash % ((FS_FLOPPY_BLOCKSIZE / 4) - 56); + return hash; } static void disk_date (uae_u8 *p) { - time_t t; - struct tm *today; - int year, days, minutes, ticks; - TCHAR tmp[10]; - time (&t); - today = localtime( &t ); - _tcsftime (tmp, sizeof tmp / sizeof (TCHAR), _T("%Y"), today); - year = _tstoi (tmp); - _tcsftime (tmp, sizeof tmp / sizeof (TCHAR), _T("%j"), today); - days = _tstoi (tmp) - 1; - _tcsftime (tmp, sizeof tmp / sizeof (TCHAR), _T("%H"), today); - minutes = _tstoi (tmp) * 60; - _tcsftime (tmp, sizeof tmp / sizeof (TCHAR), _T("%M"), today); - minutes += _tstoi (tmp); - _tcsftime (tmp, sizeof tmp / sizeof (TCHAR), _T("%S"), today); - ticks = _tstoi (tmp) * 50; - while (year > 1978) { - if ( !(year % 100) ? !(year % 400) : !(year % 4) ) days++; - days += 365; - year--; - } - p[0] = days >> 24; p[1] = days >> 16; p[2] = days >> 8; p[3] = days >> 0; - p[4] = minutes >> 24; p[5] = minutes >> 16; p[6] = minutes >> 8; p[7] = minutes >> 0; - p[8] = ticks >> 24; p[9] = ticks >> 16; p[10] = ticks >> 8; p[11] = ticks >> 0; + time_t t; + struct tm *today; + int year, days, minutes, ticks; + TCHAR tmp[10]; + time (&t); + today = localtime( &t ); + _tcsftime (tmp, sizeof tmp / sizeof (TCHAR), _T("%Y"), today); + year = _tstoi (tmp); + _tcsftime (tmp, sizeof tmp / sizeof (TCHAR), _T("%j"), today); + days = _tstoi (tmp) - 1; + _tcsftime (tmp, sizeof tmp / sizeof (TCHAR), _T("%H"), today); + minutes = _tstoi (tmp) * 60; + _tcsftime (tmp, sizeof tmp / sizeof (TCHAR), _T("%M"), today); + minutes += _tstoi (tmp); + _tcsftime (tmp, sizeof tmp / sizeof (TCHAR), _T("%S"), today); + ticks = _tstoi (tmp) * 50; + while (year > 1978) + { + if ( !(year % 100) ? !(year % 400) : !(year % 4) ) days++; + days += 365; + year--; + } + p[0] = days >> 24; + p[1] = days >> 16; + p[2] = days >> 8; + p[3] = days >> 0; + p[4] = minutes >> 24; + p[5] = minutes >> 16; + p[6] = minutes >> 8; + p[7] = minutes >> 0; + p[8] = ticks >> 24; + p[9] = ticks >> 16; + p[10] = ticks >> 8; + p[11] = ticks >> 0; } static void createbootblock (uae_u8 *sector, int bootable) { - memset (sector, 0, FS_FLOPPY_BLOCKSIZE); - memcpy (sector, "DOS", 3); - if (bootable) - memcpy (sector, bootblock_ofs, sizeof bootblock_ofs); + memset (sector, 0, FS_FLOPPY_BLOCKSIZE); + memcpy (sector, "DOS", 3); + if (bootable) + memcpy (sector, bootblock_ofs, sizeof bootblock_ofs); } static void createrootblock (uae_u8 *sector, char *disk_name) { - memset (sector, 0, FS_FLOPPY_BLOCKSIZE); - sector[0+3] = 2; - sector[12+3] = 0x48; - sector[312] = sector[313] = sector[314] = sector[315] = (uae_u8)0xff; - sector[316+2] = 881 >> 8; sector[316+3] = 881 & 255; - sector[432] = strlen (disk_name); - strcpy ((char *)sector + 433, disk_name); - sector[508 + 3] = 1; - disk_date (sector + 420); - memcpy (sector + 472, sector + 420, 3 * 4); - memcpy (sector + 484, sector + 420, 3 * 4); + memset (sector, 0, FS_FLOPPY_BLOCKSIZE); + sector[0+3] = 2; + sector[12+3] = 0x48; + sector[312] = sector[313] = sector[314] = sector[315] = (uae_u8)0xff; + sector[316+2] = 881 >> 8; + sector[316+3] = 881 & 255; + sector[432] = strlen (disk_name); + strcpy ((char *)sector + 433, disk_name); + sector[508 + 3] = 1; + disk_date (sector + 420); + memcpy (sector + 472, sector + 420, 3 * 4); + memcpy (sector + 484, sector + 420, 3 * 4); } static int getblock (uae_u8 *bitmap) { - int i = 0; - while (bitmap[i] != 0xff) { - if (bitmap[i] == 0) { - bitmap[i] = 1; - return i; - } - i++; - } - return -1; + int i = 0; + while (bitmap[i] != 0xff) + { + if (bitmap[i] == 0) + { + bitmap[i] = 1; + return i; + } + i++; + } + return -1; } static void pl (uae_u8 *sector, int offset, uae_u32 v) { - sector[offset + 0] = v >> 24; - sector[offset + 1] = v >> 16; - sector[offset + 2] = v >> 8; - sector[offset + 3] = v >> 0; + sector[offset + 0] = v >> 24; + sector[offset + 1] = v >> 16; + sector[offset + 2] = v >> 8; + sector[offset + 3] = v >> 0; } static int createdirheaderblock (uae_u8 *sector, int parent, const char *filename, uae_u8 *bitmap) { - int block = getblock (bitmap); + int block = getblock (bitmap); - memset (sector, 0, FS_FLOPPY_BLOCKSIZE); - pl (sector, 0, 2); - pl (sector, 4, block); - disk_date (sector + 512 - 92); - sector[512 - 80] = strlen (filename); - strcpy ((char *)sector + 512 - 79, filename); - pl (sector, 512 - 12, parent); - pl (sector, 512 - 4, 2); - return block; + memset (sector, 0, FS_FLOPPY_BLOCKSIZE); + pl (sector, 0, 2); + pl (sector, 4, block); + disk_date (sector + 512 - 92); + sector[512 - 80] = strlen (filename); + strcpy ((char *)sector + 512 - 79, filename); + pl (sector, 512 - 12, parent); + pl (sector, 512 - 4, 2); + return block; } static int createfileheaderblock (struct zfile *z,uae_u8 *sector, int parent, const char *filename, struct zfile *src, uae_u8 *bitmap) { - uae_u8 sector2[FS_FLOPPY_BLOCKSIZE]; - uae_u8 sector3[FS_FLOPPY_BLOCKSIZE]; - int block = getblock (bitmap); - int datablock = getblock (bitmap); - int datasec = 1; - int extensions; - int extensionblock, extensioncounter, headerextension = 1; - int size; + uae_u8 sector2[FS_FLOPPY_BLOCKSIZE]; + uae_u8 sector3[FS_FLOPPY_BLOCKSIZE]; + int block = getblock (bitmap); + int datablock = getblock (bitmap); + int datasec = 1; + int extensions; + int extensionblock, extensioncounter, headerextension = 1; + int size; - zfile_fseek (src, 0, SEEK_END); - size = zfile_ftell (src); - zfile_fseek (src, 0, SEEK_SET); - extensions = (size + FS_OFS_DATABLOCKSIZE - 1) / FS_OFS_DATABLOCKSIZE; + zfile_fseek (src, 0, SEEK_END); + size = zfile_ftell (src); + zfile_fseek (src, 0, SEEK_SET); + extensions = (size + FS_OFS_DATABLOCKSIZE - 1) / FS_OFS_DATABLOCKSIZE; - memset (sector, 0, FS_FLOPPY_BLOCKSIZE); - pl (sector, 0, 2); - pl (sector, 4, block); - pl (sector, 8, extensions > FS_EXTENSION_BLOCKS ? FS_EXTENSION_BLOCKS : extensions); - pl (sector, 16, datablock); - pl (sector, FS_FLOPPY_BLOCKSIZE - 188, size); - disk_date (sector + FS_FLOPPY_BLOCKSIZE - 92); - sector[FS_FLOPPY_BLOCKSIZE - 80] = strlen (filename); - strcpy ((char *)sector + FS_FLOPPY_BLOCKSIZE - 79, filename); - pl (sector, FS_FLOPPY_BLOCKSIZE - 12, parent); - pl (sector, FS_FLOPPY_BLOCKSIZE - 4, -3); - extensioncounter = 0; - extensionblock = 0; + memset (sector, 0, FS_FLOPPY_BLOCKSIZE); + pl (sector, 0, 2); + pl (sector, 4, block); + pl (sector, 8, extensions > FS_EXTENSION_BLOCKS ? FS_EXTENSION_BLOCKS : extensions); + pl (sector, 16, datablock); + pl (sector, FS_FLOPPY_BLOCKSIZE - 188, size); + disk_date (sector + FS_FLOPPY_BLOCKSIZE - 92); + sector[FS_FLOPPY_BLOCKSIZE - 80] = strlen (filename); + strcpy ((char *)sector + FS_FLOPPY_BLOCKSIZE - 79, filename); + pl (sector, FS_FLOPPY_BLOCKSIZE - 12, parent); + pl (sector, FS_FLOPPY_BLOCKSIZE - 4, -3); + extensioncounter = 0; + extensionblock = 0; - while (size > 0) { - int datablock2 = datablock; - int extensionblock2 = extensionblock; - if (extensioncounter == FS_EXTENSION_BLOCKS) { - extensioncounter = 0; - extensionblock = getblock (bitmap); - if (datasec > FS_EXTENSION_BLOCKS + 1) { - pl (sector3, 8, FS_EXTENSION_BLOCKS); - pl (sector3, FS_FLOPPY_BLOCKSIZE - 8, extensionblock); - pl (sector3, 4, extensionblock2); + while (size > 0) + { + int datablock2 = datablock; + int extensionblock2 = extensionblock; + if (extensioncounter == FS_EXTENSION_BLOCKS) + { + extensioncounter = 0; + extensionblock = getblock (bitmap); + if (datasec > FS_EXTENSION_BLOCKS + 1) + { + pl (sector3, 8, FS_EXTENSION_BLOCKS); + pl (sector3, FS_FLOPPY_BLOCKSIZE - 8, extensionblock); + pl (sector3, 4, extensionblock2); + disk_checksum(sector3, sector3 + 20); + writeimageblock (z, sector3, extensionblock2 * FS_FLOPPY_BLOCKSIZE); + } + else + { + pl (sector, 512 - 8, extensionblock); + } + memset (sector3, 0, FS_FLOPPY_BLOCKSIZE); + pl (sector3, 0, 16); + pl (sector3, FS_FLOPPY_BLOCKSIZE - 12, block); + pl (sector3, FS_FLOPPY_BLOCKSIZE - 4, -3); + } + memset (sector2, 0, FS_FLOPPY_BLOCKSIZE); + pl (sector2, 0, 8); + pl (sector2, 4, block); + pl (sector2, 8, datasec++); + pl (sector2, 12, size > FS_OFS_DATABLOCKSIZE ? FS_OFS_DATABLOCKSIZE : size); + zfile_fread (sector2 + 24, size > FS_OFS_DATABLOCKSIZE ? FS_OFS_DATABLOCKSIZE : size, 1, src); + size -= FS_OFS_DATABLOCKSIZE; + datablock = 0; + if (size > 0) datablock = getblock (bitmap); + pl (sector2, 16, datablock); + disk_checksum(sector2, sector2 + 20); + writeimageblock (z, sector2, datablock2 * FS_FLOPPY_BLOCKSIZE); + if (datasec <= FS_EXTENSION_BLOCKS + 1) + pl (sector, 512 - 204 - extensioncounter * 4, datablock2); + else + pl (sector3, 512 - 204 - extensioncounter * 4, datablock2); + extensioncounter++; + } + if (datasec > FS_EXTENSION_BLOCKS) + { + pl (sector3, 8, extensioncounter); disk_checksum(sector3, sector3 + 20); - writeimageblock (z, sector3, extensionblock2 * FS_FLOPPY_BLOCKSIZE); - } else { - pl (sector, 512 - 8, extensionblock); - } - memset (sector3, 0, FS_FLOPPY_BLOCKSIZE); - pl (sector3, 0, 16); - pl (sector3, FS_FLOPPY_BLOCKSIZE - 12, block); - pl (sector3, FS_FLOPPY_BLOCKSIZE - 4, -3); - } - memset (sector2, 0, FS_FLOPPY_BLOCKSIZE); - pl (sector2, 0, 8); - pl (sector2, 4, block); - pl (sector2, 8, datasec++); - pl (sector2, 12, size > FS_OFS_DATABLOCKSIZE ? FS_OFS_DATABLOCKSIZE : size); - zfile_fread (sector2 + 24, size > FS_OFS_DATABLOCKSIZE ? FS_OFS_DATABLOCKSIZE : size, 1, src); - size -= FS_OFS_DATABLOCKSIZE; - datablock = 0; - if (size > 0) datablock = getblock (bitmap); - pl (sector2, 16, datablock); - disk_checksum(sector2, sector2 + 20); - writeimageblock (z, sector2, datablock2 * FS_FLOPPY_BLOCKSIZE); - if (datasec <= FS_EXTENSION_BLOCKS + 1) - pl (sector, 512 - 204 - extensioncounter * 4, datablock2); - else - pl (sector3, 512 - 204 - extensioncounter * 4, datablock2); - extensioncounter++; - } - if (datasec > FS_EXTENSION_BLOCKS) { - pl (sector3, 8, extensioncounter); - disk_checksum(sector3, sector3 + 20); - writeimageblock (z, sector3, extensionblock * FS_FLOPPY_BLOCKSIZE); - } - disk_checksum(sector, sector + 20); - writeimageblock (z, sector, block * FS_FLOPPY_BLOCKSIZE); - return block; + writeimageblock (z, sector3, extensionblock * FS_FLOPPY_BLOCKSIZE); + } + disk_checksum(sector, sector + 20); + writeimageblock (z, sector, block * FS_FLOPPY_BLOCKSIZE); + return block; } static void createbitmapblock (uae_u8 *sector, uae_u8 *bitmap) { - uae_u8 mask; - int i, j; - memset (sector, 0, FS_FLOPPY_BLOCKSIZE); - for (i = FS_FLOPPY_RESERVED; i < FS_FLOPPY_TOTALBLOCKS; i += 8) { - mask = 0; - for (j = 0; j < 8; j++) { - if (bitmap[i + j]) mask |= 1 << j; - } - sector[4 + i / 8] = mask; - } - disk_checksum(sector, sector + 0); + uae_u8 mask; + int i, j; + memset (sector, 0, FS_FLOPPY_BLOCKSIZE); + for (i = FS_FLOPPY_RESERVED; i < FS_FLOPPY_TOTALBLOCKS; i += 8) + { + mask = 0; + for (j = 0; j < 8; j++) + { + if (bitmap[i + j]) mask |= 1 << j; + } + sector[4 + i / 8] = mask; + } + disk_checksum(sector, sector + 0); } static int createimagefromexe (struct zfile *src, struct zfile *dst) { - uae_u8 sector1[FS_FLOPPY_BLOCKSIZE], sector2[FS_FLOPPY_BLOCKSIZE]; - uae_u8 bitmap[FS_FLOPPY_TOTALBLOCKS + 8]; - int exesize; - int blocksize = FS_OFS_DATABLOCKSIZE; - int blocks, extensionblocks; - int totalblocks; - int fblock1, dblock1; - char *fname1 = "runme.exe"; - TCHAR *fname1b = _T("runme.adf"); - char *fname2 = "startup-sequence"; - char *dirname1 = "s"; - struct zfile *ss; + uae_u8 sector1[FS_FLOPPY_BLOCKSIZE], sector2[FS_FLOPPY_BLOCKSIZE]; + uae_u8 bitmap[FS_FLOPPY_TOTALBLOCKS + 8]; + int exesize; + int blocksize = FS_OFS_DATABLOCKSIZE; + int blocks, extensionblocks; + int totalblocks; + int fblock1, dblock1; + char *fname1 = "runme.exe"; + TCHAR *fname1b = _T("runme.adf"); + char *fname2 = "startup-sequence"; + char *dirname1 = "s"; + struct zfile *ss; - memset (bitmap, 0, sizeof bitmap); - zfile_fseek (src, 0, SEEK_END); - exesize = zfile_ftell (src); - blocks = (exesize + blocksize - 1) / blocksize; - extensionblocks = (blocks + FS_EXTENSION_BLOCKS - 1) / FS_EXTENSION_BLOCKS; - /* bootblock=2, root=1, bitmap=1, startup-sequence=1+1, exefileheader=1 */ - totalblocks = 2 + 1 + 1 + 2 + 1 + blocks + extensionblocks; - if (totalblocks > FS_FLOPPY_TOTALBLOCKS) - return 0; + memset (bitmap, 0, sizeof bitmap); + zfile_fseek (src, 0, SEEK_END); + exesize = zfile_ftell (src); + blocks = (exesize + blocksize - 1) / blocksize; + extensionblocks = (blocks + FS_EXTENSION_BLOCKS - 1) / FS_EXTENSION_BLOCKS; + /* bootblock=2, root=1, bitmap=1, startup-sequence=1+1, exefileheader=1 */ + totalblocks = 2 + 1 + 1 + 2 + 1 + blocks + extensionblocks; + if (totalblocks > FS_FLOPPY_TOTALBLOCKS) + return 0; - bitmap[880] = 1; - bitmap[881] = 1; - bitmap[0] = 1; - bitmap[1] = 1; + bitmap[880] = 1; + bitmap[881] = 1; + bitmap[0] = 1; + bitmap[1] = 1; - dblock1 = createdirheaderblock (sector2, 880, dirname1, bitmap); - ss = zfile_fopen_empty (src, fname1b, strlen(fname1)); - zfile_fwrite (fname1, strlen(fname1), 1, ss); - fblock1 = createfileheaderblock (dst, sector1, dblock1, fname2, ss, bitmap); - zfile_fclose (ss); - pl (sector2, 24 + dirhash (fname2) * 4, fblock1); - disk_checksum(sector2, sector2 + 20); - writeimageblock (dst, sector2, dblock1 * FS_FLOPPY_BLOCKSIZE); + dblock1 = createdirheaderblock (sector2, 880, dirname1, bitmap); + ss = zfile_fopen_empty (src, fname1b, strlen(fname1)); + zfile_fwrite (fname1, strlen(fname1), 1, ss); + fblock1 = createfileheaderblock (dst, sector1, dblock1, fname2, ss, bitmap); + zfile_fclose (ss); + pl (sector2, 24 + dirhash (fname2) * 4, fblock1); + disk_checksum(sector2, sector2 + 20); + writeimageblock (dst, sector2, dblock1 * FS_FLOPPY_BLOCKSIZE); - fblock1 = createfileheaderblock (dst, sector1, 880, fname1, src, bitmap); + fblock1 = createfileheaderblock (dst, sector1, 880, fname1, src, bitmap); - createrootblock (sector1, "empty"); - pl (sector1, 24 + dirhash (fname1) * 4, fblock1); - pl (sector1, 24 + dirhash (dirname1) * 4, dblock1); - disk_checksum(sector1, sector1 + 20); - writeimageblock (dst, sector1, 880 * FS_FLOPPY_BLOCKSIZE); - - createbitmapblock (sector1, bitmap); - writeimageblock (dst, sector1, 881 * FS_FLOPPY_BLOCKSIZE); + createrootblock (sector1, "empty"); + pl (sector1, 24 + dirhash (fname1) * 4, fblock1); + pl (sector1, 24 + dirhash (dirname1) * 4, dblock1); + disk_checksum(sector1, sector1 + 20); + writeimageblock (dst, sector1, 880 * FS_FLOPPY_BLOCKSIZE); - createbootblock (sector1, 1); - writeimageblock (dst, sector1, 0 * FS_FLOPPY_BLOCKSIZE); + createbitmapblock (sector1, bitmap); + writeimageblock (dst, sector1, 881 * FS_FLOPPY_BLOCKSIZE); - return 1; + createbootblock (sector1, 1); + writeimageblock (dst, sector1, 0 * FS_FLOPPY_BLOCKSIZE); + + return 1; } static int get_floppy_speed (void) { - int m = currprefs.floppy_speed; - if (m <= 10) - m = 100; - m = NORMAL_FLOPPY_SPEED * 100 / m; - return m; + int m = currprefs.floppy_speed; + if (m <= 10) + m = 100; + m = NORMAL_FLOPPY_SPEED * 100 / m; + return m; } static int get_floppy_speed2 (drive *drv) { - int m = get_floppy_speed () * drv->tracklen / (2 * 8 * FLOPPY_WRITE_LEN * drv->ddhd); - if (m <= 0) - m = 1; - return m; + int m = get_floppy_speed () * drv->tracklen / (2 * 8 * FLOPPY_WRITE_LEN * drv->ddhd); + if (m <= 0) + m = 1; + return m; } static TCHAR *drive_id_name (drive *drv) { - switch (drv->drive_id) - { - case DRIVE_ID_35HD : return _T("3.5HD"); - case DRIVE_ID_525SD: return _T("5.25SD"); - case DRIVE_ID_35DD : return _T("3.5DD"); - case DRIVE_ID_NONE : return _T("NONE"); - } - return _T("UNKNOWN"); + switch (drv->drive_id) + { + case DRIVE_ID_35HD : + return _T("3.5HD"); + case DRIVE_ID_525SD: + return _T("5.25SD"); + case DRIVE_ID_35DD : + return _T("3.5DD"); + case DRIVE_ID_NONE : + return _T("NONE"); + } + return _T("UNKNOWN"); } /* Simulate exact behaviour of an A3000T 3.5 HD disk drive. @@ -501,867 +534,949 @@ static TCHAR *drive_id_name (drive *drv) */ static void drive_settype_id (drive *drv) { - int t = currprefs.floppyslots[drv - &floppy[0]].dfxtype; + int t = currprefs.floppyslots[drv - &floppy[0]].dfxtype; - switch (t) - { + switch (t) + { case DRV_35_HD: #ifdef FLOPPY_DRIVE_HD - if (!drv->diskfile || drv->ddhd <= 1) - drv->drive_id = DRIVE_ID_35DD; - else - drv->drive_id = DRIVE_ID_35HD; + if (!drv->diskfile || drv->ddhd <= 1) + drv->drive_id = DRIVE_ID_35DD; + else + drv->drive_id = DRIVE_ID_35HD; #else - drv->drive_id = DRIVE_ID_35DD; + drv->drive_id = DRIVE_ID_35DD; #endif - break; + break; case DRV_35_DD_ESCOM: case DRV_35_DD: default: - drv->drive_id = DRIVE_ID_35DD; - break; + drv->drive_id = DRIVE_ID_35DD; + break; case DRV_525_SD: - drv->drive_id = DRIVE_ID_525SD; - break; + drv->drive_id = DRIVE_ID_525SD; + break; case DRV_NONE: - drv->drive_id = DRIVE_ID_NONE; - break; - } + drv->drive_id = DRIVE_ID_NONE; + break; + } } static void drive_image_free (drive *drv) { - drv->filetype = ADF_NONE; - zfile_fclose (drv->diskfile); - drv->diskfile = 0; - zfile_fclose (drv->writediskfile); - drv->writediskfile = 0; + drv->filetype = ADF_NONE; + zfile_fclose (drv->diskfile); + drv->diskfile = 0; + zfile_fclose (drv->writediskfile); + drv->writediskfile = 0; } static int drive_insert (drive * drv, struct uae_prefs *p, int dnum, const TCHAR *fname, bool fake); static void reset_drive_gui(int num) { - gui_data.drive_disabled[num] = 0; - gui_data.df[num][0] = 0; - gui_data.crc32[num] = 0; - if (currprefs.floppyslots[num].dfxtype < 0) - gui_data.drive_disabled[num] = 1; + gui_data.drive_disabled[num] = 0; + gui_data.df[num][0] = 0; + gui_data.crc32[num] = 0; + if (currprefs.floppyslots[num].dfxtype < 0) + gui_data.drive_disabled[num] = 1; } static void reset_drive(int num) { - drive *drv = &floppy[num]; + drive *drv = &floppy[num]; - drive_image_free (drv); - - drv->motordelay = 0; - drv->state = 0; - drv->wrprot = 0; - drv->mfmpos = 0; - drv->tracklen = drv->prevtracklen = 0; - drv->trackspeed = 0; - drv->num_tracks = drv->write_num_tracks = drv->write_num_tracks = 0; - drv->dskready = 0; - drv->steplimit = drv->steplimitcycle = 0; - drv->indexhack = 0; - drv->floppybitcounter = 0; - - drv->motoroff = 1; - drv->idbit = 0; - drv->drive_id = 0; - drv->drive_id_scnt = 0; - disabled &= ~(1 << num); - if (currprefs.floppyslots[num].dfxtype < 0) - disabled |= 1 << num; - reset_drive_gui(num); - /* most internal Amiga floppy drives won't enable - * diskready until motor is running at full speed - * and next indexsync has been passed - */ - drv->indexhackmode = 0; - if (num == 0 && currprefs.floppyslots[num].dfxtype == 0) - drv->indexhackmode = 1; - drv->dskchange_time = 0; - drv->dskchange = false; - drv->dskready_down_time = 0; - drv->dskready_up_time = 0; - drv->buffered_cyl = -1; - drv->buffered_side = -1; - gui_led (num + LED_DF0, 0); - drive_settype_id (drv); - _tcscpy (currprefs.floppyslots[num].df, changed_prefs.floppyslots[num].df); - drv->newname[0] = 0; - if (!drive_insert (drv, &currprefs, num, currprefs.floppyslots[num].df, false)) - disk_eject (num); + drive_image_free (drv); + + drv->motordelay = 0; + drv->state = 0; + drv->wrprot = 0; + drv->mfmpos = 0; + drv->tracklen = drv->prevtracklen = 0; + drv->trackspeed = 0; + drv->num_tracks = drv->write_num_tracks = drv->write_num_tracks = 0; + drv->dskready = 0; + drv->steplimit = drv->steplimitcycle = 0; + drv->indexhack = 0; + drv->floppybitcounter = 0; + + drv->motoroff = 1; + drv->idbit = 0; + drv->drive_id = 0; + drv->drive_id_scnt = 0; + disabled &= ~(1 << num); + if (currprefs.floppyslots[num].dfxtype < 0) + disabled |= 1 << num; + reset_drive_gui(num); + /* most internal Amiga floppy drives won't enable + * diskready until motor is running at full speed + * and next indexsync has been passed + */ + drv->indexhackmode = 0; + if (num == 0 && currprefs.floppyslots[num].dfxtype == 0) + drv->indexhackmode = 1; + drv->dskchange_time = 0; + drv->dskchange = false; + drv->dskready_down_time = 0; + drv->dskready_up_time = 0; + drv->buffered_cyl = -1; + drv->buffered_side = -1; + gui_led (num + LED_DF0, 0); + drive_settype_id (drv); + _tcscpy (currprefs.floppyslots[num].df, changed_prefs.floppyslots[num].df); + drv->newname[0] = 0; + if (!drive_insert (drv, &currprefs, num, currprefs.floppyslots[num].df, false)) + disk_eject (num); } /* code for track display */ static void update_drive_gui (int num) { - if (num>=currprefs.nr_floppies) - return; - drive *drv = floppy + num; - bool writ = dskdmaen == DSKDMA_WRITE && drv->state && !((selected | disabled) & (1 << num)); + if (num>=currprefs.nr_floppies) + return; + drive *drv = floppy + num; + bool writ = dskdmaen == DSKDMA_WRITE && drv->state && !((selected | disabled) & (1 << num)); - if (drv->state == gui_data.drive_motor[num] - && drv->cyl == gui_data.drive_track[num] - && side == gui_data.drive_side - && drv->crc32 == gui_data.crc32[num] - && writ == gui_data.drive_writing[num] - && !_tcscmp (gui_data.df[num], currprefs.floppyslots[num].df)) - return; - _tcscpy (gui_data.df[num], currprefs.floppyslots[num].df); - gui_data.crc32[num] = drv->crc32; - gui_data.drive_motor[num] = drv->state; - gui_data.drive_track[num] = drv->cyl; - gui_data.drive_side = side; - gui_data.drive_writing[num] = writ; - gui_led (num + LED_DF0, (gui_data.drive_motor[num] ? 1 : 0) | (gui_data.drive_writing[num] ? 2 : 0)); + if (drv->state == gui_data.drive_motor[num] + && drv->cyl == gui_data.drive_track[num] + && side == gui_data.drive_side + && drv->crc32 == gui_data.crc32[num] + && writ == gui_data.drive_writing[num] + && !_tcscmp (gui_data.df[num], currprefs.floppyslots[num].df)) + return; + _tcscpy (gui_data.df[num], currprefs.floppyslots[num].df); + gui_data.crc32[num] = drv->crc32; + gui_data.drive_motor[num] = drv->state; + gui_data.drive_track[num] = drv->cyl; + gui_data.drive_side = side; + gui_data.drive_writing[num] = writ; + gui_led (num + LED_DF0, (gui_data.drive_motor[num] ? 1 : 0) | (gui_data.drive_writing[num] ? 2 : 0)); } static void drive_fill_bigbuf (drive *drv, int); int DISK_validate_filename (struct uae_prefs *p, const TCHAR *fname, int leave_open, bool *wrprot, uae_u32 *crc32, struct zfile **zf) { - if (zf) - *zf = NULL; - if (crc32) - *crc32 = 0; - if (wrprot) - *wrprot = 0; - if (leave_open || !zf) { - struct zfile *f = zfile_fopen (fname, _T("r+b"), ZFD_NORMAL | ZFD_DISKHISTORY); - if (!f) { - if (wrprot) - *wrprot = 1; - f = zfile_fopen (fname, _T("rb"), ZFD_NORMAL | ZFD_DISKHISTORY); + if (zf) + *zf = NULL; + if (crc32) + *crc32 = 0; + if (wrprot) + *wrprot = 0; + if (leave_open || !zf) + { + struct zfile *f = zfile_fopen (fname, _T("r+b"), ZFD_NORMAL | ZFD_DISKHISTORY); + if (!f) + { + if (wrprot) + *wrprot = 1; + f = zfile_fopen (fname, _T("rb"), ZFD_NORMAL | ZFD_DISKHISTORY); + } + if (f && crc32) + *crc32 = zfile_crc32 (f); + if (!zf) + zfile_fclose (f); + else + *zf = f; + return f ? 1 : 0; + } + else + { + if (zfile_exists (fname)) + { + if (wrprot) + *wrprot = 0; + if (crc32) + { + struct zfile *f = zfile_fopen (fname, _T("rb"), ZFD_NORMAL | ZFD_DISKHISTORY); + if (f) + *crc32 = zfile_crc32 (f); + zfile_fclose (f); + } + return 1; + } + else + { + if (wrprot) + *wrprot = 1; + return 0; + } } - if (f && crc32) - *crc32 = zfile_crc32 (f); - if (!zf) - zfile_fclose (f); - else - *zf = f; - return f ? 1 : 0; - } else { - if (zfile_exists (fname)) { - if (wrprot) - *wrprot = 0; - if (crc32) { - struct zfile *f = zfile_fopen (fname, _T("rb"), ZFD_NORMAL | ZFD_DISKHISTORY); - if (f) - *crc32 = zfile_crc32 (f); - zfile_fclose (f); - } - return 1; - } else { - if (wrprot) - *wrprot = 1; - return 0; - } - } } static void updatemfmpos (drive *drv) { - if (drv->prevtracklen) - drv->mfmpos = drv->mfmpos * (drv->tracklen * 1000 / drv->prevtracklen) / 1000; - drv->mfmpos %= drv->tracklen; - drv->prevtracklen = drv->tracklen; + if (drv->prevtracklen) + drv->mfmpos = drv->mfmpos * (drv->tracklen * 1000 / drv->prevtracklen) / 1000; + drv->mfmpos %= drv->tracklen; + drv->prevtracklen = drv->tracklen; } static void track_reset (drive *drv) { - drv->tracklen = FLOPPY_WRITE_LEN * drv->ddhd * 2 * 8; - drv->revolutions = 1; - drv->trackspeed = get_floppy_speed (); - drv->buffered_side = -1; - drv->skipoffset = -1; - drv->tracktiming[0] = 0; - memset (drv->bigmfmbuf, 0xaa, FLOPPY_WRITE_LEN * 2 * drv->ddhd); - updatemfmpos (drv); + drv->tracklen = FLOPPY_WRITE_LEN * drv->ddhd * 2 * 8; + drv->revolutions = 1; + drv->trackspeed = get_floppy_speed (); + drv->buffered_side = -1; + drv->skipoffset = -1; + drv->tracktiming[0] = 0; + memset (drv->bigmfmbuf, 0xaa, FLOPPY_WRITE_LEN * 2 * drv->ddhd); + updatemfmpos (drv); } static int read_header_ext2 (struct zfile *diskfile, trackid *trackdata, int *num_tracks, int *ddhd) { - uae_u8 buffer[2 + 2 + 4 + 4]; - trackid *tid; - int offs; - int i; + uae_u8 buffer[2 + 2 + 4 + 4]; + trackid *tid; + int offs; + int i; - zfile_fseek (diskfile, 0, SEEK_SET); - zfile_fread (buffer, 1, 8, diskfile); - if (strncmp ((char *)buffer, "UAE-1ADF", 8)) - return 0; - zfile_fread (buffer, 1, 4, diskfile); - *num_tracks = buffer[2] * 256 + buffer[3]; - offs = 8 + 2 + 2 + (*num_tracks) * (2 + 2 + 4 + 4); + zfile_fseek (diskfile, 0, SEEK_SET); + zfile_fread (buffer, 1, 8, diskfile); + if (strncmp ((char *)buffer, "UAE-1ADF", 8)) + return 0; + zfile_fread (buffer, 1, 4, diskfile); + *num_tracks = buffer[2] * 256 + buffer[3]; + offs = 8 + 2 + 2 + (*num_tracks) * (2 + 2 + 4 + 4); - for (i = 0; i < (*num_tracks); i++) { - tid = trackdata + i; - zfile_fread (buffer, 2 + 2 + 4 + 4, 1, diskfile); - tid->type = (image_tracktype)buffer[3]; - tid->revolutions = buffer[2] + 1; - tid->len = buffer[5] * 65536 + buffer[6] * 256 + buffer[7]; - tid->bitlen = buffer[9] * 65536 + buffer[10] * 256 + buffer[11]; - tid->offs = offs; - if (tid->len > 20000 && ddhd) - *ddhd = 2; - tid->track = i; - offs += tid->len; - } - return 1; + for (i = 0; i < (*num_tracks); i++) + { + tid = trackdata + i; + zfile_fread (buffer, 2 + 2 + 4 + 4, 1, diskfile); + tid->type = (image_tracktype)buffer[3]; + tid->revolutions = buffer[2] + 1; + tid->len = buffer[5] * 65536 + buffer[6] * 256 + buffer[7]; + tid->bitlen = buffer[9] * 65536 + buffer[10] * 256 + buffer[11]; + tid->offs = offs; + if (tid->len > 20000 && ddhd) + *ddhd = 2; + tid->track = i; + offs += tid->len; + } + return 1; } TCHAR *DISK_get_saveimagepath (const TCHAR *name) { - static TCHAR name1[MAX_DPATH]; - TCHAR name2[MAX_DPATH]; - TCHAR path[MAX_DPATH]; - int i; - - _tcscpy (name2, name); - i = _tcslen (name2) - 1; - while (i > 0) { - if (name2[i] == '.') { - name2[i] = 0; - break; - } - i--; - } - while (i > 0) { - if (name2[i] == '/' || name2[i] == '\\') { - i++; - break; - } - i--; - } - fetch_saveimagepath (path, sizeof path / sizeof (TCHAR), 1); - _stprintf (name1, _T("%s%s_save.adf"), path, name2 + i); - return name1; + static TCHAR name1[MAX_DPATH]; + TCHAR name2[MAX_DPATH]; + TCHAR path[MAX_DPATH]; + int i; + + _tcscpy (name2, name); + i = _tcslen (name2) - 1; + while (i > 0) + { + if (name2[i] == '.') + { + name2[i] = 0; + break; + } + i--; + } + while (i > 0) + { + if (name2[i] == '/' || name2[i] == '\\') + { + i++; + break; + } + i--; + } + fetch_saveimagepath (path, sizeof path / sizeof (TCHAR), 1); + _stprintf (name1, _T("%s%s_save.adf"), path, name2 + i); + return name1; } static struct zfile *getwritefile (struct uae_prefs *p, const TCHAR *name, bool *wrprot) { - struct zfile *zf; - DISK_validate_filename (p, DISK_get_saveimagepath (name), 1, wrprot, NULL, &zf); - return zf; + struct zfile *zf; + DISK_validate_filename (p, DISK_get_saveimagepath (name), 1, wrprot, NULL, &zf); + return zf; } static int iswritefileempty (struct uae_prefs *p, const TCHAR *name) { - struct zfile *zf; - bool wrprot; - uae_char buffer[8]; - trackid td[MAX_TRACKS]; - int tracks, ddhd, i, ret; + struct zfile *zf; + bool wrprot; + uae_char buffer[8]; + trackid td[MAX_TRACKS]; + int tracks, ddhd, i, ret; - zf = getwritefile (p, name, &wrprot); - if (!zf) return 1; - zfile_fread (buffer, sizeof (char), 8, zf); - if (strncmp ((uae_char*)buffer, "UAE-1ADF", 8)) - return 0; - ret = read_header_ext2 (zf, td, &tracks, &ddhd); - zfile_fclose (zf); - if (!ret) - return 1; - for (i = 0; i < tracks; i++) { - if (td[i].bitlen) return 0; - } - return 1; + zf = getwritefile (p, name, &wrprot); + if (!zf) return 1; + zfile_fread (buffer, sizeof (char), 8, zf); + if (strncmp ((uae_char*)buffer, "UAE-1ADF", 8)) + return 0; + ret = read_header_ext2 (zf, td, &tracks, &ddhd); + zfile_fclose (zf); + if (!ret) + return 1; + for (i = 0; i < tracks; i++) + { + if (td[i].bitlen) return 0; + } + return 1; } static int openwritefile (struct uae_prefs *p, drive *drv, int create) { - bool wrprot = 0; + bool wrprot = 0; - drv->writediskfile = getwritefile (p, currprefs.floppyslots[drv - &floppy[0]].df, &wrprot); - if (drv->writediskfile) { - drv->wrprot = wrprot; - if (!read_header_ext2 (drv->writediskfile, drv->writetrackdata, &drv->write_num_tracks, 0)) { - zfile_fclose (drv->writediskfile); - drv->writediskfile = 0; - drv->wrprot = 1; - } else { - if (drv->write_num_tracks > drv->num_tracks) - drv->num_tracks = drv->write_num_tracks; - } - } else if (zfile_iscompressed (drv->diskfile)) { - drv->wrprot = 1; - } - return drv->writediskfile ? 1 : 0; + drv->writediskfile = getwritefile (p, currprefs.floppyslots[drv - &floppy[0]].df, &wrprot); + if (drv->writediskfile) + { + drv->wrprot = wrprot; + if (!read_header_ext2 (drv->writediskfile, drv->writetrackdata, &drv->write_num_tracks, 0)) + { + zfile_fclose (drv->writediskfile); + drv->writediskfile = 0; + drv->wrprot = 1; + } + else + { + if (drv->write_num_tracks > drv->num_tracks) + drv->num_tracks = drv->write_num_tracks; + } + } + else if (zfile_iscompressed (drv->diskfile)) + { + drv->wrprot = 1; + } + return drv->writediskfile ? 1 : 0; } static bool diskfile_iswriteprotect (struct uae_prefs *p, const TCHAR *fname, int *needwritefile, drive_type *drvtype) { - struct zfile *zf1, *zf2; - bool wrprot1 = 0, wrprot2 = 1; - uae_char buffer[25]; - - *needwritefile = 0; - *drvtype = DRV_35_DD; - DISK_validate_filename (p, fname, 1, &wrprot1, NULL, &zf1); - if (!zf1) - return 1; - if (zfile_iscompressed (zf1)) { - wrprot1 = 1; - *needwritefile = 1; - } - zf2 = getwritefile (p, fname, &wrprot2); - zfile_fclose (zf2); - zfile_fread (buffer, sizeof (char), 25, zf1); - zfile_fclose (zf1); - if (strncmp ((uae_char *) buffer, "Formatted Disk Image file", 25) == 0) { - *needwritefile = 1; - return wrprot2; - } - if (strncmp ((uae_char *) buffer, "UAE-1ADF", 8) == 0) { - if (wrprot1) - return wrprot2; - return wrprot1; - } - if (strncmp ((uae_char *) buffer, "UAE--ADF", 8) == 0) { - *needwritefile = 1; - return wrprot2; - } - if (memcmp (exeheader, buffer, sizeof exeheader) == 0) - return 0; - if (wrprot1) - return wrprot2; - return wrprot1; + struct zfile *zf1, *zf2; + bool wrprot1 = 0, wrprot2 = 1; + uae_char buffer[25]; + + *needwritefile = 0; + *drvtype = DRV_35_DD; + DISK_validate_filename (p, fname, 1, &wrprot1, NULL, &zf1); + if (!zf1) + return 1; + if (zfile_iscompressed (zf1)) + { + wrprot1 = 1; + *needwritefile = 1; + } + zf2 = getwritefile (p, fname, &wrprot2); + zfile_fclose (zf2); + zfile_fread (buffer, sizeof (char), 25, zf1); + zfile_fclose (zf1); + if (strncmp ((uae_char *) buffer, "Formatted Disk Image file", 25) == 0) + { + *needwritefile = 1; + return wrprot2; + } + if (strncmp ((uae_char *) buffer, "UAE-1ADF", 8) == 0) + { + if (wrprot1) + return wrprot2; + return wrprot1; + } + if (strncmp ((uae_char *) buffer, "UAE--ADF", 8) == 0) + { + *needwritefile = 1; + return wrprot2; + } + if (memcmp (exeheader, buffer, sizeof exeheader) == 0) + return 0; + if (wrprot1) + return wrprot2; + return wrprot1; } static int drive_insert (drive * drv, struct uae_prefs *p, int dnum, const TCHAR *fname, bool fake) { - uae_u8 buffer[2 + 2 + 4 + 4]; - trackid *tid; - int num_tracks, size; - int canauto; - const TCHAR *ext; + uae_u8 buffer[2 + 2 + 4 + 4]; + trackid *tid; + int num_tracks, size; + int canauto; + const TCHAR *ext; - drive_image_free (drv); - DISK_validate_filename (p, fname, 1, &drv->wrprot, &drv->crc32, &drv->diskfile); - drv->ddhd = 1; - drv->num_secs = 0; - drv->hard_num_cyls = p->floppyslots[dnum].dfxtype == DRV_525_SD ? 40 : 80; - drv->tracktiming[0] = 0; - drv->useturbo = 0; - drv->indexoffset = 0; + drive_image_free (drv); + DISK_validate_filename (p, fname, 1, &drv->wrprot, &drv->crc32, &drv->diskfile); + drv->ddhd = 1; + drv->num_secs = 0; + drv->hard_num_cyls = p->floppyslots[dnum].dfxtype == DRV_525_SD ? 40 : 80; + drv->tracktiming[0] = 0; + drv->useturbo = 0; + drv->indexoffset = 0; - gui_disk_image_change (dnum, fname, drv->wrprot); + gui_disk_image_change (dnum, fname, drv->wrprot); - canauto = 0; - ext = _tcsrchr (fname, '.'); - if (ext) { - if (!_tcsicmp (ext + 1, _T("adf")) || !_tcsicmp (ext + 1, _T("adz")) || !_tcsicmp (ext + 1, _T("st")) || !_tcsicmp (ext + 1, _T("ima")) || !_tcsicmp (ext + 1, _T("img"))) - canauto = 1; - } + canauto = 0; + ext = _tcsrchr (fname, '.'); + if (ext) + { + if (!_tcsicmp (ext + 1, _T("adf")) || !_tcsicmp (ext + 1, _T("adz")) || !_tcsicmp (ext + 1, _T("st")) || !_tcsicmp (ext + 1, _T("ima")) || !_tcsicmp (ext + 1, _T("img"))) + canauto = 1; + } - if (!drv->motoroff) { - drv->dskready_up_time = DSKREADY_UP_TIME; - drv->dskready_down_time = 0; - } + if (!drv->motoroff) + { + drv->dskready_up_time = DSKREADY_UP_TIME; + drv->dskready_down_time = 0; + } - if (drv->diskfile == 0) { - track_reset (drv); - return 0; - } + if (drv->diskfile == 0) + { + track_reset (drv); + return 0; + } - _tcsncpy (currprefs.floppyslots[dnum].df, fname, 255); - currprefs.floppyslots[dnum].df[255] = 0; - _tcsncpy (changed_prefs.floppyslots[dnum].df, fname, 255); - changed_prefs.floppyslots[dnum].df[255] = 0; - _tcscpy (drv->newname, fname); - gui_filename (dnum, fname); + _tcsncpy (currprefs.floppyslots[dnum].df, fname, 255); + currprefs.floppyslots[dnum].df[255] = 0; + _tcsncpy (changed_prefs.floppyslots[dnum].df, fname, 255); + changed_prefs.floppyslots[dnum].df[255] = 0; + _tcscpy (drv->newname, fname); + gui_filename (dnum, fname); - memset (buffer, 0, sizeof buffer); - size = 0; - if (drv->diskfile) { - zfile_fread (buffer, sizeof (char), 8, drv->diskfile); - zfile_fseek (drv->diskfile, 0, SEEK_END); - size = zfile_ftell (drv->diskfile); - zfile_fseek (drv->diskfile, 0, SEEK_SET); - } + memset (buffer, 0, sizeof buffer); + size = 0; + if (drv->diskfile) + { + zfile_fread (buffer, sizeof (char), 8, drv->diskfile); + zfile_fseek (drv->diskfile, 0, SEEK_END); + size = zfile_ftell (drv->diskfile); + zfile_fseek (drv->diskfile, 0, SEEK_SET); + } - if (strncmp ((char*) buffer, "UAE-1ADF", 8) == 0) { + if (strncmp ((char*) buffer, "UAE-1ADF", 8) == 0) + { - read_header_ext2 (drv->diskfile, drv->trackdata, &drv->num_tracks, &drv->ddhd); - drv->filetype = ADF_EXT2; - drv->num_secs = 11; - if (drv->ddhd > 1) - drv->num_secs = 22; + read_header_ext2 (drv->diskfile, drv->trackdata, &drv->num_tracks, &drv->ddhd); + drv->filetype = ADF_EXT2; + drv->num_secs = 11; + if (drv->ddhd > 1) + drv->num_secs = 22; - } else if (strncmp ((char *) buffer, "UAE--ADF", 8) == 0) { - int offs = 160 * 4 + 8; - int i; + } + else if (strncmp ((char *) buffer, "UAE--ADF", 8) == 0) + { + int offs = 160 * 4 + 8; + int i; - drv->wrprot = 1; - drv->filetype = ADF_EXT1; - drv->num_tracks = 160; - drv->num_secs = 11; + drv->wrprot = 1; + drv->filetype = ADF_EXT1; + drv->num_tracks = 160; + drv->num_secs = 11; - zfile_fseek (drv->diskfile, 8, SEEK_SET); - for (i = 0; i < 160; i++) { - tid = &drv->trackdata[i]; - zfile_fread (buffer, 4, 1, drv->diskfile); - tid->sync = buffer[0] * 256 + buffer[1]; - tid->len = buffer[2] * 256 + buffer[3]; - tid->offs = offs; - tid->revolutions = 1; - if (tid->sync == 0) { - tid->type = TRACK_AMIGADOS; - tid->bitlen = 0; - } else { - tid->type = TRACK_RAW1; - tid->bitlen = tid->len * 8; - } - offs += tid->len; - } + zfile_fseek (drv->diskfile, 8, SEEK_SET); + for (i = 0; i < 160; i++) + { + tid = &drv->trackdata[i]; + zfile_fread (buffer, 4, 1, drv->diskfile); + tid->sync = buffer[0] * 256 + buffer[1]; + tid->len = buffer[2] * 256 + buffer[3]; + tid->offs = offs; + tid->revolutions = 1; + if (tid->sync == 0) + { + tid->type = TRACK_AMIGADOS; + tid->bitlen = 0; + } + else + { + tid->type = TRACK_RAW1; + tid->bitlen = tid->len * 8; + } + offs += tid->len; + } - } else if (memcmp (exeheader, buffer, sizeof exeheader) == 0) { - int i; - struct zfile *z = zfile_fopen_empty (NULL, _T(""), 512 * 1760); - createimagefromexe (drv->diskfile, z); - drv->filetype = ADF_NORMAL; - zfile_fclose (drv->diskfile); - drv->diskfile = z; - drv->num_tracks = 160; - drv->num_secs = 11; - for (i = 0; i < drv->num_tracks; i++) { - tid = &drv->trackdata[i]; - tid->type = TRACK_AMIGADOS; - tid->len = 512 * drv->num_secs; - tid->bitlen = 0; - tid->offs = i * 512 * drv->num_secs; - tid->revolutions = 1; - } - drv->useturbo = 1; + } + else if (memcmp (exeheader, buffer, sizeof exeheader) == 0) + { + int i; + struct zfile *z = zfile_fopen_empty (NULL, _T(""), 512 * 1760); + createimagefromexe (drv->diskfile, z); + drv->filetype = ADF_NORMAL; + zfile_fclose (drv->diskfile); + drv->diskfile = z; + drv->num_tracks = 160; + drv->num_secs = 11; + for (i = 0; i < drv->num_tracks; i++) + { + tid = &drv->trackdata[i]; + tid->type = TRACK_AMIGADOS; + tid->len = 512 * drv->num_secs; + tid->bitlen = 0; + tid->offs = i * 512 * drv->num_secs; + tid->revolutions = 1; + } + drv->useturbo = 1; - } else if (canauto && ( + } + else if (canauto && ( - // double sided - size == 9 * 80 * 2 * 512 || size == 18 * 80 * 2 * 512 || size == 10 * 80 * 2 * 512 || size == 20 * 80 * 2 * 512 || - size == 9 * 81 * 2 * 512 || size == 18 * 81 * 2 * 512 || size == 10 * 81 * 2 * 512 || size == 20 * 81 * 2 * 512 || - size == 9 * 82 * 2 * 512 || size == 18 * 82 * 2 * 512 || size == 10 * 82 * 2 * 512 || size == 20 * 82 * 2 * 512 || - // single sided - size == 9 * 80 * 1 * 512 || size == 18 * 80 * 1 * 512 || size == 10 * 80 * 1 * 512 || size == 20 * 80 * 1 * 512 || - size == 9 * 81 * 1 * 512 || size == 18 * 81 * 1 * 512 || size == 10 * 81 * 1 * 512 || size == 20 * 81 * 1 * 512 || - size == 9 * 82 * 1 * 512 || size == 18 * 82 * 1 * 512 || size == 10 * 82 * 1 * 512 || size == 20 * 82 * 1 * 512)) { - /* PC formatted image */ - int i, side; + // double sided + size == 9 * 80 * 2 * 512 || size == 18 * 80 * 2 * 512 || size == 10 * 80 * 2 * 512 || size == 20 * 80 * 2 * 512 || + size == 9 * 81 * 2 * 512 || size == 18 * 81 * 2 * 512 || size == 10 * 81 * 2 * 512 || size == 20 * 81 * 2 * 512 || + size == 9 * 82 * 2 * 512 || size == 18 * 82 * 2 * 512 || size == 10 * 82 * 2 * 512 || size == 20 * 82 * 2 * 512 || + // single sided + size == 9 * 80 * 1 * 512 || size == 18 * 80 * 1 * 512 || size == 10 * 80 * 1 * 512 || size == 20 * 80 * 1 * 512 || + size == 9 * 81 * 1 * 512 || size == 18 * 81 * 1 * 512 || size == 10 * 81 * 1 * 512 || size == 20 * 81 * 1 * 512 || + size == 9 * 82 * 1 * 512 || size == 18 * 82 * 1 * 512 || size == 10 * 82 * 1 * 512 || size == 20 * 82 * 1 * 512)) + { + /* PC formatted image */ + int i, side; - for (side = 2; side > 0; side--) { - if ( size == 9 * 80 * side * 512 || size == 9 * 81 * side * 512 || size == 9 * 82 * side * 512) { - drv->num_secs = 9; - drv->ddhd = 1; - break; - } else if (size == 18 * 80 * side * 512 || size == 18 * 81 * side * 512 || size == 18 * 82 * side * 512) { - drv->num_secs = 18; - drv->ddhd = 2; - break; - } else if (size == 10 * 80 * side * 512 || size == 10 * 81 * side * 512 || size == 10 * 82 * side * 512) { - drv->num_secs = 10; - drv->ddhd = 1; - break; - } else if (size == 20 * 80 * side * 512 || size == 20 * 81 * side * 512 || size == 20 * 82 * side * 512) { - drv->num_secs = 20; - drv->ddhd = 2; - break; - } - } - drv->num_tracks = size / (drv->num_secs * 512); + for (side = 2; side > 0; side--) + { + if ( size == 9 * 80 * side * 512 || size == 9 * 81 * side * 512 || size == 9 * 82 * side * 512) + { + drv->num_secs = 9; + drv->ddhd = 1; + break; + } + else if (size == 18 * 80 * side * 512 || size == 18 * 81 * side * 512 || size == 18 * 82 * side * 512) + { + drv->num_secs = 18; + drv->ddhd = 2; + break; + } + else if (size == 10 * 80 * side * 512 || size == 10 * 81 * side * 512 || size == 10 * 82 * side * 512) + { + drv->num_secs = 10; + drv->ddhd = 1; + break; + } + else if (size == 20 * 80 * side * 512 || size == 20 * 81 * side * 512 || size == 20 * 82 * side * 512) + { + drv->num_secs = 20; + drv->ddhd = 2; + break; + } + } + drv->num_tracks = size / (drv->num_secs * 512); - drv->filetype = ADF_PCDOS; - tid = &drv->trackdata[0]; - for (i = 0; i < drv->num_tracks; i++) { - tid->type = TRACK_PCDOS; - tid->len = 512 * drv->num_secs; - tid->bitlen = 0; - tid->offs = i * 512 * drv->num_secs; - if (side == 1) { - tid++; - tid->type = TRACK_NONE; - tid->len = 512 * drv->num_secs; - } - tid->revolutions = 1; - tid++; + drv->filetype = ADF_PCDOS; + tid = &drv->trackdata[0]; + for (i = 0; i < drv->num_tracks; i++) + { + tid->type = TRACK_PCDOS; + tid->len = 512 * drv->num_secs; + tid->bitlen = 0; + tid->offs = i * 512 * drv->num_secs; + if (side == 1) + { + tid++; + tid->type = TRACK_NONE; + tid->len = 512 * drv->num_secs; + } + tid->revolutions = 1; + tid++; - } - if (side == 1) - drv->num_tracks *= 2; + } + if (side == 1) + drv->num_tracks *= 2; - } else { - int i, ds; + } + else + { + int i, ds; - ds = 0; - drv->filetype = ADF_NORMAL; + ds = 0; + drv->filetype = ADF_NORMAL; - /* High-density or diskspare disk? */ - drv->num_tracks = 0; - if (size > 160 * 11 * 512 + 511) { // larger than standard adf? - for (i = 80; i <= 83; i++) { - if (size == i * 22 * 512 * 2) { // HD - drv->ddhd = 2; - drv->num_tracks = size / (512 * (drv->num_secs = 22)); - break; - } - if (size == i * 11 * 512 * 2) { // >80 cyl DD - drv->num_tracks = size / (512 * (drv->num_secs = 11)); - break; - } - if (size == i * 12 * 512 * 2) { // ds 12 sectors - drv->num_tracks = size / (512 * (drv->num_secs = 12)); - ds = 1; - break; - } - if (size == i * 24 * 512 * 2) { // ds 24 sectors - drv->num_tracks = size / (512 * (drv->num_secs = 24)); - drv->ddhd = 2; - ds = 1; - break; - } - } - if (drv->num_tracks == 0) { - drv->num_tracks = size / (512 * (drv->num_secs = 22)); - drv->ddhd = 2; - } - } else { - drv->num_tracks = size / (512 * (drv->num_secs = 11)); - } + /* High-density or diskspare disk? */ + drv->num_tracks = 0; + if (size > 160 * 11 * 512 + 511) // larger than standard adf? + { + for (i = 80; i <= 83; i++) + { + if (size == i * 22 * 512 * 2) // HD + { + drv->ddhd = 2; + drv->num_tracks = size / (512 * (drv->num_secs = 22)); + break; + } + if (size == i * 11 * 512 * 2) // >80 cyl DD + { + drv->num_tracks = size / (512 * (drv->num_secs = 11)); + break; + } + if (size == i * 12 * 512 * 2) // ds 12 sectors + { + drv->num_tracks = size / (512 * (drv->num_secs = 12)); + ds = 1; + break; + } + if (size == i * 24 * 512 * 2) // ds 24 sectors + { + drv->num_tracks = size / (512 * (drv->num_secs = 24)); + drv->ddhd = 2; + ds = 1; + break; + } + } + if (drv->num_tracks == 0) + { + drv->num_tracks = size / (512 * (drv->num_secs = 22)); + drv->ddhd = 2; + } + } + else + { + drv->num_tracks = size / (512 * (drv->num_secs = 11)); + } - if (!ds &&drv->num_tracks > MAX_TRACKS) - write_log (_T("Your diskfile is too big, %d bytes!\n"), size); - for (i = 0; i < drv->num_tracks; i++) { - tid = &drv->trackdata[i]; - tid->type = ds ? TRACK_DISKSPARE : TRACK_AMIGADOS; - tid->len = 512 * drv->num_secs; - tid->bitlen = 0; - tid->offs = i * 512 * drv->num_secs; - tid->revolutions = 1; - } - } - openwritefile (p, drv, 0); - drive_settype_id (drv); /* Set DD or HD drive */ - drive_fill_bigbuf (drv, 1); - drv->mfmpos = uaerand (); - drv->mfmpos |= (uaerand () << 16); - drv->mfmpos %= drv->tracklen; - drv->prevtracklen = 0; - update_drive_gui (drv - floppy); - return 1; + if (!ds &&drv->num_tracks > MAX_TRACKS) + write_log (_T("Your diskfile is too big, %d bytes!\n"), size); + for (i = 0; i < drv->num_tracks; i++) + { + tid = &drv->trackdata[i]; + tid->type = ds ? TRACK_DISKSPARE : TRACK_AMIGADOS; + tid->len = 512 * drv->num_secs; + tid->bitlen = 0; + tid->offs = i * 512 * drv->num_secs; + tid->revolutions = 1; + } + } + openwritefile (p, drv, 0); + drive_settype_id (drv); /* Set DD or HD drive */ + drive_fill_bigbuf (drv, 1); + drv->mfmpos = uaerand (); + drv->mfmpos |= (uaerand () << 16); + drv->mfmpos %= drv->tracklen; + drv->prevtracklen = 0; + update_drive_gui (drv - floppy); + return 1; } static void rand_shifter (drive *drv) { - int r = ((uaerand () >> 4) & 7) + 1; - while (r-- > 0) { - word <<= 1; - word |= (uaerand () & 0x1000) ? 1 : 0; - bitoffset++; - bitoffset &= 15; - } + int r = ((uaerand () >> 4) & 7) + 1; + while (r-- > 0) + { + word <<= 1; + word |= (uaerand () & 0x1000) ? 1 : 0; + bitoffset++; + bitoffset &= 15; + } } static void set_steplimit (drive *drv) { - // emulate step limit only if cycle-exact or approximate CPU speed - if (currprefs.m68k_speed != 0) - return; - drv->steplimit = 10; - drv->steplimitcycle = get_cycles (); + // emulate step limit only if cycle-exact or approximate CPU speed + if (currprefs.m68k_speed != 0) + return; + drv->steplimit = 10; + drv->steplimitcycle = get_cycles (); } static int drive_empty (drive * drv) { - return drv->diskfile == 0 && drv->dskchange_time >= 0; + return drv->diskfile == 0 && drv->dskchange_time >= 0; } static void drive_step (drive * drv, int step_direction) { - if (!drive_empty (drv)) - drv->dskchange = 0; - if (drv->steplimit && get_cycles() - drv->steplimitcycle < MIN_STEPLIMIT_CYCLE) { - return; - } - /* A1200's floppy drive needs at least 30 raster lines between steps - * but we'll use very small value for better compatibility with faster CPU emulation - * (stupid trackloaders with CPU delay loops) - */ - set_steplimit (drv); - if (step_direction) { - if (drv->cyl) { - drv->cyl--; + if (!drive_empty (drv)) + drv->dskchange = 0; + if (drv->steplimit && get_cycles() - drv->steplimitcycle < MIN_STEPLIMIT_CYCLE) + { + return; } - } else { - int maxtrack = drv->hard_num_cyls; - if (drv->cyl < maxtrack + 3) { - drv->cyl++; + /* A1200's floppy drive needs at least 30 raster lines between steps + * but we'll use very small value for better compatibility with faster CPU emulation + * (stupid trackloaders with CPU delay loops) + */ + set_steplimit (drv); + if (step_direction) + { + if (drv->cyl) + { + drv->cyl--; + } } - if (drv->cyl >= maxtrack) - write_log (_T("program tried to step over track %d\n"), maxtrack); - } - rand_shifter (drv); + else + { + int maxtrack = drv->hard_num_cyls; + if (drv->cyl < maxtrack + 3) + { + drv->cyl++; + } + if (drv->cyl >= maxtrack) + write_log (_T("program tried to step over track %d\n"), maxtrack); + } + rand_shifter (drv); } static int drive_track0 (drive * drv) { - return drv->cyl == 0; + return drv->cyl == 0; } static int drive_writeprotected (drive * drv) { - return drv->wrprot || drv->diskfile == NULL; + return drv->wrprot || drv->diskfile == NULL; } static int drive_running (drive * drv) { - return !drv->motoroff; + return !drv->motoroff; } void DISK_motordelay_func(uae_u32 v) { - floppy[v].motordelay = 0; + floppy[v].motordelay = 0; } static void drive_motor (drive * drv, bool off) { - if (drv->motoroff && !off) { - drv->dskready_up_time = DSKREADY_UP_TIME; - rand_shifter (drv); - } - if (!drv->motoroff && off) { - drv->drive_id_scnt = 0; /* Reset id shift reg counter */ - drv->dskready_down_time = DSKREADY_DOWN_TIME; - if (currprefs.cpu_model <= 68010 && currprefs.m68k_speed == 0) { - drv->motordelay = 1; - event2_newevent(ev2_disk_motor0 + (drv - floppy), 30, drv - floppy); - } - } - drv->motoroff = off; - if (drv->motoroff) { - drv->dskready = 0; - drv->dskready_up_time = 0; - } else { - drv->dskready_down_time = 0; - } + if (drv->motoroff && !off) + { + drv->dskready_up_time = DSKREADY_UP_TIME; + rand_shifter (drv); + } + if (!drv->motoroff && off) + { + drv->drive_id_scnt = 0; /* Reset id shift reg counter */ + drv->dskready_down_time = DSKREADY_DOWN_TIME; + if (currprefs.cpu_model <= 68010 && currprefs.m68k_speed == 0) + { + drv->motordelay = 1; + event2_newevent(ev2_disk_motor0 + (drv - floppy), 30, drv - floppy); + } + } + drv->motoroff = off; + if (drv->motoroff) + { + drv->dskready = 0; + drv->dskready_up_time = 0; + } + else + { + drv->dskready_down_time = 0; + } } static void read_floppy_data (struct zfile *diskfile, trackid *tid, int offset, uae_u8 *dst, int len) { - if (len == 0) - return; - zfile_fseek (diskfile, tid->offs + offset, SEEK_SET); - zfile_fread (dst, 1, len, diskfile); + if (len == 0) + return; + zfile_fseek (diskfile, tid->offs + offset, SEEK_SET); + zfile_fread (dst, 1, len, diskfile); } /* Megalomania does not like zero MFM words... */ static void mfmcode (uae_u16 * mfm, int words) { - uae_u32 lastword = 0; + uae_u32 lastword = 0; - while (words--) { - uae_u32 v = (*mfm) & 0x55555555; - uae_u32 lv = (lastword << 16) | v; - uae_u32 nlv = 0x55555555 & ~lv; - uae_u32 mfmbits = (nlv << 1) & (nlv >> 1); + while (words--) + { + uae_u32 v = (*mfm) & 0x55555555; + uae_u32 lv = (lastword << 16) | v; + uae_u32 nlv = 0x55555555 & ~lv; + uae_u32 mfmbits = (nlv << 1) & (nlv >> 1); - *mfm++ = v | mfmbits; - lastword = v; - } + *mfm++ = v | mfmbits; + lastword = v; + } } -static uae_u8 mfmencodetable[16] = { - 0x2a, 0x29, 0x24, 0x25, 0x12, 0x11, 0x14, 0x15, - 0x4a, 0x49, 0x44, 0x45, 0x52, 0x51, 0x54, 0x55 +static uae_u8 mfmencodetable[16] = +{ + 0x2a, 0x29, 0x24, 0x25, 0x12, 0x11, 0x14, 0x15, + 0x4a, 0x49, 0x44, 0x45, 0x52, 0x51, 0x54, 0x55 }; static uae_u16 dos_encode_byte(uae_u8 byte) -{ - uae_u8 b2, b1; - uae_u16 word; +{ + uae_u8 b2, b1; + uae_u16 word; - b1 = byte; - b2 = b1 >> 4; - b1 &= 15; - word = mfmencodetable[b2] <<8 | mfmencodetable[b1]; - return (word | ((word & (256 | 64)) ? 0 : 128)); + b1 = byte; + b2 = b1 >> 4; + b1 &= 15; + word = mfmencodetable[b2] <<8 | mfmencodetable[b1]; + return (word | ((word & (256 | 64)) ? 0 : 128)); } -static uae_u16 *mfmcoder(uae_u8 *src, uae_u16 *dest, int len) +static uae_u16 *mfmcoder(uae_u8 *src, uae_u16 *dest, int len) { - int i; + int i; - for (i = 0; i < len; i++) { - *dest = dos_encode_byte(*src++); - *dest |= ((dest[-1] & 1)||(*dest & 0x4000)) ? 0: 0x8000; - dest++; - } - return dest; + for (i = 0; i < len; i++) + { + *dest = dos_encode_byte(*src++); + *dest |= ((dest[-1] & 1)||(*dest & 0x4000)) ? 0: 0x8000; + dest++; + } + return dest; } static void decode_pcdos (drive *drv) { - int i, len; - int tr = drv->cyl * 2 + side; - uae_u16 *dstmfmbuf, *mfm2; - uae_u8 secbuf[1000]; - uae_u16 crc16; - trackid *ti = drv->trackdata + tr; - int tracklen = 12500; + int i, len; + int tr = drv->cyl * 2 + side; + uae_u16 *dstmfmbuf, *mfm2; + uae_u8 secbuf[1000]; + uae_u16 crc16; + trackid *ti = drv->trackdata + tr; + int tracklen = 12500; - mfm2 = drv->bigmfmbuf; - *mfm2++ = 0x9254; - memset (secbuf, 0x4e, 40); - memset (secbuf + 40, 0x00, 12); - secbuf[52] = 0xc2; - secbuf[53] = 0xc2; - secbuf[54] = 0xc2; - secbuf[55] = 0xfc; - memset (secbuf + 56, 0x4e, 40); - dstmfmbuf = mfmcoder (secbuf, mfm2, 96); - mfm2[52] = 0x5224; - mfm2[53] = 0x5224; - mfm2[54] = 0x5224; - for (i = 0; i < drv->num_secs; i++) { - mfm2 = dstmfmbuf; - memset (secbuf, 0x00, 12); - secbuf[12] = 0xa1; - secbuf[13] = 0xa1; - secbuf[14] = 0xa1; - secbuf[15] = 0xfe; - secbuf[16] = drv->cyl; - secbuf[17] = side; - secbuf[18] = 1 + i; - secbuf[19] = 2; // 128 << 2 = 512 - crc16 = get_crc16(secbuf + 12, 3 + 1 + 4); - secbuf[20] = crc16 >> 8; - secbuf[21] = crc16 & 0xff; - memset(secbuf + 22, 0x4e, 22); - memset(secbuf + 44, 0x00, 12); - secbuf[56] = 0xa1; - secbuf[57] = 0xa1; - secbuf[58] = 0xa1; - secbuf[59] = 0xfb; - read_floppy_data (drv->diskfile, ti, i * 512, &secbuf[60], 512); - crc16 = get_crc16(secbuf + 56, 3 + 1 + 512); - secbuf[60 + 512] = crc16 >> 8; - secbuf[61 + 512] = crc16 & 0xff; - len = (tracklen / 2 - 96) / drv->num_secs - 574 / drv->ddhd; - if (len > 0) - memset(secbuf + 512 + 62, 0x4e, len); - dstmfmbuf = mfmcoder(secbuf, mfm2, 60 + 512 + 2 + 76 / drv->ddhd); - mfm2[12] = 0x4489; - mfm2[13] = 0x4489; - mfm2[14] = 0x4489; - mfm2[56] = 0x4489; - mfm2[57] = 0x4489; - mfm2[58] = 0x4489; - } - while (dstmfmbuf - drv->bigmfmbuf < tracklen / 2) - *dstmfmbuf++ = 0x9254; - drv->skipoffset = 0; - drv->tracklen = (dstmfmbuf - drv->bigmfmbuf) * 16; + mfm2 = drv->bigmfmbuf; + *mfm2++ = 0x9254; + memset (secbuf, 0x4e, 40); + memset (secbuf + 40, 0x00, 12); + secbuf[52] = 0xc2; + secbuf[53] = 0xc2; + secbuf[54] = 0xc2; + secbuf[55] = 0xfc; + memset (secbuf + 56, 0x4e, 40); + dstmfmbuf = mfmcoder (secbuf, mfm2, 96); + mfm2[52] = 0x5224; + mfm2[53] = 0x5224; + mfm2[54] = 0x5224; + for (i = 0; i < drv->num_secs; i++) + { + mfm2 = dstmfmbuf; + memset (secbuf, 0x00, 12); + secbuf[12] = 0xa1; + secbuf[13] = 0xa1; + secbuf[14] = 0xa1; + secbuf[15] = 0xfe; + secbuf[16] = drv->cyl; + secbuf[17] = side; + secbuf[18] = 1 + i; + secbuf[19] = 2; // 128 << 2 = 512 + crc16 = get_crc16(secbuf + 12, 3 + 1 + 4); + secbuf[20] = crc16 >> 8; + secbuf[21] = crc16 & 0xff; + memset(secbuf + 22, 0x4e, 22); + memset(secbuf + 44, 0x00, 12); + secbuf[56] = 0xa1; + secbuf[57] = 0xa1; + secbuf[58] = 0xa1; + secbuf[59] = 0xfb; + read_floppy_data (drv->diskfile, ti, i * 512, &secbuf[60], 512); + crc16 = get_crc16(secbuf + 56, 3 + 1 + 512); + secbuf[60 + 512] = crc16 >> 8; + secbuf[61 + 512] = crc16 & 0xff; + len = (tracklen / 2 - 96) / drv->num_secs - 574 / drv->ddhd; + if (len > 0) + memset(secbuf + 512 + 62, 0x4e, len); + dstmfmbuf = mfmcoder(secbuf, mfm2, 60 + 512 + 2 + 76 / drv->ddhd); + mfm2[12] = 0x4489; + mfm2[13] = 0x4489; + mfm2[14] = 0x4489; + mfm2[56] = 0x4489; + mfm2[57] = 0x4489; + mfm2[58] = 0x4489; + } + while (dstmfmbuf - drv->bigmfmbuf < tracklen / 2) + *dstmfmbuf++ = 0x9254; + drv->skipoffset = 0; + drv->tracklen = (dstmfmbuf - drv->bigmfmbuf) * 16; } static void decode_amigados (drive *drv) { - /* Normal AmigaDOS format track */ - int tr = drv->cyl * 2 + side; - int sec; - int dstmfmoffset = 0; - uae_u16 *dstmfmbuf = drv->bigmfmbuf; - int len = drv->num_secs * 544 + FLOPPY_GAP_LEN; - int prevbit; + /* Normal AmigaDOS format track */ + int tr = drv->cyl * 2 + side; + int sec; + int dstmfmoffset = 0; + uae_u16 *dstmfmbuf = drv->bigmfmbuf; + int len = drv->num_secs * 544 + FLOPPY_GAP_LEN; + int prevbit; - trackid *ti = drv->trackdata + tr; - memset (dstmfmbuf, 0xaa, len * 2); - dstmfmoffset += FLOPPY_GAP_LEN; - drv->skipoffset = (FLOPPY_GAP_LEN * 8) / 3 * 2; - drv->tracklen = len * 2 * 8; + trackid *ti = drv->trackdata + tr; + memset (dstmfmbuf, 0xaa, len * 2); + dstmfmoffset += FLOPPY_GAP_LEN; + drv->skipoffset = (FLOPPY_GAP_LEN * 8) / 3 * 2; + drv->tracklen = len * 2 * 8; - prevbit = 0; - for (sec = 0; sec < drv->num_secs; sec++) { - uae_u8 secbuf[544]; - uae_u16 mfmbuf[544 + 1]; - int i; - uae_u32 deven, dodd; - uae_u32 hck = 0, dck = 0; + prevbit = 0; + for (sec = 0; sec < drv->num_secs; sec++) + { + uae_u8 secbuf[544]; + uae_u16 mfmbuf[544 + 1]; + int i; + uae_u32 deven, dodd; + uae_u32 hck = 0, dck = 0; - secbuf[0] = secbuf[1] = 0x00; - secbuf[2] = secbuf[3] = 0xa1; - secbuf[4] = 0xff; - secbuf[5] = tr; - secbuf[6] = sec; - secbuf[7] = drv->num_secs - sec; + secbuf[0] = secbuf[1] = 0x00; + secbuf[2] = secbuf[3] = 0xa1; + secbuf[4] = 0xff; + secbuf[5] = tr; + secbuf[6] = sec; + secbuf[7] = drv->num_secs - sec; - for (i = 8; i < 24; i++) - secbuf[i] = 0; + for (i = 8; i < 24; i++) + secbuf[i] = 0; - read_floppy_data (drv->diskfile, ti, sec * 512, &secbuf[32], 512); + read_floppy_data (drv->diskfile, ti, sec * 512, &secbuf[32], 512); - mfmbuf[0] = prevbit ? 0x2aaa : 0xaaaa; - mfmbuf[1] = 0xaaaa; - mfmbuf[2] = mfmbuf[3] = 0x4489; + mfmbuf[0] = prevbit ? 0x2aaa : 0xaaaa; + mfmbuf[1] = 0xaaaa; + mfmbuf[2] = mfmbuf[3] = 0x4489; - deven = ((secbuf[4] << 24) | (secbuf[5] << 16) - | (secbuf[6] << 8) | (secbuf[7])); - dodd = deven >> 1; - deven &= 0x55555555; - dodd &= 0x55555555; + deven = ((secbuf[4] << 24) | (secbuf[5] << 16) + | (secbuf[6] << 8) | (secbuf[7])); + dodd = deven >> 1; + deven &= 0x55555555; + dodd &= 0x55555555; - mfmbuf[4] = dodd >> 16; - mfmbuf[5] = dodd; - mfmbuf[6] = deven >> 16; - mfmbuf[7] = deven; + mfmbuf[4] = dodd >> 16; + mfmbuf[5] = dodd; + mfmbuf[6] = deven >> 16; + mfmbuf[7] = deven; - for (i = 8; i < 48; i++) - mfmbuf[i] = 0xaaaa; - for (i = 0; i < 512; i += 4) { - deven = ((secbuf[i + 32] << 24) | (secbuf[i + 33] << 16) - | (secbuf[i + 34] << 8) | (secbuf[i + 35])); - dodd = deven >> 1; - deven &= 0x55555555; - dodd &= 0x55555555; - mfmbuf[(i >> 1) + 32] = dodd >> 16; - mfmbuf[(i >> 1) + 33] = dodd; - mfmbuf[(i >> 1) + 256 + 32] = deven >> 16; - mfmbuf[(i >> 1) + 256 + 33] = deven; - } + for (i = 8; i < 48; i++) + mfmbuf[i] = 0xaaaa; + for (i = 0; i < 512; i += 4) + { + deven = ((secbuf[i + 32] << 24) | (secbuf[i + 33] << 16) + | (secbuf[i + 34] << 8) | (secbuf[i + 35])); + dodd = deven >> 1; + deven &= 0x55555555; + dodd &= 0x55555555; + mfmbuf[(i >> 1) + 32] = dodd >> 16; + mfmbuf[(i >> 1) + 33] = dodd; + mfmbuf[(i >> 1) + 256 + 32] = deven >> 16; + mfmbuf[(i >> 1) + 256 + 33] = deven; + } - for (i = 4; i < 24; i += 2) - hck ^= (mfmbuf[i] << 16) | mfmbuf[i + 1]; + for (i = 4; i < 24; i += 2) + hck ^= (mfmbuf[i] << 16) | mfmbuf[i + 1]; - deven = dodd = hck; - dodd >>= 1; - mfmbuf[24] = dodd >> 16; - mfmbuf[25] = dodd; - mfmbuf[26] = deven >> 16; - mfmbuf[27] = deven; + deven = dodd = hck; + dodd >>= 1; + mfmbuf[24] = dodd >> 16; + mfmbuf[25] = dodd; + mfmbuf[26] = deven >> 16; + mfmbuf[27] = deven; - for (i = 32; i < 544; i += 2) - dck ^= (mfmbuf[i] << 16) | mfmbuf[i + 1]; + for (i = 32; i < 544; i += 2) + dck ^= (mfmbuf[i] << 16) | mfmbuf[i + 1]; - deven = dodd = dck; - dodd >>= 1; - mfmbuf[28] = dodd >> 16; - mfmbuf[29] = dodd; - mfmbuf[30] = deven >> 16; - mfmbuf[31] = deven; + deven = dodd = dck; + dodd >>= 1; + mfmbuf[28] = dodd >> 16; + mfmbuf[29] = dodd; + mfmbuf[30] = deven >> 16; + mfmbuf[31] = deven; - mfmbuf[544] = 0; + mfmbuf[544] = 0; - mfmcode (mfmbuf + 4, 544 - 4 + 1); + mfmcode (mfmbuf + 4, 544 - 4 + 1); - for (i = 0; i < 544; i++) { - dstmfmbuf[dstmfmoffset % len] = mfmbuf[i]; - dstmfmoffset++; - } - prevbit = mfmbuf[i - 1] & 1; - // so that final word has correct MFM encoding - dstmfmbuf[dstmfmoffset % len] = mfmbuf[i]; - } + for (i = 0; i < 544; i++) + { + dstmfmbuf[dstmfmoffset % len] = mfmbuf[i]; + dstmfmoffset++; + } + prevbit = mfmbuf[i - 1] & 1; + // so that final word has correct MFM encoding + dstmfmbuf[dstmfmoffset % len] = mfmbuf[i]; + } } /* @@ -1377,895 +1492,1010 @@ static void decode_amigados (drive *drv) static void decode_diskspare (drive *drv) { - int tr = drv->cyl * 2 + side; - int sec; - int dstmfmoffset = 0; - int size = 512 + 8; - uae_u16 *dstmfmbuf = drv->bigmfmbuf; - int len = drv->num_secs * size + FLOPPY_GAP_LEN; + int tr = drv->cyl * 2 + side; + int sec; + int dstmfmoffset = 0; + int size = 512 + 8; + uae_u16 *dstmfmbuf = drv->bigmfmbuf; + int len = drv->num_secs * size + FLOPPY_GAP_LEN; - trackid *ti = drv->trackdata + tr; - memset (dstmfmbuf, 0xaa, len * 2); - dstmfmoffset += FLOPPY_GAP_LEN; - drv->skipoffset = (FLOPPY_GAP_LEN * 8) / 3 * 2; - drv->tracklen = len * 2 * 8; + trackid *ti = drv->trackdata + tr; + memset (dstmfmbuf, 0xaa, len * 2); + dstmfmoffset += FLOPPY_GAP_LEN; + drv->skipoffset = (FLOPPY_GAP_LEN * 8) / 3 * 2; + drv->tracklen = len * 2 * 8; - for (sec = 0; sec < drv->num_secs; sec++) { - uae_u8 secbuf[512 + 8]; - uae_u16 mfmbuf[512 + 8]; - int i; - uae_u32 deven, dodd; - uae_u16 chk; + for (sec = 0; sec < drv->num_secs; sec++) + { + uae_u8 secbuf[512 + 8]; + uae_u16 mfmbuf[512 + 8]; + int i; + uae_u32 deven, dodd; + uae_u16 chk; - secbuf[0] = tr; - secbuf[1] = sec; - secbuf[2] = 0; - secbuf[3] = 0; + secbuf[0] = tr; + secbuf[1] = sec; + secbuf[2] = 0; + secbuf[3] = 0; - read_floppy_data (drv->diskfile, ti, sec * 512, &secbuf[4], 512); + read_floppy_data (drv->diskfile, ti, sec * 512, &secbuf[4], 512); - mfmbuf[0] = 0xaaaa; - mfmbuf[1] = 0x4489; - mfmbuf[2] = 0x4489; - mfmbuf[3] = 0x2aaa; + mfmbuf[0] = 0xaaaa; + mfmbuf[1] = 0x4489; + mfmbuf[2] = 0x4489; + mfmbuf[3] = 0x2aaa; - for (i = 0; i < 512; i += 4) { - deven = ((secbuf[i + 4] << 24) | (secbuf[i + 5] << 16) - | (secbuf[i + 6] << 8) | (secbuf[i + 7])); - dodd = deven >> 1; - deven &= 0x55555555; - dodd &= 0x55555555; - mfmbuf[i + 8 + 0] = dodd >> 16; - mfmbuf[i + 8 + 1] = dodd; - mfmbuf[i + 8 + 2] = deven >> 16; - mfmbuf[i + 8 + 3] = deven; - } - mfmcode (mfmbuf + 8, 512); + for (i = 0; i < 512; i += 4) + { + deven = ((secbuf[i + 4] << 24) | (secbuf[i + 5] << 16) + | (secbuf[i + 6] << 8) | (secbuf[i + 7])); + dodd = deven >> 1; + deven &= 0x55555555; + dodd &= 0x55555555; + mfmbuf[i + 8 + 0] = dodd >> 16; + mfmbuf[i + 8 + 1] = dodd; + mfmbuf[i + 8 + 2] = deven >> 16; + mfmbuf[i + 8 + 3] = deven; + } + mfmcode (mfmbuf + 8, 512); - i = 8; - chk = mfmbuf[i++] & 0x7fff; - while (i < 512 + 8) - chk ^= mfmbuf[i++]; - secbuf[2] = chk >> 8; - secbuf[3] = chk; + i = 8; + chk = mfmbuf[i++] & 0x7fff; + while (i < 512 + 8) + chk ^= mfmbuf[i++]; + secbuf[2] = chk >> 8; + secbuf[3] = chk; - deven = ((secbuf[0] << 24) | (secbuf[1] << 16) - | (secbuf[2] << 8) | (secbuf[3])); - dodd = deven >> 1; - deven &= 0x55555555; - dodd &= 0x55555555; + deven = ((secbuf[0] << 24) | (secbuf[1] << 16) + | (secbuf[2] << 8) | (secbuf[3])); + dodd = deven >> 1; + deven &= 0x55555555; + dodd &= 0x55555555; - mfmbuf[4] = dodd >> 16; - mfmbuf[5] = dodd; - mfmbuf[6] = deven >> 16; - mfmbuf[7] = deven; - mfmcode (mfmbuf + 4, 4); + mfmbuf[4] = dodd >> 16; + mfmbuf[5] = dodd; + mfmbuf[6] = deven >> 16; + mfmbuf[7] = deven; + mfmcode (mfmbuf + 4, 4); - for (i = 0; i < 512 + 8; i++) { - dstmfmbuf[dstmfmoffset % len] = mfmbuf[i]; - dstmfmoffset++; - } - } + for (i = 0; i < 512 + 8; i++) + { + dstmfmbuf[dstmfmoffset % len] = mfmbuf[i]; + dstmfmoffset++; + } + } } static void drive_fill_bigbuf (drive * drv, int force) { - int tr = drv->cyl * 2 + side; - trackid *ti = drv->trackdata + tr; + int tr = drv->cyl * 2 + side; + trackid *ti = drv->trackdata + tr; - if (!drv->diskfile || tr >= drv->num_tracks) { - track_reset (drv); - return; - } - - if (!force && drv->buffered_cyl == drv->cyl && drv->buffered_side == side) - return; - drv->indexoffset = 0; - drv->multi_revolution = 0; - drv->tracktiming[0] = 0; - drv->skipoffset = -1; - drv->revolutions = 1; + if (!drv->diskfile || tr >= drv->num_tracks) + { + track_reset (drv); + return; + } - if (drv->writediskfile && drv->writetrackdata[tr].bitlen > 0) { - int i; - trackid *wti = &drv->writetrackdata[tr]; - drv->tracklen = wti->bitlen; - drv->revolutions = wti->revolutions; - read_floppy_data (drv->writediskfile, wti, 0, (uae_u8*) drv->bigmfmbuf, (wti->bitlen + 7) / 8); - for (i = 0; i < (drv->tracklen + 15) / 16; i++) { - uae_u16 *mfm = drv->bigmfmbuf + i; - uae_u8 *data = (uae_u8 *) mfm; - *mfm = 256 * *data + *(data + 1); - } - } else if (ti->type == TRACK_PCDOS) { + if (!force && drv->buffered_cyl == drv->cyl && drv->buffered_side == side) + return; + drv->indexoffset = 0; + drv->multi_revolution = 0; + drv->tracktiming[0] = 0; + drv->skipoffset = -1; + drv->revolutions = 1; - decode_pcdos(drv); + if (drv->writediskfile && drv->writetrackdata[tr].bitlen > 0) + { + int i; + trackid *wti = &drv->writetrackdata[tr]; + drv->tracklen = wti->bitlen; + drv->revolutions = wti->revolutions; + read_floppy_data (drv->writediskfile, wti, 0, (uae_u8*) drv->bigmfmbuf, (wti->bitlen + 7) / 8); + for (i = 0; i < (drv->tracklen + 15) / 16; i++) + { + uae_u16 *mfm = drv->bigmfmbuf + i; + uae_u8 *data = (uae_u8 *) mfm; + *mfm = 256 * *data + *(data + 1); + } + } + else if (ti->type == TRACK_PCDOS) + { - } else if (ti->type == TRACK_AMIGADOS) { + decode_pcdos(drv); - decode_amigados(drv); + } + else if (ti->type == TRACK_AMIGADOS) + { - } else if (ti->type == TRACK_DISKSPARE) { + decode_amigados(drv); - decode_diskspare (drv); + } + else if (ti->type == TRACK_DISKSPARE) + { - } else if (ti->type == TRACK_NONE) { + decode_diskspare (drv); - ; + } + else if (ti->type == TRACK_NONE) + { - } else { - int i; - int base_offset = ti->type == TRACK_RAW ? 0 : 1; - drv->tracklen = ti->bitlen + 16 * base_offset; - drv->bigmfmbuf[0] = ti->sync; - read_floppy_data (drv->diskfile, ti, 0, (uae_u8*) (drv->bigmfmbuf + base_offset), (ti->bitlen + 7) / 8); - for (i = base_offset; i < (drv->tracklen + 15) / 16; i++) { - uae_u16 *mfm = drv->bigmfmbuf + i; - uae_u8 *data = (uae_u8 *) mfm; - *mfm = 256 * *data + *(data + 1); - } - } - drv->buffered_side = side; - drv->buffered_cyl = drv->cyl; - if (drv->tracklen == 0) { - drv->tracklen = FLOPPY_WRITE_LEN * drv->ddhd * 2 * 8; - memset (drv->bigmfmbuf, 0, FLOPPY_WRITE_LEN * 2 * drv->ddhd); - } + ; - drv->trackspeed = get_floppy_speed2 (drv); - updatemfmpos (drv); + } + else + { + int i; + int base_offset = ti->type == TRACK_RAW ? 0 : 1; + drv->tracklen = ti->bitlen + 16 * base_offset; + drv->bigmfmbuf[0] = ti->sync; + read_floppy_data (drv->diskfile, ti, 0, (uae_u8*) (drv->bigmfmbuf + base_offset), (ti->bitlen + 7) / 8); + for (i = base_offset; i < (drv->tracklen + 15) / 16; i++) + { + uae_u16 *mfm = drv->bigmfmbuf + i; + uae_u8 *data = (uae_u8 *) mfm; + *mfm = 256 * *data + *(data + 1); + } + } + drv->buffered_side = side; + drv->buffered_cyl = drv->cyl; + if (drv->tracklen == 0) + { + drv->tracklen = FLOPPY_WRITE_LEN * drv->ddhd * 2 * 8; + memset (drv->bigmfmbuf, 0, FLOPPY_WRITE_LEN * 2 * drv->ddhd); + } + + drv->trackspeed = get_floppy_speed2 (drv); + updatemfmpos (drv); } /* Update ADF_EXT2 track header */ static void diskfile_update (struct zfile *diskfile, trackid *ti, int len, image_tracktype type) { - uae_u8 buf[2 + 2 + 4 + 4], *zerobuf; + uae_u8 buf[2 + 2 + 4 + 4], *zerobuf; - ti->revolutions = 1; - ti->bitlen = len; - zfile_fseek (diskfile, 8 + 4 + (2 + 2 + 4 + 4) * ti->track, SEEK_SET); - memset (buf, 0, sizeof buf); - ti->type = type; - buf[2] = 0; - buf[3] = ti->type; - do_put_mem_long ((uae_u32 *) (buf + 4), ti->len); - do_put_mem_long ((uae_u32 *) (buf + 8), ti->bitlen); - zfile_fwrite (buf, sizeof buf, 1, diskfile); - if (ti->len > (len + 7) / 8) { - zerobuf = xmalloc (uae_u8, ti->len); - memset (zerobuf, 0, ti->len); - zfile_fseek (diskfile, ti->offs, SEEK_SET); - zfile_fwrite (zerobuf, 1, ti->len, diskfile); - free (zerobuf); - } + ti->revolutions = 1; + ti->bitlen = len; + zfile_fseek (diskfile, 8 + 4 + (2 + 2 + 4 + 4) * ti->track, SEEK_SET); + memset (buf, 0, sizeof buf); + ti->type = type; + buf[2] = 0; + buf[3] = ti->type; + do_put_mem_long ((uae_u32 *) (buf + 4), ti->len); + do_put_mem_long ((uae_u32 *) (buf + 8), ti->bitlen); + zfile_fwrite (buf, sizeof buf, 1, diskfile); + if (ti->len > (len + 7) / 8) + { + zerobuf = xmalloc (uae_u8, ti->len); + memset (zerobuf, 0, ti->len); + zfile_fseek (diskfile, ti->offs, SEEK_SET); + zfile_fwrite (zerobuf, 1, ti->len, diskfile); + free (zerobuf); + } } #define MFMMASK 0x55555555 static uae_u16 getmfmword (uae_u16 *mbuf, int shift) { - return (mbuf[0] << shift) | (mbuf[1] >> (16 - shift)); + return (mbuf[0] << shift) | (mbuf[1] >> (16 - shift)); } static uae_u32 getmfmlong (uae_u16 *mbuf, int shift) { - return ((getmfmword (mbuf, shift) << 16) | getmfmword (mbuf + 1, shift)) & MFMMASK; + return ((getmfmword (mbuf, shift) << 16) | getmfmword (mbuf + 1, shift)) & MFMMASK; } #if MFM_VALIDATOR static void check_valid_mfm (uae_u16 *mbuf, int words, int sector) { - int prevbit = 0; - for (int i = 0; i < words * 8; i++) { - int wordoffset = i / 8; - uae_u16 w = mbuf[wordoffset]; - uae_u16 wp = mbuf[wordoffset - 1]; - int bitoffset = (7 - (i & 7)) * 2; - int clockbit = w & (1 << (bitoffset + 1)); - int databit = w & (1 << (bitoffset + 0)); + int prevbit = 0; + for (int i = 0; i < words * 8; i++) + { + int wordoffset = i / 8; + uae_u16 w = mbuf[wordoffset]; + uae_u16 wp = mbuf[wordoffset - 1]; + int bitoffset = (7 - (i & 7)) * 2; + int clockbit = w & (1 << (bitoffset + 1)); + int databit = w & (1 << (bitoffset + 0)); - if ((clockbit && databit) || (clockbit && !databit && prevbit) || (!clockbit && !databit && !prevbit)) { - write_log (L"illegal mfm sector %d data %04x %04x, bit %d:%d\n", sector, wp, w, wordoffset, bitoffset); - } - prevbit = databit; - } + if ((clockbit && databit) || (clockbit && !databit && prevbit) || (!clockbit && !databit && !prevbit)) + { + write_log (L"illegal mfm sector %d data %04x %04x, bit %d:%d\n", sector, wp, w, wordoffset, bitoffset); + } + prevbit = databit; + } } #endif static int decode_buffer (uae_u16 *mbuf, int cyl, int drvsec, int ddhd, int filetype, int *drvsecp, int *sectable, int checkmode) { - int i, secwritten = 0; - int fwlen = FLOPPY_WRITE_LEN * ddhd; - int length = 2 * fwlen; - uae_u32 odd, even, chksum, id, dlong; - uae_u8 *secdata; - uae_u8 secbuf[544]; - uae_u16 *mend = mbuf + length, *mstart; - int shift = 0; + int i, secwritten = 0; + int fwlen = FLOPPY_WRITE_LEN * ddhd; + int length = 2 * fwlen; + uae_u32 odd, even, chksum, id, dlong; + uae_u8 *secdata; + uae_u8 secbuf[544]; + uae_u16 *mend = mbuf + length, *mstart; + int shift = 0; - memset (sectable, 0, MAX_SECTORS * sizeof (int)); - mstart = mbuf; - memcpy (mbuf + fwlen, mbuf, fwlen * sizeof (uae_u16)); - mend -= (4 + 16 + 8 + 512); - while (secwritten < drvsec) { - int trackoffs; + memset (sectable, 0, MAX_SECTORS * sizeof (int)); + mstart = mbuf; + memcpy (mbuf + fwlen, mbuf, fwlen * sizeof (uae_u16)); + mend -= (4 + 16 + 8 + 512); + while (secwritten < drvsec) + { + int trackoffs; - while (getmfmword (mbuf, shift) != 0x4489) { - if (mbuf >= mend) - return 1; - shift++; - if (shift == 16) { - shift = 0; - mbuf++; - } - } - while (getmfmword (mbuf, shift) == 0x4489) { - if (mbuf >= mend) - return 1; - mbuf++; - } + while (getmfmword (mbuf, shift) != 0x4489) + { + if (mbuf >= mend) + return 1; + shift++; + if (shift == 16) + { + shift = 0; + mbuf++; + } + } + while (getmfmword (mbuf, shift) == 0x4489) + { + if (mbuf >= mend) + return 1; + mbuf++; + } - odd = getmfmlong (mbuf, shift); - even = getmfmlong (mbuf + 2, shift); - mbuf += 4; - id = (odd << 1) | even; + odd = getmfmlong (mbuf, shift); + even = getmfmlong (mbuf + 2, shift); + mbuf += 4; + id = (odd << 1) | even; - trackoffs = (id & 0xff00) >> 8; - if (trackoffs + 1 > drvsec) { - write_log (_T("Disk decode: weird sector number %d (%08X, %d)\n"), trackoffs, id, mbuf - mstart); - if (filetype == ADF_EXT2) - return 2; - continue; - } + trackoffs = (id & 0xff00) >> 8; + if (trackoffs + 1 > drvsec) + { + write_log (_T("Disk decode: weird sector number %d (%08X, %d)\n"), trackoffs, id, mbuf - mstart); + if (filetype == ADF_EXT2) + return 2; + continue; + } #if MFM_VALIDATOR - check_valid_mfm (mbuf - 4, 544 - 4 + 1, trackoffs); + check_valid_mfm (mbuf - 4, 544 - 4 + 1, trackoffs); #endif - chksum = odd ^ even; - for (i = 0; i < 4; i++) { - odd = getmfmlong (mbuf, shift); - even = getmfmlong (mbuf + 8, shift); - mbuf += 2; + chksum = odd ^ even; + for (i = 0; i < 4; i++) + { + odd = getmfmlong (mbuf, shift); + even = getmfmlong (mbuf + 8, shift); + mbuf += 2; - dlong = (odd << 1) | even; - if (dlong && !checkmode) { - if (filetype == ADF_EXT2) - return 6; - secwritten = -200; - } - chksum ^= odd ^ even; - } /* could check here if the label is nonstandard */ - mbuf += 8; - odd = getmfmlong (mbuf, shift); - even = getmfmlong (mbuf + 2, shift); - mbuf += 4; - if (((odd << 1) | even) != chksum) { - write_log (_T("Disk decode: checksum error on sector %d header\n"), trackoffs); - if (filetype == ADF_EXT2) - return 3; - continue; - } - if (((id & 0x00ff0000) >> 16) != cyl * 2 + side) { - write_log (_T("Disk decode: mismatched track (%d <> %d) on sector %d header\n"), (id & 0x00ff0000) >> 16, cyl * 2 + side, trackoffs); - if (filetype == ADF_EXT2) - return 3; - continue; - } - odd = getmfmlong (mbuf, shift); - even = getmfmlong (mbuf + 2, shift); - mbuf += 4; - chksum = (odd << 1) | even; - secdata = secbuf + 32; - for (i = 0; i < 128; i++) { - odd = getmfmlong (mbuf, shift); - even = getmfmlong (mbuf + 256, shift); - mbuf += 2; - dlong = (odd << 1) | even; - *secdata++ = dlong >> 24; - *secdata++ = dlong >> 16; - *secdata++ = dlong >> 8; - *secdata++ = dlong; - chksum ^= odd ^ even; - } - if (chksum) { - write_log (_T("Disk decode: sector %d, data checksum error\n"), trackoffs); - if (filetype == ADF_EXT2) - return 4; - continue; - } - mbuf += 256; - sectable[trackoffs] = 1; - secwritten++; - memcpy (writebuffer + trackoffs * 512, secbuf + 32, 512); - } - if (filetype == ADF_EXT2 && (secwritten == 0 || secwritten < 0)) - return 5; - *drvsecp = drvsec; - return 0; + dlong = (odd << 1) | even; + if (dlong && !checkmode) + { + if (filetype == ADF_EXT2) + return 6; + secwritten = -200; + } + chksum ^= odd ^ even; + } /* could check here if the label is nonstandard */ + mbuf += 8; + odd = getmfmlong (mbuf, shift); + even = getmfmlong (mbuf + 2, shift); + mbuf += 4; + if (((odd << 1) | even) != chksum) + { + write_log (_T("Disk decode: checksum error on sector %d header\n"), trackoffs); + if (filetype == ADF_EXT2) + return 3; + continue; + } + if (((id & 0x00ff0000) >> 16) != cyl * 2 + side) + { + write_log (_T("Disk decode: mismatched track (%d <> %d) on sector %d header\n"), (id & 0x00ff0000) >> 16, cyl * 2 + side, trackoffs); + if (filetype == ADF_EXT2) + return 3; + continue; + } + odd = getmfmlong (mbuf, shift); + even = getmfmlong (mbuf + 2, shift); + mbuf += 4; + chksum = (odd << 1) | even; + secdata = secbuf + 32; + for (i = 0; i < 128; i++) + { + odd = getmfmlong (mbuf, shift); + even = getmfmlong (mbuf + 256, shift); + mbuf += 2; + dlong = (odd << 1) | even; + *secdata++ = dlong >> 24; + *secdata++ = dlong >> 16; + *secdata++ = dlong >> 8; + *secdata++ = dlong; + chksum ^= odd ^ even; + } + if (chksum) + { + write_log (_T("Disk decode: sector %d, data checksum error\n"), trackoffs); + if (filetype == ADF_EXT2) + return 4; + continue; + } + mbuf += 256; + sectable[trackoffs] = 1; + secwritten++; + memcpy (writebuffer + trackoffs * 512, secbuf + 32, 512); + } + if (filetype == ADF_EXT2 && (secwritten == 0 || secwritten < 0)) + return 5; + *drvsecp = drvsec; + return 0; } static uae_u8 mfmdecode(uae_u16 **mfmp, int shift) { - uae_u16 mfm = getmfmword (*mfmp, shift); - uae_u8 out = 0; - int i; + uae_u16 mfm = getmfmword (*mfmp, shift); + uae_u8 out = 0; + int i; - (*mfmp)++; - mfm &= 0x5555; - for (i = 0; i < 8; i++) { - out >>= 1; - if (mfm & 1) - out |= 0x80; - mfm >>= 2; - } - return out; + (*mfmp)++; + mfm &= 0x5555; + for (i = 0; i < 8; i++) + { + out >>= 1; + if (mfm & 1) + out |= 0x80; + mfm >>= 2; + } + return out; } static int drive_write_pcdos (drive *drv) { - int i; - int drvsec = drv->num_secs; - int fwlen = FLOPPY_WRITE_LEN * drv->ddhd; - int length = 2 * fwlen; - uae_u16 *mbuf = drv->bigmfmbuf; - uae_u16 *mend = mbuf + length; - int secwritten = 0, shift = 0, sector = -1; - int sectable[18]; - uae_u8 secbuf[3 + 1 + 512]; - uae_u8 mark; - uae_u16 crc; + int i; + int drvsec = drv->num_secs; + int fwlen = FLOPPY_WRITE_LEN * drv->ddhd; + int length = 2 * fwlen; + uae_u16 *mbuf = drv->bigmfmbuf; + uae_u16 *mend = mbuf + length; + int secwritten = 0, shift = 0, sector = -1; + int sectable[18]; + uae_u8 secbuf[3 + 1 + 512]; + uae_u8 mark; + uae_u16 crc; - memset (sectable, 0, sizeof sectable); - memcpy (mbuf + fwlen, mbuf, fwlen * sizeof (uae_u16)); - mend -= 518; - secbuf[0] = secbuf[1] = secbuf[2] = 0xa1; - secbuf[3] = 0xfb; + memset (sectable, 0, sizeof sectable); + memcpy (mbuf + fwlen, mbuf, fwlen * sizeof (uae_u16)); + mend -= 518; + secbuf[0] = secbuf[1] = secbuf[2] = 0xa1; + secbuf[3] = 0xfb; - while (secwritten < drvsec) { - int mfmcount; + while (secwritten < drvsec) + { + int mfmcount; - mfmcount = 0; - while (getmfmword (mbuf, shift) != 0x4489) { - mfmcount++; - if (mbuf >= mend) - return 1; - shift++; - if (shift == 16) { - shift = 0; - mbuf++; - } - if (sector >= 0 && mfmcount / 16 >= 43) - sector = -1; - } + mfmcount = 0; + while (getmfmword (mbuf, shift) != 0x4489) + { + mfmcount++; + if (mbuf >= mend) + return 1; + shift++; + if (shift == 16) + { + shift = 0; + mbuf++; + } + if (sector >= 0 && mfmcount / 16 >= 43) + sector = -1; + } - mfmcount = 0; - while (getmfmword (mbuf, shift) == 0x4489) { - mfmcount++; - if (mbuf >= mend) - return 1; - mbuf++; - } - if (mfmcount < 3) // ignore if less than 3 sync markers - continue; + mfmcount = 0; + while (getmfmword (mbuf, shift) == 0x4489) + { + mfmcount++; + if (mbuf >= mend) + return 1; + mbuf++; + } + if (mfmcount < 3) // ignore if less than 3 sync markers + continue; - mark = mfmdecode(&mbuf, shift); - if (mark == 0xfe) { - uae_u8 tmp[8]; - uae_u8 cyl, head, size; + mark = mfmdecode(&mbuf, shift); + if (mark == 0xfe) + { + uae_u8 tmp[8]; + uae_u8 cyl, head, size; - cyl = mfmdecode(&mbuf, shift); - head = mfmdecode(&mbuf, shift); - sector = mfmdecode(&mbuf, shift); - size = mfmdecode(&mbuf, shift); - crc = (mfmdecode(&mbuf, shift) << 8) | mfmdecode(&mbuf, shift); + cyl = mfmdecode(&mbuf, shift); + head = mfmdecode(&mbuf, shift); + sector = mfmdecode(&mbuf, shift); + size = mfmdecode(&mbuf, shift); + crc = (mfmdecode(&mbuf, shift) << 8) | mfmdecode(&mbuf, shift); - tmp[0] = 0xa1; tmp[1] = 0xa1; tmp[2] = 0xa1; tmp[3] = mark; - tmp[4] = cyl; tmp[5] = head; tmp[6] = sector; tmp[7] = size; + tmp[0] = 0xa1; + tmp[1] = 0xa1; + tmp[2] = 0xa1; + tmp[3] = mark; + tmp[4] = cyl; + tmp[5] = head; + tmp[6] = sector; + tmp[7] = size; - // skip 28 bytes - for (i = 0; i < 28; i++) - mfmdecode (&mbuf, shift); + // skip 28 bytes + for (i = 0; i < 28; i++) + mfmdecode (&mbuf, shift); - if (get_crc16(tmp, 8) != crc || cyl != drv->cyl || head != side || size != 2 || sector < 1 || sector > drv->num_secs) { - write_log (_T("PCDOS: track %d, corrupted sector header\n"), drv->cyl * 2 + side); - return 1; - } - sector--; - continue; - } - if (mark != 0xfb && mark != 0xfa) { - write_log (_T("PCDOS: track %d: unknown address mark %02X\n"), drv->cyl * 2 + side, mark); - continue; - } - if (sector < 0) - continue; - for (i = 0; i < 512; i++) - secbuf[i + 4] = mfmdecode(&mbuf, shift); - crc = (mfmdecode(&mbuf, shift) << 8) | mfmdecode(&mbuf, shift); - if (get_crc16(secbuf, 3 + 1 + 512) != crc) { - write_log (_T("PCDOS: track %d, sector %d data checksum error\n"), - drv->cyl * 2 + side, sector + 1); - continue; - } - sectable[sector] = 1; - secwritten++; - zfile_fseek (drv->diskfile, drv->trackdata[drv->cyl * 2 + side].offs + sector * 512, SEEK_SET); - zfile_fwrite (secbuf + 4, sizeof (uae_u8), 512, drv->diskfile); - write_log (_T("PCDOS: track %d sector %d written\n"), drv->cyl * 2 + side, sector + 1); - sector = -1; - } - if (secwritten != drv->num_secs) - write_log (_T("PCDOS: track %d, %d corrupted sectors ignored\n"), - drv->cyl * 2 + side, drv->num_secs - secwritten); - return 0; + if (get_crc16(tmp, 8) != crc || cyl != drv->cyl || head != side || size != 2 || sector < 1 || sector > drv->num_secs) + { + write_log (_T("PCDOS: track %d, corrupted sector header\n"), drv->cyl * 2 + side); + return 1; + } + sector--; + continue; + } + if (mark != 0xfb && mark != 0xfa) + { + write_log (_T("PCDOS: track %d: unknown address mark %02X\n"), drv->cyl * 2 + side, mark); + continue; + } + if (sector < 0) + continue; + for (i = 0; i < 512; i++) + secbuf[i + 4] = mfmdecode(&mbuf, shift); + crc = (mfmdecode(&mbuf, shift) << 8) | mfmdecode(&mbuf, shift); + if (get_crc16(secbuf, 3 + 1 + 512) != crc) + { + write_log (_T("PCDOS: track %d, sector %d data checksum error\n"), + drv->cyl * 2 + side, sector + 1); + continue; + } + sectable[sector] = 1; + secwritten++; + zfile_fseek (drv->diskfile, drv->trackdata[drv->cyl * 2 + side].offs + sector * 512, SEEK_SET); + zfile_fwrite (secbuf + 4, sizeof (uae_u8), 512, drv->diskfile); + write_log (_T("PCDOS: track %d sector %d written\n"), drv->cyl * 2 + side, sector + 1); + sector = -1; + } + if (secwritten != drv->num_secs) + write_log (_T("PCDOS: track %d, %d corrupted sectors ignored\n"), + drv->cyl * 2 + side, drv->num_secs - secwritten); + return 0; } static int drive_write_adf_amigados (drive * drv) { - int drvsec, i; - int sectable[MAX_SECTORS]; + int drvsec, i; + int sectable[MAX_SECTORS]; - if (decode_buffer (drv->bigmfmbuf, drv->cyl, drv->num_secs, drv->ddhd, drv->filetype, &drvsec, sectable, 0)) - return 2; - if (!drvsec) - return 2; + if (decode_buffer (drv->bigmfmbuf, drv->cyl, drv->num_secs, drv->ddhd, drv->filetype, &drvsec, sectable, 0)) + return 2; + if (!drvsec) + return 2; - if (drv->filetype == ADF_EXT2) - diskfile_update (drv->diskfile, &drv->trackdata[drv->cyl * 2 + side], drvsec * 512 * 8, TRACK_AMIGADOS); - for (i = 0; i < drvsec; i++) { - zfile_fseek (drv->diskfile, drv->trackdata[drv->cyl * 2 + side].offs + i * 512, SEEK_SET); - zfile_fwrite (writebuffer + i * 512, sizeof (uae_u8), 512, drv->diskfile); - } + if (drv->filetype == ADF_EXT2) + diskfile_update (drv->diskfile, &drv->trackdata[drv->cyl * 2 + side], drvsec * 512 * 8, TRACK_AMIGADOS); + for (i = 0; i < drvsec; i++) + { + zfile_fseek (drv->diskfile, drv->trackdata[drv->cyl * 2 + side].offs + i * 512, SEEK_SET); + zfile_fwrite (writebuffer + i * 512, sizeof (uae_u8), 512, drv->diskfile); + } - return 0; + return 0; } /* write raw track to disk file */ static int drive_write_ext2 (uae_u16 *bigmfmbuf, struct zfile *diskfile, trackid *ti, int tracklen) { - int len, i; + int len, i; - len = (tracklen + 7) / 8; - if (len > ti->len) { - write_log (_T("disk raw write: image file's track %d is too small (%d < %d)!\n"), ti->track, ti->len, len); - len = ti->len; - } - diskfile_update (diskfile, ti, tracklen, TRACK_RAW); - for (i = 0; i < ti->len / 2; i++) { - uae_u16 *mfm = bigmfmbuf + i; - uae_u16 *mfmw = bigmfmbufw + i; - uae_u8 *data = (uae_u8 *) mfm; - *mfmw = 256 * *data + *(data + 1); - } - zfile_fseek (diskfile, ti->offs, SEEK_SET); - zfile_fwrite (bigmfmbufw, 1, len, diskfile); - return 1; + len = (tracklen + 7) / 8; + if (len > ti->len) + { + write_log (_T("disk raw write: image file's track %d is too small (%d < %d)!\n"), ti->track, ti->len, len); + len = ti->len; + } + diskfile_update (diskfile, ti, tracklen, TRACK_RAW); + for (i = 0; i < ti->len / 2; i++) + { + uae_u16 *mfm = bigmfmbuf + i; + uae_u16 *mfmw = bigmfmbufw + i; + uae_u8 *data = (uae_u8 *) mfm; + *mfmw = 256 * *data + *(data + 1); + } + zfile_fseek (diskfile, ti->offs, SEEK_SET); + zfile_fwrite (bigmfmbufw, 1, len, diskfile); + return 1; } static void drive_write_data (drive * drv) { - int ret = -1; - int tr = drv->cyl * 2 + side; + int ret = -1; + int tr = drv->cyl * 2 + side; - if (drive_writeprotected (drv) || drv->trackdata[tr].type == TRACK_NONE) { - /* read original track back because we didn't really write anything */ - drv->buffered_side = 2; - return; - } - if (drv->writediskfile) { - drive_write_ext2 (drv->bigmfmbuf, drv->writediskfile, &drv->writetrackdata[tr], - longwritemode ? dsklength2 * 8 : drv->tracklen); - } - switch (drv->filetype) { - case ADF_NORMAL: - if (drive_write_adf_amigados (drv)) { - static int warned; - if (!warned) - notify_user (NUMSG_NEEDEXT2); - warned = 1; - } - return; - case ADF_EXT1: - break; - case ADF_EXT2: - if (!longwritemode) - ret = drive_write_adf_amigados (drv); - if (ret) { - write_log (_T("not an amigados track %d (error %d), writing as raw track\n"), drv->cyl * 2 + side, ret); - drive_write_ext2 (drv->bigmfmbuf, drv->diskfile, &drv->trackdata[drv->cyl * 2 + side], - longwritemode ? dsklength2 * 8 : drv->tracklen); + if (drive_writeprotected (drv) || drv->trackdata[tr].type == TRACK_NONE) + { + /* read original track back because we didn't really write anything */ + drv->buffered_side = 2; + return; } - return; - case ADF_IPF: - break; - case ADF_PCDOS: - ret = drive_write_pcdos (drv); - if (ret) - write_log (_T("not a PC formatted track %d (error %d)\n"), drv->cyl * 2 + side, ret); - break; - } - drv->tracktiming[0] = 0; + if (drv->writediskfile) + { + drive_write_ext2 (drv->bigmfmbuf, drv->writediskfile, &drv->writetrackdata[tr], + longwritemode ? dsklength2 * 8 : drv->tracklen); + } + switch (drv->filetype) + { + case ADF_NORMAL: + if (drive_write_adf_amigados (drv)) + { + static int warned; + if (!warned) + notify_user (NUMSG_NEEDEXT2); + warned = 1; + } + return; + case ADF_EXT1: + break; + case ADF_EXT2: + if (!longwritemode) + ret = drive_write_adf_amigados (drv); + if (ret) + { + write_log (_T("not an amigados track %d (error %d), writing as raw track\n"), drv->cyl * 2 + side, ret); + drive_write_ext2 (drv->bigmfmbuf, drv->diskfile, &drv->trackdata[drv->cyl * 2 + side], + longwritemode ? dsklength2 * 8 : drv->tracklen); + } + return; + case ADF_IPF: + break; + case ADF_PCDOS: + ret = drive_write_pcdos (drv); + if (ret) + write_log (_T("not a PC formatted track %d (error %d)\n"), drv->cyl * 2 + side, ret); + break; + } + drv->tracktiming[0] = 0; } static void drive_eject (drive * drv) { - gui_disk_image_change (drv - floppy, NULL, drv->wrprot); - drive_image_free (drv); - drv->dskchange = true; - drv->ddhd = 1; - drv->dskchange_time = 0; - drv->dskready = 0; - drv->dskready_up_time = 0; - drv->dskready_down_time = 0; - drv->crc32 = 0; - drive_settype_id (drv); /* Back to 35 DD */ + gui_disk_image_change (drv - floppy, NULL, drv->wrprot); + drive_image_free (drv); + drv->dskchange = true; + drv->ddhd = 1; + drv->dskchange_time = 0; + drv->dskready = 0; + drv->dskready_up_time = 0; + drv->dskready_down_time = 0; + drv->crc32 = 0; + drive_settype_id (drv); /* Back to 35 DD */ } /* We use this function if we have no Kickstart ROM. * No error checking - we trust our luck. */ void DISK_ersatz_read (int tr, int sec, uaecptr dest) { - uae_u8 *dptr = get_real_address (dest); - zfile_fseek (floppy[0].diskfile, floppy[0].trackdata[tr].offs + sec * 512, SEEK_SET); - zfile_fread (dptr, 1, 512, floppy[0].diskfile); + uae_u8 *dptr = get_real_address (dest); + zfile_fseek (floppy[0].diskfile, floppy[0].trackdata[tr].offs + sec * 512, SEEK_SET); + zfile_fread (dptr, 1, 512, floppy[0].diskfile); } static void floppy_get_bootblock (uae_u8 *dst, bool ffs, bool bootable) { - strcpy ((char*)dst, "DOS"); - dst[3] = ffs ? 1 : 0; - if (bootable) - memcpy (dst, ffs ? bootblock_ffs : bootblock_ofs, ffs ? sizeof bootblock_ffs : sizeof bootblock_ofs); + strcpy ((char*)dst, "DOS"); + dst[3] = ffs ? 1 : 0; + if (bootable) + memcpy (dst, ffs ? bootblock_ffs : bootblock_ofs, ffs ? sizeof bootblock_ffs : sizeof bootblock_ofs); } static void floppy_get_rootblock (uae_u8 *dst, int block, const TCHAR *disk_name, drive_type adftype) { - dst[0+3] = 2; - dst[12+3] = 0x48; - dst[312] = dst[313] = dst[314] = dst[315] = (uae_u8)0xff; - dst[316+2] = (block + 1) >> 8; dst[316+3] = (block + 1) & 255; - char *s = ua ((disk_name && _tcslen (disk_name) > 0) ? disk_name : _T("empty")); - dst[432] = strlen (s); - strcpy ((char*)dst + 433, s); - xfree (s); - dst[508 + 3] = 1; - disk_date (dst + 420); - memcpy (dst + 472, dst + 420, 3 * 4); - memcpy (dst + 484, dst + 420, 3 * 4); - disk_checksum (dst, dst + 20); - /* bitmap block */ - memset (dst + 512 + 4, 0xff, 2 * block / 8); - if (adftype == 0) - dst[512 + 0x72] = 0x3f; - else - dst[512 + 0xdc] = 0x3f; - disk_checksum (dst + 512, dst + 512); + dst[0+3] = 2; + dst[12+3] = 0x48; + dst[312] = dst[313] = dst[314] = dst[315] = (uae_u8)0xff; + dst[316+2] = (block + 1) >> 8; + dst[316+3] = (block + 1) & 255; + char *s = ua ((disk_name && _tcslen (disk_name) > 0) ? disk_name : _T("empty")); + dst[432] = strlen (s); + strcpy ((char*)dst + 433, s); + xfree (s); + dst[508 + 3] = 1; + disk_date (dst + 420); + memcpy (dst + 472, dst + 420, 3 * 4); + memcpy (dst + 484, dst + 420, 3 * 4); + disk_checksum (dst, dst + 20); + /* bitmap block */ + memset (dst + 512 + 4, 0xff, 2 * block / 8); + if (adftype == 0) + dst[512 + 0x72] = 0x3f; + else + dst[512 + 0xdc] = 0x3f; + disk_checksum (dst + 512, dst + 512); } /* type: 0=regular, 1=ext2adf */ /* adftype: 0=DD,1=HD,2=DD PC,3=HD PC,4=525SD */ bool disk_creatediskfile (const TCHAR *name, int type, drive_type adftype, const TCHAR *disk_name, bool ffs, bool bootable, struct zfile *copyfrom) { - int size = 32768; - struct zfile *f; - int i, l, file_size, tracks, track_len, sectors; - uae_u8 *chunk = NULL; - int ddhd = 1; - bool ok = false; - uae_u64 pos; + int size = 32768; + struct zfile *f; + int i, l, file_size, tracks, track_len, sectors; + uae_u8 *chunk = NULL; + int ddhd = 1; + bool ok = false; + uae_u64 pos; - if (type == 1) - tracks = 2 * 83; - else - tracks = 2 * 80; - file_size = 880 * 1024; - sectors = 11; - if (adftype == 2 || adftype == 3) { - file_size = 720 * 1024; - sectors = 9; - } - track_len = FLOPPY_WRITE_LEN * 2; - if (adftype == 1 || adftype == 3) { - file_size *= 2; - track_len *= 2; - ddhd = 2; - } else if (adftype == 4) { - file_size /= 2; - tracks /= 2; - } + if (type == 1) + tracks = 2 * 83; + else + tracks = 2 * 80; + file_size = 880 * 1024; + sectors = 11; + if (adftype == 2 || adftype == 3) + { + file_size = 720 * 1024; + sectors = 9; + } + track_len = FLOPPY_WRITE_LEN * 2; + if (adftype == 1 || adftype == 3) + { + file_size *= 2; + track_len *= 2; + ddhd = 2; + } + else if (adftype == 4) + { + file_size /= 2; + tracks /= 2; + } - if (copyfrom) { - pos = zfile_ftell (copyfrom); - zfile_fseek (copyfrom, 0, SEEK_SET); - } + if (copyfrom) + { + pos = zfile_ftell (copyfrom); + zfile_fseek (copyfrom, 0, SEEK_SET); + } - f = zfile_fopen (name, _T("wb"), 0); - chunk = xmalloc (uae_u8, size); - if (f && chunk) { - int cylsize = sectors * 2 * 512; - memset(chunk, 0 ,size); - if (type == 0) { - for (i = 0; i < file_size; i += cylsize) { - memset(chunk, 0, cylsize); - if (adftype <= 1) { - if (i == 0) { - /* boot block */ - floppy_get_bootblock (chunk, ffs, bootable); - } else if (i == file_size / 2) { - /* root block */ - floppy_get_rootblock (chunk, file_size / 1024, disk_name, adftype); - } - } - zfile_fwrite (chunk, cylsize, 1, f); - } - ok = true; - } else { - uae_u8 root[4]; - uae_u8 rawtrack[3 * 4], dostrack[3 * 4]; - l = track_len; - zfile_fwrite ("UAE-1ADF", 8, 1, f); - root[0] = 0; root[1] = 0; /* flags (reserved) */ - root[2] = 0; root[3] = tracks; /* number of tracks */ - zfile_fwrite (root, 4, 1, f); - rawtrack[0] = 0; rawtrack[1] = 0; /* flags (reserved) */ - rawtrack[2] = 0; rawtrack[3] = 1; /* track type */ - rawtrack[4] = 0; rawtrack[5] = 0; rawtrack[6]=(uae_u8)(l >> 8); rawtrack[7] = (uae_u8)l; - rawtrack[8] = 0; rawtrack[9] = 0; rawtrack[10] = 0; rawtrack[11] = 0; - memcpy (dostrack, rawtrack, sizeof rawtrack); - dostrack[3] = 0; - dostrack[9] = (l * 8) >> 16; dostrack[10] = (l * 8) >> 8; dostrack[11] = (l * 8) >> 0; - bool dodos = ffs || bootable || (disk_name && _tcslen (disk_name) > 0); - for (i = 0; i < tracks; i++) { - uae_u8 tmp[3 * 4]; - memcpy (tmp, rawtrack, sizeof rawtrack); - if (dodos || copyfrom) - memcpy (tmp, dostrack, sizeof dostrack); - zfile_fwrite (tmp, sizeof tmp, 1, f); - } - for (i = 0; i < tracks; i++) { - memset (chunk, 0, size); - if (copyfrom) { - zfile_fread (chunk, 11 * ddhd, 512, copyfrom); - } else { - if (dodos) { - if (i == 0) - floppy_get_bootblock (chunk, ffs, bootable); - else if (i == 80) - floppy_get_rootblock (chunk, 80 * 11 * ddhd, disk_name, adftype); - } - } - zfile_fwrite (chunk, l, 1, f); - } - ok = true; - } - } - xfree (chunk); - zfile_fclose (f); - if (copyfrom) - zfile_fseek (copyfrom, pos, SEEK_SET); - if (f) - DISK_history_add (name, -1, HISTORY_FLOPPY, TRUE); - return ok; + f = zfile_fopen (name, _T("wb"), 0); + chunk = xmalloc (uae_u8, size); + if (f && chunk) + { + int cylsize = sectors * 2 * 512; + memset(chunk, 0,size); + if (type == 0) + { + for (i = 0; i < file_size; i += cylsize) + { + memset(chunk, 0, cylsize); + if (adftype <= 1) + { + if (i == 0) + { + /* boot block */ + floppy_get_bootblock (chunk, ffs, bootable); + } + else if (i == file_size / 2) + { + /* root block */ + floppy_get_rootblock (chunk, file_size / 1024, disk_name, adftype); + } + } + zfile_fwrite (chunk, cylsize, 1, f); + } + ok = true; + } + else + { + uae_u8 root[4]; + uae_u8 rawtrack[3 * 4], dostrack[3 * 4]; + l = track_len; + zfile_fwrite ("UAE-1ADF", 8, 1, f); + root[0] = 0; + root[1] = 0; /* flags (reserved) */ + root[2] = 0; + root[3] = tracks; /* number of tracks */ + zfile_fwrite (root, 4, 1, f); + rawtrack[0] = 0; + rawtrack[1] = 0; /* flags (reserved) */ + rawtrack[2] = 0; + rawtrack[3] = 1; /* track type */ + rawtrack[4] = 0; + rawtrack[5] = 0; + rawtrack[6]=(uae_u8)(l >> 8); + rawtrack[7] = (uae_u8)l; + rawtrack[8] = 0; + rawtrack[9] = 0; + rawtrack[10] = 0; + rawtrack[11] = 0; + memcpy (dostrack, rawtrack, sizeof rawtrack); + dostrack[3] = 0; + dostrack[9] = (l * 8) >> 16; + dostrack[10] = (l * 8) >> 8; + dostrack[11] = (l * 8) >> 0; + bool dodos = ffs || bootable || (disk_name && _tcslen (disk_name) > 0); + for (i = 0; i < tracks; i++) + { + uae_u8 tmp[3 * 4]; + memcpy (tmp, rawtrack, sizeof rawtrack); + if (dodos || copyfrom) + memcpy (tmp, dostrack, sizeof dostrack); + zfile_fwrite (tmp, sizeof tmp, 1, f); + } + for (i = 0; i < tracks; i++) + { + memset (chunk, 0, size); + if (copyfrom) + { + zfile_fread (chunk, 11 * ddhd, 512, copyfrom); + } + else + { + if (dodos) + { + if (i == 0) + floppy_get_bootblock (chunk, ffs, bootable); + else if (i == 80) + floppy_get_rootblock (chunk, 80 * 11 * ddhd, disk_name, adftype); + } + } + zfile_fwrite (chunk, l, 1, f); + } + ok = true; + } + } + xfree (chunk); + zfile_fclose (f); + if (copyfrom) + zfile_fseek (copyfrom, pos, SEEK_SET); + if (f) + DISK_history_add (name, -1, HISTORY_FLOPPY, TRUE); + return ok; } int disk_getwriteprotect (struct uae_prefs *p, const TCHAR *name) { - int needwritefile; - drive_type drvtype; - return diskfile_iswriteprotect (p, name, &needwritefile, &drvtype); + int needwritefile; + drive_type drvtype; + return diskfile_iswriteprotect (p, name, &needwritefile, &drvtype); } static void diskfile_readonly (const TCHAR *name, bool readonly) { - struct mystat st; - int mode, oldmode; - - if (!my_stat (name, &st)) - return; - oldmode = mode = st.mode; - mode &= ~FILEFLAG_WRITE; - if (!readonly) - mode |= FILEFLAG_WRITE; - if (mode != oldmode) - my_chmod (name, mode); + struct mystat st; + int mode, oldmode; + + if (!my_stat (name, &st)) + return; + oldmode = mode = st.mode; + mode &= ~FILEFLAG_WRITE; + if (!readonly) + mode |= FILEFLAG_WRITE; + if (mode != oldmode) + my_chmod (name, mode); } static void setdskchangetime(drive *drv, int dsktime) { - int i; - /* prevent multiple disk insertions at the same time */ - if (drv->dskchange_time > 0) - return; - for (i = 0; i < MAX_FLOPPY_DRIVES; i++) { - if (&floppy[i] != drv && floppy[i].dskchange_time > 0 && floppy[i].dskchange_time + 1 >= dsktime) { - dsktime = floppy[i].dskchange_time + 1; - } - } - drv->dskchange_time = dsktime; + int i; + /* prevent multiple disk insertions at the same time */ + if (drv->dskchange_time > 0) + return; + for (i = 0; i < MAX_FLOPPY_DRIVES; i++) + { + if (&floppy[i] != drv && floppy[i].dskchange_time > 0 && floppy[i].dskchange_time + 1 >= dsktime) + { + dsktime = floppy[i].dskchange_time + 1; + } + } + drv->dskchange_time = dsktime; } void DISK_reinsert (int num) { - drive_eject (&floppy[num]); - setdskchangetime (&floppy[num], 100); + drive_eject (&floppy[num]); + setdskchangetime (&floppy[num], 100); } int disk_setwriteprotect (struct uae_prefs *p, int num, const TCHAR *name, bool writeprotected) { - int needwritefile, oldprotect; - struct zfile *zf1, *zf2; - bool wrprot1, wrprot2; - int i; - TCHAR *name2; - drive_type drvtype; + int needwritefile, oldprotect; + struct zfile *zf1, *zf2; + bool wrprot1, wrprot2; + int i; + TCHAR *name2; + drive_type drvtype; - oldprotect = diskfile_iswriteprotect (p, name, &needwritefile, &drvtype); - DISK_validate_filename (p, name, 1, &wrprot1, NULL, &zf1); - if (!zf1) - return 0; - if (zfile_iscompressed (zf1)) - wrprot1 = 1; - zfile_fclose (zf1); - zf2 = getwritefile (p, name, &wrprot2); - name2 = DISK_get_saveimagepath (name); + oldprotect = diskfile_iswriteprotect (p, name, &needwritefile, &drvtype); + DISK_validate_filename (p, name, 1, &wrprot1, NULL, &zf1); + if (!zf1) + return 0; + if (zfile_iscompressed (zf1)) + wrprot1 = 1; + zfile_fclose (zf1); + zf2 = getwritefile (p, name, &wrprot2); + name2 = DISK_get_saveimagepath (name); - if (needwritefile && zf2 == 0) - disk_creatediskfile (name2, 1, drvtype, NULL, false, false, NULL); - zfile_fclose (zf2); - if (writeprotected && iswritefileempty (p, name)) { - for (i = 0; i < MAX_FLOPPY_DRIVES; i++) { - if (!_tcscmp (name, floppy[i].newname)) - drive_eject (&floppy[i]); - } - _wunlink (name2); - } + if (needwritefile && zf2 == 0) + disk_creatediskfile (name2, 1, drvtype, NULL, false, false, NULL); + zfile_fclose (zf2); + if (writeprotected && iswritefileempty (p, name)) + { + for (i = 0; i < MAX_FLOPPY_DRIVES; i++) + { + if (!_tcscmp (name, floppy[i].newname)) + drive_eject (&floppy[i]); + } + _wunlink (name2); + } - if (!needwritefile) - diskfile_readonly (name, writeprotected); - diskfile_readonly (name2, writeprotected); - DISK_reinsert (num); - return 1; + if (!needwritefile) + diskfile_readonly (name, writeprotected); + diskfile_readonly (name2, writeprotected); + DISK_reinsert (num); + return 1; } void disk_eject (int num) { - gui_filename (num, _T("")); - drive_eject (floppy + num); - *currprefs.floppyslots[num].df = *changed_prefs.floppyslots[num].df = 0; - floppy[num].newname[0] = 0; - update_drive_gui (num); + gui_filename (num, _T("")); + drive_eject (floppy + num); + *currprefs.floppyslots[num].df = *changed_prefs.floppyslots[num].df = 0; + floppy[num].newname[0] = 0; + update_drive_gui (num); } int DISK_history_add (const TCHAR *name, int idx, int type, int donotcheck) { - int i; + int i; - if (idx >= MAX_PREVIOUS_FLOPPIES) - return 0; - if (name == NULL) { - dfxhistory[type][idx][0] = 0; - return 1; - } - if (name[0] == 0) - return 0; - if (!donotcheck) { - if (!zfile_exists (name)) { - for (i = 0; i < MAX_PREVIOUS_FLOPPIES; i++) { - if (!_tcsicmp (dfxhistory[type][i], name)) { - while (i < MAX_PREVIOUS_FLOPPIES - 1) { - _tcscpy (dfxhistory[type][i], dfxhistory[type][i + 1]); - i++; - } - dfxhistory[type][MAX_PREVIOUS_FLOPPIES - 1][0] = 0; - break; - } - } - return 0; - } - } - if (idx >= 0) { - if (idx >= MAX_PREVIOUS_FLOPPIES) - return 0; - dfxhistory[type][idx][0] = 0; - for (i = 0; i < MAX_PREVIOUS_FLOPPIES; i++) { - if (!_tcsicmp (dfxhistory[type][i], name)) - return 0; + if (idx >= MAX_PREVIOUS_FLOPPIES) + return 0; + if (name == NULL) + { + dfxhistory[type][idx][0] = 0; + return 1; } - _tcscpy (dfxhistory[type][idx], name); - return 1; - } - for (i = 0; i < MAX_PREVIOUS_FLOPPIES; i++) { - if (!_tcscmp (dfxhistory[type][i], name)) { - while (i < MAX_PREVIOUS_FLOPPIES - 1) { - _tcscpy (dfxhistory[type][i], dfxhistory[type][i + 1]); - i++; - } - dfxhistory[type][MAX_PREVIOUS_FLOPPIES - 1][0] = 0; - break; - } - } - for (i = MAX_PREVIOUS_FLOPPIES - 2; i >= 0; i--) - _tcscpy (dfxhistory[type][i + 1], dfxhistory[type][i]); - _tcscpy (dfxhistory[type][0], name); - return 1; + if (name[0] == 0) + return 0; + if (!donotcheck) + { + if (!zfile_exists (name)) + { + for (i = 0; i < MAX_PREVIOUS_FLOPPIES; i++) + { + if (!_tcsicmp (dfxhistory[type][i], name)) + { + while (i < MAX_PREVIOUS_FLOPPIES - 1) + { + _tcscpy (dfxhistory[type][i], dfxhistory[type][i + 1]); + i++; + } + dfxhistory[type][MAX_PREVIOUS_FLOPPIES - 1][0] = 0; + break; + } + } + return 0; + } + } + if (idx >= 0) + { + if (idx >= MAX_PREVIOUS_FLOPPIES) + return 0; + dfxhistory[type][idx][0] = 0; + for (i = 0; i < MAX_PREVIOUS_FLOPPIES; i++) + { + if (!_tcsicmp (dfxhistory[type][i], name)) + return 0; + } + _tcscpy (dfxhistory[type][idx], name); + return 1; + } + for (i = 0; i < MAX_PREVIOUS_FLOPPIES; i++) + { + if (!_tcscmp (dfxhistory[type][i], name)) + { + while (i < MAX_PREVIOUS_FLOPPIES - 1) + { + _tcscpy (dfxhistory[type][i], dfxhistory[type][i + 1]); + i++; + } + dfxhistory[type][MAX_PREVIOUS_FLOPPIES - 1][0] = 0; + break; + } + } + for (i = MAX_PREVIOUS_FLOPPIES - 2; i >= 0; i--) + _tcscpy (dfxhistory[type][i + 1], dfxhistory[type][i]); + _tcscpy (dfxhistory[type][0], name); + return 1; } TCHAR *DISK_history_get (int idx, int type) { - if (idx >= MAX_PREVIOUS_FLOPPIES) - return NULL; - return dfxhistory[type][idx]; + if (idx >= MAX_PREVIOUS_FLOPPIES) + return NULL; + return dfxhistory[type][idx]; } static void disk_insert_2 (int num, const TCHAR *name, int forced) { - drive *drv = floppy + num; - if (forced) { - drive_insert (drv, &currprefs, num, name, false); - return; - } - if (!_tcscmp (currprefs.floppyslots[num].df, name)) - return; - _tcscpy (drv->newname, name); - _tcscpy (currprefs.floppyslots[num].df, name); - DISK_history_add (name, -1, HISTORY_FLOPPY, 0); - if (name[0] == 0) { - disk_eject (num); - } else if (!drive_empty(drv) || drv->dskchange_time > 0) { - drive_eject (drv); - /* set dskchange_time, disk_insert() will be - * called from DISK_check_change() after 2 second delay - * this makes sure that all programs detect disk change correctly - */ - setdskchangetime (drv, 100); - } else { - setdskchangetime (drv, 1); - } + drive *drv = floppy + num; + if (forced) + { + drive_insert (drv, &currprefs, num, name, false); + return; + } + if (!_tcscmp (currprefs.floppyslots[num].df, name)) + return; + _tcscpy (drv->newname, name); + _tcscpy (currprefs.floppyslots[num].df, name); + DISK_history_add (name, -1, HISTORY_FLOPPY, 0); + if (name[0] == 0) + { + disk_eject (num); + } + else if (!drive_empty(drv) || drv->dskchange_time > 0) + { + drive_eject (drv); + /* set dskchange_time, disk_insert() will be + * called from DISK_check_change() after 2 second delay + * this makes sure that all programs detect disk change correctly + */ + setdskchangetime (drv, 100); + } + else + { + setdskchangetime (drv, 1); + } } void disk_insert (int num, const TCHAR *name) { - disk_insert_2 (num, name, 0); + disk_insert_2 (num, name, 0); } void disk_insert_force (int num, const TCHAR *name, bool writeprotected) { - disk_insert_2 (num, name, 1); + disk_insert_2 (num, name, 1); } static void DISK_check_change (void) { - if (currprefs.floppy_speed != changed_prefs.floppy_speed) - currprefs.floppy_speed = changed_prefs.floppy_speed; - for (int i = 0; i < MAX_FLOPPY_DRIVES; i++) { - drive *drv = floppy + i; - if (currprefs.floppyslots[i].dfxtype != changed_prefs.floppyslots[i].dfxtype) { - currprefs.floppyslots[i].dfxtype = changed_prefs.floppyslots[i].dfxtype; - reset_drive (i); - } - } + if (currprefs.floppy_speed != changed_prefs.floppy_speed) + currprefs.floppy_speed = changed_prefs.floppy_speed; + for (int i = 0; i < MAX_FLOPPY_DRIVES; i++) + { + drive *drv = floppy + i; + if (currprefs.floppyslots[i].dfxtype != changed_prefs.floppyslots[i].dfxtype) + { + currprefs.floppyslots[i].dfxtype = changed_prefs.floppyslots[i].dfxtype; + reset_drive (i); + } + } } void DISK_vsync (void) { - DISK_check_change (); - for (int i = 0; i < MAX_FLOPPY_DRIVES; i++) { - drive *drv = floppy + i; - if (drv->dskchange_time == 0 && _tcscmp (currprefs.floppyslots[i].df, changed_prefs.floppyslots[i].df)) - disk_insert (i, changed_prefs.floppyslots[i].df); - if (drv->dskready_down_time > 0) - drv->dskready_down_time--; - /* emulate drive motor turn on time */ - if (drv->dskready_up_time > 0 && !drive_empty(drv)) { - drv->dskready_up_time--; - if (drv->dskready_up_time == 0 && !drv->motoroff) - drv->dskready = true; - } - /* delay until new disk image is inserted */ - if (drv->dskchange_time > 0) { - drv->dskchange_time--; - if (drv->dskchange_time == 0) { - drive_insert (drv, &currprefs, i, drv->newname, false); - update_drive_gui (i); - } - } - } + DISK_check_change (); + for (int i = 0; i < MAX_FLOPPY_DRIVES; i++) + { + drive *drv = floppy + i; + if (drv->dskchange_time == 0 && _tcscmp (currprefs.floppyslots[i].df, changed_prefs.floppyslots[i].df)) + disk_insert (i, changed_prefs.floppyslots[i].df); + if (drv->dskready_down_time > 0) + drv->dskready_down_time--; + /* emulate drive motor turn on time */ + if (drv->dskready_up_time > 0 && !drive_empty(drv)) + { + drv->dskready_up_time--; + if (drv->dskready_up_time == 0 && !drv->motoroff) + drv->dskready = true; + } + /* delay until new disk image is inserted */ + if (drv->dskchange_time > 0) + { + drv->dskchange_time--; + if (drv->dskchange_time == 0) + { + drive_insert (drv, &currprefs, i, drv->newname, false); + update_drive_gui (i); + } + } + } } int disk_empty (int num) @@ -2275,939 +2505,1065 @@ int disk_empty (int num) static TCHAR *tobin (uae_u8 v) { - int i; - static TCHAR buf[10]; - for( i = 7; i >= 0; i--) - buf[7 - i] = v & (1 << i) ? '1' : '0'; - buf[i] = 0; - return buf; + int i; + static TCHAR buf[10]; + for( i = 7; i >= 0; i--) + buf[7 - i] = v & (1 << i) ? '1' : '0'; + buf[i] = 0; + return buf; } static void fetch_DISK_select(uae_u8 data) { - selected = (data >> 3) & 15; - side = 1 - ((data >> 2) & 1); - direction = (data >> 1) & 1; + selected = (data >> 3) & 15; + side = 1 - ((data >> 2) & 1); + direction = (data >> 1) & 1; } void DISK_select_set (uae_u8 data) { - prev_data = data; - prev_step = data & 1; + prev_data = data; + prev_step = data & 1; - fetch_DISK_select (data); + fetch_DISK_select (data); } void DISK_select (uae_u8 data) { - int step_pulse, prev_selected, dr; + int step_pulse, prev_selected, dr; - prev_selected = selected; + prev_selected = selected; - fetch_DISK_select (data); - step_pulse = data & 1; + fetch_DISK_select (data); + step_pulse = data & 1; - if ((prev_data & 0x80) != (data & 0x80)) { - for (dr = 0; dr < 4; dr++) { - if (floppy[dr].indexhackmode > 1 && !(selected & (1 << dr))) { - floppy[dr].indexhack = 1; - } - } - } - - // step goes high and drive was selected when step pulse changes: step - if (prev_step != step_pulse) { - prev_step = step_pulse; - if (prev_step && !savestate_state) { - for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) { - if (!((prev_selected | disabled) & (1 << dr))) { - drive_step (floppy + dr, direction); - if (floppy[dr].indexhackmode > 1 && (data & 0x80)) - floppy[dr].indexhack = 1; - } - } - } - } - - if (!savestate_state) { - for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) { - drive *drv = floppy + dr; - /* motor on/off workings tested with small assembler code on real Amiga 1200. */ - /* motor/id flipflop is set only when drive select goes from high to low */ - if (!(selected & (1 << dr)) && (prev_selected & (1 << dr)) ) { - drv->drive_id_scnt++; - drv->drive_id_scnt &= 31; - drv->idbit = (drv->drive_id & (1L << (31 - drv->drive_id_scnt))) ? 1 : 0; - if (!(disabled & (1 << dr))) { - if ((prev_data & 0x80) == 0 || (data & 0x80) == 0) { - /* motor off: if motor bit = 0 in prevdata or data -> turn motor on */ - drive_motor (drv, 0); - } else if (prev_data & 0x80) { - /* motor on: if motor bit = 1 in prevdata only (motor flag state in data has no effect) - -> turn motor off */ - drive_motor (drv, 1); - } + if ((prev_data & 0x80) != (data & 0x80)) + { + for (dr = 0; dr < 4; dr++) + { + if (floppy[dr].indexhackmode > 1 && !(selected & (1 << dr))) + { + floppy[dr].indexhack = 1; + } } - if (/*!currprefs.cs_df0idhw &&*/ dr == 0) - drv->idbit = 0; - } } - } - for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) { - floppy[dr].state = (!(selected & (1 << dr))) | !floppy[dr].motoroff; - update_drive_gui (dr); - } - prev_data = data; + // step goes high and drive was selected when step pulse changes: step + if (prev_step != step_pulse) + { + prev_step = step_pulse; + if (prev_step && !savestate_state) + { + for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) + { + if (!((prev_selected | disabled) & (1 << dr))) + { + drive_step (floppy + dr, direction); + if (floppy[dr].indexhackmode > 1 && (data & 0x80)) + floppy[dr].indexhack = 1; + } + } + } + } + + if (!savestate_state) + { + for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) + { + drive *drv = floppy + dr; + /* motor on/off workings tested with small assembler code on real Amiga 1200. */ + /* motor/id flipflop is set only when drive select goes from high to low */ + if (!(selected & (1 << dr)) && (prev_selected & (1 << dr)) ) + { + drv->drive_id_scnt++; + drv->drive_id_scnt &= 31; + drv->idbit = (drv->drive_id & (1L << (31 - drv->drive_id_scnt))) ? 1 : 0; + if (!(disabled & (1 << dr))) + { + if ((prev_data & 0x80) == 0 || (data & 0x80) == 0) + { + /* motor off: if motor bit = 0 in prevdata or data -> turn motor on */ + drive_motor (drv, 0); + } + else if (prev_data & 0x80) + { + /* motor on: if motor bit = 1 in prevdata only (motor flag state in data has no effect) + -> turn motor off */ + drive_motor (drv, 1); + } + } + if (/*!currprefs.cs_df0idhw &&*/ dr == 0) + drv->idbit = 0; + } + } + } + + for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) + { + floppy[dr].state = (!(selected & (1 << dr))) | !floppy[dr].motoroff; + update_drive_gui (dr); + } + prev_data = data; } uae_u8 DISK_status (void) { - uae_u8 st = 0x3c; - int dr; + uae_u8 st = 0x3c; + int dr; - for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) { - drive *drv = floppy + dr; - if (!((selected | disabled) & (1 << dr))) { - if (drive_running (drv)) { + for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) + { + drive *drv = floppy + dr; + if (!((selected | disabled) & (1 << dr))) { - if (drv->dskready && !drv->indexhack && currprefs.floppyslots[dr].dfxtype != DRV_35_DD_ESCOM) - st &= ~0x20; + if (drive_running (drv)) + { + { + if (drv->dskready && !drv->indexhack && currprefs.floppyslots[dr].dfxtype != DRV_35_DD_ESCOM) + st &= ~0x20; + } + } + else + { + if (/*currprefs.cs_df0idhw ||*/ dr > 0) + { + /* report drive ID */ + if (drv->idbit && currprefs.floppyslots[dr].dfxtype != DRV_35_DD_ESCOM) + st &= ~0x20; + } + else + { + /* non-ID internal drive: mirror real dskready */ + if (drv->dskready) + st &= ~0x20; + } + /* dskrdy needs some cycles after switching the motor off.. (Pro Tennis Tour) */ + if (/*!currprefs.cs_df0idhw &&*/ dr == 0 && drv->motordelay) + st &= ~0x20; + } + if (drive_track0 (drv)) + st &= ~0x10; + if (drive_writeprotected (drv)) + st &= ~8; + if (drv->dskchange && currprefs.floppyslots[dr].dfxtype != DRV_525_SD) + { + st &= ~4; + } } - } else { - if (/*currprefs.cs_df0idhw ||*/ dr > 0) { - /* report drive ID */ - if (drv->idbit && currprefs.floppyslots[dr].dfxtype != DRV_35_DD_ESCOM) - st &= ~0x20; - } else { - /* non-ID internal drive: mirror real dskready */ - if (drv->dskready) - st &= ~0x20; - } - /* dskrdy needs some cycles after switching the motor off.. (Pro Tennis Tour) */ - if (/*!currprefs.cs_df0idhw &&*/ dr == 0 && drv->motordelay) - st &= ~0x20; - } - if (drive_track0 (drv)) - st &= ~0x10; - if (drive_writeprotected (drv)) - st &= ~8; - if (drv->dskchange && currprefs.floppyslots[dr].dfxtype != DRV_525_SD) { - st &= ~4; - } - } else if (!(selected & (1 << dr))) { - if (drv->idbit) - st &= ~0x20; - } - } - return st; + else if (!(selected & (1 << dr))) + { + if (drv->idbit) + st &= ~0x20; + } + } + return st; } static bool unformatted (drive *drv) { - int tr = drv->cyl * 2 + side; - if (tr >= drv->num_tracks) - return true; - if (drv->filetype == ADF_EXT2 && drv->trackdata[tr].bitlen == 0 && drv->trackdata[tr].type != TRACK_AMIGADOS) - return true; - if (drv->trackdata[tr].type == TRACK_NONE) - return true; - return false; + int tr = drv->cyl * 2 + side; + if (tr >= drv->num_tracks) + return true; + if (drv->filetype == ADF_EXT2 && drv->trackdata[tr].bitlen == 0 && drv->trackdata[tr].type != TRACK_AMIGADOS) + return true; + if (drv->trackdata[tr].type == TRACK_NONE) + return true; + return false; } /* get one bit from MFM bit stream */ STATIC_INLINE uae_u32 getonebit (uae_u16 * mfmbuf, int mfmpos) { - uae_u16 *buf; + uae_u16 *buf; - buf = &mfmbuf[mfmpos >> 4]; - return (buf[0] & (1 << (15 - (mfmpos & 15)))) ? 1 : 0; + buf = &mfmbuf[mfmpos >> 4]; + return (buf[0] & (1 << (15 - (mfmpos & 15)))) ? 1 : 0; } static void disk_dmafinished (void) { - INTREQ (0x8000 | 0x0002); - longwritemode = 0; - dskdmaen = DSKDMA_OFF; - dsklength = 0; + INTREQ (0x8000 | 0x0002); + longwritemode = 0; + dskdmaen = DSKDMA_OFF; + dsklength = 0; } static void fetchnextrevolution (drive *drv) { - drv->trackspeed = get_floppy_speed2 (drv); - if (!drv->multi_revolution) - return; + drv->trackspeed = get_floppy_speed2 (drv); + if (!drv->multi_revolution) + return; } void DISK_handler (uae_u32 data) { - int flag = data & 255; - int disk_sync_cycle = data >> 8; - int hpos = current_hpos (); + int flag = data & 255; + int disk_sync_cycle = data >> 8; + int hpos = current_hpos (); - event2_remevent(ev2_disk); - DISK_update (disk_sync_cycle); - if (flag & (DISK_REVOLUTION << 0)) - fetchnextrevolution (&floppy[0]); - if (flag & (DISK_REVOLUTION << 1)) - fetchnextrevolution (&floppy[1]); - if (flag & (DISK_REVOLUTION << 2)) - fetchnextrevolution (&floppy[2]); - if (flag & (DISK_REVOLUTION << 3)) - fetchnextrevolution (&floppy[3]); - if (flag & DISK_WORDSYNC) - INTREQ (0x8000 | 0x1000); - if (flag & DISK_INDEXSYNC) { - if (!indexdecay) { - indexdecay = 2; - cia_diskindex (); - } - } + event2_remevent(ev2_disk); + DISK_update (disk_sync_cycle); + if (flag & (DISK_REVOLUTION << 0)) + fetchnextrevolution (&floppy[0]); + if (flag & (DISK_REVOLUTION << 1)) + fetchnextrevolution (&floppy[1]); + if (flag & (DISK_REVOLUTION << 2)) + fetchnextrevolution (&floppy[2]); + if (flag & (DISK_REVOLUTION << 3)) + fetchnextrevolution (&floppy[3]); + if (flag & DISK_WORDSYNC) + INTREQ (0x8000 | 0x1000); + if (flag & DISK_INDEXSYNC) + { + if (!indexdecay) + { + indexdecay = 2; + cia_diskindex (); + } + } } static void disk_doupdate_write (drive * drv, int floppybits) { - int dr; - int drives[4]; - - for (dr = 0; dr < MAX_FLOPPY_DRIVES ; dr++) { - drive *drv2 = &floppy[dr]; - drives[dr] = 0; - if (drv2->motoroff) - continue; - if (selected & (1 << dr)) - continue; - drives[dr] = 1; - } + int dr; + int drives[4]; - while (floppybits >= drv->trackspeed) { - for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) { - if (drives[dr]) { - floppy[dr].mfmpos++; - floppy[dr].mfmpos %= drv->tracklen; - } + for (dr = 0; dr < MAX_FLOPPY_DRIVES ; dr++) + { + drive *drv2 = &floppy[dr]; + drives[dr] = 0; + if (drv2->motoroff) + continue; + if (selected & (1 << dr)) + continue; + drives[dr] = 1; } - if (dmaen (DMA_DISK) && dskdmaen == DSKDMA_WRITE && dsklength > 0 && fifo_filled) { - bitoffset++; - bitoffset &= 15; - if (!bitoffset) { - // fast disk modes, fill the fifo instantly - if (currprefs.floppy_speed > 100 && !fifo_inuse[0] && !fifo_inuse[1] && !fifo_inuse[2]) { - while (!fifo_inuse[2]) { - uae_u16 w = chipmem_wget_indirect (dskpt); - DSKDAT (w); - dskpt += 2; - } - } - if (disk_fifostatus () >= 0) { - uae_u16 w = DSKDATR (); - for (dr = 0; dr < MAX_FLOPPY_DRIVES ; dr++) { - drive *drv2 = &floppy[dr]; - if (drives[dr]) { - drv2->bigmfmbuf[drv2->mfmpos >> 4] = w; - drv2->bigmfmbuf[(drv2->mfmpos >> 4) + 1] = 0x5555; - drv2->writtento = 1; - } - } - dsklength--; - if (dsklength <= 0) { - disk_dmafinished (); - for (int dr = 0; dr < MAX_FLOPPY_DRIVES ; dr++) { - drive *drv = &floppy[dr]; - drv->writtento = 0; - if (drv->motoroff) - continue; - if (selected & (1 << dr)) - continue; - drive_write_data (drv); - } - } + + while (floppybits >= drv->trackspeed) + { + for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) + { + if (drives[dr]) + { + floppy[dr].mfmpos++; + floppy[dr].mfmpos %= drv->tracklen; + } } - } + if (dmaen (DMA_DISK) && dskdmaen == DSKDMA_WRITE && dsklength > 0 && fifo_filled) + { + bitoffset++; + bitoffset &= 15; + if (!bitoffset) + { + // fast disk modes, fill the fifo instantly + if (currprefs.floppy_speed > 100 && !fifo_inuse[0] && !fifo_inuse[1] && !fifo_inuse[2]) + { + while (!fifo_inuse[2]) + { + uae_u16 w = chipmem_wget_indirect (dskpt); + DSKDAT (w); + dskpt += 2; + } + } + if (disk_fifostatus () >= 0) + { + uae_u16 w = DSKDATR (); + for (dr = 0; dr < MAX_FLOPPY_DRIVES ; dr++) + { + drive *drv2 = &floppy[dr]; + if (drives[dr]) + { + drv2->bigmfmbuf[drv2->mfmpos >> 4] = w; + drv2->bigmfmbuf[(drv2->mfmpos >> 4) + 1] = 0x5555; + drv2->writtento = 1; + } + } + dsklength--; + if (dsklength <= 0) + { + disk_dmafinished (); + for (int dr = 0; dr < MAX_FLOPPY_DRIVES ; dr++) + { + drive *drv = &floppy[dr]; + drv->writtento = 0; + if (drv->motoroff) + continue; + if (selected & (1 << dr)) + continue; + drive_write_data (drv); + } + } + } + } + } + floppybits -= drv->trackspeed; } - floppybits -= drv->trackspeed; - } } static void update_jitter (void) { - disk_jitter = ((uaerand () >> 4) % 3) + 1; + disk_jitter = ((uaerand () >> 4) % 3) + 1; } static void updatetrackspeed (drive *drv, int mfmpos) { - if (dskdmaen < DSKDMA_WRITE) { - int t = drv->tracktiming[mfmpos / 8]; - drv->trackspeed = get_floppy_speed2 (drv) * t / 1000; - if (drv->trackspeed < 700 || drv->trackspeed > 3000) { - drv->trackspeed = 1000; - } - } + if (dskdmaen < DSKDMA_WRITE) + { + int t = drv->tracktiming[mfmpos / 8]; + drv->trackspeed = get_floppy_speed2 (drv) * t / 1000; + if (drv->trackspeed < 700 || drv->trackspeed > 3000) + { + drv->trackspeed = 1000; + } + } } static void disk_doupdate_predict (int startcycle) { - int finaleventcycle = maxhpos << 8; - int finaleventflag = 0; + int finaleventcycle = maxhpos << 8; + int finaleventflag = 0; - for (int dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) { - drive *drv = &floppy[dr]; - if (drv->motoroff) - continue; - if (drv->motoroff || !drv->trackspeed) - continue; - if (selected & (1 << dr)) - continue; - int diskevent_flag = 0; - uae_u32 tword = word; - int countcycle = startcycle + (drv->floppybitcounter % drv->trackspeed); - int mfmpos = drv->mfmpos; - while (countcycle < (maxhpos << 8)) { - if (drv->tracktiming[0]) - updatetrackspeed (drv, mfmpos); - if (dskdmaen != DSKDMA_WRITE || (dskdmaen == DSKDMA_WRITE && !dma_enable)) { - tword <<= 1; - if (!drive_empty (drv)) { - if (unformatted (drv)) - tword |= (uaerand() & 0x1000) ? 1 : 0; - else - tword |= getonebit (drv->bigmfmbuf, mfmpos); - } - if ((tword & 0xffff) == dsksync && dsksync != 0) - diskevent_flag |= DISK_WORDSYNC; - } - mfmpos++; - mfmpos %= drv->tracklen; - if (mfmpos == 0) - diskevent_flag |= DISK_REVOLUTION << (drv - floppy); - if (mfmpos == drv->indexoffset) - diskevent_flag |= DISK_INDEXSYNC; - if (dskdmaen != DSKDMA_WRITE && mfmpos == drv->skipoffset) { - update_jitter (); - int skipcnt = disk_jitter; - while (skipcnt-- > 0) { - mfmpos++; - mfmpos %= drv->tracklen; - if (mfmpos == 0) - diskevent_flag |= DISK_REVOLUTION << (drv - floppy); - if (mfmpos == drv->indexoffset) - diskevent_flag |= DISK_INDEXSYNC; - } - } - if (diskevent_flag) - break; - countcycle += drv->trackspeed; + for (int dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) + { + drive *drv = &floppy[dr]; + if (drv->motoroff) + continue; + if (drv->motoroff || !drv->trackspeed) + continue; + if (selected & (1 << dr)) + continue; + int diskevent_flag = 0; + uae_u32 tword = word; + int countcycle = startcycle + (drv->floppybitcounter % drv->trackspeed); + int mfmpos = drv->mfmpos; + while (countcycle < (maxhpos << 8)) + { + if (drv->tracktiming[0]) + updatetrackspeed (drv, mfmpos); + if (dskdmaen != DSKDMA_WRITE || (dskdmaen == DSKDMA_WRITE && !dma_enable)) + { + tword <<= 1; + if (!drive_empty (drv)) + { + if (unformatted (drv)) + tword |= (uaerand() & 0x1000) ? 1 : 0; + else + tword |= getonebit (drv->bigmfmbuf, mfmpos); + } + if ((tword & 0xffff) == dsksync && dsksync != 0) + diskevent_flag |= DISK_WORDSYNC; + } + mfmpos++; + mfmpos %= drv->tracklen; + if (mfmpos == 0) + diskevent_flag |= DISK_REVOLUTION << (drv - floppy); + if (mfmpos == drv->indexoffset) + diskevent_flag |= DISK_INDEXSYNC; + if (dskdmaen != DSKDMA_WRITE && mfmpos == drv->skipoffset) + { + update_jitter (); + int skipcnt = disk_jitter; + while (skipcnt-- > 0) + { + mfmpos++; + mfmpos %= drv->tracklen; + if (mfmpos == 0) + diskevent_flag |= DISK_REVOLUTION << (drv - floppy); + if (mfmpos == drv->indexoffset) + diskevent_flag |= DISK_INDEXSYNC; + } + } + if (diskevent_flag) + break; + countcycle += drv->trackspeed; + } + if (drv->tracktiming[0]) + updatetrackspeed (drv, drv->mfmpos); + if (diskevent_flag && countcycle < finaleventcycle) + { + finaleventcycle = countcycle; + finaleventflag = diskevent_flag; + } + } + if (finaleventflag && (finaleventcycle >> 8) < maxhpos) + { + event2_newevent (ev2_disk, (finaleventcycle - startcycle) >> 8, ((finaleventcycle >> 8) << 8) | finaleventflag); } - if (drv->tracktiming[0]) - updatetrackspeed (drv, drv->mfmpos); - if (diskevent_flag && countcycle < finaleventcycle) { - finaleventcycle = countcycle; - finaleventflag = diskevent_flag; - } - } - if (finaleventflag && (finaleventcycle >> 8) < maxhpos) { - event2_newevent (ev2_disk, (finaleventcycle - startcycle) >> 8, ((finaleventcycle >> 8) << 8) | finaleventflag); - } } int disk_fifostatus (void) { - if (fifo_inuse[0] && fifo_inuse[1] && fifo_inuse[2]) - return 1; - if (!fifo_inuse[0] && !fifo_inuse[1] && !fifo_inuse[2]) - return -1; - return 0; + if (fifo_inuse[0] && fifo_inuse[1] && fifo_inuse[2]) + return 1; + if (!fifo_inuse[0] && !fifo_inuse[1] && !fifo_inuse[2]) + return -1; + return 0; } static int doreaddma (void) { - if (dmaen (DMA_DISK) && bitoffset == 15 && dma_enable && dskdmaen == DSKDMA_READ && dsklength >= 0) { - if (dsklength > 0) { - // DSKLEN == 1: finish without DMA transfer. - if (dsklength == 1 && dsklength2 == 1) { - disk_dmafinished (); - return 0; - } - // fast disk modes, just flush the fifo - if (currprefs.floppy_speed > 100 && fifo_inuse[0] && fifo_inuse[1] && fifo_inuse[2]) { - while (fifo_inuse[0]) { - uae_u16 w = DSKDATR (); - chipmem_wput_indirect (dskpt, w); - dskpt += 2; - } - } - if (disk_fifostatus () > 0) { - write_log (_T("doreaddma() fifo overflow detected, retrying..\n")); - return -1; - } else { - DSKDAT (word); - dsklength--; - } - } - return 1; - } - return 0; + if (dmaen (DMA_DISK) && bitoffset == 15 && dma_enable && dskdmaen == DSKDMA_READ && dsklength >= 0) + { + if (dsklength > 0) + { + // DSKLEN == 1: finish without DMA transfer. + if (dsklength == 1 && dsklength2 == 1) + { + disk_dmafinished (); + return 0; + } + // fast disk modes, just flush the fifo + if (currprefs.floppy_speed > 100 && fifo_inuse[0] && fifo_inuse[1] && fifo_inuse[2]) + { + while (fifo_inuse[0]) + { + uae_u16 w = DSKDATR (); + chipmem_wput_indirect (dskpt, w); + dskpt += 2; + } + } + if (disk_fifostatus () > 0) + { + write_log (_T("doreaddma() fifo overflow detected, retrying..\n")); + return -1; + } + else + { + DSKDAT (word); + dsklength--; + } + } + return 1; + } + return 0; } static void disk_doupdate_read_nothing (int floppybits) { - int j = 0, k = 1, l = 0; + int j = 0, k = 1, l = 0; - while (floppybits >= get_floppy_speed()) { - word <<= 1; - doreaddma (); - if ((bitoffset & 7) == 7) { - dskbytr_val = word & 0xff; - dskbytr_val |= 0x8000; - } - bitoffset++; - bitoffset &= 15; - floppybits -= get_floppy_speed(); - } + while (floppybits >= get_floppy_speed()) + { + word <<= 1; + doreaddma (); + if ((bitoffset & 7) == 7) + { + dskbytr_val = word & 0xff; + dskbytr_val |= 0x8000; + } + bitoffset++; + bitoffset &= 15; + floppybits -= get_floppy_speed(); + } } static void disk_doupdate_read (drive * drv, int floppybits) { - int j = 0, k = 1, l = 0; + int j = 0, k = 1, l = 0; - while (floppybits >= drv->trackspeed) { - int oldmfmpos = drv->mfmpos; - if (drv->tracktiming[0]) - updatetrackspeed (drv, drv->mfmpos); - word <<= 1; - if (!drive_empty (drv)) { - if (unformatted (drv)) - word |= (uaerand() & 0x1000) ? 1 : 0; - else - word |= getonebit (drv->bigmfmbuf, drv->mfmpos); + while (floppybits >= drv->trackspeed) + { + int oldmfmpos = drv->mfmpos; + if (drv->tracktiming[0]) + updatetrackspeed (drv, drv->mfmpos); + word <<= 1; + if (!drive_empty (drv)) + { + if (unformatted (drv)) + word |= (uaerand() & 0x1000) ? 1 : 0; + else + word |= getonebit (drv->bigmfmbuf, drv->mfmpos); + } + drv->mfmpos++; + drv->mfmpos %= drv->tracklen; + if (drv->mfmpos == drv->indexoffset) + { + drv->indexhack = 0; + } + if (drv->mfmpos == drv->skipoffset) + { + update_jitter (); + drv->mfmpos += disk_jitter; + drv->mfmpos %= drv->tracklen; + } + if (doreaddma () < 0) + { + drv->mfmpos = oldmfmpos; + return; + } + if ((bitoffset & 7) == 7) + { + dskbytr_val = word & 0xff; + dskbytr_val |= 0x8000; + } + if (word == dsksync) + { + dsksync_cycles = get_cycles () + WORDSYNC_TIME * CYCLE_UNIT; + if (dskdmaen != DSKDMA_OFF) + { + dma_enable = 1; + } + if (adkcon & 0x400) + { + bitoffset = 15; + } + } + bitoffset++; + bitoffset &= 15; + floppybits -= drv->trackspeed; } - drv->mfmpos++; - drv->mfmpos %= drv->tracklen; - if (drv->mfmpos == drv->indexoffset) { - drv->indexhack = 0; - } - if (drv->mfmpos == drv->skipoffset) { - update_jitter (); - drv->mfmpos += disk_jitter; - drv->mfmpos %= drv->tracklen; - } - if (doreaddma () < 0) { - drv->mfmpos = oldmfmpos; - return; - } - if ((bitoffset & 7) == 7) { - dskbytr_val = word & 0xff; - dskbytr_val |= 0x8000; - } - if (word == dsksync) { - dsksync_cycles = get_cycles () + WORDSYNC_TIME * CYCLE_UNIT; - if (dskdmaen != DSKDMA_OFF) { - dma_enable = 1; - } - if (adkcon & 0x400) { - bitoffset = 15; - } - } - bitoffset++; - bitoffset &= 15; - floppybits -= drv->trackspeed; - } } /* this is very unoptimized. DSKBYTR is used very rarely, so it should not matter. */ uae_u16 DSKBYTR (int hpos) { - uae_u16 v; + uae_u16 v; - DISK_update (hpos); - v = dskbytr_val; - dskbytr_val &= ~0x8000; - if (word == dsksync && cycles_in_range (dsksync_cycles)) - v |= 0x1000; - if (dskdmaen != DSKDMA_OFF && dmaen (DMA_DISK)) - v |= 0x4000; - if (dsklen & 0x4000) - v |= 0x2000; - return v; + DISK_update (hpos); + v = dskbytr_val; + dskbytr_val &= ~0x8000; + if (word == dsksync && cycles_in_range (dsksync_cycles)) + v |= 0x1000; + if (dskdmaen != DSKDMA_OFF && dmaen (DMA_DISK)) + v |= 0x4000; + if (dsklen & 0x4000) + v |= 0x2000; + return v; } static void DISK_start (void) { - int dr; + int dr; - for (int i = 0; i < 3; i++) - fifo_inuse[i] = false; - fifo_filled = 0; - for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) { - drive *drv = &floppy[dr]; - if (!(selected & (1 << dr))) { - int tr = drv->cyl * 2 + side; - trackid *ti = drv->trackdata + tr; + for (int i = 0; i < 3; i++) + fifo_inuse[i] = false; + fifo_filled = 0; + for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) + { + drive *drv = &floppy[dr]; + if (!(selected & (1 << dr))) + { + int tr = drv->cyl * 2 + side; + trackid *ti = drv->trackdata + tr; - if (dskdmaen == DSKDMA_WRITE) { - drv->tracklen = longwritemode ? FLOPPY_WRITE_MAXLEN : FLOPPY_WRITE_LEN * drv->ddhd * 8 * 2; - drv->trackspeed = get_floppy_speed(); - drv->skipoffset = -1; - updatemfmpos (drv); - } - /* Ugh. A nasty hack. Assume ADF_EXT1 tracks are always read - from the start. */ - if (ti->type == TRACK_RAW1) { - drv->mfmpos = 0; - bitoffset = 0; - } - } - drv->floppybitcounter = 0; - } - dma_enable = (adkcon & 0x400) ? 0 : 1; + if (dskdmaen == DSKDMA_WRITE) + { + drv->tracklen = longwritemode ? FLOPPY_WRITE_MAXLEN : FLOPPY_WRITE_LEN * drv->ddhd * 8 * 2; + drv->trackspeed = get_floppy_speed(); + drv->skipoffset = -1; + updatemfmpos (drv); + } + /* Ugh. A nasty hack. Assume ADF_EXT1 tracks are always read + from the start. */ + if (ti->type == TRACK_RAW1) + { + drv->mfmpos = 0; + bitoffset = 0; + } + } + drv->floppybitcounter = 0; + } + dma_enable = (adkcon & 0x400) ? 0 : 1; } static int linecounter; void DISK_hsync (void) { - int dr; + int dr; - for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) { - drive *drv = &floppy[dr]; - if (drv->steplimit) - drv->steplimit--; - } - if (indexdecay) - indexdecay--; - if (linecounter) { - linecounter--; - if (! linecounter) - disk_dmafinished (); - return; - } - DISK_update (maxhpos); + for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) + { + drive *drv = &floppy[dr]; + if (drv->steplimit) + drv->steplimit--; + } + if (indexdecay) + indexdecay--; + if (linecounter) + { + linecounter--; + if (! linecounter) + disk_dmafinished (); + return; + } + DISK_update (maxhpos); } void DISK_update (int tohpos) { - int dr; - int cycles; - int startcycle = disk_hpos; + int dr; + int cycles; + int startcycle = disk_hpos; - if (disk_hpos < 0) { - disk_hpos = - disk_hpos; - return; - } - - cycles = (tohpos << 8) - disk_hpos; - if (cycles <= 0) - return; - disk_hpos += cycles; - if (disk_hpos >= (maxhpos << 8)) - disk_hpos %= 1 << 8; - - for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) { - drive *drv = &floppy[dr]; - - if (drv->motoroff || !drv->tracklen || !drv->trackspeed) - continue; - drv->floppybitcounter += cycles; - if (selected & (1 << dr)) { - drv->mfmpos += drv->floppybitcounter / drv->trackspeed; - drv->mfmpos %= drv->tracklen; - drv->floppybitcounter %= drv->trackspeed; - continue; + if (disk_hpos < 0) + { + disk_hpos = - disk_hpos; + return; } - if (drv->diskfile) - drive_fill_bigbuf (drv, 0); - drv->mfmpos %= drv->tracklen; - } - int didaccess = 0; - for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) { - drive *drv = &floppy[dr]; - if (drv->motoroff || !drv->trackspeed) - continue; - if (selected & (1 << dr)) - continue; - /* write dma and wordsync enabled: read until wordsync match found */ - if (dskdmaen == DSKDMA_WRITE && dma_enable) - disk_doupdate_write (drv, drv->floppybitcounter); - else - disk_doupdate_read (drv, drv->floppybitcounter); - drv->floppybitcounter %= drv->trackspeed; - didaccess = 1; - } - /* no floppy selected but read dma */ - if (!didaccess && dskdmaen == DSKDMA_READ) { - disk_doupdate_read_nothing (cycles); - } - /* instantly finish dma if dsklen==0 and wordsync detected */ - if (dskdmaen != DSKDMA_OFF && dma_enable && dsklength2 == 0 && dsklength == 0) - disk_dmafinished (); + cycles = (tohpos << 8) - disk_hpos; + if (cycles <= 0) + return; + disk_hpos += cycles; + if (disk_hpos >= (maxhpos << 8)) + disk_hpos %= 1 << 8; - disk_doupdate_predict (disk_hpos); + for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) + { + drive *drv = &floppy[dr]; + + if (drv->motoroff || !drv->tracklen || !drv->trackspeed) + continue; + drv->floppybitcounter += cycles; + if (selected & (1 << dr)) + { + drv->mfmpos += drv->floppybitcounter / drv->trackspeed; + drv->mfmpos %= drv->tracklen; + drv->floppybitcounter %= drv->trackspeed; + continue; + } + if (drv->diskfile) + drive_fill_bigbuf (drv, 0); + drv->mfmpos %= drv->tracklen; + } + int didaccess = 0; + for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) + { + drive *drv = &floppy[dr]; + if (drv->motoroff || !drv->trackspeed) + continue; + if (selected & (1 << dr)) + continue; + /* write dma and wordsync enabled: read until wordsync match found */ + if (dskdmaen == DSKDMA_WRITE && dma_enable) + disk_doupdate_write (drv, drv->floppybitcounter); + else + disk_doupdate_read (drv, drv->floppybitcounter); + drv->floppybitcounter %= drv->trackspeed; + didaccess = 1; + } + /* no floppy selected but read dma */ + if (!didaccess && dskdmaen == DSKDMA_READ) + { + disk_doupdate_read_nothing (cycles); + } + + /* instantly finish dma if dsklen==0 and wordsync detected */ + if (dskdmaen != DSKDMA_OFF && dma_enable && dsklength2 == 0 && dsklength == 0) + disk_dmafinished (); + + disk_doupdate_predict (disk_hpos); } void DSKLEN (uae_u16 v, int hpos) { - int dr, prev = dsklen; - int noselected = 0; - int motormask; + int dr, prev = dsklen; + int noselected = 0; + int motormask; - DISK_update (hpos); - if ((v & 0x8000) && (dsklen & 0x8000)) { - dskdmaen = DSKDMA_READ; - DISK_start (); - } - if (!(v & 0x8000)) { - if (dskdmaen != DSKDMA_OFF) { - /* Megalomania and Knightmare does this */ - if (dskdmaen == DSKDMA_WRITE) { - write_log (_T("warning: Disk write DMA aborted, %d words left PC=%x\n"), dsklength, M68K_GETPC); - // did program write something that needs to be stored to file? - for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) { - drive *drv2 = &floppy[dr]; - if (!drv2->writtento) - continue; - drive_write_data (drv2); - } - } - dskdmaen = DSKDMA_OFF; + DISK_update (hpos); + if ((v & 0x8000) && (dsklen & 0x8000)) + { + dskdmaen = DSKDMA_READ; + DISK_start (); } - } - dsklen = v; - dsklength2 = dsklength = dsklen & 0x3fff; - - if (dskdmaen == DSKDMA_OFF) - return; - - if (dsklength == 0 && dma_enable) { - disk_dmafinished (); - return; - } - - if ((v & 0x4000) && (prev & 0x4000)) { - if (dsklength == 0) - return; - if (dsklength == 1) { - disk_dmafinished(); - return; + if (!(v & 0x8000)) + { + if (dskdmaen != DSKDMA_OFF) + { + /* Megalomania and Knightmare does this */ + if (dskdmaen == DSKDMA_WRITE) + { + write_log (_T("warning: Disk write DMA aborted, %d words left PC=%x\n"), dsklength, M68K_GETPC); + // did program write something that needs to be stored to file? + for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) + { + drive *drv2 = &floppy[dr]; + if (!drv2->writtento) + continue; + drive_write_data (drv2); + } + } + dskdmaen = DSKDMA_OFF; + } } - dskdmaen = DSKDMA_WRITE; - DISK_start (); - } + dsklen = v; + dsklength2 = dsklength = dsklen & 0x3fff; - motormask = 0; - for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) { - drive *drv = &floppy[dr]; - drv->writtento = 0; - if (drv->motoroff) - continue; - motormask |= 1 << dr; - if ((selected & (1 << dr)) == 0) - break; - } - if (dr == 4) { - write_log (_T("disk %s DMA started, drvmask=%x motormask=%x PC=%08x\n"), - dskdmaen == DSKDMA_WRITE ? _T("write") : _T("read"), selected ^ 15, motormask, M68K_GETPC); - noselected = 1; - } + if (dskdmaen == DSKDMA_OFF) + return; - for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) - update_drive_gui (dr); + if (dsklength == 0 && dma_enable) + { + disk_dmafinished (); + return; + } - /* Try to make floppy access from Kickstart faster. */ - if (dskdmaen != DSKDMA_READ && dskdmaen != DSKDMA_WRITE) - return; + if ((v & 0x4000) && (prev & 0x4000)) + { + if (dsklength == 0) + return; + if (dsklength == 1) + { + disk_dmafinished(); + return; + } + dskdmaen = DSKDMA_WRITE; + DISK_start (); + } - for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) { - drive *drv = &floppy[dr]; - if (selected & (1 << dr)) - continue; - if (drv->filetype != ADF_NORMAL) - break; - } - if (dr < MAX_FLOPPY_DRIVES) /* no turbo mode if any selected drive has non-standard ADF */ - return; - { - int done = 0; - for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) { - drive *drv = &floppy[dr]; - int pos, i; + motormask = 0; + for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) + { + drive *drv = &floppy[dr]; + drv->writtento = 0; + if (drv->motoroff) + continue; + motormask |= 1 << dr; + if ((selected & (1 << dr)) == 0) + break; + } + if (dr == 4) + { + write_log (_T("disk %s DMA started, drvmask=%x motormask=%x PC=%08x\n"), + dskdmaen == DSKDMA_WRITE ? _T("write") : _T("read"), selected ^ 15, motormask, M68K_GETPC); + noselected = 1; + } - if (drv->motoroff) - continue; - if (!drv->useturbo && currprefs.floppy_speed > 0) - continue; - if (selected & (1 << dr)) - continue; + for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) + update_drive_gui (dr); - pos = drv->mfmpos & ~15; - drive_fill_bigbuf (drv, 0); + /* Try to make floppy access from Kickstart faster. */ + if (dskdmaen != DSKDMA_READ && dskdmaen != DSKDMA_WRITE) + return; - if (dskdmaen == DSKDMA_READ) { /* TURBO read */ - if (adkcon & 0x400) { - for (i = 0; i < drv->tracklen; i += 16) { - pos += 16; - pos %= drv->tracklen; - if (drv->bigmfmbuf[pos >> 4] == dsksync) { - /* must skip first disk sync marker */ - pos += 16; - pos %= drv->tracklen; - break; - } - } - if (i >= drv->tracklen) - return; - } - while (dsklength-- > 0) { - chipmem_wput_indirect (dskpt, drv->bigmfmbuf[pos >> 4]); - dskpt += 2; - pos += 16; - pos %= drv->tracklen; - } - drv->mfmpos = pos; - INTREQ (0x8000 | 0x1000); - done = 1; + for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) + { + drive *drv = &floppy[dr]; + if (selected & (1 << dr)) + continue; + if (drv->filetype != ADF_NORMAL) + break; + } + if (dr < MAX_FLOPPY_DRIVES) /* no turbo mode if any selected drive has non-standard ADF */ + return; + { + int done = 0; + for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) + { + drive *drv = &floppy[dr]; + int pos, i; - } else if (dskdmaen == DSKDMA_WRITE) { /* TURBO write */ + if (drv->motoroff) + continue; + if (!drv->useturbo && currprefs.floppy_speed > 0) + continue; + if (selected & (1 << dr)) + continue; - for (i = 0; i < dsklength; i++) { - uae_u16 w = chipmem_wget_indirect (dskpt + i * 2); - drv->bigmfmbuf[pos >> 4] = w; - pos += 16; - pos %= drv->tracklen; - } - drv->mfmpos = pos; - drive_write_data (drv); - done = 1; - } - } - if (!done && noselected) { - while (dsklength-- > 0) { - if (dskdmaen == DSKDMA_WRITE) { - uae_u16 w = chipmem_wget_indirect (dskpt); - } else { - chipmem_wput_indirect (dskpt, 0); - } - dskpt += 2; - } - INTREQ (0x8000 | 0x1000); - done = 1; - } + pos = drv->mfmpos & ~15; + drive_fill_bigbuf (drv, 0); - if (done) { - linecounter = 2; - dskdmaen = DSKDMA_OFF; - return; - } - } + if (dskdmaen == DSKDMA_READ) /* TURBO read */ + { + if (adkcon & 0x400) + { + for (i = 0; i < drv->tracklen; i += 16) + { + pos += 16; + pos %= drv->tracklen; + if (drv->bigmfmbuf[pos >> 4] == dsksync) + { + /* must skip first disk sync marker */ + pos += 16; + pos %= drv->tracklen; + break; + } + } + if (i >= drv->tracklen) + return; + } + while (dsklength-- > 0) + { + chipmem_wput_indirect (dskpt, drv->bigmfmbuf[pos >> 4]); + dskpt += 2; + pos += 16; + pos %= drv->tracklen; + } + drv->mfmpos = pos; + INTREQ (0x8000 | 0x1000); + done = 1; + + } + else if (dskdmaen == DSKDMA_WRITE) /* TURBO write */ + { + + for (i = 0; i < dsklength; i++) + { + uae_u16 w = chipmem_wget_indirect (dskpt + i * 2); + drv->bigmfmbuf[pos >> 4] = w; + pos += 16; + pos %= drv->tracklen; + } + drv->mfmpos = pos; + drive_write_data (drv); + done = 1; + } + } + if (!done && noselected) + { + while (dsklength-- > 0) + { + if (dskdmaen == DSKDMA_WRITE) + { + uae_u16 w = chipmem_wget_indirect (dskpt); + } + else + { + chipmem_wput_indirect (dskpt, 0); + } + dskpt += 2; + } + INTREQ (0x8000 | 0x1000); + done = 1; + } + + if (done) + { + linecounter = 2; + dskdmaen = DSKDMA_OFF; + return; + } + } } void DISK_update_adkcon (int hpos, uae_u16 v) { - uae_u16 vold = adkcon; - uae_u16 vnew = adkcon; - if (v & 0x8000) - vnew |= v & 0x7FFF; - else - vnew &= ~v; - if ((vnew & 0x400) && !(vold & 0x400)) - bitoffset = 0; + uae_u16 vold = adkcon; + uae_u16 vnew = adkcon; + if (v & 0x8000) + vnew |= v & 0x7FFF; + else + vnew &= ~v; + if ((vnew & 0x400) && !(vold & 0x400)) + bitoffset = 0; } void DSKSYNC (int hpos, uae_u16 v) { - if (v == dsksync) - return; - DISK_update (hpos); - dsksync = v; + if (v == dsksync) + return; + DISK_update (hpos); + dsksync = v; } STATIC_INLINE bool iswrite (void) { - return dskdmaen == 3; + return dskdmaen == 3; } void DSKDAT (uae_u16 v) { - if (fifo_inuse[2]) { - write_log (_T("DSKDAT: FIFO overflow!\n")); - return; - } - fifo_inuse[2] = fifo_inuse[1]; - fifo[2] = fifo[1]; - fifo_inuse[1] = fifo_inuse[0]; - fifo[1] = fifo[0]; - fifo_inuse[0] = iswrite () ? 2 : 1; - fifo[0] = v; - fifo_filled = 1; + if (fifo_inuse[2]) + { + write_log (_T("DSKDAT: FIFO overflow!\n")); + return; + } + fifo_inuse[2] = fifo_inuse[1]; + fifo[2] = fifo[1]; + fifo_inuse[1] = fifo_inuse[0]; + fifo[1] = fifo[0]; + fifo_inuse[0] = iswrite () ? 2 : 1; + fifo[0] = v; + fifo_filled = 1; } uae_u16 DSKDATR (void) { - int i; - uae_u16 v = 0; - for (i = 2; i >= 0; i--) { - if (fifo_inuse[i]) { - fifo_inuse[i] = 0; - v = fifo[i]; - break; - } - } - if (i < 0) { - write_log (_T("DSKDATR: FIFO underflow!\n")); - } else if (dskdmaen > 0 && dskdmaen < 3 && dsklength <= 0 && disk_fifostatus () < 0) { - disk_dmafinished (); - } - return v; + int i; + uae_u16 v = 0; + for (i = 2; i >= 0; i--) + { + if (fifo_inuse[i]) + { + fifo_inuse[i] = 0; + v = fifo[i]; + break; + } + } + if (i < 0) + { + write_log (_T("DSKDATR: FIFO underflow!\n")); + } + else if (dskdmaen > 0 && dskdmaen < 3 && dsklength <= 0 && disk_fifostatus () < 0) + { + disk_dmafinished (); + } + return v; } uae_u16 disk_dmal (void) { - uae_u16 dmal = 0; - if (dskdmaen) { - if (dskdmaen == 3) { - dmal = (1 + 2) * (fifo_inuse[0] ? 1 : 0) + (4 + 8) * (fifo_inuse[1] ? 1 : 0) + (16 + 32) * (fifo_inuse[2] ? 1 : 0); - dmal ^= 63; - if (dsklength == 2) - dmal &= ~(16 + 32); - if (dsklength == 1) - dmal &= ~(16 + 32 + 4 + 8); - } else { - dmal = 16 * (fifo_inuse[0] ? 1 : 0) + 4 * (fifo_inuse[1] ? 1 : 0) + 1 * (fifo_inuse[2] ? 1 : 0); - } - } - return dmal; + uae_u16 dmal = 0; + if (dskdmaen) + { + if (dskdmaen == 3) + { + dmal = (1 + 2) * (fifo_inuse[0] ? 1 : 0) + (4 + 8) * (fifo_inuse[1] ? 1 : 0) + (16 + 32) * (fifo_inuse[2] ? 1 : 0); + dmal ^= 63; + if (dsklength == 2) + dmal &= ~(16 + 32); + if (dsklength == 1) + dmal &= ~(16 + 32 + 4 + 8); + } + else + { + dmal = 16 * (fifo_inuse[0] ? 1 : 0) + 4 * (fifo_inuse[1] ? 1 : 0) + 1 * (fifo_inuse[2] ? 1 : 0); + } + } + return dmal; } uaecptr disk_getpt (void) { - uaecptr pt = dskpt; - dskpt += 2; - return pt; + uaecptr pt = dskpt; + dskpt += 2; + return pt; } void DSKPTH (uae_u16 v) { - dskpt = (dskpt & 0xffff) | ((uae_u32) v << 16); + dskpt = (dskpt & 0xffff) | ((uae_u32) v << 16); } void DSKPTL (uae_u16 v) { - dskpt = (dskpt & ~0xffff) | (v); + dskpt = (dskpt & ~0xffff) | (v); } void DISK_free (void) { - int dr; - for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) { - drive *drv = &floppy[dr]; - drive_image_free (drv); - } + int dr; + for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) + { + drive *drv = &floppy[dr]; + drive_image_free (drv); + } } void DISK_init (void) { - int dr; + int dr; - longwritemode = side = direction = 0; - dsklength = dsklength2 = dsklen = 0; - dskbytr_val = 0; - dskpt = 0; - dma_enable =0; - bitoffset = word = 0; - dsksync = disk_jitter = linecounter = 0; - selected = 15; + longwritemode = side = direction = 0; + dsklength = dsklength2 = dsklen = 0; + dskbytr_val = 0; + dskpt = 0; + dma_enable =0; + bitoffset = word = 0; + dsksync = disk_jitter = linecounter = 0; + selected = 15; - for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) { - drive *drv = &floppy[dr]; - /* reset all drive types to 3.5 DD */ - drive_settype_id (drv); - if (!drive_insert (drv, &currprefs, dr, currprefs.floppyslots[dr].df, false)) - disk_eject (dr); - } - if (disk_empty (0)) - write_log (_T("No disk in drive 0.\n")); + for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) + { + drive *drv = &floppy[dr]; + /* reset all drive types to 3.5 DD */ + drive_settype_id (drv); + if (!drive_insert (drv, &currprefs, dr, currprefs.floppyslots[dr].df, false)) + disk_eject (dr); + } + if (disk_empty (0)) + write_log (_T("No disk in drive 0.\n")); } void DISK_reset (void) { - int i; + int i; - if (savestate_state) - return; + if (savestate_state) + return; - disk_hpos = 0; - dskdmaen = 0; - disabled = 0; - for (i = 0; i < MAX_FLOPPY_DRIVES; i++) - reset_drive (i); + disk_hpos = 0; + dskdmaen = 0; + disabled = 0; + for (i = 0; i < MAX_FLOPPY_DRIVES; i++) + reset_drive (i); } int DISK_examine_image (struct uae_prefs *p, int num, uae_u32 *crc32) { - int drvsec; - int ret, i; - drive *drv = &floppy[num]; - uae_u32 dos, crc, crc2; - int wasdelayed = drv->dskchange_time; - int sectable[MAX_SECTORS]; - int oldcyl, oldside; + int drvsec; + int ret, i; + drive *drv = &floppy[num]; + uae_u32 dos, crc, crc2; + int wasdelayed = drv->dskchange_time; + int sectable[MAX_SECTORS]; + int oldcyl, oldside; - ret = 0; - *crc32 = 0; - oldcyl = drv->cyl; - oldside = side; - drv->cyl = 0; - side = 0; - if (!drive_insert (drv, p, num, p->floppyslots[num].df, true) || !drv->diskfile) { - drv->cyl = oldcyl; - side = oldside; - return 1; - } - *crc32 = zfile_crc32 (drv->diskfile); - decode_buffer (drv->bigmfmbuf, drv->cyl, 11, drv->ddhd, drv->filetype, &drvsec, sectable, 1); - drv->cyl = oldcyl; - side = oldside; - if (sectable[0] == 0 || sectable[1] == 0) { - ret = 2; - goto end; - } - crc = crc2 = 0; - for (i = 0; i < 1024; i += 4) { - uae_u32 v = (writebuffer[i] << 24) | (writebuffer[i + 1] << 16) | (writebuffer[i + 2] << 8) | writebuffer[i + 3]; - if (i == 0) - dos = v; - if (i == 4) { - crc2 = v; - v = 0; - } - if (crc + v < crc) - crc++; - crc += v; - } - if (dos == 0x4b49434b) { /* KICK */ - ret = 10; - goto end; - } - crc ^= 0xffffffff; - if (crc != crc2) { - ret = 3; - goto end; - } - if (dos == 0x444f5300) - ret = 10; - else if (dos == 0x444f5301 || dos == 0x444f5302 || dos == 0x444f5303) - ret = 11; - else if (dos == 0x444f5304 || dos == 0x444f5305 || dos == 0x444f5306 || dos == 0x444f5307) - ret = 12; - else - ret = 4; + ret = 0; + *crc32 = 0; + oldcyl = drv->cyl; + oldside = side; + drv->cyl = 0; + side = 0; + if (!drive_insert (drv, p, num, p->floppyslots[num].df, true) || !drv->diskfile) + { + drv->cyl = oldcyl; + side = oldside; + return 1; + } + *crc32 = zfile_crc32 (drv->diskfile); + decode_buffer (drv->bigmfmbuf, drv->cyl, 11, drv->ddhd, drv->filetype, &drvsec, sectable, 1); + drv->cyl = oldcyl; + side = oldside; + if (sectable[0] == 0 || sectable[1] == 0) + { + ret = 2; + goto end; + } + crc = crc2 = 0; + for (i = 0; i < 1024; i += 4) + { + uae_u32 v = (writebuffer[i] << 24) | (writebuffer[i + 1] << 16) | (writebuffer[i + 2] << 8) | writebuffer[i + 3]; + if (i == 0) + dos = v; + if (i == 4) + { + crc2 = v; + v = 0; + } + if (crc + v < crc) + crc++; + crc += v; + } + if (dos == 0x4b49434b) /* KICK */ + { + ret = 10; + goto end; + } + crc ^= 0xffffffff; + if (crc != crc2) + { + ret = 3; + goto end; + } + if (dos == 0x444f5300) + ret = 10; + else if (dos == 0x444f5301 || dos == 0x444f5302 || dos == 0x444f5303) + ret = 11; + else if (dos == 0x444f5304 || dos == 0x444f5305 || dos == 0x444f5306 || dos == 0x444f5307) + ret = 12; + else + ret = 4; end: - drive_image_free (drv); - if (wasdelayed > 1) { - drive_eject (drv); - currprefs.floppyslots[num].df[0] = 0; - drv->dskchange_time = wasdelayed; - disk_insert (num, drv->newname); - } - return ret; + drive_image_free (drv); + if (wasdelayed > 1) + { + drive_eject (drv); + currprefs.floppyslots[num].df[0] = 0; + drv->dskchange_time = wasdelayed; + disk_insert (num, drv->newname); + } + return ret; } /* Disk save/restore code */ @@ -3216,261 +3572,279 @@ end: void DISK_save_custom (uae_u32 *pdskpt, uae_u16 *pdsklength, uae_u16 *pdsksync, uae_u16 *pdskbytr) { - if (pdskpt) - *pdskpt = dskpt; - if (pdsklength) - *pdsklength = dsklen; - if (pdsksync) - *pdsksync = dsksync; - if(pdskbytr) - *pdskbytr = dskbytr_val; + if (pdskpt) + *pdskpt = dskpt; + if (pdsklength) + *pdsklength = dsklen; + if (pdsksync) + *pdsksync = dsksync; + if(pdskbytr) + *pdskbytr = dskbytr_val; } #endif /* SAVESTATE || DEBUGGER */ static uae_u32 getadfcrc (drive *drv) { - uae_u8 *b; - uae_u32 crc32; - int size; + uae_u8 *b; + uae_u32 crc32; + int size; - if (!drv->diskfile) - return 0; - zfile_fseek (drv->diskfile, 0, SEEK_END); - size = zfile_ftell (drv->diskfile); - b = xmalloc (uae_u8, size); - if (!b) - return 0; - zfile_fseek (drv->diskfile, 0, SEEK_SET); - zfile_fread (b, 1, size, drv->diskfile); - crc32 = get_crc32 (b, size); - free (b); - return crc32; + if (!drv->diskfile) + return 0; + zfile_fseek (drv->diskfile, 0, SEEK_END); + size = zfile_ftell (drv->diskfile); + b = xmalloc (uae_u8, size); + if (!b) + return 0; + zfile_fseek (drv->diskfile, 0, SEEK_SET); + zfile_fread (b, 1, size, drv->diskfile); + crc32 = get_crc32 (b, size); + free (b); + return crc32; } #ifdef SAVESTATE void DISK_restore_custom (uae_u32 pdskpt, uae_u16 pdsklength, uae_u16 pdskbytr) { - dskpt = pdskpt; - dsklen = pdsklength; - dskbytr_val = pdskbytr; + dskpt = pdskpt; + dsklen = pdsklength; + dskbytr_val = pdskbytr; } void restore_disk_finish (void) { - int cnt = 0; - for (int i = 0; i < MAX_FLOPPY_DRIVES; i++) { - if (currprefs.floppyslots[i].dfxtype >= 0) - cnt++; - } - currprefs.nr_floppies = changed_prefs.nr_floppies = cnt; - DISK_check_change (); + int cnt = 0; + for (int i = 0; i < MAX_FLOPPY_DRIVES; i++) + { + if (currprefs.floppyslots[i].dfxtype >= 0) + cnt++; + } + currprefs.nr_floppies = changed_prefs.nr_floppies = cnt; + DISK_check_change (); } uae_u8 *restore_disk(int num,uae_u8 *src) { - drive *drv; - int state; - TCHAR old[MAX_DPATH]; - TCHAR *s; - int newis; - drive_type dfxtype; + drive *drv; + int state; + TCHAR old[MAX_DPATH]; + TCHAR *s; + int newis; + drive_type dfxtype; - drv = &floppy[num]; - disabled &= ~(1 << num); - drv->drive_id = restore_u32 (); - drv->motoroff = 1; - drv->idbit = 0; - state = restore_u8 (); - if (state & 2) { - disabled |= 1 << num; - if (changed_prefs.nr_floppies > num) - changed_prefs.nr_floppies = num; - changed_prefs.floppyslots[num].dfxtype = -1; - } else { - drv->motoroff = (state & 1) ? 0 : 1; - drv->idbit = (state & 4) ? 1 : 0; - switch (drv->drive_id) - { - case DRIVE_ID_35HD: - dfxtype = DRV_35_HD; - break; - case DRIVE_ID_525SD: - dfxtype = DRV_525_SD; - break; - default: - dfxtype = DRV_35_DD; - break; - } - currprefs.floppyslots[num].dfxtype = changed_prefs.floppyslots[num].dfxtype = dfxtype; - } - drv->dskchange = (state & 8) != 0; - side = (state & 16) ? 1 : 0; - drv->indexhackmode = 0; - if (num == 0 && currprefs.floppyslots[num].dfxtype == 0) - drv->indexhackmode = 1; - drv->buffered_cyl = -1; - drv->buffered_side = -1; - drv->cyl = restore_u8 (); - drv->dskready = restore_u8 () != 0; - drv->drive_id_scnt = restore_u8 (); - int mfmpos = restore_u32 (); - drv->dskchange_time = 0; - restore_u32 (); - s = restore_path (SAVESTATE_PATH_FLOPPY); - _tcscpy (old, currprefs.floppyslots[num].df); - _tcsncpy(changed_prefs.floppyslots[num].df, s,255); - xfree (s); - int dskready_up_time = restore_u16 (); - int dskready_down_time = restore_u16 (); - newis = changed_prefs.floppyslots[num].df[0] ? 1 : 0; - if (!(disabled & (1 << num))) { - if (!newis && old[0]) { - *currprefs.floppyslots[num].df = *changed_prefs.floppyslots[num].df = 0; - drv->dskchange = false; - } else if (newis) { - drive_insert (floppy + num, &currprefs, num, changed_prefs.floppyslots[num].df, false); - if (drive_empty (floppy + num)) { - if (newis && old[0]) { - _tcscpy (changed_prefs.floppyslots[num].df, old); - drive_insert (floppy + num, &currprefs, num, changed_prefs.floppyslots[num].df, false); - if (drive_empty (floppy + num)) - drv->dskchange = true; - } else { - drv->dskchange_time = -1; + drv = &floppy[num]; + disabled &= ~(1 << num); + drv->drive_id = restore_u32 (); + drv->motoroff = 1; + drv->idbit = 0; + state = restore_u8 (); + if (state & 2) + { + disabled |= 1 << num; + if (changed_prefs.nr_floppies > num) + changed_prefs.nr_floppies = num; + changed_prefs.floppyslots[num].dfxtype = -1; + } + else + { + drv->motoroff = (state & 1) ? 0 : 1; + drv->idbit = (state & 4) ? 1 : 0; + switch (drv->drive_id) + { + case DRIVE_ID_35HD: + dfxtype = DRV_35_HD; + break; + case DRIVE_ID_525SD: + dfxtype = DRV_525_SD; + break; + default: + dfxtype = DRV_35_DD; + break; } - } - } - } - drv->mfmpos = mfmpos; - drv->prevtracklen = drv->tracklen; - drv->dskready_up_time = dskready_up_time; - drv->dskready_down_time = dskready_down_time; - reset_drive_gui(num); - return src; + currprefs.floppyslots[num].dfxtype = changed_prefs.floppyslots[num].dfxtype = dfxtype; + } + drv->dskchange = (state & 8) != 0; + side = (state & 16) ? 1 : 0; + drv->indexhackmode = 0; + if (num == 0 && currprefs.floppyslots[num].dfxtype == 0) + drv->indexhackmode = 1; + drv->buffered_cyl = -1; + drv->buffered_side = -1; + drv->cyl = restore_u8 (); + drv->dskready = restore_u8 () != 0; + drv->drive_id_scnt = restore_u8 (); + int mfmpos = restore_u32 (); + drv->dskchange_time = 0; + restore_u32 (); + s = restore_path (SAVESTATE_PATH_FLOPPY); + _tcscpy (old, currprefs.floppyslots[num].df); + _tcsncpy(changed_prefs.floppyslots[num].df, s,255); + xfree (s); + int dskready_up_time = restore_u16 (); + int dskready_down_time = restore_u16 (); + newis = changed_prefs.floppyslots[num].df[0] ? 1 : 0; + if (!(disabled & (1 << num))) + { + if (!newis && old[0]) + { + *currprefs.floppyslots[num].df = *changed_prefs.floppyslots[num].df = 0; + drv->dskchange = false; + } + else if (newis) + { + drive_insert (floppy + num, &currprefs, num, changed_prefs.floppyslots[num].df, false); + if (drive_empty (floppy + num)) + { + if (newis && old[0]) + { + _tcscpy (changed_prefs.floppyslots[num].df, old); + drive_insert (floppy + num, &currprefs, num, changed_prefs.floppyslots[num].df, false); + if (drive_empty (floppy + num)) + drv->dskchange = true; + } + else + { + drv->dskchange_time = -1; + } + } + } + } + drv->mfmpos = mfmpos; + drv->prevtracklen = drv->tracklen; + drv->dskready_up_time = dskready_up_time; + drv->dskready_down_time = dskready_down_time; + reset_drive_gui(num); + return src; } uae_u8 *restore_disk2 (int num,uae_u8 *src) { - drive *drv = &floppy[num]; - uae_u32 m = restore_u32 (); - if (m) { - drv->floppybitcounter = restore_u16 (); - drv->tracklen = restore_u32 (); - drv->trackspeed = restore_u16 (); - drv->skipoffset = restore_u32 (); - drv->indexoffset = restore_u32 (); - drv->buffered_cyl = drv->cyl; - drv->buffered_side = side; - for (int j = 0; j < (drv->tracklen + 15) / 16; j++) { - drv->bigmfmbuf[j] = restore_u16 (); - if (m & 2) - drv->tracktiming[j] = restore_u16 (); - } - } - return src; + drive *drv = &floppy[num]; + uae_u32 m = restore_u32 (); + if (m) + { + drv->floppybitcounter = restore_u16 (); + drv->tracklen = restore_u32 (); + drv->trackspeed = restore_u16 (); + drv->skipoffset = restore_u32 (); + drv->indexoffset = restore_u32 (); + drv->buffered_cyl = drv->cyl; + drv->buffered_side = side; + for (int j = 0; j < (drv->tracklen + 15) / 16; j++) + { + drv->bigmfmbuf[j] = restore_u16 (); + if (m & 2) + drv->tracktiming[j] = restore_u16 (); + } + } + return src; } uae_u8 *save_disk (int num, int *len, uae_u8 *dstptr, bool usepath) { - uae_u8 *dstbak,*dst; - drive *drv = &floppy[num]; + uae_u8 *dstbak,*dst; + drive *drv = &floppy[num]; - if (dstptr) - dstbak = dst = dstptr; - else - dstbak = dst = xmalloc (uae_u8, 2 + 1 + 1 + 1 + 1 + 4 + 4 + 256); - save_u32 (drv->drive_id); /* drive type ID */ - save_u8 ((drv->motoroff ? 0 : 1) | ((disabled & (1 << num)) ? 2 : 0) | (drv->idbit ? 4 : 0) | (drv->dskchange ? 8 : 0) | (side ? 16 : 0)); - save_u8 (drv->cyl); /* cylinder */ - save_u8 (drv->dskready); /* dskready */ - save_u8 (drv->drive_id_scnt); /* id mode position */ - save_u32 (drv->mfmpos); /* disk position */ - save_u32 (getadfcrc (drv)); /* CRC of disk image */ - save_path (usepath ? currprefs.floppyslots[num].df : _T(""), SAVESTATE_PATH_FLOPPY);/* image name */ - save_u16 (drv->dskready_up_time); - save_u16 (drv->dskready_down_time); - *len = dst - dstbak; - return dstbak; + if (dstptr) + dstbak = dst = dstptr; + else + dstbak = dst = xmalloc (uae_u8, 2 + 1 + 1 + 1 + 1 + 4 + 4 + 256); + save_u32 (drv->drive_id); /* drive type ID */ + save_u8 ((drv->motoroff ? 0 : 1) | ((disabled & (1 << num)) ? 2 : 0) | (drv->idbit ? 4 : 0) | (drv->dskchange ? 8 : 0) | (side ? 16 : 0)); + save_u8 (drv->cyl); /* cylinder */ + save_u8 (drv->dskready); /* dskready */ + save_u8 (drv->drive_id_scnt); /* id mode position */ + save_u32 (drv->mfmpos); /* disk position */ + save_u32 (getadfcrc (drv)); /* CRC of disk image */ + save_path (usepath ? currprefs.floppyslots[num].df : _T(""), SAVESTATE_PATH_FLOPPY);/* image name */ + save_u16 (drv->dskready_up_time); + save_u16 (drv->dskready_down_time); + *len = dst - dstbak; + return dstbak; } uae_u8 *save_disk2 (int num, int *len, uae_u8 *dstptr) { - uae_u8 *dstbak,*dst; - drive *drv = &floppy[num]; + uae_u8 *dstbak,*dst; + drive *drv = &floppy[num]; - int m = 0; - int size = 0; - if (drv->motoroff == 0 && drv->buffered_side >= 0 && drv->tracklen > 0) { - m = 1; - if (drv->tracktiming[0]) - m |= 2; - size += ((drv->tracklen + 15) * 2) / 8; - } - if (!m) - return NULL; + int m = 0; + int size = 0; + if (drv->motoroff == 0 && drv->buffered_side >= 0 && drv->tracklen > 0) + { + m = 1; + if (drv->tracktiming[0]) + m |= 2; + size += ((drv->tracklen + 15) * 2) / 8; + } + if (!m) + return NULL; - if (dstptr) - dstbak = dst = dstptr; - else - dstbak = dst = xmalloc (uae_u8, 4 + 2 + 4 + 2 + 4 + 4 + size); + if (dstptr) + dstbak = dst = dstptr; + else + dstbak = dst = xmalloc (uae_u8, 4 + 2 + 4 + 2 + 4 + 4 + size); - save_u32 (m); - save_u16 (drv->floppybitcounter); - save_u32 (drv->tracklen); - save_u16 (drv->trackspeed); - save_u32 (drv->skipoffset); - save_u32 (drv->indexoffset); - for (int j = 0; j < (drv->tracklen + 15) / 16; j++) { - save_u16 (drv->bigmfmbuf[j]); - if (drv->tracktiming[0]) - save_u16 (drv->tracktiming[j]); - } - *len = dst - dstbak; - return dstbak; + save_u32 (m); + save_u16 (drv->floppybitcounter); + save_u32 (drv->tracklen); + save_u16 (drv->trackspeed); + save_u32 (drv->skipoffset); + save_u32 (drv->indexoffset); + for (int j = 0; j < (drv->tracklen + 15) / 16; j++) + { + save_u16 (drv->bigmfmbuf[j]); + if (drv->tracktiming[0]) + save_u16 (drv->tracktiming[j]); + } + *len = dst - dstbak; + return dstbak; } /* internal floppy controller variables */ uae_u8 *restore_floppy(uae_u8 *src) { - word = restore_u16(); - bitoffset = restore_u8(); - dma_enable = restore_u8(); - disk_hpos = restore_u8 () & 0xff; - dskdmaen = restore_u8(); - for (int i = 0; i < 3; i++) { - fifo[i] = restore_u16 (); - fifo_inuse[i] = restore_u8 (); - if (dskdmaen == 0) - fifo_inuse[i] = false; - } - fifo_filled = fifo_inuse[0] || fifo_inuse[1] || fifo_inuse[2]; - dsklength = restore_u16 (); - return src; + word = restore_u16(); + bitoffset = restore_u8(); + dma_enable = restore_u8(); + disk_hpos = restore_u8 () & 0xff; + dskdmaen = restore_u8(); + for (int i = 0; i < 3; i++) + { + fifo[i] = restore_u16 (); + fifo_inuse[i] = restore_u8 (); + if (dskdmaen == 0) + fifo_inuse[i] = false; + } + fifo_filled = fifo_inuse[0] || fifo_inuse[1] || fifo_inuse[2]; + dsklength = restore_u16 (); + return src; } uae_u8 *save_floppy(int *len, uae_u8 *dstptr) { - uae_u8 *dstbak, *dst; + uae_u8 *dstbak, *dst; - if (dstptr) - dstbak = dst = dstptr; - else - dstbak = dst = xmalloc (uae_u8, 100); - save_u16 (word); /* shift register */ - save_u8 (bitoffset); /* dma bit offset */ - save_u8 (dma_enable); /* disk sync found */ - save_u8 (disk_hpos & 0xff); /* next bit read position */ - save_u8 (dskdmaen); /* dma status */ - for (int i = 0; i < 3; i++) { - save_u16 (fifo[i]); - save_u8 (fifo_inuse[i]); - } - save_u16 (dsklength); - *len = dst - dstbak; - return dstbak; + if (dstptr) + dstbak = dst = dstptr; + else + dstbak = dst = xmalloc (uae_u8, 100); + save_u16 (word); /* shift register */ + save_u8 (bitoffset); /* dma bit offset */ + save_u8 (dma_enable); /* disk sync found */ + save_u8 (disk_hpos & 0xff); /* next bit read position */ + save_u8 (dskdmaen); /* dma status */ + for (int i = 0; i < 3; i++) + { + save_u16 (fifo[i]); + save_u8 (fifo_inuse[i]); + } + save_u16 (dsklength); + *len = dst - dstbak; + return dstbak; } #endif /* SAVESTATE */ diff --git a/src/diskutil.cpp b/src/diskutil.cpp index 4c0af52e..6ead2b93 100644 --- a/src/diskutil.cpp +++ b/src/diskutil.cpp @@ -6,259 +6,292 @@ #define MFMMASK 0x55555555 static uae_u32 getmfmlong (uae_u16 * mbuf) { - return (uae_u32)(((*mbuf << 16) | *(mbuf + 1)) & MFMMASK); + return (uae_u32)(((*mbuf << 16) | *(mbuf + 1)) & MFMMASK); } #define FLOPPY_WRITE_LEN 6250 static int drive_write_adf_amigados (uae_u16 *mbuf, uae_u16 *mend, uae_u8 *writebuffer, uae_u8 *writebuffer_ok, int track, int *outsize) { - int i; - uae_u32 odd, even, chksum, id, dlong; - uae_u8 *secdata; - uae_u8 secbuf[544]; + int i; + uae_u32 odd, even, chksum, id, dlong; + uae_u8 *secdata; + uae_u8 secbuf[544]; - mend -= (4 + 16 + 8 + 512); - *outsize = 11 * 512; - for (;;) { - int trackoffs; + mend -= (4 + 16 + 8 + 512); + *outsize = 11 * 512; + for (;;) + { + int trackoffs; - /* all sectors complete? */ - for (i = 0; i < 11; i++) { - if (!writebuffer_ok[i]) - break; - } - if (i == 11) - return 0; + /* all sectors complete? */ + for (i = 0; i < 11; i++) + { + if (!writebuffer_ok[i]) + break; + } + if (i == 11) + return 0; - do { - while (*mbuf++ != 0x4489) { - if (mbuf >= mend) { - write_log (_T("* track %d, unexpected end of data\n"), track); - return 1; - } - } - } while (*mbuf++ != 0x4489); + do + { + while (*mbuf++ != 0x4489) + { + if (mbuf >= mend) + { + write_log (_T("* track %d, unexpected end of data\n"), track); + return 1; + } + } + } + while (*mbuf++ != 0x4489); - odd = getmfmlong (mbuf); - even = getmfmlong (mbuf + 2); - mbuf += 4; - id = (odd << 1) | even; + odd = getmfmlong (mbuf); + even = getmfmlong (mbuf + 2); + mbuf += 4; + id = (odd << 1) | even; - trackoffs = (id & 0xff00) >> 8; - if (trackoffs > 10) { - write_log (_T("* track %d, corrupt sector number %d\n"), track, trackoffs); - goto next; - } - /* this sector is already ok? */ - if (writebuffer_ok[trackoffs]) - goto next; + trackoffs = (id & 0xff00) >> 8; + if (trackoffs > 10) + { + write_log (_T("* track %d, corrupt sector number %d\n"), track, trackoffs); + goto next; + } + /* this sector is already ok? */ + if (writebuffer_ok[trackoffs]) + goto next; - chksum = odd ^ even; - for (i = 0; i < 4; i++) { - odd = getmfmlong (mbuf); - even = getmfmlong (mbuf + 8); - mbuf += 2; + chksum = odd ^ even; + for (i = 0; i < 4; i++) + { + odd = getmfmlong (mbuf); + even = getmfmlong (mbuf + 8); + mbuf += 2; - dlong = (odd << 1) | even; - if (dlong) { - write_log (_T("* track %d, sector %d header crc error\n"), track, trackoffs); - goto next; - } - chksum ^= odd ^ even; - } /* could check here if the label is nonstandard */ - mbuf += 8; - odd = getmfmlong (mbuf); - even = getmfmlong (mbuf + 2); - mbuf += 4; - if (((odd << 1) | even) != chksum || ((id & 0x00ff0000) >> 16) != (uae_u32)track) return 3; - odd = getmfmlong (mbuf); - even = getmfmlong (mbuf + 2); - mbuf += 4; - chksum = (odd << 1) | even; - secdata = secbuf + 32; - for (i = 0; i < 128; i++) { - odd = getmfmlong (mbuf); - even = getmfmlong (mbuf + 256); - mbuf += 2; - dlong = (odd << 1) | even; - *secdata++ = (uae_u8)(dlong >> 24); - *secdata++ = (uae_u8)(dlong >> 16); - *secdata++ = (uae_u8)(dlong >> 8); - *secdata++ = (uae_u8)dlong; - chksum ^= odd ^ even; - } - mbuf += 256; - if (chksum) { - write_log (_T("* track %d, sector %d data crc error\n"), track, trackoffs); - goto next; - } - memcpy (writebuffer + trackoffs * 512, secbuf + 32, 512); - writebuffer_ok[trackoffs] = 0xff; - continue; + dlong = (odd << 1) | even; + if (dlong) + { + write_log (_T("* track %d, sector %d header crc error\n"), track, trackoffs); + goto next; + } + chksum ^= odd ^ even; + } /* could check here if the label is nonstandard */ + mbuf += 8; + odd = getmfmlong (mbuf); + even = getmfmlong (mbuf + 2); + mbuf += 4; + if (((odd << 1) | even) != chksum || ((id & 0x00ff0000) >> 16) != (uae_u32)track) return 3; + odd = getmfmlong (mbuf); + even = getmfmlong (mbuf + 2); + mbuf += 4; + chksum = (odd << 1) | even; + secdata = secbuf + 32; + for (i = 0; i < 128; i++) + { + odd = getmfmlong (mbuf); + even = getmfmlong (mbuf + 256); + mbuf += 2; + dlong = (odd << 1) | even; + *secdata++ = (uae_u8)(dlong >> 24); + *secdata++ = (uae_u8)(dlong >> 16); + *secdata++ = (uae_u8)(dlong >> 8); + *secdata++ = (uae_u8)dlong; + chksum ^= odd ^ even; + } + mbuf += 256; + if (chksum) + { + write_log (_T("* track %d, sector %d data crc error\n"), track, trackoffs); + goto next; + } + memcpy (writebuffer + trackoffs * 512, secbuf + 32, 512); + writebuffer_ok[trackoffs] = 0xff; + continue; next: - mbuf += 8; - } + mbuf += 8; + } } /* search and align to 0x4489 WORDSYNC markers */ int isamigatrack(uae_u16 *amigamfmbuffer, uae_u8 *mfmdata, int len, uae_u8 *writebuffer, uae_u8 *writebuffer_ok, int track, int *outsize) { - uae_u16 *dst = amigamfmbuffer; - int shift, syncshift, sync; - uae_u32 l; - uae_u16 w; + uae_u16 *dst = amigamfmbuffer; + int shift, syncshift, sync; + uae_u32 l; + uae_u16 w; - *outsize = 11 * 512; - len *= 8; - sync = syncshift = shift = 0; - while (len--) { - l = (mfmdata[0] << 16) | (mfmdata[1] << 8) | (mfmdata[2] << 0); - w = (uae_u16)(l >> (8 - shift)); - if (w == 0x4489) { - sync = 1; - syncshift = 0; - } - if (sync) { - if (syncshift == 0) *dst++ = w; - syncshift++; - if (syncshift == 16) syncshift = 0; - } - shift++; - if (shift == 8) { - mfmdata++; - shift = 0; - } - } - if (sync) - return drive_write_adf_amigados (amigamfmbuffer, dst, writebuffer, writebuffer_ok, track, outsize); - return -1; + *outsize = 11 * 512; + len *= 8; + sync = syncshift = shift = 0; + while (len--) + { + l = (mfmdata[0] << 16) | (mfmdata[1] << 8) | (mfmdata[2] << 0); + w = (uae_u16)(l >> (8 - shift)); + if (w == 0x4489) + { + sync = 1; + syncshift = 0; + } + if (sync) + { + if (syncshift == 0) *dst++ = w; + syncshift++; + if (syncshift == 16) syncshift = 0; + } + shift++; + if (shift == 8) + { + mfmdata++; + shift = 0; + } + } + if (sync) + return drive_write_adf_amigados (amigamfmbuffer, dst, writebuffer, writebuffer_ok, track, outsize); + return -1; } static uae_u16 getmfmword (uae_u16 *mbuf, int shift) { - return (mbuf[0] << shift) | (mbuf[1] >> (16 - shift)); + return (mbuf[0] << shift) | (mbuf[1] >> (16 - shift)); } static uae_u8 mfmdecode (uae_u16 **mfmp, int shift) { - uae_u16 mfm = getmfmword (*mfmp, shift); - uae_u8 out = 0; - int i; + uae_u16 mfm = getmfmword (*mfmp, shift); + uae_u8 out = 0; + int i; - (*mfmp)++; - mfm &= 0x5555; - for (i = 0; i < 8; i++) { - out >>= 1; - if (mfm & 1) - out |= 0x80; - mfm >>= 2; - } - return out; + (*mfmp)++; + mfm &= 0x5555; + for (i = 0; i < 8; i++) + { + out >>= 1; + if (mfm & 1) + out |= 0x80; + mfm >>= 2; + } + return out; } static int drive_write_adf_pc (uae_u16 *mbuf, uae_u16 *mend, uae_u8 *writebuffer, uae_u8 *writebuffer_ok, int track, int *outsecs) { - int sectors, shift, sector, i; - uae_u8 mark; - uae_u8 secbuf[3 + 1 + 512]; - uae_u16 crc; - int mfmcount; + int sectors, shift, sector, i; + uae_u8 mark; + uae_u8 secbuf[3 + 1 + 512]; + uae_u16 crc; + int mfmcount; - secbuf[0] = secbuf[1] = secbuf[2] = 0xa1; - secbuf[3] = 0xfb; + secbuf[0] = secbuf[1] = secbuf[2] = 0xa1; + secbuf[3] = 0xfb; - sectors = 0; - sector = -1; - shift = 0; - mend -= (4 + 16 + 8 + 512); - for (;;) { - *outsecs = sectors; + sectors = 0; + sector = -1; + shift = 0; + mend -= (4 + 16 + 8 + 512); + for (;;) + { + *outsecs = sectors; - mfmcount = 0; - while (getmfmword (mbuf, shift) != 0x4489) { - mfmcount++; - if (mbuf >= mend) { - if (sectors >= 1) - return 0; - write_log (_T("* track %d, unexpected end of data\n"), track); - return 1; - } - shift++; - if (shift == 16) { - shift = 0; - mbuf++; - } - if (sector >= 0 && mfmcount / 16 >= 43) - sector = -1; - } - mfmcount = 0; - while (getmfmword (mbuf, shift) == 0x4489) { - mfmcount++; - if (mbuf >= mend) { - if (sectors >= 1) - return 0; - return 1; - } - mbuf++; - } - if (mfmcount < 3) // ignore if less than 3 sync markers - continue; - mark = mfmdecode (&mbuf, shift); - if (mark == 0xfe) { - uae_u8 tmp[8]; - uae_u8 cyl, head, size; + mfmcount = 0; + while (getmfmword (mbuf, shift) != 0x4489) + { + mfmcount++; + if (mbuf >= mend) + { + if (sectors >= 1) + return 0; + write_log (_T("* track %d, unexpected end of data\n"), track); + return 1; + } + shift++; + if (shift == 16) + { + shift = 0; + mbuf++; + } + if (sector >= 0 && mfmcount / 16 >= 43) + sector = -1; + } + mfmcount = 0; + while (getmfmword (mbuf, shift) == 0x4489) + { + mfmcount++; + if (mbuf >= mend) + { + if (sectors >= 1) + return 0; + return 1; + } + mbuf++; + } + if (mfmcount < 3) // ignore if less than 3 sync markers + continue; + mark = mfmdecode (&mbuf, shift); + if (mark == 0xfe) + { + uae_u8 tmp[8]; + uae_u8 cyl, head, size; - cyl = mfmdecode (&mbuf, shift); - head = mfmdecode (&mbuf, shift); - sector = mfmdecode (&mbuf, shift); - size = mfmdecode (&mbuf, shift); - crc = (mfmdecode (&mbuf, shift) << 8) | mfmdecode (&mbuf, shift); + cyl = mfmdecode (&mbuf, shift); + head = mfmdecode (&mbuf, shift); + sector = mfmdecode (&mbuf, shift); + size = mfmdecode (&mbuf, shift); + crc = (mfmdecode (&mbuf, shift) << 8) | mfmdecode (&mbuf, shift); - tmp[0] = 0xa1; tmp[1] = 0xa1; tmp[2] = 0xa1; tmp[3] = mark; - tmp[4] = cyl; tmp[5] = head; tmp[6] = sector; tmp[7] = size; + tmp[0] = 0xa1; + tmp[1] = 0xa1; + tmp[2] = 0xa1; + tmp[3] = mark; + tmp[4] = cyl; + tmp[5] = head; + tmp[6] = sector; + tmp[7] = size; - // skip 28 bytes - for (i = 0; i < 28; i++) - mfmdecode (&mbuf, shift); + // skip 28 bytes + for (i = 0; i < 28; i++) + mfmdecode (&mbuf, shift); - if (get_crc16 (tmp, 8) != crc || cyl != track / 2 || head != (track & 1) || size != 2 || sector < 1 || sector > 20) { - write_log (_T("PCDOS: track %d, corrupted sector header\n"), track); - continue; - } - sector--; - continue; - } - if (mark != 0xfb && mark != 0xfa) { - write_log (_T("PCDOS: track %d: unknown address mark %02X\n"), track, mark); - continue; - } - if (sector < 0) { - write_log (_T("PCDOS: track %d: data mark without header\n"), track); - continue; - } - for (i = 0; i < 512; i++) - secbuf[i + 4] = mfmdecode (&mbuf, shift); - crc = (mfmdecode (&mbuf, shift) << 8) | mfmdecode (&mbuf, shift); - if (get_crc16 (secbuf, 3 + 1 + 512) != crc) { - write_log (_T("PCDOS: track %d, sector %d data checksum error\n"), - track, sector + 1); - continue; - } - memcpy (writebuffer + sector * 512, secbuf + 4, 512); - sectors++; - sector = -1; - } + if (get_crc16 (tmp, 8) != crc || cyl != track / 2 || head != (track & 1) || size != 2 || sector < 1 || sector > 20) + { + write_log (_T("PCDOS: track %d, corrupted sector header\n"), track); + continue; + } + sector--; + continue; + } + if (mark != 0xfb && mark != 0xfa) + { + write_log (_T("PCDOS: track %d: unknown address mark %02X\n"), track, mark); + continue; + } + if (sector < 0) + { + write_log (_T("PCDOS: track %d: data mark without header\n"), track); + continue; + } + for (i = 0; i < 512; i++) + secbuf[i + 4] = mfmdecode (&mbuf, shift); + crc = (mfmdecode (&mbuf, shift) << 8) | mfmdecode (&mbuf, shift); + if (get_crc16 (secbuf, 3 + 1 + 512) != crc) + { + write_log (_T("PCDOS: track %d, sector %d data checksum error\n"), + track, sector + 1); + continue; + } + memcpy (writebuffer + sector * 512, secbuf + 4, 512); + sectors++; + sector = -1; + } } int ispctrack(uae_u16 *amigamfmbuffer, uae_u8 *mfmdata, int len, uae_u8 *writebuffer, uae_u8 *writebuffer_ok, int track, int *outsize) { - int i, outsecs; - for (i = 0; i < len / 2; i++) - amigamfmbuffer[i] = mfmdata[i * 2 + 1] | (mfmdata[i * 2 + 0] << 8); - i = drive_write_adf_pc (amigamfmbuffer, amigamfmbuffer + len / 2, writebuffer, writebuffer_ok, track, &outsecs); - *outsize = outsecs * 512; - if (*outsize < 9 * 512) - *outsize = 9 * 512; - return i ? -1 : 0; + int i, outsecs; + for (i = 0; i < len / 2; i++) + amigamfmbuffer[i] = mfmdata[i * 2 + 1] | (mfmdata[i * 2 + 0] << 8); + i = drive_write_adf_pc (amigamfmbuffer, amigamfmbuffer + len / 2, writebuffer, writebuffer_ok, track, &outsecs); + *outsize = outsecs * 512; + if (*outsize < 9 * 512) + *outsize = 9 * 512; + return i ? -1 : 0; } diff --git a/src/drawing.cpp b/src/drawing.cpp index 9c5a3f49..0af95b4c 100644 --- a/src/drawing.cpp +++ b/src/drawing.cpp @@ -34,7 +34,7 @@ #include "options.h" #include "td-sdl/thread.h" #include "uae.h" -#include "memory.h" +#include "include/memory.h" #include "custom.h" #include "newcpu.h" #include "xwin.h" @@ -239,7 +239,7 @@ int coord_native_to_amiga_x (int x) int coord_native_to_amiga_y (int y) { - return native2amiga_line_map[y]; + return native2amiga_line_map[y]; } STATIC_INLINE int res_shift_from_window (int x) @@ -430,7 +430,7 @@ static void pfield_init_linetoscr (void) ddf_left <<= bplres; pixels_offset = MAX_PIXELS_PER_LINE - ddf_left; src_pixel = MAX_PIXELS_PER_LINE + res_shift_from_window (playfield_start - native_ddf_left); - + if (dip_for_drawing->nr_sprites == 0) return; /* Must clear parts of apixels. */ @@ -548,7 +548,7 @@ static void init_ham_decoding (void) ham_decode_pixel = ham_src_pixel; ham_lastcolor = colors_for_drawing.acolors[0]; - + if (!bplham) { if (unpainted_amiga > 0) { int pv = pixdata.apixels[ham_decode_pixel + unpainted_amiga - 1]; @@ -561,7 +561,7 @@ static void init_ham_decoding (void) if (bplplanecnt >= 7) { /* AGA mode HAM8 */ while (unpainted_amiga-- > 0) { int pv = pixdata.apixels[ham_decode_pixel++] ^ bplxor; - switch (pv & 0x3) + switch (pv & 0x3) { case 0x0: ham_lastcolor = colors_for_drawing.acolors[pv >> 2]; break; #ifdef ARMV6T2 @@ -578,7 +578,7 @@ static void init_ham_decoding (void) } else { /* AGA mode HAM6 */ while (unpainted_amiga-- > 0) { int pv = pixdata.apixels[ham_decode_pixel++] ^ bplxor; - switch (pv & 0x30) + switch (pv & 0x30) { case 0x00: ham_lastcolor = colors_for_drawing.acolors[pv]; break; #ifdef ARMV6T2 @@ -597,7 +597,7 @@ static void init_ham_decoding (void) /* OCS/ECS mode HAM6 */ while (unpainted_amiga-- > 0) { int pv = pixdata.apixels[ham_decode_pixel++]; - switch (pv & 0x30) + switch (pv & 0x30) { case 0x00: ham_lastcolor = colors_for_drawing.acolors[pv]; break; #ifdef ARMV6T2 @@ -617,7 +617,7 @@ static void init_ham_decoding (void) static void decode_ham (int pix, int stoppos) { int todraw_amiga = res_shift_from_window (stoppos - pix); - + if (!bplham) { while (todraw_amiga-- > 0) { int pv = pixdata.apixels[ham_decode_pixel]; @@ -625,14 +625,14 @@ static void decode_ham (int pix, int stoppos) ham_lastcolor = colors_for_drawing.acolors[pv ^ bplxor]; else ham_lastcolor = colors_for_drawing.acolors[pv]; - + ham_linebuf[ham_decode_pixel++] = ham_lastcolor; } } else if (currprefs.chipset_mask & CSMASK_AGA) { if (bplplanecnt >= 7) { /* AGA mode HAM8 */ while (todraw_amiga-- > 0) { int pv = pixdata.apixels[ham_decode_pixel] ^ bplxor; - switch (pv & 0x3) + switch (pv & 0x3) { case 0x0: ham_lastcolor = colors_for_drawing.acolors[pv >> 2]; break; #ifdef ARMV6T2 @@ -650,7 +650,7 @@ static void decode_ham (int pix, int stoppos) } else { /* AGA mode HAM6 */ while (todraw_amiga-- > 0) { int pv = pixdata.apixels[ham_decode_pixel] ^ bplxor; - switch (pv & 0x30) + switch (pv & 0x30) { case 0x00: ham_lastcolor = colors_for_drawing.acolors[pv]; break; #ifdef ARMV6T2 @@ -670,7 +670,7 @@ static void decode_ham (int pix, int stoppos) /* OCS/ECS mode HAM6 */ while (todraw_amiga-- > 0) { int pv = pixdata.apixels[ham_decode_pixel]; - switch (pv & 0x30) + switch (pv & 0x30) { case 0x00: ham_lastcolor = colors_for_drawing.acolors[pv]; break; #ifdef ARMV6T2 @@ -698,10 +698,10 @@ static void gen_pfield_tables (void) dblpf_2nd1[i] = plane1 == 0 ? (plane2 == 0 ? 0 : 2) : 1; dblpf_2nd2[i] = plane2 == 0 ? (plane1 == 0 ? 0 : 1) : 2; - + dblpf_ind1_aga[i] = plane1 == 0 ? plane2 : plane1; dblpf_ind2_aga[i] = plane2 == 0 ? plane1 : plane2; - + dblpf_ms1[i] = plane1 == 0 ? (plane2 == 0 ? 16 : 8) : 0; dblpf_ms2[i] = plane2 == 0 ? (plane1 == 0 ? 16 : 0) : 8; if (plane2 > 0) @@ -719,7 +719,7 @@ static void gen_pfield_tables (void) for(i=0; i<65536; ++i) { - sprite_col_nat[i] = + sprite_col_nat[i] = (i & 0x0003) ? ((i >> 0) & 3) + 0 : (i & 0x000C) ? ((i >> 2) & 3) + 0 : (i & 0x0030) ? ((i >> 4) & 3) + 4 : @@ -733,9 +733,9 @@ static void gen_pfield_tables (void) (i & 0x00F0) ? ((i >> 4) & 0x000F) : (i & 0x0F00) ? ((i >> 8) & 0x000F) : (i & 0xF000) ? ((i >> 12) & 0x000F) : 0; - sprite_bit[i] = - (i & 0x0003) ? 0x01 : - (i & 0x000C) ? 0x02 : + sprite_bit[i] = + (i & 0x0003) ? 0x01 : + (i & 0x000C) ? 0x02 : (i & 0x0030) ? 0x04 : (i & 0x00C0) ? 0x08 : (i & 0x0300) ? 0x10 : @@ -1160,13 +1160,13 @@ STATIC_INLINE void draw_sprites_aga_ham (struct sprite_entry *e, const int doubl else col = sprite_col_nat[v] + sbasecol[1]; } - + col = colors_for_drawing.acolors[col ^ bplxor]; ham_linebuf[window_pos] = col; if (doubling) ham_linebuf[window_pos + 1] = col; } - } + } window_pos += 1 << doubling; } } @@ -1214,13 +1214,13 @@ STATIC_INLINE void draw_sprites_aga_dp (struct sprite_entry *e, const int doubli else col = sprite_col_nat[v] + sbasecol[1]; } - + spritepixels[window_pos] = col; if (doubling) spritepixels[window_pos + 1] = col; } } - + window_pos += 1 << doubling; } @@ -1262,14 +1262,14 @@ STATIC_INLINE void draw_sprites_aga_sp (struct sprite_entry *e, const int doubli else col = sprite_col_nat[v] + sbasecol[1]; } - + col ^= bplxor; if (doubling) pixdata.apixels_w[window_pos >> 1] = col | (col << 8); else pixdata.apixels[window_pos] = col; } - } + } window_pos += 1 << doubling; } } @@ -1320,7 +1320,7 @@ static draw_sprites_func draw_sprites_aga_ham_hi[2]={ static draw_sprites_func draw_sprites_aga_ham_shi[2]={ draw_sprites_aga_ham_shi_nat, draw_sprites_aga_ham_shi_at }; -static __inline__ void decide_draw_sprites(void) +static __inline__ void decide_draw_sprites(void) { if (currprefs.chipset_mask & CSMASK_AGA) { @@ -1376,14 +1376,14 @@ static __inline__ void decide_draw_sprites(void) if (bplres == RES_LORES) if (bpldualpf) draw_sprites_punt=draw_sprites_dp_lo; - else if(dp_for_drawing->ham_seen) + else if(dp_for_drawing->ham_seen) draw_sprites_punt=draw_sprites_ham_lo; else draw_sprites_punt=draw_sprites_sp_lo; else if (bpldualpf) draw_sprites_punt=draw_sprites_dp_hi; - else if(dp_for_drawing->ham_seen) + else if(dp_for_drawing->ham_seen) draw_sprites_punt=draw_sprites_ham_hi; else draw_sprites_punt=draw_sprites_sp_hi; @@ -1621,7 +1621,7 @@ static void pfield_doline (int lineno) { int wordcount = dp_for_drawing->plflinelen; uae_u32 *data = pixdata.apixels_l + MAX_PIXELS_PER_LINE / 4; - + #ifdef USE_ARMNEON pfield_doline_n[bplplanecnt](data, wordcount, lineno); #else @@ -1654,7 +1654,7 @@ __attribute__((optimize("O2"))) void init_row_map (void) { int i, j; - j = 0; + j = 0; for (i = gfxvidinfo.outheight; i < MAX_VIDHEIGHT + 1; i++) row_map[i] = row_tmp; for (i = 0; i < gfxvidinfo.outheight; i++, j += gfxvidinfo.rowbytes) @@ -1816,8 +1816,8 @@ STATIC_INLINE void do_color_changes (line_draw_func worker_border, line_draw_fun (*worker_border) (lastpos, endpos); } return; - } - + } + for (i = dip_for_drawing->first_color_change; i <= dip_for_drawing->last_color_change; i++) { int nextpos, nextpos_in_range; if (i == dip_for_drawing->last_color_change) @@ -1875,7 +1875,7 @@ static void pfield_draw_line (int lineno, int gfx_ypos) int border = 0; if (dp_for_drawing->plfleft < 0) border = 1; - + xlinebuffer = row_map[gfx_ypos]; xlinebuffer -= linetoscr_x_adjust_bytes; @@ -1885,7 +1885,7 @@ static void pfield_draw_line (int lineno, int gfx_ypos) pfield_doline (lineno); adjust_drawing_colors (dp_for_drawing->ctable, dp_for_drawing->ham_seen || bplehb); - + /* The problem is that we must call decode_ham() BEFORE we do the sprites. */ if (dp_for_drawing->ham_seen) { @@ -1900,7 +1900,7 @@ static void pfield_draw_line (int lineno, int gfx_ypos) } bplham = dp_for_drawing->ham_at_start; } - + if (dip_for_drawing->nr_sprites) { int i; decide_draw_sprites(); @@ -1909,7 +1909,7 @@ static void pfield_draw_line (int lineno, int gfx_ypos) draw_sprites_punt[e->has_attached](e); } } - + do_color_changes (pfield_do_fill_line, pfield_do_linetoscr); } else { int dosprites = 0; @@ -1954,7 +1954,7 @@ static void center_image (void) { int deltaToBorder; deltaToBorder = (gfxvidinfo.outwidth >> currprefs.gfx_resolution) - 320; - + visible_left_border = 73 - (deltaToBorder >> 1); visible_right_border = 393 + (deltaToBorder >> 1); @@ -2110,7 +2110,7 @@ void reset_drawing (void) lores_reset (); linestate_first_undecided = 0; - + init_aspect_maps (); init_row_map(); diff --git a/src/events.cpp b/src/events.cpp index 557c1a3e..97487941 100644 --- a/src/events.cpp +++ b/src/events.cpp @@ -12,7 +12,7 @@ #include "sysdeps.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "events.h" @@ -21,109 +21,127 @@ int vsynctimebase; void events_schedule (void) { - int i; + int i; - unsigned long int mintime = ~0L; - for (i = 0; i < ev_max; i++) { - if (eventtab[i].active) { - unsigned long int eventtime = eventtab[i].evtime - currcycle; - if (eventtime < mintime) - mintime = eventtime; - } - } - nextevent = currcycle + mintime; + unsigned long int mintime = ~0L; + for (i = 0; i < ev_max; i++) + { + if (eventtab[i].active) + { + unsigned long int eventtime = eventtab[i].evtime - currcycle; + if (eventtime < mintime) + mintime = eventtime; + } + } + nextevent = currcycle + mintime; } void do_cycles_cpu_fastest (unsigned long cycles_to_add) { - if ((regs.pissoff -= cycles_to_add) > 0) - return; + if ((regs.pissoff -= cycles_to_add) > 0) + return; - cycles_to_add = -regs.pissoff; - regs.pissoff = 0; + cycles_to_add = -regs.pissoff; + regs.pissoff = 0; - if (is_syncline && eventtab[ev_hsync].evtime - currcycle <= cycles_to_add) { - int rpt = read_processor_time (); - int v = rpt - vsyncmintime; - if (v > syncbase || v < -syncbase) - vsyncmintime = rpt; - if (v < speedup_timelimit) { - regs.pissoff = pissoff_value; - return; - } - is_syncline = 0; - } + if (is_syncline && eventtab[ev_hsync].evtime - currcycle <= cycles_to_add) + { + int rpt = read_processor_time (); + int v = rpt - vsyncmintime; + if (v > syncbase || v < -syncbase) + vsyncmintime = rpt; + if (v < speedup_timelimit) + { + regs.pissoff = pissoff_value; + return; + } + is_syncline = 0; + } - while ((nextevent - currcycle) <= cycles_to_add) { - int i; - cycles_to_add -= (nextevent - currcycle); - currcycle = nextevent; + while ((nextevent - currcycle) <= cycles_to_add) + { + int i; + cycles_to_add -= (nextevent - currcycle); + currcycle = nextevent; - for (i = 0; i < ev_max; i++) { - if (eventtab[i].active && eventtab[i].evtime == currcycle) { - (*eventtab[i].handler)(); - } - } - events_schedule(); - } - currcycle += cycles_to_add; + for (i = 0; i < ev_max; i++) + { + if (eventtab[i].active && eventtab[i].evtime == currcycle) + { + (*eventtab[i].handler)(); + } + } + events_schedule(); + } + currcycle += cycles_to_add; } void do_cycles_cpu_norm (unsigned long cycles_to_add) { - while ((nextevent - currcycle) <= cycles_to_add) { - int i; - cycles_to_add -= (nextevent - currcycle); - currcycle = nextevent; + while ((nextevent - currcycle) <= cycles_to_add) + { + int i; + cycles_to_add -= (nextevent - currcycle); + currcycle = nextevent; - for (i = 0; i < ev_max; i++) { - if (eventtab[i].active && eventtab[i].evtime == currcycle) { - (*eventtab[i].handler)(); - } - } - events_schedule(); - } - currcycle += cycles_to_add; + for (i = 0; i < ev_max; i++) + { + if (eventtab[i].active && eventtab[i].evtime == currcycle) + { + (*eventtab[i].handler)(); + } + } + events_schedule(); + } + currcycle += cycles_to_add; } do_cycles_func do_cycles = do_cycles_cpu_norm; void MISC_handler(void) { - int i; - evt mintime; - evt ct = get_cycles(); - static int recursive; + int i; + evt mintime; + evt ct = get_cycles(); + static int recursive; - if (recursive) { - return; - } - recursive++; - eventtab[ev_misc].active = 0; - - mintime = ~0L; - for (i = 0; i < ev2_max; i++) { - if (eventtab2[i].active) { - if (eventtab2[i].evtime == ct) { - eventtab2[i].active = false; - eventtab2[i].handler(eventtab2[i].data); - if (eventtab2[i].active) { - evt eventtime = eventtab2[i].evtime - ct; - if (eventtime < mintime) - mintime = eventtime; - } - } else { - evt eventtime = eventtab2[i].evtime - ct; - if (eventtime < mintime) - mintime = eventtime; - } + if (recursive) + { + return; } - } + recursive++; + eventtab[ev_misc].active = 0; - if (mintime != ~0L) { - eventtab[ev_misc].active = true; - eventtab[ev_misc].evtime = ct + mintime; - events_schedule(); - } - recursive--; + mintime = ~0L; + for (i = 0; i < ev2_max; i++) + { + if (eventtab2[i].active) + { + if (eventtab2[i].evtime == ct) + { + eventtab2[i].active = false; + eventtab2[i].handler(eventtab2[i].data); + if (eventtab2[i].active) + { + evt eventtime = eventtab2[i].evtime - ct; + if (eventtime < mintime) + mintime = eventtime; + } + } + else + { + evt eventtime = eventtab2[i].evtime - ct; + if (eventtime < mintime) + mintime = eventtime; + } + } + } + + if (mintime != ~0L) + { + eventtab[ev_misc].active = true; + eventtab[ev_misc].evtime = ct + mintime; + events_schedule(); + } + recursive--; } diff --git a/src/filesys.cpp b/src/filesys.cpp index 7eb38ece..cd8a571f 100644 --- a/src/filesys.cpp +++ b/src/filesys.cpp @@ -1,26 +1,26 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Unix file system handler for AmigaDOS - * - * Copyright 1996 Ed Hanway - * Copyright 1996, 1997 Bernd Schmidt - * - * Version 0.4: 970308 - * - * Based on example code (c) 1988 The Software Distillery - * and published in Transactor for the Amiga, Volume 2, Issues 2-5. - * (May - August 1989) - * - * Known limitations: - * Does not support several (useless) 2.0+ packet types. - * May not return the correct error code in some cases. - * Does not check for sane values passed by AmigaDOS. May crash the emulation - * if passed garbage values. - * Could do tighter checks on malloc return values. - * Will probably fail spectacularly in some cases if the filesystem is - * modified at the same time by another process while UAE is running. - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Unix file system handler for AmigaDOS + * + * Copyright 1996 Ed Hanway + * Copyright 1996, 1997 Bernd Schmidt + * + * Version 0.4: 970308 + * + * Based on example code (c) 1988 The Software Distillery + * and published in Transactor for the Amiga, Volume 2, Issues 2-5. + * (May - August 1989) + * + * Known limitations: + * Does not support several (useless) 2.0+ packet types. + * May not return the correct error code in some cases. + * Does not check for sane values passed by AmigaDOS. May crash the emulation + * if passed garbage values. + * Could do tighter checks on malloc return values. + * Will probably fail spectacularly in some cases if the filesystem is + * modified at the same time by another process while UAE is running. + */ #include "sysconfig.h" #include "sysdeps.h" @@ -28,7 +28,7 @@ #include "td-sdl/thread.h" #include "options.h" #include "uae.h" -#include "memory.h" +#include "include/memory.h" #include "custom.h" #include "newcpu.h" #include "filesys.h" @@ -74,35 +74,38 @@ int log_filesys = 0; int bootrom_header, bootrom_items; static uae_u32 dlg (uae_u32 a) { - return (dbg (a + 0) << 24) | (dbg (a + 1) << 16) | (dbg (a + 2) << 8) | (dbg (a + 3) << 0); + return (dbg (a + 0) << 24) | (dbg (a + 1) << 16) | (dbg (a + 2) << 8) | (dbg (a + 3) << 0); } static void aino_test (a_inode *aino) { #ifdef AINO_DEBUG - a_inode *aino2 = aino, *aino3; - for (;;) { - if (!aino || !aino->next) - return; - if ((aino->checksum1 ^ aino->checksum2) != 0xaaaa5555) { - write_log (_T("PANIC: corrupted or freed but used aino detected!"), aino); - } - aino3 = aino; - aino = aino->next; - if (aino->prev != aino3) { - write_log (_T("PANIC: corrupted aino linking!\n")); - break; - } - if (aino == aino2) break; - } + a_inode *aino2 = aino, *aino3; + for (;;) + { + if (!aino || !aino->next) + return; + if ((aino->checksum1 ^ aino->checksum2) != 0xaaaa5555) + { + write_log (_T("PANIC: corrupted or freed but used aino detected!"), aino); + } + aino3 = aino; + aino = aino->next; + if (aino->prev != aino3) + { + write_log (_T("PANIC: corrupted aino linking!\n")); + break; + } + if (aino == aino2) break; + } #endif } static void aino_test_init (a_inode *aino) { #ifdef AINO_DEBUG - aino->checksum1 = (uae_u32)aino; - aino->checksum2 = aino->checksum1 ^ 0xaaaa5555; + aino->checksum1 = (uae_u32)aino; + aino->checksum2 = aino->checksum1 ^ 0xaaaa5555; #endif } @@ -121,574 +124,640 @@ static int automountunit = -1; #define UNIT_FILESYSTEM 0 #define UNIT_CDFS 1 -typedef struct { - int unit_type; - bool open; - TCHAR *devname; /* device name, e.g. UAE0: */ - uaecptr devname_amiga; - uaecptr startup; - uaecptr devicenode; - TCHAR *volname; /* volume name, e.g. CDROM, WORK, etc. */ - int volflags; /* volume flags, readonly, stream uaefsdb support */ - TCHAR *rootdir; /* root native directory/hdf. empty drive if invalid path */ - struct zvolume *zarchive; - TCHAR *rootdirdiff; /* "diff" file/directory */ - bool readonly; /* disallow write access? */ - bool locked; /* action write protect */ - bool unknown_media; /* ID_UNREADABLE_DISK */ - int bootpri; /* boot priority. -128 = no autoboot, -129 = no mount */ - int devno; - int controller; - bool wasisempty; /* if true, this unit was created empty */ - bool canremove; /* if true, this unit can be safely ejected and remounted */ - bool configureddrive; /* if true, this is drive that was manually configured */ - - struct hardfiledata hf; +typedef struct +{ + int unit_type; + bool open; + TCHAR *devname; /* device name, e.g. UAE0: */ + uaecptr devname_amiga; + uaecptr startup; + uaecptr devicenode; + TCHAR *volname; /* volume name, e.g. CDROM, WORK, etc. */ + int volflags; /* volume flags, readonly, stream uaefsdb support */ + TCHAR *rootdir; /* root native directory/hdf. empty drive if invalid path */ + struct zvolume *zarchive; + TCHAR *rootdirdiff; /* "diff" file/directory */ + bool readonly; /* disallow write access? */ + bool locked; /* action write protect */ + bool unknown_media; /* ID_UNREADABLE_DISK */ + int bootpri; /* boot priority. -128 = no autoboot, -129 = no mount */ + int devno; + int controller; + bool wasisempty; /* if true, this unit was created empty */ + bool canremove; /* if true, this unit can be safely ejected and remounted */ + bool configureddrive; /* if true, this is drive that was manually configured */ - /* Threading stuff */ - smp_comm_pipe *volatile unit_pipe, *volatile back_pipe; - uae_thread_id tid; - struct _unit *self; - /* Reset handling */ - uae_sem_t reset_sync_sem; - volatile int reset_state; + struct hardfiledata hf; - /* RDB stuff */ - uaecptr rdb_devname_amiga[DEVNAMES_PER_HDF]; - int rdb_lowcyl; - int rdb_highcyl; - int rdb_cylblocks; - uae_u8 *rdb_filesysstore; - int rdb_filesyssize; - TCHAR *filesysdir; + /* Threading stuff */ + smp_comm_pipe *volatile unit_pipe, *volatile back_pipe; + uae_thread_id tid; + struct _unit *self; + /* Reset handling */ + uae_sem_t reset_sync_sem; + volatile int reset_state; + + /* RDB stuff */ + uaecptr rdb_devname_amiga[DEVNAMES_PER_HDF]; + int rdb_lowcyl; + int rdb_highcyl; + int rdb_cylblocks; + uae_u8 *rdb_filesysstore; + int rdb_filesyssize; + TCHAR *filesysdir; } UnitInfo; -struct uaedev_mount_info { - UnitInfo ui[MAX_FILESYSTEM_UNITS]; +struct uaedev_mount_info +{ + UnitInfo ui[MAX_FILESYSTEM_UNITS]; }; static struct uaedev_mount_info mountinfo; int nr_units (void) { - int i, cnt = 0; - for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) { - if (mountinfo.ui[i].open) - cnt++; - } - return cnt; + int i, cnt = 0; + for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) + { + if (mountinfo.ui[i].open) + cnt++; + } + return cnt; } int nr_directory_units (struct uae_prefs *p) { - int i, cnt = 0; - if (p) { - for (i = 0; i < p->mountitems; i++) { - if (p->mountconfig[i].controller == 0) - cnt++; - } - } else { - for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) { - if (mountinfo.ui[i].open && mountinfo.ui[i].controller == 0) - cnt++; + int i, cnt = 0; + if (p) + { + for (i = 0; i < p->mountitems; i++) + { + if (p->mountconfig[i].controller == 0) + cnt++; + } } - } - return cnt; + else + { + for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) + { + if (mountinfo.ui[i].open && mountinfo.ui[i].controller == 0) + cnt++; + } + } + return cnt; } static int is_virtual (int unit_no) { - int t = is_hardfile (unit_no); - return t == FILESYS_VIRTUAL; + int t = is_hardfile (unit_no); + return t == FILESYS_VIRTUAL; } int is_hardfile (int unit_no) { - if (mountinfo.ui[unit_no].volname || mountinfo.ui[unit_no].wasisempty || mountinfo.ui[unit_no].unknown_media) { - return FILESYS_VIRTUAL; - } - if (mountinfo.ui[unit_no].hf.secspertrack == 0) { - return FILESYS_HARDFILE_RDB; - } - return FILESYS_HARDFILE; + if (mountinfo.ui[unit_no].volname || mountinfo.ui[unit_no].wasisempty || mountinfo.ui[unit_no].unknown_media) + { + return FILESYS_VIRTUAL; + } + if (mountinfo.ui[unit_no].hf.secspertrack == 0) + { + return FILESYS_HARDFILE_RDB; + } + return FILESYS_HARDFILE; } static void close_filesys_unit (UnitInfo *uip) { - if (!uip->open) - return; - if (uip->hf.handle_valid) - hdf_close (&uip->hf); - if (uip->volname != 0) - xfree (uip->volname); - if (uip->devname != 0) - xfree (uip->devname); - if (uip->rootdir != 0) - xfree (uip->rootdir); - if (uip->unit_pipe) - xfree (uip->unit_pipe); - if (uip->back_pipe) - xfree (uip->back_pipe); + if (!uip->open) + return; + if (uip->hf.handle_valid) + hdf_close (&uip->hf); + if (uip->volname != 0) + xfree (uip->volname); + if (uip->devname != 0) + xfree (uip->devname); + if (uip->rootdir != 0) + xfree (uip->rootdir); + if (uip->unit_pipe) + xfree (uip->unit_pipe); + if (uip->back_pipe) + xfree (uip->back_pipe); - uip->unit_pipe = 0; - uip->back_pipe = 0; + uip->unit_pipe = 0; + uip->back_pipe = 0; - uip->hf.handle_valid = 0; - uip->volname = 0; - uip->devname = 0; - uip->rootdir = 0; - uip->open = 0; + uip->hf.handle_valid = 0; + uip->volname = 0; + uip->devname = 0; + uip->rootdir = 0; + uip->open = 0; } static uaedev_config_info *getuci (struct uaedev_config_info *uci, int nr) { - return &uci[nr]; + return &uci[nr]; } static UnitInfo *getuip(struct uae_prefs *p, int index) { - if (index < 0) - return NULL; - index = p->mountconfig[index].configoffset; - if (index < 0) - return NULL; - return &mountinfo.ui[index]; + if (index < 0) + return NULL; + index = p->mountconfig[index].configoffset; + if (index < 0) + return NULL; + return &mountinfo.ui[index]; } int get_filesys_unitconfig (struct uae_prefs *p, int index, struct mountedinfo *mi) { - UnitInfo *ui = getuip(p, index); - struct uaedev_config_info *uci = &p->mountconfig[index]; - UnitInfo uitmp; + UnitInfo *ui = getuip(p, index); + struct uaedev_config_info *uci = &p->mountconfig[index]; + UnitInfo uitmp; - memset(mi, 0, sizeof (struct mountedinfo)); - memset(&uitmp, 0, sizeof uitmp); - if (!ui) { - ui = &uitmp; - if (!uci->ishdf) { - mi->ismounted = 1; - if (uci->rootdir && _tcslen(uci->rootdir) == 0) - return FILESYS_VIRTUAL; - if (my_existsfile (uci->rootdir)) { - mi->ismedia = 1; - return FILESYS_VIRTUAL; - } - if (my_getvolumeinfo (uci->rootdir) < 0) - return -1; - mi->ismedia = true; - return FILESYS_VIRTUAL; - } else { - ui->hf.readonly = true; - ui->hf.blocksize = uci->blocksize; - if (!hdf_open (&ui->hf, uci->rootdir)) { - mi->ismedia = false; - mi->ismounted = true; - if (uci->reserved == 0 && uci->sectors == 0 && uci->surfaces == 0) { - if (ui->hf.flags & 1) - return FILESYS_HARDDRIVE; - return FILESYS_HARDFILE_RDB; - } - return -1; - } - mi->ismedia = true; - if (ui->hf.drive_empty) - mi->ismedia = 0; - hdf_close (&ui->hf); + memset(mi, 0, sizeof (struct mountedinfo)); + memset(&uitmp, 0, sizeof uitmp); + if (!ui) + { + ui = &uitmp; + if (!uci->ishdf) + { + mi->ismounted = 1; + if (uci->rootdir && _tcslen(uci->rootdir) == 0) + return FILESYS_VIRTUAL; + if (my_existsfile (uci->rootdir)) + { + mi->ismedia = 1; + return FILESYS_VIRTUAL; + } + if (my_getvolumeinfo (uci->rootdir) < 0) + return -1; + mi->ismedia = true; + return FILESYS_VIRTUAL; + } + else + { + ui->hf.readonly = true; + ui->hf.blocksize = uci->blocksize; + if (!hdf_open (&ui->hf, uci->rootdir)) + { + mi->ismedia = false; + mi->ismounted = true; + if (uci->reserved == 0 && uci->sectors == 0 && uci->surfaces == 0) + { + if (ui->hf.flags & 1) + return FILESYS_HARDDRIVE; + return FILESYS_HARDFILE_RDB; + } + return -1; + } + mi->ismedia = true; + if (ui->hf.drive_empty) + mi->ismedia = 0; + hdf_close (&ui->hf); + } } - } else { - if (!ui->controller) { - mi->ismounted = 1; - if (uci->ishdf) - mi->ismedia = ui->hf.drive_empty ? false : true; - else - mi->ismedia = true; + else + { + if (!ui->controller) + { + mi->ismounted = 1; + if (uci->ishdf) + mi->ismedia = ui->hf.drive_empty ? false : true; + else + mi->ismedia = true; + } } - } - mi->size = ui->hf.virtsize; - if (uci->cyls) { - mi->nrcyls = uci->cyls; - } else { - mi->nrcyls = (int)(uci->sectors * uci->surfaces ? (ui->hf.virtsize / uci->blocksize) / (uci->sectors * uci->surfaces) : 0); - } - if (!uci->ishdf) - return FILESYS_VIRTUAL; - if (uci->reserved == 0 && uci->sectors == 0 && uci->surfaces == 0) { - if (ui->hf.flags & 1) - return FILESYS_HARDDRIVE; - return FILESYS_HARDFILE_RDB; - } - return FILESYS_HARDFILE; + mi->size = ui->hf.virtsize; + if (uci->cyls) + { + mi->nrcyls = uci->cyls; + } + else + { + mi->nrcyls = (int)(uci->sectors * uci->surfaces ? (ui->hf.virtsize / uci->blocksize) / (uci->sectors * uci->surfaces) : 0); + } + if (!uci->ishdf) + return FILESYS_VIRTUAL; + if (uci->reserved == 0 && uci->sectors == 0 && uci->surfaces == 0) + { + if (ui->hf.flags & 1) + return FILESYS_HARDDRIVE; + return FILESYS_HARDFILE_RDB; + } + return FILESYS_HARDFILE; } static void stripsemicolon(TCHAR *s) { if (!s) - return; + return; while(_tcslen(s) > 0 && s[_tcslen(s) - 1] == ':') - s[_tcslen(s) - 1] = 0; + s[_tcslen(s) - 1] = 0; } static void stripspace (TCHAR *s) { - int i; - if (!s) - return; - for (i = 0; i < _tcslen (s); i++) { - if (s[i] == ' ') - s[i] = '_'; - } + int i; + if (!s) + return; + for (i = 0; i < _tcslen (s); i++) + { + if (s[i] == ' ') + s[i] = '_'; + } } static void striplength (TCHAR *s, int len) { - if (!s) - return; - if (_tcslen (s) <= len) - return; - s[len] = 0; + if (!s) + return; + if (_tcslen (s) <= len) + return; + s[len] = 0; } static void fixcharset (TCHAR *s) { - char tmp[MAX_DPATH]; - if (!s) - return; - ua_fs_copy (tmp, MAX_DPATH, s, '_'); - au_fs_copy (s, strlen (tmp) + 1, tmp); + char tmp[MAX_DPATH]; + if (!s) + return; + ua_fs_copy (tmp, MAX_DPATH, s, '_'); + au_fs_copy (s, strlen (tmp) + 1, tmp); } TCHAR *validatevolumename (TCHAR *s) { - stripsemicolon (s); - fixcharset (s); - striplength (s, 30); - return s; + stripsemicolon (s); + fixcharset (s); + striplength (s, 30); + return s; } TCHAR *validatedevicename (TCHAR *s) { - stripsemicolon (s); - stripspace (s); - fixcharset (s); - striplength (s, 30); - return s; + stripsemicolon (s); + stripspace (s); + fixcharset (s); + striplength (s, 30); + return s; } TCHAR *filesys_createvolname (const TCHAR *volname, const TCHAR *rootdir, const TCHAR *def) { - TCHAR *nvol = NULL; - int i, archivehd; - TCHAR *p = NULL; + TCHAR *nvol = NULL; + int i, archivehd; + TCHAR *p = NULL; - archivehd = -1; - if (my_existsfile(rootdir)) - archivehd = 1; - else if (my_existsdir(rootdir)) - archivehd = 0; + archivehd = -1; + if (my_existsfile(rootdir)) + archivehd = 1; + else if (my_existsdir(rootdir)) + archivehd = 0; - if ((!volname || _tcslen (volname) == 0) && rootdir && archivehd >= 0) { - p = my_strdup (rootdir); - for (i = _tcslen (p) - 1; i >= 0; i--) { - TCHAR c = p[i]; - if (c == ':' || c == '/' || c == '\\') { - if (i == _tcslen (p) - 1) - continue; - if (!_tcscmp (p + i, _T(":\\"))) { - xfree (p); - p = xmalloc (TCHAR, 10); - p[0] = rootdir[0]; - p[1] = 0; - i = 0; - } else { - i++; - } - break; - } - } - if (i >= 0) - nvol = my_strdup (p + i); - } - if (!nvol && archivehd >= 0) { - TCHAR *s = NULL; - if (volname && _tcslen (volname) > 0) - nvol = my_strdup (volname); - else - nvol = my_strdup (def); - } - if (!nvol) { - if (volname && _tcslen (volname)) - nvol = my_strdup (volname); - else - nvol = my_strdup (_T("")); - } - validatevolumename (nvol); - xfree (p); - return nvol; + if ((!volname || _tcslen (volname) == 0) && rootdir && archivehd >= 0) + { + p = my_strdup (rootdir); + for (i = _tcslen (p) - 1; i >= 0; i--) + { + TCHAR c = p[i]; + if (c == ':' || c == '/' || c == '\\') + { + if (i == _tcslen (p) - 1) + continue; + if (!_tcscmp (p + i, _T(":\\"))) + { + xfree (p); + p = xmalloc (TCHAR, 10); + p[0] = rootdir[0]; + p[1] = 0; + i = 0; + } + else + { + i++; + } + break; + } + } + if (i >= 0) + nvol = my_strdup (p + i); + } + if (!nvol && archivehd >= 0) + { + TCHAR *s = NULL; + if (volname && _tcslen (volname) > 0) + nvol = my_strdup (volname); + else + nvol = my_strdup (def); + } + if (!nvol) + { + if (volname && _tcslen (volname)) + nvol = my_strdup (volname); + else + nvol = my_strdup (_T("")); + } + validatevolumename (nvol); + xfree (p); + return nvol; } static int set_filesys_volume(const TCHAR *rootdir, int *flags, bool *readonly, bool *emptydrive, struct zvolume **zvp) { - *emptydrive = 0; - if (my_existsfile(rootdir)) { - struct zvolume *zv; - zv = zfile_fopen_archive(rootdir); - if (!zv) { - write_log (_T("'%s' is not a supported archive file\n"), rootdir); - return -1; - } - *zvp = zv; - *flags = MYVOLUMEINFO_ARCHIVE; - *readonly = 1; - } else { - *flags = my_getvolumeinfo (rootdir); - if (*flags < 0) { - if (rootdir && rootdir[0]) - write_log (_T("directory '%s' not found, mounting as empty drive\n"), rootdir); - *emptydrive = 1; - *flags = 0; - } else if ((*flags) & MYVOLUMEINFO_READONLY) { - write_log (_T("'%s' set to read-only\n"), rootdir); - *readonly = 1; - } - } - return 1; + *emptydrive = 0; + if (my_existsfile(rootdir)) + { + struct zvolume *zv; + zv = zfile_fopen_archive(rootdir); + if (!zv) + { + write_log (_T("'%s' is not a supported archive file\n"), rootdir); + return -1; + } + *zvp = zv; + *flags = MYVOLUMEINFO_ARCHIVE; + *readonly = 1; + } + else + { + *flags = my_getvolumeinfo (rootdir); + if (*flags < 0) + { + if (rootdir && rootdir[0]) + write_log (_T("directory '%s' not found, mounting as empty drive\n"), rootdir); + *emptydrive = 1; + *flags = 0; + } + else if ((*flags) & MYVOLUMEINFO_READONLY) + { + write_log (_T("'%s' set to read-only\n"), rootdir); + *readonly = 1; + } + } + return 1; } static int set_filesys_unit_1 (int nr, - const TCHAR *devname, const TCHAR *volname, const TCHAR *rootdir, bool readonly, - int cyls, int secspertrack, int surfaces, int reserved, - int blocksize, int bootpri, bool donotmount, bool autoboot, - const TCHAR *filesysdir, int hdc, int flags) + const TCHAR *devname, const TCHAR *volname, const TCHAR *rootdir, bool readonly, + int cyls, int secspertrack, int surfaces, int reserved, + int blocksize, int bootpri, bool donotmount, bool autoboot, + const TCHAR *filesysdir, int hdc, int flags) { - UnitInfo *ui; - int i; - bool emptydrive = false; + UnitInfo *ui; + int i; + bool emptydrive = false; - if (hdc) - return -1; - if (nr < 0) { - for (nr = 0; nr < MAX_FILESYSTEM_UNITS; nr++) { - if (!mountinfo.ui[nr].open) - break; - } - if (nr == MAX_FILESYSTEM_UNITS) { - write_log(_T("No slot allocated for this unit\n")); - return -1; - } - } - - for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) { - if (nr == i || !mountinfo.ui[i].open || mountinfo.ui[i].rootdir == NULL) - continue; - if (rootdir && _tcslen(rootdir) > 0 && !_tcsicmp (mountinfo.ui[i].rootdir, rootdir)) { - write_log (_T("directory/hardfile '%s' already added\n"), rootdir); - return -1; - } - } - - ui = &mountinfo.ui[nr]; - memset (ui, 0, sizeof (UnitInfo)); - - if (volname != NULL) { - int flags = 0; - emptydrive = 1; - if (rootdir) { - if (set_filesys_volume (rootdir, &flags, &readonly, &emptydrive, &ui->zarchive) < 0) - return -1; + if (hdc) + return -1; + if (nr < 0) + { + for (nr = 0; nr < MAX_FILESYSTEM_UNITS; nr++) + { + if (!mountinfo.ui[nr].open) + break; + } + if (nr == MAX_FILESYSTEM_UNITS) + { + write_log(_T("No slot allocated for this unit\n")); + return -1; + } } - ui->volname = filesys_createvolname (volname, rootdir, _T("harddrive")); - ui->volflags = flags; - } else { - ui->unit_type = UNIT_FILESYSTEM; - ui->hf.secspertrack = secspertrack; - ui->hf.surfaces = surfaces; - ui->hf.reservedblocks = reserved; - ui->hf.blocksize = blocksize; - ui->hf.unitnum = nr; - ui->volname = 0; - ui->hf.readonly = readonly; - if (!hdf_open (&ui->hf, rootdir) && !readonly) { - write_log (_T("Attempting to open in read-only mode\n")); - ui->hf.readonly = readonly = 1; - hdf_open (&ui->hf, rootdir); - } - ui->hf.readonly = readonly; - if (!ui->hf.drive_empty) { - if (ui->hf.handle_valid == 0) { - write_log (_T("Hardfile %s not found\n"), ui->hf.device_name); - goto err; - } - if ((ui->hf.blocksize & (ui->hf.blocksize - 1)) != 0 || ui->hf.blocksize == 0) { - write_log(_T("Hardfile %s bad blocksize\n"), ui->hf.device_name); - goto err; - } - if ((ui->hf.secspertrack || ui->hf.surfaces || ui->hf.reservedblocks) && - (ui->hf.secspertrack < 1 || ui->hf.surfaces < 1 || ui->hf.surfaces > 1023 || - ui->hf.reservedblocks < 0 || ui->hf.reservedblocks > 1023) != 0) { - write_log(_T("Hardfile %s bad hardfile geometry\n"), ui->hf.device_name); - goto err; - } - if (ui->hf.blocksize > ui->hf.virtsize || ui->hf.virtsize == 0) { - write_log(_T("Hardfile %s too small\n"), ui->hf.device_name); - goto err; - } - if (cyls) { - ui->hf.nrcyls = cyls; - } else { - ui->hf.nrcyls = (int)(ui->hf.secspertrack * ui->hf.surfaces ? (ui->hf.virtsize / ui->hf.blocksize) / (ui->hf.secspertrack * ui->hf.surfaces) : 0); - } + + for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) + { + if (nr == i || !mountinfo.ui[i].open || mountinfo.ui[i].rootdir == NULL) + continue; + if (rootdir && _tcslen(rootdir) > 0 && !_tcsicmp (mountinfo.ui[i].rootdir, rootdir)) + { + write_log (_T("directory/hardfile '%s' already added\n"), rootdir); + return -1; + } } - } - ui->self = 0; - ui->reset_state = FS_STARTUP; - ui->wasisempty = emptydrive; - ui->canremove = emptydrive && (flags & MYVOLUMEINFO_REUSABLE); - ui->rootdir = my_strdup (rootdir); - if(devname != 0) { - ui->devname = my_strdup (devname); - stripsemicolon(ui->devname); - } - if (filesysdir && filesysdir[0]) - ui->filesysdir = my_strdup (filesysdir); - ui->readonly = readonly; - if (!autoboot) - bootpri = -128; - if (donotmount) - bootpri = -129; - if (bootpri < -129) - bootpri = -129; - if (bootpri > 127) - bootpri = 127; - ui->bootpri = bootpri; - ui->open = 1; - return nr; + + ui = &mountinfo.ui[nr]; + memset (ui, 0, sizeof (UnitInfo)); + + if (volname != NULL) + { + int flags = 0; + emptydrive = 1; + if (rootdir) + { + if (set_filesys_volume (rootdir, &flags, &readonly, &emptydrive, &ui->zarchive) < 0) + return -1; + } + ui->volname = filesys_createvolname (volname, rootdir, _T("harddrive")); + ui->volflags = flags; + } + else + { + ui->unit_type = UNIT_FILESYSTEM; + ui->hf.secspertrack = secspertrack; + ui->hf.surfaces = surfaces; + ui->hf.reservedblocks = reserved; + ui->hf.blocksize = blocksize; + ui->hf.unitnum = nr; + ui->volname = 0; + ui->hf.readonly = readonly; + if (!hdf_open (&ui->hf, rootdir) && !readonly) + { + write_log (_T("Attempting to open in read-only mode\n")); + ui->hf.readonly = readonly = 1; + hdf_open (&ui->hf, rootdir); + } + ui->hf.readonly = readonly; + if (!ui->hf.drive_empty) + { + if (ui->hf.handle_valid == 0) + { + write_log (_T("Hardfile %s not found\n"), ui->hf.device_name); + goto err; + } + if ((ui->hf.blocksize & (ui->hf.blocksize - 1)) != 0 || ui->hf.blocksize == 0) + { + write_log(_T("Hardfile %s bad blocksize\n"), ui->hf.device_name); + goto err; + } + if ((ui->hf.secspertrack || ui->hf.surfaces || ui->hf.reservedblocks) && + (ui->hf.secspertrack < 1 || ui->hf.surfaces < 1 || ui->hf.surfaces > 1023 || + ui->hf.reservedblocks < 0 || ui->hf.reservedblocks > 1023) != 0) + { + write_log(_T("Hardfile %s bad hardfile geometry\n"), ui->hf.device_name); + goto err; + } + if (ui->hf.blocksize > ui->hf.virtsize || ui->hf.virtsize == 0) + { + write_log(_T("Hardfile %s too small\n"), ui->hf.device_name); + goto err; + } + if (cyls) + { + ui->hf.nrcyls = cyls; + } + else + { + ui->hf.nrcyls = (int)(ui->hf.secspertrack * ui->hf.surfaces ? (ui->hf.virtsize / ui->hf.blocksize) / (ui->hf.secspertrack * ui->hf.surfaces) : 0); + } + } + } + ui->self = 0; + ui->reset_state = FS_STARTUP; + ui->wasisempty = emptydrive; + ui->canremove = emptydrive && (flags & MYVOLUMEINFO_REUSABLE); + ui->rootdir = my_strdup (rootdir); + if(devname != 0) + { + ui->devname = my_strdup (devname); + stripsemicolon(ui->devname); + } + if (filesysdir && filesysdir[0]) + ui->filesysdir = my_strdup (filesysdir); + ui->readonly = readonly; + if (!autoboot) + bootpri = -128; + if (donotmount) + bootpri = -129; + if (bootpri < -129) + bootpri = -129; + if (bootpri > 127) + bootpri = 127; + ui->bootpri = bootpri; + ui->open = 1; + return nr; err: - if (ui->hf.handle_valid) - hdf_close (&ui->hf); - return -1; + if (ui->hf.handle_valid) + hdf_close (&ui->hf); + return -1; } static int set_filesys_unit (int nr, - const TCHAR *devname, const TCHAR *volname, const TCHAR *rootdir, bool readonly, - int cyls, int secspertrack, int surfaces, int reserved, - int blocksize, int bootpri, bool donotmount, bool autoboot, - const TCHAR *filesysdir, int hdc, int flags) + const TCHAR *devname, const TCHAR *volname, const TCHAR *rootdir, bool readonly, + int cyls, int secspertrack, int surfaces, int reserved, + int blocksize, int bootpri, bool donotmount, bool autoboot, + const TCHAR *filesysdir, int hdc, int flags) { - int ret; + int ret; - ret = set_filesys_unit_1 (nr, devname, volname, rootdir, readonly, - cyls, secspertrack, surfaces, reserved, blocksize, bootpri, donotmount, autoboot, - filesysdir, hdc, flags); - return ret; + ret = set_filesys_unit_1 (nr, devname, volname, rootdir, readonly, + cyls, secspertrack, surfaces, reserved, blocksize, bootpri, donotmount, autoboot, + filesysdir, hdc, flags); + return ret; } static int add_filesys_unit (const TCHAR *devname, const TCHAR *volname, const TCHAR *rootdir, bool readonly, - int cyls, int secspertrack, int surfaces, int reserved, - int blocksize, int bootpri, bool donotmount, bool autoboot, - const TCHAR *filesysdir, int hdc, int flags) + int cyls, int secspertrack, int surfaces, int reserved, + int blocksize, int bootpri, bool donotmount, bool autoboot, + const TCHAR *filesysdir, int hdc, int flags) { - int ret; + int ret; - if (nr_units() >= MAX_FILESYSTEM_UNITS) - return -1; + if (nr_units() >= MAX_FILESYSTEM_UNITS) + return -1; - ret = set_filesys_unit_1 (-1, devname, volname, rootdir, readonly, - cyls, secspertrack, surfaces, reserved, blocksize, - bootpri, donotmount, autoboot, filesysdir, hdc, flags); + ret = set_filesys_unit_1 (-1, devname, volname, rootdir, readonly, + cyls, secspertrack, surfaces, reserved, blocksize, + bootpri, donotmount, autoboot, filesysdir, hdc, flags); #ifdef RETROPLATFORM - if (ret >= 0) { - rp_hd_device_enable (ret, true); - rp_harddrive_image_change (ret, readonly, rootdir); - } + if (ret >= 0) + { + rp_hd_device_enable (ret, true); + rp_harddrive_image_change (ret, readonly, rootdir); + } #endif - return ret; + return ret; } int kill_filesys_unitconfig (struct uae_prefs *p, int nr) { - struct uaedev_config_info *uci; + struct uaedev_config_info *uci; - if (nr < 0) - return 0; - uci = getuci (p->mountconfig, nr); - hardfile_do_disk_change (uci, 0); - if (uci->configoffset >= 0 && uci->controller == 0) - filesys_media_change (uci->rootdir, 0, uci); - while (nr < MOUNT_CONFIG_SIZE) { - memmove (&p->mountconfig[nr], &p->mountconfig[nr + 1], sizeof (struct uaedev_config_info)); - nr++; - } - p->mountitems--; - memset (&p->mountconfig[MOUNT_CONFIG_SIZE - 1], 0, sizeof (struct uaedev_config_info)); - return 1; + if (nr < 0) + return 0; + uci = getuci (p->mountconfig, nr); + hardfile_do_disk_change (uci, 0); + if (uci->configoffset >= 0 && uci->controller == 0) + filesys_media_change (uci->rootdir, 0, uci); + while (nr < MOUNT_CONFIG_SIZE) + { + memmove (&p->mountconfig[nr], &p->mountconfig[nr + 1], sizeof (struct uaedev_config_info)); + nr++; + } + p->mountitems--; + memset (&p->mountconfig[MOUNT_CONFIG_SIZE - 1], 0, sizeof (struct uaedev_config_info)); + return 1; } int move_filesys_unitconfig (struct uae_prefs *p, int nr, int to) { - struct uaedev_config_info *uci1, *uci2, tmpuci; + struct uaedev_config_info *uci1, *uci2, tmpuci; - uci1 = getuci (p->mountconfig, nr); - uci2 = getuci (p->mountconfig, to); - if (nr == to) - return 0; - memcpy (&tmpuci, uci1, sizeof (struct uaedev_config_info)); - memcpy (uci1, uci2, sizeof (struct uaedev_config_info)); - memcpy (uci2, &tmpuci, sizeof (struct uaedev_config_info)); - return 1; + uci1 = getuci (p->mountconfig, nr); + uci2 = getuci (p->mountconfig, to); + if (nr == to) + return 0; + memcpy (&tmpuci, uci1, sizeof (struct uaedev_config_info)); + memcpy (uci1, uci2, sizeof (struct uaedev_config_info)); + memcpy (uci2, &tmpuci, sizeof (struct uaedev_config_info)); + return 1; } static void allocuci (struct uae_prefs *p, int nr, int idx) { - struct uaedev_config_info *uci = &p->mountconfig[nr]; - if (idx >= 0) { - UnitInfo *ui; - uci->configoffset = idx; - ui = &mountinfo.ui[idx]; - ui->configureddrive = 1; - } else { - uci->configoffset = -1; - } + struct uaedev_config_info *uci = &p->mountconfig[nr]; + if (idx >= 0) + { + UnitInfo *ui; + uci->configoffset = idx; + ui = &mountinfo.ui[idx]; + ui->configureddrive = 1; + } + else + { + uci->configoffset = -1; + } } static void initialize_mountinfo(void) { - int nr; - UnitInfo *uip = &mountinfo.ui[0]; + int nr; + UnitInfo *uip = &mountinfo.ui[0]; - for (nr = 0; nr < currprefs.mountitems; nr++) { - struct uaedev_config_info *uci = &currprefs.mountconfig[nr]; - if (uci->controller == HD_CONTROLLER_UAE) { - int idx = set_filesys_unit_1 (-1, uci->devname, uci->ishdf ? NULL : uci->volname, uci->rootdir, - uci->readonly, uci->cyls, uci->sectors, uci->surfaces, uci->reserved, - uci->blocksize, uci->bootpri, uci->donotmount, uci->autoboot, uci->filesys, 0, MYVOLUMEINFO_REUSABLE); - allocuci (&currprefs, nr, idx); + for (nr = 0; nr < currprefs.mountitems; nr++) + { + struct uaedev_config_info *uci = &currprefs.mountconfig[nr]; + if (uci->controller == HD_CONTROLLER_UAE) + { + int idx = set_filesys_unit_1 (-1, uci->devname, uci->ishdf ? NULL : uci->volname, uci->rootdir, + uci->readonly, uci->cyls, uci->sectors, uci->surfaces, uci->reserved, + uci->blocksize, uci->bootpri, uci->donotmount, uci->autoboot, uci->filesys, 0, MYVOLUMEINFO_REUSABLE); + allocuci (&currprefs, nr, idx); + } } - } } int sprintf_filesys_unit (TCHAR *buffer, int num) { - UnitInfo *uip = mountinfo.ui; + UnitInfo *uip = mountinfo.ui; - if (uip[num].volname != 0) - _stprintf (buffer, _T("(DH%d:) Filesystem, %s: %s %s"), num, uip[num].volname, - uip[num].rootdir, uip[num].readonly ? "ro" : ""); - else - _stprintf (buffer, _T("(DH%d:) Hardfile, \"%s\", size %d Mbytes"), num, - uip[num].rootdir, (int)(uip[num].hf.virtsize / (1024 * 1024))); - return 0; + if (uip[num].volname != 0) + _stprintf (buffer, _T("(DH%d:) Filesystem, %s: %s %s"), num, uip[num].volname, + uip[num].rootdir, uip[num].readonly ? "ro" : ""); + else + _stprintf (buffer, _T("(DH%d:) Hardfile, \"%s\", size %d Mbytes"), num, + uip[num].rootdir, (int)(uip[num].hf.virtsize / (1024 * 1024))); + return 0; } void free_mountinfo (void) { - int i; - for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) - close_filesys_unit (mountinfo.ui + i); + int i; + for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) + close_filesys_unit (mountinfo.ui + i); } struct hardfiledata *get_hardfile_data (int nr) { - UnitInfo *uip = mountinfo.ui; - if (nr < 0 || nr >= MAX_FILESYSTEM_UNITS || uip[nr].open == 0 || is_virtual(nr)) - return 0; - return &uip[nr].hf; + UnitInfo *uip = mountinfo.ui; + if (nr < 0 || nr >= MAX_FILESYSTEM_UNITS || uip[nr].open == 0 || is_virtual(nr)) + return 0; + return &uip[nr].hf; } /* minimal AmigaDOS definitions */ @@ -788,49 +857,53 @@ struct hardfiledata *get_hardfile_data (int nr) #define DISK_TYPE_DOS_FFS 0x444f5301 /* DOS\1 */ #define CDFS_DOSTYPE 0x43440000 /* CDxx */ -typedef struct { - uae_u32 uniq; - /* The directory we're going through. */ - a_inode *aino; - /* The file we're going to look up next. */ - a_inode *curr_file; +typedef struct +{ + uae_u32 uniq; + /* The directory we're going through. */ + a_inode *aino; + /* The file we're going to look up next. */ + a_inode *curr_file; } ExamineKey; struct lockrecord { - struct lockrecord *next; - uae_u32 packet; - uae_u32 pos; - uae_u32 len; - uae_u32 mode; - uae_u32 timeout; - uae_u32 msg; + struct lockrecord *next; + uae_u32 packet; + uae_u32 pos; + uae_u32 len; + uae_u32 mode; + uae_u32 timeout; + uae_u32 msg; }; -typedef struct key { - struct key *next; - a_inode *aino; - uae_u32 uniq; - struct fs_filehandle *fd; - uae_u64 file_pos; - int dosmode; - int createmode; - int notifyactive; - struct lockrecord *record; +typedef struct key +{ + struct key *next; + a_inode *aino; + uae_u32 uniq; + struct fs_filehandle *fd; + uae_u64 file_pos; + int dosmode; + int createmode; + int notifyactive; + struct lockrecord *record; } Key; -typedef struct notify { - struct notify *next; - uaecptr notifyrequest; - TCHAR *fullname; - TCHAR *partname; +typedef struct notify +{ + struct notify *next; + uaecptr notifyrequest; + TCHAR *fullname; + TCHAR *partname; } Notify; -typedef struct exallkey { - uae_u32 id; - struct fs_dirhandle *dirhandle; - TCHAR *fn; - uaecptr control; +typedef struct exallkey +{ + uae_u32 id; + struct fs_dirhandle *dirhandle; + TCHAR *fn; + uaecptr control; } ExAllKey; /* Since ACTION_EXAMINE_NEXT is so braindamaged, we have to keep @@ -844,69 +917,70 @@ typedef struct exallkey { /* handler state info */ -typedef struct _unit { - struct _unit *next; +typedef struct _unit +{ + struct _unit *next; - /* Amiga stuff */ - uaecptr dosbase; - uaecptr volume; - uaecptr port; /* Our port */ - uaecptr locklist; + /* Amiga stuff */ + uaecptr dosbase; + uaecptr volume; + uaecptr port; /* Our port */ + uaecptr locklist; - /* Native stuff */ - uae_s32 unit; /* unit number */ - UnitInfo ui; /* unit startup info */ - TCHAR tmpbuf3[256]; + /* Native stuff */ + uae_s32 unit; /* unit number */ + UnitInfo ui; /* unit startup info */ + TCHAR tmpbuf3[256]; - /* Dummy message processing */ - uaecptr dummy_message; - volatile unsigned int cmds_sent; - volatile unsigned int cmds_complete; - volatile unsigned int cmds_acked; + /* Dummy message processing */ + uaecptr dummy_message; + volatile unsigned int cmds_sent; + volatile unsigned int cmds_complete; + volatile unsigned int cmds_acked; - /* ExKeys */ - ExamineKey examine_keys[EXKEYS]; - int next_exkey; - unsigned long total_locked_ainos; + /* ExKeys */ + ExamineKey examine_keys[EXKEYS]; + int next_exkey; + unsigned long total_locked_ainos; - /* ExAll */ - ExAllKey exalls[EXALLKEYS]; - int exallid; + /* ExAll */ + ExAllKey exalls[EXALLKEYS]; + int exallid; - /* Keys */ - struct key *keys; + /* Keys */ + struct key *keys; - struct lockrecord *waitingrecords; + struct lockrecord *waitingrecords; - a_inode rootnode; - unsigned long aino_cache_size; - a_inode *aino_hash[MAX_AINO_HASH]; - unsigned long nr_cache_hits; - unsigned long nr_cache_lookups; + a_inode rootnode; + unsigned long aino_cache_size; + a_inode *aino_hash[MAX_AINO_HASH]; + unsigned long nr_cache_hits; + unsigned long nr_cache_lookups; - struct notify *notifyhash[NOTIFY_HASH_SIZE]; + struct notify *notifyhash[NOTIFY_HASH_SIZE]; - int volflags; - uae_u32 lockkey; - bool inhibited; - bool canremovable; - /* increase when media is changed. - * used to detect if cached aino is valid - */ - int mountcount; - int mount_changed; - struct zvolume *zarchive; + int volflags; + uae_u32 lockkey; + bool inhibited; + bool canremovable; + /* increase when media is changed. + * used to detect if cached aino is valid + */ + int mountcount; + int mount_changed; + struct zvolume *zarchive; - TCHAR *mount_volume; - TCHAR *mount_rootdir; - bool mount_readonly; - int mount_flags; + TCHAR *mount_volume; + TCHAR *mount_rootdir; + bool mount_readonly; + int mount_flags; - int reinsertdelay; - TCHAR *newvolume; - TCHAR *newrootdir; - bool newreadonly; - int newflags; + int reinsertdelay; + TCHAR *newvolume; + TCHAR *newrootdir; + bool newreadonly; + int newflags; } Unit; static uae_u32 a_uniq, key_uniq; @@ -940,62 +1014,65 @@ static int flush_cache(Unit *unit, int num); static TCHAR *char1 (uaecptr addr) { - static uae_char buf[1024]; - static TCHAR bufx[1024]; - unsigned int i = 0; - do { - buf[i] = get_byte(addr); - addr++; - } while (buf[i++] && i < sizeof(buf)); - return au_fs_copy (bufx, sizeof (bufx) / sizeof (TCHAR), buf); + static uae_char buf[1024]; + static TCHAR bufx[1024]; + unsigned int i = 0; + do + { + buf[i] = get_byte(addr); + addr++; + } + while (buf[i++] && i < sizeof(buf)); + return au_fs_copy (bufx, sizeof (bufx) / sizeof (TCHAR), buf); } static TCHAR *bstr1 (uaecptr addr) { - static TCHAR bufx[257]; - static uae_char buf[257]; - int i; - int n = get_byte(addr); - addr++; + static TCHAR bufx[257]; + static uae_char buf[257]; + int i; + int n = get_byte(addr); + addr++; - for (i = 0; i < n; i++, addr++) - buf[i] = get_byte(addr); - buf[i] = 0; - return au_fs_copy (bufx, sizeof (bufx) / sizeof (TCHAR), buf); + for (i = 0; i < n; i++, addr++) + buf[i] = get_byte(addr); + buf[i] = 0; + return au_fs_copy (bufx, sizeof (bufx) / sizeof (TCHAR), buf); } static TCHAR *bstr (Unit *unit, uaecptr addr) { - int i; - int n = get_byte(addr); - uae_char buf[257]; + int i; + int n = get_byte(addr); + uae_char buf[257]; - addr++; - for (i = 0; i < n; i++, addr++) - buf[i] = get_byte (addr); - buf[i] = 0; - au_fs_copy (unit->tmpbuf3, sizeof (unit->tmpbuf3) / sizeof (TCHAR), buf); - return unit->tmpbuf3; + addr++; + for (i = 0; i < n; i++, addr++) + buf[i] = get_byte (addr); + buf[i] = 0; + au_fs_copy (unit->tmpbuf3, sizeof (unit->tmpbuf3) / sizeof (TCHAR), buf); + return unit->tmpbuf3; } static TCHAR *bstr_cut (Unit *unit, uaecptr addr) { - TCHAR *p = unit->tmpbuf3; - int i, colon_seen = 0, off; - int n = get_byte (addr); - uae_char buf[257]; + TCHAR *p = unit->tmpbuf3; + int i, colon_seen = 0, off; + int n = get_byte (addr); + uae_char buf[257]; - off = 0; - addr++; - for (i = 0; i < n; i++, addr++) { - uae_u8 c = get_byte(addr); - buf[i] = c; - if (c == '/' || (c == ':' && colon_seen++ == 0)) - off = i + 1; - } - buf[i] = 0; - au_fs_copy (unit->tmpbuf3, sizeof (unit->tmpbuf3) / sizeof (TCHAR), buf); - return &p[off]; + off = 0; + addr++; + for (i = 0; i < n; i++, addr++) + { + uae_u8 c = get_byte(addr); + buf[i] = c; + if (c == '/' || (c == ':' && colon_seen++ == 0)) + off = i + 1; + } + buf[i] = 0; + au_fs_copy (unit->tmpbuf3, sizeof (unit->tmpbuf3) / sizeof (TCHAR), buf); + return &p[off]; } /* convert time_t to/from AmigaDOS time */ @@ -1004,249 +1081,263 @@ static const uae_s64 diff = ((8 * 365 + 2) * (24 * 60 * 60)) * (uae_u64)1000; void timeval_to_amiga (struct mytimeval *tv, int *days, int *mins, int *ticks) { - /* tv.tv_sec is secs since 1-1-1970 */ - /* days since 1-1-1978 */ - /* mins since midnight */ - /* ticks past minute @ 50Hz */ + /* tv.tv_sec is secs since 1-1-1970 */ + /* days since 1-1-1978 */ + /* mins since midnight */ + /* ticks past minute @ 50Hz */ - uae_s64 t = tv->tv_sec * 1000 + tv->tv_usec / 1000; - t -= diff; - if (t < 0) - t = 0; - *days = t / msecs_per_day; - t -= *days * msecs_per_day; - *mins = t / (60 * 1000); - t -= *mins * (60 * 1000); - *ticks = t / (1000 / 50); + uae_s64 t = tv->tv_sec * 1000 + tv->tv_usec / 1000; + t -= diff; + if (t < 0) + t = 0; + *days = t / msecs_per_day; + t -= *days * msecs_per_day; + *mins = t / (60 * 1000); + t -= *mins * (60 * 1000); + *ticks = t / (1000 / 50); } void amiga_to_timeval (struct mytimeval *tv, int days, int mins, int ticks) { - uae_s64 t; + uae_s64 t; - if (days < 0) - days = 0; - if (days > 9900 * 365) - days = 9900 * 365; // in future far enough? - if (mins < 0 || mins >= 24 * 60) - mins = 0; - if (ticks < 0 || ticks >= 60 * 50) - ticks = 0; + if (days < 0) + days = 0; + if (days > 9900 * 365) + days = 9900 * 365; // in future far enough? + if (mins < 0 || mins >= 24 * 60) + mins = 0; + if (ticks < 0 || ticks >= 60 * 50) + ticks = 0; - t = ticks * 20; - t += mins * (60 * 1000); - t += ((uae_u64)days) * msecs_per_day; - t += diff; + t = ticks * 20; + t += mins * (60 * 1000); + t += ((uae_u64)days) * msecs_per_day; + t += diff; - tv->tv_sec = t / 1000; - tv->tv_usec = (t % 1000) * 1000; + tv->tv_sec = t / 1000; + tv->tv_usec = (t % 1000) * 1000; } static Unit *units = 0; static Unit* - find_unit (uaecptr port) +find_unit (uaecptr port) { - Unit* u; - for (u = units; u; u = u->next) - if (u->port == port) - break; + Unit* u; + for (u = units; u; u = u->next) + if (u->port == port) + break; - return u; + return u; } - + static struct fs_dirhandle *fs_opendir (Unit *u, a_inode *aino) { - struct fs_dirhandle *fsd = xmalloc (struct fs_dirhandle, 1); - fsd->fstype = (u->volflags & MYVOLUMEINFO_ARCHIVE) ? FS_ARCHIVE : FS_DIRECTORY; - if (fsd->fstype == FS_ARCHIVE) { - fsd->zd = zfile_opendir_archive (aino->nname); - if (fsd->zd) - return fsd; - } else if (fsd->fstype == FS_DIRECTORY) { - fsd->od = my_opendir (aino->nname); - if (fsd->od) - return fsd; - } - xfree (fsd); - return NULL; + struct fs_dirhandle *fsd = xmalloc (struct fs_dirhandle, 1); + fsd->fstype = (u->volflags & MYVOLUMEINFO_ARCHIVE) ? FS_ARCHIVE : FS_DIRECTORY; + if (fsd->fstype == FS_ARCHIVE) + { + fsd->zd = zfile_opendir_archive (aino->nname); + if (fsd->zd) + return fsd; + } + else if (fsd->fstype == FS_DIRECTORY) + { + fsd->od = my_opendir (aino->nname); + if (fsd->od) + return fsd; + } + xfree (fsd); + return NULL; } static void fs_closedir (struct fs_dirhandle *fsd) { - if (!fsd) - return; - if (fsd->fstype == FS_ARCHIVE) - zfile_closedir_archive (fsd->zd); - else if (fsd->fstype == FS_DIRECTORY) - my_closedir (fsd->od); - xfree (fsd); + if (!fsd) + return; + if (fsd->fstype == FS_ARCHIVE) + zfile_closedir_archive (fsd->zd); + else if (fsd->fstype == FS_DIRECTORY) + my_closedir (fsd->od); + xfree (fsd); } static struct fs_filehandle *fs_openfile (Unit *u, a_inode *aino, int flags) { - struct fs_filehandle *fsf = xmalloc (struct fs_filehandle, 1); - fsf->fstype = (u->volflags & MYVOLUMEINFO_ARCHIVE) ? FS_ARCHIVE : FS_DIRECTORY; - if (fsf->fstype == FS_ARCHIVE) { - fsf->zf = zfile_open_archive (aino->nname, flags); - if (fsf->zf) - return fsf; - } else if (fsf->fstype == FS_DIRECTORY) { - fsf->of = my_open (aino->nname, flags); - if (fsf->of) - return fsf; - } - xfree (fsf); - return NULL; + struct fs_filehandle *fsf = xmalloc (struct fs_filehandle, 1); + fsf->fstype = (u->volflags & MYVOLUMEINFO_ARCHIVE) ? FS_ARCHIVE : FS_DIRECTORY; + if (fsf->fstype == FS_ARCHIVE) + { + fsf->zf = zfile_open_archive (aino->nname, flags); + if (fsf->zf) + return fsf; + } + else if (fsf->fstype == FS_DIRECTORY) + { + fsf->of = my_open (aino->nname, flags); + if (fsf->of) + return fsf; + } + xfree (fsf); + return NULL; } static void fs_closefile (struct fs_filehandle *fsf) { - if (!fsf) - return; - if (fsf->fstype == FS_ARCHIVE) { - zfile_close_archive (fsf->zf); - } else if (fsf->fstype == FS_DIRECTORY) { - my_close (fsf->of); - } - xfree (fsf); + if (!fsf) + return; + if (fsf->fstype == FS_ARCHIVE) + { + zfile_close_archive (fsf->zf); + } + else if (fsf->fstype == FS_DIRECTORY) + { + my_close (fsf->of); + } + xfree (fsf); } static unsigned int fs_read (struct fs_filehandle *fsf, void *b, unsigned int size) { - if (fsf->fstype == FS_ARCHIVE) - return zfile_read_archive (fsf->zf, b, size); - else if (fsf->fstype == FS_DIRECTORY) - return my_read (fsf->of, b, size); - return 0; + if (fsf->fstype == FS_ARCHIVE) + return zfile_read_archive (fsf->zf, b, size); + else if (fsf->fstype == FS_DIRECTORY) + return my_read (fsf->of, b, size); + return 0; } static unsigned int fs_write (struct fs_filehandle *fsf, void *b, unsigned int size) { - if (fsf->fstype == FS_DIRECTORY) - return my_write (fsf->of, b, size); - return 0; + if (fsf->fstype == FS_DIRECTORY) + return my_write (fsf->of, b, size); + return 0; } /* return value = old position. -1 = error. */ static uae_u64 fs_lseek64 (struct fs_filehandle *fsf, uae_s64 offset, int whence) { - if (fsf->fstype == FS_ARCHIVE) - return zfile_lseek_archive (fsf->zf, offset, whence); - else if (fsf->fstype == FS_DIRECTORY) - return my_lseek (fsf->of, offset, whence); - return -1; + if (fsf->fstype == FS_ARCHIVE) + return zfile_lseek_archive (fsf->zf, offset, whence); + else if (fsf->fstype == FS_DIRECTORY) + return my_lseek (fsf->of, offset, whence); + return -1; } static uae_u32 fs_lseek (struct fs_filehandle *fsf, uae_s32 offset, int whence) { - return (uae_u32)fs_lseek64 (fsf, offset, whence); + return (uae_u32)fs_lseek64 (fsf, offset, whence); } static uae_u64 fs_fsize64 (struct fs_filehandle *fsf) { - if (fsf->fstype == FS_ARCHIVE) - return zfile_fsize_archive (fsf->zf); - else if (fsf->fstype == FS_DIRECTORY) - return my_fsize (fsf->of); - return -1; + if (fsf->fstype == FS_ARCHIVE) + return zfile_fsize_archive (fsf->zf); + else if (fsf->fstype == FS_DIRECTORY) + return my_fsize (fsf->of); + return -1; } static uae_u32 fs_fsize (struct fs_filehandle *fsf) { - return (uae_u32)fs_fsize64 (fsf); + return (uae_u32)fs_fsize64 (fsf); } static void set_volume_name (Unit *unit, struct mytimeval *tv) { - int namelen; - int i; - char *s; + int namelen; + int i; + char *s; - s = ua_fs (unit->ui.volname, -1); - namelen = strlen (s); - put_byte (unit->volume + 44, namelen); - for (i = 0; i < namelen; i++) - put_byte (unit->volume + 45 + i, s[i]); - put_byte (unit->volume + 45 + namelen, 0); - if (tv && (tv->tv_sec || tv->tv_usec)) { - int days, mins, ticks; - timeval_to_amiga (tv, &days, &mins, &ticks); - put_long (unit->volume + 16, days); - put_long (unit->volume + 20, mins); - put_long (unit->volume + 24, ticks); - } - xfree (s); - unit->rootnode.aname = unit->ui.volname; - unit->rootnode.nname = unit->ui.rootdir; - unit->rootnode.mountcount = unit->mountcount; + s = ua_fs (unit->ui.volname, -1); + namelen = strlen (s); + put_byte (unit->volume + 44, namelen); + for (i = 0; i < namelen; i++) + put_byte (unit->volume + 45 + i, s[i]); + put_byte (unit->volume + 45 + namelen, 0); + if (tv && (tv->tv_sec || tv->tv_usec)) + { + int days, mins, ticks; + timeval_to_amiga (tv, &days, &mins, &ticks); + put_long (unit->volume + 16, days); + put_long (unit->volume + 20, mins); + put_long (unit->volume + 24, ticks); + } + xfree (s); + unit->rootnode.aname = unit->ui.volname; + unit->rootnode.nname = unit->ui.rootdir; + unit->rootnode.mountcount = unit->mountcount; } static int filesys_isvolume(Unit *unit) { - if (!unit->volume) - return 0; - return get_byte (unit->volume + 44) || unit->ui.unknown_media; + if (!unit->volume) + return 0; + return get_byte (unit->volume + 44) || unit->ui.unknown_media; } static void clear_exkeys(Unit *unit) { - int i; - a_inode *a; - for (i = 0; i < EXKEYS; i++) { - unit->examine_keys[i].aino = 0; - unit->examine_keys[i].curr_file = 0; - unit->examine_keys[i].uniq = 0; - } - for (i = 0; i < EXALLKEYS; i++) { - fs_closedir (unit->exalls[i].dirhandle); - unit->exalls[i].dirhandle = NULL; - xfree (unit->exalls[i].fn); - unit->exalls[i].fn = NULL; - unit->exalls[i].id = 0; - } - unit->exallid = 0; - unit->next_exkey = 1; - a = &unit->rootnode; - while (a) { - a->exnext_count = 0; - if (a->locked_children) { - a->locked_children = 0; - unit->total_locked_ainos--; - } - a = a->next; - if (a == &unit->rootnode) - break; - } + int i; + a_inode *a; + for (i = 0; i < EXKEYS; i++) + { + unit->examine_keys[i].aino = 0; + unit->examine_keys[i].curr_file = 0; + unit->examine_keys[i].uniq = 0; + } + for (i = 0; i < EXALLKEYS; i++) + { + fs_closedir (unit->exalls[i].dirhandle); + unit->exalls[i].dirhandle = NULL; + xfree (unit->exalls[i].fn); + unit->exalls[i].fn = NULL; + unit->exalls[i].id = 0; + } + unit->exallid = 0; + unit->next_exkey = 1; + a = &unit->rootnode; + while (a) + { + a->exnext_count = 0; + if (a->locked_children) + { + a->locked_children = 0; + unit->total_locked_ainos--; + } + a = a->next; + if (a == &unit->rootnode) + break; + } } static void filesys_delayed_change (Unit *u, int frames, const TCHAR *rootdir, const TCHAR *volume, bool readonly, int flags) { - u->reinsertdelay = 50; - u->newflags = flags; - u->newreadonly = readonly; - u->newrootdir = my_strdup (rootdir); - if (volume) - u->newvolume = my_strdup (volume); - filesys_eject(u->unit); - if (!rootdir || _tcslen (rootdir) == 0) - u->reinsertdelay = 0; - if (u->reinsertdelay > 0) - write_log (_T("FILESYS: delayed insert %d: '%s' ('%s')\n"), u->unit, volume ? volume : _T(""), rootdir); + u->reinsertdelay = 50; + u->newflags = flags; + u->newreadonly = readonly; + u->newrootdir = my_strdup (rootdir); + if (volume) + u->newvolume = my_strdup (volume); + filesys_eject(u->unit); + if (!rootdir || _tcslen (rootdir) == 0) + u->reinsertdelay = 0; + if (u->reinsertdelay > 0) + write_log (_T("FILESYS: delayed insert %d: '%s' ('%s')\n"), u->unit, volume ? volume : _T(""), rootdir); } int filesys_eject (int nr) { - UnitInfo *ui = &mountinfo.ui[nr]; - Unit *u = ui->self; + UnitInfo *ui = &mountinfo.ui[nr]; + Unit *u = ui->self; - if (!mountertask || u->mount_changed) - return 0; - if (!ui->open || u == NULL) - return 0; - if (!is_virtual (nr)) - return 0; - if (!filesys_isvolume(u)) - return 0; - u->mount_changed = -1; - u->mountcount++; - write_log (_T("FILESYS: volume '%s' removal request\n"), u->ui.volname); - // -1 = remove, -2 = remove + remove device node - put_byte (u->volume + 172 - 32, -2); - uae_Signal (get_long (u->volume + 176 - 32), 1 << 13); - return 1; + if (!mountertask || u->mount_changed) + return 0; + if (!ui->open || u == NULL) + return 0; + if (!is_virtual (nr)) + return 0; + if (!filesys_isvolume(u)) + return 0; + u->mount_changed = -1; + u->mountcount++; + write_log (_T("FILESYS: volume '%s' removal request\n"), u->ui.volname); + // -1 = remove, -2 = remove + remove device node + put_byte (u->volume + 172 - 32, -2); + uae_Signal (get_long (u->volume + 176 - 32), 1 << 13); + return 1; } static uae_u32 heartbeat; @@ -1256,291 +1347,330 @@ static int heartbeat_task; // This uses filesystem process to reduce resource usage void setsystime (void) { - if (!currprefs.tod_hack) - return; - heartbeat = get_long (rtarea_base + RTAREA_HEARTBEAT); - heartbeat_task = 1; - heartbeat_count = 10; + if (!currprefs.tod_hack) + return; + heartbeat = get_long (rtarea_base + RTAREA_HEARTBEAT); + heartbeat_task = 1; + heartbeat_count = 10; } static void setsystime_vblank (void) { - Unit *u; - for (u = units; u; u = u->next) { - if (is_virtual (u->unit) && filesys_isvolume (u)) { - put_byte (u->volume + 173 - 32, 1); - uae_Signal (get_long (u->volume + 176 - 32), 1 << 13); - break; - } - } + Unit *u; + for (u = units; u; u = u->next) + { + if (is_virtual (u->unit) && filesys_isvolume (u)) + { + put_byte (u->volume + 173 - 32, 1); + uae_Signal (get_long (u->volume + 176 - 32), 1 << 13); + break; + } + } } int filesys_insert (int nr, TCHAR *volume, const TCHAR *rootdir, bool readonly, int flags) { - UnitInfo *ui; - Unit *u; + UnitInfo *ui; + Unit *u; - if (!mountertask) - return 0; + if (!mountertask) + return 0; - write_log (_T("filesys_insert(%d,'%s','%s','%d','%d)\n"), nr, volume ? volume : _T(""), rootdir, readonly, flags); + write_log (_T("filesys_insert(%d,'%s','%s','%d','%d)\n"), nr, volume ? volume : _T(""), rootdir, readonly, flags); - if (nr < 0) { - for (u = units; u; u = u->next) { - if (is_virtual (u->unit)) { - if (!filesys_isvolume (u) && mountinfo.ui[u->unit].canremove) - break; - } - } - if (!u) { - for (u = units; u; u = u->next) { - if (is_virtual (u->unit)) { - if (mountinfo.ui[u->unit].canremove) - break; - } - } - } - if (!u) - return 0; - nr = u->unit; - ui = &mountinfo.ui[nr]; - } else { - ui = &mountinfo.ui[nr]; - u = ui->self; - } + if (nr < 0) + { + for (u = units; u; u = u->next) + { + if (is_virtual (u->unit)) + { + if (!filesys_isvolume (u) && mountinfo.ui[u->unit].canremove) + break; + } + } + if (!u) + { + for (u = units; u; u = u->next) + { + if (is_virtual (u->unit)) + { + if (mountinfo.ui[u->unit].canremove) + break; + } + } + } + if (!u) + return 0; + nr = u->unit; + ui = &mountinfo.ui[nr]; + } + else + { + ui = &mountinfo.ui[nr]; + u = ui->self; + } - if (!ui->open || u == NULL) - return 0; - if (u->reinsertdelay) - return -1; - if (!is_virtual(nr)) - return 0; - if (filesys_isvolume (u)) { - filesys_delayed_change (u, 50, rootdir, volume, readonly, flags); - return -1; - } - u->mountcount++; - u->mount_changed = 1; - u->mount_volume = volume ? my_strdup (volume) : NULL; - u->mount_rootdir = my_strdup (rootdir); - u->mount_readonly = readonly; - u->mount_flags = flags; + if (!ui->open || u == NULL) + return 0; + if (u->reinsertdelay) + return -1; + if (!is_virtual(nr)) + return 0; + if (filesys_isvolume (u)) + { + filesys_delayed_change (u, 50, rootdir, volume, readonly, flags); + return -1; + } + u->mountcount++; + u->mount_changed = 1; + u->mount_volume = volume ? my_strdup (volume) : NULL; + u->mount_rootdir = my_strdup (rootdir); + u->mount_readonly = readonly; + u->mount_flags = flags; - write_log (_T("filesys_insert %d done!\n"), nr); + write_log (_T("filesys_insert %d done!\n"), nr); - put_byte (u->volume + 172 - 32, -3); // wait for insert - uae_Signal (get_long (u->volume + 176 - 32), 1 << 13); + put_byte (u->volume + 172 - 32, -3); // wait for insert + uae_Signal (get_long (u->volume + 176 - 32), 1 << 13); - return 100 + nr; + return 100 + nr; } static uae_u32 filesys_media_change_reply (TrapContext *ctx, int mode) { - int nr; - UnitInfo *ui = NULL; - Unit *u; + int nr; + UnitInfo *ui = NULL; + Unit *u; - for (nr = 0; nr < MAX_FILESYSTEM_UNITS; nr++) { - ui = &mountinfo.ui[nr]; - u = ui->self; - if (u && u->mount_changed) - break; - } - if (nr >= MAX_FILESYSTEM_UNITS) { - write_log (_T("FILESYS: filesys_media_change_reply without mount_changed flag!?\n")); - return 0; - } + for (nr = 0; nr < MAX_FILESYSTEM_UNITS; nr++) + { + ui = &mountinfo.ui[nr]; + u = ui->self; + if (u && u->mount_changed) + break; + } + if (nr >= MAX_FILESYSTEM_UNITS) + { + write_log (_T("FILESYS: filesys_media_change_reply without mount_changed flag!?\n")); + return 0; + } - if (u->mount_changed < 0) { - // eject - if (mode == 0) { - write_log (_T("FILESYS: got media change reply, '%s' removal finished\n"), u->ui.volname); - flush_cache (u, -1); - zfile_fclose_archive (u->zarchive); - u->zarchive = NULL; - u->ui.unknown_media = false; + if (u->mount_changed < 0) + { + // eject + if (mode == 0) + { + write_log (_T("FILESYS: got media change reply, '%s' removal finished\n"), u->ui.volname); + flush_cache (u, -1); + zfile_fclose_archive (u->zarchive); + u->zarchive = NULL; + u->ui.unknown_media = false; #ifdef RETROPLATFORM - if (ui->unit_type == UNIT_CDFS) - rp_cd_image_change (ui->cddevno, NULL); - else - rp_harddrive_image_change (nr, false, NULL); + if (ui->unit_type == UNIT_CDFS) + rp_cd_image_change (ui->cddevno, NULL); + else + rp_harddrive_image_change (nr, false, NULL); #endif - } else { - u->mount_changed = 0; - } - return 1; - } else if (u->mount_changed > 0) { - if (mode == 0) { - // insert - struct mytimeval ctime = { 0 }; - bool emptydrive = false; - struct uaedev_config_info *uci = NULL; - clear_exkeys (u); - xfree (u->ui.rootdir); - ui->rootdir = u->ui.rootdir = my_strdup (u->mount_rootdir); - flush_cache(u, -1); - xfree (u->ui.volname); - ui->volname = u->ui.volname = NULL; - if (set_filesys_volume (u->mount_rootdir, &u->mount_flags, &u->mount_readonly, &emptydrive, &u->zarchive) < 0) - return 0; - if (emptydrive) - return 0; - xfree (u->ui.volname); - ui->volname = u->ui.volname = filesys_createvolname (u->mount_volume, u->mount_rootdir, _T("removable")); -#ifdef RETROPLATFORM - rp_harddrive_image_change (nr, u->mount_readonly, u->mount_rootdir); -#endif - uci = getuci (currprefs.mountconfig, nr); - if (u->ui.unknown_media) { - write_log (_T("FILESYS: inserted unreadable volume NR=%d RO=%d\n"), nr, u->mount_readonly); - } else { - write_log (_T("FILESYS: inserted volume NR=%d RO=%d '%s' ('%s')\n"), nr, u->mount_readonly, ui->volname, u->mount_rootdir); - set_volume_name (u, &ctime); - if (u->mount_flags >= 0) - ui->volflags = u->volflags = u->ui.volflags = u->mount_flags; - if (uci != NULL) { - _tcscpy (uci->volname, ui->volname); - _tcscpy (uci->rootdir, u->mount_rootdir); } - if (u->mount_flags >= 0) { - ui->readonly = u->ui.readonly = u->mount_readonly; - if (uci != NULL) - uci->readonly = u->mount_readonly; - } - put_byte (u->volume + 44, 0); - put_byte (u->volume + 172 - 32, 1); - } - - xfree (u->mount_volume); - xfree (u->mount_rootdir); - u->mount_rootdir = NULL; - u->mount_volume = NULL; - } else { - u->mount_changed = 0; - } - - return 1; + else + { + u->mount_changed = 0; + } + return 1; + } + else if (u->mount_changed > 0) + { + if (mode == 0) + { + // insert + struct mytimeval ctime = { 0 }; + bool emptydrive = false; + struct uaedev_config_info *uci = NULL; + clear_exkeys (u); + xfree (u->ui.rootdir); + ui->rootdir = u->ui.rootdir = my_strdup (u->mount_rootdir); + flush_cache(u, -1); + xfree (u->ui.volname); + ui->volname = u->ui.volname = NULL; + if (set_filesys_volume (u->mount_rootdir, &u->mount_flags, &u->mount_readonly, &emptydrive, &u->zarchive) < 0) + return 0; + if (emptydrive) + return 0; + xfree (u->ui.volname); + ui->volname = u->ui.volname = filesys_createvolname (u->mount_volume, u->mount_rootdir, _T("removable")); +#ifdef RETROPLATFORM + rp_harddrive_image_change (nr, u->mount_readonly, u->mount_rootdir); +#endif + uci = getuci (currprefs.mountconfig, nr); + if (u->ui.unknown_media) + { + write_log (_T("FILESYS: inserted unreadable volume NR=%d RO=%d\n"), nr, u->mount_readonly); + } + else + { + write_log (_T("FILESYS: inserted volume NR=%d RO=%d '%s' ('%s')\n"), nr, u->mount_readonly, ui->volname, u->mount_rootdir); + set_volume_name (u, &ctime); + if (u->mount_flags >= 0) + ui->volflags = u->volflags = u->ui.volflags = u->mount_flags; + if (uci != NULL) + { + _tcscpy (uci->volname, ui->volname); + _tcscpy (uci->rootdir, u->mount_rootdir); + } + if (u->mount_flags >= 0) + { + ui->readonly = u->ui.readonly = u->mount_readonly; + if (uci != NULL) + uci->readonly = u->mount_readonly; + } + put_byte (u->volume + 44, 0); + put_byte (u->volume + 172 - 32, 1); + } - } - return 0; + xfree (u->mount_volume); + xfree (u->mount_rootdir); + u->mount_rootdir = NULL; + u->mount_volume = NULL; + } + else + { + u->mount_changed = 0; + } + + return 1; + + } + return 0; } int filesys_media_change (const TCHAR *rootdir, int inserted, struct uaedev_config_info *uci) { - Unit *u; - UnitInfo *ui; - int nr = -1; - TCHAR volname[MAX_DPATH], *volptr; - TCHAR devname[MAX_DPATH]; + Unit *u; + UnitInfo *ui; + int nr = -1; + TCHAR volname[MAX_DPATH], *volptr; + TCHAR devname[MAX_DPATH]; - if (!mountertask) - return 0; - if (automountunit >= 0) - return -1; + if (!mountertask) + return 0; + if (automountunit >= 0) + return -1; - write_log (_T("filesys_media_change('%s',%d,%p)\n"), rootdir, inserted, uci); + write_log (_T("filesys_media_change('%s',%d,%p)\n"), rootdir, inserted, uci); - nr = -1; - for (u = units; u; u = u->next) { - if (is_virtual (u->unit)) { - ui = &mountinfo.ui[u->unit]; - if (ui->rootdir && !memcmp (ui->rootdir, rootdir, _tcslen (rootdir)) && _tcslen (rootdir) + 3 >= _tcslen (ui->rootdir)) { - if (filesys_isvolume (u) && inserted) { - if (uci) - filesys_delayed_change (u, 50, rootdir, uci->volname, uci->readonly, 0); - return 0; - } - nr = u->unit; - break; - } - } - } - ui = NULL; - if (nr >= 0) - ui = &mountinfo.ui[nr]; - /* only configured drives have automount support if automount is disabled */ - if ((!ui || !ui->configureddrive) && (inserted == 0 || inserted == 1)) + nr = -1; + for (u = units; u; u = u->next) + { + if (is_virtual (u->unit)) + { + ui = &mountinfo.ui[u->unit]; + if (ui->rootdir && !memcmp (ui->rootdir, rootdir, _tcslen (rootdir)) && _tcslen (rootdir) + 3 >= _tcslen (ui->rootdir)) + { + if (filesys_isvolume (u) && inserted) + { + if (uci) + filesys_delayed_change (u, 50, rootdir, uci->volname, uci->readonly, 0); + return 0; + } + nr = u->unit; + break; + } + } + } + ui = NULL; + if (nr >= 0) + ui = &mountinfo.ui[nr]; + /* only configured drives have automount support if automount is disabled */ + if ((!ui || !ui->configureddrive) && (inserted == 0 || inserted == 1)) + return 0; + if (nr < 0 && !inserted) + return 0; + /* already mounted volume was ejected? */ + if (nr >= 0 && !inserted) + return filesys_eject (nr); + if (inserted) + { + if (uci) + { + volptr = my_strdup (uci->volname); + } + else + { + volname[0] = 0; + target_get_volume_name (&mountinfo, rootdir, volname, MAX_DPATH, 1, 0); + volptr = volname; + if (!volname[0]) + volptr = NULL; + if (ui && ui->configureddrive && ui->volname) + { + volptr = volname; + _tcscpy (volptr, ui->volname); + } + } + if (!volptr) + { + volptr = filesys_createvolname (NULL, rootdir, _T("removable")); + _tcscpy (volname, volptr); + xfree (volptr); + volptr = volname; + } + + /* new volume inserted and it was previously mounted? */ + if (nr >= 0) + { + if (!filesys_isvolume (u)) /* not going to mount twice */ + return filesys_insert (nr, volptr, rootdir, false, -1); + return 0; + } + if (inserted < 0) /* -1 = only mount if already exists */ + return 0; + /* new volume inserted and it was not previously mounted? + * perhaps we have some empty device slots? */ + nr = filesys_insert (-1, volptr, rootdir, 0, 0); + if (nr >= 100) + { + if (uci) + uci->configoffset = nr - 100; + return nr; + } + /* nope, uh, need black magic now.. */ + if (uci) + _tcscpy (devname, uci->devname); + else + _stprintf (devname, _T("RDH%d"), nr_units()); + nr = add_filesys_unit (devname, volptr, rootdir, 0, 0, 0, 0, 0, 0, 0, 0, 1, NULL, 0, MYVOLUMEINFO_REUSABLE); + if (nr < 0) + return 0; + if (inserted > 1) + mountinfo.ui[nr].canremove = 1; + automountunit = nr; + uae_Signal (mountertask, 1 << 13); + /* poof */ + if (uci) + uci->configoffset = nr; + return 100 + nr; + } return 0; - if (nr < 0 && !inserted) - return 0; - /* already mounted volume was ejected? */ - if (nr >= 0 && !inserted) - return filesys_eject (nr); - if (inserted) { - if (uci) { - volptr = my_strdup (uci->volname); - } else { - volname[0] = 0; - target_get_volume_name (&mountinfo, rootdir, volname, MAX_DPATH, 1, 0); - volptr = volname; - if (!volname[0]) - volptr = NULL; - if (ui && ui->configureddrive && ui->volname) { - volptr = volname; - _tcscpy (volptr, ui->volname); - } - } - if (!volptr) { - volptr = filesys_createvolname (NULL, rootdir, _T("removable")); - _tcscpy (volname, volptr); - xfree (volptr); - volptr = volname; - } - - /* new volume inserted and it was previously mounted? */ - if (nr >= 0) { - if (!filesys_isvolume (u)) /* not going to mount twice */ - return filesys_insert (nr, volptr, rootdir, false, -1); - return 0; - } - if (inserted < 0) /* -1 = only mount if already exists */ - return 0; - /* new volume inserted and it was not previously mounted? - * perhaps we have some empty device slots? */ - nr = filesys_insert (-1, volptr, rootdir, 0, 0); - if (nr >= 100) { - if (uci) - uci->configoffset = nr - 100; - return nr; - } - /* nope, uh, need black magic now.. */ - if (uci) - _tcscpy (devname, uci->devname); - else - _stprintf (devname, _T("RDH%d"), nr_units()); - nr = add_filesys_unit (devname, volptr, rootdir, 0, 0, 0, 0, 0, 0, 0, 0, 1, NULL, 0, MYVOLUMEINFO_REUSABLE); - if (nr < 0) - return 0; - if (inserted > 1) - mountinfo.ui[nr].canremove = 1; - automountunit = nr; - uae_Signal (mountertask, 1 << 13); - /* poof */ - if (uci) - uci->configoffset = nr; - return 100 + nr; - } - return 0; } int hardfile_remount (int nr) { - /* this does work but every media reinsert duplicates the device.. */ + /* this does work but every media reinsert duplicates the device.. */ #if 0 - if (!mountertask) - return 0; - automountunit = nr; - uae_Signal (mountertask, 1 << 13); + if (!mountertask) + return 0; + automountunit = nr; + uae_Signal (mountertask, 1 << 13); #endif - return 1; + return 1; } /* flags and comments supported? */ static int fsdb_cando (Unit *unit) { - if (unit->volflags & MYVOLUMEINFO_ARCHIVE) - return 1; - return 1; + if (unit->volflags & MYVOLUMEINFO_ARCHIVE) + return 1; + return 1; } static void prepare_for_open (TCHAR *name) @@ -1549,130 +1679,141 @@ static void prepare_for_open (TCHAR *name) static void de_recycle_aino (Unit *unit, a_inode *aino) { - aino_test (aino); - if (aino->next == 0 || aino == &unit->rootnode) - return; - aino->next->prev = aino->prev; - aino->prev->next = aino->next; - aino->next = aino->prev = 0; - unit->aino_cache_size--; + aino_test (aino); + if (aino->next == 0 || aino == &unit->rootnode) + return; + aino->next->prev = aino->prev; + aino->prev->next = aino->next; + aino->next = aino->prev = 0; + unit->aino_cache_size--; } static void dispose_aino (Unit *unit, a_inode **aip, a_inode *aino) { - int hash = aino->uniq % MAX_AINO_HASH; - if (unit->aino_hash[hash] == aino) - unit->aino_hash[hash] = 0; + int hash = aino->uniq % MAX_AINO_HASH; + if (unit->aino_hash[hash] == aino) + unit->aino_hash[hash] = 0; - if (aino->dirty && aino->parent) - fsdb_dir_writeback (aino->parent); + if (aino->dirty && aino->parent) + fsdb_dir_writeback (aino->parent); - *aip = aino->sibling; - xfree (aino->aname); - xfree (aino->comment); - xfree (aino->nname); - xfree (aino); + *aip = aino->sibling; + xfree (aino->aname); + xfree (aino->comment); + xfree (aino->nname); + xfree (aino); } static void free_all_ainos (Unit *u, a_inode *parent) { - a_inode *a; - while ((a = parent->child)) { - free_all_ainos (u, a); - dispose_aino (u, &parent->child, a); - } + a_inode *a; + while ((a = parent->child)) + { + free_all_ainos (u, a); + dispose_aino (u, &parent->child, a); + } } static int flush_cache(Unit *unit, int num) { - int i = 0; - int cnt = 100; + int i = 0; + int cnt = 100; - //write_log (_T("FILESYS: flushing cache unit %d (max %d items)\n"), unit->unit, num); - if (num == 0) - num = -1; - while (i < num || num < 0) { - int ii = i; - a_inode *parent = unit->rootnode.prev->parent; - a_inode **aip; + //write_log (_T("FILESYS: flushing cache unit %d (max %d items)\n"), unit->unit, num); + if (num == 0) + num = -1; + while (i < num || num < 0) + { + int ii = i; + a_inode *parent = unit->rootnode.prev->parent; + a_inode **aip; - aip = &parent->child; - aino_test (parent); - if (parent && !parent->locked_children) { - for (;;) { - a_inode *aino = *aip; - aino_test (aino); - if (aino == 0) - break; - /* Not recyclable if next == 0 (i.e., not chained into - recyclable list), or if parent directory is being - ExNext()ed. */ - if (aino->next == 0) { - aip = &aino->sibling; - } else { - if (aino->shlock > 0 || aino->elock) - write_log (_T("panic: freeing locked a_inode!\n")); - de_recycle_aino (unit, aino); - dispose_aino (unit, aip, aino); - i++; - } - } - } - { //if (unit->rootnode.next != unit->rootnode.prev) { - /* In the previous loop, we went through all children of one - parent. Re-arrange the recycled list so that we'll find a - different parent the next time around. - (infinite loop if there is only one parent?) - */ - int maxloop = 10000; - do { - unit->rootnode.next->prev = unit->rootnode.prev; - unit->rootnode.prev->next = unit->rootnode.next; - unit->rootnode.next = unit->rootnode.prev; - unit->rootnode.prev = unit->rootnode.prev->prev; - unit->rootnode.prev->next = unit->rootnode.next->prev = &unit->rootnode; - } while (unit->rootnode.prev->parent == parent && maxloop-- > 0); - } - if (i == ii) - cnt--; - if (cnt <= 0) - break; - } - return unit->aino_cache_size > 0 ? 0 : 1; + aip = &parent->child; + aino_test (parent); + if (parent && !parent->locked_children) + { + for (;;) + { + a_inode *aino = *aip; + aino_test (aino); + if (aino == 0) + break; + /* Not recyclable if next == 0 (i.e., not chained into + recyclable list), or if parent directory is being + ExNext()ed. */ + if (aino->next == 0) + { + aip = &aino->sibling; + } + else + { + if (aino->shlock > 0 || aino->elock) + write_log (_T("panic: freeing locked a_inode!\n")); + de_recycle_aino (unit, aino); + dispose_aino (unit, aip, aino); + i++; + } + } + } + { + //if (unit->rootnode.next != unit->rootnode.prev) { + /* In the previous loop, we went through all children of one + parent. Re-arrange the recycled list so that we'll find a + different parent the next time around. + (infinite loop if there is only one parent?) + */ + int maxloop = 10000; + do + { + unit->rootnode.next->prev = unit->rootnode.prev; + unit->rootnode.prev->next = unit->rootnode.next; + unit->rootnode.next = unit->rootnode.prev; + unit->rootnode.prev = unit->rootnode.prev->prev; + unit->rootnode.prev->next = unit->rootnode.next->prev = &unit->rootnode; + } + while (unit->rootnode.prev->parent == parent && maxloop-- > 0); + } + if (i == ii) + cnt--; + if (cnt <= 0) + break; + } + return unit->aino_cache_size > 0 ? 0 : 1; } static void recycle_aino (Unit *unit, a_inode *new_aino) { - aino_test (new_aino); - if (new_aino->dir || new_aino->shlock > 0 - || new_aino->elock || new_aino == &unit->rootnode) - /* Still in use */ - return; + aino_test (new_aino); + if (new_aino->dir || new_aino->shlock > 0 + || new_aino->elock || new_aino == &unit->rootnode) + /* Still in use */ + return; - TRACE3((_T("Recycling; cache size %d, total_locked %d\n"), - unit->aino_cache_size, unit->total_locked_ainos)); - if (unit->aino_cache_size > 5000 + unit->total_locked_ainos) { - /* Reap a few. */ - flush_cache (unit, 50); + TRACE3((_T("Recycling; cache size %d, total_locked %d\n"), + unit->aino_cache_size, unit->total_locked_ainos)); + if (unit->aino_cache_size > 5000 + unit->total_locked_ainos) + { + /* Reap a few. */ + flush_cache (unit, 50); #if 0 - { - TCHAR buffer[40]; - _stprintf (buffer, "%d ainos reaped.\n", i); - TRACE ((buffer)); - } + { + TCHAR buffer[40]; + _stprintf (buffer, "%d ainos reaped.\n", i); + TRACE ((buffer)); + } #endif - } + } - aino_test (new_aino); - /* Chain it into circular list. */ - new_aino->next = unit->rootnode.next; - new_aino->prev = &unit->rootnode; - new_aino->prev->next = new_aino; - new_aino->next->prev = new_aino; - aino_test (new_aino->next); - aino_test (new_aino->prev); + aino_test (new_aino); + /* Chain it into circular list. */ + new_aino->next = unit->rootnode.next; + new_aino->prev = &unit->rootnode; + new_aino->prev->next = new_aino; + new_aino->next->prev = new_aino; + aino_test (new_aino->next); + aino_test (new_aino->prev); - unit->aino_cache_size++; + unit->aino_cache_size++; } void filesys_flush_cache (void) @@ -1681,239 +1822,257 @@ void filesys_flush_cache (void) static void update_child_names (Unit *unit, a_inode *a, a_inode *parent) { - int l0 = _tcslen (parent->nname) + 2; + int l0 = _tcslen (parent->nname) + 2; - while (a != 0) { - TCHAR *name_start; - TCHAR *new_name; - TCHAR dirsep[2] = { FSDB_DIR_SEPARATOR, '\0' }; - - a->parent = parent; - name_start = _tcsrchr (a->nname, FSDB_DIR_SEPARATOR); - if (name_start == 0) { - write_log (_T("malformed file name")); - } - name_start++; - new_name = xmalloc (TCHAR, _tcslen (name_start) + l0); - _tcscpy (new_name, parent->nname); - _tcscat (new_name, dirsep); - _tcscat (new_name, name_start); - xfree (a->nname); - a->nname = new_name; - if (a->child) - update_child_names (unit, a->child, a); - a = a->sibling; - } + while (a != 0) + { + TCHAR *name_start; + TCHAR *new_name; + TCHAR dirsep[2] = { FSDB_DIR_SEPARATOR, '\0' }; + + a->parent = parent; + name_start = _tcsrchr (a->nname, FSDB_DIR_SEPARATOR); + if (name_start == 0) + { + write_log (_T("malformed file name")); + } + name_start++; + new_name = xmalloc (TCHAR, _tcslen (name_start) + l0); + _tcscpy (new_name, parent->nname); + _tcscat (new_name, dirsep); + _tcscat (new_name, name_start); + xfree (a->nname); + a->nname = new_name; + if (a->child) + update_child_names (unit, a->child, a); + a = a->sibling; + } } static void move_aino_children (Unit *unit, a_inode *from, a_inode *to) { - aino_test (from); - aino_test (to); - to->child = from->child; - from->child = 0; - update_child_names (unit, to->child, to); + aino_test (from); + aino_test (to); + to->child = from->child; + from->child = 0; + update_child_names (unit, to->child, to); } static void delete_aino (Unit *unit, a_inode *aino) { - a_inode **aip; + a_inode **aip; - TRACE((_T("deleting aino %x\n"), aino->uniq)); + TRACE((_T("deleting aino %x\n"), aino->uniq)); - aino_test (aino); - aino->dirty = 1; - aino->deleted = 1; - de_recycle_aino (unit, aino); + aino_test (aino); + aino->dirty = 1; + aino->deleted = 1; + de_recycle_aino (unit, aino); - /* If any ExKeys are currently pointing at us, advance them. */ - if (aino->parent->exnext_count > 0) { - int i; - TRACE((_T("entering exkey validation\n"))); - for (i = 0; i < EXKEYS; i++) { - ExamineKey *k = unit->examine_keys + i; - if (k->uniq == 0) - continue; - if (k->aino == aino->parent) { - TRACE((_T("Same parent found for %d\n"), i)); - if (k->curr_file == aino) { - k->curr_file = aino->sibling; - TRACE((_T("Advancing curr_file\n"))); - } - } - } - } + /* If any ExKeys are currently pointing at us, advance them. */ + if (aino->parent->exnext_count > 0) + { + int i; + TRACE((_T("entering exkey validation\n"))); + for (i = 0; i < EXKEYS; i++) + { + ExamineKey *k = unit->examine_keys + i; + if (k->uniq == 0) + continue; + if (k->aino == aino->parent) + { + TRACE((_T("Same parent found for %d\n"), i)); + if (k->curr_file == aino) + { + k->curr_file = aino->sibling; + TRACE((_T("Advancing curr_file\n"))); + } + } + } + } - aip = &aino->parent->child; - while (*aip != aino && *aip != 0) - aip = &(*aip)->sibling; - if (*aip != aino) { - write_log (_T("Couldn't delete aino.\n")); - return; - } - dispose_aino (unit, aip, aino); + aip = &aino->parent->child; + while (*aip != aino && *aip != 0) + aip = &(*aip)->sibling; + if (*aip != aino) + { + write_log (_T("Couldn't delete aino.\n")); + return; + } + dispose_aino (unit, aip, aino); } static a_inode *lookup_sub (a_inode *dir, uae_u32 uniq) { - a_inode **cp = &dir->child; - a_inode *c, *retval; + a_inode **cp = &dir->child; + a_inode *c, *retval; - for (;;) { - c = *cp; - if (c == 0) - return 0; + for (;;) + { + c = *cp; + if (c == 0) + return 0; - if (c->uniq == uniq) { - retval = c; - break; - } - if (c->dir) { - a_inode *a = lookup_sub (c, uniq); - if (a != 0) { - retval = a; - break; - } - } - cp = &c->sibling; - } - if (! dir->locked_children) { - /* Move to the front to speed up repeated lookups. Don't do this if - an ExNext is going on in this directory, or we'll terminally - confuse it. */ - *cp = c->sibling; - c->sibling = dir->child; - dir->child = c; - } - return retval; + if (c->uniq == uniq) + { + retval = c; + break; + } + if (c->dir) + { + a_inode *a = lookup_sub (c, uniq); + if (a != 0) + { + retval = a; + break; + } + } + cp = &c->sibling; + } + if (! dir->locked_children) + { + /* Move to the front to speed up repeated lookups. Don't do this if + an ExNext is going on in this directory, or we'll terminally + confuse it. */ + *cp = c->sibling; + c->sibling = dir->child; + dir->child = c; + } + return retval; } static a_inode *lookup_aino (Unit *unit, uae_u32 uniq) { - a_inode *a; - int hash = uniq % MAX_AINO_HASH; + a_inode *a; + int hash = uniq % MAX_AINO_HASH; - if (uniq == 0) - return &unit->rootnode; - a = unit->aino_hash[hash]; - if (a == 0 || a->uniq != uniq) - a = lookup_sub (&unit->rootnode, uniq); - else - unit->nr_cache_hits++; - unit->nr_cache_lookups++; - unit->aino_hash[hash] = a; - aino_test (a); - return a; + if (uniq == 0) + return &unit->rootnode; + a = unit->aino_hash[hash]; + if (a == 0 || a->uniq != uniq) + a = lookup_sub (&unit->rootnode, uniq); + else + unit->nr_cache_hits++; + unit->nr_cache_lookups++; + unit->aino_hash[hash] = a; + aino_test (a); + return a; } TCHAR *build_nname (const TCHAR *d, const TCHAR *n) { - TCHAR dsep[2] = { FSDB_DIR_SEPARATOR, 0 }; - TCHAR *p = xmalloc (TCHAR, _tcslen (d) + 1 + _tcslen (n) + 1); - _tcscpy (p, d); - _tcscat (p, dsep); - _tcscat (p, n); - return p; + TCHAR dsep[2] = { FSDB_DIR_SEPARATOR, 0 }; + TCHAR *p = xmalloc (TCHAR, _tcslen (d) + 1 + _tcslen (n) + 1); + _tcscpy (p, d); + _tcscat (p, dsep); + _tcscat (p, n); + return p; } TCHAR *build_aname (const TCHAR *d, const TCHAR *n) { - TCHAR *p = xmalloc (TCHAR, _tcslen (d) + 1 + _tcslen (n) + 1); - _tcscpy (p, d); - _tcscat (p, _T("/")); - _tcscat (p, n); - return p; + TCHAR *p = xmalloc (TCHAR, _tcslen (d) + 1 + _tcslen (n) + 1); + _tcscpy (p, d); + _tcscat (p, _T("/")); + _tcscat (p, n); + return p; } /* This gets called to translate an Amiga name that some program used to * a name that we can use on the native filesystem. */ static TCHAR *get_nname (Unit *unit, a_inode *base, TCHAR *rel, TCHAR **modified_rel, uae_u64 *uniq_ext) { - TCHAR *found; - TCHAR *p = 0; + TCHAR *found; + TCHAR *p = 0; - *modified_rel = 0; - - if (unit->volflags & MYVOLUMEINFO_ARCHIVE) { - if (zfile_exists_archive(base->nname, rel)) - return build_nname(base->nname, rel); - return NULL; - } + *modified_rel = 0; - aino_test (base); + if (unit->volflags & MYVOLUMEINFO_ARCHIVE) + { + if (zfile_exists_archive(base->nname, rel)) + return build_nname(base->nname, rel); + return NULL; + } - /* If we have a mapping of some other aname to "rel", we must pretend - * it does not exist. - * This can happen for example if an Amiga program creates a - * file called ".". We can't represent this in our filesystem, - * so we create a special file "uae_xxx" and record the mapping - * aname "." -> nname "uae_xxx" in the database. Then, the Amiga - * program looks up "uae_xxx" (yes, it's contrived). The filesystem - * should not make the uae_xxx file visible to the Amiga side. */ - if (fsdb_used_as_nname (base, rel)) - return 0; - /* A file called "." (or whatever else is invalid on this filesystem) - * does not exist, as far as the Amiga side is concerned. */ - if (fsdb_name_invalid_dir (rel)) - return 0; + aino_test (base); - /* See if we have a file that has the same name as the aname we are - * looking for. */ - found = fsdb_search_dir (base->nname, rel); - if (found == 0) - return found; - if (found == rel) - return build_nname (base->nname, rel); + /* If we have a mapping of some other aname to "rel", we must pretend + * it does not exist. + * This can happen for example if an Amiga program creates a + * file called ".". We can't represent this in our filesystem, + * so we create a special file "uae_xxx" and record the mapping + * aname "." -> nname "uae_xxx" in the database. Then, the Amiga + * program looks up "uae_xxx" (yes, it's contrived). The filesystem + * should not make the uae_xxx file visible to the Amiga side. */ + if (fsdb_used_as_nname (base, rel)) + return 0; + /* A file called "." (or whatever else is invalid on this filesystem) + * does not exist, as far as the Amiga side is concerned. */ + if (fsdb_name_invalid_dir (rel)) + return 0; - *modified_rel = found; - return build_nname (base->nname, found); + /* See if we have a file that has the same name as the aname we are + * looking for. */ + found = fsdb_search_dir (base->nname, rel); + if (found == 0) + return found; + if (found == rel) + return build_nname (base->nname, rel); + + *modified_rel = found; + return build_nname (base->nname, found); } static TCHAR *create_nname (Unit *unit, a_inode *base, TCHAR *rel) { - TCHAR *p; + TCHAR *p; - aino_test (base); - /* We are trying to create a file called REL. */ - - /* If the name is used otherwise in the directory (or globally), we - * need a new unique nname. */ - if (fsdb_name_invalid (rel) || fsdb_used_as_nname (base, rel)) { + aino_test (base); + /* We are trying to create a file called REL. */ + + /* If the name is used otherwise in the directory (or globally), we + * need a new unique nname. */ + if (fsdb_name_invalid (rel) || fsdb_used_as_nname (base, rel)) + { #if 0 oh_dear: #endif - p = fsdb_create_unique_nname (base, rel); - return p; - } - p = build_nname (base->nname, rel); + p = fsdb_create_unique_nname (base, rel); + return p; + } + p = build_nname (base->nname, rel); #if 0 - /* Delete this code once we know everything works. */ - if (access (p, R_OK) >= 0 || errno != ENOENT) { - write_log (_T("Filesystem in trouble... please report.\n")); - xfree (p); - goto oh_dear; - } + /* Delete this code once we know everything works. */ + if (access (p, R_OK) >= 0 || errno != ENOENT) + { + write_log (_T("Filesystem in trouble... please report.\n")); + xfree (p); + goto oh_dear; + } #endif - return p; + return p; } static int fill_file_attrs(Unit *u, a_inode *base, a_inode *c) { - if (u->volflags & MYVOLUMEINFO_ARCHIVE) { - int isdir, flags; - TCHAR *comment; - zfile_fill_file_attrs_archive(c->nname, &isdir, &flags, &comment); - c->dir = isdir; - c->amigaos_mode = 0; - if (flags >= 0) - c->amigaos_mode = flags; - c->comment = comment; - return 1; - } else { - return fsdb_fill_file_attrs (base, c); - } - return 0; + if (u->volflags & MYVOLUMEINFO_ARCHIVE) + { + int isdir, flags; + TCHAR *comment; + zfile_fill_file_attrs_archive(c->nname, &isdir, &flags, &comment); + c->dir = isdir; + c->amigaos_mode = 0; + if (flags >= 0) + c->amigaos_mode = flags; + c->comment = comment; + return 1; + } + else + { + return fsdb_fill_file_attrs (base, c); + } + return 0; } /* @@ -1929,361 +2088,384 @@ static int fill_file_attrs(Unit *u, a_inode *base, a_inode *c) */ static TCHAR *get_aname (Unit *unit, a_inode *base, TCHAR *rel) { - return my_strdup (rel); + return my_strdup (rel); } static void init_child_aino_tree(Unit *unit, a_inode *base, a_inode *aino) { - /* Update tree structure */ - aino->parent = base; - aino->child = 0; - aino->sibling = base->child; - base->child = aino; - aino->next = aino->prev = 0; - aino->volflags = unit->volflags; + /* Update tree structure */ + aino->parent = base; + aino->child = 0; + aino->sibling = base->child; + base->child = aino; + aino->next = aino->prev = 0; + aino->volflags = unit->volflags; } static void init_child_aino (Unit *unit, a_inode *base, a_inode *aino) { - aino->uniq = ++a_uniq; - if (a_uniq == 0xFFFFFFFF) { - write_log (_T("Running out of a_inodes (prepare for big trouble)!\n")); - } - aino->shlock = 0; - aino->elock = 0; + aino->uniq = ++a_uniq; + if (a_uniq == 0xFFFFFFFF) + { + write_log (_T("Running out of a_inodes (prepare for big trouble)!\n")); + } + aino->shlock = 0; + aino->elock = 0; - aino->dirty = 0; - aino->deleted = 0; - aino->mountcount = unit->mountcount; + aino->dirty = 0; + aino->deleted = 0; + aino->mountcount = unit->mountcount; - /* For directories - this one isn't being ExNext()ed yet. */ - aino->locked_children = 0; - aino->exnext_count = 0; - /* But the parent might be. */ - if (base->exnext_count) { - unit->total_locked_ainos++; - base->locked_children++; - } - init_child_aino_tree(unit, base, aino); + /* For directories - this one isn't being ExNext()ed yet. */ + aino->locked_children = 0; + aino->exnext_count = 0; + /* But the parent might be. */ + if (base->exnext_count) + { + unit->total_locked_ainos++; + base->locked_children++; + } + init_child_aino_tree(unit, base, aino); - aino_test_init (aino); - aino_test (aino); + aino_test_init (aino); + aino_test (aino); } static a_inode *new_child_aino (Unit *unit, a_inode *base, TCHAR *rel) { - TCHAR *modified_rel; - TCHAR *nn; - a_inode *aino = NULL; - int isvirtual = unit->volflags & MYVOLUMEINFO_ARCHIVE; + TCHAR *modified_rel; + TCHAR *nn; + a_inode *aino = NULL; + int isvirtual = unit->volflags & MYVOLUMEINFO_ARCHIVE; - TRACE((_T("new_child_aino %s, %s\n"), base->aname, rel)); + TRACE((_T("new_child_aino %s, %s\n"), base->aname, rel)); - if (!isvirtual) - aino = fsdb_lookup_aino_aname (base, rel); - if (aino == 0) { - uae_u64 uniq_ext = 0; - nn = get_nname (unit, base, rel, &modified_rel, &uniq_ext); - if (nn == 0) - return 0; + if (!isvirtual) + aino = fsdb_lookup_aino_aname (base, rel); + if (aino == 0) + { + uae_u64 uniq_ext = 0; + nn = get_nname (unit, base, rel, &modified_rel, &uniq_ext); + if (nn == 0) + return 0; - aino = xcalloc (a_inode, 1); - if (aino == 0) - return 0; - aino->uniq_external = uniq_ext; - aino->aname = modified_rel ? modified_rel : my_strdup (rel); - aino->nname = nn; + aino = xcalloc (a_inode, 1); + if (aino == 0) + return 0; + aino->uniq_external = uniq_ext; + aino->aname = modified_rel ? modified_rel : my_strdup (rel); + aino->nname = nn; - aino->comment = 0; - aino->has_dbentry = 0; + aino->comment = 0; + aino->has_dbentry = 0; - if (!fill_file_attrs (unit, base, aino)) { - xfree (aino); - return 0; - } - if (aino->dir && !isvirtual) - fsdb_clean_dir (aino); - } - init_child_aino (unit, base, aino); + if (!fill_file_attrs (unit, base, aino)) + { + xfree (aino); + return 0; + } + if (aino->dir && !isvirtual) + fsdb_clean_dir (aino); + } + init_child_aino (unit, base, aino); - recycle_aino (unit, aino); - TRACE((_T("created aino %x, lookup, amigaos_mode %d\n"), aino->uniq, aino->amigaos_mode)); - return aino; + recycle_aino (unit, aino); + TRACE((_T("created aino %x, lookup, amigaos_mode %d\n"), aino->uniq, aino->amigaos_mode)); + return aino; } static a_inode *create_child_aino (Unit *unit, a_inode *base, TCHAR *rel, int isdir) { - a_inode *aino = xcalloc (a_inode, 1); - if (aino == 0) - return 0; + a_inode *aino = xcalloc (a_inode, 1); + if (aino == 0) + return 0; - aino->nname = create_nname (unit, base, rel); - if (!aino->nname) { - free (aino); - return 0; - } - aino->aname = my_strdup (rel); + aino->nname = create_nname (unit, base, rel); + if (!aino->nname) + { + free (aino); + return 0; + } + aino->aname = my_strdup (rel); - init_child_aino (unit, base, aino); - aino->amigaos_mode = 0; - aino->dir = isdir; + init_child_aino (unit, base, aino); + aino->amigaos_mode = 0; + aino->dir = isdir; - aino->comment = 0; - aino->has_dbentry = 0; - aino->dirty = 1; + aino->comment = 0; + aino->has_dbentry = 0; + aino->dirty = 1; - recycle_aino (unit, aino); - TRACE((_T("created aino %x, create\n"), aino->uniq)); - return aino; + recycle_aino (unit, aino); + TRACE((_T("created aino %x, create\n"), aino->uniq)); + return aino; } static a_inode *lookup_child_aino (Unit *unit, a_inode *base, TCHAR *rel, int *err) { - a_inode *c = base->child; - int l0 = _tcslen (rel); + a_inode *c = base->child; + int l0 = _tcslen (rel); - aino_test (base); - aino_test (c); + aino_test (base); + aino_test (c); - if (base->dir == 0) { - *err = ERROR_OBJECT_WRONG_TYPE; - return 0; - } - - while (c != 0) { - int l1 = _tcslen (c->aname); - if (l0 <= l1 && same_aname (rel, c->aname + l1 - l0) - && (l0 == l1 || c->aname[l1-l0-1] == '/') && c->mountcount == unit->mountcount) - break; - c = c->sibling; - } - if (c != 0) + if (base->dir == 0) + { + *err = ERROR_OBJECT_WRONG_TYPE; + return 0; + } + + while (c != 0) + { + int l1 = _tcslen (c->aname); + if (l0 <= l1 && same_aname (rel, c->aname + l1 - l0) + && (l0 == l1 || c->aname[l1-l0-1] == '/') && c->mountcount == unit->mountcount) + break; + c = c->sibling; + } + if (c != 0) + return c; + c = new_child_aino (unit, base, rel); + if (c == 0) + *err = ERROR_OBJECT_NOT_AROUND; return c; - c = new_child_aino (unit, base, rel); - if (c == 0) - *err = ERROR_OBJECT_NOT_AROUND; - return c; } /* Different version because for this one, REL is an nname. */ static a_inode *lookup_child_aino_for_exnext (Unit *unit, a_inode *base, TCHAR *rel, uae_u32 *err, uae_u64 uniq_external) { - a_inode *c = base->child; - int l0 = _tcslen (rel); - int isvirtual = unit->volflags & MYVOLUMEINFO_ARCHIVE; + a_inode *c = base->child; + int l0 = _tcslen (rel); + int isvirtual = unit->volflags & MYVOLUMEINFO_ARCHIVE; - aino_test (base); - aino_test (c); + aino_test (base); + aino_test (c); - *err = 0; - while (c != 0) { - int l1 = _tcslen (c->nname); - /* Note: using _tcscmp here. */ - if (l0 <= l1 && _tcscmp (rel, c->nname + l1 - l0) == 0 - && (l0 == l1 || c->nname[l1-l0-1] == FSDB_DIR_SEPARATOR) && c->mountcount == unit->mountcount) - break; - c = c->sibling; - } - if (c != 0) - return c; - if (!isvirtual) - c = fsdb_lookup_aino_nname (base, rel); - if (c == 0) { - c = xcalloc (a_inode, 1); - if (c == 0) { - *err = ERROR_NO_FREE_STORE; - return 0; - } + *err = 0; + while (c != 0) + { + int l1 = _tcslen (c->nname); + /* Note: using _tcscmp here. */ + if (l0 <= l1 && _tcscmp (rel, c->nname + l1 - l0) == 0 + && (l0 == l1 || c->nname[l1-l0-1] == FSDB_DIR_SEPARATOR) && c->mountcount == unit->mountcount) + break; + c = c->sibling; + } + if (c != 0) + return c; + if (!isvirtual) + c = fsdb_lookup_aino_nname (base, rel); + if (c == 0) + { + c = xcalloc (a_inode, 1); + if (c == 0) + { + *err = ERROR_NO_FREE_STORE; + return 0; + } - c->nname = build_nname (base->nname, rel); - c->aname = get_aname (unit, base, rel); - c->comment = 0; - c->uniq_external = uniq_external; - c->has_dbentry = 0; - if (!fill_file_attrs(unit, base, c)) { - xfree (c); - *err = ERROR_NO_FREE_STORE; - return 0; - } - if (c->dir && !isvirtual) - fsdb_clean_dir (c); - } - init_child_aino (unit, base, c); + c->nname = build_nname (base->nname, rel); + c->aname = get_aname (unit, base, rel); + c->comment = 0; + c->uniq_external = uniq_external; + c->has_dbentry = 0; + if (!fill_file_attrs(unit, base, c)) + { + xfree (c); + *err = ERROR_NO_FREE_STORE; + return 0; + } + if (c->dir && !isvirtual) + fsdb_clean_dir (c); + } + init_child_aino (unit, base, c); - recycle_aino (unit, c); - TRACE((_T("created aino %x, exnext\n"), c->uniq)); + recycle_aino (unit, c); + TRACE((_T("created aino %x, exnext\n"), c->uniq)); - return c; + return c; } static a_inode *get_aino (Unit *unit, a_inode *base, const TCHAR *rel, int *err) { - TCHAR *tmp; - TCHAR *p; - a_inode *curr; - int i; + TCHAR *tmp; + TCHAR *p; + a_inode *curr; + int i; - aino_test (base); + aino_test (base); - *err = 0; - TRACE((_T("get_path(%s,%s)\n"), base->aname, rel)); - - /* root-relative path? */ - for (i = 0; rel[i] && rel[i] != '/' && rel[i] != ':'; i++) - ; - if (':' == rel[i]) - rel += i+1; - - tmp = my_strdup (rel); - p = tmp; - curr = base; - - while (*p) { - /* start with a slash? go up a level. */ - if (*p == '/') { - if (curr->parent != 0) - curr = curr->parent; - p++; - } else { - a_inode *next; + *err = 0; + TRACE((_T("get_path(%s,%s)\n"), base->aname, rel)); - TCHAR *component_end; - component_end = _tcschr (p, '/'); - if (component_end != 0) - *component_end = '\0'; - next = lookup_child_aino (unit, curr, p, err); - if (next == 0) { - /* if only last component not found, return parent dir. */ - if (*err != ERROR_OBJECT_NOT_AROUND || component_end != 0) - curr = 0; - /* ? what error is appropriate? */ - break; - } - curr = next; - if (component_end) - p = component_end+1; - else - break; - + /* root-relative path? */ + for (i = 0; rel[i] && rel[i] != '/' && rel[i] != ':'; i++) + ; + if (':' == rel[i]) + rel += i+1; + + tmp = my_strdup (rel); + p = tmp; + curr = base; + + while (*p) + { + /* start with a slash? go up a level. */ + if (*p == '/') + { + if (curr->parent != 0) + curr = curr->parent; + p++; + } + else + { + a_inode *next; + + TCHAR *component_end; + component_end = _tcschr (p, '/'); + if (component_end != 0) + *component_end = '\0'; + next = lookup_child_aino (unit, curr, p, err); + if (next == 0) + { + /* if only last component not found, return parent dir. */ + if (*err != ERROR_OBJECT_NOT_AROUND || component_end != 0) + curr = 0; + /* ? what error is appropriate? */ + break; + } + curr = next; + if (component_end) + p = component_end+1; + else + break; + + } } - } - xfree (tmp); - return curr; + xfree (tmp); + return curr; } static uae_u32 notifyhash (const TCHAR *s) { - uae_u32 hash = 0; - while (*s) - hash = (hash << 5) + *s++; - return hash % NOTIFY_HASH_SIZE; + uae_u32 hash = 0; + while (*s) + hash = (hash << 5) + *s++; + return hash % NOTIFY_HASH_SIZE; } static Notify *new_notify (Unit *unit, TCHAR *name) { - Notify *n = xmalloc(Notify, 1); - uae_u32 hash = notifyhash (name); - n->next = unit->notifyhash[hash]; - unit->notifyhash[hash] = n; - n->partname = name; - return n; + Notify *n = xmalloc(Notify, 1); + uae_u32 hash = notifyhash (name); + n->next = unit->notifyhash[hash]; + unit->notifyhash[hash] = n; + n->partname = name; + return n; } #if 0 static void free_notify_item(Notify *n) { - xfree(n->fullname); - xfree(n->partname); - xfree(n); + xfree(n->fullname); + xfree(n->partname); + xfree(n); } #endif static void free_notify (Unit *unit, int hash, Notify *n) { - Notify *n1, *prev = 0; - for (n1 = unit->notifyhash[hash]; n1; n1 = n1->next) { - if (n == n1) { - if (prev) - prev->next = n->next; - else - unit->notifyhash[hash] = n->next; - break; - } - prev = n1; - } + Notify *n1, *prev = 0; + for (n1 = unit->notifyhash[hash]; n1; n1 = n1->next) + { + if (n == n1) + { + if (prev) + prev->next = n->next; + else + unit->notifyhash[hash] = n->next; + break; + } + prev = n1; + } } static void startup_update_unit (Unit *unit, UnitInfo *uinfo) { - if (!unit) - return; - xfree (unit->ui.volname); - memcpy (&unit->ui, uinfo, sizeof (UnitInfo)); - unit->ui.devname = uinfo->devname; - unit->ui.volname = my_strdup (uinfo->volname); /* might free later for rename */ + if (!unit) + return; + xfree (unit->ui.volname); + memcpy (&unit->ui, uinfo, sizeof (UnitInfo)); + unit->ui.devname = uinfo->devname; + unit->ui.volname = my_strdup (uinfo->volname); /* might free later for rename */ } static Unit *startup_create_unit (UnitInfo *uinfo, int num) { - int i; - Unit *unit, *u; + int i; + Unit *unit, *u; - unit = xcalloc (Unit, 1); - /* keep list in insertion order */ - u = units; - if (u) { - while (u->next) - u = u->next; - u->next = unit; - } else { - units = unit; - } - uinfo->self = unit; + unit = xcalloc (Unit, 1); + /* keep list in insertion order */ + u = units; + if (u) + { + while (u->next) + u = u->next; + u->next = unit; + } + else + { + units = unit; + } + uinfo->self = unit; - unit->volume = 0; - unit->port = m68k_areg (regs, 5); - unit->unit = num; + unit->volume = 0; + unit->port = m68k_areg (regs, 5); + unit->unit = num; - startup_update_unit (unit, uinfo); + startup_update_unit (unit, uinfo); - unit->cmds_complete = 0; - unit->cmds_sent = 0; - unit->cmds_acked = 0; - clear_exkeys(unit); - unit->total_locked_ainos = 0; - unit->keys = 0; - for (i = 0; i < NOTIFY_HASH_SIZE; i++) { - Notify *n = unit->notifyhash[i]; - while (n) { - Notify *n2 = n; - n = n->next; - xfree(n2->fullname); - xfree(n2->partname); - xfree(n2); - } - unit->notifyhash[i] = 0; - } + unit->cmds_complete = 0; + unit->cmds_sent = 0; + unit->cmds_acked = 0; + clear_exkeys(unit); + unit->total_locked_ainos = 0; + unit->keys = 0; + for (i = 0; i < NOTIFY_HASH_SIZE; i++) + { + Notify *n = unit->notifyhash[i]; + while (n) + { + Notify *n2 = n; + n = n->next; + xfree(n2->fullname); + xfree(n2->partname); + xfree(n2); + } + unit->notifyhash[i] = 0; + } - unit->rootnode.aname = uinfo->volname; - unit->rootnode.nname = uinfo->rootdir; - unit->rootnode.sibling = 0; - unit->rootnode.next = unit->rootnode.prev = &unit->rootnode; - unit->rootnode.uniq = 0; - unit->rootnode.parent = 0; - unit->rootnode.child = 0; - unit->rootnode.dir = 1; - unit->rootnode.amigaos_mode = 0; - unit->rootnode.shlock = 0; - unit->rootnode.elock = 0; - unit->rootnode.comment = 0; - unit->rootnode.has_dbentry = 0; - unit->rootnode.volflags = uinfo->volflags; - aino_test_init (&unit->rootnode); - unit->aino_cache_size = 0; - for (i = 0; i < MAX_AINO_HASH; i++) - unit->aino_hash[i] = 0; - return unit; + unit->rootnode.aname = uinfo->volname; + unit->rootnode.nname = uinfo->rootdir; + unit->rootnode.sibling = 0; + unit->rootnode.next = unit->rootnode.prev = &unit->rootnode; + unit->rootnode.uniq = 0; + unit->rootnode.parent = 0; + unit->rootnode.child = 0; + unit->rootnode.dir = 1; + unit->rootnode.amigaos_mode = 0; + unit->rootnode.shlock = 0; + unit->rootnode.elock = 0; + unit->rootnode.comment = 0; + unit->rootnode.has_dbentry = 0; + unit->rootnode.volflags = uinfo->volflags; + aino_test_init (&unit->rootnode); + unit->aino_cache_size = 0; + for (i = 0; i < MAX_AINO_HASH; i++) + unit->aino_hash[i] = 0; + return unit; } #ifdef UAE_FILESYS_THREADS @@ -2291,347 +2473,383 @@ static void *filesys_thread (void *unit_v); #endif static void filesys_start_thread (UnitInfo *ui, int nr) { - ui->unit_pipe = 0; - ui->back_pipe = 0; - ui->reset_state = FS_STARTUP; - if (!isrestore ()) { - ui->startup = 0; - ui->self = 0; - } + ui->unit_pipe = 0; + ui->back_pipe = 0; + ui->reset_state = FS_STARTUP; + if (!isrestore ()) + { + ui->startup = 0; + ui->self = 0; + } #ifdef UAE_FILESYS_THREADS - if (is_virtual (nr)) { - ui->unit_pipe = xmalloc (smp_comm_pipe, 1); - ui->back_pipe = xmalloc (smp_comm_pipe, 1); - init_comm_pipe (ui->unit_pipe, 100, 3); - init_comm_pipe (ui->back_pipe, 100, 1); - uae_start_thread (_T("filesys"), filesys_thread, (void *)ui, &ui->tid); - } + if (is_virtual (nr)) + { + ui->unit_pipe = xmalloc (smp_comm_pipe, 1); + ui->back_pipe = xmalloc (smp_comm_pipe, 1); + init_comm_pipe (ui->unit_pipe, 100, 3); + init_comm_pipe (ui->back_pipe, 100, 1); + uae_start_thread (_T("filesys"), filesys_thread, (void *)ui, &ui->tid); + } #endif - if (isrestore ()) { - startup_update_unit (ui->self, ui); - } + if (isrestore ()) + { + startup_update_unit (ui->self, ui); + } } static uae_u32 REGPARAM2 startup_handler (TrapContext *context) { - /* Just got the startup packet. It's in D3. DosBase is in A2, - * our allocated volume structure is in A3, A5 is a pointer to - * our port. */ - uaecptr rootnode = get_long (m68k_areg (regs, 2) + 34); - uaecptr dos_info = get_long (rootnode + 24) << 2; - uaecptr pkt = m68k_dreg (regs, 3); - uaecptr arg1 = get_long (pkt + dp_Arg1); - uaecptr arg2 = get_long (pkt + dp_Arg2); - uaecptr arg3 = get_long (pkt + dp_Arg3); - uaecptr devnode; - int nr; - Unit *unit; - UnitInfo *uinfo; - int late = 0; - int ed, ef; - uae_u64 uniq = 0; - uae_u32 cdays; - struct mytimeval ctime = { 0 }; + /* Just got the startup packet. It's in D3. DosBase is in A2, + * our allocated volume structure is in A3, A5 is a pointer to + * our port. */ + uaecptr rootnode = get_long (m68k_areg (regs, 2) + 34); + uaecptr dos_info = get_long (rootnode + 24) << 2; + uaecptr pkt = m68k_dreg (regs, 3); + uaecptr arg1 = get_long (pkt + dp_Arg1); + uaecptr arg2 = get_long (pkt + dp_Arg2); + uaecptr arg3 = get_long (pkt + dp_Arg3); + uaecptr devnode; + int nr; + Unit *unit; + UnitInfo *uinfo; + int late = 0; + int ed, ef; + uae_u64 uniq = 0; + uae_u32 cdays; + struct mytimeval ctime = { 0 }; - // 1.3: - // dp_Arg1 contains crap (Should be name of device) - // dp_Arg2 = works as documented - // dp_Arg3 = NULL (!?). (Should be DeviceNode) + // 1.3: + // dp_Arg1 contains crap (Should be name of device) + // dp_Arg2 = works as documented + // dp_Arg3 = NULL (!?). (Should be DeviceNode) - for (nr = 0; nr < MAX_FILESYSTEM_UNITS; nr++) { - /* Hardfile volume name? */ - if (!mountinfo.ui[nr].open) - continue; - if (!is_virtual (nr)) - continue; + for (nr = 0; nr < MAX_FILESYSTEM_UNITS; nr++) + { + /* Hardfile volume name? */ + if (!mountinfo.ui[nr].open) + continue; + if (!is_virtual (nr)) + continue; - if (mountinfo.ui[nr].startup == arg2) - break; - } + if (mountinfo.ui[nr].startup == arg2) + break; + } - if (nr == MAX_FILESYSTEM_UNITS) { - write_log (_T("Attempt to mount unknown filesystem device\n")); - put_long (pkt + dp_Res1, DOS_FALSE); - put_long (pkt + dp_Res2, ERROR_DEVICE_NOT_MOUNTED); - return 0; - } - uinfo = mountinfo.ui + nr; - //devnode = arg3 << 2; - devnode = uinfo->devicenode; - cdays = 3800 + nr; + if (nr == MAX_FILESYSTEM_UNITS) + { + write_log (_T("Attempt to mount unknown filesystem device\n")); + put_long (pkt + dp_Res1, DOS_FALSE); + put_long (pkt + dp_Res2, ERROR_DEVICE_NOT_MOUNTED); + return 0; + } + uinfo = mountinfo.ui + nr; + //devnode = arg3 << 2; + devnode = uinfo->devicenode; + cdays = 3800 + nr; - ed = my_existsdir (uinfo->rootdir); - ef = my_existsfile (uinfo->rootdir); - if (!uinfo->wasisempty && !ef && !ed) { - write_log (_T("Failed attempt to mount device '%s' (%s)\n"), uinfo->devname, uinfo->rootdir); - put_long (pkt + dp_Res1, DOS_FALSE); - put_long (pkt + dp_Res2, ERROR_DEVICE_NOT_MOUNTED); - return 0; - } + ed = my_existsdir (uinfo->rootdir); + ef = my_existsfile (uinfo->rootdir); + if (!uinfo->wasisempty && !ef && !ed) + { + write_log (_T("Failed attempt to mount device '%s' (%s)\n"), uinfo->devname, uinfo->rootdir); + put_long (pkt + dp_Res1, DOS_FALSE); + put_long (pkt + dp_Res2, ERROR_DEVICE_NOT_MOUNTED); + return 0; + } - if (!uinfo->unit_pipe) { - late = 1; - filesys_start_thread (uinfo, nr); - } - unit = startup_create_unit (uinfo, nr); - unit->volflags = uinfo->volflags; - unit->rootnode.uniq_external = uniq; + if (!uinfo->unit_pipe) + { + late = 1; + filesys_start_thread (uinfo, nr); + } + unit = startup_create_unit (uinfo, nr); + unit->volflags = uinfo->volflags; + unit->rootnode.uniq_external = uniq; - /* write_comm_pipe_int (unit->ui.unit_pipe, -1, 1);*/ + /* write_comm_pipe_int (unit->ui.unit_pipe, -1, 1);*/ - write_log (_T("FS: %s (flags=%08X,E=%d,ED=%d,EF=%d,native='%s') starting..\n"), - unit->ui.volname, unit->volflags, uinfo->wasisempty, ed, ef, unit->ui.rootdir); - - /* fill in our process in the device node */ - put_long (devnode + 8, unit->port); - unit->dosbase = m68k_areg (regs, 2); + write_log (_T("FS: %s (flags=%08X,E=%d,ED=%d,EF=%d,native='%s') starting..\n"), + unit->ui.volname, unit->volflags, uinfo->wasisempty, ed, ef, unit->ui.rootdir); - /* make new volume */ - unit->volume = m68k_areg (regs, 3) + 32; - put_long (unit->volume + 180 - 32, devnode); + /* fill in our process in the device node */ + put_long (devnode + 8, unit->port); + unit->dosbase = m68k_areg (regs, 2); + + /* make new volume */ + unit->volume = m68k_areg (regs, 3) + 32; + put_long (unit->volume + 180 - 32, devnode); #ifdef UAE_FILESYS_THREADS - unit->locklist = m68k_areg (regs, 3) + 8; + unit->locklist = m68k_areg (regs, 3) + 8; #else - unit->locklist = m68k_areg (regs, 3); + unit->locklist = m68k_areg (regs, 3); #endif - unit->dummy_message = m68k_areg (regs, 3) + 12; + unit->dummy_message = m68k_areg (regs, 3) + 12; - put_long (unit->dummy_message + 10, 0); + put_long (unit->dummy_message + 10, 0); - /* Prepare volume information */ - put_long (unit->volume + 4, 2); /* Type = dt_volume */ - put_long (unit->volume + 12, 0); /* Lock */ - put_long (unit->volume + 16, cdays); /* Creation Date */ - put_long (unit->volume + 20, 0); - put_long (unit->volume + 24, 0); - put_long (unit->volume + 28, 0); /* lock list */ - put_long (unit->volume + 40, (unit->volume + 44) >> 2); /* Name */ + /* Prepare volume information */ + put_long (unit->volume + 4, 2); /* Type = dt_volume */ + put_long (unit->volume + 12, 0); /* Lock */ + put_long (unit->volume + 16, cdays); /* Creation Date */ + put_long (unit->volume + 20, 0); + put_long (unit->volume + 24, 0); + put_long (unit->volume + 28, 0); /* lock list */ + put_long (unit->volume + 40, (unit->volume + 44) >> 2); /* Name */ - put_byte (unit->volume + 44, 0); - if (!uinfo->wasisempty && !uinfo->unknown_media) { - int isvirtual = unit->volflags & (MYVOLUMEINFO_ARCHIVE); - /* Set volume if non-empty */ - set_volume_name (unit, &ctime); - if (!isvirtual) - fsdb_clean_dir (&unit->rootnode); - } + put_byte (unit->volume + 44, 0); + if (!uinfo->wasisempty && !uinfo->unknown_media) + { + int isvirtual = unit->volflags & (MYVOLUMEINFO_ARCHIVE); + /* Set volume if non-empty */ + set_volume_name (unit, &ctime); + if (!isvirtual) + fsdb_clean_dir (&unit->rootnode); + } - put_long (unit->volume + 8, unit->port); - put_long (unit->volume + 32, DISK_TYPE_DOS_FFS); + put_long (unit->volume + 8, unit->port); + put_long (unit->volume + 32, DISK_TYPE_DOS_FFS); - put_long (pkt + dp_Res1, DOS_TRUE); + put_long (pkt + dp_Res1, DOS_TRUE); - return 1 | (late ? 2 : 0); + return 1 | (late ? 2 : 0); } static void - do_info (Unit *unit, dpacket packet, uaecptr info, bool disk_info) +do_info (Unit *unit, dpacket packet, uaecptr info, bool disk_info) { - struct fs_usage fsu; - int ret, err = ERROR_NO_FREE_STORE; - int blocksize, nr; - uae_u32 dostype; - bool fs = false, media = false; - - blocksize = 512; - /* not FFS because it is not understood by WB1.x C:Info */ - dostype = DISK_TYPE_DOS; - nr = unit->unit; - if (unit->volflags & MYVOLUMEINFO_ARCHIVE) { - ret = zfile_fs_usage_archive (unit->ui.rootdir, 0, &fsu); - fs = true; - media = filesys_isvolume (unit) != 0; - } else { - ret = get_fs_usage (unit->ui.rootdir, 0, &fsu); - if (ret) - err = dos_errno (); - fs = true; - media = filesys_isvolume (unit) != 0; - } - if (ret != 0) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, err); - return; - } + struct fs_usage fsu; + int ret, err = ERROR_NO_FREE_STORE; + int blocksize, nr; + uae_u32 dostype; + bool fs = false, media = false; - put_long (info, 0); /* errors */ - put_long (info + 4, nr); /* unit number */ - put_long (info + 8, unit->ui.readonly || unit->ui.locked ? 80 : 82); /* state */ - put_long (info + 20, blocksize); /* bytesperblock */ - put_long (info + 32, 0); /* inuse */ - if (unit->ui.unknown_media) { - if (!disk_info) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_NOT_A_DOS_DISK); - return; - } - put_long (info + 12, 0); - put_long (info + 16, 0); - put_long (info + 24, ('B' << 24) | ('A' << 16) | ('D' << 8) | (0 << 0)); /* ID_UNREADABLE_DISK */ - put_long (info + 28, 0); - } else if (!media) { - if (!disk_info) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_NO_DISK); - return; - } - put_long (info + 12, 0); - put_long (info + 16, 0); - put_long (info + 24, -1); /* ID_NO_DISK_PRESENT */ - put_long (info + 28, 0); - } else { - if (fs && currprefs.filesys_limit) { - if (fsu.fsu_blocks > (uae_u64)currprefs.filesys_limit * 1024 / blocksize) { - uae_u32 oldblocks = fsu.fsu_blocks; - fsu.fsu_blocks = (uae_u32)((uae_u64)currprefs.filesys_limit * 1024 / blocksize); - fsu.fsu_bavail = (uae_u32)((uae_u64)fsu.fsu_bavail * fsu.fsu_blocks / oldblocks); - } - } - put_long (info + 12, fsu.fsu_blocks ); /* numblocks */ - put_long (info + 16, fsu.fsu_blocks - fsu.fsu_bavail); /* inuse */ - put_long (info + 24, dostype); /* disk type */ - put_long (info + 28, unit->volume >> 2); /* volume node */ - put_long (info + 32, (get_long (unit->volume + 28) || unit->keys) ? -1 : 0); /* inuse */ - } - PUT_PCK_RES1 (packet, DOS_TRUE); + blocksize = 512; + /* not FFS because it is not understood by WB1.x C:Info */ + dostype = DISK_TYPE_DOS; + nr = unit->unit; + if (unit->volflags & MYVOLUMEINFO_ARCHIVE) + { + ret = zfile_fs_usage_archive (unit->ui.rootdir, 0, &fsu); + fs = true; + media = filesys_isvolume (unit) != 0; + } + else + { + ret = get_fs_usage (unit->ui.rootdir, 0, &fsu); + if (ret) + err = dos_errno (); + fs = true; + media = filesys_isvolume (unit) != 0; + } + if (ret != 0) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, err); + return; + } + + put_long (info, 0); /* errors */ + put_long (info + 4, nr); /* unit number */ + put_long (info + 8, unit->ui.readonly || unit->ui.locked ? 80 : 82); /* state */ + put_long (info + 20, blocksize); /* bytesperblock */ + put_long (info + 32, 0); /* inuse */ + if (unit->ui.unknown_media) + { + if (!disk_info) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_NOT_A_DOS_DISK); + return; + } + put_long (info + 12, 0); + put_long (info + 16, 0); + put_long (info + 24, ('B' << 24) | ('A' << 16) | ('D' << 8) | (0 << 0)); /* ID_UNREADABLE_DISK */ + put_long (info + 28, 0); + } + else if (!media) + { + if (!disk_info) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_NO_DISK); + return; + } + put_long (info + 12, 0); + put_long (info + 16, 0); + put_long (info + 24, -1); /* ID_NO_DISK_PRESENT */ + put_long (info + 28, 0); + } + else + { + if (fs && currprefs.filesys_limit) + { + if (fsu.fsu_blocks > (uae_u64)currprefs.filesys_limit * 1024 / blocksize) + { + uae_u32 oldblocks = fsu.fsu_blocks; + fsu.fsu_blocks = (uae_u32)((uae_u64)currprefs.filesys_limit * 1024 / blocksize); + fsu.fsu_bavail = (uae_u32)((uae_u64)fsu.fsu_bavail * fsu.fsu_blocks / oldblocks); + } + } + put_long (info + 12, fsu.fsu_blocks ); /* numblocks */ + put_long (info + 16, fsu.fsu_blocks - fsu.fsu_bavail); /* inuse */ + put_long (info + 24, dostype); /* disk type */ + put_long (info + 28, unit->volume >> 2); /* volume node */ + put_long (info + 32, (get_long (unit->volume + 28) || unit->keys) ? -1 : 0); /* inuse */ + } + PUT_PCK_RES1 (packet, DOS_TRUE); } static void - action_disk_info (Unit *unit, dpacket packet) +action_disk_info (Unit *unit, dpacket packet) { - TRACE((_T("ACTION_DISK_INFO\n"))); - do_info (unit, packet, GET_PCK_ARG1 (packet) << 2, true); + TRACE((_T("ACTION_DISK_INFO\n"))); + do_info (unit, packet, GET_PCK_ARG1 (packet) << 2, true); } static void - action_info (Unit *unit, dpacket packet) +action_info (Unit *unit, dpacket packet) { - TRACE((_T("ACTION_INFO\n"))); - do_info (unit, packet, GET_PCK_ARG2 (packet) << 2, false); + TRACE((_T("ACTION_INFO\n"))); + do_info (unit, packet, GET_PCK_ARG2 (packet) << 2, false); } static void free_key (Unit *unit, Key *k) { - Key *k1; - Key *prev = 0; - for (k1 = unit->keys; k1; k1 = k1->next) { - if (k == k1) { - if (prev) - prev->next = k->next; - else - unit->keys = k->next; - break; - } - prev = k1; - } + Key *k1; + Key *prev = 0; + for (k1 = unit->keys; k1; k1 = k1->next) + { + if (k == k1) + { + if (prev) + prev->next = k->next; + else + unit->keys = k->next; + break; + } + prev = k1; + } - for (struct lockrecord *lr = k->record; lr;) { - struct lockrecord *next = lr->next; - xfree (lr); - lr = next; - } + for (struct lockrecord *lr = k->record; lr;) + { + struct lockrecord *next = lr->next; + xfree (lr); + lr = next; + } - if (k->fd != NULL) - fs_closefile (k->fd); + if (k->fd != NULL) + fs_closefile (k->fd); - xfree(k); + xfree(k); } static Key *lookup_key (Unit *unit, uae_u32 uniq) { - Key *k; - unsigned int total = 0; - /* It's hardly worthwhile to optimize this - most of the time there are - * only one or zero keys. */ - for (k = unit->keys; k; k = k->next) { - total++; - if (uniq == k->uniq) - return k; - } - write_log (_T("Error: couldn't find key %u / %u!\n"), uniq, total); - return 0; + Key *k; + unsigned int total = 0; + /* It's hardly worthwhile to optimize this - most of the time there are + * only one or zero keys. */ + for (k = unit->keys; k; k = k->next) + { + total++; + if (uniq == k->uniq) + return k; + } + write_log (_T("Error: couldn't find key %u / %u!\n"), uniq, total); + return 0; } static Key *new_key (Unit *unit) { - Key *k = xcalloc (Key, 1); - k->uniq = ++key_uniq; - k->fd = NULL; - k->file_pos = 0; - k->next = unit->keys; - unit->keys = k; + Key *k = xcalloc (Key, 1); + k->uniq = ++key_uniq; + k->fd = NULL; + k->file_pos = 0; + k->next = unit->keys; + unit->keys = k; - return k; + return k; } #if TRACING_ENABLED static void - dumplock (Unit *unit, uaecptr lock) +dumplock (Unit *unit, uaecptr lock) { - a_inode *a; - TRACE((_T("LOCK: 0x%lx"), lock)); - if (!lock) { - TRACE((_T("\n"))); - return; - } - TRACE((_T("{ next=0x%lx, mode=%ld, handler=0x%lx, volume=0x%lx, aino %lx "), - get_long (lock) << 2, get_long (lock+8), - get_long (lock+12), get_long (lock+16), - get_long (lock + 4))); - a = lookup_aino (unit, get_long (lock + 4)); - if (a == 0) { - TRACE((_T("not found!"))); - } else { - TRACE((_T("%s"), a->nname)); - } - TRACE((_T(" }\n"))); + a_inode *a; + TRACE((_T("LOCK: 0x%lx"), lock)); + if (!lock) + { + TRACE((_T("\n"))); + return; + } + TRACE((_T("{ next=0x%lx, mode=%ld, handler=0x%lx, volume=0x%lx, aino %lx "), + get_long (lock) << 2, get_long (lock+8), + get_long (lock+12), get_long (lock+16), + get_long (lock + 4))); + a = lookup_aino (unit, get_long (lock + 4)); + if (a == 0) + { + TRACE((_T("not found!"))); + } + else + { + TRACE((_T("%s"), a->nname)); + } + TRACE((_T(" }\n"))); } #endif static a_inode *find_aino (Unit *unit, uaecptr lock, const TCHAR *name, int *err) { - a_inode *a; - - if (lock) { - a_inode *olda = lookup_aino (unit, get_long (lock + 4)); - if (olda == 0) { - /* That's the best we can hope to do. */ - a = get_aino (unit, &unit->rootnode, name, err); - } else { - TRACE((_T("aino: 0x%08lx"), (unsigned long int)olda->uniq)); - TRACE((_T(" \"%s\"\n"), olda->nname)); - a = get_aino (unit, olda, name, err); + a_inode *a; + + if (lock) + { + a_inode *olda = lookup_aino (unit, get_long (lock + 4)); + if (olda == 0) + { + /* That's the best we can hope to do. */ + a = get_aino (unit, &unit->rootnode, name, err); + } + else + { + TRACE((_T("aino: 0x%08lx"), (unsigned long int)olda->uniq)); + TRACE((_T(" \"%s\"\n"), olda->nname)); + a = get_aino (unit, olda, name, err); + } } - } else { - a = get_aino (unit, &unit->rootnode, name, err); - } - if (a) { - TRACE((_T("aino=\"%s\"\n"), a->nname)); - } - aino_test (a); - return a; + else + { + a = get_aino (unit, &unit->rootnode, name, err); + } + if (a) + { + TRACE((_T("aino=\"%s\"\n"), a->nname)); + } + aino_test (a); + return a; } static uaecptr make_lock (Unit *unit, uae_u32 uniq, long mode) { - /* allocate lock from the list kept by the assembly code */ - uaecptr lock; + /* allocate lock from the list kept by the assembly code */ + uaecptr lock; - lock = get_long (unit->locklist); - put_long (unit->locklist, get_long (lock)); - lock += 4; + lock = get_long (unit->locklist); + put_long (unit->locklist, get_long (lock)); + lock += 4; - put_long (lock + 4, uniq); - put_long (lock + 8, mode); - put_long (lock + 12, unit->port); - put_long (lock + 16, unit->volume >> 2); + put_long (lock + 4, uniq); + put_long (lock + 8, mode); + put_long (lock + 12, unit->port); + put_long (lock + 16, unit->volume >> 2); - /* prepend to lock chain */ - put_long (lock, get_long (unit->volume + 28)); - put_long (unit->volume + 28, lock >> 2); + /* prepend to lock chain */ + put_long (lock, get_long (unit->volume + 28)); + put_long (unit->volume + 28, lock >> 2); - DUMPLOCK(unit, lock); - return lock; + DUMPLOCK(unit, lock); + return lock; } #define NOTIFY_CLASS 0x40000000 @@ -2645,447 +2863,498 @@ static uaecptr make_lock (Unit *unit, uae_u32 uniq, long mode) static void notify_send (Unit *unit, Notify *n) { - uaecptr nr = n->notifyrequest; - int flags = get_long (nr + 12); + uaecptr nr = n->notifyrequest; + int flags = get_long (nr + 12); - if (flags & NRF_SEND_MESSAGE) { - if (!(flags & NRF_WAIT_REPLY) || ((flags & NRF_WAIT_REPLY) && !(flags & NRF_MAGIC))) { - uae_NotificationHack (unit->port, nr); - } else if (flags & NRF_WAIT_REPLY) { - put_long (nr + 12, get_long (nr + 12) | NRF_MAGIC); - } - } else if (flags & NRF_SEND_SIGNAL) { - uae_Signal (get_long (nr + 16), 1 << get_byte (nr + 20)); - } + if (flags & NRF_SEND_MESSAGE) + { + if (!(flags & NRF_WAIT_REPLY) || ((flags & NRF_WAIT_REPLY) && !(flags & NRF_MAGIC))) + { + uae_NotificationHack (unit->port, nr); + } + else if (flags & NRF_WAIT_REPLY) + { + put_long (nr + 12, get_long (nr + 12) | NRF_MAGIC); + } + } + else if (flags & NRF_SEND_SIGNAL) + { + uae_Signal (get_long (nr + 16), 1 << get_byte (nr + 20)); + } } static void notify_check (Unit *unit, a_inode *a) { - Notify *n; - int hash = notifyhash (a->aname); - for (n = unit->notifyhash[hash]; n; n = n->next) { - uaecptr nr = n->notifyrequest; - if (same_aname(n->partname, a->aname)) { - int err; - a_inode *a2 = find_aino (unit, 0, n->fullname, &err); - if (err == 0 && a == a2) - notify_send (unit, n); - } - } - if (a->parent) { - hash = notifyhash (a->parent->aname); - for (n = unit->notifyhash[hash]; n; n = n->next) { - uaecptr nr = n->notifyrequest; - if (same_aname(n->partname, a->parent->aname)) { - int err; - a_inode *a2 = find_aino (unit, 0, n->fullname, &err); - if (err == 0 && a->parent == a2) - notify_send (unit, n); - } + Notify *n; + int hash = notifyhash (a->aname); + for (n = unit->notifyhash[hash]; n; n = n->next) + { + uaecptr nr = n->notifyrequest; + if (same_aname(n->partname, a->aname)) + { + int err; + a_inode *a2 = find_aino (unit, 0, n->fullname, &err); + if (err == 0 && a == a2) + notify_send (unit, n); + } + } + if (a->parent) + { + hash = notifyhash (a->parent->aname); + for (n = unit->notifyhash[hash]; n; n = n->next) + { + uaecptr nr = n->notifyrequest; + if (same_aname(n->partname, a->parent->aname)) + { + int err; + a_inode *a2 = find_aino (unit, 0, n->fullname, &err); + if (err == 0 && a->parent == a2) + notify_send (unit, n); + } + } } - } } static void - action_add_notify (Unit *unit, dpacket packet) +action_add_notify (Unit *unit, dpacket packet) { - uaecptr nr = GET_PCK_ARG1 (packet); - int flags; - Notify *n; - TCHAR *name, *p, *partname; + uaecptr nr = GET_PCK_ARG1 (packet); + int flags; + Notify *n; + TCHAR *name, *p, *partname; - TRACE((_T("ACTION_ADD_NOTIFY\n"))); + TRACE((_T("ACTION_ADD_NOTIFY\n"))); - name = my_strdup (char1 (get_long (nr + 4))); - flags = get_long (nr + 12); + name = my_strdup (char1 (get_long (nr + 4))); + flags = get_long (nr + 12); - if (!(flags & (NRF_SEND_MESSAGE | NRF_SEND_SIGNAL))) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_BAD_NUMBER); - return; - } + if (!(flags & (NRF_SEND_MESSAGE | NRF_SEND_SIGNAL))) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_BAD_NUMBER); + return; + } #if 0 - write_log (_T("Notify:\n")); - write_log (_T("nr_Name '%s'\n"), char1 (get_long (nr + 0))); - write_log (_T("nr_FullName '%s'\n"), name); - write_log (_T("nr_UserData %08X\n"), get_long (nr + 8)); - write_log (_T("nr_Flags %08X\n"), flags); - if (flags & NRF_SEND_MESSAGE) { - write_log (_T("Message NotifyRequest, port = %08X\n"), get_long (nr + 16)); - } else if (flags & NRF_SEND_SIGNAL) { - write_log (_T("Signal NotifyRequest, Task = %08X signal = %d\n"), get_long (nr + 16), get_long (nr + 20)); - } else { - write_log (_T("corrupt NotifyRequest\n")); - } + write_log (_T("Notify:\n")); + write_log (_T("nr_Name '%s'\n"), char1 (get_long (nr + 0))); + write_log (_T("nr_FullName '%s'\n"), name); + write_log (_T("nr_UserData %08X\n"), get_long (nr + 8)); + write_log (_T("nr_Flags %08X\n"), flags); + if (flags & NRF_SEND_MESSAGE) + { + write_log (_T("Message NotifyRequest, port = %08X\n"), get_long (nr + 16)); + } + else if (flags & NRF_SEND_SIGNAL) + { + write_log (_T("Signal NotifyRequest, Task = %08X signal = %d\n"), get_long (nr + 16), get_long (nr + 20)); + } + else + { + write_log (_T("corrupt NotifyRequest\n")); + } #endif - p = name + _tcslen (name) - 1; - if (p[0] == ':') - p--; - while (p > name && p[0] != ':' && p[0] != '/') - p--; - if (p[0] == ':' || p[0] == '/') - p++; - partname = my_strdup (p); - n = new_notify (unit, partname); - n->notifyrequest = nr; - n->fullname = name; - if (flags & NRF_NOTIFY_INITIAL) { - int err; - a_inode *a = find_aino (unit, 0, n->fullname, &err); - if (err == 0) - notify_send (unit, n); - } - PUT_PCK_RES1 (packet, DOS_TRUE); + p = name + _tcslen (name) - 1; + if (p[0] == ':') + p--; + while (p > name && p[0] != ':' && p[0] != '/') + p--; + if (p[0] == ':' || p[0] == '/') + p++; + partname = my_strdup (p); + n = new_notify (unit, partname); + n->notifyrequest = nr; + n->fullname = name; + if (flags & NRF_NOTIFY_INITIAL) + { + int err; + a_inode *a = find_aino (unit, 0, n->fullname, &err); + if (err == 0) + notify_send (unit, n); + } + PUT_PCK_RES1 (packet, DOS_TRUE); } static void - action_remove_notify (Unit *unit, dpacket packet) +action_remove_notify (Unit *unit, dpacket packet) { - uaecptr nr = GET_PCK_ARG1 (packet); - Notify *n; - int hash; + uaecptr nr = GET_PCK_ARG1 (packet); + Notify *n; + int hash; - TRACE((_T("ACTION_REMOVE_NOTIFY\n"))); - for (hash = 0; hash < NOTIFY_HASH_SIZE; hash++) { - for (n = unit->notifyhash[hash]; n; n = n->next) { - if (n->notifyrequest == nr) { - //write_log (_T("NotifyRequest %08X freed\n"), n->notifyrequest); - xfree (n->fullname); - xfree (n->partname); - free_notify (unit, hash, n); - PUT_PCK_RES1 (packet, DOS_TRUE); - return; - } - } - } - write_log (_T("Tried to free non-existing NotifyRequest %08X\n"), nr); - PUT_PCK_RES1 (packet, DOS_TRUE); + TRACE((_T("ACTION_REMOVE_NOTIFY\n"))); + for (hash = 0; hash < NOTIFY_HASH_SIZE; hash++) + { + for (n = unit->notifyhash[hash]; n; n = n->next) + { + if (n->notifyrequest == nr) + { + //write_log (_T("NotifyRequest %08X freed\n"), n->notifyrequest); + xfree (n->fullname); + xfree (n->partname); + free_notify (unit, hash, n); + PUT_PCK_RES1 (packet, DOS_TRUE); + return; + } + } + } + write_log (_T("Tried to free non-existing NotifyRequest %08X\n"), nr); + PUT_PCK_RES1 (packet, DOS_TRUE); } static void free_lock (Unit *unit, uaecptr lock) { - if (! lock) - return; + if (! lock) + return; - if (lock == get_long (unit->volume + 28) << 2) { - put_long (unit->volume + 28, get_long (lock)); - } else { - uaecptr current = get_long (unit->volume + 28); - uaecptr next = 0; - while (current) { - next = get_long (current << 2); - if (lock == next << 2) - break; - current = next; - } - if (!current) { - write_log (_T("tried to unlock non-existing lock %x\n"), lock); - return; - } - put_long (current << 2, get_long (lock)); - } - lock -= 4; - put_long (lock, get_long (unit->locklist)); - put_long (unit->locklist, lock); + if (lock == get_long (unit->volume + 28) << 2) + { + put_long (unit->volume + 28, get_long (lock)); + } + else + { + uaecptr current = get_long (unit->volume + 28); + uaecptr next = 0; + while (current) + { + next = get_long (current << 2); + if (lock == next << 2) + break; + current = next; + } + if (!current) + { + write_log (_T("tried to unlock non-existing lock %x\n"), lock); + return; + } + put_long (current << 2, get_long (lock)); + } + lock -= 4; + put_long (lock, get_long (unit->locklist)); + put_long (unit->locklist, lock); } static void - action_lock (Unit *unit, dpacket packet) +action_lock (Unit *unit, dpacket packet) { - uaecptr lock = GET_PCK_ARG1 (packet) << 2; - uaecptr name = GET_PCK_ARG2 (packet) << 2; - long mode = GET_PCK_ARG3 (packet); - a_inode *a; - int err; + uaecptr lock = GET_PCK_ARG1 (packet) << 2; + uaecptr name = GET_PCK_ARG2 (packet) << 2; + long mode = GET_PCK_ARG3 (packet); + a_inode *a; + int err; - if (mode != SHARED_LOCK && mode != EXCLUSIVE_LOCK) { - TRACE((_T("Bad mode %d (should be %d or %d).\n"), mode, SHARED_LOCK, EXCLUSIVE_LOCK)); - mode = SHARED_LOCK; - } + if (mode != SHARED_LOCK && mode != EXCLUSIVE_LOCK) + { + TRACE((_T("Bad mode %d (should be %d or %d).\n"), mode, SHARED_LOCK, EXCLUSIVE_LOCK)); + mode = SHARED_LOCK; + } - TRACE((_T("ACTION_LOCK(0x%lx, \"%s\", %d)\n"), lock, bstr (unit, name), mode)); - DUMPLOCK(unit, lock); + TRACE((_T("ACTION_LOCK(0x%lx, \"%s\", %d)\n"), lock, bstr (unit, name), mode)); + DUMPLOCK(unit, lock); - a = find_aino (unit, lock, bstr (unit, name), &err); - if (err == 0 && (a->elock || (mode != SHARED_LOCK && a->shlock > 0))) { - err = ERROR_OBJECT_IN_USE; - } - /* Lock() doesn't do access checks. */ - if (err != 0) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, err); - return; - } - if (mode == SHARED_LOCK) - a->shlock++; - else - a->elock = 1; - de_recycle_aino (unit, a); - PUT_PCK_RES1 (packet, make_lock (unit, a->uniq, mode) >> 2); + a = find_aino (unit, lock, bstr (unit, name), &err); + if (err == 0 && (a->elock || (mode != SHARED_LOCK && a->shlock > 0))) + { + err = ERROR_OBJECT_IN_USE; + } + /* Lock() doesn't do access checks. */ + if (err != 0) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, err); + return; + } + if (mode == SHARED_LOCK) + a->shlock++; + else + a->elock = 1; + de_recycle_aino (unit, a); + PUT_PCK_RES1 (packet, make_lock (unit, a->uniq, mode) >> 2); } static void action_free_lock (Unit *unit, dpacket packet) { - uaecptr lock = GET_PCK_ARG1 (packet) << 2; - a_inode *a; - TRACE((_T("ACTION_FREE_LOCK(0x%lx)\n"), lock)); - DUMPLOCK(unit, lock); + uaecptr lock = GET_PCK_ARG1 (packet) << 2; + a_inode *a; + TRACE((_T("ACTION_FREE_LOCK(0x%lx)\n"), lock)); + DUMPLOCK(unit, lock); - a = lookup_aino (unit, get_long (lock + 4)); - if (a == 0) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_OBJECT_NOT_AROUND); - return; - } - if (a->elock) - a->elock = 0; - else - a->shlock--; - recycle_aino (unit, a); - free_lock(unit, lock); + a = lookup_aino (unit, get_long (lock + 4)); + if (a == 0) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_OBJECT_NOT_AROUND); + return; + } + if (a->elock) + a->elock = 0; + else + a->shlock--; + recycle_aino (unit, a); + free_lock(unit, lock); - PUT_PCK_RES1 (packet, DOS_TRUE); + PUT_PCK_RES1 (packet, DOS_TRUE); } static uaecptr - action_dup_lock_2 (Unit *unit, dpacket packet, uae_u32 uniq) +action_dup_lock_2 (Unit *unit, dpacket packet, uae_u32 uniq) { - uaecptr out; - a_inode *a; + uaecptr out; + a_inode *a; - a = lookup_aino (unit, uniq); - if (a == 0) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_OBJECT_NOT_AROUND); - return 0; - } - /* DupLock()ing exclusive locks isn't possible, says the Autodoc, but - * at least the RAM-Handler seems to allow it. Let's see what happens - * if we don't. */ - if (a->elock) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_OBJECT_IN_USE); - return 0; - } - a->shlock++; - de_recycle_aino (unit, a); - out = make_lock (unit, a->uniq, -2) >> 2; - PUT_PCK_RES1 (packet, out); - return out; + a = lookup_aino (unit, uniq); + if (a == 0) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_OBJECT_NOT_AROUND); + return 0; + } + /* DupLock()ing exclusive locks isn't possible, says the Autodoc, but + * at least the RAM-Handler seems to allow it. Let's see what happens + * if we don't. */ + if (a->elock) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_OBJECT_IN_USE); + return 0; + } + a->shlock++; + de_recycle_aino (unit, a); + out = make_lock (unit, a->uniq, -2) >> 2; + PUT_PCK_RES1 (packet, out); + return out; } static void - action_dup_lock (Unit *unit, dpacket packet) +action_dup_lock (Unit *unit, dpacket packet) { - uaecptr lock = GET_PCK_ARG1 (packet) << 2; - TRACE((_T("ACTION_DUP_LOCK(0x%lx)\n"), lock)); - if (!lock) { - PUT_PCK_RES1 (packet, 0); - return; - } - action_dup_lock_2 (unit, packet, get_long(lock + 4)); + uaecptr lock = GET_PCK_ARG1 (packet) << 2; + TRACE((_T("ACTION_DUP_LOCK(0x%lx)\n"), lock)); + if (!lock) + { + PUT_PCK_RES1 (packet, 0); + return; + } + action_dup_lock_2 (unit, packet, get_long(lock + 4)); } static void - action_lock_from_fh (Unit *unit, dpacket packet) +action_lock_from_fh (Unit *unit, dpacket packet) { - Key *k = lookup_key (unit, GET_PCK_ARG1 (packet)); - TRACE((_T("ACTION_COPY_DIR_FH(0x%lx,'%s')\n"), GET_PCK_ARG1 (packet), k ? k->aino->aname : _T(""))); - if (k == 0) { - PUT_PCK_RES1 (packet, DOS_FALSE); - return; - } - action_dup_lock_2 (unit, packet, k->aino->uniq); + Key *k = lookup_key (unit, GET_PCK_ARG1 (packet)); + TRACE((_T("ACTION_COPY_DIR_FH(0x%lx,'%s')\n"), GET_PCK_ARG1 (packet), k ? k->aino->aname : _T(""))); + if (k == 0) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + return; + } + action_dup_lock_2 (unit, packet, k->aino->uniq); } static void free_exkey (Unit *unit, ExamineKey *ek) { - if (--ek->aino->exnext_count == 0) { - TRACE ((_T("Freeing ExKey and reducing total_locked from %d by %d\n"), - unit->total_locked_ainos, ek->aino->locked_children)); - unit->total_locked_ainos -= ek->aino->locked_children; - ek->aino->locked_children = 0; - } - ek->aino = 0; - ek->uniq = 0; + if (--ek->aino->exnext_count == 0) + { + TRACE ((_T("Freeing ExKey and reducing total_locked from %d by %d\n"), + unit->total_locked_ainos, ek->aino->locked_children)); + unit->total_locked_ainos -= ek->aino->locked_children; + ek->aino->locked_children = 0; + } + ek->aino = 0; + ek->uniq = 0; } static ExamineKey *lookup_exkey (Unit *unit, uae_u32 uniq) { - ExamineKey *ek; - int i; + ExamineKey *ek; + int i; - ek = unit->examine_keys; - for (i = 0; i < EXKEYS; i++, ek++) { - /* Did we find a free one? */ - if (ek->uniq == uniq) - return ek; - } - write_log (_T("Houston, we have a BIG problem.\n")); - return 0; + ek = unit->examine_keys; + for (i = 0; i < EXKEYS; i++, ek++) + { + /* Did we find a free one? */ + if (ek->uniq == uniq) + return ek; + } + write_log (_T("Houston, we have a BIG problem.\n")); + return 0; } /* This is so sick... who invented ACTION_EXAMINE_NEXT? What did he THINK??? */ static ExamineKey *new_exkey (Unit *unit, a_inode *aino) { - uae_u32 uniq; - uae_u32 oldest = 0xFFFFFFFE; - ExamineKey *ek, *oldest_ek = 0; - int i; + uae_u32 uniq; + uae_u32 oldest = 0xFFFFFFFE; + ExamineKey *ek, *oldest_ek = 0; + int i; - ek = unit->examine_keys; - for (i = 0; i < EXKEYS; i++, ek++) { - /* Did we find a free one? */ - if (ek->aino == 0) - continue; - if (ek->uniq < oldest) - oldest = (oldest_ek = ek)->uniq; - } - ek = unit->examine_keys; - for (i = 0; i < EXKEYS; i++, ek++) { - /* Did we find a free one? */ - if (ek->aino == 0) - goto found; - } - /* This message should usually be harmless. */ - write_log (_T("Houston, we have a problem (%s).\n"), aino->nname); - free_exkey (unit, oldest_ek); - ek = oldest_ek; - found: + ek = unit->examine_keys; + for (i = 0; i < EXKEYS; i++, ek++) + { + /* Did we find a free one? */ + if (ek->aino == 0) + continue; + if (ek->uniq < oldest) + oldest = (oldest_ek = ek)->uniq; + } + ek = unit->examine_keys; + for (i = 0; i < EXKEYS; i++, ek++) + { + /* Did we find a free one? */ + if (ek->aino == 0) + goto found; + } + /* This message should usually be harmless. */ + write_log (_T("Houston, we have a problem (%s).\n"), aino->nname); + free_exkey (unit, oldest_ek); + ek = oldest_ek; +found: - uniq = unit->next_exkey; - if (uniq >= 0xFFFFFFFE) { - /* Things will probably go wrong, but most likely the Amiga will crash - * before this happens because of something else. */ - uniq = 1; - } - unit->next_exkey = uniq+1; - ek->aino = aino; - ek->curr_file = 0; - ek->uniq = uniq; - return ek; + uniq = unit->next_exkey; + if (uniq >= 0xFFFFFFFE) + { + /* Things will probably go wrong, but most likely the Amiga will crash + * before this happens because of something else. */ + uniq = 1; + } + unit->next_exkey = uniq+1; + ek->aino = aino; + ek->curr_file = 0; + ek->uniq = uniq; + return ek; } static void move_exkeys (Unit *unit, a_inode *from, a_inode *to) { - int i; - unsigned long tmp = 0; - for (i = 0; i < EXKEYS; i++) { - ExamineKey *k = unit->examine_keys + i; - if (k->uniq == 0) - continue; - if (k->aino == from) { - k->aino = to; - tmp++; - } - } - if (tmp != from->exnext_count) - write_log (_T("filesys.c: Bug in ExNext bookkeeping. BAD.\n")); - to->exnext_count = from->exnext_count; - to->locked_children = from->locked_children; - from->exnext_count = 0; - from->locked_children = 0; + int i; + unsigned long tmp = 0; + for (i = 0; i < EXKEYS; i++) + { + ExamineKey *k = unit->examine_keys + i; + if (k->uniq == 0) + continue; + if (k->aino == from) + { + k->aino = to; + tmp++; + } + } + if (tmp != from->exnext_count) + write_log (_T("filesys.c: Bug in ExNext bookkeeping. BAD.\n")); + to->exnext_count = from->exnext_count; + to->locked_children = from->locked_children; + from->exnext_count = 0; + from->locked_children = 0; } static void - get_fileinfo (Unit *unit, dpacket packet, uaecptr info, a_inode *aino) +get_fileinfo (Unit *unit, dpacket packet, uaecptr info, a_inode *aino) { - struct mystat statbuf; - int days, mins, ticks; - int i, n, entrytype, blocksize; - int fsdb_can = fsdb_cando (unit); - TCHAR *xs; - char *x, *x2; - bool ok = true; + struct mystat statbuf; + int days, mins, ticks; + int i, n, entrytype, blocksize; + int fsdb_can = fsdb_cando (unit); + TCHAR *xs; + char *x, *x2; + bool ok = true; - memset(&statbuf, 0, sizeof statbuf); - /* No error checks - this had better work. */ - if (unit->volflags & MYVOLUMEINFO_ARCHIVE) - ok = zfile_stat_archive (aino->nname, &statbuf) != 0; - else - my_stat (aino->nname, &statbuf); + memset(&statbuf, 0, sizeof statbuf); + /* No error checks - this had better work. */ + if (unit->volflags & MYVOLUMEINFO_ARCHIVE) + ok = zfile_stat_archive (aino->nname, &statbuf) != 0; + else + my_stat (aino->nname, &statbuf); - if (!ok) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_NOT_A_DOS_DISK); - return; - } + if (!ok) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_NOT_A_DOS_DISK); + return; + } - if (aino->parent == 0) { - /* Guru book says ST_ROOT = 1 (root directory, not currently used) - * but some programs really expect 2 from root dir.. - */ - entrytype = 2; - xs = unit->ui.volname; - } else { - entrytype = aino->dir ? 2 : -3; - xs = aino->aname; - } - put_long (info + 4, entrytype); - /* AmigaOS docs say these have to contain the same value. */ - put_long (info + 120, entrytype); + if (aino->parent == 0) + { + /* Guru book says ST_ROOT = 1 (root directory, not currently used) + * but some programs really expect 2 from root dir.. + */ + entrytype = 2; + xs = unit->ui.volname; + } + else + { + entrytype = aino->dir ? 2 : -3; + xs = aino->aname; + } + put_long (info + 4, entrytype); + /* AmigaOS docs say these have to contain the same value. */ + put_long (info + 120, entrytype); - TRACE((_T("name=\"%s\"\n"), xs)); - x2 = x = ua_fs (xs, -1); - n = strlen (x); - if (n > 106) - n = 106; - i = 8; - put_byte (info + i, n); i++; - while (n--) - put_byte (info + i, *x), i++, x++; - while (i < 108) - put_byte (info + i, 0), i++; - xfree (x2); + TRACE((_T("name=\"%s\"\n"), xs)); + x2 = x = ua_fs (xs, -1); + n = strlen (x); + if (n > 106) + n = 106; + i = 8; + put_byte (info + i, n); + i++; + while (n--) + put_byte (info + i, *x), i++, x++; + while (i < 108) + put_byte (info + i, 0), i++; + xfree (x2); - put_long (info + 116, fsdb_can ? aino->amigaos_mode : fsdb_mode_supported(aino)); - put_long (info + 124, statbuf.size > MAXFILESIZE32 ? MAXFILESIZE32 : (uae_u32)statbuf.size); + put_long (info + 116, fsdb_can ? aino->amigaos_mode : fsdb_mode_supported(aino)); + put_long (info + 124, statbuf.size > MAXFILESIZE32 ? MAXFILESIZE32 : (uae_u32)statbuf.size); #ifdef HAVE_ST_BLOCKS - put_long (info + 128, statbuf.st_blocks); + put_long (info + 128, statbuf.st_blocks); #else - blocksize = 512; - put_long (info + 128, (statbuf.size + blocksize - 1) / blocksize); + blocksize = 512; + put_long (info + 128, (statbuf.size + blocksize - 1) / blocksize); #endif - timeval_to_amiga (&statbuf.mtime, &days, &mins, &ticks); - put_long (info + 132, days); - put_long (info + 136, mins); - put_long (info + 140, ticks); - if (aino->comment == 0 || !fsdb_can) - put_long (info + 144, 0); - else { - TRACE((_T("comment=\"%s\"\n"), aino->comment)); - i = 144; - xs = aino->comment; - if (!xs) - xs= _T(""); - x2 = x = ua_fs (xs, -1); - n = strlen (x); - if (n > 78) - n = 78; - put_byte (info + i, n); i++; - while (n--) - put_byte (info + i, *x), i++, x++; - while (i < 224) - put_byte (info + i, 0), i++; - xfree (x2); - } - PUT_PCK_RES1 (packet, DOS_TRUE); + timeval_to_amiga (&statbuf.mtime, &days, &mins, &ticks); + put_long (info + 132, days); + put_long (info + 136, mins); + put_long (info + 140, ticks); + if (aino->comment == 0 || !fsdb_can) + put_long (info + 144, 0); + else + { + TRACE((_T("comment=\"%s\"\n"), aino->comment)); + i = 144; + xs = aino->comment; + if (!xs) + xs= _T(""); + x2 = x = ua_fs (xs, -1); + n = strlen (x); + if (n > 78) + n = 78; + put_byte (info + i, n); + i++; + while (n--) + put_byte (info + i, *x), i++, x++; + while (i < 224) + put_byte (info + i, 0), i++; + xfree (x2); + } + PUT_PCK_RES1 (packet, DOS_TRUE); } int get_native_path (uae_u32 lock, TCHAR *out) { - int i = 0; - for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) { - if (mountinfo.ui[i].self) { - a_inode *a = lookup_aino (mountinfo.ui[i].self, get_long ((lock << 2) + 4)); - if (a) { - _tcscpy (out, a->nname); - return 0; - } - } - } - return -1; + int i = 0; + for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) + { + if (mountinfo.ui[i].self) + { + a_inode *a = lookup_aino (mountinfo.ui[i].self, get_long ((lock << 2) + 4)); + if (a) + { + _tcscpy (out, a->nname); + return 0; + } + } + } + return -1; } #define REC_EXCLUSIVE 0 @@ -3095,179 +3364,202 @@ int get_native_path (uae_u32 lock, TCHAR *out) static struct lockrecord *new_record (uae_u32 packet, uae_u32 pos, uae_u32 len, uae_u32 mode, uae_u32 timeout, uae_u32 msg) { - struct lockrecord *lr = xcalloc (struct lockrecord, 1); - lr->packet = packet; - lr->pos = pos; - lr->len = len; - lr->mode = mode; - lr->timeout = timeout * vblank_hz / 50; - lr->msg = msg; - return lr; + struct lockrecord *lr = xcalloc (struct lockrecord, 1); + lr->packet = packet; + lr->pos = pos; + lr->len = len; + lr->mode = mode; + lr->timeout = timeout * vblank_hz / 50; + lr->msg = msg; + return lr; } static bool record_hit (Unit *unit, Key *k, uae_u32 pos, uae_u32 len, uae_u32 mode) { - bool exclusive = mode == REC_EXCLUSIVE || mode == REC_EXCLUSIVE_IMMED; - for (Key *k2 = unit->keys; k2; k2 = k2->next) { - if (k2->aino->uniq == k->aino->uniq) { - if (k2 == k) - continue; - for (struct lockrecord *lr = k2->record; lr; lr = lr->next) { - bool exclusive2 = lr->mode == REC_EXCLUSIVE || lr->mode == REC_EXCLUSIVE_IMMED; - if (exclusive || exclusive2) { - uae_u32 a1 = pos; - uae_u32 a2 = pos + len; - uae_u32 b1 = lr->pos; - uae_u32 b2 = lr->pos + lr->len; - if (len && lr->len) { - bool hit = (a1 >= b1 && a1 < b2) || (a2 > b1 && a2 < b2) || (b1 >= a1 && b1 < a2) || (b2 > a1 && b2 < a2); - if (hit) - return true; - } - } - } - } - } - return false; + bool exclusive = mode == REC_EXCLUSIVE || mode == REC_EXCLUSIVE_IMMED; + for (Key *k2 = unit->keys; k2; k2 = k2->next) + { + if (k2->aino->uniq == k->aino->uniq) + { + if (k2 == k) + continue; + for (struct lockrecord *lr = k2->record; lr; lr = lr->next) + { + bool exclusive2 = lr->mode == REC_EXCLUSIVE || lr->mode == REC_EXCLUSIVE_IMMED; + if (exclusive || exclusive2) + { + uae_u32 a1 = pos; + uae_u32 a2 = pos + len; + uae_u32 b1 = lr->pos; + uae_u32 b2 = lr->pos + lr->len; + if (len && lr->len) + { + bool hit = (a1 >= b1 && a1 < b2) || (a2 > b1 && a2 < b2) || (b1 >= a1 && b1 < a2) || (b2 > a1 && b2 < a2); + if (hit) + return true; + } + } + } + } + } + return false; } static void record_timeout (Unit *unit) { - bool retry = true; - while (retry) { - retry = false; - struct lockrecord *prev = NULL; - for (struct lockrecord *lr = unit->waitingrecords; lr; lr = lr->next) { - lr->timeout--; - if (lr->timeout == 0) { - Key *k = lookup_key (unit, GET_PCK_ARG1 (lr->packet)); - PUT_PCK_RES1 (lr->packet, DOS_FALSE); - PUT_PCK_RES2 (lr->packet, ERROR_LOCK_TIMEOUT); - // mark packet as complete - put_long (lr->msg + 4, 0xfffffffe); - uae_Signal (get_long (unit->volume + 176 - 32), 1 << 13); - if (prev) - prev->next = lr->next; - else - unit->waitingrecords = lr->next; - write_log (_T("queued record timed out '%s',%d,%d,%d,%d\n"), k ? k->aino->nname : _T("NULL"), lr->pos, lr->len, lr->mode, lr->timeout); - xfree (lr); - retry = true; - break; - } - prev = lr; - } - } + bool retry = true; + while (retry) + { + retry = false; + struct lockrecord *prev = NULL; + for (struct lockrecord *lr = unit->waitingrecords; lr; lr = lr->next) + { + lr->timeout--; + if (lr->timeout == 0) + { + Key *k = lookup_key (unit, GET_PCK_ARG1 (lr->packet)); + PUT_PCK_RES1 (lr->packet, DOS_FALSE); + PUT_PCK_RES2 (lr->packet, ERROR_LOCK_TIMEOUT); + // mark packet as complete + put_long (lr->msg + 4, 0xfffffffe); + uae_Signal (get_long (unit->volume + 176 - 32), 1 << 13); + if (prev) + prev->next = lr->next; + else + unit->waitingrecords = lr->next; + write_log (_T("queued record timed out '%s',%d,%d,%d,%d\n"), k ? k->aino->nname : _T("NULL"), lr->pos, lr->len, lr->mode, lr->timeout); + xfree (lr); + retry = true; + break; + } + prev = lr; + } + } } static void record_check_waiting (Unit *unit) { - bool retry = true; - while (retry) { - retry = false; - struct lockrecord *prev = NULL; - for (struct lockrecord *lr = unit->waitingrecords; lr; lr = lr->next) { - Key *k = lookup_key (unit, GET_PCK_ARG1 (lr->packet)); - if (!k || !record_hit (unit, k, lr->pos, lr->len, lr->mode)) { - if (prev) - prev->next = lr->next; - else - unit->waitingrecords = lr->next; - write_log (_T("queued record released '%s',%d,%d,%d,%d\n"), k->aino->nname, lr->pos, lr->len, lr->mode, lr->timeout); - // mark packet as complete - put_long (lr->msg + 4, 0xffffffff); - xfree (lr); - retry = true; - break; - } - prev = lr; - } - } + bool retry = true; + while (retry) + { + retry = false; + struct lockrecord *prev = NULL; + for (struct lockrecord *lr = unit->waitingrecords; lr; lr = lr->next) + { + Key *k = lookup_key (unit, GET_PCK_ARG1 (lr->packet)); + if (!k || !record_hit (unit, k, lr->pos, lr->len, lr->mode)) + { + if (prev) + prev->next = lr->next; + else + unit->waitingrecords = lr->next; + write_log (_T("queued record released '%s',%d,%d,%d,%d\n"), k->aino->nname, lr->pos, lr->len, lr->mode, lr->timeout); + // mark packet as complete + put_long (lr->msg + 4, 0xffffffff); + xfree (lr); + retry = true; + break; + } + prev = lr; + } + } } static int action_lock_record (Unit *unit, dpacket packet, uae_u32 msg) { - Key *k = lookup_key (unit, GET_PCK_ARG1 (packet)); - uae_u32 pos = GET_PCK_ARG2 (packet); - uae_u32 len = GET_PCK_ARG3 (packet); - uae_u32 mode = GET_PCK_ARG4 (packet); - uae_u32 timeout = GET_PCK_ARG5 (packet); + Key *k = lookup_key (unit, GET_PCK_ARG1 (packet)); + uae_u32 pos = GET_PCK_ARG2 (packet); + uae_u32 len = GET_PCK_ARG3 (packet); + uae_u32 mode = GET_PCK_ARG4 (packet); + uae_u32 timeout = GET_PCK_ARG5 (packet); - bool exclusive = mode == REC_EXCLUSIVE || mode == REC_EXCLUSIVE_IMMED; + bool exclusive = mode == REC_EXCLUSIVE || mode == REC_EXCLUSIVE_IMMED; - write_log (_T("action_lock_record('%s',%d,%d,%d,%d)\n"), k ? k->aino->nname : _T("null"), pos, len, mode, timeout); + write_log (_T("action_lock_record('%s',%d,%d,%d,%d)\n"), k ? k->aino->nname : _T("null"), pos, len, mode, timeout); - if (!k || mode > REC_SHARED_IMMED) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_OBJECT_WRONG_TYPE); - return 1; - } + if (!k || mode > REC_SHARED_IMMED) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_OBJECT_WRONG_TYPE); + return 1; + } - if (mode == REC_EXCLUSIVE_IMMED || mode == REC_SHARED_IMMED) - timeout = 0; + if (mode == REC_EXCLUSIVE_IMMED || mode == REC_SHARED_IMMED) + timeout = 0; - if (record_hit (unit, k, pos, len, mode)) { - if (timeout && msg) { - // queue it and do not reply - struct lockrecord *lr = new_record (packet, pos, len, mode, timeout, msg); - if (unit->waitingrecords) { - lr->next = unit->waitingrecords; - unit->waitingrecords = lr; - } else { - unit->waitingrecords = lr; - } - write_log (_T("-> collision, timeout queued\n")); - return -1; - } - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_LOCK_COLLISION); - write_log (_T("-> ERROR_LOCK_COLLISION\n")); - return 1; - } + if (record_hit (unit, k, pos, len, mode)) + { + if (timeout && msg) + { + // queue it and do not reply + struct lockrecord *lr = new_record (packet, pos, len, mode, timeout, msg); + if (unit->waitingrecords) + { + lr->next = unit->waitingrecords; + unit->waitingrecords = lr; + } + else + { + unit->waitingrecords = lr; + } + write_log (_T("-> collision, timeout queued\n")); + return -1; + } + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_LOCK_COLLISION); + write_log (_T("-> ERROR_LOCK_COLLISION\n")); + return 1; + } - struct lockrecord *lr = new_record (GET_PCK_ARG1 (packet), pos, len, mode, timeout, 0); - if (k->record) { - lr->next = k->record; - k->record = lr; - } else { - k->record = lr; - } - PUT_PCK_RES1 (packet, DOS_TRUE); - write_log (_T("-> OK\n")); - return 1; + struct lockrecord *lr = new_record (GET_PCK_ARG1 (packet), pos, len, mode, timeout, 0); + if (k->record) + { + lr->next = k->record; + k->record = lr; + } + else + { + k->record = lr; + } + PUT_PCK_RES1 (packet, DOS_TRUE); + write_log (_T("-> OK\n")); + return 1; } static void action_free_record (Unit *unit, dpacket packet) { - Key *k = lookup_key (unit, GET_PCK_ARG1 (packet)); - uae_u32 pos = GET_PCK_ARG2 (packet); - uae_u32 len = GET_PCK_ARG3 (packet); + Key *k = lookup_key (unit, GET_PCK_ARG1 (packet)); + uae_u32 pos = GET_PCK_ARG2 (packet); + uae_u32 len = GET_PCK_ARG3 (packet); - write_log (_T("action_free_record('%s',%d,%d)\n"), k ? k->aino->nname : _T("null"), pos, len); + write_log (_T("action_free_record('%s',%d,%d)\n"), k ? k->aino->nname : _T("null"), pos, len); - if (!k) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_OBJECT_WRONG_TYPE); - return; - } + if (!k) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_OBJECT_WRONG_TYPE); + return; + } - struct lockrecord *prev = NULL; - for (struct lockrecord *lr = k->record; lr; lr = lr->next) { - if (lr->pos == pos && lr->len == len) { - if (prev) - prev->next = lr->next; - else - k->record = lr->next; - xfree (lr); - write_log (_T("->OK\n")); - record_check_waiting (unit); - PUT_PCK_RES1 (packet, DOS_TRUE); - return; - } - } - write_log (_T("-> ERROR_RECORD_NOT_LOCKED\n")); - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_RECORD_NOT_LOCKED); + struct lockrecord *prev = NULL; + for (struct lockrecord *lr = k->record; lr; lr = lr->next) + { + if (lr->pos == pos && lr->len == len) + { + if (prev) + prev->next = lr->next; + else + k->record = lr->next; + xfree (lr); + write_log (_T("->OK\n")); + record_check_waiting (unit); + PUT_PCK_RES1 (packet, DOS_TRUE); + return; + } + } + write_log (_T("-> ERROR_RECORD_NOT_LOCKED\n")); + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_RECORD_NOT_LOCKED); } #define EXALL_DEBUG 0 @@ -3275,401 +3567,452 @@ static void action_free_record (Unit *unit, dpacket packet) static ExAllKey *getexall (Unit *unit, uaecptr control, int id) { - int i; - if (id < 0) { - for (i = 0; i < EXALLKEYS; i++) { - if (unit->exalls[i].id == 0) { - unit->exallid++; - if (unit->exallid == EXALL_END) - unit->exallid++; - unit->exalls[i].id = unit->exallid; - unit->exalls[i].control = control; - return &unit->exalls[i]; - } - } - } else if (id > 0) { - for (i = 0; i < EXALLKEYS; i++) { - if (unit->exalls[i].id == id) - return &unit->exalls[i]; - } - } - return NULL; + int i; + if (id < 0) + { + for (i = 0; i < EXALLKEYS; i++) + { + if (unit->exalls[i].id == 0) + { + unit->exallid++; + if (unit->exallid == EXALL_END) + unit->exallid++; + unit->exalls[i].id = unit->exallid; + unit->exalls[i].control = control; + return &unit->exalls[i]; + } + } + } + else if (id > 0) + { + for (i = 0; i < EXALLKEYS; i++) + { + if (unit->exalls[i].id == id) + return &unit->exalls[i]; + } + } + return NULL; } static int exalldo (uaecptr exalldata, uae_u32 exalldatasize, uae_u32 type, uaecptr control, Unit *unit, a_inode *aino) { - uaecptr exp = exalldata; - int i; - int size, size2; - int entrytype; - TCHAR *xs = NULL, *commentx = NULL; - uae_u32 flags = 15; - int days, mins, ticks; - struct mystat statbuf; - int fsdb_can = fsdb_cando (unit); - uae_u16 uid = 0, gid = 0; - char *x = NULL, *comment = NULL; - int ret = 0; + uaecptr exp = exalldata; + int i; + int size, size2; + int entrytype; + TCHAR *xs = NULL, *commentx = NULL; + uae_u32 flags = 15; + int days, mins, ticks; + struct mystat statbuf; + int fsdb_can = fsdb_cando (unit); + uae_u16 uid = 0, gid = 0; + char *x = NULL, *comment = NULL; + int ret = 0; - memset(&statbuf, 0, sizeof statbuf); - if (unit->volflags & MYVOLUMEINFO_ARCHIVE) - zfile_stat_archive (aino->nname, &statbuf); - else - my_stat (aino->nname, &statbuf); + memset(&statbuf, 0, sizeof statbuf); + if (unit->volflags & MYVOLUMEINFO_ARCHIVE) + zfile_stat_archive (aino->nname, &statbuf); + else + my_stat (aino->nname, &statbuf); - if (aino->parent == 0) { - entrytype = 2; - xs = unit->ui.volname; - } else { - entrytype = aino->dir ? 2 : -3; - xs = aino->aname; - } - x = ua_fs (xs, -1); + if (aino->parent == 0) + { + entrytype = 2; + xs = unit->ui.volname; + } + else + { + entrytype = aino->dir ? 2 : -3; + xs = aino->aname; + } + x = ua_fs (xs, -1); - size = 0; - size2 = 4; - if (type >= 1) { - size2 += 4; - size += strlen (x) + 1; - size = (size + 3) & ~3; - } - if (type >= 2) - size2 += 4; - if (type >= 3) - size2 += 4; - if (type >= 4) { - flags = fsdb_can ? aino->amigaos_mode : fsdb_mode_supported(aino); - size2 += 4; - } - if (type >= 5) { - timeval_to_amiga (&statbuf.mtime, &days, &mins, &ticks); - size2 += 12; - } - if (type >= 6) { - size2 += 4; - if (aino->comment == 0 || !fsdb_can) - commentx = _T(""); - else - commentx = aino->comment; - comment = ua_fs (commentx, -1); - size += strlen (comment) + 1; - size = (size + 3) & ~3; - } - if (type >= 7) { - size2 += 4; - uid = 0; - gid = 0; - } + size = 0; + size2 = 4; + if (type >= 1) + { + size2 += 4; + size += strlen (x) + 1; + size = (size + 3) & ~3; + } + if (type >= 2) + size2 += 4; + if (type >= 3) + size2 += 4; + if (type >= 4) + { + flags = fsdb_can ? aino->amigaos_mode : fsdb_mode_supported(aino); + size2 += 4; + } + if (type >= 5) + { + timeval_to_amiga (&statbuf.mtime, &days, &mins, &ticks); + size2 += 12; + } + if (type >= 6) + { + size2 += 4; + if (aino->comment == 0 || !fsdb_can) + commentx = _T(""); + else + commentx = aino->comment; + comment = ua_fs (commentx, -1); + size += strlen (comment) + 1; + size = (size + 3) & ~3; + } + if (type >= 7) + { + size2 += 4; + uid = 0; + gid = 0; + } - i = get_long (control + 0); - while (i > 0) { - exp = get_long (exp); /* ed_Next */ - i--; - } + i = get_long (control + 0); + while (i > 0) + { + exp = get_long (exp); /* ed_Next */ + i--; + } - if (exalldata + exalldatasize - exp < size + size2) - goto end; /* not enough space */ + if (exalldata + exalldatasize - exp < size + size2) + goto end; /* not enough space */ #if EXALL_DEBUG > 0 - write_log (_T("ID=%d, %d, %08x: '%s'%s\n"), - get_long (control + 4), get_long (control + 0), exp, xs, aino->dir ? _T(" [DIR]") : _T("")); + write_log (_T("ID=%d, %d, %08x: '%s'%s\n"), + get_long (control + 4), get_long (control + 0), exp, xs, aino->dir ? _T(" [DIR]") : _T("")); #endif - put_long (exp, exp + size + size2); /* ed_Next */ - if (type >= 1) { - put_long (exp + 4, exp + size2); - for (i = 0; i <= strlen (x); i++) { - put_byte (exp + size2, x[i]); - size2++; - } - } - if (type >= 2) - put_long (exp + 8, entrytype); - if (type >= 3) - put_long (exp + 12, statbuf.size > MAXFILESIZE32 ? MAXFILESIZE32 : statbuf.size); - if (type >= 4) - put_long (exp + 16, flags); - if (type >= 5) { - put_long (exp + 20, days); - put_long (exp + 24, mins); - put_long (exp + 28, ticks); - } - if (type >= 6) { - put_long (exp + 32, exp + size2); - put_byte (exp + size2, strlen (comment)); - for (i = 0; i <= strlen (comment); i++) { - put_byte (exp + size2, comment[i]); - size2++; - } - } - if (type >= 7) { - put_word (exp + 36, uid); - put_word (exp + 38, gid); - } - put_long (control + 0, get_long (control + 0) + 1); - ret = 1; + put_long (exp, exp + size + size2); /* ed_Next */ + if (type >= 1) + { + put_long (exp + 4, exp + size2); + for (i = 0; i <= strlen (x); i++) + { + put_byte (exp + size2, x[i]); + size2++; + } + } + if (type >= 2) + put_long (exp + 8, entrytype); + if (type >= 3) + put_long (exp + 12, statbuf.size > MAXFILESIZE32 ? MAXFILESIZE32 : statbuf.size); + if (type >= 4) + put_long (exp + 16, flags); + if (type >= 5) + { + put_long (exp + 20, days); + put_long (exp + 24, mins); + put_long (exp + 28, ticks); + } + if (type >= 6) + { + put_long (exp + 32, exp + size2); + put_byte (exp + size2, strlen (comment)); + for (i = 0; i <= strlen (comment); i++) + { + put_byte (exp + size2, comment[i]); + size2++; + } + } + if (type >= 7) + { + put_word (exp + 36, uid); + put_word (exp + 38, gid); + } + put_long (control + 0, get_long (control + 0) + 1); + ret = 1; end: - xfree (x); - xfree (comment); - return ret; + xfree (x); + xfree (comment); + return ret; } static int action_examine_all_do (Unit *unit, uaecptr lock, ExAllKey *eak, uaecptr exalldata, uae_u32 exalldatasize, uae_u32 type, uaecptr control) { - a_inode *aino, *base = NULL; - int ok; - uae_u32 err; - struct fs_dirhandle *d; - TCHAR fn[MAX_DPATH]; + a_inode *aino, *base = NULL; + int ok; + uae_u32 err; + struct fs_dirhandle *d; + TCHAR fn[MAX_DPATH]; - if (lock != 0) - base = lookup_aino (unit, get_long (lock + 4)); - if (base == 0) - base = &unit->rootnode; - for (;;) { - uae_u64 uniq = 0; - d = eak->dirhandle; - if (!eak->fn) { - do { - if (d->fstype == FS_ARCHIVE) - ok = zfile_readdir_archive (d->zd, fn); - else if (d->fstype == FS_DIRECTORY) - ok = my_readdir (d->od, fn); - else - ok = 0; - } while (ok && d->fstype == FS_DIRECTORY && fsdb_name_invalid_dir (fn)); - if (!ok) - return 0; - } else { - _tcscpy (fn, eak->fn); - xfree (eak->fn); - eak->fn = NULL; - } - aino = lookup_child_aino_for_exnext (unit, base, fn, &err, uniq); - if (!aino) - return 0; - eak->id = unit->exallid++; - put_long (control + 4, eak->id); - if (!exalldo (exalldata, exalldatasize, type, control, unit, aino)) { - eak->fn = my_strdup (fn); /* no space in exallstruct, save current entry */ - break; - } - } - return 1; + if (lock != 0) + base = lookup_aino (unit, get_long (lock + 4)); + if (base == 0) + base = &unit->rootnode; + for (;;) + { + uae_u64 uniq = 0; + d = eak->dirhandle; + if (!eak->fn) + { + do + { + if (d->fstype == FS_ARCHIVE) + ok = zfile_readdir_archive (d->zd, fn); + else if (d->fstype == FS_DIRECTORY) + ok = my_readdir (d->od, fn); + else + ok = 0; + } + while (ok && d->fstype == FS_DIRECTORY && fsdb_name_invalid_dir (fn)); + if (!ok) + return 0; + } + else + { + _tcscpy (fn, eak->fn); + xfree (eak->fn); + eak->fn = NULL; + } + aino = lookup_child_aino_for_exnext (unit, base, fn, &err, uniq); + if (!aino) + return 0; + eak->id = unit->exallid++; + put_long (control + 4, eak->id); + if (!exalldo (exalldata, exalldatasize, type, control, unit, aino)) + { + eak->fn = my_strdup (fn); /* no space in exallstruct, save current entry */ + break; + } + } + return 1; } static int action_examine_all_end (Unit *unit, dpacket packet) { - uae_u32 id; - uae_u32 doserr = 0; - ExAllKey *eak; - uaecptr control = GET_PCK_ARG5 (packet); + uae_u32 id; + uae_u32 doserr = 0; + ExAllKey *eak; + uaecptr control = GET_PCK_ARG5 (packet); - if (kickstart_version < 36) - return 0; - id = get_long (control + 4); - eak = getexall (unit, control, id); + if (kickstart_version < 36) + return 0; + id = get_long (control + 4); + eak = getexall (unit, control, id); #if EXALL_DEBUG > 0 - write_log (_T("EXALL_END ID=%d %x\n"), id, eak); + write_log (_T("EXALL_END ID=%d %x\n"), id, eak); #endif - if (!eak) { - write_log (_T("FILESYS: EXALL_END non-existing ID %d\n"), id); - doserr = ERROR_OBJECT_WRONG_TYPE; - } else { - eak->id = 0; - fs_closedir (eak->dirhandle); - xfree (eak->fn); - eak->fn = NULL; - eak->dirhandle = NULL; - } - if (doserr) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, doserr); - } else { - PUT_PCK_RES1 (packet, DOS_TRUE); - } - return 1; + if (!eak) + { + write_log (_T("FILESYS: EXALL_END non-existing ID %d\n"), id); + doserr = ERROR_OBJECT_WRONG_TYPE; + } + else + { + eak->id = 0; + fs_closedir (eak->dirhandle); + xfree (eak->fn); + eak->fn = NULL; + eak->dirhandle = NULL; + } + if (doserr) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, doserr); + } + else + { + PUT_PCK_RES1 (packet, DOS_TRUE); + } + return 1; } static int action_examine_all (Unit *unit, dpacket packet) { - uaecptr lock = GET_PCK_ARG1 (packet) << 2; - uaecptr exalldata = GET_PCK_ARG2 (packet); - uae_u32 exalldatasize = GET_PCK_ARG3 (packet); - uae_u32 type = GET_PCK_ARG4 (packet); - uaecptr control = GET_PCK_ARG5 (packet); + uaecptr lock = GET_PCK_ARG1 (packet) << 2; + uaecptr exalldata = GET_PCK_ARG2 (packet); + uae_u32 exalldatasize = GET_PCK_ARG3 (packet); + uae_u32 type = GET_PCK_ARG4 (packet); + uaecptr control = GET_PCK_ARG5 (packet); - ExAllKey *eak = NULL; - a_inode *base = NULL; - struct fs_dirhandle *d; - int ok, i; - uaecptr exp; - uae_u32 id, doserr = ERROR_NO_MORE_ENTRIES; + ExAllKey *eak = NULL; + a_inode *base = NULL; + struct fs_dirhandle *d; + int ok, i; + uaecptr exp; + uae_u32 id, doserr = ERROR_NO_MORE_ENTRIES; - ok = 0; + ok = 0; #if EXALL_DEBUG > 0 - write_log (_T("exall: %08x %08x-%08x %d %d %08x\n"), - lock, exalldata, exalldata + exalldatasize, exalldatasize, type, control); - write_log (_T("exall: MatchString %08x, MatchFunc %08x\n"), - get_long (control + 8), get_long (control + 12)); + write_log (_T("exall: %08x %08x-%08x %d %d %08x\n"), + lock, exalldata, exalldata + exalldatasize, exalldatasize, type, control); + write_log (_T("exall: MatchString %08x, MatchFunc %08x\n"), + get_long (control + 8), get_long (control + 12)); #endif - put_long (control + 0, 0); /* eac_Entries */ + put_long (control + 0, 0); /* eac_Entries */ - /* EXAMINE ALL might use dos.library MatchPatternNoCase() which is >=36 */ - if (kickstart_version < 36) - return 0; + /* EXAMINE ALL might use dos.library MatchPatternNoCase() which is >=36 */ + if (kickstart_version < 36) + return 0; - if (type == 0 || type > 7) { - doserr = ERROR_BAD_NUMBER; - goto fail; - } + if (type == 0 || type > 7) + { + doserr = ERROR_BAD_NUMBER; + goto fail; + } - PUT_PCK_RES1 (packet, DOS_TRUE); - id = get_long (control + 4); - if (id == EXALL_END) { - write_log (_T("FILESYS: EXALL called twice with ERROR_NO_MORE_ENTRIES\n")); - goto fail; /* already ended exall() */ - } - if (id) { - eak = getexall (unit, control, id); - if (!eak) { - write_log (_T("FILESYS: EXALL non-existing ID %d\n"), id); - doserr = ERROR_OBJECT_WRONG_TYPE; - goto fail; - } - if (!action_examine_all_do (unit, lock, eak, exalldata, exalldatasize, type, control)) - goto fail; - if (get_long (control + 0) == 0) { - /* uh, no space for first entry.. */ - doserr = ERROR_NO_FREE_STORE; - goto fail; - } + PUT_PCK_RES1 (packet, DOS_TRUE); + id = get_long (control + 4); + if (id == EXALL_END) + { + write_log (_T("FILESYS: EXALL called twice with ERROR_NO_MORE_ENTRIES\n")); + goto fail; /* already ended exall() */ + } + if (id) + { + eak = getexall (unit, control, id); + if (!eak) + { + write_log (_T("FILESYS: EXALL non-existing ID %d\n"), id); + doserr = ERROR_OBJECT_WRONG_TYPE; + goto fail; + } + if (!action_examine_all_do (unit, lock, eak, exalldata, exalldatasize, type, control)) + goto fail; + if (get_long (control + 0) == 0) + { + /* uh, no space for first entry.. */ + doserr = ERROR_NO_FREE_STORE; + goto fail; + } - } else { + } + else + { - eak = getexall (unit, control, -1); - if (!eak) - goto fail; - if (lock != 0) - base = lookup_aino (unit, get_long (lock + 4)); - if (base == 0) - base = &unit->rootnode; + eak = getexall (unit, control, -1); + if (!eak) + goto fail; + if (lock != 0) + base = lookup_aino (unit, get_long (lock + 4)); + if (base == 0) + base = &unit->rootnode; #if EXALL_DEBUG > 0 - write_log("exall: ID=%d '%s'\n", eak->id, base->nname); + write_log("exall: ID=%d '%s'\n", eak->id, base->nname); #endif - d = fs_opendir (unit, base); - if (!d) - goto fail; - eak->dirhandle = d; - put_long (control + 4, eak->id); - if (!action_examine_all_do (unit, lock, eak, exalldata, exalldatasize, type, control)) - goto fail; - if (get_long (control + 0) == 0) { - /* uh, no space for first entry.. */ - doserr = ERROR_NO_FREE_STORE; - goto fail; - } + d = fs_opendir (unit, base); + if (!d) + goto fail; + eak->dirhandle = d; + put_long (control + 4, eak->id); + if (!action_examine_all_do (unit, lock, eak, exalldata, exalldatasize, type, control)) + goto fail; + if (get_long (control + 0) == 0) + { + /* uh, no space for first entry.. */ + doserr = ERROR_NO_FREE_STORE; + goto fail; + } - } - ok = 1; + } + ok = 1; fail: - /* Clear last ed_Next. This "list" is quite non-Amiga like.. */ - exp = exalldata; - i = get_long (control + 0); - for (;;) { - if (i <= 1) { - if (exp) - put_long (exp, 0); - break; - } - exp = get_long (exp); /* ed_Next */ - i--; - } + /* Clear last ed_Next. This "list" is quite non-Amiga like.. */ + exp = exalldata; + i = get_long (control + 0); + for (;;) + { + if (i <= 1) + { + if (exp) + put_long (exp, 0); + break; + } + exp = get_long (exp); /* ed_Next */ + i--; + } #if EXALL_DEBUG > 0 - write_log("ok=%d, err=%d, eac_Entries = %d\n", ok, ok ? -1 : doserr, get_long (control + 0)); + write_log("ok=%d, err=%d, eac_Entries = %d\n", ok, ok ? -1 : doserr, get_long (control + 0)); #endif - if (!ok) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, doserr); - if (eak) { - eak->id = 0; - fs_closedir (eak->dirhandle); - eak->dirhandle = NULL; - xfree (eak->fn); - eak->fn = NULL; - } - if (doserr == ERROR_NO_MORE_ENTRIES) - put_long (control + 4, EXALL_END); - } - return 1; + if (!ok) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, doserr); + if (eak) + { + eak->id = 0; + fs_closedir (eak->dirhandle); + eak->dirhandle = NULL; + xfree (eak->fn); + eak->fn = NULL; + } + if (doserr == ERROR_NO_MORE_ENTRIES) + put_long (control + 4, EXALL_END); + } + return 1; } static uae_u32 exall_helpder(TrapContext *context) { - int i; - Unit *u; - uaecptr packet = m68k_areg (regs, 4); - uaecptr control = get_long (packet + dp_Arg5); - uae_u32 id = get_long (control + 4); + int i; + Unit *u; + uaecptr packet = m68k_areg (regs, 4); + uaecptr control = get_long (packet + dp_Arg5); + uae_u32 id = get_long (control + 4); #if EXALL_DEBUG > 0 - write_log (_T("FILESYS: EXALL extra round ID=%d\n"), id); + write_log (_T("FILESYS: EXALL extra round ID=%d\n"), id); #endif - if (id == EXALL_END) - return 1; - for (u = units; u; u = u->next) { - for (i = 0; i < EXALLKEYS; i++) { - if (u->exalls[i].id == id && u->exalls[i].control == control) { - action_examine_all (u, packet); - } - } - } - return 1; + if (id == EXALL_END) + return 1; + for (u = units; u; u = u->next) + { + for (i = 0; i < EXALLKEYS; i++) + { + if (u->exalls[i].id == id && u->exalls[i].control == control) + { + action_examine_all (u, packet); + } + } + } + return 1; } static uae_u32 REGPARAM2 fsmisc_helper (TrapContext *context) { - int mode = m68k_dreg (regs, 0); + int mode = m68k_dreg (regs, 0); - switch (mode) - { - case 0: - return exall_helpder (context); - case 1: - return filesys_media_change_reply (context, 0); - case 2: - return filesys_media_change_reply (context, 1); - case 3: - uae_u32 t = getlocaltime (); - uae_u32 secs = (uae_u32)t - (8 * 365 + 2) * 24 * 60 * 60; - return secs; - } - return 0; + switch (mode) + { + case 0: + return exall_helpder (context); + case 1: + return filesys_media_change_reply (context, 0); + case 2: + return filesys_media_change_reply (context, 1); + case 3: + uae_u32 t = getlocaltime (); + uae_u32 secs = (uae_u32)t - (8 * 365 + 2) * 24 * 60 * 60; + return secs; + } + return 0; } static void action_examine_object (Unit *unit, dpacket packet) { - uaecptr lock = GET_PCK_ARG1 (packet) << 2; - uaecptr info = GET_PCK_ARG2 (packet) << 2; - a_inode *aino = 0; + uaecptr lock = GET_PCK_ARG1 (packet) << 2; + uaecptr info = GET_PCK_ARG2 (packet) << 2; + a_inode *aino = 0; - TRACE((_T("ACTION_EXAMINE_OBJECT(0x%lx,0x%lx)\n"), lock, info)); - DUMPLOCK(unit, lock); + TRACE((_T("ACTION_EXAMINE_OBJECT(0x%lx,0x%lx)\n"), lock, info)); + DUMPLOCK(unit, lock); - if (lock != 0) - aino = lookup_aino (unit, get_long (lock + 4)); - if (aino == 0) - aino = &unit->rootnode; + if (lock != 0) + aino = lookup_aino (unit, get_long (lock + 4)); + if (aino == 0) + aino = &unit->rootnode; - get_fileinfo (unit, packet, info, aino); - if (aino->dir) { - put_long (info, 0xFFFFFFFF); - } else - put_long (info, 0); + get_fileinfo (unit, packet, info, aino); + if (aino->dir) + { + put_long (info, 0xFFFFFFFF); + } + else + put_long (info, 0); } /* Read a directory's contents, create a_inodes for each file, and @@ -3681,887 +4024,1007 @@ static void action_examine_object (Unit *unit, dpacket packet) static void populate_directory (Unit *unit, a_inode *base) { - struct fs_dirhandle *d; - a_inode *aino; + struct fs_dirhandle *d; + a_inode *aino; - d = fs_opendir (unit, base); - if (!d) - return; - for (aino = base->child; aino; aino = aino->sibling) { - base->locked_children++; - unit->total_locked_ainos++; - } - TRACE3((_T("Populating directory, child %p, locked_children %d\n"), - base->child, base->locked_children)); - for (;;) { - uae_u64 uniq = 0; - TCHAR fn[MAX_DPATH]; - int ok; - uae_u32 err; + d = fs_opendir (unit, base); + if (!d) + return; + for (aino = base->child; aino; aino = aino->sibling) + { + base->locked_children++; + unit->total_locked_ainos++; + } + TRACE3((_T("Populating directory, child %p, locked_children %d\n"), + base->child, base->locked_children)); + for (;;) + { + uae_u64 uniq = 0; + TCHAR fn[MAX_DPATH]; + int ok; + uae_u32 err; - /* Find next file that belongs to the Amiga fs (skipping things - like "..", "." etc. */ - do { - if (d->fstype == FS_ARCHIVE) - ok = zfile_readdir_archive(d->zd, fn); - else if (d->fstype == FS_DIRECTORY) - ok = my_readdir (d->od, fn); - else - ok = 0; - } while (ok && d->fstype == FS_DIRECTORY && fsdb_name_invalid_dir (fn)); - if (!ok) - break; - /* This calls init_child_aino, which will notice that the parent is - being ExNext()ed, and it will increment the locked counts. */ - aino = lookup_child_aino_for_exnext (unit, base, fn, &err, uniq); - } - fs_closedir (d); + /* Find next file that belongs to the Amiga fs (skipping things + like "..", "." etc. */ + do + { + if (d->fstype == FS_ARCHIVE) + ok = zfile_readdir_archive(d->zd, fn); + else if (d->fstype == FS_DIRECTORY) + ok = my_readdir (d->od, fn); + else + ok = 0; + } + while (ok && d->fstype == FS_DIRECTORY && fsdb_name_invalid_dir (fn)); + if (!ok) + break; + /* This calls init_child_aino, which will notice that the parent is + being ExNext()ed, and it will increment the locked counts. */ + aino = lookup_child_aino_for_exnext (unit, base, fn, &err, uniq); + } + fs_closedir (d); } static void do_examine (Unit *unit, dpacket packet, ExamineKey *ek, uaecptr info) { - for (;;) { - TCHAR *name; - if (ek->curr_file == 0) - break; - name = ek->curr_file->nname; - get_fileinfo (unit, packet, info, ek->curr_file); - ek->curr_file = ek->curr_file->sibling; - if (!(unit->volflags & MYVOLUMEINFO_ARCHIVE) && !fsdb_exists(name)) { - TRACE ((_T("%s orphaned"), name)); - continue; - } - TRACE ((_T("curr_file set to %p %s\n"), ek->curr_file, - ek->curr_file ? ek->curr_file->aname : _T("NULL"))); - return; - } - TRACE((_T("no more entries\n"))); - free_exkey (unit, ek); - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_NO_MORE_ENTRIES); + for (;;) + { + TCHAR *name; + if (ek->curr_file == 0) + break; + name = ek->curr_file->nname; + get_fileinfo (unit, packet, info, ek->curr_file); + ek->curr_file = ek->curr_file->sibling; + if (!(unit->volflags & MYVOLUMEINFO_ARCHIVE) && !fsdb_exists(name)) + { + TRACE ((_T("%s orphaned"), name)); + continue; + } + TRACE ((_T("curr_file set to %p %s\n"), ek->curr_file, + ek->curr_file ? ek->curr_file->aname : _T("NULL"))); + return; + } + TRACE((_T("no more entries\n"))); + free_exkey (unit, ek); + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_NO_MORE_ENTRIES); } static void action_examine_next (Unit *unit, dpacket packet) { - uaecptr lock = GET_PCK_ARG1 (packet) << 2; - uaecptr info = GET_PCK_ARG2 (packet) << 2; - a_inode *aino = 0; - ExamineKey *ek; - uae_u32 uniq; + uaecptr lock = GET_PCK_ARG1 (packet) << 2; + uaecptr info = GET_PCK_ARG2 (packet) << 2; + a_inode *aino = 0; + ExamineKey *ek; + uae_u32 uniq; - TRACE((_T("ACTION_EXAMINE_NEXT(0x%lx,0x%lx)\n"), lock, info)); - gui_flicker_led (LED_HD, unit->unit, 1); - DUMPLOCK(unit, lock); + TRACE((_T("ACTION_EXAMINE_NEXT(0x%lx,0x%lx)\n"), lock, info)); + gui_flicker_led (LED_HD, unit->unit, 1); + DUMPLOCK(unit, lock); - if (lock != 0) - aino = lookup_aino (unit, get_long (lock + 4)); - if (aino == 0) - aino = &unit->rootnode; - for(;;) { - uniq = get_long (info); - if (uniq == 0) { - write_log (_T("ExNext called for a file! (Houston?)\n")); - goto no_more_entries; - } else if (uniq == 0xFFFFFFFE) - goto no_more_entries; - else if (uniq == 0xFFFFFFFF) { - TRACE((_T("Creating new ExKey\n"))); - ek = new_exkey (unit, aino); - if (ek) { - if (aino->exnext_count++ == 0) - populate_directory (unit, aino); - ek->curr_file = aino->child; - TRACE((_T("Initial curr_file: %p %s\n"), ek->curr_file, - ek->curr_file ? ek->curr_file->aname : _T("NULL"))); - } - } else { - TRACE((_T("Looking up ExKey\n"))); - ek = lookup_exkey (unit, get_long (info)); + if (lock != 0) + aino = lookup_aino (unit, get_long (lock + 4)); + if (aino == 0) + aino = &unit->rootnode; + for(;;) + { + uniq = get_long (info); + if (uniq == 0) + { + write_log (_T("ExNext called for a file! (Houston?)\n")); + goto no_more_entries; + } + else if (uniq == 0xFFFFFFFE) + goto no_more_entries; + else if (uniq == 0xFFFFFFFF) + { + TRACE((_T("Creating new ExKey\n"))); + ek = new_exkey (unit, aino); + if (ek) + { + if (aino->exnext_count++ == 0) + populate_directory (unit, aino); + ek->curr_file = aino->child; + TRACE((_T("Initial curr_file: %p %s\n"), ek->curr_file, + ek->curr_file ? ek->curr_file->aname : _T("NULL"))); + } + } + else + { + TRACE((_T("Looking up ExKey\n"))); + ek = lookup_exkey (unit, get_long (info)); + } + if (ek == 0) + { + write_log (_T("Couldn't find a matching ExKey. Prepare for trouble.\n")); + goto no_more_entries; + } + put_long (info, ek->uniq); + if (!ek->curr_file || ek->curr_file->mountcount == unit->mountcount) + break; + ek->curr_file = ek->curr_file->sibling; + if (!ek->curr_file) + goto no_more_entries; } - if (ek == 0) { - write_log (_T("Couldn't find a matching ExKey. Prepare for trouble.\n")); - goto no_more_entries; - } - put_long (info, ek->uniq); - if (!ek->curr_file || ek->curr_file->mountcount == unit->mountcount) - break; - ek->curr_file = ek->curr_file->sibling; - if (!ek->curr_file) - goto no_more_entries; - } - do_examine (unit, packet, ek, info); - return; + do_examine (unit, packet, ek, info); + return; no_more_entries: - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_NO_MORE_ENTRIES); + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_NO_MORE_ENTRIES); } static void do_find (Unit *unit, dpacket packet, int mode, int create, int fallback) { - uaecptr fh = GET_PCK_ARG1 (packet) << 2; - uaecptr lock = GET_PCK_ARG2 (packet) << 2; - uaecptr name = GET_PCK_ARG3 (packet) << 2; - a_inode *aino; - Key *k; - struct fs_filehandle *fd; - int err; - mode_t openmode; - int aino_created = 0; - int isvirtual = unit->volflags & MYVOLUMEINFO_ARCHIVE; + uaecptr fh = GET_PCK_ARG1 (packet) << 2; + uaecptr lock = GET_PCK_ARG2 (packet) << 2; + uaecptr name = GET_PCK_ARG3 (packet) << 2; + a_inode *aino; + Key *k; + struct fs_filehandle *fd; + int err; + mode_t openmode; + int aino_created = 0; + int isvirtual = unit->volflags & MYVOLUMEINFO_ARCHIVE; - TRACE((_T("ACTION_FIND_*(0x%lx,0x%lx,\"%s\",%d,%d)\n"), fh, lock, bstr (unit, name), mode, create)); - TRACE((_T("fh=%x lock=%x name=%x\n"), fh, lock, name)); - DUMPLOCK(unit, lock); + TRACE((_T("ACTION_FIND_*(0x%lx,0x%lx,\"%s\",%d,%d)\n"), fh, lock, bstr (unit, name), mode, create)); + TRACE((_T("fh=%x lock=%x name=%x\n"), fh, lock, name)); + DUMPLOCK(unit, lock); - aino = find_aino (unit, lock, bstr (unit, name), &err); + aino = find_aino (unit, lock, bstr (unit, name), &err); - if (aino == 0 || (err != 0 && err != ERROR_OBJECT_NOT_AROUND)) { - /* Whatever it is, we can't handle it. */ - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, err); - return; - } - if (err == 0) { - /* Object exists. */ - if (aino->dir) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_OBJECT_WRONG_TYPE); - return; + if (aino == 0 || (err != 0 && err != ERROR_OBJECT_NOT_AROUND)) + { + /* Whatever it is, we can't handle it. */ + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, err); + return; } - if (aino->elock || (create == 2 && aino->shlock > 0)) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_OBJECT_IN_USE); - return; + if (err == 0) + { + /* Object exists. */ + if (aino->dir) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_OBJECT_WRONG_TYPE); + return; + } + if (aino->elock || (create == 2 && aino->shlock > 0)) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_OBJECT_IN_USE); + return; + } + if (create == 2 && (aino->amigaos_mode & A_FIBF_DELETE) != 0) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_DELETE_PROTECTED); + return; + } + if (create != 2) + { + if ((((mode & aino->amigaos_mode) & A_FIBF_WRITE) != 0 || unit->ui.readonly || unit->ui.locked) + && fallback) + { + mode &= ~A_FIBF_WRITE; + } + /* Kick 1.3 doesn't check read and write access bits - maybe it would be + * simpler just not to do that either. */ + if ((mode & A_FIBF_WRITE) != 0 && (unit->ui.readonly || unit->ui.locked)) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_DISK_WRITE_PROTECTED); + return; + } + if (((mode & aino->amigaos_mode) & A_FIBF_WRITE) != 0 + || mode == 0) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_WRITE_PROTECTED); + return; + } + if (((mode & aino->amigaos_mode) & A_FIBF_READ) != 0) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_READ_PROTECTED); + return; + } + } } - if (create == 2 && (aino->amigaos_mode & A_FIBF_DELETE) != 0) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_DELETE_PROTECTED); - return; + else if (create == 0) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, err); + return; } - if (create != 2) { - if ((((mode & aino->amigaos_mode) & A_FIBF_WRITE) != 0 || unit->ui.readonly || unit->ui.locked) - && fallback) - { - mode &= ~A_FIBF_WRITE; - } - /* Kick 1.3 doesn't check read and write access bits - maybe it would be - * simpler just not to do that either. */ - if ((mode & A_FIBF_WRITE) != 0 && (unit->ui.readonly || unit->ui.locked)) { + else + { + /* Object does not exist. aino points to containing directory. */ + aino = create_child_aino (unit, aino, my_strdup (bstr_cut (unit, name)), 0); + if (aino == 0) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_DISK_IS_FULL); /* best we can do */ + return; + } + aino_created = 1; + } + + prepare_for_open (aino->nname); + + openmode = (((mode & A_FIBF_READ) == 0 ? O_WRONLY + : (mode & A_FIBF_WRITE) == 0 ? O_RDONLY + : O_RDWR) + | (create ? O_CREAT : 0) + | (create == 2 ? O_TRUNC : 0)); + + fd = fs_openfile (unit, aino, openmode | O_BINARY); + if (fd == NULL) + { + if (aino_created) + delete_aino (unit, aino); + PUT_PCK_RES1 (packet, DOS_FALSE); + /* archive and fd == NULL = corrupt archive or out of memory */ + PUT_PCK_RES2 (packet, isvirtual ? ERROR_OBJECT_NOT_AROUND : dos_errno ()); + return; + } + + k = new_key (unit); + k->fd = fd; + k->aino = aino; + k->dosmode = mode; + k->createmode = create; + k->notifyactive = create ? 1 : 0; + + if (create && isvirtual) + fsdb_set_file_attrs (aino); + + put_long (fh+36, k->uniq); + if (create == 2) + { + aino->elock = 1; + // clear comment if file already existed + if (aino->comment) + { + xfree (aino->comment); + aino->comment = 0; + } + fsdb_set_file_attrs (aino); + } + else + { + aino->shlock++; + } + de_recycle_aino (unit, aino); + PUT_PCK_RES1 (packet, DOS_TRUE); +} + +static void +action_fh_from_lock (Unit *unit, dpacket packet) +{ + uaecptr fh = GET_PCK_ARG1 (packet) << 2; + uaecptr lock = GET_PCK_ARG2 (packet) << 2; + a_inode *aino; + Key *k; + struct fs_filehandle *fd; + mode_t openmode; + int mode; + + TRACE((_T("ACTION_FH_FROM_LOCK(0x%lx,0x%lx)\n"), fh, lock)); + DUMPLOCK(unit,lock); + + if (!lock) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, 0); + return; + } + + aino = lookup_aino (unit, get_long (lock + 4)); + if (aino == 0) + aino = &unit->rootnode; + mode = aino->amigaos_mode; /* Use same mode for opened filehandle as existing Lock() */ + + prepare_for_open (aino->nname); + + TRACE ((_T(" mode is %d\n"), mode)); + openmode = (((mode & A_FIBF_READ) ? O_WRONLY + : (mode & A_FIBF_WRITE) ? O_RDONLY + : O_RDWR)); + + /* the files on CD really can have the write-bit set. */ + if (unit->ui.readonly || unit->ui.locked) + openmode = O_RDONLY; + + fd = fs_openfile (unit, aino, openmode | O_BINARY); + + if (fd == NULL) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, dos_errno()); + return; + } + k = new_key (unit); + k->fd = fd; + k->aino = aino; + + put_long (fh+36, k->uniq); + /* I don't think I need to play with shlock count here, because I'm + opening from an existing lock ??? */ + + de_recycle_aino (unit, aino); + free_lock (unit, lock); /* lock must be unlocked */ + PUT_PCK_RES1 (packet, DOS_TRUE); + /* PUT_PCK_RES2 (packet, k->uniq); - this shouldn't be necessary, try without it */ +} + +static void +action_find_input (Unit *unit, dpacket packet) +{ + do_find(unit, packet, A_FIBF_READ|A_FIBF_WRITE, 0, 1); +} + +static void +action_find_output (Unit *unit, dpacket packet) +{ + if (unit->ui.readonly || unit->ui.locked) + { PUT_PCK_RES1 (packet, DOS_FALSE); PUT_PCK_RES2 (packet, ERROR_DISK_WRITE_PROTECTED); return; - } - if (((mode & aino->amigaos_mode) & A_FIBF_WRITE) != 0 - || mode == 0) - { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_WRITE_PROTECTED); - return; - } - if (((mode & aino->amigaos_mode) & A_FIBF_READ) != 0) { + } + do_find(unit, packet, A_FIBF_READ|A_FIBF_WRITE, 2, 0); +} + +static void +action_find_write (Unit *unit, dpacket packet) +{ + if (unit->ui.readonly || unit->ui.locked) + { PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_READ_PROTECTED); + PUT_PCK_RES2 (packet, ERROR_DISK_WRITE_PROTECTED); return; - } } - } else if (create == 0) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, err); - return; - } else { - /* Object does not exist. aino points to containing directory. */ - aino = create_child_aino (unit, aino, my_strdup (bstr_cut (unit, name)), 0); - if (aino == 0) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_DISK_IS_FULL); /* best we can do */ - return; - } - aino_created = 1; - } - - prepare_for_open (aino->nname); - - openmode = (((mode & A_FIBF_READ) == 0 ? O_WRONLY - : (mode & A_FIBF_WRITE) == 0 ? O_RDONLY - : O_RDWR) - | (create ? O_CREAT : 0) - | (create == 2 ? O_TRUNC : 0)); - - fd = fs_openfile (unit, aino, openmode | O_BINARY); - if (fd == NULL) { - if (aino_created) - delete_aino (unit, aino); - PUT_PCK_RES1 (packet, DOS_FALSE); - /* archive and fd == NULL = corrupt archive or out of memory */ - PUT_PCK_RES2 (packet, isvirtual ? ERROR_OBJECT_NOT_AROUND : dos_errno ()); - return; - } - - k = new_key (unit); - k->fd = fd; - k->aino = aino; - k->dosmode = mode; - k->createmode = create; - k->notifyactive = create ? 1 : 0; - - if (create && isvirtual) - fsdb_set_file_attrs (aino); - - put_long (fh+36, k->uniq); - if (create == 2) { - aino->elock = 1; - // clear comment if file already existed - if (aino->comment) { - xfree (aino->comment); - aino->comment = 0; - } - fsdb_set_file_attrs (aino); - } else { - aino->shlock++; - } - de_recycle_aino (unit, aino); - PUT_PCK_RES1 (packet, DOS_TRUE); -} - -static void - action_fh_from_lock (Unit *unit, dpacket packet) -{ - uaecptr fh = GET_PCK_ARG1 (packet) << 2; - uaecptr lock = GET_PCK_ARG2 (packet) << 2; - a_inode *aino; - Key *k; - struct fs_filehandle *fd; - mode_t openmode; - int mode; - - TRACE((_T("ACTION_FH_FROM_LOCK(0x%lx,0x%lx)\n"), fh, lock)); - DUMPLOCK(unit,lock); - - if (!lock) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, 0); - return; - } - - aino = lookup_aino (unit, get_long (lock + 4)); - if (aino == 0) - aino = &unit->rootnode; - mode = aino->amigaos_mode; /* Use same mode for opened filehandle as existing Lock() */ - - prepare_for_open (aino->nname); - - TRACE ((_T(" mode is %d\n"), mode)); - openmode = (((mode & A_FIBF_READ) ? O_WRONLY - : (mode & A_FIBF_WRITE) ? O_RDONLY - : O_RDWR)); - - /* the files on CD really can have the write-bit set. */ - if (unit->ui.readonly || unit->ui.locked) - openmode = O_RDONLY; - - fd = fs_openfile (unit, aino, openmode | O_BINARY); - - if (fd == NULL) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, dos_errno()); - return; - } - k = new_key (unit); - k->fd = fd; - k->aino = aino; - - put_long (fh+36, k->uniq); - /* I don't think I need to play with shlock count here, because I'm - opening from an existing lock ??? */ - - de_recycle_aino (unit, aino); - free_lock (unit, lock); /* lock must be unlocked */ - PUT_PCK_RES1 (packet, DOS_TRUE); - /* PUT_PCK_RES2 (packet, k->uniq); - this shouldn't be necessary, try without it */ -} - -static void - action_find_input (Unit *unit, dpacket packet) -{ - do_find(unit, packet, A_FIBF_READ|A_FIBF_WRITE, 0, 1); -} - -static void - action_find_output (Unit *unit, dpacket packet) -{ - if (unit->ui.readonly || unit->ui.locked) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_DISK_WRITE_PROTECTED); - return; - } - do_find(unit, packet, A_FIBF_READ|A_FIBF_WRITE, 2, 0); -} - -static void - action_find_write (Unit *unit, dpacket packet) -{ - if (unit->ui.readonly || unit->ui.locked) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_DISK_WRITE_PROTECTED); - return; - } - do_find(unit, packet, A_FIBF_READ|A_FIBF_WRITE, 1, 0); + do_find(unit, packet, A_FIBF_READ|A_FIBF_WRITE, 1, 0); } /* change file/dir's parent dir modification time */ static void updatedirtime (a_inode *a1, int now) { - struct mystat statbuf; + struct mystat statbuf; - if (!a1->parent) - return; - if (!now) { - if (!my_stat (a1->nname, &statbuf)) - return; - my_utime (a1->parent->nname, &statbuf.mtime); - } else { - my_utime (a1->parent->nname, NULL); - } + if (!a1->parent) + return; + if (!now) + { + if (!my_stat (a1->nname, &statbuf)) + return; + my_utime (a1->parent->nname, &statbuf.mtime); + } + else + { + my_utime (a1->parent->nname, NULL); + } } static void - action_end (Unit *unit, dpacket packet) +action_end (Unit *unit, dpacket packet) { - Key *k; - TRACE((_T("ACTION_END(0x%lx)\n"), GET_PCK_ARG1 (packet))); + Key *k; + TRACE((_T("ACTION_END(0x%lx)\n"), GET_PCK_ARG1 (packet))); - k = lookup_key (unit, GET_PCK_ARG1 (packet)); - if (k != 0) { - if (k->notifyactive) { - notify_check (unit, k->aino); - updatedirtime (k->aino, 1); - } - if (k->aino->elock) - k->aino->elock = 0; - else - k->aino->shlock--; - recycle_aino (unit, k->aino); - free_key (unit, k); - } - PUT_PCK_RES1 (packet, DOS_TRUE); - PUT_PCK_RES2 (packet, 0); + k = lookup_key (unit, GET_PCK_ARG1 (packet)); + if (k != 0) + { + if (k->notifyactive) + { + notify_check (unit, k->aino); + updatedirtime (k->aino, 1); + } + if (k->aino->elock) + k->aino->elock = 0; + else + k->aino->shlock--; + recycle_aino (unit, k->aino); + free_key (unit, k); + } + PUT_PCK_RES1 (packet, DOS_TRUE); + PUT_PCK_RES2 (packet, 0); } static void - action_read (Unit *unit, dpacket packet) +action_read (Unit *unit, dpacket packet) { - Key *k = lookup_key (unit, GET_PCK_ARG1 (packet)); - uaecptr addr = GET_PCK_ARG2 (packet); - uae_u32 size = GET_PCK_ARG3 (packet); - uae_u32 actual = 0; - - if (k == 0) { - PUT_PCK_RES1 (packet, DOS_FALSE); - /* PUT_PCK_RES2 (packet, EINVAL); */ - return; - } - TRACE((_T("ACTION_READ(%s,0x%lx,%ld)\n"), k->aino->nname, addr, size)); - gui_flicker_led (LED_HD, unit->unit, 1); + Key *k = lookup_key (unit, GET_PCK_ARG1 (packet)); + uaecptr addr = GET_PCK_ARG2 (packet); + uae_u32 size = GET_PCK_ARG3 (packet); + uae_u32 actual = 0; - if (size == 0) { - PUT_PCK_RES1 (packet, 0); - PUT_PCK_RES2 (packet, 0); - } else if (!valid_address (addr, size)) { - /* check if filesize < size */ - uae_s64 filesize, cur; - - filesize = fs_fsize64 (k->fd); - cur = k->file_pos; - if (size > filesize - cur) - size = filesize - cur; + if (k == 0) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + /* PUT_PCK_RES2 (packet, EINVAL); */ + return; + } + TRACE((_T("ACTION_READ(%s,0x%lx,%ld)\n"), k->aino->nname, addr, size)); + gui_flicker_led (LED_HD, unit->unit, 1); - if (size == 0) { - PUT_PCK_RES1 (packet, 0); - PUT_PCK_RES2 (packet, 0); - } else if (!valid_address (addr, size)) { - /* it really crosses memory boundary */ - uae_u8 *buf; + if (size == 0) + { + PUT_PCK_RES1 (packet, 0); + PUT_PCK_RES2 (packet, 0); + } + else if (!valid_address (addr, size)) + { + /* check if filesize < size */ + uae_s64 filesize, cur; - write_log (_T("unixfs warning: Bad pointer passed for read: %08x, size %d\n"), addr, size); - /* ugh this is inefficient but easy */ + filesize = fs_fsize64 (k->fd); + cur = k->file_pos; + if (size > filesize - cur) + size = filesize - cur; - if (fs_lseek64 (k->fd, k->file_pos, SEEK_SET) < 0) { - PUT_PCK_RES1 (packet, 0); - PUT_PCK_RES2 (packet, dos_errno ()); - return; - } + if (size == 0) + { + PUT_PCK_RES1 (packet, 0); + PUT_PCK_RES2 (packet, 0); + } + else if (!valid_address (addr, size)) + { + /* it really crosses memory boundary */ + uae_u8 *buf; - buf = xmalloc (uae_u8, size); - if (!buf) { - PUT_PCK_RES1 (packet, -1); - PUT_PCK_RES2 (packet, ERROR_NO_FREE_STORE); - return; - } - actual = fs_read (k->fd, buf, size); - - if (actual < 0) { - PUT_PCK_RES1 (packet, 0); - PUT_PCK_RES2 (packet, dos_errno()); - } else { - int i; - PUT_PCK_RES1 (packet, actual); - for (i = 0; i < actual; i++) - put_byte(addr + i, buf[i]); - k->file_pos += actual; - } - xfree (buf); - size = 0; - } - } - if (size) { - /* normal fast read */ - uae_u8 *realpt = get_real_address (addr); + write_log (_T("unixfs warning: Bad pointer passed for read: %08x, size %d\n"), addr, size); + /* ugh this is inefficient but easy */ - if (fs_lseek64 (k->fd, k->file_pos, SEEK_SET) < 0) { - PUT_PCK_RES1 (packet, 0); - PUT_PCK_RES2 (packet, dos_errno ()); - return; - } + if (fs_lseek64 (k->fd, k->file_pos, SEEK_SET) < 0) + { + PUT_PCK_RES1 (packet, 0); + PUT_PCK_RES2 (packet, dos_errno ()); + return; + } - actual = fs_read (k->fd, realpt, size); + buf = xmalloc (uae_u8, size); + if (!buf) + { + PUT_PCK_RES1 (packet, -1); + PUT_PCK_RES2 (packet, ERROR_NO_FREE_STORE); + return; + } + actual = fs_read (k->fd, buf, size); - if (actual == 0) { - PUT_PCK_RES1 (packet, 0); - PUT_PCK_RES2 (packet, 0); - } else if (actual < 0) { - PUT_PCK_RES1 (packet, 0); - PUT_PCK_RES2 (packet, dos_errno ()); - } else { - PUT_PCK_RES1 (packet, actual); - k->file_pos += actual; - } - } - TRACE((_T("=%d\n"), actual)); + if (actual < 0) + { + PUT_PCK_RES1 (packet, 0); + PUT_PCK_RES2 (packet, dos_errno()); + } + else + { + int i; + PUT_PCK_RES1 (packet, actual); + for (i = 0; i < actual; i++) + put_byte(addr + i, buf[i]); + k->file_pos += actual; + } + xfree (buf); + size = 0; + } + } + if (size) + { + /* normal fast read */ + uae_u8 *realpt = get_real_address (addr); + + if (fs_lseek64 (k->fd, k->file_pos, SEEK_SET) < 0) + { + PUT_PCK_RES1 (packet, 0); + PUT_PCK_RES2 (packet, dos_errno ()); + return; + } + + actual = fs_read (k->fd, realpt, size); + + if (actual == 0) + { + PUT_PCK_RES1 (packet, 0); + PUT_PCK_RES2 (packet, 0); + } + else if (actual < 0) + { + PUT_PCK_RES1 (packet, 0); + PUT_PCK_RES2 (packet, dos_errno ()); + } + else + { + PUT_PCK_RES1 (packet, actual); + k->file_pos += actual; + } + } + TRACE((_T("=%d\n"), actual)); } static void - action_write (Unit *unit, dpacket packet) +action_write (Unit *unit, dpacket packet) { - Key *k = lookup_key (unit, GET_PCK_ARG1 (packet)); - uaecptr addr = GET_PCK_ARG2 (packet); - uae_u32 size = GET_PCK_ARG3 (packet); - uae_u32 actual; - uae_u8 *buf; - int i; - - if (k == 0) { - PUT_PCK_RES1 (packet, DOS_FALSE); - /* PUT_PCK_RES2 (packet, EINVAL); */ - return; - } - - gui_flicker_led (LED_HD, unit->unit, 2); - TRACE((_T("ACTION_WRITE(%s,0x%lx,%ld)\n"), k->aino->nname, addr, size)); - - if (unit->ui.readonly || unit->ui.locked) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_DISK_WRITE_PROTECTED); - return; - } - - if (size == 0) { - actual = 0; - PUT_PCK_RES1 (packet, 0); - PUT_PCK_RES2 (packet, 0); - } else if (valid_address (addr, size)) { - uae_u8 *realpt = get_real_address (addr); + Key *k = lookup_key (unit, GET_PCK_ARG1 (packet)); + uaecptr addr = GET_PCK_ARG2 (packet); + uae_u32 size = GET_PCK_ARG3 (packet); + uae_u32 actual; + uae_u8 *buf; + int i; - if (fs_lseek64 (k->fd, k->file_pos, SEEK_SET) < 0) { - PUT_PCK_RES1 (packet, 0); - PUT_PCK_RES2 (packet, dos_errno ()); - return; - } + if (k == 0) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + /* PUT_PCK_RES2 (packet, EINVAL); */ + return; + } - actual = fs_write (k->fd, realpt, size); - } else { - write_log (_T("unixfs warning: Bad pointer passed for write: %08x, size %d\n"), addr, size); - /* ugh this is inefficient but easy */ + gui_flicker_led (LED_HD, unit->unit, 2); + TRACE((_T("ACTION_WRITE(%s,0x%lx,%ld)\n"), k->aino->nname, addr, size)); - if (fs_lseek64 (k->fd, k->file_pos, SEEK_SET) < 0) { - PUT_PCK_RES1 (packet, 0); - PUT_PCK_RES2 (packet, dos_errno ()); - return; - } + if (unit->ui.readonly || unit->ui.locked) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_DISK_WRITE_PROTECTED); + return; + } - buf = xmalloc (uae_u8, size); - if (!buf) { - PUT_PCK_RES1 (packet, -1); - PUT_PCK_RES2 (packet, ERROR_NO_FREE_STORE); - return; - } - - for (i = 0; i < size; i++) - buf[i] = get_byte(addr + i); - - actual = fs_write(k->fd, buf, size); - xfree (buf); - } + if (size == 0) + { + actual = 0; + PUT_PCK_RES1 (packet, 0); + PUT_PCK_RES2 (packet, 0); + } + else if (valid_address (addr, size)) + { + uae_u8 *realpt = get_real_address (addr); - TRACE((_T("=%d\n"), actual)); - PUT_PCK_RES1 (packet, actual); - if (actual != size) - PUT_PCK_RES2 (packet, dos_errno ()); - if (actual >= 0) - k->file_pos += actual; - - k->notifyactive = 1; + if (fs_lseek64 (k->fd, k->file_pos, SEEK_SET) < 0) + { + PUT_PCK_RES1 (packet, 0); + PUT_PCK_RES2 (packet, dos_errno ()); + return; + } + + actual = fs_write (k->fd, realpt, size); + } + else + { + write_log (_T("unixfs warning: Bad pointer passed for write: %08x, size %d\n"), addr, size); + /* ugh this is inefficient but easy */ + + if (fs_lseek64 (k->fd, k->file_pos, SEEK_SET) < 0) + { + PUT_PCK_RES1 (packet, 0); + PUT_PCK_RES2 (packet, dos_errno ()); + return; + } + + buf = xmalloc (uae_u8, size); + if (!buf) + { + PUT_PCK_RES1 (packet, -1); + PUT_PCK_RES2 (packet, ERROR_NO_FREE_STORE); + return; + } + + for (i = 0; i < size; i++) + buf[i] = get_byte(addr + i); + + actual = fs_write(k->fd, buf, size); + xfree (buf); + } + + TRACE((_T("=%d\n"), actual)); + PUT_PCK_RES1 (packet, actual); + if (actual != size) + PUT_PCK_RES2 (packet, dos_errno ()); + if (actual >= 0) + k->file_pos += actual; + + k->notifyactive = 1; } static void - action_seek (Unit *unit, dpacket packet) +action_seek (Unit *unit, dpacket packet) { - Key *k = lookup_key (unit, GET_PCK_ARG1 (packet)); - long pos = (uae_s32)GET_PCK_ARG2 (packet); - long mode = (uae_s32)GET_PCK_ARG3 (packet); - uae_s64 res; - uae_s64 cur; - int whence = SEEK_CUR; - uae_s64 temppos, filesize; + Key *k = lookup_key (unit, GET_PCK_ARG1 (packet)); + long pos = (uae_s32)GET_PCK_ARG2 (packet); + long mode = (uae_s32)GET_PCK_ARG3 (packet); + uae_s64 res; + uae_s64 cur; + int whence = SEEK_CUR; + uae_s64 temppos, filesize; - if (k == 0) { - PUT_PCK_RES1 (packet, -1); - PUT_PCK_RES2 (packet, ERROR_INVALID_LOCK); - return; - } + if (k == 0) + { + PUT_PCK_RES1 (packet, -1); + PUT_PCK_RES2 (packet, ERROR_INVALID_LOCK); + return; + } - if (mode > 0) - whence = SEEK_END; - if (mode < 0) - whence = SEEK_SET; + if (mode > 0) + whence = SEEK_END; + if (mode < 0) + whence = SEEK_SET; - cur = k->file_pos; - TRACE((_T("ACTION_SEEK(%s,%d,%d)=%d\n"), k->aino->nname, pos, mode, cur)); - gui_flicker_led (LED_HD, unit->unit, 1); + cur = k->file_pos; + TRACE((_T("ACTION_SEEK(%s,%d,%d)=%d\n"), k->aino->nname, pos, mode, cur)); + gui_flicker_led (LED_HD, unit->unit, 1); - filesize = fs_fsize64 (k->fd); + filesize = fs_fsize64 (k->fd); - if (whence == SEEK_CUR) - temppos = cur + pos; - if (whence == SEEK_SET) - temppos = pos; - if (whence == SEEK_END) - temppos = filesize + pos; - if (filesize < temppos) { - PUT_PCK_RES1 (packet, -1); - PUT_PCK_RES2 (packet, ERROR_SEEK_ERROR); - return; - } + if (whence == SEEK_CUR) + temppos = cur + pos; + if (whence == SEEK_SET) + temppos = pos; + if (whence == SEEK_END) + temppos = filesize + pos; + if (filesize < temppos) + { + PUT_PCK_RES1 (packet, -1); + PUT_PCK_RES2 (packet, ERROR_SEEK_ERROR); + return; + } - res = fs_lseek64 (k->fd, pos, whence); - if (-1 == res || cur > MAXFILESIZE32) { - PUT_PCK_RES1 (packet, -1); - PUT_PCK_RES2 (packet, ERROR_SEEK_ERROR); - fs_lseek64 (k->fd, cur, SEEK_SET); - } else { - PUT_PCK_RES1 (packet, cur); - k->file_pos = fs_lseek64 (k->fd, 0, SEEK_CUR); - } + res = fs_lseek64 (k->fd, pos, whence); + if (-1 == res || cur > MAXFILESIZE32) + { + PUT_PCK_RES1 (packet, -1); + PUT_PCK_RES2 (packet, ERROR_SEEK_ERROR); + fs_lseek64 (k->fd, cur, SEEK_SET); + } + else + { + PUT_PCK_RES1 (packet, cur); + k->file_pos = fs_lseek64 (k->fd, 0, SEEK_CUR); + } } static void - action_set_protect (Unit *unit, dpacket packet) +action_set_protect (Unit *unit, dpacket packet) { - uaecptr lock = GET_PCK_ARG2 (packet) << 2; - uaecptr name = GET_PCK_ARG3 (packet) << 2; - uae_u32 mask = GET_PCK_ARG4 (packet); - a_inode *a; - int err; + uaecptr lock = GET_PCK_ARG2 (packet) << 2; + uaecptr name = GET_PCK_ARG3 (packet) << 2; + uae_u32 mask = GET_PCK_ARG4 (packet); + a_inode *a; + int err; - TRACE((_T("ACTION_SET_PROTECT(0x%lx,\"%s\",0x%lx)\n"), lock, bstr (unit, name), mask)); + TRACE((_T("ACTION_SET_PROTECT(0x%lx,\"%s\",0x%lx)\n"), lock, bstr (unit, name), mask)); - if (unit->ui.readonly || unit->ui.locked) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_DISK_WRITE_PROTECTED); - return; - } + if (unit->ui.readonly || unit->ui.locked) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_DISK_WRITE_PROTECTED); + return; + } - a = find_aino (unit, lock, bstr (unit, name), &err); - if (err != 0) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, err); - return; - } + a = find_aino (unit, lock, bstr (unit, name), &err); + if (err != 0) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, err); + return; + } - a->amigaos_mode = mask; - if (!fsdb_cando (unit)) - a->amigaos_mode = fsdb_mode_supported (a); - err = fsdb_set_file_attrs (a); - if (err != 0) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, err); - } else { - PUT_PCK_RES1 (packet, DOS_TRUE); - } - notify_check (unit, a); - gui_flicker_led (LED_HD, unit->unit, 2); + a->amigaos_mode = mask; + if (!fsdb_cando (unit)) + a->amigaos_mode = fsdb_mode_supported (a); + err = fsdb_set_file_attrs (a); + if (err != 0) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, err); + } + else + { + PUT_PCK_RES1 (packet, DOS_TRUE); + } + notify_check (unit, a); + gui_flicker_led (LED_HD, unit->unit, 2); } static void action_set_comment (Unit * unit, dpacket packet) { - uaecptr lock = GET_PCK_ARG2 (packet) << 2; - uaecptr name = GET_PCK_ARG3 (packet) << 2; - uaecptr comment = GET_PCK_ARG4 (packet) << 2; - TCHAR *commented = NULL; - a_inode *a; - int err; + uaecptr lock = GET_PCK_ARG2 (packet) << 2; + uaecptr name = GET_PCK_ARG3 (packet) << 2; + uaecptr comment = GET_PCK_ARG4 (packet) << 2; + TCHAR *commented = NULL; + a_inode *a; + int err; - if (unit->ui.readonly || unit->ui.locked) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_DISK_WRITE_PROTECTED); - return; - } + if (unit->ui.readonly || unit->ui.locked) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_DISK_WRITE_PROTECTED); + return; + } - if (fsdb_cando (unit)) { - commented = bstr (unit, comment); - if (_tcslen (commented) > 80) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_COMMENT_TOO_BIG); - return; - } - if (_tcslen (commented) > 0) { - TCHAR *p = commented; - commented = xmalloc (TCHAR, 81); - _tcsncpy (commented, p, 80); - commented[80] = 0; - } else { - commented = NULL; - } - } - TRACE ((_T("ACTION_SET_COMMENT(0x%lx,\"%s\")\n"), lock, commented)); + if (fsdb_cando (unit)) + { + commented = bstr (unit, comment); + if (_tcslen (commented) > 80) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_COMMENT_TOO_BIG); + return; + } + if (_tcslen (commented) > 0) + { + TCHAR *p = commented; + commented = xmalloc (TCHAR, 81); + _tcsncpy (commented, p, 80); + commented[80] = 0; + } + else + { + commented = NULL; + } + } + TRACE ((_T("ACTION_SET_COMMENT(0x%lx,\"%s\")\n"), lock, commented)); - a = find_aino (unit, lock, bstr (unit, name), &err); - if (err != 0) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, err); + a = find_aino (unit, lock, bstr (unit, name), &err); + if (err != 0) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, err); - maybe_free_and_out: - if (commented) - xfree (commented); - return; - } - PUT_PCK_RES1 (packet, DOS_TRUE); - PUT_PCK_RES2 (packet, 0); - if (a->comment == 0 && commented == 0) - goto maybe_free_and_out; - if (a->comment != 0 && commented != 0 && _tcscmp (a->comment, commented) == 0) - goto maybe_free_and_out; - if (a->comment) - xfree (a->comment); - a->comment = commented; - fsdb_set_file_attrs (a); - notify_check (unit, a); - gui_flicker_led (LED_HD, unit->unit, 2); +maybe_free_and_out: + if (commented) + xfree (commented); + return; + } + PUT_PCK_RES1 (packet, DOS_TRUE); + PUT_PCK_RES2 (packet, 0); + if (a->comment == 0 && commented == 0) + goto maybe_free_and_out; + if (a->comment != 0 && commented != 0 && _tcscmp (a->comment, commented) == 0) + goto maybe_free_and_out; + if (a->comment) + xfree (a->comment); + a->comment = commented; + fsdb_set_file_attrs (a); + notify_check (unit, a); + gui_flicker_led (LED_HD, unit->unit, 2); } static void - action_same_lock (Unit *unit, dpacket packet) +action_same_lock (Unit *unit, dpacket packet) { - uaecptr lock1 = GET_PCK_ARG1 (packet) << 2; - uaecptr lock2 = GET_PCK_ARG2 (packet) << 2; + uaecptr lock1 = GET_PCK_ARG1 (packet) << 2; + uaecptr lock2 = GET_PCK_ARG2 (packet) << 2; - TRACE((_T("ACTION_SAME_LOCK(0x%lx,0x%lx)\n"), lock1, lock2)); - DUMPLOCK(unit, lock1); DUMPLOCK(unit, lock2); + TRACE((_T("ACTION_SAME_LOCK(0x%lx,0x%lx)\n"), lock1, lock2)); + DUMPLOCK(unit, lock1); + DUMPLOCK(unit, lock2); - if (!lock1 || !lock2) { - PUT_PCK_RES1 (packet, lock1 == lock2 ? DOS_TRUE : DOS_FALSE); - } else { - PUT_PCK_RES1 (packet, get_long (lock1 + 4) == get_long (lock2 + 4) ? DOS_TRUE : DOS_FALSE); - } + if (!lock1 || !lock2) + { + PUT_PCK_RES1 (packet, lock1 == lock2 ? DOS_TRUE : DOS_FALSE); + } + else + { + PUT_PCK_RES1 (packet, get_long (lock1 + 4) == get_long (lock2 + 4) ? DOS_TRUE : DOS_FALSE); + } } static void - action_change_mode (Unit *unit, dpacket packet) +action_change_mode (Unit *unit, dpacket packet) { #define CHANGE_LOCK 0 #define CHANGE_FH 1 - /* will be CHANGE_FH or CHANGE_LOCK value */ - long type = GET_PCK_ARG1 (packet); - /* either a file-handle or lock */ - uaecptr object = GET_PCK_ARG2 (packet) << 2; - /* will be EXCLUSIVE_LOCK/SHARED_LOCK if CHANGE_LOCK, - * or MODE_OLDFILE/MODE_NEWFILE/MODE_READWRITE if CHANGE_FH * - * Above is wrong, it is always *_LOCK. TW. */ - long mode = GET_PCK_ARG3 (packet); - unsigned long uniq; - a_inode *a = NULL, *olda = NULL; - int err = 0; - TRACE((_T("ACTION_CHANGE_MODE(0x%lx,%d,%d)\n"), object, type, mode)); + /* will be CHANGE_FH or CHANGE_LOCK value */ + long type = GET_PCK_ARG1 (packet); + /* either a file-handle or lock */ + uaecptr object = GET_PCK_ARG2 (packet) << 2; + /* will be EXCLUSIVE_LOCK/SHARED_LOCK if CHANGE_LOCK, + * or MODE_OLDFILE/MODE_NEWFILE/MODE_READWRITE if CHANGE_FH * + * Above is wrong, it is always *_LOCK. TW. */ + long mode = GET_PCK_ARG3 (packet); + unsigned long uniq; + a_inode *a = NULL, *olda = NULL; + int err = 0; + TRACE((_T("ACTION_CHANGE_MODE(0x%lx,%d,%d)\n"), object, type, mode)); - if (! object || (type != CHANGE_FH && type != CHANGE_LOCK)) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_INVALID_LOCK); - return; - } + if (! object || (type != CHANGE_FH && type != CHANGE_LOCK)) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_INVALID_LOCK); + return; + } - if (type == CHANGE_LOCK) { - uniq = get_long (object + 4); - } else { - Key *k = lookup_key (unit, get_long (object + 36)); - if (!k) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_OBJECT_NOT_AROUND); - return; - } - uniq = k->aino->uniq; - } - a = lookup_aino (unit, uniq); + if (type == CHANGE_LOCK) + { + uniq = get_long (object + 4); + } + else + { + Key *k = lookup_key (unit, get_long (object + 36)); + if (!k) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_OBJECT_NOT_AROUND); + return; + } + uniq = k->aino->uniq; + } + a = lookup_aino (unit, uniq); - if (! a) { - err = ERROR_INVALID_LOCK; - } else { - if (mode == -1) { - if (a->shlock > 1) { - err = ERROR_OBJECT_IN_USE; - } else { - a->shlock = 0; - a->elock = 1; - } - } else { /* Must be SHARED_LOCK == -2 */ - a->elock = 0; - a->shlock++; - } - } + if (! a) + { + err = ERROR_INVALID_LOCK; + } + else + { + if (mode == -1) + { + if (a->shlock > 1) + { + err = ERROR_OBJECT_IN_USE; + } + else + { + a->shlock = 0; + a->elock = 1; + } + } + else /* Must be SHARED_LOCK == -2 */ + { + a->elock = 0; + a->shlock++; + } + } - if (err) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, err); - return; - } else { - de_recycle_aino (unit, a); - PUT_PCK_RES1 (packet, DOS_TRUE); - } + if (err) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, err); + return; + } + else + { + de_recycle_aino (unit, a); + PUT_PCK_RES1 (packet, DOS_TRUE); + } } static void - action_parent_common (Unit *unit, dpacket packet, unsigned long uniq) +action_parent_common (Unit *unit, dpacket packet, unsigned long uniq) { - a_inode *olda = lookup_aino (unit, uniq); - if (olda == 0) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_INVALID_LOCK); - return; - } + a_inode *olda = lookup_aino (unit, uniq); + if (olda == 0) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_INVALID_LOCK); + return; + } - if (olda->parent == 0) { - PUT_PCK_RES1 (packet, 0); - PUT_PCK_RES2 (packet, 0); - return; - } - if (olda->parent->elock) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_OBJECT_IN_USE); - return; - } - olda->parent->shlock++; - de_recycle_aino (unit, olda->parent); - PUT_PCK_RES1 (packet, make_lock (unit, olda->parent->uniq, -2) >> 2); + if (olda->parent == 0) + { + PUT_PCK_RES1 (packet, 0); + PUT_PCK_RES2 (packet, 0); + return; + } + if (olda->parent->elock) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_OBJECT_IN_USE); + return; + } + olda->parent->shlock++; + de_recycle_aino (unit, olda->parent); + PUT_PCK_RES1 (packet, make_lock (unit, olda->parent->uniq, -2) >> 2); } static void - action_parent_fh (Unit *unit, dpacket packet) +action_parent_fh (Unit *unit, dpacket packet) { - Key *k = lookup_key (unit, GET_PCK_ARG1 (packet)); - if (!k) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_OBJECT_NOT_AROUND); - return; - } - action_parent_common (unit, packet, k->aino->uniq); + Key *k = lookup_key (unit, GET_PCK_ARG1 (packet)); + if (!k) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_OBJECT_NOT_AROUND); + return; + } + action_parent_common (unit, packet, k->aino->uniq); } static void - action_parent (Unit *unit, dpacket packet) +action_parent (Unit *unit, dpacket packet) { - uaecptr lock = GET_PCK_ARG1 (packet) << 2; + uaecptr lock = GET_PCK_ARG1 (packet) << 2; - TRACE((_T("ACTION_PARENT(0x%lx)\n"),lock)); + TRACE((_T("ACTION_PARENT(0x%lx)\n"),lock)); - if (!lock) { - PUT_PCK_RES1 (packet, 0); - PUT_PCK_RES2 (packet, 0); - } else { - action_parent_common (unit, packet, get_long (lock + 4)); - } - TRACE((_T("=%x %d\n"), GET_PCK_RES1 (packet), GET_PCK_RES2 (packet))); + if (!lock) + { + PUT_PCK_RES1 (packet, 0); + PUT_PCK_RES2 (packet, 0); + } + else + { + action_parent_common (unit, packet, get_long (lock + 4)); + } + TRACE((_T("=%x %d\n"), GET_PCK_RES1 (packet), GET_PCK_RES2 (packet))); } static void - action_create_dir (Unit *unit, dpacket packet) +action_create_dir (Unit *unit, dpacket packet) { - uaecptr lock = GET_PCK_ARG1 (packet) << 2; - uaecptr name = GET_PCK_ARG2 (packet) << 2; - a_inode *aino; - int err; + uaecptr lock = GET_PCK_ARG1 (packet) << 2; + uaecptr name = GET_PCK_ARG2 (packet) << 2; + a_inode *aino; + int err; - TRACE((_T("ACTION_CREATE_DIR(0x%lx,\"%s\")\n"), lock, bstr (unit, name))); + TRACE((_T("ACTION_CREATE_DIR(0x%lx,\"%s\")\n"), lock, bstr (unit, name))); - if (unit->ui.readonly || unit->ui.locked) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_DISK_WRITE_PROTECTED); - return; - } + if (unit->ui.readonly || unit->ui.locked) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_DISK_WRITE_PROTECTED); + return; + } - aino = find_aino (unit, lock, bstr (unit, name), &err); - if (aino == 0 || (err != 0 && err != ERROR_OBJECT_NOT_AROUND)) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, err); - return; - } - if (err == 0) { - /* Object exists. */ - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_OBJECT_EXISTS); - return; - } - /* Object does not exist. aino points to containing directory. */ - aino = create_child_aino (unit, aino, my_strdup (bstr_cut (unit, name)), 1); - if (aino == 0) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_DISK_IS_FULL); /* best we can do */ - return; - } + aino = find_aino (unit, lock, bstr (unit, name), &err); + if (aino == 0 || (err != 0 && err != ERROR_OBJECT_NOT_AROUND)) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, err); + return; + } + if (err == 0) + { + /* Object exists. */ + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_OBJECT_EXISTS); + return; + } + /* Object does not exist. aino points to containing directory. */ + aino = create_child_aino (unit, aino, my_strdup (bstr_cut (unit, name)), 1); + if (aino == 0) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_DISK_IS_FULL); /* best we can do */ + return; + } - if (my_mkdir (aino->nname) == -1) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, dos_errno()); - return; - } - aino->shlock = 1; - fsdb_set_file_attrs (aino); - de_recycle_aino (unit, aino); - notify_check (unit, aino); - updatedirtime (aino, 0); - PUT_PCK_RES1 (packet, make_lock (unit, aino->uniq, -2) >> 2); - gui_flicker_led (LED_HD, unit->unit, 2); + if (my_mkdir (aino->nname) == -1) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, dos_errno()); + return; + } + aino->shlock = 1; + fsdb_set_file_attrs (aino); + de_recycle_aino (unit, aino); + notify_check (unit, aino); + updatedirtime (aino, 0); + PUT_PCK_RES1 (packet, make_lock (unit, aino->uniq, -2) >> 2); + gui_flicker_led (LED_HD, unit->unit, 2); } static void - action_examine_fh (Unit *unit, dpacket packet) +action_examine_fh (Unit *unit, dpacket packet) { - Key *k; - a_inode *aino = 0; - uaecptr info = GET_PCK_ARG2 (packet) << 2; + Key *k; + a_inode *aino = 0; + uaecptr info = GET_PCK_ARG2 (packet) << 2; - TRACE((_T("ACTION_EXAMINE_FH(0x%lx,0x%lx)\n"), - GET_PCK_ARG1 (packet), GET_PCK_ARG2 (packet) )); + TRACE((_T("ACTION_EXAMINE_FH(0x%lx,0x%lx)\n"), + GET_PCK_ARG1 (packet), GET_PCK_ARG2 (packet) )); - k = lookup_key (unit, GET_PCK_ARG1 (packet)); - if (k != 0) - aino = k->aino; - if (aino == 0) - aino = &unit->rootnode; + k = lookup_key (unit, GET_PCK_ARG1 (packet)); + if (k != 0) + aino = k->aino; + if (aino == 0) + aino = &unit->rootnode; - get_fileinfo (unit, packet, info, aino); - if (aino->dir) - put_long (info, 0xFFFFFFFF); - else - put_long (info, 0); + get_fileinfo (unit, packet, info, aino); + if (aino->dir) + put_long (info, 0xFFFFFFFF); + else + put_long (info, 0); } /* For a nice example of just how contradictory documentation can be, see the @@ -4569,538 +5032,603 @@ static void * This implementation tries to mimic the behaviour of the Kick 3.1 ramdisk * (which seems to match the Autodoc description). */ static void - action_set_file_size (Unit *unit, dpacket packet) +action_set_file_size (Unit *unit, dpacket packet) { - Key *k, *k1; - off_t offset = GET_PCK_ARG2 (packet); - long mode = (uae_s32)GET_PCK_ARG3 (packet); - int whence = SEEK_CUR; + Key *k, *k1; + off_t offset = GET_PCK_ARG2 (packet); + long mode = (uae_s32)GET_PCK_ARG3 (packet); + int whence = SEEK_CUR; - if (mode > 0) - whence = SEEK_END; - if (mode < 0) - whence = SEEK_SET; + if (mode > 0) + whence = SEEK_END; + if (mode < 0) + whence = SEEK_SET; - TRACE((_T("ACTION_SET_FILE_SIZE(0x%lx, %d, 0x%x)\n"), GET_PCK_ARG1 (packet), offset, mode)); + TRACE((_T("ACTION_SET_FILE_SIZE(0x%lx, %d, 0x%x)\n"), GET_PCK_ARG1 (packet), offset, mode)); - k = lookup_key (unit, GET_PCK_ARG1 (packet)); - if (k == 0) { - PUT_PCK_RES1 (packet, DOS_TRUE); - PUT_PCK_RES2 (packet, ERROR_OBJECT_NOT_AROUND); - return; - } + k = lookup_key (unit, GET_PCK_ARG1 (packet)); + if (k == 0) + { + PUT_PCK_RES1 (packet, DOS_TRUE); + PUT_PCK_RES2 (packet, ERROR_OBJECT_NOT_AROUND); + return; + } - gui_flicker_led (LED_HD, unit->unit, 1); - k->notifyactive = 1; - /* If any open files have file pointers beyond this size, truncate only - * so far that these pointers do not become invalid. */ - for (k1 = unit->keys; k1; k1 = k1->next) { - if (k != k1 && k->aino == k1->aino) { - if (k1->file_pos > offset) - offset = (off_t)k1->file_pos; - } - } + gui_flicker_led (LED_HD, unit->unit, 1); + k->notifyactive = 1; + /* If any open files have file pointers beyond this size, truncate only + * so far that these pointers do not become invalid. */ + for (k1 = unit->keys; k1; k1 = k1->next) + { + if (k != k1 && k->aino == k1->aino) + { + if (k1->file_pos > offset) + offset = (off_t)k1->file_pos; + } + } - /* Write one then truncate: that should give the right size in all cases. */ - fs_lseek (k->fd, offset, whence); - offset = fs_lseek (k->fd, 0, SEEK_CUR); - fs_write (k->fd, /* whatever */(uae_u8*)&k1, 1); - if (k->file_pos > offset) - k->file_pos = offset; + /* Write one then truncate: that should give the right size in all cases. */ + fs_lseek (k->fd, offset, whence); + offset = fs_lseek (k->fd, 0, SEEK_CUR); + fs_write (k->fd, /* whatever */(uae_u8*)&k1, 1); + if (k->file_pos > offset) + k->file_pos = offset; fs_lseek (k->fd, (off_t)k->file_pos, SEEK_SET); - /* Brian: no bug here; the file _must_ be one byte too large after writing - * The write is supposed to guarantee that the file can't be smaller than - * the requested size, the truncate guarantees that it can't be larger. - * If we were to write one byte earlier we'd clobber file data. */ - if (my_truncate (k->aino->nname, offset) == -1) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, dos_errno ()); - return; - } + /* Brian: no bug here; the file _must_ be one byte too large after writing + * The write is supposed to guarantee that the file can't be smaller than + * the requested size, the truncate guarantees that it can't be larger. + * If we were to write one byte earlier we'd clobber file data. */ + if (my_truncate (k->aino->nname, offset) == -1) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, dos_errno ()); + return; + } - PUT_PCK_RES1 (packet, offset); - PUT_PCK_RES2 (packet, 0); + PUT_PCK_RES1 (packet, offset); + PUT_PCK_RES2 (packet, 0); } static int relock_do(Unit *unit, a_inode *a1) { - Key *k1, *knext; - int wehavekeys = 0; + Key *k1, *knext; + int wehavekeys = 0; - for (k1 = unit->keys; k1; k1 = knext) { - knext = k1->next; - if (k1->aino == a1 && k1->fd) { - wehavekeys++; - fs_closefile (k1->fd); - write_log (_T("handle %p freed\n"), k1->fd); + for (k1 = unit->keys; k1; k1 = knext) + { + knext = k1->next; + if (k1->aino == a1 && k1->fd) + { + wehavekeys++; + fs_closefile (k1->fd); + write_log (_T("handle %p freed\n"), k1->fd); + } } - } - return wehavekeys; + return wehavekeys; } static void relock_re(Unit *unit, a_inode *a1, a_inode *a2, int failed) { - Key *k1, *knext; + Key *k1, *knext; - for (k1 = unit->keys; k1; k1 = knext) { - knext = k1->next; - if (k1->aino == a1 && k1->fd) { - int mode = (k1->dosmode & A_FIBF_READ) == 0 ? O_WRONLY : (k1->dosmode & A_FIBF_WRITE) == 0 ? O_RDONLY : O_RDWR; - mode |= O_BINARY; - if (failed) { - /* rename still failed, restore fd */ - k1->fd = fs_openfile (unit, a1, mode); - write_log (_T("restoring old handle '%s' %d\n"), a1->nname, k1->dosmode); - } else { - /* transfer fd to new name */ - if (a2) { - k1->aino = a2; - k1->fd = fs_openfile (unit, a2, mode); - write_log (_T("restoring new handle '%s' %d\n"), a2->nname, k1->dosmode); - } else { - write_log (_T("no new handle, deleting old lock(s).\n")); - } - } - if (k1->fd == NULL) { - write_log (_T("relocking failed '%s' -> '%s'\n"), a1->nname, a2->nname); - free_key (unit, k1); - } else { - fs_lseek64 (k1->fd, k1->file_pos, SEEK_SET); - } - } - } -} - -static void - action_delete_object (Unit *unit, dpacket packet) -{ - uaecptr lock = GET_PCK_ARG1 (packet) << 2; - uaecptr name = GET_PCK_ARG2 (packet) << 2; - a_inode *a; - int err; - - TRACE((_T("ACTION_DELETE_OBJECT(0x%lx,\"%s\")\n"), lock, bstr (unit, name))); - - if (unit->ui.readonly || unit->ui.locked) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_DISK_WRITE_PROTECTED); - return; - } - - a = find_aino (unit, lock, bstr (unit, name), &err); - - if (err != 0) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, err); - return; - } - if (a->amigaos_mode & A_FIBF_DELETE) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_DELETE_PROTECTED); - return; - } - if (a->shlock > 0 || a->elock) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_OBJECT_IN_USE); - return; - } - if (a->dir) { - /* This should take care of removing the fsdb if no files remain. */ - fsdb_dir_writeback (a); - if (my_rmdir (a->nname) == -1) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, dos_errno()); - return; - } - } else { - if (my_unlink (a->nname) == -1) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, dos_errno()); - return; - } - } - - notify_check (unit, a); - updatedirtime (a, 1); - if (a->child != 0) { - write_log (_T("Serious error in action_delete_object.\n")); - a->deleted = 1; - } else { - delete_aino (unit, a); - } - PUT_PCK_RES1 (packet, DOS_TRUE); - gui_flicker_led (LED_HD, unit->unit, 2); -} - -static void - action_set_date (Unit *unit, dpacket packet) -{ - uaecptr lock = GET_PCK_ARG2 (packet) << 2; - uaecptr name = GET_PCK_ARG3 (packet) << 2; - uaecptr date = GET_PCK_ARG4 (packet); - a_inode *a; - struct mytimeval tv; - int err; - - TRACE((_T("ACTION_SET_DATE(0x%lx,\"%s\")\n"), lock, bstr (unit, name))); - - if (unit->ui.readonly || unit->ui.locked) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_DISK_WRITE_PROTECTED); - return; - } - - amiga_to_timeval (&tv, get_long (date), get_long (date + 4), get_long (date + 8)); - a = find_aino (unit, lock, bstr (unit, name), &err); - write_log (_T("%llu.%u (%d,%d,%d) %s\n"), tv.tv_sec, tv.tv_usec, get_long (date), get_long (date + 4), get_long (date + 8), a->nname); - if (err == 0 && !my_utime (a->nname, &tv)) - err = dos_errno (); - if (err != 0) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, err); - } else { - notify_check (unit, a); - PUT_PCK_RES1 (packet, DOS_TRUE); - } - gui_flicker_led (LED_HD, unit->unit, 2); -} - -static void - action_rename_object (Unit *unit, dpacket packet) -{ - uaecptr lock1 = GET_PCK_ARG1 (packet) << 2; - uaecptr name1 = GET_PCK_ARG2 (packet) << 2; - uaecptr lock2 = GET_PCK_ARG3 (packet) << 2; - uaecptr name2 = GET_PCK_ARG4 (packet) << 2; - a_inode *a1, *a2; - int err1, err2; - Key *k1, *knext; - int wehavekeys = 0; - - TRACE((_T("ACTION_RENAME_OBJECT(0x%lx,\"%s\","), lock1, bstr (unit, name1))); - TRACE((_T("0x%lx,\"%s\")\n"), lock2, bstr (unit, name2))); - - if (unit->ui.readonly || unit->ui.locked) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_DISK_WRITE_PROTECTED); - return; - } - - a1 = find_aino (unit, lock1, bstr (unit, name1), &err1); - if (err1 != 0) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, err1); - return; - } - - /* rename always fails if file is open for writing */ - for (k1 = unit->keys; k1; k1 = knext) { - knext = k1->next; - if (k1->aino == a1 && k1->fd && k1->createmode == 2) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_OBJECT_IN_USE); - return; - } - } - - /* See whether the other name already exists in the filesystem. */ - a2 = find_aino (unit, lock2, bstr (unit, name2), &err2); - if (a2 == a1) { - /* Renaming to the same name, but possibly different case. */ - if (_tcscmp (a1->aname, bstr_cut (unit, name2)) == 0) { - /* Exact match -> do nothing. */ - notify_check (unit, a1); - updatedirtime (a1, 1); - PUT_PCK_RES1 (packet, DOS_TRUE); - return; - } - a2 = a2->parent; - } else if (a2 == 0 || err2 != ERROR_OBJECT_NOT_AROUND) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, err2 == 0 ? ERROR_OBJECT_EXISTS : err2); - return; - } - - a2 = create_child_aino (unit, a2, bstr_cut (unit, name2), a1->dir); - if (a2 == 0) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_DISK_IS_FULL); /* best we can do */ - return; - } - - if (-1 == my_rename (a1->nname, a2->nname)) { - int ret = -1; - /* maybe we have open file handles that caused failure? */ - write_log (_T("rename '%s' -> '%s' failed, trying relocking..\n"), a1->nname, a2->nname); - wehavekeys = relock_do(unit, a1); - /* try again... */ - ret = my_rename (a1->nname, a2->nname); - /* restore locks */ - relock_re(unit, a1, a2, ret == -1 ? 1 : 0); - if (ret == -1) { - delete_aino (unit, a2); - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, dos_errno ()); - return; + for (k1 = unit->keys; k1; k1 = knext) + { + knext = k1->next; + if (k1->aino == a1 && k1->fd) + { + int mode = (k1->dosmode & A_FIBF_READ) == 0 ? O_WRONLY : (k1->dosmode & A_FIBF_WRITE) == 0 ? O_RDONLY : O_RDWR; + mode |= O_BINARY; + if (failed) + { + /* rename still failed, restore fd */ + k1->fd = fs_openfile (unit, a1, mode); + write_log (_T("restoring old handle '%s' %d\n"), a1->nname, k1->dosmode); + } + else + { + /* transfer fd to new name */ + if (a2) + { + k1->aino = a2; + k1->fd = fs_openfile (unit, a2, mode); + write_log (_T("restoring new handle '%s' %d\n"), a2->nname, k1->dosmode); + } + else + { + write_log (_T("no new handle, deleting old lock(s).\n")); + } + } + if (k1->fd == NULL) + { + write_log (_T("relocking failed '%s' -> '%s'\n"), a1->nname, a2->nname); + free_key (unit, k1); + } + else + { + fs_lseek64 (k1->fd, k1->file_pos, SEEK_SET); + } + } } - } - - notify_check (unit, a1); - notify_check (unit, a2); - a2->comment = a1->comment; - a1->comment = 0; - a2->amigaos_mode = a1->amigaos_mode; - a2->uniq = a1->uniq; - a2->elock = a1->elock; - a2->shlock = a1->shlock; - a2->has_dbentry = a1->has_dbentry; - a2->db_offset = a1->db_offset; - a2->dirty = 0; - move_exkeys (unit, a1, a2); - move_aino_children (unit, a1, a2); - delete_aino (unit, a1); - a2->dirty = 1; - if (a2->parent) - fsdb_dir_writeback (a2->parent); - updatedirtime (a2, 1); - fsdb_set_file_attrs (a2); - if (a2->elock > 0 || a2->shlock > 0 || wehavekeys > 0) - de_recycle_aino (unit, a2); - PUT_PCK_RES1 (packet, DOS_TRUE); - gui_flicker_led (LED_HD, unit->unit, 2); } static void - action_current_volume (Unit *unit, dpacket packet) +action_delete_object (Unit *unit, dpacket packet) { - if (filesys_isvolume(unit)) - PUT_PCK_RES1 (packet, unit->volume >> 2); - else - PUT_PCK_RES1 (packet, 0); + uaecptr lock = GET_PCK_ARG1 (packet) << 2; + uaecptr name = GET_PCK_ARG2 (packet) << 2; + a_inode *a; + int err; + + TRACE((_T("ACTION_DELETE_OBJECT(0x%lx,\"%s\")\n"), lock, bstr (unit, name))); + + if (unit->ui.readonly || unit->ui.locked) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_DISK_WRITE_PROTECTED); + return; + } + + a = find_aino (unit, lock, bstr (unit, name), &err); + + if (err != 0) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, err); + return; + } + if (a->amigaos_mode & A_FIBF_DELETE) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_DELETE_PROTECTED); + return; + } + if (a->shlock > 0 || a->elock) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_OBJECT_IN_USE); + return; + } + if (a->dir) + { + /* This should take care of removing the fsdb if no files remain. */ + fsdb_dir_writeback (a); + if (my_rmdir (a->nname) == -1) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, dos_errno()); + return; + } + } + else + { + if (my_unlink (a->nname) == -1) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, dos_errno()); + return; + } + } + + notify_check (unit, a); + updatedirtime (a, 1); + if (a->child != 0) + { + write_log (_T("Serious error in action_delete_object.\n")); + a->deleted = 1; + } + else + { + delete_aino (unit, a); + } + PUT_PCK_RES1 (packet, DOS_TRUE); + gui_flicker_led (LED_HD, unit->unit, 2); } static void - action_rename_disk (Unit *unit, dpacket packet) +action_set_date (Unit *unit, dpacket packet) { - uaecptr name = GET_PCK_ARG1 (packet) << 2; + uaecptr lock = GET_PCK_ARG2 (packet) << 2; + uaecptr name = GET_PCK_ARG3 (packet) << 2; + uaecptr date = GET_PCK_ARG4 (packet); + a_inode *a; + struct mytimeval tv; + int err; - TRACE((_T("ACTION_RENAME_DISK(\"%s\")\n"), bstr (unit, name))); + TRACE((_T("ACTION_SET_DATE(0x%lx,\"%s\")\n"), lock, bstr (unit, name))); - if (unit->ui.readonly || unit->ui.locked) { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, ERROR_DISK_WRITE_PROTECTED); - return; - } + if (unit->ui.readonly || unit->ui.locked) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_DISK_WRITE_PROTECTED); + return; + } - /* get volume name */ - xfree (unit->ui.volname); - unit->ui.volname = bstr1 (name); - set_volume_name (unit, 0); - - PUT_PCK_RES1 (packet, DOS_TRUE); + amiga_to_timeval (&tv, get_long (date), get_long (date + 4), get_long (date + 8)); + a = find_aino (unit, lock, bstr (unit, name), &err); + write_log (_T("%llu.%u (%d,%d,%d) %s\n"), tv.tv_sec, tv.tv_usec, get_long (date), get_long (date + 4), get_long (date + 8), a->nname); + if (err == 0 && !my_utime (a->nname, &tv)) + err = dos_errno (); + if (err != 0) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, err); + } + else + { + notify_check (unit, a); + PUT_PCK_RES1 (packet, DOS_TRUE); + } + gui_flicker_led (LED_HD, unit->unit, 2); } static void - action_is_filesystem (Unit *unit, dpacket packet) +action_rename_object (Unit *unit, dpacket packet) { - TRACE((_T("ACTION_IS_FILESYSTEM()\n"))); - PUT_PCK_RES1 (packet, DOS_TRUE); + uaecptr lock1 = GET_PCK_ARG1 (packet) << 2; + uaecptr name1 = GET_PCK_ARG2 (packet) << 2; + uaecptr lock2 = GET_PCK_ARG3 (packet) << 2; + uaecptr name2 = GET_PCK_ARG4 (packet) << 2; + a_inode *a1, *a2; + int err1, err2; + Key *k1, *knext; + int wehavekeys = 0; + + TRACE((_T("ACTION_RENAME_OBJECT(0x%lx,\"%s\","), lock1, bstr (unit, name1))); + TRACE((_T("0x%lx,\"%s\")\n"), lock2, bstr (unit, name2))); + + if (unit->ui.readonly || unit->ui.locked) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_DISK_WRITE_PROTECTED); + return; + } + + a1 = find_aino (unit, lock1, bstr (unit, name1), &err1); + if (err1 != 0) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, err1); + return; + } + + /* rename always fails if file is open for writing */ + for (k1 = unit->keys; k1; k1 = knext) + { + knext = k1->next; + if (k1->aino == a1 && k1->fd && k1->createmode == 2) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_OBJECT_IN_USE); + return; + } + } + + /* See whether the other name already exists in the filesystem. */ + a2 = find_aino (unit, lock2, bstr (unit, name2), &err2); + if (a2 == a1) + { + /* Renaming to the same name, but possibly different case. */ + if (_tcscmp (a1->aname, bstr_cut (unit, name2)) == 0) + { + /* Exact match -> do nothing. */ + notify_check (unit, a1); + updatedirtime (a1, 1); + PUT_PCK_RES1 (packet, DOS_TRUE); + return; + } + a2 = a2->parent; + } + else if (a2 == 0 || err2 != ERROR_OBJECT_NOT_AROUND) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, err2 == 0 ? ERROR_OBJECT_EXISTS : err2); + return; + } + + a2 = create_child_aino (unit, a2, bstr_cut (unit, name2), a1->dir); + if (a2 == 0) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_DISK_IS_FULL); /* best we can do */ + return; + } + + if (-1 == my_rename (a1->nname, a2->nname)) + { + int ret = -1; + /* maybe we have open file handles that caused failure? */ + write_log (_T("rename '%s' -> '%s' failed, trying relocking..\n"), a1->nname, a2->nname); + wehavekeys = relock_do(unit, a1); + /* try again... */ + ret = my_rename (a1->nname, a2->nname); + /* restore locks */ + relock_re(unit, a1, a2, ret == -1 ? 1 : 0); + if (ret == -1) + { + delete_aino (unit, a2); + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, dos_errno ()); + return; + } + } + + notify_check (unit, a1); + notify_check (unit, a2); + a2->comment = a1->comment; + a1->comment = 0; + a2->amigaos_mode = a1->amigaos_mode; + a2->uniq = a1->uniq; + a2->elock = a1->elock; + a2->shlock = a1->shlock; + a2->has_dbentry = a1->has_dbentry; + a2->db_offset = a1->db_offset; + a2->dirty = 0; + move_exkeys (unit, a1, a2); + move_aino_children (unit, a1, a2); + delete_aino (unit, a1); + a2->dirty = 1; + if (a2->parent) + fsdb_dir_writeback (a2->parent); + updatedirtime (a2, 1); + fsdb_set_file_attrs (a2); + if (a2->elock > 0 || a2->shlock > 0 || wehavekeys > 0) + de_recycle_aino (unit, a2); + PUT_PCK_RES1 (packet, DOS_TRUE); + gui_flicker_led (LED_HD, unit->unit, 2); } static void - action_flush (Unit *unit, dpacket packet) +action_current_volume (Unit *unit, dpacket packet) { - TRACE((_T("ACTION_FLUSH()\n"))); - PUT_PCK_RES1 (packet, DOS_TRUE); - flush_cache(unit, 0); + if (filesys_isvolume(unit)) + PUT_PCK_RES1 (packet, unit->volume >> 2); + else + PUT_PCK_RES1 (packet, 0); } static void - action_more_cache (Unit *unit, dpacket packet) +action_rename_disk (Unit *unit, dpacket packet) { - TRACE((_T("ACTION_MORE_CACHE()\n"))); - PUT_PCK_RES1 (packet, 50); /* bug but AmigaOS expects it */ - if (GET_PCK_ARG1 (packet) != 0) + uaecptr name = GET_PCK_ARG1 (packet) << 2; + + TRACE((_T("ACTION_RENAME_DISK(\"%s\")\n"), bstr (unit, name))); + + if (unit->ui.readonly || unit->ui.locked) + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_DISK_WRITE_PROTECTED); + return; + } + + /* get volume name */ + xfree (unit->ui.volname); + unit->ui.volname = bstr1 (name); + set_volume_name (unit, 0); + + PUT_PCK_RES1 (packet, DOS_TRUE); +} + +static void +action_is_filesystem (Unit *unit, dpacket packet) +{ + TRACE((_T("ACTION_IS_FILESYSTEM()\n"))); + PUT_PCK_RES1 (packet, DOS_TRUE); +} + +static void +action_flush (Unit *unit, dpacket packet) +{ + TRACE((_T("ACTION_FLUSH()\n"))); + PUT_PCK_RES1 (packet, DOS_TRUE); flush_cache(unit, 0); } static void - action_inhibit (Unit *unit, dpacket packet) +action_more_cache (Unit *unit, dpacket packet) { - PUT_PCK_RES1 (packet, DOS_TRUE); - flush_cache(unit, 0); - unit->inhibited = GET_PCK_ARG1 (packet) != 0; - TRACE((_T("ACTION_INHIBIT(%d:%d)\n"), unit->unit, unit->inhibited)); + TRACE((_T("ACTION_MORE_CACHE()\n"))); + PUT_PCK_RES1 (packet, 50); /* bug but AmigaOS expects it */ + if (GET_PCK_ARG1 (packet) != 0) + flush_cache(unit, 0); } static void - action_write_protect (Unit *unit, dpacket packet) +action_inhibit (Unit *unit, dpacket packet) { - TRACE((_T("ACTION_WRITE_PROTECT()\n"))); - PUT_PCK_RES1 (packet, DOS_TRUE); - if (GET_PCK_ARG1 (packet)) { - if (!unit->ui.locked) { - unit->ui.locked = true; - unit->lockkey = GET_PCK_ARG2 (packet); - } - } else { - if (unit->ui.locked) { - if (unit->lockkey == GET_PCK_ARG2 (packet) || unit->lockkey == 0) { - unit->ui.locked = false; - } else { - PUT_PCK_RES1 (packet, DOS_FALSE); - PUT_PCK_RES2 (packet, 0); - } - } - } + PUT_PCK_RES1 (packet, DOS_TRUE); + flush_cache(unit, 0); + unit->inhibited = GET_PCK_ARG1 (packet) != 0; + TRACE((_T("ACTION_INHIBIT(%d:%d)\n"), unit->unit, unit->inhibited)); +} + +static void +action_write_protect (Unit *unit, dpacket packet) +{ + TRACE((_T("ACTION_WRITE_PROTECT()\n"))); + PUT_PCK_RES1 (packet, DOS_TRUE); + if (GET_PCK_ARG1 (packet)) + { + if (!unit->ui.locked) + { + unit->ui.locked = true; + unit->lockkey = GET_PCK_ARG2 (packet); + } + } + else + { + if (unit->ui.locked) + { + if (unit->lockkey == GET_PCK_ARG2 (packet) || unit->lockkey == 0) + { + unit->ui.locked = false; + } + else + { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, 0); + } + } + } } static void action_change_file_position64 (Unit *unit, dpacket packet) { - Key *k = lookup_key (unit, GET_PCK64_ARG1 (packet)); - uae_s64 pos = GET_PCK64_ARG2 (packet); - long mode = GET_PCK64_ARG3 (packet); - long whence = SEEK_CUR; - uae_s64 res, cur; + Key *k = lookup_key (unit, GET_PCK64_ARG1 (packet)); + uae_s64 pos = GET_PCK64_ARG2 (packet); + long mode = GET_PCK64_ARG3 (packet); + long whence = SEEK_CUR; + uae_s64 res, cur; - PUT_PCK64_RES0 (packet, DP64_INIT); + PUT_PCK64_RES0 (packet, DP64_INIT); - if (k == 0) { - PUT_PCK64_RES1 (packet, DOS_FALSE); - PUT_PCK64_RES2 (packet, ERROR_INVALID_LOCK); - return; - } + if (k == 0) + { + PUT_PCK64_RES1 (packet, DOS_FALSE); + PUT_PCK64_RES2 (packet, ERROR_INVALID_LOCK); + return; + } - if (mode > 0) - whence = SEEK_END; - if (mode < 0) - whence = SEEK_SET; + if (mode > 0) + whence = SEEK_END; + if (mode < 0) + whence = SEEK_SET; - TRACE((_T("ACTION_CHANGE_FILE_POSITION64(%s,%lld,%d)\n"), k->aino->nname, pos, mode)); - gui_flicker_led (LED_HD, unit->unit, 1); + TRACE((_T("ACTION_CHANGE_FILE_POSITION64(%s,%lld,%d)\n"), k->aino->nname, pos, mode)); + gui_flicker_led (LED_HD, unit->unit, 1); - cur = k->file_pos; - { - uae_s64 temppos; - uae_s64 filesize = fs_fsize64 (k->fd); + cur = k->file_pos; + { + uae_s64 temppos; + uae_s64 filesize = fs_fsize64 (k->fd); - if (whence == SEEK_CUR) - temppos = cur + pos; - if (whence == SEEK_SET) - temppos = pos; - if (whence == SEEK_END) - temppos = filesize + pos; - if (filesize < temppos) { - res = -1; - PUT_PCK64_RES1 (packet, res); - PUT_PCK64_RES2 (packet, ERROR_SEEK_ERROR); - return; - } - } - res = fs_lseek64 (k->fd, pos, whence); + if (whence == SEEK_CUR) + temppos = cur + pos; + if (whence == SEEK_SET) + temppos = pos; + if (whence == SEEK_END) + temppos = filesize + pos; + if (filesize < temppos) + { + res = -1; + PUT_PCK64_RES1 (packet, res); + PUT_PCK64_RES2 (packet, ERROR_SEEK_ERROR); + return; + } + } + res = fs_lseek64 (k->fd, pos, whence); - if (-1 == res) { - PUT_PCK64_RES1 (packet, DOS_FALSE); - PUT_PCK64_RES2 (packet, ERROR_SEEK_ERROR); - } else { - PUT_PCK64_RES1 (packet, TRUE); - PUT_PCK64_RES2 (packet, 0); - k->file_pos = fs_lseek64 (k->fd, 0, SEEK_CUR); - } - TRACE((_T("= oldpos %lld newpos %lld\n"), cur, k->file_pos)); + if (-1 == res) + { + PUT_PCK64_RES1 (packet, DOS_FALSE); + PUT_PCK64_RES2 (packet, ERROR_SEEK_ERROR); + } + else + { + PUT_PCK64_RES1 (packet, TRUE); + PUT_PCK64_RES2 (packet, 0); + k->file_pos = fs_lseek64 (k->fd, 0, SEEK_CUR); + } + TRACE((_T("= oldpos %lld newpos %lld\n"), cur, k->file_pos)); } static void action_get_file_position64 (Unit *unit, dpacket packet) { - Key *k = lookup_key (unit, GET_PCK64_ARG1 (packet)); + Key *k = lookup_key (unit, GET_PCK64_ARG1 (packet)); - PUT_PCK64_RES0 (packet, DP64_INIT); + PUT_PCK64_RES0 (packet, DP64_INIT); - if (k == 0) { - PUT_PCK64_RES1 (packet, DOS_FALSE); - PUT_PCK64_RES2 (packet, ERROR_INVALID_LOCK); - return; - } - TRACE((_T("ACTION_GET_FILE_POSITION64(%s)=%lld\n"), k->aino->nname, k->file_pos)); - PUT_PCK64_RES1 (packet, k->file_pos); - PUT_PCK64_RES2 (packet, 0); + if (k == 0) + { + PUT_PCK64_RES1 (packet, DOS_FALSE); + PUT_PCK64_RES2 (packet, ERROR_INVALID_LOCK); + return; + } + TRACE((_T("ACTION_GET_FILE_POSITION64(%s)=%lld\n"), k->aino->nname, k->file_pos)); + PUT_PCK64_RES1 (packet, k->file_pos); + PUT_PCK64_RES2 (packet, 0); } static void action_change_file_size64 (Unit *unit, dpacket packet) { - Key *k, *k1; - uae_s64 offset = GET_PCK64_ARG2 (packet); - long mode = (uae_s32)GET_PCK64_ARG3 (packet); - int whence = SEEK_CUR; + Key *k, *k1; + uae_s64 offset = GET_PCK64_ARG2 (packet); + long mode = (uae_s32)GET_PCK64_ARG3 (packet); + int whence = SEEK_CUR; - PUT_PCK64_RES0 (packet, DP64_INIT); + PUT_PCK64_RES0 (packet, DP64_INIT); - if (mode > 0) - whence = SEEK_END; - if (mode < 0) - whence = SEEK_SET; + if (mode > 0) + whence = SEEK_END; + if (mode < 0) + whence = SEEK_SET; - TRACE((_T("ACTION_CHANGE_FILE_SIZE64(0x%lx, %lld, 0x%x)\n"), GET_PCK64_ARG1 (packet), offset, mode)); + TRACE((_T("ACTION_CHANGE_FILE_SIZE64(0x%lx, %lld, 0x%x)\n"), GET_PCK64_ARG1 (packet), offset, mode)); - k = lookup_key (unit, GET_PCK64_ARG1 (packet)); - if (k == 0) { - PUT_PCK64_RES1 (packet, DOS_FALSE); - PUT_PCK64_RES2 (packet, ERROR_OBJECT_NOT_AROUND); - return; - } + k = lookup_key (unit, GET_PCK64_ARG1 (packet)); + if (k == 0) + { + PUT_PCK64_RES1 (packet, DOS_FALSE); + PUT_PCK64_RES2 (packet, ERROR_OBJECT_NOT_AROUND); + return; + } - gui_flicker_led (LED_HD, unit->unit, 1); - k->notifyactive = 1; - /* If any open files have file pointers beyond this size, truncate only - * so far that these pointers do not become invalid. */ - for (k1 = unit->keys; k1; k1 = k1->next) { - if (k != k1 && k->aino == k1->aino) { - if (k1->file_pos > offset) - offset = k1->file_pos; - } - } + gui_flicker_led (LED_HD, unit->unit, 1); + k->notifyactive = 1; + /* If any open files have file pointers beyond this size, truncate only + * so far that these pointers do not become invalid. */ + for (k1 = unit->keys; k1; k1 = k1->next) + { + if (k != k1 && k->aino == k1->aino) + { + if (k1->file_pos > offset) + offset = k1->file_pos; + } + } - /* Write one then truncate: that should give the right size in all cases. */ - fs_lseek (k->fd, offset, whence); - offset = fs_lseek64 (k->fd, offset, whence); - fs_write (k->fd, /* whatever */(uae_u8*)&k1, 1); - if (k->file_pos > offset) - k->file_pos = offset; - fs_lseek64 (k->fd, k->file_pos, SEEK_SET); + /* Write one then truncate: that should give the right size in all cases. */ + fs_lseek (k->fd, offset, whence); + offset = fs_lseek64 (k->fd, offset, whence); + fs_write (k->fd, /* whatever */(uae_u8*)&k1, 1); + if (k->file_pos > offset) + k->file_pos = offset; + fs_lseek64 (k->fd, k->file_pos, SEEK_SET); - if (my_truncate (k->aino->nname, offset) == -1) { - PUT_PCK64_RES1 (packet, DOS_FALSE); - PUT_PCK64_RES2 (packet, dos_errno ()); - return; - } + if (my_truncate (k->aino->nname, offset) == -1) + { + PUT_PCK64_RES1 (packet, DOS_FALSE); + PUT_PCK64_RES2 (packet, dos_errno ()); + return; + } - PUT_PCK64_RES1 (packet, DOS_TRUE); - PUT_PCK64_RES2 (packet, 0); + PUT_PCK64_RES1 (packet, DOS_TRUE); + PUT_PCK64_RES2 (packet, 0); } static void action_get_file_size64 (Unit *unit, dpacket packet) { - Key *k = lookup_key (unit, GET_PCK64_ARG1 (packet)); - uae_s64 filesize; + Key *k = lookup_key (unit, GET_PCK64_ARG1 (packet)); + uae_s64 filesize; - PUT_PCK64_RES0 (packet, DP64_INIT); + PUT_PCK64_RES0 (packet, DP64_INIT); - if (k == 0) { - PUT_PCK64_RES1 (packet, DOS_FALSE); - PUT_PCK64_RES2 (packet, ERROR_INVALID_LOCK); - return; - } - filesize = fs_fsize64 (k->fd); - TRACE((_T("ACTION_GET_FILE_SIZE64(%s)=%lld\n"), k->aino->nname, filesize)); - if (filesize >= 0) { - PUT_PCK64_RES1 (packet, filesize); - PUT_PCK64_RES2 (packet, 0); - return; - } - PUT_PCK64_RES1 (packet, DOS_FALSE); - PUT_PCK64_RES2 (packet, ERROR_SEEK_ERROR); + if (k == 0) + { + PUT_PCK64_RES1 (packet, DOS_FALSE); + PUT_PCK64_RES2 (packet, ERROR_INVALID_LOCK); + return; + } + filesize = fs_fsize64 (k->fd); + TRACE((_T("ACTION_GET_FILE_SIZE64(%s)=%lld\n"), k->aino->nname, filesize)); + if (filesize >= 0) + { + PUT_PCK64_RES1 (packet, filesize); + PUT_PCK64_RES2 (packet, 0); + return; + } + PUT_PCK64_RES1 (packet, DOS_FALSE); + PUT_PCK64_RES2 (packet, ERROR_SEEK_ERROR); } /* We don't want multiple interrupts to be active at the same time. I don't @@ -5109,538 +5637,659 @@ static uae_sem_t singlethread_int_sem = 0; static uae_u32 REGPARAM2 exter_int_helper (TrapContext *context) { - UnitInfo *uip = mountinfo.ui; - uaecptr port; - int n = m68k_dreg (regs, 0); - static int unit_no; + UnitInfo *uip = mountinfo.ui; + uaecptr port; + int n = m68k_dreg (regs, 0); + static int unit_no; - switch (n) { - case 0: - /* Determine whether a given EXTER interrupt is for us. */ - if (uae_int_requested & 1) { - if (uae_sem_trywait (&singlethread_int_sem) != 0) - /* Pretend it isn't for us. We might get it again later. */ - return 0; - /* Clear the interrupt flag _before_ we do any processing. - * That way, we can get too many interrupts, but never not - * enough. */ - filesys_in_interrupt++; - uae_int_requested &= ~1; - unit_no = 0; - return 1; - } - return 0; - case 1: - /* Release a message_lock. This is called as soon as the message is - * received by the assembly code. We use the opportunity to check - * whether we have some locks that we can give back to the assembler - * code. - * Note that this is called from the main loop, unlike the other cases - * in this switch statement which are called from the interrupt handler. - */ + switch (n) + { + case 0: + /* Determine whether a given EXTER interrupt is for us. */ + if (uae_int_requested & 1) + { + if (uae_sem_trywait (&singlethread_int_sem) != 0) + /* Pretend it isn't for us. We might get it again later. */ + return 0; + /* Clear the interrupt flag _before_ we do any processing. + * That way, we can get too many interrupts, but never not + * enough. */ + filesys_in_interrupt++; + uae_int_requested &= ~1; + unit_no = 0; + return 1; + } + return 0; + case 1: + /* Release a message_lock. This is called as soon as the message is + * received by the assembly code. We use the opportunity to check + * whether we have some locks that we can give back to the assembler + * code. + * Note that this is called from the main loop, unlike the other cases + * in this switch statement which are called from the interrupt handler. + */ #ifdef UAE_FILESYS_THREADS - { - Unit *unit = find_unit (m68k_areg (regs, 5)); - uaecptr msg = m68k_areg (regs, 4); - unit->cmds_complete = unit->cmds_acked; - while (comm_pipe_has_data (unit->ui.back_pipe)) { - uaecptr locks, lockend; - int cnt = 0; - locks = read_comm_pipe_int_blocking (unit->ui.back_pipe); - lockend = locks; - while (get_long (lockend) != 0) { - if (get_long (lockend) == lockend) { - write_log (_T("filesystem lock queue corrupted!\n")); - break; - } - lockend = get_long (lockend); - cnt++; - } - TRACE3((_T("message_lock: %d %x %x %x\n"), cnt, locks, lockend, m68k_areg (regs, 3))); - put_long (lockend, get_long (m68k_areg (regs, 3))); - put_long (m68k_areg (regs, 3), locks); - } - } + { + Unit *unit = find_unit (m68k_areg (regs, 5)); + uaecptr msg = m68k_areg (regs, 4); + unit->cmds_complete = unit->cmds_acked; + while (comm_pipe_has_data (unit->ui.back_pipe)) + { + uaecptr locks, lockend; + int cnt = 0; + locks = read_comm_pipe_int_blocking (unit->ui.back_pipe); + lockend = locks; + while (get_long (lockend) != 0) + { + if (get_long (lockend) == lockend) + { + write_log (_T("filesystem lock queue corrupted!\n")); + break; + } + lockend = get_long (lockend); + cnt++; + } + TRACE3((_T("message_lock: %d %x %x %x\n"), cnt, locks, lockend, m68k_areg (regs, 3))); + put_long (lockend, get_long (m68k_areg (regs, 3))); + put_long (m68k_areg (regs, 3), locks); + } + } #else - write_log (_T("exter_int_helper should not be called with arg 1!\n")); + write_log (_T("exter_int_helper should not be called with arg 1!\n")); #endif - break; - case 2: - /* Find work that needs to be done: - * return d0 = 0: none - * d0 = 1: PutMsg(), port in a0, message in a1 - * d0 = 2: Signal(), task in a1, signal set in d1 - * d0 = 3: ReplyMsg(), message in a1 - * d0 = 4: Cause(), interrupt in a1 - * d0 = 5: Send FileNofication message, port in a0, notifystruct in a1 - */ + break; + case 2: + /* Find work that needs to be done: + * return d0 = 0: none + * d0 = 1: PutMsg(), port in a0, message in a1 + * d0 = 2: Signal(), task in a1, signal set in d1 + * d0 = 3: ReplyMsg(), message in a1 + * d0 = 4: Cause(), interrupt in a1 + * d0 = 5: Send FileNofication message, port in a0, notifystruct in a1 + */ #ifdef SUPPORT_THREADS - /* First, check signals/messages */ - while (comm_pipe_has_data (&native2amiga_pending)) { - int cmd = read_comm_pipe_int_blocking (&native2amiga_pending); - switch (cmd) { - case 0: /* Signal() */ - m68k_areg (regs, 1) = read_comm_pipe_u32_blocking (&native2amiga_pending); - m68k_dreg (regs, 1) = read_comm_pipe_u32_blocking (&native2amiga_pending); - return 2; + /* First, check signals/messages */ + while (comm_pipe_has_data (&native2amiga_pending)) + { + int cmd = read_comm_pipe_int_blocking (&native2amiga_pending); + switch (cmd) + { + case 0: /* Signal() */ + m68k_areg (regs, 1) = read_comm_pipe_u32_blocking (&native2amiga_pending); + m68k_dreg (regs, 1) = read_comm_pipe_u32_blocking (&native2amiga_pending); + return 2; - case 1: /* PutMsg() */ - m68k_areg (regs, 0) = read_comm_pipe_u32_blocking (&native2amiga_pending); - m68k_areg (regs, 1) = read_comm_pipe_u32_blocking (&native2amiga_pending); - return 1; + case 1: /* PutMsg() */ + m68k_areg (regs, 0) = read_comm_pipe_u32_blocking (&native2amiga_pending); + m68k_areg (regs, 1) = read_comm_pipe_u32_blocking (&native2amiga_pending); + return 1; - case 2: /* ReplyMsg() */ - m68k_areg (regs, 1) = read_comm_pipe_u32_blocking (&native2amiga_pending); - return 3; + case 2: /* ReplyMsg() */ + m68k_areg (regs, 1) = read_comm_pipe_u32_blocking (&native2amiga_pending); + return 3; - case 3: /* Cause() */ - m68k_areg (regs, 1) = read_comm_pipe_u32_blocking (&native2amiga_pending); - return 4; + case 3: /* Cause() */ + m68k_areg (regs, 1) = read_comm_pipe_u32_blocking (&native2amiga_pending); + return 4; - case 4: /* NotifyHack() */ - m68k_areg (regs, 0) = read_comm_pipe_u32_blocking (&native2amiga_pending); - m68k_areg (regs, 1) = read_comm_pipe_u32_blocking (&native2amiga_pending); - return 5; + case 4: /* NotifyHack() */ + m68k_areg (regs, 0) = read_comm_pipe_u32_blocking (&native2amiga_pending); + m68k_areg (regs, 1) = read_comm_pipe_u32_blocking (&native2amiga_pending); + return 5; - default: - write_log (_T("exter_int_helper: unknown native action %X\n"), cmd); - break; - } - } + default: + write_log (_T("exter_int_helper: unknown native action %X\n"), cmd); + break; + } + } #endif - /* Find some unit that needs a message sent, and return its port, - * or zero if all are done. - * Take care not to dereference self for units that didn't have their - * startup packet sent. */ - for (;;) { - if (unit_no >= MAX_FILESYSTEM_UNITS) - return 0; + /* Find some unit that needs a message sent, and return its port, + * or zero if all are done. + * Take care not to dereference self for units that didn't have their + * startup packet sent. */ + for (;;) + { + if (unit_no >= MAX_FILESYSTEM_UNITS) + return 0; - if (uip[unit_no].open && uip[unit_no].self != 0 - && uip[unit_no].self->cmds_acked == uip[unit_no].self->cmds_complete - && uip[unit_no].self->cmds_acked != uip[unit_no].self->cmds_sent) - break; - unit_no++; - } - uip[unit_no].self->cmds_acked = uip[unit_no].self->cmds_sent; - port = uip[unit_no].self->port; - if (port) { - m68k_areg (regs, 0) = port; - m68k_areg (regs, 1) = find_unit (port)->dummy_message; - unit_no++; - return 1; - } - break; - case 3: - uae_sem_wait (&singlethread_int_sem); - break; - case 4: - /* Exit the interrupt, and release the single-threading lock. */ - filesys_in_interrupt--; - uae_sem_post (&singlethread_int_sem); - break; + if (uip[unit_no].open && uip[unit_no].self != 0 + && uip[unit_no].self->cmds_acked == uip[unit_no].self->cmds_complete + && uip[unit_no].self->cmds_acked != uip[unit_no].self->cmds_sent) + break; + unit_no++; + } + uip[unit_no].self->cmds_acked = uip[unit_no].self->cmds_sent; + port = uip[unit_no].self->port; + if (port) + { + m68k_areg (regs, 0) = port; + m68k_areg (regs, 1) = find_unit (port)->dummy_message; + unit_no++; + return 1; + } + break; + case 3: + uae_sem_wait (&singlethread_int_sem); + break; + case 4: + /* Exit the interrupt, and release the single-threading lock. */ + filesys_in_interrupt--; + uae_sem_post (&singlethread_int_sem); + break; - default: - write_log (_T("Shouldn't happen in exter_int_helper.\n")); - break; - } - return 0; + default: + write_log (_T("Shouldn't happen in exter_int_helper.\n")); + break; + } + return 0; } static int handle_packet (Unit *unit, dpacket pck, uae_u32 msg) { - uae_s32 type = GET_PCK_TYPE (pck); - PUT_PCK_RES2 (pck, 0); + uae_s32 type = GET_PCK_TYPE (pck); + PUT_PCK_RES2 (pck, 0); + + TRACE((_T("unit=%x packet=%d\n"), unit, type)); + if (unit->inhibited && filesys_isvolume(unit) + && type != ACTION_INHIBIT && type != ACTION_MORE_CACHE + && type != ACTION_DISK_INFO) + { + PUT_PCK_RES1 (pck, DOS_FALSE); + PUT_PCK_RES2 (pck, ERROR_NOT_A_DOS_DISK); + return 1; + } + if (type != ACTION_INHIBIT && type != ACTION_CURRENT_VOLUME + && type != ACTION_IS_FILESYSTEM && type != ACTION_MORE_CACHE + && type != ACTION_WRITE_PROTECT && type != ACTION_DISK_INFO + && !filesys_isvolume(unit)) + { + PUT_PCK_RES1 (pck, DOS_FALSE); + PUT_PCK_RES2 (pck, unit->ui.unknown_media ? ERROR_NOT_A_DOS_DISK : ERROR_NO_DISK); + return 1; + } + + switch (type) + { + case ACTION_LOCATE_OBJECT: + action_lock (unit, pck); + break; + case ACTION_FREE_LOCK: + action_free_lock (unit, pck); + break; + case ACTION_COPY_DIR: + action_dup_lock (unit, pck); + break; + case ACTION_DISK_INFO: + action_disk_info (unit, pck); + break; + case ACTION_INFO: + action_info (unit, pck); + break; + case ACTION_EXAMINE_OBJECT: + action_examine_object (unit, pck); + break; + case ACTION_EXAMINE_NEXT: + action_examine_next (unit, pck); + break; + case ACTION_FIND_INPUT: + action_find_input (unit, pck); + break; + case ACTION_FIND_WRITE: + action_find_write (unit, pck); + break; + case ACTION_FIND_OUTPUT: + action_find_output (unit, pck); + break; + case ACTION_END: + action_end (unit, pck); + break; + case ACTION_READ: + action_read (unit, pck); + break; + case ACTION_WRITE: + action_write (unit, pck); + break; + case ACTION_SEEK: + action_seek (unit, pck); + break; + case ACTION_SET_PROTECT: + action_set_protect (unit, pck); + break; + case ACTION_SET_COMMENT: + action_set_comment (unit, pck); + break; + case ACTION_SAME_LOCK: + action_same_lock (unit, pck); + break; + case ACTION_PARENT: + action_parent (unit, pck); + break; + case ACTION_CREATE_DIR: + action_create_dir (unit, pck); + break; + case ACTION_DELETE_OBJECT: + action_delete_object (unit, pck); + break; + case ACTION_RENAME_OBJECT: + action_rename_object (unit, pck); + break; + case ACTION_SET_DATE: + action_set_date (unit, pck); + break; + case ACTION_CURRENT_VOLUME: + action_current_volume (unit, pck); + break; + case ACTION_RENAME_DISK: + action_rename_disk (unit, pck); + break; + case ACTION_IS_FILESYSTEM: + action_is_filesystem (unit, pck); + break; + case ACTION_FLUSH: + action_flush (unit, pck); + break; + case ACTION_MORE_CACHE: + action_more_cache (unit, pck); + break; + case ACTION_INHIBIT: + action_inhibit (unit, pck); + break; + case ACTION_WRITE_PROTECT: + action_write_protect (unit, pck); + break; - TRACE((_T("unit=%x packet=%d\n"), unit, type)); - if (unit->inhibited && filesys_isvolume(unit) - && type != ACTION_INHIBIT && type != ACTION_MORE_CACHE - && type != ACTION_DISK_INFO) { - PUT_PCK_RES1 (pck, DOS_FALSE); - PUT_PCK_RES2 (pck, ERROR_NOT_A_DOS_DISK); - return 1; - } - if (type != ACTION_INHIBIT && type != ACTION_CURRENT_VOLUME - && type != ACTION_IS_FILESYSTEM && type != ACTION_MORE_CACHE - && type != ACTION_WRITE_PROTECT && type != ACTION_DISK_INFO - && !filesys_isvolume(unit)) { - PUT_PCK_RES1 (pck, DOS_FALSE); - PUT_PCK_RES2 (pck, unit->ui.unknown_media ? ERROR_NOT_A_DOS_DISK : ERROR_NO_DISK); - return 1; - } - - switch (type) { - case ACTION_LOCATE_OBJECT: action_lock (unit, pck); break; - case ACTION_FREE_LOCK: action_free_lock (unit, pck); break; - case ACTION_COPY_DIR: action_dup_lock (unit, pck); break; - case ACTION_DISK_INFO: action_disk_info (unit, pck); break; - case ACTION_INFO: action_info (unit, pck); break; - case ACTION_EXAMINE_OBJECT: action_examine_object (unit, pck); break; - case ACTION_EXAMINE_NEXT: action_examine_next (unit, pck); break; - case ACTION_FIND_INPUT: action_find_input (unit, pck); break; - case ACTION_FIND_WRITE: action_find_write (unit, pck); break; - case ACTION_FIND_OUTPUT: action_find_output (unit, pck); break; - case ACTION_END: action_end (unit, pck); break; - case ACTION_READ: action_read (unit, pck); break; - case ACTION_WRITE: action_write (unit, pck); break; - case ACTION_SEEK: action_seek (unit, pck); break; - case ACTION_SET_PROTECT: action_set_protect (unit, pck); break; - case ACTION_SET_COMMENT: action_set_comment (unit, pck); break; - case ACTION_SAME_LOCK: action_same_lock (unit, pck); break; - case ACTION_PARENT: action_parent (unit, pck); break; - case ACTION_CREATE_DIR: action_create_dir (unit, pck); break; - case ACTION_DELETE_OBJECT: action_delete_object (unit, pck); break; - case ACTION_RENAME_OBJECT: action_rename_object (unit, pck); break; - case ACTION_SET_DATE: action_set_date (unit, pck); break; - case ACTION_CURRENT_VOLUME: action_current_volume (unit, pck); break; - case ACTION_RENAME_DISK: action_rename_disk (unit, pck); break; - case ACTION_IS_FILESYSTEM: action_is_filesystem (unit, pck); break; - case ACTION_FLUSH: action_flush (unit, pck); break; - case ACTION_MORE_CACHE: action_more_cache (unit, pck); break; - case ACTION_INHIBIT: action_inhibit (unit, pck); break; - case ACTION_WRITE_PROTECT: action_write_protect (unit, pck); break; - /* 2.0+ packet types */ - case ACTION_SET_FILE_SIZE: action_set_file_size (unit, pck); break; - case ACTION_EXAMINE_FH: action_examine_fh (unit, pck); break; - case ACTION_FH_FROM_LOCK: action_fh_from_lock (unit, pck); break; - case ACTION_COPY_DIR_FH: action_lock_from_fh (unit, pck); break; - case ACTION_CHANGE_MODE: action_change_mode (unit, pck); break; - case ACTION_PARENT_FH: action_parent_fh (unit, pck); break; - case ACTION_ADD_NOTIFY: action_add_notify (unit, pck); break; - case ACTION_REMOVE_NOTIFY: action_remove_notify (unit, pck); break; - case ACTION_EXAMINE_ALL: return action_examine_all (unit, pck); - case ACTION_EXAMINE_ALL_END: return action_examine_all_end (unit, pck); - case ACTION_LOCK_RECORD: return action_lock_record (unit, pck, msg); break; - case ACTION_FREE_RECORD: action_free_record (unit, pck); break; + case ACTION_SET_FILE_SIZE: + action_set_file_size (unit, pck); + break; + case ACTION_EXAMINE_FH: + action_examine_fh (unit, pck); + break; + case ACTION_FH_FROM_LOCK: + action_fh_from_lock (unit, pck); + break; + case ACTION_COPY_DIR_FH: + action_lock_from_fh (unit, pck); + break; + case ACTION_CHANGE_MODE: + action_change_mode (unit, pck); + break; + case ACTION_PARENT_FH: + action_parent_fh (unit, pck); + break; + case ACTION_ADD_NOTIFY: + action_add_notify (unit, pck); + break; + case ACTION_REMOVE_NOTIFY: + action_remove_notify (unit, pck); + break; + case ACTION_EXAMINE_ALL: + return action_examine_all (unit, pck); + case ACTION_EXAMINE_ALL_END: + return action_examine_all_end (unit, pck); + case ACTION_LOCK_RECORD: + return action_lock_record (unit, pck, msg); + break; + case ACTION_FREE_RECORD: + action_free_record (unit, pck); + break; /* OS4+ packet types */ - case ACTION_CHANGE_FILE_POSITION64: action_change_file_position64 (unit, pck); break; - case ACTION_GET_FILE_POSITION64: action_get_file_position64 (unit, pck); break; - case ACTION_CHANGE_FILE_SIZE64: action_change_file_size64 (unit, pck); break; - case ACTION_GET_FILE_SIZE64: action_get_file_size64 (unit, pck); break; + case ACTION_CHANGE_FILE_POSITION64: + action_change_file_position64 (unit, pck); + break; + case ACTION_GET_FILE_POSITION64: + action_get_file_position64 (unit, pck); + break; + case ACTION_CHANGE_FILE_SIZE64: + action_change_file_size64 (unit, pck); + break; + case ACTION_GET_FILE_SIZE64: + action_get_file_size64 (unit, pck); + break; /* unsupported packets */ case ACTION_MAKE_LINK: case ACTION_READ_LINK: case ACTION_FORMAT: - return 0; + return 0; default: - write_log (_T("FILESYS: UNKNOWN PACKET %x\n"), type); - return 0; - } - return 1; + write_log (_T("FILESYS: UNKNOWN PACKET %x\n"), type); + return 0; + } + return 1; } #ifdef UAE_FILESYS_THREADS static int filesys_iteration(UnitInfo *ui) { - dpacket pck; - uaecptr msg; - uae_u32 morelocks; + dpacket pck; + uaecptr msg; + uae_u32 morelocks; - pck = read_comm_pipe_u32_blocking (ui->unit_pipe); - msg = read_comm_pipe_u32_blocking (ui->unit_pipe); - morelocks = (uae_u32)read_comm_pipe_int_blocking (ui->unit_pipe); + pck = read_comm_pipe_u32_blocking (ui->unit_pipe); + msg = read_comm_pipe_u32_blocking (ui->unit_pipe); + morelocks = (uae_u32)read_comm_pipe_int_blocking (ui->unit_pipe); - if (ui->reset_state == FS_GO_DOWN) { - if (pck != 0) - return 1; - /* Death message received. */ - uae_sem_post (&ui->reset_sync_sem); - /* Die. */ - return 0; - } + if (ui->reset_state == FS_GO_DOWN) + { + if (pck != 0) + return 1; + /* Death message received. */ + uae_sem_post (&ui->reset_sync_sem); + /* Die. */ + return 0; + } - put_long (get_long (morelocks), get_long (ui->self->locklist)); - put_long (ui->self->locklist, morelocks); - int ret = handle_packet (ui->self, pck, msg); - if (!ret) { - PUT_PCK_RES1 (pck, DOS_FALSE); - PUT_PCK_RES2 (pck, ERROR_ACTION_NOT_KNOWN); - } - if (ret >= 0) { - /* Mark the packet as processed for the list scan in the assembly code. */ - put_long (msg + 4, 0xffffffff); - } - /* Acquire the message lock, so that we know we can safely send the message. */ - ui->self->cmds_sent++; - /* The message is sent by our interrupt handler, so make sure an interrupt happens. */ - do_uae_int_requested(); - /* Send back the locks. */ - if (get_long (ui->self->locklist) != 0) - write_comm_pipe_int (ui->back_pipe, (int)(get_long (ui->self->locklist)), 0); - put_long (ui->self->locklist, 0); - return 1; + put_long (get_long (morelocks), get_long (ui->self->locklist)); + put_long (ui->self->locklist, morelocks); + int ret = handle_packet (ui->self, pck, msg); + if (!ret) + { + PUT_PCK_RES1 (pck, DOS_FALSE); + PUT_PCK_RES2 (pck, ERROR_ACTION_NOT_KNOWN); + } + if (ret >= 0) + { + /* Mark the packet as processed for the list scan in the assembly code. */ + put_long (msg + 4, 0xffffffff); + } + /* Acquire the message lock, so that we know we can safely send the message. */ + ui->self->cmds_sent++; + /* The message is sent by our interrupt handler, so make sure an interrupt happens. */ + do_uae_int_requested(); + /* Send back the locks. */ + if (get_long (ui->self->locklist) != 0) + write_comm_pipe_int (ui->back_pipe, (int)(get_long (ui->self->locklist)), 0); + put_long (ui->self->locklist, 0); + return 1; } static void *filesys_thread (void *unit_v) { - UnitInfo *ui = (UnitInfo *)unit_v; + UnitInfo *ui = (UnitInfo *)unit_v; - uae_set_thread_priority (NULL, 1); - for (;;) { - if (!filesys_iteration (ui)) { - return 0; - } - } - return 0; + uae_set_thread_priority (NULL, 1); + for (;;) + { + if (!filesys_iteration (ui)) + { + return 0; + } + } + return 0; } #endif /* Talk about spaghetti code... */ static uae_u32 REGPARAM2 filesys_handler (TrapContext *context) { - Unit *unit = find_unit (m68k_areg (regs, 5)); - uaecptr packet_addr = m68k_dreg (regs, 3); - uaecptr message_addr = m68k_areg (regs, 4); - if (! valid_address (packet_addr, 36) || ! valid_address (message_addr, 14)) { - write_log (_T("FILESYS: Bad address %x/%x passed for packet.\n"), packet_addr, message_addr); - goto error2; - } + Unit *unit = find_unit (m68k_areg (regs, 5)); + uaecptr packet_addr = m68k_dreg (regs, 3); + uaecptr message_addr = m68k_areg (regs, 4); + if (! valid_address (packet_addr, 36) || ! valid_address (message_addr, 14)) + { + write_log (_T("FILESYS: Bad address %x/%x passed for packet.\n"), packet_addr, message_addr); + goto error2; + } - put_long (message_addr + 4, 0xffffffff); - if (!unit || !unit->volume) { - write_log (_T("FILESYS: was not initialized.\n")); - goto error; - } + put_long (message_addr + 4, 0xffffffff); + if (!unit || !unit->volume) + { + write_log (_T("FILESYS: was not initialized.\n")); + goto error; + } #ifdef UAE_FILESYS_THREADS - { - uae_u32 morelocks; - if (!unit->ui.unit_pipe) - goto error; - /* Get two more locks and hand them over to the other thread. */ - morelocks = get_long (m68k_areg (regs, 3)); - put_long (m68k_areg (regs, 3), get_long (get_long (morelocks))); - put_long (get_long (morelocks), 0); + { + uae_u32 morelocks; + if (!unit->ui.unit_pipe) + goto error; + /* Get two more locks and hand them over to the other thread. */ + morelocks = get_long (m68k_areg (regs, 3)); + put_long (m68k_areg (regs, 3), get_long (get_long (morelocks))); + put_long (get_long (morelocks), 0); - /* The packet wasn't processed yet. */ - put_long (message_addr + 4, 0); - write_comm_pipe_u32 (unit->ui.unit_pipe, packet_addr, 0); - write_comm_pipe_u32 (unit->ui.unit_pipe, message_addr, 0); - write_comm_pipe_int (unit->ui.unit_pipe, (int)morelocks, 1); - /* Don't reply yet. */ - return 1; - } + /* The packet wasn't processed yet. */ + put_long (message_addr + 4, 0); + write_comm_pipe_u32 (unit->ui.unit_pipe, packet_addr, 0); + write_comm_pipe_u32 (unit->ui.unit_pipe, message_addr, 0); + write_comm_pipe_int (unit->ui.unit_pipe, (int)morelocks, 1); + /* Don't reply yet. */ + return 1; + } #endif - if (! handle_packet (unit, packet_addr, 0)) { - error: - PUT_PCK_RES1 (packet_addr, DOS_FALSE); - PUT_PCK_RES2 (packet_addr, ERROR_ACTION_NOT_KNOWN); - } - TRACE((_T("reply: %8lx, %ld\n"), GET_PCK_RES1 (packet_addr), GET_PCK_RES2 (packet_addr))); + if (! handle_packet (unit, packet_addr, 0)) + { +error: + PUT_PCK_RES1 (packet_addr, DOS_FALSE); + PUT_PCK_RES2 (packet_addr, ERROR_ACTION_NOT_KNOWN); + } + TRACE((_T("reply: %8lx, %ld\n"), GET_PCK_RES1 (packet_addr), GET_PCK_RES2 (packet_addr))); error2: - return 0; + return 0; } static void init_filesys_diagentry (void) { - do_put_mem_long ((uae_u32 *)(filesysory + 0x2100), EXPANSION_explibname); - do_put_mem_long ((uae_u32 *)(filesysory + 0x2104), filesys_configdev); - do_put_mem_long ((uae_u32 *)(filesysory + 0x2108), EXPANSION_doslibname); - do_put_mem_word ((uae_u16 *)(filesysory + 0x210e), nr_units()); - do_put_mem_word ((uae_u16 *)(filesysory + 0x210c), 0); - native2amiga_startup(); + do_put_mem_long ((uae_u32 *)(filesysory + 0x2100), EXPANSION_explibname); + do_put_mem_long ((uae_u32 *)(filesysory + 0x2104), filesys_configdev); + do_put_mem_long ((uae_u32 *)(filesysory + 0x2108), EXPANSION_doslibname); + do_put_mem_word ((uae_u16 *)(filesysory + 0x210e), nr_units()); + do_put_mem_word ((uae_u16 *)(filesysory + 0x210c), 0); + native2amiga_startup(); } void filesys_start_threads (void) { - int i; + int i; - filesys_in_interrupt = 0; - for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) { - UnitInfo *ui = &mountinfo.ui[i]; - if (!ui->open) - continue; - filesys_start_thread (ui, i); - } + filesys_in_interrupt = 0; + for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) + { + UnitInfo *ui = &mountinfo.ui[i]; + if (!ui->open) + continue; + filesys_start_thread (ui, i); + } } void filesys_cleanup (void) { - filesys_prepare_reset(); - free_mountinfo (); - - if(singlethread_int_sem != 0) - uae_sem_destroy(&singlethread_int_sem); - singlethread_int_sem = 0; - - filesys_in_interrupt = 0; - mountertask = 0; - automountunit = -1; + filesys_prepare_reset(); + free_mountinfo (); + + if(singlethread_int_sem != 0) + uae_sem_destroy(&singlethread_int_sem); + singlethread_int_sem = 0; + + filesys_in_interrupt = 0; + mountertask = 0; + automountunit = -1; } void filesys_free_handles(void) { - Unit *u, *u1; - for (u = units; u; u = u1) { - Key *k1, *knext; - u1 = u->next; - for (k1 = u->keys; k1; k1 = knext) { - knext = k1->next; - if (k1->fd) - fs_closefile (k1->fd); - xfree(k1); - } - u->keys = NULL; - struct lockrecord *lrnext; - for (struct lockrecord *lr = u->waitingrecords; lr; lr = lrnext) { - lrnext = lr->next; - xfree (lr); - } - u->waitingrecords = NULL; - free_all_ainos (u, &u->rootnode); - u->rootnode.next = u->rootnode.prev = &u->rootnode; - u->aino_cache_size = 0; - xfree(u->newrootdir); - xfree(u->newvolume); - u->newrootdir = NULL; - u->newvolume = NULL; - } + Unit *u, *u1; + for (u = units; u; u = u1) + { + Key *k1, *knext; + u1 = u->next; + for (k1 = u->keys; k1; k1 = knext) + { + knext = k1->next; + if (k1->fd) + fs_closefile (k1->fd); + xfree(k1); + } + u->keys = NULL; + struct lockrecord *lrnext; + for (struct lockrecord *lr = u->waitingrecords; lr; lr = lrnext) + { + lrnext = lr->next; + xfree (lr); + } + u->waitingrecords = NULL; + free_all_ainos (u, &u->rootnode); + u->rootnode.next = u->rootnode.prev = &u->rootnode; + u->aino_cache_size = 0; + xfree(u->newrootdir); + xfree(u->newvolume); + u->newrootdir = NULL; + u->newvolume = NULL; + } } static void filesys_reset2 (void) { - Unit *u, *u1; + Unit *u, *u1; - filesys_free_handles(); - for (u = units; u; u = u1) { - u1 = u->next; - xfree (u); - } - units = 0; - key_uniq = 0; - a_uniq = 0; - free_mountinfo (); + filesys_free_handles(); + for (u = units; u; u = u1) + { + u1 = u->next; + xfree (u); + } + units = 0; + key_uniq = 0; + a_uniq = 0; + free_mountinfo (); } void filesys_reset (void) { - if (isrestore ()) - return; - filesys_reset2 (); - initialize_mountinfo(); + if (isrestore ()) + return; + filesys_reset2 (); + initialize_mountinfo(); } static void filesys_prepare_reset2 (void) { - UnitInfo *uip; + UnitInfo *uip; // Unit *u; - int i; + int i; - uip = mountinfo.ui; + uip = mountinfo.ui; #ifdef UAE_FILESYS_THREADS - for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) { - if (uip[i].open && uip[i].unit_pipe != 0) { - uae_sem_init (&uip[i].reset_sync_sem, 0, 0); - uip[i].reset_state = FS_GO_DOWN; - /* send death message */ - write_comm_pipe_int (uip[i].unit_pipe, 0, 0); - write_comm_pipe_int (uip[i].unit_pipe, 0, 0); - write_comm_pipe_int (uip[i].unit_pipe, 0, 1); - uae_sem_wait (&uip[i].reset_sync_sem); - uae_sem_destroy(&uip[i].reset_sync_sem); - uip[i].reset_sync_sem = 0; - destroy_comm_pipe(uip[i].unit_pipe); - xfree(uip[i].unit_pipe); - uip[i].unit_pipe = 0; - destroy_comm_pipe(uip[i].back_pipe); - xfree(uip[i].back_pipe); - uip[i].back_pipe = 0; - } - } + for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) + { + if (uip[i].open && uip[i].unit_pipe != 0) + { + uae_sem_init (&uip[i].reset_sync_sem, 0, 0); + uip[i].reset_state = FS_GO_DOWN; + /* send death message */ + write_comm_pipe_int (uip[i].unit_pipe, 0, 0); + write_comm_pipe_int (uip[i].unit_pipe, 0, 0); + write_comm_pipe_int (uip[i].unit_pipe, 0, 1); + uae_sem_wait (&uip[i].reset_sync_sem); + uae_sem_destroy(&uip[i].reset_sync_sem); + uip[i].reset_sync_sem = 0; + destroy_comm_pipe(uip[i].unit_pipe); + xfree(uip[i].unit_pipe); + uip[i].unit_pipe = 0; + destroy_comm_pipe(uip[i].back_pipe); + xfree(uip[i].back_pipe); + uip[i].back_pipe = 0; + } + } #endif - filesys_free_handles(); + filesys_free_handles(); #if 0 - u = units; - while (u != 0) { - free_all_ainos (u, &u->rootnode); - u->rootnode.next = u->rootnode.prev = &u->rootnode; - u->aino_cache_size = 0; - u = u->next; - } + u = units; + while (u != 0) + { + free_all_ainos (u, &u->rootnode); + u->rootnode.next = u->rootnode.prev = &u->rootnode; + u->aino_cache_size = 0; + u = u->next; + } #endif } void filesys_prepare_reset (void) { - if (isrestore ()) - return; - filesys_prepare_reset2 (); + if (isrestore ()) + return; + filesys_prepare_reset2 (); } static uae_u32 REGPARAM2 filesys_diagentry (TrapContext *context) { - uaecptr resaddr = m68k_areg (regs, 2) + 0x10; - uaecptr start = resaddr; - uaecptr residents, tmp; + uaecptr resaddr = m68k_areg (regs, 2) + 0x10; + uaecptr start = resaddr; + uaecptr residents, tmp; - write_log (_T("filesystem: diagentry called: %x\n"), resaddr); + write_log (_T("filesystem: diagentry called: %x\n"), resaddr); - filesys_configdev = m68k_areg (regs, 3); - init_filesys_diagentry (); + filesys_configdev = m68k_areg (regs, 3); + init_filesys_diagentry (); - if (ROM_hardfile_resid != 0) { - /* Build a struct Resident. This will set up and initialize - * the uae.device */ - put_word (resaddr + 0x0, 0x4AFC); - put_long (resaddr + 0x2, resaddr); - put_long (resaddr + 0x6, resaddr + 0x1A); /* Continue scan here */ - put_word (resaddr + 0xA, 0x8101); /* RTF_AUTOINIT|RTF_COLDSTART; Version 1 */ - put_word (resaddr + 0xC, 0x0305); /* NT_DEVICE; pri 05 */ - put_long (resaddr + 0xE, ROM_hardfile_resname); - put_long (resaddr + 0x12, ROM_hardfile_resid); - put_long (resaddr + 0x16, ROM_hardfile_init); /* calls filesys_init */ - } - resaddr += 0x1A; - tmp = resaddr; - - /* The good thing about this function is that it always gets called - * when we boot. So we could put all sorts of stuff that wants to be done - * here. - * We can simply add more Resident structures here. Although the Amiga OS - * only knows about the one at address DiagArea + 0x10, we scan for other - * Resident structures and call InitResident() for them at the end of the - * diag entry. */ + if (ROM_hardfile_resid != 0) + { + /* Build a struct Resident. This will set up and initialize + * the uae.device */ + put_word (resaddr + 0x0, 0x4AFC); + put_long (resaddr + 0x2, resaddr); + put_long (resaddr + 0x6, resaddr + 0x1A); /* Continue scan here */ + put_word (resaddr + 0xA, 0x8101); /* RTF_AUTOINIT|RTF_COLDSTART; Version 1 */ + put_word (resaddr + 0xC, 0x0305); /* NT_DEVICE; pri 05 */ + put_long (resaddr + 0xE, ROM_hardfile_resname); + put_long (resaddr + 0x12, ROM_hardfile_resid); + put_long (resaddr + 0x16, ROM_hardfile_init); /* calls filesys_init */ + } + resaddr += 0x1A; + tmp = resaddr; - resaddr = uaeres_startup (resaddr); + /* The good thing about this function is that it always gets called + * when we boot. So we could put all sorts of stuff that wants to be done + * here. + * We can simply add more Resident structures here. Although the Amiga OS + * only knows about the one at address DiagArea + 0x10, we scan for other + * Resident structures and call InitResident() for them at the end of the + * diag entry. */ + + resaddr = uaeres_startup (resaddr); #ifdef BSDSOCKET - resaddr = bsdlib_startup (resaddr); + resaddr = bsdlib_startup (resaddr); #endif - /* scan for Residents and return pointer to array of them */ - residents = resaddr; - while (tmp < residents && tmp > start) { - if (get_word (tmp) == 0x4AFC && - get_long (tmp + 0x2) == tmp) { - put_word (resaddr, 0x227C); /* movea.l #tmp,a1 */ - put_long (resaddr + 2, tmp); - put_word (resaddr + 6, 0x7200); /* moveq.l #0,d1 */ - put_long (resaddr + 8, 0x4EAEFF9A); /* jsr -$66(a6) ; InitResident */ - resaddr += 12; - tmp = get_long (tmp + 0x6); - } else { - tmp++; - } - } - /* call setup_exter */ - put_word (resaddr + 0, 0x2079); - put_long (resaddr + 2, rtarea_base + bootrom_header + 4 + 5 * 4); /* move.l RTAREA_BASE+setup_exter,a0 */ - put_word (resaddr + 6, 0xd1fc); - put_long (resaddr + 8, rtarea_base + bootrom_header); /* add.l #RTAREA_BASE+bootrom_header,a0 */ - put_word (resaddr + 12, 0x4e90); /* jsr (a0) */ + /* scan for Residents and return pointer to array of them */ + residents = resaddr; + while (tmp < residents && tmp > start) + { + if (get_word (tmp) == 0x4AFC && + get_long (tmp + 0x2) == tmp) + { + put_word (resaddr, 0x227C); /* movea.l #tmp,a1 */ + put_long (resaddr + 2, tmp); + put_word (resaddr + 6, 0x7200); /* moveq.l #0,d1 */ + put_long (resaddr + 8, 0x4EAEFF9A); /* jsr -$66(a6) ; InitResident */ + resaddr += 12; + tmp = get_long (tmp + 0x6); + } + else + { + tmp++; + } + } + /* call setup_exter */ + put_word (resaddr + 0, 0x2079); + put_long (resaddr + 2, rtarea_base + bootrom_header + 4 + 5 * 4); /* move.l RTAREA_BASE+setup_exter,a0 */ + put_word (resaddr + 6, 0xd1fc); + put_long (resaddr + 8, rtarea_base + bootrom_header); /* add.l #RTAREA_BASE+bootrom_header,a0 */ + put_word (resaddr + 12, 0x4e90); /* jsr (a0) */ - put_word (resaddr + 14, 0x7001); /* moveq.l #1,d0 */ - put_word (resaddr + 16, RTS); + put_word (resaddr + 14, 0x7001); /* moveq.l #1,d0 */ + put_word (resaddr + 16, RTS); - m68k_areg (regs, 0) = residents; - return 1; + m68k_areg (regs, 0) = residents; + return 1; } /* don't forget filesys.asm! */ @@ -5653,745 +6302,837 @@ static uae_u32 REGPARAM2 filesys_diagentry (TrapContext *context) static uae_u32 REGPARAM2 filesys_dev_bootfilesys (TrapContext *context) { - uaecptr devicenode = m68k_areg (regs, 3); - uaecptr parmpacket = m68k_areg (regs, 1); - uaecptr fsres = get_long (parmpacket + PP_FSRES); - uaecptr fsnode; - uae_u32 dostype, dostype2; - int no = m68k_dreg (regs, 6) & 0x7fffffff; - int unit_no = no & 65535; - UnitInfo *uip = &mountinfo.ui[unit_no]; - int type; + uaecptr devicenode = m68k_areg (regs, 3); + uaecptr parmpacket = m68k_areg (regs, 1); + uaecptr fsres = get_long (parmpacket + PP_FSRES); + uaecptr fsnode; + uae_u32 dostype, dostype2; + int no = m68k_dreg (regs, 6) & 0x7fffffff; + int unit_no = no & 65535; + UnitInfo *uip = &mountinfo.ui[unit_no]; + int type; - type = is_hardfile (unit_no); + type = is_hardfile (unit_no); - if (type == FILESYS_VIRTUAL) { - if (!get_long (devicenode + 16)) - put_long (devicenode + 16, fshandlername); - return 0; - } - dostype = get_long (parmpacket + 80); - fsnode = get_long (fsres + 18); - while (get_long (fsnode)) { - dostype2 = get_long (fsnode + 14); - if (dostype2 == dostype) { - int i; - uae_u32 pf = get_long (fsnode + 22); // fse_PatchFlags - for (i = 0; i < 32; i++) { - if (pf & (1 << i)) - put_long (devicenode + 4 + i * 4, get_long (fsnode + 22 + 4 + i * 4)); - } - return 1; - } - fsnode = get_long (fsnode); - } - return 0; + if (type == FILESYS_VIRTUAL) + { + if (!get_long (devicenode + 16)) + put_long (devicenode + 16, fshandlername); + return 0; + } + dostype = get_long (parmpacket + 80); + fsnode = get_long (fsres + 18); + while (get_long (fsnode)) + { + dostype2 = get_long (fsnode + 14); + if (dostype2 == dostype) + { + int i; + uae_u32 pf = get_long (fsnode + 22); // fse_PatchFlags + for (i = 0; i < 32; i++) + { + if (pf & (1 << i)) + put_long (devicenode + 4 + i * 4, get_long (fsnode + 22 + 4 + i * 4)); + } + return 1; + } + fsnode = get_long (fsnode); + } + return 0; } extern void picasso96_alloc (TrapContext*); static uae_u32 REGPARAM2 filesys_init_storeinfo (TrapContext *context) { - int ret = -1; - switch (m68k_dreg (regs, 1)) - { - case 1: - mountertask = m68k_areg (regs, 1); + int ret = -1; + switch (m68k_dreg (regs, 1)) + { + case 1: + mountertask = m68k_areg (regs, 1); #ifdef PICASSO96 - picasso96_alloc (context); + picasso96_alloc (context); #endif - break; - case 2: - ret = automountunit; - automountunit = -1; - break; - case 3: - return 0; - } - return ret; + break; + case 2: + ret = automountunit; + automountunit = -1; + break; + case 3: + return 0; + } + return ret; } /* Remember a pointer AmigaOS gave us so we can later use it to identify * which unit a given startup message belongs to. */ static uae_u32 REGPARAM2 filesys_dev_remember (TrapContext *context) { - int no = m68k_dreg (regs, 6) & 0x7fffffff; - int unit_no = no & 65535; - int sub_no = no >> 16; - UnitInfo *uip = &mountinfo.ui[unit_no]; - int i; - uaecptr devicenode = m68k_areg (regs, 3); - uaecptr parmpacket = m68k_areg (regs, 1); - int fssize; - uae_u8 *fs; + int no = m68k_dreg (regs, 6) & 0x7fffffff; + int unit_no = no & 65535; + int sub_no = no >> 16; + UnitInfo *uip = &mountinfo.ui[unit_no]; + int i; + uaecptr devicenode = m68k_areg (regs, 3); + uaecptr parmpacket = m68k_areg (regs, 1); + int fssize; + uae_u8 *fs; - uip->devicenode = devicenode; - fssize = uip->rdb_filesyssize; - fs = uip->rdb_filesysstore; + uip->devicenode = devicenode; + fssize = uip->rdb_filesyssize; + fs = uip->rdb_filesysstore; - /* copy filesystem loaded from RDB */ - if (get_long (parmpacket + PP_FSPTR)) { - for (i = 0; i < fssize; i++) - put_byte (get_long (parmpacket + PP_FSPTR) + i, fs[i]); - } + /* copy filesystem loaded from RDB */ + if (get_long (parmpacket + PP_FSPTR)) + { + for (i = 0; i < fssize; i++) + put_byte (get_long (parmpacket + PP_FSPTR) + i, fs[i]); + } - xfree (fs); - uip->rdb_filesysstore = 0; - uip->rdb_filesyssize = 0; - if (m68k_dreg (regs, 3) >= 0) - uip->startup = get_long (devicenode + 28); + xfree (fs); + uip->rdb_filesysstore = 0; + uip->rdb_filesyssize = 0; + if (m68k_dreg (regs, 3) >= 0) + uip->startup = get_long (devicenode + 28); - return devicenode; + return devicenode; } static int legalrdbblock (UnitInfo *uip, int block) { - if (block <= 0) - return 0; - if (block >= uip->hf.virtsize / uip->hf.blocksize) - return 0; - return 1; + if (block <= 0) + return 0; + if (block >= uip->hf.virtsize / uip->hf.blocksize) + return 0; + return 1; } static uae_u32 rl (uae_u8 *p) { - return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | (p[3]); + return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | (p[3]); } int rdb_checksum (uae_char *id, uae_u8 *p, int block) { - uae_u32 sum = 0; - int i, blocksize; + uae_u32 sum = 0; + int i, blocksize; - if (memcmp (id, p, 4)) - return 0; - blocksize = rl (p + 4); - if (blocksize < 1 || blocksize * 4 > FILESYS_MAX_BLOCKSIZE) - return 0; - for (i = 0; i < blocksize; i++) - sum += rl (p + i * 4); - sum = -sum; - if (sum) { - TCHAR *s = au (id); - write_log (_T("RDB: block %d ('%s') checksum error\n"), block, s); - xfree (s); - return 0; - } - return 1; + if (memcmp (id, p, 4)) + return 0; + blocksize = rl (p + 4); + if (blocksize < 1 || blocksize * 4 > FILESYS_MAX_BLOCKSIZE) + return 0; + for (i = 0; i < blocksize; i++) + sum += rl (p + i * 4); + sum = -sum; + if (sum) + { + TCHAR *s = au (id); + write_log (_T("RDB: block %d ('%s') checksum error\n"), block, s); + xfree (s); + return 0; + } + return 1; } static int device_isdup (uaecptr expbase, TCHAR *devname) { - uaecptr bnode, dnode, name; - int len, i; - TCHAR dname[256]; + uaecptr bnode, dnode, name; + int len, i; + TCHAR dname[256]; - bnode = get_long (expbase + 74); /* expansion.library bootnode list */ - while (get_long (bnode)) { - dnode = get_long (bnode + 16); /* device node */ - name = get_long (dnode + 40) << 2; /* device name BSTR */ - len = get_byte (name); - for (i = 0; i < len; i++) - dname[i] = get_byte (name + 1 + i); - dname[len] = 0; - if (!_tcsicmp (devname, dname)) - return 1; - bnode = get_long (bnode); - } - return 0; + bnode = get_long (expbase + 74); /* expansion.library bootnode list */ + while (get_long (bnode)) + { + dnode = get_long (bnode + 16); /* device node */ + name = get_long (dnode + 40) << 2; /* device name BSTR */ + len = get_byte (name); + for (i = 0; i < len; i++) + dname[i] = get_byte (name + 1 + i); + dname[len] = 0; + if (!_tcsicmp (devname, dname)) + return 1; + bnode = get_long (bnode); + } + return 0; } static TCHAR *device_dupfix (uaecptr expbase, TCHAR *devname) { - int modified; - TCHAR newname[256]; + int modified; + TCHAR newname[256]; - _tcscpy (newname, devname); - modified = 1; - while (modified) { - modified = 0; - if (device_isdup (expbase, newname)) { - if (_tcslen (newname) > 2 && newname[_tcslen (newname) - 2] == '_') { - newname[_tcslen (newname) - 1]++; - } else { - _tcscat (newname, _T("_0")); - } - modified = 1; - } - } - return my_strdup (newname); + _tcscpy (newname, devname); + modified = 1; + while (modified) + { + modified = 0; + if (device_isdup (expbase, newname)) + { + if (_tcslen (newname) > 2 && newname[_tcslen (newname) - 2] == '_') + { + newname[_tcslen (newname) - 1]++; + } + else + { + _tcscat (newname, _T("_0")); + } + modified = 1; + } + } + return my_strdup (newname); } static const TCHAR *dostypes (uae_u32 dostype) { - static TCHAR dt[32]; - int j; + static TCHAR dt[32]; + int j; - j = 0; - for (int i = 0; i < 4; i++) { - uae_u8 c = dostype >> ((3 - i) * 8); - if (c >= ' ' && c <= 'z') { - dt[j++] = c; - } else { - dt[j++] = '\\'; - _stprintf (&dt[j], _T("%d"), c); - j += _tcslen (&dt[j]); - } - } - dt[j] = 0; - return dt; + j = 0; + for (int i = 0; i < 4; i++) + { + uae_u8 c = dostype >> ((3 - i) * 8); + if (c >= ' ' && c <= 'z') + { + dt[j++] = c; + } + else + { + dt[j++] = '\\'; + _stprintf (&dt[j], _T("%d"), c); + j += _tcslen (&dt[j]); + } + } + dt[j] = 0; + return dt; } #define rdbmnt write_log (_T("Mounting uaehf.device %d (%d) (size=%llu):\n"), unit_no, partnum, hfd->virtsize); static int rdb_mount (UnitInfo *uip, int unit_no, int partnum, uaecptr parmpacket) { - int lastblock = 63, blocksize, readblocksize, badblock, driveinitblock; - uae_u8 bufrdb[FILESYS_MAX_BLOCKSIZE], *buf = 0; - uae_u8 *fsmem = 0; - int rdblock, partblock, fileblock, lsegblock, i; - uae_u32 flags; - struct hardfiledata *hfd = &uip->hf; - uae_u32 dostype; - uaecptr fsres, fsnode; - int err = 0; - int oldversion, oldrevision; - int newversion, newrevision; - TCHAR *s; - bool showdebug = partnum == 0; + int lastblock = 63, blocksize, readblocksize, badblock, driveinitblock; + uae_u8 bufrdb[FILESYS_MAX_BLOCKSIZE], *buf = 0; + uae_u8 *fsmem = 0; + int rdblock, partblock, fileblock, lsegblock, i; + uae_u32 flags; + struct hardfiledata *hfd = &uip->hf; + uae_u32 dostype; + uaecptr fsres, fsnode; + int err = 0; + int oldversion, oldrevision; + int newversion, newrevision; + TCHAR *s; + bool showdebug = partnum == 0; - write_log (_T("%s:\n"), uip->rootdir); - if (hfd->drive_empty) { - rdbmnt - write_log (_T("ignored, drive is empty\n")); - return -2; - } - if (hfd->blocksize == 0) { - rdbmnt - write_log (_T("failed, blocksize == 0\n")); - return -1; - } - if (lastblock * hfd->blocksize > hfd->virtsize) { - rdbmnt - write_log (_T("failed, too small (%d*%d > %llu)\n"), lastblock, hfd->blocksize, hfd->virtsize); - return -2; - } - for (rdblock = 0; rdblock < lastblock; rdblock++) { - hdf_read_rdb (hfd, bufrdb, rdblock * hfd->blocksize, hfd->blocksize); - if (rdb_checksum ("RDSK", bufrdb, rdblock)) - break; - hdf_read_rdb (hfd, bufrdb, rdblock * hfd->blocksize, hfd->blocksize); - if (!memcmp ("RDSK", bufrdb, 4)) { - bufrdb[0xdc] = 0; - bufrdb[0xdd] = 0; - bufrdb[0xde] = 0; - bufrdb[0xdf] = 0; - if (rdb_checksum ("RDSK", bufrdb, rdblock)) { - write_log (_T("Windows 95/98/ME trashed RDB detected, fixing..\n")); - hdf_write (hfd, bufrdb, rdblock * hfd->blocksize, hfd->blocksize); - break; - } - } - } - if (rdblock == lastblock) { - rdbmnt - write_log (_T("failed, no RDB detected\n")); - return -2; - } - blocksize = rl (bufrdb + 16); - readblocksize = blocksize > hfd->blocksize ? blocksize : hfd->blocksize; - badblock = rl (bufrdb + 24); - if (badblock != -1) { - rdbmnt - write_log (_T("RDB: badblock list is not yet supported. Contact the author.\n")); - return -2; - } - driveinitblock = rl (bufrdb + 36); - if (driveinitblock != -1) { - rdbmnt - write_log (_T("RDB: driveinit is not yet supported. Contact the author.\n")); - return -2; - } - hfd->cylinders = rl (bufrdb + 64); - hfd->sectors = rl (bufrdb + 68); - hfd->heads = rl (bufrdb + 72); + write_log (_T("%s:\n"), uip->rootdir); + if (hfd->drive_empty) + { + rdbmnt + write_log (_T("ignored, drive is empty\n")); + return -2; + } + if (hfd->blocksize == 0) + { + rdbmnt + write_log (_T("failed, blocksize == 0\n")); + return -1; + } + if (lastblock * hfd->blocksize > hfd->virtsize) + { + rdbmnt + write_log (_T("failed, too small (%d*%d > %llu)\n"), lastblock, hfd->blocksize, hfd->virtsize); + return -2; + } + for (rdblock = 0; rdblock < lastblock; rdblock++) + { + hdf_read_rdb (hfd, bufrdb, rdblock * hfd->blocksize, hfd->blocksize); + if (rdb_checksum ("RDSK", bufrdb, rdblock)) + break; + hdf_read_rdb (hfd, bufrdb, rdblock * hfd->blocksize, hfd->blocksize); + if (!memcmp ("RDSK", bufrdb, 4)) + { + bufrdb[0xdc] = 0; + bufrdb[0xdd] = 0; + bufrdb[0xde] = 0; + bufrdb[0xdf] = 0; + if (rdb_checksum ("RDSK", bufrdb, rdblock)) + { + write_log (_T("Windows 95/98/ME trashed RDB detected, fixing..\n")); + hdf_write (hfd, bufrdb, rdblock * hfd->blocksize, hfd->blocksize); + break; + } + } + } + if (rdblock == lastblock) + { + rdbmnt + write_log (_T("failed, no RDB detected\n")); + return -2; + } + blocksize = rl (bufrdb + 16); + readblocksize = blocksize > hfd->blocksize ? blocksize : hfd->blocksize; + badblock = rl (bufrdb + 24); + if (badblock != -1) + { + rdbmnt + write_log (_T("RDB: badblock list is not yet supported. Contact the author.\n")); + return -2; + } + driveinitblock = rl (bufrdb + 36); + if (driveinitblock != -1) + { + rdbmnt + write_log (_T("RDB: driveinit is not yet supported. Contact the author.\n")); + return -2; + } + hfd->cylinders = rl (bufrdb + 64); + hfd->sectors = rl (bufrdb + 68); + hfd->heads = rl (bufrdb + 72); #if 0 - { - int cyls, secs, heads; - getchsgeometry_hdf (hfd, hfd->virtsize, &cyls, &secs, &heads); - if (cyls * secs * heads > hfd->cylinders * hfd->sectors * hfd->heads) { - hfd->cylinders = cyls; - hfd->sectors = secs; - hfd->heads = heads; - } - } + { + int cyls, secs, heads; + getchsgeometry_hdf (hfd, hfd->virtsize, &cyls, &secs, &heads); + if (cyls * secs * heads > hfd->cylinders * hfd->sectors * hfd->heads) + { + hfd->cylinders = cyls; + hfd->sectors = secs; + hfd->heads = heads; + } + } #endif - fileblock = rl (bufrdb + 32); + fileblock = rl (bufrdb + 32); - buf = xmalloc (uae_u8, readblocksize); + buf = xmalloc (uae_u8, readblocksize); - for (i = 0; i <= partnum; i++) { - if (i == 0) - partblock = rl (bufrdb + 28); - else - partblock = rl (buf + 4 * 4); - if (!legalrdbblock (uip, partblock)) { - err = -2; - goto error; - } - memset (buf, 0, readblocksize); - hdf_read (hfd, buf, partblock * hfd->blocksize, readblocksize); - if (!rdb_checksum ("PART", buf, partblock)) { - err = -2; - goto error; - } - } + for (i = 0; i <= partnum; i++) + { + if (i == 0) + partblock = rl (bufrdb + 28); + else + partblock = rl (buf + 4 * 4); + if (!legalrdbblock (uip, partblock)) + { + err = -2; + goto error; + } + memset (buf, 0, readblocksize); + hdf_read (hfd, buf, partblock * hfd->blocksize, readblocksize); + if (!rdb_checksum ("PART", buf, partblock)) + { + err = -2; + goto error; + } + } - rdbmnt - flags = rl (buf + 20); - if ((flags & 2) || uip->bootpri <= -129) { /* do not mount */ - err = -1; - write_log (_T("RDB: Automount disabled, not mounting\n")); - goto error; - } + rdbmnt + flags = rl (buf + 20); + if ((flags & 2) || uip->bootpri <= -129) /* do not mount */ + { + err = -1; + write_log (_T("RDB: Automount disabled, not mounting\n")); + goto error; + } - if (!(flags & 1) || uip->bootpri <= -128) /* not bootable */ - m68k_dreg (regs, 7) = m68k_dreg (regs, 7) & ~1; + if (!(flags & 1) || uip->bootpri <= -128) /* not bootable */ + m68k_dreg (regs, 7) = m68k_dreg (regs, 7) & ~1; - buf[37 + buf[36]] = 0; /* zero terminate BSTR */ - s = au ((char*)buf + 37); - uip->rdb_devname_amiga[partnum] = ds (device_dupfix (get_long (parmpacket + PP_EXPLIB), s)); - xfree (s); - put_long (parmpacket, uip->rdb_devname_amiga[partnum]); /* name */ - put_long (parmpacket + 4, ROM_hardfile_resname); - put_long (parmpacket + 8, uip->devno); - put_long (parmpacket + 12, 0); /* Device flags */ - for (i = 0; i < PP_MAXSIZE; i++) - put_byte (parmpacket + 16 + i, buf[128 + i]); - dostype = get_long (parmpacket + 80); + buf[37 + buf[36]] = 0; /* zero terminate BSTR */ + s = au ((char*)buf + 37); + uip->rdb_devname_amiga[partnum] = ds (device_dupfix (get_long (parmpacket + PP_EXPLIB), s)); + xfree (s); + put_long (parmpacket, uip->rdb_devname_amiga[partnum]); /* name */ + put_long (parmpacket + 4, ROM_hardfile_resname); + put_long (parmpacket + 8, uip->devno); + put_long (parmpacket + 12, 0); /* Device flags */ + for (i = 0; i < PP_MAXSIZE; i++) + put_byte (parmpacket + 16 + i, buf[128 + i]); + dostype = get_long (parmpacket + 80); - if (dostype == 0) { - write_log (_T("RDB: mount failed, dostype=0\n")); - err = -1; - goto error; - } + if (dostype == 0) + { + write_log (_T("RDB: mount failed, dostype=0\n")); + err = -1; + goto error; + } - err = 2; + err = 2; - /* load custom filesystems if needed */ - if (fileblock == -1 || !legalrdbblock (uip, fileblock)) - goto error; + /* load custom filesystems if needed */ + if (fileblock == -1 || !legalrdbblock (uip, fileblock)) + goto error; - fsres = get_long (parmpacket + PP_FSRES); - if (!fsres) { - write_log (_T("RDB: FileSystem.resource not found, this shouldn't happen!\n")); - goto error; - } - fsnode = get_long (fsres + 18); - while (get_long (fsnode)) { - if (get_long (fsnode + 14) == dostype) - break; - fsnode = get_long (fsnode); - } - oldversion = oldrevision = -1; - if (get_long (fsnode)) { - oldversion = get_word (fsnode + 18); - oldrevision = get_word (fsnode + 20); - } else { - fsnode = 0; - } + fsres = get_long (parmpacket + PP_FSRES); + if (!fsres) + { + write_log (_T("RDB: FileSystem.resource not found, this shouldn't happen!\n")); + goto error; + } + fsnode = get_long (fsres + 18); + while (get_long (fsnode)) + { + if (get_long (fsnode + 14) == dostype) + break; + fsnode = get_long (fsnode); + } + oldversion = oldrevision = -1; + if (get_long (fsnode)) + { + oldversion = get_word (fsnode + 18); + oldrevision = get_word (fsnode + 20); + } + else + { + fsnode = 0; + } - for (;;) { - if (fileblock == -1) { - if (!fsnode) - write_log (_T("RDB: FS %08X (%s) not in FileSystem.resource or in RDB\n"), dostype, dostypes (dostype)); - goto error; - } - if (!legalrdbblock (uip, fileblock)) { - write_log (_T("RDB: corrupt FSHD pointer %d\n"), fileblock); - goto error; - } - memset (buf, 0, readblocksize); - hdf_read (hfd, buf, fileblock * hfd->blocksize, readblocksize); - if (!rdb_checksum ("FSHD", buf, fileblock)) { - write_log (_T("RDB: checksum error in FSHD block %d\n"), fileblock); - goto error; - } - fileblock = rl (buf + 16); - uae_u32 rdbdostype = rl (buf + 32); - if (((dostype >> 8) == (rdbdostype >> 8) && (dostype != 0x444f5300 && (dostype & 0xffffff00) == 0x444f5300)) || (dostype == rdbdostype)) - break; - } - newversion = (buf[36] << 8) | buf[37]; - newrevision = (buf[38] << 8) | buf[39]; + for (;;) + { + if (fileblock == -1) + { + if (!fsnode) + write_log (_T("RDB: FS %08X (%s) not in FileSystem.resource or in RDB\n"), dostype, dostypes (dostype)); + goto error; + } + if (!legalrdbblock (uip, fileblock)) + { + write_log (_T("RDB: corrupt FSHD pointer %d\n"), fileblock); + goto error; + } + memset (buf, 0, readblocksize); + hdf_read (hfd, buf, fileblock * hfd->blocksize, readblocksize); + if (!rdb_checksum ("FSHD", buf, fileblock)) + { + write_log (_T("RDB: checksum error in FSHD block %d\n"), fileblock); + goto error; + } + fileblock = rl (buf + 16); + uae_u32 rdbdostype = rl (buf + 32); + if (((dostype >> 8) == (rdbdostype >> 8) && (dostype != 0x444f5300 && (dostype & 0xffffff00) == 0x444f5300)) || (dostype == rdbdostype)) + break; + } + newversion = (buf[36] << 8) | buf[37]; + newrevision = (buf[38] << 8) | buf[39]; - write_log (_T("RDB: RDB filesystem %08X (%s) version %d.%d\n"), dostype, dostypes (dostype), newversion, newrevision); - if (fsnode) { - write_log (_T("RDB: %08X (%s) in FileSystem.resource version %d.%d\n"), dostype, dostypes (dostype), oldversion, oldrevision); - } - if (newversion * 65536 + newrevision <= oldversion * 65536 + oldrevision && oldversion >= 0) { - write_log (_T("RDB: FS in FileSystem.resource is newer or same, ignoring RDB filesystem\n")); - goto error; - } + write_log (_T("RDB: RDB filesystem %08X (%s) version %d.%d\n"), dostype, dostypes (dostype), newversion, newrevision); + if (fsnode) + { + write_log (_T("RDB: %08X (%s) in FileSystem.resource version %d.%d\n"), dostype, dostypes (dostype), oldversion, oldrevision); + } + if (newversion * 65536 + newrevision <= oldversion * 65536 + oldrevision && oldversion >= 0) + { + write_log (_T("RDB: FS in FileSystem.resource is newer or same, ignoring RDB filesystem\n")); + goto error; + } - for (i = 0; i < 140; i++) - put_byte (parmpacket + PP_FSHDSTART + i, buf[32 + i]); - put_long (parmpacket + PP_FSHDSTART, dostype); - /* we found required FSHD block */ - fsmem = xmalloc (uae_u8, 262144); - lsegblock = rl (buf + 72); - i = 0; - for (;;) { - int pb = lsegblock; - if (!legalrdbblock (uip, lsegblock)) - goto error; - memset (buf, 0, readblocksize); - hdf_read (hfd, buf, lsegblock * hfd->blocksize, readblocksize); - if (!rdb_checksum ("LSEG", buf, lsegblock)) - goto error; - lsegblock = rl (buf + 16); - if (lsegblock == pb) - goto error; - if ((i + 1) * (blocksize - 20) >= 262144) - goto error; - memcpy (fsmem + i * (blocksize - 20), buf + 20, blocksize - 20); - i++; - if (lsegblock == -1) - break; - } - write_log (_T("RDB: Filesystem loaded, %d bytes\n"), i * (blocksize - 20)); - put_long (parmpacket + PP_FSSIZE, i * (blocksize - 20)); /* RDB filesystem size hack */ - uip->rdb_filesysstore = fsmem; - uip->rdb_filesyssize = i * (blocksize - 20); - xfree (buf); - return 2; + for (i = 0; i < 140; i++) + put_byte (parmpacket + PP_FSHDSTART + i, buf[32 + i]); + put_long (parmpacket + PP_FSHDSTART, dostype); + /* we found required FSHD block */ + fsmem = xmalloc (uae_u8, 262144); + lsegblock = rl (buf + 72); + i = 0; + for (;;) + { + int pb = lsegblock; + if (!legalrdbblock (uip, lsegblock)) + goto error; + memset (buf, 0, readblocksize); + hdf_read (hfd, buf, lsegblock * hfd->blocksize, readblocksize); + if (!rdb_checksum ("LSEG", buf, lsegblock)) + goto error; + lsegblock = rl (buf + 16); + if (lsegblock == pb) + goto error; + if ((i + 1) * (blocksize - 20) >= 262144) + goto error; + memcpy (fsmem + i * (blocksize - 20), buf + 20, blocksize - 20); + i++; + if (lsegblock == -1) + break; + } + write_log (_T("RDB: Filesystem loaded, %d bytes\n"), i * (blocksize - 20)); + put_long (parmpacket + PP_FSSIZE, i * (blocksize - 20)); /* RDB filesystem size hack */ + uip->rdb_filesysstore = fsmem; + uip->rdb_filesyssize = i * (blocksize - 20); + xfree (buf); + return 2; error: - xfree (buf); - xfree (fsmem); - return err; + xfree (buf); + xfree (fsmem); + return err; } static void addfakefilesys (uaecptr parmpacket, uae_u32 dostype) { - int i; + int i; - for (i = 0; i < 140; i++) - put_byte (parmpacket + PP_FSHDSTART + i, 0); - put_long (parmpacket + 80, dostype); - put_long (parmpacket + PP_FSHDSTART, dostype); - put_long (parmpacket + PP_FSHDSTART + 8, 0x100 | (dostype == 0x444f5300 ? 0x0 : 0x80)); - put_long (parmpacket + PP_FSHDSTART + 44, 0xffffffff); + for (i = 0; i < 140; i++) + put_byte (parmpacket + PP_FSHDSTART + i, 0); + put_long (parmpacket + 80, dostype); + put_long (parmpacket + PP_FSHDSTART, dostype); + put_long (parmpacket + PP_FSHDSTART + 8, 0x100 | (dostype == 0x444f5300 ? 0x0 : 0x80)); + put_long (parmpacket + PP_FSHDSTART + 44, 0xffffffff); } static int dofakefilesys (UnitInfo *uip, uaecptr parmpacket) { - int i, size; - TCHAR tmp[MAX_DPATH]; - uae_u8 buf[512]; - struct zfile *zf; - uae_u32 dostype, fsres, fsnode; + int i, size; + TCHAR tmp[MAX_DPATH]; + uae_u8 buf[512]; + struct zfile *zf; + uae_u32 dostype, fsres, fsnode; - memset (buf, 0, 4); - hdf_read (&uip->hf, buf, 0, 512); - dostype = (buf[0] << 24) | (buf[1] << 16) |(buf[2] << 8) | buf[3]; - if (dostype == 0) - return FILESYS_HARDFILE; - fsres = get_long (parmpacket + PP_FSRES); - fsnode = get_long (fsres + 18); - while (get_long (fsnode)) { - if (get_long (fsnode + 14) == dostype) { - if (kickstart_version < 36) { - addfakefilesys (parmpacket, dostype); - } else if ((dostype & 0xffffff00) != 0x444f5300) { - addfakefilesys (parmpacket, dostype); - } - return FILESYS_HARDFILE; - } - fsnode = get_long (fsnode); - } + memset (buf, 0, 4); + hdf_read (&uip->hf, buf, 0, 512); + dostype = (buf[0] << 24) | (buf[1] << 16) |(buf[2] << 8) | buf[3]; + if (dostype == 0) + return FILESYS_HARDFILE; + fsres = get_long (parmpacket + PP_FSRES); + fsnode = get_long (fsres + 18); + while (get_long (fsnode)) + { + if (get_long (fsnode + 14) == dostype) + { + if (kickstart_version < 36) + { + addfakefilesys (parmpacket, dostype); + } + else if ((dostype & 0xffffff00) != 0x444f5300) + { + addfakefilesys (parmpacket, dostype); + } + return FILESYS_HARDFILE; + } + fsnode = get_long (fsnode); + } - tmp[0] = 0; - if (uip->filesysdir && _tcslen (uip->filesysdir) > 0) { - _tcscpy (tmp, uip->filesysdir); - } else if ((dostype & 0xffffff00) == 0x444f5300) { - _tcscpy (tmp, currprefs.romfile); - i = _tcslen (tmp); - while (i > 0 && tmp[i - 1] != '/' && tmp[i - 1] != '\\') - i--; - _tcscpy (tmp + i, _T("FastFileSystem")); - } - if (tmp[0] == 0) { - write_log (_T("RDB: no filesystem for dostype 0x%08X (%s)\n"), dostype, dostypes (dostype)); - if ((dostype & 0xffffff00) == 0x444f5300) - return FILESYS_HARDFILE; - write_log (_T("RDB: mounted without filesys\n")); - return FILESYS_HARDFILE; - } - write_log (_T("RDB: fakefilesys, trying to load '%s', dostype 0x%08X (%s)\n"), tmp, dostype, dostypes (dostype)); - zf = zfile_fopen (tmp, _T("rb"), ZFD_NORMAL); - if (!zf) { - write_log (_T("RDB: filesys not found\n")); - if ((dostype & 0xffffff00) == 0x444f5300) - return FILESYS_HARDFILE; - write_log (_T("RDB: mounted without filesys\n")); - return FILESYS_HARDFILE; - } + tmp[0] = 0; + if (uip->filesysdir && _tcslen (uip->filesysdir) > 0) + { + _tcscpy (tmp, uip->filesysdir); + } + else if ((dostype & 0xffffff00) == 0x444f5300) + { + _tcscpy (tmp, currprefs.romfile); + i = _tcslen (tmp); + while (i > 0 && tmp[i - 1] != '/' && tmp[i - 1] != '\\') + i--; + _tcscpy (tmp + i, _T("FastFileSystem")); + } + if (tmp[0] == 0) + { + write_log (_T("RDB: no filesystem for dostype 0x%08X (%s)\n"), dostype, dostypes (dostype)); + if ((dostype & 0xffffff00) == 0x444f5300) + return FILESYS_HARDFILE; + write_log (_T("RDB: mounted without filesys\n")); + return FILESYS_HARDFILE; + } + write_log (_T("RDB: fakefilesys, trying to load '%s', dostype 0x%08X (%s)\n"), tmp, dostype, dostypes (dostype)); + zf = zfile_fopen (tmp, _T("rb"), ZFD_NORMAL); + if (!zf) + { + write_log (_T("RDB: filesys not found\n")); + if ((dostype & 0xffffff00) == 0x444f5300) + return FILESYS_HARDFILE; + write_log (_T("RDB: mounted without filesys\n")); + return FILESYS_HARDFILE; + } - zfile_fseek (zf, 0, SEEK_END); - size = zfile_ftell (zf); - if (size > 0) { - zfile_fseek (zf, 0, SEEK_SET); - uip->rdb_filesysstore = xmalloc (uae_u8, size); - zfile_fread (uip->rdb_filesysstore, size, 1, zf); - } - zfile_fclose (zf); - uip->rdb_filesyssize = size; - put_long (parmpacket + PP_FSSIZE, uip->rdb_filesyssize); - addfakefilesys (parmpacket, dostype); - write_log (_T("HDF: faked RDB filesystem %08X (%s) loaded\n"), dostype, dostypes (dostype)); - return FILESYS_HARDFILE; + zfile_fseek (zf, 0, SEEK_END); + size = zfile_ftell (zf); + if (size > 0) + { + zfile_fseek (zf, 0, SEEK_SET); + uip->rdb_filesysstore = xmalloc (uae_u8, size); + zfile_fread (uip->rdb_filesysstore, size, 1, zf); + } + zfile_fclose (zf); + uip->rdb_filesyssize = size; + put_long (parmpacket + PP_FSSIZE, uip->rdb_filesyssize); + addfakefilesys (parmpacket, dostype); + write_log (_T("HDF: faked RDB filesystem %08X (%s) loaded\n"), dostype, dostypes (dostype)); + return FILESYS_HARDFILE; } static void get_new_device (int type, uaecptr parmpacket, TCHAR **devname, uaecptr *devname_amiga, int unit_no) { - TCHAR buffer[80]; - uaecptr expbase = get_long (parmpacket + PP_EXPLIB); + TCHAR buffer[80]; + uaecptr expbase = get_long (parmpacket + PP_EXPLIB); - if (*devname == 0 || _tcslen (*devname) == 0) { - int un = unit_no; - for (;;) { - _stprintf (buffer, _T("DH%d"), un++); - if (!device_isdup (expbase, buffer)) - break; + if (*devname == 0 || _tcslen (*devname) == 0) + { + int un = unit_no; + for (;;) + { + _stprintf (buffer, _T("DH%d"), un++); + if (!device_isdup (expbase, buffer)) + break; + } } - } else { - _tcscpy (buffer, *devname); - } - *devname_amiga = ds (device_dupfix (expbase, buffer)); - if (type == FILESYS_VIRTUAL) - write_log (_T("FS: mounted virtual unit %s (%s)\n"), buffer, mountinfo.ui[unit_no].rootdir); - else - write_log (_T("FS: mounted HDF unit %s (%04x-%08x, %s)\n"), buffer, - (uae_u32)(mountinfo.ui[unit_no].hf.virtsize >> 32), - (uae_u32)(mountinfo.ui[unit_no].hf.virtsize), - mountinfo.ui[unit_no].rootdir); + else + { + _tcscpy (buffer, *devname); + } + *devname_amiga = ds (device_dupfix (expbase, buffer)); + if (type == FILESYS_VIRTUAL) + write_log (_T("FS: mounted virtual unit %s (%s)\n"), buffer, mountinfo.ui[unit_no].rootdir); + else + write_log (_T("FS: mounted HDF unit %s (%04x-%08x, %s)\n"), buffer, + (uae_u32)(mountinfo.ui[unit_no].hf.virtsize >> 32), + (uae_u32)(mountinfo.ui[unit_no].hf.virtsize), + mountinfo.ui[unit_no].rootdir); } /* Fill in per-unit fields of a parampacket */ static uae_u32 REGPARAM2 filesys_dev_storeinfo (TrapContext *context) { - UnitInfo *uip = mountinfo.ui; - int no = m68k_dreg (regs, 6) & 0x7fffffff; - int unit_no = no & 65535; - int sub_no = no >> 16; - int type; - uaecptr parmpacket = m68k_areg (regs, 0); + UnitInfo *uip = mountinfo.ui; + int no = m68k_dreg (regs, 6) & 0x7fffffff; + int unit_no = no & 65535; + int sub_no = no >> 16; + int type; + uaecptr parmpacket = m68k_areg (regs, 0); - gui_flicker_led (LED_HD, unit_no, -1); - type = is_hardfile (unit_no); - if (type == FILESYS_HARDFILE_RDB) { - /* RDB hardfile */ - uip[unit_no].devno = unit_no; - return rdb_mount (&uip[unit_no], unit_no, sub_no, parmpacket); - } - if (sub_no) - return -2; - - write_log(_T("Mounting uaehf.device %d (%d):\n"), unit_no, sub_no); - get_new_device (type, parmpacket, &uip[unit_no].devname, &uip[unit_no].devname_amiga, unit_no); - uip[unit_no].devno = unit_no; - put_long (parmpacket, uip[unit_no].devname_amiga); - put_long (parmpacket + 8, uip[unit_no].devno); - put_long (parmpacket + 12, 0); /* Device flags */ - put_long (parmpacket + 16, 16); /* Env. size */ - put_long (parmpacket + 24, 0); /* unused */ - put_long (parmpacket + 44, 0); /* unused */ - put_long (parmpacket + 48, 0); /* interleave */ - put_long (parmpacket + 60, 50); /* Number of buffers */ - put_long (parmpacket + 64, 1); /* Buffer mem type */ - put_long (parmpacket + 68, 0x7FFFFFFE); /* largest transfer */ - put_long (parmpacket + 72, 0xFFFFFFFE); /* dma mask */ - put_long (parmpacket + 76, uip[unit_no].bootpri); /* bootPri */ - put_long (parmpacket + 80, DISK_TYPE_DOS); /* DOS\0 */ - if (type == FILESYS_VIRTUAL) { - put_long (parmpacket + 4, fsdevname); - put_long (parmpacket + 20, 512 >> 2); /* longwords per block */ - put_long (parmpacket + 28, 15); /* heads */ - put_long (parmpacket + 32, 1); /* sectors per block */ - put_long (parmpacket + 36, 127); /* sectors per track */ - put_long (parmpacket + 40, 2); /* reserved blocks */ - put_long (parmpacket + 52, 0); /* lowCyl */ - put_long (parmpacket + 56, 1); /* hiCyl */ - } else { - put_long (parmpacket + 4, ROM_hardfile_resname); - put_long (parmpacket + 20, uip[unit_no].hf.blocksize >> 2); /* longwords per block */ - put_long (parmpacket + 28, uip[unit_no].hf.surfaces); /* heads */ - put_long (parmpacket + 32, 1); /* sectors per block */ - put_long (parmpacket + 36, uip[unit_no].hf.secspertrack); /* sectors per track */ - put_long (parmpacket + 40, uip[unit_no].hf.reservedblocks); /* reserved blocks */ - put_long (parmpacket + 52, 0); /* lowCyl */ - put_long (parmpacket + 56, uip[unit_no].hf.nrcyls <= 0 ? 0 : uip[unit_no].hf.nrcyls - 1); /* hiCyl */ - } - if (type == FILESYS_HARDFILE) - type = dofakefilesys (&uip[unit_no], parmpacket); - if (uip[unit_no].bootpri < -127) - m68k_dreg (regs, 7) = m68k_dreg (regs, 7) & ~1; /* do not boot */ - if (uip[unit_no].bootpri < -128) - return -1; /* do not mount */ - return type; + gui_flicker_led (LED_HD, unit_no, -1); + type = is_hardfile (unit_no); + if (type == FILESYS_HARDFILE_RDB) + { + /* RDB hardfile */ + uip[unit_no].devno = unit_no; + return rdb_mount (&uip[unit_no], unit_no, sub_no, parmpacket); + } + if (sub_no) + return -2; + + write_log(_T("Mounting uaehf.device %d (%d):\n"), unit_no, sub_no); + get_new_device (type, parmpacket, &uip[unit_no].devname, &uip[unit_no].devname_amiga, unit_no); + uip[unit_no].devno = unit_no; + put_long (parmpacket, uip[unit_no].devname_amiga); + put_long (parmpacket + 8, uip[unit_no].devno); + put_long (parmpacket + 12, 0); /* Device flags */ + put_long (parmpacket + 16, 16); /* Env. size */ + put_long (parmpacket + 24, 0); /* unused */ + put_long (parmpacket + 44, 0); /* unused */ + put_long (parmpacket + 48, 0); /* interleave */ + put_long (parmpacket + 60, 50); /* Number of buffers */ + put_long (parmpacket + 64, 1); /* Buffer mem type */ + put_long (parmpacket + 68, 0x7FFFFFFE); /* largest transfer */ + put_long (parmpacket + 72, 0xFFFFFFFE); /* dma mask */ + put_long (parmpacket + 76, uip[unit_no].bootpri); /* bootPri */ + put_long (parmpacket + 80, DISK_TYPE_DOS); /* DOS\0 */ + if (type == FILESYS_VIRTUAL) + { + put_long (parmpacket + 4, fsdevname); + put_long (parmpacket + 20, 512 >> 2); /* longwords per block */ + put_long (parmpacket + 28, 15); /* heads */ + put_long (parmpacket + 32, 1); /* sectors per block */ + put_long (parmpacket + 36, 127); /* sectors per track */ + put_long (parmpacket + 40, 2); /* reserved blocks */ + put_long (parmpacket + 52, 0); /* lowCyl */ + put_long (parmpacket + 56, 1); /* hiCyl */ + } + else + { + put_long (parmpacket + 4, ROM_hardfile_resname); + put_long (parmpacket + 20, uip[unit_no].hf.blocksize >> 2); /* longwords per block */ + put_long (parmpacket + 28, uip[unit_no].hf.surfaces); /* heads */ + put_long (parmpacket + 32, 1); /* sectors per block */ + put_long (parmpacket + 36, uip[unit_no].hf.secspertrack); /* sectors per track */ + put_long (parmpacket + 40, uip[unit_no].hf.reservedblocks); /* reserved blocks */ + put_long (parmpacket + 52, 0); /* lowCyl */ + put_long (parmpacket + 56, uip[unit_no].hf.nrcyls <= 0 ? 0 : uip[unit_no].hf.nrcyls - 1); /* hiCyl */ + } + if (type == FILESYS_HARDFILE) + type = dofakefilesys (&uip[unit_no], parmpacket); + if (uip[unit_no].bootpri < -127) + m68k_dreg (regs, 7) = m68k_dreg (regs, 7) & ~1; /* do not boot */ + if (uip[unit_no].bootpri < -128) + return -1; /* do not mount */ + return type; } static uae_u32 REGPARAM2 mousehack_done (TrapContext *context) { - int mode = m68k_dreg (regs, 1); - if (mode < 10) { - uaecptr diminfo = m68k_areg (regs, 2); - uaecptr dispinfo = m68k_areg (regs, 3); - uaecptr vp = m68k_areg (regs, 4); - return input_mousehack_status (mode, diminfo, dispinfo, vp, m68k_dreg (regs, 2)); - } else if (mode == 10) { - amiga_clipboard_die (); - } else if (mode == 11) { - amiga_clipboard_got_data (m68k_areg (regs, 2), m68k_dreg (regs, 2), m68k_dreg (regs, 0) + 8); - } else if (mode == 12) { - return amiga_clipboard_want_data (); - } else if (mode == 13) { - return amiga_clipboard_proc_start (); - } else if (mode == 14) { - amiga_clipboard_task_start (m68k_dreg (regs, 0)); - } else if (mode == 15) { - amiga_clipboard_init (); - } else if (mode == 16) { - uaecptr a2 = m68k_areg (regs, 2); - input_mousehack_mouseoffset (a2); - } else if (mode == 17) { - uae_u32 v = 0; - return v; - } else if (mode == 18) { - return rtarea_base + RTAREA_HEARTBEAT; - } else if (mode == 101) { - } else if (mode == 102) { - uaecptr ret = 0; - put_long (m68k_areg (regs, 7) + 4 * 4, ret); - } else { - write_log (_T("Unknown mousehack hook %d\n"), mode); - } - return 1; + int mode = m68k_dreg (regs, 1); + if (mode < 10) + { + uaecptr diminfo = m68k_areg (regs, 2); + uaecptr dispinfo = m68k_areg (regs, 3); + uaecptr vp = m68k_areg (regs, 4); + return input_mousehack_status (mode, diminfo, dispinfo, vp, m68k_dreg (regs, 2)); + } + else if (mode == 10) + { + amiga_clipboard_die (); + } + else if (mode == 11) + { + amiga_clipboard_got_data (m68k_areg (regs, 2), m68k_dreg (regs, 2), m68k_dreg (regs, 0) + 8); + } + else if (mode == 12) + { + return amiga_clipboard_want_data (); + } + else if (mode == 13) + { + return amiga_clipboard_proc_start (); + } + else if (mode == 14) + { + amiga_clipboard_task_start (m68k_dreg (regs, 0)); + } + else if (mode == 15) + { + amiga_clipboard_init (); + } + else if (mode == 16) + { + uaecptr a2 = m68k_areg (regs, 2); + input_mousehack_mouseoffset (a2); + } + else if (mode == 17) + { + uae_u32 v = 0; + return v; + } + else if (mode == 18) + { + return rtarea_base + RTAREA_HEARTBEAT; + } + else if (mode == 101) + { + } + else if (mode == 102) + { + uaecptr ret = 0; + put_long (m68k_areg (regs, 7) + 4 * 4, ret); + } + else + { + write_log (_T("Unknown mousehack hook %d\n"), mode); + } + return 1; } void filesys_vsync (void) { - Unit *u; + Unit *u; - if (!uae_boot_rom) - return; - if (heartbeat == get_long (rtarea_base + RTAREA_HEARTBEAT)) { - if (heartbeat_count > 0) - heartbeat_count--; - return; - } - heartbeat = get_long (rtarea_base + RTAREA_HEARTBEAT); + if (!uae_boot_rom) + return; + if (heartbeat == get_long (rtarea_base + RTAREA_HEARTBEAT)) + { + if (heartbeat_count > 0) + heartbeat_count--; + return; + } + heartbeat = get_long (rtarea_base + RTAREA_HEARTBEAT); - for (u = units; u; u = u->next) { - if (u->reinsertdelay > 0) { - u->reinsertdelay--; - if (u->reinsertdelay == 0) { - filesys_insert (u->unit, u->newvolume, u->newrootdir, u->newreadonly, u->newflags); - xfree (u->newvolume); - u->newvolume = NULL; - xfree (u->newrootdir); - u->newrootdir = NULL; - } - } - record_timeout (u); - } + for (u = units; u; u = u->next) + { + if (u->reinsertdelay > 0) + { + u->reinsertdelay--; + if (u->reinsertdelay == 0) + { + filesys_insert (u->unit, u->newvolume, u->newrootdir, u->newreadonly, u->newflags); + xfree (u->newvolume); + u->newvolume = NULL; + xfree (u->newrootdir); + u->newrootdir = NULL; + } + } + record_timeout (u); + } - if (heartbeat_count <= 0) - return; + if (heartbeat_count <= 0) + return; - if (heartbeat_task & 1) { - setsystime_vblank (); - heartbeat_task &= ~1; - } + if (heartbeat_task & 1) + { + setsystime_vblank (); + heartbeat_task &= ~1; + } } void filesys_install (void) { - uaecptr loop; + uaecptr loop; - TRACEI ((_T("Installing filesystem\n"))); + TRACEI ((_T("Installing filesystem\n"))); - uae_sem_init (&singlethread_int_sem, 0, 1); + uae_sem_init (&singlethread_int_sem, 0, 1); - ROM_filesys_resname = ds_ansi ("UAEunixfs.resource"); - ROM_filesys_resid = ds_ansi ("UAE unixfs 0.4"); + ROM_filesys_resname = ds_ansi ("UAEunixfs.resource"); + ROM_filesys_resid = ds_ansi ("UAE unixfs 0.4"); - fsdevname = ds_ansi ("uae.device"); /* does not really exist */ - fshandlername = ds_bstr_ansi ("uaefs"); - ROM_filesys_diagentry = here(); - calltrap (deftrap2 (filesys_diagentry, 0, _T("filesys_diagentry"))); - dw(0x4ED0); /* JMP (a0) - jump to code that inits Residents */ - - loop = here (); - - org (rtarea_base + RTAREA_HEARTBEAT); - dl (0); - heartbeat = 0; - heartbeat_task = 0; + fsdevname = ds_ansi ("uae.device"); /* does not really exist */ + fshandlername = ds_bstr_ansi ("uaefs"); + ROM_filesys_diagentry = here(); + calltrap (deftrap2 (filesys_diagentry, 0, _T("filesys_diagentry"))); + dw(0x4ED0); /* JMP (a0) - jump to code that inits Residents */ - org (rtarea_base + 0xFF18); - calltrap (deftrap2 (filesys_dev_bootfilesys, 0, _T("filesys_dev_bootfilesys"))); - dw (RTS); - - /* Special trap for the assembly make_dev routine */ - org (rtarea_base + 0xFF20); - calltrap (deftrap2 (filesys_dev_remember, 0, _T("filesys_dev_remember"))); - dw (RTS); + loop = here (); - org (rtarea_base + 0xFF28); - calltrap (deftrap2 (filesys_dev_storeinfo, 0, _T("filesys_dev_storeinfo"))); - dw (RTS); + org (rtarea_base + RTAREA_HEARTBEAT); + dl (0); + heartbeat = 0; + heartbeat_task = 0; - org (rtarea_base + 0xFF30); - calltrap (deftrap2 (filesys_handler, 0, _T("filesys_handler"))); - dw (RTS); + org (rtarea_base + 0xFF18); + calltrap (deftrap2 (filesys_dev_bootfilesys, 0, _T("filesys_dev_bootfilesys"))); + dw (RTS); - org (rtarea_base + 0xFF38); - calltrap (deftrap2 (mousehack_done, 0, _T("mousehack_done"))); - dw (RTS); + /* Special trap for the assembly make_dev routine */ + org (rtarea_base + 0xFF20); + calltrap (deftrap2 (filesys_dev_remember, 0, _T("filesys_dev_remember"))); + dw (RTS); - org (rtarea_base + 0xFF40); - calltrap (deftrap2 (startup_handler, 0, _T("startup_handler"))); - dw (RTS); + org (rtarea_base + 0xFF28); + calltrap (deftrap2 (filesys_dev_storeinfo, 0, _T("filesys_dev_storeinfo"))); + dw (RTS); - org (rtarea_base + 0xFF48); - calltrap (deftrap2 (filesys_init_storeinfo, TRAPFLAG_EXTRA_STACK, _T("filesys_init_storeinfo"))); - dw (RTS); + org (rtarea_base + 0xFF30); + calltrap (deftrap2 (filesys_handler, 0, _T("filesys_handler"))); + dw (RTS); - org (rtarea_base + 0xFF50); - calltrap (deftrap2 (exter_int_helper, 0, _T("exter_int_helper"))); - dw (RTS); + org (rtarea_base + 0xFF38); + calltrap (deftrap2 (mousehack_done, 0, _T("mousehack_done"))); + dw (RTS); - org (rtarea_base + 0xFF58); - calltrap (deftrap2 (fsmisc_helper, 0, _T("fsmisc_helper"))); - dw (RTS); + org (rtarea_base + 0xFF40); + calltrap (deftrap2 (startup_handler, 0, _T("startup_handler"))); + dw (RTS); - org (loop); + org (rtarea_base + 0xFF48); + calltrap (deftrap2 (filesys_init_storeinfo, TRAPFLAG_EXTRA_STACK, _T("filesys_init_storeinfo"))); + dw (RTS); + + org (rtarea_base + 0xFF50); + calltrap (deftrap2 (exter_int_helper, 0, _T("exter_int_helper"))); + dw (RTS); + + org (rtarea_base + 0xFF58); + calltrap (deftrap2 (fsmisc_helper, 0, _T("fsmisc_helper"))); + dw (RTS); + + org (loop); } void filesys_install_code (void) { - uae_u32 a, b; + uae_u32 a, b; - bootrom_header = 3 * 4; - align(4); - a = here (); - #include "filesys_bootrom.cpp" + bootrom_header = 3 * 4; + align(4); + a = here (); +#include "filesys_bootrom.cpp" - bootrom_items = dlg (a + 8); - /* The last offset comes from the code itself, look for it near the top. */ - EXPANSION_bootcode = a + bootrom_header + bootrom_items * 4 - 4; - b = a + bootrom_header + 3 * 4 - 4; - filesys_initcode = a + dlg (b) + bootrom_header - 4; + bootrom_items = dlg (a + 8); + /* The last offset comes from the code itself, look for it near the top. */ + EXPANSION_bootcode = a + bootrom_header + bootrom_items * 4 - 4; + b = a + bootrom_header + 3 * 4 - 4; + filesys_initcode = a + dlg (b) + bootrom_header - 4; } #ifdef _WIN32 @@ -6400,673 +7141,741 @@ void filesys_install_code (void) static uae_u8 *restore_filesys_hardfile (UnitInfo *ui, uae_u8 *src) { - struct hardfiledata *hfd = &ui->hf; - TCHAR *s; + struct hardfiledata *hfd = &ui->hf; + TCHAR *s; - hfd->virtsize = restore_u64(); - hfd->offset = restore_u64(); - hfd->nrcyls = restore_u32(); - hfd->secspertrack = restore_u32(); - hfd->surfaces = restore_u32(); - hfd->reservedblocks = restore_u32(); - hfd->blocksize = restore_u32(); - hfd->readonly = restore_u32(); - hfd->flags = restore_u32(); - hfd->cylinders = restore_u32(); - hfd->sectors = restore_u32(); - hfd->heads = restore_u32(); - s = restore_string(); - _tcscpy (hfd->vendor_id, s); - xfree(s); - s = restore_string(); - _tcscpy (hfd->product_id, s); - xfree(s); - s = restore_string(); - _tcscpy (hfd->product_rev, s); - xfree(s); - s = restore_string(); - _tcscpy (hfd->device_name, s); - xfree(s); - return src; + hfd->virtsize = restore_u64(); + hfd->offset = restore_u64(); + hfd->nrcyls = restore_u32(); + hfd->secspertrack = restore_u32(); + hfd->surfaces = restore_u32(); + hfd->reservedblocks = restore_u32(); + hfd->blocksize = restore_u32(); + hfd->readonly = restore_u32(); + hfd->flags = restore_u32(); + hfd->cylinders = restore_u32(); + hfd->sectors = restore_u32(); + hfd->heads = restore_u32(); + s = restore_string(); + _tcscpy (hfd->vendor_id, s); + xfree(s); + s = restore_string(); + _tcscpy (hfd->product_id, s); + xfree(s); + s = restore_string(); + _tcscpy (hfd->product_rev, s); + xfree(s); + s = restore_string(); + _tcscpy (hfd->device_name, s); + xfree(s); + return src; } static uae_u8 *save_filesys_hardfile (UnitInfo *ui, uae_u8 *dst) { - struct hardfiledata *hfd = &ui->hf; + struct hardfiledata *hfd = &ui->hf; - save_u64 (hfd->virtsize); - save_u64 (hfd->offset); - save_u32 (hfd->nrcyls); - save_u32 (hfd->secspertrack); - save_u32 (hfd->surfaces); - save_u32 (hfd->reservedblocks); - save_u32 (hfd->blocksize); - save_u32 (hfd->readonly); - save_u32 (hfd->flags); - save_u32 (hfd->cylinders); - save_u32 (hfd->sectors); - save_u32 (hfd->heads); - save_string (hfd->vendor_id); - save_string (hfd->product_id); - save_string (hfd->product_rev); - save_string (hfd->device_name); - return dst; + save_u64 (hfd->virtsize); + save_u64 (hfd->offset); + save_u32 (hfd->nrcyls); + save_u32 (hfd->secspertrack); + save_u32 (hfd->surfaces); + save_u32 (hfd->reservedblocks); + save_u32 (hfd->blocksize); + save_u32 (hfd->readonly); + save_u32 (hfd->flags); + save_u32 (hfd->cylinders); + save_u32 (hfd->sectors); + save_u32 (hfd->heads); + save_string (hfd->vendor_id); + save_string (hfd->product_id); + save_string (hfd->product_rev); + save_string (hfd->device_name); + return dst; } static a_inode *restore_filesys_get_base (Unit *u, TCHAR *npath) { - TCHAR *path, *p, *p2; - a_inode *a; - int cnt, err, i; + TCHAR *path, *p, *p2; + a_inode *a; + int cnt, err, i; - /* no '/' = parent is root */ - if (!_tcschr (npath, '/')) - return &u->rootnode; + /* no '/' = parent is root */ + if (!_tcschr (npath, '/')) + return &u->rootnode; - /* iterate from root to last to previous path part, - * create ainos if not already created. - */ - path = xcalloc(TCHAR, _tcslen (npath) + 2); - cnt = 1; - for (;;) { - _tcscpy (path, npath); - _tcscat (path, _T("/")); - p = path; - for (i = 0; i < cnt ;i++) { - if (i > 0) - p++; - while (*p != '/' && *p != 0) - p++; - } - if (*p) { - *p = 0; - err = 0; - get_aino (u, &u->rootnode, path, &err); - if (err) { - write_log (_T("*** FS: missing path '%s'!\n"), path); - return NULL; - } - cnt++; - } else { - break; - } - } + /* iterate from root to last to previous path part, + * create ainos if not already created. + */ + path = xcalloc(TCHAR, _tcslen (npath) + 2); + cnt = 1; + for (;;) + { + _tcscpy (path, npath); + _tcscat (path, _T("/")); + p = path; + for (i = 0; i < cnt ; i++) + { + if (i > 0) + p++; + while (*p != '/' && *p != 0) + p++; + } + if (*p) + { + *p = 0; + err = 0; + get_aino (u, &u->rootnode, path, &err); + if (err) + { + write_log (_T("*** FS: missing path '%s'!\n"), path); + return NULL; + } + cnt++; + } + else + { + break; + } + } - /* find base (parent) of last path part */ - _tcscpy (path, npath); - p = path; - a = u->rootnode.child; - for (;;) { - if (*p == 0) { - write_log (_T("*** FS: base aino NOT found '%s' ('%s')\n"), a->nname, npath); - xfree (path); - return NULL; - } - p2 = p; - while(*p2 != '/' && *p2 != '\\' && *p2 != 0) - p2++; - *p2 = 0; - while (a) { - if (!same_aname(p, a->aname)) { - a = a->sibling; - continue; - } - p = p2 + 1; - if (*p == 0) { - write_log (_T("FS: base aino found '%s' ('%s')\n"), a->nname, npath); - xfree (path); - return a; - } - a = a->child; - break; - } - if (!a) { - write_log (_T("*** FS: path part '%s' not found ('%s')\n"), p, npath); - xfree (path); - return NULL; - } - } + /* find base (parent) of last path part */ + _tcscpy (path, npath); + p = path; + a = u->rootnode.child; + for (;;) + { + if (*p == 0) + { + write_log (_T("*** FS: base aino NOT found '%s' ('%s')\n"), a->nname, npath); + xfree (path); + return NULL; + } + p2 = p; + while(*p2 != '/' && *p2 != '\\' && *p2 != 0) + p2++; + *p2 = 0; + while (a) + { + if (!same_aname(p, a->aname)) + { + a = a->sibling; + continue; + } + p = p2 + 1; + if (*p == 0) + { + write_log (_T("FS: base aino found '%s' ('%s')\n"), a->nname, npath); + xfree (path); + return a; + } + a = a->child; + break; + } + if (!a) + { + write_log (_T("*** FS: path part '%s' not found ('%s')\n"), p, npath); + xfree (path); + return NULL; + } + } } static TCHAR *makenativepath (UnitInfo *ui, TCHAR *apath) { - int i; - TCHAR *pn; - /* create native path. FIXME: handle 'illegal' characters */ - pn = xcalloc (TCHAR, _tcslen (apath) + 1 + _tcslen (ui->rootdir) + 1); - _stprintf (pn, _T("%s/%s"), ui->rootdir, apath); - if (FSDB_DIR_SEPARATOR != '/') { - for (i = 0; i < _tcslen (pn); i++) { - if (pn[i] == '/') - pn[i] = FSDB_DIR_SEPARATOR; - } - } - return pn; + int i; + TCHAR *pn; + /* create native path. FIXME: handle 'illegal' characters */ + pn = xcalloc (TCHAR, _tcslen (apath) + 1 + _tcslen (ui->rootdir) + 1); + _stprintf (pn, _T("%s/%s"), ui->rootdir, apath); + if (FSDB_DIR_SEPARATOR != '/') + { + for (i = 0; i < _tcslen (pn); i++) + { + if (pn[i] == '/') + pn[i] = FSDB_DIR_SEPARATOR; + } + } + return pn; } static uae_u8 *restore_aino(UnitInfo *ui, Unit *u, uae_u8 *src) { - TCHAR *p, *p2, *pn; - uae_u32 flags; - int missing; - a_inode *base, *a; + TCHAR *p, *p2, *pn; + uae_u32 flags; + int missing; + a_inode *base, *a; - missing = 0; - a = xcalloc (a_inode, 1); - a->uniq = restore_u64 (); - a->locked_children = restore_u32 (); - a->exnext_count = restore_u32 (); - a->shlock = restore_u32 (); - flags = restore_u32 (); - if (flags & 1) - a->elock = 1; - if (flags & 4) - a->uniq_external = restore_u64 (); - /* full Amiga-side path without drive, eg. "C/SetPatch" */ - p = restore_string (); - /* root (p = volume label) */ - if (a->uniq == 0) { - a->nname = my_strdup(ui->rootdir); - a->aname = p; - a->dir = 1; - if (ui->volflags < 0) { - write_log (_T("FS: Volume '%s' ('%s') missing!\n"), a->aname, a->nname); - } else { - a->volflags = ui->volflags; - recycle_aino (u, a); - write_log (_T("FS: Lock (root) '%s' ('%s')\n"), a->aname, a->nname); - } - return src; - } - p2 = _tcsrchr(p, '/'); - if (p2) - p2++; - else - p2 = p; - pn = makenativepath(ui, p); - a->nname = pn; - a->aname = my_strdup(p2); - /* find parent of a->aname (Already restored previously. I hope..) */ - if (p2 != p) - p2[-1] = 0; - base = restore_filesys_get_base(u, p); - xfree(p); - if (flags & 2) { - a->dir = 1; - if (!my_existsdir(a->nname)) - write_log (_T("*** FS: Directory '%s' missing!\n"), a->nname); - else - fsdb_clean_dir (a); - } else { - if (!my_existsfile(a->nname)) - write_log (_T("*** FS: File '%s' missing!\n"), a->nname); - } - if (base) { - fill_file_attrs (u, base, a); - init_child_aino_tree (u, base, a); - } else { - write_log (_T("*** FS: parent directory missing '%s' ('%s')\n"), a->aname, a->nname); - missing = 1; - } - if (missing) { - write_log (_T("*** FS: Lock restore failed '%s' ('%s')\n"), a->aname, a->nname); - xfree (a->nname); - xfree (a->aname); - xfree (a); - } else { - write_log (_T("FS: Lock '%s' ('%s')\n"), a->aname, a->nname); - recycle_aino (u, a); - } - return src; + missing = 0; + a = xcalloc (a_inode, 1); + a->uniq = restore_u64 (); + a->locked_children = restore_u32 (); + a->exnext_count = restore_u32 (); + a->shlock = restore_u32 (); + flags = restore_u32 (); + if (flags & 1) + a->elock = 1; + if (flags & 4) + a->uniq_external = restore_u64 (); + /* full Amiga-side path without drive, eg. "C/SetPatch" */ + p = restore_string (); + /* root (p = volume label) */ + if (a->uniq == 0) + { + a->nname = my_strdup(ui->rootdir); + a->aname = p; + a->dir = 1; + if (ui->volflags < 0) + { + write_log (_T("FS: Volume '%s' ('%s') missing!\n"), a->aname, a->nname); + } + else + { + a->volflags = ui->volflags; + recycle_aino (u, a); + write_log (_T("FS: Lock (root) '%s' ('%s')\n"), a->aname, a->nname); + } + return src; + } + p2 = _tcsrchr(p, '/'); + if (p2) + p2++; + else + p2 = p; + pn = makenativepath(ui, p); + a->nname = pn; + a->aname = my_strdup(p2); + /* find parent of a->aname (Already restored previously. I hope..) */ + if (p2 != p) + p2[-1] = 0; + base = restore_filesys_get_base(u, p); + xfree(p); + if (flags & 2) + { + a->dir = 1; + if (!my_existsdir(a->nname)) + write_log (_T("*** FS: Directory '%s' missing!\n"), a->nname); + else + fsdb_clean_dir (a); + } + else + { + if (!my_existsfile(a->nname)) + write_log (_T("*** FS: File '%s' missing!\n"), a->nname); + } + if (base) + { + fill_file_attrs (u, base, a); + init_child_aino_tree (u, base, a); + } + else + { + write_log (_T("*** FS: parent directory missing '%s' ('%s')\n"), a->aname, a->nname); + missing = 1; + } + if (missing) + { + write_log (_T("*** FS: Lock restore failed '%s' ('%s')\n"), a->aname, a->nname); + xfree (a->nname); + xfree (a->aname); + xfree (a); + } + else + { + write_log (_T("FS: Lock '%s' ('%s')\n"), a->aname, a->nname); + recycle_aino (u, a); + } + return src; } static uae_u8 *restore_key(UnitInfo *ui, Unit *u, uae_u8 *src) { - int uniq; - TCHAR *p, *pn; - mode_t openmode; - int err; - int missing; - a_inode *a; - Key *k; - uae_u64 savedsize, size, pos; + int uniq; + TCHAR *p, *pn; + mode_t openmode; + int err; + int missing; + a_inode *a; + Key *k; + uae_u64 savedsize, size, pos; - missing = 0; - k = xcalloc(Key, 1); - k->uniq = restore_u64(); - k->file_pos = restore_u32(); - k->createmode = restore_u32(); - k->dosmode = restore_u32(); - savedsize = restore_u32(); - uniq = restore_u64(); - p = restore_string(); - pos = restore_u64 (); - size = restore_u64 (); - if (size) { - savedsize = size; - k->file_pos = pos; - } - pn = makenativepath (ui, p); - openmode = ((k->dosmode & A_FIBF_READ) == 0 ? O_WRONLY - : (k->dosmode & A_FIBF_WRITE) == 0 ? O_RDONLY - : O_RDWR); - write_log (_T("FS: open file '%s' ('%s'), pos=%llu\n"), p, pn, k->file_pos); - a = get_aino (u, &u->rootnode, p, &err); - if (!a) - write_log (_T("*** FS: Open file aino creation failed '%s'\n"), p); - missing = 1; - if (a) { - missing = 0; - k->aino = a; - if (a->uniq != uniq) - write_log (_T("*** FS: Open file '%s' aino id %d != %d\n"), p, uniq, a->uniq); - if (!my_existsfile(pn)) { - write_log(_T("*** FS: Open file '%s' is missing, creating dummy file!\n"), p); - if (savedsize < 10 * 1024 * 1024) { - k->fd = fs_openfile (u, a, openmode | O_CREAT |O_BINARY); - if (k->fd) { - uae_u8 *buf = xcalloc (uae_u8, 10000); - uae_u64 sp = savedsize; - while (sp) { - uae_u32 s = sp >= 10000 ? 10000 : sp; - fs_write(k->fd, buf, s); - sp -= s; - } - xfree(buf); - write_log (_T("*** FS: dummy file created\n")); - } else { - write_log (_T("*** FS: Open file '%s', couldn't create dummy file!\n"), p); - } - } else { - write_log (_T("*** FS: Too big, ignored\n")); - } - } else { - k->fd = fs_openfile (u, a, openmode | O_BINARY); - } - if (!k->fd) { - write_log (_T("*** FS: Open file '%s' failed to open!\n"), p); - missing = 1; - } else { - uae_s64 s; - s = fs_fsize64 (k->fd); - if (s != savedsize) - write_log (_T("FS: restored file '%s' size changed! orig=%llu, now=%lld!!\n"), p, savedsize, s); - if (k->file_pos > s) { - write_log (_T("FS: restored filepos larger than size of file '%s'!! %llu > %lld\n"), p, k->file_pos, s); - k->file_pos = s; - } - fs_lseek64 (k->fd, k->file_pos, SEEK_SET); - } - } - xfree (p); - if (missing) { - xfree(k); - } else { - k->next = u->keys; - u->keys = k; - } - return src; + missing = 0; + k = xcalloc(Key, 1); + k->uniq = restore_u64(); + k->file_pos = restore_u32(); + k->createmode = restore_u32(); + k->dosmode = restore_u32(); + savedsize = restore_u32(); + uniq = restore_u64(); + p = restore_string(); + pos = restore_u64 (); + size = restore_u64 (); + if (size) + { + savedsize = size; + k->file_pos = pos; + } + pn = makenativepath (ui, p); + openmode = ((k->dosmode & A_FIBF_READ) == 0 ? O_WRONLY + : (k->dosmode & A_FIBF_WRITE) == 0 ? O_RDONLY + : O_RDWR); + write_log (_T("FS: open file '%s' ('%s'), pos=%llu\n"), p, pn, k->file_pos); + a = get_aino (u, &u->rootnode, p, &err); + if (!a) + write_log (_T("*** FS: Open file aino creation failed '%s'\n"), p); + missing = 1; + if (a) + { + missing = 0; + k->aino = a; + if (a->uniq != uniq) + write_log (_T("*** FS: Open file '%s' aino id %d != %d\n"), p, uniq, a->uniq); + if (!my_existsfile(pn)) + { + write_log(_T("*** FS: Open file '%s' is missing, creating dummy file!\n"), p); + if (savedsize < 10 * 1024 * 1024) + { + k->fd = fs_openfile (u, a, openmode | O_CREAT |O_BINARY); + if (k->fd) + { + uae_u8 *buf = xcalloc (uae_u8, 10000); + uae_u64 sp = savedsize; + while (sp) + { + uae_u32 s = sp >= 10000 ? 10000 : sp; + fs_write(k->fd, buf, s); + sp -= s; + } + xfree(buf); + write_log (_T("*** FS: dummy file created\n")); + } + else + { + write_log (_T("*** FS: Open file '%s', couldn't create dummy file!\n"), p); + } + } + else + { + write_log (_T("*** FS: Too big, ignored\n")); + } + } + else + { + k->fd = fs_openfile (u, a, openmode | O_BINARY); + } + if (!k->fd) + { + write_log (_T("*** FS: Open file '%s' failed to open!\n"), p); + missing = 1; + } + else + { + uae_s64 s; + s = fs_fsize64 (k->fd); + if (s != savedsize) + write_log (_T("FS: restored file '%s' size changed! orig=%llu, now=%lld!!\n"), p, savedsize, s); + if (k->file_pos > s) + { + write_log (_T("FS: restored filepos larger than size of file '%s'!! %llu > %lld\n"), p, k->file_pos, s); + k->file_pos = s; + } + fs_lseek64 (k->fd, k->file_pos, SEEK_SET); + } + } + xfree (p); + if (missing) + { + xfree(k); + } + else + { + k->next = u->keys; + u->keys = k; + } + return src; } static uae_u8 *restore_notify(UnitInfo *ui, Unit *u, uae_u8 *src) { - Notify *n = xcalloc (Notify, 1); - uae_u32 hash; - TCHAR *s; + Notify *n = xcalloc (Notify, 1); + uae_u32 hash; + TCHAR *s; - n->notifyrequest = restore_u32(); - s = restore_string(); - n->fullname = xmalloc (TCHAR, _tcslen (ui->volname) + 2 + _tcslen (s) + 1); - _stprintf (n->fullname, _T("%s:%s"), ui->volname, s); - xfree(s); - s = _tcsrchr (n->fullname, '/'); - if (s) - s++; - else - s = n->fullname; - n->partname = my_strdup(s); - hash = notifyhash (n->fullname); - n->next = u->notifyhash[hash]; - u->notifyhash[hash] = n; - write_log (_T("FS: notify %08X '%s' '%s'\n"), n->notifyrequest, n->fullname, n->partname); - return src; + n->notifyrequest = restore_u32(); + s = restore_string(); + n->fullname = xmalloc (TCHAR, _tcslen (ui->volname) + 2 + _tcslen (s) + 1); + _stprintf (n->fullname, _T("%s:%s"), ui->volname, s); + xfree(s); + s = _tcsrchr (n->fullname, '/'); + if (s) + s++; + else + s = n->fullname; + n->partname = my_strdup(s); + hash = notifyhash (n->fullname); + n->next = u->notifyhash[hash]; + u->notifyhash[hash] = n; + write_log (_T("FS: notify %08X '%s' '%s'\n"), n->notifyrequest, n->fullname, n->partname); + return src; } static uae_u8 *restore_exkey(UnitInfo *ui, Unit *u, uae_u8 *src) { - restore_u64(); - restore_u64(); - restore_u64(); - return src; + restore_u64(); + restore_u64(); + restore_u64(); + return src; } static uae_u8 *restore_filesys_virtual (UnitInfo *ui, uae_u8 *src, int num) { - Unit *u = startup_create_unit (ui, num); - int cnt; + Unit *u = startup_create_unit (ui, num); + int cnt; - u->dosbase = restore_u32 (); - u->volume = restore_u32 (); - u->port = restore_u32 (); - u->locklist = restore_u32 (); - u->dummy_message = restore_u32 (); - u->cmds_sent = restore_u64 (); - u->cmds_complete = restore_u64 (); - u->cmds_acked = restore_u64 (); - u->next_exkey = restore_u32 (); - u->total_locked_ainos = restore_u32 (); - u->volflags = ui->volflags; + u->dosbase = restore_u32 (); + u->volume = restore_u32 (); + u->port = restore_u32 (); + u->locklist = restore_u32 (); + u->dummy_message = restore_u32 (); + u->cmds_sent = restore_u64 (); + u->cmds_complete = restore_u64 (); + u->cmds_acked = restore_u64 (); + u->next_exkey = restore_u32 (); + u->total_locked_ainos = restore_u32 (); + u->volflags = ui->volflags; - cnt = restore_u32 (); - write_log (_T("FS: restoring %d locks\n"), cnt); - while (cnt-- > 0) - src = restore_aino(ui, u, src); + cnt = restore_u32 (); + write_log (_T("FS: restoring %d locks\n"), cnt); + while (cnt-- > 0) + src = restore_aino(ui, u, src); - cnt = restore_u32 (); - write_log (_T("FS: restoring %d open files\n"), cnt); - while (cnt-- > 0) - src = restore_key(ui, u, src); + cnt = restore_u32 (); + write_log (_T("FS: restoring %d open files\n"), cnt); + while (cnt-- > 0) + src = restore_key(ui, u, src); - cnt = restore_u32 (); - write_log (_T("FS: restoring %d notifications\n"), cnt); - while (cnt-- > 0) - src = restore_notify (ui, u, src); + cnt = restore_u32 (); + write_log (_T("FS: restoring %d notifications\n"), cnt); + while (cnt-- > 0) + src = restore_notify (ui, u, src); - cnt = restore_u32 (); - write_log (_T("FS: restoring %d exkeys\n"), cnt); - while (cnt-- > 0) - src = restore_exkey (ui, u, src); + cnt = restore_u32 (); + write_log (_T("FS: restoring %d exkeys\n"), cnt); + while (cnt-- > 0) + src = restore_exkey (ui, u, src); - return src; + return src; } static TCHAR *getfullaname(a_inode *a) { - TCHAR *p; - int first = 1; + TCHAR *p; + int first = 1; - p = xcalloc (TCHAR, 2000); - while (a) { - int len = _tcslen (a->aname); - memmove (p + len + 1, p, (_tcslen (p) + 1) * sizeof (TCHAR)); - memcpy (p, a->aname, _tcslen (a->aname) * sizeof (TCHAR)); - if (!first) - p[len] = '/'; - first = 0; - a = a->parent; - if (a && a->uniq == 0) - return p; - } - return p; + p = xcalloc (TCHAR, 2000); + while (a) + { + int len = _tcslen (a->aname); + memmove (p + len + 1, p, (_tcslen (p) + 1) * sizeof (TCHAR)); + memcpy (p, a->aname, _tcslen (a->aname) * sizeof (TCHAR)); + if (!first) + p[len] = '/'; + first = 0; + a = a->parent; + if (a && a->uniq == 0) + return p; + } + return p; } /* scan and save all Lock()'d files */ static int recurse_aino (UnitInfo *ui, a_inode *a, int cnt, uae_u8 **dstp) { - uae_u8 *dst = NULL; - int dirty = 0; - a_inode *a2 = a; + uae_u8 *dst = NULL; + int dirty = 0; + a_inode *a2 = a; - if (dstp) - dst = *dstp; - while (a) { - //write_log("recurse '%s' '%s' %d %08x\n", a->aname, a->nname, a->uniq, a->parent); - if (a->elock || a->shlock || a->uniq == 0) { - if (dst) { - TCHAR *fn = NULL; - write_log (_T("uniq=%d %lld s=%d e=%d d=%d '%s' '%s'\n"), a->uniq, a->uniq_external, a->shlock, a->elock, a->dir, a->aname, a->nname); - if (a->aname) { - fn = getfullaname(a); - write_log (_T("->'%s'\n"), fn); - } - save_u64 (a->uniq); - save_u32 (a->locked_children); - save_u32 (a->exnext_count); - save_u32 (a->shlock); - save_u32 ((a->elock ? 1 : 0) | (a->dir ? 2 : 0) | 4); - save_u64 (a->uniq_external); - save_string (fn); - xfree(fn); - } - cnt++; - } - if (a->dirty) - dirty = 1; - if (a->child) - cnt = recurse_aino (ui, a->child, cnt, &dst); - a = a->sibling; - } - if (dirty && a2->parent) - fsdb_dir_writeback (a2->parent); - if (dst) - *dstp = dst; - return cnt; + if (dstp) + dst = *dstp; + while (a) + { + //write_log("recurse '%s' '%s' %d %08x\n", a->aname, a->nname, a->uniq, a->parent); + if (a->elock || a->shlock || a->uniq == 0) + { + if (dst) + { + TCHAR *fn = NULL; + write_log (_T("uniq=%d %lld s=%d e=%d d=%d '%s' '%s'\n"), a->uniq, a->uniq_external, a->shlock, a->elock, a->dir, a->aname, a->nname); + if (a->aname) + { + fn = getfullaname(a); + write_log (_T("->'%s'\n"), fn); + } + save_u64 (a->uniq); + save_u32 (a->locked_children); + save_u32 (a->exnext_count); + save_u32 (a->shlock); + save_u32 ((a->elock ? 1 : 0) | (a->dir ? 2 : 0) | 4); + save_u64 (a->uniq_external); + save_string (fn); + xfree(fn); + } + cnt++; + } + if (a->dirty) + dirty = 1; + if (a->child) + cnt = recurse_aino (ui, a->child, cnt, &dst); + a = a->sibling; + } + if (dirty && a2->parent) + fsdb_dir_writeback (a2->parent); + if (dst) + *dstp = dst; + return cnt; } static uae_u8 *save_key(uae_u8 *dst, Key *k) { - TCHAR *fn = getfullaname(k->aino); - uae_u64 size; - save_u64 (k->uniq); - save_u32 ((uae_u32)k->file_pos); - save_u32 (k->createmode); - save_u32 (k->dosmode); - size = fs_fsize (k->fd); - save_u32 ((uae_u32)size); - save_u64 (k->aino->uniq); - save_string (fn); - save_u64 (k->file_pos); - save_u64 (size); - write_log (_T("'%s' uniq=%d size=%lld seekpos=%lld mode=%d dosmode=%d\n"), - fn, k->uniq, size, k->file_pos, k->createmode, k->dosmode); - xfree(fn); - return dst; + TCHAR *fn = getfullaname(k->aino); + uae_u64 size; + save_u64 (k->uniq); + save_u32 ((uae_u32)k->file_pos); + save_u32 (k->createmode); + save_u32 (k->dosmode); + size = fs_fsize (k->fd); + save_u32 ((uae_u32)size); + save_u64 (k->aino->uniq); + save_string (fn); + save_u64 (k->file_pos); + save_u64 (size); + write_log (_T("'%s' uniq=%d size=%lld seekpos=%lld mode=%d dosmode=%d\n"), + fn, k->uniq, size, k->file_pos, k->createmode, k->dosmode); + xfree(fn); + return dst; } static uae_u8 *save_notify (UnitInfo *ui, uae_u8 *dst, Notify *n) { - TCHAR *s; - save_u32(n->notifyrequest); - s = n->fullname; - if (_tcslen (s) >= _tcslen (ui->volname) && !_tcsncmp (n->fullname, ui->volname, _tcslen (ui->volname))) - s = n->fullname + _tcslen (ui->volname) + 1; - save_string(s); - write_log (_T("FS: notify %08X '%s'\n"), n->notifyrequest, n->fullname); - return dst; + TCHAR *s; + save_u32(n->notifyrequest); + s = n->fullname; + if (_tcslen (s) >= _tcslen (ui->volname) && !_tcsncmp (n->fullname, ui->volname, _tcslen (ui->volname))) + s = n->fullname + _tcslen (ui->volname) + 1; + save_string(s); + write_log (_T("FS: notify %08X '%s'\n"), n->notifyrequest, n->fullname); + return dst; } static uae_u8 *save_exkey (uae_u8 *dst, ExamineKey *ek) { - save_u64(ek->uniq); - save_u64(ek->aino->uniq); - save_u64(ek->curr_file->uniq); - return dst; + save_u64(ek->uniq); + save_u64(ek->aino->uniq); + save_u64(ek->curr_file->uniq); + return dst; } static uae_u8 *save_filesys_virtual (UnitInfo *ui, uae_u8 *dst) { - Unit *u = ui->self; - Key *k; - int cnt, i, j; + Unit *u = ui->self; + Key *k; + int cnt, i, j; - write_log (_T("FSSAVE: '%s'\n"), ui->devname); - save_u32 (u->dosbase); - save_u32 (u->volume); - save_u32 (u->port); - save_u32 (u->locklist); - save_u32 (u->dummy_message); - save_u64 (u->cmds_sent); - save_u64 (u->cmds_complete); - save_u64 (u->cmds_acked); - save_u32 (u->next_exkey); - save_u32 (u->total_locked_ainos); - cnt = recurse_aino (ui, &u->rootnode, 0, NULL); - save_u32 (cnt); - write_log (_T("%d open locks\n"), cnt); - cnt = recurse_aino (ui, &u->rootnode, 0, &dst); - cnt = 0; - for (k = u->keys; k; k = k->next) - cnt++; - save_u32 (cnt); - write_log (_T("%d open files\n"), cnt); - for (k = u->keys; k; k = k->next) - dst = save_key (dst, k); - for (j = 0; j < 2; j++) { - cnt = 0; - for (i = 0; i < NOTIFY_HASH_SIZE; i++) { - Notify *n = u->notifyhash[i]; - while (n) { - if (j > 0) - dst = save_notify (ui, dst, n); - cnt++; - n = n->next; - } - } - if (j == 0) { - save_u32 (cnt); - write_log (_T("%d notify requests\n"), cnt); - } - } - for (j = 0; j < 2; j++) { - cnt = 0; - for (i = 0; i < EXKEYS; i++) { - ExamineKey *ek = &u->examine_keys[i]; - if (ek->uniq) { - cnt++; - if (j > 0) - dst = save_exkey (dst, ek); - } - } - if (j == 0) { - save_u32 (cnt); - write_log (_T("%d exkeys\n"), cnt); - } - } - write_log (_T("END\n")); - return dst; + write_log (_T("FSSAVE: '%s'\n"), ui->devname); + save_u32 (u->dosbase); + save_u32 (u->volume); + save_u32 (u->port); + save_u32 (u->locklist); + save_u32 (u->dummy_message); + save_u64 (u->cmds_sent); + save_u64 (u->cmds_complete); + save_u64 (u->cmds_acked); + save_u32 (u->next_exkey); + save_u32 (u->total_locked_ainos); + cnt = recurse_aino (ui, &u->rootnode, 0, NULL); + save_u32 (cnt); + write_log (_T("%d open locks\n"), cnt); + cnt = recurse_aino (ui, &u->rootnode, 0, &dst); + cnt = 0; + for (k = u->keys; k; k = k->next) + cnt++; + save_u32 (cnt); + write_log (_T("%d open files\n"), cnt); + for (k = u->keys; k; k = k->next) + dst = save_key (dst, k); + for (j = 0; j < 2; j++) + { + cnt = 0; + for (i = 0; i < NOTIFY_HASH_SIZE; i++) + { + Notify *n = u->notifyhash[i]; + while (n) + { + if (j > 0) + dst = save_notify (ui, dst, n); + cnt++; + n = n->next; + } + } + if (j == 0) + { + save_u32 (cnt); + write_log (_T("%d notify requests\n"), cnt); + } + } + for (j = 0; j < 2; j++) + { + cnt = 0; + for (i = 0; i < EXKEYS; i++) + { + ExamineKey *ek = &u->examine_keys[i]; + if (ek->uniq) + { + cnt++; + if (j > 0) + dst = save_exkey (dst, ek); + } + } + if (j == 0) + { + save_u32 (cnt); + write_log (_T("%d exkeys\n"), cnt); + } + } + write_log (_T("END\n")); + return dst; } uae_u8 *save_filesys_common (int *len) { - uae_u8 *dstbak, *dst; - if (nr_units() == 0) - return NULL; - dstbak = dst = xmalloc (uae_u8, 1000); - save_u32 (2); - save_u64 (a_uniq); - save_u64 (key_uniq); - *len = dst - dstbak; - return dstbak; + uae_u8 *dstbak, *dst; + if (nr_units() == 0) + return NULL; + dstbak = dst = xmalloc (uae_u8, 1000); + save_u32 (2); + save_u64 (a_uniq); + save_u64 (key_uniq); + *len = dst - dstbak; + return dstbak; } uae_u8 *restore_filesys_common (uae_u8 *src) { - if (restore_u32 () != 2) - return src; - filesys_prepare_reset2 (); - filesys_reset2 (); - a_uniq = restore_u64 (); - key_uniq = restore_u64 (); - return src; + if (restore_u32 () != 2) + return src; + filesys_prepare_reset2 (); + filesys_reset2 (); + a_uniq = restore_u64 (); + key_uniq = restore_u64 (); + return src; } uae_u8 *save_filesys (int num, int *len) { - uae_u8 *dstbak, *dst; - UnitInfo *ui; - int type = is_hardfile (num); + uae_u8 *dstbak, *dst; + UnitInfo *ui; + int type = is_hardfile (num); - ui = &mountinfo.ui[num]; - if (!ui->open) - return NULL; - /* not initialized yet, do not save */ - if ((type == FILESYS_VIRTUAL) && ui->self == NULL) - return NULL; - write_log (_T("FS_FILESYS: '%s' '%s'\n"), ui->devname, ui->volname ? ui->volname : _T("")); - dstbak = dst = xmalloc (uae_u8, 100000); - save_u32 (2); /* version */ - save_u32 (ui->devno); - save_u16 (type); - if (type == FILESYS_VIRTUAL) - save_path (ui->rootdir, SAVESTATE_PATH_VDIR); - else if (type == FILESYS_HARDFILE || type == FILESYS_HARDFILE_RDB) - save_path (ui->rootdir, SAVESTATE_PATH_HDF); - else if (type == FILESYS_HARDDRIVE) - save_path (ui->rootdir, SAVESTATE_PATH_HD); - else - save_path (ui->rootdir, SAVESTATE_PATH); - save_string (ui->devname); - save_string (ui->volname); - save_path (ui->filesysdir, SAVESTATE_PATH); - save_u8 (ui->bootpri); - save_u8 (ui->readonly); - save_u32 (ui->startup); - save_u32 (filesys_configdev); - if (type == FILESYS_VIRTUAL) - dst = save_filesys_virtual (ui, dst); - if (type == FILESYS_HARDFILE || type == FILESYS_HARDFILE_RDB) - dst = save_filesys_hardfile (ui, dst); - *len = dst - dstbak; - return dstbak; + ui = &mountinfo.ui[num]; + if (!ui->open) + return NULL; + /* not initialized yet, do not save */ + if ((type == FILESYS_VIRTUAL) && ui->self == NULL) + return NULL; + write_log (_T("FS_FILESYS: '%s' '%s'\n"), ui->devname, ui->volname ? ui->volname : _T("")); + dstbak = dst = xmalloc (uae_u8, 100000); + save_u32 (2); /* version */ + save_u32 (ui->devno); + save_u16 (type); + if (type == FILESYS_VIRTUAL) + save_path (ui->rootdir, SAVESTATE_PATH_VDIR); + else if (type == FILESYS_HARDFILE || type == FILESYS_HARDFILE_RDB) + save_path (ui->rootdir, SAVESTATE_PATH_HDF); + else if (type == FILESYS_HARDDRIVE) + save_path (ui->rootdir, SAVESTATE_PATH_HD); + else + save_path (ui->rootdir, SAVESTATE_PATH); + save_string (ui->devname); + save_string (ui->volname); + save_path (ui->filesysdir, SAVESTATE_PATH); + save_u8 (ui->bootpri); + save_u8 (ui->readonly); + save_u32 (ui->startup); + save_u32 (filesys_configdev); + if (type == FILESYS_VIRTUAL) + dst = save_filesys_virtual (ui, dst); + if (type == FILESYS_HARDFILE || type == FILESYS_HARDFILE_RDB) + dst = save_filesys_hardfile (ui, dst); + *len = dst - dstbak; + return dstbak; } uae_u8 *restore_filesys (uae_u8 *src) { - int type, devno; - UnitInfo *ui; - TCHAR *devname = 0, *volname = 0, *rootdir = 0, *filesysdir = 0; - int bootpri; - bool readonly; - uae_u32 startup; + int type, devno; + UnitInfo *ui; + TCHAR *devname = 0, *volname = 0, *rootdir = 0, *filesysdir = 0; + int bootpri; + bool readonly; + uae_u32 startup; - if (restore_u32 () != 2) - return src; - devno = restore_u32 (); - type = restore_u16 (); - if (type == FILESYS_VIRTUAL) { - rootdir = restore_path (SAVESTATE_PATH_VDIR); - } else if (type == FILESYS_HARDFILE || type == FILESYS_HARDFILE_RDB) { - rootdir = restore_path (SAVESTATE_PATH_HDF); - } else if (type == FILESYS_HARDDRIVE) { - rootdir = restore_path (SAVESTATE_PATH_HD); - } else { - rootdir = restore_path (SAVESTATE_PATH); - } - devname = restore_string (); - volname = restore_string (); - filesysdir = restore_path (SAVESTATE_PATH); - bootpri = restore_u8 (); - readonly = restore_u8 () != 0; - startup = restore_u32 (); - filesys_configdev = restore_u32 (); - ui = &mountinfo.ui[devno]; - if (type == FILESYS_HARDFILE || type == FILESYS_HARDFILE_RDB) { - src = restore_filesys_hardfile(ui, src); - xfree (volname); - volname = NULL; - } - if (set_filesys_unit (devno, devname, volname, rootdir, readonly, - ui->hf.cylinders, ui->hf.secspertrack, ui->hf.surfaces, ui->hf.reservedblocks, ui->hf.blocksize, - bootpri, false, true, filesysdir[0] ? filesysdir : NULL, 0, 0) < 0) { - write_log (_T("filesys '%s' failed to restore\n"), rootdir); - goto end; - } - ui->devno = devno; - ui->startup = startup; - if (type == FILESYS_VIRTUAL) - src = restore_filesys_virtual (ui, src, devno); - write_log (_T("'%s' restored\n"), rootdir); + if (restore_u32 () != 2) + return src; + devno = restore_u32 (); + type = restore_u16 (); + if (type == FILESYS_VIRTUAL) + { + rootdir = restore_path (SAVESTATE_PATH_VDIR); + } + else if (type == FILESYS_HARDFILE || type == FILESYS_HARDFILE_RDB) + { + rootdir = restore_path (SAVESTATE_PATH_HDF); + } + else if (type == FILESYS_HARDDRIVE) + { + rootdir = restore_path (SAVESTATE_PATH_HD); + } + else + { + rootdir = restore_path (SAVESTATE_PATH); + } + devname = restore_string (); + volname = restore_string (); + filesysdir = restore_path (SAVESTATE_PATH); + bootpri = restore_u8 (); + readonly = restore_u8 () != 0; + startup = restore_u32 (); + filesys_configdev = restore_u32 (); + ui = &mountinfo.ui[devno]; + if (type == FILESYS_HARDFILE || type == FILESYS_HARDFILE_RDB) + { + src = restore_filesys_hardfile(ui, src); + xfree (volname); + volname = NULL; + } + if (set_filesys_unit (devno, devname, volname, rootdir, readonly, + ui->hf.cylinders, ui->hf.secspertrack, ui->hf.surfaces, ui->hf.reservedblocks, ui->hf.blocksize, + bootpri, false, true, filesysdir[0] ? filesysdir : NULL, 0, 0) < 0) + { + write_log (_T("filesys '%s' failed to restore\n"), rootdir); + goto end; + } + ui->devno = devno; + ui->startup = startup; + if (type == FILESYS_VIRTUAL) + src = restore_filesys_virtual (ui, src, devno); + write_log (_T("'%s' restored\n"), rootdir); end: - xfree (rootdir); - xfree (devname); - xfree (volname); - xfree (filesysdir); - return src; + xfree (rootdir); + xfree (devname); + xfree (volname); + xfree (filesysdir); + return src; } int save_filesys_cando(void) { if (nr_units() == 0) - return -1; + return -1; return filesys_in_interrupt ? 0 : 1; } diff --git a/src/filesys_bootrom.cpp b/src/filesys_bootrom.cpp index ec824ed2..92fe731f 100644 --- a/src/filesys_bootrom.cpp +++ b/src/filesys_bootrom.cpp @@ -1,807 +1,6445 @@ - db(0x00); db(0x00); db(0x00); db(0x10); db(0x00); db(0x00); db(0x00); db(0x00); - db(0x00); db(0x00); db(0x00); db(0x09); db(0x60); db(0x00); db(0x0a); db(0xfe); - db(0x00); db(0x00); db(0x08); db(0xac); db(0x00); db(0x00); db(0x00); db(0xe0); - db(0x00); db(0x00); db(0x02); db(0x74); db(0x00); db(0x00); db(0x00); db(0x24); - db(0x00); db(0x00); db(0x03); db(0x82); db(0x00); db(0x00); db(0x00); db(0x00); - db(0x00); db(0x00); db(0x13); db(0x8c); db(0x43); db(0xfa); db(0x18); db(0x95); - db(0x4e); db(0xae); db(0xff); db(0xa0); db(0x20); db(0x40); db(0x20); db(0x28); - db(0x00); db(0x16); db(0x20); db(0x40); db(0x4e); db(0x90); db(0x4e); db(0x75); - db(0x48); db(0xe7); db(0xe0); db(0xe2); db(0x30); db(0x3c); db(0xff); db(0x38); - db(0x72); db(0x11); db(0x61); db(0x00); db(0x17); db(0x7e); db(0x4e); db(0x90); - db(0x4a); db(0x80); db(0x67); db(0x4c); db(0x2c); db(0x78); db(0x00); db(0x04); - db(0x0c); db(0x6e); db(0x00); db(0x25); db(0x00); db(0x14); db(0x65); db(0x40); - db(0x70); db(0x14); db(0x24); db(0x00); db(0x72); db(0x01); db(0x4e); db(0xae); - db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x32); db(0x24); db(0x40); - db(0x20); db(0x4a); db(0x43); db(0xfa); db(0x00); db(0x60); db(0x20); db(0xd9); - db(0x59); db(0x82); db(0x66); db(0xfa); db(0x4e); db(0xae); db(0xff); db(0x88); - db(0x22); db(0x4e); db(0x30); db(0x7c); db(0xff); db(0xb8); db(0x20); db(0x0a); - db(0x4e); db(0xae); db(0xfe); db(0x5c); db(0x25); db(0x40); db(0x00); db(0x0e); - db(0x41); db(0xfa); db(0x00); db(0x14); db(0x25); db(0x48); db(0x00); db(0x08); - db(0x4e); db(0xae); db(0xfd); db(0x84); db(0x4e); db(0xae); db(0xff); db(0x82); - db(0x4c); db(0xdf); db(0x47); db(0x07); db(0x4e); db(0x75); db(0x20); db(0x57); - db(0x20); db(0x68); db(0x00); db(0x02); db(0x2f); db(0x08); db(0x4e); db(0x90); - db(0x20); db(0x5f); db(0x58); db(0x8f); db(0x48); db(0xe7); db(0xff); db(0x7e); - db(0x22); db(0x4e); db(0x20); db(0x08); db(0x30); db(0x7c); db(0xff); db(0xb8); - db(0x4e); db(0xae); db(0xfe); db(0x5c); db(0x61); db(0x00); db(0x12); db(0xce); - db(0x61); db(0x00); db(0x16); db(0x94); db(0x4c); db(0xdf); db(0x7e); db(0xff); - db(0x4e); db(0x75); db(0x00); db(0x00); db(0x08); db(0x00); db(0x00); db(0x02); - db(0x67); db(0x06); db(0x4e); db(0xb9); db(0x00); db(0xf0); db(0x00); db(0x00); - db(0x4e); db(0xf9); db(0x00); db(0xf0); db(0x00); db(0x00); db(0x00); db(0x00); - db(0x48); db(0xe7); db(0xff); db(0xfe); db(0x2c); db(0x78); db(0x00); db(0x04); - db(0x30); db(0x3c); db(0xff); db(0xec); db(0x61); db(0x00); db(0x16); db(0xd4); - db(0x2a); db(0x50); db(0x43); db(0xfa); db(0x17); db(0xf6); db(0x70); db(0x24); - db(0x7a); db(0x01); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80); - db(0x66); db(0x0c); db(0x43); db(0xfa); db(0x17); db(0xe6); db(0x70); db(0x00); - db(0x7a); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x28); db(0x40); - db(0x4a); db(0xad); db(0x01); db(0x0c); db(0x67); db(0x00); db(0x00); db(0x5c); - db(0x20); db(0x3c); db(0x00); db(0x00); db(0x02); db(0x2c); db(0x22); db(0x3c); - db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); - db(0x26); db(0x40); db(0x27); db(0x4c); db(0x01); db(0x9c); db(0x7c); db(0x00); - db(0xbc); db(0x6d); db(0x01); db(0x0e); db(0x64); db(0x2c); db(0x2f); db(0x06); - db(0x7e); db(0x01); db(0x4a); db(0x45); db(0x67); db(0x04); db(0x08); db(0xc7); - db(0x00); db(0x02); db(0x2f); db(0x0b); db(0x20); db(0x4b); db(0x61); db(0x00); - db(0x07); db(0x64); db(0x26); db(0x5f); db(0x0c); db(0x80); db(0xff); db(0xff); - db(0xff); db(0xfe); db(0x67); db(0x08); db(0x48); db(0x46); db(0x52); db(0x46); - db(0x48); db(0x46); db(0x60); db(0xdc); db(0x2c); db(0x1f); db(0x52); db(0x46); - db(0x60); db(0xce); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x22); db(0x4b); - db(0x20); db(0x3c); db(0x00); db(0x00); db(0x02); db(0x2c); db(0x4e); db(0xae); - db(0xff); db(0x2e); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x22); db(0x4c); - db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x78); db(0x03); db(0x0c); db(0x6e); - db(0x00); db(0x24); db(0x00); db(0x14); db(0x65); db(0x04); db(0x00); db(0x44); - db(0x01); db(0x00); db(0x43); db(0xf9); db(0x00); db(0x21); db(0x00); db(0x00); - db(0x4e); db(0xae); db(0xfd); db(0xea); db(0x4a); db(0x80); db(0x66); db(0x20); - db(0x30); db(0x3c); db(0xff); db(0x80); db(0x61); db(0x00); db(0x16); db(0x24); - db(0x4e); db(0x90); db(0x22); db(0x04); db(0x74); db(0xf6); db(0x20); db(0x7c); - db(0x00); db(0x20); db(0x00); db(0x00); db(0x90); db(0x88); db(0x65); db(0x08); - db(0x67); db(0x06); db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfd); db(0x96); - db(0x30); db(0x3c); db(0xff); db(0x80); db(0x61); db(0x00); db(0x16); db(0x04); - db(0x4e); db(0x90); db(0x20); db(0x49); db(0x20); db(0x01); db(0x67); db(0x0c); - db(0x22); db(0x04); db(0x74); db(0xfb); db(0x43); db(0xfa); db(0x17); db(0x42); - db(0x4e); db(0xae); db(0xfd); db(0x96); db(0x41); db(0xfa); db(0x16); db(0xb9); - db(0x43); db(0xfa); db(0x00); db(0x54); db(0x70); db(0x0a); db(0x61); db(0x00); - db(0x0c); db(0x62); db(0x22); db(0x40); db(0x72); db(0x01); db(0x30); db(0x3c); - db(0xff); db(0x48); db(0x61); db(0x00); db(0x15); db(0xd6); db(0x4e); db(0x90); - db(0x4c); db(0xdf); db(0x7f); db(0xff); db(0x4e); db(0x75); db(0x48); db(0xe7); - db(0x38); db(0x22); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x24); db(0x00); - db(0x28); db(0x01); db(0x26); db(0x09); db(0x24); db(0x48); db(0x43); db(0xfa); - db(0x16); db(0xb3); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); - db(0x4a); db(0x80); db(0x67); db(0x14); db(0x2c); db(0x40); db(0x22); db(0x0a); - db(0xe4); db(0x8b); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x22); db(0x4e); - db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xfe); db(0x62); - db(0x4c); db(0xdf); db(0x44); db(0x1c); db(0x4e); db(0x75); db(0x2c); db(0x78); - db(0x00); db(0x04); db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x0d); - db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x41); db(0xfa); db(0x16); db(0x64); - db(0x43); db(0xfa); db(0x00); db(0x16); db(0x70); db(0x0f); db(0x22); db(0x3c); - db(0x00); db(0x00); db(0x1f); db(0x40); db(0x61); db(0x00); db(0xff); db(0xa8); - db(0x60); db(0xdc); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x10); - db(0x00); db(0x00); db(0x00); db(0x00); db(0x72); db(0x02); db(0x30); db(0x3c); - db(0xff); db(0x48); db(0x61); db(0x00); db(0x15); db(0x5e); db(0x4e); db(0x90); - db(0x22); db(0x00); db(0x6b); db(0x04); db(0x61); db(0x00); db(0x07); db(0xf0); - db(0x70); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x00); db(0x20); - db(0x30); db(0x3c); db(0xff); db(0x50); db(0x61); db(0x00); db(0x15); db(0x44); - db(0x70); db(0x00); db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x67); db(0x00); - db(0x00); db(0xa2); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x30); db(0x3c); - db(0xff); db(0x50); db(0x61); db(0x00); db(0x15); db(0x2e); db(0x70); db(0x02); - db(0x4e); db(0x90); db(0x0c); db(0x40); db(0x00); db(0x01); db(0x6d); db(0x00); - db(0x00); db(0x7c); db(0x6e); db(0x06); db(0x4e); db(0xae); db(0xfe); db(0x92); - db(0x60); db(0xe4); db(0x0c); db(0x40); db(0x00); db(0x02); db(0x6e); db(0x08); - db(0x20); db(0x01); db(0x4e); db(0xae); db(0xfe); db(0xbc); db(0x60); db(0xd6); - db(0x0c); db(0x40); db(0x00); db(0x03); db(0x6e); db(0x06); db(0x4e); db(0xae); - db(0xfe); db(0x86); db(0x60); db(0xca); db(0x0c); db(0x40); db(0x00); db(0x04); - db(0x6e); db(0x06); db(0x4e); db(0xae); db(0xff); db(0x4c); db(0x60); db(0xbe); - db(0x0c); db(0x40); db(0x00); db(0x05); db(0x6e); db(0x46); db(0x48); db(0xe7); - db(0x00); db(0xc0); db(0x70); db(0x26); db(0x22); db(0x3c); db(0x00); db(0x01); - db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4c); db(0xdf); - db(0x03); db(0x00); db(0x24); db(0x40); db(0x15); db(0x7c); db(0x00); db(0x08); - db(0x00); db(0x08); db(0x25); db(0x48); db(0x00); db(0x0e); db(0x35); db(0x7c); - db(0x00); db(0x26); db(0x00); db(0x12); db(0x25); db(0x7c); db(0x40); db(0x00); - db(0x00); db(0x00); db(0x00); db(0x14); db(0x35); db(0x7c); db(0x12); db(0x34); - db(0x00); db(0x18); db(0x25); db(0x49); db(0x00); db(0x1a); db(0x20); db(0x69); - db(0x00); db(0x10); db(0x22); db(0x4a); db(0x4e); db(0xae); db(0xfe); db(0x92); - db(0x60); db(0x00); db(0xff); db(0x74); db(0x30); db(0x3c); db(0xff); db(0x50); - db(0x61); db(0x00); db(0x14); db(0xa0); db(0x70); db(0x04); db(0x4e); db(0x90); - db(0x70); db(0x01); db(0x4c); db(0xdf); db(0x04); db(0x00); db(0x4e); db(0x75); - db(0x48); db(0xe7); db(0xc0); db(0xe0); db(0x30); db(0x3c); db(0xff); db(0x38); - db(0x72); db(0x12); db(0x61); db(0x00); db(0x14); db(0x86); db(0x4e); db(0x90); - db(0x24); db(0x40); db(0x70); db(0x16); db(0x22); db(0x3c); db(0x00); db(0x01); - db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x22); db(0x40); - db(0x13); db(0x7c); db(0x00); db(0x02); db(0x00); db(0x08); db(0x13); db(0x7c); - db(0x00); db(0xf6); db(0x00); db(0x09); db(0x41); db(0xfa); db(0x15); db(0x13); - db(0x23); db(0x48); db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x00); db(0x16); - db(0x23); db(0x48); db(0x00); db(0x12); db(0x23); db(0x4a); db(0x00); db(0x0e); - db(0x70); db(0x05); db(0x4e); db(0xae); db(0xff); db(0x58); db(0x4c); db(0xdf); - db(0x07); db(0x03); db(0x4e); db(0x75); db(0x52); db(0x91); db(0x70); db(0x00); - db(0x4e); db(0x75); db(0x48); db(0xe7); db(0xc0); db(0xc0); db(0x61); db(0x00); - db(0xfc); db(0xb0); db(0x70); db(0x1a); db(0x22); db(0x3c); db(0x00); db(0x01); - db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x22); db(0x40); - db(0x41); db(0xfa); db(0x14); db(0xe6); db(0x23); db(0x48); db(0x00); db(0x0a); - db(0x41); db(0xfa); db(0xfe); db(0xd2); db(0x23); db(0x48); db(0x00); db(0x0e); - db(0x41); db(0xfa); db(0xfe); db(0xca); db(0x23); db(0x48); db(0x00); db(0x12); - db(0x33); db(0x7c); db(0x02); db(0x14); db(0x00); db(0x08); db(0x70); db(0x03); - db(0x4e); db(0xae); db(0xff); db(0x58); db(0x61); db(0x00); db(0xff); db(0x72); - db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x04); db(0x61); db(0x00); - db(0x13); db(0xfa); db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x67); db(0x04); - db(0x61); db(0x00); db(0x0a); db(0xcc); db(0x4c); db(0xdf); db(0x03); db(0x03); - db(0x4e); db(0x75); db(0x48); db(0xe7); db(0xc0); db(0xf2); db(0x2c); db(0x78); - db(0x00); db(0x04); db(0x24); db(0x48); db(0x26); db(0x49); db(0x20); db(0x3c); - db(0x00); db(0x00); db(0x00); db(0xbe); db(0x22); db(0x3c); db(0x00); db(0x01); - db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x20); db(0x40); - db(0x70); db(0x00); db(0x43); db(0xeb); db(0x01); db(0xa0); db(0x11); db(0xb1); - db(0x00); db(0x00); db(0x00); db(0x0e); db(0x52); db(0x40); db(0x0c); db(0x40); - db(0x00); db(0x8c); db(0x66); db(0xf2); db(0x20); db(0x0a); db(0xe4); db(0x88); - db(0x21); db(0x40); db(0x00); db(0x36); db(0x22); db(0x48); db(0x41); db(0xfa); - db(0x14); db(0x68); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x20); db(0x6b); - db(0x01); db(0x98); db(0x41); db(0xe8); db(0x00); db(0x12); db(0x4e); db(0xae); - db(0xff); db(0x10); db(0x4c); db(0xdf); db(0x4f); db(0x03); db(0x4e); db(0x75); - db(0x48); db(0xe7); db(0x7f); db(0x7e); db(0x2c); db(0x78); db(0x00); db(0x04); - db(0x24); db(0x48); db(0x0c); db(0x9a); db(0x00); db(0x00); db(0x03); db(0xf3); - db(0x66); db(0x00); db(0x00); db(0xe4); db(0x50); db(0x8a); db(0x2e); db(0x2a); - db(0x00); db(0x04); db(0x9e); db(0x92); db(0x50); db(0x8a); db(0x52); db(0x87); - db(0x26); db(0x4a); db(0x20); db(0x07); db(0xd0); db(0x80); db(0xd0); db(0x80); - db(0xd7); db(0xc0); db(0x28); db(0x4a); db(0x9b); db(0xcd); db(0x7c); db(0x00); - db(0x24); db(0x12); db(0x72); db(0x01); db(0x08); db(0x02); db(0x00); db(0x1e); - db(0x67); db(0x04); db(0x08); db(0xc1); db(0x00); db(0x01); db(0x08); db(0xc1); - db(0x00); db(0x10); db(0xe5); db(0x8a); db(0x66); db(0x04); db(0x42); db(0x9a); - db(0x60); db(0x20); db(0x50); db(0x82); db(0x20); db(0x02); db(0x4e); db(0xae); - db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x00); db(0x00); db(0xa0); - db(0x20); db(0x40); db(0x20); db(0xc2); db(0x24); db(0xc8); db(0x22); db(0x0d); - db(0x67); db(0x06); db(0x20); db(0x08); db(0xe4); db(0x88); db(0x2a); db(0x80); - db(0x2a); db(0x48); db(0x52); db(0x86); db(0xbe); db(0x86); db(0x66); db(0xc0); - db(0x7c); db(0x00); db(0x22); db(0x06); db(0xd2); db(0x81); db(0xd2); db(0x81); - db(0x20); db(0x74); db(0x18); db(0x00); db(0x58); db(0x88); db(0x26); db(0x1b); - db(0x28); db(0x1b); db(0xe5); db(0x8c); db(0x0c); db(0x83); db(0x00); db(0x00); - db(0x03); db(0xe9); db(0x67); db(0x08); db(0x0c); db(0x83); db(0x00); db(0x00); - db(0x03); db(0xea); db(0x66); db(0x0c); db(0x20); db(0x04); db(0x4a); db(0x80); - db(0x67); db(0x0e); db(0x10); db(0xdb); db(0x53); db(0x80); db(0x60); db(0xf6); - db(0x0c); db(0x83); db(0x00); db(0x00); db(0x03); db(0xeb); db(0x66); db(0x4e); - db(0x26); db(0x1b); db(0x0c); db(0x83); db(0x00); db(0x00); db(0x03); db(0xec); - db(0x66); db(0x28); db(0x22); db(0x06); db(0xd2); db(0x81); db(0xd2); db(0x81); - db(0x20); db(0x74); db(0x18); db(0x00); db(0x58); db(0x88); db(0x20); db(0x1b); - db(0x67); db(0xe6); db(0x22); db(0x1b); db(0xd2); db(0x81); db(0xd2); db(0x81); - db(0x26); db(0x34); db(0x18); db(0x00); db(0x58); db(0x83); db(0x24); db(0x1b); - db(0xd7); db(0xb0); db(0x28); db(0x00); db(0x53); db(0x80); db(0x66); db(0xf6); - db(0x60); db(0xe4); db(0x0c); db(0x83); db(0x00); db(0x00); db(0x03); db(0xf2); - db(0x66); db(0x14); db(0x52); db(0x86); db(0xbe); db(0x86); db(0x66); db(0x00); - db(0xff); db(0x8a); db(0x7e); db(0x01); db(0x20); db(0x54); db(0x20); db(0x07); - db(0x4c); db(0xdf); db(0x7e); db(0xfe); db(0x4e); db(0x75); db(0x7e); db(0x00); - db(0x60); db(0xf4); db(0x48); db(0xe7); db(0x40); db(0xe2); db(0x2c); db(0x78); - db(0x00); db(0x04); db(0x41); db(0xee); db(0x01); db(0x50); db(0x20); db(0x50); - db(0x4a); db(0x90); db(0x67); db(0x1a); db(0x22); db(0x68); db(0x00); db(0x0a); - db(0x45); db(0xfa); db(0x13); db(0xba); db(0x10); db(0x19); db(0x12); db(0x1a); - db(0xb0); db(0x01); db(0x66); db(0x06); db(0x4a); db(0x00); db(0x67); db(0x42); - db(0x60); db(0xf2); db(0x20); db(0x50); db(0x60); db(0xe2); db(0x70); db(0x20); - db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); - db(0xff); db(0x3a); db(0x24); db(0x40); db(0x15); db(0x7c); db(0x00); db(0x08); - db(0x00); db(0x08); db(0x41); db(0xfa); db(0x13); db(0x90); db(0x25); db(0x48); - db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x13); db(0x0c); db(0x25); db(0x48); - db(0x00); db(0x0e); db(0x41); db(0xea); db(0x00); db(0x12); db(0x20); db(0x88); - db(0x58); db(0x90); db(0x21); db(0x48); db(0x00); db(0x08); db(0x41); db(0xee); - db(0x01); db(0x50); db(0x22); db(0x4a); db(0x4e); db(0xae); db(0xff); db(0x0a); - db(0x20); db(0x4a); db(0x20); db(0x08); db(0x4c); db(0xdf); db(0x47); db(0x02); - db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x01); db(0x02); db(0x2e); db(0x00); - db(0x4a); db(0x2b); db(0x00); db(0x4c); db(0x67); db(0x7c); db(0x2c); db(0x6b); - db(0x00); db(0xa0); db(0x0c); db(0x6e); db(0x00); db(0x25); db(0x00); db(0x14); - db(0x65); db(0x3e); db(0x72); db(0x0e); db(0x4e); db(0xae); db(0xfd); db(0x66); - db(0x02); db(0x80); db(0xff); db(0xff); db(0xff); db(0xfe); db(0x67); db(0x62); - db(0x08); db(0x07); db(0x00); db(0x00); db(0x67); db(0x0a); db(0x41); db(0xeb); - db(0x00); db(0x20); db(0x22); db(0x08); db(0x4e); db(0xae); db(0xfd); db(0x5a); - db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x12); db(0x4a); db(0x2b); - db(0x00); db(0x9e); db(0x66); db(0x0c); db(0x50); db(0xeb); db(0x00); db(0x9e); - db(0x22); db(0x2b); db(0x00); db(0xb4); db(0x4e); db(0xae); db(0xfd); db(0x5a); - db(0x72); db(0x0e); db(0x4e); db(0xae); db(0xfd); db(0x6c); db(0x60); db(0x32); - db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x7c); - db(0x08); db(0x07); db(0x00); db(0x00); db(0x67); db(0x08); db(0x41); db(0xeb); - db(0x00); db(0x20); db(0x61); db(0x00); db(0x00); db(0xac); db(0x08); db(0x07); - db(0x00); db(0x01); db(0x67); db(0x12); db(0x4a); db(0x2b); db(0x00); db(0x9e); - db(0x66); db(0x0c); db(0x50); db(0xeb); db(0x00); db(0x9e); db(0x20); db(0x6b); - db(0x00); db(0xb4); db(0x61); db(0x00); db(0x00); db(0x94); db(0x4e); db(0xae); - db(0xff); db(0x76); db(0x4c); db(0xdf); db(0x40); db(0x80); db(0x4e); db(0x75); - db(0x48); db(0xe7); db(0x01); db(0x22); db(0x2e); db(0x00); db(0x2c); db(0x6b); - db(0x00); db(0xa0); db(0x0c); db(0x6e); db(0x00); db(0x25); db(0x00); db(0x14); - db(0x65); db(0x3e); db(0x72); db(0x0e); db(0x4e); db(0xae); db(0xfd); db(0x66); - db(0x02); db(0x80); db(0xff); db(0xff); db(0xff); db(0xfe); db(0x67); db(0x62); - db(0x08); db(0x07); db(0x00); db(0x00); db(0x67); db(0x0a); db(0x41); db(0xeb); - db(0x00); db(0x20); db(0x22); db(0x08); db(0x4e); db(0xae); db(0xfd); db(0x60); - db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x12); db(0x4a); db(0x2b); - db(0x00); db(0x9e); db(0x67); db(0x0c); db(0x42); db(0x2b); db(0x00); db(0x9e); - db(0x22); db(0x2b); db(0x00); db(0xb4); db(0x4e); db(0xae); db(0xfd); db(0x60); - db(0x72); db(0x0e); db(0x4e); db(0xae); db(0xfd); db(0x6c); db(0x60); db(0x32); - db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x7c); - db(0x08); db(0x07); db(0x00); db(0x00); db(0x67); db(0x08); db(0x41); db(0xeb); - db(0x00); db(0x20); db(0x61); db(0x00); db(0x00); db(0x44); db(0x08); db(0x07); - db(0x00); db(0x01); db(0x67); db(0x12); db(0x4a); db(0x2b); db(0x00); db(0x9e); - db(0x67); db(0x0c); db(0x42); db(0x2b); db(0x00); db(0x9e); db(0x20); db(0x6b); - db(0x00); db(0xb4); db(0x61); db(0x00); db(0x00); db(0x2c); db(0x4e); db(0xae); - db(0xff); db(0x76); db(0x4c); db(0xdf); db(0x44); db(0x80); db(0x4e); db(0x75); - db(0x22); db(0x48); db(0x20); db(0x6b); db(0x00); db(0xa0); db(0x20); db(0x68); - db(0x00); db(0x22); db(0x20); db(0x68); db(0x00); db(0x18); db(0xd1); db(0xc8); - db(0xd1); db(0xc8); db(0x22); db(0xa8); db(0x00); db(0x04); db(0x20); db(0x09); - db(0xe4); db(0x88); db(0x21); db(0x40); db(0x00); db(0x04); db(0x4e); db(0x75); - db(0x24); db(0x48); db(0x20); db(0x6b); db(0x00); db(0xa0); db(0x20); db(0x68); - db(0x00); db(0x22); db(0x20); db(0x68); db(0x00); db(0x18); db(0xd1); db(0xc8); - db(0xd1); db(0xc8); db(0x22); db(0x68); db(0x00); db(0x04); db(0xd3); db(0xc9); - db(0xd3); db(0xc9); db(0xb3); db(0xca); db(0x66); db(0x06); db(0x21); db(0x52); - db(0x00); db(0x04); db(0x60); db(0x18); db(0x20); db(0x09); db(0x67); db(0x0e); - db(0x20); db(0x11); db(0xd0); db(0x80); db(0xd0); db(0x80); db(0xb5); db(0xc0); - db(0x67); db(0x04); db(0x22); db(0x40); db(0x60); db(0xee); db(0x20); db(0x09); - db(0x67); db(0x02); db(0x22); db(0x92); db(0x4e); db(0x75); db(0x48); db(0xe7); - db(0x20); db(0x22); db(0x74); db(0x16); db(0x9f); db(0xc2); db(0x24); db(0x4f); - db(0x32); db(0x02); db(0x42); db(0x32); db(0x10); db(0xff); db(0x53); db(0x41); - db(0x66); db(0xf8); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x72); db(0x0f); - db(0x4a); db(0x80); db(0x67); db(0x02); db(0x72); db(0x10); db(0x15); db(0x41); - db(0x00); db(0x04); db(0x35); db(0x7c); db(0x08); db(0x00); db(0x00); db(0x08); - db(0x22); db(0x6b); db(0x00); db(0xa4); db(0x33); db(0x7c); db(0x00); db(0x0b); - db(0x00); db(0x1c); db(0x23); db(0x7c); db(0x00); db(0x00); db(0x00); db(0x16); - db(0x00); db(0x24); db(0x23); db(0x4a); db(0x00); db(0x28); db(0x13); db(0x7c); - db(0x00); db(0x01); db(0x00); db(0x1e); db(0x22); db(0x6b); db(0x00); db(0xa8); - db(0x33); db(0x7c); db(0x00); db(0x0a); db(0x00); db(0x1c); db(0x13); db(0x7c); - db(0x00); db(0x01); db(0x00); db(0x1e); db(0x4e); db(0xae); db(0xfe); db(0x38); - db(0x22); db(0x6b); db(0x00); db(0xa8); db(0x25); db(0x69); db(0x00); db(0x20); - db(0x00); db(0x0e); db(0x25); db(0x69); db(0x00); db(0x24); db(0x00); db(0x12); - db(0x22); db(0x6b); db(0x00); db(0xa4); db(0x4e); db(0xae); db(0xfe); db(0x38); - db(0xdf); db(0xc2); db(0x4c); db(0xdf); db(0x44); db(0x04); db(0x4e); db(0x75); - db(0x4a); db(0x00); db(0x67); db(0x26); db(0x4a); db(0x2b); db(0x00); db(0x4c); - db(0x66); db(0x36); db(0x70); db(0x00); db(0x4a); db(0x33); db(0x00); db(0x4d); - db(0x67); db(0x04); db(0x52); db(0x00); db(0x60); db(0xf6); db(0x17); db(0x40); - db(0x00); db(0x4c); db(0x67); db(0x24); db(0x20); db(0x01); db(0x61); db(0x00); - db(0xfd); db(0xf2); db(0x70); db(0x01); db(0x61); db(0x00); db(0xff); db(0x60); - db(0x60); db(0x16); db(0x4a); db(0x2b); db(0x00); db(0x4c); db(0x67); db(0x10); - db(0x42); db(0x2b); db(0x00); db(0x4c); db(0x20); db(0x01); db(0x61); db(0x00); - db(0xfe); db(0x68); db(0x70); db(0x00); db(0x61); db(0x00); db(0xff); db(0x48); - db(0x4e); db(0x75); db(0x4a); db(0xac); db(0x00); db(0x14); db(0x67); db(0x0a); - db(0x70); db(0x00); db(0x72); db(0x01); db(0x61); db(0x00); db(0xff); db(0xb2); - db(0x4e); db(0x75); db(0x70); db(0x01); db(0x72); db(0x03); db(0x61); db(0x00); - db(0xff); db(0xa8); db(0x4e); db(0x75); db(0x10); db(0x2b); db(0x00); db(0xac); - db(0x6b); db(0x0a); db(0x70); db(0x01); db(0x72); db(0x03); db(0x61); db(0x00); - db(0xff); db(0x98); db(0x4e); db(0x75); db(0x72); db(0x01); db(0x0c); db(0x00); - db(0x00); db(0xfe); db(0x66); db(0x02); db(0x72); db(0x03); db(0x70); db(0x00); - db(0x61); db(0x00); db(0xff); db(0x86); db(0x4e); db(0x75); db(0x20); db(0x6c); - db(0x00); db(0x24); db(0x4a); db(0x90); db(0x67); db(0x0c); db(0x4a); db(0xa8); - db(0x00); db(0x08); db(0x66); db(0x0a); db(0x4a); db(0xa8); db(0x00); db(0x0c); - db(0x66); db(0x04); db(0x70); db(0x01); db(0x4e); db(0x75); db(0x48); db(0xe7); - db(0x3f); db(0x3e); db(0x2a); db(0x48); db(0x24); db(0x6c); db(0x00); db(0x18); - db(0x2e); db(0x15); db(0x7a); db(0x00); db(0x4a); db(0x87); db(0x67); db(0x70); - db(0x20); db(0x0a); db(0x67); db(0x6c); db(0x7c); db(0x00); db(0x22); db(0x2d); - db(0x00); db(0x08); db(0x67); db(0x12); db(0x24); db(0x2a); db(0x00); db(0x04); - db(0x2c); db(0x6b); db(0x00); db(0xa0); db(0x4e); db(0xae); db(0xfc); db(0x34); - db(0x4a); db(0x80); db(0x66); db(0x02); db(0x50); db(0xc6); db(0x22); db(0x2d); - db(0x00); db(0x0c); db(0x67); db(0x1c); db(0x20); db(0x41); db(0x22); db(0x4a); - db(0x2f); db(0x0a); db(0x45); db(0xec); db(0x00); db(0x20); db(0x48); db(0x7a); - db(0x00); db(0x08); db(0x2f); db(0x28); db(0x00); db(0x08); db(0x4e); db(0x75); - db(0x24); db(0x5f); db(0x4a); db(0x80); db(0x66); db(0x02); db(0x50); db(0xc6); - db(0x4a); db(0x06); db(0x67); db(0x24); db(0x20); db(0x2a); db(0x00); db(0x04); - db(0x90); db(0x8a); db(0x4a); db(0x92); db(0x66); db(0x0a); db(0x20); db(0x05); - db(0x67); db(0x10); db(0x20); db(0x40); db(0x42); db(0x90); db(0x60); db(0x0a); - db(0x20); db(0x52); db(0x22); db(0x4a); db(0x22); db(0xd8); db(0x59); db(0x80); - db(0x6a); db(0xfa); db(0x53); db(0x95); db(0x53); db(0x87); db(0x60); db(0x94); - db(0x2a); db(0x0a); db(0x24); db(0x52); db(0x53); db(0x87); db(0x60); db(0x8c); - db(0x4c); db(0xdf); db(0x7c); db(0xfc); db(0x20); db(0x6c); db(0x00); db(0x24); - db(0x4a); db(0x90); db(0x4e); db(0x75); db(0x61); db(0x00); db(0xfc); db(0x7c); - db(0x21); db(0x40); db(0x01); db(0x98); db(0x2f); db(0x08); db(0x30); db(0x3c); - db(0xff); db(0xec); db(0x61); db(0x00); db(0x0f); db(0x06); db(0x2a); db(0x50); - db(0x30); db(0x3c); db(0xff); db(0x28); db(0x61); db(0x00); db(0x0e); db(0xfc); - db(0x22); db(0x48); db(0x20); db(0x5f); db(0x42); db(0xa8); db(0x01); db(0x90); - db(0x42); db(0xa8); db(0x01); db(0x94); db(0x4e); db(0x91); db(0x26); db(0x00); - db(0x0c); db(0x43); db(0xff); db(0xfe); db(0x67); db(0x00); db(0xf9); db(0x16); - db(0x20); db(0x28); db(0x01); db(0x90); db(0x67); db(0x14); db(0x6b); db(0x12); - db(0x2f); db(0x08); db(0x72); db(0x01); db(0x2c); db(0x78); db(0x00); db(0x04); - db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x20); db(0x5f); db(0x21); db(0x40); - db(0x01); db(0x94); db(0x4a); db(0x83); db(0x6a); db(0x0e); db(0x22); db(0x48); - db(0x30); db(0x3c); db(0xff); db(0x20); db(0x61); db(0x00); db(0x0e); db(0xbc); - db(0x4e); db(0x90); db(0x60); db(0x26); db(0x2c); db(0x4c); db(0x2f); db(0x08); - db(0x4e); db(0xae); db(0xff); db(0x70); db(0x20); db(0x5f); db(0x22); db(0x48); - db(0x26); db(0x40); db(0x30); db(0x3c); db(0xff); db(0x20); db(0x61); db(0x00); - db(0x0e); db(0xa2); db(0x4e); db(0x90); db(0x70); db(0x00); db(0x27); db(0x40); - db(0x00); db(0x08); db(0x27); db(0x40); db(0x00); db(0x10); db(0x27); db(0x40); - db(0x00); db(0x20); db(0x4a); db(0xa9); db(0x01); db(0x94); db(0x67); db(0x28); - db(0x20); db(0x69); db(0x01); db(0x94); db(0x61); db(0x00); db(0xfa); db(0xf2); - db(0x48); db(0xe7); db(0x80); db(0xc0); db(0x20); db(0x29); db(0x01); db(0x90); - db(0x22); db(0x69); db(0x01); db(0x94); db(0x2c); db(0x78); db(0x00); db(0x04); - db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x4c); db(0xdf); db(0x03); db(0x01); - db(0x4a); db(0x80); db(0x67); db(0x04); db(0x61); db(0x00); db(0xfa); db(0x7c); - db(0x4a); db(0x83); db(0x6b); db(0x00); db(0xf8); db(0x90); db(0x30); db(0x3c); - db(0xff); db(0x18); db(0x61); db(0x00); db(0x0e); db(0x56); db(0x4e); db(0x90); - db(0x20); db(0x03); db(0x16); db(0x29); db(0x00); db(0x4f); db(0x4a); db(0x80); - db(0x66); db(0x1a); db(0x27); db(0x7c); db(0x00); db(0x00); db(0x17); db(0x70); - db(0x00); db(0x14); db(0x41); db(0xfa); db(0xf6); db(0x78); db(0x20); db(0x08); - db(0xe4); db(0x88); db(0x27); db(0x40); db(0x00); db(0x20); db(0x70); db(0xff); - db(0x27); db(0x40); db(0x00); db(0x24); db(0x08); db(0x07); db(0x00); db(0x00); - db(0x67); db(0x40); db(0x0c); db(0x03); db(0x00); db(0x80); db(0x67); db(0x3a); - db(0x2c); db(0x78); db(0x00); db(0x04); db(0x70); db(0x14); db(0x22); db(0x3c); - db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); - db(0x22); db(0x40); db(0x30); db(0x3c); db(0x10); db(0x00); db(0x80); db(0x03); - db(0x33); db(0x40); db(0x00); db(0x08); db(0x23); db(0x6d); db(0x01); db(0x04); - db(0x00); db(0x0a); db(0x23); db(0x4b); db(0x00); db(0x10); db(0x41); db(0xec); - db(0x00); db(0x4a); db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x4e); db(0xae); - db(0xfe); db(0xf2); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x70); db(0x00); - db(0x4e); db(0x75); db(0x24); db(0x49); db(0x20); db(0x4b); db(0x72); db(0x00); - db(0x22); db(0x41); db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x08); - db(0x08); db(0x07); db(0x00); db(0x02); db(0x67); db(0x02); db(0x72); db(0x01); - db(0x70); db(0x80); db(0x2c); db(0x4c); db(0x4e); db(0xae); db(0xff); db(0x6a); - db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x5c); db(0x08); db(0x07); - db(0x00); db(0x02); db(0x66); db(0x56); db(0x20); db(0x52); db(0x74); db(0x02); - db(0x52); db(0x82); db(0x4a); db(0x30); db(0x28); db(0xfd); db(0x66); db(0xf8); - db(0x2c); db(0x78); db(0x00); db(0x04); db(0x20); db(0x02); db(0x72); db(0x01); - db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x3a); - db(0x20); db(0x52); db(0x24); db(0x40); db(0x22); db(0x4a); db(0x12); db(0xd8); - db(0x66); db(0xfc); db(0x13); db(0x7c); db(0x00); db(0x3a); db(0xff); db(0xff); - db(0x42); db(0x11); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa); - db(0x0e); db(0x83); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); - db(0x2c); db(0x40); db(0x22); db(0x0a); db(0x4e); db(0xae); db(0xff); db(0x52); - db(0x22); db(0x4e); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); - db(0xfe); db(0x62); db(0x22); db(0x4a); db(0x20); db(0x02); db(0x4e); db(0xae); - db(0xff); db(0x2e); db(0x70); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7); - db(0x3f); db(0x3e); db(0x2c); db(0x01); db(0x7e); db(0x06); db(0x2c); db(0x78); - db(0x00); db(0x04); db(0x43); db(0xfa); db(0x0e); db(0x7e); db(0x70); db(0x24); - db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80); db(0x66); db(0x0e); - db(0x08); db(0x87); db(0x00); db(0x02); db(0x43); db(0xfa); db(0x0e); db(0x6c); - db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x28); db(0x40); - db(0x20); db(0x3c); db(0x00); db(0x00); db(0x02); db(0x2c); db(0x22); db(0x3c); - db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); - db(0x20); db(0x40); db(0x4a); db(0x80); db(0x67); db(0x2c); db(0x21); db(0x4c); - db(0x01); db(0x9c); db(0x48); db(0xe7); db(0x00); db(0x8a); db(0x61); db(0x00); - db(0xfe); db(0x04); db(0x4c); db(0xdf); db(0x51); db(0x00); db(0x0c); db(0x80); - db(0xff); db(0xff); db(0xff); db(0xfe); db(0x67); db(0x08); db(0x48); db(0x46); - db(0x52); db(0x46); db(0x48); db(0x46); db(0x60); db(0xe4); db(0x22); db(0x48); - db(0x20); db(0x3c); db(0x00); db(0x00); db(0x02); db(0x2c); db(0x4e); db(0xae); - db(0xff); db(0x2e); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x62); - db(0x4c); db(0xdf); db(0x7c); db(0xfc); db(0x4e); db(0x75); db(0x30); db(0x3c); - db(0xff); db(0x58); db(0x61); db(0x00); db(0x0c); db(0xe6); db(0x70); db(0x03); - db(0x4e); db(0x90); db(0x22); db(0x6b); db(0x00); db(0xa8); db(0x23); db(0x40); - db(0x00); db(0x20); db(0x67); db(0x16); db(0x70); db(0x00); db(0x23); db(0x40); - db(0x00); db(0x24); db(0x33); db(0x7c); db(0x00); db(0x0b); db(0x00); db(0x1c); - db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e); db(0x4e); db(0xae); - db(0xfe); db(0x38); db(0x4e); db(0x75); db(0x2c); db(0x78); db(0x00); db(0x04); - db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x20); db(0x40); - db(0x4b); db(0xe8); db(0x00); db(0x5c); db(0x43); db(0xfa); db(0x0d); db(0xa5); - db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x24); db(0x40); - db(0x20); db(0x3c); db(0x00); db(0x00); db(0x00); db(0xb9); db(0x22); db(0x3c); - db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); - db(0x26); db(0x40); db(0x7c); db(0x00); db(0x26); db(0x86); db(0x27); db(0x46); - db(0x00); db(0x04); db(0x27); db(0x46); db(0x00); db(0x08); db(0x27); db(0x4a); - db(0x00); db(0xa0); db(0x50); db(0xeb); db(0x00); db(0x9e); db(0x93); db(0xc9); - db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x27); db(0x40); db(0x00); db(0xb0); - db(0x41); db(0xfa); db(0x0c); db(0x7e); db(0x70); db(0x00); db(0x72); db(0x00); - db(0x61); db(0x00); db(0x02); db(0xae); db(0x27); db(0x40); db(0x00); db(0xa4); - db(0x41); db(0xfa); db(0x0c); db(0x7b); db(0x70); db(0x00); db(0x72); db(0x00); - db(0x61); db(0x00); db(0x02); db(0x9e); db(0x27); db(0x40); db(0x00); db(0xa8); - db(0x7a); db(0x00); db(0x20); db(0x4d); db(0x4e); db(0xae); db(0xfe); db(0x80); - db(0x20); db(0x4d); db(0x4e); db(0xae); db(0xfe); db(0x8c); db(0x28); db(0x40); - db(0x26); db(0x2c); db(0x00); db(0x0a); db(0x30); db(0x3c); db(0xff); db(0x40); - db(0x61); db(0x00); db(0x0c); db(0x38); db(0x70); db(0x00); db(0x4e); db(0x90); - db(0x24); db(0x00); db(0x70); db(0x01); db(0x61); db(0x00); db(0xfa); db(0x04); - db(0x08); db(0x02); db(0x00); db(0x01); db(0x67); db(0x06); db(0x70); db(0x01); - db(0x61); db(0x00); db(0xfb); db(0x6c); db(0x60); db(0x00); db(0x01); db(0x2e); - db(0x20); db(0x4d); db(0x4e); db(0xae); db(0xfe); db(0x8c); db(0x28); db(0x40); - db(0x4a); db(0x80); db(0x66); db(0x10); db(0x70); db(0x00); db(0x12); db(0x2d); - db(0x00); db(0x0f); db(0x03); db(0xc0); db(0x08); db(0xc0); db(0x00); db(0x0d); - db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x4a); db(0x2b); db(0x00); db(0xad); - db(0x67); db(0x08); db(0x61); db(0x00); db(0xff); db(0x0a); db(0x42); db(0x2b); - db(0x00); db(0xad); db(0x4a); db(0x2b); db(0x00); db(0xac); db(0x67); db(0x24); - db(0x30); db(0x3c); db(0xff); db(0x58); db(0x61); db(0x00); db(0x0b); db(0xe4); - db(0x70); db(0x01); db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x67); db(0x04); - db(0x61); db(0x00); db(0xfb); db(0xfa); db(0x42); db(0x2b); db(0x00); db(0xac); - db(0x30); db(0x3c); db(0xff); db(0x58); db(0x61); db(0x00); db(0x0b); db(0xcc); - db(0x70); db(0x02); db(0x4e); db(0x90); db(0x20); db(0x0c); db(0x67); db(0x56); - db(0x0c); db(0x6c); db(0x00); db(0x26); db(0x00); db(0x12); db(0x66); db(0x4e); - db(0x0c); db(0xac); db(0x40); db(0x00); db(0x00); db(0x00); db(0x00); db(0x14); - db(0x66); db(0x44); db(0x0c); db(0x6c); db(0x12); db(0x34); db(0x00); db(0x18); - db(0x66); db(0x3c); db(0x20); db(0x6c); db(0x00); db(0x1a); db(0x20); db(0x28); - db(0x00); db(0x0c); db(0x02); db(0x80); db(0x80); db(0x00); db(0x00); db(0x08); - db(0x0c); db(0x80); db(0x80); db(0x00); db(0x00); db(0x08); db(0x66); db(0x1a); - db(0x02); db(0xa8); db(0x7f); db(0xff); db(0xff); db(0xff); db(0x00); db(0x0c); - db(0x20); db(0x68); db(0x00); db(0x10); db(0x22); db(0x4c); db(0x12); db(0xbc); - db(0x00); db(0x08); db(0x4e); db(0xae); db(0xfe); db(0x92); db(0x60); db(0x00); - db(0xff); db(0x60); db(0x22); db(0x4c); db(0x70); db(0x26); db(0x4e); db(0xae); - db(0xff); db(0x2e); db(0x60); db(0x00); db(0xff); db(0x54); db(0x74); db(0xfe); - db(0x20); db(0x0c); db(0x67); db(0x14); db(0x26); db(0x2c); db(0x00); db(0x0a); - db(0x66); db(0x42); db(0x74); db(0xff); db(0x30); db(0x3c); db(0xff); db(0x50); - db(0x61); db(0x00); db(0x0b); db(0x58); db(0x70); db(0x01); db(0x4e); db(0x90); - db(0x45); db(0xeb); db(0x00); db(0x04); db(0x20); db(0x52); db(0x20); db(0x08); - db(0x67); db(0x00); db(0xff); db(0x2e); db(0x22); db(0x50); db(0x20); db(0x40); - db(0x20); db(0x28); db(0x00); db(0x04); db(0xb4); db(0x80); db(0x66); db(0x16); - db(0x48); db(0xe7); db(0x00); db(0xc0); db(0x28); db(0x68); db(0x00); db(0x0a); - db(0x61); db(0x4a); db(0x53); db(0x85); db(0x4c); db(0xdf); db(0x03); db(0x00); - db(0x24); db(0x89); db(0x20); db(0x49); db(0x60); db(0xd8); db(0x24); db(0x48); - db(0x20); db(0x49); db(0x60); db(0xd2); db(0x0c); db(0x85); db(0x00); db(0x00); - db(0x00); db(0x14); db(0x65); db(0x00); db(0x00); db(0x0a); db(0x70); db(0x01); - db(0x29); db(0x40); db(0x00); db(0x04); db(0x60); db(0x12); db(0x61); db(0x5e); - db(0x30); db(0x3c); db(0xff); db(0x30); db(0x61); db(0x00); db(0x0b); db(0x04); - db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x67); db(0x0e); db(0x52); db(0x85); - db(0x28); db(0xab); db(0x00); db(0x04); db(0x27); db(0x4c); db(0x00); db(0x04); - db(0x60); db(0x00); db(0xfe); db(0xd6); db(0x28); db(0x43); db(0x61); db(0x04); - db(0x60); db(0x00); db(0xfe); db(0xce); db(0x0c); db(0xac); db(0x00); db(0x00); - db(0x00); db(0x1f); db(0x00); db(0x08); db(0x66); db(0x04); db(0x61); db(0x00); - db(0xfa); db(0xe2); db(0x0c); db(0xac); db(0x00); db(0x00); db(0x04); db(0x09); - db(0x00); db(0x08); db(0x66); db(0x14); db(0x61); db(0x00); db(0xfb); db(0x10); - db(0x66); db(0x0e); db(0x30); db(0x3c); db(0xff); db(0x58); db(0x61); db(0x00); - db(0x0a); db(0xc2); db(0x70); db(0x00); db(0x4e); db(0x90); db(0x60); db(0xec); - db(0x22); db(0x54); db(0x20); db(0x6c); db(0x00); db(0x04); db(0x29); db(0x4d); - db(0x00); db(0x04); db(0x4e); db(0xee); db(0xfe); db(0x92); db(0x2f); db(0x05); - db(0x7a); db(0xfc); db(0x24); db(0x53); db(0x2e); db(0x0a); db(0x22); db(0x0a); - db(0x67); db(0x00); db(0x00); db(0x0c); db(0x52); db(0x85); db(0x67); db(0x1e); - db(0x22); db(0x4a); db(0x24); db(0x52); db(0x60); db(0xf0); db(0x52); db(0x85); - db(0x67); db(0x3c); db(0x24); db(0x47); db(0x70); db(0x18); db(0x72); db(0x01); - db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x52); db(0x46); db(0x24); db(0x40); - db(0x24); db(0x87); db(0x2e); db(0x0a); db(0x60); db(0xe8); db(0x20); db(0x12); - db(0x67); db(0x24); db(0x20); db(0x40); db(0x20); db(0x10); db(0x67); db(0x1e); - db(0x20); db(0x40); db(0x20); db(0x10); db(0x67); db(0x18); db(0x70); db(0x00); - db(0x22); db(0x80); db(0x22); db(0x4a); db(0x24); db(0x51); db(0x70); db(0x18); - db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x06); db(0x86); db(0x00); db(0x01); - db(0x00); db(0x00); db(0x20); db(0x0a); db(0x66); db(0xec); db(0x26); db(0x87); - db(0x2a); db(0x1f); db(0x4e); db(0x75); db(0x20); db(0x88); db(0x58); db(0x90); - db(0x42); db(0xa8); db(0x00); db(0x04); db(0x21); db(0x48); db(0x00); db(0x08); - db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x20); db(0x22); db(0x2c); db(0x78); - db(0x00); db(0x04); db(0x70); db(0xff); db(0x4e); db(0xae); db(0xfe); db(0xb6); - db(0x91); db(0xc8); db(0x24); db(0x00); db(0x6b); db(0x32); db(0x70); db(0x22); - db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); - db(0xff); db(0x3a); db(0x91); db(0xc8); db(0x24); db(0x40); db(0x4a); db(0x80); - db(0x67); db(0x1e); db(0x15); db(0x7c); db(0x00); db(0x04); db(0x00); db(0x08); - db(0x15); db(0x42); db(0x00); db(0x0f); db(0x93); db(0xc9); db(0x4e); db(0xae); - db(0xfe); db(0xda); db(0x25); db(0x40); db(0x00); db(0x10); db(0x41); db(0xea); - db(0x00); db(0x14); db(0x61); db(0x00); db(0xff); db(0xb0); db(0x20); db(0x4a); - db(0x20); db(0x08); db(0x4c); db(0xdf); db(0x44); db(0x04); db(0x4e); db(0x75); - db(0x48); db(0xe7); db(0x20); db(0x22); db(0x2c); db(0x78); db(0x00); db(0x04); - db(0x4a); db(0x80); db(0x67); db(0x24); db(0x24); db(0x40); db(0x24); db(0x01); - db(0x66); db(0x02); db(0x74); db(0x30); db(0x20); db(0x02); db(0x22); db(0x3c); - db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); - db(0x20); db(0x40); db(0x11); db(0x7c); db(0x00); db(0x0a); db(0x00); db(0x08); - db(0x31); db(0x42); db(0x00); db(0x12); db(0x21); db(0x4a); db(0x00); db(0x0e); - db(0x4a); db(0x80); db(0x4c); db(0xdf); db(0x44); db(0x04); db(0x4e); db(0x75); - db(0x48); db(0xe7); db(0x30); db(0x22); db(0x24); db(0x48); db(0x24); db(0x00); - db(0x26); db(0x01); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x61); db(0x00); - db(0xff); db(0x6a); db(0x22); db(0x03); db(0x61); db(0x00); db(0xff); db(0xb2); - db(0x67); db(0x18); db(0x20); db(0x4a); db(0x22); db(0x40); db(0x24); db(0x40); - db(0x20); db(0x02); db(0x72); db(0x00); db(0x4e); db(0xae); db(0xfe); db(0x44); - db(0x22); db(0x00); db(0x70); db(0x00); db(0x4a); db(0x81); db(0x66); db(0x02); - db(0x20); db(0x0a); db(0x4a); db(0x80); db(0x4c); db(0xdf); db(0x44); db(0x0c); - db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x38); db(0x32); db(0x2c); db(0x78); - db(0x00); db(0x04); db(0x28); db(0x00); db(0x24); db(0x08); db(0x26); db(0x09); - db(0x20); db(0x3c); db(0x00); db(0x00); db(0x08); db(0x5c); db(0x22); db(0x3c); - db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); - db(0x4a); db(0x80); db(0x67); db(0x00); db(0x00); db(0x34); db(0x24); db(0x40); - db(0x15); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x08); db(0x15); db(0x44); - db(0x00); db(0x09); db(0x25); db(0x42); db(0x00); db(0x0a); db(0x47); db(0xea); - db(0x00); db(0x5c); db(0x25); db(0x4b); db(0x00); db(0x3a); db(0x47); db(0xeb); - db(0x08); db(0x00); db(0x25); db(0x4b); db(0x00); db(0x3e); db(0x25); db(0x4b); - db(0x00); db(0x36); db(0x22); db(0x4a); db(0x24); db(0x43); db(0x97); db(0xcb); - db(0x24); db(0x09); db(0x4e); db(0xae); db(0xfe); db(0xe6); db(0x20); db(0x02); - db(0x4c); db(0xdf); db(0x4c); db(0x1c); db(0x4e); db(0x75); db(0x41); db(0xfa); - db(0x09); db(0xc0); db(0x43); db(0xfa); db(0x01); db(0x30); db(0x70); db(0x13); - db(0x61); db(0x00); db(0xff); db(0x98); db(0x4e); db(0x75); db(0x22); db(0x6d); - db(0x02); db(0x0c); db(0x33); db(0x7c); db(0x00); db(0x0a); db(0x00); db(0x1c); - db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e); db(0x4e); db(0xae); - db(0xfe); db(0x38); db(0x22); db(0x6d); db(0x02); db(0x0c); db(0x25); db(0x69); - db(0x00); db(0x20); db(0x00); db(0x0e); db(0x25); db(0x69); db(0x00); db(0x24); - db(0x00); db(0x12); db(0x22); db(0x6d); db(0x02); db(0x08); db(0x13); db(0x7c); - db(0x00); db(0x01); db(0x00); db(0x1e); db(0x4e); db(0xae); db(0xfe); db(0x38); - db(0x4e); db(0x75); db(0x42); db(0xaa); db(0x00); db(0x0e); db(0x42); db(0xaa); - db(0x00); db(0x12); db(0x22); db(0x6d); db(0x02); db(0x08); db(0x13); db(0x7c); - db(0x00); db(0x01); db(0x00); db(0x1e); db(0x4e); db(0xae); db(0xfe); db(0x38); - db(0x4e); db(0x75); db(0x48); db(0xe7); db(0xf8); db(0xfe); db(0x2a); db(0x48); - db(0x95); db(0xca); db(0x97); db(0xcb); db(0x99); db(0xcc); db(0x78); db(0x00); - db(0x2c); db(0x6d); db(0x00); db(0x18); db(0x20); db(0x6d); db(0x00); db(0x14); - db(0x20); db(0x28); db(0x00); db(0x3c); db(0x67); db(0x5c); db(0x20); db(0x40); - db(0x41); db(0xe8); db(0x00); db(0x2c); db(0x28); db(0x48); db(0x4e); db(0xae); - db(0xfc); db(0xe8); db(0x72); db(0xff); db(0x74); db(0xff); db(0xb2); db(0x80); - db(0x67); db(0x48); db(0x26); db(0x00); db(0x2c); db(0x6d); db(0x00); db(0x14); - db(0x41); db(0xed); db(0x00); db(0xc0); db(0x70); db(0x66); db(0x4e); db(0xae); - db(0xff); db(0x7c); db(0x41); db(0xed); db(0x00); db(0xc0); db(0x38); db(0x28); - db(0x00); db(0x64); db(0x2c); db(0x6d); db(0x00); db(0x18); db(0x91); db(0xc8); - db(0x43); db(0xed); db(0x00); db(0x38); db(0x70); db(0x00); db(0x30); db(0x3c); - db(0x00); db(0x58); db(0x22); db(0x3c); db(0x80); db(0x00); db(0x10); db(0x00); - db(0x24); db(0x03); db(0x4e); db(0xae); db(0xfd); db(0x0c); db(0x72); db(0xff); - db(0x74); db(0xff); db(0x4a); db(0x80); db(0x6b); db(0x0c); db(0x45); db(0xed); - db(0x00); db(0x38); db(0x22); db(0x2a); db(0x00); db(0x32); db(0x24); db(0x2a); - db(0x00); db(0x36); db(0x20); db(0x2c); db(0x00); db(0x1c); db(0xb8); db(0x6d); - db(0x00); db(0x2c); db(0x66); db(0x12); db(0xb0); db(0xad); db(0x00); db(0x28); - db(0x66); db(0x0c); db(0xb2); db(0xad); db(0x00); db(0x20); db(0x66); db(0x06); - db(0xb4); db(0xad); db(0x00); db(0x24); db(0x67); db(0x40); db(0x2b); db(0x40); - db(0x00); db(0x28); db(0x2b); db(0x41); db(0x00); db(0x20); db(0x2b); db(0x42); - db(0x00); db(0x24); db(0x3b); db(0x44); db(0x00); db(0x2c); db(0x91); db(0xc8); - db(0x43); db(0xed); db(0x00); db(0x90); db(0x70); db(0x00); db(0x30); db(0x3c); - db(0x00); db(0x58); db(0x22); db(0x3c); db(0x80); db(0x00); db(0x00); db(0x00); - db(0x24); db(0x03); db(0x4e); db(0xae); db(0xfd); db(0x0c); db(0x4a); db(0x80); - db(0x6b); db(0x04); db(0x47); db(0xed); db(0x00); db(0x90); db(0x34); db(0x2d); - db(0x00); db(0x2c); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x01); - db(0x61); db(0x00); db(0x07); db(0xf8); db(0x4e); db(0x90); db(0x4c); db(0xdf); - db(0x7f); db(0x1f); db(0x4e); db(0x75); db(0x2c); db(0x78); db(0x00); db(0x04); - db(0x3e); db(0x2e); db(0x00); db(0x14); db(0x70); db(0xff); db(0x4e); db(0xae); - db(0xfe); db(0xb6); db(0x7c); db(0x00); db(0x01); db(0xc6); db(0x93); db(0xc9); - db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x28); db(0x40); db(0x70); db(0x14); - db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0xd4); db(0x70); db(0x00); - db(0x30); db(0x3c); db(0x02); db(0x3c); db(0x22); db(0x3c); db(0x00); db(0x01); - db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x2a); db(0x40); - db(0x47); db(0xed); db(0x00); db(0x16); db(0x27); db(0x4e); db(0x00); db(0x10); - db(0x27); db(0x4c); db(0x00); db(0x08); db(0x27); db(0x46); db(0x00); db(0x0c); - db(0x70); db(0xff); db(0x37); db(0x40); db(0x00); db(0x00); db(0x30); db(0x3c); - db(0xff); db(0x38); db(0x72); db(0x05); db(0x61); db(0x00); db(0x07); db(0x9c); - db(0x20); db(0x0d); db(0x06); db(0x80); db(0x00); db(0x00); db(0x02); db(0x10); - db(0x4e); db(0x90); db(0x43); db(0xed); db(0x00); db(0x00); db(0x13); db(0x7c); - db(0x00); db(0x02); db(0x00); db(0x08); db(0x13); db(0x7c); db(0x00); db(0x05); - db(0x00); db(0x09); db(0x41); db(0xfa); db(0x08); db(0x1c); db(0x23); db(0x48); - db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x02); db(0xf4); db(0x23); db(0x48); - db(0x00); db(0x12); db(0x23); db(0x4d); db(0x00); db(0x0e); db(0x70); db(0x05); - db(0x4e); db(0xae); db(0xff); db(0x58); db(0x20); db(0x06); db(0x4e); db(0xae); - db(0xfe); db(0xc2); db(0x70); db(0x00); db(0x53); db(0xab); db(0x00); db(0x1c); - db(0x6a); db(0x06); db(0x70); db(0x0a); db(0x27); db(0x40); db(0x00); db(0x1c); - db(0x4a); db(0xab); db(0x00); db(0x14); db(0x66); db(0x16); db(0x4a); db(0xab); - db(0x00); db(0x1c); db(0x66); db(0xe0); db(0x43); db(0xfa); db(0x08); db(0x49); - db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x27); db(0x40); - db(0x00); db(0x14); db(0x67); db(0xd0); db(0x4a); db(0xab); db(0x00); db(0x18); - db(0x66); db(0x18); db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0xc4); - db(0x43); db(0xfa); db(0x08); db(0x3f); db(0x70); db(0x00); db(0x4e); db(0xae); - db(0xfd); db(0xd8); db(0x27); db(0x40); db(0x00); db(0x18); db(0x67); db(0x00); - db(0xff); db(0xb4); db(0x4a); db(0xad); db(0x02); db(0x08); db(0x66); db(0x38); - db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0xa6); db(0x4e); db(0xae); - db(0xff); db(0x7c); db(0x41); db(0xee); db(0x01); db(0x5e); db(0x43); db(0xfa); - db(0x07); db(0x10); db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00); - db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4a); db(0x82); db(0x67); db(0x8c); - db(0x41); db(0xfa); db(0x06); db(0xfe); db(0x70); db(0x00); db(0x72); db(0x00); - db(0x61); db(0x00); db(0xfd); db(0x2e); db(0x2b); db(0x40); db(0x02); db(0x08); - db(0x67); db(0x00); db(0x02); db(0x32); db(0x60); db(0x00); db(0xff); db(0x76); - db(0x4a); db(0xad); db(0x02); db(0x0c); db(0x66); db(0x48); db(0x4a); db(0xab); - db(0x00); db(0x1c); db(0x66); db(0x00); db(0xff); db(0x68); db(0x4e); db(0xae); - db(0xff); db(0x7c); db(0x41); db(0xee); db(0x01); db(0x5e); db(0x43); db(0xfa); - db(0x06); db(0xdd); db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00); - db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4a); db(0x82); db(0x67); db(0x00); - db(0xff); db(0x4c); db(0x41); db(0xfa); db(0x06); db(0xc9); db(0x70); db(0x00); - db(0x72); db(0x00); db(0x61); db(0x00); db(0xfc); db(0xec); db(0x2b); db(0x40); - db(0x02); db(0x0c); db(0x67); db(0x00); db(0x01); db(0xf0); db(0x30); db(0x3c); - db(0xff); db(0x38); db(0x72); db(0x00); db(0x61); db(0x00); db(0x06); db(0x94); - db(0x4e); db(0x90); db(0x60); db(0x00); db(0xff); db(0x28); db(0x0c); db(0x47); - db(0x00); db(0x24); db(0x65); db(0x12); db(0x53); db(0xab); db(0x00); db(0x34); - db(0x6a); db(0x0c); db(0x20); db(0x4b); db(0x61); db(0x00); db(0xfd); db(0xb4); - db(0x70); db(0x32); db(0x27); db(0x40); db(0x00); db(0x34); db(0x22); db(0x6d); - db(0x02); db(0x08); db(0x45); db(0xed); db(0x01); db(0x3c); db(0x33); db(0x7c); - db(0x00); db(0x0b); db(0x00); db(0x1c); db(0x23); db(0x7c); db(0x00); db(0x00); - db(0x00); db(0x16); db(0x00); db(0x24); db(0x23); db(0x4a); db(0x00); db(0x28); - db(0x10); db(0x2d); db(0x02); db(0x10); db(0x0c); db(0x47); db(0x00); db(0x27); - db(0x65); db(0x00); db(0x01); db(0x52); db(0x08); db(0x00); db(0x00); db(0x01); - db(0x67); db(0x00); db(0x01); db(0x4a); db(0x41); db(0xed); db(0x01); db(0x68); - db(0x25); db(0x48); db(0x00); db(0x0a); db(0x15); db(0x7c); db(0x00); db(0x13); - db(0x00); db(0x04); db(0x15); db(0x7c); db(0x00); db(0x03); db(0x00); db(0x05); - db(0x42); db(0x90); db(0x42); db(0xa8); db(0x00); db(0x04); db(0x42); db(0xa8); - db(0x00); db(0x08); db(0x42); db(0x68); db(0x00); db(0x0c); db(0x42); db(0x6a); - db(0x00); db(0x06); db(0x61); db(0x00); db(0x01); db(0x72); db(0x31); db(0x6d); - db(0x02); db(0x1a); db(0x00); db(0x0e); db(0x42); db(0x68); db(0x00); db(0x10); - db(0x31); db(0x6d); db(0x02); db(0x1c); db(0x00); db(0x12); db(0x42); db(0x68); - db(0x00); db(0x14); db(0x31); db(0x6d); db(0x02); db(0x14); db(0x00); db(0x16); - db(0x42); db(0x68); db(0x00); db(0x18); db(0x31); db(0x6d); db(0x02); db(0x16); - db(0x00); db(0x1a); db(0x43); db(0xed); db(0x01); db(0x88); db(0x21); db(0x49); - db(0x00); db(0x1c); db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x06); - db(0x30); db(0x2d); db(0x02); db(0x30); db(0x48); db(0xc0); db(0xe1); db(0x80); - db(0x22); db(0xc0); db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x07); - db(0x22); db(0xed); db(0x02); db(0x32); db(0x70); db(0x00); db(0x30); db(0x2d); - db(0x02); db(0x20); db(0x6b); db(0x08); db(0x22); db(0xfc); db(0x80); db(0x03); - db(0xa0); db(0x09); db(0x22); db(0xc0); db(0x30); db(0x2d); db(0x02); db(0x22); - db(0x6b); db(0x08); db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x0a); - db(0x22); db(0xc0); db(0x30); db(0x2d); db(0x02); db(0x18); db(0x6b); db(0x14); - db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x02); db(0x22); db(0xc0); - db(0x30); db(0x2d); db(0x02); db(0x1e); db(0x22); db(0xfc); db(0x80); db(0x03); - db(0xa0); db(0x01); db(0x22); db(0xc0); db(0x30); db(0x2d); db(0x02); db(0x24); - db(0x6b); db(0x10); db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x03); - db(0x30); db(0x2d); db(0x02); db(0x2a); db(0x48); db(0xc0); db(0xe1); db(0x80); - db(0x22); db(0xc0); db(0x30); db(0x2d); db(0x02); db(0x26); db(0x6b); db(0x10); - db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x04); db(0x30); db(0x2d); - db(0x02); db(0x2c); db(0x48); db(0xc0); db(0xe1); db(0x80); db(0x22); db(0xc0); - db(0x30); db(0x2d); db(0x02); db(0x28); db(0x6b); db(0x10); db(0x22); db(0xfc); - db(0x80); db(0x03); db(0xa0); db(0x05); db(0x30); db(0x2d); db(0x02); db(0x2e); - db(0x48); db(0xc0); db(0xe1); db(0x80); db(0x22); db(0xc0); db(0x70); db(0x00); - db(0x30); db(0x2d); db(0x02); db(0x36); db(0x6b); db(0x08); db(0x22); db(0xfc); - db(0x80); db(0x03); db(0xa0); db(0x08); db(0x22); db(0xc0); db(0x42); db(0x91); - db(0x61); db(0x00); db(0xfc); db(0x68); db(0x36); db(0x3c); db(0x00); db(0x68); - db(0x74); db(0x01); db(0x28); db(0x2d); db(0x02); db(0x32); db(0x20); db(0x04); - db(0xc0); db(0x82); db(0x22); db(0x2b); db(0x00); db(0x04); db(0xc2); db(0x82); - db(0xb2); db(0x80); db(0x67); db(0x22); db(0x42); db(0x92); db(0x35); db(0x7c); - db(0x02); db(0x00); db(0x00); db(0x04); db(0x42); db(0xaa); db(0x00); db(0x0a); - db(0x32); db(0x03); db(0x4a); db(0x00); db(0x66); db(0x04); db(0x08); db(0xc1); - db(0x00); db(0x07); db(0x35); db(0x41); db(0x00); db(0x06); db(0x42); db(0x6a); - db(0x00); db(0x08); db(0x61); db(0x00); db(0xfc); db(0x2e); db(0x52); db(0x43); - db(0xd4); db(0x42); db(0x0c); db(0x42); db(0x00); db(0x08); db(0x66); db(0xc6); - db(0x27); db(0x44); db(0x00); db(0x04); db(0x10); db(0x2d); db(0x02); db(0x10); - db(0x08); db(0x00); db(0x00); db(0x00); db(0x67); db(0x00); db(0xfd); db(0x8e); - db(0x42); db(0x92); db(0x35); db(0x7c); db(0x04); db(0x00); db(0x00); db(0x04); - db(0x42); db(0x6a); db(0x00); db(0x06); db(0x61); db(0x00); db(0x00); db(0x38); - db(0x20); db(0x6b); db(0x00); db(0x14); db(0x30); db(0x2d); db(0x02); db(0x38); - db(0x32); db(0x28); db(0x00); db(0x30); db(0xd2); db(0x41); db(0x90); db(0x41); - db(0x6a); db(0x02); db(0x70); db(0x00); db(0x35); db(0x40); db(0x00); db(0x0a); - db(0x30); db(0x2d); db(0x02); db(0x3a); db(0x32); db(0x28); db(0x00); db(0x2e); - db(0xd2); db(0x41); db(0x90); db(0x41); db(0x6a); db(0x02); db(0x70); db(0x00); - db(0x35); db(0x40); db(0x00); db(0x0c); db(0x61); db(0x00); db(0xfb); db(0xa0); - db(0x60); db(0x00); db(0xfd); db(0x4a); db(0x4e); db(0x75); db(0x22); db(0x2d); - db(0x02); db(0x32); db(0x70); db(0x00); db(0x08); db(0x01); db(0x00); db(0x00); - db(0x67); db(0x04); db(0x08); db(0xc0); db(0x00); db(0x0e); db(0x08); db(0x01); - db(0x00); db(0x01); db(0x67); db(0x04); db(0x08); db(0xc0); db(0x00); db(0x0d); - db(0x08); db(0x01); db(0x00); db(0x02); db(0x67); db(0x04); db(0x08); db(0xc0); - db(0x00); db(0x0c); db(0x35); db(0x40); db(0x00); db(0x08); db(0x4e); db(0x75); - db(0x4a); db(0xa9); db(0x02); db(0x08); db(0x67); db(0x14); db(0x4a); db(0xa9); - db(0x02); db(0x0c); db(0x67); db(0x0e); db(0x30); db(0x29); db(0x02); db(0x12); - db(0xb0); db(0x69); db(0x00); db(0x16); db(0x67); db(0x14); db(0x33); db(0x40); - db(0x00); db(0x16); db(0x2c); db(0x69); db(0x00); db(0x26); db(0x20); db(0x29); - db(0x00); db(0x22); db(0x22); db(0x69); db(0x00); db(0x1e); db(0x4e); db(0xae); - db(0xfe); db(0xbc); db(0x53); db(0x69); db(0x00); db(0x46); db(0x6a); db(0x12); - db(0x33); db(0x7c); db(0x00); db(0x32); db(0x00); db(0x46); db(0x30); db(0x3c); - db(0xff); db(0x38); db(0x72); db(0x02); db(0x61); db(0x00); db(0x04); db(0x44); - db(0x4e); db(0x90); db(0x41); db(0xf9); db(0x00); db(0xdf); db(0xf0); db(0x00); - db(0x70); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x00); db(0x06); - db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x11); db(0x61); db(0x00); - db(0x04); db(0x2a); db(0x4e); db(0x90); db(0x08); db(0x00); db(0x00); db(0x00); - db(0x67); db(0x42); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x20); db(0x3c); - db(0x00); db(0x00); db(0x00); db(0x88); db(0x22); db(0x3c); db(0x00); db(0x01); - db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4a); db(0x80); - db(0x67); db(0x00); db(0x00); db(0x40); db(0x2a); db(0x40); db(0x2b); db(0x4e); - db(0x00); db(0x14); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0e); - db(0x61); db(0x00); db(0x03); db(0xf8); db(0x20); db(0x0d); db(0x4e); db(0x90); - db(0x41); db(0xfa); db(0x04); db(0x78); db(0x43); db(0xfa); db(0x01); db(0x12); - db(0x70); db(0xf6); db(0x22); db(0x3c); db(0x00); db(0x00); db(0x27); db(0x10); - db(0x61); db(0x00); db(0xee); db(0x14); db(0x70); db(0x00); db(0x4c); db(0xdf); - db(0x60); db(0x00); db(0x4e); db(0x75); db(0x30); db(0x3c); db(0xff); db(0x38); - db(0x72); db(0x0a); db(0x61); db(0x00); db(0x03); db(0xce); db(0x4e); db(0x90); - db(0x4e); db(0x75); db(0x61); db(0xf0); db(0x20); db(0x0d); db(0x67); db(0x1c); - db(0x2c); db(0x6d); db(0x00); db(0x14); db(0x20); db(0x2d); db(0x00); db(0x18); - db(0x67); db(0x06); db(0x22); db(0x40); db(0x4e); db(0xae); db(0xfe); db(0x62); - db(0x22); db(0x4d); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x00); db(0x88); - db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x70); db(0x00); db(0x4e); db(0x75); - db(0x48); db(0xe7); db(0x38); db(0x3e); db(0x2c); db(0x6d); db(0x00); db(0x18); - db(0x41); db(0xfa); db(0x04); db(0x06); db(0x22); db(0x08); db(0x24); db(0x3c); - db(0x00); db(0x00); db(0x03); db(0xed); db(0x4e); db(0xae); db(0xff); db(0xe2); - db(0x28); db(0x00); db(0x67); db(0x4c); db(0x45); db(0xed); db(0x00); db(0x68); - db(0x42); db(0x92); db(0x34); db(0xaa); db(0x00); db(0x02); db(0x24); db(0x0a); - db(0x54); db(0x82); db(0x76); db(0x02); db(0x22); db(0x04); db(0x4e); db(0xae); - db(0xff); db(0xd6); db(0xb6); db(0x80); db(0x66); db(0x32); db(0x0c); db(0x92); - db(0x50); db(0x4e); db(0x54); db(0x52); db(0x66); db(0xe4); db(0x24); db(0x0a); - db(0x76); db(0x04); db(0x22); db(0x04); db(0x4e); db(0xae); db(0xff); db(0xd6); - db(0x24); db(0x0a); db(0x76); db(0x20); db(0x22); db(0x04); db(0x4e); db(0xae); - db(0xff); db(0xd6); db(0xb6); db(0x80); db(0x66); db(0x12); db(0x4a); db(0x6a); - db(0x00); db(0x10); db(0x66); db(0xc4); db(0x30); db(0x3c); db(0xff); db(0x38); - db(0x72); db(0x10); db(0x61); db(0x00); db(0x03); db(0x3e); db(0x4e); db(0x90); - db(0x22); db(0x04); db(0x67); db(0x04); db(0x4e); db(0xae); db(0xff); db(0xdc); - db(0x4c); db(0xdf); db(0x7c); db(0x1c); db(0x4e); db(0x75); db(0x2c); db(0x6d); - db(0x00); db(0x18); db(0x41); db(0xfa); db(0x03); db(0x7e); db(0x22); db(0x08); - db(0x74); db(0xfe); db(0x4e); db(0xae); db(0xff); db(0xac); db(0x22); db(0x00); - db(0x67); db(0x34); db(0x4e); db(0xae); db(0xff); db(0xa6); db(0x2c); db(0x6d); - db(0x00); db(0x14); db(0x45); db(0xed); db(0x00); db(0x38); db(0x70); db(0xff); - db(0x4e); db(0xae); db(0xfe); db(0xb6); db(0x15); db(0x40); db(0x00); db(0x14); - db(0x41); db(0xfa); db(0x03); db(0x6e); db(0x24); db(0x88); db(0x25); db(0x7c); - db(0x00); db(0x00); db(0x00); db(0x12); db(0x00); db(0x0c); db(0x25); db(0x6d); - db(0x00); db(0x08); db(0x00); db(0x10); db(0x2c); db(0x6d); db(0x00); db(0x18); - db(0x22); db(0x0a); db(0x4e); db(0xae); db(0xfc); db(0x88); db(0x2c); db(0x6d); - db(0x00); db(0x14); db(0x4e); db(0x75); db(0x00); db(0x00); db(0x00); db(0x10); - db(0x00); db(0x00); db(0x00); db(0x00); db(0x30); db(0x3c); db(0xff); db(0x38); - db(0x72); db(0x0d); db(0x61); db(0x00); db(0x02); db(0xce); db(0x4e); db(0x90); - db(0x4a); db(0x80); db(0x67); db(0x00); db(0xfe); db(0xfe); db(0x2a); db(0x40); - db(0x2c); db(0x6d); db(0x00); db(0x14); db(0x93); db(0xc9); db(0x4e); db(0xae); - db(0xfe); db(0xda); db(0x2b); db(0x40); db(0x00); db(0x08); db(0x43); db(0xfa); - db(0x03); db(0xab); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); - db(0x2b); db(0x40); db(0x00); db(0x18); db(0x67); db(0x00); db(0xfe); db(0xdc); - db(0x2c); db(0x40); db(0x72); db(0x32); db(0x4e); db(0xae); db(0xff); db(0x3a); - db(0x41); db(0xfa); db(0x02); db(0xd4); db(0x22); db(0x08); db(0x74); db(0xfe); - db(0x4e); db(0xae); db(0xff); db(0xac); db(0x4a); db(0x80); db(0x67); db(0xea); - db(0x22); db(0x00); db(0x4e); db(0xae); db(0xff); db(0xa6); db(0x72); db(0x32); - db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x41); db(0xfa); db(0x02); db(0xbe); - db(0x22); db(0x08); db(0x74); db(0xfe); db(0x4e); db(0xae); db(0xff); db(0xac); - db(0x4a); db(0x80); db(0x67); db(0x00); db(0xfe); db(0xa6); db(0x22); db(0x00); - db(0x4e); db(0xae); db(0xff); db(0xa6); db(0x2c); db(0x6d); db(0x00); db(0x14); - db(0x61); db(0x00); db(0xf8); db(0x20); db(0x72); db(0x00); db(0x32); db(0x3c); - db(0x00); db(0x34); db(0x61); db(0x00); db(0xf8); db(0x64); db(0x28); db(0x40); - db(0x4a); db(0x80); db(0x67); db(0x00); db(0xfe); db(0x86); db(0x70); db(0x00); - db(0x08); db(0xc0); db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xc2); - db(0x72); db(0x00); db(0x20); db(0x2d); db(0x00); db(0x0c); db(0x41); db(0xfa); - db(0x02); db(0x97); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x44); - db(0x4a); db(0x80); db(0x66); db(0xe2); db(0x20); db(0x6c); db(0x00); db(0x14); - db(0x0c); db(0x68); db(0x00); db(0x25); db(0x00); db(0x14); db(0x64); db(0x0c); - db(0x61); db(0x00); db(0xfe); db(0x4a); db(0x70); db(0x00); db(0x4e); db(0xae); - db(0xfe); db(0xc2); db(0x60); db(0xf8); db(0x61); db(0x00); db(0xfe); db(0xe8); - db(0x41); db(0xed); db(0x00); db(0x1c); db(0x29); db(0x48); db(0x00); db(0x28); - db(0x70); db(0x01); db(0x29); db(0x40); db(0x00); db(0x24); db(0x39); db(0x7c); - db(0x00); db(0x0c); db(0x00); db(0x1c); db(0x2b); db(0x4d); db(0x00); db(0x2c); - db(0x41); db(0xfa); db(0x01); db(0x60); db(0x2b); db(0x48); db(0x00); db(0x24); - db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x30); db(0x3c); - db(0xff); db(0x38); db(0x72); db(0x0f); db(0x61); db(0x00); db(0x01); db(0xe4); - db(0x4e); db(0x90); db(0x4a); db(0xad); db(0x00); db(0x00); db(0x66); db(0x1c); - db(0x70); db(0x00); db(0x74); db(0x00); db(0x14); db(0x2d); db(0x00); db(0x4c); - db(0x05); db(0xc0); db(0x08); db(0xc0); db(0x00); db(0x0d); db(0x4e); db(0xae); - db(0xfe); db(0xc2); db(0x05); db(0x00); db(0x67); db(0x06); db(0x61); db(0x00); - db(0xfe); db(0x20); db(0x60); db(0xe4); db(0x20); db(0x2d); db(0x00); db(0x00); - db(0x67); db(0x00); db(0x00); db(0x76); db(0x72); db(0x01); db(0x4e); db(0xae); - db(0xff); db(0x3a); db(0x2b); db(0x40); db(0x00); db(0x04); db(0x30); db(0x3c); - db(0xff); db(0x38); db(0x72); db(0x0c); db(0x61); db(0x00); db(0x01); db(0xa4); - db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x67); db(0x40); db(0x4a); db(0xad); - db(0x00); db(0x04); db(0x67); db(0x3a); db(0x39); db(0x7c); db(0x00); db(0x03); - db(0x00); db(0x1c); db(0x42); db(0x2c); db(0x00); db(0x1f); db(0x42); db(0xac); - db(0x00); db(0x20); db(0x29); db(0x6d); db(0x00); db(0x00); db(0x00); db(0x24); - db(0x29); db(0x6d); db(0x00); db(0x04); db(0x00); db(0x28); db(0x42); db(0xac); - db(0x00); db(0x2c); db(0x42); db(0xac); db(0x00); db(0x30); db(0x22); db(0x4c); - db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x2b); db(0x6c); db(0x00); db(0x30); - db(0x00); db(0x10); db(0x39); db(0x7c); db(0x00); db(0x04); db(0x00); db(0x1c); - db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x20); db(0x2d); - db(0x00); db(0x00); db(0x42); db(0xad); db(0x00); db(0x00); db(0x22); db(0x2d); - db(0x00); db(0x04); db(0x67); db(0x00); db(0xff); db(0x74); db(0x22); db(0x41); - db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x60); db(0x00); db(0xff); db(0x6a); - db(0x39); db(0x7c); db(0x00); db(0x02); db(0x00); db(0x1c); db(0x41); db(0xed); - db(0x00); db(0x30); db(0x42); db(0x90); db(0x42); db(0xa8); db(0x00); db(0x04); - db(0x42); db(0x2c); db(0x00); db(0x1f); db(0x42); db(0xac); db(0x00); db(0x2c); - db(0x42); db(0xac); db(0x00); db(0x30); db(0x29); db(0x48); db(0x00); db(0x28); - db(0x70); db(0x08); db(0x29); db(0x40); db(0x00); db(0x24); db(0x22); db(0x4c); - db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x0c); db(0xad); db(0x46); db(0x4f); - db(0x52); db(0x4d); db(0x00); db(0x30); db(0x66); db(0x52); db(0x20); db(0x2d); - db(0x00); db(0x34); db(0x67); db(0x4c); db(0x6b); db(0x4a); db(0x2b); db(0x6c); - db(0x00); db(0x30); db(0x00); db(0x10); db(0x50); db(0x80); db(0x24); db(0x00); - db(0x72); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4a); db(0x80); - db(0x67); db(0x36); db(0x24); db(0x40); db(0x20); db(0x4a); db(0x20); db(0xed); - db(0x00); db(0x30); db(0x20); db(0xed); db(0x00); db(0x34); db(0x29); db(0x48); - db(0x00); db(0x28); db(0x20); db(0x02); db(0x51); db(0x80); db(0x29); db(0x40); - db(0x00); db(0x24); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38); - db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0b); db(0x61); db(0x00); - db(0x00); db(0xca); db(0x20); db(0x2c); db(0x00); db(0x20); db(0x4e); db(0x90); - db(0x22); db(0x4a); db(0x20); db(0x02); db(0x4e); db(0xae); db(0xff); db(0x2e); - db(0x4a); db(0xac); db(0x00); db(0x20); db(0x67); db(0x00); db(0xfe); db(0xda); - db(0x41); db(0xed); db(0x00); db(0x30); db(0x29); db(0x48); db(0x00); db(0x28); - db(0x70); db(0x01); db(0x29); db(0x40); db(0x00); db(0x24); db(0x42); db(0xac); - db(0x00); db(0x20); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38); - db(0x60); db(0xde); db(0x41); db(0xe8); db(0xff); db(0xe4); db(0x20); db(0x29); - db(0x00); db(0x08); db(0xb0); db(0xa8); db(0x00); db(0x10); db(0x67); db(0x1a); - db(0x21); db(0x40); db(0x00); db(0x10); db(0x2f); db(0x0e); db(0x2c); db(0x68); - db(0x00); db(0x14); db(0x22); db(0x68); db(0x00); db(0x08); db(0x70); db(0x00); - db(0x08); db(0xc0); db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xbc); - db(0x2c); db(0x5f); db(0x70); db(0x00); db(0x4e); db(0x75); db(0x2c); db(0x78); - db(0x00); db(0x04); db(0x74); db(0xff); db(0x30); db(0x3c); db(0xff); db(0x38); - db(0x72); db(0x11); db(0x61); db(0x00); db(0x00); db(0x5e); db(0x4e); db(0x90); - db(0x08); db(0x00); db(0x00); db(0x01); db(0x67); db(0x38); db(0x74); db(0x00); - db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x41); db(0xee); db(0x01); db(0x5e); - db(0x43); db(0xfa); db(0x00); db(0x70); db(0x4e); db(0xae); db(0xfe); db(0xec); - db(0x4a); db(0x80); db(0x67); db(0x1e); db(0x20); db(0x40); db(0x43); db(0xfa); - db(0x00); db(0x22); db(0x24); db(0x68); db(0xff); db(0xe4); db(0x21); db(0x49); - db(0xff); db(0xe4); db(0x22); db(0x48); db(0x30); db(0x3c); db(0xff); db(0x38); - db(0x72); db(0x65); db(0x61); db(0x00); db(0x00); db(0x26); db(0x4e); db(0x90); - db(0x74); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x20); db(0x02); - db(0x4e); db(0x75); db(0x59); db(0x8f); db(0x48); db(0xe7); db(0xc0); db(0x80); - db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x66); db(0x61); db(0x00); - db(0x00); db(0x0a); db(0x4e); db(0x90); db(0x4c); db(0xdf); db(0x01); db(0x03); - db(0x4e); db(0x75); db(0x41); db(0xfa); db(0xe8); db(0x30); db(0x02); db(0x80); - db(0x00); db(0x00); db(0xff); db(0xff); db(0xd1); db(0xc0); db(0x4e); db(0x75); - db(0x69); db(0x6e); db(0x70); db(0x75); db(0x74); db(0x2e); db(0x64); db(0x65); - db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x74); db(0x69); db(0x6d); - db(0x65); db(0x72); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); - db(0x65); db(0x00); db(0x63); db(0x6f); db(0x6e); db(0x73); db(0x6f); db(0x6c); - db(0x65); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); - db(0x00); db(0x44); db(0x45); db(0x56); db(0x53); db(0x00); db(0x44); db(0x45); - db(0x56); db(0x53); db(0x3a); db(0x00); db(0x44); db(0x45); db(0x56); db(0x53); - db(0x3a); db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61); - db(0x72); db(0x64); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); - db(0x65); db(0x00); db(0x52); db(0x41); db(0x4d); db(0x3a); db(0x00); db(0x63); - db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61); db(0x72); db(0x64); - db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); - db(0x52); db(0x41); db(0x4d); db(0x3a); db(0x45); db(0x6e); db(0x76); db(0x2f); - db(0x53); db(0x79); db(0x73); db(0x2f); db(0x50); db(0x6f); db(0x69); db(0x6e); - db(0x74); db(0x65); db(0x72); db(0x2e); db(0x70); db(0x72); db(0x65); db(0x66); - db(0x73); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x63); db(0x6c); - db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61); db(0x72); db(0x64); db(0x20); - db(0x73); db(0x68); db(0x61); db(0x72); db(0x69); db(0x6e); db(0x67); db(0x00); - db(0x55); db(0x41); db(0x45); db(0x20); db(0x6d); db(0x6f); db(0x75); db(0x73); - db(0x65); db(0x20); db(0x64); db(0x72); db(0x69); db(0x76); db(0x65); db(0x72); - db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x68); db(0x65); db(0x61); - db(0x72); db(0x74); db(0x20); db(0x62); db(0x65); db(0x61); db(0x74); db(0x00); - db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); db(0x69); db(0x6c); db(0x65); - db(0x73); db(0x79); db(0x73); db(0x74); db(0x65); db(0x6d); db(0x00); db(0x55); - db(0x41); db(0x45); db(0x20); db(0x66); db(0x73); db(0x20); db(0x61); db(0x75); - db(0x74); db(0x6f); db(0x6d); db(0x6f); db(0x75); db(0x6e); db(0x74); db(0x65); - db(0x72); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); db(0x73); - db(0x20); db(0x61); db(0x75); db(0x74); db(0x6f); db(0x6d); db(0x6f); db(0x75); - db(0x6e); db(0x74); db(0x20); db(0x70); db(0x72); db(0x6f); db(0x63); db(0x65); - db(0x73); db(0x73); db(0x00); db(0x64); db(0x6f); db(0x73); db(0x2e); db(0x6c); - db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x69); - db(0x6e); db(0x74); db(0x75); db(0x69); db(0x74); db(0x69); db(0x6f); db(0x6e); - db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); - db(0x00); db(0x67); db(0x72); db(0x61); db(0x70); db(0x68); db(0x69); db(0x63); - db(0x73); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); - db(0x79); db(0x00); db(0x65); db(0x78); db(0x70); db(0x61); db(0x6e); db(0x73); - db(0x69); db(0x6f); db(0x6e); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); - db(0x61); db(0x72); db(0x79); db(0x00); db(0x46); db(0x69); db(0x6c); db(0x65); - db(0x53); db(0x79); db(0x73); db(0x74); db(0x65); db(0x6d); db(0x2e); db(0x72); - db(0x65); db(0x73); db(0x6f); db(0x75); db(0x72); db(0x63); db(0x65); db(0x00); - db(0x6d); db(0x65); db(0x67); db(0x61); db(0x63); db(0x68); db(0x69); db(0x70); - db(0x20); db(0x6d); db(0x65); db(0x6d); db(0x6f); db(0x72); db(0x79); db(0x00); - db(0x00); db(0x00); db(0x03); db(0xf2); +db(0x00); +db(0x00); +db(0x00); +db(0x10); +db(0x00); +db(0x00); +db(0x00); +db(0x00); +db(0x00); +db(0x00); +db(0x00); +db(0x09); +db(0x60); +db(0x00); +db(0x0a); +db(0xfe); +db(0x00); +db(0x00); +db(0x08); +db(0xac); +db(0x00); +db(0x00); +db(0x00); +db(0xe0); +db(0x00); +db(0x00); +db(0x02); +db(0x74); +db(0x00); +db(0x00); +db(0x00); +db(0x24); +db(0x00); +db(0x00); +db(0x03); +db(0x82); +db(0x00); +db(0x00); +db(0x00); +db(0x00); +db(0x00); +db(0x00); +db(0x13); +db(0x8c); +db(0x43); +db(0xfa); +db(0x18); +db(0x95); +db(0x4e); +db(0xae); +db(0xff); +db(0xa0); +db(0x20); +db(0x40); +db(0x20); +db(0x28); +db(0x00); +db(0x16); +db(0x20); +db(0x40); +db(0x4e); +db(0x90); +db(0x4e); +db(0x75); +db(0x48); +db(0xe7); +db(0xe0); +db(0xe2); +db(0x30); +db(0x3c); +db(0xff); +db(0x38); +db(0x72); +db(0x11); +db(0x61); +db(0x00); +db(0x17); +db(0x7e); +db(0x4e); +db(0x90); +db(0x4a); +db(0x80); +db(0x67); +db(0x4c); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x0c); +db(0x6e); +db(0x00); +db(0x25); +db(0x00); +db(0x14); +db(0x65); +db(0x40); +db(0x70); +db(0x14); +db(0x24); +db(0x00); +db(0x72); +db(0x01); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x4a); +db(0x80); +db(0x67); +db(0x32); +db(0x24); +db(0x40); +db(0x20); +db(0x4a); +db(0x43); +db(0xfa); +db(0x00); +db(0x60); +db(0x20); +db(0xd9); +db(0x59); +db(0x82); +db(0x66); +db(0xfa); +db(0x4e); +db(0xae); +db(0xff); +db(0x88); +db(0x22); +db(0x4e); +db(0x30); +db(0x7c); +db(0xff); +db(0xb8); +db(0x20); +db(0x0a); +db(0x4e); +db(0xae); +db(0xfe); +db(0x5c); +db(0x25); +db(0x40); +db(0x00); +db(0x0e); +db(0x41); +db(0xfa); +db(0x00); +db(0x14); +db(0x25); +db(0x48); +db(0x00); +db(0x08); +db(0x4e); +db(0xae); +db(0xfd); +db(0x84); +db(0x4e); +db(0xae); +db(0xff); +db(0x82); +db(0x4c); +db(0xdf); +db(0x47); +db(0x07); +db(0x4e); +db(0x75); +db(0x20); +db(0x57); +db(0x20); +db(0x68); +db(0x00); +db(0x02); +db(0x2f); +db(0x08); +db(0x4e); +db(0x90); +db(0x20); +db(0x5f); +db(0x58); +db(0x8f); +db(0x48); +db(0xe7); +db(0xff); +db(0x7e); +db(0x22); +db(0x4e); +db(0x20); +db(0x08); +db(0x30); +db(0x7c); +db(0xff); +db(0xb8); +db(0x4e); +db(0xae); +db(0xfe); +db(0x5c); +db(0x61); +db(0x00); +db(0x12); +db(0xce); +db(0x61); +db(0x00); +db(0x16); +db(0x94); +db(0x4c); +db(0xdf); +db(0x7e); +db(0xff); +db(0x4e); +db(0x75); +db(0x00); +db(0x00); +db(0x08); +db(0x00); +db(0x00); +db(0x02); +db(0x67); +db(0x06); +db(0x4e); +db(0xb9); +db(0x00); +db(0xf0); +db(0x00); +db(0x00); +db(0x4e); +db(0xf9); +db(0x00); +db(0xf0); +db(0x00); +db(0x00); +db(0x00); +db(0x00); +db(0x48); +db(0xe7); +db(0xff); +db(0xfe); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x30); +db(0x3c); +db(0xff); +db(0xec); +db(0x61); +db(0x00); +db(0x16); +db(0xd4); +db(0x2a); +db(0x50); +db(0x43); +db(0xfa); +db(0x17); +db(0xf6); +db(0x70); +db(0x24); +db(0x7a); +db(0x01); +db(0x4e); +db(0xae); +db(0xfd); +db(0xd8); +db(0x4a); +db(0x80); +db(0x66); +db(0x0c); +db(0x43); +db(0xfa); +db(0x17); +db(0xe6); +db(0x70); +db(0x00); +db(0x7a); +db(0x00); +db(0x4e); +db(0xae); +db(0xfd); +db(0xd8); +db(0x28); +db(0x40); +db(0x4a); +db(0xad); +db(0x01); +db(0x0c); +db(0x67); +db(0x00); +db(0x00); +db(0x5c); +db(0x20); +db(0x3c); +db(0x00); +db(0x00); +db(0x02); +db(0x2c); +db(0x22); +db(0x3c); +db(0x00); +db(0x01); +db(0x00); +db(0x01); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x26); +db(0x40); +db(0x27); +db(0x4c); +db(0x01); +db(0x9c); +db(0x7c); +db(0x00); +db(0xbc); +db(0x6d); +db(0x01); +db(0x0e); +db(0x64); +db(0x2c); +db(0x2f); +db(0x06); +db(0x7e); +db(0x01); +db(0x4a); +db(0x45); +db(0x67); +db(0x04); +db(0x08); +db(0xc7); +db(0x00); +db(0x02); +db(0x2f); +db(0x0b); +db(0x20); +db(0x4b); +db(0x61); +db(0x00); +db(0x07); +db(0x64); +db(0x26); +db(0x5f); +db(0x0c); +db(0x80); +db(0xff); +db(0xff); +db(0xff); +db(0xfe); +db(0x67); +db(0x08); +db(0x48); +db(0x46); +db(0x52); +db(0x46); +db(0x48); +db(0x46); +db(0x60); +db(0xdc); +db(0x2c); +db(0x1f); +db(0x52); +db(0x46); +db(0x60); +db(0xce); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x22); +db(0x4b); +db(0x20); +db(0x3c); +db(0x00); +db(0x00); +db(0x02); +db(0x2c); +db(0x4e); +db(0xae); +db(0xff); +db(0x2e); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x22); +db(0x4c); +db(0x4e); +db(0xae); +db(0xfe); +db(0x62); +db(0x78); +db(0x03); +db(0x0c); +db(0x6e); +db(0x00); +db(0x24); +db(0x00); +db(0x14); +db(0x65); +db(0x04); +db(0x00); +db(0x44); +db(0x01); +db(0x00); +db(0x43); +db(0xf9); +db(0x00); +db(0x21); +db(0x00); +db(0x00); +db(0x4e); +db(0xae); +db(0xfd); +db(0xea); +db(0x4a); +db(0x80); +db(0x66); +db(0x20); +db(0x30); +db(0x3c); +db(0xff); +db(0x80); +db(0x61); +db(0x00); +db(0x16); +db(0x24); +db(0x4e); +db(0x90); +db(0x22); +db(0x04); +db(0x74); +db(0xf6); +db(0x20); +db(0x7c); +db(0x00); +db(0x20); +db(0x00); +db(0x00); +db(0x90); +db(0x88); +db(0x65); +db(0x08); +db(0x67); +db(0x06); +db(0x93); +db(0xc9); +db(0x4e); +db(0xae); +db(0xfd); +db(0x96); +db(0x30); +db(0x3c); +db(0xff); +db(0x80); +db(0x61); +db(0x00); +db(0x16); +db(0x04); +db(0x4e); +db(0x90); +db(0x20); +db(0x49); +db(0x20); +db(0x01); +db(0x67); +db(0x0c); +db(0x22); +db(0x04); +db(0x74); +db(0xfb); +db(0x43); +db(0xfa); +db(0x17); +db(0x42); +db(0x4e); +db(0xae); +db(0xfd); +db(0x96); +db(0x41); +db(0xfa); +db(0x16); +db(0xb9); +db(0x43); +db(0xfa); +db(0x00); +db(0x54); +db(0x70); +db(0x0a); +db(0x61); +db(0x00); +db(0x0c); +db(0x62); +db(0x22); +db(0x40); +db(0x72); +db(0x01); +db(0x30); +db(0x3c); +db(0xff); +db(0x48); +db(0x61); +db(0x00); +db(0x15); +db(0xd6); +db(0x4e); +db(0x90); +db(0x4c); +db(0xdf); +db(0x7f); +db(0xff); +db(0x4e); +db(0x75); +db(0x48); +db(0xe7); +db(0x38); +db(0x22); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x24); +db(0x00); +db(0x28); +db(0x01); +db(0x26); +db(0x09); +db(0x24); +db(0x48); +db(0x43); +db(0xfa); +db(0x16); +db(0xb3); +db(0x70); +db(0x00); +db(0x4e); +db(0xae); +db(0xfd); +db(0xd8); +db(0x4a); +db(0x80); +db(0x67); +db(0x14); +db(0x2c); +db(0x40); +db(0x22); +db(0x0a); +db(0xe4); +db(0x8b); +db(0x4e); +db(0xae); +db(0xff); +db(0x76); +db(0x22); +db(0x4e); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x4e); +db(0xae); +db(0xfe); +db(0x62); +db(0x4c); +db(0xdf); +db(0x44); +db(0x1c); +db(0x4e); +db(0x75); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x70); +db(0x00); +db(0x08); +db(0xc0); +db(0x00); +db(0x0d); +db(0x4e); +db(0xae); +db(0xfe); +db(0xc2); +db(0x41); +db(0xfa); +db(0x16); +db(0x64); +db(0x43); +db(0xfa); +db(0x00); +db(0x16); +db(0x70); +db(0x0f); +db(0x22); +db(0x3c); +db(0x00); +db(0x00); +db(0x1f); +db(0x40); +db(0x61); +db(0x00); +db(0xff); +db(0xa8); +db(0x60); +db(0xdc); +db(0x00); +db(0x00); +db(0x00); +db(0x00); +db(0x00); +db(0x10); +db(0x00); +db(0x00); +db(0x00); +db(0x00); +db(0x72); +db(0x02); +db(0x30); +db(0x3c); +db(0xff); +db(0x48); +db(0x61); +db(0x00); +db(0x15); +db(0x5e); +db(0x4e); +db(0x90); +db(0x22); +db(0x00); +db(0x6b); +db(0x04); +db(0x61); +db(0x00); +db(0x07); +db(0xf0); +db(0x70); +db(0x00); +db(0x4e); +db(0x75); +db(0x48); +db(0xe7); +db(0x00); +db(0x20); +db(0x30); +db(0x3c); +db(0xff); +db(0x50); +db(0x61); +db(0x00); +db(0x15); +db(0x44); +db(0x70); +db(0x00); +db(0x4e); +db(0x90); +db(0x4a); +db(0x80); +db(0x67); +db(0x00); +db(0x00); +db(0xa2); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x30); +db(0x3c); +db(0xff); +db(0x50); +db(0x61); +db(0x00); +db(0x15); +db(0x2e); +db(0x70); +db(0x02); +db(0x4e); +db(0x90); +db(0x0c); +db(0x40); +db(0x00); +db(0x01); +db(0x6d); +db(0x00); +db(0x00); +db(0x7c); +db(0x6e); +db(0x06); +db(0x4e); +db(0xae); +db(0xfe); +db(0x92); +db(0x60); +db(0xe4); +db(0x0c); +db(0x40); +db(0x00); +db(0x02); +db(0x6e); +db(0x08); +db(0x20); +db(0x01); +db(0x4e); +db(0xae); +db(0xfe); +db(0xbc); +db(0x60); +db(0xd6); +db(0x0c); +db(0x40); +db(0x00); +db(0x03); +db(0x6e); +db(0x06); +db(0x4e); +db(0xae); +db(0xfe); +db(0x86); +db(0x60); +db(0xca); +db(0x0c); +db(0x40); +db(0x00); +db(0x04); +db(0x6e); +db(0x06); +db(0x4e); +db(0xae); +db(0xff); +db(0x4c); +db(0x60); +db(0xbe); +db(0x0c); +db(0x40); +db(0x00); +db(0x05); +db(0x6e); +db(0x46); +db(0x48); +db(0xe7); +db(0x00); +db(0xc0); +db(0x70); +db(0x26); +db(0x22); +db(0x3c); +db(0x00); +db(0x01); +db(0x00); +db(0x01); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x4c); +db(0xdf); +db(0x03); +db(0x00); +db(0x24); +db(0x40); +db(0x15); +db(0x7c); +db(0x00); +db(0x08); +db(0x00); +db(0x08); +db(0x25); +db(0x48); +db(0x00); +db(0x0e); +db(0x35); +db(0x7c); +db(0x00); +db(0x26); +db(0x00); +db(0x12); +db(0x25); +db(0x7c); +db(0x40); +db(0x00); +db(0x00); +db(0x00); +db(0x00); +db(0x14); +db(0x35); +db(0x7c); +db(0x12); +db(0x34); +db(0x00); +db(0x18); +db(0x25); +db(0x49); +db(0x00); +db(0x1a); +db(0x20); +db(0x69); +db(0x00); +db(0x10); +db(0x22); +db(0x4a); +db(0x4e); +db(0xae); +db(0xfe); +db(0x92); +db(0x60); +db(0x00); +db(0xff); +db(0x74); +db(0x30); +db(0x3c); +db(0xff); +db(0x50); +db(0x61); +db(0x00); +db(0x14); +db(0xa0); +db(0x70); +db(0x04); +db(0x4e); +db(0x90); +db(0x70); +db(0x01); +db(0x4c); +db(0xdf); +db(0x04); +db(0x00); +db(0x4e); +db(0x75); +db(0x48); +db(0xe7); +db(0xc0); +db(0xe0); +db(0x30); +db(0x3c); +db(0xff); +db(0x38); +db(0x72); +db(0x12); +db(0x61); +db(0x00); +db(0x14); +db(0x86); +db(0x4e); +db(0x90); +db(0x24); +db(0x40); +db(0x70); +db(0x16); +db(0x22); +db(0x3c); +db(0x00); +db(0x01); +db(0x00); +db(0x01); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x22); +db(0x40); +db(0x13); +db(0x7c); +db(0x00); +db(0x02); +db(0x00); +db(0x08); +db(0x13); +db(0x7c); +db(0x00); +db(0xf6); +db(0x00); +db(0x09); +db(0x41); +db(0xfa); +db(0x15); +db(0x13); +db(0x23); +db(0x48); +db(0x00); +db(0x0a); +db(0x41); +db(0xfa); +db(0x00); +db(0x16); +db(0x23); +db(0x48); +db(0x00); +db(0x12); +db(0x23); +db(0x4a); +db(0x00); +db(0x0e); +db(0x70); +db(0x05); +db(0x4e); +db(0xae); +db(0xff); +db(0x58); +db(0x4c); +db(0xdf); +db(0x07); +db(0x03); +db(0x4e); +db(0x75); +db(0x52); +db(0x91); +db(0x70); +db(0x00); +db(0x4e); +db(0x75); +db(0x48); +db(0xe7); +db(0xc0); +db(0xc0); +db(0x61); +db(0x00); +db(0xfc); +db(0xb0); +db(0x70); +db(0x1a); +db(0x22); +db(0x3c); +db(0x00); +db(0x01); +db(0x00); +db(0x01); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x22); +db(0x40); +db(0x41); +db(0xfa); +db(0x14); +db(0xe6); +db(0x23); +db(0x48); +db(0x00); +db(0x0a); +db(0x41); +db(0xfa); +db(0xfe); +db(0xd2); +db(0x23); +db(0x48); +db(0x00); +db(0x0e); +db(0x41); +db(0xfa); +db(0xfe); +db(0xca); +db(0x23); +db(0x48); +db(0x00); +db(0x12); +db(0x33); +db(0x7c); +db(0x02); +db(0x14); +db(0x00); +db(0x08); +db(0x70); +db(0x03); +db(0x4e); +db(0xae); +db(0xff); +db(0x58); +db(0x61); +db(0x00); +db(0xff); +db(0x72); +db(0x30); +db(0x3c); +db(0xff); +db(0x38); +db(0x72); +db(0x04); +db(0x61); +db(0x00); +db(0x13); +db(0xfa); +db(0x4e); +db(0x90); +db(0x4a); +db(0x80); +db(0x67); +db(0x04); +db(0x61); +db(0x00); +db(0x0a); +db(0xcc); +db(0x4c); +db(0xdf); +db(0x03); +db(0x03); +db(0x4e); +db(0x75); +db(0x48); +db(0xe7); +db(0xc0); +db(0xf2); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x24); +db(0x48); +db(0x26); +db(0x49); +db(0x20); +db(0x3c); +db(0x00); +db(0x00); +db(0x00); +db(0xbe); +db(0x22); +db(0x3c); +db(0x00); +db(0x01); +db(0x00); +db(0x01); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x20); +db(0x40); +db(0x70); +db(0x00); +db(0x43); +db(0xeb); +db(0x01); +db(0xa0); +db(0x11); +db(0xb1); +db(0x00); +db(0x00); +db(0x00); +db(0x0e); +db(0x52); +db(0x40); +db(0x0c); +db(0x40); +db(0x00); +db(0x8c); +db(0x66); +db(0xf2); +db(0x20); +db(0x0a); +db(0xe4); +db(0x88); +db(0x21); +db(0x40); +db(0x00); +db(0x36); +db(0x22); +db(0x48); +db(0x41); +db(0xfa); +db(0x14); +db(0x68); +db(0x23); +db(0x48); +db(0x00); +db(0x0a); +db(0x20); +db(0x6b); +db(0x01); +db(0x98); +db(0x41); +db(0xe8); +db(0x00); +db(0x12); +db(0x4e); +db(0xae); +db(0xff); +db(0x10); +db(0x4c); +db(0xdf); +db(0x4f); +db(0x03); +db(0x4e); +db(0x75); +db(0x48); +db(0xe7); +db(0x7f); +db(0x7e); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x24); +db(0x48); +db(0x0c); +db(0x9a); +db(0x00); +db(0x00); +db(0x03); +db(0xf3); +db(0x66); +db(0x00); +db(0x00); +db(0xe4); +db(0x50); +db(0x8a); +db(0x2e); +db(0x2a); +db(0x00); +db(0x04); +db(0x9e); +db(0x92); +db(0x50); +db(0x8a); +db(0x52); +db(0x87); +db(0x26); +db(0x4a); +db(0x20); +db(0x07); +db(0xd0); +db(0x80); +db(0xd0); +db(0x80); +db(0xd7); +db(0xc0); +db(0x28); +db(0x4a); +db(0x9b); +db(0xcd); +db(0x7c); +db(0x00); +db(0x24); +db(0x12); +db(0x72); +db(0x01); +db(0x08); +db(0x02); +db(0x00); +db(0x1e); +db(0x67); +db(0x04); +db(0x08); +db(0xc1); +db(0x00); +db(0x01); +db(0x08); +db(0xc1); +db(0x00); +db(0x10); +db(0xe5); +db(0x8a); +db(0x66); +db(0x04); +db(0x42); +db(0x9a); +db(0x60); +db(0x20); +db(0x50); +db(0x82); +db(0x20); +db(0x02); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x4a); +db(0x80); +db(0x67); +db(0x00); +db(0x00); +db(0xa0); +db(0x20); +db(0x40); +db(0x20); +db(0xc2); +db(0x24); +db(0xc8); +db(0x22); +db(0x0d); +db(0x67); +db(0x06); +db(0x20); +db(0x08); +db(0xe4); +db(0x88); +db(0x2a); +db(0x80); +db(0x2a); +db(0x48); +db(0x52); +db(0x86); +db(0xbe); +db(0x86); +db(0x66); +db(0xc0); +db(0x7c); +db(0x00); +db(0x22); +db(0x06); +db(0xd2); +db(0x81); +db(0xd2); +db(0x81); +db(0x20); +db(0x74); +db(0x18); +db(0x00); +db(0x58); +db(0x88); +db(0x26); +db(0x1b); +db(0x28); +db(0x1b); +db(0xe5); +db(0x8c); +db(0x0c); +db(0x83); +db(0x00); +db(0x00); +db(0x03); +db(0xe9); +db(0x67); +db(0x08); +db(0x0c); +db(0x83); +db(0x00); +db(0x00); +db(0x03); +db(0xea); +db(0x66); +db(0x0c); +db(0x20); +db(0x04); +db(0x4a); +db(0x80); +db(0x67); +db(0x0e); +db(0x10); +db(0xdb); +db(0x53); +db(0x80); +db(0x60); +db(0xf6); +db(0x0c); +db(0x83); +db(0x00); +db(0x00); +db(0x03); +db(0xeb); +db(0x66); +db(0x4e); +db(0x26); +db(0x1b); +db(0x0c); +db(0x83); +db(0x00); +db(0x00); +db(0x03); +db(0xec); +db(0x66); +db(0x28); +db(0x22); +db(0x06); +db(0xd2); +db(0x81); +db(0xd2); +db(0x81); +db(0x20); +db(0x74); +db(0x18); +db(0x00); +db(0x58); +db(0x88); +db(0x20); +db(0x1b); +db(0x67); +db(0xe6); +db(0x22); +db(0x1b); +db(0xd2); +db(0x81); +db(0xd2); +db(0x81); +db(0x26); +db(0x34); +db(0x18); +db(0x00); +db(0x58); +db(0x83); +db(0x24); +db(0x1b); +db(0xd7); +db(0xb0); +db(0x28); +db(0x00); +db(0x53); +db(0x80); +db(0x66); +db(0xf6); +db(0x60); +db(0xe4); +db(0x0c); +db(0x83); +db(0x00); +db(0x00); +db(0x03); +db(0xf2); +db(0x66); +db(0x14); +db(0x52); +db(0x86); +db(0xbe); +db(0x86); +db(0x66); +db(0x00); +db(0xff); +db(0x8a); +db(0x7e); +db(0x01); +db(0x20); +db(0x54); +db(0x20); +db(0x07); +db(0x4c); +db(0xdf); +db(0x7e); +db(0xfe); +db(0x4e); +db(0x75); +db(0x7e); +db(0x00); +db(0x60); +db(0xf4); +db(0x48); +db(0xe7); +db(0x40); +db(0xe2); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x41); +db(0xee); +db(0x01); +db(0x50); +db(0x20); +db(0x50); +db(0x4a); +db(0x90); +db(0x67); +db(0x1a); +db(0x22); +db(0x68); +db(0x00); +db(0x0a); +db(0x45); +db(0xfa); +db(0x13); +db(0xba); +db(0x10); +db(0x19); +db(0x12); +db(0x1a); +db(0xb0); +db(0x01); +db(0x66); +db(0x06); +db(0x4a); +db(0x00); +db(0x67); +db(0x42); +db(0x60); +db(0xf2); +db(0x20); +db(0x50); +db(0x60); +db(0xe2); +db(0x70); +db(0x20); +db(0x22); +db(0x3c); +db(0x00); +db(0x01); +db(0x00); +db(0x01); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x24); +db(0x40); +db(0x15); +db(0x7c); +db(0x00); +db(0x08); +db(0x00); +db(0x08); +db(0x41); +db(0xfa); +db(0x13); +db(0x90); +db(0x25); +db(0x48); +db(0x00); +db(0x0a); +db(0x41); +db(0xfa); +db(0x13); +db(0x0c); +db(0x25); +db(0x48); +db(0x00); +db(0x0e); +db(0x41); +db(0xea); +db(0x00); +db(0x12); +db(0x20); +db(0x88); +db(0x58); +db(0x90); +db(0x21); +db(0x48); +db(0x00); +db(0x08); +db(0x41); +db(0xee); +db(0x01); +db(0x50); +db(0x22); +db(0x4a); +db(0x4e); +db(0xae); +db(0xff); +db(0x0a); +db(0x20); +db(0x4a); +db(0x20); +db(0x08); +db(0x4c); +db(0xdf); +db(0x47); +db(0x02); +db(0x4e); +db(0x75); +db(0x48); +db(0xe7); +db(0x01); +db(0x02); +db(0x2e); +db(0x00); +db(0x4a); +db(0x2b); +db(0x00); +db(0x4c); +db(0x67); +db(0x7c); +db(0x2c); +db(0x6b); +db(0x00); +db(0xa0); +db(0x0c); +db(0x6e); +db(0x00); +db(0x25); +db(0x00); +db(0x14); +db(0x65); +db(0x3e); +db(0x72); +db(0x0e); +db(0x4e); +db(0xae); +db(0xfd); +db(0x66); +db(0x02); +db(0x80); +db(0xff); +db(0xff); +db(0xff); +db(0xfe); +db(0x67); +db(0x62); +db(0x08); +db(0x07); +db(0x00); +db(0x00); +db(0x67); +db(0x0a); +db(0x41); +db(0xeb); +db(0x00); +db(0x20); +db(0x22); +db(0x08); +db(0x4e); +db(0xae); +db(0xfd); +db(0x5a); +db(0x08); +db(0x07); +db(0x00); +db(0x01); +db(0x67); +db(0x12); +db(0x4a); +db(0x2b); +db(0x00); +db(0x9e); +db(0x66); +db(0x0c); +db(0x50); +db(0xeb); +db(0x00); +db(0x9e); +db(0x22); +db(0x2b); +db(0x00); +db(0xb4); +db(0x4e); +db(0xae); +db(0xfd); +db(0x5a); +db(0x72); +db(0x0e); +db(0x4e); +db(0xae); +db(0xfd); +db(0x6c); +db(0x60); +db(0x32); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x4e); +db(0xae); +db(0xff); +db(0x7c); +db(0x08); +db(0x07); +db(0x00); +db(0x00); +db(0x67); +db(0x08); +db(0x41); +db(0xeb); +db(0x00); +db(0x20); +db(0x61); +db(0x00); +db(0x00); +db(0xac); +db(0x08); +db(0x07); +db(0x00); +db(0x01); +db(0x67); +db(0x12); +db(0x4a); +db(0x2b); +db(0x00); +db(0x9e); +db(0x66); +db(0x0c); +db(0x50); +db(0xeb); +db(0x00); +db(0x9e); +db(0x20); +db(0x6b); +db(0x00); +db(0xb4); +db(0x61); +db(0x00); +db(0x00); +db(0x94); +db(0x4e); +db(0xae); +db(0xff); +db(0x76); +db(0x4c); +db(0xdf); +db(0x40); +db(0x80); +db(0x4e); +db(0x75); +db(0x48); +db(0xe7); +db(0x01); +db(0x22); +db(0x2e); +db(0x00); +db(0x2c); +db(0x6b); +db(0x00); +db(0xa0); +db(0x0c); +db(0x6e); +db(0x00); +db(0x25); +db(0x00); +db(0x14); +db(0x65); +db(0x3e); +db(0x72); +db(0x0e); +db(0x4e); +db(0xae); +db(0xfd); +db(0x66); +db(0x02); +db(0x80); +db(0xff); +db(0xff); +db(0xff); +db(0xfe); +db(0x67); +db(0x62); +db(0x08); +db(0x07); +db(0x00); +db(0x00); +db(0x67); +db(0x0a); +db(0x41); +db(0xeb); +db(0x00); +db(0x20); +db(0x22); +db(0x08); +db(0x4e); +db(0xae); +db(0xfd); +db(0x60); +db(0x08); +db(0x07); +db(0x00); +db(0x01); +db(0x67); +db(0x12); +db(0x4a); +db(0x2b); +db(0x00); +db(0x9e); +db(0x67); +db(0x0c); +db(0x42); +db(0x2b); +db(0x00); +db(0x9e); +db(0x22); +db(0x2b); +db(0x00); +db(0xb4); +db(0x4e); +db(0xae); +db(0xfd); +db(0x60); +db(0x72); +db(0x0e); +db(0x4e); +db(0xae); +db(0xfd); +db(0x6c); +db(0x60); +db(0x32); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x4e); +db(0xae); +db(0xff); +db(0x7c); +db(0x08); +db(0x07); +db(0x00); +db(0x00); +db(0x67); +db(0x08); +db(0x41); +db(0xeb); +db(0x00); +db(0x20); +db(0x61); +db(0x00); +db(0x00); +db(0x44); +db(0x08); +db(0x07); +db(0x00); +db(0x01); +db(0x67); +db(0x12); +db(0x4a); +db(0x2b); +db(0x00); +db(0x9e); +db(0x67); +db(0x0c); +db(0x42); +db(0x2b); +db(0x00); +db(0x9e); +db(0x20); +db(0x6b); +db(0x00); +db(0xb4); +db(0x61); +db(0x00); +db(0x00); +db(0x2c); +db(0x4e); +db(0xae); +db(0xff); +db(0x76); +db(0x4c); +db(0xdf); +db(0x44); +db(0x80); +db(0x4e); +db(0x75); +db(0x22); +db(0x48); +db(0x20); +db(0x6b); +db(0x00); +db(0xa0); +db(0x20); +db(0x68); +db(0x00); +db(0x22); +db(0x20); +db(0x68); +db(0x00); +db(0x18); +db(0xd1); +db(0xc8); +db(0xd1); +db(0xc8); +db(0x22); +db(0xa8); +db(0x00); +db(0x04); +db(0x20); +db(0x09); +db(0xe4); +db(0x88); +db(0x21); +db(0x40); +db(0x00); +db(0x04); +db(0x4e); +db(0x75); +db(0x24); +db(0x48); +db(0x20); +db(0x6b); +db(0x00); +db(0xa0); +db(0x20); +db(0x68); +db(0x00); +db(0x22); +db(0x20); +db(0x68); +db(0x00); +db(0x18); +db(0xd1); +db(0xc8); +db(0xd1); +db(0xc8); +db(0x22); +db(0x68); +db(0x00); +db(0x04); +db(0xd3); +db(0xc9); +db(0xd3); +db(0xc9); +db(0xb3); +db(0xca); +db(0x66); +db(0x06); +db(0x21); +db(0x52); +db(0x00); +db(0x04); +db(0x60); +db(0x18); +db(0x20); +db(0x09); +db(0x67); +db(0x0e); +db(0x20); +db(0x11); +db(0xd0); +db(0x80); +db(0xd0); +db(0x80); +db(0xb5); +db(0xc0); +db(0x67); +db(0x04); +db(0x22); +db(0x40); +db(0x60); +db(0xee); +db(0x20); +db(0x09); +db(0x67); +db(0x02); +db(0x22); +db(0x92); +db(0x4e); +db(0x75); +db(0x48); +db(0xe7); +db(0x20); +db(0x22); +db(0x74); +db(0x16); +db(0x9f); +db(0xc2); +db(0x24); +db(0x4f); +db(0x32); +db(0x02); +db(0x42); +db(0x32); +db(0x10); +db(0xff); +db(0x53); +db(0x41); +db(0x66); +db(0xf8); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x72); +db(0x0f); +db(0x4a); +db(0x80); +db(0x67); +db(0x02); +db(0x72); +db(0x10); +db(0x15); +db(0x41); +db(0x00); +db(0x04); +db(0x35); +db(0x7c); +db(0x08); +db(0x00); +db(0x00); +db(0x08); +db(0x22); +db(0x6b); +db(0x00); +db(0xa4); +db(0x33); +db(0x7c); +db(0x00); +db(0x0b); +db(0x00); +db(0x1c); +db(0x23); +db(0x7c); +db(0x00); +db(0x00); +db(0x00); +db(0x16); +db(0x00); +db(0x24); +db(0x23); +db(0x4a); +db(0x00); +db(0x28); +db(0x13); +db(0x7c); +db(0x00); +db(0x01); +db(0x00); +db(0x1e); +db(0x22); +db(0x6b); +db(0x00); +db(0xa8); +db(0x33); +db(0x7c); +db(0x00); +db(0x0a); +db(0x00); +db(0x1c); +db(0x13); +db(0x7c); +db(0x00); +db(0x01); +db(0x00); +db(0x1e); +db(0x4e); +db(0xae); +db(0xfe); +db(0x38); +db(0x22); +db(0x6b); +db(0x00); +db(0xa8); +db(0x25); +db(0x69); +db(0x00); +db(0x20); +db(0x00); +db(0x0e); +db(0x25); +db(0x69); +db(0x00); +db(0x24); +db(0x00); +db(0x12); +db(0x22); +db(0x6b); +db(0x00); +db(0xa4); +db(0x4e); +db(0xae); +db(0xfe); +db(0x38); +db(0xdf); +db(0xc2); +db(0x4c); +db(0xdf); +db(0x44); +db(0x04); +db(0x4e); +db(0x75); +db(0x4a); +db(0x00); +db(0x67); +db(0x26); +db(0x4a); +db(0x2b); +db(0x00); +db(0x4c); +db(0x66); +db(0x36); +db(0x70); +db(0x00); +db(0x4a); +db(0x33); +db(0x00); +db(0x4d); +db(0x67); +db(0x04); +db(0x52); +db(0x00); +db(0x60); +db(0xf6); +db(0x17); +db(0x40); +db(0x00); +db(0x4c); +db(0x67); +db(0x24); +db(0x20); +db(0x01); +db(0x61); +db(0x00); +db(0xfd); +db(0xf2); +db(0x70); +db(0x01); +db(0x61); +db(0x00); +db(0xff); +db(0x60); +db(0x60); +db(0x16); +db(0x4a); +db(0x2b); +db(0x00); +db(0x4c); +db(0x67); +db(0x10); +db(0x42); +db(0x2b); +db(0x00); +db(0x4c); +db(0x20); +db(0x01); +db(0x61); +db(0x00); +db(0xfe); +db(0x68); +db(0x70); +db(0x00); +db(0x61); +db(0x00); +db(0xff); +db(0x48); +db(0x4e); +db(0x75); +db(0x4a); +db(0xac); +db(0x00); +db(0x14); +db(0x67); +db(0x0a); +db(0x70); +db(0x00); +db(0x72); +db(0x01); +db(0x61); +db(0x00); +db(0xff); +db(0xb2); +db(0x4e); +db(0x75); +db(0x70); +db(0x01); +db(0x72); +db(0x03); +db(0x61); +db(0x00); +db(0xff); +db(0xa8); +db(0x4e); +db(0x75); +db(0x10); +db(0x2b); +db(0x00); +db(0xac); +db(0x6b); +db(0x0a); +db(0x70); +db(0x01); +db(0x72); +db(0x03); +db(0x61); +db(0x00); +db(0xff); +db(0x98); +db(0x4e); +db(0x75); +db(0x72); +db(0x01); +db(0x0c); +db(0x00); +db(0x00); +db(0xfe); +db(0x66); +db(0x02); +db(0x72); +db(0x03); +db(0x70); +db(0x00); +db(0x61); +db(0x00); +db(0xff); +db(0x86); +db(0x4e); +db(0x75); +db(0x20); +db(0x6c); +db(0x00); +db(0x24); +db(0x4a); +db(0x90); +db(0x67); +db(0x0c); +db(0x4a); +db(0xa8); +db(0x00); +db(0x08); +db(0x66); +db(0x0a); +db(0x4a); +db(0xa8); +db(0x00); +db(0x0c); +db(0x66); +db(0x04); +db(0x70); +db(0x01); +db(0x4e); +db(0x75); +db(0x48); +db(0xe7); +db(0x3f); +db(0x3e); +db(0x2a); +db(0x48); +db(0x24); +db(0x6c); +db(0x00); +db(0x18); +db(0x2e); +db(0x15); +db(0x7a); +db(0x00); +db(0x4a); +db(0x87); +db(0x67); +db(0x70); +db(0x20); +db(0x0a); +db(0x67); +db(0x6c); +db(0x7c); +db(0x00); +db(0x22); +db(0x2d); +db(0x00); +db(0x08); +db(0x67); +db(0x12); +db(0x24); +db(0x2a); +db(0x00); +db(0x04); +db(0x2c); +db(0x6b); +db(0x00); +db(0xa0); +db(0x4e); +db(0xae); +db(0xfc); +db(0x34); +db(0x4a); +db(0x80); +db(0x66); +db(0x02); +db(0x50); +db(0xc6); +db(0x22); +db(0x2d); +db(0x00); +db(0x0c); +db(0x67); +db(0x1c); +db(0x20); +db(0x41); +db(0x22); +db(0x4a); +db(0x2f); +db(0x0a); +db(0x45); +db(0xec); +db(0x00); +db(0x20); +db(0x48); +db(0x7a); +db(0x00); +db(0x08); +db(0x2f); +db(0x28); +db(0x00); +db(0x08); +db(0x4e); +db(0x75); +db(0x24); +db(0x5f); +db(0x4a); +db(0x80); +db(0x66); +db(0x02); +db(0x50); +db(0xc6); +db(0x4a); +db(0x06); +db(0x67); +db(0x24); +db(0x20); +db(0x2a); +db(0x00); +db(0x04); +db(0x90); +db(0x8a); +db(0x4a); +db(0x92); +db(0x66); +db(0x0a); +db(0x20); +db(0x05); +db(0x67); +db(0x10); +db(0x20); +db(0x40); +db(0x42); +db(0x90); +db(0x60); +db(0x0a); +db(0x20); +db(0x52); +db(0x22); +db(0x4a); +db(0x22); +db(0xd8); +db(0x59); +db(0x80); +db(0x6a); +db(0xfa); +db(0x53); +db(0x95); +db(0x53); +db(0x87); +db(0x60); +db(0x94); +db(0x2a); +db(0x0a); +db(0x24); +db(0x52); +db(0x53); +db(0x87); +db(0x60); +db(0x8c); +db(0x4c); +db(0xdf); +db(0x7c); +db(0xfc); +db(0x20); +db(0x6c); +db(0x00); +db(0x24); +db(0x4a); +db(0x90); +db(0x4e); +db(0x75); +db(0x61); +db(0x00); +db(0xfc); +db(0x7c); +db(0x21); +db(0x40); +db(0x01); +db(0x98); +db(0x2f); +db(0x08); +db(0x30); +db(0x3c); +db(0xff); +db(0xec); +db(0x61); +db(0x00); +db(0x0f); +db(0x06); +db(0x2a); +db(0x50); +db(0x30); +db(0x3c); +db(0xff); +db(0x28); +db(0x61); +db(0x00); +db(0x0e); +db(0xfc); +db(0x22); +db(0x48); +db(0x20); +db(0x5f); +db(0x42); +db(0xa8); +db(0x01); +db(0x90); +db(0x42); +db(0xa8); +db(0x01); +db(0x94); +db(0x4e); +db(0x91); +db(0x26); +db(0x00); +db(0x0c); +db(0x43); +db(0xff); +db(0xfe); +db(0x67); +db(0x00); +db(0xf9); +db(0x16); +db(0x20); +db(0x28); +db(0x01); +db(0x90); +db(0x67); +db(0x14); +db(0x6b); +db(0x12); +db(0x2f); +db(0x08); +db(0x72); +db(0x01); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x20); +db(0x5f); +db(0x21); +db(0x40); +db(0x01); +db(0x94); +db(0x4a); +db(0x83); +db(0x6a); +db(0x0e); +db(0x22); +db(0x48); +db(0x30); +db(0x3c); +db(0xff); +db(0x20); +db(0x61); +db(0x00); +db(0x0e); +db(0xbc); +db(0x4e); +db(0x90); +db(0x60); +db(0x26); +db(0x2c); +db(0x4c); +db(0x2f); +db(0x08); +db(0x4e); +db(0xae); +db(0xff); +db(0x70); +db(0x20); +db(0x5f); +db(0x22); +db(0x48); +db(0x26); +db(0x40); +db(0x30); +db(0x3c); +db(0xff); +db(0x20); +db(0x61); +db(0x00); +db(0x0e); +db(0xa2); +db(0x4e); +db(0x90); +db(0x70); +db(0x00); +db(0x27); +db(0x40); +db(0x00); +db(0x08); +db(0x27); +db(0x40); +db(0x00); +db(0x10); +db(0x27); +db(0x40); +db(0x00); +db(0x20); +db(0x4a); +db(0xa9); +db(0x01); +db(0x94); +db(0x67); +db(0x28); +db(0x20); +db(0x69); +db(0x01); +db(0x94); +db(0x61); +db(0x00); +db(0xfa); +db(0xf2); +db(0x48); +db(0xe7); +db(0x80); +db(0xc0); +db(0x20); +db(0x29); +db(0x01); +db(0x90); +db(0x22); +db(0x69); +db(0x01); +db(0x94); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x4e); +db(0xae); +db(0xff); +db(0x2e); +db(0x4c); +db(0xdf); +db(0x03); +db(0x01); +db(0x4a); +db(0x80); +db(0x67); +db(0x04); +db(0x61); +db(0x00); +db(0xfa); +db(0x7c); +db(0x4a); +db(0x83); +db(0x6b); +db(0x00); +db(0xf8); +db(0x90); +db(0x30); +db(0x3c); +db(0xff); +db(0x18); +db(0x61); +db(0x00); +db(0x0e); +db(0x56); +db(0x4e); +db(0x90); +db(0x20); +db(0x03); +db(0x16); +db(0x29); +db(0x00); +db(0x4f); +db(0x4a); +db(0x80); +db(0x66); +db(0x1a); +db(0x27); +db(0x7c); +db(0x00); +db(0x00); +db(0x17); +db(0x70); +db(0x00); +db(0x14); +db(0x41); +db(0xfa); +db(0xf6); +db(0x78); +db(0x20); +db(0x08); +db(0xe4); +db(0x88); +db(0x27); +db(0x40); +db(0x00); +db(0x20); +db(0x70); +db(0xff); +db(0x27); +db(0x40); +db(0x00); +db(0x24); +db(0x08); +db(0x07); +db(0x00); +db(0x00); +db(0x67); +db(0x40); +db(0x0c); +db(0x03); +db(0x00); +db(0x80); +db(0x67); +db(0x3a); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x70); +db(0x14); +db(0x22); +db(0x3c); +db(0x00); +db(0x01); +db(0x00); +db(0x01); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x22); +db(0x40); +db(0x30); +db(0x3c); +db(0x10); +db(0x00); +db(0x80); +db(0x03); +db(0x33); +db(0x40); +db(0x00); +db(0x08); +db(0x23); +db(0x6d); +db(0x01); +db(0x04); +db(0x00); +db(0x0a); +db(0x23); +db(0x4b); +db(0x00); +db(0x10); +db(0x41); +db(0xec); +db(0x00); +db(0x4a); +db(0x4e); +db(0xae); +db(0xff); +db(0x7c); +db(0x4e); +db(0xae); +db(0xfe); +db(0xf2); +db(0x4e); +db(0xae); +db(0xff); +db(0x76); +db(0x70); +db(0x00); +db(0x4e); +db(0x75); +db(0x24); +db(0x49); +db(0x20); +db(0x4b); +db(0x72); +db(0x00); +db(0x22); +db(0x41); +db(0x08); +db(0x07); +db(0x00); +db(0x01); +db(0x67); +db(0x08); +db(0x08); +db(0x07); +db(0x00); +db(0x02); +db(0x67); +db(0x02); +db(0x72); +db(0x01); +db(0x70); +db(0x80); +db(0x2c); +db(0x4c); +db(0x4e); +db(0xae); +db(0xff); +db(0x6a); +db(0x08); +db(0x07); +db(0x00); +db(0x01); +db(0x67); +db(0x5c); +db(0x08); +db(0x07); +db(0x00); +db(0x02); +db(0x66); +db(0x56); +db(0x20); +db(0x52); +db(0x74); +db(0x02); +db(0x52); +db(0x82); +db(0x4a); +db(0x30); +db(0x28); +db(0xfd); +db(0x66); +db(0xf8); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x20); +db(0x02); +db(0x72); +db(0x01); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x4a); +db(0x80); +db(0x67); +db(0x3a); +db(0x20); +db(0x52); +db(0x24); +db(0x40); +db(0x22); +db(0x4a); +db(0x12); +db(0xd8); +db(0x66); +db(0xfc); +db(0x13); +db(0x7c); +db(0x00); +db(0x3a); +db(0xff); +db(0xff); +db(0x42); +db(0x11); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x43); +db(0xfa); +db(0x0e); +db(0x83); +db(0x70); +db(0x00); +db(0x4e); +db(0xae); +db(0xfd); +db(0xd8); +db(0x2c); +db(0x40); +db(0x22); +db(0x0a); +db(0x4e); +db(0xae); +db(0xff); +db(0x52); +db(0x22); +db(0x4e); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x4e); +db(0xae); +db(0xfe); +db(0x62); +db(0x22); +db(0x4a); +db(0x20); +db(0x02); +db(0x4e); +db(0xae); +db(0xff); +db(0x2e); +db(0x70); +db(0x00); +db(0x4e); +db(0x75); +db(0x48); +db(0xe7); +db(0x3f); +db(0x3e); +db(0x2c); +db(0x01); +db(0x7e); +db(0x06); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x43); +db(0xfa); +db(0x0e); +db(0x7e); +db(0x70); +db(0x24); +db(0x4e); +db(0xae); +db(0xfd); +db(0xd8); +db(0x4a); +db(0x80); +db(0x66); +db(0x0e); +db(0x08); +db(0x87); +db(0x00); +db(0x02); +db(0x43); +db(0xfa); +db(0x0e); +db(0x6c); +db(0x70); +db(0x00); +db(0x4e); +db(0xae); +db(0xfd); +db(0xd8); +db(0x28); +db(0x40); +db(0x20); +db(0x3c); +db(0x00); +db(0x00); +db(0x02); +db(0x2c); +db(0x22); +db(0x3c); +db(0x00); +db(0x01); +db(0x00); +db(0x01); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x20); +db(0x40); +db(0x4a); +db(0x80); +db(0x67); +db(0x2c); +db(0x21); +db(0x4c); +db(0x01); +db(0x9c); +db(0x48); +db(0xe7); +db(0x00); +db(0x8a); +db(0x61); +db(0x00); +db(0xfe); +db(0x04); +db(0x4c); +db(0xdf); +db(0x51); +db(0x00); +db(0x0c); +db(0x80); +db(0xff); +db(0xff); +db(0xff); +db(0xfe); +db(0x67); +db(0x08); +db(0x48); +db(0x46); +db(0x52); +db(0x46); +db(0x48); +db(0x46); +db(0x60); +db(0xe4); +db(0x22); +db(0x48); +db(0x20); +db(0x3c); +db(0x00); +db(0x00); +db(0x02); +db(0x2c); +db(0x4e); +db(0xae); +db(0xff); +db(0x2e); +db(0x22); +db(0x4c); +db(0x4e); +db(0xae); +db(0xfe); +db(0x62); +db(0x4c); +db(0xdf); +db(0x7c); +db(0xfc); +db(0x4e); +db(0x75); +db(0x30); +db(0x3c); +db(0xff); +db(0x58); +db(0x61); +db(0x00); +db(0x0c); +db(0xe6); +db(0x70); +db(0x03); +db(0x4e); +db(0x90); +db(0x22); +db(0x6b); +db(0x00); +db(0xa8); +db(0x23); +db(0x40); +db(0x00); +db(0x20); +db(0x67); +db(0x16); +db(0x70); +db(0x00); +db(0x23); +db(0x40); +db(0x00); +db(0x24); +db(0x33); +db(0x7c); +db(0x00); +db(0x0b); +db(0x00); +db(0x1c); +db(0x13); +db(0x7c); +db(0x00); +db(0x01); +db(0x00); +db(0x1e); +db(0x4e); +db(0xae); +db(0xfe); +db(0x38); +db(0x4e); +db(0x75); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x93); +db(0xc9); +db(0x4e); +db(0xae); +db(0xfe); +db(0xda); +db(0x20); +db(0x40); +db(0x4b); +db(0xe8); +db(0x00); +db(0x5c); +db(0x43); +db(0xfa); +db(0x0d); +db(0xa5); +db(0x70); +db(0x00); +db(0x4e); +db(0xae); +db(0xfd); +db(0xd8); +db(0x24); +db(0x40); +db(0x20); +db(0x3c); +db(0x00); +db(0x00); +db(0x00); +db(0xb9); +db(0x22); +db(0x3c); +db(0x00); +db(0x01); +db(0x00); +db(0x01); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x26); +db(0x40); +db(0x7c); +db(0x00); +db(0x26); +db(0x86); +db(0x27); +db(0x46); +db(0x00); +db(0x04); +db(0x27); +db(0x46); +db(0x00); +db(0x08); +db(0x27); +db(0x4a); +db(0x00); +db(0xa0); +db(0x50); +db(0xeb); +db(0x00); +db(0x9e); +db(0x93); +db(0xc9); +db(0x4e); +db(0xae); +db(0xfe); +db(0xda); +db(0x27); +db(0x40); +db(0x00); +db(0xb0); +db(0x41); +db(0xfa); +db(0x0c); +db(0x7e); +db(0x70); +db(0x00); +db(0x72); +db(0x00); +db(0x61); +db(0x00); +db(0x02); +db(0xae); +db(0x27); +db(0x40); +db(0x00); +db(0xa4); +db(0x41); +db(0xfa); +db(0x0c); +db(0x7b); +db(0x70); +db(0x00); +db(0x72); +db(0x00); +db(0x61); +db(0x00); +db(0x02); +db(0x9e); +db(0x27); +db(0x40); +db(0x00); +db(0xa8); +db(0x7a); +db(0x00); +db(0x20); +db(0x4d); +db(0x4e); +db(0xae); +db(0xfe); +db(0x80); +db(0x20); +db(0x4d); +db(0x4e); +db(0xae); +db(0xfe); +db(0x8c); +db(0x28); +db(0x40); +db(0x26); +db(0x2c); +db(0x00); +db(0x0a); +db(0x30); +db(0x3c); +db(0xff); +db(0x40); +db(0x61); +db(0x00); +db(0x0c); +db(0x38); +db(0x70); +db(0x00); +db(0x4e); +db(0x90); +db(0x24); +db(0x00); +db(0x70); +db(0x01); +db(0x61); +db(0x00); +db(0xfa); +db(0x04); +db(0x08); +db(0x02); +db(0x00); +db(0x01); +db(0x67); +db(0x06); +db(0x70); +db(0x01); +db(0x61); +db(0x00); +db(0xfb); +db(0x6c); +db(0x60); +db(0x00); +db(0x01); +db(0x2e); +db(0x20); +db(0x4d); +db(0x4e); +db(0xae); +db(0xfe); +db(0x8c); +db(0x28); +db(0x40); +db(0x4a); +db(0x80); +db(0x66); +db(0x10); +db(0x70); +db(0x00); +db(0x12); +db(0x2d); +db(0x00); +db(0x0f); +db(0x03); +db(0xc0); +db(0x08); +db(0xc0); +db(0x00); +db(0x0d); +db(0x4e); +db(0xae); +db(0xfe); +db(0xc2); +db(0x4a); +db(0x2b); +db(0x00); +db(0xad); +db(0x67); +db(0x08); +db(0x61); +db(0x00); +db(0xff); +db(0x0a); +db(0x42); +db(0x2b); +db(0x00); +db(0xad); +db(0x4a); +db(0x2b); +db(0x00); +db(0xac); +db(0x67); +db(0x24); +db(0x30); +db(0x3c); +db(0xff); +db(0x58); +db(0x61); +db(0x00); +db(0x0b); +db(0xe4); +db(0x70); +db(0x01); +db(0x4e); +db(0x90); +db(0x4a); +db(0x80); +db(0x67); +db(0x04); +db(0x61); +db(0x00); +db(0xfb); +db(0xfa); +db(0x42); +db(0x2b); +db(0x00); +db(0xac); +db(0x30); +db(0x3c); +db(0xff); +db(0x58); +db(0x61); +db(0x00); +db(0x0b); +db(0xcc); +db(0x70); +db(0x02); +db(0x4e); +db(0x90); +db(0x20); +db(0x0c); +db(0x67); +db(0x56); +db(0x0c); +db(0x6c); +db(0x00); +db(0x26); +db(0x00); +db(0x12); +db(0x66); +db(0x4e); +db(0x0c); +db(0xac); +db(0x40); +db(0x00); +db(0x00); +db(0x00); +db(0x00); +db(0x14); +db(0x66); +db(0x44); +db(0x0c); +db(0x6c); +db(0x12); +db(0x34); +db(0x00); +db(0x18); +db(0x66); +db(0x3c); +db(0x20); +db(0x6c); +db(0x00); +db(0x1a); +db(0x20); +db(0x28); +db(0x00); +db(0x0c); +db(0x02); +db(0x80); +db(0x80); +db(0x00); +db(0x00); +db(0x08); +db(0x0c); +db(0x80); +db(0x80); +db(0x00); +db(0x00); +db(0x08); +db(0x66); +db(0x1a); +db(0x02); +db(0xa8); +db(0x7f); +db(0xff); +db(0xff); +db(0xff); +db(0x00); +db(0x0c); +db(0x20); +db(0x68); +db(0x00); +db(0x10); +db(0x22); +db(0x4c); +db(0x12); +db(0xbc); +db(0x00); +db(0x08); +db(0x4e); +db(0xae); +db(0xfe); +db(0x92); +db(0x60); +db(0x00); +db(0xff); +db(0x60); +db(0x22); +db(0x4c); +db(0x70); +db(0x26); +db(0x4e); +db(0xae); +db(0xff); +db(0x2e); +db(0x60); +db(0x00); +db(0xff); +db(0x54); +db(0x74); +db(0xfe); +db(0x20); +db(0x0c); +db(0x67); +db(0x14); +db(0x26); +db(0x2c); +db(0x00); +db(0x0a); +db(0x66); +db(0x42); +db(0x74); +db(0xff); +db(0x30); +db(0x3c); +db(0xff); +db(0x50); +db(0x61); +db(0x00); +db(0x0b); +db(0x58); +db(0x70); +db(0x01); +db(0x4e); +db(0x90); +db(0x45); +db(0xeb); +db(0x00); +db(0x04); +db(0x20); +db(0x52); +db(0x20); +db(0x08); +db(0x67); +db(0x00); +db(0xff); +db(0x2e); +db(0x22); +db(0x50); +db(0x20); +db(0x40); +db(0x20); +db(0x28); +db(0x00); +db(0x04); +db(0xb4); +db(0x80); +db(0x66); +db(0x16); +db(0x48); +db(0xe7); +db(0x00); +db(0xc0); +db(0x28); +db(0x68); +db(0x00); +db(0x0a); +db(0x61); +db(0x4a); +db(0x53); +db(0x85); +db(0x4c); +db(0xdf); +db(0x03); +db(0x00); +db(0x24); +db(0x89); +db(0x20); +db(0x49); +db(0x60); +db(0xd8); +db(0x24); +db(0x48); +db(0x20); +db(0x49); +db(0x60); +db(0xd2); +db(0x0c); +db(0x85); +db(0x00); +db(0x00); +db(0x00); +db(0x14); +db(0x65); +db(0x00); +db(0x00); +db(0x0a); +db(0x70); +db(0x01); +db(0x29); +db(0x40); +db(0x00); +db(0x04); +db(0x60); +db(0x12); +db(0x61); +db(0x5e); +db(0x30); +db(0x3c); +db(0xff); +db(0x30); +db(0x61); +db(0x00); +db(0x0b); +db(0x04); +db(0x4e); +db(0x90); +db(0x4a); +db(0x80); +db(0x67); +db(0x0e); +db(0x52); +db(0x85); +db(0x28); +db(0xab); +db(0x00); +db(0x04); +db(0x27); +db(0x4c); +db(0x00); +db(0x04); +db(0x60); +db(0x00); +db(0xfe); +db(0xd6); +db(0x28); +db(0x43); +db(0x61); +db(0x04); +db(0x60); +db(0x00); +db(0xfe); +db(0xce); +db(0x0c); +db(0xac); +db(0x00); +db(0x00); +db(0x00); +db(0x1f); +db(0x00); +db(0x08); +db(0x66); +db(0x04); +db(0x61); +db(0x00); +db(0xfa); +db(0xe2); +db(0x0c); +db(0xac); +db(0x00); +db(0x00); +db(0x04); +db(0x09); +db(0x00); +db(0x08); +db(0x66); +db(0x14); +db(0x61); +db(0x00); +db(0xfb); +db(0x10); +db(0x66); +db(0x0e); +db(0x30); +db(0x3c); +db(0xff); +db(0x58); +db(0x61); +db(0x00); +db(0x0a); +db(0xc2); +db(0x70); +db(0x00); +db(0x4e); +db(0x90); +db(0x60); +db(0xec); +db(0x22); +db(0x54); +db(0x20); +db(0x6c); +db(0x00); +db(0x04); +db(0x29); +db(0x4d); +db(0x00); +db(0x04); +db(0x4e); +db(0xee); +db(0xfe); +db(0x92); +db(0x2f); +db(0x05); +db(0x7a); +db(0xfc); +db(0x24); +db(0x53); +db(0x2e); +db(0x0a); +db(0x22); +db(0x0a); +db(0x67); +db(0x00); +db(0x00); +db(0x0c); +db(0x52); +db(0x85); +db(0x67); +db(0x1e); +db(0x22); +db(0x4a); +db(0x24); +db(0x52); +db(0x60); +db(0xf0); +db(0x52); +db(0x85); +db(0x67); +db(0x3c); +db(0x24); +db(0x47); +db(0x70); +db(0x18); +db(0x72); +db(0x01); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x52); +db(0x46); +db(0x24); +db(0x40); +db(0x24); +db(0x87); +db(0x2e); +db(0x0a); +db(0x60); +db(0xe8); +db(0x20); +db(0x12); +db(0x67); +db(0x24); +db(0x20); +db(0x40); +db(0x20); +db(0x10); +db(0x67); +db(0x1e); +db(0x20); +db(0x40); +db(0x20); +db(0x10); +db(0x67); +db(0x18); +db(0x70); +db(0x00); +db(0x22); +db(0x80); +db(0x22); +db(0x4a); +db(0x24); +db(0x51); +db(0x70); +db(0x18); +db(0x4e); +db(0xae); +db(0xff); +db(0x2e); +db(0x06); +db(0x86); +db(0x00); +db(0x01); +db(0x00); +db(0x00); +db(0x20); +db(0x0a); +db(0x66); +db(0xec); +db(0x26); +db(0x87); +db(0x2a); +db(0x1f); +db(0x4e); +db(0x75); +db(0x20); +db(0x88); +db(0x58); +db(0x90); +db(0x42); +db(0xa8); +db(0x00); +db(0x04); +db(0x21); +db(0x48); +db(0x00); +db(0x08); +db(0x4e); +db(0x75); +db(0x48); +db(0xe7); +db(0x20); +db(0x22); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x70); +db(0xff); +db(0x4e); +db(0xae); +db(0xfe); +db(0xb6); +db(0x91); +db(0xc8); +db(0x24); +db(0x00); +db(0x6b); +db(0x32); +db(0x70); +db(0x22); +db(0x22); +db(0x3c); +db(0x00); +db(0x01); +db(0x00); +db(0x01); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x91); +db(0xc8); +db(0x24); +db(0x40); +db(0x4a); +db(0x80); +db(0x67); +db(0x1e); +db(0x15); +db(0x7c); +db(0x00); +db(0x04); +db(0x00); +db(0x08); +db(0x15); +db(0x42); +db(0x00); +db(0x0f); +db(0x93); +db(0xc9); +db(0x4e); +db(0xae); +db(0xfe); +db(0xda); +db(0x25); +db(0x40); +db(0x00); +db(0x10); +db(0x41); +db(0xea); +db(0x00); +db(0x14); +db(0x61); +db(0x00); +db(0xff); +db(0xb0); +db(0x20); +db(0x4a); +db(0x20); +db(0x08); +db(0x4c); +db(0xdf); +db(0x44); +db(0x04); +db(0x4e); +db(0x75); +db(0x48); +db(0xe7); +db(0x20); +db(0x22); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x4a); +db(0x80); +db(0x67); +db(0x24); +db(0x24); +db(0x40); +db(0x24); +db(0x01); +db(0x66); +db(0x02); +db(0x74); +db(0x30); +db(0x20); +db(0x02); +db(0x22); +db(0x3c); +db(0x00); +db(0x01); +db(0x00); +db(0x01); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x20); +db(0x40); +db(0x11); +db(0x7c); +db(0x00); +db(0x0a); +db(0x00); +db(0x08); +db(0x31); +db(0x42); +db(0x00); +db(0x12); +db(0x21); +db(0x4a); +db(0x00); +db(0x0e); +db(0x4a); +db(0x80); +db(0x4c); +db(0xdf); +db(0x44); +db(0x04); +db(0x4e); +db(0x75); +db(0x48); +db(0xe7); +db(0x30); +db(0x22); +db(0x24); +db(0x48); +db(0x24); +db(0x00); +db(0x26); +db(0x01); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x61); +db(0x00); +db(0xff); +db(0x6a); +db(0x22); +db(0x03); +db(0x61); +db(0x00); +db(0xff); +db(0xb2); +db(0x67); +db(0x18); +db(0x20); +db(0x4a); +db(0x22); +db(0x40); +db(0x24); +db(0x40); +db(0x20); +db(0x02); +db(0x72); +db(0x00); +db(0x4e); +db(0xae); +db(0xfe); +db(0x44); +db(0x22); +db(0x00); +db(0x70); +db(0x00); +db(0x4a); +db(0x81); +db(0x66); +db(0x02); +db(0x20); +db(0x0a); +db(0x4a); +db(0x80); +db(0x4c); +db(0xdf); +db(0x44); +db(0x0c); +db(0x4e); +db(0x75); +db(0x48); +db(0xe7); +db(0x38); +db(0x32); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x28); +db(0x00); +db(0x24); +db(0x08); +db(0x26); +db(0x09); +db(0x20); +db(0x3c); +db(0x00); +db(0x00); +db(0x08); +db(0x5c); +db(0x22); +db(0x3c); +db(0x00); +db(0x01); +db(0x00); +db(0x01); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x4a); +db(0x80); +db(0x67); +db(0x00); +db(0x00); +db(0x34); +db(0x24); +db(0x40); +db(0x15); +db(0x7c); +db(0x00); +db(0x01); +db(0x00); +db(0x08); +db(0x15); +db(0x44); +db(0x00); +db(0x09); +db(0x25); +db(0x42); +db(0x00); +db(0x0a); +db(0x47); +db(0xea); +db(0x00); +db(0x5c); +db(0x25); +db(0x4b); +db(0x00); +db(0x3a); +db(0x47); +db(0xeb); +db(0x08); +db(0x00); +db(0x25); +db(0x4b); +db(0x00); +db(0x3e); +db(0x25); +db(0x4b); +db(0x00); +db(0x36); +db(0x22); +db(0x4a); +db(0x24); +db(0x43); +db(0x97); +db(0xcb); +db(0x24); +db(0x09); +db(0x4e); +db(0xae); +db(0xfe); +db(0xe6); +db(0x20); +db(0x02); +db(0x4c); +db(0xdf); +db(0x4c); +db(0x1c); +db(0x4e); +db(0x75); +db(0x41); +db(0xfa); +db(0x09); +db(0xc0); +db(0x43); +db(0xfa); +db(0x01); +db(0x30); +db(0x70); +db(0x13); +db(0x61); +db(0x00); +db(0xff); +db(0x98); +db(0x4e); +db(0x75); +db(0x22); +db(0x6d); +db(0x02); +db(0x0c); +db(0x33); +db(0x7c); +db(0x00); +db(0x0a); +db(0x00); +db(0x1c); +db(0x13); +db(0x7c); +db(0x00); +db(0x01); +db(0x00); +db(0x1e); +db(0x4e); +db(0xae); +db(0xfe); +db(0x38); +db(0x22); +db(0x6d); +db(0x02); +db(0x0c); +db(0x25); +db(0x69); +db(0x00); +db(0x20); +db(0x00); +db(0x0e); +db(0x25); +db(0x69); +db(0x00); +db(0x24); +db(0x00); +db(0x12); +db(0x22); +db(0x6d); +db(0x02); +db(0x08); +db(0x13); +db(0x7c); +db(0x00); +db(0x01); +db(0x00); +db(0x1e); +db(0x4e); +db(0xae); +db(0xfe); +db(0x38); +db(0x4e); +db(0x75); +db(0x42); +db(0xaa); +db(0x00); +db(0x0e); +db(0x42); +db(0xaa); +db(0x00); +db(0x12); +db(0x22); +db(0x6d); +db(0x02); +db(0x08); +db(0x13); +db(0x7c); +db(0x00); +db(0x01); +db(0x00); +db(0x1e); +db(0x4e); +db(0xae); +db(0xfe); +db(0x38); +db(0x4e); +db(0x75); +db(0x48); +db(0xe7); +db(0xf8); +db(0xfe); +db(0x2a); +db(0x48); +db(0x95); +db(0xca); +db(0x97); +db(0xcb); +db(0x99); +db(0xcc); +db(0x78); +db(0x00); +db(0x2c); +db(0x6d); +db(0x00); +db(0x18); +db(0x20); +db(0x6d); +db(0x00); +db(0x14); +db(0x20); +db(0x28); +db(0x00); +db(0x3c); +db(0x67); +db(0x5c); +db(0x20); +db(0x40); +db(0x41); +db(0xe8); +db(0x00); +db(0x2c); +db(0x28); +db(0x48); +db(0x4e); +db(0xae); +db(0xfc); +db(0xe8); +db(0x72); +db(0xff); +db(0x74); +db(0xff); +db(0xb2); +db(0x80); +db(0x67); +db(0x48); +db(0x26); +db(0x00); +db(0x2c); +db(0x6d); +db(0x00); +db(0x14); +db(0x41); +db(0xed); +db(0x00); +db(0xc0); +db(0x70); +db(0x66); +db(0x4e); +db(0xae); +db(0xff); +db(0x7c); +db(0x41); +db(0xed); +db(0x00); +db(0xc0); +db(0x38); +db(0x28); +db(0x00); +db(0x64); +db(0x2c); +db(0x6d); +db(0x00); +db(0x18); +db(0x91); +db(0xc8); +db(0x43); +db(0xed); +db(0x00); +db(0x38); +db(0x70); +db(0x00); +db(0x30); +db(0x3c); +db(0x00); +db(0x58); +db(0x22); +db(0x3c); +db(0x80); +db(0x00); +db(0x10); +db(0x00); +db(0x24); +db(0x03); +db(0x4e); +db(0xae); +db(0xfd); +db(0x0c); +db(0x72); +db(0xff); +db(0x74); +db(0xff); +db(0x4a); +db(0x80); +db(0x6b); +db(0x0c); +db(0x45); +db(0xed); +db(0x00); +db(0x38); +db(0x22); +db(0x2a); +db(0x00); +db(0x32); +db(0x24); +db(0x2a); +db(0x00); +db(0x36); +db(0x20); +db(0x2c); +db(0x00); +db(0x1c); +db(0xb8); +db(0x6d); +db(0x00); +db(0x2c); +db(0x66); +db(0x12); +db(0xb0); +db(0xad); +db(0x00); +db(0x28); +db(0x66); +db(0x0c); +db(0xb2); +db(0xad); +db(0x00); +db(0x20); +db(0x66); +db(0x06); +db(0xb4); +db(0xad); +db(0x00); +db(0x24); +db(0x67); +db(0x40); +db(0x2b); +db(0x40); +db(0x00); +db(0x28); +db(0x2b); +db(0x41); +db(0x00); +db(0x20); +db(0x2b); +db(0x42); +db(0x00); +db(0x24); +db(0x3b); +db(0x44); +db(0x00); +db(0x2c); +db(0x91); +db(0xc8); +db(0x43); +db(0xed); +db(0x00); +db(0x90); +db(0x70); +db(0x00); +db(0x30); +db(0x3c); +db(0x00); +db(0x58); +db(0x22); +db(0x3c); +db(0x80); +db(0x00); +db(0x00); +db(0x00); +db(0x24); +db(0x03); +db(0x4e); +db(0xae); +db(0xfd); +db(0x0c); +db(0x4a); +db(0x80); +db(0x6b); +db(0x04); +db(0x47); +db(0xed); +db(0x00); +db(0x90); +db(0x34); +db(0x2d); +db(0x00); +db(0x2c); +db(0x30); +db(0x3c); +db(0xff); +db(0x38); +db(0x72); +db(0x01); +db(0x61); +db(0x00); +db(0x07); +db(0xf8); +db(0x4e); +db(0x90); +db(0x4c); +db(0xdf); +db(0x7f); +db(0x1f); +db(0x4e); +db(0x75); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x3e); +db(0x2e); +db(0x00); +db(0x14); +db(0x70); +db(0xff); +db(0x4e); +db(0xae); +db(0xfe); +db(0xb6); +db(0x7c); +db(0x00); +db(0x01); +db(0xc6); +db(0x93); +db(0xc9); +db(0x4e); +db(0xae); +db(0xfe); +db(0xda); +db(0x28); +db(0x40); +db(0x70); +db(0x14); +db(0x22); +db(0x4c); +db(0x4e); +db(0xae); +db(0xfe); +db(0xd4); +db(0x70); +db(0x00); +db(0x30); +db(0x3c); +db(0x02); +db(0x3c); +db(0x22); +db(0x3c); +db(0x00); +db(0x01); +db(0x00); +db(0x01); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x2a); +db(0x40); +db(0x47); +db(0xed); +db(0x00); +db(0x16); +db(0x27); +db(0x4e); +db(0x00); +db(0x10); +db(0x27); +db(0x4c); +db(0x00); +db(0x08); +db(0x27); +db(0x46); +db(0x00); +db(0x0c); +db(0x70); +db(0xff); +db(0x37); +db(0x40); +db(0x00); +db(0x00); +db(0x30); +db(0x3c); +db(0xff); +db(0x38); +db(0x72); +db(0x05); +db(0x61); +db(0x00); +db(0x07); +db(0x9c); +db(0x20); +db(0x0d); +db(0x06); +db(0x80); +db(0x00); +db(0x00); +db(0x02); +db(0x10); +db(0x4e); +db(0x90); +db(0x43); +db(0xed); +db(0x00); +db(0x00); +db(0x13); +db(0x7c); +db(0x00); +db(0x02); +db(0x00); +db(0x08); +db(0x13); +db(0x7c); +db(0x00); +db(0x05); +db(0x00); +db(0x09); +db(0x41); +db(0xfa); +db(0x08); +db(0x1c); +db(0x23); +db(0x48); +db(0x00); +db(0x0a); +db(0x41); +db(0xfa); +db(0x02); +db(0xf4); +db(0x23); +db(0x48); +db(0x00); +db(0x12); +db(0x23); +db(0x4d); +db(0x00); +db(0x0e); +db(0x70); +db(0x05); +db(0x4e); +db(0xae); +db(0xff); +db(0x58); +db(0x20); +db(0x06); +db(0x4e); +db(0xae); +db(0xfe); +db(0xc2); +db(0x70); +db(0x00); +db(0x53); +db(0xab); +db(0x00); +db(0x1c); +db(0x6a); +db(0x06); +db(0x70); +db(0x0a); +db(0x27); +db(0x40); +db(0x00); +db(0x1c); +db(0x4a); +db(0xab); +db(0x00); +db(0x14); +db(0x66); +db(0x16); +db(0x4a); +db(0xab); +db(0x00); +db(0x1c); +db(0x66); +db(0xe0); +db(0x43); +db(0xfa); +db(0x08); +db(0x49); +db(0x70); +db(0x00); +db(0x4e); +db(0xae); +db(0xfd); +db(0xd8); +db(0x27); +db(0x40); +db(0x00); +db(0x14); +db(0x67); +db(0xd0); +db(0x4a); +db(0xab); +db(0x00); +db(0x18); +db(0x66); +db(0x18); +db(0x4a); +db(0xab); +db(0x00); +db(0x1c); +db(0x66); +db(0xc4); +db(0x43); +db(0xfa); +db(0x08); +db(0x3f); +db(0x70); +db(0x00); +db(0x4e); +db(0xae); +db(0xfd); +db(0xd8); +db(0x27); +db(0x40); +db(0x00); +db(0x18); +db(0x67); +db(0x00); +db(0xff); +db(0xb4); +db(0x4a); +db(0xad); +db(0x02); +db(0x08); +db(0x66); +db(0x38); +db(0x4a); +db(0xab); +db(0x00); +db(0x1c); +db(0x66); +db(0xa6); +db(0x4e); +db(0xae); +db(0xff); +db(0x7c); +db(0x41); +db(0xee); +db(0x01); +db(0x5e); +db(0x43); +db(0xfa); +db(0x07); +db(0x10); +db(0x4e); +db(0xae); +db(0xfe); +db(0xec); +db(0x24); +db(0x00); +db(0x4e); +db(0xae); +db(0xff); +db(0x76); +db(0x4a); +db(0x82); +db(0x67); +db(0x8c); +db(0x41); +db(0xfa); +db(0x06); +db(0xfe); +db(0x70); +db(0x00); +db(0x72); +db(0x00); +db(0x61); +db(0x00); +db(0xfd); +db(0x2e); +db(0x2b); +db(0x40); +db(0x02); +db(0x08); +db(0x67); +db(0x00); +db(0x02); +db(0x32); +db(0x60); +db(0x00); +db(0xff); +db(0x76); +db(0x4a); +db(0xad); +db(0x02); +db(0x0c); +db(0x66); +db(0x48); +db(0x4a); +db(0xab); +db(0x00); +db(0x1c); +db(0x66); +db(0x00); +db(0xff); +db(0x68); +db(0x4e); +db(0xae); +db(0xff); +db(0x7c); +db(0x41); +db(0xee); +db(0x01); +db(0x5e); +db(0x43); +db(0xfa); +db(0x06); +db(0xdd); +db(0x4e); +db(0xae); +db(0xfe); +db(0xec); +db(0x24); +db(0x00); +db(0x4e); +db(0xae); +db(0xff); +db(0x76); +db(0x4a); +db(0x82); +db(0x67); +db(0x00); +db(0xff); +db(0x4c); +db(0x41); +db(0xfa); +db(0x06); +db(0xc9); +db(0x70); +db(0x00); +db(0x72); +db(0x00); +db(0x61); +db(0x00); +db(0xfc); +db(0xec); +db(0x2b); +db(0x40); +db(0x02); +db(0x0c); +db(0x67); +db(0x00); +db(0x01); +db(0xf0); +db(0x30); +db(0x3c); +db(0xff); +db(0x38); +db(0x72); +db(0x00); +db(0x61); +db(0x00); +db(0x06); +db(0x94); +db(0x4e); +db(0x90); +db(0x60); +db(0x00); +db(0xff); +db(0x28); +db(0x0c); +db(0x47); +db(0x00); +db(0x24); +db(0x65); +db(0x12); +db(0x53); +db(0xab); +db(0x00); +db(0x34); +db(0x6a); +db(0x0c); +db(0x20); +db(0x4b); +db(0x61); +db(0x00); +db(0xfd); +db(0xb4); +db(0x70); +db(0x32); +db(0x27); +db(0x40); +db(0x00); +db(0x34); +db(0x22); +db(0x6d); +db(0x02); +db(0x08); +db(0x45); +db(0xed); +db(0x01); +db(0x3c); +db(0x33); +db(0x7c); +db(0x00); +db(0x0b); +db(0x00); +db(0x1c); +db(0x23); +db(0x7c); +db(0x00); +db(0x00); +db(0x00); +db(0x16); +db(0x00); +db(0x24); +db(0x23); +db(0x4a); +db(0x00); +db(0x28); +db(0x10); +db(0x2d); +db(0x02); +db(0x10); +db(0x0c); +db(0x47); +db(0x00); +db(0x27); +db(0x65); +db(0x00); +db(0x01); +db(0x52); +db(0x08); +db(0x00); +db(0x00); +db(0x01); +db(0x67); +db(0x00); +db(0x01); +db(0x4a); +db(0x41); +db(0xed); +db(0x01); +db(0x68); +db(0x25); +db(0x48); +db(0x00); +db(0x0a); +db(0x15); +db(0x7c); +db(0x00); +db(0x13); +db(0x00); +db(0x04); +db(0x15); +db(0x7c); +db(0x00); +db(0x03); +db(0x00); +db(0x05); +db(0x42); +db(0x90); +db(0x42); +db(0xa8); +db(0x00); +db(0x04); +db(0x42); +db(0xa8); +db(0x00); +db(0x08); +db(0x42); +db(0x68); +db(0x00); +db(0x0c); +db(0x42); +db(0x6a); +db(0x00); +db(0x06); +db(0x61); +db(0x00); +db(0x01); +db(0x72); +db(0x31); +db(0x6d); +db(0x02); +db(0x1a); +db(0x00); +db(0x0e); +db(0x42); +db(0x68); +db(0x00); +db(0x10); +db(0x31); +db(0x6d); +db(0x02); +db(0x1c); +db(0x00); +db(0x12); +db(0x42); +db(0x68); +db(0x00); +db(0x14); +db(0x31); +db(0x6d); +db(0x02); +db(0x14); +db(0x00); +db(0x16); +db(0x42); +db(0x68); +db(0x00); +db(0x18); +db(0x31); +db(0x6d); +db(0x02); +db(0x16); +db(0x00); +db(0x1a); +db(0x43); +db(0xed); +db(0x01); +db(0x88); +db(0x21); +db(0x49); +db(0x00); +db(0x1c); +db(0x22); +db(0xfc); +db(0x80); +db(0x03); +db(0xa0); +db(0x06); +db(0x30); +db(0x2d); +db(0x02); +db(0x30); +db(0x48); +db(0xc0); +db(0xe1); +db(0x80); +db(0x22); +db(0xc0); +db(0x22); +db(0xfc); +db(0x80); +db(0x03); +db(0xa0); +db(0x07); +db(0x22); +db(0xed); +db(0x02); +db(0x32); +db(0x70); +db(0x00); +db(0x30); +db(0x2d); +db(0x02); +db(0x20); +db(0x6b); +db(0x08); +db(0x22); +db(0xfc); +db(0x80); +db(0x03); +db(0xa0); +db(0x09); +db(0x22); +db(0xc0); +db(0x30); +db(0x2d); +db(0x02); +db(0x22); +db(0x6b); +db(0x08); +db(0x22); +db(0xfc); +db(0x80); +db(0x03); +db(0xa0); +db(0x0a); +db(0x22); +db(0xc0); +db(0x30); +db(0x2d); +db(0x02); +db(0x18); +db(0x6b); +db(0x14); +db(0x22); +db(0xfc); +db(0x80); +db(0x03); +db(0xa0); +db(0x02); +db(0x22); +db(0xc0); +db(0x30); +db(0x2d); +db(0x02); +db(0x1e); +db(0x22); +db(0xfc); +db(0x80); +db(0x03); +db(0xa0); +db(0x01); +db(0x22); +db(0xc0); +db(0x30); +db(0x2d); +db(0x02); +db(0x24); +db(0x6b); +db(0x10); +db(0x22); +db(0xfc); +db(0x80); +db(0x03); +db(0xa0); +db(0x03); +db(0x30); +db(0x2d); +db(0x02); +db(0x2a); +db(0x48); +db(0xc0); +db(0xe1); +db(0x80); +db(0x22); +db(0xc0); +db(0x30); +db(0x2d); +db(0x02); +db(0x26); +db(0x6b); +db(0x10); +db(0x22); +db(0xfc); +db(0x80); +db(0x03); +db(0xa0); +db(0x04); +db(0x30); +db(0x2d); +db(0x02); +db(0x2c); +db(0x48); +db(0xc0); +db(0xe1); +db(0x80); +db(0x22); +db(0xc0); +db(0x30); +db(0x2d); +db(0x02); +db(0x28); +db(0x6b); +db(0x10); +db(0x22); +db(0xfc); +db(0x80); +db(0x03); +db(0xa0); +db(0x05); +db(0x30); +db(0x2d); +db(0x02); +db(0x2e); +db(0x48); +db(0xc0); +db(0xe1); +db(0x80); +db(0x22); +db(0xc0); +db(0x70); +db(0x00); +db(0x30); +db(0x2d); +db(0x02); +db(0x36); +db(0x6b); +db(0x08); +db(0x22); +db(0xfc); +db(0x80); +db(0x03); +db(0xa0); +db(0x08); +db(0x22); +db(0xc0); +db(0x42); +db(0x91); +db(0x61); +db(0x00); +db(0xfc); +db(0x68); +db(0x36); +db(0x3c); +db(0x00); +db(0x68); +db(0x74); +db(0x01); +db(0x28); +db(0x2d); +db(0x02); +db(0x32); +db(0x20); +db(0x04); +db(0xc0); +db(0x82); +db(0x22); +db(0x2b); +db(0x00); +db(0x04); +db(0xc2); +db(0x82); +db(0xb2); +db(0x80); +db(0x67); +db(0x22); +db(0x42); +db(0x92); +db(0x35); +db(0x7c); +db(0x02); +db(0x00); +db(0x00); +db(0x04); +db(0x42); +db(0xaa); +db(0x00); +db(0x0a); +db(0x32); +db(0x03); +db(0x4a); +db(0x00); +db(0x66); +db(0x04); +db(0x08); +db(0xc1); +db(0x00); +db(0x07); +db(0x35); +db(0x41); +db(0x00); +db(0x06); +db(0x42); +db(0x6a); +db(0x00); +db(0x08); +db(0x61); +db(0x00); +db(0xfc); +db(0x2e); +db(0x52); +db(0x43); +db(0xd4); +db(0x42); +db(0x0c); +db(0x42); +db(0x00); +db(0x08); +db(0x66); +db(0xc6); +db(0x27); +db(0x44); +db(0x00); +db(0x04); +db(0x10); +db(0x2d); +db(0x02); +db(0x10); +db(0x08); +db(0x00); +db(0x00); +db(0x00); +db(0x67); +db(0x00); +db(0xfd); +db(0x8e); +db(0x42); +db(0x92); +db(0x35); +db(0x7c); +db(0x04); +db(0x00); +db(0x00); +db(0x04); +db(0x42); +db(0x6a); +db(0x00); +db(0x06); +db(0x61); +db(0x00); +db(0x00); +db(0x38); +db(0x20); +db(0x6b); +db(0x00); +db(0x14); +db(0x30); +db(0x2d); +db(0x02); +db(0x38); +db(0x32); +db(0x28); +db(0x00); +db(0x30); +db(0xd2); +db(0x41); +db(0x90); +db(0x41); +db(0x6a); +db(0x02); +db(0x70); +db(0x00); +db(0x35); +db(0x40); +db(0x00); +db(0x0a); +db(0x30); +db(0x2d); +db(0x02); +db(0x3a); +db(0x32); +db(0x28); +db(0x00); +db(0x2e); +db(0xd2); +db(0x41); +db(0x90); +db(0x41); +db(0x6a); +db(0x02); +db(0x70); +db(0x00); +db(0x35); +db(0x40); +db(0x00); +db(0x0c); +db(0x61); +db(0x00); +db(0xfb); +db(0xa0); +db(0x60); +db(0x00); +db(0xfd); +db(0x4a); +db(0x4e); +db(0x75); +db(0x22); +db(0x2d); +db(0x02); +db(0x32); +db(0x70); +db(0x00); +db(0x08); +db(0x01); +db(0x00); +db(0x00); +db(0x67); +db(0x04); +db(0x08); +db(0xc0); +db(0x00); +db(0x0e); +db(0x08); +db(0x01); +db(0x00); +db(0x01); +db(0x67); +db(0x04); +db(0x08); +db(0xc0); +db(0x00); +db(0x0d); +db(0x08); +db(0x01); +db(0x00); +db(0x02); +db(0x67); +db(0x04); +db(0x08); +db(0xc0); +db(0x00); +db(0x0c); +db(0x35); +db(0x40); +db(0x00); +db(0x08); +db(0x4e); +db(0x75); +db(0x4a); +db(0xa9); +db(0x02); +db(0x08); +db(0x67); +db(0x14); +db(0x4a); +db(0xa9); +db(0x02); +db(0x0c); +db(0x67); +db(0x0e); +db(0x30); +db(0x29); +db(0x02); +db(0x12); +db(0xb0); +db(0x69); +db(0x00); +db(0x16); +db(0x67); +db(0x14); +db(0x33); +db(0x40); +db(0x00); +db(0x16); +db(0x2c); +db(0x69); +db(0x00); +db(0x26); +db(0x20); +db(0x29); +db(0x00); +db(0x22); +db(0x22); +db(0x69); +db(0x00); +db(0x1e); +db(0x4e); +db(0xae); +db(0xfe); +db(0xbc); +db(0x53); +db(0x69); +db(0x00); +db(0x46); +db(0x6a); +db(0x12); +db(0x33); +db(0x7c); +db(0x00); +db(0x32); +db(0x00); +db(0x46); +db(0x30); +db(0x3c); +db(0xff); +db(0x38); +db(0x72); +db(0x02); +db(0x61); +db(0x00); +db(0x04); +db(0x44); +db(0x4e); +db(0x90); +db(0x41); +db(0xf9); +db(0x00); +db(0xdf); +db(0xf0); +db(0x00); +db(0x70); +db(0x00); +db(0x4e); +db(0x75); +db(0x48); +db(0xe7); +db(0x00); +db(0x06); +db(0x30); +db(0x3c); +db(0xff); +db(0x38); +db(0x72); +db(0x11); +db(0x61); +db(0x00); +db(0x04); +db(0x2a); +db(0x4e); +db(0x90); +db(0x08); +db(0x00); +db(0x00); +db(0x00); +db(0x67); +db(0x42); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x20); +db(0x3c); +db(0x00); +db(0x00); +db(0x00); +db(0x88); +db(0x22); +db(0x3c); +db(0x00); +db(0x01); +db(0x00); +db(0x01); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x4a); +db(0x80); +db(0x67); +db(0x00); +db(0x00); +db(0x40); +db(0x2a); +db(0x40); +db(0x2b); +db(0x4e); +db(0x00); +db(0x14); +db(0x30); +db(0x3c); +db(0xff); +db(0x38); +db(0x72); +db(0x0e); +db(0x61); +db(0x00); +db(0x03); +db(0xf8); +db(0x20); +db(0x0d); +db(0x4e); +db(0x90); +db(0x41); +db(0xfa); +db(0x04); +db(0x78); +db(0x43); +db(0xfa); +db(0x01); +db(0x12); +db(0x70); +db(0xf6); +db(0x22); +db(0x3c); +db(0x00); +db(0x00); +db(0x27); +db(0x10); +db(0x61); +db(0x00); +db(0xee); +db(0x14); +db(0x70); +db(0x00); +db(0x4c); +db(0xdf); +db(0x60); +db(0x00); +db(0x4e); +db(0x75); +db(0x30); +db(0x3c); +db(0xff); +db(0x38); +db(0x72); +db(0x0a); +db(0x61); +db(0x00); +db(0x03); +db(0xce); +db(0x4e); +db(0x90); +db(0x4e); +db(0x75); +db(0x61); +db(0xf0); +db(0x20); +db(0x0d); +db(0x67); +db(0x1c); +db(0x2c); +db(0x6d); +db(0x00); +db(0x14); +db(0x20); +db(0x2d); +db(0x00); +db(0x18); +db(0x67); +db(0x06); +db(0x22); +db(0x40); +db(0x4e); +db(0xae); +db(0xfe); +db(0x62); +db(0x22); +db(0x4d); +db(0x20); +db(0x3c); +db(0x00); +db(0x00); +db(0x00); +db(0x88); +db(0x4e); +db(0xae); +db(0xff); +db(0x2e); +db(0x70); +db(0x00); +db(0x4e); +db(0x75); +db(0x48); +db(0xe7); +db(0x38); +db(0x3e); +db(0x2c); +db(0x6d); +db(0x00); +db(0x18); +db(0x41); +db(0xfa); +db(0x04); +db(0x06); +db(0x22); +db(0x08); +db(0x24); +db(0x3c); +db(0x00); +db(0x00); +db(0x03); +db(0xed); +db(0x4e); +db(0xae); +db(0xff); +db(0xe2); +db(0x28); +db(0x00); +db(0x67); +db(0x4c); +db(0x45); +db(0xed); +db(0x00); +db(0x68); +db(0x42); +db(0x92); +db(0x34); +db(0xaa); +db(0x00); +db(0x02); +db(0x24); +db(0x0a); +db(0x54); +db(0x82); +db(0x76); +db(0x02); +db(0x22); +db(0x04); +db(0x4e); +db(0xae); +db(0xff); +db(0xd6); +db(0xb6); +db(0x80); +db(0x66); +db(0x32); +db(0x0c); +db(0x92); +db(0x50); +db(0x4e); +db(0x54); +db(0x52); +db(0x66); +db(0xe4); +db(0x24); +db(0x0a); +db(0x76); +db(0x04); +db(0x22); +db(0x04); +db(0x4e); +db(0xae); +db(0xff); +db(0xd6); +db(0x24); +db(0x0a); +db(0x76); +db(0x20); +db(0x22); +db(0x04); +db(0x4e); +db(0xae); +db(0xff); +db(0xd6); +db(0xb6); +db(0x80); +db(0x66); +db(0x12); +db(0x4a); +db(0x6a); +db(0x00); +db(0x10); +db(0x66); +db(0xc4); +db(0x30); +db(0x3c); +db(0xff); +db(0x38); +db(0x72); +db(0x10); +db(0x61); +db(0x00); +db(0x03); +db(0x3e); +db(0x4e); +db(0x90); +db(0x22); +db(0x04); +db(0x67); +db(0x04); +db(0x4e); +db(0xae); +db(0xff); +db(0xdc); +db(0x4c); +db(0xdf); +db(0x7c); +db(0x1c); +db(0x4e); +db(0x75); +db(0x2c); +db(0x6d); +db(0x00); +db(0x18); +db(0x41); +db(0xfa); +db(0x03); +db(0x7e); +db(0x22); +db(0x08); +db(0x74); +db(0xfe); +db(0x4e); +db(0xae); +db(0xff); +db(0xac); +db(0x22); +db(0x00); +db(0x67); +db(0x34); +db(0x4e); +db(0xae); +db(0xff); +db(0xa6); +db(0x2c); +db(0x6d); +db(0x00); +db(0x14); +db(0x45); +db(0xed); +db(0x00); +db(0x38); +db(0x70); +db(0xff); +db(0x4e); +db(0xae); +db(0xfe); +db(0xb6); +db(0x15); +db(0x40); +db(0x00); +db(0x14); +db(0x41); +db(0xfa); +db(0x03); +db(0x6e); +db(0x24); +db(0x88); +db(0x25); +db(0x7c); +db(0x00); +db(0x00); +db(0x00); +db(0x12); +db(0x00); +db(0x0c); +db(0x25); +db(0x6d); +db(0x00); +db(0x08); +db(0x00); +db(0x10); +db(0x2c); +db(0x6d); +db(0x00); +db(0x18); +db(0x22); +db(0x0a); +db(0x4e); +db(0xae); +db(0xfc); +db(0x88); +db(0x2c); +db(0x6d); +db(0x00); +db(0x14); +db(0x4e); +db(0x75); +db(0x00); +db(0x00); +db(0x00); +db(0x10); +db(0x00); +db(0x00); +db(0x00); +db(0x00); +db(0x30); +db(0x3c); +db(0xff); +db(0x38); +db(0x72); +db(0x0d); +db(0x61); +db(0x00); +db(0x02); +db(0xce); +db(0x4e); +db(0x90); +db(0x4a); +db(0x80); +db(0x67); +db(0x00); +db(0xfe); +db(0xfe); +db(0x2a); +db(0x40); +db(0x2c); +db(0x6d); +db(0x00); +db(0x14); +db(0x93); +db(0xc9); +db(0x4e); +db(0xae); +db(0xfe); +db(0xda); +db(0x2b); +db(0x40); +db(0x00); +db(0x08); +db(0x43); +db(0xfa); +db(0x03); +db(0xab); +db(0x70); +db(0x00); +db(0x4e); +db(0xae); +db(0xfd); +db(0xd8); +db(0x2b); +db(0x40); +db(0x00); +db(0x18); +db(0x67); +db(0x00); +db(0xfe); +db(0xdc); +db(0x2c); +db(0x40); +db(0x72); +db(0x32); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x41); +db(0xfa); +db(0x02); +db(0xd4); +db(0x22); +db(0x08); +db(0x74); +db(0xfe); +db(0x4e); +db(0xae); +db(0xff); +db(0xac); +db(0x4a); +db(0x80); +db(0x67); +db(0xea); +db(0x22); +db(0x00); +db(0x4e); +db(0xae); +db(0xff); +db(0xa6); +db(0x72); +db(0x32); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x41); +db(0xfa); +db(0x02); +db(0xbe); +db(0x22); +db(0x08); +db(0x74); +db(0xfe); +db(0x4e); +db(0xae); +db(0xff); +db(0xac); +db(0x4a); +db(0x80); +db(0x67); +db(0x00); +db(0xfe); +db(0xa6); +db(0x22); +db(0x00); +db(0x4e); +db(0xae); +db(0xff); +db(0xa6); +db(0x2c); +db(0x6d); +db(0x00); +db(0x14); +db(0x61); +db(0x00); +db(0xf8); +db(0x20); +db(0x72); +db(0x00); +db(0x32); +db(0x3c); +db(0x00); +db(0x34); +db(0x61); +db(0x00); +db(0xf8); +db(0x64); +db(0x28); +db(0x40); +db(0x4a); +db(0x80); +db(0x67); +db(0x00); +db(0xfe); +db(0x86); +db(0x70); +db(0x00); +db(0x08); +db(0xc0); +db(0x00); +db(0x0d); +db(0x4e); +db(0xae); +db(0xfe); +db(0xc2); +db(0x72); +db(0x00); +db(0x20); +db(0x2d); +db(0x00); +db(0x0c); +db(0x41); +db(0xfa); +db(0x02); +db(0x97); +db(0x22); +db(0x4c); +db(0x4e); +db(0xae); +db(0xfe); +db(0x44); +db(0x4a); +db(0x80); +db(0x66); +db(0xe2); +db(0x20); +db(0x6c); +db(0x00); +db(0x14); +db(0x0c); +db(0x68); +db(0x00); +db(0x25); +db(0x00); +db(0x14); +db(0x64); +db(0x0c); +db(0x61); +db(0x00); +db(0xfe); +db(0x4a); +db(0x70); +db(0x00); +db(0x4e); +db(0xae); +db(0xfe); +db(0xc2); +db(0x60); +db(0xf8); +db(0x61); +db(0x00); +db(0xfe); +db(0xe8); +db(0x41); +db(0xed); +db(0x00); +db(0x1c); +db(0x29); +db(0x48); +db(0x00); +db(0x28); +db(0x70); +db(0x01); +db(0x29); +db(0x40); +db(0x00); +db(0x24); +db(0x39); +db(0x7c); +db(0x00); +db(0x0c); +db(0x00); +db(0x1c); +db(0x2b); +db(0x4d); +db(0x00); +db(0x2c); +db(0x41); +db(0xfa); +db(0x01); +db(0x60); +db(0x2b); +db(0x48); +db(0x00); +db(0x24); +db(0x22); +db(0x4c); +db(0x4e); +db(0xae); +db(0xfe); +db(0x38); +db(0x30); +db(0x3c); +db(0xff); +db(0x38); +db(0x72); +db(0x0f); +db(0x61); +db(0x00); +db(0x01); +db(0xe4); +db(0x4e); +db(0x90); +db(0x4a); +db(0xad); +db(0x00); +db(0x00); +db(0x66); +db(0x1c); +db(0x70); +db(0x00); +db(0x74); +db(0x00); +db(0x14); +db(0x2d); +db(0x00); +db(0x4c); +db(0x05); +db(0xc0); +db(0x08); +db(0xc0); +db(0x00); +db(0x0d); +db(0x4e); +db(0xae); +db(0xfe); +db(0xc2); +db(0x05); +db(0x00); +db(0x67); +db(0x06); +db(0x61); +db(0x00); +db(0xfe); +db(0x20); +db(0x60); +db(0xe4); +db(0x20); +db(0x2d); +db(0x00); +db(0x00); +db(0x67); +db(0x00); +db(0x00); +db(0x76); +db(0x72); +db(0x01); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x2b); +db(0x40); +db(0x00); +db(0x04); +db(0x30); +db(0x3c); +db(0xff); +db(0x38); +db(0x72); +db(0x0c); +db(0x61); +db(0x00); +db(0x01); +db(0xa4); +db(0x4e); +db(0x90); +db(0x4a); +db(0x80); +db(0x67); +db(0x40); +db(0x4a); +db(0xad); +db(0x00); +db(0x04); +db(0x67); +db(0x3a); +db(0x39); +db(0x7c); +db(0x00); +db(0x03); +db(0x00); +db(0x1c); +db(0x42); +db(0x2c); +db(0x00); +db(0x1f); +db(0x42); +db(0xac); +db(0x00); +db(0x20); +db(0x29); +db(0x6d); +db(0x00); +db(0x00); +db(0x00); +db(0x24); +db(0x29); +db(0x6d); +db(0x00); +db(0x04); +db(0x00); +db(0x28); +db(0x42); +db(0xac); +db(0x00); +db(0x2c); +db(0x42); +db(0xac); +db(0x00); +db(0x30); +db(0x22); +db(0x4c); +db(0x4e); +db(0xae); +db(0xfe); +db(0x38); +db(0x2b); +db(0x6c); +db(0x00); +db(0x30); +db(0x00); +db(0x10); +db(0x39); +db(0x7c); +db(0x00); +db(0x04); +db(0x00); +db(0x1c); +db(0x22); +db(0x4c); +db(0x4e); +db(0xae); +db(0xfe); +db(0x38); +db(0x20); +db(0x2d); +db(0x00); +db(0x00); +db(0x42); +db(0xad); +db(0x00); +db(0x00); +db(0x22); +db(0x2d); +db(0x00); +db(0x04); +db(0x67); +db(0x00); +db(0xff); +db(0x74); +db(0x22); +db(0x41); +db(0x4e); +db(0xae); +db(0xff); +db(0x2e); +db(0x60); +db(0x00); +db(0xff); +db(0x6a); +db(0x39); +db(0x7c); +db(0x00); +db(0x02); +db(0x00); +db(0x1c); +db(0x41); +db(0xed); +db(0x00); +db(0x30); +db(0x42); +db(0x90); +db(0x42); +db(0xa8); +db(0x00); +db(0x04); +db(0x42); +db(0x2c); +db(0x00); +db(0x1f); +db(0x42); +db(0xac); +db(0x00); +db(0x2c); +db(0x42); +db(0xac); +db(0x00); +db(0x30); +db(0x29); +db(0x48); +db(0x00); +db(0x28); +db(0x70); +db(0x08); +db(0x29); +db(0x40); +db(0x00); +db(0x24); +db(0x22); +db(0x4c); +db(0x4e); +db(0xae); +db(0xfe); +db(0x38); +db(0x0c); +db(0xad); +db(0x46); +db(0x4f); +db(0x52); +db(0x4d); +db(0x00); +db(0x30); +db(0x66); +db(0x52); +db(0x20); +db(0x2d); +db(0x00); +db(0x34); +db(0x67); +db(0x4c); +db(0x6b); +db(0x4a); +db(0x2b); +db(0x6c); +db(0x00); +db(0x30); +db(0x00); +db(0x10); +db(0x50); +db(0x80); +db(0x24); +db(0x00); +db(0x72); +db(0x01); +db(0x4e); +db(0xae); +db(0xff); +db(0x3a); +db(0x4a); +db(0x80); +db(0x67); +db(0x36); +db(0x24); +db(0x40); +db(0x20); +db(0x4a); +db(0x20); +db(0xed); +db(0x00); +db(0x30); +db(0x20); +db(0xed); +db(0x00); +db(0x34); +db(0x29); +db(0x48); +db(0x00); +db(0x28); +db(0x20); +db(0x02); +db(0x51); +db(0x80); +db(0x29); +db(0x40); +db(0x00); +db(0x24); +db(0x22); +db(0x4c); +db(0x4e); +db(0xae); +db(0xfe); +db(0x38); +db(0x30); +db(0x3c); +db(0xff); +db(0x38); +db(0x72); +db(0x0b); +db(0x61); +db(0x00); +db(0x00); +db(0xca); +db(0x20); +db(0x2c); +db(0x00); +db(0x20); +db(0x4e); +db(0x90); +db(0x22); +db(0x4a); +db(0x20); +db(0x02); +db(0x4e); +db(0xae); +db(0xff); +db(0x2e); +db(0x4a); +db(0xac); +db(0x00); +db(0x20); +db(0x67); +db(0x00); +db(0xfe); +db(0xda); +db(0x41); +db(0xed); +db(0x00); +db(0x30); +db(0x29); +db(0x48); +db(0x00); +db(0x28); +db(0x70); +db(0x01); +db(0x29); +db(0x40); +db(0x00); +db(0x24); +db(0x42); +db(0xac); +db(0x00); +db(0x20); +db(0x22); +db(0x4c); +db(0x4e); +db(0xae); +db(0xfe); +db(0x38); +db(0x60); +db(0xde); +db(0x41); +db(0xe8); +db(0xff); +db(0xe4); +db(0x20); +db(0x29); +db(0x00); +db(0x08); +db(0xb0); +db(0xa8); +db(0x00); +db(0x10); +db(0x67); +db(0x1a); +db(0x21); +db(0x40); +db(0x00); +db(0x10); +db(0x2f); +db(0x0e); +db(0x2c); +db(0x68); +db(0x00); +db(0x14); +db(0x22); +db(0x68); +db(0x00); +db(0x08); +db(0x70); +db(0x00); +db(0x08); +db(0xc0); +db(0x00); +db(0x0d); +db(0x4e); +db(0xae); +db(0xfe); +db(0xbc); +db(0x2c); +db(0x5f); +db(0x70); +db(0x00); +db(0x4e); +db(0x75); +db(0x2c); +db(0x78); +db(0x00); +db(0x04); +db(0x74); +db(0xff); +db(0x30); +db(0x3c); +db(0xff); +db(0x38); +db(0x72); +db(0x11); +db(0x61); +db(0x00); +db(0x00); +db(0x5e); +db(0x4e); +db(0x90); +db(0x08); +db(0x00); +db(0x00); +db(0x01); +db(0x67); +db(0x38); +db(0x74); +db(0x00); +db(0x4e); +db(0xae); +db(0xff); +db(0x7c); +db(0x41); +db(0xee); +db(0x01); +db(0x5e); +db(0x43); +db(0xfa); +db(0x00); +db(0x70); +db(0x4e); +db(0xae); +db(0xfe); +db(0xec); +db(0x4a); +db(0x80); +db(0x67); +db(0x1e); +db(0x20); +db(0x40); +db(0x43); +db(0xfa); +db(0x00); +db(0x22); +db(0x24); +db(0x68); +db(0xff); +db(0xe4); +db(0x21); +db(0x49); +db(0xff); +db(0xe4); +db(0x22); +db(0x48); +db(0x30); +db(0x3c); +db(0xff); +db(0x38); +db(0x72); +db(0x65); +db(0x61); +db(0x00); +db(0x00); +db(0x26); +db(0x4e); +db(0x90); +db(0x74); +db(0x01); +db(0x4e); +db(0xae); +db(0xff); +db(0x76); +db(0x20); +db(0x02); +db(0x4e); +db(0x75); +db(0x59); +db(0x8f); +db(0x48); +db(0xe7); +db(0xc0); +db(0x80); +db(0x30); +db(0x3c); +db(0xff); +db(0x38); +db(0x72); +db(0x66); +db(0x61); +db(0x00); +db(0x00); +db(0x0a); +db(0x4e); +db(0x90); +db(0x4c); +db(0xdf); +db(0x01); +db(0x03); +db(0x4e); +db(0x75); +db(0x41); +db(0xfa); +db(0xe8); +db(0x30); +db(0x02); +db(0x80); +db(0x00); +db(0x00); +db(0xff); +db(0xff); +db(0xd1); +db(0xc0); +db(0x4e); +db(0x75); +db(0x69); +db(0x6e); +db(0x70); +db(0x75); +db(0x74); +db(0x2e); +db(0x64); +db(0x65); +db(0x76); +db(0x69); +db(0x63); +db(0x65); +db(0x00); +db(0x74); +db(0x69); +db(0x6d); +db(0x65); +db(0x72); +db(0x2e); +db(0x64); +db(0x65); +db(0x76); +db(0x69); +db(0x63); +db(0x65); +db(0x00); +db(0x63); +db(0x6f); +db(0x6e); +db(0x73); +db(0x6f); +db(0x6c); +db(0x65); +db(0x2e); +db(0x64); +db(0x65); +db(0x76); +db(0x69); +db(0x63); +db(0x65); +db(0x00); +db(0x44); +db(0x45); +db(0x56); +db(0x53); +db(0x00); +db(0x44); +db(0x45); +db(0x56); +db(0x53); +db(0x3a); +db(0x00); +db(0x44); +db(0x45); +db(0x56); +db(0x53); +db(0x3a); +db(0x63); +db(0x6c); +db(0x69); +db(0x70); +db(0x62); +db(0x6f); +db(0x61); +db(0x72); +db(0x64); +db(0x2e); +db(0x64); +db(0x65); +db(0x76); +db(0x69); +db(0x63); +db(0x65); +db(0x00); +db(0x52); +db(0x41); +db(0x4d); +db(0x3a); +db(0x00); +db(0x63); +db(0x6c); +db(0x69); +db(0x70); +db(0x62); +db(0x6f); +db(0x61); +db(0x72); +db(0x64); +db(0x2e); +db(0x64); +db(0x65); +db(0x76); +db(0x69); +db(0x63); +db(0x65); +db(0x00); +db(0x52); +db(0x41); +db(0x4d); +db(0x3a); +db(0x45); +db(0x6e); +db(0x76); +db(0x2f); +db(0x53); +db(0x79); +db(0x73); +db(0x2f); +db(0x50); +db(0x6f); +db(0x69); +db(0x6e); +db(0x74); +db(0x65); +db(0x72); +db(0x2e); +db(0x70); +db(0x72); +db(0x65); +db(0x66); +db(0x73); +db(0x00); +db(0x55); +db(0x41); +db(0x45); +db(0x20); +db(0x63); +db(0x6c); +db(0x69); +db(0x70); +db(0x62); +db(0x6f); +db(0x61); +db(0x72); +db(0x64); +db(0x20); +db(0x73); +db(0x68); +db(0x61); +db(0x72); +db(0x69); +db(0x6e); +db(0x67); +db(0x00); +db(0x55); +db(0x41); +db(0x45); +db(0x20); +db(0x6d); +db(0x6f); +db(0x75); +db(0x73); +db(0x65); +db(0x20); +db(0x64); +db(0x72); +db(0x69); +db(0x76); +db(0x65); +db(0x72); +db(0x00); +db(0x55); +db(0x41); +db(0x45); +db(0x20); +db(0x68); +db(0x65); +db(0x61); +db(0x72); +db(0x74); +db(0x20); +db(0x62); +db(0x65); +db(0x61); +db(0x74); +db(0x00); +db(0x55); +db(0x41); +db(0x45); +db(0x20); +db(0x66); +db(0x69); +db(0x6c); +db(0x65); +db(0x73); +db(0x79); +db(0x73); +db(0x74); +db(0x65); +db(0x6d); +db(0x00); +db(0x55); +db(0x41); +db(0x45); +db(0x20); +db(0x66); +db(0x73); +db(0x20); +db(0x61); +db(0x75); +db(0x74); +db(0x6f); +db(0x6d); +db(0x6f); +db(0x75); +db(0x6e); +db(0x74); +db(0x65); +db(0x72); +db(0x00); +db(0x55); +db(0x41); +db(0x45); +db(0x20); +db(0x66); +db(0x73); +db(0x20); +db(0x61); +db(0x75); +db(0x74); +db(0x6f); +db(0x6d); +db(0x6f); +db(0x75); +db(0x6e); +db(0x74); +db(0x20); +db(0x70); +db(0x72); +db(0x6f); +db(0x63); +db(0x65); +db(0x73); +db(0x73); +db(0x00); +db(0x64); +db(0x6f); +db(0x73); +db(0x2e); +db(0x6c); +db(0x69); +db(0x62); +db(0x72); +db(0x61); +db(0x72); +db(0x79); +db(0x00); +db(0x69); +db(0x6e); +db(0x74); +db(0x75); +db(0x69); +db(0x74); +db(0x69); +db(0x6f); +db(0x6e); +db(0x2e); +db(0x6c); +db(0x69); +db(0x62); +db(0x72); +db(0x61); +db(0x72); +db(0x79); +db(0x00); +db(0x67); +db(0x72); +db(0x61); +db(0x70); +db(0x68); +db(0x69); +db(0x63); +db(0x73); +db(0x2e); +db(0x6c); +db(0x69); +db(0x62); +db(0x72); +db(0x61); +db(0x72); +db(0x79); +db(0x00); +db(0x65); +db(0x78); +db(0x70); +db(0x61); +db(0x6e); +db(0x73); +db(0x69); +db(0x6f); +db(0x6e); +db(0x2e); +db(0x6c); +db(0x69); +db(0x62); +db(0x72); +db(0x61); +db(0x72); +db(0x79); +db(0x00); +db(0x46); +db(0x69); +db(0x6c); +db(0x65); +db(0x53); +db(0x79); +db(0x73); +db(0x74); +db(0x65); +db(0x6d); +db(0x2e); +db(0x72); +db(0x65); +db(0x73); +db(0x6f); +db(0x75); +db(0x72); +db(0x63); +db(0x65); +db(0x00); +db(0x6d); +db(0x65); +db(0x67); +db(0x61); +db(0x63); +db(0x68); +db(0x69); +db(0x70); +db(0x20); +db(0x6d); +db(0x65); +db(0x6d); +db(0x6f); +db(0x72); +db(0x79); +db(0x00); +db(0x00); +db(0x00); +db(0x03); +db(0xf2); diff --git a/src/fpp.cpp b/src/fpp.cpp index 64dd9d3a..cb798d98 100644 --- a/src/fpp.cpp +++ b/src/fpp.cpp @@ -1,11 +1,11 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * MC68881 emulation - * - * Copyright 1996 Herman ten Brugge - * Modified 2005 Peter Keunecke - */ +/* + * UAE - The Un*x Amiga Emulator + * + * MC68881 emulation + * + * Copyright 1996 Herman ten Brugge + * Modified 2005 Peter Keunecke + */ #define __USE_ISOC9X /* We might be able to pick up a NaN */ @@ -16,7 +16,7 @@ #include "sysdeps.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "custom.h" #include "newcpu.h" #include "ersatz.h" @@ -28,27 +28,27 @@ STATIC_INLINE int isinrom (void) { - return (munge24 (m68k_getpc ()) & 0xFFF80000) == 0xF80000; + return (munge24 (m68k_getpc ()) & 0xFFF80000) == 0xF80000; } -static uae_u32 xhex_pi[] ={0x2168c235, 0xc90fdaa2, 0x4000}; -uae_u32 xhex_exp_1[] ={0xa2bb4a9a, 0xadf85458, 0x4000}; -static uae_u32 xhex_l2_e[] ={0x5c17f0bc, 0xb8aa3b29, 0x3fff}; -static uae_u32 xhex_ln_2[] ={0xd1cf79ac, 0xb17217f7, 0x3ffe}; -uae_u32 xhex_ln_10[] ={0xaaa8ac17, 0x935d8ddd, 0x4000}; -uae_u32 xhex_l10_2[] ={0xfbcff798, 0x9a209a84, 0x3ffd}; -uae_u32 xhex_l10_e[] ={0x37287195, 0xde5bd8a9, 0x3ffd}; -uae_u32 xhex_1e16[] ={0x04000000, 0x8e1bc9bf, 0x4034}; -uae_u32 xhex_1e32[] ={0x2b70b59e, 0x9dc5ada8, 0x4069}; -uae_u32 xhex_1e64[] ={0xffcfa6d5, 0xc2781f49, 0x40d3}; -uae_u32 xhex_1e128[] ={0x80e98ce0, 0x93ba47c9, 0x41a8}; -uae_u32 xhex_1e256[] ={0x9df9de8e, 0xaa7eebfb, 0x4351}; -uae_u32 xhex_1e512[] ={0xa60e91c7, 0xe319a0ae, 0x46a3}; -uae_u32 xhex_1e1024[]={0x81750c17, 0xc9767586, 0x4d48}; -uae_u32 xhex_1e2048[]={0xc53d5de5, 0x9e8b3b5d, 0x5a92}; -uae_u32 xhex_1e4096[]={0x8a20979b, 0xc4605202, 0x7525}; -static uae_u32 xhex_inf[] ={0x00000000, 0x00000000, 0x7fff}; -static uae_u32 xhex_nan[] ={0xffffffff, 0xffffffff, 0x7fff}; +static uae_u32 xhex_pi[] = {0x2168c235, 0xc90fdaa2, 0x4000}; +uae_u32 xhex_exp_1[] = {0xa2bb4a9a, 0xadf85458, 0x4000}; +static uae_u32 xhex_l2_e[] = {0x5c17f0bc, 0xb8aa3b29, 0x3fff}; +static uae_u32 xhex_ln_2[] = {0xd1cf79ac, 0xb17217f7, 0x3ffe}; +uae_u32 xhex_ln_10[] = {0xaaa8ac17, 0x935d8ddd, 0x4000}; +uae_u32 xhex_l10_2[] = {0xfbcff798, 0x9a209a84, 0x3ffd}; +uae_u32 xhex_l10_e[] = {0x37287195, 0xde5bd8a9, 0x3ffd}; +uae_u32 xhex_1e16[] = {0x04000000, 0x8e1bc9bf, 0x4034}; +uae_u32 xhex_1e32[] = {0x2b70b59e, 0x9dc5ada8, 0x4069}; +uae_u32 xhex_1e64[] = {0xffcfa6d5, 0xc2781f49, 0x40d3}; +uae_u32 xhex_1e128[] = {0x80e98ce0, 0x93ba47c9, 0x41a8}; +uae_u32 xhex_1e256[] = {0x9df9de8e, 0xaa7eebfb, 0x4351}; +uae_u32 xhex_1e512[] = {0xa60e91c7, 0xe319a0ae, 0x46a3}; +uae_u32 xhex_1e1024[]= {0x81750c17, 0xc9767586, 0x4d48}; +uae_u32 xhex_1e2048[]= {0xc53d5de5, 0x9e8b3b5d, 0x5a92}; +uae_u32 xhex_1e4096[]= {0x8a20979b, 0xc4605202, 0x7525}; +static uae_u32 xhex_inf[] = {0x00000000, 0x00000000, 0x7fff}; +static uae_u32 xhex_nan[] = {0xffffffff, 0xffffffff, 0x7fff}; #if USE_LONG_DOUBLE static long double *fp_pi = (long double *)xhex_pi; static long double *fp_exp_1 = (long double *)xhex_exp_1; @@ -69,20 +69,20 @@ static long double *fp_1e4096 = (long double *)xhex_1e4096; static long double *fp_inf = (long double *)xhex_inf; static long double *fp_nan = (long double *)xhex_nan; #else -static uae_u32 dhex_pi[] ={0x54442D18, 0x400921FB}; -static uae_u32 dhex_exp_1[] ={0x8B145769, 0x4005BF0A}; -static uae_u32 dhex_l2_e[] ={0x652B82FE, 0x3FF71547}; -static uae_u32 dhex_ln_2[] ={0xFEFA39EF, 0x3FE62E42}; -static uae_u32 dhex_ln_10[] ={0xBBB55516, 0x40026BB1}; -static uae_u32 dhex_l10_2[] ={0x509F79FF, 0x3FD34413}; -static uae_u32 dhex_l10_e[] ={0x1526E50E, 0x3FDBCB7B}; -static uae_u32 dhex_1e16[] ={0x37E08000, 0x4341C379}; -static uae_u32 dhex_1e32[] ={0xB5056E17, 0x4693B8B5}; -static uae_u32 dhex_1e64[] ={0xE93FF9F5, 0x4D384F03}; -static uae_u32 dhex_1e128[] ={0xF9301D32, 0x5A827748}; -static uae_u32 dhex_1e256[] ={0x7F73BF3C, 0x75154FDD}; -static uae_u32 dhex_inf[] ={0x00000000, 0x7ff00000}; -static uae_u32 dhex_nan[] ={0xffffffff, 0x7fffffff}; +static uae_u32 dhex_pi[] = {0x54442D18, 0x400921FB}; +static uae_u32 dhex_exp_1[] = {0x8B145769, 0x4005BF0A}; +static uae_u32 dhex_l2_e[] = {0x652B82FE, 0x3FF71547}; +static uae_u32 dhex_ln_2[] = {0xFEFA39EF, 0x3FE62E42}; +static uae_u32 dhex_ln_10[] = {0xBBB55516, 0x40026BB1}; +static uae_u32 dhex_l10_2[] = {0x509F79FF, 0x3FD34413}; +static uae_u32 dhex_l10_e[] = {0x1526E50E, 0x3FDBCB7B}; +static uae_u32 dhex_1e16[] = {0x37E08000, 0x4341C379}; +static uae_u32 dhex_1e32[] = {0xB5056E17, 0x4693B8B5}; +static uae_u32 dhex_1e64[] = {0xE93FF9F5, 0x4D384F03}; +static uae_u32 dhex_1e128[] = {0xF9301D32, 0x5A827748}; +static uae_u32 dhex_1e256[] = {0x7F73BF3C, 0x75154FDD}; +static uae_u32 dhex_inf[] = {0x00000000, 0x7ff00000}; +static uae_u32 dhex_nan[] = {0xffffffff, 0x7fffffff}; static double *fp_pi = (double *)dhex_pi; static double *fp_exp_1 = (double *)dhex_exp_1; static double *fp_l2_e = (double *)dhex_l2_e; @@ -123,63 +123,66 @@ typedef uae_s32 tointtype; static void fpu_op_illg (uae_u32 opcode, struct regstruct ®s, int pcoffset) { - if ((currprefs.cpu_model == 68060 && (currprefs.fpu_model == 0 || (regs.pcr & 2))) - || (currprefs.cpu_model == 68040 && currprefs.fpu_model == 0)) { - /* 68040 unimplemented/68060 FPU disabled exception. - * Line F exception with different stack frame.. */ - uaecptr newpc = m68k_getpc(); - uaecptr oldpc = newpc - pcoffset; - regs.t0 = regs.t1 = 0; - MakeSR(regs); - if (!regs.s) { - regs.usp = m68k_areg(regs, 7); - m68k_areg(regs, 7) = regs.isp; - } - regs.s = 1; - m68k_areg(regs, 7) -= 4; - x_put_long (m68k_areg(regs, 7), oldpc); - m68k_areg(regs, 7) -= 4; - x_put_long (m68k_areg(regs, 7), oldpc); - m68k_areg(regs, 7) -= 2; - x_put_word (m68k_areg(regs, 7), 0x4000 + 11 * 4); - m68k_areg(regs, 7) -= 4; - x_put_long (m68k_areg(regs, 7), newpc); - m68k_areg(regs, 7) -= 2; - x_put_word (m68k_areg(regs, 7), regs.sr); - write_log(_T("68040/060 FPU disabled exception PC=%x\n"), newpc); - newpc = x_get_long (regs.vbr + 11 * 4); - m68k_setpc(newpc); + if ((currprefs.cpu_model == 68060 && (currprefs.fpu_model == 0 || (regs.pcr & 2))) + || (currprefs.cpu_model == 68040 && currprefs.fpu_model == 0)) + { + /* 68040 unimplemented/68060 FPU disabled exception. + * Line F exception with different stack frame.. */ + uaecptr newpc = m68k_getpc(); + uaecptr oldpc = newpc - pcoffset; + regs.t0 = regs.t1 = 0; + MakeSR(regs); + if (!regs.s) + { + regs.usp = m68k_areg(regs, 7); + m68k_areg(regs, 7) = regs.isp; + } + regs.s = 1; + m68k_areg(regs, 7) -= 4; + x_put_long (m68k_areg(regs, 7), oldpc); + m68k_areg(regs, 7) -= 4; + x_put_long (m68k_areg(regs, 7), oldpc); + m68k_areg(regs, 7) -= 2; + x_put_word (m68k_areg(regs, 7), 0x4000 + 11 * 4); + m68k_areg(regs, 7) -= 4; + x_put_long (m68k_areg(regs, 7), newpc); + m68k_areg(regs, 7) -= 2; + x_put_word (m68k_areg(regs, 7), regs.sr); + write_log(_T("68040/060 FPU disabled exception PC=%x\n"), newpc); + newpc = x_get_long (regs.vbr + 11 * 4); + m68k_setpc(newpc); #ifdef JIT - set_special(SPCFLAG_END_COMPILE); + set_special(SPCFLAG_END_COMPILE); #endif - return; - } - op_illg (opcode); + return; + } + op_illg (opcode); } STATIC_INLINE bool fault_if_no_fpu (uae_u32 opcode, struct regstruct ®s, int pcoffset) { - if ((regs.pcr & 2) || currprefs.fpu_model <= 0) { - fpu_op_illg (opcode, regs, pcoffset); - return true; - } - return false; + if ((regs.pcr & 2) || currprefs.fpu_model <= 0) + { + fpu_op_illg (opcode, regs, pcoffset); + return true; + } + return false; } static int get_fpu_version(void) { - int v = 0; - switch (currprefs.fpu_model) - { - case 68881: - case 68882: - v = 0x1f; - break; - case 68040: - v = 0x41; - break; - } - return v; + int v = 0; + switch (currprefs.fpu_model) + { + case 68881: + case 68882: + v = 0x1f; + break; + case 68040: + v = 0x41; + break; + } + return v; } #define fp_round_to_minus_infinity(x) fp_floor(x) @@ -189,31 +192,33 @@ static int get_fpu_version(void) STATIC_INLINE tointtype toint(fptype src, fptype minval, fptype maxval) { - if (src < minval) - src = minval; - if (src > maxval) - src = maxval; + if (src < minval) + src = minval; + if (src > maxval) + src = maxval; #if defined(X86_MSVC_ASSEMBLY) - { - fptype tmp_fp; - __asm { - fld LDPTR src - frndint - fstp LDPTR tmp_fp - } - return (tointtype)tmp_fp; - } + { + fptype tmp_fp; + __asm + { + fld LDPTR src + frndint + fstp LDPTR tmp_fp + } + return (tointtype)tmp_fp; + } #else /* no X86_MSVC */ - switch ((regs.fpcr >> 4) & 3) { + switch ((regs.fpcr >> 4) & 3) + { case 0: /* to nearest */ - return (tointtype)floor (src + 0.5); + return (tointtype)floor (src + 0.5); case 1: /* to zero */ - return (tointtype) src; + return (tointtype) src; case 2: /* down */ - return (tointtype)floor (src); + return (tointtype)floor (src); case 3: /* up */ - return (tointtype)ceil (src); - } + return (tointtype)ceil (src); + } #endif } @@ -223,38 +228,39 @@ extern int isinf (double x); uae_u32 get_fpsr (void) { - uae_u32 answer = regs.fpsr & 0x00ffffff; + uae_u32 answer = regs.fpsr & 0x00ffffff; #ifdef HAVE_ISNAN - if (isnan (regs.fp_result)) - answer |= 0x01000000; - else + if (isnan (regs.fp_result)) + answer |= 0x01000000; + else #endif - { - if (regs.fp_result == 0) - answer |= 0x04000000; - else if (regs.fp_result < 0) - answer |= 0x08000000; + { + if (regs.fp_result == 0) + answer |= 0x04000000; + else if (regs.fp_result < 0) + answer |= 0x08000000; #ifdef HAVE_ISINF - if (isinf (regs.fp_result)) - answer |= 0x02000000; + if (isinf (regs.fp_result)) + answer |= 0x02000000; #endif - } - return answer; + } + return answer; } STATIC_INLINE void set_fpsr (uae_u32 x) { - regs.fpsr = x; + regs.fpsr = x; - if (x & 0x01000000) { - regs.fp_result = *fp_nan; - } - else if (x & 0x04000000) - regs.fp_result = 0; - else if (x & 0x08000000) - regs.fp_result = -1; - else - regs.fp_result = 1; + if (x & 0x01000000) + { + regs.fp_result = *fp_nan; + } + else if (x & 0x04000000) + regs.fp_result = 0; + else if (x & 0x08000000) + regs.fp_result = -1; + else + regs.fp_result = 1; } /* single : S 8*E 23*F */ @@ -267,1423 +273,1575 @@ STATIC_INLINE void set_fpsr (uae_u32 x) STATIC_INLINE fptype to_pack (uae_u32 wrd1, uae_u32 wrd2, uae_u32 wrd3) { - fptype d; - char *cp; - char str[100]; + fptype d; + char *cp; + char str[100]; - cp = str; - if (wrd1 & 0x80000000) - *cp++ = '-'; - *cp++ = (wrd1 & 0xf) + '0'; - *cp++ = '.'; - *cp++ = ((wrd2 >> 28) & 0xf) + '0'; - *cp++ = ((wrd2 >> 24) & 0xf) + '0'; - *cp++ = ((wrd2 >> 20) & 0xf) + '0'; - *cp++ = ((wrd2 >> 16) & 0xf) + '0'; - *cp++ = ((wrd2 >> 12) & 0xf) + '0'; - *cp++ = ((wrd2 >> 8) & 0xf) + '0'; - *cp++ = ((wrd2 >> 4) & 0xf) + '0'; - *cp++ = ((wrd2 >> 0) & 0xf) + '0'; - *cp++ = ((wrd3 >> 28) & 0xf) + '0'; - *cp++ = ((wrd3 >> 24) & 0xf) + '0'; - *cp++ = ((wrd3 >> 20) & 0xf) + '0'; - *cp++ = ((wrd3 >> 16) & 0xf) + '0'; - *cp++ = ((wrd3 >> 12) & 0xf) + '0'; - *cp++ = ((wrd3 >> 8) & 0xf) + '0'; - *cp++ = ((wrd3 >> 4) & 0xf) + '0'; - *cp++ = ((wrd3 >> 0) & 0xf) + '0'; - *cp++ = 'E'; - if (wrd1 & 0x40000000) - *cp++ = '-'; - *cp++ = ((wrd1 >> 24) & 0xf) + '0'; - *cp++ = ((wrd1 >> 20) & 0xf) + '0'; - *cp++ = ((wrd1 >> 16) & 0xf) + '0'; - *cp = 0; - sscanf (str, "%le", &d); - return d; + cp = str; + if (wrd1 & 0x80000000) + *cp++ = '-'; + *cp++ = (wrd1 & 0xf) + '0'; + *cp++ = '.'; + *cp++ = ((wrd2 >> 28) & 0xf) + '0'; + *cp++ = ((wrd2 >> 24) & 0xf) + '0'; + *cp++ = ((wrd2 >> 20) & 0xf) + '0'; + *cp++ = ((wrd2 >> 16) & 0xf) + '0'; + *cp++ = ((wrd2 >> 12) & 0xf) + '0'; + *cp++ = ((wrd2 >> 8) & 0xf) + '0'; + *cp++ = ((wrd2 >> 4) & 0xf) + '0'; + *cp++ = ((wrd2 >> 0) & 0xf) + '0'; + *cp++ = ((wrd3 >> 28) & 0xf) + '0'; + *cp++ = ((wrd3 >> 24) & 0xf) + '0'; + *cp++ = ((wrd3 >> 20) & 0xf) + '0'; + *cp++ = ((wrd3 >> 16) & 0xf) + '0'; + *cp++ = ((wrd3 >> 12) & 0xf) + '0'; + *cp++ = ((wrd3 >> 8) & 0xf) + '0'; + *cp++ = ((wrd3 >> 4) & 0xf) + '0'; + *cp++ = ((wrd3 >> 0) & 0xf) + '0'; + *cp++ = 'E'; + if (wrd1 & 0x40000000) + *cp++ = '-'; + *cp++ = ((wrd1 >> 24) & 0xf) + '0'; + *cp++ = ((wrd1 >> 20) & 0xf) + '0'; + *cp++ = ((wrd1 >> 16) & 0xf) + '0'; + *cp = 0; + sscanf (str, "%le", &d); + return d; } STATIC_INLINE void from_pack (fptype src, uae_u32 * wrd1, uae_u32 * wrd2, uae_u32 * wrd3) { - int i; - int t; - char *cp; - char str[100]; + int i; + int t; + char *cp; + char str[100]; - sprintf (str, "%.16e", src); - cp = str; - *wrd1 = *wrd2 = *wrd3 = 0; - if (*cp == '-') { - cp++; - *wrd1 = 0x80000000; - } - if (*cp == '+') - cp++; - *wrd1 |= (*cp++ - '0'); - if (*cp == '.') - cp++; - for (i = 0; i < 8; i++) { - *wrd2 <<= 4; - if (*cp >= '0' && *cp <= '9') - *wrd2 |= *cp++ - '0'; - } - for (i = 0; i < 8; i++) { - *wrd3 <<= 4; - if (*cp >= '0' && *cp <= '9') - *wrd3 |= *cp++ - '0'; - } - if (*cp == 'e' || *cp == 'E') { - cp++; - if (*cp == '-') { - cp++; - *wrd1 |= 0x40000000; - } - if (*cp == '+') - cp++; - t = 0; - for (i = 0; i < 3; i++) { - if (*cp >= '0' && *cp <= '9') - t = (t << 4) | (*cp++ - '0'); - } - *wrd1 |= t << 16; - } + sprintf (str, "%.16e", src); + cp = str; + *wrd1 = *wrd2 = *wrd3 = 0; + if (*cp == '-') + { + cp++; + *wrd1 = 0x80000000; + } + if (*cp == '+') + cp++; + *wrd1 |= (*cp++ - '0'); + if (*cp == '.') + cp++; + for (i = 0; i < 8; i++) + { + *wrd2 <<= 4; + if (*cp >= '0' && *cp <= '9') + *wrd2 |= *cp++ - '0'; + } + for (i = 0; i < 8; i++) + { + *wrd3 <<= 4; + if (*cp >= '0' && *cp <= '9') + *wrd3 |= *cp++ - '0'; + } + if (*cp == 'e' || *cp == 'E') + { + cp++; + if (*cp == '-') + { + cp++; + *wrd1 |= 0x40000000; + } + if (*cp == '+') + cp++; + t = 0; + for (i = 0; i < 3; i++) + { + if (*cp >= '0' && *cp <= '9') + t = (t << 4) | (*cp++ - '0'); + } + *wrd1 |= t << 16; + } } STATIC_INLINE int get_fp_value (uae_u32 opcode, uae_u16 extra, fptype *src) { - uaecptr tmppc; - uae_u16 tmp; - int size, mode, reg; - uae_u32 ad = 0; - static const int sz1[8] = { 4, 4, 12, 12, 2, 8, 1, 0 }; - static const int sz2[8] = { 4, 4, 12, 12, 2, 8, 2, 0 }; + uaecptr tmppc; + uae_u16 tmp; + int size, mode, reg; + uae_u32 ad = 0; + static const int sz1[8] = { 4, 4, 12, 12, 2, 8, 1, 0 }; + static const int sz2[8] = { 4, 4, 12, 12, 2, 8, 2, 0 }; - if (!(extra & 0x4000)) { - *src = regs.fp[(extra >> 10) & 7]; - return 1; - } - mode = (opcode >> 3) & 7; - reg = opcode & 7; - size = (extra >> 10) & 7; - switch (mode) { - case 0: - switch (size) { - case 6: - *src = (fptype) (uae_s8) m68k_dreg (regs, reg); - break; - case 4: - *src = (fptype) (uae_s16) m68k_dreg (regs, reg); - break; - case 0: - *src = (fptype) (uae_s32) m68k_dreg (regs, reg); - break; - case 1: - *src = to_single (m68k_dreg (regs, reg)); - break; - default: - return 0; - } - return 1; - case 1: - return 0; - case 2: - ad = m68k_areg (regs, reg); - break; - case 3: - ad = m68k_areg (regs, reg); - m68k_areg (regs, reg) += reg == 7 ? sz2[size] : sz1[size]; - break; - case 4: - m68k_areg (regs, reg) -= reg == 7 ? sz2[size] : sz1[size]; - ad = m68k_areg (regs, reg); - break; - case 5: - ad = m68k_areg (regs, reg) + (uae_s32) (uae_s16) x_next_iword (); - break; - case 6: - ad = x_get_disp_ea_020 (m68k_areg (regs, reg), x_next_iword ()); - break; - case 7: - switch (reg) { - case 0: - ad = (uae_s32) (uae_s16) x_next_iword (); - break; - case 1: - ad = x_next_ilong (); - break; - case 2: - ad = m68k_getpc (); - ad += (uae_s32) (uae_s16) x_next_iword (); - break; - case 3: - tmppc = m68k_getpc (); - tmp = x_next_iword (); - ad = x_get_disp_ea_020 (tmppc, tmp); - break; - case 4: - ad = m68k_getpc (); - m68k_setpc (ad + sz2[size]); - if (size == 6) - ad++; - break; - default: - return 0; - } - } - switch (size) { - case 0: - *src = (fptype) (uae_s32) x_get_long (ad); - break; - case 1: - *src = to_single (x_get_long (ad)); - break; - case 2:{ - uae_u32 wrd1, wrd2, wrd3; - wrd1 = x_get_long (ad); - ad += 4; - wrd2 = x_get_long (ad); - ad += 4; - wrd3 = x_get_long (ad); - *src = to_exten (wrd1, wrd2, wrd3); - } - break; - case 3:{ - uae_u32 wrd1, wrd2, wrd3; - wrd1 = x_get_long (ad); - ad += 4; - wrd2 = x_get_long (ad); - ad += 4; - wrd3 = x_get_long (ad); - *src = to_pack (wrd1, wrd2, wrd3); - } - break; - case 4: - *src = (fptype) (uae_s16) x_get_word (ad); - break; - case 5:{ - uae_u32 wrd1, wrd2; - wrd1 = x_get_long (ad); - ad += 4; - wrd2 = x_get_long (ad); - *src = to_double (wrd1, wrd2); - } - break; - case 6: - *src = (fptype) (uae_s8) get_byte (ad); - break; - default: - return 0; - } - return 1; + if (!(extra & 0x4000)) + { + *src = regs.fp[(extra >> 10) & 7]; + return 1; + } + mode = (opcode >> 3) & 7; + reg = opcode & 7; + size = (extra >> 10) & 7; + switch (mode) + { + case 0: + switch (size) + { + case 6: + *src = (fptype) (uae_s8) m68k_dreg (regs, reg); + break; + case 4: + *src = (fptype) (uae_s16) m68k_dreg (regs, reg); + break; + case 0: + *src = (fptype) (uae_s32) m68k_dreg (regs, reg); + break; + case 1: + *src = to_single (m68k_dreg (regs, reg)); + break; + default: + return 0; + } + return 1; + case 1: + return 0; + case 2: + ad = m68k_areg (regs, reg); + break; + case 3: + ad = m68k_areg (regs, reg); + m68k_areg (regs, reg) += reg == 7 ? sz2[size] : sz1[size]; + break; + case 4: + m68k_areg (regs, reg) -= reg == 7 ? sz2[size] : sz1[size]; + ad = m68k_areg (regs, reg); + break; + case 5: + ad = m68k_areg (regs, reg) + (uae_s32) (uae_s16) x_next_iword (); + break; + case 6: + ad = x_get_disp_ea_020 (m68k_areg (regs, reg), x_next_iword ()); + break; + case 7: + switch (reg) + { + case 0: + ad = (uae_s32) (uae_s16) x_next_iword (); + break; + case 1: + ad = x_next_ilong (); + break; + case 2: + ad = m68k_getpc (); + ad += (uae_s32) (uae_s16) x_next_iword (); + break; + case 3: + tmppc = m68k_getpc (); + tmp = x_next_iword (); + ad = x_get_disp_ea_020 (tmppc, tmp); + break; + case 4: + ad = m68k_getpc (); + m68k_setpc (ad + sz2[size]); + if (size == 6) + ad++; + break; + default: + return 0; + } + } + switch (size) + { + case 0: + *src = (fptype) (uae_s32) x_get_long (ad); + break; + case 1: + *src = to_single (x_get_long (ad)); + break; + case 2: + { + uae_u32 wrd1, wrd2, wrd3; + wrd1 = x_get_long (ad); + ad += 4; + wrd2 = x_get_long (ad); + ad += 4; + wrd3 = x_get_long (ad); + *src = to_exten (wrd1, wrd2, wrd3); + } + break; + case 3: + { + uae_u32 wrd1, wrd2, wrd3; + wrd1 = x_get_long (ad); + ad += 4; + wrd2 = x_get_long (ad); + ad += 4; + wrd3 = x_get_long (ad); + *src = to_pack (wrd1, wrd2, wrd3); + } + break; + case 4: + *src = (fptype) (uae_s16) x_get_word (ad); + break; + case 5: + { + uae_u32 wrd1, wrd2; + wrd1 = x_get_long (ad); + ad += 4; + wrd2 = x_get_long (ad); + *src = to_double (wrd1, wrd2); + } + break; + case 6: + *src = (fptype) (uae_s8) get_byte (ad); + break; + default: + return 0; + } + return 1; } STATIC_INLINE int put_fp_value (struct regstruct ®s, fptype value, uae_u32 opcode, uae_u16 extra) { - uae_u16 tmp; - uaecptr tmppc; - int size, mode, reg; - uae_u32 ad; - static int sz1[8] = { 4, 4, 12, 12, 2, 8, 1, 0 }; - static int sz2[8] = { 4, 4, 12, 12, 2, 8, 2, 0 }; + uae_u16 tmp; + uaecptr tmppc; + int size, mode, reg; + uae_u32 ad; + static int sz1[8] = { 4, 4, 12, 12, 2, 8, 1, 0 }; + static int sz2[8] = { 4, 4, 12, 12, 2, 8, 2, 0 }; #if DEBUG_FPP - if (!isinrom ()) - write_log (_T("PUTFP: %f %04X %04X\n"), value, opcode, extra); + if (!isinrom ()) + write_log (_T("PUTFP: %f %04X %04X\n"), value, opcode, extra); #endif - if (!(extra & 0x4000)) { - regs.fp[(extra >> 10) & 7] = value; - return 1; - } - reg = opcode & 7; - mode = (opcode >> 3) & 7; - size = (extra >> 10) & 7; - ad = -1; - switch (mode) { - case 0: - switch (size) { - case 6: - m68k_dreg (regs, reg) = (uae_u32)(((toint(value, -128.0, 127.0) & 0xff) - | (m68k_dreg (regs, reg) & ~0xff))); - break; - case 4: - m68k_dreg (regs, reg) = (uae_u32)(((toint(value, -32768.0, 32767.0) & 0xffff) - | (m68k_dreg (regs, reg) & ~0xffff))); - break; - case 0: - m68k_dreg (regs, reg) = (uae_u32)toint(value, -2147483648.0, 2147483647.0); - break; - case 1: - m68k_dreg (regs, reg) = from_single (value); - break; - default: - return 0; - } - return 1; - case 1: - return 0; - case 2: - ad = m68k_areg (regs, reg); - break; - case 3: - ad = m68k_areg (regs, reg); - m68k_areg (regs, reg) += reg == 7 ? sz2[size] : sz1[size]; - break; - case 4: - m68k_areg (regs, reg) -= reg == 7 ? sz2[size] : sz1[size]; - ad = m68k_areg (regs, reg); - break; - case 5: - ad = m68k_areg (regs, reg) + (uae_s32) (uae_s16) x_next_iword (); - break; - case 6: - ad = x_get_disp_ea_020 (m68k_areg (regs, reg), x_next_iword ()); - break; - case 7: - switch (reg) { - case 0: - ad = (uae_s32) (uae_s16) x_next_iword (); - break; - case 1: - ad = x_next_ilong (); - break; - case 2: - ad = m68k_getpc (); - ad += (uae_s32) (uae_s16) x_next_iword (); - break; - case 3: - tmppc = m68k_getpc (); - tmp = x_next_iword (); - ad = x_get_disp_ea_020 (tmppc, tmp); - break; - case 4: - ad = m68k_getpc (); - m68k_setpc (ad + sz2[size]); - break; - default: - return 0; - } - } - switch (size) { - case 0: - x_put_long (ad, (uae_u32)toint(value, -2147483648.0, 2147483647.0)); - break; - case 1: - x_put_long (ad, from_single (value)); - break; - case 2: - { - uae_u32 wrd1, wrd2, wrd3; - from_exten (value, &wrd1, &wrd2, &wrd3); - x_put_long (ad, wrd1); - ad += 4; - x_put_long (ad, wrd2); - ad += 4; - x_put_long (ad, wrd3); - } - break; - case 3: - { - uae_u32 wrd1, wrd2, wrd3; - from_pack (value, &wrd1, &wrd2, &wrd3); - x_put_long (ad, wrd1); - ad += 4; - x_put_long (ad, wrd2); - ad += 4; - x_put_long (ad, wrd3); - } - break; - case 4: - x_put_word (ad, (uae_s16) toint(value, -32768.0, 32767.0)); - break; - case 5:{ - uae_u32 wrd1, wrd2; - from_double (value, &wrd1, &wrd2); - x_put_long (ad, wrd1); - ad += 4; - x_put_long (ad, wrd2); - } - break; - case 6: - x_put_byte (ad, (uae_s8)toint(value, -128.0, 127.0)); - break; - default: - return 0; - } - return 1; + if (!(extra & 0x4000)) + { + regs.fp[(extra >> 10) & 7] = value; + return 1; + } + reg = opcode & 7; + mode = (opcode >> 3) & 7; + size = (extra >> 10) & 7; + ad = -1; + switch (mode) + { + case 0: + switch (size) + { + case 6: + m68k_dreg (regs, reg) = (uae_u32)(((toint(value, -128.0, 127.0) & 0xff) + | (m68k_dreg (regs, reg) & ~0xff))); + break; + case 4: + m68k_dreg (regs, reg) = (uae_u32)(((toint(value, -32768.0, 32767.0) & 0xffff) + | (m68k_dreg (regs, reg) & ~0xffff))); + break; + case 0: + m68k_dreg (regs, reg) = (uae_u32)toint(value, -2147483648.0, 2147483647.0); + break; + case 1: + m68k_dreg (regs, reg) = from_single (value); + break; + default: + return 0; + } + return 1; + case 1: + return 0; + case 2: + ad = m68k_areg (regs, reg); + break; + case 3: + ad = m68k_areg (regs, reg); + m68k_areg (regs, reg) += reg == 7 ? sz2[size] : sz1[size]; + break; + case 4: + m68k_areg (regs, reg) -= reg == 7 ? sz2[size] : sz1[size]; + ad = m68k_areg (regs, reg); + break; + case 5: + ad = m68k_areg (regs, reg) + (uae_s32) (uae_s16) x_next_iword (); + break; + case 6: + ad = x_get_disp_ea_020 (m68k_areg (regs, reg), x_next_iword ()); + break; + case 7: + switch (reg) + { + case 0: + ad = (uae_s32) (uae_s16) x_next_iword (); + break; + case 1: + ad = x_next_ilong (); + break; + case 2: + ad = m68k_getpc (); + ad += (uae_s32) (uae_s16) x_next_iword (); + break; + case 3: + tmppc = m68k_getpc (); + tmp = x_next_iword (); + ad = x_get_disp_ea_020 (tmppc, tmp); + break; + case 4: + ad = m68k_getpc (); + m68k_setpc (ad + sz2[size]); + break; + default: + return 0; + } + } + switch (size) + { + case 0: + x_put_long (ad, (uae_u32)toint(value, -2147483648.0, 2147483647.0)); + break; + case 1: + x_put_long (ad, from_single (value)); + break; + case 2: + { + uae_u32 wrd1, wrd2, wrd3; + from_exten (value, &wrd1, &wrd2, &wrd3); + x_put_long (ad, wrd1); + ad += 4; + x_put_long (ad, wrd2); + ad += 4; + x_put_long (ad, wrd3); + } + break; + case 3: + { + uae_u32 wrd1, wrd2, wrd3; + from_pack (value, &wrd1, &wrd2, &wrd3); + x_put_long (ad, wrd1); + ad += 4; + x_put_long (ad, wrd2); + ad += 4; + x_put_long (ad, wrd3); + } + break; + case 4: + x_put_word (ad, (uae_s16) toint(value, -32768.0, 32767.0)); + break; + case 5: + { + uae_u32 wrd1, wrd2; + from_double (value, &wrd1, &wrd2); + x_put_long (ad, wrd1); + ad += 4; + x_put_long (ad, wrd2); + } + break; + case 6: + x_put_byte (ad, (uae_s8)toint(value, -128.0, 127.0)); + break; + default: + return 0; + } + return 1; } STATIC_INLINE int get_fp_ad (uae_u32 opcode, uae_u32 * ad) { - uae_u16 tmp; - uaecptr tmppc; - int mode; - int reg; + uae_u16 tmp; + uaecptr tmppc; + int mode; + int reg; - mode = (opcode >> 3) & 7; - reg = opcode & 7; - switch (mode) { - case 0: - case 1: - return 0; - case 2: - *ad = m68k_areg (regs, reg); - break; - case 3: - *ad = m68k_areg (regs, reg); - break; - case 4: - *ad = m68k_areg (regs, reg); - break; - case 5: - *ad = m68k_areg (regs, reg) + (uae_s32) (uae_s16) x_next_iword (); - break; - case 6: - *ad = x_get_disp_ea_020 (m68k_areg (regs, reg), x_next_iword ()); - break; - case 7: - switch (reg) { - case 0: - *ad = (uae_s32) (uae_s16) x_next_iword (); - break; - case 1: - *ad = x_next_ilong (); - break; - case 2: - *ad = m68k_getpc (); - *ad += (uae_s32) (uae_s16) x_next_iword (); - break; - case 3: - tmppc = m68k_getpc (); - tmp = x_next_iword (); - *ad = x_get_disp_ea_020 (tmppc, tmp); - break; - default: - return 0; - } - } - return 1; + mode = (opcode >> 3) & 7; + reg = opcode & 7; + switch (mode) + { + case 0: + case 1: + return 0; + case 2: + *ad = m68k_areg (regs, reg); + break; + case 3: + *ad = m68k_areg (regs, reg); + break; + case 4: + *ad = m68k_areg (regs, reg); + break; + case 5: + *ad = m68k_areg (regs, reg) + (uae_s32) (uae_s16) x_next_iword (); + break; + case 6: + *ad = x_get_disp_ea_020 (m68k_areg (regs, reg), x_next_iword ()); + break; + case 7: + switch (reg) + { + case 0: + *ad = (uae_s32) (uae_s16) x_next_iword (); + break; + case 1: + *ad = x_next_ilong (); + break; + case 2: + *ad = m68k_getpc (); + *ad += (uae_s32) (uae_s16) x_next_iword (); + break; + case 3: + tmppc = m68k_getpc (); + tmp = x_next_iword (); + *ad = x_get_disp_ea_020 (tmppc, tmp); + break; + default: + return 0; + } + } + return 1; } STATIC_INLINE int fpp_cond (int condition) { - int N = (regs.fp_result < 0.0); - int Z = (regs.fp_result == 0.0); - int NotANumber = 0; + int N = (regs.fp_result < 0.0); + int Z = (regs.fp_result == 0.0); + int NotANumber = 0; #ifdef HAVE_ISNAN - NotANumber = isnan (regs.fp_result); + NotANumber = isnan (regs.fp_result); #endif - if (NotANumber) - N=Z=0; + if (NotANumber) + N=Z=0; - switch (condition) { - case 0x00: - return 0; - case 0x01: - return Z; - case 0x02: - return !(NotANumber || Z || N); - case 0x03: - return Z || !(NotANumber || N); - case 0x04: - return N && !(NotANumber || Z); - case 0x05: - return Z || (N && !NotANumber); - case 0x06: - return !(NotANumber || Z); - case 0x07: - return !NotANumber; - case 0x08: - return NotANumber; - case 0x09: - return NotANumber || Z; - case 0x0a: - return NotANumber || !(N || Z); - case 0x0b: - return NotANumber || Z || !N; - case 0x0c: - return NotANumber || (N && !Z); - case 0x0d: - return NotANumber || Z || N; - case 0x0e: - return !Z; - case 0x0f: - return 1; - case 0x10: - return 0; - case 0x11: - return Z; - case 0x12: - return !(NotANumber || Z || N); - case 0x13: - return Z || !(NotANumber || N); - case 0x14: - return N && !(NotANumber || Z); - case 0x15: - return Z || (N && !NotANumber); - case 0x16: - return !(NotANumber || Z); - case 0x17: - return !NotANumber; - case 0x18: - return NotANumber; - case 0x19: - return NotANumber || Z; - case 0x1a: - return NotANumber || !(N || Z); - case 0x1b: - return NotANumber || Z || !N; - case 0x1c: - return NotANumber || (N && !Z); - case 0x1d: - return NotANumber || Z || N; - case 0x1e: - return !Z; - case 0x1f: - return 1; - } - return -1; + switch (condition) + { + case 0x00: + return 0; + case 0x01: + return Z; + case 0x02: + return !(NotANumber || Z || N); + case 0x03: + return Z || !(NotANumber || N); + case 0x04: + return N && !(NotANumber || Z); + case 0x05: + return Z || (N && !NotANumber); + case 0x06: + return !(NotANumber || Z); + case 0x07: + return !NotANumber; + case 0x08: + return NotANumber; + case 0x09: + return NotANumber || Z; + case 0x0a: + return NotANumber || !(N || Z); + case 0x0b: + return NotANumber || Z || !N; + case 0x0c: + return NotANumber || (N && !Z); + case 0x0d: + return NotANumber || Z || N; + case 0x0e: + return !Z; + case 0x0f: + return 1; + case 0x10: + return 0; + case 0x11: + return Z; + case 0x12: + return !(NotANumber || Z || N); + case 0x13: + return Z || !(NotANumber || N); + case 0x14: + return N && !(NotANumber || Z); + case 0x15: + return Z || (N && !NotANumber); + case 0x16: + return !(NotANumber || Z); + case 0x17: + return !NotANumber; + case 0x18: + return NotANumber; + case 0x19: + return NotANumber || Z; + case 0x1a: + return NotANumber || !(N || Z); + case 0x1b: + return NotANumber || Z || !N; + case 0x1c: + return NotANumber || (N && !Z); + case 0x1d: + return NotANumber || Z || N; + case 0x1e: + return !Z; + case 0x1f: + return 1; + } + return -1; } void fpuop_dbcc (uae_u32 opcode, struct regstruct ®s, uae_u16 extra) { - uaecptr pc = (uae_u32) m68k_getpc (); - uae_s32 disp; - int cc; + uaecptr pc = (uae_u32) m68k_getpc (); + uae_s32 disp; + int cc; #if DEBUG_FPP - if (!isinrom ()) - write_log (_T("fdbcc_opp at %08lx\n"), m68k_getpc ()); + if (!isinrom ()) + write_log (_T("fdbcc_opp at %08lx\n"), m68k_getpc ()); #endif - if (fault_if_no_fpu (opcode, regs, 4)) - return; + if (fault_if_no_fpu (opcode, regs, 4)) + return; - regs.fpiar = m68k_getpc () - 4; - disp = (uae_s32) (uae_s16) x_next_iword (); - cc = fpp_cond (extra & 0x3f); - if (cc == -1) { - fpu_op_illg (opcode, regs, 4); - } else if (!cc) { - int reg = opcode & 0x7; + regs.fpiar = m68k_getpc () - 4; + disp = (uae_s32) (uae_s16) x_next_iword (); + cc = fpp_cond (extra & 0x3f); + if (cc == -1) + { + fpu_op_illg (opcode, regs, 4); + } + else if (!cc) + { + int reg = opcode & 0x7; - m68k_dreg (regs, reg) = ((m68k_dreg (regs, reg) & 0xffff0000) - | (((m68k_dreg (regs, reg) & 0xffff) - 1) & 0xffff)); - if ((m68k_dreg (regs, reg) & 0xffff) != 0xffff) - m68k_setpc (pc + disp); - } + m68k_dreg (regs, reg) = ((m68k_dreg (regs, reg) & 0xffff0000) + | (((m68k_dreg (regs, reg) & 0xffff) - 1) & 0xffff)); + if ((m68k_dreg (regs, reg) & 0xffff) != 0xffff) + m68k_setpc (pc + disp); + } } void fpuop_scc (uae_u32 opcode, struct regstruct ®s, uae_u16 extra) { - uae_u32 ad; - int cc; + uae_u32 ad; + int cc; #if DEBUG_FPP - if (!isinrom ()) - write_log (_T("fscc_opp at %08lx\n"), m68k_getpc ()); + if (!isinrom ()) + write_log (_T("fscc_opp at %08lx\n"), m68k_getpc ()); #endif - if (fault_if_no_fpu (opcode, regs, 4)) - return; + if (fault_if_no_fpu (opcode, regs, 4)) + return; - regs.fpiar = m68k_getpc () - 4; - cc = fpp_cond (extra & 0x3f); - if (cc == -1) { - fpu_op_illg (opcode, regs, 4); - } else if ((opcode & 0x38) == 0) { - m68k_dreg (regs, opcode & 7) = (m68k_dreg (regs, opcode & 7) & ~0xff) | (cc ? 0xff : 0x00); - } else { - if (get_fp_ad (opcode, &ad) == 0) { - m68k_setpc (m68k_getpc () - 4); - op_illg (opcode); - } else - x_put_byte (ad, cc ? 0xff : 0x00); - } + regs.fpiar = m68k_getpc () - 4; + cc = fpp_cond (extra & 0x3f); + if (cc == -1) + { + fpu_op_illg (opcode, regs, 4); + } + else if ((opcode & 0x38) == 0) + { + m68k_dreg (regs, opcode & 7) = (m68k_dreg (regs, opcode & 7) & ~0xff) | (cc ? 0xff : 0x00); + } + else + { + if (get_fp_ad (opcode, &ad) == 0) + { + m68k_setpc (m68k_getpc () - 4); + op_illg (opcode); + } + else + x_put_byte (ad, cc ? 0xff : 0x00); + } } void fpuop_trapcc (uae_u32 opcode, struct regstruct ®s, uaecptr oldpc, uae_u16 extra) { - int cc; - uaecptr pc = m68k_getpc (); + int cc; + uaecptr pc = m68k_getpc (); #if DEBUG_FPP - if (!isinrom ()) - write_log (_T("ftrapcc_opp at %08lx\n"), m68k_getpc ()); + if (!isinrom ()) + write_log (_T("ftrapcc_opp at %08lx\n"), m68k_getpc ()); #endif - if (fault_if_no_fpu (opcode, regs, pc - oldpc)) - return; + if (fault_if_no_fpu (opcode, regs, pc - oldpc)) + return; - regs.fpiar = oldpc; - cc = fpp_cond (extra & 0x3f); - if (cc == -1) { - fpu_op_illg (opcode, regs, pc - oldpc); - } - if (cc) - Exception (7); + regs.fpiar = oldpc; + cc = fpp_cond (extra & 0x3f); + if (cc == -1) + { + fpu_op_illg (opcode, regs, pc - oldpc); + } + if (cc) + Exception (7); } void fpuop_bcc (uae_u32 opcode, struct regstruct ®s, uaecptr oldpc, uae_u32 extra) { - int cc; - uaecptr pc = m68k_getpc (); + int cc; + uaecptr pc = m68k_getpc (); #if DEBUG_FPP - if (!isinrom ()) - write_log (_T("fbcc_opp at %08lx\n"), m68k_getpc ()); + if (!isinrom ()) + write_log (_T("fbcc_opp at %08lx\n"), m68k_getpc ()); #endif - if (fault_if_no_fpu (opcode, regs, pc - oldpc)) - return; + if (fault_if_no_fpu (opcode, regs, pc - oldpc)) + return; - regs.fpiar = oldpc; - cc = fpp_cond (opcode & 0x3f); - if (cc == -1) { - fpu_op_illg (opcode, regs, pc - oldpc); - } else if (cc) { - if ((opcode & 0x40) == 0) - extra = (uae_s32) (uae_s16) extra; - m68k_setpc (oldpc + extra); - } + regs.fpiar = oldpc; + cc = fpp_cond (opcode & 0x3f); + if (cc == -1) + { + fpu_op_illg (opcode, regs, pc - oldpc); + } + else if (cc) + { + if ((opcode & 0x40) == 0) + extra = (uae_s32) (uae_s16) extra; + m68k_setpc (oldpc + extra); + } } void fpuop_save (uae_u32 opcode, struct regstruct ®s) { - uae_u32 ad; - int incr = (opcode & 0x38) == 0x20 ? -1 : 1; - int fpu_version = get_fpu_version(); - uaecptr pc = m68k_getpc () - 2; - int i; + uae_u32 ad; + int incr = (opcode & 0x38) == 0x20 ? -1 : 1; + int fpu_version = get_fpu_version(); + uaecptr pc = m68k_getpc () - 2; + int i; #if DEBUG_FPP - if (!isinrom ()) - write_log (_T("fsave_opp at %08lx\n"), m68k_getpc ()); + if (!isinrom ()) + write_log (_T("fsave_opp at %08lx\n"), m68k_getpc ()); #endif - if (fault_if_no_fpu (opcode, regs, 2)) - return; + if (fault_if_no_fpu (opcode, regs, 2)) + return; - if (get_fp_ad (opcode, &ad) == 0) { - fpu_op_illg (opcode, regs, 2); - return; - } + if (get_fp_ad (opcode, &ad) == 0) + { + fpu_op_illg (opcode, regs, 2); + return; + } // if (regs.fpcr == 0 && regs.fpsr == 0 && regs.fpiar == 0 && -// regs.fp[0] == +// regs.fp[0] == - regs.fpiar = pc; + regs.fpiar = pc; - if (currprefs.fpu_model == 68060) { - /* 12 byte 68060 IDLE frame. */ - if (incr < 0) { - ad -= 4; - x_put_long (ad, 0x00000000); - ad -= 4; - x_put_long (ad, 0x00000000); - ad -= 4; - x_put_long (ad, 0x00006000); - } else { - x_put_long (ad, 0x00006000); - ad += 4; - x_put_long (ad, 0x00000000); - ad += 4; - x_put_long (ad, 0x00000000); - ad += 4; - } - } else if (currprefs.fpu_model == 68040) { - /* 4 byte 68040 IDLE frame. */ - if (incr < 0) { - ad -= 4; - x_put_long (ad, fpu_version << 24); - } else { - x_put_long (ad, fpu_version << 24); - ad += 4; - } - } else { /* 68881/68882 */ - int idle_size = currprefs.fpu_model == 68882 ? 0x38 : 0x18; - if (incr < 0) { - ad -= 4; - x_put_long (ad, 0x70000000); - for (i = 0; i < (idle_size - 1) / 4; i++) { - ad -= 4; - x_put_long (ad, 0x00000000); - } - ad -= 4; - x_put_long (ad, (fpu_version << 24) | (idle_size << 16)); - } else { - x_put_long (ad, (fpu_version << 24) | (idle_size << 16)); - ad += 4; - for (i = 0; i < (idle_size - 1) / 4; i++) { - x_put_long (ad, 0x00000000); - ad += 4; - } - x_put_long (ad, 0x70000000); - ad += 4; - } - } - if ((opcode & 0x38) == 0x18) - m68k_areg (regs, opcode & 7) = ad; - if ((opcode & 0x38) == 0x20) - m68k_areg (regs, opcode & 7) = ad; + if (currprefs.fpu_model == 68060) + { + /* 12 byte 68060 IDLE frame. */ + if (incr < 0) + { + ad -= 4; + x_put_long (ad, 0x00000000); + ad -= 4; + x_put_long (ad, 0x00000000); + ad -= 4; + x_put_long (ad, 0x00006000); + } + else + { + x_put_long (ad, 0x00006000); + ad += 4; + x_put_long (ad, 0x00000000); + ad += 4; + x_put_long (ad, 0x00000000); + ad += 4; + } + } + else if (currprefs.fpu_model == 68040) + { + /* 4 byte 68040 IDLE frame. */ + if (incr < 0) + { + ad -= 4; + x_put_long (ad, fpu_version << 24); + } + else + { + x_put_long (ad, fpu_version << 24); + ad += 4; + } + } + else /* 68881/68882 */ + { + int idle_size = currprefs.fpu_model == 68882 ? 0x38 : 0x18; + if (incr < 0) + { + ad -= 4; + x_put_long (ad, 0x70000000); + for (i = 0; i < (idle_size - 1) / 4; i++) + { + ad -= 4; + x_put_long (ad, 0x00000000); + } + ad -= 4; + x_put_long (ad, (fpu_version << 24) | (idle_size << 16)); + } + else + { + x_put_long (ad, (fpu_version << 24) | (idle_size << 16)); + ad += 4; + for (i = 0; i < (idle_size - 1) / 4; i++) + { + x_put_long (ad, 0x00000000); + ad += 4; + } + x_put_long (ad, 0x70000000); + ad += 4; + } + } + if ((opcode & 0x38) == 0x18) + m68k_areg (regs, opcode & 7) = ad; + if ((opcode & 0x38) == 0x20) + m68k_areg (regs, opcode & 7) = ad; } void fpuop_restore (uae_u32 opcode, struct regstruct ®s) { - uaecptr pc = m68k_getpc () - 2; - uae_u32 ad; - uae_u32 d; - int incr = (opcode & 0x38) == 0x20 ? -1 : 1; + uaecptr pc = m68k_getpc () - 2; + uae_u32 ad; + uae_u32 d; + int incr = (opcode & 0x38) == 0x20 ? -1 : 1; #if DEBUG_FPP - if (!isinrom ()) - write_log (_T("frestore_opp at %08lx\n"), m68k_getpc ()); + if (!isinrom ()) + write_log (_T("frestore_opp at %08lx\n"), m68k_getpc ()); #endif - if (fault_if_no_fpu (opcode, regs, 2)) - return; + if (fault_if_no_fpu (opcode, regs, 2)) + return; - if (get_fp_ad (opcode, &ad) == 0) { - fpu_op_illg (opcode, regs, 2); - return; - } + if (get_fp_ad (opcode, &ad) == 0) + { + fpu_op_illg (opcode, regs, 2); + return; + } - regs.fpiar = pc; + regs.fpiar = pc; - if (currprefs.fpu_model == 68060) { - /* all 68060 FPU frames are 12 bytes */ - if (incr < 0) { - ad -= 4; - d = x_get_long (ad); - ad -= 8; - } else { - d = x_get_long (ad); - ad += 4; - ad += 8; - } + if (currprefs.fpu_model == 68060) + { + /* all 68060 FPU frames are 12 bytes */ + if (incr < 0) + { + ad -= 4; + d = x_get_long (ad); + ad -= 8; + } + else + { + d = x_get_long (ad); + ad += 4; + ad += 8; + } - } else if (currprefs.fpu_model == 68040) { - /* 68040 */ - if (incr < 0) { - /* @@@ This may be wrong. */ - ad -= 4; - d = x_get_long (ad); - if ((d & 0xff000000) != 0) { /* Not a NULL frame? */ - if ((d & 0x00ff0000) == 0) { /* IDLE */ - } else if ((d & 0x00ff0000) == 0x00300000) { /* UNIMP */ - ad -= 44; - } else if ((d & 0x00ff0000) == 0x00600000) { /* BUSY */ - ad -= 92; - } - } - } else { - d = x_get_long (ad); - ad += 4; - if ((d & 0xff000000) != 0) { /* Not a NULL frame? */ - if ((d & 0x00ff0000) == 0) { /* IDLE */ - } else if ((d & 0x00ff0000) == 0x00300000) { /* UNIMP */ - ad += 44; - } else if ((d & 0x00ff0000) == 0x00600000) { /* BUSY */ - ad += 92; - } - } - } - } else { /* 68881/68882 */ - if (incr < 0) { - ad -= 4; - d = x_get_long (ad); - if ((d & 0xff000000) != 0) { - if ((d & 0x00ff0000) == 0x00180000) - ad -= 6 * 4; - else if ((d & 0x00ff0000) == 0x00380000) - ad -= 14 * 4; - else if ((d & 0x00ff0000) == 0x00b40000) - ad -= 45 * 4; - } - } else { - d = x_get_long (ad); - ad += 4; - if ((d & 0xff000000) != 0) { - if ((d & 0x00ff0000) == 0x00180000) - ad += 6 * 4; - else if ((d & 0x00ff0000) == 0x00380000) - ad += 14 * 4; - else if ((d & 0x00ff0000) == 0x00b40000) - ad += 45 * 4; - } - } - } - if ((opcode & 0x38) == 0x18) - m68k_areg (regs, opcode & 7) = ad; - if ((opcode & 0x38) == 0x20) - m68k_areg (regs, opcode & 7) = ad; + } + else if (currprefs.fpu_model == 68040) + { + /* 68040 */ + if (incr < 0) + { + /* @@@ This may be wrong. */ + ad -= 4; + d = x_get_long (ad); + if ((d & 0xff000000) != 0) /* Not a NULL frame? */ + { + if ((d & 0x00ff0000) == 0) /* IDLE */ + { + } + else if ((d & 0x00ff0000) == 0x00300000) /* UNIMP */ + { + ad -= 44; + } + else if ((d & 0x00ff0000) == 0x00600000) /* BUSY */ + { + ad -= 92; + } + } + } + else + { + d = x_get_long (ad); + ad += 4; + if ((d & 0xff000000) != 0) /* Not a NULL frame? */ + { + if ((d & 0x00ff0000) == 0) /* IDLE */ + { + } + else if ((d & 0x00ff0000) == 0x00300000) /* UNIMP */ + { + ad += 44; + } + else if ((d & 0x00ff0000) == 0x00600000) /* BUSY */ + { + ad += 92; + } + } + } + } + else /* 68881/68882 */ + { + if (incr < 0) + { + ad -= 4; + d = x_get_long (ad); + if ((d & 0xff000000) != 0) + { + if ((d & 0x00ff0000) == 0x00180000) + ad -= 6 * 4; + else if ((d & 0x00ff0000) == 0x00380000) + ad -= 14 * 4; + else if ((d & 0x00ff0000) == 0x00b40000) + ad -= 45 * 4; + } + } + else + { + d = x_get_long (ad); + ad += 4; + if ((d & 0xff000000) != 0) + { + if ((d & 0x00ff0000) == 0x00180000) + ad += 6 * 4; + else if ((d & 0x00ff0000) == 0x00380000) + ad += 14 * 4; + else if ((d & 0x00ff0000) == 0x00b40000) + ad += 45 * 4; + } + } + } + if ((opcode & 0x38) == 0x18) + m68k_areg (regs, opcode & 7) = ad; + if ((opcode & 0x38) == 0x20) + m68k_areg (regs, opcode & 7) = ad; } static void fround (int reg) { - regs.fp[reg] = (float)regs.fp[reg]; + regs.fp[reg] = (float)regs.fp[reg]; } static void fpuop_arithmetic2 (uae_u32 opcode, struct regstruct ®s, uae_u16 extra) { - int reg; - fptype src; - uaecptr pc = m68k_getpc () - 4; + int reg; + fptype src; + uaecptr pc = m68k_getpc () - 4; #if DEBUG_FPP - if (!isinrom ()) - write_log (_T("FPP %04lx %04x at %08lx\n"), opcode & 0xffff, extra, pc); + if (!isinrom ()) + write_log (_T("FPP %04lx %04x at %08lx\n"), opcode & 0xffff, extra, pc); #endif - if (fault_if_no_fpu (opcode, regs, 4)) - return; + if (fault_if_no_fpu (opcode, regs, 4)) + return; - switch ((extra >> 13) & 0x7) { + switch ((extra >> 13) & 0x7) + { case 3: - if (put_fp_value (regs, regs.fp[(extra >> 7) & 7], opcode, extra) == 0) { - m68k_setpc (pc); - op_illg (opcode); - } - return; + if (put_fp_value (regs, regs.fp[(extra >> 7) & 7], opcode, extra) == 0) + { + m68k_setpc (pc); + op_illg (opcode); + } + return; case 4: case 5: - if ((opcode & 0x38) == 0) { - if (extra & 0x2000) { - if (extra & 0x1000) - m68k_dreg (regs, opcode & 7) = regs.fpcr & 0xffff; - if (extra & 0x0800) - m68k_dreg (regs, opcode & 7) = get_fpsr (); - if (extra & 0x0400) - m68k_dreg (regs, opcode & 7) = regs.fpiar; - } else { - if (extra & 0x1000) { - regs.fpcr = m68k_dreg (regs, opcode & 7); - native_set_fpucw (regs.fpcr); - } - if (extra & 0x0800) - set_fpsr (m68k_dreg (regs, opcode & 7)); - if (extra & 0x0400) - regs.fpiar = m68k_dreg (regs, opcode & 7); - } - } else if ((opcode & 0x38) == 0x08) { - if (extra & 0x2000) { - if (extra & 0x1000) - m68k_areg (regs, opcode & 7) = regs.fpcr & 0xffff; - if (extra & 0x0800) - m68k_areg (regs, opcode & 7) = get_fpsr (); - if (extra & 0x0400) - m68k_areg (regs, opcode & 7) = regs.fpiar; - } else { - if (extra & 0x1000) { - regs.fpcr = m68k_areg (regs, opcode & 7); - native_set_fpucw (regs.fpcr); - } - if (extra & 0x0800) - set_fpsr (m68k_areg (regs, opcode & 7)); - if (extra & 0x0400) - regs.fpiar = m68k_areg (regs, opcode & 7); - } - } else if ((opcode & 0x3f) == 0x3c) { - if ((extra & 0x2000) == 0) { - if (extra & 0x1000) { - regs.fpcr = x_next_ilong (); - native_set_fpucw (regs.fpcr); - } - if (extra & 0x0800) - set_fpsr (x_next_ilong ()); - if (extra & 0x0400) - regs.fpiar = x_next_ilong (); - } - } else if (extra & 0x2000) { - /* FMOVEM FPP->memory */ - uae_u32 ad; - int incr = 0; + if ((opcode & 0x38) == 0) + { + if (extra & 0x2000) + { + if (extra & 0x1000) + m68k_dreg (regs, opcode & 7) = regs.fpcr & 0xffff; + if (extra & 0x0800) + m68k_dreg (regs, opcode & 7) = get_fpsr (); + if (extra & 0x0400) + m68k_dreg (regs, opcode & 7) = regs.fpiar; + } + else + { + if (extra & 0x1000) + { + regs.fpcr = m68k_dreg (regs, opcode & 7); + native_set_fpucw (regs.fpcr); + } + if (extra & 0x0800) + set_fpsr (m68k_dreg (regs, opcode & 7)); + if (extra & 0x0400) + regs.fpiar = m68k_dreg (regs, opcode & 7); + } + } + else if ((opcode & 0x38) == 0x08) + { + if (extra & 0x2000) + { + if (extra & 0x1000) + m68k_areg (regs, opcode & 7) = regs.fpcr & 0xffff; + if (extra & 0x0800) + m68k_areg (regs, opcode & 7) = get_fpsr (); + if (extra & 0x0400) + m68k_areg (regs, opcode & 7) = regs.fpiar; + } + else + { + if (extra & 0x1000) + { + regs.fpcr = m68k_areg (regs, opcode & 7); + native_set_fpucw (regs.fpcr); + } + if (extra & 0x0800) + set_fpsr (m68k_areg (regs, opcode & 7)); + if (extra & 0x0400) + regs.fpiar = m68k_areg (regs, opcode & 7); + } + } + else if ((opcode & 0x3f) == 0x3c) + { + if ((extra & 0x2000) == 0) + { + if (extra & 0x1000) + { + regs.fpcr = x_next_ilong (); + native_set_fpucw (regs.fpcr); + } + if (extra & 0x0800) + set_fpsr (x_next_ilong ()); + if (extra & 0x0400) + regs.fpiar = x_next_ilong (); + } + } + else if (extra & 0x2000) + { + /* FMOVEM FPP->memory */ + uae_u32 ad; + int incr = 0; - if (get_fp_ad (opcode, &ad) == 0) { - m68k_setpc (pc); - op_illg (opcode); - return; - } - if ((opcode & 0x38) == 0x20) { - if (extra & 0x1000) - incr += 4; - if (extra & 0x0800) - incr += 4; - if (extra & 0x0400) - incr += 4; - } - ad -= incr; - if (extra & 0x1000) { - x_put_long (ad, regs.fpcr & 0xffff); - ad += 4; - } - if (extra & 0x0800) { - x_put_long (ad, get_fpsr()); - ad += 4; - } - if (extra & 0x0400) { - x_put_long (ad, regs.fpiar); - ad += 4; - } - ad -= incr; - if ((opcode & 0x38) == 0x18) - m68k_areg (regs, opcode & 7) = ad; - if ((opcode & 0x38) == 0x20) - m68k_areg (regs, opcode & 7) = ad; - } else { - /* FMOVEM memory->FPP */ - uae_u32 ad; - int incr = 0; + if (get_fp_ad (opcode, &ad) == 0) + { + m68k_setpc (pc); + op_illg (opcode); + return; + } + if ((opcode & 0x38) == 0x20) + { + if (extra & 0x1000) + incr += 4; + if (extra & 0x0800) + incr += 4; + if (extra & 0x0400) + incr += 4; + } + ad -= incr; + if (extra & 0x1000) + { + x_put_long (ad, regs.fpcr & 0xffff); + ad += 4; + } + if (extra & 0x0800) + { + x_put_long (ad, get_fpsr()); + ad += 4; + } + if (extra & 0x0400) + { + x_put_long (ad, regs.fpiar); + ad += 4; + } + ad -= incr; + if ((opcode & 0x38) == 0x18) + m68k_areg (regs, opcode & 7) = ad; + if ((opcode & 0x38) == 0x20) + m68k_areg (regs, opcode & 7) = ad; + } + else + { + /* FMOVEM memory->FPP */ + uae_u32 ad; + int incr = 0; - if (get_fp_ad (opcode, &ad) == 0) { - m68k_setpc (pc); - op_illg (opcode); - return; - } - if((opcode & 0x38) == 0x20) { - if (extra & 0x1000) - incr += 4; - if (extra & 0x0800) - incr += 4; - if (extra & 0x0400) - incr += 4; - ad = ad - incr; - } - if (extra & 0x1000) { - regs.fpcr = x_get_long (ad); - native_set_fpucw(regs.fpcr); - ad += 4; - } - if (extra & 0x0800) { - set_fpsr(x_get_long (ad)); - ad += 4; - } - if (extra & 0x0400) { - regs.fpiar = x_get_long (ad); - ad += 4; - } - if ((opcode & 0x38) == 0x18) - m68k_areg (regs, opcode & 7) = ad; - if ((opcode & 0x38) == 0x20) - m68k_areg (regs, opcode & 7) = ad - incr; - } - return; + if (get_fp_ad (opcode, &ad) == 0) + { + m68k_setpc (pc); + op_illg (opcode); + return; + } + if((opcode & 0x38) == 0x20) + { + if (extra & 0x1000) + incr += 4; + if (extra & 0x0800) + incr += 4; + if (extra & 0x0400) + incr += 4; + ad = ad - incr; + } + if (extra & 0x1000) + { + regs.fpcr = x_get_long (ad); + native_set_fpucw(regs.fpcr); + ad += 4; + } + if (extra & 0x0800) + { + set_fpsr(x_get_long (ad)); + ad += 4; + } + if (extra & 0x0400) + { + regs.fpiar = x_get_long (ad); + ad += 4; + } + if ((opcode & 0x38) == 0x18) + m68k_areg (regs, opcode & 7) = ad; + if ((opcode & 0x38) == 0x20) + m68k_areg (regs, opcode & 7) = ad - incr; + } + return; case 6: case 7: - { - uae_u32 ad, list = 0; - int incr = 0; - if (extra & 0x2000) { - /* FMOVEM FPP->memory */ - if (get_fp_ad (opcode, &ad) == 0) { - m68k_setpc (pc); - op_illg (opcode); - return; - } - switch ((extra >> 11) & 3) { - case 0: /* static pred */ - list = extra & 0xff; - incr = -1; - break; - case 1: /* dynamic pred */ - list = m68k_dreg (regs, (extra >> 4) & 3) & 0xff; - incr = -1; - break; - case 2: /* static postinc */ - list = extra & 0xff; - incr = 1; - break; - case 3: /* dynamic postinc */ - list = m68k_dreg (regs, (extra >> 4) & 3) & 0xff; - incr = 1; - break; - } - if (incr < 0) { - for (reg = 7; reg >= 0; reg--) { - uae_u32 wrd1, wrd2, wrd3; - if (list & 0x80) { - from_exten (regs.fp[reg], &wrd1, &wrd2, &wrd3); - ad -= 4; - x_put_long (ad, wrd3); - ad -= 4; - x_put_long (ad, wrd2); - ad -= 4; - x_put_long (ad, wrd1); - } - list <<= 1; - } - } else { - for (reg = 0; reg <= 7; reg++) { - uae_u32 wrd1, wrd2, wrd3; - if (list & 0x80) { - from_exten (regs.fp[reg], &wrd1, &wrd2, &wrd3); - x_put_long (ad, wrd1); - ad += 4; - x_put_long (ad, wrd2); - ad += 4; - x_put_long (ad, wrd3); - ad += 4; - } - list <<= 1; - } - } - if ((opcode & 0x38) == 0x18) - m68k_areg (regs, opcode & 7) = ad; - if ((opcode & 0x38) == 0x20) - m68k_areg (regs, opcode & 7) = ad; - } else { - /* FMOVEM memory->FPP */ - if (get_fp_ad (opcode, &ad) == 0) { - m68k_setpc (pc); - op_illg (opcode); - return; - } - switch ((extra >> 11) & 3) { - case 0: /* static pred */ - list = extra & 0xff; - incr = -1; - break; - case 1: /* dynamic pred */ - list = m68k_dreg (regs, (extra >> 4) & 3) & 0xff; - incr = -1; - break; - case 2: /* static postinc */ - list = extra & 0xff; - incr = 1; - break; - case 3: /* dynamic postinc */ - list = m68k_dreg (regs, (extra >> 4) & 3) & 0xff; - incr = 1; - break; - } - if (incr < 0) { - for (reg = 7; reg >= 0; reg--) { - uae_u32 wrd1, wrd2, wrd3; - if (list & 0x80) { - ad -= 4; - wrd3 = x_get_long (ad); - ad -= 4; - wrd2 = x_get_long (ad); - ad -= 4; - wrd1 = x_get_long (ad); - regs.fp[reg] = to_exten(wrd1, wrd2, wrd3); - } - list <<= 1; - } - } else { - for (reg = 0; reg <= 7; reg++) { - uae_u32 wrd1, wrd2, wrd3; - if (list & 0x80) { - wrd1 = x_get_long (ad); - ad += 4; - wrd2 = x_get_long (ad); - ad += 4; - wrd3 = x_get_long (ad); - ad += 4; - regs.fp[reg] = to_exten(wrd1, wrd2, wrd3); - } - list <<= 1; - } - } - if ((opcode & 0x38) == 0x18) - m68k_areg (regs, opcode & 7) = ad; - if ((opcode & 0x38) == 0x20) - m68k_areg (regs, opcode & 7) = ad; - } - } - return; + { + uae_u32 ad, list = 0; + int incr = 0; + if (extra & 0x2000) + { + /* FMOVEM FPP->memory */ + if (get_fp_ad (opcode, &ad) == 0) + { + m68k_setpc (pc); + op_illg (opcode); + return; + } + switch ((extra >> 11) & 3) + { + case 0: /* static pred */ + list = extra & 0xff; + incr = -1; + break; + case 1: /* dynamic pred */ + list = m68k_dreg (regs, (extra >> 4) & 3) & 0xff; + incr = -1; + break; + case 2: /* static postinc */ + list = extra & 0xff; + incr = 1; + break; + case 3: /* dynamic postinc */ + list = m68k_dreg (regs, (extra >> 4) & 3) & 0xff; + incr = 1; + break; + } + if (incr < 0) + { + for (reg = 7; reg >= 0; reg--) + { + uae_u32 wrd1, wrd2, wrd3; + if (list & 0x80) + { + from_exten (regs.fp[reg], &wrd1, &wrd2, &wrd3); + ad -= 4; + x_put_long (ad, wrd3); + ad -= 4; + x_put_long (ad, wrd2); + ad -= 4; + x_put_long (ad, wrd1); + } + list <<= 1; + } + } + else + { + for (reg = 0; reg <= 7; reg++) + { + uae_u32 wrd1, wrd2, wrd3; + if (list & 0x80) + { + from_exten (regs.fp[reg], &wrd1, &wrd2, &wrd3); + x_put_long (ad, wrd1); + ad += 4; + x_put_long (ad, wrd2); + ad += 4; + x_put_long (ad, wrd3); + ad += 4; + } + list <<= 1; + } + } + if ((opcode & 0x38) == 0x18) + m68k_areg (regs, opcode & 7) = ad; + if ((opcode & 0x38) == 0x20) + m68k_areg (regs, opcode & 7) = ad; + } + else + { + /* FMOVEM memory->FPP */ + if (get_fp_ad (opcode, &ad) == 0) + { + m68k_setpc (pc); + op_illg (opcode); + return; + } + switch ((extra >> 11) & 3) + { + case 0: /* static pred */ + list = extra & 0xff; + incr = -1; + break; + case 1: /* dynamic pred */ + list = m68k_dreg (regs, (extra >> 4) & 3) & 0xff; + incr = -1; + break; + case 2: /* static postinc */ + list = extra & 0xff; + incr = 1; + break; + case 3: /* dynamic postinc */ + list = m68k_dreg (regs, (extra >> 4) & 3) & 0xff; + incr = 1; + break; + } + if (incr < 0) + { + for (reg = 7; reg >= 0; reg--) + { + uae_u32 wrd1, wrd2, wrd3; + if (list & 0x80) + { + ad -= 4; + wrd3 = x_get_long (ad); + ad -= 4; + wrd2 = x_get_long (ad); + ad -= 4; + wrd1 = x_get_long (ad); + regs.fp[reg] = to_exten(wrd1, wrd2, wrd3); + } + list <<= 1; + } + } + else + { + for (reg = 0; reg <= 7; reg++) + { + uae_u32 wrd1, wrd2, wrd3; + if (list & 0x80) + { + wrd1 = x_get_long (ad); + ad += 4; + wrd2 = x_get_long (ad); + ad += 4; + wrd3 = x_get_long (ad); + ad += 4; + regs.fp[reg] = to_exten(wrd1, wrd2, wrd3); + } + list <<= 1; + } + } + if ((opcode & 0x38) == 0x18) + m68k_areg (regs, opcode & 7) = ad; + if ((opcode & 0x38) == 0x20) + m68k_areg (regs, opcode & 7) = ad; + } + } + return; case 0: case 2: /* Extremely common */ - reg = (extra >> 7) & 7; - if ((extra & 0xfc00) == 0x5c00) { - switch (extra & 0x7f) { - case 0x00: - regs.fp[reg] = *fp_pi; - break; - case 0x0b: - regs.fp[reg] = *fp_l10_2; - break; - case 0x0c: - regs.fp[reg] = *fp_exp_1; - break; - case 0x0d: - regs.fp[reg] = *fp_l2_e; - break; - case 0x0e: - regs.fp[reg] = *fp_l10_e; - break; - case 0x0f: - regs.fp[reg] = 0.0; - break; - case 0x30: - regs.fp[reg] = *fp_ln_2; - break; - case 0x31: - regs.fp[reg] = *fp_ln_10; - break; - case 0x32: - regs.fp[reg] = (fptype)fp_1e0; - break; - case 0x33: - regs.fp[reg] = (fptype)fp_1e1; - break; - case 0x34: - regs.fp[reg] = (fptype)fp_1e2; - break; - case 0x35: - regs.fp[reg] = (fptype)fp_1e4; - break; - case 0x36: - regs.fp[reg] = (fptype)fp_1e8; - break; - case 0x37: - regs.fp[reg] = *fp_1e16; - break; - case 0x38: - regs.fp[reg] = *fp_1e32; - break; - case 0x39: - regs.fp[reg] = *fp_1e64; - break; - case 0x3a: - regs.fp[reg] = *fp_1e128; - break; - case 0x3b: - regs.fp[reg] = *fp_1e256; - break; - case 0x3c: - regs.fp[reg] = *fp_1e512; - break; - case 0x3d: - regs.fp[reg] = *fp_1e1024; - break; - case 0x3e: - regs.fp[reg] = *fp_1e2048; - break; - case 0x3f: - regs.fp[reg] = *fp_1e4096; - break; - default: - m68k_setpc (pc); - op_illg (opcode); - return; - } - MAKE_FPSR (regs.fp[reg]); - return; - } - if (get_fp_value (opcode, extra, &src) == 0) { - m68k_setpc (pc); - op_illg (opcode); - return; - } + reg = (extra >> 7) & 7; + if ((extra & 0xfc00) == 0x5c00) + { + switch (extra & 0x7f) + { + case 0x00: + regs.fp[reg] = *fp_pi; + break; + case 0x0b: + regs.fp[reg] = *fp_l10_2; + break; + case 0x0c: + regs.fp[reg] = *fp_exp_1; + break; + case 0x0d: + regs.fp[reg] = *fp_l2_e; + break; + case 0x0e: + regs.fp[reg] = *fp_l10_e; + break; + case 0x0f: + regs.fp[reg] = 0.0; + break; + case 0x30: + regs.fp[reg] = *fp_ln_2; + break; + case 0x31: + regs.fp[reg] = *fp_ln_10; + break; + case 0x32: + regs.fp[reg] = (fptype)fp_1e0; + break; + case 0x33: + regs.fp[reg] = (fptype)fp_1e1; + break; + case 0x34: + regs.fp[reg] = (fptype)fp_1e2; + break; + case 0x35: + regs.fp[reg] = (fptype)fp_1e4; + break; + case 0x36: + regs.fp[reg] = (fptype)fp_1e8; + break; + case 0x37: + regs.fp[reg] = *fp_1e16; + break; + case 0x38: + regs.fp[reg] = *fp_1e32; + break; + case 0x39: + regs.fp[reg] = *fp_1e64; + break; + case 0x3a: + regs.fp[reg] = *fp_1e128; + break; + case 0x3b: + regs.fp[reg] = *fp_1e256; + break; + case 0x3c: + regs.fp[reg] = *fp_1e512; + break; + case 0x3d: + regs.fp[reg] = *fp_1e1024; + break; + case 0x3e: + regs.fp[reg] = *fp_1e2048; + break; + case 0x3f: + regs.fp[reg] = *fp_1e4096; + break; + default: + m68k_setpc (pc); + op_illg (opcode); + return; + } + MAKE_FPSR (regs.fp[reg]); + return; + } + if (get_fp_value (opcode, extra, &src) == 0) + { + m68k_setpc (pc); + op_illg (opcode); + return; + } - regs.fpiar = pc; + regs.fpiar = pc; - switch (extra & 0x7f) { + switch (extra & 0x7f) + { - case 0x00: /* FMOVE */ - case 0x40: /* Explicit rounding. This is just a quick fix. */ - case 0x44: /* Same for all other cases that have three choices */ - regs.fp[reg] = src; /* Brian King was here. */ - /* to register needs FPSR updated. See Motorola 68K Manual. */ - if ((extra & 0x44) == 0x40) - fround (reg); - break; - case 0x01: /* FINT */ - /* need to take the current rounding mode into account */ + case 0x00: /* FMOVE */ + case 0x40: /* Explicit rounding. This is just a quick fix. */ + case 0x44: /* Same for all other cases that have three choices */ + regs.fp[reg] = src; /* Brian King was here. */ + /* to register needs FPSR updated. See Motorola 68K Manual. */ + if ((extra & 0x44) == 0x40) + fround (reg); + break; + case 0x01: /* FINT */ + /* need to take the current rounding mode into account */ #if defined(X86_MSVC_ASSEMBLY) { - fptype tmp_fp; + fptype tmp_fp; - __asm { - fld LDPTR src - frndint - fstp LDPTR tmp_fp - } - regs.fp[reg] = tmp_fp; - } + __asm + { + fld LDPTR src + frndint + fstp LDPTR tmp_fp + } + regs.fp[reg] = tmp_fp; + } #else /* no X86_MSVC */ - switch ((regs.fpcr >> 4) & 3) { - case 0: /* to nearest */ - regs.fp[reg] = floor (src + 0.5); - break; - case 1: /* to zero */ - if (src >= 0.0) - regs.fp[reg] = floor (src); - else - regs.fp[reg] = ceil (src); - break; - case 2: /* down */ - regs.fp[reg] = floor (src); - break; - case 3: /* up */ - regs.fp[reg] = ceil (src); - break; - default: /* never reached */ - regs.fp[reg] = src; - } + switch ((regs.fpcr >> 4) & 3) + { + case 0: /* to nearest */ + regs.fp[reg] = floor (src + 0.5); + break; + case 1: /* to zero */ + if (src >= 0.0) + regs.fp[reg] = floor (src); + else + regs.fp[reg] = ceil (src); + break; + case 2: /* down */ + regs.fp[reg] = floor (src); + break; + case 3: /* up */ + regs.fp[reg] = ceil (src); + break; + default: /* never reached */ + regs.fp[reg] = src; + } #endif /* X86_MSVC */ - break; - case 0x02: /* FSINH */ - regs.fp[reg] = sinh (src); - break; - case 0x03: /* FINTRZ */ - regs.fp[reg] = fp_round_to_zero(src); - break; - case 0x04: /* FSQRT */ - case 0x41: - case 0x45: - regs.fp[reg] = sqrt (src); - if ((extra & 0x44) == 0x40) - fround (reg); - break; - case 0x06: /* FLOGNP1 */ - regs.fp[reg] = log (src + 1.0); - break; - case 0x08: /* FETOXM1 */ - regs.fp[reg] = exp (src) - 1.0; - break; - case 0x09: /* FTANH */ - regs.fp[reg] = tanh (src); - break; - case 0x0a: /* FATAN */ - regs.fp[reg] = atan (src); - break; - case 0x0c: /* FASIN */ - regs.fp[reg] = asin (src); - break; - case 0x0d: /* FATANH */ + break; + case 0x02: /* FSINH */ + regs.fp[reg] = sinh (src); + break; + case 0x03: /* FINTRZ */ + regs.fp[reg] = fp_round_to_zero(src); + break; + case 0x04: /* FSQRT */ + case 0x41: + case 0x45: + regs.fp[reg] = sqrt (src); + if ((extra & 0x44) == 0x40) + fround (reg); + break; + case 0x06: /* FLOGNP1 */ + regs.fp[reg] = log (src + 1.0); + break; + case 0x08: /* FETOXM1 */ + regs.fp[reg] = exp (src) - 1.0; + break; + case 0x09: /* FTANH */ + regs.fp[reg] = tanh (src); + break; + case 0x0a: /* FATAN */ + regs.fp[reg] = atan (src); + break; + case 0x0c: /* FASIN */ + regs.fp[reg] = asin (src); + break; + case 0x0d: /* FATANH */ #if 1 /* The BeBox doesn't have atanh, and it isn't in the HPUX libm either */ - regs.fp[reg] = 0.5 * log ((1 + src) / (1 - src)); + regs.fp[reg] = 0.5 * log ((1 + src) / (1 - src)); #else - regs.fp[reg] = atanh (src); + regs.fp[reg] = atanh (src); #endif - break; - case 0x0e: /* FSIN */ - regs.fp[reg] = sin (src); - break; - case 0x0f: /* FTAN */ - regs.fp[reg] = tan (src); - break; - case 0x10: /* FETOX */ - regs.fp[reg] = exp (src); - break; - case 0x11: /* FTWOTOX */ - regs.fp[reg] = pow (2.0, src); - break; - case 0x12: /* FTENTOX */ - regs.fp[reg] = pow (10.0, src); - break; - case 0x14: /* FLOGN */ - regs.fp[reg] = log (src); - break; - case 0x15: /* FLOG10 */ - regs.fp[reg] = log10 (src); - break; - case 0x16: /* FLOG2 */ - regs.fp[reg] = *fp_l2_e * log (src); - break; - case 0x18: /* FABS */ - case 0x58: - case 0x5c: - regs.fp[reg] = src < 0 ? -src : src; - if ((extra & 0x44) == 0x40) - fround (reg); - break; - case 0x19: /* FCOSH */ - regs.fp[reg] = cosh (src); - break; - case 0x1a: /* FNEG */ - case 0x5a: - case 0x5e: - regs.fp[reg] = -src; - if ((extra & 0x44) == 0x40) - fround (reg); - break; - case 0x1c: /* FACOS */ - regs.fp[reg] = acos (src); - break; - case 0x1d: /* FCOS */ - regs.fp[reg] = cos (src); - break; - case 0x1e: /* FGETEXP */ - { - if (src == 0) { - regs.fp[reg] = 0; - } else { - int expon; - frexp (src, &expon); - regs.fp[reg] = (double) (expon - 1); - } - } - break; - case 0x1f: /* FGETMAN */ - { - if (src == 0) { - regs.fp[reg] = 0; - } else { - int expon; - regs.fp[reg] = frexp (src, &expon) * 2.0; - } - } - break; - case 0x20: /* FDIV */ - case 0x60: - case 0x64: - regs.fp[reg] /= src; - if ((extra & 0x44) == 0x40) - fround (reg); - break; - case 0x21: /* FMOD */ - { - fptype quot = fp_round_to_zero(regs.fp[reg] / src); - regs.fp[reg] = regs.fp[reg] - quot * src; - } - break; - case 0x22: /* FADD */ - case 0x62: - case 0x66: - regs.fp[reg] += src; - if ((extra & 0x44) == 0x40) - fround (reg); - break; - case 0x23: /* FMUL */ - case 0x63: - case 0x67: - regs.fp[reg] *= src; - if ((extra & 0x44) == 0x40) - fround (reg); - break; - case 0x24: /* FSGLDIV */ - regs.fp[reg] /= src; - break; - case 0x25: /* FREM */ - { - fptype quot = fp_round_to_nearest(regs.fp[reg] / src); - regs.fp[reg] = regs.fp[reg] - quot * src; - } - break; - case 0x26: /* FSCALE */ - if (src != 0) { + break; + case 0x0e: /* FSIN */ + regs.fp[reg] = sin (src); + break; + case 0x0f: /* FTAN */ + regs.fp[reg] = tan (src); + break; + case 0x10: /* FETOX */ + regs.fp[reg] = exp (src); + break; + case 0x11: /* FTWOTOX */ + regs.fp[reg] = pow (2.0, src); + break; + case 0x12: /* FTENTOX */ + regs.fp[reg] = pow (10.0, src); + break; + case 0x14: /* FLOGN */ + regs.fp[reg] = log (src); + break; + case 0x15: /* FLOG10 */ + regs.fp[reg] = log10 (src); + break; + case 0x16: /* FLOG2 */ + regs.fp[reg] = *fp_l2_e * log (src); + break; + case 0x18: /* FABS */ + case 0x58: + case 0x5c: + regs.fp[reg] = src < 0 ? -src : src; + if ((extra & 0x44) == 0x40) + fround (reg); + break; + case 0x19: /* FCOSH */ + regs.fp[reg] = cosh (src); + break; + case 0x1a: /* FNEG */ + case 0x5a: + case 0x5e: + regs.fp[reg] = -src; + if ((extra & 0x44) == 0x40) + fround (reg); + break; + case 0x1c: /* FACOS */ + regs.fp[reg] = acos (src); + break; + case 0x1d: /* FCOS */ + regs.fp[reg] = cos (src); + break; + case 0x1e: /* FGETEXP */ + { + if (src == 0) + { + regs.fp[reg] = 0; + } + else + { + int expon; + frexp (src, &expon); + regs.fp[reg] = (double) (expon - 1); + } + } + break; + case 0x1f: /* FGETMAN */ + { + if (src == 0) + { + regs.fp[reg] = 0; + } + else + { + int expon; + regs.fp[reg] = frexp (src, &expon) * 2.0; + } + } + break; + case 0x20: /* FDIV */ + case 0x60: + case 0x64: + regs.fp[reg] /= src; + if ((extra & 0x44) == 0x40) + fround (reg); + break; + case 0x21: /* FMOD */ + { + fptype quot = fp_round_to_zero(regs.fp[reg] / src); + regs.fp[reg] = regs.fp[reg] - quot * src; + } + break; + case 0x22: /* FADD */ + case 0x62: + case 0x66: + regs.fp[reg] += src; + if ((extra & 0x44) == 0x40) + fround (reg); + break; + case 0x23: /* FMUL */ + case 0x63: + case 0x67: + regs.fp[reg] *= src; + if ((extra & 0x44) == 0x40) + fround (reg); + break; + case 0x24: /* FSGLDIV */ + regs.fp[reg] /= src; + break; + case 0x25: /* FREM */ + { + fptype quot = fp_round_to_nearest(regs.fp[reg] / src); + regs.fp[reg] = regs.fp[reg] - quot * src; + } + break; + case 0x26: /* FSCALE */ + if (src != 0) + { #ifdef ldexp - regs.fp[reg] = ldexp (regs.fp[reg], (int) src); + regs.fp[reg] = ldexp (regs.fp[reg], (int) src); #else - regs.fp[reg] *= exp (*fp_ln_2 * (int) src); + regs.fp[reg] *= exp (*fp_ln_2 * (int) src); #endif - } - break; - case 0x27: /* FSGLMUL */ - regs.fp[reg] *= src; - break; - case 0x28: /* FSUB */ - case 0x68: - case 0x6c: - regs.fp[reg] -= src; - if ((extra & 0x44) == 0x40) - fround (reg); - break; - case 0x30: /* FSINCOS */ - case 0x31: - case 0x32: - case 0x33: - case 0x34: - case 0x35: - case 0x36: - case 0x37: - regs.fp[extra & 7] = cos (src); - regs.fp[reg] = sin (src); - break; - case 0x38: /* FCMP */ - { - fptype tmp = regs.fp[reg] - src; - regs.fpsr = 0; - MAKE_FPSR (tmp); - } - return; - case 0x3a: /* FTST */ - regs.fpsr = 0; - MAKE_FPSR (src); - return; - default: - m68k_setpc (pc); - op_illg (opcode); - return; - } - MAKE_FPSR (regs.fp[reg]); - return; - } - m68k_setpc (pc); - op_illg (opcode); + } + break; + case 0x27: /* FSGLMUL */ + regs.fp[reg] *= src; + break; + case 0x28: /* FSUB */ + case 0x68: + case 0x6c: + regs.fp[reg] -= src; + if ((extra & 0x44) == 0x40) + fround (reg); + break; + case 0x30: /* FSINCOS */ + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + regs.fp[extra & 7] = cos (src); + regs.fp[reg] = sin (src); + break; + case 0x38: /* FCMP */ + { + fptype tmp = regs.fp[reg] - src; + regs.fpsr = 0; + MAKE_FPSR (tmp); + } + return; + case 0x3a: /* FTST */ + regs.fpsr = 0; + MAKE_FPSR (src); + return; + default: + m68k_setpc (pc); + op_illg (opcode); + return; + } + MAKE_FPSR (regs.fp[reg]); + return; + } + m68k_setpc (pc); + op_illg (opcode); } void fpuop_arithmetic (uae_u32 opcode, struct regstruct ®s, uae_u16 extra) { - regs.fpsr_highbyte = 0; - fpuop_arithmetic2 (opcode, regs, extra); - if (regs.fpsr_highbyte) { - regs.fpsr &= 0xffff00ff; - regs.fpsr |= regs.fpsr_highbyte; - regs.fpsr |= regs.fpsr_highbyte << 8; - write_log (_T("FPU exception: %04x\n"), regs.fpsr); - } + regs.fpsr_highbyte = 0; + fpuop_arithmetic2 (opcode, regs, extra); + if (regs.fpsr_highbyte) + { + regs.fpsr &= 0xffff00ff; + regs.fpsr |= regs.fpsr_highbyte; + regs.fpsr |= regs.fpsr_highbyte << 8; + write_log (_T("FPU exception: %04x\n"), regs.fpsr); + } } void fpu_reset (void) { - regs.fpcr = regs.fpsr = regs.fpiar = 0; - regs.fp_result = 1; + regs.fpcr = regs.fpsr = regs.fpiar = 0; + regs.fp_result = 1; } void fpp_setexcept (uae_u16 mask) { - regs.fpsr_highbyte |= mask >> 8; + regs.fpsr_highbyte |= mask >> 8; } uae_u8 *restore_fpu (uae_u8 *src) { - int i; - uae_u32 flags; + int i; + uae_u32 flags; - changed_prefs.fpu_model = currprefs.fpu_model = restore_u32(); - flags = restore_u32 (); - for (i = 0; i < 8; i++) { - uae_u32 w1 = restore_u32 (); - uae_u32 w2 = restore_u32 (); - uae_u32 w3 = restore_u16 (); - regs.fp[i] = to_exten (w1, w2, w3); - } - regs.fpcr = restore_u32 (); - native_set_fpucw (regs.fpcr); - regs.fpsr = restore_u32 (); - regs.fpiar = restore_u32 (); - if (flags & 0x80000000) { - restore_u32(); - restore_u32(); - } - write_log(_T("FPU: %d\n"), currprefs.fpu_model); - return src; + changed_prefs.fpu_model = currprefs.fpu_model = restore_u32(); + flags = restore_u32 (); + for (i = 0; i < 8; i++) + { + uae_u32 w1 = restore_u32 (); + uae_u32 w2 = restore_u32 (); + uae_u32 w3 = restore_u16 (); + regs.fp[i] = to_exten (w1, w2, w3); + } + regs.fpcr = restore_u32 (); + native_set_fpucw (regs.fpcr); + regs.fpsr = restore_u32 (); + regs.fpiar = restore_u32 (); + if (flags & 0x80000000) + { + restore_u32(); + restore_u32(); + } + write_log(_T("FPU: %d\n"), currprefs.fpu_model); + return src; } uae_u8 *save_fpu (int *len, uae_u8 *dstptr) { - uae_u8 *dstbak,*dst; - int i; + uae_u8 *dstbak,*dst; + int i; - *len = 0; - if (currprefs.fpu_model == 0) - return 0; - if (dstptr) - dstbak = dst = dstptr; - else - dstbak = dst = xmalloc (uae_u8, 4+4+8*10+4+4+4+4+4); - save_u32 (currprefs.fpu_model); - save_u32 (0x80000000); - for (i = 0; i < 8; i++) { - uae_u32 w1, w2, w3; - from_exten (regs.fp[i], &w1, &w2, &w3); - save_u32 (w1); - save_u32 (w2); - save_u16 (w3); - } - save_u32 (regs.fpcr); - save_u32 (regs.fpsr); - save_u32 (regs.fpiar); - save_u32 (-1); - save_u32 (0); - *len = dst - dstbak; - return dstbak; + *len = 0; + if (currprefs.fpu_model == 0) + return 0; + if (dstptr) + dstbak = dst = dstptr; + else + dstbak = dst = xmalloc (uae_u8, 4+4+8*10+4+4+4+4+4); + save_u32 (currprefs.fpu_model); + save_u32 (0x80000000); + for (i = 0; i < 8; i++) + { + uae_u32 w1, w2, w3; + from_exten (regs.fp[i], &w1, &w2, &w3); + save_u32 (w1); + save_u32 (w2); + save_u16 (w3); + } + save_u32 (regs.fpcr); + save_u32 (regs.fpsr); + save_u32 (regs.fpiar); + save_u32 (-1); + save_u32 (0); + *len = dst - dstbak; + return dstbak; } diff --git a/src/fsdb.cpp b/src/fsdb.cpp index b4048c76..db660af8 100644 --- a/src/fsdb.cpp +++ b/src/fsdb.cpp @@ -1,18 +1,18 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Library of functions to make emulated filesystem as independent as - * possible of the host filesystem's capabilities. - * - * Copyright 1999 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Library of functions to make emulated filesystem as independent as + * possible of the host filesystem's capabilities. + * + * Copyright 1999 Bernd Schmidt + */ #include "sysconfig.h" #include "sysdeps.h" #include "options.h" #include "uae.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "filesys.h" @@ -37,10 +37,10 @@ TCHAR *nname_begin (TCHAR *nname) { - TCHAR *p = _tcsrchr (nname, FSDB_DIR_SEPARATOR); - if (p) - return p + 1; - return nname; + TCHAR *p = _tcsrchr (nname, FSDB_DIR_SEPARATOR); + if (p) + return p + 1; + return nname; } #ifndef _WIN32 @@ -51,327 +51,356 @@ TCHAR *nname_begin (TCHAR *nname) * exists that compares equal to REL, return 0. */ TCHAR *fsdb_search_dir (const TCHAR *dirname, TCHAR *rel) { - TCHAR *p = 0; - int de; - my_opendir_s *dir; - TCHAR fn[MAX_DPATH]; + TCHAR *p = 0; + int de; + my_opendir_s *dir; + TCHAR fn[MAX_DPATH]; - dir = my_opendir (dirname); - /* This really shouldn't happen... */ - if (! dir) - return 0; - - while (p == 0 && (de = my_readdir (dir, fn)) != 0) { - if (strcmp (fn, rel) == 0) - p = rel; - else if (strcasecmp (fn, rel) == 0) - p = my_strdup (fn); - } - my_closedir (dir); - return p; + dir = my_opendir (dirname); + /* This really shouldn't happen... */ + if (! dir) + return 0; + + while (p == 0 && (de = my_readdir (dir, fn)) != 0) + { + if (strcmp (fn, rel) == 0) + p = rel; + else if (strcasecmp (fn, rel) == 0) + p = my_strdup (fn); + } + my_closedir (dir); + return p; } #endif static FILE *get_fsdb (a_inode *dir, const TCHAR *mode) { - TCHAR *n; - FILE *f; - - if (!dir->nname) - return NULL; - n = build_nname (dir->nname, FSDB_FILE); - f = _tfopen (n, mode); - xfree (n); - return f; + TCHAR *n; + FILE *f; + + if (!dir->nname) + return NULL; + n = build_nname (dir->nname, FSDB_FILE); + f = _tfopen (n, mode); + xfree (n); + return f; } static void kill_fsdb (a_inode *dir) { - if (!dir->nname) - return; - TCHAR *n = build_nname (dir->nname, FSDB_FILE); - _wunlink (n); - xfree (n); + if (!dir->nname) + return; + TCHAR *n = build_nname (dir->nname, FSDB_FILE); + _wunlink (n); + xfree (n); } static void fsdb_fixup (FILE *f, uae_u8 *buf, int size, a_inode *base) { - TCHAR *nname; - int ret; + TCHAR *nname; + int ret; - if (buf[0] == 0) - return; - TCHAR *fnname = au ((char*)buf + 5 + 257); - nname = build_nname (base->nname, fnname); - xfree (fnname); - ret = fsdb_exists (nname); - if (ret) { - xfree (nname); - return; - } - TRACE ((_T("uaefsdb '%s' deleted\n"), nname)); - /* someone deleted this file/dir outside of emulation.. */ - buf[0] = 0; - xfree (nname); + if (buf[0] == 0) + return; + TCHAR *fnname = au ((char*)buf + 5 + 257); + nname = build_nname (base->nname, fnname); + xfree (fnname); + ret = fsdb_exists (nname); + if (ret) + { + xfree (nname); + return; + } + TRACE ((_T("uaefsdb '%s' deleted\n"), nname)); + /* someone deleted this file/dir outside of emulation.. */ + buf[0] = 0; + xfree (nname); } /* Prune the db file the first time this directory is opened in a session. */ void fsdb_clean_dir (a_inode *dir) { - uae_u8 buf[1 + 4 + 257 + 257 + 81]; - TCHAR *n; - FILE *f; - off_t pos1 = 0, pos2; + uae_u8 buf[1 + 4 + 257 + 257 + 81]; + TCHAR *n; + FILE *f; + off_t pos1 = 0, pos2; - if (!dir->nname) - return; - n = build_nname (dir->nname, FSDB_FILE); - f = _tfopen (n, _T("r+b")); - if (f == 0) { - xfree (n); - return; - } - for (;;) { - pos2 = ftell (f); - if (fread (buf, 1, sizeof buf, f) < sizeof buf) - break; - fsdb_fixup (f, buf, sizeof buf, dir); - if (buf[0] == 0) - continue; - if (pos1 != pos2) { - fseek (f, pos1, SEEK_SET); - fwrite (buf, 1, sizeof buf, f); - fseek (f, pos2 + sizeof buf, SEEK_SET); + if (!dir->nname) + return; + n = build_nname (dir->nname, FSDB_FILE); + f = _tfopen (n, _T("r+b")); + if (f == 0) + { + xfree (n); + return; } - pos1 += sizeof buf; - } - fclose (f); - if (pos1 == 0) { - kill_fsdb (dir); - } else { - my_truncate (n, pos1); - } - xfree (n); + for (;;) + { + pos2 = ftell (f); + if (fread (buf, 1, sizeof buf, f) < sizeof buf) + break; + fsdb_fixup (f, buf, sizeof buf, dir); + if (buf[0] == 0) + continue; + if (pos1 != pos2) + { + fseek (f, pos1, SEEK_SET); + fwrite (buf, 1, sizeof buf, f); + fseek (f, pos2 + sizeof buf, SEEK_SET); + } + pos1 += sizeof buf; + } + fclose (f); + if (pos1 == 0) + { + kill_fsdb (dir); + } + else + { + my_truncate (n, pos1); + } + xfree (n); } static a_inode *aino_from_buf (a_inode *base, uae_u8 *buf, long off) { - uae_u32 mode; - a_inode *aino = xcalloc (a_inode, 1); - TCHAR *s; + uae_u32 mode; + a_inode *aino = xcalloc (a_inode, 1); + TCHAR *s; - mode = do_get_mem_long ((uae_u32 *)(buf + 1)); - buf += 5; - aino->aname = au ((char*)buf); - buf += 257; - s = au ((char*)buf); - aino->nname = build_nname (base->nname, s); - xfree (s); - buf += 257; - aino->comment = *buf != '\0' ? au ((char*)buf) : 0; - fsdb_fill_file_attrs (base, aino); - aino->amigaos_mode = mode; - aino->has_dbentry = 1; - aino->dirty = 0; - aino->db_offset = off; - return aino; + mode = do_get_mem_long ((uae_u32 *)(buf + 1)); + buf += 5; + aino->aname = au ((char*)buf); + buf += 257; + s = au ((char*)buf); + aino->nname = build_nname (base->nname, s); + xfree (s); + buf += 257; + aino->comment = *buf != '\0' ? au ((char*)buf) : 0; + fsdb_fill_file_attrs (base, aino); + aino->amigaos_mode = mode; + aino->has_dbentry = 1; + aino->dirty = 0; + aino->db_offset = off; + return aino; } a_inode *fsdb_lookup_aino_aname (a_inode *base, const TCHAR *aname) { - FILE *f; + FILE *f; - f = get_fsdb (base, _T("r+b")); - if (f == 0) { + f = get_fsdb (base, _T("r+b")); + if (f == 0) + { + return 0; + } + for (;;) + { + uae_u8 buf[1 + 4 + 257 + 257 + 81]; + TCHAR *s; + if (fread (buf, 1, sizeof buf, f) < sizeof buf) + break; + s = au ((char*)buf + 5); + if (buf[0] != 0 && same_aname (s, aname)) + { + long pos = ftell (f) - sizeof buf; + fclose (f); + xfree (s); + return aino_from_buf (base, buf, pos); + } + xfree (s); + } + fclose (f); return 0; - } - for (;;) { - uae_u8 buf[1 + 4 + 257 + 257 + 81]; - TCHAR *s; - if (fread (buf, 1, sizeof buf, f) < sizeof buf) - break; - s = au ((char*)buf + 5); - if (buf[0] != 0 && same_aname (s, aname)) { - long pos = ftell (f) - sizeof buf; - fclose (f); - xfree (s); - return aino_from_buf (base, buf, pos); - } - xfree (s); - } - fclose (f); - return 0; } a_inode *fsdb_lookup_aino_nname (a_inode *base, const TCHAR *nname) { - FILE *f; - char *s; + FILE *f; + char *s; - f = get_fsdb (base, _T("r+b")); - if (f == 0) { - return 0; - } - s = ua (nname); - for (;;) { - uae_u8 buf[1 + 4 + 257 + 257 + 81]; - if (fread (buf, 1, sizeof buf, f) < sizeof buf) - break; - if (buf[0] != 0 && strcmp ((char*)buf + 5 + 257, s) == 0) { - long pos = ftell (f) - sizeof buf; - fclose (f); - xfree (s); - return aino_from_buf (base, buf, pos); - } - } - xfree (s); - fclose (f); - return 0; + f = get_fsdb (base, _T("r+b")); + if (f == 0) + { + return 0; + } + s = ua (nname); + for (;;) + { + uae_u8 buf[1 + 4 + 257 + 257 + 81]; + if (fread (buf, 1, sizeof buf, f) < sizeof buf) + break; + if (buf[0] != 0 && strcmp ((char*)buf + 5 + 257, s) == 0) + { + long pos = ftell (f) - sizeof buf; + fclose (f); + xfree (s); + return aino_from_buf (base, buf, pos); + } + } + xfree (s); + fclose (f); + return 0; } int fsdb_used_as_nname (a_inode *base, const TCHAR *nname) { - FILE *f; - uae_u8 buf[1 + 4 + 257 + 257 + 81]; + FILE *f; + uae_u8 buf[1 + 4 + 257 + 257 + 81]; - f = get_fsdb (base, _T("r+b")); - if (f == 0) { + f = get_fsdb (base, _T("r+b")); + if (f == 0) + { + return 0; + } + for (;;) + { + TCHAR *s; + if (fread (buf, 1, sizeof buf, f) < sizeof buf) + break; + if (buf[0] == 0) + continue; + s = au ((char*)buf + 5 + 257); + if (_tcscmp (s, nname) == 0) + { + xfree (s); + fclose (f); + return 1; + } + xfree (s); + } + fclose (f); return 0; - } - for (;;) { - TCHAR *s; - if (fread (buf, 1, sizeof buf, f) < sizeof buf) - break; - if (buf[0] == 0) - continue; - s = au ((char*)buf + 5 + 257); - if (_tcscmp (s, nname) == 0) { - xfree (s); - fclose (f); - return 1; - } - xfree (s); - } - fclose (f); - return 0; } static int needs_dbentry (a_inode *aino) { - const TCHAR *nn_begin; + const TCHAR *nn_begin; - if (aino->deleted) - return 0; - - if (! fsdb_mode_representable_p (aino, aino->amigaos_mode) || aino->comment != 0) - return 1; + if (aino->deleted) + return 0; - nn_begin = nname_begin (aino->nname); - return _tcscmp (nn_begin, aino->aname) != 0; + if (! fsdb_mode_representable_p (aino, aino->amigaos_mode) || aino->comment != 0) + return 1; + + nn_begin = nname_begin (aino->nname); + return _tcscmp (nn_begin, aino->aname) != 0; } static void write_aino (FILE *f, a_inode *aino) { - uae_u8 buf[1 + 4 + 257 + 257 + 81] = { 0 }; - buf[0] = aino->needs_dbentry ? 1 : 0; - do_put_mem_long ((uae_u32 *)(buf + 1), aino->amigaos_mode); - ua_copy ((char*)buf + 5, 256, aino->aname); - buf[5 + 256] = '\0'; - ua_copy ((char*)buf + 5 + 257, 256, nname_begin (aino->nname)); - buf[5 + 257 + 256] = '\0'; - ua_copy ((char*)buf + 5 + 2 * 257, 80, aino->comment ? aino->comment : _T("")); - buf[5 + 2 * 257 + 80] = '\0'; - aino->db_offset = ftell (f); - fwrite (buf, 1, sizeof buf, f); - aino->has_dbentry = aino->needs_dbentry; - TRACE ((_T("%d '%s' '%s' written\n"), aino->db_offset, aino->aname, aino->nname)); + uae_u8 buf[1 + 4 + 257 + 257 + 81] = { 0 }; + buf[0] = aino->needs_dbentry ? 1 : 0; + do_put_mem_long ((uae_u32 *)(buf + 1), aino->amigaos_mode); + ua_copy ((char*)buf + 5, 256, aino->aname); + buf[5 + 256] = '\0'; + ua_copy ((char*)buf + 5 + 257, 256, nname_begin (aino->nname)); + buf[5 + 257 + 256] = '\0'; + ua_copy ((char*)buf + 5 + 2 * 257, 80, aino->comment ? aino->comment : _T("")); + buf[5 + 2 * 257 + 80] = '\0'; + aino->db_offset = ftell (f); + fwrite (buf, 1, sizeof buf, f); + aino->has_dbentry = aino->needs_dbentry; + TRACE ((_T("%d '%s' '%s' written\n"), aino->db_offset, aino->aname, aino->nname)); } /* Write back the db file for a directory. */ void fsdb_dir_writeback (a_inode *dir) { - FILE *f; - int changes_needed = 0; - int entries_needed = 0; - a_inode *aino; - uae_u8 *tmpbuf; - int size, i; + FILE *f; + int changes_needed = 0; + int entries_needed = 0; + a_inode *aino; + uae_u8 *tmpbuf; + int size, i; - TRACE ((_T("fsdb writeback %s\n"), dir->aname)); - /* First pass: clear dirty bits where unnecessary, and see if any work - * needs to be done. */ - for (aino = dir->child; aino; aino = aino->sibling) { - /* - int old_needs_dbentry = aino->needs_dbentry || aino->has_dbentry; - aino->needs_dbentry = needs_dbentry (aino); - entries_needed |= aino->has_dbentry | aino->needs_dbentry; - */ - int old_needs_dbentry = aino->has_dbentry; - int need = needs_dbentry (aino); - aino->needs_dbentry = need; - entries_needed |= need; - if (! aino->dirty) - continue; - if (! aino->needs_dbentry && ! old_needs_dbentry) - aino->dirty = 0; - else - changes_needed = 1; - } - if (! entries_needed) { - kill_fsdb (dir); - TRACE ((_T("fsdb removed\n"))); - return; - } - - if (! changes_needed) { - TRACE ((_T("not modified\n"))); - return; - } - - f = get_fsdb (dir, _T("r+b")); - if (f == 0) { - f = get_fsdb (dir, _T("w+b")); - if (f == 0) { - TRACE ((_T("failed\n"))); - /* This shouldn't happen... */ - return; + TRACE ((_T("fsdb writeback %s\n"), dir->aname)); + /* First pass: clear dirty bits where unnecessary, and see if any work + * needs to be done. */ + for (aino = dir->child; aino; aino = aino->sibling) + { + /* + int old_needs_dbentry = aino->needs_dbentry || aino->has_dbentry; + aino->needs_dbentry = needs_dbentry (aino); + entries_needed |= aino->has_dbentry | aino->needs_dbentry; + */ + int old_needs_dbentry = aino->has_dbentry; + int need = needs_dbentry (aino); + aino->needs_dbentry = need; + entries_needed |= need; + if (! aino->dirty) + continue; + if (! aino->needs_dbentry && ! old_needs_dbentry) + aino->dirty = 0; + else + changes_needed = 1; } - } - fseek (f, 0, SEEK_END); - size = ftell (f); - fseek (f, 0, SEEK_SET); - tmpbuf = 0; - if (size > 0) { - tmpbuf = (uae_u8 *)malloc (size); - fread (tmpbuf, 1, size, f); - } - TRACE ((_T("**** updating '%s' %d\n"), dir->aname, size)); - - for (aino = dir->child; aino; aino = aino->sibling) { - if (! aino->dirty) - continue; - aino->dirty = 0; - - i = 0; - while (!aino->has_dbentry && i < size) { - TCHAR *s = au ((char*)tmpbuf + i + 5); - if (!_tcscmp (s, aino->aname)) { - aino->has_dbentry = 1; - aino->db_offset = i; - } - xfree (s); - i += 1 + 4 + 257 + 257 + 81; - } - if (! aino->has_dbentry) { - fseek (f, 0, SEEK_END); - aino->has_dbentry = 1; - } else { - fseek (f, aino->db_offset, SEEK_SET); + if (! entries_needed) + { + kill_fsdb (dir); + TRACE ((_T("fsdb removed\n"))); + return; } - write_aino (f, aino); - } - TRACE ((_T("end\n"))); - fclose (f); - xfree (tmpbuf); + + if (! changes_needed) + { + TRACE ((_T("not modified\n"))); + return; + } + + f = get_fsdb (dir, _T("r+b")); + if (f == 0) + { + f = get_fsdb (dir, _T("w+b")); + if (f == 0) + { + TRACE ((_T("failed\n"))); + /* This shouldn't happen... */ + return; + } + } + fseek (f, 0, SEEK_END); + size = ftell (f); + fseek (f, 0, SEEK_SET); + tmpbuf = 0; + if (size > 0) + { + tmpbuf = (uae_u8 *)malloc (size); + fread (tmpbuf, 1, size, f); + } + TRACE ((_T("**** updating '%s' %d\n"), dir->aname, size)); + + for (aino = dir->child; aino; aino = aino->sibling) + { + if (! aino->dirty) + continue; + aino->dirty = 0; + + i = 0; + while (!aino->has_dbentry && i < size) + { + TCHAR *s = au ((char*)tmpbuf + i + 5); + if (!_tcscmp (s, aino->aname)) + { + aino->has_dbentry = 1; + aino->db_offset = i; + } + xfree (s); + i += 1 + 4 + 257 + 257 + 81; + } + if (! aino->has_dbentry) + { + fseek (f, 0, SEEK_END); + aino->has_dbentry = 1; + } + else + { + fseek (f, aino->db_offset, SEEK_SET); + } + write_aino (f, aino); + } + TRACE ((_T("end\n"))); + fclose (f); + xfree (tmpbuf); } diff --git a/src/fsdb_unix.cpp b/src/fsdb_unix.cpp index 31fffcef..dc654b40 100644 --- a/src/fsdb_unix.cpp +++ b/src/fsdb_unix.cpp @@ -1,12 +1,12 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Library of functions to make emulated filesystem as independent as - * possible of the host filesystem's capabilities. - * This is the Unix version. - * - * Copyright 1999 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Library of functions to make emulated filesystem as independent as + * possible of the host filesystem's capabilities. + * This is the Unix version. + * + * Copyright 1999 Bernd Schmidt + */ #include "sysconfig.h" #include "sysdeps.h" @@ -21,51 +21,53 @@ static TCHAR evilchars[NUM_EVILCHARS] = { '\\', '*', '?', '\"', '<', '>', '|' }; static int fsdb_name_invalid_2 (const TCHAR *n, int dir) { - int i; - int l = _tcslen (n); + int i; + int l = _tcslen (n); - /* the reserved fsdb filename */ - if (_tcscmp (n, FSDB_FILE) == 0) - return -1; + /* the reserved fsdb filename */ + if (_tcscmp (n, FSDB_FILE) == 0) + return -1; - if (dir) { - if (n[0] == '.' && l == 1) - return -1; - if (n[0] == '.' && n[1] == '.' && l == 2) - return -1; - } + if (dir) + { + if (n[0] == '.' && l == 1) + return -1; + if (n[0] == '.' && n[1] == '.' && l == 2) + return -1; + } - /* these characters are *never* allowed */ - for (i = 0; i < NUM_EVILCHARS; i++) { - if (_tcschr (n, evilchars[i]) != 0) - return 1; - } + /* these characters are *never* allowed */ + for (i = 0; i < NUM_EVILCHARS; i++) + { + if (_tcschr (n, evilchars[i]) != 0) + return 1; + } - return 0; /* the filename passed all checks, now it should be ok */ + return 0; /* the filename passed all checks, now it should be ok */ } int fsdb_name_invalid (const TCHAR *n) { - int v = fsdb_name_invalid_2 (n, 0); - if (v <= 0) + int v = fsdb_name_invalid_2 (n, 0); + if (v <= 0) + return v; + write_log (_T("FILESYS: '%s' illegal filename\n"), n); return v; - write_log (_T("FILESYS: '%s' illegal filename\n"), n); - return v; } int fsdb_name_invalid_dir (const TCHAR *n) { - int v = fsdb_name_invalid_2 (n, 1); - if (v <= 0) - return v; - write_log (_T("FILESYS: '%s' illegal filename\n"), n); - return v; + int v = fsdb_name_invalid_2 (n, 1); + if (v <= 0) + return v; + write_log (_T("FILESYS: '%s' illegal filename\n"), n); + return v; } int fsdb_exists (const char *nname) { - struct stat statbuf; - return (stat (nname, &statbuf) != -1); + struct stat statbuf; + return (stat (nname, &statbuf) != -1); } /* For an a_inode we have newly created based on a filename we found on the @@ -75,12 +77,12 @@ int fsdb_fill_file_attrs (a_inode *base, a_inode *aino) struct stat statbuf; /* This really shouldn't happen... */ if (stat (aino->nname, &statbuf) == -1) - return 0; + return 0; aino->dir = S_ISDIR (statbuf.st_mode) ? 1 : 0; - + aino->amigaos_mode = ((S_IXUSR & statbuf.st_mode ? 0 : A_FIBF_EXECUTE) - | (S_IWUSR & statbuf.st_mode ? 0 : A_FIBF_WRITE) - | (S_IRUSR & statbuf.st_mode ? 0 : A_FIBF_READ)); + | (S_IWUSR & statbuf.st_mode ? 0 : A_FIBF_WRITE) + | (S_IRUSR & statbuf.st_mode ? 0 : A_FIBF_READ)); #if defined(WIN32) || defined(ANDROIDSDL) // Always give execute & read permission @@ -97,26 +99,26 @@ int fsdb_set_file_attrs (a_inode *aino) uae_u32 tmpmask = aino->amigaos_mode; if (stat (aino->nname, &statbuf) == -1) - return ERROR_OBJECT_NOT_AROUND; - + return ERROR_OBJECT_NOT_AROUND; + mode = statbuf.st_mode; - if (tmpmask & A_FIBF_READ) - mode &= ~S_IRUSR; - else - mode |= S_IRUSR; + if (tmpmask & A_FIBF_READ) + mode &= ~S_IRUSR; + else + mode |= S_IRUSR; - if (tmpmask & A_FIBF_WRITE) - mode &= ~S_IWUSR; - else - mode |= S_IWUSR; + if (tmpmask & A_FIBF_WRITE) + mode &= ~S_IWUSR; + else + mode |= S_IWUSR; - if (tmpmask & A_FIBF_EXECUTE) - mode &= ~S_IXUSR; - else - mode |= S_IXUSR; + if (tmpmask & A_FIBF_EXECUTE) + mode &= ~S_IXUSR; + else + mode |= S_IXUSR; - chmod (aino->nname, mode); + chmod (aino->nname, mode); aino->dirty = 1; return 0; @@ -125,21 +127,21 @@ int fsdb_set_file_attrs (a_inode *aino) /* return supported combination */ int fsdb_mode_supported (const a_inode *aino) { - int mask = aino->amigaos_mode; - if (0 && aino->dir) - return 0; - if (fsdb_mode_representable_p (aino, mask)) - return mask; - mask &= ~(A_FIBF_SCRIPT | A_FIBF_READ | A_FIBF_EXECUTE); - if (fsdb_mode_representable_p (aino, mask)) - return mask; - mask &= ~A_FIBF_WRITE; - if (fsdb_mode_representable_p (aino, mask)) - return mask; - mask &= ~A_FIBF_DELETE; - if (fsdb_mode_representable_p (aino, mask)) - return mask; + int mask = aino->amigaos_mode; + if (0 && aino->dir) return 0; + if (fsdb_mode_representable_p (aino, mask)) + return mask; + mask &= ~(A_FIBF_SCRIPT | A_FIBF_READ | A_FIBF_EXECUTE); + if (fsdb_mode_representable_p (aino, mask)) + return mask; + mask &= ~A_FIBF_WRITE; + if (fsdb_mode_representable_p (aino, mask)) + return mask; + mask &= ~A_FIBF_DELETE; + if (fsdb_mode_representable_p (aino, mask)) + return mask; + return 0; } /* Return nonzero if we can represent the amigaos_mode of AINO within the @@ -149,18 +151,18 @@ int fsdb_mode_representable_p (const a_inode *aino, int amigaos_mode) int mask = amigaos_mode ^ 15; if (0 && aino->dir) - return amigaos_mode == 0; - + return amigaos_mode == 0; + if (mask & A_FIBF_SCRIPT) /* script */ - return 0; + return 0; if ((mask & 15) == 15) /* xxxxRWED == OK */ - return 1; + return 1; if (!(mask & A_FIBF_EXECUTE)) /* not executable */ - return 0; + return 0; if (!(mask & A_FIBF_READ)) /* not readable */ - return 0; + return 0; if ((mask & 15) == (A_FIBF_READ | A_FIBF_EXECUTE)) /* ----RxEx == ReadOnly */ - return 1; + return 1; return 0; } @@ -168,19 +170,22 @@ char *fsdb_create_unique_nname (a_inode *base, const char *suggestion) { char tmp[256] = "__uae___"; strncat (tmp, suggestion, 240); - for (;;) { - int i; - char *p = build_nname (base->nname, tmp); - if (access (p, R_OK) < 0 && errno == ENOENT) { - write_log ("unique name: %s\n", p); - return p; - } - free (p); + for (;;) + { + int i; + char *p = build_nname (base->nname, tmp); + if (access (p, R_OK) < 0 && errno == ENOENT) + { + write_log ("unique name: %s\n", p); + return p; + } + free (p); - /* tmpnam isn't reentrant and I don't really want to hack configure - * right now to see whether tmpnam_r is available... */ - for (i = 0; i < 8; i++) { - tmp[i] = "_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"[uaerand () % 63]; - } + /* tmpnam isn't reentrant and I don't really want to hack configure + * right now to see whether tmpnam_r is available... */ + for (i = 0; i < 8; i++) + { + tmp[i] = "_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"[uaerand () % 63]; + } } } diff --git a/src/fsusage.cpp b/src/fsusage.cpp index b86db9b1..054b6c95 100644 --- a/src/fsusage.cpp +++ b/src/fsusage.cpp @@ -30,17 +30,17 @@ static long adjust_blocks(long blocks, int fromsize, int tosize) { - if (tosize <= 0) - abort (); - if (fromsize <= 0) - return -1; + if (tosize <= 0) + abort (); + if (fromsize <= 0) + return -1; - if (fromsize == tosize) /* e.g., from 512 to 512 */ - return blocks; - else if (fromsize > tosize) /* e.g., from 2048 to 512 */ - return blocks * (fromsize / tosize); - else /* e.g., from 256 to 512 */ - return (blocks + (blocks < 0 ? -1 : 1)) / (tosize / fromsize); + if (fromsize == tosize) /* e.g., from 512 to 512 */ + return blocks; + else if (fromsize > tosize) /* e.g., from 2048 to 512 */ + return blocks * (fromsize / tosize); + else /* e.g., from 256 to 512 */ + return (blocks + (blocks < 0 ? -1 : 1)) / (tosize / fromsize); } @@ -50,22 +50,22 @@ static long adjust_blocks(long blocks, int fromsize, int tosize) int safe_read (int desc, TCHAR *ptr, int len) { - int n_chars; + int n_chars; - if (len <= 0) - return len; + if (len <= 0) + return len; #ifdef EINTR - do + do { - n_chars = read (desc, ptr, len); + n_chars = read (desc, ptr, len); } - while (n_chars < 0 && errno == EINTR); + while (n_chars < 0 && errno == EINTR); #else - n_chars = read (desc, ptr, len); + n_chars = read (desc, ptr, len); #endif - return n_chars; + return n_chars; } /* Fill in the fields of FSP with information about space usage for @@ -81,25 +81,25 @@ int get_fs_usage (const TCHAR *path, const TCHAR *disk, struct fs_usage *fsp) #ifdef STAT_STATFS3_OSF1 # define CONVERT_BLOCKS(B) adjust_blocks ((B), fsd.f_fsize, 512) - struct statfs fsd; + struct statfs fsd; - if (statfs (path, &fsd, sizeof (struct statfs)) != 0) - return -1; + if (statfs (path, &fsd, sizeof (struct statfs)) != 0) + return -1; #endif /* STAT_STATFS3_OSF1 */ #ifdef STAT_STATFS2_FS_DATA /* Ultrix */ # define CONVERT_BLOCKS(B) adjust_blocks ((B), 1024, 512) - struct fs_data fsd; + struct fs_data fsd; - if (statfs (path, &fsd) != 1) - return -1; - fsp->fsu_blocks = CONVERT_BLOCKS (fsd.fd_req.btot); - fsp->fsu_bfree = CONVERT_BLOCKS (fsd.fd_req.bfree); - fsp->fsu_bavail = CONVERT_BLOCKS (fsd.fd_req.bfreen); - fsp->fsu_files = fsd.fd_req.gtot; - fsp->fsu_ffree = fsd.fd_req.gfree; + if (statfs (path, &fsd) != 1) + return -1; + fsp->fsu_blocks = CONVERT_BLOCKS (fsd.fd_req.btot); + fsp->fsu_bfree = CONVERT_BLOCKS (fsd.fd_req.bfree); + fsp->fsu_bavail = CONVERT_BLOCKS (fsd.fd_req.bfreen); + fsp->fsu_files = fsd.fd_req.gtot; + fsp->fsu_ffree = fsd.fd_req.gfree; #endif /* STAT_STATFS2_FS_DATA */ @@ -110,53 +110,53 @@ int get_fs_usage (const TCHAR *path, const TCHAR *disk, struct fs_usage *fsp) # define CONVERT_BLOCKS(B) \ adjust_blocks ((B), (fsd.s_type == Fs2b ? 1024 : 512), 512) - struct filsys fsd; - int fd; + struct filsys fsd; + int fd; - if (! disk) + if (! disk) { - errno = 0; - return -1; + errno = 0; + return -1; } - fd = open (disk, O_RDONLY); - if (fd < 0) - return -1; - lseek (fd, (long) SUPERBOFF, 0); - if (safe_read (fd, (TCHAR *) &fsd, sizeof fsd) != sizeof fsd) + fd = open (disk, O_RDONLY); + if (fd < 0) + return -1; + lseek (fd, (long) SUPERBOFF, 0); + if (safe_read (fd, (TCHAR *) &fsd, sizeof fsd) != sizeof fsd) { - close (fd); - return -1; + close (fd); + return -1; } - close (fd); - fsp->fsu_blocks = CONVERT_BLOCKS (fsd.s_fsize); - fsp->fsu_bfree = CONVERT_BLOCKS (fsd.s_tfree); - fsp->fsu_bavail = CONVERT_BLOCKS (fsd.s_tfree); - fsp->fsu_files = (fsd.s_isize - 2) * INOPB * (fsd.s_type == Fs2b ? 2 : 1); - fsp->fsu_ffree = fsd.s_tinode; + close (fd); + fsp->fsu_blocks = CONVERT_BLOCKS (fsd.s_fsize); + fsp->fsu_bfree = CONVERT_BLOCKS (fsd.s_tfree); + fsp->fsu_bavail = CONVERT_BLOCKS (fsd.s_tfree); + fsp->fsu_files = (fsd.s_isize - 2) * INOPB * (fsd.s_type == Fs2b ? 2 : 1); + fsp->fsu_ffree = fsd.s_tinode; #endif /* STAT_READ_FILSYS */ #ifdef STAT_STATFS2_BSIZE /* 4.3BSD, SunOS 4, HP-UX, AIX */ # define CONVERT_BLOCKS(B) adjust_blocks ((B), fsd.f_bsize, 512) - struct statfs fsd; + struct statfs fsd; - if (statfs (path, &fsd) < 0) - return -1; + if (statfs (path, &fsd) < 0) + return -1; # ifdef STATFS_TRUNCATES_BLOCK_COUNTS - /* In SunOS 4.1.2, 4.1.3, and 4.1.3_U1, the block counts in the - struct statfs are truncated to 2GB. These conditions detect that - truncation, presumably without botching the 4.1.1 case, in which - the values are not truncated. The correct counts are stored in - undocumented spare fields. */ - if (fsd.f_blocks == 0x1fffff && fsd.f_spare[0] > 0) + /* In SunOS 4.1.2, 4.1.3, and 4.1.3_U1, the block counts in the + struct statfs are truncated to 2GB. These conditions detect that + truncation, presumably without botching the 4.1.1 case, in which + the values are not truncated. The correct counts are stored in + undocumented spare fields. */ + if (fsd.f_blocks == 0x1fffff && fsd.f_spare[0] > 0) { - fsd.f_blocks = fsd.f_spare[0]; - fsd.f_bfree = fsd.f_spare[1]; - fsd.f_bavail = fsd.f_spare[2]; + fsd.f_blocks = fsd.f_spare[0]; + fsd.f_bfree = fsd.f_spare[1]; + fsd.f_bavail = fsd.f_spare[2]; } # endif /* STATFS_TRUNCATES_BLOCK_COUNTS */ @@ -165,10 +165,10 @@ int get_fs_usage (const TCHAR *path, const TCHAR *disk, struct fs_usage *fsp) #ifdef STAT_STATFS2_FSIZE /* 4.4BSD */ # define CONVERT_BLOCKS(B) adjust_blocks ((B), fsd.f_fsize, 512) - struct statfs fsd; + struct statfs fsd; - if (statfs (path, &fsd) < 0) - return -1; + if (statfs (path, &fsd) < 0) + return -1; #endif /* STAT_STATFS2_FSIZE */ @@ -187,13 +187,13 @@ int get_fs_usage (const TCHAR *path, const TCHAR *disk, struct fs_usage *fsp) # endif # endif - struct statfs fsd; + struct statfs fsd; - if (statfs (path, &fsd, sizeof fsd, 0) < 0) - return -1; - /* Empirically, the block counts on most SVR3 and SVR3-derived - systems seem to always be in terms of 512-byte blocks, - no matter what value f_bsize has. */ + if (statfs (path, &fsd, sizeof fsd, 0) < 0) + return -1; + /* Empirically, the block counts on most SVR3 and SVR3-derived + systems seem to always be in terms of 512-byte blocks, + no matter what value f_bsize has. */ #endif /* STAT_STATFS4 */ @@ -201,25 +201,25 @@ int get_fs_usage (const TCHAR *path, const TCHAR *disk, struct fs_usage *fsp) # define CONVERT_BLOCKS(B) \ adjust_blocks ((B), fsd.f_frsize ? fsd.f_frsize : fsd.f_bsize, 512) - struct statvfs fsd; + struct statvfs fsd; - if (statvfs (path, &fsd) < 0) - return -1; - /* f_frsize isn't guaranteed to be supported. */ + if (statvfs (path, &fsd) < 0) + return -1; + /* f_frsize isn't guaranteed to be supported. */ #endif /* STAT_STATVFS */ #if !defined(STAT_STATFS2_FS_DATA) && !defined(STAT_READ_FILSYS) - /* !Ultrix && !SVR2 */ + /* !Ultrix && !SVR2 */ - fsp->fsu_blocks = CONVERT_BLOCKS (fsd.f_blocks); - fsp->fsu_bfree = CONVERT_BLOCKS (fsd.f_bfree); - fsp->fsu_bavail = CONVERT_BLOCKS (fsd.f_bavail); - fsp->fsu_files = fsd.f_files; - fsp->fsu_ffree = fsd.f_ffree; + fsp->fsu_blocks = CONVERT_BLOCKS (fsd.f_blocks); + fsp->fsu_bfree = CONVERT_BLOCKS (fsd.f_bfree); + fsp->fsu_bavail = CONVERT_BLOCKS (fsd.f_bavail); + fsp->fsu_files = fsd.f_files; + fsp->fsu_ffree = fsd.f_ffree; #endif /* not STAT_STATFS2_FS_DATA && not STAT_READ_FILSYS */ - return 0; + return 0; } #endif diff --git a/src/genblitter.cpp b/src/genblitter.cpp index 81cc317a..7db91813 100644 --- a/src/genblitter.cpp +++ b/src/genblitter.cpp @@ -1,11 +1,11 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Optimized blitter minterm function generator - * - * Copyright 1995,1996 Bernd Schmidt - * Copyright 1996 Alessandro Bissacco - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Optimized blitter minterm function generator + * + * Copyright 1995,1996 Bernd Schmidt + * Copyright 1996 Alessandro Bissacco + */ #include "sysconfig.h" #include @@ -15,7 +15,8 @@ /* Here is the minterm table used in blitter function generation */ -static unsigned char blttbl[]= { +static unsigned char blttbl[]= +{ 0x00, 0x0a, 0x2a, 0x30, 0x3a, 0x3c, 0x4a, 0x6a, 0x8a, 0x8c, 0x9a, 0xa8, 0xaa, 0xb1, 0xca, 0xcc, 0xd8, 0xe2, 0xea, 0xf0, 0xfa, 0xfc }; @@ -24,9 +25,10 @@ static void generate_include(void) { int minterm; printf("STATIC_INLINE uae_u32 blit_func(const uae_u32 srca, const uae_u32 srcb, const uae_u32 srcc, const uae_u8 mt)\n{\nswitch(mt){\n"); - for (minterm = 0; minterm < 256; minterm++) { - printf("case 0x%x:\n", minterm); - printf("\treturn %s;\n", blitops[minterm].s); + for (minterm = 0; minterm < 256; minterm++) + { + printf("case 0x%x:\n", minterm); + printf("\treturn %s;\n", blitops[minterm].s); } printf("}\n"); printf("return 0;\n"); /* No, sir, it doesn't! */ @@ -44,162 +46,163 @@ static void generate_func(void) printf("#include \"blitter.h\"\n"); printf("#include \"blitfunc.h\"\n\n"); - for (i = 0; i < sizeof(blttbl); i++) { - int active = blitops[blttbl[i]].used; - int a_is_on = active & 1, b_is_on = active & 2, c_is_on = active & 4; - printf("void blitdofast_%x (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b)\n",blttbl[i]); - printf("{\n"); - printf("int i,j;\n"); - printf("uae_u32 totald = 0;\n"); + for (i = 0; i < sizeof(blttbl); i++) + { + int active = blitops[blttbl[i]].used; + int a_is_on = active & 1, b_is_on = active & 2, c_is_on = active & 4; + printf("void blitdofast_%x (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b)\n",blttbl[i]); + printf("{\n"); + printf("int i,j;\n"); + printf("uae_u32 totald = 0;\n"); #if 0 - printf("if (currprefs.blits_32bit_enabled && b->hblitsize > 1"); - if (a_is_on) printf(" && !b->blitashift && b->bltafwm==0xffff && b->bltalwm==0xffff"); - if (b_is_on) printf(" && !b->blitbshift"); - printf(") {\n"); - if (a_is_on) printf("uae_u32 srca=((uae_u32)b->bltadat << 16) | b->bltadat;\n"); - if (b_is_on) printf("uae_u32 srcb=((uae_u32)b->bltbdat << 16) | b->bltbdat;\n"); - if (c_is_on) printf("uae_u32 srcc=((uae_u32)b->bltcdat << 16) | b->bltcdat;\n"); - printf("uae_u32 dest;\n"); - printf("int count=b->hblitsize/2, oddword=b->hblitsize&1;\n"); - printf("for (j=0;jvblitsize;j++) {\n"); - printf("\tfor(i=0;ibltamod;\n"); - if (b_is_on) printf("\tif (ptb) ptb += b->bltbmod;\n"); - if (c_is_on) printf("\tif (ptc) ptc += b->bltcmod;\n"); - printf("\tif (ptd) ptd += b->bltdmod;\n"); - printf("}\n"); - if (a_is_on) printf("if (pta) b->bltadat = (*(pta-b->bltamod-2) << 8) | *(pta - b->bltamod - 1);\n"); /* Maybe not necessary, but I don't want problems */ - if (b_is_on) printf("if (ptb) b->bltbdat = (*(ptb-b->bltbmod-2) << 8) | *(ptb - b->bltbmod - 1);\n"); - if (c_is_on) printf("if (ptc) b->bltcdat = (*(ptc-b->bltcmod-2) << 8) | *(ptc - b->bltcmod - 1);\n"); - printf("if (ptd) b->bltddat = (*(ptd-b->bltdmod-2) << 8) | *(ptd - b->bltdmod - 1);\n"); + printf("if (currprefs.blits_32bit_enabled && b->hblitsize > 1"); + if (a_is_on) printf(" && !b->blitashift && b->bltafwm==0xffff && b->bltalwm==0xffff"); + if (b_is_on) printf(" && !b->blitbshift"); + printf(") {\n"); + if (a_is_on) printf("uae_u32 srca=((uae_u32)b->bltadat << 16) | b->bltadat;\n"); + if (b_is_on) printf("uae_u32 srcb=((uae_u32)b->bltbdat << 16) | b->bltbdat;\n"); + if (c_is_on) printf("uae_u32 srcc=((uae_u32)b->bltcdat << 16) | b->bltcdat;\n"); + printf("uae_u32 dest;\n"); + printf("int count=b->hblitsize/2, oddword=b->hblitsize&1;\n"); + printf("for (j=0;jvblitsize;j++) {\n"); + printf("\tfor(i=0;ibltamod;\n"); + if (b_is_on) printf("\tif (ptb) ptb += b->bltbmod;\n"); + if (c_is_on) printf("\tif (ptc) ptc += b->bltcmod;\n"); + printf("\tif (ptd) ptd += b->bltdmod;\n"); + printf("}\n"); + if (a_is_on) printf("if (pta) b->bltadat = (*(pta-b->bltamod-2) << 8) | *(pta - b->bltamod - 1);\n"); /* Maybe not necessary, but I don't want problems */ + if (b_is_on) printf("if (ptb) b->bltbdat = (*(ptb-b->bltbmod-2) << 8) | *(ptb - b->bltbmod - 1);\n"); + if (c_is_on) printf("if (ptc) b->bltcdat = (*(ptc-b->bltcmod-2) << 8) | *(ptc - b->bltcmod - 1);\n"); + printf("if (ptd) b->bltddat = (*(ptd-b->bltdmod-2) << 8) | *(ptd - b->bltdmod - 1);\n"); - printf("} else {\n"); + printf("} else {\n"); #endif - if (a_is_on) printf("uae_u32 preva = 0;\n"); - if (b_is_on) printf("uae_u32 prevb = 0, srcb = b->bltbhold;\n"); - if (c_is_on) printf("uae_u32 srcc = b->bltcdat;\n"); - printf("uae_u32 dstd=0;\n"); - printf("uaecptr dstp = 0;\n"); - printf("for (j = 0; j < b->vblitsize; j++) {\n"); - printf("\tfor (i = 0; i < b->hblitsize; i++) {\n\t\tuae_u32 bltadat, srca;\n\n"); - if (c_is_on) printf("\t\tif (ptc) { srcc = chipmem_wget_indirect (ptc); ptc += 2; }\n"); - if (b_is_on) printf("\t\tif (ptb) {\n\t\t\tuae_u32 bltbdat = blt_info.bltbdat = chipmem_wget_indirect (ptb); ptb += 2;\n"); - if (b_is_on) printf("\t\t\tsrcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift;\n"); - if (b_is_on) printf("\t\t\tprevb = bltbdat;\n\t\t}\n"); - if (a_is_on) printf("\t\tif (pta) { bltadat = blt_info.bltadat = chipmem_wget_indirect (pta); pta += 2; } else { bltadat = blt_info.bltadat; }\n"); - if (a_is_on) printf("\t\tbltadat &= blit_masktable[i];\n"); - if (a_is_on) printf("\t\tsrca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift;\n"); - if (a_is_on) printf("\t\tpreva = bltadat;\n"); - printf("\t\tif (dstp) chipmem_wput_indirect (dstp, dstd);\n"); - printf("\t\tdstd = (%s) & 0xFFFF;\n", blitops[blttbl[i]].s); - printf("\t\ttotald |= dstd;\n"); - printf("\t\tif (ptd) { dstp = ptd; ptd += 2; }\n"); - printf("\t}\n"); - if (a_is_on) printf("\tif (pta) pta += b->bltamod;\n"); - if (b_is_on) printf("\tif (ptb) ptb += b->bltbmod;\n"); - if (c_is_on) printf("\tif (ptc) ptc += b->bltcmod;\n"); - printf("\tif (ptd) ptd += b->bltdmod;\n"); - printf("}\n"); - if (b_is_on) printf("b->bltbhold = srcb;\n"); - if (c_is_on) printf("b->bltcdat = srcc;\n"); - printf("\t\tif (dstp) chipmem_wput_indirect (dstp, dstd);\n"); + if (a_is_on) printf("uae_u32 preva = 0;\n"); + if (b_is_on) printf("uae_u32 prevb = 0, srcb = b->bltbhold;\n"); + if (c_is_on) printf("uae_u32 srcc = b->bltcdat;\n"); + printf("uae_u32 dstd=0;\n"); + printf("uaecptr dstp = 0;\n"); + printf("for (j = 0; j < b->vblitsize; j++) {\n"); + printf("\tfor (i = 0; i < b->hblitsize; i++) {\n\t\tuae_u32 bltadat, srca;\n\n"); + if (c_is_on) printf("\t\tif (ptc) { srcc = chipmem_wget_indirect (ptc); ptc += 2; }\n"); + if (b_is_on) printf("\t\tif (ptb) {\n\t\t\tuae_u32 bltbdat = blt_info.bltbdat = chipmem_wget_indirect (ptb); ptb += 2;\n"); + if (b_is_on) printf("\t\t\tsrcb = (((uae_u32)prevb << 16) | bltbdat) >> b->blitbshift;\n"); + if (b_is_on) printf("\t\t\tprevb = bltbdat;\n\t\t}\n"); + if (a_is_on) printf("\t\tif (pta) { bltadat = blt_info.bltadat = chipmem_wget_indirect (pta); pta += 2; } else { bltadat = blt_info.bltadat; }\n"); + if (a_is_on) printf("\t\tbltadat &= blit_masktable[i];\n"); + if (a_is_on) printf("\t\tsrca = (((uae_u32)preva << 16) | bltadat) >> b->blitashift;\n"); + if (a_is_on) printf("\t\tpreva = bltadat;\n"); + printf("\t\tif (dstp) chipmem_wput_indirect (dstp, dstd);\n"); + printf("\t\tdstd = (%s) & 0xFFFF;\n", blitops[blttbl[i]].s); + printf("\t\ttotald |= dstd;\n"); + printf("\t\tif (ptd) { dstp = ptd; ptd += 2; }\n"); + printf("\t}\n"); + if (a_is_on) printf("\tif (pta) pta += b->bltamod;\n"); + if (b_is_on) printf("\tif (ptb) ptb += b->bltbmod;\n"); + if (c_is_on) printf("\tif (ptc) ptc += b->bltcmod;\n"); + printf("\tif (ptd) ptd += b->bltdmod;\n"); + printf("}\n"); + if (b_is_on) printf("b->bltbhold = srcb;\n"); + if (c_is_on) printf("b->bltcdat = srcc;\n"); + printf("\t\tif (dstp) chipmem_wput_indirect (dstp, dstd);\n"); #if 0 - printf("}\n"); + printf("}\n"); #endif - printf("if (totald != 0) b->blitzero = 0;\n"); - printf("}\n"); + printf("if (totald != 0) b->blitzero = 0;\n"); + printf("}\n"); - printf("void blitdofast_desc_%x (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b)\n",blttbl[i]); - printf("{\n"); - printf("uae_u32 totald = 0;\n"); - printf("int i,j;\n"); + printf("void blitdofast_desc_%x (uaecptr pta, uaecptr ptb, uaecptr ptc, uaecptr ptd, struct bltinfo *b)\n",blttbl[i]); + printf("{\n"); + printf("uae_u32 totald = 0;\n"); + printf("int i,j;\n"); #if 0 - printf("if (currprefs.blits_32bit_enabled && b->hblitsize > 1"); - if (a_is_on) printf(" && !b->blitashift && b->bltafwm==0xffff && b->bltalwm==0xffff"); - if (b_is_on) printf(" && !b->blitbshift"); - printf(") {\n"); - if (a_is_on) printf("uae_u32 srca = ((uae_u32)b->bltadat << 16) | b->bltadat;\n"); - if (b_is_on) printf("uae_u32 srcb = ((uae_u32)b->bltbdat << 16) | b->bltbdat;\n"); - if (c_is_on) printf("uae_u32 srcc = ((uae_u32)b->bltcdat << 16) | b->bltcdat;\n"); - printf("uae_u32 dest;\n"); - printf("int count=b->hblitsize/2, oddword=b->hblitsize&1;\n"); - printf("for (j=0;jvblitsize;j++) {\n"); - printf("\tfor(i=0;ibltamod;\n"); - if (b_is_on) printf("\tif (ptb) ptb -= b->bltbmod;\n"); - if (c_is_on) printf("\tif (ptc) ptc -= b->bltcmod;\n"); - printf("\tif (ptd) ptd-=b->bltdmod;\n"); - printf("}\n"); - if (a_is_on) printf("if (pta) b->bltadat = (*(pta + b->bltamod + 2) << 8) | *(pta + b->bltamod + 1);\n"); /* Maybe not necessary, but I don't want problems */ - if (b_is_on) printf("if (ptb) b->bltbdat = (*(ptb + b->bltbmod + 2) << 8) | *(ptb + b->bltbmod + 1);\n"); - if (c_is_on) printf("if (ptc) b->bltcdat = (*(ptc + b->bltcmod + 2) << 8) | *(ptc + b->bltcmod + 1);\n"); - printf("if (ptd) b->bltddat = (*(ptd + b->bltdmod + 2) << 8) | *(ptd + b->bltdmod + 1);\n"); + printf("if (currprefs.blits_32bit_enabled && b->hblitsize > 1"); + if (a_is_on) printf(" && !b->blitashift && b->bltafwm==0xffff && b->bltalwm==0xffff"); + if (b_is_on) printf(" && !b->blitbshift"); + printf(") {\n"); + if (a_is_on) printf("uae_u32 srca = ((uae_u32)b->bltadat << 16) | b->bltadat;\n"); + if (b_is_on) printf("uae_u32 srcb = ((uae_u32)b->bltbdat << 16) | b->bltbdat;\n"); + if (c_is_on) printf("uae_u32 srcc = ((uae_u32)b->bltcdat << 16) | b->bltcdat;\n"); + printf("uae_u32 dest;\n"); + printf("int count=b->hblitsize/2, oddword=b->hblitsize&1;\n"); + printf("for (j=0;jvblitsize;j++) {\n"); + printf("\tfor(i=0;ibltamod;\n"); + if (b_is_on) printf("\tif (ptb) ptb -= b->bltbmod;\n"); + if (c_is_on) printf("\tif (ptc) ptc -= b->bltcmod;\n"); + printf("\tif (ptd) ptd-=b->bltdmod;\n"); + printf("}\n"); + if (a_is_on) printf("if (pta) b->bltadat = (*(pta + b->bltamod + 2) << 8) | *(pta + b->bltamod + 1);\n"); /* Maybe not necessary, but I don't want problems */ + if (b_is_on) printf("if (ptb) b->bltbdat = (*(ptb + b->bltbmod + 2) << 8) | *(ptb + b->bltbmod + 1);\n"); + if (c_is_on) printf("if (ptc) b->bltcdat = (*(ptc + b->bltcmod + 2) << 8) | *(ptc + b->bltcmod + 1);\n"); + printf("if (ptd) b->bltddat = (*(ptd + b->bltdmod + 2) << 8) | *(ptd + b->bltdmod + 1);\n"); - printf("} else {\n"); + printf("} else {\n"); #endif - if (a_is_on) printf("uae_u32 preva = 0;\n"); - if (b_is_on) printf("uae_u32 prevb = 0, srcb = b->bltbhold;\n"); - if (c_is_on) printf("uae_u32 srcc = b->bltcdat;\n"); - printf("uae_u32 dstd=0;\n"); - printf("uaecptr dstp = 0;\n"); - printf("for (j = 0; j < b->vblitsize; j++) {\n"); - printf("\tfor (i = 0; i < b->hblitsize; i++) {\n\t\tuae_u32 bltadat, srca;\n"); - if (c_is_on) printf("\t\tif (ptc) { srcc = chipmem_wget_indirect (ptc); ptc -= 2; }\n"); - if (b_is_on) printf("\t\tif (ptb) {\n\t\t\tuae_u32 bltbdat = blt_info.bltbdat = chipmem_wget_indirect (ptb); ptb -= 2;\n"); - if (b_is_on) printf("\t\t\tsrcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift;\n"); - if (b_is_on) printf("\t\t\tprevb = bltbdat;\n\t\t}\n"); - if (a_is_on) printf("\t\tif (pta) { bltadat = blt_info.bltadat = chipmem_wget_indirect (pta); pta -= 2; } else { bltadat = blt_info.bltadat; }\n"); - if (a_is_on) printf("\t\tbltadat &= blit_masktable[i];\n"); - if (a_is_on) printf("\t\tsrca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift;\n"); - if (a_is_on) printf("\t\tpreva = bltadat;\n"); - printf("\t\tif (dstp) chipmem_wput_indirect (dstp, dstd);\n"); - printf("\t\tdstd = (%s) & 0xFFFF;\n", blitops[blttbl[i]].s); - printf("\t\ttotald |= dstd;\n"); - printf("\t\tif (ptd) { dstp = ptd; ptd -= 2; }\n"); - printf("\t}\n"); - if (a_is_on) printf("\tif (pta) pta -= b->bltamod;\n"); - if (b_is_on) printf("\tif (ptb) ptb -= b->bltbmod;\n"); - if (c_is_on) printf("\tif (ptc) ptc -= b->bltcmod;\n"); - printf("\tif (ptd) ptd -= b->bltdmod;\n"); - printf("}\n"); - if (b_is_on) printf("b->bltbhold = srcb;\n"); - if (c_is_on) printf("b->bltcdat = srcc;\n"); - printf("\t\tif (dstp) chipmem_wput_indirect (dstp, dstd);\n"); + if (a_is_on) printf("uae_u32 preva = 0;\n"); + if (b_is_on) printf("uae_u32 prevb = 0, srcb = b->bltbhold;\n"); + if (c_is_on) printf("uae_u32 srcc = b->bltcdat;\n"); + printf("uae_u32 dstd=0;\n"); + printf("uaecptr dstp = 0;\n"); + printf("for (j = 0; j < b->vblitsize; j++) {\n"); + printf("\tfor (i = 0; i < b->hblitsize; i++) {\n\t\tuae_u32 bltadat, srca;\n"); + if (c_is_on) printf("\t\tif (ptc) { srcc = chipmem_wget_indirect (ptc); ptc -= 2; }\n"); + if (b_is_on) printf("\t\tif (ptb) {\n\t\t\tuae_u32 bltbdat = blt_info.bltbdat = chipmem_wget_indirect (ptb); ptb -= 2;\n"); + if (b_is_on) printf("\t\t\tsrcb = ((bltbdat << 16) | prevb) >> b->blitdownbshift;\n"); + if (b_is_on) printf("\t\t\tprevb = bltbdat;\n\t\t}\n"); + if (a_is_on) printf("\t\tif (pta) { bltadat = blt_info.bltadat = chipmem_wget_indirect (pta); pta -= 2; } else { bltadat = blt_info.bltadat; }\n"); + if (a_is_on) printf("\t\tbltadat &= blit_masktable[i];\n"); + if (a_is_on) printf("\t\tsrca = (((uae_u32)bltadat << 16) | preva) >> b->blitdownashift;\n"); + if (a_is_on) printf("\t\tpreva = bltadat;\n"); + printf("\t\tif (dstp) chipmem_wput_indirect (dstp, dstd);\n"); + printf("\t\tdstd = (%s) & 0xFFFF;\n", blitops[blttbl[i]].s); + printf("\t\ttotald |= dstd;\n"); + printf("\t\tif (ptd) { dstp = ptd; ptd -= 2; }\n"); + printf("\t}\n"); + if (a_is_on) printf("\tif (pta) pta -= b->bltamod;\n"); + if (b_is_on) printf("\tif (ptb) ptb -= b->bltbmod;\n"); + if (c_is_on) printf("\tif (ptc) ptc -= b->bltcmod;\n"); + printf("\tif (ptd) ptd -= b->bltdmod;\n"); + printf("}\n"); + if (b_is_on) printf("b->bltbhold = srcb;\n"); + if (c_is_on) printf("b->bltcdat = srcc;\n"); + printf("\t\tif (dstp) chipmem_wput_indirect (dstp, dstd);\n"); #if 0 - printf("}\n"); + printf("}\n"); #endif - printf("if (totald != 0) b->blitzero = 0;\n"); - printf("}\n"); + printf("if (totald != 0) b->blitzero = 0;\n"); + printf("}\n"); } } @@ -215,27 +218,31 @@ static void generate_table(void) printf("#include \"blitter.h\"\n"); printf("#include \"blitfunc.h\"\n\n"); printf("blitter_func * const blitfunc_dofast[256] = {\n"); - for (i = 0; i < 256; i++) { - if (index < sizeof(blttbl) && i == blttbl[index]) { - printf("blitdofast_%x",i); - index++; - } - else printf("0"); - if (i < 255) printf(", "); - if ((i & 7) == 7) printf("\n"); + for (i = 0; i < 256; i++) + { + if (index < sizeof(blttbl) && i == blttbl[index]) + { + printf("blitdofast_%x",i); + index++; + } + else printf("0"); + if (i < 255) printf(", "); + if ((i & 7) == 7) printf("\n"); } printf("};\n\n"); index = 0; printf("blitter_func * const blitfunc_dofast_desc[256] = {\n"); - for (i = 0; i < 256; i++) { - if (index < sizeof(blttbl) && i == blttbl[index]) { - printf("blitdofast_desc_%x",i); - index++; - } - else printf("0"); - if (i < 255) printf(", "); - if ((i & 7) == 7) printf("\n"); + for (i = 0; i < 256; i++) + { + if (index < sizeof(blttbl) && i == blttbl[index]) + { + printf("blitdofast_desc_%x",i); + index++; + } + else printf("0"); + if (i < 255) printf(", "); + if ((i & 7) == 7) printf("\n"); } printf("};\n"); } @@ -243,9 +250,10 @@ static void generate_table(void) static void generate_header(void) { unsigned int i; - for (i = 0; i < sizeof(blttbl); i++) { - printf("extern blitter_func blitdofast_%x;\n",blttbl[i]); - printf("extern blitter_func blitdofast_desc_%x;\n",blttbl[i]); + for (i = 0; i < sizeof(blttbl); i++) + { + printf("extern blitter_func blitdofast_%x;\n",blttbl[i]); + printf("extern blitter_func blitdofast_desc_%x;\n",blttbl[i]); } } @@ -254,16 +262,22 @@ int main(int argc, char **argv) char mode = 'i'; if (argc == 2) mode = *argv[1]; - switch (mode) { - case 'i': generate_include(); - break; - case 'f': generate_func(); - break; - case 't': generate_table(); - break; - case 'h': generate_header(); - break; - default: abort(); + switch (mode) + { + case 'i': + generate_include(); + break; + case 'f': + generate_func(); + break; + case 't': + generate_table(); + break; + case 'h': + generate_header(); + break; + default: + abort(); } return 0; } diff --git a/src/gencpu.cpp b/src/gencpu.cpp index da891770..c85976be 100644 --- a/src/gencpu.cpp +++ b/src/gencpu.cpp @@ -109,51 +109,55 @@ static const char *do_cycles, *disp000, *disp020, *getpc; NORETURN static void term (void) { - printf("Abort!\n"); - abort (); + printf("Abort!\n"); + abort (); } NORETURN static void term (const char *err) { - printf ("%s\n", err); - term (); + printf ("%s\n", err); + term (); } static void read_counts (void) { - FILE *file; - unsigned int opcode, count, total; - char name[20]; - int nr = 0; - memset (counts, 0, 65536 * sizeof *counts); + FILE *file; + unsigned int opcode, count, total; + char name[20]; + int nr = 0; + memset (counts, 0, 65536 * sizeof *counts); - count = 0; - file = fopen ("frequent.68k", "r"); - if (file) { - if (fscanf (file, "Total: %u\n", &total) == 0) { - abort (); - } - while (fscanf (file, "%x: %u %s\n", &opcode, &count, name) == 3) { - opcode_next_clev[nr] = 5; - opcode_last_postfix[nr] = -1; - opcode_map[nr++] = opcode; - counts[opcode] = count; - } - fclose (file); - } - if (nr == nr_cpuop_funcs) - return; - for (opcode = 0; opcode < 0x10000; opcode++) { - if (table68k[opcode].handler == -1 && table68k[opcode].mnemo != i_ILLG - && counts[opcode] == 0) - { - opcode_next_clev[nr] = 5; - opcode_last_postfix[nr] = -1; - opcode_map[nr++] = opcode; - counts[opcode] = count; - } - } - if (nr != nr_cpuop_funcs) - term (); + count = 0; + file = fopen ("frequent.68k", "r"); + if (file) + { + if (fscanf (file, "Total: %u\n", &total) == 0) + { + abort (); + } + while (fscanf (file, "%x: %u %s\n", &opcode, &count, name) == 3) + { + opcode_next_clev[nr] = 5; + opcode_last_postfix[nr] = -1; + opcode_map[nr++] = opcode; + counts[opcode] = count; + } + fclose (file); + } + if (nr == nr_cpuop_funcs) + return; + for (opcode = 0; opcode < 0x10000; opcode++) + { + if (table68k[opcode].handler == -1 && table68k[opcode].mnemo != i_ILLG + && counts[opcode] == 0) + { + opcode_next_clev[nr] = 5; + opcode_last_postfix[nr] = -1; + opcode_map[nr++] = opcode; + counts[opcode] = count; + } + } + if (nr != nr_cpuop_funcs) + term (); } static char endlabelstr[80]; @@ -177,456 +181,535 @@ static bool got_ea_ce020; static void fpulimit (void) { - if (limit_braces) - return; - printf ("\n#ifdef FPUEMU\n"); - limit_braces = n_braces; - n_braces = 0; + if (limit_braces) + return; + printf ("\n#ifdef FPUEMU\n"); + limit_braces = n_braces; + n_braces = 0; } static void cpulimit (void) { - printf ("#ifndef CPUEMU_68000_ONLY\n"); + printf ("#ifndef CPUEMU_68000_ONLY\n"); } static int s_count_read, s_count_write, s_count_cycles, s_count_ncycles; static void push_ins_cnt(void) { - s_count_read = count_read; - s_count_write = count_write; - s_count_cycles = count_cycles; - s_count_ncycles = count_ncycles; + s_count_read = count_read; + s_count_write = count_write; + s_count_cycles = count_cycles; + s_count_ncycles = count_ncycles; } static void pop_ins_cnt(void) { - count_read = s_count_read; - count_write = s_count_write; - count_cycles = s_count_cycles; - count_ncycles = s_count_ncycles; + count_read = s_count_read; + count_write = s_count_write; + count_cycles = s_count_cycles; + count_ncycles = s_count_ncycles; } static bool isce020(void) { - if (!using_ce020) - return false; - if (using_ce020 >= 3) - return false; - return true; + if (!using_ce020) + return false; + if (using_ce020 >= 3) + return false; + return true; } static bool isprefetch020(void) { - if (!using_prefetch_020) - return false; - if (using_prefetch_020 >= 3) - return false; - return true; + if (!using_prefetch_020) + return false; + if (using_prefetch_020 >= 3) + return false; + return true; } static void addcycles_ce020 (int cycles, const char *s) { - if (!isce020()) - return; - if (cycles > 0) { - if (s == NULL) - printf ("\t%s (%d);\n", do_cycles, cycles); - else - printf ("\t%s (%d); /* %s */\n", do_cycles, cycles, s); - } - count_cycles += cycles; - count_cycles_ce020 += cycles; + if (!isce020()) + return; + if (cycles > 0) + { + if (s == NULL) + printf ("\t%s (%d);\n", do_cycles, cycles); + else + printf ("\t%s (%d); /* %s */\n", do_cycles, cycles, s); + } + count_cycles += cycles; + count_cycles_ce020 += cycles; } static void addcycles_ce020 (int cycles) { - addcycles_ce020 (cycles, NULL); + addcycles_ce020 (cycles, NULL); } static void get_prefetch_020 (void) { - if (!isprefetch020() || no_prefetch_ce020) - return; - printf ("\tregs.irc = %s (%d);\n", prefetch_word, m68k_pc_offset); + if (!isprefetch020() || no_prefetch_ce020) + return; + printf ("\tregs.irc = %s (%d);\n", prefetch_word, m68k_pc_offset); } static void get_prefetch_020_continue(void) { - if (!isprefetch020()) - return; - if (using_ce020) - printf("\tcontinue_ce020_prefetch();\n"); - else - printf ("\tcontinue_020_prefetch();\n"); + if (!isprefetch020()) + return; + if (using_ce020) + printf("\tcontinue_ce020_prefetch();\n"); + else + printf ("\tcontinue_020_prefetch();\n"); } static void returntail (bool iswrite) { - if (!isce020()) { - if (isprefetch020()) { - if (!tail_ce020_done) { - if (!did_prefetch) - get_prefetch_020 (); - did_prefetch = 1; - tail_ce020_done = true; - } - } - return; - } - if (!tail_ce020_done) { - total_ce020 -= 2; + if (!isce020()) + { + if (isprefetch020()) + { + if (!tail_ce020_done) + { + if (!did_prefetch) + get_prefetch_020 (); + did_prefetch = 1; + tail_ce020_done = true; + } + } + return; + } + if (!tail_ce020_done) + { + total_ce020 -= 2; #if 0 - if (iswrite) { - printf("\t/* C - %d = %d */\n", memory_cycle_cnt, total_ce020 - memory_cycle_cnt); - total_ce020 -= memory_cycle_cnt; - } else { - printf("\t/* C = %d */\n", total_ce020); - } + if (iswrite) + { + printf("\t/* C - %d = %d */\n", memory_cycle_cnt, total_ce020 - memory_cycle_cnt); + total_ce020 -= memory_cycle_cnt; + } + else + { + printf("\t/* C = %d */\n", total_ce020); + } #endif - if (0 && total_ce020 <= 0) { - printf ("\t/* C was zero */\n"); - total_ce020 = 1; - } - if (!did_prefetch) - get_prefetch_020 (); - if (total_ce020 > 0) - addcycles_ce020 (total_ce020); + if (0 && total_ce020 <= 0) + { + printf ("\t/* C was zero */\n"); + total_ce020 = 1; + } + if (!did_prefetch) + get_prefetch_020 (); + if (total_ce020 > 0) + addcycles_ce020 (total_ce020); - //printf ("\tregs.irc = %s;\n", prefetch_word); - if (0 && total_ce020 >= 2) { - printf ("\top_cycles = get_cycles () - op_cycles;\n"); - printf ("\top_cycles /= cpucycleunit;\n"); - printf ("\tif (op_cycles < %d) {\n", total_ce020); - printf ("\t\tdo_cycles_ce020 ((%d) - op_cycles);\n", total_ce020); - printf ("\t}\n"); - } + //printf ("\tregs.irc = %s;\n", prefetch_word); + if (0 && total_ce020 >= 2) + { + printf ("\top_cycles = get_cycles () - op_cycles;\n"); + printf ("\top_cycles /= cpucycleunit;\n"); + printf ("\tif (op_cycles < %d) {\n", total_ce020); + printf ("\t\tdo_cycles_ce020 ((%d) - op_cycles);\n", total_ce020); + printf ("\t}\n"); + } #if 0 - if (tail_ce020 > 0) { - printf ("\tregs.ce020_tail = %d * cpucycleunit;\n", tail_ce020); - printf ("\tregs.ce020_tail_cycles = get_cycles () + regs.ce020_tail;\n"); - } else { - printf ("\tregs.ce020_tail = 0;\n"); - } + if (tail_ce020 > 0) + { + printf ("\tregs.ce020_tail = %d * cpucycleunit;\n", tail_ce020); + printf ("\tregs.ce020_tail_cycles = get_cycles () + regs.ce020_tail;\n"); + } + else + { + printf ("\tregs.ce020_tail = 0;\n"); + } #endif - tail_ce020_done = true; - } + tail_ce020_done = true; + } } static void returncycles (const char *s, int cycles) { - if (using_ce || using_ce020) { + if (using_ce || using_ce020) + { #if 0 - if (tail_ce020 == 0) - printf ("\tregs.ce020memcycles -= 2 * cpucycleunit; /* T=0 */ \n"); - else if (tail_ce020 == 1) - printf ("\tregs.ce020memcycles -= 1 * cpucycleunit; /* T=1 */ \n"); - else if (tail_ce020 == 2) - printf ("\tregs.ce020memcycles -= 0 * cpucycleunit; /* T=2 */\n"); + if (tail_ce020 == 0) + printf ("\tregs.ce020memcycles -= 2 * cpucycleunit; /* T=0 */ \n"); + else if (tail_ce020 == 1) + printf ("\tregs.ce020memcycles -= 1 * cpucycleunit; /* T=1 */ \n"); + else if (tail_ce020 == 2) + printf ("\tregs.ce020memcycles -= 0 * cpucycleunit; /* T=2 */\n"); #endif - printf ("%sreturn;\n", s); - return; - } - if (using_simple_cycles) - printf ("%sreturn %d * CYCLE_UNIT / 2 + count_cycles;\n", s, cycles); - else - printf ("%sreturn %d * CYCLE_UNIT / 2;\n", s, cycles); + printf ("%sreturn;\n", s); + return; + } + if (using_simple_cycles) + printf ("%sreturn %d * CYCLE_UNIT / 2 + count_cycles;\n", s, cycles); + else + printf ("%sreturn %d * CYCLE_UNIT / 2;\n", s, cycles); } static void returncycles_exception (const char *s, int cycles) { - if (using_ce || using_ce020) { + if (using_ce || using_ce020) + { #if 0 - if (tail_ce020 == 0) - printf ("\tregs.ce020memcycles -= 2 * cpucycleunit; /* T=0 */ \n"); - else if (tail_ce020 == 1) - printf ("\tregs.ce020memcycles -= 1 * cpucycleunit; /* T=1 */ \n"); - else if (tail_ce020 == 2) - printf ("\tregs.ce020memcycles -= 0 * cpucycleunit; /* T=2 */\n"); + if (tail_ce020 == 0) + printf ("\tregs.ce020memcycles -= 2 * cpucycleunit; /* T=0 */ \n"); + else if (tail_ce020 == 1) + printf ("\tregs.ce020memcycles -= 1 * cpucycleunit; /* T=1 */ \n"); + else if (tail_ce020 == 2) + printf ("\tregs.ce020memcycles -= 0 * cpucycleunit; /* T=2 */\n"); #endif - printf ("%sreturn;\n", s); - return; - } - printf ("\t\t%sreturn %d * CYCLE_UNIT / 2;\n", s, cycles); + printf ("%sreturn;\n", s); + return; + } + printf ("\t\t%sreturn %d * CYCLE_UNIT / 2;\n", s, cycles); } static void addcycles_ce020 (const char *name, int head, int tail, int cycles) { - if (!isce020()) - return; - if (!head && !tail && !cycles) - return; - printf ("\t/* %s H:%d,T:%d,C:%d */\n", name, head, tail, cycles); + if (!isce020()) + return; + if (!head && !tail && !cycles) + return; + printf ("\t/* %s H:%d,T:%d,C:%d */\n", name, head, tail, cycles); } static void addcycles_ce020 (const char *name, int head, int tail, int cycles, int ophead) { - if (!isce020()) - return; - if (!head && !tail && !cycles && !ophead) { - printf ("\t/* OP zero */\n"); - return; - } - count_cycles += cycles; - if (!ophead) { - addcycles_ce020 (name, head, tail, cycles); - } else if (ophead > 0) { - printf ("\t/* %s H:%d-,T:%d,C:%d */\n", name, head, tail, cycles); - } else { - printf ("\t/* %s H:%d+,T:%d,C:%d */\n", name, head, tail, cycles); - } + if (!isce020()) + return; + if (!head && !tail && !cycles && !ophead) + { + printf ("\t/* OP zero */\n"); + return; + } + count_cycles += cycles; + if (!ophead) + { + addcycles_ce020 (name, head, tail, cycles); + } + else if (ophead > 0) + { + printf ("\t/* %s H:%d-,T:%d,C:%d */\n", name, head, tail, cycles); + } + else + { + printf ("\t/* %s H:%d+,T:%d,C:%d */\n", name, head, tail, cycles); + } } static void addcycles000_nonces(const char *s, const char *sc) { - if (using_simple_cycles) { - printf("%scount_cycles += (%s) * CYCLE_UNIT / 2;\n", s, sc); - count_ncycles++; - } + if (using_simple_cycles) + { + printf("%scount_cycles += (%s) * CYCLE_UNIT / 2;\n", s, sc); + count_ncycles++; + } } static void addcycles000_nonce(const char *s, int c) { - if (using_simple_cycles) { - printf("%scount_cycles += %d * CYCLE_UNIT / 2;\n", s, c); - count_ncycles++; - } + if (using_simple_cycles) + { + printf("%scount_cycles += %d * CYCLE_UNIT / 2;\n", s, c); + count_ncycles++; + } } static void addcycles000_onlyce (int cycles) { - if (using_ce) { - printf ("\t%s (%d);\n", do_cycles, cycles); - } + if (using_ce) + { + printf ("\t%s (%d);\n", do_cycles, cycles); + } } static void addcycles000 (int cycles) { - if (using_ce) { - printf ("\t%s (%d);\n", do_cycles, cycles); - } - count_cycles += cycles; + if (using_ce) + { + printf ("\t%s (%d);\n", do_cycles, cycles); + } + count_cycles += cycles; } static void addcycles000_2 (const char *s, int cycles) { - if (using_ce) { - printf ("%s%s (%d);\n", s, do_cycles, cycles); - } - count_cycles += cycles; + if (using_ce) + { + printf ("%s%s (%d);\n", s, do_cycles, cycles); + } + count_cycles += cycles; } static void addcycles000_3 (const char *s) { - if (using_ce) { - printf ("%sif (cycles > 0) %s (cycles);\n", s, do_cycles); - } - count_ncycles++; + if (using_ce) + { + printf ("%sif (cycles > 0) %s (cycles);\n", s, do_cycles); + } + count_ncycles++; } static int isreg (amodes mode) { - if (mode == Dreg || mode == Areg) - return 1; - return 0; + if (mode == Dreg || mode == Areg) + return 1; + return 0; } static void start_brace (void) { - n_braces++; - printf ("{"); + n_braces++; + printf ("{"); } static void close_brace (void) { - assert (n_braces > 0); - n_braces--; - printf ("}"); + assert (n_braces > 0); + n_braces--; + printf ("}"); } static void finish_braces (void) { - while (n_braces > 0) - close_brace (); + while (n_braces > 0) + close_brace (); } static void pop_braces (int to) { - while (n_braces > to) - close_brace (); + while (n_braces > to) + close_brace (); } static int bit_size (int size) { - switch (size) { - case sz_byte: return 8; - case sz_word: return 16; - case sz_long: return 32; - default: term (); - } - return 0; + switch (size) + { + case sz_byte: + return 8; + case sz_word: + return 16; + case sz_long: + return 32; + default: + term (); + } + return 0; } static const char *bit_mask (int size) { - switch (size) { - case sz_byte: return "0xff"; - case sz_word: return "0xffff"; - case sz_long: return "0xffffffff"; - default: term (); - } - return 0; + switch (size) + { + case sz_byte: + return "0xff"; + case sz_word: + return "0xffff"; + case sz_long: + return "0xffffffff"; + default: + term (); + } + return 0; } static void add_mmu040_movem (int movem) { - if (movem != 3) - return; - printf ("\tif (mmu040_movem) {\n"); - printf ("\t\tsrca = mmu040_movem_ea;\n"); - printf ("\t} else\n"); - start_brace (); + if (movem != 3) + return; + printf ("\tif (mmu040_movem) {\n"); + printf ("\t\tsrca = mmu040_movem_ea;\n"); + printf ("\t} else\n"); + start_brace (); } static void gen_nextilong2 (const char *type, const char *name, int flags, int movem) { - int r = m68k_pc_offset; - m68k_pc_offset += 4; + int r = m68k_pc_offset; + m68k_pc_offset += 4; - printf ("\t%s %s;\n", type, name); - add_mmu040_movem (movem); - if (using_ce020) { - if (flags & GF_NOREFILL) - printf("\t%s = %s (%d);\n", name, prefetch_long, r); - else - printf ("\t%s = %s (%d);\n", name, prefetch_long, r); - count_read += 2; - } else if (using_ce) { - /* we must do this because execution order of (something | something2) is not defined */ - if (flags & GF_NOREFILL) { - printf ("\t%s = %s (%d) << 16;\n", name, prefetch_word, r + 2); - count_read++; - printf ("\t%s |= regs.irc;\n", name); - } else { - printf ("\t%s = %s (%d) << 16;\n", name, prefetch_word, r + 2); - count_read++; - printf ("\t%s |= %s (%d);\n", name, prefetch_word, r + 4); - count_read++; - } - } else { - if (using_prefetch) { - if (flags & GF_NOREFILL) { - printf ("\t%s = %s (regs, %d) << 16;\n", name, prefetch_word, r + 2); - count_read++; - printf ("\t%s |= regs.irc;\n", name); - insn_n_cycles += 4; - } else { - printf ("\t%s = %s (regs, %d) << 16;\n", name, prefetch_word, r + 2); - count_read += 2; - printf ("\t%s |= %s (regs, %d);\n", name, prefetch_word, r + 4); - insn_n_cycles += 8; - } - } else { - count_read += 2; - insn_n_cycles += 8; - printf ("\t%s = %s (%d);\n", name, prefetch_long, r); - } - } + printf ("\t%s %s;\n", type, name); + add_mmu040_movem (movem); + if (using_ce020) + { + if (flags & GF_NOREFILL) + printf("\t%s = %s (%d);\n", name, prefetch_long, r); + else + printf ("\t%s = %s (%d);\n", name, prefetch_long, r); + count_read += 2; + } + else if (using_ce) + { + /* we must do this because execution order of (something | something2) is not defined */ + if (flags & GF_NOREFILL) + { + printf ("\t%s = %s (%d) << 16;\n", name, prefetch_word, r + 2); + count_read++; + printf ("\t%s |= regs.irc;\n", name); + } + else + { + printf ("\t%s = %s (%d) << 16;\n", name, prefetch_word, r + 2); + count_read++; + printf ("\t%s |= %s (%d);\n", name, prefetch_word, r + 4); + count_read++; + } + } + else + { + if (using_prefetch) + { + if (flags & GF_NOREFILL) + { + printf ("\t%s = %s (regs, %d) << 16;\n", name, prefetch_word, r + 2); + count_read++; + printf ("\t%s |= regs.irc;\n", name); + insn_n_cycles += 4; + } + else + { + printf ("\t%s = %s (regs, %d) << 16;\n", name, prefetch_word, r + 2); + count_read += 2; + printf ("\t%s |= %s (regs, %d);\n", name, prefetch_word, r + 4); + insn_n_cycles += 8; + } + } + else + { + count_read += 2; + insn_n_cycles += 8; + printf ("\t%s = %s (%d);\n", name, prefetch_long, r); + } + } } static void gen_nextilong (const char *type, const char *name, int flags) { - gen_nextilong2 (type, name, flags, 0); + gen_nextilong2 (type, name, flags, 0); } static const char *gen_nextiword (int flags) { - static char buffer[80]; - int r = m68k_pc_offset; - m68k_pc_offset += 2; + static char buffer[80]; + int r = m68k_pc_offset; + m68k_pc_offset += 2; - if (using_ce020) { - if (flags & GF_NOREFILL) - sprintf(buffer, "%s (%d)", prefetch_word, r); - else - sprintf (buffer, "%s (%d)", prefetch_word, r); - count_read++; - } else if (using_ce) { - if (flags & GF_NOREFILL) { - strcpy (buffer, "regs.irc"); - } else { - sprintf (buffer, "%s (%d)", prefetch_word, r + 2); - count_read++; - } - } else { - if (using_prefetch) { - if (flags & GF_NOREFILL) { - strcpy (buffer, "regs.irc"); - } else { - sprintf (buffer, "%s (regs, %d)", prefetch_word, r + 2); - count_read++; - insn_n_cycles += 4; - } - } else { - sprintf (buffer, "%s (%d)", prefetch_word, r); - count_read++; - insn_n_cycles += 4; - } - } - return buffer; + if (using_ce020) + { + if (flags & GF_NOREFILL) + sprintf(buffer, "%s (%d)", prefetch_word, r); + else + sprintf (buffer, "%s (%d)", prefetch_word, r); + count_read++; + } + else if (using_ce) + { + if (flags & GF_NOREFILL) + { + strcpy (buffer, "regs.irc"); + } + else + { + sprintf (buffer, "%s (%d)", prefetch_word, r + 2); + count_read++; + } + } + else + { + if (using_prefetch) + { + if (flags & GF_NOREFILL) + { + strcpy (buffer, "regs.irc"); + } + else + { + sprintf (buffer, "%s (regs, %d)", prefetch_word, r + 2); + count_read++; + insn_n_cycles += 4; + } + } + else + { + sprintf (buffer, "%s (%d)", prefetch_word, r); + count_read++; + insn_n_cycles += 4; + } + } + return buffer; } static const char *gen_nextibyte (int flags) { - static char buffer[80]; - int r = m68k_pc_offset; - m68k_pc_offset += 2; + static char buffer[80]; + int r = m68k_pc_offset; + m68k_pc_offset += 2; - if (using_ce020 || using_prefetch_020) { - if (flags & GF_NOREFILL) - sprintf(buffer, "(uae_u8)%s (%d)", prefetch_word, r); - else - sprintf (buffer, "(uae_u8)%s (%d)", prefetch_word, r); - count_read++; - } else if (using_ce) { - if (flags & GF_NOREFILL) { - strcpy (buffer, "(uae_u8)regs.irc"); - } else { - sprintf (buffer, "(uae_u8)%s (%d)", prefetch_word, r + 2); - count_read++; - } - } else { - insn_n_cycles += 4; - if (using_prefetch) { - if (flags & GF_NOREFILL) { - strcpy (buffer, "(uae_u8)regs.irc"); - } else { - sprintf (buffer, "(uae_u8)%s (regs, %d)", prefetch_word, r + 2); - insn_n_cycles += 4; - count_read++; - } - } else { - sprintf (buffer, "%s (%d)", srcbi, r); - insn_n_cycles += 4; - count_read++; - } - } - return buffer; + if (using_ce020 || using_prefetch_020) + { + if (flags & GF_NOREFILL) + sprintf(buffer, "(uae_u8)%s (%d)", prefetch_word, r); + else + sprintf (buffer, "(uae_u8)%s (%d)", prefetch_word, r); + count_read++; + } + else if (using_ce) + { + if (flags & GF_NOREFILL) + { + strcpy (buffer, "(uae_u8)regs.irc"); + } + else + { + sprintf (buffer, "(uae_u8)%s (%d)", prefetch_word, r + 2); + count_read++; + } + } + else + { + insn_n_cycles += 4; + if (using_prefetch) + { + if (flags & GF_NOREFILL) + { + strcpy (buffer, "(uae_u8)regs.irc"); + } + else + { + sprintf (buffer, "(uae_u8)%s (regs, %d)", prefetch_word, r + 2); + insn_n_cycles += 4; + count_read++; + } + } + else + { + sprintf (buffer, "%s (%d)", srcbi, r); + insn_n_cycles += 4; + count_read++; + } + } + return buffer; } static void makefromsr (void) { - printf ("\tMakeFromSR(regs);\n"); - if (using_ce || isce020()) - printf ("\tregs.ipl_pin = intlev ();\n"); + printf ("\tMakeFromSR(regs);\n"); + if (using_ce || isce020()) + printf ("\tregs.ipl_pin = intlev ();\n"); } static void check_ipl (void) { - if (ipl_fetched) - return; - if (using_ce || isce020()) - printf ("\tipl_fetch ();\n"); - ipl_fetched = 1; + if (ipl_fetched) + return; + if (using_ce || isce020()) + printf ("\tipl_fetch ();\n"); + ipl_fetched = 1; } static void single_check_ipl(void) { - check_ipl(); - ipl_fetched = 2; + check_ipl(); + ipl_fetched = 2; } /* this is not true, it seems to be microcode controller */ @@ -639,120 +722,127 @@ static void single_check_ipl(void) */ static void check_ipl_again (void) { - if (ipl_fetched != 1) - return; - if (using_ce) - printf ("\tipl_fetch ();\n"); + if (ipl_fetched != 1) + return; + if (using_ce) + printf ("\tipl_fetch ();\n"); } static void irc2ir (bool dozero) { - if (!using_prefetch) - return; - if (ir2irc) - return; - ir2irc = 1; - printf ("\tregs.ir = regs.irc;\n"); - if (dozero) - printf ("\tregs.irc = 0;\n"); - check_ipl (); + if (!using_prefetch) + return; + if (ir2irc) + return; + ir2irc = 1; + printf ("\tregs.ir = regs.irc;\n"); + if (dozero) + printf ("\tregs.irc = 0;\n"); + check_ipl (); } static void irc2ir (void) { - irc2ir (false); + irc2ir (false); } static void fill_prefetch_2 (void) { - if (!using_prefetch) - return; - printf ("\t%s (regs, %d);\n", prefetch_word, m68k_pc_offset + 2); - did_prefetch = 1; - ir2irc = 0; - count_read++; - insn_n_cycles += 4; + if (!using_prefetch) + return; + printf ("\t%s (regs, %d);\n", prefetch_word, m68k_pc_offset + 2); + did_prefetch = 1; + ir2irc = 0; + count_read++; + insn_n_cycles += 4; } static void fill_prefetch_1 (int o) { - if (using_prefetch) { - printf ("\t%s (regs, %d);\n", prefetch_word, o); - did_prefetch = 1; - ir2irc = 0; - count_read++; - insn_n_cycles += 4; - } + if (using_prefetch) + { + printf ("\t%s (regs, %d);\n", prefetch_word, o); + did_prefetch = 1; + ir2irc = 0; + count_read++; + insn_n_cycles += 4; + } } static void fill_prefetch_full (void) { - if (using_prefetch) { - fill_prefetch_1 (0); - irc2ir (); - fill_prefetch_1 (2); - } else if (isprefetch020()) { - did_prefetch = 2; - total_ce020 -= 4; - returntail (false); - if (cpu_level >= 3) - printf ("\tfill_prefetch_030 ();\n"); - else if (cpu_level == 2) - printf ("\tfill_prefetch_020 ();\n"); - } else { - // Count cycles for 2nd prefetch - count_read++; - insn_n_cycles += 4; - } + if (using_prefetch) + { + fill_prefetch_1 (0); + irc2ir (); + fill_prefetch_1 (2); + } + else if (isprefetch020()) + { + did_prefetch = 2; + total_ce020 -= 4; + returntail (false); + if (cpu_level >= 3) + printf ("\tfill_prefetch_030 ();\n"); + else if (cpu_level == 2) + printf ("\tfill_prefetch_020 ();\n"); + } + else + { + // Count cycles for 2nd prefetch + count_read++; + insn_n_cycles += 4; + } } // 68000 and 68010 only static void fill_prefetch_full_000 (void) { - if (!using_prefetch) - return; - fill_prefetch_full (); + if (!using_prefetch) + return; + fill_prefetch_full (); } // 68020+ static void fill_prefetch_full_020 (void) { - if (!using_prefetch_020) - return; - fill_prefetch_full (); + if (!using_prefetch_020) + return; + fill_prefetch_full (); } static void fill_prefetch_0 (void) { - if (!using_prefetch) - return; - printf ("\t%s (regs, 0);\n", prefetch_word); - did_prefetch = 1; - ir2irc = 0; - count_read++; - insn_n_cycles += 4; + if (!using_prefetch) + return; + printf ("\t%s (regs, 0);\n", prefetch_word); + did_prefetch = 1; + ir2irc = 0; + count_read++; + insn_n_cycles += 4; } static void dummy_prefetch (void) { - int o = m68k_pc_offset + 2; - if (!using_prefetch) - return; - //printf ("\t%s (%d);\n", srcwi, o); - count_read++; - insn_n_cycles += 4; + int o = m68k_pc_offset + 2; + if (!using_prefetch) + return; + //printf ("\t%s (%d);\n", srcwi, o); + count_read++; + insn_n_cycles += 4; } static void fill_prefetch_next_1 (void) { - irc2ir (); - fill_prefetch_1 (m68k_pc_offset + 2); + irc2ir (); + fill_prefetch_1 (m68k_pc_offset + 2); } static void fill_prefetch_next (void) { - if (using_prefetch) { - fill_prefetch_next_1 (); - } + if (using_prefetch) + { + fill_prefetch_next_1 (); + } // if (using_prefetch_020) { // printf ("\t%s (%d);\n", prefetch_word, m68k_pc_offset); // did_prefetch = 1; @@ -761,277 +851,306 @@ static void fill_prefetch_next (void) static void fill_prefetch_finish (void) { - if (did_prefetch) - return; - if (using_prefetch) { - fill_prefetch_1 (m68k_pc_offset); - } - if (using_prefetch_020) { - did_prefetch = 1; - } + if (did_prefetch) + return; + if (using_prefetch) + { + fill_prefetch_1 (m68k_pc_offset); + } + if (using_prefetch_020) + { + did_prefetch = 1; + } } static void setpc (const char *format, ...) { - va_list parms; - char buffer[1000]; + va_list parms; + char buffer[1000]; - va_start (parms, format); - _vsnprintf (buffer, 1000 - 1, format, parms); - va_end (parms); + va_start (parms, format); + _vsnprintf (buffer, 1000 - 1, format, parms); + va_end (parms); - if (using_mmu) - printf ("\tm68k_setpci (regs, %s);\n", buffer); - else - printf ("\tm68k_setpc (%s);\n", buffer); + if (using_mmu) + printf ("\tm68k_setpci (regs, %s);\n", buffer); + else + printf ("\tm68k_setpc (%s);\n", buffer); } static void incpc (const char *format, ...) { - va_list parms; - char buffer[1000]; + va_list parms; + char buffer[1000]; - va_start (parms, format); - _vsnprintf (buffer, 1000 - 1, format, parms); - va_end (parms); + va_start (parms, format); + _vsnprintf (buffer, 1000 - 1, format, parms); + va_end (parms); - if (using_mmu) - printf ("\tm68k_incpci (%s);\n", buffer); - else - printf ("\tm68k_incpc (%s);\n", buffer); + if (using_mmu) + printf ("\tm68k_incpci (%s);\n", buffer); + else + printf ("\tm68k_incpc (%s);\n", buffer); } static void sync_m68k_pc (void) { - m68k_pc_offset_old = m68k_pc_offset; - if (m68k_pc_offset == 0) - return; - incpc ("%d", m68k_pc_offset); - m68k_pc_total += m68k_pc_offset; - m68k_pc_offset = 0; + m68k_pc_offset_old = m68k_pc_offset; + if (m68k_pc_offset == 0) + return; + incpc ("%d", m68k_pc_offset); + m68k_pc_total += m68k_pc_offset; + m68k_pc_offset = 0; } static void clear_m68k_offset(void) { - m68k_pc_total += m68k_pc_offset; - m68k_pc_offset = 0; + m68k_pc_total += m68k_pc_offset; + m68k_pc_offset = 0; } static void sync_m68k_pc_noreset (void) { - sync_m68k_pc (); - m68k_pc_offset = m68k_pc_offset_old; + sync_m68k_pc (); + m68k_pc_offset = m68k_pc_offset_old; } static void addmmufixup (const char *reg) { - if (!using_mmu) - return; - if (using_mmu == 68040 && (mmufixupstate || mmufixupcnt > 0)) - return; - printf ("\tmmufixup[%d].reg = %s;\n", mmufixupcnt, reg); - printf ("\tmmufixup[%d].value = m68k_areg (regs, %s);\n", mmufixupcnt, reg); - mmufixupstate |= 1 << mmufixupcnt; - mmufixupcnt++; + if (!using_mmu) + return; + if (using_mmu == 68040 && (mmufixupstate || mmufixupcnt > 0)) + return; + printf ("\tmmufixup[%d].reg = %s;\n", mmufixupcnt, reg); + printf ("\tmmufixup[%d].value = m68k_areg (regs, %s);\n", mmufixupcnt, reg); + mmufixupstate |= 1 << mmufixupcnt; + mmufixupcnt++; } static void clearmmufixup (int cnt) { - if (mmufixupstate & (1 << cnt)) { - printf ("\tmmufixup[%d].reg = -1;\n", cnt); - mmufixupstate &= ~(1 << cnt); - } + if (mmufixupstate & (1 << cnt)) + { + printf ("\tmmufixup[%d].reg = -1;\n", cnt); + mmufixupstate &= ~(1 << cnt); + } } static void gen_set_fault_pc (void) { - if (using_mmu != 68040) - return; - sync_m68k_pc (); - printf ("\tregs.instruction_pc = %s;\n", getpc); - printf ("\tmmu_restart = false;\n"); - m68k_pc_offset = 0; - clearmmufixup (0); + if (using_mmu != 68040) + return; + sync_m68k_pc (); + printf ("\tregs.instruction_pc = %s;\n", getpc); + printf ("\tmmu_restart = false;\n"); + m68k_pc_offset = 0; + clearmmufixup (0); } static void syncmovepc (int getv, int flags) { #if 0 - if (!(flags & GF_MOVE)) - return; - if (getv == 1) { - sync_m68k_pc (); - //fill_prefetch_next (); - } + if (!(flags & GF_MOVE)) + return; + if (getv == 1) + { + sync_m68k_pc (); + //fill_prefetch_next (); + } #endif } static void head_cycs (int h) { - if (head_ce020_cycs_done) - return; - if (h < 0) - return; - //printf ("\tdo_sync_tail (%d);\n", h); - //printf ("\tdo_head_cycles_ce020 (%d);\n", h); - head_ce020_cycs_done = true; - tail_ce020 = -1; + if (head_ce020_cycs_done) + return; + if (h < 0) + return; + //printf ("\tdo_sync_tail (%d);\n", h); + //printf ("\tdo_head_cycles_ce020 (%d);\n", h); + head_ce020_cycs_done = true; + tail_ce020 = -1; } static void add_head_cycs (int h) { - if (!isce020()) - return; - head_ce020_cycs_done = false; - head_cycs (h); + if (!isce020()) + return; + head_ce020_cycs_done = false; + head_cycs (h); } static void addopcycles_ce20 (int h, int t, int c, int subhead) { - head_cycs (h); + head_cycs (h); - //c = 0; + //c = 0; #if 0 - if (tail_ce020 == 1) - printf ("\tregs.ce020memcycles -= 1 * cpucycleunit; /* T=1 */ \n"); - else if (tail_ce020 == 2) - printf ("\tregs.ce020memcycles -= 2 * cpucycleunit; /* T=2 */\n"); + if (tail_ce020 == 1) + printf ("\tregs.ce020memcycles -= 1 * cpucycleunit; /* T=1 */ \n"); + else if (tail_ce020 == 2) + printf ("\tregs.ce020memcycles -= 2 * cpucycleunit; /* T=2 */\n"); #endif - if (1 && !subhead && (h > 0 || t > 0 || c > 0) && got_ea_ce020) { - if (!did_prefetch) { - get_prefetch_020 (); - did_prefetch = 1; - } - if (1) { - if (h > 0) { - printf ("\tif (regs.ce020memcycles > %d * cpucycleunit)\n", h); - printf ("\t\tregs.ce020memcycles = %d * cpucycleunit;\n", h); - } else { - printf ("\tregs.ce020memcycles = 0;\n"); - } - } - } + if (1 && !subhead && (h > 0 || t > 0 || c > 0) && got_ea_ce020) + { + if (!did_prefetch) + { + get_prefetch_020 (); + did_prefetch = 1; + } + if (1) + { + if (h > 0) + { + printf ("\tif (regs.ce020memcycles > %d * cpucycleunit)\n", h); + printf ("\t\tregs.ce020memcycles = %d * cpucycleunit;\n", h); + } + else + { + printf ("\tregs.ce020memcycles = 0;\n"); + } + } + } #if 0 - if (tail_ce020 >= 0 && h >= 0 && head_in_ea_ce020 == 0) { - int largest = tail_ce020 > h ? tail_ce020: h; - if (tail_ce020 != h) { - //printf ("\tdo_cycles_ce020 (%d - %d);\n", tail_ce020 > h ? tail_ce020 : h, tail_ce020 > h ? h : tail_ce020); - //printf ("\tdo_cycles_ce020 (%d - %d);\n", tail_ce020 > h ? tail_ce020 : h, tail_ce020 > h ? h : tail_ce020); - if (h) { - printf ("\tregs.ce020memcycles -= %d * cpucycleunit;\n", h); - printf ("\tif (regs.ce020memcycles < 0) {\n"); - //printf ("\t\tx_do_cycles (-regs.ce020memcycles);\n"); - printf ("\t\tregs.ce020memcycles = 0;\n"); - printf ("\t}\n"); - } else { - printf ("\tregs.ce020memcycles = 0;\n"); - } - //printf ("\tregs.ce020memcycles = 0;\n"); + if (tail_ce020 >= 0 && h >= 0 && head_in_ea_ce020 == 0) + { + int largest = tail_ce020 > h ? tail_ce020: h; + if (tail_ce020 != h) + { + //printf ("\tdo_cycles_ce020 (%d - %d);\n", tail_ce020 > h ? tail_ce020 : h, tail_ce020 > h ? h : tail_ce020); + //printf ("\tdo_cycles_ce020 (%d - %d);\n", tail_ce020 > h ? tail_ce020 : h, tail_ce020 > h ? h : tail_ce020); + if (h) + { + printf ("\tregs.ce020memcycles -= %d * cpucycleunit;\n", h); + printf ("\tif (regs.ce020memcycles < 0) {\n"); + //printf ("\t\tx_do_cycles (-regs.ce020memcycles);\n"); + printf ("\t\tregs.ce020memcycles = 0;\n"); + printf ("\t}\n"); + } + else + { + printf ("\tregs.ce020memcycles = 0;\n"); + } + //printf ("\tregs.ce020memcycles = 0;\n"); #if 0 - if (tail_ce020) - printf ("\tregs.ce020_tail = get_cycles () - regs.ce020_tail;\n"); - else - printf ("\tregs.ce020_tail = 0;\n"); - printf ("\tif (regs.ce020_tail < %d * cpucycleunit)\n", largest); - printf ("\t\tx_do_cycles (%d * cpucycleunit - regs.ce020_tail);\n", largest); + if (tail_ce020) + printf ("\tregs.ce020_tail = get_cycles () - regs.ce020_tail;\n"); + else + printf ("\tregs.ce020_tail = 0;\n"); + printf ("\tif (regs.ce020_tail < %d * cpucycleunit)\n", largest); + printf ("\t\tx_do_cycles (%d * cpucycleunit - regs.ce020_tail);\n", largest); #endif - } else if (h) { - printf ("\t/* ea tail == op head (%d) */\n", h); + } + else if (h) + { + printf ("\t/* ea tail == op head (%d) */\n", h); - printf ("\tregs.ce020memcycles -= %d * cpucycleunit;\n", h); - printf ("\tif (regs.ce020memcycles < 0) {\n"); - //printf ("\t\tx_do_cycles (-regs.ce020memcycles);\n"); - printf ("\t\tregs.ce020memcycles = 0;\n"); - printf ("\t}\n"); - } - } + printf ("\tregs.ce020memcycles -= %d * cpucycleunit;\n", h); + printf ("\tif (regs.ce020memcycles < 0) {\n"); + //printf ("\t\tx_do_cycles (-regs.ce020memcycles);\n"); + printf ("\t\tregs.ce020memcycles = 0;\n"); + printf ("\t}\n"); + } + } #endif - if (h < 0) - h = 0; - - //c = 0; - - // c = internal cycles needed after head cycles and before tail cycles. Not total cycles. - addcycles_ce020 ("op", h, t, c - h - t, -subhead); - //printf ("\tregs.irc = get_word_ce020_prefetch (%d);\n", m68k_pc_offset); + if (h < 0) + h = 0; + + //c = 0; + + // c = internal cycles needed after head cycles and before tail cycles. Not total cycles. + addcycles_ce020 ("op", h, t, c - h - t, -subhead); + //printf ("\tregs.irc = get_word_ce020_prefetch (%d);\n", m68k_pc_offset); #if 0 - if (c - h - t > 0) { - printf ("\t%s (%d);\n", do_cycles, c - h - t); - count_cycles_ce020 += c; - count_cycles += c; - } + if (c - h - t > 0) + { + printf ("\t%s (%d);\n", do_cycles, c - h - t); + count_cycles_ce020 += c; + count_cycles += c; + } #endif - //printf ("\tregs.ce020_tail = 0;\n"); - total_ce020 = c; - tail_ce020 = t; + //printf ("\tregs.ce020_tail = 0;\n"); + total_ce020 = c; + tail_ce020 = t; // if (total_ce020 >= 2) // printf ("\tint op_cycles = get_cycles ();\n"); } static void addop_ce020 (instr *curi, int subhead) { - if (!isce020()) - return; - int h = 0;//curi->head; - int t = 0;//curi->tail; - int c = 0;//curi->clocks; + if (!isce020()) + return; + int h = 0;//curi->head; + int t = 0;//curi->tail; + int c = 0;//curi->clocks; #if 0 - if ((((curi->sduse & 2) && !isreg (curi->smode)) || (((curi->sduse >> 4) & 2) && !isreg (curi->dmode))) && using_waitstates) { - t += using_waitstates; - c += using_waitstates; - } + if ((((curi->sduse & 2) && !isreg (curi->smode)) || (((curi->sduse >> 4) & 2) && !isreg (curi->dmode))) && using_waitstates) + { + t += using_waitstates; + c += using_waitstates; + } #endif - addopcycles_ce20 (h, t, c, -subhead); + addopcycles_ce20 (h, t, c, -subhead); } static void addcycles_ea_ce020 (const char *ea, int h, int t, int c, int oph) { - head_cycs (h + oph); + head_cycs (h + oph); // if (!h && !h && !c && !oph) // return; - c = c - h - t; + c = c - h - t; - //c = 0; + //c = 0; - if (!oph) { - printf ("\t/* ea H:%d,T:%d,C:%d %s */\n", h, t, c, ea); - } else { - if (oph && t) - term ("Both op head and tail can't be non-zero"); - if (oph > 0) { - printf ("\t/* ea H:%d+%d=%d,T:%d,C:%d %s */\n", h, oph, h + oph, t, c, ea); - h += oph; - } else { - printf ("\t/* ea H:%d-%d=%d,T:%d,C:%d %s */\n", h, -oph, h + oph, t, c, ea); - h += oph; - } - } + if (!oph) + { + printf ("\t/* ea H:%d,T:%d,C:%d %s */\n", h, t, c, ea); + } + else + { + if (oph && t) + term ("Both op head and tail can't be non-zero"); + if (oph > 0) + { + printf ("\t/* ea H:%d+%d=%d,T:%d,C:%d %s */\n", h, oph, h + oph, t, c, ea); + h += oph; + } + else + { + printf ("\t/* ea H:%d-%d=%d,T:%d,C:%d %s */\n", h, -oph, h + oph, t, c, ea); + h += oph; + } + } - if (h) { - printf ("\tif (regs.ce020memcycles > %d * cpucycleunit)\n", h); - printf ("\t\tregs.ce020memcycles = %d * cpucycleunit;\n", h); - } else { - printf ("\tregs.ce020memcycles = 0;\n"); - } + if (h) + { + printf ("\tif (regs.ce020memcycles > %d * cpucycleunit)\n", h); + printf ("\t\tregs.ce020memcycles = %d * cpucycleunit;\n", h); + } + else + { + printf ("\tregs.ce020memcycles = 0;\n"); + } - if (1 && c > 0) { - printf ("\t%s (%d);\n", do_cycles, c); - count_cycles += c; - } - tail_ce020 = t; - head_in_ea_ce020 = oph; - got_ea_ce020 = true; + if (1 && c > 0) + { + printf ("\t%s (%d);\n", do_cycles, c); + count_cycles += c; + } + tail_ce020 = t; + head_in_ea_ce020 = oph; + got_ea_ce020 = true; // if (t > 0) // printf ("\tregs.ce020_tail = get_cycles () + %d * cpucycleunit;\n", t); } static void addcycles_ea_ce020 (const char *ea, int h, int t, int c) { - addcycles_ea_ce020 (ea, h, t, c, 0); + addcycles_ea_ce020 (ea, h, t, c, 0); } #define SETCE020(h2,t2,c2) { h = h2; t = t2; c = c2; } @@ -1039,250 +1158,251 @@ static void addcycles_ea_ce020 (const char *ea, int h, int t, int c) static int gence020cycles_fiea (instr *curi, wordsizes ssize, amodes dmode) { - bool l = ssize == sz_long; - int h = 0, t = 0, c = 0, oph = 0; - switch (dmode) - { - case Dreg: - case Areg: - if (!l) - SETCE020H(2, 0, 2) - else - SETCE020H(4, 0, 4) - break; - case Aind: // (An) - if (!l) - SETCE020(1, 1, 3) - else - SETCE020(1, 0, 4) - break; - case Aipi: // (An)+ - if (!l) - SETCE020(2, 1, 5) - else - SETCE020(4, 1, 7) - break; - case Apdi: // -(An) - if (!l) - SETCE020(2, 2, 4) - else - SETCE020(2, 0, 4) - break; - case Ad8r: // (d8,An,Xn) - case PC8r: // (d8,PC,Xn) - if (!l) - SETCE020(6, 2, 8) - else - SETCE020(8, 2, 10) - break; - case Ad16: // (d16,An) - case PC16: // (d16,PC) - if (!l) - SETCE020(2, 0, 4) - else - SETCE020(4, 0, 6) - break; - case absw: - if (!l) - SETCE020(4, 2, 6) - else - SETCE020(6, 2, 8) - break; - case absl: - if (!l) - SETCE020(3, 0, 6) - else - SETCE020(5, 0, 8) - break; - } - addcycles_ea_ce020 ("fiea", h, t, c, oph); - return oph; + bool l = ssize == sz_long; + int h = 0, t = 0, c = 0, oph = 0; + switch (dmode) + { + case Dreg: + case Areg: + if (!l) + SETCE020H(2, 0, 2) + else + SETCE020H(4, 0, 4) + break; + case Aind: // (An) + if (!l) + SETCE020(1, 1, 3) + else + SETCE020(1, 0, 4) + break; + case Aipi: // (An)+ + if (!l) + SETCE020(2, 1, 5) + else + SETCE020(4, 1, 7) + break; + case Apdi: // -(An) + if (!l) + SETCE020(2, 2, 4) + else + SETCE020(2, 0, 4) + break; + case Ad8r: // (d8,An,Xn) + case PC8r: // (d8,PC,Xn) + if (!l) + SETCE020(6, 2, 8) + else + SETCE020(8, 2, 10) + break; + case Ad16: // (d16,An) + case PC16: // (d16,PC) + if (!l) + SETCE020(2, 0, 4) + else + SETCE020(4, 0, 6) + break; + case absw: + if (!l) + SETCE020(4, 2, 6) + else + SETCE020(6, 2, 8) + break; + case absl: + if (!l) + SETCE020(3, 0, 6) + else + SETCE020(5, 0, 8) + break; + } + addcycles_ea_ce020 ("fiea", h, t, c, oph); + return oph; } static int gence020cycles_ciea (instr *curi, wordsizes ssize, amodes dmode) { - int h = 0, t = 0, c = 0, oph = 0; - bool l = ssize == sz_long; - switch (dmode) - { - case Dreg: - case Areg: - if (!l) - SETCE020H(2, 0, 2) - else - SETCE020H(4, 0, 4) - break; - case Aind: // (An) - if (!l) - SETCE020H(2, 0, 2) - else - SETCE020H(4, 0, 4) - break; - case Aipi: // (An)+ - if (!l) - SETCE020(2, 0, 4) - else - SETCE020(4, 0, 6) - break; - case Apdi: // -(An) - if (!l) - SETCE020H(2, 0, 2) - else - SETCE020H(4, 0, 4) - break; - case Ad8r: // (d8,An,Xn) - case PC8r: // (d8,PC,Xn) - if (!l) - SETCE020H(6, 0, 6) - else - SETCE020H(8, 0, 8) - break; - case Ad16: // (d16,An) - case PC16: // (d16,PC) - if (!l) - SETCE020H(4, 0, 4) - else - SETCE020H(6, 0, 6) - break; - case absw: - if (!l) - SETCE020H(4, 0, 4) - else - SETCE020H(6, 0, 6) - break; - case absl: - if (!l) - SETCE020H(6, 0, 6) - else - SETCE020H(8, 0, 8) - break; - } - addcycles_ea_ce020 ("ciea", h, t, c, oph); - return oph; + int h = 0, t = 0, c = 0, oph = 0; + bool l = ssize == sz_long; + switch (dmode) + { + case Dreg: + case Areg: + if (!l) + SETCE020H(2, 0, 2) + else + SETCE020H(4, 0, 4) + break; + case Aind: // (An) + if (!l) + SETCE020H(2, 0, 2) + else + SETCE020H(4, 0, 4) + break; + case Aipi: // (An)+ + if (!l) + SETCE020(2, 0, 4) + else + SETCE020(4, 0, 6) + break; + case Apdi: // -(An) + if (!l) + SETCE020H(2, 0, 2) + else + SETCE020H(4, 0, 4) + break; + case Ad8r: // (d8,An,Xn) + case PC8r: // (d8,PC,Xn) + if (!l) + SETCE020H(6, 0, 6) + else + SETCE020H(8, 0, 8) + break; + case Ad16: // (d16,An) + case PC16: // (d16,PC) + if (!l) + SETCE020H(4, 0, 4) + else + SETCE020H(6, 0, 6) + break; + case absw: + if (!l) + SETCE020H(4, 0, 4) + else + SETCE020H(6, 0, 6) + break; + case absl: + if (!l) + SETCE020H(6, 0, 6) + else + SETCE020H(8, 0, 8) + break; + } + addcycles_ea_ce020 ("ciea", h, t, c, oph); + return oph; } static int gence020cycles_fea (amodes mode) { - int h = 0, t = 0, c = 0, ws = 0; - switch (mode) - { - case Dreg: - case Areg: - SETCE020(0, 0, 0) - break; - case Aind: // (An) - ws++; - SETCE020(1, 1, 3) - break; - case Aipi: // (An)+ - ws++; - SETCE020(0, 1, 3) - break; - case Apdi: // -(An) - ws++; - SETCE020(2, 2, 4) - break; - case Ad8r: // (d8,An,Xn) - case PC8r: // (d8,PC,Xn) - ws++; - SETCE020(4, 2, 6) - break; - case Ad16: // (d16,An) - case PC16: // (d16,PC) - ws++; - SETCE020(2, 2, 4) - break; - case absw: - ws++; - SETCE020(2, 2, 4) - break; - case absl: - ws++; - SETCE020(1, 0, 4) - break; - } + int h = 0, t = 0, c = 0, ws = 0; + switch (mode) + { + case Dreg: + case Areg: + SETCE020(0, 0, 0) + break; + case Aind: // (An) + ws++; + SETCE020(1, 1, 3) + break; + case Aipi: // (An)+ + ws++; + SETCE020(0, 1, 3) + break; + case Apdi: // -(An) + ws++; + SETCE020(2, 2, 4) + break; + case Ad8r: // (d8,An,Xn) + case PC8r: // (d8,PC,Xn) + ws++; + SETCE020(4, 2, 6) + break; + case Ad16: // (d16,An) + case PC16: // (d16,PC) + ws++; + SETCE020(2, 2, 4) + break; + case absw: + ws++; + SETCE020(2, 2, 4) + break; + case absl: + ws++; + SETCE020(1, 0, 4) + break; + } #if 0 - if (using_waitstates) { - t += ws * using_waitstates; - c += ws * using_waitstates; - } + if (using_waitstates) + { + t += ws * using_waitstates; + c += ws * using_waitstates; + } #endif - addcycles_ea_ce020 ("fea", h, t, c); - return 0; + addcycles_ea_ce020 ("fea", h, t, c); + return 0; } static int gence020cycles_cea (instr *curi, amodes mode) { - int h = 0, t = 0, c = 0, oph = 0; - switch (mode) - { - case Dreg: - case Areg: - SETCE020(0, 0, 0); - break; - case Aind: // (An) - SETCE020H(2 + h, 0, 2); - break; - case Aipi: // (An)+ - SETCE020(0, 0, 2); - break; - case Apdi: // -(An) - SETCE020H(2, 0, 2) - break; - case Ad8r: // (d8,An,Xn) - case PC8r: // (d8,PC,Xn) - SETCE020H(4, 0, 4) - break; - case Ad16: // (d16,An) - case PC16: // (d16,PC) - SETCE020H(2, 0, 2) - break; - case absw: - SETCE020H(2, 0, 2) - break; - case absl: - SETCE020H(4, 0, 4) - break; - } - addcycles_ea_ce020 ("cea", h, t, c, oph); - return oph; + int h = 0, t = 0, c = 0, oph = 0; + switch (mode) + { + case Dreg: + case Areg: + SETCE020(0, 0, 0); + break; + case Aind: // (An) + SETCE020H(2 + h, 0, 2); + break; + case Aipi: // (An)+ + SETCE020(0, 0, 2); + break; + case Apdi: // -(An) + SETCE020H(2, 0, 2) + break; + case Ad8r: // (d8,An,Xn) + case PC8r: // (d8,PC,Xn) + SETCE020H(4, 0, 4) + break; + case Ad16: // (d16,An) + case PC16: // (d16,PC) + SETCE020H(2, 0, 2) + break; + case absw: + SETCE020H(2, 0, 2) + break; + case absl: + SETCE020H(4, 0, 4) + break; + } + addcycles_ea_ce020 ("cea", h, t, c, oph); + return oph; } static int gence020cycles_jea (instr *curi, amodes mode) { - int h = 0, t = 0, c = 0, oph = 0; - switch (mode) - { - case Aind: // (An) - SETCE020H(2, 0, 2) - break; - case Ad16: // (d16,An) - case PC16: // (d16,PC) - SETCE020H(4, 0, 4) - break; - case absw: - SETCE020H(2, 0, 2) - break; - case absl: - SETCE020H(2, 0, 2) - break; - } - addcycles_ea_ce020 ("jea", h, t, c, oph); - return oph; + int h = 0, t = 0, c = 0, oph = 0; + switch (mode) + { + case Aind: // (An) + SETCE020H(2, 0, 2) + break; + case Ad16: // (d16,An) + case PC16: // (d16,PC) + SETCE020H(4, 0, 4) + break; + case absw: + SETCE020H(2, 0, 2) + break; + case absl: + SETCE020H(2, 0, 2) + break; + } + addcycles_ea_ce020 ("jea", h, t, c, oph); + return oph; } static void next_level_000 (void) { - if (next_cpu_level < 0) - next_cpu_level = 0; + if (next_cpu_level < 0) + next_cpu_level = 0; } static void maybeaddop_ce020 (int flags) { - if (flags & GF_OPCE020) - addop_ce020 (curi_ce020, subhead_ce020); + if (flags & GF_OPCE020) + addop_ce020 (curi_ce020, subhead_ce020); } @@ -1299,814 +1419,965 @@ static void maybeaddop_ce020 (int flags) static void genamode2x (amodes mode, const char *reg, wordsizes size, const char *name, int getv, int movem, int flags, int fetchmode) { - char namea[100]; - bool rmw = false; - int pc_68000_offset = m68k_pc_offset; - int pc_68000_offset_fetch = 0; - int pc_68000_offset_store = 0; + char namea[100]; + bool rmw = false; + int pc_68000_offset = m68k_pc_offset; + int pc_68000_offset_fetch = 0; + int pc_68000_offset_store = 0; - sprintf (namea, "%sa", name); - if ((flags & GF_RMW) && using_mmu == 68060) { - strcpy (rmw_varname, name); - candormw = true; - rmw = true; - } + sprintf (namea, "%sa", name); + if ((flags & GF_RMW) && using_mmu == 68060) + { + strcpy (rmw_varname, name); + candormw = true; + rmw = true; + } - if (mode == Ad8r || mode == PC8r) { - genamode8r_offset[genamode_cnt] = m68k_pc_total + m68k_pc_offset; - genamode_cnt++; - } + if (mode == Ad8r || mode == PC8r) + { + genamode8r_offset[genamode_cnt] = m68k_pc_total + m68k_pc_offset; + genamode_cnt++; + } - start_brace (); + start_brace (); - switch (mode) { - case Dreg: - if (movem) - term (); - if (getv == 1) - switch (size) { - case sz_byte: + switch (mode) + { + case Dreg: + if (movem) + term (); + if (getv == 1) + switch (size) + { + case sz_byte: #ifdef USE_DUBIOUS_BIGENDIAN_OPTIMIZATION - /* This causes the target compiler to generate better code on few systems */ - printf ("\tuae_s8 %s = ((uae_u8*)&m68k_dreg (regs, %s))[3];\n", name, reg); + /* This causes the target compiler to generate better code on few systems */ + printf ("\tuae_s8 %s = ((uae_u8*)&m68k_dreg (regs, %s))[3];\n", name, reg); #else - printf ("\tuae_s8 %s = m68k_dreg (regs, %s);\n", name, reg); + printf ("\tuae_s8 %s = m68k_dreg (regs, %s);\n", name, reg); #endif - break; - case sz_word: + break; + case sz_word: #ifdef USE_DUBIOUS_BIGENDIAN_OPTIMIZATION - printf ("\tuae_s16 %s = ((uae_s16*)&m68k_dreg (regs, %s))[1];\n", name, reg); + printf ("\tuae_s16 %s = ((uae_s16*)&m68k_dreg (regs, %s))[1];\n", name, reg); #else - printf ("\tuae_s16 %s = m68k_dreg (regs, %s);\n", name, reg); + printf ("\tuae_s16 %s = m68k_dreg (regs, %s);\n", name, reg); #endif - break; - case sz_long: - printf ("\tuae_s32 %s = m68k_dreg (regs, %s);\n", name, reg); - break; - default: - term (); - } - maybeaddop_ce020 (flags); - syncmovepc (getv, flags); - return; - case Areg: - if (movem) - term (); - if (getv == 1) - switch (size) { - case sz_word: - printf ("\tuae_s16 %s = m68k_areg (regs, %s);\n", name, reg); - break; - case sz_long: - printf ("\tuae_s32 %s = m68k_areg (regs, %s);\n", name, reg); - break; - default: - term (); - } - maybeaddop_ce020 (flags); - syncmovepc (getv, flags); - return; - case Aind: // (An) - switch (fetchmode) - { - case fetchmode_fea: - addcycles_ce020 (1); - break; - case fetchmode_cea: - addcycles_ce020 (2); - break; - case fetchmode_jea: - addcycles_ce020 (2); - break; - } - printf ("\tuaecptr %sa;\n", name); - add_mmu040_movem (movem); - printf ("\t%sa = m68k_areg (regs, %s);\n", name, reg); - break; - case Aipi: // (An)+ - switch (fetchmode) - { - case fetchmode_fea: - addcycles_ce020 (1); - break; - case fetchmode_cea: - break; - } - printf ("\tuaecptr %sa;\n", name); - add_mmu040_movem (movem); - printf ("\t%sa = m68k_areg (regs, %s);\n", name, reg); - break; - case Apdi: // -(An) - switch (fetchmode) - { - case fetchmode_fea: - case fetchmode_cea: - addcycles_ce020 (2); - break; - } - printf ("\tuaecptr %sa;\n", name); - add_mmu040_movem (movem); - switch (size) { - case sz_byte: - if (movem) - printf ("\t%sa = m68k_areg (regs, %s);\n", name, reg); - else - printf ("\t%sa = m68k_areg (regs, %s) - areg_byteinc[%s];\n", name, reg, reg); - break; - case sz_word: - printf ("\t%sa = m68k_areg (regs, %s) - %d;\n", name, reg, movem ? 0 : 2); - break; - case sz_long: - printf ("\t%sa = m68k_areg (regs, %s) - %d;\n", name, reg, movem ? 0 : 4); - break; - default: - term (); - } - if (!(flags & GF_APDI)) { - addcycles000 (2); - insn_n_cycles += 2; - count_cycles_ea += 2; - pc_68000_offset_fetch += 2; - } - break; - case Ad16: // (d16,An) - printf ("\tuaecptr %sa;\n", name); - add_mmu040_movem (movem); - printf ("\t%sa = m68k_areg (regs, %s) + (uae_s32)(uae_s16)%s;\n", name, reg, gen_nextiword (flags)); - count_read_ea++; - break; - case PC16: // (d16,PC) - printf ("\tuaecptr %sa;\n", name); - add_mmu040_movem (movem); - printf ("\t%sa = %s + %d;\n", name, getpc, m68k_pc_offset); - printf ("\t%sa += (uae_s32)(uae_s16)%s;\n", name, gen_nextiword (flags)); - break; - case Ad8r: // (d8,An,Xn) - switch (fetchmode) - { - case fetchmode_fea: - addcycles_ce020 (4); - break; - case fetchmode_cea: - case fetchmode_jea: - break; - } - printf ("\tuaecptr %sa;\n", name); - if (cpu_level > 1) { - if (next_cpu_level < 1) - next_cpu_level = 1; - sync_m68k_pc (); - add_mmu040_movem (movem); - start_brace (); - /* This would ordinarily be done in gen_nextiword, which we bypass. */ - insn_n_cycles += 4; - printf ("\t%sa = %s (regs, m68k_areg (regs, %s), %d);\n", name, disp020, reg, disp020cnt++); - } else { - if (!(flags & GF_AD8R)) { - addcycles000 (2); - insn_n_cycles += 2; - count_cycles_ea += 2; - } - if ((flags & GF_NOREFILL) && using_prefetch) { - printf ("\t%sa = %s (regs, m68k_areg (regs, %s), regs.irc);\n", name, disp000, reg); - } else { - printf ("\t%sa = %s (regs, m68k_areg (regs, %s), %s);\n", name, disp000, reg, gen_nextiword (flags)); - } - count_read_ea++; - } - break; - case PC8r: // (d8,PC,Xn) - switch (fetchmode) - { - case fetchmode_fea: - addcycles_ce020 (4); - break; - case fetchmode_cea: - case fetchmode_jea: - break; - } - printf ("\tuaecptr tmppc;\n"); - printf ("\tuaecptr %sa;\n", name); - if (cpu_level > 1) { - if (next_cpu_level < 1) - next_cpu_level = 1; - sync_m68k_pc (); - add_mmu040_movem (movem); - start_brace (); - /* This would ordinarily be done in gen_nextiword, which we bypass. */ - insn_n_cycles += 4; - printf ("\ttmppc = %s;\n", getpc); - printf ("\t%sa = %s (regs, tmppc, %d);\n", name, disp020, disp020cnt++); - } else { - printf ("\ttmppc = %s + %d;\n", getpc, m68k_pc_offset); - if (!(flags & GF_PC8R)) { - addcycles000 (2); - insn_n_cycles += 2; - count_cycles_ea += 2; - } - if ((flags & GF_NOREFILL) && using_prefetch) { - printf ("\t%sa = %s (regs, tmppc, regs.irc);\n", name, disp000); - } else { - printf ("\t%sa = %s (regs, tmppc, %s);\n", name, disp000, gen_nextiword (flags)); - } - } + break; + case sz_long: + printf ("\tuae_s32 %s = m68k_dreg (regs, %s);\n", name, reg); + break; + default: + term (); + } + maybeaddop_ce020 (flags); + syncmovepc (getv, flags); + return; + case Areg: + if (movem) + term (); + if (getv == 1) + switch (size) + { + case sz_word: + printf ("\tuae_s16 %s = m68k_areg (regs, %s);\n", name, reg); + break; + case sz_long: + printf ("\tuae_s32 %s = m68k_areg (regs, %s);\n", name, reg); + break; + default: + term (); + } + maybeaddop_ce020 (flags); + syncmovepc (getv, flags); + return; + case Aind: // (An) + switch (fetchmode) + { + case fetchmode_fea: + addcycles_ce020 (1); + break; + case fetchmode_cea: + addcycles_ce020 (2); + break; + case fetchmode_jea: + addcycles_ce020 (2); + break; + } + printf ("\tuaecptr %sa;\n", name); + add_mmu040_movem (movem); + printf ("\t%sa = m68k_areg (regs, %s);\n", name, reg); + break; + case Aipi: // (An)+ + switch (fetchmode) + { + case fetchmode_fea: + addcycles_ce020 (1); + break; + case fetchmode_cea: + break; + } + printf ("\tuaecptr %sa;\n", name); + add_mmu040_movem (movem); + printf ("\t%sa = m68k_areg (regs, %s);\n", name, reg); + break; + case Apdi: // -(An) + switch (fetchmode) + { + case fetchmode_fea: + case fetchmode_cea: + addcycles_ce020 (2); + break; + } + printf ("\tuaecptr %sa;\n", name); + add_mmu040_movem (movem); + switch (size) + { + case sz_byte: + if (movem) + printf ("\t%sa = m68k_areg (regs, %s);\n", name, reg); + else + printf ("\t%sa = m68k_areg (regs, %s) - areg_byteinc[%s];\n", name, reg, reg); + break; + case sz_word: + printf ("\t%sa = m68k_areg (regs, %s) - %d;\n", name, reg, movem ? 0 : 2); + break; + case sz_long: + printf ("\t%sa = m68k_areg (regs, %s) - %d;\n", name, reg, movem ? 0 : 4); + break; + default: + term (); + } + if (!(flags & GF_APDI)) + { + addcycles000 (2); + insn_n_cycles += 2; + count_cycles_ea += 2; + pc_68000_offset_fetch += 2; + } + break; + case Ad16: // (d16,An) + printf ("\tuaecptr %sa;\n", name); + add_mmu040_movem (movem); + printf ("\t%sa = m68k_areg (regs, %s) + (uae_s32)(uae_s16)%s;\n", name, reg, gen_nextiword (flags)); + count_read_ea++; + break; + case PC16: // (d16,PC) + printf ("\tuaecptr %sa;\n", name); + add_mmu040_movem (movem); + printf ("\t%sa = %s + %d;\n", name, getpc, m68k_pc_offset); + printf ("\t%sa += (uae_s32)(uae_s16)%s;\n", name, gen_nextiword (flags)); + break; + case Ad8r: // (d8,An,Xn) + switch (fetchmode) + { + case fetchmode_fea: + addcycles_ce020 (4); + break; + case fetchmode_cea: + case fetchmode_jea: + break; + } + printf ("\tuaecptr %sa;\n", name); + if (cpu_level > 1) + { + if (next_cpu_level < 1) + next_cpu_level = 1; + sync_m68k_pc (); + add_mmu040_movem (movem); + start_brace (); + /* This would ordinarily be done in gen_nextiword, which we bypass. */ + insn_n_cycles += 4; + printf ("\t%sa = %s (regs, m68k_areg (regs, %s), %d);\n", name, disp020, reg, disp020cnt++); + } + else + { + if (!(flags & GF_AD8R)) + { + addcycles000 (2); + insn_n_cycles += 2; + count_cycles_ea += 2; + } + if ((flags & GF_NOREFILL) && using_prefetch) + { + printf ("\t%sa = %s (regs, m68k_areg (regs, %s), regs.irc);\n", name, disp000, reg); + } + else + { + printf ("\t%sa = %s (regs, m68k_areg (regs, %s), %s);\n", name, disp000, reg, gen_nextiword (flags)); + } + count_read_ea++; + } + break; + case PC8r: // (d8,PC,Xn) + switch (fetchmode) + { + case fetchmode_fea: + addcycles_ce020 (4); + break; + case fetchmode_cea: + case fetchmode_jea: + break; + } + printf ("\tuaecptr tmppc;\n"); + printf ("\tuaecptr %sa;\n", name); + if (cpu_level > 1) + { + if (next_cpu_level < 1) + next_cpu_level = 1; + sync_m68k_pc (); + add_mmu040_movem (movem); + start_brace (); + /* This would ordinarily be done in gen_nextiword, which we bypass. */ + insn_n_cycles += 4; + printf ("\ttmppc = %s;\n", getpc); + printf ("\t%sa = %s (regs, tmppc, %d);\n", name, disp020, disp020cnt++); + } + else + { + printf ("\ttmppc = %s + %d;\n", getpc, m68k_pc_offset); + if (!(flags & GF_PC8R)) + { + addcycles000 (2); + insn_n_cycles += 2; + count_cycles_ea += 2; + } + if ((flags & GF_NOREFILL) && using_prefetch) + { + printf ("\t%sa = %s (regs, tmppc, regs.irc);\n", name, disp000); + } + else + { + printf ("\t%sa = %s (regs, tmppc, %s);\n", name, disp000, gen_nextiword (flags)); + } + } - break; - case absw: - printf ("\tuaecptr %sa;\n", name); - add_mmu040_movem (movem); - printf ("\t%sa = (uae_s32)(uae_s16)%s;\n", name, gen_nextiword (flags)); - pc_68000_offset_fetch += 2; - break; - case absl: - gen_nextilong2 ("uaecptr", namea, flags, movem); - count_read_ea += 2; - pc_68000_offset_fetch += 4; - pc_68000_offset_store += 2; - break; - case imm: - // fetch immediate address - if (getv != 1) - term (); - insn_n_cycles020++; - switch (size) { - case sz_byte: - printf ("\tuae_s8 %s = %s;\n", name, gen_nextibyte (flags)); - count_read_ea++; - break; - case sz_word: - printf ("\tuae_s16 %s = %s;\n", name, gen_nextiword (flags)); - count_read_ea++; - break; - case sz_long: - gen_nextilong ("uae_s32", name, flags); - count_read_ea += 2; - break; - default: - term (); - } - maybeaddop_ce020 (flags); - syncmovepc (getv, flags); - return; - case imm0: - if (getv != 1) - term (); - printf ("\tuae_s8 %s = %s;\n", name, gen_nextibyte (flags)); - count_read_ea++; - maybeaddop_ce020 (flags); - syncmovepc (getv, flags); - return; - case imm1: - if (getv != 1) - term (); - printf ("\tuae_s16 %s = %s;\n", name, gen_nextiword (flags)); - count_read_ea++; - maybeaddop_ce020 (flags); - syncmovepc (getv, flags); - return; - case imm2: - if (getv != 1) - term (); - gen_nextilong ("uae_s32", name, flags); - count_read_ea += 2; - maybeaddop_ce020 (flags); - syncmovepc (getv, flags); - return; - case immi: - if (getv != 1) - term (); - printf ("\tuae_u32 %s = %s;\n", name, reg); - maybeaddop_ce020 (flags); - syncmovepc (getv, flags); - return; - default: - term (); - } + break; + case absw: + printf ("\tuaecptr %sa;\n", name); + add_mmu040_movem (movem); + printf ("\t%sa = (uae_s32)(uae_s16)%s;\n", name, gen_nextiword (flags)); + pc_68000_offset_fetch += 2; + break; + case absl: + gen_nextilong2 ("uaecptr", namea, flags, movem); + count_read_ea += 2; + pc_68000_offset_fetch += 4; + pc_68000_offset_store += 2; + break; + case imm: + // fetch immediate address + if (getv != 1) + term (); + insn_n_cycles020++; + switch (size) + { + case sz_byte: + printf ("\tuae_s8 %s = %s;\n", name, gen_nextibyte (flags)); + count_read_ea++; + break; + case sz_word: + printf ("\tuae_s16 %s = %s;\n", name, gen_nextiword (flags)); + count_read_ea++; + break; + case sz_long: + gen_nextilong ("uae_s32", name, flags); + count_read_ea += 2; + break; + default: + term (); + } + maybeaddop_ce020 (flags); + syncmovepc (getv, flags); + return; + case imm0: + if (getv != 1) + term (); + printf ("\tuae_s8 %s = %s;\n", name, gen_nextibyte (flags)); + count_read_ea++; + maybeaddop_ce020 (flags); + syncmovepc (getv, flags); + return; + case imm1: + if (getv != 1) + term (); + printf ("\tuae_s16 %s = %s;\n", name, gen_nextiword (flags)); + count_read_ea++; + maybeaddop_ce020 (flags); + syncmovepc (getv, flags); + return; + case imm2: + if (getv != 1) + term (); + gen_nextilong ("uae_s32", name, flags); + count_read_ea += 2; + maybeaddop_ce020 (flags); + syncmovepc (getv, flags); + return; + case immi: + if (getv != 1) + term (); + printf ("\tuae_u32 %s = %s;\n", name, reg); + maybeaddop_ce020 (flags); + syncmovepc (getv, flags); + return; + default: + term (); + } - syncmovepc (getv, flags); - maybeaddop_ce020 (flags); + syncmovepc (getv, flags); + maybeaddop_ce020 (flags); - /* We get here for all non-reg non-immediate addressing modes to - * actually fetch the value. */ + /* We get here for all non-reg non-immediate addressing modes to + * actually fetch the value. */ - int exception_pc_offset = 0; - if (getv == 2) { - // store - if (pc_68000_offset) { - exception_pc_offset = pc_68000_offset + pc_68000_offset_store + 2; - } - } else { - // fetch - pc_68000_offset_fetch += 2; - exception_pc_offset = pc_68000_offset_fetch; - } + int exception_pc_offset = 0; + if (getv == 2) + { + // store + if (pc_68000_offset) + { + exception_pc_offset = pc_68000_offset + pc_68000_offset_store + 2; + } + } + else + { + // fetch + pc_68000_offset_fetch += 2; + exception_pc_offset = pc_68000_offset_fetch; + } - if ((using_prefetch || using_ce) && using_exception_3 && getv != 0 && size != sz_byte) { - printf ("\tif (%sa & 1) {\n", name); - if (exception_pc_offset) - incpc("%d", exception_pc_offset); - printf ("\t\texception3 (opcode, %sa);\n", name); - returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); - printf ("\t}\n"); - start_brace (); - } + if ((using_prefetch || using_ce) && using_exception_3 && getv != 0 && size != sz_byte) + { + printf ("\tif (%sa & 1) {\n", name); + if (exception_pc_offset) + incpc("%d", exception_pc_offset); + printf ("\t\texception3 (opcode, %sa);\n", name); + returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); + printf ("\t}\n"); + start_brace (); + } - if ((using_prefetch || using_ce) && using_bus_error && getv != 0) { - if (exception_pc_offset) - printf("\tbus_error_offset = %d;\n", exception_pc_offset); - } + if ((using_prefetch || using_ce) && using_bus_error && getv != 0) + { + if (exception_pc_offset) + printf("\tbus_error_offset = %d;\n", exception_pc_offset); + } - if (flags & GF_PREFETCH) - fill_prefetch_next (); - else if (flags & GF_IR2IRC) - irc2ir (true); + if (flags & GF_PREFETCH) + fill_prefetch_next (); + else if (flags & GF_IR2IRC) + irc2ir (true); - if (getv == 1) { - start_brace (); - if (using_ce020 || using_prefetch_020) { - switch (size) { - case sz_byte: insn_n_cycles += 4; printf ("\tuae_s8 %s = %s (%sa);\n", name, srcb, name); count_read++; break; - case sz_word: insn_n_cycles += 4; printf ("\tuae_s16 %s = %s (%sa);\n", name, srcw, name); count_read++; break; - case sz_long: insn_n_cycles += 8; printf ("\tuae_s32 %s = %s (%sa);\n", name, srcl, name); count_read += 2; break; - default: term (); - } - } else if (using_ce || using_prefetch) { - switch (size) { - case sz_byte: insn_n_cycles += 4; printf ("\tuae_s8 %s = %s (%sa);\n", name, srcb, name); count_read++; break; - case sz_word: insn_n_cycles += 4; printf ("\tuae_s16 %s = %s (%sa);\n", name, srcw, name); count_read++; break; - case sz_long: insn_n_cycles += 8; printf ("\tuae_s32 %s = %s (%sa);\n", name, srcl, name); count_read += 2; break; - default: term (); - } - } else if (using_mmu) { - if (flags & GF_FC) { - switch (size) { - case sz_byte: insn_n_cycles += 4; printf ("\tuae_s8 %s = sfc%s_get_byte (%sa);\n", name, mmu_postfix, name); break; - case sz_word: insn_n_cycles += 4; printf ("\tuae_s16 %s = sfc%s_get_word (%sa);\n", name, mmu_postfix, name); break; - case sz_long: insn_n_cycles += 8; printf ("\tuae_s32 %s = sfc%s_get_long (%sa);\n", name, mmu_postfix, name); break; - default: term (); - } - } else { - switch (size) { - case sz_byte: insn_n_cycles += 4; printf ("\tuae_s8 %s = %s (%sa);\n", name, (flags & GF_LRMW) ? srcblrmw : (rmw ? srcbrmw : srcb), name); break; - case sz_word: insn_n_cycles += 4; printf ("\tuae_s16 %s = %s (%sa);\n", name, (flags & GF_LRMW) ? srcwlrmw : (rmw ? srcwrmw : srcw), name); break; - case sz_long: insn_n_cycles += 8; printf ("\tuae_s32 %s = %s (%sa);\n", name, (flags & GF_LRMW) ? srcllrmw : (rmw ? srclrmw : srcl), name); break; - default: term (); - } - } - } else { - switch (size) { - case sz_byte: insn_n_cycles += 4; printf ("\tuae_s8 %s = %s (%sa);\n", name, srcb, name); count_read++; break; - case sz_word: insn_n_cycles += 4; printf ("\tuae_s16 %s = %s (%sa);\n", name, srcw, name); count_read++; break; - case sz_long: insn_n_cycles += 8; printf ("\tuae_s32 %s = %s (%sa);\n", name, srcl, name); count_read += 2; break; - default: term (); - } - } - } + if (getv == 1) + { + start_brace (); + if (using_ce020 || using_prefetch_020) + { + switch (size) + { + case sz_byte: + insn_n_cycles += 4; + printf ("\tuae_s8 %s = %s (%sa);\n", name, srcb, name); + count_read++; + break; + case sz_word: + insn_n_cycles += 4; + printf ("\tuae_s16 %s = %s (%sa);\n", name, srcw, name); + count_read++; + break; + case sz_long: + insn_n_cycles += 8; + printf ("\tuae_s32 %s = %s (%sa);\n", name, srcl, name); + count_read += 2; + break; + default: + term (); + } + } + else if (using_ce || using_prefetch) + { + switch (size) + { + case sz_byte: + insn_n_cycles += 4; + printf ("\tuae_s8 %s = %s (%sa);\n", name, srcb, name); + count_read++; + break; + case sz_word: + insn_n_cycles += 4; + printf ("\tuae_s16 %s = %s (%sa);\n", name, srcw, name); + count_read++; + break; + case sz_long: + insn_n_cycles += 8; + printf ("\tuae_s32 %s = %s (%sa);\n", name, srcl, name); + count_read += 2; + break; + default: + term (); + } + } + else if (using_mmu) + { + if (flags & GF_FC) + { + switch (size) + { + case sz_byte: + insn_n_cycles += 4; + printf ("\tuae_s8 %s = sfc%s_get_byte (%sa);\n", name, mmu_postfix, name); + break; + case sz_word: + insn_n_cycles += 4; + printf ("\tuae_s16 %s = sfc%s_get_word (%sa);\n", name, mmu_postfix, name); + break; + case sz_long: + insn_n_cycles += 8; + printf ("\tuae_s32 %s = sfc%s_get_long (%sa);\n", name, mmu_postfix, name); + break; + default: + term (); + } + } + else + { + switch (size) + { + case sz_byte: + insn_n_cycles += 4; + printf ("\tuae_s8 %s = %s (%sa);\n", name, (flags & GF_LRMW) ? srcblrmw : (rmw ? srcbrmw : srcb), name); + break; + case sz_word: + insn_n_cycles += 4; + printf ("\tuae_s16 %s = %s (%sa);\n", name, (flags & GF_LRMW) ? srcwlrmw : (rmw ? srcwrmw : srcw), name); + break; + case sz_long: + insn_n_cycles += 8; + printf ("\tuae_s32 %s = %s (%sa);\n", name, (flags & GF_LRMW) ? srcllrmw : (rmw ? srclrmw : srcl), name); + break; + default: + term (); + } + } + } + else + { + switch (size) + { + case sz_byte: + insn_n_cycles += 4; + printf ("\tuae_s8 %s = %s (%sa);\n", name, srcb, name); + count_read++; + break; + case sz_word: + insn_n_cycles += 4; + printf ("\tuae_s16 %s = %s (%sa);\n", name, srcw, name); + count_read++; + break; + case sz_long: + insn_n_cycles += 8; + printf ("\tuae_s32 %s = %s (%sa);\n", name, srcl, name); + count_read += 2; + break; + default: + term (); + } + } + } - /* We now might have to fix up the register for pre-dec or post-inc - * addressing modes. */ - if (!movem) - switch (mode) { - case Aipi: - addmmufixup (reg); - switch (size) { - case sz_byte: - printf ("\tm68k_areg (regs, %s) += areg_byteinc[%s];\n", reg, reg); - break; - case sz_word: - printf ("\tm68k_areg (regs, %s) += 2;\n", reg); - break; - case sz_long: - printf ("\tm68k_areg (regs, %s) += 4;\n", reg); - break; - default: - term (); - } - break; - case Apdi: - addmmufixup (reg); - printf ("\tm68k_areg (regs, %s) = %sa;\n", reg, name); - break; - default: - break; - } + /* We now might have to fix up the register for pre-dec or post-inc + * addressing modes. */ + if (!movem) + switch (mode) + { + case Aipi: + addmmufixup (reg); + switch (size) + { + case sz_byte: + printf ("\tm68k_areg (regs, %s) += areg_byteinc[%s];\n", reg, reg); + break; + case sz_word: + printf ("\tm68k_areg (regs, %s) += 2;\n", reg); + break; + case sz_long: + printf ("\tm68k_areg (regs, %s) += 4;\n", reg); + break; + default: + term (); + } + break; + case Apdi: + addmmufixup (reg); + printf ("\tm68k_areg (regs, %s) = %sa;\n", reg, name); + break; + default: + break; + } - if (movem == 3) { - close_brace (); - } + if (movem == 3) + { + close_brace (); + } } static void genamode2 (amodes mode, const char *reg, wordsizes size, const char *name, int getv, int movem, int flags) { - genamode2x (mode, reg, size, name, getv, movem, flags, -1); + genamode2x (mode, reg, size, name, getv, movem, flags, -1); } static void genamode (instr *curi, amodes mode, const char *reg, wordsizes size, const char *name, int getv, int movem, int flags) { - int oldfixup = mmufixupstate; - int subhead = 0; - if (isce020() && curi) { - //switch (curi->fetchmode) - //{ - //case fetchmode_fea: - subhead = gence020cycles_fea (mode); - //break; - //case fetchmode_cea: - // subhead = gence020cycles_cea (curi, mode); - //break; - //case fetchmode_jea: - // subhead = gence020cycles_jea (curi, mode); - //break; - //} - genamode2x (mode, reg, size, name, getv, movem, flags, 0 /*curi->fetchmode*/); - } else { - genamode2 (mode, reg, size, name, getv, movem, flags); - } - if (using_mmu == 68040 && (oldfixup & 1)) { - // we have fixup already active = this genamode call is destination mode and we can now clear previous source fixup. - clearmmufixup (0); - } - if (isce020() && curi) - addop_ce020 (curi, subhead); + int oldfixup = mmufixupstate; + int subhead = 0; + if (isce020() && curi) + { + //switch (curi->fetchmode) + //{ + //case fetchmode_fea: + subhead = gence020cycles_fea (mode); + //break; + //case fetchmode_cea: + // subhead = gence020cycles_cea (curi, mode); + //break; + //case fetchmode_jea: + // subhead = gence020cycles_jea (curi, mode); + //break; + //} + genamode2x (mode, reg, size, name, getv, movem, flags, 0 /*curi->fetchmode*/); + } + else + { + genamode2 (mode, reg, size, name, getv, movem, flags); + } + if (using_mmu == 68040 && (oldfixup & 1)) + { + // we have fixup already active = this genamode call is destination mode and we can now clear previous source fixup. + clearmmufixup (0); + } + if (isce020() && curi) + addop_ce020 (curi, subhead); } static void genamode3 (instr *curi, amodes mode, const char *reg, wordsizes size, const char *name, int getv, int movem, int flags) { - int oldfixup = mmufixupstate; - genamode2x (mode, reg, size, name, getv, movem, flags, /*curi ? curi->fetchmode :*/ -1); - if (using_mmu == 68040 && (oldfixup & 1)) { - // we have fixup already active = this genamode call is destination mode and we can now clear previous source fixup. - clearmmufixup (0); - } + int oldfixup = mmufixupstate; + genamode2x (mode, reg, size, name, getv, movem, flags, /*curi ? curi->fetchmode :*/ -1); + if (using_mmu == 68040 && (oldfixup & 1)) + { + // we have fixup already active = this genamode call is destination mode and we can now clear previous source fixup. + clearmmufixup (0); + } } static void genamodedual (instr *curi, amodes smode, const char *sreg, wordsizes ssize, const char *sname, int sgetv, int sflags, - amodes dmode, const char *dreg, wordsizes dsize, const char *dname, int dgetv, int dflags) + amodes dmode, const char *dreg, wordsizes dsize, const char *dname, int dgetv, int dflags) { - int subhead = 0; - bool eadmode = false; + int subhead = 0; + bool eadmode = false; - if (isce020()) { - //switch (curi->fetchmode) - //{ - //case fetchmode_fea: - // if (smode >= imm || isreg (smode)) { - // subhead = gence020cycles_fea (dmode); - // eadmode = true; - // } else { - // subhead = gence020cycles_fea (smode); - // } - //break; - //case fetchmode_cea: - // subhead = gence020cycles_cea (curi, smode); - //break; - //case fetchmode_fiea: - // subhead = gence020cycles_fiea (curi, ssize, dmode); - //break; - //case fetchmode_ciea: - // subhead = gence020cycles_ciea (curi, ssize, dmode); - //break; - //case fetchmode_jea: - // subhead = gence020cycles_jea (curi, smode); - //break; - //default: - // printf ("\t/* No EA */\n"); - //break; - //} - } - subhead_ce020 = subhead; - curi_ce020 = curi; - genamode3 (curi, smode, sreg, ssize, sname, sgetv, 0, sflags); - genamode3 (NULL, dmode, dreg, dsize, dname, dgetv, 0, dflags | (eadmode == true ? GF_OPCE020 : 0)); - if (eadmode == false) - maybeaddop_ce020 (GF_OPCE020); + if (isce020()) + { + //switch (curi->fetchmode) + //{ + //case fetchmode_fea: + // if (smode >= imm || isreg (smode)) { + // subhead = gence020cycles_fea (dmode); + // eadmode = true; + // } else { + // subhead = gence020cycles_fea (smode); + // } + //break; + //case fetchmode_cea: + // subhead = gence020cycles_cea (curi, smode); + //break; + //case fetchmode_fiea: + // subhead = gence020cycles_fiea (curi, ssize, dmode); + //break; + //case fetchmode_ciea: + // subhead = gence020cycles_ciea (curi, ssize, dmode); + //break; + //case fetchmode_jea: + // subhead = gence020cycles_jea (curi, smode); + //break; + //default: + // printf ("\t/* No EA */\n"); + //break; + //} + } + subhead_ce020 = subhead; + curi_ce020 = curi; + genamode3 (curi, smode, sreg, ssize, sname, sgetv, 0, sflags); + genamode3 (NULL, dmode, dreg, dsize, dname, dgetv, 0, dflags | (eadmode == true ? GF_OPCE020 : 0)); + if (eadmode == false) + maybeaddop_ce020 (GF_OPCE020); } static void genastore_2 (const char *from, amodes mode, const char *reg, wordsizes size, const char *to, int store_dir, int flags) { - if (candormw) { - if (strcmp (rmw_varname, to) != 0) - candormw = false; - } - genastore_done = true; - returntail (mode != Dreg && mode != Areg); + if (candormw) + { + if (strcmp (rmw_varname, to) != 0) + candormw = false; + } + genastore_done = true; + returntail (mode != Dreg && mode != Areg); - switch (mode) { - case Dreg: - switch (size) { - case sz_byte: - printf ("\tm68k_dreg (regs, %s) = (m68k_dreg (regs, %s) & ~0xff) | ((%s) & 0xff);\n", reg, reg, from); - break; - case sz_word: - printf ("\tm68k_dreg (regs, %s) = (m68k_dreg (regs, %s) & ~0xffff) | ((%s) & 0xffff);\n", reg, reg, from); - break; - case sz_long: - printf ("\tm68k_dreg (regs, %s) = (%s);\n", reg, from); - break; - default: - term (); - } - break; - case Areg: - switch (size) { - case sz_word: - printf ("\tm68k_areg (regs, %s) = (uae_s32)(uae_s16)(%s);\n", reg, from); - break; - case sz_long: - printf ("\tm68k_areg (regs, %s) = (%s);\n", reg, from); - break; - default: - term (); - } - break; - case Aind: - case Aipi: - case Apdi: - case Ad16: - case Ad8r: - case absw: - case absl: - case PC16: - case PC8r: - if (!(flags & GF_NOFAULTPC)) - gen_set_fault_pc (); - if (using_ce020 || using_prefetch_020) { - switch (size) { - case sz_byte: - printf ("\t%s (%sa, %s);\n", dstb, to, from); - count_write++; - break; - case sz_word: - if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) - term (); - printf ("\t%s (%sa, %s);\n", dstw, to, from); - count_write++; - break; - case sz_long: - if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) - term (); - printf ("\t%s (%sa, %s);\n", dstl, to, from); - count_write += 2; - break; - default: - term (); - } - } else if (using_ce) { - switch (size) { - case sz_byte: - check_ipl_again(); - printf ("\tx_put_byte (%sa, %s);\n", to, from); - count_write++; - break; - case sz_word: - if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) - term (); - check_ipl_again(); - printf ("\tx_put_word (%sa, %s);\n", to, from); - count_write++; - break; - case sz_long: - if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) - term (); - if (store_dir) { - printf ("\t%s (%sa + 2, %s);\n", dstw, to, from); - check_ipl_again(); - printf ("%s (%sa, %s >> 16);\n", dstw, to, from); - } else { - printf ("\t%s (%sa, %s >> 16);\n", dstw, to, from); - check_ipl_again(); - printf ("\t%s (%sa + 2, %s);\n", dstw, to, from); - } - count_write += 2; - break; - default: - term (); - } - } else if (using_mmu) { - switch (size) { - case sz_byte: - insn_n_cycles += 4; - if (flags & GF_FC) - printf ("\tdfc%s_put_byte (%sa, %s);\n", mmu_postfix, to, from); - else - printf ("\t%s (%sa, %s);\n", (flags & GF_LRMW) ? dstblrmw : (candormw ? dstbrmw : dstb), to, from); - break; - case sz_word: - insn_n_cycles += 4; - if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) - term (); - if (flags & GF_FC) - printf ("\tdfc%s_put_word (%sa, %s);\n", mmu_postfix, to, from); - else - printf ("\t%s (%sa, %s);\n", (flags & GF_LRMW) ? dstwlrmw : (candormw ? dstwrmw : dstw), to, from); - break; - case sz_long: - insn_n_cycles += 8; - if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) - term (); - if (flags & GF_FC) - printf ("\tdfc%s_put_long (%sa, %s);\n", mmu_postfix, to, from); - else - printf ("\t%s (%sa, %s);\n", (flags & GF_LRMW) ? dstllrmw : (candormw ? dstlrmw : dstl), to, from); - break; - default: - term (); - } - } else if (using_prefetch) { - switch (size) { - case sz_byte: - insn_n_cycles += 4; - printf ("\t%s (%sa, %s);\n", dstb, to, from); - count_write++; - break; - case sz_word: - insn_n_cycles += 4; - if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) - term (); - printf ("\t%s (%sa, %s);\n", dstw, to, from); - count_write++; - break; - case sz_long: - insn_n_cycles += 8; - if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) - term (); - if (store_dir) - printf ("\t%s (%sa, %s);\n", dstl, to, from); - else - printf ("\t%s (%sa, %s);\n", dstl, to, from); - count_write += 2; - break; - default: - term (); - } - } else { - switch (size) { - case sz_byte: - insn_n_cycles += 4; - printf ("\t%s (%sa, %s);\n", dstb, to, from); - count_write++; - break; - case sz_word: - insn_n_cycles += 4; - if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) - term (); - printf ("\t%s (%sa, %s);\n", dstw, to, from); - count_write++; - break; - case sz_long: - insn_n_cycles += 8; - if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) - term (); - printf ("\t%s (%sa, %s);\n", dstl, to, from); - count_write += 2; - break; - default: - term (); - } - } - break; - case imm: - case imm0: - case imm1: - case imm2: - case immi: - term (); - break; - default: - term (); - } + switch (mode) + { + case Dreg: + switch (size) + { + case sz_byte: + printf ("\tm68k_dreg (regs, %s) = (m68k_dreg (regs, %s) & ~0xff) | ((%s) & 0xff);\n", reg, reg, from); + break; + case sz_word: + printf ("\tm68k_dreg (regs, %s) = (m68k_dreg (regs, %s) & ~0xffff) | ((%s) & 0xffff);\n", reg, reg, from); + break; + case sz_long: + printf ("\tm68k_dreg (regs, %s) = (%s);\n", reg, from); + break; + default: + term (); + } + break; + case Areg: + switch (size) + { + case sz_word: + printf ("\tm68k_areg (regs, %s) = (uae_s32)(uae_s16)(%s);\n", reg, from); + break; + case sz_long: + printf ("\tm68k_areg (regs, %s) = (%s);\n", reg, from); + break; + default: + term (); + } + break; + case Aind: + case Aipi: + case Apdi: + case Ad16: + case Ad8r: + case absw: + case absl: + case PC16: + case PC8r: + if (!(flags & GF_NOFAULTPC)) + gen_set_fault_pc (); + if (using_ce020 || using_prefetch_020) + { + switch (size) + { + case sz_byte: + printf ("\t%s (%sa, %s);\n", dstb, to, from); + count_write++; + break; + case sz_word: + if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) + term (); + printf ("\t%s (%sa, %s);\n", dstw, to, from); + count_write++; + break; + case sz_long: + if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) + term (); + printf ("\t%s (%sa, %s);\n", dstl, to, from); + count_write += 2; + break; + default: + term (); + } + } + else if (using_ce) + { + switch (size) + { + case sz_byte: + check_ipl_again(); + printf ("\tx_put_byte (%sa, %s);\n", to, from); + count_write++; + break; + case sz_word: + if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) + term (); + check_ipl_again(); + printf ("\tx_put_word (%sa, %s);\n", to, from); + count_write++; + break; + case sz_long: + if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) + term (); + if (store_dir) + { + printf ("\t%s (%sa + 2, %s);\n", dstw, to, from); + check_ipl_again(); + printf ("%s (%sa, %s >> 16);\n", dstw, to, from); + } + else + { + printf ("\t%s (%sa, %s >> 16);\n", dstw, to, from); + check_ipl_again(); + printf ("\t%s (%sa + 2, %s);\n", dstw, to, from); + } + count_write += 2; + break; + default: + term (); + } + } + else if (using_mmu) + { + switch (size) + { + case sz_byte: + insn_n_cycles += 4; + if (flags & GF_FC) + printf ("\tdfc%s_put_byte (%sa, %s);\n", mmu_postfix, to, from); + else + printf ("\t%s (%sa, %s);\n", (flags & GF_LRMW) ? dstblrmw : (candormw ? dstbrmw : dstb), to, from); + break; + case sz_word: + insn_n_cycles += 4; + if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) + term (); + if (flags & GF_FC) + printf ("\tdfc%s_put_word (%sa, %s);\n", mmu_postfix, to, from); + else + printf ("\t%s (%sa, %s);\n", (flags & GF_LRMW) ? dstwlrmw : (candormw ? dstwrmw : dstw), to, from); + break; + case sz_long: + insn_n_cycles += 8; + if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) + term (); + if (flags & GF_FC) + printf ("\tdfc%s_put_long (%sa, %s);\n", mmu_postfix, to, from); + else + printf ("\t%s (%sa, %s);\n", (flags & GF_LRMW) ? dstllrmw : (candormw ? dstlrmw : dstl), to, from); + break; + default: + term (); + } + } + else if (using_prefetch) + { + switch (size) + { + case sz_byte: + insn_n_cycles += 4; + printf ("\t%s (%sa, %s);\n", dstb, to, from); + count_write++; + break; + case sz_word: + insn_n_cycles += 4; + if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) + term (); + printf ("\t%s (%sa, %s);\n", dstw, to, from); + count_write++; + break; + case sz_long: + insn_n_cycles += 8; + if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) + term (); + if (store_dir) + printf ("\t%s (%sa, %s);\n", dstl, to, from); + else + printf ("\t%s (%sa, %s);\n", dstl, to, from); + count_write += 2; + break; + default: + term (); + } + } + else + { + switch (size) + { + case sz_byte: + insn_n_cycles += 4; + printf ("\t%s (%sa, %s);\n", dstb, to, from); + count_write++; + break; + case sz_word: + insn_n_cycles += 4; + if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) + term (); + printf ("\t%s (%sa, %s);\n", dstw, to, from); + count_write++; + break; + case sz_long: + insn_n_cycles += 8; + if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) + term (); + printf ("\t%s (%sa, %s);\n", dstl, to, from); + count_write += 2; + break; + default: + term (); + } + } + break; + case imm: + case imm0: + case imm1: + case imm2: + case immi: + term (); + break; + default: + term (); + } } static void genastore (const char *from, amodes mode, const char *reg, wordsizes size, const char *to) { - genastore_2 (from, mode, reg, size, to, 0, 0); + genastore_2 (from, mode, reg, size, to, 0, 0); } static void genastore_tas (const char *from, amodes mode, const char *reg, wordsizes size, const char *to) { - genastore_2 (from, mode, reg, size, to, 0, GF_LRMW); + genastore_2 (from, mode, reg, size, to, 0, GF_LRMW); } static void genastore_cas (const char *from, amodes mode, const char *reg, wordsizes size, const char *to) { - genastore_2 (from, mode, reg, size, to, 0, GF_LRMW | GF_NOFAULTPC); + genastore_2 (from, mode, reg, size, to, 0, GF_LRMW | GF_NOFAULTPC); } static void genastore_rev (const char *from, amodes mode, const char *reg, wordsizes size, const char *to) { - genastore_2 (from, mode, reg, size, to, 1, 0); + genastore_2 (from, mode, reg, size, to, 1, 0); } static void genastore_fc (const char *from, amodes mode, const char *reg, wordsizes size, const char *to) { - genastore_2 (from, mode, reg, size, to, 1, GF_FC); + genastore_2 (from, mode, reg, size, to, 1, GF_FC); } static void movem_mmu060 (const char *code, int size, bool put, bool aipi, bool apdi) { - const char *index; - int dphase; + const char *index; + int dphase; - if (apdi) { - dphase = 1; - index = "movem_index2"; - } else { - dphase = 0; - index = "movem_index1"; - } + if (apdi) + { + dphase = 1; + index = "movem_index2"; + } + else + { + dphase = 0; + index = "movem_index1"; + } - if (!put) { - printf("\tuae_u32 tmp[16];\n"); - printf("\tint tmpreg[16];\n"); - printf("\tint idx = 0;\n"); - for (int i = 0; i < 2; i++) { - char reg; - if (i == dphase) - reg = 'd'; - else - reg = 'a'; - printf ("\twhile (%cmask) {\n", reg); - if (apdi) - printf ("\t\tsrca -= %d;\n", size); - printf ("\t\ttmpreg[idx] = %s[%cmask] + %d;\n", index, reg, i == dphase ? 0 : 8); - printf ("\t\ttmp[idx++] = %s;\n", code); - if (!apdi) - printf ("\t\tsrca += %d;\n", size); - printf ("\t\t%cmask = movem_next[%cmask];\n", reg, reg); - printf ("\t}\n"); - } - if (aipi || apdi) - printf ("\tm68k_areg (regs, dstreg) = srca;\n"); - printf ("\twhile (--idx >= 0) {\n"); - printf ("\t\tregs.regs[tmpreg[idx]] = tmp[idx];\n"); - printf ("\t}\n"); - } else { - for (int i = 0; i < 2; i++) { - char reg; - if (i == dphase) - reg = 'd'; - else - reg = 'a'; - printf ("\twhile (%cmask) {\n", reg); - if (apdi) - printf ("\t\tsrca -= %d;\n", size); - if (put) { - printf ("\t\t%s, m68k_%creg (regs, %s[%cmask]));\n", code, reg, index, reg); - } else { - printf ("\t\tm68k_%creg (regs, %s[%cmask]) = %s;\n", reg, index, reg, code); - } - if (!apdi) - printf ("\t\tsrca += %d;\n", size); - printf ("\t\t%cmask = movem_next[%cmask];\n", reg, reg); - printf ("\t}\n"); - } - if (aipi || apdi) - printf ("\tm68k_areg (regs, dstreg) = srca;\n"); - } + if (!put) + { + printf("\tuae_u32 tmp[16];\n"); + printf("\tint tmpreg[16];\n"); + printf("\tint idx = 0;\n"); + for (int i = 0; i < 2; i++) + { + char reg; + if (i == dphase) + reg = 'd'; + else + reg = 'a'; + printf ("\twhile (%cmask) {\n", reg); + if (apdi) + printf ("\t\tsrca -= %d;\n", size); + printf ("\t\ttmpreg[idx] = %s[%cmask] + %d;\n", index, reg, i == dphase ? 0 : 8); + printf ("\t\ttmp[idx++] = %s;\n", code); + if (!apdi) + printf ("\t\tsrca += %d;\n", size); + printf ("\t\t%cmask = movem_next[%cmask];\n", reg, reg); + printf ("\t}\n"); + } + if (aipi || apdi) + printf ("\tm68k_areg (regs, dstreg) = srca;\n"); + printf ("\twhile (--idx >= 0) {\n"); + printf ("\t\tregs.regs[tmpreg[idx]] = tmp[idx];\n"); + printf ("\t}\n"); + } + else + { + for (int i = 0; i < 2; i++) + { + char reg; + if (i == dphase) + reg = 'd'; + else + reg = 'a'; + printf ("\twhile (%cmask) {\n", reg); + if (apdi) + printf ("\t\tsrca -= %d;\n", size); + if (put) + { + printf ("\t\t%s, m68k_%creg (regs, %s[%cmask]));\n", code, reg, index, reg); + } + else + { + printf ("\t\tm68k_%creg (regs, %s[%cmask]) = %s;\n", reg, index, reg, code); + } + if (!apdi) + printf ("\t\tsrca += %d;\n", size); + printf ("\t\t%cmask = movem_next[%cmask];\n", reg, reg); + printf ("\t}\n"); + } + if (aipi || apdi) + printf ("\tm68k_areg (regs, dstreg) = srca;\n"); + } } static bool mmu040_special_movem (uae_u16 opcode) { - if (using_mmu != 68040) - return false; - return true; + if (using_mmu != 68040) + return false; + return true; // return (((((opcode >> 3) & 7) == 7) && ((opcode & 7) == 2 || (opcode & 7) == 3)) || ((opcode >> 3) & 7) == 6); } static void movem_mmu040 (const char *code, int size, bool put, bool aipi, bool apdi, uae_u16 opcode) { - const char *index; - int dphase; + const char *index; + int dphase; - if (apdi) { - dphase = 1; - index = "movem_index2"; - } else { - dphase = 0; - index = "movem_index1"; - } + if (apdi) + { + dphase = 1; + index = "movem_index2"; + } + else + { + dphase = 0; + index = "movem_index1"; + } - printf ("\tmmu040_movem = 1;\n"); - printf ("\tmmu040_movem_ea = srca;\n"); + printf ("\tmmu040_movem = 1;\n"); + printf ("\tmmu040_movem_ea = srca;\n"); - for (int i = 0; i < 2; i++) { - char reg; - if (i == dphase) - reg = 'd'; - else - reg = 'a'; - printf ("\twhile (%cmask) {\n", reg); - if (apdi) - printf ("\t\tsrca -= %d;\n", size); - if (put) { - printf ("\t\t%s, m68k_%creg (regs, %s[%cmask]));\n", code, reg, index, reg); - } else { - printf ("\t\tm68k_%creg (regs, %s[%cmask]) = %s;\n", reg, index, reg, code); - } - if (!apdi) - printf ("\t\tsrca += %d;\n", size); - printf ("\t\t%cmask = movem_next[%cmask];\n", reg, reg); - printf ("\t}\n"); - } - if (aipi || apdi) - printf ("\tm68k_areg (regs, dstreg) = srca;\n"); - printf ("\tmmu040_movem = 0;\n"); + for (int i = 0; i < 2; i++) + { + char reg; + if (i == dphase) + reg = 'd'; + else + reg = 'a'; + printf ("\twhile (%cmask) {\n", reg); + if (apdi) + printf ("\t\tsrca -= %d;\n", size); + if (put) + { + printf ("\t\t%s, m68k_%creg (regs, %s[%cmask]));\n", code, reg, index, reg); + } + else + { + printf ("\t\tm68k_%creg (regs, %s[%cmask]) = %s;\n", reg, index, reg, code); + } + if (!apdi) + printf ("\t\tsrca += %d;\n", size); + printf ("\t\t%cmask = movem_next[%cmask];\n", reg, reg); + printf ("\t}\n"); + } + if (aipi || apdi) + printf ("\tm68k_areg (regs, dstreg) = srca;\n"); + printf ("\tmmu040_movem = 0;\n"); } /* 68030 MMU does not restore register state if it bus faults. @@ -2114,3323 +2385,3860 @@ static void movem_mmu040 (const char *code, int size, bool put, bool aipi, bool */ static void movem_mmu030 (const char *code, int size, bool put, bool aipi, bool apdi) { - const char *index; - int dphase; + const char *index; + int dphase; - if (apdi) { - dphase = 1; - index = "movem_index2"; - } else { - dphase = 0; - index = "movem_index1"; - } - printf ("\tmmu030_state[1] |= MMU030_STATEFLAG1_MOVEM1;\n"); - printf ("\tint movem_cnt = 0;\n"); - if (!put) { - printf ("\tuae_u32 val;\n"); - printf ("\tif (mmu030_state[1] & MMU030_STATEFLAG1_MOVEM2)\n"); - printf ("\t\tsrca = mmu030_ad[mmu030_idx].val;\n"); - printf ("\telse\n"); - printf ("\t\tmmu030_ad[mmu030_idx].val = srca;\n"); - } - for (int i = 0; i < 2; i++) { - char reg; - if (i == dphase) - reg = 'd'; - else - reg = 'a'; - printf ("\twhile (%cmask) {\n", reg); - if (apdi) - printf ("\t\tsrca -= %d;\n", size); - printf ("\t\tif (mmu030_state[0] == movem_cnt) {\n"); - printf ("\t\t\tif (mmu030_state[1] & MMU030_STATEFLAG1_MOVEM2) {\n"); - printf ("\t\t\t\tmmu030_state[1] &= ~MMU030_STATEFLAG1_MOVEM2;\n"); - if (!put) - printf ("\t\t\t\tval = %smmu030_data_buffer;\n", size == 2 ? "(uae_s32)(uae_s16)" : ""); - printf ("\t\t\t} else {\n"); - if (put) - printf ("\t\t\t\t%s, (mmu030_data_buffer = m68k_%creg (regs, %s[%cmask])));\n", code, reg, index, reg); - else - printf ("\t\t\t\tval = %s;\n", code); - printf ("\t\t\t}\n"); - if (!put) { - printf ("\t\t\tm68k_%creg (regs, %s[%cmask]) = val;\n", reg, index, reg); - } - printf ("\t\t\tmmu030_state[0]++;\n"); - printf ("\t\t}\n"); - if (!apdi) - printf ("\t\tsrca += %d;\n", size); - printf ("\t\tmovem_cnt++;\n"); - printf ("\t\t%cmask = movem_next[%cmask];\n", reg, reg); - printf ("\t}\n"); - } - if (aipi || apdi) - printf ("\tm68k_areg (regs, dstreg) = srca;\n"); + if (apdi) + { + dphase = 1; + index = "movem_index2"; + } + else + { + dphase = 0; + index = "movem_index1"; + } + printf ("\tmmu030_state[1] |= MMU030_STATEFLAG1_MOVEM1;\n"); + printf ("\tint movem_cnt = 0;\n"); + if (!put) + { + printf ("\tuae_u32 val;\n"); + printf ("\tif (mmu030_state[1] & MMU030_STATEFLAG1_MOVEM2)\n"); + printf ("\t\tsrca = mmu030_ad[mmu030_idx].val;\n"); + printf ("\telse\n"); + printf ("\t\tmmu030_ad[mmu030_idx].val = srca;\n"); + } + for (int i = 0; i < 2; i++) + { + char reg; + if (i == dphase) + reg = 'd'; + else + reg = 'a'; + printf ("\twhile (%cmask) {\n", reg); + if (apdi) + printf ("\t\tsrca -= %d;\n", size); + printf ("\t\tif (mmu030_state[0] == movem_cnt) {\n"); + printf ("\t\t\tif (mmu030_state[1] & MMU030_STATEFLAG1_MOVEM2) {\n"); + printf ("\t\t\t\tmmu030_state[1] &= ~MMU030_STATEFLAG1_MOVEM2;\n"); + if (!put) + printf ("\t\t\t\tval = %smmu030_data_buffer;\n", size == 2 ? "(uae_s32)(uae_s16)" : ""); + printf ("\t\t\t} else {\n"); + if (put) + printf ("\t\t\t\t%s, (mmu030_data_buffer = m68k_%creg (regs, %s[%cmask])));\n", code, reg, index, reg); + else + printf ("\t\t\t\tval = %s;\n", code); + printf ("\t\t\t}\n"); + if (!put) + { + printf ("\t\t\tm68k_%creg (regs, %s[%cmask]) = val;\n", reg, index, reg); + } + printf ("\t\t\tmmu030_state[0]++;\n"); + printf ("\t\t}\n"); + if (!apdi) + printf ("\t\tsrca += %d;\n", size); + printf ("\t\tmovem_cnt++;\n"); + printf ("\t\t%cmask = movem_next[%cmask];\n", reg, reg); + printf ("\t}\n"); + } + if (aipi || apdi) + printf ("\tm68k_areg (regs, dstreg) = srca;\n"); } static void genmovemel (uae_u16 opcode) { - char getcode[100]; - int size = table68k[opcode].size == sz_long ? 4 : 2; + char getcode[100]; + int size = table68k[opcode].size == sz_long ? 4 : 2; - if (table68k[opcode].size == sz_long) { - sprintf (getcode, "%s (srca)", srcld); - } else { - sprintf (getcode, "(uae_s32)(uae_s16)%s (srca)", srcwd); - } - count_read += table68k[opcode].size == sz_long ? 2 : 1; - printf ("\tuae_u16 mask = %s;\n", gen_nextiword (0)); - printf ("\tuae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;\n"); - genamode (NULL, table68k[opcode].dmode, "dstreg", table68k[opcode].size, "src", 2, mmu040_special_movem (opcode) ? 3 : 1, GF_MOVE); - addcycles_ce020 (8 - 2); - start_brace (); - if (using_mmu == 68030) { - movem_mmu030 (getcode, size, false, table68k[opcode].dmode == Aipi, false); - } else if (using_mmu == 68060) { - movem_mmu060 (getcode, size, false, table68k[opcode].dmode == Aipi, false); - } else if (using_mmu == 68040) { - movem_mmu040 (getcode, size, false, table68k[opcode].dmode == Aipi, false, opcode); - } else { - printf ("\twhile (dmask) {\n"); - printf ("\t\tm68k_dreg (regs, movem_index1[dmask]) = %s; srca += %d; dmask = movem_next[dmask];\n", getcode, size); - //addcycles_ce020 (1); - printf ("\t}\n"); - printf ("\twhile (amask) {\n"); - printf ("\t\tm68k_areg (regs, movem_index1[amask]) = %s; srca += %d; amask = movem_next[amask];\n", getcode, size); - //addcycles_ce020 (1); - printf ("\t}\n"); - if (table68k[opcode].dmode == Aipi) { - printf ("\tm68k_areg (regs, dstreg) = srca;\n"); - count_read++; - } - } - count_ncycles++; - fill_prefetch_next (); - get_prefetch_020 (); + if (table68k[opcode].size == sz_long) + { + sprintf (getcode, "%s (srca)", srcld); + } + else + { + sprintf (getcode, "(uae_s32)(uae_s16)%s (srca)", srcwd); + } + count_read += table68k[opcode].size == sz_long ? 2 : 1; + printf ("\tuae_u16 mask = %s;\n", gen_nextiword (0)); + printf ("\tuae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;\n"); + genamode (NULL, table68k[opcode].dmode, "dstreg", table68k[opcode].size, "src", 2, mmu040_special_movem (opcode) ? 3 : 1, GF_MOVE); + addcycles_ce020 (8 - 2); + start_brace (); + if (using_mmu == 68030) + { + movem_mmu030 (getcode, size, false, table68k[opcode].dmode == Aipi, false); + } + else if (using_mmu == 68060) + { + movem_mmu060 (getcode, size, false, table68k[opcode].dmode == Aipi, false); + } + else if (using_mmu == 68040) + { + movem_mmu040 (getcode, size, false, table68k[opcode].dmode == Aipi, false, opcode); + } + else + { + printf ("\twhile (dmask) {\n"); + printf ("\t\tm68k_dreg (regs, movem_index1[dmask]) = %s; srca += %d; dmask = movem_next[dmask];\n", getcode, size); + //addcycles_ce020 (1); + printf ("\t}\n"); + printf ("\twhile (amask) {\n"); + printf ("\t\tm68k_areg (regs, movem_index1[amask]) = %s; srca += %d; amask = movem_next[amask];\n", getcode, size); + //addcycles_ce020 (1); + printf ("\t}\n"); + if (table68k[opcode].dmode == Aipi) + { + printf ("\tm68k_areg (regs, dstreg) = srca;\n"); + count_read++; + } + } + count_ncycles++; + fill_prefetch_next (); + get_prefetch_020 (); } static void genmovemel_ce (uae_u16 opcode) { - int size = table68k[opcode].size == sz_long ? 4 : 2; - printf ("\tuae_u16 mask = %s;\n", gen_nextiword (0)); - printf ("\tuae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;\n"); - //printf ("\tuae_u32 v;\n"); - if (table68k[opcode].dmode == Ad8r || table68k[opcode].dmode == PC8r) - addcycles000 (2); - genamode (NULL, table68k[opcode].dmode, "dstreg", table68k[opcode].size, "src", 2, 1, GF_AA | GF_MOVE); - start_brace (); - if (table68k[opcode].size == sz_long) { - printf ("\twhile (dmask) {\n"); - //printf ("\t\tv = %s (srca) << 16;\n", srcw); - //printf ("\t\tv |= %s (srca + 2);\n", srcw); - //printf ("\t\tm68k_dreg (regs, movem_index1[dmask]) = v;\n"); - printf ("\t\tm68k_dreg (regs, movem_index1[dmask]) = %s (srca);\n", srcl); - printf ("\t\tsrca += %d;\n", size); - printf ("\t\tdmask = movem_next[dmask];\n"); - addcycles000_nonce("\t\t", cpu_level > 1 ? 4 : 8); - printf ("\t}\n"); - printf ("\twhile (amask) {\n"); - //printf ("\t\tv = %s (srca) << 16;\n", srcw); - //printf ("\t\tv |= %s (srca + 2);\n", srcw); - //printf ("\t\tm68k_areg (regs, movem_index1[amask]) = v;\n"); - printf ("\t\tm68k_areg (regs, movem_index1[amask]) = %s (srca);\n", srcl); - printf ("\t\tsrca += %d;\n", size); - printf ("\t\tamask = movem_next[amask];\n"); - addcycles000_nonce("\t\t", cpu_level > 1 ? 4 : 8); - printf ("\t}\n"); - } else { - printf ("\twhile (dmask) {\n"); - printf ("\t\tm68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)%s (srca);\n", srcw); - printf ("\t\tsrca += %d;\n", size); - printf ("\t\tdmask = movem_next[dmask];\n"); - addcycles000_nonce("\t\t", cpu_level > 1 ? 4 : 4); - printf ("\t}\n"); - printf ("\twhile (amask) {\n"); - printf ("\t\tm68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)%s (srca);\n", srcw); - printf ("\t\tsrca += %d;\n", size); - printf ("\t\tamask = movem_next[amask];\n"); - addcycles000_nonce("\t\t", cpu_level > 1 ? 4 : 4); - printf ("\t}\n"); - } - //printf ("\t%s (srca);\n", srcw); // and final extra word fetch that goes nowhere.. - count_read++; - if (table68k[opcode].dmode == Aipi) - printf ("\tm68k_areg (regs, dstreg) = srca;\n"); - count_ncycles++; - fill_prefetch_next (); + int size = table68k[opcode].size == sz_long ? 4 : 2; + printf ("\tuae_u16 mask = %s;\n", gen_nextiword (0)); + printf ("\tuae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;\n"); + //printf ("\tuae_u32 v;\n"); + if (table68k[opcode].dmode == Ad8r || table68k[opcode].dmode == PC8r) + addcycles000 (2); + genamode (NULL, table68k[opcode].dmode, "dstreg", table68k[opcode].size, "src", 2, 1, GF_AA | GF_MOVE); + start_brace (); + if (table68k[opcode].size == sz_long) + { + printf ("\twhile (dmask) {\n"); + //printf ("\t\tv = %s (srca) << 16;\n", srcw); + //printf ("\t\tv |= %s (srca + 2);\n", srcw); + //printf ("\t\tm68k_dreg (regs, movem_index1[dmask]) = v;\n"); + printf ("\t\tm68k_dreg (regs, movem_index1[dmask]) = %s (srca);\n", srcl); + printf ("\t\tsrca += %d;\n", size); + printf ("\t\tdmask = movem_next[dmask];\n"); + addcycles000_nonce("\t\t", cpu_level > 1 ? 4 : 8); + printf ("\t}\n"); + printf ("\twhile (amask) {\n"); + //printf ("\t\tv = %s (srca) << 16;\n", srcw); + //printf ("\t\tv |= %s (srca + 2);\n", srcw); + //printf ("\t\tm68k_areg (regs, movem_index1[amask]) = v;\n"); + printf ("\t\tm68k_areg (regs, movem_index1[amask]) = %s (srca);\n", srcl); + printf ("\t\tsrca += %d;\n", size); + printf ("\t\tamask = movem_next[amask];\n"); + addcycles000_nonce("\t\t", cpu_level > 1 ? 4 : 8); + printf ("\t}\n"); + } + else + { + printf ("\twhile (dmask) {\n"); + printf ("\t\tm68k_dreg (regs, movem_index1[dmask]) = (uae_s32)(uae_s16)%s (srca);\n", srcw); + printf ("\t\tsrca += %d;\n", size); + printf ("\t\tdmask = movem_next[dmask];\n"); + addcycles000_nonce("\t\t", cpu_level > 1 ? 4 : 4); + printf ("\t}\n"); + printf ("\twhile (amask) {\n"); + printf ("\t\tm68k_areg (regs, movem_index1[amask]) = (uae_s32)(uae_s16)%s (srca);\n", srcw); + printf ("\t\tsrca += %d;\n", size); + printf ("\t\tamask = movem_next[amask];\n"); + addcycles000_nonce("\t\t", cpu_level > 1 ? 4 : 4); + printf ("\t}\n"); + } + //printf ("\t%s (srca);\n", srcw); // and final extra word fetch that goes nowhere.. + count_read++; + if (table68k[opcode].dmode == Aipi) + printf ("\tm68k_areg (regs, dstreg) = srca;\n"); + count_ncycles++; + fill_prefetch_next (); } static void genmovemle (uae_u16 opcode) { - char putcode[100]; - int size = table68k[opcode].size == sz_long ? 4 : 2; + char putcode[100]; + int size = table68k[opcode].size == sz_long ? 4 : 2; - if (table68k[opcode].size == sz_long) { - sprintf (putcode, "%s (srca", dstld); - } else { - sprintf (putcode, "%s (srca", dstwd); - } - count_write += table68k[opcode].size == sz_long ? 2 : 1; + if (table68k[opcode].size == sz_long) + { + sprintf (putcode, "%s (srca", dstld); + } + else + { + sprintf (putcode, "%s (srca", dstwd); + } + count_write += table68k[opcode].size == sz_long ? 2 : 1; - printf ("\tuae_u16 mask = %s;\n", gen_nextiword (0)); - genamode (NULL, table68k[opcode].dmode, "dstreg", table68k[opcode].size, "src", 2, mmu040_special_movem (opcode) ? 3 : 1, GF_MOVE); - addcycles_ce020 (4 - 2); - start_brace (); - if (using_mmu >= 68030) { - if (table68k[opcode].dmode == Apdi) - printf ("\tuae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff;\n"); - else - printf ("\tuae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;\n"); - if (using_mmu == 68030) - movem_mmu030 (putcode, size, true, false, table68k[opcode].dmode == Apdi); - else if (using_mmu == 68060) - movem_mmu060 (putcode, size, true, false, table68k[opcode].dmode == Apdi); - else if (using_mmu == 68040) - movem_mmu040 (putcode, size, true, false, table68k[opcode].dmode == Apdi, opcode); - } else { - if (table68k[opcode].dmode == Apdi) { - printf ("\tuae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff;\n"); - if (!using_mmu) - printf ("\tint type = get_cpu_model () >= 68020;\n"); - printf ("\twhile (amask) {\n"); - printf ("\t\tsrca -= %d;\n", size); + printf ("\tuae_u16 mask = %s;\n", gen_nextiword (0)); + genamode (NULL, table68k[opcode].dmode, "dstreg", table68k[opcode].size, "src", 2, mmu040_special_movem (opcode) ? 3 : 1, GF_MOVE); + addcycles_ce020 (4 - 2); + start_brace (); + if (using_mmu >= 68030) + { + if (table68k[opcode].dmode == Apdi) + printf ("\tuae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff;\n"); + else + printf ("\tuae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;\n"); + if (using_mmu == 68030) + movem_mmu030 (putcode, size, true, false, table68k[opcode].dmode == Apdi); + else if (using_mmu == 68060) + movem_mmu060 (putcode, size, true, false, table68k[opcode].dmode == Apdi); + else if (using_mmu == 68040) + movem_mmu040 (putcode, size, true, false, table68k[opcode].dmode == Apdi, opcode); + } + else + { + if (table68k[opcode].dmode == Apdi) + { + printf ("\tuae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff;\n"); + if (!using_mmu) + printf ("\tint type = get_cpu_model () >= 68020;\n"); + printf ("\twhile (amask) {\n"); + printf ("\t\tsrca -= %d;\n", size); - printf ("\t\tif (!type || movem_index2[amask] != dstreg)\n"); - printf ("\t\t\t%s, m68k_areg (regs, movem_index2[amask]));\n", putcode); - printf ("\t\telse\n"); - printf ("\t\t\t%s, m68k_areg (regs, movem_index2[amask]) - %d);\n", putcode, size); + printf ("\t\tif (!type || movem_index2[amask] != dstreg)\n"); + printf ("\t\t\t%s, m68k_areg (regs, movem_index2[amask]));\n", putcode); + printf ("\t\telse\n"); + printf ("\t\t\t%s, m68k_areg (regs, movem_index2[amask]) - %d);\n", putcode, size); - printf ("\t\tamask = movem_next[amask];\n"); - printf ("\t}\n"); - printf ("\twhile (dmask) { srca -= %d; %s, m68k_dreg (regs, movem_index2[dmask])); dmask = movem_next[dmask]; }\n", - size, putcode); - printf ("\tm68k_areg (regs, dstreg) = srca;\n"); - } else { - printf ("\tuae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;\n"); - printf ("\twhile (dmask) { %s, m68k_dreg (regs, movem_index1[dmask])); srca += %d; dmask = movem_next[dmask]; }\n", - putcode, size); - printf ("\twhile (amask) { %s, m68k_areg (regs, movem_index1[amask])); srca += %d; amask = movem_next[amask]; }\n", - putcode, size); - } - } - count_ncycles++; - fill_prefetch_next (); - get_prefetch_020 (); + printf ("\t\tamask = movem_next[amask];\n"); + printf ("\t}\n"); + printf ("\twhile (dmask) { srca -= %d; %s, m68k_dreg (regs, movem_index2[dmask])); dmask = movem_next[dmask]; }\n", + size, putcode); + printf ("\tm68k_areg (regs, dstreg) = srca;\n"); + } + else + { + printf ("\tuae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;\n"); + printf ("\twhile (dmask) { %s, m68k_dreg (regs, movem_index1[dmask])); srca += %d; dmask = movem_next[dmask]; }\n", + putcode, size); + printf ("\twhile (amask) { %s, m68k_areg (regs, movem_index1[amask])); srca += %d; amask = movem_next[amask]; }\n", + putcode, size); + } + } + count_ncycles++; + fill_prefetch_next (); + get_prefetch_020 (); } static void genmovemle_ce (uae_u16 opcode) { - int size = table68k[opcode].size == sz_long ? 4 : 2; + int size = table68k[opcode].size == sz_long ? 4 : 2; - printf ("\tuae_u16 mask = %s;\n", gen_nextiword (0)); - if (table68k[opcode].dmode == Ad8r || table68k[opcode].dmode == PC8r) - addcycles000 (2); - genamode (NULL, table68k[opcode].dmode, "dstreg", table68k[opcode].size, "src", 2, 1, GF_AA | GF_MOVE); - start_brace (); - if (table68k[opcode].size == sz_long) { - if (table68k[opcode].dmode == Apdi) { - printf ("\tuae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff;\n"); - if(cpu_level >= 2) - printf ("\tint type = get_cpu_model() >= 68020;\n"); - printf ("\twhile (amask) {\n"); - printf ("\t\tsrca -= %d;\n", size); - if(cpu_level >= 2) - printf ("\t\tif (type) m68k_areg (regs, dstreg) = srca;\n"); - //printf ("\t\t%s (srca, m68k_areg (regs, movem_index2[amask]) >> 16);\n", dstw); - //printf ("\t\t%s (srca + 2, m68k_areg (regs, movem_index2[amask]));\n", dstw); - printf ("\t\t%s (srca, m68k_areg (regs, movem_index2[amask]));\n", dstl); - printf ("\t\tamask = movem_next[amask];\n"); - addcycles000_nonce("\t\t", cpu_level > 1 ? 3 : 8); - printf ("\t}\n"); - printf ("\twhile (dmask) {\n"); - printf ("\t\tsrca -= %d;\n", size); - //printf ("\t\t%s (srca, m68k_dreg (regs, movem_index2[dmask]) >> 16);\n", dstw); - //printf ("\t\t%s (srca + 2, m68k_dreg (regs, movem_index2[dmask]));\n", dstw); - printf ("\t\t%s (srca, m68k_dreg (regs, movem_index2[dmask]));\n", dstl); - printf ("\t\tdmask = movem_next[dmask];\n"); - addcycles000_nonce("\t\t", cpu_level > 1 ? 3 : 8); - printf ("\t}\n"); - printf ("\tm68k_areg (regs, dstreg) = srca;\n"); - } else { - printf ("\tuae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;\n"); - printf ("\twhile (dmask) {\n"); - //printf ("\t\t%s (srca, m68k_dreg (regs, movem_index1[dmask]) >> 16);\n", dstw); - //printf ("\t\t%s (srca + 2, m68k_dreg (regs, movem_index1[dmask]));\n", dstw); - printf ("\t\t%s (srca, m68k_dreg (regs, movem_index1[dmask]));\n", dstl); - printf ("\t\tsrca += %d;\n", size); - printf ("\t\tdmask = movem_next[dmask];\n"); - addcycles000_nonce("\t\t", cpu_level > 1 ? 3 : 8); - printf ("\t}\n"); - printf ("\twhile (amask) {\n"); - //printf ("\t\t%s (srca, m68k_areg (regs, movem_index1[amask]) >> 16);\n", dstw); - //printf ("\t\t%s (srca + 2, m68k_areg (regs, movem_index1[amask]));\n", dstw); - printf ("\t\t%s (srca, m68k_areg (regs, movem_index1[amask]));\n", dstl); - printf ("\t\tsrca += %d;\n", size); - printf ("\t\tamask = movem_next[amask];\n"); - addcycles000_nonce("\t\t", cpu_level > 1 ? 3 : 8); - printf ("\t}\n"); - } - } else { - if (table68k[opcode].dmode == Apdi) { - printf ("\tuae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff;\n"); - if(cpu_level >= 2) - printf ("\tint type = get_cpu_model() >= 68020;\n"); - printf ("\twhile (amask) {\n"); - printf ("\t\tsrca -= %d;\n", size); - if(cpu_level >= 2) - printf ("\t\tif (type) m68k_areg (regs, dstreg) = srca;\n"); - printf ("\t\t%s (srca, m68k_areg (regs, movem_index2[amask]));\n", dstw); - printf ("\tamask = movem_next[amask];\n"); - addcycles000_nonce("\t\t", cpu_level > 1 ? 3 : 4); - printf ("\t}\n"); - printf ("\twhile (dmask) {\n"); - printf ("\t\tsrca -= %d;\n", size); - printf ("\t\t%s (srca, m68k_dreg (regs, movem_index2[dmask]));\n", dstw); - printf ("\t\tdmask = movem_next[dmask];\n"); - addcycles000_nonce("\t\t", cpu_level > 1 ? 3 : 4); - printf ("\t}\n"); - printf ("\tm68k_areg (regs, dstreg) = srca;\n"); - } else { - printf ("\tuae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;\n"); - printf ("\twhile (dmask) {\n"); - printf ("\t\t%s (srca, m68k_dreg (regs, movem_index1[dmask]));\n", dstw); - printf ("\t\tsrca += %d;\n", size); - printf ("\t\tdmask = movem_next[dmask];\n"); - addcycles000_nonce("\t\t", cpu_level > 1 ? 3 : 4); - printf ("\t}\n"); - printf ("\twhile (amask) {\n"); - printf ("\t\t%s (srca, m68k_areg (regs, movem_index1[amask]));\n", dstw); - printf ("\t\tsrca += %d;\n", size); - printf ("\t\tamask = movem_next[amask];\n"); - addcycles000_nonce("\t\t", cpu_level > 1 ? 3 : 4); - printf ("\t}\n"); - } - } - count_ncycles++; - fill_prefetch_next (); + printf ("\tuae_u16 mask = %s;\n", gen_nextiword (0)); + if (table68k[opcode].dmode == Ad8r || table68k[opcode].dmode == PC8r) + addcycles000 (2); + genamode (NULL, table68k[opcode].dmode, "dstreg", table68k[opcode].size, "src", 2, 1, GF_AA | GF_MOVE); + start_brace (); + if (table68k[opcode].size == sz_long) + { + if (table68k[opcode].dmode == Apdi) + { + printf ("\tuae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff;\n"); + if(cpu_level >= 2) + printf ("\tint type = get_cpu_model() >= 68020;\n"); + printf ("\twhile (amask) {\n"); + printf ("\t\tsrca -= %d;\n", size); + if(cpu_level >= 2) + printf ("\t\tif (type) m68k_areg (regs, dstreg) = srca;\n"); + //printf ("\t\t%s (srca, m68k_areg (regs, movem_index2[amask]) >> 16);\n", dstw); + //printf ("\t\t%s (srca + 2, m68k_areg (regs, movem_index2[amask]));\n", dstw); + printf ("\t\t%s (srca, m68k_areg (regs, movem_index2[amask]));\n", dstl); + printf ("\t\tamask = movem_next[amask];\n"); + addcycles000_nonce("\t\t", cpu_level > 1 ? 3 : 8); + printf ("\t}\n"); + printf ("\twhile (dmask) {\n"); + printf ("\t\tsrca -= %d;\n", size); + //printf ("\t\t%s (srca, m68k_dreg (regs, movem_index2[dmask]) >> 16);\n", dstw); + //printf ("\t\t%s (srca + 2, m68k_dreg (regs, movem_index2[dmask]));\n", dstw); + printf ("\t\t%s (srca, m68k_dreg (regs, movem_index2[dmask]));\n", dstl); + printf ("\t\tdmask = movem_next[dmask];\n"); + addcycles000_nonce("\t\t", cpu_level > 1 ? 3 : 8); + printf ("\t}\n"); + printf ("\tm68k_areg (regs, dstreg) = srca;\n"); + } + else + { + printf ("\tuae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;\n"); + printf ("\twhile (dmask) {\n"); + //printf ("\t\t%s (srca, m68k_dreg (regs, movem_index1[dmask]) >> 16);\n", dstw); + //printf ("\t\t%s (srca + 2, m68k_dreg (regs, movem_index1[dmask]));\n", dstw); + printf ("\t\t%s (srca, m68k_dreg (regs, movem_index1[dmask]));\n", dstl); + printf ("\t\tsrca += %d;\n", size); + printf ("\t\tdmask = movem_next[dmask];\n"); + addcycles000_nonce("\t\t", cpu_level > 1 ? 3 : 8); + printf ("\t}\n"); + printf ("\twhile (amask) {\n"); + //printf ("\t\t%s (srca, m68k_areg (regs, movem_index1[amask]) >> 16);\n", dstw); + //printf ("\t\t%s (srca + 2, m68k_areg (regs, movem_index1[amask]));\n", dstw); + printf ("\t\t%s (srca, m68k_areg (regs, movem_index1[amask]));\n", dstl); + printf ("\t\tsrca += %d;\n", size); + printf ("\t\tamask = movem_next[amask];\n"); + addcycles000_nonce("\t\t", cpu_level > 1 ? 3 : 8); + printf ("\t}\n"); + } + } + else + { + if (table68k[opcode].dmode == Apdi) + { + printf ("\tuae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff;\n"); + if(cpu_level >= 2) + printf ("\tint type = get_cpu_model() >= 68020;\n"); + printf ("\twhile (amask) {\n"); + printf ("\t\tsrca -= %d;\n", size); + if(cpu_level >= 2) + printf ("\t\tif (type) m68k_areg (regs, dstreg) = srca;\n"); + printf ("\t\t%s (srca, m68k_areg (regs, movem_index2[amask]));\n", dstw); + printf ("\tamask = movem_next[amask];\n"); + addcycles000_nonce("\t\t", cpu_level > 1 ? 3 : 4); + printf ("\t}\n"); + printf ("\twhile (dmask) {\n"); + printf ("\t\tsrca -= %d;\n", size); + printf ("\t\t%s (srca, m68k_dreg (regs, movem_index2[dmask]));\n", dstw); + printf ("\t\tdmask = movem_next[dmask];\n"); + addcycles000_nonce("\t\t", cpu_level > 1 ? 3 : 4); + printf ("\t}\n"); + printf ("\tm68k_areg (regs, dstreg) = srca;\n"); + } + else + { + printf ("\tuae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;\n"); + printf ("\twhile (dmask) {\n"); + printf ("\t\t%s (srca, m68k_dreg (regs, movem_index1[dmask]));\n", dstw); + printf ("\t\tsrca += %d;\n", size); + printf ("\t\tdmask = movem_next[dmask];\n"); + addcycles000_nonce("\t\t", cpu_level > 1 ? 3 : 4); + printf ("\t}\n"); + printf ("\twhile (amask) {\n"); + printf ("\t\t%s (srca, m68k_areg (regs, movem_index1[amask]));\n", dstw); + printf ("\t\tsrca += %d;\n", size); + printf ("\t\tamask = movem_next[amask];\n"); + addcycles000_nonce("\t\t", cpu_level > 1 ? 3 : 4); + printf ("\t}\n"); + } + } + count_ncycles++; + fill_prefetch_next (); } static void duplicate_carry (int n) { - int i; - for (i = 0; i <= n; i++) - printf ("\t"); - printf ("COPY_CARRY ();\n"); + int i; + for (i = 0; i <= n; i++) + printf ("\t"); + printf ("COPY_CARRY ();\n"); } typedef enum { - flag_logical_noclobber, flag_logical, flag_add, flag_sub, flag_cmp, flag_addx, flag_subx, flag_z, flag_zn, - flag_av, flag_sv + flag_logical_noclobber, flag_logical, flag_add, flag_sub, flag_cmp, flag_addx, flag_subx, flag_z, flag_zn, + flag_av, flag_sv } flagtypes; static void genflags_normal (flagtypes type, wordsizes size, const char *value, const char *src, const char *dst) { - char vstr[100], sstr[100], dstr[100]; - char usstr[100], udstr[100]; - char unsstr[100], undstr[100]; + char vstr[100], sstr[100], dstr[100]; + char usstr[100], udstr[100]; + char unsstr[100], undstr[100]; - switch (size) { - case sz_byte: - strcpy (vstr, "((uae_s8)("); - strcpy (usstr, "((uae_u8)("); - break; - case sz_word: - strcpy (vstr, "((uae_s16)("); - strcpy (usstr, "((uae_u16)("); - break; - case sz_long: - strcpy (vstr, "((uae_s32)("); - strcpy (usstr, "((uae_u32)("); - break; - default: - term (); - } - strcpy (unsstr, usstr); + switch (size) + { + case sz_byte: + strcpy (vstr, "((uae_s8)("); + strcpy (usstr, "((uae_u8)("); + break; + case sz_word: + strcpy (vstr, "((uae_s16)("); + strcpy (usstr, "((uae_u16)("); + break; + case sz_long: + strcpy (vstr, "((uae_s32)("); + strcpy (usstr, "((uae_u32)("); + break; + default: + term (); + } + strcpy (unsstr, usstr); - strcpy (sstr, vstr); - strcpy (dstr, vstr); - strcat (vstr, value); - strcat (vstr, "))"); - strcat (dstr, dst); - strcat (dstr, "))"); - strcat (sstr, src); - strcat (sstr, "))"); + strcpy (sstr, vstr); + strcpy (dstr, vstr); + strcat (vstr, value); + strcat (vstr, "))"); + strcat (dstr, dst); + strcat (dstr, "))"); + strcat (sstr, src); + strcat (sstr, "))"); - strcpy (udstr, usstr); - strcat (udstr, dst); - strcat (udstr, "))"); - strcat (usstr, src); - strcat (usstr, "))"); + strcpy (udstr, usstr); + strcat (udstr, dst); + strcat (udstr, "))"); + strcat (usstr, src); + strcat (usstr, "))"); - strcpy (undstr, unsstr); - strcat (unsstr, "-"); - strcat (undstr, "~"); - strcat (undstr, dst); - strcat (undstr, "))"); - strcat (unsstr, src); - strcat (unsstr, "))"); + strcpy (undstr, unsstr); + strcat (unsstr, "-"); + strcat (undstr, "~"); + strcat (undstr, dst); + strcat (undstr, "))"); + strcat (unsstr, src); + strcat (unsstr, "))"); - switch (type) { - case flag_logical_noclobber: - case flag_logical: - case flag_z: - case flag_zn: - case flag_av: - case flag_sv: - case flag_addx: - case flag_subx: - break; + switch (type) + { + case flag_logical_noclobber: + case flag_logical: + case flag_z: + case flag_zn: + case flag_av: + case flag_sv: + case flag_addx: + case flag_subx: + break; - case flag_add: - start_brace (); - printf ("uae_u32 %s = %s + %s;\n", value, udstr, usstr); - break; - case flag_sub: - case flag_cmp: - start_brace (); - printf ("uae_u32 %s = %s - %s;\n", value, udstr, usstr); - break; - } + case flag_add: + start_brace (); + printf ("uae_u32 %s = %s + %s;\n", value, udstr, usstr); + break; + case flag_sub: + case flag_cmp: + start_brace (); + printf ("uae_u32 %s = %s - %s;\n", value, udstr, usstr); + break; + } - switch (type) { - case flag_logical_noclobber: - case flag_logical: - case flag_zn: - break; + switch (type) + { + case flag_logical_noclobber: + case flag_logical: + case flag_zn: + break; - case flag_add: - case flag_sub: - case flag_addx: - case flag_subx: - case flag_cmp: - case flag_av: - case flag_sv: - start_brace (); - printf ("\t" BOOL_TYPE " flgs = %s < 0;\n", sstr); - printf ("\t" BOOL_TYPE " flgo = %s < 0;\n", dstr); - printf ("\t" BOOL_TYPE " flgn = %s < 0;\n", vstr); - break; - } + case flag_add: + case flag_sub: + case flag_addx: + case flag_subx: + case flag_cmp: + case flag_av: + case flag_sv: + start_brace (); + printf ("\t" BOOL_TYPE " flgs = %s < 0;\n", sstr); + printf ("\t" BOOL_TYPE " flgo = %s < 0;\n", dstr); + printf ("\t" BOOL_TYPE " flgn = %s < 0;\n", vstr); + break; + } - switch (type) { - case flag_logical: - printf ("\tCLEAR_CZNV ();\n"); - printf ("\tSET_ZFLG (%s == 0);\n", vstr); - printf ("\tSET_NFLG (%s < 0);\n", vstr); - break; - case flag_logical_noclobber: - printf ("\tSET_ZFLG (%s == 0);\n", vstr); - printf ("\tSET_NFLG (%s < 0);\n", vstr); - break; - case flag_av: - printf ("\tSET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));\n"); - break; - case flag_sv: - printf ("\tSET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));\n"); - break; - case flag_z: - printf ("\tSET_ZFLG (GET_ZFLG () & (%s == 0));\n", vstr); - break; - case flag_zn: - printf ("\tSET_ZFLG (GET_ZFLG () & (%s == 0));\n", vstr); - printf ("\tSET_NFLG (%s < 0);\n", vstr); - break; - case flag_add: - printf ("\tSET_ZFLG (%s == 0);\n", vstr); - printf ("\tSET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));\n"); - printf ("\tSET_CFLG (%s < %s);\n", undstr, usstr); - duplicate_carry (0); - printf ("\tSET_NFLG (flgn != 0);\n"); - break; - case flag_sub: - printf ("\tSET_ZFLG (%s == 0);\n", vstr); - printf ("\tSET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));\n"); - printf ("\tSET_CFLG (%s > %s);\n", usstr, udstr); - duplicate_carry (0); - printf ("\tSET_NFLG (flgn != 0);\n"); - break; - case flag_addx: - printf ("\tSET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));\n"); /* minterm SON: 0x42 */ - printf ("\tSET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn)));\n"); /* minterm SON: 0xD4 */ - duplicate_carry (0); - break; - case flag_subx: - printf ("\tSET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));\n"); /* minterm SON: 0x24 */ - printf ("\tSET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));\n"); /* minterm SON: 0xB2 */ - duplicate_carry (0); - break; - case flag_cmp: - printf ("\tSET_ZFLG (%s == 0);\n", vstr); - printf ("\tSET_VFLG ((flgs != flgo) && (flgn != flgo));\n"); - printf ("\tSET_CFLG (%s > %s);\n", usstr, udstr); - printf ("\tSET_NFLG (flgn != 0);\n"); - break; - } + switch (type) + { + case flag_logical: + printf ("\tCLEAR_CZNV ();\n"); + printf ("\tSET_ZFLG (%s == 0);\n", vstr); + printf ("\tSET_NFLG (%s < 0);\n", vstr); + break; + case flag_logical_noclobber: + printf ("\tSET_ZFLG (%s == 0);\n", vstr); + printf ("\tSET_NFLG (%s < 0);\n", vstr); + break; + case flag_av: + printf ("\tSET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));\n"); + break; + case flag_sv: + printf ("\tSET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));\n"); + break; + case flag_z: + printf ("\tSET_ZFLG (GET_ZFLG () & (%s == 0));\n", vstr); + break; + case flag_zn: + printf ("\tSET_ZFLG (GET_ZFLG () & (%s == 0));\n", vstr); + printf ("\tSET_NFLG (%s < 0);\n", vstr); + break; + case flag_add: + printf ("\tSET_ZFLG (%s == 0);\n", vstr); + printf ("\tSET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));\n"); + printf ("\tSET_CFLG (%s < %s);\n", undstr, usstr); + duplicate_carry (0); + printf ("\tSET_NFLG (flgn != 0);\n"); + break; + case flag_sub: + printf ("\tSET_ZFLG (%s == 0);\n", vstr); + printf ("\tSET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));\n"); + printf ("\tSET_CFLG (%s > %s);\n", usstr, udstr); + duplicate_carry (0); + printf ("\tSET_NFLG (flgn != 0);\n"); + break; + case flag_addx: + printf ("\tSET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));\n"); /* minterm SON: 0x42 */ + printf ("\tSET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn)));\n"); /* minterm SON: 0xD4 */ + duplicate_carry (0); + break; + case flag_subx: + printf ("\tSET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));\n"); /* minterm SON: 0x24 */ + printf ("\tSET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));\n"); /* minterm SON: 0xB2 */ + duplicate_carry (0); + break; + case flag_cmp: + printf ("\tSET_ZFLG (%s == 0);\n", vstr); + printf ("\tSET_VFLG ((flgs != flgo) && (flgn != flgo));\n"); + printf ("\tSET_CFLG (%s > %s);\n", usstr, udstr); + printf ("\tSET_NFLG (flgn != 0);\n"); + break; + } } static void genflags (flagtypes type, wordsizes size, const char *value, const char *src, const char *dst) { - /* Temporarily deleted 68k/ARM flag optimizations. I'd prefer to have - them in the appropriate m68k.h files and use just one copy of this - code here. The API can be changed if necessary. */ - if (optimized_flags) { - switch (type) { - case flag_add: - case flag_sub: - start_brace (); - printf ("\tuae_u32 %s;\n", value); - break; + /* Temporarily deleted 68k/ARM flag optimizations. I'd prefer to have + them in the appropriate m68k.h files and use just one copy of this + code here. The API can be changed if necessary. */ + if (optimized_flags) + { + switch (type) + { + case flag_add: + case flag_sub: + start_brace (); + printf ("\tuae_u32 %s;\n", value); + break; - default: - break; - } + default: + break; + } - /* At least some of those casts are fairly important! */ - switch (type) { - case flag_logical_noclobber: - printf ("\t{uae_u32 oldcznv = GET_CZNV & ~(FLAGVAL_Z | FLAGVAL_N);\n"); - if (strcmp (value, "0") == 0) { - printf ("\tSET_CZNV (olcznv | FLAGVAL_Z);\n"); - } else { - switch (size) { - case sz_byte: printf ("\toptflag_testb (regs, (uae_s8)(%s));\n", value); break; - case sz_word: printf ("\toptflag_testw (regs, (uae_s16)(%s));\n", value); break; - case sz_long: printf ("\toptflag_testl (regs, (uae_s32)(%s));\n", value); break; - } - printf ("\tIOR_CZNV (oldcznv);\n"); - } - printf ("\t}\n"); - return; - case flag_logical: - if (strcmp (value, "0") == 0) { - printf ("\tSET_CZNV (FLAGVAL_Z);\n"); - } else { - switch (size) { - case sz_byte: printf ("\toptflag_testb (regs, (uae_s8)(%s));\n", value); break; - case sz_word: printf ("\toptflag_testw (regs, (uae_s16)(%s));\n", value); break; - case sz_long: printf ("\toptflag_testl (regs, (uae_s32)(%s));\n", value); break; - } - } - return; + /* At least some of those casts are fairly important! */ + switch (type) + { + case flag_logical_noclobber: + printf ("\t{uae_u32 oldcznv = GET_CZNV & ~(FLAGVAL_Z | FLAGVAL_N);\n"); + if (strcmp (value, "0") == 0) + { + printf ("\tSET_CZNV (olcznv | FLAGVAL_Z);\n"); + } + else + { + switch (size) + { + case sz_byte: + printf ("\toptflag_testb (regs, (uae_s8)(%s));\n", value); + break; + case sz_word: + printf ("\toptflag_testw (regs, (uae_s16)(%s));\n", value); + break; + case sz_long: + printf ("\toptflag_testl (regs, (uae_s32)(%s));\n", value); + break; + } + printf ("\tIOR_CZNV (oldcznv);\n"); + } + printf ("\t}\n"); + return; + case flag_logical: + if (strcmp (value, "0") == 0) + { + printf ("\tSET_CZNV (FLAGVAL_Z);\n"); + } + else + { + switch (size) + { + case sz_byte: + printf ("\toptflag_testb (regs, (uae_s8)(%s));\n", value); + break; + case sz_word: + printf ("\toptflag_testw (regs, (uae_s16)(%s));\n", value); + break; + case sz_long: + printf ("\toptflag_testl (regs, (uae_s32)(%s));\n", value); + break; + } + } + return; - case flag_add: - switch (size) { - case sz_byte: printf ("\toptflag_addb (regs, %s, (uae_s8)(%s), (uae_s8)(%s));\n", value, src, dst); break; - case sz_word: printf ("\toptflag_addw (regs, %s, (uae_s16)(%s), (uae_s16)(%s));\n", value, src, dst); break; - case sz_long: printf ("\toptflag_addl (regs, %s, (uae_s32)(%s), (uae_s32)(%s));\n", value, src, dst); break; - } - return; + case flag_add: + switch (size) + { + case sz_byte: + printf ("\toptflag_addb (regs, %s, (uae_s8)(%s), (uae_s8)(%s));\n", value, src, dst); + break; + case sz_word: + printf ("\toptflag_addw (regs, %s, (uae_s16)(%s), (uae_s16)(%s));\n", value, src, dst); + break; + case sz_long: + printf ("\toptflag_addl (regs, %s, (uae_s32)(%s), (uae_s32)(%s));\n", value, src, dst); + break; + } + return; - case flag_sub: - switch (size) { - case sz_byte: printf ("\toptflag_subb (regs, %s, (uae_s8)(%s), (uae_s8)(%s));\n", value, src, dst); break; - case sz_word: printf ("\toptflag_subw (regs, %s, (uae_s16)(%s), (uae_s16)(%s));\n", value, src, dst); break; - case sz_long: printf ("\toptflag_subl (regs, %s, (uae_s32)(%s), (uae_s32)(%s));\n", value, src, dst); break; - } - return; + case flag_sub: + switch (size) + { + case sz_byte: + printf ("\toptflag_subb (regs, %s, (uae_s8)(%s), (uae_s8)(%s));\n", value, src, dst); + break; + case sz_word: + printf ("\toptflag_subw (regs, %s, (uae_s16)(%s), (uae_s16)(%s));\n", value, src, dst); + break; + case sz_long: + printf ("\toptflag_subl (regs, %s, (uae_s32)(%s), (uae_s32)(%s));\n", value, src, dst); + break; + } + return; - case flag_cmp: - switch (size) { - case sz_byte: printf ("\toptflag_cmpb (regs, (uae_s8)(%s), (uae_s8)(%s));\n", src, dst); break; - case sz_word: printf ("\toptflag_cmpw (regs, (uae_s16)(%s), (uae_s16)(%s));\n", src, dst); break; - case sz_long: printf ("\toptflag_cmpl (regs, (uae_s32)(%s), (uae_s32)(%s));\n", src, dst); break; - } - return; + case flag_cmp: + switch (size) + { + case sz_byte: + printf ("\toptflag_cmpb (regs, (uae_s8)(%s), (uae_s8)(%s));\n", src, dst); + break; + case sz_word: + printf ("\toptflag_cmpw (regs, (uae_s16)(%s), (uae_s16)(%s));\n", src, dst); + break; + case sz_long: + printf ("\toptflag_cmpl (regs, (uae_s32)(%s), (uae_s32)(%s));\n", src, dst); + break; + } + return; - default: - break; - } - } + default: + break; + } + } - genflags_normal (type, size, value, src, dst); + genflags_normal (type, size, value, src, dst); } static void force_range_for_rox (const char *var, wordsizes size) { - /* Could do a modulo operation here... which one is faster? */ - switch (size) { - case sz_long: - printf ("\tif (%s >= 33) %s -= 33;\n", var, var); - break; - case sz_word: - printf ("\tif (%s >= 34) %s -= 34;\n", var, var); - printf ("\tif (%s >= 17) %s -= 17;\n", var, var); - break; - case sz_byte: - printf ("\tif (%s >= 36) %s -= 36;\n", var, var); - printf ("\tif (%s >= 18) %s -= 18;\n", var, var); - printf ("\tif (%s >= 9) %s -= 9;\n", var, var); - break; - } + /* Could do a modulo operation here... which one is faster? */ + switch (size) + { + case sz_long: + printf ("\tif (%s >= 33) %s -= 33;\n", var, var); + break; + case sz_word: + printf ("\tif (%s >= 34) %s -= 34;\n", var, var); + printf ("\tif (%s >= 17) %s -= 17;\n", var, var); + break; + case sz_byte: + printf ("\tif (%s >= 36) %s -= 36;\n", var, var); + printf ("\tif (%s >= 18) %s -= 18;\n", var, var); + printf ("\tif (%s >= 9) %s -= 9;\n", var, var); + break; + } } static const char *cmask (wordsizes size) { - switch (size) { - case sz_byte: return "0x80"; - case sz_word: return "0x8000"; - case sz_long: return "0x80000000"; - default: term (); - } + switch (size) + { + case sz_byte: + return "0x80"; + case sz_word: + return "0x8000"; + case sz_long: + return "0x80000000"; + default: + term (); + } } static int source_is_imm1_8 (struct instr *i) { - return i->stype == 3; + return i->stype == 3; } static void shift_ce (amodes dmode, int size) { - if (isreg (dmode)) { - int c = size == sz_long ? 4 : 2; - if (using_ce) { - printf ("\t{\n"); - printf ("\t\tint cycles = %d;\n", c); - printf ("\t\tcycles += 2 * cnt;\n"); - addcycles000_3 ("\t\t"); - printf ("\t}\n"); - } - addcycles000_nonces("\t", "2 * cnt"); - count_cycles += c; - count_ncycles++; - } + if (isreg (dmode)) + { + int c = size == sz_long ? 4 : 2; + if (using_ce) + { + printf ("\t{\n"); + printf ("\t\tint cycles = %d;\n", c); + printf ("\t\tcycles += 2 * cnt;\n"); + addcycles000_3 ("\t\t"); + printf ("\t}\n"); + } + addcycles000_nonces("\t", "2 * cnt"); + count_cycles += c; + count_ncycles++; + } } -// BCHG/BSET/BCLR Dx,Dx or #xx,Dx adds 2 cycles if bit number > 15 +// BCHG/BSET/BCLR Dx,Dx or #xx,Dx adds 2 cycles if bit number > 15 static void bsetcycles (struct instr *curi) { - if (curi->size == sz_byte) { - printf ("\tsrc &= 7;\n"); - } else { - printf ("\tsrc &= 31;\n"); - if (isreg (curi->dmode)) { - addcycles000 (2); - if (curi->mnemo != i_BTST) { - if (using_ce) - printf ("\tif (src > 15) %s (2);\n", do_cycles); - addcycles000_nonce("\tif (src > 15) ", 2); - count_ncycles++; - } - } - } + if (curi->size == sz_byte) + { + printf ("\tsrc &= 7;\n"); + } + else + { + printf ("\tsrc &= 31;\n"); + if (isreg (curi->dmode)) + { + addcycles000 (2); + if (curi->mnemo != i_BTST) + { + if (using_ce) + printf ("\tif (src > 15) %s (2);\n", do_cycles); + addcycles000_nonce("\tif (src > 15) ", 2); + count_ncycles++; + } + } + } } static int islongimm (struct instr *curi) { - return (curi->size == sz_long && (curi->smode == Dreg || curi->smode == imm || curi->smode == Areg)); + return (curi->size == sz_long && (curi->smode == Dreg || curi->smode == imm || curi->smode == Areg)); } static void resetvars (void) { - insn_n_cycles = using_prefetch ? 0 : 4; - insn_n_cycles020 = 0; - genamode_cnt = 0; - genamode8r_offset[0] = genamode8r_offset[1] = 0; - m68k_pc_total = 0; - branch_inst = 0; + insn_n_cycles = using_prefetch ? 0 : 4; + insn_n_cycles020 = 0; + genamode_cnt = 0; + genamode8r_offset[0] = genamode8r_offset[1] = 0; + m68k_pc_total = 0; + branch_inst = 0; - ir2irc = 0; - mmufixupcnt = 0; - mmufixupstate = 0; - disp020cnt = 0; - candormw = false; - genastore_done = false; - rmw_varname[0] = 0; - tail_ce020 = 0; - total_ce020 = 0; - tail_ce020_done = false; - head_in_ea_ce020 = 0; - head_ce020_cycs_done = false; - no_prefetch_ce020 = false; - got_ea_ce020 = false; - - prefetch_long = NULL; - srcli = NULL; - srcbi = NULL; - disp000 = "get_disp_ea_000"; - disp020 = "get_disp_ea_020"; - nextw = NULL; - nextl = NULL; - do_cycles = "do_cycles"; - srcwd = srcld = NULL; - dstwd = dstld = NULL; - srcblrmw = NULL; - srcwlrmw = NULL; - srcllrmw = NULL; - dstblrmw = NULL; - dstwlrmw = NULL; - dstllrmw = NULL; - getpc = "m68k_getpc ()"; + ir2irc = 0; + mmufixupcnt = 0; + mmufixupstate = 0; + disp020cnt = 0; + candormw = false; + genastore_done = false; + rmw_varname[0] = 0; + tail_ce020 = 0; + total_ce020 = 0; + tail_ce020_done = false; + head_in_ea_ce020 = 0; + head_ce020_cycs_done = false; + no_prefetch_ce020 = false; + got_ea_ce020 = false; - if (using_indirect > 0) { - // tracer - getpc = "m68k_getpci ()"; - if (!using_ce020 && !using_prefetch_020 && !using_ce) { - // generic + indirect - disp020 = "x_get_disp_ea_020"; - prefetch_long = "get_iilong_jit"; - prefetch_word = "get_iiword_jit"; - nextw = "next_iiword_jit"; - nextl = "next_iilong_jit"; - srcli = "get_iilong_jit"; - srcwi = "get_iiword_jit"; - srcbi = "get_iibyte_jit"; - srcl = "x_get_long"; - dstl = "x_put_long"; - srcw = "x_get_word"; - dstw = "x_put_word"; - srcb = "x_get_byte"; - dstb = "x_put_byte"; - getpc = "m68k_getpc()"; // special jit support - } else if (!using_ce020 && !using_prefetch_020) { - prefetch_word = "get_word_ce000_prefetch"; - srcli = "x_get_ilong"; - srcwi = "x_get_iword"; - srcbi = "x_get_ibyte"; - srcl = "x_get_long"; - dstl = "x_put_long"; - srcw = "x_get_word"; - dstw = "x_put_word"; - srcb = "x_get_byte"; - dstb = "x_put_byte"; - do_cycles = "do_cycles_ce000_internal"; - } else if (using_ce020 == 1) { - /* x_ not used if it redirects to - * get_word_ce020_prefetch() - */ - disp020 = "x_get_disp_ea_ce020"; - prefetch_word = "get_word_ce020_prefetch"; - prefetch_long = "get_long_ce020_prefetch"; - srcli = "x_get_ilong"; - srcwi = "x_get_iword"; - srcbi = "x_get_ibyte"; - srcl = "x_get_long"; - dstl = "x_put_long"; - srcw = "x_get_word"; - dstw = "x_put_word"; - srcb = "x_get_byte"; - dstb = "x_put_byte"; - do_cycles = "do_cycles_ce020_internal"; - nextw = "next_iword_020ce"; - nextl = "next_ilong_020ce"; - } else if (using_ce020 == 2) { - // 68030 CE - disp020 = "x_get_disp_ea_ce030"; - prefetch_long = "get_long_ce030_prefetch"; - prefetch_word = "get_word_ce030_prefetch"; - srcli = "x_get_ilong"; - srcwi = "x_get_iword"; - srcbi = "x_get_ibyte"; - srcl = "x_get_long"; - dstl = "x_put_long"; - srcw = "x_get_word"; - dstw = "x_put_word"; - srcb = "x_get_byte"; - dstb = "x_put_byte"; - do_cycles = "do_cycles_ce020_internal"; - nextw = "next_iword_030ce"; - nextl = "next_ilong_030ce"; - } else if (using_ce020 == 3) { - // 68040/060 CE - disp020 = "x_get_disp_ea_040"; - prefetch_long = "get_ilong_cache_040"; - prefetch_word = "get_iword_cache_040"; - srcli = "x_get_ilong"; - srcwi = "x_get_iword"; - srcbi = "x_get_ibyte"; - srcl = "x_get_long"; - dstl = "x_put_long"; - srcw = "x_get_word"; - dstw = "x_put_word"; - srcb = "x_get_byte"; - dstb = "x_put_byte"; - do_cycles = "do_cycles_ce020_internal"; - nextw = "next_iword_cache040"; - nextl = "next_ilong_cache040"; - } else if (using_prefetch_020 == 1) { - disp020 = "x_get_disp_ea_020"; - prefetch_word = "get_word_020_prefetch"; - prefetch_long = "get_long_020_prefetch"; - srcli = "x_get_ilong"; - srcwi = "x_get_iword"; - srcbi = "x_get_ibyte"; - srcl = "x_get_long"; - dstl = "x_put_long"; - srcw = "x_get_word"; - dstw = "x_put_word"; - srcb = "x_get_byte"; - dstb = "x_put_byte"; - nextw = "next_iword_020_prefetch"; - nextl = "next_ilong_020_prefetch"; - } else if (using_prefetch_020 == 2) { - disp020 = "x_get_disp_ea_020"; - prefetch_word = "get_word_030_prefetch"; - prefetch_long = "get_long_030_prefetch"; - srcli = "x_get_ilong"; - srcwi = "x_get_iword"; - srcbi = "x_get_ibyte"; - srcl = "x_get_long"; - dstl = "x_put_long"; - srcw = "x_get_word"; - dstw = "x_put_word"; - srcb = "x_get_byte"; - dstb = "x_put_byte"; - nextw = "next_iword_030_prefetch"; - nextl = "next_ilong_030_prefetch"; - } + prefetch_long = NULL; + srcli = NULL; + srcbi = NULL; + disp000 = "get_disp_ea_000"; + disp020 = "get_disp_ea_020"; + nextw = NULL; + nextl = NULL; + do_cycles = "do_cycles"; + srcwd = srcld = NULL; + dstwd = dstld = NULL; + srcblrmw = NULL; + srcwlrmw = NULL; + srcllrmw = NULL; + dstblrmw = NULL; + dstwlrmw = NULL; + dstllrmw = NULL; + getpc = "m68k_getpc ()"; + + if (using_indirect > 0) + { + // tracer + getpc = "m68k_getpci ()"; + if (!using_ce020 && !using_prefetch_020 && !using_ce) + { + // generic + indirect + disp020 = "x_get_disp_ea_020"; + prefetch_long = "get_iilong_jit"; + prefetch_word = "get_iiword_jit"; + nextw = "next_iiword_jit"; + nextl = "next_iilong_jit"; + srcli = "get_iilong_jit"; + srcwi = "get_iiword_jit"; + srcbi = "get_iibyte_jit"; + srcl = "x_get_long"; + dstl = "x_put_long"; + srcw = "x_get_word"; + dstw = "x_put_word"; + srcb = "x_get_byte"; + dstb = "x_put_byte"; + getpc = "m68k_getpc()"; // special jit support + } + else if (!using_ce020 && !using_prefetch_020) + { + prefetch_word = "get_word_ce000_prefetch"; + srcli = "x_get_ilong"; + srcwi = "x_get_iword"; + srcbi = "x_get_ibyte"; + srcl = "x_get_long"; + dstl = "x_put_long"; + srcw = "x_get_word"; + dstw = "x_put_word"; + srcb = "x_get_byte"; + dstb = "x_put_byte"; + do_cycles = "do_cycles_ce000_internal"; + } + else if (using_ce020 == 1) + { + /* x_ not used if it redirects to + * get_word_ce020_prefetch() + */ + disp020 = "x_get_disp_ea_ce020"; + prefetch_word = "get_word_ce020_prefetch"; + prefetch_long = "get_long_ce020_prefetch"; + srcli = "x_get_ilong"; + srcwi = "x_get_iword"; + srcbi = "x_get_ibyte"; + srcl = "x_get_long"; + dstl = "x_put_long"; + srcw = "x_get_word"; + dstw = "x_put_word"; + srcb = "x_get_byte"; + dstb = "x_put_byte"; + do_cycles = "do_cycles_ce020_internal"; + nextw = "next_iword_020ce"; + nextl = "next_ilong_020ce"; + } + else if (using_ce020 == 2) + { + // 68030 CE + disp020 = "x_get_disp_ea_ce030"; + prefetch_long = "get_long_ce030_prefetch"; + prefetch_word = "get_word_ce030_prefetch"; + srcli = "x_get_ilong"; + srcwi = "x_get_iword"; + srcbi = "x_get_ibyte"; + srcl = "x_get_long"; + dstl = "x_put_long"; + srcw = "x_get_word"; + dstw = "x_put_word"; + srcb = "x_get_byte"; + dstb = "x_put_byte"; + do_cycles = "do_cycles_ce020_internal"; + nextw = "next_iword_030ce"; + nextl = "next_ilong_030ce"; + } + else if (using_ce020 == 3) + { + // 68040/060 CE + disp020 = "x_get_disp_ea_040"; + prefetch_long = "get_ilong_cache_040"; + prefetch_word = "get_iword_cache_040"; + srcli = "x_get_ilong"; + srcwi = "x_get_iword"; + srcbi = "x_get_ibyte"; + srcl = "x_get_long"; + dstl = "x_put_long"; + srcw = "x_get_word"; + dstw = "x_put_word"; + srcb = "x_get_byte"; + dstb = "x_put_byte"; + do_cycles = "do_cycles_ce020_internal"; + nextw = "next_iword_cache040"; + nextl = "next_ilong_cache040"; + } + else if (using_prefetch_020 == 1) + { + disp020 = "x_get_disp_ea_020"; + prefetch_word = "get_word_020_prefetch"; + prefetch_long = "get_long_020_prefetch"; + srcli = "x_get_ilong"; + srcwi = "x_get_iword"; + srcbi = "x_get_ibyte"; + srcl = "x_get_long"; + dstl = "x_put_long"; + srcw = "x_get_word"; + dstw = "x_put_word"; + srcb = "x_get_byte"; + dstb = "x_put_byte"; + nextw = "next_iword_020_prefetch"; + nextl = "next_ilong_020_prefetch"; + } + else if (using_prefetch_020 == 2) + { + disp020 = "x_get_disp_ea_020"; + prefetch_word = "get_word_030_prefetch"; + prefetch_long = "get_long_030_prefetch"; + srcli = "x_get_ilong"; + srcwi = "x_get_iword"; + srcbi = "x_get_ibyte"; + srcl = "x_get_long"; + dstl = "x_put_long"; + srcw = "x_get_word"; + dstw = "x_put_word"; + srcb = "x_get_byte"; + dstb = "x_put_byte"; + nextw = "next_iword_030_prefetch"; + nextl = "next_ilong_030_prefetch"; + } #if 0 - } else if (using_ce020) { - disp020 = "x_get_disp_ea_020"; - do_cycles = "do_cycles_ce020"; - if (using_ce020 == 2) { - // 68030/40/60 CE - prefetch_long = "get_long_ce030_prefetch"; - prefetch_word = "get_word_ce030_prefetch"; - nextw = "next_iword_030ce"; - nextl = "next_ilong_030ce"; - srcli = "get_word_ce030_prefetch"; - srcwi = "get_long_ce030_prefetch"; - srcl = "get_long_ce030"; - dstl = "put_long_ce030"; - srcw = "get_word_ce030"; - dstw = "put_word_ce030"; - srcb = "get_byte_ce030"; - dstb = "put_byte_ce030"; - } else { - // 68020 CE - prefetch_long = "get_long_ce020_prefetch"; - prefetch_word = "get_word_ce020_prefetch"; - nextw = "next_iword_020ce"; - nextl = "next_ilong_020ce"; - srcli = "get_word_ce020_prefetch"; - srcwi = "get_long_ce020_prefetch"; - srcl = "get_long_ce020"; - dstl = "put_long_ce020"; - srcw = "get_word_ce020"; - dstw = "put_word_ce020"; - srcb = "get_byte_ce020"; - dstb = "put_byte_ce020"; - } + } + else if (using_ce020) + { + disp020 = "x_get_disp_ea_020"; + do_cycles = "do_cycles_ce020"; + if (using_ce020 == 2) + { + // 68030/40/60 CE + prefetch_long = "get_long_ce030_prefetch"; + prefetch_word = "get_word_ce030_prefetch"; + nextw = "next_iword_030ce"; + nextl = "next_ilong_030ce"; + srcli = "get_word_ce030_prefetch"; + srcwi = "get_long_ce030_prefetch"; + srcl = "get_long_ce030"; + dstl = "put_long_ce030"; + srcw = "get_word_ce030"; + dstw = "put_word_ce030"; + srcb = "get_byte_ce030"; + dstb = "put_byte_ce030"; + } + else + { + // 68020 CE + prefetch_long = "get_long_ce020_prefetch"; + prefetch_word = "get_word_ce020_prefetch"; + nextw = "next_iword_020ce"; + nextl = "next_ilong_020ce"; + srcli = "get_word_ce020_prefetch"; + srcwi = "get_long_ce020_prefetch"; + srcl = "get_long_ce020"; + dstl = "put_long_ce020"; + srcw = "get_word_ce020"; + dstw = "put_word_ce020"; + srcb = "get_byte_ce020"; + dstb = "put_byte_ce020"; + } #endif - } else if (using_mmu == 68030) { - // 68030 MMU - disp020 = "get_disp_ea_020_mmu030"; - prefetch_long = "get_ilong_mmu030_state"; - prefetch_word = "get_iword_mmu030_state"; - nextw = "next_iword_mmu030_state"; - nextl = "next_ilong_mmu030_state"; - srcli = "get_ilong_mmu030_state"; - srcwi = "get_iword_mmu030_state"; - srcbi = "get_ibyte_mmu030_state"; - srcl = "get_long_mmu030_state"; - dstl = "put_long_mmu030_state"; - srcw = "get_word_mmu030_state"; - dstw = "put_word_mmu030_state"; - srcb = "get_byte_mmu030_state"; - dstb = "put_byte_mmu030_state"; - srcblrmw = "get_lrmw_byte_mmu030_state"; - srcwlrmw = "get_lrmw_word_mmu030_state"; - srcllrmw = "get_lrmw_long_mmu030_state"; - dstblrmw = "put_lrmw_byte_mmu030_state"; - dstwlrmw = "put_lrmw_word_mmu030_state"; - dstllrmw = "put_lrmw_long_mmu030_state"; - srcld = "get_long_mmu030"; - srcwd = "get_word_mmu030"; - dstld = "put_long_mmu030"; - dstwd = "put_word_mmu030"; - getpc = "m68k_getpci ()"; - } else if (using_mmu == 68040) { - // 68040 MMU - disp020 = "x_get_disp_ea_020"; - prefetch_long = "get_ilong_mmu040"; - prefetch_word = "get_iword_mmu040"; - nextw = "next_iword_mmu040"; - nextl = "next_ilong_mmu040"; - srcli = "get_ilong_mmu040"; - srcwi = "get_iword_mmu040"; - srcbi = "get_ibyte_mmu040"; - srcl = "get_long_mmu040"; - dstl = "put_long_mmu040"; - srcw = "get_word_mmu040"; - dstw = "put_word_mmu040"; - srcb = "get_byte_mmu040"; - dstb = "put_byte_mmu040"; - srcblrmw = "get_lrmw_byte_mmu040"; - srcwlrmw = "get_lrmw_word_mmu040"; - srcllrmw = "get_lrmw_long_mmu040"; - dstblrmw = "put_lrmw_byte_mmu040"; - dstwlrmw = "put_lrmw_word_mmu040"; - dstllrmw = "put_lrmw_long_mmu040"; - getpc = "m68k_getpci ()"; - } else if (using_mmu) { - // 68060 MMU - disp020 = "x_get_disp_ea_020"; - prefetch_long = "get_ilong_mmu060"; - prefetch_word = "get_iword_mmu060"; - nextw = "next_iword_mmu060"; - nextl = "next_ilong_mmu060"; - srcli = "get_ilong_mmu060"; - srcwi = "get_iword_mmu060"; - srcbi = "get_ibyte_mmu060"; - srcl = "get_long_mmu060"; - dstl = "put_long_mmu060"; - srcw = "get_word_mmu060"; - dstw = "put_word_mmu060"; - srcb = "get_byte_mmu060"; - dstb = "put_byte_mmu060"; - srcblrmw = "get_lrmw_byte_mmu060"; - srcwlrmw = "get_lrmw_word_mmu060"; - srcllrmw = "get_lrmw_long_mmu060"; - dstblrmw = "put_lrmw_byte_mmu060"; - dstwlrmw = "put_lrmw_word_mmu060"; - dstllrmw = "put_lrmw_long_mmu060"; - // 68060 only: also non-locked read-modify-write accesses are reported - srcbrmw = "get_rmw_byte_mmu060"; - srcwrmw = "get_rmw_word_mmu060"; - srclrmw = "get_rmw_long_mmu060"; - dstbrmw = "put_rmw_byte_mmu060"; - dstwrmw = "put_rmw_word_mmu060"; - dstlrmw = "put_rmw_long_mmu060"; - getpc = "m68k_getpci ()"; - } else if (using_ce) { - // 68000 ce - prefetch_word = "get_word_ce000_prefetch"; - srcwi = "get_wordi_ce000"; - srcl = "get_long_ce000"; - dstl = "put_long_ce000"; - srcw = "get_word_ce000"; - dstw = "put_word_ce000"; - srcb = "get_byte_ce000"; - dstb = "put_byte_ce000"; - do_cycles = "do_cycles_ce000"; - getpc = "m68k_getpci ()"; - } else if (using_prefetch) { - // 68000 prefetch - prefetch_word = "get_word_prefetch"; - prefetch_long = "get_long_prefetch"; - srcwi = "get_wordi"; - srcl = "get_long"; - dstl = "put_long"; - srcw = "get_word"; - dstw = "put_word"; - srcb = "get_byte"; - dstb = "put_byte"; - getpc = "m68k_getpc ()"; - } else { - // generic + direct - prefetch_long = "get_ilong"; - prefetch_word = "get_iword"; - nextw = "next_iword"; - nextl = "next_ilong"; - srcli = "get_ilong"; - srcwi = "get_iword"; - srcbi = "get_ibyte"; - if (using_indirect < 0) { - srcl = "get_long_jit"; - dstl = "put_long_jit"; - srcw = "get_word_jit"; - dstw = "put_word_jit"; - srcb = "get_byte_jit"; - dstb = "put_byte_jit"; - } else { - srcl = "get_long"; - dstl = "put_long"; - srcw = "get_word"; - dstw = "put_word"; - srcb = "get_byte"; - dstb = "put_byte"; - } - } - if (!dstld) - dstld = dstl; - if (!dstwd) - dstwd = dstw; - if (!srcld) - srcld = srcl; - if (!srcwd) - srcwd = srcw; - if (!srcblrmw) { - srcblrmw = srcb; - srcwlrmw = srcw; - srcllrmw = srcl; - dstblrmw = dstb; - dstwlrmw = dstw; - dstllrmw = dstl; - } + } + else if (using_mmu == 68030) + { + // 68030 MMU + disp020 = "get_disp_ea_020_mmu030"; + prefetch_long = "get_ilong_mmu030_state"; + prefetch_word = "get_iword_mmu030_state"; + nextw = "next_iword_mmu030_state"; + nextl = "next_ilong_mmu030_state"; + srcli = "get_ilong_mmu030_state"; + srcwi = "get_iword_mmu030_state"; + srcbi = "get_ibyte_mmu030_state"; + srcl = "get_long_mmu030_state"; + dstl = "put_long_mmu030_state"; + srcw = "get_word_mmu030_state"; + dstw = "put_word_mmu030_state"; + srcb = "get_byte_mmu030_state"; + dstb = "put_byte_mmu030_state"; + srcblrmw = "get_lrmw_byte_mmu030_state"; + srcwlrmw = "get_lrmw_word_mmu030_state"; + srcllrmw = "get_lrmw_long_mmu030_state"; + dstblrmw = "put_lrmw_byte_mmu030_state"; + dstwlrmw = "put_lrmw_word_mmu030_state"; + dstllrmw = "put_lrmw_long_mmu030_state"; + srcld = "get_long_mmu030"; + srcwd = "get_word_mmu030"; + dstld = "put_long_mmu030"; + dstwd = "put_word_mmu030"; + getpc = "m68k_getpci ()"; + } + else if (using_mmu == 68040) + { + // 68040 MMU + disp020 = "x_get_disp_ea_020"; + prefetch_long = "get_ilong_mmu040"; + prefetch_word = "get_iword_mmu040"; + nextw = "next_iword_mmu040"; + nextl = "next_ilong_mmu040"; + srcli = "get_ilong_mmu040"; + srcwi = "get_iword_mmu040"; + srcbi = "get_ibyte_mmu040"; + srcl = "get_long_mmu040"; + dstl = "put_long_mmu040"; + srcw = "get_word_mmu040"; + dstw = "put_word_mmu040"; + srcb = "get_byte_mmu040"; + dstb = "put_byte_mmu040"; + srcblrmw = "get_lrmw_byte_mmu040"; + srcwlrmw = "get_lrmw_word_mmu040"; + srcllrmw = "get_lrmw_long_mmu040"; + dstblrmw = "put_lrmw_byte_mmu040"; + dstwlrmw = "put_lrmw_word_mmu040"; + dstllrmw = "put_lrmw_long_mmu040"; + getpc = "m68k_getpci ()"; + } + else if (using_mmu) + { + // 68060 MMU + disp020 = "x_get_disp_ea_020"; + prefetch_long = "get_ilong_mmu060"; + prefetch_word = "get_iword_mmu060"; + nextw = "next_iword_mmu060"; + nextl = "next_ilong_mmu060"; + srcli = "get_ilong_mmu060"; + srcwi = "get_iword_mmu060"; + srcbi = "get_ibyte_mmu060"; + srcl = "get_long_mmu060"; + dstl = "put_long_mmu060"; + srcw = "get_word_mmu060"; + dstw = "put_word_mmu060"; + srcb = "get_byte_mmu060"; + dstb = "put_byte_mmu060"; + srcblrmw = "get_lrmw_byte_mmu060"; + srcwlrmw = "get_lrmw_word_mmu060"; + srcllrmw = "get_lrmw_long_mmu060"; + dstblrmw = "put_lrmw_byte_mmu060"; + dstwlrmw = "put_lrmw_word_mmu060"; + dstllrmw = "put_lrmw_long_mmu060"; + // 68060 only: also non-locked read-modify-write accesses are reported + srcbrmw = "get_rmw_byte_mmu060"; + srcwrmw = "get_rmw_word_mmu060"; + srclrmw = "get_rmw_long_mmu060"; + dstbrmw = "put_rmw_byte_mmu060"; + dstwrmw = "put_rmw_word_mmu060"; + dstlrmw = "put_rmw_long_mmu060"; + getpc = "m68k_getpci ()"; + } + else if (using_ce) + { + // 68000 ce + prefetch_word = "get_word_ce000_prefetch"; + srcwi = "get_wordi_ce000"; + srcl = "get_long_ce000"; + dstl = "put_long_ce000"; + srcw = "get_word_ce000"; + dstw = "put_word_ce000"; + srcb = "get_byte_ce000"; + dstb = "put_byte_ce000"; + do_cycles = "do_cycles_ce000"; + getpc = "m68k_getpci ()"; + } + else if (using_prefetch) + { + // 68000 prefetch + prefetch_word = "get_word_prefetch"; + prefetch_long = "get_long_prefetch"; + srcwi = "get_wordi"; + srcl = "get_long"; + dstl = "put_long"; + srcw = "get_word"; + dstw = "put_word"; + srcb = "get_byte"; + dstb = "put_byte"; + getpc = "m68k_getpc ()"; + } + else + { + // generic + direct + prefetch_long = "get_ilong"; + prefetch_word = "get_iword"; + nextw = "next_iword"; + nextl = "next_ilong"; + srcli = "get_ilong"; + srcwi = "get_iword"; + srcbi = "get_ibyte"; + if (using_indirect < 0) + { + srcl = "get_long_jit"; + dstl = "put_long_jit"; + srcw = "get_word_jit"; + dstw = "put_word_jit"; + srcb = "get_byte_jit"; + dstb = "put_byte_jit"; + } + else + { + srcl = "get_long"; + dstl = "put_long"; + srcw = "get_word"; + dstw = "put_word"; + srcb = "get_byte"; + dstb = "put_byte"; + } + } + if (!dstld) + dstld = dstl; + if (!dstwd) + dstwd = dstw; + if (!srcld) + srcld = srcl; + if (!srcwd) + srcwd = srcw; + if (!srcblrmw) + { + srcblrmw = srcb; + srcwlrmw = srcw; + srcllrmw = srcl; + dstblrmw = dstb; + dstwlrmw = dstw; + dstllrmw = dstl; + } } static void gen_opcode (unsigned int opcode) { - struct instr *curi = table68k + opcode; + struct instr *curi = table68k + opcode; - resetvars (); - - if(curi->mnemo == i_DIVL) - printf ("\tuae_u32 cyc = 0;\n"); + resetvars (); - start_brace (); + if(curi->mnemo == i_DIVL) + printf ("\tuae_u32 cyc = 0;\n"); - m68k_pc_offset = 2; + start_brace (); - switch (curi->plev) { - case 0: /* not privileged */ - break; - case 1: /* unprivileged only on 68000 */ - if (cpu_level == 0) - break; - if (next_cpu_level < 0) - next_cpu_level = 0; + m68k_pc_offset = 2; - /* fall through */ - case 2: /* priviledged */ - printf ("if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; }\n"); - start_brace (); - break; - case 3: /* privileged if size == word */ - if (curi->size == sz_byte) - break; - printf ("if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; }\n"); - start_brace (); - break; - } - switch (curi->mnemo) { - case i_OR: - case i_AND: - case i_EOR: - { - // documentaion error: and.l #imm,dn = 2 idle, not 1 idle (same as OR and EOR) - int c = 0; - genamodedual (curi, - curi->smode, "srcreg", curi->size, "src", 1, 0, - curi->dmode, "dstreg", curi->size, "dst", 1, GF_RMW); + switch (curi->plev) + { + case 0: /* not privileged */ + break; + case 1: /* unprivileged only on 68000 */ + if (cpu_level == 0) + break; + if (next_cpu_level < 0) + next_cpu_level = 0; + + /* fall through */ + case 2: /* priviledged */ + printf ("if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; }\n"); + start_brace (); + break; + case 3: /* privileged if size == word */ + if (curi->size == sz_byte) + break; + printf ("if (!regs.s) { Exception (8); return 4 * CYCLE_UNIT / 2; }\n"); + start_brace (); + break; + } + switch (curi->mnemo) + { + case i_OR: + case i_AND: + case i_EOR: + { + // documentaion error: and.l #imm,dn = 2 idle, not 1 idle (same as OR and EOR) + int c = 0; + genamodedual (curi, + curi->smode, "srcreg", curi->size, "src", 1, 0, + curi->dmode, "dstreg", curi->size, "dst", 1, GF_RMW); // genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); // genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, GF_RMW); - printf ("\tsrc %c= dst;\n", curi->mnemo == i_OR ? '|' : curi->mnemo == i_AND ? '&' : '^'); - genflags (flag_logical, curi->size, "src", "", ""); - if (curi->dmode == Dreg && curi->size == sz_long) { - c += 2; - if (curi->smode == imm || curi->smode == Dreg) - c += 2; - } - fill_prefetch_next (); - if (c > 0) - addcycles000 (c); - genastore_rev ("src", curi->dmode, "dstreg", curi->size, "dst"); - break; - } - // all SR/CCR modifications does full prefetch - case i_ORSR: - case i_EORSR: - printf ("\tMakeSR (regs);\n"); - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - if (curi->size == sz_byte) { - printf ("\tsrc &= 0xFF;\n"); - } - addcycles000 (8); - if (cpu_level <= 1) { - sync_m68k_pc (); - fill_prefetch_full (); - } else { - fill_prefetch_next (); - } - printf ("\tregs.sr %c= src;\n", curi->mnemo == i_EORSR ? '^' : '|'); - makefromsr (); - break; - case i_ANDSR: - printf ("\tMakeSR (regs);\n"); - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - if (curi->size == sz_byte) { - printf ("\tsrc |= 0xFF00;\n"); - } - addcycles000 (8); - if (cpu_level <= 1) { - sync_m68k_pc (); - fill_prefetch_full (); - } else { - fill_prefetch_next (); - } - printf ("\tregs.sr &= src;\n"); - makefromsr (); - break; - case i_SUB: - { - int c = 0; - genamodedual (curi, - curi->smode, "srcreg", curi->size, "src", 1, 0, - curi->dmode, "dstreg", curi->size, "dst", 1, GF_RMW); - //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - //genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, GF_RMW); - if (curi->dmode == Dreg) { - if (curi->size == sz_long) { - c += 2; - if (curi->smode == imm || curi->smode == immi || curi->smode == Dreg || curi->smode == Areg) - c += 2; - } - } - fill_prefetch_next (); - if (c > 0) - addcycles000 (c); - start_brace (); - genflags (flag_sub, curi->size, "newv", "src", "dst"); - genastore_rev ("newv", curi->dmode, "dstreg", curi->size, "dst"); - break; - } - case i_SUBA: - { - int c = 0; - genamodedual (curi, - curi->smode, "srcreg", curi->size, "src", 1, 0, - curi->dmode, "dstreg", sz_long, "dst", 1, GF_RMW); - //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - //genamode (curi, curi->dmode, "dstreg", sz_long, "dst", 1, 0, GF_RMW); - if (curi->smode == immi) { - // SUBAQ.x is always 8 cycles - c += 4; - } else { - c = curi->size == sz_long ? 2 : 4; - if (islongimm (curi)) - c += 2; - } - fill_prefetch_next (); - if (c > 0) - addcycles000 (c); - start_brace (); - printf ("\tuae_u32 newv = dst - src;\n"); - genastore ("newv", curi->dmode, "dstreg", sz_long, "dst"); - break; - } - case i_SUBX: - if (!isreg (curi->smode)) - addcycles000 (2); - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_AA); - genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, GF_AA | GF_RMW); - fill_prefetch_next (); - if (curi->size == sz_long && isreg (curi->smode)) - addcycles000 (4); - start_brace (); - printf ("\tuae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0);\n"); - genflags (flag_subx, curi->size, "newv", "src", "dst"); - genflags (flag_zn, curi->size, "newv", "", ""); - genastore ("newv", curi->dmode, "dstreg", curi->size, "dst"); - break; - case i_SBCD: - if (!isreg (curi->smode)) - addcycles000 (2); - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_AA); - genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, GF_AA | GF_RMW); - fill_prefetch_next (); - start_brace (); - printf ("\tuae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG () ? 1 : 0);\n"); - printf ("\tuae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0);\n"); - printf ("\tuae_u16 newv, tmp_newv;\n"); - printf ("\tint bcd = 0;\n"); - printf ("\tnewv = tmp_newv = newv_hi + newv_lo;\n"); - printf ("\tif (newv_lo & 0xF0) { newv -= 6; bcd = 6; };\n"); - printf ("\tif ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG () ? 1 : 0)) & 0x100) > 0xFF) { newv -= 0x60; }\n"); - printf ("\tSET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG () ? 1 : 0)) & 0x300) > 0xFF);\n"); - duplicate_carry (0); - /* Manual says bits NV are undefined though a real 68040/060 don't change them */ - if (cpu_level >= xBCD_KEEPS_NV_FLAGS) { - if (next_cpu_level < xBCD_KEEPS_NV_FLAGS) - next_cpu_level = xBCD_KEEPS_NV_FLAGS - 1; - genflags (flag_z, curi->size, "newv", "", ""); - } else { - genflags (flag_zn, curi->size, "newv", "", ""); - printf ("\tSET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0);\n"); - } - if (isreg (curi->smode)) { - addcycles000 (2); - } - genastore ("newv", curi->dmode, "dstreg", curi->size, "dst"); - break; - case i_ADD: - { - int c = 0; - genamodedual (curi, - curi->smode, "srcreg", curi->size, "src", 1, 0, - curi->dmode, "dstreg", curi->size, "dst", 1, GF_RMW); - //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - //genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, GF_RMW); - if (curi->dmode == Dreg) { - if (curi->size == sz_long) { - c += 2; - if (curi->smode == imm || curi->smode == immi || curi->smode == Dreg || curi->smode == Areg) - c += 2; - } - } - fill_prefetch_next (); - if (c > 0) - addcycles000 (c); - start_brace (); - genflags (flag_add, curi->size, "newv", "src", "dst"); - genastore_rev ("newv", curi->dmode, "dstreg", curi->size, "dst"); - break; - } - case i_ADDA: - { - int c = 0; - genamodedual (curi, - curi->smode, "srcreg", curi->size, "src", 1, 0, - curi->dmode, "dstreg", sz_long, "dst", 1, GF_RMW); - //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - //genamode (curi, curi->dmode, "dstreg", sz_long, "dst", 1, 0, GF_RMW); - if (curi->smode == immi) { - // ADDAQ.x is always 8 cycles - c += 4; - } else { - c = curi->size == sz_long ? 2 : 4; - if (islongimm (curi)) - c += 2; - } - fill_prefetch_next (); - if (c > 0) - addcycles000 (c); - start_brace (); - printf ("\tuae_u32 newv = dst + src;\n"); - genastore ("newv", curi->dmode, "dstreg", sz_long, "dst"); - break; - } - case i_ADDX: - if (!isreg (curi->smode)) - addcycles000 (2); - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_AA); - genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, GF_AA | GF_RMW); - fill_prefetch_next (); - if (curi->size == sz_long && isreg (curi->smode)) - addcycles000 (4); - start_brace (); - printf ("\tuae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0);\n"); - genflags (flag_addx, curi->size, "newv", "src", "dst"); - genflags (flag_zn, curi->size, "newv", "", ""); - genastore ("newv", curi->dmode, "dstreg", curi->size, "dst"); - break; - case i_ABCD: - if (!isreg (curi->smode)) - addcycles000 (2); - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_AA); - genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, GF_AA | GF_RMW); - fill_prefetch_next (); - start_brace (); - printf ("\tuae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG () ? 1 : 0);\n"); - printf ("\tuae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0);\n"); - printf ("\tuae_u16 newv, tmp_newv;\n"); - printf ("\tint cflg;\n"); - printf ("\tnewv = tmp_newv = newv_hi + newv_lo;\n"); - printf ("\tif (newv_lo > 9) { newv += 6; }\n"); - printf ("\tcflg = (newv & 0x3F0) > 0x90;\n"); - printf ("\tif (cflg) newv += 0x60;\n"); - printf ("\tSET_CFLG (cflg);\n"); - duplicate_carry (0); - /* Manual says bits NV are undefined though a real 68040 don't change them */ - if (cpu_level >= xBCD_KEEPS_NV_FLAGS) { - if (next_cpu_level < xBCD_KEEPS_NV_FLAGS) - next_cpu_level = xBCD_KEEPS_NV_FLAGS - 1; - genflags (flag_z, curi->size, "newv", "", ""); - } - else { - genflags (flag_zn, curi->size, "newv", "", ""); - printf ("\tSET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0);\n"); - } - if (isreg (curi->smode)) { - addcycles000 (2); - } - genastore ("newv", curi->dmode, "dstreg", curi->size, "dst"); - break; - case i_NEG: - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_RMW); - fill_prefetch_next (); - if (isreg (curi->smode) && curi->size == sz_long) - addcycles000 (2); - start_brace (); - genflags (flag_sub, curi->size, "dst", "src", "0"); - genastore_rev ("dst", curi->smode, "srcreg", curi->size, "src"); - break; - case i_NEGX: - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_RMW); - fill_prefetch_next (); - if (isreg (curi->smode) && curi->size == sz_long) - addcycles000 (2); - start_brace (); - printf ("\tuae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0);\n"); - genflags (flag_subx, curi->size, "newv", "src", "0"); - genflags (flag_zn, curi->size, "newv", "", ""); - genastore_rev ("newv", curi->smode, "srcreg", curi->size, "src"); - break; - case i_NBCD: - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_RMW); - if (isreg (curi->smode)) - addcycles000 (2); - fill_prefetch_next (); - start_brace (); - printf ("\tuae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0);\n"); - printf ("\tuae_u16 newv_hi = - (src & 0xF0);\n"); - printf ("\tuae_u16 newv;\n"); - printf ("\tint cflg, tmp_newv;\n"); - printf ("\tif (newv_lo > 9) { newv_lo -= 6; }\n"); - printf ("\ttmp_newv = newv = newv_hi + newv_lo;\n"); - printf ("\tcflg = (newv & 0x1F0) > 0x90;\n"); - printf ("\tif (cflg) newv -= 0x60;\n"); - printf ("\tSET_CFLG (cflg);\n"); - duplicate_carry(0); - /* Manual says bits NV are undefined though a real 68040 don't change them */ - if (cpu_level >= xBCD_KEEPS_NV_FLAGS) { - if (next_cpu_level < xBCD_KEEPS_NV_FLAGS) - next_cpu_level = xBCD_KEEPS_NV_FLAGS - 1; - genflags (flag_z, curi->size, "newv", "", ""); - } - else { - genflags (flag_zn, curi->size, "newv", "", ""); - printf ("\tSET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0);\n"); - } - genastore ("newv", curi->smode, "srcreg", curi->size, "src"); - break; - case i_CLR: - //next_level_000 (); - genamode (curi, curi->smode, "srcreg", curi->size, "src", cpu_level == 0 ? 1 : 2, 0, 0); - fill_prefetch_next (); - if(!using_prefetch && curi->smode != Dreg) { - if(curi->size != sz_long) - addcycles000(4); - else - addcycles000(8); + printf ("\tsrc %c= dst;\n", curi->mnemo == i_OR ? '|' : curi->mnemo == i_AND ? '&' : '^'); + genflags (flag_logical, curi->size, "src", "", ""); + if (curi->dmode == Dreg && curi->size == sz_long) + { + c += 2; + if (curi->smode == imm || curi->smode == Dreg) + c += 2; + } + fill_prefetch_next (); + if (c > 0) + addcycles000 (c); + genastore_rev ("src", curi->dmode, "dstreg", curi->size, "dst"); + break; } - if (isreg (curi->smode) && curi->size == sz_long) - addcycles000 (2); - genflags (flag_logical, curi->size, "0", "", ""); - genastore_rev ("0", curi->smode, "srcreg", curi->size, "src"); - break; - case i_NOT: - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_RMW); - fill_prefetch_next (); - if (isreg (curi->smode) && curi->size == sz_long) - addcycles000 (2); - start_brace (); - printf ("\tuae_u32 dst = ~src;\n"); - genflags (flag_logical, curi->size, "dst", "", ""); - genastore_rev ("dst", curi->smode, "srcreg", curi->size, "src"); - break; - case i_TST: - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - fill_prefetch_next (); - genflags (flag_logical, curi->size, "src", "", ""); - break; - case i_BTST: - genamodedual (curi, - curi->smode, "srcreg", curi->size, "src", 1, 0, - curi->dmode, "dstreg", curi->size, "dst", 1, 0); - //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - //genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, GF_IR2IRC); - fill_prefetch_next (); - bsetcycles (curi); - printf ("\tSET_ZFLG (1 ^ ((dst >> src) & 1));\n"); - break; - case i_BCHG: - case i_BCLR: - case i_BSET: - // on 68000 these have weird side-effect, if EA points to write-only custom register - //during instruction's read access CPU data lines appear as zero to outside world, - // (normally previously fetched data appears in data lines if reading write-only register) - // this allows stupid things like bset #2,$dff096 to work "correctly" - // NOTE: above can't be right. - genamodedual (curi, - curi->smode, "srcreg", curi->size, "src", 1, 0, - curi->dmode, "dstreg", curi->size, "dst", 1, GF_RMW); - //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - //genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, GF_IR2IRC | GF_RMW); - fill_prefetch_next (); - bsetcycles (curi); - // bclr needs 1 extra cycle - if (curi->mnemo == i_BCLR && curi->dmode == Dreg) - addcycles000 (2); - if (curi->mnemo == i_BCHG) { - printf ("\tdst ^= (1 << src);\n"); - printf ("\tSET_ZFLG (((uae_u32)dst & (1 << src)) >> src);\n"); - } else if (curi->mnemo == i_BCLR) { - printf ("\tSET_ZFLG (1 ^ ((dst >> src) & 1));\n"); - printf ("\tdst &= ~(1 << src);\n"); - } else if (curi->mnemo == i_BSET) { - printf ("\tSET_ZFLG (1 ^ ((dst >> src) & 1));\n"); - printf ("\tdst |= (1 << src);\n"); - } - genastore ("dst", curi->dmode, "dstreg", curi->size, "dst"); - break; - case i_CMPM: - // confirmed - genamodedual (curi, - curi->smode, "srcreg", curi->size, "src", 1, GF_AA, - curi->dmode, "dstreg", curi->size, "dst", 1, GF_AA); - //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_AA); - //genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, GF_AA); - fill_prefetch_next (); - start_brace (); - genflags (flag_cmp, curi->size, "newv", "src", "dst"); - break; - case i_CMP: - genamodedual (curi, - curi->smode, "srcreg", curi->size, "src", 1, 0, - curi->dmode, "dstreg", curi->size, "dst", 1, 0); - //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - //genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, 0); - fill_prefetch_next (); - if (curi->dmode == Dreg && curi->size == sz_long) - addcycles000 (2); - start_brace (); - genflags (flag_cmp, curi->size, "newv", "src", "dst"); - break; - case i_CMPA: - genamodedual (curi, - curi->smode, "srcreg", curi->size, "src", 1, 0, - curi->dmode, "dstreg", sz_long, "dst", 1, 0); - //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - //genamode (curi, curi->dmode, "dstreg", sz_long, "dst", 1, 0, 0); - fill_prefetch_next (); - addcycles000 (2); - start_brace (); - genflags (flag_cmp, sz_long, "newv", "src", "dst"); - break; - /* The next two are coded a little unconventional, but they are doing - * weird things... */ - case i_MVPRM: // MOVEP R->M - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - printf ("\tuaecptr memp = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)%s;\n", gen_nextiword (0)); - if (curi->size == sz_word) { - printf ("\t%s (memp, src >> 8);\n\t%s (memp + 2, src);\n", dstb, dstb); - count_write += 2; - } else { - printf ("\t%s (memp, src >> 24);\n\t%s (memp + 2, src >> 16);\n", dstb, dstb); - printf ("\t%s (memp + 4, src >> 8);\n\t%s (memp + 6, src);\n", dstb, dstb); - count_write += 4; - } - fill_prefetch_next (); - break; - case i_MVPMR: // MOVEP M->R - printf ("\tuaecptr memp = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)%s;\n", gen_nextiword (0)); - genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 2, 0, 0); - if (curi->size == sz_word) { - printf ("\tuae_u16 val = ((%s (memp) & 0xff) << 8) + (%s (memp + 2) & 0xff);\n", srcb, srcb); - count_read += 2; - } else { - printf ("\tuae_u32 val = ((%s (memp) & 0xff) << 24) + ((%s (memp + 2) & 0xff) << 16)\n", srcb, srcb); - printf (" + ((%s (memp + 4) & 0xff) << 8) + (%s (memp + 6) & 0xff);\n", srcb, srcb); - count_read += 4; - } - fill_prefetch_next (); - genastore ("val", curi->dmode, "dstreg", curi->size, "dst"); - break; - case i_MOVE: - case i_MOVEA: - { - /* 2 MOVE instruction variants have special prefetch sequence: - * - MOVE ,-(An) = prefetch is before writes (Apdi) - * - MOVE memory,(xxx).L = 2 prefetches after write - * - move.x #imm = prefetch is done before write - * - all others = prefetch is done after writes - * - * - move.x xxx,[at least 1 extension word here] = fetch 1 extension word before (xxx) - * - */ - if (isce020()) { - // MOVE is too complex to handle in table68k - int h = 0, t = 0, c = 0, subhead = 0; - bool fea = false; - if (curi->smode == immi && isreg (curi->dmode)) { - // MOVEQ - h = 2; t = 0; c = 0; - } else if (isreg (curi->smode) && isreg (curi->dmode)) { - // MOVE Rn,Rn - h = 2; t = 0; c = 2; - } else if (isreg (curi->dmode)) { - // MOVE EA,Rn - h = 0; t = 0; c = 2; - fea = true; - } else if (curi->dmode == Aind) { - if (isreg (curi->smode)) { - // MOVE Rn,(An) - h = 0; t = 1; c = 3; - } else { - // MOVE SOURCE,(An) - h = 2; t = 0; c = 4; - fea = true; - } - } else if (curi->dmode == Aipi) { - if (isreg (curi->smode)) { - // MOVE Rn,(An)+ - h = 0; t = 1; c = 3; - } else { - // MOVE SOURCE,(An)+ - h = 2; t = 0; c = 4; - fea = true; - } - } else if (curi->dmode == Apdi) { - if (isreg (curi->smode)) { - // MOVE Rn,-(An) - h = 0; t = 2; c = 4; - } else { - // MOVE SOURCE,-(An) - h = 2; t = 0; c = 4; - fea = true; - } - } else if (curi->dmode == Ad16) { - // MOVE EA,(d16,An) - h = 2; t = 0; c = 4; - fea = true; - } else if (curi->dmode == Ad8r) { - h = 4; t = 0; c = 6; - fea = true; - } else if (curi->dmode == absw) { - // MOVE EA,xxx.W - h = 2; t = 0; c = 4; - fea = true; - } else if (curi->dmode == absl) { - // MOVE EA,xxx.L - h = 0; t = 0; c = 6; - fea = true; - } else { - h = 4; t = 0; c = 6; - fea = true; - } - if (fea) { - if (curi->smode == imm) - subhead = gence020cycles_fiea (curi, curi->size, Dreg); - else - subhead = gence020cycles_fea (curi->smode); - } - genamode2x (curi->smode, "srcreg", curi->size, "src", 1, 0, 0, fea ? fetchmode_fea : -1); - genamode2 (curi->dmode, "dstreg", curi->size, "dst", 2, 0, GF_MOVE); - addopcycles_ce20 (h, t, c, -subhead); - if (curi->mnemo == i_MOVEA && curi->size == sz_word) - printf ("\tsrc = (uae_s32)(uae_s16)src;\n"); - if (curi->mnemo == i_MOVE) - genflags (flag_logical, curi->size, "src", "", ""); - genastore ("src", curi->dmode, "dstreg", curi->size, "dst"); - sync_m68k_pc (); - - } else { - int prefetch_done = 0, flags; - int dualprefetch = curi->dmode == absl && (curi->smode != Dreg && curi->smode != Areg && curi->smode != imm); - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - flags = GF_MOVE | GF_APDI; - //if (curi->size == sz_long && (curi->smode == Dreg || curi->smode == Areg)) - // flags &= ~GF_APDI; - flags |= dualprefetch ? GF_NOREFILL : 0; - genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 2, 0, flags); - if (curi->mnemo == i_MOVEA && curi->size == sz_word) - printf ("\tsrc = (uae_s32)(uae_s16)src;\n"); - if (curi->dmode == Apdi) { - fill_prefetch_next (); - prefetch_done = 1; - } - if (curi->mnemo == i_MOVE) - genflags (flag_logical, curi->size, "src", "", ""); - - if (curi->size == sz_long) { - if ((curi->dmode == Ad16 || curi->dmode == PC16) && curi->smode == imm) { - // lots more needed.. - // move.l x,absl - // move.l (an),x(an) - single_check_ipl(); - } - } - genastore ("src", curi->dmode, "dstreg", curi->size, "dst"); - sync_m68k_pc (); - if (dualprefetch) { - fill_prefetch_full_000 (); - prefetch_done = 1; - } - if (!prefetch_done) - fill_prefetch_next (); - } - } - break; - case i_MVSR2: // MOVE FROM SR - genamode (curi, curi->smode, "srcreg", sz_word, "src", 2, 0, 0); - if (isreg (curi->smode)) { - fill_prefetch_next (); - addcycles000 (2); - } else { - // write to memory, dummy write to same address, X-flag seems to be always set - if (cpu_level <= 1 && curi->size == sz_word) { - printf ("\t%s (srca, regs.sr | 0x0010);\n", dstw); - count_write++; - } - fill_prefetch_next (); - } - printf ("\tMakeSR (regs);\n"); - // real write - if (curi->size == sz_byte) - genastore ("regs.sr & 0xff", curi->smode, "srcreg", sz_word, "src"); - else - genastore ("regs.sr", curi->smode, "srcreg", sz_word, "src"); - break; - case i_MV2SR: // MOVE TO SR - genamode (curi, curi->smode, "srcreg", sz_word, "src", 1, 0, 0); - if (curi->size == sz_byte) { - // MOVE TO CCR - addcycles000 (4); - printf ("\tMakeSR (regs);\n\tregs.sr &= 0xFF00;\n\tregs.sr |= src & 0xFF;\n"); - } else { - // MOVE TO SR - addcycles000 (4); - printf ("\tregs.sr = src;\n"); - } - makefromsr (); - if (cpu_level <= 1) { - // 68000 does 2xprefetch - sync_m68k_pc (); - fill_prefetch_full (); - } else { - fill_prefetch_next (); - } - break; - case i_SWAP: - genamode (curi, curi->smode, "srcreg", sz_long, "src", 1, 0, 0); - fill_prefetch_next (); - start_brace (); - printf ("\tuae_u32 dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16);\n"); - genflags (flag_logical, sz_long, "dst", "", ""); - genastore ("dst", curi->smode, "srcreg", sz_long, "src"); - break; - case i_EXG: - // confirmed - genamodedual (curi, - curi->smode, "srcreg", curi->size, "src", 1, 0, - curi->dmode, "dstreg", curi->size, "dst", 1, 0); - //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - //genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, 0); - fill_prefetch_next (); - addcycles000 (2); - genastore ("dst", curi->smode, "srcreg", curi->size, "src"); - genastore ("src", curi->dmode, "dstreg", curi->size, "dst"); - break; - case i_EXT: - // confirmed - genamode (curi, curi->smode, "srcreg", sz_long, "src", 1, 0, 0); - fill_prefetch_next (); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuae_u32 dst = (uae_s32)(uae_s8)src;\n"); break; - case sz_word: printf ("\tuae_u16 dst = (uae_s16)(uae_s8)src;\n"); break; - case sz_long: printf ("\tuae_u32 dst = (uae_s32)(uae_s16)src;\n"); break; - default: term (); - } - genflags (flag_logical, - curi->size == sz_word ? sz_word : sz_long, "dst", "", ""); - genastore ("dst", curi->smode, "srcreg", - curi->size == sz_word ? sz_word : sz_long, "src"); - break; - case i_MVMEL: - // confirmed - //if (using_ce || using_prefetch) - genmovemel_ce (opcode); - //else - // genmovemel (opcode); - tail_ce020_done = true; - break; - case i_MVMLE: - // confirmed - //if (using_ce || using_prefetch) - genmovemle_ce (opcode); - //else - // genmovemle (opcode); - tail_ce020_done = true; - break; - case i_TRAP: - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - gen_set_fault_pc (); - sync_m68k_pc (); - printf ("\tException (src + 32);\n"); - did_prefetch = 1; - clear_m68k_offset(); - if (using_ce || using_prefetch) - addcycles000(34); - else - addcycles000(30); - break; - case i_MVR2USP: - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - fill_prefetch_next (); - printf ("\tregs.usp = src;\n"); - break; - case i_MVUSP2R: - genamode (curi, curi->smode, "srcreg", curi->size, "src", 2, 0, 0); - fill_prefetch_next (); - genastore ("regs.usp", curi->smode, "srcreg", curi->size, "src"); - break; - case i_RESET: - fill_prefetch_next (); - printf ("\tcpureset ();\n"); - sync_m68k_pc (); - addcycles000 (128); - if (using_prefetch) { - printf ("\t%s (regs, 2);\n", prefetch_word); - clear_m68k_offset(); - } - break; - case i_NOP: - fill_prefetch_next (); - break; - case i_STOP: - if (using_prefetch) { - printf ("\tregs.sr = regs.irc;\n"); - m68k_pc_offset += 2; - addcycles000(2 * 4); - } else { - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - printf ("\tregs.sr = src;\n"); - } - makefromsr (); - printf ("\tm68k_setstopped ();\n"); - sync_m68k_pc (); - // STOP does not prefetch anything - did_prefetch = -1; - break; - case i_LPSTOP: /* 68060 */ - printf ("\tuae_u16 sw = %s (2);\n", srcwi); - printf ("\tuae_u16 sr;\n"); - printf ("\tif (sw != (0x100|0x80|0x40)) { Exception (4); return 4 * CYCLE_UNIT / 2; }\n"); - printf ("\tsr = %s (4);\n", srcwi); - printf ("\tif (!(sr & 0x8000)) { Exception (8); return 4 * CYCLE_UNIT / 2; }\n"); - printf ("\tregs.sr = sr;\n"); - makefromsr (); - printf ("\tm68k_setstopped();\n"); - m68k_pc_offset += 4; - sync_m68k_pc (); - fill_prefetch_full (); - break; - case i_RTE: - addop_ce020 (curi, 0); - next_level_000 (); - if (cpu_level == 0) { - genamode (NULL, Aipi, "7", sz_word, "sr", 1, 0, GF_NOREFILL); - genamode (NULL, Aipi, "7", sz_long, "pc", 1, 0, GF_NOREFILL); - printf ("\tregs.sr = sr;\n"); - printf ("\tif (pc & 1) {\n"); - printf ("\t\texception3i (0x%04X, pc);\n", opcode); - returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); - printf ("\t}\n"); - setpc ("pc"); - makefromsr (); - } else if (cpu_level == 1 && using_prefetch) { - int old_brace_level = n_braces; - printf ("\tuae_u16 newsr; uae_u32 newpc;\n"); - printf ("\tfor (;;) {\n"); - printf ("\t\tuaecptr a = m68k_areg (regs, 7);\n"); - printf ("\t\tuae_u16 sr = %s (a);\n", srcw); - count_read++; - printf ("\t\tuae_u32 pc = %s (a + 2) << 16; pc |= %s (a + 4);\n", srcw, srcw); - count_read += 2; - printf ("\t\tuae_u16 format = %s (a + 2 + 4);\n", srcw); - count_read++; - printf ("\t\tint frame = format >> 12;\n"); - printf ("\t\tint offset = 8;\n"); - printf ("\t\tnewsr = sr; newpc = pc;\n"); - printf ("\t\tif (frame == 0x0) { m68k_areg (regs, 7) += offset; break; }\n"); - printf ("\t\telse if (frame == 0x8) { m68k_areg (regs, 7) += offset + 50; break; }\n"); - printf ("\t\telse { m68k_areg (regs, 7) += offset; Exception (14); goto %s; }\n", endlabelstr); - printf ("\t\tregs.sr = newsr; MakeFromSR ();\n}\n"); - pop_braces (old_brace_level); - printf ("\tregs.sr = newsr;\n"); - makefromsr (); - printf ("\tif (newpc & 1) {\n"); - printf ("\t\texception3i (0x%04X, newpc);\n", opcode); - printf ("\t\tgoto %s;\n", endlabelstr); - printf ("\t}\n"); - setpc ("newpc"); - check_ipl (); - need_endlabel = 1; - } else { - int old_brace_level = n_braces; - printf ("\tuae_u16 newsr; uae_u32 newpc;\n"); - printf ("\tfor (;;) {\n"); - printf ("\t\tuaecptr a = m68k_areg (regs, 7);\n"); - printf ("\t\tuae_u16 sr = %s (a);\n", srcw); - count_read++; - printf ("\t\tuae_u32 pc = %s (a + 2);\n", srcl); - count_read += 2; - printf ("\t\tuae_u16 format = %s (a + 2 + 4);\n", srcw); - count_read++; - printf ("\t\tint frame = format >> 12;\n"); - printf ("\t\tint offset = 8;\n"); - printf ("\t\tnewsr = sr; newpc = pc;\n"); - addcycles_ce020 (6); - printf ("\t\tif (frame == 0x0) { m68k_areg (regs, 7) += offset; break; }\n"); - printf ("\t\telse if (frame == 0x1) { m68k_areg (regs, 7) += offset; }\n"); - printf ("\t\telse if (frame == 0x2) { m68k_areg (regs, 7) += offset + 4; break; }\n"); - if (using_mmu == 68060) { - printf ("\t\telse if (frame == 0x4) { m68k_do_rte_mmu060 (a); m68k_areg (regs, 7) += offset + 8; break; }\n"); - } else if (cpu_level >= 4) { - printf ("\t\telse if (frame == 0x4) { m68k_areg (regs, 7) += offset + 8; break; }\n"); - } - if (cpu_level == 1) // 68010 only - printf ("\t\telse if (frame == 0x8) { m68k_areg (regs, 7) += offset + 50; break; }\n"); - if (using_mmu == 68040) { - printf ("\t\telse if (frame == 0x7) { m68k_do_rte_mmu040 (a); m68k_areg (regs, 7) += offset + 52; break; }\n"); - } else if (cpu_level >= 4) { - printf ("\t\telse if (frame == 0x7) { m68k_areg (regs, 7) += offset + 52; break; }\n"); - } - printf ("\t\telse if (frame == 0x9) { m68k_areg (regs, 7) += offset + 12; break; }\n"); - if (using_mmu == 68030) { - printf ("\t\telse if (frame == 0xa) { m68k_do_rte_mmu030 (a); break; }\n"); - printf ("\t\telse if (frame == 0xb) { m68k_do_rte_mmu030 (a); break; }\n"); - } else { - printf ("\t\telse if (frame == 0xa) { m68k_areg (regs, 7) += offset + 24; break; }\n"); - printf ("\t\telse if (frame == 0xb) { m68k_areg (regs, 7) += offset + 84; break; }\n"); - } - printf ("\t\telse { m68k_areg (regs, 7) += offset; Exception (14); return 4 * CYCLE_UNIT / 2; }\n"); - printf ("\t\tregs.sr = newsr;\n"); - makefromsr (); - printf ("}\n"); - pop_braces (old_brace_level); - printf ("\tregs.sr = newsr;\n"); - addcycles_ce020 (4); - makefromsr (); - printf ("\tif (newpc & 1) {\n"); - printf ("\t\texception3i (0x%04X, newpc);\n", opcode); - printf ("\t\treturn 4 * CYCLE_UNIT / 2;\n"); - printf ("\t}\n"); - setpc ("newpc"); - check_ipl (); - } - /* PC is set and prefetch filled. */ - clear_m68k_offset(); - tail_ce020_done = true; - fill_prefetch_full (); - branch_inst = 1; - break; - case i_RTD: - addop_ce020 (curi, 0); - if (using_mmu) { - genamode (curi, curi->smode, "srcreg", curi->size, "offs", GENA_GETV_FETCH, GENA_MOVEM_DO_INC, 0); - genamode (NULL, Aipi, "7", sz_long, "pc", GENA_GETV_FETCH, GENA_MOVEM_DO_INC, 0); - printf ("\tm68k_areg(regs, 7) += offs;\n"); - } else { - genamode (NULL, Aipi, "7", sz_long, "pc", 1, 0, 0); - genamode (curi, curi->smode, "srcreg", curi->size, "offs", 1, 0, 0); - printf ("\tm68k_areg (regs, 7) += offs;\n"); - } - printf ("\tif (pc & 1) {\n"); - printf ("\t\texception3i (0x%04X, pc);\n", opcode); - printf ("\t\treturn 4 * CYCLE_UNIT / 2;\n"); - printf ("\t}\n"); - setpc ("pc"); - /* PC is set and prefetch filled. */ - clear_m68k_offset(); - tail_ce020_done = true; - fill_prefetch_full (); - branch_inst = 1; - break; - case i_LINK: - // ce confirmed - if (using_mmu) { - addmmufixup ("srcreg"); - genamode (NULL, curi->dmode, "dstreg", curi->size, "offs", GENA_GETV_FETCH, GENA_MOVEM_DO_INC, 0); - genamode (NULL, Apdi, "7", sz_long, "old", GENA_GETV_FETCH_ALIGN, GENA_MOVEM_DO_INC, 0); - genamode (NULL, curi->smode, "srcreg", sz_long, "src", GENA_GETV_FETCH, GENA_MOVEM_DO_INC, 0); - genastore ("m68k_areg(regs, 7)", curi->smode, "srcreg", sz_long, "src"); - printf ("\tm68k_areg(regs, 7) += offs;\n"); - genastore ("src", Apdi, "7", sz_long, "old"); - } else { - addop_ce020 (curi, 0); - genamode (NULL, Apdi, "7", sz_long, "old", 2, 0, GF_AA); - genamode (NULL, curi->smode, "srcreg", sz_long, "src", 1, 0, GF_AA); - genamode (NULL, curi->dmode, "dstreg", curi->size, "offs", 1, 0, 0); - genastore ("src", Apdi, "7", sz_long, "old"); - genastore ("m68k_areg (regs, 7)", curi->smode, "srcreg", sz_long, "src"); - printf ("\tm68k_areg (regs, 7) += offs;\n"); - fill_prefetch_next (); - } - break; - case i_UNLK: - // ce confirmed - if (using_mmu) { - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - printf ("\tuae_s32 old = %s (src);\n", srcl); - printf ("\tm68k_areg (regs, 7) = src + 4;\n"); - printf ("\tm68k_areg (regs, srcreg) = old;\n"); - } else { - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - printf ("\tm68k_areg (regs, 7) = src;\n"); - genamode (NULL, Aipi, "7", sz_long, "old", 1, 0, 0); - fill_prefetch_next (); - genastore ("old", curi->smode, "srcreg", curi->size, "src"); - } - break; - case i_RTS: - addop_ce020 (curi, 0); - printf ("\tuaecptr pc = %s;\n", getpc); - if (using_indirect > 0 && !using_ce020 && !using_prefetch_020 && !using_ce) { - printf("\tm68k_do_rtsi_jit ();\n"); - } else if (using_ce020 == 1) { - add_head_cycs (1); - printf ("\tm68k_do_rts_ce020 ();\n"); - } else if (using_ce020 == 2) { - add_head_cycs (1); - printf ("\tm68k_do_rts_ce030 ();\n"); - } else if (using_ce) { - printf ("\tm68k_do_rts_ce ();\n"); - } else if (using_mmu) { - printf ("\tm68k_do_rts_mmu%s ();\n", mmu_postfix); - } else if (using_prefetch_020) { - printf ("\tm68k_do_rtsi ();\n"); - } else { - printf ("\tm68k_do_rts ();\n"); - } - printf ("\tif (%s & 1) {\n", getpc); - printf ("\t\tuaecptr faultpc = %s;\n", getpc); - setpc ("pc"); - printf ("\t\texception3i (0x%04X, faultpc);\n", opcode); - printf ("\t\treturn 8 * CYCLE_UNIT / 2;\n"); - printf ("\t}\n"); - count_read += 2; - clear_m68k_offset(); - fill_prefetch_full (); - branch_inst = 1; - break; - case i_TRAPV: - sync_m68k_pc (); - fill_prefetch_next (); - printf ("\tif (GET_VFLG ()) {\n"); - printf ("\t\tException (7);\n"); - printf ("\t\treturn 4 * CYCLE_UNIT / 2;\n"); - printf ("\t}\n"); - break; - case i_RTR: - printf ("\tuaecptr oldpc = %s;\n", getpc); - printf ("\tMakeSR (regs);\n"); - genamode (NULL, Aipi, "7", sz_word, "sr", 1, 0, 0); - genamode (NULL, Aipi, "7", sz_long, "pc", 1, 0, 0); - printf ("\tregs.sr &= 0xFF00; sr &= 0xFF;\n"); - printf ("\tregs.sr |= sr;\n"); - setpc ("pc"); - makefromsr (); - printf ("\tif (%s & 1) {\n", getpc); - printf ("\t\tuaecptr faultpc = %s;\n", getpc); - setpc ("oldpc"); - printf ("\t\texception3i (0x%04X, faultpc);\n", opcode); - printf ("\t\treturn 8 * CYCLE_UNIT / 2;\n"); - printf ("\t}\n"); - clear_m68k_offset(); - fill_prefetch_full (); - branch_inst = 1; - tail_ce020_done = true; - break; - case i_JSR: - // possible idle cycle, prefetch from new address, stack high return addr, stack low, prefetch - no_prefetch_ce020 = true; - genamode (curi, curi->smode, "srcreg", curi->size, "src", 0, 0, GF_AA|GF_NOREFILL); - start_brace (); - printf ("\tuaecptr oldpc = %s + %d;\n", getpc, m68k_pc_offset); - if (using_exception_3) { - printf ("\tif (srca & 1) {\n"); - printf ("\t\texception3i (opcode, srca);\n"); - returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); - printf ("\t}\n"); - } - if (using_mmu) { - printf ("\t%s (m68k_areg (regs, 7) - 4, oldpc);\n", dstl); - printf ("\tm68k_areg (regs, 7) -= 4;\n"); - setpc ("srca"); - clear_m68k_offset(); - } else { - if (curi->smode == Ad16 || curi->smode == absw || curi->smode == PC16) - addcycles000 (2); - if (curi->smode == Ad8r || curi->smode == PC8r) { - addcycles000 (6); - if (cpu_level <= 1 && using_prefetch) - printf ("\toldpc += 2;\n"); - } - setpc ("srca"); - clear_m68k_offset(); - fill_prefetch_1 (0); - printf ("\tm68k_areg (regs, 7) -= 4;\n"); - if (using_ce) { - printf ("\t%s (m68k_areg (regs, 7), oldpc >> 16);\n", dstw); - printf ("\t%s (m68k_areg (regs, 7) + 2, oldpc);\n", dstw); - } else { - printf ("\t%s (m68k_areg (regs, 7), oldpc);\n", dstl); - } - } - count_write += 2; - if(!using_prefetch && curi->smode == Aind) - addcycles000 (4); - fill_prefetch_full_020 (); - fill_prefetch_next (); - branch_inst = 1; - break; - case i_JMP: - no_prefetch_ce020 = true; - genamode (curi, curi->smode, "srcreg", curi->size, "src", 0, 0, GF_AA|GF_NOREFILL); - if (using_exception_3) { - printf ("\tif (srca & 1) {\n"); - printf ("\t\texception3i (opcode, srca);\n"); - returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); - printf ("\t}\n"); - } - if(!(using_ce || using_prefetch)) { - if (curi->smode != Aind) - count_read--; + // all SR/CCR modifications does full prefetch + case i_ORSR: + case i_EORSR: + printf ("\tMakeSR (regs);\n"); + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + if (curi->size == sz_byte) + { + printf ("\tsrc &= 0xFF;\n"); + } + addcycles000 (8); + if (cpu_level <= 1) + { + sync_m68k_pc (); + fill_prefetch_full (); + } + else + { + fill_prefetch_next (); + } + printf ("\tregs.sr %c= src;\n", curi->mnemo == i_EORSR ? '^' : '|'); + makefromsr (); + break; + case i_ANDSR: + printf ("\tMakeSR (regs);\n"); + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + if (curi->size == sz_byte) + { + printf ("\tsrc |= 0xFF00;\n"); + } + addcycles000 (8); + if (cpu_level <= 1) + { + sync_m68k_pc (); + fill_prefetch_full (); + } + else + { + fill_prefetch_next (); + } + printf ("\tregs.sr &= src;\n"); + makefromsr (); + break; + case i_SUB: + { + int c = 0; + genamodedual (curi, + curi->smode, "srcreg", curi->size, "src", 1, 0, + curi->dmode, "dstreg", curi->size, "dst", 1, GF_RMW); + //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + //genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, GF_RMW); + if (curi->dmode == Dreg) + { + if (curi->size == sz_long) + { + c += 2; + if (curi->smode == imm || curi->smode == immi || curi->smode == Dreg || curi->smode == Areg) + c += 2; + } + } + fill_prefetch_next (); + if (c > 0) + addcycles000 (c); + start_brace (); + genflags (flag_sub, curi->size, "newv", "src", "dst"); + genastore_rev ("newv", curi->dmode, "dstreg", curi->size, "dst"); + break; } - if (curi->smode == Ad16 || curi->smode == absw || curi->smode == PC16) - addcycles000 (2); - if (curi->smode == Ad8r || curi->smode == PC8r) - addcycles000 (6); - setpc ("srca"); - clear_m68k_offset(); - fill_prefetch_full (); - branch_inst = 1; - break; - case i_BSR: - // .b/.w = idle cycle, store high, store low, 2xprefetch - if (isce020()) - no_prefetch_ce020 = true; - printf ("\tuae_s32 s;\n"); - if (curi->size == sz_long) { - if (next_cpu_level < 1) - next_cpu_level = 1; - } - if (curi->size == sz_long && cpu_level < 2) { - printf ("\tuae_u32 src = 0xffffffff;\n"); - } else { - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_AA|GF_NOREFILL); - } - printf ("\ts = (uae_s32)src + 2;\n"); - if (using_exception_3) { - printf ("\tif (src & 1) {\n"); - printf ("\t\texception3 (opcode, m68k_getpc () + s, 0, 1, m68k_getpc () + s);\n"); - returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); - printf ("\t}\n"); - } - addcycles000 (2); - if (using_indirect > 0 && !using_ce020 && !using_prefetch_020 && !using_ce) { - printf("\tm68k_do_bsri_jit (%s + %d, s);\n", getpc, m68k_pc_offset); - } else if (using_ce020 == 1) { - printf ("\tm68k_do_bsr_ce020 (%s + %d, s);\n", getpc, m68k_pc_offset); - } else if (using_ce020 == 2) { - printf ("\tm68k_do_bsr_ce030 (%s + %d, s);\n", getpc, m68k_pc_offset); - } else if (using_ce) { - printf ("\tm68k_do_bsr_ce (%s + %d, s);\n", getpc, m68k_pc_offset); - } else if (using_mmu) { - printf ("\tm68k_do_bsr_mmu%s (%s + %d, s);\n", mmu_postfix, getpc, m68k_pc_offset); - } else if (using_prefetch_020) { - printf ("\tm68k_do_bsri (%s + %d, s);\n", getpc, m68k_pc_offset); - } else { - printf ("\tm68k_do_bsr (regs, %s + %d, s);\n", getpc, m68k_pc_offset); - } - count_write += 2; - if(!using_prefetch && curi->smode == imm1) - count_write--; - clear_m68k_offset(); - fill_prefetch_full (); - branch_inst = 1; - break; - case i_Bcc: - tail_ce020_done = true; - if (curi->size == sz_long) { - if (cpu_level < 2) { - addcycles000 (2); - printf ("\tif (cctrue (regs.ccrflags, %d)) {\n", curi->cc); - printf ("\t\texception3i (opcode, %s + 1);\n", getpc); - returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); - printf ("\t}\n"); - sync_m68k_pc (); - addcycles000 (2); - irc2ir (); - fill_prefetch_2 (); - goto bccl_not68020; - } else { - if (next_cpu_level < 1) - next_cpu_level = 1; - } - } - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_AA | (cpu_level < 2 ? GF_NOREFILL : 0)); - addcycles000 (2); - printf ("\tif (!cctrue (regs.ccrflags, %d)) goto didnt_jump;\n", curi->cc); - if (using_exception_3) { - printf ("\tif (src & 1) {\n"); - printf ("\t\texception3i (opcode, %s + 2 + (uae_s32)src);\n", getpc); - returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); - printf ("\t}\n"); - } - push_ins_cnt(); - if (using_prefetch) { - incpc ("(uae_s32)src + 2"); - fill_prefetch_full_000 (); - if (using_ce) - printf ("\treturn;\n"); - else - printf ("\treturn 10 * CYCLE_UNIT / 2;\n"); - } else { - incpc ("(uae_s32)src + 2"); - add_head_cycs (6); - fill_prefetch_full_020 (); - returncycles ("\t", 10); - } - pop_ins_cnt(); - printf ("didnt_jump:;\n"); - sync_m68k_pc (); - addcycles000 (2); - get_prefetch_020_continue (); - if (curi->size == sz_byte) { - irc2ir (); - add_head_cycs (4); - fill_prefetch_2 (); - } else if (curi->size == sz_word) { - add_head_cycs (6); - fill_prefetch_full_000 (); - } else { - add_head_cycs (6); - fill_prefetch_full_000 (); - } - insn_n_cycles = curi->size == sz_byte ? 8 : 12; - branch_inst = 1; + case i_SUBA: + { + int c = 0; + genamodedual (curi, + curi->smode, "srcreg", curi->size, "src", 1, 0, + curi->dmode, "dstreg", sz_long, "dst", 1, GF_RMW); + //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + //genamode (curi, curi->dmode, "dstreg", sz_long, "dst", 1, 0, GF_RMW); + if (curi->smode == immi) + { + // SUBAQ.x is always 8 cycles + c += 4; + } + else + { + c = curi->size == sz_long ? 2 : 4; + if (islongimm (curi)) + c += 2; + } + fill_prefetch_next (); + if (c > 0) + addcycles000 (c); + start_brace (); + printf ("\tuae_u32 newv = dst - src;\n"); + genastore ("newv", curi->dmode, "dstreg", sz_long, "dst"); + break; + } + case i_SUBX: + if (!isreg (curi->smode)) + addcycles000 (2); + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_AA); + genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, GF_AA | GF_RMW); + fill_prefetch_next (); + if (curi->size == sz_long && isreg (curi->smode)) + addcycles000 (4); + start_brace (); + printf ("\tuae_u32 newv = dst - src - (GET_XFLG () ? 1 : 0);\n"); + genflags (flag_subx, curi->size, "newv", "src", "dst"); + genflags (flag_zn, curi->size, "newv", "", ""); + genastore ("newv", curi->dmode, "dstreg", curi->size, "dst"); + break; + case i_SBCD: + if (!isreg (curi->smode)) + addcycles000 (2); + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_AA); + genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, GF_AA | GF_RMW); + fill_prefetch_next (); + start_brace (); + printf ("\tuae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG () ? 1 : 0);\n"); + printf ("\tuae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0);\n"); + printf ("\tuae_u16 newv, tmp_newv;\n"); + printf ("\tint bcd = 0;\n"); + printf ("\tnewv = tmp_newv = newv_hi + newv_lo;\n"); + printf ("\tif (newv_lo & 0xF0) { newv -= 6; bcd = 6; };\n"); + printf ("\tif ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG () ? 1 : 0)) & 0x100) > 0xFF) { newv -= 0x60; }\n"); + printf ("\tSET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG () ? 1 : 0)) & 0x300) > 0xFF);\n"); + duplicate_carry (0); + /* Manual says bits NV are undefined though a real 68040/060 don't change them */ + if (cpu_level >= xBCD_KEEPS_NV_FLAGS) + { + if (next_cpu_level < xBCD_KEEPS_NV_FLAGS) + next_cpu_level = xBCD_KEEPS_NV_FLAGS - 1; + genflags (flag_z, curi->size, "newv", "", ""); + } + else + { + genflags (flag_zn, curi->size, "newv", "", ""); + printf ("\tSET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0);\n"); + } + if (isreg (curi->smode)) + { + addcycles000 (2); + } + genastore ("newv", curi->dmode, "dstreg", curi->size, "dst"); + break; + case i_ADD: + { + int c = 0; + genamodedual (curi, + curi->smode, "srcreg", curi->size, "src", 1, 0, + curi->dmode, "dstreg", curi->size, "dst", 1, GF_RMW); + //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + //genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, GF_RMW); + if (curi->dmode == Dreg) + { + if (curi->size == sz_long) + { + c += 2; + if (curi->smode == imm || curi->smode == immi || curi->smode == Dreg || curi->smode == Areg) + c += 2; + } + } + fill_prefetch_next (); + if (c > 0) + addcycles000 (c); + start_brace (); + genflags (flag_add, curi->size, "newv", "src", "dst"); + genastore_rev ("newv", curi->dmode, "dstreg", curi->size, "dst"); + break; + } + case i_ADDA: + { + int c = 0; + genamodedual (curi, + curi->smode, "srcreg", curi->size, "src", 1, 0, + curi->dmode, "dstreg", sz_long, "dst", 1, GF_RMW); + //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + //genamode (curi, curi->dmode, "dstreg", sz_long, "dst", 1, 0, GF_RMW); + if (curi->smode == immi) + { + // ADDAQ.x is always 8 cycles + c += 4; + } + else + { + c = curi->size == sz_long ? 2 : 4; + if (islongimm (curi)) + c += 2; + } + fill_prefetch_next (); + if (c > 0) + addcycles000 (c); + start_brace (); + printf ("\tuae_u32 newv = dst + src;\n"); + genastore ("newv", curi->dmode, "dstreg", sz_long, "dst"); + break; + } + case i_ADDX: + if (!isreg (curi->smode)) + addcycles000 (2); + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_AA); + genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, GF_AA | GF_RMW); + fill_prefetch_next (); + if (curi->size == sz_long && isreg (curi->smode)) + addcycles000 (4); + start_brace (); + printf ("\tuae_u32 newv = dst + src + (GET_XFLG () ? 1 : 0);\n"); + genflags (flag_addx, curi->size, "newv", "src", "dst"); + genflags (flag_zn, curi->size, "newv", "", ""); + genastore ("newv", curi->dmode, "dstreg", curi->size, "dst"); + break; + case i_ABCD: + if (!isreg (curi->smode)) + addcycles000 (2); + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_AA); + genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, GF_AA | GF_RMW); + fill_prefetch_next (); + start_brace (); + printf ("\tuae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG () ? 1 : 0);\n"); + printf ("\tuae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0);\n"); + printf ("\tuae_u16 newv, tmp_newv;\n"); + printf ("\tint cflg;\n"); + printf ("\tnewv = tmp_newv = newv_hi + newv_lo;\n"); + printf ("\tif (newv_lo > 9) { newv += 6; }\n"); + printf ("\tcflg = (newv & 0x3F0) > 0x90;\n"); + printf ("\tif (cflg) newv += 0x60;\n"); + printf ("\tSET_CFLG (cflg);\n"); + duplicate_carry (0); + /* Manual says bits NV are undefined though a real 68040 don't change them */ + if (cpu_level >= xBCD_KEEPS_NV_FLAGS) + { + if (next_cpu_level < xBCD_KEEPS_NV_FLAGS) + next_cpu_level = xBCD_KEEPS_NV_FLAGS - 1; + genflags (flag_z, curi->size, "newv", "", ""); + } + else + { + genflags (flag_zn, curi->size, "newv", "", ""); + printf ("\tSET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0);\n"); + } + if (isreg (curi->smode)) + { + addcycles000 (2); + } + genastore ("newv", curi->dmode, "dstreg", curi->size, "dst"); + break; + case i_NEG: + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_RMW); + fill_prefetch_next (); + if (isreg (curi->smode) && curi->size == sz_long) + addcycles000 (2); + start_brace (); + genflags (flag_sub, curi->size, "dst", "src", "0"); + genastore_rev ("dst", curi->smode, "srcreg", curi->size, "src"); + break; + case i_NEGX: + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_RMW); + fill_prefetch_next (); + if (isreg (curi->smode) && curi->size == sz_long) + addcycles000 (2); + start_brace (); + printf ("\tuae_u32 newv = 0 - src - (GET_XFLG () ? 1 : 0);\n"); + genflags (flag_subx, curi->size, "newv", "src", "0"); + genflags (flag_zn, curi->size, "newv", "", ""); + genastore_rev ("newv", curi->smode, "srcreg", curi->size, "src"); + break; + case i_NBCD: + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_RMW); + if (isreg (curi->smode)) + addcycles000 (2); + fill_prefetch_next (); + start_brace (); + printf ("\tuae_u16 newv_lo = - (src & 0xF) - (GET_XFLG () ? 1 : 0);\n"); + printf ("\tuae_u16 newv_hi = - (src & 0xF0);\n"); + printf ("\tuae_u16 newv;\n"); + printf ("\tint cflg, tmp_newv;\n"); + printf ("\tif (newv_lo > 9) { newv_lo -= 6; }\n"); + printf ("\ttmp_newv = newv = newv_hi + newv_lo;\n"); + printf ("\tcflg = (newv & 0x1F0) > 0x90;\n"); + printf ("\tif (cflg) newv -= 0x60;\n"); + printf ("\tSET_CFLG (cflg);\n"); + duplicate_carry(0); + /* Manual says bits NV are undefined though a real 68040 don't change them */ + if (cpu_level >= xBCD_KEEPS_NV_FLAGS) + { + if (next_cpu_level < xBCD_KEEPS_NV_FLAGS) + next_cpu_level = xBCD_KEEPS_NV_FLAGS - 1; + genflags (flag_z, curi->size, "newv", "", ""); + } + else + { + genflags (flag_zn, curi->size, "newv", "", ""); + printf ("\tSET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0);\n"); + } + genastore ("newv", curi->smode, "srcreg", curi->size, "src"); + break; + case i_CLR: + //next_level_000 (); + genamode (curi, curi->smode, "srcreg", curi->size, "src", cpu_level == 0 ? 1 : 2, 0, 0); + fill_prefetch_next (); + if(!using_prefetch && curi->smode != Dreg) + { + if(curi->size != sz_long) + addcycles000(4); + else + addcycles000(8); + } + if (isreg (curi->smode) && curi->size == sz_long) + addcycles000 (2); + genflags (flag_logical, curi->size, "0", "", ""); + genastore_rev ("0", curi->smode, "srcreg", curi->size, "src"); + break; + case i_NOT: + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_RMW); + fill_prefetch_next (); + if (isreg (curi->smode) && curi->size == sz_long) + addcycles000 (2); + start_brace (); + printf ("\tuae_u32 dst = ~src;\n"); + genflags (flag_logical, curi->size, "dst", "", ""); + genastore_rev ("dst", curi->smode, "srcreg", curi->size, "src"); + break; + case i_TST: + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + fill_prefetch_next (); + genflags (flag_logical, curi->size, "src", "", ""); + break; + case i_BTST: + genamodedual (curi, + curi->smode, "srcreg", curi->size, "src", 1, 0, + curi->dmode, "dstreg", curi->size, "dst", 1, 0); + //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + //genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, GF_IR2IRC); + fill_prefetch_next (); + bsetcycles (curi); + printf ("\tSET_ZFLG (1 ^ ((dst >> src) & 1));\n"); + break; + case i_BCHG: + case i_BCLR: + case i_BSET: + // on 68000 these have weird side-effect, if EA points to write-only custom register + //during instruction's read access CPU data lines appear as zero to outside world, + // (normally previously fetched data appears in data lines if reading write-only register) + // this allows stupid things like bset #2,$dff096 to work "correctly" + // NOTE: above can't be right. + genamodedual (curi, + curi->smode, "srcreg", curi->size, "src", 1, 0, + curi->dmode, "dstreg", curi->size, "dst", 1, GF_RMW); + //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + //genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, GF_IR2IRC | GF_RMW); + fill_prefetch_next (); + bsetcycles (curi); + // bclr needs 1 extra cycle + if (curi->mnemo == i_BCLR && curi->dmode == Dreg) + addcycles000 (2); + if (curi->mnemo == i_BCHG) + { + printf ("\tdst ^= (1 << src);\n"); + printf ("\tSET_ZFLG (((uae_u32)dst & (1 << src)) >> src);\n"); + } + else if (curi->mnemo == i_BCLR) + { + printf ("\tSET_ZFLG (1 ^ ((dst >> src) & 1));\n"); + printf ("\tdst &= ~(1 << src);\n"); + } + else if (curi->mnemo == i_BSET) + { + printf ("\tSET_ZFLG (1 ^ ((dst >> src) & 1));\n"); + printf ("\tdst |= (1 << src);\n"); + } + genastore ("dst", curi->dmode, "dstreg", curi->size, "dst"); + break; + case i_CMPM: + // confirmed + genamodedual (curi, + curi->smode, "srcreg", curi->size, "src", 1, GF_AA, + curi->dmode, "dstreg", curi->size, "dst", 1, GF_AA); + //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_AA); + //genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, GF_AA); + fill_prefetch_next (); + start_brace (); + genflags (flag_cmp, curi->size, "newv", "src", "dst"); + break; + case i_CMP: + genamodedual (curi, + curi->smode, "srcreg", curi->size, "src", 1, 0, + curi->dmode, "dstreg", curi->size, "dst", 1, 0); + //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + //genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, 0); + fill_prefetch_next (); + if (curi->dmode == Dreg && curi->size == sz_long) + addcycles000 (2); + start_brace (); + genflags (flag_cmp, curi->size, "newv", "src", "dst"); + break; + case i_CMPA: + genamodedual (curi, + curi->smode, "srcreg", curi->size, "src", 1, 0, + curi->dmode, "dstreg", sz_long, "dst", 1, 0); + //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + //genamode (curi, curi->dmode, "dstreg", sz_long, "dst", 1, 0, 0); + fill_prefetch_next (); + addcycles000 (2); + start_brace (); + genflags (flag_cmp, sz_long, "newv", "src", "dst"); + break; + /* The next two are coded a little unconventional, but they are doing + * weird things... */ + case i_MVPRM: // MOVEP R->M + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + printf ("\tuaecptr memp = m68k_areg (regs, dstreg) + (uae_s32)(uae_s16)%s;\n", gen_nextiword (0)); + if (curi->size == sz_word) + { + printf ("\t%s (memp, src >> 8);\n\t%s (memp + 2, src);\n", dstb, dstb); + count_write += 2; + } + else + { + printf ("\t%s (memp, src >> 24);\n\t%s (memp + 2, src >> 16);\n", dstb, dstb); + printf ("\t%s (memp + 4, src >> 8);\n\t%s (memp + 6, src);\n", dstb, dstb); + count_write += 4; + } + fill_prefetch_next (); + break; + case i_MVPMR: // MOVEP M->R + printf ("\tuaecptr memp = m68k_areg (regs, srcreg) + (uae_s32)(uae_s16)%s;\n", gen_nextiword (0)); + genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 2, 0, 0); + if (curi->size == sz_word) + { + printf ("\tuae_u16 val = ((%s (memp) & 0xff) << 8) + (%s (memp + 2) & 0xff);\n", srcb, srcb); + count_read += 2; + } + else + { + printf ("\tuae_u32 val = ((%s (memp) & 0xff) << 24) + ((%s (memp + 2) & 0xff) << 16)\n", srcb, srcb); + printf (" + ((%s (memp + 4) & 0xff) << 8) + (%s (memp + 6) & 0xff);\n", srcb, srcb); + count_read += 4; + } + fill_prefetch_next (); + genastore ("val", curi->dmode, "dstreg", curi->size, "dst"); + break; + case i_MOVE: + case i_MOVEA: + { + /* 2 MOVE instruction variants have special prefetch sequence: + * - MOVE ,-(An) = prefetch is before writes (Apdi) + * - MOVE memory,(xxx).L = 2 prefetches after write + * - move.x #imm = prefetch is done before write + * - all others = prefetch is done after writes + * + * - move.x xxx,[at least 1 extension word here] = fetch 1 extension word before (xxx) + * + */ + if (isce020()) + { + // MOVE is too complex to handle in table68k + int h = 0, t = 0, c = 0, subhead = 0; + bool fea = false; + if (curi->smode == immi && isreg (curi->dmode)) + { + // MOVEQ + h = 2; + t = 0; + c = 0; + } + else if (isreg (curi->smode) && isreg (curi->dmode)) + { + // MOVE Rn,Rn + h = 2; + t = 0; + c = 2; + } + else if (isreg (curi->dmode)) + { + // MOVE EA,Rn + h = 0; + t = 0; + c = 2; + fea = true; + } + else if (curi->dmode == Aind) + { + if (isreg (curi->smode)) + { + // MOVE Rn,(An) + h = 0; + t = 1; + c = 3; + } + else + { + // MOVE SOURCE,(An) + h = 2; + t = 0; + c = 4; + fea = true; + } + } + else if (curi->dmode == Aipi) + { + if (isreg (curi->smode)) + { + // MOVE Rn,(An)+ + h = 0; + t = 1; + c = 3; + } + else + { + // MOVE SOURCE,(An)+ + h = 2; + t = 0; + c = 4; + fea = true; + } + } + else if (curi->dmode == Apdi) + { + if (isreg (curi->smode)) + { + // MOVE Rn,-(An) + h = 0; + t = 2; + c = 4; + } + else + { + // MOVE SOURCE,-(An) + h = 2; + t = 0; + c = 4; + fea = true; + } + } + else if (curi->dmode == Ad16) + { + // MOVE EA,(d16,An) + h = 2; + t = 0; + c = 4; + fea = true; + } + else if (curi->dmode == Ad8r) + { + h = 4; + t = 0; + c = 6; + fea = true; + } + else if (curi->dmode == absw) + { + // MOVE EA,xxx.W + h = 2; + t = 0; + c = 4; + fea = true; + } + else if (curi->dmode == absl) + { + // MOVE EA,xxx.L + h = 0; + t = 0; + c = 6; + fea = true; + } + else + { + h = 4; + t = 0; + c = 6; + fea = true; + } + if (fea) + { + if (curi->smode == imm) + subhead = gence020cycles_fiea (curi, curi->size, Dreg); + else + subhead = gence020cycles_fea (curi->smode); + } + genamode2x (curi->smode, "srcreg", curi->size, "src", 1, 0, 0, fea ? fetchmode_fea : -1); + genamode2 (curi->dmode, "dstreg", curi->size, "dst", 2, 0, GF_MOVE); + addopcycles_ce20 (h, t, c, -subhead); + if (curi->mnemo == i_MOVEA && curi->size == sz_word) + printf ("\tsrc = (uae_s32)(uae_s16)src;\n"); + if (curi->mnemo == i_MOVE) + genflags (flag_logical, curi->size, "src", "", ""); + genastore ("src", curi->dmode, "dstreg", curi->size, "dst"); + sync_m68k_pc (); + + } + else + { + int prefetch_done = 0, flags; + int dualprefetch = curi->dmode == absl && (curi->smode != Dreg && curi->smode != Areg && curi->smode != imm); + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + flags = GF_MOVE | GF_APDI; + //if (curi->size == sz_long && (curi->smode == Dreg || curi->smode == Areg)) + // flags &= ~GF_APDI; + flags |= dualprefetch ? GF_NOREFILL : 0; + genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 2, 0, flags); + if (curi->mnemo == i_MOVEA && curi->size == sz_word) + printf ("\tsrc = (uae_s32)(uae_s16)src;\n"); + if (curi->dmode == Apdi) + { + fill_prefetch_next (); + prefetch_done = 1; + } + if (curi->mnemo == i_MOVE) + genflags (flag_logical, curi->size, "src", "", ""); + + if (curi->size == sz_long) + { + if ((curi->dmode == Ad16 || curi->dmode == PC16) && curi->smode == imm) + { + // lots more needed.. + // move.l x,absl + // move.l (an),x(an) + single_check_ipl(); + } + } + genastore ("src", curi->dmode, "dstreg", curi->size, "dst"); + sync_m68k_pc (); + if (dualprefetch) + { + fill_prefetch_full_000 (); + prefetch_done = 1; + } + if (!prefetch_done) + fill_prefetch_next (); + } + } + break; + case i_MVSR2: // MOVE FROM SR + genamode (curi, curi->smode, "srcreg", sz_word, "src", 2, 0, 0); + if (isreg (curi->smode)) + { + fill_prefetch_next (); + addcycles000 (2); + } + else + { + // write to memory, dummy write to same address, X-flag seems to be always set + if (cpu_level <= 1 && curi->size == sz_word) + { + printf ("\t%s (srca, regs.sr | 0x0010);\n", dstw); + count_write++; + } + fill_prefetch_next (); + } + printf ("\tMakeSR (regs);\n"); + // real write + if (curi->size == sz_byte) + genastore ("regs.sr & 0xff", curi->smode, "srcreg", sz_word, "src"); + else + genastore ("regs.sr", curi->smode, "srcreg", sz_word, "src"); + break; + case i_MV2SR: // MOVE TO SR + genamode (curi, curi->smode, "srcreg", sz_word, "src", 1, 0, 0); + if (curi->size == sz_byte) + { + // MOVE TO CCR + addcycles000 (4); + printf ("\tMakeSR (regs);\n\tregs.sr &= 0xFF00;\n\tregs.sr |= src & 0xFF;\n"); + } + else + { + // MOVE TO SR + addcycles000 (4); + printf ("\tregs.sr = src;\n"); + } + makefromsr (); + if (cpu_level <= 1) + { + // 68000 does 2xprefetch + sync_m68k_pc (); + fill_prefetch_full (); + } + else + { + fill_prefetch_next (); + } + break; + case i_SWAP: + genamode (curi, curi->smode, "srcreg", sz_long, "src", 1, 0, 0); + fill_prefetch_next (); + start_brace (); + printf ("\tuae_u32 dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16);\n"); + genflags (flag_logical, sz_long, "dst", "", ""); + genastore ("dst", curi->smode, "srcreg", sz_long, "src"); + break; + case i_EXG: + // confirmed + genamodedual (curi, + curi->smode, "srcreg", curi->size, "src", 1, 0, + curi->dmode, "dstreg", curi->size, "dst", 1, 0); + //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + //genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, 0); + fill_prefetch_next (); + addcycles000 (2); + genastore ("dst", curi->smode, "srcreg", curi->size, "src"); + genastore ("src", curi->dmode, "dstreg", curi->size, "dst"); + break; + case i_EXT: + // confirmed + genamode (curi, curi->smode, "srcreg", sz_long, "src", 1, 0, 0); + fill_prefetch_next (); + start_brace (); + switch (curi->size) + { + case sz_byte: + printf ("\tuae_u32 dst = (uae_s32)(uae_s8)src;\n"); + break; + case sz_word: + printf ("\tuae_u16 dst = (uae_s16)(uae_s8)src;\n"); + break; + case sz_long: + printf ("\tuae_u32 dst = (uae_s32)(uae_s16)src;\n"); + break; + default: + term (); + } + genflags (flag_logical, + curi->size == sz_word ? sz_word : sz_long, "dst", "", ""); + genastore ("dst", curi->smode, "srcreg", + curi->size == sz_word ? sz_word : sz_long, "src"); + break; + case i_MVMEL: + // confirmed + //if (using_ce || using_prefetch) + genmovemel_ce (opcode); + //else + // genmovemel (opcode); + tail_ce020_done = true; + break; + case i_MVMLE: + // confirmed + //if (using_ce || using_prefetch) + genmovemle_ce (opcode); + //else + // genmovemle (opcode); + tail_ce020_done = true; + break; + case i_TRAP: + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + gen_set_fault_pc (); + sync_m68k_pc (); + printf ("\tException (src + 32);\n"); + did_prefetch = 1; + clear_m68k_offset(); + if (using_ce || using_prefetch) + addcycles000(34); + else + addcycles000(30); + break; + case i_MVR2USP: + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + fill_prefetch_next (); + printf ("\tregs.usp = src;\n"); + break; + case i_MVUSP2R: + genamode (curi, curi->smode, "srcreg", curi->size, "src", 2, 0, 0); + fill_prefetch_next (); + genastore ("regs.usp", curi->smode, "srcreg", curi->size, "src"); + break; + case i_RESET: + fill_prefetch_next (); + printf ("\tcpureset ();\n"); + sync_m68k_pc (); + addcycles000 (128); + if (using_prefetch) + { + printf ("\t%s (regs, 2);\n", prefetch_word); + clear_m68k_offset(); + } + break; + case i_NOP: + fill_prefetch_next (); + break; + case i_STOP: + if (using_prefetch) + { + printf ("\tregs.sr = regs.irc;\n"); + m68k_pc_offset += 2; + addcycles000(2 * 4); + } + else + { + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + printf ("\tregs.sr = src;\n"); + } + makefromsr (); + printf ("\tm68k_setstopped ();\n"); + sync_m68k_pc (); + // STOP does not prefetch anything + did_prefetch = -1; + break; + case i_LPSTOP: /* 68060 */ + printf ("\tuae_u16 sw = %s (2);\n", srcwi); + printf ("\tuae_u16 sr;\n"); + printf ("\tif (sw != (0x100|0x80|0x40)) { Exception (4); return 4 * CYCLE_UNIT / 2; }\n"); + printf ("\tsr = %s (4);\n", srcwi); + printf ("\tif (!(sr & 0x8000)) { Exception (8); return 4 * CYCLE_UNIT / 2; }\n"); + printf ("\tregs.sr = sr;\n"); + makefromsr (); + printf ("\tm68k_setstopped();\n"); + m68k_pc_offset += 4; + sync_m68k_pc (); + fill_prefetch_full (); + break; + case i_RTE: + addop_ce020 (curi, 0); + next_level_000 (); + if (cpu_level == 0) + { + genamode (NULL, Aipi, "7", sz_word, "sr", 1, 0, GF_NOREFILL); + genamode (NULL, Aipi, "7", sz_long, "pc", 1, 0, GF_NOREFILL); + printf ("\tregs.sr = sr;\n"); + printf ("\tif (pc & 1) {\n"); + printf ("\t\texception3i (0x%04X, pc);\n", opcode); + returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); + printf ("\t}\n"); + setpc ("pc"); + makefromsr (); + } + else if (cpu_level == 1 && using_prefetch) + { + int old_brace_level = n_braces; + printf ("\tuae_u16 newsr; uae_u32 newpc;\n"); + printf ("\tfor (;;) {\n"); + printf ("\t\tuaecptr a = m68k_areg (regs, 7);\n"); + printf ("\t\tuae_u16 sr = %s (a);\n", srcw); + count_read++; + printf ("\t\tuae_u32 pc = %s (a + 2) << 16; pc |= %s (a + 4);\n", srcw, srcw); + count_read += 2; + printf ("\t\tuae_u16 format = %s (a + 2 + 4);\n", srcw); + count_read++; + printf ("\t\tint frame = format >> 12;\n"); + printf ("\t\tint offset = 8;\n"); + printf ("\t\tnewsr = sr; newpc = pc;\n"); + printf ("\t\tif (frame == 0x0) { m68k_areg (regs, 7) += offset; break; }\n"); + printf ("\t\telse if (frame == 0x8) { m68k_areg (regs, 7) += offset + 50; break; }\n"); + printf ("\t\telse { m68k_areg (regs, 7) += offset; Exception (14); goto %s; }\n", endlabelstr); + printf ("\t\tregs.sr = newsr; MakeFromSR ();\n}\n"); + pop_braces (old_brace_level); + printf ("\tregs.sr = newsr;\n"); + makefromsr (); + printf ("\tif (newpc & 1) {\n"); + printf ("\t\texception3i (0x%04X, newpc);\n", opcode); + printf ("\t\tgoto %s;\n", endlabelstr); + printf ("\t}\n"); + setpc ("newpc"); + check_ipl (); + need_endlabel = 1; + } + else + { + int old_brace_level = n_braces; + printf ("\tuae_u16 newsr; uae_u32 newpc;\n"); + printf ("\tfor (;;) {\n"); + printf ("\t\tuaecptr a = m68k_areg (regs, 7);\n"); + printf ("\t\tuae_u16 sr = %s (a);\n", srcw); + count_read++; + printf ("\t\tuae_u32 pc = %s (a + 2);\n", srcl); + count_read += 2; + printf ("\t\tuae_u16 format = %s (a + 2 + 4);\n", srcw); + count_read++; + printf ("\t\tint frame = format >> 12;\n"); + printf ("\t\tint offset = 8;\n"); + printf ("\t\tnewsr = sr; newpc = pc;\n"); + addcycles_ce020 (6); + printf ("\t\tif (frame == 0x0) { m68k_areg (regs, 7) += offset; break; }\n"); + printf ("\t\telse if (frame == 0x1) { m68k_areg (regs, 7) += offset; }\n"); + printf ("\t\telse if (frame == 0x2) { m68k_areg (regs, 7) += offset + 4; break; }\n"); + if (using_mmu == 68060) + { + printf ("\t\telse if (frame == 0x4) { m68k_do_rte_mmu060 (a); m68k_areg (regs, 7) += offset + 8; break; }\n"); + } + else if (cpu_level >= 4) + { + printf ("\t\telse if (frame == 0x4) { m68k_areg (regs, 7) += offset + 8; break; }\n"); + } + if (cpu_level == 1) // 68010 only + printf ("\t\telse if (frame == 0x8) { m68k_areg (regs, 7) += offset + 50; break; }\n"); + if (using_mmu == 68040) + { + printf ("\t\telse if (frame == 0x7) { m68k_do_rte_mmu040 (a); m68k_areg (regs, 7) += offset + 52; break; }\n"); + } + else if (cpu_level >= 4) + { + printf ("\t\telse if (frame == 0x7) { m68k_areg (regs, 7) += offset + 52; break; }\n"); + } + printf ("\t\telse if (frame == 0x9) { m68k_areg (regs, 7) += offset + 12; break; }\n"); + if (using_mmu == 68030) + { + printf ("\t\telse if (frame == 0xa) { m68k_do_rte_mmu030 (a); break; }\n"); + printf ("\t\telse if (frame == 0xb) { m68k_do_rte_mmu030 (a); break; }\n"); + } + else + { + printf ("\t\telse if (frame == 0xa) { m68k_areg (regs, 7) += offset + 24; break; }\n"); + printf ("\t\telse if (frame == 0xb) { m68k_areg (regs, 7) += offset + 84; break; }\n"); + } + printf ("\t\telse { m68k_areg (regs, 7) += offset; Exception (14); return 4 * CYCLE_UNIT / 2; }\n"); + printf ("\t\tregs.sr = newsr;\n"); + makefromsr (); + printf ("}\n"); + pop_braces (old_brace_level); + printf ("\tregs.sr = newsr;\n"); + addcycles_ce020 (4); + makefromsr (); + printf ("\tif (newpc & 1) {\n"); + printf ("\t\texception3i (0x%04X, newpc);\n", opcode); + printf ("\t\treturn 4 * CYCLE_UNIT / 2;\n"); + printf ("\t}\n"); + setpc ("newpc"); + check_ipl (); + } + /* PC is set and prefetch filled. */ + clear_m68k_offset(); + tail_ce020_done = true; + fill_prefetch_full (); + branch_inst = 1; + break; + case i_RTD: + addop_ce020 (curi, 0); + if (using_mmu) + { + genamode (curi, curi->smode, "srcreg", curi->size, "offs", GENA_GETV_FETCH, GENA_MOVEM_DO_INC, 0); + genamode (NULL, Aipi, "7", sz_long, "pc", GENA_GETV_FETCH, GENA_MOVEM_DO_INC, 0); + printf ("\tm68k_areg(regs, 7) += offs;\n"); + } + else + { + genamode (NULL, Aipi, "7", sz_long, "pc", 1, 0, 0); + genamode (curi, curi->smode, "srcreg", curi->size, "offs", 1, 0, 0); + printf ("\tm68k_areg (regs, 7) += offs;\n"); + } + printf ("\tif (pc & 1) {\n"); + printf ("\t\texception3i (0x%04X, pc);\n", opcode); + printf ("\t\treturn 4 * CYCLE_UNIT / 2;\n"); + printf ("\t}\n"); + setpc ("pc"); + /* PC is set and prefetch filled. */ + clear_m68k_offset(); + tail_ce020_done = true; + fill_prefetch_full (); + branch_inst = 1; + break; + case i_LINK: + // ce confirmed + if (using_mmu) + { + addmmufixup ("srcreg"); + genamode (NULL, curi->dmode, "dstreg", curi->size, "offs", GENA_GETV_FETCH, GENA_MOVEM_DO_INC, 0); + genamode (NULL, Apdi, "7", sz_long, "old", GENA_GETV_FETCH_ALIGN, GENA_MOVEM_DO_INC, 0); + genamode (NULL, curi->smode, "srcreg", sz_long, "src", GENA_GETV_FETCH, GENA_MOVEM_DO_INC, 0); + genastore ("m68k_areg(regs, 7)", curi->smode, "srcreg", sz_long, "src"); + printf ("\tm68k_areg(regs, 7) += offs;\n"); + genastore ("src", Apdi, "7", sz_long, "old"); + } + else + { + addop_ce020 (curi, 0); + genamode (NULL, Apdi, "7", sz_long, "old", 2, 0, GF_AA); + genamode (NULL, curi->smode, "srcreg", sz_long, "src", 1, 0, GF_AA); + genamode (NULL, curi->dmode, "dstreg", curi->size, "offs", 1, 0, 0); + genastore ("src", Apdi, "7", sz_long, "old"); + genastore ("m68k_areg (regs, 7)", curi->smode, "srcreg", sz_long, "src"); + printf ("\tm68k_areg (regs, 7) += offs;\n"); + fill_prefetch_next (); + } + break; + case i_UNLK: + // ce confirmed + if (using_mmu) + { + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + printf ("\tuae_s32 old = %s (src);\n", srcl); + printf ("\tm68k_areg (regs, 7) = src + 4;\n"); + printf ("\tm68k_areg (regs, srcreg) = old;\n"); + } + else + { + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + printf ("\tm68k_areg (regs, 7) = src;\n"); + genamode (NULL, Aipi, "7", sz_long, "old", 1, 0, 0); + fill_prefetch_next (); + genastore ("old", curi->smode, "srcreg", curi->size, "src"); + } + break; + case i_RTS: + addop_ce020 (curi, 0); + printf ("\tuaecptr pc = %s;\n", getpc); + if (using_indirect > 0 && !using_ce020 && !using_prefetch_020 && !using_ce) + { + printf("\tm68k_do_rtsi_jit ();\n"); + } + else if (using_ce020 == 1) + { + add_head_cycs (1); + printf ("\tm68k_do_rts_ce020 ();\n"); + } + else if (using_ce020 == 2) + { + add_head_cycs (1); + printf ("\tm68k_do_rts_ce030 ();\n"); + } + else if (using_ce) + { + printf ("\tm68k_do_rts_ce ();\n"); + } + else if (using_mmu) + { + printf ("\tm68k_do_rts_mmu%s ();\n", mmu_postfix); + } + else if (using_prefetch_020) + { + printf ("\tm68k_do_rtsi ();\n"); + } + else + { + printf ("\tm68k_do_rts ();\n"); + } + printf ("\tif (%s & 1) {\n", getpc); + printf ("\t\tuaecptr faultpc = %s;\n", getpc); + setpc ("pc"); + printf ("\t\texception3i (0x%04X, faultpc);\n", opcode); + printf ("\t\treturn 8 * CYCLE_UNIT / 2;\n"); + printf ("\t}\n"); + count_read += 2; + clear_m68k_offset(); + fill_prefetch_full (); + branch_inst = 1; + break; + case i_TRAPV: + sync_m68k_pc (); + fill_prefetch_next (); + printf ("\tif (GET_VFLG ()) {\n"); + printf ("\t\tException (7);\n"); + printf ("\t\treturn 4 * CYCLE_UNIT / 2;\n"); + printf ("\t}\n"); + break; + case i_RTR: + printf ("\tuaecptr oldpc = %s;\n", getpc); + printf ("\tMakeSR (regs);\n"); + genamode (NULL, Aipi, "7", sz_word, "sr", 1, 0, 0); + genamode (NULL, Aipi, "7", sz_long, "pc", 1, 0, 0); + printf ("\tregs.sr &= 0xFF00; sr &= 0xFF;\n"); + printf ("\tregs.sr |= sr;\n"); + setpc ("pc"); + makefromsr (); + printf ("\tif (%s & 1) {\n", getpc); + printf ("\t\tuaecptr faultpc = %s;\n", getpc); + setpc ("oldpc"); + printf ("\t\texception3i (0x%04X, faultpc);\n", opcode); + printf ("\t\treturn 8 * CYCLE_UNIT / 2;\n"); + printf ("\t}\n"); + clear_m68k_offset(); + fill_prefetch_full (); + branch_inst = 1; + tail_ce020_done = true; + break; + case i_JSR: + // possible idle cycle, prefetch from new address, stack high return addr, stack low, prefetch + no_prefetch_ce020 = true; + genamode (curi, curi->smode, "srcreg", curi->size, "src", 0, 0, GF_AA|GF_NOREFILL); + start_brace (); + printf ("\tuaecptr oldpc = %s + %d;\n", getpc, m68k_pc_offset); + if (using_exception_3) + { + printf ("\tif (srca & 1) {\n"); + printf ("\t\texception3i (opcode, srca);\n"); + returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); + printf ("\t}\n"); + } + if (using_mmu) + { + printf ("\t%s (m68k_areg (regs, 7) - 4, oldpc);\n", dstl); + printf ("\tm68k_areg (regs, 7) -= 4;\n"); + setpc ("srca"); + clear_m68k_offset(); + } + else + { + if (curi->smode == Ad16 || curi->smode == absw || curi->smode == PC16) + addcycles000 (2); + if (curi->smode == Ad8r || curi->smode == PC8r) + { + addcycles000 (6); + if (cpu_level <= 1 && using_prefetch) + printf ("\toldpc += 2;\n"); + } + setpc ("srca"); + clear_m68k_offset(); + fill_prefetch_1 (0); + printf ("\tm68k_areg (regs, 7) -= 4;\n"); + if (using_ce) + { + printf ("\t%s (m68k_areg (regs, 7), oldpc >> 16);\n", dstw); + printf ("\t%s (m68k_areg (regs, 7) + 2, oldpc);\n", dstw); + } + else + { + printf ("\t%s (m68k_areg (regs, 7), oldpc);\n", dstl); + } + } + count_write += 2; + if(!using_prefetch && curi->smode == Aind) + addcycles000 (4); + fill_prefetch_full_020 (); + fill_prefetch_next (); + branch_inst = 1; + break; + case i_JMP: + no_prefetch_ce020 = true; + genamode (curi, curi->smode, "srcreg", curi->size, "src", 0, 0, GF_AA|GF_NOREFILL); + if (using_exception_3) + { + printf ("\tif (srca & 1) {\n"); + printf ("\t\texception3i (opcode, srca);\n"); + returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); + printf ("\t}\n"); + } + if(!(using_ce || using_prefetch)) + { + if (curi->smode != Aind) + count_read--; + } + if (curi->smode == Ad16 || curi->smode == absw || curi->smode == PC16) + addcycles000 (2); + if (curi->smode == Ad8r || curi->smode == PC8r) + addcycles000 (6); + setpc ("srca"); + clear_m68k_offset(); + fill_prefetch_full (); + branch_inst = 1; + break; + case i_BSR: + // .b/.w = idle cycle, store high, store low, 2xprefetch + if (isce020()) + no_prefetch_ce020 = true; + printf ("\tuae_s32 s;\n"); + if (curi->size == sz_long) + { + if (next_cpu_level < 1) + next_cpu_level = 1; + } + if (curi->size == sz_long && cpu_level < 2) + { + printf ("\tuae_u32 src = 0xffffffff;\n"); + } + else + { + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_AA|GF_NOREFILL); + } + printf ("\ts = (uae_s32)src + 2;\n"); + if (using_exception_3) + { + printf ("\tif (src & 1) {\n"); + printf ("\t\texception3 (opcode, m68k_getpc () + s, 0, 1, m68k_getpc () + s);\n"); + returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); + printf ("\t}\n"); + } + addcycles000 (2); + if (using_indirect > 0 && !using_ce020 && !using_prefetch_020 && !using_ce) + { + printf("\tm68k_do_bsri_jit (%s + %d, s);\n", getpc, m68k_pc_offset); + } + else if (using_ce020 == 1) + { + printf ("\tm68k_do_bsr_ce020 (%s + %d, s);\n", getpc, m68k_pc_offset); + } + else if (using_ce020 == 2) + { + printf ("\tm68k_do_bsr_ce030 (%s + %d, s);\n", getpc, m68k_pc_offset); + } + else if (using_ce) + { + printf ("\tm68k_do_bsr_ce (%s + %d, s);\n", getpc, m68k_pc_offset); + } + else if (using_mmu) + { + printf ("\tm68k_do_bsr_mmu%s (%s + %d, s);\n", mmu_postfix, getpc, m68k_pc_offset); + } + else if (using_prefetch_020) + { + printf ("\tm68k_do_bsri (%s + %d, s);\n", getpc, m68k_pc_offset); + } + else + { + printf ("\tm68k_do_bsr (regs, %s + %d, s);\n", getpc, m68k_pc_offset); + } + count_write += 2; + if(!using_prefetch && curi->smode == imm1) + count_write--; + clear_m68k_offset(); + fill_prefetch_full (); + branch_inst = 1; + break; + case i_Bcc: + tail_ce020_done = true; + if (curi->size == sz_long) + { + if (cpu_level < 2) + { + addcycles000 (2); + printf ("\tif (cctrue (regs.ccrflags, %d)) {\n", curi->cc); + printf ("\t\texception3i (opcode, %s + 1);\n", getpc); + returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); + printf ("\t}\n"); + sync_m68k_pc (); + addcycles000 (2); + irc2ir (); + fill_prefetch_2 (); + goto bccl_not68020; + } + else + { + if (next_cpu_level < 1) + next_cpu_level = 1; + } + } + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_AA | (cpu_level < 2 ? GF_NOREFILL : 0)); + addcycles000 (2); + printf ("\tif (!cctrue (regs.ccrflags, %d)) goto didnt_jump;\n", curi->cc); + if (using_exception_3) + { + printf ("\tif (src & 1) {\n"); + printf ("\t\texception3i (opcode, %s + 2 + (uae_s32)src);\n", getpc); + returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); + printf ("\t}\n"); + } + push_ins_cnt(); + if (using_prefetch) + { + incpc ("(uae_s32)src + 2"); + fill_prefetch_full_000 (); + if (using_ce) + printf ("\treturn;\n"); + else + printf ("\treturn 10 * CYCLE_UNIT / 2;\n"); + } + else + { + incpc ("(uae_s32)src + 2"); + add_head_cycs (6); + fill_prefetch_full_020 (); + returncycles ("\t", 10); + } + pop_ins_cnt(); + printf ("didnt_jump:;\n"); + sync_m68k_pc (); + addcycles000 (2); + get_prefetch_020_continue (); + if (curi->size == sz_byte) + { + irc2ir (); + add_head_cycs (4); + fill_prefetch_2 (); + } + else if (curi->size == sz_word) + { + add_head_cycs (6); + fill_prefetch_full_000 (); + } + else + { + add_head_cycs (6); + fill_prefetch_full_000 (); + } + insn_n_cycles = curi->size == sz_byte ? 8 : 12; + branch_inst = 1; bccl_not68020: - break; - case i_LEA: - if (curi->smode == Ad8r || curi->smode == PC8r) - addcycles000 (2); - genamodedual (curi, - curi->smode, "srcreg", curi->size, "src", 0, GF_AA, - curi->dmode, "dstreg", curi->size, "dst", 2, GF_AA); - //genamode (curi, curi->smode, "srcreg", curi->size, "src", 0, 0, GF_AA); - //genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 2, 0, GF_AA); - if (curi->smode == Ad8r || curi->smode == PC8r) - addcycles000 (2); - fill_prefetch_next (); - genastore ("srca", curi->dmode, "dstreg", curi->size, "dst"); - break; - case i_PEA: - if (curi->smode == Ad8r || curi->smode == PC8r) - addcycles000 (2); - genamode (curi, curi->smode, "srcreg", curi->size, "src", 0, 0, GF_AA); - genamode (NULL, Apdi, "7", sz_long, "dst", 2, 0, GF_AA); - if (!(curi->smode == absw || curi->smode == absl)) - fill_prefetch_next (); - if (curi->smode == Ad8r || curi->smode == PC8r) - addcycles000 (2); - genastore ("srca", Apdi, "7", sz_long, "dst"); - if ((curi->smode == absw || curi->smode == absl)) - fill_prefetch_next (); - break; - case i_DBcc: - // cc true: idle cycle, prefetch - // cc false, counter expired: idle cycle, prefetch (from branch address), 2xprefetch (from next address) - // cc false, counter not expired: idle cycle, prefetch - tail_ce020_done = true; - genamodedual (curi, - curi->smode, "srcreg", curi->size, "src", 1, GF_AA | (cpu_level < 2 ? GF_NOREFILL : 0), - curi->dmode, "dstreg", curi->size, "offs", 1, GF_AA | (cpu_level < 2 ? GF_NOREFILL : 0)); - //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_AA | GF_NOREFILL); - //genamode (curi, curi->dmode, "dstreg", curi->size, "offs", 1, 0, GF_AA | GF_NOREFILL); - printf ("\tuaecptr oldpc = %s;\n", getpc); - addcycles000_nonce("\t\t", 2); - addcycles000 (2); - push_ins_cnt(); - printf ("\tif (!cctrue (regs.ccrflags, %d)) {\n", curi->cc); - incpc ("(uae_s32)offs + 2"); - printf ("\t"); - fill_prefetch_1 (0); - printf ("\t"); - genastore ("(src - 1)", curi->smode, "srcreg", curi->size, "src"); + break; + case i_LEA: + if (curi->smode == Ad8r || curi->smode == PC8r) + addcycles000 (2); + genamodedual (curi, + curi->smode, "srcreg", curi->size, "src", 0, GF_AA, + curi->dmode, "dstreg", curi->size, "dst", 2, GF_AA); + //genamode (curi, curi->smode, "srcreg", curi->size, "src", 0, 0, GF_AA); + //genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 2, 0, GF_AA); + if (curi->smode == Ad8r || curi->smode == PC8r) + addcycles000 (2); + fill_prefetch_next (); + genastore ("srca", curi->dmode, "dstreg", curi->size, "dst"); + break; + case i_PEA: + if (curi->smode == Ad8r || curi->smode == PC8r) + addcycles000 (2); + genamode (curi, curi->smode, "srcreg", curi->size, "src", 0, 0, GF_AA); + genamode (NULL, Apdi, "7", sz_long, "dst", 2, 0, GF_AA); + if (!(curi->smode == absw || curi->smode == absl)) + fill_prefetch_next (); + if (curi->smode == Ad8r || curi->smode == PC8r) + addcycles000 (2); + genastore ("srca", Apdi, "7", sz_long, "dst"); + if ((curi->smode == absw || curi->smode == absl)) + fill_prefetch_next (); + break; + case i_DBcc: + // cc true: idle cycle, prefetch + // cc false, counter expired: idle cycle, prefetch (from branch address), 2xprefetch (from next address) + // cc false, counter not expired: idle cycle, prefetch + tail_ce020_done = true; + genamodedual (curi, + curi->smode, "srcreg", curi->size, "src", 1, GF_AA | (cpu_level < 2 ? GF_NOREFILL : 0), + curi->dmode, "dstreg", curi->size, "offs", 1, GF_AA | (cpu_level < 2 ? GF_NOREFILL : 0)); + //genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_AA | GF_NOREFILL); + //genamode (curi, curi->dmode, "dstreg", curi->size, "offs", 1, 0, GF_AA | GF_NOREFILL); + printf ("\tuaecptr oldpc = %s;\n", getpc); + addcycles000_nonce("\t\t", 2); + addcycles000 (2); + push_ins_cnt(); + printf ("\tif (!cctrue (regs.ccrflags, %d)) {\n", curi->cc); + incpc ("(uae_s32)offs + 2"); + printf ("\t"); + fill_prefetch_1 (0); + printf ("\t"); + genastore ("(src - 1)", curi->smode, "srcreg", curi->size, "src"); - printf ("\t\tif (src) {\n"); - if (using_exception_3) { - printf ("\t\t\tif (offs & 1) {\n"); - printf ("\t\t\t\texception3i (opcode, %s + 2 + (uae_s32)offs + 2);\n", getpc); - returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); - printf ("\t\t\t}\n"); - } - irc2ir (); - add_head_cycs (6); - fill_prefetch_1 (2); - fill_prefetch_full_020 (); - returncycles ("\t\t\t", 10); - printf ("\t\t}\n"); - add_head_cycs (10); - addcycles000_nonce("\t\t", 2 + 2); - printf ("\t} else {\n"); - addcycles000_onlyce(2); - addcycles000_nonce("\t\t", 2); - printf ("\t}\n"); - pop_ins_cnt(); - setpc ("oldpc + %d", m68k_pc_offset); - clear_m68k_offset(); - get_prefetch_020_continue (); - fill_prefetch_full_000 (); - insn_n_cycles = 12; - branch_inst = 1; - break; - case i_Scc: - // confirmed - //next_level_000 (); - genamode (curi, curi->smode, "srcreg", curi->size, "src", cpu_level == 0 ? 1 : 2, 0, 0); - start_brace (); - fill_prefetch_next(); - start_brace (); - printf ("\tint val = cctrue (regs.ccrflags, %d) ? 0xff : 0;\n", curi->cc); - if (isreg (curi->smode)) { - if (using_ce) - printf ("\tint cycles = val ? 2 : 0;\n"); - addcycles000_3 ("\t"); - addcycles000_nonces("\t", "(val ? 2 : 0)"); - } - genastore ("val", curi->smode, "srcreg", curi->size, "src"); - if(!using_prefetch && curi->smode != Dreg) - addcycles000 (4); - break; - case i_DIVU: - tail_ce020_done = true; - genamodedual (curi, - curi->smode, "srcreg", sz_word, "src", 1, 0, - curi->dmode, "dstreg", sz_long, "dst", 1, 0); - printf ("\tCLEAR_CZNV ();\n"); - printf ("\tif (src == 0) {\n"); - if (cpu_level > 0) { - /* 68020 sets V when dividing by zero and N if dst is negative - * 68000 clears both - */ - printf("\t\tSET_VFLG (1);\n"); - printf("\t\tif (dst < 0) SET_NFLG (1);\n"); - } - incpc ("%d", m68k_pc_offset); - printf ("\t\tException (5);\n"); - returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); - printf ("\t} else {\n"); - printf ("\t\tuae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;\n"); - printf ("\t\tuae_u32 rem = (uae_u32)dst %% (uae_u32)(uae_u16)src;\n"); - if (using_ce) { - start_brace (); - printf ("\t\tint cycles = (getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4;\n"); - addcycles000_3 ("\t\t"); - } - addcycles000_nonces("\t\t", "(getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4"); - fill_prefetch_next (); - /* The N flag appears to be set each time there is an overflow. - * Weird. but 68020 only sets N when dst is negative.. */ - printf ("\t\tif (newv > 0xffff) {\n"); - printf ("\t\t\tSET_VFLG (1);\n"); + printf ("\t\tif (src) {\n"); + if (using_exception_3) + { + printf ("\t\t\tif (offs & 1) {\n"); + printf ("\t\t\t\texception3i (opcode, %s + 2 + (uae_s32)offs + 2);\n", getpc); + returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); + printf ("\t\t\t}\n"); + } + irc2ir (); + add_head_cycs (6); + fill_prefetch_1 (2); + fill_prefetch_full_020 (); + returncycles ("\t\t\t", 10); + printf ("\t\t}\n"); + add_head_cycs (10); + addcycles000_nonce("\t\t", 2 + 2); + printf ("\t} else {\n"); + addcycles000_onlyce(2); + addcycles000_nonce("\t\t", 2); + printf ("\t}\n"); + pop_ins_cnt(); + setpc ("oldpc + %d", m68k_pc_offset); + clear_m68k_offset(); + get_prefetch_020_continue (); + fill_prefetch_full_000 (); + insn_n_cycles = 12; + branch_inst = 1; + break; + case i_Scc: + // confirmed + //next_level_000 (); + genamode (curi, curi->smode, "srcreg", curi->size, "src", cpu_level == 0 ? 1 : 2, 0, 0); + start_brace (); + fill_prefetch_next(); + start_brace (); + printf ("\tint val = cctrue (regs.ccrflags, %d) ? 0xff : 0;\n", curi->cc); + if (isreg (curi->smode)) + { + if (using_ce) + printf ("\tint cycles = val ? 2 : 0;\n"); + addcycles000_3 ("\t"); + addcycles000_nonces("\t", "(val ? 2 : 0)"); + } + genastore ("val", curi->smode, "srcreg", curi->size, "src"); + if(!using_prefetch && curi->smode != Dreg) + addcycles000 (4); + break; + case i_DIVU: + tail_ce020_done = true; + genamodedual (curi, + curi->smode, "srcreg", sz_word, "src", 1, 0, + curi->dmode, "dstreg", sz_long, "dst", 1, 0); + printf ("\tCLEAR_CZNV ();\n"); + printf ("\tif (src == 0) {\n"); + if (cpu_level > 0) + { + /* 68020 sets V when dividing by zero and N if dst is negative + * 68000 clears both + */ + printf("\t\tSET_VFLG (1);\n"); + printf("\t\tif (dst < 0) SET_NFLG (1);\n"); + } + incpc ("%d", m68k_pc_offset); + printf ("\t\tException (5);\n"); + returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); + printf ("\t} else {\n"); + printf ("\t\tuae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;\n"); + printf ("\t\tuae_u32 rem = (uae_u32)dst %% (uae_u32)(uae_u16)src;\n"); + if (using_ce) + { + start_brace (); + printf ("\t\tint cycles = (getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4;\n"); + addcycles000_3 ("\t\t"); + } + addcycles000_nonces("\t\t", "(getDivu68kCycles((uae_u32)dst, (uae_u16)src)) - 4"); + fill_prefetch_next (); + /* The N flag appears to be set each time there is an overflow. + * Weird. but 68020 only sets N when dst is negative.. */ + printf ("\t\tif (newv > 0xffff) {\n"); + printf ("\t\t\tSET_VFLG (1);\n"); #ifdef UNDEF68020 - if (cpu_level >= 2) - printf ("\t\t\tif (currprefs.cpu_level == 0 || dst < 0) SET_NFLG (®s, 1);\n"); - else /* ??? some 68000 revisions may not set NFLG when overflow happens.. */ + if (cpu_level >= 2) + printf ("\t\t\tif (currprefs.cpu_level == 0 || dst < 0) SET_NFLG (®s, 1);\n"); + else /* ??? some 68000 revisions may not set NFLG when overflow happens.. */ #endif - printf ("\t\t\tSET_NFLG (1);\n"); - printf ("\t\t} else {\n"); - printf ("\t\t"); genflags (flag_logical, sz_word, "newv", "", ""); - printf ("\t\t\tnewv = (newv & 0xffff) | ((uae_u32)rem << 16);\n"); - printf ("\t\t"); genastore ("newv", curi->dmode, "dstreg", sz_long, "dst"); - printf ("\t\t}\n"); - sync_m68k_pc (); - printf ("\t}\n"); - count_ncycles++; - //insn_n_cycles += 136 - (136 - 76) / 2; /* average */ - tail_ce020_done = false; - returntail (false); - break; - case i_DIVS: - tail_ce020_done = true; - genamodedual (curi, - curi->smode, "srcreg", sz_word, "src", 1, 0, - curi->dmode, "dstreg", sz_long, "dst", 1, 0); - printf ("\tif (src == 0) {\n"); - if (cpu_level > 0) { - /* 68020 sets V when dividing by zero. Z is also set. - * 68000 clears both - */ - printf("\t\tSET_VFLG (1);\n"); - printf("\t\tSET_ZFLG (1);\n"); - } - incpc ("%d", m68k_pc_offset); - printf ("\t\tException (5);\n"); - returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); - printf ("\t}\n"); - printf ("\tCLEAR_CZNV ();\n"); - if (using_ce) { - start_brace (); - printf ("\t\tint cycles = (getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4;\n"); - addcycles000_3 ("\t\t"); - } - addcycles000_nonces("\t\t", "(getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4"); - fill_prefetch_next (); - printf ("\tif (dst == 0x80000000 && src == -1) {\n"); - printf ("\t\tSET_VFLG (1);\n"); - printf ("\t\tSET_NFLG (1);\n"); - printf ("\t} else {\n"); - printf ("\t\tuae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;\n"); - printf ("\t\tuae_u16 rem = (uae_s32)dst %% (uae_s32)(uae_s16)src;\n"); - printf ("\t\tif ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) {\n"); - printf ("\t\t\tSET_VFLG (1);\n"); + printf ("\t\t\tSET_NFLG (1);\n"); + printf ("\t\t} else {\n"); + printf ("\t\t"); + genflags (flag_logical, sz_word, "newv", "", ""); + printf ("\t\t\tnewv = (newv & 0xffff) | ((uae_u32)rem << 16);\n"); + printf ("\t\t"); + genastore ("newv", curi->dmode, "dstreg", sz_long, "dst"); + printf ("\t\t}\n"); + sync_m68k_pc (); + printf ("\t}\n"); + count_ncycles++; + //insn_n_cycles += 136 - (136 - 76) / 2; /* average */ + tail_ce020_done = false; + returntail (false); + break; + case i_DIVS: + tail_ce020_done = true; + genamodedual (curi, + curi->smode, "srcreg", sz_word, "src", 1, 0, + curi->dmode, "dstreg", sz_long, "dst", 1, 0); + printf ("\tif (src == 0) {\n"); + if (cpu_level > 0) + { + /* 68020 sets V when dividing by zero. Z is also set. + * 68000 clears both + */ + printf("\t\tSET_VFLG (1);\n"); + printf("\t\tSET_ZFLG (1);\n"); + } + incpc ("%d", m68k_pc_offset); + printf ("\t\tException (5);\n"); + returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); + printf ("\t}\n"); + printf ("\tCLEAR_CZNV ();\n"); + if (using_ce) + { + start_brace (); + printf ("\t\tint cycles = (getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4;\n"); + addcycles000_3 ("\t\t"); + } + addcycles000_nonces("\t\t", "(getDivs68kCycles((uae_s32)dst, (uae_s16)src)) - 4"); + fill_prefetch_next (); + printf ("\tif (dst == 0x80000000 && src == -1) {\n"); + printf ("\t\tSET_VFLG (1);\n"); + printf ("\t\tSET_NFLG (1);\n"); + printf ("\t} else {\n"); + printf ("\t\tuae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;\n"); + printf ("\t\tuae_u16 rem = (uae_s32)dst %% (uae_s32)(uae_s16)src;\n"); + printf ("\t\tif ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) {\n"); + printf ("\t\t\tSET_VFLG (1);\n"); #ifdef UNDEF68020 - if (cpu_level > 0) - printf ("\t\t\tif (currprefs.cpu_level == 0) SET_NFLG (®s, 1);\n"); - else + if (cpu_level > 0) + printf ("\t\t\tif (currprefs.cpu_level == 0) SET_NFLG (®s, 1);\n"); + else #endif - printf ("\t\t\tSET_NFLG (1);\n"); - printf ("\t\t} else {\n"); - printf ("\t\t\tif (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;\n"); - genflags (flag_logical, sz_word, "newv", "", ""); - printf ("\t\t\tnewv = (newv & 0xffff) | ((uae_u32)rem << 16);\n"); - printf ("\t\t"); genastore ("newv", curi->dmode, "dstreg", sz_long, "dst"); - printf ("\t\t}\n"); - printf ("\t}\n"); - sync_m68k_pc (); - count_ncycles++; - //insn_n_cycles += 156 - (156 - 120) / 2; /* average */ - tail_ce020_done = false; - returntail (false); - break; - case i_MULU: - genamodedual (curi, - curi->smode, "srcreg", sz_word, "src", 1, 0, - curi->dmode, "dstreg", sz_word, "dst", 1, 0); - fill_prefetch_next(); - start_brace (); - printf ("\tuae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;\n"); - if (using_ce) - printf ("\tint cycles = 38 - 4, bits;\n"); - //else if (using_prefetch) - // printf ("\tint bits;\n"); - genflags (flag_logical, sz_long, "newv", "", ""); - if (using_ce) { - printf ("\tfor(bits = 0; bits < 16 && src; bits++, src >>= 1)\n"); - printf ("\t\tif (src & 1) cycles += 2;\n"); - addcycles000_3 ("\t"); - } - //addcycles000_nonce("\tfor(bits = 0; bits < 16 && src; bits++, src >>= 1)\n\t\tif (src & 1) ", 2); + printf ("\t\t\tSET_NFLG (1);\n"); + printf ("\t\t} else {\n"); + printf ("\t\t\tif (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;\n"); + genflags (flag_logical, sz_word, "newv", "", ""); + printf ("\t\t\tnewv = (newv & 0xffff) | ((uae_u32)rem << 16);\n"); + printf ("\t\t"); + genastore ("newv", curi->dmode, "dstreg", sz_long, "dst"); + printf ("\t\t}\n"); + printf ("\t}\n"); + sync_m68k_pc (); + count_ncycles++; + //insn_n_cycles += 156 - (156 - 120) / 2; /* average */ + tail_ce020_done = false; + returntail (false); + break; + case i_MULU: + genamodedual (curi, + curi->smode, "srcreg", sz_word, "src", 1, 0, + curi->dmode, "dstreg", sz_word, "dst", 1, 0); + fill_prefetch_next(); + start_brace (); + printf ("\tuae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;\n"); + if (using_ce) + printf ("\tint cycles = 38 - 4, bits;\n"); + //else if (using_prefetch) + // printf ("\tint bits;\n"); + genflags (flag_logical, sz_long, "newv", "", ""); + if (using_ce) + { + printf ("\tfor(bits = 0; bits < 16 && src; bits++, src >>= 1)\n"); + printf ("\t\tif (src & 1) cycles += 2;\n"); + addcycles000_3 ("\t"); + } + //addcycles000_nonce("\tfor(bits = 0; bits < 16 && src; bits++, src >>= 1)\n\t\tif (src & 1) ", 2); addcycles000_nonces("\t", "bitset_count16(src) * 2"); - genastore ("newv", curi->dmode, "dstreg", sz_long, "dst"); - sync_m68k_pc (); - count_cycles += 38 - 4; - count_ncycles++; - insn_n_cycles += (70 - 38) / 2 + 38; /* average */ - break; - case i_MULS: - genamodedual (curi, - curi->smode, "srcreg", sz_word, "src", 1, 0, - curi->dmode, "dstreg", sz_word, "dst", 1, 0); - fill_prefetch_next(); - start_brace (); - printf ("\tuae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;\n"); - if (using_ce) { - printf ("\tint cycles = 38 - 4, bits;\n"); - printf ("\tuae_u32 usrc;\n"); - }// else if (using_prefetch) { - // printf ("\tint bits;\n"); - // printf ("\tuae_u32 usrc;\n"); - //} - genflags (flag_logical, sz_long, "newv", "", ""); - if (using_ce) { - printf ("\tusrc = ((uae_u32)src) << 1;\n"); - printf ("\tfor(bits = 0; bits < 16 && usrc; bits++, usrc >>= 1)\n"); - printf ("\t\tif ((usrc & 3) == 1 || (usrc & 3) == 2) cycles += 2;\n"); - addcycles000_3 ("\t"); - } - //addcycles000_nonce("\tusrc = ((uae_u32)src) << 1;\n\tfor(bits = 0; bits < 16 && usrc; bits++, usrc >>= 1)\n\t\tif ((usrc & 3) == 1 || (usrc & 3) == 2) ", 2); - addcycles000_nonces("\t", "bitset_count16(src ^ (src << 1)) * 2"); - genastore ("newv", curi->dmode, "dstreg", sz_long, "dst"); - count_cycles += 38 - 4; - count_ncycles++; - insn_n_cycles += (70 - 38) / 2 + 38; /* average */ - break; - case i_CHK: - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, 0); - sync_m68k_pc (); - addcycles000 (4); - printf ("\tif (dst > src) {\n"); - printf ("\t\tSET_NFLG (0);\n"); - printf ("\t\tException (6);\n"); - returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); - printf ("\t}\n"); - addcycles000 (2); - printf ("\tif ((uae_s32)dst < 0) {\n"); - printf ("\t\tSET_NFLG (1);\n"); - printf ("\t\tException (6);\n"); - returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); - printf ("\t}\n"); - fill_prefetch_next (); - break; - case i_CHK2: - genamode (curi, curi->smode, "srcreg", curi->size, "extra", 1, 0, 0); - genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 2, 0, 0); - fill_prefetch_0 (); - printf ("\t{uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];\n"); - switch (curi->size) { - case sz_byte: - printf ("\tlower = (uae_s32)(uae_s8)%s (dsta); upper = (uae_s32)(uae_s8)%s (dsta + 1);\n", srcb, srcb); - printf ("\tif ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg;\n"); - break; - case sz_word: - printf ("\tlower = (uae_s32)(uae_s16)%s (dsta); upper = (uae_s32)(uae_s16)%s (dsta + 2);\n", srcw, srcw); - printf ("\tif ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg;\n"); - break; - case sz_long: - printf ("\tlower = %s (dsta); upper = %s (dsta + 4);\n", srcl, srcl); - break; - default: - term (); - } - printf ("\tSET_ZFLG (upper == reg || lower == reg);\n"); - printf ("\tSET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);\n"); - printf ("\tif ((extra & 0x800) && GET_CFLG ()) { Exception (6);\n"); - returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); - printf("\t}\n}\n"); - break; + genastore ("newv", curi->dmode, "dstreg", sz_long, "dst"); + sync_m68k_pc (); + count_cycles += 38 - 4; + count_ncycles++; + insn_n_cycles += (70 - 38) / 2 + 38; /* average */ + break; + case i_MULS: + genamodedual (curi, + curi->smode, "srcreg", sz_word, "src", 1, 0, + curi->dmode, "dstreg", sz_word, "dst", 1, 0); + fill_prefetch_next(); + start_brace (); + printf ("\tuae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;\n"); + if (using_ce) + { + printf ("\tint cycles = 38 - 4, bits;\n"); + printf ("\tuae_u32 usrc;\n"); + }// else if (using_prefetch) { + // printf ("\tint bits;\n"); + // printf ("\tuae_u32 usrc;\n"); + //} + genflags (flag_logical, sz_long, "newv", "", ""); + if (using_ce) + { + printf ("\tusrc = ((uae_u32)src) << 1;\n"); + printf ("\tfor(bits = 0; bits < 16 && usrc; bits++, usrc >>= 1)\n"); + printf ("\t\tif ((usrc & 3) == 1 || (usrc & 3) == 2) cycles += 2;\n"); + addcycles000_3 ("\t"); + } + //addcycles000_nonce("\tusrc = ((uae_u32)src) << 1;\n\tfor(bits = 0; bits < 16 && usrc; bits++, usrc >>= 1)\n\t\tif ((usrc & 3) == 1 || (usrc & 3) == 2) ", 2); + addcycles000_nonces("\t", "bitset_count16(src ^ (src << 1)) * 2"); + genastore ("newv", curi->dmode, "dstreg", sz_long, "dst"); + count_cycles += 38 - 4; + count_ncycles++; + insn_n_cycles += (70 - 38) / 2 + 38; /* average */ + break; + case i_CHK: + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, 0); + sync_m68k_pc (); + addcycles000 (4); + printf ("\tif (dst > src) {\n"); + printf ("\t\tSET_NFLG (0);\n"); + printf ("\t\tException (6);\n"); + returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); + printf ("\t}\n"); + addcycles000 (2); + printf ("\tif ((uae_s32)dst < 0) {\n"); + printf ("\t\tSET_NFLG (1);\n"); + printf ("\t\tException (6);\n"); + returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); + printf ("\t}\n"); + fill_prefetch_next (); + break; + case i_CHK2: + genamode (curi, curi->smode, "srcreg", curi->size, "extra", 1, 0, 0); + genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 2, 0, 0); + fill_prefetch_0 (); + printf ("\t{uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];\n"); + switch (curi->size) + { + case sz_byte: + printf ("\tlower = (uae_s32)(uae_s8)%s (dsta); upper = (uae_s32)(uae_s8)%s (dsta + 1);\n", srcb, srcb); + printf ("\tif ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg;\n"); + break; + case sz_word: + printf ("\tlower = (uae_s32)(uae_s16)%s (dsta); upper = (uae_s32)(uae_s16)%s (dsta + 2);\n", srcw, srcw); + printf ("\tif ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg;\n"); + break; + case sz_long: + printf ("\tlower = %s (dsta); upper = %s (dsta + 4);\n", srcl, srcl); + break; + default: + term (); + } + printf ("\tSET_ZFLG (upper == reg || lower == reg);\n"); + printf ("\tSET_CFLG_ALWAYS (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);\n"); + printf ("\tif ((extra & 0x800) && GET_CFLG ()) { Exception (6);\n"); + returncycles_exception ("", (count_read + 1 + count_write) * 4 + count_cycles); + printf("\t}\n}\n"); + break; - case i_ASR: - genamodedual (curi, - curi->smode, "srcreg", curi->size, "cnt", 1, 0, - curi->dmode, "dstreg", curi->size, "data", 1, GF_RMW); - //genamode (curi, curi->smode, "srcreg", curi->size, "cnt", 1, 0, 0); - //genamode (curi, curi->dmode, "dstreg", curi->size, "data", 1, 0, GF_RMW); - fill_prefetch_next(); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break; - case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break; - case sz_long: printf ("\tuae_u32 val = data;\n"); break; - default: term (); - } - printf ("\tuae_u32 sign = (%s & val) >> %d;\n", cmask (curi->size), bit_size (curi->size) - 1); - //printf ("\tint ccnt = cnt & 63;\n"); - printf ("\tcnt &= 63;\n"); - printf ("\tCLEAR_CZNV ();\n"); - printf ("\tif (cnt >= %d) {\n", bit_size (curi->size)); - printf ("\t\tval = %s & (uae_u32)-sign;\n", bit_mask (curi->size)); - printf ("\t\tSET_CFLG (sign);\n"); - duplicate_carry (1); - if (source_is_imm1_8 (curi)) - printf ("\t} else {\n"); - else - printf ("\t} else if (cnt > 0) {\n"); - printf ("\t\tval >>= cnt - 1;\n"); - printf ("\t\tSET_CFLG (val & 1);\n"); - duplicate_carry (1); - printf ("\t\tval >>= 1;\n"); - printf ("\t\tval |= (%s << (%d - cnt)) & (uae_u32)-sign;\n", - bit_mask (curi->size), - bit_size (curi->size)); - printf ("\t\tval &= %s;\n", bit_mask (curi->size)); - printf ("\t}\n"); - genflags (flag_logical_noclobber, curi->size, "val", "", ""); - shift_ce (curi->dmode, curi->size); - genastore ("val", curi->dmode, "dstreg", curi->size, "data"); - break; - case i_ASL: - genamodedual (curi, - curi->smode, "srcreg", curi->size, "cnt", 1, 0, - curi->dmode, "dstreg", curi->size, "data", 1, GF_RMW); - //genamode (curi, curi->smode, "srcreg", curi->size, "cnt", 1, 0, 0); - //genamode (curi, curi->dmode, "dstreg", curi->size, "data", 1, 0, GF_RMW); - fill_prefetch_next(); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break; - case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break; - case sz_long: printf ("\tuae_u32 val = data;\n"); break; - default: term (); - } - //printf ("\tint ccnt = cnt & 63;\n"); - printf ("\tcnt &= 63;\n"); - printf ("\tCLEAR_CZNV ();\n"); - printf ("\tif (cnt >= %d) {\n", bit_size (curi->size)); - printf ("\t\tSET_VFLG (val != 0);\n"); - printf ("\t\tSET_CFLG (cnt == %d ? val & 1 : 0);\n", - bit_size (curi->size)); - duplicate_carry (1); - printf ("\t\tval = 0;\n"); - if (source_is_imm1_8 (curi)) - printf ("\t} else {\n"); - else - printf ("\t} else if (cnt > 0) {\n"); - printf ("\t\tuae_u32 mask = (%s << (%d - cnt)) & %s;\n", - bit_mask (curi->size), - bit_size (curi->size) - 1, - bit_mask (curi->size)); - printf ("\t\tSET_VFLG ((val & mask) != mask && (val & mask) != 0);\n"); - printf ("\t\tval <<= cnt - 1;\n"); - printf ("\t\tSET_CFLG ((val & %s) >> %d);\n", cmask (curi->size), bit_size (curi->size) - 1); - duplicate_carry (1); - printf ("\t\tval <<= 1;\n"); - printf ("\t\tval &= %s;\n", bit_mask (curi->size)); - printf ("\t}\n"); - genflags (flag_logical_noclobber, curi->size, "val", "", ""); - shift_ce (curi->dmode, curi->size); - genastore ("val", curi->dmode, "dstreg", curi->size, "data"); - break; - case i_LSR: - genamodedual (curi, - curi->smode, "srcreg", curi->size, "cnt", 1, 0, - curi->dmode, "dstreg", curi->size, "data", 1, GF_RMW); - //genamode (curi, curi->smode, "srcreg", curi->size, "cnt", 1, 0, 0); - //genamode (curi, curi->dmode, "dstreg", curi->size, "data", 1, 0, GF_RMW); - fill_prefetch_next(); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break; - case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break; - case sz_long: printf ("\tuae_u32 val = data;\n"); break; - default: term (); - } - //printf ("\tint ccnt = cnt & 63;\n"); - printf ("\tcnt &= 63;\n"); - printf ("\tCLEAR_CZNV ();\n"); - printf ("\tif (cnt >= %d) {\n", bit_size (curi->size)); - printf ("\t\tSET_CFLG ((cnt == %d) & (val >> %d));\n", - bit_size (curi->size), bit_size (curi->size) - 1); - duplicate_carry (1); - printf ("\t\tval = 0;\n"); - if (source_is_imm1_8 (curi)) - printf ("\t} else {\n"); - else - printf ("\t} else if (cnt > 0) {\n"); - printf ("\t\tval >>= cnt - 1;\n"); - printf ("\t\tSET_CFLG (val & 1);\n"); - duplicate_carry (1); - printf ("\t\tval >>= 1;\n"); - printf ("\t}\n"); - genflags (flag_logical_noclobber, curi->size, "val", "", ""); - shift_ce (curi->dmode, curi->size); - genastore ("val", curi->dmode, "dstreg", curi->size, "data"); - break; - case i_LSL: - genamodedual (curi, - curi->smode, "srcreg", curi->size, "cnt", 1, 0, - curi->dmode, "dstreg", curi->size, "data", 1, GF_RMW); - //genamode (curi, curi->smode, "srcreg", curi->size, "cnt", 1, 0, 0); - //genamode (curi, curi->dmode, "dstreg", curi->size, "data", 1, 0, GF_RMW); - fill_prefetch_next(); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break; - case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break; - case sz_long: printf ("\tuae_u32 val = data;\n"); break; - default: term (); - } - //printf ("\tint ccnt = cnt & 63;\n"); - printf ("\tcnt &= 63;\n"); - printf ("\tCLEAR_CZNV ();\n"); - printf ("\tif (cnt >= %d) {\n", bit_size (curi->size)); - printf ("\t\tSET_CFLG (cnt == %d ? val & 1 : 0);\n", bit_size (curi->size)); - duplicate_carry (1); - printf ("\t\tval = 0;\n"); - if (source_is_imm1_8 (curi)) - printf ("\t} else {\n"); - else - printf ("\t} else if (cnt > 0) {\n"); - printf ("\t\tval <<= (cnt - 1);\n"); - printf ("\t\tSET_CFLG ((val & %s) >> %d);\n", cmask (curi->size), bit_size (curi->size) - 1); - duplicate_carry (1); - printf ("\t\tval <<= 1;\n"); - printf ("\tval &= %s;\n", bit_mask (curi->size)); - printf ("\t}\n"); - genflags (flag_logical_noclobber, curi->size, "val", "", ""); - shift_ce (curi->dmode, curi->size); - genastore ("val", curi->dmode, "dstreg", curi->size, "data"); - break; - case i_ROL: - genamodedual (curi, - curi->smode, "srcreg", curi->size, "cnt", 1, 0, - curi->dmode, "dstreg", curi->size, "data", 1, GF_RMW); - //genamode (curi, curi->smode, "srcreg", curi->size, "cnt", 1, 0, 0); - //genamode (curi, curi->dmode, "dstreg", curi->size, "data", 1, 0, GF_RMW); - fill_prefetch_next (); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break; - case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break; - case sz_long: printf ("\tuae_u32 val = data;\n"); break; - default: term (); - } - //printf ("\tint ccnt = cnt & 63;\n"); - printf ("\tcnt &= 63;\n"); - printf ("\tCLEAR_CZNV ();\n"); - if (source_is_imm1_8 (curi)) - printf ("{"); - else - printf ("\tif (cnt > 0) {\n"); - printf ("\tuae_u32 loval;\n"); - printf ("\tcnt &= %d;\n", bit_size (curi->size) - 1); - printf ("\tloval = val >> (%d - cnt);\n", bit_size (curi->size)); - printf ("\tval <<= cnt;\n"); - printf ("\tval |= loval;\n"); - printf ("\tval &= %s;\n", bit_mask (curi->size)); - printf ("\tSET_CFLG (val & 1);\n"); - printf ("}\n"); - genflags (flag_logical_noclobber, curi->size, "val", "", ""); - shift_ce (curi->dmode, curi->size); - genastore ("val", curi->dmode, "dstreg", curi->size, "data"); - break; - case i_ROR: - genamodedual (curi, - curi->smode, "srcreg", curi->size, "cnt", 1, 0, - curi->dmode, "dstreg", curi->size, "data", 1, GF_RMW); - //genamode (curi, curi->smode, "srcreg", curi->size, "cnt", 1, 0, 0); - //genamode (curi, curi->dmode, "dstreg", curi->size, "data", 1, 0, GF_RMW); - fill_prefetch_next (); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break; - case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break; - case sz_long: printf ("\tuae_u32 val = data;\n"); break; - default: term (); - } - //printf ("\tint ccnt = cnt & 63;\n"); - printf ("\tcnt &= 63;\n"); - printf ("\tCLEAR_CZNV ();\n"); - if (source_is_imm1_8 (curi)) - printf ("{"); - else - printf ("\tif (cnt > 0) {"); - printf ("\tuae_u32 hival;\n"); - printf ("\tcnt &= %d;\n", bit_size (curi->size) - 1); - printf ("\thival = val << (%d - cnt);\n", bit_size (curi->size)); - printf ("\tval >>= cnt;\n"); - printf ("\tval |= hival;\n"); - printf ("\tval &= %s;\n", bit_mask (curi->size)); - printf ("\tSET_CFLG ((val & %s) >> %d);\n", cmask (curi->size), bit_size (curi->size) - 1); - printf ("\t}\n"); - genflags (flag_logical_noclobber, curi->size, "val", "", ""); - shift_ce (curi->dmode, curi->size); - genastore ("val", curi->dmode, "dstreg", curi->size, "data"); - break; - case i_ROXL: - genamodedual (curi, - curi->smode, "srcreg", curi->size, "cnt", 1, 0, - curi->dmode, "dstreg", curi->size, "data", 1, GF_RMW); - //genamode (curi, curi->smode, "srcreg", curi->size, "cnt", 1, 0, 0); - //genamode (curi, curi->dmode, "dstreg", curi->size, "data", 1, 0, GF_RMW); - fill_prefetch_next (); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break; - case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break; - case sz_long: printf ("\tuae_u32 val = data;\n"); break; - default: term (); - } - //printf ("\tint ccnt = cnt & 63;\n"); - printf ("\tcnt &= 63;\n"); - printf ("\tCLEAR_CZNV ();\n"); - if (source_is_imm1_8 (curi)) - printf ("{"); - else { - force_range_for_rox ("cnt", curi->size); - printf ("\tif (cnt > 0) {\n"); - } - printf ("\tcnt--;\n"); - printf ("\t{\n\tuae_u32 carry;\n"); - printf ("\tuae_u32 loval = val >> (%d - cnt);\n", bit_size (curi->size) - 1); - printf ("\tcarry = loval & 1;\n"); - printf ("\tval = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1);\n"); - printf ("\tSET_XFLG (carry);\n"); - printf ("\tval &= %s;\n", bit_mask (curi->size)); - printf ("\t} }\n"); - printf ("\tSET_CFLG (GET_XFLG ());\n"); - genflags (flag_logical_noclobber, curi->size, "val", "", ""); - shift_ce (curi->dmode, curi->size); - genastore ("val", curi->dmode, "dstreg", curi->size, "data"); - break; - case i_ROXR: - genamodedual (curi, - curi->smode, "srcreg", curi->size, "cnt", 1, 0, - curi->dmode, "dstreg", curi->size, "data", 1, GF_RMW); - //genamode (curi, curi->smode, "srcreg", curi->size, "cnt", 1, 0, 0); - //genamode (curi, curi->dmode, "dstreg", curi->size, "data", 1, 0, GF_RMW); - fill_prefetch_next (); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break; - case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break; - case sz_long: printf ("\tuae_u32 val = data;\n"); break; - default: term (); - } - //printf ("\tint ccnt = cnt & 63;\n"); - printf ("\tcnt &= 63;\n"); - printf ("\tCLEAR_CZNV ();\n"); - if (source_is_imm1_8 (curi)) - printf ("{"); - else { - force_range_for_rox ("cnt", curi->size); - printf ("\tif (cnt > 0) {\n"); - } - printf ("\tcnt--;\n"); - printf ("\t{\n\tuae_u32 carry;\n"); - printf ("\tuae_u32 hival = (val << 1) | GET_XFLG ();\n"); - printf ("\thival <<= (%d - cnt);\n", bit_size (curi->size) - 1); - printf ("\tval >>= cnt;\n"); - printf ("\tcarry = val & 1;\n"); - printf ("\tval >>= 1;\n"); - printf ("\tval |= hival;\n"); - printf ("\tSET_XFLG (carry);\n"); - printf ("\tval &= %s;\n", bit_mask (curi->size)); - printf ("\t} }\n"); - printf ("\tSET_CFLG (GET_XFLG ());\n"); - genflags (flag_logical_noclobber, curi->size, "val", "", ""); - shift_ce (curi->dmode, curi->size); - genastore ("val", curi->dmode, "dstreg", curi->size, "data"); - break; - case i_ASRW: - genamode (curi, curi->smode, "srcreg", curi->size, "data", 1, 0, GF_RMW); - fill_prefetch_next (); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break; - case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break; - case sz_long: printf ("\tuae_u32 val = data;\n"); break; - default: term (); - } - printf ("\tuae_u32 sign = %s & val;\n", cmask (curi->size)); - printf ("\tuae_u32 cflg = val & 1;\n"); - printf ("\tval = (val >> 1) | sign;\n"); - genflags (flag_logical, curi->size, "val", "", ""); - printf ("\tSET_CFLG (cflg);\n"); - duplicate_carry (0); - genastore ("val", curi->smode, "srcreg", curi->size, "data"); - break; - case i_ASLW: - genamode (curi, curi->smode, "srcreg", curi->size, "data", 1, 0, GF_RMW); - fill_prefetch_next (); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break; - case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break; - case sz_long: printf ("\tuae_u32 val = data;\n"); break; - default: term (); - } - printf ("\tuae_u32 sign = %s & val;\n", cmask (curi->size)); - printf ("\tuae_u32 sign2;\n"); - printf ("\tval <<= 1;\n"); - genflags (flag_logical, curi->size, "val", "", ""); - printf ("\tsign2 = %s & val;\n", cmask (curi->size)); - printf ("\tSET_CFLG (sign != 0);\n"); - duplicate_carry (0); - printf ("\tSET_VFLG (GET_VFLG () | (sign2 != sign));\n"); - genastore ("val", curi->smode, "srcreg", curi->size, "data"); - break; - case i_LSRW: - genamode (curi, curi->smode, "srcreg", curi->size, "data", 1, 0, GF_RMW); - fill_prefetch_next (); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuae_u32 val = (uae_u8)data;\n"); break; - case sz_word: printf ("\tuae_u32 val = (uae_u16)data;\n"); break; - case sz_long: printf ("\tuae_u32 val = data;\n"); break; - default: term (); - } - printf ("\tuae_u32 carry = val & 1;\n"); - printf ("\tval >>= 1;\n"); - genflags (flag_logical, curi->size, "val", "", ""); - printf ("\tSET_CFLG (carry);\n"); - duplicate_carry (0); - genastore ("val", curi->smode, "srcreg", curi->size, "data"); - break; - case i_LSLW: - genamode (curi, curi->smode, "srcreg", curi->size, "data", 1, 0, GF_RMW); - fill_prefetch_next (); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuae_u8 val = data;\n"); break; - case sz_word: printf ("\tuae_u16 val = data;\n"); break; - case sz_long: printf ("\tuae_u32 val = data;\n"); break; - default: term (); - } - printf ("\tuae_u32 carry = val & %s;\n", cmask (curi->size)); - printf ("\tval <<= 1;\n"); - genflags (flag_logical, curi->size, "val", "", ""); - printf ("\tSET_CFLG (carry >> %d);\n", bit_size (curi->size) - 1); - duplicate_carry (0); - genastore ("val", curi->smode, "srcreg", curi->size, "data"); - break; - case i_ROLW: - genamode (curi, curi->smode, "srcreg", curi->size, "data", 1, 0, GF_RMW); - fill_prefetch_next (); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuae_u8 val = data;\n"); break; - case sz_word: printf ("\tuae_u16 val = data;\n"); break; - case sz_long: printf ("\tuae_u32 val = data;\n"); break; - default: term (); - } - printf ("\tuae_u32 carry = val & %s;\n", cmask (curi->size)); - printf ("\tval <<= 1;\n"); - printf ("\tif (carry) val |= 1;\n"); - genflags (flag_logical, curi->size, "val", "", ""); - printf ("\tSET_CFLG (carry >> %d);\n", bit_size (curi->size) - 1); - genastore ("val", curi->smode, "srcreg", curi->size, "data"); - break; - case i_RORW: - genamode (curi, curi->smode, "srcreg", curi->size, "data", 1, 0, GF_RMW); - fill_prefetch_next (); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuae_u8 val = data;\n"); break; - case sz_word: printf ("\tuae_u16 val = data;\n"); break; - case sz_long: printf ("\tuae_u32 val = data;\n"); break; - default: term (); - } - printf ("\tuae_u32 carry = val & 1;\n"); - printf ("\tval >>= 1;\n"); - printf ("\tif (carry) val |= %s;\n", cmask (curi->size)); - genflags (flag_logical, curi->size, "val", "", ""); - printf ("\tSET_CFLG (carry);\n"); - genastore ("val", curi->smode, "srcreg", curi->size, "data"); - break; - case i_ROXLW: - genamode (curi, curi->smode, "srcreg", curi->size, "data", 1, 0, GF_RMW); - fill_prefetch_next (); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuae_u8 val = data;\n"); break; - case sz_word: printf ("\tuae_u16 val = data;\n"); break; - case sz_long: printf ("\tuae_u32 val = data;\n"); break; - default: term (); - } - printf ("\tuae_u32 carry = val & %s;\n", cmask (curi->size)); - printf ("\tval <<= 1;\n"); - printf ("\tif (GET_XFLG ()) val |= 1;\n"); - genflags (flag_logical, curi->size, "val", "", ""); - printf ("\tSET_CFLG (carry >> %d);\n", bit_size (curi->size) - 1); - duplicate_carry (0); - genastore ("val", curi->smode, "srcreg", curi->size, "data"); - break; - case i_ROXRW: - genamode (curi, curi->smode, "srcreg", curi->size, "data", 1, 0, GF_RMW); - fill_prefetch_next (); - start_brace (); - switch (curi->size) { - case sz_byte: printf ("\tuae_u8 val = data;\n"); break; - case sz_word: printf ("\tuae_u16 val = data;\n"); break; - case sz_long: printf ("\tuae_u32 val = data;\n"); break; - default: term (); - } - printf ("\tuae_u32 carry = val & 1;\n"); - printf ("\tval >>= 1;\n"); - printf ("\tif (GET_XFLG ()) val |= %s;\n", cmask (curi->size)); - genflags (flag_logical, curi->size, "val", "", ""); - printf ("\tSET_CFLG (carry);\n"); - duplicate_carry (0); - genastore ("val", curi->smode, "srcreg", curi->size, "data"); - break; - case i_MOVEC2: - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - fill_prefetch_next (); - start_brace (); - printf ("\tint regno = (src >> 12) & 15;\n"); - printf ("\tuae_u32 *regp = regs.regs + regno;\n"); - printf ("\tif (! m68k_movec2(src & 0xFFF, regp)) goto %s;\n", endlabelstr); - need_endlabel = 1; - break; - case i_MOVE2C: - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); - fill_prefetch_next (); - start_brace (); - printf ("\tint regno = (src >> 12) & 15;\n"); - printf ("\tuae_u32 *regp = regs.regs + regno;\n"); - printf ("\tif (! m68k_move2c(src & 0xFFF, regp)) goto %s;\n", endlabelstr); - need_endlabel = 1; - break; - case i_CAS: - { - int old_brace_level; - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_LRMW); - genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, GF_LRMW); - //if (cpu_level == 5 && curi->size > 0) { - // printf ("\tif ((dsta & %d) && currprefs.cpu_compatible && get_cpu_model () == 68060) {\n", curi->size == 1 ? 1 : 3); - // if (curi->dmode == Aipi || curi->dmode == Apdi) - // printf ("\t\tm68k_areg (regs, dstreg) %c= %d;\n", curi->dmode == Aipi ? '-' : '+', 1 << curi->size); - // sync_m68k_pc_noreset (); - // printf ("\t\top_unimpl (opcode);\n"); - // printf ("\t\tgoto %s;\n", endlabelstr); - // printf ("\t}\n"); - // need_endlabel = 1; - //} - fill_prefetch_0 (); - start_brace (); - printf ("\tint ru = (src >> 6) & 7;\n"); - printf ("\tint rc = src & 7;\n"); - genflags (flag_cmp, curi->size, "newv", "m68k_dreg (regs, rc)", "dst"); - sync_m68k_pc (); - printf ("\tif (GET_ZFLG ())"); - old_brace_level = n_braces; - start_brace (); - printf ("\n\t"); - genastore_cas ("(m68k_dreg (regs, ru))", curi->dmode, "dstreg", curi->size, "dst"); - printf ("\t"); - pop_braces (old_brace_level); - printf ("else"); - start_brace (); - printf ("\n"); - get_prefetch_020 (); - if (cpu_level >= 4) { - // apparently 68040/060 needs to always write at the end of RMW cycle - printf ("\t"); - genastore_cas ("dst", curi->dmode, "dstreg", curi->size, "dst"); - } - switch (curi->size) { - case sz_byte: - printf ("\t\tm68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xff) | (dst & 0xff);\n"); - break; - case sz_word: - printf ("\t\tm68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xffff) | (dst & 0xffff);\n"); - break; - default: - printf ("\t\tm68k_dreg(regs, rc) = dst;\n"); - break; - } - pop_braces (old_brace_level); - } - break; - case i_CAS2: - genamode (curi, curi->smode, "srcreg", curi->size, "extra", 1, 0, GF_LRMW); - printf ("\tuae_u32 rn1 = regs.regs[(extra >> 28) & 15];\n"); - printf ("\tuae_u32 rn2 = regs.regs[(extra >> 12) & 15];\n"); - if (curi->size == sz_word) { - int old_brace_level = n_braces; - printf ("\tuae_u16 dst1 = %s (rn1), dst2 = %s (rn2);\n", srcwlrmw, srcwlrmw); - genflags (flag_cmp, curi->size, "newv", "m68k_dreg (regs, (extra >> 16) & 7)", "dst1"); - printf ("\tif (GET_ZFLG ()) {\n"); - genflags (flag_cmp, curi->size, "newv", "m68k_dreg (regs, extra & 7)", "dst2"); - printf ("\tif (GET_ZFLG ()) {\n"); - printf ("\t%s (rn1, m68k_dreg (regs, (extra >> 22) & 7));\n", dstwlrmw); - printf ("\t%s (rn2, m68k_dreg (regs, (extra >> 6) & 7));\n", dstwlrmw); - printf ("\t}}\n"); - pop_braces (old_brace_level); - printf ("\tif (! GET_ZFLG ()) {\n"); - printf ("\tm68k_dreg (regs, (extra >> 0) & 7) = (m68k_dreg (regs, (extra >> 6) & 7) & ~0xffff) | (dst2 & 0xffff);\n"); - printf ("\tm68k_dreg (regs, (extra >> 16) & 7) = (m68k_dreg (regs, (extra >> 22) & 7) & ~0xffff) | (dst1 & 0xffff);\n"); - printf ("\t}\n"); - } else { - int old_brace_level = n_braces; - printf ("\tuae_u32 dst1 = %s (rn1), dst2 = %s (rn2);\n", srcllrmw, srcllrmw); - genflags (flag_cmp, curi->size, "newv", "m68k_dreg (regs, (extra >> 16) & 7)", "dst1"); - printf ("\tif (GET_ZFLG ()) {\n"); - genflags (flag_cmp, curi->size, "newv", "m68k_dreg (regs, extra & 7)", "dst2"); - printf ("\tif (GET_ZFLG ()) {\n"); - printf ("\t%s (rn1, m68k_dreg (regs, (extra >> 22) & 7));\n", dstllrmw); - printf ("\t%s (rn2, m68k_dreg (regs, (extra >> 6) & 7));\n", dstllrmw); - printf ("\t}}\n"); - pop_braces (old_brace_level); - printf ("\tif (! GET_ZFLG ()) {\n"); - printf ("\tm68k_dreg (regs, (extra >> 0) & 7) = dst2;\n"); - printf ("\tm68k_dreg (regs, (extra >> 16) & 7) = dst1;\n"); - printf ("\t}\n"); - } - break; - case i_MOVES: /* ignore DFC and SFC when using_mmu == false */ - { - int old_brace_level; - tail_ce020_done = true; - genamode (curi, curi->smode, "srcreg", curi->size, "extra", 1, 0, 0); - printf ("\tif (extra & 0x800)\n"); - { - int old_m68k_pc_offset = m68k_pc_offset; - old_brace_level = n_braces; - start_brace (); - printf ("\tuae_u32 src = regs.regs[(extra >> 12) & 15];\n"); - genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 2, 0, 0); - genastore_fc ("src", curi->dmode, "dstreg", curi->size, "dst"); - pop_braces (old_brace_level); - m68k_pc_offset = old_m68k_pc_offset; - } - printf ("else"); - { - start_brace (); - genamode (curi, curi->dmode, "dstreg", curi->size, "src", 1, 0, GF_FC); - printf ("\tif (extra & 0x8000) {\n"); - switch (curi->size) { - case sz_byte: printf ("\tm68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src;\n"); break; - case sz_word: printf ("\tm68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src;\n"); break; - case sz_long: printf ("\tm68k_areg (regs, (extra >> 12) & 7) = src;\n"); break; - default: term (); - } - printf ("\t} else {\n"); - genastore ("src", Dreg, "(extra >> 12) & 7", curi->size, ""); - printf ("\t}\n"); - if (using_mmu == 68040) - sync_m68k_pc (); - pop_braces (old_brace_level); - } - tail_ce020_done = false; - returntail (false); - } - break; - case i_BKPT: /* only needed for hardware emulators */ - sync_m68k_pc (); - printf ("\top_illg (opcode);\n"); - did_prefetch = -1; - break; - case i_CALLM: /* not present in 68030 */ - sync_m68k_pc (); - printf ("\top_illg (opcode);\n"); - did_prefetch = -1; - break; - case i_RTM: /* not present in 68030 */ - sync_m68k_pc (); - printf ("\top_illg (opcode);\n"); - did_prefetch = -1; - break; - case i_TRAPcc: - if (curi->smode != am_unknown && curi->smode != am_illg) - genamode (curi, curi->smode, "srcreg", curi->size, "dummy", 1, 0, 0); - fill_prefetch_0 (); - printf ("\tif (cctrue (regs.ccrflags, %d)) { Exception (7); goto %s; }\n", curi->cc, endlabelstr); - need_endlabel = 1; - break; - case i_DIVL: - genamode (curi, curi->smode, "srcreg", curi->size, "extra", 1, 0, 0); - printf ("\tif (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2;\n"); - genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, 0); - sync_m68k_pc (); - printf ("\tif (dst == 0) {\n"); - printf ("\t\tException (5);\n"); - printf ("\t\treturn 4 * CYCLE_UNIT / 2;\n"); - printf ("\t}\n"); - printf ("\tm68k_divl(opcode, dst, extra);\n"); - break; - case i_MULL: - genamode (curi, curi->smode, "srcreg", curi->size, "extra", 1, 0, 0); - genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, 0); - sync_m68k_pc (); - printf ("\tm68k_mull(opcode, dst, extra);\n"); - break; - case i_BFTST: - case i_BFEXTU: - case i_BFCHG: - case i_BFEXTS: - case i_BFCLR: - case i_BFFFO: - case i_BFSET: - case i_BFINS: - { - const char *getb, *putb; + case i_ASR: + genamodedual (curi, + curi->smode, "srcreg", curi->size, "cnt", 1, 0, + curi->dmode, "dstreg", curi->size, "data", 1, GF_RMW); + //genamode (curi, curi->smode, "srcreg", curi->size, "cnt", 1, 0, 0); + //genamode (curi, curi->dmode, "dstreg", curi->size, "data", 1, 0, GF_RMW); + fill_prefetch_next(); + start_brace (); + switch (curi->size) + { + case sz_byte: + printf ("\tuae_u32 val = (uae_u8)data;\n"); + break; + case sz_word: + printf ("\tuae_u32 val = (uae_u16)data;\n"); + break; + case sz_long: + printf ("\tuae_u32 val = data;\n"); + break; + default: + term (); + } + printf ("\tuae_u32 sign = (%s & val) >> %d;\n", cmask (curi->size), bit_size (curi->size) - 1); + //printf ("\tint ccnt = cnt & 63;\n"); + printf ("\tcnt &= 63;\n"); + printf ("\tCLEAR_CZNV ();\n"); + printf ("\tif (cnt >= %d) {\n", bit_size (curi->size)); + printf ("\t\tval = %s & (uae_u32)-sign;\n", bit_mask (curi->size)); + printf ("\t\tSET_CFLG (sign);\n"); + duplicate_carry (1); + if (source_is_imm1_8 (curi)) + printf ("\t} else {\n"); + else + printf ("\t} else if (cnt > 0) {\n"); + printf ("\t\tval >>= cnt - 1;\n"); + printf ("\t\tSET_CFLG (val & 1);\n"); + duplicate_carry (1); + printf ("\t\tval >>= 1;\n"); + printf ("\t\tval |= (%s << (%d - cnt)) & (uae_u32)-sign;\n", + bit_mask (curi->size), + bit_size (curi->size)); + printf ("\t\tval &= %s;\n", bit_mask (curi->size)); + printf ("\t}\n"); + genflags (flag_logical_noclobber, curi->size, "val", "", ""); + shift_ce (curi->dmode, curi->size); + genastore ("val", curi->dmode, "dstreg", curi->size, "data"); + break; + case i_ASL: + genamodedual (curi, + curi->smode, "srcreg", curi->size, "cnt", 1, 0, + curi->dmode, "dstreg", curi->size, "data", 1, GF_RMW); + //genamode (curi, curi->smode, "srcreg", curi->size, "cnt", 1, 0, 0); + //genamode (curi, curi->dmode, "dstreg", curi->size, "data", 1, 0, GF_RMW); + fill_prefetch_next(); + start_brace (); + switch (curi->size) + { + case sz_byte: + printf ("\tuae_u32 val = (uae_u8)data;\n"); + break; + case sz_word: + printf ("\tuae_u32 val = (uae_u16)data;\n"); + break; + case sz_long: + printf ("\tuae_u32 val = data;\n"); + break; + default: + term (); + } + //printf ("\tint ccnt = cnt & 63;\n"); + printf ("\tcnt &= 63;\n"); + printf ("\tCLEAR_CZNV ();\n"); + printf ("\tif (cnt >= %d) {\n", bit_size (curi->size)); + printf ("\t\tSET_VFLG (val != 0);\n"); + printf ("\t\tSET_CFLG (cnt == %d ? val & 1 : 0);\n", + bit_size (curi->size)); + duplicate_carry (1); + printf ("\t\tval = 0;\n"); + if (source_is_imm1_8 (curi)) + printf ("\t} else {\n"); + else + printf ("\t} else if (cnt > 0) {\n"); + printf ("\t\tuae_u32 mask = (%s << (%d - cnt)) & %s;\n", + bit_mask (curi->size), + bit_size (curi->size) - 1, + bit_mask (curi->size)); + printf ("\t\tSET_VFLG ((val & mask) != mask && (val & mask) != 0);\n"); + printf ("\t\tval <<= cnt - 1;\n"); + printf ("\t\tSET_CFLG ((val & %s) >> %d);\n", cmask (curi->size), bit_size (curi->size) - 1); + duplicate_carry (1); + printf ("\t\tval <<= 1;\n"); + printf ("\t\tval &= %s;\n", bit_mask (curi->size)); + printf ("\t}\n"); + genflags (flag_logical_noclobber, curi->size, "val", "", ""); + shift_ce (curi->dmode, curi->size); + genastore ("val", curi->dmode, "dstreg", curi->size, "data"); + break; + case i_LSR: + genamodedual (curi, + curi->smode, "srcreg", curi->size, "cnt", 1, 0, + curi->dmode, "dstreg", curi->size, "data", 1, GF_RMW); + //genamode (curi, curi->smode, "srcreg", curi->size, "cnt", 1, 0, 0); + //genamode (curi, curi->dmode, "dstreg", curi->size, "data", 1, 0, GF_RMW); + fill_prefetch_next(); + start_brace (); + switch (curi->size) + { + case sz_byte: + printf ("\tuae_u32 val = (uae_u8)data;\n"); + break; + case sz_word: + printf ("\tuae_u32 val = (uae_u16)data;\n"); + break; + case sz_long: + printf ("\tuae_u32 val = data;\n"); + break; + default: + term (); + } + //printf ("\tint ccnt = cnt & 63;\n"); + printf ("\tcnt &= 63;\n"); + printf ("\tCLEAR_CZNV ();\n"); + printf ("\tif (cnt >= %d) {\n", bit_size (curi->size)); + printf ("\t\tSET_CFLG ((cnt == %d) & (val >> %d));\n", + bit_size (curi->size), bit_size (curi->size) - 1); + duplicate_carry (1); + printf ("\t\tval = 0;\n"); + if (source_is_imm1_8 (curi)) + printf ("\t} else {\n"); + else + printf ("\t} else if (cnt > 0) {\n"); + printf ("\t\tval >>= cnt - 1;\n"); + printf ("\t\tSET_CFLG (val & 1);\n"); + duplicate_carry (1); + printf ("\t\tval >>= 1;\n"); + printf ("\t}\n"); + genflags (flag_logical_noclobber, curi->size, "val", "", ""); + shift_ce (curi->dmode, curi->size); + genastore ("val", curi->dmode, "dstreg", curi->size, "data"); + break; + case i_LSL: + genamodedual (curi, + curi->smode, "srcreg", curi->size, "cnt", 1, 0, + curi->dmode, "dstreg", curi->size, "data", 1, GF_RMW); + //genamode (curi, curi->smode, "srcreg", curi->size, "cnt", 1, 0, 0); + //genamode (curi, curi->dmode, "dstreg", curi->size, "data", 1, 0, GF_RMW); + fill_prefetch_next(); + start_brace (); + switch (curi->size) + { + case sz_byte: + printf ("\tuae_u32 val = (uae_u8)data;\n"); + break; + case sz_word: + printf ("\tuae_u32 val = (uae_u16)data;\n"); + break; + case sz_long: + printf ("\tuae_u32 val = data;\n"); + break; + default: + term (); + } + //printf ("\tint ccnt = cnt & 63;\n"); + printf ("\tcnt &= 63;\n"); + printf ("\tCLEAR_CZNV ();\n"); + printf ("\tif (cnt >= %d) {\n", bit_size (curi->size)); + printf ("\t\tSET_CFLG (cnt == %d ? val & 1 : 0);\n", bit_size (curi->size)); + duplicate_carry (1); + printf ("\t\tval = 0;\n"); + if (source_is_imm1_8 (curi)) + printf ("\t} else {\n"); + else + printf ("\t} else if (cnt > 0) {\n"); + printf ("\t\tval <<= (cnt - 1);\n"); + printf ("\t\tSET_CFLG ((val & %s) >> %d);\n", cmask (curi->size), bit_size (curi->size) - 1); + duplicate_carry (1); + printf ("\t\tval <<= 1;\n"); + printf ("\tval &= %s;\n", bit_mask (curi->size)); + printf ("\t}\n"); + genflags (flag_logical_noclobber, curi->size, "val", "", ""); + shift_ce (curi->dmode, curi->size); + genastore ("val", curi->dmode, "dstreg", curi->size, "data"); + break; + case i_ROL: + genamodedual (curi, + curi->smode, "srcreg", curi->size, "cnt", 1, 0, + curi->dmode, "dstreg", curi->size, "data", 1, GF_RMW); + //genamode (curi, curi->smode, "srcreg", curi->size, "cnt", 1, 0, 0); + //genamode (curi, curi->dmode, "dstreg", curi->size, "data", 1, 0, GF_RMW); + fill_prefetch_next (); + start_brace (); + switch (curi->size) + { + case sz_byte: + printf ("\tuae_u32 val = (uae_u8)data;\n"); + break; + case sz_word: + printf ("\tuae_u32 val = (uae_u16)data;\n"); + break; + case sz_long: + printf ("\tuae_u32 val = data;\n"); + break; + default: + term (); + } + //printf ("\tint ccnt = cnt & 63;\n"); + printf ("\tcnt &= 63;\n"); + printf ("\tCLEAR_CZNV ();\n"); + if (source_is_imm1_8 (curi)) + printf ("{"); + else + printf ("\tif (cnt > 0) {\n"); + printf ("\tuae_u32 loval;\n"); + printf ("\tcnt &= %d;\n", bit_size (curi->size) - 1); + printf ("\tloval = val >> (%d - cnt);\n", bit_size (curi->size)); + printf ("\tval <<= cnt;\n"); + printf ("\tval |= loval;\n"); + printf ("\tval &= %s;\n", bit_mask (curi->size)); + printf ("\tSET_CFLG (val & 1);\n"); + printf ("}\n"); + genflags (flag_logical_noclobber, curi->size, "val", "", ""); + shift_ce (curi->dmode, curi->size); + genastore ("val", curi->dmode, "dstreg", curi->size, "data"); + break; + case i_ROR: + genamodedual (curi, + curi->smode, "srcreg", curi->size, "cnt", 1, 0, + curi->dmode, "dstreg", curi->size, "data", 1, GF_RMW); + //genamode (curi, curi->smode, "srcreg", curi->size, "cnt", 1, 0, 0); + //genamode (curi, curi->dmode, "dstreg", curi->size, "data", 1, 0, GF_RMW); + fill_prefetch_next (); + start_brace (); + switch (curi->size) + { + case sz_byte: + printf ("\tuae_u32 val = (uae_u8)data;\n"); + break; + case sz_word: + printf ("\tuae_u32 val = (uae_u16)data;\n"); + break; + case sz_long: + printf ("\tuae_u32 val = data;\n"); + break; + default: + term (); + } + //printf ("\tint ccnt = cnt & 63;\n"); + printf ("\tcnt &= 63;\n"); + printf ("\tCLEAR_CZNV ();\n"); + if (source_is_imm1_8 (curi)) + printf ("{"); + else + printf ("\tif (cnt > 0) {"); + printf ("\tuae_u32 hival;\n"); + printf ("\tcnt &= %d;\n", bit_size (curi->size) - 1); + printf ("\thival = val << (%d - cnt);\n", bit_size (curi->size)); + printf ("\tval >>= cnt;\n"); + printf ("\tval |= hival;\n"); + printf ("\tval &= %s;\n", bit_mask (curi->size)); + printf ("\tSET_CFLG ((val & %s) >> %d);\n", cmask (curi->size), bit_size (curi->size) - 1); + printf ("\t}\n"); + genflags (flag_logical_noclobber, curi->size, "val", "", ""); + shift_ce (curi->dmode, curi->size); + genastore ("val", curi->dmode, "dstreg", curi->size, "data"); + break; + case i_ROXL: + genamodedual (curi, + curi->smode, "srcreg", curi->size, "cnt", 1, 0, + curi->dmode, "dstreg", curi->size, "data", 1, GF_RMW); + //genamode (curi, curi->smode, "srcreg", curi->size, "cnt", 1, 0, 0); + //genamode (curi, curi->dmode, "dstreg", curi->size, "data", 1, 0, GF_RMW); + fill_prefetch_next (); + start_brace (); + switch (curi->size) + { + case sz_byte: + printf ("\tuae_u32 val = (uae_u8)data;\n"); + break; + case sz_word: + printf ("\tuae_u32 val = (uae_u16)data;\n"); + break; + case sz_long: + printf ("\tuae_u32 val = data;\n"); + break; + default: + term (); + } + //printf ("\tint ccnt = cnt & 63;\n"); + printf ("\tcnt &= 63;\n"); + printf ("\tCLEAR_CZNV ();\n"); + if (source_is_imm1_8 (curi)) + printf ("{"); + else + { + force_range_for_rox ("cnt", curi->size); + printf ("\tif (cnt > 0) {\n"); + } + printf ("\tcnt--;\n"); + printf ("\t{\n\tuae_u32 carry;\n"); + printf ("\tuae_u32 loval = val >> (%d - cnt);\n", bit_size (curi->size) - 1); + printf ("\tcarry = loval & 1;\n"); + printf ("\tval = (((val << 1) | GET_XFLG ()) << cnt) | (loval >> 1);\n"); + printf ("\tSET_XFLG (carry);\n"); + printf ("\tval &= %s;\n", bit_mask (curi->size)); + printf ("\t} }\n"); + printf ("\tSET_CFLG (GET_XFLG ());\n"); + genflags (flag_logical_noclobber, curi->size, "val", "", ""); + shift_ce (curi->dmode, curi->size); + genastore ("val", curi->dmode, "dstreg", curi->size, "data"); + break; + case i_ROXR: + genamodedual (curi, + curi->smode, "srcreg", curi->size, "cnt", 1, 0, + curi->dmode, "dstreg", curi->size, "data", 1, GF_RMW); + //genamode (curi, curi->smode, "srcreg", curi->size, "cnt", 1, 0, 0); + //genamode (curi, curi->dmode, "dstreg", curi->size, "data", 1, 0, GF_RMW); + fill_prefetch_next (); + start_brace (); + switch (curi->size) + { + case sz_byte: + printf ("\tuae_u32 val = (uae_u8)data;\n"); + break; + case sz_word: + printf ("\tuae_u32 val = (uae_u16)data;\n"); + break; + case sz_long: + printf ("\tuae_u32 val = data;\n"); + break; + default: + term (); + } + //printf ("\tint ccnt = cnt & 63;\n"); + printf ("\tcnt &= 63;\n"); + printf ("\tCLEAR_CZNV ();\n"); + if (source_is_imm1_8 (curi)) + printf ("{"); + else + { + force_range_for_rox ("cnt", curi->size); + printf ("\tif (cnt > 0) {\n"); + } + printf ("\tcnt--;\n"); + printf ("\t{\n\tuae_u32 carry;\n"); + printf ("\tuae_u32 hival = (val << 1) | GET_XFLG ();\n"); + printf ("\thival <<= (%d - cnt);\n", bit_size (curi->size) - 1); + printf ("\tval >>= cnt;\n"); + printf ("\tcarry = val & 1;\n"); + printf ("\tval >>= 1;\n"); + printf ("\tval |= hival;\n"); + printf ("\tSET_XFLG (carry);\n"); + printf ("\tval &= %s;\n", bit_mask (curi->size)); + printf ("\t} }\n"); + printf ("\tSET_CFLG (GET_XFLG ());\n"); + genflags (flag_logical_noclobber, curi->size, "val", "", ""); + shift_ce (curi->dmode, curi->size); + genastore ("val", curi->dmode, "dstreg", curi->size, "data"); + break; + case i_ASRW: + genamode (curi, curi->smode, "srcreg", curi->size, "data", 1, 0, GF_RMW); + fill_prefetch_next (); + start_brace (); + switch (curi->size) + { + case sz_byte: + printf ("\tuae_u32 val = (uae_u8)data;\n"); + break; + case sz_word: + printf ("\tuae_u32 val = (uae_u16)data;\n"); + break; + case sz_long: + printf ("\tuae_u32 val = data;\n"); + break; + default: + term (); + } + printf ("\tuae_u32 sign = %s & val;\n", cmask (curi->size)); + printf ("\tuae_u32 cflg = val & 1;\n"); + printf ("\tval = (val >> 1) | sign;\n"); + genflags (flag_logical, curi->size, "val", "", ""); + printf ("\tSET_CFLG (cflg);\n"); + duplicate_carry (0); + genastore ("val", curi->smode, "srcreg", curi->size, "data"); + break; + case i_ASLW: + genamode (curi, curi->smode, "srcreg", curi->size, "data", 1, 0, GF_RMW); + fill_prefetch_next (); + start_brace (); + switch (curi->size) + { + case sz_byte: + printf ("\tuae_u32 val = (uae_u8)data;\n"); + break; + case sz_word: + printf ("\tuae_u32 val = (uae_u16)data;\n"); + break; + case sz_long: + printf ("\tuae_u32 val = data;\n"); + break; + default: + term (); + } + printf ("\tuae_u32 sign = %s & val;\n", cmask (curi->size)); + printf ("\tuae_u32 sign2;\n"); + printf ("\tval <<= 1;\n"); + genflags (flag_logical, curi->size, "val", "", ""); + printf ("\tsign2 = %s & val;\n", cmask (curi->size)); + printf ("\tSET_CFLG (sign != 0);\n"); + duplicate_carry (0); + printf ("\tSET_VFLG (GET_VFLG () | (sign2 != sign));\n"); + genastore ("val", curi->smode, "srcreg", curi->size, "data"); + break; + case i_LSRW: + genamode (curi, curi->smode, "srcreg", curi->size, "data", 1, 0, GF_RMW); + fill_prefetch_next (); + start_brace (); + switch (curi->size) + { + case sz_byte: + printf ("\tuae_u32 val = (uae_u8)data;\n"); + break; + case sz_word: + printf ("\tuae_u32 val = (uae_u16)data;\n"); + break; + case sz_long: + printf ("\tuae_u32 val = data;\n"); + break; + default: + term (); + } + printf ("\tuae_u32 carry = val & 1;\n"); + printf ("\tval >>= 1;\n"); + genflags (flag_logical, curi->size, "val", "", ""); + printf ("\tSET_CFLG (carry);\n"); + duplicate_carry (0); + genastore ("val", curi->smode, "srcreg", curi->size, "data"); + break; + case i_LSLW: + genamode (curi, curi->smode, "srcreg", curi->size, "data", 1, 0, GF_RMW); + fill_prefetch_next (); + start_brace (); + switch (curi->size) + { + case sz_byte: + printf ("\tuae_u8 val = data;\n"); + break; + case sz_word: + printf ("\tuae_u16 val = data;\n"); + break; + case sz_long: + printf ("\tuae_u32 val = data;\n"); + break; + default: + term (); + } + printf ("\tuae_u32 carry = val & %s;\n", cmask (curi->size)); + printf ("\tval <<= 1;\n"); + genflags (flag_logical, curi->size, "val", "", ""); + printf ("\tSET_CFLG (carry >> %d);\n", bit_size (curi->size) - 1); + duplicate_carry (0); + genastore ("val", curi->smode, "srcreg", curi->size, "data"); + break; + case i_ROLW: + genamode (curi, curi->smode, "srcreg", curi->size, "data", 1, 0, GF_RMW); + fill_prefetch_next (); + start_brace (); + switch (curi->size) + { + case sz_byte: + printf ("\tuae_u8 val = data;\n"); + break; + case sz_word: + printf ("\tuae_u16 val = data;\n"); + break; + case sz_long: + printf ("\tuae_u32 val = data;\n"); + break; + default: + term (); + } + printf ("\tuae_u32 carry = val & %s;\n", cmask (curi->size)); + printf ("\tval <<= 1;\n"); + printf ("\tif (carry) val |= 1;\n"); + genflags (flag_logical, curi->size, "val", "", ""); + printf ("\tSET_CFLG (carry >> %d);\n", bit_size (curi->size) - 1); + genastore ("val", curi->smode, "srcreg", curi->size, "data"); + break; + case i_RORW: + genamode (curi, curi->smode, "srcreg", curi->size, "data", 1, 0, GF_RMW); + fill_prefetch_next (); + start_brace (); + switch (curi->size) + { + case sz_byte: + printf ("\tuae_u8 val = data;\n"); + break; + case sz_word: + printf ("\tuae_u16 val = data;\n"); + break; + case sz_long: + printf ("\tuae_u32 val = data;\n"); + break; + default: + term (); + } + printf ("\tuae_u32 carry = val & 1;\n"); + printf ("\tval >>= 1;\n"); + printf ("\tif (carry) val |= %s;\n", cmask (curi->size)); + genflags (flag_logical, curi->size, "val", "", ""); + printf ("\tSET_CFLG (carry);\n"); + genastore ("val", curi->smode, "srcreg", curi->size, "data"); + break; + case i_ROXLW: + genamode (curi, curi->smode, "srcreg", curi->size, "data", 1, 0, GF_RMW); + fill_prefetch_next (); + start_brace (); + switch (curi->size) + { + case sz_byte: + printf ("\tuae_u8 val = data;\n"); + break; + case sz_word: + printf ("\tuae_u16 val = data;\n"); + break; + case sz_long: + printf ("\tuae_u32 val = data;\n"); + break; + default: + term (); + } + printf ("\tuae_u32 carry = val & %s;\n", cmask (curi->size)); + printf ("\tval <<= 1;\n"); + printf ("\tif (GET_XFLG ()) val |= 1;\n"); + genflags (flag_logical, curi->size, "val", "", ""); + printf ("\tSET_CFLG (carry >> %d);\n", bit_size (curi->size) - 1); + duplicate_carry (0); + genastore ("val", curi->smode, "srcreg", curi->size, "data"); + break; + case i_ROXRW: + genamode (curi, curi->smode, "srcreg", curi->size, "data", 1, 0, GF_RMW); + fill_prefetch_next (); + start_brace (); + switch (curi->size) + { + case sz_byte: + printf ("\tuae_u8 val = data;\n"); + break; + case sz_word: + printf ("\tuae_u16 val = data;\n"); + break; + case sz_long: + printf ("\tuae_u32 val = data;\n"); + break; + default: + term (); + } + printf ("\tuae_u32 carry = val & 1;\n"); + printf ("\tval >>= 1;\n"); + printf ("\tif (GET_XFLG ()) val |= %s;\n", cmask (curi->size)); + genflags (flag_logical, curi->size, "val", "", ""); + printf ("\tSET_CFLG (carry);\n"); + duplicate_carry (0); + genastore ("val", curi->smode, "srcreg", curi->size, "data"); + break; + case i_MOVEC2: + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + fill_prefetch_next (); + start_brace (); + printf ("\tint regno = (src >> 12) & 15;\n"); + printf ("\tuae_u32 *regp = regs.regs + regno;\n"); + printf ("\tif (! m68k_movec2(src & 0xFFF, regp)) goto %s;\n", endlabelstr); + need_endlabel = 1; + break; + case i_MOVE2C: + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0); + fill_prefetch_next (); + start_brace (); + printf ("\tint regno = (src >> 12) & 15;\n"); + printf ("\tuae_u32 *regp = regs.regs + regno;\n"); + printf ("\tif (! m68k_move2c(src & 0xFFF, regp)) goto %s;\n", endlabelstr); + need_endlabel = 1; + break; + case i_CAS: + { + int old_brace_level; + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_LRMW); + genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, GF_LRMW); + //if (cpu_level == 5 && curi->size > 0) { + // printf ("\tif ((dsta & %d) && currprefs.cpu_compatible && get_cpu_model () == 68060) {\n", curi->size == 1 ? 1 : 3); + // if (curi->dmode == Aipi || curi->dmode == Apdi) + // printf ("\t\tm68k_areg (regs, dstreg) %c= %d;\n", curi->dmode == Aipi ? '-' : '+', 1 << curi->size); + // sync_m68k_pc_noreset (); + // printf ("\t\top_unimpl (opcode);\n"); + // printf ("\t\tgoto %s;\n", endlabelstr); + // printf ("\t}\n"); + // need_endlabel = 1; + //} + fill_prefetch_0 (); + start_brace (); + printf ("\tint ru = (src >> 6) & 7;\n"); + printf ("\tint rc = src & 7;\n"); + genflags (flag_cmp, curi->size, "newv", "m68k_dreg (regs, rc)", "dst"); + sync_m68k_pc (); + printf ("\tif (GET_ZFLG ())"); + old_brace_level = n_braces; + start_brace (); + printf ("\n\t"); + genastore_cas ("(m68k_dreg (regs, ru))", curi->dmode, "dstreg", curi->size, "dst"); + printf ("\t"); + pop_braces (old_brace_level); + printf ("else"); + start_brace (); + printf ("\n"); + get_prefetch_020 (); + if (cpu_level >= 4) + { + // apparently 68040/060 needs to always write at the end of RMW cycle + printf ("\t"); + genastore_cas ("dst", curi->dmode, "dstreg", curi->size, "dst"); + } + switch (curi->size) + { + case sz_byte: + printf ("\t\tm68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xff) | (dst & 0xff);\n"); + break; + case sz_word: + printf ("\t\tm68k_dreg(regs, rc) = (m68k_dreg(regs, rc) & ~0xffff) | (dst & 0xffff);\n"); + break; + default: + printf ("\t\tm68k_dreg(regs, rc) = dst;\n"); + break; + } + pop_braces (old_brace_level); + } + break; + case i_CAS2: + genamode (curi, curi->smode, "srcreg", curi->size, "extra", 1, 0, GF_LRMW); + printf ("\tuae_u32 rn1 = regs.regs[(extra >> 28) & 15];\n"); + printf ("\tuae_u32 rn2 = regs.regs[(extra >> 12) & 15];\n"); + if (curi->size == sz_word) + { + int old_brace_level = n_braces; + printf ("\tuae_u16 dst1 = %s (rn1), dst2 = %s (rn2);\n", srcwlrmw, srcwlrmw); + genflags (flag_cmp, curi->size, "newv", "m68k_dreg (regs, (extra >> 16) & 7)", "dst1"); + printf ("\tif (GET_ZFLG ()) {\n"); + genflags (flag_cmp, curi->size, "newv", "m68k_dreg (regs, extra & 7)", "dst2"); + printf ("\tif (GET_ZFLG ()) {\n"); + printf ("\t%s (rn1, m68k_dreg (regs, (extra >> 22) & 7));\n", dstwlrmw); + printf ("\t%s (rn2, m68k_dreg (regs, (extra >> 6) & 7));\n", dstwlrmw); + printf ("\t}}\n"); + pop_braces (old_brace_level); + printf ("\tif (! GET_ZFLG ()) {\n"); + printf ("\tm68k_dreg (regs, (extra >> 0) & 7) = (m68k_dreg (regs, (extra >> 6) & 7) & ~0xffff) | (dst2 & 0xffff);\n"); + printf ("\tm68k_dreg (regs, (extra >> 16) & 7) = (m68k_dreg (regs, (extra >> 22) & 7) & ~0xffff) | (dst1 & 0xffff);\n"); + printf ("\t}\n"); + } + else + { + int old_brace_level = n_braces; + printf ("\tuae_u32 dst1 = %s (rn1), dst2 = %s (rn2);\n", srcllrmw, srcllrmw); + genflags (flag_cmp, curi->size, "newv", "m68k_dreg (regs, (extra >> 16) & 7)", "dst1"); + printf ("\tif (GET_ZFLG ()) {\n"); + genflags (flag_cmp, curi->size, "newv", "m68k_dreg (regs, extra & 7)", "dst2"); + printf ("\tif (GET_ZFLG ()) {\n"); + printf ("\t%s (rn1, m68k_dreg (regs, (extra >> 22) & 7));\n", dstllrmw); + printf ("\t%s (rn2, m68k_dreg (regs, (extra >> 6) & 7));\n", dstllrmw); + printf ("\t}}\n"); + pop_braces (old_brace_level); + printf ("\tif (! GET_ZFLG ()) {\n"); + printf ("\tm68k_dreg (regs, (extra >> 0) & 7) = dst2;\n"); + printf ("\tm68k_dreg (regs, (extra >> 16) & 7) = dst1;\n"); + printf ("\t}\n"); + } + break; + case i_MOVES: /* ignore DFC and SFC when using_mmu == false */ + { + int old_brace_level; + tail_ce020_done = true; + genamode (curi, curi->smode, "srcreg", curi->size, "extra", 1, 0, 0); + printf ("\tif (extra & 0x800)\n"); + { + int old_m68k_pc_offset = m68k_pc_offset; + old_brace_level = n_braces; + start_brace (); + printf ("\tuae_u32 src = regs.regs[(extra >> 12) & 15];\n"); + genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 2, 0, 0); + genastore_fc ("src", curi->dmode, "dstreg", curi->size, "dst"); + pop_braces (old_brace_level); + m68k_pc_offset = old_m68k_pc_offset; + } + printf ("else"); + { + start_brace (); + genamode (curi, curi->dmode, "dstreg", curi->size, "src", 1, 0, GF_FC); + printf ("\tif (extra & 0x8000) {\n"); + switch (curi->size) + { + case sz_byte: + printf ("\tm68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src;\n"); + break; + case sz_word: + printf ("\tm68k_areg (regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src;\n"); + break; + case sz_long: + printf ("\tm68k_areg (regs, (extra >> 12) & 7) = src;\n"); + break; + default: + term (); + } + printf ("\t} else {\n"); + genastore ("src", Dreg, "(extra >> 12) & 7", curi->size, ""); + printf ("\t}\n"); + if (using_mmu == 68040) + sync_m68k_pc (); + pop_braces (old_brace_level); + } + tail_ce020_done = false; + returntail (false); + } + break; + case i_BKPT: /* only needed for hardware emulators */ + sync_m68k_pc (); + printf ("\top_illg (opcode);\n"); + did_prefetch = -1; + break; + case i_CALLM: /* not present in 68030 */ + sync_m68k_pc (); + printf ("\top_illg (opcode);\n"); + did_prefetch = -1; + break; + case i_RTM: /* not present in 68030 */ + sync_m68k_pc (); + printf ("\top_illg (opcode);\n"); + did_prefetch = -1; + break; + case i_TRAPcc: + if (curi->smode != am_unknown && curi->smode != am_illg) + genamode (curi, curi->smode, "srcreg", curi->size, "dummy", 1, 0, 0); + fill_prefetch_0 (); + printf ("\tif (cctrue (regs.ccrflags, %d)) { Exception (7); goto %s; }\n", curi->cc, endlabelstr); + need_endlabel = 1; + break; + case i_DIVL: + genamode (curi, curi->smode, "srcreg", curi->size, "extra", 1, 0, 0); + printf ("\tif (extra & 0x800) cyc = 12 * CYCLE_UNIT / 2;\n"); + genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, 0); + sync_m68k_pc (); + printf ("\tif (dst == 0) {\n"); + printf ("\t\tException (5);\n"); + printf ("\t\treturn 4 * CYCLE_UNIT / 2;\n"); + printf ("\t}\n"); + printf ("\tm68k_divl(opcode, dst, extra);\n"); + break; + case i_MULL: + genamode (curi, curi->smode, "srcreg", curi->size, "extra", 1, 0, 0); + genamode (curi, curi->dmode, "dstreg", curi->size, "dst", 1, 0, 0); + sync_m68k_pc (); + printf ("\tm68k_mull(opcode, dst, extra);\n"); + break; + case i_BFTST: + case i_BFEXTU: + case i_BFCHG: + case i_BFEXTS: + case i_BFCLR: + case i_BFFFO: + case i_BFSET: + case i_BFINS: + { + const char *getb, *putb; - if (using_mmu == 68060 && (curi->mnemo == i_BFCHG || curi->mnemo == i_BFCLR || curi->mnemo == i_BFSET || curi->mnemo == i_BFINS)) { - getb = "mmu060_get_rmw_bitfield"; - putb = "mmu060_put_rmw_bitfield"; - } else if (using_mmu || using_ce020 || using_indirect > 0) { - getb = "x_get_bitfield"; - putb = "x_put_bitfield"; - } else { - getb = "get_bitfield"; - putb = "put_bitfield"; - } + if (using_mmu == 68060 && (curi->mnemo == i_BFCHG || curi->mnemo == i_BFCLR || curi->mnemo == i_BFSET || curi->mnemo == i_BFINS)) + { + getb = "mmu060_get_rmw_bitfield"; + putb = "mmu060_put_rmw_bitfield"; + } + else if (using_mmu || using_ce020 || using_indirect > 0) + { + getb = "x_get_bitfield"; + putb = "x_put_bitfield"; + } + else + { + getb = "get_bitfield"; + putb = "put_bitfield"; + } - genamode (curi, curi->smode, "srcreg", curi->size, "extra", 1, 0, 0); - genamode (curi, curi->dmode, "dstreg", sz_long, "dst", 2, 0, 0); - start_brace (); - printf ("\tuae_u32 bdata[2];\n"); - printf ("\tuae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;\n"); - printf ("\tint width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;\n"); - if (curi->mnemo == i_BFFFO) - printf("\tuae_u32 offset2 = offset;\n"); - if (curi->dmode == Dreg) { - printf ("\tuae_u32 tmp = m68k_dreg(regs, dstreg);\n"); - printf ("\toffset &= 0x1f;\n"); - printf ("\ttmp = (tmp << offset) | (tmp >> (32 - offset));\n"); - printf ("\tbdata[0] = tmp & ((1 << (32 - width)) - 1);\n"); - } else { - printf ("\tuae_u32 tmp;\n"); - printf ("\tdsta += offset >> 3;\n"); - printf ("\ttmp = %s (dsta, bdata, offset, width);\n", getb); - } - printf ("\tSET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0);\n"); - if (curi->mnemo == i_BFEXTS) - printf ("\ttmp = (uae_s32)tmp >> (32 - width);\n"); - else - printf ("\ttmp >>= (32 - width);\n"); - printf ("\tSET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);\n"); - switch (curi->mnemo) { - case i_BFTST: - break; - case i_BFEXTU: - case i_BFEXTS: - printf ("\tm68k_dreg (regs, (extra >> 12) & 7) = tmp;\n"); - break; - case i_BFCHG: - printf ("\ttmp = tmp ^ (0xffffffffu >> (32 - width));\n"); - break; - case i_BFCLR: - printf ("\ttmp = 0;\n"); - break; - case i_BFFFO: - printf ("\t{ uae_u32 mask = 1 << (width - 1);\n"); - printf ("\twhile (mask) { if (tmp & mask) break; mask >>= 1; offset2++; }}\n"); - printf ("\tm68k_dreg (regs, (extra >> 12) & 7) = offset2;\n"); - break; - case i_BFSET: - printf ("\ttmp = 0xffffffffu >> (32 - width);\n"); - break; - case i_BFINS: - printf ("\ttmp = m68k_dreg (regs, (extra >> 12) & 7);\n"); - printf ("\ttmp = tmp & (0xffffffffu >> (32 - width));\n"); - printf ("\tSET_NFLG (tmp & (1 << (width - 1)) ? 1 : 0);\n"); - printf ("\tSET_ZFLG (tmp == 0);\n"); - break; - default: - break; - } - if (curi->mnemo == i_BFCHG - || curi->mnemo == i_BFCLR - || curi->mnemo == i_BFSET - || curi->mnemo == i_BFINS) { - if (curi->dmode == Dreg) { - printf ("\ttmp = bdata[0] | (tmp << (32 - width));\n"); - printf ("\tm68k_dreg(regs, dstreg) = (tmp >> offset) | (tmp << (32 - offset));\n"); - } else { - printf ("\t%s(dsta, bdata, tmp, offset, width);\n", putb); - } - } - } - break; - case i_PACK: - if (curi->smode == Dreg) { - printf ("\tuae_u16 val = m68k_dreg (regs, srcreg) + %s;\n", gen_nextiword (0)); - printf ("\tm68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & 0xffffff00) | ((val >> 4) & 0xf0) | (val & 0xf);\n"); - } else { - printf ("\tuae_u16 val;\n"); - addmmufixup ("srcreg"); - printf ("\tm68k_areg (regs, srcreg) -= areg_byteinc[srcreg];\n"); - printf ("\tval = (uae_u16)(%s (m68k_areg (regs, srcreg)) & 0xff);\n", srcb); - printf ("\tm68k_areg (regs, srcreg) -= areg_byteinc[srcreg];\n"); - printf ("\tval = (val | ((uae_u16)(%s (m68k_areg (regs, srcreg)) & 0xff) << 8)) + %s;\n", srcb, gen_nextiword (0)); - addmmufixup ("dstreg"); - printf ("\tm68k_areg (regs, dstreg) -= areg_byteinc[dstreg];\n"); - gen_set_fault_pc (); - printf ("\t%s (m68k_areg (regs, dstreg),((val >> 4) & 0xf0) | (val & 0xf));\n", dstb); - } - break; - case i_UNPK: - if (curi->smode == Dreg) { - printf ("\tuae_u16 val = m68k_dreg (regs, srcreg);\n"); - printf ("\tval = (((val << 4) & 0xf00) | (val & 0xf)) + %s;\n", gen_nextiword (0)); - printf ("\tm68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & 0xffff0000) | (val & 0xffff);\n"); - } else { - printf ("\tuae_u16 val;\n"); - addmmufixup ("srcreg"); - printf ("\tm68k_areg (regs, srcreg) -= areg_byteinc[srcreg];\n"); - printf ("\tval = (uae_u16)(%s (m68k_areg (regs, srcreg)) & 0xff);\n", srcb); - printf ("\tval = (((val << 4) & 0xf00) | (val & 0xf)) + %s;\n", gen_nextiword (0)); - addmmufixup ("dstreg"); - if (cpu_level >= 2) { - printf ("\tm68k_areg (regs, dstreg) -= 2 * areg_byteinc[dstreg];\n"); - printf ("\t%s (m68k_areg (regs, dstreg) + areg_byteinc[dstreg], val);\n", dstb); - printf ("\t%s (m68k_areg (regs, dstreg), val >> 8);\n", dstb); - } else { - printf ("\tm68k_areg (regs, dstreg) -= areg_byteinc[dstreg];\n"); - printf ("\t%s (m68k_areg (regs, dstreg),val);\n", dstb); - printf ("\tm68k_areg (regs, dstreg) -= areg_byteinc[dstreg];\n"); - gen_set_fault_pc (); - printf ("\t%s (m68k_areg (regs, dstreg),val >> 8);\n", dstb); - } - } - break; - case i_TAS: - genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_LRMW); - genflags (flag_logical, curi->size, "src", "", ""); - if (!isreg (curi->smode)) - addcycles000 (6); - fill_prefetch_next (); - printf ("\tsrc |= 0x80;\n"); - if (cpu_level >= 2 || curi->smode == Dreg || !using_ce) { - if (next_cpu_level < 2) - next_cpu_level = 2 - 1; - genastore_tas ("src", curi->smode, "srcreg", curi->size, "src"); - } else { - printf ("\tif (!is_cycle_ce ()) {\n"); - genastore ("src", curi->smode, "srcreg", curi->size, "src"); - printf ("\t} else {\n"); - printf ("\t\t%s (4);\n", do_cycles); - addcycles000_nonce("\t\t", 4); - printf ("\t}\n"); - } - break; - case i_FPP: - fpulimit(); - genamode (curi, curi->smode, "srcreg", curi->size, "extra", 1, 0, 0); - sync_m68k_pc (); - printf ("\tfpuop_arithmetic(opcode, regs, extra);\n"); - break; - case i_FDBcc: - fpulimit(); - genamode (curi, curi->smode, "srcreg", curi->size, "extra", 1, 0, 0); - sync_m68k_pc (); - printf ("\tfpuop_dbcc (opcode, regs, extra);\n"); - break; - case i_FScc: - fpulimit(); - genamode (curi, curi->smode, "srcreg", curi->size, "extra", 1, 0, 0); - sync_m68k_pc (); - printf ("\tfpuop_scc (opcode, regs, extra);\n"); - break; - case i_FTRAPcc: - fpulimit(); - printf ("\tuaecptr oldpc = %s;\n", getpc); - printf ("\tuae_u16 extra = %s;\n", gen_nextiword (0)); - if (curi->smode != am_unknown && curi->smode != am_illg) - genamode (curi, curi->smode, "srcreg", curi->size, "dummy", 1, 0, 0); - sync_m68k_pc (); - printf ("\tfpuop_trapcc (opcode, regs, oldpc, extra);\n"); - break; - case i_FBcc: - fpulimit(); - sync_m68k_pc (); - start_brace (); - printf ("\tuaecptr pc = %s;\n", getpc); - genamode (curi, curi->dmode, "srcreg", curi->size, "extra", 1, 0, 0); - sync_m68k_pc (); - printf ("\tfpuop_bcc (opcode, regs, pc,extra);\n"); - break; - case i_FSAVE: - fpulimit(); - sync_m68k_pc (); - printf ("\tfpuop_save (opcode, regs);\n"); - break; - case i_FRESTORE: - fpulimit(); - sync_m68k_pc (); - printf ("\tfpuop_restore (opcode, regs);\n"); - break; + genamode (curi, curi->smode, "srcreg", curi->size, "extra", 1, 0, 0); + genamode (curi, curi->dmode, "dstreg", sz_long, "dst", 2, 0, 0); + start_brace (); + printf ("\tuae_u32 bdata[2];\n"); + printf ("\tuae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;\n"); + printf ("\tint width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;\n"); + if (curi->mnemo == i_BFFFO) + printf("\tuae_u32 offset2 = offset;\n"); + if (curi->dmode == Dreg) + { + printf ("\tuae_u32 tmp = m68k_dreg(regs, dstreg);\n"); + printf ("\toffset &= 0x1f;\n"); + printf ("\ttmp = (tmp << offset) | (tmp >> (32 - offset));\n"); + printf ("\tbdata[0] = tmp & ((1 << (32 - width)) - 1);\n"); + } + else + { + printf ("\tuae_u32 tmp;\n"); + printf ("\tdsta += offset >> 3;\n"); + printf ("\ttmp = %s (dsta, bdata, offset, width);\n", getb); + } + printf ("\tSET_NFLG_ALWAYS (((uae_s32)tmp) < 0 ? 1 : 0);\n"); + if (curi->mnemo == i_BFEXTS) + printf ("\ttmp = (uae_s32)tmp >> (32 - width);\n"); + else + printf ("\ttmp >>= (32 - width);\n"); + printf ("\tSET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);\n"); + switch (curi->mnemo) + { + case i_BFTST: + break; + case i_BFEXTU: + case i_BFEXTS: + printf ("\tm68k_dreg (regs, (extra >> 12) & 7) = tmp;\n"); + break; + case i_BFCHG: + printf ("\ttmp = tmp ^ (0xffffffffu >> (32 - width));\n"); + break; + case i_BFCLR: + printf ("\ttmp = 0;\n"); + break; + case i_BFFFO: + printf ("\t{ uae_u32 mask = 1 << (width - 1);\n"); + printf ("\twhile (mask) { if (tmp & mask) break; mask >>= 1; offset2++; }}\n"); + printf ("\tm68k_dreg (regs, (extra >> 12) & 7) = offset2;\n"); + break; + case i_BFSET: + printf ("\ttmp = 0xffffffffu >> (32 - width);\n"); + break; + case i_BFINS: + printf ("\ttmp = m68k_dreg (regs, (extra >> 12) & 7);\n"); + printf ("\ttmp = tmp & (0xffffffffu >> (32 - width));\n"); + printf ("\tSET_NFLG (tmp & (1 << (width - 1)) ? 1 : 0);\n"); + printf ("\tSET_ZFLG (tmp == 0);\n"); + break; + default: + break; + } + if (curi->mnemo == i_BFCHG + || curi->mnemo == i_BFCLR + || curi->mnemo == i_BFSET + || curi->mnemo == i_BFINS) + { + if (curi->dmode == Dreg) + { + printf ("\ttmp = bdata[0] | (tmp << (32 - width));\n"); + printf ("\tm68k_dreg(regs, dstreg) = (tmp >> offset) | (tmp << (32 - offset));\n"); + } + else + { + printf ("\t%s(dsta, bdata, tmp, offset, width);\n", putb); + } + } + } + break; + case i_PACK: + if (curi->smode == Dreg) + { + printf ("\tuae_u16 val = m68k_dreg (regs, srcreg) + %s;\n", gen_nextiword (0)); + printf ("\tm68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & 0xffffff00) | ((val >> 4) & 0xf0) | (val & 0xf);\n"); + } + else + { + printf ("\tuae_u16 val;\n"); + addmmufixup ("srcreg"); + printf ("\tm68k_areg (regs, srcreg) -= areg_byteinc[srcreg];\n"); + printf ("\tval = (uae_u16)(%s (m68k_areg (regs, srcreg)) & 0xff);\n", srcb); + printf ("\tm68k_areg (regs, srcreg) -= areg_byteinc[srcreg];\n"); + printf ("\tval = (val | ((uae_u16)(%s (m68k_areg (regs, srcreg)) & 0xff) << 8)) + %s;\n", srcb, gen_nextiword (0)); + addmmufixup ("dstreg"); + printf ("\tm68k_areg (regs, dstreg) -= areg_byteinc[dstreg];\n"); + gen_set_fault_pc (); + printf ("\t%s (m68k_areg (regs, dstreg),((val >> 4) & 0xf0) | (val & 0xf));\n", dstb); + } + break; + case i_UNPK: + if (curi->smode == Dreg) + { + printf ("\tuae_u16 val = m68k_dreg (regs, srcreg);\n"); + printf ("\tval = (((val << 4) & 0xf00) | (val & 0xf)) + %s;\n", gen_nextiword (0)); + printf ("\tm68k_dreg (regs, dstreg) = (m68k_dreg (regs, dstreg) & 0xffff0000) | (val & 0xffff);\n"); + } + else + { + printf ("\tuae_u16 val;\n"); + addmmufixup ("srcreg"); + printf ("\tm68k_areg (regs, srcreg) -= areg_byteinc[srcreg];\n"); + printf ("\tval = (uae_u16)(%s (m68k_areg (regs, srcreg)) & 0xff);\n", srcb); + printf ("\tval = (((val << 4) & 0xf00) | (val & 0xf)) + %s;\n", gen_nextiword (0)); + addmmufixup ("dstreg"); + if (cpu_level >= 2) + { + printf ("\tm68k_areg (regs, dstreg) -= 2 * areg_byteinc[dstreg];\n"); + printf ("\t%s (m68k_areg (regs, dstreg) + areg_byteinc[dstreg], val);\n", dstb); + printf ("\t%s (m68k_areg (regs, dstreg), val >> 8);\n", dstb); + } + else + { + printf ("\tm68k_areg (regs, dstreg) -= areg_byteinc[dstreg];\n"); + printf ("\t%s (m68k_areg (regs, dstreg),val);\n", dstb); + printf ("\tm68k_areg (regs, dstreg) -= areg_byteinc[dstreg];\n"); + gen_set_fault_pc (); + printf ("\t%s (m68k_areg (regs, dstreg),val >> 8);\n", dstb); + } + } + break; + case i_TAS: + genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_LRMW); + genflags (flag_logical, curi->size, "src", "", ""); + if (!isreg (curi->smode)) + addcycles000 (6); + fill_prefetch_next (); + printf ("\tsrc |= 0x80;\n"); + if (cpu_level >= 2 || curi->smode == Dreg || !using_ce) + { + if (next_cpu_level < 2) + next_cpu_level = 2 - 1; + genastore_tas ("src", curi->smode, "srcreg", curi->size, "src"); + } + else + { + printf ("\tif (!is_cycle_ce ()) {\n"); + genastore ("src", curi->smode, "srcreg", curi->size, "src"); + printf ("\t} else {\n"); + printf ("\t\t%s (4);\n", do_cycles); + addcycles000_nonce("\t\t", 4); + printf ("\t}\n"); + } + break; + case i_FPP: + fpulimit(); + genamode (curi, curi->smode, "srcreg", curi->size, "extra", 1, 0, 0); + sync_m68k_pc (); + printf ("\tfpuop_arithmetic(opcode, regs, extra);\n"); + break; + case i_FDBcc: + fpulimit(); + genamode (curi, curi->smode, "srcreg", curi->size, "extra", 1, 0, 0); + sync_m68k_pc (); + printf ("\tfpuop_dbcc (opcode, regs, extra);\n"); + break; + case i_FScc: + fpulimit(); + genamode (curi, curi->smode, "srcreg", curi->size, "extra", 1, 0, 0); + sync_m68k_pc (); + printf ("\tfpuop_scc (opcode, regs, extra);\n"); + break; + case i_FTRAPcc: + fpulimit(); + printf ("\tuaecptr oldpc = %s;\n", getpc); + printf ("\tuae_u16 extra = %s;\n", gen_nextiword (0)); + if (curi->smode != am_unknown && curi->smode != am_illg) + genamode (curi, curi->smode, "srcreg", curi->size, "dummy", 1, 0, 0); + sync_m68k_pc (); + printf ("\tfpuop_trapcc (opcode, regs, oldpc, extra);\n"); + break; + case i_FBcc: + fpulimit(); + sync_m68k_pc (); + start_brace (); + printf ("\tuaecptr pc = %s;\n", getpc); + genamode (curi, curi->dmode, "srcreg", curi->size, "extra", 1, 0, 0); + sync_m68k_pc (); + printf ("\tfpuop_bcc (opcode, regs, pc,extra);\n"); + break; + case i_FSAVE: + fpulimit(); + sync_m68k_pc (); + printf ("\tfpuop_save (opcode, regs);\n"); + break; + case i_FRESTORE: + fpulimit(); + sync_m68k_pc (); + printf ("\tfpuop_restore (opcode, regs);\n"); + break; - case i_CINVL: - case i_CINVP: - case i_CINVA: - case i_CPUSHL: - case i_CPUSHP: - case i_CPUSHA: - printf ("\tflush_cpu_caches_040(opcode);\n"); - if (using_mmu) - printf ("\tflush_mmu%s(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3);\n", mmu_postfix); - printf ("\tif (opcode & 0x80)\n"); - printf ("\t\tflush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3);\n"); - break; + case i_CINVL: + case i_CINVP: + case i_CINVA: + case i_CPUSHL: + case i_CPUSHP: + case i_CPUSHA: + printf ("\tflush_cpu_caches_040(opcode);\n"); + if (using_mmu) + printf ("\tflush_mmu%s(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3);\n", mmu_postfix); + printf ("\tif (opcode & 0x80)\n"); + printf ("\t\tflush_icache(m68k_areg (regs, opcode & 3), (opcode >> 6) & 3);\n"); + break; - case i_MOVE16: - { - if ((opcode & 0xfff8) == 0xf620) { - /* MOVE16 (Ax)+,(Ay)+ */ - printf ("\tuae_u32 v[4];\n"); - printf ("\tuaecptr mems = m68k_areg (regs, srcreg) & ~15, memd;\n"); - printf ("\tdstreg = (%s >> 12) & 7;\n", gen_nextiword (0)); - printf ("\tmemd = m68k_areg (regs, dstreg) & ~15;\n"); - if (using_mmu >= 68040) { - printf ("\tget_move16_mmu (mems, v);\n"); - printf ("\tput_move16_mmu (memd, v);\n"); - } else { - printf ("\tv[0] = %s (mems);\n", srcl); - printf ("\tv[1] = %s (mems + 4);\n", srcl); - printf ("\tv[2] = %s (mems + 8);\n", srcl); - printf ("\tv[3] = %s (mems + 12);\n", srcl); - printf ("\t%s (memd , v[0]);\n", dstl); - printf ("\t%s (memd + 4, v[1]);\n", dstl); - printf ("\t%s (memd + 8, v[2]);\n", dstl); - printf ("\t%s (memd + 12, v[3]);\n", dstl); - } - printf ("\tif (srcreg != dstreg)\n"); - printf ("\t\tm68k_areg (regs, srcreg) += 16;\n"); - printf ("\tm68k_areg (regs, dstreg) += 16;\n"); - } else { - /* Other variants */ - printf ("\tuae_u32 v[4];\n"); - genamode (curi, curi->smode, "srcreg", curi->size, "mems", 0, 2, 0); - genamode (curi, curi->dmode, "dstreg", curi->size, "memd", 0, 2, 0); - if (using_mmu == 68040) { - printf ("\tget_move16_mmu (memsa, mmu040_move16);\n"); - printf ("\tput_move16_mmu (memda, mmu040_move16);\n"); - } else if (using_mmu == 68060) { - printf ("\tget_move16_mmu (memsa, v);\n"); - printf ("\tput_move16_mmu (memda, v);\n"); - } else { - printf ("\tmemsa &= ~15;\n"); - printf ("\tmemda &= ~15;\n"); - printf ("\tv[0] = %s (memsa);\n", srcl); - printf ("\tv[1] = %s (memsa + 4);\n", srcl); - printf ("\tv[2] = %s (memsa + 8);\n", srcl); - printf ("\tv[3] = %s (memsa + 12);\n", srcl); - printf ("\t%s (memda , v[0]);\n", dstl); - printf ("\t%s (memda + 4, v[1]);\n", dstl); - printf ("\t%s (memda + 8, v[2]);\n", dstl); - printf ("\t%s (memda + 12, v[3]);\n", dstl); - } - if ((opcode & 0xfff8) == 0xf600) - printf ("\tm68k_areg (regs, srcreg) += 16;\n"); - else if ((opcode & 0xfff8) == 0xf608) - printf ("\tm68k_areg (regs, dstreg) += 16;\n"); - } - } - break; + case i_MOVE16: + { + if ((opcode & 0xfff8) == 0xf620) + { + /* MOVE16 (Ax)+,(Ay)+ */ + printf ("\tuae_u32 v[4];\n"); + printf ("\tuaecptr mems = m68k_areg (regs, srcreg) & ~15, memd;\n"); + printf ("\tdstreg = (%s >> 12) & 7;\n", gen_nextiword (0)); + printf ("\tmemd = m68k_areg (regs, dstreg) & ~15;\n"); + if (using_mmu >= 68040) + { + printf ("\tget_move16_mmu (mems, v);\n"); + printf ("\tput_move16_mmu (memd, v);\n"); + } + else + { + printf ("\tv[0] = %s (mems);\n", srcl); + printf ("\tv[1] = %s (mems + 4);\n", srcl); + printf ("\tv[2] = %s (mems + 8);\n", srcl); + printf ("\tv[3] = %s (mems + 12);\n", srcl); + printf ("\t%s (memd , v[0]);\n", dstl); + printf ("\t%s (memd + 4, v[1]);\n", dstl); + printf ("\t%s (memd + 8, v[2]);\n", dstl); + printf ("\t%s (memd + 12, v[3]);\n", dstl); + } + printf ("\tif (srcreg != dstreg)\n"); + printf ("\t\tm68k_areg (regs, srcreg) += 16;\n"); + printf ("\tm68k_areg (regs, dstreg) += 16;\n"); + } + else + { + /* Other variants */ + printf ("\tuae_u32 v[4];\n"); + genamode (curi, curi->smode, "srcreg", curi->size, "mems", 0, 2, 0); + genamode (curi, curi->dmode, "dstreg", curi->size, "memd", 0, 2, 0); + if (using_mmu == 68040) + { + printf ("\tget_move16_mmu (memsa, mmu040_move16);\n"); + printf ("\tput_move16_mmu (memda, mmu040_move16);\n"); + } + else if (using_mmu == 68060) + { + printf ("\tget_move16_mmu (memsa, v);\n"); + printf ("\tput_move16_mmu (memda, v);\n"); + } + else + { + printf ("\tmemsa &= ~15;\n"); + printf ("\tmemda &= ~15;\n"); + printf ("\tv[0] = %s (memsa);\n", srcl); + printf ("\tv[1] = %s (memsa + 4);\n", srcl); + printf ("\tv[2] = %s (memsa + 8);\n", srcl); + printf ("\tv[3] = %s (memsa + 12);\n", srcl); + printf ("\t%s (memda , v[0]);\n", dstl); + printf ("\t%s (memda + 4, v[1]);\n", dstl); + printf ("\t%s (memda + 8, v[2]);\n", dstl); + printf ("\t%s (memda + 12, v[3]);\n", dstl); + } + if ((opcode & 0xfff8) == 0xf600) + printf ("\tm68k_areg (regs, srcreg) += 16;\n"); + else if ((opcode & 0xfff8) == 0xf608) + printf ("\tm68k_areg (regs, dstreg) += 16;\n"); + } + } + break; - case i_PFLUSHN: - case i_PFLUSH: - case i_PFLUSHAN: - case i_PFLUSHA: - case i_PLPAR: - case i_PLPAW: - case i_PTESTR: - case i_PTESTW: - sync_m68k_pc (); - printf ("\tmmu_op (opcode, regs, 0);\n"); - break; - case i_MMUOP030: - printf ("\tuaecptr pc = %s;\n", getpc); - printf ("\tuae_u16 extra = %s (2);\n", prefetch_word); - m68k_pc_offset += 2; - sync_m68k_pc (); - if (curi->smode == Areg || curi->smode == Dreg) - printf("\tuae_u16 extraa = 0;\n"); - else - genamode (curi, curi->smode, "srcreg", curi->size, "extra", 0, 0, 0); - sync_m68k_pc (); - if (using_ce020 || using_prefetch_020) { - printf ("\tif (mmu_op30 (pc, opcode, extra, extraa)) goto %s;\n", endlabelstr); - need_endlabel = 1; - } else { - printf ("\tmmu_op30 (pc, opcode, extra, extraa);\n"); - } - break; - default: - term (); - break; - } - if (!genastore_done) - returntail (0); - finish_braces (); - if (limit_braces) { - printf ("\n#endif\n"); - n_braces = limit_braces; - limit_braces = 0; - finish_braces (); - } - if (did_prefetch >= 0) - fill_prefetch_finish (); - sync_m68k_pc (); - did_prefetch = 0; - ipl_fetched = 0; + case i_PFLUSHN: + case i_PFLUSH: + case i_PFLUSHAN: + case i_PFLUSHA: + case i_PLPAR: + case i_PLPAW: + case i_PTESTR: + case i_PTESTW: + sync_m68k_pc (); + printf ("\tmmu_op (opcode, regs, 0);\n"); + break; + case i_MMUOP030: + printf ("\tuaecptr pc = %s;\n", getpc); + printf ("\tuae_u16 extra = %s (2);\n", prefetch_word); + m68k_pc_offset += 2; + sync_m68k_pc (); + if (curi->smode == Areg || curi->smode == Dreg) + printf("\tuae_u16 extraa = 0;\n"); + else + genamode (curi, curi->smode, "srcreg", curi->size, "extra", 0, 0, 0); + sync_m68k_pc (); + if (using_ce020 || using_prefetch_020) + { + printf ("\tif (mmu_op30 (pc, opcode, extra, extraa)) goto %s;\n", endlabelstr); + need_endlabel = 1; + } + else + { + printf ("\tmmu_op30 (pc, opcode, extra, extraa);\n"); + } + break; + default: + term (); + break; + } + if (!genastore_done) + returntail (0); + finish_braces (); + if (limit_braces) + { + printf ("\n#endif\n"); + n_braces = limit_braces; + limit_braces = 0; + finish_braces (); + } + if (did_prefetch >= 0) + fill_prefetch_finish (); + sync_m68k_pc (); + did_prefetch = 0; + ipl_fetched = 0; } static void generate_includes (FILE * f, int id) { - fprintf (f, "#include \"sysconfig.h\"\n"); - fprintf (f, "#include \"sysdeps.h\"\n"); - fprintf (f, "#include \"options.h\"\n"); - fprintf (f, "#include \"memory.h\"\n"); - fprintf (f, "#include \"newcpu.h\"\n"); - fprintf (f, "#include \"custom.h\"\n"); - fprintf (f, "#include \"cpu_prefetch.h\"\n"); - fprintf (f, "#include \"cputbl.h\"\n"); - if (id == 31 || id == 33) - fprintf (f, "#include \"cpummu.h\"\n"); - else if (id == 32) - fprintf (f, "#include \"cpummu030.h\"\n"); + fprintf (f, "#include \"sysconfig.h\"\n"); + fprintf (f, "#include \"sysdeps.h\"\n"); + fprintf (f, "#include \"options.h\"\n"); + fprintf (f, "#include \"memory.h\"\n"); + fprintf (f, "#include \"newcpu.h\"\n"); + fprintf (f, "#include \"custom.h\"\n"); + fprintf (f, "#include \"cpu_prefetch.h\"\n"); + fprintf (f, "#include \"cputbl.h\"\n"); + if (id == 31 || id == 33) + fprintf (f, "#include \"cpummu.h\"\n"); + else if (id == 32) + fprintf (f, "#include \"cpummu030.h\"\n"); - fprintf (f, "#define CPUFUNC(x) x##_ff\n" - "#define SET_CFLG_ALWAYS(x) SET_CFLG(x)\n" - "#define SET_NFLG_ALWAYS(x) SET_NFLG(x)\n" - "#ifdef NOFLAGS\n" - "#include \"noflags.h\"\n" - "#endif\n"); + fprintf (f, "#define CPUFUNC(x) x##_ff\n" + "#define SET_CFLG_ALWAYS(x) SET_CFLG(x)\n" + "#define SET_NFLG_ALWAYS(x) SET_NFLG(x)\n" + "#ifdef NOFLAGS\n" + "#include \"noflags.h\"\n" + "#endif\n"); } static int postfix; @@ -5438,156 +6246,163 @@ static int postfix; static char *decodeEA (amodes mode, wordsizes size) { - static char buffer[80]; + static char buffer[80]; - buffer[0] = 0; - switch (mode){ - case Dreg: - strcpy (buffer,"Dn"); - break; - case Areg: - strcpy (buffer,"An"); - break; - case Aind: - strcpy (buffer,"(An)"); - break; - case Aipi: - strcpy (buffer,"(An)+"); - break; - case Apdi: - strcpy (buffer,"-(An)"); - break; - case Ad16: - strcpy (buffer,"(d16,An)"); - break; - case Ad8r: - strcpy (buffer,"(d8,An,Xn)"); - break; - case PC16: - strcpy (buffer,"(d16,PC)"); - break; - case PC8r: - strcpy (buffer,"(d8,PC,Xn)"); - break; - case absw: - strcpy (buffer,"(xxx).W"); - break; - case absl: - strcpy (buffer,"(xxx).L"); - break; - case imm: - switch (size){ - case sz_byte: - strcpy (buffer,"#.B"); - break; - case sz_word: - strcpy (buffer,"#.W"); - break; - case sz_long: - strcpy (buffer,"#.L"); - break; - default: - break; - } - break; - case imm0: - strcpy (buffer,"#.B"); - break; - case imm1: - strcpy (buffer,"#.W"); - break; - case imm2: - strcpy (buffer,"#.L"); - break; - case immi: - strcpy (buffer,"#"); - break; + buffer[0] = 0; + switch (mode) + { + case Dreg: + strcpy (buffer,"Dn"); + break; + case Areg: + strcpy (buffer,"An"); + break; + case Aind: + strcpy (buffer,"(An)"); + break; + case Aipi: + strcpy (buffer,"(An)+"); + break; + case Apdi: + strcpy (buffer,"-(An)"); + break; + case Ad16: + strcpy (buffer,"(d16,An)"); + break; + case Ad8r: + strcpy (buffer,"(d8,An,Xn)"); + break; + case PC16: + strcpy (buffer,"(d16,PC)"); + break; + case PC8r: + strcpy (buffer,"(d8,PC,Xn)"); + break; + case absw: + strcpy (buffer,"(xxx).W"); + break; + case absl: + strcpy (buffer,"(xxx).L"); + break; + case imm: + switch (size) + { + case sz_byte: + strcpy (buffer,"#.B"); + break; + case sz_word: + strcpy (buffer,"#.W"); + break; + case sz_long: + strcpy (buffer,"#.L"); + break; + default: + break; + } + break; + case imm0: + strcpy (buffer,"#.B"); + break; + case imm1: + strcpy (buffer,"#.W"); + break; + case imm2: + strcpy (buffer,"#.L"); + break; + case immi: + strcpy (buffer,"#"); + break; - default: - break; - } - return buffer; + default: + break; + } + return buffer; } -static const char *m68k_cc[] = { - "T", - "F", - "HI", - "LS", - "CC", - "CS", - "NE", - "EQ", - "VC", - "VS", - "PL", - "MI", - "GE", - "LT", - "GT", - "LE" +static const char *m68k_cc[] = +{ + "T", + "F", + "HI", + "LS", + "CC", + "CS", + "NE", + "EQ", + "VC", + "VS", + "PL", + "MI", + "GE", + "LT", + "GT", + "LE" }; static char *outopcode (int opcode) { - static char out[100]; - struct instr *ins; - int i; + static char out[100]; + struct instr *ins; + int i; - ins = &table68k[opcode]; - for (i = 0; lookuptab[i].name[0]; i++) { - if (ins->mnemo == lookuptab[i].mnemo) - break; - } - { - char *s = ua (lookuptab[i].name); - strcpy (out, s); - xfree (s); - } - if (ins->smode == immi) - strcat (out, "Q"); - if (ins->size == sz_byte) - strcat (out,".B"); - if (ins->size == sz_word) - strcat (out,".W"); - if (ins->size == sz_long) - strcat (out,".L"); - strcat (out," "); - if (ins->suse) - strcat (out, decodeEA (ins->smode, ins->size)); - if (ins->duse) { - if (ins->suse) strcat (out,","); - strcat (out, decodeEA (ins->dmode, ins->size)); - } - if (ins->mnemo == i_DBcc || ins->mnemo == i_Scc || ins->mnemo == i_Bcc || ins->mnemo == i_TRAPcc) { - strcat (out, " ("); - strcat (out, m68k_cc[table68k[opcode].cc]); - strcat (out, ")"); - } + ins = &table68k[opcode]; + for (i = 0; lookuptab[i].name[0]; i++) + { + if (ins->mnemo == lookuptab[i].mnemo) + break; + } + { + char *s = ua (lookuptab[i].name); + strcpy (out, s); + xfree (s); + } + if (ins->smode == immi) + strcat (out, "Q"); + if (ins->size == sz_byte) + strcat (out,".B"); + if (ins->size == sz_word) + strcat (out,".W"); + if (ins->size == sz_long) + strcat (out,".L"); + strcat (out," "); + if (ins->suse) + strcat (out, decodeEA (ins->smode, ins->size)); + if (ins->duse) + { + if (ins->suse) strcat (out,","); + strcat (out, decodeEA (ins->dmode, ins->size)); + } + if (ins->mnemo == i_DBcc || ins->mnemo == i_Scc || ins->mnemo == i_Bcc || ins->mnemo == i_TRAPcc) + { + strcat (out, " ("); + strcat (out, m68k_cc[table68k[opcode].cc]); + strcat (out, ")"); + } - return out; + return out; } struct cputbl_tmp { - uae_s16 length; - uae_s8 disp020[2]; - uae_u8 branch; + uae_s16 length; + uae_s8 disp020[2]; + uae_u8 branch; }; static struct cputbl_tmp cputbltmp[65536]; static int count_required(int opcode) { - struct instr *curi = table68k + opcode; + struct instr *curi = table68k + opcode; - switch(curi->mnemo) { + switch(curi->mnemo) + { case i_MVMLE: case i_MVMEL: - return 1; - case i_ASR: - case i_ASL: - case i_LSR: - case i_LSL: + return 1; + case i_ASR: + case i_ASL: + case i_LSR: + case i_LSL: case i_ROXR: case i_ROR: case i_ROXL: @@ -5597,420 +6412,491 @@ static int count_required(int opcode) case i_DIVU: case i_DIVS: case i_DBcc: - if(cpu_level <= 1) - return 1; - break; + if(cpu_level <= 1) + return 1; + break; case i_Scc: - if(curi->smode == Dreg && cpu_level <= 1) - return 1; - break; - } - return 0; + if(curi->smode == Dreg && cpu_level <= 1) + return 1; + break; + } + return 0; } static void generate_one_opcode (int rp, const char *extra) { - int idx; - uae_u16 smsk, dmsk; - unsigned int opcode = opcode_map[rp]; - int i68000 = table68k[opcode].clev > 0; + int idx; + uae_u16 smsk, dmsk; + unsigned int opcode = opcode_map[rp]; + int i68000 = table68k[opcode].clev > 0; - if (table68k[opcode].mnemo == i_ILLG - || table68k[opcode].clev > cpu_level) - return; + if (table68k[opcode].mnemo == i_ILLG + || table68k[opcode].clev > cpu_level) + return; - for (idx = 0; lookuptab[idx].name[0]; idx++) { - if (table68k[opcode].mnemo == lookuptab[idx].mnemo) - break; - } + for (idx = 0; lookuptab[idx].name[0]; idx++) + { + if (table68k[opcode].mnemo == lookuptab[idx].mnemo) + break; + } - if (table68k[opcode].handler != -1) - return; + if (table68k[opcode].handler != -1) + return; - if (opcode_next_clev[rp] != cpu_level) { - char *name = ua (lookuptab[idx].name); - if (generate_stbl) - fprintf (stblfile, "{ %sCPUFUNC(op_%04x_%d%s), %d }, /* %s */\n", - (using_ce || using_ce020) ? "(cpuop_func*)" : "", - opcode, opcode_last_postfix[rp], - extra, opcode, name); - xfree (name); - return; - } - fprintf (headerfile, "extern %s op_%04x_%d%s_nf;\n", - (using_ce || using_ce020) ? "cpuop_func_ce" : "cpuop_func", opcode, postfix, extra); - fprintf (headerfile, "extern %s op_%04x_%d%s_ff;\n", - (using_ce || using_ce020) ? "cpuop_func_ce" : "cpuop_func", opcode, postfix, extra); - printf ("/* %s */\n", outopcode (opcode)); + if (opcode_next_clev[rp] != cpu_level) + { + char *name = ua (lookuptab[idx].name); + if (generate_stbl) + fprintf (stblfile, "{ %sCPUFUNC(op_%04x_%d%s), %d }, /* %s */\n", + (using_ce || using_ce020) ? "(cpuop_func*)" : "", + opcode, opcode_last_postfix[rp], + extra, opcode, name); + xfree (name); + return; + } + fprintf (headerfile, "extern %s op_%04x_%d%s_nf;\n", + (using_ce || using_ce020) ? "cpuop_func_ce" : "cpuop_func", opcode, postfix, extra); + fprintf (headerfile, "extern %s op_%04x_%d%s_ff;\n", + (using_ce || using_ce020) ? "cpuop_func_ce" : "cpuop_func", opcode, postfix, extra); + printf ("/* %s */\n", outopcode (opcode)); // if (i68000) // printf("#ifndef CPUEMU_68000_ONLY\n"); - printf ("%s REGPARAM2 CPUFUNC(op_%04x_%d%s)(uae_u32 opcode, struct regstruct ®s)\n{\n", (using_ce || using_ce020) ? "void" : "uae_u32", opcode, postfix, extra); - int org_using_simple_cycles = using_simple_cycles; - if(count_required(opcode)) - using_simple_cycles = 1; - if (using_simple_cycles) - printf("\tint count_cycles = 0;\n"); + printf ("%s REGPARAM2 CPUFUNC(op_%04x_%d%s)(uae_u32 opcode, struct regstruct ®s)\n{\n", (using_ce || using_ce020) ? "void" : "uae_u32", opcode, postfix, extra); + int org_using_simple_cycles = using_simple_cycles; + if(count_required(opcode)) + using_simple_cycles = 1; + if (using_simple_cycles) + printf("\tint count_cycles = 0;\n"); - switch (table68k[opcode].stype) { - case 0: smsk = 7; break; - case 1: smsk = 255; break; - case 2: smsk = 15; break; - case 3: smsk = 7; break; - case 4: smsk = 7; break; - case 5: smsk = 63; break; - case 6: smsk = 255; break; - case 7: smsk = 3; break; - default: term (); - } - dmsk = 7; + switch (table68k[opcode].stype) + { + case 0: + smsk = 7; + break; + case 1: + smsk = 255; + break; + case 2: + smsk = 15; + break; + case 3: + smsk = 7; + break; + case 4: + smsk = 7; + break; + case 5: + smsk = 63; + break; + case 6: + smsk = 255; + break; + case 7: + smsk = 3; + break; + default: + term (); + } + dmsk = 7; - next_cpu_level = -1; - if (table68k[opcode].suse - && table68k[opcode].smode != imm && table68k[opcode].smode != imm0 - && table68k[opcode].smode != imm1 && table68k[opcode].smode != imm2 - && table68k[opcode].smode != absw && table68k[opcode].smode != absl - && table68k[opcode].smode != PC8r && table68k[opcode].smode != PC16 - /* gb-- We don't want to fetch the EmulOp code since the EmulOp() - routine uses the whole opcode value. Maybe all the EmulOps - could be expanded out but I don't think it is an improvement */ - && table68k[opcode].stype != 6 - ) - { - if (table68k[opcode].spos == -1) { - if (((int) table68k[opcode].sreg) >= 128) - printf ("\tuae_u32 srcreg = (uae_s32)(uae_s8)%d;\n", (int) table68k[opcode].sreg); - else - printf ("\tuae_u32 srcreg = %d;\n", (int) table68k[opcode].sreg); - } else { - char source[100]; - int pos = table68k[opcode].spos; + next_cpu_level = -1; + if (table68k[opcode].suse + && table68k[opcode].smode != imm && table68k[opcode].smode != imm0 + && table68k[opcode].smode != imm1 && table68k[opcode].smode != imm2 + && table68k[opcode].smode != absw && table68k[opcode].smode != absl + && table68k[opcode].smode != PC8r && table68k[opcode].smode != PC16 + /* gb-- We don't want to fetch the EmulOp code since the EmulOp() + routine uses the whole opcode value. Maybe all the EmulOps + could be expanded out but I don't think it is an improvement */ + && table68k[opcode].stype != 6 + ) + { + if (table68k[opcode].spos == -1) + { + if (((int) table68k[opcode].sreg) >= 128) + printf ("\tuae_u32 srcreg = (uae_s32)(uae_s8)%d;\n", (int) table68k[opcode].sreg); + else + printf ("\tuae_u32 srcreg = %d;\n", (int) table68k[opcode].sreg); + } + else + { + char source[100]; + int pos = table68k[opcode].spos; - if (pos) - sprintf (source, "((opcode >> %d) & %d)", pos, smsk); - else - sprintf (source, "(opcode & %d)", smsk); + if (pos) + sprintf (source, "((opcode >> %d) & %d)", pos, smsk); + else + sprintf (source, "(opcode & %d)", smsk); - if (table68k[opcode].stype == 3) - printf ("\tuae_u32 srcreg = imm8_table[%s];\n", source); - else if (table68k[opcode].stype == 1) - printf ("\tuae_u32 srcreg = (uae_s32)(uae_s8)%s;\n", source); - else - printf ("\tuae_u32 srcreg = %s;\n", source); - } - } - if (table68k[opcode].duse - /* Yes, the dmode can be imm, in case of LINK or DBcc */ - && table68k[opcode].dmode != imm && table68k[opcode].dmode != imm0 - && table68k[opcode].dmode != imm1 && table68k[opcode].dmode != imm2 - && table68k[opcode].dmode != absw && table68k[opcode].dmode != absl) - { - if (table68k[opcode].dpos == -1) { - if (((int) table68k[opcode].dreg) >= 128) - printf ("\tuae_u32 dstreg = (uae_s32)(uae_s8)%d;\n", (int) table68k[opcode].dreg); - else - printf ("\tuae_u32 dstreg = %d;\n", (int) table68k[opcode].dreg); - } else { - int pos = table68k[opcode].dpos; - if (pos) - printf ("\tuae_u32 dstreg = (opcode >> %d) & %d;\n", - pos, dmsk); - else - printf ("\tuae_u32 dstreg = opcode & %d;\n", dmsk); - } - } - need_endlabel = 0; - endlabelno++; - sprintf (endlabelstr, "l_%d", endlabelno); - count_read = count_write = count_ncycles = count_cycles = 0; - count_cycles_ce020 = 0; - count_read_ea = count_write_ea = count_cycles_ea = 0; - gen_opcode (opcode); - if (need_endlabel) - printf ("%s: ;\n", endlabelstr); - clearmmufixup (0); - clearmmufixup (1); - if (using_ce || using_prefetch) { - if (count_read + count_write + count_cycles == 0) - count_cycles = 4; - returncycles ("", (count_read + count_write) * 4 + count_cycles); - printf ("}"); - printf (" /* %d%s (%d/%d)", - (count_read + count_write) * 4 + count_cycles, count_ncycles ? "+" : "", count_read, count_write); - printf (" */\n"); - } else if (count_read + count_write + count_cycles) { - returncycles ("", (count_read + count_write) * 4 + count_cycles + 4); - printf ("}"); - printf("\n"); - } else { - returncycles ("", insn_n_cycles); - printf ("}"); - printf("\n"); - } - printf ("\n"); + if (table68k[opcode].stype == 3) + printf ("\tuae_u32 srcreg = imm8_table[%s];\n", source); + else if (table68k[opcode].stype == 1) + printf ("\tuae_u32 srcreg = (uae_s32)(uae_s8)%s;\n", source); + else + printf ("\tuae_u32 srcreg = %s;\n", source); + } + } + if (table68k[opcode].duse + /* Yes, the dmode can be imm, in case of LINK or DBcc */ + && table68k[opcode].dmode != imm && table68k[opcode].dmode != imm0 + && table68k[opcode].dmode != imm1 && table68k[opcode].dmode != imm2 + && table68k[opcode].dmode != absw && table68k[opcode].dmode != absl) + { + if (table68k[opcode].dpos == -1) + { + if (((int) table68k[opcode].dreg) >= 128) + printf ("\tuae_u32 dstreg = (uae_s32)(uae_s8)%d;\n", (int) table68k[opcode].dreg); + else + printf ("\tuae_u32 dstreg = %d;\n", (int) table68k[opcode].dreg); + } + else + { + int pos = table68k[opcode].dpos; + if (pos) + printf ("\tuae_u32 dstreg = (opcode >> %d) & %d;\n", + pos, dmsk); + else + printf ("\tuae_u32 dstreg = opcode & %d;\n", dmsk); + } + } + need_endlabel = 0; + endlabelno++; + sprintf (endlabelstr, "l_%d", endlabelno); + count_read = count_write = count_ncycles = count_cycles = 0; + count_cycles_ce020 = 0; + count_read_ea = count_write_ea = count_cycles_ea = 0; + gen_opcode (opcode); + if (need_endlabel) + printf ("%s: ;\n", endlabelstr); + clearmmufixup (0); + clearmmufixup (1); + if (using_ce || using_prefetch) + { + if (count_read + count_write + count_cycles == 0) + count_cycles = 4; + returncycles ("", (count_read + count_write) * 4 + count_cycles); + printf ("}"); + printf (" /* %d%s (%d/%d)", + (count_read + count_write) * 4 + count_cycles, count_ncycles ? "+" : "", count_read, count_write); + printf (" */\n"); + } + else if (count_read + count_write + count_cycles) + { + returncycles ("", (count_read + count_write) * 4 + count_cycles + 4); + printf ("}"); + printf("\n"); + } + else + { + returncycles ("", insn_n_cycles); + printf ("}"); + printf("\n"); + } + printf ("\n"); // if (i68000) // printf("#endif\n"); - using_simple_cycles = org_using_simple_cycles; + using_simple_cycles = org_using_simple_cycles; - opcode_next_clev[rp] = next_cpu_level; - opcode_last_postfix[rp] = postfix; + opcode_next_clev[rp] = next_cpu_level; + opcode_last_postfix[rp] = postfix; - if ((opcode & 0xf000) == 0xf000) - m68k_pc_total = -1; - cputbltmp[opcode].length = m68k_pc_total; + if ((opcode & 0xf000) == 0xf000) + m68k_pc_total = -1; + cputbltmp[opcode].length = m68k_pc_total; - cputbltmp[opcode].disp020[0] = 0; - if (genamode8r_offset[0] > 0) - cputbltmp[opcode].disp020[0] = m68k_pc_total - genamode8r_offset[0] + 2; - cputbltmp[opcode].disp020[1] = 0; - if (genamode8r_offset[1] > 0) - cputbltmp[opcode].disp020[1] = m68k_pc_total - genamode8r_offset[1] + 2; + cputbltmp[opcode].disp020[0] = 0; + if (genamode8r_offset[0] > 0) + cputbltmp[opcode].disp020[0] = m68k_pc_total - genamode8r_offset[0] + 2; + cputbltmp[opcode].disp020[1] = 0; + if (genamode8r_offset[1] > 0) + cputbltmp[opcode].disp020[1] = m68k_pc_total - genamode8r_offset[1] + 2; - cputbltmp[opcode].branch = branch_inst; + cputbltmp[opcode].branch = branch_inst; - if (generate_stbl) { - char *name = ua (lookuptab[idx].name); + if (generate_stbl) + { + char *name = ua (lookuptab[idx].name); // if (i68000) // fprintf (stblfile, "#ifndef CPUEMU_68000_ONLY\n"); - fprintf (stblfile, "{ %sCPUFUNC(op_%04x_%d%s), %d }, /* %s */\n", - (using_ce || using_ce020) ? "(cpuop_func*)" : "", - opcode, postfix, extra, opcode, name); + fprintf (stblfile, "{ %sCPUFUNC(op_%04x_%d%s), %d }, /* %s */\n", + (using_ce || using_ce020) ? "(cpuop_func*)" : "", + opcode, postfix, extra, opcode, name); // if (i68000) // fprintf (stblfile, "#endif\n"); - xfree (name); - } + xfree (name); + } } static void generate_func (const char *extra) { - int j, rp; + int j, rp; - /* sam: this is for people with low memory (eg. me :)) */ - printf ("\n" - "#if !defined(PART_1) && !defined(PART_2) && " - "!defined(PART_3) && !defined(PART_4) && " - "!defined(PART_5) && !defined(PART_6) && " - "!defined(PART_7) && !defined(PART_8)" - "\n" - "#define PART_1 1\n" - "#define PART_2 1\n" - "#define PART_3 1\n" - "#define PART_4 1\n" - "#define PART_5 1\n" - "#define PART_6 1\n" - "#define PART_7 1\n" - "#define PART_8 1\n" - "#endif\n\n"); + /* sam: this is for people with low memory (eg. me :)) */ + printf ("\n" + "#if !defined(PART_1) && !defined(PART_2) && " + "!defined(PART_3) && !defined(PART_4) && " + "!defined(PART_5) && !defined(PART_6) && " + "!defined(PART_7) && !defined(PART_8)" + "\n" + "#define PART_1 1\n" + "#define PART_2 1\n" + "#define PART_3 1\n" + "#define PART_4 1\n" + "#define PART_5 1\n" + "#define PART_6 1\n" + "#define PART_7 1\n" + "#define PART_8 1\n" + "#endif\n\n"); - rp = 0; - for(j = 1; j <= 8; ++j) { - int k = (j * nr_cpuop_funcs) / 8; - printf ("#ifdef PART_%d\n",j); - for (; rp < k; rp++) - generate_one_opcode (rp, extra); - printf ("#endif\n\n"); - } + rp = 0; + for(j = 1; j <= 8; ++j) + { + int k = (j * nr_cpuop_funcs) / 8; + printf ("#ifdef PART_%d\n",j); + for (; rp < k; rp++) + generate_one_opcode (rp, extra); + printf ("#endif\n\n"); + } - if (generate_stbl) - fprintf (stblfile, "{ 0, 0 }};\n"); + if (generate_stbl) + fprintf (stblfile, "{ 0, 0 }};\n"); } static void generate_cpu (int id, int mode) { - char fname[100]; - const char *extra, *extraup; - static int postfix2 = -1; - int rp; + char fname[100]; + const char *extra, *extraup; + static int postfix2 = -1; + int rp; - using_tracer = mode; - extra = ""; - extraup = ""; - if (using_tracer) { - extra = "_t"; - extraup = "_T"; - } + using_tracer = mode; + extra = ""; + extraup = ""; + if (using_tracer) + { + extra = "_t"; + extraup = "_T"; + } - postfix = id; - if (id == 0 || id == 4 || id == 11 || id == 13 || id == 20 || id == 21 || id == 22 || id == 23 || id == 24 || id == 31 || id == 32 || id == 33 || id == 40) { - if (generate_stbl && id != 4) - fprintf (stblfile, "#ifdef CPUEMU_%d%s\n", postfix, extraup); - postfix2 = postfix; - sprintf (fname, "cpuemu_%d%s.cpp", postfix, extra); - if (freopen (fname, "wb", stdout) == NULL) { - abort (); - } - generate_includes (stdout, id); - } + postfix = id; + if (id == 0 || id == 4 || id == 11 || id == 13 || id == 20 || id == 21 || id == 22 || id == 23 || id == 24 || id == 31 || id == 32 || id == 33 || id == 40) + { + if (generate_stbl && id != 4) + fprintf (stblfile, "#ifdef CPUEMU_%d%s\n", postfix, extraup); + postfix2 = postfix; + sprintf (fname, "cpuemu_%d%s.cpp", postfix, extra); + if (freopen (fname, "wb", stdout) == NULL) + { + abort (); + } + generate_includes (stdout, id); + } - using_exception_3 = 1; - using_prefetch = 0; - using_prefetch_020 = 0; - using_ce = 0; - using_ce020 = 0; - using_mmu = 0; - using_waitstates = 0; - memory_cycle_cnt = 4; - mmu_postfix = ""; - using_simple_cycles = 0; - using_indirect = 0; + using_exception_3 = 1; + using_prefetch = 0; + using_prefetch_020 = 0; + using_ce = 0; + using_ce020 = 0; + using_mmu = 0; + using_waitstates = 0; + memory_cycle_cnt = 4; + mmu_postfix = ""; + using_simple_cycles = 0; + using_indirect = 0; - if (id == 4) { - cpu_level = 1; - for (rp = 0; rp < nr_cpuop_funcs; rp++) { - opcode_next_clev[rp] = cpu_level; - } - } else if (id == 11 || id == 12) { // 11 = 68000 prefetch, 12 = 68000 cycle-exact - cpu_level = 0; - using_prefetch = 1; - using_exception_3 = 1; - using_simple_cycles = 1; - if (id == 12) - using_ce = 1; - for (rp = 0; rp < nr_cpuop_funcs; rp++) - opcode_next_clev[rp] = cpu_level; - } else if (id == 13 || id == 14) { // 13 = 68010 cycle-exact, 14 = 68000 cycle-exact - cpu_level = id == 13 ? 1 : 0; - using_prefetch = 1; - using_exception_3 = 1; - using_ce = 1; - if (id == 13) { - read_counts (); - for (rp = 0; rp < nr_cpuop_funcs; rp++) - opcode_next_clev[rp] = cpu_level; - } - } else if (id == 20) { // 68020 prefetch - cpu_level = 2; - using_prefetch_020 = 1; - read_counts (); - for (rp = 0; rp < nr_cpuop_funcs; rp++) - opcode_next_clev[rp] = cpu_level; - } else if (id == 21) { // 68020 cycle-exact - cpu_level = 2; - using_ce020 = 1; - using_prefetch_020 = 1; - // timing tables are from 030 which has 2 - // clock memory accesses, 68020 has 3 clock - // memory accesses - using_waitstates = 1; - memory_cycle_cnt = 3; - read_counts (); - for (rp = 0; rp < nr_cpuop_funcs; rp++) - opcode_next_clev[rp] = cpu_level; - } else if (id == 22) { // 68030 prefetch - cpu_level = 3; - using_prefetch_020 = 2; - read_counts (); - for (rp = 0; rp < nr_cpuop_funcs; rp++) - opcode_next_clev[rp] = cpu_level; - } else if (id == 23) { // 68030 "cycle-exact" - cpu_level = 3; - using_ce020 = 2; - using_prefetch_020 = 2; - memory_cycle_cnt = 2; - read_counts (); - for (rp = 0; rp < nr_cpuop_funcs; rp++) - opcode_next_clev[rp] = cpu_level; - } else if (id == 24 || id == 25) { // 68040/060 "cycle-exact" - cpu_level = id == 24 ? 5 : 4; - using_ce020 = 3; - using_prefetch_020 = 3; - memory_cycle_cnt = 0; - if (id == 24) { - read_counts (); - for (rp = 0; rp < nr_cpuop_funcs; rp++) - opcode_next_clev[rp] = cpu_level; - } - } else if (id == 31) { // 31 = 68040 MMU - mmu_postfix = "040"; - cpu_level = 4; - using_mmu = 68040; - read_counts (); - for (rp = 0; rp < nr_cpuop_funcs; rp++) - opcode_next_clev[rp] = cpu_level; - } else if (id == 32) { // 32 = 68030 MMU - mmu_postfix = "030"; - cpu_level = 3; - using_mmu = 68030; - read_counts (); - for (rp = 0; rp < nr_cpuop_funcs; rp++) - opcode_next_clev[rp] = cpu_level; - } else if (id == 33) { // 33 = 68060 MMU - mmu_postfix = "060"; - cpu_level = 5; - using_mmu = 68060; - read_counts (); - for (rp = 0; rp < nr_cpuop_funcs; rp++) - opcode_next_clev[rp] = cpu_level; - } else if (id < 6) { - cpu_level = 5 - (id - 0); // "generic" - } else if (id >= 40 && id < 46) { - cpu_level = 5 - (id - 40); // "generic" + direct - if (id == 40) { - read_counts(); - for (rp = 0; rp < nr_cpuop_funcs; rp++) - opcode_next_clev[rp] = cpu_level; - } - using_indirect = -1; - } else if (id >= 50 && id < 56) { - cpu_level = 5 - (id - 50); // "generic" + indirect - if (id == 50) { - read_counts(); - for (rp = 0; rp < nr_cpuop_funcs; rp++) - opcode_next_clev[rp] = cpu_level; - } - } - - if (!using_indirect) - using_indirect = using_ce || using_ce020 || using_prefetch_020 || id >= 50; + if (id == 4) + { + cpu_level = 1; + for (rp = 0; rp < nr_cpuop_funcs; rp++) + { + opcode_next_clev[rp] = cpu_level; + } + } + else if (id == 11 || id == 12) // 11 = 68000 prefetch, 12 = 68000 cycle-exact + { + cpu_level = 0; + using_prefetch = 1; + using_exception_3 = 1; + using_simple_cycles = 1; + if (id == 12) + using_ce = 1; + for (rp = 0; rp < nr_cpuop_funcs; rp++) + opcode_next_clev[rp] = cpu_level; + } + else if (id == 13 || id == 14) // 13 = 68010 cycle-exact, 14 = 68000 cycle-exact + { + cpu_level = id == 13 ? 1 : 0; + using_prefetch = 1; + using_exception_3 = 1; + using_ce = 1; + if (id == 13) + { + read_counts (); + for (rp = 0; rp < nr_cpuop_funcs; rp++) + opcode_next_clev[rp] = cpu_level; + } + } + else if (id == 20) // 68020 prefetch + { + cpu_level = 2; + using_prefetch_020 = 1; + read_counts (); + for (rp = 0; rp < nr_cpuop_funcs; rp++) + opcode_next_clev[rp] = cpu_level; + } + else if (id == 21) // 68020 cycle-exact + { + cpu_level = 2; + using_ce020 = 1; + using_prefetch_020 = 1; + // timing tables are from 030 which has 2 + // clock memory accesses, 68020 has 3 clock + // memory accesses + using_waitstates = 1; + memory_cycle_cnt = 3; + read_counts (); + for (rp = 0; rp < nr_cpuop_funcs; rp++) + opcode_next_clev[rp] = cpu_level; + } + else if (id == 22) // 68030 prefetch + { + cpu_level = 3; + using_prefetch_020 = 2; + read_counts (); + for (rp = 0; rp < nr_cpuop_funcs; rp++) + opcode_next_clev[rp] = cpu_level; + } + else if (id == 23) // 68030 "cycle-exact" + { + cpu_level = 3; + using_ce020 = 2; + using_prefetch_020 = 2; + memory_cycle_cnt = 2; + read_counts (); + for (rp = 0; rp < nr_cpuop_funcs; rp++) + opcode_next_clev[rp] = cpu_level; + } + else if (id == 24 || id == 25) // 68040/060 "cycle-exact" + { + cpu_level = id == 24 ? 5 : 4; + using_ce020 = 3; + using_prefetch_020 = 3; + memory_cycle_cnt = 0; + if (id == 24) + { + read_counts (); + for (rp = 0; rp < nr_cpuop_funcs; rp++) + opcode_next_clev[rp] = cpu_level; + } + } + else if (id == 31) // 31 = 68040 MMU + { + mmu_postfix = "040"; + cpu_level = 4; + using_mmu = 68040; + read_counts (); + for (rp = 0; rp < nr_cpuop_funcs; rp++) + opcode_next_clev[rp] = cpu_level; + } + else if (id == 32) // 32 = 68030 MMU + { + mmu_postfix = "030"; + cpu_level = 3; + using_mmu = 68030; + read_counts (); + for (rp = 0; rp < nr_cpuop_funcs; rp++) + opcode_next_clev[rp] = cpu_level; + } + else if (id == 33) // 33 = 68060 MMU + { + mmu_postfix = "060"; + cpu_level = 5; + using_mmu = 68060; + read_counts (); + for (rp = 0; rp < nr_cpuop_funcs; rp++) + opcode_next_clev[rp] = cpu_level; + } + else if (id < 6) + { + cpu_level = 5 - (id - 0); // "generic" + } + else if (id >= 40 && id < 46) + { + cpu_level = 5 - (id - 40); // "generic" + direct + if (id == 40) + { + read_counts(); + for (rp = 0; rp < nr_cpuop_funcs; rp++) + opcode_next_clev[rp] = cpu_level; + } + using_indirect = -1; + } + else if (id >= 50 && id < 56) + { + cpu_level = 5 - (id - 50); // "generic" + indirect + if (id == 50) + { + read_counts(); + for (rp = 0; rp < nr_cpuop_funcs; rp++) + opcode_next_clev[rp] = cpu_level; + } + } - if (generate_stbl) { + if (!using_indirect) + using_indirect = using_ce || using_ce020 || using_prefetch_020 || id >= 50; + + if (generate_stbl) + { // if ((id > 0 && id < 6) || (id >= 20 && id < 40) || (id > 40 && id < 46) || (id > 50 && id < 56)) // fprintf (stblfile, "#ifndef CPUEMU_68000_ONLY\n"); - fprintf (stblfile, "const struct cputbl CPUFUNC(op_smalltbl_%d%s)[] = {\n", postfix, extra); - } - endlabelno = id * 10000; - generate_func (extra); - if (generate_stbl) { + fprintf (stblfile, "const struct cputbl CPUFUNC(op_smalltbl_%d%s)[] = {\n", postfix, extra); + } + endlabelno = id * 10000; + generate_func (extra); + if (generate_stbl) + { // if ((id > 0 && id < 6) || (id >= 20 && id < 40) || (id > 40 && id < 46) || (id > 50 && id < 56)) // fprintf (stblfile, "#endif /* CPUEMU_68000_ONLY */\n"); - if (postfix2 >= 0 && postfix2 != 4) - fprintf (stblfile, "#endif /* CPUEMU_%d%s */\n", postfix2, extraup); - } - postfix2 = -1; + if (postfix2 >= 0 && postfix2 != 4) + fprintf (stblfile, "#endif /* CPUEMU_%d%s */\n", postfix2, extraup); + } + postfix2 = -1; } int main(int argc, char *argv[]) { - int i; + int i; - read_table68k (); - do_merges (); + read_table68k (); + do_merges (); - opcode_map = xmalloc (int, nr_cpuop_funcs); - opcode_last_postfix = xmalloc (int, nr_cpuop_funcs); - opcode_next_clev = xmalloc (int, nr_cpuop_funcs); - counts = xmalloc (unsigned long, 65536); - read_counts (); + opcode_map = xmalloc (int, nr_cpuop_funcs); + opcode_last_postfix = xmalloc (int, nr_cpuop_funcs); + opcode_next_clev = xmalloc (int, nr_cpuop_funcs); + counts = xmalloc (unsigned long, 65536); + read_counts (); - /* It would be a lot nicer to put all in one file (we'd also get rid of - * cputbl.h that way), but cpuopti can't cope. That could be fixed, but - * I don't dare to touch the 68k version. */ + /* It would be a lot nicer to put all in one file (we'd also get rid of + * cputbl.h that way), but cpuopti can't cope. That could be fixed, but + * I don't dare to touch the 68k version. */ - headerfile = fopen ("cputbl.h", "wb"); + headerfile = fopen ("cputbl.h", "wb"); - stblfile = fopen ("cpustbl.cpp", "wb"); - generate_includes (stblfile, 0); + stblfile = fopen ("cpustbl.cpp", "wb"); + generate_includes (stblfile, 0); - for (i = 0; i < 12; i++) { - if ((i >= 6 && i < 11) || (i > 14 && i < 20) || (i > 25 && i < 31) || (i > 33 && i < 40)) - continue; - generate_stbl = 1; - generate_cpu (i, 0); - } + for (i = 0; i < 12; i++) + { + if ((i >= 6 && i < 11) || (i > 14 && i < 20) || (i > 25 && i < 31) || (i > 33 && i < 40)) + continue; + generate_stbl = 1; + generate_cpu (i, 0); + } - free (table68k); - fclose(headerfile); - fclose(stblfile); - return 0; + free (table68k); + fclose(headerfile); + fclose(stblfile); + return 0; } void write_log (const TCHAR *format,...) diff --git a/src/gfxutil.cpp b/src/gfxutil.cpp index d9bd5f2e..cf94f817 100644 --- a/src/gfxutil.cpp +++ b/src/gfxutil.cpp @@ -1,17 +1,17 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Common code needed by all the various graphics systems. - * - * (c) 1996 Bernd Schmidt, Ed Hanway, Samuel Devulder - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Common code needed by all the various graphics systems. + * + * (c) 1996 Bernd Schmidt, Ed Hanway, Samuel Devulder + */ #include "sysconfig.h" #include "sysdeps.h" #include "options.h" #include "config.h" #include "uae.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "rtgmodes.h" @@ -26,63 +26,65 @@ unsigned int doMask (int p, int bits, int shift) { - /* p is a value from 0 to 15 (Amiga color value) - * scale to 0..255, shift to align msb with mask, and apply mask */ + /* p is a value from 0 to 15 (Amiga color value) + * scale to 0..255, shift to align msb with mask, and apply mask */ - uae_u32 val = p * 0x11111111UL; - if (!bits) - return 0; - val >>= (32 - bits); - val <<= shift; + uae_u32 val = p * 0x11111111UL; + if (!bits) + return 0; + val >>= (32 - bits); + val <<= shift; - return val; + return val; } unsigned int doMask256 (int p, int bits, int shift) { - /* p is a value from 0 to 255 (Amiga color value) - * shift to align msb with mask, and apply mask */ + /* p is a value from 0 to 255 (Amiga color value) + * shift to align msb with mask, and apply mask */ - unsigned long val = p * 0x01010101UL; - if (bits == 0) - return 0; - val >>= (32 - bits); - val <<= shift; + unsigned long val = p * 0x01010101UL; + if (bits == 0) + return 0; + val >>= (32 - bits); + val <<= shift; - return val; + return val; } static unsigned int doColor(int i, int bits, int shift) { - int shift2; - if(bits >= 8) - shift2 = 0; - else - shift2 = 8 - bits; - return (i >> shift2) << shift; + int shift2; + if(bits >= 8) + shift2 = 0; + else + shift2 = 8 - bits; + return (i >> shift2) << shift; } static uae_u32 lowbits (int v, int shift, int lsize) { - v >>= shift; - v &= (1 << lsize) - 1; - return v; + v >>= shift; + v &= (1 << lsize) - 1; + return v; } void alloc_colors64k (int rw, int gw, int bw, int rs, int gs, int bs, int byte_swap) { - int i; - for (i = 0; i < 4096; i++) { - int r = i >> 8; - int g = (i >> 4) & 0xF; - int b = i & 0xF; - xcolors[i] = doMask(r, rw, rs) | doMask(g, gw, gs) | doMask(b, bw, bs); - } - /* create AGA color tables */ - for(i=0; i<256; i++) { - xredcolors[i] = doColor(i, rw, rs); - xgreencolors[i] = doColor(i, gw, gs); - xbluecolors[i] = doColor(i, bw, bs); - } + int i; + for (i = 0; i < 4096; i++) + { + int r = i >> 8; + int g = (i >> 4) & 0xF; + int b = i & 0xF; + xcolors[i] = doMask(r, rw, rs) | doMask(g, gw, gs) | doMask(b, bw, bs); + } + /* create AGA color tables */ + for(i=0; i<256; i++) + { + xredcolors[i] = doColor(i, rw, rs); + xgreencolors[i] = doColor(i, gw, gs); + xbluecolors[i] = doColor(i, bw, bs); + } } diff --git a/src/hardfile.cpp b/src/hardfile.cpp index 5cdb0140..8e1e3254 100644 --- a/src/hardfile.cpp +++ b/src/hardfile.cpp @@ -1,18 +1,18 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Hardfile emulation - * - * Copyright 1995 Bernd Schmidt - * 2002 Toni Wilen (scsi emulation, 64-bit support) - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Hardfile emulation + * + * Copyright 1995 Bernd Schmidt + * 2002 Toni Wilen (scsi emulation, 64-bit support) + */ #include "sysconfig.h" #include "sysdeps.h" #include "td-sdl/thread.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "disk.h" @@ -50,22 +50,23 @@ #define ASYNC_REQUEST_TEMP 1 #define ASYNC_REQUEST_CHANGEINT 10 -struct hardfileprivdata { - volatile uaecptr d_request[MAX_ASYNC_REQUESTS]; - volatile int d_request_type[MAX_ASYNC_REQUESTS]; - volatile uae_u32 d_request_data[MAX_ASYNC_REQUESTS]; - smp_comm_pipe requests; - int thread_running; - uae_thread_id thread_id; - uae_sem_t sync_sem; - uaecptr base; - int changenum; - uaecptr changeint; +struct hardfileprivdata +{ + volatile uaecptr d_request[MAX_ASYNC_REQUESTS]; + volatile int d_request_type[MAX_ASYNC_REQUESTS]; + volatile uae_u32 d_request_data[MAX_ASYNC_REQUESTS]; + smp_comm_pipe requests; + int thread_running; + uae_thread_id thread_id; + uae_sem_t sync_sem; + uaecptr base; + int changenum; + uaecptr changeint; }; STATIC_INLINE uae_u32 gl (uae_u8 *p) { - return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | (p[3] << 0); + return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | (p[3] << 0); } static uae_sem_t change_sem = 0; @@ -76,348 +77,373 @@ static uae_u32 nscmd_cmd; static void wl (uae_u8 *p, int v) { - p[0] = v >> 24; - p[1] = v >> 16; - p[2] = v >> 8; - p[3] = v; + p[0] = v >> 24; + p[1] = v >> 16; + p[2] = v >> 8; + p[3] = v; } static void ww (uae_u8 *p, int v) { - p[0] = v >> 8; - p[1] = v; + p[0] = v >> 8; + p[1] = v; } static int rl (uae_u8 *p) { - return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | (p[3]); + return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | (p[3]); } static void getchs2 (struct hardfiledata *hfd, int *cyl, int *cylsec, int *head, int *tracksec) { - unsigned int total = (unsigned int)(hfd->virtsize / 1024); - int heads; - int sectors = 63; + unsigned int total = (unsigned int)(hfd->virtsize / 1024); + int heads; + int sectors = 63; - /* do we have RDB values? */ - if (hfd->cylinders) { - *cyl = hfd->cylinders; - *tracksec = hfd->sectors; - *head = hfd->heads; - *cylsec = hfd->sectors * hfd->heads; - return; - } - /* what about HDF settings? */ - if (hfd->surfaces && hfd->secspertrack) { - *head = hfd->surfaces; - *tracksec = hfd->secspertrack; - *cylsec = (*head) * (*tracksec); - *cyl = (unsigned int)(hfd->virtsize / hfd->blocksize) / ((*tracksec) * (*head)); - return; - } - /* no, lets guess something.. */ - if (total <= 504 * 1024) - heads = 16; - else if (total <= 1008 * 1024) - heads = 32; - else if (total <= 2016 * 1024) - heads = 64; - else if (total <= 4032 * 1024) - heads = 128; - else - heads = 255; - *cyl = (unsigned int)(hfd->virtsize / hfd->blocksize) / (sectors * heads); - *cylsec = sectors * heads; - *tracksec = sectors; - *head = heads; + /* do we have RDB values? */ + if (hfd->cylinders) + { + *cyl = hfd->cylinders; + *tracksec = hfd->sectors; + *head = hfd->heads; + *cylsec = hfd->sectors * hfd->heads; + return; + } + /* what about HDF settings? */ + if (hfd->surfaces && hfd->secspertrack) + { + *head = hfd->surfaces; + *tracksec = hfd->secspertrack; + *cylsec = (*head) * (*tracksec); + *cyl = (unsigned int)(hfd->virtsize / hfd->blocksize) / ((*tracksec) * (*head)); + return; + } + /* no, lets guess something.. */ + if (total <= 504 * 1024) + heads = 16; + else if (total <= 1008 * 1024) + heads = 32; + else if (total <= 2016 * 1024) + heads = 64; + else if (total <= 4032 * 1024) + heads = 128; + else + heads = 255; + *cyl = (unsigned int)(hfd->virtsize / hfd->blocksize) / (sectors * heads); + *cylsec = sectors * heads; + *tracksec = sectors; + *head = heads; } static void getchsx (struct hardfiledata *hfd, int *cyl, int *cylsec, int *head, int *tracksec) { - getchs2 (hfd, cyl, cylsec, head, tracksec); - hf_log (_T("CHS: %08X-%08X %d %d %d %d %d\n"), - (uae_u32)(hfd->virtsize >> 32),(uae_u32)hfd->virtsize, - *cyl, *cylsec, *head, *tracksec); + getchs2 (hfd, cyl, cylsec, head, tracksec); + hf_log (_T("CHS: %08X-%08X %d %d %d %d %d\n"), + (uae_u32)(hfd->virtsize >> 32),(uae_u32)hfd->virtsize, + *cyl, *cylsec, *head, *tracksec); } static void getchsgeometry2 (uae_u64 size, int *pcyl, int *phead, int *psectorspertrack, int mode) { - int sptt[4]; - int i, spt, head, cyl; - uae_u64 total = (unsigned int)(size / 512); + int sptt[4]; + int i, spt, head, cyl; + uae_u64 total = (unsigned int)(size / 512); - if (mode == 1) { - // old-style head=1, spt=32 always mode - head = 1; - spt = 32; - cyl = total / (head * spt); + if (mode == 1) + { + // old-style head=1, spt=32 always mode + head = 1; + spt = 32; + cyl = total / (head * spt); - } else { + } + else + { - sptt[0] = 63; - sptt[1] = 127; - sptt[2] = 255; - sptt[3] = -1; + sptt[0] = 63; + sptt[1] = 127; + sptt[2] = 255; + sptt[3] = -1; - for (i = 0; sptt[i] >= 0; i++) { - spt = sptt[i]; - for (head = 4; head <= 16;head++) { - cyl = total / (head * spt); - if (size <= 512 * 1024 * 1024) { - if (cyl <= 1023) - break; - } else { - if (cyl < 16383) - break; - if (cyl < 32767 && head >= 5) - break; - if (cyl <= 65535) - break; - } - } - if (head <= 16) - break; - } + for (i = 0; sptt[i] >= 0; i++) + { + spt = sptt[i]; + for (head = 4; head <= 16; head++) + { + cyl = total / (head * spt); + if (size <= 512 * 1024 * 1024) + { + if (cyl <= 1023) + break; + } + else + { + if (cyl < 16383) + break; + if (cyl < 32767 && head >= 5) + break; + if (cyl <= 65535) + break; + } + } + if (head <= 16) + break; + } - } + } - *pcyl = cyl; - *phead = head; - *psectorspertrack = spt; + *pcyl = cyl; + *phead = head; + *psectorspertrack = spt; } void getchsgeometry (uae_u64 size, int *pcyl, int *phead, int *psectorspertrack) { - getchsgeometry2 (size, pcyl, phead, psectorspertrack, 0); + getchsgeometry2 (size, pcyl, phead, psectorspertrack, 0); } void getchsgeometry_hdf (struct hardfiledata *hfd, uae_u64 size, int *pcyl, int *phead, int *psectorspertrack) { - uae_u8 block[512]; - int i; + uae_u8 block[512]; + int i; - if (size <= 512 * 1024 * 1024) { - *phead = 1; - *psectorspertrack = 32; - } - memset (block, 0, sizeof block); - if (hfd) { - hdf_read (hfd, block, 0, 512); - if (block[0] == 'D' && block[1] == 'O' && block[2] == 'S') { - int mode; - for (mode = 0; mode < 2; mode++) { - uae_u32 rootblock; - uae_u32 chk = 0; - getchsgeometry2 (size, pcyl, phead, psectorspertrack, mode); - rootblock = (2 + ((*pcyl) * (*phead) * (*psectorspertrack) - 1)) / 2; - memset (block, 0, sizeof block); - hdf_read (hfd, block, (uae_u64)rootblock * 512, 512); - for (i = 0; i < 512; i += 4) - chk += (block[i] << 24) | (block[i + 1] << 16) | (block[i + 2] << 8) | (block[i + 3] << 0); - if (!chk && block[0] == 0 && block[1] == 0 && block[2] == 0 && block[3] == 2 && - block[4] == 0 && block[5] == 0 && block[6] == 0 && block[7] == 0 && - block[8] == 0 && block[9] == 0 && block[10] == 0 && block[11] == 0 && - block[508] == 0 && block[509] == 0 && block[510] == 0 && block[511] == 1) { - return; - } - } - } - } - getchsgeometry2 (size, pcyl, phead, psectorspertrack, 2); + if (size <= 512 * 1024 * 1024) + { + *phead = 1; + *psectorspertrack = 32; + } + memset (block, 0, sizeof block); + if (hfd) + { + hdf_read (hfd, block, 0, 512); + if (block[0] == 'D' && block[1] == 'O' && block[2] == 'S') + { + int mode; + for (mode = 0; mode < 2; mode++) + { + uae_u32 rootblock; + uae_u32 chk = 0; + getchsgeometry2 (size, pcyl, phead, psectorspertrack, mode); + rootblock = (2 + ((*pcyl) * (*phead) * (*psectorspertrack) - 1)) / 2; + memset (block, 0, sizeof block); + hdf_read (hfd, block, (uae_u64)rootblock * 512, 512); + for (i = 0; i < 512; i += 4) + chk += (block[i] << 24) | (block[i + 1] << 16) | (block[i + 2] << 8) | (block[i + 3] << 0); + if (!chk && block[0] == 0 && block[1] == 0 && block[2] == 0 && block[3] == 2 && + block[4] == 0 && block[5] == 0 && block[6] == 0 && block[7] == 0 && + block[8] == 0 && block[9] == 0 && block[10] == 0 && block[11] == 0 && + block[508] == 0 && block[509] == 0 && block[510] == 0 && block[511] == 1) + { + return; + } + } + } + } + getchsgeometry2 (size, pcyl, phead, psectorspertrack, 2); } void getchspgeometry (uae_u64 total, int *pcyl, int *phead, int *psectorspertrack, bool idegeometry) { - uae_u64 blocks = total / 512; + uae_u64 blocks = total / 512; - if (blocks > 16515072) { - /* >8G, CHS=16383/16/63 */ - *pcyl = 16383; - *phead = 16; - *psectorspertrack = 63; - return; - } - if (idegeometry) { - *phead = 16; - *psectorspertrack = 63; - *pcyl = blocks / ((*psectorspertrack) * (*phead)); - return; - } - getchsgeometry (total, pcyl, phead, psectorspertrack); + if (blocks > 16515072) + { + /* >8G, CHS=16383/16/63 */ + *pcyl = 16383; + *phead = 16; + *psectorspertrack = 63; + return; + } + if (idegeometry) + { + *phead = 16; + *psectorspertrack = 63; + *pcyl = blocks / ((*psectorspertrack) * (*phead)); + return; + } + getchsgeometry (total, pcyl, phead, psectorspertrack); } static void getchshd (struct hardfiledata *hfd, int *pcyl, int *phead, int *psectorspertrack) { - getchspgeometry (hfd->virtsize, pcyl, phead, psectorspertrack, false); + getchspgeometry (hfd->virtsize, pcyl, phead, psectorspertrack, false); } static void pl (uae_u8 *p, int off, uae_u32 v) { - p += off * 4; - p[0] = v >> 24; - p[1] = v >> 16; - p[2] = v >> 8; - p[3] = v >> 0; + p += off * 4; + p[0] = v >> 24; + p[1] = v >> 16; + p[2] = v >> 8; + p[3] = v >> 0; } static void rdb_crc (uae_u8 *p) { - uae_u32 sum; - int i, blocksize; + uae_u32 sum; + int i, blocksize; - sum =0; - blocksize = rl (p + 1 * 4); - for (i = 0; i < blocksize; i++) - sum += rl (p + i * 4); - sum = -sum; - pl (p, 2, sum); + sum =0; + blocksize = rl (p + 1 * 4); + for (i = 0; i < blocksize; i++) + sum += rl (p + i * 4); + sum = -sum; + pl (p, 2, sum); } static void create_virtual_rdb (struct hardfiledata *hfd, uae_u32 dostype, int bootpri, const TCHAR *filesys) { - uae_u8 *rdb, *part, *denv; - int cyl = hfd->heads * hfd->secspertrack; - int cyls = 262144 / (cyl * 512); - int size = cyl * cyls * 512; + uae_u8 *rdb, *part, *denv; + int cyl = hfd->heads * hfd->secspertrack; + int cyls = 262144 / (cyl * 512); + int size = cyl * cyls * 512; - rdb = xcalloc (uae_u8, size); - hfd->virtual_rdb = rdb; - hfd->virtual_size = size; - part = rdb + 512; - pl(rdb, 0, 0x5244534b); - pl(rdb, 1, 64); - pl(rdb, 2, 0); // chksum - pl(rdb, 3, 0); // hostid - pl(rdb, 4, 512); // blockbytes - pl(rdb, 5, 0); // flags - pl(rdb, 6, -1); // badblock - pl(rdb, 7, 1); // part - pl(rdb, 8, -1); // fs - pl(rdb, 9, -1); // driveinit - pl(rdb, 10, -1); // reserved - pl(rdb, 11, -1); // reserved - pl(rdb, 12, -1); // reserved - pl(rdb, 13, -1); // reserved - pl(rdb, 14, -1); // reserved - pl(rdb, 15, -1); // reserved - pl(rdb, 16, hfd->nrcyls); - pl(rdb, 17, hfd->secspertrack); - pl(rdb, 18, hfd->heads); - pl(rdb, 19, 0); // interleave - pl(rdb, 20, 0); // park - pl(rdb, 21, -1); // res - pl(rdb, 22, -1); // res - pl(rdb, 23, -1); // res - pl(rdb, 24, 0); // writeprecomp - pl(rdb, 25, 0); // reducedwrite - pl(rdb, 26, 0); // steprate - pl(rdb, 27, -1); // res - pl(rdb, 28, -1); // res - pl(rdb, 29, -1); // res - pl(rdb, 30, -1); // res - pl(rdb, 31, -1); // res - pl(rdb, 32, 0); // rdbblockslo - pl(rdb, 33, cyl * cyls); // rdbblockshi - pl(rdb, 34, cyls); // locyl - pl(rdb, 35, hfd->nrcyls + cyls); // hicyl - pl(rdb, 36, cyl); // cylblocks - pl(rdb, 37, 0); // autopark - pl(rdb, 38, 2); // highrdskblock - pl(rdb, 39, -1); // res - ua_copy ((char*)rdb + 40 * 4, -1, hfd->vendor_id); - ua_copy ((char*)rdb + 42 * 4, -1, hfd->product_id); - ua_copy ((char*)rdb + 46 * 4, -1, _T("UAE")); - rdb_crc (rdb); + rdb = xcalloc (uae_u8, size); + hfd->virtual_rdb = rdb; + hfd->virtual_size = size; + part = rdb + 512; + pl(rdb, 0, 0x5244534b); + pl(rdb, 1, 64); + pl(rdb, 2, 0); // chksum + pl(rdb, 3, 0); // hostid + pl(rdb, 4, 512); // blockbytes + pl(rdb, 5, 0); // flags + pl(rdb, 6, -1); // badblock + pl(rdb, 7, 1); // part + pl(rdb, 8, -1); // fs + pl(rdb, 9, -1); // driveinit + pl(rdb, 10, -1); // reserved + pl(rdb, 11, -1); // reserved + pl(rdb, 12, -1); // reserved + pl(rdb, 13, -1); // reserved + pl(rdb, 14, -1); // reserved + pl(rdb, 15, -1); // reserved + pl(rdb, 16, hfd->nrcyls); + pl(rdb, 17, hfd->secspertrack); + pl(rdb, 18, hfd->heads); + pl(rdb, 19, 0); // interleave + pl(rdb, 20, 0); // park + pl(rdb, 21, -1); // res + pl(rdb, 22, -1); // res + pl(rdb, 23, -1); // res + pl(rdb, 24, 0); // writeprecomp + pl(rdb, 25, 0); // reducedwrite + pl(rdb, 26, 0); // steprate + pl(rdb, 27, -1); // res + pl(rdb, 28, -1); // res + pl(rdb, 29, -1); // res + pl(rdb, 30, -1); // res + pl(rdb, 31, -1); // res + pl(rdb, 32, 0); // rdbblockslo + pl(rdb, 33, cyl * cyls); // rdbblockshi + pl(rdb, 34, cyls); // locyl + pl(rdb, 35, hfd->nrcyls + cyls); // hicyl + pl(rdb, 36, cyl); // cylblocks + pl(rdb, 37, 0); // autopark + pl(rdb, 38, 2); // highrdskblock + pl(rdb, 39, -1); // res + ua_copy ((char*)rdb + 40 * 4, -1, hfd->vendor_id); + ua_copy ((char*)rdb + 42 * 4, -1, hfd->product_id); + ua_copy ((char*)rdb + 46 * 4, -1, _T("UAE")); + rdb_crc (rdb); - pl(part, 0, 0x50415254); - pl(part, 1, 64); - pl(part, 2, 0); - pl(part, 3, 0); - pl(part, 4, -1); - pl(part, 5, 1); // bootable - pl(part, 6, -1); - pl(part, 7, -1); - pl(part, 8, 0); // devflags - part[9 * 4] = _tcslen (hfd->device_name); - ua_copy ((char*)part + 9 * 4 + 1, -1, hfd->device_name); + pl(part, 0, 0x50415254); + pl(part, 1, 64); + pl(part, 2, 0); + pl(part, 3, 0); + pl(part, 4, -1); + pl(part, 5, 1); // bootable + pl(part, 6, -1); + pl(part, 7, -1); + pl(part, 8, 0); // devflags + part[9 * 4] = _tcslen (hfd->device_name); + ua_copy ((char*)part + 9 * 4 + 1, -1, hfd->device_name); - denv = part + 128; - pl(denv, 0, 80); - pl(denv, 1, 512 / 4); - pl(denv, 2, 0); // secorg - pl(denv, 3, hfd->heads); - pl(denv, 4, hfd->blocksize / 512); - pl(denv, 5, hfd->secspertrack); - pl(denv, 6, hfd->reservedblocks); - pl(denv, 7, 0); // prealloc - pl(denv, 8, 0); // interleave - pl(denv, 9, cyls); // lowcyl - pl(denv, 10, hfd->nrcyls + cyls - 1); - pl(denv, 11, 50); - pl(denv, 12, 0); - pl(denv, 13, 0x00ffffff); - pl(denv, 14, 0x7ffffffe); - pl(denv, 15, bootpri); - pl(denv, 16, dostype); - rdb_crc (part); + denv = part + 128; + pl(denv, 0, 80); + pl(denv, 1, 512 / 4); + pl(denv, 2, 0); // secorg + pl(denv, 3, hfd->heads); + pl(denv, 4, hfd->blocksize / 512); + pl(denv, 5, hfd->secspertrack); + pl(denv, 6, hfd->reservedblocks); + pl(denv, 7, 0); // prealloc + pl(denv, 8, 0); // interleave + pl(denv, 9, cyls); // lowcyl + pl(denv, 10, hfd->nrcyls + cyls - 1); + pl(denv, 11, 50); + pl(denv, 12, 0); + pl(denv, 13, 0x00ffffff); + pl(denv, 14, 0x7ffffffe); + pl(denv, 15, bootpri); + pl(denv, 16, dostype); + rdb_crc (part); - hfd->virtsize += size; + hfd->virtsize += size; } void hdf_hd_close (struct hd_hardfiledata *hfd) { - if (!hfd) - return; - hdf_close (&hfd->hfd); - xfree (hfd->path); + if (!hfd) + return; + hdf_close (&hfd->hfd); + xfree (hfd->path); } int hdf_hd_open (struct hd_hardfiledata *hfd, const TCHAR *path, int blocksize, int readonly, - const TCHAR *devname, int cyls, int sectors, int surfaces, int reserved, - int bootpri, const TCHAR *filesys, - int pcyls, int pheads, int psecs) + const TCHAR *devname, int cyls, int sectors, int surfaces, int reserved, + int bootpri, const TCHAR *filesys, + int pcyls, int pheads, int psecs) { - memset (hfd, 0, sizeof (struct hd_hardfiledata)); - hfd->bootpri = bootpri; - hfd->hfd.blocksize = blocksize; - hfd->hfd.readonly = readonly; - if (!hdf_open (&hfd->hfd, path)) - return 0; - hfd->path = my_strdup(path); - hfd->hfd.cylinders = cyls; - hfd->hfd.heads = surfaces; - hfd->hfd.reservedblocks = reserved; - hfd->hfd.secspertrack = sectors; - if (devname) - _tcscpy (hfd->hfd.device_name, devname); - if (pcyls && pheads && psecs) { - hfd->cyls = pcyls; - hfd->heads = pheads; - hfd->secspertrack = psecs; - } else if (cyls && surfaces && sectors) { - hfd->cyls = cyls; - hfd->heads = surfaces; - hfd->secspertrack = sectors; - } else { - getchshd (&hfd->hfd, &hfd->cyls, &hfd->heads, &hfd->secspertrack); - } - hfd->cyls_def = hfd->cyls; - hfd->secspertrack_def = hfd->secspertrack; - hfd->heads_def = hfd->heads; - if (hfd->hfd.heads && hfd->hfd.secspertrack) { - uae_u8 buf[512] = { 0 }; - hdf_read (&hfd->hfd, buf, 0, 512); - if (buf[0] != 0 && memcmp (buf, _T("RDSK"), 4)) { - hfd->hfd.nrcyls = (hfd->hfd.virtsize / blocksize) / (sectors * surfaces); - create_virtual_rdb (&hfd->hfd, rl (buf), hfd->bootpri, filesys); - while (hfd->hfd.nrcyls * surfaces * sectors > hfd->cyls_def * hfd->secspertrack_def * hfd->heads_def) { - hfd->cyls_def++; - } - } - } - hfd->size = hfd->hfd.virtsize; - return 1; + memset (hfd, 0, sizeof (struct hd_hardfiledata)); + hfd->bootpri = bootpri; + hfd->hfd.blocksize = blocksize; + hfd->hfd.readonly = readonly; + if (!hdf_open (&hfd->hfd, path)) + return 0; + hfd->path = my_strdup(path); + hfd->hfd.cylinders = cyls; + hfd->hfd.heads = surfaces; + hfd->hfd.reservedblocks = reserved; + hfd->hfd.secspertrack = sectors; + if (devname) + _tcscpy (hfd->hfd.device_name, devname); + if (pcyls && pheads && psecs) + { + hfd->cyls = pcyls; + hfd->heads = pheads; + hfd->secspertrack = psecs; + } + else if (cyls && surfaces && sectors) + { + hfd->cyls = cyls; + hfd->heads = surfaces; + hfd->secspertrack = sectors; + } + else + { + getchshd (&hfd->hfd, &hfd->cyls, &hfd->heads, &hfd->secspertrack); + } + hfd->cyls_def = hfd->cyls; + hfd->secspertrack_def = hfd->secspertrack; + hfd->heads_def = hfd->heads; + if (hfd->hfd.heads && hfd->hfd.secspertrack) + { + uae_u8 buf[512] = { 0 }; + hdf_read (&hfd->hfd, buf, 0, 512); + if (buf[0] != 0 && memcmp (buf, _T("RDSK"), 4)) + { + hfd->hfd.nrcyls = (hfd->hfd.virtsize / blocksize) / (sectors * surfaces); + create_virtual_rdb (&hfd->hfd, rl (buf), hfd->bootpri, filesys); + while (hfd->hfd.nrcyls * surfaces * sectors > hfd->cyls_def * hfd->secspertrack_def * hfd->heads_def) + { + hfd->cyls_def++; + } + } + } + hfd->size = hfd->hfd.virtsize; + return 1; } static int hdf_write2 (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len); @@ -432,892 +458,956 @@ static void hdf_flush_cache (struct hardfiledata *hdf) static int hdf_cache_read (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len) { - return hdf_read2 (hfd, buffer, offset, len); + return hdf_read2 (hfd, buffer, offset, len); } static int hdf_cache_write (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len) { - return hdf_write2 (hfd, buffer, offset, len); + return hdf_write2 (hfd, buffer, offset, len); } int hdf_open (struct hardfiledata *hfd, const TCHAR *pname) { - hfd->adide = 0; - hfd->byteswap = 0; - if (!hdf_open_target (hfd, pname)) - return 0; - return 1; + hfd->adide = 0; + hfd->byteswap = 0; + if (!hdf_open_target (hfd, pname)) + return 0; + return 1; } void hdf_close (struct hardfiledata *hfd) { - hdf_close_target (hfd); + hdf_close_target (hfd); } static int hdf_read2 (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len) { - return hdf_read_target (hfd, buffer, offset, len); + return hdf_read_target (hfd, buffer, offset, len); } static int hdf_write2 (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len) { - return hdf_write_target (hfd, buffer, offset, len); + return hdf_write_target (hfd, buffer, offset, len); } static void adide_decode (void *v, int len) { - int i; - uae_u8 *buffer = (uae_u8*)v; - for (i = 0; i < len; i += 2) { - uae_u8 *b = buffer + i; - uae_u16 w = (b[0] << 8) | (b[1] << 0); - uae_u16 o = 0; + int i; + uae_u8 *buffer = (uae_u8*)v; + for (i = 0; i < len; i += 2) + { + uae_u8 *b = buffer + i; + uae_u16 w = (b[0] << 8) | (b[1] << 0); + uae_u16 o = 0; - if (w & 0x8000) - o |= 0x0001; - if (w & 0x0001) - o |= 0x0002; + if (w & 0x8000) + o |= 0x0001; + if (w & 0x0001) + o |= 0x0002; - if (w & 0x4000) - o |= 0x0004; - if (w & 0x0002) - o |= 0x0008; + if (w & 0x4000) + o |= 0x0004; + if (w & 0x0002) + o |= 0x0008; - if (w & 0x2000) - o |= 0x0010; - if (w & 0x0004) - o |= 0x0020; + if (w & 0x2000) + o |= 0x0010; + if (w & 0x0004) + o |= 0x0020; - if (w & 0x1000) - o |= 0x0040; - if (w & 0x0008) - o |= 0x0080; + if (w & 0x1000) + o |= 0x0040; + if (w & 0x0008) + o |= 0x0080; - if (w & 0x0800) - o |= 0x0100; - if (w & 0x0010) - o |= 0x0200; + if (w & 0x0800) + o |= 0x0100; + if (w & 0x0010) + o |= 0x0200; - if (w & 0x0400) - o |= 0x0400; - if (w & 0x0020) - o |= 0x0800; + if (w & 0x0400) + o |= 0x0400; + if (w & 0x0020) + o |= 0x0800; - if (w & 0x0200) - o |= 0x1000; - if (w & 0x0040) - o |= 0x2000; + if (w & 0x0200) + o |= 0x1000; + if (w & 0x0040) + o |= 0x2000; - if (w & 0x0100) - o |= 0x4000; - if (w & 0x0080) - o |= 0x8000; + if (w & 0x0100) + o |= 0x4000; + if (w & 0x0080) + o |= 0x8000; - b[0] = o >> 8; - b[1] = o >> 0; - } + b[0] = o >> 8; + b[1] = o >> 0; + } } static void adide_encode (void *v, int len) { - int i; - uae_u8 *buffer = (uae_u8*)v; - for (i = 0; i < len; i += 2) { - uae_u8 *b = buffer + i; - uae_u16 w = (b[0] << 8) | (b[1] << 0); - uae_u16 o = 0; + int i; + uae_u8 *buffer = (uae_u8*)v; + for (i = 0; i < len; i += 2) + { + uae_u8 *b = buffer + i; + uae_u16 w = (b[0] << 8) | (b[1] << 0); + uae_u16 o = 0; - if (w & 0x0001) - o |= 0x8000; - if (w & 0x0002) - o |= 0x0001; + if (w & 0x0001) + o |= 0x8000; + if (w & 0x0002) + o |= 0x0001; - if (w & 0x0004) - o |= 0x4000; - if (w & 0x0008) - o |= 0x0002; + if (w & 0x0004) + o |= 0x4000; + if (w & 0x0008) + o |= 0x0002; - if (w & 0x0010) - o |= 0x2000; - if (w & 0x0020) - o |= 0x0004; + if (w & 0x0010) + o |= 0x2000; + if (w & 0x0020) + o |= 0x0004; - if (w & 0x0040) - o |= 0x1000; - if (w & 0x0080) - o |= 0x0008; + if (w & 0x0040) + o |= 0x1000; + if (w & 0x0080) + o |= 0x0008; - if (w & 0x0100) - o |= 0x0800; - if (w & 0x0200) - o |= 0x0010; + if (w & 0x0100) + o |= 0x0800; + if (w & 0x0200) + o |= 0x0010; - if (w & 0x0400) - o |= 0x0400; - if (w & 0x0800) - o |= 0x0020; + if (w & 0x0400) + o |= 0x0400; + if (w & 0x0800) + o |= 0x0020; - if (w & 0x1000) - o |= 0x0200; - if (w & 0x2000) - o |= 0x0040; + if (w & 0x1000) + o |= 0x0200; + if (w & 0x2000) + o |= 0x0040; - if (w & 0x4000) - o |= 0x0100; - if (w & 0x8000) - o |= 0x0080; + if (w & 0x4000) + o |= 0x0100; + if (w & 0x8000) + o |= 0x0080; - b[0] = o >> 8; - b[1] = o >> 0; - } + b[0] = o >> 8; + b[1] = o >> 0; + } } static void hdf_byteswap (void *v, int len) { - int i; - uae_u8 *b = (uae_u8*)v; + int i; + uae_u8 *b = (uae_u8*)v; - for (i = 0; i < len; i += 2) { - uae_u8 tmp = b[i]; - b[i] = b[i + 1]; - b[i + 1] = tmp; - } + for (i = 0; i < len; i += 2) + { + uae_u8 tmp = b[i]; + b[i] = b[i + 1]; + b[i + 1] = tmp; + } } int hdf_read_rdb (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len) { - int v; - v = hdf_read (hfd, buffer, offset, len); - if (v > 0 && offset < 16 * 512 && !hfd->byteswap && !hfd->adide) { - uae_u8 *buf = (uae_u8*)buffer; - bool changed = false; - if (buf[0] == 0x39 && buf[1] == 0x10 && buf[2] == 0xd3 && buf[3] == 0x12) { // AdIDE encoded "CPRM" - hfd->adide = 1; - changed = true; - write_log (_T("HDF: adide scrambling detected\n")); - } else if (!memcmp (buf, "DRKS", 4)) { - hfd->byteswap = 1; - changed = true; - write_log (_T("HDF: byteswapped RDB detected\n")); - } - if (changed) - v = hdf_read (hfd, buffer, offset, len); - } - return v; + int v; + v = hdf_read (hfd, buffer, offset, len); + if (v > 0 && offset < 16 * 512 && !hfd->byteswap && !hfd->adide) + { + uae_u8 *buf = (uae_u8*)buffer; + bool changed = false; + if (buf[0] == 0x39 && buf[1] == 0x10 && buf[2] == 0xd3 && buf[3] == 0x12) // AdIDE encoded "CPRM" + { + hfd->adide = 1; + changed = true; + write_log (_T("HDF: adide scrambling detected\n")); + } + else if (!memcmp (buf, "DRKS", 4)) + { + hfd->byteswap = 1; + changed = true; + write_log (_T("HDF: byteswapped RDB detected\n")); + } + if (changed) + v = hdf_read (hfd, buffer, offset, len); + } + return v; } int hdf_read (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len) { - int v; + int v; - if (!hfd->adide) { - v = hdf_cache_read (hfd, buffer, offset, len); - } else { - offset += 512; - v = hdf_cache_read (hfd, buffer, offset, len); - adide_decode (buffer, len); - } - if (hfd->byteswap) - hdf_byteswap (buffer, len); - return v; + if (!hfd->adide) + { + v = hdf_cache_read (hfd, buffer, offset, len); + } + else + { + offset += 512; + v = hdf_cache_read (hfd, buffer, offset, len); + adide_decode (buffer, len); + } + if (hfd->byteswap) + hdf_byteswap (buffer, len); + return v; } int hdf_write (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len) { - int v; + int v; - if (hfd->byteswap) - hdf_byteswap (buffer, len); - if (!hfd->adide) { - v = hdf_cache_write (hfd, buffer, offset, len); - } else { - offset += 512; - adide_encode (buffer, len); - v = hdf_cache_write (hfd, buffer, offset, len); - adide_decode (buffer, len); - } - if (hfd->byteswap) - hdf_byteswap (buffer, len); - return v; + if (hfd->byteswap) + hdf_byteswap (buffer, len); + if (!hfd->adide) + { + v = hdf_cache_write (hfd, buffer, offset, len); + } + else + { + offset += 512; + adide_encode (buffer, len); + v = hdf_cache_write (hfd, buffer, offset, len); + adide_decode (buffer, len); + } + if (hfd->byteswap) + hdf_byteswap (buffer, len); + return v; } static uae_u64 cmd_readx (struct hardfiledata *hfd, uae_u8 *dataptr, uae_u64 offset, uae_u64 len) { - gui_flicker_led (LED_HD, hfd->unitnum, 1); - hf_log3 (_T("cmd_read: %p %04x-%08x (%d) %08x (%d)\n"), - dataptr, (uae_u32)(offset >> 32), (uae_u32)offset, (uae_u32)(offset / hfd->blocksize), (uae_u32)len, (uae_u32)(len / hfd->blocksize)); - return hdf_read (hfd, dataptr, offset, len); + gui_flicker_led (LED_HD, hfd->unitnum, 1); + hf_log3 (_T("cmd_read: %p %04x-%08x (%d) %08x (%d)\n"), + dataptr, (uae_u32)(offset >> 32), (uae_u32)offset, (uae_u32)(offset / hfd->blocksize), (uae_u32)len, (uae_u32)(len / hfd->blocksize)); + return hdf_read (hfd, dataptr, offset, len); } static uae_u64 cmd_read (struct hardfiledata *hfd, uaecptr dataptr, uae_u64 offset, uae_u64 len) { - addrbank *bank_data = &get_mem_bank (dataptr); - if (!len || !bank_data || !bank_data->check (dataptr, len)) - return 0; - return cmd_readx (hfd, bank_data->xlateaddr (dataptr), offset, len); + addrbank *bank_data = &get_mem_bank (dataptr); + if (!len || !bank_data || !bank_data->check (dataptr, len)) + return 0; + return cmd_readx (hfd, bank_data->xlateaddr (dataptr), offset, len); } static uae_u64 cmd_writex (struct hardfiledata *hfd, uae_u8 *dataptr, uae_u64 offset, uae_u64 len) { - gui_flicker_led (LED_HD, hfd->unitnum, 2); - hf_log3 (_T("cmd_write: %p %04x-%08x (%d) %08x (%d)\n"), - dataptr, (uae_u32)(offset >> 32), (uae_u32)offset, (uae_u32)(offset / hfd->blocksize), (uae_u32)len, (uae_u32)(len / hfd->blocksize)); - return hdf_write (hfd, dataptr, offset, len); + gui_flicker_led (LED_HD, hfd->unitnum, 2); + hf_log3 (_T("cmd_write: %p %04x-%08x (%d) %08x (%d)\n"), + dataptr, (uae_u32)(offset >> 32), (uae_u32)offset, (uae_u32)(offset / hfd->blocksize), (uae_u32)len, (uae_u32)(len / hfd->blocksize)); + return hdf_write (hfd, dataptr, offset, len); } static uae_u64 cmd_write (struct hardfiledata *hfd, uaecptr dataptr, uae_u64 offset, uae_u64 len) { - addrbank *bank_data = &get_mem_bank (dataptr); - if (!len || !bank_data || !bank_data->check (dataptr, len)) - return 0; - return cmd_writex (hfd, bank_data->xlateaddr (dataptr), offset, len); + addrbank *bank_data = &get_mem_bank (dataptr); + if (!len || !bank_data || !bank_data->check (dataptr, len)) + return 0; + return cmd_writex (hfd, bank_data->xlateaddr (dataptr), offset, len); } static int checkbounds (struct hardfiledata *hfd, uae_u64 offset, uae_u64 len) { - if (offset >= hfd->virtsize) - return 0; - if (offset + len > hfd->virtsize) - return 0; - return 1; + if (offset >= hfd->virtsize) + return 0; + if (offset + len > hfd->virtsize) + return 0; + return 1; } static int nodisk (struct hardfiledata *hfd) { - if (hfd->drive_empty) - return 1; - return 0; + if (hfd->drive_empty) + return 1; + return 0; } void hardfile_do_disk_change (struct uaedev_config_info *uci, int insert) { - int fsid = uci->configoffset; - int j; - int newstate = insert ? 0 : 1; - struct hardfiledata *hfd; + int fsid = uci->configoffset; + int j; + int newstate = insert ? 0 : 1; + struct hardfiledata *hfd; - hfd = get_hardfile_data (fsid); - if (!hfd) - return; - uae_sem_wait (&change_sem); - hardfpd[fsid].changenum++; - write_log (_T("uaehf.device:%d media status=%d changenum=%d\n"), fsid, insert, hardfpd[fsid].changenum); - hfd->drive_empty = newstate; - j = 0; - while (j < MAX_ASYNC_REQUESTS) { - if (hardfpd[fsid].d_request_type[j] == ASYNC_REQUEST_CHANGEINT) { - uae_Cause (hardfpd[fsid].d_request_data[j]); - } - j++; - } - if (hardfpd[fsid].changeint) - uae_Cause (hardfpd[fsid].changeint); - uae_sem_post (&change_sem); + hfd = get_hardfile_data (fsid); + if (!hfd) + return; + uae_sem_wait (&change_sem); + hardfpd[fsid].changenum++; + write_log (_T("uaehf.device:%d media status=%d changenum=%d\n"), fsid, insert, hardfpd[fsid].changenum); + hfd->drive_empty = newstate; + j = 0; + while (j < MAX_ASYNC_REQUESTS) + { + if (hardfpd[fsid].d_request_type[j] == ASYNC_REQUEST_CHANGEINT) + { + uae_Cause (hardfpd[fsid].d_request_data[j]); + } + j++; + } + if (hardfpd[fsid].changeint) + uae_Cause (hardfpd[fsid].changeint); + uae_sem_post (&change_sem); } static int add_async_request (struct hardfileprivdata *hfpd, uaecptr request, int type, uae_u32 data) { - int i; + int i; - i = 0; - while (i < MAX_ASYNC_REQUESTS) { - if (hfpd->d_request[i] == request) { - hfpd->d_request_type[i] = type; - hfpd->d_request_data[i] = data; - hf_log (_T("old async request %p (%d) added\n"), request, type); - return 0; - } - i++; - } - i = 0; - while (i < MAX_ASYNC_REQUESTS) { - if (hfpd->d_request[i] == 0) { - hfpd->d_request[i] = request; - hfpd->d_request_type[i] = type; - hfpd->d_request_data[i] = data; - hf_log (_T("async request %p (%d) added (total=%d)\n"), request, type, i); - return 0; - } - i++; - } - hf_log (_T("async request overflow %p!\n"), request); - return -1; + i = 0; + while (i < MAX_ASYNC_REQUESTS) + { + if (hfpd->d_request[i] == request) + { + hfpd->d_request_type[i] = type; + hfpd->d_request_data[i] = data; + hf_log (_T("old async request %p (%d) added\n"), request, type); + return 0; + } + i++; + } + i = 0; + while (i < MAX_ASYNC_REQUESTS) + { + if (hfpd->d_request[i] == 0) + { + hfpd->d_request[i] = request; + hfpd->d_request_type[i] = type; + hfpd->d_request_data[i] = data; + hf_log (_T("async request %p (%d) added (total=%d)\n"), request, type, i); + return 0; + } + i++; + } + hf_log (_T("async request overflow %p!\n"), request); + return -1; } static int release_async_request (struct hardfileprivdata *hfpd, uaecptr request) { - int i = 0; + int i = 0; - while (i < MAX_ASYNC_REQUESTS) { - if (hfpd->d_request[i] == request) { - int type = hfpd->d_request_type[i]; - hfpd->d_request[i] = 0; - hfpd->d_request_data[i] = 0; - hfpd->d_request_type[i] = 0; - hf_log (_T("async request %p removed\n"), request); - return type; - } - i++; - } - hf_log (_T("tried to remove non-existing request %p\n"), request); - return -1; + while (i < MAX_ASYNC_REQUESTS) + { + if (hfpd->d_request[i] == request) + { + int type = hfpd->d_request_type[i]; + hfpd->d_request[i] = 0; + hfpd->d_request_data[i] = 0; + hfpd->d_request_type[i] = 0; + hf_log (_T("async request %p removed\n"), request); + return type; + } + i++; + } + hf_log (_T("tried to remove non-existing request %p\n"), request); + return -1; } static void abort_async (struct hardfileprivdata *hfpd, uaecptr request, int errcode, int type) { - int i; - hf_log (_T("aborting async request %p\n"), request); - i = 0; - while (i < MAX_ASYNC_REQUESTS) { - if (hfpd->d_request[i] == request && hfpd->d_request_type[i] == ASYNC_REQUEST_TEMP) { - /* ASYNC_REQUEST_TEMP = request is processing */ - sleep_millis (1); - i = 0; - continue; - } - i++; - } - i = release_async_request (hfpd, request); - if (i >= 0) - hf_log (_T("asyncronous request=%08X aborted, error=%d\n"), request, errcode); + int i; + hf_log (_T("aborting async request %p\n"), request); + i = 0; + while (i < MAX_ASYNC_REQUESTS) + { + if (hfpd->d_request[i] == request && hfpd->d_request_type[i] == ASYNC_REQUEST_TEMP) + { + /* ASYNC_REQUEST_TEMP = request is processing */ + sleep_millis (1); + i = 0; + continue; + } + i++; + } + i = release_async_request (hfpd, request); + if (i >= 0) + hf_log (_T("asyncronous request=%08X aborted, error=%d\n"), request, errcode); } static void *hardfile_thread (void *devs); static int start_thread (TrapContext *context, int unit) { - struct hardfileprivdata *hfpd = &hardfpd[unit]; + struct hardfileprivdata *hfpd = &hardfpd[unit]; - if (hfpd->thread_running) - return 1; - memset (hfpd, 0, sizeof (struct hardfileprivdata)); - hfpd->base = m68k_areg(regs, 6); - init_comm_pipe (&hfpd->requests, 100, 1); - uae_sem_init (&hfpd->sync_sem, 0, 0); - uae_start_thread (_T("hardfile"), hardfile_thread, hfpd, &(hfpd->thread_id)); - uae_sem_wait (&hfpd->sync_sem); - return hfpd->thread_running; + if (hfpd->thread_running) + return 1; + memset (hfpd, 0, sizeof (struct hardfileprivdata)); + hfpd->base = m68k_areg(regs, 6); + init_comm_pipe (&hfpd->requests, 100, 1); + uae_sem_init (&hfpd->sync_sem, 0, 0); + uae_start_thread (_T("hardfile"), hardfile_thread, hfpd, &(hfpd->thread_id)); + uae_sem_wait (&hfpd->sync_sem); + return hfpd->thread_running; } static int mangleunit (int unit) { - if (unit <= 99) - return unit; - if (unit == 100) - return 8; - if (unit == 110) - return 9; - return -1; + if (unit <= 99) + return unit; + if (unit == 100) + return 8; + if (unit == 110) + return 9; + return -1; } static uae_u32 REGPARAM2 hardfile_open (TrapContext *context) { - uaecptr ioreq = m68k_areg(regs, 1); /* IOReq */ - int unit = mangleunit(m68k_dreg (regs, 0)); - struct hardfileprivdata *hfpd = &hardfpd[unit]; - int err = IOERR_OPENFAIL; - int size = get_word (ioreq + 0x12); + uaecptr ioreq = m68k_areg(regs, 1); /* IOReq */ + int unit = mangleunit(m68k_dreg (regs, 0)); + struct hardfileprivdata *hfpd = &hardfpd[unit]; + int err = IOERR_OPENFAIL; + int size = get_word (ioreq + 0x12); - /* boot device port size == 0!? KS 1.x size = 12??? */ - if (size >= IOSTDREQ_SIZE || size == 0 || kickstart_version == 0xffff || kickstart_version < 39) { - /* Check unit number */ - if (unit >= 0) { - struct hardfiledata *hfd = get_hardfile_data (unit); - if (hfd && hfd->handle_valid && start_thread (context, unit)) { - put_word (hfpd->base + 32, get_word (hfpd->base + 32) + 1); - put_long (ioreq + 24, unit); /* io_Unit */ - put_byte (ioreq + 31, 0); /* io_Error */ - put_byte (ioreq + 8, 7); /* ln_type = NT_REPLYMSG */ - hf_log (_T("hardfile_open, unit %d (%d), OK\n"), unit, m68k_dreg (regs, 0)); - return 0; - } + /* boot device port size == 0!? KS 1.x size = 12??? */ + if (size >= IOSTDREQ_SIZE || size == 0 || kickstart_version == 0xffff || kickstart_version < 39) + { + /* Check unit number */ + if (unit >= 0) + { + struct hardfiledata *hfd = get_hardfile_data (unit); + if (hfd && hfd->handle_valid && start_thread (context, unit)) + { + put_word (hfpd->base + 32, get_word (hfpd->base + 32) + 1); + put_long (ioreq + 24, unit); /* io_Unit */ + put_byte (ioreq + 31, 0); /* io_Error */ + put_byte (ioreq + 8, 7); /* ln_type = NT_REPLYMSG */ + hf_log (_T("hardfile_open, unit %d (%d), OK\n"), unit, m68k_dreg (regs, 0)); + return 0; + } + } + if (unit < 1000 || is_hardfile(unit) == FILESYS_VIRTUAL) + err = 50; /* HFERR_NoBoard */ } - if (unit < 1000 || is_hardfile(unit) == FILESYS_VIRTUAL) - err = 50; /* HFERR_NoBoard */ - } else { - err = IOERR_BADLENGTH; - } - hf_log (_T("hardfile_open, unit %d (%d), ERR=%d\n"), unit, m68k_dreg (regs, 0), err); - put_long (ioreq + 20, (uae_u32)err); - put_byte (ioreq + 31, (uae_u8)err); - return (uae_u32)err; + else + { + err = IOERR_BADLENGTH; + } + hf_log (_T("hardfile_open, unit %d (%d), ERR=%d\n"), unit, m68k_dreg (regs, 0), err); + put_long (ioreq + 20, (uae_u32)err); + put_byte (ioreq + 31, (uae_u8)err); + return (uae_u32)err; } static uae_u32 REGPARAM2 hardfile_close (TrapContext *context) { - uaecptr request = m68k_areg(regs, 1); /* IOReq */ - int unit = mangleunit (get_long (request + 24)); - struct hardfileprivdata *hfpd = &hardfpd[unit]; + uaecptr request = m68k_areg(regs, 1); /* IOReq */ + int unit = mangleunit (get_long (request + 24)); + struct hardfileprivdata *hfpd = &hardfpd[unit]; - if (!hfpd) + if (!hfpd) + return 0; + put_word (hfpd->base + 32, get_word (hfpd->base + 32) - 1); + if (get_word(hfpd->base + 32) == 0) + write_comm_pipe_u32 (&hfpd->requests, 0, 1); return 0; - put_word (hfpd->base + 32, get_word (hfpd->base + 32) - 1); - if (get_word(hfpd->base + 32) == 0) - write_comm_pipe_u32 (&hfpd->requests, 0, 1); - return 0; } static uae_u32 REGPARAM2 hardfile_expunge (TrapContext *context) { - return 0; /* Simply ignore this one... */ + return 0; /* Simply ignore this one... */ } static void outofbounds (int cmd, uae_u64 offset, uae_u64 len, uae_u64 max) { - write_log (_T("UAEHF: cmd %d: out of bounds, %08X-%08X + %08X-%08X > %08X-%08X\n"), cmd, - (uae_u32)(offset >> 32),(uae_u32)offset,(uae_u32)(len >> 32),(uae_u32)len, - (uae_u32)(max >> 32),(uae_u32)max); + write_log (_T("UAEHF: cmd %d: out of bounds, %08X-%08X + %08X-%08X > %08X-%08X\n"), cmd, + (uae_u32)(offset >> 32),(uae_u32)offset,(uae_u32)(len >> 32),(uae_u32)len, + (uae_u32)(max >> 32),(uae_u32)max); } static void unaligned (int cmd, uae_u64 offset, uae_u64 len, int blocksize) { - write_log (_T("UAEHF: cmd %d: unaligned access, %08X-%08X, %08X-%08X, %08X\n"), cmd, - (uae_u32)(offset >> 32),(uae_u32)offset,(uae_u32)(len >> 32),(uae_u32)len, - blocksize); + write_log (_T("UAEHF: cmd %d: unaligned access, %08X-%08X, %08X-%08X, %08X\n"), cmd, + (uae_u32)(offset >> 32),(uae_u32)offset,(uae_u32)(len >> 32),(uae_u32)len, + blocksize); } static uae_u32 hardfile_do_io (struct hardfiledata *hfd, struct hardfileprivdata *hfpd, uaecptr request) { - uae_u32 dataptr, offset, actual = 0, cmd; - uae_u64 offset64; - int unit = get_long (request + 24); - uae_u32 error = 0, len; - int async = 0; - int bmask = hfd->blocksize - 1; + uae_u32 dataptr, offset, actual = 0, cmd; + uae_u64 offset64; + int unit = get_long (request + 24); + uae_u32 error = 0, len; + int async = 0; + int bmask = hfd->blocksize - 1; - cmd = get_word (request + 28); /* io_Command */ - dataptr = get_long (request + 40); - switch (cmd) - { - case CMD_READ: - if (nodisk (hfd)) - goto no_disk; - offset = get_long (request + 44); - len = get_long (request + 36); /* io_Length */ - if (offset & bmask) { - unaligned (cmd, offset, len, hfd->blocksize); - goto bad_command; - } - if (len & bmask) { - unaligned (cmd, offset, len, hfd->blocksize); - goto bad_len; - } - if (len + offset > hfd->virtsize) { - outofbounds (cmd, offset, len, hfd->virtsize); - goto bad_len; - } - actual = (uae_u32)cmd_read (hfd, dataptr, offset, len); - break; + cmd = get_word (request + 28); /* io_Command */ + dataptr = get_long (request + 40); + switch (cmd) + { + case CMD_READ: + if (nodisk (hfd)) + goto no_disk; + offset = get_long (request + 44); + len = get_long (request + 36); /* io_Length */ + if (offset & bmask) + { + unaligned (cmd, offset, len, hfd->blocksize); + goto bad_command; + } + if (len & bmask) + { + unaligned (cmd, offset, len, hfd->blocksize); + goto bad_len; + } + if (len + offset > hfd->virtsize) + { + outofbounds (cmd, offset, len, hfd->virtsize); + goto bad_len; + } + actual = (uae_u32)cmd_read (hfd, dataptr, offset, len); + break; - case TD_READ64: - case NSCMD_TD_READ64: - if (nodisk (hfd)) - goto no_disk; - offset64 = get_long (request + 44) | ((uae_u64)get_long (request + 32) << 32); - len = get_long (request + 36); /* io_Length */ - if (offset64 & bmask) { - unaligned (cmd, offset64, len, hfd->blocksize); - goto bad_command; - } - if (len & bmask) { - unaligned (cmd, offset64, len, hfd->blocksize); - goto bad_len; - } - if (len + offset64 > hfd->virtsize) { - outofbounds (cmd, offset64, len, hfd->virtsize); - goto bad_len; - } - actual = (uae_u32)cmd_read (hfd, dataptr, offset64, len); - break; + case TD_READ64: + case NSCMD_TD_READ64: + if (nodisk (hfd)) + goto no_disk; + offset64 = get_long (request + 44) | ((uae_u64)get_long (request + 32) << 32); + len = get_long (request + 36); /* io_Length */ + if (offset64 & bmask) + { + unaligned (cmd, offset64, len, hfd->blocksize); + goto bad_command; + } + if (len & bmask) + { + unaligned (cmd, offset64, len, hfd->blocksize); + goto bad_len; + } + if (len + offset64 > hfd->virtsize) + { + outofbounds (cmd, offset64, len, hfd->virtsize); + goto bad_len; + } + actual = (uae_u32)cmd_read (hfd, dataptr, offset64, len); + break; - case CMD_WRITE: - case CMD_FORMAT: /* Format */ - if (nodisk (hfd)) - goto no_disk; - if (hfd->readonly || hfd->dangerous) { - error = 28; /* write protect */ - } else { - offset = get_long (request + 44); - len = get_long (request + 36); /* io_Length */ - if (offset & bmask) { - unaligned (cmd, offset, len, hfd->blocksize); - goto bad_command; - } - if (len & bmask) { - unaligned (cmd, offset, len, hfd->blocksize); - goto bad_len; - } - if (len + offset > hfd->virtsize) { - outofbounds (cmd, offset, len, hfd->virtsize); - goto bad_len; - } - actual = (uae_u32)cmd_write (hfd, dataptr, offset, len); - } - break; + case CMD_WRITE: + case CMD_FORMAT: /* Format */ + if (nodisk (hfd)) + goto no_disk; + if (hfd->readonly || hfd->dangerous) + { + error = 28; /* write protect */ + } + else + { + offset = get_long (request + 44); + len = get_long (request + 36); /* io_Length */ + if (offset & bmask) + { + unaligned (cmd, offset, len, hfd->blocksize); + goto bad_command; + } + if (len & bmask) + { + unaligned (cmd, offset, len, hfd->blocksize); + goto bad_len; + } + if (len + offset > hfd->virtsize) + { + outofbounds (cmd, offset, len, hfd->virtsize); + goto bad_len; + } + actual = (uae_u32)cmd_write (hfd, dataptr, offset, len); + } + break; - case TD_WRITE64: - case TD_FORMAT64: - case NSCMD_TD_WRITE64: - case NSCMD_TD_FORMAT64: - if (nodisk (hfd)) - goto no_disk; - if (hfd->readonly || hfd->dangerous) { - error = 28; /* write protect */ - } else { - offset64 = get_long (request + 44) | ((uae_u64)get_long (request + 32) << 32); - len = get_long (request + 36); /* io_Length */ - if (offset64 & bmask) { - unaligned (cmd, offset64, len, hfd->blocksize); - goto bad_command; - } - if (len & bmask) { - unaligned (cmd, offset64, len, hfd->blocksize); - goto bad_len; - } - if (len + offset64 > hfd->virtsize) { - outofbounds (cmd, offset64, len, hfd->virtsize); - goto bad_len; - } - actual = (uae_u32)cmd_write (hfd, dataptr, offset64, len); - } - break; + case TD_WRITE64: + case TD_FORMAT64: + case NSCMD_TD_WRITE64: + case NSCMD_TD_FORMAT64: + if (nodisk (hfd)) + goto no_disk; + if (hfd->readonly || hfd->dangerous) + { + error = 28; /* write protect */ + } + else + { + offset64 = get_long (request + 44) | ((uae_u64)get_long (request + 32) << 32); + len = get_long (request + 36); /* io_Length */ + if (offset64 & bmask) + { + unaligned (cmd, offset64, len, hfd->blocksize); + goto bad_command; + } + if (len & bmask) + { + unaligned (cmd, offset64, len, hfd->blocksize); + goto bad_len; + } + if (len + offset64 > hfd->virtsize) + { + outofbounds (cmd, offset64, len, hfd->virtsize); + goto bad_len; + } + actual = (uae_u32)cmd_write (hfd, dataptr, offset64, len); + } + break; bad_command: - error = IOERR_BADADDRESS; - break; + error = IOERR_BADADDRESS; + break; bad_len: - error = IOERR_BADLENGTH; + error = IOERR_BADLENGTH; no_disk: - error = 29; /* no disk */ - break; + error = 29; /* no disk */ + break; - case NSCMD_DEVICEQUERY: - put_long (dataptr + 0, 0); - put_long (dataptr + 4, 16); /* size */ - put_word (dataptr + 8, NSDEVTYPE_TRACKDISK); - put_word (dataptr + 10, 0); - put_long (dataptr + 12, nscmd_cmd); - actual = 16; - break; + case NSCMD_DEVICEQUERY: + put_long (dataptr + 0, 0); + put_long (dataptr + 4, 16); /* size */ + put_word (dataptr + 8, NSDEVTYPE_TRACKDISK); + put_word (dataptr + 10, 0); + put_long (dataptr + 12, nscmd_cmd); + actual = 16; + break; - case CMD_GETDRIVETYPE: - actual = DRIVE_NEWSTYLE; + case CMD_GETDRIVETYPE: + actual = DRIVE_NEWSTYLE; + break; + + case CMD_GETNUMTRACKS: + { + int cyl, cylsec, head, tracksec; + getchsx (hfd, &cyl, &cylsec, &head, &tracksec); + actual = cyl * head; + break; + } + + case CMD_GETGEOMETRY: + { + int cyl, cylsec, head, tracksec; + uae_u64 size; + getchsx (hfd, &cyl, &cylsec, &head, &tracksec); + put_long (dataptr + 0, hfd->blocksize); + size = hfd->virtsize / hfd->blocksize; + if (size > 0x00ffffffff) + size = 0xffffffff; + put_long (dataptr + 4, (uae_u32)size); + put_long (dataptr + 8, cyl); + put_long (dataptr + 12, cylsec); + put_long (dataptr + 16, head); + put_long (dataptr + 20, tracksec); + put_long (dataptr + 24, 0); /* bufmemtype */ + put_byte (dataptr + 28, 0); /* type = DG_DIRECT_ACCESS */ + put_byte (dataptr + 29, 0); /* flags */ + } break; - case CMD_GETNUMTRACKS: - { - int cyl, cylsec, head, tracksec; - getchsx (hfd, &cyl, &cylsec, &head, &tracksec); - actual = cyl * head; - break; - } + case CMD_PROTSTATUS: + if (hfd->readonly || hfd->dangerous) + actual = -1; + else + actual = 0; + break; - case CMD_GETGEOMETRY: - { - int cyl, cylsec, head, tracksec; - uae_u64 size; - getchsx (hfd, &cyl, &cylsec, &head, &tracksec); - put_long (dataptr + 0, hfd->blocksize); - size = hfd->virtsize / hfd->blocksize; - if (size > 0x00ffffffff) - size = 0xffffffff; - put_long (dataptr + 4, (uae_u32)size); - put_long (dataptr + 8, cyl); - put_long (dataptr + 12, cylsec); - put_long (dataptr + 16, head); - put_long (dataptr + 20, tracksec); - put_long (dataptr + 24, 0); /* bufmemtype */ - put_byte (dataptr + 28, 0); /* type = DG_DIRECT_ACCESS */ - put_byte (dataptr + 29, 0); /* flags */ - } - break; + case CMD_CHANGESTATE: + actual = hfd->drive_empty ? 1 :0; + break; - case CMD_PROTSTATUS: - if (hfd->readonly || hfd->dangerous) - actual = -1; - else - actual = 0; - break; + /* Some commands that just do nothing and return zero */ + case CMD_UPDATE: + case CMD_CLEAR: + case CMD_MOTOR: + case CMD_SEEK: + case TD_SEEK64: + case NSCMD_TD_SEEK64: + break; - case CMD_CHANGESTATE: - actual = hfd->drive_empty ? 1 :0; - break; + case CMD_REMOVE: + hfpd->changeint = get_long (request + 40); + break; - /* Some commands that just do nothing and return zero */ - case CMD_UPDATE: - case CMD_CLEAR: - case CMD_MOTOR: - case CMD_SEEK: - case TD_SEEK64: - case NSCMD_TD_SEEK64: - break; + case CMD_CHANGENUM: + actual = hfpd->changenum; + break; - case CMD_REMOVE: - hfpd->changeint = get_long (request + 40); - break; + case CMD_ADDCHANGEINT: + error = add_async_request (hfpd, request, ASYNC_REQUEST_CHANGEINT, get_long (request + 40)); + if (!error) + async = 1; + break; + case CMD_REMCHANGEINT: + release_async_request (hfpd, request); + break; - case CMD_CHANGENUM: - actual = hfpd->changenum; - break; + case HD_SCSICMD: /* SCSI */ + error = IOERR_NOCMD; + write_log (_T("UAEHF: HD_SCSICMD tried on regular HDF, unit %d\n"), unit); + break; - case CMD_ADDCHANGEINT: - error = add_async_request (hfpd, request, ASYNC_REQUEST_CHANGEINT, get_long (request + 40)); - if (!error) - async = 1; - break; - case CMD_REMCHANGEINT: - release_async_request (hfpd, request); - break; - - case HD_SCSICMD: /* SCSI */ - error = IOERR_NOCMD; - write_log (_T("UAEHF: HD_SCSICMD tried on regular HDF, unit %d\n"), unit); - break; + default: + /* Command not understood. */ + error = IOERR_NOCMD; + break; + } + put_long (request + 32, actual); + put_byte (request + 31, error); - default: - /* Command not understood. */ - error = IOERR_NOCMD; - break; - } - put_long (request + 32, actual); - put_byte (request + 31, error); + hf_log2 (_T("hf: unit=%d, request=%p, cmd=%d offset=%u len=%d, actual=%d error%=%d\n"), unit, request, + get_word(request + 28), get_long (request + 44), get_long (request + 36), actual, error); - hf_log2 (_T("hf: unit=%d, request=%p, cmd=%d offset=%u len=%d, actual=%d error%=%d\n"), unit, request, - get_word(request + 28), get_long (request + 44), get_long (request + 36), actual, error); - - return async; + return async; } static uae_u32 REGPARAM2 hardfile_abortio (TrapContext *context) { - uae_u32 request = m68k_areg(regs, 1); - int unit = mangleunit (get_long (request + 24)); -struct hardfiledata *hfd = get_hardfile_data (unit); + uae_u32 request = m68k_areg(regs, 1); + int unit = mangleunit (get_long (request + 24)); + struct hardfiledata *hfd = get_hardfile_data (unit); struct hardfileprivdata *hfpd = &hardfpd[unit]; - hf_log2 (_T("uaehf.device abortio ")); - start_thread(context, unit); - if (!hfd || !hfpd || !hfpd->thread_running) { - put_byte (request + 31, 32); - hf_log2 (_T("error\n")); - return get_byte (request + 31); - } - put_byte (request + 31, -2); - hf_log2 (_T("unit=%d, request=%08X\n"), unit, request); - abort_async (hfpd, request, -2, 0); - return 0; + hf_log2 (_T("uaehf.device abortio ")); + start_thread(context, unit); + if (!hfd || !hfpd || !hfpd->thread_running) + { + put_byte (request + 31, 32); + hf_log2 (_T("error\n")); + return get_byte (request + 31); + } + put_byte (request + 31, -2); + hf_log2 (_T("unit=%d, request=%08X\n"), unit, request); + abort_async (hfpd, request, -2, 0); + return 0; } static int hardfile_can_quick (uae_u32 command) { - switch (command) - { - case CMD_REMCHANGEINT: - return -1; - case CMD_RESET: - case CMD_STOP: - case CMD_START: - case CMD_CHANGESTATE: - case CMD_PROTSTATUS: - case CMD_MOTOR: - case CMD_GETDRIVETYPE: - case CMD_GETGEOMETRY: - case CMD_GETNUMTRACKS: - case NSCMD_DEVICEQUERY: - return 1; - } - return 0; + switch (command) + { + case CMD_REMCHANGEINT: + return -1; + case CMD_RESET: + case CMD_STOP: + case CMD_START: + case CMD_CHANGESTATE: + case CMD_PROTSTATUS: + case CMD_MOTOR: + case CMD_GETDRIVETYPE: + case CMD_GETGEOMETRY: + case CMD_GETNUMTRACKS: + case NSCMD_DEVICEQUERY: + return 1; + } + return 0; } static int hardfile_canquick (struct hardfiledata *hfd, uaecptr request) { - uae_u32 command = get_word (request + 28); - return hardfile_can_quick (command); + uae_u32 command = get_word (request + 28); + return hardfile_can_quick (command); } static uae_u32 REGPARAM2 hardfile_beginio (TrapContext *context) { - uae_u32 request = m68k_areg(regs, 1); - uae_u8 flags = get_byte (request + 30); - int cmd = get_word (request + 28); - int unit = mangleunit (get_long (request + 24)); - struct hardfiledata *hfd = get_hardfile_data (unit); - struct hardfileprivdata *hfpd = &hardfpd[unit]; - int canquick; + uae_u32 request = m68k_areg(regs, 1); + uae_u8 flags = get_byte (request + 30); + int cmd = get_word (request + 28); + int unit = mangleunit (get_long (request + 24)); + struct hardfiledata *hfd = get_hardfile_data (unit); + struct hardfileprivdata *hfpd = &hardfpd[unit]; + int canquick; - put_byte (request + 8, NT_MESSAGE); - start_thread(context, unit); - if (!hfd || !hfpd || !hfpd->thread_running) { - put_byte (request + 31, 32); - return get_byte (request + 31); - } - put_byte (request + 31, 0); - canquick = hardfile_canquick (hfd, request); - if (((flags & 1) && canquick) || (canquick < 0)) { - hf_log (_T("hf quickio unit=%d request=%p cmd=%d\n"), unit, request, cmd); - if (hardfile_do_io (hfd, hfpd, request)) - hf_log2 (_T("uaehf.device cmd %d bug with IO_QUICK\n"), cmd); - if (!(flags & 1)) - uae_ReplyMsg (request); - return get_byte (request + 31); - } else { - hf_log2 (_T("hf asyncio unit=%d request=%p cmd=%d\n"), unit, request, cmd); - add_async_request (hfpd, request, ASYNC_REQUEST_TEMP, 0); - put_byte (request + 30, get_byte (request + 30) & ~1); - write_comm_pipe_u32 (&hfpd->requests, request, 1); - return 0; - } + put_byte (request + 8, NT_MESSAGE); + start_thread(context, unit); + if (!hfd || !hfpd || !hfpd->thread_running) + { + put_byte (request + 31, 32); + return get_byte (request + 31); + } + put_byte (request + 31, 0); + canquick = hardfile_canquick (hfd, request); + if (((flags & 1) && canquick) || (canquick < 0)) + { + hf_log (_T("hf quickio unit=%d request=%p cmd=%d\n"), unit, request, cmd); + if (hardfile_do_io (hfd, hfpd, request)) + hf_log2 (_T("uaehf.device cmd %d bug with IO_QUICK\n"), cmd); + if (!(flags & 1)) + uae_ReplyMsg (request); + return get_byte (request + 31); + } + else + { + hf_log2 (_T("hf asyncio unit=%d request=%p cmd=%d\n"), unit, request, cmd); + add_async_request (hfpd, request, ASYNC_REQUEST_TEMP, 0); + put_byte (request + 30, get_byte (request + 30) & ~1); + write_comm_pipe_u32 (&hfpd->requests, request, 1); + return 0; + } } static void *hardfile_thread (void *devs) { - struct hardfileprivdata *hfpd = (struct hardfileprivdata *)devs; + struct hardfileprivdata *hfpd = (struct hardfileprivdata *)devs; - uae_set_thread_priority (NULL, 1); - hfpd->thread_running = 1; - uae_sem_post (&hfpd->sync_sem); - for (;;) { - uaecptr request = (uaecptr)read_comm_pipe_u32_blocking (&hfpd->requests); - uae_sem_wait (&change_sem); - if (!request) { + uae_set_thread_priority (NULL, 1); + hfpd->thread_running = 1; + uae_sem_post (&hfpd->sync_sem); + for (;;) + { + uaecptr request = (uaecptr)read_comm_pipe_u32_blocking (&hfpd->requests); + uae_sem_wait (&change_sem); + if (!request) + { // dbg_rem_thread(hfpd->thread_id); - hfpd->thread_running = 0; - uae_sem_post (&hfpd->sync_sem); - uae_sem_post (&change_sem); - return 0; - } else if (hardfile_do_io (get_hardfile_data (hfpd - &hardfpd[0]), hfpd, request) == 0) { - put_byte (request + 30, get_byte (request + 30) & ~1); - release_async_request (hfpd, request); - uae_ReplyMsg (request); - } else { - hf_log2 (_T("async request %08X\n"), request); - } - uae_sem_post (&change_sem); - } + hfpd->thread_running = 0; + uae_sem_post (&hfpd->sync_sem); + uae_sem_post (&change_sem); + return 0; + } + else if (hardfile_do_io (get_hardfile_data (hfpd - &hardfpd[0]), hfpd, request) == 0) + { + put_byte (request + 30, get_byte (request + 30) & ~1); + release_async_request (hfpd, request); + uae_ReplyMsg (request); + } + else + { + hf_log2 (_T("async request %08X\n"), request); + } + uae_sem_post (&change_sem); + } // dbg_rem_thread(hfpd->thread_id); } void hardfile_reset (void) { - int i, j; - struct hardfileprivdata *hfpd; + int i, j; + struct hardfileprivdata *hfpd; - for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) { - hfpd = &hardfpd[i]; - if (hfpd->base && valid_address(hfpd->base, 36) && get_word(hfpd->base + 32) > 0) { - for (j = 0; j < MAX_ASYNC_REQUESTS; j++) { - uaecptr request; - if ((request = hfpd->d_request[j])) - abort_async (hfpd, request, 0, 0); - } - } - if(hfpd->thread_running) + for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) { - uae_sem_wait (&change_sem); - write_comm_pipe_u32(&hfpd->requests, 0, 1); - uae_sem_post (&change_sem); - uae_sem_wait (&hfpd->sync_sem); - uae_sem_destroy (&hfpd->sync_sem); - destroy_comm_pipe (&hfpd->requests); + hfpd = &hardfpd[i]; + if (hfpd->base && valid_address(hfpd->base, 36) && get_word(hfpd->base + 32) > 0) + { + for (j = 0; j < MAX_ASYNC_REQUESTS; j++) + { + uaecptr request; + if ((request = hfpd->d_request[j])) + abort_async (hfpd, request, 0, 0); + } + } + if(hfpd->thread_running) + { + uae_sem_wait (&change_sem); + write_comm_pipe_u32(&hfpd->requests, 0, 1); + uae_sem_post (&change_sem); + uae_sem_wait (&hfpd->sync_sem); + uae_sem_destroy (&hfpd->sync_sem); + destroy_comm_pipe (&hfpd->requests); + } + memset (hfpd, 0, sizeof (struct hardfileprivdata)); } - memset (hfpd, 0, sizeof (struct hardfileprivdata)); - } } void hardfile_install (void) { - uae_u32 functable, datatable; - uae_u32 initcode, openfunc, closefunc, expungefunc; - uae_u32 beginiofunc, abortiofunc; - if(change_sem != 0) - uae_sem_destroy(&change_sem); - change_sem = 0; - uae_sem_init (&change_sem, 0, 1); + uae_u32 functable, datatable; + uae_u32 initcode, openfunc, closefunc, expungefunc; + uae_u32 beginiofunc, abortiofunc; + if(change_sem != 0) + uae_sem_destroy(&change_sem); + change_sem = 0; + uae_sem_init (&change_sem, 0, 1); - ROM_hardfile_resname = ds (_T("uaehf.device")); - ROM_hardfile_resid = ds (_T("UAE hardfile.device 0.2")); - nscmd_cmd = here (); - dw (NSCMD_DEVICEQUERY); - dw (CMD_RESET); - dw (CMD_READ); - dw (CMD_WRITE); - dw (CMD_UPDATE); - dw (CMD_CLEAR); - dw (CMD_START); - dw (CMD_STOP); - dw (CMD_FLUSH); - dw (CMD_MOTOR); - dw (CMD_SEEK); - dw (CMD_FORMAT); - dw (CMD_REMOVE); - dw (CMD_CHANGENUM); - dw (CMD_CHANGESTATE); - dw (CMD_PROTSTATUS); - dw (CMD_GETDRIVETYPE); - dw (CMD_GETGEOMETRY); - dw (CMD_ADDCHANGEINT); - dw (CMD_REMCHANGEINT); - dw (HD_SCSICMD); - dw (NSCMD_TD_READ64); - dw (NSCMD_TD_WRITE64); - dw (NSCMD_TD_SEEK64); - dw (NSCMD_TD_FORMAT64); - dw (0); + ROM_hardfile_resname = ds (_T("uaehf.device")); + ROM_hardfile_resid = ds (_T("UAE hardfile.device 0.2")); + nscmd_cmd = here (); + dw (NSCMD_DEVICEQUERY); + dw (CMD_RESET); + dw (CMD_READ); + dw (CMD_WRITE); + dw (CMD_UPDATE); + dw (CMD_CLEAR); + dw (CMD_START); + dw (CMD_STOP); + dw (CMD_FLUSH); + dw (CMD_MOTOR); + dw (CMD_SEEK); + dw (CMD_FORMAT); + dw (CMD_REMOVE); + dw (CMD_CHANGENUM); + dw (CMD_CHANGESTATE); + dw (CMD_PROTSTATUS); + dw (CMD_GETDRIVETYPE); + dw (CMD_GETGEOMETRY); + dw (CMD_ADDCHANGEINT); + dw (CMD_REMCHANGEINT); + dw (HD_SCSICMD); + dw (NSCMD_TD_READ64); + dw (NSCMD_TD_WRITE64); + dw (NSCMD_TD_SEEK64); + dw (NSCMD_TD_FORMAT64); + dw (0); - /* initcode */ - initcode = filesys_initcode; + /* initcode */ + initcode = filesys_initcode; - /* Open */ - openfunc = here (); - calltrap (deftrap (hardfile_open)); dw (RTS); + /* Open */ + openfunc = here (); + calltrap (deftrap (hardfile_open)); + dw (RTS); - /* Close */ - closefunc = here (); - calltrap (deftrap (hardfile_close)); dw (RTS); + /* Close */ + closefunc = here (); + calltrap (deftrap (hardfile_close)); + dw (RTS); - /* Expunge */ - expungefunc = here (); - calltrap (deftrap (hardfile_expunge)); dw (RTS); + /* Expunge */ + expungefunc = here (); + calltrap (deftrap (hardfile_expunge)); + dw (RTS); - /* BeginIO */ - beginiofunc = here (); - calltrap (deftrap (hardfile_beginio)); - dw (RTS); + /* BeginIO */ + beginiofunc = here (); + calltrap (deftrap (hardfile_beginio)); + dw (RTS); - /* AbortIO */ - abortiofunc = here (); - calltrap (deftrap (hardfile_abortio)); dw (RTS); + /* AbortIO */ + abortiofunc = here (); + calltrap (deftrap (hardfile_abortio)); + dw (RTS); - /* FuncTable */ - functable = here (); - dl (openfunc); /* Open */ - dl (closefunc); /* Close */ - dl (expungefunc); /* Expunge */ - dl (EXPANSION_nullfunc); /* Null */ - dl (beginiofunc); /* BeginIO */ - dl (abortiofunc); /* AbortIO */ - dl (0xFFFFFFFFul); /* end of table */ + /* FuncTable */ + functable = here (); + dl (openfunc); /* Open */ + dl (closefunc); /* Close */ + dl (expungefunc); /* Expunge */ + dl (EXPANSION_nullfunc); /* Null */ + dl (beginiofunc); /* BeginIO */ + dl (abortiofunc); /* AbortIO */ + dl (0xFFFFFFFFul); /* end of table */ - /* DataTable */ - datatable = here (); - dw (0xE000); /* INITBYTE */ - dw (0x0008); /* LN_TYPE */ - dw (0x0300); /* NT_DEVICE */ - dw (0xC000); /* INITLONG */ - dw (0x000A); /* LN_NAME */ - dl (ROM_hardfile_resname); - dw (0xE000); /* INITBYTE */ - dw (0x000E); /* LIB_FLAGS */ - dw (0x0600); /* LIBF_SUMUSED | LIBF_CHANGED */ - dw (0xD000); /* INITWORD */ - dw (0x0014); /* LIB_VERSION */ - dw (0x0004); /* 0.4 */ - dw (0xD000); - dw (0x0016); /* LIB_REVISION */ - dw (0x0000); - dw (0xC000); - dw (0x0018); /* LIB_IDSTRING */ - dl (ROM_hardfile_resid); - dw (0x0000); /* end of table */ + /* DataTable */ + datatable = here (); + dw (0xE000); /* INITBYTE */ + dw (0x0008); /* LN_TYPE */ + dw (0x0300); /* NT_DEVICE */ + dw (0xC000); /* INITLONG */ + dw (0x000A); /* LN_NAME */ + dl (ROM_hardfile_resname); + dw (0xE000); /* INITBYTE */ + dw (0x000E); /* LIB_FLAGS */ + dw (0x0600); /* LIBF_SUMUSED | LIBF_CHANGED */ + dw (0xD000); /* INITWORD */ + dw (0x0014); /* LIB_VERSION */ + dw (0x0004); /* 0.4 */ + dw (0xD000); + dw (0x0016); /* LIB_REVISION */ + dw (0x0000); + dw (0xC000); + dw (0x0018); /* LIB_IDSTRING */ + dl (ROM_hardfile_resid); + dw (0x0000); /* end of table */ - ROM_hardfile_init = here (); - dl (0x00000100); /* ??? */ - dl (functable); - dl (datatable); - dl (initcode); + ROM_hardfile_init = here (); + dl (0x00000100); /* ??? */ + dl (functable); + dl (datatable); + dl (initcode); } diff --git a/src/include/audio.h b/src/include/audio.h index 96287f18..4eb3e551 100644 --- a/src/include/audio.h +++ b/src/include/audio.h @@ -1,10 +1,10 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Sound emulation stuff - * - * Copyright 1995, 1996, 1997 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Sound emulation stuff + * + * Copyright 1995, 1996, 1997 Bernd Schmidt + */ #define PERIOD_MAX ULONG_MAX @@ -35,12 +35,14 @@ extern void led_filter_audio (void); extern void set_audio(void); extern int audio_activate(void); -enum { - SND_MONO, SND_STEREO, SND_4CH_CLONEDSTEREO, SND_4CH, SND_6CH_CLONEDSTEREO, SND_6CH, SND_NONE }; +enum +{ + SND_MONO, SND_STEREO, SND_4CH_CLONEDSTEREO, SND_4CH, SND_6CH_CLONEDSTEREO, SND_6CH, SND_NONE +}; STATIC_INLINE int get_audio_ismono (int stereomode) { if (stereomode == 0) - return 1; + return 1; return 0; } diff --git a/src/include/autoconf.h b/src/include/autoconf.h index 28b86689..0c17b14b 100644 --- a/src/include/autoconf.h +++ b/src/include/autoconf.h @@ -1,10 +1,10 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Autoconfig device support - * - * (c) 1996 Ed Hanway - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Autoconfig device support + * + * (c) 1996 Ed Hanway + */ #define RTAREA_DEFAULT 0xf00000 #define RTAREA_BACKUP 0xef0000 diff --git a/src/include/blit.h b/src/include/blit.h index 27f9d540..8bb73df0 100644 --- a/src/include/blit.h +++ b/src/include/blit.h @@ -1,518 +1,519 @@ STATIC_INLINE uae_u32 blit_func(const uae_u32 srca, const uae_u32 srcb, const uae_u32 srcc, const uae_u8 mt) { -switch(mt){ -case 0x0: - return 0; -case 0x1: - return ~(srca | srcb | srcc); -case 0x2: - return (srcc & ~(srca | srcb)); -case 0x3: - return ~(srca | srcb); -case 0x4: - return (srcb & ~(srca | srcc)); -case 0x5: - return ~(srca | srcc); -case 0x6: - return (~srca & (srcb ^ srcc)); -case 0x7: - return ~(srca | (srcb & srcc)); -case 0x8: - return (~srca & srcb & srcc); -case 0x9: - return ~(srca | (srcb ^ srcc)); -case 0xa: - return (~srca & srcc); -case 0xb: - return ~(srca | (srcb & ~srcc)); -case 0xc: - return (~srca & srcb); -case 0xd: - return ~(srca | (~srcb & srcc)); -case 0xe: - return (~srca & (srcb | srcc)); -case 0xf: - return ~srca; -case 0x10: - return (srca & ~(srcb | srcc)); -case 0x11: - return ~(srcb | srcc); -case 0x12: - return (~srcb & (srca ^ srcc)); -case 0x13: - return ~(srcb | (srca & srcc)); -case 0x14: - return (~srcc & (srca ^ srcb)); -case 0x15: - return ~(srcc | (srca & srcb)); -case 0x16: - return (srca ^ ((srca & srcb) | (srcb ^ srcc))); -case 0x17: - return ~(srca ^ ((srca ^ srcb) & (srca ^ srcc))); -case 0x18: - return ((srca ^ srcb) & (srca ^ srcc)); -case 0x19: - return (srcb ^ (~srcc | (srca & srcb))); -case 0x1a: - return (srca ^ (srcc | (srca & srcb))); -case 0x1b: - return (srca ^ (srcc | ~(srca ^ srcb))); -case 0x1c: - return (srca ^ (srcb | (srca & srcc))); -case 0x1d: - return (srca ^ (srcb | ~(srca ^ srcc))); -case 0x1e: - return (srca ^ (srcb | srcc)); -case 0x1f: - return ~(srca & (srcb | srcc)); -case 0x20: - return (srca & ~srcb & srcc); -case 0x21: - return ~(srcb | (srca ^ srcc)); -case 0x22: - return (~srcb & srcc); -case 0x23: - return ~(srcb | (srca & ~srcc)); -case 0x24: - return ((srca ^ srcb) & (srcb ^ srcc)); -case 0x25: - return (srca ^ (~srcc | (srca & srcb))); -case 0x26: - return (srcb ^ (srcc | (srca & srcb))); -case 0x27: - return ~(srca ^ (srcc & (srca ^ srcb))); -case 0x28: - return (srcc & (srca ^ srcb)); -case 0x29: - return ~(srca ^ srcb ^ (srcc | (srca & srcb))); -case 0x2a: - return (srcc & ~(srca & srcb)); -case 0x2b: - return ~(srca ^ ((srca ^ srcb) & (srcb ^ srcc))); -case 0x2c: - return (srcb ^ (srca & (srcb | srcc))); -case 0x2d: - return (srca ^ (srcb | ~srcc)); -case 0x2e: - return (srca ^ (srcb | (srca ^ srcc))); -case 0x2f: - return ~(srca & (srcb | ~srcc)); -case 0x30: - return (srca & ~srcb); -case 0x31: - return ~(srcb | (~srca & srcc)); -case 0x32: - return (~srcb & (srca | srcc)); -case 0x33: - return ~srcb; -case 0x34: - return (srcb ^ (srca | (srcb & srcc))); -case 0x35: - return (srcb ^ (srca | ~(srcb ^ srcc))); -case 0x36: - return (srcb ^ (srca | srcc)); -case 0x37: - return ~(srcb & (srca | srcc)); -case 0x38: - return (srca ^ (srcb & (srca | srcc))); -case 0x39: - return (srcb ^ (srca | ~srcc)); -case 0x3a: - return (srcb ^ (srca | (srcb ^ srcc))); -case 0x3b: - return ~(srcb & (srca | ~srcc)); -case 0x3c: - return (srca ^ srcb); -case 0x3d: - return (srca ^ (srcb | ~(srca | srcc))); -case 0x3e: - return (srca ^ (srcb | (srca ^ (srca | srcc)))); -case 0x3f: - return ~(srca & srcb); -case 0x40: - return (srca & srcb & ~srcc); -case 0x41: - return ~(srcc | (srca ^ srcb)); -case 0x42: - return ((srca ^ srcc) & (srcb ^ srcc)); -case 0x43: - return (srca ^ (~srcb | (srca & srcc))); -case 0x44: - return (srcb & ~srcc); -case 0x45: - return ~(srcc | (srca & ~srcb)); -case 0x46: - return (srcc ^ (srcb | (srca & srcc))); -case 0x47: - return ~(srca ^ (srcb & (srca ^ srcc))); -case 0x48: - return (srcb & (srca ^ srcc)); -case 0x49: - return ~(srca ^ srcc ^ (srcb | (srca & srcc))); -case 0x4a: - return (srcc ^ (srca & (srcb | srcc))); -case 0x4b: - return (srca ^ (~srcb | srcc)); -case 0x4c: - return (srcb & ~(srca & srcc)); -case 0x4d: - return (srca ^ ((srca ^ srcb) | ~(srca ^ srcc))); -case 0x4e: - return (srca ^ (srcc | (srca ^ srcb))); -case 0x4f: - return ~(srca & (~srcb | srcc)); -case 0x50: - return (srca & ~srcc); -case 0x51: - return ~(srcc | (~srca & srcb)); -case 0x52: - return (srcc ^ (srca | (srcb & srcc))); -case 0x53: - return ~(srcb ^ (srca & (srcb ^ srcc))); -case 0x54: - return (~srcc & (srca | srcb)); -case 0x55: - return ~srcc; -case 0x56: - return (srcc ^ (srca | srcb)); -case 0x57: - return ~(srcc & (srca | srcb)); -case 0x58: - return (srca ^ (srcc & (srca | srcb))); -case 0x59: - return (srcc ^ (srca | ~srcb)); -case 0x5a: - return (srca ^ srcc); -case 0x5b: - return (srca ^ (srcc | ~(srca | srcb))); -case 0x5c: - return (srcc ^ (srca | (srcb ^ srcc))); -case 0x5d: - return ~(srcc & (srca | ~srcb)); -case 0x5e: - return (srca ^ (srcc | (srca ^ (srca | srcb)))); -case 0x5f: - return ~(srca & srcc); -case 0x60: - return (srca & (srcb ^ srcc)); -case 0x61: - return ~(srcb ^ srcc ^ (srca | (srcb & srcc))); -case 0x62: - return (srcc ^ (srcb & (srca | srcc))); -case 0x63: - return (srcb ^ (~srca | srcc)); -case 0x64: - return (srcb ^ (srcc & (srca | srcb))); -case 0x65: - return (srcc ^ (~srca | srcb)); -case 0x66: - return (srcb ^ srcc); -case 0x67: - return (srcb ^ (srcc | ~(srca | srcb))); -case 0x68: - return ((srca & srcb) ^ (srcc & (srca | srcb))); -case 0x69: - return ~(srca ^ srcb ^ srcc); -case 0x6a: - return (srcc ^ (srca & srcb)); -case 0x6b: - return ~(srca ^ srcb ^ (srcc & (srca | srcb))); -case 0x6c: - return (srcb ^ (srca & srcc)); -case 0x6d: - return ~(srca ^ srcc ^ (srcb & (srca | srcc))); -case 0x6e: - return ((~srca & srcb) | (srcb ^ srcc)); -case 0x6f: - return (~srca | (srcb ^ srcc)); -case 0x70: - return (srca & ~(srcb & srcc)); -case 0x71: - return ~(srca ^ ((srca ^ srcb) | (srca ^ srcc))); -case 0x72: - return (srcb ^ (srcc | (srca ^ srcb))); -case 0x73: - return ~(srcb & (~srca | srcc)); -case 0x74: - return (srcc ^ (srcb | (srca ^ srcc))); -case 0x75: - return ~(srcc & (~srca | srcb)); -case 0x76: - return (srcb ^ (srcc | (srca ^ (srca & srcb)))); -case 0x77: - return ~(srcb & srcc); -case 0x78: - return (srca ^ (srcb & srcc)); -case 0x79: - return ~(srcb ^ srcc ^ (srca & (srcb | srcc))); -case 0x7a: - return ((srca & ~srcb) | (srca ^ srcc)); -case 0x7b: - return (~srcb | (srca ^ srcc)); -case 0x7c: - return ((srca ^ srcb) | (srca & ~srcc)); -case 0x7d: - return (~srcc | (srca ^ srcb)); -case 0x7e: - return ((srca ^ srcb) | (srca ^ srcc)); -case 0x7f: - return ~(srca & srcb & srcc); -case 0x80: - return (srca & srcb & srcc); -case 0x81: - return ~((srca ^ srcb) | (srca ^ srcc)); -case 0x82: - return (srcc & ~(srca ^ srcb)); -case 0x83: - return (srca ^ (~srcb | (srca & ~srcc))); -case 0x84: - return (srcb & ~(srca ^ srcc)); -case 0x85: - return (srca ^ (~srcc | (srca & ~srcb))); -case 0x86: - return (srcb ^ srcc ^ (srca & (srcb | srcc))); -case 0x87: - return ~(srca ^ (srcb & srcc)); -case 0x88: - return (srcb & srcc); -case 0x89: - return (srcb ^ (~srcc & (~srca | srcb))); -case 0x8a: - return (srcc & (~srca | srcb)); -case 0x8b: - return (srca ^ (~srcb | (srca ^ srcc))); -case 0x8c: - return (srcb & (~srca | srcc)); -case 0x8d: - return (srca ^ (~srcc | (srca ^ srcb))); -case 0x8e: - return (srca ^ ((srca ^ srcb) | (srca ^ srcc))); -case 0x8f: - return (~srca | (srcb & srcc)); -case 0x90: - return (srca & ~(srcb ^ srcc)); -case 0x91: - return (srcb ^ (~srcc | (~srca & srcb))); -case 0x92: - return (srca ^ srcc ^ (srcb & (srca | srcc))); -case 0x93: - return ~(srcb ^ (srca & srcc)); -case 0x94: - return (srca ^ srcb ^ (srcc & (srca | srcb))); -case 0x95: - return ~(srcc ^ (srca & srcb)); -case 0x96: - return (srca ^ srcb ^ srcc); -case 0x97: - return (srca ^ srcb ^ (srcc | ~(srca | srcb))); -case 0x98: - return (srcb ^ (~srcc & (srca | srcb))); -case 0x99: - return ~(srcb ^ srcc); -case 0x9a: - return (srcc ^ (srca & ~srcb)); -case 0x9b: - return ~(srcb ^ (srcc & (srca | srcb))); -case 0x9c: - return (srcb ^ (srca & ~srcc)); -case 0x9d: - return ~(srcc ^ (srcb & (srca | srcc))); -case 0x9e: - return (srcb ^ srcc ^ (srca | (srcb & srcc))); -case 0x9f: - return ~(srca & (srcb ^ srcc)); -case 0xa0: - return (srca & srcc); -case 0xa1: - return (srca ^ (~srcc & (srca | ~srcb))); -case 0xa2: - return (srcc & (srca | ~srcb)); -case 0xa3: - return (srcb ^ (~srca | (srcb ^ srcc))); -case 0xa4: - return (srca ^ (~srcc & (srca | srcb))); -case 0xa5: - return ~(srca ^ srcc); -case 0xa6: - return (srcc ^ (~srca & srcb)); -case 0xa7: - return ~(srca ^ (srcc & (srca | srcb))); -case 0xa8: - return (srcc & (srca | srcb)); -case 0xa9: - return ~(srcc ^ (srca | srcb)); -case 0xaa: - return srcc; -case 0xab: - return (srcc | ~(srca | srcb)); -case 0xac: - return (srcb ^ (srca & (srcb ^ srcc))); -case 0xad: - return ~(srcc ^ (srca | (srcb & srcc))); -case 0xae: - return (srcc | (~srca & srcb)); -case 0xaf: - return (~srca | srcc); -case 0xb0: - return (srca & (~srcb | srcc)); -case 0xb1: - return ~(srca ^ (srcc | (srca ^ srcb))); -case 0xb2: - return (srca ^ ((srca ^ srcc) & (srcb ^ srcc))); -case 0xb3: - return (~srcb | (srca & srcc)); -case 0xb4: - return (srca ^ (srcb & ~srcc)); -case 0xb5: - return ~(srcc ^ (srca & (srcb | srcc))); -case 0xb6: - return (srca ^ srcc ^ (srcb | (srca & srcc))); -case 0xb7: - return ~(srcb & (srca ^ srcc)); -case 0xb8: - return (srca ^ (srcb & (srca ^ srcc))); -case 0xb9: - return ~(srcc ^ (srcb | (srca & srcc))); -case 0xba: - return (srcc | (srca & ~srcb)); -case 0xbb: - return (~srcb | srcc); -case 0xbc: - return ((srca ^ srcb) | (srca & srcc)); -case 0xbd: - return ((srca ^ srcb) | ~(srca ^ srcc)); -case 0xbe: - return (srcc | (srca ^ srcb)); -case 0xbf: - return (srcc | ~(srca & srcb)); -case 0xc0: - return (srca & srcb); -case 0xc1: - return (srca ^ (~srcb & (srca | ~srcc))); -case 0xc2: - return (srca ^ (~srcb & (srca | srcc))); -case 0xc3: - return ~(srca ^ srcb); -case 0xc4: - return (srcb & (srca | ~srcc)); -case 0xc5: - return ~(srcb ^ (srca | (srcb ^ srcc))); -case 0xc6: - return (srcb ^ (~srca & srcc)); -case 0xc7: - return ~(srca ^ (srcb & (srca | srcc))); -case 0xc8: - return (srcb & (srca | srcc)); -case 0xc9: - return ~(srcb ^ (srca | srcc)); -case 0xca: - return (srcc ^ (srca & (srcb ^ srcc))); -case 0xcb: - return ~(srcb ^ (srca | (srcb & srcc))); -case 0xcc: - return srcb; -case 0xcd: - return (srcb | ~(srca | srcc)); -case 0xce: - return (srcb | (~srca & srcc)); -case 0xcf: - return (~srca | srcb); -case 0xd0: - return (srca & (srcb | ~srcc)); -case 0xd1: - return ~(srca ^ (srcb | (srca ^ srcc))); -case 0xd2: - return (srca ^ (~srcb & srcc)); -case 0xd3: - return ~(srcb ^ (srca & (srcb | srcc))); -case 0xd4: - return (srca ^ ((srca ^ srcb) & (srcb ^ srcc))); -case 0xd5: - return (~srcc | (srca & srcb)); -case 0xd6: - return (srca ^ srcb ^ (srcc | (srca & srcb))); -case 0xd7: - return ~(srcc & (srca ^ srcb)); -case 0xd8: - return (srca ^ (srcc & (srca ^ srcb))); -case 0xd9: - return ~(srcb ^ (srcc | (srca & srcb))); -case 0xda: - return ((srca & srcb) | (srca ^ srcc)); -case 0xdb: - return ~((srca ^ srcb) & (srcb ^ srcc)); -case 0xdc: - return (srcb | (srca & ~srcc)); -case 0xdd: - return (srcb | ~srcc); -case 0xde: - return (srcb | (srca ^ srcc)); -case 0xdf: - return (srcb | ~(srca & srcc)); -case 0xe0: - return (srca & (srcb | srcc)); -case 0xe1: - return ~(srca ^ (srcb | srcc)); -case 0xe2: - return (srcc ^ (srcb & (srca ^ srcc))); -case 0xe3: - return ~(srca ^ (srcb | (srca & srcc))); -case 0xe4: - return (srcb ^ (srcc & (srca ^ srcb))); -case 0xe5: - return ~(srca ^ (srcc | (srca & srcb))); -case 0xe6: - return ((srca & srcb) | (srcb ^ srcc)); -case 0xe7: - return ~((srca ^ srcb) & (srca ^ srcc)); -case 0xe8: - return (srca ^ ((srca ^ srcb) & (srca ^ srcc))); -case 0xe9: - return (srca ^ srcb ^ (~srcc | (srca & srcb))); -case 0xea: - return (srcc | (srca & srcb)); -case 0xeb: - return (srcc | ~(srca ^ srcb)); -case 0xec: - return (srcb | (srca & srcc)); -case 0xed: - return (srcb | ~(srca ^ srcc)); -case 0xee: - return (srcb | srcc); -case 0xef: - return (~srca | srcb | srcc); -case 0xf0: - return srca; -case 0xf1: - return (srca | ~(srcb | srcc)); -case 0xf2: - return (srca | (~srcb & srcc)); -case 0xf3: - return (srca | ~srcb); -case 0xf4: - return (srca | (srcb & ~srcc)); -case 0xf5: - return (srca | ~srcc); -case 0xf6: - return (srca | (srcb ^ srcc)); -case 0xf7: - return (srca | ~(srcb & srcc)); -case 0xf8: - return (srca | (srcb & srcc)); -case 0xf9: - return (srca | ~(srcb ^ srcc)); -case 0xfa: - return (srca | srcc); -case 0xfb: - return (srca | ~srcb | srcc); -case 0xfc: - return (srca | srcb); -case 0xfd: - return (srca | srcb | ~srcc); -case 0xfe: - return (srca | srcb | srcc); -case 0xff: - return 0xFFFFFFFF; -} -return 0; + switch(mt) + { + case 0x0: + return 0; + case 0x1: + return ~(srca | srcb | srcc); + case 0x2: + return (srcc & ~(srca | srcb)); + case 0x3: + return ~(srca | srcb); + case 0x4: + return (srcb & ~(srca | srcc)); + case 0x5: + return ~(srca | srcc); + case 0x6: + return (~srca & (srcb ^ srcc)); + case 0x7: + return ~(srca | (srcb & srcc)); + case 0x8: + return (~srca & srcb & srcc); + case 0x9: + return ~(srca | (srcb ^ srcc)); + case 0xa: + return (~srca & srcc); + case 0xb: + return ~(srca | (srcb & ~srcc)); + case 0xc: + return (~srca & srcb); + case 0xd: + return ~(srca | (~srcb & srcc)); + case 0xe: + return (~srca & (srcb | srcc)); + case 0xf: + return ~srca; + case 0x10: + return (srca & ~(srcb | srcc)); + case 0x11: + return ~(srcb | srcc); + case 0x12: + return (~srcb & (srca ^ srcc)); + case 0x13: + return ~(srcb | (srca & srcc)); + case 0x14: + return (~srcc & (srca ^ srcb)); + case 0x15: + return ~(srcc | (srca & srcb)); + case 0x16: + return (srca ^ ((srca & srcb) | (srcb ^ srcc))); + case 0x17: + return ~(srca ^ ((srca ^ srcb) & (srca ^ srcc))); + case 0x18: + return ((srca ^ srcb) & (srca ^ srcc)); + case 0x19: + return (srcb ^ (~srcc | (srca & srcb))); + case 0x1a: + return (srca ^ (srcc | (srca & srcb))); + case 0x1b: + return (srca ^ (srcc | ~(srca ^ srcb))); + case 0x1c: + return (srca ^ (srcb | (srca & srcc))); + case 0x1d: + return (srca ^ (srcb | ~(srca ^ srcc))); + case 0x1e: + return (srca ^ (srcb | srcc)); + case 0x1f: + return ~(srca & (srcb | srcc)); + case 0x20: + return (srca & ~srcb & srcc); + case 0x21: + return ~(srcb | (srca ^ srcc)); + case 0x22: + return (~srcb & srcc); + case 0x23: + return ~(srcb | (srca & ~srcc)); + case 0x24: + return ((srca ^ srcb) & (srcb ^ srcc)); + case 0x25: + return (srca ^ (~srcc | (srca & srcb))); + case 0x26: + return (srcb ^ (srcc | (srca & srcb))); + case 0x27: + return ~(srca ^ (srcc & (srca ^ srcb))); + case 0x28: + return (srcc & (srca ^ srcb)); + case 0x29: + return ~(srca ^ srcb ^ (srcc | (srca & srcb))); + case 0x2a: + return (srcc & ~(srca & srcb)); + case 0x2b: + return ~(srca ^ ((srca ^ srcb) & (srcb ^ srcc))); + case 0x2c: + return (srcb ^ (srca & (srcb | srcc))); + case 0x2d: + return (srca ^ (srcb | ~srcc)); + case 0x2e: + return (srca ^ (srcb | (srca ^ srcc))); + case 0x2f: + return ~(srca & (srcb | ~srcc)); + case 0x30: + return (srca & ~srcb); + case 0x31: + return ~(srcb | (~srca & srcc)); + case 0x32: + return (~srcb & (srca | srcc)); + case 0x33: + return ~srcb; + case 0x34: + return (srcb ^ (srca | (srcb & srcc))); + case 0x35: + return (srcb ^ (srca | ~(srcb ^ srcc))); + case 0x36: + return (srcb ^ (srca | srcc)); + case 0x37: + return ~(srcb & (srca | srcc)); + case 0x38: + return (srca ^ (srcb & (srca | srcc))); + case 0x39: + return (srcb ^ (srca | ~srcc)); + case 0x3a: + return (srcb ^ (srca | (srcb ^ srcc))); + case 0x3b: + return ~(srcb & (srca | ~srcc)); + case 0x3c: + return (srca ^ srcb); + case 0x3d: + return (srca ^ (srcb | ~(srca | srcc))); + case 0x3e: + return (srca ^ (srcb | (srca ^ (srca | srcc)))); + case 0x3f: + return ~(srca & srcb); + case 0x40: + return (srca & srcb & ~srcc); + case 0x41: + return ~(srcc | (srca ^ srcb)); + case 0x42: + return ((srca ^ srcc) & (srcb ^ srcc)); + case 0x43: + return (srca ^ (~srcb | (srca & srcc))); + case 0x44: + return (srcb & ~srcc); + case 0x45: + return ~(srcc | (srca & ~srcb)); + case 0x46: + return (srcc ^ (srcb | (srca & srcc))); + case 0x47: + return ~(srca ^ (srcb & (srca ^ srcc))); + case 0x48: + return (srcb & (srca ^ srcc)); + case 0x49: + return ~(srca ^ srcc ^ (srcb | (srca & srcc))); + case 0x4a: + return (srcc ^ (srca & (srcb | srcc))); + case 0x4b: + return (srca ^ (~srcb | srcc)); + case 0x4c: + return (srcb & ~(srca & srcc)); + case 0x4d: + return (srca ^ ((srca ^ srcb) | ~(srca ^ srcc))); + case 0x4e: + return (srca ^ (srcc | (srca ^ srcb))); + case 0x4f: + return ~(srca & (~srcb | srcc)); + case 0x50: + return (srca & ~srcc); + case 0x51: + return ~(srcc | (~srca & srcb)); + case 0x52: + return (srcc ^ (srca | (srcb & srcc))); + case 0x53: + return ~(srcb ^ (srca & (srcb ^ srcc))); + case 0x54: + return (~srcc & (srca | srcb)); + case 0x55: + return ~srcc; + case 0x56: + return (srcc ^ (srca | srcb)); + case 0x57: + return ~(srcc & (srca | srcb)); + case 0x58: + return (srca ^ (srcc & (srca | srcb))); + case 0x59: + return (srcc ^ (srca | ~srcb)); + case 0x5a: + return (srca ^ srcc); + case 0x5b: + return (srca ^ (srcc | ~(srca | srcb))); + case 0x5c: + return (srcc ^ (srca | (srcb ^ srcc))); + case 0x5d: + return ~(srcc & (srca | ~srcb)); + case 0x5e: + return (srca ^ (srcc | (srca ^ (srca | srcb)))); + case 0x5f: + return ~(srca & srcc); + case 0x60: + return (srca & (srcb ^ srcc)); + case 0x61: + return ~(srcb ^ srcc ^ (srca | (srcb & srcc))); + case 0x62: + return (srcc ^ (srcb & (srca | srcc))); + case 0x63: + return (srcb ^ (~srca | srcc)); + case 0x64: + return (srcb ^ (srcc & (srca | srcb))); + case 0x65: + return (srcc ^ (~srca | srcb)); + case 0x66: + return (srcb ^ srcc); + case 0x67: + return (srcb ^ (srcc | ~(srca | srcb))); + case 0x68: + return ((srca & srcb) ^ (srcc & (srca | srcb))); + case 0x69: + return ~(srca ^ srcb ^ srcc); + case 0x6a: + return (srcc ^ (srca & srcb)); + case 0x6b: + return ~(srca ^ srcb ^ (srcc & (srca | srcb))); + case 0x6c: + return (srcb ^ (srca & srcc)); + case 0x6d: + return ~(srca ^ srcc ^ (srcb & (srca | srcc))); + case 0x6e: + return ((~srca & srcb) | (srcb ^ srcc)); + case 0x6f: + return (~srca | (srcb ^ srcc)); + case 0x70: + return (srca & ~(srcb & srcc)); + case 0x71: + return ~(srca ^ ((srca ^ srcb) | (srca ^ srcc))); + case 0x72: + return (srcb ^ (srcc | (srca ^ srcb))); + case 0x73: + return ~(srcb & (~srca | srcc)); + case 0x74: + return (srcc ^ (srcb | (srca ^ srcc))); + case 0x75: + return ~(srcc & (~srca | srcb)); + case 0x76: + return (srcb ^ (srcc | (srca ^ (srca & srcb)))); + case 0x77: + return ~(srcb & srcc); + case 0x78: + return (srca ^ (srcb & srcc)); + case 0x79: + return ~(srcb ^ srcc ^ (srca & (srcb | srcc))); + case 0x7a: + return ((srca & ~srcb) | (srca ^ srcc)); + case 0x7b: + return (~srcb | (srca ^ srcc)); + case 0x7c: + return ((srca ^ srcb) | (srca & ~srcc)); + case 0x7d: + return (~srcc | (srca ^ srcb)); + case 0x7e: + return ((srca ^ srcb) | (srca ^ srcc)); + case 0x7f: + return ~(srca & srcb & srcc); + case 0x80: + return (srca & srcb & srcc); + case 0x81: + return ~((srca ^ srcb) | (srca ^ srcc)); + case 0x82: + return (srcc & ~(srca ^ srcb)); + case 0x83: + return (srca ^ (~srcb | (srca & ~srcc))); + case 0x84: + return (srcb & ~(srca ^ srcc)); + case 0x85: + return (srca ^ (~srcc | (srca & ~srcb))); + case 0x86: + return (srcb ^ srcc ^ (srca & (srcb | srcc))); + case 0x87: + return ~(srca ^ (srcb & srcc)); + case 0x88: + return (srcb & srcc); + case 0x89: + return (srcb ^ (~srcc & (~srca | srcb))); + case 0x8a: + return (srcc & (~srca | srcb)); + case 0x8b: + return (srca ^ (~srcb | (srca ^ srcc))); + case 0x8c: + return (srcb & (~srca | srcc)); + case 0x8d: + return (srca ^ (~srcc | (srca ^ srcb))); + case 0x8e: + return (srca ^ ((srca ^ srcb) | (srca ^ srcc))); + case 0x8f: + return (~srca | (srcb & srcc)); + case 0x90: + return (srca & ~(srcb ^ srcc)); + case 0x91: + return (srcb ^ (~srcc | (~srca & srcb))); + case 0x92: + return (srca ^ srcc ^ (srcb & (srca | srcc))); + case 0x93: + return ~(srcb ^ (srca & srcc)); + case 0x94: + return (srca ^ srcb ^ (srcc & (srca | srcb))); + case 0x95: + return ~(srcc ^ (srca & srcb)); + case 0x96: + return (srca ^ srcb ^ srcc); + case 0x97: + return (srca ^ srcb ^ (srcc | ~(srca | srcb))); + case 0x98: + return (srcb ^ (~srcc & (srca | srcb))); + case 0x99: + return ~(srcb ^ srcc); + case 0x9a: + return (srcc ^ (srca & ~srcb)); + case 0x9b: + return ~(srcb ^ (srcc & (srca | srcb))); + case 0x9c: + return (srcb ^ (srca & ~srcc)); + case 0x9d: + return ~(srcc ^ (srcb & (srca | srcc))); + case 0x9e: + return (srcb ^ srcc ^ (srca | (srcb & srcc))); + case 0x9f: + return ~(srca & (srcb ^ srcc)); + case 0xa0: + return (srca & srcc); + case 0xa1: + return (srca ^ (~srcc & (srca | ~srcb))); + case 0xa2: + return (srcc & (srca | ~srcb)); + case 0xa3: + return (srcb ^ (~srca | (srcb ^ srcc))); + case 0xa4: + return (srca ^ (~srcc & (srca | srcb))); + case 0xa5: + return ~(srca ^ srcc); + case 0xa6: + return (srcc ^ (~srca & srcb)); + case 0xa7: + return ~(srca ^ (srcc & (srca | srcb))); + case 0xa8: + return (srcc & (srca | srcb)); + case 0xa9: + return ~(srcc ^ (srca | srcb)); + case 0xaa: + return srcc; + case 0xab: + return (srcc | ~(srca | srcb)); + case 0xac: + return (srcb ^ (srca & (srcb ^ srcc))); + case 0xad: + return ~(srcc ^ (srca | (srcb & srcc))); + case 0xae: + return (srcc | (~srca & srcb)); + case 0xaf: + return (~srca | srcc); + case 0xb0: + return (srca & (~srcb | srcc)); + case 0xb1: + return ~(srca ^ (srcc | (srca ^ srcb))); + case 0xb2: + return (srca ^ ((srca ^ srcc) & (srcb ^ srcc))); + case 0xb3: + return (~srcb | (srca & srcc)); + case 0xb4: + return (srca ^ (srcb & ~srcc)); + case 0xb5: + return ~(srcc ^ (srca & (srcb | srcc))); + case 0xb6: + return (srca ^ srcc ^ (srcb | (srca & srcc))); + case 0xb7: + return ~(srcb & (srca ^ srcc)); + case 0xb8: + return (srca ^ (srcb & (srca ^ srcc))); + case 0xb9: + return ~(srcc ^ (srcb | (srca & srcc))); + case 0xba: + return (srcc | (srca & ~srcb)); + case 0xbb: + return (~srcb | srcc); + case 0xbc: + return ((srca ^ srcb) | (srca & srcc)); + case 0xbd: + return ((srca ^ srcb) | ~(srca ^ srcc)); + case 0xbe: + return (srcc | (srca ^ srcb)); + case 0xbf: + return (srcc | ~(srca & srcb)); + case 0xc0: + return (srca & srcb); + case 0xc1: + return (srca ^ (~srcb & (srca | ~srcc))); + case 0xc2: + return (srca ^ (~srcb & (srca | srcc))); + case 0xc3: + return ~(srca ^ srcb); + case 0xc4: + return (srcb & (srca | ~srcc)); + case 0xc5: + return ~(srcb ^ (srca | (srcb ^ srcc))); + case 0xc6: + return (srcb ^ (~srca & srcc)); + case 0xc7: + return ~(srca ^ (srcb & (srca | srcc))); + case 0xc8: + return (srcb & (srca | srcc)); + case 0xc9: + return ~(srcb ^ (srca | srcc)); + case 0xca: + return (srcc ^ (srca & (srcb ^ srcc))); + case 0xcb: + return ~(srcb ^ (srca | (srcb & srcc))); + case 0xcc: + return srcb; + case 0xcd: + return (srcb | ~(srca | srcc)); + case 0xce: + return (srcb | (~srca & srcc)); + case 0xcf: + return (~srca | srcb); + case 0xd0: + return (srca & (srcb | ~srcc)); + case 0xd1: + return ~(srca ^ (srcb | (srca ^ srcc))); + case 0xd2: + return (srca ^ (~srcb & srcc)); + case 0xd3: + return ~(srcb ^ (srca & (srcb | srcc))); + case 0xd4: + return (srca ^ ((srca ^ srcb) & (srcb ^ srcc))); + case 0xd5: + return (~srcc | (srca & srcb)); + case 0xd6: + return (srca ^ srcb ^ (srcc | (srca & srcb))); + case 0xd7: + return ~(srcc & (srca ^ srcb)); + case 0xd8: + return (srca ^ (srcc & (srca ^ srcb))); + case 0xd9: + return ~(srcb ^ (srcc | (srca & srcb))); + case 0xda: + return ((srca & srcb) | (srca ^ srcc)); + case 0xdb: + return ~((srca ^ srcb) & (srcb ^ srcc)); + case 0xdc: + return (srcb | (srca & ~srcc)); + case 0xdd: + return (srcb | ~srcc); + case 0xde: + return (srcb | (srca ^ srcc)); + case 0xdf: + return (srcb | ~(srca & srcc)); + case 0xe0: + return (srca & (srcb | srcc)); + case 0xe1: + return ~(srca ^ (srcb | srcc)); + case 0xe2: + return (srcc ^ (srcb & (srca ^ srcc))); + case 0xe3: + return ~(srca ^ (srcb | (srca & srcc))); + case 0xe4: + return (srcb ^ (srcc & (srca ^ srcb))); + case 0xe5: + return ~(srca ^ (srcc | (srca & srcb))); + case 0xe6: + return ((srca & srcb) | (srcb ^ srcc)); + case 0xe7: + return ~((srca ^ srcb) & (srca ^ srcc)); + case 0xe8: + return (srca ^ ((srca ^ srcb) & (srca ^ srcc))); + case 0xe9: + return (srca ^ srcb ^ (~srcc | (srca & srcb))); + case 0xea: + return (srcc | (srca & srcb)); + case 0xeb: + return (srcc | ~(srca ^ srcb)); + case 0xec: + return (srcb | (srca & srcc)); + case 0xed: + return (srcb | ~(srca ^ srcc)); + case 0xee: + return (srcb | srcc); + case 0xef: + return (~srca | srcb | srcc); + case 0xf0: + return srca; + case 0xf1: + return (srca | ~(srcb | srcc)); + case 0xf2: + return (srca | (~srcb & srcc)); + case 0xf3: + return (srca | ~srcb); + case 0xf4: + return (srca | (srcb & ~srcc)); + case 0xf5: + return (srca | ~srcc); + case 0xf6: + return (srca | (srcb ^ srcc)); + case 0xf7: + return (srca | ~(srcb & srcc)); + case 0xf8: + return (srca | (srcb & srcc)); + case 0xf9: + return (srca | ~(srcb ^ srcc)); + case 0xfa: + return (srca | srcc); + case 0xfb: + return (srca | ~srcb | srcc); + case 0xfc: + return (srca | srcb); + case 0xfd: + return (srca | srcb | ~srcc); + case 0xfe: + return (srca | srcb | srcc); + case 0xff: + return 0xFFFFFFFF; + } + return 0; } diff --git a/src/include/blitter.h b/src/include/blitter.h index fc6951b1..d0735b0b 100644 --- a/src/include/blitter.h +++ b/src/include/blitter.h @@ -1,12 +1,13 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Blitter emulation - * - * (c) 1995 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Blitter emulation + * + * (c) 1995 Bernd Schmidt + */ -struct bltinfo { +struct bltinfo +{ int blitzero; int blitashift,blitbshift,blitdownashift,blitdownbshift; uae_u16 bltadat, bltbdat, bltcdat,bltddat; @@ -15,7 +16,8 @@ struct bltinfo { int bltamod,bltbmod,bltcmod,bltdmod; }; -extern enum blitter_states { +extern enum blitter_states +{ BLT_done, BLT_init, BLT_read, BLT_work, BLT_write, BLT_next } bltstate; @@ -36,13 +38,13 @@ extern void blitter_slowdown (int, int, int, int); STATIC_INLINE void maybe_blit (int hack) { - if (bltstate == BLT_done) - return; + if (bltstate == BLT_done) + return; - if (savestate_state) - return; + if (savestate_state) + return; - maybe_blit2(hack); + maybe_blit2(hack); } extern void blitter_check_start (void); diff --git a/src/include/blkdev.h b/src/include/blkdev.h index 293718ff..ecc6c96c 100644 --- a/src/include/blkdev.h +++ b/src/include/blkdev.h @@ -31,24 +31,24 @@ #define MAX_TOC_ENTRIES 103 struct cd_toc { - uae_u8 adr, control; - uae_u8 tno; - uae_u8 point; - uae_u8 track; - int address; // LSN - int paddress; // LSN - uae_u8 zero; - uae_u8 crc[2]; + uae_u8 adr, control; + uae_u8 tno; + uae_u8 point; + uae_u8 track; + int address; // LSN + int paddress; // LSN + uae_u8 zero; + uae_u8 crc[2]; }; struct cd_toc_head { - int first_track, first_track_offset; - int last_track, last_track_offset; - int firstaddress; // LSN - int lastaddress; // LSN - int tracks; - int points; - struct cd_toc toc[MAX_TOC_ENTRIES]; + int first_track, first_track_offset; + int last_track, last_track_offset; + int firstaddress; // LSN + int lastaddress; // LSN + int tracks; + int points; + struct cd_toc toc[MAX_TOC_ENTRIES]; }; #define SUB_ENTRY_SIZE 12 @@ -62,8 +62,9 @@ struct cd_toc_head #define AUDIO_STATUS_PLAY_ERROR 0x14 #define AUDIO_STATUS_NO_STATUS 0x15 -struct device_info { - bool open; +struct device_info +{ + bool open; int type; int media_inserted; int removable; @@ -75,12 +76,12 @@ struct device_info { int bus, target, lun; int unitnum; TCHAR label[MAX_DPATH]; - TCHAR mediapath[MAX_DPATH]; - TCHAR vendorid[10]; - TCHAR productid[18]; - TCHAR revision[6]; - TCHAR *backend; - struct cd_toc_head toc; + TCHAR mediapath[MAX_DPATH]; + TCHAR vendorid[10]; + TCHAR productid[18]; + TCHAR revision[6]; + TCHAR *backend; + struct cd_toc_head toc; }; struct amigascsi @@ -124,31 +125,32 @@ typedef int (*isatapi_func)(int); typedef int (*ismedia_func)(int, int); typedef int (*scsiemu_func)(int, uae_u8*); -struct device_functions { - const TCHAR *name; - open_bus_func openbus; - close_bus_func closebus; - open_device_func opendev; - close_device_func closedev; - info_device_func info; - execscsicmd_out_func exec_out; - execscsicmd_in_func exec_in; - execscsicmd_direct_func exec_direct; +struct device_functions +{ + const TCHAR *name; + open_bus_func openbus; + close_bus_func closebus; + open_device_func opendev; + close_device_func closedev; + info_device_func info; + execscsicmd_out_func exec_out; + execscsicmd_in_func exec_in; + execscsicmd_direct_func exec_direct; - pause_func pause; - stop_func stop; - play_func play; - volume_func volume; - qcode_func qcode; - toc_func toc; - read_func read; - rawread_func rawread; - write_func write; + pause_func pause; + stop_func stop; + play_func play; + volume_func volume; + qcode_func qcode; + toc_func toc; + read_func read; + rawread_func rawread; + write_func write; - isatapi_func isatapi; - ismedia_func ismedia; + isatapi_func isatapi; + ismedia_func ismedia; - scsiemu_func scsiemu; + scsiemu_func scsiemu; }; diff --git a/src/include/bsdsocket.h b/src/include/bsdsocket.h index 9b7f72f2..7ef81218 100644 --- a/src/include/bsdsocket.h +++ b/src/include/bsdsocket.h @@ -1,17 +1,17 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * bsdsocket.library emulation - * - * Copyright 1997,98 Mathias Ortmann - * - */ +/* + * UAE - The Un*x Amiga Emulator + * + * bsdsocket.library emulation + * + * Copyright 1997,98 Mathias Ortmann + * + */ #define BSD_TRACING_ENABLED 0 extern int log_bsd; -#define ISBSDTRACE (log_bsd || BSD_TRACING_ENABLED) +#define ISBSDTRACE (log_bsd || BSD_TRACING_ENABLED) #define BSDTRACE(x) do { if (ISBSDTRACE) { write_log x; } } while(0) extern int init_socket_layer (void); @@ -33,12 +33,13 @@ extern void deinit_socket_layer (void); #endif /* allocated and maintained on a per-task basis */ -struct socketbase { +struct socketbase +{ struct socketbase *next; struct socketbase *nextsig; /* queue for tasks to signal */ uaecptr sysbase; - int dosignal; /* signal flag */ + int dosignal; /* signal flag */ uae_u32 ownertask; /* task that opened the library */ int signal; /* signal allocated for that task */ int sb_errno, sb_herrno; /* errno and herrno variables */ @@ -59,11 +60,11 @@ struct socketbase { uae_u32 eintrsigs; /* EINTR sigmask */ int eintr; /* interrupted by eintrsigs? */ int eventindex; /* current socket looked at by GetSocketEvents() to prevent starvation */ - uae_u32 logstat; - uae_u32 logptr; - uae_u32 logmask; - uae_u32 logfacility; - uaecptr fdcallback; + uae_u32 logstat; + uae_u32 logptr; + uae_u32 logmask; + uae_u32 logfacility; + uaecptr fdcallback; unsigned int *mtable; /* window messages allocated for asynchronous event notification */ /* host-specific fields below */ @@ -96,7 +97,8 @@ struct socketbase { #define LIBRARY_SIZEOF 36 -struct UAEBSDBase { +struct UAEBSDBase +{ uae_u8 dummy[LIBRARY_SIZEOF]; struct socketbase *sb; uae_u8 scratchbuf[SCRATCHBUFSIZE]; @@ -149,7 +151,7 @@ extern void locksigqueue (void); extern void unlocksigqueue (void); extern BOOL checksd(TrapContext*, SB, int sd); -extern void setsd(TrapContext*, SB, int , SOCKET_TYPE); +extern void setsd(TrapContext*, SB, int, SOCKET_TYPE); extern int getsd (TrapContext*, SB, SOCKET_TYPE); extern SOCKET_TYPE getsock (SB, int); extern void releasesock (TrapContext*, SB, int); diff --git a/src/include/cia.h b/src/include/cia.h index 7982438b..20ffda21 100644 --- a/src/include/cia.h +++ b/src/include/cia.h @@ -1,10 +1,10 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * CIA chip support - * - * (c) 1995 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * CIA chip support + * + * (c) 1995 Bernd Schmidt + */ extern void CIA_reset (void); extern void CIA_vsync_prehandler (void); diff --git a/src/include/commpipe.h b/src/include/commpipe.h index a1ef78d4..17602147 100644 --- a/src/include/commpipe.h +++ b/src/include/commpipe.h @@ -1,12 +1,13 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Communication between threads - * - * Copyright 1997, 2001 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Communication between threads + * + * Copyright 1997, 2001 Bernd Schmidt + */ -typedef union { +typedef union +{ int i; uae_u32 _u32; void *pv; @@ -18,7 +19,8 @@ typedef union { * We queue up to chunks pieces of data before signalling the other thread to * avoid overhead. */ -typedef struct { +typedef struct +{ uae_sem_t lock; uae_sem_t reader_wait; uae_sem_t writer_wait; @@ -53,19 +55,19 @@ STATIC_INLINE void destroy_comm_pipe (smp_comm_pipe *p) p->writer_wait = 0; if(p->size > 0 && p->data != NULL) { - free(p->data); - p->size = 0; - p->data = NULL; + free(p->data); + p->size = 0; + p->data = NULL; } } STATIC_INLINE void maybe_wake_reader (smp_comm_pipe *p, int no_buffer) { if (p->reader_waiting - && (no_buffer || ((p->wrp - p->rdp + p->size) % p->size) >= p->chunks)) + && (no_buffer || ((p->wrp - p->rdp + p->size) % p->size) >= p->chunks)) { - p->reader_waiting = 0; - uae_sem_post (&p->reader_wait); + p->reader_waiting = 0; + uae_sem_post (&p->reader_wait); } } @@ -73,24 +75,26 @@ STATIC_INLINE void write_comm_pipe_pt (smp_comm_pipe *p, uae_pt data, int no_buf { int nxwrp = (p->wrp + 1) % p->size; - if (p->reader_waiting) { - /* No need to do all the locking */ - p->data[p->wrp] = data; - p->wrp = nxwrp; - maybe_wake_reader (p, no_buffer); - return; + if (p->reader_waiting) + { + /* No need to do all the locking */ + p->data[p->wrp] = data; + p->wrp = nxwrp; + maybe_wake_reader (p, no_buffer); + return; } - + uae_sem_wait (&p->lock); - if (nxwrp == p->rdp) { - /* Pipe full! */ - p->writer_waiting = 1; - uae_sem_post (&p->lock); - /* Note that the reader could get in between here and do a - * sem_post on writer_wait before we wait on it. That's harmless. - * There's a similar case in read_comm_pipe_int_blocking. */ - uae_sem_wait (&p->writer_wait); - uae_sem_wait (&p->lock); + if (nxwrp == p->rdp) + { + /* Pipe full! */ + p->writer_waiting = 1; + uae_sem_post (&p->lock); + /* Note that the reader could get in between here and do a + * sem_post on writer_wait before we wait on it. That's harmless. + * There's a similar case in read_comm_pipe_int_blocking. */ + uae_sem_wait (&p->writer_wait); + uae_sem_wait (&p->lock); } p->data[p->wrp] = data; p->wrp = nxwrp; @@ -103,19 +107,21 @@ STATIC_INLINE uae_pt read_comm_pipe_pt_blocking (smp_comm_pipe *p) uae_pt data; uae_sem_wait (&p->lock); - if (p->rdp == p->wrp) { - p->reader_waiting = 1; - uae_sem_post (&p->lock); - uae_sem_wait (&p->reader_wait); - uae_sem_wait (&p->lock); + if (p->rdp == p->wrp) + { + p->reader_waiting = 1; + uae_sem_post (&p->lock); + uae_sem_wait (&p->reader_wait); + uae_sem_wait (&p->lock); } data = p->data[p->rdp]; p->rdp = (p->rdp + 1) % p->size; /* We ignore chunks here. If this is a problem, make the size bigger in the init call. */ - if (p->writer_waiting) { - p->writer_waiting = 0; - uae_sem_post (&p->writer_wait); + if (p->writer_waiting) + { + p->writer_waiting = 0; + uae_sem_post (&p->writer_wait); } uae_sem_post (&p->lock); return data; diff --git a/src/include/cpu_prefetch.h b/src/include/cpu_prefetch.h index 78d90c05..e25d61a2 100644 --- a/src/include/cpu_prefetch.h +++ b/src/include/cpu_prefetch.h @@ -1,22 +1,22 @@ STATIC_INLINE uae_u32 get_word_prefetch (struct regstruct ®s, int o) { - uae_u32 v = regs.irc; - regs.irc = get_wordi (m68k_getpc () + o); - return v; + uae_u32 v = regs.irc; + regs.irc = get_wordi (m68k_getpc () + o); + return v; } STATIC_INLINE uae_u32 get_long_prefetch (struct regstruct ®s, int o) { - uae_u32 v = get_word_prefetch (regs, o) << 16; - v |= get_word_prefetch (regs, o + 2); - return v; + uae_u32 v = get_word_prefetch (regs, o) << 16; + v |= get_word_prefetch (regs, o + 2); + return v; } STATIC_INLINE uae_u32 get_disp_ea_000 (struct regstruct ®s, uae_u32 base, uae_u32 dp) { - int reg = (dp >> 12) & 15; - uae_s32 regd = regs.regs[reg]; - if ((dp & 0x800) == 0) - regd = (uae_s32)(uae_s16)regd; - return base + (uae_s8)dp + regd; + int reg = (dp >> 12) & 15; + uae_s32 regd = regs.regs[reg]; + if ((dp & 0x800) == 0) + regd = (uae_s32)(uae_s16)regd; + return base + (uae_s8)dp + regd; } diff --git a/src/include/custom.h b/src/include/custom.h index 67db9d9f..0a97caa2 100644 --- a/src/include/custom.h +++ b/src/include/custom.h @@ -1,10 +1,10 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * custom chip support - * - * (c) 1995 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * custom chip support + * + * (c) 1995 Bernd Schmidt + */ #include "md-pandora/rpt.h" @@ -47,7 +47,7 @@ extern int vpos; STATIC_INLINE int dmaen (unsigned int dmamask) { - return (dmamask & dmacon) && (dmacon & 0x200); + return (dmamask & dmacon) && (dmacon & 0x200); } #define SPCFLAG_STOP 2 @@ -73,12 +73,12 @@ extern void INTREQ_0 (uae_u16); extern void INTREQ_f (uae_u16); STATIC_INLINE void send_interrupt (int num) { - INTREQ_0 (0x8000 | (1 << num)); + INTREQ_0 (0x8000 | (1 << num)); } STATIC_INLINE uae_u16 INTREQR (void) { - return intreq; + return intreq; } /* maximums for statically allocated tables */ @@ -134,24 +134,24 @@ extern unsigned int xredcolors[256], xgreencolors[256], xbluecolors[256]; /* get resolution from bplcon0 */ STATIC_INLINE int GET_RES_DENISE (uae_u16 con0) { - return ((con0) & 0x8000) ? RES_HIRES : RES_LORES; + return ((con0) & 0x8000) ? RES_HIRES : RES_LORES; } STATIC_INLINE int GET_RES_AGNUS (uae_u16 con0) { - if (!(currprefs.chipset_mask & CSMASK_ECS_AGNUS)) - con0 &= ~0x40; // no SUPERHIRES - return ((con0) & 0x8000) ? RES_HIRES : ((con0) & 0x40) ? RES_SUPERHIRES : RES_LORES; + if (!(currprefs.chipset_mask & CSMASK_ECS_AGNUS)) + con0 &= ~0x40; // no SUPERHIRES + return ((con0) & 0x8000) ? RES_HIRES : ((con0) & 0x40) ? RES_SUPERHIRES : RES_LORES; } /* get sprite width from FMODE */ #define GET_SPRITEWIDTH(FMODE) ((((FMODE) >> 2) & 3) == 3 ? 64 : (((FMODE) >> 2) & 3) == 0 ? 16 : 32) /* Compute the number of bitplanes from a value written to BPLCON0 */ STATIC_INLINE int GET_PLANES(uae_u16 bplcon0) { - if ((bplcon0 & 0x0010) && (bplcon0 & 0x7000)) - return 0; // >8 planes = 0 planes - if (bplcon0 & 0x0010) - return 8; // AGA 8-planes bit - return (bplcon0 >> 12) & 7; // normal planes bits + if ((bplcon0 & 0x0010) && (bplcon0 & 0x7000)) + return 0; // >8 planes = 0 planes + if (bplcon0 & 0x0010) + return 8; // AGA 8-planes bit + return (bplcon0 >> 12) & 7; // normal planes bits } extern void fpscounter_reset (void); diff --git a/src/include/debug.h b/src/include/debug.h index 2048d2ad..78220d65 100644 --- a/src/include/debug.h +++ b/src/include/debug.h @@ -1,6 +1,6 @@ - /* - * NO Debugger - */ +/* + * NO Debugger + */ #ifndef DEBUG_H #define DEBUG_H diff --git a/src/include/disk.h b/src/include/disk.h index 4067179f..0950dae3 100644 --- a/src/include/disk.h +++ b/src/include/disk.h @@ -1,10 +1,10 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * disk support - * - * (c) 1995 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * disk support + * + * (c) 1995 Bernd Schmidt + */ typedef enum { DRV_NONE = -1, DRV_35_DD = 0, DRV_35_HD, DRV_525_SD, DRV_35_DD_ESCOM } drive_type; diff --git a/src/include/drawing.h b/src/include/drawing.h index 05886c85..d29351ba 100644 --- a/src/include/drawing.h +++ b/src/include/drawing.h @@ -25,24 +25,24 @@ extern bool aga_mode; STATIC_INLINE int coord_hw_to_window_x(int x) { - x -= DISPLAY_LEFT_SHIFT; - return x; + x -= DISPLAY_LEFT_SHIFT; + return x; } STATIC_INLINE int coord_window_to_hw_x(int x) { - return x + DISPLAY_LEFT_SHIFT; + return x + DISPLAY_LEFT_SHIFT; } STATIC_INLINE int coord_diw_to_window_x(int x) { - return (x - DISPLAY_LEFT_SHIFT + DIW_DDF_OFFSET - 1); + return (x - DISPLAY_LEFT_SHIFT + DIW_DDF_OFFSET - 1); } STATIC_INLINE int coord_window_to_diw_x(int x) { - x = coord_window_to_hw_x(x); - return x - DIW_DDF_OFFSET; + x = coord_window_to_hw_x(x); + return x - DIW_DDF_OFFSET; } extern int framecnt; @@ -55,10 +55,10 @@ extern int framecnt; */ struct color_entry { - uae_u16 color_regs_ecs[32]; - xcolnr acolors[256]; - uae_u32 color_regs_aga[256]; - bool borderblank; + uae_u16 color_regs_ecs[32]; + xcolnr acolors[256]; + uae_u32 color_regs_aga[256]; + bool borderblank; }; /* convert 24 bit AGA Amiga RGB to native color */ @@ -69,54 +69,54 @@ struct color_entry #else STATIC_INLINE uae_u16 CONVERT_RGB(uae_u32 c) { - uae_u16 ret; - __asm__( - "ubfx r1, %[c], #19, #5 \n\t" - "ubfx r2, %[c], #10, #6 \n\t" - "ubfx %[v], %[c], #3, #5 \n\t" - "orr %[v], %[v], r1, lsl #11 \n\t" - "orr %[v], %[v], r2, lsl #5 \n\t" - : [v] "=r" (ret) : [c] "r" (c) : "r1", - "r2"); - return ret; + uae_u16 ret; + __asm__( + "ubfx r1, %[c], #19, #5 \n\t" + "ubfx r2, %[c], #10, #6 \n\t" + "ubfx %[v], %[c], #3, #5 \n\t" + "orr %[v], %[v], r1, lsl #11 \n\t" + "orr %[v], %[v], r2, lsl #5 \n\t" + : [v] "=r" (ret) : [c] "r" (c) : "r1", + "r2"); + return ret; } #endif STATIC_INLINE xcolnr getxcolor(int c) { - if (aga_mode) - return CONVERT_RGB(c); - else - return xcolors[c]; + if (aga_mode) + return CONVERT_RGB(c); + else + return xcolors[c]; } /* functions for reading, writing, copying and comparing struct color_entry */ STATIC_INLINE int color_reg_get(struct color_entry *ce, int c) { - if (aga_mode) - return ce->color_regs_aga[c]; - else - return ce->color_regs_ecs[c]; + if (aga_mode) + return ce->color_regs_aga[c]; + else + return ce->color_regs_ecs[c]; } STATIC_INLINE void color_reg_set(struct color_entry *ce, int c, int v) { - if (aga_mode) - ce->color_regs_aga[c] = v; - else - ce->color_regs_ecs[c] = v; + if (aga_mode) + ce->color_regs_aga[c] = v; + else + ce->color_regs_ecs[c] = v; } /* ugly copy hack, is there better solution? */ STATIC_INLINE void color_reg_cpy(struct color_entry *dst, struct color_entry *src) { - dst->borderblank = src->borderblank; - if (aga_mode) - /* copy acolors and color_regs_aga */ - memcpy(dst->acolors, src->acolors, sizeof(struct color_entry) - sizeof(uae_u16) * 32); - else - /* copy first 32 acolors and color_regs_ecs */ - memcpy(dst->color_regs_ecs, src->color_regs_ecs, sizeof(uae_u16) * 32 + sizeof(xcolnr) * 32); + dst->borderblank = src->borderblank; + if (aga_mode) + /* copy acolors and color_regs_aga */ + memcpy(dst->acolors, src->acolors, sizeof(struct color_entry) - sizeof(uae_u16) * 32); + else + /* copy first 32 acolors and color_regs_ecs */ + memcpy(dst->color_regs_ecs, src->color_regs_ecs, sizeof(uae_u16) * 32 + sizeof(xcolnr) * 32); } /* @@ -131,9 +131,9 @@ STATIC_INLINE void color_reg_cpy(struct color_entry *dst, struct color_entry *sr #define COLOR_CHANGE_BRDBLANK 0x80000000 struct color_change { - int linepos; - int regno; - unsigned int value; + int linepos; + int regno; + unsigned int value; }; /* 440 rather than 880, since sprites are always lores. */ @@ -146,16 +146,16 @@ struct color_change struct sprite_entry { - unsigned short pos; - unsigned short max; - unsigned int first_pixel; - bool has_attached; + unsigned short pos; + unsigned short max; + unsigned int first_pixel; + bool has_attached; }; union sps_union { - uae_u8 bytes[MAX_SPR_PIXELS]; - uae_u32 words[MAX_SPR_PIXELS / 4]; + uae_u8 bytes[MAX_SPR_PIXELS]; + uae_u32 words[MAX_SPR_PIXELS / 4]; }; extern union sps_union spixstate; @@ -175,26 +175,26 @@ extern struct draw_info curr_drawinfo[2 * (MAXVPOS + 2) + 1]; struct decision { /* Records the leftmost access of BPL1DAT. */ - int plfleft, plfright, plflinelen; - /* Display window: native coordinates, depend on lores state. */ - int diwfirstword, diwlastword; - int ctable; + int plfleft, plfright, plflinelen; + /* Display window: native coordinates, depend on lores state. */ + int diwfirstword, diwlastword; + int ctable; - uae_u16 bplcon0, bplcon2; - uae_u16 bplcon3, bplcon4; - uae_u8 nr_planes; - uae_u8 bplres; - bool ham_seen; - bool ham_at_start; + uae_u16 bplcon0, bplcon2; + uae_u16 bplcon3, bplcon4; + uae_u8 nr_planes; + uae_u8 bplres; + bool ham_seen; + bool ham_at_start; }; /* Anything related to changes in hw registers during the DDF for one * line. */ struct draw_info { - int first_sprite_entry, last_sprite_entry; - int first_color_change, last_color_change; - int nr_color_changes, nr_sprites; + int first_sprite_entry, last_sprite_entry; + int first_color_change, last_color_change; + int nr_color_changes, nr_sprites; }; extern struct decision line_decisions[2 * (MAXVPOS + 2) + 1]; @@ -226,13 +226,13 @@ extern int inhibit_frame; STATIC_INLINE void set_inhibit_frame(int bit) { - inhibit_frame |= 1 << bit; + inhibit_frame |= 1 << bit; } STATIC_INLINE void clear_inhibit_frame(int bit) { - inhibit_frame &= ~(1 << bit); + inhibit_frame &= ~(1 << bit); } STATIC_INLINE void toggle_inhibit_frame(int bit) { - inhibit_frame ^= 1 << bit; + inhibit_frame ^= 1 << bit; } diff --git a/src/include/ersatz.h b/src/include/ersatz.h index 2833e4ba..6301514e 100644 --- a/src/include/ersatz.h +++ b/src/include/ersatz.h @@ -1,10 +1,10 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * A "replacement" for a missing Kickstart - * - * (c) 1995 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * A "replacement" for a missing Kickstart + * + * (c) 1995 Bernd Schmidt + */ extern void init_ersatz_rom (uae_u8 *data); extern void ersatz_chipcopy (void); diff --git a/src/include/events.h b/src/include/events.h index 8df56033..ca79894f 100644 --- a/src/include/events.h +++ b/src/include/events.h @@ -1,16 +1,16 @@ #ifndef EVENTS_H #define EVENTS_H - /* - * UAE - The Un*x Amiga Emulator - * - * Events - * These are best for low-frequency events. Having too many of them, - * or using them for events that occur too frequently, can cause massive - * slowdown. - * - * Copyright 1995-1998 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Events + * These are best for low-frequency events. Having too many of them, + * or using them for events that occur too frequently, can cause massive + * slowdown. + * + * Copyright 1995-1998 Bernd Schmidt + */ #include "md-pandora/rpt.h" @@ -49,13 +49,15 @@ struct ev2 evfunc2 handler; }; -enum { - ev_copper, +enum +{ + ev_copper, ev_cia, ev_audio, ev_blitter, ev_dmal, ev_misc, ev_hsync, ev_max }; -enum { +enum +{ ev2_disk, ev2_disk_motor0, ev2_disk_motor1, ev2_disk_motor2, ev2_disk_motor3, ev2_max }; @@ -69,64 +71,66 @@ extern struct ev2 eventtab2[ev2_max]; STATIC_INLINE void cycles_do_special (struct regstruct ®s) { #ifdef JIT - if (currprefs.cachesize) { - if (regs.pissoff >= 0) - regs.pissoff = -1; - } else + if (currprefs.cachesize) + { + if (regs.pissoff >= 0) + regs.pissoff = -1; + } + else #endif - { - regs.pissoff = 0; - } + { + regs.pissoff = 0; + } } STATIC_INLINE unsigned long int get_cycles (void) { - return currcycle; + return currcycle; } STATIC_INLINE void set_cycles (unsigned long int x) { - currcycle = x; - eventtab[ev_hsync].oldcycles = x; + currcycle = x; + eventtab[ev_hsync].oldcycles = x; } STATIC_INLINE int current_hpos (void) { - return (get_cycles () - eventtab[ev_hsync].oldcycles) / CYCLE_UNIT; + return (get_cycles () - eventtab[ev_hsync].oldcycles) / CYCLE_UNIT; } STATIC_INLINE bool cycles_in_range (unsigned long endcycles) { - signed long c = get_cycles (); - return (signed long)endcycles - c > 0; + signed long c = get_cycles (); + return (signed long)endcycles - c > 0; } extern void MISC_handler(void); STATIC_INLINE void event2_newevent (int no, evt t, uae_u32 data) { - eventtab2[no].active = true; - eventtab2[no].evtime = (t * CYCLE_UNIT) + get_cycles(); - eventtab2[no].data = data; - MISC_handler(); + eventtab2[no].active = true; + eventtab2[no].evtime = (t * CYCLE_UNIT) + get_cycles(); + eventtab2[no].data = data; + MISC_handler(); } STATIC_INLINE void event2_remevent (int no) { - eventtab2[no].active = 0; + eventtab2[no].active = 0; } STATIC_INLINE void event_newevent (int no, evt t) { - evt ct = get_cycles(); - eventtab[no].active = true; - eventtab[no].evtime = ct + t * CYCLE_UNIT; - events_schedule(); + evt ct = get_cycles(); + eventtab[no].active = true; + eventtab[no].evtime = ct + t * CYCLE_UNIT; + events_schedule(); } STATIC_INLINE void event_remevent (int no) { - eventtab[no].active = 0; + eventtab[no].active = 0; } #endif diff --git a/src/include/execio.h b/src/include/execio.h index c00ba192..102f7c4c 100644 --- a/src/include/execio.h +++ b/src/include/execio.h @@ -1,12 +1,11 @@ - -#define IOERR_OPENFAIL -1 -#define IOERR_ABORTED -2 -#define IOERR_NOCMD -3 -#define IOERR_BADLENGTH -4 -#define IOERR_BADADDRESS -5 -#define IOERR_UNITBUSY -6 -#define IOERR_SELFTEST -7 - +#define IOERR_OPENFAIL -1 +#define IOERR_ABORTED -2 +#define IOERR_NOCMD -3 +#define IOERR_BADLENGTH -4 +#define IOERR_BADADDRESS -5 +#define IOERR_UNITBUSY -6 +#define IOERR_SELFTEST -7 + #define IOERR_NotSpecified 20 /* general catchall */ #define IOERR_NoSecHdr 21 /* couldn't even find a sector */ #define IOERR_BadSecPreamble 22 /* sector looked wrong */ @@ -28,72 +27,72 @@ #define IOERR_BadStatus 45 #define IOERR_Phase 42 /* illegal or unexpected SCSI phase */ #define IOERR_NoBoard 50 /* open failed for non-existant board */ - - -#define TDERR_DiskChanged 29 - -#define CMD_INVALID 0 -#define CMD_RESET 1 -#define CMD_READ 2 -#define CMD_WRITE 3 -#define CMD_UPDATE 4 -#define CMD_CLEAR 5 -#define CMD_STOP 6 -#define CMD_START 7 -#define CMD_FLUSH 8 -#define CMD_NONSTD 9 - -#define IOB_QUICK 0 -#define IOF_QUICK (1<<0) - -#define IOSTDREQ_SIZE 48 - -#define DRIVE_NEWSTYLE 0x4E535459L /* 'NSTY' */ -#define NSCMD_DEVICEQUERY 0x4000 - -#define TAG_DONE 0 -#define TAG_IGNORE 1 -#define TAG_MORE 2 -#define TAG_SKIP 3 -#define TAG_USER (1 << 31) - -#define NSDEVTYPE_UNKNOWN 0 -#define NSDEVTYPE_GAMEPORT 1 -#define NSDEVTYPE_TIMER 2 -#define NSDEVTYPE_KEYBOARD 3 -#define NSDEVTYPE_INPUT 4 -#define NSDEVTYPE_TRACKDISK 5 -#define NSDEVTYPE_CONSOLE 6 -#define NSDEVTYPE_SANA2 7 -#define NSDEVTYPE_AUDIO 8 -#define NSDEVTYPE_CLIPBOARD 9 -#define NSDEVTYPE_PRINTER 10 -#define NSDEVTYPE_SERIAL 11 -#define NSDEVTYPE_PARALLEL 12 - -#define CMD_MOTOR 9 -#define CMD_SEEK 10 -#define CMD_FORMAT 11 -#define CMD_REMOVE 12 -#define CMD_CHANGENUM 13 -#define CMD_CHANGESTATE 14 -#define CMD_PROTSTATUS 15 -#define CMD_GETDRIVETYPE 18 -#define CMD_GETNUMTRACKS 19 -#define CMD_ADDCHANGEINT 20 -#define CMD_REMCHANGEINT 21 -#define CMD_GETGEOMETRY 22 -#define CMD_GETDRIVETYPE 18 -#define CMD_GETNUMTRACKS 19 -#define CMD_ADDCHANGEINT 20 -#define CMD_REMCHANGEINT 21 -#define CMD_GETGEOMETRY 22 + + +#define TDERR_DiskChanged 29 + +#define CMD_INVALID 0 +#define CMD_RESET 1 +#define CMD_READ 2 +#define CMD_WRITE 3 +#define CMD_UPDATE 4 +#define CMD_CLEAR 5 +#define CMD_STOP 6 +#define CMD_START 7 +#define CMD_FLUSH 8 +#define CMD_NONSTD 9 + +#define IOB_QUICK 0 +#define IOF_QUICK (1<<0) + +#define IOSTDREQ_SIZE 48 + +#define DRIVE_NEWSTYLE 0x4E535459L /* 'NSTY' */ +#define NSCMD_DEVICEQUERY 0x4000 + +#define TAG_DONE 0 +#define TAG_IGNORE 1 +#define TAG_MORE 2 +#define TAG_SKIP 3 +#define TAG_USER (1 << 31) + +#define NSDEVTYPE_UNKNOWN 0 +#define NSDEVTYPE_GAMEPORT 1 +#define NSDEVTYPE_TIMER 2 +#define NSDEVTYPE_KEYBOARD 3 +#define NSDEVTYPE_INPUT 4 +#define NSDEVTYPE_TRACKDISK 5 +#define NSDEVTYPE_CONSOLE 6 +#define NSDEVTYPE_SANA2 7 +#define NSDEVTYPE_AUDIO 8 +#define NSDEVTYPE_CLIPBOARD 9 +#define NSDEVTYPE_PRINTER 10 +#define NSDEVTYPE_SERIAL 11 +#define NSDEVTYPE_PARALLEL 12 + +#define CMD_MOTOR 9 +#define CMD_SEEK 10 +#define CMD_FORMAT 11 +#define CMD_REMOVE 12 +#define CMD_CHANGENUM 13 +#define CMD_CHANGESTATE 14 +#define CMD_PROTSTATUS 15 +#define CMD_GETDRIVETYPE 18 +#define CMD_GETNUMTRACKS 19 +#define CMD_ADDCHANGEINT 20 +#define CMD_REMCHANGEINT 21 +#define CMD_GETGEOMETRY 22 +#define CMD_GETDRIVETYPE 18 +#define CMD_GETNUMTRACKS 19 +#define CMD_ADDCHANGEINT 20 +#define CMD_REMCHANGEINT 21 +#define CMD_GETGEOMETRY 22 #define CD_EJECT 23 -#define TD_READ64 24 -#define TD_WRITE64 25 -#define TD_SEEK64 26 -#define TD_FORMAT64 27 -#define HD_SCSICMD 28 +#define TD_READ64 24 +#define TD_WRITE64 25 +#define TD_SEEK64 26 +#define TD_FORMAT64 27 +#define HD_SCSICMD 28 #define CD_INFO 32 #define CD_CONFIG 33 #define CD_TOCMSF 34 @@ -108,10 +107,10 @@ #define CD_QCODELSN 43 #define CD_ATTENUATE 44 #define CD_ADDFRAMEINT 45 -#define CD_REMFRAMEINT 46 - -/* New Style Devices (NSD) support */ -#define NSCMD_TD_READ64 0xc000 -#define NSCMD_TD_WRITE64 0xc001 -#define NSCMD_TD_SEEK64 0xc002 -#define NSCMD_TD_FORMAT64 0xc003 +#define CD_REMFRAMEINT 46 + +/* New Style Devices (NSD) support */ +#define NSCMD_TD_READ64 0xc000 +#define NSCMD_TD_WRITE64 0xc001 +#define NSCMD_TD_SEEK64 0xc002 +#define NSCMD_TD_FORMAT64 0xc003 diff --git a/src/include/execlib.h b/src/include/execlib.h index 64ddf4e9..1898e21f 100644 --- a/src/include/execlib.h +++ b/src/include/execlib.h @@ -1,10 +1,10 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Miscellaneous bits for exec emulation - * - * Copyright 1996 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Miscellaneous bits for exec emulation + * + * Copyright 1996 Bernd Schmidt + */ #define CMD_INVALID 0 #define CMD_RESET 1 diff --git a/src/include/filesys.h b/src/include/filesys.h index 2033efe5..1afc6144 100644 --- a/src/include/filesys.h +++ b/src/include/filesys.h @@ -1,12 +1,13 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Unix file system handler for AmigaDOS - * - * Copyright 1997 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Unix file system handler for AmigaDOS + * + * Copyright 1997 Bernd Schmidt + */ -struct hardfiledata { +struct hardfiledata +{ uae_u64 virtsize; // virtual size uae_u64 physsize; // physical size (dynamic disk) uae_u64 offset; @@ -41,7 +42,8 @@ struct hardfiledata { TCHAR *emptyname; }; -struct hd_hardfiledata { +struct hd_hardfiledata +{ struct hardfiledata hfd; int bootpri; uae_u64 size; @@ -93,9 +95,9 @@ extern void hardfile_do_disk_change (struct uaedev_config_info *uci, int insert) void hdf_hd_close(struct hd_hardfiledata *hfd); int hdf_hd_open(struct hd_hardfiledata *hfd, const TCHAR *path, int blocksize, int readonly, - const TCHAR *devname, int cyls, int sectors, int surfaces, int reserved, - int bootpri, const TCHAR *filesys, - int pcyls, int pheads, int psectors); + const TCHAR *devname, int cyls, int sectors, int surfaces, int reserved, + int bootpri, const TCHAR *filesys, + int pcyls, int pheads, int psectors); extern int hdf_open_target (struct hardfiledata *hfd, const TCHAR *name); extern void hdf_close_target (struct hardfiledata *hfd); diff --git a/src/include/flags_arm.h b/src/include/flags_arm.h index c9a60490..de283990 100644 --- a/src/include/flags_arm.h +++ b/src/include/flags_arm.h @@ -2,7 +2,7 @@ * compiler/flags_arm.h - Native flags definitions for ARM * * Copyright (c) 2013 Jens Heitmann of ARAnyM dev team (see AUTHORS) - * + * * Inspired by Christian Bauer's Basilisk II * * Original 68040 JIT compiler for UAE, copyright 2000-2002 Bernd Meyer @@ -31,22 +31,23 @@ #define NATIVE_FLAGS_ARM_H /* Native integer code conditions */ -enum { - NATIVE_CC_EQ = 0, - NATIVE_CC_NE = 1, - NATIVE_CC_CS = 2, - NATIVE_CC_CC = 3, - NATIVE_CC_MI = 4, - NATIVE_CC_PL = 5, - NATIVE_CC_VS = 6, - NATIVE_CC_VC = 7, - NATIVE_CC_HI = 8, - NATIVE_CC_LS = 9, - NATIVE_CC_GE = 10, - NATIVE_CC_LT = 11, - NATIVE_CC_GT = 12, - NATIVE_CC_LE = 13, - NATIVE_CC_AL = 14 +enum +{ + NATIVE_CC_EQ = 0, + NATIVE_CC_NE = 1, + NATIVE_CC_CS = 2, + NATIVE_CC_CC = 3, + NATIVE_CC_MI = 4, + NATIVE_CC_PL = 5, + NATIVE_CC_VS = 6, + NATIVE_CC_VC = 7, + NATIVE_CC_HI = 8, + NATIVE_CC_LS = 9, + NATIVE_CC_GE = 10, + NATIVE_CC_LT = 11, + NATIVE_CC_GT = 12, + NATIVE_CC_LE = 13, + NATIVE_CC_AL = 14 }; #endif /* NATIVE_FLAGS_ARM_H */ diff --git a/src/include/fpp-ieee-be.h b/src/include/fpp-ieee-be.h index 81e67b7b..138be520 100644 --- a/src/include/fpp-ieee-be.h +++ b/src/include/fpp-ieee-be.h @@ -1,17 +1,18 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * MC68881 emulation - * Support functions for IEEE compatible host CPUs. - * These functions use a GCC extension (type punning through unions) and - * should only be compiled with compilers that support this. - * - * Copyright 1999 Sam Jordan - */ +/* + * UAE - The Un*x Amiga Emulator + * + * MC68881 emulation + * Support functions for IEEE compatible host CPUs. + * These functions use a GCC extension (type punning through unions) and + * should only be compiled with compilers that support this. + * + * Copyright 1999 Sam Jordan + */ STATIC_INLINE double to_single (uae_u32 value) { - union { + union + { float f; uae_u32 u; } val; @@ -22,7 +23,8 @@ STATIC_INLINE double to_single (uae_u32 value) STATIC_INLINE uae_u32 from_single (double src) { - union { + union + { float f; uae_u32 u; } val; @@ -33,7 +35,8 @@ STATIC_INLINE uae_u32 from_single (double src) STATIC_INLINE double to_double(uae_u32 wrd1, uae_u32 wrd2) { - union { + union + { double d; uae_u32 u[2]; } val; @@ -45,7 +48,8 @@ STATIC_INLINE double to_double(uae_u32 wrd1, uae_u32 wrd2) STATIC_INLINE void from_double(double src, uae_u32 * wrd1, uae_u32 * wrd2) { - union { + union + { double d; uae_u32 u[2]; } val; diff --git a/src/include/fpp-unknown.h b/src/include/fpp-unknown.h index 26d5e1ff..6b90abe8 100644 --- a/src/include/fpp-unknown.h +++ b/src/include/fpp-unknown.h @@ -1,12 +1,12 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * MC68881 emulation - * - * Conversion routines for hosts with unknown floating point format. - * - * Copyright 1996 Herman ten Brugge - */ +/* + * UAE - The Un*x Amiga Emulator + * + * MC68881 emulation + * + * Conversion routines for hosts with unknown floating point format. + * + * Copyright 1996 Herman ten Brugge + */ #ifndef HAVE_to_single STATIC_INLINE double to_single (uae_u32 value) @@ -31,15 +31,19 @@ STATIC_INLINE uae_u32 from_single (double src) if (src == 0.0) return 0; - if (src < 0) { + if (src < 0) + { tmp = 0x80000000; src = -src; - } else { + } + else + { tmp = 0; } frac = frexp (src, &expon); frac += 0.5 / 16777216.0; - if (frac >= 1.0) { + if (frac >= 1.0) + { frac /= 2.0; expon++; } @@ -56,7 +60,7 @@ STATIC_INLINE double to_exten(uae_u32 wrd1, uae_u32 wrd2, uae_u32 wrd3) if ((wrd1 & 0x7fff0000) == 0 && wrd2 == 0 && wrd3 == 0) return 0.0; frac = (double) wrd2 / 2147483648.0 + - (double) wrd3 / 9223372036854775808.0; + (double) wrd3 / 9223372036854775808.0; if (wrd1 & 0x80000000) frac = -frac; return ldexp (frac, ((wrd1 >> 16) & 0x7fff) - 16383); @@ -69,21 +73,26 @@ STATIC_INLINE void from_exten(double src, uae_u32 * wrd1, uae_u32 * wrd2, uae_u3 int expon; double frac; - if (src == 0.0) { + if (src == 0.0) + { *wrd1 = 0; *wrd2 = 0; *wrd3 = 0; return; } - if (src < 0) { + if (src < 0) + { *wrd1 = 0x80000000; src = -src; - } else { + } + else + { *wrd1 = 0; } frac = frexp (src, &expon); frac += 0.5 / 18446744073709551616.0; - if (frac >= 1.0) { + if (frac >= 1.0) + { frac /= 2.0; expon++; } @@ -101,7 +110,7 @@ STATIC_INLINE double to_double(uae_u32 wrd1, uae_u32 wrd2) if ((wrd1 & 0x7fffffff) == 0 && wrd2 == 0) return 0.0; frac = (double) ((wrd1 & 0xfffff) | 0x100000) / 1048576.0 + - (double) wrd2 / 4503599627370496.0; + (double) wrd2 / 4503599627370496.0; if (wrd1 & 0x80000000) frac = -frac; return ldexp (frac, ((wrd1 >> 20) & 0x7ff) - 1023); @@ -115,20 +124,25 @@ STATIC_INLINE void from_double(double src, uae_u32 * wrd1, uae_u32 * wrd2) int tmp; double frac; - if (src == 0.0) { + if (src == 0.0) + { *wrd1 = 0; *wrd2 = 0; return; } - if (src < 0) { + if (src < 0) + { *wrd1 = 0x80000000; src = -src; - } else { + } + else + { *wrd1 = 0; } frac = frexp (src, &expon); frac += 0.5 / 9007199254740992.0; - if (frac >= 1.0) { + if (frac >= 1.0) + { frac /= 2.0; expon++; } diff --git a/src/include/fsdb.h b/src/include/fsdb.h index 98f0ef2c..3b107475 100644 --- a/src/include/fsdb.h +++ b/src/include/fsdb.h @@ -1,11 +1,11 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Library of functions to make emulated filesystem as independent as - * possible of the host filesystem's capabilities. - * - * Copyright 1999 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Library of functions to make emulated filesystem as independent as + * possible of the host filesystem's capabilities. + * + * Copyright 1999 Bernd Schmidt + */ #ifndef FSDB_FILE #define FSDB_FILE _T("_UAEFSDB.___") @@ -53,7 +53,8 @@ #define A_FIBF_DELETE (1<<0) /* AmigaOS "keys" */ -typedef struct a_inode_struct { +typedef struct a_inode_struct +{ /* Circular list of recycleable a_inodes. */ struct a_inode_struct *next, *prev; /* This a_inode's relatives in the directory structure. */ @@ -92,7 +93,7 @@ typedef struct a_inode_struct { unsigned int volflags; /* not equaling unit.mountcount -> not in this volume */ unsigned int mountcount; - uae_u64 uniq_external; + uae_u64 uniq_external; } a_inode; extern TCHAR *nname_begin (TCHAR *); @@ -111,7 +112,7 @@ extern int fsdb_exists (const TCHAR *nname); STATIC_INLINE int same_aname (const TCHAR *an1, const TCHAR *an2) { - return strcasecmp (an1, an2) == 0; + return strcasecmp (an1, an2) == 0; } /* Filesystem-dependent functions. */ diff --git a/src/include/fsusage.h b/src/include/fsusage.h index 01783bf2..862d70a2 100644 --- a/src/include/fsusage.h +++ b/src/include/fsusage.h @@ -18,11 +18,11 @@ /* Space usage statistics for a filesystem. Blocks are 512-byte. */ struct fs_usage { - unsigned long fsu_blocks; /* Total blocks. */ - unsigned long fsu_bfree; /* Free blocks available to superuser. */ - unsigned long fsu_bavail; /* Free blocks available to non-superuser. */ - unsigned long fsu_files; /* Total file nodes. */ - unsigned long fsu_ffree; /* Free file nodes. */ + unsigned long fsu_blocks; /* Total blocks. */ + unsigned long fsu_bfree; /* Free blocks available to superuser. */ + unsigned long fsu_bavail; /* Free blocks available to non-superuser. */ + unsigned long fsu_files; /* Total file nodes. */ + unsigned long fsu_ffree; /* Free file nodes. */ }; int get_fs_usage (const TCHAR *path, const TCHAR *disk, struct fs_usage *fsp); diff --git a/src/include/genblitter.h b/src/include/genblitter.h index 3b333feb..032dbfc0 100644 --- a/src/include/genblitter.h +++ b/src/include/genblitter.h @@ -1,13 +1,14 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Optimized blitter minterm function generator - * - * Copyright 1995,1996 Bernd Schmidt - * Copyright 1996 Alessandro Bissacco - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Optimized blitter minterm function generator + * + * Copyright 1995,1996 Bernd Schmidt + * Copyright 1996 Alessandro Bissacco + */ -struct blitop { +struct blitop +{ const char *s; int used; }; diff --git a/src/include/gensound.h b/src/include/gensound.h index 3e02778d..30f39bdb 100644 --- a/src/include/gensound.h +++ b/src/include/gensound.h @@ -1,11 +1,11 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Prototypes for general sound related functions - * This use to be called sound.h, but that causes confusion - * - * Copyright 1997 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Prototypes for general sound related functions + * This use to be called sound.h, but that causes confusion + * + * Copyright 1997 Bernd Schmidt + */ extern int sound_available; diff --git a/src/include/gui.h b/src/include/gui.h index ba38c8d6..45f57012 100644 --- a/src/include/gui.h +++ b/src/include/gui.h @@ -1,10 +1,10 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Interface to the Tcl/Tk GUI - * - * Copyright 1996 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Interface to the Tcl/Tk GUI + * + * Copyright 1996 Bernd Schmidt + */ extern int gui_init (void); extern int gui_update (void); @@ -76,10 +76,11 @@ extern void ClearAvailableROMList(void); #include #include -typedef struct { - char Name[MAX_PATH]; - char Path[MAX_PATH]; - int ROMType; +typedef struct +{ + char Name[MAX_PATH]; + char Path[MAX_PATH]; + int ROMType; } AvailableROM; extern std::vector lstAvailableROMs; @@ -98,7 +99,8 @@ extern const int amigaheight_values[AMIGAHEIGHT_COUNT]; void notify_user (int msg); int translate_message (int msg, TCHAR *out); -typedef enum { +typedef enum +{ NUMSG_NEEDEXT2, NUMSG_NOROM, NUMSG_NOROMKEY, NUMSG_KSROMCRCERROR, NUMSG_KSROMREADERROR, NUMSG_NOEXTROM, NUMSG_MODRIP_NOTFOUND, NUMSG_MODRIP_FINISHED, NUMSG_MODRIP_SAVE, diff --git a/src/include/inputdevice.h b/src/include/inputdevice.h index f02b46e3..eb4e4db1 100644 --- a/src/include/inputdevice.h +++ b/src/include/inputdevice.h @@ -1,11 +1,11 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Joystick, mouse and keyboard emulation prototypes and definitions - * - * Copyright 1995 Bernd Schmidt - * Copyright 2001-2002 Toni Wilen - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Joystick, mouse and keyboard emulation prototypes and definitions + * + * Copyright 1995 Bernd Schmidt + * Copyright 2001-2002 Toni Wilen + */ #define DIR_LEFT_BIT 0 #define DIR_RIGHT_BIT 1 @@ -32,7 +32,8 @@ #define IDTYPE_KEYBOARD 2 #define IDTYPE_MAX 3 -struct inputdevice_functions { +struct inputdevice_functions +{ int (*init)(void); void (*close)(void); int (*acquire)(int,int); @@ -52,22 +53,24 @@ extern struct inputdevice_functions inputdevicefunc_keyboard; struct uae_input_device_default_node { - int evt; - uae_u64 flags; + int evt; + uae_u64 flags; }; -struct uae_input_device_kbr_default { +struct uae_input_device_kbr_default +{ int scancode; struct uae_input_device_default_node node[MAX_INPUT_SUB_EVENT]; }; -struct inputevent { - const TCHAR *confname; - const TCHAR *name; - int allow_mask; - int type; - int unit; - int data; +struct inputevent +{ + const TCHAR *confname; + const TCHAR *name; + int allow_mask; + int type; + int unit; + int data; }; #define MAX_INPUT_QUALIFIERS (8 + 5) @@ -158,10 +161,11 @@ extern int input_get_default_joystick_analog (struct uae_input_device *uid, int extern int input_get_default_keyboard (int num); #define DEFEVENT(A, B, C, D, E, F) INPUTEVENT_ ## A, -enum inputevents { -INPUTEVENT_ZERO, +enum inputevents +{ + INPUTEVENT_ZERO, #include "inputevents.def" -INPUTEVENT_END + INPUTEVENT_END }; #undef DEFEVENT diff --git a/src/include/keyboard.h b/src/include/keyboard.h index 46b0c221..7d87a25b 100644 --- a/src/include/keyboard.h +++ b/src/include/keyboard.h @@ -1,10 +1,10 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Amiga keycodes - * - * (c) 1995 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Amiga keycodes + * + * (c) 1995 Bernd Schmidt + */ #define KEYCODE_UNK 0 #define KEYCODE_X11 1 @@ -132,42 +132,42 @@ extern void init_keyboard(void); #define AK_TERM_POWERUP 0xfe enum aks { AKS_ENTERGUI = 0x200, AKS_SCREENSHOT_FILE, AKS_SCREENSHOT_CLIPBOARD, AKS_FREEZEBUTTON, - AKS_FLOPPY0, AKS_FLOPPY1, AKS_FLOPPY2, AKS_FLOPPY3, - AKS_EFLOPPY0, AKS_EFLOPPY1, AKS_EFLOPPY2, AKS_EFLOPPY3, - AKS_TOGGLEDEFAULTSCREEN, - AKS_TOGGLEWINDOWEDFULLSCREEN, AKS_TOGGLEFULLWINDOWFULLSCREEN, AKS_TOGGLEWINDOWFULLWINDOW, - AKS_ENTERDEBUGGER, AKS_IRQ7, - AKS_PAUSE, AKS_WARP, AKS_INHIBITSCREEN, - AKS_STATEREWIND, AKS_STATECURRENT, AKS_STATECAPTURE, - AKS_VOLDOWN, AKS_VOLUP, AKS_VOLMUTE, - AKS_MVOLDOWN, AKS_MVOLUP, AKS_MVOLMUTE, - AKS_QUIT, AKS_HARDRESET, AKS_SOFTRESET, - AKS_STATESAVEQUICK, AKS_STATERESTOREQUICK, - AKS_STATESAVEQUICK1, AKS_STATERESTOREQUICK1, - AKS_STATESAVEQUICK2, AKS_STATERESTOREQUICK2, - AKS_STATESAVEQUICK3, AKS_STATERESTOREQUICK3, - AKS_STATESAVEQUICK4, AKS_STATERESTOREQUICK4, - AKS_STATESAVEQUICK5, AKS_STATERESTOREQUICK5, - AKS_STATESAVEQUICK6, AKS_STATERESTOREQUICK6, - AKS_STATESAVEQUICK7, AKS_STATERESTOREQUICK7, - AKS_STATESAVEQUICK8, AKS_STATERESTOREQUICK8, - AKS_STATESAVEQUICK9, AKS_STATERESTOREQUICK9, - AKS_STATESAVEDIALOG, AKS_STATERESTOREDIALOG, - AKS_DECREASEREFRESHRATE, - AKS_INCREASEREFRESHRATE, - AKS_ARCADIADIAGNOSTICS, AKS_ARCADIAPLY1, AKS_ARCADIAPLY2, AKS_ARCADIACOIN1, AKS_ARCADIACOIN2, - AKS_TOGGLEMOUSEGRAB, AKS_SWITCHINTERPOL, - AKS_INPUT_CONFIG_1,AKS_INPUT_CONFIG_2,AKS_INPUT_CONFIG_3,AKS_INPUT_CONFIG_4, - AKS_DISKSWAPPER_NEXT,AKS_DISKSWAPPER_PREV, - AKS_DISKSWAPPER_INSERT0,AKS_DISKSWAPPER_INSERT1,AKS_DISKSWAPPER_INSERT2,AKS_DISKSWAPPER_INSERT3, - AKS_DISK_PREV0, AKS_DISK_PREV1, AKS_DISK_PREV2, AKS_DISK_PREV3, - AKS_DISK_NEXT0, AKS_DISK_NEXT1, AKS_DISK_NEXT2, AKS_DISK_NEXT3, - AKS_CDTV_FRONT_PANEL_STOP, AKS_CDTV_FRONT_PANEL_PLAYPAUSE, AKS_CDTV_FRONT_PANEL_PREV, - AKS_CDTV_FRONT_PANEL_NEXT, AKS_CDTV_FRONT_PANEL_REW, AKS_CDTV_FRONT_PANEL_FF, - AKS_QUALIFIER1, AKS_QUALIFIER2, AKS_QUALIFIER3, AKS_QUALIFIER4, - AKS_QUALIFIER5, AKS_QUALIFIER6, AKS_QUALIFIER7, AKS_QUALIFIER8, - AKS_QUALIFIER_SPECIAL, AKS_QUALIFIER_SHIFT, AKS_QUALIFIER_CONTROL, - AKS_QUALIFIER_ALT, AKS_QUALIFIER_WIN -}; + AKS_FLOPPY0, AKS_FLOPPY1, AKS_FLOPPY2, AKS_FLOPPY3, + AKS_EFLOPPY0, AKS_EFLOPPY1, AKS_EFLOPPY2, AKS_EFLOPPY3, + AKS_TOGGLEDEFAULTSCREEN, + AKS_TOGGLEWINDOWEDFULLSCREEN, AKS_TOGGLEFULLWINDOWFULLSCREEN, AKS_TOGGLEWINDOWFULLWINDOW, + AKS_ENTERDEBUGGER, AKS_IRQ7, + AKS_PAUSE, AKS_WARP, AKS_INHIBITSCREEN, + AKS_STATEREWIND, AKS_STATECURRENT, AKS_STATECAPTURE, + AKS_VOLDOWN, AKS_VOLUP, AKS_VOLMUTE, + AKS_MVOLDOWN, AKS_MVOLUP, AKS_MVOLMUTE, + AKS_QUIT, AKS_HARDRESET, AKS_SOFTRESET, + AKS_STATESAVEQUICK, AKS_STATERESTOREQUICK, + AKS_STATESAVEQUICK1, AKS_STATERESTOREQUICK1, + AKS_STATESAVEQUICK2, AKS_STATERESTOREQUICK2, + AKS_STATESAVEQUICK3, AKS_STATERESTOREQUICK3, + AKS_STATESAVEQUICK4, AKS_STATERESTOREQUICK4, + AKS_STATESAVEQUICK5, AKS_STATERESTOREQUICK5, + AKS_STATESAVEQUICK6, AKS_STATERESTOREQUICK6, + AKS_STATESAVEQUICK7, AKS_STATERESTOREQUICK7, + AKS_STATESAVEQUICK8, AKS_STATERESTOREQUICK8, + AKS_STATESAVEQUICK9, AKS_STATERESTOREQUICK9, + AKS_STATESAVEDIALOG, AKS_STATERESTOREDIALOG, + AKS_DECREASEREFRESHRATE, + AKS_INCREASEREFRESHRATE, + AKS_ARCADIADIAGNOSTICS, AKS_ARCADIAPLY1, AKS_ARCADIAPLY2, AKS_ARCADIACOIN1, AKS_ARCADIACOIN2, + AKS_TOGGLEMOUSEGRAB, AKS_SWITCHINTERPOL, + AKS_INPUT_CONFIG_1,AKS_INPUT_CONFIG_2,AKS_INPUT_CONFIG_3,AKS_INPUT_CONFIG_4, + AKS_DISKSWAPPER_NEXT,AKS_DISKSWAPPER_PREV, + AKS_DISKSWAPPER_INSERT0,AKS_DISKSWAPPER_INSERT1,AKS_DISKSWAPPER_INSERT2,AKS_DISKSWAPPER_INSERT3, + AKS_DISK_PREV0, AKS_DISK_PREV1, AKS_DISK_PREV2, AKS_DISK_PREV3, + AKS_DISK_NEXT0, AKS_DISK_NEXT1, AKS_DISK_NEXT2, AKS_DISK_NEXT3, + AKS_CDTV_FRONT_PANEL_STOP, AKS_CDTV_FRONT_PANEL_PLAYPAUSE, AKS_CDTV_FRONT_PANEL_PREV, + AKS_CDTV_FRONT_PANEL_NEXT, AKS_CDTV_FRONT_PANEL_REW, AKS_CDTV_FRONT_PANEL_FF, + AKS_QUALIFIER1, AKS_QUALIFIER2, AKS_QUALIFIER3, AKS_QUALIFIER4, + AKS_QUALIFIER5, AKS_QUALIFIER6, AKS_QUALIFIER7, AKS_QUALIFIER8, + AKS_QUALIFIER_SPECIAL, AKS_QUALIFIER_SHIFT, AKS_QUALIFIER_CONTROL, + AKS_QUALIFIER_ALT, AKS_QUALIFIER_WIN + }; #define AKS_FIRST AKS_ENTERGUI diff --git a/src/include/keybuf.h b/src/include/keybuf.h index db8afa85..6637e403 100644 --- a/src/include/keybuf.h +++ b/src/include/keybuf.h @@ -1,11 +1,11 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Keyboard buffer. Not really needed for X, but for SVGAlib and possibly - * Mac and DOS ports. - * - * (c) 1996 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Keyboard buffer. Not really needed for X, but for SVGAlib and possibly + * Mac and DOS ports. + * + * (c) 1996 Bernd Schmidt + */ extern int get_next_key (void); extern int keys_available (void); diff --git a/src/include/mackbd.h b/src/include/mackbd.h index bbd5764c..2528db40 100644 --- a/src/include/mackbd.h +++ b/src/include/mackbd.h @@ -1,10 +1,10 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Mac keycodes - * - * (c) 1996 Ernesto Corvi - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Mac keycodes + * + * (c) 1996 Ernesto Corvi + */ #define kUpArrowKeyMap 0x7E /* key map offset for up arrow */ #define kDownArrowKeyMap 0x7D /* key map offset for down arrow */ diff --git a/src/include/memory.h b/src/include/memory.h index 0cf2e9b0..02282196 100644 --- a/src/include/memory.h +++ b/src/include/memory.h @@ -1,10 +1,10 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * memory management - * - * Copyright 1995 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * memory management + * + * Copyright 1995 Bernd Schmidt + */ #ifndef UAE_MEMORY_H #define UAE_MEMORY_H @@ -63,29 +63,30 @@ extern int uae_boot_rom_size; extern uaecptr rtarea_base; enum { ABFLAG_UNK = 0, ABFLAG_RAM = 1, ABFLAG_ROM = 2, ABFLAG_ROMIN = 4, ABFLAG_IO = 8, ABFLAG_NONE = 16, ABFLAG_SAFE = 32 }; -typedef struct { - /* These ones should be self-explanatory... */ - mem_get_func lget, wget, bget; - mem_put_func lput, wput, bput; - /* Use xlateaddr to translate an Amiga address to a uae_u8 * that can - * be used to address memory without calling the wget/wput functions. - * This doesn't work for all memory banks, so this function may call - * abort(). */ - xlate_func xlateaddr; - /* To prevent calls to abort(), use check before calling xlateaddr. - * It checks not only that the memory bank can do xlateaddr, but also - * that the pointer points to an area of at least the specified size. - * This is used for example to translate bitplane pointers in custom.c */ - check_func check; - /* For those banks that refer to real memory, we can save the whole trouble - of going through function calls, and instead simply grab the memory - ourselves. This holds the memory address where the start of memory is - for this particular bank. */ - uae_u8 *baseaddr; - const TCHAR *name; - /* for instruction opcode/operand fetches */ - mem_get_func lgeti, wgeti; - int flags; +typedef struct +{ + /* These ones should be self-explanatory... */ + mem_get_func lget, wget, bget; + mem_put_func lput, wput, bput; + /* Use xlateaddr to translate an Amiga address to a uae_u8 * that can + * be used to address memory without calling the wget/wput functions. + * This doesn't work for all memory banks, so this function may call + * abort(). */ + xlate_func xlateaddr; + /* To prevent calls to abort(), use check before calling xlateaddr. + * It checks not only that the memory bank can do xlateaddr, but also + * that the pointer points to an area of at least the specified size. + * This is used for example to translate bitplane pointers in custom.c */ + check_func check; + /* For those banks that refer to real memory, we can save the whole trouble + of going through function calls, and instead simply grab the memory + ourselves. This holds the memory address where the start of memory is + for this particular bank. */ + uae_u8 *baseaddr; + const TCHAR *name; + /* for instruction opcode/operand fetches */ + mem_get_func lgeti, wgeti; + int flags; } addrbank; extern uae_u8 *filesysory; @@ -147,17 +148,17 @@ extern void free_fastmemory (void); STATIC_INLINE uae_u32 get_long(uaecptr addr) { - return longget(addr); + return longget(addr); } STATIC_INLINE uae_u32 get_word(uaecptr addr) { - return wordget(addr); + return wordget(addr); } STATIC_INLINE uae_u32 get_byte(uaecptr addr) { - return byteget(addr); + return byteget(addr); } STATIC_INLINE uae_u32 get_longi(uaecptr addr) @@ -179,17 +180,19 @@ STATIC_INLINE uae_u32 get_wordi(uaecptr addr) STATIC_INLINE void *get_pointer (uaecptr addr) { const unsigned int n = SIZEOF_VOID_P / 4; - union { - void *ptr; - uae_u32 longs[SIZEOF_VOID_P / 4]; + union + { + void *ptr; + uae_u32 longs[SIZEOF_VOID_P / 4]; } p; unsigned int i; - for (i = 0; i < n; i++) { + for (i = 0; i < n; i++) + { #ifdef WORDS_BIGENDIAN - p.longs[i] = get_long (addr + i * 4); + p.longs[i] = get_long (addr + i * 4); #else - p.longs[n - 1 - i] = get_long (addr + i * 4); + p.longs[n - 1 - i] = get_long (addr + i * 4); #endif } return p.ptr; @@ -222,19 +225,21 @@ STATIC_INLINE void put_byte(uaecptr addr, uae_u32 b) STATIC_INLINE void put_pointer (uaecptr addr, void *v) { const unsigned int n = SIZEOF_VOID_P / 4; - union { - void *ptr; - uae_u32 longs[SIZEOF_VOID_P / 4]; + union + { + void *ptr; + uae_u32 longs[SIZEOF_VOID_P / 4]; } p; unsigned int i; p.ptr = v; - for (i = 0; i < n; i++) { + for (i = 0; i < n; i++) + { #ifdef WORDS_BIGENDIAN - put_long (addr + i * 4, p.longs[i]); + put_long (addr + i * 4, p.longs[i]); #else - put_long (addr + i * 4, p.longs[n - 1 - i]); + put_long (addr + i * 4, p.longs[n - 1 - i]); #endif } } @@ -258,11 +263,13 @@ extern uae_u32 chipmem_mask, chipmem_full_mask, kickmem_mask; extern uae_u8 *kickmemory; extern addrbank dummy_bank; -STATIC_INLINE uae_u32 chipmem_lget_indirect(uae_u32 PT) { - return do_get_mem_long((uae_u32 *)&chipmemory[PT & chipmem_full_mask]); +STATIC_INLINE uae_u32 chipmem_lget_indirect(uae_u32 PT) +{ + return do_get_mem_long((uae_u32 *)&chipmemory[PT & chipmem_full_mask]); } -STATIC_INLINE uae_u32 chipmem_wget_indirect (uae_u32 PT) { - return do_get_mem_word((uae_u16 *)&chipmemory[PT & chipmem_full_mask]); +STATIC_INLINE uae_u32 chipmem_wget_indirect (uae_u32 PT) +{ + return do_get_mem_word((uae_u16 *)&chipmemory[PT & chipmem_full_mask]); } #define chipmem_wput_indirect chipmem_agnus_wput extern void REGPARAM2 chipmem_agnus_wput (uaecptr addr, uae_u32 w); diff --git a/src/include/native2amiga.h b/src/include/native2amiga.h index a4b7eb63..fcddc41e 100644 --- a/src/include/native2amiga.h +++ b/src/include/native2amiga.h @@ -1,14 +1,14 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Call (some) Amiga Exec functions outside the main UAE thread - * and without stack magic. - * - * Copyright 1999 Patrick Ohly - * - * Uses the EXTER interrupt that is setup in filesys.c - * and some of it needs thread support. - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Call (some) Amiga Exec functions outside the main UAE thread + * and without stack magic. + * + * Copyright 1999 Patrick Ohly + * + * Uses the EXTER interrupt that is setup in filesys.c + * and some of it needs thread support. + */ #include "native2amiga_api.h" diff --git a/src/include/newcpu.h b/src/include/newcpu.h index a57f3c17..979f3bfe 100644 --- a/src/include/newcpu.h +++ b/src/include/newcpu.h @@ -2,7 +2,7 @@ * newcpu.h - CPU emulation * * Copyright (c) 2009 ARAnyM dev team (see AUTHORS) - * + * * Inspired by Christian Bauer's Basilisk II * * This file is part of the ARAnyM project which builds a new and powerful @@ -22,13 +22,13 @@ * along with ARAnyM; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - /* - * UAE - The Un*x Amiga Emulator - * - * MC68000 emulation - * - * Copyright 1995 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * MC68000 emulation + * + * Copyright 1995 Bernd Schmidt + */ #include "readcpu.h" #include "md-pandora/m68k.h" @@ -51,7 +51,8 @@ struct regstruct; typedef uae_u32 REGPARAM3 cpuop_func (uae_u32, struct regstruct ®s) REGPARAM; typedef void REGPARAM3 cpuop_func_ce (uae_u32, struct regstruct ®s) REGPARAM; -struct cputbl { +struct cputbl +{ cpuop_func *handler; uae_u16 opcode; }; @@ -59,10 +60,11 @@ struct cputbl { #ifdef JIT typedef uae_u32 REGPARAM3 compop_func (uae_u32) REGPARAM; -struct comptbl { - compop_func *handler; - uae_u32 specific; - uae_u32 opcode; +struct comptbl +{ + compop_func *handler; + uae_u32 specific; + uae_u32 opcode; }; #endif @@ -90,48 +92,48 @@ typedef double fptype; struct regstruct { - uae_u32 regs[16]; - struct flag_struct ccrflags; + uae_u32 regs[16]; + struct flag_struct ccrflags; - uae_u32 pc; - uae_u8 *pc_p; - uae_u8 *pc_oldp; - uae_u32 instruction_pc; - - uae_u16 irc, ir; - uae_u32 spcflags; + uae_u32 pc; + uae_u8 *pc_p; + uae_u8 *pc_oldp; + uae_u32 instruction_pc; - uaecptr usp, isp, msp; - uae_u16 sr; - flagtype t1; - flagtype t0; - flagtype s; - flagtype m; - flagtype x; - flagtype stopped; - int intmask; + uae_u16 irc, ir; + uae_u32 spcflags; - uae_u32 vbr,sfc,dfc; + uaecptr usp, isp, msp; + uae_u16 sr; + flagtype t1; + flagtype t0; + flagtype s; + flagtype m; + flagtype x; + flagtype stopped; + int intmask; + + uae_u32 vbr,sfc,dfc; #ifdef FPUEMU - fptype fp[8]; - fptype fp_result; + fptype fp[8]; + fptype fp_result; - uae_u32 fpcr,fpsr, fpiar; - uae_u32 fpsr_highbyte; + uae_u32 fpcr,fpsr, fpiar; + uae_u32 fpsr_highbyte; #endif #ifndef CPUEMU_68000_ONLY - uae_u32 cacr, caar; - uae_u32 itt0, itt1, dtt0, dtt1; - uae_u32 tcr, mmusr, urp, srp, buscr; + uae_u32 cacr, caar; + uae_u32 itt0, itt1, dtt0, dtt1; + uae_u32 tcr, mmusr, urp, srp, buscr; #endif - uae_u32 pcr; - uae_u32 address_space_mask; + uae_u32 pcr; + uae_u32 address_space_mask; - uae_u8 panic; - uae_u32 panic_pc, panic_addr; - signed long pissoff; + uae_u8 panic; + uae_u32 panic_pc, panic_addr; + signed long pissoff; }; extern unsigned long nextevent, is_syncline, currcycle; @@ -149,14 +151,14 @@ extern int cpu_cycles; #define set_special(x) _set_special(regs, x) STATIC_INLINE void _set_special (struct regstruct ®s, uae_u32 x) { - regs.spcflags |= x; - cycles_do_special(regs); + regs.spcflags |= x; + cycles_do_special(regs); } #define unset_special(x) _unset_special(regs, x) STATIC_INLINE void _unset_special (struct regstruct ®s, uae_u32 x) { - regs.spcflags &= ~x; + regs.spcflags &= ~x; } #define m68k_dreg(r,num) ((r).regs[(num)]) @@ -165,14 +167,14 @@ STATIC_INLINE void _unset_special (struct regstruct ®s, uae_u32 x) #define m68k_setpc(newpc) _m68k_setpc(regs, newpc) STATIC_INLINE void _m68k_setpc (struct regstruct ®s, uaecptr newpc) { - regs.pc_p = regs.pc_oldp = get_real_address (newpc); - regs.instruction_pc = regs.pc = newpc; + regs.pc_p = regs.pc_oldp = get_real_address (newpc); + regs.instruction_pc = regs.pc = newpc; } #define m68k_getpc() _m68k_getpc(regs) STATIC_INLINE uaecptr _m68k_getpc (struct regstruct ®s) { - return (uaecptr)(regs.pc + ((uae_u8*)regs.pc_p - (uae_u8*)regs.pc_oldp)); + return (uaecptr)(regs.pc + ((uae_u8*)regs.pc_p - (uae_u8*)regs.pc_oldp)); } #define M68K_GETPC _m68k_getpc(regs) @@ -181,16 +183,16 @@ STATIC_INLINE uaecptr _m68k_getpc (struct regstruct ®s) #define m68k_do_rts() _m68k_do_rts(regs) STATIC_INLINE void _m68k_do_rts (struct regstruct ®s) { - uae_u32 newpc = get_long (m68k_areg (regs, 7)); - m68k_setpc (newpc); - m68k_areg(regs, 7) += 4; + uae_u32 newpc = get_long (m68k_areg (regs, 7)); + m68k_setpc (newpc); + m68k_areg(regs, 7) += 4; } STATIC_INLINE void m68k_do_bsr (struct regstruct ®s, uaecptr oldpc, uae_s32 offset) { - m68k_areg(regs, 7) -= 4; - put_long(m68k_areg(regs, 7), oldpc); - m68k_incpc (offset); + m68k_areg(regs, 7) -= 4; + put_long(m68k_areg(regs, 7), oldpc); + m68k_incpc (offset); } #define get_ibyte(o) do_get_mem_byte((uae_u8 *)((regs).pc_p + (o) + 1)) @@ -203,15 +205,15 @@ STATIC_INLINE void m68k_do_bsr (struct regstruct ®s, uaecptr oldpc, uae_s32 o * need to handle prefetch. */ STATIC_INLINE uae_u32 next_iword (struct regstruct ®s) { - uae_u32 r = get_iword (0); - m68k_incpc (2); - return r; + uae_u32 r = get_iword (0); + m68k_incpc (2); + return r; } STATIC_INLINE uae_u32 next_ilong (struct regstruct ®s) { - uae_u32 r = get_ilong (0); - m68k_incpc (4); - return r; + uae_u32 r = get_ilong (0); + m68k_incpc (4); + return r; } #define x_get_word get_word @@ -253,17 +255,17 @@ extern void protect_roms (bool); STATIC_INLINE int bitset_count16(uae_u16 data) { - unsigned int const MASK1 = 0x5555; - unsigned int const MASK2 = 0x3333; - unsigned int const MASK4 = 0x0f0f; - unsigned int const MASK6 = 0x003f; + unsigned int const MASK1 = 0x5555; + unsigned int const MASK2 = 0x3333; + unsigned int const MASK4 = 0x0f0f; + unsigned int const MASK6 = 0x003f; - unsigned int const w = (data & MASK1) + ((data >> 1) & MASK1); - unsigned int const x = (w & MASK2) + ((w >> 2) & MASK2); - unsigned int const y = ((x + (x >> 4)) & MASK4); - unsigned int const z = (y + (y >> 8)) & MASK6; + unsigned int const w = (data & MASK1) + ((data >> 1) & MASK1); + unsigned int const x = (w & MASK2) + ((w >> 2) & MASK2); + unsigned int const y = ((x + (x >> 4)) & MASK4); + unsigned int const z = (y + (y >> 8)) & MASK6; - return z; + return z; } extern void mmu_op (uae_u32, struct regstruct ®s, uae_u32); diff --git a/src/include/options.h b/src/include/options.h index df939654..170948d9 100644 --- a/src/include/options.h +++ b/src/include/options.h @@ -16,9 +16,9 @@ extern long int version; struct strlist { - struct strlist *next; - TCHAR *option, *value; - int unknown; + struct strlist *next; + TCHAR *option, *value; + int unknown; }; #define DEFAULT_JIT_CACHE_SIZE 8192 @@ -39,14 +39,14 @@ struct strlist struct uae_input_device { - TCHAR *name; - TCHAR *configname; - uae_s16 eventid[MAX_INPUT_DEVICE_EVENTS][MAX_INPUT_SUB_EVENT_ALL]; - TCHAR *custom[MAX_INPUT_DEVICE_EVENTS][MAX_INPUT_SUB_EVENT_ALL]; - uae_u64 flags[MAX_INPUT_DEVICE_EVENTS][MAX_INPUT_SUB_EVENT_ALL]; - uae_s8 port[MAX_INPUT_DEVICE_EVENTS][MAX_INPUT_SUB_EVENT_ALL]; - uae_s16 extra[MAX_INPUT_DEVICE_EVENTS]; - uae_s8 enabled; + TCHAR *name; + TCHAR *configname; + uae_s16 eventid[MAX_INPUT_DEVICE_EVENTS][MAX_INPUT_SUB_EVENT_ALL]; + TCHAR *custom[MAX_INPUT_DEVICE_EVENTS][MAX_INPUT_SUB_EVENT_ALL]; + uae_u64 flags[MAX_INPUT_DEVICE_EVENTS][MAX_INPUT_SUB_EVENT_ALL]; + uae_s8 port[MAX_INPUT_DEVICE_EVENTS][MAX_INPUT_SUB_EVENT_ALL]; + uae_s16 extra[MAX_INPUT_DEVICE_EVENTS]; + uae_s8 enabled; }; #define MAX_JPORTS 4 @@ -54,11 +54,11 @@ struct uae_input_device #define MAX_JPORTNAME 128 struct jport { - int id; - int mode; // 0=def,1=mouse,2=joy,3=anajoy,4=lightpen - int autofire; - TCHAR name[MAX_JPORTNAME]; - TCHAR configname[MAX_JPORTNAME]; + int id; + int mode; // 0=def,1=mouse,2=joy,3=anajoy,4=lightpen + int autofire; + TCHAR name[MAX_JPORTNAME]; + TCHAR configname[MAX_JPORTNAME]; }; #define JPORT_NONE -1 #define JPORT_CUSTOM -2 @@ -76,162 +76,162 @@ struct jport struct cdslot { - TCHAR name[MAX_DPATH]; - bool inuse; - bool delayed; - int type; + TCHAR name[MAX_DPATH]; + bool inuse; + bool delayed; + int type; }; struct floppyslot { - TCHAR df[MAX_DPATH]; - int dfxtype; + TCHAR df[MAX_DPATH]; + int dfxtype; }; struct wh { - int x, y; - int width, height; + int x, y; + int width, height; }; #define MOUNT_CONFIG_SIZE 30 struct uaedev_config_info { - TCHAR devname[MAX_DPATH]; - TCHAR volname[MAX_DPATH]; - TCHAR rootdir[MAX_DPATH]; - bool ishdf; - bool readonly; - int bootpri; - bool autoboot; - bool donotmount; - TCHAR filesys[MAX_DPATH]; - int cyls; // zero if detected from size - int surfaces; - int sectors; - int reserved; - int blocksize; - int configoffset; - int controller; - // zero if default - int pcyls, pheads, psecs; + TCHAR devname[MAX_DPATH]; + TCHAR volname[MAX_DPATH]; + TCHAR rootdir[MAX_DPATH]; + bool ishdf; + bool readonly; + int bootpri; + bool autoboot; + bool donotmount; + TCHAR filesys[MAX_DPATH]; + int cyls; // zero if detected from size + int surfaces; + int sectors; + int reserved; + int blocksize; + int configoffset; + int controller; + // zero if default + int pcyls, pheads, psecs; }; struct uae_prefs { - struct strlist *all_lines; + struct strlist *all_lines; - TCHAR description[256]; - TCHAR info[256]; - int config_version; + TCHAR description[256]; + TCHAR info[256]; + int config_version; - bool socket_emu; + bool socket_emu; - bool start_gui; + bool start_gui; - int produce_sound; - int sound_stereo; - int sound_stereo_separation; - int sound_mixed_stereo_delay; - int sound_freq; - int sound_interpol; - int sound_filter; - int sound_filter_type; - int sound_volume_cd; + int produce_sound; + int sound_stereo; + int sound_stereo_separation; + int sound_mixed_stereo_delay; + int sound_freq; + int sound_interpol; + int sound_filter; + int sound_filter_type; + int sound_volume_cd; - int cachesize; - int optcount[10]; + int cachesize; + int optcount[10]; - int gfx_framerate; - struct wh gfx_size_win; - struct wh gfx_size_fs; - struct wh gfx_size; - int gfx_resolution; + int gfx_framerate; + struct wh gfx_size_win; + struct wh gfx_size_fs; + struct wh gfx_size; + int gfx_resolution; #ifdef RASPBERRY - int gfx_correct_aspect; - int gfx_fullscreen_ratio; - int kbd_led_num; - int kbd_led_scr; - int kbd_led_cap; + int gfx_correct_aspect; + int gfx_fullscreen_ratio; + int kbd_led_num; + int kbd_led_scr; + int kbd_led_cap; #endif - bool immediate_blits; - int waiting_blits; - unsigned int chipset_mask; - bool ntscmode; - int chipset_refreshrate; - int collision_level; - int leds_on_screen; - int fast_copper; - int floppy_speed; - int floppy_write_length; - bool tod_hack; - int filesys_limit; + bool immediate_blits; + int waiting_blits; + unsigned int chipset_mask; + bool ntscmode; + int chipset_refreshrate; + int collision_level; + int leds_on_screen; + int fast_copper; + int floppy_speed; + int floppy_write_length; + bool tod_hack; + int filesys_limit; - bool cs_cd32cd; - bool cs_cd32c2p; - bool cs_cd32nvram; + bool cs_cd32cd; + bool cs_cd32c2p; + bool cs_cd32nvram; - TCHAR romfile[MAX_DPATH]; - TCHAR romextfile[MAX_DPATH]; - TCHAR flashfile[MAX_DPATH]; - struct cdslot cdslots[MAX_TOTAL_SCSI_DEVICES]; + TCHAR romfile[MAX_DPATH]; + TCHAR romextfile[MAX_DPATH]; + TCHAR flashfile[MAX_DPATH]; + struct cdslot cdslots[MAX_TOTAL_SCSI_DEVICES]; - TCHAR path_floppy[256]; - TCHAR path_hardfile[256]; - TCHAR path_rom[256]; - TCHAR path_cd[256]; + TCHAR path_floppy[256]; + TCHAR path_hardfile[256]; + TCHAR path_rom[256]; + TCHAR path_cd[256]; - int m68k_speed; - int cpu_model; - int fpu_model; - bool cpu_compatible; - bool address_space_24; - int picasso96_modeflags; + int m68k_speed; + int cpu_model; + int fpu_model; + bool cpu_compatible; + bool address_space_24; + int picasso96_modeflags; - uae_u32 z3fastmem_size; - uae_u32 z3fastmem_start; - uae_u32 fastmem_size; - uae_u32 chipmem_size; - uae_u32 bogomem_size; - uae_u32 rtgmem_size; - int rtgmem_type; + uae_u32 z3fastmem_size; + uae_u32 z3fastmem_start; + uae_u32 fastmem_size; + uae_u32 chipmem_size; + uae_u32 bogomem_size; + uae_u32 rtgmem_size; + int rtgmem_type; - int mountitems; - struct uaedev_config_info mountconfig[MOUNT_CONFIG_SIZE]; + int mountitems; + struct uaedev_config_info mountconfig[MOUNT_CONFIG_SIZE]; - int nr_floppies; - struct floppyslot floppyslots[4]; + int nr_floppies; + struct floppyslot floppyslots[4]; - /* Target specific options */ - int pandora_horizontal_offset; - int pandora_vertical_offset; - int pandora_cpu_speed; - int pandora_hide_idle_led; + /* Target specific options */ + int pandora_horizontal_offset; + int pandora_vertical_offset; + int pandora_cpu_speed; + int pandora_hide_idle_led; - int pandora_tapDelay; - int pandora_customControls; + int pandora_tapDelay; + int pandora_customControls; - int key_for_menu; + int key_for_menu; - /* input */ + /* input */ - struct jport jports[MAX_JPORTS]; - int input_selected_setting; - int input_joymouse_multiplier; - int input_joymouse_deadzone; - int input_joystick_deadzone; - int input_joymouse_speed; - int input_analog_joystick_mult; - int input_analog_joystick_offset; - int input_autofire_linecnt; - int input_mouse_speed; - int input_tablet; - int input_keyboard_type; - struct uae_input_device joystick_settings[MAX_INPUT_SETTINGS][MAX_INPUT_DEVICES]; - struct uae_input_device mouse_settings[MAX_INPUT_SETTINGS][MAX_INPUT_DEVICES]; - struct uae_input_device keyboard_settings[MAX_INPUT_SETTINGS][MAX_INPUT_DEVICES]; - TCHAR input_config_name[GAMEPORT_INPUT_SETTINGS][256]; + struct jport jports[MAX_JPORTS]; + int input_selected_setting; + int input_joymouse_multiplier; + int input_joymouse_deadzone; + int input_joystick_deadzone; + int input_joymouse_speed; + int input_analog_joystick_mult; + int input_analog_joystick_offset; + int input_autofire_linecnt; + int input_mouse_speed; + int input_tablet; + int input_keyboard_type; + struct uae_input_device joystick_settings[MAX_INPUT_SETTINGS][MAX_INPUT_DEVICES]; + struct uae_input_device mouse_settings[MAX_INPUT_SETTINGS][MAX_INPUT_DEVICES]; + struct uae_input_device keyboard_settings[MAX_INPUT_SETTINGS][MAX_INPUT_DEVICES]; + TCHAR input_config_name[GAMEPORT_INPUT_SETTINGS][256]; }; /* Contains the filename of .uaerc */ @@ -251,23 +251,23 @@ extern void cfgfile_target_write_str(struct zfile *f, const TCHAR *option, const extern void cfgfile_target_dwrite_str(struct zfile *f, const TCHAR *option, const TCHAR *value); extern struct uaedev_config_info *add_filesys_config(struct uae_prefs *p, - int index, - const TCHAR *devname, - const TCHAR *volname, - const TCHAR *rootdir, - bool readonly, - int cyls, - int secspertrack, - int surfaces, - int reserved, - int blocksize, - int bootpri, - const TCHAR *filesysdir, - int hdc, - int flags, - int pcyls, - int pheads, - int psecs); + int index, + const TCHAR *devname, + const TCHAR *volname, + const TCHAR *rootdir, + bool readonly, + int cyls, + int secspertrack, + int surfaces, + int reserved, + int blocksize, + int bootpri, + const TCHAR *filesysdir, + int hdc, + int flags, + int pcyls, + int pheads, + int psecs); extern void default_prefs(struct uae_prefs *, int); extern void discard_prefs(struct uae_prefs *, int); diff --git a/src/include/osemu.h b/src/include/osemu.h index acd536b6..5621db1c 100644 --- a/src/include/osemu.h +++ b/src/include/osemu.h @@ -1,10 +1,10 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * OS emulation prototypes - * - * Copyright 1996 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * OS emulation prototypes + * + * Copyright 1996 Bernd Schmidt + */ STATIC_INLINE char *raddr(uaecptr p) { diff --git a/src/include/picasso96.h b/src/include/picasso96.h index 196134a2..e4a2913a 100644 --- a/src/include/picasso96.h +++ b/src/include/picasso96.h @@ -32,14 +32,15 @@ extern struct PicassoResolution *DisplayModes; typedef struct _RECT { - uae_s32 left; - uae_s32 top; - uae_s32 right; - uae_s32 bottom; + uae_s32 left; + uae_s32 top; + uae_s32 right; + uae_s32 bottom; } RECT; #define MAX_DISPLAYS 4 -struct MultiDisplay { +struct MultiDisplay +{ int primary, disabled, gdi; char *name; char *name2; @@ -58,67 +59,70 @@ extern void picasso_InitResolutions (void); /************************************************************************/ /* Types for BoardType Identification */ -typedef enum { - BT_NoBoard, - BT_oMniBus, - BT_Graffity, - BT_CyberVision, - BT_Domino, - BT_Merlin, - BT_PicassoII, - BT_Piccolo, - BT_RetinaBLT, - BT_Spectrum, - BT_PicassoIV, - BT_PiccoloSD64, - BT_A2410, - BT_Pixel64, - BT_uaegfx, - BT_CVision3D, - BT_Altais, - BT_Prototype1, - BT_Prototype2, - BT_Prototype3, - BT_Prototype4, - BT_Prototype5, - BT_MaxBoardTypes +typedef enum +{ + BT_NoBoard, + BT_oMniBus, + BT_Graffity, + BT_CyberVision, + BT_Domino, + BT_Merlin, + BT_PicassoII, + BT_Piccolo, + BT_RetinaBLT, + BT_Spectrum, + BT_PicassoIV, + BT_PiccoloSD64, + BT_A2410, + BT_Pixel64, + BT_uaegfx, + BT_CVision3D, + BT_Altais, + BT_Prototype1, + BT_Prototype2, + BT_Prototype3, + BT_Prototype4, + BT_Prototype5, + BT_MaxBoardTypes } BTYPE; /************************************************************************/ /* Types for PaletteChipType Identification */ -typedef enum { - PCT_Unknown, - PCT_S11483, // Sierra S11483: HiColor 15 bit, oMniBus, Domino - PCT_S15025, // Sierra S15025: TrueColor 32 bit, oMniBus - PCT_CirrusGD542x, // Cirrus GD542x internal: TrueColor 24 bit - PCT_Domino, // is in fact a Sierra S11483 - PCT_BT482, // BrookTree BT482: TrueColor 32 bit, Merlin - PCT_Music, // Music MU9C4910: TrueColor 24 bit, oMniBus - PCT_ICS5300, // ICS 5300: ...., Retina BLT Z3 - PCT_CirrusGD5446, // Cirrus GD5446 internal: TrueColor 24 bit - PCT_CirrusGD5434, // Cirrus GD5434 internal: TrueColor 32 bit - PCT_S3Trio64, // S3 Trio64 internal: TrueColor 32 bit - PCT_A2410_xxx, // A2410 DAC, *type unknown* - PCT_S3ViRGE, // S3 ViRGE internal: TrueColor 32 bit - PCT_MaxPaletteChipTypes +typedef enum +{ + PCT_Unknown, + PCT_S11483, // Sierra S11483: HiColor 15 bit, oMniBus, Domino + PCT_S15025, // Sierra S15025: TrueColor 32 bit, oMniBus + PCT_CirrusGD542x, // Cirrus GD542x internal: TrueColor 24 bit + PCT_Domino, // is in fact a Sierra S11483 + PCT_BT482, // BrookTree BT482: TrueColor 32 bit, Merlin + PCT_Music, // Music MU9C4910: TrueColor 24 bit, oMniBus + PCT_ICS5300, // ICS 5300: ...., Retina BLT Z3 + PCT_CirrusGD5446, // Cirrus GD5446 internal: TrueColor 24 bit + PCT_CirrusGD5434, // Cirrus GD5434 internal: TrueColor 32 bit + PCT_S3Trio64, // S3 Trio64 internal: TrueColor 32 bit + PCT_A2410_xxx, // A2410 DAC, *type unknown* + PCT_S3ViRGE, // S3 ViRGE internal: TrueColor 32 bit + PCT_MaxPaletteChipTypes } PCTYPE; /************************************************************************/ /* Types for GraphicsControllerType Identification */ -typedef enum { - GCT_Unknown, - GCT_ET4000, - GCT_ETW32, - GCT_CirrusGD542x, - GCT_NCR77C32BLT, - GCT_CirrusGD5446, - GCT_CirrusGD5434, - GCT_S3Trio64, - GCT_TI34010, - GCT_S3ViRGE, - GCT_MaxGraphicsControllerTypes +typedef enum +{ + GCT_Unknown, + GCT_ET4000, + GCT_ETW32, + GCT_CirrusGD542x, + GCT_NCR77C32BLT, + GCT_CirrusGD5446, + GCT_CirrusGD5434, + GCT_S3Trio64, + GCT_TI34010, + GCT_S3ViRGE, + GCT_MaxGraphicsControllerTypes } GCTYPE; #define JAM1 0 @@ -128,7 +132,8 @@ typedef enum { /************************************************************************/ -enum { +enum +{ PLANAR, CHUNKY, HICOLOR, @@ -138,19 +143,22 @@ enum { }; /************************************************************************/ -struct MyCLUTEntry { +struct MyCLUTEntry +{ uae_u8 Red; uae_u8 Green; uae_u8 Blue; uae_u8 Pad; }; -struct ColorIndexMapping { +struct ColorIndexMapping +{ uae_u32 ColorMask; uae_u32 Colors[256]; }; -struct CLUTEntry { +struct CLUTEntry +{ uae_u8 Red; uae_u8 Green; uae_u8 Blue; @@ -179,7 +187,8 @@ struct BitMap #define SETTINGSNAMEMAXCHARS 30 #define BOARDNAMEMAXCHARS 30 -struct Settings { +struct Settings +{ uae_u32 BoardType; /* a value discribing assignment to nth board local to boardtype * to be used for reassignment when boards are added or removed. */ @@ -206,7 +215,8 @@ struct Settings { #define PSSO_LibResolution_BoardInfo (52 + MAXMODES*4) #define PSSO_LibResolution_sizeof (60 + MAXMODES*4) -struct LibResolution { +struct LibResolution +{ char P96ID[6]; char Name[MAXRESOLUTIONNAMELENGTH]; uae_u32 DisplayID; @@ -252,7 +262,8 @@ struct LibResolution { #define PSSO_RenderInfo_RGBFormat 8 #define PSSO_RenderInfo_sizeof 12 -struct RenderInfo { +struct RenderInfo +{ uae_u8 *Memory; uae_s16 BytesPerRow; uae_s16 pad; @@ -268,7 +279,8 @@ struct RenderInfo { #define PSSO_Pattern_Size 16 #define PSSO_Pattern_DrawMode 17 #define PSSO_Pattern_sizeof 18 -struct Pattern { +struct Pattern +{ uae_u8 *Memory; uae_u16 XOffset, YOffset; uae_u32 FgPen, BgPen; @@ -284,7 +296,8 @@ struct Pattern { #define PSSO_Template_BgPen 12 #define PSSO_Template_sizeof 16 -struct Template { +struct Template +{ uae_u8 *Memory; uae_s16 BytesPerRow; uae_u8 XOffset; @@ -311,18 +324,19 @@ struct Template { #define PSSO_Line_Xorigin 32 #define PSSO_Line_Yorigin 34 -struct Line { - uae_u16 X, Y; - uae_u16 Length; - uae_s16 dX, dY; - uae_s16 sDelta, lDelta, twoSDminusLD; - uae_u16 LinePtrn; - uae_u16 PatternShift; - uae_u32 FgPen, BgPen; - uae_u16 Horizontal; - uae_u8 DrawMode; - uae_s8 pad; - uae_u16 Xorigin, Yorigin; +struct Line +{ + uae_u16 X, Y; + uae_u16 Length; + uae_s16 dX, dY; + uae_s16 sDelta, lDelta, twoSDminusLD; + uae_u16 LinePtrn; + uae_u16 PatternShift; + uae_u32 FgPen, BgPen; + uae_u16 Horizontal; + uae_u8 DrawMode; + uae_s8 pad; + uae_u16 Xorigin, Yorigin; }; #define PSSO_BitMapExtra_BoardNode 0 @@ -600,7 +614,8 @@ extern int picasso_palette (void); /* This structure describes the UAE-side framebuffer for the Picasso * screen. */ -struct picasso_vidbuf_description { +struct picasso_vidbuf_description +{ int width, height, depth; int rowbytes, pixbytes; int extra_mem; /* nonzero if there's a second buffer that must be updated */ @@ -639,13 +654,13 @@ extern int p96hsync_counter; #define CARD_SIZEOF CARD_END #ifdef __cplusplus - extern "C" { +extern "C" { #endif - void copy_screen_8bit(uae_u8 *dst, uae_u8 *src, int bytes, uae_u32 *clut); - void copy_screen_16bit_swap(uae_u8 *dst, uae_u8 *src, int bytes); - void copy_screen_32bit_to_16bit_neon(uae_u8 *dst, uae_u8 *src, int bytes); +void copy_screen_8bit(uae_u8 *dst, uae_u8 *src, int bytes, uae_u32 *clut); +void copy_screen_16bit_swap(uae_u8 *dst, uae_u8 *src, int bytes); +void copy_screen_32bit_to_16bit_neon(uae_u8 *dst, uae_u8 *src, int bytes); #ifdef __cplusplus - } +} #endif #endif diff --git a/src/include/readcpu.h b/src/include/readcpu.h index 8f37e4ac..fcd26501 100644 --- a/src/include/readcpu.h +++ b/src/include/readcpu.h @@ -1,9 +1,11 @@ -ENUMDECL { - Dreg, Areg, Aind, Aipi, Apdi, Ad16, Ad8r, - absw, absl, PC16, PC8r, imm, imm0, imm1, imm2, immi, am_unknown, am_illg +ENUMDECL +{ + Dreg, Areg, Aind, Aipi, Apdi, Ad16, Ad8r, + absw, absl, PC16, PC8r, imm, imm0, imm1, imm2, immi, am_unknown, am_illg } ENUMNAME (amodes); -ENUMDECL { +ENUMDECL +{ i_ILLG, i_OR, i_AND, i_EOR, i_ORSR, i_ANDSR, i_EORSR, @@ -33,7 +35,8 @@ ENUMDECL { i_LPSTOP } ENUMNAME (instrmnem); -struct mnemolookup { +struct mnemolookup +{ instrmnem mnemo; const TCHAR *name; const TCHAR *friendlyname; @@ -41,20 +44,24 @@ struct mnemolookup { extern struct mnemolookup lookuptab[]; -ENUMDECL { +ENUMDECL +{ sz_byte, sz_word, sz_long } ENUMNAME (wordsizes); -ENUMDECL { +ENUMDECL +{ fa_set, fa_unset, fa_zero, fa_one, fa_dontcare, fa_unknown, fa_isjmp, fa_isbranch } ENUMNAME (flagaffect); -ENUMDECL { +ENUMDECL +{ fu_used, fu_unused, fu_maybecc, fu_unknown, fu_isjmp } ENUMNAME (flaguse); -ENUMDECL { +ENUMDECL +{ fl_normal = 0, fl_branch = 1, fl_jump = 2, @@ -65,22 +72,25 @@ ENUMDECL { fl_end_block = 3 } ENUMNAME (cflow_t); -ENUMDECL { +ENUMDECL +{ bit0, bit1, bitc, bitC, bitf, biti, bitI, bitj, bitJ, bitk, bitK, bits, bitS, bitd, bitD, bitr, bitR, bitz, bitE, bitp, lastbit } ENUMNAME (bitvals); -struct instr_def { +struct instr_def +{ unsigned int bits; int n_variable; uae_u8 bitpos[16]; unsigned int mask; int cpulevel; - int unimpcpulevel; + int unimpcpulevel; int plevel; - struct { - unsigned int flaguse:3; - unsigned int flagset:3; + struct + { + unsigned int flaguse:3; + unsigned int flagset:3; } flaginfo[5]; unsigned char cflow; uae_u8 sduse; @@ -90,7 +100,8 @@ struct instr_def { extern struct instr_def defs68k[]; extern int n_defs68k; -extern struct instr { +extern struct instr +{ long int handler; unsigned char dreg; unsigned char sreg; diff --git a/src/include/rommgr.h b/src/include/rommgr.h index 907aea6b..25bc7210 100644 --- a/src/include/rommgr.h +++ b/src/include/rommgr.h @@ -28,32 +28,35 @@ extern int decode_cloanto_rom_do (uae_u8 *mem, int size, int real_size); #define ROMTYPE_ALL_EXT (ROMTYPE_EXTCD32 | ROMTYPE_EXTCDTV) #define ROMTYPE_ALL_CART (ROMTYPE_AR | ROMTYPE_HRTMON | ROMTYPE_NORDIC | ROMTYPE_XPOWER | ROMTYPE_CD32CART) -struct romheader { - TCHAR *name; - int id; +struct romheader +{ + TCHAR *name; + int id; }; -struct romdata { - TCHAR *name; - int ver, rev; - int subver, subrev; - TCHAR *model; - uae_u32 size; - int id; - int cpu; - int cloanto; - int type; - int group; - int title; - TCHAR *partnumber; - uae_u32 crc32; - uae_u32 sha1[5]; - TCHAR *configname; +struct romdata +{ + TCHAR *name; + int ver, rev; + int subver, subrev; + TCHAR *model; + uae_u32 size; + int id; + int cpu; + int cloanto; + int type; + int group; + int title; + TCHAR *partnumber; + uae_u32 crc32; + uae_u32 sha1[5]; + TCHAR *configname; }; -struct romlist { - TCHAR *path; - struct romdata *rd; +struct romlist +{ + TCHAR *path; + struct romdata *rd; }; extern struct romdata *getromdatabypath (const TCHAR *path); diff --git a/src/include/rtgmodes.h b/src/include/rtgmodes.h index 43e14700..c75e4299 100644 --- a/src/include/rtgmodes.h +++ b/src/include/rtgmodes.h @@ -1,5 +1,6 @@ /* Types for RGBFormat used */ -typedef enum { +typedef enum +{ RGBFB_NONE, /* no valid RGB format (should not happen) */ RGBFB_CLUT, /* palette mode, set colors when opening screen using tags or use SetRGB32/LoadRGB32(...) */ diff --git a/src/include/savestate.h b/src/include/savestate.h index d500d802..175354c6 100644 --- a/src/include/savestate.h +++ b/src/include/savestate.h @@ -1,10 +1,10 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Save/restore emulator state - * - * (c) 1999-2001 Toni Wilen - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Save/restore emulator state + * + * (c) 1999-2001 Toni Wilen + */ /* functions to save byte,word or long word @@ -164,5 +164,5 @@ extern struct zfile *savestate_file; STATIC_INLINE bool isrestore (void) { - return savestate_state == STATE_RESTORE; + return savestate_state == STATE_RESTORE; } diff --git a/src/include/scsidev.h b/src/include/scsidev.h index fdbe4bd1..fd51aaf6 100644 --- a/src/include/scsidev.h +++ b/src/include/scsidev.h @@ -1,12 +1,12 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * a SCSI device - * - * (c) 1995 Bernd Schmidt (hardfile.c) - * (c) 1999 Patrick Ohly - * (c) 2001-2005 Toni Wilen - */ +/* + * UAE - The Un*x Amiga Emulator + * + * a SCSI device + * + * (c) 1995 Bernd Schmidt (hardfile.c) + * (c) 1999 Patrick Ohly + * (c) 2001-2005 Toni Wilen + */ uaecptr scsidev_startup (uaecptr resaddr); void scsidev_install (void); @@ -24,4 +24,4 @@ extern int log_scsi; #define UAESCSI_SPTI 1 #define UAESCSI_SPTISCAN 2 #define UAESCSI_LAST 2 -#endif \ No newline at end of file +#endif diff --git a/src/include/sysdeps.h b/src/include/sysdeps.h index 9946f1ea..0f2fd3bf 100644 --- a/src/include/sysdeps.h +++ b/src/include/sysdeps.h @@ -112,8 +112,8 @@ using namespace std; #define S_ISDIR(val) (S_IFDIR & val) struct utimbuf { - time_t actime; - time_t modtime; + time_t actime; + time_t modtime; }; #endif @@ -141,8 +141,8 @@ struct utimbuf #define utime(file,time) 0 struct utimbuf { - time_t actime; - time_t modtime; + time_t actime; + time_t modtime; }; #endif @@ -173,7 +173,7 @@ typedef char uae_char; typedef struct { - uae_u8 RGB[3]; + uae_u8 RGB[3]; } RGB; #if SIZEOF_SHORT == 2 @@ -443,19 +443,19 @@ extern void gui_message(const TCHAR *, ...); STATIC_INLINE uae_u32 do_byteswap_32(uae_u32 v) { - __asm__( - "rev %0, %0" - : "=r" (v) : "0" (v)); - return v; + __asm__( + "rev %0, %0" + : "=r" (v) : "0" (v)); + return v; } STATIC_INLINE uae_u32 do_byteswap_16(uae_u32 v) { - __asm__( - "revsh %0, %0\n\t" - "uxth %0, %0" - : "=r" (v) : "0" (v)); - return v; + __asm__( + "revsh %0, %0\n\t" + "uxth %0, %0" + : "=r" (v) : "0" (v)); + return v; } #endif diff --git a/src/include/traps.h b/src/include/traps.h index a0c7a99f..06e6f027 100644 --- a/src/include/traps.h +++ b/src/include/traps.h @@ -1,14 +1,14 @@ - /* - * E-UAE - The portable Amiga Emulator - * - * Support for traps - * - * Copyright Richard Drummond 2005 - * - * Based on code: - * Copyright 1995, 1996 Bernd Schmidt - * Copyright 1996 Ed Hanway - */ +/* + * E-UAE - The portable Amiga Emulator + * + * Support for traps + * + * Copyright Richard Drummond 2005 + * + * Based on code: + * Copyright 1995, 1996 Bernd Schmidt + * Copyright 1996 Ed Hanway + */ #ifndef TRAPS_H #define TRAPS_H diff --git a/src/include/uae.h b/src/include/uae.h index bc289de1..09b3f0e0 100644 --- a/src/include/uae.h +++ b/src/include/uae.h @@ -1,10 +1,10 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Prototypes for main.c - * - * Copyright 1996 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Prototypes for main.c + * + * Copyright 1996 Bernd Schmidt + */ #ifndef UAE_UAE_H #define UAE_UAE_H @@ -52,7 +52,8 @@ extern TCHAR start_path_data[256]; * -1: line that is selectable, but has no keyboard shortcut * 0: Menu title */ -struct bstring { +struct bstring +{ const TCHAR *data; int val; }; diff --git a/src/include/xwin.h b/src/include/xwin.h index dd5f195d..d80f579f 100644 --- a/src/include/xwin.h +++ b/src/include/xwin.h @@ -1,10 +1,10 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Interface to the graphics system (X, SVGAlib) - * - * Copyright 1995-1997 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Interface to the graphics system (X, SVGAlib) + * + * Copyright 1995-1997 Bernd Schmidt + */ #include "md-pandora/rpt.h" @@ -23,16 +23,16 @@ extern void setup_brkhandler (void); extern bool vsync_switchmode (int); STATIC_INLINE int isvsync_chipset (void) { - if (picasso_on) - return 0; - return 1; + if (picasso_on) + return 0; + return 1; } STATIC_INLINE int isvsync_rtg (void) { - if (!picasso_on) - return 0; - return 1; + if (!picasso_on) + return 0; + return 1; } extern void flush_screen (void); @@ -52,11 +52,11 @@ extern void alloc_colors_picasso (int rw, int gw, int bw, int rs, int gs, int bs struct vidbuf_description { - uae_u8 *bufmem; - int rowbytes; /* Bytes per row in the memory pointed at by bufmem. */ - int pixbytes; /* Bytes per pixel. */ - int outwidth; - int outheight; + uae_u8 *bufmem; + int rowbytes; /* Bytes per row in the memory pointed at by bufmem. */ + int pixbytes; /* Bytes per pixel. */ + int outwidth; + int outheight; }; extern struct vidbuf_description gfxvidinfo; diff --git a/src/include/zarchive.h b/src/include/zarchive.h index c4458a8a..52821708 100644 --- a/src/include/zarchive.h +++ b/src/include/zarchive.h @@ -3,18 +3,19 @@ typedef uae_s64 (*ZFILEREAD)(void*, uae_u64, uae_u64, struct zfile*); typedef uae_s64 (*ZFILEWRITE)(const void*, uae_u64, uae_u64, struct zfile*); typedef uae_s64 (*ZFILESEEK)(struct zfile*, uae_s64, int); -struct zfile { +struct zfile +{ TCHAR *name; TCHAR *zipname; TCHAR *mode; FILE *f; // real file handle if physical file uae_u8 *data; // unpacked data int dataseek; // use seek position even if real file - struct zfile *archiveparent; // set if parent is archive and this has not yet been unpacked (datasize < size) - int archiveid; + struct zfile *archiveparent; // set if parent is archive and this has not yet been unpacked (datasize < size) + int archiveid; uae_s64 size; // real size - uae_s64 datasize; // available size (not yet unpacked completely?) - uae_s64 allocsize; // memory allocated before realloc() needed again + uae_s64 datasize; // available size (not yet unpacked completely?) + uae_s64 allocsize; // memory allocated before realloc() needed again uae_s64 seek; // seek position int deleteafterclose; int textmode; @@ -33,7 +34,8 @@ struct zfile { #define ZNODE_FILE 0 #define ZNODE_DIR 1 #define ZNODE_VDIR -1 -struct znode { +struct znode +{ int type; struct znode *sibling; struct znode *child; @@ -81,7 +83,7 @@ struct zarchive_info uae_s64 size; int flags; TCHAR *comment; - struct mytimeval tv; + struct mytimeval tv; }; #define ArchiveFormat7Zip '7z ' diff --git a/src/include/zfile.h b/src/include/zfile.h index e2880329..c1c477d5 100644 --- a/src/include/zfile.h +++ b/src/include/zfile.h @@ -1,10 +1,10 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * routines to handle compressed file automatically - * - * (c) 1996 Samuel Devulder - */ +/* + * UAE - The Un*x Amiga Emulator + * + * routines to handle compressed file automatically + * + * (c) 1996 Samuel Devulder + */ struct zfile; struct zvolume; struct zdirectory; @@ -15,19 +15,21 @@ struct zdirectory; struct fs_dirhandle { - int fstype; - union { - struct zdirectory *zd; - struct my_opendir_s *od; - }; + int fstype; + union + { + struct zdirectory *zd; + struct my_opendir_s *od; + }; }; struct fs_filehandle { - int fstype; - union { - struct zfile *zf; - struct my_openfile_s *of; - }; + int fstype; + union + { + struct zfile *zf; + struct my_openfile_s *of; + }; }; typedef int (*zfile_callback)(struct zfile*, void*); @@ -131,15 +133,15 @@ extern bool zfile_needwrite (struct zfile*); struct mytimeval { - uae_s64 tv_sec; - uae_s32 tv_usec; + uae_s64 tv_sec; + uae_s32 tv_usec; }; struct mystat { - uae_s64 size; - uae_u32 mode; - struct mytimeval mtime; + uae_s64 size; + uae_u32 mode; + struct mytimeval mtime; }; extern void timeval_to_amiga (struct mytimeval *tv, int* days, int* mins, int* ticks); -extern void amiga_to_timeval (struct mytimeval *tv, int days, int mins, int ticks); \ No newline at end of file +extern void amiga_to_timeval (struct mytimeval *tv, int days, int mins, int ticks); diff --git a/src/inputdevice.cpp b/src/inputdevice.cpp index 2ac68ebc..75dd46cc 100644 --- a/src/inputdevice.cpp +++ b/src/inputdevice.cpp @@ -1,4 +1,4 @@ - /* +/* * UAE - The Un*x Amiga Emulator * * joystick/mouse emulation @@ -20,7 +20,7 @@ #include "sysdeps.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "keyboard.h" #include "inputdevice.h" #include "keybuf.h" @@ -70,10 +70,11 @@ #define AM_KK (AM_KEY|AM_JOY_BUT|AM_MOUSE_BUT) #define DEFEVENT(A, B, C, D, E, F) {_T(#A), B, C, D, E, F }, -static struct inputevent events[] = { - {0, 0, AM_K,0,0,0}, +static struct inputevent events[] = +{ + {0, 0, AM_K,0,0,0}, #include "inputevents.def" - {0, 0, 0, 0, 0, 0} + {0, 0, 0, 0, 0, 0} }; #undef DEFEVENT @@ -82,9 +83,10 @@ static int sublevdir[2][MAX_INPUT_SUB_EVENT]; static const int slotorder1[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; static const int slotorder2[] = { 8, 1, 2, 3, 4, 5, 6, 7 }; -struct uae_input_device2 { - uae_u32 buttonmask; - int states[MAX_INPUT_DEVICE_EVENTS / 2]; +struct uae_input_device2 +{ + uae_u32 buttonmask; + int states[MAX_INPUT_DEVICE_EVENTS / 2]; }; static struct uae_input_device2 joysticks2[MAX_INPUT_DEVICES]; @@ -108,31 +110,35 @@ static struct inputdevice_functions idev[IDTYPE_MAX]; static int isdevice (struct uae_input_device *id) { - int i, j; - for (i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) { - for (j = 0; j < MAX_INPUT_SUB_EVENT; j++) { - if (id->eventid[i][j] > 0) - return 1; - } - } - return 0; + int i, j; + for (i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) + { + for (j = 0; j < MAX_INPUT_SUB_EVENT; j++) + { + if (id->eventid[i][j] > 0) + return 1; + } + } + return 0; } int inputdevice_uaelib (const TCHAR *s, const TCHAR *parm) { - int i; + int i; - for (i = 1; events[i].name; i++) { - if (!_tcscmp (s, events[i].confname)) { + for (i = 1; events[i].name; i++) + { + if (!_tcscmp (s, events[i].confname)) + { #ifdef INPUTDEVICE_SIMPLE - handle_input_event (i, _tstol (parm), 1, 0); + handle_input_event (i, _tstol (parm), 1, 0); #else - handle_input_event (i, _tstol (parm), 1, 0, false, false); + handle_input_event (i, _tstol (parm), 1, 0, false, false); #endif - return 1; - } - } - return 0; + return 1; + } + } + return 0; } static struct uae_input_device *joysticks; @@ -206,818 +212,932 @@ static int use_keyboards[MAX_INPUT_DEVICES]; #else #define INPUT_QUEUE_SIZE 16 #endif -struct input_queue_struct { - int evt, storedstate, state, max, linecnt, nextlinecnt; +struct input_queue_struct +{ + int evt, storedstate, state, max, linecnt, nextlinecnt; }; static struct input_queue_struct input_queue[INPUT_QUEUE_SIZE]; uae_u8 *restore_input (uae_u8 *src) { - restore_u32 (); - for (int i = 0; i < 2; i++) { - for (int j = 0; j < 2; j++) { + restore_u32 (); + for (int i = 0; i < 2; i++) + { + for (int j = 0; j < 2; j++) + { #ifndef INPUTDEVICE_SIMPLE - pot_cap[i][j] = restore_u16 (); + pot_cap[i][j] = restore_u16 (); #else - restore_u16(); + restore_u16(); #endif - } - } - return src; + } + } + return src; } uae_u8 *save_input (int *len, uae_u8 *dstptr) { - uae_u8 *dstbak, *dst; + uae_u8 *dstbak, *dst; - if (dstptr) - dstbak = dst = dstptr; - else - dstbak = dst = xmalloc (uae_u8, 1000); - save_u32 (0); - for (int i = 0; i < 2; i++) { - for (int j = 0; j < 2; j++) { + if (dstptr) + dstbak = dst = dstptr; + else + dstbak = dst = xmalloc (uae_u8, 1000); + save_u32 (0); + for (int i = 0; i < 2; i++) + { + for (int j = 0; j < 2; j++) + { #ifndef INPUTDEVICE_SIMPLE - save_u16 (pot_cap[i][j]); + save_u16 (pot_cap[i][j]); #else - save_u16(0); + save_u16(0); #endif - } - } - *len = dst - dstbak; - return dstbak; + } + } + *len = dst - dstbak; + return dstbak; } static void freejport (struct uae_prefs *dst, int num) { - memset (&dst->jports[num], 0, sizeof (struct jport)); - dst->jports[num].id = -1; + memset (&dst->jports[num], 0, sizeof (struct jport)); + dst->jports[num].id = -1; } static void copyjport (const struct uae_prefs *src, struct uae_prefs *dst, int num) { - if (!src) - return; - freejport (dst, num); - _tcscpy (dst->jports[num].configname, src->jports[num].configname); - _tcscpy (dst->jports[num].name, src->jports[num].name); - dst->jports[num].id = src->jports[num].id; - dst->jports[num].mode = src->jports[num].mode; - dst->jports[num].autofire = src->jports[num].autofire; + if (!src) + return; + freejport (dst, num); + _tcscpy (dst->jports[num].configname, src->jports[num].configname); + _tcscpy (dst->jports[num].name, src->jports[num].name); + dst->jports[num].id = src->jports[num].id; + dst->jports[num].mode = src->jports[num].mode; + dst->jports[num].autofire = src->jports[num].autofire; } static bool write_config_head (struct zfile *f, int idnum, int devnum, TCHAR *name, struct uae_input_device *id, struct inputdevice_functions *idf) { - TCHAR tmp2[CONFIG_BLEN]; + TCHAR tmp2[CONFIG_BLEN]; - if (idnum == GAMEPORT_INPUT_SETTINGS) { - if (!isdevice (id)) - return false; - if (!id->enabled) - return false; - } + if (idnum == GAMEPORT_INPUT_SETTINGS) + { + if (!isdevice (id)) + return false; + if (!id->enabled) + return false; + } - TCHAR *s = NULL; - if (id->name) - s = id->name; - else if (devnum < idf->get_num ()) - s = idf->get_friendlyname (devnum); - if (s) { - _stprintf (tmp2, _T("input.%d.%s.%d.friendlyname"), idnum + 1, name, devnum); - cfgfile_write_str (f, tmp2, s); - } + TCHAR *s = NULL; + if (id->name) + s = id->name; + else if (devnum < idf->get_num ()) + s = idf->get_friendlyname (devnum); + if (s) + { + _stprintf (tmp2, _T("input.%d.%s.%d.friendlyname"), idnum + 1, name, devnum); + cfgfile_write_str (f, tmp2, s); + } - s = NULL; - if (id->configname) - s = id->configname; - else if (devnum < idf->get_num ()) - s = idf->get_uniquename (devnum); - if (s) { - _stprintf (tmp2, _T("input.%d.%s.%d.name"), idnum + 1, name, devnum); - cfgfile_write_str (f, tmp2, s); - } + s = NULL; + if (id->configname) + s = id->configname; + else if (devnum < idf->get_num ()) + s = idf->get_uniquename (devnum); + if (s) + { + _stprintf (tmp2, _T("input.%d.%s.%d.name"), idnum + 1, name, devnum); + cfgfile_write_str (f, tmp2, s); + } - if (!isdevice (id)) { - _stprintf (tmp2, _T("input.%d.%s.%d.empty"), idnum + 1, name, devnum); - cfgfile_write_bool (f, tmp2, true); - if (id->enabled) { - _stprintf (tmp2, _T("input.%d.%s.%d.disabled"), idnum + 1, name, devnum); - cfgfile_write (f, tmp2, _T("%d"), id->enabled ? 0 : 1); - } - return false; - } + if (!isdevice (id)) + { + _stprintf (tmp2, _T("input.%d.%s.%d.empty"), idnum + 1, name, devnum); + cfgfile_write_bool (f, tmp2, true); + if (id->enabled) + { + _stprintf (tmp2, _T("input.%d.%s.%d.disabled"), idnum + 1, name, devnum); + cfgfile_write (f, tmp2, _T("%d"), id->enabled ? 0 : 1); + } + return false; + } - if (idnum == GAMEPORT_INPUT_SETTINGS) { - _stprintf (tmp2, _T("input.%d.%s.%d.custom"), idnum + 1, name, devnum); - cfgfile_write_bool (f, tmp2, true); - } else { - _stprintf (tmp2, _T("input.%d.%s.%d.empty"), idnum + 1, name, devnum); - cfgfile_write_bool (f, tmp2, false); - _stprintf (tmp2, _T("input.%d.%s.%d.disabled"), idnum + 1, name, devnum); - cfgfile_write_bool (f, tmp2, id->enabled ? false : true); - } - return true; + if (idnum == GAMEPORT_INPUT_SETTINGS) + { + _stprintf (tmp2, _T("input.%d.%s.%d.custom"), idnum + 1, name, devnum); + cfgfile_write_bool (f, tmp2, true); + } + else + { + _stprintf (tmp2, _T("input.%d.%s.%d.empty"), idnum + 1, name, devnum); + cfgfile_write_bool (f, tmp2, false); + _stprintf (tmp2, _T("input.%d.%s.%d.disabled"), idnum + 1, name, devnum); + cfgfile_write_bool (f, tmp2, id->enabled ? false : true); + } + return true; } static bool write_slot (TCHAR *p, struct uae_input_device *uid, int i, int j) { - bool ok = false; - if (i < 0 || j < 0) { - _tcscpy (p, _T("NULL")); - return false; - } - uae_u64 flags = uid->flags[i][j]; - if (uid->custom[i][j] && _tcslen (uid->custom[i][j]) > 0) { - _stprintf (p, _T("'%s'.%d"), uid->custom[i][j], flags & ID_FLAG_SAVE_MASK_CONFIG); - ok = true; - } else if (uid->eventid[i][j] > 0) { - _stprintf (p, _T("%s.%d"), events[uid->eventid[i][j]].confname, flags & ID_FLAG_SAVE_MASK_CONFIG); - ok = true; - } else { - _tcscpy (p, _T("NULL")); - } - if (ok && (flags & ID_FLAG_SAVE_MASK_QUALIFIERS)) { - TCHAR *p2 = p + _tcslen (p); - *p2++ = '.'; - for (int i = 0; i < MAX_INPUT_QUALIFIERS * 2; i++) { - if ((ID_FLAG_QUALIFIER1 << i) & flags) { - if (i & 1) - _stprintf (p2, _T("%c"), 'a' + i / 2); - else - _stprintf (p2, _T("%c"), 'A' + i / 2); - p2++; - } - } - } - return ok; + bool ok = false; + if (i < 0 || j < 0) + { + _tcscpy (p, _T("NULL")); + return false; + } + uae_u64 flags = uid->flags[i][j]; + if (uid->custom[i][j] && _tcslen (uid->custom[i][j]) > 0) + { + _stprintf (p, _T("'%s'.%d"), uid->custom[i][j], flags & ID_FLAG_SAVE_MASK_CONFIG); + ok = true; + } + else if (uid->eventid[i][j] > 0) + { + _stprintf (p, _T("%s.%d"), events[uid->eventid[i][j]].confname, flags & ID_FLAG_SAVE_MASK_CONFIG); + ok = true; + } + else + { + _tcscpy (p, _T("NULL")); + } + if (ok && (flags & ID_FLAG_SAVE_MASK_QUALIFIERS)) + { + TCHAR *p2 = p + _tcslen (p); + *p2++ = '.'; + for (int i = 0; i < MAX_INPUT_QUALIFIERS * 2; i++) + { + if ((ID_FLAG_QUALIFIER1 << i) & flags) + { + if (i & 1) + _stprintf (p2, _T("%c"), 'a' + i / 2); + else + _stprintf (p2, _T("%c"), 'A' + i / 2); + p2++; + } + } + } + return ok; } static void kbrlabel (TCHAR *s) { - while (*s) { - *s = _totupper (*s); - if (*s == ' ') - *s = '_'; - s++; - } + while (*s) + { + *s = _totupper (*s); + if (*s == ' ') + *s = '_'; + s++; + } } static void write_config2 (struct zfile *f, int idnum, int i, int offset, const TCHAR *extra, struct uae_input_device *id) { - TCHAR tmp2[CONFIG_BLEN], tmp3[CONFIG_BLEN], *p; - int evt, got, j, k; - TCHAR *custom; - const int *slotorder; - int io = i + offset; + TCHAR tmp2[CONFIG_BLEN], tmp3[CONFIG_BLEN], *p; + int evt, got, j, k; + TCHAR *custom; + const int *slotorder; + int io = i + offset; - tmp2[0] = 0; - p = tmp2; - got = 0; + tmp2[0] = 0; + p = tmp2; + got = 0; - slotorder = slotorder1; - // if gameports non-custom mapping in slot0 -> save slot8 as slot0 - if (id->port[io][0] && !(id->flags[io][0] & ID_FLAG_GAMEPORTSCUSTOM_MASK)) - slotorder = slotorder2; + slotorder = slotorder1; + // if gameports non-custom mapping in slot0 -> save slot8 as slot0 + if (id->port[io][0] && !(id->flags[io][0] & ID_FLAG_GAMEPORTSCUSTOM_MASK)) + slotorder = slotorder2; - for (j = 0; j < MAX_INPUT_SUB_EVENT; j++) { + for (j = 0; j < MAX_INPUT_SUB_EVENT; j++) + { - evt = id->eventid[io][slotorder[j]]; - custom = id->custom[io][slotorder[j]]; - if (custom == NULL && evt <= 0) { - for (k = j + 1; k < MAX_INPUT_SUB_EVENT; k++) { - if ((id->port[io][k] == 0 || id->port[io][k] == MAX_JPORTS + 1) && (id->eventid[io][slotorder[k]] > 0 || id->custom[io][slotorder[k]] != NULL)) - break; - } - if (k == MAX_INPUT_SUB_EVENT) - break; - } + evt = id->eventid[io][slotorder[j]]; + custom = id->custom[io][slotorder[j]]; + if (custom == NULL && evt <= 0) + { + for (k = j + 1; k < MAX_INPUT_SUB_EVENT; k++) + { + if ((id->port[io][k] == 0 || id->port[io][k] == MAX_JPORTS + 1) && (id->eventid[io][slotorder[k]] > 0 || id->custom[io][slotorder[k]] != NULL)) + break; + } + if (k == MAX_INPUT_SUB_EVENT) + break; + } - if (p > tmp2) { - *p++ = ','; - *p = 0; - } - bool ok = write_slot (p, id, io, slotorder[j]); - p += _tcslen (p); - if (ok) { - if (id->port[io][slotorder[j]] > 0 && id->port[io][slotorder[j]] < MAX_JPORTS + 1) { - int pnum = id->port[io][slotorder[j]] - 1; - _stprintf (p, _T(".%d"), pnum); - p += _tcslen (p); - if (idnum != GAMEPORT_INPUT_SETTINGS && j == 0 && id->port[io][SPARE_SUB_EVENT] && slotorder == slotorder1) { - *p++ = '.'; - write_slot (p, id, io, SPARE_SUB_EVENT); - p += _tcslen (p); - } - } - } - } - if (p > tmp2) { - _stprintf (tmp3, _T("input.%d.%s%d"), idnum + 1, extra, i); - cfgfile_write_str (f, tmp3, tmp2); - } + if (p > tmp2) + { + *p++ = ','; + *p = 0; + } + bool ok = write_slot (p, id, io, slotorder[j]); + p += _tcslen (p); + if (ok) + { + if (id->port[io][slotorder[j]] > 0 && id->port[io][slotorder[j]] < MAX_JPORTS + 1) + { + int pnum = id->port[io][slotorder[j]] - 1; + _stprintf (p, _T(".%d"), pnum); + p += _tcslen (p); + if (idnum != GAMEPORT_INPUT_SETTINGS && j == 0 && id->port[io][SPARE_SUB_EVENT] && slotorder == slotorder1) + { + *p++ = '.'; + write_slot (p, id, io, SPARE_SUB_EVENT); + p += _tcslen (p); + } + } + } + } + if (p > tmp2) + { + _stprintf (tmp3, _T("input.%d.%s%d"), idnum + 1, extra, i); + cfgfile_write_str (f, tmp3, tmp2); + } } static void write_kbr_config (struct zfile *f, int idnum, int devnum, struct uae_input_device *kbr, struct inputdevice_functions *idf) { - TCHAR tmp1[CONFIG_BLEN], tmp2[CONFIG_BLEN], tmp3[CONFIG_BLEN], tmp4[CONFIG_BLEN], tmp5[CONFIG_BLEN], *p; - int i, j, k, evt, skip; - const int *slotorder; + TCHAR tmp1[CONFIG_BLEN], tmp2[CONFIG_BLEN], tmp3[CONFIG_BLEN], tmp4[CONFIG_BLEN], tmp5[CONFIG_BLEN], *p; + int i, j, k, evt, skip; + const int *slotorder; - if (!keyboard_default) - return; + if (!keyboard_default) + return; - if (!write_config_head (f, idnum, devnum, _T("keyboard"), kbr, idf)) - return; + if (!write_config_head (f, idnum, devnum, _T("keyboard"), kbr, idf)) + return; - i = 0; - while (i < MAX_INPUT_DEVICE_EVENTS && kbr->extra[i] >= 0) { + i = 0; + while (i < MAX_INPUT_DEVICE_EVENTS && kbr->extra[i] >= 0) + { - slotorder = slotorder1; - // if gameports non-custom mapping in slot0 -> save slot4 as slot0 - if (kbr->port[i][0] && !(kbr->flags[i][0] & ID_FLAG_GAMEPORTSCUSTOM_MASK)) - slotorder = slotorder2; + slotorder = slotorder1; + // if gameports non-custom mapping in slot0 -> save slot4 as slot0 + if (kbr->port[i][0] && !(kbr->flags[i][0] & ID_FLAG_GAMEPORTSCUSTOM_MASK)) + slotorder = slotorder2; - skip = 0; - k = 0; - while (keyboard_default[k].scancode >= 0) { - if (keyboard_default[k].scancode == kbr->extra[i]) { - skip = 1; - for (j = 0; j < MAX_INPUT_SUB_EVENT; j++) { - if (keyboard_default[k].node[j].evt != 0) { - if (keyboard_default[k].node[j].evt != kbr->eventid[i][slotorder[j]] || keyboard_default[k].node[j].flags != (kbr->flags[i][slotorder[j]] & ID_FLAG_SAVE_MASK_FULL)) - skip = 0; - } else if ((kbr->flags[i][slotorder[j]] & ID_FLAG_SAVE_MASK_FULL) != 0 || kbr->eventid[i][slotorder[j]] > 0) { - skip = 0; - } - } - break; - } - k++; - } - bool isdefaultspare = - kbr->port[i][SPARE_SUB_EVENT] && - keyboard_default[k].node[0].evt == kbr->eventid[i][SPARE_SUB_EVENT] && keyboard_default[k].node[0].flags == (kbr->flags[i][SPARE_SUB_EVENT] & ID_FLAG_SAVE_MASK_FULL); + skip = 0; + k = 0; + while (keyboard_default[k].scancode >= 0) + { + if (keyboard_default[k].scancode == kbr->extra[i]) + { + skip = 1; + for (j = 0; j < MAX_INPUT_SUB_EVENT; j++) + { + if (keyboard_default[k].node[j].evt != 0) + { + if (keyboard_default[k].node[j].evt != kbr->eventid[i][slotorder[j]] || keyboard_default[k].node[j].flags != (kbr->flags[i][slotorder[j]] & ID_FLAG_SAVE_MASK_FULL)) + skip = 0; + } + else if ((kbr->flags[i][slotorder[j]] & ID_FLAG_SAVE_MASK_FULL) != 0 || kbr->eventid[i][slotorder[j]] > 0) + { + skip = 0; + } + } + break; + } + k++; + } + bool isdefaultspare = + kbr->port[i][SPARE_SUB_EVENT] && + keyboard_default[k].node[0].evt == kbr->eventid[i][SPARE_SUB_EVENT] && keyboard_default[k].node[0].flags == (kbr->flags[i][SPARE_SUB_EVENT] & ID_FLAG_SAVE_MASK_FULL); - if (kbr->port[i][0] > 0 && !(kbr->flags[i][0] & ID_FLAG_GAMEPORTSCUSTOM_MASK) && - (kbr->eventid[i][1] <= 0 && kbr->eventid[i][2] <= 0 && kbr->eventid[i][3] <= 0) && - (kbr->port[i][SPARE_SUB_EVENT] == 0 || isdefaultspare)) - skip = 1; - if (kbr->eventid[i][0] == 0 && (kbr->flags[i][0] & ID_FLAG_SAVE_MASK_FULL) == 0 && keyboard_default[k].scancode < 0) - skip = 1; - if (skip) { - i++; - continue; - } - tmp2[0] = 0; - p = tmp2; - for (j = 0; j < MAX_INPUT_SUB_EVENT; j++) { - TCHAR *custom = kbr->custom[i][slotorder[j]]; - evt = kbr->eventid[i][slotorder[j]]; - if (custom == NULL && evt <= 0) { - for (k = j + 1; k < MAX_INPUT_SUB_EVENT; k++) { - if (kbr->eventid[i][slotorder[k]] > 0 || kbr->custom[i][slotorder[k]] != NULL) - break; - } - if (k == MAX_INPUT_SUB_EVENT) - break; - } - if (p > tmp2) { - *p++ = ','; - *p = 0; - } - bool ok = write_slot (p, kbr, i, slotorder[j]); - p += _tcslen (p); - if (ok) { - // save port number + SPARE SLOT if needed - if (kbr->port[i][slotorder[j]] > 0 && (kbr->flags[i][slotorder[j]] & ID_FLAG_GAMEPORTSCUSTOM_MASK)) { - _stprintf (p, _T(".%d"), kbr->port[i][slotorder[j]] - 1); - p += _tcslen (p); - if (idnum != GAMEPORT_INPUT_SETTINGS && j == 0 && kbr->port[i][SPARE_SUB_EVENT] && !isdefaultspare && slotorder == slotorder1) { - *p++ = '.'; - write_slot (p, kbr, i, SPARE_SUB_EVENT); - p += _tcslen (p); - } - } - } - } - idf->get_widget_type (devnum, i, tmp5, NULL); - _stprintf (tmp3, _T("%d%s%s"), kbr->extra[i], tmp5[0] ? _T(".") : _T(""), tmp5[0] ? tmp5 : _T("")); - kbrlabel (tmp3); - _stprintf (tmp1, _T("keyboard.%d.button.%s"), devnum, tmp3); - _stprintf (tmp4, _T("input.%d.%s"), idnum + 1, tmp1); - cfgfile_write_str (f, tmp4, tmp2[0] ? tmp2 : _T("NULL")); - i++; - } + if (kbr->port[i][0] > 0 && !(kbr->flags[i][0] & ID_FLAG_GAMEPORTSCUSTOM_MASK) && + (kbr->eventid[i][1] <= 0 && kbr->eventid[i][2] <= 0 && kbr->eventid[i][3] <= 0) && + (kbr->port[i][SPARE_SUB_EVENT] == 0 || isdefaultspare)) + skip = 1; + if (kbr->eventid[i][0] == 0 && (kbr->flags[i][0] & ID_FLAG_SAVE_MASK_FULL) == 0 && keyboard_default[k].scancode < 0) + skip = 1; + if (skip) + { + i++; + continue; + } + tmp2[0] = 0; + p = tmp2; + for (j = 0; j < MAX_INPUT_SUB_EVENT; j++) + { + TCHAR *custom = kbr->custom[i][slotorder[j]]; + evt = kbr->eventid[i][slotorder[j]]; + if (custom == NULL && evt <= 0) + { + for (k = j + 1; k < MAX_INPUT_SUB_EVENT; k++) + { + if (kbr->eventid[i][slotorder[k]] > 0 || kbr->custom[i][slotorder[k]] != NULL) + break; + } + if (k == MAX_INPUT_SUB_EVENT) + break; + } + if (p > tmp2) + { + *p++ = ','; + *p = 0; + } + bool ok = write_slot (p, kbr, i, slotorder[j]); + p += _tcslen (p); + if (ok) + { + // save port number + SPARE SLOT if needed + if (kbr->port[i][slotorder[j]] > 0 && (kbr->flags[i][slotorder[j]] & ID_FLAG_GAMEPORTSCUSTOM_MASK)) + { + _stprintf (p, _T(".%d"), kbr->port[i][slotorder[j]] - 1); + p += _tcslen (p); + if (idnum != GAMEPORT_INPUT_SETTINGS && j == 0 && kbr->port[i][SPARE_SUB_EVENT] && !isdefaultspare && slotorder == slotorder1) + { + *p++ = '.'; + write_slot (p, kbr, i, SPARE_SUB_EVENT); + p += _tcslen (p); + } + } + } + } + idf->get_widget_type (devnum, i, tmp5, NULL); + _stprintf (tmp3, _T("%d%s%s"), kbr->extra[i], tmp5[0] ? _T(".") : _T(""), tmp5[0] ? tmp5 : _T("")); + kbrlabel (tmp3); + _stprintf (tmp1, _T("keyboard.%d.button.%s"), devnum, tmp3); + _stprintf (tmp4, _T("input.%d.%s"), idnum + 1, tmp1); + cfgfile_write_str (f, tmp4, tmp2[0] ? tmp2 : _T("NULL")); + i++; + } } static void write_config (struct zfile *f, int idnum, int devnum, TCHAR *name, struct uae_input_device *id, struct inputdevice_functions *idf) { - TCHAR tmp1[MAX_DPATH]; - int i; + TCHAR tmp1[MAX_DPATH]; + int i; - if (!write_config_head (f, idnum, devnum, name, id, idf)) - return; + if (!write_config_head (f, idnum, devnum, name, id, idf)) + return; - _stprintf (tmp1, _T("%s.%d.axis."), name, devnum); - for (i = 0; i < ID_AXIS_TOTAL; i++) - write_config2 (f, idnum, i, ID_AXIS_OFFSET, tmp1, id); - _stprintf (tmp1, _T("%s.%d.button.") ,name, devnum); - for (i = 0; i < ID_BUTTON_TOTAL; i++) - write_config2 (f, idnum, i, ID_BUTTON_OFFSET, tmp1, id); + _stprintf (tmp1, _T("%s.%d.axis."), name, devnum); + for (i = 0; i < ID_AXIS_TOTAL; i++) + write_config2 (f, idnum, i, ID_AXIS_OFFSET, tmp1, id); + _stprintf (tmp1, _T("%s.%d.button."),name, devnum); + for (i = 0; i < ID_BUTTON_TOTAL; i++) + write_config2 (f, idnum, i, ID_BUTTON_OFFSET, tmp1, id); } static const TCHAR *kbtypes[] = { _T("amiga"), _T("pc"), NULL }; void write_inputdevice_config (struct uae_prefs *p, struct zfile *f) { - int i, id; + int i, id; - cfgfile_write (f, _T("input.config"), _T("%d"), p->input_selected_setting == GAMEPORT_INPUT_SETTINGS ? 0 : p->input_selected_setting + 1); - cfgfile_write (f, _T("input.joymouse_speed_analog"), _T("%d"), p->input_joymouse_multiplier); - cfgfile_write (f, _T("input.joymouse_speed_digital"), _T("%d"), p->input_joymouse_speed); - cfgfile_write (f, _T("input.joymouse_deadzone"), _T("%d"), p->input_joymouse_deadzone); - cfgfile_write (f, _T("input.joystick_deadzone"), _T("%d"), p->input_joystick_deadzone); - cfgfile_write (f, _T("input.analog_joystick_multiplier"), _T("%d"), p->input_analog_joystick_mult); - cfgfile_write (f, _T("input.analog_joystick_offset"), _T("%d"), p->input_analog_joystick_offset); - cfgfile_write (f, _T("input.mouse_speed"), _T("%d"), p->input_mouse_speed); - cfgfile_write (f, _T("input.autofire_speed"), _T("%d"), p->input_autofire_linecnt); - cfgfile_dwrite_str (f, _T("input.keyboard_type"), kbtypes[p->input_keyboard_type]); - for (id = 0; id < MAX_INPUT_SETTINGS; id++) { - TCHAR tmp[MAX_DPATH]; - if (id < GAMEPORT_INPUT_SETTINGS) { - _stprintf (tmp, _T("input.%d.name"), id + 1); - cfgfile_dwrite_str (f, tmp, p->input_config_name[id]); - } - for (i = 0; i < MAX_INPUT_DEVICES; i++) - write_config (f, id, i, _T("joystick"), &p->joystick_settings[id][i], &idev[IDTYPE_JOYSTICK]); - for (i = 0; i < MAX_INPUT_DEVICES; i++) - write_config (f, id, i, _T("mouse"), &p->mouse_settings[id][i], &idev[IDTYPE_MOUSE]); - for (i = 0; i < MAX_INPUT_DEVICES; i++) - write_kbr_config (f, id, i, &p->keyboard_settings[id][i], &idev[IDTYPE_KEYBOARD]); - } + cfgfile_write (f, _T("input.config"), _T("%d"), p->input_selected_setting == GAMEPORT_INPUT_SETTINGS ? 0 : p->input_selected_setting + 1); + cfgfile_write (f, _T("input.joymouse_speed_analog"), _T("%d"), p->input_joymouse_multiplier); + cfgfile_write (f, _T("input.joymouse_speed_digital"), _T("%d"), p->input_joymouse_speed); + cfgfile_write (f, _T("input.joymouse_deadzone"), _T("%d"), p->input_joymouse_deadzone); + cfgfile_write (f, _T("input.joystick_deadzone"), _T("%d"), p->input_joystick_deadzone); + cfgfile_write (f, _T("input.analog_joystick_multiplier"), _T("%d"), p->input_analog_joystick_mult); + cfgfile_write (f, _T("input.analog_joystick_offset"), _T("%d"), p->input_analog_joystick_offset); + cfgfile_write (f, _T("input.mouse_speed"), _T("%d"), p->input_mouse_speed); + cfgfile_write (f, _T("input.autofire_speed"), _T("%d"), p->input_autofire_linecnt); + cfgfile_dwrite_str (f, _T("input.keyboard_type"), kbtypes[p->input_keyboard_type]); + for (id = 0; id < MAX_INPUT_SETTINGS; id++) + { + TCHAR tmp[MAX_DPATH]; + if (id < GAMEPORT_INPUT_SETTINGS) + { + _stprintf (tmp, _T("input.%d.name"), id + 1); + cfgfile_dwrite_str (f, tmp, p->input_config_name[id]); + } + for (i = 0; i < MAX_INPUT_DEVICES; i++) + write_config (f, id, i, _T("joystick"), &p->joystick_settings[id][i], &idev[IDTYPE_JOYSTICK]); + for (i = 0; i < MAX_INPUT_DEVICES; i++) + write_config (f, id, i, _T("mouse"), &p->mouse_settings[id][i], &idev[IDTYPE_MOUSE]); + for (i = 0; i < MAX_INPUT_DEVICES; i++) + write_kbr_config (f, id, i, &p->keyboard_settings[id][i], &idev[IDTYPE_KEYBOARD]); + } } static uae_u64 getqual (const TCHAR **pp) { - const TCHAR *p = *pp; - uae_u64 mask = 0; + const TCHAR *p = *pp; + uae_u64 mask = 0; - while ((*p >= 'A' && *p <= 'Z') || (*p >= 'a' && *p <= 'z')) { - bool press = (*p >= 'A' && *p <= 'Z'); - int shift, inc; + while ((*p >= 'A' && *p <= 'Z') || (*p >= 'a' && *p <= 'z')) + { + bool press = (*p >= 'A' && *p <= 'Z'); + int shift, inc; - if (press) { - shift = *p - 'A'; - inc = 0; - } else { - shift = *p - 'a'; - inc = 1; - } - mask |= ID_FLAG_QUALIFIER1 << (shift * 2 + inc); - p++; - } - while (*p != 0 && *p !='.' && *p != ',') - p++; - if (*p == '.' || *p == ',') - p++; - *pp = p; - return mask; + if (press) + { + shift = *p - 'A'; + inc = 0; + } + else + { + shift = *p - 'a'; + inc = 1; + } + mask |= ID_FLAG_QUALIFIER1 << (shift * 2 + inc); + p++; + } + while (*p != 0 && *p !='.' && *p != ',') + p++; + if (*p == '.' || *p == ',') + p++; + *pp = p; + return mask; } static int getnum (const TCHAR **pp) { - const TCHAR *p = *pp; - int v; + const TCHAR *p = *pp; + int v; - if (!_tcsnicmp (p, _T("false"), 5)) - v = 0; - if (!_tcsnicmp (p, _T("true"), 4)) - v = 1; - else - v = _tstol (p); + if (!_tcsnicmp (p, _T("false"), 5)) + v = 0; + if (!_tcsnicmp (p, _T("true"), 4)) + v = 1; + else + v = _tstol (p); - while (*p != 0 && *p !='.' && *p != ',') - p++; - if (*p == '.' || *p == ',') - p++; - *pp = p; - return v; + while (*p != 0 && *p !='.' && *p != ',') + p++; + if (*p == '.' || *p == ',') + p++; + *pp = p; + return v; } static TCHAR *getstring (const TCHAR **pp) { - int i; - static TCHAR str[CONFIG_BLEN]; - const TCHAR *p = *pp; - bool quoteds = false; - bool quotedd = false; + int i; + static TCHAR str[CONFIG_BLEN]; + const TCHAR *p = *pp; + bool quoteds = false; + bool quotedd = false; - if (*p == 0) - return 0; - i = 0; - while (*p != 0 && i < 1000 - 1) { - if (*p == '\"') - quotedd = quotedd ? false : true; - if (*p == '\'') - quoteds = quoteds ? false : true; - if (!quotedd && !quoteds) { - if (*p == '.' || *p == ',') - break; - } - str[i++] = *p++; - } - if (*p == '.' || *p == ',') - p++; - str[i] = 0; - *pp = p; - return str; + if (*p == 0) + return 0; + i = 0; + while (*p != 0 && i < 1000 - 1) + { + if (*p == '\"') + quotedd = quotedd ? false : true; + if (*p == '\'') + quoteds = quoteds ? false : true; + if (!quotedd && !quoteds) + { + if (*p == '.' || *p == ',') + break; + } + str[i++] = *p++; + } + if (*p == '.' || *p == ',') + p++; + str[i] = 0; + *pp = p; + return str; } static void reset_inputdevice_settings (struct uae_input_device *uid) { - for (int l = 0; l < MAX_INPUT_DEVICE_EVENTS; l++) { - for (int i = 0; i < MAX_INPUT_SUB_EVENT_ALL; i++) { - uid->eventid[l][i] = 0; - uid->flags[l][i] = 0; - xfree (uid->custom[l][i]); - uid->custom[l][i] = NULL; - } - } + for (int l = 0; l < MAX_INPUT_DEVICE_EVENTS; l++) + { + for (int i = 0; i < MAX_INPUT_SUB_EVENT_ALL; i++) + { + uid->eventid[l][i] = 0; + uid->flags[l][i] = 0; + xfree (uid->custom[l][i]); + uid->custom[l][i] = NULL; + } + } } static void reset_inputdevice_slot (struct uae_prefs *prefs, int slot) { - for (int m = 0; m < MAX_INPUT_DEVICES; m++) { - reset_inputdevice_settings (&prefs->joystick_settings[slot][m]); - reset_inputdevice_settings (&prefs->mouse_settings[slot][m]); - reset_inputdevice_settings (&prefs->keyboard_settings[slot][m]); - } + for (int m = 0; m < MAX_INPUT_DEVICES; m++) + { + reset_inputdevice_settings (&prefs->joystick_settings[slot][m]); + reset_inputdevice_settings (&prefs->mouse_settings[slot][m]); + reset_inputdevice_settings (&prefs->keyboard_settings[slot][m]); + } } void reset_inputdevice_config (struct uae_prefs *prefs) { - for (int i = 0; i< MAX_INPUT_SETTINGS; i++) - reset_inputdevice_slot (prefs, i); + for (int i = 0; i< MAX_INPUT_SETTINGS; i++) + reset_inputdevice_slot (prefs, i); } static void set_kbr_default_event (struct uae_input_device *kbr, struct uae_input_device_kbr_default *trans, int num) { - for (int i = 0; trans[i].scancode >= 0; i++) { - if (kbr->extra[num] == trans[i].scancode) { - int k; - for (k = 0; k < MAX_INPUT_SUB_EVENT; k++) { - if (kbr->eventid[num][k] == 0) - break; - } - if (k == MAX_INPUT_SUB_EVENT) { - write_log (_T("corrupt default keyboard mappings\n")); - return; - } - int l = 0; - while (k < MAX_INPUT_SUB_EVENT && trans[i].node[l].evt) { - int evt = trans[i].node[l].evt; - if (evt < 0 || evt >= INPUTEVENT_SPC_LAST) - gui_message(_T("invalid event in default keyboard table!")); - kbr->eventid[num][k] = evt; - kbr->flags[num][k] = trans[i].node[l].flags; - l++; - k++; - } - break; - } - } + for (int i = 0; trans[i].scancode >= 0; i++) + { + if (kbr->extra[num] == trans[i].scancode) + { + int k; + for (k = 0; k < MAX_INPUT_SUB_EVENT; k++) + { + if (kbr->eventid[num][k] == 0) + break; + } + if (k == MAX_INPUT_SUB_EVENT) + { + write_log (_T("corrupt default keyboard mappings\n")); + return; + } + int l = 0; + while (k < MAX_INPUT_SUB_EVENT && trans[i].node[l].evt) + { + int evt = trans[i].node[l].evt; + if (evt < 0 || evt >= INPUTEVENT_SPC_LAST) + gui_message(_T("invalid event in default keyboard table!")); + kbr->eventid[num][k] = evt; + kbr->flags[num][k] = trans[i].node[l].flags; + l++; + k++; + } + break; + } + } } static void clear_id (struct uae_input_device *id) { - int i, j; - for (i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) { - for (j = 0; j < MAX_INPUT_SUB_EVENT_ALL; j++) - xfree (id->custom[i][j]); - } + int i, j; + for (i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) + { + for (j = 0; j < MAX_INPUT_SUB_EVENT_ALL; j++) + xfree (id->custom[i][j]); + } - TCHAR *cn = id->configname; - TCHAR *n = id->name; - memset (id, 0, sizeof (struct uae_input_device)); - id->configname = cn; - id->name = n; + TCHAR *cn = id->configname; + TCHAR *n = id->name; + memset (id, 0, sizeof (struct uae_input_device)); + id->configname = cn; + id->name = n; } static void set_kbr_default (struct uae_prefs *p, int index, int devnum, struct uae_input_device_kbr_default *trans) { - int i, j; - struct uae_input_device *kbr; - struct inputdevice_functions *id = &idev[IDTYPE_KEYBOARD]; - uae_u32 scancode; + int i, j; + struct uae_input_device *kbr; + struct inputdevice_functions *id = &idev[IDTYPE_KEYBOARD]; + uae_u32 scancode; - if (!trans) - return; - for (j = 0; j < MAX_INPUT_DEVICES; j++) { - if (devnum >= 0 && devnum != j) - continue; - kbr = &p->keyboard_settings[index][j]; - for (i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) { - clear_id (kbr); - kbr->extra[i] = -1; - } - if (j < id->get_num ()) { - if (input_get_default_keyboard (j)) - kbr->enabled = 1; - for (i = 0; i < id->get_widget_num (j); i++) { - id->get_widget_type (j, i, 0, &scancode); - kbr->extra[i] = scancode; - set_kbr_default_event (kbr, trans, i); - } - } - } + if (!trans) + return; + for (j = 0; j < MAX_INPUT_DEVICES; j++) + { + if (devnum >= 0 && devnum != j) + continue; + kbr = &p->keyboard_settings[index][j]; + for (i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) + { + clear_id (kbr); + kbr->extra[i] = -1; + } + if (j < id->get_num ()) + { + if (input_get_default_keyboard (j)) + kbr->enabled = 1; + for (i = 0; i < id->get_widget_num (j); i++) + { + id->get_widget_type (j, i, 0, &scancode); + kbr->extra[i] = scancode; + set_kbr_default_event (kbr, trans, i); + } + } + } } static void inputdevice_default_kb (struct uae_prefs *p, int num) { - if (num == GAMEPORT_INPUT_SETTINGS) { - if (p->jports[0].id != JPORT_CUSTOM || p->jports[1].id != JPORT_CUSTOM) - reset_inputdevice_slot (p, num); - } - set_kbr_default (p, num, -1, keyboard_default); + if (num == GAMEPORT_INPUT_SETTINGS) + { + if (p->jports[0].id != JPORT_CUSTOM || p->jports[1].id != JPORT_CUSTOM) + reset_inputdevice_slot (p, num); + } + set_kbr_default (p, num, -1, keyboard_default); } static void inputdevice_default_kb_all (struct uae_prefs *p) { - for (int i = 0; i < MAX_INPUT_SETTINGS; i++) - inputdevice_default_kb (p, i); + for (int i = 0; i < MAX_INPUT_SETTINGS; i++) + inputdevice_default_kb (p, i); } static bool read_slot (TCHAR *parm, int num, int joystick, int button, struct uae_input_device *id, int keynum, int subnum, struct inputevent *ie, uae_u64 flags, int port, TCHAR *custom) { - int mask; + int mask; - if (custom == NULL && ie->name == NULL) { - if (!_tcscmp (parm, _T("NULL"))) { - if (joystick < 0) { - id->eventid[keynum][subnum] = 0; - id->flags[keynum][subnum] = 0; - } else if (button) { - id->eventid[num + ID_BUTTON_OFFSET][subnum] = 0; - id->flags[num + ID_BUTTON_OFFSET][subnum] = 0; - } else { - id->eventid[num + ID_AXIS_OFFSET][subnum] = 0; - id->flags[num + ID_AXIS_OFFSET][subnum] = 0; - } - } - return false; - } - if (custom) - ie = &events[INPUTEVENT_SPC_CUSTOM_EVENT]; + if (custom == NULL && ie->name == NULL) + { + if (!_tcscmp (parm, _T("NULL"))) + { + if (joystick < 0) + { + id->eventid[keynum][subnum] = 0; + id->flags[keynum][subnum] = 0; + } + else if (button) + { + id->eventid[num + ID_BUTTON_OFFSET][subnum] = 0; + id->flags[num + ID_BUTTON_OFFSET][subnum] = 0; + } + else + { + id->eventid[num + ID_AXIS_OFFSET][subnum] = 0; + id->flags[num + ID_AXIS_OFFSET][subnum] = 0; + } + } + return false; + } + if (custom) + ie = &events[INPUTEVENT_SPC_CUSTOM_EVENT]; - if (joystick < 0) { - if (!(ie->allow_mask & AM_K)) - return false; - id->eventid[keynum][subnum] = ie - events; - id->flags[keynum][subnum] = flags; - id->port[keynum][subnum] = port; - xfree (id->custom[keynum][subnum]); - id->custom[keynum][subnum] = custom; - } else if (button) { - if (joystick) - mask = AM_JOY_BUT; - else - mask = AM_MOUSE_BUT; - if (!(ie->allow_mask & mask)) - return false; - id->eventid[num + ID_BUTTON_OFFSET][subnum] = ie - events; - id->flags[num + ID_BUTTON_OFFSET][subnum] = flags; - id->port[num + ID_BUTTON_OFFSET][subnum] = port; - xfree (id->custom[num + ID_BUTTON_OFFSET][subnum]); - id->custom[num + ID_BUTTON_OFFSET][subnum] = custom; - } else { - if (joystick) - mask = AM_JOY_AXIS; - else - mask = AM_MOUSE_AXIS; - if (!(ie->allow_mask & mask)) - return false; - id->eventid[num + ID_AXIS_OFFSET][subnum] = ie - events; - id->flags[num + ID_AXIS_OFFSET][subnum] = flags; - id->port[num + ID_AXIS_OFFSET][subnum] = port; - xfree (id->custom[num + ID_AXIS_OFFSET][subnum]); - id->custom[num + ID_AXIS_OFFSET][subnum] = custom; - } - return true; + if (joystick < 0) + { + if (!(ie->allow_mask & AM_K)) + return false; + id->eventid[keynum][subnum] = ie - events; + id->flags[keynum][subnum] = flags; + id->port[keynum][subnum] = port; + xfree (id->custom[keynum][subnum]); + id->custom[keynum][subnum] = custom; + } + else if (button) + { + if (joystick) + mask = AM_JOY_BUT; + else + mask = AM_MOUSE_BUT; + if (!(ie->allow_mask & mask)) + return false; + id->eventid[num + ID_BUTTON_OFFSET][subnum] = ie - events; + id->flags[num + ID_BUTTON_OFFSET][subnum] = flags; + id->port[num + ID_BUTTON_OFFSET][subnum] = port; + xfree (id->custom[num + ID_BUTTON_OFFSET][subnum]); + id->custom[num + ID_BUTTON_OFFSET][subnum] = custom; + } + else + { + if (joystick) + mask = AM_JOY_AXIS; + else + mask = AM_MOUSE_AXIS; + if (!(ie->allow_mask & mask)) + return false; + id->eventid[num + ID_AXIS_OFFSET][subnum] = ie - events; + id->flags[num + ID_AXIS_OFFSET][subnum] = flags; + id->port[num + ID_AXIS_OFFSET][subnum] = port; + xfree (id->custom[num + ID_AXIS_OFFSET][subnum]); + id->custom[num + ID_AXIS_OFFSET][subnum] = custom; + } + return true; } static struct inputevent *readevent (const TCHAR *name, TCHAR **customp) { - int i = 1; - while (events[i].name) { - if (!_tcscmp (events[i].confname, name)) - return &events[i]; - i++; - } - if (_tcslen (name) > 2 && name[0] == '\'' && name[_tcslen (name) - 1] == '\'') { - TCHAR *custom = my_strdup (name + 1); - custom[_tcslen (custom) - 1] = 0; - *customp = custom; - } - return &events[0]; + int i = 1; + while (events[i].name) + { + if (!_tcscmp (events[i].confname, name)) + return &events[i]; + i++; + } + if (_tcslen (name) > 2 && name[0] == '\'' && name[_tcslen (name) - 1] == '\'') + { + TCHAR *custom = my_strdup (name + 1); + custom[_tcslen (custom) - 1] = 0; + *customp = custom; + } + return &events[0]; } void read_inputdevice_config (struct uae_prefs *pr, const TCHAR *option, TCHAR *value) { - struct uae_input_device *id = 0; - struct inputevent *ie; - int devnum, num, button, joystick, subnum, idnum, keynum; - const TCHAR *p; - TCHAR *p2, *custom; + struct uae_input_device *id = 0; + struct inputevent *ie; + int devnum, num, button, joystick, subnum, idnum, keynum; + const TCHAR *p; + TCHAR *p2, *custom; - option += 6; /* "input." */ - p = getstring (&option); - if (!strcasecmp (p, _T("config"))) { - pr->input_selected_setting = _tstol (value) - 1; - if (pr->input_selected_setting == -1) - pr->input_selected_setting = GAMEPORT_INPUT_SETTINGS; - if (pr->input_selected_setting < 0 || pr->input_selected_setting > MAX_INPUT_SETTINGS) - pr->input_selected_setting = 0; - } - if (!strcasecmp (p, _T("joymouse_speed_analog"))) - pr->input_joymouse_multiplier = _tstol (value); - if (!strcasecmp (p, _T("joymouse_speed_digital"))) - pr->input_joymouse_speed = _tstol (value); - if (!strcasecmp (p, _T("joystick_deadzone"))) - pr->input_joystick_deadzone = _tstol (value); - if (!strcasecmp (p, _T("joymouse_deadzone"))) - pr->input_joymouse_deadzone = _tstol (value); - if (!strcasecmp (p, _T("mouse_speed"))) - pr->input_mouse_speed = _tstol (value); - if (!strcasecmp (p, _T("autofire"))) - pr->input_autofire_linecnt = _tstol (value) * 312; - if (!strcasecmp (p, _T("autofire_speed"))) - pr->input_autofire_linecnt = _tstol (value); - if (!strcasecmp (p, _T("analog_joystick_multiplier"))) - pr->input_analog_joystick_mult = _tstol (value); - if (!strcasecmp (p, _T("analog_joystick_offset"))) - pr->input_analog_joystick_offset = _tstol (value); - if (!strcasecmp (p, _T("keyboard_type"))) { - cfgfile_strval (option, value, NULL, &pr->input_keyboard_type, kbtypes, 0); - keyboard_default = keyboard_default_table[pr->input_keyboard_type]; - inputdevice_default_kb_all (pr); - } + option += 6; /* "input." */ + p = getstring (&option); + if (!strcasecmp (p, _T("config"))) + { + pr->input_selected_setting = _tstol (value) - 1; + if (pr->input_selected_setting == -1) + pr->input_selected_setting = GAMEPORT_INPUT_SETTINGS; + if (pr->input_selected_setting < 0 || pr->input_selected_setting > MAX_INPUT_SETTINGS) + pr->input_selected_setting = 0; + } + if (!strcasecmp (p, _T("joymouse_speed_analog"))) + pr->input_joymouse_multiplier = _tstol (value); + if (!strcasecmp (p, _T("joymouse_speed_digital"))) + pr->input_joymouse_speed = _tstol (value); + if (!strcasecmp (p, _T("joystick_deadzone"))) + pr->input_joystick_deadzone = _tstol (value); + if (!strcasecmp (p, _T("joymouse_deadzone"))) + pr->input_joymouse_deadzone = _tstol (value); + if (!strcasecmp (p, _T("mouse_speed"))) + pr->input_mouse_speed = _tstol (value); + if (!strcasecmp (p, _T("autofire"))) + pr->input_autofire_linecnt = _tstol (value) * 312; + if (!strcasecmp (p, _T("autofire_speed"))) + pr->input_autofire_linecnt = _tstol (value); + if (!strcasecmp (p, _T("analog_joystick_multiplier"))) + pr->input_analog_joystick_mult = _tstol (value); + if (!strcasecmp (p, _T("analog_joystick_offset"))) + pr->input_analog_joystick_offset = _tstol (value); + if (!strcasecmp (p, _T("keyboard_type"))) + { + cfgfile_strval (option, value, NULL, &pr->input_keyboard_type, kbtypes, 0); + keyboard_default = keyboard_default_table[pr->input_keyboard_type]; + inputdevice_default_kb_all (pr); + } - idnum = _tstol (p); - if (idnum <= 0 || idnum > MAX_INPUT_SETTINGS) - return; - idnum--; + idnum = _tstol (p); + if (idnum <= 0 || idnum > MAX_INPUT_SETTINGS) + return; + idnum--; - if (!_tcscmp (option, _T("name"))) { - if (idnum < GAMEPORT_INPUT_SETTINGS) - _tcscpy (pr->input_config_name[idnum], value); - return; - } + if (!_tcscmp (option, _T("name"))) + { + if (idnum < GAMEPORT_INPUT_SETTINGS) + _tcscpy (pr->input_config_name[idnum], value); + return; + } - if (_tcsncmp (option, _T("mouse."), 6) == 0) { - p = option + 6; - } else if (_tcsncmp (option, _T("joystick."), 9) == 0) { - p = option + 9; - } else if (_tcsncmp (option, _T("keyboard."), 9) == 0) { - p = option + 9; - } else - return; + if (_tcsncmp (option, _T("mouse."), 6) == 0) + { + p = option + 6; + } + else if (_tcsncmp (option, _T("joystick."), 9) == 0) + { + p = option + 9; + } + else if (_tcsncmp (option, _T("keyboard."), 9) == 0) + { + p = option + 9; + } + else + return; - devnum = getnum (&p); - if (devnum < 0 || devnum >= MAX_INPUT_DEVICES) - return; + devnum = getnum (&p); + if (devnum < 0 || devnum >= MAX_INPUT_DEVICES) + return; - p2 = getstring (&p); - if (!p2) - return; + p2 = getstring (&p); + if (!p2) + return; - if (_tcsncmp (option, _T("mouse."), 6) == 0) { - id = &pr->mouse_settings[idnum][devnum]; - joystick = 0; - } else if (_tcsncmp (option, _T("joystick."), 9) == 0) { - id = &pr->joystick_settings[idnum][devnum]; - joystick = 1; - } else if (_tcsncmp (option, _T("keyboard."), 9) == 0) { - id = &pr->keyboard_settings[idnum][devnum]; - joystick = -1; - } - if (!id) - return; - if (!_tcscmp (p2, _T("name"))) { - xfree (id->configname); - id->configname = my_strdup (value); - return; - } - if (!_tcscmp (p2, _T("friendlyname"))) { - xfree (id->name); - id->name = my_strdup (value); - return; - } + if (_tcsncmp (option, _T("mouse."), 6) == 0) + { + id = &pr->mouse_settings[idnum][devnum]; + joystick = 0; + } + else if (_tcsncmp (option, _T("joystick."), 9) == 0) + { + id = &pr->joystick_settings[idnum][devnum]; + joystick = 1; + } + else if (_tcsncmp (option, _T("keyboard."), 9) == 0) + { + id = &pr->keyboard_settings[idnum][devnum]; + joystick = -1; + } + if (!id) + return; + if (!_tcscmp (p2, _T("name"))) + { + xfree (id->configname); + id->configname = my_strdup (value); + return; + } + if (!_tcscmp (p2, _T("friendlyname"))) + { + xfree (id->name); + id->name = my_strdup (value); + return; + } - if (!_tcscmp (p2, _T("custom"))) { - int iscustom; - p = value; - iscustom = getnum (&p); - if (idnum == GAMEPORT_INPUT_SETTINGS) { - clear_id (id); - if (joystick < 0) - set_kbr_default (pr, idnum, devnum, keyboard_default); - id->enabled = iscustom; - } else { - id->enabled = false; - } - return; - } + if (!_tcscmp (p2, _T("custom"))) + { + int iscustom; + p = value; + iscustom = getnum (&p); + if (idnum == GAMEPORT_INPUT_SETTINGS) + { + clear_id (id); + if (joystick < 0) + set_kbr_default (pr, idnum, devnum, keyboard_default); + id->enabled = iscustom; + } + else + { + id->enabled = false; + } + return; + } - if (!_tcscmp (p2, _T("empty"))) { - int empty; - p = value; - empty = getnum (&p); - clear_id (id); - if (!empty) { - if (joystick < 0) - set_kbr_default (pr, idnum, devnum, keyboard_default); - } - id->enabled = 1; - if (idnum == GAMEPORT_INPUT_SETTINGS) - id->enabled = 0; - return; - } + if (!_tcscmp (p2, _T("empty"))) + { + int empty; + p = value; + empty = getnum (&p); + clear_id (id); + if (!empty) + { + if (joystick < 0) + set_kbr_default (pr, idnum, devnum, keyboard_default); + } + id->enabled = 1; + if (idnum == GAMEPORT_INPUT_SETTINGS) + id->enabled = 0; + return; + } - if (!_tcscmp (p2, _T("disabled"))) { - int disabled; - p = value; - disabled = getnum (&p); - id->enabled = disabled == 0 ? 1 : 0; - if (idnum == GAMEPORT_INPUT_SETTINGS) - id->enabled = 0; - return; - } + if (!_tcscmp (p2, _T("disabled"))) + { + int disabled; + p = value; + disabled = getnum (&p); + id->enabled = disabled == 0 ? 1 : 0; + if (idnum == GAMEPORT_INPUT_SETTINGS) + id->enabled = 0; + return; + } - if (idnum == GAMEPORT_INPUT_SETTINGS && id->enabled == 0) - return; + if (idnum == GAMEPORT_INPUT_SETTINGS && id->enabled == 0) + return; - button = 0; - keynum = 0; - if (joystick < 0) { - num = getnum (&p); - for (keynum = 0; keynum < MAX_INPUT_DEVICE_EVENTS; keynum++) { - if (id->extra[keynum] == num) - break; - } - if (keynum >= MAX_INPUT_DEVICE_EVENTS) - return; - } else { - button = -1; - if (!_tcscmp (p2, _T("axis"))) - button = 0; - else if(!_tcscmp (p2, _T("button"))) - button = 1; - if (button < 0) - return; - num = getnum (&p); - } - p = value; + button = 0; + keynum = 0; + if (joystick < 0) + { + num = getnum (&p); + for (keynum = 0; keynum < MAX_INPUT_DEVICE_EVENTS; keynum++) + { + if (id->extra[keynum] == num) + break; + } + if (keynum >= MAX_INPUT_DEVICE_EVENTS) + return; + } + else + { + button = -1; + if (!_tcscmp (p2, _T("axis"))) + button = 0; + else if(!_tcscmp (p2, _T("button"))) + button = 1; + if (button < 0) + return; + num = getnum (&p); + } + p = value; - custom = NULL; - for (subnum = 0; subnum < MAX_INPUT_SUB_EVENT; subnum++) { - uae_u64 flags; - int port; - xfree (custom); - custom = NULL; - p2 = getstring (&p); - if (!p2) - break; - ie = readevent (p2, &custom); - flags = 0; - port = 0; - if (p[-1] == '.') - flags = getnum (&p) & ID_FLAG_SAVE_MASK_CONFIG; - if (p[-1] == '.') { - if ((p[0] >= 'A' && p[0] <= 'Z') || (p[0] >= 'a' && p[0] <= 'z')) - flags |= getqual (&p); - if (p[-1] == '.') - port = getnum (&p) + 1; - } - if (idnum == GAMEPORT_INPUT_SETTINGS && port == 0) - continue; - if (p[-1] == '.' && idnum != GAMEPORT_INPUT_SETTINGS) { - p2 = getstring (&p); - if (p2) { - int flags2 = 0; - if (p[-1] == '.') - flags2 = getnum (&p) & ID_FLAG_SAVE_MASK_CONFIG; - if (p[-1] == '.' && (p[0] >= 'A' && p[0] <= 'Z') || (p[0] >= 'a' && p[0] <= 'z')) - flags |= getqual (&p); - TCHAR *custom2 = NULL; - struct inputevent *ie2 = readevent (p2, &custom2); - read_slot (p2, num, joystick, button, id, keynum, SPARE_SUB_EVENT, ie2, flags2, MAX_JPORTS + 1, custom2); - } - } + custom = NULL; + for (subnum = 0; subnum < MAX_INPUT_SUB_EVENT; subnum++) + { + uae_u64 flags; + int port; + xfree (custom); + custom = NULL; + p2 = getstring (&p); + if (!p2) + break; + ie = readevent (p2, &custom); + flags = 0; + port = 0; + if (p[-1] == '.') + flags = getnum (&p) & ID_FLAG_SAVE_MASK_CONFIG; + if (p[-1] == '.') + { + if ((p[0] >= 'A' && p[0] <= 'Z') || (p[0] >= 'a' && p[0] <= 'z')) + flags |= getqual (&p); + if (p[-1] == '.') + port = getnum (&p) + 1; + } + if (idnum == GAMEPORT_INPUT_SETTINGS && port == 0) + continue; + if (p[-1] == '.' && idnum != GAMEPORT_INPUT_SETTINGS) + { + p2 = getstring (&p); + if (p2) + { + int flags2 = 0; + if (p[-1] == '.') + flags2 = getnum (&p) & ID_FLAG_SAVE_MASK_CONFIG; + if (p[-1] == '.' && (p[0] >= 'A' && p[0] <= 'Z') || (p[0] >= 'a' && p[0] <= 'z')) + flags |= getqual (&p); + TCHAR *custom2 = NULL; + struct inputevent *ie2 = readevent (p2, &custom2); + read_slot (p2, num, joystick, button, id, keynum, SPARE_SUB_EVENT, ie2, flags2, MAX_JPORTS + 1, custom2); + } + } - while (*p != 0) { - if (p[-1] == ',') - break; - p++; - } - if (!read_slot (p2, num, joystick, button, id, keynum, subnum, ie, flags, port, custom)) - continue; - custom = NULL; - } - xfree (custom); + while (*p != 0) + { + if (p[-1] == ',') + break; + p++; + } + if (!read_slot (p2, num, joystick, button, id, keynum, subnum, ie, flags, port, custom)) + continue; + custom = NULL; + } + xfree (custom); } static int mousehack_alive_cnt; @@ -1027,7 +1147,7 @@ static int tablet_data; STATIC_INLINE int mousehack_alive (void) { - return mousehack_alive_cnt > 0 ? mousehack_alive_cnt : 0; + return mousehack_alive_cnt > 0 ? mousehack_alive_cnt : 0; } #define MH_E 0 @@ -1057,13 +1177,13 @@ STATIC_INLINE int mousehack_alive (void) int inputdevice_is_tablet (void) { - if (!uae_boot_rom) - return 0; - if (currprefs.input_tablet == TABLET_OFF) - return 0; - if (currprefs.input_tablet == TABLET_MOUSEHACK) - return -1; - return 0; + if (!uae_boot_rom) + return 0; + if (currprefs.input_tablet == TABLET_OFF) + return 0; + if (currprefs.input_tablet == TABLET_MOUSEHACK) + return -1; + return 0; } static uaecptr mousehack_address; @@ -1071,682 +1191,745 @@ static bool mousehack_enabled; static void mousehack_reset (void) { - mouseoffset_x = mouseoffset_y = 0; - mousehack_alive_cnt = 0; - tablet_data = 0; - if (mousehack_address) - put_byte (mousehack_address + MH_E, 0); - mousehack_address = 0; - mousehack_enabled = false; + mouseoffset_x = mouseoffset_y = 0; + mousehack_alive_cnt = 0; + tablet_data = 0; + if (mousehack_address) + put_byte (mousehack_address + MH_E, 0); + mousehack_address = 0; + mousehack_enabled = false; } static bool mousehack_enable (void) { - int mode; + int mode; - if (!uae_boot_rom || currprefs.input_tablet == TABLET_OFF) - return false; - if (mousehack_address && mousehack_enabled) - return true; - mode = 0x80; - if (currprefs.input_tablet == TABLET_MOUSEHACK) - mode |= 1; - if (inputdevice_is_tablet () > 0) - mode |= 2; - if (mousehack_address) { - write_log (_T("Mouse driver enabled (%s)\n"), ((mode & 3) == 3 ? _T("tablet+mousehack") : ((mode & 3) == 2) ? _T("tablet") : _T("mousehack"))); - put_byte (mousehack_address + MH_E, mode); - mousehack_enabled = true; - } - return true; + if (!uae_boot_rom || currprefs.input_tablet == TABLET_OFF) + return false; + if (mousehack_address && mousehack_enabled) + return true; + mode = 0x80; + if (currprefs.input_tablet == TABLET_MOUSEHACK) + mode |= 1; + if (inputdevice_is_tablet () > 0) + mode |= 2; + if (mousehack_address) + { + write_log (_T("Mouse driver enabled (%s)\n"), ((mode & 3) == 3 ? _T("tablet+mousehack") : ((mode & 3) == 2) ? _T("tablet") : _T("mousehack"))); + put_byte (mousehack_address + MH_E, mode); + mousehack_enabled = true; + } + return true; } void input_mousehack_mouseoffset (uaecptr pointerprefs) { - mouseoffset_x = (uae_s16)get_word (pointerprefs + 28); - mouseoffset_y = (uae_s16)get_word (pointerprefs + 30); + mouseoffset_x = (uae_s16)get_word (pointerprefs + 28); + mouseoffset_y = (uae_s16)get_word (pointerprefs + 30); } int input_mousehack_status (int mode, uaecptr diminfo, uaecptr dispinfo, uaecptr vp, uae_u32 moffset) { - if (mode == 4) { - return mousehack_enable () ? 1 : 0; - } else if (mode == 5) { - mousehack_address = m68k_dreg (regs, 0); - mousehack_enable (); - } else if (mode == 0) { - if (mousehack_address) { - uae_u8 v = get_byte (mousehack_address + MH_E); - v |= 0x40; - put_byte (mousehack_address + MH_E, v); - write_log (_T("Tablet driver running (%08x,%02x)\n"), mousehack_address, v); - } - } else if (mode == 2) { - if (mousehack_alive_cnt == 0) - mousehack_alive_cnt = -100; - else if (mousehack_alive_cnt > 0) - mousehack_alive_cnt = 100; - } - return 1; + if (mode == 4) + { + return mousehack_enable () ? 1 : 0; + } + else if (mode == 5) + { + mousehack_address = m68k_dreg (regs, 0); + mousehack_enable (); + } + else if (mode == 0) + { + if (mousehack_address) + { + uae_u8 v = get_byte (mousehack_address + MH_E); + v |= 0x40; + put_byte (mousehack_address + MH_E, v); + write_log (_T("Tablet driver running (%08x,%02x)\n"), mousehack_address, v); + } + } + else if (mode == 2) + { + if (mousehack_alive_cnt == 0) + mousehack_alive_cnt = -100; + else if (mousehack_alive_cnt > 0) + mousehack_alive_cnt = 100; + } + return 1; } void inputdevice_tablet_strobe (void) { - mousehack_enable (); - if (!uae_boot_rom) - return; - if (!tablet_data) - return; - if (mousehack_address) - put_byte (mousehack_address + MH_CNT, get_byte (mousehack_address + MH_CNT) + 1); + mousehack_enable (); + if (!uae_boot_rom) + return; + if (!tablet_data) + return; + if (mousehack_address) + put_byte (mousehack_address + MH_CNT, get_byte (mousehack_address + MH_CNT) + 1); } static void inputdevice_mh_abs (int x, int y, uae_u32 buttonbits) { - uae_u8 *p; - uae_u8 tmp1[4], tmp2[4]; + uae_u8 *p; + uae_u8 tmp1[4], tmp2[4]; - mousehack_enable (); - if (!mousehack_address) - return; - p = get_real_address (mousehack_address); + mousehack_enable (); + if (!mousehack_address) + return; + p = get_real_address (mousehack_address); - memcpy (tmp1, p + MH_ABSX, sizeof tmp1); - memcpy (tmp2, p + MH_BUTTONBITS, sizeof tmp2); + memcpy (tmp1, p + MH_ABSX, sizeof tmp1); + memcpy (tmp2, p + MH_BUTTONBITS, sizeof tmp2); - x -= mouseoffset_x + 1; - y -= mouseoffset_y + 2; + x -= mouseoffset_x + 1; + y -= mouseoffset_y + 2; - //write_log (_T("%dx%d %08x\n"), x, y, buttonbits); + //write_log (_T("%dx%d %08x\n"), x, y, buttonbits); - p[MH_ABSX] = x >> 8; - p[MH_ABSX + 1] = x; - p[MH_ABSY] = y >> 8; - p[MH_ABSY + 1] = y; + p[MH_ABSX] = x >> 8; + p[MH_ABSX + 1] = x; + p[MH_ABSY] = y >> 8; + p[MH_ABSY + 1] = y; - p[MH_BUTTONBITS + 0] = buttonbits >> 24; - p[MH_BUTTONBITS + 1] = buttonbits >> 16; - p[MH_BUTTONBITS + 2] = buttonbits >> 8; - p[MH_BUTTONBITS + 3] = buttonbits >> 0; + p[MH_BUTTONBITS + 0] = buttonbits >> 24; + p[MH_BUTTONBITS + 1] = buttonbits >> 16; + p[MH_BUTTONBITS + 2] = buttonbits >> 8; + p[MH_BUTTONBITS + 3] = buttonbits >> 0; - if (!memcmp (tmp1, p + MH_ABSX, sizeof tmp1) && !memcmp (tmp2, p + MH_BUTTONBITS, sizeof tmp2)) - return; - p[MH_E] = 0xc0 | 1; - p[MH_CNT]++; - tablet_data = 1; + if (!memcmp (tmp1, p + MH_ABSX, sizeof tmp1) && !memcmp (tmp2, p + MH_BUTTONBITS, sizeof tmp2)) + return; + p[MH_E] = 0xc0 | 1; + p[MH_CNT]++; + tablet_data = 1; } static void mousehack_helper (uae_u32 buttonmask) { - int x, y; + int x, y; - if (currprefs.input_tablet < TABLET_MOUSEHACK) - return; - x = lastmx; - y = lastmy; + if (currprefs.input_tablet < TABLET_MOUSEHACK) + return; + x = lastmx; + y = lastmy; #ifdef PICASSO96 - if (picasso_on) { - x -= picasso96_state.XOffset; - y -= picasso96_state.YOffset; - } else + if (picasso_on) + { + x -= picasso96_state.XOffset; + y -= picasso96_state.YOffset; + } + else #endif - { - x = coord_native_to_amiga_x (x); - y = coord_native_to_amiga_y (y) << 1; - } - inputdevice_mh_abs (x, y, buttonmask); + { + x = coord_native_to_amiga_x (x); + y = coord_native_to_amiga_y (y) << 1; + } + inputdevice_mh_abs (x, y, buttonmask); } STATIC_INLINE int getbuttonstate (int joy, int button) { - return (joybutton[joy] & (1 << button)) ? 1 : 0; + return (joybutton[joy] & (1 << button)) ? 1 : 0; } STATIC_INLINE int getvelocity (int num, int subnum, int pct) { - int val; - int v; + int val; + int v; - if (pct > 1000) - pct = 1000; - val = mouse_delta[num][subnum]; - v = val * pct / 1000; - if (!v) { - if (val < -maxvpos / 2) - v = -2; - else if (val < 0) - v = -1; - else if (val > maxvpos / 2) - v = 2; - else if (val > 0) - v = 1; - } - if (!mouse_deltanoreset[num][subnum]) { - mouse_delta[num][subnum] -= v; - } - return v; + if (pct > 1000) + pct = 1000; + val = mouse_delta[num][subnum]; + v = val * pct / 1000; + if (!v) + { + if (val < -maxvpos / 2) + v = -2; + else if (val < 0) + v = -1; + else if (val > maxvpos / 2) + v = 2; + else if (val > 0) + v = 1; + } + if (!mouse_deltanoreset[num][subnum]) + { + mouse_delta[num][subnum] -= v; + } + return v; } #define MOUSEXY_MAX 16384 static void mouseupdate (int pct, bool vsync) { - int v, i; - int max = 120; - static int mxd, myd; + int v, i; + int max = 120; + static int mxd, myd; - if (vsync) { - mxd = 0; - myd = 0; - } + if (vsync) + { + mxd = 0; + myd = 0; + } - for (i = 0; i < 2; i++) { + for (i = 0; i < 2; i++) + { - if (mouse_port[i]) { + if (mouse_port[i]) + { - v = getvelocity (i, 0, pct); - mxd += v; - mouse_x[i] += v; - if (mouse_x[i] < 0) { - mouse_x[i] += MOUSEXY_MAX; - mouse_frame_x[i] = mouse_x[i] - v; - } - if (mouse_x[i] >= MOUSEXY_MAX) { - mouse_x[i] -= MOUSEXY_MAX; - mouse_frame_x[i] = mouse_x[i] - v; - } + v = getvelocity (i, 0, pct); + mxd += v; + mouse_x[i] += v; + if (mouse_x[i] < 0) + { + mouse_x[i] += MOUSEXY_MAX; + mouse_frame_x[i] = mouse_x[i] - v; + } + if (mouse_x[i] >= MOUSEXY_MAX) + { + mouse_x[i] -= MOUSEXY_MAX; + mouse_frame_x[i] = mouse_x[i] - v; + } - v = getvelocity (i, 1, pct); - myd += v; - mouse_y[i] += v; - if (mouse_y[i] < 0) { - mouse_y[i] += MOUSEXY_MAX; - mouse_frame_y[i] = mouse_y[i] - v; - } - if (mouse_y[i] >= MOUSEXY_MAX) { - mouse_y[i] -= MOUSEXY_MAX; - mouse_frame_y[i] = mouse_y[i] - v; - } + v = getvelocity (i, 1, pct); + myd += v; + mouse_y[i] += v; + if (mouse_y[i] < 0) + { + mouse_y[i] += MOUSEXY_MAX; + mouse_frame_y[i] = mouse_y[i] - v; + } + if (mouse_y[i] >= MOUSEXY_MAX) + { + mouse_y[i] -= MOUSEXY_MAX; + mouse_frame_y[i] = mouse_y[i] - v; + } #ifndef INPUTDEVICE_SIMPLE - v = getvelocity (i, 2, pct); - if (v > 0) - record_key (0x7a << 1); - else if (v < 0) - record_key (0x7b << 1); + v = getvelocity (i, 2, pct); + if (v > 0) + record_key (0x7a << 1); + else if (v < 0) + record_key (0x7b << 1); #endif - if (!mouse_deltanoreset[i][2]) - mouse_delta[i][2] = 0; + if (!mouse_deltanoreset[i][2]) + mouse_delta[i][2] = 0; - if (mouse_frame_x[i] - mouse_x[i] > max) { - mouse_x[i] = mouse_frame_x[i] - max; - mouse_x[i] &= MOUSEXY_MAX - 1; - } - if (mouse_frame_x[i] - mouse_x[i] < -max) { - mouse_x[i] = mouse_frame_x[i] + max; - mouse_x[i] &= MOUSEXY_MAX - 1; - } + if (mouse_frame_x[i] - mouse_x[i] > max) + { + mouse_x[i] = mouse_frame_x[i] - max; + mouse_x[i] &= MOUSEXY_MAX - 1; + } + if (mouse_frame_x[i] - mouse_x[i] < -max) + { + mouse_x[i] = mouse_frame_x[i] + max; + mouse_x[i] &= MOUSEXY_MAX - 1; + } - if (mouse_frame_y[i] - mouse_y[i] > max) - mouse_y[i] = mouse_frame_y[i] - max; - if (mouse_frame_y[i] - mouse_y[i] < -max) - mouse_y[i] = mouse_frame_y[i] + max; - } + if (mouse_frame_y[i] - mouse_y[i] > max) + mouse_y[i] = mouse_frame_y[i] - max; + if (mouse_frame_y[i] - mouse_y[i] < -max) + mouse_y[i] = mouse_frame_y[i] + max; + } - if (!vsync) { - mouse_frame_x[i] = mouse_x[i]; - mouse_frame_y[i] = mouse_y[i]; - } + if (!vsync) + { + mouse_frame_x[i] = mouse_x[i]; + mouse_frame_y[i] = mouse_y[i]; + } - } + } } static int input_vpos, input_frame; extern int vpos; STATIC_INLINE void readinput (void) { - uae_u32 totalvpos; - int diff; + uae_u32 totalvpos; + int diff; - totalvpos = input_frame * current_maxvpos () + vpos; - diff = totalvpos - input_vpos; - if (diff > 0) { - if (diff < 10) { - mouseupdate (0, false); - } else { - mouseupdate (diff * 1000 / current_maxvpos (), false); - } - } - input_vpos = totalvpos; + totalvpos = input_frame * current_maxvpos () + vpos; + diff = totalvpos - input_vpos; + if (diff > 0) + { + if (diff < 10) + { + mouseupdate (0, false); + } + else + { + mouseupdate (diff * 1000 / current_maxvpos (), false); + } + } + input_vpos = totalvpos; } static void joymousecounter (int joy) { - int left = 1, right = 1, top = 1, bot = 1; - int b9, b8, b1, b0; - int cntx, cnty, ocntx, ocnty; + int left = 1, right = 1, top = 1, bot = 1; + int b9, b8, b1, b0; + int cntx, cnty, ocntx, ocnty; - if (joydir[joy] & DIR_LEFT) - left = 0; - if (joydir[joy] & DIR_RIGHT) - right = 0; - if (joydir[joy] & DIR_UP) - top = 0; - if (joydir[joy] & DIR_DOWN) - bot = 0; + if (joydir[joy] & DIR_LEFT) + left = 0; + if (joydir[joy] & DIR_RIGHT) + right = 0; + if (joydir[joy] & DIR_UP) + top = 0; + if (joydir[joy] & DIR_DOWN) + bot = 0; - b0 = (bot ^ right) ? 1 : 0; - b1 = (right ^ 1) ? 2 : 0; - b8 = (top ^ left) ? 1 : 0; - b9 = (left ^ 1) ? 2 : 0; + b0 = (bot ^ right) ? 1 : 0; + b1 = (right ^ 1) ? 2 : 0; + b8 = (top ^ left) ? 1 : 0; + b9 = (left ^ 1) ? 2 : 0; - cntx = b0 | b1; - cnty = b8 | b9; - ocntx = mouse_x[joy] & 3; - ocnty = mouse_y[joy] & 3; + cntx = b0 | b1; + cnty = b8 | b9; + ocntx = mouse_x[joy] & 3; + ocnty = mouse_y[joy] & 3; - if (cntx == 3 && ocntx == 0) - mouse_x[joy] -= 4; - else if (cntx == 0 && ocntx == 3) - mouse_x[joy] += 4; - mouse_x[joy] = (mouse_x[joy] & 0xfc) | cntx; + if (cntx == 3 && ocntx == 0) + mouse_x[joy] -= 4; + else if (cntx == 0 && ocntx == 3) + mouse_x[joy] += 4; + mouse_x[joy] = (mouse_x[joy] & 0xfc) | cntx; - if (cnty == 3 && ocnty == 0) - mouse_y[joy] -= 4; - else if (cnty == 0 && ocnty == 3) - mouse_y[joy] += 4; - mouse_y[joy] = (mouse_y[joy] & 0xfc) | cnty; + if (cnty == 3 && ocnty == 0) + mouse_y[joy] -= 4; + else if (cnty == 0 && ocnty == 3) + mouse_y[joy] += 4; + mouse_y[joy] = (mouse_y[joy] & 0xfc) | cnty; - if (!left || !right || !top || !bot) { - mouse_frame_x[joy] = mouse_x[joy]; - mouse_frame_y[joy] = mouse_y[joy]; - } + if (!left || !right || !top || !bot) + { + mouse_frame_x[joy] = mouse_x[joy]; + mouse_frame_y[joy] = mouse_y[joy]; + } } STATIC_INLINE uae_u16 getjoystate (int joy) { - uae_u16 v; + uae_u16 v; - v = (uae_u8)mouse_x[joy] | (mouse_y[joy] << 8); - return v; + v = (uae_u8)mouse_x[joy] | (mouse_y[joy] << 8); + return v; } uae_u16 JOY0DAT (void) { - uae_u16 v; - readinput (); - v = getjoystate (0); - return v; + uae_u16 v; + readinput (); + v = getjoystate (0); + return v; } uae_u16 JOY1DAT (void) { - uae_u16 v; - readinput (); - v = getjoystate (1); - return v; + uae_u16 v; + readinput (); + v = getjoystate (1); + return v; } uae_u16 JOYGET (int num) { - uae_u16 v; - v = getjoystate (num); - return v; + uae_u16 v; + v = getjoystate (num); + return v; } void JOYSET (int num, uae_u16 dat) { - mouse_x[num] = dat & 0xff; - mouse_y[num] = (dat >> 8) & 0xff; - mouse_frame_x[num] = mouse_x[num]; - mouse_frame_y[num] = mouse_y[num]; + mouse_x[num] = dat & 0xff; + mouse_y[num] = (dat >> 8) & 0xff; + mouse_frame_x[num] = mouse_x[num]; + mouse_frame_y[num] = mouse_y[num]; } void JOYTEST (uae_u16 v) { - mouse_x[0] &= 3; - mouse_y[0] &= 3; - mouse_x[1] &= 3; - mouse_y[1] &= 3; - mouse_x[0] |= v & 0xFC; - mouse_x[1] |= v & 0xFC; - mouse_y[0] |= (v >> 8) & 0xFC; - mouse_y[1] |= (v >> 8) & 0xFC; - mouse_frame_x[0] = mouse_x[0]; - mouse_frame_y[0] = mouse_y[0]; - mouse_frame_x[1] = mouse_x[1]; - mouse_frame_y[1] = mouse_y[1]; + mouse_x[0] &= 3; + mouse_y[0] &= 3; + mouse_x[1] &= 3; + mouse_y[1] &= 3; + mouse_x[0] |= v & 0xFC; + mouse_x[1] |= v & 0xFC; + mouse_y[0] |= (v >> 8) & 0xFC; + mouse_y[1] |= (v >> 8) & 0xFC; + mouse_frame_x[0] = mouse_x[0]; + mouse_frame_y[0] = mouse_y[0]; + mouse_frame_x[1] = mouse_x[1]; + mouse_frame_y[1] = mouse_y[1]; } #ifndef INPUTDEVICE_SIMPLE static uae_u8 parconvert (uae_u8 v, int jd, int shift) { - if (jd & DIR_UP) - v &= ~(1 << shift); - if (jd & DIR_DOWN) - v &= ~(2 << shift); - if (jd & DIR_LEFT) - v &= ~(4 << shift); - if (jd & DIR_RIGHT) - v &= ~(8 << shift); - return v; + if (jd & DIR_UP) + v &= ~(1 << shift); + if (jd & DIR_DOWN) + v &= ~(2 << shift); + if (jd & DIR_LEFT) + v &= ~(4 << shift); + if (jd & DIR_RIGHT) + v &= ~(8 << shift); + return v; } /* io-pins floating: dir=1 -> return data, dir=0 -> always return 1 */ uae_u8 handle_parport_joystick (int port, uae_u8 pra, uae_u8 dra) { - uae_u8 v; - switch (port) - { - case 0: - v = (pra & dra) | (dra ^ 0xff); - if (parport_joystick_enabled) { - v = parconvert (v, joydir[2], 0); - v = parconvert (v, joydir[3], 4); - } - return v; - case 1: - v = ((pra & dra) | (dra ^ 0xff)) & 0x7; - if (parport_joystick_enabled) { - if (getbuttonstate (2, 0)) - v &= ~4; - if (getbuttonstate (3, 0)) - v &= ~1; - if (getbuttonstate (2, 1) || getbuttonstate (3, 1)) - v &= ~2; /* spare */ - } - return v; - default: - return 0; - } + uae_u8 v; + switch (port) + { + case 0: + v = (pra & dra) | (dra ^ 0xff); + if (parport_joystick_enabled) + { + v = parconvert (v, joydir[2], 0); + v = parconvert (v, joydir[3], 4); + } + return v; + case 1: + v = ((pra & dra) | (dra ^ 0xff)) & 0x7; + if (parport_joystick_enabled) + { + if (getbuttonstate (2, 0)) + v &= ~4; + if (getbuttonstate (3, 0)) + v &= ~1; + if (getbuttonstate (2, 1) || getbuttonstate (3, 1)) + v &= ~2; /* spare */ + } + return v; + default: + return 0; + } } #endif /* p5 is 1 or floating = cd32 2-button mode */ STATIC_INLINE bool cd32padmode (uae_u16 p5dir, uae_u16 p5dat) { - if (!(potgo_value & p5dir) || ((potgo_value & p5dat) && (potgo_value & p5dir))) - return false; - return true; + if (!(potgo_value & p5dir) || ((potgo_value & p5dat) && (potgo_value & p5dir))) + return false; + return true; } #ifndef INPUTDEVICE_SIMPLE static bool is_joystick_pullup (int joy) { - return joymodes[joy] == JSEM_MODE_GAMEPAD; + return joymodes[joy] == JSEM_MODE_GAMEPAD; } static void charge_cap (int joy, int idx, int charge) { - if (charge < -1 || charge > 1) - charge = charge * 80; - pot_cap[joy][idx] += charge; - if (pot_cap[joy][idx] < 0) - pot_cap[joy][idx] = 0; - if (pot_cap[joy][idx] > 511) - pot_cap[joy][idx] = 511; + if (charge < -1 || charge > 1) + charge = charge * 80; + pot_cap[joy][idx] += charge; + if (pot_cap[joy][idx] < 0) + pot_cap[joy][idx] = 0; + if (pot_cap[joy][idx] > 511) + pot_cap[joy][idx] = 511; } #endif static void cap_check (void) { - int joy, i; + int joy, i; - for (joy = 0; joy < 2; joy++) { - for (i = 0; i < 2; i++) { + for (joy = 0; joy < 2; joy++) + { + for (i = 0; i < 2; i++) + { #ifndef INPUTDEVICE_SIMPLE - int charge = 0, dong, joypot; + int charge = 0, dong, joypot; #endif - uae_u16 pdir = 0x0200 << (joy * 4 + i * 2); /* output enable */ - uae_u16 pdat = 0x0100 << (joy * 4 + i * 2); /* data */ - uae_u16 p5dir = 0x0200 << (joy * 4); - uae_u16 p5dat = 0x0100 << (joy * 4); - int isbutton = getbuttonstate (joy, i == 0 ? JOYBUTTON_3 : JOYBUTTON_2); + uae_u16 pdir = 0x0200 << (joy * 4 + i * 2); /* output enable */ + uae_u16 pdat = 0x0100 << (joy * 4 + i * 2); /* data */ + uae_u16 p5dir = 0x0200 << (joy * 4); + uae_u16 p5dat = 0x0100 << (joy * 4); + int isbutton = getbuttonstate (joy, i == 0 ? JOYBUTTON_3 : JOYBUTTON_2); - if (cd32_pad_enabled[joy]) { - // only red and blue can be read if CD32 pad and only if it is in normal pad mode - isbutton |= getbuttonstate (joy, JOYBUTTON_CD32_BLUE); - // CD32 pad 3rd button line (P5) is always floating - if (i == 0) - isbutton = 0; - if (cd32padmode (p5dir, p5dat)) - continue; - } + if (cd32_pad_enabled[joy]) + { + // only red and blue can be read if CD32 pad and only if it is in normal pad mode + isbutton |= getbuttonstate (joy, JOYBUTTON_CD32_BLUE); + // CD32 pad 3rd button line (P5) is always floating + if (i == 0) + isbutton = 0; + if (cd32padmode (p5dir, p5dat)) + continue; + } #ifndef INPUTDEVICE_SIMPLE - joypot = joydirpot[joy][i]; - if (analog_port[joy][i] && pot_cap[joy][i] < joypot) - charge = 1; // slow charge via pot variable resistor - if ((is_joystick_pullup (joy) && digital_port[joy][i]) || (mouse_port[joy])) - charge = 1; // slow charge via pull-up resistor + joypot = joydirpot[joy][i]; + if (analog_port[joy][i] && pot_cap[joy][i] < joypot) + charge = 1; // slow charge via pot variable resistor + if ((is_joystick_pullup (joy) && digital_port[joy][i]) || (mouse_port[joy])) + charge = 1; // slow charge via pull-up resistor #endif - if (!(potgo_value & pdir)) { // input? - if (pot_dat_act[joy][i]) - pot_dat[joy][i]++; - /* first 7 or 8 lines after potgo has been started = discharge cap */ - if (pot_dat_act[joy][i] == 1) { - if (pot_dat[joy][i] < (currprefs.ntscmode ? POTDAT_DELAY_NTSC : POTDAT_DELAY_PAL)) { + if (!(potgo_value & pdir)) // input? + { + if (pot_dat_act[joy][i]) + pot_dat[joy][i]++; + /* first 7 or 8 lines after potgo has been started = discharge cap */ + if (pot_dat_act[joy][i] == 1) + { + if (pot_dat[joy][i] < (currprefs.ntscmode ? POTDAT_DELAY_NTSC : POTDAT_DELAY_PAL)) + { #ifndef INPUTDEVICE_SIMPLE - charge = -2; /* fast discharge delay */ + charge = -2; /* fast discharge delay */ #endif - } else { - pot_dat_act[joy][i] = 2; - pot_dat[joy][i] = 0; - } - } + } + else + { + pot_dat_act[joy][i] = 2; + pot_dat[joy][i] = 0; + } + } #ifndef INPUTDEVICE_SIMPLE - if (analog_port[joy][i] && pot_dat_act[joy][i] == 2 && pot_cap[joy][i] >= joypot) - pot_dat_act[joy][i] = 0; + if (analog_port[joy][i] && pot_dat_act[joy][i] == 2 && pot_cap[joy][i] >= joypot) + pot_dat_act[joy][i] = 0; #endif - if ((digital_port[joy][i] || mouse_port[joy]) && pot_dat_act[joy][i] == 2) { + if ((digital_port[joy][i] || mouse_port[joy]) && pot_dat_act[joy][i] == 2) + { #ifdef INPUTDEVICE_SIMPLE - if (!isbutton) + if (!isbutton) #else - if (pot_cap[joy][i] >= 10 && !isbutton) + if (pot_cap[joy][i] >= 10 && !isbutton) #endif - pot_dat_act[joy][i] = 0; - } - } else { // output? + pot_dat_act[joy][i] = 0; + } + } + else // output? + { #ifndef INPUTDEVICE_SIMPLE - charge = (potgo_value & pdat) ? 2 : -2; /* fast (dis)charge if output */ + charge = (potgo_value & pdat) ? 2 : -2; /* fast (dis)charge if output */ #endif - if (potgo_value & pdat) - pot_dat_act[joy][i] = 0; // instant stop if output+high - if (isbutton) - pot_dat[joy][i]++; // "free running" if output+low - } + if (potgo_value & pdat) + pot_dat_act[joy][i] = 0; // instant stop if output+high + if (isbutton) + pot_dat[joy][i]++; // "free running" if output+low + } #ifndef INPUTDEVICE_SIMPLE - if (isbutton) - charge = -2; // button press overrides everything + if (isbutton) + charge = -2; // button press overrides everything - // CD32 pad in 2-button mode: blue button is not floating - if (cd32_pad_enabled[joy] && i == 1 && charge == 0) - charge = 2; - - /* official Commodore mouse has pull-up resistors in button lines - * NOTE: 3rd party mice may not have pullups! */ - if ((mouse_port[joy] && digital_port[joy][i]) && charge == 0) - charge = 2; - /* emulate pullup resistor if button mapped because there too many broken - * programs that read second button in input-mode (and most 2+ button pads have - * pullups) - */ - if ((is_joystick_pullup (joy) && digital_port[joy][i]) && charge == 0) - charge = 2; + // CD32 pad in 2-button mode: blue button is not floating + if (cd32_pad_enabled[joy] && i == 1 && charge == 0) + charge = 2; - charge_cap (joy, i, charge); + /* official Commodore mouse has pull-up resistors in button lines + * NOTE: 3rd party mice may not have pullups! */ + if ((mouse_port[joy] && digital_port[joy][i]) && charge == 0) + charge = 2; + /* emulate pullup resistor if button mapped because there too many broken + * programs that read second button in input-mode (and most 2+ button pads have + * pullups) + */ + if ((is_joystick_pullup (joy) && digital_port[joy][i]) && charge == 0) + charge = 2; + + charge_cap (joy, i, charge); #endif - } - } + } + } } uae_u8 handle_joystick_buttons (uae_u8 pra, uae_u8 dra) { - uae_u8 but = 0; - int i; + uae_u8 but = 0; + int i; - cap_check (); - for (i = 0; i < 2; i++) { - int mask = 0x40 << i; - if (cd32_pad_enabled[i]) { - uae_u16 p5dir = 0x0200 << (i * 4); - uae_u16 p5dat = 0x0100 << (i * 4); - but |= mask; - if (!cd32padmode (p5dir, p5dat)) { - if (getbuttonstate (i, JOYBUTTON_CD32_RED) || getbuttonstate (i, JOYBUTTON_1)) - but &= ~mask; - } - } else { - if (!getbuttonstate (i, JOYBUTTON_1)) - but |= mask; - if (dra & mask) - but = (but & ~mask) | (pra & mask); - } - } + cap_check (); + for (i = 0; i < 2; i++) + { + int mask = 0x40 << i; + if (cd32_pad_enabled[i]) + { + uae_u16 p5dir = 0x0200 << (i * 4); + uae_u16 p5dat = 0x0100 << (i * 4); + but |= mask; + if (!cd32padmode (p5dir, p5dat)) + { + if (getbuttonstate (i, JOYBUTTON_CD32_RED) || getbuttonstate (i, JOYBUTTON_1)) + but &= ~mask; + } + } + else + { + if (!getbuttonstate (i, JOYBUTTON_1)) + but |= mask; + if (dra & mask) + but = (but & ~mask) | (pra & mask); + } + } - return but; + return but; } /* joystick 1 button 1 is used as a output for incrementing shift register */ void handle_cd32_joystick_cia (uae_u8 pra, uae_u8 dra) { - static int oldstate[2]; - int i; + static int oldstate[2]; + int i; - cap_check (); - for (i = 0; i < 2; i++) { - uae_u8 but = 0x40 << i; - uae_u16 p5dir = 0x0200 << (i * 4); /* output enable P5 */ - uae_u16 p5dat = 0x0100 << (i * 4); /* data P5 */ - if (cd32padmode (p5dir, p5dat)) { - if ((dra & but) && (pra & but) != oldstate[i]) { - if (!(pra & but)) { - cd32_shifter[i]--; - if (cd32_shifter[i] < 0) - cd32_shifter[i] = 0; - } - } - } - oldstate[i] = pra & but; - } + cap_check (); + for (i = 0; i < 2; i++) + { + uae_u8 but = 0x40 << i; + uae_u16 p5dir = 0x0200 << (i * 4); /* output enable P5 */ + uae_u16 p5dat = 0x0100 << (i * 4); /* data P5 */ + if (cd32padmode (p5dir, p5dat)) + { + if ((dra & but) && (pra & but) != oldstate[i]) + { + if (!(pra & but)) + { + cd32_shifter[i]--; + if (cd32_shifter[i] < 0) + cd32_shifter[i] = 0; + } + } + } + oldstate[i] = pra & but; + } } /* joystick port 1 button 2 is input for button state */ static uae_u16 handle_joystick_potgor (uae_u16 potgor) { - int i; + int i; - cap_check (); - for (i = 0; i < 2; i++) { - uae_u16 p9dir = 0x0800 << (i * 4); /* output enable P9 */ - uae_u16 p9dat = 0x0400 << (i * 4); /* data P9 */ - uae_u16 p5dir = 0x0200 << (i * 4); /* output enable P5 */ - uae_u16 p5dat = 0x0100 << (i * 4); /* data P5 */ + cap_check (); + for (i = 0; i < 2; i++) + { + uae_u16 p9dir = 0x0800 << (i * 4); /* output enable P9 */ + uae_u16 p9dat = 0x0400 << (i * 4); /* data P9 */ + uae_u16 p5dir = 0x0200 << (i * 4); /* output enable P5 */ + uae_u16 p5dat = 0x0100 << (i * 4); /* data P5 */ - if (cd32_pad_enabled[i] && cd32padmode (p5dir, p5dat)) { + if (cd32_pad_enabled[i] && cd32padmode (p5dir, p5dat)) + { - /* p5 is floating in input-mode */ - potgor &= ~p5dat; - potgor |= potgo_value & p5dat; - if (!(potgo_value & p9dir)) - potgor |= p9dat; - /* (P5 output and 1) or floating -> shift register is kept reset (Blue button) */ - if (!(potgo_value & p5dir) || ((potgo_value & p5dat) && (potgo_value & p5dir))) - cd32_shifter[i] = 8; - /* shift at 1 == return one, >1 = return button states */ - if (cd32_shifter[i] == 0) - potgor &= ~p9dat; /* shift at zero == return zero */ - if (cd32_shifter[i] >= 2 && (joybutton[i] & ((1 << JOYBUTTON_CD32_PLAY) << (cd32_shifter[i] - 2)))) - potgor &= ~p9dat; + /* p5 is floating in input-mode */ + potgor &= ~p5dat; + potgor |= potgo_value & p5dat; + if (!(potgo_value & p9dir)) + potgor |= p9dat; + /* (P5 output and 1) or floating -> shift register is kept reset (Blue button) */ + if (!(potgo_value & p5dir) || ((potgo_value & p5dat) && (potgo_value & p5dir))) + cd32_shifter[i] = 8; + /* shift at 1 == return one, >1 = return button states */ + if (cd32_shifter[i] == 0) + potgor &= ~p9dat; /* shift at zero == return zero */ + if (cd32_shifter[i] >= 2 && (joybutton[i] & ((1 << JOYBUTTON_CD32_PLAY) << (cd32_shifter[i] - 2)))) + potgor &= ~p9dat; - } else { + } + else + { - potgor &= ~p5dat; + potgor &= ~p5dat; #ifdef INPUTDEVICE_SIMPLE - if (getbuttonstate(i, JOYBUTTON_3) == 0) + if (getbuttonstate(i, JOYBUTTON_3) == 0) #else - if (pot_cap[i][0] > 100) + if (pot_cap[i][0] > 100) #endif - potgor |= p5dat; + potgor |= p5dat; - if (!cd32_pad_enabled[i] || !cd32padmode (p5dir, p5dat)) { - potgor &= ~p9dat; + if (!cd32_pad_enabled[i] || !cd32padmode (p5dir, p5dat)) + { + potgor &= ~p9dat; #ifdef INPUTDEVICE_SIMPLE - if(getbuttonstate(i, JOYBUTTON_2) == 0) + if(getbuttonstate(i, JOYBUTTON_2) == 0) #else - if (pot_cap[i][1] > 100) + if (pot_cap[i][1] > 100) #endif - potgor |= p9dat; - } + potgor |= p9dat; + } - } - } - return potgor; + } + } + return potgor; } static int inputdelay; void inputdevice_read (void) { - do { - handle_msgpump (); - idev[IDTYPE_MOUSE].read (); - idev[IDTYPE_JOYSTICK].read (); - idev[IDTYPE_KEYBOARD].read (); - } while (handle_msgpump ()); + do + { + handle_msgpump (); + idev[IDTYPE_MOUSE].read (); + idev[IDTYPE_JOYSTICK].read (); + idev[IDTYPE_KEYBOARD].read (); + } + while (handle_msgpump ()); } void inputdevice_hsync (void) { - static int cnt; - cap_check (); + static int cnt; + cap_check (); - for (int i = 0; i < INPUT_QUEUE_SIZE; i++) { - struct input_queue_struct *iq = &input_queue[i]; - if (iq->linecnt > 0) { - iq->linecnt--; - if (iq->linecnt == 0) { - if (iq->state) - iq->state = 0; - else - iq->state = iq->storedstate; - if (iq->evt) + for (int i = 0; i < INPUT_QUEUE_SIZE; i++) + { + struct input_queue_struct *iq = &input_queue[i]; + if (iq->linecnt > 0) + { + iq->linecnt--; + if (iq->linecnt == 0) + { + if (iq->state) + iq->state = 0; + else + iq->state = iq->storedstate; + if (iq->evt) #ifdef INPUTDEVICE_SIMPLE - handle_input_event (iq->evt, iq->state, iq->max, 0); + handle_input_event (iq->evt, iq->state, iq->max, 0); #else - handle_input_event (iq->evt, iq->state, iq->max, 0, false, true); + handle_input_event (iq->evt, iq->state, iq->max, 0, false, true); #endif - iq->linecnt = iq->nextlinecnt; - } - } - } + iq->linecnt = iq->nextlinecnt; + } + } + } - if ((++cnt & 63) == 63 ) { - inputdevice_read (); - } else if (inputdelay > 0) { - inputdelay--; - if (inputdelay == 0) - inputdevice_read (); - } + if ((++cnt & 63) == 63 ) + { + inputdevice_read (); + } + else if (inputdelay > 0) + { + inputdelay--; + if (inputdelay == 0) + inputdevice_read (); + } } STATIC_INLINE uae_u16 POTDAT (int joy) { - uae_u16 v = (pot_dat[joy][1] << 8) | pot_dat[joy][0]; - return v; + uae_u16 v = (pot_dat[joy][1] << 8) | pot_dat[joy][0]; + return v; } uae_u16 POT0DAT (void) { - return POTDAT (0); + return POTDAT (0); } uae_u16 POT1DAT (void) { - return POTDAT (1); + return POTDAT (1); } /* direction=input, data pin floating, last connected logic level or previous status @@ -1758,54 +1941,62 @@ uae_u16 POT1DAT (void) void POTGO (uae_u16 v) { - int i, j; + int i, j; - potgo_value = potgo_value & 0x5500; /* keep state of data bits */ - potgo_value |= v & 0xaa00; /* get new direction bits */ - for (i = 0; i < 8; i += 2) { - uae_u16 dir = 0x0200 << i; - if (v & dir) { - uae_u16 data = 0x0100 << i; - potgo_value &= ~data; - potgo_value |= v & data; - } - } - for (i = 0; i < 2; i++) { - if (cd32_pad_enabled[i]) { - uae_u16 p5dir = 0x0200 << (i * 4); /* output enable P5 */ - uae_u16 p5dat = 0x0100 << (i * 4); /* data P5 */ - if (!(potgo_value & p5dir) || ((potgo_value & p5dat) && (potgo_value & p5dir))) - cd32_shifter[i] = 8; - } - } - if (v & 1) { - for (i = 0; i < 2; i++) { - for (j = 0; j < 2; j++) { - pot_dat_act[i][j] = 1; - pot_dat[i][j] = 0; - } - } - } + potgo_value = potgo_value & 0x5500; /* keep state of data bits */ + potgo_value |= v & 0xaa00; /* get new direction bits */ + for (i = 0; i < 8; i += 2) + { + uae_u16 dir = 0x0200 << i; + if (v & dir) + { + uae_u16 data = 0x0100 << i; + potgo_value &= ~data; + potgo_value |= v & data; + } + } + for (i = 0; i < 2; i++) + { + if (cd32_pad_enabled[i]) + { + uae_u16 p5dir = 0x0200 << (i * 4); /* output enable P5 */ + uae_u16 p5dat = 0x0100 << (i * 4); /* data P5 */ + if (!(potgo_value & p5dir) || ((potgo_value & p5dat) && (potgo_value & p5dir))) + cd32_shifter[i] = 8; + } + } + if (v & 1) + { + for (i = 0; i < 2; i++) + { + for (j = 0; j < 2; j++) + { + pot_dat_act[i][j] = 1; + pot_dat[i][j] = 0; + } + } + } } uae_u16 POTGOR (void) { - uae_u16 v; + uae_u16 v; - v = handle_joystick_potgor (potgo_value) & 0x5500; - return v; + v = handle_joystick_potgor (potgo_value) & 0x5500; + return v; } STATIC_INLINE int check_input_queue (int evt) { - struct input_queue_struct *iq; - int i; - for (i = 0; i < INPUT_QUEUE_SIZE; i++) { - iq = &input_queue[i]; - if (iq->evt == evt && iq->linecnt >= 0) - return i; - } - return -1; + struct input_queue_struct *iq; + int i; + for (i = 0; i < INPUT_QUEUE_SIZE; i++) + { + iq = &input_queue[i]; + if (iq->evt == evt && iq->linecnt >= 0) + return i; + } + return -1; } #ifdef INPUTDEVICE_SIMPLE @@ -1814,49 +2005,54 @@ static void queue_input_event (int evt, int state, int max, int linecnt) static void queue_input_event (int evt, const TCHAR *custom, int state, int max, int linecnt, int autofire) #endif { - struct input_queue_struct *iq; - int idx; + struct input_queue_struct *iq; + int idx; - if (!evt) - return; - idx = check_input_queue (evt); - if (state < 0 && idx >= 0) { - iq = &input_queue[idx]; - iq->nextlinecnt = -1; - iq->linecnt = -1; - iq->evt = 0; - if (iq->state == 0 && evt > 0) + if (!evt) + return; + idx = check_input_queue (evt); + if (state < 0 && idx >= 0) + { + iq = &input_queue[idx]; + iq->nextlinecnt = -1; + iq->linecnt = -1; + iq->evt = 0; + if (iq->state == 0 && evt > 0) #ifdef INPUTDEVICE_SIMPLE - handle_input_event (evt, 0, 1, 0); + handle_input_event (evt, 0, 1, 0); #else - handle_input_event (evt, 0, 1, 0, false, false); + handle_input_event (evt, 0, 1, 0, false, false); #endif - } else if (state >= 0 && idx < 0) { + } + else if (state >= 0 && idx < 0) + { #ifdef INPUTDEVICE_SIMPLE - if (evt == 0) + if (evt == 0) #else - if (evt == 0 && custom == NULL) + if (evt == 0 && custom == NULL) #endif - return; - for (idx = 0; idx < INPUT_QUEUE_SIZE; idx++) { - iq = &input_queue[idx]; - if (iq->linecnt < 0) - break; - } - if (idx == INPUT_QUEUE_SIZE) { - write_log (_T("input queue overflow\n")); - return; - } - iq->evt = evt; - iq->state = iq->storedstate = state; - iq->max = max; - iq->linecnt = linecnt < 0 ? maxvpos + maxvpos / 2 : linecnt; + return; + for (idx = 0; idx < INPUT_QUEUE_SIZE; idx++) + { + iq = &input_queue[idx]; + if (iq->linecnt < 0) + break; + } + if (idx == INPUT_QUEUE_SIZE) + { + write_log (_T("input queue overflow\n")); + return; + } + iq->evt = evt; + iq->state = iq->storedstate = state; + iq->max = max; + iq->linecnt = linecnt < 0 ? maxvpos + maxvpos / 2 : linecnt; #ifdef INPUTDEVICE_SIMPLE - iq->nextlinecnt = linecnt; + iq->nextlinecnt = linecnt; #else - iq->nextlinecnt = autofire > 0 ? linecnt : -1; + iq->nextlinecnt = autofire > 0 ? linecnt : -1; #endif - } + } } static uae_u8 keybuf[256]; @@ -1864,65 +2060,67 @@ static int inputcode_pending, inputcode_pending_state; void inputdevice_add_inputcode (int code, int state) { - inputcode_pending = code; - inputcode_pending_state = state; + inputcode_pending = code; + inputcode_pending_state = state; } void inputdevice_do_keyboard (int code, int state) { - if (code < 0x80) { - uae_u8 key = code | (state ? 0x00 : 0x80); - keybuf[key & 0x7f] = (key & 0x80) ? 0 : 1; - if (record_key ((uae_u8)((key << 1) | (key >> 7)))) { - } - return; - } - inputdevice_add_inputcode (code, state); + if (code < 0x80) + { + uae_u8 key = code | (state ? 0x00 : 0x80); + keybuf[key & 0x7f] = (key & 0x80) ? 0 : 1; + if (record_key ((uae_u8)((key << 1) | (key >> 7)))) + { + } + return; + } + inputdevice_add_inputcode (code, state); } void inputdevice_handle_inputcode (void) { - int code = inputcode_pending; - int state = inputcode_pending_state; + int code = inputcode_pending; + int state = inputcode_pending_state; - if (code == 0) - return; + if (code == 0) + return; - inputcode_pending = 0; + inputcode_pending = 0; - if (!state) - return; - switch (code) - { - case AKS_ENTERGUI: - gui_display (-1); - setsystime (); - break; - case AKS_QUIT: - uae_quit (); - break; - case AKS_SOFTRESET: - uae_reset (0, 0); - break; - case AKS_HARDRESET: - uae_reset (1, 1); - break; - } + if (!state) + return; + switch (code) + { + case AKS_ENTERGUI: + gui_display (-1); + setsystime (); + break; + case AKS_QUIT: + uae_quit (); + break; + case AKS_SOFTRESET: + uae_reset (0, 0); + break; + case AKS_HARDRESET: + uae_reset (1, 1); + break; + } } STATIC_INLINE int getqualid (int evt) { - if (evt > INPUTEVENT_SPC_QUALIFIER_START && evt < INPUTEVENT_SPC_QUALIFIER_END) - return evt - INPUTEVENT_SPC_QUALIFIER1; - return -1; + if (evt > INPUTEVENT_SPC_QUALIFIER_START && evt < INPUTEVENT_SPC_QUALIFIER_END) + return evt - INPUTEVENT_SPC_QUALIFIER1; + return -1; } STATIC_INLINE uae_u64 isqual (int evt) { - int num = getqualid (evt); - if (num < 0) - return 0; - return ID_FLAG_QUALIFIER1 << (num * 2); + int num = getqualid (evt); + if (num < 0) + return 0; + return ID_FLAG_QUALIFIER1 << (num * 2); } #ifdef INPUTDEVICE_SIMPLE @@ -1931,700 +2129,825 @@ static int handle_input_event (int nr, int state, int max, int autofire) static int handle_input_event (int nr, int state, int max, int autofire, bool canstopplayback, bool playbackevent) #endif { - struct inputevent *ie; - int joy; - bool isaks = false; + struct inputevent *ie; + int joy; + bool isaks = false; - if (nr <= 0 || nr == INPUTEVENT_SPC_CUSTOM_EVENT) - return 0; + if (nr <= 0 || nr == INPUTEVENT_SPC_CUSTOM_EVENT) + return 0; #ifdef _WIN32 - // ignore norrmal GUI event if forced gui key is in use - if (currprefs.win32_guikey >= 0 && nr == INPUTEVENT_SPC_ENTERGUI) - return 0; + // ignore norrmal GUI event if forced gui key is in use + if (currprefs.win32_guikey >= 0 && nr == INPUTEVENT_SPC_ENTERGUI) + return 0; #endif - ie = &events[nr]; - if (isqual (nr)) - return 0; // qualifiers do nothing - if (ie->unit == 0 && ie->data >= AKS_FIRST) { - isaks = true; - if (!state) // release AKS_ does nothing - return 0; - } + ie = &events[nr]; + if (isqual (nr)) + return 0; // qualifiers do nothing + if (ie->unit == 0 && ie->data >= AKS_FIRST) + { + isaks = true; + if (!state) // release AKS_ does nothing + return 0; + } - if (autofire) { + if (autofire) + { #ifdef INPUTDEVICE_SIMPLE - if (state) - queue_input_event (nr, state, max, currprefs.input_autofire_linecnt); - else - queue_input_event (nr, -1, 0, 0); + if (state) + queue_input_event (nr, state, max, currprefs.input_autofire_linecnt); + else + queue_input_event (nr, -1, 0, 0); #else - if (state) - queue_input_event (nr, NULL, state, max, currprefs.input_autofire_linecnt, 1); - else - queue_input_event (nr, NULL, -1, 0, 0, 1); + if (state) + queue_input_event (nr, NULL, state, max, currprefs.input_autofire_linecnt, 1); + else + queue_input_event (nr, NULL, -1, 0, 0, 1); #endif - } - switch (ie->unit) - { - case 1: /* ->JOY1 */ - case 2: /* ->JOY2 */ - case 3: /* ->Parallel port joystick adapter port #1 */ - case 4: /* ->Parallel port joystick adapter port #2 */ - joy = ie->unit - 1; - if (ie->type & 4) { - int old = joybutton[joy] & (1 << ie->data); + } + switch (ie->unit) + { + case 1: /* ->JOY1 */ + case 2: /* ->JOY2 */ + case 3: /* ->Parallel port joystick adapter port #1 */ + case 4: /* ->Parallel port joystick adapter port #2 */ + joy = ie->unit - 1; + if (ie->type & 4) + { + int old = joybutton[joy] & (1 << ie->data); - if (state) { - joybutton[joy] |= 1 << ie->data; - } else { - joybutton[joy] &= ~(1 << ie->data); - } + if (state) + { + joybutton[joy] |= 1 << ie->data; + } + else + { + joybutton[joy] &= ~(1 << ie->data); + } - } else if (ie->type & 8) { + } + else if (ie->type & 8) + { - /* real mouse / analog stick mouse emulation */ - int delta; - int deadzone = currprefs.input_joymouse_deadzone * max / 100; - int unit = ie->data & 0x7f; + /* real mouse / analog stick mouse emulation */ + int delta; + int deadzone = currprefs.input_joymouse_deadzone * max / 100; + int unit = ie->data & 0x7f; - if (max) { - if (state <= deadzone && state >= -deadzone) { - state = 0; - mouse_deltanoreset[joy][unit] = 0; - } else if (state < 0) { - state += deadzone; - mouse_deltanoreset[joy][unit] = 1; - } else { - state -= deadzone; - mouse_deltanoreset[joy][unit] = 1; - } - max -= deadzone; - delta = state * currprefs.input_joymouse_multiplier / max; - } else { - delta = state; - mouse_deltanoreset[joy][unit] = 0; - } + if (max) + { + if (state <= deadzone && state >= -deadzone) + { + state = 0; + mouse_deltanoreset[joy][unit] = 0; + } + else if (state < 0) + { + state += deadzone; + mouse_deltanoreset[joy][unit] = 1; + } + else + { + state -= deadzone; + mouse_deltanoreset[joy][unit] = 1; + } + max -= deadzone; + delta = state * currprefs.input_joymouse_multiplier / max; + } + else + { + delta = state; + mouse_deltanoreset[joy][unit] = 0; + } - if (ie->data & IE_INVERT) - delta = -delta; + if (ie->data & IE_INVERT) + delta = -delta; - if (max) - mouse_delta[joy][unit] = delta; - else - mouse_delta[joy][unit] += delta; + if (max) + mouse_delta[joy][unit] = delta; + else + mouse_delta[joy][unit] += delta; - max = 32; - } else if (ie->type & 32) { /* button mouse emulation vertical */ + max = 32; + } + else if (ie->type & 32) /* button mouse emulation vertical */ + { - int speed = currprefs.input_joymouse_speed; + int speed = currprefs.input_joymouse_speed; - if (state && (ie->data & DIR_UP)) { - mouse_delta[joy][1] = -speed; - mouse_deltanoreset[joy][1] = 1; - } else if (state && (ie->data & DIR_DOWN)) { - mouse_delta[joy][1] = speed; - mouse_deltanoreset[joy][1] = 1; - } else - mouse_deltanoreset[joy][1] = 0; + if (state && (ie->data & DIR_UP)) + { + mouse_delta[joy][1] = -speed; + mouse_deltanoreset[joy][1] = 1; + } + else if (state && (ie->data & DIR_DOWN)) + { + mouse_delta[joy][1] = speed; + mouse_deltanoreset[joy][1] = 1; + } + else + mouse_deltanoreset[joy][1] = 0; - } else if (ie->type & 64) { /* button mouse emulation horizontal */ + } + else if (ie->type & 64) /* button mouse emulation horizontal */ + { - int speed = currprefs.input_joymouse_speed; + int speed = currprefs.input_joymouse_speed; - if (state && (ie->data & DIR_LEFT)) { - mouse_delta[joy][0] = -speed; - mouse_deltanoreset[joy][0] = 1; - } else if (state && (ie->data & DIR_RIGHT)) { - mouse_delta[joy][0] = speed; - mouse_deltanoreset[joy][0] = 1; - } else - mouse_deltanoreset[joy][0] = 0; + if (state && (ie->data & DIR_LEFT)) + { + mouse_delta[joy][0] = -speed; + mouse_deltanoreset[joy][0] = 1; + } + else if (state && (ie->data & DIR_RIGHT)) + { + mouse_delta[joy][0] = speed; + mouse_deltanoreset[joy][0] = 1; + } + else + mouse_deltanoreset[joy][0] = 0; - } else if (ie->type & 128) { /* analog joystick / paddle */ + } + else if (ie->type & 128) /* analog joystick / paddle */ + { #ifndef INPUTDEVICE_SIMPLE - int deadzone = currprefs.input_joymouse_deadzone * max / 100; - int unit = ie->data & 0x7f; - if (max) { - if (state <= deadzone && state >= -deadzone) { - state = 0; - } else if (state < 0) { - state += deadzone; - } else { - state -= deadzone; - } - state = state * max / (max - deadzone); - } - if (ie->data & IE_INVERT) - state = -state; + int deadzone = currprefs.input_joymouse_deadzone * max / 100; + int unit = ie->data & 0x7f; + if (max) + { + if (state <= deadzone && state >= -deadzone) + { + state = 0; + } + else if (state < 0) + { + state += deadzone; + } + else + { + state -= deadzone; + } + state = state * max / (max - deadzone); + } + if (ie->data & IE_INVERT) + state = -state; - state = state * currprefs.input_analog_joystick_mult / max; - state += (128 * currprefs.input_analog_joystick_mult / 100) + currprefs.input_analog_joystick_offset; - if (state < 0) - state = 0; - if (state > 255) - state = 255; - joydirpot[joy][unit] = state; - mouse_deltanoreset[joy][0] = 1; - mouse_deltanoreset[joy][1] = 1; + state = state * currprefs.input_analog_joystick_mult / max; + state += (128 * currprefs.input_analog_joystick_mult / 100) + currprefs.input_analog_joystick_offset; + if (state < 0) + state = 0; + if (state > 255) + state = 255; + joydirpot[joy][unit] = state; + mouse_deltanoreset[joy][0] = 1; + mouse_deltanoreset[joy][1] = 1; #endif - } else { + } + else + { - int left = oleft[joy], right = oright[joy], top = otop[joy], bot = obot[joy]; - if (ie->type & 16) { - /* button to axis mapping */ - if (ie->data & DIR_LEFT) { - left = oleft[joy] = state ? 1 : 0; - } - if (ie->data & DIR_RIGHT) { - right = oright[joy] = state ? 1 : 0; - } - if (ie->data & DIR_UP) { - top = otop[joy] = state ? 1 : 0; - } - if (ie->data & DIR_DOWN) { - bot = obot[joy] = state ? 1 : 0; - } - } else { - /* "normal" joystick axis */ - int deadzone = currprefs.input_joystick_deadzone * max / 100; - int neg, pos; - if (state < deadzone && state > -deadzone) - state = 0; - neg = state < 0 ? 1 : 0; - pos = state > 0 ? 1 : 0; - if (ie->data & DIR_LEFT) { - left = oleft[joy] = neg; - } - if (ie->data & DIR_RIGHT) { - right = oright[joy] = pos; - } - if (ie->data & DIR_UP) { - top = otop[joy] = neg; - } - if (ie->data & DIR_DOWN) { - bot = obot[joy] = pos; - } - } - mouse_deltanoreset[joy][0] = 1; - mouse_deltanoreset[joy][1] = 1; - joydir[joy] = 0; - if (left) - joydir[joy] |= DIR_LEFT; - if (right) - joydir[joy] |= DIR_RIGHT; - if (top) - joydir[joy] |= DIR_UP; - if (bot) - joydir[joy] |= DIR_DOWN; - if (joy == 0 || joy == 1) - joymousecounter (joy); - } - break; - case 0: /* ->KEY */ - inputdevice_do_keyboard (ie->data, state); - break; - } - return 1; + int left = oleft[joy], right = oright[joy], top = otop[joy], bot = obot[joy]; + if (ie->type & 16) + { + /* button to axis mapping */ + if (ie->data & DIR_LEFT) + { + left = oleft[joy] = state ? 1 : 0; + } + if (ie->data & DIR_RIGHT) + { + right = oright[joy] = state ? 1 : 0; + } + if (ie->data & DIR_UP) + { + top = otop[joy] = state ? 1 : 0; + } + if (ie->data & DIR_DOWN) + { + bot = obot[joy] = state ? 1 : 0; + } + } + else + { + /* "normal" joystick axis */ + int deadzone = currprefs.input_joystick_deadzone * max / 100; + int neg, pos; + if (state < deadzone && state > -deadzone) + state = 0; + neg = state < 0 ? 1 : 0; + pos = state > 0 ? 1 : 0; + if (ie->data & DIR_LEFT) + { + left = oleft[joy] = neg; + } + if (ie->data & DIR_RIGHT) + { + right = oright[joy] = pos; + } + if (ie->data & DIR_UP) + { + top = otop[joy] = neg; + } + if (ie->data & DIR_DOWN) + { + bot = obot[joy] = pos; + } + } + mouse_deltanoreset[joy][0] = 1; + mouse_deltanoreset[joy][1] = 1; + joydir[joy] = 0; + if (left) + joydir[joy] |= DIR_LEFT; + if (right) + joydir[joy] |= DIR_RIGHT; + if (top) + joydir[joy] |= DIR_UP; + if (bot) + joydir[joy] |= DIR_DOWN; + if (joy == 0 || joy == 1) + joymousecounter (joy); + } + break; + case 0: /* ->KEY */ + inputdevice_do_keyboard (ie->data, state); + break; + } + return 1; } static void inputdevice_checkconfig (void) { - if ( - currprefs.jports[0].id != changed_prefs.jports[0].id || - currprefs.jports[1].id != changed_prefs.jports[1].id || + if ( + currprefs.jports[0].id != changed_prefs.jports[0].id || + currprefs.jports[1].id != changed_prefs.jports[1].id || #ifndef INPUTDEVICE_SIMPLE - currprefs.jports[2].id != changed_prefs.jports[2].id || - currprefs.jports[3].id != changed_prefs.jports[3].id || + currprefs.jports[2].id != changed_prefs.jports[2].id || + currprefs.jports[3].id != changed_prefs.jports[3].id || #endif - currprefs.jports[0].mode != changed_prefs.jports[0].mode || - currprefs.jports[1].mode != changed_prefs.jports[1].mode || + currprefs.jports[0].mode != changed_prefs.jports[0].mode || + currprefs.jports[1].mode != changed_prefs.jports[1].mode || #ifndef INPUTDEVICE_SIMPLE - currprefs.jports[2].mode != changed_prefs.jports[2].mode || - currprefs.jports[3].mode != changed_prefs.jports[3].mode || + currprefs.jports[2].mode != changed_prefs.jports[2].mode || + currprefs.jports[3].mode != changed_prefs.jports[3].mode || #endif - currprefs.input_selected_setting != changed_prefs.input_selected_setting || - currprefs.input_joymouse_multiplier != changed_prefs.input_joymouse_multiplier || - currprefs.input_joymouse_deadzone != changed_prefs.input_joymouse_deadzone || - currprefs.input_joystick_deadzone != changed_prefs.input_joystick_deadzone || - currprefs.input_joymouse_speed != changed_prefs.input_joymouse_speed || - currprefs.input_autofire_linecnt != changed_prefs.input_autofire_linecnt || - currprefs.input_mouse_speed != changed_prefs.input_mouse_speed) { + currprefs.input_selected_setting != changed_prefs.input_selected_setting || + currprefs.input_joymouse_multiplier != changed_prefs.input_joymouse_multiplier || + currprefs.input_joymouse_deadzone != changed_prefs.input_joymouse_deadzone || + currprefs.input_joystick_deadzone != changed_prefs.input_joystick_deadzone || + currprefs.input_joymouse_speed != changed_prefs.input_joymouse_speed || + currprefs.input_autofire_linecnt != changed_prefs.input_autofire_linecnt || + currprefs.input_mouse_speed != changed_prefs.input_mouse_speed) + { - currprefs.input_selected_setting = changed_prefs.input_selected_setting; - currprefs.input_joymouse_multiplier = changed_prefs.input_joymouse_multiplier; - currprefs.input_joymouse_deadzone = changed_prefs.input_joymouse_deadzone; - currprefs.input_joystick_deadzone = changed_prefs.input_joystick_deadzone; - currprefs.input_joymouse_speed = changed_prefs.input_joymouse_speed; - currprefs.input_autofire_linecnt = changed_prefs.input_autofire_linecnt; - currprefs.input_mouse_speed = changed_prefs.input_mouse_speed; + currprefs.input_selected_setting = changed_prefs.input_selected_setting; + currprefs.input_joymouse_multiplier = changed_prefs.input_joymouse_multiplier; + currprefs.input_joymouse_deadzone = changed_prefs.input_joymouse_deadzone; + currprefs.input_joystick_deadzone = changed_prefs.input_joystick_deadzone; + currprefs.input_joymouse_speed = changed_prefs.input_joymouse_speed; + currprefs.input_autofire_linecnt = changed_prefs.input_autofire_linecnt; + currprefs.input_mouse_speed = changed_prefs.input_mouse_speed; - inputdevice_updateconfig (&changed_prefs, &currprefs); - } + inputdevice_updateconfig (&changed_prefs, &currprefs); + } } void inputdevice_vsync (void) { - input_frame++; - mouseupdate (0, true); + input_frame++; + mouseupdate (0, true); - inputdevice_read (); - inputdelay = uaerand () % (maxvpos <= 1 ? 1 : maxvpos - 1); + inputdevice_read (); + inputdelay = uaerand () % (maxvpos <= 1 ? 1 : maxvpos - 1); - inputdevice_handle_inputcode (); - if (mousehack_alive_cnt > 0) { - mousehack_alive_cnt--; - } else if (mousehack_alive_cnt < 0) { - mousehack_alive_cnt++; - if (mousehack_alive_cnt == 0) { - mousehack_alive_cnt = 100; - } - } - inputdevice_checkconfig (); + inputdevice_handle_inputcode (); + if (mousehack_alive_cnt > 0) + { + mousehack_alive_cnt--; + } + else if (mousehack_alive_cnt < 0) + { + mousehack_alive_cnt++; + if (mousehack_alive_cnt == 0) + { + mousehack_alive_cnt = 100; + } + } + inputdevice_checkconfig (); } void inputdevice_reset (void) { - mousehack_reset (); - if (inputdevice_is_tablet ()) - mousehack_enable (); - potgo_value = 0; + mousehack_reset (); + if (inputdevice_is_tablet ()) + mousehack_enable (); + potgo_value = 0; } static int getoldport (struct uae_input_device *id) { - int i, j; + int i, j; - for (i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) { - for (j = 0; j < MAX_INPUT_SUB_EVENT; j++) { - int evt = id->eventid[i][j]; - if (evt > 0) { - int unit = events[evt].unit; - if (unit >= 1 && unit <= 4) - return unit; - } - } - } - return -1; + for (i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) + { + for (j = 0; j < MAX_INPUT_SUB_EVENT; j++) + { + int evt = id->eventid[i][j]; + if (evt > 0) + { + int unit = events[evt].unit; + if (unit >= 1 && unit <= 4) + return unit; + } + } + } + return -1; } static int switchdevice (struct uae_input_device *id, int num, bool buttonmode) { - int i, j; - int ismouse = 0; - int newport = 0; - int flags = 0; - TCHAR *name = NULL; - int otherbuttonpressed = 0; + int i, j; + int ismouse = 0; + int newport = 0; + int flags = 0; + TCHAR *name = NULL; + int otherbuttonpressed = 0; - if (num >= 4) - return 0; - for (i = 0; i < MAX_INPUT_DEVICES; i++) { - if (id == &joysticks[i]) { - name = idev[IDTYPE_JOYSTICK].get_uniquename (i); - newport = num == 0 ? 1 : 0; - flags = idev[IDTYPE_JOYSTICK].get_flags (i); - for (j = 0; j < MAX_INPUT_DEVICES; j++) { - if (j != i) { - struct uae_input_device2 *id2 = &joysticks2[j]; - if (id2->buttonmask) - otherbuttonpressed = 1; - } - } - } - if (id == &mice[i]) { - ismouse = 1; - name = idev[IDTYPE_MOUSE].get_uniquename (i); - newport = num == 0 ? 0 : 1; - flags = idev[IDTYPE_MOUSE].get_flags (i); - } - } - if (!name) - return 0; - if (buttonmode) { - if (num == 0 && otherbuttonpressed) - newport = newport ? 0 : 1; - } else { - newport = num ? 1 : 0; - } - /* "GamePorts" switch if in GamePorts mode or Input mode and GamePorts port was not NONE */ - if (currprefs.input_selected_setting == GAMEPORT_INPUT_SETTINGS || currprefs.jports[newport].id != JPORT_NONE) { - if ((num == 0 || num == 1) && currprefs.jports[newport].id != JPORT_CUSTOM) { - int om = jsem_ismouse (num, &currprefs); - int om1 = jsem_ismouse (0, &currprefs); - int om2 = jsem_ismouse (1, &currprefs); - if ((om1 >= 0 || om2 >= 0) && ismouse) - return 0; - if (flags) - return 0; - if (name) { - write_log (_T("inputdevice change '%s':%d->%d\n"), name, num, newport); - inputdevice_joyport_config (&changed_prefs, name, newport, -1, 2); - inputdevice_copyconfig (&changed_prefs, &currprefs); - return 1; - } - } - return 0; - } else { - int oldport = getoldport (id); - int k, evt; - struct inputevent *ie, *ie2; + if (num >= 4) + return 0; + for (i = 0; i < MAX_INPUT_DEVICES; i++) + { + if (id == &joysticks[i]) + { + name = idev[IDTYPE_JOYSTICK].get_uniquename (i); + newport = num == 0 ? 1 : 0; + flags = idev[IDTYPE_JOYSTICK].get_flags (i); + for (j = 0; j < MAX_INPUT_DEVICES; j++) + { + if (j != i) + { + struct uae_input_device2 *id2 = &joysticks2[j]; + if (id2->buttonmask) + otherbuttonpressed = 1; + } + } + } + if (id == &mice[i]) + { + ismouse = 1; + name = idev[IDTYPE_MOUSE].get_uniquename (i); + newport = num == 0 ? 0 : 1; + flags = idev[IDTYPE_MOUSE].get_flags (i); + } + } + if (!name) + return 0; + if (buttonmode) + { + if (num == 0 && otherbuttonpressed) + newport = newport ? 0 : 1; + } + else + { + newport = num ? 1 : 0; + } + /* "GamePorts" switch if in GamePorts mode or Input mode and GamePorts port was not NONE */ + if (currprefs.input_selected_setting == GAMEPORT_INPUT_SETTINGS || currprefs.jports[newport].id != JPORT_NONE) + { + if ((num == 0 || num == 1) && currprefs.jports[newport].id != JPORT_CUSTOM) + { + int om = jsem_ismouse (num, &currprefs); + int om1 = jsem_ismouse (0, &currprefs); + int om2 = jsem_ismouse (1, &currprefs); + if ((om1 >= 0 || om2 >= 0) && ismouse) + return 0; + if (flags) + return 0; + if (name) + { + write_log (_T("inputdevice change '%s':%d->%d\n"), name, num, newport); + inputdevice_joyport_config (&changed_prefs, name, newport, -1, 2); + inputdevice_copyconfig (&changed_prefs, &currprefs); + return 1; + } + } + return 0; + } + else + { + int oldport = getoldport (id); + int k, evt; + struct inputevent *ie, *ie2; - if (flags) - return 0; - if (oldport <= 0) - return 0; - newport++; - /* do not switch if switching mouse and any "supermouse" mouse enabled */ - if (ismouse) { - for (i = 0; i < MAX_INPUT_SETTINGS; i++) { - if (mice[i].enabled && idev[IDTYPE_MOUSE].get_flags (i)) - return 0; - } - } - for (i = 0; i < MAX_INPUT_SETTINGS; i++) { - if (getoldport (&joysticks[i]) == newport) - joysticks[i].enabled = 0; - if (getoldport (&mice[i]) == newport) - mice[i].enabled = 0; - } - id->enabled = 1; - for (i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) { - for (j = 0; j < MAX_INPUT_SUB_EVENT; j++) { - evt = id->eventid[i][j]; - if (evt <= 0) - continue; - ie = &events[evt]; - if (ie->unit == oldport) { - k = 1; - while (events[k].confname) { - ie2 = &events[k]; - if (ie2->type == ie->type && ie2->data == ie->data && ie2->allow_mask == ie->allow_mask && ie2->unit == newport) { - id->eventid[i][j] = k; - break; - } - k++; - } - } else if (ie->unit == newport) { - k = 1; - while (events[k].confname) { - ie2 = &events[k]; - if (ie2->type == ie->type && ie2->data == ie->data && ie2->allow_mask == ie->allow_mask && ie2->unit == oldport) { - id->eventid[i][j] = k; - break; - } - k++; - } - } - } - } - write_log (_T("inputdevice change '%s':%d->%d\n"), name, num, newport); - inputdevice_copyconfig (&currprefs, &changed_prefs); - inputdevice_copyconfig (&changed_prefs, &currprefs); - return 1; - } - return 0; + if (flags) + return 0; + if (oldport <= 0) + return 0; + newport++; + /* do not switch if switching mouse and any "supermouse" mouse enabled */ + if (ismouse) + { + for (i = 0; i < MAX_INPUT_SETTINGS; i++) + { + if (mice[i].enabled && idev[IDTYPE_MOUSE].get_flags (i)) + return 0; + } + } + for (i = 0; i < MAX_INPUT_SETTINGS; i++) + { + if (getoldport (&joysticks[i]) == newport) + joysticks[i].enabled = 0; + if (getoldport (&mice[i]) == newport) + mice[i].enabled = 0; + } + id->enabled = 1; + for (i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) + { + for (j = 0; j < MAX_INPUT_SUB_EVENT; j++) + { + evt = id->eventid[i][j]; + if (evt <= 0) + continue; + ie = &events[evt]; + if (ie->unit == oldport) + { + k = 1; + while (events[k].confname) + { + ie2 = &events[k]; + if (ie2->type == ie->type && ie2->data == ie->data && ie2->allow_mask == ie->allow_mask && ie2->unit == newport) + { + id->eventid[i][j] = k; + break; + } + k++; + } + } + else if (ie->unit == newport) + { + k = 1; + while (events[k].confname) + { + ie2 = &events[k]; + if (ie2->type == ie->type && ie2->data == ie->data && ie2->allow_mask == ie->allow_mask && ie2->unit == oldport) + { + id->eventid[i][j] = k; + break; + } + k++; + } + } + } + } + write_log (_T("inputdevice change '%s':%d->%d\n"), name, num, newport); + inputdevice_copyconfig (&currprefs, &changed_prefs); + inputdevice_copyconfig (&changed_prefs, &currprefs); + return 1; + } + return 0; } uae_u64 input_getqualifiers (void) { - return qualifiers; + return qualifiers; } static bool checkqualifiers (int evt, uae_u64 flags, uae_u64 *qualmask, uae_s16 events[MAX_INPUT_SUB_EVENT_ALL]) { - int i, j; - int qualid = getqualid (evt); - int nomatch = 0; - bool isspecial = (qualifiers & (ID_FLAG_QUALIFIER_SPECIAL | ID_FLAG_QUALIFIER_SPECIAL_R)) != 0; + int i, j; + int qualid = getqualid (evt); + int nomatch = 0; + bool isspecial = (qualifiers & (ID_FLAG_QUALIFIER_SPECIAL | ID_FLAG_QUALIFIER_SPECIAL_R)) != 0; - flags &= ID_FLAG_QUALIFIER_MASK; - if (qualid >= 0 && events) - qualifiers_evt[qualid] = events; - /* special set and new qualifier pressed? do not sent it to Amiga-side */ - if ((qualifiers & (ID_FLAG_QUALIFIER_SPECIAL | ID_FLAG_QUALIFIER_SPECIAL_R)) && qualid >= 0) - return false; + flags &= ID_FLAG_QUALIFIER_MASK; + if (qualid >= 0 && events) + qualifiers_evt[qualid] = events; + /* special set and new qualifier pressed? do not sent it to Amiga-side */ + if ((qualifiers & (ID_FLAG_QUALIFIER_SPECIAL | ID_FLAG_QUALIFIER_SPECIAL_R)) && qualid >= 0) + return false; - for (i = 0; i < MAX_INPUT_SUB_EVENT; i++) { - if (qualmask[i]) - break; - } - if (i == MAX_INPUT_SUB_EVENT) { - // no qualifiers in any slot and no special = always match - return isspecial == false; - } + for (i = 0; i < MAX_INPUT_SUB_EVENT; i++) + { + if (qualmask[i]) + break; + } + if (i == MAX_INPUT_SUB_EVENT) + { + // no qualifiers in any slot and no special = always match + return isspecial == false; + } - for (i = 0; i < MAX_INPUT_SUB_EVENT; i++) { - for (j = 0; j < MAX_INPUT_QUALIFIERS; j++) { - uae_u64 mask = (ID_FLAG_QUALIFIER1 | ID_FLAG_QUALIFIER1_R) << (j * 2); - bool isqualmask = (qualmask[i] & mask) != 0; - bool isqual = (qualifiers & mask) != 0; - if (isqualmask != isqual) { - nomatch++; - break; - } - } - } - if (nomatch == MAX_INPUT_SUB_EVENT) { - // no matched qualifiers in any slot - // allow all slots without qualifiers - // special = never accept - if (isspecial) - return false; - return flags ? false : true; - } + for (i = 0; i < MAX_INPUT_SUB_EVENT; i++) + { + for (j = 0; j < MAX_INPUT_QUALIFIERS; j++) + { + uae_u64 mask = (ID_FLAG_QUALIFIER1 | ID_FLAG_QUALIFIER1_R) << (j * 2); + bool isqualmask = (qualmask[i] & mask) != 0; + bool isqual = (qualifiers & mask) != 0; + if (isqualmask != isqual) + { + nomatch++; + break; + } + } + } + if (nomatch == MAX_INPUT_SUB_EVENT) + { + // no matched qualifiers in any slot + // allow all slots without qualifiers + // special = never accept + if (isspecial) + return false; + return flags ? false : true; + } - for (i = 0; i < MAX_INPUT_QUALIFIERS; i++) { - uae_u64 mask = (ID_FLAG_QUALIFIER1 | ID_FLAG_QUALIFIER1_R) << (i * 2); - bool isflags = (flags & mask) != 0; - bool isqual = (qualifiers & mask) != 0; - if (isflags != isqual) - return false; - } - return true; + for (i = 0; i < MAX_INPUT_QUALIFIERS; i++) + { + uae_u64 mask = (ID_FLAG_QUALIFIER1 | ID_FLAG_QUALIFIER1_R) << (i * 2); + bool isflags = (flags & mask) != 0; + bool isqual = (qualifiers & mask) != 0; + if (isflags != isqual) + return false; + } + return true; } static void setqualifiers (int evt, int state) { - uae_u64 mask = isqual (evt); - if (!mask) - return; - if (state) - qualifiers |= mask; - else - qualifiers &= ~mask; - //write_log (_T("%llx\n"), qualifiers); + uae_u64 mask = isqual (evt); + if (!mask) + return; + if (state) + qualifiers |= mask; + else + qualifiers &= ~mask; + //write_log (_T("%llx\n"), qualifiers); } static uae_u64 getqualmask (uae_u64 *qualmask, struct uae_input_device *id, int num, bool *qualonly) { - uae_u64 mask = 0, mask2 = 0; - for (int i = 0; i < MAX_INPUT_SUB_EVENT; i++) { - int evt = id->eventid[num][i]; - mask |= id->flags[num][i]; - qualmask[i] = id->flags[num][i] & ID_FLAG_QUALIFIER_MASK; - mask2 |= isqual (evt); - } - mask &= ID_FLAG_QUALIFIER_MASK; - *qualonly = false; - if (qualifiers & ID_FLAG_QUALIFIER_SPECIAL) { - // ID_FLAG_QUALIFIER_SPECIAL already active and this event has one or more qualifiers configured - *qualonly = mask2 != 0; - } - return mask; + uae_u64 mask = 0, mask2 = 0; + for (int i = 0; i < MAX_INPUT_SUB_EVENT; i++) + { + int evt = id->eventid[num][i]; + mask |= id->flags[num][i]; + qualmask[i] = id->flags[num][i] & ID_FLAG_QUALIFIER_MASK; + mask2 |= isqual (evt); + } + mask &= ID_FLAG_QUALIFIER_MASK; + *qualonly = false; + if (qualifiers & ID_FLAG_QUALIFIER_SPECIAL) + { + // ID_FLAG_QUALIFIER_SPECIAL already active and this event has one or more qualifiers configured + *qualonly = mask2 != 0; + } + return mask; } #ifndef INPUTDEVICE_SIMPLE static bool process_custom_event (struct uae_input_device *id, int offset, int state, uae_u64 *qualmask, int autofire, int sub) { - int idx, slotoffset, custompos; - TCHAR *custom; - uae_u64 flags, qual; + int idx, slotoffset, custompos; + TCHAR *custom; + uae_u64 flags, qual; - if (!id) - return false; - - slotoffset = sub & ~3; - sub &= 3; - flags = id->flags[offset][slotoffset]; - qual = flags & ID_FLAG_QUALIFIER_MASK; - custom = id->custom[offset][slotoffset]; - int af = flags & ID_FLAG_AUTOFIRE_MASK; - - for (idx = 1; idx < 4; idx++) { - uae_u64 flags2 = id->flags[offset][slotoffset + idx]; - TCHAR *custom2 = id->custom[offset][slotoffset + idx]; + if (!id) + return false; - // all slots must have same qualifier - if ((flags2 & ID_FLAG_QUALIFIER_MASK) != qual) - break; - // no slot must have autofire - if ((flags2 & ID_FLAG_AUTOFIRE_MASK) || (flags & ID_FLAG_AUTOFIRE_MASK)) - break; - } - // at least slot 0 and 2 must have custom - if (custom == NULL || id->custom[offset][slotoffset + 2] == NULL) - idx = -1; + slotoffset = sub & ~3; + sub &= 3; + flags = id->flags[offset][slotoffset]; + qual = flags & ID_FLAG_QUALIFIER_MASK; + custom = id->custom[offset][slotoffset]; + int af = flags & ID_FLAG_AUTOFIRE_MASK; - if (idx < 4) { - id->flags[offset][slotoffset] &= ~(ID_FLAG_CUSTOMEVENT_TOGGLED1 | ID_FLAG_CUSTOMEVENT_TOGGLED2); - int evt2 = id->eventid[offset][slotoffset + sub]; - uae_u64 flags2 = id->flags[offset][slotoffset + sub]; - if (checkqualifiers (evt2, flags2, qualmask, NULL)) { - custom = id->custom[offset][slotoffset + sub]; - if (state && custom) { - if (autofire) - queue_input_event (-1, custom, 1, 1, currprefs.input_autofire_linecnt, 1); - handle_custom_event (custom); - return true; - } - } - return false; - } + for (idx = 1; idx < 4; idx++) + { + uae_u64 flags2 = id->flags[offset][slotoffset + idx]; + TCHAR *custom2 = id->custom[offset][slotoffset + idx]; - if (sub != 0) - return false; + // all slots must have same qualifier + if ((flags2 & ID_FLAG_QUALIFIER_MASK) != qual) + break; + // no slot must have autofire + if ((flags2 & ID_FLAG_AUTOFIRE_MASK) || (flags & ID_FLAG_AUTOFIRE_MASK)) + break; + } + // at least slot 0 and 2 must have custom + if (custom == NULL || id->custom[offset][slotoffset + 2] == NULL) + idx = -1; - slotoffset = 0; - if (!checkqualifiers (id->eventid[offset][slotoffset], id->flags[offset][slotoffset], qualmask, NULL)) { - slotoffset = 4; - if (!checkqualifiers (id->eventid[offset][slotoffset], id->flags[offset][slotoffset], qualmask, NULL)) - return false; - } + if (idx < 4) + { + id->flags[offset][slotoffset] &= ~(ID_FLAG_CUSTOMEVENT_TOGGLED1 | ID_FLAG_CUSTOMEVENT_TOGGLED2); + int evt2 = id->eventid[offset][slotoffset + sub]; + uae_u64 flags2 = id->flags[offset][slotoffset + sub]; + if (checkqualifiers (evt2, flags2, qualmask, NULL)) + { + custom = id->custom[offset][slotoffset + sub]; + if (state && custom) + { + if (autofire) + queue_input_event (-1, custom, 1, 1, currprefs.input_autofire_linecnt, 1); + handle_custom_event (custom); + return true; + } + } + return false; + } - flags = id->flags[offset][slotoffset]; - custompos = (flags & ID_FLAG_CUSTOMEVENT_TOGGLED1) ? 1 : 0; - custompos |= (flags & ID_FLAG_CUSTOMEVENT_TOGGLED2) ? 2 : 0; - - if (state < 0) { - idx = 0; - custompos = 0; - } else { - if (state > 0) { - if (custompos & 1) - return false; // waiting for release - } else { - if (!(custompos & 1)) - return false; // waiting for press - } - idx = custompos; - custompos++; - } + if (sub != 0) + return false; - queue_input_event (-1, NULL, -1, 0, 0, 1); + slotoffset = 0; + if (!checkqualifiers (id->eventid[offset][slotoffset], id->flags[offset][slotoffset], qualmask, NULL)) + { + slotoffset = 4; + if (!checkqualifiers (id->eventid[offset][slotoffset], id->flags[offset][slotoffset], qualmask, NULL)) + return false; + } - if ((id->flags[offset][slotoffset + idx] & ID_FLAG_QUALIFIER_MASK) == qual) { - custom = id->custom[offset][slotoffset + idx]; - if (autofire) - queue_input_event (-1, custom, 1, 1, currprefs.input_autofire_linecnt, 1); - if (custom) - handle_custom_event (custom); - } + flags = id->flags[offset][slotoffset]; + custompos = (flags & ID_FLAG_CUSTOMEVENT_TOGGLED1) ? 1 : 0; + custompos |= (flags & ID_FLAG_CUSTOMEVENT_TOGGLED2) ? 2 : 0; - id->flags[offset][slotoffset] &= ~(ID_FLAG_CUSTOMEVENT_TOGGLED1 | ID_FLAG_CUSTOMEVENT_TOGGLED2); - id->flags[offset][slotoffset] |= (custompos & 1) ? ID_FLAG_CUSTOMEVENT_TOGGLED1 : 0; - id->flags[offset][slotoffset] |= (custompos & 2) ? ID_FLAG_CUSTOMEVENT_TOGGLED2 : 0; + if (state < 0) + { + idx = 0; + custompos = 0; + } + else + { + if (state > 0) + { + if (custompos & 1) + return false; // waiting for release + } + else + { + if (!(custompos & 1)) + return false; // waiting for press + } + idx = custompos; + custompos++; + } - return true; + queue_input_event (-1, NULL, -1, 0, 0, 1); + + if ((id->flags[offset][slotoffset + idx] & ID_FLAG_QUALIFIER_MASK) == qual) + { + custom = id->custom[offset][slotoffset + idx]; + if (autofire) + queue_input_event (-1, custom, 1, 1, currprefs.input_autofire_linecnt, 1); + if (custom) + handle_custom_event (custom); + } + + id->flags[offset][slotoffset] &= ~(ID_FLAG_CUSTOMEVENT_TOGGLED1 | ID_FLAG_CUSTOMEVENT_TOGGLED2); + id->flags[offset][slotoffset] |= (custompos & 1) ? ID_FLAG_CUSTOMEVENT_TOGGLED1 : 0; + id->flags[offset][slotoffset] |= (custompos & 2) ? ID_FLAG_CUSTOMEVENT_TOGGLED2 : 0; + + return true; } #endif static void setbuttonstateall (struct uae_input_device *id, struct uae_input_device2 *id2, int button, int state) { - static frame_time_t switchdevice_timeout; - int i; - uae_u32 mask = 1 << button; - uae_u32 omask = id2 ? id2->buttonmask & mask : 0; - uae_u32 nmask = (state ? 1 : 0) << button; - uae_u64 qualmask[MAX_INPUT_SUB_EVENT]; - bool qualonly; + static frame_time_t switchdevice_timeout; + int i; + uae_u32 mask = 1 << button; + uae_u32 omask = id2 ? id2->buttonmask & mask : 0; + uae_u32 nmask = (state ? 1 : 0) << button; + uae_u64 qualmask[MAX_INPUT_SUB_EVENT]; + bool qualonly; - if (!id->enabled) { - frame_time_t t = read_processor_time (); - if (state) { - switchdevice_timeout = t; - } else { - int port = button; - if (t - switchdevice_timeout >= syncbase) // 1s - port ^= 1; - switchdevice (id, port, true); - } - return; - } - if (button >= ID_BUTTON_TOTAL) - return; + if (!id->enabled) + { + frame_time_t t = read_processor_time (); + if (state) + { + switchdevice_timeout = t; + } + else + { + int port = button; + if (t - switchdevice_timeout >= syncbase) // 1s + port ^= 1; + switchdevice (id, port, true); + } + return; + } + if (button >= ID_BUTTON_TOTAL) + return; - getqualmask (qualmask, id, ID_BUTTON_OFFSET + button, &qualonly); + getqualmask (qualmask, id, ID_BUTTON_OFFSET + button, &qualonly); - bool didcustom = false; + bool didcustom = false; - for (i = 0; i < MAX_INPUT_SUB_EVENT; i++) { - int sub = sublevdir[state == 0 ? 1 : 0][i]; - uae_u64 *flagsp = &id->flags[ID_BUTTON_OFFSET + button][sub]; - int evt = id->eventid[ID_BUTTON_OFFSET + button][sub]; - uae_u64 flags = flagsp[0]; - int autofire = (flags & ID_FLAG_AUTOFIRE) ? 1 : 0; + for (i = 0; i < MAX_INPUT_SUB_EVENT; i++) + { + int sub = sublevdir[state == 0 ? 1 : 0][i]; + uae_u64 *flagsp = &id->flags[ID_BUTTON_OFFSET + button][sub]; + int evt = id->eventid[ID_BUTTON_OFFSET + button][sub]; + uae_u64 flags = flagsp[0]; + int autofire = (flags & ID_FLAG_AUTOFIRE) ? 1 : 0; #ifndef INPUTDEVICE_SIMPLE - int toggle = (flags & ID_FLAG_TOGGLE) ? 1 : 0; - int inverttoggle = (flags & ID_FLAG_INVERTTOGGLE) ? 1 : 0; + int toggle = (flags & ID_FLAG_TOGGLE) ? 1 : 0; + int inverttoggle = (flags & ID_FLAG_INVERTTOGGLE) ? 1 : 0; - if (!state) { - didcustom |= process_custom_event (id, ID_BUTTON_OFFSET + button, state, qualmask, autofire, i); - } + if (!state) + { + didcustom |= process_custom_event (id, ID_BUTTON_OFFSET + button, state, qualmask, autofire, i); + } #endif - setqualifiers (evt, state > 0); - if (qualonly) - continue; + setqualifiers (evt, state > 0); + if (qualonly) + continue; #ifndef INPUTDEVICE_SIMPLE - if (state < 0) { - if (!checkqualifiers (evt, flags, qualmask, NULL)) - continue; - handle_input_event (evt, 1, 1, 0, true, false); - didcustom |= process_custom_event (id, ID_BUTTON_OFFSET + button, state, qualmask, 0, i); - } else if (inverttoggle) { - /* pressed = firebutton, not pressed = autofire */ - if (state) { - queue_input_event (evt, NULL, -1, 0, 0, 1); - handle_input_event (evt, 1, 1, 0, true, false); - } else { - handle_input_event (evt, 1, 1, autofire, true, false); - } - didcustom |= process_custom_event (id, ID_BUTTON_OFFSET + button, state, qualmask, autofire, i); - } else if (toggle) { - if (!state) - continue; - if (omask & mask) - continue; - if (!checkqualifiers (evt, flags, qualmask, NULL)) - continue; - *flagsp ^= ID_FLAG_TOGGLED; - int toggled = (*flagsp & ID_FLAG_TOGGLED) ? 1 : 0; - handle_input_event (evt, toggled, 1, autofire, true, false); - didcustom |= process_custom_event (id, ID_BUTTON_OFFSET + button, toggled, qualmask, autofire, i); - } else { + if (state < 0) + { + if (!checkqualifiers (evt, flags, qualmask, NULL)) + continue; + handle_input_event (evt, 1, 1, 0, true, false); + didcustom |= process_custom_event (id, ID_BUTTON_OFFSET + button, state, qualmask, 0, i); + } + else if (inverttoggle) + { + /* pressed = firebutton, not pressed = autofire */ + if (state) + { + queue_input_event (evt, NULL, -1, 0, 0, 1); + handle_input_event (evt, 1, 1, 0, true, false); + } + else + { + handle_input_event (evt, 1, 1, autofire, true, false); + } + didcustom |= process_custom_event (id, ID_BUTTON_OFFSET + button, state, qualmask, autofire, i); + } + else if (toggle) + { + if (!state) + continue; + if (omask & mask) + continue; + if (!checkqualifiers (evt, flags, qualmask, NULL)) + continue; + *flagsp ^= ID_FLAG_TOGGLED; + int toggled = (*flagsp & ID_FLAG_TOGGLED) ? 1 : 0; + handle_input_event (evt, toggled, 1, autofire, true, false); + didcustom |= process_custom_event (id, ID_BUTTON_OFFSET + button, toggled, qualmask, autofire, i); + } + else + { #endif - if (!checkqualifiers (evt, flags, qualmask, NULL)) { - if (!state && !(flags & ID_FLAG_CANRELEASE)) { - continue; - } else if (state) { - continue; - } - } - if (!state) - *flagsp &= ~ID_FLAG_CANRELEASE; - else - *flagsp |= ID_FLAG_CANRELEASE; - if ((omask ^ nmask) & mask) { + if (!checkqualifiers (evt, flags, qualmask, NULL)) + { + if (!state && !(flags & ID_FLAG_CANRELEASE)) + { + continue; + } + else if (state) + { + continue; + } + } + if (!state) + *flagsp &= ~ID_FLAG_CANRELEASE; + else + *flagsp |= ID_FLAG_CANRELEASE; + if ((omask ^ nmask) & mask) + { #ifdef INPUTDEVICE_SIMPLE - handle_input_event (evt, state, 1, autofire); + handle_input_event (evt, state, 1, autofire); #else - handle_input_event (evt, state, 1, autofire, true, false); - if (state) - didcustom |= process_custom_event (id, ID_BUTTON_OFFSET + button, state, qualmask, autofire, i); + handle_input_event (evt, state, 1, autofire, true, false); + if (state) + didcustom |= process_custom_event (id, ID_BUTTON_OFFSET + button, state, qualmask, autofire, i); #endif - } + } #ifndef INPUTDEVICE_SIMPLE - } + } #endif - } + } - if (!didcustom) + if (!didcustom) #ifndef INPUTDEVICE_SIMPLE - queue_input_event (-1, NULL, -1, 0, 0, 1); + queue_input_event (-1, NULL, -1, 0, 0, 1); #else - queue_input_event (-1, -1, 0, 0); + queue_input_event (-1, -1, 0, 0); #endif - if (id2 && ((omask ^ nmask) & mask)) { - if (state) - id2->buttonmask |= mask; - else - id2->buttonmask &= ~mask; - } + if (id2 && ((omask ^ nmask) & mask)) + { + if (state) + id2->buttonmask |= mask; + else + id2->buttonmask &= ~mask; + } } @@ -2635,83 +2958,96 @@ static void setbuttonstateall (struct uae_input_device *id, struct uae_input_dev static int iscd32 (int ei) { - if (ei >= INPUTEVENT_JOY1_CD32_FIRST && ei <= INPUTEVENT_JOY1_CD32_LAST) { - cd32_pad_enabled[0] = 1; - return 1; - } - if (ei >= INPUTEVENT_JOY2_CD32_FIRST && ei <= INPUTEVENT_JOY2_CD32_LAST) { - cd32_pad_enabled[1] = 1; - return 2; - } - return 0; + if (ei >= INPUTEVENT_JOY1_CD32_FIRST && ei <= INPUTEVENT_JOY1_CD32_LAST) + { + cd32_pad_enabled[0] = 1; + return 1; + } + if (ei >= INPUTEVENT_JOY2_CD32_FIRST && ei <= INPUTEVENT_JOY2_CD32_LAST) + { + cd32_pad_enabled[1] = 1; + return 2; + } + return 0; } #ifndef INPUTDEVICE_SIMPLE static int isparport (int ei) { - if (ei > INPUTEVENT_PAR_JOY1_START && ei < INPUTEVENT_PAR_JOY_END) { - parport_joystick_enabled = 1; - return 1; - } - return 0; + if (ei > INPUTEVENT_PAR_JOY1_START && ei < INPUTEVENT_PAR_JOY_END) + { + parport_joystick_enabled = 1; + return 1; + } + return 0; } #endif static int ismouse (int ei) { - if (ei >= INPUTEVENT_MOUSE1_FIRST && ei <= INPUTEVENT_MOUSE1_LAST) { - mouse_port[0] = 1; - return 1; - } - if (ei >= INPUTEVENT_MOUSE2_FIRST && ei <= INPUTEVENT_MOUSE2_LAST) { - mouse_port[1] = 1; - return 2; - } - return 0; + if (ei >= INPUTEVENT_MOUSE1_FIRST && ei <= INPUTEVENT_MOUSE1_LAST) + { + mouse_port[0] = 1; + return 1; + } + if (ei >= INPUTEVENT_MOUSE2_FIRST && ei <= INPUTEVENT_MOUSE2_LAST) + { + mouse_port[1] = 1; + return 2; + } + return 0; } #ifndef INPUTDEVICE_SIMPLE static int isanalog (int ei) { - if (ei == INPUTEVENT_JOY1_HORIZ_POT || ei == INPUTEVENT_JOY1_HORIZ_POT_INV) { - analog_port[0][0] = 1; - return 1; - } - if (ei == INPUTEVENT_JOY1_VERT_POT || ei == INPUTEVENT_JOY1_VERT_POT_INV) { - analog_port[0][1] = 1; - return 1; - } - if (ei == INPUTEVENT_JOY2_HORIZ_POT || ei == INPUTEVENT_JOY2_HORIZ_POT_INV) { - analog_port[1][0] = 1; - return 1; - } - if (ei == INPUTEVENT_JOY2_VERT_POT || ei == INPUTEVENT_JOY2_VERT_POT_INV) { - analog_port[1][1] = 1; - return 1; - } - return 0; + if (ei == INPUTEVENT_JOY1_HORIZ_POT || ei == INPUTEVENT_JOY1_HORIZ_POT_INV) + { + analog_port[0][0] = 1; + return 1; + } + if (ei == INPUTEVENT_JOY1_VERT_POT || ei == INPUTEVENT_JOY1_VERT_POT_INV) + { + analog_port[0][1] = 1; + return 1; + } + if (ei == INPUTEVENT_JOY2_HORIZ_POT || ei == INPUTEVENT_JOY2_HORIZ_POT_INV) + { + analog_port[1][0] = 1; + return 1; + } + if (ei == INPUTEVENT_JOY2_VERT_POT || ei == INPUTEVENT_JOY2_VERT_POT_INV) + { + analog_port[1][1] = 1; + return 1; + } + return 0; } #endif static int isdigitalbutton (int ei) { - if (ei == INPUTEVENT_JOY1_2ND_BUTTON) { - digital_port[0][1] = 1; - return 1; - } - if (ei == INPUTEVENT_JOY1_3RD_BUTTON) { - digital_port[0][0] = 1; - return 1; - } - if (ei == INPUTEVENT_JOY2_2ND_BUTTON) { - digital_port[1][1] = 1; - return 1; - } - if (ei == INPUTEVENT_JOY2_3RD_BUTTON) { - digital_port[1][0] = 1; - return 1; - } - return 0; + if (ei == INPUTEVENT_JOY1_2ND_BUTTON) + { + digital_port[0][1] = 1; + return 1; + } + if (ei == INPUTEVENT_JOY1_3RD_BUTTON) + { + digital_port[0][0] = 1; + return 1; + } + if (ei == INPUTEVENT_JOY2_2ND_BUTTON) + { + digital_port[1][1] = 1; + return 1; + } + if (ei == INPUTEVENT_JOY2_3RD_BUTTON) + { + digital_port[1][0] = 1; + return 1; + } + return 0; } static void isqualifier (int ei) @@ -2720,2140 +3056,2450 @@ static void isqualifier (int ei) static void scanevents (struct uae_prefs *p) { - int i, j, k, ei; - const struct inputevent *e; - int n_joy = idev[IDTYPE_JOYSTICK].get_num (); - int n_mouse = idev[IDTYPE_MOUSE].get_num (); + int i, j, k, ei; + const struct inputevent *e; + int n_joy = idev[IDTYPE_JOYSTICK].get_num (); + int n_mouse = idev[IDTYPE_MOUSE].get_num (); - cd32_pad_enabled[0] = cd32_pad_enabled[1] = 0; + cd32_pad_enabled[0] = cd32_pad_enabled[1] = 0; #ifndef INPUTDEVICE_SIMPLE - parport_joystick_enabled = 0; + parport_joystick_enabled = 0; #endif - mouse_port[0] = mouse_port[1] = 0; - qualifiers = 0; + mouse_port[0] = mouse_port[1] = 0; + qualifiers = 0; - for (i = 0; i < NORMAL_JPORTS; i++) { - for (j = 0; j < 2; j++) { - digital_port[i][j] = 0; + for (i = 0; i < NORMAL_JPORTS; i++) + { + for (j = 0; j < 2; j++) + { + digital_port[i][j] = 0; #ifndef INPUTDEVICE_SIMPLE - analog_port[i][j] = 0; - joydirpot[i][j] = 128 / (312 * 100 / currprefs.input_analog_joystick_mult) + (128 * currprefs.input_analog_joystick_mult / 100) + currprefs.input_analog_joystick_offset; + analog_port[i][j] = 0; + joydirpot[i][j] = 128 / (312 * 100 / currprefs.input_analog_joystick_mult) + (128 * currprefs.input_analog_joystick_mult / 100) + currprefs.input_analog_joystick_offset; #endif - } - } + } + } - for (i = 0; i < MAX_INPUT_DEVICES; i++) { - use_joysticks[i] = 0; - use_mice[i] = 0; - for (k = 0; k < MAX_INPUT_SUB_EVENT; k++) { - for (j = 0; j < ID_BUTTON_TOTAL; j++) { + for (i = 0; i < MAX_INPUT_DEVICES; i++) + { + use_joysticks[i] = 0; + use_mice[i] = 0; + for (k = 0; k < MAX_INPUT_SUB_EVENT; k++) + { + for (j = 0; j < ID_BUTTON_TOTAL; j++) + { - if ((joysticks[i].enabled && i < n_joy) || joysticks[i].enabled < 0) { - ei = joysticks[i].eventid[ID_BUTTON_OFFSET + j][k]; - e = &events[ei]; - iscd32 (ei); + if ((joysticks[i].enabled && i < n_joy) || joysticks[i].enabled < 0) + { + ei = joysticks[i].eventid[ID_BUTTON_OFFSET + j][k]; + e = &events[ei]; + iscd32 (ei); #ifndef INPUTDEVICE_SIMPLE - isparport (ei); + isparport (ei); #endif - ismouse (ei); - isdigitalbutton (ei); + ismouse (ei); + isdigitalbutton (ei); #ifndef INPUTDEVICE_SIMPLE - isqualifier (ei); + isqualifier (ei); #endif - if (joysticks[i].eventid[ID_BUTTON_OFFSET + j][k] > 0) - use_joysticks[i] = 1; - } - if ((mice[i].enabled && i < n_mouse) || mice[i].enabled < 0) { - ei = mice[i].eventid[ID_BUTTON_OFFSET + j][k]; - e = &events[ei]; - iscd32 (ei); + if (joysticks[i].eventid[ID_BUTTON_OFFSET + j][k] > 0) + use_joysticks[i] = 1; + } + if ((mice[i].enabled && i < n_mouse) || mice[i].enabled < 0) + { + ei = mice[i].eventid[ID_BUTTON_OFFSET + j][k]; + e = &events[ei]; + iscd32 (ei); #ifndef INPUTDEVICE_SIMPLE - isparport (ei); + isparport (ei); #endif - ismouse (ei); - isdigitalbutton (ei); + ismouse (ei); + isdigitalbutton (ei); #ifndef INPUTDEVICE_SIMPLE - isqualifier (ei); + isqualifier (ei); #endif - if (mice[i].eventid[ID_BUTTON_OFFSET + j][k] > 0) - use_mice[i] = 1; - } + if (mice[i].eventid[ID_BUTTON_OFFSET + j][k] > 0) + use_mice[i] = 1; + } - } + } - for (j = 0; j < ID_AXIS_TOTAL; j++) { + for (j = 0; j < ID_AXIS_TOTAL; j++) + { - if ((joysticks[i].enabled && i < n_joy) || joysticks[i].enabled < 0) { - ei = joysticks[i].eventid[ID_AXIS_OFFSET + j][k]; - iscd32 (ei); + if ((joysticks[i].enabled && i < n_joy) || joysticks[i].enabled < 0) + { + ei = joysticks[i].eventid[ID_AXIS_OFFSET + j][k]; + iscd32 (ei); #ifndef INPUTDEVICE_SIMPLE - isparport (ei); + isparport (ei); #endif - ismouse (ei); + ismouse (ei); #ifndef INPUTDEVICE_SIMPLE - isanalog (ei); + isanalog (ei); #endif - isdigitalbutton (ei); + isdigitalbutton (ei); #ifndef INPUTDEVICE_SIMPLE - isqualifier (ei); + isqualifier (ei); #endif - if (ei > 0) - use_joysticks[i] = 1; - } - if ((mice[i].enabled && i < n_mouse) || mice[i].enabled < 0) { - ei = mice[i].eventid[ID_AXIS_OFFSET + j][k]; - iscd32 (ei); + if (ei > 0) + use_joysticks[i] = 1; + } + if ((mice[i].enabled && i < n_mouse) || mice[i].enabled < 0) + { + ei = mice[i].eventid[ID_AXIS_OFFSET + j][k]; + iscd32 (ei); #ifndef INPUTDEVICE_SIMPLE - isparport (ei); + isparport (ei); #endif - ismouse (ei); + ismouse (ei); #ifndef INPUTDEVICE_SIMPLE - isanalog (ei); + isanalog (ei); #endif - isdigitalbutton (ei); + isdigitalbutton (ei); #ifndef INPUTDEVICE_SIMPLE - isqualifier (ei); + isqualifier (ei); #endif - if (ei > 0) - use_mice[i] = 1; - } - } - } - } - memset (scancodeused, 0, sizeof scancodeused); - for (i = 0; i < MAX_INPUT_DEVICES; i++) { - use_keyboards[i] = 0; - if (keyboards[i].enabled && i < idev[IDTYPE_KEYBOARD].get_num ()) { - j = 0; - while (j < MAX_INPUT_DEVICE_EVENTS && keyboards[i].extra[j] >= 0) { - use_keyboards[i] = 1; - for (k = 0; k < MAX_INPUT_SUB_EVENT; k++) { - ei = keyboards[i].eventid[j][k]; - iscd32 (ei); + if (ei > 0) + use_mice[i] = 1; + } + } + } + } + memset (scancodeused, 0, sizeof scancodeused); + for (i = 0; i < MAX_INPUT_DEVICES; i++) + { + use_keyboards[i] = 0; + if (keyboards[i].enabled && i < idev[IDTYPE_KEYBOARD].get_num ()) + { + j = 0; + while (j < MAX_INPUT_DEVICE_EVENTS && keyboards[i].extra[j] >= 0) + { + use_keyboards[i] = 1; + for (k = 0; k < MAX_INPUT_SUB_EVENT; k++) + { + ei = keyboards[i].eventid[j][k]; + iscd32 (ei); #ifndef INPUTDEVICE_SIMPLE - isparport (ei); + isparport (ei); #endif - ismouse (ei); - isdigitalbutton (ei); + ismouse (ei); + isdigitalbutton (ei); #ifndef INPUTDEVICE_SIMPLE - isqualifier (ei); + isqualifier (ei); #endif - if (ei > 0) - scancodeused[i][keyboards[i].extra[j]] = ei; - } - j++; - } - } - } + if (ei > 0) + scancodeused[i][keyboards[i].extra[j]] = ei; + } + j++; + } + } + } } -static int axistable[] = { - INPUTEVENT_MOUSE1_HORIZ, INPUTEVENT_MOUSE1_LEFT, INPUTEVENT_MOUSE1_RIGHT, - INPUTEVENT_MOUSE1_VERT, INPUTEVENT_MOUSE1_UP, INPUTEVENT_MOUSE1_DOWN, - INPUTEVENT_MOUSE2_HORIZ, INPUTEVENT_MOUSE2_LEFT, INPUTEVENT_MOUSE2_RIGHT, - INPUTEVENT_MOUSE2_VERT, INPUTEVENT_MOUSE2_UP, INPUTEVENT_MOUSE2_DOWN, - INPUTEVENT_JOY1_HORIZ, INPUTEVENT_JOY1_LEFT, INPUTEVENT_JOY1_RIGHT, - INPUTEVENT_JOY1_VERT, INPUTEVENT_JOY1_UP, INPUTEVENT_JOY1_DOWN, - INPUTEVENT_JOY2_HORIZ, INPUTEVENT_JOY2_LEFT, INPUTEVENT_JOY2_RIGHT, - INPUTEVENT_JOY2_VERT, INPUTEVENT_JOY2_UP, INPUTEVENT_JOY2_DOWN, - INPUTEVENT_LIGHTPEN_HORIZ, INPUTEVENT_LIGHTPEN_LEFT, INPUTEVENT_LIGHTPEN_RIGHT, - INPUTEVENT_LIGHTPEN_VERT, INPUTEVENT_LIGHTPEN_UP, INPUTEVENT_LIGHTPEN_DOWN, - INPUTEVENT_PAR_JOY1_HORIZ, INPUTEVENT_PAR_JOY1_LEFT, INPUTEVENT_PAR_JOY1_RIGHT, - INPUTEVENT_PAR_JOY1_VERT, INPUTEVENT_PAR_JOY1_UP, INPUTEVENT_PAR_JOY1_DOWN, - INPUTEVENT_PAR_JOY2_HORIZ, INPUTEVENT_PAR_JOY2_LEFT, INPUTEVENT_PAR_JOY2_RIGHT, - INPUTEVENT_PAR_JOY2_VERT, INPUTEVENT_PAR_JOY2_UP, INPUTEVENT_PAR_JOY2_DOWN, - INPUTEVENT_MOUSE_CDTV_HORIZ, INPUTEVENT_MOUSE_CDTV_LEFT, INPUTEVENT_MOUSE_CDTV_RIGHT, - INPUTEVENT_MOUSE_CDTV_VERT, INPUTEVENT_MOUSE_CDTV_UP, INPUTEVENT_MOUSE_CDTV_DOWN, - -1 +static int axistable[] = +{ + INPUTEVENT_MOUSE1_HORIZ, INPUTEVENT_MOUSE1_LEFT, INPUTEVENT_MOUSE1_RIGHT, + INPUTEVENT_MOUSE1_VERT, INPUTEVENT_MOUSE1_UP, INPUTEVENT_MOUSE1_DOWN, + INPUTEVENT_MOUSE2_HORIZ, INPUTEVENT_MOUSE2_LEFT, INPUTEVENT_MOUSE2_RIGHT, + INPUTEVENT_MOUSE2_VERT, INPUTEVENT_MOUSE2_UP, INPUTEVENT_MOUSE2_DOWN, + INPUTEVENT_JOY1_HORIZ, INPUTEVENT_JOY1_LEFT, INPUTEVENT_JOY1_RIGHT, + INPUTEVENT_JOY1_VERT, INPUTEVENT_JOY1_UP, INPUTEVENT_JOY1_DOWN, + INPUTEVENT_JOY2_HORIZ, INPUTEVENT_JOY2_LEFT, INPUTEVENT_JOY2_RIGHT, + INPUTEVENT_JOY2_VERT, INPUTEVENT_JOY2_UP, INPUTEVENT_JOY2_DOWN, + INPUTEVENT_LIGHTPEN_HORIZ, INPUTEVENT_LIGHTPEN_LEFT, INPUTEVENT_LIGHTPEN_RIGHT, + INPUTEVENT_LIGHTPEN_VERT, INPUTEVENT_LIGHTPEN_UP, INPUTEVENT_LIGHTPEN_DOWN, + INPUTEVENT_PAR_JOY1_HORIZ, INPUTEVENT_PAR_JOY1_LEFT, INPUTEVENT_PAR_JOY1_RIGHT, + INPUTEVENT_PAR_JOY1_VERT, INPUTEVENT_PAR_JOY1_UP, INPUTEVENT_PAR_JOY1_DOWN, + INPUTEVENT_PAR_JOY2_HORIZ, INPUTEVENT_PAR_JOY2_LEFT, INPUTEVENT_PAR_JOY2_RIGHT, + INPUTEVENT_PAR_JOY2_VERT, INPUTEVENT_PAR_JOY2_UP, INPUTEVENT_PAR_JOY2_DOWN, + INPUTEVENT_MOUSE_CDTV_HORIZ, INPUTEVENT_MOUSE_CDTV_LEFT, INPUTEVENT_MOUSE_CDTV_RIGHT, + INPUTEVENT_MOUSE_CDTV_VERT, INPUTEVENT_MOUSE_CDTV_UP, INPUTEVENT_MOUSE_CDTV_DOWN, + -1 }; int intputdevice_compa_get_eventtype (int evt, int **axistablep) { - for (int i = 0; axistable[i] >= 0; i += 3) { - *axistablep = &axistable[i]; - if (axistable[i] == evt) - return IDEV_WIDGET_AXIS; - if (axistable[i + 1] == evt) - return IDEV_WIDGET_BUTTONAXIS; - if (axistable[i + 2] == evt) - return IDEV_WIDGET_BUTTONAXIS; - } - *axistablep = NULL; - return IDEV_WIDGET_BUTTON; + for (int i = 0; axistable[i] >= 0; i += 3) + { + *axistablep = &axistable[i]; + if (axistable[i] == evt) + return IDEV_WIDGET_AXIS; + if (axistable[i + 1] == evt) + return IDEV_WIDGET_BUTTONAXIS; + if (axistable[i + 2] == evt) + return IDEV_WIDGET_BUTTONAXIS; + } + *axistablep = NULL; + return IDEV_WIDGET_BUTTON; } -static int rem_port1[] = { - INPUTEVENT_MOUSE1_HORIZ, INPUTEVENT_MOUSE1_VERT, - INPUTEVENT_JOY1_HORIZ, INPUTEVENT_JOY1_VERT, +static int rem_port1[] = +{ + INPUTEVENT_MOUSE1_HORIZ, INPUTEVENT_MOUSE1_VERT, + INPUTEVENT_JOY1_HORIZ, INPUTEVENT_JOY1_VERT, #ifndef INPUTDEVICE_SIMPLE - INPUTEVENT_JOY1_HORIZ_POT, INPUTEVENT_JOY1_VERT_POT, + INPUTEVENT_JOY1_HORIZ_POT, INPUTEVENT_JOY1_VERT_POT, #endif - INPUTEVENT_JOY1_FIRE_BUTTON, INPUTEVENT_JOY1_2ND_BUTTON, INPUTEVENT_JOY1_3RD_BUTTON, - INPUTEVENT_JOY1_CD32_RED, INPUTEVENT_JOY1_CD32_BLUE, INPUTEVENT_JOY1_CD32_GREEN, INPUTEVENT_JOY1_CD32_YELLOW, - INPUTEVENT_JOY1_CD32_RWD, INPUTEVENT_JOY1_CD32_FFW, INPUTEVENT_JOY1_CD32_PLAY, - INPUTEVENT_MOUSE_CDTV_HORIZ, INPUTEVENT_MOUSE_CDTV_VERT, - INPUTEVENT_LIGHTPEN_HORIZ, INPUTEVENT_LIGHTPEN_VERT, - -1 + INPUTEVENT_JOY1_FIRE_BUTTON, INPUTEVENT_JOY1_2ND_BUTTON, INPUTEVENT_JOY1_3RD_BUTTON, + INPUTEVENT_JOY1_CD32_RED, INPUTEVENT_JOY1_CD32_BLUE, INPUTEVENT_JOY1_CD32_GREEN, INPUTEVENT_JOY1_CD32_YELLOW, + INPUTEVENT_JOY1_CD32_RWD, INPUTEVENT_JOY1_CD32_FFW, INPUTEVENT_JOY1_CD32_PLAY, + INPUTEVENT_MOUSE_CDTV_HORIZ, INPUTEVENT_MOUSE_CDTV_VERT, + INPUTEVENT_LIGHTPEN_HORIZ, INPUTEVENT_LIGHTPEN_VERT, + -1 }; -static int rem_port2[] = { - INPUTEVENT_MOUSE2_HORIZ, INPUTEVENT_MOUSE2_VERT, - INPUTEVENT_JOY2_HORIZ, INPUTEVENT_JOY2_VERT, +static int rem_port2[] = +{ + INPUTEVENT_MOUSE2_HORIZ, INPUTEVENT_MOUSE2_VERT, + INPUTEVENT_JOY2_HORIZ, INPUTEVENT_JOY2_VERT, #ifndef INPUTDEVICE_SIMPLE - INPUTEVENT_JOY2_HORIZ_POT, INPUTEVENT_JOY2_VERT_POT, + INPUTEVENT_JOY2_HORIZ_POT, INPUTEVENT_JOY2_VERT_POT, #endif - INPUTEVENT_JOY2_FIRE_BUTTON, INPUTEVENT_JOY2_2ND_BUTTON, INPUTEVENT_JOY2_3RD_BUTTON, - INPUTEVENT_JOY2_CD32_RED, INPUTEVENT_JOY2_CD32_BLUE, INPUTEVENT_JOY2_CD32_GREEN, INPUTEVENT_JOY2_CD32_YELLOW, - INPUTEVENT_JOY2_CD32_RWD, INPUTEVENT_JOY2_CD32_FFW, INPUTEVENT_JOY2_CD32_PLAY, - -1, -1, - -1, -1, - -1 + INPUTEVENT_JOY2_FIRE_BUTTON, INPUTEVENT_JOY2_2ND_BUTTON, INPUTEVENT_JOY2_3RD_BUTTON, + INPUTEVENT_JOY2_CD32_RED, INPUTEVENT_JOY2_CD32_BLUE, INPUTEVENT_JOY2_CD32_GREEN, INPUTEVENT_JOY2_CD32_YELLOW, + INPUTEVENT_JOY2_CD32_RWD, INPUTEVENT_JOY2_CD32_FFW, INPUTEVENT_JOY2_CD32_PLAY, + -1, -1, + -1, -1, + -1 }; -static int rem_port3[] = { - INPUTEVENT_PAR_JOY1_LEFT, INPUTEVENT_PAR_JOY1_RIGHT, INPUTEVENT_PAR_JOY1_UP, INPUTEVENT_PAR_JOY1_DOWN, - INPUTEVENT_PAR_JOY1_FIRE_BUTTON, INPUTEVENT_PAR_JOY1_2ND_BUTTON, - -1 +static int rem_port3[] = +{ + INPUTEVENT_PAR_JOY1_LEFT, INPUTEVENT_PAR_JOY1_RIGHT, INPUTEVENT_PAR_JOY1_UP, INPUTEVENT_PAR_JOY1_DOWN, + INPUTEVENT_PAR_JOY1_FIRE_BUTTON, INPUTEVENT_PAR_JOY1_2ND_BUTTON, + -1 }; -static int rem_port4[] = { - INPUTEVENT_PAR_JOY2_LEFT, INPUTEVENT_PAR_JOY2_RIGHT, INPUTEVENT_PAR_JOY2_UP, INPUTEVENT_PAR_JOY2_DOWN, - INPUTEVENT_PAR_JOY2_FIRE_BUTTON, INPUTEVENT_PAR_JOY2_2ND_BUTTON, - -1 +static int rem_port4[] = +{ + INPUTEVENT_PAR_JOY2_LEFT, INPUTEVENT_PAR_JOY2_RIGHT, INPUTEVENT_PAR_JOY2_UP, INPUTEVENT_PAR_JOY2_DOWN, + INPUTEVENT_PAR_JOY2_FIRE_BUTTON, INPUTEVENT_PAR_JOY2_2ND_BUTTON, + -1 }; static int *rem_ports[] = { rem_port1, rem_port2, rem_port3, rem_port4 }; -static int af_port1[] = { - INPUTEVENT_JOY1_FIRE_BUTTON, INPUTEVENT_JOY1_CD32_RED, - -1 +static int af_port1[] = +{ + INPUTEVENT_JOY1_FIRE_BUTTON, INPUTEVENT_JOY1_CD32_RED, + -1 }; -static int af_port2[] = { - INPUTEVENT_JOY2_FIRE_BUTTON, INPUTEVENT_JOY2_CD32_RED, - -1 +static int af_port2[] = +{ + INPUTEVENT_JOY2_FIRE_BUTTON, INPUTEVENT_JOY2_CD32_RED, + -1 }; -static int af_port3[] = { - INPUTEVENT_PAR_JOY1_FIRE_BUTTON, INPUTEVENT_PAR_JOY1_2ND_BUTTON, - -1 +static int af_port3[] = +{ + INPUTEVENT_PAR_JOY1_FIRE_BUTTON, INPUTEVENT_PAR_JOY1_2ND_BUTTON, + -1 }; -static int af_port4[] = { - INPUTEVENT_PAR_JOY2_FIRE_BUTTON, INPUTEVENT_PAR_JOY2_2ND_BUTTON, - -1 +static int af_port4[] = +{ + INPUTEVENT_PAR_JOY2_FIRE_BUTTON, INPUTEVENT_PAR_JOY2_2ND_BUTTON, + -1 }; static int *af_ports[] = { af_port1, af_port2, af_port3, af_port4 }; -static int ip_joy1[] = { - INPUTEVENT_JOY1_LEFT, INPUTEVENT_JOY1_RIGHT, INPUTEVENT_JOY1_UP, INPUTEVENT_JOY1_DOWN, - INPUTEVENT_JOY1_FIRE_BUTTON, INPUTEVENT_JOY1_2ND_BUTTON, - -1 +static int ip_joy1[] = +{ + INPUTEVENT_JOY1_LEFT, INPUTEVENT_JOY1_RIGHT, INPUTEVENT_JOY1_UP, INPUTEVENT_JOY1_DOWN, + INPUTEVENT_JOY1_FIRE_BUTTON, INPUTEVENT_JOY1_2ND_BUTTON, + -1 }; -static int ip_joy2[] = { - INPUTEVENT_JOY2_LEFT, INPUTEVENT_JOY2_RIGHT, INPUTEVENT_JOY2_UP, INPUTEVENT_JOY2_DOWN, - INPUTEVENT_JOY2_FIRE_BUTTON, INPUTEVENT_JOY2_2ND_BUTTON, - -1 +static int ip_joy2[] = +{ + INPUTEVENT_JOY2_LEFT, INPUTEVENT_JOY2_RIGHT, INPUTEVENT_JOY2_UP, INPUTEVENT_JOY2_DOWN, + INPUTEVENT_JOY2_FIRE_BUTTON, INPUTEVENT_JOY2_2ND_BUTTON, + -1 }; -static int ip_joypad1[] = { - INPUTEVENT_JOY1_LEFT, INPUTEVENT_JOY1_RIGHT, INPUTEVENT_JOY1_UP, INPUTEVENT_JOY1_DOWN, - INPUTEVENT_JOY1_FIRE_BUTTON, INPUTEVENT_JOY1_2ND_BUTTON, INPUTEVENT_JOY1_3RD_BUTTON, - -1 +static int ip_joypad1[] = +{ + INPUTEVENT_JOY1_LEFT, INPUTEVENT_JOY1_RIGHT, INPUTEVENT_JOY1_UP, INPUTEVENT_JOY1_DOWN, + INPUTEVENT_JOY1_FIRE_BUTTON, INPUTEVENT_JOY1_2ND_BUTTON, INPUTEVENT_JOY1_3RD_BUTTON, + -1 }; -static int ip_joypad2[] = { - INPUTEVENT_JOY2_LEFT, INPUTEVENT_JOY2_RIGHT, INPUTEVENT_JOY2_UP, INPUTEVENT_JOY2_DOWN, - INPUTEVENT_JOY2_FIRE_BUTTON, INPUTEVENT_JOY2_2ND_BUTTON, INPUTEVENT_JOY2_3RD_BUTTON, - -1 +static int ip_joypad2[] = +{ + INPUTEVENT_JOY2_LEFT, INPUTEVENT_JOY2_RIGHT, INPUTEVENT_JOY2_UP, INPUTEVENT_JOY2_DOWN, + INPUTEVENT_JOY2_FIRE_BUTTON, INPUTEVENT_JOY2_2ND_BUTTON, INPUTEVENT_JOY2_3RD_BUTTON, + -1 }; -static int ip_joycd321[] = { - INPUTEVENT_JOY1_LEFT, INPUTEVENT_JOY1_RIGHT, INPUTEVENT_JOY1_UP, INPUTEVENT_JOY1_DOWN, - INPUTEVENT_JOY1_CD32_RED, INPUTEVENT_JOY1_CD32_BLUE, INPUTEVENT_JOY1_CD32_GREEN, INPUTEVENT_JOY1_CD32_YELLOW, - INPUTEVENT_JOY1_CD32_RWD, INPUTEVENT_JOY1_CD32_FFW, INPUTEVENT_JOY1_CD32_PLAY, - -1 +static int ip_joycd321[] = +{ + INPUTEVENT_JOY1_LEFT, INPUTEVENT_JOY1_RIGHT, INPUTEVENT_JOY1_UP, INPUTEVENT_JOY1_DOWN, + INPUTEVENT_JOY1_CD32_RED, INPUTEVENT_JOY1_CD32_BLUE, INPUTEVENT_JOY1_CD32_GREEN, INPUTEVENT_JOY1_CD32_YELLOW, + INPUTEVENT_JOY1_CD32_RWD, INPUTEVENT_JOY1_CD32_FFW, INPUTEVENT_JOY1_CD32_PLAY, + -1 }; -static int ip_joycd322[] = { - INPUTEVENT_JOY2_LEFT, INPUTEVENT_JOY2_RIGHT, INPUTEVENT_JOY2_UP, INPUTEVENT_JOY2_DOWN, - INPUTEVENT_JOY2_CD32_RED, INPUTEVENT_JOY2_CD32_BLUE, INPUTEVENT_JOY2_CD32_GREEN, INPUTEVENT_JOY2_CD32_YELLOW, - INPUTEVENT_JOY2_CD32_RWD, INPUTEVENT_JOY2_CD32_FFW, INPUTEVENT_JOY2_CD32_PLAY, - -1 +static int ip_joycd322[] = +{ + INPUTEVENT_JOY2_LEFT, INPUTEVENT_JOY2_RIGHT, INPUTEVENT_JOY2_UP, INPUTEVENT_JOY2_DOWN, + INPUTEVENT_JOY2_CD32_RED, INPUTEVENT_JOY2_CD32_BLUE, INPUTEVENT_JOY2_CD32_GREEN, INPUTEVENT_JOY2_CD32_YELLOW, + INPUTEVENT_JOY2_CD32_RWD, INPUTEVENT_JOY2_CD32_FFW, INPUTEVENT_JOY2_CD32_PLAY, + -1 }; -static int ip_parjoy1[] = { - INPUTEVENT_PAR_JOY1_LEFT, INPUTEVENT_PAR_JOY1_RIGHT, INPUTEVENT_PAR_JOY1_UP, INPUTEVENT_PAR_JOY1_DOWN, - INPUTEVENT_PAR_JOY1_FIRE_BUTTON, INPUTEVENT_PAR_JOY1_2ND_BUTTON, - -1 +static int ip_parjoy1[] = +{ + INPUTEVENT_PAR_JOY1_LEFT, INPUTEVENT_PAR_JOY1_RIGHT, INPUTEVENT_PAR_JOY1_UP, INPUTEVENT_PAR_JOY1_DOWN, + INPUTEVENT_PAR_JOY1_FIRE_BUTTON, INPUTEVENT_PAR_JOY1_2ND_BUTTON, + -1 }; -static int ip_parjoy2[] = { - INPUTEVENT_PAR_JOY2_LEFT, INPUTEVENT_PAR_JOY2_RIGHT, INPUTEVENT_PAR_JOY2_UP, INPUTEVENT_PAR_JOY2_DOWN, - INPUTEVENT_PAR_JOY2_FIRE_BUTTON, INPUTEVENT_PAR_JOY2_2ND_BUTTON, - -1 +static int ip_parjoy2[] = +{ + INPUTEVENT_PAR_JOY2_LEFT, INPUTEVENT_PAR_JOY2_RIGHT, INPUTEVENT_PAR_JOY2_UP, INPUTEVENT_PAR_JOY2_DOWN, + INPUTEVENT_PAR_JOY2_FIRE_BUTTON, INPUTEVENT_PAR_JOY2_2ND_BUTTON, + -1 }; -static int ip_parjoy1default[] = { - INPUTEVENT_PAR_JOY1_LEFT, INPUTEVENT_PAR_JOY1_RIGHT, INPUTEVENT_PAR_JOY1_UP, INPUTEVENT_PAR_JOY1_DOWN, - INPUTEVENT_PAR_JOY1_FIRE_BUTTON, - -1 +static int ip_parjoy1default[] = +{ + INPUTEVENT_PAR_JOY1_LEFT, INPUTEVENT_PAR_JOY1_RIGHT, INPUTEVENT_PAR_JOY1_UP, INPUTEVENT_PAR_JOY1_DOWN, + INPUTEVENT_PAR_JOY1_FIRE_BUTTON, + -1 }; -static int ip_parjoy2default[] = { - INPUTEVENT_PAR_JOY2_LEFT, INPUTEVENT_PAR_JOY2_RIGHT, INPUTEVENT_PAR_JOY2_UP, INPUTEVENT_PAR_JOY2_DOWN, - INPUTEVENT_PAR_JOY2_FIRE_BUTTON, - -1 +static int ip_parjoy2default[] = +{ + INPUTEVENT_PAR_JOY2_LEFT, INPUTEVENT_PAR_JOY2_RIGHT, INPUTEVENT_PAR_JOY2_UP, INPUTEVENT_PAR_JOY2_DOWN, + INPUTEVENT_PAR_JOY2_FIRE_BUTTON, + -1 }; -static int ip_mouse1[] = { - INPUTEVENT_MOUSE1_LEFT, INPUTEVENT_MOUSE1_RIGHT, INPUTEVENT_MOUSE1_UP, INPUTEVENT_MOUSE1_DOWN, - INPUTEVENT_JOY1_FIRE_BUTTON, INPUTEVENT_JOY1_2ND_BUTTON, - -1 +static int ip_mouse1[] = +{ + INPUTEVENT_MOUSE1_LEFT, INPUTEVENT_MOUSE1_RIGHT, INPUTEVENT_MOUSE1_UP, INPUTEVENT_MOUSE1_DOWN, + INPUTEVENT_JOY1_FIRE_BUTTON, INPUTEVENT_JOY1_2ND_BUTTON, + -1 }; -static int ip_mouse2[] = { - INPUTEVENT_MOUSE2_LEFT, INPUTEVENT_MOUSE2_RIGHT, INPUTEVENT_MOUSE2_UP, INPUTEVENT_MOUSE2_DOWN, - INPUTEVENT_JOY2_FIRE_BUTTON, INPUTEVENT_JOY2_2ND_BUTTON, - -1 +static int ip_mouse2[] = +{ + INPUTEVENT_MOUSE2_LEFT, INPUTEVENT_MOUSE2_RIGHT, INPUTEVENT_MOUSE2_UP, INPUTEVENT_MOUSE2_DOWN, + INPUTEVENT_JOY2_FIRE_BUTTON, INPUTEVENT_JOY2_2ND_BUTTON, + -1 }; static int ip_mousecdtv[] = { - INPUTEVENT_MOUSE_CDTV_LEFT, INPUTEVENT_MOUSE_CDTV_RIGHT, INPUTEVENT_MOUSE_CDTV_UP, INPUTEVENT_MOUSE_CDTV_DOWN, - INPUTEVENT_JOY1_FIRE_BUTTON, INPUTEVENT_JOY1_2ND_BUTTON, - -1 + INPUTEVENT_MOUSE_CDTV_LEFT, INPUTEVENT_MOUSE_CDTV_RIGHT, INPUTEVENT_MOUSE_CDTV_UP, INPUTEVENT_MOUSE_CDTV_DOWN, + INPUTEVENT_JOY1_FIRE_BUTTON, INPUTEVENT_JOY1_2ND_BUTTON, + -1 }; static int ip_mediacdtv[] = { - INPUTEVENT_KEY_CDTV_PLAYPAUSE, INPUTEVENT_KEY_CDTV_STOP, INPUTEVENT_KEY_CDTV_PREV, INPUTEVENT_KEY_CDTV_NEXT, - -1 + INPUTEVENT_KEY_CDTV_PLAYPAUSE, INPUTEVENT_KEY_CDTV_STOP, INPUTEVENT_KEY_CDTV_PREV, INPUTEVENT_KEY_CDTV_NEXT, + -1 }; -static int ip_arcadia[] = { - INPUTEVENT_SPC_ARCADIA_DIAGNOSTICS, INPUTEVENT_SPC_ARCADIA_PLAYER1, INPUTEVENT_SPC_ARCADIA_PLAYER2, - INPUTEVENT_SPC_ARCADIA_COIN1, INPUTEVENT_SPC_ARCADIA_COIN2, - -1 +static int ip_arcadia[] = +{ + INPUTEVENT_SPC_ARCADIA_DIAGNOSTICS, INPUTEVENT_SPC_ARCADIA_PLAYER1, INPUTEVENT_SPC_ARCADIA_PLAYER2, + INPUTEVENT_SPC_ARCADIA_COIN1, INPUTEVENT_SPC_ARCADIA_COIN2, + -1 }; -static int ip_lightpen1[] = { - INPUTEVENT_LIGHTPEN_HORIZ, INPUTEVENT_LIGHTPEN_VERT, INPUTEVENT_JOY1_3RD_BUTTON, - -1 +static int ip_lightpen1[] = +{ + INPUTEVENT_LIGHTPEN_HORIZ, INPUTEVENT_LIGHTPEN_VERT, INPUTEVENT_JOY1_3RD_BUTTON, + -1 }; -static int ip_lightpen2[] = { - INPUTEVENT_LIGHTPEN_HORIZ, INPUTEVENT_LIGHTPEN_VERT, INPUTEVENT_JOY2_3RD_BUTTON, - -1 +static int ip_lightpen2[] = +{ + INPUTEVENT_LIGHTPEN_HORIZ, INPUTEVENT_LIGHTPEN_VERT, INPUTEVENT_JOY2_3RD_BUTTON, + -1 }; -static int ip_analog1[] = { - INPUTEVENT_JOY1_HORIZ_POT, INPUTEVENT_JOY1_VERT_POT, INPUTEVENT_JOY1_LEFT, INPUTEVENT_JOY1_RIGHT, - -1 +static int ip_analog1[] = +{ + INPUTEVENT_JOY1_HORIZ_POT, INPUTEVENT_JOY1_VERT_POT, INPUTEVENT_JOY1_LEFT, INPUTEVENT_JOY1_RIGHT, + -1 }; -static int ip_analog2[] = { - INPUTEVENT_JOY2_HORIZ_POT, INPUTEVENT_JOY2_VERT_POT, INPUTEVENT_JOY2_LEFT, INPUTEVENT_JOY2_RIGHT, - -1 +static int ip_analog2[] = +{ + INPUTEVENT_JOY2_HORIZ_POT, INPUTEVENT_JOY2_VERT_POT, INPUTEVENT_JOY2_LEFT, INPUTEVENT_JOY2_RIGHT, + -1 }; -static int ip_arcadiaxa[] = { - -1 +static int ip_arcadiaxa[] = +{ + -1 }; static void checkcompakb (int *kb, int *srcmap) { - int found = 0, avail = 0; - int j, k; + int found = 0, avail = 0; + int j, k; - k = j = 0; - while (kb[j] >= 0) { - struct uae_input_device *uid = &keyboards[0]; - while (kb[j] >= 0 && srcmap[k] >= 0) { - int id = kb[j]; - for (int l = 0; l < MAX_INPUT_DEVICE_EVENTS; l++) { - if (uid->extra[l] == id) { - avail++; - if (uid->eventid[l][0] == srcmap[k]) - found++; - break; - } - } - j++; - } - if (srcmap[k] < 0) - break; - j++; - k++; - } - if (avail != found || avail == 0) - return; - k = j = 0; - while (kb[j] >= 0) { - struct uae_input_device *uid = &keyboards[0]; - while (kb[j] >= 0) { - int id = kb[j]; - int evt0 = 0, evt1 = 0; - k = 0; - while (keyboard_default[k].scancode >= 0) { - if (keyboard_default[k].scancode == kb[j]) { - for (int l = 0; l < MAX_INPUT_DEVICE_EVENTS; l++) { - if (uid->extra[l] == id) { - for (int m = 0; m < MAX_INPUT_SUB_EVENT && keyboard_default[k].node[m].evt; m++) { - uid->eventid[l][m] = keyboard_default[k].node[m].evt; - } - break; - } - } - break; - } - k++; - } - j++; - } - j++; - } + k = j = 0; + while (kb[j] >= 0) + { + struct uae_input_device *uid = &keyboards[0]; + while (kb[j] >= 0 && srcmap[k] >= 0) + { + int id = kb[j]; + for (int l = 0; l < MAX_INPUT_DEVICE_EVENTS; l++) + { + if (uid->extra[l] == id) + { + avail++; + if (uid->eventid[l][0] == srcmap[k]) + found++; + break; + } + } + j++; + } + if (srcmap[k] < 0) + break; + j++; + k++; + } + if (avail != found || avail == 0) + return; + k = j = 0; + while (kb[j] >= 0) + { + struct uae_input_device *uid = &keyboards[0]; + while (kb[j] >= 0) + { + int id = kb[j]; + int evt0 = 0, evt1 = 0; + k = 0; + while (keyboard_default[k].scancode >= 0) + { + if (keyboard_default[k].scancode == kb[j]) + { + for (int l = 0; l < MAX_INPUT_DEVICE_EVENTS; l++) + { + if (uid->extra[l] == id) + { + for (int m = 0; m < MAX_INPUT_SUB_EVENT && keyboard_default[k].node[m].evt; m++) + { + uid->eventid[l][m] = keyboard_default[k].node[m].evt; + } + break; + } + } + break; + } + k++; + } + j++; + } + j++; + } } static void setautofireevent (struct uae_input_device *uid, int num, int sub, int af, int index) { - if (!af) - return; - int *afp = af_ports[index]; - for (int k = 0; afp[k] >= 0; k++) { - if (afp[k] == uid->eventid[num][sub]) { - uid->flags[num][sub] &= ~ID_FLAG_AUTOFIRE_MASK; - if (af >= JPORT_AF_NORMAL) - uid->flags[num][sub] |= ID_FLAG_AUTOFIRE; + if (!af) + return; + int *afp = af_ports[index]; + for (int k = 0; afp[k] >= 0; k++) + { + if (afp[k] == uid->eventid[num][sub]) + { + uid->flags[num][sub] &= ~ID_FLAG_AUTOFIRE_MASK; + if (af >= JPORT_AF_NORMAL) + uid->flags[num][sub] |= ID_FLAG_AUTOFIRE; #ifndef INPUTDEVICE_SIMPLE - if (af == JPORT_AF_TOGGLE) - uid->flags[num][sub] |= ID_FLAG_TOGGLE; - if (af == JPORT_AF_ALWAYS) - uid->flags[num][sub] |= ID_FLAG_INVERTTOGGLE; + if (af == JPORT_AF_TOGGLE) + uid->flags[num][sub] |= ID_FLAG_TOGGLE; + if (af == JPORT_AF_ALWAYS) + uid->flags[num][sub] |= ID_FLAG_INVERTTOGGLE; #endif - return; - } - } + return; + } + } } static void inputdevice_sparerestore (struct uae_input_device *uid, int num, int sub) { - if (uid->port[num][SPARE_SUB_EVENT]) { - uid->eventid[num][sub] = uid->eventid[num][SPARE_SUB_EVENT]; - uid->flags[num][sub] = uid->flags[num][SPARE_SUB_EVENT]; - uid->custom[num][sub] = uid->custom[num][SPARE_SUB_EVENT]; - } else { - uid->eventid[num][sub] = 0; - uid->flags[num][sub] = 0; - xfree (uid->custom[num][sub]); - uid->custom[num][sub] = 0; - } - uid->eventid[num][SPARE_SUB_EVENT] = 0; - uid->flags[num][SPARE_SUB_EVENT] = 0; - uid->port[num][SPARE_SUB_EVENT] = 0; - uid->custom[num][SPARE_SUB_EVENT] = 0; + if (uid->port[num][SPARE_SUB_EVENT]) + { + uid->eventid[num][sub] = uid->eventid[num][SPARE_SUB_EVENT]; + uid->flags[num][sub] = uid->flags[num][SPARE_SUB_EVENT]; + uid->custom[num][sub] = uid->custom[num][SPARE_SUB_EVENT]; + } + else + { + uid->eventid[num][sub] = 0; + uid->flags[num][sub] = 0; + xfree (uid->custom[num][sub]); + uid->custom[num][sub] = 0; + } + uid->eventid[num][SPARE_SUB_EVENT] = 0; + uid->flags[num][SPARE_SUB_EVENT] = 0; + uid->port[num][SPARE_SUB_EVENT] = 0; + uid->custom[num][SPARE_SUB_EVENT] = 0; } void inputdevice_sparecopy (struct uae_input_device *uid, int num, int sub) { - if (uid->port[num][SPARE_SUB_EVENT] != 0) - return; - if (uid->eventid[num][sub] <= 0 && uid->custom[num][sub] == NULL) { - uid->eventid[num][SPARE_SUB_EVENT] = 0; - uid->flags[num][SPARE_SUB_EVENT] = 0; - uid->port[num][SPARE_SUB_EVENT] = 0; - xfree (uid->custom[num][SPARE_SUB_EVENT]); - uid->custom[num][SPARE_SUB_EVENT] = NULL; - } else { - uid->eventid[num][SPARE_SUB_EVENT] = uid->eventid[num][sub]; - uid->flags[num][SPARE_SUB_EVENT] = uid->flags[num][sub]; - uid->port[num][SPARE_SUB_EVENT] = MAX_JPORTS + 1; - xfree (uid->custom[num][SPARE_SUB_EVENT]); - uid->custom[num][SPARE_SUB_EVENT] = uid->custom[num][sub]; - uid->custom[num][sub] = NULL; - } + if (uid->port[num][SPARE_SUB_EVENT] != 0) + return; + if (uid->eventid[num][sub] <= 0 && uid->custom[num][sub] == NULL) + { + uid->eventid[num][SPARE_SUB_EVENT] = 0; + uid->flags[num][SPARE_SUB_EVENT] = 0; + uid->port[num][SPARE_SUB_EVENT] = 0; + xfree (uid->custom[num][SPARE_SUB_EVENT]); + uid->custom[num][SPARE_SUB_EVENT] = NULL; + } + else + { + uid->eventid[num][SPARE_SUB_EVENT] = uid->eventid[num][sub]; + uid->flags[num][SPARE_SUB_EVENT] = uid->flags[num][sub]; + uid->port[num][SPARE_SUB_EVENT] = MAX_JPORTS + 1; + xfree (uid->custom[num][SPARE_SUB_EVENT]); + uid->custom[num][SPARE_SUB_EVENT] = uid->custom[num][sub]; + uid->custom[num][sub] = NULL; + } } static void setcompakb (int *kb, int *srcmap, int index, int af) { - int j, k; - k = j = 0; - while (kb[j] >= 0 && srcmap[k] >= 0) { - while (kb[j] >= 0) { - int id = kb[j]; - for (int m = 0; m < MAX_INPUT_DEVICES; m++) { - struct uae_input_device *uid = &keyboards[m]; - for (int l = 0; l < MAX_INPUT_DEVICE_EVENTS; l++) { - if (uid->extra[l] == id) { - inputdevice_sparecopy (uid, l, 0); - uid->eventid[l][0] = srcmap[k]; - uid->flags[l][0] = 0; - uid->port[l][0] = index + 1; - xfree (uid->custom[l][0]); - uid->custom[l][0] = NULL; - setautofireevent (uid, l, 0, af, index); - break; - } - } - } - j++; - } - j++; - k++; - } + int j, k; + k = j = 0; + while (kb[j] >= 0 && srcmap[k] >= 0) + { + while (kb[j] >= 0) + { + int id = kb[j]; + for (int m = 0; m < MAX_INPUT_DEVICES; m++) + { + struct uae_input_device *uid = &keyboards[m]; + for (int l = 0; l < MAX_INPUT_DEVICE_EVENTS; l++) + { + if (uid->extra[l] == id) + { + inputdevice_sparecopy (uid, l, 0); + uid->eventid[l][0] = srcmap[k]; + uid->flags[l][0] = 0; + uid->port[l][0] = index + 1; + xfree (uid->custom[l][0]); + uid->custom[l][0] = NULL; + setautofireevent (uid, l, 0, af, index); + break; + } + } + } + j++; + } + j++; + k++; + } } int inputdevice_get_compatibility_input (struct uae_prefs *prefs, int index, int *typelist, int **inputlist, int **at) { - if (index >= MAX_JPORTS || joymodes[index] < 0) - return 0; - *typelist = joymodes[index]; - *inputlist = joyinputs[index]; - *at = axistable; - int cnt = 0; - for (int i = 0; joyinputs[index] && joyinputs[index][i] >= 0; i++, cnt++); - return cnt; + if (index >= MAX_JPORTS || joymodes[index] < 0) + return 0; + *typelist = joymodes[index]; + *inputlist = joyinputs[index]; + *at = axistable; + int cnt = 0; + for (int i = 0; joyinputs[index] && joyinputs[index][i] >= 0; i++, cnt++); + return cnt; } static void clearevent (struct uae_input_device *uid, int evt) { - for (int i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) { - for (int j = 0; j < MAX_INPUT_SUB_EVENT; j++) { - if (uid->eventid[i][j] == evt) { - uid->eventid[i][j] = 0; - uid->flags[i][j] = 0; - xfree (uid->custom[i][j]); - uid->custom[i][j] = NULL; - } - } - } + for (int i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) + { + for (int j = 0; j < MAX_INPUT_SUB_EVENT; j++) + { + if (uid->eventid[i][j] == evt) + { + uid->eventid[i][j] = 0; + uid->flags[i][j] = 0; + xfree (uid->custom[i][j]); + uid->custom[i][j] = NULL; + } + } + } } static void clearkbrevent (struct uae_input_device *uid, int evt) { - for (int i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) { - for (int j = 0; j < MAX_INPUT_SUB_EVENT; j++) { - if (uid->eventid[i][j] == evt) { - uid->eventid[i][j] = 0; - uid->flags[i][j] = 0; - xfree (uid->custom[i][j]); - uid->custom[i][j] = NULL; - if (j == 0) - set_kbr_default_event (uid, keyboard_default, i); - } - } - } + for (int i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) + { + for (int j = 0; j < MAX_INPUT_SUB_EVENT; j++) + { + if (uid->eventid[i][j] == evt) + { + uid->eventid[i][j] = 0; + uid->flags[i][j] = 0; + xfree (uid->custom[i][j]); + uid->custom[i][j] = NULL; + if (j == 0) + set_kbr_default_event (uid, keyboard_default, i); + } + } + } } static void resetjport (struct uae_prefs *prefs, int index) { - int *p = rem_ports[index]; - while (*p >= 0) { - int evtnum = *p++; - for (int l = 0; l < MAX_INPUT_DEVICES; l++) { - clearevent (&prefs->joystick_settings[GAMEPORT_INPUT_SETTINGS][l], evtnum); - clearevent (&prefs->mouse_settings[GAMEPORT_INPUT_SETTINGS][l], evtnum); - clearkbrevent (&prefs->keyboard_settings[GAMEPORT_INPUT_SETTINGS][l], evtnum); - } - for (int i = 0; axistable[i] >= 0; i += 3) { - if (evtnum == axistable[i] || evtnum == axistable[i + 1] || evtnum == axistable[i + 2]) { - for (int j = 0; j < 3; j++) { - int evtnum2 = axistable[i + j]; - for (int l = 0; l < MAX_INPUT_DEVICES; l++) { - clearevent (&prefs->joystick_settings[GAMEPORT_INPUT_SETTINGS][l], evtnum2); - clearevent (&prefs->mouse_settings[GAMEPORT_INPUT_SETTINGS][l], evtnum2); - clearkbrevent (&prefs->keyboard_settings[GAMEPORT_INPUT_SETTINGS][l], evtnum2); - } - } - break; - } - } - } + int *p = rem_ports[index]; + while (*p >= 0) + { + int evtnum = *p++; + for (int l = 0; l < MAX_INPUT_DEVICES; l++) + { + clearevent (&prefs->joystick_settings[GAMEPORT_INPUT_SETTINGS][l], evtnum); + clearevent (&prefs->mouse_settings[GAMEPORT_INPUT_SETTINGS][l], evtnum); + clearkbrevent (&prefs->keyboard_settings[GAMEPORT_INPUT_SETTINGS][l], evtnum); + } + for (int i = 0; axistable[i] >= 0; i += 3) + { + if (evtnum == axistable[i] || evtnum == axistable[i + 1] || evtnum == axistable[i + 2]) + { + for (int j = 0; j < 3; j++) + { + int evtnum2 = axistable[i + j]; + for (int l = 0; l < MAX_INPUT_DEVICES; l++) + { + clearevent (&prefs->joystick_settings[GAMEPORT_INPUT_SETTINGS][l], evtnum2); + clearevent (&prefs->mouse_settings[GAMEPORT_INPUT_SETTINGS][l], evtnum2); + clearkbrevent (&prefs->keyboard_settings[GAMEPORT_INPUT_SETTINGS][l], evtnum2); + } + } + break; + } + } + } } static void remove_compa_config (struct uae_prefs *prefs, int index) { - int typelist, *inputlist, *atp; + int typelist, *inputlist, *atp; - if (!inputdevice_get_compatibility_input (prefs, index, &typelist, &inputlist, &atp)) - return; - for (int i = 0; inputlist[i] >= 0; i++) { - int evtnum = inputlist[i]; + if (!inputdevice_get_compatibility_input (prefs, index, &typelist, &inputlist, &atp)) + return; + for (int i = 0; inputlist[i] >= 0; i++) + { + int evtnum = inputlist[i]; - int atpidx = 0; - while (*atp >= 0) { - if (*atp == evtnum) { - atp++; - atpidx = 2; - break; - } - if (atp[1] == evtnum || atp[2] == evtnum) { - atpidx = 1; - break; - } - atp += 3; - } - while (atpidx >= 0) { - for (int l = 0; l < MAX_INPUT_DEVICES; l++) { - clearevent (&prefs->joystick_settings[GAMEPORT_INPUT_SETTINGS][l], evtnum); - clearevent (&prefs->mouse_settings[GAMEPORT_INPUT_SETTINGS][l], evtnum); - clearkbrevent (&prefs->keyboard_settings[GAMEPORT_INPUT_SETTINGS][l], evtnum); - } - evtnum = *atp++; - atpidx--; - } - } + int atpidx = 0; + while (*atp >= 0) + { + if (*atp == evtnum) + { + atp++; + atpidx = 2; + break; + } + if (atp[1] == evtnum || atp[2] == evtnum) + { + atpidx = 1; + break; + } + atp += 3; + } + while (atpidx >= 0) + { + for (int l = 0; l < MAX_INPUT_DEVICES; l++) + { + clearevent (&prefs->joystick_settings[GAMEPORT_INPUT_SETTINGS][l], evtnum); + clearevent (&prefs->mouse_settings[GAMEPORT_INPUT_SETTINGS][l], evtnum); + clearkbrevent (&prefs->keyboard_settings[GAMEPORT_INPUT_SETTINGS][l], evtnum); + } + evtnum = *atp++; + atpidx--; + } + } } static void cleardevgp (struct uae_input_device *uid, int num, bool nocustom, int index) { - for (int i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) { - for (int j = 0; j < MAX_INPUT_SUB_EVENT; j++) { - if (uid[num].port[i][j] == index + 1) { - if (nocustom && (uid[num].flags[i][j] & ID_FLAG_GAMEPORTSCUSTOM_MASK)) - continue; - uid[num].eventid[i][j] = 0; - uid[num].flags[i][j] = 0; - xfree (uid[num].custom[i][j]); - uid[num].custom[i][j] = NULL; - uid[num].port[i][j] = 0; - if (uid[num].port[i][SPARE_SUB_EVENT]) - inputdevice_sparerestore (&uid[num], i, j); - } - } - } + for (int i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) + { + for (int j = 0; j < MAX_INPUT_SUB_EVENT; j++) + { + if (uid[num].port[i][j] == index + 1) + { + if (nocustom && (uid[num].flags[i][j] & ID_FLAG_GAMEPORTSCUSTOM_MASK)) + continue; + uid[num].eventid[i][j] = 0; + uid[num].flags[i][j] = 0; + xfree (uid[num].custom[i][j]); + uid[num].custom[i][j] = NULL; + uid[num].port[i][j] = 0; + if (uid[num].port[i][SPARE_SUB_EVENT]) + inputdevice_sparerestore (&uid[num], i, j); + } + } + } } static void cleardevkbrgp (struct uae_input_device *uid, int num, bool nocustom, int index) { - for (int i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) { - for (int j = 0; j < MAX_INPUT_SUB_EVENT; j++) { - if (uid[num].port[i][j] == index + 1) { - if (nocustom && (uid[num].flags[i][j] & ID_FLAG_GAMEPORTSCUSTOM_MASK)) - continue; - uid[num].eventid[i][j] = 0; - uid[num].flags[i][j] = 0; - xfree (uid[num].custom[i][j]); - uid[num].custom[i][j] = NULL; - uid[num].port[i][j] = 0; - if (uid[num].port[i][SPARE_SUB_EVENT]) { - inputdevice_sparerestore (&uid[num], i, j); - } else if (j == 0) { - set_kbr_default_event (&uid[num], keyboard_default, i); - } - } - } - } + for (int i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) + { + for (int j = 0; j < MAX_INPUT_SUB_EVENT; j++) + { + if (uid[num].port[i][j] == index + 1) + { + if (nocustom && (uid[num].flags[i][j] & ID_FLAG_GAMEPORTSCUSTOM_MASK)) + continue; + uid[num].eventid[i][j] = 0; + uid[num].flags[i][j] = 0; + xfree (uid[num].custom[i][j]); + uid[num].custom[i][j] = NULL; + uid[num].port[i][j] = 0; + if (uid[num].port[i][SPARE_SUB_EVENT]) + { + inputdevice_sparerestore (&uid[num], i, j); + } + else if (j == 0) + { + set_kbr_default_event (&uid[num], keyboard_default, i); + } + } + } + } } // remove all gameports mappings mapped to port 'index' static void remove_custom_config (struct uae_prefs *prefs, bool nocustom, int index) { - for (int l = 0; l < MAX_INPUT_DEVICES; l++) { - cleardevgp (joysticks, l, nocustom, index); - cleardevgp (mice, l, nocustom, index); - cleardevkbrgp (keyboards, l, nocustom, index); - } + for (int l = 0; l < MAX_INPUT_DEVICES; l++) + { + cleardevgp (joysticks, l, nocustom, index); + cleardevgp (mice, l, nocustom, index); + cleardevkbrgp (keyboards, l, nocustom, index); + } } // prepare port for custom mapping, remove all current Amiga side device mappings void inputdevice_compa_prepare_custom (struct uae_prefs *prefs, int index, int newmode) { - int mode = prefs->jports[index].mode; - freejport (prefs, index); - resetjport (prefs, index); - if (newmode >= 0) { - mode = newmode; - } else if (mode == 0) { - mode = index == 0 ? JSEM_MODE_MOUSE : (prefs->cs_cd32cd ? JSEM_MODE_JOYSTICK_CD32 : JSEM_MODE_JOYSTICK); - } - prefs->jports[index].mode = mode; - prefs->jports[index].id = -2; + int mode = prefs->jports[index].mode; + freejport (prefs, index); + resetjport (prefs, index); + if (newmode >= 0) + { + mode = newmode; + } + else if (mode == 0) + { + mode = index == 0 ? JSEM_MODE_MOUSE : (prefs->cs_cd32cd ? JSEM_MODE_JOYSTICK_CD32 : JSEM_MODE_JOYSTICK); + } + prefs->jports[index].mode = mode; + prefs->jports[index].id = -2; - remove_compa_config (prefs, index); - remove_custom_config (prefs, false, index); + remove_compa_config (prefs, index); + remove_custom_config (prefs, false, index); } // clear device before switching to new one void inputdevice_compa_clear (struct uae_prefs *prefs, int index) { - freejport (prefs, index); - resetjport (prefs, index); - remove_compa_config (prefs, index); + freejport (prefs, index); + resetjport (prefs, index); + remove_compa_config (prefs, index); } static void cleardev (struct uae_input_device *uid, int num) { - for (int i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) { - inputdevice_sparecopy (&uid[num], i, 0); - for (int j = 0; j < MAX_INPUT_SUB_EVENT; j++) { - uid[num].eventid[i][j] = 0; - uid[num].flags[i][j] = 0; - xfree (uid[num].custom[i][j]); - uid[num].custom[i][j] = NULL; - } - } + for (int i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) + { + inputdevice_sparecopy (&uid[num], i, 0); + for (int j = 0; j < MAX_INPUT_SUB_EVENT; j++) + { + uid[num].eventid[i][j] = 0; + uid[num].flags[i][j] = 0; + xfree (uid[num].custom[i][j]); + uid[num].custom[i][j] = NULL; + } + } } static void enablejoydevice (struct uae_input_device *uid, bool gameportsmode, int evtnum) { - for (int i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) { - for (int j = 0; j < MAX_INPUT_SUB_EVENT; j++) { - if ((gameportsmode && uid->eventid[i][j] == evtnum) || uid->port[i][j] > 0) { - uid->enabled = 1; - } - } - } + for (int i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) + { + for (int j = 0; j < MAX_INPUT_SUB_EVENT; j++) + { + if ((gameportsmode && uid->eventid[i][j] == evtnum) || uid->port[i][j] > 0) + { + uid->enabled = 1; + } + } + } } static void setjoydevices (struct uae_prefs *prefs, bool gameportsmode, int port) { - for (int i = 0; joyinputs[port] && joyinputs[port][i] >= 0; i++) { - int evtnum = joyinputs[port][i]; - for (int l = 0; l < MAX_INPUT_DEVICES; l++) { - enablejoydevice (&joysticks[l], gameportsmode, evtnum); - enablejoydevice (&mice[l], gameportsmode, evtnum); - enablejoydevice (&keyboards[l], gameportsmode, evtnum); - } - for (int k = 0; axistable[k] >= 0; k += 3) { - if (evtnum == axistable[k] || evtnum == axistable[k + 1] || evtnum == axistable[k + 2]) { - for (int j = 0; j < 3; j++) { - int evtnum2 = axistable[k + j]; - for (int l = 0; l < MAX_INPUT_DEVICES; l++) { - enablejoydevice (&joysticks[l], gameportsmode, evtnum2); - enablejoydevice (&mice[l], gameportsmode, evtnum2); - enablejoydevice (&keyboards[l], gameportsmode, evtnum2); - } - } - break; - } - } + for (int i = 0; joyinputs[port] && joyinputs[port][i] >= 0; i++) + { + int evtnum = joyinputs[port][i]; + for (int l = 0; l < MAX_INPUT_DEVICES; l++) + { + enablejoydevice (&joysticks[l], gameportsmode, evtnum); + enablejoydevice (&mice[l], gameportsmode, evtnum); + enablejoydevice (&keyboards[l], gameportsmode, evtnum); + } + for (int k = 0; axistable[k] >= 0; k += 3) + { + if (evtnum == axistable[k] || evtnum == axistable[k + 1] || evtnum == axistable[k + 2]) + { + for (int j = 0; j < 3; j++) + { + int evtnum2 = axistable[k + j]; + for (int l = 0; l < MAX_INPUT_DEVICES; l++) + { + enablejoydevice (&joysticks[l], gameportsmode, evtnum2); + enablejoydevice (&mice[l], gameportsmode, evtnum2); + enablejoydevice (&keyboards[l], gameportsmode, evtnum2); + } + } + break; + } + } - } + } } static void setjoyinputs (struct uae_prefs *prefs, int port) { - joyinputs[port] = NULL; - switch (joymodes[port]) - { - case JSEM_MODE_JOYSTICK: - if (port >= 2) - joyinputs[port] = port == 3 ? ip_parjoy2 : ip_parjoy1; - else - joyinputs[port] = port == 1 ? ip_joy2 : ip_joy1; - break; - case JSEM_MODE_GAMEPAD: - joyinputs[port] = port ? ip_joypad2 : ip_joypad1; - break; - case JSEM_MODE_JOYSTICK_CD32: - joyinputs[port] = port ? ip_joycd322 : ip_joycd321; - break; - case JSEM_MODE_JOYSTICK_ANALOG: - joyinputs[port] = port ? ip_analog2 : ip_analog1; - break; - case JSEM_MODE_MOUSE: - joyinputs[port] = port ? ip_mouse2 : ip_mouse1; - break; - case JSEM_MODE_LIGHTPEN: - joyinputs[port] = port ? ip_lightpen2 : ip_lightpen1; - break; - case JSEM_MODE_MOUSE_CDTV: - joyinputs[port] = ip_mousecdtv; - break; - } + joyinputs[port] = NULL; + switch (joymodes[port]) + { + case JSEM_MODE_JOYSTICK: + if (port >= 2) + joyinputs[port] = port == 3 ? ip_parjoy2 : ip_parjoy1; + else + joyinputs[port] = port == 1 ? ip_joy2 : ip_joy1; + break; + case JSEM_MODE_GAMEPAD: + joyinputs[port] = port ? ip_joypad2 : ip_joypad1; + break; + case JSEM_MODE_JOYSTICK_CD32: + joyinputs[port] = port ? ip_joycd322 : ip_joycd321; + break; + case JSEM_MODE_JOYSTICK_ANALOG: + joyinputs[port] = port ? ip_analog2 : ip_analog1; + break; + case JSEM_MODE_MOUSE: + joyinputs[port] = port ? ip_mouse2 : ip_mouse1; + break; + case JSEM_MODE_LIGHTPEN: + joyinputs[port] = port ? ip_lightpen2 : ip_lightpen1; + break; + case JSEM_MODE_MOUSE_CDTV: + joyinputs[port] = ip_mousecdtv; + break; + } } static void setautofire (struct uae_input_device *uid, int port, int af) { - int *afp = af_ports[port]; - for (int k = 0; afp[k] >= 0; k++) { - for (int i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) { - for (int j = 0; j < MAX_INPUT_SUB_EVENT; j++) { - if (uid->eventid[i][j] == afp[k]) { - uid->flags[i][j] &= ~ID_FLAG_AUTOFIRE_MASK; - if (af >= JPORT_AF_NORMAL) - uid->flags[i][j] |= ID_FLAG_AUTOFIRE; + int *afp = af_ports[port]; + for (int k = 0; afp[k] >= 0; k++) + { + for (int i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) + { + for (int j = 0; j < MAX_INPUT_SUB_EVENT; j++) + { + if (uid->eventid[i][j] == afp[k]) + { + uid->flags[i][j] &= ~ID_FLAG_AUTOFIRE_MASK; + if (af >= JPORT_AF_NORMAL) + uid->flags[i][j] |= ID_FLAG_AUTOFIRE; #ifndef INPUTDEVICE_SIMPLE - if (af == JPORT_AF_TOGGLE) - uid->flags[i][j] |= ID_FLAG_TOGGLE; - if (af == JPORT_AF_ALWAYS) - uid->flags[i][j] |= ID_FLAG_INVERTTOGGLE; + if (af == JPORT_AF_TOGGLE) + uid->flags[i][j] |= ID_FLAG_TOGGLE; + if (af == JPORT_AF_ALWAYS) + uid->flags[i][j] |= ID_FLAG_INVERTTOGGLE; #endif - } - } - } - } + } + } + } + } } static void setautofires (struct uae_prefs *prefs, int port, int af) { - for (int l = 0; l < MAX_INPUT_DEVICES; l++) { - setautofire (&joysticks[l], port, af); - setautofire (&mice[l], port, af); - setautofire (&keyboards[l], port, af); - } + for (int l = 0; l < MAX_INPUT_DEVICES; l++) + { + setautofire (&joysticks[l], port, af); + setautofire (&mice[l], port, af); + setautofire (&keyboards[l], port, af); + } } // merge gameport settings with current input configuration static void compatibility_copy (struct uae_prefs *prefs, bool gameports) { - int used[MAX_INPUT_DEVICES] = { 0 }; - int i, joy; + int used[MAX_INPUT_DEVICES] = { 0 }; + int i, joy; - for (i = 0; i < MAX_JPORTS; i++) { - joymodes[i] = prefs->jports[i].mode; - joyinputs[i]= NULL; - // remove all mappings from this port, except if custom - if (prefs->jports[i].id != JPORT_CUSTOM) { - if (gameports) - remove_compa_config (prefs, i); - } - remove_custom_config (prefs, prefs->jports[i].id == JPORT_CUSTOM, i); - setjoyinputs (prefs, i); - } + for (i = 0; i < MAX_JPORTS; i++) + { + joymodes[i] = prefs->jports[i].mode; + joyinputs[i]= NULL; + // remove all mappings from this port, except if custom + if (prefs->jports[i].id != JPORT_CUSTOM) + { + if (gameports) + remove_compa_config (prefs, i); + } + remove_custom_config (prefs, prefs->jports[i].id == JPORT_CUSTOM, i); + setjoyinputs (prefs, i); + } - for (i = 0; i < 2; i++) { - int af = prefs->jports[i].autofire; - if (prefs->jports[i].id >= 0 && joymodes[i] <= 0) { - int mode = prefs->jports[i].mode; - if (jsem_ismouse (i, prefs) >= 0) { - switch (mode) - { - case JSEM_MODE_DEFAULT: - case JSEM_MODE_MOUSE: - default: - joymodes[i] = JSEM_MODE_MOUSE; - joyinputs[i] = i ? ip_mouse2 : ip_mouse1; - break; + for (i = 0; i < 2; i++) + { + int af = prefs->jports[i].autofire; + if (prefs->jports[i].id >= 0 && joymodes[i] <= 0) + { + int mode = prefs->jports[i].mode; + if (jsem_ismouse (i, prefs) >= 0) + { + switch (mode) + { + case JSEM_MODE_DEFAULT: + case JSEM_MODE_MOUSE: + default: + joymodes[i] = JSEM_MODE_MOUSE; + joyinputs[i] = i ? ip_mouse2 : ip_mouse1; + break; #ifndef INPUTDEVICE_SIMPLE - case JSEM_MODE_LIGHTPEN: - joymodes[i] = JSEM_MODE_LIGHTPEN; - joyinputs[i] = i ? ip_lightpen2 : ip_lightpen1; - break; - case JSEM_MODE_MOUSE_CDTV: - joymodes[i] = JSEM_MODE_MOUSE_CDTV; - joyinputs[i] = ip_mousecdtv; - break; + case JSEM_MODE_LIGHTPEN: + joymodes[i] = JSEM_MODE_LIGHTPEN; + joyinputs[i] = i ? ip_lightpen2 : ip_lightpen1; + break; + case JSEM_MODE_MOUSE_CDTV: + joymodes[i] = JSEM_MODE_MOUSE_CDTV; + joyinputs[i] = ip_mousecdtv; + break; #endif - } - } else if (jsem_isjoy (i, prefs) >= 0) { - switch (mode) - { - case JSEM_MODE_DEFAULT: - case JSEM_MODE_JOYSTICK: + } + } + else if (jsem_isjoy (i, prefs) >= 0) + { + switch (mode) + { + case JSEM_MODE_DEFAULT: + case JSEM_MODE_JOYSTICK: #ifndef INPUTDEVICE_SIMPLE - case JSEM_MODE_GAMEPAD: + case JSEM_MODE_GAMEPAD: #endif - case JSEM_MODE_JOYSTICK_CD32: - default: - { - bool iscd32 = mode == JSEM_MODE_JOYSTICK_CD32 || (mode == JSEM_MODE_DEFAULT && prefs->cs_cd32cd); - if (iscd32) { - joymodes[i] = JSEM_MODE_JOYSTICK_CD32; - joyinputs[i] = i ? ip_joycd322 : ip_joycd321; + case JSEM_MODE_JOYSTICK_CD32: + default: + { + bool iscd32 = mode == JSEM_MODE_JOYSTICK_CD32 || (mode == JSEM_MODE_DEFAULT && prefs->cs_cd32cd); + if (iscd32) + { + joymodes[i] = JSEM_MODE_JOYSTICK_CD32; + joyinputs[i] = i ? ip_joycd322 : ip_joycd321; #ifndef INPUTDEVICE_SIMPLE - } else if (mode == JSEM_MODE_GAMEPAD) { - joymodes[i] = JSEM_MODE_GAMEPAD; - joyinputs[i] = i ? ip_joypad2 : ip_joypad1; + } + else if (mode == JSEM_MODE_GAMEPAD) + { + joymodes[i] = JSEM_MODE_GAMEPAD; + joyinputs[i] = i ? ip_joypad2 : ip_joypad1; #endif - } else { - joymodes[i] = JSEM_MODE_JOYSTICK; - joyinputs[i] = i ? ip_joy2 : ip_joy1; - } - break; - } + } + else + { + joymodes[i] = JSEM_MODE_JOYSTICK; + joyinputs[i] = i ? ip_joy2 : ip_joy1; + } + break; + } #ifndef INPUTDEVICE_SIMPLE - case JSEM_MODE_JOYSTICK_ANALOG: - joymodes[i] = JSEM_MODE_JOYSTICK_ANALOG; - joyinputs[i] = i ? ip_analog2 : ip_analog1; - break; + case JSEM_MODE_JOYSTICK_ANALOG: + joymodes[i] = JSEM_MODE_JOYSTICK_ANALOG; + joyinputs[i] = i ? ip_analog2 : ip_analog1; + break; #endif - case JSEM_MODE_MOUSE: - joymodes[i] = JSEM_MODE_MOUSE; - joyinputs[i] = i ? ip_mouse2 : ip_mouse1; - break; + case JSEM_MODE_MOUSE: + joymodes[i] = JSEM_MODE_MOUSE; + joyinputs[i] = i ? ip_mouse2 : ip_mouse1; + break; #ifndef INPUTDEVICE_SIMPLE - case JSEM_MODE_LIGHTPEN: - joymodes[i] = JSEM_MODE_LIGHTPEN; - joyinputs[i] = i ? ip_lightpen2 : ip_lightpen1; - break; - case JSEM_MODE_MOUSE_CDTV: - joymodes[i] = JSEM_MODE_MOUSE_CDTV; - joyinputs[i] = ip_mousecdtv; - break; + case JSEM_MODE_LIGHTPEN: + joymodes[i] = JSEM_MODE_LIGHTPEN; + joyinputs[i] = i ? ip_lightpen2 : ip_lightpen1; + break; + case JSEM_MODE_MOUSE_CDTV: + joymodes[i] = JSEM_MODE_MOUSE_CDTV; + joyinputs[i] = ip_mousecdtv; + break; #endif - } - } else if (prefs->jports[i].id >= 0) { - joymodes[i] = i ? JSEM_MODE_JOYSTICK : JSEM_MODE_MOUSE; - joyinputs[i] = i ? ip_joy2 : ip_mouse1; - } - } - } + } + } + else if (prefs->jports[i].id >= 0) + { + joymodes[i] = i ? JSEM_MODE_JOYSTICK : JSEM_MODE_MOUSE; + joyinputs[i] = i ? ip_joy2 : ip_mouse1; + } + } + } #ifndef INPUTDEVICE_SIMPLE - for (i = 2; i < MAX_JPORTS; i++) { - if (prefs->jports[i].id >= 0 && joymodes[i] <= 0) { - int mode = prefs->jports[i].mode; - if (jsem_isjoy (i, prefs) >= 0) { - joymodes[i] = JSEM_MODE_JOYSTICK; - joyinputs[i] = i == 3 ? ip_parjoy2 : ip_parjoy1; - } else if (prefs->jports[i].id >= 0) { - prefs->jports[i].mode = joymodes[i] = JSEM_MODE_JOYSTICK; - joyinputs[i] = i == 3 ? ip_parjoy2 : ip_parjoy1; - } - } - } + for (i = 2; i < MAX_JPORTS; i++) + { + if (prefs->jports[i].id >= 0 && joymodes[i] <= 0) + { + int mode = prefs->jports[i].mode; + if (jsem_isjoy (i, prefs) >= 0) + { + joymodes[i] = JSEM_MODE_JOYSTICK; + joyinputs[i] = i == 3 ? ip_parjoy2 : ip_parjoy1; + } + else if (prefs->jports[i].id >= 0) + { + prefs->jports[i].mode = joymodes[i] = JSEM_MODE_JOYSTICK; + joyinputs[i] = i == 3 ? ip_parjoy2 : ip_parjoy1; + } + } + } #endif - for (i = 0; i < 2; i++) { - int af = prefs->jports[i].autofire; - if (prefs->jports[i].id >= 0) { - int mode = prefs->jports[i].mode; - if ((joy = jsem_ismouse (i, prefs)) >= 0) { - if (gameports) - cleardev (mice, joy); - switch (mode) - { - case JSEM_MODE_DEFAULT: - case JSEM_MODE_MOUSE: - default: - input_get_default_mouse (mice, joy, i, af, !gameports); - joymodes[i] = JSEM_MODE_MOUSE; - break; - } - _tcsncpy (prefs->jports[i].name, idev[IDTYPE_MOUSE].get_friendlyname (joy), MAX_JPORTNAME - 1); - _tcsncpy (prefs->jports[i].configname, idev[IDTYPE_MOUSE].get_uniquename (joy), MAX_JPORTNAME - 1); - } - } - } + for (i = 0; i < 2; i++) + { + int af = prefs->jports[i].autofire; + if (prefs->jports[i].id >= 0) + { + int mode = prefs->jports[i].mode; + if ((joy = jsem_ismouse (i, prefs)) >= 0) + { + if (gameports) + cleardev (mice, joy); + switch (mode) + { + case JSEM_MODE_DEFAULT: + case JSEM_MODE_MOUSE: + default: + input_get_default_mouse (mice, joy, i, af, !gameports); + joymodes[i] = JSEM_MODE_MOUSE; + break; + } + _tcsncpy (prefs->jports[i].name, idev[IDTYPE_MOUSE].get_friendlyname (joy), MAX_JPORTNAME - 1); + _tcsncpy (prefs->jports[i].configname, idev[IDTYPE_MOUSE].get_uniquename (joy), MAX_JPORTNAME - 1); + } + } + } - for (i = 1; i >= 0; i--) { - int af = prefs->jports[i].autofire; - if (prefs->jports[i].id >= 0) { - int mode = prefs->jports[i].mode; - joy = jsem_isjoy (i, prefs); - if (joy >= 0) { - if (gameports) - cleardev (joysticks, joy); - switch (mode) - { - case JSEM_MODE_DEFAULT: - case JSEM_MODE_JOYSTICK: + for (i = 1; i >= 0; i--) + { + int af = prefs->jports[i].autofire; + if (prefs->jports[i].id >= 0) + { + int mode = prefs->jports[i].mode; + joy = jsem_isjoy (i, prefs); + if (joy >= 0) + { + if (gameports) + cleardev (joysticks, joy); + switch (mode) + { + case JSEM_MODE_DEFAULT: + case JSEM_MODE_JOYSTICK: #ifndef INPUTDEVICE_SIMPLE - case JSEM_MODE_GAMEPAD: + case JSEM_MODE_GAMEPAD: #endif - case JSEM_MODE_JOYSTICK_CD32: - default: - { - bool iscd32 = mode == JSEM_MODE_JOYSTICK_CD32 || (mode == JSEM_MODE_DEFAULT && prefs->cs_cd32cd); - input_get_default_joystick (joysticks, joy, i, af, mode, !gameports); - if (iscd32) - joymodes[i] = JSEM_MODE_JOYSTICK_CD32; + case JSEM_MODE_JOYSTICK_CD32: + default: + { + bool iscd32 = mode == JSEM_MODE_JOYSTICK_CD32 || (mode == JSEM_MODE_DEFAULT && prefs->cs_cd32cd); + input_get_default_joystick (joysticks, joy, i, af, mode, !gameports); + if (iscd32) + joymodes[i] = JSEM_MODE_JOYSTICK_CD32; #ifndef INPUTDEVICE_SIMPLE - else if (mode == JSEM_MODE_GAMEPAD) - joymodes[i] = JSEM_MODE_GAMEPAD; + else if (mode == JSEM_MODE_GAMEPAD) + joymodes[i] = JSEM_MODE_GAMEPAD; #endif - else - joymodes[i] = JSEM_MODE_JOYSTICK; - break; - } + else + joymodes[i] = JSEM_MODE_JOYSTICK; + break; + } #ifndef INPUTDEVICE_SIMPLE - case JSEM_MODE_JOYSTICK_ANALOG: - input_get_default_joystick_analog (joysticks, joy, i, af, !gameports); - joymodes[i] = JSEM_MODE_JOYSTICK_ANALOG; - break; + case JSEM_MODE_JOYSTICK_ANALOG: + input_get_default_joystick_analog (joysticks, joy, i, af, !gameports); + joymodes[i] = JSEM_MODE_JOYSTICK_ANALOG; + break; #endif - case JSEM_MODE_MOUSE: - input_get_default_mouse (joysticks, joy, i, af, !gameports); - joymodes[i] = JSEM_MODE_MOUSE; - break; + case JSEM_MODE_MOUSE: + input_get_default_mouse (joysticks, joy, i, af, !gameports); + joymodes[i] = JSEM_MODE_MOUSE; + break; #ifndef INPUTDEVICE_SIMPLE - case JSEM_MODE_MOUSE_CDTV: - joymodes[i] = JSEM_MODE_MOUSE_CDTV; - input_get_default_joystick (joysticks, joy, i, af, mode, !gameports); - break; + case JSEM_MODE_MOUSE_CDTV: + joymodes[i] = JSEM_MODE_MOUSE_CDTV; + input_get_default_joystick (joysticks, joy, i, af, mode, !gameports); + break; #endif - } - _tcsncpy (prefs->jports[i].name, idev[IDTYPE_JOYSTICK].get_friendlyname (joy), MAX_JPORTNAME - 1); - _tcsncpy (prefs->jports[i].configname, idev[IDTYPE_JOYSTICK].get_uniquename (joy), MAX_JPORTNAME - 1); - used[joy] = 1; - } - } - } + } + _tcsncpy (prefs->jports[i].name, idev[IDTYPE_JOYSTICK].get_friendlyname (joy), MAX_JPORTNAME - 1); + _tcsncpy (prefs->jports[i].configname, idev[IDTYPE_JOYSTICK].get_uniquename (joy), MAX_JPORTNAME - 1); + used[joy] = 1; + } + } + } - if (gameports) { - // replace possible old mappings with default keyboard mapping - for (i = KBR_DEFAULT_MAP_FIRST; i <= KBR_DEFAULT_MAP_LAST; i++) { - checkcompakb (keyboard_default_kbmaps[i], ip_joy2); - checkcompakb (keyboard_default_kbmaps[i], ip_joy1); + if (gameports) + { + // replace possible old mappings with default keyboard mapping + for (i = KBR_DEFAULT_MAP_FIRST; i <= KBR_DEFAULT_MAP_LAST; i++) + { + checkcompakb (keyboard_default_kbmaps[i], ip_joy2); + checkcompakb (keyboard_default_kbmaps[i], ip_joy1); #ifndef INPUTDEVICE_SIMPLE - checkcompakb (keyboard_default_kbmaps[i], ip_joypad2); - checkcompakb (keyboard_default_kbmaps[i], ip_joypad1); - checkcompakb (keyboard_default_kbmaps[i], ip_parjoy2); - checkcompakb (keyboard_default_kbmaps[i], ip_parjoy1); + checkcompakb (keyboard_default_kbmaps[i], ip_joypad2); + checkcompakb (keyboard_default_kbmaps[i], ip_joypad1); + checkcompakb (keyboard_default_kbmaps[i], ip_parjoy2); + checkcompakb (keyboard_default_kbmaps[i], ip_parjoy1); #endif - checkcompakb (keyboard_default_kbmaps[i], ip_mouse2); - checkcompakb (keyboard_default_kbmaps[i], ip_mouse1); - } - for (i = KBR_DEFAULT_MAP_CD32_FIRST; i <= KBR_DEFAULT_MAP_CD32_LAST; i++) { - checkcompakb (keyboard_default_kbmaps[i], ip_joycd321); - checkcompakb (keyboard_default_kbmaps[i], ip_joycd322); - } - } + checkcompakb (keyboard_default_kbmaps[i], ip_mouse2); + checkcompakb (keyboard_default_kbmaps[i], ip_mouse1); + } + for (i = KBR_DEFAULT_MAP_CD32_FIRST; i <= KBR_DEFAULT_MAP_CD32_LAST; i++) + { + checkcompakb (keyboard_default_kbmaps[i], ip_joycd321); + checkcompakb (keyboard_default_kbmaps[i], ip_joycd322); + } + } - for (i = 0; i < 2; i++) { - if (prefs->jports[i].id >= 0) { - int *kb = NULL; - int mode = prefs->jports[i].mode; - int af = prefs->jports[i].autofire; - for (joy = 0; used[joy]; joy++); - if (JSEM_ISANYKBD (i, prefs)) { - bool cd32 = mode == JSEM_MODE_JOYSTICK_CD32 || (mode == JSEM_MODE_DEFAULT && prefs->cs_cd32cd); - if (JSEM_ISNUMPAD (i, prefs)) { - if (cd32) - kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_CD32_NP]; + for (i = 0; i < 2; i++) + { + if (prefs->jports[i].id >= 0) + { + int *kb = NULL; + int mode = prefs->jports[i].mode; + int af = prefs->jports[i].autofire; + for (joy = 0; used[joy]; joy++); + if (JSEM_ISANYKBD (i, prefs)) + { + bool cd32 = mode == JSEM_MODE_JOYSTICK_CD32 || (mode == JSEM_MODE_DEFAULT && prefs->cs_cd32cd); + if (JSEM_ISNUMPAD (i, prefs)) + { + if (cd32) + kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_CD32_NP]; #ifndef INPUTDEVICE_SIMPLE - else if (mode == JSEM_MODE_GAMEPAD) - kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_NP3]; + else if (mode == JSEM_MODE_GAMEPAD) + kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_NP3]; #endif - else - kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_NP]; - } else if (JSEM_ISCURSOR (i, prefs)) { - if (cd32) - kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_CD32_CK]; + else + kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_NP]; + } + else if (JSEM_ISCURSOR (i, prefs)) + { + if (cd32) + kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_CD32_CK]; #ifndef INPUTDEVICE_SIMPLE - else if (mode == JSEM_MODE_GAMEPAD) - kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_CK3]; + else if (mode == JSEM_MODE_GAMEPAD) + kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_CK3]; #endif - else - kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_CK]; - } else if (JSEM_ISSOMEWHEREELSE (i, prefs)) { - if (cd32) - kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_CD32_SE]; + else + kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_CK]; + } + else if (JSEM_ISSOMEWHEREELSE (i, prefs)) + { + if (cd32) + kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_CD32_SE]; #ifndef INPUTDEVICE_SIMPLE - else if (mode == JSEM_MODE_GAMEPAD) - kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_SE3]; + else if (mode == JSEM_MODE_GAMEPAD) + kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_SE3]; #endif - else - kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_SE]; - } else if (JSEM_ISXARCADE1 (i, prefs)) { - kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_XA1]; - } else if (JSEM_ISXARCADE2 (i, prefs)) { - kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_XA2]; - } - if (kb) { - switch (mode) - { - case JSEM_MODE_JOYSTICK: + else + kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_SE]; + } + else if (JSEM_ISXARCADE1 (i, prefs)) + { + kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_XA1]; + } + else if (JSEM_ISXARCADE2 (i, prefs)) + { + kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_XA2]; + } + if (kb) + { + switch (mode) + { + case JSEM_MODE_JOYSTICK: #ifndef INPUTDEVICE_SIMPLE - case JSEM_MODE_GAMEPAD: + case JSEM_MODE_GAMEPAD: #endif - case JSEM_MODE_JOYSTICK_CD32: - case JSEM_MODE_DEFAULT: - if (cd32) { - setcompakb (kb, i ? ip_joycd322 : ip_joycd321, i, af); - joymodes[i] = JSEM_MODE_JOYSTICK_CD32; + case JSEM_MODE_JOYSTICK_CD32: + case JSEM_MODE_DEFAULT: + if (cd32) + { + setcompakb (kb, i ? ip_joycd322 : ip_joycd321, i, af); + joymodes[i] = JSEM_MODE_JOYSTICK_CD32; #ifndef INPUTDEVICE_SIMPLE - } else if (mode == JSEM_MODE_GAMEPAD) { - setcompakb (kb, i ? ip_joypad2 : ip_joypad1, i, af); - joymodes[i] = JSEM_MODE_GAMEPAD; + } + else if (mode == JSEM_MODE_GAMEPAD) + { + setcompakb (kb, i ? ip_joypad2 : ip_joypad1, i, af); + joymodes[i] = JSEM_MODE_GAMEPAD; #endif - } else { - setcompakb (kb, i ? ip_joy2 : ip_joy1, i, af); - joymodes[i] = JSEM_MODE_JOYSTICK; - } - break; - case JSEM_MODE_MOUSE: - setcompakb (kb, i ? ip_mouse2 : ip_mouse1, i, af); - joymodes[i] = JSEM_MODE_MOUSE; - break; - } - used[joy] = 1; - } - } - } - } + } + else + { + setcompakb (kb, i ? ip_joy2 : ip_joy1, i, af); + joymodes[i] = JSEM_MODE_JOYSTICK; + } + break; + case JSEM_MODE_MOUSE: + setcompakb (kb, i ? ip_mouse2 : ip_mouse1, i, af); + joymodes[i] = JSEM_MODE_MOUSE; + break; + } + used[joy] = 1; + } + } + } + } #ifndef INPUTDEVICE_SIMPLE - // parport - for (i = 2; i < MAX_JPORTS; i++) { - int af = prefs->jports[i].autofire; - if (prefs->jports[i].id >= 0) { - int *kb = NULL; - joy = jsem_isjoy (i, prefs); - if (joy >= 0) { - if (gameports) - cleardev (joysticks, joy); - input_get_default_joystick (joysticks, joy, i, af, 0, !gameports); - _tcsncpy (prefs->jports[i].name, idev[IDTYPE_JOYSTICK].get_friendlyname (joy), MAX_JPORTNAME - 1); - _tcsncpy (prefs->jports[i].configname, idev[IDTYPE_JOYSTICK].get_uniquename (joy), MAX_JPORTNAME - 1); - used[joy] = 1; - joymodes[i] = JSEM_MODE_JOYSTICK; - } - } - } - for (i = 2; i < MAX_JPORTS; i++) { - if (prefs->jports[i].id >= 0) { - int *kb = NULL; - for (joy = 0; used[joy]; joy++); - if (JSEM_ISANYKBD (i, prefs)) { - if (JSEM_ISNUMPAD (i, prefs)) - kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_NP]; - else if (JSEM_ISCURSOR (i, prefs)) - kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_CK]; - else if (JSEM_ISSOMEWHEREELSE (i, prefs)) - kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_SE]; - else if (JSEM_ISXARCADE1 (i, prefs)) - kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_XA1]; - else if (JSEM_ISXARCADE2 (i, prefs)) - kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_XA2]; - if (kb) { - setcompakb (kb, i == 3 ? ip_parjoy2default : ip_parjoy1default, i, prefs->jports[i].autofire); - used[joy] = 1; - joymodes[i] = JSEM_MODE_JOYSTICK; - } - } - } - } + // parport + for (i = 2; i < MAX_JPORTS; i++) + { + int af = prefs->jports[i].autofire; + if (prefs->jports[i].id >= 0) + { + int *kb = NULL; + joy = jsem_isjoy (i, prefs); + if (joy >= 0) + { + if (gameports) + cleardev (joysticks, joy); + input_get_default_joystick (joysticks, joy, i, af, 0, !gameports); + _tcsncpy (prefs->jports[i].name, idev[IDTYPE_JOYSTICK].get_friendlyname (joy), MAX_JPORTNAME - 1); + _tcsncpy (prefs->jports[i].configname, idev[IDTYPE_JOYSTICK].get_uniquename (joy), MAX_JPORTNAME - 1); + used[joy] = 1; + joymodes[i] = JSEM_MODE_JOYSTICK; + } + } + } + for (i = 2; i < MAX_JPORTS; i++) + { + if (prefs->jports[i].id >= 0) + { + int *kb = NULL; + for (joy = 0; used[joy]; joy++); + if (JSEM_ISANYKBD (i, prefs)) + { + if (JSEM_ISNUMPAD (i, prefs)) + kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_NP]; + else if (JSEM_ISCURSOR (i, prefs)) + kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_CK]; + else if (JSEM_ISSOMEWHEREELSE (i, prefs)) + kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_SE]; + else if (JSEM_ISXARCADE1 (i, prefs)) + kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_XA1]; + else if (JSEM_ISXARCADE2 (i, prefs)) + kb = keyboard_default_kbmaps[KBR_DEFAULT_MAP_XA2]; + if (kb) + { + setcompakb (kb, i == 3 ? ip_parjoy2default : ip_parjoy1default, i, prefs->jports[i].autofire); + used[joy] = 1; + joymodes[i] = JSEM_MODE_JOYSTICK; + } + } + } + } #endif - for (i = 0; i < MAX_JPORTS; i++) { - if (gameports) - setautofires (prefs, i, prefs->jports[i].autofire); - } + for (i = 0; i < MAX_JPORTS; i++) + { + if (gameports) + setautofires (prefs, i, prefs->jports[i].autofire); + } - for (i = 0; i < MAX_JPORTS; i++) { - setjoyinputs (prefs, i); - setjoydevices (prefs, gameports, i); - } + for (i = 0; i < MAX_JPORTS; i++) + { + setjoyinputs (prefs, i); + setjoydevices (prefs, gameports, i); + } } static void disableifempty2 (struct uae_input_device *uid) { - for (int i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) { - for (int j = 0; j < MAX_INPUT_SUB_EVENT; j++) { - if (uid->eventid[i][j] > 0 || uid->custom[i][j] != NULL) - return; - } - } - uid->enabled = false; + for (int i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) + { + for (int j = 0; j < MAX_INPUT_SUB_EVENT; j++) + { + if (uid->eventid[i][j] > 0 || uid->custom[i][j] != NULL) + return; + } + } + uid->enabled = false; } static void disableifempty (struct uae_prefs *prefs) { - for (int l = 0; l < MAX_INPUT_DEVICES; l++) { - disableifempty2 (&joysticks[l]); - disableifempty2 (&mice[l]); - disableifempty2 (&keyboards[l]); - } + for (int l = 0; l < MAX_INPUT_DEVICES; l++) + { + disableifempty2 (&joysticks[l]); + disableifempty2 (&mice[l]); + disableifempty2 (&keyboards[l]); + } } static void matchdevices (struct inputdevice_functions *inf, struct uae_input_device *uid) { - int i, j; + int i, j; - for (i = 0; i < inf->get_num (); i++) { - TCHAR *aname1 = inf->get_friendlyname (i); - TCHAR *aname2 = inf->get_uniquename (i); - int match = -1; - for (j = 0; j < MAX_INPUT_DEVICES; j++) { - if (aname2 && uid[j].configname) { - bool matched = false; - TCHAR bname[MAX_DPATH]; - TCHAR bname2[MAX_DPATH]; - TCHAR *p1 ,*p2; - _tcscpy (bname, uid[j].configname); - _tcscpy (bname2, aname2); - // strip possible local guid part - p1 = _tcschr (bname, '{'); - p2 = _tcschr (bname2, '{'); - if (!p1 && !p2) { - // check possible directinput names too - p1 = _tcschr (bname, ' '); - p2 = _tcschr (bname2, ' '); - } - if (!_tcscmp (bname, bname2)) { - matched = true; - } else if (p1 && p2 && p1 - bname == p2 - bname2) { - *p1 = 0; - *p2 = 0; - if (bname && !_tcscmp (bname2, bname)) - matched = true; - } - if (matched) { - if (match >= 0) - match = -2; - else - match = j; - } - if (match == -2) - break; - } - } - // multiple matches -> use complete local-only id string for comparisons - if (match == -2) { - for (j = 0; j < MAX_INPUT_DEVICES; j++) { - TCHAR *bname2 = uid[j].configname; - if (aname2 && bname2 && !_tcscmp (aname2, bname2)) { - match = j; - break; - } - } - } - if (match < 0) { - // no match, try friend names - for (j = 0; j < MAX_INPUT_DEVICES; j++) { - TCHAR *bname1 = uid[j].name; - if (aname1 && bname1 && !_tcscmp (aname1, bname1)) { - match = j; - break; - } - } - } - if (match >= 0) { - j = match; - if (j != i) { - struct uae_input_device *tmp = xmalloc (struct uae_input_device, 1); - memcpy (tmp, &uid[j], sizeof (struct uae_input_device)); - memcpy (&uid[j], &uid[i], sizeof (struct uae_input_device)); - memcpy (&uid[i], tmp, sizeof (struct uae_input_device)); - xfree (tmp); - } - } - } - for (i = 0; i < inf->get_num (); i++) { - if (uid[i].name == NULL) - uid[i].name = my_strdup (inf->get_friendlyname (i)); - if (uid[i].configname == NULL) - uid[i].configname = my_strdup (inf->get_uniquename (i)); - } + for (i = 0; i < inf->get_num (); i++) + { + TCHAR *aname1 = inf->get_friendlyname (i); + TCHAR *aname2 = inf->get_uniquename (i); + int match = -1; + for (j = 0; j < MAX_INPUT_DEVICES; j++) + { + if (aname2 && uid[j].configname) + { + bool matched = false; + TCHAR bname[MAX_DPATH]; + TCHAR bname2[MAX_DPATH]; + TCHAR *p1,*p2; + _tcscpy (bname, uid[j].configname); + _tcscpy (bname2, aname2); + // strip possible local guid part + p1 = _tcschr (bname, '{'); + p2 = _tcschr (bname2, '{'); + if (!p1 && !p2) + { + // check possible directinput names too + p1 = _tcschr (bname, ' '); + p2 = _tcschr (bname2, ' '); + } + if (!_tcscmp (bname, bname2)) + { + matched = true; + } + else if (p1 && p2 && p1 - bname == p2 - bname2) + { + *p1 = 0; + *p2 = 0; + if (bname && !_tcscmp (bname2, bname)) + matched = true; + } + if (matched) + { + if (match >= 0) + match = -2; + else + match = j; + } + if (match == -2) + break; + } + } + // multiple matches -> use complete local-only id string for comparisons + if (match == -2) + { + for (j = 0; j < MAX_INPUT_DEVICES; j++) + { + TCHAR *bname2 = uid[j].configname; + if (aname2 && bname2 && !_tcscmp (aname2, bname2)) + { + match = j; + break; + } + } + } + if (match < 0) + { + // no match, try friend names + for (j = 0; j < MAX_INPUT_DEVICES; j++) + { + TCHAR *bname1 = uid[j].name; + if (aname1 && bname1 && !_tcscmp (aname1, bname1)) + { + match = j; + break; + } + } + } + if (match >= 0) + { + j = match; + if (j != i) + { + struct uae_input_device *tmp = xmalloc (struct uae_input_device, 1); + memcpy (tmp, &uid[j], sizeof (struct uae_input_device)); + memcpy (&uid[j], &uid[i], sizeof (struct uae_input_device)); + memcpy (&uid[i], tmp, sizeof (struct uae_input_device)); + xfree (tmp); + } + } + } + for (i = 0; i < inf->get_num (); i++) + { + if (uid[i].name == NULL) + uid[i].name = my_strdup (inf->get_friendlyname (i)); + if (uid[i].configname == NULL) + uid[i].configname = my_strdup (inf->get_uniquename (i)); + } } static void matchdevices_all (struct uae_prefs *prefs) { - int i; - for (i = 0; i < MAX_INPUT_SETTINGS; i++) { - matchdevices (&idev[IDTYPE_MOUSE], prefs->mouse_settings[i]); - matchdevices (&idev[IDTYPE_JOYSTICK], prefs->joystick_settings[i]); - matchdevices (&idev[IDTYPE_KEYBOARD], prefs->keyboard_settings[i]); - } + int i; + for (i = 0; i < MAX_INPUT_SETTINGS; i++) + { + matchdevices (&idev[IDTYPE_MOUSE], prefs->mouse_settings[i]); + matchdevices (&idev[IDTYPE_JOYSTICK], prefs->joystick_settings[i]); + matchdevices (&idev[IDTYPE_KEYBOARD], prefs->keyboard_settings[i]); + } } bool inputdevice_set_gameports_mapping (struct uae_prefs *prefs, int devnum, int num, int evtnum, uae_u64 flags, int port) { - TCHAR name[256]; - struct inputevent *ie; - int sub; + TCHAR name[256]; + struct inputevent *ie; + int sub; - if (evtnum < 0) { - joysticks = prefs->joystick_settings[GAMEPORT_INPUT_SETTINGS]; - mice = prefs->mouse_settings[GAMEPORT_INPUT_SETTINGS]; - keyboards = prefs->keyboard_settings[GAMEPORT_INPUT_SETTINGS]; - for (sub = 0; sub < MAX_INPUT_SUB_EVENT; sub++) { - int port2 = 0; - inputdevice_get_mapping (devnum, num, NULL, &port2, NULL, NULL, sub); - if (port2 == port + 1) { - inputdevice_set_mapping (devnum, num, NULL, NULL, 0, 0, sub); - } - } - return true; - } - ie = inputdevice_get_eventinfo (evtnum); - if (!inputdevice_get_eventname (ie, name)) - return false; - joysticks = prefs->joystick_settings[GAMEPORT_INPUT_SETTINGS]; - mice = prefs->mouse_settings[GAMEPORT_INPUT_SETTINGS]; - keyboards = prefs->keyboard_settings[GAMEPORT_INPUT_SETTINGS]; + if (evtnum < 0) + { + joysticks = prefs->joystick_settings[GAMEPORT_INPUT_SETTINGS]; + mice = prefs->mouse_settings[GAMEPORT_INPUT_SETTINGS]; + keyboards = prefs->keyboard_settings[GAMEPORT_INPUT_SETTINGS]; + for (sub = 0; sub < MAX_INPUT_SUB_EVENT; sub++) + { + int port2 = 0; + inputdevice_get_mapping (devnum, num, NULL, &port2, NULL, NULL, sub); + if (port2 == port + 1) + { + inputdevice_set_mapping (devnum, num, NULL, NULL, 0, 0, sub); + } + } + return true; + } + ie = inputdevice_get_eventinfo (evtnum); + if (!inputdevice_get_eventname (ie, name)) + return false; + joysticks = prefs->joystick_settings[GAMEPORT_INPUT_SETTINGS]; + mice = prefs->mouse_settings[GAMEPORT_INPUT_SETTINGS]; + keyboards = prefs->keyboard_settings[GAMEPORT_INPUT_SETTINGS]; - sub = 0; - if (inputdevice_get_widget_type (devnum, num, NULL) != IDEV_WIDGET_KEY) { - for (sub = 0; sub < MAX_INPUT_SUB_EVENT; sub++) { - int port2 = 0; - int evt = inputdevice_get_mapping (devnum, num, NULL, &port2, NULL, NULL, sub); - if (port2 == port + 1 && evt == evtnum) - break; - if (!inputdevice_get_mapping (devnum, num, NULL, NULL, NULL, NULL, sub)) - break; - } - } - if (sub >= MAX_INPUT_SUB_EVENT) - sub = MAX_INPUT_SUB_EVENT - 1; - inputdevice_set_mapping (devnum, num, name, NULL, IDEV_MAPPED_GAMEPORTSCUSTOM1 | flags, port + 1, sub); + sub = 0; + if (inputdevice_get_widget_type (devnum, num, NULL) != IDEV_WIDGET_KEY) + { + for (sub = 0; sub < MAX_INPUT_SUB_EVENT; sub++) + { + int port2 = 0; + int evt = inputdevice_get_mapping (devnum, num, NULL, &port2, NULL, NULL, sub); + if (port2 == port + 1 && evt == evtnum) + break; + if (!inputdevice_get_mapping (devnum, num, NULL, NULL, NULL, NULL, sub)) + break; + } + } + if (sub >= MAX_INPUT_SUB_EVENT) + sub = MAX_INPUT_SUB_EVENT - 1; + inputdevice_set_mapping (devnum, num, name, NULL, IDEV_MAPPED_GAMEPORTSCUSTOM1 | flags, port + 1, sub); - joysticks = prefs->joystick_settings[prefs->input_selected_setting]; - mice = prefs->mouse_settings[prefs->input_selected_setting]; - keyboards = prefs->keyboard_settings[prefs->input_selected_setting]; - if (prefs->input_selected_setting != GAMEPORT_INPUT_SETTINGS) { - int xport; - uae_u64 xflags; - TCHAR xname[MAX_DPATH], xcustom[MAX_DPATH]; - inputdevice_get_mapping (devnum, num, &xflags, &xport, xname, xcustom, 0); - if (xport == 0) - inputdevice_set_mapping (devnum, num, xname, xcustom, xflags, MAX_JPORTS + 1, SPARE_SUB_EVENT); - inputdevice_set_mapping (devnum, num, name, NULL, IDEV_MAPPED_GAMEPORTSCUSTOM1 | flags, port + 1, 0); - } - return true; + joysticks = prefs->joystick_settings[prefs->input_selected_setting]; + mice = prefs->mouse_settings[prefs->input_selected_setting]; + keyboards = prefs->keyboard_settings[prefs->input_selected_setting]; + if (prefs->input_selected_setting != GAMEPORT_INPUT_SETTINGS) + { + int xport; + uae_u64 xflags; + TCHAR xname[MAX_DPATH], xcustom[MAX_DPATH]; + inputdevice_get_mapping (devnum, num, &xflags, &xport, xname, xcustom, 0); + if (xport == 0) + inputdevice_set_mapping (devnum, num, xname, xcustom, xflags, MAX_JPORTS + 1, SPARE_SUB_EVENT); + inputdevice_set_mapping (devnum, num, name, NULL, IDEV_MAPPED_GAMEPORTSCUSTOM1 | flags, port + 1, 0); + } + return true; } static void resetinput (void) { - cd32_shifter[0] = cd32_shifter[1] = 8; - for (int i = 0; i < MAX_JPORTS; i++) { - oleft[i] = 0; - oright[i] = 0; - otop[i] = 0; - obot[i] = 0; - joybutton[i] = 0; - joydir[i] = 0; - mouse_deltanoreset[i][0] = 0; - mouse_delta[i][0] = 0; - mouse_deltanoreset[i][1] = 0; - mouse_delta[i][1] = 0; - mouse_deltanoreset[i][2] = 0; - mouse_delta[i][2] = 0; - } - memset (keybuf, 0, sizeof keybuf); - for (int i = 0; i < INPUT_QUEUE_SIZE; i++) - input_queue[i].linecnt = input_queue[i].nextlinecnt = -1; + cd32_shifter[0] = cd32_shifter[1] = 8; + for (int i = 0; i < MAX_JPORTS; i++) + { + oleft[i] = 0; + oright[i] = 0; + otop[i] = 0; + obot[i] = 0; + joybutton[i] = 0; + joydir[i] = 0; + mouse_deltanoreset[i][0] = 0; + mouse_delta[i][0] = 0; + mouse_deltanoreset[i][1] = 0; + mouse_delta[i][1] = 0; + mouse_deltanoreset[i][2] = 0; + mouse_delta[i][2] = 0; + } + memset (keybuf, 0, sizeof keybuf); + for (int i = 0; i < INPUT_QUEUE_SIZE; i++) + input_queue[i].linecnt = input_queue[i].nextlinecnt = -1; - for (int i = 0; i < MAX_INPUT_SUB_EVENT; i++) { - sublevdir[0][i] = i; - sublevdir[1][i] = MAX_INPUT_SUB_EVENT - i - 1; - } + for (int i = 0; i < MAX_INPUT_SUB_EVENT; i++) + { + sublevdir[0][i] = i; + sublevdir[1][i] = MAX_INPUT_SUB_EVENT - i - 1; + } } void inputdevice_updateconfig_internal (const struct uae_prefs *srcprrefs, struct uae_prefs *dstprefs) { - int i; + int i; - keyboard_default = keyboard_default_table[currprefs.input_keyboard_type]; + keyboard_default = keyboard_default_table[currprefs.input_keyboard_type]; - copyjport (srcprrefs, dstprefs, 0); - copyjport (srcprrefs, dstprefs, 1); - copyjport (srcprrefs, dstprefs, 2); - copyjport (srcprrefs, dstprefs, 3); + copyjport (srcprrefs, dstprefs, 0); + copyjport (srcprrefs, dstprefs, 1); + copyjport (srcprrefs, dstprefs, 2); + copyjport (srcprrefs, dstprefs, 3); - resetinput (); + resetinput (); - joysticks = dstprefs->joystick_settings[dstprefs->input_selected_setting]; - mice = dstprefs->mouse_settings[dstprefs->input_selected_setting]; - keyboards = dstprefs->keyboard_settings[dstprefs->input_selected_setting]; + joysticks = dstprefs->joystick_settings[dstprefs->input_selected_setting]; + mice = dstprefs->mouse_settings[dstprefs->input_selected_setting]; + keyboards = dstprefs->keyboard_settings[dstprefs->input_selected_setting]; - matchdevices_all (dstprefs); + matchdevices_all (dstprefs); - memset (joysticks2, 0, sizeof joysticks2); - memset (mice2, 0, sizeof mice2); + memset (joysticks2, 0, sizeof joysticks2); + memset (mice2, 0, sizeof mice2); - joysticks = dstprefs->joystick_settings[GAMEPORT_INPUT_SETTINGS]; - mice = dstprefs->mouse_settings[GAMEPORT_INPUT_SETTINGS]; - keyboards = dstprefs->keyboard_settings[GAMEPORT_INPUT_SETTINGS]; - for (i = 0; i < MAX_INPUT_SETTINGS; i++) { - joysticks[i].enabled = 0; - mice[i].enabled = 0; - } + joysticks = dstprefs->joystick_settings[GAMEPORT_INPUT_SETTINGS]; + mice = dstprefs->mouse_settings[GAMEPORT_INPUT_SETTINGS]; + keyboards = dstprefs->keyboard_settings[GAMEPORT_INPUT_SETTINGS]; + for (i = 0; i < MAX_INPUT_SETTINGS; i++) + { + joysticks[i].enabled = 0; + mice[i].enabled = 0; + } - compatibility_copy (dstprefs, true); - joysticks = dstprefs->joystick_settings[dstprefs->input_selected_setting]; - mice = dstprefs->mouse_settings[dstprefs->input_selected_setting]; - keyboards = dstprefs->keyboard_settings[dstprefs->input_selected_setting]; + compatibility_copy (dstprefs, true); + joysticks = dstprefs->joystick_settings[dstprefs->input_selected_setting]; + mice = dstprefs->mouse_settings[dstprefs->input_selected_setting]; + keyboards = dstprefs->keyboard_settings[dstprefs->input_selected_setting]; - if (dstprefs->input_selected_setting != GAMEPORT_INPUT_SETTINGS) { - compatibility_copy (dstprefs, false); - } + if (dstprefs->input_selected_setting != GAMEPORT_INPUT_SETTINGS) + { + compatibility_copy (dstprefs, false); + } - disableifempty (dstprefs); - scanevents (dstprefs); + disableifempty (dstprefs); + scanevents (dstprefs); } void inputdevice_updateconfig (const struct uae_prefs *srcprefs, struct uae_prefs *dstprefs) { - inputdevice_updateconfig_internal (srcprefs, dstprefs); + inputdevice_updateconfig_internal (srcprefs, dstprefs); } // set default prefs to all input configuration settings void inputdevice_default_prefs (struct uae_prefs *p) { - inputdevice_init (); + inputdevice_init (); - p->input_selected_setting = GAMEPORT_INPUT_SETTINGS; + p->input_selected_setting = GAMEPORT_INPUT_SETTINGS; #ifdef PANDORA_SPECIFIC - p->input_joymouse_multiplier = 20; + p->input_joymouse_multiplier = 20; #else - p->input_joymouse_multiplier = 2; + p->input_joymouse_multiplier = 2; #endif - p->input_joymouse_deadzone = 33; - p->input_joystick_deadzone = 33; - p->input_joymouse_speed = 10; - p->input_analog_joystick_mult = 15; - p->input_analog_joystick_offset = -1; - p->input_mouse_speed = 100; - p->input_autofire_linecnt = 8 * 312; - p->input_keyboard_type = 0; - keyboard_default = keyboard_default_table[p->input_keyboard_type]; - inputdevice_default_kb_all (p); + p->input_joymouse_deadzone = 33; + p->input_joystick_deadzone = 33; + p->input_joymouse_speed = 10; + p->input_analog_joystick_mult = 15; + p->input_analog_joystick_offset = -1; + p->input_mouse_speed = 100; + p->input_autofire_linecnt = 8 * 312; + p->input_keyboard_type = 0; + keyboard_default = keyboard_default_table[p->input_keyboard_type]; + inputdevice_default_kb_all (p); } // set default keyboard and keyboard>joystick layouts void inputdevice_setkeytranslation (struct uae_input_device_kbr_default **trans, int **kbmaps) { - keyboard_default_table = trans; - keyboard_default_kbmaps = kbmaps; + keyboard_default_table = trans; + keyboard_default_kbmaps = kbmaps; } // return true if keyboard/scancode pair is mapped int inputdevice_iskeymapped (int keyboard, int scancode) { - struct uae_input_device *na = &keyboards[keyboard]; + struct uae_input_device *na = &keyboards[keyboard]; - if (!keyboards || scancode < 0) - return 0; - return scancodeused[keyboard][scancode]; + if (!keyboards || scancode < 0) + return 0; + return scancodeused[keyboard][scancode]; } static void rqualifiers (uae_u64 flags, bool release) { - uae_u64 mask = ID_FLAG_QUALIFIER1 << 1; - for (int i = 0; i < MAX_INPUT_QUALIFIERS; i++) { - if ((flags & mask) && (mask & (qualifiers << 1))) { - if (release) { - if (!(mask & qualifiers_r)) { - qualifiers_r |= mask; - for (int ii = 0; ii < MAX_INPUT_SUB_EVENT; ii++) { - int qevt = qualifiers_evt[i][ii]; - if (qevt > 0) { - write_log (_T("Released %d '%s'\n"), qevt, events[qevt].name); - inputdevice_do_keyboard (events[qevt].data, 0); - } - } - } - } else { - if ((mask & qualifiers_r)) { - qualifiers_r &= ~mask; - for (int ii = 0; ii < MAX_INPUT_SUB_EVENT; ii++) { - int qevt = qualifiers_evt[i][ii]; - if (qevt > 0) { - write_log (_T("Pressed %d '%s'\n"), qevt, events[qevt].name); - inputdevice_do_keyboard (events[qevt].data, 1); - } - } - } - } - } - mask <<= 2; - } + uae_u64 mask = ID_FLAG_QUALIFIER1 << 1; + for (int i = 0; i < MAX_INPUT_QUALIFIERS; i++) + { + if ((flags & mask) && (mask & (qualifiers << 1))) + { + if (release) + { + if (!(mask & qualifiers_r)) + { + qualifiers_r |= mask; + for (int ii = 0; ii < MAX_INPUT_SUB_EVENT; ii++) + { + int qevt = qualifiers_evt[i][ii]; + if (qevt > 0) + { + write_log (_T("Released %d '%s'\n"), qevt, events[qevt].name); + inputdevice_do_keyboard (events[qevt].data, 0); + } + } + } + } + else + { + if ((mask & qualifiers_r)) + { + qualifiers_r &= ~mask; + for (int ii = 0; ii < MAX_INPUT_SUB_EVENT; ii++) + { + int qevt = qualifiers_evt[i][ii]; + if (qevt > 0) + { + write_log (_T("Pressed %d '%s'\n"), qevt, events[qevt].name); + inputdevice_do_keyboard (events[qevt].data, 1); + } + } + } + } + } + mask <<= 2; + } } static int inputdevice_translatekeycode_2 (int keyboard, int scancode, int state, bool qualifiercheckonly) { - struct uae_input_device *na = &keyboards[keyboard]; - int j, k; - int handled = 0; - bool didcustom = false; + struct uae_input_device *na = &keyboards[keyboard]; + int j, k; + int handled = 0; + bool didcustom = false; - if (!keyboards || scancode < 0) - return handled; + if (!keyboards || scancode < 0) + return handled; // if (!state) // process_custom_event (NULL, 0, 0, 0, 0, 0); - j = 0; - while (j < MAX_INPUT_DEVICE_EVENTS && na->extra[j] >= 0) { - if (na->extra[j] == scancode) { - bool qualonly; - uae_u64 qualmask[MAX_INPUT_SUB_EVENT]; - getqualmask (qualmask, na, j, &qualonly); + j = 0; + while (j < MAX_INPUT_DEVICE_EVENTS && na->extra[j] >= 0) + { + if (na->extra[j] == scancode) + { + bool qualonly; + uae_u64 qualmask[MAX_INPUT_SUB_EVENT]; + getqualmask (qualmask, na, j, &qualonly); - if (qualonly) - qualifiercheckonly = true; - for (k = 0; k < MAX_INPUT_SUB_EVENT; k++) {/* send key release events in reverse order */ - uae_u64 *flagsp = &na->flags[j][sublevdir[state == 0 ? 1 : 0][k]]; - int evt = na->eventid[j][sublevdir[state == 0 ? 1 : 0][k]]; - uae_u64 flags = *flagsp; - int autofire = (flags & ID_FLAG_AUTOFIRE) ? 1 : 0; + if (qualonly) + qualifiercheckonly = true; + for (k = 0; k < MAX_INPUT_SUB_EVENT; k++) /* send key release events in reverse order */ + { + uae_u64 *flagsp = &na->flags[j][sublevdir[state == 0 ? 1 : 0][k]]; + int evt = na->eventid[j][sublevdir[state == 0 ? 1 : 0][k]]; + uae_u64 flags = *flagsp; + int autofire = (flags & ID_FLAG_AUTOFIRE) ? 1 : 0; #ifndef INPUTDEVICE_SIMPLE - int toggle = (flags & ID_FLAG_TOGGLE) ? 1 : 0; - int inverttoggle = (flags & ID_FLAG_INVERTTOGGLE) ? 1 : 0; - int toggled; + int toggle = (flags & ID_FLAG_TOGGLE) ? 1 : 0; + int inverttoggle = (flags & ID_FLAG_INVERTTOGGLE) ? 1 : 0; + int toggled; #endif - setqualifiers (evt, state > 0); - if (qualifiercheckonly) { - if (!state && (flags & ID_FLAG_CANRELEASE)) { - *flagsp &= ~ID_FLAG_CANRELEASE; + setqualifiers (evt, state > 0); + if (qualifiercheckonly) + { + if (!state && (flags & ID_FLAG_CANRELEASE)) + { + *flagsp &= ~ID_FLAG_CANRELEASE; #ifdef INPUTDEVICE_SIMPLE - handle_input_event (evt, state, 1, autofire); + handle_input_event (evt, state, 1, autofire); #else - handle_input_event (evt, state, 1, autofire, true, false); - if (k == 0) { - process_custom_event (na, j, state, qualmask, autofire, k); - } + handle_input_event (evt, state, 1, autofire, true, false); + if (k == 0) + { + process_custom_event (na, j, state, qualmask, autofire, k); + } #endif - } - continue; + } + continue; + } + +#ifndef INPUTDEVICE_SIMPLE + if (!state) + { + didcustom |= process_custom_event (na, j, state, qualmask, autofire, k); + } + + if (inverttoggle) + { + na->flags[j][sublevdir[state == 0 ? 1 : 0][k]] &= ~ID_FLAG_TOGGLED; + if (state) + { + queue_input_event (evt, NULL, -1, 0, 0, 1); + handled |= handle_input_event (evt, 1, 1, 0, true, false); + } + else + { + handled |= handle_input_event (evt, 1, 1, autofire, true, false); + } + didcustom |= process_custom_event (na, j, state, qualmask, autofire, k); + } + else if (toggle) + { + if (!state) + continue; + if (!checkqualifiers (evt, flags, qualmask, na->eventid[j])) + continue; + *flagsp ^= ID_FLAG_TOGGLED; + toggled = (*flagsp & ID_FLAG_TOGGLED) ? 1 : 0; + handled |= handle_input_event (evt, toggled, 1, autofire, true, false); + if (k == 0) + didcustom |= process_custom_event (na, j, state, qualmask, autofire, k); + } + else + { +#endif + rqualifiers (flags, state ? true : false); + if (!checkqualifiers (evt, flags, qualmask, na->eventid[j])) + { + if (!state && !(flags & ID_FLAG_CANRELEASE)) + continue; + else if (state) + continue; + } + if (state) + { + *flagsp |= ID_FLAG_CANRELEASE; + } + else + { + if (!(flags & ID_FLAG_CANRELEASE)) + continue; + *flagsp &= ~ID_FLAG_CANRELEASE; + } +#ifdef INPUTDEVICE_SIMPLE + handled |= handle_input_event (evt, state, 1, autofire); +#else + handled |= handle_input_event (evt, state, 1, autofire, true, false); + didcustom |= process_custom_event (na, j, state, qualmask, autofire, k); +#endif +#ifndef INPUTDEVICE_SIMPLE + } +#endif + } + if (!didcustom) +#ifdef INPUTDEVICE_SIMPLE + queue_input_event (-1, -1, 0, 0); +#else + queue_input_event (-1, NULL, -1, 0, 0, 1); +#endif + return handled; } - -#ifndef INPUTDEVICE_SIMPLE - if (!state) { - didcustom |= process_custom_event (na, j, state, qualmask, autofire, k); - } - - if (inverttoggle) { - na->flags[j][sublevdir[state == 0 ? 1 : 0][k]] &= ~ID_FLAG_TOGGLED; - if (state) { - queue_input_event (evt, NULL, -1, 0, 0, 1); - handled |= handle_input_event (evt, 1, 1, 0, true, false); - } else { - handled |= handle_input_event (evt, 1, 1, autofire, true, false); - } - didcustom |= process_custom_event (na, j, state, qualmask, autofire, k); - } else if (toggle) { - if (!state) - continue; - if (!checkqualifiers (evt, flags, qualmask, na->eventid[j])) - continue; - *flagsp ^= ID_FLAG_TOGGLED; - toggled = (*flagsp & ID_FLAG_TOGGLED) ? 1 : 0; - handled |= handle_input_event (evt, toggled, 1, autofire, true, false); - if (k == 0) - didcustom |= process_custom_event (na, j, state, qualmask, autofire, k); - } else { -#endif - rqualifiers (flags, state ? true : false); - if (!checkqualifiers (evt, flags, qualmask, na->eventid[j])) { - if (!state && !(flags & ID_FLAG_CANRELEASE)) - continue; - else if (state) - continue; - } - if (state) { - *flagsp |= ID_FLAG_CANRELEASE; - } else { - if (!(flags & ID_FLAG_CANRELEASE)) - continue; - *flagsp &= ~ID_FLAG_CANRELEASE; - } -#ifdef INPUTDEVICE_SIMPLE - handled |= handle_input_event (evt, state, 1, autofire); -#else - handled |= handle_input_event (evt, state, 1, autofire, true, false); - didcustom |= process_custom_event (na, j, state, qualmask, autofire, k); -#endif -#ifndef INPUTDEVICE_SIMPLE - } -#endif - } - if (!didcustom) -#ifdef INPUTDEVICE_SIMPLE - queue_input_event (-1, -1, 0, 0); -#else - queue_input_event (-1, NULL, -1, 0, 0, 1); -#endif - return handled; - } - j++; - } - return handled; + j++; + } + return handled; } // main keyboard press/release entry point int inputdevice_translatekeycode (int keyboard, int scancode, int state) { - if (inputdevice_translatekeycode_2 (keyboard, scancode, state, false)) - return 1; - return 0; + if (inputdevice_translatekeycode_2 (keyboard, scancode, state, false)) + return 1; + return 0; } void inputdevice_checkqualifierkeycode (int keyboard, int scancode, int state) { - inputdevice_translatekeycode_2 (keyboard, scancode, state, true); + inputdevice_translatekeycode_2 (keyboard, scancode, state, true); } void inputdevice_init (void) { - idev[IDTYPE_JOYSTICK] = inputdevicefunc_joystick; - idev[IDTYPE_JOYSTICK].init (); - idev[IDTYPE_MOUSE] = inputdevicefunc_mouse; - idev[IDTYPE_MOUSE].init (); - idev[IDTYPE_KEYBOARD] = inputdevicefunc_keyboard; - idev[IDTYPE_KEYBOARD].init (); + idev[IDTYPE_JOYSTICK] = inputdevicefunc_joystick; + idev[IDTYPE_JOYSTICK].init (); + idev[IDTYPE_MOUSE] = inputdevicefunc_mouse; + idev[IDTYPE_MOUSE].init (); + idev[IDTYPE_KEYBOARD] = inputdevicefunc_keyboard; + idev[IDTYPE_KEYBOARD].init (); } void inputdevice_close (void) { - idev[IDTYPE_JOYSTICK].close (); - idev[IDTYPE_MOUSE].close (); - idev[IDTYPE_KEYBOARD].close (); + idev[IDTYPE_JOYSTICK].close (); + idev[IDTYPE_MOUSE].close (); + idev[IDTYPE_KEYBOARD].close (); } static struct uae_input_device *get_uid (const struct inputdevice_functions *id, int devnum) { - struct uae_input_device *uid = 0; - if (id == &idev[IDTYPE_JOYSTICK]) { - uid = &joysticks[devnum]; - } else if (id == &idev[IDTYPE_MOUSE]) { - uid = &mice[devnum]; - } else if (id == &idev[IDTYPE_KEYBOARD]) { - uid = &keyboards[devnum]; - } - return uid; + struct uae_input_device *uid = 0; + if (id == &idev[IDTYPE_JOYSTICK]) + { + uid = &joysticks[devnum]; + } + else if (id == &idev[IDTYPE_MOUSE]) + { + uid = &mice[devnum]; + } + else if (id == &idev[IDTYPE_KEYBOARD]) + { + uid = &keyboards[devnum]; + } + return uid; } static int get_event_data (const struct inputdevice_functions *id, int devnum, int num, int *eventid, TCHAR **custom, uae_u64 *flags, int *port, int sub) { - const struct uae_input_device *uid = get_uid (id, devnum); - int type = id->get_widget_type (devnum, num, 0, 0); - int i; - if (type == IDEV_WIDGET_BUTTON || type == IDEV_WIDGET_BUTTONAXIS) { - i = num - id->get_widget_first (devnum, IDEV_WIDGET_BUTTON) + ID_BUTTON_OFFSET; - *eventid = uid->eventid[i][sub]; - if (flags) - *flags = uid->flags[i][sub]; - if (port) - *port = uid->port[i][sub]; - if (custom) - *custom = uid->custom[i][sub]; - return i; - } else if (type == IDEV_WIDGET_AXIS) { - i = num - id->get_widget_first (devnum, type) + ID_AXIS_OFFSET; - *eventid = uid->eventid[i][sub]; - if (flags) - *flags = uid->flags[i][sub]; - if (port) - *port = uid->port[i][sub]; - if (custom) - *custom = uid->custom[i][sub]; - return i; - } else if (type == IDEV_WIDGET_KEY) { - i = num - id->get_widget_first (devnum, type); - *eventid = uid->eventid[i][sub]; - if (flags) - *flags = uid->flags[i][sub]; - if (port) - *port = uid->port[i][sub]; - if (custom) - *custom = uid->custom[i][sub]; - return i; - } - return -1; + const struct uae_input_device *uid = get_uid (id, devnum); + int type = id->get_widget_type (devnum, num, 0, 0); + int i; + if (type == IDEV_WIDGET_BUTTON || type == IDEV_WIDGET_BUTTONAXIS) + { + i = num - id->get_widget_first (devnum, IDEV_WIDGET_BUTTON) + ID_BUTTON_OFFSET; + *eventid = uid->eventid[i][sub]; + if (flags) + *flags = uid->flags[i][sub]; + if (port) + *port = uid->port[i][sub]; + if (custom) + *custom = uid->custom[i][sub]; + return i; + } + else if (type == IDEV_WIDGET_AXIS) + { + i = num - id->get_widget_first (devnum, type) + ID_AXIS_OFFSET; + *eventid = uid->eventid[i][sub]; + if (flags) + *flags = uid->flags[i][sub]; + if (port) + *port = uid->port[i][sub]; + if (custom) + *custom = uid->custom[i][sub]; + return i; + } + else if (type == IDEV_WIDGET_KEY) + { + i = num - id->get_widget_first (devnum, type); + *eventid = uid->eventid[i][sub]; + if (flags) + *flags = uid->flags[i][sub]; + if (port) + *port = uid->port[i][sub]; + if (custom) + *custom = uid->custom[i][sub]; + return i; + } + return -1; } static TCHAR *stripstrdup (const TCHAR *s) { - TCHAR *out = my_strdup (s); - if (!out) - return NULL; - for (int i = 0; out[i]; i++) { - if (out[i] < ' ') - out[i] = ' '; - } - return out; + TCHAR *out = my_strdup (s); + if (!out) + return NULL; + for (int i = 0; out[i]; i++) + { + if (out[i] < ' ') + out[i] = ' '; + } + return out; } static int put_event_data (const struct inputdevice_functions *id, int devnum, int num, int eventid, TCHAR *custom, uae_u64 flags, int port, int sub) { - struct uae_input_device *uid = get_uid (id, devnum); - int type = id->get_widget_type (devnum, num, 0, 0); - int i, ret; + struct uae_input_device *uid = get_uid (id, devnum); + int type = id->get_widget_type (devnum, num, 0, 0); + int i, ret; - for (i = 0; i < MAX_INPUT_QUALIFIERS; i++) { - uae_u64 mask1 = ID_FLAG_QUALIFIER1 << (i * 2); - uae_u64 mask2 = mask1 << 1; - if ((flags & (mask1 | mask2)) == (mask1 | mask2)) - flags &= ~mask2; - } - if (custom && custom[0] == 0) - custom = NULL; - if (custom) - eventid = 0; - if (eventid <= 0 && !custom) - flags = 0; + for (i = 0; i < MAX_INPUT_QUALIFIERS; i++) + { + uae_u64 mask1 = ID_FLAG_QUALIFIER1 << (i * 2); + uae_u64 mask2 = mask1 << 1; + if ((flags & (mask1 | mask2)) == (mask1 | mask2)) + flags &= ~mask2; + } + if (custom && custom[0] == 0) + custom = NULL; + if (custom) + eventid = 0; + if (eventid <= 0 && !custom) + flags = 0; - ret = -1; - if (type == IDEV_WIDGET_BUTTON || type == IDEV_WIDGET_BUTTONAXIS) { - i = num - id->get_widget_first (devnum, IDEV_WIDGET_BUTTON) + ID_BUTTON_OFFSET; - uid->eventid[i][sub] = eventid; - uid->flags[i][sub] = flags; - uid->port[i][sub] = port; - xfree (uid->custom[i][sub]); - ret = i; - } else if (type == IDEV_WIDGET_AXIS) { - i = num - id->get_widget_first (devnum, type) + ID_AXIS_OFFSET; - uid->eventid[i][sub] = eventid; - uid->flags[i][sub] = flags; - uid->port[i][sub] = port; - xfree (uid->custom[i][sub]); - ret = i; - } else if (type == IDEV_WIDGET_KEY) { - i = num - id->get_widget_first (devnum, type); - uid->eventid[i][sub] = eventid; - uid->flags[i][sub] = flags; - uid->port[i][sub] = port; - xfree (uid->custom[i][sub]); - ret = i; - } - if (ret < 0) - return -1; - if (uid->custom[i][sub]) - uid->eventid[i][sub] = INPUTEVENT_SPC_CUSTOM_EVENT; - return ret; + ret = -1; + if (type == IDEV_WIDGET_BUTTON || type == IDEV_WIDGET_BUTTONAXIS) + { + i = num - id->get_widget_first (devnum, IDEV_WIDGET_BUTTON) + ID_BUTTON_OFFSET; + uid->eventid[i][sub] = eventid; + uid->flags[i][sub] = flags; + uid->port[i][sub] = port; + xfree (uid->custom[i][sub]); + ret = i; + } + else if (type == IDEV_WIDGET_AXIS) + { + i = num - id->get_widget_first (devnum, type) + ID_AXIS_OFFSET; + uid->eventid[i][sub] = eventid; + uid->flags[i][sub] = flags; + uid->port[i][sub] = port; + xfree (uid->custom[i][sub]); + ret = i; + } + else if (type == IDEV_WIDGET_KEY) + { + i = num - id->get_widget_first (devnum, type); + uid->eventid[i][sub] = eventid; + uid->flags[i][sub] = flags; + uid->port[i][sub] = port; + xfree (uid->custom[i][sub]); + ret = i; + } + if (ret < 0) + return -1; + if (uid->custom[i][sub]) + uid->eventid[i][sub] = INPUTEVENT_SPC_CUSTOM_EVENT; + return ret; } static int is_event_used (const struct inputdevice_functions *id, int devnum, int isnum, int isevent) { - struct uae_input_device *uid = get_uid (id, devnum); - int num, evt, sub; + struct uae_input_device *uid = get_uid (id, devnum); + int num, evt, sub; - for (num = 0; num < id->get_widget_num (devnum); num++) { - for (sub = 0; sub < MAX_INPUT_SUB_EVENT; sub++) { - if (get_event_data (id, devnum, num, &evt, NULL, NULL, NULL, sub) >= 0) { - if (evt == isevent && isnum != num) - return 1; - } - } - } - return 0; + for (num = 0; num < id->get_widget_num (devnum); num++) + { + for (sub = 0; sub < MAX_INPUT_SUB_EVENT; sub++) + { + if (get_event_data (id, devnum, num, &evt, NULL, NULL, NULL, sub) >= 0) + { + if (evt == isevent && isnum != num) + return 1; + } + } + } + return 0; } // device based index from global device index int inputdevice_get_device_index (int devnum) { - int jcnt = idev[IDTYPE_JOYSTICK].get_num (); - int mcnt = idev[IDTYPE_MOUSE].get_num (); - int kcnt = idev[IDTYPE_KEYBOARD].get_num (); + int jcnt = idev[IDTYPE_JOYSTICK].get_num (); + int mcnt = idev[IDTYPE_MOUSE].get_num (); + int kcnt = idev[IDTYPE_KEYBOARD].get_num (); - if (devnum < jcnt) - return devnum; - else if (devnum < jcnt + mcnt) - return devnum - jcnt; - else if (devnum < jcnt + mcnt + kcnt) - return devnum - (jcnt + mcnt); - return -1; + if (devnum < jcnt) + return devnum; + else if (devnum < jcnt + mcnt) + return devnum - jcnt; + else if (devnum < jcnt + mcnt + kcnt) + return devnum - (jcnt + mcnt); + return -1; } static int getdevnum (int type, int devnum) { - int jcnt = idev[IDTYPE_JOYSTICK].get_num (); - int mcnt = idev[IDTYPE_MOUSE].get_num (); - int kcnt = idev[IDTYPE_KEYBOARD].get_num (); + int jcnt = idev[IDTYPE_JOYSTICK].get_num (); + int mcnt = idev[IDTYPE_MOUSE].get_num (); + int kcnt = idev[IDTYPE_KEYBOARD].get_num (); - if (type == IDTYPE_JOYSTICK) - return devnum; - else if (type == IDTYPE_MOUSE) - return jcnt + devnum; - else if (type == IDTYPE_KEYBOARD) - return jcnt + mcnt + devnum; - return -1; + if (type == IDTYPE_JOYSTICK) + return devnum; + else if (type == IDTYPE_MOUSE) + return jcnt + devnum; + else if (type == IDTYPE_KEYBOARD) + return jcnt + mcnt + devnum; + return -1; } static int gettype (int devnum) { - int jcnt = idev[IDTYPE_JOYSTICK].get_num (); - int mcnt = idev[IDTYPE_MOUSE].get_num (); - int kcnt = idev[IDTYPE_KEYBOARD].get_num (); + int jcnt = idev[IDTYPE_JOYSTICK].get_num (); + int mcnt = idev[IDTYPE_MOUSE].get_num (); + int kcnt = idev[IDTYPE_KEYBOARD].get_num (); - if (devnum < jcnt) - return IDTYPE_JOYSTICK; - else if (devnum < jcnt + mcnt) - return IDTYPE_MOUSE; - else if (devnum < jcnt + mcnt + kcnt) - return IDTYPE_KEYBOARD; - return -1; + if (devnum < jcnt) + return IDTYPE_JOYSTICK; + else if (devnum < jcnt + mcnt) + return IDTYPE_MOUSE; + else if (devnum < jcnt + mcnt + kcnt) + return IDTYPE_KEYBOARD; + return -1; } static struct inputdevice_functions *getidf (int devnum) { - int type = gettype (devnum); - if (type < 0) - return NULL; - return &idev[type]; + int type = gettype (devnum); + if (type < 0) + return NULL; + return &idev[type]; } struct inputevent *inputdevice_get_eventinfo (int evt) { - return &events[evt]; + return &events[evt]; } /* returns number of devices of type "type" */ int inputdevice_get_device_total (int type) { - return idev[type].get_num (); + return idev[type].get_num (); } /* returns the name of device */ TCHAR *inputdevice_get_device_name (int type, int devnum) { - return idev[type].get_friendlyname (devnum); + return idev[type].get_friendlyname (devnum); } /* returns the name of device */ TCHAR *inputdevice_get_device_name2 (int devnum) { - return getidf (devnum)->get_friendlyname (inputdevice_get_device_index (devnum)); + return getidf (devnum)->get_friendlyname (inputdevice_get_device_index (devnum)); } /* returns machine readable name of device */ TCHAR *inputdevice_get_device_unique_name (int type, int devnum) { - return idev[type].get_uniquename (devnum); + return idev[type].get_uniquename (devnum); } /* returns state (enabled/disabled) */ int inputdevice_get_device_status (int devnum) { - const struct inputdevice_functions *idf = getidf (devnum); - if (idf == NULL) - return -1; - struct uae_input_device *uid = get_uid (idf, inputdevice_get_device_index (devnum)); - return uid->enabled; + const struct inputdevice_functions *idf = getidf (devnum); + if (idf == NULL) + return -1; + struct uae_input_device *uid = get_uid (idf, inputdevice_get_device_index (devnum)); + return uid->enabled; } /* set state (enabled/disabled) */ void inputdevice_set_device_status (int devnum, int enabled) { - const struct inputdevice_functions *idf = getidf (devnum); - int num = inputdevice_get_device_index (devnum); - struct uae_input_device *uid = get_uid (idf, num); - if (enabled) { // disable incompatible devices ("super device" vs "raw device") - for (int i = 0; i < idf->get_num (); i++) { - if (idf->get_flags (i) != idf->get_flags (num)) { - struct uae_input_device *uid2 = get_uid (idf, i); - uid2->enabled = 0; - } - } - } - uid->enabled = enabled; + const struct inputdevice_functions *idf = getidf (devnum); + int num = inputdevice_get_device_index (devnum); + struct uae_input_device *uid = get_uid (idf, num); + if (enabled) // disable incompatible devices ("super device" vs "raw device") + { + for (int i = 0; i < idf->get_num (); i++) + { + if (idf->get_flags (i) != idf->get_flags (num)) + { + struct uae_input_device *uid2 = get_uid (idf, i); + uid2->enabled = 0; + } + } + } + uid->enabled = enabled; } /* returns number of axis/buttons and keys from selected device */ int inputdevice_get_widget_num (int devnum) { - const struct inputdevice_functions *idf = getidf (devnum); - return idf->get_widget_num (inputdevice_get_device_index (devnum)); + const struct inputdevice_functions *idf = getidf (devnum); + return idf->get_widget_num (inputdevice_get_device_index (devnum)); } // return name of event, do not use ie->name directly bool inputdevice_get_eventname (const struct inputevent *ie, TCHAR *out) { - if (!out) - return false; - _tcscpy (out, ie->name); - return true; + if (!out) + return false; + _tcscpy (out, ie->name); + return true; } int inputdevice_iterate (int devnum, int num, TCHAR *name, int *af) { - const struct inputdevice_functions *idf = getidf (devnum); - static int id_iterator; - struct inputevent *ie; - int mask, data, type; - uae_u64 flags; - int devindex = inputdevice_get_device_index (devnum); + const struct inputdevice_functions *idf = getidf (devnum); + static int id_iterator; + struct inputevent *ie; + int mask, data, type; + uae_u64 flags; + int devindex = inputdevice_get_device_index (devnum); - *af = 0; - *name = 0; - for (;;) { - ie = &events[++id_iterator]; - if (!ie->confname) { - id_iterator = 0; - return 0; - } - mask = 0; - type = idf->get_widget_type (devindex, num, NULL, NULL); - if (type == IDEV_WIDGET_BUTTON || type == IDEV_WIDGET_BUTTONAXIS) { - if (idf == &idev[IDTYPE_JOYSTICK]) { - mask |= AM_JOY_BUT; - } else { - mask |= AM_MOUSE_BUT; - } - } else if (type == IDEV_WIDGET_AXIS) { - if (idf == &idev[IDTYPE_JOYSTICK]) { - mask |= AM_JOY_AXIS; - } else { - mask |= AM_MOUSE_AXIS; - } - } else if (type == IDEV_WIDGET_KEY) { - mask |= AM_K; - } - if (ie->allow_mask & AM_INFO) { - struct inputevent *ie2 = ie + 1; - while (!(ie2->allow_mask & AM_INFO)) { - if (is_event_used (idf, devindex, ie2 - ie, -1)) { - ie2++; - continue; - } - if (ie2->allow_mask & mask) - break; - ie2++; - } - if (!(ie2->allow_mask & AM_INFO)) - mask |= AM_INFO; - } - if (!(ie->allow_mask & mask)) - continue; - get_event_data (idf, devindex, num, &data, NULL, &flags, NULL, 0); - inputdevice_get_eventname (ie, name); - *af = (flags & ID_FLAG_AUTOFIRE) ? 1 : 0; - return 1; - } + *af = 0; + *name = 0; + for (;;) + { + ie = &events[++id_iterator]; + if (!ie->confname) + { + id_iterator = 0; + return 0; + } + mask = 0; + type = idf->get_widget_type (devindex, num, NULL, NULL); + if (type == IDEV_WIDGET_BUTTON || type == IDEV_WIDGET_BUTTONAXIS) + { + if (idf == &idev[IDTYPE_JOYSTICK]) + { + mask |= AM_JOY_BUT; + } + else + { + mask |= AM_MOUSE_BUT; + } + } + else if (type == IDEV_WIDGET_AXIS) + { + if (idf == &idev[IDTYPE_JOYSTICK]) + { + mask |= AM_JOY_AXIS; + } + else + { + mask |= AM_MOUSE_AXIS; + } + } + else if (type == IDEV_WIDGET_KEY) + { + mask |= AM_K; + } + if (ie->allow_mask & AM_INFO) + { + struct inputevent *ie2 = ie + 1; + while (!(ie2->allow_mask & AM_INFO)) + { + if (is_event_used (idf, devindex, ie2 - ie, -1)) + { + ie2++; + continue; + } + if (ie2->allow_mask & mask) + break; + ie2++; + } + if (!(ie2->allow_mask & AM_INFO)) + mask |= AM_INFO; + } + if (!(ie->allow_mask & mask)) + continue; + get_event_data (idf, devindex, num, &data, NULL, &flags, NULL, 0); + inputdevice_get_eventname (ie, name); + *af = (flags & ID_FLAG_AUTOFIRE) ? 1 : 0; + return 1; + } } // return mapped event from devnum/num/sub int inputdevice_get_mapping (int devnum, int num, uae_u64 *pflags, int *pport, TCHAR *name, TCHAR *custom, int sub) { - const struct inputdevice_functions *idf = getidf (devnum); - const struct uae_input_device *uid = get_uid (idf, inputdevice_get_device_index (devnum)); - int port, data; - uae_u64 flags = 0, flag; - int devindex = inputdevice_get_device_index (devnum); - TCHAR *customp = NULL; + const struct inputdevice_functions *idf = getidf (devnum); + const struct uae_input_device *uid = get_uid (idf, inputdevice_get_device_index (devnum)); + int port, data; + uae_u64 flags = 0, flag; + int devindex = inputdevice_get_device_index (devnum); + TCHAR *customp = NULL; - if (name) - _tcscpy (name, _T("")); - if (custom) - custom[0] = 0; - if (pflags) - *pflags = 0; - if (pport) - *pport = 0; - if (uid == 0 || num < 0) - return 0; - if (get_event_data (idf, devindex, num, &data, &customp, &flag, &port, sub) < 0) - return 0; - if (customp && custom) - _tcscpy (custom, customp); - if (flag & ID_FLAG_AUTOFIRE) - flags |= IDEV_MAPPED_AUTOFIRE_SET; + if (name) + _tcscpy (name, _T("")); + if (custom) + custom[0] = 0; + if (pflags) + *pflags = 0; + if (pport) + *pport = 0; + if (uid == 0 || num < 0) + return 0; + if (get_event_data (idf, devindex, num, &data, &customp, &flag, &port, sub) < 0) + return 0; + if (customp && custom) + _tcscpy (custom, customp); + if (flag & ID_FLAG_AUTOFIRE) + flags |= IDEV_MAPPED_AUTOFIRE_SET; #ifndef INPUTDEVICE_SIMPLE - if (flag & ID_FLAG_TOGGLE) - flags |= IDEV_MAPPED_TOGGLE; - if (flag & ID_FLAG_INVERTTOGGLE) - flags |= IDEV_MAPPED_INVERTTOGGLE; + if (flag & ID_FLAG_TOGGLE) + flags |= IDEV_MAPPED_TOGGLE; + if (flag & ID_FLAG_INVERTTOGGLE) + flags |= IDEV_MAPPED_INVERTTOGGLE; #endif - if (flag & ID_FLAG_GAMEPORTSCUSTOM1) - flags |= IDEV_MAPPED_GAMEPORTSCUSTOM1; + if (flag & ID_FLAG_GAMEPORTSCUSTOM1) + flags |= IDEV_MAPPED_GAMEPORTSCUSTOM1; #ifndef INPUTDEVICE_SIMPLE - if (flag & ID_FLAG_GAMEPORTSCUSTOM2) - flags |= IDEV_MAPPED_GAMEPORTSCUSTOM2; + if (flag & ID_FLAG_GAMEPORTSCUSTOM2) + flags |= IDEV_MAPPED_GAMEPORTSCUSTOM2; #endif - if (flag & ID_FLAG_QUALIFIER_MASK) - flags |= flag & ID_FLAG_QUALIFIER_MASK; - if (pflags) - *pflags = flags; - if (pport) - *pport = port; - if (!data) - return 0; - if (events[data].allow_mask & AM_AF) - flags |= IDEV_MAPPED_AUTOFIRE_POSSIBLE; - if (pflags) - *pflags = flags; - inputdevice_get_eventname (&events[data], name); - return data; + if (flag & ID_FLAG_QUALIFIER_MASK) + flags |= flag & ID_FLAG_QUALIFIER_MASK; + if (pflags) + *pflags = flags; + if (pport) + *pport = port; + if (!data) + return 0; + if (events[data].allow_mask & AM_AF) + flags |= IDEV_MAPPED_AUTOFIRE_POSSIBLE; + if (pflags) + *pflags = flags; + inputdevice_get_eventname (&events[data], name); + return data; } // set event name/custom/flags to devnum/num/sub int inputdevice_set_mapping (int devnum, int num, const TCHAR *name, TCHAR *custom, uae_u64 flags, int port, int sub) { - const struct inputdevice_functions *idf = getidf (devnum); - const struct uae_input_device *uid = get_uid (idf, inputdevice_get_device_index (devnum)); - int eid, data, portp, amask; - uae_u64 flag; - TCHAR ename[256]; - int devindex = inputdevice_get_device_index (devnum); - TCHAR *customp = NULL; + const struct inputdevice_functions *idf = getidf (devnum); + const struct uae_input_device *uid = get_uid (idf, inputdevice_get_device_index (devnum)); + int eid, data, portp, amask; + uae_u64 flag; + TCHAR ename[256]; + int devindex = inputdevice_get_device_index (devnum); + TCHAR *customp = NULL; - if (uid == 0 || num < 0) - return 0; - if (name) { - eid = 1; - while (events[eid].name) { - inputdevice_get_eventname (&events[eid], ename); - if (!_tcscmp(ename, name)) - break; - eid++; - } - if (!events[eid].name) - return 0; - if (events[eid].allow_mask & AM_INFO) - return 0; - } else { - eid = 0; - } - if (get_event_data (idf, devindex, num, &data, &customp, &flag, &portp, sub) < 0) - return 0; - if (data >= 0) { - amask = events[eid].allow_mask; - flag &= ~(ID_FLAG_AUTOFIRE_MASK | ID_FLAG_GAMEPORTSCUSTOM_MASK | IDEV_MAPPED_QUALIFIER_MASK); - if (amask & AM_AF) { - flag |= (flags & IDEV_MAPPED_AUTOFIRE_SET) ? ID_FLAG_AUTOFIRE : 0; + if (uid == 0 || num < 0) + return 0; + if (name) + { + eid = 1; + while (events[eid].name) + { + inputdevice_get_eventname (&events[eid], ename); + if (!_tcscmp(ename, name)) + break; + eid++; + } + if (!events[eid].name) + return 0; + if (events[eid].allow_mask & AM_INFO) + return 0; + } + else + { + eid = 0; + } + if (get_event_data (idf, devindex, num, &data, &customp, &flag, &portp, sub) < 0) + return 0; + if (data >= 0) + { + amask = events[eid].allow_mask; + flag &= ~(ID_FLAG_AUTOFIRE_MASK | ID_FLAG_GAMEPORTSCUSTOM_MASK | IDEV_MAPPED_QUALIFIER_MASK); + if (amask & AM_AF) + { + flag |= (flags & IDEV_MAPPED_AUTOFIRE_SET) ? ID_FLAG_AUTOFIRE : 0; #ifndef INPUTDEVICE_SIMPLE - flag |= (flags & IDEV_MAPPED_TOGGLE) ? ID_FLAG_TOGGLE : 0; - flag |= (flags & IDEV_MAPPED_INVERTTOGGLE) ? ID_FLAG_INVERTTOGGLE : 0; + flag |= (flags & IDEV_MAPPED_TOGGLE) ? ID_FLAG_TOGGLE : 0; + flag |= (flags & IDEV_MAPPED_INVERTTOGGLE) ? ID_FLAG_INVERTTOGGLE : 0; #endif - } - flag |= (flags & IDEV_MAPPED_GAMEPORTSCUSTOM1) ? ID_FLAG_GAMEPORTSCUSTOM1 : 0; + } + flag |= (flags & IDEV_MAPPED_GAMEPORTSCUSTOM1) ? ID_FLAG_GAMEPORTSCUSTOM1 : 0; #ifndef INPUTDEVICE_SIMPLE - flag |= (flags & IDEV_MAPPED_GAMEPORTSCUSTOM2) ? ID_FLAG_GAMEPORTSCUSTOM2 : 0; + flag |= (flags & IDEV_MAPPED_GAMEPORTSCUSTOM2) ? ID_FLAG_GAMEPORTSCUSTOM2 : 0; #endif - flag |= flags & IDEV_MAPPED_QUALIFIER_MASK; - if (port >= 0) - portp = port; - put_event_data (idf, devindex, num, eid, custom, flag, portp, sub); - return 1; - } - return 0; + flag |= flags & IDEV_MAPPED_QUALIFIER_MASK; + if (port >= 0) + portp = port; + put_event_data (idf, devindex, num, eid, custom, flag, portp, sub); + return 1; + } + return 0; } int inputdevice_get_widget_type (int devnum, int num, TCHAR *name) { - const struct inputdevice_functions *idf = getidf (devnum); - return idf->get_widget_type (inputdevice_get_device_index (devnum), num, name, 0); + const struct inputdevice_functions *idf = getidf (devnum); + return idf->get_widget_type (inputdevice_get_device_index (devnum), num, name, 0); } static int config_change; void inputdevice_config_change (void) { - config_change = 1; + config_change = 1; } int inputdevice_config_change_test (void) { - int v = config_change; - config_change = 0; - return v; + int v = config_change; + config_change = 0; + return v; } // copy configuration #src to configuration #dst void inputdevice_copyconfig (const struct uae_prefs *src, struct uae_prefs *dst) { - int i, j; + int i, j; - dst->input_selected_setting = src->input_selected_setting; - dst->input_joymouse_multiplier = src->input_joymouse_multiplier; - dst->input_joymouse_deadzone = src->input_joymouse_deadzone; - dst->input_joystick_deadzone = src->input_joystick_deadzone; - dst->input_joymouse_speed = src->input_joymouse_speed; - dst->input_mouse_speed = src->input_mouse_speed; - dst->input_autofire_linecnt = src->input_autofire_linecnt; - dst->input_tablet = src->input_tablet; - - dst->pandora_tapDelay = src->pandora_tapDelay; - dst->pandora_customControls = src->pandora_customControls; - - copyjport (src, dst, 0); - copyjport (src, dst, 1); - copyjport (src, dst, 2); - copyjport (src, dst, 3); + dst->input_selected_setting = src->input_selected_setting; + dst->input_joymouse_multiplier = src->input_joymouse_multiplier; + dst->input_joymouse_deadzone = src->input_joymouse_deadzone; + dst->input_joystick_deadzone = src->input_joystick_deadzone; + dst->input_joymouse_speed = src->input_joymouse_speed; + dst->input_mouse_speed = src->input_mouse_speed; + dst->input_autofire_linecnt = src->input_autofire_linecnt; + dst->input_tablet = src->input_tablet; - for (i = 0; i < MAX_INPUT_SETTINGS; i++) { - for (j = 0; j < MAX_INPUT_DEVICES; j++) { - memcpy (&dst->joystick_settings[i][j], &src->joystick_settings[i][j], sizeof (struct uae_input_device)); - memcpy (&dst->mouse_settings[i][j], &src->mouse_settings[i][j], sizeof (struct uae_input_device)); - memcpy (&dst->keyboard_settings[i][j], &src->keyboard_settings[i][j], sizeof (struct uae_input_device)); - } - } + dst->pandora_tapDelay = src->pandora_tapDelay; + dst->pandora_customControls = src->pandora_customControls; - inputdevice_updateconfig (src, dst); + copyjport (src, dst, 0); + copyjport (src, dst, 1); + copyjport (src, dst, 2); + copyjport (src, dst, 3); + + for (i = 0; i < MAX_INPUT_SETTINGS; i++) + { + for (j = 0; j < MAX_INPUT_DEVICES; j++) + { + memcpy (&dst->joystick_settings[i][j], &src->joystick_settings[i][j], sizeof (struct uae_input_device)); + memcpy (&dst->mouse_settings[i][j], &src->mouse_settings[i][j], sizeof (struct uae_input_device)); + memcpy (&dst->keyboard_settings[i][j], &src->keyboard_settings[i][j], sizeof (struct uae_input_device)); + } + } + + inputdevice_updateconfig (src, dst); } static void swapjoydevice (struct uae_input_device *uid, int **swaps) { - for (int i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) { - for (int j = 0; j < MAX_INPUT_SUB_EVENT; j++) { - bool found = false; - for (int k = 0; k < 2 && !found; k++) { - int evtnum; - for (int kk = 0; (evtnum = swaps[k][kk]) >= 0 && !found; kk++) { - if (uid->eventid[i][j] == evtnum) { - uid->eventid[i][j] = swaps[1 - k][kk]; - found = true; - } else { - for (int jj = 0; axistable[jj] >= 0; jj += 3) { - if (evtnum == axistable[jj] || evtnum == axistable[jj + 1] || evtnum == axistable[jj + 2]) { - for (int ii = 0; ii < 3; ii++) { - if (uid->eventid[i][j] == axistable[jj + ii]) { - int evtnum2 = swaps[1 - k][kk]; - for (int m = 0; axistable[m] >= 0; m += 3) { - if (evtnum2 == axistable[m] || evtnum2 == axistable[m + 1] || evtnum2 == axistable[m + 2]) { - uid->eventid[i][j] = axistable[m + ii]; - found = true; - } - } - } - } - } - } - } - } - } - } - } + for (int i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) + { + for (int j = 0; j < MAX_INPUT_SUB_EVENT; j++) + { + bool found = false; + for (int k = 0; k < 2 && !found; k++) + { + int evtnum; + for (int kk = 0; (evtnum = swaps[k][kk]) >= 0 && !found; kk++) + { + if (uid->eventid[i][j] == evtnum) + { + uid->eventid[i][j] = swaps[1 - k][kk]; + found = true; + } + else + { + for (int jj = 0; axistable[jj] >= 0; jj += 3) + { + if (evtnum == axistable[jj] || evtnum == axistable[jj + 1] || evtnum == axistable[jj + 2]) + { + for (int ii = 0; ii < 3; ii++) + { + if (uid->eventid[i][j] == axistable[jj + ii]) + { + int evtnum2 = swaps[1 - k][kk]; + for (int m = 0; axistable[m] >= 0; m += 3) + { + if (evtnum2 == axistable[m] || evtnum2 == axistable[m + 1] || evtnum2 == axistable[m + 2]) + { + uid->eventid[i][j] = axistable[m + ii]; + found = true; + } + } + } + } + } + } + } + } + } + } + } } // swap gameports ports, remember to handle customized ports too void inputdevice_swap_compa_ports (struct uae_prefs *prefs, int portswap) { - struct jport tmp; - if ((prefs->jports[portswap].id == JPORT_CUSTOM || prefs->jports[portswap + 1].id == JPORT_CUSTOM)) { - int *swaps[2]; - swaps[0] = rem_ports[portswap]; - swaps[1] = rem_ports[portswap + 1]; - for (int l = 0; l < MAX_INPUT_DEVICES; l++) { - swapjoydevice (&prefs->joystick_settings[GAMEPORT_INPUT_SETTINGS][l], swaps); - swapjoydevice (&prefs->mouse_settings[GAMEPORT_INPUT_SETTINGS][l], swaps); - swapjoydevice (&prefs->keyboard_settings[GAMEPORT_INPUT_SETTINGS][l], swaps); - } - } - memcpy (&tmp, &prefs->jports[portswap], sizeof (struct jport)); - memcpy (&prefs->jports[portswap], &prefs->jports[portswap + 1], sizeof (struct jport)); - memcpy (&prefs->jports[portswap + 1], &tmp, sizeof (struct jport)); - inputdevice_updateconfig (NULL, prefs); + struct jport tmp; + if ((prefs->jports[portswap].id == JPORT_CUSTOM || prefs->jports[portswap + 1].id == JPORT_CUSTOM)) + { + int *swaps[2]; + swaps[0] = rem_ports[portswap]; + swaps[1] = rem_ports[portswap + 1]; + for (int l = 0; l < MAX_INPUT_DEVICES; l++) + { + swapjoydevice (&prefs->joystick_settings[GAMEPORT_INPUT_SETTINGS][l], swaps); + swapjoydevice (&prefs->mouse_settings[GAMEPORT_INPUT_SETTINGS][l], swaps); + swapjoydevice (&prefs->keyboard_settings[GAMEPORT_INPUT_SETTINGS][l], swaps); + } + } + memcpy (&tmp, &prefs->jports[portswap], sizeof (struct jport)); + memcpy (&prefs->jports[portswap], &prefs->jports[portswap + 1], sizeof (struct jport)); + memcpy (&prefs->jports[portswap + 1], &tmp, sizeof (struct jport)); + inputdevice_updateconfig (NULL, prefs); } // swap device "devnum" ports 0<>1 and 2<>3 void inputdevice_swap_ports (struct uae_prefs *p, int devnum) { - const struct inputdevice_functions *idf = getidf (devnum); - struct uae_input_device *uid = get_uid (idf, inputdevice_get_device_index (devnum)); - int i, j, k, event, unit; - const struct inputevent *ie, *ie2; + const struct inputdevice_functions *idf = getidf (devnum); + struct uae_input_device *uid = get_uid (idf, inputdevice_get_device_index (devnum)); + int i, j, k, event, unit; + const struct inputevent *ie, *ie2; - for (i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) { - for (j = 0; j < MAX_INPUT_SUB_EVENT; j++) { - event = uid->eventid[i][j]; - if (event <= 0) - continue; - ie = &events[event]; - if (ie->unit <= 0) - continue; - unit = ie->unit; - k = 1; - while (events[k].confname) { - ie2 = &events[k]; - if (ie2->type == ie->type && ie2->data == ie->data && ie2->unit - 1 == ((ie->unit - 1) ^ 1) && - ie2->allow_mask == ie->allow_mask && uid->port[i][j] == 0) { - uid->eventid[i][j] = k; - break; - } - k++; - } - } - } + for (i = 0; i < MAX_INPUT_DEVICE_EVENTS; i++) + { + for (j = 0; j < MAX_INPUT_SUB_EVENT; j++) + { + event = uid->eventid[i][j]; + if (event <= 0) + continue; + ie = &events[event]; + if (ie->unit <= 0) + continue; + unit = ie->unit; + k = 1; + while (events[k].confname) + { + ie2 = &events[k]; + if (ie2->type == ie->type && ie2->data == ie->data && ie2->unit - 1 == ((ie->unit - 1) ^ 1) && + ie2->allow_mask == ie->allow_mask && uid->port[i][j] == 0) + { + uid->eventid[i][j] = k; + break; + } + k++; + } + } + } } //memcpy (p->joystick_settings[dst], p->joystick_settings[src], sizeof (struct uae_input_device) * MAX_INPUT_DEVICES); static void copydev (struct uae_input_device *dst, struct uae_input_device *src, int selectedwidget) { - for (int i = 0; i < MAX_INPUT_DEVICES; i++) { - for (int j = 0; j < MAX_INPUT_DEVICE_EVENTS; j++) { - if (j == selectedwidget || selectedwidget < 0) { - for (int k = 0; k < MAX_INPUT_SUB_EVENT_ALL; k++) { - xfree (dst[i].custom[j][k]); - } - } - } - if (selectedwidget < 0) { - xfree (dst[i].configname); - xfree (dst[i].name); - } - } - if (selectedwidget < 0) { - memcpy (dst, src, sizeof (struct uae_input_device) * MAX_INPUT_DEVICES); - } else { - int j = selectedwidget; - for (int i = 0; i < MAX_INPUT_DEVICES; i++) { - for (int k = 0; k < MAX_INPUT_SUB_EVENT_ALL; k++) { - dst[i].eventid[j][k] = src[i].eventid[j][k]; - dst[i].custom[j][k] = src[i].custom[j][k]; - dst[i].flags[j][k] = src[i].flags[j][k]; - dst[i].port[j][k] = src[i].port[j][k]; - } - dst[i].extra[j] = src[i].extra[j]; - } - } - for (int i = 0; i < MAX_INPUT_DEVICES; i++) { - for (int j = 0; j < MAX_INPUT_DEVICE_EVENTS; j++) { - if (j == selectedwidget || selectedwidget < 0) { - for (int k = 0; k < MAX_INPUT_SUB_EVENT_ALL; k++) { - if (dst[i].custom) - dst[i].custom[j][k] = my_strdup (dst[i].custom[j][k]); - } - } - } - if (selectedwidget < 0) { - dst[i].configname = my_strdup (dst[i].configname); - dst[i].name = my_strdup (dst[i].name); - } - } + for (int i = 0; i < MAX_INPUT_DEVICES; i++) + { + for (int j = 0; j < MAX_INPUT_DEVICE_EVENTS; j++) + { + if (j == selectedwidget || selectedwidget < 0) + { + for (int k = 0; k < MAX_INPUT_SUB_EVENT_ALL; k++) + { + xfree (dst[i].custom[j][k]); + } + } + } + if (selectedwidget < 0) + { + xfree (dst[i].configname); + xfree (dst[i].name); + } + } + if (selectedwidget < 0) + { + memcpy (dst, src, sizeof (struct uae_input_device) * MAX_INPUT_DEVICES); + } + else + { + int j = selectedwidget; + for (int i = 0; i < MAX_INPUT_DEVICES; i++) + { + for (int k = 0; k < MAX_INPUT_SUB_EVENT_ALL; k++) + { + dst[i].eventid[j][k] = src[i].eventid[j][k]; + dst[i].custom[j][k] = src[i].custom[j][k]; + dst[i].flags[j][k] = src[i].flags[j][k]; + dst[i].port[j][k] = src[i].port[j][k]; + } + dst[i].extra[j] = src[i].extra[j]; + } + } + for (int i = 0; i < MAX_INPUT_DEVICES; i++) + { + for (int j = 0; j < MAX_INPUT_DEVICE_EVENTS; j++) + { + if (j == selectedwidget || selectedwidget < 0) + { + for (int k = 0; k < MAX_INPUT_SUB_EVENT_ALL; k++) + { + if (dst[i].custom) + dst[i].custom[j][k] = my_strdup (dst[i].custom[j][k]); + } + } + } + if (selectedwidget < 0) + { + dst[i].configname = my_strdup (dst[i].configname); + dst[i].name = my_strdup (dst[i].name); + } + } } // copy whole configuration #x-slot to another @@ -4861,88 +5507,95 @@ static void copydev (struct uae_input_device *dst, struct uae_input_device *src, // +2 = default (pc keyboard) void inputdevice_copy_single_config (struct uae_prefs *p, int src, int dst, int devnum, int selectedwidget) { - if (selectedwidget >= 0) { - if (devnum < 0) - return; - if (gettype (devnum) != IDTYPE_KEYBOARD) - return; - } - if (src >= MAX_INPUT_SETTINGS) { - if (gettype (devnum) == IDTYPE_KEYBOARD) { - p->input_keyboard_type = src > MAX_INPUT_SETTINGS ? 1 : 0; - keyboard_default = keyboard_default_table[p->input_keyboard_type]; - inputdevice_default_kb (p, dst); - } - } - if (src == dst) - return; - if (src < MAX_INPUT_SETTINGS) { - if (devnum < 0 || gettype (devnum) == IDTYPE_JOYSTICK) - copydev (p->joystick_settings[dst], p->joystick_settings[src], selectedwidget); - if (devnum < 0 || gettype (devnum) == IDTYPE_MOUSE) - copydev (p->mouse_settings[dst], p->mouse_settings[src], selectedwidget); - if (devnum < 0 || gettype (devnum) == IDTYPE_KEYBOARD) - copydev (p->keyboard_settings[dst], p->keyboard_settings[src], selectedwidget); - } + if (selectedwidget >= 0) + { + if (devnum < 0) + return; + if (gettype (devnum) != IDTYPE_KEYBOARD) + return; + } + if (src >= MAX_INPUT_SETTINGS) + { + if (gettype (devnum) == IDTYPE_KEYBOARD) + { + p->input_keyboard_type = src > MAX_INPUT_SETTINGS ? 1 : 0; + keyboard_default = keyboard_default_table[p->input_keyboard_type]; + inputdevice_default_kb (p, dst); + } + } + if (src == dst) + return; + if (src < MAX_INPUT_SETTINGS) + { + if (devnum < 0 || gettype (devnum) == IDTYPE_JOYSTICK) + copydev (p->joystick_settings[dst], p->joystick_settings[src], selectedwidget); + if (devnum < 0 || gettype (devnum) == IDTYPE_MOUSE) + copydev (p->mouse_settings[dst], p->mouse_settings[src], selectedwidget); + if (devnum < 0 || gettype (devnum) == IDTYPE_KEYBOARD) + copydev (p->keyboard_settings[dst], p->keyboard_settings[src], selectedwidget); + } } void inputdevice_acquire (int allmode) { - int i; + int i; - //write_log (_T("inputdevice_acquire\n")); + //write_log (_T("inputdevice_acquire\n")); - for (i = 0; i < MAX_INPUT_DEVICES; i++) - idev[IDTYPE_JOYSTICK].unacquire (i); - for (i = 0; i < MAX_INPUT_DEVICES; i++) - idev[IDTYPE_MOUSE].unacquire (i); - for (i = 0; i < MAX_INPUT_DEVICES; i++) - idev[IDTYPE_KEYBOARD].unacquire (i); + for (i = 0; i < MAX_INPUT_DEVICES; i++) + idev[IDTYPE_JOYSTICK].unacquire (i); + for (i = 0; i < MAX_INPUT_DEVICES; i++) + idev[IDTYPE_MOUSE].unacquire (i); + for (i = 0; i < MAX_INPUT_DEVICES; i++) + idev[IDTYPE_KEYBOARD].unacquire (i); - for (i = 0; i < MAX_INPUT_DEVICES; i++) { - if ((use_joysticks[i] && allmode >= 0) || (allmode && !idev[IDTYPE_JOYSTICK].get_flags (i))) - idev[IDTYPE_JOYSTICK].acquire (i, 0); - } - for (i = 0; i < MAX_INPUT_DEVICES; i++) { - if ((use_mice[i] && allmode >= 0) || (allmode && !idev[IDTYPE_MOUSE].get_flags (i))) - idev[IDTYPE_MOUSE].acquire (i, allmode < 0); - } - for (i = 0; i < MAX_INPUT_DEVICES; i++) { - if ((use_keyboards[i] && allmode >= 0) || (allmode < 0 && !idev[IDTYPE_KEYBOARD].get_flags (i))) - idev[IDTYPE_KEYBOARD].acquire (i, allmode < 0); - } + for (i = 0; i < MAX_INPUT_DEVICES; i++) + { + if ((use_joysticks[i] && allmode >= 0) || (allmode && !idev[IDTYPE_JOYSTICK].get_flags (i))) + idev[IDTYPE_JOYSTICK].acquire (i, 0); + } + for (i = 0; i < MAX_INPUT_DEVICES; i++) + { + if ((use_mice[i] && allmode >= 0) || (allmode && !idev[IDTYPE_MOUSE].get_flags (i))) + idev[IDTYPE_MOUSE].acquire (i, allmode < 0); + } + for (i = 0; i < MAX_INPUT_DEVICES; i++) + { + if ((use_keyboards[i] && allmode >= 0) || (allmode < 0 && !idev[IDTYPE_KEYBOARD].get_flags (i))) + idev[IDTYPE_KEYBOARD].acquire (i, allmode < 0); + } - if (input_acquired) - return; + if (input_acquired) + return; - idev[IDTYPE_JOYSTICK].acquire (-1, 0); - idev[IDTYPE_MOUSE].acquire (-1, 0); - idev[IDTYPE_KEYBOARD].acquire (-1, 0); - // if (!input_acquired) - // write_log (_T("input devices acquired (%s)\n"), allmode ? "all" : "selected only"); - input_acquired = 1; + idev[IDTYPE_JOYSTICK].acquire (-1, 0); + idev[IDTYPE_MOUSE].acquire (-1, 0); + idev[IDTYPE_KEYBOARD].acquire (-1, 0); + // if (!input_acquired) + // write_log (_T("input devices acquired (%s)\n"), allmode ? "all" : "selected only"); + input_acquired = 1; } void inputdevice_unacquire (void) { - int i; + int i; - //write_log (_T("inputdevice_unacquire\n")); + //write_log (_T("inputdevice_unacquire\n")); - for (i = 0; i < MAX_INPUT_DEVICES; i++) - idev[IDTYPE_JOYSTICK].unacquire (i); - for (i = 0; i < MAX_INPUT_DEVICES; i++) - idev[IDTYPE_MOUSE].unacquire (i); - for (i = 0; i < MAX_INPUT_DEVICES; i++) - idev[IDTYPE_KEYBOARD].unacquire (i); + for (i = 0; i < MAX_INPUT_DEVICES; i++) + idev[IDTYPE_JOYSTICK].unacquire (i); + for (i = 0; i < MAX_INPUT_DEVICES; i++) + idev[IDTYPE_MOUSE].unacquire (i); + for (i = 0; i < MAX_INPUT_DEVICES; i++) + idev[IDTYPE_KEYBOARD].unacquire (i); - if (!input_acquired) - return; + if (!input_acquired) + return; - input_acquired = 0; - idev[IDTYPE_JOYSTICK].unacquire (-1); - idev[IDTYPE_MOUSE].unacquire (-1); - idev[IDTYPE_KEYBOARD].unacquire (-1); + input_acquired = 0; + idev[IDTYPE_JOYSTICK].unacquire (-1); + idev[IDTYPE_MOUSE].unacquire (-1); + idev[IDTYPE_KEYBOARD].unacquire (-1); } /* Call this function when host machine's joystick/joypad/etc button state changes @@ -4957,7 +5610,7 @@ void inputdevice_unacquire (void) void setjoybuttonstate (int joy, int button, int state) { - setbuttonstateall (&joysticks[joy], &joysticks2[joy], button, state ? 1 : 0); + setbuttonstateall (&joysticks[joy], &joysticks2[joy], button, state ? 1 : 0); } #ifndef INPUTDEVICE_SIMPLE @@ -4965,44 +5618,46 @@ void setjoybuttonstate (int joy, int button, int state) */ void setjoybuttonstateall (int joy, uae_u32 buttonbits, uae_u32 buttonmask) { - int i; + int i; #if 0 - if (ignoreoldinput (joy)) - return; + if (ignoreoldinput (joy)) + return; #endif - for (i = 0; i < ID_BUTTON_TOTAL; i++) { - if (buttonmask & (1 << i)) - setbuttonstateall (&joysticks[joy], &joysticks2[joy], i, (buttonbits & (1 << i)) ? 1 : 0); - else if (buttonbits & (1 << i)) - setbuttonstateall (&joysticks[joy], &joysticks2[joy], i, -1); - } + for (i = 0; i < ID_BUTTON_TOTAL; i++) + { + if (buttonmask & (1 << i)) + setbuttonstateall (&joysticks[joy], &joysticks2[joy], i, (buttonbits & (1 << i)) ? 1 : 0); + else if (buttonbits & (1 << i)) + setbuttonstateall (&joysticks[joy], &joysticks2[joy], i, -1); + } } /* mouse buttons (just like joystick buttons) */ void setmousebuttonstateall (int mouse, uae_u32 buttonbits, uae_u32 buttonmask) { - int i; - uae_u32 obuttonmask = mice2[mouse].buttonmask; + int i; + uae_u32 obuttonmask = mice2[mouse].buttonmask; - for (i = 0; i < ID_BUTTON_TOTAL; i++) { - if (buttonmask & (1 << i)) - setbuttonstateall (&mice[mouse], &mice2[mouse], i, (buttonbits & (1 << i)) ? 1 : 0); - else if (buttonbits & (1 << i)) - setbuttonstateall (&mice[mouse], &mice2[mouse], i, -1); - } - if (obuttonmask != mice2[mouse].buttonmask) - mousehack_helper (mice2[mouse].buttonmask); + for (i = 0; i < ID_BUTTON_TOTAL; i++) + { + if (buttonmask & (1 << i)) + setbuttonstateall (&mice[mouse], &mice2[mouse], i, (buttonbits & (1 << i)) ? 1 : 0); + else if (buttonbits & (1 << i)) + setbuttonstateall (&mice[mouse], &mice2[mouse], i, -1); + } + if (obuttonmask != mice2[mouse].buttonmask) + mousehack_helper (mice2[mouse].buttonmask); } #endif void setmousebuttonstate (int mouse, int button, int state) { - uae_u32 obuttonmask = mice2[mouse].buttonmask; + uae_u32 obuttonmask = mice2[mouse].buttonmask; - setbuttonstateall (&mice[mouse], &mice2[mouse], button, state); - if (obuttonmask != mice2[mouse].buttonmask) - mousehack_helper (mice2[mouse].buttonmask); + setbuttonstateall (&mice[mouse], &mice2[mouse], button, state); + if (obuttonmask != mice2[mouse].buttonmask) + mousehack_helper (mice2[mouse].buttonmask); } @@ -5011,227 +5666,259 @@ void setmousebuttonstate (int mouse, int button, int state) */ void setjoystickstate (int joy, int axis, int state, int max) { - struct uae_input_device *id = &joysticks[joy]; - struct uae_input_device2 *id2 = &joysticks2[joy]; - int deadzone = currprefs.input_joymouse_deadzone * max / 100; - int i, v1, v2; + struct uae_input_device *id = &joysticks[joy]; + struct uae_input_device2 *id2 = &joysticks2[joy]; + int deadzone = currprefs.input_joymouse_deadzone * max / 100; + int i, v1, v2; - v1 = state; - v2 = id2->states[axis]; - if (v1 < deadzone && v1 > -deadzone) - v1 = 0; - if (v2 < deadzone && v2 > -deadzone) - v2 = 0; - if (v1 == v2) - return; - if (!joysticks[joy].enabled) { - if (v1) - switchdevice (&joysticks[joy], axis * 2 + (v1 < 0 ? 0 : 1), false); - return; - } - for (i = 0; i < MAX_INPUT_SUB_EVENT; i++) + v1 = state; + v2 = id2->states[axis]; + if (v1 < deadzone && v1 > -deadzone) + v1 = 0; + if (v2 < deadzone && v2 > -deadzone) + v2 = 0; + if (v1 == v2) + return; + if (!joysticks[joy].enabled) + { + if (v1) + switchdevice (&joysticks[joy], axis * 2 + (v1 < 0 ? 0 : 1), false); + return; + } + for (i = 0; i < MAX_INPUT_SUB_EVENT; i++) #ifdef INPUTDEVICE_SIMPLE - handle_input_event (id->eventid[ID_AXIS_OFFSET + axis][i], state, max, id->flags[ID_AXIS_OFFSET + axis][i] & ID_FLAG_AUTOFIRE); + handle_input_event (id->eventid[ID_AXIS_OFFSET + axis][i], state, max, id->flags[ID_AXIS_OFFSET + axis][i] & ID_FLAG_AUTOFIRE); #else - handle_input_event (id->eventid[ID_AXIS_OFFSET + axis][i], state, max, id->flags[ID_AXIS_OFFSET + axis][i] & ID_FLAG_AUTOFIRE, true, false); + handle_input_event (id->eventid[ID_AXIS_OFFSET + axis][i], state, max, id->flags[ID_AXIS_OFFSET + axis][i] & ID_FLAG_AUTOFIRE, true, false); #endif - id2->states[axis] = state; + id2->states[axis] = state; } int getjoystickstate (int joy) { - return joysticks[joy].enabled; + return joysticks[joy].enabled; } void setmousestate (int mouse, int axis, int data, int isabs) { - int i, v, diff; - int *mouse_p, *oldm_p; - double d; - struct uae_input_device *id = &mice[mouse]; - static double fract[MAX_INPUT_DEVICES][MAX_INPUT_DEVICE_EVENTS]; + int i, v, diff; + int *mouse_p, *oldm_p; + double d; + struct uae_input_device *id = &mice[mouse]; + static double fract[MAX_INPUT_DEVICES][MAX_INPUT_DEVICE_EVENTS]; - if (!mice[mouse].enabled) { - return; - } - d = 0; - mouse_p = &mouse_axis[mouse][axis]; - oldm_p = &oldm_axis[mouse][axis]; - if (!isabs) { - // eat relative movements while in mousehack mode - if (currprefs.input_tablet == TABLET_MOUSEHACK && mousehack_alive ()) - return; - *oldm_p = *mouse_p; - *mouse_p += data; - d = (*mouse_p - *oldm_p) * currprefs.input_mouse_speed / 100.0; - } else { - d = data - *oldm_p; - *oldm_p = data; - *mouse_p += d; - if (axis == 0) - lastmx = data; - else - lastmy = data; - if (axis) - mousehack_helper (mice2[mouse].buttonmask); - if (currprefs.input_tablet == TABLET_MOUSEHACK && mousehack_alive ()) - return; - } - v = (int)d; - fract[mouse][axis] += d - v; - diff = (int)fract[mouse][axis]; - v += diff; - fract[mouse][axis] -= diff; - for (i = 0; i < MAX_INPUT_SUB_EVENT; i++) + if (!mice[mouse].enabled) + { + return; + } + d = 0; + mouse_p = &mouse_axis[mouse][axis]; + oldm_p = &oldm_axis[mouse][axis]; + if (!isabs) + { + // eat relative movements while in mousehack mode + if (currprefs.input_tablet == TABLET_MOUSEHACK && mousehack_alive ()) + return; + *oldm_p = *mouse_p; + *mouse_p += data; + d = (*mouse_p - *oldm_p) * currprefs.input_mouse_speed / 100.0; + } + else + { + d = data - *oldm_p; + *oldm_p = data; + *mouse_p += d; + if (axis == 0) + lastmx = data; + else + lastmy = data; + if (axis) + mousehack_helper (mice2[mouse].buttonmask); + if (currprefs.input_tablet == TABLET_MOUSEHACK && mousehack_alive ()) + return; + } + v = (int)d; + fract[mouse][axis] += d - v; + diff = (int)fract[mouse][axis]; + v += diff; + fract[mouse][axis] -= diff; + for (i = 0; i < MAX_INPUT_SUB_EVENT; i++) #ifdef INPUTDEVICE_SIMPLE - handle_input_event (id->eventid[ID_AXIS_OFFSET + axis][i], v, 0, 0); + handle_input_event (id->eventid[ID_AXIS_OFFSET + axis][i], v, 0, 0); #else - handle_input_event (id->eventid[ID_AXIS_OFFSET + axis][i], v, 0, 0, true, false); + handle_input_event (id->eventid[ID_AXIS_OFFSET + axis][i], v, 0, 0, true, false); #endif } int getmousestate (int joy) { - return mice[joy].enabled; + return mice[joy].enabled; } int jsem_isjoy (int port, const struct uae_prefs *p) { - int v = JSEM_DECODEVAL (port, p); - if (v < JSEM_JOYS) - return -1; - v -= JSEM_JOYS; - if (v >= inputdevice_get_device_total (IDTYPE_JOYSTICK)) - return -1; - return v; + int v = JSEM_DECODEVAL (port, p); + if (v < JSEM_JOYS) + return -1; + v -= JSEM_JOYS; + if (v >= inputdevice_get_device_total (IDTYPE_JOYSTICK)) + return -1; + return v; } int jsem_ismouse (int port, const struct uae_prefs *p) { - int v = JSEM_DECODEVAL (port, p); - if (v < JSEM_MICE) - return -1; - v -= JSEM_MICE; - if (v >= inputdevice_get_device_total (IDTYPE_MOUSE)) - return -1; - return v; + int v = JSEM_DECODEVAL (port, p); + if (v < JSEM_MICE) + return -1; + v -= JSEM_MICE; + if (v >= inputdevice_get_device_total (IDTYPE_MOUSE)) + return -1; + return v; } int jsem_iskbdjoy (int port, const struct uae_prefs *p) { - int v = JSEM_DECODEVAL (port, p); - if (v < JSEM_KBDLAYOUT) - return -1; - v -= JSEM_KBDLAYOUT; - if (v >= JSEM_LASTKBD) - return -1; - return v; + int v = JSEM_DECODEVAL (port, p); + if (v < JSEM_KBDLAYOUT) + return -1; + v -= JSEM_KBDLAYOUT; + if (v >= JSEM_LASTKBD) + return -1; + return v; } int inputdevice_joyport_config (struct uae_prefs *p, const TCHAR *value, int portnum, int mode, int type) { - switch (type) - { - case 1: - case 2: - { - int i, j; - for (j = 0; j < MAX_JPORTS; j++) { - struct inputdevice_functions *idf; - int type = IDTYPE_MOUSE; - int idnum = JSEM_MICE; - if (j > 0) { - type = IDTYPE_JOYSTICK; - idnum = JSEM_JOYS; - } - idf = &idev[type]; - for (i = 0; i < idf->get_num (); i++) { - TCHAR *name1 = idf->get_friendlyname (i); - TCHAR *name2 = idf->get_uniquename (i); - if ((name1 && !_tcscmp (name1, value)) || (name2 && !_tcscmp (name2, value))) { - p->jports[portnum].id = idnum + i; - if (mode >= 0) - p->jports[portnum].mode = mode; - return 1; - } - } - } - } - break; - case 0: - { - int start = JPORT_NONE, got = 0, max = -1; - const TCHAR *pp = 0; - if (_tcsncmp (value, _T("kbd"), 3) == 0) { - start = JSEM_KBDLAYOUT; - pp = value + 3; - got = 1; - max = JSEM_LASTKBD; - } else if (_tcsncmp (value, _T("joy"), 3) == 0) { - start = JSEM_JOYS; - pp = value + 3; - got = 1; - max = idev[IDTYPE_JOYSTICK].get_num (); - } else if (_tcsncmp (value, _T("mouse"), 5) == 0) { - start = JSEM_MICE; - pp = value + 5; - got = 1; - max = idev[IDTYPE_MOUSE].get_num (); - } else if (_tcscmp (value, _T("none")) == 0) { - got = 2; - } else if (_tcscmp (value, _T("custom")) == 0) { - got = 2; - start = JPORT_CUSTOM; - } - if (got) { - if (pp && max != 0) { - int v = _tstol (pp); - if (start >= 0) { - if (start == JSEM_KBDLAYOUT && v > 0) - v--; - if (v >= 0) { - if (v >= max) - v = 0; - start += v; - got = 2; - } - } - } - if (got == 2) { - p->jports[portnum].id = start; - if (mode >= 0) - p->jports[portnum].mode = mode; - return 1; - } - } - } - break; - } - return 0; + switch (type) + { + case 1: + case 2: + { + int i, j; + for (j = 0; j < MAX_JPORTS; j++) + { + struct inputdevice_functions *idf; + int type = IDTYPE_MOUSE; + int idnum = JSEM_MICE; + if (j > 0) + { + type = IDTYPE_JOYSTICK; + idnum = JSEM_JOYS; + } + idf = &idev[type]; + for (i = 0; i < idf->get_num (); i++) + { + TCHAR *name1 = idf->get_friendlyname (i); + TCHAR *name2 = idf->get_uniquename (i); + if ((name1 && !_tcscmp (name1, value)) || (name2 && !_tcscmp (name2, value))) + { + p->jports[portnum].id = idnum + i; + if (mode >= 0) + p->jports[portnum].mode = mode; + return 1; + } + } + } + } + break; + case 0: + { + int start = JPORT_NONE, got = 0, max = -1; + const TCHAR *pp = 0; + if (_tcsncmp (value, _T("kbd"), 3) == 0) + { + start = JSEM_KBDLAYOUT; + pp = value + 3; + got = 1; + max = JSEM_LASTKBD; + } + else if (_tcsncmp (value, _T("joy"), 3) == 0) + { + start = JSEM_JOYS; + pp = value + 3; + got = 1; + max = idev[IDTYPE_JOYSTICK].get_num (); + } + else if (_tcsncmp (value, _T("mouse"), 5) == 0) + { + start = JSEM_MICE; + pp = value + 5; + got = 1; + max = idev[IDTYPE_MOUSE].get_num (); + } + else if (_tcscmp (value, _T("none")) == 0) + { + got = 2; + } + else if (_tcscmp (value, _T("custom")) == 0) + { + got = 2; + start = JPORT_CUSTOM; + } + if (got) + { + if (pp && max != 0) + { + int v = _tstol (pp); + if (start >= 0) + { + if (start == JSEM_KBDLAYOUT && v > 0) + v--; + if (v >= 0) + { + if (v >= max) + v = 0; + start += v; + got = 2; + } + } + } + if (got == 2) + { + p->jports[portnum].id = start; + if (mode >= 0) + p->jports[portnum].mode = mode; + return 1; + } + } + } + break; + } + return 0; } int inputdevice_getjoyportdevice (int port, int val) { - int idx; - if (val == JPORT_CUSTOM) { - idx = inputdevice_get_device_total (IDTYPE_JOYSTICK) + JSEM_LASTKBD; - if (port < 2) - idx += inputdevice_get_device_total (IDTYPE_MOUSE); - } else if (val < 0) { - idx = -1; - } else if (val >= JSEM_MICE) { - idx = val - JSEM_MICE; - if (idx >= inputdevice_get_device_total (IDTYPE_MOUSE)) - idx = 0; - else - idx += inputdevice_get_device_total (IDTYPE_JOYSTICK); - idx += JSEM_LASTKBD; - } else if (val >= JSEM_JOYS) { - idx = val - JSEM_JOYS; - if (idx >= inputdevice_get_device_total (IDTYPE_JOYSTICK)) - idx = 0; - idx += JSEM_LASTKBD; - } else { - idx = val - JSEM_KBDLAYOUT; - } - return idx; + int idx; + if (val == JPORT_CUSTOM) + { + idx = inputdevice_get_device_total (IDTYPE_JOYSTICK) + JSEM_LASTKBD; + if (port < 2) + idx += inputdevice_get_device_total (IDTYPE_MOUSE); + } + else if (val < 0) + { + idx = -1; + } + else if (val >= JSEM_MICE) + { + idx = val - JSEM_MICE; + if (idx >= inputdevice_get_device_total (IDTYPE_MOUSE)) + idx = 0; + else + idx += inputdevice_get_device_total (IDTYPE_JOYSTICK); + idx += JSEM_LASTKBD; + } + else if (val >= JSEM_JOYS) + { + idx = val - JSEM_JOYS; + if (idx >= inputdevice_get_device_total (IDTYPE_JOYSTICK)) + idx = 0; + idx += JSEM_LASTKBD; + } + else + { + idx = val - JSEM_KBDLAYOUT; + } + return idx; } diff --git a/src/jit/codegen_arm.cpp b/src/jit/codegen_arm.cpp index 7d013b8a..3d9d6308 100644 --- a/src/jit/codegen_arm.cpp +++ b/src/jit/codegen_arm.cpp @@ -92,9 +92,9 @@ extern void __clear_cache (char*, char*); #define STACK_OFFSET sizeof(void *) #define R_REGSTRUCT 11 -uae_s8 always_used[]={2,3,R_REGSTRUCT,12,-1}; // r12 is scratch register in C functions calls, I don't think it's save to use it here... +uae_s8 always_used[]= {2,3,R_REGSTRUCT,12,-1}; // r12 is scratch register in C functions calls, I don't think it's save to use it here... -uae_u8 call_saved[]={0,0,0,0, 1,1,1,1, 1,1,1,1, 0,1,1,1}; +uae_u8 call_saved[]= {0,0,0,0, 1,1,1,1, 1,1,1,1, 0,1,1,1}; /* This *should* be the same as call_saved. But: - We might not really know which registers are saved, and which aren't, @@ -105,57 +105,68 @@ uae_u8 call_saved[]={0,0,0,0, 1,1,1,1, 1,1,1,1, 0,1,1,1}; */ /* Without save and restore R12, we sometimes get seg faults when entering gui... Don't understand why. */ -static const uae_u8 need_to_preserve[]={0,0,0,0, 1,1,1,1, 1,1,1,1, 1,0,0,0}; +static const uae_u8 need_to_preserve[]= {0,0,0,0, 1,1,1,1, 1,1,1,1, 1,0,0,0}; static const uae_u32 PRESERVE_MASK = ((1<> 8), 24); + MOV_ri8(r, (uae_u8) v); + ORR_rri8RORi(r, r, (uae_u8)(v >> 8), 24); #endif } -STATIC_INLINE void SIGNED16_IMM_2_REG(W4 r, IMM v) { +STATIC_INLINE void SIGNED16_IMM_2_REG(W4 r, IMM v) +{ #ifdef ARMV6T2 - MOVW_ri16(r, v); - SXTH_rr(r, r); + MOVW_ri16(r, v); + SXTH_rr(r, r); #else - uae_s32 offs = data_long_offs((uae_s32)(uae_s16) v); - LDR_rRI(r, RPC_INDEX, offs); + uae_s32 offs = data_long_offs((uae_s32)(uae_s16) v); + LDR_rRI(r, RPC_INDEX, offs); #endif } -STATIC_INLINE void UNSIGNED8_REG_2_REG(W4 d, RR4 s) { - UXTB_rr(d, s); +STATIC_INLINE void UNSIGNED8_REG_2_REG(W4 d, RR4 s) +{ + UXTB_rr(d, s); } -STATIC_INLINE void SIGNED8_REG_2_REG(W4 d, RR4 s) { - SXTB_rr(d, s); +STATIC_INLINE void SIGNED8_REG_2_REG(W4 d, RR4 s) +{ + SXTB_rr(d, s); } -STATIC_INLINE void UNSIGNED16_REG_2_REG(W4 d, RR4 s) { - UXTH_rr(d, s); +STATIC_INLINE void UNSIGNED16_REG_2_REG(W4 d, RR4 s) +{ + UXTH_rr(d, s); } -STATIC_INLINE void SIGNED16_REG_2_REG(W4 d, RR4 s) { - SXTH_rr(d, s); +STATIC_INLINE void SIGNED16_REG_2_REG(W4 d, RR4 s) +{ + SXTH_rr(d, s); } #define ZERO_EXTEND_8_REG_2_REG(d,s) UNSIGNED8_REG_2_REG(d,s) @@ -168,94 +179,120 @@ STATIC_INLINE void SIGNED16_REG_2_REG(W4 d, RR4 s) { LOWFUNC(WRITE,NONE,2,raw_add_l,(RW4 d, RR4 s)) { - ADD_rrr(d, d, s); + ADD_rrr(d, d, s); } LENDFUNC(WRITE,NONE,2,raw_add_l,(RW4 d, RR4 s)) LOWFUNC(WRITE,NONE,2,raw_add_l_ri,(RW4 d, IMM i)) { - if(CHECK32(i)) { - ADD_rri(d, d, i); - } else { + if(CHECK32(i)) + { + ADD_rri(d, d, i); + } + else + { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK1, i); - if(i >> 16) - MOVT_ri16(REG_WORK1, i >> 16); + MOVW_ri16(REG_WORK1, i); + if(i >> 16) + MOVT_ri16(REG_WORK1, i >> 16); #else - uae_s32 offs = data_long_offs(i); - LDR_rRI(REG_WORK1, RPC_INDEX, offs); + uae_s32 offs = data_long_offs(i); + LDR_rRI(REG_WORK1, RPC_INDEX, offs); #endif - ADD_rrr(d, d, REG_WORK1); - } + ADD_rrr(d, d, REG_WORK1); + } } LENDFUNC(WRITE,NONE,2,raw_add_l_ri,(RW4 d, IMM i)) LOWFUNC(NONE,NONE,3,raw_lea_l_brr,(W4 d, RR4 s, IMM offset)) { - if(CHECK32(offset)) { - ADD_rri(d, s, offset); - } else { + if(CHECK32(offset)) + { + ADD_rri(d, s, offset); + } + else + { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK1, offset); - if(offset >> 16) - MOVT_ri16(REG_WORK1, offset >> 16); + MOVW_ri16(REG_WORK1, offset); + if(offset >> 16) + MOVT_ri16(REG_WORK1, offset >> 16); #else - uae_s32 offs = data_long_offs(offset); - LDR_rRI(REG_WORK1, RPC_INDEX, offs); + uae_s32 offs = data_long_offs(offset); + LDR_rRI(REG_WORK1, RPC_INDEX, offs); #endif - ADD_rrr(d, s, REG_WORK1); - } + ADD_rrr(d, s, REG_WORK1); + } } LENDFUNC(NONE,NONE,3,raw_lea_l_brr,(W4 d, RR4 s, IMM offset)) LOWFUNC(NONE,NONE,5,raw_lea_l_brr_indexed,(W4 d, RR4 s, RR4 index, IMM factor, IMM offset)) { - int shft; - switch(factor) { - case 1: shft=0; break; - case 2: shft=1; break; - case 4: shft=2; break; - case 8: shft=3; break; - default: abort(); - } + int shft; + switch(factor) + { + case 1: + shft=0; + break; + case 2: + shft=1; + break; + case 4: + shft=2; + break; + case 8: + shft=3; + break; + default: + abort(); + } - SIGNED8_IMM_2_REG(REG_WORK1, offset); - - ADD_rrr(REG_WORK1, s, REG_WORK1); - ADD_rrrLSLi(d, REG_WORK1, index, shft); + SIGNED8_IMM_2_REG(REG_WORK1, offset); + + ADD_rrr(REG_WORK1, s, REG_WORK1); + ADD_rrrLSLi(d, REG_WORK1, index, shft); } LENDFUNC(NONE,NONE,5,raw_lea_l_brr_indexed,(W4 d, RR4 s, RR4 index, IMM factor, IMM offset)) LOWFUNC(NONE,NONE,4,raw_lea_l_rr_indexed,(W4 d, RR4 s, RR4 index, IMM factor)) { - int shft; - switch(factor) { - case 1: shft=0; break; - case 2: shft=1; break; - case 4: shft=2; break; - case 8: shft=3; break; - default: abort(); - } + int shft; + switch(factor) + { + case 1: + shft=0; + break; + case 2: + shft=1; + break; + case 4: + shft=2; + break; + case 8: + shft=3; + break; + default: + abort(); + } - ADD_rrrLSLi(d, s, index, shft); + ADD_rrrLSLi(d, s, index, shft); } LENDFUNC(NONE,NONE,4,raw_lea_l_rr_indexed,(W4 d, RR4 s, RR4 index, IMM factor)) LOWFUNC(NONE,NONE,2,raw_mov_b_ri,(W1 d, IMM s)) { - BIC_rri(d, d, 0xff); - ORR_rri(d, d, (s & 0xff)); + BIC_rri(d, d, 0xff); + ORR_rri(d, d, (s & 0xff)); } LENDFUNC(NONE,NONE,2,raw_mov_b_ri,(W1 d, IMM s)) LOWFUNC(NONE,NONE,2,raw_mov_b_rr,(W1 d, RR1 s)) { #ifdef ARMV6T2 - BFI_rrii(d, s, 0, 7); + BFI_rrii(d, s, 0, 7); #else - AND_rri(REG_WORK1, s, 0xff); - BIC_rri(d, d, 0xff); - ORR_rrr(d, d, REG_WORK1); + AND_rri(REG_WORK1, s, 0xff); + BIC_rri(d, d, 0xff); + ORR_rrr(d, d, REG_WORK1); #endif } LENDFUNC(NONE,NONE,2,raw_mov_b_rr,(W1 d, RR1 s)) @@ -263,196 +300,223 @@ LENDFUNC(NONE,NONE,2,raw_mov_b_rr,(W1 d, RR1 s)) LOWFUNC(NONE,WRITE,2,raw_mov_l_mi,(MEMW d, IMM s)) { #ifdef ARMV6T2 - if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) { - MOVW_ri16(REG_WORK2, s); - if(s >> 16) - MOVT_ri16(REG_WORK2, s >> 16); - uae_s32 idx = d - (uae_u32) ®s; - STR_rRI(REG_WORK2, R_REGSTRUCT, idx); - } else { - MOVW_ri16(REG_WORK1, d); - MOVT_ri16(REG_WORK1, d >> 16); - MOVW_ri16(REG_WORK2, s); - if(s >> 16) - MOVT_ri16(REG_WORK2, s >> 16); - STR_rR(REG_WORK2, REG_WORK1); - } + if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) + { + MOVW_ri16(REG_WORK2, s); + if(s >> 16) + MOVT_ri16(REG_WORK2, s >> 16); + uae_s32 idx = d - (uae_u32) ®s; + STR_rRI(REG_WORK2, R_REGSTRUCT, idx); + } + else + { + MOVW_ri16(REG_WORK1, d); + MOVT_ri16(REG_WORK1, d >> 16); + MOVW_ri16(REG_WORK2, s); + if(s >> 16) + MOVT_ri16(REG_WORK2, s >> 16); + STR_rR(REG_WORK2, REG_WORK1); + } #else - if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) { - uae_s32 offs = data_long_offs(s); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); - uae_s32 idx = d - (uae_u32) & regs; - STR_rRI(REG_WORK2, R_REGSTRUCT, idx); - } else { - data_check_end(8, 12); - uae_s32 offs = data_long_offs(d); - - LDR_rRI(REG_WORK1, RPC_INDEX, offs); // ldr r2, [pc, #offs] ; d - - offs = data_long_offs(s); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); // ldr r3, [pc, #offs] ; s - - STR_rR(REG_WORK2, REG_WORK1); // str r3, [r2] - } + if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) + { + uae_s32 offs = data_long_offs(s); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); + uae_s32 idx = d - (uae_u32) & regs; + STR_rRI(REG_WORK2, R_REGSTRUCT, idx); + } + else + { + data_check_end(8, 12); + uae_s32 offs = data_long_offs(d); + + LDR_rRI(REG_WORK1, RPC_INDEX, offs); // ldr r2, [pc, #offs] ; d + + offs = data_long_offs(s); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); // ldr r3, [pc, #offs] ; s + + STR_rR(REG_WORK2, REG_WORK1); // str r3, [r2] + } #endif } LENDFUNC(NONE,WRITE,2,raw_mov_l_mi,(MEMW d, IMM s)) LOWFUNC(NONE,NONE,2,raw_mov_w_ri,(W2 d, IMM s)) { - if(CHECK32(s)) { - MOV_ri(REG_WORK2, s); - } else { + if(CHECK32(s)) + { + MOV_ri(REG_WORK2, s); + } + else + { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK2, s); + MOVW_ri16(REG_WORK2, s); #else - uae_s32 offs = data_word_offs(s); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); + uae_s32 offs = data_word_offs(s); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); #endif - } + } - PKHBT_rrr(d, REG_WORK2, d); + PKHBT_rrr(d, REG_WORK2, d); } LENDFUNC(NONE,NONE,2,raw_mov_w_ri,(W2 d, IMM s)) LOWFUNC(NONE,WRITE,2,raw_mov_l_mr,(IMM d, RR4 s)) { - if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) { - uae_s32 idx = d - (uae_u32) ®s; - STR_rRI(s, R_REGSTRUCT, idx); - } else { + if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) + { + uae_s32 idx = d - (uae_u32) ®s; + STR_rRI(s, R_REGSTRUCT, idx); + } + else + { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK1, d); - MOVT_ri16(REG_WORK1, d >> 16); + MOVW_ri16(REG_WORK1, d); + MOVT_ri16(REG_WORK1, d >> 16); #else - uae_s32 offs = data_long_offs(d); - LDR_rRI(REG_WORK1, RPC_INDEX, offs); + uae_s32 offs = data_long_offs(d); + LDR_rRI(REG_WORK1, RPC_INDEX, offs); #endif - STR_rR(s, REG_WORK1); - } + STR_rR(s, REG_WORK1); + } } LENDFUNC(NONE,WRITE,2,raw_mov_l_mr,(IMM d, RR4 s)) LOWFUNC(NONE,NONE,2,raw_mov_w_rr,(W2 d, RR2 s)) { - PKHBT_rrr(d, s, d); + PKHBT_rrr(d, s, d); } LENDFUNC(NONE,NONE,2,raw_mov_w_rr,(W2 d, RR2 s)) LOWFUNC(WRITE,NONE,2,raw_shll_l_ri,(RW4 r, IMM i)) { - LSL_rri(r,r, i & 0x1f); + LSL_rri(r,r, i & 0x1f); } LENDFUNC(WRITE,NONE,2,raw_shll_l_ri,(RW4 r, IMM i)) LOWFUNC(WRITE,NONE,2,raw_sub_l_ri,(RW4 d, IMM i)) { - if(CHECK32(i)) { - SUB_rri(d, d, i); - } else { + if(CHECK32(i)) + { + SUB_rri(d, d, i); + } + else + { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK1, i); - if(i >> 16) - MOVT_ri16(REG_WORK1, i >> 16); + MOVW_ri16(REG_WORK1, i); + if(i >> 16) + MOVT_ri16(REG_WORK1, i >> 16); #else - uae_s32 offs = data_long_offs(i); - LDR_rRI(REG_WORK1, RPC_INDEX, offs); + uae_s32 offs = data_long_offs(i); + LDR_rRI(REG_WORK1, RPC_INDEX, offs); #endif - SUB_rrr(d, d, REG_WORK1); - } + SUB_rrr(d, d, REG_WORK1); + } } LENDFUNC(WRITE,NONE,2,raw_sub_l_ri,(RW4 d, IMM i)) LOWFUNC(WRITE,NONE,2,raw_sub_w_ri,(RW2 d, IMM i)) { - // This function is only called with i = 1 - // Caller needs flags... - - LSL_rri(REG_WORK2, d, 16); + // This function is only called with i = 1 + // Caller needs flags... - SUBS_rri(REG_WORK2, REG_WORK2, (i & 0xff) << 16); - PKHTB_rrrASRi(d, d, REG_WORK2, 16); + LSL_rri(REG_WORK2, d, 16); - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); + SUBS_rri(REG_WORK2, REG_WORK2, (i & 0xff) << 16); + PKHTB_rrrASRi(d, d, REG_WORK2, 16); + + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); } LENDFUNC(WRITE,NONE,2,raw_sub_w_ri,(RW2 d, IMM i)) STATIC_INLINE void raw_dec_sp(int off) { - if (off) { - if(CHECK32(off)) { - SUB_rri(RSP_INDEX, RSP_INDEX, off); - } else { - LDR_rRI(REG_WORK1, RPC_INDEX, 4); - SUB_rrr(RSP_INDEX, RSP_INDEX, REG_WORK1); - B_i(0); - //: - emit_long(off); - } - } + if (off) + { + if(CHECK32(off)) + { + SUB_rri(RSP_INDEX, RSP_INDEX, off); + } + else + { + LDR_rRI(REG_WORK1, RPC_INDEX, 4); + SUB_rrr(RSP_INDEX, RSP_INDEX, REG_WORK1); + B_i(0); + //: + emit_long(off); + } + } } STATIC_INLINE void raw_inc_sp(int off) { - if (off) { - if(CHECK32(off)) { - ADD_rri(RSP_INDEX, RSP_INDEX, off); - } else { - LDR_rRI(REG_WORK1, RPC_INDEX, 4); - ADD_rrr(RSP_INDEX, RSP_INDEX, REG_WORK1); - B_i(0); - //: - emit_long(off); - } - } + if (off) + { + if(CHECK32(off)) + { + ADD_rri(RSP_INDEX, RSP_INDEX, off); + } + else + { + LDR_rRI(REG_WORK1, RPC_INDEX, 4); + ADD_rrr(RSP_INDEX, RSP_INDEX, REG_WORK1); + B_i(0); + //: + emit_long(off); + } + } } -STATIC_INLINE void raw_push_regs_to_preserve(void) { - PUSH_REGS(PRESERVE_MASK); +STATIC_INLINE void raw_push_regs_to_preserve(void) +{ + PUSH_REGS(PRESERVE_MASK); } -STATIC_INLINE void raw_pop_preserved_regs(void) { - POP_REGS(PRESERVE_MASK); +STATIC_INLINE void raw_pop_preserved_regs(void) +{ + POP_REGS(PRESERVE_MASK); } STATIC_INLINE void raw_load_flagx(uae_u32 t, uae_u32 r) { - LDR_rRI(t, R_REGSTRUCT, 17 * 4); // X flag are next to 8 Dregs, 8 Aregs and CPSR in struct regstruct + LDR_rRI(t, R_REGSTRUCT, 17 * 4); // X flag are next to 8 Dregs, 8 Aregs and CPSR in struct regstruct } STATIC_INLINE void raw_flags_evicted(int r) { - live.state[FLAGTMP].status = INMEM; - live.state[FLAGTMP].realreg = -1; - /* We just "evicted" FLAGTMP. */ - if (live.nat[r].nholds != 1) { - /* Huh? */ - abort(); - } - live.nat[r].nholds = 0; + live.state[FLAGTMP].status = INMEM; + live.state[FLAGTMP].realreg = -1; + /* We just "evicted" FLAGTMP. */ + if (live.nat[r].nholds != 1) + { + /* Huh? */ + abort(); + } + live.nat[r].nholds = 0; } -STATIC_INLINE void raw_flags_init(void) { +STATIC_INLINE void raw_flags_init(void) +{ } STATIC_INLINE void raw_flags_to_reg(int r) { - MRS_CPSR(r); - STR_rRI(r, R_REGSTRUCT, 16 * 4); // Flags are next to 8 Dregs and 8 Aregs in struct regstruct - raw_flags_evicted(r); + MRS_CPSR(r); + STR_rRI(r, R_REGSTRUCT, 16 * 4); // Flags are next to 8 Dregs and 8 Aregs in struct regstruct + raw_flags_evicted(r); } STATIC_INLINE void raw_reg_to_flags(int r) { - MSR_CPSRf_r(r); + MSR_CPSRf_r(r); } STATIC_INLINE void raw_load_flagreg(uae_u32 t, uae_u32 r) { - LDR_rRI(t, R_REGSTRUCT, 16 * 4); // Flags are next to 8 Dregs and 8 Aregs in struct regstruct + LDR_rRI(t, R_REGSTRUCT, 16 * 4); // Flags are next to 8 Dregs and 8 Aregs in struct regstruct } /* %eax register is clobbered if target processor doesn't support fucomi */ @@ -464,17 +528,17 @@ STATIC_INLINE void raw_load_flagreg(uae_u32 t, uae_u32 r) STATIC_INLINE void raw_fflags_into_flags(int r) { - jit_unimplemented("raw_fflags_into_flags %x", r); + jit_unimplemented("raw_fflags_into_flags %x", r); } STATIC_INLINE void raw_fp_init(void) { #ifdef USE_JIT_FPU - int i; + int i; - for (i=0;i=1) { - live.tos-=2; - } - while (live.tos>=0) { - live.tos--; - } - raw_fp_init(); + while (live.tos>=1) + { + live.tos-=2; + } + while (live.tos>=0) + { + live.tos--; + } + raw_fp_init(); #endif } LOWFUNC(NONE,WRITE,2,raw_fmov_mr_drop,(MEMW m, FR r)) { - jit_unimplemented("raw_fmov_mr_drop %x %x", m, r); + jit_unimplemented("raw_fmov_mr_drop %x %x", m, r); } LENDFUNC(NONE,WRITE,2,raw_fmov_mr_drop,(MEMW m, FR r)) LOWFUNC(NONE,WRITE,2,raw_fmov_mr,(MEMW m, FR r)) { - jit_unimplemented("raw_fmov_mr %x %x", m, r); + jit_unimplemented("raw_fmov_mr %x %x", m, r); } LENDFUNC(NONE,WRITE,2,raw_fmov_mr,(MEMW m, FR r)) LOWFUNC(NONE,READ,2,raw_fmov_rm,(FW r, MEMR m)) { - jit_unimplemented("raw_fmov_rm %x %x", r, m); + jit_unimplemented("raw_fmov_rm %x %x", r, m); } LENDFUNC(NONE,READ,2,raw_fmov_rm,(FW r, MEMR m)) LOWFUNC(NONE,NONE,2,raw_fmov_rr,(FW d, FR s)) { - jit_unimplemented("raw_fmov_rr %x %x", d, s); + jit_unimplemented("raw_fmov_rr %x %x", d, s); } LENDFUNC(NONE,NONE,2,raw_fmov_rr,(FW d, FR s)) STATIC_INLINE void raw_emit_nop_filler(int nbytes) { - nbytes >>= 2; - while(nbytes--) { NOP(); } + nbytes >>= 2; + while(nbytes--) + { + NOP(); + } } STATIC_INLINE void raw_emit_nop(void) { - NOP(); + NOP(); } static void raw_init_cpu(void) { - align_loops = 0; - align_jumps = 0; + align_loops = 0; + align_jumps = 0; - raw_flags_init(); + raw_flags_init(); } // @@ -542,31 +611,31 @@ static void raw_init_cpu(void) // LOWFUNC(WRITE,NONE,2,raw_ADD_l_rr,(RW4 d, RR4 s)) { - ADD_rrr(d, d, s); + ADD_rrr(d, d, s); } LENDFUNC(WRITE,NONE,2,raw_ADD_l_rr,(RW4 d, RR4 s)) LOWFUNC(WRITE,NONE,2,raw_ADD_l_rri,(RW4 d, RR4 s, IMM i)) { - ADD_rri(d, s, i); + ADD_rri(d, s, i); } LENDFUNC(WRITE,NONE,2,raw_ADD_l_rri,(RW4 d, RR4 s, IMM i)) LOWFUNC(WRITE,NONE,2,raw_SUB_l_rri,(RW4 d, RR4 s, IMM i)) { - SUB_rri(d, s, i); + SUB_rri(d, s, i); } LENDFUNC(WRITE,NONE,2,raw_SUB_l_rri,(RW4 d, RR4 s, IMM i)) LOWFUNC(WRITE,NONE,2,raw_LDR_l_ri,(RW4 d, IMM i)) { #ifdef ARMV6T2 - MOVW_ri16(d, i); - if(i >> 16) - MOVT_ri16(d, i >> 16); + MOVW_ri16(d, i); + if(i >> 16) + MOVT_ri16(d, i >> 16); #else - uae_s32 offs = data_long_offs(i); - LDR_rRI(d, RPC_INDEX, offs); + uae_s32 offs = data_long_offs(i); + LDR_rRI(d, RPC_INDEX, offs); #endif } LENDFUNC(WRITE,NONE,2,raw_LDR_l_ri,(RW4 d, IMM i)) @@ -576,411 +645,458 @@ LENDFUNC(WRITE,NONE,2,raw_LDR_l_ri,(RW4 d, IMM i)) // LOWFUNC(WRITE,NONE,2,compemu_raw_MERGE_rr,(RW4 d, RR4 s)) { - PKHBT_rrr(d, d, s); + PKHBT_rrr(d, d, s); } LENDFUNC(WRITE,NONE,2,compemu_raw_MERGE_rr,(RW4 d, RR4 s)) LOWFUNC(WRITE,RMW,2,compemu_raw_add_l_mi,(IMM d, IMM s)) { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK1, d); - MOVT_ri16(REG_WORK1, d >> 16); - LDR_rR(REG_WORK2, REG_WORK1); + MOVW_ri16(REG_WORK1, d); + MOVT_ri16(REG_WORK1, d >> 16); + LDR_rR(REG_WORK2, REG_WORK1); - MOVW_ri16(REG_WORK3, s); - if(s >> 16) - MOVT_ri16(REG_WORK3, s >> 16); - ADD_rrr(REG_WORK2, REG_WORK2, REG_WORK3); + MOVW_ri16(REG_WORK3, s); + if(s >> 16) + MOVT_ri16(REG_WORK3, s >> 16); + ADD_rrr(REG_WORK2, REG_WORK2, REG_WORK3); - STR_rR(REG_WORK2, REG_WORK1); + STR_rR(REG_WORK2, REG_WORK1); #else - uae_s32 offs = data_long_offs(d); - LDR_rRI(REG_WORK1, RPC_INDEX, offs); - LDR_rR(REG_WORK2, REG_WORK1); + uae_s32 offs = data_long_offs(d); + LDR_rRI(REG_WORK1, RPC_INDEX, offs); + LDR_rR(REG_WORK2, REG_WORK1); - offs = data_long_offs(s); - LDR_rRI(REG_WORK3, RPC_INDEX, offs); + offs = data_long_offs(s); + LDR_rRI(REG_WORK3, RPC_INDEX, offs); - ADD_rrr(REG_WORK2, REG_WORK2, REG_WORK3); + ADD_rrr(REG_WORK2, REG_WORK2, REG_WORK3); - STR_rR(REG_WORK2, REG_WORK1); + STR_rR(REG_WORK2, REG_WORK1); #endif } LENDFUNC(WRITE,RMW,2,compemu_raw_add_l_mi,(IMM d, IMM s)) LOWFUNC(WRITE,NONE,2,compemu_raw_and_TAGMASK,(RW4 d)) { - // TAGMASK is 0x0000ffff + // TAGMASK is 0x0000ffff #ifdef ARMV6T2 - BFC_rii(d, 16, 31); + BFC_rii(d, 16, 31); #else - BIC_rri(d, d, 0x00ff0000); - BIC_rri(d, d, 0xff000000); + BIC_rri(d, d, 0x00ff0000); + BIC_rri(d, d, 0xff000000); #endif } LENDFUNC(WRITE,NONE,2,compemu_raw_and_TAGMASK,(RW4 d)) LOWFUNC(WRITE,READ,2,compemu_raw_cmp_l_mi,(MEMR d, IMM s)) { - clobber_flags(); - - #ifdef ARMV6T2 - if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) { - MOVW_ri16(REG_WORK2, s); - if(s >> 16) - MOVT_ri16(REG_WORK2, s >> 16); - uae_s32 idx = d - (uae_u32) & regs; - LDR_rRI(REG_WORK1, R_REGSTRUCT, idx); - } else { - MOVW_ri16(REG_WORK1, d); - MOVT_ri16(REG_WORK1, d >> 16); - LDR_rR(REG_WORK1, REG_WORK1); - MOVW_ri16(REG_WORK2, s); - if(s >> 16) - MOVT_ri16(REG_WORK2, s >> 16); - } -#else - if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) { - uae_s32 offs = data_long_offs(s); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); - uae_s32 idx = d - (uae_u32) & regs; - LDR_rRI(REG_WORK1, R_REGSTRUCT, idx); - } else { - data_check_end(8, 16); - uae_s32 offs = data_long_offs(d); - LDR_rRI(REG_WORK1, RPC_INDEX, offs); - LDR_rR(REG_WORK1, REG_WORK1); + clobber_flags(); - offs = data_long_offs(s); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); - } +#ifdef ARMV6T2 + if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) + { + MOVW_ri16(REG_WORK2, s); + if(s >> 16) + MOVT_ri16(REG_WORK2, s >> 16); + uae_s32 idx = d - (uae_u32) & regs; + LDR_rRI(REG_WORK1, R_REGSTRUCT, idx); + } + else + { + MOVW_ri16(REG_WORK1, d); + MOVT_ri16(REG_WORK1, d >> 16); + LDR_rR(REG_WORK1, REG_WORK1); + MOVW_ri16(REG_WORK2, s); + if(s >> 16) + MOVT_ri16(REG_WORK2, s >> 16); + } +#else + if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) + { + uae_s32 offs = data_long_offs(s); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); + uae_s32 idx = d - (uae_u32) & regs; + LDR_rRI(REG_WORK1, R_REGSTRUCT, idx); + } + else + { + data_check_end(8, 16); + uae_s32 offs = data_long_offs(d); + LDR_rRI(REG_WORK1, RPC_INDEX, offs); + LDR_rR(REG_WORK1, REG_WORK1); + + offs = data_long_offs(s); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); + } #endif - CMP_rr(REG_WORK1, REG_WORK2); + CMP_rr(REG_WORK1, REG_WORK2); } LENDFUNC(WRITE,READ,2,compemu_raw_cmp_l_mi,(MEMR d, IMM s)) LOWFUNC(NONE,NONE,3,compemu_raw_lea_l_brr,(W4 d, RR4 s, IMM offset)) { - if(CHECK32(offset)) { - ADD_rri(d, s, offset); - } else { + if(CHECK32(offset)) + { + ADD_rri(d, s, offset); + } + else + { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK1, offset); - if(offset >> 16) - MOVT_ri16(REG_WORK1, offset >> 16); + MOVW_ri16(REG_WORK1, offset); + if(offset >> 16) + MOVT_ri16(REG_WORK1, offset >> 16); #else - uae_s32 offs = data_long_offs(offset); - LDR_rRI(REG_WORK1, RPC_INDEX, offs); + uae_s32 offs = data_long_offs(offset); + LDR_rRI(REG_WORK1, RPC_INDEX, offs); #endif - ADD_rrr(d, s, REG_WORK1); - } + ADD_rrr(d, s, REG_WORK1); + } } LENDFUNC(NONE,NONE,3,compemu_raw_lea_l_brr,(W4 d, RR4 s, IMM offset)) LOWFUNC(NONE,WRITE,2,compemu_raw_mov_b_mr,(IMM d, RR1 s)) { - if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) { - uae_s32 idx = d - (uae_u32) & regs; - STRB_rRI(s, R_REGSTRUCT, idx); - } else { + if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) + { + uae_s32 idx = d - (uae_u32) & regs; + STRB_rRI(s, R_REGSTRUCT, idx); + } + else + { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK1, d); - MOVT_ri16(REG_WORK1, d >> 16); + MOVW_ri16(REG_WORK1, d); + MOVT_ri16(REG_WORK1, d >> 16); #else - uae_s32 offs = data_long_offs(d); - LDR_rRI(REG_WORK1, RPC_INDEX, offs); + uae_s32 offs = data_long_offs(d); + LDR_rRI(REG_WORK1, RPC_INDEX, offs); #endif - STRB_rR(s, REG_WORK1); - } + STRB_rR(s, REG_WORK1); + } } LENDFUNC(NONE,WRITE,2,compemu_raw_mov_b_mr,(IMM d, RR1 s)) LOWFUNC(NONE,WRITE,2,compemu_raw_mov_l_mi,(MEMW d, IMM s)) { #ifdef ARMV6T2 - if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) { - MOVW_ri16(REG_WORK2, s); - if(s >> 16) - MOVT_ri16(REG_WORK2, s >> 16); - uae_s32 idx = d - (uae_u32) & regs; - STR_rRI(REG_WORK2, R_REGSTRUCT, idx); - } else { - MOVW_ri16(REG_WORK1, d); - MOVT_ri16(REG_WORK1, d >> 16); - MOVW_ri16(REG_WORK2, s); - if(s >> 16) - MOVT_ri16(REG_WORK2, s >> 16); - STR_rR(REG_WORK2, REG_WORK1); - } + if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) + { + MOVW_ri16(REG_WORK2, s); + if(s >> 16) + MOVT_ri16(REG_WORK2, s >> 16); + uae_s32 idx = d - (uae_u32) & regs; + STR_rRI(REG_WORK2, R_REGSTRUCT, idx); + } + else + { + MOVW_ri16(REG_WORK1, d); + MOVT_ri16(REG_WORK1, d >> 16); + MOVW_ri16(REG_WORK2, s); + if(s >> 16) + MOVT_ri16(REG_WORK2, s >> 16); + STR_rR(REG_WORK2, REG_WORK1); + } #else - if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) { - uae_s32 offs = data_long_offs(s); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); - uae_s32 idx = d - (uae_u32) & regs; - STR_rRI(REG_WORK2, R_REGSTRUCT, idx); - } else { - data_check_end(8, 12); - uae_s32 offs = data_long_offs(d); - LDR_rRI(REG_WORK1, RPC_INDEX, offs); - offs = data_long_offs(s); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); - STR_rR(REG_WORK2, REG_WORK1); - } + if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) + { + uae_s32 offs = data_long_offs(s); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); + uae_s32 idx = d - (uae_u32) & regs; + STR_rRI(REG_WORK2, R_REGSTRUCT, idx); + } + else + { + data_check_end(8, 12); + uae_s32 offs = data_long_offs(d); + LDR_rRI(REG_WORK1, RPC_INDEX, offs); + offs = data_long_offs(s); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); + STR_rR(REG_WORK2, REG_WORK1); + } #endif } LENDFUNC(NONE,WRITE,2,compemu_raw_mov_l_mi,(MEMW d, IMM s)) LOWFUNC(NONE,WRITE,2,compemu_raw_mov_l_mr,(IMM d, RR4 s)) { - if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) { - uae_s32 idx = d - (uae_u32) & regs; - STR_rRI(s, R_REGSTRUCT, idx); - } else { + if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) + { + uae_s32 idx = d - (uae_u32) & regs; + STR_rRI(s, R_REGSTRUCT, idx); + } + else + { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK1, d); - MOVT_ri16(REG_WORK1, d >> 16); + MOVW_ri16(REG_WORK1, d); + MOVT_ri16(REG_WORK1, d >> 16); #else - uae_s32 offs = data_long_offs(d); - LDR_rRI(REG_WORK1, RPC_INDEX, offs); + uae_s32 offs = data_long_offs(d); + LDR_rRI(REG_WORK1, RPC_INDEX, offs); #endif - STR_rR(s, REG_WORK1); - } + STR_rR(s, REG_WORK1); + } } LENDFUNC(NONE,WRITE,2,compemu_raw_mov_l_mr,(IMM d, RR4 s)) LOWFUNC(NONE,NONE,2,compemu_raw_mov_l_ri,(W4 d, IMM s)) { #ifdef ARMV6T2 - MOVW_ri16(d, s); - if(s >> 16) - MOVT_ri16(d, s >> 16); + MOVW_ri16(d, s); + if(s >> 16) + MOVT_ri16(d, s >> 16); #else - uae_s32 offs = data_long_offs(s); - LDR_rRI(d, RPC_INDEX, offs); + uae_s32 offs = data_long_offs(s); + LDR_rRI(d, RPC_INDEX, offs); #endif } LENDFUNC(NONE,NONE,2,compemu_raw_mov_l_ri,(W4 d, IMM s)) LOWFUNC(NONE,READ,2,compemu_raw_mov_l_rm,(W4 d, MEMR s)) { - if(s >= (uae_u32) ®s && s < ((uae_u32) ®s) + sizeof(struct regstruct)) { - uae_s32 idx = s - (uae_u32) & regs; - LDR_rRI(d, R_REGSTRUCT, idx); - } else { + if(s >= (uae_u32) ®s && s < ((uae_u32) ®s) + sizeof(struct regstruct)) + { + uae_s32 idx = s - (uae_u32) & regs; + LDR_rRI(d, R_REGSTRUCT, idx); + } + else + { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK1, s); - MOVT_ri16(REG_WORK1, s >> 16); + MOVW_ri16(REG_WORK1, s); + MOVT_ri16(REG_WORK1, s >> 16); #else - uae_s32 offs = data_long_offs(s); - LDR_rRI(REG_WORK1, RPC_INDEX, offs); + uae_s32 offs = data_long_offs(s); + LDR_rRI(REG_WORK1, RPC_INDEX, offs); #endif - LDR_rR(d, REG_WORK1); - } + LDR_rR(d, REG_WORK1); + } } LENDFUNC(NONE,READ,2,compemu_raw_mov_l_rm,(W4 d, MEMR s)) LOWFUNC(NONE,NONE,2,compemu_raw_mov_l_rr,(W4 d, RR4 s)) { - MOV_rr(d, s); + MOV_rr(d, s); } LENDFUNC(NONE,NONE,2,compemu_raw_mov_l_rr,(W4 d, RR4 s)) LOWFUNC(NONE,WRITE,2,compemu_raw_mov_w_mr,(IMM d, RR2 s)) { - if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) { - uae_s32 idx = d - (uae_u32) & regs; - STRH_rRI(s, R_REGSTRUCT, idx); - } else { + if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) + { + uae_s32 idx = d - (uae_u32) & regs; + STRH_rRI(s, R_REGSTRUCT, idx); + } + else + { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK1, d); - MOVT_ri16(REG_WORK1, d >> 16); + MOVW_ri16(REG_WORK1, d); + MOVT_ri16(REG_WORK1, d >> 16); #else - uae_s32 offs = data_long_offs(d); - LDR_rRI(REG_WORK1, RPC_INDEX, offs); + uae_s32 offs = data_long_offs(d); + LDR_rRI(REG_WORK1, RPC_INDEX, offs); #endif - STRH_rR(s, REG_WORK1); - } + STRH_rR(s, REG_WORK1); + } } LENDFUNC(NONE,WRITE,2,compemu_raw_mov_w_mr,(IMM d, RR2 s)) LOWFUNC(WRITE,RMW,2,compemu_raw_sub_l_mi,(MEMRW d, IMM s)) { - clobber_flags(); + clobber_flags(); - if(CHECK32(s)) { - if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) { - uae_s32 idx = d - (uae_u32) & regs; - LDR_rRI(REG_WORK2, R_REGSTRUCT, idx); - SUBS_rri(REG_WORK2, REG_WORK2, s); - STR_rRI(REG_WORK2, R_REGSTRUCT, idx); - } else { + if(CHECK32(s)) + { + if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) + { + uae_s32 idx = d - (uae_u32) & regs; + LDR_rRI(REG_WORK2, R_REGSTRUCT, idx); + SUBS_rri(REG_WORK2, REG_WORK2, s); + STR_rRI(REG_WORK2, R_REGSTRUCT, idx); + } + else + { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK1, d); - MOVT_ri16(REG_WORK1, d >> 16); + MOVW_ri16(REG_WORK1, d); + MOVT_ri16(REG_WORK1, d >> 16); #else - uae_s32 offs = data_long_offs(d); - LDR_rRI(REG_WORK1, RPC_INDEX, offs); + uae_s32 offs = data_long_offs(d); + LDR_rRI(REG_WORK1, RPC_INDEX, offs); #endif - LDR_rR(REG_WORK2, REG_WORK1); - SUBS_rri(REG_WORK2, REG_WORK2, s); - STR_rR(REG_WORK2, REG_WORK1); + LDR_rR(REG_WORK2, REG_WORK1); + SUBS_rri(REG_WORK2, REG_WORK2, s); + STR_rR(REG_WORK2, REG_WORK1); + } } - } else { - if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) { - uae_s32 idx = d - (uae_u32) & regs; - LDR_rRI(REG_WORK2, R_REGSTRUCT, idx); - + else + { + if(d >= (uae_u32) ®s && d < ((uae_u32) ®s) + sizeof(struct regstruct)) + { + uae_s32 idx = d - (uae_u32) & regs; + LDR_rRI(REG_WORK2, R_REGSTRUCT, idx); + #ifdef ARMV6T2 - MOVW_ri16(REG_WORK1, s); - if(s >> 16) - MOVT_ri16(REG_WORK1, s >> 16); + MOVW_ri16(REG_WORK1, s); + if(s >> 16) + MOVT_ri16(REG_WORK1, s >> 16); #else - uae_s32 offs = data_long_offs(s); - LDR_rRI(REG_WORK1, RPC_INDEX, offs); + uae_s32 offs = data_long_offs(s); + LDR_rRI(REG_WORK1, RPC_INDEX, offs); #endif - SUBS_rrr(REG_WORK2, REG_WORK2, REG_WORK1); - STR_rRI(REG_WORK2, R_REGSTRUCT, idx); - } else { + SUBS_rrr(REG_WORK2, REG_WORK2, REG_WORK1); + STR_rRI(REG_WORK2, R_REGSTRUCT, idx); + } + else + { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK1, d); - MOVT_ri16(REG_WORK1, d >> 16); - LDR_rR(REG_WORK2, REG_WORK1); - - MOVW_ri16(REG_WORK3, s); - if(s >> 16) - MOVT_ri16(REG_WORK3, s >> 16); + MOVW_ri16(REG_WORK1, d); + MOVT_ri16(REG_WORK1, d >> 16); + LDR_rR(REG_WORK2, REG_WORK1); + + MOVW_ri16(REG_WORK3, s); + if(s >> 16) + MOVT_ri16(REG_WORK3, s >> 16); #else - uae_s32 offs = data_long_offs(d); - LDR_rRI(REG_WORK1, RPC_INDEX, offs); - LDR_rR(REG_WORK2, REG_WORK1); - - offs = data_long_offs(s); - LDR_rRI(REG_WORK3, RPC_INDEX, offs); + uae_s32 offs = data_long_offs(d); + LDR_rRI(REG_WORK1, RPC_INDEX, offs); + LDR_rR(REG_WORK2, REG_WORK1); + + offs = data_long_offs(s); + LDR_rRI(REG_WORK3, RPC_INDEX, offs); #endif - - SUBS_rrr(REG_WORK2, REG_WORK2, REG_WORK3); - STR_rR(REG_WORK2, REG_WORK1); + + SUBS_rrr(REG_WORK2, REG_WORK2, REG_WORK3); + STR_rR(REG_WORK2, REG_WORK1); + } } - } } LENDFUNC(WRITE,RMW,2,compemu_raw_sub_l_mi,(MEMRW d, IMM s)) LOWFUNC(WRITE,NONE,2,compemu_raw_test_l_rr,(RR4 d, RR4 s)) { - clobber_flags(); - TST_rr(d, s); + clobber_flags(); + TST_rr(d, s); } LENDFUNC(WRITE,NONE,2,compemu_raw_test_l_rr,(RR4 d, RR4 s)) STATIC_INLINE void compemu_raw_call(uae_u32 t) { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK1, t); - MOVT_ri16(REG_WORK1, t >> 16); + MOVW_ri16(REG_WORK1, t); + MOVT_ri16(REG_WORK1, t >> 16); #else - uae_s32 offs = data_long_offs(t); - LDR_rRI(REG_WORK1, RPC_INDEX, offs); + uae_s32 offs = data_long_offs(t); + LDR_rRI(REG_WORK1, RPC_INDEX, offs); #endif - PUSH(RLR_INDEX); - BLX_r(REG_WORK1); - POP(RLR_INDEX); + PUSH(RLR_INDEX); + BLX_r(REG_WORK1); + POP(RLR_INDEX); } STATIC_INLINE void compemu_raw_call_r(RR4 r) { - PUSH(RLR_INDEX); - BLX_r(r); - POP(RLR_INDEX); + PUSH(RLR_INDEX); + BLX_r(r); + POP(RLR_INDEX); } STATIC_INLINE void compemu_raw_jcc_l_oponly(int cc) { - switch (cc) { - case 9: // LS - BEQ_i(0); // beq - BCC_i(1); // bcc + switch (cc) + { + case 9: // LS + BEQ_i(0); // beq + BCC_i(1); // bcc - //: - LDR_rRI(RPC_INDEX, RPC_INDEX, -4); // ldr pc, [pc] ; - break; + //: + LDR_rRI(RPC_INDEX, RPC_INDEX, -4); // ldr pc, [pc] ; + break; - case 8: // HI - BEQ_i(2); // beq - BCS_i(1); // bcs + case 8: // HI + BEQ_i(2); // beq + BCS_i(1); // bcs - //: - LDR_rRI(RPC_INDEX, RPC_INDEX, -4); // ldr pc, [pc] ; - break; + //: + LDR_rRI(RPC_INDEX, RPC_INDEX, -4); // ldr pc, [pc] ; + break; - default: - CC_B_i(cc^1, 1); - LDR_rRI(RPC_INDEX, RPC_INDEX, -4); - break; - } - // emit of target will be done by caller + default: + CC_B_i(cc^1, 1); + LDR_rRI(RPC_INDEX, RPC_INDEX, -4); + break; + } + // emit of target will be done by caller } STATIC_INLINE void compemu_raw_jl(uae_u32 t) { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK1, t); - MOVT_ri16(REG_WORK1, t >> 16); - CC_BX_r(NATIVE_CC_LT, REG_WORK1); + MOVW_ri16(REG_WORK1, t); + MOVT_ri16(REG_WORK1, t >> 16); + CC_BX_r(NATIVE_CC_LT, REG_WORK1); #else - uae_s32 offs = data_long_offs(t); - CC_LDR_rRI(NATIVE_CC_LT, RPC_INDEX, RPC_INDEX, offs); + uae_s32 offs = data_long_offs(t); + CC_LDR_rRI(NATIVE_CC_LT, RPC_INDEX, RPC_INDEX, offs); #endif } STATIC_INLINE void compemu_raw_jmp(uae_u32 t) { - LDR_rRI(RPC_INDEX, RPC_INDEX, -4); - emit_long(t); + LDR_rRI(RPC_INDEX, RPC_INDEX, -4); + emit_long(t); } STATIC_INLINE void compemu_raw_jmp_m_indexed(uae_u32 base, uae_u32 r, uae_u32 m) { - int shft; - switch(m) { - case 1: shft=0; break; - case 2: shft=1; break; - case 4: shft=2; break; - case 8: shft=3; break; - default: abort(); - } + int shft; + switch(m) + { + case 1: + shft=0; + break; + case 2: + shft=1; + break; + case 4: + shft=2; + break; + case 8: + shft=3; + break; + default: + abort(); + } - LDR_rR(REG_WORK1, RPC_INDEX); - LDR_rRR_LSLi(RPC_INDEX, REG_WORK1, r, shft); - emit_long(base); + LDR_rR(REG_WORK1, RPC_INDEX); + LDR_rRR_LSLi(RPC_INDEX, REG_WORK1, r, shft); + emit_long(base); } STATIC_INLINE void compemu_raw_jmp_r(RR4 r) { - BX_r(r); + BX_r(r); } STATIC_INLINE void compemu_raw_jnz(uae_u32 t) { #ifdef ARMV6T2 - BEQ_i(1); - LDR_rRI(RPC_INDEX, RPC_INDEX, -4); - emit_long(t); + BEQ_i(1); + LDR_rRI(RPC_INDEX, RPC_INDEX, -4); + emit_long(t); #else - uae_s32 offs = data_long_offs(t); - CC_LDR_rRI(NATIVE_CC_NE, RPC_INDEX, RPC_INDEX, offs); + uae_s32 offs = data_long_offs(t); + CC_LDR_rRI(NATIVE_CC_NE, RPC_INDEX, RPC_INDEX, offs); #endif } STATIC_INLINE void compemu_raw_jz_b_oponly(void) { - BEQ_i(0); // Real distance set by caller + BEQ_i(0); // Real distance set by caller } STATIC_INLINE void compemu_raw_branch(IMM d) { - B_i((d >> 2) - 1); + B_i((d >> 2) - 1); } @@ -989,11 +1105,11 @@ STATIC_INLINE void compemu_raw_branch(IMM d) LOWFUNC(NONE,NONE,1,compemu_raw_init_r_regstruct,(IMM s)) { #ifdef ARMV6T2 - MOVW_ri16(R_REGSTRUCT, s); - MOVT_ri16(R_REGSTRUCT, s >> 16); + MOVW_ri16(R_REGSTRUCT, s); + MOVT_ri16(R_REGSTRUCT, s >> 16); #else - uae_s32 offs = data_long_offs(s); - LDR_rRI(R_REGSTRUCT, RPC_INDEX, offs); + uae_s32 offs = data_long_offs(s); + LDR_rRI(R_REGSTRUCT, RPC_INDEX, offs); #endif } LENDFUNC(NONE,NONE,1,compemu_raw_init_r_regstruct,(IMM s)) @@ -1002,77 +1118,83 @@ LENDFUNC(NONE,NONE,1,compemu_raw_init_r_regstruct,(IMM s)) // Handle end of compiled block LOWFUNC(NONE,NONE,2,compemu_raw_endblock_pc_inreg,(RR4 rr_pc, IMM cycles)) { - clobber_flags(); + clobber_flags(); - // countdown -= scaled_cycles(totcycles); - uae_s32 offs = (uae_u32)&countdown - (uae_u32)®s; - LDR_rRI(REG_WORK1, R_REGSTRUCT, offs); - if(CHECK32(cycles)) { - SUBS_rri(REG_WORK1, REG_WORK1, cycles); - } else { + // countdown -= scaled_cycles(totcycles); + uae_s32 offs = (uae_u32)&countdown - (uae_u32)®s; + LDR_rRI(REG_WORK1, R_REGSTRUCT, offs); + if(CHECK32(cycles)) + { + SUBS_rri(REG_WORK1, REG_WORK1, cycles); + } + else + { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK2, cycles); - if(cycles >> 16) - MOVT_ri16(REG_WORK2, cycles >> 16); + MOVW_ri16(REG_WORK2, cycles); + if(cycles >> 16) + MOVT_ri16(REG_WORK2, cycles >> 16); #else - int offs2 = data_long_offs(cycles); - LDR_rRI(REG_WORK2, RPC_INDEX, offs2); + int offs2 = data_long_offs(cycles); + LDR_rRI(REG_WORK2, RPC_INDEX, offs2); #endif - SUBS_rrr(REG_WORK1, REG_WORK1, REG_WORK2); - } - STR_rRI(REG_WORK1, R_REGSTRUCT, offs); + SUBS_rrr(REG_WORK1, REG_WORK1, REG_WORK2); + } + STR_rRI(REG_WORK1, R_REGSTRUCT, offs); #ifdef ARMV6T2 - CC_B_i(NATIVE_CC_MI, 2); - BFC_rii(rr_pc, 16, 31); // apply TAGMASK + CC_B_i(NATIVE_CC_MI, 2); + BFC_rii(rr_pc, 16, 31); // apply TAGMASK #else - CC_B_i(NATIVE_CC_MI, 3); - BIC_rri(rr_pc, rr_pc, 0x00ff0000); - BIC_rri(rr_pc, rr_pc, 0xff000000); + CC_B_i(NATIVE_CC_MI, 3); + BIC_rri(rr_pc, rr_pc, 0x00ff0000); + BIC_rri(rr_pc, rr_pc, 0xff000000); #endif - LDR_rRI(REG_WORK1, RPC_INDEX, 4); // - LDR_rRR_LSLi(RPC_INDEX, REG_WORK1, rr_pc, 2); + LDR_rRI(REG_WORK1, RPC_INDEX, 4); // + LDR_rRR_LSLi(RPC_INDEX, REG_WORK1, rr_pc, 2); - LDR_rRI(RPC_INDEX, RPC_INDEX, 0); // + LDR_rRI(RPC_INDEX, RPC_INDEX, 0); // - emit_long((uintptr)cache_tags); - emit_long((uintptr)popall_do_nothing); + emit_long((uintptr)cache_tags); + emit_long((uintptr)popall_do_nothing); } LENDFUNC(NONE,NONE,2,compemu_raw_endblock_pc_inreg,(RR4 rr_pc, IMM cycles)) LOWFUNC(NONE,NONE,2,compemu_raw_endblock_pc_isconst,(IMM cycles, IMM v)) { - clobber_flags(); + clobber_flags(); - // countdown -= scaled_cycles(totcycles); - uae_s32 offs = (uae_u32)&countdown - (uae_u32)®s; - LDR_rRI(REG_WORK1, R_REGSTRUCT, offs); - if(CHECK32(cycles)) { - SUBS_rri(REG_WORK1, REG_WORK1, cycles); - } else { + // countdown -= scaled_cycles(totcycles); + uae_s32 offs = (uae_u32)&countdown - (uae_u32)®s; + LDR_rRI(REG_WORK1, R_REGSTRUCT, offs); + if(CHECK32(cycles)) + { + SUBS_rri(REG_WORK1, REG_WORK1, cycles); + } + else + { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK2, cycles); - if(cycles >> 16) - MOVT_ri16(REG_WORK2, cycles >> 16); + MOVW_ri16(REG_WORK2, cycles); + if(cycles >> 16) + MOVT_ri16(REG_WORK2, cycles >> 16); #else - int offs2 = data_long_offs(cycles); - LDR_rRI(REG_WORK2, RPC_INDEX, offs2); + int offs2 = data_long_offs(cycles); + LDR_rRI(REG_WORK2, RPC_INDEX, offs2); #endif - SUBS_rrr(REG_WORK1, REG_WORK1, REG_WORK2); - } - STR_rRI(REG_WORK1, R_REGSTRUCT, offs); + SUBS_rrr(REG_WORK1, REG_WORK1, REG_WORK2); + } + STR_rRI(REG_WORK1, R_REGSTRUCT, offs); - CC_LDR_rRI(NATIVE_CC_MI^1, RPC_INDEX, RPC_INDEX, 16); // - - LDR_rRI(REG_WORK1, RPC_INDEX, 4); // - offs = (uae_u32)®s.pc_p - (uae_u32)®s; - STR_rRI(REG_WORK1, R_REGSTRUCT, offs); - LDR_rRI(RPC_INDEX, RPC_INDEX, 0); // + CC_LDR_rRI(NATIVE_CC_MI^1, RPC_INDEX, RPC_INDEX, 16); // - emit_long(v); - emit_long((uintptr)popall_do_nothing); - - // + LDR_rRI(REG_WORK1, RPC_INDEX, 4); // + offs = (uae_u32)®s.pc_p - (uae_u32)®s; + STR_rRI(REG_WORK1, R_REGSTRUCT, offs); + LDR_rRI(RPC_INDEX, RPC_INDEX, 0); // + + emit_long(v); + emit_long((uintptr)popall_do_nothing); + + // } LENDFUNC(NONE,NONE,2,compemu_raw_endblock_pc_isconst,(IMM cycles, IMM v)) diff --git a/src/jit/codegen_arm.h b/src/jit/codegen_arm.h index 2532d3b2..387e70f8 100644 --- a/src/jit/codegen_arm.h +++ b/src/jit/codegen_arm.h @@ -2,7 +2,7 @@ * compiler/codegen_arm.h - IA-32 and AMD64 code generator * * Copyright (c) 2013 Jens Heitmann of ARAnyM dev team (see AUTHORS) - * + * * Inspired by Christian Bauer's Basilisk II * * This file is part of the ARAnyM project which builds a new and powerful @@ -174,29 +174,31 @@ /* Branch instructions */ #ifndef __ANDROID__ -enum { - _B, _BL, _BLX, _BX, _BXJ +enum +{ + _B, _BL, _BLX, _BX, _BXJ }; #endif /* Data processing instructions */ -enum { - _AND = 0, - _EOR, - _SUB, - _RSB, - _ADD, - _ADC, - _SBC, - _RSC, - _TST, - _TEQ, - _CMP, - _CMN, - _ORR, - _MOV, - _BIC, - _MVN +enum +{ + _AND = 0, + _EOR, + _SUB, + _RSB, + _ADD, + _ADC, + _SBC, + _RSC, + _TST, + _TEQ, + _CMP, + _CMN, + _ORR, + _MOV, + _BIC, + _MVN }; /* Single instruction Multiple Data (SIMD) instructions */ diff --git a/src/jit/compemu.cpp b/src/jit/compemu.cpp index 9ffa905b..cd994582 100644 --- a/src/jit/compemu.cpp +++ b/src/jit/compemu.cpp @@ -27,30424 +27,43740 @@ extern void comp_fbcc_opp(); #ifdef PART_1 uae_u32 REGPARAM2 op_0_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_18_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_28_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_38_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_39_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3c_0_comp_ff(uae_u32 opcode) /* ORSR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - make_flags_live(); - jff_ORSR(ARM_CCR_MAP[src & 0xF], ((src & 0x10) >> 4)); - live_flags(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + make_flags_live(); + jff_ORSR(ARM_CCR_MAP[src & 0xF], ((src & 0x10) >> 4)); + live_flags(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_40_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_58_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_60_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_68_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_70_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_78_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_79_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_80_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_98_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a0_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a8_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b8_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b9_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_100_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ make_flags_live(); - jff_BTST_l(dst,src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + make_flags_live(); + jff_BTST_l(dst,src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_110_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BTST_b(dst,src); - live_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BTST_b(dst,src); + live_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_118_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); -{ make_flags_live(); - jff_BTST_b(dst,src); - live_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + { + make_flags_live(); + jff_BTST_b(dst,src); + live_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_120_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BTST_b(dst,src); - live_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BTST_b(dst,src); + live_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_128_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BTST_b(dst,src); - live_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BTST_b(dst,src); + live_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_130_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BTST_b(dst,src); - live_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BTST_b(dst,src); + live_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_138_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BTST_b(dst,src); - live_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BTST_b(dst,src); + live_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_139_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BTST_b(dst,src); - live_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BTST_b(dst,src); + live_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13a_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_s32 dstreg = 2; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(dsta,address+PC16off); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BTST_b(dst,src); - live_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_s32 dstreg = 2; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(dsta,address+PC16off); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BTST_b(dst,src); + live_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13b_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_s32 dstreg = 3; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int pctmp=scratchie++; - int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BTST_b(dst,src); - live_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_s32 dstreg = 3; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int pctmp=scratchie++; + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BTST_b(dst,src); + live_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13c_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst = scratchie++; - mov_l_ri(dst,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ make_flags_live(); - jff_BTST_b(dst,src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst = scratchie++; + mov_l_ri(dst,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + make_flags_live(); + jff_BTST_b(dst,src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_140_0_comp_ff(uae_u32 opcode) /* BCHG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ make_flags_live(); - jff_BCHG_l(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + make_flags_live(); + jff_BCHG_l(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_150_0_comp_ff(uae_u32 opcode) /* BCHG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCHG_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCHG_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_158_0_comp_ff(uae_u32 opcode) /* BCHG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); -{ make_flags_live(); - jff_BCHG_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + { + make_flags_live(); + jff_BCHG_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_160_0_comp_ff(uae_u32 opcode) /* BCHG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCHG_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCHG_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_168_0_comp_ff(uae_u32 opcode) /* BCHG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCHG_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCHG_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_170_0_comp_ff(uae_u32 opcode) /* BCHG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCHG_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCHG_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_178_0_comp_ff(uae_u32 opcode) /* BCHG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCHG_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCHG_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_179_0_comp_ff(uae_u32 opcode) /* BCHG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCHG_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCHG_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_180_0_comp_ff(uae_u32 opcode) /* BCLR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ make_flags_live(); - jff_BCLR_l(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + make_flags_live(); + jff_BCLR_l(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_190_0_comp_ff(uae_u32 opcode) /* BCLR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCLR_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCLR_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_198_0_comp_ff(uae_u32 opcode) /* BCLR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); -{ make_flags_live(); - jff_BCLR_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + { + make_flags_live(); + jff_BCLR_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1a0_0_comp_ff(uae_u32 opcode) /* BCLR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCLR_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCLR_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1a8_0_comp_ff(uae_u32 opcode) /* BCLR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCLR_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCLR_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1b0_0_comp_ff(uae_u32 opcode) /* BCLR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCLR_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCLR_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1b8_0_comp_ff(uae_u32 opcode) /* BCLR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCLR_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCLR_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1b9_0_comp_ff(uae_u32 opcode) /* BCLR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCLR_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCLR_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1c0_0_comp_ff(uae_u32 opcode) /* BSET */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ make_flags_live(); - jff_BSET_l(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + make_flags_live(); + jff_BSET_l(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1d0_0_comp_ff(uae_u32 opcode) /* BSET */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BSET_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BSET_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1d8_0_comp_ff(uae_u32 opcode) /* BSET */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); -{ make_flags_live(); - jff_BSET_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + { + make_flags_live(); + jff_BSET_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1e0_0_comp_ff(uae_u32 opcode) /* BSET */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BSET_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BSET_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1e8_0_comp_ff(uae_u32 opcode) /* BSET */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BSET_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BSET_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1f0_0_comp_ff(uae_u32 opcode) /* BSET */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BSET_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BSET_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1f8_0_comp_ff(uae_u32 opcode) /* BSET */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BSET_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BSET_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1f9_0_comp_ff(uae_u32 opcode) /* BSET */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BSET_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BSET_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_200_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_210_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_218_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_220_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_228_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_230_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_238_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_239_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23c_0_comp_ff(uae_u32 opcode) /* ANDSR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - make_flags_live(); - jff_ANDSR(ARM_CCR_MAP[src & 0xF], (src & 0x10)); - live_flags(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + make_flags_live(); + jff_ANDSR(ARM_CCR_MAP[src & 0xF], (src & 0x10)); + live_flags(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_240_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_250_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_258_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_260_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_268_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_270_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_278_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_279_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_280_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_290_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_298_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2a0_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2a8_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2b0_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2b8_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2b9_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_400_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_410_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_418_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_420_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_428_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_430_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_438_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_439_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_440_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_450_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_458_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_460_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_468_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_470_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_478_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_479_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_480_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_490_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_498_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a0_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a8_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4b0_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4b8_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4b9_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_600_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_610_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_618_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_620_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_628_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_630_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_638_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_639_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_640_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_650_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_658_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_660_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_668_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_670_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_678_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_679_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_680_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_690_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_698_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6a0_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6a8_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6b0_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6b8_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6b9_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_800_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; -{ make_flags_live(); - jff_BTST_l(dst,src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + { + make_flags_live(); + jff_BTST_l(dst,src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_810_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BTST_b(dst,src); - live_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BTST_b(dst,src); + live_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_818_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); -{ make_flags_live(); - jff_BTST_b(dst,src); - live_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + { + make_flags_live(); + jff_BTST_b(dst,src); + live_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_820_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BTST_b(dst,src); - live_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BTST_b(dst,src); + live_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_828_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BTST_b(dst,src); - live_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BTST_b(dst,src); + live_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_830_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BTST_b(dst,src); - live_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BTST_b(dst,src); + live_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_838_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BTST_b(dst,src); - live_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BTST_b(dst,src); + live_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_839_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BTST_b(dst,src); - live_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BTST_b(dst,src); + live_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_83a_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_s32 dstreg = 2; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(dsta,address+PC16off); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BTST_b(dst,src); - live_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 2; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(dsta,address+PC16off); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BTST_b(dst,src); + live_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_83b_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_s32 dstreg = 3; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int pctmp=scratchie++; - int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BTST_b(dst,src); - live_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 3; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int pctmp=scratchie++; + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BTST_b(dst,src); + live_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_83c_0_comp_ff(uae_u32 opcode) /* BTST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst = scratchie++; - mov_l_ri(dst,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ make_flags_live(); - jff_BTST_b(dst,src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst = scratchie++; + mov_l_ri(dst,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + make_flags_live(); + jff_BTST_b(dst,src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_840_0_comp_ff(uae_u32 opcode) /* BCHG */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; -{ make_flags_live(); - jff_BCHG_l(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + { + make_flags_live(); + jff_BCHG_l(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_850_0_comp_ff(uae_u32 opcode) /* BCHG */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCHG_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCHG_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_858_0_comp_ff(uae_u32 opcode) /* BCHG */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); -{ make_flags_live(); - jff_BCHG_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + { + make_flags_live(); + jff_BCHG_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_860_0_comp_ff(uae_u32 opcode) /* BCHG */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCHG_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCHG_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_868_0_comp_ff(uae_u32 opcode) /* BCHG */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCHG_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCHG_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_870_0_comp_ff(uae_u32 opcode) /* BCHG */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCHG_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCHG_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_878_0_comp_ff(uae_u32 opcode) /* BCHG */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCHG_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCHG_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_879_0_comp_ff(uae_u32 opcode) /* BCHG */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCHG_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCHG_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_880_0_comp_ff(uae_u32 opcode) /* BCLR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; -{ make_flags_live(); - jff_BCLR_l(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + { + make_flags_live(); + jff_BCLR_l(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_890_0_comp_ff(uae_u32 opcode) /* BCLR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCLR_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCLR_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_898_0_comp_ff(uae_u32 opcode) /* BCLR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); -{ make_flags_live(); - jff_BCLR_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + { + make_flags_live(); + jff_BCLR_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8a0_0_comp_ff(uae_u32 opcode) /* BCLR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCLR_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCLR_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8a8_0_comp_ff(uae_u32 opcode) /* BCLR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCLR_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCLR_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8b0_0_comp_ff(uae_u32 opcode) /* BCLR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCLR_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCLR_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8b8_0_comp_ff(uae_u32 opcode) /* BCLR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCLR_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCLR_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8b9_0_comp_ff(uae_u32 opcode) /* BCLR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BCLR_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BCLR_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8c0_0_comp_ff(uae_u32 opcode) /* BSET */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; -{ make_flags_live(); - jff_BSET_l(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + { + make_flags_live(); + jff_BSET_l(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8d0_0_comp_ff(uae_u32 opcode) /* BSET */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BSET_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BSET_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8d8_0_comp_ff(uae_u32 opcode) /* BSET */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); -{ make_flags_live(); - jff_BSET_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + { + make_flags_live(); + jff_BSET_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8e0_0_comp_ff(uae_u32 opcode) /* BSET */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BSET_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BSET_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8e8_0_comp_ff(uae_u32 opcode) /* BSET */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BSET_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BSET_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8f0_0_comp_ff(uae_u32 opcode) /* BSET */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BSET_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BSET_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8f8_0_comp_ff(uae_u32 opcode) /* BSET */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BSET_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BSET_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8f9_0_comp_ff(uae_u32 opcode) /* BSET */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ make_flags_live(); - jff_BSET_b(dst,src); - live_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + make_flags_live(); + jff_BSET_b(dst,src); + live_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a00_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_b(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_b(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a10_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a18_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a20_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a28_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a30_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a38_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a39_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a3c_0_comp_ff(uae_u32 opcode) /* EORSR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - make_flags_live(); - jff_EORSR(ARM_CCR_MAP[src & 0xF], ((src & 0x10) >> 4)); - live_flags(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + make_flags_live(); + jff_EORSR(ARM_CCR_MAP[src & 0xF], ((src & 0x10) >> 4)); + live_flags(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a40_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_w(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_w(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a50_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a58_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a60_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a68_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a70_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a78_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a79_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a80_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_l(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_l(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a90_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a98_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_aa0_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_aa8_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_ab0_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_ab8_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_ab9_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } #endif #ifdef PART_2 uae_u32 REGPARAM2 op_c00_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c10_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c18_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c20_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c28_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c30_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c38_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c39_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c3a_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 dstreg = 2; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(dsta,address+PC16off); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 2; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(dsta,address+PC16off); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c3b_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 dstreg = 3; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int pctmp=scratchie++; - int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 3; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int pctmp=scratchie++; + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c40_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c50_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c58_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c60_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c68_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c70_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c78_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c79_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c7a_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 dstreg = 2; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(dsta,address+PC16off); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 2; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(dsta,address+PC16off); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c7b_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 dstreg = 3; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int pctmp=scratchie++; - int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 3; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int pctmp=scratchie++; + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c80_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c90_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c98_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_ca0_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_ca8_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_cb0_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_cb8_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_cb9_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_cba_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 dstreg = 2; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(dsta,address+PC16off); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 2; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(dsta,address+PC16off); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_cbb_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 dstreg = 3; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int pctmp=scratchie++; - int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 3; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int pctmp=scratchie++; + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1000_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_b(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_b(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1010_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_b(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_b(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1018_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_b(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_b(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1020_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_b(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_b(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1028_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_b(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_b(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1030_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_b(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_b(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1038_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_b(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_b(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1039_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_b(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_b(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_103a_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_b(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_b(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_103b_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_b(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_b(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_103c_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_b(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_b(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1080_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1090_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1098_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10a0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10a8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10b0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10b8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10b9_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10ba_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10bb_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10bc_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10c0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10d0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10d8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10e0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10e8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10f0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10f8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10f9_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10fa_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10fb_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10fc_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1100_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1110_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1118_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1120_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1128_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1130_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1138_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1139_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_113a_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_113b_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_113c_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1140_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1150_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1158_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1160_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1168_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1170_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1178_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1179_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_117a_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_117b_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_117c_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1180_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1190_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1198_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11a0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11a8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11b0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11b8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11b9_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11ba_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11bb_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11bc_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11c0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11d0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11d8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11e0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11e8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11f0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11f8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11f9_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11fa_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11fb_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11fc_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13c0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13d0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13d8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13e0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13e8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13f0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13f8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13f9_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13fa_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13fb_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13fc_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); - writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2000_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_l(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_l(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2008_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_l(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_l(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2010_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_l(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_l(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2018_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_l(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_l(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2020_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_l(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_l(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2028_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_l(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_l(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2030_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_l(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_l(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2038_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_l(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_l(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2039_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_l(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_l(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_203a_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_l(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_l(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_203b_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_l(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_l(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_203c_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_l(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_l(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2040_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2048_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2050_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2058_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2060_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2068_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2070_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2078_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2079_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_207a_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_207b_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_207c_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2080_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2088_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2090_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2098_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20a0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20a8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20b0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20b8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20b9_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20ba_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20bb_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20bc_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20c0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20c8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20d0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20d8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20e0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20e8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20f0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20f8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20f9_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20fa_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20fb_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20fc_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2100_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2108_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2110_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2118_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2120_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2128_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2130_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2138_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2139_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_213a_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_213b_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_213c_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2140_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2148_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2150_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2158_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2160_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2168_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2170_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2178_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2179_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_217a_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_217b_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_217c_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2180_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2188_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2190_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } #endif #ifdef PART_3 uae_u32 REGPARAM2 op_2198_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21a0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21a8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21b0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21b8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21b9_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21ba_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21bb_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21bc_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21c0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21c8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21d0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21d8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21e0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21e8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21f0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21f8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21f9_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21fa_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21fb_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21fc_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23c0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23c8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23d0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23d8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23e0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23e8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23f0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23f8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23f9_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23fa_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23fb_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23fc_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); - writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3000_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_w(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_w(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3008_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_w(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_w(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3010_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_w(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_w(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3018_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_w(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_w(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3020_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_w(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_w(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3028_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_w(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_w(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3030_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_w(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_w(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3038_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_w(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_w(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3039_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_w(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_w(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_303a_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_w(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_w(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_303b_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_w(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_w(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_303c_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_w(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_w(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3040_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3048_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3050_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3058_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3060_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3068_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3070_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3078_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3079_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_307a_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_307b_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_307c_0_comp_ff(uae_u32 opcode) /* MOVEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3080_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3088_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3090_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3098_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30a0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30a8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30b0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30b8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30b9_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30ba_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30bb_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30bc_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30c0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30c8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30d0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30d8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30e0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30e8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30f0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30f8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30f9_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30fa_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30fb_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30fc_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3100_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3108_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3110_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3118_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3120_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3128_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3130_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3138_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3139_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_313a_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_313b_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_313c_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3140_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3148_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3150_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3158_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3160_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3168_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3170_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3178_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3179_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_317a_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_317b_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_317c_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3180_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3188_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3190_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3198_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31a0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31a8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31b0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31b8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31b9_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31ba_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31bb_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31bc_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31c0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31c8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31d0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31d8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31e0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31e8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31f0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31f8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31f9_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31fa_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31fb_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31fc_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33c0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33c8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33d0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33d8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33e0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33e8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33f0_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33f8_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33f9_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33fa_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33fb_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33fc_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); - writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4000_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(srcreg!=dst) - mov_b_rr(srcreg,dst); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(srcreg!=dst) + mov_b_rr(srcreg,dst); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4010_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4018_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4020_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(srca,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(srca,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4028_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4030_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4038_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4039_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4040_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(srcreg!=dst) - mov_w_rr(srcreg,dst); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(srcreg!=dst) + mov_w_rr(srcreg,dst); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4050_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4058_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4060_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(srca,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(srca,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4068_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4070_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4078_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4079_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4080_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(srcreg!=dst) - mov_l_rr(srcreg,dst); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(srcreg!=dst) + mov_l_rr(srcreg,dst); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4090_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4098_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_40a0_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(srca,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(srca,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_40a8_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_40b0_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_40b8_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_40b9_0_comp_ff(uae_u32 opcode) /* NEGX */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=scratchie++; - make_flags_live(); - jff_NEGX_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=scratchie++; + make_flags_live(); + jff_NEGX_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_41d0_0_comp_ff(uae_u32 opcode) /* LEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int dst=dodgy?scratchie++:dstreg+8; - if(dstreg+8!=srca) - mov_l_rr(dstreg+8,srca); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int dst=dodgy?scratchie++:dstreg+8; + if(dstreg+8!=srca) + mov_l_rr(dstreg+8,srca); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_41e8_0_comp_ff(uae_u32 opcode) /* LEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dodgy?scratchie++:dstreg+8; - if(dstreg+8!=srca) - mov_l_rr(dstreg+8,srca); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dodgy?scratchie++:dstreg+8; + if(dstreg+8!=srca) + mov_l_rr(dstreg+8,srca); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_41f0_0_comp_ff(uae_u32 opcode) /* LEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if(dstreg+8!=srca) - mov_l_rr(dstreg+8,srca); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if(dstreg+8!=srca) + mov_l_rr(dstreg+8,srca); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_41f8_0_comp_ff(uae_u32 opcode) /* LEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dodgy?scratchie++:dstreg+8; - if(dstreg+8!=srca) - mov_l_rr(dstreg+8,srca); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dodgy?scratchie++:dstreg+8; + if(dstreg+8!=srca) + mov_l_rr(dstreg+8,srca); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_41f9_0_comp_ff(uae_u32 opcode) /* LEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=dodgy?scratchie++:dstreg+8; - if(dstreg+8!=srca) - mov_l_rr(dstreg+8,srca); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=dodgy?scratchie++:dstreg+8; + if(dstreg+8!=srca) + mov_l_rr(dstreg+8,srca); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_41fa_0_comp_ff(uae_u32 opcode) /* LEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int dst=dodgy?scratchie++:dstreg+8; - if(dstreg+8!=srca) - mov_l_rr(dstreg+8,srca); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int dst=dodgy?scratchie++:dstreg+8; + if(dstreg+8!=srca) + mov_l_rr(dstreg+8,srca); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_41fb_0_comp_ff(uae_u32 opcode) /* LEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if(dstreg+8!=srca) - mov_l_rr(dstreg+8,srca); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if(dstreg+8!=srca) + mov_l_rr(dstreg+8,srca); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4200_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - if(srcreg!=tmp) - mov_b_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + if(srcreg!=tmp) + mov_b_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4210_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - writebyte(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + writebyte(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4218_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - writebyte(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + writebyte(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4220_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4228_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - writebyte(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + writebyte(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4230_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - writebyte(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + writebyte(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4238_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - writebyte(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + writebyte(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4239_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - writebyte(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + writebyte(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4240_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - if(srcreg!=tmp) - mov_w_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + if(srcreg!=tmp) + mov_w_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4250_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - writeword(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4258_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - writeword(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4260_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4268_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - writeword(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4270_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - writeword(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4278_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - writeword(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4279_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - writeword(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4280_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - if(srcreg!=tmp) - mov_l_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + if(srcreg!=tmp) + mov_l_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4290_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - writelong(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + writelong(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4298_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - writelong(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + writelong(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_42a0_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_42a8_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - writelong(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + writelong(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_42b0_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - writelong(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + writelong(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_42b8_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - writelong(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + writelong(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_42b9_0_comp_ff(uae_u32 opcode) /* CLR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ int tmp=scratchie++; - jff_CLR(tmp); - live_flags(); - writelong(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + int tmp=scratchie++; + jff_CLR(tmp); + live_flags(); + writelong(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } #endif #ifdef PART_4 uae_u32 REGPARAM2 op_4400_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int tmp=scratchie++; - jff_NEG_b(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(srcreg!=tmp) - mov_b_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int tmp=scratchie++; + jff_NEG_b(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(srcreg!=tmp) + mov_b_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4410_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int tmp=scratchie++; - jff_NEG_b(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int tmp=scratchie++; + jff_NEG_b(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4418_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int tmp=scratchie++; - jff_NEG_b(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int tmp=scratchie++; + jff_NEG_b(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4420_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int tmp=scratchie++; - jff_NEG_b(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int tmp=scratchie++; + jff_NEG_b(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4428_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int tmp=scratchie++; - jff_NEG_b(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int tmp=scratchie++; + jff_NEG_b(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4430_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int tmp=scratchie++; - jff_NEG_b(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int tmp=scratchie++; + jff_NEG_b(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4438_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int tmp=scratchie++; - jff_NEG_b(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int tmp=scratchie++; + jff_NEG_b(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4439_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int tmp=scratchie++; - jff_NEG_b(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int tmp=scratchie++; + jff_NEG_b(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4440_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int tmp=scratchie++; - jff_NEG_w(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(srcreg!=tmp) - mov_w_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int tmp=scratchie++; + jff_NEG_w(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(srcreg!=tmp) + mov_w_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4450_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jff_NEG_w(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jff_NEG_w(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4458_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int tmp=scratchie++; - jff_NEG_w(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int tmp=scratchie++; + jff_NEG_w(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4460_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jff_NEG_w(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jff_NEG_w(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4468_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jff_NEG_w(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jff_NEG_w(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4470_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jff_NEG_w(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jff_NEG_w(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4478_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jff_NEG_w(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jff_NEG_w(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4479_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jff_NEG_w(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jff_NEG_w(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4480_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int tmp=scratchie++; - jff_NEG_l(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(srcreg!=tmp) - mov_l_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int tmp=scratchie++; + jff_NEG_l(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(srcreg!=tmp) + mov_l_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4490_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int tmp=scratchie++; - jff_NEG_l(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int tmp=scratchie++; + jff_NEG_l(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4498_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int tmp=scratchie++; - jff_NEG_l(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int tmp=scratchie++; + jff_NEG_l(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_44a0_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int tmp=scratchie++; - jff_NEG_l(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int tmp=scratchie++; + jff_NEG_l(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_44a8_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int tmp=scratchie++; - jff_NEG_l(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int tmp=scratchie++; + jff_NEG_l(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_44b0_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int tmp=scratchie++; - jff_NEG_l(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int tmp=scratchie++; + jff_NEG_l(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_44b8_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int tmp=scratchie++; - jff_NEG_l(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int tmp=scratchie++; + jff_NEG_l(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_44b9_0_comp_ff(uae_u32 opcode) /* NEG */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int tmp=scratchie++; - jff_NEG_l(tmp,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int tmp=scratchie++; + jff_NEG_l(tmp,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4600_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_b(tmp,src); - live_flags(); - if(srcreg!=tmp) - mov_b_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_b(tmp,src); + live_flags(); + if(srcreg!=tmp) + mov_b_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4610_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_b(tmp,src); - live_flags(); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_b(tmp,src); + live_flags(); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4618_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_b(tmp,src); - live_flags(); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_b(tmp,src); + live_flags(); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4620_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_b(tmp,src); - live_flags(); - writebyte(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_b(tmp,src); + live_flags(); + writebyte(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4628_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_b(tmp,src); - live_flags(); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_b(tmp,src); + live_flags(); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4630_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_b(tmp,src); - live_flags(); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_b(tmp,src); + live_flags(); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4638_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_b(tmp,src); - live_flags(); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_b(tmp,src); + live_flags(); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4639_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_b(tmp,src); - live_flags(); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_b(tmp,src); + live_flags(); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4640_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_w(tmp,src); - live_flags(); - if(srcreg!=tmp) - mov_w_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_w(tmp,src); + live_flags(); + if(srcreg!=tmp) + mov_w_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4650_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_w(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_w(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4658_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_w(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_w(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4660_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_w(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_w(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4668_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_w(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_w(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4670_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_w(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_w(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4678_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_w(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_w(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4679_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_w(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_w(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4680_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_l(tmp,src); - live_flags(); - if(srcreg!=tmp) - mov_l_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_l(tmp,src); + live_flags(); + if(srcreg!=tmp) + mov_l_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4690_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_l(tmp,src); - live_flags(); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_l(tmp,src); + live_flags(); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4698_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_l(tmp,src); - live_flags(); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_l(tmp,src); + live_flags(); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_46a0_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_l(tmp,src); - live_flags(); - writelong(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_l(tmp,src); + live_flags(); + writelong(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_46a8_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_l(tmp,src); - live_flags(); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_l(tmp,src); + live_flags(); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_46b0_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_l(tmp,src); - live_flags(); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_l(tmp,src); + live_flags(); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_46b8_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_l(tmp,src); - live_flags(); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_l(tmp,src); + live_flags(); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_46b9_0_comp_ff(uae_u32 opcode) /* NOT */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_NOT_l(tmp,src); - live_flags(); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_NOT_l(tmp,src); + live_flags(); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4808_0_comp_ff(uae_u32 opcode) /* LINK */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int offs = scratchie++; - mov_l_ri(offs,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(15,4); - writelong_clobber(15,src,scratchie); - mov_l_rr(src,15); - arm_ADD_l(15,offs); - if(srcreg+8!=src) - mov_l_rr(srcreg+8,src); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int offs = scratchie++; + mov_l_ri(offs,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(15,4); + writelong_clobber(15,src,scratchie); + mov_l_rr(src,15); + arm_ADD_l(15,offs); + if(srcreg+8!=src) + mov_l_rr(srcreg+8,src); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4840_0_comp_ff(uae_u32 opcode) /* SWAP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ jff_SWAP(src); - live_flags(); -if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(srcreg!=src) - mov_l_rr(srcreg,src); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + jff_SWAP(src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(srcreg!=src) + mov_l_rr(srcreg,src); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4850_0_comp_ff(uae_u32 opcode) /* PEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if (srcreg==7) dodgy=1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{{ int dsta=dodgy?scratchie++:7+8; - arm_SUB_l_ri8(7+8,4); - if (dodgy) - mov_l_rr(dsta,8+7); - writelong(dsta,srca,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if (srcreg==7) dodgy=1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + { + int dsta=dodgy?scratchie++:7+8; + arm_SUB_l_ri8(7+8,4); + if (dodgy) + mov_l_rr(dsta,8+7); + writelong(dsta,srca,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4868_0_comp_ff(uae_u32 opcode) /* PEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if (srcreg==7) dodgy=1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:7+8; - arm_SUB_l_ri8(7+8,4); - if (dodgy) - mov_l_rr(dsta,8+7); - writelong(dsta,srca,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if (srcreg==7) dodgy=1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:7+8; + arm_SUB_l_ri8(7+8,4); + if (dodgy) + mov_l_rr(dsta,8+7); + writelong(dsta,srca,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4870_0_comp_ff(uae_u32 opcode) /* PEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if (srcreg==7) dodgy=1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{{ int dsta=dodgy?scratchie++:7+8; - arm_SUB_l_ri8(7+8,4); - if (dodgy) - mov_l_rr(dsta,8+7); - writelong(dsta,srca,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if (srcreg==7) dodgy=1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + { + int dsta=dodgy?scratchie++:7+8; + arm_SUB_l_ri8(7+8,4); + if (dodgy) + mov_l_rr(dsta,8+7); + writelong(dsta,srca,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4878_0_comp_ff(uae_u32 opcode) /* PEA */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:7+8; - arm_SUB_l_ri8(7+8,4); - if (dodgy) - mov_l_rr(dsta,8+7); - writelong(dsta,srca,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:7+8; + arm_SUB_l_ri8(7+8,4); + if (dodgy) + mov_l_rr(dsta,8+7); + writelong(dsta,srca,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4879_0_comp_ff(uae_u32 opcode) /* PEA */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{{ int dsta=dodgy?scratchie++:7+8; - arm_SUB_l_ri8(7+8,4); - if (dodgy) - mov_l_rr(dsta,8+7); - writelong(dsta,srca,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + { + int dsta=dodgy?scratchie++:7+8; + arm_SUB_l_ri8(7+8,4); + if (dodgy) + mov_l_rr(dsta,8+7); + writelong(dsta,srca,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_487a_0_comp_ff(uae_u32 opcode) /* PEA */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{{ int dsta=dodgy?scratchie++:7+8; - arm_SUB_l_ri8(7+8,4); - if (dodgy) - mov_l_rr(dsta,8+7); - writelong(dsta,srca,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + { + int dsta=dodgy?scratchie++:7+8; + arm_SUB_l_ri8(7+8,4); + if (dodgy) + mov_l_rr(dsta,8+7); + writelong(dsta,srca,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_487b_0_comp_ff(uae_u32 opcode) /* PEA */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{{ int dsta=dodgy?scratchie++:7+8; - arm_SUB_l_ri8(7+8,4); - if (dodgy) - mov_l_rr(dsta,8+7); - writelong(dsta,srca,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + { + int dsta=dodgy?scratchie++:7+8; + arm_SUB_l_ri8(7+8,4); + if (dodgy) + mov_l_rr(dsta,8+7); + writelong(dsta,srca,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4880_0_comp_ff(uae_u32 opcode) /* EXT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_EXT_w(tmp,src); - live_flags(); - if(srcreg!=tmp) - mov_w_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_EXT_w(tmp,src); + live_flags(); + if(srcreg!=tmp) + mov_w_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4890_0_comp_ff(uae_u32 opcode) /* MVMLE */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(srca,dstreg+8); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMLE_w(native,i,offset); - offset+=2; - } - } } else { - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - writeword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(srca,dstreg+8); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMLE_w(native,i,offset); + offset+=2; + } + } + } + else + { + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + writeword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48a0_0_comp_ff(uae_u32 opcode) /* MVMLE */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(srca,8+dstreg); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - offset-=2; - jnf_MVMLE_w(native,15-i,offset); - } - } lea_l_brr(8+dstreg,srca,(uae_s32)offset); - } else { - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - arm_SUB_l_ri8(srca,2); - writeword(srca,15-i,scratchie); - } - } mov_l_rr(8+dstreg,srca); - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(srca,8+dstreg); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + offset-=2; + jnf_MVMLE_w(native,15-i,offset); + } + } + lea_l_brr(8+dstreg,srca,(uae_s32)offset); + } + else + { + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + arm_SUB_l_ri8(srca,2); + writeword(srca,15-i,scratchie); + } + } + mov_l_rr(8+dstreg,srca); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48a8_0_comp_ff(uae_u32 opcode) /* MVMLE */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca=scratchie++; - mov_l_rr(srca,8+dstreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMLE_w(native,i,offset); - offset+=2; - } - } } else { - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - writeword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca=scratchie++; + mov_l_rr(srca,8+dstreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMLE_w(native,i,offset); + offset+=2; + } + } + } + else + { + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + writeword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48b0_0_comp_ff(uae_u32 opcode) /* MVMLE */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMLE_w(native,i,offset); - offset+=2; - } - } } else { - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - writeword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMLE_w(native,i,offset); + offset+=2; + } + } + } + else + { + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + writeword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48b8_0_comp_ff(uae_u32 opcode) /* MVMLE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMLE_w(native,i,offset); - offset+=2; - } - } } else { - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - writeword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMLE_w(native,i,offset); + offset+=2; + } + } + } + else + { + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + writeword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48b9_0_comp_ff(uae_u32 opcode) /* MVMLE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMLE_w(native,i,offset); - offset+=2; - } - } } else { - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - writeword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMLE_w(native,i,offset); + offset+=2; + } + } + } + else + { + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + writeword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48c0_0_comp_ff(uae_u32 opcode) /* EXT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_EXT_l(tmp,src); - live_flags(); - if(srcreg!=tmp) - mov_l_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_EXT_l(tmp,src); + live_flags(); + if(srcreg!=tmp) + mov_l_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48d0_0_comp_ff(uae_u32 opcode) /* MVMLE */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(srca,dstreg+8); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMLE_l(native,i,offset); - offset+=4; - } - } } else { - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - writelong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(srca,dstreg+8); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMLE_l(native,i,offset); + offset+=4; + } + } + } + else + { + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + writelong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48e0_0_comp_ff(uae_u32 opcode) /* MVMLE */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(srca,8+dstreg); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - offset-=4; - jnf_MVMLE_l(native,15-i,offset); - } - } lea_l_brr(8+dstreg,srca,(uae_s32)offset); - } else { - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - arm_SUB_l_ri8(srca,4); - writelong(srca,15-i,scratchie); - } - } mov_l_rr(8+dstreg,srca); - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(srca,8+dstreg); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + offset-=4; + jnf_MVMLE_l(native,15-i,offset); + } + } + lea_l_brr(8+dstreg,srca,(uae_s32)offset); + } + else + { + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + arm_SUB_l_ri8(srca,4); + writelong(srca,15-i,scratchie); + } + } + mov_l_rr(8+dstreg,srca); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48e8_0_comp_ff(uae_u32 opcode) /* MVMLE */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca=scratchie++; - mov_l_rr(srca,8+dstreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMLE_l(native,i,offset); - offset+=4; - } - } } else { - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - writelong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca=scratchie++; + mov_l_rr(srca,8+dstreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMLE_l(native,i,offset); + offset+=4; + } + } + } + else + { + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + writelong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48f0_0_comp_ff(uae_u32 opcode) /* MVMLE */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMLE_l(native,i,offset); - offset+=4; - } - } } else { - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - writelong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMLE_l(native,i,offset); + offset+=4; + } + } + } + else + { + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + writelong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48f8_0_comp_ff(uae_u32 opcode) /* MVMLE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMLE_l(native,i,offset); - offset+=4; - } - } } else { - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - writelong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMLE_l(native,i,offset); + offset+=4; + } + } + } + else + { + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + writelong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48f9_0_comp_ff(uae_u32 opcode) /* MVMLE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMLE_l(native,i,offset); - offset+=4; - } - } } else { - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - writelong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMLE_l(native,i,offset); + offset+=4; + } + } + } + else + { + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + writelong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_49c0_0_comp_ff(uae_u32 opcode) /* EXT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_EXT_b(tmp,src); - live_flags(); - if(srcreg!=tmp) - mov_l_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_EXT_b(tmp,src); + live_flags(); + if(srcreg!=tmp) + mov_l_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a00_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a10_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a18_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a20_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a28_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a30_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a38_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a39_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a3a_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a3b_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a3c_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_b(src); - live_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_b(src); + live_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a40_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a48_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a50_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a58_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a60_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a68_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a70_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a78_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a79_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a7a_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a7b_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a7c_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ jff_TST_w(src); - live_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + jff_TST_w(src); + live_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a80_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a88_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a90_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a98_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4aa0_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4aa8_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ab0_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ab8_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ab9_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4aba_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4abb_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4abc_0_comp_ff(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - dont_care_flags(); -{ jff_TST_l(src); - live_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + dont_care_flags(); + { + jff_TST_l(src); + live_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c00_0_comp_ff(uae_u32 opcode) /* MULL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{ int dst=dstreg; - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jff_MULS64(r2,r3); - } else { - jff_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jff_MULS32(r2,dst); - } else { - jff_MULU32(r2,dst); - } - } - live_flags(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + int dst=dstreg; + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jff_MULS64(r2,r3); + } + else + { + jff_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jff_MULS32(r2,dst); + } + else + { + jff_MULU32(r2,dst); + } + } + live_flags(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c10_0_comp_ff(uae_u32 opcode) /* MULL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jff_MULS64(r2,r3); - } else { - jff_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jff_MULS32(r2,dst); - } else { - jff_MULU32(r2,dst); - } - } - live_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jff_MULS64(r2,r3); + } + else + { + jff_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jff_MULS32(r2,dst); + } + else + { + jff_MULU32(r2,dst); + } + } + live_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c18_0_comp_ff(uae_u32 opcode) /* MULL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jff_MULS64(r2,r3); - } else { - jff_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jff_MULS32(r2,dst); - } else { - jff_MULU32(r2,dst); - } - } - live_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jff_MULS64(r2,r3); + } + else + { + jff_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jff_MULS32(r2,dst); + } + else + { + jff_MULU32(r2,dst); + } + } + live_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c20_0_comp_ff(uae_u32 opcode) /* MULL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jff_MULS64(r2,r3); - } else { - jff_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jff_MULS32(r2,dst); - } else { - jff_MULU32(r2,dst); - } - } - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jff_MULS64(r2,r3); + } + else + { + jff_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jff_MULS32(r2,dst); + } + else + { + jff_MULU32(r2,dst); + } + } + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c28_0_comp_ff(uae_u32 opcode) /* MULL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jff_MULS64(r2,r3); - } else { - jff_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jff_MULS32(r2,dst); - } else { - jff_MULU32(r2,dst); - } - } - live_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jff_MULS64(r2,r3); + } + else + { + jff_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jff_MULS32(r2,dst); + } + else + { + jff_MULU32(r2,dst); + } + } + live_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c30_0_comp_ff(uae_u32 opcode) /* MULL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jff_MULS64(r2,r3); - } else { - jff_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jff_MULS32(r2,dst); - } else { - jff_MULU32(r2,dst); - } - } - live_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jff_MULS64(r2,r3); + } + else + { + jff_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jff_MULS32(r2,dst); + } + else + { + jff_MULU32(r2,dst); + } + } + live_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c38_0_comp_ff(uae_u32 opcode) /* MULL */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jff_MULS64(r2,r3); - } else { - jff_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jff_MULS32(r2,dst); - } else { - jff_MULU32(r2,dst); - } - } - live_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jff_MULS64(r2,r3); + } + else + { + jff_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jff_MULS32(r2,dst); + } + else + { + jff_MULU32(r2,dst); + } + } + live_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c39_0_comp_ff(uae_u32 opcode) /* MULL */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jff_MULS64(r2,r3); - } else { - jff_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jff_MULS32(r2,dst); - } else { - jff_MULU32(r2,dst); - } - } - live_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jff_MULS64(r2,r3); + } + else + { + jff_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jff_MULS32(r2,dst); + } + else + { + jff_MULU32(r2,dst); + } + } + live_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c3a_0_comp_ff(uae_u32 opcode) /* MULL */ { - uae_s32 dstreg = 2; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{ int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(dsta,address+PC16off); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jff_MULS64(r2,r3); - } else { - jff_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jff_MULS32(r2,dst); - } else { - jff_MULU32(r2,dst); - } - } - live_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 2; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(dsta,address+PC16off); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jff_MULS64(r2,r3); + } + else + { + jff_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jff_MULS32(r2,dst); + } + else + { + jff_MULU32(r2,dst); + } + } + live_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c3b_0_comp_ff(uae_u32 opcode) /* MULL */ { - uae_s32 dstreg = 3; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{ int pctmp=scratchie++; - int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jff_MULS64(r2,r3); - } else { - jff_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jff_MULS32(r2,dst); - } else { - jff_MULU32(r2,dst); - } - } - live_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 3; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + int pctmp=scratchie++; + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jff_MULS64(r2,r3); + } + else + { + jff_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jff_MULS32(r2,dst); + } + else + { + jff_MULU32(r2,dst); + } + } + live_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c3c_0_comp_ff(uae_u32 opcode) /* MULL */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{ int dst = scratchie++; - mov_l_ri(dst,comp_get_ilong((m68k_pc_offset+=4)-4)); - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jff_MULS64(r2,r3); - } else { - jff_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jff_MULS32(r2,dst); - } else { - jff_MULU32(r2,dst); - } - } - live_flags(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + int dst = scratchie++; + mov_l_ri(dst,comp_get_ilong((m68k_pc_offset+=4)-4)); + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jff_MULS64(r2,r3); + } + else + { + jff_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jff_MULS32(r2,dst); + } + else + { + jff_MULU32(r2,dst); + } + } + live_flags(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c90_0_comp_ff(uae_u32 opcode) /* MVMEL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(srca,dstreg+8); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_w(i,native,offset); - offset+=2; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(srca,dstreg+8); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_w(i,native,offset); + offset+=2; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c98_0_comp_ff(uae_u32 opcode) /* MVMEL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca=scratchie++; - mov_l_rr(srca,dstreg+8); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_w(i,native,offset); - offset+=2; - } - } jnf_ADD_im8(8+dstreg,srca,offset); - } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } - mov_l_rr(8+dstreg,tmp); - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca=scratchie++; + mov_l_rr(srca,dstreg+8); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_w(i,native,offset); + offset+=2; + } + } + jnf_ADD_im8(8+dstreg,srca,offset); + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + mov_l_rr(8+dstreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ca8_0_comp_ff(uae_u32 opcode) /* MVMEL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca=scratchie++; - mov_l_rr(srca,8+dstreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_w(i,native,offset); - offset+=2; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca=scratchie++; + mov_l_rr(srca,8+dstreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_w(i,native,offset); + offset+=2; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cb0_0_comp_ff(uae_u32 opcode) /* MVMEL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_w(i,native,offset); - offset+=2; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_w(i,native,offset); + offset+=2; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cb8_0_comp_ff(uae_u32 opcode) /* MVMEL */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_w(i,native,offset); - offset+=2; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_w(i,native,offset); + offset+=2; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cb9_0_comp_ff(uae_u32 opcode) /* MVMEL */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_w(i,native,offset); - offset+=2; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_w(i,native,offset); + offset+=2; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cba_0_comp_ff(uae_u32 opcode) /* MVMEL */ { - uae_s32 dstreg = 2; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_w(i,native,offset); - offset+=2; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 2; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_w(i,native,offset); + offset+=2; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cbb_0_comp_ff(uae_u32 opcode) /* MVMEL */ { - uae_s32 dstreg = 3; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_w(i,native,offset); - offset+=2; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } - } -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 3; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_w(i,native,offset); + offset+=2; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cd0_0_comp_ff(uae_u32 opcode) /* MVMEL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(srca,dstreg+8); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_l(i,native,offset); - offset+=4; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readlong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(srca,dstreg+8); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_l(i,native,offset); + offset+=4; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readlong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cd8_0_comp_ff(uae_u32 opcode) /* MVMEL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca=scratchie++; - mov_l_rr(srca,dstreg+8); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_l(i,native,offset); - offset+=4; - } - } jnf_ADD_im8(8+dstreg,srca,offset); - } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readlong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } - mov_l_rr(8+dstreg,tmp); - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca=scratchie++; + mov_l_rr(srca,dstreg+8); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_l(i,native,offset); + offset+=4; + } + } + jnf_ADD_im8(8+dstreg,srca,offset); + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readlong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + mov_l_rr(8+dstreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ce8_0_comp_ff(uae_u32 opcode) /* MVMEL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca=scratchie++; - mov_l_rr(srca,8+dstreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_l(i,native,offset); - offset+=4; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readlong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca=scratchie++; + mov_l_rr(srca,8+dstreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_l(i,native,offset); + offset+=4; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readlong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cf0_0_comp_ff(uae_u32 opcode) /* MVMEL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_l(i,native,offset); - offset+=4; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readlong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_l(i,native,offset); + offset+=4; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readlong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cf8_0_comp_ff(uae_u32 opcode) /* MVMEL */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_l(i,native,offset); - offset+=4; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readlong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_l(i,native,offset); + offset+=4; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readlong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cf9_0_comp_ff(uae_u32 opcode) /* MVMEL */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_l(i,native,offset); - offset+=4; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readlong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_l(i,native,offset); + offset+=4; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readlong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cfa_0_comp_ff(uae_u32 opcode) /* MVMEL */ { - uae_s32 dstreg = 2; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_l(i,native,offset); - offset+=4; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readlong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 2; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_l(i,native,offset); + offset+=4; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readlong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cfb_0_comp_ff(uae_u32 opcode) /* MVMEL */ { - uae_s32 dstreg = 3; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_l(i,native,offset); - offset+=4; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readlong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } - } -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 3; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_l(i,native,offset); + offset+=4; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readlong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4e50_0_comp_ff(uae_u32 opcode) /* LINK */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(15,4); - writelong_clobber(15,src,scratchie); - mov_l_rr(src,15); - arm_ADD_l(15,offs); - if(srcreg+8!=src) - mov_l_rr(srcreg+8,src); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(15,4); + writelong_clobber(15,src,scratchie); + mov_l_rr(src,15); + arm_ADD_l(15,offs); + if(srcreg+8!=src) + mov_l_rr(srcreg+8,src); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4e58_0_comp_ff(uae_u32 opcode) /* UNLK */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); - mov_l_rr(15,src); - readlong(15,src,scratchie); - arm_ADD_l_ri8(15,4); - if(srcreg+8!=src) - mov_l_rr(srcreg+8,src); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + mov_l_rr(15,src); + readlong(15,src,scratchie); + arm_ADD_l_ri8(15,4); + if(srcreg+8!=src) + mov_l_rr(srcreg+8,src); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4e71_0_comp_ff(uae_u32 opcode) /* NOP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4e74_0_comp_ff(uae_u32 opcode) /* RTD */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - arm_ADD_l_ri8(offs,4); -{ int newad=scratchie++; - readlong(15,newad,scratchie); - mov_l_mr((uintptr)®s.pc,newad); - get_n_addr_jmp(newad,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; - arm_ADD_l(15,offs); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + arm_ADD_l_ri8(offs,4); + { + int newad=scratchie++; + readlong(15,newad,scratchie); + mov_l_mr((uintptr)®s.pc,newad); + get_n_addr_jmp(newad,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + arm_ADD_l(15,offs); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4e75_0_comp_ff(uae_u32 opcode) /* RTS */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - int newad=scratchie++; - readlong(15,newad,scratchie); - mov_l_mr((uintptr)®s.pc,newad); - get_n_addr_jmp(newad,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; - arm_ADD_l_ri8(15,4); -} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + int newad=scratchie++; + readlong(15,newad,scratchie); + mov_l_mr((uintptr)®s.pc,newad); + get_n_addr_jmp(newad,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + arm_ADD_l_ri8(15,4); + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4e90_0_comp_ff(uae_u32 opcode) /* JSR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - int ret=scratchie++; - mov_l_ri(ret,retadd); - sub_l_ri(15,4); - writelong_clobber(15,ret,scratchie); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + int ret=scratchie++; + mov_l_ri(ret,retadd); + sub_l_ri(15,4); + writelong_clobber(15,ret,scratchie); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ea8_0_comp_ff(uae_u32 opcode) /* JSR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - int ret=scratchie++; - mov_l_ri(ret,retadd); - sub_l_ri(15,4); - writelong_clobber(15,ret,scratchie); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + int ret=scratchie++; + mov_l_ri(ret,retadd); + sub_l_ri(15,4); + writelong_clobber(15,ret,scratchie); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4eb0_0_comp_ff(uae_u32 opcode) /* JSR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - int ret=scratchie++; - mov_l_ri(ret,retadd); - sub_l_ri(15,4); - writelong_clobber(15,ret,scratchie); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + int ret=scratchie++; + mov_l_ri(ret,retadd); + sub_l_ri(15,4); + writelong_clobber(15,ret,scratchie); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4eb8_0_comp_ff(uae_u32 opcode) /* JSR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - int ret=scratchie++; - mov_l_ri(ret,retadd); - sub_l_ri(15,4); - writelong_clobber(15,ret,scratchie); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + int ret=scratchie++; + mov_l_ri(ret,retadd); + sub_l_ri(15,4); + writelong_clobber(15,ret,scratchie); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4eb9_0_comp_ff(uae_u32 opcode) /* JSR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - int ret=scratchie++; - mov_l_ri(ret,retadd); - sub_l_ri(15,4); - writelong_clobber(15,ret,scratchie); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + int ret=scratchie++; + mov_l_ri(ret,retadd); + sub_l_ri(15,4); + writelong_clobber(15,ret,scratchie); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4eba_0_comp_ff(uae_u32 opcode) /* JSR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - int ret=scratchie++; - mov_l_ri(ret,retadd); - sub_l_ri(15,4); - writelong_clobber(15,ret,scratchie); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + int ret=scratchie++; + mov_l_ri(ret,retadd); + sub_l_ri(15,4); + writelong_clobber(15,ret,scratchie); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ebb_0_comp_ff(uae_u32 opcode) /* JSR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - int ret=scratchie++; - mov_l_ri(ret,retadd); - sub_l_ri(15,4); - writelong_clobber(15,ret,scratchie); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + int ret=scratchie++; + mov_l_ri(ret,retadd); + sub_l_ri(15,4); + writelong_clobber(15,ret,scratchie); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ed0_0_comp_ff(uae_u32 opcode) /* JMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ee8_0_comp_ff(uae_u32 opcode) /* JMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ef0_0_comp_ff(uae_u32 opcode) /* JMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ef8_0_comp_ff(uae_u32 opcode) /* JMP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ef9_0_comp_ff(uae_u32 opcode) /* JMP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4efa_0_comp_ff(uae_u32 opcode) /* JMP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4efb_0_comp_ff(uae_u32 opcode) /* JMP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5000_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5010_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5018_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5020_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5028_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5030_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5038_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5039_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5040_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5048_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5050_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5058_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5060_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5068_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5070_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5078_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5079_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5080_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5088_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5090_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5098_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } #endif #ifdef PART_5 uae_u32 REGPARAM2 op_50a0_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50a8_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50b0_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50b8_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50b9_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50c0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - mov_l_ri(val, 0xff); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + mov_l_ri(val, 0xff); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50c8_0_comp_ff(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50d0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - mov_l_ri(val, 0xff); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + mov_l_ri(val, 0xff); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50d8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - mov_l_ri(val, 0xff); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + mov_l_ri(val, 0xff); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50e0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - mov_l_ri(val, 0xff); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + mov_l_ri(val, 0xff); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50e8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - mov_l_ri(val, 0xff); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + mov_l_ri(val, 0xff); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50f0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - mov_l_ri(val, 0xff); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + mov_l_ri(val, 0xff); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50f8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - mov_l_ri(val, 0xff); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + mov_l_ri(val, 0xff); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50f9_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - mov_l_ri(val, 0xff); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + mov_l_ri(val, 0xff); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5100_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5110_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5118_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5120_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5128_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5130_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5138_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5139_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5140_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5148_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5150_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5158_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5160_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5168_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5170_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5178_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5179_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5180_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5188_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5190_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5198_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51a0_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51a8_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51b0_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51b8_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51b9_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51c0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - mov_l_ri(val, 0); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + mov_l_ri(val, 0); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51c8_0_comp_ff(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - sub_w_ri(src, 1); -{ uae_u32 v2; - uae_u32 v1=get_const(PC_P); - v2=get_const(offs); - register_branch(v1, v2, 3); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + sub_w_ri(src, 1); + { + uae_u32 v2; + uae_u32 v1=get_const(PC_P); + v2=get_const(offs); + register_branch(v1, v2, 3); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51d0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - mov_l_ri(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + mov_l_ri(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51d8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - mov_l_ri(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + mov_l_ri(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51e0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - mov_l_ri(val, 0); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + mov_l_ri(val, 0); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51e8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - mov_l_ri(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + mov_l_ri(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51f0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - mov_l_ri(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + mov_l_ri(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51f8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - mov_l_ri(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + mov_l_ri(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51f9_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - mov_l_ri(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + mov_l_ri(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_52c0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 8); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 8); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_52c8_0_comp_ff(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 8); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 8); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_52d0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 8); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 8); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_52d8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 8); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 8); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_52e0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 8); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 8); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_52e8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 8); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 8); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_52f0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 8); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 8); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_52f8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 8); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 8); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_52f9_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 8); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 8); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_53c0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 9); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 9); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_53c8_0_comp_ff(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 9); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 9); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_53d0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 9); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 9); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_53d8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 9); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 9); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_53e0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 9); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 9); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_53e8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 9); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 9); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_53f0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 9); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 9); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_53f8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 9); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 9); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_53f9_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 9); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 9); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_54c0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 3); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 3); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_54c8_0_comp_ff(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 3); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 3); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_54d0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 3); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 3); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_54d8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 3); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 3); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_54e0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 3); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 3); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_54e8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 3); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 3); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_54f0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 3); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 3); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_54f8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 3); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 3); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_54f9_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 3); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 3); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_55c0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 2); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 2); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_55c8_0_comp_ff(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 2); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 2); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_55d0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 2); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 2); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_55d8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 2); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 2); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_55e0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 2); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 2); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_55e8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 2); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 2); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_55f0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 2); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 2); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_55f8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 2); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 2); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_55f9_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 2); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 2); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_56c0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 1); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 1); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_56c8_0_comp_ff(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 1); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 1); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_56d0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 1); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 1); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_56d8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 1); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 1); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_56e0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 1); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 1); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_56e8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 1); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 1); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_56f0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 1); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 1); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_56f8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 1); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 1); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_56f9_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 1); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 1); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_57c0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 0); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 0); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_57c8_0_comp_ff(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 0); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 0); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_57d0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_57d8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_57e0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 0); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 0); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_57e8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_57f0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_57f8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_57f9_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_58c0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 7); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 7); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_58c8_0_comp_ff(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 7); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 7); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_58d0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 7); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 7); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_58d8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 7); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 7); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_58e0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 7); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 7); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_58e8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 7); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 7); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_58f0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 7); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 7); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_58f8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 7); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 7); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_58f9_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 7); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 7); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_59c0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 6); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 6); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_59c8_0_comp_ff(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 6); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 6); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_59d0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 6); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 6); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_59d8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 6); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 6); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_59e0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 6); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 6); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_59e8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 6); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 6); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_59f0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 6); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 6); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_59f8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 6); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 6); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_59f9_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 6); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 6); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ac0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 5); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 5); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ac8_0_comp_ff(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 5); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 5); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ad0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 5); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 5); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ad8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 5); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 5); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ae0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 5); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 5); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ae8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 5); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 5); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5af0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 5); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 5); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5af8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 5); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 5); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5af9_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 5); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 5); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5bc0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 4); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 4); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5bc8_0_comp_ff(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 4); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 4); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5bd0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 4); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 4); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5bd8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 4); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 4); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5be0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 4); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 4); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5be8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 4); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 4); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5bf0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 4); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 4); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5bf8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 4); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 4); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5bf9_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 4); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 4); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5cc0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 10); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 10); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5cc8_0_comp_ff(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 10); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 10); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5cd0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 10); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 10); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5cd8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 10); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 10); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ce0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 10); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 10); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ce8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 10); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 10); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5cf0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 10); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 10); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5cf8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 10); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 10); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5cf9_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 10); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 10); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5dc0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 11); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 11); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5dc8_0_comp_ff(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 11); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 11); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5dd0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 11); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 11); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5dd8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 11); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 11); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5de0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 11); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 11); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5de8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 11); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 11); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5df0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 11); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 11); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5df8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 11); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 11); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5df9_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 11); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 11); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ec0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 12); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 12); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ec8_0_comp_ff(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 12); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 12); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ed0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 12); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 12); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ed8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 12); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 12); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ee0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 12); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 12); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ee8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 12); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 12); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ef0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 12); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 12); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ef8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 12); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 12); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ef9_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 12); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 12); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5fc0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 13); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 13); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5fc8_0_comp_ff(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 13); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 13); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5fd0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 13); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 13); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5fd8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 13); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 13); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5fe0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 13); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 13); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5fe8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 13); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 13); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ff0_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 13); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 13); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ff8_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 13); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 13); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ff9_0_comp_ff(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 13); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 13); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6000_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - mov_l_rr(PC_P, src); - comp_pc_p = (uae_u8*)(uintptr)get_const(PC_P); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + mov_l_rr(PC_P, src); + comp_pc_p = (uae_u8*)(uintptr)get_const(PC_P); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6001_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - mov_l_rr(PC_P, src); - comp_pc_p = (uae_u8*)(uintptr)get_const(PC_P); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + mov_l_rr(PC_P, src); + comp_pc_p = (uae_u8*)(uintptr)get_const(PC_P); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_60ff_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - mov_l_rr(PC_P, src); - comp_pc_p = (uae_u8*)(uintptr)get_const(PC_P); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + mov_l_rr(PC_P, src); + comp_pc_p = (uae_u8*)(uintptr)get_const(PC_P); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6100_0_comp_ff(uae_u32 opcode) /* BSR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - int ret=scratchie++; - mov_l_ri(ret,retadd); - sub_l_ri(15,4); - writelong_clobber(15,ret,scratchie); - arm_ADD_l_ri(src,m68k_pc_offset_thisinst+2); - m68k_pc_offset=0; - arm_ADD_l(PC_P,src); - comp_pc_p=(uae_u8*)(uintptr)get_const(PC_P); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + int ret=scratchie++; + mov_l_ri(ret,retadd); + sub_l_ri(15,4); + writelong_clobber(15,ret,scratchie); + arm_ADD_l_ri(src,m68k_pc_offset_thisinst+2); + m68k_pc_offset=0; + arm_ADD_l(PC_P,src); + comp_pc_p=(uae_u8*)(uintptr)get_const(PC_P); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6101_0_comp_ff(uae_u32 opcode) /* BSR */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - int ret=scratchie++; - mov_l_ri(ret,retadd); - sub_l_ri(15,4); - writelong_clobber(15,ret,scratchie); - arm_ADD_l_ri(src,m68k_pc_offset_thisinst+2); - m68k_pc_offset=0; - arm_ADD_l(PC_P,src); - comp_pc_p=(uae_u8*)(uintptr)get_const(PC_P); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + int ret=scratchie++; + mov_l_ri(ret,retadd); + sub_l_ri(15,4); + writelong_clobber(15,ret,scratchie); + arm_ADD_l_ri(src,m68k_pc_offset_thisinst+2); + m68k_pc_offset=0; + arm_ADD_l(PC_P,src); + comp_pc_p=(uae_u8*)(uintptr)get_const(PC_P); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_61ff_0_comp_ff(uae_u32 opcode) /* BSR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - int ret=scratchie++; - mov_l_ri(ret,retadd); - sub_l_ri(15,4); - writelong_clobber(15,ret,scratchie); - arm_ADD_l_ri(src,m68k_pc_offset_thisinst+2); - m68k_pc_offset=0; - arm_ADD_l(PC_P,src); - comp_pc_p=(uae_u8*)(uintptr)get_const(PC_P); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + int ret=scratchie++; + mov_l_ri(ret,retadd); + sub_l_ri(15,4); + writelong_clobber(15,ret,scratchie); + arm_ADD_l_ri(src,m68k_pc_offset_thisinst+2); + m68k_pc_offset=0; + arm_ADD_l(PC_P,src); + comp_pc_p=(uae_u8*)(uintptr)get_const(PC_P); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6200_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 8); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 8); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6201_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 8); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 8); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_62ff_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 8); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 8); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6300_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 9); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 9); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6301_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 9); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 9); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } #endif #ifdef PART_6 uae_u32 REGPARAM2 op_63ff_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 9); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 9); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6400_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 3); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 3); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6401_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 3); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 3); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_64ff_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 3); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 3); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6500_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 2); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 2); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6501_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 2); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 2); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_65ff_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 2); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 2); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6600_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 1); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 1); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6601_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 1); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 1); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_66ff_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 1); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 1); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6700_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 0); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 0); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6701_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 0); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 0); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_67ff_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 0); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 0); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6a00_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 5); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 5); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6a01_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 5); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 5); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6aff_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 5); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 5); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6b00_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 4); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 4); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6b01_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 4); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 4); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6bff_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 4); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 4); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6c00_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 10); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 10); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6c01_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 10); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 10); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6cff_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 10); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 10); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6d00_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 11); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 11); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6d01_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 11); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 11); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6dff_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 11); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 11); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6e00_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 12); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 12); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6e01_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 12); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 12); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6eff_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 12); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 12); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6f00_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 13); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 13); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6f01_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 13); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 13); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6fff_0_comp_ff(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 13); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 13); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_7000_0_comp_ff(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_MOVE_l(tmp, src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_MOVE_l(tmp, src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8000_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8010_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8018_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8020_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8028_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8030_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8038_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8039_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_803a_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_803b_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_803c_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8040_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8050_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8058_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8060_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8068_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8070_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8078_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8079_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_807a_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_807b_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_807c_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8080_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8090_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8098_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_80a0_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_80a8_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_80b0_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_80b8_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_80b9_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_80ba_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_80bb_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_80bc_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8110_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8118_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8120_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8128_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8130_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8138_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8139_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_b(tmp, dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_b(tmp, dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8150_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8158_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8160_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8168_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8170_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8178_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8179_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_w(tmp, dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_w(tmp, dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8190_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8198_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_81a0_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_81a8_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_81b0_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_81b8_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_81b9_0_comp_ff(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_OR_l(tmp, dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_OR_l(tmp, dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9000_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9010_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9018_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9020_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9028_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9030_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9038_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9039_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_903a_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_903b_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_903c_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9040_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9048_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9050_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9058_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9060_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9068_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9070_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9078_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9079_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_907a_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_907b_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_907c_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9080_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9088_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9090_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9098_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90a0_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90a8_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90b0_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90b8_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90b9_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90ba_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90bb_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90bc_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90c0_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90c8_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90d0_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90d8_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90e0_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90e8_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90f0_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90f8_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90f9_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90fa_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90fb_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90fc_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9100_0_comp_ff(uae_u32 opcode) /* SUBX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ int tmp=scratchie++; - dont_care_flags(); - make_flags_live(); - jff_SUBX_b(tmp,dst,src); - live_flags(); -if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + int tmp=scratchie++; + dont_care_flags(); + make_flags_live(); + jff_SUBX_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9108_0_comp_ff(uae_u32 opcode) /* SUBX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ int tmp=scratchie++; - dont_care_flags(); - make_flags_live(); - jff_SUBX_b(tmp,dst,src); - live_flags(); -if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + int tmp=scratchie++; + dont_care_flags(); + make_flags_live(); + jff_SUBX_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9110_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9118_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9120_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9128_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9130_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9138_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9139_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9140_0_comp_ff(uae_u32 opcode) /* SUBX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ int tmp=scratchie++; - dont_care_flags(); - make_flags_live(); - jff_SUBX_w(tmp,dst,src); - live_flags(); -if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + int tmp=scratchie++; + dont_care_flags(); + make_flags_live(); + jff_SUBX_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9148_0_comp_ff(uae_u32 opcode) /* SUBX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); -{ int tmp=scratchie++; - dont_care_flags(); - make_flags_live(); - jff_SUBX_w(tmp,dst,src); - live_flags(); -if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + { + int tmp=scratchie++; + dont_care_flags(); + make_flags_live(); + jff_SUBX_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9150_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9158_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9160_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9168_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9170_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9178_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9179_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9180_0_comp_ff(uae_u32 opcode) /* SUBX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ int tmp=scratchie++; - dont_care_flags(); - make_flags_live(); - jff_SUBX_l(tmp,dst,src); - live_flags(); -if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + int tmp=scratchie++; + dont_care_flags(); + make_flags_live(); + jff_SUBX_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9188_0_comp_ff(uae_u32 opcode) /* SUBX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); -{ int tmp=scratchie++; - dont_care_flags(); - make_flags_live(); - jff_SUBX_l(tmp,dst,src); - live_flags(); -if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + { + int tmp=scratchie++; + dont_care_flags(); + make_flags_live(); + jff_SUBX_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9190_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9198_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91a0_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91a8_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91b0_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91b8_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91b9_0_comp_ff(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_SUB_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_SUB_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91c0_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91c8_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91d0_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91d8_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91e0_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91e8_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91f0_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91f8_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91f9_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91fa_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91fb_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91fc_0_comp_ff(uae_u32 opcode) /* SUBA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b000_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b010_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b018_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b020_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b028_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b030_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b038_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b039_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b03a_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b03b_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b03c_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b040_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b048_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b050_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b058_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b060_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b068_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b070_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b078_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b079_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b07a_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b07b_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b07c_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b080_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b088_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b090_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b098_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0a0_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } #endif #ifdef PART_7 uae_u32 REGPARAM2 op_b0a8_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0b0_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0b8_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0b9_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0ba_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0bb_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0bc_0_comp_ff(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0c0_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0c8_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0d0_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0d8_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0e0_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0e8_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0f0_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0f8_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0f9_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0fa_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0fb_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0fc_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b100_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_b(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_b(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b108_0_comp_ff(uae_u32 opcode) /* CMPM */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); -{ dont_care_flags(); - jff_CMP_b(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + { + dont_care_flags(); + jff_CMP_b(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b110_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b118_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b120_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b128_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b130_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b138_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b139_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b140_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_w(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_w(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b148_0_comp_ff(uae_u32 opcode) /* CMPM */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); -{ dont_care_flags(); - jff_CMP_w(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + { + dont_care_flags(); + jff_CMP_w(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b150_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b158_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b160_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b168_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b170_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b178_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b179_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b180_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_l(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_l(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b188_0_comp_ff(uae_u32 opcode) /* CMPM */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); -{ dont_care_flags(); - jff_CMP_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + { + dont_care_flags(); + jff_CMP_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b190_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b198_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1a0_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1a8_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1b0_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1b8_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1b9_0_comp_ff(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_EOR_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_EOR_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1c0_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1c8_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1d0_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1d8_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1e0_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1e8_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1f0_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1f8_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1f9_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1fa_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1fb_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1fc_0_comp_ff(uae_u32 opcode) /* CMPA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); - jff_CMPA_l(dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + jff_CMPA_l(dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c000_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c010_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c018_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c020_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c028_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c030_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c038_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c039_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c03a_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c03b_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c03c_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c040_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c050_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c058_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c060_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c068_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c070_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c078_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c079_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c07a_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c07b_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c07c_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c080_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c090_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c098_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0a0_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0a8_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0b0_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0b8_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0b9_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0ba_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0bb_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0bc_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0c0_0_comp_ff(uae_u32 opcode) /* MULU */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int src=srcreg; -{ int dst=dstreg; -{ jff_MULU(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int src=srcreg; + { + int dst=dstreg; + { + jff_MULU(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0d0_0_comp_ff(uae_u32 opcode) /* MULU */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jff_MULU(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jff_MULU(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0d8_0_comp_ff(uae_u32 opcode) /* MULU */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dstreg; -{ jff_MULU(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dstreg; + { + jff_MULU(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0e0_0_comp_ff(uae_u32 opcode) /* MULU */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jff_MULU(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jff_MULU(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0e8_0_comp_ff(uae_u32 opcode) /* MULU */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jff_MULU(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jff_MULU(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0f0_0_comp_ff(uae_u32 opcode) /* MULU */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jff_MULU(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jff_MULU(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0f8_0_comp_ff(uae_u32 opcode) /* MULU */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jff_MULU(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jff_MULU(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0f9_0_comp_ff(uae_u32 opcode) /* MULU */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jff_MULU(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jff_MULU(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0fa_0_comp_ff(uae_u32 opcode) /* MULU */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jff_MULU(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jff_MULU(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0fb_0_comp_ff(uae_u32 opcode) /* MULU */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jff_MULU(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jff_MULU(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0fc_0_comp_ff(uae_u32 opcode) /* MULU */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; -{ jff_MULU(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + { + jff_MULU(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c110_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c118_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c120_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c128_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c130_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c138_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c139_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_b(tmp,dst,src); - live_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_b(tmp,dst,src); + live_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c140_0_comp_ff(uae_u32 opcode) /* EXG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ int tmp=scratchie++; - mov_l_rr(tmp,src); - if(srcreg!=dst) - mov_l_rr(srcreg,dst); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + int tmp=scratchie++; + mov_l_rr(tmp,src); + if(srcreg!=dst) + mov_l_rr(srcreg,dst); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c148_0_comp_ff(uae_u32 opcode) /* EXG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ int tmp=scratchie++; - mov_l_rr(tmp,src); - if(srcreg+8!=dst) - mov_l_rr(srcreg+8,dst); - if(dstreg+8!=tmp) - mov_l_rr(dstreg+8,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + int tmp=scratchie++; + mov_l_rr(tmp,src); + if(srcreg+8!=dst) + mov_l_rr(srcreg+8,dst); + if(dstreg+8!=tmp) + mov_l_rr(dstreg+8,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c150_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c158_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c160_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c168_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c170_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c178_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c179_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_w(tmp,dst,src); - live_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_w(tmp,dst,src); + live_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c188_0_comp_ff(uae_u32 opcode) /* EXG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ int tmp=scratchie++; - mov_l_rr(tmp,src); - if(srcreg!=dst) - mov_l_rr(srcreg,dst); - if(dstreg+8!=tmp) - mov_l_rr(dstreg+8,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + int tmp=scratchie++; + mov_l_rr(tmp,src); + if(srcreg!=dst) + mov_l_rr(srcreg,dst); + if(dstreg+8!=tmp) + mov_l_rr(dstreg+8,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c190_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c198_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1a0_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1a8_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1b0_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1b8_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1b9_0_comp_ff(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jff_AND_l(tmp,dst,src); - live_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jff_AND_l(tmp,dst,src); + live_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1c0_0_comp_ff(uae_u32 opcode) /* MULS */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int src=srcreg; -{ int dst=dstreg; -{ jff_MULS(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int src=srcreg; + { + int dst=dstreg; + { + jff_MULS(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1d0_0_comp_ff(uae_u32 opcode) /* MULS */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jff_MULS(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jff_MULS(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1d8_0_comp_ff(uae_u32 opcode) /* MULS */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dstreg; -{ jff_MULS(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dstreg; + { + jff_MULS(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1e0_0_comp_ff(uae_u32 opcode) /* MULS */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jff_MULS(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jff_MULS(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1e8_0_comp_ff(uae_u32 opcode) /* MULS */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jff_MULS(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jff_MULS(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1f0_0_comp_ff(uae_u32 opcode) /* MULS */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jff_MULS(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jff_MULS(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1f8_0_comp_ff(uae_u32 opcode) /* MULS */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jff_MULS(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jff_MULS(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1f9_0_comp_ff(uae_u32 opcode) /* MULS */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jff_MULS(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jff_MULS(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1fa_0_comp_ff(uae_u32 opcode) /* MULS */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jff_MULS(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jff_MULS(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1fb_0_comp_ff(uae_u32 opcode) /* MULS */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jff_MULS(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jff_MULS(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1fc_0_comp_ff(uae_u32 opcode) /* MULS */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; -{ jff_MULS(dst,src); - live_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + { + jff_MULS(dst,src); + live_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d000_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d010_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d018_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d020_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d028_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d030_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d038_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d039_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d03a_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d03b_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d03c_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d040_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d048_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d050_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d058_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d060_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d068_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d070_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d078_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d079_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d07a_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d07b_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d07c_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d080_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d088_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d090_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d098_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0a0_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0a8_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0b0_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0b8_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0b9_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0ba_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0bb_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0bc_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0c0_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0c8_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0d0_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0d8_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0e0_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0e8_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0f0_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0f8_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0f9_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0fa_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0fb_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0fc_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d100_0_comp_ff(uae_u32 opcode) /* ADDX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ dont_care_flags(); - int tmp=scratchie++; - make_flags_live(); - jff_ADDX_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + dont_care_flags(); + int tmp=scratchie++; + make_flags_live(); + jff_ADDX_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d108_0_comp_ff(uae_u32 opcode) /* ADDX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); - int tmp=scratchie++; - make_flags_live(); - jff_ADDX_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + int tmp=scratchie++; + make_flags_live(); + jff_ADDX_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d110_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d118_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d120_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d128_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d130_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d138_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d139_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_b(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_b(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d140_0_comp_ff(uae_u32 opcode) /* ADDX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ dont_care_flags(); - int tmp=scratchie++; - make_flags_live(); - jff_ADDX_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + dont_care_flags(); + int tmp=scratchie++; + make_flags_live(); + jff_ADDX_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d148_0_comp_ff(uae_u32 opcode) /* ADDX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); -{ dont_care_flags(); - int tmp=scratchie++; - make_flags_live(); - jff_ADDX_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + { + dont_care_flags(); + int tmp=scratchie++; + make_flags_live(); + jff_ADDX_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d150_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d158_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d160_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d168_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d170_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d178_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d179_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_w(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_w(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d180_0_comp_ff(uae_u32 opcode) /* ADDX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ dont_care_flags(); - int tmp=scratchie++; - make_flags_live(); - jff_ADDX_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + dont_care_flags(); + int tmp=scratchie++; + make_flags_live(); + jff_ADDX_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d188_0_comp_ff(uae_u32 opcode) /* ADDX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); -{ dont_care_flags(); - int tmp=scratchie++; - make_flags_live(); - jff_ADDX_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + { + dont_care_flags(); + int tmp=scratchie++; + make_flags_live(); + jff_ADDX_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d190_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d198_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1a0_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1a8_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1b0_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1b8_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1b9_0_comp_ff(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jff_ADD_l(tmp,dst,src); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jff_ADD_l(tmp,dst,src); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1c0_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1c8_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1d0_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1d8_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1e0_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1e8_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1f0_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1f8_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1f9_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1fa_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1fb_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1fc_0_comp_ff(uae_u32 opcode) /* ADDA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e000_0_comp_ff(uae_u32 opcode) /* ASR */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ int tmp=scratchie++; - jff_ASR_b_imm(tmp,data,srcreg); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + int tmp=scratchie++; + jff_ASR_b_imm(tmp,data,srcreg); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e008_0_comp_ff(uae_u32 opcode) /* LSR */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; - int tmp=scratchie++; -{ jff_LSR_b_imm(tmp,data,srcreg); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + int tmp=scratchie++; + { + jff_LSR_b_imm(tmp,data,srcreg); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e018_0_comp_ff(uae_u32 opcode) /* ROR */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ int tmp=scratchie++; - jff_ROR_b(tmp,data,cnt); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + int tmp=scratchie++; + jff_ROR_b(tmp,data,cnt); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e020_0_comp_ff(uae_u32 opcode) /* ASR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; -{ int tmp=scratchie++; - jff_ASR_b_reg(tmp,data,cnt); - live_flags(); -if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + { + int tmp=scratchie++; + jff_ASR_b_reg(tmp,data,cnt); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e028_0_comp_ff(uae_u32 opcode) /* LSR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; - int tmp=scratchie++; -{ jff_LSR_b_reg(tmp,data,cnt); - live_flags(); -if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + int tmp=scratchie++; + { + jff_LSR_b_reg(tmp,data,cnt); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e038_0_comp_ff(uae_u32 opcode) /* ROR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; -{ int tmp=scratchie++; - jff_ROR_b(tmp,data,cnt); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + { + int tmp=scratchie++; + jff_ROR_b(tmp,data,cnt); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e040_0_comp_ff(uae_u32 opcode) /* ASR */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ int tmp=scratchie++; - jff_ASR_w_imm(tmp,data,srcreg); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + int tmp=scratchie++; + jff_ASR_w_imm(tmp,data,srcreg); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } #endif #ifdef PART_8 uae_u32 REGPARAM2 op_e048_0_comp_ff(uae_u32 opcode) /* LSR */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; - int tmp=scratchie++; -{ jff_LSR_w_imm(tmp,data,srcreg); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + int tmp=scratchie++; + { + jff_LSR_w_imm(tmp,data,srcreg); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e058_0_comp_ff(uae_u32 opcode) /* ROR */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ int tmp=scratchie++; - jff_ROR_w(tmp,data,cnt); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + int tmp=scratchie++; + jff_ROR_w(tmp,data,cnt); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e060_0_comp_ff(uae_u32 opcode) /* ASR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; -{ int tmp=scratchie++; - jff_ASR_w_reg(tmp,data,cnt); - live_flags(); -if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + { + int tmp=scratchie++; + jff_ASR_w_reg(tmp,data,cnt); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e068_0_comp_ff(uae_u32 opcode) /* LSR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; - int tmp=scratchie++; -{ jff_LSR_w_reg(tmp,data,cnt); - live_flags(); -if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + int tmp=scratchie++; + { + jff_LSR_w_reg(tmp,data,cnt); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e078_0_comp_ff(uae_u32 opcode) /* ROR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; -{ int tmp=scratchie++; - jff_ROR_w(tmp,data,cnt); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + { + int tmp=scratchie++; + jff_ROR_w(tmp,data,cnt); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e080_0_comp_ff(uae_u32 opcode) /* ASR */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ int tmp=scratchie++; - jff_ASR_l_imm(tmp,data,srcreg); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + int tmp=scratchie++; + jff_ASR_l_imm(tmp,data,srcreg); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e088_0_comp_ff(uae_u32 opcode) /* LSR */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; - int tmp=scratchie++; -{ jff_LSR_l_imm(tmp,data,srcreg); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + int tmp=scratchie++; + { + jff_LSR_l_imm(tmp,data,srcreg); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e098_0_comp_ff(uae_u32 opcode) /* ROR */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ int tmp=scratchie++; - jff_ROR_l(tmp,data,cnt); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + int tmp=scratchie++; + jff_ROR_l(tmp,data,cnt); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e0a0_0_comp_ff(uae_u32 opcode) /* ASR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; -{ int tmp=scratchie++; - jff_ASR_l_reg(tmp,data,cnt); - live_flags(); -if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + { + int tmp=scratchie++; + jff_ASR_l_reg(tmp,data,cnt); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e0a8_0_comp_ff(uae_u32 opcode) /* LSR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; - int tmp=scratchie++; -{ jff_LSR_l_reg(tmp,data,cnt); - live_flags(); -if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + int tmp=scratchie++; + { + jff_LSR_l_reg(tmp,data,cnt); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e0b8_0_comp_ff(uae_u32 opcode) /* ROR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; -{ int tmp=scratchie++; - jff_ROR_l(tmp,data,cnt); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + { + int tmp=scratchie++; + jff_ROR_l(tmp,data,cnt); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e0d0_0_comp_ff(uae_u32 opcode) /* ASRW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_ASRW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_ASRW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e0d8_0_comp_ff(uae_u32 opcode) /* ASRW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int tmp = scratchie++; - jff_ASRW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int tmp = scratchie++; + jff_ASRW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e0e0_0_comp_ff(uae_u32 opcode) /* ASRW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_ASRW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_ASRW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e0e8_0_comp_ff(uae_u32 opcode) /* ASRW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_ASRW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_ASRW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e0f0_0_comp_ff(uae_u32 opcode) /* ASRW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_ASRW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_ASRW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e0f8_0_comp_ff(uae_u32 opcode) /* ASRW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_ASRW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_ASRW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e0f9_0_comp_ff(uae_u32 opcode) /* ASRW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_ASRW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_ASRW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e100_0_comp_ff(uae_u32 opcode) /* ASL */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); - int tmp=scratchie++; -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ jff_ASL_b_imm(tmp,data,srcreg); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + int tmp=scratchie++; + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + jff_ASL_b_imm(tmp,data,srcreg); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e108_0_comp_ff(uae_u32 opcode) /* LSL */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; - int tmp=scratchie++; -{ jff_LSL_b_imm(tmp,data,srcreg); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + int tmp=scratchie++; + { + jff_LSL_b_imm(tmp,data,srcreg); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e118_0_comp_ff(uae_u32 opcode) /* ROL */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ int tmp=scratchie++; - jff_ROL_b(tmp,data,cnt); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + int tmp=scratchie++; + jff_ROL_b(tmp,data,cnt); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e120_0_comp_ff(uae_u32 opcode) /* ASL */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); - int tmp=scratchie++; -{ int cnt=srcreg; -{ int data=dstreg; -{ jff_ASL_b_reg(tmp,data,cnt); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + int tmp=scratchie++; + { + int cnt=srcreg; + { + int data=dstreg; + { + jff_ASL_b_reg(tmp,data,cnt); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e128_0_comp_ff(uae_u32 opcode) /* LSL */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; - int tmp=scratchie++; -{ jff_LSL_b_reg(tmp,data,cnt); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + int tmp=scratchie++; + { + jff_LSL_b_reg(tmp,data,cnt); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e138_0_comp_ff(uae_u32 opcode) /* ROL */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; -{ int tmp=scratchie++; - jff_ROL_b(tmp,data,cnt); - live_flags(); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + { + int tmp=scratchie++; + jff_ROL_b(tmp,data,cnt); + live_flags(); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e140_0_comp_ff(uae_u32 opcode) /* ASL */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); - int tmp=scratchie++; -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ jff_ASL_w_imm(tmp,data,srcreg); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + int tmp=scratchie++; + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + jff_ASL_w_imm(tmp,data,srcreg); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e148_0_comp_ff(uae_u32 opcode) /* LSL */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; - int tmp=scratchie++; -{ jff_LSL_w_imm(tmp,data,srcreg); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + int tmp=scratchie++; + { + jff_LSL_w_imm(tmp,data,srcreg); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e158_0_comp_ff(uae_u32 opcode) /* ROL */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ int tmp=scratchie++; - jff_ROL_w(tmp,data,cnt); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + int tmp=scratchie++; + jff_ROL_w(tmp,data,cnt); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e160_0_comp_ff(uae_u32 opcode) /* ASL */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); - int tmp=scratchie++; -{ int cnt=srcreg; -{ int data=dstreg; -{ jff_ASL_w_reg(tmp,data,cnt); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + int tmp=scratchie++; + { + int cnt=srcreg; + { + int data=dstreg; + { + jff_ASL_w_reg(tmp,data,cnt); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e168_0_comp_ff(uae_u32 opcode) /* LSL */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; - int tmp=scratchie++; -{ jff_LSL_w_reg(tmp,data,cnt); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + int tmp=scratchie++; + { + jff_LSL_w_reg(tmp,data,cnt); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e178_0_comp_ff(uae_u32 opcode) /* ROL */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; -{ int tmp=scratchie++; - jff_ROL_w(tmp,data,cnt); - live_flags(); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + { + int tmp=scratchie++; + jff_ROL_w(tmp,data,cnt); + live_flags(); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e180_0_comp_ff(uae_u32 opcode) /* ASL */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); - int tmp=scratchie++; -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ jff_ASL_l_imm(tmp,data,srcreg); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + int tmp=scratchie++; + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + jff_ASL_l_imm(tmp,data,srcreg); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e188_0_comp_ff(uae_u32 opcode) /* LSL */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; - int tmp=scratchie++; -{ jff_LSL_l_imm(tmp,data,srcreg); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + int tmp=scratchie++; + { + jff_LSL_l_imm(tmp,data,srcreg); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e198_0_comp_ff(uae_u32 opcode) /* ROL */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ int tmp=scratchie++; - jff_ROL_l(tmp,data,cnt); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + int tmp=scratchie++; + jff_ROL_l(tmp,data,cnt); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e1a0_0_comp_ff(uae_u32 opcode) /* ASL */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); - int tmp=scratchie++; -{ int cnt=srcreg; -{ int data=dstreg; -{ jff_ASL_l_reg(tmp,data,cnt); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + int tmp=scratchie++; + { + int cnt=srcreg; + { + int data=dstreg; + { + jff_ASL_l_reg(tmp,data,cnt); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e1a8_0_comp_ff(uae_u32 opcode) /* LSL */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; - int tmp=scratchie++; -{ jff_LSL_l_reg(tmp,data,cnt); - live_flags(); - if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + int tmp=scratchie++; + { + jff_LSL_l_reg(tmp,data,cnt); + live_flags(); + if (!(needed_flags & FLAG_CZNV)) dont_care_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e1b8_0_comp_ff(uae_u32 opcode) /* ROL */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; -{ int tmp=scratchie++; - jff_ROL_l(tmp,data,cnt); - live_flags(); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + { + int tmp=scratchie++; + jff_ROL_l(tmp,data,cnt); + live_flags(); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e1d0_0_comp_ff(uae_u32 opcode) /* ASLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jff_ASLW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jff_ASLW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e1d8_0_comp_ff(uae_u32 opcode) /* ASLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int tmp=scratchie++; - jff_ASLW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int tmp=scratchie++; + jff_ASLW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e1e0_0_comp_ff(uae_u32 opcode) /* ASLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jff_ASLW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jff_ASLW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e1e8_0_comp_ff(uae_u32 opcode) /* ASLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jff_ASLW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jff_ASLW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e1f0_0_comp_ff(uae_u32 opcode) /* ASLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jff_ASLW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jff_ASLW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e1f8_0_comp_ff(uae_u32 opcode) /* ASLW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jff_ASLW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jff_ASLW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e1f9_0_comp_ff(uae_u32 opcode) /* ASLW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jff_ASLW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jff_ASLW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e2d0_0_comp_ff(uae_u32 opcode) /* LSRW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_LSRW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_LSRW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e2d8_0_comp_ff(uae_u32 opcode) /* LSRW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int tmp = scratchie++; - jff_LSRW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int tmp = scratchie++; + jff_LSRW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e2e0_0_comp_ff(uae_u32 opcode) /* LSRW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_LSRW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_LSRW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e2e8_0_comp_ff(uae_u32 opcode) /* LSRW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_LSRW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_LSRW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e2f0_0_comp_ff(uae_u32 opcode) /* LSRW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_LSRW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_LSRW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e2f8_0_comp_ff(uae_u32 opcode) /* LSRW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_LSRW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_LSRW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e2f9_0_comp_ff(uae_u32 opcode) /* LSRW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_LSRW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_LSRW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e3d0_0_comp_ff(uae_u32 opcode) /* LSLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jff_LSLW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jff_LSLW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e3d8_0_comp_ff(uae_u32 opcode) /* LSLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int tmp=scratchie++; - jff_LSLW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int tmp=scratchie++; + jff_LSLW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e3e0_0_comp_ff(uae_u32 opcode) /* LSLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jff_LSLW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jff_LSLW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e3e8_0_comp_ff(uae_u32 opcode) /* LSLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jff_LSLW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jff_LSLW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e3f0_0_comp_ff(uae_u32 opcode) /* LSLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jff_LSLW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jff_LSLW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e3f8_0_comp_ff(uae_u32 opcode) /* LSLW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jff_LSLW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jff_LSLW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e3f9_0_comp_ff(uae_u32 opcode) /* LSLW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jff_LSLW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jff_LSLW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e6d0_0_comp_ff(uae_u32 opcode) /* RORW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_RORW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_RORW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e6d8_0_comp_ff(uae_u32 opcode) /* RORW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int tmp = scratchie++; - jff_RORW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int tmp = scratchie++; + jff_RORW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e6e0_0_comp_ff(uae_u32 opcode) /* RORW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_RORW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_RORW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e6e8_0_comp_ff(uae_u32 opcode) /* RORW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_RORW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_RORW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e6f0_0_comp_ff(uae_u32 opcode) /* RORW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_RORW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_RORW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e6f8_0_comp_ff(uae_u32 opcode) /* RORW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_RORW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_RORW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e6f9_0_comp_ff(uae_u32 opcode) /* RORW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_RORW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_RORW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e7d0_0_comp_ff(uae_u32 opcode) /* ROLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_ROLW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_ROLW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e7d8_0_comp_ff(uae_u32 opcode) /* ROLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int tmp = scratchie++; - jff_ROLW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int tmp = scratchie++; + jff_ROLW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e7e0_0_comp_ff(uae_u32 opcode) /* ROLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_ROLW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_ROLW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e7e8_0_comp_ff(uae_u32 opcode) /* ROLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_ROLW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_ROLW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e7f0_0_comp_ff(uae_u32 opcode) /* ROLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_ROLW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_ROLW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e7f8_0_comp_ff(uae_u32 opcode) /* ROLW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_ROLW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_ROLW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e7f9_0_comp_ff(uae_u32 opcode) /* ROLW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jff_ROLW(tmp,src); - live_flags(); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jff_ROLW(tmp,src); + live_flags(); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_f600_0_comp_ff(uae_u32 opcode) /* MOVE16 */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if (special_mem) { - FAIL(1); - return 0; -} - int src=scratchie++; - int dst=scratchie++; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - jnf_ADD_im8(srcreg + 8, srcreg + 8, 16); - jnf_MOVE16(dst, src); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if (special_mem) + { + FAIL(1); + return 0; + } + int src=scratchie++; + int dst=scratchie++; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + jnf_ADD_im8(srcreg + 8, srcreg + 8, 16); + jnf_MOVE16(dst, src); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_f608_0_comp_ff(uae_u32 opcode) /* MOVE16 */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if (special_mem) { - FAIL(1); - return 0; -} - int src=scratchie++; - int dst=scratchie++; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - jnf_ADD_im8(dstreg + 8, dstreg + 8, 16); - jnf_MOVE16(dst, src); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if (special_mem) + { + FAIL(1); + return 0; + } + int src=scratchie++; + int dst=scratchie++; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + jnf_ADD_im8(dstreg + 8, dstreg + 8, 16); + jnf_MOVE16(dst, src); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_f610_0_comp_ff(uae_u32 opcode) /* MOVE16 */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if (special_mem) { - FAIL(1); - return 0; -} - int src=scratchie++; - int dst=scratchie++; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - jnf_MOVE16(dst, src); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if (special_mem) + { + FAIL(1); + return 0; + } + int src=scratchie++; + int dst=scratchie++; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + jnf_MOVE16(dst, src); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_f618_0_comp_ff(uae_u32 opcode) /* MOVE16 */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if (special_mem) { - FAIL(1); - return 0; -} - int src=scratchie++; - int dst=scratchie++; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - jnf_MOVE16(dst, src); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if (special_mem) + { + FAIL(1); + return 0; + } + int src=scratchie++; + int dst=scratchie++; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + jnf_MOVE16(dst, src); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_f620_0_comp_ff(uae_u32 opcode) /* MOVE16 */ { - uae_s32 srcreg = (opcode & 7); - uae_s32 dstreg = 0; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if (special_mem) { - FAIL(1); - return 0; -} - int src=scratchie++; - int dst=scratchie++; - uae_u16 dstreg = ((comp_get_iword((m68k_pc_offset+=2)-2))>>12) & 0x07; - jnf_MOVE(src, srcreg + 8); - jnf_MOVE(dst, dstreg + 8); - if (srcreg != dstreg) - jnf_ADD_im8(srcreg + 8, srcreg + 8, 16); - jnf_ADD_im8(dstreg + 8, dstreg + 8, 16); - jnf_MOVE16(dst, src); -} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = (opcode & 7); + uae_s32 dstreg = 0; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if (special_mem) + { + FAIL(1); + return 0; + } + int src=scratchie++; + int dst=scratchie++; + uae_u16 dstreg = ((comp_get_iword((m68k_pc_offset+=2)-2))>>12) & 0x07; + jnf_MOVE(src, srcreg + 8); + jnf_MOVE(dst, dstreg + 8); + if (srcreg != dstreg) + jnf_ADD_im8(srcreg + 8, srcreg + 8, 16); + jnf_ADD_im8(dstreg + 8, dstreg + 8, 16); + jnf_MOVE16(dst, src); + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } #endif @@ -30467,28579 +43783,41825 @@ extern void comp_fbcc_opp(); #ifdef PART_1 uae_u32 REGPARAM2 op_0_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_18_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_28_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_38_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_39_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3c_0_comp_nf(uae_u32 opcode) /* ORSR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_40_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_58_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_60_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_68_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_70_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_78_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_79_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_80_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_98_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a0_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a8_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b8_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b9_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_100_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_110_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_118_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); -{ dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + { + dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_120_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_128_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_130_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_138_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_139_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13a_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_s32 dstreg = 2; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(dsta,address+PC16off); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_s32 dstreg = 2; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(dsta,address+PC16off); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13b_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_s32 dstreg = 3; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int pctmp=scratchie++; - int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_s32 dstreg = 3; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int pctmp=scratchie++; + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13c_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst = scratchie++; - mov_l_ri(dst,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst = scratchie++; + mov_l_ri(dst,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_140_0_comp_nf(uae_u32 opcode) /* BCHG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ jnf_BCHG_l(dst,src); - dont_care_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + jnf_BCHG_l(dst,src); + dont_care_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_150_0_comp_nf(uae_u32 opcode) /* BCHG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCHG_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCHG_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_158_0_comp_nf(uae_u32 opcode) /* BCHG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); -{ jnf_BCHG_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + { + jnf_BCHG_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_160_0_comp_nf(uae_u32 opcode) /* BCHG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCHG_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCHG_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_168_0_comp_nf(uae_u32 opcode) /* BCHG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCHG_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCHG_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_170_0_comp_nf(uae_u32 opcode) /* BCHG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCHG_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCHG_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_178_0_comp_nf(uae_u32 opcode) /* BCHG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCHG_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCHG_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_179_0_comp_nf(uae_u32 opcode) /* BCHG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCHG_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCHG_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_180_0_comp_nf(uae_u32 opcode) /* BCLR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ jnf_BCLR_l(dst,src); - dont_care_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + jnf_BCLR_l(dst,src); + dont_care_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_190_0_comp_nf(uae_u32 opcode) /* BCLR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCLR_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCLR_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_198_0_comp_nf(uae_u32 opcode) /* BCLR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); -{ jnf_BCLR_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + { + jnf_BCLR_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1a0_0_comp_nf(uae_u32 opcode) /* BCLR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCLR_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCLR_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1a8_0_comp_nf(uae_u32 opcode) /* BCLR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCLR_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCLR_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1b0_0_comp_nf(uae_u32 opcode) /* BCLR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCLR_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCLR_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1b8_0_comp_nf(uae_u32 opcode) /* BCLR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCLR_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCLR_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1b9_0_comp_nf(uae_u32 opcode) /* BCLR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCLR_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCLR_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1c0_0_comp_nf(uae_u32 opcode) /* BSET */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ jnf_BSET_l(dst,src); - dont_care_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + jnf_BSET_l(dst,src); + dont_care_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1d0_0_comp_nf(uae_u32 opcode) /* BSET */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BSET_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BSET_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1d8_0_comp_nf(uae_u32 opcode) /* BSET */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); -{ jnf_BSET_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + { + jnf_BSET_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1e0_0_comp_nf(uae_u32 opcode) /* BSET */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BSET_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BSET_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1e8_0_comp_nf(uae_u32 opcode) /* BSET */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BSET_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BSET_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1f0_0_comp_nf(uae_u32 opcode) /* BSET */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BSET_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BSET_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1f8_0_comp_nf(uae_u32 opcode) /* BSET */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BSET_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BSET_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1f9_0_comp_nf(uae_u32 opcode) /* BSET */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BSET_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BSET_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_200_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_210_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_218_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_220_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_228_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_230_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_238_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_239_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23c_0_comp_nf(uae_u32 opcode) /* ANDSR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_240_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_250_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_258_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_260_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_268_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_270_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_278_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_279_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_280_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_290_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_298_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2a0_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2a8_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2b0_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2b8_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2b9_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_400_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_410_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_418_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_420_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_428_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_430_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_438_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_439_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_440_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_450_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_458_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_460_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_468_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_470_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_478_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_479_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_480_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_490_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_498_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a0_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a8_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4b0_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4b8_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4b9_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_600_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_610_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_618_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_620_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_628_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_630_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_638_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_639_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_640_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_650_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_658_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_660_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_668_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_670_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_678_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_679_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_680_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_690_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_698_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6a0_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6a8_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6b0_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6b8_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6b9_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_800_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; -{ dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + { + dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_810_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_818_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); -{ dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + { + dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_820_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_828_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_830_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_838_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_839_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_83a_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_s32 dstreg = 2; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(dsta,address+PC16off); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 2; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(dsta,address+PC16off); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_83b_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_s32 dstreg = 3; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int pctmp=scratchie++; - int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 3; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int pctmp=scratchie++; + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_83c_0_comp_nf(uae_u32 opcode) /* BTST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst = scratchie++; - mov_l_ri(dst,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst = scratchie++; + mov_l_ri(dst,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_840_0_comp_nf(uae_u32 opcode) /* BCHG */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; -{ jnf_BCHG_l(dst,src); - dont_care_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + { + jnf_BCHG_l(dst,src); + dont_care_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_850_0_comp_nf(uae_u32 opcode) /* BCHG */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCHG_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCHG_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_858_0_comp_nf(uae_u32 opcode) /* BCHG */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); -{ jnf_BCHG_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + { + jnf_BCHG_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_860_0_comp_nf(uae_u32 opcode) /* BCHG */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCHG_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCHG_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_868_0_comp_nf(uae_u32 opcode) /* BCHG */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCHG_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCHG_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_870_0_comp_nf(uae_u32 opcode) /* BCHG */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCHG_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCHG_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_878_0_comp_nf(uae_u32 opcode) /* BCHG */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCHG_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCHG_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_879_0_comp_nf(uae_u32 opcode) /* BCHG */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCHG_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCHG_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_880_0_comp_nf(uae_u32 opcode) /* BCLR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; -{ jnf_BCLR_l(dst,src); - dont_care_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + { + jnf_BCLR_l(dst,src); + dont_care_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_890_0_comp_nf(uae_u32 opcode) /* BCLR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCLR_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCLR_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_898_0_comp_nf(uae_u32 opcode) /* BCLR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); -{ jnf_BCLR_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + { + jnf_BCLR_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8a0_0_comp_nf(uae_u32 opcode) /* BCLR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCLR_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCLR_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8a8_0_comp_nf(uae_u32 opcode) /* BCLR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCLR_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCLR_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8b0_0_comp_nf(uae_u32 opcode) /* BCLR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCLR_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCLR_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8b8_0_comp_nf(uae_u32 opcode) /* BCLR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCLR_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCLR_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8b9_0_comp_nf(uae_u32 opcode) /* BCLR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BCLR_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BCLR_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8c0_0_comp_nf(uae_u32 opcode) /* BSET */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; -{ jnf_BSET_l(dst,src); - dont_care_flags(); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + { + jnf_BSET_l(dst,src); + dont_care_flags(); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8d0_0_comp_nf(uae_u32 opcode) /* BSET */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BSET_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BSET_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8d8_0_comp_nf(uae_u32 opcode) /* BSET */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); -{ jnf_BSET_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + { + jnf_BSET_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8e0_0_comp_nf(uae_u32 opcode) /* BSET */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BSET_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BSET_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8e8_0_comp_nf(uae_u32 opcode) /* BSET */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BSET_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BSET_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8f0_0_comp_nf(uae_u32 opcode) /* BSET */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BSET_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BSET_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8f8_0_comp_nf(uae_u32 opcode) /* BSET */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BSET_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BSET_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8f9_0_comp_nf(uae_u32 opcode) /* BSET */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ jnf_BSET_b(dst,src); - dont_care_flags(); - writebyte(dsta,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + jnf_BSET_b(dst,src); + dont_care_flags(); + writebyte(dsta,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a00_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a10_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a18_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a20_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a28_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a30_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a38_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a39_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a3c_0_comp_nf(uae_u32 opcode) /* EORSR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a40_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a50_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a58_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a60_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a68_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a70_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a78_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a79_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a80_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a90_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_a98_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_aa0_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_aa8_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_ab0_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_ab8_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_ab9_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } #endif #ifdef PART_2 uae_u32 REGPARAM2 op_c00_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c10_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c18_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c20_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c28_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c30_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c38_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c39_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c3a_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 dstreg = 2; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(dsta,address+PC16off); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 2; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(dsta,address+PC16off); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c3b_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 dstreg = 3; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int pctmp=scratchie++; - int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 3; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int pctmp=scratchie++; + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c40_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c50_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c58_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c60_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c68_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c70_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c78_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c79_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c7a_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 dstreg = 2; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(dsta,address+PC16off); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 2; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(dsta,address+PC16off); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c7b_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 dstreg = 3; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int pctmp=scratchie++; - int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 3; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int pctmp=scratchie++; + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c80_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c90_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c98_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_ca0_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_ca8_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_cb0_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_cb8_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_cb9_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_cba_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 dstreg = 2; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(dsta,address+PC16off); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 2; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(dsta,address+PC16off); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_cbb_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 dstreg = 3; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int pctmp=scratchie++; - int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 3; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int pctmp=scratchie++; + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1000_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1010_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1018_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1020_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1028_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1030_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1038_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1039_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_103a_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_103b_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_103c_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1080_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1090_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1098_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10a0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10a8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10b0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10b8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10b9_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10ba_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10bb_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10bc_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10c0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10d0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10d8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10e0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10e8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10f0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10f8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10f9_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10fa_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10fb_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_10fc_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1100_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1110_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1118_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1120_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1128_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1130_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1138_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1139_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_113a_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_113b_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_113c_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1140_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1150_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1158_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1160_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1168_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1170_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1178_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1179_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_117a_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_117b_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_117c_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1180_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1190_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_1198_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11a0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11a8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11b0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11b8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11b9_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11ba_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11bb_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11bc_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11c0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11d0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11d8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11e0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11e8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11f0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11f8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11f9_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11fa_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11fb_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_11fc_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13c0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13d0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13d8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13e0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13e8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13f0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13f8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13f9_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13fa_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13fb_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_13fc_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writebyte(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writebyte(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2000_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2008_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2010_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2018_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2020_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2028_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2030_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2038_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2039_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_203a_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_203b_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_203c_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2040_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2048_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2050_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2058_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2060_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2068_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2070_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2078_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2079_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_207a_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_207b_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_207c_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2080_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2088_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2090_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2098_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20a0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20a8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20b0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20b8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20b9_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20ba_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20bb_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20bc_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20c0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20c8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20d0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20d8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20e0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20e8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20f0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20f8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20f9_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20fa_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20fb_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_20fc_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2100_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2108_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2110_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2118_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2120_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2128_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2130_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2138_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2139_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_213a_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_213b_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_213c_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2140_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2148_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2150_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2158_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2160_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2168_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2170_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2178_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2179_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_217a_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_217b_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_217c_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2180_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2188_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_2190_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } #endif #ifdef PART_3 uae_u32 REGPARAM2 op_2198_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21a0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21a8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21b0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21b8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21b9_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21ba_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21bb_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21bc_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21c0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21c8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21d0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21d8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21e0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21e8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21f0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21f8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21f9_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21fa_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21fb_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_21fc_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23c0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23c8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23d0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23d8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23e0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23e8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23f0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23f8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23f9_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23fa_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23fb_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_23fc_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writelong(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writelong(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3000_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3008_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3010_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3018_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3020_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3028_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3030_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3038_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3039_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_303a_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_303b_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_303c_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3040_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3048_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3050_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3058_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3060_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3068_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3070_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3078_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3079_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_307a_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_307b_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_307c_0_comp_nf(uae_u32 opcode) /* MOVEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dodgy?scratchie++:dstreg+8; -{ jnf_MOVEA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dodgy?scratchie++:dstreg+8; + { + jnf_MOVEA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3080_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3088_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3090_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3098_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30a0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30a8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30b0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30b8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30b9_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30ba_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30bb_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30bc_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30c0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30c8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30d0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30d8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30e0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30e8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30f0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30f8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30f9_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30fa_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30fb_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_30fc_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3100_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3108_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3110_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3118_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3120_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3128_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3130_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3138_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3139_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_313a_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_313b_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_313c_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3140_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3148_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3150_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3158_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3160_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3168_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3170_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3178_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3179_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_317a_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_317b_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_317c_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3180_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3188_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3190_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_3198_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31a0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31a8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31b0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31b8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31b9_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31ba_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31bb_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31bc_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31c0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31c8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31d0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31d8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31e0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31e8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31f0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31f8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31f9_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31fa_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31fb_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_31fc_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33c0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33c8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33d0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33d8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33e0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33e8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33f0_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33f8_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33f9_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33fa_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33fb_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_33fc_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ writeword(dsta,src,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + writeword(dsta,src,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4000_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=scratchie++; - jnf_NEGX_b(dst,src); - if(srcreg!=dst) - mov_b_rr(srcreg,dst); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=scratchie++; + jnf_NEGX_b(dst,src); + if(srcreg!=dst) + mov_b_rr(srcreg,dst); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4010_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=scratchie++; - jnf_NEGX_b(dst,src); - writebyte(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=scratchie++; + jnf_NEGX_b(dst,src); + writebyte(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4018_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dst=scratchie++; - jnf_NEGX_b(dst,src); - writebyte(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dst=scratchie++; + jnf_NEGX_b(dst,src); + writebyte(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4020_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=scratchie++; - jnf_NEGX_b(dst,src); - writebyte(srca,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=scratchie++; + jnf_NEGX_b(dst,src); + writebyte(srca,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4028_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=scratchie++; - jnf_NEGX_b(dst,src); - writebyte(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=scratchie++; + jnf_NEGX_b(dst,src); + writebyte(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4030_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=scratchie++; - jnf_NEGX_b(dst,src); - writebyte(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=scratchie++; + jnf_NEGX_b(dst,src); + writebyte(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4038_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=scratchie++; - jnf_NEGX_b(dst,src); - writebyte(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=scratchie++; + jnf_NEGX_b(dst,src); + writebyte(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4039_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=scratchie++; - jnf_NEGX_b(dst,src); - writebyte(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=scratchie++; + jnf_NEGX_b(dst,src); + writebyte(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4040_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=scratchie++; - jnf_NEGX_w(dst,src); - if(srcreg!=dst) - mov_w_rr(srcreg,dst); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=scratchie++; + jnf_NEGX_w(dst,src); + if(srcreg!=dst) + mov_w_rr(srcreg,dst); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4050_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=scratchie++; - jnf_NEGX_w(dst,src); - writeword(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=scratchie++; + jnf_NEGX_w(dst,src); + writeword(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4058_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=scratchie++; - jnf_NEGX_w(dst,src); - writeword(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=scratchie++; + jnf_NEGX_w(dst,src); + writeword(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4060_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=scratchie++; - jnf_NEGX_w(dst,src); - writeword(srca,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=scratchie++; + jnf_NEGX_w(dst,src); + writeword(srca,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4068_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=scratchie++; - jnf_NEGX_w(dst,src); - writeword(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=scratchie++; + jnf_NEGX_w(dst,src); + writeword(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4070_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=scratchie++; - jnf_NEGX_w(dst,src); - writeword(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=scratchie++; + jnf_NEGX_w(dst,src); + writeword(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4078_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=scratchie++; - jnf_NEGX_w(dst,src); - writeword(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=scratchie++; + jnf_NEGX_w(dst,src); + writeword(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4079_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=scratchie++; - jnf_NEGX_w(dst,src); - writeword(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=scratchie++; + jnf_NEGX_w(dst,src); + writeword(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4080_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=scratchie++; - jnf_NEGX_l(dst,src); - if(srcreg!=dst) - mov_l_rr(srcreg,dst); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=scratchie++; + jnf_NEGX_l(dst,src); + if(srcreg!=dst) + mov_l_rr(srcreg,dst); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4090_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=scratchie++; - jnf_NEGX_l(dst,src); - writelong(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=scratchie++; + jnf_NEGX_l(dst,src); + writelong(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4098_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=scratchie++; - jnf_NEGX_l(dst,src); - writelong(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=scratchie++; + jnf_NEGX_l(dst,src); + writelong(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_40a0_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=scratchie++; - jnf_NEGX_l(dst,src); - writelong(srca,dst,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=scratchie++; + jnf_NEGX_l(dst,src); + writelong(srca,dst,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_40a8_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=scratchie++; - jnf_NEGX_l(dst,src); - writelong(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=scratchie++; + jnf_NEGX_l(dst,src); + writelong(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_40b0_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=scratchie++; - jnf_NEGX_l(dst,src); - writelong(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=scratchie++; + jnf_NEGX_l(dst,src); + writelong(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_40b8_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=scratchie++; - jnf_NEGX_l(dst,src); - writelong(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=scratchie++; + jnf_NEGX_l(dst,src); + writelong(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_40b9_0_comp_nf(uae_u32 opcode) /* NEGX */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=scratchie++; - jnf_NEGX_l(dst,src); - writelong(srca,dst,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=scratchie++; + jnf_NEGX_l(dst,src); + writelong(srca,dst,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_41d0_0_comp_nf(uae_u32 opcode) /* LEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int dst=dodgy?scratchie++:dstreg+8; - if(dstreg+8!=srca) - mov_l_rr(dstreg+8,srca); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int dst=dodgy?scratchie++:dstreg+8; + if(dstreg+8!=srca) + mov_l_rr(dstreg+8,srca); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_41e8_0_comp_nf(uae_u32 opcode) /* LEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dodgy?scratchie++:dstreg+8; - if(dstreg+8!=srca) - mov_l_rr(dstreg+8,srca); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dodgy?scratchie++:dstreg+8; + if(dstreg+8!=srca) + mov_l_rr(dstreg+8,srca); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_41f0_0_comp_nf(uae_u32 opcode) /* LEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if(dstreg+8!=srca) - mov_l_rr(dstreg+8,srca); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if(dstreg+8!=srca) + mov_l_rr(dstreg+8,srca); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_41f8_0_comp_nf(uae_u32 opcode) /* LEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dodgy?scratchie++:dstreg+8; - if(dstreg+8!=srca) - mov_l_rr(dstreg+8,srca); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dodgy?scratchie++:dstreg+8; + if(dstreg+8!=srca) + mov_l_rr(dstreg+8,srca); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_41f9_0_comp_nf(uae_u32 opcode) /* LEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=dodgy?scratchie++:dstreg+8; - if(dstreg+8!=srca) - mov_l_rr(dstreg+8,srca); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=dodgy?scratchie++:dstreg+8; + if(dstreg+8!=srca) + mov_l_rr(dstreg+8,srca); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_41fa_0_comp_nf(uae_u32 opcode) /* LEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int dst=dodgy?scratchie++:dstreg+8; - if(dstreg+8!=srca) - mov_l_rr(dstreg+8,srca); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int dst=dodgy?scratchie++:dstreg+8; + if(dstreg+8!=srca) + mov_l_rr(dstreg+8,srca); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_41fb_0_comp_nf(uae_u32 opcode) /* LEA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if(dstreg+8!=srca) - mov_l_rr(dstreg+8,srca); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if(dstreg+8!=srca) + mov_l_rr(dstreg+8,srca); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4200_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - if(srcreg!=tmp) - mov_b_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + if(srcreg!=tmp) + mov_b_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4210_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - writebyte(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + writebyte(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4218_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - writebyte(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + writebyte(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4220_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4228_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - writebyte(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + writebyte(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4230_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - writebyte(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + writebyte(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4238_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - writebyte(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + writebyte(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4239_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - writebyte(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + writebyte(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4240_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - if(srcreg!=tmp) - mov_w_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + if(srcreg!=tmp) + mov_w_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4250_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - writeword(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + writeword(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4258_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - writeword(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + writeword(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4260_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4268_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - writeword(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + writeword(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4270_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - writeword(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + writeword(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4278_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - writeword(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + writeword(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4279_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - writeword(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + writeword(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4280_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - if(srcreg!=tmp) - mov_l_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + if(srcreg!=tmp) + mov_l_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4290_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - writelong(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + writelong(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4298_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - writelong(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + writelong(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_42a0_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_42a8_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - writelong(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + writelong(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_42b0_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - writelong(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + writelong(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_42b8_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - writelong(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + writelong(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_42b9_0_comp_nf(uae_u32 opcode) /* CLR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - dont_care_flags(); -{ int tmp=scratchie++; - jnf_CLR(tmp); - writelong(srca,tmp,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + dont_care_flags(); + { + int tmp=scratchie++; + jnf_CLR(tmp); + writelong(srca,tmp,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } #endif #ifdef PART_4 uae_u32 REGPARAM2 op_4400_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int tmp=scratchie++; - jnf_NEG_b(tmp,src); - if(srcreg!=tmp) - mov_b_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int tmp=scratchie++; + jnf_NEG_b(tmp,src); + if(srcreg!=tmp) + mov_b_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4410_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_NEG_b(tmp,src); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_NEG_b(tmp,src); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4418_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int tmp=scratchie++; - jnf_NEG_b(tmp,src); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int tmp=scratchie++; + jnf_NEG_b(tmp,src); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4420_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_NEG_b(tmp,src); - writebyte(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_NEG_b(tmp,src); + writebyte(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4428_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_NEG_b(tmp,src); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_NEG_b(tmp,src); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4430_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_NEG_b(tmp,src); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_NEG_b(tmp,src); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4438_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_NEG_b(tmp,src); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_NEG_b(tmp,src); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4439_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_NEG_b(tmp,src); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_NEG_b(tmp,src); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4440_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int tmp=scratchie++; - jnf_NEG_w(tmp,src); - if(srcreg!=tmp) - mov_w_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int tmp=scratchie++; + jnf_NEG_w(tmp,src); + if(srcreg!=tmp) + mov_w_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4450_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_NEG_w(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_NEG_w(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4458_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int tmp=scratchie++; - jnf_NEG_w(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int tmp=scratchie++; + jnf_NEG_w(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4460_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_NEG_w(tmp,src); - writeword(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_NEG_w(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4468_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_NEG_w(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_NEG_w(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4470_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_NEG_w(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_NEG_w(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4478_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_NEG_w(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_NEG_w(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4479_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_NEG_w(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_NEG_w(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4480_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int tmp=scratchie++; - jnf_NEG_l(tmp,src); - if(srcreg!=tmp) - mov_l_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int tmp=scratchie++; + jnf_NEG_l(tmp,src); + if(srcreg!=tmp) + mov_l_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4490_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_NEG_l(tmp,src); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_NEG_l(tmp,src); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4498_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int tmp=scratchie++; - jnf_NEG_l(tmp,src); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int tmp=scratchie++; + jnf_NEG_l(tmp,src); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_44a0_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_NEG_l(tmp,src); - writelong(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_NEG_l(tmp,src); + writelong(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_44a8_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_NEG_l(tmp,src); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_NEG_l(tmp,src); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_44b0_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_NEG_l(tmp,src); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_NEG_l(tmp,src); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_44b8_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_NEG_l(tmp,src); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_NEG_l(tmp,src); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_44b9_0_comp_nf(uae_u32 opcode) /* NEG */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_NEG_l(tmp,src); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_NEG_l(tmp,src); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4600_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - if(srcreg!=tmp) - mov_b_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + if(srcreg!=tmp) + mov_b_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4610_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4618_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4620_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - writebyte(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + writebyte(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4628_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4630_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4638_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4639_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - writebyte(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + writebyte(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4640_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - if(srcreg!=tmp) - mov_w_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + if(srcreg!=tmp) + mov_w_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4650_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4658_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4660_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - writeword(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4668_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4670_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4678_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4679_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4680_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - if(srcreg!=tmp) - mov_l_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + if(srcreg!=tmp) + mov_l_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4690_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4698_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_46a0_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - writelong(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + writelong(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_46a8_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_46b0_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_46b8_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_46b9_0_comp_nf(uae_u32 opcode) /* NOT */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_NOT(tmp,src); - writelong(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_NOT(tmp,src); + writelong(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4808_0_comp_nf(uae_u32 opcode) /* LINK */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int offs = scratchie++; - mov_l_ri(offs,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(15,4); - writelong_clobber(15,src,scratchie); - mov_l_rr(src,15); - arm_ADD_l(15,offs); - if(srcreg+8!=src) - mov_l_rr(srcreg+8,src); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int offs = scratchie++; + mov_l_ri(offs,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(15,4); + writelong_clobber(15,src,scratchie); + mov_l_rr(src,15); + arm_ADD_l(15,offs); + if(srcreg+8!=src) + mov_l_rr(srcreg+8,src); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4840_0_comp_nf(uae_u32 opcode) /* SWAP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ jnf_SWAP(src); - if(srcreg!=src) - mov_l_rr(srcreg,src); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + jnf_SWAP(src); + if(srcreg!=src) + mov_l_rr(srcreg,src); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4850_0_comp_nf(uae_u32 opcode) /* PEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if (srcreg==7) dodgy=1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{{ int dsta=dodgy?scratchie++:7+8; - arm_SUB_l_ri8(7+8,4); - if (dodgy) - mov_l_rr(dsta,8+7); - writelong(dsta,srca,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if (srcreg==7) dodgy=1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + { + int dsta=dodgy?scratchie++:7+8; + arm_SUB_l_ri8(7+8,4); + if (dodgy) + mov_l_rr(dsta,8+7); + writelong(dsta,srca,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4868_0_comp_nf(uae_u32 opcode) /* PEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if (srcreg==7) dodgy=1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:7+8; - arm_SUB_l_ri8(7+8,4); - if (dodgy) - mov_l_rr(dsta,8+7); - writelong(dsta,srca,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if (srcreg==7) dodgy=1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:7+8; + arm_SUB_l_ri8(7+8,4); + if (dodgy) + mov_l_rr(dsta,8+7); + writelong(dsta,srca,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4870_0_comp_nf(uae_u32 opcode) /* PEA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if (srcreg==7) dodgy=1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{{ int dsta=dodgy?scratchie++:7+8; - arm_SUB_l_ri8(7+8,4); - if (dodgy) - mov_l_rr(dsta,8+7); - writelong(dsta,srca,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if (srcreg==7) dodgy=1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + { + int dsta=dodgy?scratchie++:7+8; + arm_SUB_l_ri8(7+8,4); + if (dodgy) + mov_l_rr(dsta,8+7); + writelong(dsta,srca,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4878_0_comp_nf(uae_u32 opcode) /* PEA */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{{ int dsta=dodgy?scratchie++:7+8; - arm_SUB_l_ri8(7+8,4); - if (dodgy) - mov_l_rr(dsta,8+7); - writelong(dsta,srca,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + { + int dsta=dodgy?scratchie++:7+8; + arm_SUB_l_ri8(7+8,4); + if (dodgy) + mov_l_rr(dsta,8+7); + writelong(dsta,srca,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4879_0_comp_nf(uae_u32 opcode) /* PEA */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{{ int dsta=dodgy?scratchie++:7+8; - arm_SUB_l_ri8(7+8,4); - if (dodgy) - mov_l_rr(dsta,8+7); - writelong(dsta,srca,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + { + int dsta=dodgy?scratchie++:7+8; + arm_SUB_l_ri8(7+8,4); + if (dodgy) + mov_l_rr(dsta,8+7); + writelong(dsta,srca,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_487a_0_comp_nf(uae_u32 opcode) /* PEA */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{{ int dsta=dodgy?scratchie++:7+8; - arm_SUB_l_ri8(7+8,4); - if (dodgy) - mov_l_rr(dsta,8+7); - writelong(dsta,srca,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + { + int dsta=dodgy?scratchie++:7+8; + arm_SUB_l_ri8(7+8,4); + if (dodgy) + mov_l_rr(dsta,8+7); + writelong(dsta,srca,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_487b_0_comp_nf(uae_u32 opcode) /* PEA */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{{ int dsta=dodgy?scratchie++:7+8; - arm_SUB_l_ri8(7+8,4); - if (dodgy) - mov_l_rr(dsta,8+7); - writelong(dsta,srca,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + { + int dsta=dodgy?scratchie++:7+8; + arm_SUB_l_ri8(7+8,4); + if (dodgy) + mov_l_rr(dsta,8+7); + writelong(dsta,srca,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4880_0_comp_nf(uae_u32 opcode) /* EXT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EXT_w(tmp,src); - if(srcreg!=tmp) - mov_w_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EXT_w(tmp,src); + if(srcreg!=tmp) + mov_w_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4890_0_comp_nf(uae_u32 opcode) /* MVMLE */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(srca,dstreg+8); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMLE_w(native,i,offset); - offset+=2; - } - } } else { - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - writeword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(srca,dstreg+8); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMLE_w(native,i,offset); + offset+=2; + } + } + } + else + { + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + writeword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48a0_0_comp_nf(uae_u32 opcode) /* MVMLE */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(srca,8+dstreg); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - offset-=2; - jnf_MVMLE_w(native,15-i,offset); - } - } lea_l_brr(8+dstreg,srca,(uae_s32)offset); - } else { - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - arm_SUB_l_ri8(srca,2); - writeword(srca,15-i,scratchie); - } - } mov_l_rr(8+dstreg,srca); - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(srca,8+dstreg); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + offset-=2; + jnf_MVMLE_w(native,15-i,offset); + } + } + lea_l_brr(8+dstreg,srca,(uae_s32)offset); + } + else + { + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + arm_SUB_l_ri8(srca,2); + writeword(srca,15-i,scratchie); + } + } + mov_l_rr(8+dstreg,srca); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48a8_0_comp_nf(uae_u32 opcode) /* MVMLE */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca=scratchie++; - mov_l_rr(srca,8+dstreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMLE_w(native,i,offset); - offset+=2; - } - } } else { - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - writeword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca=scratchie++; + mov_l_rr(srca,8+dstreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMLE_w(native,i,offset); + offset+=2; + } + } + } + else + { + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + writeword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48b0_0_comp_nf(uae_u32 opcode) /* MVMLE */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMLE_w(native,i,offset); - offset+=2; - } - } } else { - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - writeword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMLE_w(native,i,offset); + offset+=2; + } + } + } + else + { + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + writeword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48b8_0_comp_nf(uae_u32 opcode) /* MVMLE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMLE_w(native,i,offset); - offset+=2; - } - } } else { - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - writeword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMLE_w(native,i,offset); + offset+=2; + } + } + } + else + { + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + writeword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48b9_0_comp_nf(uae_u32 opcode) /* MVMLE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMLE_w(native,i,offset); - offset+=2; - } - } } else { - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - writeword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMLE_w(native,i,offset); + offset+=2; + } + } + } + else + { + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + writeword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48c0_0_comp_nf(uae_u32 opcode) /* EXT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EXT_l(tmp,src); - if(srcreg!=tmp) - mov_l_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EXT_l(tmp,src); + if(srcreg!=tmp) + mov_l_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48d0_0_comp_nf(uae_u32 opcode) /* MVMLE */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(srca,dstreg+8); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMLE_l(native,i,offset); - offset+=4; - } - } } else { - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - writelong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(srca,dstreg+8); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMLE_l(native,i,offset); + offset+=4; + } + } + } + else + { + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + writelong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48e0_0_comp_nf(uae_u32 opcode) /* MVMLE */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(srca,8+dstreg); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - offset-=4; - jnf_MVMLE_l(native,15-i,offset); - } - } lea_l_brr(8+dstreg,srca,(uae_s32)offset); - } else { - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - arm_SUB_l_ri8(srca,4); - writelong(srca,15-i,scratchie); - } - } mov_l_rr(8+dstreg,srca); - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(srca,8+dstreg); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + offset-=4; + jnf_MVMLE_l(native,15-i,offset); + } + } + lea_l_brr(8+dstreg,srca,(uae_s32)offset); + } + else + { + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + arm_SUB_l_ri8(srca,4); + writelong(srca,15-i,scratchie); + } + } + mov_l_rr(8+dstreg,srca); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48e8_0_comp_nf(uae_u32 opcode) /* MVMLE */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca=scratchie++; - mov_l_rr(srca,8+dstreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMLE_l(native,i,offset); - offset+=4; - } - } } else { - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - writelong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca=scratchie++; + mov_l_rr(srca,8+dstreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMLE_l(native,i,offset); + offset+=4; + } + } + } + else + { + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + writelong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48f0_0_comp_nf(uae_u32 opcode) /* MVMLE */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMLE_l(native,i,offset); - offset+=4; - } - } } else { - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - writelong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMLE_l(native,i,offset); + offset+=4; + } + } + } + else + { + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + writelong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48f8_0_comp_nf(uae_u32 opcode) /* MVMLE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMLE_l(native,i,offset); - offset+=4; - } - } } else { - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - writelong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMLE_l(native,i,offset); + offset+=4; + } + } + } + else + { + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + writelong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_48f9_0_comp_nf(uae_u32 opcode) /* MVMLE */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - int tmp=scratchie++; - signed char offset=0; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMLE_l(native,i,offset); - offset+=4; - } - } } else { - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - writelong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + int tmp=scratchie++; + signed char offset=0; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMLE_l(native,i,offset); + offset+=4; + } + } + } + else + { + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + writelong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_49c0_0_comp_nf(uae_u32 opcode) /* EXT */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EXT_b(tmp,src); - if(srcreg!=tmp) - mov_l_rr(srcreg,tmp); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EXT_b(tmp,src); + if(srcreg!=tmp) + mov_l_rr(srcreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a00_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a10_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a18_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); - dont_care_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + dont_care_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a20_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a28_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a30_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a38_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a39_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a3a_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a3b_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a3c_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); - dont_care_flags(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + dont_care_flags(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a40_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a48_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); - dont_care_flags(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + dont_care_flags(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a50_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a58_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); - dont_care_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + dont_care_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a60_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a68_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a70_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a78_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a79_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a7a_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a7b_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); - dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a7c_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - dont_care_flags(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + dont_care_flags(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a80_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; - dont_care_flags(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + dont_care_flags(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a88_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); - dont_care_flags(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + dont_care_flags(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a90_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4a98_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); - dont_care_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + dont_care_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4aa0_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4aa8_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ab0_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ab8_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ab9_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4aba_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4abb_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); - dont_care_flags(); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + dont_care_flags(); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4abc_0_comp_nf(uae_u32 opcode) /* TST */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - dont_care_flags(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + dont_care_flags(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c00_0_comp_nf(uae_u32 opcode) /* MULL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{ int dst=dstreg; - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jnf_MULS64(r2,r3); - } else { - jnf_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jnf_MULS32(r2,dst); - } else { - jnf_MULU32(r2,dst); - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + int dst=dstreg; + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jnf_MULS64(r2,r3); + } + else + { + jnf_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jnf_MULS32(r2,dst); + } + else + { + jnf_MULU32(r2,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c10_0_comp_nf(uae_u32 opcode) /* MULL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jnf_MULS64(r2,r3); - } else { - jnf_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jnf_MULS32(r2,dst); - } else { - jnf_MULU32(r2,dst); - } - } -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jnf_MULS64(r2,r3); + } + else + { + jnf_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jnf_MULS32(r2,dst); + } + else + { + jnf_MULU32(r2,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c18_0_comp_nf(uae_u32 opcode) /* MULL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jnf_MULS64(r2,r3); - } else { - jnf_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jnf_MULS32(r2,dst); - } else { - jnf_MULU32(r2,dst); - } - } -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jnf_MULS64(r2,r3); + } + else + { + jnf_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jnf_MULS32(r2,dst); + } + else + { + jnf_MULU32(r2,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c20_0_comp_nf(uae_u32 opcode) /* MULL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jnf_MULS64(r2,r3); - } else { - jnf_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jnf_MULS32(r2,dst); - } else { - jnf_MULU32(r2,dst); - } - } -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jnf_MULS64(r2,r3); + } + else + { + jnf_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jnf_MULS32(r2,dst); + } + else + { + jnf_MULU32(r2,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c28_0_comp_nf(uae_u32 opcode) /* MULL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jnf_MULS64(r2,r3); - } else { - jnf_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jnf_MULS32(r2,dst); - } else { - jnf_MULU32(r2,dst); - } - } -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jnf_MULS64(r2,r3); + } + else + { + jnf_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jnf_MULS32(r2,dst); + } + else + { + jnf_MULU32(r2,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c30_0_comp_nf(uae_u32 opcode) /* MULL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jnf_MULS64(r2,r3); - } else { - jnf_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jnf_MULS32(r2,dst); - } else { - jnf_MULU32(r2,dst); - } - } -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jnf_MULS64(r2,r3); + } + else + { + jnf_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jnf_MULS32(r2,dst); + } + else + { + jnf_MULU32(r2,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c38_0_comp_nf(uae_u32 opcode) /* MULL */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jnf_MULS64(r2,r3); - } else { - jnf_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jnf_MULS32(r2,dst); - } else { - jnf_MULU32(r2,dst); - } - } -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jnf_MULS64(r2,r3); + } + else + { + jnf_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jnf_MULS32(r2,dst); + } + else + { + jnf_MULU32(r2,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c39_0_comp_nf(uae_u32 opcode) /* MULL */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jnf_MULS64(r2,r3); - } else { - jnf_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jnf_MULS32(r2,dst); - } else { - jnf_MULU32(r2,dst); - } - } -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jnf_MULS64(r2,r3); + } + else + { + jnf_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jnf_MULS32(r2,dst); + } + else + { + jnf_MULU32(r2,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c3a_0_comp_nf(uae_u32 opcode) /* MULL */ { - uae_s32 dstreg = 2; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{ int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(dsta,address+PC16off); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jnf_MULS64(r2,r3); - } else { - jnf_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jnf_MULS32(r2,dst); - } else { - jnf_MULU32(r2,dst); - } - } -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 2; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(dsta,address+PC16off); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jnf_MULS64(r2,r3); + } + else + { + jnf_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jnf_MULS32(r2,dst); + } + else + { + jnf_MULU32(r2,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c3b_0_comp_nf(uae_u32 opcode) /* MULL */ { - uae_s32 dstreg = 3; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{ int pctmp=scratchie++; - int dsta=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jnf_MULS64(r2,r3); - } else { - jnf_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jnf_MULS32(r2,dst); - } else { - jnf_MULU32(r2,dst); - } - } -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 3; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + int pctmp=scratchie++; + int dsta=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jnf_MULS64(r2,r3); + } + else + { + jnf_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jnf_MULS32(r2,dst); + } + else + { + jnf_MULU32(r2,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c3c_0_comp_nf(uae_u32 opcode) /* MULL */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); - int r2=(extra>>12)&7; - int tmp=scratchie++; -{ int dst = scratchie++; - mov_l_ri(dst,comp_get_ilong((m68k_pc_offset+=4)-4)); - if (extra & 0x0400) { - int r3=(extra & 7); - mov_l_rr(r3,dst); - if (extra & 0x0800) { - jnf_MULS64(r2,r3); - } else { - jnf_MULU64(r2,r3); - } - } else { - if (extra & 0x0800) { - jnf_MULS32(r2,dst); - } else { - jnf_MULU32(r2,dst); - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 extra=comp_get_iword((m68k_pc_offset+=2)-2); + int r2=(extra>>12)&7; + int tmp=scratchie++; + { + int dst = scratchie++; + mov_l_ri(dst,comp_get_ilong((m68k_pc_offset+=4)-4)); + if (extra & 0x0400) + { + int r3=(extra & 7); + mov_l_rr(r3,dst); + if (extra & 0x0800) + { + jnf_MULS64(r2,r3); + } + else + { + jnf_MULU64(r2,r3); + } + } + else + { + if (extra & 0x0800) + { + jnf_MULS32(r2,dst); + } + else + { + jnf_MULU32(r2,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c90_0_comp_nf(uae_u32 opcode) /* MVMEL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(srca,dstreg+8); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_w(i,native,offset); - offset+=2; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(srca,dstreg+8); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_w(i,native,offset); + offset+=2; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4c98_0_comp_nf(uae_u32 opcode) /* MVMEL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca=scratchie++; - mov_l_rr(srca,dstreg+8); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_w(i,native,offset); - offset+=2; - } - } jnf_ADD_im8(8+dstreg,srca,offset); - } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } - mov_l_rr(8+dstreg,tmp); - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca=scratchie++; + mov_l_rr(srca,dstreg+8); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_w(i,native,offset); + offset+=2; + } + } + jnf_ADD_im8(8+dstreg,srca,offset); + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + mov_l_rr(8+dstreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ca8_0_comp_nf(uae_u32 opcode) /* MVMEL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca=scratchie++; - mov_l_rr(srca,8+dstreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_w(i,native,offset); - offset+=2; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca=scratchie++; + mov_l_rr(srca,8+dstreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_w(i,native,offset); + offset+=2; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cb0_0_comp_nf(uae_u32 opcode) /* MVMEL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_w(i,native,offset); - offset+=2; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_w(i,native,offset); + offset+=2; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cb8_0_comp_nf(uae_u32 opcode) /* MVMEL */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_w(i,native,offset); - offset+=2; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_w(i,native,offset); + offset+=2; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cb9_0_comp_nf(uae_u32 opcode) /* MVMEL */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_w(i,native,offset); - offset+=2; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_w(i,native,offset); + offset+=2; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cba_0_comp_nf(uae_u32 opcode) /* MVMEL */ { - uae_s32 dstreg = 2; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_w(i,native,offset); - offset+=2; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 2; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_w(i,native,offset); + offset+=2; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cbb_0_comp_nf(uae_u32 opcode) /* MVMEL */ { - uae_s32 dstreg = 3; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_w(i,native,offset); - offset+=2; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readword(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,2); - } - } - } -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 3; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_w(i,native,offset); + offset+=2; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readword(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,2); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cd0_0_comp_nf(uae_u32 opcode) /* MVMEL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(srca,dstreg+8); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_l(i,native,offset); - offset+=4; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readlong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(srca,dstreg+8); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_l(i,native,offset); + offset+=4; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readlong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cd8_0_comp_nf(uae_u32 opcode) /* MVMEL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca=scratchie++; - mov_l_rr(srca,dstreg+8); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_l(i,native,offset); - offset+=4; - } - } jnf_ADD_im8(8+dstreg,srca,offset); - } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readlong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } - mov_l_rr(8+dstreg,tmp); - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca=scratchie++; + mov_l_rr(srca,dstreg+8); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_l(i,native,offset); + offset+=4; + } + } + jnf_ADD_im8(8+dstreg,srca,offset); + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readlong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + mov_l_rr(8+dstreg,tmp); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ce8_0_comp_nf(uae_u32 opcode) /* MVMEL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca=scratchie++; - mov_l_rr(srca,8+dstreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_l(i,native,offset); - offset+=4; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readlong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca=scratchie++; + mov_l_rr(srca,8+dstreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_l(i,native,offset); + offset+=4; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readlong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cf0_0_comp_nf(uae_u32 opcode) /* MVMEL */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_l(i,native,offset); - offset+=4; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readlong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_l(i,native,offset); + offset+=4; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readlong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cf8_0_comp_nf(uae_u32 opcode) /* MVMEL */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_l(i,native,offset); - offset+=4; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readlong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_l(i,native,offset); + offset+=4; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readlong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cf9_0_comp_nf(uae_u32 opcode) /* MVMEL */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_l(i,native,offset); - offset+=4; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readlong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_l(i,native,offset); + offset+=4; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readlong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cfa_0_comp_nf(uae_u32 opcode) /* MVMEL */ { - uae_s32 dstreg = 2; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_l(i,native,offset); - offset+=4; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readlong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } - } -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 2; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_l(i,native,offset); + offset+=4; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readlong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4cfb_0_comp_nf(uae_u32 opcode) /* MVMEL */ { - uae_s32 dstreg = 3; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); - int native=scratchie++; - int i; - signed char offset=0; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - if (!special_mem) { - get_n_addr(srca,native,scratchie); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - jnf_MVMEL_l(i,native,offset); - offset+=4; - } - } } else { - int tmp=scratchie++; - mov_l_rr(tmp,srca); - for (i=0;i<16;i++) { - if ((mask>>i)&1) { - readlong(tmp,i,scratchie); - arm_ADD_l_ri8(tmp,4); - } - } - } -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 dstreg = 3; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u16 mask = comp_get_iword((m68k_pc_offset+=2)-2); + int native=scratchie++; + int i; + signed char offset=0; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + if (!special_mem) + { + get_n_addr(srca,native,scratchie); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + jnf_MVMEL_l(i,native,offset); + offset+=4; + } + } + } + else + { + int tmp=scratchie++; + mov_l_rr(tmp,srca); + for (i=0; i<16; i++) + { + if ((mask>>i)&1) + { + readlong(tmp,i,scratchie); + arm_ADD_l_ri8(tmp,4); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4e50_0_comp_nf(uae_u32 opcode) /* LINK */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(15,4); - writelong_clobber(15,src,scratchie); - mov_l_rr(src,15); - arm_ADD_l(15,offs); - if(srcreg+8!=src) - mov_l_rr(srcreg+8,src); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(15,4); + writelong_clobber(15,src,scratchie); + mov_l_rr(src,15); + arm_ADD_l(15,offs); + if(srcreg+8!=src) + mov_l_rr(srcreg+8,src); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4e58_0_comp_nf(uae_u32 opcode) /* UNLK */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); - mov_l_rr(15,src); - readlong(15,src,scratchie); - arm_ADD_l_ri8(15,4); - if(srcreg+8!=src) - mov_l_rr(srcreg+8,src); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + mov_l_rr(15,src); + readlong(15,src,scratchie); + arm_ADD_l_ri8(15,4); + if(srcreg+8!=src) + mov_l_rr(srcreg+8,src); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4e71_0_comp_nf(uae_u32 opcode) /* NOP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4e74_0_comp_nf(uae_u32 opcode) /* RTD */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - arm_ADD_l_ri8(offs,4); -{ int newad=scratchie++; - readlong(15,newad,scratchie); - mov_l_mr((uintptr)®s.pc,newad); - get_n_addr_jmp(newad,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; - arm_ADD_l(15,offs); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + arm_ADD_l_ri8(offs,4); + { + int newad=scratchie++; + readlong(15,newad,scratchie); + mov_l_mr((uintptr)®s.pc,newad); + get_n_addr_jmp(newad,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + arm_ADD_l(15,offs); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4e75_0_comp_nf(uae_u32 opcode) /* RTS */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - int newad=scratchie++; - readlong(15,newad,scratchie); - mov_l_mr((uintptr)®s.pc,newad); - get_n_addr_jmp(newad,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; - arm_ADD_l_ri8(15,4); -} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + int newad=scratchie++; + readlong(15,newad,scratchie); + mov_l_mr((uintptr)®s.pc,newad); + get_n_addr_jmp(newad,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + arm_ADD_l_ri8(15,4); + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4e90_0_comp_nf(uae_u32 opcode) /* JSR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - int ret=scratchie++; - mov_l_ri(ret,retadd); - sub_l_ri(15,4); - writelong_clobber(15,ret,scratchie); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + int ret=scratchie++; + mov_l_ri(ret,retadd); + sub_l_ri(15,4); + writelong_clobber(15,ret,scratchie); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ea8_0_comp_nf(uae_u32 opcode) /* JSR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - int ret=scratchie++; - mov_l_ri(ret,retadd); - sub_l_ri(15,4); - writelong_clobber(15,ret,scratchie); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + int ret=scratchie++; + mov_l_ri(ret,retadd); + sub_l_ri(15,4); + writelong_clobber(15,ret,scratchie); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4eb0_0_comp_nf(uae_u32 opcode) /* JSR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - int ret=scratchie++; - mov_l_ri(ret,retadd); - sub_l_ri(15,4); - writelong_clobber(15,ret,scratchie); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + int ret=scratchie++; + mov_l_ri(ret,retadd); + sub_l_ri(15,4); + writelong_clobber(15,ret,scratchie); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4eb8_0_comp_nf(uae_u32 opcode) /* JSR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - int ret=scratchie++; - mov_l_ri(ret,retadd); - sub_l_ri(15,4); - writelong_clobber(15,ret,scratchie); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + int ret=scratchie++; + mov_l_ri(ret,retadd); + sub_l_ri(15,4); + writelong_clobber(15,ret,scratchie); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4eb9_0_comp_nf(uae_u32 opcode) /* JSR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - int ret=scratchie++; - mov_l_ri(ret,retadd); - sub_l_ri(15,4); - writelong_clobber(15,ret,scratchie); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + int ret=scratchie++; + mov_l_ri(ret,retadd); + sub_l_ri(15,4); + writelong_clobber(15,ret,scratchie); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4eba_0_comp_nf(uae_u32 opcode) /* JSR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - int ret=scratchie++; - mov_l_ri(ret,retadd); - sub_l_ri(15,4); - writelong_clobber(15,ret,scratchie); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + int ret=scratchie++; + mov_l_ri(ret,retadd); + sub_l_ri(15,4); + writelong_clobber(15,ret,scratchie); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ebb_0_comp_nf(uae_u32 opcode) /* JSR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - int ret=scratchie++; - mov_l_ri(ret,retadd); - sub_l_ri(15,4); - writelong_clobber(15,ret,scratchie); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + int ret=scratchie++; + mov_l_ri(ret,retadd); + sub_l_ri(15,4); + writelong_clobber(15,ret,scratchie); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ed0_0_comp_nf(uae_u32 opcode) /* JMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ee8_0_comp_nf(uae_u32 opcode) /* JMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ef0_0_comp_nf(uae_u32 opcode) /* JMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ef8_0_comp_nf(uae_u32 opcode) /* JMP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4ef9_0_comp_nf(uae_u32 opcode) /* JMP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4efa_0_comp_nf(uae_u32 opcode) /* JMP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_4efb_0_comp_nf(uae_u32 opcode) /* JMP */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); - mov_l_mr((uintptr)®s.pc,srca); - get_n_addr_jmp(srca,PC_P,scratchie); - mov_l_mr((uintptr)®s.pc_oldp,PC_P); - m68k_pc_offset=0; -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + mov_l_mr((uintptr)®s.pc,srca); + get_n_addr_jmp(srca,PC_P,scratchie); + mov_l_mr((uintptr)®s.pc_oldp,PC_P); + m68k_pc_offset=0; + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5000_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5010_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5018_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5020_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5028_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5030_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5038_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5039_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5040_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5048_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5050_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5058_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5060_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5068_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5070_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5078_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5079_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5080_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5088_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5090_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5098_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } #endif #ifdef PART_5 uae_u32 REGPARAM2 op_50a0_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50a8_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50b0_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50b8_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50b9_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50c0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - mov_l_ri(val, 0xff); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + mov_l_ri(val, 0xff); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50c8_0_comp_nf(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50d0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - mov_l_ri(val, 0xff); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + mov_l_ri(val, 0xff); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50d8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - mov_l_ri(val, 0xff); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + mov_l_ri(val, 0xff); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50e0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - mov_l_ri(val, 0xff); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + mov_l_ri(val, 0xff); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50e8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - mov_l_ri(val, 0xff); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + mov_l_ri(val, 0xff); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50f0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - mov_l_ri(val, 0xff); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + mov_l_ri(val, 0xff); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50f8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - mov_l_ri(val, 0xff); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + mov_l_ri(val, 0xff); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_50f9_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - mov_l_ri(val, 0xff); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + mov_l_ri(val, 0xff); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5100_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5110_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5118_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5120_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5128_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5130_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5138_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5139_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5140_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5148_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5150_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5158_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5160_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5168_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5170_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5178_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5179_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5180_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5188_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5190_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5198_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51a0_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51a8_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51b0_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51b8_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51b9_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51c0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - mov_l_ri(val, 0); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + mov_l_ri(val, 0); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51c8_0_comp_nf(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - sub_w_ri(src, 1); -{ uae_u32 v2; - uae_u32 v1=get_const(PC_P); - v2=get_const(offs); - register_branch(v1, v2, 3); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + sub_w_ri(src, 1); + { + uae_u32 v2; + uae_u32 v1=get_const(PC_P); + v2=get_const(offs); + register_branch(v1, v2, 3); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51d0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - mov_l_ri(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + mov_l_ri(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51d8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - mov_l_ri(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + mov_l_ri(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51e0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - mov_l_ri(val, 0); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + mov_l_ri(val, 0); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51e8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - mov_l_ri(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + mov_l_ri(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51f0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - mov_l_ri(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + mov_l_ri(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51f8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - mov_l_ri(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + mov_l_ri(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_51f9_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - mov_l_ri(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + mov_l_ri(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_52c0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 8); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 8); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_52c8_0_comp_nf(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 8); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 8); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_52d0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 8); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 8); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_52d8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 8); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 8); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_52e0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 8); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 8); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_52e8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 8); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 8); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_52f0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 8); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 8); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_52f8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 8); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 8); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_52f9_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 8); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 8); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_53c0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 9); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 9); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_53c8_0_comp_nf(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 9); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 9); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_53d0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 9); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 9); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_53d8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 9); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 9); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_53e0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 9); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 9); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_53e8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 9); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 9); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_53f0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 9); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 9); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_53f8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 9); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 9); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_53f9_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 9); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 9); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_54c0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 3); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 3); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_54c8_0_comp_nf(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 3); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 3); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_54d0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 3); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 3); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_54d8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 3); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 3); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_54e0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 3); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 3); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_54e8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 3); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 3); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_54f0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 3); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 3); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_54f8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 3); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 3); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_54f9_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 3); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 3); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_55c0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 2); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 2); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_55c8_0_comp_nf(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 2); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 2); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_55d0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 2); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 2); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_55d8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 2); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 2); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_55e0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 2); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 2); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_55e8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 2); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 2); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_55f0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 2); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 2); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_55f8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 2); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 2); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_55f9_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 2); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 2); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_56c0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 1); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 1); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_56c8_0_comp_nf(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 1); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 1); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_56d0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 1); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 1); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_56d8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 1); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 1); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_56e0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 1); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 1); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_56e8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 1); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 1); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_56f0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 1); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 1); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_56f8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 1); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 1); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_56f9_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 1); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 1); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_57c0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 0); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 0); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_57c8_0_comp_nf(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 0); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 0); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_57d0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_57d8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_57e0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 0); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 0); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_57e8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_57f0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_57f8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_57f9_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 0); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 0); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_58c0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 7); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 7); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_58c8_0_comp_nf(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 7); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 7); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_58d0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 7); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 7); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_58d8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 7); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 7); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_58e0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 7); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 7); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_58e8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 7); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 7); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_58f0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 7); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 7); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_58f8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 7); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 7); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_58f9_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 7); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 7); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_59c0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 6); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 6); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_59c8_0_comp_nf(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 6); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 6); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_59d0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 6); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 6); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_59d8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 6); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 6); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_59e0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 6); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 6); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_59e8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 6); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 6); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_59f0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 6); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 6); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_59f8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 6); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 6); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_59f9_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 6); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 6); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ac0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 5); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 5); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ac8_0_comp_nf(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 5); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 5); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ad0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 5); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 5); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ad8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 5); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 5); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ae0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 5); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 5); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ae8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 5); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 5); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5af0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 5); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 5); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5af8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 5); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 5); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5af9_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 5); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 5); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5bc0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 4); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 4); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5bc8_0_comp_nf(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 4); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 4); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5bd0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 4); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 4); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5bd8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 4); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 4); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5be0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 4); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 4); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5be8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 4); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 4); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5bf0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 4); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 4); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5bf8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 4); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 4); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5bf9_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 4); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 4); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5cc0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 10); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 10); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5cc8_0_comp_nf(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 10); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 10); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5cd0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 10); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 10); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5cd8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 10); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 10); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ce0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 10); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 10); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ce8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 10); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 10); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5cf0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 10); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 10); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5cf8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 10); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 10); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5cf9_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 10); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 10); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5dc0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 11); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 11); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5dc8_0_comp_nf(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 11); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 11); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5dd0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 11); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 11); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5dd8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 11); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 11); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5de0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 11); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 11); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5de8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 11); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 11); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5df0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 11); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 11); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5df8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 11); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 11); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5df9_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 11); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 11); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ec0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 12); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 12); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ec8_0_comp_nf(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 12); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 12); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ed0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 12); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 12); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ed8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 12); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 12); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ee0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 12); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 12); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ee8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 12); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 12); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ef0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 12); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 12); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ef8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 12); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 12); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ef9_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 12); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 12); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5fc0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 13); - if(srcreg!=val) - mov_b_rr(srcreg,val); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 13); + if(srcreg!=val) + mov_b_rr(srcreg,val); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5fc8_0_comp_nf(uae_u32 opcode) /* DBcc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int offs = scratchie++; - mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(offs, (uintptr)comp_pc_p); - arm_ADD_l_ri(offs, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset=0; -{ int nsrc = scratchie++; - make_flags_live(); - uae_u32 v1=get_const(PC_P); - uae_u32 v2=get_const(offs); - jff_DBCC(src, 13); - register_branch(v1, v2, 2); - if(srcreg!=src) - mov_w_rr(srcreg,src); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int offs = scratchie++; + mov_l_ri(offs,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(offs, (uintptr)comp_pc_p); + arm_ADD_l_ri(offs, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset=0; + { + int nsrc = scratchie++; + make_flags_live(); + uae_u32 v1=get_const(PC_P); + uae_u32 v2=get_const(offs); + jff_DBCC(src, 13); + register_branch(v1, v2, 2); + if(srcreg!=src) + mov_w_rr(srcreg,src); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5fd0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 13); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 13); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5fd8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 13); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 13); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5fe0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 13); - writebyte(srca,val,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 13); + writebyte(srca,val,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5fe8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 13); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 13); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ff0_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 13); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 13); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ff8_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 13); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 13); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_5ff9_0_comp_nf(uae_u32 opcode) /* Scc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int val = scratchie++; - make_flags_live(); - jnf_SCC(val, 13); - writebyte(srca,val,scratchie); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int val = scratchie++; + make_flags_live(); + jnf_SCC(val, 13); + writebyte(srca,val,scratchie); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6000_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - mov_l_rr(PC_P, src); - comp_pc_p = (uae_u8*)(uintptr)get_const(PC_P); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + mov_l_rr(PC_P, src); + comp_pc_p = (uae_u8*)(uintptr)get_const(PC_P); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6001_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - mov_l_rr(PC_P, src); - comp_pc_p = (uae_u8*)(uintptr)get_const(PC_P); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + mov_l_rr(PC_P, src); + comp_pc_p = (uae_u8*)(uintptr)get_const(PC_P); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_60ff_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - mov_l_rr(PC_P, src); - comp_pc_p = (uae_u8*)(uintptr)get_const(PC_P); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + mov_l_rr(PC_P, src); + comp_pc_p = (uae_u8*)(uintptr)get_const(PC_P); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6100_0_comp_nf(uae_u32 opcode) /* BSR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - int ret=scratchie++; - mov_l_ri(ret,retadd); - sub_l_ri(15,4); - writelong_clobber(15,ret,scratchie); - arm_ADD_l_ri(src,m68k_pc_offset_thisinst+2); - m68k_pc_offset=0; - arm_ADD_l(PC_P,src); - comp_pc_p=(uae_u8*)(uintptr)get_const(PC_P); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + int ret=scratchie++; + mov_l_ri(ret,retadd); + sub_l_ri(15,4); + writelong_clobber(15,ret,scratchie); + arm_ADD_l_ri(src,m68k_pc_offset_thisinst+2); + m68k_pc_offset=0; + arm_ADD_l(PC_P,src); + comp_pc_p=(uae_u8*)(uintptr)get_const(PC_P); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6101_0_comp_nf(uae_u32 opcode) /* BSR */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - int ret=scratchie++; - mov_l_ri(ret,retadd); - sub_l_ri(15,4); - writelong_clobber(15,ret,scratchie); - arm_ADD_l_ri(src,m68k_pc_offset_thisinst+2); - m68k_pc_offset=0; - arm_ADD_l(PC_P,src); - comp_pc_p=(uae_u8*)(uintptr)get_const(PC_P); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + int ret=scratchie++; + mov_l_ri(ret,retadd); + sub_l_ri(15,4); + writelong_clobber(15,ret,scratchie); + arm_ADD_l_ri(src,m68k_pc_offset_thisinst+2); + m68k_pc_offset=0; + arm_ADD_l(PC_P,src); + comp_pc_p=(uae_u8*)(uintptr)get_const(PC_P); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_61ff_0_comp_nf(uae_u32 opcode) /* BSR */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - int ret=scratchie++; - mov_l_ri(ret,retadd); - sub_l_ri(15,4); - writelong_clobber(15,ret,scratchie); - arm_ADD_l_ri(src,m68k_pc_offset_thisinst+2); - m68k_pc_offset=0; - arm_ADD_l(PC_P,src); - comp_pc_p=(uae_u8*)(uintptr)get_const(PC_P); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + uae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + int ret=scratchie++; + mov_l_ri(ret,retadd); + sub_l_ri(15,4); + writelong_clobber(15,ret,scratchie); + arm_ADD_l_ri(src,m68k_pc_offset_thisinst+2); + m68k_pc_offset=0; + arm_ADD_l(PC_P,src); + comp_pc_p=(uae_u8*)(uintptr)get_const(PC_P); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6200_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 8); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 8); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6201_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 8); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 8); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_62ff_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 8); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 8); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6300_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 9); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 9); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6301_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 9); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 9); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } #endif #ifdef PART_6 uae_u32 REGPARAM2 op_63ff_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 9); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 9); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6400_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 3); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 3); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6401_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 3); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 3); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_64ff_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 3); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 3); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6500_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 2); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 2); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6501_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 2); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 2); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_65ff_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 2); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 2); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6600_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 1); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 1); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6601_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 1); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 1); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_66ff_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 1); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 1); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6700_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 0); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 0); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6701_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 0); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 0); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_67ff_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 0); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 0); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6a00_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 5); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 5); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6a01_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 5); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 5); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6aff_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 5); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 5); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6b00_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 4); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 4); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6b01_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 4); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 4); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6bff_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 4); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 4); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6c00_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 10); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 10); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6c01_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 10); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 10); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6cff_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 10); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 10); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6d00_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 11); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 11); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6d01_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 11); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 11); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6dff_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 11); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 11); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6e00_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 12); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 12); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6e01_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 12); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 12); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6eff_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 12); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 12); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6f00_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 13); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 13); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6f01_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,srcreg); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 13); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 13); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_6fff_0_comp_nf(uae_u32 opcode) /* Bcc */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - uae_u32 v1, v2; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); - sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); - arm_ADD_l_ri(src, (uintptr)comp_pc_p); - mov_l_ri(PC_P, (uintptr)comp_pc_p); - arm_ADD_l_ri(src, m68k_pc_offset); - arm_ADD_l_ri(PC_P, m68k_pc_offset); - m68k_pc_offset = 0; - v1 = get_const(PC_P); - v2 = get_const(src); - register_branch(v1, v2, 13); - make_flags_live(); -}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + uae_u32 v1, v2; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + sub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2); + arm_ADD_l_ri(src, (uintptr)comp_pc_p); + mov_l_ri(PC_P, (uintptr)comp_pc_p); + arm_ADD_l_ri(src, m68k_pc_offset); + arm_ADD_l_ri(PC_P, m68k_pc_offset); + m68k_pc_offset = 0; + v1 = get_const(PC_P); + v2 = get_const(src); + register_branch(v1, v2, 13); + make_flags_live(); + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_7000_0_comp_nf(uae_u32 opcode) /* MOVE */ { - uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,srcreg); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - tmp = src; - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,srcreg); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + tmp = src; + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8000_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8010_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8018_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8020_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8028_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8030_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8038_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8039_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_803a_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_803b_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_803c_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8040_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8050_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8058_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8060_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8068_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8070_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8078_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8079_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_807a_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_807b_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_807c_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8080_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8090_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8098_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_80a0_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_80a8_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_80b0_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_80b8_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_80b9_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_80ba_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_80bb_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_80bc_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8110_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8118_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8120_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8128_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8130_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8138_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8139_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8150_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8158_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8160_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8168_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8170_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8178_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8179_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8190_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_8198_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_81a0_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_81a8_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_81b0_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_81b8_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_81b9_0_comp_nf(uae_u32 opcode) /* OR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_OR(tmp, dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_OR(tmp, dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9000_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9010_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9018_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9020_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9028_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9030_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9038_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9039_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_903a_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_903b_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_903c_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9040_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9048_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9050_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9058_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9060_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9068_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9070_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9078_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9079_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_907a_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_907b_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_907c_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9080_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9088_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9090_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9098_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90a0_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90a8_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90b0_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90b8_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90b9_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90ba_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90bb_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90bc_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90c0_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90c8_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90d0_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90d8_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90e0_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90e8_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90f0_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90f8_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90f9_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90fa_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90fb_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_90fc_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9100_0_comp_nf(uae_u32 opcode) /* SUBX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ int tmp=scratchie++; - dont_care_flags(); - jnf_SUBX(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + int tmp=scratchie++; + dont_care_flags(); + jnf_SUBX(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9108_0_comp_nf(uae_u32 opcode) /* SUBX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ int tmp=scratchie++; - dont_care_flags(); - jnf_SUBX(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + int tmp=scratchie++; + dont_care_flags(); + jnf_SUBX(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9110_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9118_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9120_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9128_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9130_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9138_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9139_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_b(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_b(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9140_0_comp_nf(uae_u32 opcode) /* SUBX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ int tmp=scratchie++; - dont_care_flags(); - jnf_SUBX(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + int tmp=scratchie++; + dont_care_flags(); + jnf_SUBX(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9148_0_comp_nf(uae_u32 opcode) /* SUBX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); -{ int tmp=scratchie++; - dont_care_flags(); - jnf_SUBX(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + { + int tmp=scratchie++; + dont_care_flags(); + jnf_SUBX(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9150_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9158_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9160_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9168_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9170_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9178_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9179_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_w(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_w(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9180_0_comp_nf(uae_u32 opcode) /* SUBX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ int tmp=scratchie++; - dont_care_flags(); - jnf_SUBX(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + int tmp=scratchie++; + dont_care_flags(); + jnf_SUBX(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9188_0_comp_nf(uae_u32 opcode) /* SUBX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); -{ int tmp=scratchie++; - dont_care_flags(); - jnf_SUBX(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + { + int tmp=scratchie++; + dont_care_flags(); + jnf_SUBX(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9190_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_9198_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91a0_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91a8_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91b0_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91b8_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91b9_0_comp_nf(uae_u32 opcode) /* SUB */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_SUB_l(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_SUB_l(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91c0_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91c8_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91d0_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91d8_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91e0_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91e8_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91f0_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91f8_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91f9_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91fa_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91fb_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_91fc_0_comp_nf(uae_u32 opcode) /* SUBA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_SUBA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_SUBA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b000_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b010_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b018_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b020_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b028_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b030_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b038_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b039_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b03a_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b03b_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b03c_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b040_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b048_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b050_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b058_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b060_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b068_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b070_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b078_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b079_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b07a_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b07b_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b07c_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b080_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b088_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b090_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b098_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0a0_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } #endif #ifdef PART_7 uae_u32 REGPARAM2 op_b0a8_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0b0_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0b8_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0b9_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0ba_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0bb_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0bc_0_comp_nf(uae_u32 opcode) /* CMP */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0c0_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0c8_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0d0_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0d8_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0e0_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0e8_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0f0_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0f8_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0f9_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0fa_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0fb_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b0fc_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b100_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b108_0_comp_nf(uae_u32 opcode) /* CMPM */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b110_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b118_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b120_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b128_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b130_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b138_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b139_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b140_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b148_0_comp_nf(uae_u32 opcode) /* CMPM */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b150_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b158_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b160_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b168_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b170_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b178_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b179_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b180_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b188_0_comp_nf(uae_u32 opcode) /* CMPM */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b190_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b198_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1a0_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1a8_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1b0_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1b8_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1b9_0_comp_nf(uae_u32 opcode) /* EOR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_EOR(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_EOR(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1c0_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1c8_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1d0_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1d8_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1e0_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1e8_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1f0_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1f8_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1f9_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1fa_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1fb_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_b1fc_0_comp_nf(uae_u32 opcode) /* CMPA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ dont_care_flags(); -/* Weird --- CMP with noflags ;-) */ -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + dont_care_flags(); + /* Weird --- CMP with noflags ;-) */ + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c000_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c010_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c018_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c020_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c028_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c030_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c038_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c039_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c03a_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c03b_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c03c_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c040_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c050_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c058_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c060_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c068_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c070_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c078_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c079_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c07a_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c07b_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c07c_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c080_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c090_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c098_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0a0_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0a8_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0b0_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0b8_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0b9_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0ba_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0bb_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0bc_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0c0_0_comp_nf(uae_u32 opcode) /* MULU */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int src=srcreg; -{ int dst=dstreg; -{ jnf_MULU(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int src=srcreg; + { + int dst=dstreg; + { + jnf_MULU(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0d0_0_comp_nf(uae_u32 opcode) /* MULU */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jnf_MULU(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jnf_MULU(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0d8_0_comp_nf(uae_u32 opcode) /* MULU */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dstreg; -{ jnf_MULU(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dstreg; + { + jnf_MULU(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0e0_0_comp_nf(uae_u32 opcode) /* MULU */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jnf_MULU(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jnf_MULU(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0e8_0_comp_nf(uae_u32 opcode) /* MULU */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jnf_MULU(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jnf_MULU(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0f0_0_comp_nf(uae_u32 opcode) /* MULU */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jnf_MULU(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jnf_MULU(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0f8_0_comp_nf(uae_u32 opcode) /* MULU */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jnf_MULU(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jnf_MULU(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0f9_0_comp_nf(uae_u32 opcode) /* MULU */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jnf_MULU(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jnf_MULU(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0fa_0_comp_nf(uae_u32 opcode) /* MULU */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jnf_MULU(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jnf_MULU(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0fb_0_comp_nf(uae_u32 opcode) /* MULU */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jnf_MULU(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jnf_MULU(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c0fc_0_comp_nf(uae_u32 opcode) /* MULU */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; -{ jnf_MULU(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + { + jnf_MULU(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c110_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c118_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c120_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c128_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c130_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c138_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c139_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c140_0_comp_nf(uae_u32 opcode) /* EXG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ int tmp=scratchie++; - mov_l_rr(tmp,src); - if(srcreg!=dst) - mov_l_rr(srcreg,dst); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + int tmp=scratchie++; + mov_l_rr(tmp,src); + if(srcreg!=dst) + mov_l_rr(srcreg,dst); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c148_0_comp_nf(uae_u32 opcode) /* EXG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ int tmp=scratchie++; - mov_l_rr(tmp,src); - if(srcreg+8!=dst) - mov_l_rr(srcreg+8,dst); - if(dstreg+8!=tmp) - mov_l_rr(dstreg+8,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + int tmp=scratchie++; + mov_l_rr(tmp,src); + if(srcreg+8!=dst) + mov_l_rr(srcreg+8,dst); + if(dstreg+8!=tmp) + mov_l_rr(dstreg+8,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c150_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c158_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c160_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c168_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c170_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c178_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c179_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c188_0_comp_nf(uae_u32 opcode) /* EXG */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ int tmp=scratchie++; - mov_l_rr(tmp,src); - if(srcreg!=dst) - mov_l_rr(srcreg,dst); - if(dstreg+8!=tmp) - mov_l_rr(dstreg+8,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + int tmp=scratchie++; + mov_l_rr(tmp,src); + if(srcreg!=dst) + mov_l_rr(srcreg,dst); + if(dstreg+8!=tmp) + mov_l_rr(dstreg+8,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c190_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c198_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1a0_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1a8_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1b0_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1b8_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1b9_0_comp_nf(uae_u32 opcode) /* AND */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); - int tmp=scratchie++; -{ jnf_AND(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + int tmp=scratchie++; + { + jnf_AND(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1c0_0_comp_nf(uae_u32 opcode) /* MULS */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int src=srcreg; -{ int dst=dstreg; -{ jnf_MULS(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int src=srcreg; + { + int dst=dstreg; + { + jnf_MULS(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1d0_0_comp_nf(uae_u32 opcode) /* MULS */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jnf_MULS(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jnf_MULS(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1d8_0_comp_nf(uae_u32 opcode) /* MULS */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dstreg; -{ jnf_MULS(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dstreg; + { + jnf_MULS(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1e0_0_comp_nf(uae_u32 opcode) /* MULS */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jnf_MULS(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jnf_MULS(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1e8_0_comp_nf(uae_u32 opcode) /* MULS */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jnf_MULS(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jnf_MULS(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1f0_0_comp_nf(uae_u32 opcode) /* MULS */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jnf_MULS(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jnf_MULS(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1f8_0_comp_nf(uae_u32 opcode) /* MULS */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jnf_MULS(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jnf_MULS(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1f9_0_comp_nf(uae_u32 opcode) /* MULS */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jnf_MULS(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jnf_MULS(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1fa_0_comp_nf(uae_u32 opcode) /* MULS */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jnf_MULS(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jnf_MULS(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1fb_0_comp_nf(uae_u32 opcode) /* MULS */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; -{ jnf_MULS(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + { + jnf_MULS(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_c1fc_0_comp_nf(uae_u32 opcode) /* MULS */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; -{ jnf_MULS(dst,src); - if(dstreg!=dst) - mov_l_rr(dstreg,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + { + jnf_MULS(dst,src); + if(dstreg!=dst) + mov_l_rr(dstreg,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d000_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d010_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d018_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readbyte(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,areg_byteinc[srcreg]); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d020_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d028_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d030_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d038_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d039_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d03a_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d03b_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d03c_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s8)comp_get_ibyte((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d040_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d048_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d050_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d058_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d060_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d068_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d070_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d078_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d079_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d07a_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d07b_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d07c_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d080_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d088_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d090_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d098_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0a0_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0a8_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0b0_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0b8_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0b9_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0ba_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0bb_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0bc_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dstreg; - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dstreg; + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0c0_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0c8_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0d0_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0d8_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0e0_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0e8_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0f0_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0f8_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0f9_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0fa_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0fb_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d0fc_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_w(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_w(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d100_0_comp_nf(uae_u32 opcode) /* ADDX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ dont_care_flags(); - int tmp=scratchie++; - jnf_ADDX(tmp,dst,src); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + dont_care_flags(); + int tmp=scratchie++; + jnf_ADDX(tmp,dst,src); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d108_0_comp_nf(uae_u32 opcode) /* ADDX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readbyte(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); -{ dont_care_flags(); - int tmp=scratchie++; - jnf_ADDX(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,areg_byteinc[srcreg]); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readbyte(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + { + dont_care_flags(); + int tmp=scratchie++; + jnf_ADDX(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d110_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d118_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,areg_byteinc[dstreg]); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d120_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,areg_byteinc[dstreg]); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d128_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d130_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d138_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d139_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readbyte(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writebyte(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readbyte(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writebyte(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d140_0_comp_nf(uae_u32 opcode) /* ADDX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ dont_care_flags(); - int tmp=scratchie++; - jnf_ADDX(tmp,dst,src); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + dont_care_flags(); + int tmp=scratchie++; + jnf_ADDX(tmp,dst,src); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d148_0_comp_nf(uae_u32 opcode) /* ADDX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); -{ dont_care_flags(); - int tmp=scratchie++; - jnf_ADDX(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + { + dont_care_flags(); + int tmp=scratchie++; + jnf_ADDX(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d150_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d158_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,2); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,2); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d160_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,2); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,2); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d168_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d170_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d178_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d179_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readword(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writeword(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readword(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writeword(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d180_0_comp_nf(uae_u32 opcode) /* ADDX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dstreg; -{ dont_care_flags(); - int tmp=scratchie++; - jnf_ADDX(tmp,dst,src); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dstreg; + { + dont_care_flags(); + int tmp=scratchie++; + jnf_ADDX(tmp,dst,src); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d188_0_comp_nf(uae_u32 opcode) /* ADDX */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); -{ dont_care_flags(); - int tmp=scratchie++; - jnf_ADDX(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + { + dont_care_flags(); + int tmp=scratchie++; + jnf_ADDX(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d190_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d198_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - arm_ADD_l_ri8(dstreg+8,4); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + arm_ADD_l_ri8(dstreg+8,4); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1a0_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{{ int dsta=dodgy?scratchie++:dstreg+8; - arm_SUB_l_ri8(dstreg+8,4); - if (dodgy) - mov_l_rr(dsta,8+dstreg); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + { + int dsta=dodgy?scratchie++:dstreg+8; + arm_SUB_l_ri8(dstreg+8,4); + if (dodgy) + mov_l_rr(dsta,8+dstreg); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1a8_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - mov_l_rr(dsta,8+dstreg); - lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + mov_l_rr(dsta,8+dstreg); + lea_l_brr(dsta,dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1b0_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta=scratchie++; - calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta=scratchie++; + calc_disp_ea_020(dstreg+8,comp_get_iword((m68k_pc_offset+=2)-2),dsta,scratchie); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1b8_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1b9_0_comp_nf(uae_u32 opcode) /* ADD */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dst=scratchie++; - readlong(dsta,dst,scratchie); - dont_care_flags(); -{ int tmp=scratchie++; - jnf_ADD(tmp,dst,src); - writelong(dsta,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dst=scratchie++; + readlong(dsta,dst,scratchie); + dont_care_flags(); + { + int tmp=scratchie++; + jnf_ADD(tmp,dst,src); + writelong(dsta,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1c0_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=srcreg; -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=srcreg; + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1c8_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(src,srcreg+8); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(src,srcreg+8); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1d0_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1d8_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readlong(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,4); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readlong(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,4); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1e0_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,4); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,4); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1e8_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1f0_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1f8_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1f9_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1fa_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; - uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - mov_l_ri(srca,address+PC16off); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + uae_s32 PC16off = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + mov_l_ri(srca,address+PC16off); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1fb_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int pctmp=scratchie++; - int srca=scratchie++; - uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; -{ mov_l_ri(pctmp,address); - calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readlong(srca,src,scratchie); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int pctmp=scratchie++; + int srca=scratchie++; + uae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset; + { + mov_l_ri(pctmp,address); + calc_disp_ea_020(pctmp,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readlong(srca,src,scratchie); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_d1fc_0_comp_nf(uae_u32 opcode) /* ADDA */ { - uae_u32 dstreg = (opcode >> 9) & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -{ int src = scratchie++; - mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); -{ int dst=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dst,dstreg+8); -{ jnf_ADDA_l(dst, src); - if(dstreg+8!=dst) - mov_l_rr(dstreg+8,dst); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dstreg = (opcode >> 9) & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + { + int src = scratchie++; + mov_l_ri(src,comp_get_ilong((m68k_pc_offset+=4)-4)); + { + int dst=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dst,dstreg+8); + { + jnf_ADDA_l(dst, src); + if(dstreg+8!=dst) + mov_l_rr(dstreg+8,dst); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e000_0_comp_nf(uae_u32 opcode) /* ASR */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ int tmp=scratchie++; - jnf_ASR_b_imm(tmp,data,srcreg); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + int tmp=scratchie++; + jnf_ASR_b_imm(tmp,data,srcreg); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e008_0_comp_nf(uae_u32 opcode) /* LSR */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; - int tmp=scratchie++; -{ jnf_LSR_b_imm(tmp,data,srcreg); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + int tmp=scratchie++; + { + jnf_LSR_b_imm(tmp,data,srcreg); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e018_0_comp_nf(uae_u32 opcode) /* ROR */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ int tmp=scratchie++; - jnf_ROR_b(tmp,data,cnt); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + int tmp=scratchie++; + jnf_ROR_b(tmp,data,cnt); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e020_0_comp_nf(uae_u32 opcode) /* ASR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; -{ int tmp=scratchie++; - jnf_ASR_b_reg(tmp,data,cnt); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + { + int tmp=scratchie++; + jnf_ASR_b_reg(tmp,data,cnt); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e028_0_comp_nf(uae_u32 opcode) /* LSR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; - int tmp=scratchie++; -{ jnf_LSR_b_reg(tmp,data,cnt); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + int tmp=scratchie++; + { + jnf_LSR_b_reg(tmp,data,cnt); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e038_0_comp_nf(uae_u32 opcode) /* ROR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; -{ int tmp=scratchie++; - jnf_ROR_b(tmp,data,cnt); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + { + int tmp=scratchie++; + jnf_ROR_b(tmp,data,cnt); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e040_0_comp_nf(uae_u32 opcode) /* ASR */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ int tmp=scratchie++; - jnf_ASR_w_imm(tmp,data,srcreg); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + int tmp=scratchie++; + jnf_ASR_w_imm(tmp,data,srcreg); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } #endif #ifdef PART_8 uae_u32 REGPARAM2 op_e048_0_comp_nf(uae_u32 opcode) /* LSR */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; - int tmp=scratchie++; -{ jnf_LSR_w_imm(tmp,data,srcreg); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + int tmp=scratchie++; + { + jnf_LSR_w_imm(tmp,data,srcreg); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e058_0_comp_nf(uae_u32 opcode) /* ROR */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ int tmp=scratchie++; - jnf_ROR_w(tmp,data,cnt); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + int tmp=scratchie++; + jnf_ROR_w(tmp,data,cnt); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e060_0_comp_nf(uae_u32 opcode) /* ASR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; -{ int tmp=scratchie++; - jnf_ASR_w_reg(tmp,data,cnt); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + { + int tmp=scratchie++; + jnf_ASR_w_reg(tmp,data,cnt); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e068_0_comp_nf(uae_u32 opcode) /* LSR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; - int tmp=scratchie++; -{ jnf_LSR_w_reg(tmp,data,cnt); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + int tmp=scratchie++; + { + jnf_LSR_w_reg(tmp,data,cnt); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e078_0_comp_nf(uae_u32 opcode) /* ROR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; -{ int tmp=scratchie++; - jnf_ROR_w(tmp,data,cnt); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + { + int tmp=scratchie++; + jnf_ROR_w(tmp,data,cnt); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e080_0_comp_nf(uae_u32 opcode) /* ASR */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ int tmp=scratchie++; - jnf_ASR_l_imm(tmp,data,srcreg); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + int tmp=scratchie++; + jnf_ASR_l_imm(tmp,data,srcreg); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e088_0_comp_nf(uae_u32 opcode) /* LSR */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; - int tmp=scratchie++; -{ jnf_LSR_l_imm(tmp,data,srcreg); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + int tmp=scratchie++; + { + jnf_LSR_l_imm(tmp,data,srcreg); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e098_0_comp_nf(uae_u32 opcode) /* ROR */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ int tmp=scratchie++; - jnf_ROR_l(tmp,data,cnt); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + int tmp=scratchie++; + jnf_ROR_l(tmp,data,cnt); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e0a0_0_comp_nf(uae_u32 opcode) /* ASR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; -{ int tmp=scratchie++; - jnf_ASR_l_reg(tmp,data,cnt); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + { + int tmp=scratchie++; + jnf_ASR_l_reg(tmp,data,cnt); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e0a8_0_comp_nf(uae_u32 opcode) /* LSR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; - int tmp=scratchie++; -{ jnf_LSR_l_reg(tmp,data,cnt); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + int tmp=scratchie++; + { + jnf_LSR_l_reg(tmp,data,cnt); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e0b8_0_comp_nf(uae_u32 opcode) /* ROR */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; -{ int tmp=scratchie++; - jnf_ROR_l(tmp,data,cnt); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + { + int tmp=scratchie++; + jnf_ROR_l(tmp,data,cnt); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e0d0_0_comp_nf(uae_u32 opcode) /* ASRW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_ASRW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_ASRW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e0d8_0_comp_nf(uae_u32 opcode) /* ASRW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int tmp = scratchie++; - jnf_ASRW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int tmp = scratchie++; + jnf_ASRW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e0e0_0_comp_nf(uae_u32 opcode) /* ASRW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_ASRW(tmp,src); - writeword(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_ASRW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e0e8_0_comp_nf(uae_u32 opcode) /* ASRW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_ASRW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_ASRW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e0f0_0_comp_nf(uae_u32 opcode) /* ASRW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_ASRW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_ASRW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e0f8_0_comp_nf(uae_u32 opcode) /* ASRW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_ASRW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_ASRW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e0f9_0_comp_nf(uae_u32 opcode) /* ASRW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_ASRW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_ASRW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e100_0_comp_nf(uae_u32 opcode) /* ASL */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); - int tmp=scratchie++; -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ jnf_LSL_imm(tmp,data,srcreg); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + int tmp=scratchie++; + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + jnf_LSL_imm(tmp,data,srcreg); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e108_0_comp_nf(uae_u32 opcode) /* LSL */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; - int tmp=scratchie++; -{ jnf_LSL_imm(tmp,data,srcreg); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + int tmp=scratchie++; + { + jnf_LSL_imm(tmp,data,srcreg); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e118_0_comp_nf(uae_u32 opcode) /* ROL */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ int tmp=scratchie++; - jnf_ROL_b(tmp,data,cnt); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + int tmp=scratchie++; + jnf_ROL_b(tmp,data,cnt); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e120_0_comp_nf(uae_u32 opcode) /* ASL */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); - int tmp=scratchie++; -{ int cnt=srcreg; -{ int data=dstreg; -{ jnf_LSL_reg(tmp,data,cnt); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + int tmp=scratchie++; + { + int cnt=srcreg; + { + int data=dstreg; + { + jnf_LSL_reg(tmp,data,cnt); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e128_0_comp_nf(uae_u32 opcode) /* LSL */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; - int tmp=scratchie++; -{ jnf_LSL_reg(tmp,data,cnt); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + int tmp=scratchie++; + { + jnf_LSL_reg(tmp,data,cnt); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e138_0_comp_nf(uae_u32 opcode) /* ROL */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; -{ int tmp=scratchie++; - jnf_ROL_b(tmp,data,cnt); - if(dstreg!=tmp) - mov_b_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + { + int tmp=scratchie++; + jnf_ROL_b(tmp,data,cnt); + if(dstreg!=tmp) + mov_b_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e140_0_comp_nf(uae_u32 opcode) /* ASL */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); - int tmp=scratchie++; -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ jnf_LSL_imm(tmp,data,srcreg); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + int tmp=scratchie++; + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + jnf_LSL_imm(tmp,data,srcreg); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e148_0_comp_nf(uae_u32 opcode) /* LSL */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; - int tmp=scratchie++; -{ jnf_LSL_imm(tmp,data,srcreg); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + int tmp=scratchie++; + { + jnf_LSL_imm(tmp,data,srcreg); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e158_0_comp_nf(uae_u32 opcode) /* ROL */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ int tmp=scratchie++; - jnf_ROL_w(tmp,data,cnt); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + int tmp=scratchie++; + jnf_ROL_w(tmp,data,cnt); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e160_0_comp_nf(uae_u32 opcode) /* ASL */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); - int tmp=scratchie++; -{ int cnt=srcreg; -{ int data=dstreg; -{ jnf_LSL_reg(tmp,data,cnt); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + int tmp=scratchie++; + { + int cnt=srcreg; + { + int data=dstreg; + { + jnf_LSL_reg(tmp,data,cnt); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e168_0_comp_nf(uae_u32 opcode) /* LSL */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; - int tmp=scratchie++; -{ jnf_LSL_reg(tmp,data,cnt); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + int tmp=scratchie++; + { + jnf_LSL_reg(tmp,data,cnt); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e178_0_comp_nf(uae_u32 opcode) /* ROL */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; -{ int tmp=scratchie++; - jnf_ROL_w(tmp,data,cnt); - if(dstreg!=tmp) - mov_w_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + { + int tmp=scratchie++; + jnf_ROL_w(tmp,data,cnt); + if(dstreg!=tmp) + mov_w_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e180_0_comp_nf(uae_u32 opcode) /* ASL */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); - int tmp=scratchie++; -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ jnf_LSL_imm(tmp,data,srcreg); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + int tmp=scratchie++; + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + jnf_LSL_imm(tmp,data,srcreg); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e188_0_comp_nf(uae_u32 opcode) /* LSL */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; - int tmp=scratchie++; -{ jnf_LSL_imm(tmp,data,srcreg); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + int tmp=scratchie++; + { + jnf_LSL_imm(tmp,data,srcreg); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e198_0_comp_nf(uae_u32 opcode) /* ROL */ { - uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int cnt = scratchie++; - mov_l_ri(cnt,srcreg); -{ int data=dstreg; -{ int tmp=scratchie++; - jnf_ROL_l(tmp,data,cnt); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int cnt = scratchie++; + mov_l_ri(cnt,srcreg); + { + int data=dstreg; + { + int tmp=scratchie++; + jnf_ROL_l(tmp,data,cnt); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e1a0_0_comp_nf(uae_u32 opcode) /* ASL */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); - int tmp=scratchie++; -{ int cnt=srcreg; -{ int data=dstreg; -{ jnf_LSL_reg(tmp,data,cnt); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + int tmp=scratchie++; + { + int cnt=srcreg; + { + int data=dstreg; + { + jnf_LSL_reg(tmp,data,cnt); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e1a8_0_comp_nf(uae_u32 opcode) /* LSL */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; - int tmp=scratchie++; -{ jnf_LSL_reg(tmp,data,cnt); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + int tmp=scratchie++; + { + jnf_LSL_reg(tmp,data,cnt); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e1b8_0_comp_nf(uae_u32 opcode) /* ROL */ { - uae_s32 srcreg = ((opcode >> 9) & 7); - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if ((uae_u32)srcreg==(uae_u32)dstreg) { - FAIL(1); - return 0; -} -{ dont_care_flags(); -{ int cnt=srcreg; -{ int data=dstreg; -{ int tmp=scratchie++; - jnf_ROL_l(tmp,data,cnt); - if(dstreg!=tmp) - mov_l_rr(dstreg,tmp); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if ((uae_u32)srcreg==(uae_u32)dstreg) + { + FAIL(1); + return 0; + } + { + dont_care_flags(); + { + int cnt=srcreg; + { + int data=dstreg; + { + int tmp=scratchie++; + jnf_ROL_l(tmp,data,cnt); + if(dstreg!=tmp) + mov_l_rr(dstreg,tmp); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_e1d0_0_comp_nf(uae_u32 opcode) /* ASLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_ASLW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_ASLW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e1d8_0_comp_nf(uae_u32 opcode) /* ASLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int tmp=scratchie++; - jnf_ASLW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int tmp=scratchie++; + jnf_ASLW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e1e0_0_comp_nf(uae_u32 opcode) /* ASLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_ASLW(tmp,src); - writeword(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_ASLW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e1e8_0_comp_nf(uae_u32 opcode) /* ASLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_ASLW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_ASLW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e1f0_0_comp_nf(uae_u32 opcode) /* ASLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_ASLW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_ASLW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e1f8_0_comp_nf(uae_u32 opcode) /* ASLW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_ASLW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_ASLW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e1f9_0_comp_nf(uae_u32 opcode) /* ASLW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_ASLW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_ASLW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e2d0_0_comp_nf(uae_u32 opcode) /* LSRW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_LSRW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_LSRW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e2d8_0_comp_nf(uae_u32 opcode) /* LSRW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int tmp = scratchie++; - jnf_LSRW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int tmp = scratchie++; + jnf_LSRW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e2e0_0_comp_nf(uae_u32 opcode) /* LSRW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_LSRW(tmp,src); - writeword(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_LSRW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e2e8_0_comp_nf(uae_u32 opcode) /* LSRW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_LSRW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_LSRW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e2f0_0_comp_nf(uae_u32 opcode) /* LSRW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_LSRW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_LSRW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e2f8_0_comp_nf(uae_u32 opcode) /* LSRW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_LSRW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_LSRW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e2f9_0_comp_nf(uae_u32 opcode) /* LSRW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_LSRW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_LSRW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e3d0_0_comp_nf(uae_u32 opcode) /* LSLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_LSLW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_LSLW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e3d8_0_comp_nf(uae_u32 opcode) /* LSLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int tmp=scratchie++; - jnf_LSLW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int tmp=scratchie++; + jnf_LSLW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e3e0_0_comp_nf(uae_u32 opcode) /* LSLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_LSLW(tmp,src); - writeword(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_LSLW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e3e8_0_comp_nf(uae_u32 opcode) /* LSLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_LSLW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_LSLW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e3f0_0_comp_nf(uae_u32 opcode) /* LSLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_LSLW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_LSLW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e3f8_0_comp_nf(uae_u32 opcode) /* LSLW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_LSLW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_LSLW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e3f9_0_comp_nf(uae_u32 opcode) /* LSLW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp=scratchie++; - jnf_LSLW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp=scratchie++; + jnf_LSLW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e6d0_0_comp_nf(uae_u32 opcode) /* RORW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_RORW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_RORW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e6d8_0_comp_nf(uae_u32 opcode) /* RORW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int tmp = scratchie++; - jnf_RORW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int tmp = scratchie++; + jnf_RORW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e6e0_0_comp_nf(uae_u32 opcode) /* RORW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_RORW(tmp,src); - writeword(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_RORW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e6e8_0_comp_nf(uae_u32 opcode) /* RORW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_RORW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_RORW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e6f0_0_comp_nf(uae_u32 opcode) /* RORW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_RORW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_RORW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e6f8_0_comp_nf(uae_u32 opcode) /* RORW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_RORW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_RORW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e6f9_0_comp_nf(uae_u32 opcode) /* RORW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_RORW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_RORW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e7d0_0_comp_nf(uae_u32 opcode) /* ROLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_ROLW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_ROLW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e7d8_0_comp_nf(uae_u32 opcode) /* ROLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int src=scratchie++; - readword(srca,src,scratchie); - arm_ADD_l_ri8(srcreg+8,2); -{ int tmp = scratchie++; - jnf_ROLW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int src=scratchie++; + readword(srca,src,scratchie); + arm_ADD_l_ri8(srcreg+8,2); + { + int tmp = scratchie++; + jnf_ROLW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e7e0_0_comp_nf(uae_u32 opcode) /* ROLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{{ int srca=dodgy?scratchie++:srcreg+8; - arm_SUB_l_ri8(srcreg+8,2); - if (dodgy) - mov_l_rr(srca,8+srcreg); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_ROLW(tmp,src); - writeword(srca,tmp,scratchie); -}}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + { + int srca=dodgy?scratchie++:srcreg+8; + arm_SUB_l_ri8(srcreg+8,2); + if (dodgy) + mov_l_rr(srca,8+srcreg); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_ROLW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e7e8_0_comp_nf(uae_u32 opcode) /* ROLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - mov_l_rr(srca,8+srcreg); - lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_ROLW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + mov_l_rr(srca,8+srcreg); + lea_l_brr(srca,srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_ROLW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e7f0_0_comp_nf(uae_u32 opcode) /* ROLW */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca=scratchie++; - calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_ROLW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca=scratchie++; + calc_disp_ea_020(srcreg+8,comp_get_iword((m68k_pc_offset+=2)-2),srca,scratchie); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_ROLW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e7f8_0_comp_nf(uae_u32 opcode) /* ROLW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_ROLW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,(uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2)); + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_ROLW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_e7f9_0_comp_nf(uae_u32 opcode) /* ROLW */ { - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; - dont_care_flags(); -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int src=scratchie++; - readword(srca,src,scratchie); -{ int tmp = scratchie++; - jnf_ROLW(tmp,src); - writeword(srca,tmp,scratchie); -}}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); -return 0; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + dont_care_flags(); + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int src=scratchie++; + readword(srca,src,scratchie); + { + int tmp = scratchie++; + jnf_ROLW(tmp,src); + writeword(srca,tmp,scratchie); + } + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + return 0; } uae_u32 REGPARAM2 op_f600_0_comp_nf(uae_u32 opcode) /* MOVE16 */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if (special_mem) { - FAIL(1); - return 0; -} - int src=scratchie++; - int dst=scratchie++; -{ int srca=scratchie++; - mov_l_rr(srca,srcreg+8); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - jnf_ADD_im8(srcreg + 8, srcreg + 8, 16); - jnf_MOVE16(dst, src); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if (special_mem) + { + FAIL(1); + return 0; + } + int src=scratchie++; + int dst=scratchie++; + { + int srca=scratchie++; + mov_l_rr(srca,srcreg+8); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + jnf_ADD_im8(srcreg + 8, srcreg + 8, 16); + jnf_MOVE16(dst, src); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_f608_0_comp_nf(uae_u32 opcode) /* MOVE16 */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if (special_mem) { - FAIL(1); - return 0; -} - int src=scratchie++; - int dst=scratchie++; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dsta=scratchie++; - mov_l_rr(dsta,dstreg+8); - jnf_ADD_im8(dstreg + 8, dstreg + 8, 16); - jnf_MOVE16(dst, src); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if (special_mem) + { + FAIL(1); + return 0; + } + int src=scratchie++; + int dst=scratchie++; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dsta=scratchie++; + mov_l_rr(dsta,dstreg+8); + jnf_ADD_im8(dstreg + 8, dstreg + 8, 16); + jnf_MOVE16(dst, src); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_f610_0_comp_nf(uae_u32 opcode) /* MOVE16 */ { - uae_s32 srcreg = (opcode & 7); - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if (special_mem) { - FAIL(1); - return 0; -} - int src=scratchie++; - int dst=scratchie++; -{ int srca=dodgy?scratchie++:srcreg+8; - if (dodgy) - mov_l_rr(srca,srcreg+8); -{ int dsta = scratchie++; - mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ - jnf_MOVE16(dst, src); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = (opcode & 7); + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if (special_mem) + { + FAIL(1); + return 0; + } + int src=scratchie++; + int dst=scratchie++; + { + int srca=dodgy?scratchie++:srcreg+8; + if (dodgy) + mov_l_rr(srca,srcreg+8); + { + int dsta = scratchie++; + mov_l_ri(dsta,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + jnf_MOVE16(dst, src); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_f618_0_comp_nf(uae_u32 opcode) /* MOVE16 */ { - uae_u32 dstreg = opcode & 7; - uae_u32 dodgy=0; - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if (special_mem) { - FAIL(1); - return 0; -} - int src=scratchie++; - int dst=scratchie++; -{ int srca = scratchie++; - mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ -{ int dsta=dodgy?scratchie++:dstreg+8; - if (dodgy) - mov_l_rr(dsta,dstreg+8); - jnf_MOVE16(dst, src); -}}} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_u32 dstreg = opcode & 7; + uae_u32 dodgy=0; + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if (special_mem) + { + FAIL(1); + return 0; + } + int src=scratchie++; + int dst=scratchie++; + { + int srca = scratchie++; + mov_l_ri(srca,comp_get_ilong((m68k_pc_offset+=4)-4)); /* absl */ + { + int dsta=dodgy?scratchie++:dstreg+8; + if (dodgy) + mov_l_rr(dsta,dstreg+8); + jnf_MOVE16(dst, src); + } + } + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } uae_u32 REGPARAM2 op_f620_0_comp_nf(uae_u32 opcode) /* MOVE16 */ { - uae_s32 srcreg = (opcode & 7); - uae_s32 dstreg = 0; - uae_u32 dodgy=(srcreg==(uae_s32)dstreg); - uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; - m68k_pc_offset+=2; -{ uae_u8 scratchie=S1; -if (special_mem) { - FAIL(1); - return 0; -} - int src=scratchie++; - int dst=scratchie++; - uae_u16 dstreg = ((comp_get_iword((m68k_pc_offset+=2)-2))>>12) & 0x07; - jnf_MOVE(src, srcreg + 8); - jnf_MOVE(dst, dstreg + 8); - if (srcreg != dstreg) - jnf_ADD_im8(srcreg + 8, srcreg + 8, 16); - jnf_ADD_im8(dstreg + 8, dstreg + 8, 16); - jnf_MOVE16(dst, src); -} if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); - if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; -return 0; + uae_s32 srcreg = (opcode & 7); + uae_s32 dstreg = 0; + uae_u32 dodgy=(srcreg==(uae_s32)dstreg); + uae_u32 m68k_pc_offset_thisinst=m68k_pc_offset; + m68k_pc_offset+=2; + { + uae_u8 scratchie=S1; + if (special_mem) + { + FAIL(1); + return 0; + } + int src=scratchie++; + int dst=scratchie++; + uae_u16 dstreg = ((comp_get_iword((m68k_pc_offset+=2)-2))>>12) & 0x07; + jnf_MOVE(src, srcreg + 8); + jnf_MOVE(dst, dstreg + 8); + if (srcreg != dstreg) + jnf_ADD_im8(srcreg + 8, srcreg + 8, 16); + jnf_ADD_im8(dstreg + 8, dstreg + 8, 16); + jnf_MOVE16(dst, src); + } + if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc(); + if (failure) m68k_pc_offset=m68k_pc_offset_thisinst; + return 0; } #endif diff --git a/src/jit/compemu.h b/src/jit/compemu.h index ccf6a052..a3c16d53 100644 --- a/src/jit/compemu.h +++ b/src/jit/compemu.h @@ -2,7 +2,7 @@ * compiler/compemu.h - Public interface and definitions * * Copyright (c) 2001-2004 Milan Jurik of ARAnyM dev team (see AUTHORS) - * + * * Inspired by Christian Bauer's Basilisk II * * This file is part of the ARAnyM project which builds a new and powerful @@ -45,13 +45,15 @@ extern uae_u32 start_pc; struct blockinfo_t; -typedef struct { - uae_u16* location; - uae_u8 cycles; - uae_u8 specmem; +typedef struct +{ + uae_u16* location; + uae_u8 cycles; + uae_u8 specmem; } cpu_history; -typedef union { +typedef union +{ cpuop_func* handler; struct blockinfo_t* bi; } cacheline; @@ -164,39 +166,42 @@ extern void* pushall_call_handler; #define UNDEF 4 #define ISCONST 5 -typedef struct { - uae_u32* mem; - uae_u32 val; - uae_u8 status; - uae_s8 realreg; /* gb-- realreg can hold -1 */ - uae_u8 realind; /* The index in the holds[] array */ - uae_u8 validsize; - uae_u8 dirtysize; +typedef struct +{ + uae_u32* mem; + uae_u32 val; + uae_u8 status; + uae_s8 realreg; /* gb-- realreg can hold -1 */ + uae_u8 realind; /* The index in the holds[] array */ + uae_u8 validsize; + uae_u8 dirtysize; } reg_status; #ifdef USE_JIT_FPU -typedef struct { - uae_u32* mem; - double val; - uae_u8 status; - uae_s8 realreg; /* gb-- realreg can hold -1 */ - uae_u8 realind; - uae_u8 needflush; +typedef struct +{ + uae_u32* mem; + double val; + uae_u8 status; + uae_s8 realreg; /* gb-- realreg can hold -1 */ + uae_u8 realind; + uae_u8 needflush; } freg_status; #endif -typedef struct { +typedef struct +{ uae_u8 use_flags; uae_u8 set_flags; uae_u8 is_addx; - uae_u8 cflow; + uae_u8 cflow; } op_properties; extern op_properties prop[65536]; STATIC_INLINE int end_block(uae_u16 opcode) { - return (prop[opcode].cflow & fl_end_block); + return (prop[opcode].cflow & fl_end_block); } #define PC_P 16 @@ -221,19 +226,21 @@ STATIC_INLINE int end_block(uae_u16 opcode) #define FS2 10 #define FS3 11 -typedef struct { - uae_u32 touched; - uae_s8 holds[VREGS]; - uae_u8 nholds; - uae_u8 locked; +typedef struct +{ + uae_u32 touched; + uae_s8 holds[VREGS]; + uae_u8 nholds; + uae_u8 locked; } n_status; #ifdef USE_JIT_FPU -typedef struct { - uae_u32 touched; - uae_s8 holds[VFREGS]; - uae_u8 nholds; - uae_u8 locked; +typedef struct +{ + uae_u32 touched; + uae_s8 holds[VFREGS]; + uae_u8 nholds; + uae_u8 locked; } fn_status; #endif @@ -247,7 +254,8 @@ typedef struct { #define NF_TOMEM 1 #define NF_HANDLER 2 -typedef struct { +typedef struct +{ /* Integer part */ reg_status state[VREGS]; n_status nat[N_REGS]; @@ -261,10 +269,11 @@ typedef struct { #endif } bigstate; -typedef struct { +typedef struct +{ /* Integer part */ - uae_s8 virt[VREGS]; - uae_s8 nat[N_REGS]; + uae_s8 virt[VREGS]; + uae_s8 nat[N_REGS]; } smallstate; extern int touchcnt; @@ -334,21 +343,24 @@ extern void register_branch(uae_u32 not_taken, uae_u32 taken, uae_u8 cond); struct blockinfo_t; -typedef struct dep_t { - uae_u32* jmp_off; - struct blockinfo_t* target; - struct blockinfo_t* source; - struct dep_t** prev_p; - struct dep_t* next; +typedef struct dep_t +{ + uae_u32* jmp_off; + struct blockinfo_t* target; + struct blockinfo_t* source; + struct dep_t** prev_p; + struct dep_t* next; } dependency; -typedef struct checksum_info_t { - uae_u8 *start_p; - uae_u32 length; - struct checksum_info_t *next; +typedef struct checksum_info_t +{ + uae_u8 *start_p; + uae_u32 length; + struct checksum_info_t *next; } checksum_info; -typedef struct blockinfo_t { +typedef struct blockinfo_t +{ uae_s32 count; cpuop_func* direct_handler_to_use; cpuop_func* handler_to_use; @@ -386,8 +398,8 @@ typedef struct blockinfo_t { smallstate env; #ifdef JIT_DEBUG - /* (gb) size of the compiled block (direct handler) */ - uae_u32 direct_handler_size; + /* (gb) size of the compiled block (direct handler) */ + uae_u32 direct_handler_size; #endif } blockinfo; diff --git a/src/jit/compemu_fpp.cpp b/src/jit/compemu_fpp.cpp index 3a2dc3f4..ce09e8b2 100644 --- a/src/jit/compemu_fpp.cpp +++ b/src/jit/compemu_fpp.cpp @@ -1,30 +1,31 @@ -/* - * UAE - The Un*x Amiga Emulator - * - * MC68881 emulation - * - * Copyright 1996 Herman ten Brugge - * Adapted for JIT compilation (c) Bernd Meyer, 2000 - * Modified 2005 Peter Keunecke - */ - -#include - -#include "sysconfig.h" -#include "sysdeps.h" - -#include "options.h" -#include "memory.h" -#include "newcpu.h" -#include "custom.h" -#include "ersatz.h" -#include "compemu.h" - -#if defined(JIT) -uae_u32 temp_fp[] = {0,0,0}; /* To convert between FP and */ - -/* 128 words, indexed through the low byte of the 68k fpu control word */ -static const uae_u16 x86_fpucw[]={ +/* + * UAE - The Un*x Amiga Emulator + * + * MC68881 emulation + * + * Copyright 1996 Herman ten Brugge + * Adapted for JIT compilation (c) Bernd Meyer, 2000 + * Modified 2005 Peter Keunecke + */ + +#include + +#include "sysconfig.h" +#include "sysdeps.h" + +#include "options.h" +#include "include/memory.h" +#include "newcpu.h" +#include "custom.h" +#include "ersatz.h" +#include "compemu.h" + +#if defined(JIT) +uae_u32 temp_fp[] = {0,0,0}; /* To convert between FP and */ + +/* 128 words, indexed through the low byte of the 68k fpu control word */ +static const uae_u16 x86_fpucw[]= +{ 0x137f, 0x137f, 0x137f, 0x137f, 0x137f, 0x137f, 0x137f, 0x137f, /* E-RN */ 0x1f7f, 0x1f7f, 0x1f7f, 0x1f7f, 0x1f7f, 0x1f7f, 0x1f7f, 0x1f7f, /* E-RZ */ 0x177f, 0x177f, 0x177f, 0x177f, 0x177f, 0x177f, 0x177f, 0x177f, /* E-RD */ @@ -45,62 +46,62 @@ static const uae_u16 x86_fpucw[]={ 0x177f, 0x177f, 0x177f, 0x177f, 0x177f, 0x177f, 0x177f, 0x177f, /* ?-RD */ 0x1b7f, 0x1b7f, 0x1b7f, 0x1b7f, 0x1b7f, 0x1b7f, 0x1b7f, 0x1b7f /* ?-RU */ }; -static const int sz1[8] = { 4, 4, 12, 12, 2, 8, 1, 0 }; -static const int sz2[8] = { 4, 4, 12, 12, 2, 8, 2, 0 }; - -/* return the required floating point precision or -1 for failure, 0=E, 1=S, 2=D */ -STATIC_INLINE int comp_fp_get (uae_u32 opcode, uae_u16 extra, int treg) -{ - printf("comp_fp_get not yet implemented\n"); - return -1; -} - -/* return of -1 means failure, >=0 means OK */ -STATIC_INLINE int comp_fp_put (uae_u32 opcode, uae_u16 extra) -{ - printf("comp_fp_put not yet implemented\n"); - return -1; -} - -/* return -1 for failure, or register number for success */ -STATIC_INLINE int comp_fp_adr (uae_u32 opcode) -{ - printf("comp_fp_adr not yet implemented\n"); - return -1; -} - -void comp_fdbcc_opp (uae_u32 opcode, uae_u16 extra) -{ - printf("comp_fdbcc_opp not yet implemented\n"); -} - -void comp_fscc_opp (uae_u32 opcode, uae_u16 extra) -{ - printf("comp_fscc_opp not yet implemented\n"); -} - -void comp_ftrapcc_opp (uae_u32 opcode, uaecptr oldpc) -{ - printf("comp_ftrapcc_opp not yet implemented\n"); -} - -void comp_fbcc_opp (uae_u32 opcode) -{ - printf("comp_fbcc_opp not yet implemented\n"); -} - -void comp_fsave_opp (uae_u32 opcode) -{ - printf("comp_fsave_opp not yet implemented\n"); -} - -void comp_frestore_opp (uae_u32 opcode) -{ - printf("comp_frestore_opp not yet implemented\n"); -} - -void comp_fpp_opp (uae_u32 opcode, uae_u16 extra) -{ - printf("comp_fpp_opp not yet implemented\n"); -} -#endif +static const int sz1[8] = { 4, 4, 12, 12, 2, 8, 1, 0 }; +static const int sz2[8] = { 4, 4, 12, 12, 2, 8, 2, 0 }; + +/* return the required floating point precision or -1 for failure, 0=E, 1=S, 2=D */ +STATIC_INLINE int comp_fp_get (uae_u32 opcode, uae_u16 extra, int treg) +{ + printf("comp_fp_get not yet implemented\n"); + return -1; +} + +/* return of -1 means failure, >=0 means OK */ +STATIC_INLINE int comp_fp_put (uae_u32 opcode, uae_u16 extra) +{ + printf("comp_fp_put not yet implemented\n"); + return -1; +} + +/* return -1 for failure, or register number for success */ +STATIC_INLINE int comp_fp_adr (uae_u32 opcode) +{ + printf("comp_fp_adr not yet implemented\n"); + return -1; +} + +void comp_fdbcc_opp (uae_u32 opcode, uae_u16 extra) +{ + printf("comp_fdbcc_opp not yet implemented\n"); +} + +void comp_fscc_opp (uae_u32 opcode, uae_u16 extra) +{ + printf("comp_fscc_opp not yet implemented\n"); +} + +void comp_ftrapcc_opp (uae_u32 opcode, uaecptr oldpc) +{ + printf("comp_ftrapcc_opp not yet implemented\n"); +} + +void comp_fbcc_opp (uae_u32 opcode) +{ + printf("comp_fbcc_opp not yet implemented\n"); +} + +void comp_fsave_opp (uae_u32 opcode) +{ + printf("comp_fsave_opp not yet implemented\n"); +} + +void comp_frestore_opp (uae_u32 opcode) +{ + printf("comp_frestore_opp not yet implemented\n"); +} + +void comp_fpp_opp (uae_u32 opcode, uae_u16 extra) +{ + printf("comp_fpp_opp not yet implemented\n"); +} +#endif diff --git a/src/jit/compemu_midfunc_arm.cpp b/src/jit/compemu_midfunc_arm.cpp index 4af469ba..87a296bb 100644 --- a/src/jit/compemu_midfunc_arm.cpp +++ b/src/jit/compemu_midfunc_arm.cpp @@ -54,339 +54,358 @@ MIDFUNC(0,live_flags,(void)) { - live.flags_on_stack = TRASH; - live.flags_in_flags = VALID; - live.flags_are_important = 1; + live.flags_on_stack = TRASH; + live.flags_in_flags = VALID; + live.flags_are_important = 1; } MENDFUNC(0,live_flags,(void)) MIDFUNC(0,dont_care_flags,(void)) { - live.flags_are_important = 0; + live.flags_are_important = 0; } MENDFUNC(0,dont_care_flags,(void)) MIDFUNC(0,make_flags_live,(void)) { - make_flags_live_internal(); + make_flags_live_internal(); } MENDFUNC(0,make_flags_live,(void)) MIDFUNC(2,mov_l_mi,(IMM d, IMM s)) { - raw_mov_l_mi(d, s); + raw_mov_l_mi(d, s); } MENDFUNC(2,mov_l_mi,(IMM d, IMM s)) MIDFUNC(2,shll_l_ri,(RW4 r, IMM i)) { - // Only used in calc_disp_ea_020() -> flags not relevant and never modified - if (!i) - return; - if (isconst(r)) { - live.state[r].val<<=i; - return; - } + // Only used in calc_disp_ea_020() -> flags not relevant and never modified + if (!i) + return; + if (isconst(r)) + { + live.state[r].val<<=i; + return; + } - r = rmw(r, 4, 4); - raw_shll_l_ri(r, i); - unlock2(r); + r = rmw(r, 4, 4); + raw_shll_l_ri(r, i); + unlock2(r); } MENDFUNC(2,shll_l_ri,(RW4 r, IMM i)) MIDFUNC(2,sign_extend_16_rr,(W4 d, RR2 s)) { - // Only used in calc_disp_ea_020() -> flags not relevant and never modified - int isrmw; + // Only used in calc_disp_ea_020() -> flags not relevant and never modified + int isrmw; - if (isconst(s)) { - set_const(d, (uae_s32)(uae_s16)live.state[s].val); - return; - } + if (isconst(s)) + { + set_const(d, (uae_s32)(uae_s16)live.state[s].val); + return; + } - isrmw = (s == d); - if (!isrmw) { - s = readreg(s, 2); - d = writereg(d, 4); - } - else { /* If we try to lock this twice, with different sizes, we are int trouble! */ - s = d = rmw(s, 4, 2); - } - SIGNED16_REG_2_REG(d, s); - if (!isrmw) { - unlock2(d); - unlock2(s); - } - else { - unlock2(s); - } + isrmw = (s == d); + if (!isrmw) + { + s = readreg(s, 2); + d = writereg(d, 4); + } + else /* If we try to lock this twice, with different sizes, we are int trouble! */ + { + s = d = rmw(s, 4, 2); + } + SIGNED16_REG_2_REG(d, s); + if (!isrmw) + { + unlock2(d); + unlock2(s); + } + else + { + unlock2(s); + } } MENDFUNC(2,sign_extend_16_rr,(W4 d, RR2 s)) MIDFUNC(2,mov_b_rr,(W1 d, RR1 s)) { - if (d == s) - return; - if (isconst(s)) { - COMPCALL(mov_b_ri)(d, (uae_u8)live.state[s].val); - return; - } + if (d == s) + return; + if (isconst(s)) + { + COMPCALL(mov_b_ri)(d, (uae_u8)live.state[s].val); + return; + } - s = readreg(s, 1); - d = writereg(d, 1); - raw_mov_b_rr(d, s); - unlock2(d); - unlock2(s); + s = readreg(s, 1); + d = writereg(d, 1); + raw_mov_b_rr(d, s); + unlock2(d); + unlock2(s); } MENDFUNC(2,mov_b_rr,(W1 d, RR1 s)) MIDFUNC(2,mov_w_rr,(W2 d, RR2 s)) { - if (d == s) - return; - if (isconst(s)) { - COMPCALL(mov_w_ri)(d, (uae_u16)live.state[s].val); - return; - } + if (d == s) + return; + if (isconst(s)) + { + COMPCALL(mov_w_ri)(d, (uae_u16)live.state[s].val); + return; + } - s = readreg(s, 2); - d = writereg(d, 2); - raw_mov_w_rr(d, s); - unlock2(d); - unlock2(s); + s = readreg(s, 2); + d = writereg(d, 2); + raw_mov_w_rr(d, s); + unlock2(d); + unlock2(s); } MENDFUNC(2,mov_w_rr,(W2 d, RR2 s)) MIDFUNC(3,lea_l_brr,(W4 d, RR4 s, IMM offset)) { - if (isconst(s)) { - COMPCALL(mov_l_ri)(d, live.state[s].val+offset); - return; - } + if (isconst(s)) + { + COMPCALL(mov_l_ri)(d, live.state[s].val+offset); + return; + } - s = readreg(s, 4); - d = writereg(d, 4); - raw_lea_l_brr(d, s, offset); - unlock2(d); - unlock2(s); + s = readreg(s, 4); + d = writereg(d, 4); + raw_lea_l_brr(d, s, offset); + unlock2(d); + unlock2(s); } MENDFUNC(3,lea_l_brr,(W4 d, RR4 s, IMM offset)) MIDFUNC(5,lea_l_brr_indexed,(W4 d, RR4 s, RR4 index, IMM factor, IMM offset)) { - if (!offset) { - COMPCALL(lea_l_rr_indexed)(d, s, index, factor); - return; - } - - s = readreg(s, 4); - index = readreg(index, 4); - d = writereg(d, 4); - raw_lea_l_brr_indexed(d, s, index, factor, offset); - unlock2(d); - unlock2(index); - unlock2(s); + if (!offset) + { + COMPCALL(lea_l_rr_indexed)(d, s, index, factor); + return; + } + + s = readreg(s, 4); + index = readreg(index, 4); + d = writereg(d, 4); + raw_lea_l_brr_indexed(d, s, index, factor, offset); + unlock2(d); + unlock2(index); + unlock2(s); } MENDFUNC(5,lea_l_brr_indexed,(W4 d, RR4 s, RR4 index, IMM factor, IMM offset)) MIDFUNC(4,lea_l_rr_indexed,(W4 d, RR4 s, RR4 index, IMM factor)) { - s = readreg(s, 4); - index = readreg(index, 4); - d = writereg(d, 4); - raw_lea_l_rr_indexed(d, s, index, factor); - unlock2(d); - unlock2(index); - unlock2(s); + s = readreg(s, 4); + index = readreg(index, 4); + d = writereg(d, 4); + raw_lea_l_rr_indexed(d, s, index, factor); + unlock2(d); + unlock2(index); + unlock2(s); } MENDFUNC(4,lea_l_rr_indexed,(W4 d, RR4 s, RR4 index, IMM factor)) MIDFUNC(2,mov_l_rr,(W4 d, RR4 s)) { - int olds; + int olds; - if (d == s) { /* How pointless! */ - return; - } - if (isconst(s)) { - COMPCALL(mov_l_ri)(d, live.state[s].val); - return; - } - olds = s; - disassociate(d); - s = readreg(s, 4); - live.state[d].realreg = s; - live.state[d].realind = live.nat[s].nholds; - live.state[d].val = live.state[olds].val; - live.state[d].validsize = 4; - live.state[d].dirtysize = 4; - set_status(d, DIRTY); + if (d == s) /* How pointless! */ + { + return; + } + if (isconst(s)) + { + COMPCALL(mov_l_ri)(d, live.state[s].val); + return; + } + olds = s; + disassociate(d); + s = readreg(s, 4); + live.state[d].realreg = s; + live.state[d].realind = live.nat[s].nholds; + live.state[d].val = live.state[olds].val; + live.state[d].validsize = 4; + live.state[d].dirtysize = 4; + set_status(d, DIRTY); - live.nat[s].holds[live.nat[s].nholds] = d; - live.nat[s].nholds++; - D2(panicbug("Added %d to nreg %d(%d), now holds %d regs", d, s, live.state[d].realind, live.nat[s].nholds)); - unlock2(s); + live.nat[s].holds[live.nat[s].nholds] = d; + live.nat[s].nholds++; + D2(panicbug("Added %d to nreg %d(%d), now holds %d regs", d, s, live.state[d].realind, live.nat[s].nholds)); + unlock2(s); } MENDFUNC(2,mov_l_rr,(W4 d, RR4 s)) MIDFUNC(2,mov_l_mr,(IMM d, RR4 s)) { - if (isconst(s)) { - COMPCALL(mov_l_mi)(d, live.state[s].val); - return; - } - - s = readreg(s, 4); - raw_mov_l_mr(d, s); - unlock2(s); + if (isconst(s)) + { + COMPCALL(mov_l_mi)(d, live.state[s].val); + return; + } + + s = readreg(s, 4); + raw_mov_l_mr(d, s); + unlock2(s); } MENDFUNC(2,mov_l_mr,(IMM d, RR4 s)) MIDFUNC(2,mov_l_ri,(W4 d, IMM s)) { - set_const(d, s); - return; + set_const(d, s); + return; } MENDFUNC(2,mov_l_ri,(W4 d, IMM s)) MIDFUNC(2,mov_w_ri,(W2 d, IMM s)) { - d = writereg(d, 2); - raw_mov_w_ri(d, s); - unlock2(d); + d = writereg(d, 2); + raw_mov_w_ri(d, s); + unlock2(d); } MENDFUNC(2,mov_w_ri,(W2 d, IMM s)) MIDFUNC(2,mov_b_ri,(W1 d, IMM s)) { - d = writereg(d, 1); - raw_mov_b_ri(d, s); - unlock2(d); + d = writereg(d, 1); + raw_mov_b_ri(d, s); + unlock2(d); } MENDFUNC(2,mov_b_ri,(W1 d, IMM s)) MIDFUNC(2,add_l,(RW4 d, RR4 s)) { - if (isconst(s)) { - COMPCALL(add_l_ri)(d, live.state[s].val); - return; - } + if (isconst(s)) + { + COMPCALL(add_l_ri)(d, live.state[s].val); + return; + } - s = readreg(s, 4); - d = rmw(d, 4, 4); - raw_add_l(d, s); - unlock2(d); - unlock2(s); + s = readreg(s, 4); + d = rmw(d, 4, 4); + raw_add_l(d, s); + unlock2(d); + unlock2(s); } MENDFUNC(2,add_l,(RW4 d, RR4 s)) MIDFUNC(2,sub_l_ri,(RW4 d, IMM i)) { - if (!i) - return; - if (isconst(d)) { - live.state[d].val -= i; - return; - } + if (!i) + return; + if (isconst(d)) + { + live.state[d].val -= i; + return; + } - d = rmw(d, 4, 4); - raw_sub_l_ri(d, i); - unlock2(d); + d = rmw(d, 4, 4); + raw_sub_l_ri(d, i); + unlock2(d); } MENDFUNC(2,sub_l_ri,(RW4 d, IMM i)) MIDFUNC(2,sub_w_ri,(RW2 d, IMM i)) { - // Caller needs flags... - clobber_flags(); + // Caller needs flags... + clobber_flags(); - d = rmw(d, 2, 2); - raw_sub_w_ri(d, i); - unlock2(d); + d = rmw(d, 2, 2); + raw_sub_w_ri(d, i); + unlock2(d); } MENDFUNC(2,sub_w_ri,(RW2 d, IMM i)) MIDFUNC(2,add_l_ri,(RW4 d, IMM i)) { - if (!i) - return; - if (isconst(d)) { - live.state[d].val += i; - return; - } + if (!i) + return; + if (isconst(d)) + { + live.state[d].val += i; + return; + } - d = rmw(d, 4, 4); - raw_add_l_ri(d, i); - unlock2(d); + d = rmw(d, 4, 4); + raw_add_l_ri(d, i); + unlock2(d); } MENDFUNC(2,add_l_ri,(RW4 d, IMM i)) MIDFUNC(5,call_r_02,(RR4 r, RR4 in1, RR4 in2, IMM isize1, IMM isize2)) { - clobber_flags(); - in1 = readreg_specific(in1, isize1, REG_PAR1); - in2 = readreg_specific(in2, isize2, REG_PAR2); - r = readreg(r, 4); - prepare_for_call_1(); - unlock2(r); - unlock2(in1); - unlock2(in2); - prepare_for_call_2(); - compemu_raw_call_r(r); + clobber_flags(); + in1 = readreg_specific(in1, isize1, REG_PAR1); + in2 = readreg_specific(in2, isize2, REG_PAR2); + r = readreg(r, 4); + prepare_for_call_1(); + unlock2(r); + unlock2(in1); + unlock2(in2); + prepare_for_call_2(); + compemu_raw_call_r(r); } MENDFUNC(5,call_r_02,(RR4 r, RR4 in1, RR4 in2, IMM isize1, IMM isize2)) MIDFUNC(5,call_r_11,(W4 out1, RR4 r, RR4 in1, IMM osize, IMM isize)) { - clobber_flags(); - if (osize == 4) { - if (out1 != in1 && out1 != r) { - COMPCALL(forget_about)(out1); + clobber_flags(); + if (osize == 4) + { + if (out1 != in1 && out1 != r) + { + COMPCALL(forget_about)(out1); + } + } + else + { + tomem_c(out1); } - } - else { - tomem_c(out1); - } - in1 = readreg_specific(in1, isize, REG_PAR1); - r = readreg(r, 4); - prepare_for_call_1(); + in1 = readreg_specific(in1, isize, REG_PAR1); + r = readreg(r, 4); + prepare_for_call_1(); - unlock2(in1); - unlock2(r); + unlock2(in1); + unlock2(r); - prepare_for_call_2(); - compemu_raw_call_r(r); + prepare_for_call_2(); + compemu_raw_call_r(r); - live.nat[REG_RESULT].holds[0] = out1; - live.nat[REG_RESULT].nholds = 1; - live.nat[REG_RESULT].touched = touchcnt++; + live.nat[REG_RESULT].holds[0] = out1; + live.nat[REG_RESULT].nholds = 1; + live.nat[REG_RESULT].touched = touchcnt++; - live.state[out1].realreg = REG_RESULT; - live.state[out1].realind = 0; - live.state[out1].val = 0; - live.state[out1].validsize = osize; - live.state[out1].dirtysize = osize; - set_status(out1, DIRTY); + live.state[out1].realreg = REG_RESULT; + live.state[out1].realind = 0; + live.state[out1].val = 0; + live.state[out1].validsize = osize; + live.state[out1].dirtysize = osize; + set_status(out1, DIRTY); } MENDFUNC(5,call_r_11,(W4 out1, RR4 r, RR4 in1, IMM osize, IMM isize)) /* forget_about() takes a mid-layer register */ MIDFUNC(1,forget_about,(W4 r)) { - if (isinreg(r)) - disassociate(r); - live.state[r].val = 0; - set_status(r, UNDEF); + if (isinreg(r)) + disassociate(r); + live.state[r].val = 0; + set_status(r, UNDEF); } MENDFUNC(1,forget_about,(W4 r)) #ifdef USE_JIT_FPU MIDFUNC(1,f_forget_about,(FW r)) { - if (f_isinreg(r)) - f_disassociate(r); - live.fate[r].status=UNDEF; + if (f_isinreg(r)) + f_disassociate(r); + live.fate[r].status=UNDEF; } MENDFUNC(1,f_forget_about,(FW r)) #endif @@ -396,68 +415,75 @@ MENDFUNC(1,f_forget_about,(FW r)) MIDFUNC(2,arm_ADD_l,(RW4 d, RR4 s)) { - if (isconst(s)) { - COMPCALL(arm_ADD_l_ri)(d,live.state[s].val); - return; - } + if (isconst(s)) + { + COMPCALL(arm_ADD_l_ri)(d,live.state[s].val); + return; + } - s = readreg(s, 4); - d = rmw(d, 4, 4); - raw_ADD_l_rr(d, s); - unlock2(d); - unlock2(s); + s = readreg(s, 4); + d = rmw(d, 4, 4); + raw_ADD_l_rr(d, s); + unlock2(d); + unlock2(s); } MENDFUNC(2,arm_ADD_l,(RW4 d, RR4 s)) MIDFUNC(2,arm_ADD_l_ri,(RW4 d, IMM i)) { - if (!i) - return; - if (isconst(d)) { - live.state[d].val += i; - return; - } + if (!i) + return; + if (isconst(d)) + { + live.state[d].val += i; + return; + } - d = rmw(d, 4, 4); + d = rmw(d, 4, 4); - if(CHECK32(i)) { - raw_ADD_l_rri(d, d, i); - } else { - raw_LDR_l_ri(REG_WORK1, i); - raw_ADD_l_rr(d, REG_WORK1); - } - - unlock2(d); + if(CHECK32(i)) + { + raw_ADD_l_rri(d, d, i); + } + else + { + raw_LDR_l_ri(REG_WORK1, i); + raw_ADD_l_rr(d, REG_WORK1); + } + + unlock2(d); } MENDFUNC(2,arm_ADD_l_ri,(RW4 d, IMM i)) MIDFUNC(2,arm_ADD_l_ri8,(RW4 d, IMM i)) { - if (!i) - return; - if (isconst(d)) { - live.state[d].val += i; - return; - } + if (!i) + return; + if (isconst(d)) + { + live.state[d].val += i; + return; + } - d = rmw(d, 4, 4); - raw_ADD_l_rri(d, d, i); - unlock2(d); + d = rmw(d, 4, 4); + raw_ADD_l_rri(d, d, i); + unlock2(d); } MENDFUNC(2,arm_ADD_l_ri8,(RW4 d, IMM i)) MIDFUNC(2,arm_SUB_l_ri8,(RW4 d, IMM i)) { - if (!i) - return; - if (isconst(d)) { - live.state[d].val -= i; - return; - } + if (!i) + return; + if (isconst(d)) + { + live.state[d].val -= i; + return; + } - d = rmw(d, 4, 4); - raw_SUB_l_rri(d, d, i); - unlock2(d); + d = rmw(d, 4, 4); + raw_SUB_l_rri(d, d, i); + unlock2(d); } MENDFUNC(2,arm_SUB_l_ri8,(RW4 d, IMM i)) @@ -465,26 +491,28 @@ MENDFUNC(2,arm_SUB_l_ri8,(RW4 d, IMM i)) // Other STATIC_INLINE void flush_cpu_icache(void *start, void *stop) { - register void *_beg __asm ("a1") = start; - register void *_end __asm ("a2") = stop; - register void *_flg __asm ("a3") = 0; - #ifdef __ARM_EABI__ - register unsigned long _scno __asm ("r7") = 0xf0002; - __asm __volatile ("swi 0x0 @ sys_cacheflush" - : "=r" (_beg) - : "0" (_beg), "r" (_end), "r" (_flg), "r" (_scno)); - #else - __asm __volatile ("swi 0x9f0002 @ sys_cacheflush" - : "=r" (_beg) - : "0" (_beg), "r" (_end), "r" (_flg)); - #endif + register void *_beg __asm ("a1") = start; + register void *_end __asm ("a2") = stop; + register void *_flg __asm ("a3") = 0; +#ifdef __ARM_EABI__ + register unsigned long _scno __asm ("r7") = 0xf0002; + __asm __volatile ("swi 0x0 @ sys_cacheflush" + : "=r" (_beg) + : "0" (_beg), "r" (_end), "r" (_flg), "r" (_scno)); +#else + __asm __volatile ("swi 0x9f0002 @ sys_cacheflush" + : "=r" (_beg) + : "0" (_beg), "r" (_end), "r" (_flg)); +#endif } -STATIC_INLINE void write_jmp_target(uae_u32* jmpaddr, cpuop_func* a) { - *(jmpaddr) = (uae_u32)a; +STATIC_INLINE void write_jmp_target(uae_u32* jmpaddr, cpuop_func* a) +{ + *(jmpaddr) = (uae_u32)a; flush_cpu_icache((void *)jmpaddr, (void *)&jmpaddr[1]); } -STATIC_INLINE void emit_jmp_target(uae_u32 a) { - emit_long((uae_u32)a); +STATIC_INLINE void emit_jmp_target(uae_u32 a) +{ + emit_long((uae_u32)a); } diff --git a/src/jit/compemu_midfunc_arm2.cpp b/src/jit/compemu_midfunc_arm2.cpp index 89b7b202..20f65049 100644 --- a/src/jit/compemu_midfunc_arm2.cpp +++ b/src/jit/compemu_midfunc_arm2.cpp @@ -32,21 +32,21 @@ */ const uae_u32 ARM_CCR_MAP[] = { 0, ARM_C_FLAG, // 1 C - ARM_V_FLAG, // 2 V - ARM_C_FLAG | ARM_V_FLAG, // 3 VC - ARM_Z_FLAG, // 4 Z - ARM_Z_FLAG | ARM_C_FLAG, // 5 ZC - ARM_Z_FLAG | ARM_V_FLAG, // 6 ZV - ARM_Z_FLAG | ARM_C_FLAG | ARM_V_FLAG, // 7 ZVC - ARM_N_FLAG, // 8 N - ARM_N_FLAG | ARM_C_FLAG, // 9 NC - ARM_N_FLAG | ARM_V_FLAG, // 10 NV - ARM_N_FLAG | ARM_C_FLAG | ARM_V_FLAG, // 11 NVC - ARM_N_FLAG | ARM_Z_FLAG, // 12 NZ - ARM_N_FLAG | ARM_Z_FLAG | ARM_C_FLAG, // 13 NZC - ARM_N_FLAG | ARM_Z_FLAG | ARM_V_FLAG, // 14 NZV - ARM_N_FLAG | ARM_Z_FLAG | ARM_C_FLAG | ARM_V_FLAG, // 15 NZVC -}; + ARM_V_FLAG, // 2 V + ARM_C_FLAG | ARM_V_FLAG, // 3 VC + ARM_Z_FLAG, // 4 Z + ARM_Z_FLAG | ARM_C_FLAG, // 5 ZC + ARM_Z_FLAG | ARM_V_FLAG, // 6 ZV + ARM_Z_FLAG | ARM_C_FLAG | ARM_V_FLAG, // 7 ZVC + ARM_N_FLAG, // 8 N + ARM_N_FLAG | ARM_C_FLAG, // 9 NC + ARM_N_FLAG | ARM_V_FLAG, // 10 NV + ARM_N_FLAG | ARM_C_FLAG | ARM_V_FLAG, // 11 NVC + ARM_N_FLAG | ARM_Z_FLAG, // 12 NZ + ARM_N_FLAG | ARM_Z_FLAG | ARM_C_FLAG, // 13 NZC + ARM_N_FLAG | ARM_Z_FLAG | ARM_V_FLAG, // 14 NZV + ARM_N_FLAG | ARM_Z_FLAG | ARM_C_FLAG | ARM_V_FLAG, // 15 NZVC + }; #define DUPLICACTE_CARRY \ @@ -90,182 +90,194 @@ const uae_u32 ARM_CCR_MAP[] = { 0, ARM_C_FLAG, // 1 C */ MIDFUNC(3,jnf_ADD_imm,(W4 d, RR4 s, IMM v)) { - if (isconst(s)) { - set_const(d, live.state[s].val + v); - return; - } + if (isconst(s)) + { + set_const(d, live.state[s].val + v); + return; + } - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - if(CHECK32(v)) { - ADD_rri(d, s, v); - } else { - compemu_raw_mov_l_ri(REG_WORK1, v); - ADD_rrr(d, s, REG_WORK1); - } + if(CHECK32(v)) + { + ADD_rri(d, s, v); + } + else + { + compemu_raw_mov_l_ri(REG_WORK1, v); + ADD_rrr(d, s, REG_WORK1); + } - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_ADD_imm,(W4 d, RR4 s, IMM v)) MIDFUNC(3,jnf_ADD_im8,(W4 d, RR4 s, IMM v)) { - if (isconst(s)) { - set_const(d, live.state[s].val + v); - return; - } + if (isconst(s)) + { + set_const(d, live.state[s].val + v); + return; + } - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - ADD_rri(d, s, v & 0xff); + ADD_rri(d, s, v & 0xff); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_ADD_im8,(W4 d, RR4 s, IMM v)) MIDFUNC(3,jnf_ADD,(W4 d, RR4 s, RR4 v)) { - if (isconst(v)) { - COMPCALL(jnf_ADD_imm)(d, s, live.state[v].val); - return; - } + if (isconst(v)) + { + COMPCALL(jnf_ADD_imm)(d, s, live.state[v].val); + return; + } - v = readreg(v, 4); - s = readreg(s, 4); - d = writereg(d, 4); + v = readreg(v, 4); + s = readreg(s, 4); + d = writereg(d, 4); - ADD_rrr(d, s, v); + ADD_rrr(d, s, v); - unlock2(d); - unlock2(s); - unlock2(v); + unlock2(d); + unlock2(s); + unlock2(v); } MENDFUNC(3,jnf_ADD,(W4 d, RR4 s, RR4 v)) MIDFUNC(3,jff_ADD_b_imm,(W4 d, RR1 s, IMM v)) { - s = readreg(s, 4); - d = writereg(d, 4); - - MOV_ri8RORi(REG_WORK2, v & 0xff, 8); - ADDS_rrrLSLi(d, REG_WORK2, s, 24); - ASR_rri(d, d, 24); - - DUPLICACTE_CARRY + s = readreg(s, 4); + d = writereg(d, 4); - unlock2(d); - unlock2(s); + MOV_ri8RORi(REG_WORK2, v & 0xff, 8); + ADDS_rrrLSLi(d, REG_WORK2, s, 24); + ASR_rri(d, d, 24); + + DUPLICACTE_CARRY + + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_ADD_b_imm,(W4 d, RR1 s, IMM v)) MIDFUNC(3,jff_ADD_b,(W4 d, RR1 s, RR1 v)) { - if (isconst(v)) { - COMPCALL(jff_ADD_b_imm)(d, s, live.state[v].val); - return; - } + if (isconst(v)) + { + COMPCALL(jff_ADD_b_imm)(d, s, live.state[v].val); + return; + } - v = readreg(v, 4); - s = readreg(s, 4); - d = writereg(d, 4); + v = readreg(v, 4); + s = readreg(s, 4); + d = writereg(d, 4); - LSL_rri(REG_WORK2, v, 24); - ADDS_rrrLSLi(d, REG_WORK2, s, 24); - ASR_rri(d, d, 24); - - DUPLICACTE_CARRY + LSL_rri(REG_WORK2, v, 24); + ADDS_rrrLSLi(d, REG_WORK2, s, 24); + ASR_rri(d, d, 24); - unlock2(d); - unlock2(s); - unlock2(v); + DUPLICACTE_CARRY + + unlock2(d); + unlock2(s); + unlock2(v); } MENDFUNC(3,jff_ADD_b,(W4 d, RR1 s, RR1 v)) MIDFUNC(3,jff_ADD_w_imm,(W4 d, RR2 s, IMM v)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); #ifdef ARMV6T2 - MOVW_ri16(REG_WORK1, v); - LSL_rri(REG_WORK1, REG_WORK1, 16); + MOVW_ri16(REG_WORK1, v); + LSL_rri(REG_WORK1, REG_WORK1, 16); #else - uae_s32 offs = data_long_offs(v << 16); - LDR_rRI(REG_WORK1, RPC_INDEX, offs); + uae_s32 offs = data_long_offs(v << 16); + LDR_rRI(REG_WORK1, RPC_INDEX, offs); #endif - ADDS_rrrLSLi(d, REG_WORK1, s, 16); - ASR_rri(d, d, 16); - - DUPLICACTE_CARRY + ADDS_rrrLSLi(d, REG_WORK1, s, 16); + ASR_rri(d, d, 16); - unlock2(d); - unlock2(s); + DUPLICACTE_CARRY + + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_ADD_w_imm,(W4 d, RR2 s, IMM v)) MIDFUNC(3,jff_ADD_w,(W4 d, RR2 s, RR2 v)) { - if (isconst(v)) { - COMPCALL(jff_ADD_w_imm)(d,s,live.state[v].val); - return; - } - v = readreg(v, 4); - s = readreg(s,4); - d = writereg(d, 4); + if (isconst(v)) + { + COMPCALL(jff_ADD_w_imm)(d,s,live.state[v].val); + return; + } + v = readreg(v, 4); + s = readreg(s,4); + d = writereg(d, 4); - LSL_rri(REG_WORK1, s, 16); - ADDS_rrrLSLi(d, REG_WORK1, v, 16); - ASR_rri(d, d, 16); - - DUPLICACTE_CARRY + LSL_rri(REG_WORK1, s, 16); + ADDS_rrrLSLi(d, REG_WORK1, v, 16); + ASR_rri(d, d, 16); - unlock2(d); - unlock2(s); - unlock2(v); + DUPLICACTE_CARRY + + unlock2(d); + unlock2(s); + unlock2(v); } MENDFUNC(3,jff_ADD_w,(W4 d, RR2 s, RR2 v)) MIDFUNC(3,jff_ADD_l_imm,(W4 d, RR4 s, IMM v)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - if(CHECK32(v)) { - ADDS_rri(d, s, v); - } else { - compemu_raw_mov_l_ri(REG_WORK2, v); - ADDS_rrr(d, s, REG_WORK2); - } + if(CHECK32(v)) + { + ADDS_rri(d, s, v); + } + else + { + compemu_raw_mov_l_ri(REG_WORK2, v); + ADDS_rrr(d, s, REG_WORK2); + } - DUPLICACTE_CARRY + DUPLICACTE_CARRY - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_ADD_l_imm,(W4 d, RR4 s, IMM v)) MIDFUNC(3,jff_ADD_l,(W4 d, RR4 s, RR4 v)) { - if (isconst(v)) { - COMPCALL(jff_ADD_l_imm)(d, s, live.state[v].val); - return; - } + if (isconst(v)) + { + COMPCALL(jff_ADD_l_imm)(d, s, live.state[v].val); + return; + } - v = readreg(v, 4); - s = readreg(s, 4); - d = writereg(d, 4); + v = readreg(v, 4); + s = readreg(s, 4); + d = writereg(d, 4); - ADDS_rrr(d, s, v); + ADDS_rrr(d, s, v); - DUPLICACTE_CARRY + DUPLICACTE_CARRY - unlock2(d); - unlock2(s); - unlock2(v); + unlock2(d); + unlock2(s); + unlock2(v); } MENDFUNC(3,jff_ADD_l,(W4 d, RR4 s, RR4 v)) @@ -280,37 +292,37 @@ MENDFUNC(3,jff_ADD_l,(W4 d, RR4 s, RR4 v)) */ MIDFUNC(2,jnf_ADDA_b,(W4 d, RR1 s)) { - s = readreg(s, 4); - d = rmw(d, 4, 4); + s = readreg(s, 4); + d = rmw(d, 4, 4); - SXTAB_rrr(d, d, s); + SXTAB_rrr(d, d, s); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_ADDA_b,(W4 d, RR1 s)) MIDFUNC(2,jnf_ADDA_w,(W4 d, RR2 s)) { - s = readreg(s, 4); - d = rmw(d, 4, 4); + s = readreg(s, 4); + d = rmw(d, 4, 4); - SXTAH_rrr(d, d, s); + SXTAH_rrr(d, d, s); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_ADDA_w,(W4 d, RR2 s)) MIDFUNC(2,jnf_ADDA_l,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = rmw(d, 4, 4); + s = readreg(s, 4); + d = rmw(d, 4, 4); - ADD_rrr(d, d, s); + ADD_rrr(d, d, s); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_ADDA_l,(W4 d, RR4 s)) @@ -332,139 +344,139 @@ MENDFUNC(2,jnf_ADDA_l,(W4 d, RR4 s)) */ MIDFUNC(3,jnf_ADDX,(W4 d, RR4 s, RR4 v)) { - int x = readreg(FLAGX, 4); - s = readreg(s, 4); - v = readreg(v, 4); - d = writereg(d, 4); + int x = readreg(FLAGX, 4); + s = readreg(s, 4); + v = readreg(v, 4); + d = writereg(d, 4); - clobber_flags(); + clobber_flags(); - // Restore X to carry (don't care about other flags) - LSL_rri(REG_WORK1, x, 29); - MSR_CPSRf_r(REG_WORK1); - - ADC_rrr(d, s, v); + // Restore X to carry (don't care about other flags) + LSL_rri(REG_WORK1, x, 29); + MSR_CPSRf_r(REG_WORK1); - unlock2(d); - unlock2(s); - unlock2(v); - unlock2(x); + ADC_rrr(d, s, v); + + unlock2(d); + unlock2(s); + unlock2(v); + unlock2(x); } MENDFUNC(3,jnf_ADDX,(W4 d, RR4 s, RR4 v)) MIDFUNC(3,jff_ADDX_b,(W4 d, RR1 s, RR1 v)) { - s = readreg(s, 4); - v = readreg(v, 4); - d = writereg(d, 4); - int x = rmw(FLAGX, 4, 4); + s = readreg(s, 4); + v = readreg(v, 4); + d = writereg(d, 4); + int x = rmw(FLAGX, 4, 4); - MVN_ri(REG_WORK2, 0); - CC_MVN_ri(NATIVE_CC_NE, REG_WORK2, ARM_Z_FLAG); + MVN_ri(REG_WORK2, 0); + CC_MVN_ri(NATIVE_CC_NE, REG_WORK2, ARM_Z_FLAG); - // Restore X to carry (don't care about other flags) - LSL_rri(REG_WORK1, x, 29); - MSR_CPSRf_r(REG_WORK1); + // Restore X to carry (don't care about other flags) + LSL_rri(REG_WORK1, x, 29); + MSR_CPSRf_r(REG_WORK1); - MVN_ri(REG_WORK1, 0); + MVN_ri(REG_WORK1, 0); #ifdef ARMV6T2 - BFI_rrii(REG_WORK1, s, 24, 31); + BFI_rrii(REG_WORK1, s, 24, 31); #else - BIC_rri(REG_WORK1, REG_WORK1, 0xff000000); - ORR_rrrLSLi(REG_WORK1, REG_WORK1, s, 24); + BIC_rri(REG_WORK1, REG_WORK1, 0xff000000); + ORR_rrrLSLi(REG_WORK1, REG_WORK1, s, 24); #endif - ADCS_rrrLSLi(d, REG_WORK1, v, 24); - ASR_rri(d, d, 24); + ADCS_rrrLSLi(d, REG_WORK1, v, 24); + ASR_rri(d, d, 24); - MRS_CPSR(REG_WORK1); - AND_rrr(REG_WORK1, REG_WORK1, REG_WORK2); + MRS_CPSR(REG_WORK1); + AND_rrr(REG_WORK1, REG_WORK1, REG_WORK2); #ifdef ARMV6T2 - UBFX_rrii(x, REG_WORK1, 29, 1); // Duplicate carry + UBFX_rrii(x, REG_WORK1, 29, 1); // Duplicate carry #else - LSR_rri(x, REG_WORK1, 29); - AND_rri(x, x, 1); + LSR_rri(x, REG_WORK1, 29); + AND_rri(x, x, 1); #endif - MSR_CPSRf_r(REG_WORK1); + MSR_CPSRf_r(REG_WORK1); - unlock2(x); - unlock2(d); - unlock2(s); - unlock2(v); + unlock2(x); + unlock2(d); + unlock2(s); + unlock2(v); } MENDFUNC(3,jff_ADDX_b,(W4 d, RR1 s, RR1 v)) MIDFUNC(3,jff_ADDX_w,(W4 d, RR2 s, RR2 v)) { - s = readreg(s, 4); - v = readreg(v, 4); - d = writereg(d, 4); - int x = rmw(FLAGX, 4, 4); + s = readreg(s, 4); + v = readreg(v, 4); + d = writereg(d, 4); + int x = rmw(FLAGX, 4, 4); - MVN_ri(REG_WORK2, 0); - CC_MVN_ri(NATIVE_CC_NE, REG_WORK2, ARM_Z_FLAG); + MVN_ri(REG_WORK2, 0); + CC_MVN_ri(NATIVE_CC_NE, REG_WORK2, ARM_Z_FLAG); - // Restore X to carry (don't care about other flags) - LSL_rri(REG_WORK1, x, 29); - MSR_CPSRf_r(REG_WORK1); + // Restore X to carry (don't care about other flags) + LSL_rri(REG_WORK1, x, 29); + MSR_CPSRf_r(REG_WORK1); - MVN_ri(REG_WORK1, 0); + MVN_ri(REG_WORK1, 0); #ifdef ARMV6T2 - BFI_rrii(REG_WORK1, s, 16, 31); + BFI_rrii(REG_WORK1, s, 16, 31); #else - BIC_rri(REG_WORK1, REG_WORK1, 0xff000000); - BIC_rri(REG_WORK1, REG_WORK1, 0x00ff0000); - ORR_rrrLSLi(REG_WORK1, REG_WORK1, s, 16); + BIC_rri(REG_WORK1, REG_WORK1, 0xff000000); + BIC_rri(REG_WORK1, REG_WORK1, 0x00ff0000); + ORR_rrrLSLi(REG_WORK1, REG_WORK1, s, 16); #endif - ADCS_rrrLSLi(d, REG_WORK1, v, 16); - ASR_rri(d, d, 16); + ADCS_rrrLSLi(d, REG_WORK1, v, 16); + ASR_rri(d, d, 16); - MRS_CPSR(REG_WORK1); - AND_rrr(REG_WORK1, REG_WORK1, REG_WORK2); + MRS_CPSR(REG_WORK1); + AND_rrr(REG_WORK1, REG_WORK1, REG_WORK2); #ifdef ARMV6T2 - UBFX_rrii(x, REG_WORK1, 29, 1); // Duplicate carry + UBFX_rrii(x, REG_WORK1, 29, 1); // Duplicate carry #else - LSR_rri(x, REG_WORK1, 29); - AND_rri(x, x, 1); + LSR_rri(x, REG_WORK1, 29); + AND_rri(x, x, 1); #endif - MSR_CPSRf_r(REG_WORK1); + MSR_CPSRf_r(REG_WORK1); - unlock2(x); - unlock2(d); - unlock2(s); - unlock2(v); + unlock2(x); + unlock2(d); + unlock2(s); + unlock2(v); } MENDFUNC(3,jff_ADDX_w,(W4 d, RR2 s, RR2 v)) MIDFUNC(3,jff_ADDX_l,(W4 d, RR4 s, RR4 v)) { - s = readreg(s, 4); - v = readreg(v, 4); - d = writereg(d, 4); - int x = rmw(FLAGX, 4, 4); + s = readreg(s, 4); + v = readreg(v, 4); + d = writereg(d, 4); + int x = rmw(FLAGX, 4, 4); - MVN_ri(REG_WORK2, 0); - CC_MVN_ri(NATIVE_CC_NE, REG_WORK2, ARM_Z_FLAG); + MVN_ri(REG_WORK2, 0); + CC_MVN_ri(NATIVE_CC_NE, REG_WORK2, ARM_Z_FLAG); - // Restore X to carry (don't care about other flags) - LSL_rri(REG_WORK1, x, 29); - MSR_CPSRf_r(REG_WORK1); + // Restore X to carry (don't care about other flags) + LSL_rri(REG_WORK1, x, 29); + MSR_CPSRf_r(REG_WORK1); - ADCS_rrr(d, s, v); + ADCS_rrr(d, s, v); - MRS_CPSR(REG_WORK1); - AND_rrr(REG_WORK1, REG_WORK1, REG_WORK2); + MRS_CPSR(REG_WORK1); + AND_rrr(REG_WORK1, REG_WORK1, REG_WORK2); #ifdef ARMV6T2 - UBFX_rrii(x, REG_WORK1, 29, 1); // Duplicate carry + UBFX_rrii(x, REG_WORK1, 29, 1); // Duplicate carry #else - LSR_rri(x, REG_WORK1, 29); - AND_rri(x, x, 1); + LSR_rri(x, REG_WORK1, 29); + AND_rri(x, x, 1); #endif - MSR_CPSRf_r(REG_WORK1); + MSR_CPSRf_r(REG_WORK1); - unlock2(x); - unlock2(d); - unlock2(s); - unlock2(v); + unlock2(x); + unlock2(d); + unlock2(s); + unlock2(v); } MENDFUNC(3,jff_ADDX_l,(W4 d, RR4 s, RR4 v)) @@ -483,15 +495,16 @@ MENDFUNC(3,jff_ADDX_l,(W4 d, RR4 s, RR4 v)) */ MIDFUNC(1,jff_ANDSR,(IMM s, IMM x)) { - MRS_CPSR(REG_WORK1); - AND_rri(REG_WORK1, REG_WORK1, s); - MSR_CPSRf_r(REG_WORK1); + MRS_CPSR(REG_WORK1); + AND_rri(REG_WORK1, REG_WORK1, s); + MSR_CPSRf_r(REG_WORK1); - if (!x) { - int f = writereg(FLAGX, 4); - MOV_ri(f, 0); - unlock2(f); - } + if (!x) + { + int f = writereg(FLAGX, 4); + MOV_ri(f, 0); + unlock2(f); + } } MENDFUNC(1,jff_ANDSR,(IMM s)) @@ -511,69 +524,70 @@ MENDFUNC(1,jff_ANDSR,(IMM s)) */ MIDFUNC(3,jnf_AND,(W4 d, RR4 s, RR4 v)) { - if (isconst(s) && isconst(v)) { - set_const(d, live.state[s].val & live.state[v].val); - return; - } + if (isconst(s) && isconst(v)) + { + set_const(d, live.state[s].val & live.state[v].val); + return; + } - v = readreg(v, 4); - s = readreg(s, 4); - d = writereg(d, 4); + v = readreg(v, 4); + s = readreg(s, 4); + d = writereg(d, 4); - AND_rrr(d, s, v); + AND_rrr(d, s, v); - unlock2(v); - unlock2(d); - unlock2(s); + unlock2(v); + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_AND,(RW4 d, RR4 s, RR4 v)) MIDFUNC(3,jff_AND_b,(W4 d, RR1 s, RR1 v)) { - v = readreg(v, 4); - s = readreg(s, 4); - d = writereg(d, 4); + v = readreg(v, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED8_REG_2_REG(REG_WORK1, s); - SIGNED8_REG_2_REG(REG_WORK2, v); - MSR_CPSRf_i(0); - ANDS_rrr(d, REG_WORK1, REG_WORK2); + SIGNED8_REG_2_REG(REG_WORK1, s); + SIGNED8_REG_2_REG(REG_WORK2, v); + MSR_CPSRf_i(0); + ANDS_rrr(d, REG_WORK1, REG_WORK2); - unlock2(v); - unlock2(d); - unlock2(s); + unlock2(v); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_AND_b,(RW4 d, RR1 s, RR1 v)) MIDFUNC(3,jff_AND_w,(W4 d, RR2 s, RR2 v)) { - v = readreg(v, 4); - s = readreg(s, 4); - d = writereg(d, 4); + v = readreg(v, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED16_REG_2_REG(REG_WORK1, s); - SIGNED16_REG_2_REG(REG_WORK2, v); - MSR_CPSRf_i(0); - ANDS_rrr(d, REG_WORK1, REG_WORK2); + SIGNED16_REG_2_REG(REG_WORK1, s); + SIGNED16_REG_2_REG(REG_WORK2, v); + MSR_CPSRf_i(0); + ANDS_rrr(d, REG_WORK1, REG_WORK2); - unlock2(v); - unlock2(d); - unlock2(s); + unlock2(v); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_AND_w,(RW4 d, RR2 s, RR2 v)) MIDFUNC(3,jff_AND_l,(W4 d, RR4 s, RR4 v)) { - v = readreg(v, 4); - s = readreg(s, 4); - d = writereg(d, 4); + v = readreg(v, 4); + s = readreg(s, 4); + d = writereg(d, 4); - MSR_CPSRf_i(0); - ANDS_rrr(d, s, v); + MSR_CPSRf_i(0); + ANDS_rrr(d, s, v); - unlock2(v); - unlock2(d); - unlock2(s); + unlock2(v); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_AND_l,(RW4 d, RR4 s, RR4 v)) @@ -596,189 +610,198 @@ MENDFUNC(3,jff_AND_l,(RW4 d, RR4 s, RR4 v)) */ MIDFUNC(3,jff_ASL_b_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - LSL_rri(d, s, 24); - if (i) { - // Calculate V Flag - MOV_ri8RORi(REG_WORK2, 0x80, 8); - ASR_rri(REG_WORK2, REG_WORK2, i); - ANDS_rrr(REG_WORK1, d, REG_WORK2); - CC_TEQ_rr(NATIVE_CC_NE, REG_WORK1, REG_WORK2); - MOV_ri(REG_WORK1, 0); - CC_MOV_ri(NATIVE_CC_NE, REG_WORK1, ARM_V_FLAG); + LSL_rri(d, s, 24); + if (i) + { + // Calculate V Flag + MOV_ri8RORi(REG_WORK2, 0x80, 8); + ASR_rri(REG_WORK2, REG_WORK2, i); + ANDS_rrr(REG_WORK1, d, REG_WORK2); + CC_TEQ_rr(NATIVE_CC_NE, REG_WORK1, REG_WORK2); + MOV_ri(REG_WORK1, 0); + CC_MOV_ri(NATIVE_CC_NE, REG_WORK1, ARM_V_FLAG); - MSR_CPSRf_r(REG_WORK1); // store V flag + MSR_CPSRf_r(REG_WORK1); // store V flag - LSLS_rri(d, d, i); - DUPLICACTE_CARRY - } else { - MSR_CPSRf_i(0); - TST_rr(d, d); - } - ASR_rri(d, d, 24); + LSLS_rri(d, d, i); + DUPLICACTE_CARRY + } + else + { + MSR_CPSRf_i(0); + TST_rr(d, d); + } + ASR_rri(d, d, 24); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_ASL_b_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jff_ASL_w_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - LSL_rri(d, s, 16); - if (i) { - // Calculate V Flag - MOV_ri8RORi(REG_WORK2, 0x80, 8); - ASR_rri(REG_WORK2, REG_WORK2, i); - ANDS_rrr(REG_WORK1, d, REG_WORK2); - CC_TEQ_rr(NATIVE_CC_NE, REG_WORK1, REG_WORK2); - MOV_ri(REG_WORK1, 0); - CC_MOV_ri(NATIVE_CC_NE, REG_WORK1, ARM_V_FLAG); + LSL_rri(d, s, 16); + if (i) + { + // Calculate V Flag + MOV_ri8RORi(REG_WORK2, 0x80, 8); + ASR_rri(REG_WORK2, REG_WORK2, i); + ANDS_rrr(REG_WORK1, d, REG_WORK2); + CC_TEQ_rr(NATIVE_CC_NE, REG_WORK1, REG_WORK2); + MOV_ri(REG_WORK1, 0); + CC_MOV_ri(NATIVE_CC_NE, REG_WORK1, ARM_V_FLAG); - MSR_CPSRf_r(REG_WORK1); // store V flag + MSR_CPSRf_r(REG_WORK1); // store V flag - LSLS_rri(d, d, i); - DUPLICACTE_CARRY - } else { - MSR_CPSRf_i(0); - TST_rr(d, d); - } - ASR_rri(d, d, 16); + LSLS_rri(d, d, i); + DUPLICACTE_CARRY + } + else + { + MSR_CPSRf_i(0); + TST_rr(d, d); + } + ASR_rri(d, d, 16); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_ASL_w_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jff_ASL_l_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - if (i) { - // Calculate V Flag - MOV_ri8RORi(REG_WORK2, 0x80, 8); - ASR_rri(REG_WORK2, REG_WORK2, i); - ANDS_rrr(REG_WORK1, s, REG_WORK2); - CC_TEQ_rr(NATIVE_CC_NE, REG_WORK1, REG_WORK2); - MOV_ri(REG_WORK1, 0); - CC_MOV_ri(NATIVE_CC_NE, REG_WORK1, ARM_V_FLAG); + if (i) + { + // Calculate V Flag + MOV_ri8RORi(REG_WORK2, 0x80, 8); + ASR_rri(REG_WORK2, REG_WORK2, i); + ANDS_rrr(REG_WORK1, s, REG_WORK2); + CC_TEQ_rr(NATIVE_CC_NE, REG_WORK1, REG_WORK2); + MOV_ri(REG_WORK1, 0); + CC_MOV_ri(NATIVE_CC_NE, REG_WORK1, ARM_V_FLAG); - MSR_CPSRf_r(REG_WORK1); // store V flag + MSR_CPSRf_r(REG_WORK1); // store V flag - LSLS_rri(d, s, i); - DUPLICACTE_CARRY - } else { - MSR_CPSRf_i(0); - MOVS_rr(d, s); - } + LSLS_rri(d, s, i); + DUPLICACTE_CARRY + } + else + { + MSR_CPSRf_i(0); + MOVS_rr(d, s); + } - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_ASL_l_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jff_ASL_b_reg,(W4 d, RR4 s, RR4 i)) { - i = readreg(i, 4); - s = readreg(s, 4); - d = writereg(d, 4); - int x = writereg(FLAGX, 4); - - LSL_rri(d, s, 24); - // Calculate V Flag - MOV_ri8RORi(REG_WORK2, 0x80, 8); - ASR_rrr(REG_WORK2, REG_WORK2, i); - ANDS_rrr(REG_WORK1, d, REG_WORK2); - CC_TEQ_rr(NATIVE_CC_NE, REG_WORK1, REG_WORK2); - MOV_ri(REG_WORK1, 0); - CC_MOV_ri(NATIVE_CC_NE, REG_WORK1, ARM_V_FLAG); + i = readreg(i, 4); + s = readreg(s, 4); + d = writereg(d, 4); + int x = writereg(FLAGX, 4); - MSR_CPSRf_r(REG_WORK1); // store V flag + LSL_rri(d, s, 24); + // Calculate V Flag + MOV_ri8RORi(REG_WORK2, 0x80, 8); + ASR_rrr(REG_WORK2, REG_WORK2, i); + ANDS_rrr(REG_WORK1, d, REG_WORK2); + CC_TEQ_rr(NATIVE_CC_NE, REG_WORK1, REG_WORK2); + MOV_ri(REG_WORK1, 0); + CC_MOV_ri(NATIVE_CC_NE, REG_WORK1, ARM_V_FLAG); - ANDS_rri(REG_WORK2, i, 63); - BEQ_i(3); // No shift -> X flag unchanged - LSLS_rrr(d, d, REG_WORK2); - MOV_ri(x, 1); - CC_MOV_ri(NATIVE_CC_CC, x, 0); - B_i(0); - TST_rr(d, d); - ASR_rri(d, d, 24); - - unlock2(x); - unlock2(d); - unlock2(s); - unlock2(i); + MSR_CPSRf_r(REG_WORK1); // store V flag + + ANDS_rri(REG_WORK2, i, 63); + BEQ_i(3); // No shift -> X flag unchanged + LSLS_rrr(d, d, REG_WORK2); + MOV_ri(x, 1); + CC_MOV_ri(NATIVE_CC_CC, x, 0); + B_i(0); + TST_rr(d, d); + ASR_rri(d, d, 24); + + unlock2(x); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jff_ASL_b_reg,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jff_ASL_w_reg,(W4 d, RR4 s, RR4 i)) { - i = readreg(i, 4); - s = readreg(s, 4); - d = writereg(d, 4); - int x = writereg(FLAGX, 4); + i = readreg(i, 4); + s = readreg(s, 4); + d = writereg(d, 4); + int x = writereg(FLAGX, 4); - LSL_rri(d, s, 16); - // Calculate V Flag - MOV_ri8RORi(REG_WORK2, 0x80, 8); - ASR_rrr(REG_WORK2, REG_WORK2, i); - ANDS_rrr(REG_WORK1, d, REG_WORK2); - CC_TEQ_rr(NATIVE_CC_NE, REG_WORK1, REG_WORK2); - MOV_ri(REG_WORK1, 0); - CC_MOV_ri(NATIVE_CC_NE, REG_WORK1, ARM_V_FLAG); + LSL_rri(d, s, 16); + // Calculate V Flag + MOV_ri8RORi(REG_WORK2, 0x80, 8); + ASR_rrr(REG_WORK2, REG_WORK2, i); + ANDS_rrr(REG_WORK1, d, REG_WORK2); + CC_TEQ_rr(NATIVE_CC_NE, REG_WORK1, REG_WORK2); + MOV_ri(REG_WORK1, 0); + CC_MOV_ri(NATIVE_CC_NE, REG_WORK1, ARM_V_FLAG); - MSR_CPSRf_r(REG_WORK1); // store V flag + MSR_CPSRf_r(REG_WORK1); // store V flag - ANDS_rri(REG_WORK2, i, 63); - BEQ_i(3); // No shift -> X flag unchanged - LSLS_rrr(d, d, REG_WORK2); - MOV_ri(x, 1); - CC_MOV_ri(NATIVE_CC_CC, x, 0); - B_i(0); - TST_rr(d, d); - ASR_rri(d, d, 16); + ANDS_rri(REG_WORK2, i, 63); + BEQ_i(3); // No shift -> X flag unchanged + LSLS_rrr(d, d, REG_WORK2); + MOV_ri(x, 1); + CC_MOV_ri(NATIVE_CC_CC, x, 0); + B_i(0); + TST_rr(d, d); + ASR_rri(d, d, 16); - unlock2(x); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(x); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jff_ASL_w_reg,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jff_ASL_l_reg,(W4 d, RR4 s, RR4 i)) { - i = readreg(i, 4); - s = readreg(s, 4); - d = writereg(d, 4); - int x = writereg(FLAGX, 4); + i = readreg(i, 4); + s = readreg(s, 4); + d = writereg(d, 4); + int x = writereg(FLAGX, 4); - // Calculate V Flag - MOV_ri8RORi(REG_WORK2, 0x80, 8); - ASR_rrr(REG_WORK2, REG_WORK2, i); - ANDS_rrr(REG_WORK1, s, REG_WORK2); - CC_TEQ_rr(NATIVE_CC_NE, REG_WORK1, REG_WORK2); - MOV_ri(REG_WORK1, 0); - CC_MOV_ri(NATIVE_CC_NE, REG_WORK1, ARM_V_FLAG); + // Calculate V Flag + MOV_ri8RORi(REG_WORK2, 0x80, 8); + ASR_rrr(REG_WORK2, REG_WORK2, i); + ANDS_rrr(REG_WORK1, s, REG_WORK2); + CC_TEQ_rr(NATIVE_CC_NE, REG_WORK1, REG_WORK2); + MOV_ri(REG_WORK1, 0); + CC_MOV_ri(NATIVE_CC_NE, REG_WORK1, ARM_V_FLAG); - MSR_CPSRf_r(REG_WORK1); // store V flag + MSR_CPSRf_r(REG_WORK1); // store V flag - ANDS_rri(REG_WORK2, i, 63); - BEQ_i(3); // No shift -> X flag unchanged - LSLS_rrr(d, s, REG_WORK2); - MOV_ri(x, 1); - CC_MOV_ri(NATIVE_CC_CC, x, 0); - B_i(0); - MOVS_rr(d, s); + ANDS_rri(REG_WORK2, i, 63); + BEQ_i(3); // No shift -> X flag unchanged + LSLS_rrr(d, s, REG_WORK2); + MOV_ri(x, 1); + CC_MOV_ri(NATIVE_CC_CC, x, 0); + B_i(0); + MOVS_rr(d, s); - unlock2(x); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(x); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jff_ASL_l_reg,(W4 d, RR4 s, RR4 i)) @@ -797,35 +820,35 @@ MENDFUNC(3,jff_ASL_l_reg,(W4 d, RR4 s, RR4 i)) */ MIDFUNC(2,jnf_ASLW,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - LSL_rri(d, s, 1); + LSL_rri(d, s, 1); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_ASLW,(W4 d, RR4 s)) MIDFUNC(2,jff_ASLW,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - MSR_CPSRf_i(0); - LSLS_rri(d, s, 17); + MSR_CPSRf_i(0); + LSLS_rri(d, s, 17); - MRS_CPSR(REG_WORK1); - DUPLICACTE_CARRY_FROM_REG(REG_WORK1) + MRS_CPSR(REG_WORK1); + DUPLICACTE_CARRY_FROM_REG(REG_WORK1) - // Calculate V flag - CC_ORR_rri(NATIVE_CC_MI, REG_WORK1, REG_WORK1, ARM_V_FLAG); - CC_EOR_rri(NATIVE_CC_CS, REG_WORK1, REG_WORK1, ARM_V_FLAG); - MSR_CPSRf_r(REG_WORK1); - ASR_rri(d, d, 16); + // Calculate V flag + CC_ORR_rri(NATIVE_CC_MI, REG_WORK1, REG_WORK1, ARM_V_FLAG); + CC_EOR_rri(NATIVE_CC_CS, REG_WORK1, REG_WORK1, ARM_V_FLAG); + MSR_CPSRf_r(REG_WORK1); + ASR_rri(d, d, 16); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_ASLW,(W4 d, RR4 s)) @@ -848,218 +871,227 @@ MENDFUNC(2,jff_ASLW,(W4 d, RR4 s)) */ MIDFUNC(3,jnf_ASR_b_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED8_REG_2_REG(d, s); - if(i) - ASR_rri(d, d, i); + SIGNED8_REG_2_REG(d, s); + if(i) + ASR_rri(d, d, i); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_ASR_b_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jnf_ASR_w_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED16_REG_2_REG(d, s); - if(i) - ASR_rri(d, d, i); + SIGNED16_REG_2_REG(d, s); + if(i) + ASR_rri(d, d, i); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_ASR_w_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jnf_ASR_l_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - if(i) - ASR_rri(d, s, i); - else - MOV_rr(d, s); + if(i) + ASR_rri(d, s, i); + else + MOV_rr(d, s); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_ASR_l_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jff_ASR_b_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED8_REG_2_REG(d, s); - MSR_CPSRf_i(0); - if (i) { - ASRS_rri(d, d, i); - DUPLICACTE_CARRY - } else { - TST_rr(d, d); - } + SIGNED8_REG_2_REG(d, s); + MSR_CPSRf_i(0); + if (i) + { + ASRS_rri(d, d, i); + DUPLICACTE_CARRY + } + else + { + TST_rr(d, d); + } - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_ASR_b_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jff_ASR_w_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED16_REG_2_REG(d, s); - MSR_CPSRf_i(0); - if (i) { - ASRS_rri(d, d, i); - DUPLICACTE_CARRY - } else { - TST_rr(d, d); - } + SIGNED16_REG_2_REG(d, s); + MSR_CPSRf_i(0); + if (i) + { + ASRS_rri(d, d, i); + DUPLICACTE_CARRY + } + else + { + TST_rr(d, d); + } - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_ASR_w_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jff_ASR_l_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - MSR_CPSRf_i(0); - if (i) { - ASRS_rri(d, s, i); - DUPLICACTE_CARRY - } else { - MOVS_rr(d, s); - } + MSR_CPSRf_i(0); + if (i) + { + ASRS_rri(d, s, i); + DUPLICACTE_CARRY + } + else + { + MOVS_rr(d, s); + } - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_ASR_l_imm,(W4 d, RR4 s, IMM i)) -MIDFUNC(3,jnf_ASR_b_reg,(W4 d, RR4 s, RR4 i)) +MIDFUNC(3,jnf_ASR_b_reg,(W4 d, RR4 s, RR4 i)) { - i = readreg(i, 4); - s = readreg(s, 4); - d = writereg(d, 4); + i = readreg(i, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED8_REG_2_REG(d, s); - AND_rri(REG_WORK1, i, 63); - ASR_rrr(d, d, REG_WORK1); + SIGNED8_REG_2_REG(d, s); + AND_rri(REG_WORK1, i, 63); + ASR_rrr(d, d, REG_WORK1); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jnf_ASR_b_reg,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jnf_ASR_w_reg,(W4 d, RR4 s, RR4 i)) { - i = readreg(i, 4); - s = readreg(s, 4); - d = writereg(d, 4); + i = readreg(i, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED16_REG_2_REG(d, s); - AND_rri(REG_WORK1, i, 63); - ASR_rrr(d, d, REG_WORK1); + SIGNED16_REG_2_REG(d, s); + AND_rri(REG_WORK1, i, 63); + ASR_rrr(d, d, REG_WORK1); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jnf_ASR_w_reg,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jnf_ASR_l_reg,(W4 d, RR4 s, RR4 i)) { - i = readreg(i, 4); - s = readreg(s, 4); - d = writereg(d, 4); + i = readreg(i, 4); + s = readreg(s, 4); + d = writereg(d, 4); - AND_rri(REG_WORK1, i, 63); - ASR_rrr(d, s, REG_WORK1); + AND_rri(REG_WORK1, i, 63); + ASR_rrr(d, s, REG_WORK1); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jnf_ASR_l_reg,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jff_ASR_b_reg,(W4 d, RR4 s, RR4 i)) { - i = readreg(i, 4); - s = readreg(s, 4); - d = writereg(d, 4); - int x = writereg(FLAGX, 4); + i = readreg(i, 4); + s = readreg(s, 4); + d = writereg(d, 4); + int x = writereg(FLAGX, 4); - SIGNED8_REG_2_REG(d, s); - MSR_CPSRf_i(0); - ANDS_rri(REG_WORK1, i, 63); - BEQ_i(3); // No shift -> X flag unchanged - ASRS_rrr(d, d, REG_WORK1); - MOV_ri(x, 1); - CC_MOV_ri(NATIVE_CC_CC, x, 0); - B_i(0); - TST_rr(d, d); + SIGNED8_REG_2_REG(d, s); + MSR_CPSRf_i(0); + ANDS_rri(REG_WORK1, i, 63); + BEQ_i(3); // No shift -> X flag unchanged + ASRS_rrr(d, d, REG_WORK1); + MOV_ri(x, 1); + CC_MOV_ri(NATIVE_CC_CC, x, 0); + B_i(0); + TST_rr(d, d); - unlock2(x); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(x); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jff_ASR_b_reg,(W4 d, RR4 s, RR4 i)) -MIDFUNC(3,jff_ASR_w_reg,(W4 d, RR4 s, RR4 i)) +MIDFUNC(3,jff_ASR_w_reg,(W4 d, RR4 s, RR4 i)) { - i = readreg(i, 4); - s = readreg(s, 4); - d = writereg(d, 4); - int x = writereg(FLAGX, 4); + i = readreg(i, 4); + s = readreg(s, 4); + d = writereg(d, 4); + int x = writereg(FLAGX, 4); - SIGNED16_REG_2_REG(d, s); - MSR_CPSRf_i(0); - ANDS_rri(REG_WORK1, i, 63); - BEQ_i(3); // No shift -> X flag unchanged - ASRS_rrr(d, d, REG_WORK1); - MOV_ri(x, 1); - CC_MOV_ri(NATIVE_CC_CC, x, 0); - B_i(0); - TST_rr(d, d); + SIGNED16_REG_2_REG(d, s); + MSR_CPSRf_i(0); + ANDS_rri(REG_WORK1, i, 63); + BEQ_i(3); // No shift -> X flag unchanged + ASRS_rrr(d, d, REG_WORK1); + MOV_ri(x, 1); + CC_MOV_ri(NATIVE_CC_CC, x, 0); + B_i(0); + TST_rr(d, d); - unlock2(x); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(x); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jff_ASR_w_reg,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jff_ASR_l_reg,(W4 d, RR4 s, RR4 i)) { - i = readreg(i, 4); - s = readreg(s, 4); - d = writereg(d, 4); - int x = writereg(FLAGX, 4); + i = readreg(i, 4); + s = readreg(s, 4); + d = writereg(d, 4); + int x = writereg(FLAGX, 4); - MSR_CPSRf_i(0); - ANDS_rri(REG_WORK1, i, 63); - BEQ_i(3); // No shift -> X flag unchanged - ASRS_rrr(d, s, REG_WORK1); - MOV_ri(x, 1); - CC_MOV_ri(NATIVE_CC_CC, x, 0); - B_i(0); - MOVS_rr(d, s); + MSR_CPSRf_i(0); + ANDS_rri(REG_WORK1, i, 63); + BEQ_i(3); // No shift -> X flag unchanged + ASRS_rrr(d, s, REG_WORK1); + MOV_ri(x, 1); + CC_MOV_ri(NATIVE_CC_CC, x, 0); + B_i(0); + MOVS_rr(d, s); - unlock2(x); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(x); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jff_ASR_l_reg,(W4 d, RR4 s, RR4 i)) @@ -1078,29 +1110,29 @@ MENDFUNC(3,jff_ASR_l_reg,(W4 d, RR4 s, RR4 i)) */ MIDFUNC(2,jnf_ASRW,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED16_REG_2_REG(d, s); - ASR_rri(d, d, 1); + SIGNED16_REG_2_REG(d, s); + ASR_rri(d, d, 1); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_ASRW,(W4 d, RR4 s)) MIDFUNC(2,jff_ASRW,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED16_REG_2_REG(d, s); - MSR_CPSRf_i(0); - ASRS_rri(d, d, 1); - DUPLICACTE_CARRY + SIGNED16_REG_2_REG(d, s); + MSR_CPSRf_i(0); + ASRS_rri(d, d, 1); + DUPLICACTE_CARRY - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_ASRW,(W4 d, RR4 s)) @@ -1120,151 +1152,155 @@ MENDFUNC(2,jff_ASRW,(W4 d, RR4 s)) */ MIDFUNC(2,jnf_BCHG_b_imm,(RW4 d, IMM s)) { - d = rmw(d, 4, 4); - EOR_rri(d, d, (1 << s)); - unlock2(d); + d = rmw(d, 4, 4); + EOR_rri(d, d, (1 << s)); + unlock2(d); } MENDFUNC(2,jnf_BCHG_b_imm,(RW4 d, IMM s)) MIDFUNC(2,jnf_BCHG_l_imm,(RW4 d, IMM s)) { - d = rmw(d, 4, 4); - EOR_rri(d, d, (1 << s)); - unlock2(d); + d = rmw(d, 4, 4); + EOR_rri(d, d, (1 << s)); + unlock2(d); } MENDFUNC(2,jnf_BCHG_l_imm,(RW4 d, IMM s)) MIDFUNC(2,jnf_BCHG_b,(RW4 d, RR4 s)) { - if (isconst(s)) { - COMPCALL(jnf_BCHG_b_imm)(d, live.state[s].val & 7); - return; - } - s = readreg(s, 4); - d = rmw(d, 4, 4); + if (isconst(s)) + { + COMPCALL(jnf_BCHG_b_imm)(d, live.state[s].val & 7); + return; + } + s = readreg(s, 4); + d = rmw(d, 4, 4); - AND_rri(REG_WORK1, s, 7); - MOV_ri(REG_WORK2, 1); + AND_rri(REG_WORK1, s, 7); + MOV_ri(REG_WORK2, 1); - EOR_rrrLSLr(d, d, REG_WORK2, REG_WORK1); + EOR_rrrLSLr(d, d, REG_WORK2, REG_WORK1); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_BCHG_b,(RW4 d, RR4 s)) MIDFUNC(2,jnf_BCHG_l,(RW4 d, RR4 s)) { - if (isconst(s)) { - COMPCALL(jnf_BCHG_l_imm)(d, live.state[s].val & 31); - return; - } + if (isconst(s)) + { + COMPCALL(jnf_BCHG_l_imm)(d, live.state[s].val & 31); + return; + } - s = readreg(s, 4); - d = rmw(d, 4, 4); + s = readreg(s, 4); + d = rmw(d, 4, 4); - AND_rri(REG_WORK1, s, 31); - MOV_ri(REG_WORK2, 1); + AND_rri(REG_WORK1, s, 31); + MOV_ri(REG_WORK2, 1); - EOR_rrrLSLr(d, d, REG_WORK2, REG_WORK1); + EOR_rrrLSLr(d, d, REG_WORK2, REG_WORK1); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_BCHG_l,(RW4 d, RR4 s)) MIDFUNC(2,jff_BCHG_b_imm,(RW4 d, IMM s)) { - d = rmw(d, 4, 4); + d = rmw(d, 4, 4); - uae_u32 v = (1 << s); - MRS_CPSR(REG_WORK1); - EOR_rri(d, d, v); + uae_u32 v = (1 << s); + MRS_CPSR(REG_WORK1); + EOR_rri(d, d, v); #ifdef ARMV6T2 - UBFX_rrii(REG_WORK2, d, s, 1); - BFI_rrii(REG_WORK1, REG_WORK2, 30, 30); + UBFX_rrii(REG_WORK2, d, s, 1); + BFI_rrii(REG_WORK1, REG_WORK2, 30, 30); #else - LSR_rri(REG_WORK2, d, 29); - AND_rri(REG_WORK2, REG_WORK2, 1); - BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); - ORR_rrrLSLi(REG_WORK1, REG_WORK1, REG_WORK2, 30); + LSR_rri(REG_WORK2, d, 29); + AND_rri(REG_WORK2, REG_WORK2, 1); + BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); + ORR_rrrLSLi(REG_WORK1, REG_WORK1, REG_WORK2, 30); #endif - MSR_CPSRf_r(REG_WORK1); - - unlock2(d); + MSR_CPSRf_r(REG_WORK1); + + unlock2(d); } MENDFUNC(2,jff_BCHG_b_imm,(RW4 d, IMM s)) MIDFUNC(2,jff_BCHG_l_imm,(RW4 d, IMM s)) { - d = rmw(d, 4, 4); + d = rmw(d, 4, 4); - uae_u32 v = (1 << s); - MRS_CPSR(REG_WORK1); - EOR_rri(d, d, v); + uae_u32 v = (1 << s); + MRS_CPSR(REG_WORK1); + EOR_rri(d, d, v); #ifdef ARMV6T2 - UBFX_rrii(REG_WORK2, d, s, 1); - BFI_rrii(REG_WORK1, REG_WORK2, 30, 30); + UBFX_rrii(REG_WORK2, d, s, 1); + BFI_rrii(REG_WORK1, REG_WORK2, 30, 30); #else - LSR_rri(REG_WORK2, d, 29); - AND_rri(REG_WORK2, REG_WORK2, 1); - BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); - ORR_rrrLSLi(REG_WORK1, REG_WORK1, REG_WORK2, 30); + LSR_rri(REG_WORK2, d, 29); + AND_rri(REG_WORK2, REG_WORK2, 1); + BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); + ORR_rrrLSLi(REG_WORK1, REG_WORK1, REG_WORK2, 30); #endif - MSR_CPSRf_r(REG_WORK1); + MSR_CPSRf_r(REG_WORK1); - unlock2(d); + unlock2(d); } MENDFUNC(2,jff_BCHG_l_imm,(RW4 d, IMM s)) MIDFUNC(2,jff_BCHG_b,(RW4 d, RR4 s)) { - if (isconst(s)) { - COMPCALL(jff_BCHG_b_imm)(d, live.state[s].val & 7); - return; - } - s = readreg(s, 4); - d = rmw(d, 4, 4); + if (isconst(s)) + { + COMPCALL(jff_BCHG_b_imm)(d, live.state[s].val & 7); + return; + } + s = readreg(s, 4); + d = rmw(d, 4, 4); - AND_rri(REG_WORK1, s, 7); - MOV_ri(REG_WORK2, 1); - LSL_rrr(REG_WORK2, REG_WORK2, REG_WORK1); + AND_rri(REG_WORK1, s, 7); + MOV_ri(REG_WORK2, 1); + LSL_rrr(REG_WORK2, REG_WORK2, REG_WORK1); - MRS_CPSR(REG_WORK1); - TST_rr(d, REG_WORK2); - BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); - CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); - MSR_CPSRf_r(REG_WORK1); - EOR_rrr(d, d, REG_WORK2); - - unlock2(d); - unlock2(s); + MRS_CPSR(REG_WORK1); + TST_rr(d, REG_WORK2); + BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); + CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); + MSR_CPSRf_r(REG_WORK1); + EOR_rrr(d, d, REG_WORK2); + + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_BCHG_b,(RW4 d, RR4 s)) MIDFUNC(2,jff_BCHG_l,(RW4 d, RR4 s)) { - if (isconst(s)) { - COMPCALL(jff_BCHG_l_imm)(d, live.state[s].val & 31); - return; - } + if (isconst(s)) + { + COMPCALL(jff_BCHG_l_imm)(d, live.state[s].val & 31); + return; + } - s = readreg(s, 4); - d = rmw(d, 4, 4); + s = readreg(s, 4); + d = rmw(d, 4, 4); - AND_rri(REG_WORK1, s, 31); - MOV_ri(REG_WORK2, 1); - LSL_rrr(REG_WORK2, REG_WORK2, REG_WORK1); + AND_rri(REG_WORK1, s, 31); + MOV_ri(REG_WORK2, 1); + LSL_rrr(REG_WORK2, REG_WORK2, REG_WORK1); - MRS_CPSR(REG_WORK1); - TST_rr(d, REG_WORK2); - BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); - CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); - MSR_CPSRf_r(REG_WORK1); - EOR_rrr(d, d, REG_WORK2); + MRS_CPSR(REG_WORK1); + TST_rr(d, REG_WORK2); + BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); + CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); + MSR_CPSRf_r(REG_WORK1); + EOR_rrr(d, d, REG_WORK2); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_BCHG_l,(RW4 d, RR4 s)) @@ -1284,139 +1320,143 @@ MENDFUNC(2,jff_BCHG_l,(RW4 d, RR4 s)) */ MIDFUNC(2,jnf_BCLR_b_imm,(RW4 d, IMM s)) { - d = rmw(d, 4, 4); - BIC_rri(d, d, (1 << s)); - unlock2(d); + d = rmw(d, 4, 4); + BIC_rri(d, d, (1 << s)); + unlock2(d); } MENDFUNC(2,jnf_BCLR_b_imm,(RW4 d, IMM s)) MIDFUNC(2,jnf_BCLR_l_imm,(RW4 d, IMM s)) { - d = rmw(d, 4, 4); - BIC_rri(d, d, (1 << s)); - unlock2(d); + d = rmw(d, 4, 4); + BIC_rri(d, d, (1 << s)); + unlock2(d); } MENDFUNC(2,jnf_BCLR_l_imm,(RW4 d, IMM s)) MIDFUNC(2,jnf_BCLR_b,(RW4 d, RR4 s)) { - if (isconst(s)) { - COMPCALL(jnf_BCLR_b_imm)(d, live.state[s].val & 7); - return; - } - s = readreg(s, 4); - d = rmw(d, 4, 4); + if (isconst(s)) + { + COMPCALL(jnf_BCLR_b_imm)(d, live.state[s].val & 7); + return; + } + s = readreg(s, 4); + d = rmw(d, 4, 4); - AND_rri(REG_WORK1, s, 7); - MOV_ri(REG_WORK2, 1); + AND_rri(REG_WORK1, s, 7); + MOV_ri(REG_WORK2, 1); - BIC_rrrLSLr(d, d, REG_WORK2, REG_WORK1); + BIC_rrrLSLr(d, d, REG_WORK2, REG_WORK1); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_BCLR_b,(RW4 d, RR4 s)) MIDFUNC(2,jnf_BCLR_l,(RW4 d, RR4 s)) { - if (isconst(s)) { - COMPCALL(jnf_BCLR_l_imm)(d, live.state[s].val & 31); - return; - } + if (isconst(s)) + { + COMPCALL(jnf_BCLR_l_imm)(d, live.state[s].val & 31); + return; + } - s = readreg(s, 4); - d = rmw(d, 4, 4); + s = readreg(s, 4); + d = rmw(d, 4, 4); - AND_rri(REG_WORK1, s, 31); - MOV_ri(REG_WORK2, 1); + AND_rri(REG_WORK1, s, 31); + MOV_ri(REG_WORK2, 1); - BIC_rrrLSLr(d, d, REG_WORK2, REG_WORK1); + BIC_rrrLSLr(d, d, REG_WORK2, REG_WORK1); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_BCLR_l,(RW4 d, RR4 s)) MIDFUNC(2,jff_BCLR_b_imm,(RW4 d, IMM s)) { - d = rmw(d, 4, 4); + d = rmw(d, 4, 4); - uae_u32 v = (1 << s); - MRS_CPSR(REG_WORK1); - TST_ri(d, v); - BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); - CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); - MSR_CPSRf_r(REG_WORK1); - BIC_rri(d, d, v); + uae_u32 v = (1 << s); + MRS_CPSR(REG_WORK1); + TST_ri(d, v); + BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); + CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); + MSR_CPSRf_r(REG_WORK1); + BIC_rri(d, d, v); - unlock2(d); + unlock2(d); } MENDFUNC(2,jff_BCLR_b_imm,(RW4 d, IMM s)) MIDFUNC(2,jff_BCLR_l_imm,(RW4 d, IMM s)) { - d = rmw(d, 4, 4); + d = rmw(d, 4, 4); - uae_u32 v = (1 << s); - MRS_CPSR(REG_WORK1); - TST_ri(d, v); - BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); - CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); - MSR_CPSRf_r(REG_WORK1); - BIC_rri(d, d, v); + uae_u32 v = (1 << s); + MRS_CPSR(REG_WORK1); + TST_ri(d, v); + BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); + CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); + MSR_CPSRf_r(REG_WORK1); + BIC_rri(d, d, v); - unlock2(d); + unlock2(d); } MENDFUNC(2,jff_BCLR_l_imm,(RW4 d, IMM s)) MIDFUNC(2,jff_BCLR_b,(RW4 d, RR4 s)) { - if (isconst(s)) { - COMPCALL(jff_BCLR_b_imm)(d, live.state[s].val & 7); - return; - } - s = readreg(s, 4); - d = rmw(d, 4, 4); + if (isconst(s)) + { + COMPCALL(jff_BCLR_b_imm)(d, live.state[s].val & 7); + return; + } + s = readreg(s, 4); + d = rmw(d, 4, 4); - AND_rri(REG_WORK1, s, 7); - MOV_ri(REG_WORK2, 1); - LSL_rrr(REG_WORK2, REG_WORK2, REG_WORK1); + AND_rri(REG_WORK1, s, 7); + MOV_ri(REG_WORK2, 1); + LSL_rrr(REG_WORK2, REG_WORK2, REG_WORK1); - MRS_CPSR(REG_WORK1); - TST_rr(d,REG_WORK2); - BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); - CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); - MSR_CPSRf_r(REG_WORK1); - BIC_rrr(d, d, REG_WORK2); + MRS_CPSR(REG_WORK1); + TST_rr(d,REG_WORK2); + BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); + CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); + MSR_CPSRf_r(REG_WORK1); + BIC_rrr(d, d, REG_WORK2); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_BCLR_b,(RW4 d, RR4 s)) MIDFUNC(2,jff_BCLR_l,(RW4 d, RR4 s)) { - if (isconst(s)) { - COMPCALL(jff_BCLR_l_imm)(d, live.state[s].val & 31); - return; - } + if (isconst(s)) + { + COMPCALL(jff_BCLR_l_imm)(d, live.state[s].val & 31); + return; + } - s = readreg(s, 4); - d = rmw(d, 4, 4); + s = readreg(s, 4); + d = rmw(d, 4, 4); - AND_rri(REG_WORK1, s, 31); - MOV_ri(REG_WORK2, 1); - LSL_rrr(REG_WORK2, REG_WORK2, REG_WORK1); + AND_rri(REG_WORK1, s, 31); + MOV_ri(REG_WORK2, 1); + LSL_rrr(REG_WORK2, REG_WORK2, REG_WORK1); - MRS_CPSR(REG_WORK1); - TST_rr(d, REG_WORK2); - BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); - CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); - MSR_CPSRf_r(REG_WORK1); - BIC_rrr(d, d ,REG_WORK2); + MRS_CPSR(REG_WORK1); + TST_rr(d, REG_WORK2); + BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); + CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); + MSR_CPSRf_r(REG_WORK1); + BIC_rrr(d, d,REG_WORK2); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_BCLR_l,(RW4 d, RR4 s)) @@ -1436,139 +1476,143 @@ MENDFUNC(2,jff_BCLR_l,(RW4 d, RR4 s)) */ MIDFUNC(2,jnf_BSET_b_imm,(RW4 d, IMM s)) { - d = rmw(d, 4, 4); - ORR_rri(d, d, (1 << s)); - unlock2(d); + d = rmw(d, 4, 4); + ORR_rri(d, d, (1 << s)); + unlock2(d); } MENDFUNC(2,jnf_BSET_b_imm,(RW4 d, IMM s)) MIDFUNC(2,jnf_BSET_l_imm,(RW4 d, IMM s)) { - d = rmw(d, 4, 4); - ORR_rri(d, d, (1 << s)); - unlock2(d); + d = rmw(d, 4, 4); + ORR_rri(d, d, (1 << s)); + unlock2(d); } MENDFUNC(2,jnf_BSET_l_imm,(RW4 d, IMM s)) MIDFUNC(2,jnf_BSET_b,(RW4 d, RR4 s)) { - if (isconst(s)) { - COMPCALL(jnf_BSET_b_imm)(d, live.state[s].val & 7); - return; - } - s = readreg(s, 4); - d = rmw(d, 4 ,4); + if (isconst(s)) + { + COMPCALL(jnf_BSET_b_imm)(d, live.state[s].val & 7); + return; + } + s = readreg(s, 4); + d = rmw(d, 4,4); - AND_rri(REG_WORK1, s, 7); - MOV_ri(REG_WORK2, 1); + AND_rri(REG_WORK1, s, 7); + MOV_ri(REG_WORK2, 1); - ORR_rrrLSLr(d, d, REG_WORK2, REG_WORK1); + ORR_rrrLSLr(d, d, REG_WORK2, REG_WORK1); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_BSET_b,(RW4 d, RR4 s)) MIDFUNC(2,jnf_BSET_l,(RW4 d, RR4 s)) { - if (isconst(s)) { - COMPCALL(jnf_BSET_l_imm)(d, live.state[s].val & 31); - return; - } + if (isconst(s)) + { + COMPCALL(jnf_BSET_l_imm)(d, live.state[s].val & 31); + return; + } - s = readreg(s, 4); - d = rmw(d, 4, 4); + s = readreg(s, 4); + d = rmw(d, 4, 4); - AND_rri(REG_WORK1, s, 31); - MOV_ri(REG_WORK2, 1); + AND_rri(REG_WORK1, s, 31); + MOV_ri(REG_WORK2, 1); - ORR_rrrLSLr(d, d, REG_WORK2, REG_WORK1); + ORR_rrrLSLr(d, d, REG_WORK2, REG_WORK1); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_BSET_l,(RW4 d, RR4 s)) MIDFUNC(2,jff_BSET_b_imm,(RW4 d, IMM s)) { - d = rmw(d, 4, 4); + d = rmw(d, 4, 4); - uae_u32 v = (1 << s); - MRS_CPSR(REG_WORK1); - TST_ri(d, v); - BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); - CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); - MSR_CPSRf_r(REG_WORK1); - ORR_rri(d, d, v); + uae_u32 v = (1 << s); + MRS_CPSR(REG_WORK1); + TST_ri(d, v); + BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); + CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); + MSR_CPSRf_r(REG_WORK1); + ORR_rri(d, d, v); - unlock2(d); + unlock2(d); } MENDFUNC(2,jff_BSET_b_imm,(RW4 d, IMM s)) MIDFUNC(2,jff_BSET_l_imm,(RW4 d, IMM s)) { - d = rmw(d, 4, 4); + d = rmw(d, 4, 4); - uae_u32 v = (1 << s); - MRS_CPSR(REG_WORK1); - TST_ri(d, v); - BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); - CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); - MSR_CPSRf_r(REG_WORK1); - ORR_rri(d, d, v); + uae_u32 v = (1 << s); + MRS_CPSR(REG_WORK1); + TST_ri(d, v); + BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); + CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); + MSR_CPSRf_r(REG_WORK1); + ORR_rri(d, d, v); - unlock2(d); + unlock2(d); } MENDFUNC(2,jff_BSET_l_imm,(RW4 d, IMM s)) MIDFUNC(2,jff_BSET_b,(RW4 d, RR4 s)) { - if (isconst(s)) { - COMPCALL(jff_BSET_b_imm)(d, live.state[s].val & 7); - return; - } - s = readreg(s, 4); - d = rmw(d, 4, 4); + if (isconst(s)) + { + COMPCALL(jff_BSET_b_imm)(d, live.state[s].val & 7); + return; + } + s = readreg(s, 4); + d = rmw(d, 4, 4); - AND_rri(REG_WORK1, s, 7); - MOV_ri(REG_WORK2, 1); - LSL_rrr(REG_WORK2, REG_WORK2, REG_WORK1); + AND_rri(REG_WORK1, s, 7); + MOV_ri(REG_WORK2, 1); + LSL_rrr(REG_WORK2, REG_WORK2, REG_WORK1); - MRS_CPSR(REG_WORK1); - TST_rr(d, REG_WORK2); - BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); - CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); - MSR_CPSRf_r(REG_WORK1); - ORR_rrr(d, d, REG_WORK2); + MRS_CPSR(REG_WORK1); + TST_rr(d, REG_WORK2); + BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); + CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); + MSR_CPSRf_r(REG_WORK1); + ORR_rrr(d, d, REG_WORK2); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_BSET_b,(RW4 d, RR4 s)) MIDFUNC(2,jff_BSET_l,(RW4 d, RR4 s)) { - if (isconst(s)) { - COMPCALL(jff_BSET_l_imm)(d, live.state[s].val & 31); - return; - } + if (isconst(s)) + { + COMPCALL(jff_BSET_l_imm)(d, live.state[s].val & 31); + return; + } - s = readreg(s, 4); - d = rmw(d, 4, 4); + s = readreg(s, 4); + d = rmw(d, 4, 4); - AND_rri(REG_WORK1, s, 31); - MOV_ri(REG_WORK2, 1); - LSL_rrr(REG_WORK2, REG_WORK2, REG_WORK1); + AND_rri(REG_WORK1, s, 31); + MOV_ri(REG_WORK2, 1); + LSL_rrr(REG_WORK2, REG_WORK2, REG_WORK1); - MRS_CPSR(REG_WORK1); - TST_rr(d, REG_WORK2); - BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); - CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); - MSR_CPSRf_r(REG_WORK1); - ORR_rrr(d, d, REG_WORK2); + MRS_CPSR(REG_WORK1); + TST_rr(d, REG_WORK2); + BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); + CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); + MSR_CPSRf_r(REG_WORK1); + ORR_rrr(d, d, REG_WORK2); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_BSET_l,(RW4 d, RR4 s)) @@ -1588,78 +1632,80 @@ MENDFUNC(2,jff_BSET_l,(RW4 d, RR4 s)) */ MIDFUNC(2,jff_BTST_b_imm,(RR4 d, IMM s)) { - d = readreg(d, 4); + d = readreg(d, 4); - MRS_CPSR(REG_WORK1); - TST_ri(d, (1 << s)); - BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); - CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); - MSR_CPSRf_r(REG_WORK1); + MRS_CPSR(REG_WORK1); + TST_ri(d, (1 << s)); + BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); + CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); + MSR_CPSRf_r(REG_WORK1); - unlock2(d); + unlock2(d); } MENDFUNC(2,jff_BTST_b_imm,(RR4 d, IMM s)) MIDFUNC(2,jff_BTST_l_imm,(RR4 d, IMM s)) { - d = readreg(d, 4); + d = readreg(d, 4); - MRS_CPSR(REG_WORK1); - TST_ri(d, (1 << s)); - BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); - CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); - MSR_CPSRf_r(REG_WORK1); + MRS_CPSR(REG_WORK1); + TST_ri(d, (1 << s)); + BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); + CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); + MSR_CPSRf_r(REG_WORK1); - unlock2(d); + unlock2(d); } MENDFUNC(2,jff_BTST_l_imm,(RR4 d, IMM s)) MIDFUNC(2,jff_BTST_b,(RR4 d, RR4 s)) { - if (isconst(s)) { - COMPCALL(jff_BTST_b_imm)(d, live.state[s].val & 7); - return; - } - s = readreg(s, 4); - d = readreg(d, 4); + if (isconst(s)) + { + COMPCALL(jff_BTST_b_imm)(d, live.state[s].val & 7); + return; + } + s = readreg(s, 4); + d = readreg(d, 4); - AND_rri(REG_WORK1, s, 7); - MOV_ri(REG_WORK2, 1); - LSL_rrr(REG_WORK2, REG_WORK2, REG_WORK1); + AND_rri(REG_WORK1, s, 7); + MOV_ri(REG_WORK2, 1); + LSL_rrr(REG_WORK2, REG_WORK2, REG_WORK1); - MRS_CPSR(REG_WORK1); - TST_rr(d, REG_WORK2); - BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); - CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); - MSR_CPSRf_r(REG_WORK1); + MRS_CPSR(REG_WORK1); + TST_rr(d, REG_WORK2); + BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); + CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); + MSR_CPSRf_r(REG_WORK1); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_BTST_b,(RR4 d, RR4 s)) MIDFUNC(2,jff_BTST_l,(RR4 d, RR4 s)) { - if (isconst(s)) { - COMPCALL(jff_BTST_l_imm)(d, live.state[s].val & 31); - return; - } + if (isconst(s)) + { + COMPCALL(jff_BTST_l_imm)(d, live.state[s].val & 31); + return; + } - s = readreg(s ,4); - d = readreg(d, 4); + s = readreg(s,4); + d = readreg(d, 4); - AND_rri(REG_WORK1, s, 31); - MOV_ri(REG_WORK2, 1); - LSL_rrr(REG_WORK2, REG_WORK2, REG_WORK1); + AND_rri(REG_WORK1, s, 31); + MOV_ri(REG_WORK2, 1); + LSL_rrr(REG_WORK2, REG_WORK2, REG_WORK1); - MRS_CPSR(REG_WORK1); - TST_rr(d, REG_WORK2); - BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); - CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); - MSR_CPSRf_r(REG_WORK1); + MRS_CPSR(REG_WORK1); + TST_rr(d, REG_WORK2); + BIC_rri(REG_WORK1, REG_WORK1, ARM_Z_FLAG); + CC_ORR_rri(NATIVE_CC_EQ, REG_WORK1, REG_WORK1, ARM_Z_FLAG); + MSR_CPSRf_r(REG_WORK1); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_BTST_l,(RR4 d, RR4 s)) @@ -1678,18 +1724,18 @@ MENDFUNC(2,jff_BTST_l,(RR4 d, RR4 s)) */ MIDFUNC(1,jnf_CLR,(W4 d)) { - d = writereg(d, 4); - MOV_ri(d, 0); - unlock2(d); + d = writereg(d, 4); + MOV_ri(d, 0); + unlock2(d); } MENDFUNC(1,jnf_CLR,(W4 d)) MIDFUNC(1,jff_CLR,(W4 d)) { - d = writereg(d, 4); - MOV_ri(d, 0); - MSR_CPSRf_i(ARM_Z_FLAG); - unlock2(d); + d = writereg(d, 4); + MOV_ri(d, 0); + MSR_CPSRf_i(ARM_Z_FLAG); + unlock2(d); } MENDFUNC(1,jff_CLR,(W4 d)) @@ -1708,51 +1754,51 @@ MENDFUNC(1,jff_CLR,(W4 d)) */ MIDFUNC(2,jff_CMP_b,(RR1 d, RR1 s)) { - d = readreg(d, 4); - s = readreg(s, 4); + d = readreg(d, 4); + s = readreg(s, 4); - LSL_rri(REG_WORK1, d, 24); - CMP_rrLSLi(REG_WORK1, s, 24); + LSL_rri(REG_WORK1, d, 24); + CMP_rrLSLi(REG_WORK1, s, 24); - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); - unlock2(s); - unlock2(d); + unlock2(s); + unlock2(d); } MENDFUNC(2,jff_CMP_b,(RR1 d, RR1 s)) MIDFUNC(2,jff_CMP_w,(RR2 d, RR2 s)) { - d = readreg(d, 4); - s = readreg(s, 4); + d = readreg(d, 4); + s = readreg(s, 4); - LSL_rri(REG_WORK1, d, 16); - CMP_rrLSLi(REG_WORK1, s, 16); + LSL_rri(REG_WORK1, d, 16); + CMP_rrLSLi(REG_WORK1, s, 16); - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); - unlock2(s); - unlock2(d); + unlock2(s); + unlock2(d); } MENDFUNC(2,jff_CMP_w,(RR2 d, RR2 s)) MIDFUNC(2,jff_CMP_l,(RR4 d, RR4 s)) { - d = readreg(d, 4); - s = readreg(s, 4); + d = readreg(d, 4); + s = readreg(s, 4); - CMP_rr(d, s); + CMP_rr(d, s); - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); - unlock2(s); - unlock2(d); + unlock2(s); + unlock2(d); } MENDFUNC(2,jff_CMP_l,(RR4 d, RR4 s)) @@ -1771,34 +1817,34 @@ MENDFUNC(2,jff_CMP_l,(RR4 d, RR4 s)) */ MIDFUNC(2,jff_CMPA_w,(RR2 d, RR2 s)) { - d = readreg(d, 4); - s = readreg(s, 4); + d = readreg(d, 4); + s = readreg(s, 4); - LSL_rri(REG_WORK1, d, 16); - CMP_rrLSLi(REG_WORK1, s, 16); + LSL_rri(REG_WORK1, d, 16); + CMP_rrLSLi(REG_WORK1, s, 16); - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); - unlock2(s); - unlock2(d); + unlock2(s); + unlock2(d); } MENDFUNC(2,jff_CMPA_w,(RR2 d, RR2 s)) MIDFUNC(2,jff_CMPA_l,(RR4 d, RR4 s)) { - d = readreg(d, 4); - s = readreg(s, 4); + d = readreg(d, 4); + s = readreg(s, 4); - CMP_rr(d, s); + CMP_rr(d, s); - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); - unlock2(s); - unlock2(d); + unlock2(s); + unlock2(d); } MENDFUNC(2,jff_CMPA_l,(RR4 d, RR4 s)) @@ -1808,37 +1854,38 @@ MENDFUNC(2,jff_CMPA_l,(RR4 d, RR4 s)) */ MIDFUNC(2,jff_DBCC,(RR2 d, IMM cc)) { - d = rmw(d, 4, 4); - - // If cc true -> no branch, so we have to clear ARM_C_FLAG - MOV_ri(REG_WORK1, ARM_C_FLAG); - switch(cc) { + d = rmw(d, 4, 4); + + // If cc true -> no branch, so we have to clear ARM_C_FLAG + MOV_ri(REG_WORK1, ARM_C_FLAG); + switch(cc) + { case 9: // LS - CC_MOV_ri(NATIVE_CC_EQ, REG_WORK1, 0); - CC_MOV_ri(NATIVE_CC_CS, REG_WORK1, 0); - break; + CC_MOV_ri(NATIVE_CC_EQ, REG_WORK1, 0); + CC_MOV_ri(NATIVE_CC_CS, REG_WORK1, 0); + break; case 8: // HI - CC_MOV_ri(NATIVE_CC_CC, REG_WORK1, 0); - break; + CC_MOV_ri(NATIVE_CC_CC, REG_WORK1, 0); + break; default: - CC_MOV_ri(cc, REG_WORK1, 0); - break; - } - clobber_flags(); - MSR_CPSRf_r(REG_WORK1); + CC_MOV_ri(cc, REG_WORK1, 0); + break; + } + clobber_flags(); + MSR_CPSRf_r(REG_WORK1); - BCC_i(2); // If cc true -> no sub - - // sub (d, 1) - LSL_rri(REG_WORK2, d, 16); - SUBS_rri(REG_WORK2, REG_WORK2, 1 << 16); - PKHTB_rrrASRi(d, d, REG_WORK2, 16); - - // caller can now use register_branch(v1, v2, NATIVE_CC_CS); - - unlock2(d); + BCC_i(2); // If cc true -> no sub + + // sub (d, 1) + LSL_rri(REG_WORK2, d, 16); + SUBS_rri(REG_WORK2, REG_WORK2, 1 << 16); + PKHTB_rrrASRi(d, d, REG_WORK2, 16); + + // caller can now use register_branch(v1, v2, NATIVE_CC_CS); + + unlock2(d); } MENDFUNC(2,jff_DBCC,(RR2 d, IMM cc)) @@ -1853,71 +1900,71 @@ MENDFUNC(2,jff_DBCC,(RR2 d, IMM cc)) * */ // ToDo: How to handle exceptions (division by zero). Performance improvement isn't big, so this is on hold. - MIDFUNC(3,jnf_DIVU,(W4 d, RR4 s1, RR4 s2)) +MIDFUNC(3,jnf_DIVU,(W4 d, RR4 s1, RR4 s2)) { - s1 = readreg(s1, 4); - s2 = readreg(s2, 4); - d = writereg(d, 4); - - VMOV_sr(0, s1); // move to s0 - VMOV_sr(1, s2); // move to s1 - VCVT_f64_u32(2, 0); // convert s0 to d2 (int to float) - VCVT_f64_u32(3, 1); // convert s1 to d3 (int to float) - VDIV_ddd(4, 2, 3); // d4 = d2 / d3 - VCVT_u32_f64(0, 4); // convert d4 to s0 (float to int) - VMOV_rs(REG_WORK1, 0); // move from s0 - - LSRS_rri(REG_WORK2, REG_WORK1, 16); // if result of this is not 0, DIVU overflows -> no result - BNE_i(2); - - // Here we have to calc reminder - MUL_rrr(REG_WORK2, REG_WORK1, s2); - SUB_rrr(REG_WORK2, s1, REG_WORK2); - PKHBT_rrrLSLi(d, REG_WORK1, REG_WORK2, 16); - - unlock2(d); - unlock2(s1); - unlock2(s2); + s1 = readreg(s1, 4); + s2 = readreg(s2, 4); + d = writereg(d, 4); + + VMOV_sr(0, s1); // move to s0 + VMOV_sr(1, s2); // move to s1 + VCVT_f64_u32(2, 0); // convert s0 to d2 (int to float) + VCVT_f64_u32(3, 1); // convert s1 to d3 (int to float) + VDIV_ddd(4, 2, 3); // d4 = d2 / d3 + VCVT_u32_f64(0, 4); // convert d4 to s0 (float to int) + VMOV_rs(REG_WORK1, 0); // move from s0 + + LSRS_rri(REG_WORK2, REG_WORK1, 16); // if result of this is not 0, DIVU overflows -> no result + BNE_i(2); + + // Here we have to calc reminder + MUL_rrr(REG_WORK2, REG_WORK1, s2); + SUB_rrr(REG_WORK2, s1, REG_WORK2); + PKHBT_rrrLSLi(d, REG_WORK1, REG_WORK2, 16); + + unlock2(d); + unlock2(s1); + unlock2(s2); } MENDFUNC(3,jnf_DIVU,(W4 d, RR4 s1, RR4 s2)) MIDFUNC(3,jff_DIVU,(W4 d, RR4 s1, RR4 s2)) { - s1 = readreg(s1, 4); - s2 = readreg(s2, 4); - d = writereg(d, 4); - - VMOV_sr(0, s1); // move to s0 - VMOV_sr(1, s2); // move to s1 - VCVT_f64_u32(2, 0); // convert s0 to d2 (int to float) - VCVT_f64_u32(3, 1); // convert s1 to d3 (int to float) - VDIV_ddd(4, 2, 3); // d4 = d2 / d3 - VCVT_u32_f64(0, 4); // convert d4 to s0 (float to int) - VMOV_rs(REG_WORK1, 0); // move from s0 - - LSRS_rri(REG_WORK2, REG_WORK1, 16); // if result of this is not 0, DIVU overflows - BEQ_i(2); - // Here we handle overflow - MOV_ri(REG_WORK1, ARM_V_FLAG | ARM_N_FLAG); - MSR_CPSRf_r(REG_WORK1); - B_i(6); - - // Here we have to calc flags and reminder - LSLS_rri(REG_WORK2, REG_WORK1, 16); // N and Z ok - MRS_CPSR(REG_WORK2); - BIC_rri(REG_WORK2, REG_WORK2, ARM_C_FLAG | ARM_V_FLAG); - MSR_CPSRf_r(REG_WORK2); - - MUL_rrr(REG_WORK2, REG_WORK1, s2); - SUB_rrr(REG_WORK2, s1, REG_WORK2); - PKHBT_rrrLSLi(d, REG_WORK1, REG_WORK2, 16); - - unlock2(d); - unlock2(s1); - unlock2(s2); + s1 = readreg(s1, 4); + s2 = readreg(s2, 4); + d = writereg(d, 4); + + VMOV_sr(0, s1); // move to s0 + VMOV_sr(1, s2); // move to s1 + VCVT_f64_u32(2, 0); // convert s0 to d2 (int to float) + VCVT_f64_u32(3, 1); // convert s1 to d3 (int to float) + VDIV_ddd(4, 2, 3); // d4 = d2 / d3 + VCVT_u32_f64(0, 4); // convert d4 to s0 (float to int) + VMOV_rs(REG_WORK1, 0); // move from s0 + + LSRS_rri(REG_WORK2, REG_WORK1, 16); // if result of this is not 0, DIVU overflows + BEQ_i(2); + // Here we handle overflow + MOV_ri(REG_WORK1, ARM_V_FLAG | ARM_N_FLAG); + MSR_CPSRf_r(REG_WORK1); + B_i(6); + + // Here we have to calc flags and reminder + LSLS_rri(REG_WORK2, REG_WORK1, 16); // N and Z ok + MRS_CPSR(REG_WORK2); + BIC_rri(REG_WORK2, REG_WORK2, ARM_C_FLAG | ARM_V_FLAG); + MSR_CPSRf_r(REG_WORK2); + + MUL_rrr(REG_WORK2, REG_WORK1, s2); + SUB_rrr(REG_WORK2, s1, REG_WORK2); + PKHBT_rrrLSLi(d, REG_WORK1, REG_WORK2, 16); + + unlock2(d); + unlock2(s1); + unlock2(s2); } MENDFUNC(3,jff_DIVU,(W4 d, RR4 s1, RR4 s2)) - + /* * EOR * Operand Syntax: Dn, @@ -1933,69 +1980,70 @@ MENDFUNC(3,jff_DIVU,(W4 d, RR4 s1, RR4 s2)) */ MIDFUNC(3,jnf_EOR,(W4 d, RR4 s, RR4 v)) { - if (isconst(s) && isconst(v)) { - set_const(d, live.state[s].val ^ live.state[v].val); - return; - } + if (isconst(s) && isconst(v)) + { + set_const(d, live.state[s].val ^ live.state[v].val); + return; + } - v = readreg(v, 4); - s = readreg(s, 4); - d = writereg(d, 4); + v = readreg(v, 4); + s = readreg(s, 4); + d = writereg(d, 4); - EOR_rrr(d, s, v); + EOR_rrr(d, s, v); - unlock2(v); - unlock2(d); - unlock2(s); + unlock2(v); + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_EOR,(RW4 d, RR4 s, RR4 v)) MIDFUNC(3,jff_EOR_b,(W4 d, RR1 s, RR1 v)) { - v = readreg(v, 4); - s = readreg(s, 4); - d = writereg(d, 4); + v = readreg(v, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED8_REG_2_REG(REG_WORK1, s); - SIGNED8_REG_2_REG(REG_WORK2, v); - MSR_CPSRf_i(0); - EORS_rrr(d, REG_WORK1, REG_WORK2); + SIGNED8_REG_2_REG(REG_WORK1, s); + SIGNED8_REG_2_REG(REG_WORK2, v); + MSR_CPSRf_i(0); + EORS_rrr(d, REG_WORK1, REG_WORK2); - unlock2(v); - unlock2(d); - unlock2(s); + unlock2(v); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_EOR_b,(RW4 d, RR1 s, RR1 v)) MIDFUNC(3,jff_EOR_w,(W4 d, RR2 s, RR2 v)) { - v = readreg(v, 4); - s = readreg(s, 4); - d = writereg(d, 4); + v = readreg(v, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED16_REG_2_REG(REG_WORK1, s); - SIGNED16_REG_2_REG(REG_WORK2, v); - MSR_CPSRf_i(0); - EORS_rrr(d, REG_WORK1, REG_WORK2); + SIGNED16_REG_2_REG(REG_WORK1, s); + SIGNED16_REG_2_REG(REG_WORK2, v); + MSR_CPSRf_i(0); + EORS_rrr(d, REG_WORK1, REG_WORK2); - unlock2(v); - unlock2(d); - unlock2(s); + unlock2(v); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_EOR_w,(RW4 d, RR2 s, RR2 v)) MIDFUNC(3,jff_EOR_l,(W4 d, RR4 s, RR4 v)) { - v = readreg(v, 4); - s = readreg(s, 4); - d = writereg(d, 4); + v = readreg(v, 4); + s = readreg(s, 4); + d = writereg(d, 4); - MSR_CPSRf_i(0); - EORS_rrr(d, s, v); + MSR_CPSRf_i(0); + EORS_rrr(d, s, v); - unlock2(v); - unlock2(d); - unlock2(s); + unlock2(v); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_EOR_l,(RW4 d, RR4 s, RR4 v)) @@ -2014,15 +2062,16 @@ MENDFUNC(3,jff_EOR_l,(RW4 d, RR4 s, RR4 v)) */ MIDFUNC(1,jff_EORSR,(IMM s, IMM x)) { - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, s); - MSR_CPSRf_r(REG_WORK1); + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, s); + MSR_CPSRf_r(REG_WORK1); - if (x) { - int f = rmw(FLAGX, 4, 4); - EOR_rri(f, f, 1); - unlock2(f); - } + if (x) + { + int f = rmw(FLAGX, 4, 4); + EOR_rri(f, f, 1); + unlock2(f); + } } MENDFUNC(1,jff_EORSR,(IMM s)) @@ -2041,108 +2090,120 @@ MENDFUNC(1,jff_EORSR,(IMM s)) */ MIDFUNC(2,jnf_EXT_b,(W4 d, RR4 s)) { - if (isconst(s)) { - set_const(d, (uae_s32)(uae_s8)live.state[s].val); - return; - } + if (isconst(s)) + { + set_const(d, (uae_s32)(uae_s8)live.state[s].val); + return; + } - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED8_REG_2_REG(d, s); + SIGNED8_REG_2_REG(d, s); - unlock2(s); - unlock2(d); + unlock2(s); + unlock2(d); } MENDFUNC(2,jnf_EXT_b,(W4 d, RR4 s)) MIDFUNC(2,jnf_EXT_w,(W4 d, RR4 s)) { - if (isconst(s)) { - set_const(d, (uae_s32)(uae_s8)live.state[s].val); - return; - } + if (isconst(s)) + { + set_const(d, (uae_s32)(uae_s8)live.state[s].val); + return; + } - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED8_REG_2_REG(d, s); + SIGNED8_REG_2_REG(d, s); - unlock2(s); - unlock2(d); + unlock2(s); + unlock2(d); } MENDFUNC(2,jnf_EXT_w,(W4 d, RR4 s)) MIDFUNC(2,jnf_EXT_l,(W4 d, RR4 s)) { - if (isconst(s)) { - set_const(d, (uae_s32)(uae_s16)live.state[s].val); - return; - } + if (isconst(s)) + { + set_const(d, (uae_s32)(uae_s16)live.state[s].val); + return; + } - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED16_REG_2_REG(d, s); + SIGNED16_REG_2_REG(d, s); - unlock2(s); - unlock2(d); + unlock2(s); + unlock2(d); } MENDFUNC(2,jnf_EXT_l,(W4 d, RR4 s)) MIDFUNC(2,jff_EXT_b,(W4 d, RR4 s)) { - if (isconst(s)) { - d = writereg(d, 4); - SIGNED8_IMM_2_REG(d, (uae_u8)live.state[s].val); - } else { - s = readreg(s, 4); - d = writereg(d, 4); - SIGNED8_REG_2_REG(d, s); - unlock2(s); - } + if (isconst(s)) + { + d = writereg(d, 4); + SIGNED8_IMM_2_REG(d, (uae_u8)live.state[s].val); + } + else + { + s = readreg(s, 4); + d = writereg(d, 4); + SIGNED8_REG_2_REG(d, s); + unlock2(s); + } - MSR_CPSRf_i(0); - TST_rr(d, d); + MSR_CPSRf_i(0); + TST_rr(d, d); - unlock2(d); + unlock2(d); } MENDFUNC(2,jff_EXT_b,(W4 d, RR4 s)) MIDFUNC(2,jff_EXT_w,(W4 d, RR4 s)) { - if (isconst(s)) { - d = writereg(d, 4); - SIGNED8_IMM_2_REG(d, (uae_u8)live.state[s].val); - } else { - s = readreg(s, 4); - d = writereg(d, 4); - SIGNED8_REG_2_REG(d, s); - unlock2(s); - } + if (isconst(s)) + { + d = writereg(d, 4); + SIGNED8_IMM_2_REG(d, (uae_u8)live.state[s].val); + } + else + { + s = readreg(s, 4); + d = writereg(d, 4); + SIGNED8_REG_2_REG(d, s); + unlock2(s); + } - MSR_CPSRf_i(0); - TST_rr(d, d); + MSR_CPSRf_i(0); + TST_rr(d, d); - unlock2(d); + unlock2(d); } MENDFUNC(2,jff_EXT_w,(W4 d, RR4 s)) MIDFUNC(2,jff_EXT_l,(W4 d, RR4 s)) { - if (isconst(s)) { - d = writereg(d, 4); - SIGNED16_IMM_2_REG(d, (uae_u16)live.state[s].val); - } else { - s = readreg(s, 4); - d = writereg(d, 4); - SIGNED16_REG_2_REG(d, s); - unlock2(s); - } - MSR_CPSRf_i(0); - TST_rr(d, d); + if (isconst(s)) + { + d = writereg(d, 4); + SIGNED16_IMM_2_REG(d, (uae_u16)live.state[s].val); + } + else + { + s = readreg(s, 4); + d = writereg(d, 4); + SIGNED16_REG_2_REG(d, s); + unlock2(s); + } + MSR_CPSRf_i(0); + TST_rr(d, d); - unlock2(d); + unlock2(d); } MENDFUNC(2,jff_EXT_l,(W4 d, RR4 s)) @@ -2165,164 +2226,173 @@ MENDFUNC(2,jff_EXT_l,(W4 d, RR4 s)) */ MIDFUNC(3,jnf_LSL_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - if(i) - LSL_rri(d, s, i); - else - MOV_rr(d, s); - - unlock2(d); - unlock2(s); + if(i) + LSL_rri(d, s, i); + else + MOV_rr(d, s); + + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_LSL_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jnf_LSL_reg,(W4 d, RR4 s, RR4 i)) { - i = readreg(i, 4); - s = readreg(s, 4); - d = writereg(d, 4); + i = readreg(i, 4); + s = readreg(s, 4); + d = writereg(d, 4); - AND_rri(REG_WORK1, i, 63); - LSL_rrr(d, s, REG_WORK1); + AND_rri(REG_WORK1, i, 63); + LSL_rrr(d, s, REG_WORK1); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jnf_LSL_reg,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jff_LSL_b_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - MSR_CPSRf_i(0); + MSR_CPSRf_i(0); - LSL_rri(d, s, 24); - if (i) { - LSLS_rri(d, d, i); - DUPLICACTE_CARRY - } else { - TST_rr(d, d); - } - LSR_rri(d, d, 24); + LSL_rri(d, s, 24); + if (i) + { + LSLS_rri(d, d, i); + DUPLICACTE_CARRY + } + else + { + TST_rr(d, d); + } + LSR_rri(d, d, 24); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_LSL_b_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jff_LSL_w_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - MSR_CPSRf_i(0); + MSR_CPSRf_i(0); - LSL_rri(d, s, 16); - if (i) { - LSLS_rri(d, d, i); - DUPLICACTE_CARRY - } else { - TST_rr(d, d); - } - LSR_rri(d, d, 16); + LSL_rri(d, s, 16); + if (i) + { + LSLS_rri(d, d, i); + DUPLICACTE_CARRY + } + else + { + TST_rr(d, d); + } + LSR_rri(d, d, 16); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_LSL_w_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jff_LSL_l_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - MSR_CPSRf_i(0); - if (i) { - LSLS_rri(d, s, i); - DUPLICACTE_CARRY - } else { - MOVS_rr(d, s); - } + MSR_CPSRf_i(0); + if (i) + { + LSLS_rri(d, s, i); + DUPLICACTE_CARRY + } + else + { + MOVS_rr(d, s); + } - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_LSL_l_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jff_LSL_b_reg,(W4 d, RR4 s, RR4 i)) { - i = readreg(i, 4); - s = readreg(s, 4); - d = writereg(d, 4); - int x = writereg(FLAGX, 4); + i = readreg(i, 4); + s = readreg(s, 4); + d = writereg(d, 4); + int x = writereg(FLAGX, 4); - MSR_CPSRf_i(0); - LSL_rri(d, s, 24); - ANDS_rri(REG_WORK1, i, 63); - BEQ_i(3); // No shift -> X flag unchanged - LSLS_rrr(d, d, REG_WORK1); - MOV_ri(x, 1); - CC_MOV_ri(NATIVE_CC_CC, x, 0); - B_i(0); - TST_rr(d, d); - LSR_rri(d, d, 24); + MSR_CPSRf_i(0); + LSL_rri(d, s, 24); + ANDS_rri(REG_WORK1, i, 63); + BEQ_i(3); // No shift -> X flag unchanged + LSLS_rrr(d, d, REG_WORK1); + MOV_ri(x, 1); + CC_MOV_ri(NATIVE_CC_CC, x, 0); + B_i(0); + TST_rr(d, d); + LSR_rri(d, d, 24); - unlock2(x); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(x); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jff_LSL_b_reg,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jff_LSL_w_reg,(W4 d, RR4 s, RR4 i)) { - i = readreg(i, 4); - s = readreg(s, 4); - d = writereg(d, 4); - int x = writereg(FLAGX, 4); + i = readreg(i, 4); + s = readreg(s, 4); + d = writereg(d, 4); + int x = writereg(FLAGX, 4); - MSR_CPSRf_i(0); - LSL_rri(d, s, 16); - ANDS_rri(REG_WORK1, i, 63); - BEQ_i(3); // No shift -> X flag unchanged - LSLS_rrr(d, d, REG_WORK1); - MOV_ri(x, 1); - CC_MOV_ri(NATIVE_CC_CC, x, 0); - B_i(0); - TST_rr(d, d); - LSR_rri(d, d, 16); + MSR_CPSRf_i(0); + LSL_rri(d, s, 16); + ANDS_rri(REG_WORK1, i, 63); + BEQ_i(3); // No shift -> X flag unchanged + LSLS_rrr(d, d, REG_WORK1); + MOV_ri(x, 1); + CC_MOV_ri(NATIVE_CC_CC, x, 0); + B_i(0); + TST_rr(d, d); + LSR_rri(d, d, 16); - unlock2(x); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(x); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jff_LSL_w_reg,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jff_LSL_l_reg,(W4 d, RR4 s, RR4 i)) { - i = readreg(i, 4); - s = readreg(s, 4); - d = writereg(d, 4); - int x = writereg(FLAGX, 4); + i = readreg(i, 4); + s = readreg(s, 4); + d = writereg(d, 4); + int x = writereg(FLAGX, 4); - MSR_CPSRf_i(0); - ANDS_rri(REG_WORK1, i, 63); - BEQ_i(3); // No shift -> X flag unchanged - LSLS_rrr(d, s, REG_WORK1); - MOV_ri(x, 1); - CC_MOV_ri(NATIVE_CC_CC, x, 0); - B_i(0); - MOVS_rr(d, s); + MSR_CPSRf_i(0); + ANDS_rri(REG_WORK1, i, 63); + BEQ_i(3); // No shift -> X flag unchanged + LSLS_rrr(d, s, REG_WORK1); + MOV_ri(x, 1); + CC_MOV_ri(NATIVE_CC_CC, x, 0); + B_i(0); + MOVS_rr(d, s); - unlock2(x); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(x); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jff_LSL_l_reg,(W4 d, RR4 s, RR4 i)) @@ -2341,28 +2411,28 @@ MENDFUNC(3,jff_LSL_l_reg,(W4 d, RR4 s, RR4 i)) */ MIDFUNC(2,jnf_LSLW,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - LSL_rri(d, s, 1); + LSL_rri(d, s, 1); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_LSLW,(W4 d, RR4 s)) MIDFUNC(2,jff_LSLW,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - MSR_CPSRf_i(0); - LSLS_rri(d, s, 17); - LSR_rri(d, d, 16); - DUPLICACTE_CARRY + MSR_CPSRf_i(0); + LSLS_rri(d, s, 17); + LSR_rri(d, d, 16); + DUPLICACTE_CARRY - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_LSLW,(W4 d, RR4 s)) @@ -2385,222 +2455,231 @@ MENDFUNC(2,jff_LSLW,(W4 d, RR4 s)) */ MIDFUNC(3,jnf_LSR_b_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - UNSIGNED8_REG_2_REG(d, s); - if(i) - LSR_rri(d, d, i); + UNSIGNED8_REG_2_REG(d, s); + if(i) + LSR_rri(d, d, i); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_LSR_b_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jnf_LSR_w_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - UNSIGNED16_REG_2_REG(d, s); - if(i) - LSR_rri(d, d, i); + UNSIGNED16_REG_2_REG(d, s); + if(i) + LSR_rri(d, d, i); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_LSR_w_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jnf_LSR_l_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - if (i) - LSR_rri(d, s, i); - else - MOV_rr(d, s); - - unlock2(d); - unlock2(s); + if (i) + LSR_rri(d, s, i); + else + MOV_rr(d, s); + + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_LSR_l_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jff_LSR_b_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - MSR_CPSRf_i(0); - if (i) { - UNSIGNED8_REG_2_REG(d, s); - LSRS_rri(d, d, i); - DUPLICACTE_CARRY - } else { - SIGNED8_REG_2_REG(d, s); - TST_rr(d, d); - } + MSR_CPSRf_i(0); + if (i) + { + UNSIGNED8_REG_2_REG(d, s); + LSRS_rri(d, d, i); + DUPLICACTE_CARRY + } + else + { + SIGNED8_REG_2_REG(d, s); + TST_rr(d, d); + } - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_LSR_b_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jff_LSR_w_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - MSR_CPSRf_i(0); - if (i) { - UNSIGNED16_REG_2_REG(d, s); - LSRS_rri(d, d, i); - DUPLICACTE_CARRY - } else { - SIGNED16_REG_2_REG(d, s); - TST_rr(d, d); - } + MSR_CPSRf_i(0); + if (i) + { + UNSIGNED16_REG_2_REG(d, s); + LSRS_rri(d, d, i); + DUPLICACTE_CARRY + } + else + { + SIGNED16_REG_2_REG(d, s); + TST_rr(d, d); + } - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_LSR_w_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jff_LSR_l_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - MSR_CPSRf_i(0); - if (i) { - LSRS_rri(d, s, i); - DUPLICACTE_CARRY - } else { - MOVS_rr(d, s); - } + MSR_CPSRf_i(0); + if (i) + { + LSRS_rri(d, s, i); + DUPLICACTE_CARRY + } + else + { + MOVS_rr(d, s); + } - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_LSR_l_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jnf_LSR_b_reg,(W4 d, RR4 s, RR4 i)) { - i = readreg(i, 4); - s = readreg(s, 4); - d = writereg(d, 4); + i = readreg(i, 4); + s = readreg(s, 4); + d = writereg(d, 4); - UNSIGNED8_REG_2_REG(d, s); - AND_rri(REG_WORK1, i, 63); - LSR_rrr(d, d, REG_WORK1); + UNSIGNED8_REG_2_REG(d, s); + AND_rri(REG_WORK1, i, 63); + LSR_rrr(d, d, REG_WORK1); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jnf_LSR_b_reg,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jnf_LSR_w_reg,(W4 d, RR4 s, RR4 i)) { - i = readreg(i, 4); - s = readreg(s, 4); - d = writereg(d, 4); + i = readreg(i, 4); + s = readreg(s, 4); + d = writereg(d, 4); - UNSIGNED16_REG_2_REG(d, s); - AND_rri(REG_WORK1, i, 63); - LSR_rrr(d, d, REG_WORK1); + UNSIGNED16_REG_2_REG(d, s); + AND_rri(REG_WORK1, i, 63); + LSR_rrr(d, d, REG_WORK1); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jnf_LSR_w_reg,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jnf_LSR_l_reg,(W4 d, RR4 s, RR4 i)) { - i = readreg(i, 4); - s = readreg(s, 4); - d = writereg(d, 4); + i = readreg(i, 4); + s = readreg(s, 4); + d = writereg(d, 4); - AND_rri(REG_WORK1, i, 63); - LSR_rrr(d, s, REG_WORK1); + AND_rri(REG_WORK1, i, 63); + LSR_rrr(d, s, REG_WORK1); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jnf_LSR_l_reg,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jff_LSR_b_reg,(W4 d, RR4 s, RR4 i)) { - i = readreg(i, 4); - s = readreg(s, 4); - d = writereg(d, 4); - int x = writereg(FLAGX, 4); + i = readreg(i, 4); + s = readreg(s, 4); + d = writereg(d, 4); + int x = writereg(FLAGX, 4); - SIGNED8_REG_2_REG(d, s); // Make sure, sign is in MSB if shift count is 0 (to get correct N flag) - MSR_CPSRf_i(0); - ANDS_rri(REG_WORK1, i, 63); - BEQ_i(4); // No shift -> X flag unchanged - AND_rri(d, d, 0xff); // Shift count is not 0 -> unsigned required - LSRS_rrr(d, d, REG_WORK1); - MOV_ri(x, 1); - CC_MOV_ri(NATIVE_CC_CC, x, 0); - B_i(0); - TST_rr(d, d); + SIGNED8_REG_2_REG(d, s); // Make sure, sign is in MSB if shift count is 0 (to get correct N flag) + MSR_CPSRf_i(0); + ANDS_rri(REG_WORK1, i, 63); + BEQ_i(4); // No shift -> X flag unchanged + AND_rri(d, d, 0xff); // Shift count is not 0 -> unsigned required + LSRS_rrr(d, d, REG_WORK1); + MOV_ri(x, 1); + CC_MOV_ri(NATIVE_CC_CC, x, 0); + B_i(0); + TST_rr(d, d); - unlock2(x); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(x); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jff_LSR_b_reg,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jff_LSR_w_reg,(W4 d, RR4 s, RR4 i)) { - i = readreg(i, 4); - s = readreg(s, 4); - d = writereg(d, 4); - int x = writereg(FLAGX, 4); + i = readreg(i, 4); + s = readreg(s, 4); + d = writereg(d, 4); + int x = writereg(FLAGX, 4); - SIGNED16_REG_2_REG(d, s); // Make sure, sign is in MSB if shift count is 0 (to get correct N flag) - MSR_CPSRf_i(0); - ANDS_rri(REG_WORK1, i, 63); - BEQ_i(4); // No shift -> X flag unchanged - UXTH_rr(d, d); // Shift count is not 0 -> unsigned required - LSRS_rrr(d, d, REG_WORK1); - MOV_ri(x, 1); - CC_MOV_ri(NATIVE_CC_CC, x, 0); - B_i(0); - TST_rr(d, d); + SIGNED16_REG_2_REG(d, s); // Make sure, sign is in MSB if shift count is 0 (to get correct N flag) + MSR_CPSRf_i(0); + ANDS_rri(REG_WORK1, i, 63); + BEQ_i(4); // No shift -> X flag unchanged + UXTH_rr(d, d); // Shift count is not 0 -> unsigned required + LSRS_rrr(d, d, REG_WORK1); + MOV_ri(x, 1); + CC_MOV_ri(NATIVE_CC_CC, x, 0); + B_i(0); + TST_rr(d, d); - unlock2(x); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(x); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jff_LSR_w_reg,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jff_LSR_l_reg,(W4 d, RR4 s, RR4 i)) { - i = readreg(i, 4); - s = readreg(s, 4); - d = writereg(d, 4); - int x = writereg(FLAGX, 4); + i = readreg(i, 4); + s = readreg(s, 4); + d = writereg(d, 4); + int x = writereg(FLAGX, 4); - MSR_CPSRf_i(0); - ANDS_rri(REG_WORK1, i, 63); - BEQ_i(3); // No shift -> X flag unchanged - LSRS_rrr(d, s, REG_WORK1); - MOV_ri(x, 1); - CC_MOV_ri(NATIVE_CC_CC, x, 0); - B_i(0); - MOVS_rr(d, s); + MSR_CPSRf_i(0); + ANDS_rri(REG_WORK1, i, 63); + BEQ_i(3); // No shift -> X flag unchanged + LSRS_rrr(d, s, REG_WORK1); + MOV_ri(x, 1); + CC_MOV_ri(NATIVE_CC_CC, x, 0); + B_i(0); + MOVS_rr(d, s); - unlock2(x); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(x); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jff_LSR_l_reg,(W4 d, RR4 s, RR4 i)) @@ -2619,29 +2698,29 @@ MENDFUNC(3,jff_LSR_l_reg,(W4 d, RR4 s, RR4 i)) */ MIDFUNC(2,jnf_LSRW,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - UNSIGNED16_REG_2_REG(d, s); - LSR_rri(d, d, 1); + UNSIGNED16_REG_2_REG(d, s); + LSR_rri(d, d, 1); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_LSRW,(W4 d, RR4 s)) MIDFUNC(2,jff_LSRW,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - UNSIGNED16_REG_2_REG(d, s); - MSR_CPSRf_i(0); - LSRS_rri(d, d, 1); - DUPLICACTE_CARRY + UNSIGNED16_REG_2_REG(d, s); + MSR_CPSRf_i(0); + LSRS_rri(d, d, 1); + DUPLICACTE_CARRY - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_LSRW,(W4 d, RR4 s)) @@ -2660,112 +2739,119 @@ MENDFUNC(2,jff_LSRW,(W4 d, RR4 s)) */ MIDFUNC(2,jnf_MOVE,(W4 d, RR4 s)) { - if (isconst(s)) { - set_const(d, live.state[s].val); - return; - } - s = readreg(s, 4); - d = writereg(d, 4); + if (isconst(s)) + { + set_const(d, live.state[s].val); + return; + } + s = readreg(s, 4); + d = writereg(d, 4); - MOV_rr(d, s); + MOV_rr(d, s); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_MOVE,(W4 d, RR4 s)) MIDFUNC(2,jff_MOVE_b_imm,(W4 d, IMM s)) { - d = writereg(d, 4); + d = writereg(d, 4); - MSR_CPSRf_i(0); - if (s & 0x80) { - MVNS_ri(d, (uae_u8) ~s); - } else { - MOVS_ri(d, (uae_u8) s); - } - - unlock2(d); + MSR_CPSRf_i(0); + if (s & 0x80) + { + MVNS_ri(d, (uae_u8) ~s); + } + else + { + MOVS_ri(d, (uae_u8) s); + } + + unlock2(d); } MENDFUNC(2,jff_MOVE_b_imm,(W4 d, IMM s)) MIDFUNC(2,jff_MOVE_w_imm,(W4 d, IMM s)) { - d = writereg(d, 4); + d = writereg(d, 4); - SIGNED16_IMM_2_REG(d, (uae_u16)s); - MSR_CPSRf_i(0); - TST_rr(d, d); + SIGNED16_IMM_2_REG(d, (uae_u16)s); + MSR_CPSRf_i(0); + TST_rr(d, d); - unlock2(d); + unlock2(d); } MENDFUNC(2,jff_MOVE_w_imm,(W4 d, IMM s)) MIDFUNC(2,jff_MOVE_l_imm,(W4 d, IMM s)) { - d = writereg(d, 4); + d = writereg(d, 4); - compemu_raw_mov_l_ri(d, s); - MSR_CPSRf_i(0); - TST_rr(d, d); + compemu_raw_mov_l_ri(d, s); + MSR_CPSRf_i(0); + TST_rr(d, d); - unlock2(d); + unlock2(d); } MENDFUNC(2,jff_MOVE_l_imm,(W4 d, IMM s)) MIDFUNC(2,jff_MOVE_b,(W4 d, RR1 s)) { - if (isconst(s)) { - COMPCALL(jff_MOVE_b_imm)(d, live.state[s].val); - return; - } + if (isconst(s)) + { + COMPCALL(jff_MOVE_b_imm)(d, live.state[s].val); + return; + } - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED8_REG_2_REG(d, s); - MSR_CPSRf_i(0); - TST_rr(d, d); + SIGNED8_REG_2_REG(d, s); + MSR_CPSRf_i(0); + TST_rr(d, d); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_MOVE_b,(W4 d, RR1 s)) MIDFUNC(2,jff_MOVE_w,(W4 d, RR2 s)) { - if (isconst(s)) { - COMPCALL(jff_MOVE_w_imm)(d, live.state[s].val); - return; - } + if (isconst(s)) + { + COMPCALL(jff_MOVE_w_imm)(d, live.state[s].val); + return; + } - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED16_REG_2_REG(d, s); - MSR_CPSRf_i(0); - TST_rr(d, d); + SIGNED16_REG_2_REG(d, s); + MSR_CPSRf_i(0); + TST_rr(d, d); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_MOVE_w,(W4 d, RR2 s)) MIDFUNC(2,jff_MOVE_l,(W4 d, RR4 s)) { - if (isconst(s)) { - COMPCALL(jff_MOVE_l_imm)(d, live.state[s].val); - return; - } + if (isconst(s)) + { + COMPCALL(jff_MOVE_l_imm)(d, live.state[s].val); + return; + } - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - MSR_CPSRf_i(0); - MOVS_rr(d, s); + MSR_CPSRf_i(0); + MOVS_rr(d, s); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_MOVE_l,(W4 d, RR4 s)) @@ -2777,27 +2863,27 @@ MENDFUNC(2,jff_MOVE_l,(W4 d, RR4 s)) */ MIDFUNC(3,jnf_MVMEL_w,(W4 d, RR4 s, IMM offset)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - LDRH_rRI(REG_WORK1, s, offset); - REVSH_rr(d, REG_WORK1); + LDRH_rRI(REG_WORK1, s, offset); + REVSH_rr(d, REG_WORK1); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_MVMEL_w,(W4 d, RR4 s, IMM offset)) MIDFUNC(3,jnf_MVMEL_l,(W4 d, RR4 s, IMM offset)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - LDR_rRI(REG_WORK1, s, offset); - REV_rr(d, REG_WORK1); + LDR_rRI(REG_WORK1, s, offset); + REV_rr(d, REG_WORK1); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_MVMEL_l,(W4 d, RR4 s, IMM offset)) @@ -2809,33 +2895,33 @@ MENDFUNC(3,jnf_MVMEL_l,(W4 d, RR4 s, IMM offset)) */ MIDFUNC(3,jnf_MVMLE_w,(RR4 d, RR4 s, IMM offset)) { - s = readreg(s, 4); - d = readreg(d, 4); + s = readreg(s, 4); + d = readreg(d, 4); - REV16_rr(REG_WORK1, s); - if (offset >= 0) - STRH_rRI(REG_WORK1, d, offset); - else - STRH_rRi(REG_WORK1, d, -offset); + REV16_rr(REG_WORK1, s); + if (offset >= 0) + STRH_rRI(REG_WORK1, d, offset); + else + STRH_rRi(REG_WORK1, d, -offset); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_MVMLE_w,(RR4 d, RR4 s, IMM offset)) MIDFUNC(3,jnf_MVMLE_l,(RR4 d, RR4 s, IMM offset)) { - s = readreg(s, 4); - d = readreg(d, 4); + s = readreg(s, 4); + d = readreg(d, 4); - REV_rr(REG_WORK1, s); - if (offset >= 0) - STR_rRI(REG_WORK1, d, offset); - else - STR_rRi(REG_WORK1, d, -offset); + REV_rr(REG_WORK1, s); + if (offset >= 0) + STR_rRI(REG_WORK1, d, offset); + else + STR_rRi(REG_WORK1, d, -offset); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_MVMLE_l,(RR4 d, RR4 s, IMM offset)) @@ -2847,39 +2933,39 @@ MENDFUNC(3,jnf_MVMLE_l,(RR4 d, RR4 s, IMM offset)) */ MIDFUNC(2,jnf_MOVE16,(RR4 d, RR4 s)) { - s = readreg(s, 4); - d = readreg(d, 4); + s = readreg(s, 4); + d = readreg(d, 4); - PUSH_REGS((1 << s) | (1 << d)); - - BIC_rri(s, s, 0x0000000F); - BIC_rri(d, d, 0x0000000F); + PUSH_REGS((1 << s) | (1 << d)); + + BIC_rri(s, s, 0x0000000F); + BIC_rri(d, d, 0x0000000F); #ifdef ARMV6T2 - MOVW_ri16(REG_WORK1, NATMEM_OFFSETX); - MOVT_ri16(REG_WORK1, NATMEM_OFFSETX >> 16); + MOVW_ri16(REG_WORK1, NATMEM_OFFSETX); + MOVT_ri16(REG_WORK1, NATMEM_OFFSETX >> 16); #else - uae_s32 offs = get_data_natmem(); - LDR_rRI(REG_WORK1, RPC_INDEX, offs); + uae_s32 offs = get_data_natmem(); + LDR_rRI(REG_WORK1, RPC_INDEX, offs); #endif - ADD_rrr(s, s, REG_WORK1); - ADD_rrr(d, d, REG_WORK1); + ADD_rrr(s, s, REG_WORK1); + ADD_rrr(d, d, REG_WORK1); - LDR_rR(REG_WORK1, s); - LDR_rRI(REG_WORK2, s, 4); - STR_rR(REG_WORK1, d); - STR_rRI(REG_WORK2, d, 4); + LDR_rR(REG_WORK1, s); + LDR_rRI(REG_WORK2, s, 4); + STR_rR(REG_WORK1, d); + STR_rRI(REG_WORK2, d, 4); - LDR_rRI(REG_WORK1, s, 8); - LDR_rRI(REG_WORK2, s, 12); - STR_rRI(REG_WORK1, d, 8); - STR_rRI(REG_WORK2, d, 12); + LDR_rRI(REG_WORK1, s, 8); + LDR_rRI(REG_WORK2, s, 12); + STR_rRI(REG_WORK1, d, 8); + STR_rRI(REG_WORK2, d, 12); - POP_REGS((1 << s) | (1 << d)); + POP_REGS((1 << s) | (1 << d)); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_MOVE16,(RR4 d, RR4 s)) @@ -2894,25 +2980,25 @@ MENDFUNC(2,jnf_MOVE16,(RR4 d, RR4 s)) */ MIDFUNC(2,jnf_MOVEA_w,(W4 d, RR2 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED16_REG_2_REG(d, s); + SIGNED16_REG_2_REG(d, s); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_MOVEA_w,(W4 d, RR2 s)) MIDFUNC(2,jnf_MOVEA_l,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - MOV_rr(d, s); + MOV_rr(d, s); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_MOVEA_l,(W4 d, RR4 s)) @@ -2931,92 +3017,92 @@ MENDFUNC(2,jnf_MOVEA_l,(W4 d, RR4 s)) */ MIDFUNC(2,jnf_MULS,(RW4 d, RR4 s)) { - s = readreg(s, 4); - d = rmw(d, 4, 4); + s = readreg(s, 4); + d = rmw(d, 4, 4); - SIGN_EXTEND_16_REG_2_REG(d, d); - SIGN_EXTEND_16_REG_2_REG(REG_WORK1, s); - MUL_rrr(d, d, REG_WORK1); + SIGN_EXTEND_16_REG_2_REG(d, d); + SIGN_EXTEND_16_REG_2_REG(REG_WORK1, s); + MUL_rrr(d, d, REG_WORK1); - unlock2(s); - unlock2(d); + unlock2(s); + unlock2(d); } MENDFUNC(2,jnf_MULS,(RW4 d, RR4 s)) MIDFUNC(2,jff_MULS,(RW4 d, RR4 s)) { - s = readreg(s, 4); - d = rmw(d, 4, 4); + s = readreg(s, 4); + d = rmw(d, 4, 4); - SIGN_EXTEND_16_REG_2_REG(d, d); - SIGN_EXTEND_16_REG_2_REG(REG_WORK1, s); + SIGN_EXTEND_16_REG_2_REG(d, d); + SIGN_EXTEND_16_REG_2_REG(REG_WORK1, s); - MSR_CPSRf_i(0); - MULS_rrr(d, d, REG_WORK1); + MSR_CPSRf_i(0); + MULS_rrr(d, d, REG_WORK1); - unlock2(s); - unlock2(d); + unlock2(s); + unlock2(d); } MENDFUNC(2,jff_MULS,(RW4 d, RR4 s)) MIDFUNC(2,jnf_MULS32,(RW4 d, RR4 s)) { - s = readreg(s, 4); - d = rmw(d, 4, 4); + s = readreg(s, 4); + d = rmw(d, 4, 4); - MUL_rrr(d, d, s); + MUL_rrr(d, d, s); - unlock2(s); - unlock2(d); + unlock2(s); + unlock2(d); } MENDFUNC(2,jnf_MULS32,(RW4 d, RR4 s)) MIDFUNC(2,jff_MULS32,(RW4 d, RR4 s)) { - s = readreg(s, 4); - d = rmw(d, 4, 4); + s = readreg(s, 4); + d = rmw(d, 4, 4); - MSR_CPSRf_i(0); - // L, H, - SMULLS_rrrr(d, REG_WORK2, d, s); - MRS_CPSR(REG_WORK1); - TEQ_rrASRi(REG_WORK2, d, 31); - CC_ORR_rri(NATIVE_CC_NE, REG_WORK1, REG_WORK1, ARM_V_FLAG); - MSR_CPSRf_r(REG_WORK1); + MSR_CPSRf_i(0); + // L, H, + SMULLS_rrrr(d, REG_WORK2, d, s); + MRS_CPSR(REG_WORK1); + TEQ_rrASRi(REG_WORK2, d, 31); + CC_ORR_rri(NATIVE_CC_NE, REG_WORK1, REG_WORK1, ARM_V_FLAG); + MSR_CPSRf_r(REG_WORK1); - unlock2(s); - unlock2(d); + unlock2(s); + unlock2(d); } MENDFUNC(2,jff_MULS32,(RW4 d, RR4 s)) MIDFUNC(2,jnf_MULS64,(RW4 d, RW4 s)) { - s = rmw(s, 4, 4); - d = rmw(d, 4, 4); + s = rmw(s, 4, 4); + d = rmw(d, 4, 4); - // L, H, - SMULL_rrrr(d, s, d, s); + // L, H, + SMULL_rrrr(d, s, d, s); - unlock2(s); - unlock2(d); + unlock2(s); + unlock2(d); } MENDFUNC(2,jnf_MULS64,(RW4 d, RW4 s)) MIDFUNC(2,jff_MULS64,(RW4 d, RW4 s)) { - s = rmw(s, 4, 4); - d = rmw(d, 4, 4); + s = rmw(s, 4, 4); + d = rmw(d, 4, 4); - MSR_CPSRf_i(0); - // L, H, - SMULLS_rrrr(d, s, d, s); - MRS_CPSR(REG_WORK1); - TEQ_rrASRi(s, d, 31); - CC_ORR_rri(NATIVE_CC_NE, REG_WORK1, REG_WORK1, ARM_V_FLAG); - MSR_CPSRf_r(REG_WORK1); + MSR_CPSRf_i(0); + // L, H, + SMULLS_rrrr(d, s, d, s); + MRS_CPSR(REG_WORK1); + TEQ_rrASRi(s, d, 31); + CC_ORR_rri(NATIVE_CC_NE, REG_WORK1, REG_WORK1, ARM_V_FLAG); + MSR_CPSRf_r(REG_WORK1); - unlock2(s); - unlock2(d); + unlock2(s); + unlock2(d); } MENDFUNC(2,jff_MULS64,(RW4 d, RW4 s)) @@ -3035,93 +3121,93 @@ MENDFUNC(2,jff_MULS64,(RW4 d, RW4 s)) */ MIDFUNC(2,jnf_MULU,(RW4 d, RR4 s)) { - s = readreg(s, 4); - d = rmw(d, 4, 4); + s = readreg(s, 4); + d = rmw(d, 4, 4); - ZERO_EXTEND_16_REG_2_REG(d, d); - ZERO_EXTEND_16_REG_2_REG(REG_WORK1, s); + ZERO_EXTEND_16_REG_2_REG(d, d); + ZERO_EXTEND_16_REG_2_REG(REG_WORK1, s); - MUL_rrr(d, d, REG_WORK1); + MUL_rrr(d, d, REG_WORK1); - unlock2(s); - unlock2(d); + unlock2(s); + unlock2(d); } MENDFUNC(2,jnf_MULU,(RW4 d, RR4 s)) MIDFUNC(2,jff_MULU,(RW4 d, RR4 s)) { - s = readreg(s, 4); - d = rmw(d, 4, 4); + s = readreg(s, 4); + d = rmw(d, 4, 4); - ZERO_EXTEND_16_REG_2_REG(d, d); - ZERO_EXTEND_16_REG_2_REG(REG_WORK1, s); + ZERO_EXTEND_16_REG_2_REG(d, d); + ZERO_EXTEND_16_REG_2_REG(REG_WORK1, s); - MSR_CPSRf_i(0); - MULS_rrr(d, d, REG_WORK1); + MSR_CPSRf_i(0); + MULS_rrr(d, d, REG_WORK1); - unlock2(s); - unlock2(d); + unlock2(s); + unlock2(d); } MENDFUNC(2,jff_MULU,(RW4 d, RR4 s)) MIDFUNC(2,jnf_MULU32,(RW4 d, RR4 s)) { - s = readreg(s, 4); - d = rmw(d, 4, 4); + s = readreg(s, 4); + d = rmw(d, 4, 4); - MUL_rrr(d, d, s); + MUL_rrr(d, d, s); - unlock2(s); - unlock2(d); + unlock2(s); + unlock2(d); } MENDFUNC(2,jnf_MULU32,(RW4 d, RR4 s)) MIDFUNC(2,jff_MULU32,(RW4 d, RR4 s)) { - s = readreg(s, 4); - d = rmw(d, 4, 4); + s = readreg(s, 4); + d = rmw(d, 4, 4); - // L, H, - MSR_CPSRf_i(0); - UMULLS_rrrr(d, REG_WORK2, d, s); - MRS_CPSR(REG_WORK1); - TST_rr(REG_WORK2, REG_WORK2); - CC_ORR_rri(NATIVE_CC_NE, REG_WORK1, REG_WORK1, ARM_V_FLAG); - MSR_CPSRf_r(REG_WORK1); + // L, H, + MSR_CPSRf_i(0); + UMULLS_rrrr(d, REG_WORK2, d, s); + MRS_CPSR(REG_WORK1); + TST_rr(REG_WORK2, REG_WORK2); + CC_ORR_rri(NATIVE_CC_NE, REG_WORK1, REG_WORK1, ARM_V_FLAG); + MSR_CPSRf_r(REG_WORK1); - unlock2(s); - unlock2(d); + unlock2(s); + unlock2(d); } MENDFUNC(2,jff_MULU32,(RW4 d, RR4 s)) MIDFUNC(2,jnf_MULU64,(RW4 d, RW4 s)) { - s = rmw(s, 4, 4); - d = rmw(d, 4, 4); + s = rmw(s, 4, 4); + d = rmw(d, 4, 4); - // L, H, - UMULL_rrrr(d, s, d, s); + // L, H, + UMULL_rrrr(d, s, d, s); - unlock2(s); - unlock2(d); + unlock2(s); + unlock2(d); } MENDFUNC(2,jnf_MULU64,(RW4 d, RW4 s)) MIDFUNC(2,jff_MULU64,(RW4 d, RW4 s)) { - s = rmw(s, 4, 4); - d = rmw(d, 4, 4); + s = rmw(s, 4, 4); + d = rmw(d, 4, 4); - // L, H, - MSR_CPSRf_i(0); - UMULLS_rrrr(d, s, d, s); - MRS_CPSR(REG_WORK1); - TST_rr(s, s); - CC_ORR_rri(NATIVE_CC_NE, REG_WORK1, REG_WORK1, ARM_V_FLAG); - MSR_CPSRf_r(REG_WORK1); + // L, H, + MSR_CPSRf_i(0); + UMULLS_rrrr(d, s, d, s); + MRS_CPSR(REG_WORK1); + TST_rr(s, s); + CC_ORR_rri(NATIVE_CC_NE, REG_WORK1, REG_WORK1, ARM_V_FLAG); + MSR_CPSRf_r(REG_WORK1); - unlock2(s); - unlock2(d); + unlock2(s); + unlock2(d); } MENDFUNC(2,jff_MULU64,(RW4 d, RW4 s)) @@ -3140,92 +3226,92 @@ MENDFUNC(2,jff_MULU64,(RW4 d, RW4 s)) */ MIDFUNC(2,jnf_NEG_b,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED8_REG_2_REG(REG_WORK1, s); - RSB_rri(d, REG_WORK1, 0); + SIGNED8_REG_2_REG(REG_WORK1, s); + RSB_rri(d, REG_WORK1, 0); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_NEG_b,(W4 d, RR4 s)) MIDFUNC(2,jnf_NEG_w,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED16_REG_2_REG(REG_WORK1, s); - RSB_rri(d, REG_WORK1, 0); + SIGNED16_REG_2_REG(REG_WORK1, s); + RSB_rri(d, REG_WORK1, 0); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_NEG_w,(W4 d, RR4 s)) MIDFUNC(2,jnf_NEG_l,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - RSB_rri(d, s, 0); + RSB_rri(d, s, 0); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_NEG_l,(W4 d, RR4 s)) MIDFUNC(2,jff_NEG_b,(W4 d, RR1 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED8_REG_2_REG(REG_WORK1, s); - RSBS_rri(d, REG_WORK1, 0); - - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); - DUPLICACTE_CARRY_FROM_REG(REG_WORK1) + SIGNED8_REG_2_REG(REG_WORK1, s); + RSBS_rri(d, REG_WORK1, 0); - unlock2(d); - unlock2(s); + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); + DUPLICACTE_CARRY_FROM_REG(REG_WORK1) + + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_NEG_b,(W4 d, RR1 s)) MIDFUNC(2,jff_NEG_w,(W4 d, RR2 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED16_REG_2_REG(REG_WORK1, s); - RSBS_rri(d, REG_WORK1, 0); + SIGNED16_REG_2_REG(REG_WORK1, s); + RSBS_rri(d, REG_WORK1, 0); - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); - DUPLICACTE_CARRY_FROM_REG(REG_WORK1) + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); + DUPLICACTE_CARRY_FROM_REG(REG_WORK1) - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_NEG_w,(W4 d, RR2 s)) MIDFUNC(2,jff_NEG_l,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - RSBS_rri(d, s, 0); + RSBS_rri(d, s, 0); - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); - DUPLICACTE_CARRY_FROM_REG(REG_WORK1) + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); + DUPLICACTE_CARRY_FROM_REG(REG_WORK1) - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_NEG_l,(W4 d, RR4 s)) @@ -3246,166 +3332,166 @@ MENDFUNC(2,jff_NEG_l,(W4 d, RR4 s)) */ MIDFUNC(2,jnf_NEGX_b,(W4 d, RR4 s)) { - int x = readreg(FLAGX, 4); - s = readreg(s, 4); - d = writereg(d, 4); - clobber_flags(); - - // Restore inverted X to carry (don't care about other flags) - LSL_rri(REG_WORK1, x, 29); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); + int x = readreg(FLAGX, 4); + s = readreg(s, 4); + d = writereg(d, 4); + clobber_flags(); - SIGNED8_REG_2_REG(REG_WORK1, s); - RSC_rri(d, REG_WORK1, 0); + // Restore inverted X to carry (don't care about other flags) + LSL_rri(REG_WORK1, x, 29); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); - unlock2(d); - unlock2(s); - unlock2(x); + SIGNED8_REG_2_REG(REG_WORK1, s); + RSC_rri(d, REG_WORK1, 0); + + unlock2(d); + unlock2(s); + unlock2(x); } MENDFUNC(2,jnf_NEGX_b,(W4 d, RR4 s)) MIDFUNC(2,jnf_NEGX_w,(W4 d, RR4 s)) { - int x = readreg(FLAGX, 4); - s = readreg(s, 4); - d = writereg(d, 4); + int x = readreg(FLAGX, 4); + s = readreg(s, 4); + d = writereg(d, 4); - clobber_flags(); + clobber_flags(); - // Restore inverted X to carry (don't care about other flags) - LSL_rri(REG_WORK1, x, 29); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); + // Restore inverted X to carry (don't care about other flags) + LSL_rri(REG_WORK1, x, 29); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); - SIGNED16_REG_2_REG(REG_WORK1, s); - RSC_rri(d, REG_WORK1, 0); + SIGNED16_REG_2_REG(REG_WORK1, s); + RSC_rri(d, REG_WORK1, 0); - unlock2(d); - unlock2(s); - unlock2(x); + unlock2(d); + unlock2(s); + unlock2(x); } MENDFUNC(2,jnf_NEGX_w,(W4 d, RR4 s)) MIDFUNC(2,jnf_NEGX_l,(W4 d, RR4 s)) { - int x = readreg(FLAGX, 4); - s = readreg(s, 4); - d = writereg(d, 4); + int x = readreg(FLAGX, 4); + s = readreg(s, 4); + d = writereg(d, 4); - clobber_flags(); + clobber_flags(); - // Restore inverted X to carry (don't care about other flags) - LSL_rri(REG_WORK1, x, 29); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); + // Restore inverted X to carry (don't care about other flags) + LSL_rri(REG_WORK1, x, 29); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); - RSC_rri(d, s, 0); + RSC_rri(d, s, 0); - unlock2(d); - unlock2(s); - unlock2(x); + unlock2(d); + unlock2(s); + unlock2(x); } MENDFUNC(2,jnf_NEGX_l,(W4 d, RR4 s)) MIDFUNC(2,jff_NEGX_b,(W4 d, RR1 s)) { - s = readreg(s, 4); - d = writereg(d, 4); - int x = rmw(FLAGX, 4, 4); + s = readreg(s, 4); + d = writereg(d, 4); + int x = rmw(FLAGX, 4, 4); - MVN_ri(REG_WORK2, 0); - CC_MVN_ri(NATIVE_CC_NE, REG_WORK2, ARM_Z_FLAG); + MVN_ri(REG_WORK2, 0); + CC_MVN_ri(NATIVE_CC_NE, REG_WORK2, ARM_Z_FLAG); - // Restore inverted X to carry (don't care about other flags) - LSL_rri(REG_WORK1, x, 29); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); + // Restore inverted X to carry (don't care about other flags) + LSL_rri(REG_WORK1, x, 29); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); - SIGNED8_REG_2_REG(REG_WORK1, s); - RSCS_rri(d, REG_WORK1, 0); + SIGNED8_REG_2_REG(REG_WORK1, s); + RSCS_rri(d, REG_WORK1, 0); - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - AND_rrr(REG_WORK1, REG_WORK1, REG_WORK2); + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + AND_rrr(REG_WORK1, REG_WORK1, REG_WORK2); #ifdef ARMV6T2 - UBFX_rrii(x, REG_WORK1, 29, 1); // Duplicate carry + UBFX_rrii(x, REG_WORK1, 29, 1); // Duplicate carry #else - LSR_rri(x, REG_WORK1, 29); - AND_rri(x, x, 1); + LSR_rri(x, REG_WORK1, 29); + AND_rri(x, x, 1); #endif - MSR_CPSRf_r(REG_WORK1); + MSR_CPSRf_r(REG_WORK1); - unlock2(x); - unlock2(d); - unlock2(s); + unlock2(x); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_NEGX_b,(W4 d, RR1 s)) MIDFUNC(2,jff_NEGX_w,(W4 d, RR2 s)) { - s = readreg(s, 4); - d = writereg(d, 4); - int x = rmw(FLAGX, 4, 4); + s = readreg(s, 4); + d = writereg(d, 4); + int x = rmw(FLAGX, 4, 4); - MVN_ri(REG_WORK2, 0); - CC_MVN_ri(NATIVE_CC_NE, REG_WORK2, ARM_Z_FLAG); + MVN_ri(REG_WORK2, 0); + CC_MVN_ri(NATIVE_CC_NE, REG_WORK2, ARM_Z_FLAG); - // Restore inverted X to carry (don't care about other flags) - LSL_rri(REG_WORK1, x, 29); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); + // Restore inverted X to carry (don't care about other flags) + LSL_rri(REG_WORK1, x, 29); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); - SIGNED16_REG_2_REG(REG_WORK1, s); - RSCS_rri(d, REG_WORK1, 0); + SIGNED16_REG_2_REG(REG_WORK1, s); + RSCS_rri(d, REG_WORK1, 0); - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - AND_rrr(REG_WORK1, REG_WORK1, REG_WORK2); + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + AND_rrr(REG_WORK1, REG_WORK1, REG_WORK2); #ifdef ARMV6T2 - UBFX_rrii(x, REG_WORK1, 29, 1); // Duplicate carry + UBFX_rrii(x, REG_WORK1, 29, 1); // Duplicate carry #else - LSR_rri(x, REG_WORK1, 29); - AND_rri(x, x, 1); + LSR_rri(x, REG_WORK1, 29); + AND_rri(x, x, 1); #endif - MSR_CPSRf_r(REG_WORK1); + MSR_CPSRf_r(REG_WORK1); - unlock2(x); - unlock2(d); - unlock2(s); + unlock2(x); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_NEGX_w,(W4 d, RR2 s)) MIDFUNC(2,jff_NEGX_l,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); - int x = rmw(FLAGX, 4, 4); + s = readreg(s, 4); + d = writereg(d, 4); + int x = rmw(FLAGX, 4, 4); - MVN_ri(REG_WORK2, 0); - CC_MVN_ri(NATIVE_CC_NE, REG_WORK2, ARM_Z_FLAG); + MVN_ri(REG_WORK2, 0); + CC_MVN_ri(NATIVE_CC_NE, REG_WORK2, ARM_Z_FLAG); - // Restore inverted X to carry (don't care about other flags) - LSL_rri(REG_WORK1, x, 29); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); + // Restore inverted X to carry (don't care about other flags) + LSL_rri(REG_WORK1, x, 29); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); - RSCS_rri(d, s, 0); + RSCS_rri(d, s, 0); - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - AND_rrr(REG_WORK1, REG_WORK1, REG_WORK2); + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + AND_rrr(REG_WORK1, REG_WORK1, REG_WORK2); #ifdef ARMV6T2 - UBFX_rrii(x, REG_WORK1, 29, 1); // Duplicate carry + UBFX_rrii(x, REG_WORK1, 29, 1); // Duplicate carry #else - LSR_rri(x, REG_WORK1, 29); - AND_rri(x, x, 1); + LSR_rri(x, REG_WORK1, 29); + AND_rri(x, x, 1); #endif - MSR_CPSRf_r(REG_WORK1); + MSR_CPSRf_r(REG_WORK1); - unlock2(x); - unlock2(d); - unlock2(s); + unlock2(x); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_NEGX_l,(W4 d, RR4 s)) @@ -3424,54 +3510,54 @@ MENDFUNC(2,jff_NEGX_l,(W4 d, RR4 s)) */ MIDFUNC(2,jnf_NOT,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - MVN_rr(d, s); + MVN_rr(d, s); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_NOT,(W4 d, RR4 s)) MIDFUNC(2,jff_NOT_b,(W4 d, RR1 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED8_REG_2_REG(d, s); - MSR_CPSRf_i(0); - MVNS_rr(d, d); + SIGNED8_REG_2_REG(d, s); + MSR_CPSRf_i(0); + MVNS_rr(d, d); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_NOT_b,(W4 d, RR1 s)) MIDFUNC(2,jff_NOT_w,(W4 d, RR2 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED16_REG_2_REG(d, s); - MSR_CPSRf_i(0); - MVNS_rr(d, d); + SIGNED16_REG_2_REG(d, s); + MSR_CPSRf_i(0); + MVNS_rr(d, d); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_NOT_w,(W4 d, RR2 s)) MIDFUNC(2,jff_NOT_l,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - MSR_CPSRf_i(0); - MVNS_rr(d, s); + MSR_CPSRf_i(0); + MVNS_rr(d, s); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_NOT_l,(W4 d, RR4 s)) @@ -3491,69 +3577,70 @@ MENDFUNC(2,jff_NOT_l,(W4 d, RR4 s)) */ MIDFUNC(3,jnf_OR,(W4 d, RR4 s, RR4 v)) { - if (isconst(s) && isconst(v)) { - set_const(d, live.state[s].val | live.state[v].val); - return; - } + if (isconst(s) && isconst(v)) + { + set_const(d, live.state[s].val | live.state[v].val); + return; + } - v = readreg(v, 4); - s = readreg(s, 4); - d = writereg(d, 4); + v = readreg(v, 4); + s = readreg(s, 4); + d = writereg(d, 4); - ORR_rrr(d, s, v); + ORR_rrr(d, s, v); - unlock2(v); - unlock2(d); - unlock2(s); + unlock2(v); + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_OR,(RW4 d, RR4 s, RR4 v)) MIDFUNC(3,jff_OR_b,(W4 d, RR1 s, RR1 v)) { - v = readreg(v, 4); - s = readreg(s, 4); - d = writereg(d, 4); + v = readreg(v, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED8_REG_2_REG(REG_WORK1, s); - SIGNED8_REG_2_REG(REG_WORK2, v); - MSR_CPSRf_i(0); - ORRS_rrr(d, REG_WORK1, REG_WORK2); + SIGNED8_REG_2_REG(REG_WORK1, s); + SIGNED8_REG_2_REG(REG_WORK2, v); + MSR_CPSRf_i(0); + ORRS_rrr(d, REG_WORK1, REG_WORK2); - unlock2(v); - unlock2(d); - unlock2(s); + unlock2(v); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_OR_b,(RW4 d, RR1 s, RR1 v)) MIDFUNC(3,jff_OR_w,(W4 d, RR2 s, RR2 v)) { - v = readreg(v, 4); - s = readreg(s, 4); - d = writereg(d, 4); + v = readreg(v, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SIGNED16_REG_2_REG(REG_WORK1, s); - SIGNED16_REG_2_REG(REG_WORK2, v); - MSR_CPSRf_i(0); - ORRS_rrr(d, REG_WORK1, REG_WORK2); + SIGNED16_REG_2_REG(REG_WORK1, s); + SIGNED16_REG_2_REG(REG_WORK2, v); + MSR_CPSRf_i(0); + ORRS_rrr(d, REG_WORK1, REG_WORK2); - unlock2(v); - unlock2(d); - unlock2(s); + unlock2(v); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_OR_w,(RW4 d, RR2 s, RR2 v)) MIDFUNC(3,jff_OR_l,(W4 d, RR4 s, RR4 v)) { - v = readreg(v, 4); - s = readreg(s, 4); - d = writereg(d, 4); + v = readreg(v, 4); + s = readreg(s, 4); + d = writereg(d, 4); - MSR_CPSRf_i(0); - ORRS_rrr(d, s, v); + MSR_CPSRf_i(0); + ORRS_rrr(d, s, v); - unlock2(v); - unlock2(d); - unlock2(s); + unlock2(v); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_OR_l,(RW4 d, RR4 s, RR4 v)) @@ -3572,15 +3659,16 @@ MENDFUNC(3,jff_OR_l,(RW4 d, RR4 s, RR4 v)) */ MIDFUNC(1,jff_ORSR,(IMM s, IMM x)) { - MRS_CPSR(REG_WORK1); - ORR_rri(REG_WORK1, REG_WORK1, s); - MSR_CPSRf_r(REG_WORK1); + MRS_CPSR(REG_WORK1); + ORR_rri(REG_WORK1, REG_WORK1, s); + MSR_CPSRf_r(REG_WORK1); - if (x) { - int f = writereg(FLAGX, 4); - MOV_ri(f, 1); - unlock2(f); - } + if (x) + { + int f = writereg(FLAGX, 4); + MOV_ri(f, 1); + unlock2(f); + } } MENDFUNC(1,jff_ORSR,(IMM s)) @@ -3601,317 +3689,341 @@ MENDFUNC(1,jff_ORSR,(IMM s)) */ MIDFUNC(3,jnf_ROL_b_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - if(i & 0x1f) { - LSL_rri(d, s, 24); - ORR_rrrLSRi(d, d, d, 8); - ORR_rrrLSRi(d, d, d, 16); - ROR_rri(d, d, (32 - (i & 0x1f))); - } else { - MOV_rr(d, s); - } - - unlock2(d); - unlock2(s); + if(i & 0x1f) + { + LSL_rri(d, s, 24); + ORR_rrrLSRi(d, d, d, 8); + ORR_rrrLSRi(d, d, d, 16); + ROR_rri(d, d, (32 - (i & 0x1f))); + } + else + { + MOV_rr(d, s); + } + + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_ROL_b_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jnf_ROL_w_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - if(i & 0x1f) { - PKHBT_rrrLSLi(d, s, s, 16); - ROR_rri(d, d, (32 - (i & 0x1f))); - } else { - MOV_rr(d, s); - } + if(i & 0x1f) + { + PKHBT_rrrLSLi(d, s, s, 16); + ROR_rri(d, d, (32 - (i & 0x1f))); + } + else + { + MOV_rr(d, s); + } - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_ROL_w_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jnf_ROL_l_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - if(i & 0x1f) { - ROR_rri(d, s, (32 - (i & 0x1f))); - } else { - MOV_rr(d, s); - } - - unlock2(d); - unlock2(s); + if(i & 0x1f) + { + ROR_rri(d, s, (32 - (i & 0x1f))); + } + else + { + MOV_rr(d, s); + } + + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_ROL_l_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jff_ROL_b_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - LSL_rri(d, s, 24); - ORR_rrrLSRi(d, d, d, 8); - ORR_rrrLSRi(d, d, d, 16); - MSR_CPSRf_i(0); - if (i) { - if(i & 0x1f) - RORS_rri(d, d, (32 - (i & 0x1f))); - else - TST_rr(d, d); + LSL_rri(d, s, 24); + ORR_rrrLSRi(d, d, d, 8); + ORR_rrrLSRi(d, d, d, 16); + MSR_CPSRf_i(0); + if (i) + { + if(i & 0x1f) + RORS_rri(d, d, (32 - (i & 0x1f))); + else + TST_rr(d, d); - MRS_CPSR(REG_WORK2); + MRS_CPSR(REG_WORK2); #ifdef ARMV6T2 - BFI_rrii(REG_WORK2, d, 29, 29); // Handle C flag + BFI_rrii(REG_WORK2, d, 29, 29); // Handle C flag #else - TST_ri(d, 1); - CC_ORR_rri(NATIVE_CC_NE, REG_WORK2, REG_WORK2, ARM_C_FLAG); - CC_BIC_rri(NATIVE_CC_EQ, REG_WORK2, REG_WORK2, ARM_C_FLAG); + TST_ri(d, 1); + CC_ORR_rri(NATIVE_CC_NE, REG_WORK2, REG_WORK2, ARM_C_FLAG); + CC_BIC_rri(NATIVE_CC_EQ, REG_WORK2, REG_WORK2, ARM_C_FLAG); #endif - MSR_CPSRf_r(REG_WORK2); - } else { - TST_rr(d, d); - } + MSR_CPSRf_r(REG_WORK2); + } + else + { + TST_rr(d, d); + } - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_ROL_b_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jff_ROL_w_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - PKHBT_rrrLSLi(d, s, s, 16); - MSR_CPSRf_i(0); - if (i) { - if(i & 0x1f) - RORS_rri(d, d, (32 - (i & 0x1f))); - else - TST_rr(d, d); - - MRS_CPSR(REG_WORK2); + PKHBT_rrrLSLi(d, s, s, 16); + MSR_CPSRf_i(0); + if (i) + { + if(i & 0x1f) + RORS_rri(d, d, (32 - (i & 0x1f))); + else + TST_rr(d, d); + + MRS_CPSR(REG_WORK2); #ifdef ARMV6T2 - BFI_rrii(REG_WORK2, d, 29, 29); // Handle C flag + BFI_rrii(REG_WORK2, d, 29, 29); // Handle C flag #else - TST_ri(d, 1); - CC_ORR_rri(NATIVE_CC_NE, REG_WORK2, REG_WORK2, ARM_C_FLAG); - CC_BIC_rri(NATIVE_CC_EQ, REG_WORK2, REG_WORK2, ARM_C_FLAG); + TST_ri(d, 1); + CC_ORR_rri(NATIVE_CC_NE, REG_WORK2, REG_WORK2, ARM_C_FLAG); + CC_BIC_rri(NATIVE_CC_EQ, REG_WORK2, REG_WORK2, ARM_C_FLAG); #endif - MSR_CPSRf_r(REG_WORK2); - } else { - TST_rr(d, d); - } + MSR_CPSRf_r(REG_WORK2); + } + else + { + TST_rr(d, d); + } - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_ROL_w_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jff_ROL_l_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - MSR_CPSRf_i(0); - if (i) { - if(i & 0x1f) - RORS_rri(d, s, (32 - (i & 0x1f))); - else - MOVS_rr(d, s); + MSR_CPSRf_i(0); + if (i) + { + if(i & 0x1f) + RORS_rri(d, s, (32 - (i & 0x1f))); + else + MOVS_rr(d, s); - MRS_CPSR(REG_WORK2); + MRS_CPSR(REG_WORK2); #ifdef ARMV6T2 - BFI_rrii(REG_WORK2, d, 29, 29); // Handle C flag + BFI_rrii(REG_WORK2, d, 29, 29); // Handle C flag #else - TST_ri(d, 1); - CC_ORR_rri(NATIVE_CC_NE, REG_WORK2, REG_WORK2, ARM_C_FLAG); - CC_BIC_rri(NATIVE_CC_EQ, REG_WORK2, REG_WORK2, ARM_C_FLAG); + TST_ri(d, 1); + CC_ORR_rri(NATIVE_CC_NE, REG_WORK2, REG_WORK2, ARM_C_FLAG); + CC_BIC_rri(NATIVE_CC_EQ, REG_WORK2, REG_WORK2, ARM_C_FLAG); #endif - MSR_CPSRf_r(REG_WORK2); - } else { - MOVS_rr(d, s); - } + MSR_CPSRf_r(REG_WORK2); + } + else + { + MOVS_rr(d, s); + } - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_ROL_l_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jnf_ROL_b,(W4 d, RR4 s, RR4 i)) { - if (isconst(i)) { - COMPCALL(jnf_ROL_b_imm)(d, s, (uae_u8)live.state[i].val); - return; - } - s = readreg(s, 4); - i = readreg(i, 4); - d = writereg(d, 4); + if (isconst(i)) + { + COMPCALL(jnf_ROL_b_imm)(d, s, (uae_u8)live.state[i].val); + return; + } + s = readreg(s, 4); + i = readreg(i, 4); + d = writereg(d, 4); - AND_rri(REG_WORK1, i, 0x1f); - RSB_rri(REG_WORK1, REG_WORK1, 32); + AND_rri(REG_WORK1, i, 0x1f); + RSB_rri(REG_WORK1, REG_WORK1, 32); - LSL_rri(d, s, 24); - ORR_rrrLSRi(d, d, d, 8); - ORR_rrrLSRi(d, d, d, 16); - ROR_rrr(d, d, REG_WORK1); + LSL_rri(d, s, 24); + ORR_rrrLSRi(d, d, d, 8); + ORR_rrrLSRi(d, d, d, 16); + ROR_rrr(d, d, REG_WORK1); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jnf_ROL_b,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jnf_ROL_w,(W4 d, RR4 s, RR4 i)) { - if (isconst(i)) { - COMPCALL(jnf_ROL_w_imm)(d, s, (uae_u8)live.state[i].val); - return; - } - s = readreg(s, 4); - i = readreg(i, 4); - d = writereg(d, 4); + if (isconst(i)) + { + COMPCALL(jnf_ROL_w_imm)(d, s, (uae_u8)live.state[i].val); + return; + } + s = readreg(s, 4); + i = readreg(i, 4); + d = writereg(d, 4); - AND_rri(REG_WORK1, i, 0x1f); - RSB_rri(REG_WORK1, REG_WORK1, 32); + AND_rri(REG_WORK1, i, 0x1f); + RSB_rri(REG_WORK1, REG_WORK1, 32); - PKHBT_rrrLSLi(d, s, s, 16); - ROR_rrr(d, d, REG_WORK1); + PKHBT_rrrLSLi(d, s, s, 16); + ROR_rrr(d, d, REG_WORK1); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jnf_ROL_w,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jnf_ROL_l,(W4 d, RR4 s, RR4 i)) { - if (isconst(i)) { - COMPCALL(jnf_ROL_l_imm)(d, s, (uae_u8)live.state[i].val); - return; - } - s = readreg(s, 4); - i = readreg(i, 4); - d = writereg(d, 4); + if (isconst(i)) + { + COMPCALL(jnf_ROL_l_imm)(d, s, (uae_u8)live.state[i].val); + return; + } + s = readreg(s, 4); + i = readreg(i, 4); + d = writereg(d, 4); - AND_rri(REG_WORK1, i, 0x1f); - RSB_rri(REG_WORK1, REG_WORK1, 32); + AND_rri(REG_WORK1, i, 0x1f); + RSB_rri(REG_WORK1, REG_WORK1, 32); - ROR_rrr(d, s, REG_WORK1); + ROR_rrr(d, s, REG_WORK1); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jnf_ROL_l,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jff_ROL_b,(W4 d, RR4 s, RR4 i)) { - if (isconst(i)) { - COMPCALL(jff_ROL_b_imm)(d, s, (uae_u8)live.state[i].val); - return; - } + if (isconst(i)) + { + COMPCALL(jff_ROL_b_imm)(d, s, (uae_u8)live.state[i].val); + return; + } - s = readreg(s, 4); - i = readreg(i, 4); - d = writereg(d, 4); + s = readreg(s, 4); + i = readreg(i, 4); + d = writereg(d, 4); - AND_rri(REG_WORK1, i, 0x1f); - RSB_rri(REG_WORK1, REG_WORK1, 32); + AND_rri(REG_WORK1, i, 0x1f); + RSB_rri(REG_WORK1, REG_WORK1, 32); - LSL_rri(d, s, 24); - ORR_rrrLSRi(d, d, d, 8); - ORR_rrrLSRi(d, d, d, 16); - MSR_CPSRf_i(0); - RORS_rrr(d, d, REG_WORK1); + LSL_rri(d, s, 24); + ORR_rrrLSRi(d, d, d, 8); + ORR_rrrLSRi(d, d, d, 16); + MSR_CPSRf_i(0); + RORS_rrr(d, d, REG_WORK1); - MRS_CPSR(REG_WORK2); + MRS_CPSR(REG_WORK2); #ifdef ARMV6T2 - BFI_rrii(REG_WORK2, d, 29, 29); // Handle C flag + BFI_rrii(REG_WORK2, d, 29, 29); // Handle C flag #else - TST_ri(d, 1); - ORR_rri(REG_WORK2, REG_WORK2, ARM_C_FLAG); - CC_BIC_rri(NATIVE_CC_EQ, REG_WORK2, REG_WORK2, ARM_C_FLAG); + TST_ri(d, 1); + ORR_rri(REG_WORK2, REG_WORK2, ARM_C_FLAG); + CC_BIC_rri(NATIVE_CC_EQ, REG_WORK2, REG_WORK2, ARM_C_FLAG); #endif - MSR_CPSRf_r(REG_WORK2); + MSR_CPSRf_r(REG_WORK2); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jff_ROL_b,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jff_ROL_w,(W4 d, RR4 s, RR4 i)) { - if (isconst(i)) { - COMPCALL(jff_ROL_w_imm)(d, s, (uae_u8)live.state[i].val); - return; - } + if (isconst(i)) + { + COMPCALL(jff_ROL_w_imm)(d, s, (uae_u8)live.state[i].val); + return; + } - s = readreg(s, 4); - i = readreg(i, 4); - d = writereg(d, 4); + s = readreg(s, 4); + i = readreg(i, 4); + d = writereg(d, 4); - AND_rri(REG_WORK1, i, 0x1f); - RSB_rri(REG_WORK1, REG_WORK1, 32); + AND_rri(REG_WORK1, i, 0x1f); + RSB_rri(REG_WORK1, REG_WORK1, 32); - PKHBT_rrrLSLi(d, s, s, 16); - MSR_CPSRf_i(0); - RORS_rrr(d, d, REG_WORK1); + PKHBT_rrrLSLi(d, s, s, 16); + MSR_CPSRf_i(0); + RORS_rrr(d, d, REG_WORK1); - MRS_CPSR(REG_WORK2); + MRS_CPSR(REG_WORK2); #ifdef ARMV6T2 - BFI_rrii(REG_WORK2, d, 29, 29); // Handle C flag + BFI_rrii(REG_WORK2, d, 29, 29); // Handle C flag #else - TST_ri(d, 1); - ORR_rri(REG_WORK2, REG_WORK2, ARM_C_FLAG); - CC_BIC_rri(NATIVE_CC_EQ, REG_WORK2, REG_WORK2, ARM_C_FLAG); + TST_ri(d, 1); + ORR_rri(REG_WORK2, REG_WORK2, ARM_C_FLAG); + CC_BIC_rri(NATIVE_CC_EQ, REG_WORK2, REG_WORK2, ARM_C_FLAG); #endif - MSR_CPSRf_r(REG_WORK2); + MSR_CPSRf_r(REG_WORK2); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jff_ROL_w,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jff_ROL_l,(W4 d, RR4 s, RR4 i)) { - if (isconst(i)) { - COMPCALL(jff_ROL_l_imm)(d, s, (uae_u8)live.state[i].val); - return; - } + if (isconst(i)) + { + COMPCALL(jff_ROL_l_imm)(d, s, (uae_u8)live.state[i].val); + return; + } - s = readreg(s, 4); - i = readreg(i, 4); - d = writereg(d, 4); + s = readreg(s, 4); + i = readreg(i, 4); + d = writereg(d, 4); - AND_rri(REG_WORK1, i, 0x1f); - RSB_rri(REG_WORK1, REG_WORK1, 32); + AND_rri(REG_WORK1, i, 0x1f); + RSB_rri(REG_WORK1, REG_WORK1, 32); - MSR_CPSRf_i(0); - RORS_rrr(d, s, REG_WORK1); + MSR_CPSRf_i(0); + RORS_rrr(d, s, REG_WORK1); - MRS_CPSR(REG_WORK2); + MRS_CPSR(REG_WORK2); #ifdef ARMV6T2 - BFI_rrii(REG_WORK2, d, 29, 29); // Handle C flag + BFI_rrii(REG_WORK2, d, 29, 29); // Handle C flag #else - TST_ri(d, 1); - ORR_rri(REG_WORK2, REG_WORK2, ARM_C_FLAG); - CC_BIC_rri(NATIVE_CC_EQ, REG_WORK2, REG_WORK2, ARM_C_FLAG); + TST_ri(d, 1); + ORR_rri(REG_WORK2, REG_WORK2, ARM_C_FLAG); + CC_BIC_rri(NATIVE_CC_EQ, REG_WORK2, REG_WORK2, ARM_C_FLAG); #endif - MSR_CPSRf_r(REG_WORK2); + MSR_CPSRf_r(REG_WORK2); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jff_ROL_l,(W4 d, RR4 s, RR4 i)) @@ -3930,38 +4042,38 @@ MENDFUNC(3,jff_ROL_l,(W4 d, RR4 s, RR4 i)) */ MIDFUNC(2,jnf_ROLW,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - PKHBT_rrrLSLi(d, s, s, 16); - ROR_rri(d, d, (32 - 1)); + PKHBT_rrrLSLi(d, s, s, 16); + ROR_rri(d, d, (32 - 1)); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_ROLW,(W4 d, RR4 s)) MIDFUNC(2,jff_ROLW,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - PKHBT_rrrLSLi(d, s, s, 16); - MSR_CPSRf_i(0); - RORS_rri(d, d, (32 - 1)); + PKHBT_rrrLSLi(d, s, s, 16); + MSR_CPSRf_i(0); + RORS_rri(d, d, (32 - 1)); - MRS_CPSR(REG_WORK2); + MRS_CPSR(REG_WORK2); #ifdef ARMV6T2 - BFI_rrii(REG_WORK2, d, 29, 29); // Handle C flag + BFI_rrii(REG_WORK2, d, 29, 29); // Handle C flag #else - TST_ri(d, 1); - ORR_rri(REG_WORK2, REG_WORK2, ARM_C_FLAG); - CC_BIC_rri(NATIVE_CC_EQ, REG_WORK2, REG_WORK2, ARM_C_FLAG); + TST_ri(d, 1); + ORR_rri(REG_WORK2, REG_WORK2, ARM_C_FLAG); + CC_BIC_rri(NATIVE_CC_EQ, REG_WORK2, REG_WORK2, ARM_C_FLAG); #endif - MSR_CPSRf_r(REG_WORK2); + MSR_CPSRf_r(REG_WORK2); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_ROLW,(W4 d, RR4 s)) @@ -4004,7 +4116,7 @@ MIDFUNC(3,jff_ROXL_w_imm,(W4 d, RR4 s, IMM i)) } MENDFUNC(3,jff_ROXL_w_imm,(W4 d, RR4 s, IMM i)) -MIDFUNC(3,jff_ROXL_l_imm,(W4 d, RR4 s, IMM i)) +MIDFUNC(3,jff_ROXL_l_imm,(W4 d, RR4 s, IMM i)) { } MENDFUNC(3,jff_ROXL_l_imm,(W4 d, RR4 s, IMM i)) @@ -4054,48 +4166,48 @@ MENDFUNC(3,jff_ROXL_l,(W4 d, RR4 s, RR4 i)) */ MIDFUNC(2,jnf_ROXLW,(W4 d, RR4 s)) { - s = readreg(s, 4); - int x = readreg(FLAGX, 4); - d = writereg(d, 4); + s = readreg(s, 4); + int x = readreg(FLAGX, 4); + d = writereg(d, 4); - clobber_flags(); + clobber_flags(); - // Restore X to carry (don't care about other flags) - LSL_rri(REG_WORK1, x, 29); - MSR_CPSRf_r(REG_WORK1); + // Restore X to carry (don't care about other flags) + LSL_rri(REG_WORK1, x, 29); + MSR_CPSRf_r(REG_WORK1); - LSL_rri(d, s, 1); - ADC_rri(d, d, 0); + LSL_rri(d, s, 1); + ADC_rri(d, d, 0); - unlock2(d); - unlock2(x); - unlock2(s); + unlock2(d); + unlock2(x); + unlock2(s); } MENDFUNC(2,jnf_ROXLW,(W4 d, RR4 s)) MIDFUNC(2,jff_ROXLW,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); - int x = rmw(FLAGX, 4, 4); - - // Restore X to carry (don't care about other flags) - LSL_rri(REG_WORK1, x, 29); - MSR_CPSRf_r(REG_WORK1); + s = readreg(s, 4); + d = writereg(d, 4); + int x = rmw(FLAGX, 4, 4); - LSL_rri(d, s, 1); - ADC_rri(d, d, 0); - MSR_CPSRf_i(0); - LSLS_rri(d, d, 15); - LSR_rri(d, d, 16); + // Restore X to carry (don't care about other flags) + LSL_rri(REG_WORK1, x, 29); + MSR_CPSRf_r(REG_WORK1); - // Duplicate carry - MOV_ri(x, 1); - CC_MOV_ri(NATIVE_CC_CC, x, 0); + LSL_rri(d, s, 1); + ADC_rri(d, d, 0); + MSR_CPSRf_i(0); + LSLS_rri(d, d, 15); + LSR_rri(d, d, 16); - unlock2(x); - unlock2(d); - unlock2(s); + // Duplicate carry + MOV_ri(x, 1); + CC_MOV_ri(NATIVE_CC_CC, x, 0); + + unlock2(x); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_ROXLW,(W4 d, RR4 s)) @@ -4116,247 +4228,274 @@ MENDFUNC(2,jff_ROXLW,(W4 d, RR4 s)) */ MIDFUNC(3,jnf_ROR_b_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - if(i & 0x07) { - LSL_rri(d, s, 24); - ORR_rrrLSRi(d, d, d, 8); - ORR_rrrLSRi(d, d, d, 16); - ROR_rri(d, d, i & 0x07); - } else { - MOV_ri(d, s); - } - - unlock2(d); - unlock2(s); + if(i & 0x07) + { + LSL_rri(d, s, 24); + ORR_rrrLSRi(d, d, d, 8); + ORR_rrrLSRi(d, d, d, 16); + ROR_rri(d, d, i & 0x07); + } + else + { + MOV_ri(d, s); + } + + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_ROR_b_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jnf_ROR_w_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - if(i & 0x0f) { - PKHBT_rrrLSLi(d, s, s, 16); - ROR_rri(d, d, i & 0x0f); - } else { - MOV_ri(d, s); - } + if(i & 0x0f) + { + PKHBT_rrrLSLi(d, s, s, 16); + ROR_rri(d, d, i & 0x0f); + } + else + { + MOV_ri(d, s); + } - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_ROR_w_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jnf_ROR_l_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - ROR_rri(d, s, i & 31); + ROR_rri(d, s, i & 31); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_ROR_l_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jff_ROR_b_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - LSL_rri(d, s, 24); - ORR_rrrLSRi(d, d, d, 8); - ORR_rrrLSRi(d, d, d, 16); - MSR_CPSRf_i(0); - if(i & 0x07) { - RORS_rri(d, d, i & 0x07); - } else if (i > 0x07) { - TST_rr(d, d); - // We need to copy MSB to carry - MRS_CPSR(REG_WORK1); // carry is cleared - CC_ORR_rri(NATIVE_CC_MI, REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); - } else { - TST_rr(d, d); - } + LSL_rri(d, s, 24); + ORR_rrrLSRi(d, d, d, 8); + ORR_rrrLSRi(d, d, d, 16); + MSR_CPSRf_i(0); + if(i & 0x07) + { + RORS_rri(d, d, i & 0x07); + } + else if (i > 0x07) + { + TST_rr(d, d); + // We need to copy MSB to carry + MRS_CPSR(REG_WORK1); // carry is cleared + CC_ORR_rri(NATIVE_CC_MI, REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); + } + else + { + TST_rr(d, d); + } - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_ROR_b_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jff_ROR_w_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - PKHBT_rrrLSLi(d, s, s, 16); - MSR_CPSRf_i(0); - if(i & 0x0f) { - RORS_rri(d, d, i & 0x0f); - } else if (i > 0x0f) { - TST_rr(d, d); - // We need to copy MSB to carry - MRS_CPSR(REG_WORK1); // carry is cleared - CC_ORR_rri(NATIVE_CC_MI, REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); - } else { - TST_rr(d, d); - } + PKHBT_rrrLSLi(d, s, s, 16); + MSR_CPSRf_i(0); + if(i & 0x0f) + { + RORS_rri(d, d, i & 0x0f); + } + else if (i > 0x0f) + { + TST_rr(d, d); + // We need to copy MSB to carry + MRS_CPSR(REG_WORK1); // carry is cleared + CC_ORR_rri(NATIVE_CC_MI, REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); + } + else + { + TST_rr(d, d); + } - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_ROR_w_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jff_ROR_l_imm,(W4 d, RR4 s, IMM i)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - MSR_CPSRf_i(0); - if(i & 0x1f) { - RORS_rri(d, s, i & 0x1f); - } else if (i > 0x1f) { - MOVS_ri(d, s); - // We need to copy MSB to carry - MRS_CPSR(REG_WORK1); // carry is cleared - CC_ORR_rri(NATIVE_CC_MI, REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); - } else { - MOVS_ri(d, s); - } + MSR_CPSRf_i(0); + if(i & 0x1f) + { + RORS_rri(d, s, i & 0x1f); + } + else if (i > 0x1f) + { + MOVS_ri(d, s); + // We need to copy MSB to carry + MRS_CPSR(REG_WORK1); // carry is cleared + CC_ORR_rri(NATIVE_CC_MI, REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); + } + else + { + MOVS_ri(d, s); + } - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_ROR_l_imm,(W4 d, RR4 s, IMM i)) MIDFUNC(3,jnf_ROR_b,(W4 d, RR4 s, RR4 i)) { - if (isconst(i)) { - COMPCALL(jnf_ROR_b_imm)(d, s, (uae_u8)live.state[i].val); - return; - } - s = readreg(s, 4); - i = readreg(i, 4); - d = writereg(d, 4); + if (isconst(i)) + { + COMPCALL(jnf_ROR_b_imm)(d, s, (uae_u8)live.state[i].val); + return; + } + s = readreg(s, 4); + i = readreg(i, 4); + d = writereg(d, 4); - LSL_rri(d, s, 24); - ORR_rrrLSRi(d, d, d, 8); - ORR_rrrLSRi(d, d, d, 16); - ROR_rrr(d, d, i); + LSL_rri(d, s, 24); + ORR_rrrLSRi(d, d, d, 8); + ORR_rrrLSRi(d, d, d, 16); + ROR_rrr(d, d, i); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jnf_ROR_b,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jnf_ROR_w,(W4 d, RR4 s, RR4 i)) { - if (isconst(i)) { - COMPCALL(jnf_ROR_w_imm)(d, s, (uae_u8)live.state[i].val); - return; - } - s = readreg(s, 4); - i = readreg(i, 4); - d = writereg(d, 4); + if (isconst(i)) + { + COMPCALL(jnf_ROR_w_imm)(d, s, (uae_u8)live.state[i].val); + return; + } + s = readreg(s, 4); + i = readreg(i, 4); + d = writereg(d, 4); - PKHBT_rrrLSLi(d, s, s, 16); - ROR_rrr(d, d, i); + PKHBT_rrrLSLi(d, s, s, 16); + ROR_rrr(d, d, i); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jnf_ROR_w,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jnf_ROR_l,(W4 d, RR4 s, RR4 i)) { - if (isconst(i)) { - COMPCALL(jnf_ROR_l_imm)(d, s, (uae_u8)live.state[i].val); - return; - } - s = readreg(s, 4); - i = readreg(i, 4); - d = writereg(d, 4); + if (isconst(i)) + { + COMPCALL(jnf_ROR_l_imm)(d, s, (uae_u8)live.state[i].val); + return; + } + s = readreg(s, 4); + i = readreg(i, 4); + d = writereg(d, 4); - ROR_rrr(d, s, i); + ROR_rrr(d, s, i); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jnf_ROR_l,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jff_ROR_b,(W4 d, RR4 s, RR4 i)) { - if (isconst(i)) { - COMPCALL(jff_ROR_b_imm)(d, s, (uae_u8)live.state[i].val); - return; - } + if (isconst(i)) + { + COMPCALL(jff_ROR_b_imm)(d, s, (uae_u8)live.state[i].val); + return; + } - s = readreg(s, 4); - i = readreg(i, 4); - d = writereg(d, 4); + s = readreg(s, 4); + i = readreg(i, 4); + d = writereg(d, 4); - LSL_rri(d, s, 24); - ORR_rrrLSRi(d, d, d, 8); - ORR_rrrLSRi(d, d, d, 16); - MSR_CPSRf_i(0); - AND_rri(REG_WORK1, i, 63); - RORS_rrr(d, d, REG_WORK1); + LSL_rri(d, s, 24); + ORR_rrrLSRi(d, d, d, 8); + ORR_rrrLSRi(d, d, d, 16); + MSR_CPSRf_i(0); + AND_rri(REG_WORK1, i, 63); + RORS_rrr(d, d, REG_WORK1); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jff_ROR_b,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jff_ROR_w,(W4 d, RR4 s, RR4 i)) { - if (isconst(i)) { - COMPCALL(jff_ROR_w_imm)(d, s, (uae_u8)live.state[i].val); - return; - } + if (isconst(i)) + { + COMPCALL(jff_ROR_w_imm)(d, s, (uae_u8)live.state[i].val); + return; + } - s = readreg(s, 4); - i = readreg(i, 4); - d = writereg(d, 4); + s = readreg(s, 4); + i = readreg(i, 4); + d = writereg(d, 4); - PKHBT_rrrLSLi(d, s, s, 16); - MSR_CPSRf_i(0); - AND_rri(REG_WORK1, i, 63); - RORS_rrr(d, d, REG_WORK1); + PKHBT_rrrLSLi(d, s, s, 16); + MSR_CPSRf_i(0); + AND_rri(REG_WORK1, i, 63); + RORS_rrr(d, d, REG_WORK1); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jff_ROR_w,(W4 d, RR4 s, RR4 i)) MIDFUNC(3,jff_ROR_l,(W4 d, RR4 s, RR4 i)) { - if (isconst(i)) { - COMPCALL(jff_ROR_l_imm)(d, s, (uae_u8)live.state[i].val); - return; - } + if (isconst(i)) + { + COMPCALL(jff_ROR_l_imm)(d, s, (uae_u8)live.state[i].val); + return; + } - s = readreg(s, 4); - i = readreg(i, 4); - d = writereg(d, 4); + s = readreg(s, 4); + i = readreg(i, 4); + d = writereg(d, 4); - MSR_CPSRf_i(0); - AND_rri(REG_WORK1, i, 63); - RORS_rrr(d, s, REG_WORK1); + MSR_CPSRf_i(0); + AND_rri(REG_WORK1, i, 63); + RORS_rrr(d, s, REG_WORK1); - unlock2(d); - unlock2(s); - unlock2(i); + unlock2(d); + unlock2(s); + unlock2(i); } MENDFUNC(3,jff_ROR_l,(W4 d, RR4 s, RR4 i)) @@ -4375,28 +4514,28 @@ MENDFUNC(3,jff_ROR_l,(W4 d, RR4 s, RR4 i)) */ MIDFUNC(2,jnf_RORW,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - PKHBT_rrrLSLi(d, s, s, 16); - ROR_rri(d, d, 1); + PKHBT_rrrLSLi(d, s, s, 16); + ROR_rri(d, d, 1); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_RORW,(W4 d, RR4 s)) MIDFUNC(2,jff_RORW,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - PKHBT_rrrLSLi(d, s, s, 16); - MSR_CPSRf_i(0); - RORS_rri(d, d, 1); + PKHBT_rrrLSLi(d, s, s, 16); + MSR_CPSRf_i(0); + RORS_rri(d, d, 1); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_RORW,(W4 d, RR4 s)) @@ -4414,7 +4553,7 @@ MENDFUNC(2,jff_RORW,(W4 d, RR4 s)) * C Set according to the last bit rotated out of the operand. Cleared when the rotate count is zero. * */ -MIDFUNC(3,jnf_ROXR_b_imm,(W4 d, RR4 s, IMM i)) +MIDFUNC(3,jnf_ROXR_b_imm,(W4 d, RR4 s, IMM i)) { } MENDFUNC(3,jnf_ROXR_b_imm,(W4 d, RR4 s, IMM i)) @@ -4434,7 +4573,7 @@ MIDFUNC(3,jff_ROXR_b_imm,(W4 d, RR4 s, IMM i)) } MENDFUNC(3,jff_ROXR_b_imm,(W4 d, RR4 s, IMM i)) -MIDFUNC(3,jff_ROXR_w_imm,(W4 d, RR4 s, IMM i)) +MIDFUNC(3,jff_ROXR_w_imm,(W4 d, RR4 s, IMM i)) { } MENDFUNC(3,jff_ROXR_w_imm,(W4 d, RR4 s, IMM i)) @@ -4489,48 +4628,48 @@ MENDFUNC(3,jff_ROXR_l,(W4 d, RR4 s, RR4 i)) */ MIDFUNC(2,jnf_ROXRW,(W4 d, RR4 s)) { - s = readreg(s, 4); - int x = readreg(FLAGX, 4); - d = writereg(d, 4); + s = readreg(s, 4); + int x = readreg(FLAGX, 4); + d = writereg(d, 4); - clobber_flags(); + clobber_flags(); - // Restore X to carry (don't care about other flags) - LSL_rri(REG_WORK1, x, 29); - MSR_CPSRf_r(REG_WORK1); + // Restore X to carry (don't care about other flags) + LSL_rri(REG_WORK1, x, 29); + MSR_CPSRf_r(REG_WORK1); - LSL_rri(d, s, 16); - RRX_rr(d, d); - LSR_rri(d, d, 16); + LSL_rri(d, s, 16); + RRX_rr(d, d); + LSR_rri(d, d, 16); - unlock2(d); - unlock2(x); - unlock2(s); + unlock2(d); + unlock2(x); + unlock2(s); } MENDFUNC(2,jnf_ROXRW,(W4 d, RR4 s)) MIDFUNC(2,jff_ROXRW,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = writereg(d, 4); - int x = rmw(FLAGX, 4, 4); - - // Restore X to carry (clears also V flag, don't care about other flags) - LSL_rri(REG_WORK1, x, 29); - MSR_CPSRf_r(REG_WORK1); + s = readreg(s, 4); + d = writereg(d, 4); + int x = rmw(FLAGX, 4, 4); - LSL_rri(d, s, 16); - ORR_rrrLSRi(d, d, d, 16); - RRXS_rr(d, d); - LSR_rri(d, d, 16); + // Restore X to carry (clears also V flag, don't care about other flags) + LSL_rri(REG_WORK1, x, 29); + MSR_CPSRf_r(REG_WORK1); - // Duplicate carry - MOV_ri(x, 1); - CC_MOV_ri(NATIVE_CC_CC, x, 0); + LSL_rri(d, s, 16); + ORR_rrrLSRi(d, d, d, 16); + RRXS_rr(d, d); + LSR_rri(d, d, 16); - unlock2(x); - unlock2(d); - unlock2(s); + // Duplicate carry + MOV_ri(x, 1); + CC_MOV_ri(NATIVE_CC_CC, x, 0); + + unlock2(x); + unlock2(d); + unlock2(s); } MENDFUNC(2,jff_ROXRW,(W4 d, RR4 s)) @@ -4540,28 +4679,29 @@ MENDFUNC(2,jff_ROXRW,(W4 d, RR4 s)) */ MIDFUNC(2,jnf_SCC,(W4 d, IMM cc)) { - d = writereg(d, 1); - - switch (cc) { - case 9: // LS - MOV_ri(d, 0); - CC_MOV_ri(NATIVE_CC_CS, d, 0xff); - CC_MOV_ri(NATIVE_CC_EQ, d, 0xff); - break; + d = writereg(d, 1); - case 8: // HI - MOV_ri(d, 0); - CC_MOV_ri(NATIVE_CC_CC, d, 0xff); - CC_MOV_ri(NATIVE_CC_EQ, d, 0); - break; + switch (cc) + { + case 9: // LS + MOV_ri(d, 0); + CC_MOV_ri(NATIVE_CC_CS, d, 0xff); + CC_MOV_ri(NATIVE_CC_EQ, d, 0xff); + break; - default: - MOV_ri(d, 0xff); - CC_MOV_ri(cc^1, d, 0); - break; - } + case 8: // HI + MOV_ri(d, 0); + CC_MOV_ri(NATIVE_CC_CC, d, 0xff); + CC_MOV_ri(NATIVE_CC_EQ, d, 0); + break; - unlock2(d); + default: + MOV_ri(d, 0xff); + CC_MOV_ri(cc^1, d, 0); + break; + } + + unlock2(d); } MENDFUNC(2,jnf_SCC,(W4 d, IMM cc)) @@ -4581,254 +4721,266 @@ MENDFUNC(2,jnf_SCC,(W4 d, IMM cc)) */ MIDFUNC(3,jnf_SUB_b_imm,(W4 d, RR4 s, IMM v)) { - if (isconst(s)) { - set_const(d, live.state[s].val - v); - return; - } + if (isconst(s)) + { + set_const(d, live.state[s].val - v); + return; + } - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - UNSIGNED8_IMM_2_REG(REG_WORK1, (uae_u8)v); - SUB_rrr(d, s, REG_WORK1); + UNSIGNED8_IMM_2_REG(REG_WORK1, (uae_u8)v); + SUB_rrr(d, s, REG_WORK1); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_SUB_b_imm,(W4 d, RR4 s, IMM v)) MIDFUNC(3,jnf_SUB_b,(W4 d, RR4 s, RR4 v)) { - if (isconst(v)) { - COMPCALL(jnf_SUB_b_imm)(d, s, live.state[v].val); - return; - } + if (isconst(v)) + { + COMPCALL(jnf_SUB_b_imm)(d, s, live.state[v].val); + return; + } - v = readreg(v, 4); - s = readreg(s, 4); - d = writereg(d, 4); + v = readreg(v, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SUB_rrr(d, s, v); + SUB_rrr(d, s, v); - unlock2(d); - unlock2(s); - unlock2(v); + unlock2(d); + unlock2(s); + unlock2(v); } MENDFUNC(3,jnf_SUB_b,(W4 d, RR4 s, RR4 v)) MIDFUNC(3,jnf_SUB_w_imm,(W4 d, RR4 s, IMM v)) { - if (isconst(s)) { - set_const(d, live.state[s].val - v); - return; - } + if (isconst(s)) + { + set_const(d, live.state[s].val - v); + return; + } - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - UNSIGNED16_IMM_2_REG(REG_WORK1, (uae_u16)v); - SUB_rrr(d, s, REG_WORK1); + UNSIGNED16_IMM_2_REG(REG_WORK1, (uae_u16)v); + SUB_rrr(d, s, REG_WORK1); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_SUB_w_imm,(W4 d, RR4 s, IMM v)) MIDFUNC(3,jnf_SUB_w,(W4 d, RR4 s, RR4 v)) { - if (isconst(v)) { - COMPCALL(jnf_SUB_w_imm)(d, s, live.state[v].val); - return; - } + if (isconst(v)) + { + COMPCALL(jnf_SUB_w_imm)(d, s, live.state[v].val); + return; + } - v = readreg(v, 4); - s = readreg(s, 4); - d = writereg(d, 4); + v = readreg(v, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SUB_rrr(d, s, v); + SUB_rrr(d, s, v); - unlock2(d); - unlock2(s); - unlock2(v); + unlock2(d); + unlock2(s); + unlock2(v); } MENDFUNC(3,jnf_SUB_w,(W4 d, RR4 s, RR4 v)) MIDFUNC(3,jnf_SUB_l_imm,(W4 d, RR4 s, IMM v)) { - if (isconst(s)) { - set_const(d, live.state[s].val - v); - return; - } + if (isconst(s)) + { + set_const(d, live.state[s].val - v); + return; + } - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - compemu_raw_mov_l_ri(REG_WORK1, v); - SUB_rrr(d, s, REG_WORK1); + compemu_raw_mov_l_ri(REG_WORK1, v); + SUB_rrr(d, s, REG_WORK1); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jnf_SUB_l_imm,(W4 d, RR4 s, IMM v)) MIDFUNC(3,jnf_SUB_l,(W4 d, RR4 s, RR4 v)) { - if (isconst(v)) { - COMPCALL(jnf_SUB_l_imm)(d, s, live.state[v].val); - return; - } + if (isconst(v)) + { + COMPCALL(jnf_SUB_l_imm)(d, s, live.state[v].val); + return; + } - v = readreg(v, 4); - s = readreg(s, 4); - d = writereg(d, 4); + v = readreg(v, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SUB_rrr(d, s, v); + SUB_rrr(d, s, v); - unlock2(d); - unlock2(s); - unlock2(v); + unlock2(d); + unlock2(s); + unlock2(v); } MENDFUNC(3,jnf_SUB_l,(W4 d, RR4 s, RR4 v)) MIDFUNC(3,jff_SUB_b_imm,(W4 d, RR1 s, IMM v)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - LSL_rri(REG_WORK1, s, 24); - SUBS_rri(d, REG_WORK1, (v << 24)); - ASR_rri(d, d, 24); + LSL_rri(REG_WORK1, s, 24); + SUBS_rri(d, REG_WORK1, (v << 24)); + ASR_rri(d, d, 24); - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); - DUPLICACTE_CARRY_FROM_REG(REG_WORK1) + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); + DUPLICACTE_CARRY_FROM_REG(REG_WORK1) - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_SUB_b_imm,(W4 d, RR1 s, IMM v)) MIDFUNC(3,jff_SUB_b,(W4 d, RR1 s, RR1 v)) { - if (isconst(v)) { - COMPCALL(jff_SUB_b_imm)(d, s, live.state[v].val); - return; - } + if (isconst(v)) + { + COMPCALL(jff_SUB_b_imm)(d, s, live.state[v].val); + return; + } - v = readreg(v, 4); - s = readreg(s, 4); - d = writereg(d, 4); + v = readreg(v, 4); + s = readreg(s, 4); + d = writereg(d, 4); - LSL_rri(REG_WORK1, s, 24); - SUBS_rrrLSLi(d, REG_WORK1, v, 24); - ASR_rri(d, d, 24); + LSL_rri(REG_WORK1, s, 24); + SUBS_rrrLSLi(d, REG_WORK1, v, 24); + ASR_rri(d, d, 24); - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); - DUPLICACTE_CARRY_FROM_REG(REG_WORK1) + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); + DUPLICACTE_CARRY_FROM_REG(REG_WORK1) - unlock2(d); - unlock2(s); - unlock2(v); + unlock2(d); + unlock2(s); + unlock2(v); } MENDFUNC(3,jff_SUB_b,(W4 d, RR1 s, RR1 v)) MIDFUNC(3,jff_SUB_w_imm,(W4 d, RR2 s, IMM v)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - if(CHECK32(v)) { - MOV_ri(REG_WORK1, v); - } else { + if(CHECK32(v)) + { + MOV_ri(REG_WORK1, v); + } + else + { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK1, v); + MOVW_ri16(REG_WORK1, v); #else - uae_s32 offs = data_word_offs(v); - LDR_rRI(REG_WORK1, RPC_INDEX, offs); + uae_s32 offs = data_word_offs(v); + LDR_rRI(REG_WORK1, RPC_INDEX, offs); #endif - } - LSL_rri(REG_WORK2, s, 16); - SUBS_rrrLSLi(d, REG_WORK2, REG_WORK1, 16); - ASR_rri(d, d, 16); + } + LSL_rri(REG_WORK2, s, 16); + SUBS_rrrLSLi(d, REG_WORK2, REG_WORK1, 16); + ASR_rri(d, d, 16); - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); - DUPLICACTE_CARRY_FROM_REG(REG_WORK1) + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); + DUPLICACTE_CARRY_FROM_REG(REG_WORK1) - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_SUB_w_imm,(W4 d, RR2 s, IMM v)) MIDFUNC(3,jff_SUB_w,(W4 d, RR2 s, RR2 v)) { - if (isconst(v)) { - COMPCALL(jff_SUB_w_imm)(d, s, live.state[v].val); - return; - } + if (isconst(v)) + { + COMPCALL(jff_SUB_w_imm)(d, s, live.state[v].val); + return; + } - v = readreg(v, 4); - s = readreg(s, 4); - d = writereg(d, 4); + v = readreg(v, 4); + s = readreg(s, 4); + d = writereg(d, 4); - LSL_rri(REG_WORK1, s, 16); - SUBS_rrrLSLi(d, REG_WORK1, v, 16); - ASR_rri(d, d, 16); + LSL_rri(REG_WORK1, s, 16); + SUBS_rrrLSLi(d, REG_WORK1, v, 16); + ASR_rri(d, d, 16); - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); - DUPLICACTE_CARRY_FROM_REG(REG_WORK1) + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); + DUPLICACTE_CARRY_FROM_REG(REG_WORK1) - unlock2(d); - unlock2(s); - unlock2(v); + unlock2(d); + unlock2(s); + unlock2(v); } MENDFUNC(3,jff_SUB_w,(W4 d, RR2 s, RR2 v)) MIDFUNC(3,jff_SUB_l_imm,(W4 d, RR4 s, IMM v)) { - s = readreg(s, 4); - d = writereg(d, 4); + s = readreg(s, 4); + d = writereg(d, 4); - compemu_raw_mov_l_ri(REG_WORK2, v); - SUBS_rrr(d, s, REG_WORK2); + compemu_raw_mov_l_ri(REG_WORK2, v); + SUBS_rrr(d, s, REG_WORK2); - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); - DUPLICACTE_CARRY_FROM_REG(REG_WORK1) + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); + DUPLICACTE_CARRY_FROM_REG(REG_WORK1) - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(3,jff_SUB_l_imm,(W4 d, RR4 s, IMM v)) MIDFUNC(3,jff_SUB_l,(W4 d, RR4 s, RR4 v)) { - if (isconst(v)) { - COMPCALL(jff_SUB_l_imm)(d, s, live.state[v].val); - return; - } + if (isconst(v)) + { + COMPCALL(jff_SUB_l_imm)(d, s, live.state[v].val); + return; + } - v = readreg(v, 4); - s = readreg(s, 4); - d = writereg(d, 4); + v = readreg(v, 4); + s = readreg(s, 4); + d = writereg(d, 4); - SUBS_rrr(d, s, v); + SUBS_rrr(d, s, v); - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); - DUPLICACTE_CARRY_FROM_REG(REG_WORK1) + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); + DUPLICACTE_CARRY_FROM_REG(REG_WORK1) - unlock2(d); - unlock2(s); - unlock2(v); + unlock2(d); + unlock2(s); + unlock2(v); } MENDFUNC(3,jff_SUB_l,(W4 d, RR4 s, RR4 v)) @@ -4844,26 +4996,26 @@ MENDFUNC(3,jff_SUB_l,(W4 d, RR4 s, RR4 v)) */ MIDFUNC(2,jnf_SUBA_w,(W4 d, RR2 s)) { - s = readreg(s, 4); - d = rmw(d, 4, 4); + s = readreg(s, 4); + d = rmw(d, 4, 4); - SIGNED16_REG_2_REG(REG_WORK1, s); - SUB_rrr(d, d, REG_WORK1); + SIGNED16_REG_2_REG(REG_WORK1, s); + SUB_rrr(d, d, REG_WORK1); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_SUBA_w,(W4 d, RR2 s)) MIDFUNC(2,jnf_SUBA_l,(W4 d, RR4 s)) { - s = readreg(s, 4); - d = rmw(d, 4, 4); + s = readreg(s, 4); + d = rmw(d, 4, 4); - SUB_rrr(d, d, s); + SUB_rrr(d, d, s); - unlock2(d); - unlock2(s); + unlock2(d); + unlock2(s); } MENDFUNC(2,jnf_SUBA_l,(W4 d, RR4 s)) @@ -4885,133 +5037,133 @@ MENDFUNC(2,jnf_SUBA_l,(W4 d, RR4 s)) */ MIDFUNC(3,jnf_SUBX,(W4 d, RR4 s, RR4 v)) { - int x = readreg(FLAGX, 4); - s = readreg(s, 4); - v = readreg(v, 4); - d = writereg(d, 4); + int x = readreg(FLAGX, 4); + s = readreg(s, 4); + v = readreg(v, 4); + d = writereg(d, 4); - clobber_flags(); + clobber_flags(); - // Restore inverted X to carry (don't care about other flags) - LSL_rri(REG_WORK1, x, 29); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); + // Restore inverted X to carry (don't care about other flags) + LSL_rri(REG_WORK1, x, 29); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); - SBC_rrr(d, s, v); + SBC_rrr(d, s, v); - unlock2(d); - unlock2(s); - unlock2(v); - unlock2(x); + unlock2(d); + unlock2(s); + unlock2(v); + unlock2(x); } MENDFUNC(3,jnf_SUBX,(W4 d, RR4 s, RR4 v)) MIDFUNC(3,jff_SUBX_b,(W4 d, RR1 s, RR1 v)) { - s = readreg(s, 4); - v = readreg(v, 4); - d = writereg(d, 4); - int x = rmw(FLAGX, 4, 4); + s = readreg(s, 4); + v = readreg(v, 4); + d = writereg(d, 4); + int x = rmw(FLAGX, 4, 4); - MVN_ri(REG_WORK2, 0); - CC_MVN_ri(NATIVE_CC_NE, REG_WORK2, ARM_Z_FLAG); + MVN_ri(REG_WORK2, 0); + CC_MVN_ri(NATIVE_CC_NE, REG_WORK2, ARM_Z_FLAG); - // Restore inverted X to carry (don't care about other flags) - LSL_rri(REG_WORK1, x, 29); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); + // Restore inverted X to carry (don't care about other flags) + LSL_rri(REG_WORK1, x, 29); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); - LSL_rri(REG_WORK1, s, 24); - SBCS_rrrLSLi(d, REG_WORK1, v, 24); - ASR_rri(d, d, 24); + LSL_rri(REG_WORK1, s, 24); + SBCS_rrrLSLi(d, REG_WORK1, v, 24); + ASR_rri(d, d, 24); - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - AND_rrr(REG_WORK1, REG_WORK1, REG_WORK2); + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + AND_rrr(REG_WORK1, REG_WORK1, REG_WORK2); #ifdef ARMV6T2 - UBFX_rrii(x, REG_WORK1, 29, 1); // Duplicate carry + UBFX_rrii(x, REG_WORK1, 29, 1); // Duplicate carry #else - LSR_rri(x, REG_WORK1, 29); - AND_rri(x, x, 1); + LSR_rri(x, REG_WORK1, 29); + AND_rri(x, x, 1); #endif - MSR_CPSRf_r(REG_WORK1); + MSR_CPSRf_r(REG_WORK1); - unlock2(x); - unlock2(d); - unlock2(s); - unlock2(v); + unlock2(x); + unlock2(d); + unlock2(s); + unlock2(v); } MENDFUNC(3,jff_SUBX_b,(W4 d, RR1 s, RR1 v)) MIDFUNC(3,jff_SUBX_w,(W4 d, RR2 s, RR2 v)) { - s = readreg(s, 4); - v = readreg(v, 4); - d = writereg(d, 4); - int x = rmw(FLAGX, 4, 4); + s = readreg(s, 4); + v = readreg(v, 4); + d = writereg(d, 4); + int x = rmw(FLAGX, 4, 4); - MVN_ri(REG_WORK2, 0); - CC_MVN_ri(NATIVE_CC_NE, REG_WORK2, ARM_Z_FLAG); + MVN_ri(REG_WORK2, 0); + CC_MVN_ri(NATIVE_CC_NE, REG_WORK2, ARM_Z_FLAG); - // Restore inverted X to carry (don't care about other flags) - LSL_rri(REG_WORK1, x, 29); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); + // Restore inverted X to carry (don't care about other flags) + LSL_rri(REG_WORK1, x, 29); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); - LSL_rri(REG_WORK1, s, 16); - SBCS_rrrLSLi(d,REG_WORK1,v, 16); - ASR_rri(d, d, 16); + LSL_rri(REG_WORK1, s, 16); + SBCS_rrrLSLi(d,REG_WORK1,v, 16); + ASR_rri(d, d, 16); - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - AND_rrr(REG_WORK1, REG_WORK1, REG_WORK2); + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + AND_rrr(REG_WORK1, REG_WORK1, REG_WORK2); #ifdef ARMV6T2 - UBFX_rrii(x, REG_WORK1, 29, 1); // Duplicate carry + UBFX_rrii(x, REG_WORK1, 29, 1); // Duplicate carry #else - LSR_rri(x, REG_WORK1, 29); - AND_rri(x, x, 1); + LSR_rri(x, REG_WORK1, 29); + AND_rri(x, x, 1); #endif - MSR_CPSRf_r(REG_WORK1); + MSR_CPSRf_r(REG_WORK1); - unlock2(x); - unlock2(d); - unlock2(s); - unlock2(v); + unlock2(x); + unlock2(d); + unlock2(s); + unlock2(v); } MENDFUNC(3,jff_SUBX_w,(W4 d, RR2 s, RR2 v)) MIDFUNC(3,jff_SUBX_l,(W4 d, RR4 s, RR4 v)) { - s = readreg(s, 4); - v = readreg(v, 4); - d = writereg(d, 4); - int x = rmw(FLAGX, 4, 4); + s = readreg(s, 4); + v = readreg(v, 4); + d = writereg(d, 4); + int x = rmw(FLAGX, 4, 4); - MVN_ri(REG_WORK2, 0); - CC_MVN_ri(NATIVE_CC_NE, REG_WORK2, ARM_Z_FLAG); + MVN_ri(REG_WORK2, 0); + CC_MVN_ri(NATIVE_CC_NE, REG_WORK2, ARM_Z_FLAG); - // Restore inverted X to carry (don't care about other flags) - LSL_rri(REG_WORK1, x, 29); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - MSR_CPSRf_r(REG_WORK1); + // Restore inverted X to carry (don't care about other flags) + LSL_rri(REG_WORK1, x, 29); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + MSR_CPSRf_r(REG_WORK1); - SBCS_rrr(d, s, v); + SBCS_rrr(d, s, v); - MRS_CPSR(REG_WORK1); - EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); - AND_rrr(REG_WORK1, REG_WORK1, REG_WORK2); + MRS_CPSR(REG_WORK1); + EOR_rri(REG_WORK1, REG_WORK1, ARM_C_FLAG); + AND_rrr(REG_WORK1, REG_WORK1, REG_WORK2); #ifdef ARMV6T2 - UBFX_rrii(x, REG_WORK1, 29, 1); // Duplicate carry + UBFX_rrii(x, REG_WORK1, 29, 1); // Duplicate carry #else - LSR_rri(x, REG_WORK1, 29); - AND_rri(x, x, 1); + LSR_rri(x, REG_WORK1, 29); + AND_rri(x, x, 1); #endif - MSR_CPSRf_r(REG_WORK1); + MSR_CPSRf_r(REG_WORK1); - unlock2(x); - unlock2(d); - unlock2(s); - unlock2(v); + unlock2(x); + unlock2(d); + unlock2(s); + unlock2(v); } MENDFUNC(3,jff_SUBX_l,(W4 d, RR4 s, RR4 v)) @@ -5030,23 +5182,23 @@ MENDFUNC(3,jff_SUBX_l,(W4 d, RR4 s, RR4 v)) */ MIDFUNC(1,jnf_SWAP,(RW4 d)) { - d = rmw(d, 4, 4); + d = rmw(d, 4, 4); - ROR_rri(d, d, 16); + ROR_rri(d, d, 16); - unlock2(d); + unlock2(d); } MENDFUNC(1,jnf_SWAP,(RW4 d)) MIDFUNC(1,jff_SWAP,(RW4 d)) { - d = rmw(d, 4, 4); + d = rmw(d, 4, 4); - ROR_rri(d, d, 16); - MSR_CPSRf_i(0); - TST_rr(d, d); + ROR_rri(d, d, 16); + MSR_CPSRf_i(0); + TST_rr(d, d); - unlock2(d); + unlock2(d); } MENDFUNC(1,jff_SWAP,(RW4 d)) @@ -5065,45 +5217,53 @@ MENDFUNC(1,jff_SWAP,(RW4 d)) */ MIDFUNC(1,jff_TST_b,(RR1 s)) { - if (isconst(s)) { - SIGNED8_IMM_2_REG(REG_WORK1, (uae_u8)live.state[s].val); - } else { - s = readreg(s, 4); - SIGNED8_REG_2_REG(REG_WORK1, s); - unlock2(s); - } - MSR_CPSRf_i(0); - TST_rr(REG_WORK1, REG_WORK1); + if (isconst(s)) + { + SIGNED8_IMM_2_REG(REG_WORK1, (uae_u8)live.state[s].val); + } + else + { + s = readreg(s, 4); + SIGNED8_REG_2_REG(REG_WORK1, s); + unlock2(s); + } + MSR_CPSRf_i(0); + TST_rr(REG_WORK1, REG_WORK1); } MENDFUNC(1,jff_TST_b,(RR1 s)) MIDFUNC(1,jff_TST_w,(RR2 s)) { - if (isconst(s)) { - SIGNED16_IMM_2_REG(REG_WORK1, (uae_u16)live.state[s].val); - } else { - s = readreg(s, 4); - SIGNED16_REG_2_REG(REG_WORK1, s); - unlock2(s); - } - MSR_CPSRf_i(0); - TST_rr(REG_WORK1, REG_WORK1); + if (isconst(s)) + { + SIGNED16_IMM_2_REG(REG_WORK1, (uae_u16)live.state[s].val); + } + else + { + s = readreg(s, 4); + SIGNED16_REG_2_REG(REG_WORK1, s); + unlock2(s); + } + MSR_CPSRf_i(0); + TST_rr(REG_WORK1, REG_WORK1); } MENDFUNC(1,jff_TST_w,(RR2 s)) MIDFUNC(1,jff_TST_l,(RR4 s)) { - MSR_CPSRf_i(0); + MSR_CPSRf_i(0); - if (isconst(s)) { - compemu_raw_mov_l_ri(REG_WORK1, live.state[s].val); - TST_rr(REG_WORK1, REG_WORK1); - } - else { - s = readreg(s, 4); - TST_rr(s, s); - unlock2(s); - } + if (isconst(s)) + { + compemu_raw_mov_l_ri(REG_WORK1, live.state[s].val); + TST_rr(REG_WORK1, REG_WORK1); + } + else + { + s = readreg(s, 4); + TST_rr(s, s); + unlock2(s); + } } MENDFUNC(1,jff_TST_l,(RR4 s)) @@ -5116,62 +5276,62 @@ MENDFUNC(1,jff_TST_l,(RR4 s)) MIDFUNC(2,jnf_MEM_WRITE_OFF_b,(RR4 adr, RR4 b)) { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); - MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); + MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); + MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); #else - uae_s32 offs = get_data_natmem(); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); + uae_s32 offs = get_data_natmem(); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); #endif - adr = readreg(adr, 4); - b = readreg(b, 4); - - STRB_rRR(b, adr, REG_WORK2); - - unlock2(b); - unlock2(adr); + adr = readreg(adr, 4); + b = readreg(b, 4); + + STRB_rRR(b, adr, REG_WORK2); + + unlock2(b); + unlock2(adr); } MENDFUNC(2,jnf_MEM_WRITE_OFF_b,(RR4 adr, RR4 b)) MIDFUNC(2,jnf_MEM_WRITE_OFF_w,(RR4 adr, RR4 w)) { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); - MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); + MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); + MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); #else - uae_s32 offs = get_data_natmem(); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); + uae_s32 offs = get_data_natmem(); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); #endif - adr = readreg(adr, 4); - w = readreg(w, 4); - - REV16_rr(REG_WORK1, w); - STRH_rRR(REG_WORK1, adr, REG_WORK2); - - unlock2(w); - unlock2(adr); + adr = readreg(adr, 4); + w = readreg(w, 4); + + REV16_rr(REG_WORK1, w); + STRH_rRR(REG_WORK1, adr, REG_WORK2); + + unlock2(w); + unlock2(adr); } MENDFUNC(2,jnf_MEM_WRITE_OFF_w,(RR4 adr, RR4 w)) MIDFUNC(2,jnf_MEM_WRITE_OFF_l,(RR4 adr, RR4 l)) { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); - MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); + MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); + MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); #else - uae_s32 offs = get_data_natmem(); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); + uae_s32 offs = get_data_natmem(); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); #endif - adr = readreg(adr, 4); - l = readreg(l, 4); - - REV_rr(REG_WORK1, l); - STR_rRR(REG_WORK1, adr, REG_WORK2); - - unlock2(l); - unlock2(adr); + adr = readreg(adr, 4); + l = readreg(l, 4); + + REV_rr(REG_WORK1, l); + STR_rRR(REG_WORK1, adr, REG_WORK2); + + unlock2(l); + unlock2(adr); } MENDFUNC(2,jnf_MEM_WRITE_OFF_l,(RR4 adr, RR4 l)) @@ -5179,62 +5339,62 @@ MENDFUNC(2,jnf_MEM_WRITE_OFF_l,(RR4 adr, RR4 l)) MIDFUNC(2,jnf_MEM_READ_OFF_b,(W4 d, RR4 adr)) { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); - MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); + MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); + MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); #else - uae_s32 offs = get_data_natmem(); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); + uae_s32 offs = get_data_natmem(); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); #endif - adr = readreg(adr, 4); - d = writereg(d, 4); - - LDRB_rRR(d, adr, REG_WORK2); - - unlock2(d); - unlock2(adr); + adr = readreg(adr, 4); + d = writereg(d, 4); + + LDRB_rRR(d, adr, REG_WORK2); + + unlock2(d); + unlock2(adr); } MENDFUNC(2,jnf_MEM_READ_OFF_b,(W4 d, RR4 adr)) MIDFUNC(2,jnf_MEM_READ_OFF_w,(W4 d, RR4 adr)) { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); - MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); + MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); + MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); #else - uae_s32 offs = get_data_natmem(); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); + uae_s32 offs = get_data_natmem(); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); #endif - adr = readreg(adr, 4); - d = writereg(d, 4); - - LDRH_rRR(REG_WORK1, adr, REG_WORK2); - REV16_rr(d, REG_WORK1); - - unlock2(d); - unlock2(adr); + adr = readreg(adr, 4); + d = writereg(d, 4); + + LDRH_rRR(REG_WORK1, adr, REG_WORK2); + REV16_rr(d, REG_WORK1); + + unlock2(d); + unlock2(adr); } MENDFUNC(2,jnf_MEM_READ_OFF_w,(W4 d, RR4 adr)) MIDFUNC(2,jnf_MEM_READ_OFF_l,(W4 d, RR4 adr)) { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); - MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); + MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); + MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); #else - uae_s32 offs = get_data_natmem(); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); + uae_s32 offs = get_data_natmem(); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); #endif - adr = readreg(adr, 4); - d = writereg(d, 4); - - LDR_rRR(REG_WORK1, adr, REG_WORK2); - REV_rr(d, REG_WORK1); - - unlock2(d); - unlock2(adr); + adr = readreg(adr, 4); + d = writereg(d, 4); + + LDR_rRR(REG_WORK1, adr, REG_WORK2); + REV_rr(d, REG_WORK1); + + unlock2(d); + unlock2(adr); } MENDFUNC(2,jnf_MEM_READ_OFF_l,(W4 d, RR4 adr)) @@ -5242,65 +5402,65 @@ MENDFUNC(2,jnf_MEM_READ_OFF_l,(W4 d, RR4 adr)) MIDFUNC(2,jnf_MEM_WRITE24_OFF_b,(RR4 adr, RR4 b)) { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); - MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); + MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); + MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); #else - uae_s32 offs = get_data_natmem(); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); + uae_s32 offs = get_data_natmem(); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); #endif - adr = readreg(adr, 4); - b = readreg(b, 4); - - BIC_rri(REG_WORK1, adr, 0xff000000); - STRB_rRR(b, REG_WORK1, REG_WORK2); - - unlock2(b); - unlock2(adr); + adr = readreg(adr, 4); + b = readreg(b, 4); + + BIC_rri(REG_WORK1, adr, 0xff000000); + STRB_rRR(b, REG_WORK1, REG_WORK2); + + unlock2(b); + unlock2(adr); } MENDFUNC(2,jnf_MEM_WRITE24_OFF_b,(RR4 adr, RR4 b)) MIDFUNC(2,jnf_MEM_WRITE24_OFF_w,(RR4 adr, RR4 w)) { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); - MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); + MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); + MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); #else - uae_s32 offs = get_data_natmem(); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); + uae_s32 offs = get_data_natmem(); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); #endif - adr = readreg(adr, 4); - w = readreg(w, 4); - - BIC_rri(REG_WORK1, adr, 0xff000000); - REV16_rr(REG_WORK3, w); - STRH_rRR(REG_WORK3, REG_WORK1, REG_WORK2); - - unlock2(w); - unlock2(adr); + adr = readreg(adr, 4); + w = readreg(w, 4); + + BIC_rri(REG_WORK1, adr, 0xff000000); + REV16_rr(REG_WORK3, w); + STRH_rRR(REG_WORK3, REG_WORK1, REG_WORK2); + + unlock2(w); + unlock2(adr); } MENDFUNC(2,jnf_MEM_WRITE24_OFF_w,(RR4 adr, RR4 w)) MIDFUNC(2,jnf_MEM_WRITE24_OFF_l,(RR4 adr, RR4 l)) { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); - MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); + MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); + MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); #else - uae_s32 offs = get_data_natmem(); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); + uae_s32 offs = get_data_natmem(); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); #endif - adr = readreg(adr, 4); - l = readreg(l, 4); - - BIC_rri(REG_WORK1, adr, 0xff000000); - REV_rr(REG_WORK3, l); - STR_rRR(REG_WORK3, REG_WORK1, REG_WORK2); - - unlock2(l); - unlock2(adr); + adr = readreg(adr, 4); + l = readreg(l, 4); + + BIC_rri(REG_WORK1, adr, 0xff000000); + REV_rr(REG_WORK3, l); + STR_rRR(REG_WORK3, REG_WORK1, REG_WORK2); + + unlock2(l); + unlock2(adr); } MENDFUNC(2,jnf_MEM_WRITE24_OFF_l,(RR4 adr, RR4 l)) @@ -5308,65 +5468,65 @@ MENDFUNC(2,jnf_MEM_WRITE24_OFF_l,(RR4 adr, RR4 l)) MIDFUNC(2,jnf_MEM_READ24_OFF_b,(W4 d, RR4 adr)) { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); - MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); + MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); + MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); #else - uae_s32 offs = get_data_natmem(); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); + uae_s32 offs = get_data_natmem(); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); #endif - adr = readreg(adr, 4); - d = writereg(d, 4); - - BIC_rri(REG_WORK1, adr, 0xff000000); - LDRB_rRR(d, REG_WORK1, REG_WORK2); - - unlock2(d); - unlock2(adr); + adr = readreg(adr, 4); + d = writereg(d, 4); + + BIC_rri(REG_WORK1, adr, 0xff000000); + LDRB_rRR(d, REG_WORK1, REG_WORK2); + + unlock2(d); + unlock2(adr); } MENDFUNC(2,jnf_MEM_READ24_OFF_b,(W4 d, RR4 adr)) MIDFUNC(2,jnf_MEM_READ24_OFF_w,(W4 d, RR4 adr)) { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); - MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); + MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); + MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); #else - uae_s32 offs = get_data_natmem(); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); + uae_s32 offs = get_data_natmem(); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); #endif - adr = readreg(adr, 4); - d = writereg(d, 4); - - BIC_rri(REG_WORK1, adr, 0xff000000); - LDRH_rRR(REG_WORK1, REG_WORK1, REG_WORK2); - REV16_rr(d, REG_WORK1); - - unlock2(d); - unlock2(adr); + adr = readreg(adr, 4); + d = writereg(d, 4); + + BIC_rri(REG_WORK1, adr, 0xff000000); + LDRH_rRR(REG_WORK1, REG_WORK1, REG_WORK2); + REV16_rr(d, REG_WORK1); + + unlock2(d); + unlock2(adr); } MENDFUNC(2,jnf_MEM_READ24_OFF_w,(W4 d, RR4 adr)) MIDFUNC(2,jnf_MEM_READ24_OFF_l,(W4 d, RR4 adr)) { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); - MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); + MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); + MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); #else - uae_s32 offs = get_data_natmem(); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); + uae_s32 offs = get_data_natmem(); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); #endif - adr = readreg(adr, 4); - d = writereg(d, 4); - - BIC_rri(REG_WORK1, adr, 0xff000000); - LDR_rRR(d, REG_WORK1, REG_WORK2); - REV_rr(d, d); - - unlock2(d); - unlock2(adr); + adr = readreg(adr, 4); + d = writereg(d, 4); + + BIC_rri(REG_WORK1, adr, 0xff000000); + LDR_rRR(d, REG_WORK1, REG_WORK2); + REV_rr(d, d); + + unlock2(d); + unlock2(adr); } MENDFUNC(2,jnf_MEM_READ24_OFF_l,(W4 d, RR4 adr)) @@ -5374,62 +5534,62 @@ MENDFUNC(2,jnf_MEM_READ24_OFF_l,(W4 d, RR4 adr)) MIDFUNC(2,jnf_MEM_GETADR_OFF,(W4 d, RR4 adr)) { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); - MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); + MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); + MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); #else - uae_s32 offs = get_data_natmem(); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); + uae_s32 offs = get_data_natmem(); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); #endif - adr = readreg(adr, 4); - d = writereg(d, 4); - - ADD_rrr(d, adr, REG_WORK2); - - unlock2(d); - unlock2(adr); + adr = readreg(adr, 4); + d = writereg(d, 4); + + ADD_rrr(d, adr, REG_WORK2); + + unlock2(d); + unlock2(adr); } MENDFUNC(2,jnf_MEM_GETADR_OFF,(W4 d, RR4 adr)) MIDFUNC(2,jnf_MEM_GETADR24_OFF,(W4 d, RR4 adr)) { #ifdef ARMV6T2 - MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); - MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); + MOVW_ri16(REG_WORK2, NATMEM_OFFSETX); + MOVT_ri16(REG_WORK2, NATMEM_OFFSETX >> 16); #else - uae_s32 offs = get_data_natmem(); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); + uae_s32 offs = get_data_natmem(); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); #endif - adr = readreg(adr, 4); - d = writereg(d, 4); - - BIC_rri(REG_WORK1, adr, 0xff000000); - ADD_rrr(d, REG_WORK1, REG_WORK2); - - unlock2(d); - unlock2(adr); + adr = readreg(adr, 4); + d = writereg(d, 4); + + BIC_rri(REG_WORK1, adr, 0xff000000); + ADD_rrr(d, REG_WORK1, REG_WORK2); + + unlock2(d); + unlock2(adr); } MENDFUNC(2,jnf_MEM_GETADR24_OFF,(W4 d, RR4 adr)) MIDFUNC(2,jnf_MEM_GETBANKFUNC,(W4 d, RR4 adr, IMM offset)) { - adr = readreg(adr, 4); - d = writereg(d, 4); - + adr = readreg(adr, 4); + d = writereg(d, 4); + #ifdef ARMV6T2 - MOVW_ri16(REG_WORK2, (uae_u32)mem_banks); - MOVT_ri16(REG_WORK2, (uae_u32)mem_banks >> 16); + MOVW_ri16(REG_WORK2, (uae_u32)mem_banks); + MOVT_ri16(REG_WORK2, (uae_u32)mem_banks >> 16); #else - uae_s32 offs = data_long_offs((uae_u32)mem_banks); - LDR_rRI(REG_WORK2, RPC_INDEX, offs); + uae_s32 offs = data_long_offs((uae_u32)mem_banks); + LDR_rRI(REG_WORK2, RPC_INDEX, offs); #endif - LSR_rri(REG_WORK1, adr, 16); - LDR_rRR_LSLi(d, REG_WORK2, REG_WORK1, 2); - LDR_rRI(d, d, offset); - - unlock2(d); - unlock2(adr); + LSR_rri(REG_WORK1, adr, 16); + LDR_rRR_LSLi(d, REG_WORK2, REG_WORK1, 2); + LDR_rRI(d, d, offset); + + unlock2(d); + unlock2(adr); } MENDFUNC(2,jnf_MEM_GETBANKFUNC,(W4 d, RR4 adr, IMM offset)) diff --git a/src/jit/compemu_support.cpp b/src/jit/compemu_support.cpp index 00002f4c..edb5abf0 100644 --- a/src/jit/compemu_support.cpp +++ b/src/jit/compemu_support.cpp @@ -2,7 +2,7 @@ * compiler/compemu_support.cpp - Core dynamic translation engine * * Copyright (c) 2001-2009 Milan Jurik of ARAnyM dev team (see AUTHORS) - * + * * Inspired by Christian Bauer's Basilisk II * * This file is part of the ARAnyM project which builds a new and powerful @@ -81,7 +81,7 @@ static uae_u16 opcode_nums[65536]; static int untranslated_compfn(const void *e1, const void *e2) { - return raw_cputbl_count[*(const uae_u16 *)e1] < raw_cputbl_count[*(const uae_u16 *)e2]; + return raw_cputbl_count[*(const uae_u16 *)e1] < raw_cputbl_count[*(const uae_u16 *)e2]; } #endif @@ -104,7 +104,7 @@ static int JITDebug = 0; // Enable runtime disassemblers through mon? const int JITDebug= 0; // Don't use JIT debug mode at all #endif #if USE_INLINING -static int follow_const_jumps = 1; // Flag: translation through constant jumps +static int follow_const_jumps = 1; // Flag: translation through constant jumps #else const int follow_const_jumps = 0; #endif @@ -122,17 +122,17 @@ op_properties prop[65536]; STATIC_INLINE bool is_const_jump(uae_u32 opcode) { - return (prop[opcode].cflow == fl_const_jump); + return (prop[opcode].cflow == fl_const_jump); } STATIC_INLINE bool may_trap(uae_u32 opcode) { - return (prop[opcode].cflow & fl_trap); + return (prop[opcode].cflow & fl_trap); } STATIC_INLINE unsigned int cft_map (unsigned int f) { - return f; + return f; } uae_u8* start_pc_p; @@ -174,20 +174,21 @@ static blockinfo* dormant; void cache_free (void *cache, int size) { - munmap(cache, size); + munmap(cache, size); } void *cache_alloc (int size) { - size = size < getpagesize() ? getpagesize() : size; + size = size < getpagesize() ? getpagesize() : size; - void *cache = mmap(0, size, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE | MAP_ANON, -1, 0); - if (!cache) { - printf ("Cache_Alloc of %d failed. ERR=%d\n", size, errno); - } - else - memset(cache, 0, size); - return (uae_u8 *) cache; + void *cache = mmap(0, size, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE | MAP_ANON, -1, 0); + if (!cache) + { + printf ("Cache_Alloc of %d failed. ERR=%d\n", size, errno); + } + else + memset(cache, 0, size); + return (uae_u8 *) cache; } #endif @@ -239,7 +240,7 @@ STATIC_INLINE void emit_jmp_target(uae_u32 a); uae_u32 m68k_pc_offset; /* Flag handling is complicated. - + * * x86 instructions create flags, which quite often are exactly what we * want. So at times, the "68k" flags are actually in the x86 flags. @@ -266,19 +267,20 @@ uae_u32 m68k_pc_offset; STATIC_INLINE blockinfo* get_blockinfo(uae_u32 cl) { - return cache_tags[cl+1].bi; + return cache_tags[cl+1].bi; } STATIC_INLINE blockinfo* get_blockinfo_addr(void* addr) { - blockinfo* bi = get_blockinfo(cacheline(addr)); + blockinfo* bi = get_blockinfo(cacheline(addr)); - while (bi) { - if (bi->pc_p == addr) - return bi; - bi = bi->next_same_cl; - } - return NULL; + while (bi) + { + if (bi->pc_p == addr) + return bi; + bi = bi->next_same_cl; + } + return NULL; } @@ -288,93 +290,93 @@ STATIC_INLINE blockinfo* get_blockinfo_addr(void* addr) STATIC_INLINE void remove_from_cl_list(blockinfo* bi) { - uae_u32 cl = cacheline(bi->pc_p); + uae_u32 cl = cacheline(bi->pc_p); - if (bi->prev_same_cl_p) - *(bi->prev_same_cl_p) = bi->next_same_cl; - if (bi->next_same_cl) - bi->next_same_cl->prev_same_cl_p = bi->prev_same_cl_p; - if (cache_tags[cl+1].bi) - cache_tags[cl].handler = cache_tags[cl+1].bi->handler_to_use; - else - cache_tags[cl].handler = (cpuop_func *)popall_execute_normal; + if (bi->prev_same_cl_p) + *(bi->prev_same_cl_p) = bi->next_same_cl; + if (bi->next_same_cl) + bi->next_same_cl->prev_same_cl_p = bi->prev_same_cl_p; + if (cache_tags[cl+1].bi) + cache_tags[cl].handler = cache_tags[cl+1].bi->handler_to_use; + else + cache_tags[cl].handler = (cpuop_func *)popall_execute_normal; } STATIC_INLINE void remove_from_list(blockinfo* bi) { - if (bi->prev_p) - *(bi->prev_p) = bi->next; - if (bi->next) - bi->next->prev_p = bi->prev_p; + if (bi->prev_p) + *(bi->prev_p) = bi->next; + if (bi->next) + bi->next->prev_p = bi->prev_p; } STATIC_INLINE void remove_from_lists(blockinfo* bi) { - remove_from_list(bi); - remove_from_cl_list(bi); + remove_from_list(bi); + remove_from_cl_list(bi); } STATIC_INLINE void add_to_cl_list(blockinfo* bi) { - uae_u32 cl = cacheline(bi->pc_p); + uae_u32 cl = cacheline(bi->pc_p); - if (cache_tags[cl+1].bi) - cache_tags[cl+1].bi->prev_same_cl_p = &(bi->next_same_cl); - bi->next_same_cl = cache_tags[cl+1].bi; + if (cache_tags[cl+1].bi) + cache_tags[cl+1].bi->prev_same_cl_p = &(bi->next_same_cl); + bi->next_same_cl = cache_tags[cl+1].bi; - cache_tags[cl+1].bi = bi; - bi->prev_same_cl_p = &(cache_tags[cl+1].bi); + cache_tags[cl+1].bi = bi; + bi->prev_same_cl_p = &(cache_tags[cl+1].bi); - cache_tags[cl].handler = bi->handler_to_use; + cache_tags[cl].handler = bi->handler_to_use; } STATIC_INLINE void raise_in_cl_list(blockinfo* bi) { - remove_from_cl_list(bi); - add_to_cl_list(bi); + remove_from_cl_list(bi); + add_to_cl_list(bi); } STATIC_INLINE void add_to_active(blockinfo* bi) { - if (active) - active->prev_p = &(bi->next); - bi->next = active; + if (active) + active->prev_p = &(bi->next); + bi->next = active; - active = bi; - bi->prev_p = &active; + active = bi; + bi->prev_p = &active; } STATIC_INLINE void add_to_dormant(blockinfo* bi) { - if (dormant) - dormant->prev_p = &(bi->next); - bi->next = dormant; + if (dormant) + dormant->prev_p = &(bi->next); + bi->next = dormant; - dormant = bi; - bi->prev_p = &dormant; + dormant = bi; + bi->prev_p = &dormant; } STATIC_INLINE void remove_dep(dependency* d) { - if (d->prev_p) - *(d->prev_p) = d->next; - if (d->next) - d->next->prev_p = d->prev_p; - d->prev_p = NULL; - d->next = NULL; + if (d->prev_p) + *(d->prev_p) = d->next; + if (d->next) + d->next->prev_p = d->prev_p; + d->prev_p = NULL; + d->next = NULL; } /* This block's code is about to be thrown away, so it no longer depends on anything else */ STATIC_INLINE void remove_deps(blockinfo* bi) { - remove_dep(&(bi->dep[0])); - remove_dep(&(bi->dep[1])); + remove_dep(&(bi->dep[0])); + remove_dep(&(bi->dep[1])); } STATIC_INLINE void adjust_jmpdep(dependency* d, cpuop_func* a) { - write_jmp_target(d->jmp_off, a); + write_jmp_target(d->jmp_off, a); } /******************************************************************** @@ -383,130 +385,146 @@ STATIC_INLINE void adjust_jmpdep(dependency* d, cpuop_func* a) STATIC_INLINE void set_dhtu(blockinfo* bi, cpuop_func* dh) { - D2(panicbug("bi is %p\n", bi)); - if (dh != bi->direct_handler_to_use) { - dependency* x = bi->deplist; - D2(panicbug("bi->deplist=%p\n", bi->deplist)); - while (x) { - D2(panicbug("x is %p\n", x)); - D2(panicbug("x->next is %p\n", x->next)); - D2(panicbug("x->prev_p is %p\n", x->prev_p)); + D2(panicbug("bi is %p\n", bi)); + if (dh != bi->direct_handler_to_use) + { + dependency* x = bi->deplist; + D2(panicbug("bi->deplist=%p\n", bi->deplist)); + while (x) + { + D2(panicbug("x is %p\n", x)); + D2(panicbug("x->next is %p\n", x->next)); + D2(panicbug("x->prev_p is %p\n", x->prev_p)); - if (x->jmp_off) { - adjust_jmpdep(x, dh); - } - x = x->next; - } - bi->direct_handler_to_use = (cpuop_func*)dh; - } + if (x->jmp_off) + { + adjust_jmpdep(x, dh); + } + x = x->next; + } + bi->direct_handler_to_use = (cpuop_func*)dh; + } } STATIC_INLINE void invalidate_block(blockinfo* bi) { - int i; + int i; - bi->optlevel = 0; - bi->count = currprefs.optcount[0]-1; - bi->handler = NULL; - bi->handler_to_use = (cpuop_func *)popall_execute_normal; - bi->direct_handler = NULL; - set_dhtu(bi, bi->direct_pen); - bi->needed_flags = 0xff; + bi->optlevel = 0; + bi->count = currprefs.optcount[0]-1; + bi->handler = NULL; + bi->handler_to_use = (cpuop_func *)popall_execute_normal; + bi->direct_handler = NULL; + set_dhtu(bi, bi->direct_pen); + bi->needed_flags = 0xff; - bi->status = BI_INVALID; - for (i=0; i<2; i++) { - bi->dep[i].jmp_off = NULL; - bi->dep[i].target = NULL; - } - remove_deps(bi); + bi->status = BI_INVALID; + for (i=0; i<2; i++) + { + bi->dep[i].jmp_off = NULL; + bi->dep[i].target = NULL; + } + remove_deps(bi); } STATIC_INLINE void create_jmpdep(blockinfo* bi, int i, uae_u32* jmpaddr, uae_u32 target) { - blockinfo* tbi = get_blockinfo_addr((void*)(uintptr)target); + blockinfo* tbi = get_blockinfo_addr((void*)(uintptr)target); - Dif(!tbi) { - jit_abort (_T("JIT: Could not create jmpdep!\n")); - } - bi->dep[i].jmp_off = jmpaddr; - bi->dep[i].source = bi; - bi->dep[i].target = tbi; - bi->dep[i].next = tbi->deplist; - if (bi->dep[i].next) - bi->dep[i].next->prev_p = &(bi->dep[i].next); - bi->dep[i].prev_p = &(tbi->deplist); - tbi->deplist = &(bi->dep[i]); + Dif(!tbi) + { + jit_abort (_T("JIT: Could not create jmpdep!\n")); + } + bi->dep[i].jmp_off = jmpaddr; + bi->dep[i].source = bi; + bi->dep[i].target = tbi; + bi->dep[i].next = tbi->deplist; + if (bi->dep[i].next) + bi->dep[i].next->prev_p = &(bi->dep[i].next); + bi->dep[i].prev_p = &(tbi->deplist); + tbi->deplist = &(bi->dep[i]); } STATIC_INLINE void block_need_recompile(blockinfo * bi) { - uae_u32 cl = cacheline(bi->pc_p); + uae_u32 cl = cacheline(bi->pc_p); - set_dhtu(bi,bi->direct_pen); - bi->direct_handler = bi->direct_pen; + set_dhtu(bi,bi->direct_pen); + bi->direct_handler = bi->direct_pen; - bi->handler_to_use = (cpuop_func *)popall_execute_normal; - bi->handler = (cpuop_func *)popall_execute_normal; - if (bi == cache_tags[cl + 1].bi) - cache_tags[cl].handler = (cpuop_func *)popall_execute_normal; - bi->status = BI_NEED_RECOMP; + bi->handler_to_use = (cpuop_func *)popall_execute_normal; + bi->handler = (cpuop_func *)popall_execute_normal; + if (bi == cache_tags[cl + 1].bi) + cache_tags[cl].handler = (cpuop_func *)popall_execute_normal; + bi->status = BI_NEED_RECOMP; } STATIC_INLINE void mark_callers_recompile(blockinfo * bi) { - dependency *x = bi->deplist; + dependency *x = bi->deplist; - while (x) { - dependency *next = x->next; /* This disappears when we mark for + while (x) + { + dependency *next = x->next; /* This disappears when we mark for * recompilation and thus remove the * blocks from the lists */ - if (x->jmp_off) { - blockinfo *cbi = x->source; + if (x->jmp_off) + { + blockinfo *cbi = x->source; - Dif(cbi->status == BI_INVALID) { - jit_abort(_T("invalid block in dependency list\n")); // FIXME? - } - if (cbi->status == BI_ACTIVE || cbi->status == BI_NEED_CHECK) { - block_need_recompile(cbi); - mark_callers_recompile(cbi); - } - else if (cbi->status == BI_COMPILING) { - redo_current_block = 1; - } - else if (cbi->status == BI_NEED_RECOMP) { - /* nothing */ - } - else { - D2(panicbug(_T("Status %d in mark_callers\n"), cbi->status)); // FIXME? - } - } - x = next; - } + Dif(cbi->status == BI_INVALID) + { + jit_abort(_T("invalid block in dependency list\n")); // FIXME? + } + if (cbi->status == BI_ACTIVE || cbi->status == BI_NEED_CHECK) + { + block_need_recompile(cbi); + mark_callers_recompile(cbi); + } + else if (cbi->status == BI_COMPILING) + { + redo_current_block = 1; + } + else if (cbi->status == BI_NEED_RECOMP) + { + /* nothing */ + } + else + { + D2(panicbug(_T("Status %d in mark_callers\n"), cbi->status)); // FIXME? + } + } + x = next; + } } STATIC_INLINE blockinfo* get_blockinfo_addr_new(void* addr, int setstate) { - blockinfo* bi = get_blockinfo_addr(addr); - int i; + blockinfo* bi = get_blockinfo_addr(addr); + int i; - if (!bi) { - for (i=0; ipc_p = (uae_u8 *)addr; - invalidate_block(bi); - add_to_active(bi); - add_to_cl_list(bi); - } - } - } - if (!bi) { - jit_abort (_T("JIT: Looking for blockinfo, can't find free one\n")); - } - return bi; + bi = hold_bi[i]; + hold_bi[i] = NULL; + bi->pc_p = (uae_u8 *)addr; + invalidate_block(bi); + add_to_active(bi); + add_to_cl_list(bi); + } + } + } + if (!bi) + { + jit_abort (_T("JIT: Looking for blockinfo, can't find free one\n")); + } + return bi; } static void prepare_block(blockinfo* bi); @@ -527,75 +545,83 @@ static void prepare_block(blockinfo* bi); template< class T > class LazyBlockAllocator { - enum { - kPoolSize = 1 + (16384 - sizeof(T) - sizeof(void *)) / sizeof(T) - }; - struct Pool { - T chunk[kPoolSize]; - Pool * next; - }; - Pool * mPools; - T * mChunks; + enum + { + kPoolSize = 1 + (16384 - sizeof(T) - sizeof(void *)) / sizeof(T) + }; + struct Pool + { + T chunk[kPoolSize]; + Pool * next; + }; + Pool * mPools; + T * mChunks; public: - LazyBlockAllocator() : mPools(0), mChunks(0) { } - ~LazyBlockAllocator(); - T * acquire(); - void release(T * const); + LazyBlockAllocator() : mPools(0), mChunks(0) { } + ~LazyBlockAllocator(); + T * acquire(); + void release(T * const); }; template< class T > LazyBlockAllocator::~LazyBlockAllocator() { - Pool * currentPool = mPools; - while (currentPool) { - Pool * deadPool = currentPool; - currentPool = currentPool->next; - free(deadPool); - } + Pool * currentPool = mPools; + while (currentPool) + { + Pool * deadPool = currentPool; + currentPool = currentPool->next; + free(deadPool); + } } template< class T > T * LazyBlockAllocator::acquire() { - if (!mChunks) { - // There is no chunk left, allocate a new pool and link the - // chunks into the free list - Pool * newPool = (Pool *)malloc(sizeof(Pool)); - if (newPool == NULL) { - jit_abort(_T("FATAL: Could not allocate block pool!\n")); + if (!mChunks) + { + // There is no chunk left, allocate a new pool and link the + // chunks into the free list + Pool * newPool = (Pool *)malloc(sizeof(Pool)); + if (newPool == NULL) + { + jit_abort(_T("FATAL: Could not allocate block pool!\n")); + } + for (T * chunk = &newPool->chunk[0]; chunk < &newPool->chunk[kPoolSize]; chunk++) + { + chunk->next = mChunks; + mChunks = chunk; + } + newPool->next = mPools; + mPools = newPool; } - for (T * chunk = &newPool->chunk[0]; chunk < &newPool->chunk[kPoolSize]; chunk++) { - chunk->next = mChunks; - mChunks = chunk; - } - newPool->next = mPools; - mPools = newPool; - } - T * chunk = mChunks; - mChunks = chunk->next; - return chunk; + T * chunk = mChunks; + mChunks = chunk->next; + return chunk; } template< class T > void LazyBlockAllocator::release(T * const chunk) { - chunk->next = mChunks; - mChunks = chunk; + chunk->next = mChunks; + mChunks = chunk; } template< class T > class HardBlockAllocator { public: - T * acquire() { - T * data = (T *)current_compile_p; - current_compile_p += sizeof(T); - return data; - } + T * acquire() + { + T * data = (T *)current_compile_p; + current_compile_p += sizeof(T); + return data; + } - void release(T * const chunk) { - // Deallocated on invalidation - } + void release(T * const chunk) + { + // Deallocated on invalidation + } }; #if USE_SEPARATE_BIA @@ -608,56 +634,58 @@ static HardBlockAllocator ChecksumInfoAllocator; STATIC_INLINE checksum_info *alloc_checksum_info(void) { - checksum_info *csi = ChecksumInfoAllocator.acquire(); - csi->next = NULL; - return csi; + checksum_info *csi = ChecksumInfoAllocator.acquire(); + csi->next = NULL; + return csi; } STATIC_INLINE void free_checksum_info(checksum_info *csi) { - csi->next = NULL; - ChecksumInfoAllocator.release(csi); + csi->next = NULL; + ChecksumInfoAllocator.release(csi); } STATIC_INLINE void free_checksum_info_chain(checksum_info *csi) { - while (csi != NULL) { - checksum_info *csi2 = csi->next; - free_checksum_info(csi); - csi = csi2; - } + while (csi != NULL) + { + checksum_info *csi2 = csi->next; + free_checksum_info(csi); + csi = csi2; + } } STATIC_INLINE blockinfo *alloc_blockinfo(void) { - blockinfo *bi = BlockInfoAllocator.acquire(); + blockinfo *bi = BlockInfoAllocator.acquire(); #if USE_CHECKSUM_INFO - bi->csi = NULL; + bi->csi = NULL; #endif - return bi; + return bi; } STATIC_INLINE void free_blockinfo(blockinfo *bi) { #if USE_CHECKSUM_INFO - free_checksum_info_chain(bi->csi); - bi->csi = NULL; + free_checksum_info_chain(bi->csi); + bi->csi = NULL; #endif - BlockInfoAllocator.release(bi); + BlockInfoAllocator.release(bi); } STATIC_INLINE void alloc_blockinfos(void) { - int i; - blockinfo* bi; + int i; + blockinfo* bi; - for (i=0;i>24)&0xff) | ((v>>8)&0xff00) | ((v<<8)&0xff0000) | ((v<<24)&0xff000000); + return ((v>>24)&0xff) | ((v>>8)&0xff00) | ((v<<8)&0xff0000) | ((v<<24)&0xff000000); #endif } void set_target(uae_u8* t) { - target = t; + target = t; } STATIC_INLINE uae_u8* get_target_noopt(void) { - return target; + return target; } STATIC_INLINE uae_u8* get_target(void) { - return get_target_noopt(); + return get_target_noopt(); } @@ -740,67 +769,67 @@ STATIC_INLINE void compemu_raw_branch(IMM d); STATIC_INLINE void data_check_end(uae_s32 n, uae_s32 codesize) { - if(data_writepos + n > data_endpos || get_target_noopt() + codesize - data_writepos > DATA_BUFFER_MAXOFFSET) - { - // Start new buffer + if(data_writepos + n > data_endpos || get_target_noopt() + codesize - data_writepos > DATA_BUFFER_MAXOFFSET) + { + // Start new buffer #ifdef DEBUG_DATA_BUFFER - if(data_writepos < data_endpos) - data_wasted += data_endpos - data_writepos; - data_buffers_used++; + if(data_writepos < data_endpos) + data_wasted += data_endpos - data_writepos; + data_buffers_used++; #endif - compemu_raw_branch(DATA_BUFFER_SIZE); - data_writepos = get_target_noopt(); - data_endpos = data_writepos + DATA_BUFFER_SIZE; - set_target(get_target_noopt() + DATA_BUFFER_SIZE); + compemu_raw_branch(DATA_BUFFER_SIZE); + data_writepos = get_target_noopt(); + data_endpos = data_writepos + DATA_BUFFER_SIZE; + set_target(get_target_noopt() + DATA_BUFFER_SIZE); - data_natmem_pos = 0; - } + data_natmem_pos = 0; + } } STATIC_INLINE uae_s32 data_word_offs(uae_u16 x) { - data_check_end(4, 4); - *((uae_u16*)data_writepos) = x; - data_writepos += 2; - *((uae_u16*)data_writepos) = 0; - data_writepos += 2; - return (uae_s32)data_writepos - (uae_s32)get_target_noopt() - 12; + data_check_end(4, 4); + *((uae_u16*)data_writepos) = x; + data_writepos += 2; + *((uae_u16*)data_writepos) = 0; + data_writepos += 2; + return (uae_s32)data_writepos - (uae_s32)get_target_noopt() - 12; } STATIC_INLINE uae_s32 data_long(uae_u32 x, uae_s32 codesize) { - data_check_end(4, codesize); - *((uae_u32*)data_writepos) = x; - data_writepos += 4; - return (uae_s32)data_writepos - 4; + data_check_end(4, codesize); + *((uae_u32*)data_writepos) = x; + data_writepos += 4; + return (uae_s32)data_writepos - 4; } STATIC_INLINE uae_s32 data_long_offs(uae_u32 x) { - data_check_end(4, 4); - *((uae_u32*)data_writepos) = x; - data_writepos += 4; - return (uae_s32)data_writepos - (uae_s32)get_target_noopt() - 12; + data_check_end(4, 4); + *((uae_u32*)data_writepos) = x; + data_writepos += 4; + return (uae_s32)data_writepos - (uae_s32)get_target_noopt() - 12; } -STATIC_INLINE uae_s32 get_data_offset(uae_s32 t) +STATIC_INLINE uae_s32 get_data_offset(uae_s32 t) { - return t - (uae_s32)get_target_noopt() - 8; + return t - (uae_s32)get_target_noopt() - 8; } STATIC_INLINE uae_s32 get_data_natmem(void) { - if(data_natmem_pos == 0 || (uae_s32)get_target_noopt() - data_natmem_pos >= DATA_BUFFER_MAXOFFSET) - { - data_natmem_pos = data_long(NATMEM_OFFSETX, 4); - } - return get_data_offset(data_natmem_pos); + if(data_natmem_pos == 0 || (uae_s32)get_target_noopt() - data_natmem_pos >= DATA_BUFFER_MAXOFFSET) + { + data_natmem_pos = data_long(NATMEM_OFFSETX, 4); + } + return get_data_offset(data_natmem_pos); } STATIC_INLINE void reset_data_buffer(void) { - data_writepos = 0; - data_endpos = 0; + data_writepos = 0; + data_endpos = 0; } #endif @@ -810,7 +839,7 @@ STATIC_INLINE void reset_data_buffer(void) ********************************************************************/ STATIC_INLINE void clobber_flags(void); -#if defined(CPU_arm) +#if defined(CPU_arm) #include "codegen_arm.cpp" #else #include "compemu_raw_x86.cpp" @@ -823,54 +852,58 @@ STATIC_INLINE void clobber_flags(void); static void make_flags_live_internal(void) { - if (live.flags_in_flags == VALID) - return; - Dif (live.flags_on_stack == TRASH) { - jit_abort (_T("JIT: Want flags, got something on stack, but it is TRASH\n")); - } - if (live.flags_on_stack == VALID) { - int tmp; - tmp = readreg_specific(FLAGTMP, 4, FLAG_NREG2); - raw_reg_to_flags(tmp); - unlock2(tmp); + if (live.flags_in_flags == VALID) + return; + Dif (live.flags_on_stack == TRASH) + { + jit_abort (_T("JIT: Want flags, got something on stack, but it is TRASH\n")); + } + if (live.flags_on_stack == VALID) + { + int tmp; + tmp = readreg_specific(FLAGTMP, 4, FLAG_NREG2); + raw_reg_to_flags(tmp); + unlock2(tmp); - live.flags_in_flags = VALID; - return; - } - jit_abort (_T("JIT: Huh? live.flags_in_flags=%d, live.flags_on_stack=%d, but need to make live\n"), - live.flags_in_flags, live.flags_on_stack); + live.flags_in_flags = VALID; + return; + } + jit_abort (_T("JIT: Huh? live.flags_in_flags=%d, live.flags_on_stack=%d, but need to make live\n"), + live.flags_in_flags, live.flags_on_stack); } static void flags_to_stack(void) { - if (live.flags_on_stack == VALID) - return; - if (!live.flags_are_important) { - live.flags_on_stack = VALID; - return; - } - Dif (live.flags_in_flags != VALID) - jit_abort(_T("flags_to_stack != VALID")); - else { - int tmp; - tmp = writereg_specific(FLAGTMP, 4, FLAG_NREG1); - raw_flags_to_reg(tmp); - unlock2(tmp); - } - live.flags_on_stack = VALID; + if (live.flags_on_stack == VALID) + return; + if (!live.flags_are_important) + { + live.flags_on_stack = VALID; + return; + } + Dif (live.flags_in_flags != VALID) + jit_abort(_T("flags_to_stack != VALID")); + else + { + int tmp; + tmp = writereg_specific(FLAGTMP, 4, FLAG_NREG1); + raw_flags_to_reg(tmp); + unlock2(tmp); + } + live.flags_on_stack = VALID; } STATIC_INLINE void clobber_flags(void) { - if (live.flags_in_flags == VALID && live.flags_on_stack != VALID) - flags_to_stack(); - live.flags_in_flags = TRASH; + if (live.flags_in_flags == VALID && live.flags_on_stack != VALID) + flags_to_stack(); + live.flags_in_flags = TRASH; } /* Prepare for leaving the compiled stuff */ STATIC_INLINE void flush_flags(void) { - flags_to_stack(); + flags_to_stack(); } int touchcnt; @@ -886,12 +919,12 @@ int touchcnt; STATIC_INLINE void do_load_reg(int n, int r) { - if (r == FLAGTMP) - raw_load_flagreg(n, r); - else if (r == FLAGX) - raw_load_flagx(n, r); - else - compemu_raw_mov_l_rm(n, (uintptr) live.state[r].mem); + if (r == FLAGTMP) + raw_load_flagreg(n, r); + else if (r == FLAGX) + raw_load_flagx(n, r); + else + compemu_raw_mov_l_rm(n, (uintptr) live.state[r].mem); } /******************************************************************** @@ -900,376 +933,418 @@ STATIC_INLINE void do_load_reg(int n, int r) STATIC_INLINE void set_status(int r, int status) { - live.state[r].status = status; + live.state[r].status = status; } STATIC_INLINE int isinreg(int r) { - return live.state[r].status == CLEAN || live.state[r].status == DIRTY; + return live.state[r].status == CLEAN || live.state[r].status == DIRTY; } static void tomem(int r) { - int rr = live.state[r].realreg; + int rr = live.state[r].realreg; - if (live.state[r].status == DIRTY) { - switch (live.state[r].dirtysize) { - case 1: compemu_raw_mov_b_mr((uintptr)live.state[r].mem, rr); break; - case 2: compemu_raw_mov_w_mr((uintptr)live.state[r].mem, rr); break; - case 4: compemu_raw_mov_l_mr((uintptr)live.state[r].mem, rr); break; - default: abort(); - } - set_status(r, CLEAN); - live.state[r].dirtysize = 0; - } + if (live.state[r].status == DIRTY) + { + switch (live.state[r].dirtysize) + { + case 1: + compemu_raw_mov_b_mr((uintptr)live.state[r].mem, rr); + break; + case 2: + compemu_raw_mov_w_mr((uintptr)live.state[r].mem, rr); + break; + case 4: + compemu_raw_mov_l_mr((uintptr)live.state[r].mem, rr); + break; + default: + abort(); + } + set_status(r, CLEAN); + live.state[r].dirtysize = 0; + } } STATIC_INLINE int isconst(int r) { - return live.state[r].status == ISCONST; + return live.state[r].status == ISCONST; } int is_const(int r) { - return isconst(r); + return isconst(r); } STATIC_INLINE void writeback_const(int r) { - if (!isconst(r)) - return; + if (!isconst(r)) + return; - compemu_raw_mov_l_mi((uintptr)live.state[r].mem, live.state[r].val); - live.state[r].val = 0; - set_status(r, INMEM); + compemu_raw_mov_l_mi((uintptr)live.state[r].mem, live.state[r].val); + live.state[r].val = 0; + set_status(r, INMEM); } STATIC_INLINE void tomem_c(int r) { - if (isconst(r)) { - writeback_const(r); - } - else - tomem(r); + if (isconst(r)) + { + writeback_const(r); + } + else + tomem(r); } static void evict(int r) { - int rr; + int rr; - if (!isinreg(r)) - return; - tomem(r); - rr = live.state[r].realreg; + if (!isinreg(r)) + return; + tomem(r); + rr = live.state[r].realreg; - Dif (live.nat[rr].locked && - live.nat[rr].nholds == 1) { - jit_abort (_T("JIT: register %d in nreg %d is locked!\n"), r, live.state[r].realreg); - } + Dif (live.nat[rr].locked && + live.nat[rr].nholds == 1) + { + jit_abort (_T("JIT: register %d in nreg %d is locked!\n"), r, live.state[r].realreg); + } - live.nat[rr].nholds--; - if (live.nat[rr].nholds != live.state[r].realind) { /* Was not last */ - int topreg = live.nat[rr].holds[live.nat[rr].nholds]; - int thisind = live.state[r].realind; - live.nat[rr].holds[thisind] = topreg; - live.state[topreg].realind = thisind; - } - live.state[r].realreg = -1; - set_status(r, INMEM); + live.nat[rr].nholds--; + if (live.nat[rr].nholds != live.state[r].realind) /* Was not last */ + { + int topreg = live.nat[rr].holds[live.nat[rr].nholds]; + int thisind = live.state[r].realind; + live.nat[rr].holds[thisind] = topreg; + live.state[topreg].realind = thisind; + } + live.state[r].realreg = -1; + set_status(r, INMEM); } STATIC_INLINE void free_nreg(int r) { - int i = live.nat[r].nholds; + int i = live.nat[r].nholds; - while (i) { - int vr; + while (i) + { + int vr; - --i; - vr = live.nat[r].holds[i]; - evict(vr); - } - Dif (live.nat[r].nholds != 0) { - jit_abort (_T("JIT: Failed to free nreg %d, nholds is %d\n"), r, live.nat[r].nholds); - } + --i; + vr = live.nat[r].holds[i]; + evict(vr); + } + Dif (live.nat[r].nholds != 0) + { + jit_abort (_T("JIT: Failed to free nreg %d, nholds is %d\n"), r, live.nat[r].nholds); + } } /* Use with care! */ STATIC_INLINE void isclean(int r) { - if (!isinreg(r)) - return; - live.state[r].validsize = 4; - live.state[r].dirtysize = 0; - live.state[r].val = 0; - set_status(r, CLEAN); + if (!isinreg(r)) + return; + live.state[r].validsize = 4; + live.state[r].dirtysize = 0; + live.state[r].val = 0; + set_status(r, CLEAN); } STATIC_INLINE void disassociate(int r) { - isclean(r); - evict(r); + isclean(r); + evict(r); } STATIC_INLINE void set_const(int r, uae_u32 val) { - disassociate(r); - live.state[r].val = val; - set_status(r, ISCONST); + disassociate(r); + live.state[r].val = val; + set_status(r, ISCONST); } static int alloc_reg_hinted(int r, int size, int willclobber, int hint) { - int bestreg; - uae_s32 when; - int i; - uae_s32 badness = 0; /* to shut up gcc */ - bestreg = -1; - when = 2000000000; + int bestreg; + uae_s32 when; + int i; + uae_s32 badness = 0; /* to shut up gcc */ + bestreg = -1; + when = 2000000000; - /* XXX use a regalloc_order table? */ - for (i=0; i 0) { - free_nreg(bestreg); - } - if (isinreg(r)) { - int rr = live.state[r].realreg; - /* This will happen if we read a partially dirty register at a - bigger size */ - Dif (willclobber || live.state[r].validsize >= size) - jit_abort(_T("willclobber || live.state[r].validsize>=size")); - Dif (live.nat[rr].nholds != 1) - jit_abort(_T("live.nat[rr].nholds!=1")); - if (size == 4 && live.state[r].validsize == 2) { - compemu_raw_mov_l_rm(bestreg, (uintptr)live.state[r].mem); - compemu_raw_MERGE_rr(rr, bestreg); - live.state[r].validsize = 4; - live.nat[rr].touched = touchcnt++; - return rr; - } - if (live.state[r].validsize == 1) { - /* Nothing yet */ - } - evict(r); - } + if (live.nat[bestreg].nholds > 0) + { + free_nreg(bestreg); + } + if (isinreg(r)) + { + int rr = live.state[r].realreg; + /* This will happen if we read a partially dirty register at a + bigger size */ + Dif (willclobber || live.state[r].validsize >= size) + jit_abort(_T("willclobber || live.state[r].validsize>=size")); + Dif (live.nat[rr].nholds != 1) + jit_abort(_T("live.nat[rr].nholds!=1")); + if (size == 4 && live.state[r].validsize == 2) + { + compemu_raw_mov_l_rm(bestreg, (uintptr)live.state[r].mem); + compemu_raw_MERGE_rr(rr, bestreg); + live.state[r].validsize = 4; + live.nat[rr].touched = touchcnt++; + return rr; + } + if (live.state[r].validsize == 1) + { + /* Nothing yet */ + } + evict(r); + } - if (!willclobber) { - if (live.state[r].status != UNDEF) { - if (isconst(r)) { - compemu_raw_mov_l_ri(bestreg, live.state[r].val); - live.state[r].val = 0; - live.state[r].dirtysize = 4; - set_status(r, DIRTY); - } - else { - do_load_reg(bestreg, r); - live.state[r].dirtysize = 0; - set_status(r, CLEAN); - } - } - else { - live.state[r].val = 0; - live.state[r].dirtysize = 0; - set_status(r, CLEAN); - } - live.state[r].validsize = 4; - } - else { /* this is the easiest way, but not optimal. FIXME! */ - /* Now it's trickier, but hopefully still OK */ - if (!isconst(r) || size == 4) { - live.state[r].validsize = size; - live.state[r].dirtysize = size; - live.state[r].val = 0; - set_status(r, DIRTY); - } - else { - if (live.state[r].status != UNDEF) - compemu_raw_mov_l_ri(bestreg, live.state[r].val); - live.state[r].val = 0; - live.state[r].validsize = 4; - live.state[r].dirtysize = 4; - set_status(r, DIRTY); - } - } - live.state[r].realreg = bestreg; - live.state[r].realind = live.nat[bestreg].nholds; - live.nat[bestreg].touched = touchcnt++; - live.nat[bestreg].holds[live.nat[bestreg].nholds] = r; - live.nat[bestreg].nholds++; + if (!willclobber) + { + if (live.state[r].status != UNDEF) + { + if (isconst(r)) + { + compemu_raw_mov_l_ri(bestreg, live.state[r].val); + live.state[r].val = 0; + live.state[r].dirtysize = 4; + set_status(r, DIRTY); + } + else + { + do_load_reg(bestreg, r); + live.state[r].dirtysize = 0; + set_status(r, CLEAN); + } + } + else + { + live.state[r].val = 0; + live.state[r].dirtysize = 0; + set_status(r, CLEAN); + } + live.state[r].validsize = 4; + } + else /* this is the easiest way, but not optimal. FIXME! */ + { + /* Now it's trickier, but hopefully still OK */ + if (!isconst(r) || size == 4) + { + live.state[r].validsize = size; + live.state[r].dirtysize = size; + live.state[r].val = 0; + set_status(r, DIRTY); + } + else + { + if (live.state[r].status != UNDEF) + compemu_raw_mov_l_ri(bestreg, live.state[r].val); + live.state[r].val = 0; + live.state[r].validsize = 4; + live.state[r].dirtysize = 4; + set_status(r, DIRTY); + } + } + live.state[r].realreg = bestreg; + live.state[r].realind = live.nat[bestreg].nholds; + live.nat[bestreg].touched = touchcnt++; + live.nat[bestreg].holds[live.nat[bestreg].nholds] = r; + live.nat[bestreg].nholds++; - return bestreg; + return bestreg; } static void unlock2(int r) { - Dif (!live.nat[r].locked) - jit_abort(_T("unlock2 %d not locked"), r); - live.nat[r].locked--; + Dif (!live.nat[r].locked) + jit_abort(_T("unlock2 %d not locked"), r); + live.nat[r].locked--; } static void setlock(int r) { - live.nat[r].locked++; + live.nat[r].locked++; } static void mov_nregs(int d, int s) { - int nd = live.nat[d].nholds; - int i; + int nd = live.nat[d].nholds; + int i; - if (s == d) - return; + if (s == d) + return; - if (nd > 0) - free_nreg(d); + if (nd > 0) + free_nreg(d); - compemu_raw_mov_l_rr(d, s); + compemu_raw_mov_l_rr(d, s); - for (i=0; i= size) { - n = live.state[r].realreg; + if (isinreg(r) && live.state[r].validsize >= size) + { + n = live.state[r].realreg; - answer = n; + answer = n; - if (answer < 0) - evict(r); - } - /* either the value was in memory to start with, or it was evicted and - is in memory now */ - if (answer < 0) { - answer = alloc_reg_hinted(r, spec >= 0 ? 4 : size, 0, spec); - } + if (answer < 0) + evict(r); + } + /* either the value was in memory to start with, or it was evicted and + is in memory now */ + if (answer < 0) + { + answer = alloc_reg_hinted(r, spec >= 0 ? 4 : size, 0, spec); + } - if (spec >= 0 && spec != answer) { - /* Too bad */ - mov_nregs(spec, answer); - answer = spec; - } - live.nat[answer].locked++; - live.nat[answer].touched = touchcnt++; - return answer; + if (spec >= 0 && spec != answer) + { + /* Too bad */ + mov_nregs(spec, answer); + answer = spec; + } + live.nat[answer].locked++; + live.nat[answer].touched = touchcnt++; + return answer; } static int readreg(int r, int size) { - return readreg_general(r, size, -1); + return readreg_general(r, size, -1); } static int readreg_specific(int r, int size, int spec) { - return readreg_general(r, size, spec); + return readreg_general(r, size, spec); } /* writereg_general(r, size, spec) @@ -1285,109 +1360,120 @@ static int readreg_specific(int r, int size, int spec) */ STATIC_INLINE int writereg_general(int r, int size, int spec) { - int n; - int answer = -1; + int n; + int answer = -1; - make_exclusive(r, size, spec); - if (isinreg(r)) { - int nvsize = size > live.state[r].validsize ? size : live.state[r].validsize; - int ndsize = size > live.state[r].dirtysize ? size : live.state[r].dirtysize; - n = live.state[r].realreg; + make_exclusive(r, size, spec); + if (isinreg(r)) + { + int nvsize = size > live.state[r].validsize ? size : live.state[r].validsize; + int ndsize = size > live.state[r].dirtysize ? size : live.state[r].dirtysize; + n = live.state[r].realreg; - Dif (live.nat[n].nholds != 1) - jit_abort(_T("live.nat[%d].nholds!=1"), n); + Dif (live.nat[n].nholds != 1) + jit_abort(_T("live.nat[%d].nholds!=1"), n); - live.state[r].dirtysize = ndsize; - live.state[r].validsize = nvsize; - answer = n; + live.state[r].dirtysize = ndsize; + live.state[r].validsize = nvsize; + answer = n; - if (answer < 0) - evict(r); - } - /* either the value was in memory to start with, or it was evicted and - is in memory now */ - if (answer < 0) { - answer = alloc_reg_hinted(r, size, 1, spec); - } - if (spec >= 0 && spec != answer) { - mov_nregs(spec, answer); - answer = spec; - } - if (live.state[r].status == UNDEF) - live.state[r].validsize = 4; - live.state[r].dirtysize = size > live.state[r].dirtysize ? size : live.state[r].dirtysize; - live.state[r].validsize = size > live.state[r].validsize ? size : live.state[r].validsize; + if (answer < 0) + evict(r); + } + /* either the value was in memory to start with, or it was evicted and + is in memory now */ + if (answer < 0) + { + answer = alloc_reg_hinted(r, size, 1, spec); + } + if (spec >= 0 && spec != answer) + { + mov_nregs(spec, answer); + answer = spec; + } + if (live.state[r].status == UNDEF) + live.state[r].validsize = 4; + live.state[r].dirtysize = size > live.state[r].dirtysize ? size : live.state[r].dirtysize; + live.state[r].validsize = size > live.state[r].validsize ? size : live.state[r].validsize; - live.nat[answer].locked++; - live.nat[answer].touched = touchcnt++; - if (size == 4) { - live.state[r].val = 0; - } - else { - Dif (live.state[r].val) { - jit_abort (_T("JIT: Problem with val\n")); - } - } - set_status(r, DIRTY); - return answer; + live.nat[answer].locked++; + live.nat[answer].touched = touchcnt++; + if (size == 4) + { + live.state[r].val = 0; + } + else + { + Dif (live.state[r].val) + { + jit_abort (_T("JIT: Problem with val\n")); + } + } + set_status(r, DIRTY); + return answer; } static int writereg(int r, int size) { - return writereg_general(r, size, -1); + return writereg_general(r, size, -1); } static int writereg_specific(int r, int size, int spec) { - return writereg_general(r, size, spec); + return writereg_general(r, size, spec); } STATIC_INLINE int rmw_general(int r, int wsize, int rsize) { - int n; - int answer = -1; + int n; + int answer = -1; - if (live.state[r].status == UNDEF) { - D(panicbug("JIT: WARNING: Unexpected read of undefined register %d\n", r)); - } - make_exclusive(r, 0, -1); + if (live.state[r].status == UNDEF) + { + D(panicbug("JIT: WARNING: Unexpected read of undefined register %d\n", r)); + } + make_exclusive(r, 0, -1); - Dif (wsize < rsize) { - jit_abort (_T("JIT: Cannot handle wsize= rsize) { - n = live.state[r].realreg; - Dif (live.nat[n].nholds != 1) - jit_abort(_T("live.nat[n].nholds!=1"), n); + Dif (wsize < rsize) + { + jit_abort (_T("JIT: Cannot handle wsize= rsize) + { + n = live.state[r].realreg; + Dif (live.nat[n].nholds != 1) + jit_abort(_T("live.nat[n].nholds!=1"), n); - answer = n; - if (answer < 0) - evict(r); - } - /* either the value was in memory to start with, or it was evicted and - is in memory now */ - if (answer < 0) { - answer = alloc_reg_hinted(r, rsize, 0, -1); - } + answer = n; + if (answer < 0) + evict(r); + } + /* either the value was in memory to start with, or it was evicted and + is in memory now */ + if (answer < 0) + { + answer = alloc_reg_hinted(r, rsize, 0, -1); + } - if (wsize > live.state[r].dirtysize) - live.state[r].dirtysize = wsize; - if (wsize > live.state[r].validsize) - live.state[r].validsize = wsize; - set_status(r, DIRTY); + if (wsize > live.state[r].dirtysize) + live.state[r].dirtysize = wsize; + if (wsize > live.state[r].validsize) + live.state[r].validsize = wsize; + set_status(r, DIRTY); - live.nat[answer].locked++; - live.nat[answer].touched = touchcnt++; + live.nat[answer].locked++; + live.nat[answer].touched = touchcnt++; - Dif (live.state[r].val) { - jit_abort (_T("JIT: Problem with val(rmw)\n")); - } - return answer; + Dif (live.state[r].val) + { + jit_abort (_T("JIT: Problem with val(rmw)\n")); + } + return answer; } static int rmw(int r, int wsize, int rsize) { - return rmw_general(r, wsize, rsize); + return rmw_general(r, wsize, rsize); } /******************************************************************** @@ -1397,286 +1483,310 @@ static int rmw(int r, int wsize, int rsize) #ifdef USE_JIT_FPU static void f_tomem(int r) { - if (live.fate[r].status == DIRTY) { + if (live.fate[r].status == DIRTY) + { #if USE_LONG_DOUBLE - raw_fmov_ext_mr((uintptr)live.fate[r].mem, live.fate[r].realreg); + raw_fmov_ext_mr((uintptr)live.fate[r].mem, live.fate[r].realreg); #else - raw_fmov_mr((uintptr)live.fate[r].mem, live.fate[r].realreg); + raw_fmov_mr((uintptr)live.fate[r].mem, live.fate[r].realreg); #endif - live.fate[r].status = CLEAN; - } + live.fate[r].status = CLEAN; + } } static void f_tomem_drop(int r) { - if (live.fate[r].status == DIRTY) { + if (live.fate[r].status == DIRTY) + { #if USE_LONG_DOUBLE - raw_fmov_ext_mr_drop((uintptr)live.fate[r].mem, live.fate[r].realreg); + raw_fmov_ext_mr_drop((uintptr)live.fate[r].mem, live.fate[r].realreg); #else - raw_fmov_mr_drop((uintptr)live.fate[r].mem, live.fate[r].realreg); + raw_fmov_mr_drop((uintptr)live.fate[r].mem, live.fate[r].realreg); #endif - live.fate[r].status = INMEM; - } + live.fate[r].status = INMEM; + } } STATIC_INLINE int f_isinreg(int r) { - return live.fate[r].status == CLEAN || live.fate[r].status == DIRTY; + return live.fate[r].status == CLEAN || live.fate[r].status == DIRTY; } static void f_evict(int r) { - int rr; + int rr; - if (!f_isinreg(r)) - return; - rr = live.fate[r].realreg; - if (live.fat[rr].nholds == 1) - f_tomem_drop(r); - else - f_tomem(r); + if (!f_isinreg(r)) + return; + rr = live.fate[r].realreg; + if (live.fat[rr].nholds == 1) + f_tomem_drop(r); + else + f_tomem(r); - Dif (live.fat[rr].locked && - live.fat[rr].nholds==1) { - jit_abort (_T("JIT: FPU register %d in nreg %d is locked!\n"),r,live.fate[r].realreg); - } - live.fat[rr].nholds--; - if (live.fat[rr].nholds!=live.fate[r].realind) { /* Was not last */ - int topreg=live.fat[rr].holds[live.fat[rr].nholds]; - int thisind=live.fate[r].realind; - live.fat[rr].holds[thisind]=topreg; - live.fate[topreg].realind=thisind; - } - live.fate[r].status=INMEM; - live.fate[r].realreg=-1; + Dif (live.fat[rr].locked && + live.fat[rr].nholds==1) + { + jit_abort (_T("JIT: FPU register %d in nreg %d is locked!\n"),r,live.fate[r].realreg); + } + live.fat[rr].nholds--; + if (live.fat[rr].nholds!=live.fate[r].realind) /* Was not last */ + { + int topreg=live.fat[rr].holds[live.fat[rr].nholds]; + int thisind=live.fate[r].realind; + live.fat[rr].holds[thisind]=topreg; + live.fate[topreg].realind=thisind; + } + live.fate[r].status=INMEM; + live.fate[r].realreg=-1; } STATIC_INLINE void f_free_nreg(int r) { - int i=live.fat[r].nholds; + int i=live.fat[r].nholds; - while (i) { - int vr; + while (i) + { + int vr; - --i; - vr=live.fat[r].holds[i]; - f_evict(vr); - } - Dif (live.fat[r].nholds!=0) { - jit_abort (_T("JIT: Failed to free nreg %d, nholds is %d\n"),r,live.fat[r].nholds); - } + --i; + vr=live.fat[r].holds[i]; + f_evict(vr); + } + Dif (live.fat[r].nholds!=0) + { + jit_abort (_T("JIT: Failed to free nreg %d, nholds is %d\n"),r,live.fat[r].nholds); + } } /* Use with care! */ STATIC_INLINE void f_isclean(int r) { - if (!f_isinreg(r)) - return; - live.fate[r].status=CLEAN; + if (!f_isinreg(r)) + return; + live.fate[r].status=CLEAN; } STATIC_INLINE void f_disassociate(int r) { - f_isclean(r); - f_evict(r); + f_isclean(r); + f_evict(r); } static int f_alloc_reg(int r, int willclobber) { - int bestreg; - uae_s32 when; - int i; - uae_s32 badness; - bestreg=-1; - when=2000000000; - for (i=N_FREGS;i--;) { - badness=live.fat[i].touched; - if (live.fat[i].nholds==0) - badness=0; + int bestreg; + uae_s32 when; + int i; + uae_s32 badness; + bestreg=-1; + when=2000000000; + for (i=N_FREGS; i--;) + { + badness=live.fat[i].touched; + if (live.fat[i].nholds==0) + badness=0; - if (!live.fat[i].locked && badness0) { - f_free_nreg(bestreg); - } - if (f_isinreg(r)) { - f_evict(r); - } + if (live.fat[bestreg].nholds>0) + { + f_free_nreg(bestreg); + } + if (f_isinreg(r)) + { + f_evict(r); + } - if (!willclobber) { - if (live.fate[r].status!=UNDEF) { + if (!willclobber) + { + if (live.fate[r].status!=UNDEF) + { #if USE_LONG_DOUBLE - raw_fmov_ext_rm(bestreg,(uintptr)live.fate[r].mem); + raw_fmov_ext_rm(bestreg,(uintptr)live.fate[r].mem); #else - raw_fmov_rm(bestreg,(uintptr)live.fate[r].mem); + raw_fmov_rm(bestreg,(uintptr)live.fate[r].mem); #endif - } - live.fate[r].status=CLEAN; - } - else { - live.fate[r].status=DIRTY; - } - live.fate[r].realreg=bestreg; - live.fate[r].realind=live.fat[bestreg].nholds; - live.fat[bestreg].touched=touchcnt++; - live.fat[bestreg].holds[live.fat[bestreg].nholds]=r; - live.fat[bestreg].nholds++; + } + live.fate[r].status=CLEAN; + } + else + { + live.fate[r].status=DIRTY; + } + live.fate[r].realreg=bestreg; + live.fate[r].realind=live.fat[bestreg].nholds; + live.fat[bestreg].touched=touchcnt++; + live.fat[bestreg].holds[live.fat[bestreg].nholds]=r; + live.fat[bestreg].nholds++; - return bestreg; + return bestreg; } static void f_unlock(int r) { - Dif (!live.fat[r].locked) - jit_abort(_T("unlock %d"), r); - live.fat[r].locked--; + Dif (!live.fat[r].locked) + jit_abort(_T("unlock %d"), r); + live.fat[r].locked--; } static void f_setlock(int r) { - live.fat[r].locked++; + live.fat[r].locked++; } STATIC_INLINE int f_readreg(int r) { - int n; - int answer=-1; + int n; + int answer=-1; - if (f_isinreg(r)) { - n=live.fate[r].realreg; - answer=n; - } - /* either the value was in memory to start with, or it was evicted and - is in memory now */ - if (answer<0) - answer=f_alloc_reg(r,0); + if (f_isinreg(r)) + { + n=live.fate[r].realreg; + answer=n; + } + /* either the value was in memory to start with, or it was evicted and + is in memory now */ + if (answer<0) + answer=f_alloc_reg(r,0); - live.fat[answer].locked++; - live.fat[answer].touched=touchcnt++; - return answer; + live.fat[answer].locked++; + live.fat[answer].touched=touchcnt++; + return answer; } STATIC_INLINE void f_make_exclusive(int r, int clobber) { - freg_status oldstate; - int rr=live.fate[r].realreg; - int nr; - int nind; - int ndirt=0; - int i; + freg_status oldstate; + int rr=live.fate[r].realreg; + int nr; + int nind; + int ndirt=0; + int i; - if (!f_isinreg(r)) - return; - if (live.fat[rr].nholds==1) - return; - for (i=0;i : compile FPU instructions : %s", !avoid_fpu ? "yes" : "no")); - - // Initialize target CPU (check for features, e.g. CMOV, rat stalls) - raw_init_cpu(); - // Translation cache flush mechanism - lazy_flush = 1; //(bx_options.jit.jitlazyflush == 0) ? 0 : 1; - flush_icache = lazy_flush ? flush_icache_lazy : flush_icache_hard; - - // Compiler features + // Initialize target CPU (check for features, e.g. CMOV, rat stalls) + raw_init_cpu(); + + // Translation cache flush mechanism + lazy_flush = 1; //(bx_options.jit.jitlazyflush == 0) ? 0 : 1; + flush_icache = lazy_flush ? flush_icache_lazy : flush_icache_hard; + + // Compiler features #if USE_INLINING - follow_const_jumps = 1; //bx_options.jit.jitinline; + follow_const_jumps = 1; //bx_options.jit.jitinline; #endif - - // Build compiler tables - // build_comp(); // moved to newcpu.cpp -> build_cpufunctbl - - initialized = 1; + + // Build compiler tables + // build_comp(); // moved to newcpu.cpp -> build_cpufunctbl + + initialized = 1; #ifdef PROFILE_UNTRANSLATED_INSNS - bug(" : gather statistics on untranslated insns count\n"); + bug(" : gather statistics on untranslated insns count\n"); #endif #ifdef PROFILE_COMPILE_TIME - bug(" : gather statistics on translation time"); - emul_start_time = clock(); + bug(" : gather statistics on translation time"); + emul_start_time = clock(); #endif } void compiler_exit(void) { #ifdef PROFILE_COMPILE_TIME - emul_end_time = clock(); + emul_end_time = clock(); #endif #if defined(CPU_arm) && !defined(ARMV6T2) #ifdef DEBUG_DATA_BUFFER - printf("data_wasted = %d bytes in %d blocks\n", data_wasted, data_buffers_used); + printf("data_wasted = %d bytes in %d blocks\n", data_wasted, data_buffers_used); #endif #endif - // Deallocate translation cache - if (compiled_code) { - cache_free(compiled_code, currprefs.cachesize * 1024); - compiled_code = 0; - } + // Deallocate translation cache + if (compiled_code) + { + cache_free(compiled_code, currprefs.cachesize * 1024); + compiled_code = 0; + } - // Deallocate popallspace - if (popallspace) { - cache_free(popallspace, POPALLSPACE_SIZE); - popallspace = 0; - } + // Deallocate popallspace + if (popallspace) + { + cache_free(popallspace, POPALLSPACE_SIZE); + popallspace = 0; + } #ifdef PROFILE_COMPILE_TIME - bug("### Compile Block statistics"); - bug("Number of calls to compile_block : %d", compile_count); - uae_u32 emul_time = emul_end_time - emul_start_time; - bug("Total emulation time : %.1f sec", double(emul_time)/double(CLOCKS_PER_SEC)); - bug("Total compilation time : %.1f sec (%.1f%%)", double(compile_time)/double(CLOCKS_PER_SEC), 100.0*double(compile_time)/double(emul_time)); + bug("### Compile Block statistics"); + bug("Number of calls to compile_block : %d", compile_count); + uae_u32 emul_time = emul_end_time - emul_start_time; + bug("Total emulation time : %.1f sec", double(emul_time)/double(CLOCKS_PER_SEC)); + bug("Total compilation time : %.1f sec (%.1f%%)", double(compile_time)/double(CLOCKS_PER_SEC), 100.0*double(compile_time)/double(emul_time)); #endif #ifdef PROFILE_UNTRANSLATED_INSNS - uae_u64 untranslated_count = 0; - for (int i = 0; i < 65536; i++) { - opcode_nums[i] = i; - untranslated_count += raw_cputbl_count[i]; - } - bug("Sorting out untranslated instructions count...\n"); - qsort(opcode_nums, 65536, sizeof(uae_u16), untranslated_compfn); - bug("Rank Opc Count Name\n"); - for (int i = 0; i < untranslated_top_ten && i < 65536; i++) { - uae_u32 count = raw_cputbl_count[opcode_nums[i]]; - struct instr *dp; - struct mnemolookup *lookup; - if (!count) - break; - dp = table68k + opcode_nums[i]; - for (lookup = lookuptab; lookup->mnemo != (instrmnem)dp->mnemo; lookup++) - ; - if(strcmp(lookup->name, "FPP") == 0 - || strcmp(lookup->name, "FBcc") == 0 - || strcmp(lookup->name, "DIVS") == 0 - || strcmp(lookup->name, "DIVU") == 0 - || strcmp(lookup->name, "DIVL") == 0) { - untranslated_top_ten++; // Ignore this - } - else - bug("%03d: %04x %10u %s\n", i, opcode_nums[i], count, lookup->name); - } + uae_u64 untranslated_count = 0; + for (int i = 0; i < 65536; i++) + { + opcode_nums[i] = i; + untranslated_count += raw_cputbl_count[i]; + } + bug("Sorting out untranslated instructions count...\n"); + qsort(opcode_nums, 65536, sizeof(uae_u16), untranslated_compfn); + bug("Rank Opc Count Name\n"); + for (int i = 0; i < untranslated_top_ten && i < 65536; i++) + { + uae_u32 count = raw_cputbl_count[opcode_nums[i]]; + struct instr *dp; + struct mnemolookup *lookup; + if (!count) + break; + dp = table68k + opcode_nums[i]; + for (lookup = lookuptab; lookup->mnemo != (instrmnem)dp->mnemo; lookup++) + ; + if(strcmp(lookup->name, "FPP") == 0 + || strcmp(lookup->name, "FBcc") == 0 + || strcmp(lookup->name, "DIVS") == 0 + || strcmp(lookup->name, "DIVU") == 0 + || strcmp(lookup->name, "DIVL") == 0) + { + untranslated_top_ten++; // Ignore this + } + else + bug("%03d: %04x %10u %s\n", i, opcode_nums[i], count, lookup->name); + } #endif } void init_comp(void) { - int i; - uae_s8* au = always_used; + int i; + uae_s8* au = always_used; #ifdef RECORD_REGISTER_USAGE - for (i=0; i<16; i++) - reg_count_local[i] = 0; + for (i=0; i<16; i++) + reg_count_local[i] = 0; #endif - for (i=0; i= (uae_u32)kickmemory && - addr < (uae_u32)kickmemory + 8 * 65536); + return (addr >= (uae_u32)kickmemory && + addr < (uae_u32)kickmemory + 8 * 65536); } static void flush_all(void) { - int i; + int i; - for (i = 0; i < VREGS; i++) - if (live.state[i].status == DIRTY) { - if (!call_saved[live.state[i].realreg]) { - tomem(i); - } - } + for (i = 0; i < VREGS; i++) + if (live.state[i].status == DIRTY) + { + if (!call_saved[live.state[i].realreg]) + { + tomem(i); + } + } #ifdef USE_JIT_FPU - for (i = 0; i < VFREGS; i++) - if (f_isinreg(i)) - f_evict(i); - raw_fp_cleanup_drop(); + for (i = 0; i < VFREGS; i++) + if (f_isinreg(i)) + f_evict(i); + raw_fp_cleanup_drop(); #endif } @@ -2048,7 +2190,7 @@ static void flush_all(void) save and sound in memory */ static void prepare_for_call_1(void) { - flush_all(); /* If there are registers that don't get clobbered, + flush_all(); /* If there are registers that don't get clobbered, * we should be a bit more selective here */ } @@ -2056,20 +2198,20 @@ static void prepare_for_call_1(void) so we need to disassociate everything */ static void prepare_for_call_2(void) { - int i; - for (i = 0; i < N_REGS; i++) - { - if (!call_saved[i] && live.nat[i].nholds > 0) - free_nreg(i); - } + int i; + for (i = 0; i < N_REGS; i++) + { + if (!call_saved[i] && live.nat[i].nholds > 0) + free_nreg(i); + } #ifdef USE_JIT_FPU - for (i = 0; i < N_FREGS; i++) - if (live.fat[i].nholds > 0) - f_free_nreg(i); + for (i = 0; i < N_FREGS; i++) + if (live.fat[i].nholds > 0) + f_free_nreg(i); #endif - live.flags_in_flags = TRASH; /* Note: We assume we already rescued the + live.flags_in_flags = TRASH; /* Note: We assume we already rescued the flags at the very start of the call_r functions! */ } @@ -2080,9 +2222,9 @@ static void prepare_for_call_2(void) void register_branch(uae_u32 not_taken, uae_u32 taken, uae_u8 cond) { - next_pc_p = not_taken; - taken_pc_p = taken; - branch_cc = cond; + next_pc_p = not_taken; + taken_pc_p = taken; + branch_cc = cond; } /* Note: get_handler may fail in 64 Bit environments, if direct_handler_to_use is @@ -2090,8 +2232,8 @@ void register_branch(uae_u32 not_taken, uae_u32 taken, uae_u8 cond) */ static uintptr get_handler(uintptr addr) { - blockinfo* bi = get_blockinfo_addr_new((void*)(uintptr) addr, 0); - return (uintptr)bi->direct_handler_to_use; + blockinfo* bi = get_blockinfo_addr_new((void*)(uintptr) addr, 0); + return (uintptr)bi->direct_handler_to_use; } /* This version assumes that it is writing *real* memory, and *will* fail @@ -2100,84 +2242,112 @@ static uintptr get_handler(uintptr addr) static void writemem_real(int address, int source, int size) { - if(currprefs.address_space_24) - { - switch(size) { - case 1: jnf_MEM_WRITE24_OFF_b(address, source); break; - case 2: jnf_MEM_WRITE24_OFF_w(address, source); break; - case 4: jnf_MEM_WRITE24_OFF_l(address, source); break; - } - } - else - { - switch(size) { - case 1: jnf_MEM_WRITE_OFF_b(address, source); break; - case 2: jnf_MEM_WRITE_OFF_w(address, source); break; - case 4: jnf_MEM_WRITE_OFF_l(address, source); break; - } - } + if(currprefs.address_space_24) + { + switch(size) + { + case 1: + jnf_MEM_WRITE24_OFF_b(address, source); + break; + case 2: + jnf_MEM_WRITE24_OFF_w(address, source); + break; + case 4: + jnf_MEM_WRITE24_OFF_l(address, source); + break; + } + } + else + { + switch(size) + { + case 1: + jnf_MEM_WRITE_OFF_b(address, source); + break; + case 2: + jnf_MEM_WRITE_OFF_w(address, source); + break; + case 4: + jnf_MEM_WRITE_OFF_l(address, source); + break; + } + } } STATIC_INLINE void writemem(int address, int source, int offset, int size, int tmp) { - jnf_MEM_GETBANKFUNC(tmp, address, offset); - /* Now tmp holds the address of the b/w/lput function */ - call_r_02(tmp, address, source, 4, size); - forget_about(tmp); + jnf_MEM_GETBANKFUNC(tmp, address, offset); + /* Now tmp holds the address of the b/w/lput function */ + call_r_02(tmp, address, source, 4, size); + forget_about(tmp); } void writebyte(int address, int source, int tmp) { - if (special_mem & S_WRITE) - writemem_special(address, source, 20, 1, tmp); - else - writemem_real(address, source, 1); + if (special_mem & S_WRITE) + writemem_special(address, source, 20, 1, tmp); + else + writemem_real(address, source, 1); } void writeword(int address, int source, int tmp) { - if (special_mem & S_WRITE) - writemem_special(address, source, 16, 2, tmp); - else - writemem_real(address, source, 2); + if (special_mem & S_WRITE) + writemem_special(address, source, 16, 2, tmp); + else + writemem_real(address, source, 2); } void writelong(int address, int source, int tmp) { - if (special_mem & S_WRITE) - writemem_special(address, source, 12, 4, tmp); - else - writemem_real(address, source, 4); + if (special_mem & S_WRITE) + writemem_special(address, source, 12, 4, tmp); + else + writemem_real(address, source, 4); } // Now the same for clobber variant STATIC_INLINE void writemem_real_clobber(int address, int source, int size) { - if(currprefs.address_space_24) - { - switch(size) { - case 1: jnf_MEM_WRITE24_OFF_b(address, source); break; - case 2: jnf_MEM_WRITE24_OFF_w(address, source); break; - case 4: jnf_MEM_WRITE24_OFF_l(address, source); break; - } - } - else - { - switch(size) { - case 1: jnf_MEM_WRITE_OFF_b(address, source); break; - case 2: jnf_MEM_WRITE_OFF_w(address, source); break; - case 4: jnf_MEM_WRITE_OFF_l(address, source); break; - } - } - forget_about(source); + if(currprefs.address_space_24) + { + switch(size) + { + case 1: + jnf_MEM_WRITE24_OFF_b(address, source); + break; + case 2: + jnf_MEM_WRITE24_OFF_w(address, source); + break; + case 4: + jnf_MEM_WRITE24_OFF_l(address, source); + break; + } + } + else + { + switch(size) + { + case 1: + jnf_MEM_WRITE_OFF_b(address, source); + break; + case 2: + jnf_MEM_WRITE_OFF_w(address, source); + break; + case 4: + jnf_MEM_WRITE_OFF_l(address, source); + break; + } + } + forget_about(source); } void writelong_clobber(int address, int source, int tmp) { - if (special_mem & S_WRITE) - writemem_special(address, source, 12, 4, tmp); - else - writemem_real_clobber(address, source, 4); + if (special_mem & S_WRITE) + writemem_special(address, source, 12, 4, tmp); + else + writemem_real_clobber(address, source, 4); } @@ -2187,740 +2357,806 @@ void writelong_clobber(int address, int source, int tmp) static void readmem_real(int address, int dest, int size) { - if(currprefs.address_space_24) - { - switch(size) { - case 1: jnf_MEM_READ24_OFF_b(dest, address); break; - case 2: jnf_MEM_READ24_OFF_w(dest, address); break; - case 4: jnf_MEM_READ24_OFF_l(dest, address); break; - } - } - else - { - switch(size) { - case 1: jnf_MEM_READ_OFF_b(dest, address); break; - case 2: jnf_MEM_READ_OFF_w(dest, address); break; - case 4: jnf_MEM_READ_OFF_l(dest, address); break; - } - } + if(currprefs.address_space_24) + { + switch(size) + { + case 1: + jnf_MEM_READ24_OFF_b(dest, address); + break; + case 2: + jnf_MEM_READ24_OFF_w(dest, address); + break; + case 4: + jnf_MEM_READ24_OFF_l(dest, address); + break; + } + } + else + { + switch(size) + { + case 1: + jnf_MEM_READ_OFF_b(dest, address); + break; + case 2: + jnf_MEM_READ_OFF_w(dest, address); + break; + case 4: + jnf_MEM_READ_OFF_l(dest, address); + break; + } + } } STATIC_INLINE void readmem(int address, int dest, int offset, int size, int tmp) { - jnf_MEM_GETBANKFUNC(tmp, address, offset); - /* Now tmp holds the address of the b/w/lget function */ - call_r_11(dest, tmp, address, size, 4); - forget_about(tmp); + jnf_MEM_GETBANKFUNC(tmp, address, offset); + /* Now tmp holds the address of the b/w/lget function */ + call_r_11(dest, tmp, address, size, 4); + forget_about(tmp); } void readbyte(int address, int dest, int tmp) { - if (special_mem & S_READ) - readmem_special(address, dest, 8, 1, tmp); - else - readmem_real(address, dest, 1); + if (special_mem & S_READ) + readmem_special(address, dest, 8, 1, tmp); + else + readmem_real(address, dest, 1); } void readword(int address, int dest, int tmp) { - if (special_mem & S_READ) - readmem_special(address, dest, 4, 2, tmp); - else - readmem_real(address, dest, 2); + if (special_mem & S_READ) + readmem_special(address, dest, 4, 2, tmp); + else + readmem_real(address, dest, 2); } void readlong(int address, int dest, int tmp) { - if (special_mem & S_READ) - readmem_special(address, dest, 0, 4, tmp); - else - readmem_real(address, dest, 4); + if (special_mem & S_READ) + readmem_special(address, dest, 0, 4, tmp); + else + readmem_real(address, dest, 4); } /* This one might appear a bit odd... */ STATIC_INLINE void get_n_addr_old(int address, int dest, int tmp) { - readmem(address, dest, 24, 4, tmp); + readmem(address, dest, 24, 4, tmp); } STATIC_INLINE void get_n_addr_real(int address, int dest) { - if(currprefs.address_space_24) - jnf_MEM_GETADR24_OFF(dest, address); - else - jnf_MEM_GETADR_OFF(dest, address); + if(currprefs.address_space_24) + jnf_MEM_GETADR24_OFF(dest, address); + else + jnf_MEM_GETADR_OFF(dest, address); } void get_n_addr(int address, int dest, int tmp) { - if (special_mem) - get_n_addr_old(address,dest,tmp); - else - get_n_addr_real(address,dest); + if (special_mem) + get_n_addr_old(address,dest,tmp); + else + get_n_addr_real(address,dest); } void get_n_addr_jmp(int address, int dest, int tmp) { - /* For this, we need to get the same address as the rest of UAE - would --- otherwise we end up translating everything twice */ - get_n_addr(address, dest, tmp); + /* For this, we need to get the same address as the rest of UAE + would --- otherwise we end up translating everything twice */ + get_n_addr(address, dest, tmp); } -/* base is a register, but dp is an actual value. +/* base is a register, but dp is an actual value. target is a register, as is tmp */ void calc_disp_ea_020(int base, uae_u32 dp, int target, int tmp) { - int reg = (dp >> 12) & 15; - int regd_shift=(dp >> 9) & 3; + int reg = (dp >> 12) & 15; + int regd_shift=(dp >> 9) & 3; - if (dp & 0x100) { - int ignorebase = (dp&0x80); - int ignorereg = (dp&0x40); - int addbase = 0; - int outer = 0; + if (dp & 0x100) + { + int ignorebase = (dp&0x80); + int ignorereg = (dp&0x40); + int addbase = 0; + int outer = 0; - if ((dp & 0x30) == 0x20) addbase = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - if ((dp & 0x30) == 0x30) addbase = comp_get_ilong((m68k_pc_offset+=4)-4); + if ((dp & 0x30) == 0x20) addbase = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + if ((dp & 0x30) == 0x30) addbase = comp_get_ilong((m68k_pc_offset+=4)-4); - if ((dp & 0x3) == 0x2) outer = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); - if ((dp & 0x3) == 0x3) outer = comp_get_ilong((m68k_pc_offset+=4)-4); + if ((dp & 0x3) == 0x2) outer = (uae_s32)(uae_s16)comp_get_iword((m68k_pc_offset+=2)-2); + if ((dp & 0x3) == 0x3) outer = comp_get_ilong((m68k_pc_offset+=4)-4); - if ((dp & 0x4) == 0) { /* add regd *before* the get_long */ - if (!ignorereg) { - if ((dp & 0x800) == 0) - sign_extend_16_rr(target, reg); - else - mov_l_rr(target, reg); - shll_l_ri(target, regd_shift); - } - else - mov_l_ri(target, 0); + if ((dp & 0x4) == 0) /* add regd *before* the get_long */ + { + if (!ignorereg) + { + if ((dp & 0x800) == 0) + sign_extend_16_rr(target, reg); + else + mov_l_rr(target, reg); + shll_l_ri(target, regd_shift); + } + else + mov_l_ri(target, 0); - /* target is now regd */ - if (!ignorebase) - add_l(target, base); - add_l_ri(target, addbase); - if (dp&0x03) readlong(target, target, tmp); - } else { /* do the getlong first, then add regd */ - if (!ignorebase) { - mov_l_rr(target, base); - add_l_ri(target, addbase); - } - else - mov_l_ri(target, addbase); - if (dp&0x03) readlong(target, target, tmp); + /* target is now regd */ + if (!ignorebase) + add_l(target, base); + add_l_ri(target, addbase); + if (dp&0x03) readlong(target, target, tmp); + } + else /* do the getlong first, then add regd */ + { + if (!ignorebase) + { + mov_l_rr(target, base); + add_l_ri(target, addbase); + } + else + mov_l_ri(target, addbase); + if (dp&0x03) readlong(target, target, tmp); - if (!ignorereg) { - if ((dp & 0x800) == 0) - sign_extend_16_rr(tmp, reg); - else - mov_l_rr(tmp, reg); - shll_l_ri(tmp, regd_shift); - /* tmp is now regd */ - add_l(target, tmp); - } - } - add_l_ri(target, outer); - } - else { /* 68000 version */ - if ((dp & 0x800) == 0) { /* Sign extend */ - sign_extend_16_rr(target, reg); - lea_l_brr_indexed(target, base, target, 1 << regd_shift, (uae_s8)dp); - } - else { - lea_l_brr_indexed(target, base, reg, 1 << regd_shift, (uae_s8)dp); - } - } - forget_about(tmp); + if (!ignorereg) + { + if ((dp & 0x800) == 0) + sign_extend_16_rr(tmp, reg); + else + mov_l_rr(tmp, reg); + shll_l_ri(tmp, regd_shift); + /* tmp is now regd */ + add_l(target, tmp); + } + } + add_l_ri(target, outer); + } + else /* 68000 version */ + { + if ((dp & 0x800) == 0) /* Sign extend */ + { + sign_extend_16_rr(target, reg); + lea_l_brr_indexed(target, base, target, 1 << regd_shift, (uae_s8)dp); + } + else + { + lea_l_brr_indexed(target, base, reg, 1 << regd_shift, (uae_s8)dp); + } + } + forget_about(tmp); } void set_cache_state(int enabled) { - if (enabled != letit) - flush_icache_hard(0, 3); - letit = enabled; + if (enabled != letit) + flush_icache_hard(0, 3); + letit = enabled; } int get_cache_state(void) { - return letit; + return letit; } uae_u32 get_jitted_size(void) { - if (compiled_code) - return current_compile_p - compiled_code; - return 0; + if (compiled_code) + return current_compile_p - compiled_code; + return 0; } void alloc_cache(void) { - if (compiled_code) { - flush_icache_hard(0, 3); - cache_free(compiled_code, currprefs.cachesize * 1024); - compiled_code = 0; - } - - if (currprefs.cachesize == 0) - return; + if (compiled_code) + { + flush_icache_hard(0, 3); + cache_free(compiled_code, currprefs.cachesize * 1024); + compiled_code = 0; + } - while (!compiled_code && currprefs.cachesize) { - compiled_code = (uae_u8*)cache_alloc(currprefs.cachesize * 1024); - if (!compiled_code) - currprefs.cachesize /= 2; - } - if (compiled_code) { + if (currprefs.cachesize == 0) + return; + + while (!compiled_code && currprefs.cachesize) + { + compiled_code = (uae_u8*)cache_alloc(currprefs.cachesize * 1024); + if (!compiled_code) + currprefs.cachesize /= 2; + } + if (compiled_code) + { #if defined(CPU_arm) && !defined(ARMV6T2) - max_compile_start = compiled_code + currprefs.cachesize*1024 - BYTES_PER_INST - DATA_BUFFER_SIZE; + max_compile_start = compiled_code + currprefs.cachesize*1024 - BYTES_PER_INST - DATA_BUFFER_SIZE; #else - max_compile_start = compiled_code + currprefs.cachesize*1024 - BYTES_PER_INST; + max_compile_start = compiled_code + currprefs.cachesize*1024 - BYTES_PER_INST; #endif - current_compile_p = compiled_code; - current_cache_size = 0; + current_compile_p = compiled_code; + current_cache_size = 0; #if defined(CPU_arm) && !defined(ARMV6T2) - reset_data_buffer(); + reset_data_buffer(); #endif - } + } } static void calc_checksum(blockinfo* bi, uae_u32* c1, uae_u32* c2) { - uae_u32 k1 = 0; - uae_u32 k2 = 0; + uae_u32 k1 = 0; + uae_u32 k2 = 0; #if USE_CHECKSUM_INFO - checksum_info *csi = bi->csi; - Dif(!csi) abort(); - while (csi) { - uae_s32 len = csi->length; - uintptr tmp = (uintptr)csi->start_p; + checksum_info *csi = bi->csi; + Dif(!csi) abort(); + while (csi) + { + uae_s32 len = csi->length; + uintptr tmp = (uintptr)csi->start_p; #else uae_s32 len = bi->len; uintptr tmp = (uintptr)bi->min_pcp; #endif - uae_u32* pos; + uae_u32* pos; - len += (tmp&3); - tmp &= ~((uintptr)3); - pos = (uae_u32*)tmp; + len += (tmp&3); + tmp &= ~((uintptr)3); + pos = (uae_u32*)tmp; - if (len >= 0 && len <= MAX_CHECKSUM_LEN) { - while (len>0) { - k1 += *pos; - k2 ^= *pos; - pos++; - len -= 4; - } - } + if (len >= 0 && len <= MAX_CHECKSUM_LEN) + { + while (len>0) + { + k1 += *pos; + k2 ^= *pos; + pos++; + len -= 4; + } + } #if USE_CHECKSUM_INFO - csi = csi->next; - } + csi = csi->next; + } #endif - *c1 = k1; - *c2 = k2; + *c1 = k1; + *c2 = k2; } int check_for_cache_miss(void) { - blockinfo* bi = get_blockinfo_addr(regs.pc_p); + blockinfo* bi = get_blockinfo_addr(regs.pc_p); - if (bi) { - int cl = cacheline(regs.pc_p); - if (bi != cache_tags[cl+1].bi) { - raise_in_cl_list(bi); - return 1; - } - } - return 0; + if (bi) + { + int cl = cacheline(regs.pc_p); + if (bi != cache_tags[cl+1].bi) + { + raise_in_cl_list(bi); + return 1; + } + } + return 0; } static void recompile_block(void) { - /* An existing block's countdown code has expired. We need to make - sure that execute_normal doesn't refuse to recompile due to a - perceived cache miss... */ - blockinfo* bi = get_blockinfo_addr(regs.pc_p); + /* An existing block's countdown code has expired. We need to make + sure that execute_normal doesn't refuse to recompile due to a + perceived cache miss... */ + blockinfo* bi = get_blockinfo_addr(regs.pc_p); - Dif (!bi) - jit_abort(_T("recompile_block")); - raise_in_cl_list(bi); - execute_normal(); - return; + Dif (!bi) + jit_abort(_T("recompile_block")); + raise_in_cl_list(bi); + execute_normal(); + return; } static void cache_miss(void) { - blockinfo* bi = get_blockinfo_addr(regs.pc_p); + blockinfo* bi = get_blockinfo_addr(regs.pc_p); #if COMP_DEBUG - uae_u32 cl = cacheline(regs.pc_p); - blockinfo* bi2 = get_blockinfo(cl); + uae_u32 cl = cacheline(regs.pc_p); + blockinfo* bi2 = get_blockinfo(cl); #endif - if (!bi) { - execute_normal(); /* Compile this block now */ - return; - } + if (!bi) + { + execute_normal(); /* Compile this block now */ + return; + } #if COMP_DEBUG - Dif (!bi2 || bi == bi2) { - jit_abort (_T("Unexplained cache miss %p %p\n"), bi, bi2); - } + Dif (!bi2 || bi == bi2) + { + jit_abort (_T("Unexplained cache miss %p %p\n"), bi, bi2); + } #endif - raise_in_cl_list(bi); - return; + raise_in_cl_list(bi); + return; } static int called_check_checksum(blockinfo* bi); -STATIC_INLINE int block_check_checksum(blockinfo* bi) +STATIC_INLINE int block_check_checksum(blockinfo* bi) { - uae_u32 c1,c2; - int isgood; + uae_u32 c1,c2; + int isgood; - if (bi->status != BI_NEED_CHECK) - return 1; /* This block is in a checked state */ + if (bi->status != BI_NEED_CHECK) + return 1; /* This block is in a checked state */ // checksum_count++; - if (bi->c1 || bi->c2) - calc_checksum(bi, &c1, &c2); - else { - c1 = c2 = 1; /* Make sure it doesn't match */ - } + if (bi->c1 || bi->c2) + calc_checksum(bi, &c1, &c2); + else + { + c1 = c2 = 1; /* Make sure it doesn't match */ + } - isgood = (c1 == bi->c1 && c2 == bi->c2); + isgood = (c1 == bi->c1 && c2 == bi->c2); - if (isgood) { - /* This block is still OK. So we reactivate. Of course, that - means we have to move it into the needs-to-be-flushed list */ - bi->handler_to_use = bi->handler; - set_dhtu(bi, bi->direct_handler); + if (isgood) + { + /* This block is still OK. So we reactivate. Of course, that + means we have to move it into the needs-to-be-flushed list */ + bi->handler_to_use = bi->handler; + set_dhtu(bi, bi->direct_handler); - bi->status = BI_CHECKING; - isgood = called_check_checksum(bi) != 0; - } - if (isgood) { - D2(bug("JIT: reactivate %p/%p (%x %x/%x %x)", bi, bi->pc_p, c1, c2, bi->c1, bi->c2)); - remove_from_list(bi); - add_to_active(bi); - raise_in_cl_list(bi); - bi->status = BI_ACTIVE; - } - else { - /* This block actually changed. We need to invalidate it, - and set it up to be recompiled */ - D2(bug("JIT: discard %p/%p (%x %x/%x %x)", bi, bi->pc_p, c1, c2, bi->c1, bi->c2)); - invalidate_block(bi); - raise_in_cl_list(bi); - } - return isgood; + bi->status = BI_CHECKING; + isgood = called_check_checksum(bi) != 0; + } + if (isgood) + { + D2(bug("JIT: reactivate %p/%p (%x %x/%x %x)", bi, bi->pc_p, c1, c2, bi->c1, bi->c2)); + remove_from_list(bi); + add_to_active(bi); + raise_in_cl_list(bi); + bi->status = BI_ACTIVE; + } + else + { + /* This block actually changed. We need to invalidate it, + and set it up to be recompiled */ + D2(bug("JIT: discard %p/%p (%x %x/%x %x)", bi, bi->pc_p, c1, c2, bi->c1, bi->c2)); + invalidate_block(bi); + raise_in_cl_list(bi); + } + return isgood; } -static int called_check_checksum(blockinfo* bi) +static int called_check_checksum(blockinfo* bi) { - int isgood = 1; - int i; - - for (i = 0; i < 2 && isgood; i++) { - if (bi->dep[i].jmp_off) { - isgood = block_check_checksum(bi->dep[i].target); - } - } - return isgood; + int isgood = 1; + int i; + + for (i = 0; i < 2 && isgood; i++) + { + if (bi->dep[i].jmp_off) + { + isgood = block_check_checksum(bi->dep[i].target); + } + } + return isgood; } static void check_checksum(void) { - blockinfo* bi = get_blockinfo_addr(regs.pc_p); - uae_u32 cl = cacheline(regs.pc_p); - blockinfo* bi2 = get_blockinfo(cl); + blockinfo* bi = get_blockinfo_addr(regs.pc_p); + uae_u32 cl = cacheline(regs.pc_p); + blockinfo* bi2 = get_blockinfo(cl); - /* These are not the droids you are looking for... */ - if (!bi) { - /* Whoever is the primary target is in a dormant state, but - calling it was accidental, and we should just compile this - new block */ - execute_normal(); - return; - } - if (bi != bi2) { - /* The block was hit accidentally, but it does exist. Cache miss */ - cache_miss(); - return; - } + /* These are not the droids you are looking for... */ + if (!bi) + { + /* Whoever is the primary target is in a dormant state, but + calling it was accidental, and we should just compile this + new block */ + execute_normal(); + return; + } + if (bi != bi2) + { + /* The block was hit accidentally, but it does exist. Cache miss */ + cache_miss(); + return; + } - if (!block_check_checksum(bi)) - execute_normal(); + if (!block_check_checksum(bi)) + execute_normal(); } STATIC_INLINE void match_states(blockinfo* bi) { - int i; - smallstate* s = &(bi->env); - - if (bi->status == BI_NEED_CHECK) { - block_check_checksum(bi); - } - if (bi->status == BI_ACTIVE || - bi->status == BI_FINALIZING) { /* Deal with the *promises* the - block makes (about not using - certain vregs) */ - for (i = 0; i < 16; i++) { - if (s->virt[i] == L_UNNEEDED) { - D2(panicbug("unneeded reg %d at %p\n", i, target)); - COMPCALL(forget_about)(i); // FIXME - } - } - } - flush(1); + int i; + smallstate* s = &(bi->env); - /* And now deal with the *demands* the block makes */ - for (i = 0; i < N_REGS; i++) { - int v = s->nat[i]; - if (v >= 0) { - // printf("Loading reg %d into %d at %p\n",v,i,target); - readreg_specific(v, 4, i); - // do_load_reg(i,v); - // setlock(i); - } - } - for (i = 0; i < N_REGS; i++) { - int v = s->nat[i]; - if (v >= 0) { - unlock2(i); - } - } + if (bi->status == BI_NEED_CHECK) + { + block_check_checksum(bi); + } + if (bi->status == BI_ACTIVE || + bi->status == BI_FINALIZING) + { + /* Deal with the *promises* the + block makes (about not using + certain vregs) */ + for (i = 0; i < 16; i++) + { + if (s->virt[i] == L_UNNEEDED) + { + D2(panicbug("unneeded reg %d at %p\n", i, target)); + COMPCALL(forget_about)(i); // FIXME + } + } + } + flush(1); + + /* And now deal with the *demands* the block makes */ + for (i = 0; i < N_REGS; i++) + { + int v = s->nat[i]; + if (v >= 0) + { + // printf("Loading reg %d into %d at %p\n",v,i,target); + readreg_specific(v, 4, i); + // do_load_reg(i,v); + // setlock(i); + } + } + for (i = 0; i < N_REGS; i++) + { + int v = s->nat[i]; + if (v >= 0) + { + unlock2(i); + } + } } STATIC_INLINE void create_popalls(void) { - int i, r; + int i, r; - if (popallspace == NULL) - popallspace = (uae_u8*)cache_alloc (POPALLSPACE_SIZE); + if (popallspace == NULL) + popallspace = (uae_u8*)cache_alloc (POPALLSPACE_SIZE); - int stack_space = STACK_OFFSET; - for (i = 0; i< N_REGS; i++) { - if (need_to_preserve[i]) - stack_space += sizeof(void *); - } - stack_space %= STACK_ALIGN; - if (stack_space) - stack_space = STACK_ALIGN - stack_space; - current_compile_p = popallspace; - set_target(current_compile_p); + int stack_space = STACK_OFFSET; + for (i = 0; i< N_REGS; i++) + { + if (need_to_preserve[i]) + stack_space += sizeof(void *); + } + stack_space %= STACK_ALIGN; + if (stack_space) + stack_space = STACK_ALIGN - stack_space; + current_compile_p = popallspace; + set_target(current_compile_p); #if defined(CPU_arm) && !defined(ARMV6T2) - reset_data_buffer(); - data_long(0, 0); // Make sure we emit the branch over the first buffer outside pushall_call_handler + reset_data_buffer(); + data_long(0, 0); // Make sure we emit the branch over the first buffer outside pushall_call_handler #endif - - /* We need to guarantee 16-byte stack alignment on x86 at any point - within the JIT generated code. We have multiple exit points - possible but a single entry. A "jmp" is used so that we don't - have to generate stack alignment in generated code that has to - call external functions (e.g. a generic instruction handler). - In summary, JIT generated code is not leaf so we have to deal - with it here to maintain correct stack alignment. */ -#ifndef ALIGN_NOT_NEEDED - align_target(align_jumps); -#endif - current_compile_p = get_target(); - pushall_call_handler = get_target(); - raw_push_regs_to_preserve(); - raw_dec_sp(stack_space); - compemu_raw_init_r_regstruct((uintptr)®s); - r = REG_PC_TMP; - compemu_raw_mov_l_rm(r,(uintptr)®s.pc_p); - compemu_raw_and_TAGMASK(r); - compemu_raw_jmp_m_indexed((uintptr)cache_tags, r, SIZEOF_VOID_P); + /* We need to guarantee 16-byte stack alignment on x86 at any point + within the JIT generated code. We have multiple exit points + possible but a single entry. A "jmp" is used so that we don't + have to generate stack alignment in generated code that has to + call external functions (e.g. a generic instruction handler). - /* now the exit points */ + In summary, JIT generated code is not leaf so we have to deal + with it here to maintain correct stack alignment. */ #ifndef ALIGN_NOT_NEEDED - align_target(align_jumps); + align_target(align_jumps); #endif - popall_do_nothing = get_target(); - raw_inc_sp(stack_space); - raw_pop_preserved_regs(); - compemu_raw_jmp((uintptr)do_nothing); + current_compile_p = get_target(); + pushall_call_handler = get_target(); + raw_push_regs_to_preserve(); + raw_dec_sp(stack_space); + compemu_raw_init_r_regstruct((uintptr)®s); + r = REG_PC_TMP; + compemu_raw_mov_l_rm(r,(uintptr)®s.pc_p); + compemu_raw_and_TAGMASK(r); + compemu_raw_jmp_m_indexed((uintptr)cache_tags, r, SIZEOF_VOID_P); + + /* now the exit points */ +#ifndef ALIGN_NOT_NEEDED + align_target(align_jumps); +#endif + popall_do_nothing = get_target(); + raw_inc_sp(stack_space); + raw_pop_preserved_regs(); + compemu_raw_jmp((uintptr)do_nothing); #ifndef ALIGN_NOT_NEEDED - align_target(align_jumps); + align_target(align_jumps); #endif - popall_execute_normal = get_target(); - raw_inc_sp(stack_space); - raw_pop_preserved_regs(); - compemu_raw_jmp((uintptr)execute_normal); + popall_execute_normal = get_target(); + raw_inc_sp(stack_space); + raw_pop_preserved_regs(); + compemu_raw_jmp((uintptr)execute_normal); #ifndef ALIGN_NOT_NEEDED - align_target(align_jumps); + align_target(align_jumps); #endif - popall_cache_miss = get_target(); - raw_inc_sp(stack_space); - raw_pop_preserved_regs(); - compemu_raw_jmp((uintptr)cache_miss); + popall_cache_miss = get_target(); + raw_inc_sp(stack_space); + raw_pop_preserved_regs(); + compemu_raw_jmp((uintptr)cache_miss); #ifndef ALIGN_NOT_NEEDED - align_target(align_jumps); + align_target(align_jumps); #endif - popall_recompile_block = get_target(); - raw_inc_sp(stack_space); - raw_pop_preserved_regs(); - compemu_raw_jmp((uintptr)recompile_block); + popall_recompile_block = get_target(); + raw_inc_sp(stack_space); + raw_pop_preserved_regs(); + compemu_raw_jmp((uintptr)recompile_block); #ifndef ALIGN_NOT_NEEDED - align_target(align_jumps); + align_target(align_jumps); #endif - popall_exec_nostats = get_target(); - raw_inc_sp(stack_space); - raw_pop_preserved_regs(); - compemu_raw_jmp((uintptr)exec_nostats); + popall_exec_nostats = get_target(); + raw_inc_sp(stack_space); + raw_pop_preserved_regs(); + compemu_raw_jmp((uintptr)exec_nostats); #ifndef ALIGN_NOT_NEEDED - align_target(align_jumps); + align_target(align_jumps); #endif - popall_check_checksum = get_target(); - raw_inc_sp(stack_space); - raw_pop_preserved_regs(); - compemu_raw_jmp((uintptr)check_checksum); + popall_check_checksum = get_target(); + raw_inc_sp(stack_space); + raw_pop_preserved_regs(); + compemu_raw_jmp((uintptr)check_checksum); #if defined(CPU_arm) && !defined(ARMV6T2) - reset_data_buffer(); + reset_data_buffer(); #endif - // No need to flush. Initialized and not modified - // flush_cpu_icache((void *)popallspace, (void *)target); + // No need to flush. Initialized and not modified + // flush_cpu_icache((void *)popallspace, (void *)target); } STATIC_INLINE void reset_lists(void) { - int i; + int i; - for (i = 0; i < MAX_HOLD_BI; i++) - hold_bi[i] = NULL; - active = NULL; - dormant = NULL; + for (i = 0; i < MAX_HOLD_BI; i++) + hold_bi[i] = NULL; + active = NULL; + dormant = NULL; } static void prepare_block(blockinfo* bi) { - int i; + int i; - set_target(current_compile_p); + set_target(current_compile_p); #ifndef ALIGN_NOT_NEEDED - align_target(align_jumps); + align_target(align_jumps); #endif - bi->direct_pen = (cpuop_func *)get_target(); - compemu_raw_mov_l_rm(0, (uintptr)&(bi->pc_p)); - compemu_raw_mov_l_mr((uintptr)®s.pc_p, 0); - compemu_raw_jmp((uintptr)popall_execute_normal); + bi->direct_pen = (cpuop_func *)get_target(); + compemu_raw_mov_l_rm(0, (uintptr)&(bi->pc_p)); + compemu_raw_mov_l_mr((uintptr)®s.pc_p, 0); + compemu_raw_jmp((uintptr)popall_execute_normal); #ifndef ALIGN_NOT_NEEDED - align_target(align_jumps); + align_target(align_jumps); #endif - bi->direct_pcc = (cpuop_func *)get_target(); - compemu_raw_mov_l_rm(0, (uintptr)&(bi->pc_p)); - compemu_raw_mov_l_mr((uintptr)®s.pc_p, 0); - compemu_raw_jmp((uintptr)popall_check_checksum); - flush_cpu_icache((void *)current_compile_p, (void *)target); - current_compile_p = get_target(); + bi->direct_pcc = (cpuop_func *)get_target(); + compemu_raw_mov_l_rm(0, (uintptr)&(bi->pc_p)); + compemu_raw_mov_l_mr((uintptr)®s.pc_p, 0); + compemu_raw_jmp((uintptr)popall_check_checksum); + flush_cpu_icache((void *)current_compile_p, (void *)target); + current_compile_p = get_target(); - bi->deplist = NULL; - for (i = 0; i < 2; i++) { - bi->dep[i].prev_p = NULL; - bi->dep[i].next = NULL; - } - bi->env = default_ss; - bi->status = BI_INVALID; - bi->havestate = 0; - //bi->env=empty_ss; + bi->deplist = NULL; + for (i = 0; i < 2; i++) + { + bi->dep[i].prev_p = NULL; + bi->dep[i].next = NULL; + } + bi->env = default_ss; + bi->status = BI_INVALID; + bi->havestate = 0; + //bi->env=empty_ss; } void compemu_reset(void) { - set_cache_state(0); + set_cache_state(0); } // OPCODE is in big endian format, use cft_map() beforehand, if needed. STATIC_INLINE void reset_compop(int opcode) { - compfunctbl[opcode] = NULL; - nfcompfunctbl[opcode] = NULL; + compfunctbl[opcode] = NULL; + nfcompfunctbl[opcode] = NULL; } void build_comp(void) { - int i; - unsigned long opcode; - const struct comptbl* tbl = op_smalltbl_0_comp_ff; - const struct comptbl* nftbl = op_smalltbl_0_comp_nf; - int count; + int i; + unsigned long opcode; + const struct comptbl* tbl = op_smalltbl_0_comp_ff; + const struct comptbl* nftbl = op_smalltbl_0_comp_nf; + int count; #ifdef NOFLAGS_SUPPORT - struct comptbl *nfctbl = (currprefs.cpu_level >= 5 ? op_smalltbl_0_nf - : currprefs.cpu_level == 4 ? op_smalltbl_1_nf - : (currprefs.cpu_level == 2 || currprefs.cpu_level == 3) ? op_smalltbl_2_nf - : currprefs.cpu_level == 1 ? op_smalltbl_3_nf - : ! currprefs.cpu_compatible ? op_smalltbl_4_nf - : op_smalltbl_5_nf); + struct comptbl *nfctbl = (currprefs.cpu_level >= 5 ? op_smalltbl_0_nf + : currprefs.cpu_level == 4 ? op_smalltbl_1_nf + : (currprefs.cpu_level == 2 || currprefs.cpu_level == 3) ? op_smalltbl_2_nf + : currprefs.cpu_level == 1 ? op_smalltbl_3_nf + : ! currprefs.cpu_compatible ? op_smalltbl_4_nf + : op_smalltbl_5_nf); #endif - for (opcode = 0; opcode < 65536; opcode++) { - reset_compop(opcode); + for (opcode = 0; opcode < 65536; opcode++) + { + reset_compop(opcode); #ifdef NOFLAGS_SUPPORT - nfcpufunctbl[opcode] = _op_illg; + nfcpufunctbl[opcode] = _op_illg; #endif - prop[opcode].use_flags = 0x1f; - prop[opcode].set_flags = 0x1f; - prop[opcode].cflow = fl_jump | fl_trap; // ILLEGAL instructions do trap - } + prop[opcode].use_flags = 0x1f; + prop[opcode].set_flags = 0x1f; + prop[opcode].cflow = fl_jump | fl_trap; // ILLEGAL instructions do trap + } - for (i = 0; tbl[i].opcode < 65536; i++) { - int cflow = table68k[tbl[i].opcode].cflow; - if (follow_const_jumps && (tbl[i].specific & 16)) - cflow = fl_const_jump; - else - cflow &= ~fl_const_jump; - prop[cft_map(tbl[i].opcode)].cflow = cflow; + for (i = 0; tbl[i].opcode < 65536; i++) + { + int cflow = table68k[tbl[i].opcode].cflow; + if (follow_const_jumps && (tbl[i].specific & 16)) + cflow = fl_const_jump; + else + cflow &= ~fl_const_jump; + prop[cft_map(tbl[i].opcode)].cflow = cflow; - int uses_fpu = (tbl[i].specific & 32) != 0; - if (uses_fpu && avoid_fpu) - compfunctbl[cft_map(tbl[i].opcode)] = NULL; - else - compfunctbl[cft_map(tbl[i].opcode)] = tbl[i].handler; - } + int uses_fpu = (tbl[i].specific & 32) != 0; + if (uses_fpu && avoid_fpu) + compfunctbl[cft_map(tbl[i].opcode)] = NULL; + else + compfunctbl[cft_map(tbl[i].opcode)] = tbl[i].handler; + } - for (i = 0; nftbl[i].opcode < 65536; i++) { - int uses_fpu = tbl[i].specific & 32; - if (uses_fpu && avoid_fpu) - nfcompfunctbl[cft_map(nftbl[i].opcode)] = NULL; - else - nfcompfunctbl[cft_map(nftbl[i].opcode)] = nftbl[i].handler; + for (i = 0; nftbl[i].opcode < 65536; i++) + { + int uses_fpu = tbl[i].specific & 32; + if (uses_fpu && avoid_fpu) + nfcompfunctbl[cft_map(nftbl[i].opcode)] = NULL; + else + nfcompfunctbl[cft_map(nftbl[i].opcode)] = nftbl[i].handler; #ifdef NOFLAGS_SUPPORT - nfcpufunctbl[cft_map(nftbl[i].opcode)] = nfctbl[i].handler; + nfcpufunctbl[cft_map(nftbl[i].opcode)] = nfctbl[i].handler; #endif - } + } #ifdef NOFLAGS_SUPPORT - for (i = 0; nfctbl[i].handler; i++) { - nfcpufunctbl[cft_map(nfctbl[i].opcode)] = nfctbl[i].handler; - } + for (i = 0; nfctbl[i].handler; i++) + { + nfcpufunctbl[cft_map(nfctbl[i].opcode)] = nfctbl[i].handler; + } #endif - for (opcode = 0; opcode < 65536; opcode++) { - compop_func *f; - compop_func *nff; + for (opcode = 0; opcode < 65536; opcode++) + { + compop_func *f; + compop_func *nff; #ifdef NOFLAGS_SUPPORT - cpuop_func *nfcf; + cpuop_func *nfcf; #endif - int isaddx, cflow; + int isaddx, cflow; - int cpu_level = (currprefs.cpu_model - 68000) / 10; - if (cpu_level > 4) - cpu_level--; - if (table68k[opcode].mnemo == i_ILLG || table68k[opcode].clev > cpu_level) - continue; + int cpu_level = (currprefs.cpu_model - 68000) / 10; + if (cpu_level > 4) + cpu_level--; + if (table68k[opcode].mnemo == i_ILLG || table68k[opcode].clev > cpu_level) + continue; - if (table68k[opcode].handler != -1) { - f = compfunctbl[cft_map(table68k[opcode].handler)]; - nff = nfcompfunctbl[cft_map(table68k[opcode].handler)]; + if (table68k[opcode].handler != -1) + { + f = compfunctbl[cft_map(table68k[opcode].handler)]; + nff = nfcompfunctbl[cft_map(table68k[opcode].handler)]; #ifdef NOFLAGS_SUPPORT - nfcf = nfcpufunctbl[cft_map(table68k[opcode].handler)]; + nfcf = nfcpufunctbl[cft_map(table68k[opcode].handler)]; #endif - cflow = prop[cft_map(table68k[opcode].handler)].cflow; - isaddx = prop[cft_map(table68k[opcode].handler)].is_addx; - prop[cft_map(opcode)].cflow = cflow; - prop[cft_map(opcode)].is_addx = isaddx; - compfunctbl[cft_map(opcode)] = f; - nfcompfunctbl[cft_map(opcode)] = nff; + cflow = prop[cft_map(table68k[opcode].handler)].cflow; + isaddx = prop[cft_map(table68k[opcode].handler)].is_addx; + prop[cft_map(opcode)].cflow = cflow; + prop[cft_map(opcode)].is_addx = isaddx; + compfunctbl[cft_map(opcode)] = f; + nfcompfunctbl[cft_map(opcode)] = nff; #ifdef NOFLAGS_SUPPORT - nfcpufunctbl[cft_map(opcode)] = nfcf; + nfcpufunctbl[cft_map(opcode)] = nfcf; #endif - } - prop[cft_map(opcode)].set_flags = table68k[opcode].flagdead; - prop[cft_map(opcode)].use_flags = table68k[opcode].flaglive; - /* Unconditional jumps don't evaluate condition codes, so they - * don't actually use any flags themselves */ - if (prop[cft_map(opcode)].cflow & fl_const_jump) - prop[cft_map(opcode)].use_flags = 0; - } + } + prop[cft_map(opcode)].set_flags = table68k[opcode].flagdead; + prop[cft_map(opcode)].use_flags = table68k[opcode].flaglive; + /* Unconditional jumps don't evaluate condition codes, so they + * don't actually use any flags themselves */ + if (prop[cft_map(opcode)].cflow & fl_const_jump) + prop[cft_map(opcode)].use_flags = 0; + } #ifdef NOFLAGS_SUPPORT - for (i = 0; nfctbl[i].handler != NULL; i++) { - if (nfctbl[i].specific) - nfcpufunctbl[cft_map(tbl[i].opcode)] = nfctbl[i].handler; - } + for (i = 0; nfctbl[i].handler != NULL; i++) + { + if (nfctbl[i].specific) + nfcpufunctbl[cft_map(tbl[i].opcode)] = nfctbl[i].handler; + } #endif - count = 0; - for (opcode = 0; opcode < 65536; opcode++) { - if (compfunctbl[cft_map(opcode)]) - count++; - } + count = 0; + for (opcode = 0; opcode < 65536; opcode++) + { + if (compfunctbl[cft_map(opcode)]) + count++; + } // D(bug(" : supposedly %d compileable opcodes!",count)); - /* Initialise state */ - create_popalls(); - alloc_cache(); - reset_lists(); + /* Initialise state */ + create_popalls(); + alloc_cache(); + reset_lists(); - for (i = 0; i < TAGSIZE; i += 2) { - cache_tags[i].handler = (cpuop_func *)popall_execute_normal; - cache_tags[i+1].bi = NULL; - } - compemu_reset(); + for (i = 0; i < TAGSIZE; i += 2) + { + cache_tags[i].handler = (cpuop_func *)popall_execute_normal; + cache_tags[i+1].bi = NULL; + } + compemu_reset(); - for (i = 0; i < VREGS; i++) { - empty_ss.virt[i] = L_NEEDED; - } - for (i = 0; i < N_REGS; i++) { - empty_ss.nat[i] = L_UNKNOWN; - } - default_ss = empty_ss; + for (i = 0; i < VREGS; i++) + { + empty_ss.virt[i] = L_NEEDED; + } + for (i = 0; i < N_REGS; i++) + { + empty_ss.nat[i] = L_UNKNOWN; + } + default_ss = empty_ss; } static void flush_icache_none(uaecptr ptr, int n) { - /* Nothing to do. */ + /* Nothing to do. */ } static void flush_icache_hard(uaecptr ptr, int n) { - blockinfo* bi, *dbi; + blockinfo* bi, *dbi; // hard_flush_count++; - D(bug("JIT: Flush Icache_hard(%d/%x/%p), %u KB\n", - n, regs.pc, regs.pc_p, current_cache_size / 1024)); - UNUSED(n); - bi = active; - while(bi) { - cache_tags[cacheline(bi->pc_p)].handler = (cpuop_func *)popall_execute_normal; - cache_tags[cacheline(bi->pc_p)+1].bi = NULL; - dbi = bi; - bi = bi->next; - free_blockinfo(dbi); - } - bi = dormant; - while(bi) { - cache_tags[cacheline(bi->pc_p)].handler = (cpuop_func *)popall_execute_normal; - cache_tags[cacheline(bi->pc_p)+1].bi = NULL; - dbi = bi; - bi = bi->next; - free_blockinfo(dbi); - } + D(bug("JIT: Flush Icache_hard(%d/%x/%p), %u KB\n", + n, regs.pc, regs.pc_p, current_cache_size / 1024)); + UNUSED(n); + bi = active; + while(bi) + { + cache_tags[cacheline(bi->pc_p)].handler = (cpuop_func *)popall_execute_normal; + cache_tags[cacheline(bi->pc_p)+1].bi = NULL; + dbi = bi; + bi = bi->next; + free_blockinfo(dbi); + } + bi = dormant; + while(bi) + { + cache_tags[cacheline(bi->pc_p)].handler = (cpuop_func *)popall_execute_normal; + cache_tags[cacheline(bi->pc_p)+1].bi = NULL; + dbi = bi; + bi = bi->next; + free_blockinfo(dbi); + } - reset_lists(); - if (!compiled_code) - return; + reset_lists(); + if (!compiled_code) + return; #if defined(CPU_arm) && !defined(ARMV6T2) - reset_data_buffer(); + reset_data_buffer(); #endif - current_compile_p = compiled_code; - set_special(0); /* To get out of compiled code */ + current_compile_p = compiled_code; + set_special(0); /* To get out of compiled code */ } @@ -2930,49 +3166,52 @@ static void flush_icache_hard(uaecptr ptr, int n) STATIC_INLINE void flush_icache_lazy(uaecptr ptr, int n) { - blockinfo* bi; - blockinfo* bi2; + blockinfo* bi; + blockinfo* bi2; // soft_flush_count++; - if (!active) - return; + if (!active) + return; - bi = active; - while (bi) { - uae_u32 cl = cacheline(bi->pc_p); - if (bi->status == BI_INVALID || - bi->status == BI_NEED_RECOMP) { - if (bi == cache_tags[cl+1].bi) - cache_tags[cl].handler = (cpuop_func *)popall_execute_normal; - bi->handler_to_use = (cpuop_func *)popall_execute_normal; - set_dhtu(bi,bi->direct_pen); - bi->status = BI_INVALID; - } - else { - if (bi == cache_tags[cl+1].bi) - cache_tags[cl].handler = (cpuop_func *)popall_check_checksum; - bi->handler_to_use = (cpuop_func *)popall_check_checksum; - set_dhtu(bi,bi->direct_pcc); - bi->status = BI_NEED_CHECK; - } - bi2 = bi; - bi = bi->next; - } - /* bi2 is now the last entry in the active list */ - bi2->next = dormant; - if (dormant) - dormant->prev_p = &(bi2->next); + bi = active; + while (bi) + { + uae_u32 cl = cacheline(bi->pc_p); + if (bi->status == BI_INVALID || + bi->status == BI_NEED_RECOMP) + { + if (bi == cache_tags[cl+1].bi) + cache_tags[cl].handler = (cpuop_func *)popall_execute_normal; + bi->handler_to_use = (cpuop_func *)popall_execute_normal; + set_dhtu(bi,bi->direct_pen); + bi->status = BI_INVALID; + } + else + { + if (bi == cache_tags[cl+1].bi) + cache_tags[cl].handler = (cpuop_func *)popall_check_checksum; + bi->handler_to_use = (cpuop_func *)popall_check_checksum; + set_dhtu(bi,bi->direct_pcc); + bi->status = BI_NEED_CHECK; + } + bi2 = bi; + bi = bi->next; + } + /* bi2 is now the last entry in the active list */ + bi2->next = dormant; + if (dormant) + dormant->prev_p = &(bi2->next); - dormant = active; - active->prev_p = &dormant; - active = NULL; + dormant = active; + active->prev_p = &dormant; + active = NULL; } int failure; STATIC_INLINE unsigned int get_opcode_cft_map(unsigned int f) { - return ((f >> 8) & 255) | ((f & 255) << 8); + return ((f >> 8) & 255) | ((f & 255) << 8); } #define DO_GET_OPCODE(a) (get_opcode_cft_map((uae_u16)*(a))) @@ -2982,452 +3221,483 @@ static uae_u8 *last_compiled_block_addr = 0; void compiler_dumpstate(void) { - if (!JITDebug) - return; - - bug("### Host addresses"); - bug("MEM_BASE : %x", NATMEM_OFFSET); - bug("PC_P : %p", ®s.pc_p); - bug("SPCFLAGS : %p", ®s.spcflags); - bug("D0-D7 : %p-%p", ®s.regs[0], ®s.regs[7]); - bug("A0-A7 : %p-%p", ®s.regs[8], ®s.regs[15]); - bug(""); - - bug("### M68k processor state"); - m68k_dumpstate(stderr, 0); - bug(""); - - bug("### Block in Atari address space"); - bug("M68K block : %p", - (void *)(uintptr)last_regs_pc_p); - if (last_regs_pc_p != 0) { - bug("Native block : %p (%d bytes)", - (void *)last_compiled_block_addr, - get_blockinfo_addr(last_regs_pc_p)->direct_handler_size); - } - bug(""); + if (!JITDebug) + return; + + bug("### Host addresses"); + bug("MEM_BASE : %x", NATMEM_OFFSET); + bug("PC_P : %p", ®s.pc_p); + bug("SPCFLAGS : %p", ®s.spcflags); + bug("D0-D7 : %p-%p", ®s.regs[0], ®s.regs[7]); + bug("A0-A7 : %p-%p", ®s.regs[8], ®s.regs[15]); + bug(""); + + bug("### M68k processor state"); + m68k_dumpstate(stderr, 0); + bug(""); + + bug("### Block in Atari address space"); + bug("M68K block : %p", + (void *)(uintptr)last_regs_pc_p); + if (last_regs_pc_p != 0) + { + bug("Native block : %p (%d bytes)", + (void *)last_compiled_block_addr, + get_blockinfo_addr(last_regs_pc_p)->direct_handler_size); + } + bug(""); } #endif void compile_block(cpu_history* pc_hist, int blocklen, int totcycles) { - if (letit && compiled_code && currprefs.cpu_model >= 68020) { + if (letit && compiled_code && currprefs.cpu_model >= 68020) + { #ifdef PROFILE_COMPILE_TIME - compile_count++; - clock_t start_time = clock(); + compile_count++; + clock_t start_time = clock(); #endif #ifdef JIT_DEBUG - bool disasm_block = false; + bool disasm_block = false; #endif - /* OK, here we need to 'compile' a block */ - int i; - int r; - int was_comp = 0; - uae_u8 liveflags[MAXRUN+1]; + /* OK, here we need to 'compile' a block */ + int i; + int r; + int was_comp = 0; + uae_u8 liveflags[MAXRUN+1]; #if USE_CHECKSUM_INFO - bool trace_in_rom = isinrom((uintptr)pc_hist[0].location); - uintptr max_pcp = (uintptr)pc_hist[blocklen - 1].location; - uintptr min_pcp = max_pcp; + bool trace_in_rom = isinrom((uintptr)pc_hist[0].location); + uintptr max_pcp = (uintptr)pc_hist[blocklen - 1].location; + uintptr min_pcp = max_pcp; #else - uintptr max_pcp = (uintptr)pc_hist[0].location; - uintptr min_pcp = max_pcp; + uintptr max_pcp = (uintptr)pc_hist[0].location; + uintptr min_pcp = max_pcp; #endif - uae_u32 cl = cacheline(pc_hist[0].location); - void* specflags = (void*)®s.spcflags; - blockinfo* bi = NULL; - blockinfo* bi2; - int extra_len = 0; + uae_u32 cl = cacheline(pc_hist[0].location); + void* specflags = (void*)®s.spcflags; + blockinfo* bi = NULL; + blockinfo* bi2; + int extra_len = 0; - redo_current_block = 0; - if (current_compile_p >= MAX_COMPILE_PTR) - flush_icache_hard(0, 3); + redo_current_block = 0; + if (current_compile_p >= MAX_COMPILE_PTR) + flush_icache_hard(0, 3); - alloc_blockinfos(); + alloc_blockinfos(); - bi = get_blockinfo_addr_new(pc_hist[0].location, 0); - bi2 = get_blockinfo(cl); + bi = get_blockinfo_addr_new(pc_hist[0].location, 0); + bi2 = get_blockinfo(cl); - optlev = bi->optlevel; - if (bi->status != BI_INVALID) { - Dif (bi != bi2) { - /* I don't think it can happen anymore. Shouldn't, in - any case. So let's make sure... */ - jit_abort (_T("JIT: WOOOWOO count=%d, ol=%d %p %p\n"), - bi->count, bi->optlevel, bi->handler_to_use, - cache_tags[cl].handler); - } + optlev = bi->optlevel; + if (bi->status != BI_INVALID) + { + Dif (bi != bi2) + { + /* I don't think it can happen anymore. Shouldn't, in + any case. So let's make sure... */ + jit_abort (_T("JIT: WOOOWOO count=%d, ol=%d %p %p\n"), + bi->count, bi->optlevel, bi->handler_to_use, + cache_tags[cl].handler); + } - Dif (bi->count != -1 && bi->status != BI_NEED_RECOMP) { - panicbug("bi->count=%d, bi->status=%d,bi->optlevel=%d\n", bi->count, bi->status, bi->optlevel); - /* What the heck? We are not supposed to be here! */ - jit_abort(_T("BI_TARGETTED")); - } - } - if (bi->count == -1) { - optlev++; - while (!currprefs.optcount[optlev]) - optlev++; - bi->count = currprefs.optcount[optlev] - 1; - } - current_block_pc_p = (uintptr)pc_hist[0].location; + Dif (bi->count != -1 && bi->status != BI_NEED_RECOMP) + { + panicbug("bi->count=%d, bi->status=%d,bi->optlevel=%d\n", bi->count, bi->status, bi->optlevel); + /* What the heck? We are not supposed to be here! */ + jit_abort(_T("BI_TARGETTED")); + } + } + if (bi->count == -1) + { + optlev++; + while (!currprefs.optcount[optlev]) + optlev++; + bi->count = currprefs.optcount[optlev] - 1; + } + current_block_pc_p = (uintptr)pc_hist[0].location; - remove_deps(bi); /* We are about to create new code */ - bi->optlevel = optlev; - bi->pc_p = (uae_u8*)pc_hist[0].location; + remove_deps(bi); /* We are about to create new code */ + bi->optlevel = optlev; + bi->pc_p = (uae_u8*)pc_hist[0].location; #if USE_CHECKSUM_INFO - free_checksum_info_chain(bi->csi); - bi->csi = NULL; + free_checksum_info_chain(bi->csi); + bi->csi = NULL; #endif - liveflags[blocklen] = 0x1f; /* All flags needed afterwards */ - i = blocklen; - while (i--) { - uae_u16* currpcp = pc_hist[i].location; - uae_u32 op = DO_GET_OPCODE(currpcp); + liveflags[blocklen] = 0x1f; /* All flags needed afterwards */ + i = blocklen; + while (i--) + { + uae_u16* currpcp = pc_hist[i].location; + uae_u32 op = DO_GET_OPCODE(currpcp); #if USE_CHECKSUM_INFO - trace_in_rom = trace_in_rom && isinrom((uintptr)currpcp); - if (follow_const_jumps && is_const_jump(op)) { - checksum_info *csi = alloc_checksum_info(); - csi->start_p = (uae_u8 *)min_pcp; - csi->length = max_pcp - min_pcp + LONGEST_68K_INST; - csi->next = bi->csi; - bi->csi = csi; - max_pcp = (uintptr)currpcp; - } - min_pcp = (uintptr)currpcp; + trace_in_rom = trace_in_rom && isinrom((uintptr)currpcp); + if (follow_const_jumps && is_const_jump(op)) + { + checksum_info *csi = alloc_checksum_info(); + csi->start_p = (uae_u8 *)min_pcp; + csi->length = max_pcp - min_pcp + LONGEST_68K_INST; + csi->next = bi->csi; + bi->csi = csi; + max_pcp = (uintptr)currpcp; + } + min_pcp = (uintptr)currpcp; #else - if ((uintptr)currpcp < min_pcp) - min_pcp=(uintptr)currpcp; - if ((uintptr)currpcp > max_pcp) - max_pcp=(uintptr)currpcp; + if ((uintptr)currpcp < min_pcp) + min_pcp=(uintptr)currpcp; + if ((uintptr)currpcp > max_pcp) + max_pcp=(uintptr)currpcp; #endif - liveflags[i] = ((liveflags[i+1] & - (~prop[op].set_flags)) | - prop[op].use_flags); - if (prop[op].is_addx && (liveflags[i+1] & FLAG_Z) == 0) - liveflags[i] &= ~FLAG_Z; - } + liveflags[i] = ((liveflags[i+1] & + (~prop[op].set_flags)) | + prop[op].use_flags); + if (prop[op].is_addx && (liveflags[i+1] & FLAG_Z) == 0) + liveflags[i] &= ~FLAG_Z; + } #if USE_CHECKSUM_INFO - checksum_info *csi = alloc_checksum_info(); - csi->start_p = (uae_u8 *)min_pcp; - csi->length = max_pcp - min_pcp + LONGEST_68K_INST; - csi->next = bi->csi; - bi->csi = csi; + checksum_info *csi = alloc_checksum_info(); + csi->start_p = (uae_u8 *)min_pcp; + csi->length = max_pcp - min_pcp + LONGEST_68K_INST; + csi->next = bi->csi; + bi->csi = csi; #endif - bi->needed_flags = liveflags[0]; + bi->needed_flags = liveflags[0]; - /* This is the non-direct handler */ + /* This is the non-direct handler */ #ifndef ALIGN_NOT_NEEDED - align_target(align_loops); + align_target(align_loops); #endif - was_comp = 0; + was_comp = 0; - bi->direct_handler = (cpuop_func *)get_target(); - set_dhtu(bi,bi->direct_handler); - bi->status = BI_COMPILING; - current_block_start_target = (uintptr)get_target(); + bi->direct_handler = (cpuop_func *)get_target(); + set_dhtu(bi,bi->direct_handler); + bi->status = BI_COMPILING; + current_block_start_target = (uintptr)get_target(); - if (bi->count >= 0) { /* Need to generate countdown code */ - compemu_raw_mov_l_mi((uintptr)®s.pc_p, (uintptr)pc_hist[0].location); - compemu_raw_sub_l_mi((uintptr)&(bi->count), 1); - compemu_raw_jl((uintptr)popall_recompile_block); - } - if (optlev == 0) { /* No need to actually translate */ - /* Execute normally without keeping stats */ - compemu_raw_mov_l_mi((uintptr)®s.pc_p, (uintptr)pc_hist[0].location); - compemu_raw_jmp((uintptr)popall_exec_nostats); - } - else { - next_pc_p = 0; - taken_pc_p = 0; - branch_cc = 0; // Only to be initialized. Will be set together with next_pc_p + if (bi->count >= 0) /* Need to generate countdown code */ + { + compemu_raw_mov_l_mi((uintptr)®s.pc_p, (uintptr)pc_hist[0].location); + compemu_raw_sub_l_mi((uintptr)&(bi->count), 1); + compemu_raw_jl((uintptr)popall_recompile_block); + } + if (optlev == 0) /* No need to actually translate */ + { + /* Execute normally without keeping stats */ + compemu_raw_mov_l_mi((uintptr)®s.pc_p, (uintptr)pc_hist[0].location); + compemu_raw_jmp((uintptr)popall_exec_nostats); + } + else + { + next_pc_p = 0; + taken_pc_p = 0; + branch_cc = 0; // Only to be initialized. Will be set together with next_pc_p - comp_pc_p = (uae_u8*)pc_hist[0].location; - init_comp(); - was_comp = 1; + comp_pc_p = (uae_u8*)pc_hist[0].location; + init_comp(); + was_comp = 1; #ifdef JIT_DEBUG - if (JITDebug) { - compemu_raw_mov_l_mi((uintptr)&last_regs_pc_p, (uintptr)pc_hist[0].location); - compemu_raw_mov_l_mi((uintptr)&last_compiled_block_addr, current_block_start_target); - } + if (JITDebug) + { + compemu_raw_mov_l_mi((uintptr)&last_regs_pc_p, (uintptr)pc_hist[0].location); + compemu_raw_mov_l_mi((uintptr)&last_compiled_block_addr, current_block_start_target); + } #endif - for (i = 0; i < blocklen && get_target_noopt() < MAX_COMPILE_PTR; i++) { - cpuop_func **cputbl; - compop_func **comptbl; - uae_u32 opcode = DO_GET_OPCODE(pc_hist[i].location); - needed_flags = (liveflags[i+1] & prop[opcode].set_flags); - special_mem = pc_hist[i].specmem; - D(bug(" 0x%08x: %04x (special_mem=%d, needed_flags=%d)\n", pc_hist[i].location, opcode, special_mem, needed_flags)); - if (!needed_flags) { + for (i = 0; i < blocklen && get_target_noopt() < MAX_COMPILE_PTR; i++) + { + cpuop_func **cputbl; + compop_func **comptbl; + uae_u32 opcode = DO_GET_OPCODE(pc_hist[i].location); + needed_flags = (liveflags[i+1] & prop[opcode].set_flags); + special_mem = pc_hist[i].specmem; + D(bug(" 0x%08x: %04x (special_mem=%d, needed_flags=%d)\n", pc_hist[i].location, opcode, special_mem, needed_flags)); + if (!needed_flags) + { #ifdef NOFLAGS_SUPPORT - cputbl=nfcpufunctbl; + cputbl=nfcpufunctbl; #else - cputbl=cpufunctbl; + cputbl=cpufunctbl; #endif - comptbl=nfcompfunctbl; - } - else { - cputbl = cpufunctbl; - comptbl = compfunctbl; - } + comptbl=nfcompfunctbl; + } + else + { + cputbl = cpufunctbl; + comptbl = compfunctbl; + } - failure = 1; // gb-- defaults to failure state - if (comptbl[opcode] && optlev > 1) { - failure = 0; - if (!was_comp) { - comp_pc_p = (uae_u8*)pc_hist[i].location; - init_comp(); - } - was_comp = 1; - - comptbl[opcode](opcode); - freescratch(); - if (!(liveflags[i+1] & FLAG_CZNV)) { - /* We can forget about flags */ - dont_care_flags(); - } + failure = 1; // gb-- defaults to failure state + if (comptbl[opcode] && optlev > 1) + { + failure = 0; + if (!was_comp) + { + comp_pc_p = (uae_u8*)pc_hist[i].location; + init_comp(); + } + was_comp = 1; + + comptbl[opcode](opcode); + freescratch(); + if (!(liveflags[i+1] & FLAG_CZNV)) + { + /* We can forget about flags */ + dont_care_flags(); + } #if INDIVIDUAL_INST - flush(1); - nop(); - flush(1); - was_comp = 0; + flush(1); + nop(); + flush(1); + was_comp = 0; #endif - } - if (failure) { - if (was_comp) { - flush(1); - was_comp = 0; - } - compemu_raw_mov_l_ri(REG_PAR1, (uae_u32)opcode); - compemu_raw_mov_l_ri(REG_PAR2, (uae_u32)®s); - compemu_raw_mov_l_mi((uintptr)®s.pc_p, (uintptr)pc_hist[i].location); - compemu_raw_call((uintptr)cputbl[opcode]); + } + if (failure) + { + if (was_comp) + { + flush(1); + was_comp = 0; + } + compemu_raw_mov_l_ri(REG_PAR1, (uae_u32)opcode); + compemu_raw_mov_l_ri(REG_PAR2, (uae_u32)®s); + compemu_raw_mov_l_mi((uintptr)®s.pc_p, (uintptr)pc_hist[i].location); + compemu_raw_call((uintptr)cputbl[opcode]); #ifdef PROFILE_UNTRANSLATED_INSNS - // raw_cputbl_count[] is indexed with plain opcode (in m68k order) - compemu_raw_add_l_mi((uintptr)&raw_cputbl_count[cft_map(opcode)], 1); + // raw_cputbl_count[] is indexed with plain opcode (in m68k order) + compemu_raw_add_l_mi((uintptr)&raw_cputbl_count[cft_map(opcode)], 1); #endif - if (i < blocklen - 1) { - uae_s8* branchadd; - - compemu_raw_mov_l_rm(0, (uintptr)specflags); - compemu_raw_test_l_rr(0, 0); -#if defined(CPU_arm) && !defined(ARMV6T2) - data_check_end(8, 56); -#endif - compemu_raw_jz_b_oponly(); - branchadd = (uae_s8 *)get_target(); - compemu_raw_sub_l_mi((uintptr)&countdown, scaled_cycles(totcycles)); - compemu_raw_jmp((uintptr)popall_do_nothing); - *(branchadd - 4) = (((uintptr)get_target() - (uintptr)branchadd) - 4) >> 2; - D(bug(" branchadd(byte) to 0x%08x: 0x%02x\n", branchadd, *branchadd)); - } - } - } + if (i < blocklen - 1) + { + uae_s8* branchadd; - if (next_pc_p) { /* A branch was registered */ - uintptr t1 = next_pc_p; - uintptr t2 = taken_pc_p; - int cc = branch_cc; - - uae_u32* branchadd; - uae_u32* tba; - bigstate tmp; - blockinfo* tbi; - - if (taken_pc_p < next_pc_p) { - /* backward branch. Optimize for the "taken" case --- - which means the raw_jcc should fall through when - the 68k branch is taken. */ - t1 = taken_pc_p; - t2 = next_pc_p; - cc = branch_cc^1; - } - - tmp = live; /* ouch! This is big... */ - compemu_raw_jcc_l_oponly(cc); - branchadd = (uae_u32*)get_target(); - emit_long(0); - - /* predicted outcome */ - tbi = get_blockinfo_addr_new((void*)t1, 1); - match_states(tbi); - + compemu_raw_mov_l_rm(0, (uintptr)specflags); + compemu_raw_test_l_rr(0, 0); #if defined(CPU_arm) && !defined(ARMV6T2) - data_check_end(4, 56); + data_check_end(8, 56); #endif - compemu_raw_endblock_pc_isconst(scaled_cycles(totcycles), t1); - tba = (uae_u32*)get_target(); - emit_jmp_target(get_handler(t1)); - create_jmpdep(bi, 0, tba, t1); + compemu_raw_jz_b_oponly(); + branchadd = (uae_s8 *)get_target(); + compemu_raw_sub_l_mi((uintptr)&countdown, scaled_cycles(totcycles)); + compemu_raw_jmp((uintptr)popall_do_nothing); + *(branchadd - 4) = (((uintptr)get_target() - (uintptr)branchadd) - 4) >> 2; + D(bug(" branchadd(byte) to 0x%08x: 0x%02x\n", branchadd, *branchadd)); + } + } + } + + if (next_pc_p) /* A branch was registered */ + { + uintptr t1 = next_pc_p; + uintptr t2 = taken_pc_p; + int cc = branch_cc; + + uae_u32* branchadd; + uae_u32* tba; + bigstate tmp; + blockinfo* tbi; + + if (taken_pc_p < next_pc_p) + { + /* backward branch. Optimize for the "taken" case --- + which means the raw_jcc should fall through when + the 68k branch is taken. */ + t1 = taken_pc_p; + t2 = next_pc_p; + cc = branch_cc^1; + } + + tmp = live; /* ouch! This is big... */ + compemu_raw_jcc_l_oponly(cc); + branchadd = (uae_u32*)get_target(); + emit_long(0); + + /* predicted outcome */ + tbi = get_blockinfo_addr_new((void*)t1, 1); + match_states(tbi); + +#if defined(CPU_arm) && !defined(ARMV6T2) + data_check_end(4, 56); +#endif + compemu_raw_endblock_pc_isconst(scaled_cycles(totcycles), t1); + tba = (uae_u32*)get_target(); + emit_jmp_target(get_handler(t1)); + create_jmpdep(bi, 0, tba, t1); #ifndef ALIGN_NOT_NEEDED - align_target(align_jumps); + align_target(align_jumps); #endif - /* not-predicted outcome */ - write_jmp_target(branchadd, (cpuop_func*)get_target()); - D(bug(" write_jmp_target to 0x%08x: 0x%08x\n", branchadd, get_target())); - live = tmp; /* Ouch again */ - tbi = get_blockinfo_addr_new((void*)t2, 1); - match_states(tbi); + /* not-predicted outcome */ + write_jmp_target(branchadd, (cpuop_func*)get_target()); + D(bug(" write_jmp_target to 0x%08x: 0x%08x\n", branchadd, get_target())); + live = tmp; /* Ouch again */ + tbi = get_blockinfo_addr_new((void*)t2, 1); + match_states(tbi); - //flush(1); /* Can only get here if was_comp==1 */ + //flush(1); /* Can only get here if was_comp==1 */ #if defined(CPU_arm) && !defined(ARMV6T2) - data_check_end(4, 56); + data_check_end(4, 56); #endif - compemu_raw_endblock_pc_isconst(scaled_cycles(totcycles), t2); - tba = (uae_u32*)get_target(); - emit_jmp_target(get_handler(t2)); - create_jmpdep(bi, 1, tba, t2); - } - else - { - if (was_comp) { - flush(1); - } + compemu_raw_endblock_pc_isconst(scaled_cycles(totcycles), t2); + tba = (uae_u32*)get_target(); + emit_jmp_target(get_handler(t2)); + create_jmpdep(bi, 1, tba, t2); + } + else + { + if (was_comp) + { + flush(1); + } - /* Let's find out where next_handler is... */ - if (was_comp && isinreg(PC_P)) { + /* Let's find out where next_handler is... */ + if (was_comp && isinreg(PC_P)) + { #if defined(CPU_arm) && !defined(ARMV6T2) - data_check_end(4, 52); + data_check_end(4, 52); #endif - r = live.state[PC_P].realreg; - compemu_raw_endblock_pc_inreg(r, scaled_cycles(totcycles)); - } - else if (was_comp && isconst(PC_P)) { - uintptr v = live.state[PC_P].val; - uae_u32* tba; - blockinfo* tbi; - - tbi = get_blockinfo_addr_new((void*)v, 1); - match_states(tbi); + r = live.state[PC_P].realreg; + compemu_raw_endblock_pc_inreg(r, scaled_cycles(totcycles)); + } + else if (was_comp && isconst(PC_P)) + { + uintptr v = live.state[PC_P].val; + uae_u32* tba; + blockinfo* tbi; + + tbi = get_blockinfo_addr_new((void*)v, 1); + match_states(tbi); #if defined(CPU_arm) && !defined(ARMV6T2) - data_check_end(4, 56); + data_check_end(4, 56); #endif - compemu_raw_endblock_pc_isconst(scaled_cycles(totcycles), v); - tba = (uae_u32*)get_target(); - emit_jmp_target(get_handler(v)); - create_jmpdep(bi, 0, tba, v); - } - else { - r = REG_PC_TMP; - compemu_raw_mov_l_rm(r, (uintptr)®s.pc_p); + compemu_raw_endblock_pc_isconst(scaled_cycles(totcycles), v); + tba = (uae_u32*)get_target(); + emit_jmp_target(get_handler(v)); + create_jmpdep(bi, 0, tba, v); + } + else + { + r = REG_PC_TMP; + compemu_raw_mov_l_rm(r, (uintptr)®s.pc_p); #if defined(CPU_arm) && !defined(ARMV6T2) - data_check_end(4, 52); + data_check_end(4, 52); #endif - compemu_raw_endblock_pc_inreg(r, scaled_cycles(totcycles)); - } - } - } + compemu_raw_endblock_pc_inreg(r, scaled_cycles(totcycles)); + } + } + } #if USE_CHECKSUM_INFO - remove_from_list(bi); - if (trace_in_rom) { - // No need to checksum that block trace on cache invalidation - free_checksum_info_chain(bi->csi); - bi->csi = NULL; - add_to_dormant(bi); - } - else { - calc_checksum(bi, &(bi->c1), &(bi->c2)); - add_to_active(bi); - } + remove_from_list(bi); + if (trace_in_rom) + { + // No need to checksum that block trace on cache invalidation + free_checksum_info_chain(bi->csi); + bi->csi = NULL; + add_to_dormant(bi); + } + else + { + calc_checksum(bi, &(bi->c1), &(bi->c2)); + add_to_active(bi); + } #else - if (next_pc_p + extra_len >= max_pcp && next_pc_p + extra_len < max_pcp + LONGEST_68K_INST) - max_pcp = next_pc_p + extra_len; /* extra_len covers flags magic */ - else - max_pcp += LONGEST_68K_INST; - - bi->len = max_pcp - min_pcp; - bi->min_pcp = min_pcp; - - remove_from_list(bi); - if (isinrom(min_pcp) && isinrom(max_pcp)) { - add_to_dormant(bi); /* No need to checksum it on cache flush. + if (next_pc_p + extra_len >= max_pcp && next_pc_p + extra_len < max_pcp + LONGEST_68K_INST) + max_pcp = next_pc_p + extra_len; /* extra_len covers flags magic */ + else + max_pcp += LONGEST_68K_INST; + + bi->len = max_pcp - min_pcp; + bi->min_pcp = min_pcp; + + remove_from_list(bi); + if (isinrom(min_pcp) && isinrom(max_pcp)) + { + add_to_dormant(bi); /* No need to checksum it on cache flush. Please don't start changing ROMs in flight! */ - } - else { - calc_checksum(bi, &(bi->c1), &(bi->c2)); - add_to_active(bi); - } + } + else + { + calc_checksum(bi, &(bi->c1), &(bi->c2)); + add_to_active(bi); + } #endif - current_cache_size += get_target() - (uae_u8 *)current_compile_p; + current_cache_size += get_target() - (uae_u8 *)current_compile_p; #ifdef JIT_DEBUG - if (JITDebug) - bi->direct_handler_size = get_target() - (uae_u8 *)current_block_start_target; + if (JITDebug) + bi->direct_handler_size = get_target() - (uae_u8 *)current_block_start_target; #endif #ifndef ALIGN_NOT_NEEDED - align_target(align_jumps); + align_target(align_jumps); #endif - /* This is the non-direct handler */ - bi->handler = - bi->handler_to_use = (cpuop_func *)get_target(); - compemu_raw_cmp_l_mi((uintptr)®s.pc_p, (uintptr)pc_hist[0].location); - compemu_raw_jnz((uintptr)popall_cache_miss); - comp_pc_p = (uae_u8*)pc_hist[0].location; + /* This is the non-direct handler */ + bi->handler = + bi->handler_to_use = (cpuop_func *)get_target(); + compemu_raw_cmp_l_mi((uintptr)®s.pc_p, (uintptr)pc_hist[0].location); + compemu_raw_jnz((uintptr)popall_cache_miss); + comp_pc_p = (uae_u8*)pc_hist[0].location; - bi->status=BI_FINALIZING; - init_comp(); - match_states(bi); - flush(1); - - compemu_raw_jmp((uintptr)bi->direct_handler); + bi->status=BI_FINALIZING; + init_comp(); + match_states(bi); + flush(1); - flush_cpu_icache((void *)current_block_start_target, (void *)target); - current_compile_p = get_target(); - raise_in_cl_list(bi); + compemu_raw_jmp((uintptr)bi->direct_handler); - /* We will flush soon, anyway, so let's do it now */ - if (current_compile_p >= MAX_COMPILE_PTR) - flush_icache_hard(0, 3); + flush_cpu_icache((void *)current_block_start_target, (void *)target); + current_compile_p = get_target(); + raise_in_cl_list(bi); + + /* We will flush soon, anyway, so let's do it now */ + if (current_compile_p >= MAX_COMPILE_PTR) + flush_icache_hard(0, 3); + + bi->status = BI_ACTIVE; + if (redo_current_block) + block_need_recompile(bi); - bi->status = BI_ACTIVE; - if (redo_current_block) - block_need_recompile(bi); - #ifdef PROFILE_COMPILE_TIME - compile_time += (clock() - start_time); + compile_time += (clock() - start_time); #endif - } + } } void dump_compiler(uae_u32* sp) { - int i, j; - - for(i=-16; i<16; i+=4) - { - printf("0x%08x: 0x%08x 0x%08x 0x%08x 0x%08x\n", sp + i, sp[i], sp[i+1], sp[i+2], sp[i+3]); - } + int i, j; - printf("compile cache: 0x%08x - 0x%08x\n", compiled_code, compiled_code + currprefs.cachesize * 1024); - printf("start_pc_p=0x%08x, start_pc=0x%08x, current_block_pc_p=0x%08x\n", start_pc_p, start_pc, current_block_pc_p); - printf("current_block_start_target=0x%08x, needed_flags=%d\n", current_block_start_target, needed_flags); - printf("current_compile_p=0x%08x, max_compile_start=0x%08x\n", current_compile_p, max_compile_start); + for(i=-16; i<16; i+=4) + { + printf("0x%08x: 0x%08x 0x%08x 0x%08x 0x%08x\n", sp + i, sp[i], sp[i+1], sp[i+2], sp[i+3]); + } -/* - printf("PC history:\n"); - for(i=trace_pc_idx - 16, j=0; i < trace_pc_idx; ++i, ++j) - { - printf("0x%08x (%d) \t", i >= 0 ? trace_pc[i] : trace_pc[i + TRACE_PC_HISTORY], - i >= 0 ? trace_pc_i[i] : trace_pc_i[i + TRACE_PC_HISTORY]); - if((j & 3) == 3) - printf("\n"); - } -*/ + printf("compile cache: 0x%08x - 0x%08x\n", compiled_code, compiled_code + currprefs.cachesize * 1024); + printf("start_pc_p=0x%08x, start_pc=0x%08x, current_block_pc_p=0x%08x\n", start_pc_p, start_pc, current_block_pc_p); + printf("current_block_start_target=0x%08x, needed_flags=%d\n", current_block_start_target, needed_flags); + printf("current_compile_p=0x%08x, max_compile_start=0x%08x\n", current_compile_p, max_compile_start); + + /* + printf("PC history:\n"); + for(i=trace_pc_idx - 16, j=0; i < trace_pc_idx; ++i, ++j) + { + printf("0x%08x (%d) \t", i >= 0 ? trace_pc[i] : trace_pc[i + TRACE_PC_HISTORY], + i >= 0 ? trace_pc_i[i] : trace_pc_i[i + TRACE_PC_HISTORY]); + if((j & 3) == 3) + printf("\n"); + } + */ } diff --git a/src/jit/compstbl.cpp b/src/jit/compstbl.cpp index 44834373..3baa6bc0 100644 --- a/src/jit/compstbl.cpp +++ b/src/jit/compstbl.cpp @@ -7,3750 +7,3754 @@ #include "custom.h" #include "comptbl.h" #include "debug.h" -extern const struct comptbl op_smalltbl_0_comp_ff[] = { -{ op_0_0_comp_ff, 0x00000002, 0 }, /* OR */ -{ op_10_0_comp_ff, 0x00000002, 16 }, /* OR */ -{ op_18_0_comp_ff, 0x00000002, 24 }, /* OR */ -{ op_20_0_comp_ff, 0x00000002, 32 }, /* OR */ -{ op_28_0_comp_ff, 0x00000002, 40 }, /* OR */ -{ op_30_0_comp_ff, 0x00000002, 48 }, /* OR */ -{ op_38_0_comp_ff, 0x00000002, 56 }, /* OR */ -{ op_39_0_comp_ff, 0x00000002, 57 }, /* OR */ -{ op_3c_0_comp_ff, 0x00000002, 60 }, /* ORSR */ -{ op_40_0_comp_ff, 0x00000002, 64 }, /* OR */ -{ op_50_0_comp_ff, 0x00000002, 80 }, /* OR */ -{ op_58_0_comp_ff, 0x00000002, 88 }, /* OR */ -{ op_60_0_comp_ff, 0x00000002, 96 }, /* OR */ -{ op_68_0_comp_ff, 0x00000002, 104 }, /* OR */ -{ op_70_0_comp_ff, 0x00000002, 112 }, /* OR */ -{ op_78_0_comp_ff, 0x00000002, 120 }, /* OR */ -{ op_79_0_comp_ff, 0x00000002, 121 }, /* OR */ -{ NULL, 0x00000002, 124 }, /* ORSR */ -{ op_80_0_comp_ff, 0x00000002, 128 }, /* OR */ -{ op_90_0_comp_ff, 0x00000002, 144 }, /* OR */ -{ op_98_0_comp_ff, 0x00000002, 152 }, /* OR */ -{ op_a0_0_comp_ff, 0x00000002, 160 }, /* OR */ -{ op_a8_0_comp_ff, 0x00000002, 168 }, /* OR */ -{ op_b0_0_comp_ff, 0x00000002, 176 }, /* OR */ -{ op_b8_0_comp_ff, 0x00000002, 184 }, /* OR */ -{ op_b9_0_comp_ff, 0x00000002, 185 }, /* OR */ -{ NULL, 0x00000001, 208 }, /* CHK2 */ -{ NULL, 0x00000001, 232 }, /* CHK2 */ -{ NULL, 0x00000001, 240 }, /* CHK2 */ -{ NULL, 0x00000001, 248 }, /* CHK2 */ -{ NULL, 0x00000001, 249 }, /* CHK2 */ -{ NULL, 0x00000001, 250 }, /* CHK2 */ -{ NULL, 0x00000001, 251 }, /* CHK2 */ -{ op_100_0_comp_ff, 0x00000000, 256 }, /* BTST */ -{ NULL, 0x00000001, 264 }, /* MVPMR */ -{ op_110_0_comp_ff, 0x00000000, 272 }, /* BTST */ -{ op_118_0_comp_ff, 0x00000000, 280 }, /* BTST */ -{ op_120_0_comp_ff, 0x00000000, 288 }, /* BTST */ -{ op_128_0_comp_ff, 0x00000002, 296 }, /* BTST */ -{ op_130_0_comp_ff, 0x00000002, 304 }, /* BTST */ -{ op_138_0_comp_ff, 0x00000002, 312 }, /* BTST */ -{ op_139_0_comp_ff, 0x00000002, 313 }, /* BTST */ -{ op_13a_0_comp_ff, 0x00000002, 314 }, /* BTST */ -{ op_13b_0_comp_ff, 0x00000002, 315 }, /* BTST */ -{ op_13c_0_comp_ff, 0x00000002, 316 }, /* BTST */ -{ op_140_0_comp_ff, 0x00000000, 320 }, /* BCHG */ -{ NULL, 0x00000001, 328 }, /* MVPMR */ -{ op_150_0_comp_ff, 0x00000000, 336 }, /* BCHG */ -{ op_158_0_comp_ff, 0x00000000, 344 }, /* BCHG */ -{ op_160_0_comp_ff, 0x00000000, 352 }, /* BCHG */ -{ op_168_0_comp_ff, 0x00000002, 360 }, /* BCHG */ -{ op_170_0_comp_ff, 0x00000002, 368 }, /* BCHG */ -{ op_178_0_comp_ff, 0x00000002, 376 }, /* BCHG */ -{ op_179_0_comp_ff, 0x00000002, 377 }, /* BCHG */ -{ op_180_0_comp_ff, 0x00000000, 384 }, /* BCLR */ -{ NULL, 0x00000001, 392 }, /* MVPRM */ -{ op_190_0_comp_ff, 0x00000000, 400 }, /* BCLR */ -{ op_198_0_comp_ff, 0x00000000, 408 }, /* BCLR */ -{ op_1a0_0_comp_ff, 0x00000000, 416 }, /* BCLR */ -{ op_1a8_0_comp_ff, 0x00000002, 424 }, /* BCLR */ -{ op_1b0_0_comp_ff, 0x00000002, 432 }, /* BCLR */ -{ op_1b8_0_comp_ff, 0x00000002, 440 }, /* BCLR */ -{ op_1b9_0_comp_ff, 0x00000002, 441 }, /* BCLR */ -{ op_1c0_0_comp_ff, 0x00000000, 448 }, /* BSET */ -{ NULL, 0x00000001, 456 }, /* MVPRM */ -{ op_1d0_0_comp_ff, 0x00000000, 464 }, /* BSET */ -{ op_1d8_0_comp_ff, 0x00000000, 472 }, /* BSET */ -{ op_1e0_0_comp_ff, 0x00000000, 480 }, /* BSET */ -{ op_1e8_0_comp_ff, 0x00000002, 488 }, /* BSET */ -{ op_1f0_0_comp_ff, 0x00000002, 496 }, /* BSET */ -{ op_1f8_0_comp_ff, 0x00000002, 504 }, /* BSET */ -{ op_1f9_0_comp_ff, 0x00000002, 505 }, /* BSET */ -{ op_200_0_comp_ff, 0x00000002, 512 }, /* AND */ -{ op_210_0_comp_ff, 0x00000002, 528 }, /* AND */ -{ op_218_0_comp_ff, 0x00000002, 536 }, /* AND */ -{ op_220_0_comp_ff, 0x00000002, 544 }, /* AND */ -{ op_228_0_comp_ff, 0x00000002, 552 }, /* AND */ -{ op_230_0_comp_ff, 0x00000002, 560 }, /* AND */ -{ op_238_0_comp_ff, 0x00000002, 568 }, /* AND */ -{ op_239_0_comp_ff, 0x00000002, 569 }, /* AND */ -{ op_23c_0_comp_ff, 0x00000002, 572 }, /* ANDSR */ -{ op_240_0_comp_ff, 0x00000002, 576 }, /* AND */ -{ op_250_0_comp_ff, 0x00000002, 592 }, /* AND */ -{ op_258_0_comp_ff, 0x00000002, 600 }, /* AND */ -{ op_260_0_comp_ff, 0x00000002, 608 }, /* AND */ -{ op_268_0_comp_ff, 0x00000002, 616 }, /* AND */ -{ op_270_0_comp_ff, 0x00000002, 624 }, /* AND */ -{ op_278_0_comp_ff, 0x00000002, 632 }, /* AND */ -{ op_279_0_comp_ff, 0x00000002, 633 }, /* AND */ -{ NULL, 0x00000002, 636 }, /* ANDSR */ -{ op_280_0_comp_ff, 0x00000002, 640 }, /* AND */ -{ op_290_0_comp_ff, 0x00000002, 656 }, /* AND */ -{ op_298_0_comp_ff, 0x00000002, 664 }, /* AND */ -{ op_2a0_0_comp_ff, 0x00000002, 672 }, /* AND */ -{ op_2a8_0_comp_ff, 0x00000002, 680 }, /* AND */ -{ op_2b0_0_comp_ff, 0x00000002, 688 }, /* AND */ -{ op_2b8_0_comp_ff, 0x00000002, 696 }, /* AND */ -{ op_2b9_0_comp_ff, 0x00000002, 697 }, /* AND */ -{ NULL, 0x00000001, 720 }, /* CHK2 */ -{ NULL, 0x00000001, 744 }, /* CHK2 */ -{ NULL, 0x00000001, 752 }, /* CHK2 */ -{ NULL, 0x00000001, 760 }, /* CHK2 */ -{ NULL, 0x00000001, 761 }, /* CHK2 */ -{ NULL, 0x00000001, 762 }, /* CHK2 */ -{ NULL, 0x00000001, 763 }, /* CHK2 */ -{ op_400_0_comp_ff, 0x00000002, 1024 }, /* SUB */ -{ op_410_0_comp_ff, 0x00000002, 1040 }, /* SUB */ -{ op_418_0_comp_ff, 0x00000002, 1048 }, /* SUB */ -{ op_420_0_comp_ff, 0x00000002, 1056 }, /* SUB */ -{ op_428_0_comp_ff, 0x00000002, 1064 }, /* SUB */ -{ op_430_0_comp_ff, 0x00000002, 1072 }, /* SUB */ -{ op_438_0_comp_ff, 0x00000002, 1080 }, /* SUB */ -{ op_439_0_comp_ff, 0x00000002, 1081 }, /* SUB */ -{ op_440_0_comp_ff, 0x00000002, 1088 }, /* SUB */ -{ op_450_0_comp_ff, 0x00000002, 1104 }, /* SUB */ -{ op_458_0_comp_ff, 0x00000002, 1112 }, /* SUB */ -{ op_460_0_comp_ff, 0x00000002, 1120 }, /* SUB */ -{ op_468_0_comp_ff, 0x00000002, 1128 }, /* SUB */ -{ op_470_0_comp_ff, 0x00000002, 1136 }, /* SUB */ -{ op_478_0_comp_ff, 0x00000002, 1144 }, /* SUB */ -{ op_479_0_comp_ff, 0x00000002, 1145 }, /* SUB */ -{ op_480_0_comp_ff, 0x00000002, 1152 }, /* SUB */ -{ op_490_0_comp_ff, 0x00000002, 1168 }, /* SUB */ -{ op_498_0_comp_ff, 0x00000002, 1176 }, /* SUB */ -{ op_4a0_0_comp_ff, 0x00000002, 1184 }, /* SUB */ -{ op_4a8_0_comp_ff, 0x00000002, 1192 }, /* SUB */ -{ op_4b0_0_comp_ff, 0x00000002, 1200 }, /* SUB */ -{ op_4b8_0_comp_ff, 0x00000002, 1208 }, /* SUB */ -{ op_4b9_0_comp_ff, 0x00000002, 1209 }, /* SUB */ -{ NULL, 0x00000001, 1232 }, /* CHK2 */ -{ NULL, 0x00000001, 1256 }, /* CHK2 */ -{ NULL, 0x00000001, 1264 }, /* CHK2 */ -{ NULL, 0x00000001, 1272 }, /* CHK2 */ -{ NULL, 0x00000001, 1273 }, /* CHK2 */ -{ NULL, 0x00000001, 1274 }, /* CHK2 */ -{ NULL, 0x00000001, 1275 }, /* CHK2 */ -{ op_600_0_comp_ff, 0x00000002, 1536 }, /* ADD */ -{ op_610_0_comp_ff, 0x00000002, 1552 }, /* ADD */ -{ op_618_0_comp_ff, 0x00000002, 1560 }, /* ADD */ -{ op_620_0_comp_ff, 0x00000002, 1568 }, /* ADD */ -{ op_628_0_comp_ff, 0x00000002, 1576 }, /* ADD */ -{ op_630_0_comp_ff, 0x00000002, 1584 }, /* ADD */ -{ op_638_0_comp_ff, 0x00000002, 1592 }, /* ADD */ -{ op_639_0_comp_ff, 0x00000002, 1593 }, /* ADD */ -{ op_640_0_comp_ff, 0x00000002, 1600 }, /* ADD */ -{ op_650_0_comp_ff, 0x00000002, 1616 }, /* ADD */ -{ op_658_0_comp_ff, 0x00000002, 1624 }, /* ADD */ -{ op_660_0_comp_ff, 0x00000002, 1632 }, /* ADD */ -{ op_668_0_comp_ff, 0x00000002, 1640 }, /* ADD */ -{ op_670_0_comp_ff, 0x00000002, 1648 }, /* ADD */ -{ op_678_0_comp_ff, 0x00000002, 1656 }, /* ADD */ -{ op_679_0_comp_ff, 0x00000002, 1657 }, /* ADD */ -{ op_680_0_comp_ff, 0x00000002, 1664 }, /* ADD */ -{ op_690_0_comp_ff, 0x00000002, 1680 }, /* ADD */ -{ op_698_0_comp_ff, 0x00000002, 1688 }, /* ADD */ -{ op_6a0_0_comp_ff, 0x00000002, 1696 }, /* ADD */ -{ op_6a8_0_comp_ff, 0x00000002, 1704 }, /* ADD */ -{ op_6b0_0_comp_ff, 0x00000002, 1712 }, /* ADD */ -{ op_6b8_0_comp_ff, 0x00000002, 1720 }, /* ADD */ -{ op_6b9_0_comp_ff, 0x00000002, 1721 }, /* ADD */ -{ NULL, 0x00000001, 1728 }, /* RTM */ -{ NULL, 0x00000001, 1736 }, /* RTM */ -{ NULL, 0x00000001, 1744 }, /* CALLM */ -{ NULL, 0x00000001, 1768 }, /* CALLM */ -{ NULL, 0x00000001, 1776 }, /* CALLM */ -{ NULL, 0x00000001, 1784 }, /* CALLM */ -{ NULL, 0x00000001, 1785 }, /* CALLM */ -{ NULL, 0x00000001, 1786 }, /* CALLM */ -{ NULL, 0x00000001, 1787 }, /* CALLM */ -{ op_800_0_comp_ff, 0x00000002, 2048 }, /* BTST */ -{ op_810_0_comp_ff, 0x00000002, 2064 }, /* BTST */ -{ op_818_0_comp_ff, 0x00000002, 2072 }, /* BTST */ -{ op_820_0_comp_ff, 0x00000002, 2080 }, /* BTST */ -{ op_828_0_comp_ff, 0x00000002, 2088 }, /* BTST */ -{ op_830_0_comp_ff, 0x00000002, 2096 }, /* BTST */ -{ op_838_0_comp_ff, 0x00000002, 2104 }, /* BTST */ -{ op_839_0_comp_ff, 0x00000002, 2105 }, /* BTST */ -{ op_83a_0_comp_ff, 0x00000002, 2106 }, /* BTST */ -{ op_83b_0_comp_ff, 0x00000002, 2107 }, /* BTST */ -{ op_83c_0_comp_ff, 0x00000002, 2108 }, /* BTST */ -{ op_840_0_comp_ff, 0x00000002, 2112 }, /* BCHG */ -{ op_850_0_comp_ff, 0x00000002, 2128 }, /* BCHG */ -{ op_858_0_comp_ff, 0x00000002, 2136 }, /* BCHG */ -{ op_860_0_comp_ff, 0x00000002, 2144 }, /* BCHG */ -{ op_868_0_comp_ff, 0x00000002, 2152 }, /* BCHG */ -{ op_870_0_comp_ff, 0x00000002, 2160 }, /* BCHG */ -{ op_878_0_comp_ff, 0x00000002, 2168 }, /* BCHG */ -{ op_879_0_comp_ff, 0x00000002, 2169 }, /* BCHG */ -{ op_880_0_comp_ff, 0x00000002, 2176 }, /* BCLR */ -{ op_890_0_comp_ff, 0x00000002, 2192 }, /* BCLR */ -{ op_898_0_comp_ff, 0x00000002, 2200 }, /* BCLR */ -{ op_8a0_0_comp_ff, 0x00000002, 2208 }, /* BCLR */ -{ op_8a8_0_comp_ff, 0x00000002, 2216 }, /* BCLR */ -{ op_8b0_0_comp_ff, 0x00000002, 2224 }, /* BCLR */ -{ op_8b8_0_comp_ff, 0x00000002, 2232 }, /* BCLR */ -{ op_8b9_0_comp_ff, 0x00000002, 2233 }, /* BCLR */ -{ op_8c0_0_comp_ff, 0x00000002, 2240 }, /* BSET */ -{ op_8d0_0_comp_ff, 0x00000002, 2256 }, /* BSET */ -{ op_8d8_0_comp_ff, 0x00000002, 2264 }, /* BSET */ -{ op_8e0_0_comp_ff, 0x00000002, 2272 }, /* BSET */ -{ op_8e8_0_comp_ff, 0x00000002, 2280 }, /* BSET */ -{ op_8f0_0_comp_ff, 0x00000002, 2288 }, /* BSET */ -{ op_8f8_0_comp_ff, 0x00000002, 2296 }, /* BSET */ -{ op_8f9_0_comp_ff, 0x00000002, 2297 }, /* BSET */ -{ op_a00_0_comp_ff, 0x00000002, 2560 }, /* EOR */ -{ op_a10_0_comp_ff, 0x00000002, 2576 }, /* EOR */ -{ op_a18_0_comp_ff, 0x00000002, 2584 }, /* EOR */ -{ op_a20_0_comp_ff, 0x00000002, 2592 }, /* EOR */ -{ op_a28_0_comp_ff, 0x00000002, 2600 }, /* EOR */ -{ op_a30_0_comp_ff, 0x00000002, 2608 }, /* EOR */ -{ op_a38_0_comp_ff, 0x00000002, 2616 }, /* EOR */ -{ op_a39_0_comp_ff, 0x00000002, 2617 }, /* EOR */ -{ op_a3c_0_comp_ff, 0x00000002, 2620 }, /* EORSR */ -{ op_a40_0_comp_ff, 0x00000002, 2624 }, /* EOR */ -{ op_a50_0_comp_ff, 0x00000002, 2640 }, /* EOR */ -{ op_a58_0_comp_ff, 0x00000002, 2648 }, /* EOR */ -{ op_a60_0_comp_ff, 0x00000002, 2656 }, /* EOR */ -{ op_a68_0_comp_ff, 0x00000002, 2664 }, /* EOR */ -{ op_a70_0_comp_ff, 0x00000002, 2672 }, /* EOR */ -{ op_a78_0_comp_ff, 0x00000002, 2680 }, /* EOR */ -{ op_a79_0_comp_ff, 0x00000002, 2681 }, /* EOR */ -{ NULL, 0x00000002, 2684 }, /* EORSR */ -{ op_a80_0_comp_ff, 0x00000002, 2688 }, /* EOR */ -{ op_a90_0_comp_ff, 0x00000002, 2704 }, /* EOR */ -{ op_a98_0_comp_ff, 0x00000002, 2712 }, /* EOR */ -{ op_aa0_0_comp_ff, 0x00000002, 2720 }, /* EOR */ -{ op_aa8_0_comp_ff, 0x00000002, 2728 }, /* EOR */ -{ op_ab0_0_comp_ff, 0x00000002, 2736 }, /* EOR */ -{ op_ab8_0_comp_ff, 0x00000002, 2744 }, /* EOR */ -{ op_ab9_0_comp_ff, 0x00000002, 2745 }, /* EOR */ -{ NULL, 0x00000000, 2768 }, /* CAS */ -{ NULL, 0x00000000, 2776 }, /* CAS */ -{ NULL, 0x00000000, 2784 }, /* CAS */ -{ NULL, 0x00000000, 2792 }, /* CAS */ -{ NULL, 0x00000000, 2800 }, /* CAS */ -{ NULL, 0x00000000, 2808 }, /* CAS */ -{ NULL, 0x00000000, 2809 }, /* CAS */ -{ op_c00_0_comp_ff, 0x00000002, 3072 }, /* CMP */ -{ op_c10_0_comp_ff, 0x00000002, 3088 }, /* CMP */ -{ op_c18_0_comp_ff, 0x00000002, 3096 }, /* CMP */ -{ op_c20_0_comp_ff, 0x00000002, 3104 }, /* CMP */ -{ op_c28_0_comp_ff, 0x00000002, 3112 }, /* CMP */ -{ op_c30_0_comp_ff, 0x00000002, 3120 }, /* CMP */ -{ op_c38_0_comp_ff, 0x00000002, 3128 }, /* CMP */ -{ op_c39_0_comp_ff, 0x00000002, 3129 }, /* CMP */ -{ op_c3a_0_comp_ff, 0x00000002, 3130 }, /* CMP */ -{ op_c3b_0_comp_ff, 0x00000002, 3131 }, /* CMP */ -{ op_c40_0_comp_ff, 0x00000002, 3136 }, /* CMP */ -{ op_c50_0_comp_ff, 0x00000002, 3152 }, /* CMP */ -{ op_c58_0_comp_ff, 0x00000002, 3160 }, /* CMP */ -{ op_c60_0_comp_ff, 0x00000002, 3168 }, /* CMP */ -{ op_c68_0_comp_ff, 0x00000002, 3176 }, /* CMP */ -{ op_c70_0_comp_ff, 0x00000002, 3184 }, /* CMP */ -{ op_c78_0_comp_ff, 0x00000002, 3192 }, /* CMP */ -{ op_c79_0_comp_ff, 0x00000002, 3193 }, /* CMP */ -{ op_c7a_0_comp_ff, 0x00000002, 3194 }, /* CMP */ -{ op_c7b_0_comp_ff, 0x00000002, 3195 }, /* CMP */ -{ op_c80_0_comp_ff, 0x00000002, 3200 }, /* CMP */ -{ op_c90_0_comp_ff, 0x00000002, 3216 }, /* CMP */ -{ op_c98_0_comp_ff, 0x00000002, 3224 }, /* CMP */ -{ op_ca0_0_comp_ff, 0x00000002, 3232 }, /* CMP */ -{ op_ca8_0_comp_ff, 0x00000002, 3240 }, /* CMP */ -{ op_cb0_0_comp_ff, 0x00000002, 3248 }, /* CMP */ -{ op_cb8_0_comp_ff, 0x00000002, 3256 }, /* CMP */ -{ op_cb9_0_comp_ff, 0x00000002, 3257 }, /* CMP */ -{ op_cba_0_comp_ff, 0x00000002, 3258 }, /* CMP */ -{ op_cbb_0_comp_ff, 0x00000002, 3259 }, /* CMP */ -{ NULL, 0x00000000, 3280 }, /* CAS */ -{ NULL, 0x00000000, 3288 }, /* CAS */ -{ NULL, 0x00000000, 3296 }, /* CAS */ -{ NULL, 0x00000000, 3304 }, /* CAS */ -{ NULL, 0x00000000, 3312 }, /* CAS */ -{ NULL, 0x00000000, 3320 }, /* CAS */ -{ NULL, 0x00000000, 3321 }, /* CAS */ -{ NULL, 0x00000000, 3324 }, /* CAS2 */ -{ NULL, 0x00000001, 3600 }, /* MOVES */ -{ NULL, 0x00000001, 3608 }, /* MOVES */ -{ NULL, 0x00000001, 3616 }, /* MOVES */ -{ NULL, 0x00000001, 3624 }, /* MOVES */ -{ NULL, 0x00000001, 3632 }, /* MOVES */ -{ NULL, 0x00000001, 3640 }, /* MOVES */ -{ NULL, 0x00000001, 3641 }, /* MOVES */ -{ NULL, 0x00000001, 3664 }, /* MOVES */ -{ NULL, 0x00000001, 3672 }, /* MOVES */ -{ NULL, 0x00000001, 3680 }, /* MOVES */ -{ NULL, 0x00000001, 3688 }, /* MOVES */ -{ NULL, 0x00000001, 3696 }, /* MOVES */ -{ NULL, 0x00000001, 3704 }, /* MOVES */ -{ NULL, 0x00000001, 3705 }, /* MOVES */ -{ NULL, 0x00000001, 3728 }, /* MOVES */ -{ NULL, 0x00000001, 3736 }, /* MOVES */ -{ NULL, 0x00000001, 3744 }, /* MOVES */ -{ NULL, 0x00000001, 3752 }, /* MOVES */ -{ NULL, 0x00000001, 3760 }, /* MOVES */ -{ NULL, 0x00000001, 3768 }, /* MOVES */ -{ NULL, 0x00000001, 3769 }, /* MOVES */ -{ NULL, 0x00000000, 3792 }, /* CAS */ -{ NULL, 0x00000000, 3800 }, /* CAS */ -{ NULL, 0x00000000, 3808 }, /* CAS */ -{ NULL, 0x00000000, 3816 }, /* CAS */ -{ NULL, 0x00000000, 3824 }, /* CAS */ -{ NULL, 0x00000000, 3832 }, /* CAS */ -{ NULL, 0x00000000, 3833 }, /* CAS */ -{ NULL, 0x00000000, 3836 }, /* CAS2 */ -{ op_1000_0_comp_ff, 0x00000000, 4096 }, /* MOVE */ -{ op_1010_0_comp_ff, 0x00000000, 4112 }, /* MOVE */ -{ op_1018_0_comp_ff, 0x00000000, 4120 }, /* MOVE */ -{ op_1020_0_comp_ff, 0x00000000, 4128 }, /* MOVE */ -{ op_1028_0_comp_ff, 0x00000002, 4136 }, /* MOVE */ -{ op_1030_0_comp_ff, 0x00000002, 4144 }, /* MOVE */ -{ op_1038_0_comp_ff, 0x00000002, 4152 }, /* MOVE */ -{ op_1039_0_comp_ff, 0x00000002, 4153 }, /* MOVE */ -{ op_103a_0_comp_ff, 0x00000002, 4154 }, /* MOVE */ -{ op_103b_0_comp_ff, 0x00000002, 4155 }, /* MOVE */ -{ op_103c_0_comp_ff, 0x00000002, 4156 }, /* MOVE */ -{ op_1080_0_comp_ff, 0x00000000, 4224 }, /* MOVE */ -{ op_1090_0_comp_ff, 0x00000000, 4240 }, /* MOVE */ -{ op_1098_0_comp_ff, 0x00000000, 4248 }, /* MOVE */ -{ op_10a0_0_comp_ff, 0x00000000, 4256 }, /* MOVE */ -{ op_10a8_0_comp_ff, 0x00000002, 4264 }, /* MOVE */ -{ op_10b0_0_comp_ff, 0x00000002, 4272 }, /* MOVE */ -{ op_10b8_0_comp_ff, 0x00000002, 4280 }, /* MOVE */ -{ op_10b9_0_comp_ff, 0x00000002, 4281 }, /* MOVE */ -{ op_10ba_0_comp_ff, 0x00000002, 4282 }, /* MOVE */ -{ op_10bb_0_comp_ff, 0x00000002, 4283 }, /* MOVE */ -{ op_10bc_0_comp_ff, 0x00000002, 4284 }, /* MOVE */ -{ op_10c0_0_comp_ff, 0x00000000, 4288 }, /* MOVE */ -{ op_10d0_0_comp_ff, 0x00000000, 4304 }, /* MOVE */ -{ op_10d8_0_comp_ff, 0x00000000, 4312 }, /* MOVE */ -{ op_10e0_0_comp_ff, 0x00000000, 4320 }, /* MOVE */ -{ op_10e8_0_comp_ff, 0x00000002, 4328 }, /* MOVE */ -{ op_10f0_0_comp_ff, 0x00000002, 4336 }, /* MOVE */ -{ op_10f8_0_comp_ff, 0x00000002, 4344 }, /* MOVE */ -{ op_10f9_0_comp_ff, 0x00000002, 4345 }, /* MOVE */ -{ op_10fa_0_comp_ff, 0x00000002, 4346 }, /* MOVE */ -{ op_10fb_0_comp_ff, 0x00000002, 4347 }, /* MOVE */ -{ op_10fc_0_comp_ff, 0x00000002, 4348 }, /* MOVE */ -{ op_1100_0_comp_ff, 0x00000000, 4352 }, /* MOVE */ -{ op_1110_0_comp_ff, 0x00000000, 4368 }, /* MOVE */ -{ op_1118_0_comp_ff, 0x00000000, 4376 }, /* MOVE */ -{ op_1120_0_comp_ff, 0x00000000, 4384 }, /* MOVE */ -{ op_1128_0_comp_ff, 0x00000002, 4392 }, /* MOVE */ -{ op_1130_0_comp_ff, 0x00000002, 4400 }, /* MOVE */ -{ op_1138_0_comp_ff, 0x00000002, 4408 }, /* MOVE */ -{ op_1139_0_comp_ff, 0x00000002, 4409 }, /* MOVE */ -{ op_113a_0_comp_ff, 0x00000002, 4410 }, /* MOVE */ -{ op_113b_0_comp_ff, 0x00000002, 4411 }, /* MOVE */ -{ op_113c_0_comp_ff, 0x00000002, 4412 }, /* MOVE */ -{ op_1140_0_comp_ff, 0x00000002, 4416 }, /* MOVE */ -{ op_1150_0_comp_ff, 0x00000002, 4432 }, /* MOVE */ -{ op_1158_0_comp_ff, 0x00000002, 4440 }, /* MOVE */ -{ op_1160_0_comp_ff, 0x00000002, 4448 }, /* MOVE */ -{ op_1168_0_comp_ff, 0x00000002, 4456 }, /* MOVE */ -{ op_1170_0_comp_ff, 0x00000002, 4464 }, /* MOVE */ -{ op_1178_0_comp_ff, 0x00000002, 4472 }, /* MOVE */ -{ op_1179_0_comp_ff, 0x00000002, 4473 }, /* MOVE */ -{ op_117a_0_comp_ff, 0x00000002, 4474 }, /* MOVE */ -{ op_117b_0_comp_ff, 0x00000002, 4475 }, /* MOVE */ -{ op_117c_0_comp_ff, 0x00000002, 4476 }, /* MOVE */ -{ op_1180_0_comp_ff, 0x00000002, 4480 }, /* MOVE */ -{ op_1190_0_comp_ff, 0x00000002, 4496 }, /* MOVE */ -{ op_1198_0_comp_ff, 0x00000002, 4504 }, /* MOVE */ -{ op_11a0_0_comp_ff, 0x00000002, 4512 }, /* MOVE */ -{ op_11a8_0_comp_ff, 0x00000002, 4520 }, /* MOVE */ -{ op_11b0_0_comp_ff, 0x00000002, 4528 }, /* MOVE */ -{ op_11b8_0_comp_ff, 0x00000002, 4536 }, /* MOVE */ -{ op_11b9_0_comp_ff, 0x00000002, 4537 }, /* MOVE */ -{ op_11ba_0_comp_ff, 0x00000002, 4538 }, /* MOVE */ -{ op_11bb_0_comp_ff, 0x00000002, 4539 }, /* MOVE */ -{ op_11bc_0_comp_ff, 0x00000002, 4540 }, /* MOVE */ -{ op_11c0_0_comp_ff, 0x00000002, 4544 }, /* MOVE */ -{ op_11d0_0_comp_ff, 0x00000002, 4560 }, /* MOVE */ -{ op_11d8_0_comp_ff, 0x00000002, 4568 }, /* MOVE */ -{ op_11e0_0_comp_ff, 0x00000002, 4576 }, /* MOVE */ -{ op_11e8_0_comp_ff, 0x00000002, 4584 }, /* MOVE */ -{ op_11f0_0_comp_ff, 0x00000002, 4592 }, /* MOVE */ -{ op_11f8_0_comp_ff, 0x00000002, 4600 }, /* MOVE */ -{ op_11f9_0_comp_ff, 0x00000002, 4601 }, /* MOVE */ -{ op_11fa_0_comp_ff, 0x00000002, 4602 }, /* MOVE */ -{ op_11fb_0_comp_ff, 0x00000002, 4603 }, /* MOVE */ -{ op_11fc_0_comp_ff, 0x00000002, 4604 }, /* MOVE */ -{ op_13c0_0_comp_ff, 0x00000002, 5056 }, /* MOVE */ -{ op_13d0_0_comp_ff, 0x00000002, 5072 }, /* MOVE */ -{ op_13d8_0_comp_ff, 0x00000002, 5080 }, /* MOVE */ -{ op_13e0_0_comp_ff, 0x00000002, 5088 }, /* MOVE */ -{ op_13e8_0_comp_ff, 0x00000002, 5096 }, /* MOVE */ -{ op_13f0_0_comp_ff, 0x00000002, 5104 }, /* MOVE */ -{ op_13f8_0_comp_ff, 0x00000002, 5112 }, /* MOVE */ -{ op_13f9_0_comp_ff, 0x00000002, 5113 }, /* MOVE */ -{ op_13fa_0_comp_ff, 0x00000002, 5114 }, /* MOVE */ -{ op_13fb_0_comp_ff, 0x00000002, 5115 }, /* MOVE */ -{ op_13fc_0_comp_ff, 0x00000002, 5116 }, /* MOVE */ -{ op_2000_0_comp_ff, 0x00000000, 8192 }, /* MOVE */ -{ op_2008_0_comp_ff, 0x00000000, 8200 }, /* MOVE */ -{ op_2010_0_comp_ff, 0x00000000, 8208 }, /* MOVE */ -{ op_2018_0_comp_ff, 0x00000000, 8216 }, /* MOVE */ -{ op_2020_0_comp_ff, 0x00000000, 8224 }, /* MOVE */ -{ op_2028_0_comp_ff, 0x00000002, 8232 }, /* MOVE */ -{ op_2030_0_comp_ff, 0x00000002, 8240 }, /* MOVE */ -{ op_2038_0_comp_ff, 0x00000002, 8248 }, /* MOVE */ -{ op_2039_0_comp_ff, 0x00000002, 8249 }, /* MOVE */ -{ op_203a_0_comp_ff, 0x00000002, 8250 }, /* MOVE */ -{ op_203b_0_comp_ff, 0x00000002, 8251 }, /* MOVE */ -{ op_203c_0_comp_ff, 0x00000002, 8252 }, /* MOVE */ -{ op_2040_0_comp_ff, 0x00000000, 8256 }, /* MOVEA */ -{ op_2048_0_comp_ff, 0x00000000, 8264 }, /* MOVEA */ -{ op_2050_0_comp_ff, 0x00000000, 8272 }, /* MOVEA */ -{ op_2058_0_comp_ff, 0x00000000, 8280 }, /* MOVEA */ -{ op_2060_0_comp_ff, 0x00000000, 8288 }, /* MOVEA */ -{ op_2068_0_comp_ff, 0x00000002, 8296 }, /* MOVEA */ -{ op_2070_0_comp_ff, 0x00000002, 8304 }, /* MOVEA */ -{ op_2078_0_comp_ff, 0x00000002, 8312 }, /* MOVEA */ -{ op_2079_0_comp_ff, 0x00000002, 8313 }, /* MOVEA */ -{ op_207a_0_comp_ff, 0x00000002, 8314 }, /* MOVEA */ -{ op_207b_0_comp_ff, 0x00000002, 8315 }, /* MOVEA */ -{ op_207c_0_comp_ff, 0x00000002, 8316 }, /* MOVEA */ -{ op_2080_0_comp_ff, 0x00000000, 8320 }, /* MOVE */ -{ op_2088_0_comp_ff, 0x00000000, 8328 }, /* MOVE */ -{ op_2090_0_comp_ff, 0x00000000, 8336 }, /* MOVE */ -{ op_2098_0_comp_ff, 0x00000000, 8344 }, /* MOVE */ -{ op_20a0_0_comp_ff, 0x00000000, 8352 }, /* MOVE */ -{ op_20a8_0_comp_ff, 0x00000002, 8360 }, /* MOVE */ -{ op_20b0_0_comp_ff, 0x00000002, 8368 }, /* MOVE */ -{ op_20b8_0_comp_ff, 0x00000002, 8376 }, /* MOVE */ -{ op_20b9_0_comp_ff, 0x00000002, 8377 }, /* MOVE */ -{ op_20ba_0_comp_ff, 0x00000002, 8378 }, /* MOVE */ -{ op_20bb_0_comp_ff, 0x00000002, 8379 }, /* MOVE */ -{ op_20bc_0_comp_ff, 0x00000002, 8380 }, /* MOVE */ -{ op_20c0_0_comp_ff, 0x00000000, 8384 }, /* MOVE */ -{ op_20c8_0_comp_ff, 0x00000000, 8392 }, /* MOVE */ -{ op_20d0_0_comp_ff, 0x00000000, 8400 }, /* MOVE */ -{ op_20d8_0_comp_ff, 0x00000000, 8408 }, /* MOVE */ -{ op_20e0_0_comp_ff, 0x00000000, 8416 }, /* MOVE */ -{ op_20e8_0_comp_ff, 0x00000002, 8424 }, /* MOVE */ -{ op_20f0_0_comp_ff, 0x00000002, 8432 }, /* MOVE */ -{ op_20f8_0_comp_ff, 0x00000002, 8440 }, /* MOVE */ -{ op_20f9_0_comp_ff, 0x00000002, 8441 }, /* MOVE */ -{ op_20fa_0_comp_ff, 0x00000002, 8442 }, /* MOVE */ -{ op_20fb_0_comp_ff, 0x00000002, 8443 }, /* MOVE */ -{ op_20fc_0_comp_ff, 0x00000002, 8444 }, /* MOVE */ -{ op_2100_0_comp_ff, 0x00000000, 8448 }, /* MOVE */ -{ op_2108_0_comp_ff, 0x00000000, 8456 }, /* MOVE */ -{ op_2110_0_comp_ff, 0x00000000, 8464 }, /* MOVE */ -{ op_2118_0_comp_ff, 0x00000000, 8472 }, /* MOVE */ -{ op_2120_0_comp_ff, 0x00000000, 8480 }, /* MOVE */ -{ op_2128_0_comp_ff, 0x00000002, 8488 }, /* MOVE */ -{ op_2130_0_comp_ff, 0x00000002, 8496 }, /* MOVE */ -{ op_2138_0_comp_ff, 0x00000002, 8504 }, /* MOVE */ -{ op_2139_0_comp_ff, 0x00000002, 8505 }, /* MOVE */ -{ op_213a_0_comp_ff, 0x00000002, 8506 }, /* MOVE */ -{ op_213b_0_comp_ff, 0x00000002, 8507 }, /* MOVE */ -{ op_213c_0_comp_ff, 0x00000002, 8508 }, /* MOVE */ -{ op_2140_0_comp_ff, 0x00000002, 8512 }, /* MOVE */ -{ op_2148_0_comp_ff, 0x00000002, 8520 }, /* MOVE */ -{ op_2150_0_comp_ff, 0x00000002, 8528 }, /* MOVE */ -{ op_2158_0_comp_ff, 0x00000002, 8536 }, /* MOVE */ -{ op_2160_0_comp_ff, 0x00000002, 8544 }, /* MOVE */ -{ op_2168_0_comp_ff, 0x00000002, 8552 }, /* MOVE */ -{ op_2170_0_comp_ff, 0x00000002, 8560 }, /* MOVE */ -{ op_2178_0_comp_ff, 0x00000002, 8568 }, /* MOVE */ -{ op_2179_0_comp_ff, 0x00000002, 8569 }, /* MOVE */ -{ op_217a_0_comp_ff, 0x00000002, 8570 }, /* MOVE */ -{ op_217b_0_comp_ff, 0x00000002, 8571 }, /* MOVE */ -{ op_217c_0_comp_ff, 0x00000002, 8572 }, /* MOVE */ -{ op_2180_0_comp_ff, 0x00000002, 8576 }, /* MOVE */ -{ op_2188_0_comp_ff, 0x00000002, 8584 }, /* MOVE */ -{ op_2190_0_comp_ff, 0x00000002, 8592 }, /* MOVE */ -{ op_2198_0_comp_ff, 0x00000002, 8600 }, /* MOVE */ -{ op_21a0_0_comp_ff, 0x00000002, 8608 }, /* MOVE */ -{ op_21a8_0_comp_ff, 0x00000002, 8616 }, /* MOVE */ -{ op_21b0_0_comp_ff, 0x00000002, 8624 }, /* MOVE */ -{ op_21b8_0_comp_ff, 0x00000002, 8632 }, /* MOVE */ -{ op_21b9_0_comp_ff, 0x00000002, 8633 }, /* MOVE */ -{ op_21ba_0_comp_ff, 0x00000002, 8634 }, /* MOVE */ -{ op_21bb_0_comp_ff, 0x00000002, 8635 }, /* MOVE */ -{ op_21bc_0_comp_ff, 0x00000002, 8636 }, /* MOVE */ -{ op_21c0_0_comp_ff, 0x00000002, 8640 }, /* MOVE */ -{ op_21c8_0_comp_ff, 0x00000002, 8648 }, /* MOVE */ -{ op_21d0_0_comp_ff, 0x00000002, 8656 }, /* MOVE */ -{ op_21d8_0_comp_ff, 0x00000002, 8664 }, /* MOVE */ -{ op_21e0_0_comp_ff, 0x00000002, 8672 }, /* MOVE */ -{ op_21e8_0_comp_ff, 0x00000002, 8680 }, /* MOVE */ -{ op_21f0_0_comp_ff, 0x00000002, 8688 }, /* MOVE */ -{ op_21f8_0_comp_ff, 0x00000002, 8696 }, /* MOVE */ -{ op_21f9_0_comp_ff, 0x00000002, 8697 }, /* MOVE */ -{ op_21fa_0_comp_ff, 0x00000002, 8698 }, /* MOVE */ -{ op_21fb_0_comp_ff, 0x00000002, 8699 }, /* MOVE */ -{ op_21fc_0_comp_ff, 0x00000002, 8700 }, /* MOVE */ -{ op_23c0_0_comp_ff, 0x00000002, 9152 }, /* MOVE */ -{ op_23c8_0_comp_ff, 0x00000002, 9160 }, /* MOVE */ -{ op_23d0_0_comp_ff, 0x00000002, 9168 }, /* MOVE */ -{ op_23d8_0_comp_ff, 0x00000002, 9176 }, /* MOVE */ -{ op_23e0_0_comp_ff, 0x00000002, 9184 }, /* MOVE */ -{ op_23e8_0_comp_ff, 0x00000002, 9192 }, /* MOVE */ -{ op_23f0_0_comp_ff, 0x00000002, 9200 }, /* MOVE */ -{ op_23f8_0_comp_ff, 0x00000002, 9208 }, /* MOVE */ -{ op_23f9_0_comp_ff, 0x00000002, 9209 }, /* MOVE */ -{ op_23fa_0_comp_ff, 0x00000002, 9210 }, /* MOVE */ -{ op_23fb_0_comp_ff, 0x00000002, 9211 }, /* MOVE */ -{ op_23fc_0_comp_ff, 0x00000002, 9212 }, /* MOVE */ -{ op_3000_0_comp_ff, 0x00000000, 12288 }, /* MOVE */ -{ op_3008_0_comp_ff, 0x00000000, 12296 }, /* MOVE */ -{ op_3010_0_comp_ff, 0x00000000, 12304 }, /* MOVE */ -{ op_3018_0_comp_ff, 0x00000000, 12312 }, /* MOVE */ -{ op_3020_0_comp_ff, 0x00000000, 12320 }, /* MOVE */ -{ op_3028_0_comp_ff, 0x00000002, 12328 }, /* MOVE */ -{ op_3030_0_comp_ff, 0x00000002, 12336 }, /* MOVE */ -{ op_3038_0_comp_ff, 0x00000002, 12344 }, /* MOVE */ -{ op_3039_0_comp_ff, 0x00000002, 12345 }, /* MOVE */ -{ op_303a_0_comp_ff, 0x00000002, 12346 }, /* MOVE */ -{ op_303b_0_comp_ff, 0x00000002, 12347 }, /* MOVE */ -{ op_303c_0_comp_ff, 0x00000002, 12348 }, /* MOVE */ -{ op_3040_0_comp_ff, 0x00000000, 12352 }, /* MOVEA */ -{ op_3048_0_comp_ff, 0x00000000, 12360 }, /* MOVEA */ -{ op_3050_0_comp_ff, 0x00000000, 12368 }, /* MOVEA */ -{ op_3058_0_comp_ff, 0x00000000, 12376 }, /* MOVEA */ -{ op_3060_0_comp_ff, 0x00000000, 12384 }, /* MOVEA */ -{ op_3068_0_comp_ff, 0x00000002, 12392 }, /* MOVEA */ -{ op_3070_0_comp_ff, 0x00000002, 12400 }, /* MOVEA */ -{ op_3078_0_comp_ff, 0x00000002, 12408 }, /* MOVEA */ -{ op_3079_0_comp_ff, 0x00000002, 12409 }, /* MOVEA */ -{ op_307a_0_comp_ff, 0x00000002, 12410 }, /* MOVEA */ -{ op_307b_0_comp_ff, 0x00000002, 12411 }, /* MOVEA */ -{ op_307c_0_comp_ff, 0x00000002, 12412 }, /* MOVEA */ -{ op_3080_0_comp_ff, 0x00000000, 12416 }, /* MOVE */ -{ op_3088_0_comp_ff, 0x00000000, 12424 }, /* MOVE */ -{ op_3090_0_comp_ff, 0x00000000, 12432 }, /* MOVE */ -{ op_3098_0_comp_ff, 0x00000000, 12440 }, /* MOVE */ -{ op_30a0_0_comp_ff, 0x00000000, 12448 }, /* MOVE */ -{ op_30a8_0_comp_ff, 0x00000002, 12456 }, /* MOVE */ -{ op_30b0_0_comp_ff, 0x00000002, 12464 }, /* MOVE */ -{ op_30b8_0_comp_ff, 0x00000002, 12472 }, /* MOVE */ -{ op_30b9_0_comp_ff, 0x00000002, 12473 }, /* MOVE */ -{ op_30ba_0_comp_ff, 0x00000002, 12474 }, /* MOVE */ -{ op_30bb_0_comp_ff, 0x00000002, 12475 }, /* MOVE */ -{ op_30bc_0_comp_ff, 0x00000002, 12476 }, /* MOVE */ -{ op_30c0_0_comp_ff, 0x00000000, 12480 }, /* MOVE */ -{ op_30c8_0_comp_ff, 0x00000000, 12488 }, /* MOVE */ -{ op_30d0_0_comp_ff, 0x00000000, 12496 }, /* MOVE */ -{ op_30d8_0_comp_ff, 0x00000000, 12504 }, /* MOVE */ -{ op_30e0_0_comp_ff, 0x00000000, 12512 }, /* MOVE */ -{ op_30e8_0_comp_ff, 0x00000002, 12520 }, /* MOVE */ -{ op_30f0_0_comp_ff, 0x00000002, 12528 }, /* MOVE */ -{ op_30f8_0_comp_ff, 0x00000002, 12536 }, /* MOVE */ -{ op_30f9_0_comp_ff, 0x00000002, 12537 }, /* MOVE */ -{ op_30fa_0_comp_ff, 0x00000002, 12538 }, /* MOVE */ -{ op_30fb_0_comp_ff, 0x00000002, 12539 }, /* MOVE */ -{ op_30fc_0_comp_ff, 0x00000002, 12540 }, /* MOVE */ -{ op_3100_0_comp_ff, 0x00000000, 12544 }, /* MOVE */ -{ op_3108_0_comp_ff, 0x00000000, 12552 }, /* MOVE */ -{ op_3110_0_comp_ff, 0x00000000, 12560 }, /* MOVE */ -{ op_3118_0_comp_ff, 0x00000000, 12568 }, /* MOVE */ -{ op_3120_0_comp_ff, 0x00000000, 12576 }, /* MOVE */ -{ op_3128_0_comp_ff, 0x00000002, 12584 }, /* MOVE */ -{ op_3130_0_comp_ff, 0x00000002, 12592 }, /* MOVE */ -{ op_3138_0_comp_ff, 0x00000002, 12600 }, /* MOVE */ -{ op_3139_0_comp_ff, 0x00000002, 12601 }, /* MOVE */ -{ op_313a_0_comp_ff, 0x00000002, 12602 }, /* MOVE */ -{ op_313b_0_comp_ff, 0x00000002, 12603 }, /* MOVE */ -{ op_313c_0_comp_ff, 0x00000002, 12604 }, /* MOVE */ -{ op_3140_0_comp_ff, 0x00000002, 12608 }, /* MOVE */ -{ op_3148_0_comp_ff, 0x00000002, 12616 }, /* MOVE */ -{ op_3150_0_comp_ff, 0x00000002, 12624 }, /* MOVE */ -{ op_3158_0_comp_ff, 0x00000002, 12632 }, /* MOVE */ -{ op_3160_0_comp_ff, 0x00000002, 12640 }, /* MOVE */ -{ op_3168_0_comp_ff, 0x00000002, 12648 }, /* MOVE */ -{ op_3170_0_comp_ff, 0x00000002, 12656 }, /* MOVE */ -{ op_3178_0_comp_ff, 0x00000002, 12664 }, /* MOVE */ -{ op_3179_0_comp_ff, 0x00000002, 12665 }, /* MOVE */ -{ op_317a_0_comp_ff, 0x00000002, 12666 }, /* MOVE */ -{ op_317b_0_comp_ff, 0x00000002, 12667 }, /* MOVE */ -{ op_317c_0_comp_ff, 0x00000002, 12668 }, /* MOVE */ -{ op_3180_0_comp_ff, 0x00000002, 12672 }, /* MOVE */ -{ op_3188_0_comp_ff, 0x00000002, 12680 }, /* MOVE */ -{ op_3190_0_comp_ff, 0x00000002, 12688 }, /* MOVE */ -{ op_3198_0_comp_ff, 0x00000002, 12696 }, /* MOVE */ -{ op_31a0_0_comp_ff, 0x00000002, 12704 }, /* MOVE */ -{ op_31a8_0_comp_ff, 0x00000002, 12712 }, /* MOVE */ -{ op_31b0_0_comp_ff, 0x00000002, 12720 }, /* MOVE */ -{ op_31b8_0_comp_ff, 0x00000002, 12728 }, /* MOVE */ -{ op_31b9_0_comp_ff, 0x00000002, 12729 }, /* MOVE */ -{ op_31ba_0_comp_ff, 0x00000002, 12730 }, /* MOVE */ -{ op_31bb_0_comp_ff, 0x00000002, 12731 }, /* MOVE */ -{ op_31bc_0_comp_ff, 0x00000002, 12732 }, /* MOVE */ -{ op_31c0_0_comp_ff, 0x00000002, 12736 }, /* MOVE */ -{ op_31c8_0_comp_ff, 0x00000002, 12744 }, /* MOVE */ -{ op_31d0_0_comp_ff, 0x00000002, 12752 }, /* MOVE */ -{ op_31d8_0_comp_ff, 0x00000002, 12760 }, /* MOVE */ -{ op_31e0_0_comp_ff, 0x00000002, 12768 }, /* MOVE */ -{ op_31e8_0_comp_ff, 0x00000002, 12776 }, /* MOVE */ -{ op_31f0_0_comp_ff, 0x00000002, 12784 }, /* MOVE */ -{ op_31f8_0_comp_ff, 0x00000002, 12792 }, /* MOVE */ -{ op_31f9_0_comp_ff, 0x00000002, 12793 }, /* MOVE */ -{ op_31fa_0_comp_ff, 0x00000002, 12794 }, /* MOVE */ -{ op_31fb_0_comp_ff, 0x00000002, 12795 }, /* MOVE */ -{ op_31fc_0_comp_ff, 0x00000002, 12796 }, /* MOVE */ -{ op_33c0_0_comp_ff, 0x00000002, 13248 }, /* MOVE */ -{ op_33c8_0_comp_ff, 0x00000002, 13256 }, /* MOVE */ -{ op_33d0_0_comp_ff, 0x00000002, 13264 }, /* MOVE */ -{ op_33d8_0_comp_ff, 0x00000002, 13272 }, /* MOVE */ -{ op_33e0_0_comp_ff, 0x00000002, 13280 }, /* MOVE */ -{ op_33e8_0_comp_ff, 0x00000002, 13288 }, /* MOVE */ -{ op_33f0_0_comp_ff, 0x00000002, 13296 }, /* MOVE */ -{ op_33f8_0_comp_ff, 0x00000002, 13304 }, /* MOVE */ -{ op_33f9_0_comp_ff, 0x00000002, 13305 }, /* MOVE */ -{ op_33fa_0_comp_ff, 0x00000002, 13306 }, /* MOVE */ -{ op_33fb_0_comp_ff, 0x00000002, 13307 }, /* MOVE */ -{ op_33fc_0_comp_ff, 0x00000002, 13308 }, /* MOVE */ -{ op_4000_0_comp_ff, 0x00000008, 16384 }, /* NEGX */ -{ op_4010_0_comp_ff, 0x00000008, 16400 }, /* NEGX */ -{ op_4018_0_comp_ff, 0x00000008, 16408 }, /* NEGX */ -{ op_4020_0_comp_ff, 0x00000008, 16416 }, /* NEGX */ -{ op_4028_0_comp_ff, 0x0000000a, 16424 }, /* NEGX */ -{ op_4030_0_comp_ff, 0x0000000a, 16432 }, /* NEGX */ -{ op_4038_0_comp_ff, 0x0000000a, 16440 }, /* NEGX */ -{ op_4039_0_comp_ff, 0x0000000a, 16441 }, /* NEGX */ -{ op_4040_0_comp_ff, 0x00000008, 16448 }, /* NEGX */ -{ op_4050_0_comp_ff, 0x00000008, 16464 }, /* NEGX */ -{ op_4058_0_comp_ff, 0x00000008, 16472 }, /* NEGX */ -{ op_4060_0_comp_ff, 0x00000008, 16480 }, /* NEGX */ -{ op_4068_0_comp_ff, 0x0000000a, 16488 }, /* NEGX */ -{ op_4070_0_comp_ff, 0x0000000a, 16496 }, /* NEGX */ -{ op_4078_0_comp_ff, 0x0000000a, 16504 }, /* NEGX */ -{ op_4079_0_comp_ff, 0x0000000a, 16505 }, /* NEGX */ -{ op_4080_0_comp_ff, 0x00000008, 16512 }, /* NEGX */ -{ op_4090_0_comp_ff, 0x00000008, 16528 }, /* NEGX */ -{ op_4098_0_comp_ff, 0x00000008, 16536 }, /* NEGX */ -{ op_40a0_0_comp_ff, 0x00000008, 16544 }, /* NEGX */ -{ op_40a8_0_comp_ff, 0x0000000a, 16552 }, /* NEGX */ -{ op_40b0_0_comp_ff, 0x0000000a, 16560 }, /* NEGX */ -{ op_40b8_0_comp_ff, 0x0000000a, 16568 }, /* NEGX */ -{ op_40b9_0_comp_ff, 0x0000000a, 16569 }, /* NEGX */ -{ NULL, 0x00000001, 16576 }, /* MVSR2 */ -{ NULL, 0x00000001, 16592 }, /* MVSR2 */ -{ NULL, 0x00000001, 16600 }, /* MVSR2 */ -{ NULL, 0x00000001, 16608 }, /* MVSR2 */ -{ NULL, 0x00000001, 16616 }, /* MVSR2 */ -{ NULL, 0x00000001, 16624 }, /* MVSR2 */ -{ NULL, 0x00000001, 16632 }, /* MVSR2 */ -{ NULL, 0x00000001, 16633 }, /* MVSR2 */ -{ NULL, 0x00000001, 16640 }, /* CHK */ -{ NULL, 0x00000001, 16656 }, /* CHK */ -{ NULL, 0x00000001, 16664 }, /* CHK */ -{ NULL, 0x00000001, 16672 }, /* CHK */ -{ NULL, 0x00000001, 16680 }, /* CHK */ -{ NULL, 0x00000001, 16688 }, /* CHK */ -{ NULL, 0x00000001, 16696 }, /* CHK */ -{ NULL, 0x00000001, 16697 }, /* CHK */ -{ NULL, 0x00000001, 16698 }, /* CHK */ -{ NULL, 0x00000001, 16699 }, /* CHK */ -{ NULL, 0x00000001, 16700 }, /* CHK */ -{ NULL, 0x00000001, 16768 }, /* CHK */ -{ NULL, 0x00000001, 16784 }, /* CHK */ -{ NULL, 0x00000001, 16792 }, /* CHK */ -{ NULL, 0x00000001, 16800 }, /* CHK */ -{ NULL, 0x00000001, 16808 }, /* CHK */ -{ NULL, 0x00000001, 16816 }, /* CHK */ -{ NULL, 0x00000001, 16824 }, /* CHK */ -{ NULL, 0x00000001, 16825 }, /* CHK */ -{ NULL, 0x00000001, 16826 }, /* CHK */ -{ NULL, 0x00000001, 16827 }, /* CHK */ -{ NULL, 0x00000001, 16828 }, /* CHK */ -{ op_41d0_0_comp_ff, 0x00000000, 16848 }, /* LEA */ -{ op_41e8_0_comp_ff, 0x00000002, 16872 }, /* LEA */ -{ op_41f0_0_comp_ff, 0x00000002, 16880 }, /* LEA */ -{ op_41f8_0_comp_ff, 0x00000002, 16888 }, /* LEA */ -{ op_41f9_0_comp_ff, 0x00000002, 16889 }, /* LEA */ -{ op_41fa_0_comp_ff, 0x00000002, 16890 }, /* LEA */ -{ op_41fb_0_comp_ff, 0x00000002, 16891 }, /* LEA */ -{ op_4200_0_comp_ff, 0x00000000, 16896 }, /* CLR */ -{ op_4210_0_comp_ff, 0x00000000, 16912 }, /* CLR */ -{ op_4218_0_comp_ff, 0x00000000, 16920 }, /* CLR */ -{ op_4220_0_comp_ff, 0x00000000, 16928 }, /* CLR */ -{ op_4228_0_comp_ff, 0x00000002, 16936 }, /* CLR */ -{ op_4230_0_comp_ff, 0x00000002, 16944 }, /* CLR */ -{ op_4238_0_comp_ff, 0x00000002, 16952 }, /* CLR */ -{ op_4239_0_comp_ff, 0x00000002, 16953 }, /* CLR */ -{ op_4240_0_comp_ff, 0x00000000, 16960 }, /* CLR */ -{ op_4250_0_comp_ff, 0x00000000, 16976 }, /* CLR */ -{ op_4258_0_comp_ff, 0x00000000, 16984 }, /* CLR */ -{ op_4260_0_comp_ff, 0x00000000, 16992 }, /* CLR */ -{ op_4268_0_comp_ff, 0x00000002, 17000 }, /* CLR */ -{ op_4270_0_comp_ff, 0x00000002, 17008 }, /* CLR */ -{ op_4278_0_comp_ff, 0x00000002, 17016 }, /* CLR */ -{ op_4279_0_comp_ff, 0x00000002, 17017 }, /* CLR */ -{ op_4280_0_comp_ff, 0x00000000, 17024 }, /* CLR */ -{ op_4290_0_comp_ff, 0x00000000, 17040 }, /* CLR */ -{ op_4298_0_comp_ff, 0x00000000, 17048 }, /* CLR */ -{ op_42a0_0_comp_ff, 0x00000000, 17056 }, /* CLR */ -{ op_42a8_0_comp_ff, 0x00000002, 17064 }, /* CLR */ -{ op_42b0_0_comp_ff, 0x00000002, 17072 }, /* CLR */ -{ op_42b8_0_comp_ff, 0x00000002, 17080 }, /* CLR */ -{ op_42b9_0_comp_ff, 0x00000002, 17081 }, /* CLR */ -{ NULL, 0x00000001, 17088 }, /* MVSR2 */ -{ NULL, 0x00000001, 17104 }, /* MVSR2 */ -{ NULL, 0x00000001, 17112 }, /* MVSR2 */ -{ NULL, 0x00000001, 17120 }, /* MVSR2 */ -{ NULL, 0x00000001, 17128 }, /* MVSR2 */ -{ NULL, 0x00000001, 17136 }, /* MVSR2 */ -{ NULL, 0x00000001, 17144 }, /* MVSR2 */ -{ NULL, 0x00000001, 17145 }, /* MVSR2 */ -{ op_4400_0_comp_ff, 0x00000000, 17408 }, /* NEG */ -{ op_4410_0_comp_ff, 0x00000000, 17424 }, /* NEG */ -{ op_4418_0_comp_ff, 0x00000000, 17432 }, /* NEG */ -{ op_4420_0_comp_ff, 0x00000000, 17440 }, /* NEG */ -{ op_4428_0_comp_ff, 0x00000002, 17448 }, /* NEG */ -{ op_4430_0_comp_ff, 0x00000002, 17456 }, /* NEG */ -{ op_4438_0_comp_ff, 0x00000002, 17464 }, /* NEG */ -{ op_4439_0_comp_ff, 0x00000002, 17465 }, /* NEG */ -{ op_4440_0_comp_ff, 0x00000000, 17472 }, /* NEG */ -{ op_4450_0_comp_ff, 0x00000000, 17488 }, /* NEG */ -{ op_4458_0_comp_ff, 0x00000000, 17496 }, /* NEG */ -{ op_4460_0_comp_ff, 0x00000000, 17504 }, /* NEG */ -{ op_4468_0_comp_ff, 0x00000002, 17512 }, /* NEG */ -{ op_4470_0_comp_ff, 0x00000002, 17520 }, /* NEG */ -{ op_4478_0_comp_ff, 0x00000002, 17528 }, /* NEG */ -{ op_4479_0_comp_ff, 0x00000002, 17529 }, /* NEG */ -{ op_4480_0_comp_ff, 0x00000000, 17536 }, /* NEG */ -{ op_4490_0_comp_ff, 0x00000000, 17552 }, /* NEG */ -{ op_4498_0_comp_ff, 0x00000000, 17560 }, /* NEG */ -{ op_44a0_0_comp_ff, 0x00000000, 17568 }, /* NEG */ -{ op_44a8_0_comp_ff, 0x00000002, 17576 }, /* NEG */ -{ op_44b0_0_comp_ff, 0x00000002, 17584 }, /* NEG */ -{ op_44b8_0_comp_ff, 0x00000002, 17592 }, /* NEG */ -{ op_44b9_0_comp_ff, 0x00000002, 17593 }, /* NEG */ -{ NULL, 0x00000001, 17600 }, /* MV2SR */ -{ NULL, 0x00000001, 17616 }, /* MV2SR */ -{ NULL, 0x00000001, 17624 }, /* MV2SR */ -{ NULL, 0x00000001, 17632 }, /* MV2SR */ -{ NULL, 0x00000001, 17640 }, /* MV2SR */ -{ NULL, 0x00000001, 17648 }, /* MV2SR */ -{ NULL, 0x00000001, 17656 }, /* MV2SR */ -{ NULL, 0x00000001, 17657 }, /* MV2SR */ -{ NULL, 0x00000001, 17658 }, /* MV2SR */ -{ NULL, 0x00000001, 17659 }, /* MV2SR */ -{ NULL, 0x00000001, 17660 }, /* MV2SR */ -{ op_4600_0_comp_ff, 0x00000000, 17920 }, /* NOT */ -{ op_4610_0_comp_ff, 0x00000000, 17936 }, /* NOT */ -{ op_4618_0_comp_ff, 0x00000000, 17944 }, /* NOT */ -{ op_4620_0_comp_ff, 0x00000000, 17952 }, /* NOT */ -{ op_4628_0_comp_ff, 0x00000002, 17960 }, /* NOT */ -{ op_4630_0_comp_ff, 0x00000002, 17968 }, /* NOT */ -{ op_4638_0_comp_ff, 0x00000002, 17976 }, /* NOT */ -{ op_4639_0_comp_ff, 0x00000002, 17977 }, /* NOT */ -{ op_4640_0_comp_ff, 0x00000000, 17984 }, /* NOT */ -{ op_4650_0_comp_ff, 0x00000000, 18000 }, /* NOT */ -{ op_4658_0_comp_ff, 0x00000000, 18008 }, /* NOT */ -{ op_4660_0_comp_ff, 0x00000000, 18016 }, /* NOT */ -{ op_4668_0_comp_ff, 0x00000002, 18024 }, /* NOT */ -{ op_4670_0_comp_ff, 0x00000002, 18032 }, /* NOT */ -{ op_4678_0_comp_ff, 0x00000002, 18040 }, /* NOT */ -{ op_4679_0_comp_ff, 0x00000002, 18041 }, /* NOT */ -{ op_4680_0_comp_ff, 0x00000000, 18048 }, /* NOT */ -{ op_4690_0_comp_ff, 0x00000000, 18064 }, /* NOT */ -{ op_4698_0_comp_ff, 0x00000000, 18072 }, /* NOT */ -{ op_46a0_0_comp_ff, 0x00000000, 18080 }, /* NOT */ -{ op_46a8_0_comp_ff, 0x00000002, 18088 }, /* NOT */ -{ op_46b0_0_comp_ff, 0x00000002, 18096 }, /* NOT */ -{ op_46b8_0_comp_ff, 0x00000002, 18104 }, /* NOT */ -{ op_46b9_0_comp_ff, 0x00000002, 18105 }, /* NOT */ -{ NULL, 0x00000001, 18112 }, /* MV2SR */ -{ NULL, 0x00000001, 18128 }, /* MV2SR */ -{ NULL, 0x00000001, 18136 }, /* MV2SR */ -{ NULL, 0x00000001, 18144 }, /* MV2SR */ -{ NULL, 0x00000001, 18152 }, /* MV2SR */ -{ NULL, 0x00000001, 18160 }, /* MV2SR */ -{ NULL, 0x00000001, 18168 }, /* MV2SR */ -{ NULL, 0x00000001, 18169 }, /* MV2SR */ -{ NULL, 0x00000001, 18170 }, /* MV2SR */ -{ NULL, 0x00000001, 18171 }, /* MV2SR */ -{ NULL, 0x00000001, 18172 }, /* MV2SR */ -{ NULL, 0x00000000, 18432 }, /* NBCD */ -{ op_4808_0_comp_ff, 0x00000002, 18440 }, /* LINK */ -{ NULL, 0x00000000, 18448 }, /* NBCD */ -{ NULL, 0x00000000, 18456 }, /* NBCD */ -{ NULL, 0x00000000, 18464 }, /* NBCD */ -{ NULL, 0x00000000, 18472 }, /* NBCD */ -{ NULL, 0x00000000, 18480 }, /* NBCD */ -{ NULL, 0x00000000, 18488 }, /* NBCD */ -{ NULL, 0x00000000, 18489 }, /* NBCD */ -{ op_4840_0_comp_ff, 0x00000000, 18496 }, /* SWAP */ -{ NULL, 0x00000001, 18504 }, /* BKPT */ -{ op_4850_0_comp_ff, 0x00000000, 18512 }, /* PEA */ -{ op_4868_0_comp_ff, 0x00000002, 18536 }, /* PEA */ -{ op_4870_0_comp_ff, 0x00000002, 18544 }, /* PEA */ -{ op_4878_0_comp_ff, 0x00000002, 18552 }, /* PEA */ -{ op_4879_0_comp_ff, 0x00000002, 18553 }, /* PEA */ -{ op_487a_0_comp_ff, 0x00000002, 18554 }, /* PEA */ -{ op_487b_0_comp_ff, 0x00000002, 18555 }, /* PEA */ -{ op_4880_0_comp_ff, 0x00000000, 18560 }, /* EXT */ -{ op_4890_0_comp_ff, 0x00000002, 18576 }, /* MVMLE */ -{ op_48a0_0_comp_ff, 0x00000002, 18592 }, /* MVMLE */ -{ op_48a8_0_comp_ff, 0x00000002, 18600 }, /* MVMLE */ -{ op_48b0_0_comp_ff, 0x00000002, 18608 }, /* MVMLE */ -{ op_48b8_0_comp_ff, 0x00000002, 18616 }, /* MVMLE */ -{ op_48b9_0_comp_ff, 0x00000002, 18617 }, /* MVMLE */ -{ op_48c0_0_comp_ff, 0x00000000, 18624 }, /* EXT */ -{ op_48d0_0_comp_ff, 0x00000002, 18640 }, /* MVMLE */ -{ op_48e0_0_comp_ff, 0x00000002, 18656 }, /* MVMLE */ -{ op_48e8_0_comp_ff, 0x00000002, 18664 }, /* MVMLE */ -{ op_48f0_0_comp_ff, 0x00000002, 18672 }, /* MVMLE */ -{ op_48f8_0_comp_ff, 0x00000002, 18680 }, /* MVMLE */ -{ op_48f9_0_comp_ff, 0x00000002, 18681 }, /* MVMLE */ -{ op_49c0_0_comp_ff, 0x00000000, 18880 }, /* EXT */ -{ op_4a00_0_comp_ff, 0x00000000, 18944 }, /* TST */ -{ op_4a10_0_comp_ff, 0x00000000, 18960 }, /* TST */ -{ op_4a18_0_comp_ff, 0x00000000, 18968 }, /* TST */ -{ op_4a20_0_comp_ff, 0x00000000, 18976 }, /* TST */ -{ op_4a28_0_comp_ff, 0x00000002, 18984 }, /* TST */ -{ op_4a30_0_comp_ff, 0x00000002, 18992 }, /* TST */ -{ op_4a38_0_comp_ff, 0x00000002, 19000 }, /* TST */ -{ op_4a39_0_comp_ff, 0x00000002, 19001 }, /* TST */ -{ op_4a3a_0_comp_ff, 0x00000002, 19002 }, /* TST */ -{ op_4a3b_0_comp_ff, 0x00000002, 19003 }, /* TST */ -{ op_4a3c_0_comp_ff, 0x00000002, 19004 }, /* TST */ -{ op_4a40_0_comp_ff, 0x00000000, 19008 }, /* TST */ -{ op_4a48_0_comp_ff, 0x00000000, 19016 }, /* TST */ -{ op_4a50_0_comp_ff, 0x00000000, 19024 }, /* TST */ -{ op_4a58_0_comp_ff, 0x00000000, 19032 }, /* TST */ -{ op_4a60_0_comp_ff, 0x00000000, 19040 }, /* TST */ -{ op_4a68_0_comp_ff, 0x00000002, 19048 }, /* TST */ -{ op_4a70_0_comp_ff, 0x00000002, 19056 }, /* TST */ -{ op_4a78_0_comp_ff, 0x00000002, 19064 }, /* TST */ -{ op_4a79_0_comp_ff, 0x00000002, 19065 }, /* TST */ -{ op_4a7a_0_comp_ff, 0x00000002, 19066 }, /* TST */ -{ op_4a7b_0_comp_ff, 0x00000002, 19067 }, /* TST */ -{ op_4a7c_0_comp_ff, 0x00000002, 19068 }, /* TST */ -{ op_4a80_0_comp_ff, 0x00000000, 19072 }, /* TST */ -{ op_4a88_0_comp_ff, 0x00000000, 19080 }, /* TST */ -{ op_4a90_0_comp_ff, 0x00000000, 19088 }, /* TST */ -{ op_4a98_0_comp_ff, 0x00000000, 19096 }, /* TST */ -{ op_4aa0_0_comp_ff, 0x00000000, 19104 }, /* TST */ -{ op_4aa8_0_comp_ff, 0x00000002, 19112 }, /* TST */ -{ op_4ab0_0_comp_ff, 0x00000002, 19120 }, /* TST */ -{ op_4ab8_0_comp_ff, 0x00000002, 19128 }, /* TST */ -{ op_4ab9_0_comp_ff, 0x00000002, 19129 }, /* TST */ -{ op_4aba_0_comp_ff, 0x00000002, 19130 }, /* TST */ -{ op_4abb_0_comp_ff, 0x00000002, 19131 }, /* TST */ -{ op_4abc_0_comp_ff, 0x00000002, 19132 }, /* TST */ -{ NULL, 0x00000000, 19136 }, /* TAS */ -{ NULL, 0x00000000, 19152 }, /* TAS */ -{ NULL, 0x00000000, 19160 }, /* TAS */ -{ NULL, 0x00000000, 19168 }, /* TAS */ -{ NULL, 0x00000000, 19176 }, /* TAS */ -{ NULL, 0x00000000, 19184 }, /* TAS */ -{ NULL, 0x00000000, 19192 }, /* TAS */ -{ NULL, 0x00000000, 19193 }, /* TAS */ -{ op_4c00_0_comp_ff, 0x00000002, 19456 }, /* MULL */ -{ op_4c10_0_comp_ff, 0x00000002, 19472 }, /* MULL */ -{ op_4c18_0_comp_ff, 0x00000002, 19480 }, /* MULL */ -{ op_4c20_0_comp_ff, 0x00000002, 19488 }, /* MULL */ -{ op_4c28_0_comp_ff, 0x00000002, 19496 }, /* MULL */ -{ op_4c30_0_comp_ff, 0x00000002, 19504 }, /* MULL */ -{ op_4c38_0_comp_ff, 0x00000002, 19512 }, /* MULL */ -{ op_4c39_0_comp_ff, 0x00000002, 19513 }, /* MULL */ -{ op_4c3a_0_comp_ff, 0x00000002, 19514 }, /* MULL */ -{ op_4c3b_0_comp_ff, 0x00000002, 19515 }, /* MULL */ -{ op_4c3c_0_comp_ff, 0x00000002, 19516 }, /* MULL */ -{ NULL, 0x00000001, 19520 }, /* DIVL */ -{ NULL, 0x00000001, 19536 }, /* DIVL */ -{ NULL, 0x00000001, 19544 }, /* DIVL */ -{ NULL, 0x00000001, 19552 }, /* DIVL */ -{ NULL, 0x00000001, 19560 }, /* DIVL */ -{ NULL, 0x00000001, 19568 }, /* DIVL */ -{ NULL, 0x00000001, 19576 }, /* DIVL */ -{ NULL, 0x00000001, 19577 }, /* DIVL */ -{ NULL, 0x00000001, 19578 }, /* DIVL */ -{ NULL, 0x00000001, 19579 }, /* DIVL */ -{ NULL, 0x00000001, 19580 }, /* DIVL */ -{ op_4c90_0_comp_ff, 0x00000002, 19600 }, /* MVMEL */ -{ op_4c98_0_comp_ff, 0x00000002, 19608 }, /* MVMEL */ -{ op_4ca8_0_comp_ff, 0x00000002, 19624 }, /* MVMEL */ -{ op_4cb0_0_comp_ff, 0x00000002, 19632 }, /* MVMEL */ -{ op_4cb8_0_comp_ff, 0x00000002, 19640 }, /* MVMEL */ -{ op_4cb9_0_comp_ff, 0x00000002, 19641 }, /* MVMEL */ -{ op_4cba_0_comp_ff, 0x00000002, 19642 }, /* MVMEL */ -{ op_4cbb_0_comp_ff, 0x00000002, 19643 }, /* MVMEL */ -{ op_4cd0_0_comp_ff, 0x00000002, 19664 }, /* MVMEL */ -{ op_4cd8_0_comp_ff, 0x00000002, 19672 }, /* MVMEL */ -{ op_4ce8_0_comp_ff, 0x00000002, 19688 }, /* MVMEL */ -{ op_4cf0_0_comp_ff, 0x00000002, 19696 }, /* MVMEL */ -{ op_4cf8_0_comp_ff, 0x00000002, 19704 }, /* MVMEL */ -{ op_4cf9_0_comp_ff, 0x00000002, 19705 }, /* MVMEL */ -{ op_4cfa_0_comp_ff, 0x00000002, 19706 }, /* MVMEL */ -{ op_4cfb_0_comp_ff, 0x00000002, 19707 }, /* MVMEL */ -{ NULL, 0x00000001, 20032 }, /* TRAP */ -{ op_4e50_0_comp_ff, 0x00000002, 20048 }, /* LINK */ -{ op_4e58_0_comp_ff, 0x00000000, 20056 }, /* UNLK */ -{ NULL, 0x00000001, 20064 }, /* MVR2USP */ -{ NULL, 0x00000001, 20072 }, /* MVUSP2R */ -{ NULL, 0x00000001, 20080 }, /* RESET */ -{ op_4e71_0_comp_ff, 0x00000000, 20081 }, /* NOP */ -{ NULL, 0x00000001, 20082 }, /* STOP */ -{ NULL, 0x00000001, 20083 }, /* RTE */ -{ op_4e74_0_comp_ff, 0x00000003, 20084 }, /* RTD */ -{ op_4e75_0_comp_ff, 0x00000001, 20085 }, /* RTS */ -{ NULL, 0x00000001, 20086 }, /* TRAPV */ -{ NULL, 0x00000001, 20087 }, /* RTR */ -{ NULL, 0x00000001, 20090 }, /* MOVEC2 */ -{ NULL, 0x00000001, 20091 }, /* MOVE2C */ -{ op_4e90_0_comp_ff, 0x00000001, 20112 }, /* JSR */ -{ op_4ea8_0_comp_ff, 0x00000003, 20136 }, /* JSR */ -{ op_4eb0_0_comp_ff, 0x00000003, 20144 }, /* JSR */ -{ op_4eb8_0_comp_ff, 0x00000003, 20152 }, /* JSR */ -{ op_4eb9_0_comp_ff, 0x00000003, 20153 }, /* JSR */ -{ op_4eba_0_comp_ff, 0x00000003, 20154 }, /* JSR */ -{ op_4ebb_0_comp_ff, 0x00000003, 20155 }, /* JSR */ -{ op_4ed0_0_comp_ff, 0x00000001, 20176 }, /* JMP */ -{ op_4ee8_0_comp_ff, 0x00000003, 20200 }, /* JMP */ -{ op_4ef0_0_comp_ff, 0x00000003, 20208 }, /* JMP */ -{ op_4ef8_0_comp_ff, 0x00000003, 20216 }, /* JMP */ -{ op_4ef9_0_comp_ff, 0x00000003, 20217 }, /* JMP */ -{ op_4efa_0_comp_ff, 0x00000003, 20218 }, /* JMP */ -{ op_4efb_0_comp_ff, 0x00000003, 20219 }, /* JMP */ -{ op_5000_0_comp_ff, 0x00000000, 20480 }, /* ADD */ -{ op_5010_0_comp_ff, 0x00000000, 20496 }, /* ADD */ -{ op_5018_0_comp_ff, 0x00000000, 20504 }, /* ADD */ -{ op_5020_0_comp_ff, 0x00000000, 20512 }, /* ADD */ -{ op_5028_0_comp_ff, 0x00000002, 20520 }, /* ADD */ -{ op_5030_0_comp_ff, 0x00000002, 20528 }, /* ADD */ -{ op_5038_0_comp_ff, 0x00000002, 20536 }, /* ADD */ -{ op_5039_0_comp_ff, 0x00000002, 20537 }, /* ADD */ -{ op_5040_0_comp_ff, 0x00000000, 20544 }, /* ADD */ -{ op_5048_0_comp_ff, 0x00000000, 20552 }, /* ADDA */ -{ op_5050_0_comp_ff, 0x00000000, 20560 }, /* ADD */ -{ op_5058_0_comp_ff, 0x00000000, 20568 }, /* ADD */ -{ op_5060_0_comp_ff, 0x00000000, 20576 }, /* ADD */ -{ op_5068_0_comp_ff, 0x00000002, 20584 }, /* ADD */ -{ op_5070_0_comp_ff, 0x00000002, 20592 }, /* ADD */ -{ op_5078_0_comp_ff, 0x00000002, 20600 }, /* ADD */ -{ op_5079_0_comp_ff, 0x00000002, 20601 }, /* ADD */ -{ op_5080_0_comp_ff, 0x00000000, 20608 }, /* ADD */ -{ op_5088_0_comp_ff, 0x00000000, 20616 }, /* ADDA */ -{ op_5090_0_comp_ff, 0x00000000, 20624 }, /* ADD */ -{ op_5098_0_comp_ff, 0x00000000, 20632 }, /* ADD */ -{ op_50a0_0_comp_ff, 0x00000000, 20640 }, /* ADD */ -{ op_50a8_0_comp_ff, 0x00000002, 20648 }, /* ADD */ -{ op_50b0_0_comp_ff, 0x00000002, 20656 }, /* ADD */ -{ op_50b8_0_comp_ff, 0x00000002, 20664 }, /* ADD */ -{ op_50b9_0_comp_ff, 0x00000002, 20665 }, /* ADD */ -{ op_50c0_0_comp_ff, 0x00000000, 20672 }, /* Scc */ -{ op_50c8_0_comp_ff, 0x00000003, 20680 }, /* DBcc */ -{ op_50d0_0_comp_ff, 0x00000000, 20688 }, /* Scc */ -{ op_50d8_0_comp_ff, 0x00000000, 20696 }, /* Scc */ -{ op_50e0_0_comp_ff, 0x00000000, 20704 }, /* Scc */ -{ op_50e8_0_comp_ff, 0x00000002, 20712 }, /* Scc */ -{ op_50f0_0_comp_ff, 0x00000002, 20720 }, /* Scc */ -{ op_50f8_0_comp_ff, 0x00000002, 20728 }, /* Scc */ -{ op_50f9_0_comp_ff, 0x00000002, 20729 }, /* Scc */ -{ NULL, 0x00000001, 20730 }, /* TRAPcc */ -{ NULL, 0x00000001, 20731 }, /* TRAPcc */ -{ NULL, 0x00000001, 20732 }, /* TRAPcc */ -{ op_5100_0_comp_ff, 0x00000000, 20736 }, /* SUB */ -{ op_5110_0_comp_ff, 0x00000000, 20752 }, /* SUB */ -{ op_5118_0_comp_ff, 0x00000000, 20760 }, /* SUB */ -{ op_5120_0_comp_ff, 0x00000000, 20768 }, /* SUB */ -{ op_5128_0_comp_ff, 0x00000002, 20776 }, /* SUB */ -{ op_5130_0_comp_ff, 0x00000002, 20784 }, /* SUB */ -{ op_5138_0_comp_ff, 0x00000002, 20792 }, /* SUB */ -{ op_5139_0_comp_ff, 0x00000002, 20793 }, /* SUB */ -{ op_5140_0_comp_ff, 0x00000000, 20800 }, /* SUB */ -{ op_5148_0_comp_ff, 0x00000000, 20808 }, /* SUBA */ -{ op_5150_0_comp_ff, 0x00000000, 20816 }, /* SUB */ -{ op_5158_0_comp_ff, 0x00000000, 20824 }, /* SUB */ -{ op_5160_0_comp_ff, 0x00000000, 20832 }, /* SUB */ -{ op_5168_0_comp_ff, 0x00000002, 20840 }, /* SUB */ -{ op_5170_0_comp_ff, 0x00000002, 20848 }, /* SUB */ -{ op_5178_0_comp_ff, 0x00000002, 20856 }, /* SUB */ -{ op_5179_0_comp_ff, 0x00000002, 20857 }, /* SUB */ -{ op_5180_0_comp_ff, 0x00000000, 20864 }, /* SUB */ -{ op_5188_0_comp_ff, 0x00000000, 20872 }, /* SUBA */ -{ op_5190_0_comp_ff, 0x00000000, 20880 }, /* SUB */ -{ op_5198_0_comp_ff, 0x00000000, 20888 }, /* SUB */ -{ op_51a0_0_comp_ff, 0x00000000, 20896 }, /* SUB */ -{ op_51a8_0_comp_ff, 0x00000002, 20904 }, /* SUB */ -{ op_51b0_0_comp_ff, 0x00000002, 20912 }, /* SUB */ -{ op_51b8_0_comp_ff, 0x00000002, 20920 }, /* SUB */ -{ op_51b9_0_comp_ff, 0x00000002, 20921 }, /* SUB */ -{ op_51c0_0_comp_ff, 0x00000000, 20928 }, /* Scc */ -{ op_51c8_0_comp_ff, 0x00000003, 20936 }, /* DBcc */ -{ op_51d0_0_comp_ff, 0x00000000, 20944 }, /* Scc */ -{ op_51d8_0_comp_ff, 0x00000000, 20952 }, /* Scc */ -{ op_51e0_0_comp_ff, 0x00000000, 20960 }, /* Scc */ -{ op_51e8_0_comp_ff, 0x00000002, 20968 }, /* Scc */ -{ op_51f0_0_comp_ff, 0x00000002, 20976 }, /* Scc */ -{ op_51f8_0_comp_ff, 0x00000002, 20984 }, /* Scc */ -{ op_51f9_0_comp_ff, 0x00000002, 20985 }, /* Scc */ -{ NULL, 0x00000001, 20986 }, /* TRAPcc */ -{ NULL, 0x00000001, 20987 }, /* TRAPcc */ -{ NULL, 0x00000001, 20988 }, /* TRAPcc */ -{ op_52c0_0_comp_ff, 0x00000000, 21184 }, /* Scc */ -{ op_52c8_0_comp_ff, 0x00000003, 21192 }, /* DBcc */ -{ op_52d0_0_comp_ff, 0x00000000, 21200 }, /* Scc */ -{ op_52d8_0_comp_ff, 0x00000000, 21208 }, /* Scc */ -{ op_52e0_0_comp_ff, 0x00000000, 21216 }, /* Scc */ -{ op_52e8_0_comp_ff, 0x00000002, 21224 }, /* Scc */ -{ op_52f0_0_comp_ff, 0x00000002, 21232 }, /* Scc */ -{ op_52f8_0_comp_ff, 0x00000002, 21240 }, /* Scc */ -{ op_52f9_0_comp_ff, 0x00000002, 21241 }, /* Scc */ -{ NULL, 0x00000001, 21242 }, /* TRAPcc */ -{ NULL, 0x00000001, 21243 }, /* TRAPcc */ -{ NULL, 0x00000001, 21244 }, /* TRAPcc */ -{ op_53c0_0_comp_ff, 0x00000000, 21440 }, /* Scc */ -{ op_53c8_0_comp_ff, 0x00000003, 21448 }, /* DBcc */ -{ op_53d0_0_comp_ff, 0x00000000, 21456 }, /* Scc */ -{ op_53d8_0_comp_ff, 0x00000000, 21464 }, /* Scc */ -{ op_53e0_0_comp_ff, 0x00000000, 21472 }, /* Scc */ -{ op_53e8_0_comp_ff, 0x00000002, 21480 }, /* Scc */ -{ op_53f0_0_comp_ff, 0x00000002, 21488 }, /* Scc */ -{ op_53f8_0_comp_ff, 0x00000002, 21496 }, /* Scc */ -{ op_53f9_0_comp_ff, 0x00000002, 21497 }, /* Scc */ -{ NULL, 0x00000001, 21498 }, /* TRAPcc */ -{ NULL, 0x00000001, 21499 }, /* TRAPcc */ -{ NULL, 0x00000001, 21500 }, /* TRAPcc */ -{ op_54c0_0_comp_ff, 0x00000000, 21696 }, /* Scc */ -{ op_54c8_0_comp_ff, 0x00000003, 21704 }, /* DBcc */ -{ op_54d0_0_comp_ff, 0x00000000, 21712 }, /* Scc */ -{ op_54d8_0_comp_ff, 0x00000000, 21720 }, /* Scc */ -{ op_54e0_0_comp_ff, 0x00000000, 21728 }, /* Scc */ -{ op_54e8_0_comp_ff, 0x00000002, 21736 }, /* Scc */ -{ op_54f0_0_comp_ff, 0x00000002, 21744 }, /* Scc */ -{ op_54f8_0_comp_ff, 0x00000002, 21752 }, /* Scc */ -{ op_54f9_0_comp_ff, 0x00000002, 21753 }, /* Scc */ -{ NULL, 0x00000001, 21754 }, /* TRAPcc */ -{ NULL, 0x00000001, 21755 }, /* TRAPcc */ -{ NULL, 0x00000001, 21756 }, /* TRAPcc */ -{ op_55c0_0_comp_ff, 0x00000000, 21952 }, /* Scc */ -{ op_55c8_0_comp_ff, 0x00000003, 21960 }, /* DBcc */ -{ op_55d0_0_comp_ff, 0x00000000, 21968 }, /* Scc */ -{ op_55d8_0_comp_ff, 0x00000000, 21976 }, /* Scc */ -{ op_55e0_0_comp_ff, 0x00000000, 21984 }, /* Scc */ -{ op_55e8_0_comp_ff, 0x00000002, 21992 }, /* Scc */ -{ op_55f0_0_comp_ff, 0x00000002, 22000 }, /* Scc */ -{ op_55f8_0_comp_ff, 0x00000002, 22008 }, /* Scc */ -{ op_55f9_0_comp_ff, 0x00000002, 22009 }, /* Scc */ -{ NULL, 0x00000001, 22010 }, /* TRAPcc */ -{ NULL, 0x00000001, 22011 }, /* TRAPcc */ -{ NULL, 0x00000001, 22012 }, /* TRAPcc */ -{ op_56c0_0_comp_ff, 0x00000000, 22208 }, /* Scc */ -{ op_56c8_0_comp_ff, 0x00000003, 22216 }, /* DBcc */ -{ op_56d0_0_comp_ff, 0x00000000, 22224 }, /* Scc */ -{ op_56d8_0_comp_ff, 0x00000000, 22232 }, /* Scc */ -{ op_56e0_0_comp_ff, 0x00000000, 22240 }, /* Scc */ -{ op_56e8_0_comp_ff, 0x00000002, 22248 }, /* Scc */ -{ op_56f0_0_comp_ff, 0x00000002, 22256 }, /* Scc */ -{ op_56f8_0_comp_ff, 0x00000002, 22264 }, /* Scc */ -{ op_56f9_0_comp_ff, 0x00000002, 22265 }, /* Scc */ -{ NULL, 0x00000001, 22266 }, /* TRAPcc */ -{ NULL, 0x00000001, 22267 }, /* TRAPcc */ -{ NULL, 0x00000001, 22268 }, /* TRAPcc */ -{ op_57c0_0_comp_ff, 0x00000000, 22464 }, /* Scc */ -{ op_57c8_0_comp_ff, 0x00000003, 22472 }, /* DBcc */ -{ op_57d0_0_comp_ff, 0x00000000, 22480 }, /* Scc */ -{ op_57d8_0_comp_ff, 0x00000000, 22488 }, /* Scc */ -{ op_57e0_0_comp_ff, 0x00000000, 22496 }, /* Scc */ -{ op_57e8_0_comp_ff, 0x00000002, 22504 }, /* Scc */ -{ op_57f0_0_comp_ff, 0x00000002, 22512 }, /* Scc */ -{ op_57f8_0_comp_ff, 0x00000002, 22520 }, /* Scc */ -{ op_57f9_0_comp_ff, 0x00000002, 22521 }, /* Scc */ -{ NULL, 0x00000001, 22522 }, /* TRAPcc */ -{ NULL, 0x00000001, 22523 }, /* TRAPcc */ -{ NULL, 0x00000001, 22524 }, /* TRAPcc */ -{ op_58c0_0_comp_ff, 0x00000000, 22720 }, /* Scc */ -{ op_58c8_0_comp_ff, 0x00000003, 22728 }, /* DBcc */ -{ op_58d0_0_comp_ff, 0x00000000, 22736 }, /* Scc */ -{ op_58d8_0_comp_ff, 0x00000000, 22744 }, /* Scc */ -{ op_58e0_0_comp_ff, 0x00000000, 22752 }, /* Scc */ -{ op_58e8_0_comp_ff, 0x00000002, 22760 }, /* Scc */ -{ op_58f0_0_comp_ff, 0x00000002, 22768 }, /* Scc */ -{ op_58f8_0_comp_ff, 0x00000002, 22776 }, /* Scc */ -{ op_58f9_0_comp_ff, 0x00000002, 22777 }, /* Scc */ -{ NULL, 0x00000001, 22778 }, /* TRAPcc */ -{ NULL, 0x00000001, 22779 }, /* TRAPcc */ -{ NULL, 0x00000001, 22780 }, /* TRAPcc */ -{ op_59c0_0_comp_ff, 0x00000000, 22976 }, /* Scc */ -{ op_59c8_0_comp_ff, 0x00000003, 22984 }, /* DBcc */ -{ op_59d0_0_comp_ff, 0x00000000, 22992 }, /* Scc */ -{ op_59d8_0_comp_ff, 0x00000000, 23000 }, /* Scc */ -{ op_59e0_0_comp_ff, 0x00000000, 23008 }, /* Scc */ -{ op_59e8_0_comp_ff, 0x00000002, 23016 }, /* Scc */ -{ op_59f0_0_comp_ff, 0x00000002, 23024 }, /* Scc */ -{ op_59f8_0_comp_ff, 0x00000002, 23032 }, /* Scc */ -{ op_59f9_0_comp_ff, 0x00000002, 23033 }, /* Scc */ -{ NULL, 0x00000001, 23034 }, /* TRAPcc */ -{ NULL, 0x00000001, 23035 }, /* TRAPcc */ -{ NULL, 0x00000001, 23036 }, /* TRAPcc */ -{ op_5ac0_0_comp_ff, 0x00000000, 23232 }, /* Scc */ -{ op_5ac8_0_comp_ff, 0x00000003, 23240 }, /* DBcc */ -{ op_5ad0_0_comp_ff, 0x00000000, 23248 }, /* Scc */ -{ op_5ad8_0_comp_ff, 0x00000000, 23256 }, /* Scc */ -{ op_5ae0_0_comp_ff, 0x00000000, 23264 }, /* Scc */ -{ op_5ae8_0_comp_ff, 0x00000002, 23272 }, /* Scc */ -{ op_5af0_0_comp_ff, 0x00000002, 23280 }, /* Scc */ -{ op_5af8_0_comp_ff, 0x00000002, 23288 }, /* Scc */ -{ op_5af9_0_comp_ff, 0x00000002, 23289 }, /* Scc */ -{ NULL, 0x00000001, 23290 }, /* TRAPcc */ -{ NULL, 0x00000001, 23291 }, /* TRAPcc */ -{ NULL, 0x00000001, 23292 }, /* TRAPcc */ -{ op_5bc0_0_comp_ff, 0x00000000, 23488 }, /* Scc */ -{ op_5bc8_0_comp_ff, 0x00000003, 23496 }, /* DBcc */ -{ op_5bd0_0_comp_ff, 0x00000000, 23504 }, /* Scc */ -{ op_5bd8_0_comp_ff, 0x00000000, 23512 }, /* Scc */ -{ op_5be0_0_comp_ff, 0x00000000, 23520 }, /* Scc */ -{ op_5be8_0_comp_ff, 0x00000002, 23528 }, /* Scc */ -{ op_5bf0_0_comp_ff, 0x00000002, 23536 }, /* Scc */ -{ op_5bf8_0_comp_ff, 0x00000002, 23544 }, /* Scc */ -{ op_5bf9_0_comp_ff, 0x00000002, 23545 }, /* Scc */ -{ NULL, 0x00000001, 23546 }, /* TRAPcc */ -{ NULL, 0x00000001, 23547 }, /* TRAPcc */ -{ NULL, 0x00000001, 23548 }, /* TRAPcc */ -{ op_5cc0_0_comp_ff, 0x00000000, 23744 }, /* Scc */ -{ op_5cc8_0_comp_ff, 0x00000003, 23752 }, /* DBcc */ -{ op_5cd0_0_comp_ff, 0x00000000, 23760 }, /* Scc */ -{ op_5cd8_0_comp_ff, 0x00000000, 23768 }, /* Scc */ -{ op_5ce0_0_comp_ff, 0x00000000, 23776 }, /* Scc */ -{ op_5ce8_0_comp_ff, 0x00000002, 23784 }, /* Scc */ -{ op_5cf0_0_comp_ff, 0x00000002, 23792 }, /* Scc */ -{ op_5cf8_0_comp_ff, 0x00000002, 23800 }, /* Scc */ -{ op_5cf9_0_comp_ff, 0x00000002, 23801 }, /* Scc */ -{ NULL, 0x00000001, 23802 }, /* TRAPcc */ -{ NULL, 0x00000001, 23803 }, /* TRAPcc */ -{ NULL, 0x00000001, 23804 }, /* TRAPcc */ -{ op_5dc0_0_comp_ff, 0x00000000, 24000 }, /* Scc */ -{ op_5dc8_0_comp_ff, 0x00000003, 24008 }, /* DBcc */ -{ op_5dd0_0_comp_ff, 0x00000000, 24016 }, /* Scc */ -{ op_5dd8_0_comp_ff, 0x00000000, 24024 }, /* Scc */ -{ op_5de0_0_comp_ff, 0x00000000, 24032 }, /* Scc */ -{ op_5de8_0_comp_ff, 0x00000002, 24040 }, /* Scc */ -{ op_5df0_0_comp_ff, 0x00000002, 24048 }, /* Scc */ -{ op_5df8_0_comp_ff, 0x00000002, 24056 }, /* Scc */ -{ op_5df9_0_comp_ff, 0x00000002, 24057 }, /* Scc */ -{ NULL, 0x00000001, 24058 }, /* TRAPcc */ -{ NULL, 0x00000001, 24059 }, /* TRAPcc */ -{ NULL, 0x00000001, 24060 }, /* TRAPcc */ -{ op_5ec0_0_comp_ff, 0x00000000, 24256 }, /* Scc */ -{ op_5ec8_0_comp_ff, 0x00000003, 24264 }, /* DBcc */ -{ op_5ed0_0_comp_ff, 0x00000000, 24272 }, /* Scc */ -{ op_5ed8_0_comp_ff, 0x00000000, 24280 }, /* Scc */ -{ op_5ee0_0_comp_ff, 0x00000000, 24288 }, /* Scc */ -{ op_5ee8_0_comp_ff, 0x00000002, 24296 }, /* Scc */ -{ op_5ef0_0_comp_ff, 0x00000002, 24304 }, /* Scc */ -{ op_5ef8_0_comp_ff, 0x00000002, 24312 }, /* Scc */ -{ op_5ef9_0_comp_ff, 0x00000002, 24313 }, /* Scc */ -{ NULL, 0x00000001, 24314 }, /* TRAPcc */ -{ NULL, 0x00000001, 24315 }, /* TRAPcc */ -{ NULL, 0x00000001, 24316 }, /* TRAPcc */ -{ op_5fc0_0_comp_ff, 0x00000000, 24512 }, /* Scc */ -{ op_5fc8_0_comp_ff, 0x00000003, 24520 }, /* DBcc */ -{ op_5fd0_0_comp_ff, 0x00000000, 24528 }, /* Scc */ -{ op_5fd8_0_comp_ff, 0x00000000, 24536 }, /* Scc */ -{ op_5fe0_0_comp_ff, 0x00000000, 24544 }, /* Scc */ -{ op_5fe8_0_comp_ff, 0x00000002, 24552 }, /* Scc */ -{ op_5ff0_0_comp_ff, 0x00000002, 24560 }, /* Scc */ -{ op_5ff8_0_comp_ff, 0x00000002, 24568 }, /* Scc */ -{ op_5ff9_0_comp_ff, 0x00000002, 24569 }, /* Scc */ -{ NULL, 0x00000001, 24570 }, /* TRAPcc */ -{ NULL, 0x00000001, 24571 }, /* TRAPcc */ -{ NULL, 0x00000001, 24572 }, /* TRAPcc */ -{ op_6000_0_comp_ff, 0x00000012, 24576 }, /* Bcc */ -{ op_6001_0_comp_ff, 0x00000010, 24577 }, /* Bcc */ -{ op_60ff_0_comp_ff, 0x00000012, 24831 }, /* Bcc */ -{ op_6100_0_comp_ff, 0x00000012, 24832 }, /* BSR */ -{ op_6101_0_comp_ff, 0x00000010, 24833 }, /* BSR */ -{ op_61ff_0_comp_ff, 0x00000012, 25087 }, /* BSR */ -{ op_6200_0_comp_ff, 0x00000003, 25088 }, /* Bcc */ -{ op_6201_0_comp_ff, 0x00000001, 25089 }, /* Bcc */ -{ op_62ff_0_comp_ff, 0x00000003, 25343 }, /* Bcc */ -{ op_6300_0_comp_ff, 0x00000003, 25344 }, /* Bcc */ -{ op_6301_0_comp_ff, 0x00000001, 25345 }, /* Bcc */ -{ op_63ff_0_comp_ff, 0x00000003, 25599 }, /* Bcc */ -{ op_6400_0_comp_ff, 0x00000003, 25600 }, /* Bcc */ -{ op_6401_0_comp_ff, 0x00000001, 25601 }, /* Bcc */ -{ op_64ff_0_comp_ff, 0x00000003, 25855 }, /* Bcc */ -{ op_6500_0_comp_ff, 0x00000003, 25856 }, /* Bcc */ -{ op_6501_0_comp_ff, 0x00000001, 25857 }, /* Bcc */ -{ op_65ff_0_comp_ff, 0x00000003, 26111 }, /* Bcc */ -{ op_6600_0_comp_ff, 0x00000003, 26112 }, /* Bcc */ -{ op_6601_0_comp_ff, 0x00000001, 26113 }, /* Bcc */ -{ op_66ff_0_comp_ff, 0x00000003, 26367 }, /* Bcc */ -{ op_6700_0_comp_ff, 0x00000003, 26368 }, /* Bcc */ -{ op_6701_0_comp_ff, 0x00000001, 26369 }, /* Bcc */ -{ op_67ff_0_comp_ff, 0x00000003, 26623 }, /* Bcc */ -{ NULL, 0x00000003, 26624 }, /* Bcc */ -{ NULL, 0x00000001, 26625 }, /* Bcc */ -{ NULL, 0x00000003, 26879 }, /* Bcc */ -{ NULL, 0x00000003, 26880 }, /* Bcc */ -{ NULL, 0x00000001, 26881 }, /* Bcc */ -{ NULL, 0x00000003, 27135 }, /* Bcc */ -{ op_6a00_0_comp_ff, 0x00000003, 27136 }, /* Bcc */ -{ op_6a01_0_comp_ff, 0x00000001, 27137 }, /* Bcc */ -{ op_6aff_0_comp_ff, 0x00000003, 27391 }, /* Bcc */ -{ op_6b00_0_comp_ff, 0x00000003, 27392 }, /* Bcc */ -{ op_6b01_0_comp_ff, 0x00000001, 27393 }, /* Bcc */ -{ op_6bff_0_comp_ff, 0x00000003, 27647 }, /* Bcc */ -{ op_6c00_0_comp_ff, 0x00000003, 27648 }, /* Bcc */ -{ op_6c01_0_comp_ff, 0x00000001, 27649 }, /* Bcc */ -{ op_6cff_0_comp_ff, 0x00000003, 27903 }, /* Bcc */ -{ op_6d00_0_comp_ff, 0x00000003, 27904 }, /* Bcc */ -{ op_6d01_0_comp_ff, 0x00000001, 27905 }, /* Bcc */ -{ op_6dff_0_comp_ff, 0x00000003, 28159 }, /* Bcc */ -{ op_6e00_0_comp_ff, 0x00000003, 28160 }, /* Bcc */ -{ op_6e01_0_comp_ff, 0x00000001, 28161 }, /* Bcc */ -{ op_6eff_0_comp_ff, 0x00000003, 28415 }, /* Bcc */ -{ op_6f00_0_comp_ff, 0x00000003, 28416 }, /* Bcc */ -{ op_6f01_0_comp_ff, 0x00000001, 28417 }, /* Bcc */ -{ op_6fff_0_comp_ff, 0x00000003, 28671 }, /* Bcc */ -{ op_7000_0_comp_ff, 0x00000000, 28672 }, /* MOVE */ -{ op_8000_0_comp_ff, 0x00000000, 32768 }, /* OR */ -{ op_8010_0_comp_ff, 0x00000000, 32784 }, /* OR */ -{ op_8018_0_comp_ff, 0x00000000, 32792 }, /* OR */ -{ op_8020_0_comp_ff, 0x00000000, 32800 }, /* OR */ -{ op_8028_0_comp_ff, 0x00000002, 32808 }, /* OR */ -{ op_8030_0_comp_ff, 0x00000002, 32816 }, /* OR */ -{ op_8038_0_comp_ff, 0x00000002, 32824 }, /* OR */ -{ op_8039_0_comp_ff, 0x00000002, 32825 }, /* OR */ -{ op_803a_0_comp_ff, 0x00000002, 32826 }, /* OR */ -{ op_803b_0_comp_ff, 0x00000002, 32827 }, /* OR */ -{ op_803c_0_comp_ff, 0x00000002, 32828 }, /* OR */ -{ op_8040_0_comp_ff, 0x00000000, 32832 }, /* OR */ -{ op_8050_0_comp_ff, 0x00000000, 32848 }, /* OR */ -{ op_8058_0_comp_ff, 0x00000000, 32856 }, /* OR */ -{ op_8060_0_comp_ff, 0x00000000, 32864 }, /* OR */ -{ op_8068_0_comp_ff, 0x00000002, 32872 }, /* OR */ -{ op_8070_0_comp_ff, 0x00000002, 32880 }, /* OR */ -{ op_8078_0_comp_ff, 0x00000002, 32888 }, /* OR */ -{ op_8079_0_comp_ff, 0x00000002, 32889 }, /* OR */ -{ op_807a_0_comp_ff, 0x00000002, 32890 }, /* OR */ -{ op_807b_0_comp_ff, 0x00000002, 32891 }, /* OR */ -{ op_807c_0_comp_ff, 0x00000002, 32892 }, /* OR */ -{ op_8080_0_comp_ff, 0x00000000, 32896 }, /* OR */ -{ op_8090_0_comp_ff, 0x00000000, 32912 }, /* OR */ -{ op_8098_0_comp_ff, 0x00000000, 32920 }, /* OR */ -{ op_80a0_0_comp_ff, 0x00000000, 32928 }, /* OR */ -{ op_80a8_0_comp_ff, 0x00000002, 32936 }, /* OR */ -{ op_80b0_0_comp_ff, 0x00000002, 32944 }, /* OR */ -{ op_80b8_0_comp_ff, 0x00000002, 32952 }, /* OR */ -{ op_80b9_0_comp_ff, 0x00000002, 32953 }, /* OR */ -{ op_80ba_0_comp_ff, 0x00000002, 32954 }, /* OR */ -{ op_80bb_0_comp_ff, 0x00000002, 32955 }, /* OR */ -{ op_80bc_0_comp_ff, 0x00000002, 32956 }, /* OR */ -{ NULL, 0x00000001, 32960 }, /* DIVU */ -{ NULL, 0x00000001, 32976 }, /* DIVU */ -{ NULL, 0x00000001, 32984 }, /* DIVU */ -{ NULL, 0x00000001, 32992 }, /* DIVU */ -{ NULL, 0x00000003, 33000 }, /* DIVU */ -{ NULL, 0x00000003, 33008 }, /* DIVU */ -{ NULL, 0x00000003, 33016 }, /* DIVU */ -{ NULL, 0x00000003, 33017 }, /* DIVU */ -{ NULL, 0x00000003, 33018 }, /* DIVU */ -{ NULL, 0x00000003, 33019 }, /* DIVU */ -{ NULL, 0x00000003, 33020 }, /* DIVU */ -{ NULL, 0x00000000, 33024 }, /* SBCD */ -{ NULL, 0x00000000, 33032 }, /* SBCD */ -{ op_8110_0_comp_ff, 0x00000000, 33040 }, /* OR */ -{ op_8118_0_comp_ff, 0x00000000, 33048 }, /* OR */ -{ op_8120_0_comp_ff, 0x00000000, 33056 }, /* OR */ -{ op_8128_0_comp_ff, 0x00000002, 33064 }, /* OR */ -{ op_8130_0_comp_ff, 0x00000002, 33072 }, /* OR */ -{ op_8138_0_comp_ff, 0x00000002, 33080 }, /* OR */ -{ op_8139_0_comp_ff, 0x00000002, 33081 }, /* OR */ -{ NULL, 0x00000000, 33088 }, /* PACK */ -{ NULL, 0x00000000, 33096 }, /* PACK */ -{ op_8150_0_comp_ff, 0x00000000, 33104 }, /* OR */ -{ op_8158_0_comp_ff, 0x00000000, 33112 }, /* OR */ -{ op_8160_0_comp_ff, 0x00000000, 33120 }, /* OR */ -{ op_8168_0_comp_ff, 0x00000002, 33128 }, /* OR */ -{ op_8170_0_comp_ff, 0x00000002, 33136 }, /* OR */ -{ op_8178_0_comp_ff, 0x00000002, 33144 }, /* OR */ -{ op_8179_0_comp_ff, 0x00000002, 33145 }, /* OR */ -{ NULL, 0x00000000, 33152 }, /* UNPK */ -{ NULL, 0x00000000, 33160 }, /* UNPK */ -{ op_8190_0_comp_ff, 0x00000000, 33168 }, /* OR */ -{ op_8198_0_comp_ff, 0x00000000, 33176 }, /* OR */ -{ op_81a0_0_comp_ff, 0x00000000, 33184 }, /* OR */ -{ op_81a8_0_comp_ff, 0x00000002, 33192 }, /* OR */ -{ op_81b0_0_comp_ff, 0x00000002, 33200 }, /* OR */ -{ op_81b8_0_comp_ff, 0x00000002, 33208 }, /* OR */ -{ op_81b9_0_comp_ff, 0x00000002, 33209 }, /* OR */ -{ NULL, 0x00000001, 33216 }, /* DIVS */ -{ NULL, 0x00000001, 33232 }, /* DIVS */ -{ NULL, 0x00000001, 33240 }, /* DIVS */ -{ NULL, 0x00000001, 33248 }, /* DIVS */ -{ NULL, 0x00000001, 33256 }, /* DIVS */ -{ NULL, 0x00000001, 33264 }, /* DIVS */ -{ NULL, 0x00000001, 33272 }, /* DIVS */ -{ NULL, 0x00000001, 33273 }, /* DIVS */ -{ NULL, 0x00000001, 33274 }, /* DIVS */ -{ NULL, 0x00000001, 33275 }, /* DIVS */ -{ NULL, 0x00000001, 33276 }, /* DIVS */ -{ op_9000_0_comp_ff, 0x00000000, 36864 }, /* SUB */ -{ op_9010_0_comp_ff, 0x00000000, 36880 }, /* SUB */ -{ op_9018_0_comp_ff, 0x00000000, 36888 }, /* SUB */ -{ op_9020_0_comp_ff, 0x00000000, 36896 }, /* SUB */ -{ op_9028_0_comp_ff, 0x00000002, 36904 }, /* SUB */ -{ op_9030_0_comp_ff, 0x00000002, 36912 }, /* SUB */ -{ op_9038_0_comp_ff, 0x00000002, 36920 }, /* SUB */ -{ op_9039_0_comp_ff, 0x00000002, 36921 }, /* SUB */ -{ op_903a_0_comp_ff, 0x00000002, 36922 }, /* SUB */ -{ op_903b_0_comp_ff, 0x00000002, 36923 }, /* SUB */ -{ op_903c_0_comp_ff, 0x00000002, 36924 }, /* SUB */ -{ op_9040_0_comp_ff, 0x00000000, 36928 }, /* SUB */ -{ op_9048_0_comp_ff, 0x00000000, 36936 }, /* SUB */ -{ op_9050_0_comp_ff, 0x00000000, 36944 }, /* SUB */ -{ op_9058_0_comp_ff, 0x00000000, 36952 }, /* SUB */ -{ op_9060_0_comp_ff, 0x00000000, 36960 }, /* SUB */ -{ op_9068_0_comp_ff, 0x00000002, 36968 }, /* SUB */ -{ op_9070_0_comp_ff, 0x00000002, 36976 }, /* SUB */ -{ op_9078_0_comp_ff, 0x00000002, 36984 }, /* SUB */ -{ op_9079_0_comp_ff, 0x00000002, 36985 }, /* SUB */ -{ op_907a_0_comp_ff, 0x00000002, 36986 }, /* SUB */ -{ op_907b_0_comp_ff, 0x00000002, 36987 }, /* SUB */ -{ op_907c_0_comp_ff, 0x00000002, 36988 }, /* SUB */ -{ op_9080_0_comp_ff, 0x00000000, 36992 }, /* SUB */ -{ op_9088_0_comp_ff, 0x00000000, 37000 }, /* SUB */ -{ op_9090_0_comp_ff, 0x00000000, 37008 }, /* SUB */ -{ op_9098_0_comp_ff, 0x00000000, 37016 }, /* SUB */ -{ op_90a0_0_comp_ff, 0x00000000, 37024 }, /* SUB */ -{ op_90a8_0_comp_ff, 0x00000002, 37032 }, /* SUB */ -{ op_90b0_0_comp_ff, 0x00000002, 37040 }, /* SUB */ -{ op_90b8_0_comp_ff, 0x00000002, 37048 }, /* SUB */ -{ op_90b9_0_comp_ff, 0x00000002, 37049 }, /* SUB */ -{ op_90ba_0_comp_ff, 0x00000002, 37050 }, /* SUB */ -{ op_90bb_0_comp_ff, 0x00000002, 37051 }, /* SUB */ -{ op_90bc_0_comp_ff, 0x00000002, 37052 }, /* SUB */ -{ op_90c0_0_comp_ff, 0x00000000, 37056 }, /* SUBA */ -{ op_90c8_0_comp_ff, 0x00000000, 37064 }, /* SUBA */ -{ op_90d0_0_comp_ff, 0x00000000, 37072 }, /* SUBA */ -{ op_90d8_0_comp_ff, 0x00000000, 37080 }, /* SUBA */ -{ op_90e0_0_comp_ff, 0x00000000, 37088 }, /* SUBA */ -{ op_90e8_0_comp_ff, 0x00000002, 37096 }, /* SUBA */ -{ op_90f0_0_comp_ff, 0x00000002, 37104 }, /* SUBA */ -{ op_90f8_0_comp_ff, 0x00000002, 37112 }, /* SUBA */ -{ op_90f9_0_comp_ff, 0x00000002, 37113 }, /* SUBA */ -{ op_90fa_0_comp_ff, 0x00000002, 37114 }, /* SUBA */ -{ op_90fb_0_comp_ff, 0x00000002, 37115 }, /* SUBA */ -{ op_90fc_0_comp_ff, 0x00000002, 37116 }, /* SUBA */ -{ op_9100_0_comp_ff, 0x00000008, 37120 }, /* SUBX */ -{ op_9108_0_comp_ff, 0x00000008, 37128 }, /* SUBX */ -{ op_9110_0_comp_ff, 0x00000000, 37136 }, /* SUB */ -{ op_9118_0_comp_ff, 0x00000000, 37144 }, /* SUB */ -{ op_9120_0_comp_ff, 0x00000000, 37152 }, /* SUB */ -{ op_9128_0_comp_ff, 0x00000002, 37160 }, /* SUB */ -{ op_9130_0_comp_ff, 0x00000002, 37168 }, /* SUB */ -{ op_9138_0_comp_ff, 0x00000002, 37176 }, /* SUB */ -{ op_9139_0_comp_ff, 0x00000002, 37177 }, /* SUB */ -{ op_9140_0_comp_ff, 0x00000008, 37184 }, /* SUBX */ -{ op_9148_0_comp_ff, 0x00000008, 37192 }, /* SUBX */ -{ op_9150_0_comp_ff, 0x00000000, 37200 }, /* SUB */ -{ op_9158_0_comp_ff, 0x00000000, 37208 }, /* SUB */ -{ op_9160_0_comp_ff, 0x00000000, 37216 }, /* SUB */ -{ op_9168_0_comp_ff, 0x00000002, 37224 }, /* SUB */ -{ op_9170_0_comp_ff, 0x00000002, 37232 }, /* SUB */ -{ op_9178_0_comp_ff, 0x00000002, 37240 }, /* SUB */ -{ op_9179_0_comp_ff, 0x00000002, 37241 }, /* SUB */ -{ op_9180_0_comp_ff, 0x00000008, 37248 }, /* SUBX */ -{ op_9188_0_comp_ff, 0x00000008, 37256 }, /* SUBX */ -{ op_9190_0_comp_ff, 0x00000000, 37264 }, /* SUB */ -{ op_9198_0_comp_ff, 0x00000000, 37272 }, /* SUB */ -{ op_91a0_0_comp_ff, 0x00000000, 37280 }, /* SUB */ -{ op_91a8_0_comp_ff, 0x00000002, 37288 }, /* SUB */ -{ op_91b0_0_comp_ff, 0x00000002, 37296 }, /* SUB */ -{ op_91b8_0_comp_ff, 0x00000002, 37304 }, /* SUB */ -{ op_91b9_0_comp_ff, 0x00000002, 37305 }, /* SUB */ -{ op_91c0_0_comp_ff, 0x00000000, 37312 }, /* SUBA */ -{ op_91c8_0_comp_ff, 0x00000000, 37320 }, /* SUBA */ -{ op_91d0_0_comp_ff, 0x00000000, 37328 }, /* SUBA */ -{ op_91d8_0_comp_ff, 0x00000000, 37336 }, /* SUBA */ -{ op_91e0_0_comp_ff, 0x00000000, 37344 }, /* SUBA */ -{ op_91e8_0_comp_ff, 0x00000002, 37352 }, /* SUBA */ -{ op_91f0_0_comp_ff, 0x00000002, 37360 }, /* SUBA */ -{ op_91f8_0_comp_ff, 0x00000002, 37368 }, /* SUBA */ -{ op_91f9_0_comp_ff, 0x00000002, 37369 }, /* SUBA */ -{ op_91fa_0_comp_ff, 0x00000002, 37370 }, /* SUBA */ -{ op_91fb_0_comp_ff, 0x00000002, 37371 }, /* SUBA */ -{ op_91fc_0_comp_ff, 0x00000002, 37372 }, /* SUBA */ -{ op_b000_0_comp_ff, 0x00000000, 45056 }, /* CMP */ -{ op_b010_0_comp_ff, 0x00000000, 45072 }, /* CMP */ -{ op_b018_0_comp_ff, 0x00000000, 45080 }, /* CMP */ -{ op_b020_0_comp_ff, 0x00000000, 45088 }, /* CMP */ -{ op_b028_0_comp_ff, 0x00000002, 45096 }, /* CMP */ -{ op_b030_0_comp_ff, 0x00000002, 45104 }, /* CMP */ -{ op_b038_0_comp_ff, 0x00000002, 45112 }, /* CMP */ -{ op_b039_0_comp_ff, 0x00000002, 45113 }, /* CMP */ -{ op_b03a_0_comp_ff, 0x00000002, 45114 }, /* CMP */ -{ op_b03b_0_comp_ff, 0x00000002, 45115 }, /* CMP */ -{ op_b03c_0_comp_ff, 0x00000002, 45116 }, /* CMP */ -{ op_b040_0_comp_ff, 0x00000000, 45120 }, /* CMP */ -{ op_b048_0_comp_ff, 0x00000000, 45128 }, /* CMP */ -{ op_b050_0_comp_ff, 0x00000000, 45136 }, /* CMP */ -{ op_b058_0_comp_ff, 0x00000000, 45144 }, /* CMP */ -{ op_b060_0_comp_ff, 0x00000000, 45152 }, /* CMP */ -{ op_b068_0_comp_ff, 0x00000002, 45160 }, /* CMP */ -{ op_b070_0_comp_ff, 0x00000002, 45168 }, /* CMP */ -{ op_b078_0_comp_ff, 0x00000002, 45176 }, /* CMP */ -{ op_b079_0_comp_ff, 0x00000002, 45177 }, /* CMP */ -{ op_b07a_0_comp_ff, 0x00000002, 45178 }, /* CMP */ -{ op_b07b_0_comp_ff, 0x00000002, 45179 }, /* CMP */ -{ op_b07c_0_comp_ff, 0x00000002, 45180 }, /* CMP */ -{ op_b080_0_comp_ff, 0x00000000, 45184 }, /* CMP */ -{ op_b088_0_comp_ff, 0x00000000, 45192 }, /* CMP */ -{ op_b090_0_comp_ff, 0x00000000, 45200 }, /* CMP */ -{ op_b098_0_comp_ff, 0x00000000, 45208 }, /* CMP */ -{ op_b0a0_0_comp_ff, 0x00000000, 45216 }, /* CMP */ -{ op_b0a8_0_comp_ff, 0x00000002, 45224 }, /* CMP */ -{ op_b0b0_0_comp_ff, 0x00000002, 45232 }, /* CMP */ -{ op_b0b8_0_comp_ff, 0x00000002, 45240 }, /* CMP */ -{ op_b0b9_0_comp_ff, 0x00000002, 45241 }, /* CMP */ -{ op_b0ba_0_comp_ff, 0x00000002, 45242 }, /* CMP */ -{ op_b0bb_0_comp_ff, 0x00000002, 45243 }, /* CMP */ -{ op_b0bc_0_comp_ff, 0x00000002, 45244 }, /* CMP */ -{ op_b0c0_0_comp_ff, 0x00000000, 45248 }, /* CMPA */ -{ op_b0c8_0_comp_ff, 0x00000000, 45256 }, /* CMPA */ -{ op_b0d0_0_comp_ff, 0x00000000, 45264 }, /* CMPA */ -{ op_b0d8_0_comp_ff, 0x00000000, 45272 }, /* CMPA */ -{ op_b0e0_0_comp_ff, 0x00000000, 45280 }, /* CMPA */ -{ op_b0e8_0_comp_ff, 0x00000002, 45288 }, /* CMPA */ -{ op_b0f0_0_comp_ff, 0x00000002, 45296 }, /* CMPA */ -{ op_b0f8_0_comp_ff, 0x00000002, 45304 }, /* CMPA */ -{ op_b0f9_0_comp_ff, 0x00000002, 45305 }, /* CMPA */ -{ op_b0fa_0_comp_ff, 0x00000002, 45306 }, /* CMPA */ -{ op_b0fb_0_comp_ff, 0x00000002, 45307 }, /* CMPA */ -{ op_b0fc_0_comp_ff, 0x00000002, 45308 }, /* CMPA */ -{ op_b100_0_comp_ff, 0x00000000, 45312 }, /* EOR */ -{ op_b108_0_comp_ff, 0x00000000, 45320 }, /* CMPM */ -{ op_b110_0_comp_ff, 0x00000000, 45328 }, /* EOR */ -{ op_b118_0_comp_ff, 0x00000000, 45336 }, /* EOR */ -{ op_b120_0_comp_ff, 0x00000000, 45344 }, /* EOR */ -{ op_b128_0_comp_ff, 0x00000002, 45352 }, /* EOR */ -{ op_b130_0_comp_ff, 0x00000002, 45360 }, /* EOR */ -{ op_b138_0_comp_ff, 0x00000002, 45368 }, /* EOR */ -{ op_b139_0_comp_ff, 0x00000002, 45369 }, /* EOR */ -{ op_b140_0_comp_ff, 0x00000000, 45376 }, /* EOR */ -{ op_b148_0_comp_ff, 0x00000000, 45384 }, /* CMPM */ -{ op_b150_0_comp_ff, 0x00000000, 45392 }, /* EOR */ -{ op_b158_0_comp_ff, 0x00000000, 45400 }, /* EOR */ -{ op_b160_0_comp_ff, 0x00000000, 45408 }, /* EOR */ -{ op_b168_0_comp_ff, 0x00000002, 45416 }, /* EOR */ -{ op_b170_0_comp_ff, 0x00000002, 45424 }, /* EOR */ -{ op_b178_0_comp_ff, 0x00000002, 45432 }, /* EOR */ -{ op_b179_0_comp_ff, 0x00000002, 45433 }, /* EOR */ -{ op_b180_0_comp_ff, 0x00000000, 45440 }, /* EOR */ -{ op_b188_0_comp_ff, 0x00000000, 45448 }, /* CMPM */ -{ op_b190_0_comp_ff, 0x00000000, 45456 }, /* EOR */ -{ op_b198_0_comp_ff, 0x00000000, 45464 }, /* EOR */ -{ op_b1a0_0_comp_ff, 0x00000000, 45472 }, /* EOR */ -{ op_b1a8_0_comp_ff, 0x00000002, 45480 }, /* EOR */ -{ op_b1b0_0_comp_ff, 0x00000002, 45488 }, /* EOR */ -{ op_b1b8_0_comp_ff, 0x00000002, 45496 }, /* EOR */ -{ op_b1b9_0_comp_ff, 0x00000002, 45497 }, /* EOR */ -{ op_b1c0_0_comp_ff, 0x00000000, 45504 }, /* CMPA */ -{ op_b1c8_0_comp_ff, 0x00000000, 45512 }, /* CMPA */ -{ op_b1d0_0_comp_ff, 0x00000000, 45520 }, /* CMPA */ -{ op_b1d8_0_comp_ff, 0x00000000, 45528 }, /* CMPA */ -{ op_b1e0_0_comp_ff, 0x00000000, 45536 }, /* CMPA */ -{ op_b1e8_0_comp_ff, 0x00000002, 45544 }, /* CMPA */ -{ op_b1f0_0_comp_ff, 0x00000002, 45552 }, /* CMPA */ -{ op_b1f8_0_comp_ff, 0x00000002, 45560 }, /* CMPA */ -{ op_b1f9_0_comp_ff, 0x00000002, 45561 }, /* CMPA */ -{ op_b1fa_0_comp_ff, 0x00000002, 45562 }, /* CMPA */ -{ op_b1fb_0_comp_ff, 0x00000002, 45563 }, /* CMPA */ -{ op_b1fc_0_comp_ff, 0x00000002, 45564 }, /* CMPA */ -{ op_c000_0_comp_ff, 0x00000000, 49152 }, /* AND */ -{ op_c010_0_comp_ff, 0x00000000, 49168 }, /* AND */ -{ op_c018_0_comp_ff, 0x00000000, 49176 }, /* AND */ -{ op_c020_0_comp_ff, 0x00000000, 49184 }, /* AND */ -{ op_c028_0_comp_ff, 0x00000002, 49192 }, /* AND */ -{ op_c030_0_comp_ff, 0x00000002, 49200 }, /* AND */ -{ op_c038_0_comp_ff, 0x00000002, 49208 }, /* AND */ -{ op_c039_0_comp_ff, 0x00000002, 49209 }, /* AND */ -{ op_c03a_0_comp_ff, 0x00000002, 49210 }, /* AND */ -{ op_c03b_0_comp_ff, 0x00000002, 49211 }, /* AND */ -{ op_c03c_0_comp_ff, 0x00000002, 49212 }, /* AND */ -{ op_c040_0_comp_ff, 0x00000000, 49216 }, /* AND */ -{ op_c050_0_comp_ff, 0x00000000, 49232 }, /* AND */ -{ op_c058_0_comp_ff, 0x00000000, 49240 }, /* AND */ -{ op_c060_0_comp_ff, 0x00000000, 49248 }, /* AND */ -{ op_c068_0_comp_ff, 0x00000002, 49256 }, /* AND */ -{ op_c070_0_comp_ff, 0x00000002, 49264 }, /* AND */ -{ op_c078_0_comp_ff, 0x00000002, 49272 }, /* AND */ -{ op_c079_0_comp_ff, 0x00000002, 49273 }, /* AND */ -{ op_c07a_0_comp_ff, 0x00000002, 49274 }, /* AND */ -{ op_c07b_0_comp_ff, 0x00000002, 49275 }, /* AND */ -{ op_c07c_0_comp_ff, 0x00000002, 49276 }, /* AND */ -{ op_c080_0_comp_ff, 0x00000000, 49280 }, /* AND */ -{ op_c090_0_comp_ff, 0x00000000, 49296 }, /* AND */ -{ op_c098_0_comp_ff, 0x00000000, 49304 }, /* AND */ -{ op_c0a0_0_comp_ff, 0x00000000, 49312 }, /* AND */ -{ op_c0a8_0_comp_ff, 0x00000002, 49320 }, /* AND */ -{ op_c0b0_0_comp_ff, 0x00000002, 49328 }, /* AND */ -{ op_c0b8_0_comp_ff, 0x00000002, 49336 }, /* AND */ -{ op_c0b9_0_comp_ff, 0x00000002, 49337 }, /* AND */ -{ op_c0ba_0_comp_ff, 0x00000002, 49338 }, /* AND */ -{ op_c0bb_0_comp_ff, 0x00000002, 49339 }, /* AND */ -{ op_c0bc_0_comp_ff, 0x00000002, 49340 }, /* AND */ -{ op_c0c0_0_comp_ff, 0x00000000, 49344 }, /* MULU */ -{ op_c0d0_0_comp_ff, 0x00000000, 49360 }, /* MULU */ -{ op_c0d8_0_comp_ff, 0x00000000, 49368 }, /* MULU */ -{ op_c0e0_0_comp_ff, 0x00000000, 49376 }, /* MULU */ -{ op_c0e8_0_comp_ff, 0x00000002, 49384 }, /* MULU */ -{ op_c0f0_0_comp_ff, 0x00000002, 49392 }, /* MULU */ -{ op_c0f8_0_comp_ff, 0x00000002, 49400 }, /* MULU */ -{ op_c0f9_0_comp_ff, 0x00000002, 49401 }, /* MULU */ -{ op_c0fa_0_comp_ff, 0x00000002, 49402 }, /* MULU */ -{ op_c0fb_0_comp_ff, 0x00000002, 49403 }, /* MULU */ -{ op_c0fc_0_comp_ff, 0x00000002, 49404 }, /* MULU */ -{ NULL, 0x00000000, 49408 }, /* ABCD */ -{ NULL, 0x00000000, 49416 }, /* ABCD */ -{ op_c110_0_comp_ff, 0x00000000, 49424 }, /* AND */ -{ op_c118_0_comp_ff, 0x00000000, 49432 }, /* AND */ -{ op_c120_0_comp_ff, 0x00000000, 49440 }, /* AND */ -{ op_c128_0_comp_ff, 0x00000002, 49448 }, /* AND */ -{ op_c130_0_comp_ff, 0x00000002, 49456 }, /* AND */ -{ op_c138_0_comp_ff, 0x00000002, 49464 }, /* AND */ -{ op_c139_0_comp_ff, 0x00000002, 49465 }, /* AND */ -{ op_c140_0_comp_ff, 0x00000000, 49472 }, /* EXG */ -{ op_c148_0_comp_ff, 0x00000000, 49480 }, /* EXG */ -{ op_c150_0_comp_ff, 0x00000000, 49488 }, /* AND */ -{ op_c158_0_comp_ff, 0x00000000, 49496 }, /* AND */ -{ op_c160_0_comp_ff, 0x00000000, 49504 }, /* AND */ -{ op_c168_0_comp_ff, 0x00000002, 49512 }, /* AND */ -{ op_c170_0_comp_ff, 0x00000002, 49520 }, /* AND */ -{ op_c178_0_comp_ff, 0x00000002, 49528 }, /* AND */ -{ op_c179_0_comp_ff, 0x00000002, 49529 }, /* AND */ -{ op_c188_0_comp_ff, 0x00000000, 49544 }, /* EXG */ -{ op_c190_0_comp_ff, 0x00000000, 49552 }, /* AND */ -{ op_c198_0_comp_ff, 0x00000000, 49560 }, /* AND */ -{ op_c1a0_0_comp_ff, 0x00000000, 49568 }, /* AND */ -{ op_c1a8_0_comp_ff, 0x00000002, 49576 }, /* AND */ -{ op_c1b0_0_comp_ff, 0x00000002, 49584 }, /* AND */ -{ op_c1b8_0_comp_ff, 0x00000002, 49592 }, /* AND */ -{ op_c1b9_0_comp_ff, 0x00000002, 49593 }, /* AND */ -{ op_c1c0_0_comp_ff, 0x00000000, 49600 }, /* MULS */ -{ op_c1d0_0_comp_ff, 0x00000000, 49616 }, /* MULS */ -{ op_c1d8_0_comp_ff, 0x00000000, 49624 }, /* MULS */ -{ op_c1e0_0_comp_ff, 0x00000000, 49632 }, /* MULS */ -{ op_c1e8_0_comp_ff, 0x00000002, 49640 }, /* MULS */ -{ op_c1f0_0_comp_ff, 0x00000002, 49648 }, /* MULS */ -{ op_c1f8_0_comp_ff, 0x00000002, 49656 }, /* MULS */ -{ op_c1f9_0_comp_ff, 0x00000002, 49657 }, /* MULS */ -{ op_c1fa_0_comp_ff, 0x00000002, 49658 }, /* MULS */ -{ op_c1fb_0_comp_ff, 0x00000002, 49659 }, /* MULS */ -{ op_c1fc_0_comp_ff, 0x00000002, 49660 }, /* MULS */ -{ op_d000_0_comp_ff, 0x00000000, 53248 }, /* ADD */ -{ op_d010_0_comp_ff, 0x00000000, 53264 }, /* ADD */ -{ op_d018_0_comp_ff, 0x00000000, 53272 }, /* ADD */ -{ op_d020_0_comp_ff, 0x00000000, 53280 }, /* ADD */ -{ op_d028_0_comp_ff, 0x00000002, 53288 }, /* ADD */ -{ op_d030_0_comp_ff, 0x00000002, 53296 }, /* ADD */ -{ op_d038_0_comp_ff, 0x00000002, 53304 }, /* ADD */ -{ op_d039_0_comp_ff, 0x00000002, 53305 }, /* ADD */ -{ op_d03a_0_comp_ff, 0x00000002, 53306 }, /* ADD */ -{ op_d03b_0_comp_ff, 0x00000002, 53307 }, /* ADD */ -{ op_d03c_0_comp_ff, 0x00000002, 53308 }, /* ADD */ -{ op_d040_0_comp_ff, 0x00000000, 53312 }, /* ADD */ -{ op_d048_0_comp_ff, 0x00000000, 53320 }, /* ADD */ -{ op_d050_0_comp_ff, 0x00000000, 53328 }, /* ADD */ -{ op_d058_0_comp_ff, 0x00000000, 53336 }, /* ADD */ -{ op_d060_0_comp_ff, 0x00000000, 53344 }, /* ADD */ -{ op_d068_0_comp_ff, 0x00000002, 53352 }, /* ADD */ -{ op_d070_0_comp_ff, 0x00000002, 53360 }, /* ADD */ -{ op_d078_0_comp_ff, 0x00000002, 53368 }, /* ADD */ -{ op_d079_0_comp_ff, 0x00000002, 53369 }, /* ADD */ -{ op_d07a_0_comp_ff, 0x00000002, 53370 }, /* ADD */ -{ op_d07b_0_comp_ff, 0x00000002, 53371 }, /* ADD */ -{ op_d07c_0_comp_ff, 0x00000002, 53372 }, /* ADD */ -{ op_d080_0_comp_ff, 0x00000000, 53376 }, /* ADD */ -{ op_d088_0_comp_ff, 0x00000000, 53384 }, /* ADD */ -{ op_d090_0_comp_ff, 0x00000000, 53392 }, /* ADD */ -{ op_d098_0_comp_ff, 0x00000000, 53400 }, /* ADD */ -{ op_d0a0_0_comp_ff, 0x00000000, 53408 }, /* ADD */ -{ op_d0a8_0_comp_ff, 0x00000002, 53416 }, /* ADD */ -{ op_d0b0_0_comp_ff, 0x00000002, 53424 }, /* ADD */ -{ op_d0b8_0_comp_ff, 0x00000002, 53432 }, /* ADD */ -{ op_d0b9_0_comp_ff, 0x00000002, 53433 }, /* ADD */ -{ op_d0ba_0_comp_ff, 0x00000002, 53434 }, /* ADD */ -{ op_d0bb_0_comp_ff, 0x00000002, 53435 }, /* ADD */ -{ op_d0bc_0_comp_ff, 0x00000002, 53436 }, /* ADD */ -{ op_d0c0_0_comp_ff, 0x00000000, 53440 }, /* ADDA */ -{ op_d0c8_0_comp_ff, 0x00000000, 53448 }, /* ADDA */ -{ op_d0d0_0_comp_ff, 0x00000000, 53456 }, /* ADDA */ -{ op_d0d8_0_comp_ff, 0x00000000, 53464 }, /* ADDA */ -{ op_d0e0_0_comp_ff, 0x00000000, 53472 }, /* ADDA */ -{ op_d0e8_0_comp_ff, 0x00000002, 53480 }, /* ADDA */ -{ op_d0f0_0_comp_ff, 0x00000002, 53488 }, /* ADDA */ -{ op_d0f8_0_comp_ff, 0x00000002, 53496 }, /* ADDA */ -{ op_d0f9_0_comp_ff, 0x00000002, 53497 }, /* ADDA */ -{ op_d0fa_0_comp_ff, 0x00000002, 53498 }, /* ADDA */ -{ op_d0fb_0_comp_ff, 0x00000002, 53499 }, /* ADDA */ -{ op_d0fc_0_comp_ff, 0x00000002, 53500 }, /* ADDA */ -{ op_d100_0_comp_ff, 0x00000008, 53504 }, /* ADDX */ -{ op_d108_0_comp_ff, 0x00000008, 53512 }, /* ADDX */ -{ op_d110_0_comp_ff, 0x00000000, 53520 }, /* ADD */ -{ op_d118_0_comp_ff, 0x00000000, 53528 }, /* ADD */ -{ op_d120_0_comp_ff, 0x00000000, 53536 }, /* ADD */ -{ op_d128_0_comp_ff, 0x00000002, 53544 }, /* ADD */ -{ op_d130_0_comp_ff, 0x00000002, 53552 }, /* ADD */ -{ op_d138_0_comp_ff, 0x00000002, 53560 }, /* ADD */ -{ op_d139_0_comp_ff, 0x00000002, 53561 }, /* ADD */ -{ op_d140_0_comp_ff, 0x00000008, 53568 }, /* ADDX */ -{ op_d148_0_comp_ff, 0x00000008, 53576 }, /* ADDX */ -{ op_d150_0_comp_ff, 0x00000000, 53584 }, /* ADD */ -{ op_d158_0_comp_ff, 0x00000000, 53592 }, /* ADD */ -{ op_d160_0_comp_ff, 0x00000000, 53600 }, /* ADD */ -{ op_d168_0_comp_ff, 0x00000002, 53608 }, /* ADD */ -{ op_d170_0_comp_ff, 0x00000002, 53616 }, /* ADD */ -{ op_d178_0_comp_ff, 0x00000002, 53624 }, /* ADD */ -{ op_d179_0_comp_ff, 0x00000002, 53625 }, /* ADD */ -{ op_d180_0_comp_ff, 0x00000008, 53632 }, /* ADDX */ -{ op_d188_0_comp_ff, 0x00000008, 53640 }, /* ADDX */ -{ op_d190_0_comp_ff, 0x00000000, 53648 }, /* ADD */ -{ op_d198_0_comp_ff, 0x00000000, 53656 }, /* ADD */ -{ op_d1a0_0_comp_ff, 0x00000000, 53664 }, /* ADD */ -{ op_d1a8_0_comp_ff, 0x00000002, 53672 }, /* ADD */ -{ op_d1b0_0_comp_ff, 0x00000002, 53680 }, /* ADD */ -{ op_d1b8_0_comp_ff, 0x00000002, 53688 }, /* ADD */ -{ op_d1b9_0_comp_ff, 0x00000002, 53689 }, /* ADD */ -{ op_d1c0_0_comp_ff, 0x00000000, 53696 }, /* ADDA */ -{ op_d1c8_0_comp_ff, 0x00000000, 53704 }, /* ADDA */ -{ op_d1d0_0_comp_ff, 0x00000000, 53712 }, /* ADDA */ -{ op_d1d8_0_comp_ff, 0x00000000, 53720 }, /* ADDA */ -{ op_d1e0_0_comp_ff, 0x00000000, 53728 }, /* ADDA */ -{ op_d1e8_0_comp_ff, 0x00000002, 53736 }, /* ADDA */ -{ op_d1f0_0_comp_ff, 0x00000002, 53744 }, /* ADDA */ -{ op_d1f8_0_comp_ff, 0x00000002, 53752 }, /* ADDA */ -{ op_d1f9_0_comp_ff, 0x00000002, 53753 }, /* ADDA */ -{ op_d1fa_0_comp_ff, 0x00000002, 53754 }, /* ADDA */ -{ op_d1fb_0_comp_ff, 0x00000002, 53755 }, /* ADDA */ -{ op_d1fc_0_comp_ff, 0x00000002, 53756 }, /* ADDA */ -{ op_e000_0_comp_ff, 0x00000000, 57344 }, /* ASR */ -{ op_e008_0_comp_ff, 0x00000000, 57352 }, /* LSR */ -{ NULL, 0x00000008, 57360 }, /* ROXR */ -{ op_e018_0_comp_ff, 0x00000000, 57368 }, /* ROR */ -{ op_e020_0_comp_ff, 0x00000000, 57376 }, /* ASR */ -{ op_e028_0_comp_ff, 0x00000000, 57384 }, /* LSR */ -{ NULL, 0x00000008, 57392 }, /* ROXR */ -{ op_e038_0_comp_ff, 0x00000000, 57400 }, /* ROR */ -{ op_e040_0_comp_ff, 0x00000000, 57408 }, /* ASR */ -{ op_e048_0_comp_ff, 0x00000000, 57416 }, /* LSR */ -{ NULL, 0x00000008, 57424 }, /* ROXR */ -{ op_e058_0_comp_ff, 0x00000000, 57432 }, /* ROR */ -{ op_e060_0_comp_ff, 0x00000000, 57440 }, /* ASR */ -{ op_e068_0_comp_ff, 0x00000000, 57448 }, /* LSR */ -{ NULL, 0x00000008, 57456 }, /* ROXR */ -{ op_e078_0_comp_ff, 0x00000000, 57464 }, /* ROR */ -{ op_e080_0_comp_ff, 0x00000000, 57472 }, /* ASR */ -{ op_e088_0_comp_ff, 0x00000000, 57480 }, /* LSR */ -{ NULL, 0x00000008, 57488 }, /* ROXR */ -{ op_e098_0_comp_ff, 0x00000000, 57496 }, /* ROR */ -{ op_e0a0_0_comp_ff, 0x00000000, 57504 }, /* ASR */ -{ op_e0a8_0_comp_ff, 0x00000000, 57512 }, /* LSR */ -{ NULL, 0x00000008, 57520 }, /* ROXR */ -{ op_e0b8_0_comp_ff, 0x00000000, 57528 }, /* ROR */ -{ op_e0d0_0_comp_ff, 0x00000000, 57552 }, /* ASRW */ -{ op_e0d8_0_comp_ff, 0x00000000, 57560 }, /* ASRW */ -{ op_e0e0_0_comp_ff, 0x00000000, 57568 }, /* ASRW */ -{ op_e0e8_0_comp_ff, 0x00000002, 57576 }, /* ASRW */ -{ op_e0f0_0_comp_ff, 0x00000002, 57584 }, /* ASRW */ -{ op_e0f8_0_comp_ff, 0x00000002, 57592 }, /* ASRW */ -{ op_e0f9_0_comp_ff, 0x00000002, 57593 }, /* ASRW */ -{ op_e100_0_comp_ff, 0x00000000, 57600 }, /* ASL */ -{ op_e108_0_comp_ff, 0x00000000, 57608 }, /* LSL */ -{ NULL, 0x00000008, 57616 }, /* ROXL */ -{ op_e118_0_comp_ff, 0x00000000, 57624 }, /* ROL */ -{ op_e120_0_comp_ff, 0x00000000, 57632 }, /* ASL */ -{ op_e128_0_comp_ff, 0x00000000, 57640 }, /* LSL */ -{ NULL, 0x00000008, 57648 }, /* ROXL */ -{ op_e138_0_comp_ff, 0x00000000, 57656 }, /* ROL */ -{ op_e140_0_comp_ff, 0x00000000, 57664 }, /* ASL */ -{ op_e148_0_comp_ff, 0x00000000, 57672 }, /* LSL */ -{ NULL, 0x00000008, 57680 }, /* ROXL */ -{ op_e158_0_comp_ff, 0x00000000, 57688 }, /* ROL */ -{ op_e160_0_comp_ff, 0x00000000, 57696 }, /* ASL */ -{ op_e168_0_comp_ff, 0x00000000, 57704 }, /* LSL */ -{ NULL, 0x00000008, 57712 }, /* ROXL */ -{ op_e178_0_comp_ff, 0x00000000, 57720 }, /* ROL */ -{ op_e180_0_comp_ff, 0x00000000, 57728 }, /* ASL */ -{ op_e188_0_comp_ff, 0x00000000, 57736 }, /* LSL */ -{ NULL, 0x00000008, 57744 }, /* ROXL */ -{ op_e198_0_comp_ff, 0x00000000, 57752 }, /* ROL */ -{ op_e1a0_0_comp_ff, 0x00000000, 57760 }, /* ASL */ -{ op_e1a8_0_comp_ff, 0x00000000, 57768 }, /* LSL */ -{ NULL, 0x00000008, 57776 }, /* ROXL */ -{ op_e1b8_0_comp_ff, 0x00000000, 57784 }, /* ROL */ -{ op_e1d0_0_comp_ff, 0x00000000, 57808 }, /* ASLW */ -{ op_e1d8_0_comp_ff, 0x00000000, 57816 }, /* ASLW */ -{ op_e1e0_0_comp_ff, 0x00000000, 57824 }, /* ASLW */ -{ op_e1e8_0_comp_ff, 0x00000002, 57832 }, /* ASLW */ -{ op_e1f0_0_comp_ff, 0x00000002, 57840 }, /* ASLW */ -{ op_e1f8_0_comp_ff, 0x00000002, 57848 }, /* ASLW */ -{ op_e1f9_0_comp_ff, 0x00000002, 57849 }, /* ASLW */ -{ op_e2d0_0_comp_ff, 0x00000000, 58064 }, /* LSRW */ -{ op_e2d8_0_comp_ff, 0x00000000, 58072 }, /* LSRW */ -{ op_e2e0_0_comp_ff, 0x00000000, 58080 }, /* LSRW */ -{ op_e2e8_0_comp_ff, 0x00000002, 58088 }, /* LSRW */ -{ op_e2f0_0_comp_ff, 0x00000002, 58096 }, /* LSRW */ -{ op_e2f8_0_comp_ff, 0x00000002, 58104 }, /* LSRW */ -{ op_e2f9_0_comp_ff, 0x00000002, 58105 }, /* LSRW */ -{ op_e3d0_0_comp_ff, 0x00000000, 58320 }, /* LSLW */ -{ op_e3d8_0_comp_ff, 0x00000000, 58328 }, /* LSLW */ -{ op_e3e0_0_comp_ff, 0x00000000, 58336 }, /* LSLW */ -{ op_e3e8_0_comp_ff, 0x00000002, 58344 }, /* LSLW */ -{ op_e3f0_0_comp_ff, 0x00000002, 58352 }, /* LSLW */ -{ op_e3f8_0_comp_ff, 0x00000002, 58360 }, /* LSLW */ -{ op_e3f9_0_comp_ff, 0x00000002, 58361 }, /* LSLW */ -{ NULL, 0x00000008, 58576 }, /* ROXRW */ -{ NULL, 0x00000008, 58584 }, /* ROXRW */ -{ NULL, 0x00000008, 58592 }, /* ROXRW */ -{ NULL, 0x0000000a, 58600 }, /* ROXRW */ -{ NULL, 0x0000000a, 58608 }, /* ROXRW */ -{ NULL, 0x0000000a, 58616 }, /* ROXRW */ -{ NULL, 0x0000000a, 58617 }, /* ROXRW */ -{ NULL, 0x00000008, 58832 }, /* ROXLW */ -{ NULL, 0x00000008, 58840 }, /* ROXLW */ -{ NULL, 0x00000008, 58848 }, /* ROXLW */ -{ NULL, 0x0000000a, 58856 }, /* ROXLW */ -{ NULL, 0x0000000a, 58864 }, /* ROXLW */ -{ NULL, 0x0000000a, 58872 }, /* ROXLW */ -{ NULL, 0x0000000a, 58873 }, /* ROXLW */ -{ op_e6d0_0_comp_ff, 0x00000000, 59088 }, /* RORW */ -{ op_e6d8_0_comp_ff, 0x00000000, 59096 }, /* RORW */ -{ op_e6e0_0_comp_ff, 0x00000000, 59104 }, /* RORW */ -{ op_e6e8_0_comp_ff, 0x00000002, 59112 }, /* RORW */ -{ op_e6f0_0_comp_ff, 0x00000002, 59120 }, /* RORW */ -{ op_e6f8_0_comp_ff, 0x00000002, 59128 }, /* RORW */ -{ op_e6f9_0_comp_ff, 0x00000002, 59129 }, /* RORW */ -{ op_e7d0_0_comp_ff, 0x00000000, 59344 }, /* ROLW */ -{ op_e7d8_0_comp_ff, 0x00000000, 59352 }, /* ROLW */ -{ op_e7e0_0_comp_ff, 0x00000000, 59360 }, /* ROLW */ -{ op_e7e8_0_comp_ff, 0x00000002, 59368 }, /* ROLW */ -{ op_e7f0_0_comp_ff, 0x00000002, 59376 }, /* ROLW */ -{ op_e7f8_0_comp_ff, 0x00000002, 59384 }, /* ROLW */ -{ op_e7f9_0_comp_ff, 0x00000002, 59385 }, /* ROLW */ -{ NULL, 0x00000000, 59584 }, /* BFTST */ -{ NULL, 0x00000000, 59600 }, /* BFTST */ -{ NULL, 0x00000000, 59624 }, /* BFTST */ -{ NULL, 0x00000000, 59632 }, /* BFTST */ -{ NULL, 0x00000000, 59640 }, /* BFTST */ -{ NULL, 0x00000000, 59641 }, /* BFTST */ -{ NULL, 0x00000000, 59642 }, /* BFTST */ -{ NULL, 0x00000000, 59643 }, /* BFTST */ -{ NULL, 0x00000000, 59840 }, /* BFEXTU */ -{ NULL, 0x00000000, 59856 }, /* BFEXTU */ -{ NULL, 0x00000000, 59880 }, /* BFEXTU */ -{ NULL, 0x00000000, 59888 }, /* BFEXTU */ -{ NULL, 0x00000000, 59896 }, /* BFEXTU */ -{ NULL, 0x00000000, 59897 }, /* BFEXTU */ -{ NULL, 0x00000000, 59898 }, /* BFEXTU */ -{ NULL, 0x00000000, 59899 }, /* BFEXTU */ -{ NULL, 0x00000000, 60096 }, /* BFCHG */ -{ NULL, 0x00000000, 60112 }, /* BFCHG */ -{ NULL, 0x00000000, 60136 }, /* BFCHG */ -{ NULL, 0x00000000, 60144 }, /* BFCHG */ -{ NULL, 0x00000000, 60152 }, /* BFCHG */ -{ NULL, 0x00000000, 60153 }, /* BFCHG */ -{ NULL, 0x00000000, 60352 }, /* BFEXTS */ -{ NULL, 0x00000000, 60368 }, /* BFEXTS */ -{ NULL, 0x00000000, 60392 }, /* BFEXTS */ -{ NULL, 0x00000000, 60400 }, /* BFEXTS */ -{ NULL, 0x00000000, 60408 }, /* BFEXTS */ -{ NULL, 0x00000000, 60409 }, /* BFEXTS */ -{ NULL, 0x00000000, 60410 }, /* BFEXTS */ -{ NULL, 0x00000000, 60411 }, /* BFEXTS */ -{ NULL, 0x00000000, 60608 }, /* BFCLR */ -{ NULL, 0x00000000, 60624 }, /* BFCLR */ -{ NULL, 0x00000000, 60648 }, /* BFCLR */ -{ NULL, 0x00000000, 60656 }, /* BFCLR */ -{ NULL, 0x00000000, 60664 }, /* BFCLR */ -{ NULL, 0x00000000, 60665 }, /* BFCLR */ -{ NULL, 0x00000000, 60864 }, /* BFFFO */ -{ NULL, 0x00000000, 60880 }, /* BFFFO */ -{ NULL, 0x00000000, 60904 }, /* BFFFO */ -{ NULL, 0x00000000, 60912 }, /* BFFFO */ -{ NULL, 0x00000000, 60920 }, /* BFFFO */ -{ NULL, 0x00000000, 60921 }, /* BFFFO */ -{ NULL, 0x00000000, 60922 }, /* BFFFO */ -{ NULL, 0x00000000, 60923 }, /* BFFFO */ -{ NULL, 0x00000000, 61120 }, /* BFSET */ -{ NULL, 0x00000000, 61136 }, /* BFSET */ -{ NULL, 0x00000000, 61160 }, /* BFSET */ -{ NULL, 0x00000000, 61168 }, /* BFSET */ -{ NULL, 0x00000000, 61176 }, /* BFSET */ -{ NULL, 0x00000000, 61177 }, /* BFSET */ -{ NULL, 0x00000000, 61376 }, /* BFINS */ -{ NULL, 0x00000000, 61392 }, /* BFINS */ -{ NULL, 0x00000000, 61416 }, /* BFINS */ -{ NULL, 0x00000000, 61424 }, /* BFINS */ -{ NULL, 0x00000000, 61432 }, /* BFINS */ -{ NULL, 0x00000000, 61433 }, /* BFINS */ -{ NULL, 0x00000001, 61440 }, /* MMUOP030 */ -{ NULL, 0x00000001, 61448 }, /* MMUOP030 */ -{ NULL, 0x00000001, 61456 }, /* MMUOP030 */ -{ NULL, 0x00000001, 61464 }, /* MMUOP030 */ -{ NULL, 0x00000001, 61472 }, /* MMUOP030 */ -{ NULL, 0x00000001, 61480 }, /* MMUOP030 */ -{ NULL, 0x00000001, 61488 }, /* MMUOP030 */ -{ NULL, 0x00000001, 61496 }, /* MMUOP030 */ -{ NULL, 0x00000001, 61497 }, /* MMUOP030 */ -{ NULL, 0x00000022, 61952 }, /* FPP */ -{ NULL, 0x00000022, 61960 }, /* FPP */ -{ NULL, 0x00000022, 61968 }, /* FPP */ -{ NULL, 0x00000022, 61976 }, /* FPP */ -{ NULL, 0x00000022, 61984 }, /* FPP */ -{ NULL, 0x00000022, 61992 }, /* FPP */ -{ NULL, 0x00000022, 62000 }, /* FPP */ -{ NULL, 0x00000022, 62008 }, /* FPP */ -{ NULL, 0x00000022, 62009 }, /* FPP */ -{ NULL, 0x00000022, 62010 }, /* FPP */ -{ NULL, 0x00000022, 62011 }, /* FPP */ -{ NULL, 0x00000022, 62012 }, /* FPP */ -{ NULL, 0x00000006, 62016 }, /* FScc */ -{ NULL, 0x00000021, 62024 }, /* FDBcc */ -{ NULL, 0x00000006, 62032 }, /* FScc */ -{ NULL, 0x00000006, 62040 }, /* FScc */ -{ NULL, 0x00000006, 62048 }, /* FScc */ -{ NULL, 0x00000006, 62056 }, /* FScc */ -{ NULL, 0x00000006, 62064 }, /* FScc */ -{ NULL, 0x00000006, 62072 }, /* FScc */ -{ NULL, 0x00000006, 62073 }, /* FScc */ -{ NULL, 0x00000021, 62074 }, /* FTRAPcc */ -{ NULL, 0x00000021, 62075 }, /* FTRAPcc */ -{ NULL, 0x00000021, 62076 }, /* FTRAPcc */ -{ NULL, 0x00000005, 62080 }, /* FBcc */ -{ NULL, 0x00000005, 62144 }, /* FBcc */ -{ NULL, 0x00000020, 62224 }, /* FSAVE */ -{ NULL, 0x00000020, 62240 }, /* FSAVE */ -{ NULL, 0x00000020, 62248 }, /* FSAVE */ -{ NULL, 0x00000020, 62256 }, /* FSAVE */ -{ NULL, 0x00000020, 62264 }, /* FSAVE */ -{ NULL, 0x00000020, 62265 }, /* FSAVE */ -{ NULL, 0x00000020, 62288 }, /* FRESTORE */ -{ NULL, 0x00000020, 62296 }, /* FRESTORE */ -{ NULL, 0x00000020, 62312 }, /* FRESTORE */ -{ NULL, 0x00000020, 62320 }, /* FRESTORE */ -{ NULL, 0x00000020, 62328 }, /* FRESTORE */ -{ NULL, 0x00000020, 62329 }, /* FRESTORE */ -{ NULL, 0x00000020, 62330 }, /* FRESTORE */ -{ NULL, 0x00000020, 62331 }, /* FRESTORE */ -{ NULL, 0x00000001, 62472 }, /* CINVL */ -{ NULL, 0x00000001, 62480 }, /* CINVP */ -{ NULL, 0x00000001, 62488 }, /* CINVA */ -{ NULL, 0x00000001, 62489 }, /* CINVA */ -{ NULL, 0x00000001, 62490 }, /* CINVA */ -{ NULL, 0x00000001, 62491 }, /* CINVA */ -{ NULL, 0x00000001, 62492 }, /* CINVA */ -{ NULL, 0x00000001, 62493 }, /* CINVA */ -{ NULL, 0x00000001, 62494 }, /* CINVA */ -{ NULL, 0x00000001, 62495 }, /* CINVA */ -{ NULL, 0x00000001, 62504 }, /* CPUSHL */ -{ NULL, 0x00000001, 62512 }, /* CPUSHP */ -{ NULL, 0x00000001, 62520 }, /* CPUSHA */ -{ NULL, 0x00000001, 62521 }, /* CPUSHA */ -{ NULL, 0x00000001, 62522 }, /* CPUSHA */ -{ NULL, 0x00000001, 62523 }, /* CPUSHA */ -{ NULL, 0x00000001, 62524 }, /* CPUSHA */ -{ NULL, 0x00000001, 62525 }, /* CPUSHA */ -{ NULL, 0x00000001, 62526 }, /* CPUSHA */ -{ NULL, 0x00000001, 62527 }, /* CPUSHA */ -{ NULL, 0x00000001, 62720 }, /* PFLUSHN */ -{ NULL, 0x00000001, 62728 }, /* PFLUSH */ -{ NULL, 0x00000001, 62736 }, /* PFLUSHAN */ -{ NULL, 0x00000001, 62744 }, /* PFLUSHA */ -{ NULL, 0x00000001, 62792 }, /* PTESTR */ -{ NULL, 0x00000001, 62824 }, /* PTESTW */ -{ NULL, 0x00000001, 62856 }, /* PLPAR */ -{ NULL, 0x00000001, 62920 }, /* PLPAW */ -{ op_f600_0_comp_ff, 0x00000002, 62976 }, /* MOVE16 */ -{ op_f608_0_comp_ff, 0x00000002, 62984 }, /* MOVE16 */ -{ op_f610_0_comp_ff, 0x00000002, 62992 }, /* MOVE16 */ -{ op_f618_0_comp_ff, 0x00000002, 63000 }, /* MOVE16 */ -{ op_f620_0_comp_ff, 0x00000002, 63008 }, /* MOVE16 */ -{ NULL, 0x00000001, 63488 }, /* LPSTOP */ -{ 0, 0,65536 }}; -extern const struct comptbl op_smalltbl_0_comp_nf[] = { -{ op_0_0_comp_nf, 0x00000002, 0 }, /* OR */ -{ op_10_0_comp_nf, 0x00000002, 16 }, /* OR */ -{ op_18_0_comp_nf, 0x00000002, 24 }, /* OR */ -{ op_20_0_comp_nf, 0x00000002, 32 }, /* OR */ -{ op_28_0_comp_nf, 0x00000002, 40 }, /* OR */ -{ op_30_0_comp_nf, 0x00000002, 48 }, /* OR */ -{ op_38_0_comp_nf, 0x00000002, 56 }, /* OR */ -{ op_39_0_comp_nf, 0x00000002, 57 }, /* OR */ -{ op_3c_0_comp_nf, 0x00000002, 60 }, /* ORSR */ -{ op_40_0_comp_nf, 0x00000002, 64 }, /* OR */ -{ op_50_0_comp_nf, 0x00000002, 80 }, /* OR */ -{ op_58_0_comp_nf, 0x00000002, 88 }, /* OR */ -{ op_60_0_comp_nf, 0x00000002, 96 }, /* OR */ -{ op_68_0_comp_nf, 0x00000002, 104 }, /* OR */ -{ op_70_0_comp_nf, 0x00000002, 112 }, /* OR */ -{ op_78_0_comp_nf, 0x00000002, 120 }, /* OR */ -{ op_79_0_comp_nf, 0x00000002, 121 }, /* OR */ -{ NULL, 0x00000002, 124 }, /* ORSR */ -{ op_80_0_comp_nf, 0x00000002, 128 }, /* OR */ -{ op_90_0_comp_nf, 0x00000002, 144 }, /* OR */ -{ op_98_0_comp_nf, 0x00000002, 152 }, /* OR */ -{ op_a0_0_comp_nf, 0x00000002, 160 }, /* OR */ -{ op_a8_0_comp_nf, 0x00000002, 168 }, /* OR */ -{ op_b0_0_comp_nf, 0x00000002, 176 }, /* OR */ -{ op_b8_0_comp_nf, 0x00000002, 184 }, /* OR */ -{ op_b9_0_comp_nf, 0x00000002, 185 }, /* OR */ -{ NULL, 0x00000001, 208 }, /* CHK2 */ -{ NULL, 0x00000001, 232 }, /* CHK2 */ -{ NULL, 0x00000001, 240 }, /* CHK2 */ -{ NULL, 0x00000001, 248 }, /* CHK2 */ -{ NULL, 0x00000001, 249 }, /* CHK2 */ -{ NULL, 0x00000001, 250 }, /* CHK2 */ -{ NULL, 0x00000001, 251 }, /* CHK2 */ -{ op_100_0_comp_nf, 0x00000000, 256 }, /* BTST */ -{ NULL, 0x00000001, 264 }, /* MVPMR */ -{ op_110_0_comp_nf, 0x00000000, 272 }, /* BTST */ -{ op_118_0_comp_nf, 0x00000000, 280 }, /* BTST */ -{ op_120_0_comp_nf, 0x00000000, 288 }, /* BTST */ -{ op_128_0_comp_nf, 0x00000002, 296 }, /* BTST */ -{ op_130_0_comp_nf, 0x00000002, 304 }, /* BTST */ -{ op_138_0_comp_nf, 0x00000002, 312 }, /* BTST */ -{ op_139_0_comp_nf, 0x00000002, 313 }, /* BTST */ -{ op_13a_0_comp_nf, 0x00000002, 314 }, /* BTST */ -{ op_13b_0_comp_nf, 0x00000002, 315 }, /* BTST */ -{ op_13c_0_comp_nf, 0x00000002, 316 }, /* BTST */ -{ op_140_0_comp_nf, 0x00000000, 320 }, /* BCHG */ -{ NULL, 0x00000001, 328 }, /* MVPMR */ -{ op_150_0_comp_nf, 0x00000000, 336 }, /* BCHG */ -{ op_158_0_comp_nf, 0x00000000, 344 }, /* BCHG */ -{ op_160_0_comp_nf, 0x00000000, 352 }, /* BCHG */ -{ op_168_0_comp_nf, 0x00000002, 360 }, /* BCHG */ -{ op_170_0_comp_nf, 0x00000002, 368 }, /* BCHG */ -{ op_178_0_comp_nf, 0x00000002, 376 }, /* BCHG */ -{ op_179_0_comp_nf, 0x00000002, 377 }, /* BCHG */ -{ op_180_0_comp_nf, 0x00000000, 384 }, /* BCLR */ -{ NULL, 0x00000001, 392 }, /* MVPRM */ -{ op_190_0_comp_nf, 0x00000000, 400 }, /* BCLR */ -{ op_198_0_comp_nf, 0x00000000, 408 }, /* BCLR */ -{ op_1a0_0_comp_nf, 0x00000000, 416 }, /* BCLR */ -{ op_1a8_0_comp_nf, 0x00000002, 424 }, /* BCLR */ -{ op_1b0_0_comp_nf, 0x00000002, 432 }, /* BCLR */ -{ op_1b8_0_comp_nf, 0x00000002, 440 }, /* BCLR */ -{ op_1b9_0_comp_nf, 0x00000002, 441 }, /* BCLR */ -{ op_1c0_0_comp_nf, 0x00000000, 448 }, /* BSET */ -{ NULL, 0x00000001, 456 }, /* MVPRM */ -{ op_1d0_0_comp_nf, 0x00000000, 464 }, /* BSET */ -{ op_1d8_0_comp_nf, 0x00000000, 472 }, /* BSET */ -{ op_1e0_0_comp_nf, 0x00000000, 480 }, /* BSET */ -{ op_1e8_0_comp_nf, 0x00000002, 488 }, /* BSET */ -{ op_1f0_0_comp_nf, 0x00000002, 496 }, /* BSET */ -{ op_1f8_0_comp_nf, 0x00000002, 504 }, /* BSET */ -{ op_1f9_0_comp_nf, 0x00000002, 505 }, /* BSET */ -{ op_200_0_comp_nf, 0x00000002, 512 }, /* AND */ -{ op_210_0_comp_nf, 0x00000002, 528 }, /* AND */ -{ op_218_0_comp_nf, 0x00000002, 536 }, /* AND */ -{ op_220_0_comp_nf, 0x00000002, 544 }, /* AND */ -{ op_228_0_comp_nf, 0x00000002, 552 }, /* AND */ -{ op_230_0_comp_nf, 0x00000002, 560 }, /* AND */ -{ op_238_0_comp_nf, 0x00000002, 568 }, /* AND */ -{ op_239_0_comp_nf, 0x00000002, 569 }, /* AND */ -{ op_23c_0_comp_nf, 0x00000002, 572 }, /* ANDSR */ -{ op_240_0_comp_nf, 0x00000002, 576 }, /* AND */ -{ op_250_0_comp_nf, 0x00000002, 592 }, /* AND */ -{ op_258_0_comp_nf, 0x00000002, 600 }, /* AND */ -{ op_260_0_comp_nf, 0x00000002, 608 }, /* AND */ -{ op_268_0_comp_nf, 0x00000002, 616 }, /* AND */ -{ op_270_0_comp_nf, 0x00000002, 624 }, /* AND */ -{ op_278_0_comp_nf, 0x00000002, 632 }, /* AND */ -{ op_279_0_comp_nf, 0x00000002, 633 }, /* AND */ -{ NULL, 0x00000002, 636 }, /* ANDSR */ -{ op_280_0_comp_nf, 0x00000002, 640 }, /* AND */ -{ op_290_0_comp_nf, 0x00000002, 656 }, /* AND */ -{ op_298_0_comp_nf, 0x00000002, 664 }, /* AND */ -{ op_2a0_0_comp_nf, 0x00000002, 672 }, /* AND */ -{ op_2a8_0_comp_nf, 0x00000002, 680 }, /* AND */ -{ op_2b0_0_comp_nf, 0x00000002, 688 }, /* AND */ -{ op_2b8_0_comp_nf, 0x00000002, 696 }, /* AND */ -{ op_2b9_0_comp_nf, 0x00000002, 697 }, /* AND */ -{ NULL, 0x00000001, 720 }, /* CHK2 */ -{ NULL, 0x00000001, 744 }, /* CHK2 */ -{ NULL, 0x00000001, 752 }, /* CHK2 */ -{ NULL, 0x00000001, 760 }, /* CHK2 */ -{ NULL, 0x00000001, 761 }, /* CHK2 */ -{ NULL, 0x00000001, 762 }, /* CHK2 */ -{ NULL, 0x00000001, 763 }, /* CHK2 */ -{ op_400_0_comp_nf, 0x00000002, 1024 }, /* SUB */ -{ op_410_0_comp_nf, 0x00000002, 1040 }, /* SUB */ -{ op_418_0_comp_nf, 0x00000002, 1048 }, /* SUB */ -{ op_420_0_comp_nf, 0x00000002, 1056 }, /* SUB */ -{ op_428_0_comp_nf, 0x00000002, 1064 }, /* SUB */ -{ op_430_0_comp_nf, 0x00000002, 1072 }, /* SUB */ -{ op_438_0_comp_nf, 0x00000002, 1080 }, /* SUB */ -{ op_439_0_comp_nf, 0x00000002, 1081 }, /* SUB */ -{ op_440_0_comp_nf, 0x00000002, 1088 }, /* SUB */ -{ op_450_0_comp_nf, 0x00000002, 1104 }, /* SUB */ -{ op_458_0_comp_nf, 0x00000002, 1112 }, /* SUB */ -{ op_460_0_comp_nf, 0x00000002, 1120 }, /* SUB */ -{ op_468_0_comp_nf, 0x00000002, 1128 }, /* SUB */ -{ op_470_0_comp_nf, 0x00000002, 1136 }, /* SUB */ -{ op_478_0_comp_nf, 0x00000002, 1144 }, /* SUB */ -{ op_479_0_comp_nf, 0x00000002, 1145 }, /* SUB */ -{ op_480_0_comp_nf, 0x00000002, 1152 }, /* SUB */ -{ op_490_0_comp_nf, 0x00000002, 1168 }, /* SUB */ -{ op_498_0_comp_nf, 0x00000002, 1176 }, /* SUB */ -{ op_4a0_0_comp_nf, 0x00000002, 1184 }, /* SUB */ -{ op_4a8_0_comp_nf, 0x00000002, 1192 }, /* SUB */ -{ op_4b0_0_comp_nf, 0x00000002, 1200 }, /* SUB */ -{ op_4b8_0_comp_nf, 0x00000002, 1208 }, /* SUB */ -{ op_4b9_0_comp_nf, 0x00000002, 1209 }, /* SUB */ -{ NULL, 0x00000001, 1232 }, /* CHK2 */ -{ NULL, 0x00000001, 1256 }, /* CHK2 */ -{ NULL, 0x00000001, 1264 }, /* CHK2 */ -{ NULL, 0x00000001, 1272 }, /* CHK2 */ -{ NULL, 0x00000001, 1273 }, /* CHK2 */ -{ NULL, 0x00000001, 1274 }, /* CHK2 */ -{ NULL, 0x00000001, 1275 }, /* CHK2 */ -{ op_600_0_comp_nf, 0x00000002, 1536 }, /* ADD */ -{ op_610_0_comp_nf, 0x00000002, 1552 }, /* ADD */ -{ op_618_0_comp_nf, 0x00000002, 1560 }, /* ADD */ -{ op_620_0_comp_nf, 0x00000002, 1568 }, /* ADD */ -{ op_628_0_comp_nf, 0x00000002, 1576 }, /* ADD */ -{ op_630_0_comp_nf, 0x00000002, 1584 }, /* ADD */ -{ op_638_0_comp_nf, 0x00000002, 1592 }, /* ADD */ -{ op_639_0_comp_nf, 0x00000002, 1593 }, /* ADD */ -{ op_640_0_comp_nf, 0x00000002, 1600 }, /* ADD */ -{ op_650_0_comp_nf, 0x00000002, 1616 }, /* ADD */ -{ op_658_0_comp_nf, 0x00000002, 1624 }, /* ADD */ -{ op_660_0_comp_nf, 0x00000002, 1632 }, /* ADD */ -{ op_668_0_comp_nf, 0x00000002, 1640 }, /* ADD */ -{ op_670_0_comp_nf, 0x00000002, 1648 }, /* ADD */ -{ op_678_0_comp_nf, 0x00000002, 1656 }, /* ADD */ -{ op_679_0_comp_nf, 0x00000002, 1657 }, /* ADD */ -{ op_680_0_comp_nf, 0x00000002, 1664 }, /* ADD */ -{ op_690_0_comp_nf, 0x00000002, 1680 }, /* ADD */ -{ op_698_0_comp_nf, 0x00000002, 1688 }, /* ADD */ -{ op_6a0_0_comp_nf, 0x00000002, 1696 }, /* ADD */ -{ op_6a8_0_comp_nf, 0x00000002, 1704 }, /* ADD */ -{ op_6b0_0_comp_nf, 0x00000002, 1712 }, /* ADD */ -{ op_6b8_0_comp_nf, 0x00000002, 1720 }, /* ADD */ -{ op_6b9_0_comp_nf, 0x00000002, 1721 }, /* ADD */ -{ NULL, 0x00000001, 1728 }, /* RTM */ -{ NULL, 0x00000001, 1736 }, /* RTM */ -{ NULL, 0x00000001, 1744 }, /* CALLM */ -{ NULL, 0x00000001, 1768 }, /* CALLM */ -{ NULL, 0x00000001, 1776 }, /* CALLM */ -{ NULL, 0x00000001, 1784 }, /* CALLM */ -{ NULL, 0x00000001, 1785 }, /* CALLM */ -{ NULL, 0x00000001, 1786 }, /* CALLM */ -{ NULL, 0x00000001, 1787 }, /* CALLM */ -{ op_800_0_comp_nf, 0x00000002, 2048 }, /* BTST */ -{ op_810_0_comp_nf, 0x00000002, 2064 }, /* BTST */ -{ op_818_0_comp_nf, 0x00000002, 2072 }, /* BTST */ -{ op_820_0_comp_nf, 0x00000002, 2080 }, /* BTST */ -{ op_828_0_comp_nf, 0x00000002, 2088 }, /* BTST */ -{ op_830_0_comp_nf, 0x00000002, 2096 }, /* BTST */ -{ op_838_0_comp_nf, 0x00000002, 2104 }, /* BTST */ -{ op_839_0_comp_nf, 0x00000002, 2105 }, /* BTST */ -{ op_83a_0_comp_nf, 0x00000002, 2106 }, /* BTST */ -{ op_83b_0_comp_nf, 0x00000002, 2107 }, /* BTST */ -{ op_83c_0_comp_nf, 0x00000002, 2108 }, /* BTST */ -{ op_840_0_comp_nf, 0x00000002, 2112 }, /* BCHG */ -{ op_850_0_comp_nf, 0x00000002, 2128 }, /* BCHG */ -{ op_858_0_comp_nf, 0x00000002, 2136 }, /* BCHG */ -{ op_860_0_comp_nf, 0x00000002, 2144 }, /* BCHG */ -{ op_868_0_comp_nf, 0x00000002, 2152 }, /* BCHG */ -{ op_870_0_comp_nf, 0x00000002, 2160 }, /* BCHG */ -{ op_878_0_comp_nf, 0x00000002, 2168 }, /* BCHG */ -{ op_879_0_comp_nf, 0x00000002, 2169 }, /* BCHG */ -{ op_880_0_comp_nf, 0x00000002, 2176 }, /* BCLR */ -{ op_890_0_comp_nf, 0x00000002, 2192 }, /* BCLR */ -{ op_898_0_comp_nf, 0x00000002, 2200 }, /* BCLR */ -{ op_8a0_0_comp_nf, 0x00000002, 2208 }, /* BCLR */ -{ op_8a8_0_comp_nf, 0x00000002, 2216 }, /* BCLR */ -{ op_8b0_0_comp_nf, 0x00000002, 2224 }, /* BCLR */ -{ op_8b8_0_comp_nf, 0x00000002, 2232 }, /* BCLR */ -{ op_8b9_0_comp_nf, 0x00000002, 2233 }, /* BCLR */ -{ op_8c0_0_comp_nf, 0x00000002, 2240 }, /* BSET */ -{ op_8d0_0_comp_nf, 0x00000002, 2256 }, /* BSET */ -{ op_8d8_0_comp_nf, 0x00000002, 2264 }, /* BSET */ -{ op_8e0_0_comp_nf, 0x00000002, 2272 }, /* BSET */ -{ op_8e8_0_comp_nf, 0x00000002, 2280 }, /* BSET */ -{ op_8f0_0_comp_nf, 0x00000002, 2288 }, /* BSET */ -{ op_8f8_0_comp_nf, 0x00000002, 2296 }, /* BSET */ -{ op_8f9_0_comp_nf, 0x00000002, 2297 }, /* BSET */ -{ op_a00_0_comp_nf, 0x00000002, 2560 }, /* EOR */ -{ op_a10_0_comp_nf, 0x00000002, 2576 }, /* EOR */ -{ op_a18_0_comp_nf, 0x00000002, 2584 }, /* EOR */ -{ op_a20_0_comp_nf, 0x00000002, 2592 }, /* EOR */ -{ op_a28_0_comp_nf, 0x00000002, 2600 }, /* EOR */ -{ op_a30_0_comp_nf, 0x00000002, 2608 }, /* EOR */ -{ op_a38_0_comp_nf, 0x00000002, 2616 }, /* EOR */ -{ op_a39_0_comp_nf, 0x00000002, 2617 }, /* EOR */ -{ op_a3c_0_comp_nf, 0x00000002, 2620 }, /* EORSR */ -{ op_a40_0_comp_nf, 0x00000002, 2624 }, /* EOR */ -{ op_a50_0_comp_nf, 0x00000002, 2640 }, /* EOR */ -{ op_a58_0_comp_nf, 0x00000002, 2648 }, /* EOR */ -{ op_a60_0_comp_nf, 0x00000002, 2656 }, /* EOR */ -{ op_a68_0_comp_nf, 0x00000002, 2664 }, /* EOR */ -{ op_a70_0_comp_nf, 0x00000002, 2672 }, /* EOR */ -{ op_a78_0_comp_nf, 0x00000002, 2680 }, /* EOR */ -{ op_a79_0_comp_nf, 0x00000002, 2681 }, /* EOR */ -{ NULL, 0x00000002, 2684 }, /* EORSR */ -{ op_a80_0_comp_nf, 0x00000002, 2688 }, /* EOR */ -{ op_a90_0_comp_nf, 0x00000002, 2704 }, /* EOR */ -{ op_a98_0_comp_nf, 0x00000002, 2712 }, /* EOR */ -{ op_aa0_0_comp_nf, 0x00000002, 2720 }, /* EOR */ -{ op_aa8_0_comp_nf, 0x00000002, 2728 }, /* EOR */ -{ op_ab0_0_comp_nf, 0x00000002, 2736 }, /* EOR */ -{ op_ab8_0_comp_nf, 0x00000002, 2744 }, /* EOR */ -{ op_ab9_0_comp_nf, 0x00000002, 2745 }, /* EOR */ -{ NULL, 0x00000000, 2768 }, /* CAS */ -{ NULL, 0x00000000, 2776 }, /* CAS */ -{ NULL, 0x00000000, 2784 }, /* CAS */ -{ NULL, 0x00000000, 2792 }, /* CAS */ -{ NULL, 0x00000000, 2800 }, /* CAS */ -{ NULL, 0x00000000, 2808 }, /* CAS */ -{ NULL, 0x00000000, 2809 }, /* CAS */ -{ op_c00_0_comp_nf, 0x00000002, 3072 }, /* CMP */ -{ op_c10_0_comp_nf, 0x00000002, 3088 }, /* CMP */ -{ op_c18_0_comp_nf, 0x00000002, 3096 }, /* CMP */ -{ op_c20_0_comp_nf, 0x00000002, 3104 }, /* CMP */ -{ op_c28_0_comp_nf, 0x00000002, 3112 }, /* CMP */ -{ op_c30_0_comp_nf, 0x00000002, 3120 }, /* CMP */ -{ op_c38_0_comp_nf, 0x00000002, 3128 }, /* CMP */ -{ op_c39_0_comp_nf, 0x00000002, 3129 }, /* CMP */ -{ op_c3a_0_comp_nf, 0x00000002, 3130 }, /* CMP */ -{ op_c3b_0_comp_nf, 0x00000002, 3131 }, /* CMP */ -{ op_c40_0_comp_nf, 0x00000002, 3136 }, /* CMP */ -{ op_c50_0_comp_nf, 0x00000002, 3152 }, /* CMP */ -{ op_c58_0_comp_nf, 0x00000002, 3160 }, /* CMP */ -{ op_c60_0_comp_nf, 0x00000002, 3168 }, /* CMP */ -{ op_c68_0_comp_nf, 0x00000002, 3176 }, /* CMP */ -{ op_c70_0_comp_nf, 0x00000002, 3184 }, /* CMP */ -{ op_c78_0_comp_nf, 0x00000002, 3192 }, /* CMP */ -{ op_c79_0_comp_nf, 0x00000002, 3193 }, /* CMP */ -{ op_c7a_0_comp_nf, 0x00000002, 3194 }, /* CMP */ -{ op_c7b_0_comp_nf, 0x00000002, 3195 }, /* CMP */ -{ op_c80_0_comp_nf, 0x00000002, 3200 }, /* CMP */ -{ op_c90_0_comp_nf, 0x00000002, 3216 }, /* CMP */ -{ op_c98_0_comp_nf, 0x00000002, 3224 }, /* CMP */ -{ op_ca0_0_comp_nf, 0x00000002, 3232 }, /* CMP */ -{ op_ca8_0_comp_nf, 0x00000002, 3240 }, /* CMP */ -{ op_cb0_0_comp_nf, 0x00000002, 3248 }, /* CMP */ -{ op_cb8_0_comp_nf, 0x00000002, 3256 }, /* CMP */ -{ op_cb9_0_comp_nf, 0x00000002, 3257 }, /* CMP */ -{ op_cba_0_comp_nf, 0x00000002, 3258 }, /* CMP */ -{ op_cbb_0_comp_nf, 0x00000002, 3259 }, /* CMP */ -{ NULL, 0x00000000, 3280 }, /* CAS */ -{ NULL, 0x00000000, 3288 }, /* CAS */ -{ NULL, 0x00000000, 3296 }, /* CAS */ -{ NULL, 0x00000000, 3304 }, /* CAS */ -{ NULL, 0x00000000, 3312 }, /* CAS */ -{ NULL, 0x00000000, 3320 }, /* CAS */ -{ NULL, 0x00000000, 3321 }, /* CAS */ -{ NULL, 0x00000000, 3324 }, /* CAS2 */ -{ NULL, 0x00000001, 3600 }, /* MOVES */ -{ NULL, 0x00000001, 3608 }, /* MOVES */ -{ NULL, 0x00000001, 3616 }, /* MOVES */ -{ NULL, 0x00000001, 3624 }, /* MOVES */ -{ NULL, 0x00000001, 3632 }, /* MOVES */ -{ NULL, 0x00000001, 3640 }, /* MOVES */ -{ NULL, 0x00000001, 3641 }, /* MOVES */ -{ NULL, 0x00000001, 3664 }, /* MOVES */ -{ NULL, 0x00000001, 3672 }, /* MOVES */ -{ NULL, 0x00000001, 3680 }, /* MOVES */ -{ NULL, 0x00000001, 3688 }, /* MOVES */ -{ NULL, 0x00000001, 3696 }, /* MOVES */ -{ NULL, 0x00000001, 3704 }, /* MOVES */ -{ NULL, 0x00000001, 3705 }, /* MOVES */ -{ NULL, 0x00000001, 3728 }, /* MOVES */ -{ NULL, 0x00000001, 3736 }, /* MOVES */ -{ NULL, 0x00000001, 3744 }, /* MOVES */ -{ NULL, 0x00000001, 3752 }, /* MOVES */ -{ NULL, 0x00000001, 3760 }, /* MOVES */ -{ NULL, 0x00000001, 3768 }, /* MOVES */ -{ NULL, 0x00000001, 3769 }, /* MOVES */ -{ NULL, 0x00000000, 3792 }, /* CAS */ -{ NULL, 0x00000000, 3800 }, /* CAS */ -{ NULL, 0x00000000, 3808 }, /* CAS */ -{ NULL, 0x00000000, 3816 }, /* CAS */ -{ NULL, 0x00000000, 3824 }, /* CAS */ -{ NULL, 0x00000000, 3832 }, /* CAS */ -{ NULL, 0x00000000, 3833 }, /* CAS */ -{ NULL, 0x00000000, 3836 }, /* CAS2 */ -{ op_1000_0_comp_nf, 0x00000000, 4096 }, /* MOVE */ -{ op_1010_0_comp_nf, 0x00000000, 4112 }, /* MOVE */ -{ op_1018_0_comp_nf, 0x00000000, 4120 }, /* MOVE */ -{ op_1020_0_comp_nf, 0x00000000, 4128 }, /* MOVE */ -{ op_1028_0_comp_nf, 0x00000002, 4136 }, /* MOVE */ -{ op_1030_0_comp_nf, 0x00000002, 4144 }, /* MOVE */ -{ op_1038_0_comp_nf, 0x00000002, 4152 }, /* MOVE */ -{ op_1039_0_comp_nf, 0x00000002, 4153 }, /* MOVE */ -{ op_103a_0_comp_nf, 0x00000002, 4154 }, /* MOVE */ -{ op_103b_0_comp_nf, 0x00000002, 4155 }, /* MOVE */ -{ op_103c_0_comp_nf, 0x00000002, 4156 }, /* MOVE */ -{ op_1080_0_comp_nf, 0x00000000, 4224 }, /* MOVE */ -{ op_1090_0_comp_nf, 0x00000000, 4240 }, /* MOVE */ -{ op_1098_0_comp_nf, 0x00000000, 4248 }, /* MOVE */ -{ op_10a0_0_comp_nf, 0x00000000, 4256 }, /* MOVE */ -{ op_10a8_0_comp_nf, 0x00000002, 4264 }, /* MOVE */ -{ op_10b0_0_comp_nf, 0x00000002, 4272 }, /* MOVE */ -{ op_10b8_0_comp_nf, 0x00000002, 4280 }, /* MOVE */ -{ op_10b9_0_comp_nf, 0x00000002, 4281 }, /* MOVE */ -{ op_10ba_0_comp_nf, 0x00000002, 4282 }, /* MOVE */ -{ op_10bb_0_comp_nf, 0x00000002, 4283 }, /* MOVE */ -{ op_10bc_0_comp_nf, 0x00000002, 4284 }, /* MOVE */ -{ op_10c0_0_comp_nf, 0x00000000, 4288 }, /* MOVE */ -{ op_10d0_0_comp_nf, 0x00000000, 4304 }, /* MOVE */ -{ op_10d8_0_comp_nf, 0x00000000, 4312 }, /* MOVE */ -{ op_10e0_0_comp_nf, 0x00000000, 4320 }, /* MOVE */ -{ op_10e8_0_comp_nf, 0x00000002, 4328 }, /* MOVE */ -{ op_10f0_0_comp_nf, 0x00000002, 4336 }, /* MOVE */ -{ op_10f8_0_comp_nf, 0x00000002, 4344 }, /* MOVE */ -{ op_10f9_0_comp_nf, 0x00000002, 4345 }, /* MOVE */ -{ op_10fa_0_comp_nf, 0x00000002, 4346 }, /* MOVE */ -{ op_10fb_0_comp_nf, 0x00000002, 4347 }, /* MOVE */ -{ op_10fc_0_comp_nf, 0x00000002, 4348 }, /* MOVE */ -{ op_1100_0_comp_nf, 0x00000000, 4352 }, /* MOVE */ -{ op_1110_0_comp_nf, 0x00000000, 4368 }, /* MOVE */ -{ op_1118_0_comp_nf, 0x00000000, 4376 }, /* MOVE */ -{ op_1120_0_comp_nf, 0x00000000, 4384 }, /* MOVE */ -{ op_1128_0_comp_nf, 0x00000002, 4392 }, /* MOVE */ -{ op_1130_0_comp_nf, 0x00000002, 4400 }, /* MOVE */ -{ op_1138_0_comp_nf, 0x00000002, 4408 }, /* MOVE */ -{ op_1139_0_comp_nf, 0x00000002, 4409 }, /* MOVE */ -{ op_113a_0_comp_nf, 0x00000002, 4410 }, /* MOVE */ -{ op_113b_0_comp_nf, 0x00000002, 4411 }, /* MOVE */ -{ op_113c_0_comp_nf, 0x00000002, 4412 }, /* MOVE */ -{ op_1140_0_comp_nf, 0x00000002, 4416 }, /* MOVE */ -{ op_1150_0_comp_nf, 0x00000002, 4432 }, /* MOVE */ -{ op_1158_0_comp_nf, 0x00000002, 4440 }, /* MOVE */ -{ op_1160_0_comp_nf, 0x00000002, 4448 }, /* MOVE */ -{ op_1168_0_comp_nf, 0x00000002, 4456 }, /* MOVE */ -{ op_1170_0_comp_nf, 0x00000002, 4464 }, /* MOVE */ -{ op_1178_0_comp_nf, 0x00000002, 4472 }, /* MOVE */ -{ op_1179_0_comp_nf, 0x00000002, 4473 }, /* MOVE */ -{ op_117a_0_comp_nf, 0x00000002, 4474 }, /* MOVE */ -{ op_117b_0_comp_nf, 0x00000002, 4475 }, /* MOVE */ -{ op_117c_0_comp_nf, 0x00000002, 4476 }, /* MOVE */ -{ op_1180_0_comp_nf, 0x00000002, 4480 }, /* MOVE */ -{ op_1190_0_comp_nf, 0x00000002, 4496 }, /* MOVE */ -{ op_1198_0_comp_nf, 0x00000002, 4504 }, /* MOVE */ -{ op_11a0_0_comp_nf, 0x00000002, 4512 }, /* MOVE */ -{ op_11a8_0_comp_nf, 0x00000002, 4520 }, /* MOVE */ -{ op_11b0_0_comp_nf, 0x00000002, 4528 }, /* MOVE */ -{ op_11b8_0_comp_nf, 0x00000002, 4536 }, /* MOVE */ -{ op_11b9_0_comp_nf, 0x00000002, 4537 }, /* MOVE */ -{ op_11ba_0_comp_nf, 0x00000002, 4538 }, /* MOVE */ -{ op_11bb_0_comp_nf, 0x00000002, 4539 }, /* MOVE */ -{ op_11bc_0_comp_nf, 0x00000002, 4540 }, /* MOVE */ -{ op_11c0_0_comp_nf, 0x00000002, 4544 }, /* MOVE */ -{ op_11d0_0_comp_nf, 0x00000002, 4560 }, /* MOVE */ -{ op_11d8_0_comp_nf, 0x00000002, 4568 }, /* MOVE */ -{ op_11e0_0_comp_nf, 0x00000002, 4576 }, /* MOVE */ -{ op_11e8_0_comp_nf, 0x00000002, 4584 }, /* MOVE */ -{ op_11f0_0_comp_nf, 0x00000002, 4592 }, /* MOVE */ -{ op_11f8_0_comp_nf, 0x00000002, 4600 }, /* MOVE */ -{ op_11f9_0_comp_nf, 0x00000002, 4601 }, /* MOVE */ -{ op_11fa_0_comp_nf, 0x00000002, 4602 }, /* MOVE */ -{ op_11fb_0_comp_nf, 0x00000002, 4603 }, /* MOVE */ -{ op_11fc_0_comp_nf, 0x00000002, 4604 }, /* MOVE */ -{ op_13c0_0_comp_nf, 0x00000002, 5056 }, /* MOVE */ -{ op_13d0_0_comp_nf, 0x00000002, 5072 }, /* MOVE */ -{ op_13d8_0_comp_nf, 0x00000002, 5080 }, /* MOVE */ -{ op_13e0_0_comp_nf, 0x00000002, 5088 }, /* MOVE */ -{ op_13e8_0_comp_nf, 0x00000002, 5096 }, /* MOVE */ -{ op_13f0_0_comp_nf, 0x00000002, 5104 }, /* MOVE */ -{ op_13f8_0_comp_nf, 0x00000002, 5112 }, /* MOVE */ -{ op_13f9_0_comp_nf, 0x00000002, 5113 }, /* MOVE */ -{ op_13fa_0_comp_nf, 0x00000002, 5114 }, /* MOVE */ -{ op_13fb_0_comp_nf, 0x00000002, 5115 }, /* MOVE */ -{ op_13fc_0_comp_nf, 0x00000002, 5116 }, /* MOVE */ -{ op_2000_0_comp_nf, 0x00000000, 8192 }, /* MOVE */ -{ op_2008_0_comp_nf, 0x00000000, 8200 }, /* MOVE */ -{ op_2010_0_comp_nf, 0x00000000, 8208 }, /* MOVE */ -{ op_2018_0_comp_nf, 0x00000000, 8216 }, /* MOVE */ -{ op_2020_0_comp_nf, 0x00000000, 8224 }, /* MOVE */ -{ op_2028_0_comp_nf, 0x00000002, 8232 }, /* MOVE */ -{ op_2030_0_comp_nf, 0x00000002, 8240 }, /* MOVE */ -{ op_2038_0_comp_nf, 0x00000002, 8248 }, /* MOVE */ -{ op_2039_0_comp_nf, 0x00000002, 8249 }, /* MOVE */ -{ op_203a_0_comp_nf, 0x00000002, 8250 }, /* MOVE */ -{ op_203b_0_comp_nf, 0x00000002, 8251 }, /* MOVE */ -{ op_203c_0_comp_nf, 0x00000002, 8252 }, /* MOVE */ -{ op_2040_0_comp_nf, 0x00000000, 8256 }, /* MOVEA */ -{ op_2048_0_comp_nf, 0x00000000, 8264 }, /* MOVEA */ -{ op_2050_0_comp_nf, 0x00000000, 8272 }, /* MOVEA */ -{ op_2058_0_comp_nf, 0x00000000, 8280 }, /* MOVEA */ -{ op_2060_0_comp_nf, 0x00000000, 8288 }, /* MOVEA */ -{ op_2068_0_comp_nf, 0x00000002, 8296 }, /* MOVEA */ -{ op_2070_0_comp_nf, 0x00000002, 8304 }, /* MOVEA */ -{ op_2078_0_comp_nf, 0x00000002, 8312 }, /* MOVEA */ -{ op_2079_0_comp_nf, 0x00000002, 8313 }, /* MOVEA */ -{ op_207a_0_comp_nf, 0x00000002, 8314 }, /* MOVEA */ -{ op_207b_0_comp_nf, 0x00000002, 8315 }, /* MOVEA */ -{ op_207c_0_comp_nf, 0x00000002, 8316 }, /* MOVEA */ -{ op_2080_0_comp_nf, 0x00000000, 8320 }, /* MOVE */ -{ op_2088_0_comp_nf, 0x00000000, 8328 }, /* MOVE */ -{ op_2090_0_comp_nf, 0x00000000, 8336 }, /* MOVE */ -{ op_2098_0_comp_nf, 0x00000000, 8344 }, /* MOVE */ -{ op_20a0_0_comp_nf, 0x00000000, 8352 }, /* MOVE */ -{ op_20a8_0_comp_nf, 0x00000002, 8360 }, /* MOVE */ -{ op_20b0_0_comp_nf, 0x00000002, 8368 }, /* MOVE */ -{ op_20b8_0_comp_nf, 0x00000002, 8376 }, /* MOVE */ -{ op_20b9_0_comp_nf, 0x00000002, 8377 }, /* MOVE */ -{ op_20ba_0_comp_nf, 0x00000002, 8378 }, /* MOVE */ -{ op_20bb_0_comp_nf, 0x00000002, 8379 }, /* MOVE */ -{ op_20bc_0_comp_nf, 0x00000002, 8380 }, /* MOVE */ -{ op_20c0_0_comp_nf, 0x00000000, 8384 }, /* MOVE */ -{ op_20c8_0_comp_nf, 0x00000000, 8392 }, /* MOVE */ -{ op_20d0_0_comp_nf, 0x00000000, 8400 }, /* MOVE */ -{ op_20d8_0_comp_nf, 0x00000000, 8408 }, /* MOVE */ -{ op_20e0_0_comp_nf, 0x00000000, 8416 }, /* MOVE */ -{ op_20e8_0_comp_nf, 0x00000002, 8424 }, /* MOVE */ -{ op_20f0_0_comp_nf, 0x00000002, 8432 }, /* MOVE */ -{ op_20f8_0_comp_nf, 0x00000002, 8440 }, /* MOVE */ -{ op_20f9_0_comp_nf, 0x00000002, 8441 }, /* MOVE */ -{ op_20fa_0_comp_nf, 0x00000002, 8442 }, /* MOVE */ -{ op_20fb_0_comp_nf, 0x00000002, 8443 }, /* MOVE */ -{ op_20fc_0_comp_nf, 0x00000002, 8444 }, /* MOVE */ -{ op_2100_0_comp_nf, 0x00000000, 8448 }, /* MOVE */ -{ op_2108_0_comp_nf, 0x00000000, 8456 }, /* MOVE */ -{ op_2110_0_comp_nf, 0x00000000, 8464 }, /* MOVE */ -{ op_2118_0_comp_nf, 0x00000000, 8472 }, /* MOVE */ -{ op_2120_0_comp_nf, 0x00000000, 8480 }, /* MOVE */ -{ op_2128_0_comp_nf, 0x00000002, 8488 }, /* MOVE */ -{ op_2130_0_comp_nf, 0x00000002, 8496 }, /* MOVE */ -{ op_2138_0_comp_nf, 0x00000002, 8504 }, /* MOVE */ -{ op_2139_0_comp_nf, 0x00000002, 8505 }, /* MOVE */ -{ op_213a_0_comp_nf, 0x00000002, 8506 }, /* MOVE */ -{ op_213b_0_comp_nf, 0x00000002, 8507 }, /* MOVE */ -{ op_213c_0_comp_nf, 0x00000002, 8508 }, /* MOVE */ -{ op_2140_0_comp_nf, 0x00000002, 8512 }, /* MOVE */ -{ op_2148_0_comp_nf, 0x00000002, 8520 }, /* MOVE */ -{ op_2150_0_comp_nf, 0x00000002, 8528 }, /* MOVE */ -{ op_2158_0_comp_nf, 0x00000002, 8536 }, /* MOVE */ -{ op_2160_0_comp_nf, 0x00000002, 8544 }, /* MOVE */ -{ op_2168_0_comp_nf, 0x00000002, 8552 }, /* MOVE */ -{ op_2170_0_comp_nf, 0x00000002, 8560 }, /* MOVE */ -{ op_2178_0_comp_nf, 0x00000002, 8568 }, /* MOVE */ -{ op_2179_0_comp_nf, 0x00000002, 8569 }, /* MOVE */ -{ op_217a_0_comp_nf, 0x00000002, 8570 }, /* MOVE */ -{ op_217b_0_comp_nf, 0x00000002, 8571 }, /* MOVE */ -{ op_217c_0_comp_nf, 0x00000002, 8572 }, /* MOVE */ -{ op_2180_0_comp_nf, 0x00000002, 8576 }, /* MOVE */ -{ op_2188_0_comp_nf, 0x00000002, 8584 }, /* MOVE */ -{ op_2190_0_comp_nf, 0x00000002, 8592 }, /* MOVE */ -{ op_2198_0_comp_nf, 0x00000002, 8600 }, /* MOVE */ -{ op_21a0_0_comp_nf, 0x00000002, 8608 }, /* MOVE */ -{ op_21a8_0_comp_nf, 0x00000002, 8616 }, /* MOVE */ -{ op_21b0_0_comp_nf, 0x00000002, 8624 }, /* MOVE */ -{ op_21b8_0_comp_nf, 0x00000002, 8632 }, /* MOVE */ -{ op_21b9_0_comp_nf, 0x00000002, 8633 }, /* MOVE */ -{ op_21ba_0_comp_nf, 0x00000002, 8634 }, /* MOVE */ -{ op_21bb_0_comp_nf, 0x00000002, 8635 }, /* MOVE */ -{ op_21bc_0_comp_nf, 0x00000002, 8636 }, /* MOVE */ -{ op_21c0_0_comp_nf, 0x00000002, 8640 }, /* MOVE */ -{ op_21c8_0_comp_nf, 0x00000002, 8648 }, /* MOVE */ -{ op_21d0_0_comp_nf, 0x00000002, 8656 }, /* MOVE */ -{ op_21d8_0_comp_nf, 0x00000002, 8664 }, /* MOVE */ -{ op_21e0_0_comp_nf, 0x00000002, 8672 }, /* MOVE */ -{ op_21e8_0_comp_nf, 0x00000002, 8680 }, /* MOVE */ -{ op_21f0_0_comp_nf, 0x00000002, 8688 }, /* MOVE */ -{ op_21f8_0_comp_nf, 0x00000002, 8696 }, /* MOVE */ -{ op_21f9_0_comp_nf, 0x00000002, 8697 }, /* MOVE */ -{ op_21fa_0_comp_nf, 0x00000002, 8698 }, /* MOVE */ -{ op_21fb_0_comp_nf, 0x00000002, 8699 }, /* MOVE */ -{ op_21fc_0_comp_nf, 0x00000002, 8700 }, /* MOVE */ -{ op_23c0_0_comp_nf, 0x00000002, 9152 }, /* MOVE */ -{ op_23c8_0_comp_nf, 0x00000002, 9160 }, /* MOVE */ -{ op_23d0_0_comp_nf, 0x00000002, 9168 }, /* MOVE */ -{ op_23d8_0_comp_nf, 0x00000002, 9176 }, /* MOVE */ -{ op_23e0_0_comp_nf, 0x00000002, 9184 }, /* MOVE */ -{ op_23e8_0_comp_nf, 0x00000002, 9192 }, /* MOVE */ -{ op_23f0_0_comp_nf, 0x00000002, 9200 }, /* MOVE */ -{ op_23f8_0_comp_nf, 0x00000002, 9208 }, /* MOVE */ -{ op_23f9_0_comp_nf, 0x00000002, 9209 }, /* MOVE */ -{ op_23fa_0_comp_nf, 0x00000002, 9210 }, /* MOVE */ -{ op_23fb_0_comp_nf, 0x00000002, 9211 }, /* MOVE */ -{ op_23fc_0_comp_nf, 0x00000002, 9212 }, /* MOVE */ -{ op_3000_0_comp_nf, 0x00000000, 12288 }, /* MOVE */ -{ op_3008_0_comp_nf, 0x00000000, 12296 }, /* MOVE */ -{ op_3010_0_comp_nf, 0x00000000, 12304 }, /* MOVE */ -{ op_3018_0_comp_nf, 0x00000000, 12312 }, /* MOVE */ -{ op_3020_0_comp_nf, 0x00000000, 12320 }, /* MOVE */ -{ op_3028_0_comp_nf, 0x00000002, 12328 }, /* MOVE */ -{ op_3030_0_comp_nf, 0x00000002, 12336 }, /* MOVE */ -{ op_3038_0_comp_nf, 0x00000002, 12344 }, /* MOVE */ -{ op_3039_0_comp_nf, 0x00000002, 12345 }, /* MOVE */ -{ op_303a_0_comp_nf, 0x00000002, 12346 }, /* MOVE */ -{ op_303b_0_comp_nf, 0x00000002, 12347 }, /* MOVE */ -{ op_303c_0_comp_nf, 0x00000002, 12348 }, /* MOVE */ -{ op_3040_0_comp_nf, 0x00000000, 12352 }, /* MOVEA */ -{ op_3048_0_comp_nf, 0x00000000, 12360 }, /* MOVEA */ -{ op_3050_0_comp_nf, 0x00000000, 12368 }, /* MOVEA */ -{ op_3058_0_comp_nf, 0x00000000, 12376 }, /* MOVEA */ -{ op_3060_0_comp_nf, 0x00000000, 12384 }, /* MOVEA */ -{ op_3068_0_comp_nf, 0x00000002, 12392 }, /* MOVEA */ -{ op_3070_0_comp_nf, 0x00000002, 12400 }, /* MOVEA */ -{ op_3078_0_comp_nf, 0x00000002, 12408 }, /* MOVEA */ -{ op_3079_0_comp_nf, 0x00000002, 12409 }, /* MOVEA */ -{ op_307a_0_comp_nf, 0x00000002, 12410 }, /* MOVEA */ -{ op_307b_0_comp_nf, 0x00000002, 12411 }, /* MOVEA */ -{ op_307c_0_comp_nf, 0x00000002, 12412 }, /* MOVEA */ -{ op_3080_0_comp_nf, 0x00000000, 12416 }, /* MOVE */ -{ op_3088_0_comp_nf, 0x00000000, 12424 }, /* MOVE */ -{ op_3090_0_comp_nf, 0x00000000, 12432 }, /* MOVE */ -{ op_3098_0_comp_nf, 0x00000000, 12440 }, /* MOVE */ -{ op_30a0_0_comp_nf, 0x00000000, 12448 }, /* MOVE */ -{ op_30a8_0_comp_nf, 0x00000002, 12456 }, /* MOVE */ -{ op_30b0_0_comp_nf, 0x00000002, 12464 }, /* MOVE */ -{ op_30b8_0_comp_nf, 0x00000002, 12472 }, /* MOVE */ -{ op_30b9_0_comp_nf, 0x00000002, 12473 }, /* MOVE */ -{ op_30ba_0_comp_nf, 0x00000002, 12474 }, /* MOVE */ -{ op_30bb_0_comp_nf, 0x00000002, 12475 }, /* MOVE */ -{ op_30bc_0_comp_nf, 0x00000002, 12476 }, /* MOVE */ -{ op_30c0_0_comp_nf, 0x00000000, 12480 }, /* MOVE */ -{ op_30c8_0_comp_nf, 0x00000000, 12488 }, /* MOVE */ -{ op_30d0_0_comp_nf, 0x00000000, 12496 }, /* MOVE */ -{ op_30d8_0_comp_nf, 0x00000000, 12504 }, /* MOVE */ -{ op_30e0_0_comp_nf, 0x00000000, 12512 }, /* MOVE */ -{ op_30e8_0_comp_nf, 0x00000002, 12520 }, /* MOVE */ -{ op_30f0_0_comp_nf, 0x00000002, 12528 }, /* MOVE */ -{ op_30f8_0_comp_nf, 0x00000002, 12536 }, /* MOVE */ -{ op_30f9_0_comp_nf, 0x00000002, 12537 }, /* MOVE */ -{ op_30fa_0_comp_nf, 0x00000002, 12538 }, /* MOVE */ -{ op_30fb_0_comp_nf, 0x00000002, 12539 }, /* MOVE */ -{ op_30fc_0_comp_nf, 0x00000002, 12540 }, /* MOVE */ -{ op_3100_0_comp_nf, 0x00000000, 12544 }, /* MOVE */ -{ op_3108_0_comp_nf, 0x00000000, 12552 }, /* MOVE */ -{ op_3110_0_comp_nf, 0x00000000, 12560 }, /* MOVE */ -{ op_3118_0_comp_nf, 0x00000000, 12568 }, /* MOVE */ -{ op_3120_0_comp_nf, 0x00000000, 12576 }, /* MOVE */ -{ op_3128_0_comp_nf, 0x00000002, 12584 }, /* MOVE */ -{ op_3130_0_comp_nf, 0x00000002, 12592 }, /* MOVE */ -{ op_3138_0_comp_nf, 0x00000002, 12600 }, /* MOVE */ -{ op_3139_0_comp_nf, 0x00000002, 12601 }, /* MOVE */ -{ op_313a_0_comp_nf, 0x00000002, 12602 }, /* MOVE */ -{ op_313b_0_comp_nf, 0x00000002, 12603 }, /* MOVE */ -{ op_313c_0_comp_nf, 0x00000002, 12604 }, /* MOVE */ -{ op_3140_0_comp_nf, 0x00000002, 12608 }, /* MOVE */ -{ op_3148_0_comp_nf, 0x00000002, 12616 }, /* MOVE */ -{ op_3150_0_comp_nf, 0x00000002, 12624 }, /* MOVE */ -{ op_3158_0_comp_nf, 0x00000002, 12632 }, /* MOVE */ -{ op_3160_0_comp_nf, 0x00000002, 12640 }, /* MOVE */ -{ op_3168_0_comp_nf, 0x00000002, 12648 }, /* MOVE */ -{ op_3170_0_comp_nf, 0x00000002, 12656 }, /* MOVE */ -{ op_3178_0_comp_nf, 0x00000002, 12664 }, /* MOVE */ -{ op_3179_0_comp_nf, 0x00000002, 12665 }, /* MOVE */ -{ op_317a_0_comp_nf, 0x00000002, 12666 }, /* MOVE */ -{ op_317b_0_comp_nf, 0x00000002, 12667 }, /* MOVE */ -{ op_317c_0_comp_nf, 0x00000002, 12668 }, /* MOVE */ -{ op_3180_0_comp_nf, 0x00000002, 12672 }, /* MOVE */ -{ op_3188_0_comp_nf, 0x00000002, 12680 }, /* MOVE */ -{ op_3190_0_comp_nf, 0x00000002, 12688 }, /* MOVE */ -{ op_3198_0_comp_nf, 0x00000002, 12696 }, /* MOVE */ -{ op_31a0_0_comp_nf, 0x00000002, 12704 }, /* MOVE */ -{ op_31a8_0_comp_nf, 0x00000002, 12712 }, /* MOVE */ -{ op_31b0_0_comp_nf, 0x00000002, 12720 }, /* MOVE */ -{ op_31b8_0_comp_nf, 0x00000002, 12728 }, /* MOVE */ -{ op_31b9_0_comp_nf, 0x00000002, 12729 }, /* MOVE */ -{ op_31ba_0_comp_nf, 0x00000002, 12730 }, /* MOVE */ -{ op_31bb_0_comp_nf, 0x00000002, 12731 }, /* MOVE */ -{ op_31bc_0_comp_nf, 0x00000002, 12732 }, /* MOVE */ -{ op_31c0_0_comp_nf, 0x00000002, 12736 }, /* MOVE */ -{ op_31c8_0_comp_nf, 0x00000002, 12744 }, /* MOVE */ -{ op_31d0_0_comp_nf, 0x00000002, 12752 }, /* MOVE */ -{ op_31d8_0_comp_nf, 0x00000002, 12760 }, /* MOVE */ -{ op_31e0_0_comp_nf, 0x00000002, 12768 }, /* MOVE */ -{ op_31e8_0_comp_nf, 0x00000002, 12776 }, /* MOVE */ -{ op_31f0_0_comp_nf, 0x00000002, 12784 }, /* MOVE */ -{ op_31f8_0_comp_nf, 0x00000002, 12792 }, /* MOVE */ -{ op_31f9_0_comp_nf, 0x00000002, 12793 }, /* MOVE */ -{ op_31fa_0_comp_nf, 0x00000002, 12794 }, /* MOVE */ -{ op_31fb_0_comp_nf, 0x00000002, 12795 }, /* MOVE */ -{ op_31fc_0_comp_nf, 0x00000002, 12796 }, /* MOVE */ -{ op_33c0_0_comp_nf, 0x00000002, 13248 }, /* MOVE */ -{ op_33c8_0_comp_nf, 0x00000002, 13256 }, /* MOVE */ -{ op_33d0_0_comp_nf, 0x00000002, 13264 }, /* MOVE */ -{ op_33d8_0_comp_nf, 0x00000002, 13272 }, /* MOVE */ -{ op_33e0_0_comp_nf, 0x00000002, 13280 }, /* MOVE */ -{ op_33e8_0_comp_nf, 0x00000002, 13288 }, /* MOVE */ -{ op_33f0_0_comp_nf, 0x00000002, 13296 }, /* MOVE */ -{ op_33f8_0_comp_nf, 0x00000002, 13304 }, /* MOVE */ -{ op_33f9_0_comp_nf, 0x00000002, 13305 }, /* MOVE */ -{ op_33fa_0_comp_nf, 0x00000002, 13306 }, /* MOVE */ -{ op_33fb_0_comp_nf, 0x00000002, 13307 }, /* MOVE */ -{ op_33fc_0_comp_nf, 0x00000002, 13308 }, /* MOVE */ -{ op_4000_0_comp_nf, 0x00000008, 16384 }, /* NEGX */ -{ op_4010_0_comp_nf, 0x00000008, 16400 }, /* NEGX */ -{ op_4018_0_comp_nf, 0x00000008, 16408 }, /* NEGX */ -{ op_4020_0_comp_nf, 0x00000008, 16416 }, /* NEGX */ -{ op_4028_0_comp_nf, 0x0000000a, 16424 }, /* NEGX */ -{ op_4030_0_comp_nf, 0x0000000a, 16432 }, /* NEGX */ -{ op_4038_0_comp_nf, 0x0000000a, 16440 }, /* NEGX */ -{ op_4039_0_comp_nf, 0x0000000a, 16441 }, /* NEGX */ -{ op_4040_0_comp_nf, 0x00000008, 16448 }, /* NEGX */ -{ op_4050_0_comp_nf, 0x00000008, 16464 }, /* NEGX */ -{ op_4058_0_comp_nf, 0x00000008, 16472 }, /* NEGX */ -{ op_4060_0_comp_nf, 0x00000008, 16480 }, /* NEGX */ -{ op_4068_0_comp_nf, 0x0000000a, 16488 }, /* NEGX */ -{ op_4070_0_comp_nf, 0x0000000a, 16496 }, /* NEGX */ -{ op_4078_0_comp_nf, 0x0000000a, 16504 }, /* NEGX */ -{ op_4079_0_comp_nf, 0x0000000a, 16505 }, /* NEGX */ -{ op_4080_0_comp_nf, 0x00000008, 16512 }, /* NEGX */ -{ op_4090_0_comp_nf, 0x00000008, 16528 }, /* NEGX */ -{ op_4098_0_comp_nf, 0x00000008, 16536 }, /* NEGX */ -{ op_40a0_0_comp_nf, 0x00000008, 16544 }, /* NEGX */ -{ op_40a8_0_comp_nf, 0x0000000a, 16552 }, /* NEGX */ -{ op_40b0_0_comp_nf, 0x0000000a, 16560 }, /* NEGX */ -{ op_40b8_0_comp_nf, 0x0000000a, 16568 }, /* NEGX */ -{ op_40b9_0_comp_nf, 0x0000000a, 16569 }, /* NEGX */ -{ NULL, 0x00000001, 16576 }, /* MVSR2 */ -{ NULL, 0x00000001, 16592 }, /* MVSR2 */ -{ NULL, 0x00000001, 16600 }, /* MVSR2 */ -{ NULL, 0x00000001, 16608 }, /* MVSR2 */ -{ NULL, 0x00000001, 16616 }, /* MVSR2 */ -{ NULL, 0x00000001, 16624 }, /* MVSR2 */ -{ NULL, 0x00000001, 16632 }, /* MVSR2 */ -{ NULL, 0x00000001, 16633 }, /* MVSR2 */ -{ NULL, 0x00000001, 16640 }, /* CHK */ -{ NULL, 0x00000001, 16656 }, /* CHK */ -{ NULL, 0x00000001, 16664 }, /* CHK */ -{ NULL, 0x00000001, 16672 }, /* CHK */ -{ NULL, 0x00000001, 16680 }, /* CHK */ -{ NULL, 0x00000001, 16688 }, /* CHK */ -{ NULL, 0x00000001, 16696 }, /* CHK */ -{ NULL, 0x00000001, 16697 }, /* CHK */ -{ NULL, 0x00000001, 16698 }, /* CHK */ -{ NULL, 0x00000001, 16699 }, /* CHK */ -{ NULL, 0x00000001, 16700 }, /* CHK */ -{ NULL, 0x00000001, 16768 }, /* CHK */ -{ NULL, 0x00000001, 16784 }, /* CHK */ -{ NULL, 0x00000001, 16792 }, /* CHK */ -{ NULL, 0x00000001, 16800 }, /* CHK */ -{ NULL, 0x00000001, 16808 }, /* CHK */ -{ NULL, 0x00000001, 16816 }, /* CHK */ -{ NULL, 0x00000001, 16824 }, /* CHK */ -{ NULL, 0x00000001, 16825 }, /* CHK */ -{ NULL, 0x00000001, 16826 }, /* CHK */ -{ NULL, 0x00000001, 16827 }, /* CHK */ -{ NULL, 0x00000001, 16828 }, /* CHK */ -{ op_41d0_0_comp_nf, 0x00000000, 16848 }, /* LEA */ -{ op_41e8_0_comp_nf, 0x00000002, 16872 }, /* LEA */ -{ op_41f0_0_comp_nf, 0x00000002, 16880 }, /* LEA */ -{ op_41f8_0_comp_nf, 0x00000002, 16888 }, /* LEA */ -{ op_41f9_0_comp_nf, 0x00000002, 16889 }, /* LEA */ -{ op_41fa_0_comp_nf, 0x00000002, 16890 }, /* LEA */ -{ op_41fb_0_comp_nf, 0x00000002, 16891 }, /* LEA */ -{ op_4200_0_comp_nf, 0x00000000, 16896 }, /* CLR */ -{ op_4210_0_comp_nf, 0x00000000, 16912 }, /* CLR */ -{ op_4218_0_comp_nf, 0x00000000, 16920 }, /* CLR */ -{ op_4220_0_comp_nf, 0x00000000, 16928 }, /* CLR */ -{ op_4228_0_comp_nf, 0x00000002, 16936 }, /* CLR */ -{ op_4230_0_comp_nf, 0x00000002, 16944 }, /* CLR */ -{ op_4238_0_comp_nf, 0x00000002, 16952 }, /* CLR */ -{ op_4239_0_comp_nf, 0x00000002, 16953 }, /* CLR */ -{ op_4240_0_comp_nf, 0x00000000, 16960 }, /* CLR */ -{ op_4250_0_comp_nf, 0x00000000, 16976 }, /* CLR */ -{ op_4258_0_comp_nf, 0x00000000, 16984 }, /* CLR */ -{ op_4260_0_comp_nf, 0x00000000, 16992 }, /* CLR */ -{ op_4268_0_comp_nf, 0x00000002, 17000 }, /* CLR */ -{ op_4270_0_comp_nf, 0x00000002, 17008 }, /* CLR */ -{ op_4278_0_comp_nf, 0x00000002, 17016 }, /* CLR */ -{ op_4279_0_comp_nf, 0x00000002, 17017 }, /* CLR */ -{ op_4280_0_comp_nf, 0x00000000, 17024 }, /* CLR */ -{ op_4290_0_comp_nf, 0x00000000, 17040 }, /* CLR */ -{ op_4298_0_comp_nf, 0x00000000, 17048 }, /* CLR */ -{ op_42a0_0_comp_nf, 0x00000000, 17056 }, /* CLR */ -{ op_42a8_0_comp_nf, 0x00000002, 17064 }, /* CLR */ -{ op_42b0_0_comp_nf, 0x00000002, 17072 }, /* CLR */ -{ op_42b8_0_comp_nf, 0x00000002, 17080 }, /* CLR */ -{ op_42b9_0_comp_nf, 0x00000002, 17081 }, /* CLR */ -{ NULL, 0x00000001, 17088 }, /* MVSR2 */ -{ NULL, 0x00000001, 17104 }, /* MVSR2 */ -{ NULL, 0x00000001, 17112 }, /* MVSR2 */ -{ NULL, 0x00000001, 17120 }, /* MVSR2 */ -{ NULL, 0x00000001, 17128 }, /* MVSR2 */ -{ NULL, 0x00000001, 17136 }, /* MVSR2 */ -{ NULL, 0x00000001, 17144 }, /* MVSR2 */ -{ NULL, 0x00000001, 17145 }, /* MVSR2 */ -{ op_4400_0_comp_nf, 0x00000000, 17408 }, /* NEG */ -{ op_4410_0_comp_nf, 0x00000000, 17424 }, /* NEG */ -{ op_4418_0_comp_nf, 0x00000000, 17432 }, /* NEG */ -{ op_4420_0_comp_nf, 0x00000000, 17440 }, /* NEG */ -{ op_4428_0_comp_nf, 0x00000002, 17448 }, /* NEG */ -{ op_4430_0_comp_nf, 0x00000002, 17456 }, /* NEG */ -{ op_4438_0_comp_nf, 0x00000002, 17464 }, /* NEG */ -{ op_4439_0_comp_nf, 0x00000002, 17465 }, /* NEG */ -{ op_4440_0_comp_nf, 0x00000000, 17472 }, /* NEG */ -{ op_4450_0_comp_nf, 0x00000000, 17488 }, /* NEG */ -{ op_4458_0_comp_nf, 0x00000000, 17496 }, /* NEG */ -{ op_4460_0_comp_nf, 0x00000000, 17504 }, /* NEG */ -{ op_4468_0_comp_nf, 0x00000002, 17512 }, /* NEG */ -{ op_4470_0_comp_nf, 0x00000002, 17520 }, /* NEG */ -{ op_4478_0_comp_nf, 0x00000002, 17528 }, /* NEG */ -{ op_4479_0_comp_nf, 0x00000002, 17529 }, /* NEG */ -{ op_4480_0_comp_nf, 0x00000000, 17536 }, /* NEG */ -{ op_4490_0_comp_nf, 0x00000000, 17552 }, /* NEG */ -{ op_4498_0_comp_nf, 0x00000000, 17560 }, /* NEG */ -{ op_44a0_0_comp_nf, 0x00000000, 17568 }, /* NEG */ -{ op_44a8_0_comp_nf, 0x00000002, 17576 }, /* NEG */ -{ op_44b0_0_comp_nf, 0x00000002, 17584 }, /* NEG */ -{ op_44b8_0_comp_nf, 0x00000002, 17592 }, /* NEG */ -{ op_44b9_0_comp_nf, 0x00000002, 17593 }, /* NEG */ -{ NULL, 0x00000001, 17600 }, /* MV2SR */ -{ NULL, 0x00000001, 17616 }, /* MV2SR */ -{ NULL, 0x00000001, 17624 }, /* MV2SR */ -{ NULL, 0x00000001, 17632 }, /* MV2SR */ -{ NULL, 0x00000001, 17640 }, /* MV2SR */ -{ NULL, 0x00000001, 17648 }, /* MV2SR */ -{ NULL, 0x00000001, 17656 }, /* MV2SR */ -{ NULL, 0x00000001, 17657 }, /* MV2SR */ -{ NULL, 0x00000001, 17658 }, /* MV2SR */ -{ NULL, 0x00000001, 17659 }, /* MV2SR */ -{ NULL, 0x00000001, 17660 }, /* MV2SR */ -{ op_4600_0_comp_nf, 0x00000000, 17920 }, /* NOT */ -{ op_4610_0_comp_nf, 0x00000000, 17936 }, /* NOT */ -{ op_4618_0_comp_nf, 0x00000000, 17944 }, /* NOT */ -{ op_4620_0_comp_nf, 0x00000000, 17952 }, /* NOT */ -{ op_4628_0_comp_nf, 0x00000002, 17960 }, /* NOT */ -{ op_4630_0_comp_nf, 0x00000002, 17968 }, /* NOT */ -{ op_4638_0_comp_nf, 0x00000002, 17976 }, /* NOT */ -{ op_4639_0_comp_nf, 0x00000002, 17977 }, /* NOT */ -{ op_4640_0_comp_nf, 0x00000000, 17984 }, /* NOT */ -{ op_4650_0_comp_nf, 0x00000000, 18000 }, /* NOT */ -{ op_4658_0_comp_nf, 0x00000000, 18008 }, /* NOT */ -{ op_4660_0_comp_nf, 0x00000000, 18016 }, /* NOT */ -{ op_4668_0_comp_nf, 0x00000002, 18024 }, /* NOT */ -{ op_4670_0_comp_nf, 0x00000002, 18032 }, /* NOT */ -{ op_4678_0_comp_nf, 0x00000002, 18040 }, /* NOT */ -{ op_4679_0_comp_nf, 0x00000002, 18041 }, /* NOT */ -{ op_4680_0_comp_nf, 0x00000000, 18048 }, /* NOT */ -{ op_4690_0_comp_nf, 0x00000000, 18064 }, /* NOT */ -{ op_4698_0_comp_nf, 0x00000000, 18072 }, /* NOT */ -{ op_46a0_0_comp_nf, 0x00000000, 18080 }, /* NOT */ -{ op_46a8_0_comp_nf, 0x00000002, 18088 }, /* NOT */ -{ op_46b0_0_comp_nf, 0x00000002, 18096 }, /* NOT */ -{ op_46b8_0_comp_nf, 0x00000002, 18104 }, /* NOT */ -{ op_46b9_0_comp_nf, 0x00000002, 18105 }, /* NOT */ -{ NULL, 0x00000001, 18112 }, /* MV2SR */ -{ NULL, 0x00000001, 18128 }, /* MV2SR */ -{ NULL, 0x00000001, 18136 }, /* MV2SR */ -{ NULL, 0x00000001, 18144 }, /* MV2SR */ -{ NULL, 0x00000001, 18152 }, /* MV2SR */ -{ NULL, 0x00000001, 18160 }, /* MV2SR */ -{ NULL, 0x00000001, 18168 }, /* MV2SR */ -{ NULL, 0x00000001, 18169 }, /* MV2SR */ -{ NULL, 0x00000001, 18170 }, /* MV2SR */ -{ NULL, 0x00000001, 18171 }, /* MV2SR */ -{ NULL, 0x00000001, 18172 }, /* MV2SR */ -{ NULL, 0x00000000, 18432 }, /* NBCD */ -{ op_4808_0_comp_nf, 0x00000002, 18440 }, /* LINK */ -{ NULL, 0x00000000, 18448 }, /* NBCD */ -{ NULL, 0x00000000, 18456 }, /* NBCD */ -{ NULL, 0x00000000, 18464 }, /* NBCD */ -{ NULL, 0x00000000, 18472 }, /* NBCD */ -{ NULL, 0x00000000, 18480 }, /* NBCD */ -{ NULL, 0x00000000, 18488 }, /* NBCD */ -{ NULL, 0x00000000, 18489 }, /* NBCD */ -{ op_4840_0_comp_nf, 0x00000000, 18496 }, /* SWAP */ -{ NULL, 0x00000001, 18504 }, /* BKPT */ -{ op_4850_0_comp_nf, 0x00000000, 18512 }, /* PEA */ -{ op_4868_0_comp_nf, 0x00000002, 18536 }, /* PEA */ -{ op_4870_0_comp_nf, 0x00000002, 18544 }, /* PEA */ -{ op_4878_0_comp_nf, 0x00000002, 18552 }, /* PEA */ -{ op_4879_0_comp_nf, 0x00000002, 18553 }, /* PEA */ -{ op_487a_0_comp_nf, 0x00000002, 18554 }, /* PEA */ -{ op_487b_0_comp_nf, 0x00000002, 18555 }, /* PEA */ -{ op_4880_0_comp_nf, 0x00000000, 18560 }, /* EXT */ -{ op_4890_0_comp_nf, 0x00000002, 18576 }, /* MVMLE */ -{ op_48a0_0_comp_nf, 0x00000002, 18592 }, /* MVMLE */ -{ op_48a8_0_comp_nf, 0x00000002, 18600 }, /* MVMLE */ -{ op_48b0_0_comp_nf, 0x00000002, 18608 }, /* MVMLE */ -{ op_48b8_0_comp_nf, 0x00000002, 18616 }, /* MVMLE */ -{ op_48b9_0_comp_nf, 0x00000002, 18617 }, /* MVMLE */ -{ op_48c0_0_comp_nf, 0x00000000, 18624 }, /* EXT */ -{ op_48d0_0_comp_nf, 0x00000002, 18640 }, /* MVMLE */ -{ op_48e0_0_comp_nf, 0x00000002, 18656 }, /* MVMLE */ -{ op_48e8_0_comp_nf, 0x00000002, 18664 }, /* MVMLE */ -{ op_48f0_0_comp_nf, 0x00000002, 18672 }, /* MVMLE */ -{ op_48f8_0_comp_nf, 0x00000002, 18680 }, /* MVMLE */ -{ op_48f9_0_comp_nf, 0x00000002, 18681 }, /* MVMLE */ -{ op_49c0_0_comp_nf, 0x00000000, 18880 }, /* EXT */ -{ op_4a00_0_comp_nf, 0x00000000, 18944 }, /* TST */ -{ op_4a10_0_comp_nf, 0x00000000, 18960 }, /* TST */ -{ op_4a18_0_comp_nf, 0x00000000, 18968 }, /* TST */ -{ op_4a20_0_comp_nf, 0x00000000, 18976 }, /* TST */ -{ op_4a28_0_comp_nf, 0x00000002, 18984 }, /* TST */ -{ op_4a30_0_comp_nf, 0x00000002, 18992 }, /* TST */ -{ op_4a38_0_comp_nf, 0x00000002, 19000 }, /* TST */ -{ op_4a39_0_comp_nf, 0x00000002, 19001 }, /* TST */ -{ op_4a3a_0_comp_nf, 0x00000002, 19002 }, /* TST */ -{ op_4a3b_0_comp_nf, 0x00000002, 19003 }, /* TST */ -{ op_4a3c_0_comp_nf, 0x00000002, 19004 }, /* TST */ -{ op_4a40_0_comp_nf, 0x00000000, 19008 }, /* TST */ -{ op_4a48_0_comp_nf, 0x00000000, 19016 }, /* TST */ -{ op_4a50_0_comp_nf, 0x00000000, 19024 }, /* TST */ -{ op_4a58_0_comp_nf, 0x00000000, 19032 }, /* TST */ -{ op_4a60_0_comp_nf, 0x00000000, 19040 }, /* TST */ -{ op_4a68_0_comp_nf, 0x00000002, 19048 }, /* TST */ -{ op_4a70_0_comp_nf, 0x00000002, 19056 }, /* TST */ -{ op_4a78_0_comp_nf, 0x00000002, 19064 }, /* TST */ -{ op_4a79_0_comp_nf, 0x00000002, 19065 }, /* TST */ -{ op_4a7a_0_comp_nf, 0x00000002, 19066 }, /* TST */ -{ op_4a7b_0_comp_nf, 0x00000002, 19067 }, /* TST */ -{ op_4a7c_0_comp_nf, 0x00000002, 19068 }, /* TST */ -{ op_4a80_0_comp_nf, 0x00000000, 19072 }, /* TST */ -{ op_4a88_0_comp_nf, 0x00000000, 19080 }, /* TST */ -{ op_4a90_0_comp_nf, 0x00000000, 19088 }, /* TST */ -{ op_4a98_0_comp_nf, 0x00000000, 19096 }, /* TST */ -{ op_4aa0_0_comp_nf, 0x00000000, 19104 }, /* TST */ -{ op_4aa8_0_comp_nf, 0x00000002, 19112 }, /* TST */ -{ op_4ab0_0_comp_nf, 0x00000002, 19120 }, /* TST */ -{ op_4ab8_0_comp_nf, 0x00000002, 19128 }, /* TST */ -{ op_4ab9_0_comp_nf, 0x00000002, 19129 }, /* TST */ -{ op_4aba_0_comp_nf, 0x00000002, 19130 }, /* TST */ -{ op_4abb_0_comp_nf, 0x00000002, 19131 }, /* TST */ -{ op_4abc_0_comp_nf, 0x00000002, 19132 }, /* TST */ -{ NULL, 0x00000000, 19136 }, /* TAS */ -{ NULL, 0x00000000, 19152 }, /* TAS */ -{ NULL, 0x00000000, 19160 }, /* TAS */ -{ NULL, 0x00000000, 19168 }, /* TAS */ -{ NULL, 0x00000000, 19176 }, /* TAS */ -{ NULL, 0x00000000, 19184 }, /* TAS */ -{ NULL, 0x00000000, 19192 }, /* TAS */ -{ NULL, 0x00000000, 19193 }, /* TAS */ -{ op_4c00_0_comp_nf, 0x00000002, 19456 }, /* MULL */ -{ op_4c10_0_comp_nf, 0x00000002, 19472 }, /* MULL */ -{ op_4c18_0_comp_nf, 0x00000002, 19480 }, /* MULL */ -{ op_4c20_0_comp_nf, 0x00000002, 19488 }, /* MULL */ -{ op_4c28_0_comp_nf, 0x00000002, 19496 }, /* MULL */ -{ op_4c30_0_comp_nf, 0x00000002, 19504 }, /* MULL */ -{ op_4c38_0_comp_nf, 0x00000002, 19512 }, /* MULL */ -{ op_4c39_0_comp_nf, 0x00000002, 19513 }, /* MULL */ -{ op_4c3a_0_comp_nf, 0x00000002, 19514 }, /* MULL */ -{ op_4c3b_0_comp_nf, 0x00000002, 19515 }, /* MULL */ -{ op_4c3c_0_comp_nf, 0x00000002, 19516 }, /* MULL */ -{ NULL, 0x00000001, 19520 }, /* DIVL */ -{ NULL, 0x00000001, 19536 }, /* DIVL */ -{ NULL, 0x00000001, 19544 }, /* DIVL */ -{ NULL, 0x00000001, 19552 }, /* DIVL */ -{ NULL, 0x00000001, 19560 }, /* DIVL */ -{ NULL, 0x00000001, 19568 }, /* DIVL */ -{ NULL, 0x00000001, 19576 }, /* DIVL */ -{ NULL, 0x00000001, 19577 }, /* DIVL */ -{ NULL, 0x00000001, 19578 }, /* DIVL */ -{ NULL, 0x00000001, 19579 }, /* DIVL */ -{ NULL, 0x00000001, 19580 }, /* DIVL */ -{ op_4c90_0_comp_nf, 0x00000002, 19600 }, /* MVMEL */ -{ op_4c98_0_comp_nf, 0x00000002, 19608 }, /* MVMEL */ -{ op_4ca8_0_comp_nf, 0x00000002, 19624 }, /* MVMEL */ -{ op_4cb0_0_comp_nf, 0x00000002, 19632 }, /* MVMEL */ -{ op_4cb8_0_comp_nf, 0x00000002, 19640 }, /* MVMEL */ -{ op_4cb9_0_comp_nf, 0x00000002, 19641 }, /* MVMEL */ -{ op_4cba_0_comp_nf, 0x00000002, 19642 }, /* MVMEL */ -{ op_4cbb_0_comp_nf, 0x00000002, 19643 }, /* MVMEL */ -{ op_4cd0_0_comp_nf, 0x00000002, 19664 }, /* MVMEL */ -{ op_4cd8_0_comp_nf, 0x00000002, 19672 }, /* MVMEL */ -{ op_4ce8_0_comp_nf, 0x00000002, 19688 }, /* MVMEL */ -{ op_4cf0_0_comp_nf, 0x00000002, 19696 }, /* MVMEL */ -{ op_4cf8_0_comp_nf, 0x00000002, 19704 }, /* MVMEL */ -{ op_4cf9_0_comp_nf, 0x00000002, 19705 }, /* MVMEL */ -{ op_4cfa_0_comp_nf, 0x00000002, 19706 }, /* MVMEL */ -{ op_4cfb_0_comp_nf, 0x00000002, 19707 }, /* MVMEL */ -{ NULL, 0x00000001, 20032 }, /* TRAP */ -{ op_4e50_0_comp_nf, 0x00000002, 20048 }, /* LINK */ -{ op_4e58_0_comp_nf, 0x00000000, 20056 }, /* UNLK */ -{ NULL, 0x00000001, 20064 }, /* MVR2USP */ -{ NULL, 0x00000001, 20072 }, /* MVUSP2R */ -{ NULL, 0x00000001, 20080 }, /* RESET */ -{ op_4e71_0_comp_nf, 0x00000000, 20081 }, /* NOP */ -{ NULL, 0x00000001, 20082 }, /* STOP */ -{ NULL, 0x00000001, 20083 }, /* RTE */ -{ op_4e74_0_comp_nf, 0x00000003, 20084 }, /* RTD */ -{ op_4e75_0_comp_nf, 0x00000001, 20085 }, /* RTS */ -{ NULL, 0x00000001, 20086 }, /* TRAPV */ -{ NULL, 0x00000001, 20087 }, /* RTR */ -{ NULL, 0x00000001, 20090 }, /* MOVEC2 */ -{ NULL, 0x00000001, 20091 }, /* MOVE2C */ -{ op_4e90_0_comp_nf, 0x00000001, 20112 }, /* JSR */ -{ op_4ea8_0_comp_nf, 0x00000003, 20136 }, /* JSR */ -{ op_4eb0_0_comp_nf, 0x00000003, 20144 }, /* JSR */ -{ op_4eb8_0_comp_nf, 0x00000003, 20152 }, /* JSR */ -{ op_4eb9_0_comp_nf, 0x00000003, 20153 }, /* JSR */ -{ op_4eba_0_comp_nf, 0x00000003, 20154 }, /* JSR */ -{ op_4ebb_0_comp_nf, 0x00000003, 20155 }, /* JSR */ -{ op_4ed0_0_comp_nf, 0x00000001, 20176 }, /* JMP */ -{ op_4ee8_0_comp_nf, 0x00000003, 20200 }, /* JMP */ -{ op_4ef0_0_comp_nf, 0x00000003, 20208 }, /* JMP */ -{ op_4ef8_0_comp_nf, 0x00000003, 20216 }, /* JMP */ -{ op_4ef9_0_comp_nf, 0x00000003, 20217 }, /* JMP */ -{ op_4efa_0_comp_nf, 0x00000003, 20218 }, /* JMP */ -{ op_4efb_0_comp_nf, 0x00000003, 20219 }, /* JMP */ -{ op_5000_0_comp_nf, 0x00000000, 20480 }, /* ADD */ -{ op_5010_0_comp_nf, 0x00000000, 20496 }, /* ADD */ -{ op_5018_0_comp_nf, 0x00000000, 20504 }, /* ADD */ -{ op_5020_0_comp_nf, 0x00000000, 20512 }, /* ADD */ -{ op_5028_0_comp_nf, 0x00000002, 20520 }, /* ADD */ -{ op_5030_0_comp_nf, 0x00000002, 20528 }, /* ADD */ -{ op_5038_0_comp_nf, 0x00000002, 20536 }, /* ADD */ -{ op_5039_0_comp_nf, 0x00000002, 20537 }, /* ADD */ -{ op_5040_0_comp_nf, 0x00000000, 20544 }, /* ADD */ -{ op_5048_0_comp_nf, 0x00000000, 20552 }, /* ADDA */ -{ op_5050_0_comp_nf, 0x00000000, 20560 }, /* ADD */ -{ op_5058_0_comp_nf, 0x00000000, 20568 }, /* ADD */ -{ op_5060_0_comp_nf, 0x00000000, 20576 }, /* ADD */ -{ op_5068_0_comp_nf, 0x00000002, 20584 }, /* ADD */ -{ op_5070_0_comp_nf, 0x00000002, 20592 }, /* ADD */ -{ op_5078_0_comp_nf, 0x00000002, 20600 }, /* ADD */ -{ op_5079_0_comp_nf, 0x00000002, 20601 }, /* ADD */ -{ op_5080_0_comp_nf, 0x00000000, 20608 }, /* ADD */ -{ op_5088_0_comp_nf, 0x00000000, 20616 }, /* ADDA */ -{ op_5090_0_comp_nf, 0x00000000, 20624 }, /* ADD */ -{ op_5098_0_comp_nf, 0x00000000, 20632 }, /* ADD */ -{ op_50a0_0_comp_nf, 0x00000000, 20640 }, /* ADD */ -{ op_50a8_0_comp_nf, 0x00000002, 20648 }, /* ADD */ -{ op_50b0_0_comp_nf, 0x00000002, 20656 }, /* ADD */ -{ op_50b8_0_comp_nf, 0x00000002, 20664 }, /* ADD */ -{ op_50b9_0_comp_nf, 0x00000002, 20665 }, /* ADD */ -{ op_50c0_0_comp_nf, 0x00000000, 20672 }, /* Scc */ -{ op_50c8_0_comp_nf, 0x00000003, 20680 }, /* DBcc */ -{ op_50d0_0_comp_nf, 0x00000000, 20688 }, /* Scc */ -{ op_50d8_0_comp_nf, 0x00000000, 20696 }, /* Scc */ -{ op_50e0_0_comp_nf, 0x00000000, 20704 }, /* Scc */ -{ op_50e8_0_comp_nf, 0x00000002, 20712 }, /* Scc */ -{ op_50f0_0_comp_nf, 0x00000002, 20720 }, /* Scc */ -{ op_50f8_0_comp_nf, 0x00000002, 20728 }, /* Scc */ -{ op_50f9_0_comp_nf, 0x00000002, 20729 }, /* Scc */ -{ NULL, 0x00000001, 20730 }, /* TRAPcc */ -{ NULL, 0x00000001, 20731 }, /* TRAPcc */ -{ NULL, 0x00000001, 20732 }, /* TRAPcc */ -{ op_5100_0_comp_nf, 0x00000000, 20736 }, /* SUB */ -{ op_5110_0_comp_nf, 0x00000000, 20752 }, /* SUB */ -{ op_5118_0_comp_nf, 0x00000000, 20760 }, /* SUB */ -{ op_5120_0_comp_nf, 0x00000000, 20768 }, /* SUB */ -{ op_5128_0_comp_nf, 0x00000002, 20776 }, /* SUB */ -{ op_5130_0_comp_nf, 0x00000002, 20784 }, /* SUB */ -{ op_5138_0_comp_nf, 0x00000002, 20792 }, /* SUB */ -{ op_5139_0_comp_nf, 0x00000002, 20793 }, /* SUB */ -{ op_5140_0_comp_nf, 0x00000000, 20800 }, /* SUB */ -{ op_5148_0_comp_nf, 0x00000000, 20808 }, /* SUBA */ -{ op_5150_0_comp_nf, 0x00000000, 20816 }, /* SUB */ -{ op_5158_0_comp_nf, 0x00000000, 20824 }, /* SUB */ -{ op_5160_0_comp_nf, 0x00000000, 20832 }, /* SUB */ -{ op_5168_0_comp_nf, 0x00000002, 20840 }, /* SUB */ -{ op_5170_0_comp_nf, 0x00000002, 20848 }, /* SUB */ -{ op_5178_0_comp_nf, 0x00000002, 20856 }, /* SUB */ -{ op_5179_0_comp_nf, 0x00000002, 20857 }, /* SUB */ -{ op_5180_0_comp_nf, 0x00000000, 20864 }, /* SUB */ -{ op_5188_0_comp_nf, 0x00000000, 20872 }, /* SUBA */ -{ op_5190_0_comp_nf, 0x00000000, 20880 }, /* SUB */ -{ op_5198_0_comp_nf, 0x00000000, 20888 }, /* SUB */ -{ op_51a0_0_comp_nf, 0x00000000, 20896 }, /* SUB */ -{ op_51a8_0_comp_nf, 0x00000002, 20904 }, /* SUB */ -{ op_51b0_0_comp_nf, 0x00000002, 20912 }, /* SUB */ -{ op_51b8_0_comp_nf, 0x00000002, 20920 }, /* SUB */ -{ op_51b9_0_comp_nf, 0x00000002, 20921 }, /* SUB */ -{ op_51c0_0_comp_nf, 0x00000000, 20928 }, /* Scc */ -{ op_51c8_0_comp_nf, 0x00000003, 20936 }, /* DBcc */ -{ op_51d0_0_comp_nf, 0x00000000, 20944 }, /* Scc */ -{ op_51d8_0_comp_nf, 0x00000000, 20952 }, /* Scc */ -{ op_51e0_0_comp_nf, 0x00000000, 20960 }, /* Scc */ -{ op_51e8_0_comp_nf, 0x00000002, 20968 }, /* Scc */ -{ op_51f0_0_comp_nf, 0x00000002, 20976 }, /* Scc */ -{ op_51f8_0_comp_nf, 0x00000002, 20984 }, /* Scc */ -{ op_51f9_0_comp_nf, 0x00000002, 20985 }, /* Scc */ -{ NULL, 0x00000001, 20986 }, /* TRAPcc */ -{ NULL, 0x00000001, 20987 }, /* TRAPcc */ -{ NULL, 0x00000001, 20988 }, /* TRAPcc */ -{ op_52c0_0_comp_nf, 0x00000000, 21184 }, /* Scc */ -{ op_52c8_0_comp_nf, 0x00000003, 21192 }, /* DBcc */ -{ op_52d0_0_comp_nf, 0x00000000, 21200 }, /* Scc */ -{ op_52d8_0_comp_nf, 0x00000000, 21208 }, /* Scc */ -{ op_52e0_0_comp_nf, 0x00000000, 21216 }, /* Scc */ -{ op_52e8_0_comp_nf, 0x00000002, 21224 }, /* Scc */ -{ op_52f0_0_comp_nf, 0x00000002, 21232 }, /* Scc */ -{ op_52f8_0_comp_nf, 0x00000002, 21240 }, /* Scc */ -{ op_52f9_0_comp_nf, 0x00000002, 21241 }, /* Scc */ -{ NULL, 0x00000001, 21242 }, /* TRAPcc */ -{ NULL, 0x00000001, 21243 }, /* TRAPcc */ -{ NULL, 0x00000001, 21244 }, /* TRAPcc */ -{ op_53c0_0_comp_nf, 0x00000000, 21440 }, /* Scc */ -{ op_53c8_0_comp_nf, 0x00000003, 21448 }, /* DBcc */ -{ op_53d0_0_comp_nf, 0x00000000, 21456 }, /* Scc */ -{ op_53d8_0_comp_nf, 0x00000000, 21464 }, /* Scc */ -{ op_53e0_0_comp_nf, 0x00000000, 21472 }, /* Scc */ -{ op_53e8_0_comp_nf, 0x00000002, 21480 }, /* Scc */ -{ op_53f0_0_comp_nf, 0x00000002, 21488 }, /* Scc */ -{ op_53f8_0_comp_nf, 0x00000002, 21496 }, /* Scc */ -{ op_53f9_0_comp_nf, 0x00000002, 21497 }, /* Scc */ -{ NULL, 0x00000001, 21498 }, /* TRAPcc */ -{ NULL, 0x00000001, 21499 }, /* TRAPcc */ -{ NULL, 0x00000001, 21500 }, /* TRAPcc */ -{ op_54c0_0_comp_nf, 0x00000000, 21696 }, /* Scc */ -{ op_54c8_0_comp_nf, 0x00000003, 21704 }, /* DBcc */ -{ op_54d0_0_comp_nf, 0x00000000, 21712 }, /* Scc */ -{ op_54d8_0_comp_nf, 0x00000000, 21720 }, /* Scc */ -{ op_54e0_0_comp_nf, 0x00000000, 21728 }, /* Scc */ -{ op_54e8_0_comp_nf, 0x00000002, 21736 }, /* Scc */ -{ op_54f0_0_comp_nf, 0x00000002, 21744 }, /* Scc */ -{ op_54f8_0_comp_nf, 0x00000002, 21752 }, /* Scc */ -{ op_54f9_0_comp_nf, 0x00000002, 21753 }, /* Scc */ -{ NULL, 0x00000001, 21754 }, /* TRAPcc */ -{ NULL, 0x00000001, 21755 }, /* TRAPcc */ -{ NULL, 0x00000001, 21756 }, /* TRAPcc */ -{ op_55c0_0_comp_nf, 0x00000000, 21952 }, /* Scc */ -{ op_55c8_0_comp_nf, 0x00000003, 21960 }, /* DBcc */ -{ op_55d0_0_comp_nf, 0x00000000, 21968 }, /* Scc */ -{ op_55d8_0_comp_nf, 0x00000000, 21976 }, /* Scc */ -{ op_55e0_0_comp_nf, 0x00000000, 21984 }, /* Scc */ -{ op_55e8_0_comp_nf, 0x00000002, 21992 }, /* Scc */ -{ op_55f0_0_comp_nf, 0x00000002, 22000 }, /* Scc */ -{ op_55f8_0_comp_nf, 0x00000002, 22008 }, /* Scc */ -{ op_55f9_0_comp_nf, 0x00000002, 22009 }, /* Scc */ -{ NULL, 0x00000001, 22010 }, /* TRAPcc */ -{ NULL, 0x00000001, 22011 }, /* TRAPcc */ -{ NULL, 0x00000001, 22012 }, /* TRAPcc */ -{ op_56c0_0_comp_nf, 0x00000000, 22208 }, /* Scc */ -{ op_56c8_0_comp_nf, 0x00000003, 22216 }, /* DBcc */ -{ op_56d0_0_comp_nf, 0x00000000, 22224 }, /* Scc */ -{ op_56d8_0_comp_nf, 0x00000000, 22232 }, /* Scc */ -{ op_56e0_0_comp_nf, 0x00000000, 22240 }, /* Scc */ -{ op_56e8_0_comp_nf, 0x00000002, 22248 }, /* Scc */ -{ op_56f0_0_comp_nf, 0x00000002, 22256 }, /* Scc */ -{ op_56f8_0_comp_nf, 0x00000002, 22264 }, /* Scc */ -{ op_56f9_0_comp_nf, 0x00000002, 22265 }, /* Scc */ -{ NULL, 0x00000001, 22266 }, /* TRAPcc */ -{ NULL, 0x00000001, 22267 }, /* TRAPcc */ -{ NULL, 0x00000001, 22268 }, /* TRAPcc */ -{ op_57c0_0_comp_nf, 0x00000000, 22464 }, /* Scc */ -{ op_57c8_0_comp_nf, 0x00000003, 22472 }, /* DBcc */ -{ op_57d0_0_comp_nf, 0x00000000, 22480 }, /* Scc */ -{ op_57d8_0_comp_nf, 0x00000000, 22488 }, /* Scc */ -{ op_57e0_0_comp_nf, 0x00000000, 22496 }, /* Scc */ -{ op_57e8_0_comp_nf, 0x00000002, 22504 }, /* Scc */ -{ op_57f0_0_comp_nf, 0x00000002, 22512 }, /* Scc */ -{ op_57f8_0_comp_nf, 0x00000002, 22520 }, /* Scc */ -{ op_57f9_0_comp_nf, 0x00000002, 22521 }, /* Scc */ -{ NULL, 0x00000001, 22522 }, /* TRAPcc */ -{ NULL, 0x00000001, 22523 }, /* TRAPcc */ -{ NULL, 0x00000001, 22524 }, /* TRAPcc */ -{ op_58c0_0_comp_nf, 0x00000000, 22720 }, /* Scc */ -{ op_58c8_0_comp_nf, 0x00000003, 22728 }, /* DBcc */ -{ op_58d0_0_comp_nf, 0x00000000, 22736 }, /* Scc */ -{ op_58d8_0_comp_nf, 0x00000000, 22744 }, /* Scc */ -{ op_58e0_0_comp_nf, 0x00000000, 22752 }, /* Scc */ -{ op_58e8_0_comp_nf, 0x00000002, 22760 }, /* Scc */ -{ op_58f0_0_comp_nf, 0x00000002, 22768 }, /* Scc */ -{ op_58f8_0_comp_nf, 0x00000002, 22776 }, /* Scc */ -{ op_58f9_0_comp_nf, 0x00000002, 22777 }, /* Scc */ -{ NULL, 0x00000001, 22778 }, /* TRAPcc */ -{ NULL, 0x00000001, 22779 }, /* TRAPcc */ -{ NULL, 0x00000001, 22780 }, /* TRAPcc */ -{ op_59c0_0_comp_nf, 0x00000000, 22976 }, /* Scc */ -{ op_59c8_0_comp_nf, 0x00000003, 22984 }, /* DBcc */ -{ op_59d0_0_comp_nf, 0x00000000, 22992 }, /* Scc */ -{ op_59d8_0_comp_nf, 0x00000000, 23000 }, /* Scc */ -{ op_59e0_0_comp_nf, 0x00000000, 23008 }, /* Scc */ -{ op_59e8_0_comp_nf, 0x00000002, 23016 }, /* Scc */ -{ op_59f0_0_comp_nf, 0x00000002, 23024 }, /* Scc */ -{ op_59f8_0_comp_nf, 0x00000002, 23032 }, /* Scc */ -{ op_59f9_0_comp_nf, 0x00000002, 23033 }, /* Scc */ -{ NULL, 0x00000001, 23034 }, /* TRAPcc */ -{ NULL, 0x00000001, 23035 }, /* TRAPcc */ -{ NULL, 0x00000001, 23036 }, /* TRAPcc */ -{ op_5ac0_0_comp_nf, 0x00000000, 23232 }, /* Scc */ -{ op_5ac8_0_comp_nf, 0x00000003, 23240 }, /* DBcc */ -{ op_5ad0_0_comp_nf, 0x00000000, 23248 }, /* Scc */ -{ op_5ad8_0_comp_nf, 0x00000000, 23256 }, /* Scc */ -{ op_5ae0_0_comp_nf, 0x00000000, 23264 }, /* Scc */ -{ op_5ae8_0_comp_nf, 0x00000002, 23272 }, /* Scc */ -{ op_5af0_0_comp_nf, 0x00000002, 23280 }, /* Scc */ -{ op_5af8_0_comp_nf, 0x00000002, 23288 }, /* Scc */ -{ op_5af9_0_comp_nf, 0x00000002, 23289 }, /* Scc */ -{ NULL, 0x00000001, 23290 }, /* TRAPcc */ -{ NULL, 0x00000001, 23291 }, /* TRAPcc */ -{ NULL, 0x00000001, 23292 }, /* TRAPcc */ -{ op_5bc0_0_comp_nf, 0x00000000, 23488 }, /* Scc */ -{ op_5bc8_0_comp_nf, 0x00000003, 23496 }, /* DBcc */ -{ op_5bd0_0_comp_nf, 0x00000000, 23504 }, /* Scc */ -{ op_5bd8_0_comp_nf, 0x00000000, 23512 }, /* Scc */ -{ op_5be0_0_comp_nf, 0x00000000, 23520 }, /* Scc */ -{ op_5be8_0_comp_nf, 0x00000002, 23528 }, /* Scc */ -{ op_5bf0_0_comp_nf, 0x00000002, 23536 }, /* Scc */ -{ op_5bf8_0_comp_nf, 0x00000002, 23544 }, /* Scc */ -{ op_5bf9_0_comp_nf, 0x00000002, 23545 }, /* Scc */ -{ NULL, 0x00000001, 23546 }, /* TRAPcc */ -{ NULL, 0x00000001, 23547 }, /* TRAPcc */ -{ NULL, 0x00000001, 23548 }, /* TRAPcc */ -{ op_5cc0_0_comp_nf, 0x00000000, 23744 }, /* Scc */ -{ op_5cc8_0_comp_nf, 0x00000003, 23752 }, /* DBcc */ -{ op_5cd0_0_comp_nf, 0x00000000, 23760 }, /* Scc */ -{ op_5cd8_0_comp_nf, 0x00000000, 23768 }, /* Scc */ -{ op_5ce0_0_comp_nf, 0x00000000, 23776 }, /* Scc */ -{ op_5ce8_0_comp_nf, 0x00000002, 23784 }, /* Scc */ -{ op_5cf0_0_comp_nf, 0x00000002, 23792 }, /* Scc */ -{ op_5cf8_0_comp_nf, 0x00000002, 23800 }, /* Scc */ -{ op_5cf9_0_comp_nf, 0x00000002, 23801 }, /* Scc */ -{ NULL, 0x00000001, 23802 }, /* TRAPcc */ -{ NULL, 0x00000001, 23803 }, /* TRAPcc */ -{ NULL, 0x00000001, 23804 }, /* TRAPcc */ -{ op_5dc0_0_comp_nf, 0x00000000, 24000 }, /* Scc */ -{ op_5dc8_0_comp_nf, 0x00000003, 24008 }, /* DBcc */ -{ op_5dd0_0_comp_nf, 0x00000000, 24016 }, /* Scc */ -{ op_5dd8_0_comp_nf, 0x00000000, 24024 }, /* Scc */ -{ op_5de0_0_comp_nf, 0x00000000, 24032 }, /* Scc */ -{ op_5de8_0_comp_nf, 0x00000002, 24040 }, /* Scc */ -{ op_5df0_0_comp_nf, 0x00000002, 24048 }, /* Scc */ -{ op_5df8_0_comp_nf, 0x00000002, 24056 }, /* Scc */ -{ op_5df9_0_comp_nf, 0x00000002, 24057 }, /* Scc */ -{ NULL, 0x00000001, 24058 }, /* TRAPcc */ -{ NULL, 0x00000001, 24059 }, /* TRAPcc */ -{ NULL, 0x00000001, 24060 }, /* TRAPcc */ -{ op_5ec0_0_comp_nf, 0x00000000, 24256 }, /* Scc */ -{ op_5ec8_0_comp_nf, 0x00000003, 24264 }, /* DBcc */ -{ op_5ed0_0_comp_nf, 0x00000000, 24272 }, /* Scc */ -{ op_5ed8_0_comp_nf, 0x00000000, 24280 }, /* Scc */ -{ op_5ee0_0_comp_nf, 0x00000000, 24288 }, /* Scc */ -{ op_5ee8_0_comp_nf, 0x00000002, 24296 }, /* Scc */ -{ op_5ef0_0_comp_nf, 0x00000002, 24304 }, /* Scc */ -{ op_5ef8_0_comp_nf, 0x00000002, 24312 }, /* Scc */ -{ op_5ef9_0_comp_nf, 0x00000002, 24313 }, /* Scc */ -{ NULL, 0x00000001, 24314 }, /* TRAPcc */ -{ NULL, 0x00000001, 24315 }, /* TRAPcc */ -{ NULL, 0x00000001, 24316 }, /* TRAPcc */ -{ op_5fc0_0_comp_nf, 0x00000000, 24512 }, /* Scc */ -{ op_5fc8_0_comp_nf, 0x00000003, 24520 }, /* DBcc */ -{ op_5fd0_0_comp_nf, 0x00000000, 24528 }, /* Scc */ -{ op_5fd8_0_comp_nf, 0x00000000, 24536 }, /* Scc */ -{ op_5fe0_0_comp_nf, 0x00000000, 24544 }, /* Scc */ -{ op_5fe8_0_comp_nf, 0x00000002, 24552 }, /* Scc */ -{ op_5ff0_0_comp_nf, 0x00000002, 24560 }, /* Scc */ -{ op_5ff8_0_comp_nf, 0x00000002, 24568 }, /* Scc */ -{ op_5ff9_0_comp_nf, 0x00000002, 24569 }, /* Scc */ -{ NULL, 0x00000001, 24570 }, /* TRAPcc */ -{ NULL, 0x00000001, 24571 }, /* TRAPcc */ -{ NULL, 0x00000001, 24572 }, /* TRAPcc */ -{ op_6000_0_comp_nf, 0x00000012, 24576 }, /* Bcc */ -{ op_6001_0_comp_nf, 0x00000010, 24577 }, /* Bcc */ -{ op_60ff_0_comp_nf, 0x00000012, 24831 }, /* Bcc */ -{ op_6100_0_comp_nf, 0x00000012, 24832 }, /* BSR */ -{ op_6101_0_comp_nf, 0x00000010, 24833 }, /* BSR */ -{ op_61ff_0_comp_nf, 0x00000012, 25087 }, /* BSR */ -{ op_6200_0_comp_nf, 0x00000003, 25088 }, /* Bcc */ -{ op_6201_0_comp_nf, 0x00000001, 25089 }, /* Bcc */ -{ op_62ff_0_comp_nf, 0x00000003, 25343 }, /* Bcc */ -{ op_6300_0_comp_nf, 0x00000003, 25344 }, /* Bcc */ -{ op_6301_0_comp_nf, 0x00000001, 25345 }, /* Bcc */ -{ op_63ff_0_comp_nf, 0x00000003, 25599 }, /* Bcc */ -{ op_6400_0_comp_nf, 0x00000003, 25600 }, /* Bcc */ -{ op_6401_0_comp_nf, 0x00000001, 25601 }, /* Bcc */ -{ op_64ff_0_comp_nf, 0x00000003, 25855 }, /* Bcc */ -{ op_6500_0_comp_nf, 0x00000003, 25856 }, /* Bcc */ -{ op_6501_0_comp_nf, 0x00000001, 25857 }, /* Bcc */ -{ op_65ff_0_comp_nf, 0x00000003, 26111 }, /* Bcc */ -{ op_6600_0_comp_nf, 0x00000003, 26112 }, /* Bcc */ -{ op_6601_0_comp_nf, 0x00000001, 26113 }, /* Bcc */ -{ op_66ff_0_comp_nf, 0x00000003, 26367 }, /* Bcc */ -{ op_6700_0_comp_nf, 0x00000003, 26368 }, /* Bcc */ -{ op_6701_0_comp_nf, 0x00000001, 26369 }, /* Bcc */ -{ op_67ff_0_comp_nf, 0x00000003, 26623 }, /* Bcc */ -{ NULL, 0x00000003, 26624 }, /* Bcc */ -{ NULL, 0x00000001, 26625 }, /* Bcc */ -{ NULL, 0x00000003, 26879 }, /* Bcc */ -{ NULL, 0x00000003, 26880 }, /* Bcc */ -{ NULL, 0x00000001, 26881 }, /* Bcc */ -{ NULL, 0x00000003, 27135 }, /* Bcc */ -{ op_6a00_0_comp_nf, 0x00000003, 27136 }, /* Bcc */ -{ op_6a01_0_comp_nf, 0x00000001, 27137 }, /* Bcc */ -{ op_6aff_0_comp_nf, 0x00000003, 27391 }, /* Bcc */ -{ op_6b00_0_comp_nf, 0x00000003, 27392 }, /* Bcc */ -{ op_6b01_0_comp_nf, 0x00000001, 27393 }, /* Bcc */ -{ op_6bff_0_comp_nf, 0x00000003, 27647 }, /* Bcc */ -{ op_6c00_0_comp_nf, 0x00000003, 27648 }, /* Bcc */ -{ op_6c01_0_comp_nf, 0x00000001, 27649 }, /* Bcc */ -{ op_6cff_0_comp_nf, 0x00000003, 27903 }, /* Bcc */ -{ op_6d00_0_comp_nf, 0x00000003, 27904 }, /* Bcc */ -{ op_6d01_0_comp_nf, 0x00000001, 27905 }, /* Bcc */ -{ op_6dff_0_comp_nf, 0x00000003, 28159 }, /* Bcc */ -{ op_6e00_0_comp_nf, 0x00000003, 28160 }, /* Bcc */ -{ op_6e01_0_comp_nf, 0x00000001, 28161 }, /* Bcc */ -{ op_6eff_0_comp_nf, 0x00000003, 28415 }, /* Bcc */ -{ op_6f00_0_comp_nf, 0x00000003, 28416 }, /* Bcc */ -{ op_6f01_0_comp_nf, 0x00000001, 28417 }, /* Bcc */ -{ op_6fff_0_comp_nf, 0x00000003, 28671 }, /* Bcc */ -{ op_7000_0_comp_nf, 0x00000000, 28672 }, /* MOVE */ -{ op_8000_0_comp_nf, 0x00000000, 32768 }, /* OR */ -{ op_8010_0_comp_nf, 0x00000000, 32784 }, /* OR */ -{ op_8018_0_comp_nf, 0x00000000, 32792 }, /* OR */ -{ op_8020_0_comp_nf, 0x00000000, 32800 }, /* OR */ -{ op_8028_0_comp_nf, 0x00000002, 32808 }, /* OR */ -{ op_8030_0_comp_nf, 0x00000002, 32816 }, /* OR */ -{ op_8038_0_comp_nf, 0x00000002, 32824 }, /* OR */ -{ op_8039_0_comp_nf, 0x00000002, 32825 }, /* OR */ -{ op_803a_0_comp_nf, 0x00000002, 32826 }, /* OR */ -{ op_803b_0_comp_nf, 0x00000002, 32827 }, /* OR */ -{ op_803c_0_comp_nf, 0x00000002, 32828 }, /* OR */ -{ op_8040_0_comp_nf, 0x00000000, 32832 }, /* OR */ -{ op_8050_0_comp_nf, 0x00000000, 32848 }, /* OR */ -{ op_8058_0_comp_nf, 0x00000000, 32856 }, /* OR */ -{ op_8060_0_comp_nf, 0x00000000, 32864 }, /* OR */ -{ op_8068_0_comp_nf, 0x00000002, 32872 }, /* OR */ -{ op_8070_0_comp_nf, 0x00000002, 32880 }, /* OR */ -{ op_8078_0_comp_nf, 0x00000002, 32888 }, /* OR */ -{ op_8079_0_comp_nf, 0x00000002, 32889 }, /* OR */ -{ op_807a_0_comp_nf, 0x00000002, 32890 }, /* OR */ -{ op_807b_0_comp_nf, 0x00000002, 32891 }, /* OR */ -{ op_807c_0_comp_nf, 0x00000002, 32892 }, /* OR */ -{ op_8080_0_comp_nf, 0x00000000, 32896 }, /* OR */ -{ op_8090_0_comp_nf, 0x00000000, 32912 }, /* OR */ -{ op_8098_0_comp_nf, 0x00000000, 32920 }, /* OR */ -{ op_80a0_0_comp_nf, 0x00000000, 32928 }, /* OR */ -{ op_80a8_0_comp_nf, 0x00000002, 32936 }, /* OR */ -{ op_80b0_0_comp_nf, 0x00000002, 32944 }, /* OR */ -{ op_80b8_0_comp_nf, 0x00000002, 32952 }, /* OR */ -{ op_80b9_0_comp_nf, 0x00000002, 32953 }, /* OR */ -{ op_80ba_0_comp_nf, 0x00000002, 32954 }, /* OR */ -{ op_80bb_0_comp_nf, 0x00000002, 32955 }, /* OR */ -{ op_80bc_0_comp_nf, 0x00000002, 32956 }, /* OR */ -{ NULL, 0x00000001, 32960 }, /* DIVU */ -{ NULL, 0x00000001, 32976 }, /* DIVU */ -{ NULL, 0x00000001, 32984 }, /* DIVU */ -{ NULL, 0x00000001, 32992 }, /* DIVU */ -{ NULL, 0x00000003, 33000 }, /* DIVU */ -{ NULL, 0x00000003, 33008 }, /* DIVU */ -{ NULL, 0x00000003, 33016 }, /* DIVU */ -{ NULL, 0x00000003, 33017 }, /* DIVU */ -{ NULL, 0x00000003, 33018 }, /* DIVU */ -{ NULL, 0x00000003, 33019 }, /* DIVU */ -{ NULL, 0x00000003, 33020 }, /* DIVU */ -{ NULL, 0x00000000, 33024 }, /* SBCD */ -{ NULL, 0x00000000, 33032 }, /* SBCD */ -{ op_8110_0_comp_nf, 0x00000000, 33040 }, /* OR */ -{ op_8118_0_comp_nf, 0x00000000, 33048 }, /* OR */ -{ op_8120_0_comp_nf, 0x00000000, 33056 }, /* OR */ -{ op_8128_0_comp_nf, 0x00000002, 33064 }, /* OR */ -{ op_8130_0_comp_nf, 0x00000002, 33072 }, /* OR */ -{ op_8138_0_comp_nf, 0x00000002, 33080 }, /* OR */ -{ op_8139_0_comp_nf, 0x00000002, 33081 }, /* OR */ -{ NULL, 0x00000000, 33088 }, /* PACK */ -{ NULL, 0x00000000, 33096 }, /* PACK */ -{ op_8150_0_comp_nf, 0x00000000, 33104 }, /* OR */ -{ op_8158_0_comp_nf, 0x00000000, 33112 }, /* OR */ -{ op_8160_0_comp_nf, 0x00000000, 33120 }, /* OR */ -{ op_8168_0_comp_nf, 0x00000002, 33128 }, /* OR */ -{ op_8170_0_comp_nf, 0x00000002, 33136 }, /* OR */ -{ op_8178_0_comp_nf, 0x00000002, 33144 }, /* OR */ -{ op_8179_0_comp_nf, 0x00000002, 33145 }, /* OR */ -{ NULL, 0x00000000, 33152 }, /* UNPK */ -{ NULL, 0x00000000, 33160 }, /* UNPK */ -{ op_8190_0_comp_nf, 0x00000000, 33168 }, /* OR */ -{ op_8198_0_comp_nf, 0x00000000, 33176 }, /* OR */ -{ op_81a0_0_comp_nf, 0x00000000, 33184 }, /* OR */ -{ op_81a8_0_comp_nf, 0x00000002, 33192 }, /* OR */ -{ op_81b0_0_comp_nf, 0x00000002, 33200 }, /* OR */ -{ op_81b8_0_comp_nf, 0x00000002, 33208 }, /* OR */ -{ op_81b9_0_comp_nf, 0x00000002, 33209 }, /* OR */ -{ NULL, 0x00000001, 33216 }, /* DIVS */ -{ NULL, 0x00000001, 33232 }, /* DIVS */ -{ NULL, 0x00000001, 33240 }, /* DIVS */ -{ NULL, 0x00000001, 33248 }, /* DIVS */ -{ NULL, 0x00000001, 33256 }, /* DIVS */ -{ NULL, 0x00000001, 33264 }, /* DIVS */ -{ NULL, 0x00000001, 33272 }, /* DIVS */ -{ NULL, 0x00000001, 33273 }, /* DIVS */ -{ NULL, 0x00000001, 33274 }, /* DIVS */ -{ NULL, 0x00000001, 33275 }, /* DIVS */ -{ NULL, 0x00000001, 33276 }, /* DIVS */ -{ op_9000_0_comp_nf, 0x00000000, 36864 }, /* SUB */ -{ op_9010_0_comp_nf, 0x00000000, 36880 }, /* SUB */ -{ op_9018_0_comp_nf, 0x00000000, 36888 }, /* SUB */ -{ op_9020_0_comp_nf, 0x00000000, 36896 }, /* SUB */ -{ op_9028_0_comp_nf, 0x00000002, 36904 }, /* SUB */ -{ op_9030_0_comp_nf, 0x00000002, 36912 }, /* SUB */ -{ op_9038_0_comp_nf, 0x00000002, 36920 }, /* SUB */ -{ op_9039_0_comp_nf, 0x00000002, 36921 }, /* SUB */ -{ op_903a_0_comp_nf, 0x00000002, 36922 }, /* SUB */ -{ op_903b_0_comp_nf, 0x00000002, 36923 }, /* SUB */ -{ op_903c_0_comp_nf, 0x00000002, 36924 }, /* SUB */ -{ op_9040_0_comp_nf, 0x00000000, 36928 }, /* SUB */ -{ op_9048_0_comp_nf, 0x00000000, 36936 }, /* SUB */ -{ op_9050_0_comp_nf, 0x00000000, 36944 }, /* SUB */ -{ op_9058_0_comp_nf, 0x00000000, 36952 }, /* SUB */ -{ op_9060_0_comp_nf, 0x00000000, 36960 }, /* SUB */ -{ op_9068_0_comp_nf, 0x00000002, 36968 }, /* SUB */ -{ op_9070_0_comp_nf, 0x00000002, 36976 }, /* SUB */ -{ op_9078_0_comp_nf, 0x00000002, 36984 }, /* SUB */ -{ op_9079_0_comp_nf, 0x00000002, 36985 }, /* SUB */ -{ op_907a_0_comp_nf, 0x00000002, 36986 }, /* SUB */ -{ op_907b_0_comp_nf, 0x00000002, 36987 }, /* SUB */ -{ op_907c_0_comp_nf, 0x00000002, 36988 }, /* SUB */ -{ op_9080_0_comp_nf, 0x00000000, 36992 }, /* SUB */ -{ op_9088_0_comp_nf, 0x00000000, 37000 }, /* SUB */ -{ op_9090_0_comp_nf, 0x00000000, 37008 }, /* SUB */ -{ op_9098_0_comp_nf, 0x00000000, 37016 }, /* SUB */ -{ op_90a0_0_comp_nf, 0x00000000, 37024 }, /* SUB */ -{ op_90a8_0_comp_nf, 0x00000002, 37032 }, /* SUB */ -{ op_90b0_0_comp_nf, 0x00000002, 37040 }, /* SUB */ -{ op_90b8_0_comp_nf, 0x00000002, 37048 }, /* SUB */ -{ op_90b9_0_comp_nf, 0x00000002, 37049 }, /* SUB */ -{ op_90ba_0_comp_nf, 0x00000002, 37050 }, /* SUB */ -{ op_90bb_0_comp_nf, 0x00000002, 37051 }, /* SUB */ -{ op_90bc_0_comp_nf, 0x00000002, 37052 }, /* SUB */ -{ op_90c0_0_comp_nf, 0x00000000, 37056 }, /* SUBA */ -{ op_90c8_0_comp_nf, 0x00000000, 37064 }, /* SUBA */ -{ op_90d0_0_comp_nf, 0x00000000, 37072 }, /* SUBA */ -{ op_90d8_0_comp_nf, 0x00000000, 37080 }, /* SUBA */ -{ op_90e0_0_comp_nf, 0x00000000, 37088 }, /* SUBA */ -{ op_90e8_0_comp_nf, 0x00000002, 37096 }, /* SUBA */ -{ op_90f0_0_comp_nf, 0x00000002, 37104 }, /* SUBA */ -{ op_90f8_0_comp_nf, 0x00000002, 37112 }, /* SUBA */ -{ op_90f9_0_comp_nf, 0x00000002, 37113 }, /* SUBA */ -{ op_90fa_0_comp_nf, 0x00000002, 37114 }, /* SUBA */ -{ op_90fb_0_comp_nf, 0x00000002, 37115 }, /* SUBA */ -{ op_90fc_0_comp_nf, 0x00000002, 37116 }, /* SUBA */ -{ op_9100_0_comp_nf, 0x00000008, 37120 }, /* SUBX */ -{ op_9108_0_comp_nf, 0x00000008, 37128 }, /* SUBX */ -{ op_9110_0_comp_nf, 0x00000000, 37136 }, /* SUB */ -{ op_9118_0_comp_nf, 0x00000000, 37144 }, /* SUB */ -{ op_9120_0_comp_nf, 0x00000000, 37152 }, /* SUB */ -{ op_9128_0_comp_nf, 0x00000002, 37160 }, /* SUB */ -{ op_9130_0_comp_nf, 0x00000002, 37168 }, /* SUB */ -{ op_9138_0_comp_nf, 0x00000002, 37176 }, /* SUB */ -{ op_9139_0_comp_nf, 0x00000002, 37177 }, /* SUB */ -{ op_9140_0_comp_nf, 0x00000008, 37184 }, /* SUBX */ -{ op_9148_0_comp_nf, 0x00000008, 37192 }, /* SUBX */ -{ op_9150_0_comp_nf, 0x00000000, 37200 }, /* SUB */ -{ op_9158_0_comp_nf, 0x00000000, 37208 }, /* SUB */ -{ op_9160_0_comp_nf, 0x00000000, 37216 }, /* SUB */ -{ op_9168_0_comp_nf, 0x00000002, 37224 }, /* SUB */ -{ op_9170_0_comp_nf, 0x00000002, 37232 }, /* SUB */ -{ op_9178_0_comp_nf, 0x00000002, 37240 }, /* SUB */ -{ op_9179_0_comp_nf, 0x00000002, 37241 }, /* SUB */ -{ op_9180_0_comp_nf, 0x00000008, 37248 }, /* SUBX */ -{ op_9188_0_comp_nf, 0x00000008, 37256 }, /* SUBX */ -{ op_9190_0_comp_nf, 0x00000000, 37264 }, /* SUB */ -{ op_9198_0_comp_nf, 0x00000000, 37272 }, /* SUB */ -{ op_91a0_0_comp_nf, 0x00000000, 37280 }, /* SUB */ -{ op_91a8_0_comp_nf, 0x00000002, 37288 }, /* SUB */ -{ op_91b0_0_comp_nf, 0x00000002, 37296 }, /* SUB */ -{ op_91b8_0_comp_nf, 0x00000002, 37304 }, /* SUB */ -{ op_91b9_0_comp_nf, 0x00000002, 37305 }, /* SUB */ -{ op_91c0_0_comp_nf, 0x00000000, 37312 }, /* SUBA */ -{ op_91c8_0_comp_nf, 0x00000000, 37320 }, /* SUBA */ -{ op_91d0_0_comp_nf, 0x00000000, 37328 }, /* SUBA */ -{ op_91d8_0_comp_nf, 0x00000000, 37336 }, /* SUBA */ -{ op_91e0_0_comp_nf, 0x00000000, 37344 }, /* SUBA */ -{ op_91e8_0_comp_nf, 0x00000002, 37352 }, /* SUBA */ -{ op_91f0_0_comp_nf, 0x00000002, 37360 }, /* SUBA */ -{ op_91f8_0_comp_nf, 0x00000002, 37368 }, /* SUBA */ -{ op_91f9_0_comp_nf, 0x00000002, 37369 }, /* SUBA */ -{ op_91fa_0_comp_nf, 0x00000002, 37370 }, /* SUBA */ -{ op_91fb_0_comp_nf, 0x00000002, 37371 }, /* SUBA */ -{ op_91fc_0_comp_nf, 0x00000002, 37372 }, /* SUBA */ -{ op_b000_0_comp_nf, 0x00000000, 45056 }, /* CMP */ -{ op_b010_0_comp_nf, 0x00000000, 45072 }, /* CMP */ -{ op_b018_0_comp_nf, 0x00000000, 45080 }, /* CMP */ -{ op_b020_0_comp_nf, 0x00000000, 45088 }, /* CMP */ -{ op_b028_0_comp_nf, 0x00000002, 45096 }, /* CMP */ -{ op_b030_0_comp_nf, 0x00000002, 45104 }, /* CMP */ -{ op_b038_0_comp_nf, 0x00000002, 45112 }, /* CMP */ -{ op_b039_0_comp_nf, 0x00000002, 45113 }, /* CMP */ -{ op_b03a_0_comp_nf, 0x00000002, 45114 }, /* CMP */ -{ op_b03b_0_comp_nf, 0x00000002, 45115 }, /* CMP */ -{ op_b03c_0_comp_nf, 0x00000002, 45116 }, /* CMP */ -{ op_b040_0_comp_nf, 0x00000000, 45120 }, /* CMP */ -{ op_b048_0_comp_nf, 0x00000000, 45128 }, /* CMP */ -{ op_b050_0_comp_nf, 0x00000000, 45136 }, /* CMP */ -{ op_b058_0_comp_nf, 0x00000000, 45144 }, /* CMP */ -{ op_b060_0_comp_nf, 0x00000000, 45152 }, /* CMP */ -{ op_b068_0_comp_nf, 0x00000002, 45160 }, /* CMP */ -{ op_b070_0_comp_nf, 0x00000002, 45168 }, /* CMP */ -{ op_b078_0_comp_nf, 0x00000002, 45176 }, /* CMP */ -{ op_b079_0_comp_nf, 0x00000002, 45177 }, /* CMP */ -{ op_b07a_0_comp_nf, 0x00000002, 45178 }, /* CMP */ -{ op_b07b_0_comp_nf, 0x00000002, 45179 }, /* CMP */ -{ op_b07c_0_comp_nf, 0x00000002, 45180 }, /* CMP */ -{ op_b080_0_comp_nf, 0x00000000, 45184 }, /* CMP */ -{ op_b088_0_comp_nf, 0x00000000, 45192 }, /* CMP */ -{ op_b090_0_comp_nf, 0x00000000, 45200 }, /* CMP */ -{ op_b098_0_comp_nf, 0x00000000, 45208 }, /* CMP */ -{ op_b0a0_0_comp_nf, 0x00000000, 45216 }, /* CMP */ -{ op_b0a8_0_comp_nf, 0x00000002, 45224 }, /* CMP */ -{ op_b0b0_0_comp_nf, 0x00000002, 45232 }, /* CMP */ -{ op_b0b8_0_comp_nf, 0x00000002, 45240 }, /* CMP */ -{ op_b0b9_0_comp_nf, 0x00000002, 45241 }, /* CMP */ -{ op_b0ba_0_comp_nf, 0x00000002, 45242 }, /* CMP */ -{ op_b0bb_0_comp_nf, 0x00000002, 45243 }, /* CMP */ -{ op_b0bc_0_comp_nf, 0x00000002, 45244 }, /* CMP */ -{ op_b0c0_0_comp_nf, 0x00000000, 45248 }, /* CMPA */ -{ op_b0c8_0_comp_nf, 0x00000000, 45256 }, /* CMPA */ -{ op_b0d0_0_comp_nf, 0x00000000, 45264 }, /* CMPA */ -{ op_b0d8_0_comp_nf, 0x00000000, 45272 }, /* CMPA */ -{ op_b0e0_0_comp_nf, 0x00000000, 45280 }, /* CMPA */ -{ op_b0e8_0_comp_nf, 0x00000002, 45288 }, /* CMPA */ -{ op_b0f0_0_comp_nf, 0x00000002, 45296 }, /* CMPA */ -{ op_b0f8_0_comp_nf, 0x00000002, 45304 }, /* CMPA */ -{ op_b0f9_0_comp_nf, 0x00000002, 45305 }, /* CMPA */ -{ op_b0fa_0_comp_nf, 0x00000002, 45306 }, /* CMPA */ -{ op_b0fb_0_comp_nf, 0x00000002, 45307 }, /* CMPA */ -{ op_b0fc_0_comp_nf, 0x00000002, 45308 }, /* CMPA */ -{ op_b100_0_comp_nf, 0x00000000, 45312 }, /* EOR */ -{ op_b108_0_comp_nf, 0x00000000, 45320 }, /* CMPM */ -{ op_b110_0_comp_nf, 0x00000000, 45328 }, /* EOR */ -{ op_b118_0_comp_nf, 0x00000000, 45336 }, /* EOR */ -{ op_b120_0_comp_nf, 0x00000000, 45344 }, /* EOR */ -{ op_b128_0_comp_nf, 0x00000002, 45352 }, /* EOR */ -{ op_b130_0_comp_nf, 0x00000002, 45360 }, /* EOR */ -{ op_b138_0_comp_nf, 0x00000002, 45368 }, /* EOR */ -{ op_b139_0_comp_nf, 0x00000002, 45369 }, /* EOR */ -{ op_b140_0_comp_nf, 0x00000000, 45376 }, /* EOR */ -{ op_b148_0_comp_nf, 0x00000000, 45384 }, /* CMPM */ -{ op_b150_0_comp_nf, 0x00000000, 45392 }, /* EOR */ -{ op_b158_0_comp_nf, 0x00000000, 45400 }, /* EOR */ -{ op_b160_0_comp_nf, 0x00000000, 45408 }, /* EOR */ -{ op_b168_0_comp_nf, 0x00000002, 45416 }, /* EOR */ -{ op_b170_0_comp_nf, 0x00000002, 45424 }, /* EOR */ -{ op_b178_0_comp_nf, 0x00000002, 45432 }, /* EOR */ -{ op_b179_0_comp_nf, 0x00000002, 45433 }, /* EOR */ -{ op_b180_0_comp_nf, 0x00000000, 45440 }, /* EOR */ -{ op_b188_0_comp_nf, 0x00000000, 45448 }, /* CMPM */ -{ op_b190_0_comp_nf, 0x00000000, 45456 }, /* EOR */ -{ op_b198_0_comp_nf, 0x00000000, 45464 }, /* EOR */ -{ op_b1a0_0_comp_nf, 0x00000000, 45472 }, /* EOR */ -{ op_b1a8_0_comp_nf, 0x00000002, 45480 }, /* EOR */ -{ op_b1b0_0_comp_nf, 0x00000002, 45488 }, /* EOR */ -{ op_b1b8_0_comp_nf, 0x00000002, 45496 }, /* EOR */ -{ op_b1b9_0_comp_nf, 0x00000002, 45497 }, /* EOR */ -{ op_b1c0_0_comp_nf, 0x00000000, 45504 }, /* CMPA */ -{ op_b1c8_0_comp_nf, 0x00000000, 45512 }, /* CMPA */ -{ op_b1d0_0_comp_nf, 0x00000000, 45520 }, /* CMPA */ -{ op_b1d8_0_comp_nf, 0x00000000, 45528 }, /* CMPA */ -{ op_b1e0_0_comp_nf, 0x00000000, 45536 }, /* CMPA */ -{ op_b1e8_0_comp_nf, 0x00000002, 45544 }, /* CMPA */ -{ op_b1f0_0_comp_nf, 0x00000002, 45552 }, /* CMPA */ -{ op_b1f8_0_comp_nf, 0x00000002, 45560 }, /* CMPA */ -{ op_b1f9_0_comp_nf, 0x00000002, 45561 }, /* CMPA */ -{ op_b1fa_0_comp_nf, 0x00000002, 45562 }, /* CMPA */ -{ op_b1fb_0_comp_nf, 0x00000002, 45563 }, /* CMPA */ -{ op_b1fc_0_comp_nf, 0x00000002, 45564 }, /* CMPA */ -{ op_c000_0_comp_nf, 0x00000000, 49152 }, /* AND */ -{ op_c010_0_comp_nf, 0x00000000, 49168 }, /* AND */ -{ op_c018_0_comp_nf, 0x00000000, 49176 }, /* AND */ -{ op_c020_0_comp_nf, 0x00000000, 49184 }, /* AND */ -{ op_c028_0_comp_nf, 0x00000002, 49192 }, /* AND */ -{ op_c030_0_comp_nf, 0x00000002, 49200 }, /* AND */ -{ op_c038_0_comp_nf, 0x00000002, 49208 }, /* AND */ -{ op_c039_0_comp_nf, 0x00000002, 49209 }, /* AND */ -{ op_c03a_0_comp_nf, 0x00000002, 49210 }, /* AND */ -{ op_c03b_0_comp_nf, 0x00000002, 49211 }, /* AND */ -{ op_c03c_0_comp_nf, 0x00000002, 49212 }, /* AND */ -{ op_c040_0_comp_nf, 0x00000000, 49216 }, /* AND */ -{ op_c050_0_comp_nf, 0x00000000, 49232 }, /* AND */ -{ op_c058_0_comp_nf, 0x00000000, 49240 }, /* AND */ -{ op_c060_0_comp_nf, 0x00000000, 49248 }, /* AND */ -{ op_c068_0_comp_nf, 0x00000002, 49256 }, /* AND */ -{ op_c070_0_comp_nf, 0x00000002, 49264 }, /* AND */ -{ op_c078_0_comp_nf, 0x00000002, 49272 }, /* AND */ -{ op_c079_0_comp_nf, 0x00000002, 49273 }, /* AND */ -{ op_c07a_0_comp_nf, 0x00000002, 49274 }, /* AND */ -{ op_c07b_0_comp_nf, 0x00000002, 49275 }, /* AND */ -{ op_c07c_0_comp_nf, 0x00000002, 49276 }, /* AND */ -{ op_c080_0_comp_nf, 0x00000000, 49280 }, /* AND */ -{ op_c090_0_comp_nf, 0x00000000, 49296 }, /* AND */ -{ op_c098_0_comp_nf, 0x00000000, 49304 }, /* AND */ -{ op_c0a0_0_comp_nf, 0x00000000, 49312 }, /* AND */ -{ op_c0a8_0_comp_nf, 0x00000002, 49320 }, /* AND */ -{ op_c0b0_0_comp_nf, 0x00000002, 49328 }, /* AND */ -{ op_c0b8_0_comp_nf, 0x00000002, 49336 }, /* AND */ -{ op_c0b9_0_comp_nf, 0x00000002, 49337 }, /* AND */ -{ op_c0ba_0_comp_nf, 0x00000002, 49338 }, /* AND */ -{ op_c0bb_0_comp_nf, 0x00000002, 49339 }, /* AND */ -{ op_c0bc_0_comp_nf, 0x00000002, 49340 }, /* AND */ -{ op_c0c0_0_comp_nf, 0x00000000, 49344 }, /* MULU */ -{ op_c0d0_0_comp_nf, 0x00000000, 49360 }, /* MULU */ -{ op_c0d8_0_comp_nf, 0x00000000, 49368 }, /* MULU */ -{ op_c0e0_0_comp_nf, 0x00000000, 49376 }, /* MULU */ -{ op_c0e8_0_comp_nf, 0x00000002, 49384 }, /* MULU */ -{ op_c0f0_0_comp_nf, 0x00000002, 49392 }, /* MULU */ -{ op_c0f8_0_comp_nf, 0x00000002, 49400 }, /* MULU */ -{ op_c0f9_0_comp_nf, 0x00000002, 49401 }, /* MULU */ -{ op_c0fa_0_comp_nf, 0x00000002, 49402 }, /* MULU */ -{ op_c0fb_0_comp_nf, 0x00000002, 49403 }, /* MULU */ -{ op_c0fc_0_comp_nf, 0x00000002, 49404 }, /* MULU */ -{ NULL, 0x00000000, 49408 }, /* ABCD */ -{ NULL, 0x00000000, 49416 }, /* ABCD */ -{ op_c110_0_comp_nf, 0x00000000, 49424 }, /* AND */ -{ op_c118_0_comp_nf, 0x00000000, 49432 }, /* AND */ -{ op_c120_0_comp_nf, 0x00000000, 49440 }, /* AND */ -{ op_c128_0_comp_nf, 0x00000002, 49448 }, /* AND */ -{ op_c130_0_comp_nf, 0x00000002, 49456 }, /* AND */ -{ op_c138_0_comp_nf, 0x00000002, 49464 }, /* AND */ -{ op_c139_0_comp_nf, 0x00000002, 49465 }, /* AND */ -{ op_c140_0_comp_nf, 0x00000000, 49472 }, /* EXG */ -{ op_c148_0_comp_nf, 0x00000000, 49480 }, /* EXG */ -{ op_c150_0_comp_nf, 0x00000000, 49488 }, /* AND */ -{ op_c158_0_comp_nf, 0x00000000, 49496 }, /* AND */ -{ op_c160_0_comp_nf, 0x00000000, 49504 }, /* AND */ -{ op_c168_0_comp_nf, 0x00000002, 49512 }, /* AND */ -{ op_c170_0_comp_nf, 0x00000002, 49520 }, /* AND */ -{ op_c178_0_comp_nf, 0x00000002, 49528 }, /* AND */ -{ op_c179_0_comp_nf, 0x00000002, 49529 }, /* AND */ -{ op_c188_0_comp_nf, 0x00000000, 49544 }, /* EXG */ -{ op_c190_0_comp_nf, 0x00000000, 49552 }, /* AND */ -{ op_c198_0_comp_nf, 0x00000000, 49560 }, /* AND */ -{ op_c1a0_0_comp_nf, 0x00000000, 49568 }, /* AND */ -{ op_c1a8_0_comp_nf, 0x00000002, 49576 }, /* AND */ -{ op_c1b0_0_comp_nf, 0x00000002, 49584 }, /* AND */ -{ op_c1b8_0_comp_nf, 0x00000002, 49592 }, /* AND */ -{ op_c1b9_0_comp_nf, 0x00000002, 49593 }, /* AND */ -{ op_c1c0_0_comp_nf, 0x00000000, 49600 }, /* MULS */ -{ op_c1d0_0_comp_nf, 0x00000000, 49616 }, /* MULS */ -{ op_c1d8_0_comp_nf, 0x00000000, 49624 }, /* MULS */ -{ op_c1e0_0_comp_nf, 0x00000000, 49632 }, /* MULS */ -{ op_c1e8_0_comp_nf, 0x00000002, 49640 }, /* MULS */ -{ op_c1f0_0_comp_nf, 0x00000002, 49648 }, /* MULS */ -{ op_c1f8_0_comp_nf, 0x00000002, 49656 }, /* MULS */ -{ op_c1f9_0_comp_nf, 0x00000002, 49657 }, /* MULS */ -{ op_c1fa_0_comp_nf, 0x00000002, 49658 }, /* MULS */ -{ op_c1fb_0_comp_nf, 0x00000002, 49659 }, /* MULS */ -{ op_c1fc_0_comp_nf, 0x00000002, 49660 }, /* MULS */ -{ op_d000_0_comp_nf, 0x00000000, 53248 }, /* ADD */ -{ op_d010_0_comp_nf, 0x00000000, 53264 }, /* ADD */ -{ op_d018_0_comp_nf, 0x00000000, 53272 }, /* ADD */ -{ op_d020_0_comp_nf, 0x00000000, 53280 }, /* ADD */ -{ op_d028_0_comp_nf, 0x00000002, 53288 }, /* ADD */ -{ op_d030_0_comp_nf, 0x00000002, 53296 }, /* ADD */ -{ op_d038_0_comp_nf, 0x00000002, 53304 }, /* ADD */ -{ op_d039_0_comp_nf, 0x00000002, 53305 }, /* ADD */ -{ op_d03a_0_comp_nf, 0x00000002, 53306 }, /* ADD */ -{ op_d03b_0_comp_nf, 0x00000002, 53307 }, /* ADD */ -{ op_d03c_0_comp_nf, 0x00000002, 53308 }, /* ADD */ -{ op_d040_0_comp_nf, 0x00000000, 53312 }, /* ADD */ -{ op_d048_0_comp_nf, 0x00000000, 53320 }, /* ADD */ -{ op_d050_0_comp_nf, 0x00000000, 53328 }, /* ADD */ -{ op_d058_0_comp_nf, 0x00000000, 53336 }, /* ADD */ -{ op_d060_0_comp_nf, 0x00000000, 53344 }, /* ADD */ -{ op_d068_0_comp_nf, 0x00000002, 53352 }, /* ADD */ -{ op_d070_0_comp_nf, 0x00000002, 53360 }, /* ADD */ -{ op_d078_0_comp_nf, 0x00000002, 53368 }, /* ADD */ -{ op_d079_0_comp_nf, 0x00000002, 53369 }, /* ADD */ -{ op_d07a_0_comp_nf, 0x00000002, 53370 }, /* ADD */ -{ op_d07b_0_comp_nf, 0x00000002, 53371 }, /* ADD */ -{ op_d07c_0_comp_nf, 0x00000002, 53372 }, /* ADD */ -{ op_d080_0_comp_nf, 0x00000000, 53376 }, /* ADD */ -{ op_d088_0_comp_nf, 0x00000000, 53384 }, /* ADD */ -{ op_d090_0_comp_nf, 0x00000000, 53392 }, /* ADD */ -{ op_d098_0_comp_nf, 0x00000000, 53400 }, /* ADD */ -{ op_d0a0_0_comp_nf, 0x00000000, 53408 }, /* ADD */ -{ op_d0a8_0_comp_nf, 0x00000002, 53416 }, /* ADD */ -{ op_d0b0_0_comp_nf, 0x00000002, 53424 }, /* ADD */ -{ op_d0b8_0_comp_nf, 0x00000002, 53432 }, /* ADD */ -{ op_d0b9_0_comp_nf, 0x00000002, 53433 }, /* ADD */ -{ op_d0ba_0_comp_nf, 0x00000002, 53434 }, /* ADD */ -{ op_d0bb_0_comp_nf, 0x00000002, 53435 }, /* ADD */ -{ op_d0bc_0_comp_nf, 0x00000002, 53436 }, /* ADD */ -{ op_d0c0_0_comp_nf, 0x00000000, 53440 }, /* ADDA */ -{ op_d0c8_0_comp_nf, 0x00000000, 53448 }, /* ADDA */ -{ op_d0d0_0_comp_nf, 0x00000000, 53456 }, /* ADDA */ -{ op_d0d8_0_comp_nf, 0x00000000, 53464 }, /* ADDA */ -{ op_d0e0_0_comp_nf, 0x00000000, 53472 }, /* ADDA */ -{ op_d0e8_0_comp_nf, 0x00000002, 53480 }, /* ADDA */ -{ op_d0f0_0_comp_nf, 0x00000002, 53488 }, /* ADDA */ -{ op_d0f8_0_comp_nf, 0x00000002, 53496 }, /* ADDA */ -{ op_d0f9_0_comp_nf, 0x00000002, 53497 }, /* ADDA */ -{ op_d0fa_0_comp_nf, 0x00000002, 53498 }, /* ADDA */ -{ op_d0fb_0_comp_nf, 0x00000002, 53499 }, /* ADDA */ -{ op_d0fc_0_comp_nf, 0x00000002, 53500 }, /* ADDA */ -{ op_d100_0_comp_nf, 0x00000008, 53504 }, /* ADDX */ -{ op_d108_0_comp_nf, 0x00000008, 53512 }, /* ADDX */ -{ op_d110_0_comp_nf, 0x00000000, 53520 }, /* ADD */ -{ op_d118_0_comp_nf, 0x00000000, 53528 }, /* ADD */ -{ op_d120_0_comp_nf, 0x00000000, 53536 }, /* ADD */ -{ op_d128_0_comp_nf, 0x00000002, 53544 }, /* ADD */ -{ op_d130_0_comp_nf, 0x00000002, 53552 }, /* ADD */ -{ op_d138_0_comp_nf, 0x00000002, 53560 }, /* ADD */ -{ op_d139_0_comp_nf, 0x00000002, 53561 }, /* ADD */ -{ op_d140_0_comp_nf, 0x00000008, 53568 }, /* ADDX */ -{ op_d148_0_comp_nf, 0x00000008, 53576 }, /* ADDX */ -{ op_d150_0_comp_nf, 0x00000000, 53584 }, /* ADD */ -{ op_d158_0_comp_nf, 0x00000000, 53592 }, /* ADD */ -{ op_d160_0_comp_nf, 0x00000000, 53600 }, /* ADD */ -{ op_d168_0_comp_nf, 0x00000002, 53608 }, /* ADD */ -{ op_d170_0_comp_nf, 0x00000002, 53616 }, /* ADD */ -{ op_d178_0_comp_nf, 0x00000002, 53624 }, /* ADD */ -{ op_d179_0_comp_nf, 0x00000002, 53625 }, /* ADD */ -{ op_d180_0_comp_nf, 0x00000008, 53632 }, /* ADDX */ -{ op_d188_0_comp_nf, 0x00000008, 53640 }, /* ADDX */ -{ op_d190_0_comp_nf, 0x00000000, 53648 }, /* ADD */ -{ op_d198_0_comp_nf, 0x00000000, 53656 }, /* ADD */ -{ op_d1a0_0_comp_nf, 0x00000000, 53664 }, /* ADD */ -{ op_d1a8_0_comp_nf, 0x00000002, 53672 }, /* ADD */ -{ op_d1b0_0_comp_nf, 0x00000002, 53680 }, /* ADD */ -{ op_d1b8_0_comp_nf, 0x00000002, 53688 }, /* ADD */ -{ op_d1b9_0_comp_nf, 0x00000002, 53689 }, /* ADD */ -{ op_d1c0_0_comp_nf, 0x00000000, 53696 }, /* ADDA */ -{ op_d1c8_0_comp_nf, 0x00000000, 53704 }, /* ADDA */ -{ op_d1d0_0_comp_nf, 0x00000000, 53712 }, /* ADDA */ -{ op_d1d8_0_comp_nf, 0x00000000, 53720 }, /* ADDA */ -{ op_d1e0_0_comp_nf, 0x00000000, 53728 }, /* ADDA */ -{ op_d1e8_0_comp_nf, 0x00000002, 53736 }, /* ADDA */ -{ op_d1f0_0_comp_nf, 0x00000002, 53744 }, /* ADDA */ -{ op_d1f8_0_comp_nf, 0x00000002, 53752 }, /* ADDA */ -{ op_d1f9_0_comp_nf, 0x00000002, 53753 }, /* ADDA */ -{ op_d1fa_0_comp_nf, 0x00000002, 53754 }, /* ADDA */ -{ op_d1fb_0_comp_nf, 0x00000002, 53755 }, /* ADDA */ -{ op_d1fc_0_comp_nf, 0x00000002, 53756 }, /* ADDA */ -{ op_e000_0_comp_nf, 0x00000000, 57344 }, /* ASR */ -{ op_e008_0_comp_nf, 0x00000000, 57352 }, /* LSR */ -{ NULL, 0x00000008, 57360 }, /* ROXR */ -{ op_e018_0_comp_nf, 0x00000000, 57368 }, /* ROR */ -{ op_e020_0_comp_nf, 0x00000000, 57376 }, /* ASR */ -{ op_e028_0_comp_nf, 0x00000000, 57384 }, /* LSR */ -{ NULL, 0x00000008, 57392 }, /* ROXR */ -{ op_e038_0_comp_nf, 0x00000000, 57400 }, /* ROR */ -{ op_e040_0_comp_nf, 0x00000000, 57408 }, /* ASR */ -{ op_e048_0_comp_nf, 0x00000000, 57416 }, /* LSR */ -{ NULL, 0x00000008, 57424 }, /* ROXR */ -{ op_e058_0_comp_nf, 0x00000000, 57432 }, /* ROR */ -{ op_e060_0_comp_nf, 0x00000000, 57440 }, /* ASR */ -{ op_e068_0_comp_nf, 0x00000000, 57448 }, /* LSR */ -{ NULL, 0x00000008, 57456 }, /* ROXR */ -{ op_e078_0_comp_nf, 0x00000000, 57464 }, /* ROR */ -{ op_e080_0_comp_nf, 0x00000000, 57472 }, /* ASR */ -{ op_e088_0_comp_nf, 0x00000000, 57480 }, /* LSR */ -{ NULL, 0x00000008, 57488 }, /* ROXR */ -{ op_e098_0_comp_nf, 0x00000000, 57496 }, /* ROR */ -{ op_e0a0_0_comp_nf, 0x00000000, 57504 }, /* ASR */ -{ op_e0a8_0_comp_nf, 0x00000000, 57512 }, /* LSR */ -{ NULL, 0x00000008, 57520 }, /* ROXR */ -{ op_e0b8_0_comp_nf, 0x00000000, 57528 }, /* ROR */ -{ op_e0d0_0_comp_nf, 0x00000000, 57552 }, /* ASRW */ -{ op_e0d8_0_comp_nf, 0x00000000, 57560 }, /* ASRW */ -{ op_e0e0_0_comp_nf, 0x00000000, 57568 }, /* ASRW */ -{ op_e0e8_0_comp_nf, 0x00000002, 57576 }, /* ASRW */ -{ op_e0f0_0_comp_nf, 0x00000002, 57584 }, /* ASRW */ -{ op_e0f8_0_comp_nf, 0x00000002, 57592 }, /* ASRW */ -{ op_e0f9_0_comp_nf, 0x00000002, 57593 }, /* ASRW */ -{ op_e100_0_comp_nf, 0x00000000, 57600 }, /* ASL */ -{ op_e108_0_comp_nf, 0x00000000, 57608 }, /* LSL */ -{ NULL, 0x00000008, 57616 }, /* ROXL */ -{ op_e118_0_comp_nf, 0x00000000, 57624 }, /* ROL */ -{ op_e120_0_comp_nf, 0x00000000, 57632 }, /* ASL */ -{ op_e128_0_comp_nf, 0x00000000, 57640 }, /* LSL */ -{ NULL, 0x00000008, 57648 }, /* ROXL */ -{ op_e138_0_comp_nf, 0x00000000, 57656 }, /* ROL */ -{ op_e140_0_comp_nf, 0x00000000, 57664 }, /* ASL */ -{ op_e148_0_comp_nf, 0x00000000, 57672 }, /* LSL */ -{ NULL, 0x00000008, 57680 }, /* ROXL */ -{ op_e158_0_comp_nf, 0x00000000, 57688 }, /* ROL */ -{ op_e160_0_comp_nf, 0x00000000, 57696 }, /* ASL */ -{ op_e168_0_comp_nf, 0x00000000, 57704 }, /* LSL */ -{ NULL, 0x00000008, 57712 }, /* ROXL */ -{ op_e178_0_comp_nf, 0x00000000, 57720 }, /* ROL */ -{ op_e180_0_comp_nf, 0x00000000, 57728 }, /* ASL */ -{ op_e188_0_comp_nf, 0x00000000, 57736 }, /* LSL */ -{ NULL, 0x00000008, 57744 }, /* ROXL */ -{ op_e198_0_comp_nf, 0x00000000, 57752 }, /* ROL */ -{ op_e1a0_0_comp_nf, 0x00000000, 57760 }, /* ASL */ -{ op_e1a8_0_comp_nf, 0x00000000, 57768 }, /* LSL */ -{ NULL, 0x00000008, 57776 }, /* ROXL */ -{ op_e1b8_0_comp_nf, 0x00000000, 57784 }, /* ROL */ -{ op_e1d0_0_comp_nf, 0x00000000, 57808 }, /* ASLW */ -{ op_e1d8_0_comp_nf, 0x00000000, 57816 }, /* ASLW */ -{ op_e1e0_0_comp_nf, 0x00000000, 57824 }, /* ASLW */ -{ op_e1e8_0_comp_nf, 0x00000002, 57832 }, /* ASLW */ -{ op_e1f0_0_comp_nf, 0x00000002, 57840 }, /* ASLW */ -{ op_e1f8_0_comp_nf, 0x00000002, 57848 }, /* ASLW */ -{ op_e1f9_0_comp_nf, 0x00000002, 57849 }, /* ASLW */ -{ op_e2d0_0_comp_nf, 0x00000000, 58064 }, /* LSRW */ -{ op_e2d8_0_comp_nf, 0x00000000, 58072 }, /* LSRW */ -{ op_e2e0_0_comp_nf, 0x00000000, 58080 }, /* LSRW */ -{ op_e2e8_0_comp_nf, 0x00000002, 58088 }, /* LSRW */ -{ op_e2f0_0_comp_nf, 0x00000002, 58096 }, /* LSRW */ -{ op_e2f8_0_comp_nf, 0x00000002, 58104 }, /* LSRW */ -{ op_e2f9_0_comp_nf, 0x00000002, 58105 }, /* LSRW */ -{ op_e3d0_0_comp_nf, 0x00000000, 58320 }, /* LSLW */ -{ op_e3d8_0_comp_nf, 0x00000000, 58328 }, /* LSLW */ -{ op_e3e0_0_comp_nf, 0x00000000, 58336 }, /* LSLW */ -{ op_e3e8_0_comp_nf, 0x00000002, 58344 }, /* LSLW */ -{ op_e3f0_0_comp_nf, 0x00000002, 58352 }, /* LSLW */ -{ op_e3f8_0_comp_nf, 0x00000002, 58360 }, /* LSLW */ -{ op_e3f9_0_comp_nf, 0x00000002, 58361 }, /* LSLW */ -{ NULL, 0x00000008, 58576 }, /* ROXRW */ -{ NULL, 0x00000008, 58584 }, /* ROXRW */ -{ NULL, 0x00000008, 58592 }, /* ROXRW */ -{ NULL, 0x0000000a, 58600 }, /* ROXRW */ -{ NULL, 0x0000000a, 58608 }, /* ROXRW */ -{ NULL, 0x0000000a, 58616 }, /* ROXRW */ -{ NULL, 0x0000000a, 58617 }, /* ROXRW */ -{ NULL, 0x00000008, 58832 }, /* ROXLW */ -{ NULL, 0x00000008, 58840 }, /* ROXLW */ -{ NULL, 0x00000008, 58848 }, /* ROXLW */ -{ NULL, 0x0000000a, 58856 }, /* ROXLW */ -{ NULL, 0x0000000a, 58864 }, /* ROXLW */ -{ NULL, 0x0000000a, 58872 }, /* ROXLW */ -{ NULL, 0x0000000a, 58873 }, /* ROXLW */ -{ op_e6d0_0_comp_nf, 0x00000000, 59088 }, /* RORW */ -{ op_e6d8_0_comp_nf, 0x00000000, 59096 }, /* RORW */ -{ op_e6e0_0_comp_nf, 0x00000000, 59104 }, /* RORW */ -{ op_e6e8_0_comp_nf, 0x00000002, 59112 }, /* RORW */ -{ op_e6f0_0_comp_nf, 0x00000002, 59120 }, /* RORW */ -{ op_e6f8_0_comp_nf, 0x00000002, 59128 }, /* RORW */ -{ op_e6f9_0_comp_nf, 0x00000002, 59129 }, /* RORW */ -{ op_e7d0_0_comp_nf, 0x00000000, 59344 }, /* ROLW */ -{ op_e7d8_0_comp_nf, 0x00000000, 59352 }, /* ROLW */ -{ op_e7e0_0_comp_nf, 0x00000000, 59360 }, /* ROLW */ -{ op_e7e8_0_comp_nf, 0x00000002, 59368 }, /* ROLW */ -{ op_e7f0_0_comp_nf, 0x00000002, 59376 }, /* ROLW */ -{ op_e7f8_0_comp_nf, 0x00000002, 59384 }, /* ROLW */ -{ op_e7f9_0_comp_nf, 0x00000002, 59385 }, /* ROLW */ -{ NULL, 0x00000000, 59584 }, /* BFTST */ -{ NULL, 0x00000000, 59600 }, /* BFTST */ -{ NULL, 0x00000000, 59624 }, /* BFTST */ -{ NULL, 0x00000000, 59632 }, /* BFTST */ -{ NULL, 0x00000000, 59640 }, /* BFTST */ -{ NULL, 0x00000000, 59641 }, /* BFTST */ -{ NULL, 0x00000000, 59642 }, /* BFTST */ -{ NULL, 0x00000000, 59643 }, /* BFTST */ -{ NULL, 0x00000000, 59840 }, /* BFEXTU */ -{ NULL, 0x00000000, 59856 }, /* BFEXTU */ -{ NULL, 0x00000000, 59880 }, /* BFEXTU */ -{ NULL, 0x00000000, 59888 }, /* BFEXTU */ -{ NULL, 0x00000000, 59896 }, /* BFEXTU */ -{ NULL, 0x00000000, 59897 }, /* BFEXTU */ -{ NULL, 0x00000000, 59898 }, /* BFEXTU */ -{ NULL, 0x00000000, 59899 }, /* BFEXTU */ -{ NULL, 0x00000000, 60096 }, /* BFCHG */ -{ NULL, 0x00000000, 60112 }, /* BFCHG */ -{ NULL, 0x00000000, 60136 }, /* BFCHG */ -{ NULL, 0x00000000, 60144 }, /* BFCHG */ -{ NULL, 0x00000000, 60152 }, /* BFCHG */ -{ NULL, 0x00000000, 60153 }, /* BFCHG */ -{ NULL, 0x00000000, 60352 }, /* BFEXTS */ -{ NULL, 0x00000000, 60368 }, /* BFEXTS */ -{ NULL, 0x00000000, 60392 }, /* BFEXTS */ -{ NULL, 0x00000000, 60400 }, /* BFEXTS */ -{ NULL, 0x00000000, 60408 }, /* BFEXTS */ -{ NULL, 0x00000000, 60409 }, /* BFEXTS */ -{ NULL, 0x00000000, 60410 }, /* BFEXTS */ -{ NULL, 0x00000000, 60411 }, /* BFEXTS */ -{ NULL, 0x00000000, 60608 }, /* BFCLR */ -{ NULL, 0x00000000, 60624 }, /* BFCLR */ -{ NULL, 0x00000000, 60648 }, /* BFCLR */ -{ NULL, 0x00000000, 60656 }, /* BFCLR */ -{ NULL, 0x00000000, 60664 }, /* BFCLR */ -{ NULL, 0x00000000, 60665 }, /* BFCLR */ -{ NULL, 0x00000000, 60864 }, /* BFFFO */ -{ NULL, 0x00000000, 60880 }, /* BFFFO */ -{ NULL, 0x00000000, 60904 }, /* BFFFO */ -{ NULL, 0x00000000, 60912 }, /* BFFFO */ -{ NULL, 0x00000000, 60920 }, /* BFFFO */ -{ NULL, 0x00000000, 60921 }, /* BFFFO */ -{ NULL, 0x00000000, 60922 }, /* BFFFO */ -{ NULL, 0x00000000, 60923 }, /* BFFFO */ -{ NULL, 0x00000000, 61120 }, /* BFSET */ -{ NULL, 0x00000000, 61136 }, /* BFSET */ -{ NULL, 0x00000000, 61160 }, /* BFSET */ -{ NULL, 0x00000000, 61168 }, /* BFSET */ -{ NULL, 0x00000000, 61176 }, /* BFSET */ -{ NULL, 0x00000000, 61177 }, /* BFSET */ -{ NULL, 0x00000000, 61376 }, /* BFINS */ -{ NULL, 0x00000000, 61392 }, /* BFINS */ -{ NULL, 0x00000000, 61416 }, /* BFINS */ -{ NULL, 0x00000000, 61424 }, /* BFINS */ -{ NULL, 0x00000000, 61432 }, /* BFINS */ -{ NULL, 0x00000000, 61433 }, /* BFINS */ -{ NULL, 0x00000001, 61440 }, /* MMUOP030 */ -{ NULL, 0x00000001, 61448 }, /* MMUOP030 */ -{ NULL, 0x00000001, 61456 }, /* MMUOP030 */ -{ NULL, 0x00000001, 61464 }, /* MMUOP030 */ -{ NULL, 0x00000001, 61472 }, /* MMUOP030 */ -{ NULL, 0x00000001, 61480 }, /* MMUOP030 */ -{ NULL, 0x00000001, 61488 }, /* MMUOP030 */ -{ NULL, 0x00000001, 61496 }, /* MMUOP030 */ -{ NULL, 0x00000001, 61497 }, /* MMUOP030 */ -{ NULL, 0x00000022, 61952 }, /* FPP */ -{ NULL, 0x00000022, 61960 }, /* FPP */ -{ NULL, 0x00000022, 61968 }, /* FPP */ -{ NULL, 0x00000022, 61976 }, /* FPP */ -{ NULL, 0x00000022, 61984 }, /* FPP */ -{ NULL, 0x00000022, 61992 }, /* FPP */ -{ NULL, 0x00000022, 62000 }, /* FPP */ -{ NULL, 0x00000022, 62008 }, /* FPP */ -{ NULL, 0x00000022, 62009 }, /* FPP */ -{ NULL, 0x00000022, 62010 }, /* FPP */ -{ NULL, 0x00000022, 62011 }, /* FPP */ -{ NULL, 0x00000022, 62012 }, /* FPP */ -{ NULL, 0x00000006, 62016 }, /* FScc */ -{ NULL, 0x00000021, 62024 }, /* FDBcc */ -{ NULL, 0x00000006, 62032 }, /* FScc */ -{ NULL, 0x00000006, 62040 }, /* FScc */ -{ NULL, 0x00000006, 62048 }, /* FScc */ -{ NULL, 0x00000006, 62056 }, /* FScc */ -{ NULL, 0x00000006, 62064 }, /* FScc */ -{ NULL, 0x00000006, 62072 }, /* FScc */ -{ NULL, 0x00000006, 62073 }, /* FScc */ -{ NULL, 0x00000021, 62074 }, /* FTRAPcc */ -{ NULL, 0x00000021, 62075 }, /* FTRAPcc */ -{ NULL, 0x00000021, 62076 }, /* FTRAPcc */ -{ NULL, 0x00000005, 62080 }, /* FBcc */ -{ NULL, 0x00000005, 62144 }, /* FBcc */ -{ NULL, 0x00000020, 62224 }, /* FSAVE */ -{ NULL, 0x00000020, 62240 }, /* FSAVE */ -{ NULL, 0x00000020, 62248 }, /* FSAVE */ -{ NULL, 0x00000020, 62256 }, /* FSAVE */ -{ NULL, 0x00000020, 62264 }, /* FSAVE */ -{ NULL, 0x00000020, 62265 }, /* FSAVE */ -{ NULL, 0x00000020, 62288 }, /* FRESTORE */ -{ NULL, 0x00000020, 62296 }, /* FRESTORE */ -{ NULL, 0x00000020, 62312 }, /* FRESTORE */ -{ NULL, 0x00000020, 62320 }, /* FRESTORE */ -{ NULL, 0x00000020, 62328 }, /* FRESTORE */ -{ NULL, 0x00000020, 62329 }, /* FRESTORE */ -{ NULL, 0x00000020, 62330 }, /* FRESTORE */ -{ NULL, 0x00000020, 62331 }, /* FRESTORE */ -{ NULL, 0x00000001, 62472 }, /* CINVL */ -{ NULL, 0x00000001, 62480 }, /* CINVP */ -{ NULL, 0x00000001, 62488 }, /* CINVA */ -{ NULL, 0x00000001, 62489 }, /* CINVA */ -{ NULL, 0x00000001, 62490 }, /* CINVA */ -{ NULL, 0x00000001, 62491 }, /* CINVA */ -{ NULL, 0x00000001, 62492 }, /* CINVA */ -{ NULL, 0x00000001, 62493 }, /* CINVA */ -{ NULL, 0x00000001, 62494 }, /* CINVA */ -{ NULL, 0x00000001, 62495 }, /* CINVA */ -{ NULL, 0x00000001, 62504 }, /* CPUSHL */ -{ NULL, 0x00000001, 62512 }, /* CPUSHP */ -{ NULL, 0x00000001, 62520 }, /* CPUSHA */ -{ NULL, 0x00000001, 62521 }, /* CPUSHA */ -{ NULL, 0x00000001, 62522 }, /* CPUSHA */ -{ NULL, 0x00000001, 62523 }, /* CPUSHA */ -{ NULL, 0x00000001, 62524 }, /* CPUSHA */ -{ NULL, 0x00000001, 62525 }, /* CPUSHA */ -{ NULL, 0x00000001, 62526 }, /* CPUSHA */ -{ NULL, 0x00000001, 62527 }, /* CPUSHA */ -{ NULL, 0x00000001, 62720 }, /* PFLUSHN */ -{ NULL, 0x00000001, 62728 }, /* PFLUSH */ -{ NULL, 0x00000001, 62736 }, /* PFLUSHAN */ -{ NULL, 0x00000001, 62744 }, /* PFLUSHA */ -{ NULL, 0x00000001, 62792 }, /* PTESTR */ -{ NULL, 0x00000001, 62824 }, /* PTESTW */ -{ NULL, 0x00000001, 62856 }, /* PLPAR */ -{ NULL, 0x00000001, 62920 }, /* PLPAW */ -{ op_f600_0_comp_nf, 0x00000002, 62976 }, /* MOVE16 */ -{ op_f608_0_comp_nf, 0x00000002, 62984 }, /* MOVE16 */ -{ op_f610_0_comp_nf, 0x00000002, 62992 }, /* MOVE16 */ -{ op_f618_0_comp_nf, 0x00000002, 63000 }, /* MOVE16 */ -{ op_f620_0_comp_nf, 0x00000002, 63008 }, /* MOVE16 */ -{ NULL, 0x00000001, 63488 }, /* LPSTOP */ -{ 0, 0,65536 }}; +extern const struct comptbl op_smalltbl_0_comp_ff[] = +{ + { op_0_0_comp_ff, 0x00000002, 0 }, /* OR */ + { op_10_0_comp_ff, 0x00000002, 16 }, /* OR */ + { op_18_0_comp_ff, 0x00000002, 24 }, /* OR */ + { op_20_0_comp_ff, 0x00000002, 32 }, /* OR */ + { op_28_0_comp_ff, 0x00000002, 40 }, /* OR */ + { op_30_0_comp_ff, 0x00000002, 48 }, /* OR */ + { op_38_0_comp_ff, 0x00000002, 56 }, /* OR */ + { op_39_0_comp_ff, 0x00000002, 57 }, /* OR */ + { op_3c_0_comp_ff, 0x00000002, 60 }, /* ORSR */ + { op_40_0_comp_ff, 0x00000002, 64 }, /* OR */ + { op_50_0_comp_ff, 0x00000002, 80 }, /* OR */ + { op_58_0_comp_ff, 0x00000002, 88 }, /* OR */ + { op_60_0_comp_ff, 0x00000002, 96 }, /* OR */ + { op_68_0_comp_ff, 0x00000002, 104 }, /* OR */ + { op_70_0_comp_ff, 0x00000002, 112 }, /* OR */ + { op_78_0_comp_ff, 0x00000002, 120 }, /* OR */ + { op_79_0_comp_ff, 0x00000002, 121 }, /* OR */ + { NULL, 0x00000002, 124 }, /* ORSR */ + { op_80_0_comp_ff, 0x00000002, 128 }, /* OR */ + { op_90_0_comp_ff, 0x00000002, 144 }, /* OR */ + { op_98_0_comp_ff, 0x00000002, 152 }, /* OR */ + { op_a0_0_comp_ff, 0x00000002, 160 }, /* OR */ + { op_a8_0_comp_ff, 0x00000002, 168 }, /* OR */ + { op_b0_0_comp_ff, 0x00000002, 176 }, /* OR */ + { op_b8_0_comp_ff, 0x00000002, 184 }, /* OR */ + { op_b9_0_comp_ff, 0x00000002, 185 }, /* OR */ + { NULL, 0x00000001, 208 }, /* CHK2 */ + { NULL, 0x00000001, 232 }, /* CHK2 */ + { NULL, 0x00000001, 240 }, /* CHK2 */ + { NULL, 0x00000001, 248 }, /* CHK2 */ + { NULL, 0x00000001, 249 }, /* CHK2 */ + { NULL, 0x00000001, 250 }, /* CHK2 */ + { NULL, 0x00000001, 251 }, /* CHK2 */ + { op_100_0_comp_ff, 0x00000000, 256 }, /* BTST */ + { NULL, 0x00000001, 264 }, /* MVPMR */ + { op_110_0_comp_ff, 0x00000000, 272 }, /* BTST */ + { op_118_0_comp_ff, 0x00000000, 280 }, /* BTST */ + { op_120_0_comp_ff, 0x00000000, 288 }, /* BTST */ + { op_128_0_comp_ff, 0x00000002, 296 }, /* BTST */ + { op_130_0_comp_ff, 0x00000002, 304 }, /* BTST */ + { op_138_0_comp_ff, 0x00000002, 312 }, /* BTST */ + { op_139_0_comp_ff, 0x00000002, 313 }, /* BTST */ + { op_13a_0_comp_ff, 0x00000002, 314 }, /* BTST */ + { op_13b_0_comp_ff, 0x00000002, 315 }, /* BTST */ + { op_13c_0_comp_ff, 0x00000002, 316 }, /* BTST */ + { op_140_0_comp_ff, 0x00000000, 320 }, /* BCHG */ + { NULL, 0x00000001, 328 }, /* MVPMR */ + { op_150_0_comp_ff, 0x00000000, 336 }, /* BCHG */ + { op_158_0_comp_ff, 0x00000000, 344 }, /* BCHG */ + { op_160_0_comp_ff, 0x00000000, 352 }, /* BCHG */ + { op_168_0_comp_ff, 0x00000002, 360 }, /* BCHG */ + { op_170_0_comp_ff, 0x00000002, 368 }, /* BCHG */ + { op_178_0_comp_ff, 0x00000002, 376 }, /* BCHG */ + { op_179_0_comp_ff, 0x00000002, 377 }, /* BCHG */ + { op_180_0_comp_ff, 0x00000000, 384 }, /* BCLR */ + { NULL, 0x00000001, 392 }, /* MVPRM */ + { op_190_0_comp_ff, 0x00000000, 400 }, /* BCLR */ + { op_198_0_comp_ff, 0x00000000, 408 }, /* BCLR */ + { op_1a0_0_comp_ff, 0x00000000, 416 }, /* BCLR */ + { op_1a8_0_comp_ff, 0x00000002, 424 }, /* BCLR */ + { op_1b0_0_comp_ff, 0x00000002, 432 }, /* BCLR */ + { op_1b8_0_comp_ff, 0x00000002, 440 }, /* BCLR */ + { op_1b9_0_comp_ff, 0x00000002, 441 }, /* BCLR */ + { op_1c0_0_comp_ff, 0x00000000, 448 }, /* BSET */ + { NULL, 0x00000001, 456 }, /* MVPRM */ + { op_1d0_0_comp_ff, 0x00000000, 464 }, /* BSET */ + { op_1d8_0_comp_ff, 0x00000000, 472 }, /* BSET */ + { op_1e0_0_comp_ff, 0x00000000, 480 }, /* BSET */ + { op_1e8_0_comp_ff, 0x00000002, 488 }, /* BSET */ + { op_1f0_0_comp_ff, 0x00000002, 496 }, /* BSET */ + { op_1f8_0_comp_ff, 0x00000002, 504 }, /* BSET */ + { op_1f9_0_comp_ff, 0x00000002, 505 }, /* BSET */ + { op_200_0_comp_ff, 0x00000002, 512 }, /* AND */ + { op_210_0_comp_ff, 0x00000002, 528 }, /* AND */ + { op_218_0_comp_ff, 0x00000002, 536 }, /* AND */ + { op_220_0_comp_ff, 0x00000002, 544 }, /* AND */ + { op_228_0_comp_ff, 0x00000002, 552 }, /* AND */ + { op_230_0_comp_ff, 0x00000002, 560 }, /* AND */ + { op_238_0_comp_ff, 0x00000002, 568 }, /* AND */ + { op_239_0_comp_ff, 0x00000002, 569 }, /* AND */ + { op_23c_0_comp_ff, 0x00000002, 572 }, /* ANDSR */ + { op_240_0_comp_ff, 0x00000002, 576 }, /* AND */ + { op_250_0_comp_ff, 0x00000002, 592 }, /* AND */ + { op_258_0_comp_ff, 0x00000002, 600 }, /* AND */ + { op_260_0_comp_ff, 0x00000002, 608 }, /* AND */ + { op_268_0_comp_ff, 0x00000002, 616 }, /* AND */ + { op_270_0_comp_ff, 0x00000002, 624 }, /* AND */ + { op_278_0_comp_ff, 0x00000002, 632 }, /* AND */ + { op_279_0_comp_ff, 0x00000002, 633 }, /* AND */ + { NULL, 0x00000002, 636 }, /* ANDSR */ + { op_280_0_comp_ff, 0x00000002, 640 }, /* AND */ + { op_290_0_comp_ff, 0x00000002, 656 }, /* AND */ + { op_298_0_comp_ff, 0x00000002, 664 }, /* AND */ + { op_2a0_0_comp_ff, 0x00000002, 672 }, /* AND */ + { op_2a8_0_comp_ff, 0x00000002, 680 }, /* AND */ + { op_2b0_0_comp_ff, 0x00000002, 688 }, /* AND */ + { op_2b8_0_comp_ff, 0x00000002, 696 }, /* AND */ + { op_2b9_0_comp_ff, 0x00000002, 697 }, /* AND */ + { NULL, 0x00000001, 720 }, /* CHK2 */ + { NULL, 0x00000001, 744 }, /* CHK2 */ + { NULL, 0x00000001, 752 }, /* CHK2 */ + { NULL, 0x00000001, 760 }, /* CHK2 */ + { NULL, 0x00000001, 761 }, /* CHK2 */ + { NULL, 0x00000001, 762 }, /* CHK2 */ + { NULL, 0x00000001, 763 }, /* CHK2 */ + { op_400_0_comp_ff, 0x00000002, 1024 }, /* SUB */ + { op_410_0_comp_ff, 0x00000002, 1040 }, /* SUB */ + { op_418_0_comp_ff, 0x00000002, 1048 }, /* SUB */ + { op_420_0_comp_ff, 0x00000002, 1056 }, /* SUB */ + { op_428_0_comp_ff, 0x00000002, 1064 }, /* SUB */ + { op_430_0_comp_ff, 0x00000002, 1072 }, /* SUB */ + { op_438_0_comp_ff, 0x00000002, 1080 }, /* SUB */ + { op_439_0_comp_ff, 0x00000002, 1081 }, /* SUB */ + { op_440_0_comp_ff, 0x00000002, 1088 }, /* SUB */ + { op_450_0_comp_ff, 0x00000002, 1104 }, /* SUB */ + { op_458_0_comp_ff, 0x00000002, 1112 }, /* SUB */ + { op_460_0_comp_ff, 0x00000002, 1120 }, /* SUB */ + { op_468_0_comp_ff, 0x00000002, 1128 }, /* SUB */ + { op_470_0_comp_ff, 0x00000002, 1136 }, /* SUB */ + { op_478_0_comp_ff, 0x00000002, 1144 }, /* SUB */ + { op_479_0_comp_ff, 0x00000002, 1145 }, /* SUB */ + { op_480_0_comp_ff, 0x00000002, 1152 }, /* SUB */ + { op_490_0_comp_ff, 0x00000002, 1168 }, /* SUB */ + { op_498_0_comp_ff, 0x00000002, 1176 }, /* SUB */ + { op_4a0_0_comp_ff, 0x00000002, 1184 }, /* SUB */ + { op_4a8_0_comp_ff, 0x00000002, 1192 }, /* SUB */ + { op_4b0_0_comp_ff, 0x00000002, 1200 }, /* SUB */ + { op_4b8_0_comp_ff, 0x00000002, 1208 }, /* SUB */ + { op_4b9_0_comp_ff, 0x00000002, 1209 }, /* SUB */ + { NULL, 0x00000001, 1232 }, /* CHK2 */ + { NULL, 0x00000001, 1256 }, /* CHK2 */ + { NULL, 0x00000001, 1264 }, /* CHK2 */ + { NULL, 0x00000001, 1272 }, /* CHK2 */ + { NULL, 0x00000001, 1273 }, /* CHK2 */ + { NULL, 0x00000001, 1274 }, /* CHK2 */ + { NULL, 0x00000001, 1275 }, /* CHK2 */ + { op_600_0_comp_ff, 0x00000002, 1536 }, /* ADD */ + { op_610_0_comp_ff, 0x00000002, 1552 }, /* ADD */ + { op_618_0_comp_ff, 0x00000002, 1560 }, /* ADD */ + { op_620_0_comp_ff, 0x00000002, 1568 }, /* ADD */ + { op_628_0_comp_ff, 0x00000002, 1576 }, /* ADD */ + { op_630_0_comp_ff, 0x00000002, 1584 }, /* ADD */ + { op_638_0_comp_ff, 0x00000002, 1592 }, /* ADD */ + { op_639_0_comp_ff, 0x00000002, 1593 }, /* ADD */ + { op_640_0_comp_ff, 0x00000002, 1600 }, /* ADD */ + { op_650_0_comp_ff, 0x00000002, 1616 }, /* ADD */ + { op_658_0_comp_ff, 0x00000002, 1624 }, /* ADD */ + { op_660_0_comp_ff, 0x00000002, 1632 }, /* ADD */ + { op_668_0_comp_ff, 0x00000002, 1640 }, /* ADD */ + { op_670_0_comp_ff, 0x00000002, 1648 }, /* ADD */ + { op_678_0_comp_ff, 0x00000002, 1656 }, /* ADD */ + { op_679_0_comp_ff, 0x00000002, 1657 }, /* ADD */ + { op_680_0_comp_ff, 0x00000002, 1664 }, /* ADD */ + { op_690_0_comp_ff, 0x00000002, 1680 }, /* ADD */ + { op_698_0_comp_ff, 0x00000002, 1688 }, /* ADD */ + { op_6a0_0_comp_ff, 0x00000002, 1696 }, /* ADD */ + { op_6a8_0_comp_ff, 0x00000002, 1704 }, /* ADD */ + { op_6b0_0_comp_ff, 0x00000002, 1712 }, /* ADD */ + { op_6b8_0_comp_ff, 0x00000002, 1720 }, /* ADD */ + { op_6b9_0_comp_ff, 0x00000002, 1721 }, /* ADD */ + { NULL, 0x00000001, 1728 }, /* RTM */ + { NULL, 0x00000001, 1736 }, /* RTM */ + { NULL, 0x00000001, 1744 }, /* CALLM */ + { NULL, 0x00000001, 1768 }, /* CALLM */ + { NULL, 0x00000001, 1776 }, /* CALLM */ + { NULL, 0x00000001, 1784 }, /* CALLM */ + { NULL, 0x00000001, 1785 }, /* CALLM */ + { NULL, 0x00000001, 1786 }, /* CALLM */ + { NULL, 0x00000001, 1787 }, /* CALLM */ + { op_800_0_comp_ff, 0x00000002, 2048 }, /* BTST */ + { op_810_0_comp_ff, 0x00000002, 2064 }, /* BTST */ + { op_818_0_comp_ff, 0x00000002, 2072 }, /* BTST */ + { op_820_0_comp_ff, 0x00000002, 2080 }, /* BTST */ + { op_828_0_comp_ff, 0x00000002, 2088 }, /* BTST */ + { op_830_0_comp_ff, 0x00000002, 2096 }, /* BTST */ + { op_838_0_comp_ff, 0x00000002, 2104 }, /* BTST */ + { op_839_0_comp_ff, 0x00000002, 2105 }, /* BTST */ + { op_83a_0_comp_ff, 0x00000002, 2106 }, /* BTST */ + { op_83b_0_comp_ff, 0x00000002, 2107 }, /* BTST */ + { op_83c_0_comp_ff, 0x00000002, 2108 }, /* BTST */ + { op_840_0_comp_ff, 0x00000002, 2112 }, /* BCHG */ + { op_850_0_comp_ff, 0x00000002, 2128 }, /* BCHG */ + { op_858_0_comp_ff, 0x00000002, 2136 }, /* BCHG */ + { op_860_0_comp_ff, 0x00000002, 2144 }, /* BCHG */ + { op_868_0_comp_ff, 0x00000002, 2152 }, /* BCHG */ + { op_870_0_comp_ff, 0x00000002, 2160 }, /* BCHG */ + { op_878_0_comp_ff, 0x00000002, 2168 }, /* BCHG */ + { op_879_0_comp_ff, 0x00000002, 2169 }, /* BCHG */ + { op_880_0_comp_ff, 0x00000002, 2176 }, /* BCLR */ + { op_890_0_comp_ff, 0x00000002, 2192 }, /* BCLR */ + { op_898_0_comp_ff, 0x00000002, 2200 }, /* BCLR */ + { op_8a0_0_comp_ff, 0x00000002, 2208 }, /* BCLR */ + { op_8a8_0_comp_ff, 0x00000002, 2216 }, /* BCLR */ + { op_8b0_0_comp_ff, 0x00000002, 2224 }, /* BCLR */ + { op_8b8_0_comp_ff, 0x00000002, 2232 }, /* BCLR */ + { op_8b9_0_comp_ff, 0x00000002, 2233 }, /* BCLR */ + { op_8c0_0_comp_ff, 0x00000002, 2240 }, /* BSET */ + { op_8d0_0_comp_ff, 0x00000002, 2256 }, /* BSET */ + { op_8d8_0_comp_ff, 0x00000002, 2264 }, /* BSET */ + { op_8e0_0_comp_ff, 0x00000002, 2272 }, /* BSET */ + { op_8e8_0_comp_ff, 0x00000002, 2280 }, /* BSET */ + { op_8f0_0_comp_ff, 0x00000002, 2288 }, /* BSET */ + { op_8f8_0_comp_ff, 0x00000002, 2296 }, /* BSET */ + { op_8f9_0_comp_ff, 0x00000002, 2297 }, /* BSET */ + { op_a00_0_comp_ff, 0x00000002, 2560 }, /* EOR */ + { op_a10_0_comp_ff, 0x00000002, 2576 }, /* EOR */ + { op_a18_0_comp_ff, 0x00000002, 2584 }, /* EOR */ + { op_a20_0_comp_ff, 0x00000002, 2592 }, /* EOR */ + { op_a28_0_comp_ff, 0x00000002, 2600 }, /* EOR */ + { op_a30_0_comp_ff, 0x00000002, 2608 }, /* EOR */ + { op_a38_0_comp_ff, 0x00000002, 2616 }, /* EOR */ + { op_a39_0_comp_ff, 0x00000002, 2617 }, /* EOR */ + { op_a3c_0_comp_ff, 0x00000002, 2620 }, /* EORSR */ + { op_a40_0_comp_ff, 0x00000002, 2624 }, /* EOR */ + { op_a50_0_comp_ff, 0x00000002, 2640 }, /* EOR */ + { op_a58_0_comp_ff, 0x00000002, 2648 }, /* EOR */ + { op_a60_0_comp_ff, 0x00000002, 2656 }, /* EOR */ + { op_a68_0_comp_ff, 0x00000002, 2664 }, /* EOR */ + { op_a70_0_comp_ff, 0x00000002, 2672 }, /* EOR */ + { op_a78_0_comp_ff, 0x00000002, 2680 }, /* EOR */ + { op_a79_0_comp_ff, 0x00000002, 2681 }, /* EOR */ + { NULL, 0x00000002, 2684 }, /* EORSR */ + { op_a80_0_comp_ff, 0x00000002, 2688 }, /* EOR */ + { op_a90_0_comp_ff, 0x00000002, 2704 }, /* EOR */ + { op_a98_0_comp_ff, 0x00000002, 2712 }, /* EOR */ + { op_aa0_0_comp_ff, 0x00000002, 2720 }, /* EOR */ + { op_aa8_0_comp_ff, 0x00000002, 2728 }, /* EOR */ + { op_ab0_0_comp_ff, 0x00000002, 2736 }, /* EOR */ + { op_ab8_0_comp_ff, 0x00000002, 2744 }, /* EOR */ + { op_ab9_0_comp_ff, 0x00000002, 2745 }, /* EOR */ + { NULL, 0x00000000, 2768 }, /* CAS */ + { NULL, 0x00000000, 2776 }, /* CAS */ + { NULL, 0x00000000, 2784 }, /* CAS */ + { NULL, 0x00000000, 2792 }, /* CAS */ + { NULL, 0x00000000, 2800 }, /* CAS */ + { NULL, 0x00000000, 2808 }, /* CAS */ + { NULL, 0x00000000, 2809 }, /* CAS */ + { op_c00_0_comp_ff, 0x00000002, 3072 }, /* CMP */ + { op_c10_0_comp_ff, 0x00000002, 3088 }, /* CMP */ + { op_c18_0_comp_ff, 0x00000002, 3096 }, /* CMP */ + { op_c20_0_comp_ff, 0x00000002, 3104 }, /* CMP */ + { op_c28_0_comp_ff, 0x00000002, 3112 }, /* CMP */ + { op_c30_0_comp_ff, 0x00000002, 3120 }, /* CMP */ + { op_c38_0_comp_ff, 0x00000002, 3128 }, /* CMP */ + { op_c39_0_comp_ff, 0x00000002, 3129 }, /* CMP */ + { op_c3a_0_comp_ff, 0x00000002, 3130 }, /* CMP */ + { op_c3b_0_comp_ff, 0x00000002, 3131 }, /* CMP */ + { op_c40_0_comp_ff, 0x00000002, 3136 }, /* CMP */ + { op_c50_0_comp_ff, 0x00000002, 3152 }, /* CMP */ + { op_c58_0_comp_ff, 0x00000002, 3160 }, /* CMP */ + { op_c60_0_comp_ff, 0x00000002, 3168 }, /* CMP */ + { op_c68_0_comp_ff, 0x00000002, 3176 }, /* CMP */ + { op_c70_0_comp_ff, 0x00000002, 3184 }, /* CMP */ + { op_c78_0_comp_ff, 0x00000002, 3192 }, /* CMP */ + { op_c79_0_comp_ff, 0x00000002, 3193 }, /* CMP */ + { op_c7a_0_comp_ff, 0x00000002, 3194 }, /* CMP */ + { op_c7b_0_comp_ff, 0x00000002, 3195 }, /* CMP */ + { op_c80_0_comp_ff, 0x00000002, 3200 }, /* CMP */ + { op_c90_0_comp_ff, 0x00000002, 3216 }, /* CMP */ + { op_c98_0_comp_ff, 0x00000002, 3224 }, /* CMP */ + { op_ca0_0_comp_ff, 0x00000002, 3232 }, /* CMP */ + { op_ca8_0_comp_ff, 0x00000002, 3240 }, /* CMP */ + { op_cb0_0_comp_ff, 0x00000002, 3248 }, /* CMP */ + { op_cb8_0_comp_ff, 0x00000002, 3256 }, /* CMP */ + { op_cb9_0_comp_ff, 0x00000002, 3257 }, /* CMP */ + { op_cba_0_comp_ff, 0x00000002, 3258 }, /* CMP */ + { op_cbb_0_comp_ff, 0x00000002, 3259 }, /* CMP */ + { NULL, 0x00000000, 3280 }, /* CAS */ + { NULL, 0x00000000, 3288 }, /* CAS */ + { NULL, 0x00000000, 3296 }, /* CAS */ + { NULL, 0x00000000, 3304 }, /* CAS */ + { NULL, 0x00000000, 3312 }, /* CAS */ + { NULL, 0x00000000, 3320 }, /* CAS */ + { NULL, 0x00000000, 3321 }, /* CAS */ + { NULL, 0x00000000, 3324 }, /* CAS2 */ + { NULL, 0x00000001, 3600 }, /* MOVES */ + { NULL, 0x00000001, 3608 }, /* MOVES */ + { NULL, 0x00000001, 3616 }, /* MOVES */ + { NULL, 0x00000001, 3624 }, /* MOVES */ + { NULL, 0x00000001, 3632 }, /* MOVES */ + { NULL, 0x00000001, 3640 }, /* MOVES */ + { NULL, 0x00000001, 3641 }, /* MOVES */ + { NULL, 0x00000001, 3664 }, /* MOVES */ + { NULL, 0x00000001, 3672 }, /* MOVES */ + { NULL, 0x00000001, 3680 }, /* MOVES */ + { NULL, 0x00000001, 3688 }, /* MOVES */ + { NULL, 0x00000001, 3696 }, /* MOVES */ + { NULL, 0x00000001, 3704 }, /* MOVES */ + { NULL, 0x00000001, 3705 }, /* MOVES */ + { NULL, 0x00000001, 3728 }, /* MOVES */ + { NULL, 0x00000001, 3736 }, /* MOVES */ + { NULL, 0x00000001, 3744 }, /* MOVES */ + { NULL, 0x00000001, 3752 }, /* MOVES */ + { NULL, 0x00000001, 3760 }, /* MOVES */ + { NULL, 0x00000001, 3768 }, /* MOVES */ + { NULL, 0x00000001, 3769 }, /* MOVES */ + { NULL, 0x00000000, 3792 }, /* CAS */ + { NULL, 0x00000000, 3800 }, /* CAS */ + { NULL, 0x00000000, 3808 }, /* CAS */ + { NULL, 0x00000000, 3816 }, /* CAS */ + { NULL, 0x00000000, 3824 }, /* CAS */ + { NULL, 0x00000000, 3832 }, /* CAS */ + { NULL, 0x00000000, 3833 }, /* CAS */ + { NULL, 0x00000000, 3836 }, /* CAS2 */ + { op_1000_0_comp_ff, 0x00000000, 4096 }, /* MOVE */ + { op_1010_0_comp_ff, 0x00000000, 4112 }, /* MOVE */ + { op_1018_0_comp_ff, 0x00000000, 4120 }, /* MOVE */ + { op_1020_0_comp_ff, 0x00000000, 4128 }, /* MOVE */ + { op_1028_0_comp_ff, 0x00000002, 4136 }, /* MOVE */ + { op_1030_0_comp_ff, 0x00000002, 4144 }, /* MOVE */ + { op_1038_0_comp_ff, 0x00000002, 4152 }, /* MOVE */ + { op_1039_0_comp_ff, 0x00000002, 4153 }, /* MOVE */ + { op_103a_0_comp_ff, 0x00000002, 4154 }, /* MOVE */ + { op_103b_0_comp_ff, 0x00000002, 4155 }, /* MOVE */ + { op_103c_0_comp_ff, 0x00000002, 4156 }, /* MOVE */ + { op_1080_0_comp_ff, 0x00000000, 4224 }, /* MOVE */ + { op_1090_0_comp_ff, 0x00000000, 4240 }, /* MOVE */ + { op_1098_0_comp_ff, 0x00000000, 4248 }, /* MOVE */ + { op_10a0_0_comp_ff, 0x00000000, 4256 }, /* MOVE */ + { op_10a8_0_comp_ff, 0x00000002, 4264 }, /* MOVE */ + { op_10b0_0_comp_ff, 0x00000002, 4272 }, /* MOVE */ + { op_10b8_0_comp_ff, 0x00000002, 4280 }, /* MOVE */ + { op_10b9_0_comp_ff, 0x00000002, 4281 }, /* MOVE */ + { op_10ba_0_comp_ff, 0x00000002, 4282 }, /* MOVE */ + { op_10bb_0_comp_ff, 0x00000002, 4283 }, /* MOVE */ + { op_10bc_0_comp_ff, 0x00000002, 4284 }, /* MOVE */ + { op_10c0_0_comp_ff, 0x00000000, 4288 }, /* MOVE */ + { op_10d0_0_comp_ff, 0x00000000, 4304 }, /* MOVE */ + { op_10d8_0_comp_ff, 0x00000000, 4312 }, /* MOVE */ + { op_10e0_0_comp_ff, 0x00000000, 4320 }, /* MOVE */ + { op_10e8_0_comp_ff, 0x00000002, 4328 }, /* MOVE */ + { op_10f0_0_comp_ff, 0x00000002, 4336 }, /* MOVE */ + { op_10f8_0_comp_ff, 0x00000002, 4344 }, /* MOVE */ + { op_10f9_0_comp_ff, 0x00000002, 4345 }, /* MOVE */ + { op_10fa_0_comp_ff, 0x00000002, 4346 }, /* MOVE */ + { op_10fb_0_comp_ff, 0x00000002, 4347 }, /* MOVE */ + { op_10fc_0_comp_ff, 0x00000002, 4348 }, /* MOVE */ + { op_1100_0_comp_ff, 0x00000000, 4352 }, /* MOVE */ + { op_1110_0_comp_ff, 0x00000000, 4368 }, /* MOVE */ + { op_1118_0_comp_ff, 0x00000000, 4376 }, /* MOVE */ + { op_1120_0_comp_ff, 0x00000000, 4384 }, /* MOVE */ + { op_1128_0_comp_ff, 0x00000002, 4392 }, /* MOVE */ + { op_1130_0_comp_ff, 0x00000002, 4400 }, /* MOVE */ + { op_1138_0_comp_ff, 0x00000002, 4408 }, /* MOVE */ + { op_1139_0_comp_ff, 0x00000002, 4409 }, /* MOVE */ + { op_113a_0_comp_ff, 0x00000002, 4410 }, /* MOVE */ + { op_113b_0_comp_ff, 0x00000002, 4411 }, /* MOVE */ + { op_113c_0_comp_ff, 0x00000002, 4412 }, /* MOVE */ + { op_1140_0_comp_ff, 0x00000002, 4416 }, /* MOVE */ + { op_1150_0_comp_ff, 0x00000002, 4432 }, /* MOVE */ + { op_1158_0_comp_ff, 0x00000002, 4440 }, /* MOVE */ + { op_1160_0_comp_ff, 0x00000002, 4448 }, /* MOVE */ + { op_1168_0_comp_ff, 0x00000002, 4456 }, /* MOVE */ + { op_1170_0_comp_ff, 0x00000002, 4464 }, /* MOVE */ + { op_1178_0_comp_ff, 0x00000002, 4472 }, /* MOVE */ + { op_1179_0_comp_ff, 0x00000002, 4473 }, /* MOVE */ + { op_117a_0_comp_ff, 0x00000002, 4474 }, /* MOVE */ + { op_117b_0_comp_ff, 0x00000002, 4475 }, /* MOVE */ + { op_117c_0_comp_ff, 0x00000002, 4476 }, /* MOVE */ + { op_1180_0_comp_ff, 0x00000002, 4480 }, /* MOVE */ + { op_1190_0_comp_ff, 0x00000002, 4496 }, /* MOVE */ + { op_1198_0_comp_ff, 0x00000002, 4504 }, /* MOVE */ + { op_11a0_0_comp_ff, 0x00000002, 4512 }, /* MOVE */ + { op_11a8_0_comp_ff, 0x00000002, 4520 }, /* MOVE */ + { op_11b0_0_comp_ff, 0x00000002, 4528 }, /* MOVE */ + { op_11b8_0_comp_ff, 0x00000002, 4536 }, /* MOVE */ + { op_11b9_0_comp_ff, 0x00000002, 4537 }, /* MOVE */ + { op_11ba_0_comp_ff, 0x00000002, 4538 }, /* MOVE */ + { op_11bb_0_comp_ff, 0x00000002, 4539 }, /* MOVE */ + { op_11bc_0_comp_ff, 0x00000002, 4540 }, /* MOVE */ + { op_11c0_0_comp_ff, 0x00000002, 4544 }, /* MOVE */ + { op_11d0_0_comp_ff, 0x00000002, 4560 }, /* MOVE */ + { op_11d8_0_comp_ff, 0x00000002, 4568 }, /* MOVE */ + { op_11e0_0_comp_ff, 0x00000002, 4576 }, /* MOVE */ + { op_11e8_0_comp_ff, 0x00000002, 4584 }, /* MOVE */ + { op_11f0_0_comp_ff, 0x00000002, 4592 }, /* MOVE */ + { op_11f8_0_comp_ff, 0x00000002, 4600 }, /* MOVE */ + { op_11f9_0_comp_ff, 0x00000002, 4601 }, /* MOVE */ + { op_11fa_0_comp_ff, 0x00000002, 4602 }, /* MOVE */ + { op_11fb_0_comp_ff, 0x00000002, 4603 }, /* MOVE */ + { op_11fc_0_comp_ff, 0x00000002, 4604 }, /* MOVE */ + { op_13c0_0_comp_ff, 0x00000002, 5056 }, /* MOVE */ + { op_13d0_0_comp_ff, 0x00000002, 5072 }, /* MOVE */ + { op_13d8_0_comp_ff, 0x00000002, 5080 }, /* MOVE */ + { op_13e0_0_comp_ff, 0x00000002, 5088 }, /* MOVE */ + { op_13e8_0_comp_ff, 0x00000002, 5096 }, /* MOVE */ + { op_13f0_0_comp_ff, 0x00000002, 5104 }, /* MOVE */ + { op_13f8_0_comp_ff, 0x00000002, 5112 }, /* MOVE */ + { op_13f9_0_comp_ff, 0x00000002, 5113 }, /* MOVE */ + { op_13fa_0_comp_ff, 0x00000002, 5114 }, /* MOVE */ + { op_13fb_0_comp_ff, 0x00000002, 5115 }, /* MOVE */ + { op_13fc_0_comp_ff, 0x00000002, 5116 }, /* MOVE */ + { op_2000_0_comp_ff, 0x00000000, 8192 }, /* MOVE */ + { op_2008_0_comp_ff, 0x00000000, 8200 }, /* MOVE */ + { op_2010_0_comp_ff, 0x00000000, 8208 }, /* MOVE */ + { op_2018_0_comp_ff, 0x00000000, 8216 }, /* MOVE */ + { op_2020_0_comp_ff, 0x00000000, 8224 }, /* MOVE */ + { op_2028_0_comp_ff, 0x00000002, 8232 }, /* MOVE */ + { op_2030_0_comp_ff, 0x00000002, 8240 }, /* MOVE */ + { op_2038_0_comp_ff, 0x00000002, 8248 }, /* MOVE */ + { op_2039_0_comp_ff, 0x00000002, 8249 }, /* MOVE */ + { op_203a_0_comp_ff, 0x00000002, 8250 }, /* MOVE */ + { op_203b_0_comp_ff, 0x00000002, 8251 }, /* MOVE */ + { op_203c_0_comp_ff, 0x00000002, 8252 }, /* MOVE */ + { op_2040_0_comp_ff, 0x00000000, 8256 }, /* MOVEA */ + { op_2048_0_comp_ff, 0x00000000, 8264 }, /* MOVEA */ + { op_2050_0_comp_ff, 0x00000000, 8272 }, /* MOVEA */ + { op_2058_0_comp_ff, 0x00000000, 8280 }, /* MOVEA */ + { op_2060_0_comp_ff, 0x00000000, 8288 }, /* MOVEA */ + { op_2068_0_comp_ff, 0x00000002, 8296 }, /* MOVEA */ + { op_2070_0_comp_ff, 0x00000002, 8304 }, /* MOVEA */ + { op_2078_0_comp_ff, 0x00000002, 8312 }, /* MOVEA */ + { op_2079_0_comp_ff, 0x00000002, 8313 }, /* MOVEA */ + { op_207a_0_comp_ff, 0x00000002, 8314 }, /* MOVEA */ + { op_207b_0_comp_ff, 0x00000002, 8315 }, /* MOVEA */ + { op_207c_0_comp_ff, 0x00000002, 8316 }, /* MOVEA */ + { op_2080_0_comp_ff, 0x00000000, 8320 }, /* MOVE */ + { op_2088_0_comp_ff, 0x00000000, 8328 }, /* MOVE */ + { op_2090_0_comp_ff, 0x00000000, 8336 }, /* MOVE */ + { op_2098_0_comp_ff, 0x00000000, 8344 }, /* MOVE */ + { op_20a0_0_comp_ff, 0x00000000, 8352 }, /* MOVE */ + { op_20a8_0_comp_ff, 0x00000002, 8360 }, /* MOVE */ + { op_20b0_0_comp_ff, 0x00000002, 8368 }, /* MOVE */ + { op_20b8_0_comp_ff, 0x00000002, 8376 }, /* MOVE */ + { op_20b9_0_comp_ff, 0x00000002, 8377 }, /* MOVE */ + { op_20ba_0_comp_ff, 0x00000002, 8378 }, /* MOVE */ + { op_20bb_0_comp_ff, 0x00000002, 8379 }, /* MOVE */ + { op_20bc_0_comp_ff, 0x00000002, 8380 }, /* MOVE */ + { op_20c0_0_comp_ff, 0x00000000, 8384 }, /* MOVE */ + { op_20c8_0_comp_ff, 0x00000000, 8392 }, /* MOVE */ + { op_20d0_0_comp_ff, 0x00000000, 8400 }, /* MOVE */ + { op_20d8_0_comp_ff, 0x00000000, 8408 }, /* MOVE */ + { op_20e0_0_comp_ff, 0x00000000, 8416 }, /* MOVE */ + { op_20e8_0_comp_ff, 0x00000002, 8424 }, /* MOVE */ + { op_20f0_0_comp_ff, 0x00000002, 8432 }, /* MOVE */ + { op_20f8_0_comp_ff, 0x00000002, 8440 }, /* MOVE */ + { op_20f9_0_comp_ff, 0x00000002, 8441 }, /* MOVE */ + { op_20fa_0_comp_ff, 0x00000002, 8442 }, /* MOVE */ + { op_20fb_0_comp_ff, 0x00000002, 8443 }, /* MOVE */ + { op_20fc_0_comp_ff, 0x00000002, 8444 }, /* MOVE */ + { op_2100_0_comp_ff, 0x00000000, 8448 }, /* MOVE */ + { op_2108_0_comp_ff, 0x00000000, 8456 }, /* MOVE */ + { op_2110_0_comp_ff, 0x00000000, 8464 }, /* MOVE */ + { op_2118_0_comp_ff, 0x00000000, 8472 }, /* MOVE */ + { op_2120_0_comp_ff, 0x00000000, 8480 }, /* MOVE */ + { op_2128_0_comp_ff, 0x00000002, 8488 }, /* MOVE */ + { op_2130_0_comp_ff, 0x00000002, 8496 }, /* MOVE */ + { op_2138_0_comp_ff, 0x00000002, 8504 }, /* MOVE */ + { op_2139_0_comp_ff, 0x00000002, 8505 }, /* MOVE */ + { op_213a_0_comp_ff, 0x00000002, 8506 }, /* MOVE */ + { op_213b_0_comp_ff, 0x00000002, 8507 }, /* MOVE */ + { op_213c_0_comp_ff, 0x00000002, 8508 }, /* MOVE */ + { op_2140_0_comp_ff, 0x00000002, 8512 }, /* MOVE */ + { op_2148_0_comp_ff, 0x00000002, 8520 }, /* MOVE */ + { op_2150_0_comp_ff, 0x00000002, 8528 }, /* MOVE */ + { op_2158_0_comp_ff, 0x00000002, 8536 }, /* MOVE */ + { op_2160_0_comp_ff, 0x00000002, 8544 }, /* MOVE */ + { op_2168_0_comp_ff, 0x00000002, 8552 }, /* MOVE */ + { op_2170_0_comp_ff, 0x00000002, 8560 }, /* MOVE */ + { op_2178_0_comp_ff, 0x00000002, 8568 }, /* MOVE */ + { op_2179_0_comp_ff, 0x00000002, 8569 }, /* MOVE */ + { op_217a_0_comp_ff, 0x00000002, 8570 }, /* MOVE */ + { op_217b_0_comp_ff, 0x00000002, 8571 }, /* MOVE */ + { op_217c_0_comp_ff, 0x00000002, 8572 }, /* MOVE */ + { op_2180_0_comp_ff, 0x00000002, 8576 }, /* MOVE */ + { op_2188_0_comp_ff, 0x00000002, 8584 }, /* MOVE */ + { op_2190_0_comp_ff, 0x00000002, 8592 }, /* MOVE */ + { op_2198_0_comp_ff, 0x00000002, 8600 }, /* MOVE */ + { op_21a0_0_comp_ff, 0x00000002, 8608 }, /* MOVE */ + { op_21a8_0_comp_ff, 0x00000002, 8616 }, /* MOVE */ + { op_21b0_0_comp_ff, 0x00000002, 8624 }, /* MOVE */ + { op_21b8_0_comp_ff, 0x00000002, 8632 }, /* MOVE */ + { op_21b9_0_comp_ff, 0x00000002, 8633 }, /* MOVE */ + { op_21ba_0_comp_ff, 0x00000002, 8634 }, /* MOVE */ + { op_21bb_0_comp_ff, 0x00000002, 8635 }, /* MOVE */ + { op_21bc_0_comp_ff, 0x00000002, 8636 }, /* MOVE */ + { op_21c0_0_comp_ff, 0x00000002, 8640 }, /* MOVE */ + { op_21c8_0_comp_ff, 0x00000002, 8648 }, /* MOVE */ + { op_21d0_0_comp_ff, 0x00000002, 8656 }, /* MOVE */ + { op_21d8_0_comp_ff, 0x00000002, 8664 }, /* MOVE */ + { op_21e0_0_comp_ff, 0x00000002, 8672 }, /* MOVE */ + { op_21e8_0_comp_ff, 0x00000002, 8680 }, /* MOVE */ + { op_21f0_0_comp_ff, 0x00000002, 8688 }, /* MOVE */ + { op_21f8_0_comp_ff, 0x00000002, 8696 }, /* MOVE */ + { op_21f9_0_comp_ff, 0x00000002, 8697 }, /* MOVE */ + { op_21fa_0_comp_ff, 0x00000002, 8698 }, /* MOVE */ + { op_21fb_0_comp_ff, 0x00000002, 8699 }, /* MOVE */ + { op_21fc_0_comp_ff, 0x00000002, 8700 }, /* MOVE */ + { op_23c0_0_comp_ff, 0x00000002, 9152 }, /* MOVE */ + { op_23c8_0_comp_ff, 0x00000002, 9160 }, /* MOVE */ + { op_23d0_0_comp_ff, 0x00000002, 9168 }, /* MOVE */ + { op_23d8_0_comp_ff, 0x00000002, 9176 }, /* MOVE */ + { op_23e0_0_comp_ff, 0x00000002, 9184 }, /* MOVE */ + { op_23e8_0_comp_ff, 0x00000002, 9192 }, /* MOVE */ + { op_23f0_0_comp_ff, 0x00000002, 9200 }, /* MOVE */ + { op_23f8_0_comp_ff, 0x00000002, 9208 }, /* MOVE */ + { op_23f9_0_comp_ff, 0x00000002, 9209 }, /* MOVE */ + { op_23fa_0_comp_ff, 0x00000002, 9210 }, /* MOVE */ + { op_23fb_0_comp_ff, 0x00000002, 9211 }, /* MOVE */ + { op_23fc_0_comp_ff, 0x00000002, 9212 }, /* MOVE */ + { op_3000_0_comp_ff, 0x00000000, 12288 }, /* MOVE */ + { op_3008_0_comp_ff, 0x00000000, 12296 }, /* MOVE */ + { op_3010_0_comp_ff, 0x00000000, 12304 }, /* MOVE */ + { op_3018_0_comp_ff, 0x00000000, 12312 }, /* MOVE */ + { op_3020_0_comp_ff, 0x00000000, 12320 }, /* MOVE */ + { op_3028_0_comp_ff, 0x00000002, 12328 }, /* MOVE */ + { op_3030_0_comp_ff, 0x00000002, 12336 }, /* MOVE */ + { op_3038_0_comp_ff, 0x00000002, 12344 }, /* MOVE */ + { op_3039_0_comp_ff, 0x00000002, 12345 }, /* MOVE */ + { op_303a_0_comp_ff, 0x00000002, 12346 }, /* MOVE */ + { op_303b_0_comp_ff, 0x00000002, 12347 }, /* MOVE */ + { op_303c_0_comp_ff, 0x00000002, 12348 }, /* MOVE */ + { op_3040_0_comp_ff, 0x00000000, 12352 }, /* MOVEA */ + { op_3048_0_comp_ff, 0x00000000, 12360 }, /* MOVEA */ + { op_3050_0_comp_ff, 0x00000000, 12368 }, /* MOVEA */ + { op_3058_0_comp_ff, 0x00000000, 12376 }, /* MOVEA */ + { op_3060_0_comp_ff, 0x00000000, 12384 }, /* MOVEA */ + { op_3068_0_comp_ff, 0x00000002, 12392 }, /* MOVEA */ + { op_3070_0_comp_ff, 0x00000002, 12400 }, /* MOVEA */ + { op_3078_0_comp_ff, 0x00000002, 12408 }, /* MOVEA */ + { op_3079_0_comp_ff, 0x00000002, 12409 }, /* MOVEA */ + { op_307a_0_comp_ff, 0x00000002, 12410 }, /* MOVEA */ + { op_307b_0_comp_ff, 0x00000002, 12411 }, /* MOVEA */ + { op_307c_0_comp_ff, 0x00000002, 12412 }, /* MOVEA */ + { op_3080_0_comp_ff, 0x00000000, 12416 }, /* MOVE */ + { op_3088_0_comp_ff, 0x00000000, 12424 }, /* MOVE */ + { op_3090_0_comp_ff, 0x00000000, 12432 }, /* MOVE */ + { op_3098_0_comp_ff, 0x00000000, 12440 }, /* MOVE */ + { op_30a0_0_comp_ff, 0x00000000, 12448 }, /* MOVE */ + { op_30a8_0_comp_ff, 0x00000002, 12456 }, /* MOVE */ + { op_30b0_0_comp_ff, 0x00000002, 12464 }, /* MOVE */ + { op_30b8_0_comp_ff, 0x00000002, 12472 }, /* MOVE */ + { op_30b9_0_comp_ff, 0x00000002, 12473 }, /* MOVE */ + { op_30ba_0_comp_ff, 0x00000002, 12474 }, /* MOVE */ + { op_30bb_0_comp_ff, 0x00000002, 12475 }, /* MOVE */ + { op_30bc_0_comp_ff, 0x00000002, 12476 }, /* MOVE */ + { op_30c0_0_comp_ff, 0x00000000, 12480 }, /* MOVE */ + { op_30c8_0_comp_ff, 0x00000000, 12488 }, /* MOVE */ + { op_30d0_0_comp_ff, 0x00000000, 12496 }, /* MOVE */ + { op_30d8_0_comp_ff, 0x00000000, 12504 }, /* MOVE */ + { op_30e0_0_comp_ff, 0x00000000, 12512 }, /* MOVE */ + { op_30e8_0_comp_ff, 0x00000002, 12520 }, /* MOVE */ + { op_30f0_0_comp_ff, 0x00000002, 12528 }, /* MOVE */ + { op_30f8_0_comp_ff, 0x00000002, 12536 }, /* MOVE */ + { op_30f9_0_comp_ff, 0x00000002, 12537 }, /* MOVE */ + { op_30fa_0_comp_ff, 0x00000002, 12538 }, /* MOVE */ + { op_30fb_0_comp_ff, 0x00000002, 12539 }, /* MOVE */ + { op_30fc_0_comp_ff, 0x00000002, 12540 }, /* MOVE */ + { op_3100_0_comp_ff, 0x00000000, 12544 }, /* MOVE */ + { op_3108_0_comp_ff, 0x00000000, 12552 }, /* MOVE */ + { op_3110_0_comp_ff, 0x00000000, 12560 }, /* MOVE */ + { op_3118_0_comp_ff, 0x00000000, 12568 }, /* MOVE */ + { op_3120_0_comp_ff, 0x00000000, 12576 }, /* MOVE */ + { op_3128_0_comp_ff, 0x00000002, 12584 }, /* MOVE */ + { op_3130_0_comp_ff, 0x00000002, 12592 }, /* MOVE */ + { op_3138_0_comp_ff, 0x00000002, 12600 }, /* MOVE */ + { op_3139_0_comp_ff, 0x00000002, 12601 }, /* MOVE */ + { op_313a_0_comp_ff, 0x00000002, 12602 }, /* MOVE */ + { op_313b_0_comp_ff, 0x00000002, 12603 }, /* MOVE */ + { op_313c_0_comp_ff, 0x00000002, 12604 }, /* MOVE */ + { op_3140_0_comp_ff, 0x00000002, 12608 }, /* MOVE */ + { op_3148_0_comp_ff, 0x00000002, 12616 }, /* MOVE */ + { op_3150_0_comp_ff, 0x00000002, 12624 }, /* MOVE */ + { op_3158_0_comp_ff, 0x00000002, 12632 }, /* MOVE */ + { op_3160_0_comp_ff, 0x00000002, 12640 }, /* MOVE */ + { op_3168_0_comp_ff, 0x00000002, 12648 }, /* MOVE */ + { op_3170_0_comp_ff, 0x00000002, 12656 }, /* MOVE */ + { op_3178_0_comp_ff, 0x00000002, 12664 }, /* MOVE */ + { op_3179_0_comp_ff, 0x00000002, 12665 }, /* MOVE */ + { op_317a_0_comp_ff, 0x00000002, 12666 }, /* MOVE */ + { op_317b_0_comp_ff, 0x00000002, 12667 }, /* MOVE */ + { op_317c_0_comp_ff, 0x00000002, 12668 }, /* MOVE */ + { op_3180_0_comp_ff, 0x00000002, 12672 }, /* MOVE */ + { op_3188_0_comp_ff, 0x00000002, 12680 }, /* MOVE */ + { op_3190_0_comp_ff, 0x00000002, 12688 }, /* MOVE */ + { op_3198_0_comp_ff, 0x00000002, 12696 }, /* MOVE */ + { op_31a0_0_comp_ff, 0x00000002, 12704 }, /* MOVE */ + { op_31a8_0_comp_ff, 0x00000002, 12712 }, /* MOVE */ + { op_31b0_0_comp_ff, 0x00000002, 12720 }, /* MOVE */ + { op_31b8_0_comp_ff, 0x00000002, 12728 }, /* MOVE */ + { op_31b9_0_comp_ff, 0x00000002, 12729 }, /* MOVE */ + { op_31ba_0_comp_ff, 0x00000002, 12730 }, /* MOVE */ + { op_31bb_0_comp_ff, 0x00000002, 12731 }, /* MOVE */ + { op_31bc_0_comp_ff, 0x00000002, 12732 }, /* MOVE */ + { op_31c0_0_comp_ff, 0x00000002, 12736 }, /* MOVE */ + { op_31c8_0_comp_ff, 0x00000002, 12744 }, /* MOVE */ + { op_31d0_0_comp_ff, 0x00000002, 12752 }, /* MOVE */ + { op_31d8_0_comp_ff, 0x00000002, 12760 }, /* MOVE */ + { op_31e0_0_comp_ff, 0x00000002, 12768 }, /* MOVE */ + { op_31e8_0_comp_ff, 0x00000002, 12776 }, /* MOVE */ + { op_31f0_0_comp_ff, 0x00000002, 12784 }, /* MOVE */ + { op_31f8_0_comp_ff, 0x00000002, 12792 }, /* MOVE */ + { op_31f9_0_comp_ff, 0x00000002, 12793 }, /* MOVE */ + { op_31fa_0_comp_ff, 0x00000002, 12794 }, /* MOVE */ + { op_31fb_0_comp_ff, 0x00000002, 12795 }, /* MOVE */ + { op_31fc_0_comp_ff, 0x00000002, 12796 }, /* MOVE */ + { op_33c0_0_comp_ff, 0x00000002, 13248 }, /* MOVE */ + { op_33c8_0_comp_ff, 0x00000002, 13256 }, /* MOVE */ + { op_33d0_0_comp_ff, 0x00000002, 13264 }, /* MOVE */ + { op_33d8_0_comp_ff, 0x00000002, 13272 }, /* MOVE */ + { op_33e0_0_comp_ff, 0x00000002, 13280 }, /* MOVE */ + { op_33e8_0_comp_ff, 0x00000002, 13288 }, /* MOVE */ + { op_33f0_0_comp_ff, 0x00000002, 13296 }, /* MOVE */ + { op_33f8_0_comp_ff, 0x00000002, 13304 }, /* MOVE */ + { op_33f9_0_comp_ff, 0x00000002, 13305 }, /* MOVE */ + { op_33fa_0_comp_ff, 0x00000002, 13306 }, /* MOVE */ + { op_33fb_0_comp_ff, 0x00000002, 13307 }, /* MOVE */ + { op_33fc_0_comp_ff, 0x00000002, 13308 }, /* MOVE */ + { op_4000_0_comp_ff, 0x00000008, 16384 }, /* NEGX */ + { op_4010_0_comp_ff, 0x00000008, 16400 }, /* NEGX */ + { op_4018_0_comp_ff, 0x00000008, 16408 }, /* NEGX */ + { op_4020_0_comp_ff, 0x00000008, 16416 }, /* NEGX */ + { op_4028_0_comp_ff, 0x0000000a, 16424 }, /* NEGX */ + { op_4030_0_comp_ff, 0x0000000a, 16432 }, /* NEGX */ + { op_4038_0_comp_ff, 0x0000000a, 16440 }, /* NEGX */ + { op_4039_0_comp_ff, 0x0000000a, 16441 }, /* NEGX */ + { op_4040_0_comp_ff, 0x00000008, 16448 }, /* NEGX */ + { op_4050_0_comp_ff, 0x00000008, 16464 }, /* NEGX */ + { op_4058_0_comp_ff, 0x00000008, 16472 }, /* NEGX */ + { op_4060_0_comp_ff, 0x00000008, 16480 }, /* NEGX */ + { op_4068_0_comp_ff, 0x0000000a, 16488 }, /* NEGX */ + { op_4070_0_comp_ff, 0x0000000a, 16496 }, /* NEGX */ + { op_4078_0_comp_ff, 0x0000000a, 16504 }, /* NEGX */ + { op_4079_0_comp_ff, 0x0000000a, 16505 }, /* NEGX */ + { op_4080_0_comp_ff, 0x00000008, 16512 }, /* NEGX */ + { op_4090_0_comp_ff, 0x00000008, 16528 }, /* NEGX */ + { op_4098_0_comp_ff, 0x00000008, 16536 }, /* NEGX */ + { op_40a0_0_comp_ff, 0x00000008, 16544 }, /* NEGX */ + { op_40a8_0_comp_ff, 0x0000000a, 16552 }, /* NEGX */ + { op_40b0_0_comp_ff, 0x0000000a, 16560 }, /* NEGX */ + { op_40b8_0_comp_ff, 0x0000000a, 16568 }, /* NEGX */ + { op_40b9_0_comp_ff, 0x0000000a, 16569 }, /* NEGX */ + { NULL, 0x00000001, 16576 }, /* MVSR2 */ + { NULL, 0x00000001, 16592 }, /* MVSR2 */ + { NULL, 0x00000001, 16600 }, /* MVSR2 */ + { NULL, 0x00000001, 16608 }, /* MVSR2 */ + { NULL, 0x00000001, 16616 }, /* MVSR2 */ + { NULL, 0x00000001, 16624 }, /* MVSR2 */ + { NULL, 0x00000001, 16632 }, /* MVSR2 */ + { NULL, 0x00000001, 16633 }, /* MVSR2 */ + { NULL, 0x00000001, 16640 }, /* CHK */ + { NULL, 0x00000001, 16656 }, /* CHK */ + { NULL, 0x00000001, 16664 }, /* CHK */ + { NULL, 0x00000001, 16672 }, /* CHK */ + { NULL, 0x00000001, 16680 }, /* CHK */ + { NULL, 0x00000001, 16688 }, /* CHK */ + { NULL, 0x00000001, 16696 }, /* CHK */ + { NULL, 0x00000001, 16697 }, /* CHK */ + { NULL, 0x00000001, 16698 }, /* CHK */ + { NULL, 0x00000001, 16699 }, /* CHK */ + { NULL, 0x00000001, 16700 }, /* CHK */ + { NULL, 0x00000001, 16768 }, /* CHK */ + { NULL, 0x00000001, 16784 }, /* CHK */ + { NULL, 0x00000001, 16792 }, /* CHK */ + { NULL, 0x00000001, 16800 }, /* CHK */ + { NULL, 0x00000001, 16808 }, /* CHK */ + { NULL, 0x00000001, 16816 }, /* CHK */ + { NULL, 0x00000001, 16824 }, /* CHK */ + { NULL, 0x00000001, 16825 }, /* CHK */ + { NULL, 0x00000001, 16826 }, /* CHK */ + { NULL, 0x00000001, 16827 }, /* CHK */ + { NULL, 0x00000001, 16828 }, /* CHK */ + { op_41d0_0_comp_ff, 0x00000000, 16848 }, /* LEA */ + { op_41e8_0_comp_ff, 0x00000002, 16872 }, /* LEA */ + { op_41f0_0_comp_ff, 0x00000002, 16880 }, /* LEA */ + { op_41f8_0_comp_ff, 0x00000002, 16888 }, /* LEA */ + { op_41f9_0_comp_ff, 0x00000002, 16889 }, /* LEA */ + { op_41fa_0_comp_ff, 0x00000002, 16890 }, /* LEA */ + { op_41fb_0_comp_ff, 0x00000002, 16891 }, /* LEA */ + { op_4200_0_comp_ff, 0x00000000, 16896 }, /* CLR */ + { op_4210_0_comp_ff, 0x00000000, 16912 }, /* CLR */ + { op_4218_0_comp_ff, 0x00000000, 16920 }, /* CLR */ + { op_4220_0_comp_ff, 0x00000000, 16928 }, /* CLR */ + { op_4228_0_comp_ff, 0x00000002, 16936 }, /* CLR */ + { op_4230_0_comp_ff, 0x00000002, 16944 }, /* CLR */ + { op_4238_0_comp_ff, 0x00000002, 16952 }, /* CLR */ + { op_4239_0_comp_ff, 0x00000002, 16953 }, /* CLR */ + { op_4240_0_comp_ff, 0x00000000, 16960 }, /* CLR */ + { op_4250_0_comp_ff, 0x00000000, 16976 }, /* CLR */ + { op_4258_0_comp_ff, 0x00000000, 16984 }, /* CLR */ + { op_4260_0_comp_ff, 0x00000000, 16992 }, /* CLR */ + { op_4268_0_comp_ff, 0x00000002, 17000 }, /* CLR */ + { op_4270_0_comp_ff, 0x00000002, 17008 }, /* CLR */ + { op_4278_0_comp_ff, 0x00000002, 17016 }, /* CLR */ + { op_4279_0_comp_ff, 0x00000002, 17017 }, /* CLR */ + { op_4280_0_comp_ff, 0x00000000, 17024 }, /* CLR */ + { op_4290_0_comp_ff, 0x00000000, 17040 }, /* CLR */ + { op_4298_0_comp_ff, 0x00000000, 17048 }, /* CLR */ + { op_42a0_0_comp_ff, 0x00000000, 17056 }, /* CLR */ + { op_42a8_0_comp_ff, 0x00000002, 17064 }, /* CLR */ + { op_42b0_0_comp_ff, 0x00000002, 17072 }, /* CLR */ + { op_42b8_0_comp_ff, 0x00000002, 17080 }, /* CLR */ + { op_42b9_0_comp_ff, 0x00000002, 17081 }, /* CLR */ + { NULL, 0x00000001, 17088 }, /* MVSR2 */ + { NULL, 0x00000001, 17104 }, /* MVSR2 */ + { NULL, 0x00000001, 17112 }, /* MVSR2 */ + { NULL, 0x00000001, 17120 }, /* MVSR2 */ + { NULL, 0x00000001, 17128 }, /* MVSR2 */ + { NULL, 0x00000001, 17136 }, /* MVSR2 */ + { NULL, 0x00000001, 17144 }, /* MVSR2 */ + { NULL, 0x00000001, 17145 }, /* MVSR2 */ + { op_4400_0_comp_ff, 0x00000000, 17408 }, /* NEG */ + { op_4410_0_comp_ff, 0x00000000, 17424 }, /* NEG */ + { op_4418_0_comp_ff, 0x00000000, 17432 }, /* NEG */ + { op_4420_0_comp_ff, 0x00000000, 17440 }, /* NEG */ + { op_4428_0_comp_ff, 0x00000002, 17448 }, /* NEG */ + { op_4430_0_comp_ff, 0x00000002, 17456 }, /* NEG */ + { op_4438_0_comp_ff, 0x00000002, 17464 }, /* NEG */ + { op_4439_0_comp_ff, 0x00000002, 17465 }, /* NEG */ + { op_4440_0_comp_ff, 0x00000000, 17472 }, /* NEG */ + { op_4450_0_comp_ff, 0x00000000, 17488 }, /* NEG */ + { op_4458_0_comp_ff, 0x00000000, 17496 }, /* NEG */ + { op_4460_0_comp_ff, 0x00000000, 17504 }, /* NEG */ + { op_4468_0_comp_ff, 0x00000002, 17512 }, /* NEG */ + { op_4470_0_comp_ff, 0x00000002, 17520 }, /* NEG */ + { op_4478_0_comp_ff, 0x00000002, 17528 }, /* NEG */ + { op_4479_0_comp_ff, 0x00000002, 17529 }, /* NEG */ + { op_4480_0_comp_ff, 0x00000000, 17536 }, /* NEG */ + { op_4490_0_comp_ff, 0x00000000, 17552 }, /* NEG */ + { op_4498_0_comp_ff, 0x00000000, 17560 }, /* NEG */ + { op_44a0_0_comp_ff, 0x00000000, 17568 }, /* NEG */ + { op_44a8_0_comp_ff, 0x00000002, 17576 }, /* NEG */ + { op_44b0_0_comp_ff, 0x00000002, 17584 }, /* NEG */ + { op_44b8_0_comp_ff, 0x00000002, 17592 }, /* NEG */ + { op_44b9_0_comp_ff, 0x00000002, 17593 }, /* NEG */ + { NULL, 0x00000001, 17600 }, /* MV2SR */ + { NULL, 0x00000001, 17616 }, /* MV2SR */ + { NULL, 0x00000001, 17624 }, /* MV2SR */ + { NULL, 0x00000001, 17632 }, /* MV2SR */ + { NULL, 0x00000001, 17640 }, /* MV2SR */ + { NULL, 0x00000001, 17648 }, /* MV2SR */ + { NULL, 0x00000001, 17656 }, /* MV2SR */ + { NULL, 0x00000001, 17657 }, /* MV2SR */ + { NULL, 0x00000001, 17658 }, /* MV2SR */ + { NULL, 0x00000001, 17659 }, /* MV2SR */ + { NULL, 0x00000001, 17660 }, /* MV2SR */ + { op_4600_0_comp_ff, 0x00000000, 17920 }, /* NOT */ + { op_4610_0_comp_ff, 0x00000000, 17936 }, /* NOT */ + { op_4618_0_comp_ff, 0x00000000, 17944 }, /* NOT */ + { op_4620_0_comp_ff, 0x00000000, 17952 }, /* NOT */ + { op_4628_0_comp_ff, 0x00000002, 17960 }, /* NOT */ + { op_4630_0_comp_ff, 0x00000002, 17968 }, /* NOT */ + { op_4638_0_comp_ff, 0x00000002, 17976 }, /* NOT */ + { op_4639_0_comp_ff, 0x00000002, 17977 }, /* NOT */ + { op_4640_0_comp_ff, 0x00000000, 17984 }, /* NOT */ + { op_4650_0_comp_ff, 0x00000000, 18000 }, /* NOT */ + { op_4658_0_comp_ff, 0x00000000, 18008 }, /* NOT */ + { op_4660_0_comp_ff, 0x00000000, 18016 }, /* NOT */ + { op_4668_0_comp_ff, 0x00000002, 18024 }, /* NOT */ + { op_4670_0_comp_ff, 0x00000002, 18032 }, /* NOT */ + { op_4678_0_comp_ff, 0x00000002, 18040 }, /* NOT */ + { op_4679_0_comp_ff, 0x00000002, 18041 }, /* NOT */ + { op_4680_0_comp_ff, 0x00000000, 18048 }, /* NOT */ + { op_4690_0_comp_ff, 0x00000000, 18064 }, /* NOT */ + { op_4698_0_comp_ff, 0x00000000, 18072 }, /* NOT */ + { op_46a0_0_comp_ff, 0x00000000, 18080 }, /* NOT */ + { op_46a8_0_comp_ff, 0x00000002, 18088 }, /* NOT */ + { op_46b0_0_comp_ff, 0x00000002, 18096 }, /* NOT */ + { op_46b8_0_comp_ff, 0x00000002, 18104 }, /* NOT */ + { op_46b9_0_comp_ff, 0x00000002, 18105 }, /* NOT */ + { NULL, 0x00000001, 18112 }, /* MV2SR */ + { NULL, 0x00000001, 18128 }, /* MV2SR */ + { NULL, 0x00000001, 18136 }, /* MV2SR */ + { NULL, 0x00000001, 18144 }, /* MV2SR */ + { NULL, 0x00000001, 18152 }, /* MV2SR */ + { NULL, 0x00000001, 18160 }, /* MV2SR */ + { NULL, 0x00000001, 18168 }, /* MV2SR */ + { NULL, 0x00000001, 18169 }, /* MV2SR */ + { NULL, 0x00000001, 18170 }, /* MV2SR */ + { NULL, 0x00000001, 18171 }, /* MV2SR */ + { NULL, 0x00000001, 18172 }, /* MV2SR */ + { NULL, 0x00000000, 18432 }, /* NBCD */ + { op_4808_0_comp_ff, 0x00000002, 18440 }, /* LINK */ + { NULL, 0x00000000, 18448 }, /* NBCD */ + { NULL, 0x00000000, 18456 }, /* NBCD */ + { NULL, 0x00000000, 18464 }, /* NBCD */ + { NULL, 0x00000000, 18472 }, /* NBCD */ + { NULL, 0x00000000, 18480 }, /* NBCD */ + { NULL, 0x00000000, 18488 }, /* NBCD */ + { NULL, 0x00000000, 18489 }, /* NBCD */ + { op_4840_0_comp_ff, 0x00000000, 18496 }, /* SWAP */ + { NULL, 0x00000001, 18504 }, /* BKPT */ + { op_4850_0_comp_ff, 0x00000000, 18512 }, /* PEA */ + { op_4868_0_comp_ff, 0x00000002, 18536 }, /* PEA */ + { op_4870_0_comp_ff, 0x00000002, 18544 }, /* PEA */ + { op_4878_0_comp_ff, 0x00000002, 18552 }, /* PEA */ + { op_4879_0_comp_ff, 0x00000002, 18553 }, /* PEA */ + { op_487a_0_comp_ff, 0x00000002, 18554 }, /* PEA */ + { op_487b_0_comp_ff, 0x00000002, 18555 }, /* PEA */ + { op_4880_0_comp_ff, 0x00000000, 18560 }, /* EXT */ + { op_4890_0_comp_ff, 0x00000002, 18576 }, /* MVMLE */ + { op_48a0_0_comp_ff, 0x00000002, 18592 }, /* MVMLE */ + { op_48a8_0_comp_ff, 0x00000002, 18600 }, /* MVMLE */ + { op_48b0_0_comp_ff, 0x00000002, 18608 }, /* MVMLE */ + { op_48b8_0_comp_ff, 0x00000002, 18616 }, /* MVMLE */ + { op_48b9_0_comp_ff, 0x00000002, 18617 }, /* MVMLE */ + { op_48c0_0_comp_ff, 0x00000000, 18624 }, /* EXT */ + { op_48d0_0_comp_ff, 0x00000002, 18640 }, /* MVMLE */ + { op_48e0_0_comp_ff, 0x00000002, 18656 }, /* MVMLE */ + { op_48e8_0_comp_ff, 0x00000002, 18664 }, /* MVMLE */ + { op_48f0_0_comp_ff, 0x00000002, 18672 }, /* MVMLE */ + { op_48f8_0_comp_ff, 0x00000002, 18680 }, /* MVMLE */ + { op_48f9_0_comp_ff, 0x00000002, 18681 }, /* MVMLE */ + { op_49c0_0_comp_ff, 0x00000000, 18880 }, /* EXT */ + { op_4a00_0_comp_ff, 0x00000000, 18944 }, /* TST */ + { op_4a10_0_comp_ff, 0x00000000, 18960 }, /* TST */ + { op_4a18_0_comp_ff, 0x00000000, 18968 }, /* TST */ + { op_4a20_0_comp_ff, 0x00000000, 18976 }, /* TST */ + { op_4a28_0_comp_ff, 0x00000002, 18984 }, /* TST */ + { op_4a30_0_comp_ff, 0x00000002, 18992 }, /* TST */ + { op_4a38_0_comp_ff, 0x00000002, 19000 }, /* TST */ + { op_4a39_0_comp_ff, 0x00000002, 19001 }, /* TST */ + { op_4a3a_0_comp_ff, 0x00000002, 19002 }, /* TST */ + { op_4a3b_0_comp_ff, 0x00000002, 19003 }, /* TST */ + { op_4a3c_0_comp_ff, 0x00000002, 19004 }, /* TST */ + { op_4a40_0_comp_ff, 0x00000000, 19008 }, /* TST */ + { op_4a48_0_comp_ff, 0x00000000, 19016 }, /* TST */ + { op_4a50_0_comp_ff, 0x00000000, 19024 }, /* TST */ + { op_4a58_0_comp_ff, 0x00000000, 19032 }, /* TST */ + { op_4a60_0_comp_ff, 0x00000000, 19040 }, /* TST */ + { op_4a68_0_comp_ff, 0x00000002, 19048 }, /* TST */ + { op_4a70_0_comp_ff, 0x00000002, 19056 }, /* TST */ + { op_4a78_0_comp_ff, 0x00000002, 19064 }, /* TST */ + { op_4a79_0_comp_ff, 0x00000002, 19065 }, /* TST */ + { op_4a7a_0_comp_ff, 0x00000002, 19066 }, /* TST */ + { op_4a7b_0_comp_ff, 0x00000002, 19067 }, /* TST */ + { op_4a7c_0_comp_ff, 0x00000002, 19068 }, /* TST */ + { op_4a80_0_comp_ff, 0x00000000, 19072 }, /* TST */ + { op_4a88_0_comp_ff, 0x00000000, 19080 }, /* TST */ + { op_4a90_0_comp_ff, 0x00000000, 19088 }, /* TST */ + { op_4a98_0_comp_ff, 0x00000000, 19096 }, /* TST */ + { op_4aa0_0_comp_ff, 0x00000000, 19104 }, /* TST */ + { op_4aa8_0_comp_ff, 0x00000002, 19112 }, /* TST */ + { op_4ab0_0_comp_ff, 0x00000002, 19120 }, /* TST */ + { op_4ab8_0_comp_ff, 0x00000002, 19128 }, /* TST */ + { op_4ab9_0_comp_ff, 0x00000002, 19129 }, /* TST */ + { op_4aba_0_comp_ff, 0x00000002, 19130 }, /* TST */ + { op_4abb_0_comp_ff, 0x00000002, 19131 }, /* TST */ + { op_4abc_0_comp_ff, 0x00000002, 19132 }, /* TST */ + { NULL, 0x00000000, 19136 }, /* TAS */ + { NULL, 0x00000000, 19152 }, /* TAS */ + { NULL, 0x00000000, 19160 }, /* TAS */ + { NULL, 0x00000000, 19168 }, /* TAS */ + { NULL, 0x00000000, 19176 }, /* TAS */ + { NULL, 0x00000000, 19184 }, /* TAS */ + { NULL, 0x00000000, 19192 }, /* TAS */ + { NULL, 0x00000000, 19193 }, /* TAS */ + { op_4c00_0_comp_ff, 0x00000002, 19456 }, /* MULL */ + { op_4c10_0_comp_ff, 0x00000002, 19472 }, /* MULL */ + { op_4c18_0_comp_ff, 0x00000002, 19480 }, /* MULL */ + { op_4c20_0_comp_ff, 0x00000002, 19488 }, /* MULL */ + { op_4c28_0_comp_ff, 0x00000002, 19496 }, /* MULL */ + { op_4c30_0_comp_ff, 0x00000002, 19504 }, /* MULL */ + { op_4c38_0_comp_ff, 0x00000002, 19512 }, /* MULL */ + { op_4c39_0_comp_ff, 0x00000002, 19513 }, /* MULL */ + { op_4c3a_0_comp_ff, 0x00000002, 19514 }, /* MULL */ + { op_4c3b_0_comp_ff, 0x00000002, 19515 }, /* MULL */ + { op_4c3c_0_comp_ff, 0x00000002, 19516 }, /* MULL */ + { NULL, 0x00000001, 19520 }, /* DIVL */ + { NULL, 0x00000001, 19536 }, /* DIVL */ + { NULL, 0x00000001, 19544 }, /* DIVL */ + { NULL, 0x00000001, 19552 }, /* DIVL */ + { NULL, 0x00000001, 19560 }, /* DIVL */ + { NULL, 0x00000001, 19568 }, /* DIVL */ + { NULL, 0x00000001, 19576 }, /* DIVL */ + { NULL, 0x00000001, 19577 }, /* DIVL */ + { NULL, 0x00000001, 19578 }, /* DIVL */ + { NULL, 0x00000001, 19579 }, /* DIVL */ + { NULL, 0x00000001, 19580 }, /* DIVL */ + { op_4c90_0_comp_ff, 0x00000002, 19600 }, /* MVMEL */ + { op_4c98_0_comp_ff, 0x00000002, 19608 }, /* MVMEL */ + { op_4ca8_0_comp_ff, 0x00000002, 19624 }, /* MVMEL */ + { op_4cb0_0_comp_ff, 0x00000002, 19632 }, /* MVMEL */ + { op_4cb8_0_comp_ff, 0x00000002, 19640 }, /* MVMEL */ + { op_4cb9_0_comp_ff, 0x00000002, 19641 }, /* MVMEL */ + { op_4cba_0_comp_ff, 0x00000002, 19642 }, /* MVMEL */ + { op_4cbb_0_comp_ff, 0x00000002, 19643 }, /* MVMEL */ + { op_4cd0_0_comp_ff, 0x00000002, 19664 }, /* MVMEL */ + { op_4cd8_0_comp_ff, 0x00000002, 19672 }, /* MVMEL */ + { op_4ce8_0_comp_ff, 0x00000002, 19688 }, /* MVMEL */ + { op_4cf0_0_comp_ff, 0x00000002, 19696 }, /* MVMEL */ + { op_4cf8_0_comp_ff, 0x00000002, 19704 }, /* MVMEL */ + { op_4cf9_0_comp_ff, 0x00000002, 19705 }, /* MVMEL */ + { op_4cfa_0_comp_ff, 0x00000002, 19706 }, /* MVMEL */ + { op_4cfb_0_comp_ff, 0x00000002, 19707 }, /* MVMEL */ + { NULL, 0x00000001, 20032 }, /* TRAP */ + { op_4e50_0_comp_ff, 0x00000002, 20048 }, /* LINK */ + { op_4e58_0_comp_ff, 0x00000000, 20056 }, /* UNLK */ + { NULL, 0x00000001, 20064 }, /* MVR2USP */ + { NULL, 0x00000001, 20072 }, /* MVUSP2R */ + { NULL, 0x00000001, 20080 }, /* RESET */ + { op_4e71_0_comp_ff, 0x00000000, 20081 }, /* NOP */ + { NULL, 0x00000001, 20082 }, /* STOP */ + { NULL, 0x00000001, 20083 }, /* RTE */ + { op_4e74_0_comp_ff, 0x00000003, 20084 }, /* RTD */ + { op_4e75_0_comp_ff, 0x00000001, 20085 }, /* RTS */ + { NULL, 0x00000001, 20086 }, /* TRAPV */ + { NULL, 0x00000001, 20087 }, /* RTR */ + { NULL, 0x00000001, 20090 }, /* MOVEC2 */ + { NULL, 0x00000001, 20091 }, /* MOVE2C */ + { op_4e90_0_comp_ff, 0x00000001, 20112 }, /* JSR */ + { op_4ea8_0_comp_ff, 0x00000003, 20136 }, /* JSR */ + { op_4eb0_0_comp_ff, 0x00000003, 20144 }, /* JSR */ + { op_4eb8_0_comp_ff, 0x00000003, 20152 }, /* JSR */ + { op_4eb9_0_comp_ff, 0x00000003, 20153 }, /* JSR */ + { op_4eba_0_comp_ff, 0x00000003, 20154 }, /* JSR */ + { op_4ebb_0_comp_ff, 0x00000003, 20155 }, /* JSR */ + { op_4ed0_0_comp_ff, 0x00000001, 20176 }, /* JMP */ + { op_4ee8_0_comp_ff, 0x00000003, 20200 }, /* JMP */ + { op_4ef0_0_comp_ff, 0x00000003, 20208 }, /* JMP */ + { op_4ef8_0_comp_ff, 0x00000003, 20216 }, /* JMP */ + { op_4ef9_0_comp_ff, 0x00000003, 20217 }, /* JMP */ + { op_4efa_0_comp_ff, 0x00000003, 20218 }, /* JMP */ + { op_4efb_0_comp_ff, 0x00000003, 20219 }, /* JMP */ + { op_5000_0_comp_ff, 0x00000000, 20480 }, /* ADD */ + { op_5010_0_comp_ff, 0x00000000, 20496 }, /* ADD */ + { op_5018_0_comp_ff, 0x00000000, 20504 }, /* ADD */ + { op_5020_0_comp_ff, 0x00000000, 20512 }, /* ADD */ + { op_5028_0_comp_ff, 0x00000002, 20520 }, /* ADD */ + { op_5030_0_comp_ff, 0x00000002, 20528 }, /* ADD */ + { op_5038_0_comp_ff, 0x00000002, 20536 }, /* ADD */ + { op_5039_0_comp_ff, 0x00000002, 20537 }, /* ADD */ + { op_5040_0_comp_ff, 0x00000000, 20544 }, /* ADD */ + { op_5048_0_comp_ff, 0x00000000, 20552 }, /* ADDA */ + { op_5050_0_comp_ff, 0x00000000, 20560 }, /* ADD */ + { op_5058_0_comp_ff, 0x00000000, 20568 }, /* ADD */ + { op_5060_0_comp_ff, 0x00000000, 20576 }, /* ADD */ + { op_5068_0_comp_ff, 0x00000002, 20584 }, /* ADD */ + { op_5070_0_comp_ff, 0x00000002, 20592 }, /* ADD */ + { op_5078_0_comp_ff, 0x00000002, 20600 }, /* ADD */ + { op_5079_0_comp_ff, 0x00000002, 20601 }, /* ADD */ + { op_5080_0_comp_ff, 0x00000000, 20608 }, /* ADD */ + { op_5088_0_comp_ff, 0x00000000, 20616 }, /* ADDA */ + { op_5090_0_comp_ff, 0x00000000, 20624 }, /* ADD */ + { op_5098_0_comp_ff, 0x00000000, 20632 }, /* ADD */ + { op_50a0_0_comp_ff, 0x00000000, 20640 }, /* ADD */ + { op_50a8_0_comp_ff, 0x00000002, 20648 }, /* ADD */ + { op_50b0_0_comp_ff, 0x00000002, 20656 }, /* ADD */ + { op_50b8_0_comp_ff, 0x00000002, 20664 }, /* ADD */ + { op_50b9_0_comp_ff, 0x00000002, 20665 }, /* ADD */ + { op_50c0_0_comp_ff, 0x00000000, 20672 }, /* Scc */ + { op_50c8_0_comp_ff, 0x00000003, 20680 }, /* DBcc */ + { op_50d0_0_comp_ff, 0x00000000, 20688 }, /* Scc */ + { op_50d8_0_comp_ff, 0x00000000, 20696 }, /* Scc */ + { op_50e0_0_comp_ff, 0x00000000, 20704 }, /* Scc */ + { op_50e8_0_comp_ff, 0x00000002, 20712 }, /* Scc */ + { op_50f0_0_comp_ff, 0x00000002, 20720 }, /* Scc */ + { op_50f8_0_comp_ff, 0x00000002, 20728 }, /* Scc */ + { op_50f9_0_comp_ff, 0x00000002, 20729 }, /* Scc */ + { NULL, 0x00000001, 20730 }, /* TRAPcc */ + { NULL, 0x00000001, 20731 }, /* TRAPcc */ + { NULL, 0x00000001, 20732 }, /* TRAPcc */ + { op_5100_0_comp_ff, 0x00000000, 20736 }, /* SUB */ + { op_5110_0_comp_ff, 0x00000000, 20752 }, /* SUB */ + { op_5118_0_comp_ff, 0x00000000, 20760 }, /* SUB */ + { op_5120_0_comp_ff, 0x00000000, 20768 }, /* SUB */ + { op_5128_0_comp_ff, 0x00000002, 20776 }, /* SUB */ + { op_5130_0_comp_ff, 0x00000002, 20784 }, /* SUB */ + { op_5138_0_comp_ff, 0x00000002, 20792 }, /* SUB */ + { op_5139_0_comp_ff, 0x00000002, 20793 }, /* SUB */ + { op_5140_0_comp_ff, 0x00000000, 20800 }, /* SUB */ + { op_5148_0_comp_ff, 0x00000000, 20808 }, /* SUBA */ + { op_5150_0_comp_ff, 0x00000000, 20816 }, /* SUB */ + { op_5158_0_comp_ff, 0x00000000, 20824 }, /* SUB */ + { op_5160_0_comp_ff, 0x00000000, 20832 }, /* SUB */ + { op_5168_0_comp_ff, 0x00000002, 20840 }, /* SUB */ + { op_5170_0_comp_ff, 0x00000002, 20848 }, /* SUB */ + { op_5178_0_comp_ff, 0x00000002, 20856 }, /* SUB */ + { op_5179_0_comp_ff, 0x00000002, 20857 }, /* SUB */ + { op_5180_0_comp_ff, 0x00000000, 20864 }, /* SUB */ + { op_5188_0_comp_ff, 0x00000000, 20872 }, /* SUBA */ + { op_5190_0_comp_ff, 0x00000000, 20880 }, /* SUB */ + { op_5198_0_comp_ff, 0x00000000, 20888 }, /* SUB */ + { op_51a0_0_comp_ff, 0x00000000, 20896 }, /* SUB */ + { op_51a8_0_comp_ff, 0x00000002, 20904 }, /* SUB */ + { op_51b0_0_comp_ff, 0x00000002, 20912 }, /* SUB */ + { op_51b8_0_comp_ff, 0x00000002, 20920 }, /* SUB */ + { op_51b9_0_comp_ff, 0x00000002, 20921 }, /* SUB */ + { op_51c0_0_comp_ff, 0x00000000, 20928 }, /* Scc */ + { op_51c8_0_comp_ff, 0x00000003, 20936 }, /* DBcc */ + { op_51d0_0_comp_ff, 0x00000000, 20944 }, /* Scc */ + { op_51d8_0_comp_ff, 0x00000000, 20952 }, /* Scc */ + { op_51e0_0_comp_ff, 0x00000000, 20960 }, /* Scc */ + { op_51e8_0_comp_ff, 0x00000002, 20968 }, /* Scc */ + { op_51f0_0_comp_ff, 0x00000002, 20976 }, /* Scc */ + { op_51f8_0_comp_ff, 0x00000002, 20984 }, /* Scc */ + { op_51f9_0_comp_ff, 0x00000002, 20985 }, /* Scc */ + { NULL, 0x00000001, 20986 }, /* TRAPcc */ + { NULL, 0x00000001, 20987 }, /* TRAPcc */ + { NULL, 0x00000001, 20988 }, /* TRAPcc */ + { op_52c0_0_comp_ff, 0x00000000, 21184 }, /* Scc */ + { op_52c8_0_comp_ff, 0x00000003, 21192 }, /* DBcc */ + { op_52d0_0_comp_ff, 0x00000000, 21200 }, /* Scc */ + { op_52d8_0_comp_ff, 0x00000000, 21208 }, /* Scc */ + { op_52e0_0_comp_ff, 0x00000000, 21216 }, /* Scc */ + { op_52e8_0_comp_ff, 0x00000002, 21224 }, /* Scc */ + { op_52f0_0_comp_ff, 0x00000002, 21232 }, /* Scc */ + { op_52f8_0_comp_ff, 0x00000002, 21240 }, /* Scc */ + { op_52f9_0_comp_ff, 0x00000002, 21241 }, /* Scc */ + { NULL, 0x00000001, 21242 }, /* TRAPcc */ + { NULL, 0x00000001, 21243 }, /* TRAPcc */ + { NULL, 0x00000001, 21244 }, /* TRAPcc */ + { op_53c0_0_comp_ff, 0x00000000, 21440 }, /* Scc */ + { op_53c8_0_comp_ff, 0x00000003, 21448 }, /* DBcc */ + { op_53d0_0_comp_ff, 0x00000000, 21456 }, /* Scc */ + { op_53d8_0_comp_ff, 0x00000000, 21464 }, /* Scc */ + { op_53e0_0_comp_ff, 0x00000000, 21472 }, /* Scc */ + { op_53e8_0_comp_ff, 0x00000002, 21480 }, /* Scc */ + { op_53f0_0_comp_ff, 0x00000002, 21488 }, /* Scc */ + { op_53f8_0_comp_ff, 0x00000002, 21496 }, /* Scc */ + { op_53f9_0_comp_ff, 0x00000002, 21497 }, /* Scc */ + { NULL, 0x00000001, 21498 }, /* TRAPcc */ + { NULL, 0x00000001, 21499 }, /* TRAPcc */ + { NULL, 0x00000001, 21500 }, /* TRAPcc */ + { op_54c0_0_comp_ff, 0x00000000, 21696 }, /* Scc */ + { op_54c8_0_comp_ff, 0x00000003, 21704 }, /* DBcc */ + { op_54d0_0_comp_ff, 0x00000000, 21712 }, /* Scc */ + { op_54d8_0_comp_ff, 0x00000000, 21720 }, /* Scc */ + { op_54e0_0_comp_ff, 0x00000000, 21728 }, /* Scc */ + { op_54e8_0_comp_ff, 0x00000002, 21736 }, /* Scc */ + { op_54f0_0_comp_ff, 0x00000002, 21744 }, /* Scc */ + { op_54f8_0_comp_ff, 0x00000002, 21752 }, /* Scc */ + { op_54f9_0_comp_ff, 0x00000002, 21753 }, /* Scc */ + { NULL, 0x00000001, 21754 }, /* TRAPcc */ + { NULL, 0x00000001, 21755 }, /* TRAPcc */ + { NULL, 0x00000001, 21756 }, /* TRAPcc */ + { op_55c0_0_comp_ff, 0x00000000, 21952 }, /* Scc */ + { op_55c8_0_comp_ff, 0x00000003, 21960 }, /* DBcc */ + { op_55d0_0_comp_ff, 0x00000000, 21968 }, /* Scc */ + { op_55d8_0_comp_ff, 0x00000000, 21976 }, /* Scc */ + { op_55e0_0_comp_ff, 0x00000000, 21984 }, /* Scc */ + { op_55e8_0_comp_ff, 0x00000002, 21992 }, /* Scc */ + { op_55f0_0_comp_ff, 0x00000002, 22000 }, /* Scc */ + { op_55f8_0_comp_ff, 0x00000002, 22008 }, /* Scc */ + { op_55f9_0_comp_ff, 0x00000002, 22009 }, /* Scc */ + { NULL, 0x00000001, 22010 }, /* TRAPcc */ + { NULL, 0x00000001, 22011 }, /* TRAPcc */ + { NULL, 0x00000001, 22012 }, /* TRAPcc */ + { op_56c0_0_comp_ff, 0x00000000, 22208 }, /* Scc */ + { op_56c8_0_comp_ff, 0x00000003, 22216 }, /* DBcc */ + { op_56d0_0_comp_ff, 0x00000000, 22224 }, /* Scc */ + { op_56d8_0_comp_ff, 0x00000000, 22232 }, /* Scc */ + { op_56e0_0_comp_ff, 0x00000000, 22240 }, /* Scc */ + { op_56e8_0_comp_ff, 0x00000002, 22248 }, /* Scc */ + { op_56f0_0_comp_ff, 0x00000002, 22256 }, /* Scc */ + { op_56f8_0_comp_ff, 0x00000002, 22264 }, /* Scc */ + { op_56f9_0_comp_ff, 0x00000002, 22265 }, /* Scc */ + { NULL, 0x00000001, 22266 }, /* TRAPcc */ + { NULL, 0x00000001, 22267 }, /* TRAPcc */ + { NULL, 0x00000001, 22268 }, /* TRAPcc */ + { op_57c0_0_comp_ff, 0x00000000, 22464 }, /* Scc */ + { op_57c8_0_comp_ff, 0x00000003, 22472 }, /* DBcc */ + { op_57d0_0_comp_ff, 0x00000000, 22480 }, /* Scc */ + { op_57d8_0_comp_ff, 0x00000000, 22488 }, /* Scc */ + { op_57e0_0_comp_ff, 0x00000000, 22496 }, /* Scc */ + { op_57e8_0_comp_ff, 0x00000002, 22504 }, /* Scc */ + { op_57f0_0_comp_ff, 0x00000002, 22512 }, /* Scc */ + { op_57f8_0_comp_ff, 0x00000002, 22520 }, /* Scc */ + { op_57f9_0_comp_ff, 0x00000002, 22521 }, /* Scc */ + { NULL, 0x00000001, 22522 }, /* TRAPcc */ + { NULL, 0x00000001, 22523 }, /* TRAPcc */ + { NULL, 0x00000001, 22524 }, /* TRAPcc */ + { op_58c0_0_comp_ff, 0x00000000, 22720 }, /* Scc */ + { op_58c8_0_comp_ff, 0x00000003, 22728 }, /* DBcc */ + { op_58d0_0_comp_ff, 0x00000000, 22736 }, /* Scc */ + { op_58d8_0_comp_ff, 0x00000000, 22744 }, /* Scc */ + { op_58e0_0_comp_ff, 0x00000000, 22752 }, /* Scc */ + { op_58e8_0_comp_ff, 0x00000002, 22760 }, /* Scc */ + { op_58f0_0_comp_ff, 0x00000002, 22768 }, /* Scc */ + { op_58f8_0_comp_ff, 0x00000002, 22776 }, /* Scc */ + { op_58f9_0_comp_ff, 0x00000002, 22777 }, /* Scc */ + { NULL, 0x00000001, 22778 }, /* TRAPcc */ + { NULL, 0x00000001, 22779 }, /* TRAPcc */ + { NULL, 0x00000001, 22780 }, /* TRAPcc */ + { op_59c0_0_comp_ff, 0x00000000, 22976 }, /* Scc */ + { op_59c8_0_comp_ff, 0x00000003, 22984 }, /* DBcc */ + { op_59d0_0_comp_ff, 0x00000000, 22992 }, /* Scc */ + { op_59d8_0_comp_ff, 0x00000000, 23000 }, /* Scc */ + { op_59e0_0_comp_ff, 0x00000000, 23008 }, /* Scc */ + { op_59e8_0_comp_ff, 0x00000002, 23016 }, /* Scc */ + { op_59f0_0_comp_ff, 0x00000002, 23024 }, /* Scc */ + { op_59f8_0_comp_ff, 0x00000002, 23032 }, /* Scc */ + { op_59f9_0_comp_ff, 0x00000002, 23033 }, /* Scc */ + { NULL, 0x00000001, 23034 }, /* TRAPcc */ + { NULL, 0x00000001, 23035 }, /* TRAPcc */ + { NULL, 0x00000001, 23036 }, /* TRAPcc */ + { op_5ac0_0_comp_ff, 0x00000000, 23232 }, /* Scc */ + { op_5ac8_0_comp_ff, 0x00000003, 23240 }, /* DBcc */ + { op_5ad0_0_comp_ff, 0x00000000, 23248 }, /* Scc */ + { op_5ad8_0_comp_ff, 0x00000000, 23256 }, /* Scc */ + { op_5ae0_0_comp_ff, 0x00000000, 23264 }, /* Scc */ + { op_5ae8_0_comp_ff, 0x00000002, 23272 }, /* Scc */ + { op_5af0_0_comp_ff, 0x00000002, 23280 }, /* Scc */ + { op_5af8_0_comp_ff, 0x00000002, 23288 }, /* Scc */ + { op_5af9_0_comp_ff, 0x00000002, 23289 }, /* Scc */ + { NULL, 0x00000001, 23290 }, /* TRAPcc */ + { NULL, 0x00000001, 23291 }, /* TRAPcc */ + { NULL, 0x00000001, 23292 }, /* TRAPcc */ + { op_5bc0_0_comp_ff, 0x00000000, 23488 }, /* Scc */ + { op_5bc8_0_comp_ff, 0x00000003, 23496 }, /* DBcc */ + { op_5bd0_0_comp_ff, 0x00000000, 23504 }, /* Scc */ + { op_5bd8_0_comp_ff, 0x00000000, 23512 }, /* Scc */ + { op_5be0_0_comp_ff, 0x00000000, 23520 }, /* Scc */ + { op_5be8_0_comp_ff, 0x00000002, 23528 }, /* Scc */ + { op_5bf0_0_comp_ff, 0x00000002, 23536 }, /* Scc */ + { op_5bf8_0_comp_ff, 0x00000002, 23544 }, /* Scc */ + { op_5bf9_0_comp_ff, 0x00000002, 23545 }, /* Scc */ + { NULL, 0x00000001, 23546 }, /* TRAPcc */ + { NULL, 0x00000001, 23547 }, /* TRAPcc */ + { NULL, 0x00000001, 23548 }, /* TRAPcc */ + { op_5cc0_0_comp_ff, 0x00000000, 23744 }, /* Scc */ + { op_5cc8_0_comp_ff, 0x00000003, 23752 }, /* DBcc */ + { op_5cd0_0_comp_ff, 0x00000000, 23760 }, /* Scc */ + { op_5cd8_0_comp_ff, 0x00000000, 23768 }, /* Scc */ + { op_5ce0_0_comp_ff, 0x00000000, 23776 }, /* Scc */ + { op_5ce8_0_comp_ff, 0x00000002, 23784 }, /* Scc */ + { op_5cf0_0_comp_ff, 0x00000002, 23792 }, /* Scc */ + { op_5cf8_0_comp_ff, 0x00000002, 23800 }, /* Scc */ + { op_5cf9_0_comp_ff, 0x00000002, 23801 }, /* Scc */ + { NULL, 0x00000001, 23802 }, /* TRAPcc */ + { NULL, 0x00000001, 23803 }, /* TRAPcc */ + { NULL, 0x00000001, 23804 }, /* TRAPcc */ + { op_5dc0_0_comp_ff, 0x00000000, 24000 }, /* Scc */ + { op_5dc8_0_comp_ff, 0x00000003, 24008 }, /* DBcc */ + { op_5dd0_0_comp_ff, 0x00000000, 24016 }, /* Scc */ + { op_5dd8_0_comp_ff, 0x00000000, 24024 }, /* Scc */ + { op_5de0_0_comp_ff, 0x00000000, 24032 }, /* Scc */ + { op_5de8_0_comp_ff, 0x00000002, 24040 }, /* Scc */ + { op_5df0_0_comp_ff, 0x00000002, 24048 }, /* Scc */ + { op_5df8_0_comp_ff, 0x00000002, 24056 }, /* Scc */ + { op_5df9_0_comp_ff, 0x00000002, 24057 }, /* Scc */ + { NULL, 0x00000001, 24058 }, /* TRAPcc */ + { NULL, 0x00000001, 24059 }, /* TRAPcc */ + { NULL, 0x00000001, 24060 }, /* TRAPcc */ + { op_5ec0_0_comp_ff, 0x00000000, 24256 }, /* Scc */ + { op_5ec8_0_comp_ff, 0x00000003, 24264 }, /* DBcc */ + { op_5ed0_0_comp_ff, 0x00000000, 24272 }, /* Scc */ + { op_5ed8_0_comp_ff, 0x00000000, 24280 }, /* Scc */ + { op_5ee0_0_comp_ff, 0x00000000, 24288 }, /* Scc */ + { op_5ee8_0_comp_ff, 0x00000002, 24296 }, /* Scc */ + { op_5ef0_0_comp_ff, 0x00000002, 24304 }, /* Scc */ + { op_5ef8_0_comp_ff, 0x00000002, 24312 }, /* Scc */ + { op_5ef9_0_comp_ff, 0x00000002, 24313 }, /* Scc */ + { NULL, 0x00000001, 24314 }, /* TRAPcc */ + { NULL, 0x00000001, 24315 }, /* TRAPcc */ + { NULL, 0x00000001, 24316 }, /* TRAPcc */ + { op_5fc0_0_comp_ff, 0x00000000, 24512 }, /* Scc */ + { op_5fc8_0_comp_ff, 0x00000003, 24520 }, /* DBcc */ + { op_5fd0_0_comp_ff, 0x00000000, 24528 }, /* Scc */ + { op_5fd8_0_comp_ff, 0x00000000, 24536 }, /* Scc */ + { op_5fe0_0_comp_ff, 0x00000000, 24544 }, /* Scc */ + { op_5fe8_0_comp_ff, 0x00000002, 24552 }, /* Scc */ + { op_5ff0_0_comp_ff, 0x00000002, 24560 }, /* Scc */ + { op_5ff8_0_comp_ff, 0x00000002, 24568 }, /* Scc */ + { op_5ff9_0_comp_ff, 0x00000002, 24569 }, /* Scc */ + { NULL, 0x00000001, 24570 }, /* TRAPcc */ + { NULL, 0x00000001, 24571 }, /* TRAPcc */ + { NULL, 0x00000001, 24572 }, /* TRAPcc */ + { op_6000_0_comp_ff, 0x00000012, 24576 }, /* Bcc */ + { op_6001_0_comp_ff, 0x00000010, 24577 }, /* Bcc */ + { op_60ff_0_comp_ff, 0x00000012, 24831 }, /* Bcc */ + { op_6100_0_comp_ff, 0x00000012, 24832 }, /* BSR */ + { op_6101_0_comp_ff, 0x00000010, 24833 }, /* BSR */ + { op_61ff_0_comp_ff, 0x00000012, 25087 }, /* BSR */ + { op_6200_0_comp_ff, 0x00000003, 25088 }, /* Bcc */ + { op_6201_0_comp_ff, 0x00000001, 25089 }, /* Bcc */ + { op_62ff_0_comp_ff, 0x00000003, 25343 }, /* Bcc */ + { op_6300_0_comp_ff, 0x00000003, 25344 }, /* Bcc */ + { op_6301_0_comp_ff, 0x00000001, 25345 }, /* Bcc */ + { op_63ff_0_comp_ff, 0x00000003, 25599 }, /* Bcc */ + { op_6400_0_comp_ff, 0x00000003, 25600 }, /* Bcc */ + { op_6401_0_comp_ff, 0x00000001, 25601 }, /* Bcc */ + { op_64ff_0_comp_ff, 0x00000003, 25855 }, /* Bcc */ + { op_6500_0_comp_ff, 0x00000003, 25856 }, /* Bcc */ + { op_6501_0_comp_ff, 0x00000001, 25857 }, /* Bcc */ + { op_65ff_0_comp_ff, 0x00000003, 26111 }, /* Bcc */ + { op_6600_0_comp_ff, 0x00000003, 26112 }, /* Bcc */ + { op_6601_0_comp_ff, 0x00000001, 26113 }, /* Bcc */ + { op_66ff_0_comp_ff, 0x00000003, 26367 }, /* Bcc */ + { op_6700_0_comp_ff, 0x00000003, 26368 }, /* Bcc */ + { op_6701_0_comp_ff, 0x00000001, 26369 }, /* Bcc */ + { op_67ff_0_comp_ff, 0x00000003, 26623 }, /* Bcc */ + { NULL, 0x00000003, 26624 }, /* Bcc */ + { NULL, 0x00000001, 26625 }, /* Bcc */ + { NULL, 0x00000003, 26879 }, /* Bcc */ + { NULL, 0x00000003, 26880 }, /* Bcc */ + { NULL, 0x00000001, 26881 }, /* Bcc */ + { NULL, 0x00000003, 27135 }, /* Bcc */ + { op_6a00_0_comp_ff, 0x00000003, 27136 }, /* Bcc */ + { op_6a01_0_comp_ff, 0x00000001, 27137 }, /* Bcc */ + { op_6aff_0_comp_ff, 0x00000003, 27391 }, /* Bcc */ + { op_6b00_0_comp_ff, 0x00000003, 27392 }, /* Bcc */ + { op_6b01_0_comp_ff, 0x00000001, 27393 }, /* Bcc */ + { op_6bff_0_comp_ff, 0x00000003, 27647 }, /* Bcc */ + { op_6c00_0_comp_ff, 0x00000003, 27648 }, /* Bcc */ + { op_6c01_0_comp_ff, 0x00000001, 27649 }, /* Bcc */ + { op_6cff_0_comp_ff, 0x00000003, 27903 }, /* Bcc */ + { op_6d00_0_comp_ff, 0x00000003, 27904 }, /* Bcc */ + { op_6d01_0_comp_ff, 0x00000001, 27905 }, /* Bcc */ + { op_6dff_0_comp_ff, 0x00000003, 28159 }, /* Bcc */ + { op_6e00_0_comp_ff, 0x00000003, 28160 }, /* Bcc */ + { op_6e01_0_comp_ff, 0x00000001, 28161 }, /* Bcc */ + { op_6eff_0_comp_ff, 0x00000003, 28415 }, /* Bcc */ + { op_6f00_0_comp_ff, 0x00000003, 28416 }, /* Bcc */ + { op_6f01_0_comp_ff, 0x00000001, 28417 }, /* Bcc */ + { op_6fff_0_comp_ff, 0x00000003, 28671 }, /* Bcc */ + { op_7000_0_comp_ff, 0x00000000, 28672 }, /* MOVE */ + { op_8000_0_comp_ff, 0x00000000, 32768 }, /* OR */ + { op_8010_0_comp_ff, 0x00000000, 32784 }, /* OR */ + { op_8018_0_comp_ff, 0x00000000, 32792 }, /* OR */ + { op_8020_0_comp_ff, 0x00000000, 32800 }, /* OR */ + { op_8028_0_comp_ff, 0x00000002, 32808 }, /* OR */ + { op_8030_0_comp_ff, 0x00000002, 32816 }, /* OR */ + { op_8038_0_comp_ff, 0x00000002, 32824 }, /* OR */ + { op_8039_0_comp_ff, 0x00000002, 32825 }, /* OR */ + { op_803a_0_comp_ff, 0x00000002, 32826 }, /* OR */ + { op_803b_0_comp_ff, 0x00000002, 32827 }, /* OR */ + { op_803c_0_comp_ff, 0x00000002, 32828 }, /* OR */ + { op_8040_0_comp_ff, 0x00000000, 32832 }, /* OR */ + { op_8050_0_comp_ff, 0x00000000, 32848 }, /* OR */ + { op_8058_0_comp_ff, 0x00000000, 32856 }, /* OR */ + { op_8060_0_comp_ff, 0x00000000, 32864 }, /* OR */ + { op_8068_0_comp_ff, 0x00000002, 32872 }, /* OR */ + { op_8070_0_comp_ff, 0x00000002, 32880 }, /* OR */ + { op_8078_0_comp_ff, 0x00000002, 32888 }, /* OR */ + { op_8079_0_comp_ff, 0x00000002, 32889 }, /* OR */ + { op_807a_0_comp_ff, 0x00000002, 32890 }, /* OR */ + { op_807b_0_comp_ff, 0x00000002, 32891 }, /* OR */ + { op_807c_0_comp_ff, 0x00000002, 32892 }, /* OR */ + { op_8080_0_comp_ff, 0x00000000, 32896 }, /* OR */ + { op_8090_0_comp_ff, 0x00000000, 32912 }, /* OR */ + { op_8098_0_comp_ff, 0x00000000, 32920 }, /* OR */ + { op_80a0_0_comp_ff, 0x00000000, 32928 }, /* OR */ + { op_80a8_0_comp_ff, 0x00000002, 32936 }, /* OR */ + { op_80b0_0_comp_ff, 0x00000002, 32944 }, /* OR */ + { op_80b8_0_comp_ff, 0x00000002, 32952 }, /* OR */ + { op_80b9_0_comp_ff, 0x00000002, 32953 }, /* OR */ + { op_80ba_0_comp_ff, 0x00000002, 32954 }, /* OR */ + { op_80bb_0_comp_ff, 0x00000002, 32955 }, /* OR */ + { op_80bc_0_comp_ff, 0x00000002, 32956 }, /* OR */ + { NULL, 0x00000001, 32960 }, /* DIVU */ + { NULL, 0x00000001, 32976 }, /* DIVU */ + { NULL, 0x00000001, 32984 }, /* DIVU */ + { NULL, 0x00000001, 32992 }, /* DIVU */ + { NULL, 0x00000003, 33000 }, /* DIVU */ + { NULL, 0x00000003, 33008 }, /* DIVU */ + { NULL, 0x00000003, 33016 }, /* DIVU */ + { NULL, 0x00000003, 33017 }, /* DIVU */ + { NULL, 0x00000003, 33018 }, /* DIVU */ + { NULL, 0x00000003, 33019 }, /* DIVU */ + { NULL, 0x00000003, 33020 }, /* DIVU */ + { NULL, 0x00000000, 33024 }, /* SBCD */ + { NULL, 0x00000000, 33032 }, /* SBCD */ + { op_8110_0_comp_ff, 0x00000000, 33040 }, /* OR */ + { op_8118_0_comp_ff, 0x00000000, 33048 }, /* OR */ + { op_8120_0_comp_ff, 0x00000000, 33056 }, /* OR */ + { op_8128_0_comp_ff, 0x00000002, 33064 }, /* OR */ + { op_8130_0_comp_ff, 0x00000002, 33072 }, /* OR */ + { op_8138_0_comp_ff, 0x00000002, 33080 }, /* OR */ + { op_8139_0_comp_ff, 0x00000002, 33081 }, /* OR */ + { NULL, 0x00000000, 33088 }, /* PACK */ + { NULL, 0x00000000, 33096 }, /* PACK */ + { op_8150_0_comp_ff, 0x00000000, 33104 }, /* OR */ + { op_8158_0_comp_ff, 0x00000000, 33112 }, /* OR */ + { op_8160_0_comp_ff, 0x00000000, 33120 }, /* OR */ + { op_8168_0_comp_ff, 0x00000002, 33128 }, /* OR */ + { op_8170_0_comp_ff, 0x00000002, 33136 }, /* OR */ + { op_8178_0_comp_ff, 0x00000002, 33144 }, /* OR */ + { op_8179_0_comp_ff, 0x00000002, 33145 }, /* OR */ + { NULL, 0x00000000, 33152 }, /* UNPK */ + { NULL, 0x00000000, 33160 }, /* UNPK */ + { op_8190_0_comp_ff, 0x00000000, 33168 }, /* OR */ + { op_8198_0_comp_ff, 0x00000000, 33176 }, /* OR */ + { op_81a0_0_comp_ff, 0x00000000, 33184 }, /* OR */ + { op_81a8_0_comp_ff, 0x00000002, 33192 }, /* OR */ + { op_81b0_0_comp_ff, 0x00000002, 33200 }, /* OR */ + { op_81b8_0_comp_ff, 0x00000002, 33208 }, /* OR */ + { op_81b9_0_comp_ff, 0x00000002, 33209 }, /* OR */ + { NULL, 0x00000001, 33216 }, /* DIVS */ + { NULL, 0x00000001, 33232 }, /* DIVS */ + { NULL, 0x00000001, 33240 }, /* DIVS */ + { NULL, 0x00000001, 33248 }, /* DIVS */ + { NULL, 0x00000001, 33256 }, /* DIVS */ + { NULL, 0x00000001, 33264 }, /* DIVS */ + { NULL, 0x00000001, 33272 }, /* DIVS */ + { NULL, 0x00000001, 33273 }, /* DIVS */ + { NULL, 0x00000001, 33274 }, /* DIVS */ + { NULL, 0x00000001, 33275 }, /* DIVS */ + { NULL, 0x00000001, 33276 }, /* DIVS */ + { op_9000_0_comp_ff, 0x00000000, 36864 }, /* SUB */ + { op_9010_0_comp_ff, 0x00000000, 36880 }, /* SUB */ + { op_9018_0_comp_ff, 0x00000000, 36888 }, /* SUB */ + { op_9020_0_comp_ff, 0x00000000, 36896 }, /* SUB */ + { op_9028_0_comp_ff, 0x00000002, 36904 }, /* SUB */ + { op_9030_0_comp_ff, 0x00000002, 36912 }, /* SUB */ + { op_9038_0_comp_ff, 0x00000002, 36920 }, /* SUB */ + { op_9039_0_comp_ff, 0x00000002, 36921 }, /* SUB */ + { op_903a_0_comp_ff, 0x00000002, 36922 }, /* SUB */ + { op_903b_0_comp_ff, 0x00000002, 36923 }, /* SUB */ + { op_903c_0_comp_ff, 0x00000002, 36924 }, /* SUB */ + { op_9040_0_comp_ff, 0x00000000, 36928 }, /* SUB */ + { op_9048_0_comp_ff, 0x00000000, 36936 }, /* SUB */ + { op_9050_0_comp_ff, 0x00000000, 36944 }, /* SUB */ + { op_9058_0_comp_ff, 0x00000000, 36952 }, /* SUB */ + { op_9060_0_comp_ff, 0x00000000, 36960 }, /* SUB */ + { op_9068_0_comp_ff, 0x00000002, 36968 }, /* SUB */ + { op_9070_0_comp_ff, 0x00000002, 36976 }, /* SUB */ + { op_9078_0_comp_ff, 0x00000002, 36984 }, /* SUB */ + { op_9079_0_comp_ff, 0x00000002, 36985 }, /* SUB */ + { op_907a_0_comp_ff, 0x00000002, 36986 }, /* SUB */ + { op_907b_0_comp_ff, 0x00000002, 36987 }, /* SUB */ + { op_907c_0_comp_ff, 0x00000002, 36988 }, /* SUB */ + { op_9080_0_comp_ff, 0x00000000, 36992 }, /* SUB */ + { op_9088_0_comp_ff, 0x00000000, 37000 }, /* SUB */ + { op_9090_0_comp_ff, 0x00000000, 37008 }, /* SUB */ + { op_9098_0_comp_ff, 0x00000000, 37016 }, /* SUB */ + { op_90a0_0_comp_ff, 0x00000000, 37024 }, /* SUB */ + { op_90a8_0_comp_ff, 0x00000002, 37032 }, /* SUB */ + { op_90b0_0_comp_ff, 0x00000002, 37040 }, /* SUB */ + { op_90b8_0_comp_ff, 0x00000002, 37048 }, /* SUB */ + { op_90b9_0_comp_ff, 0x00000002, 37049 }, /* SUB */ + { op_90ba_0_comp_ff, 0x00000002, 37050 }, /* SUB */ + { op_90bb_0_comp_ff, 0x00000002, 37051 }, /* SUB */ + { op_90bc_0_comp_ff, 0x00000002, 37052 }, /* SUB */ + { op_90c0_0_comp_ff, 0x00000000, 37056 }, /* SUBA */ + { op_90c8_0_comp_ff, 0x00000000, 37064 }, /* SUBA */ + { op_90d0_0_comp_ff, 0x00000000, 37072 }, /* SUBA */ + { op_90d8_0_comp_ff, 0x00000000, 37080 }, /* SUBA */ + { op_90e0_0_comp_ff, 0x00000000, 37088 }, /* SUBA */ + { op_90e8_0_comp_ff, 0x00000002, 37096 }, /* SUBA */ + { op_90f0_0_comp_ff, 0x00000002, 37104 }, /* SUBA */ + { op_90f8_0_comp_ff, 0x00000002, 37112 }, /* SUBA */ + { op_90f9_0_comp_ff, 0x00000002, 37113 }, /* SUBA */ + { op_90fa_0_comp_ff, 0x00000002, 37114 }, /* SUBA */ + { op_90fb_0_comp_ff, 0x00000002, 37115 }, /* SUBA */ + { op_90fc_0_comp_ff, 0x00000002, 37116 }, /* SUBA */ + { op_9100_0_comp_ff, 0x00000008, 37120 }, /* SUBX */ + { op_9108_0_comp_ff, 0x00000008, 37128 }, /* SUBX */ + { op_9110_0_comp_ff, 0x00000000, 37136 }, /* SUB */ + { op_9118_0_comp_ff, 0x00000000, 37144 }, /* SUB */ + { op_9120_0_comp_ff, 0x00000000, 37152 }, /* SUB */ + { op_9128_0_comp_ff, 0x00000002, 37160 }, /* SUB */ + { op_9130_0_comp_ff, 0x00000002, 37168 }, /* SUB */ + { op_9138_0_comp_ff, 0x00000002, 37176 }, /* SUB */ + { op_9139_0_comp_ff, 0x00000002, 37177 }, /* SUB */ + { op_9140_0_comp_ff, 0x00000008, 37184 }, /* SUBX */ + { op_9148_0_comp_ff, 0x00000008, 37192 }, /* SUBX */ + { op_9150_0_comp_ff, 0x00000000, 37200 }, /* SUB */ + { op_9158_0_comp_ff, 0x00000000, 37208 }, /* SUB */ + { op_9160_0_comp_ff, 0x00000000, 37216 }, /* SUB */ + { op_9168_0_comp_ff, 0x00000002, 37224 }, /* SUB */ + { op_9170_0_comp_ff, 0x00000002, 37232 }, /* SUB */ + { op_9178_0_comp_ff, 0x00000002, 37240 }, /* SUB */ + { op_9179_0_comp_ff, 0x00000002, 37241 }, /* SUB */ + { op_9180_0_comp_ff, 0x00000008, 37248 }, /* SUBX */ + { op_9188_0_comp_ff, 0x00000008, 37256 }, /* SUBX */ + { op_9190_0_comp_ff, 0x00000000, 37264 }, /* SUB */ + { op_9198_0_comp_ff, 0x00000000, 37272 }, /* SUB */ + { op_91a0_0_comp_ff, 0x00000000, 37280 }, /* SUB */ + { op_91a8_0_comp_ff, 0x00000002, 37288 }, /* SUB */ + { op_91b0_0_comp_ff, 0x00000002, 37296 }, /* SUB */ + { op_91b8_0_comp_ff, 0x00000002, 37304 }, /* SUB */ + { op_91b9_0_comp_ff, 0x00000002, 37305 }, /* SUB */ + { op_91c0_0_comp_ff, 0x00000000, 37312 }, /* SUBA */ + { op_91c8_0_comp_ff, 0x00000000, 37320 }, /* SUBA */ + { op_91d0_0_comp_ff, 0x00000000, 37328 }, /* SUBA */ + { op_91d8_0_comp_ff, 0x00000000, 37336 }, /* SUBA */ + { op_91e0_0_comp_ff, 0x00000000, 37344 }, /* SUBA */ + { op_91e8_0_comp_ff, 0x00000002, 37352 }, /* SUBA */ + { op_91f0_0_comp_ff, 0x00000002, 37360 }, /* SUBA */ + { op_91f8_0_comp_ff, 0x00000002, 37368 }, /* SUBA */ + { op_91f9_0_comp_ff, 0x00000002, 37369 }, /* SUBA */ + { op_91fa_0_comp_ff, 0x00000002, 37370 }, /* SUBA */ + { op_91fb_0_comp_ff, 0x00000002, 37371 }, /* SUBA */ + { op_91fc_0_comp_ff, 0x00000002, 37372 }, /* SUBA */ + { op_b000_0_comp_ff, 0x00000000, 45056 }, /* CMP */ + { op_b010_0_comp_ff, 0x00000000, 45072 }, /* CMP */ + { op_b018_0_comp_ff, 0x00000000, 45080 }, /* CMP */ + { op_b020_0_comp_ff, 0x00000000, 45088 }, /* CMP */ + { op_b028_0_comp_ff, 0x00000002, 45096 }, /* CMP */ + { op_b030_0_comp_ff, 0x00000002, 45104 }, /* CMP */ + { op_b038_0_comp_ff, 0x00000002, 45112 }, /* CMP */ + { op_b039_0_comp_ff, 0x00000002, 45113 }, /* CMP */ + { op_b03a_0_comp_ff, 0x00000002, 45114 }, /* CMP */ + { op_b03b_0_comp_ff, 0x00000002, 45115 }, /* CMP */ + { op_b03c_0_comp_ff, 0x00000002, 45116 }, /* CMP */ + { op_b040_0_comp_ff, 0x00000000, 45120 }, /* CMP */ + { op_b048_0_comp_ff, 0x00000000, 45128 }, /* CMP */ + { op_b050_0_comp_ff, 0x00000000, 45136 }, /* CMP */ + { op_b058_0_comp_ff, 0x00000000, 45144 }, /* CMP */ + { op_b060_0_comp_ff, 0x00000000, 45152 }, /* CMP */ + { op_b068_0_comp_ff, 0x00000002, 45160 }, /* CMP */ + { op_b070_0_comp_ff, 0x00000002, 45168 }, /* CMP */ + { op_b078_0_comp_ff, 0x00000002, 45176 }, /* CMP */ + { op_b079_0_comp_ff, 0x00000002, 45177 }, /* CMP */ + { op_b07a_0_comp_ff, 0x00000002, 45178 }, /* CMP */ + { op_b07b_0_comp_ff, 0x00000002, 45179 }, /* CMP */ + { op_b07c_0_comp_ff, 0x00000002, 45180 }, /* CMP */ + { op_b080_0_comp_ff, 0x00000000, 45184 }, /* CMP */ + { op_b088_0_comp_ff, 0x00000000, 45192 }, /* CMP */ + { op_b090_0_comp_ff, 0x00000000, 45200 }, /* CMP */ + { op_b098_0_comp_ff, 0x00000000, 45208 }, /* CMP */ + { op_b0a0_0_comp_ff, 0x00000000, 45216 }, /* CMP */ + { op_b0a8_0_comp_ff, 0x00000002, 45224 }, /* CMP */ + { op_b0b0_0_comp_ff, 0x00000002, 45232 }, /* CMP */ + { op_b0b8_0_comp_ff, 0x00000002, 45240 }, /* CMP */ + { op_b0b9_0_comp_ff, 0x00000002, 45241 }, /* CMP */ + { op_b0ba_0_comp_ff, 0x00000002, 45242 }, /* CMP */ + { op_b0bb_0_comp_ff, 0x00000002, 45243 }, /* CMP */ + { op_b0bc_0_comp_ff, 0x00000002, 45244 }, /* CMP */ + { op_b0c0_0_comp_ff, 0x00000000, 45248 }, /* CMPA */ + { op_b0c8_0_comp_ff, 0x00000000, 45256 }, /* CMPA */ + { op_b0d0_0_comp_ff, 0x00000000, 45264 }, /* CMPA */ + { op_b0d8_0_comp_ff, 0x00000000, 45272 }, /* CMPA */ + { op_b0e0_0_comp_ff, 0x00000000, 45280 }, /* CMPA */ + { op_b0e8_0_comp_ff, 0x00000002, 45288 }, /* CMPA */ + { op_b0f0_0_comp_ff, 0x00000002, 45296 }, /* CMPA */ + { op_b0f8_0_comp_ff, 0x00000002, 45304 }, /* CMPA */ + { op_b0f9_0_comp_ff, 0x00000002, 45305 }, /* CMPA */ + { op_b0fa_0_comp_ff, 0x00000002, 45306 }, /* CMPA */ + { op_b0fb_0_comp_ff, 0x00000002, 45307 }, /* CMPA */ + { op_b0fc_0_comp_ff, 0x00000002, 45308 }, /* CMPA */ + { op_b100_0_comp_ff, 0x00000000, 45312 }, /* EOR */ + { op_b108_0_comp_ff, 0x00000000, 45320 }, /* CMPM */ + { op_b110_0_comp_ff, 0x00000000, 45328 }, /* EOR */ + { op_b118_0_comp_ff, 0x00000000, 45336 }, /* EOR */ + { op_b120_0_comp_ff, 0x00000000, 45344 }, /* EOR */ + { op_b128_0_comp_ff, 0x00000002, 45352 }, /* EOR */ + { op_b130_0_comp_ff, 0x00000002, 45360 }, /* EOR */ + { op_b138_0_comp_ff, 0x00000002, 45368 }, /* EOR */ + { op_b139_0_comp_ff, 0x00000002, 45369 }, /* EOR */ + { op_b140_0_comp_ff, 0x00000000, 45376 }, /* EOR */ + { op_b148_0_comp_ff, 0x00000000, 45384 }, /* CMPM */ + { op_b150_0_comp_ff, 0x00000000, 45392 }, /* EOR */ + { op_b158_0_comp_ff, 0x00000000, 45400 }, /* EOR */ + { op_b160_0_comp_ff, 0x00000000, 45408 }, /* EOR */ + { op_b168_0_comp_ff, 0x00000002, 45416 }, /* EOR */ + { op_b170_0_comp_ff, 0x00000002, 45424 }, /* EOR */ + { op_b178_0_comp_ff, 0x00000002, 45432 }, /* EOR */ + { op_b179_0_comp_ff, 0x00000002, 45433 }, /* EOR */ + { op_b180_0_comp_ff, 0x00000000, 45440 }, /* EOR */ + { op_b188_0_comp_ff, 0x00000000, 45448 }, /* CMPM */ + { op_b190_0_comp_ff, 0x00000000, 45456 }, /* EOR */ + { op_b198_0_comp_ff, 0x00000000, 45464 }, /* EOR */ + { op_b1a0_0_comp_ff, 0x00000000, 45472 }, /* EOR */ + { op_b1a8_0_comp_ff, 0x00000002, 45480 }, /* EOR */ + { op_b1b0_0_comp_ff, 0x00000002, 45488 }, /* EOR */ + { op_b1b8_0_comp_ff, 0x00000002, 45496 }, /* EOR */ + { op_b1b9_0_comp_ff, 0x00000002, 45497 }, /* EOR */ + { op_b1c0_0_comp_ff, 0x00000000, 45504 }, /* CMPA */ + { op_b1c8_0_comp_ff, 0x00000000, 45512 }, /* CMPA */ + { op_b1d0_0_comp_ff, 0x00000000, 45520 }, /* CMPA */ + { op_b1d8_0_comp_ff, 0x00000000, 45528 }, /* CMPA */ + { op_b1e0_0_comp_ff, 0x00000000, 45536 }, /* CMPA */ + { op_b1e8_0_comp_ff, 0x00000002, 45544 }, /* CMPA */ + { op_b1f0_0_comp_ff, 0x00000002, 45552 }, /* CMPA */ + { op_b1f8_0_comp_ff, 0x00000002, 45560 }, /* CMPA */ + { op_b1f9_0_comp_ff, 0x00000002, 45561 }, /* CMPA */ + { op_b1fa_0_comp_ff, 0x00000002, 45562 }, /* CMPA */ + { op_b1fb_0_comp_ff, 0x00000002, 45563 }, /* CMPA */ + { op_b1fc_0_comp_ff, 0x00000002, 45564 }, /* CMPA */ + { op_c000_0_comp_ff, 0x00000000, 49152 }, /* AND */ + { op_c010_0_comp_ff, 0x00000000, 49168 }, /* AND */ + { op_c018_0_comp_ff, 0x00000000, 49176 }, /* AND */ + { op_c020_0_comp_ff, 0x00000000, 49184 }, /* AND */ + { op_c028_0_comp_ff, 0x00000002, 49192 }, /* AND */ + { op_c030_0_comp_ff, 0x00000002, 49200 }, /* AND */ + { op_c038_0_comp_ff, 0x00000002, 49208 }, /* AND */ + { op_c039_0_comp_ff, 0x00000002, 49209 }, /* AND */ + { op_c03a_0_comp_ff, 0x00000002, 49210 }, /* AND */ + { op_c03b_0_comp_ff, 0x00000002, 49211 }, /* AND */ + { op_c03c_0_comp_ff, 0x00000002, 49212 }, /* AND */ + { op_c040_0_comp_ff, 0x00000000, 49216 }, /* AND */ + { op_c050_0_comp_ff, 0x00000000, 49232 }, /* AND */ + { op_c058_0_comp_ff, 0x00000000, 49240 }, /* AND */ + { op_c060_0_comp_ff, 0x00000000, 49248 }, /* AND */ + { op_c068_0_comp_ff, 0x00000002, 49256 }, /* AND */ + { op_c070_0_comp_ff, 0x00000002, 49264 }, /* AND */ + { op_c078_0_comp_ff, 0x00000002, 49272 }, /* AND */ + { op_c079_0_comp_ff, 0x00000002, 49273 }, /* AND */ + { op_c07a_0_comp_ff, 0x00000002, 49274 }, /* AND */ + { op_c07b_0_comp_ff, 0x00000002, 49275 }, /* AND */ + { op_c07c_0_comp_ff, 0x00000002, 49276 }, /* AND */ + { op_c080_0_comp_ff, 0x00000000, 49280 }, /* AND */ + { op_c090_0_comp_ff, 0x00000000, 49296 }, /* AND */ + { op_c098_0_comp_ff, 0x00000000, 49304 }, /* AND */ + { op_c0a0_0_comp_ff, 0x00000000, 49312 }, /* AND */ + { op_c0a8_0_comp_ff, 0x00000002, 49320 }, /* AND */ + { op_c0b0_0_comp_ff, 0x00000002, 49328 }, /* AND */ + { op_c0b8_0_comp_ff, 0x00000002, 49336 }, /* AND */ + { op_c0b9_0_comp_ff, 0x00000002, 49337 }, /* AND */ + { op_c0ba_0_comp_ff, 0x00000002, 49338 }, /* AND */ + { op_c0bb_0_comp_ff, 0x00000002, 49339 }, /* AND */ + { op_c0bc_0_comp_ff, 0x00000002, 49340 }, /* AND */ + { op_c0c0_0_comp_ff, 0x00000000, 49344 }, /* MULU */ + { op_c0d0_0_comp_ff, 0x00000000, 49360 }, /* MULU */ + { op_c0d8_0_comp_ff, 0x00000000, 49368 }, /* MULU */ + { op_c0e0_0_comp_ff, 0x00000000, 49376 }, /* MULU */ + { op_c0e8_0_comp_ff, 0x00000002, 49384 }, /* MULU */ + { op_c0f0_0_comp_ff, 0x00000002, 49392 }, /* MULU */ + { op_c0f8_0_comp_ff, 0x00000002, 49400 }, /* MULU */ + { op_c0f9_0_comp_ff, 0x00000002, 49401 }, /* MULU */ + { op_c0fa_0_comp_ff, 0x00000002, 49402 }, /* MULU */ + { op_c0fb_0_comp_ff, 0x00000002, 49403 }, /* MULU */ + { op_c0fc_0_comp_ff, 0x00000002, 49404 }, /* MULU */ + { NULL, 0x00000000, 49408 }, /* ABCD */ + { NULL, 0x00000000, 49416 }, /* ABCD */ + { op_c110_0_comp_ff, 0x00000000, 49424 }, /* AND */ + { op_c118_0_comp_ff, 0x00000000, 49432 }, /* AND */ + { op_c120_0_comp_ff, 0x00000000, 49440 }, /* AND */ + { op_c128_0_comp_ff, 0x00000002, 49448 }, /* AND */ + { op_c130_0_comp_ff, 0x00000002, 49456 }, /* AND */ + { op_c138_0_comp_ff, 0x00000002, 49464 }, /* AND */ + { op_c139_0_comp_ff, 0x00000002, 49465 }, /* AND */ + { op_c140_0_comp_ff, 0x00000000, 49472 }, /* EXG */ + { op_c148_0_comp_ff, 0x00000000, 49480 }, /* EXG */ + { op_c150_0_comp_ff, 0x00000000, 49488 }, /* AND */ + { op_c158_0_comp_ff, 0x00000000, 49496 }, /* AND */ + { op_c160_0_comp_ff, 0x00000000, 49504 }, /* AND */ + { op_c168_0_comp_ff, 0x00000002, 49512 }, /* AND */ + { op_c170_0_comp_ff, 0x00000002, 49520 }, /* AND */ + { op_c178_0_comp_ff, 0x00000002, 49528 }, /* AND */ + { op_c179_0_comp_ff, 0x00000002, 49529 }, /* AND */ + { op_c188_0_comp_ff, 0x00000000, 49544 }, /* EXG */ + { op_c190_0_comp_ff, 0x00000000, 49552 }, /* AND */ + { op_c198_0_comp_ff, 0x00000000, 49560 }, /* AND */ + { op_c1a0_0_comp_ff, 0x00000000, 49568 }, /* AND */ + { op_c1a8_0_comp_ff, 0x00000002, 49576 }, /* AND */ + { op_c1b0_0_comp_ff, 0x00000002, 49584 }, /* AND */ + { op_c1b8_0_comp_ff, 0x00000002, 49592 }, /* AND */ + { op_c1b9_0_comp_ff, 0x00000002, 49593 }, /* AND */ + { op_c1c0_0_comp_ff, 0x00000000, 49600 }, /* MULS */ + { op_c1d0_0_comp_ff, 0x00000000, 49616 }, /* MULS */ + { op_c1d8_0_comp_ff, 0x00000000, 49624 }, /* MULS */ + { op_c1e0_0_comp_ff, 0x00000000, 49632 }, /* MULS */ + { op_c1e8_0_comp_ff, 0x00000002, 49640 }, /* MULS */ + { op_c1f0_0_comp_ff, 0x00000002, 49648 }, /* MULS */ + { op_c1f8_0_comp_ff, 0x00000002, 49656 }, /* MULS */ + { op_c1f9_0_comp_ff, 0x00000002, 49657 }, /* MULS */ + { op_c1fa_0_comp_ff, 0x00000002, 49658 }, /* MULS */ + { op_c1fb_0_comp_ff, 0x00000002, 49659 }, /* MULS */ + { op_c1fc_0_comp_ff, 0x00000002, 49660 }, /* MULS */ + { op_d000_0_comp_ff, 0x00000000, 53248 }, /* ADD */ + { op_d010_0_comp_ff, 0x00000000, 53264 }, /* ADD */ + { op_d018_0_comp_ff, 0x00000000, 53272 }, /* ADD */ + { op_d020_0_comp_ff, 0x00000000, 53280 }, /* ADD */ + { op_d028_0_comp_ff, 0x00000002, 53288 }, /* ADD */ + { op_d030_0_comp_ff, 0x00000002, 53296 }, /* ADD */ + { op_d038_0_comp_ff, 0x00000002, 53304 }, /* ADD */ + { op_d039_0_comp_ff, 0x00000002, 53305 }, /* ADD */ + { op_d03a_0_comp_ff, 0x00000002, 53306 }, /* ADD */ + { op_d03b_0_comp_ff, 0x00000002, 53307 }, /* ADD */ + { op_d03c_0_comp_ff, 0x00000002, 53308 }, /* ADD */ + { op_d040_0_comp_ff, 0x00000000, 53312 }, /* ADD */ + { op_d048_0_comp_ff, 0x00000000, 53320 }, /* ADD */ + { op_d050_0_comp_ff, 0x00000000, 53328 }, /* ADD */ + { op_d058_0_comp_ff, 0x00000000, 53336 }, /* ADD */ + { op_d060_0_comp_ff, 0x00000000, 53344 }, /* ADD */ + { op_d068_0_comp_ff, 0x00000002, 53352 }, /* ADD */ + { op_d070_0_comp_ff, 0x00000002, 53360 }, /* ADD */ + { op_d078_0_comp_ff, 0x00000002, 53368 }, /* ADD */ + { op_d079_0_comp_ff, 0x00000002, 53369 }, /* ADD */ + { op_d07a_0_comp_ff, 0x00000002, 53370 }, /* ADD */ + { op_d07b_0_comp_ff, 0x00000002, 53371 }, /* ADD */ + { op_d07c_0_comp_ff, 0x00000002, 53372 }, /* ADD */ + { op_d080_0_comp_ff, 0x00000000, 53376 }, /* ADD */ + { op_d088_0_comp_ff, 0x00000000, 53384 }, /* ADD */ + { op_d090_0_comp_ff, 0x00000000, 53392 }, /* ADD */ + { op_d098_0_comp_ff, 0x00000000, 53400 }, /* ADD */ + { op_d0a0_0_comp_ff, 0x00000000, 53408 }, /* ADD */ + { op_d0a8_0_comp_ff, 0x00000002, 53416 }, /* ADD */ + { op_d0b0_0_comp_ff, 0x00000002, 53424 }, /* ADD */ + { op_d0b8_0_comp_ff, 0x00000002, 53432 }, /* ADD */ + { op_d0b9_0_comp_ff, 0x00000002, 53433 }, /* ADD */ + { op_d0ba_0_comp_ff, 0x00000002, 53434 }, /* ADD */ + { op_d0bb_0_comp_ff, 0x00000002, 53435 }, /* ADD */ + { op_d0bc_0_comp_ff, 0x00000002, 53436 }, /* ADD */ + { op_d0c0_0_comp_ff, 0x00000000, 53440 }, /* ADDA */ + { op_d0c8_0_comp_ff, 0x00000000, 53448 }, /* ADDA */ + { op_d0d0_0_comp_ff, 0x00000000, 53456 }, /* ADDA */ + { op_d0d8_0_comp_ff, 0x00000000, 53464 }, /* ADDA */ + { op_d0e0_0_comp_ff, 0x00000000, 53472 }, /* ADDA */ + { op_d0e8_0_comp_ff, 0x00000002, 53480 }, /* ADDA */ + { op_d0f0_0_comp_ff, 0x00000002, 53488 }, /* ADDA */ + { op_d0f8_0_comp_ff, 0x00000002, 53496 }, /* ADDA */ + { op_d0f9_0_comp_ff, 0x00000002, 53497 }, /* ADDA */ + { op_d0fa_0_comp_ff, 0x00000002, 53498 }, /* ADDA */ + { op_d0fb_0_comp_ff, 0x00000002, 53499 }, /* ADDA */ + { op_d0fc_0_comp_ff, 0x00000002, 53500 }, /* ADDA */ + { op_d100_0_comp_ff, 0x00000008, 53504 }, /* ADDX */ + { op_d108_0_comp_ff, 0x00000008, 53512 }, /* ADDX */ + { op_d110_0_comp_ff, 0x00000000, 53520 }, /* ADD */ + { op_d118_0_comp_ff, 0x00000000, 53528 }, /* ADD */ + { op_d120_0_comp_ff, 0x00000000, 53536 }, /* ADD */ + { op_d128_0_comp_ff, 0x00000002, 53544 }, /* ADD */ + { op_d130_0_comp_ff, 0x00000002, 53552 }, /* ADD */ + { op_d138_0_comp_ff, 0x00000002, 53560 }, /* ADD */ + { op_d139_0_comp_ff, 0x00000002, 53561 }, /* ADD */ + { op_d140_0_comp_ff, 0x00000008, 53568 }, /* ADDX */ + { op_d148_0_comp_ff, 0x00000008, 53576 }, /* ADDX */ + { op_d150_0_comp_ff, 0x00000000, 53584 }, /* ADD */ + { op_d158_0_comp_ff, 0x00000000, 53592 }, /* ADD */ + { op_d160_0_comp_ff, 0x00000000, 53600 }, /* ADD */ + { op_d168_0_comp_ff, 0x00000002, 53608 }, /* ADD */ + { op_d170_0_comp_ff, 0x00000002, 53616 }, /* ADD */ + { op_d178_0_comp_ff, 0x00000002, 53624 }, /* ADD */ + { op_d179_0_comp_ff, 0x00000002, 53625 }, /* ADD */ + { op_d180_0_comp_ff, 0x00000008, 53632 }, /* ADDX */ + { op_d188_0_comp_ff, 0x00000008, 53640 }, /* ADDX */ + { op_d190_0_comp_ff, 0x00000000, 53648 }, /* ADD */ + { op_d198_0_comp_ff, 0x00000000, 53656 }, /* ADD */ + { op_d1a0_0_comp_ff, 0x00000000, 53664 }, /* ADD */ + { op_d1a8_0_comp_ff, 0x00000002, 53672 }, /* ADD */ + { op_d1b0_0_comp_ff, 0x00000002, 53680 }, /* ADD */ + { op_d1b8_0_comp_ff, 0x00000002, 53688 }, /* ADD */ + { op_d1b9_0_comp_ff, 0x00000002, 53689 }, /* ADD */ + { op_d1c0_0_comp_ff, 0x00000000, 53696 }, /* ADDA */ + { op_d1c8_0_comp_ff, 0x00000000, 53704 }, /* ADDA */ + { op_d1d0_0_comp_ff, 0x00000000, 53712 }, /* ADDA */ + { op_d1d8_0_comp_ff, 0x00000000, 53720 }, /* ADDA */ + { op_d1e0_0_comp_ff, 0x00000000, 53728 }, /* ADDA */ + { op_d1e8_0_comp_ff, 0x00000002, 53736 }, /* ADDA */ + { op_d1f0_0_comp_ff, 0x00000002, 53744 }, /* ADDA */ + { op_d1f8_0_comp_ff, 0x00000002, 53752 }, /* ADDA */ + { op_d1f9_0_comp_ff, 0x00000002, 53753 }, /* ADDA */ + { op_d1fa_0_comp_ff, 0x00000002, 53754 }, /* ADDA */ + { op_d1fb_0_comp_ff, 0x00000002, 53755 }, /* ADDA */ + { op_d1fc_0_comp_ff, 0x00000002, 53756 }, /* ADDA */ + { op_e000_0_comp_ff, 0x00000000, 57344 }, /* ASR */ + { op_e008_0_comp_ff, 0x00000000, 57352 }, /* LSR */ + { NULL, 0x00000008, 57360 }, /* ROXR */ + { op_e018_0_comp_ff, 0x00000000, 57368 }, /* ROR */ + { op_e020_0_comp_ff, 0x00000000, 57376 }, /* ASR */ + { op_e028_0_comp_ff, 0x00000000, 57384 }, /* LSR */ + { NULL, 0x00000008, 57392 }, /* ROXR */ + { op_e038_0_comp_ff, 0x00000000, 57400 }, /* ROR */ + { op_e040_0_comp_ff, 0x00000000, 57408 }, /* ASR */ + { op_e048_0_comp_ff, 0x00000000, 57416 }, /* LSR */ + { NULL, 0x00000008, 57424 }, /* ROXR */ + { op_e058_0_comp_ff, 0x00000000, 57432 }, /* ROR */ + { op_e060_0_comp_ff, 0x00000000, 57440 }, /* ASR */ + { op_e068_0_comp_ff, 0x00000000, 57448 }, /* LSR */ + { NULL, 0x00000008, 57456 }, /* ROXR */ + { op_e078_0_comp_ff, 0x00000000, 57464 }, /* ROR */ + { op_e080_0_comp_ff, 0x00000000, 57472 }, /* ASR */ + { op_e088_0_comp_ff, 0x00000000, 57480 }, /* LSR */ + { NULL, 0x00000008, 57488 }, /* ROXR */ + { op_e098_0_comp_ff, 0x00000000, 57496 }, /* ROR */ + { op_e0a0_0_comp_ff, 0x00000000, 57504 }, /* ASR */ + { op_e0a8_0_comp_ff, 0x00000000, 57512 }, /* LSR */ + { NULL, 0x00000008, 57520 }, /* ROXR */ + { op_e0b8_0_comp_ff, 0x00000000, 57528 }, /* ROR */ + { op_e0d0_0_comp_ff, 0x00000000, 57552 }, /* ASRW */ + { op_e0d8_0_comp_ff, 0x00000000, 57560 }, /* ASRW */ + { op_e0e0_0_comp_ff, 0x00000000, 57568 }, /* ASRW */ + { op_e0e8_0_comp_ff, 0x00000002, 57576 }, /* ASRW */ + { op_e0f0_0_comp_ff, 0x00000002, 57584 }, /* ASRW */ + { op_e0f8_0_comp_ff, 0x00000002, 57592 }, /* ASRW */ + { op_e0f9_0_comp_ff, 0x00000002, 57593 }, /* ASRW */ + { op_e100_0_comp_ff, 0x00000000, 57600 }, /* ASL */ + { op_e108_0_comp_ff, 0x00000000, 57608 }, /* LSL */ + { NULL, 0x00000008, 57616 }, /* ROXL */ + { op_e118_0_comp_ff, 0x00000000, 57624 }, /* ROL */ + { op_e120_0_comp_ff, 0x00000000, 57632 }, /* ASL */ + { op_e128_0_comp_ff, 0x00000000, 57640 }, /* LSL */ + { NULL, 0x00000008, 57648 }, /* ROXL */ + { op_e138_0_comp_ff, 0x00000000, 57656 }, /* ROL */ + { op_e140_0_comp_ff, 0x00000000, 57664 }, /* ASL */ + { op_e148_0_comp_ff, 0x00000000, 57672 }, /* LSL */ + { NULL, 0x00000008, 57680 }, /* ROXL */ + { op_e158_0_comp_ff, 0x00000000, 57688 }, /* ROL */ + { op_e160_0_comp_ff, 0x00000000, 57696 }, /* ASL */ + { op_e168_0_comp_ff, 0x00000000, 57704 }, /* LSL */ + { NULL, 0x00000008, 57712 }, /* ROXL */ + { op_e178_0_comp_ff, 0x00000000, 57720 }, /* ROL */ + { op_e180_0_comp_ff, 0x00000000, 57728 }, /* ASL */ + { op_e188_0_comp_ff, 0x00000000, 57736 }, /* LSL */ + { NULL, 0x00000008, 57744 }, /* ROXL */ + { op_e198_0_comp_ff, 0x00000000, 57752 }, /* ROL */ + { op_e1a0_0_comp_ff, 0x00000000, 57760 }, /* ASL */ + { op_e1a8_0_comp_ff, 0x00000000, 57768 }, /* LSL */ + { NULL, 0x00000008, 57776 }, /* ROXL */ + { op_e1b8_0_comp_ff, 0x00000000, 57784 }, /* ROL */ + { op_e1d0_0_comp_ff, 0x00000000, 57808 }, /* ASLW */ + { op_e1d8_0_comp_ff, 0x00000000, 57816 }, /* ASLW */ + { op_e1e0_0_comp_ff, 0x00000000, 57824 }, /* ASLW */ + { op_e1e8_0_comp_ff, 0x00000002, 57832 }, /* ASLW */ + { op_e1f0_0_comp_ff, 0x00000002, 57840 }, /* ASLW */ + { op_e1f8_0_comp_ff, 0x00000002, 57848 }, /* ASLW */ + { op_e1f9_0_comp_ff, 0x00000002, 57849 }, /* ASLW */ + { op_e2d0_0_comp_ff, 0x00000000, 58064 }, /* LSRW */ + { op_e2d8_0_comp_ff, 0x00000000, 58072 }, /* LSRW */ + { op_e2e0_0_comp_ff, 0x00000000, 58080 }, /* LSRW */ + { op_e2e8_0_comp_ff, 0x00000002, 58088 }, /* LSRW */ + { op_e2f0_0_comp_ff, 0x00000002, 58096 }, /* LSRW */ + { op_e2f8_0_comp_ff, 0x00000002, 58104 }, /* LSRW */ + { op_e2f9_0_comp_ff, 0x00000002, 58105 }, /* LSRW */ + { op_e3d0_0_comp_ff, 0x00000000, 58320 }, /* LSLW */ + { op_e3d8_0_comp_ff, 0x00000000, 58328 }, /* LSLW */ + { op_e3e0_0_comp_ff, 0x00000000, 58336 }, /* LSLW */ + { op_e3e8_0_comp_ff, 0x00000002, 58344 }, /* LSLW */ + { op_e3f0_0_comp_ff, 0x00000002, 58352 }, /* LSLW */ + { op_e3f8_0_comp_ff, 0x00000002, 58360 }, /* LSLW */ + { op_e3f9_0_comp_ff, 0x00000002, 58361 }, /* LSLW */ + { NULL, 0x00000008, 58576 }, /* ROXRW */ + { NULL, 0x00000008, 58584 }, /* ROXRW */ + { NULL, 0x00000008, 58592 }, /* ROXRW */ + { NULL, 0x0000000a, 58600 }, /* ROXRW */ + { NULL, 0x0000000a, 58608 }, /* ROXRW */ + { NULL, 0x0000000a, 58616 }, /* ROXRW */ + { NULL, 0x0000000a, 58617 }, /* ROXRW */ + { NULL, 0x00000008, 58832 }, /* ROXLW */ + { NULL, 0x00000008, 58840 }, /* ROXLW */ + { NULL, 0x00000008, 58848 }, /* ROXLW */ + { NULL, 0x0000000a, 58856 }, /* ROXLW */ + { NULL, 0x0000000a, 58864 }, /* ROXLW */ + { NULL, 0x0000000a, 58872 }, /* ROXLW */ + { NULL, 0x0000000a, 58873 }, /* ROXLW */ + { op_e6d0_0_comp_ff, 0x00000000, 59088 }, /* RORW */ + { op_e6d8_0_comp_ff, 0x00000000, 59096 }, /* RORW */ + { op_e6e0_0_comp_ff, 0x00000000, 59104 }, /* RORW */ + { op_e6e8_0_comp_ff, 0x00000002, 59112 }, /* RORW */ + { op_e6f0_0_comp_ff, 0x00000002, 59120 }, /* RORW */ + { op_e6f8_0_comp_ff, 0x00000002, 59128 }, /* RORW */ + { op_e6f9_0_comp_ff, 0x00000002, 59129 }, /* RORW */ + { op_e7d0_0_comp_ff, 0x00000000, 59344 }, /* ROLW */ + { op_e7d8_0_comp_ff, 0x00000000, 59352 }, /* ROLW */ + { op_e7e0_0_comp_ff, 0x00000000, 59360 }, /* ROLW */ + { op_e7e8_0_comp_ff, 0x00000002, 59368 }, /* ROLW */ + { op_e7f0_0_comp_ff, 0x00000002, 59376 }, /* ROLW */ + { op_e7f8_0_comp_ff, 0x00000002, 59384 }, /* ROLW */ + { op_e7f9_0_comp_ff, 0x00000002, 59385 }, /* ROLW */ + { NULL, 0x00000000, 59584 }, /* BFTST */ + { NULL, 0x00000000, 59600 }, /* BFTST */ + { NULL, 0x00000000, 59624 }, /* BFTST */ + { NULL, 0x00000000, 59632 }, /* BFTST */ + { NULL, 0x00000000, 59640 }, /* BFTST */ + { NULL, 0x00000000, 59641 }, /* BFTST */ + { NULL, 0x00000000, 59642 }, /* BFTST */ + { NULL, 0x00000000, 59643 }, /* BFTST */ + { NULL, 0x00000000, 59840 }, /* BFEXTU */ + { NULL, 0x00000000, 59856 }, /* BFEXTU */ + { NULL, 0x00000000, 59880 }, /* BFEXTU */ + { NULL, 0x00000000, 59888 }, /* BFEXTU */ + { NULL, 0x00000000, 59896 }, /* BFEXTU */ + { NULL, 0x00000000, 59897 }, /* BFEXTU */ + { NULL, 0x00000000, 59898 }, /* BFEXTU */ + { NULL, 0x00000000, 59899 }, /* BFEXTU */ + { NULL, 0x00000000, 60096 }, /* BFCHG */ + { NULL, 0x00000000, 60112 }, /* BFCHG */ + { NULL, 0x00000000, 60136 }, /* BFCHG */ + { NULL, 0x00000000, 60144 }, /* BFCHG */ + { NULL, 0x00000000, 60152 }, /* BFCHG */ + { NULL, 0x00000000, 60153 }, /* BFCHG */ + { NULL, 0x00000000, 60352 }, /* BFEXTS */ + { NULL, 0x00000000, 60368 }, /* BFEXTS */ + { NULL, 0x00000000, 60392 }, /* BFEXTS */ + { NULL, 0x00000000, 60400 }, /* BFEXTS */ + { NULL, 0x00000000, 60408 }, /* BFEXTS */ + { NULL, 0x00000000, 60409 }, /* BFEXTS */ + { NULL, 0x00000000, 60410 }, /* BFEXTS */ + { NULL, 0x00000000, 60411 }, /* BFEXTS */ + { NULL, 0x00000000, 60608 }, /* BFCLR */ + { NULL, 0x00000000, 60624 }, /* BFCLR */ + { NULL, 0x00000000, 60648 }, /* BFCLR */ + { NULL, 0x00000000, 60656 }, /* BFCLR */ + { NULL, 0x00000000, 60664 }, /* BFCLR */ + { NULL, 0x00000000, 60665 }, /* BFCLR */ + { NULL, 0x00000000, 60864 }, /* BFFFO */ + { NULL, 0x00000000, 60880 }, /* BFFFO */ + { NULL, 0x00000000, 60904 }, /* BFFFO */ + { NULL, 0x00000000, 60912 }, /* BFFFO */ + { NULL, 0x00000000, 60920 }, /* BFFFO */ + { NULL, 0x00000000, 60921 }, /* BFFFO */ + { NULL, 0x00000000, 60922 }, /* BFFFO */ + { NULL, 0x00000000, 60923 }, /* BFFFO */ + { NULL, 0x00000000, 61120 }, /* BFSET */ + { NULL, 0x00000000, 61136 }, /* BFSET */ + { NULL, 0x00000000, 61160 }, /* BFSET */ + { NULL, 0x00000000, 61168 }, /* BFSET */ + { NULL, 0x00000000, 61176 }, /* BFSET */ + { NULL, 0x00000000, 61177 }, /* BFSET */ + { NULL, 0x00000000, 61376 }, /* BFINS */ + { NULL, 0x00000000, 61392 }, /* BFINS */ + { NULL, 0x00000000, 61416 }, /* BFINS */ + { NULL, 0x00000000, 61424 }, /* BFINS */ + { NULL, 0x00000000, 61432 }, /* BFINS */ + { NULL, 0x00000000, 61433 }, /* BFINS */ + { NULL, 0x00000001, 61440 }, /* MMUOP030 */ + { NULL, 0x00000001, 61448 }, /* MMUOP030 */ + { NULL, 0x00000001, 61456 }, /* MMUOP030 */ + { NULL, 0x00000001, 61464 }, /* MMUOP030 */ + { NULL, 0x00000001, 61472 }, /* MMUOP030 */ + { NULL, 0x00000001, 61480 }, /* MMUOP030 */ + { NULL, 0x00000001, 61488 }, /* MMUOP030 */ + { NULL, 0x00000001, 61496 }, /* MMUOP030 */ + { NULL, 0x00000001, 61497 }, /* MMUOP030 */ + { NULL, 0x00000022, 61952 }, /* FPP */ + { NULL, 0x00000022, 61960 }, /* FPP */ + { NULL, 0x00000022, 61968 }, /* FPP */ + { NULL, 0x00000022, 61976 }, /* FPP */ + { NULL, 0x00000022, 61984 }, /* FPP */ + { NULL, 0x00000022, 61992 }, /* FPP */ + { NULL, 0x00000022, 62000 }, /* FPP */ + { NULL, 0x00000022, 62008 }, /* FPP */ + { NULL, 0x00000022, 62009 }, /* FPP */ + { NULL, 0x00000022, 62010 }, /* FPP */ + { NULL, 0x00000022, 62011 }, /* FPP */ + { NULL, 0x00000022, 62012 }, /* FPP */ + { NULL, 0x00000006, 62016 }, /* FScc */ + { NULL, 0x00000021, 62024 }, /* FDBcc */ + { NULL, 0x00000006, 62032 }, /* FScc */ + { NULL, 0x00000006, 62040 }, /* FScc */ + { NULL, 0x00000006, 62048 }, /* FScc */ + { NULL, 0x00000006, 62056 }, /* FScc */ + { NULL, 0x00000006, 62064 }, /* FScc */ + { NULL, 0x00000006, 62072 }, /* FScc */ + { NULL, 0x00000006, 62073 }, /* FScc */ + { NULL, 0x00000021, 62074 }, /* FTRAPcc */ + { NULL, 0x00000021, 62075 }, /* FTRAPcc */ + { NULL, 0x00000021, 62076 }, /* FTRAPcc */ + { NULL, 0x00000005, 62080 }, /* FBcc */ + { NULL, 0x00000005, 62144 }, /* FBcc */ + { NULL, 0x00000020, 62224 }, /* FSAVE */ + { NULL, 0x00000020, 62240 }, /* FSAVE */ + { NULL, 0x00000020, 62248 }, /* FSAVE */ + { NULL, 0x00000020, 62256 }, /* FSAVE */ + { NULL, 0x00000020, 62264 }, /* FSAVE */ + { NULL, 0x00000020, 62265 }, /* FSAVE */ + { NULL, 0x00000020, 62288 }, /* FRESTORE */ + { NULL, 0x00000020, 62296 }, /* FRESTORE */ + { NULL, 0x00000020, 62312 }, /* FRESTORE */ + { NULL, 0x00000020, 62320 }, /* FRESTORE */ + { NULL, 0x00000020, 62328 }, /* FRESTORE */ + { NULL, 0x00000020, 62329 }, /* FRESTORE */ + { NULL, 0x00000020, 62330 }, /* FRESTORE */ + { NULL, 0x00000020, 62331 }, /* FRESTORE */ + { NULL, 0x00000001, 62472 }, /* CINVL */ + { NULL, 0x00000001, 62480 }, /* CINVP */ + { NULL, 0x00000001, 62488 }, /* CINVA */ + { NULL, 0x00000001, 62489 }, /* CINVA */ + { NULL, 0x00000001, 62490 }, /* CINVA */ + { NULL, 0x00000001, 62491 }, /* CINVA */ + { NULL, 0x00000001, 62492 }, /* CINVA */ + { NULL, 0x00000001, 62493 }, /* CINVA */ + { NULL, 0x00000001, 62494 }, /* CINVA */ + { NULL, 0x00000001, 62495 }, /* CINVA */ + { NULL, 0x00000001, 62504 }, /* CPUSHL */ + { NULL, 0x00000001, 62512 }, /* CPUSHP */ + { NULL, 0x00000001, 62520 }, /* CPUSHA */ + { NULL, 0x00000001, 62521 }, /* CPUSHA */ + { NULL, 0x00000001, 62522 }, /* CPUSHA */ + { NULL, 0x00000001, 62523 }, /* CPUSHA */ + { NULL, 0x00000001, 62524 }, /* CPUSHA */ + { NULL, 0x00000001, 62525 }, /* CPUSHA */ + { NULL, 0x00000001, 62526 }, /* CPUSHA */ + { NULL, 0x00000001, 62527 }, /* CPUSHA */ + { NULL, 0x00000001, 62720 }, /* PFLUSHN */ + { NULL, 0x00000001, 62728 }, /* PFLUSH */ + { NULL, 0x00000001, 62736 }, /* PFLUSHAN */ + { NULL, 0x00000001, 62744 }, /* PFLUSHA */ + { NULL, 0x00000001, 62792 }, /* PTESTR */ + { NULL, 0x00000001, 62824 }, /* PTESTW */ + { NULL, 0x00000001, 62856 }, /* PLPAR */ + { NULL, 0x00000001, 62920 }, /* PLPAW */ + { op_f600_0_comp_ff, 0x00000002, 62976 }, /* MOVE16 */ + { op_f608_0_comp_ff, 0x00000002, 62984 }, /* MOVE16 */ + { op_f610_0_comp_ff, 0x00000002, 62992 }, /* MOVE16 */ + { op_f618_0_comp_ff, 0x00000002, 63000 }, /* MOVE16 */ + { op_f620_0_comp_ff, 0x00000002, 63008 }, /* MOVE16 */ + { NULL, 0x00000001, 63488 }, /* LPSTOP */ + { 0, 0,65536 } +}; +extern const struct comptbl op_smalltbl_0_comp_nf[] = +{ + { op_0_0_comp_nf, 0x00000002, 0 }, /* OR */ + { op_10_0_comp_nf, 0x00000002, 16 }, /* OR */ + { op_18_0_comp_nf, 0x00000002, 24 }, /* OR */ + { op_20_0_comp_nf, 0x00000002, 32 }, /* OR */ + { op_28_0_comp_nf, 0x00000002, 40 }, /* OR */ + { op_30_0_comp_nf, 0x00000002, 48 }, /* OR */ + { op_38_0_comp_nf, 0x00000002, 56 }, /* OR */ + { op_39_0_comp_nf, 0x00000002, 57 }, /* OR */ + { op_3c_0_comp_nf, 0x00000002, 60 }, /* ORSR */ + { op_40_0_comp_nf, 0x00000002, 64 }, /* OR */ + { op_50_0_comp_nf, 0x00000002, 80 }, /* OR */ + { op_58_0_comp_nf, 0x00000002, 88 }, /* OR */ + { op_60_0_comp_nf, 0x00000002, 96 }, /* OR */ + { op_68_0_comp_nf, 0x00000002, 104 }, /* OR */ + { op_70_0_comp_nf, 0x00000002, 112 }, /* OR */ + { op_78_0_comp_nf, 0x00000002, 120 }, /* OR */ + { op_79_0_comp_nf, 0x00000002, 121 }, /* OR */ + { NULL, 0x00000002, 124 }, /* ORSR */ + { op_80_0_comp_nf, 0x00000002, 128 }, /* OR */ + { op_90_0_comp_nf, 0x00000002, 144 }, /* OR */ + { op_98_0_comp_nf, 0x00000002, 152 }, /* OR */ + { op_a0_0_comp_nf, 0x00000002, 160 }, /* OR */ + { op_a8_0_comp_nf, 0x00000002, 168 }, /* OR */ + { op_b0_0_comp_nf, 0x00000002, 176 }, /* OR */ + { op_b8_0_comp_nf, 0x00000002, 184 }, /* OR */ + { op_b9_0_comp_nf, 0x00000002, 185 }, /* OR */ + { NULL, 0x00000001, 208 }, /* CHK2 */ + { NULL, 0x00000001, 232 }, /* CHK2 */ + { NULL, 0x00000001, 240 }, /* CHK2 */ + { NULL, 0x00000001, 248 }, /* CHK2 */ + { NULL, 0x00000001, 249 }, /* CHK2 */ + { NULL, 0x00000001, 250 }, /* CHK2 */ + { NULL, 0x00000001, 251 }, /* CHK2 */ + { op_100_0_comp_nf, 0x00000000, 256 }, /* BTST */ + { NULL, 0x00000001, 264 }, /* MVPMR */ + { op_110_0_comp_nf, 0x00000000, 272 }, /* BTST */ + { op_118_0_comp_nf, 0x00000000, 280 }, /* BTST */ + { op_120_0_comp_nf, 0x00000000, 288 }, /* BTST */ + { op_128_0_comp_nf, 0x00000002, 296 }, /* BTST */ + { op_130_0_comp_nf, 0x00000002, 304 }, /* BTST */ + { op_138_0_comp_nf, 0x00000002, 312 }, /* BTST */ + { op_139_0_comp_nf, 0x00000002, 313 }, /* BTST */ + { op_13a_0_comp_nf, 0x00000002, 314 }, /* BTST */ + { op_13b_0_comp_nf, 0x00000002, 315 }, /* BTST */ + { op_13c_0_comp_nf, 0x00000002, 316 }, /* BTST */ + { op_140_0_comp_nf, 0x00000000, 320 }, /* BCHG */ + { NULL, 0x00000001, 328 }, /* MVPMR */ + { op_150_0_comp_nf, 0x00000000, 336 }, /* BCHG */ + { op_158_0_comp_nf, 0x00000000, 344 }, /* BCHG */ + { op_160_0_comp_nf, 0x00000000, 352 }, /* BCHG */ + { op_168_0_comp_nf, 0x00000002, 360 }, /* BCHG */ + { op_170_0_comp_nf, 0x00000002, 368 }, /* BCHG */ + { op_178_0_comp_nf, 0x00000002, 376 }, /* BCHG */ + { op_179_0_comp_nf, 0x00000002, 377 }, /* BCHG */ + { op_180_0_comp_nf, 0x00000000, 384 }, /* BCLR */ + { NULL, 0x00000001, 392 }, /* MVPRM */ + { op_190_0_comp_nf, 0x00000000, 400 }, /* BCLR */ + { op_198_0_comp_nf, 0x00000000, 408 }, /* BCLR */ + { op_1a0_0_comp_nf, 0x00000000, 416 }, /* BCLR */ + { op_1a8_0_comp_nf, 0x00000002, 424 }, /* BCLR */ + { op_1b0_0_comp_nf, 0x00000002, 432 }, /* BCLR */ + { op_1b8_0_comp_nf, 0x00000002, 440 }, /* BCLR */ + { op_1b9_0_comp_nf, 0x00000002, 441 }, /* BCLR */ + { op_1c0_0_comp_nf, 0x00000000, 448 }, /* BSET */ + { NULL, 0x00000001, 456 }, /* MVPRM */ + { op_1d0_0_comp_nf, 0x00000000, 464 }, /* BSET */ + { op_1d8_0_comp_nf, 0x00000000, 472 }, /* BSET */ + { op_1e0_0_comp_nf, 0x00000000, 480 }, /* BSET */ + { op_1e8_0_comp_nf, 0x00000002, 488 }, /* BSET */ + { op_1f0_0_comp_nf, 0x00000002, 496 }, /* BSET */ + { op_1f8_0_comp_nf, 0x00000002, 504 }, /* BSET */ + { op_1f9_0_comp_nf, 0x00000002, 505 }, /* BSET */ + { op_200_0_comp_nf, 0x00000002, 512 }, /* AND */ + { op_210_0_comp_nf, 0x00000002, 528 }, /* AND */ + { op_218_0_comp_nf, 0x00000002, 536 }, /* AND */ + { op_220_0_comp_nf, 0x00000002, 544 }, /* AND */ + { op_228_0_comp_nf, 0x00000002, 552 }, /* AND */ + { op_230_0_comp_nf, 0x00000002, 560 }, /* AND */ + { op_238_0_comp_nf, 0x00000002, 568 }, /* AND */ + { op_239_0_comp_nf, 0x00000002, 569 }, /* AND */ + { op_23c_0_comp_nf, 0x00000002, 572 }, /* ANDSR */ + { op_240_0_comp_nf, 0x00000002, 576 }, /* AND */ + { op_250_0_comp_nf, 0x00000002, 592 }, /* AND */ + { op_258_0_comp_nf, 0x00000002, 600 }, /* AND */ + { op_260_0_comp_nf, 0x00000002, 608 }, /* AND */ + { op_268_0_comp_nf, 0x00000002, 616 }, /* AND */ + { op_270_0_comp_nf, 0x00000002, 624 }, /* AND */ + { op_278_0_comp_nf, 0x00000002, 632 }, /* AND */ + { op_279_0_comp_nf, 0x00000002, 633 }, /* AND */ + { NULL, 0x00000002, 636 }, /* ANDSR */ + { op_280_0_comp_nf, 0x00000002, 640 }, /* AND */ + { op_290_0_comp_nf, 0x00000002, 656 }, /* AND */ + { op_298_0_comp_nf, 0x00000002, 664 }, /* AND */ + { op_2a0_0_comp_nf, 0x00000002, 672 }, /* AND */ + { op_2a8_0_comp_nf, 0x00000002, 680 }, /* AND */ + { op_2b0_0_comp_nf, 0x00000002, 688 }, /* AND */ + { op_2b8_0_comp_nf, 0x00000002, 696 }, /* AND */ + { op_2b9_0_comp_nf, 0x00000002, 697 }, /* AND */ + { NULL, 0x00000001, 720 }, /* CHK2 */ + { NULL, 0x00000001, 744 }, /* CHK2 */ + { NULL, 0x00000001, 752 }, /* CHK2 */ + { NULL, 0x00000001, 760 }, /* CHK2 */ + { NULL, 0x00000001, 761 }, /* CHK2 */ + { NULL, 0x00000001, 762 }, /* CHK2 */ + { NULL, 0x00000001, 763 }, /* CHK2 */ + { op_400_0_comp_nf, 0x00000002, 1024 }, /* SUB */ + { op_410_0_comp_nf, 0x00000002, 1040 }, /* SUB */ + { op_418_0_comp_nf, 0x00000002, 1048 }, /* SUB */ + { op_420_0_comp_nf, 0x00000002, 1056 }, /* SUB */ + { op_428_0_comp_nf, 0x00000002, 1064 }, /* SUB */ + { op_430_0_comp_nf, 0x00000002, 1072 }, /* SUB */ + { op_438_0_comp_nf, 0x00000002, 1080 }, /* SUB */ + { op_439_0_comp_nf, 0x00000002, 1081 }, /* SUB */ + { op_440_0_comp_nf, 0x00000002, 1088 }, /* SUB */ + { op_450_0_comp_nf, 0x00000002, 1104 }, /* SUB */ + { op_458_0_comp_nf, 0x00000002, 1112 }, /* SUB */ + { op_460_0_comp_nf, 0x00000002, 1120 }, /* SUB */ + { op_468_0_comp_nf, 0x00000002, 1128 }, /* SUB */ + { op_470_0_comp_nf, 0x00000002, 1136 }, /* SUB */ + { op_478_0_comp_nf, 0x00000002, 1144 }, /* SUB */ + { op_479_0_comp_nf, 0x00000002, 1145 }, /* SUB */ + { op_480_0_comp_nf, 0x00000002, 1152 }, /* SUB */ + { op_490_0_comp_nf, 0x00000002, 1168 }, /* SUB */ + { op_498_0_comp_nf, 0x00000002, 1176 }, /* SUB */ + { op_4a0_0_comp_nf, 0x00000002, 1184 }, /* SUB */ + { op_4a8_0_comp_nf, 0x00000002, 1192 }, /* SUB */ + { op_4b0_0_comp_nf, 0x00000002, 1200 }, /* SUB */ + { op_4b8_0_comp_nf, 0x00000002, 1208 }, /* SUB */ + { op_4b9_0_comp_nf, 0x00000002, 1209 }, /* SUB */ + { NULL, 0x00000001, 1232 }, /* CHK2 */ + { NULL, 0x00000001, 1256 }, /* CHK2 */ + { NULL, 0x00000001, 1264 }, /* CHK2 */ + { NULL, 0x00000001, 1272 }, /* CHK2 */ + { NULL, 0x00000001, 1273 }, /* CHK2 */ + { NULL, 0x00000001, 1274 }, /* CHK2 */ + { NULL, 0x00000001, 1275 }, /* CHK2 */ + { op_600_0_comp_nf, 0x00000002, 1536 }, /* ADD */ + { op_610_0_comp_nf, 0x00000002, 1552 }, /* ADD */ + { op_618_0_comp_nf, 0x00000002, 1560 }, /* ADD */ + { op_620_0_comp_nf, 0x00000002, 1568 }, /* ADD */ + { op_628_0_comp_nf, 0x00000002, 1576 }, /* ADD */ + { op_630_0_comp_nf, 0x00000002, 1584 }, /* ADD */ + { op_638_0_comp_nf, 0x00000002, 1592 }, /* ADD */ + { op_639_0_comp_nf, 0x00000002, 1593 }, /* ADD */ + { op_640_0_comp_nf, 0x00000002, 1600 }, /* ADD */ + { op_650_0_comp_nf, 0x00000002, 1616 }, /* ADD */ + { op_658_0_comp_nf, 0x00000002, 1624 }, /* ADD */ + { op_660_0_comp_nf, 0x00000002, 1632 }, /* ADD */ + { op_668_0_comp_nf, 0x00000002, 1640 }, /* ADD */ + { op_670_0_comp_nf, 0x00000002, 1648 }, /* ADD */ + { op_678_0_comp_nf, 0x00000002, 1656 }, /* ADD */ + { op_679_0_comp_nf, 0x00000002, 1657 }, /* ADD */ + { op_680_0_comp_nf, 0x00000002, 1664 }, /* ADD */ + { op_690_0_comp_nf, 0x00000002, 1680 }, /* ADD */ + { op_698_0_comp_nf, 0x00000002, 1688 }, /* ADD */ + { op_6a0_0_comp_nf, 0x00000002, 1696 }, /* ADD */ + { op_6a8_0_comp_nf, 0x00000002, 1704 }, /* ADD */ + { op_6b0_0_comp_nf, 0x00000002, 1712 }, /* ADD */ + { op_6b8_0_comp_nf, 0x00000002, 1720 }, /* ADD */ + { op_6b9_0_comp_nf, 0x00000002, 1721 }, /* ADD */ + { NULL, 0x00000001, 1728 }, /* RTM */ + { NULL, 0x00000001, 1736 }, /* RTM */ + { NULL, 0x00000001, 1744 }, /* CALLM */ + { NULL, 0x00000001, 1768 }, /* CALLM */ + { NULL, 0x00000001, 1776 }, /* CALLM */ + { NULL, 0x00000001, 1784 }, /* CALLM */ + { NULL, 0x00000001, 1785 }, /* CALLM */ + { NULL, 0x00000001, 1786 }, /* CALLM */ + { NULL, 0x00000001, 1787 }, /* CALLM */ + { op_800_0_comp_nf, 0x00000002, 2048 }, /* BTST */ + { op_810_0_comp_nf, 0x00000002, 2064 }, /* BTST */ + { op_818_0_comp_nf, 0x00000002, 2072 }, /* BTST */ + { op_820_0_comp_nf, 0x00000002, 2080 }, /* BTST */ + { op_828_0_comp_nf, 0x00000002, 2088 }, /* BTST */ + { op_830_0_comp_nf, 0x00000002, 2096 }, /* BTST */ + { op_838_0_comp_nf, 0x00000002, 2104 }, /* BTST */ + { op_839_0_comp_nf, 0x00000002, 2105 }, /* BTST */ + { op_83a_0_comp_nf, 0x00000002, 2106 }, /* BTST */ + { op_83b_0_comp_nf, 0x00000002, 2107 }, /* BTST */ + { op_83c_0_comp_nf, 0x00000002, 2108 }, /* BTST */ + { op_840_0_comp_nf, 0x00000002, 2112 }, /* BCHG */ + { op_850_0_comp_nf, 0x00000002, 2128 }, /* BCHG */ + { op_858_0_comp_nf, 0x00000002, 2136 }, /* BCHG */ + { op_860_0_comp_nf, 0x00000002, 2144 }, /* BCHG */ + { op_868_0_comp_nf, 0x00000002, 2152 }, /* BCHG */ + { op_870_0_comp_nf, 0x00000002, 2160 }, /* BCHG */ + { op_878_0_comp_nf, 0x00000002, 2168 }, /* BCHG */ + { op_879_0_comp_nf, 0x00000002, 2169 }, /* BCHG */ + { op_880_0_comp_nf, 0x00000002, 2176 }, /* BCLR */ + { op_890_0_comp_nf, 0x00000002, 2192 }, /* BCLR */ + { op_898_0_comp_nf, 0x00000002, 2200 }, /* BCLR */ + { op_8a0_0_comp_nf, 0x00000002, 2208 }, /* BCLR */ + { op_8a8_0_comp_nf, 0x00000002, 2216 }, /* BCLR */ + { op_8b0_0_comp_nf, 0x00000002, 2224 }, /* BCLR */ + { op_8b8_0_comp_nf, 0x00000002, 2232 }, /* BCLR */ + { op_8b9_0_comp_nf, 0x00000002, 2233 }, /* BCLR */ + { op_8c0_0_comp_nf, 0x00000002, 2240 }, /* BSET */ + { op_8d0_0_comp_nf, 0x00000002, 2256 }, /* BSET */ + { op_8d8_0_comp_nf, 0x00000002, 2264 }, /* BSET */ + { op_8e0_0_comp_nf, 0x00000002, 2272 }, /* BSET */ + { op_8e8_0_comp_nf, 0x00000002, 2280 }, /* BSET */ + { op_8f0_0_comp_nf, 0x00000002, 2288 }, /* BSET */ + { op_8f8_0_comp_nf, 0x00000002, 2296 }, /* BSET */ + { op_8f9_0_comp_nf, 0x00000002, 2297 }, /* BSET */ + { op_a00_0_comp_nf, 0x00000002, 2560 }, /* EOR */ + { op_a10_0_comp_nf, 0x00000002, 2576 }, /* EOR */ + { op_a18_0_comp_nf, 0x00000002, 2584 }, /* EOR */ + { op_a20_0_comp_nf, 0x00000002, 2592 }, /* EOR */ + { op_a28_0_comp_nf, 0x00000002, 2600 }, /* EOR */ + { op_a30_0_comp_nf, 0x00000002, 2608 }, /* EOR */ + { op_a38_0_comp_nf, 0x00000002, 2616 }, /* EOR */ + { op_a39_0_comp_nf, 0x00000002, 2617 }, /* EOR */ + { op_a3c_0_comp_nf, 0x00000002, 2620 }, /* EORSR */ + { op_a40_0_comp_nf, 0x00000002, 2624 }, /* EOR */ + { op_a50_0_comp_nf, 0x00000002, 2640 }, /* EOR */ + { op_a58_0_comp_nf, 0x00000002, 2648 }, /* EOR */ + { op_a60_0_comp_nf, 0x00000002, 2656 }, /* EOR */ + { op_a68_0_comp_nf, 0x00000002, 2664 }, /* EOR */ + { op_a70_0_comp_nf, 0x00000002, 2672 }, /* EOR */ + { op_a78_0_comp_nf, 0x00000002, 2680 }, /* EOR */ + { op_a79_0_comp_nf, 0x00000002, 2681 }, /* EOR */ + { NULL, 0x00000002, 2684 }, /* EORSR */ + { op_a80_0_comp_nf, 0x00000002, 2688 }, /* EOR */ + { op_a90_0_comp_nf, 0x00000002, 2704 }, /* EOR */ + { op_a98_0_comp_nf, 0x00000002, 2712 }, /* EOR */ + { op_aa0_0_comp_nf, 0x00000002, 2720 }, /* EOR */ + { op_aa8_0_comp_nf, 0x00000002, 2728 }, /* EOR */ + { op_ab0_0_comp_nf, 0x00000002, 2736 }, /* EOR */ + { op_ab8_0_comp_nf, 0x00000002, 2744 }, /* EOR */ + { op_ab9_0_comp_nf, 0x00000002, 2745 }, /* EOR */ + { NULL, 0x00000000, 2768 }, /* CAS */ + { NULL, 0x00000000, 2776 }, /* CAS */ + { NULL, 0x00000000, 2784 }, /* CAS */ + { NULL, 0x00000000, 2792 }, /* CAS */ + { NULL, 0x00000000, 2800 }, /* CAS */ + { NULL, 0x00000000, 2808 }, /* CAS */ + { NULL, 0x00000000, 2809 }, /* CAS */ + { op_c00_0_comp_nf, 0x00000002, 3072 }, /* CMP */ + { op_c10_0_comp_nf, 0x00000002, 3088 }, /* CMP */ + { op_c18_0_comp_nf, 0x00000002, 3096 }, /* CMP */ + { op_c20_0_comp_nf, 0x00000002, 3104 }, /* CMP */ + { op_c28_0_comp_nf, 0x00000002, 3112 }, /* CMP */ + { op_c30_0_comp_nf, 0x00000002, 3120 }, /* CMP */ + { op_c38_0_comp_nf, 0x00000002, 3128 }, /* CMP */ + { op_c39_0_comp_nf, 0x00000002, 3129 }, /* CMP */ + { op_c3a_0_comp_nf, 0x00000002, 3130 }, /* CMP */ + { op_c3b_0_comp_nf, 0x00000002, 3131 }, /* CMP */ + { op_c40_0_comp_nf, 0x00000002, 3136 }, /* CMP */ + { op_c50_0_comp_nf, 0x00000002, 3152 }, /* CMP */ + { op_c58_0_comp_nf, 0x00000002, 3160 }, /* CMP */ + { op_c60_0_comp_nf, 0x00000002, 3168 }, /* CMP */ + { op_c68_0_comp_nf, 0x00000002, 3176 }, /* CMP */ + { op_c70_0_comp_nf, 0x00000002, 3184 }, /* CMP */ + { op_c78_0_comp_nf, 0x00000002, 3192 }, /* CMP */ + { op_c79_0_comp_nf, 0x00000002, 3193 }, /* CMP */ + { op_c7a_0_comp_nf, 0x00000002, 3194 }, /* CMP */ + { op_c7b_0_comp_nf, 0x00000002, 3195 }, /* CMP */ + { op_c80_0_comp_nf, 0x00000002, 3200 }, /* CMP */ + { op_c90_0_comp_nf, 0x00000002, 3216 }, /* CMP */ + { op_c98_0_comp_nf, 0x00000002, 3224 }, /* CMP */ + { op_ca0_0_comp_nf, 0x00000002, 3232 }, /* CMP */ + { op_ca8_0_comp_nf, 0x00000002, 3240 }, /* CMP */ + { op_cb0_0_comp_nf, 0x00000002, 3248 }, /* CMP */ + { op_cb8_0_comp_nf, 0x00000002, 3256 }, /* CMP */ + { op_cb9_0_comp_nf, 0x00000002, 3257 }, /* CMP */ + { op_cba_0_comp_nf, 0x00000002, 3258 }, /* CMP */ + { op_cbb_0_comp_nf, 0x00000002, 3259 }, /* CMP */ + { NULL, 0x00000000, 3280 }, /* CAS */ + { NULL, 0x00000000, 3288 }, /* CAS */ + { NULL, 0x00000000, 3296 }, /* CAS */ + { NULL, 0x00000000, 3304 }, /* CAS */ + { NULL, 0x00000000, 3312 }, /* CAS */ + { NULL, 0x00000000, 3320 }, /* CAS */ + { NULL, 0x00000000, 3321 }, /* CAS */ + { NULL, 0x00000000, 3324 }, /* CAS2 */ + { NULL, 0x00000001, 3600 }, /* MOVES */ + { NULL, 0x00000001, 3608 }, /* MOVES */ + { NULL, 0x00000001, 3616 }, /* MOVES */ + { NULL, 0x00000001, 3624 }, /* MOVES */ + { NULL, 0x00000001, 3632 }, /* MOVES */ + { NULL, 0x00000001, 3640 }, /* MOVES */ + { NULL, 0x00000001, 3641 }, /* MOVES */ + { NULL, 0x00000001, 3664 }, /* MOVES */ + { NULL, 0x00000001, 3672 }, /* MOVES */ + { NULL, 0x00000001, 3680 }, /* MOVES */ + { NULL, 0x00000001, 3688 }, /* MOVES */ + { NULL, 0x00000001, 3696 }, /* MOVES */ + { NULL, 0x00000001, 3704 }, /* MOVES */ + { NULL, 0x00000001, 3705 }, /* MOVES */ + { NULL, 0x00000001, 3728 }, /* MOVES */ + { NULL, 0x00000001, 3736 }, /* MOVES */ + { NULL, 0x00000001, 3744 }, /* MOVES */ + { NULL, 0x00000001, 3752 }, /* MOVES */ + { NULL, 0x00000001, 3760 }, /* MOVES */ + { NULL, 0x00000001, 3768 }, /* MOVES */ + { NULL, 0x00000001, 3769 }, /* MOVES */ + { NULL, 0x00000000, 3792 }, /* CAS */ + { NULL, 0x00000000, 3800 }, /* CAS */ + { NULL, 0x00000000, 3808 }, /* CAS */ + { NULL, 0x00000000, 3816 }, /* CAS */ + { NULL, 0x00000000, 3824 }, /* CAS */ + { NULL, 0x00000000, 3832 }, /* CAS */ + { NULL, 0x00000000, 3833 }, /* CAS */ + { NULL, 0x00000000, 3836 }, /* CAS2 */ + { op_1000_0_comp_nf, 0x00000000, 4096 }, /* MOVE */ + { op_1010_0_comp_nf, 0x00000000, 4112 }, /* MOVE */ + { op_1018_0_comp_nf, 0x00000000, 4120 }, /* MOVE */ + { op_1020_0_comp_nf, 0x00000000, 4128 }, /* MOVE */ + { op_1028_0_comp_nf, 0x00000002, 4136 }, /* MOVE */ + { op_1030_0_comp_nf, 0x00000002, 4144 }, /* MOVE */ + { op_1038_0_comp_nf, 0x00000002, 4152 }, /* MOVE */ + { op_1039_0_comp_nf, 0x00000002, 4153 }, /* MOVE */ + { op_103a_0_comp_nf, 0x00000002, 4154 }, /* MOVE */ + { op_103b_0_comp_nf, 0x00000002, 4155 }, /* MOVE */ + { op_103c_0_comp_nf, 0x00000002, 4156 }, /* MOVE */ + { op_1080_0_comp_nf, 0x00000000, 4224 }, /* MOVE */ + { op_1090_0_comp_nf, 0x00000000, 4240 }, /* MOVE */ + { op_1098_0_comp_nf, 0x00000000, 4248 }, /* MOVE */ + { op_10a0_0_comp_nf, 0x00000000, 4256 }, /* MOVE */ + { op_10a8_0_comp_nf, 0x00000002, 4264 }, /* MOVE */ + { op_10b0_0_comp_nf, 0x00000002, 4272 }, /* MOVE */ + { op_10b8_0_comp_nf, 0x00000002, 4280 }, /* MOVE */ + { op_10b9_0_comp_nf, 0x00000002, 4281 }, /* MOVE */ + { op_10ba_0_comp_nf, 0x00000002, 4282 }, /* MOVE */ + { op_10bb_0_comp_nf, 0x00000002, 4283 }, /* MOVE */ + { op_10bc_0_comp_nf, 0x00000002, 4284 }, /* MOVE */ + { op_10c0_0_comp_nf, 0x00000000, 4288 }, /* MOVE */ + { op_10d0_0_comp_nf, 0x00000000, 4304 }, /* MOVE */ + { op_10d8_0_comp_nf, 0x00000000, 4312 }, /* MOVE */ + { op_10e0_0_comp_nf, 0x00000000, 4320 }, /* MOVE */ + { op_10e8_0_comp_nf, 0x00000002, 4328 }, /* MOVE */ + { op_10f0_0_comp_nf, 0x00000002, 4336 }, /* MOVE */ + { op_10f8_0_comp_nf, 0x00000002, 4344 }, /* MOVE */ + { op_10f9_0_comp_nf, 0x00000002, 4345 }, /* MOVE */ + { op_10fa_0_comp_nf, 0x00000002, 4346 }, /* MOVE */ + { op_10fb_0_comp_nf, 0x00000002, 4347 }, /* MOVE */ + { op_10fc_0_comp_nf, 0x00000002, 4348 }, /* MOVE */ + { op_1100_0_comp_nf, 0x00000000, 4352 }, /* MOVE */ + { op_1110_0_comp_nf, 0x00000000, 4368 }, /* MOVE */ + { op_1118_0_comp_nf, 0x00000000, 4376 }, /* MOVE */ + { op_1120_0_comp_nf, 0x00000000, 4384 }, /* MOVE */ + { op_1128_0_comp_nf, 0x00000002, 4392 }, /* MOVE */ + { op_1130_0_comp_nf, 0x00000002, 4400 }, /* MOVE */ + { op_1138_0_comp_nf, 0x00000002, 4408 }, /* MOVE */ + { op_1139_0_comp_nf, 0x00000002, 4409 }, /* MOVE */ + { op_113a_0_comp_nf, 0x00000002, 4410 }, /* MOVE */ + { op_113b_0_comp_nf, 0x00000002, 4411 }, /* MOVE */ + { op_113c_0_comp_nf, 0x00000002, 4412 }, /* MOVE */ + { op_1140_0_comp_nf, 0x00000002, 4416 }, /* MOVE */ + { op_1150_0_comp_nf, 0x00000002, 4432 }, /* MOVE */ + { op_1158_0_comp_nf, 0x00000002, 4440 }, /* MOVE */ + { op_1160_0_comp_nf, 0x00000002, 4448 }, /* MOVE */ + { op_1168_0_comp_nf, 0x00000002, 4456 }, /* MOVE */ + { op_1170_0_comp_nf, 0x00000002, 4464 }, /* MOVE */ + { op_1178_0_comp_nf, 0x00000002, 4472 }, /* MOVE */ + { op_1179_0_comp_nf, 0x00000002, 4473 }, /* MOVE */ + { op_117a_0_comp_nf, 0x00000002, 4474 }, /* MOVE */ + { op_117b_0_comp_nf, 0x00000002, 4475 }, /* MOVE */ + { op_117c_0_comp_nf, 0x00000002, 4476 }, /* MOVE */ + { op_1180_0_comp_nf, 0x00000002, 4480 }, /* MOVE */ + { op_1190_0_comp_nf, 0x00000002, 4496 }, /* MOVE */ + { op_1198_0_comp_nf, 0x00000002, 4504 }, /* MOVE */ + { op_11a0_0_comp_nf, 0x00000002, 4512 }, /* MOVE */ + { op_11a8_0_comp_nf, 0x00000002, 4520 }, /* MOVE */ + { op_11b0_0_comp_nf, 0x00000002, 4528 }, /* MOVE */ + { op_11b8_0_comp_nf, 0x00000002, 4536 }, /* MOVE */ + { op_11b9_0_comp_nf, 0x00000002, 4537 }, /* MOVE */ + { op_11ba_0_comp_nf, 0x00000002, 4538 }, /* MOVE */ + { op_11bb_0_comp_nf, 0x00000002, 4539 }, /* MOVE */ + { op_11bc_0_comp_nf, 0x00000002, 4540 }, /* MOVE */ + { op_11c0_0_comp_nf, 0x00000002, 4544 }, /* MOVE */ + { op_11d0_0_comp_nf, 0x00000002, 4560 }, /* MOVE */ + { op_11d8_0_comp_nf, 0x00000002, 4568 }, /* MOVE */ + { op_11e0_0_comp_nf, 0x00000002, 4576 }, /* MOVE */ + { op_11e8_0_comp_nf, 0x00000002, 4584 }, /* MOVE */ + { op_11f0_0_comp_nf, 0x00000002, 4592 }, /* MOVE */ + { op_11f8_0_comp_nf, 0x00000002, 4600 }, /* MOVE */ + { op_11f9_0_comp_nf, 0x00000002, 4601 }, /* MOVE */ + { op_11fa_0_comp_nf, 0x00000002, 4602 }, /* MOVE */ + { op_11fb_0_comp_nf, 0x00000002, 4603 }, /* MOVE */ + { op_11fc_0_comp_nf, 0x00000002, 4604 }, /* MOVE */ + { op_13c0_0_comp_nf, 0x00000002, 5056 }, /* MOVE */ + { op_13d0_0_comp_nf, 0x00000002, 5072 }, /* MOVE */ + { op_13d8_0_comp_nf, 0x00000002, 5080 }, /* MOVE */ + { op_13e0_0_comp_nf, 0x00000002, 5088 }, /* MOVE */ + { op_13e8_0_comp_nf, 0x00000002, 5096 }, /* MOVE */ + { op_13f0_0_comp_nf, 0x00000002, 5104 }, /* MOVE */ + { op_13f8_0_comp_nf, 0x00000002, 5112 }, /* MOVE */ + { op_13f9_0_comp_nf, 0x00000002, 5113 }, /* MOVE */ + { op_13fa_0_comp_nf, 0x00000002, 5114 }, /* MOVE */ + { op_13fb_0_comp_nf, 0x00000002, 5115 }, /* MOVE */ + { op_13fc_0_comp_nf, 0x00000002, 5116 }, /* MOVE */ + { op_2000_0_comp_nf, 0x00000000, 8192 }, /* MOVE */ + { op_2008_0_comp_nf, 0x00000000, 8200 }, /* MOVE */ + { op_2010_0_comp_nf, 0x00000000, 8208 }, /* MOVE */ + { op_2018_0_comp_nf, 0x00000000, 8216 }, /* MOVE */ + { op_2020_0_comp_nf, 0x00000000, 8224 }, /* MOVE */ + { op_2028_0_comp_nf, 0x00000002, 8232 }, /* MOVE */ + { op_2030_0_comp_nf, 0x00000002, 8240 }, /* MOVE */ + { op_2038_0_comp_nf, 0x00000002, 8248 }, /* MOVE */ + { op_2039_0_comp_nf, 0x00000002, 8249 }, /* MOVE */ + { op_203a_0_comp_nf, 0x00000002, 8250 }, /* MOVE */ + { op_203b_0_comp_nf, 0x00000002, 8251 }, /* MOVE */ + { op_203c_0_comp_nf, 0x00000002, 8252 }, /* MOVE */ + { op_2040_0_comp_nf, 0x00000000, 8256 }, /* MOVEA */ + { op_2048_0_comp_nf, 0x00000000, 8264 }, /* MOVEA */ + { op_2050_0_comp_nf, 0x00000000, 8272 }, /* MOVEA */ + { op_2058_0_comp_nf, 0x00000000, 8280 }, /* MOVEA */ + { op_2060_0_comp_nf, 0x00000000, 8288 }, /* MOVEA */ + { op_2068_0_comp_nf, 0x00000002, 8296 }, /* MOVEA */ + { op_2070_0_comp_nf, 0x00000002, 8304 }, /* MOVEA */ + { op_2078_0_comp_nf, 0x00000002, 8312 }, /* MOVEA */ + { op_2079_0_comp_nf, 0x00000002, 8313 }, /* MOVEA */ + { op_207a_0_comp_nf, 0x00000002, 8314 }, /* MOVEA */ + { op_207b_0_comp_nf, 0x00000002, 8315 }, /* MOVEA */ + { op_207c_0_comp_nf, 0x00000002, 8316 }, /* MOVEA */ + { op_2080_0_comp_nf, 0x00000000, 8320 }, /* MOVE */ + { op_2088_0_comp_nf, 0x00000000, 8328 }, /* MOVE */ + { op_2090_0_comp_nf, 0x00000000, 8336 }, /* MOVE */ + { op_2098_0_comp_nf, 0x00000000, 8344 }, /* MOVE */ + { op_20a0_0_comp_nf, 0x00000000, 8352 }, /* MOVE */ + { op_20a8_0_comp_nf, 0x00000002, 8360 }, /* MOVE */ + { op_20b0_0_comp_nf, 0x00000002, 8368 }, /* MOVE */ + { op_20b8_0_comp_nf, 0x00000002, 8376 }, /* MOVE */ + { op_20b9_0_comp_nf, 0x00000002, 8377 }, /* MOVE */ + { op_20ba_0_comp_nf, 0x00000002, 8378 }, /* MOVE */ + { op_20bb_0_comp_nf, 0x00000002, 8379 }, /* MOVE */ + { op_20bc_0_comp_nf, 0x00000002, 8380 }, /* MOVE */ + { op_20c0_0_comp_nf, 0x00000000, 8384 }, /* MOVE */ + { op_20c8_0_comp_nf, 0x00000000, 8392 }, /* MOVE */ + { op_20d0_0_comp_nf, 0x00000000, 8400 }, /* MOVE */ + { op_20d8_0_comp_nf, 0x00000000, 8408 }, /* MOVE */ + { op_20e0_0_comp_nf, 0x00000000, 8416 }, /* MOVE */ + { op_20e8_0_comp_nf, 0x00000002, 8424 }, /* MOVE */ + { op_20f0_0_comp_nf, 0x00000002, 8432 }, /* MOVE */ + { op_20f8_0_comp_nf, 0x00000002, 8440 }, /* MOVE */ + { op_20f9_0_comp_nf, 0x00000002, 8441 }, /* MOVE */ + { op_20fa_0_comp_nf, 0x00000002, 8442 }, /* MOVE */ + { op_20fb_0_comp_nf, 0x00000002, 8443 }, /* MOVE */ + { op_20fc_0_comp_nf, 0x00000002, 8444 }, /* MOVE */ + { op_2100_0_comp_nf, 0x00000000, 8448 }, /* MOVE */ + { op_2108_0_comp_nf, 0x00000000, 8456 }, /* MOVE */ + { op_2110_0_comp_nf, 0x00000000, 8464 }, /* MOVE */ + { op_2118_0_comp_nf, 0x00000000, 8472 }, /* MOVE */ + { op_2120_0_comp_nf, 0x00000000, 8480 }, /* MOVE */ + { op_2128_0_comp_nf, 0x00000002, 8488 }, /* MOVE */ + { op_2130_0_comp_nf, 0x00000002, 8496 }, /* MOVE */ + { op_2138_0_comp_nf, 0x00000002, 8504 }, /* MOVE */ + { op_2139_0_comp_nf, 0x00000002, 8505 }, /* MOVE */ + { op_213a_0_comp_nf, 0x00000002, 8506 }, /* MOVE */ + { op_213b_0_comp_nf, 0x00000002, 8507 }, /* MOVE */ + { op_213c_0_comp_nf, 0x00000002, 8508 }, /* MOVE */ + { op_2140_0_comp_nf, 0x00000002, 8512 }, /* MOVE */ + { op_2148_0_comp_nf, 0x00000002, 8520 }, /* MOVE */ + { op_2150_0_comp_nf, 0x00000002, 8528 }, /* MOVE */ + { op_2158_0_comp_nf, 0x00000002, 8536 }, /* MOVE */ + { op_2160_0_comp_nf, 0x00000002, 8544 }, /* MOVE */ + { op_2168_0_comp_nf, 0x00000002, 8552 }, /* MOVE */ + { op_2170_0_comp_nf, 0x00000002, 8560 }, /* MOVE */ + { op_2178_0_comp_nf, 0x00000002, 8568 }, /* MOVE */ + { op_2179_0_comp_nf, 0x00000002, 8569 }, /* MOVE */ + { op_217a_0_comp_nf, 0x00000002, 8570 }, /* MOVE */ + { op_217b_0_comp_nf, 0x00000002, 8571 }, /* MOVE */ + { op_217c_0_comp_nf, 0x00000002, 8572 }, /* MOVE */ + { op_2180_0_comp_nf, 0x00000002, 8576 }, /* MOVE */ + { op_2188_0_comp_nf, 0x00000002, 8584 }, /* MOVE */ + { op_2190_0_comp_nf, 0x00000002, 8592 }, /* MOVE */ + { op_2198_0_comp_nf, 0x00000002, 8600 }, /* MOVE */ + { op_21a0_0_comp_nf, 0x00000002, 8608 }, /* MOVE */ + { op_21a8_0_comp_nf, 0x00000002, 8616 }, /* MOVE */ + { op_21b0_0_comp_nf, 0x00000002, 8624 }, /* MOVE */ + { op_21b8_0_comp_nf, 0x00000002, 8632 }, /* MOVE */ + { op_21b9_0_comp_nf, 0x00000002, 8633 }, /* MOVE */ + { op_21ba_0_comp_nf, 0x00000002, 8634 }, /* MOVE */ + { op_21bb_0_comp_nf, 0x00000002, 8635 }, /* MOVE */ + { op_21bc_0_comp_nf, 0x00000002, 8636 }, /* MOVE */ + { op_21c0_0_comp_nf, 0x00000002, 8640 }, /* MOVE */ + { op_21c8_0_comp_nf, 0x00000002, 8648 }, /* MOVE */ + { op_21d0_0_comp_nf, 0x00000002, 8656 }, /* MOVE */ + { op_21d8_0_comp_nf, 0x00000002, 8664 }, /* MOVE */ + { op_21e0_0_comp_nf, 0x00000002, 8672 }, /* MOVE */ + { op_21e8_0_comp_nf, 0x00000002, 8680 }, /* MOVE */ + { op_21f0_0_comp_nf, 0x00000002, 8688 }, /* MOVE */ + { op_21f8_0_comp_nf, 0x00000002, 8696 }, /* MOVE */ + { op_21f9_0_comp_nf, 0x00000002, 8697 }, /* MOVE */ + { op_21fa_0_comp_nf, 0x00000002, 8698 }, /* MOVE */ + { op_21fb_0_comp_nf, 0x00000002, 8699 }, /* MOVE */ + { op_21fc_0_comp_nf, 0x00000002, 8700 }, /* MOVE */ + { op_23c0_0_comp_nf, 0x00000002, 9152 }, /* MOVE */ + { op_23c8_0_comp_nf, 0x00000002, 9160 }, /* MOVE */ + { op_23d0_0_comp_nf, 0x00000002, 9168 }, /* MOVE */ + { op_23d8_0_comp_nf, 0x00000002, 9176 }, /* MOVE */ + { op_23e0_0_comp_nf, 0x00000002, 9184 }, /* MOVE */ + { op_23e8_0_comp_nf, 0x00000002, 9192 }, /* MOVE */ + { op_23f0_0_comp_nf, 0x00000002, 9200 }, /* MOVE */ + { op_23f8_0_comp_nf, 0x00000002, 9208 }, /* MOVE */ + { op_23f9_0_comp_nf, 0x00000002, 9209 }, /* MOVE */ + { op_23fa_0_comp_nf, 0x00000002, 9210 }, /* MOVE */ + { op_23fb_0_comp_nf, 0x00000002, 9211 }, /* MOVE */ + { op_23fc_0_comp_nf, 0x00000002, 9212 }, /* MOVE */ + { op_3000_0_comp_nf, 0x00000000, 12288 }, /* MOVE */ + { op_3008_0_comp_nf, 0x00000000, 12296 }, /* MOVE */ + { op_3010_0_comp_nf, 0x00000000, 12304 }, /* MOVE */ + { op_3018_0_comp_nf, 0x00000000, 12312 }, /* MOVE */ + { op_3020_0_comp_nf, 0x00000000, 12320 }, /* MOVE */ + { op_3028_0_comp_nf, 0x00000002, 12328 }, /* MOVE */ + { op_3030_0_comp_nf, 0x00000002, 12336 }, /* MOVE */ + { op_3038_0_comp_nf, 0x00000002, 12344 }, /* MOVE */ + { op_3039_0_comp_nf, 0x00000002, 12345 }, /* MOVE */ + { op_303a_0_comp_nf, 0x00000002, 12346 }, /* MOVE */ + { op_303b_0_comp_nf, 0x00000002, 12347 }, /* MOVE */ + { op_303c_0_comp_nf, 0x00000002, 12348 }, /* MOVE */ + { op_3040_0_comp_nf, 0x00000000, 12352 }, /* MOVEA */ + { op_3048_0_comp_nf, 0x00000000, 12360 }, /* MOVEA */ + { op_3050_0_comp_nf, 0x00000000, 12368 }, /* MOVEA */ + { op_3058_0_comp_nf, 0x00000000, 12376 }, /* MOVEA */ + { op_3060_0_comp_nf, 0x00000000, 12384 }, /* MOVEA */ + { op_3068_0_comp_nf, 0x00000002, 12392 }, /* MOVEA */ + { op_3070_0_comp_nf, 0x00000002, 12400 }, /* MOVEA */ + { op_3078_0_comp_nf, 0x00000002, 12408 }, /* MOVEA */ + { op_3079_0_comp_nf, 0x00000002, 12409 }, /* MOVEA */ + { op_307a_0_comp_nf, 0x00000002, 12410 }, /* MOVEA */ + { op_307b_0_comp_nf, 0x00000002, 12411 }, /* MOVEA */ + { op_307c_0_comp_nf, 0x00000002, 12412 }, /* MOVEA */ + { op_3080_0_comp_nf, 0x00000000, 12416 }, /* MOVE */ + { op_3088_0_comp_nf, 0x00000000, 12424 }, /* MOVE */ + { op_3090_0_comp_nf, 0x00000000, 12432 }, /* MOVE */ + { op_3098_0_comp_nf, 0x00000000, 12440 }, /* MOVE */ + { op_30a0_0_comp_nf, 0x00000000, 12448 }, /* MOVE */ + { op_30a8_0_comp_nf, 0x00000002, 12456 }, /* MOVE */ + { op_30b0_0_comp_nf, 0x00000002, 12464 }, /* MOVE */ + { op_30b8_0_comp_nf, 0x00000002, 12472 }, /* MOVE */ + { op_30b9_0_comp_nf, 0x00000002, 12473 }, /* MOVE */ + { op_30ba_0_comp_nf, 0x00000002, 12474 }, /* MOVE */ + { op_30bb_0_comp_nf, 0x00000002, 12475 }, /* MOVE */ + { op_30bc_0_comp_nf, 0x00000002, 12476 }, /* MOVE */ + { op_30c0_0_comp_nf, 0x00000000, 12480 }, /* MOVE */ + { op_30c8_0_comp_nf, 0x00000000, 12488 }, /* MOVE */ + { op_30d0_0_comp_nf, 0x00000000, 12496 }, /* MOVE */ + { op_30d8_0_comp_nf, 0x00000000, 12504 }, /* MOVE */ + { op_30e0_0_comp_nf, 0x00000000, 12512 }, /* MOVE */ + { op_30e8_0_comp_nf, 0x00000002, 12520 }, /* MOVE */ + { op_30f0_0_comp_nf, 0x00000002, 12528 }, /* MOVE */ + { op_30f8_0_comp_nf, 0x00000002, 12536 }, /* MOVE */ + { op_30f9_0_comp_nf, 0x00000002, 12537 }, /* MOVE */ + { op_30fa_0_comp_nf, 0x00000002, 12538 }, /* MOVE */ + { op_30fb_0_comp_nf, 0x00000002, 12539 }, /* MOVE */ + { op_30fc_0_comp_nf, 0x00000002, 12540 }, /* MOVE */ + { op_3100_0_comp_nf, 0x00000000, 12544 }, /* MOVE */ + { op_3108_0_comp_nf, 0x00000000, 12552 }, /* MOVE */ + { op_3110_0_comp_nf, 0x00000000, 12560 }, /* MOVE */ + { op_3118_0_comp_nf, 0x00000000, 12568 }, /* MOVE */ + { op_3120_0_comp_nf, 0x00000000, 12576 }, /* MOVE */ + { op_3128_0_comp_nf, 0x00000002, 12584 }, /* MOVE */ + { op_3130_0_comp_nf, 0x00000002, 12592 }, /* MOVE */ + { op_3138_0_comp_nf, 0x00000002, 12600 }, /* MOVE */ + { op_3139_0_comp_nf, 0x00000002, 12601 }, /* MOVE */ + { op_313a_0_comp_nf, 0x00000002, 12602 }, /* MOVE */ + { op_313b_0_comp_nf, 0x00000002, 12603 }, /* MOVE */ + { op_313c_0_comp_nf, 0x00000002, 12604 }, /* MOVE */ + { op_3140_0_comp_nf, 0x00000002, 12608 }, /* MOVE */ + { op_3148_0_comp_nf, 0x00000002, 12616 }, /* MOVE */ + { op_3150_0_comp_nf, 0x00000002, 12624 }, /* MOVE */ + { op_3158_0_comp_nf, 0x00000002, 12632 }, /* MOVE */ + { op_3160_0_comp_nf, 0x00000002, 12640 }, /* MOVE */ + { op_3168_0_comp_nf, 0x00000002, 12648 }, /* MOVE */ + { op_3170_0_comp_nf, 0x00000002, 12656 }, /* MOVE */ + { op_3178_0_comp_nf, 0x00000002, 12664 }, /* MOVE */ + { op_3179_0_comp_nf, 0x00000002, 12665 }, /* MOVE */ + { op_317a_0_comp_nf, 0x00000002, 12666 }, /* MOVE */ + { op_317b_0_comp_nf, 0x00000002, 12667 }, /* MOVE */ + { op_317c_0_comp_nf, 0x00000002, 12668 }, /* MOVE */ + { op_3180_0_comp_nf, 0x00000002, 12672 }, /* MOVE */ + { op_3188_0_comp_nf, 0x00000002, 12680 }, /* MOVE */ + { op_3190_0_comp_nf, 0x00000002, 12688 }, /* MOVE */ + { op_3198_0_comp_nf, 0x00000002, 12696 }, /* MOVE */ + { op_31a0_0_comp_nf, 0x00000002, 12704 }, /* MOVE */ + { op_31a8_0_comp_nf, 0x00000002, 12712 }, /* MOVE */ + { op_31b0_0_comp_nf, 0x00000002, 12720 }, /* MOVE */ + { op_31b8_0_comp_nf, 0x00000002, 12728 }, /* MOVE */ + { op_31b9_0_comp_nf, 0x00000002, 12729 }, /* MOVE */ + { op_31ba_0_comp_nf, 0x00000002, 12730 }, /* MOVE */ + { op_31bb_0_comp_nf, 0x00000002, 12731 }, /* MOVE */ + { op_31bc_0_comp_nf, 0x00000002, 12732 }, /* MOVE */ + { op_31c0_0_comp_nf, 0x00000002, 12736 }, /* MOVE */ + { op_31c8_0_comp_nf, 0x00000002, 12744 }, /* MOVE */ + { op_31d0_0_comp_nf, 0x00000002, 12752 }, /* MOVE */ + { op_31d8_0_comp_nf, 0x00000002, 12760 }, /* MOVE */ + { op_31e0_0_comp_nf, 0x00000002, 12768 }, /* MOVE */ + { op_31e8_0_comp_nf, 0x00000002, 12776 }, /* MOVE */ + { op_31f0_0_comp_nf, 0x00000002, 12784 }, /* MOVE */ + { op_31f8_0_comp_nf, 0x00000002, 12792 }, /* MOVE */ + { op_31f9_0_comp_nf, 0x00000002, 12793 }, /* MOVE */ + { op_31fa_0_comp_nf, 0x00000002, 12794 }, /* MOVE */ + { op_31fb_0_comp_nf, 0x00000002, 12795 }, /* MOVE */ + { op_31fc_0_comp_nf, 0x00000002, 12796 }, /* MOVE */ + { op_33c0_0_comp_nf, 0x00000002, 13248 }, /* MOVE */ + { op_33c8_0_comp_nf, 0x00000002, 13256 }, /* MOVE */ + { op_33d0_0_comp_nf, 0x00000002, 13264 }, /* MOVE */ + { op_33d8_0_comp_nf, 0x00000002, 13272 }, /* MOVE */ + { op_33e0_0_comp_nf, 0x00000002, 13280 }, /* MOVE */ + { op_33e8_0_comp_nf, 0x00000002, 13288 }, /* MOVE */ + { op_33f0_0_comp_nf, 0x00000002, 13296 }, /* MOVE */ + { op_33f8_0_comp_nf, 0x00000002, 13304 }, /* MOVE */ + { op_33f9_0_comp_nf, 0x00000002, 13305 }, /* MOVE */ + { op_33fa_0_comp_nf, 0x00000002, 13306 }, /* MOVE */ + { op_33fb_0_comp_nf, 0x00000002, 13307 }, /* MOVE */ + { op_33fc_0_comp_nf, 0x00000002, 13308 }, /* MOVE */ + { op_4000_0_comp_nf, 0x00000008, 16384 }, /* NEGX */ + { op_4010_0_comp_nf, 0x00000008, 16400 }, /* NEGX */ + { op_4018_0_comp_nf, 0x00000008, 16408 }, /* NEGX */ + { op_4020_0_comp_nf, 0x00000008, 16416 }, /* NEGX */ + { op_4028_0_comp_nf, 0x0000000a, 16424 }, /* NEGX */ + { op_4030_0_comp_nf, 0x0000000a, 16432 }, /* NEGX */ + { op_4038_0_comp_nf, 0x0000000a, 16440 }, /* NEGX */ + { op_4039_0_comp_nf, 0x0000000a, 16441 }, /* NEGX */ + { op_4040_0_comp_nf, 0x00000008, 16448 }, /* NEGX */ + { op_4050_0_comp_nf, 0x00000008, 16464 }, /* NEGX */ + { op_4058_0_comp_nf, 0x00000008, 16472 }, /* NEGX */ + { op_4060_0_comp_nf, 0x00000008, 16480 }, /* NEGX */ + { op_4068_0_comp_nf, 0x0000000a, 16488 }, /* NEGX */ + { op_4070_0_comp_nf, 0x0000000a, 16496 }, /* NEGX */ + { op_4078_0_comp_nf, 0x0000000a, 16504 }, /* NEGX */ + { op_4079_0_comp_nf, 0x0000000a, 16505 }, /* NEGX */ + { op_4080_0_comp_nf, 0x00000008, 16512 }, /* NEGX */ + { op_4090_0_comp_nf, 0x00000008, 16528 }, /* NEGX */ + { op_4098_0_comp_nf, 0x00000008, 16536 }, /* NEGX */ + { op_40a0_0_comp_nf, 0x00000008, 16544 }, /* NEGX */ + { op_40a8_0_comp_nf, 0x0000000a, 16552 }, /* NEGX */ + { op_40b0_0_comp_nf, 0x0000000a, 16560 }, /* NEGX */ + { op_40b8_0_comp_nf, 0x0000000a, 16568 }, /* NEGX */ + { op_40b9_0_comp_nf, 0x0000000a, 16569 }, /* NEGX */ + { NULL, 0x00000001, 16576 }, /* MVSR2 */ + { NULL, 0x00000001, 16592 }, /* MVSR2 */ + { NULL, 0x00000001, 16600 }, /* MVSR2 */ + { NULL, 0x00000001, 16608 }, /* MVSR2 */ + { NULL, 0x00000001, 16616 }, /* MVSR2 */ + { NULL, 0x00000001, 16624 }, /* MVSR2 */ + { NULL, 0x00000001, 16632 }, /* MVSR2 */ + { NULL, 0x00000001, 16633 }, /* MVSR2 */ + { NULL, 0x00000001, 16640 }, /* CHK */ + { NULL, 0x00000001, 16656 }, /* CHK */ + { NULL, 0x00000001, 16664 }, /* CHK */ + { NULL, 0x00000001, 16672 }, /* CHK */ + { NULL, 0x00000001, 16680 }, /* CHK */ + { NULL, 0x00000001, 16688 }, /* CHK */ + { NULL, 0x00000001, 16696 }, /* CHK */ + { NULL, 0x00000001, 16697 }, /* CHK */ + { NULL, 0x00000001, 16698 }, /* CHK */ + { NULL, 0x00000001, 16699 }, /* CHK */ + { NULL, 0x00000001, 16700 }, /* CHK */ + { NULL, 0x00000001, 16768 }, /* CHK */ + { NULL, 0x00000001, 16784 }, /* CHK */ + { NULL, 0x00000001, 16792 }, /* CHK */ + { NULL, 0x00000001, 16800 }, /* CHK */ + { NULL, 0x00000001, 16808 }, /* CHK */ + { NULL, 0x00000001, 16816 }, /* CHK */ + { NULL, 0x00000001, 16824 }, /* CHK */ + { NULL, 0x00000001, 16825 }, /* CHK */ + { NULL, 0x00000001, 16826 }, /* CHK */ + { NULL, 0x00000001, 16827 }, /* CHK */ + { NULL, 0x00000001, 16828 }, /* CHK */ + { op_41d0_0_comp_nf, 0x00000000, 16848 }, /* LEA */ + { op_41e8_0_comp_nf, 0x00000002, 16872 }, /* LEA */ + { op_41f0_0_comp_nf, 0x00000002, 16880 }, /* LEA */ + { op_41f8_0_comp_nf, 0x00000002, 16888 }, /* LEA */ + { op_41f9_0_comp_nf, 0x00000002, 16889 }, /* LEA */ + { op_41fa_0_comp_nf, 0x00000002, 16890 }, /* LEA */ + { op_41fb_0_comp_nf, 0x00000002, 16891 }, /* LEA */ + { op_4200_0_comp_nf, 0x00000000, 16896 }, /* CLR */ + { op_4210_0_comp_nf, 0x00000000, 16912 }, /* CLR */ + { op_4218_0_comp_nf, 0x00000000, 16920 }, /* CLR */ + { op_4220_0_comp_nf, 0x00000000, 16928 }, /* CLR */ + { op_4228_0_comp_nf, 0x00000002, 16936 }, /* CLR */ + { op_4230_0_comp_nf, 0x00000002, 16944 }, /* CLR */ + { op_4238_0_comp_nf, 0x00000002, 16952 }, /* CLR */ + { op_4239_0_comp_nf, 0x00000002, 16953 }, /* CLR */ + { op_4240_0_comp_nf, 0x00000000, 16960 }, /* CLR */ + { op_4250_0_comp_nf, 0x00000000, 16976 }, /* CLR */ + { op_4258_0_comp_nf, 0x00000000, 16984 }, /* CLR */ + { op_4260_0_comp_nf, 0x00000000, 16992 }, /* CLR */ + { op_4268_0_comp_nf, 0x00000002, 17000 }, /* CLR */ + { op_4270_0_comp_nf, 0x00000002, 17008 }, /* CLR */ + { op_4278_0_comp_nf, 0x00000002, 17016 }, /* CLR */ + { op_4279_0_comp_nf, 0x00000002, 17017 }, /* CLR */ + { op_4280_0_comp_nf, 0x00000000, 17024 }, /* CLR */ + { op_4290_0_comp_nf, 0x00000000, 17040 }, /* CLR */ + { op_4298_0_comp_nf, 0x00000000, 17048 }, /* CLR */ + { op_42a0_0_comp_nf, 0x00000000, 17056 }, /* CLR */ + { op_42a8_0_comp_nf, 0x00000002, 17064 }, /* CLR */ + { op_42b0_0_comp_nf, 0x00000002, 17072 }, /* CLR */ + { op_42b8_0_comp_nf, 0x00000002, 17080 }, /* CLR */ + { op_42b9_0_comp_nf, 0x00000002, 17081 }, /* CLR */ + { NULL, 0x00000001, 17088 }, /* MVSR2 */ + { NULL, 0x00000001, 17104 }, /* MVSR2 */ + { NULL, 0x00000001, 17112 }, /* MVSR2 */ + { NULL, 0x00000001, 17120 }, /* MVSR2 */ + { NULL, 0x00000001, 17128 }, /* MVSR2 */ + { NULL, 0x00000001, 17136 }, /* MVSR2 */ + { NULL, 0x00000001, 17144 }, /* MVSR2 */ + { NULL, 0x00000001, 17145 }, /* MVSR2 */ + { op_4400_0_comp_nf, 0x00000000, 17408 }, /* NEG */ + { op_4410_0_comp_nf, 0x00000000, 17424 }, /* NEG */ + { op_4418_0_comp_nf, 0x00000000, 17432 }, /* NEG */ + { op_4420_0_comp_nf, 0x00000000, 17440 }, /* NEG */ + { op_4428_0_comp_nf, 0x00000002, 17448 }, /* NEG */ + { op_4430_0_comp_nf, 0x00000002, 17456 }, /* NEG */ + { op_4438_0_comp_nf, 0x00000002, 17464 }, /* NEG */ + { op_4439_0_comp_nf, 0x00000002, 17465 }, /* NEG */ + { op_4440_0_comp_nf, 0x00000000, 17472 }, /* NEG */ + { op_4450_0_comp_nf, 0x00000000, 17488 }, /* NEG */ + { op_4458_0_comp_nf, 0x00000000, 17496 }, /* NEG */ + { op_4460_0_comp_nf, 0x00000000, 17504 }, /* NEG */ + { op_4468_0_comp_nf, 0x00000002, 17512 }, /* NEG */ + { op_4470_0_comp_nf, 0x00000002, 17520 }, /* NEG */ + { op_4478_0_comp_nf, 0x00000002, 17528 }, /* NEG */ + { op_4479_0_comp_nf, 0x00000002, 17529 }, /* NEG */ + { op_4480_0_comp_nf, 0x00000000, 17536 }, /* NEG */ + { op_4490_0_comp_nf, 0x00000000, 17552 }, /* NEG */ + { op_4498_0_comp_nf, 0x00000000, 17560 }, /* NEG */ + { op_44a0_0_comp_nf, 0x00000000, 17568 }, /* NEG */ + { op_44a8_0_comp_nf, 0x00000002, 17576 }, /* NEG */ + { op_44b0_0_comp_nf, 0x00000002, 17584 }, /* NEG */ + { op_44b8_0_comp_nf, 0x00000002, 17592 }, /* NEG */ + { op_44b9_0_comp_nf, 0x00000002, 17593 }, /* NEG */ + { NULL, 0x00000001, 17600 }, /* MV2SR */ + { NULL, 0x00000001, 17616 }, /* MV2SR */ + { NULL, 0x00000001, 17624 }, /* MV2SR */ + { NULL, 0x00000001, 17632 }, /* MV2SR */ + { NULL, 0x00000001, 17640 }, /* MV2SR */ + { NULL, 0x00000001, 17648 }, /* MV2SR */ + { NULL, 0x00000001, 17656 }, /* MV2SR */ + { NULL, 0x00000001, 17657 }, /* MV2SR */ + { NULL, 0x00000001, 17658 }, /* MV2SR */ + { NULL, 0x00000001, 17659 }, /* MV2SR */ + { NULL, 0x00000001, 17660 }, /* MV2SR */ + { op_4600_0_comp_nf, 0x00000000, 17920 }, /* NOT */ + { op_4610_0_comp_nf, 0x00000000, 17936 }, /* NOT */ + { op_4618_0_comp_nf, 0x00000000, 17944 }, /* NOT */ + { op_4620_0_comp_nf, 0x00000000, 17952 }, /* NOT */ + { op_4628_0_comp_nf, 0x00000002, 17960 }, /* NOT */ + { op_4630_0_comp_nf, 0x00000002, 17968 }, /* NOT */ + { op_4638_0_comp_nf, 0x00000002, 17976 }, /* NOT */ + { op_4639_0_comp_nf, 0x00000002, 17977 }, /* NOT */ + { op_4640_0_comp_nf, 0x00000000, 17984 }, /* NOT */ + { op_4650_0_comp_nf, 0x00000000, 18000 }, /* NOT */ + { op_4658_0_comp_nf, 0x00000000, 18008 }, /* NOT */ + { op_4660_0_comp_nf, 0x00000000, 18016 }, /* NOT */ + { op_4668_0_comp_nf, 0x00000002, 18024 }, /* NOT */ + { op_4670_0_comp_nf, 0x00000002, 18032 }, /* NOT */ + { op_4678_0_comp_nf, 0x00000002, 18040 }, /* NOT */ + { op_4679_0_comp_nf, 0x00000002, 18041 }, /* NOT */ + { op_4680_0_comp_nf, 0x00000000, 18048 }, /* NOT */ + { op_4690_0_comp_nf, 0x00000000, 18064 }, /* NOT */ + { op_4698_0_comp_nf, 0x00000000, 18072 }, /* NOT */ + { op_46a0_0_comp_nf, 0x00000000, 18080 }, /* NOT */ + { op_46a8_0_comp_nf, 0x00000002, 18088 }, /* NOT */ + { op_46b0_0_comp_nf, 0x00000002, 18096 }, /* NOT */ + { op_46b8_0_comp_nf, 0x00000002, 18104 }, /* NOT */ + { op_46b9_0_comp_nf, 0x00000002, 18105 }, /* NOT */ + { NULL, 0x00000001, 18112 }, /* MV2SR */ + { NULL, 0x00000001, 18128 }, /* MV2SR */ + { NULL, 0x00000001, 18136 }, /* MV2SR */ + { NULL, 0x00000001, 18144 }, /* MV2SR */ + { NULL, 0x00000001, 18152 }, /* MV2SR */ + { NULL, 0x00000001, 18160 }, /* MV2SR */ + { NULL, 0x00000001, 18168 }, /* MV2SR */ + { NULL, 0x00000001, 18169 }, /* MV2SR */ + { NULL, 0x00000001, 18170 }, /* MV2SR */ + { NULL, 0x00000001, 18171 }, /* MV2SR */ + { NULL, 0x00000001, 18172 }, /* MV2SR */ + { NULL, 0x00000000, 18432 }, /* NBCD */ + { op_4808_0_comp_nf, 0x00000002, 18440 }, /* LINK */ + { NULL, 0x00000000, 18448 }, /* NBCD */ + { NULL, 0x00000000, 18456 }, /* NBCD */ + { NULL, 0x00000000, 18464 }, /* NBCD */ + { NULL, 0x00000000, 18472 }, /* NBCD */ + { NULL, 0x00000000, 18480 }, /* NBCD */ + { NULL, 0x00000000, 18488 }, /* NBCD */ + { NULL, 0x00000000, 18489 }, /* NBCD */ + { op_4840_0_comp_nf, 0x00000000, 18496 }, /* SWAP */ + { NULL, 0x00000001, 18504 }, /* BKPT */ + { op_4850_0_comp_nf, 0x00000000, 18512 }, /* PEA */ + { op_4868_0_comp_nf, 0x00000002, 18536 }, /* PEA */ + { op_4870_0_comp_nf, 0x00000002, 18544 }, /* PEA */ + { op_4878_0_comp_nf, 0x00000002, 18552 }, /* PEA */ + { op_4879_0_comp_nf, 0x00000002, 18553 }, /* PEA */ + { op_487a_0_comp_nf, 0x00000002, 18554 }, /* PEA */ + { op_487b_0_comp_nf, 0x00000002, 18555 }, /* PEA */ + { op_4880_0_comp_nf, 0x00000000, 18560 }, /* EXT */ + { op_4890_0_comp_nf, 0x00000002, 18576 }, /* MVMLE */ + { op_48a0_0_comp_nf, 0x00000002, 18592 }, /* MVMLE */ + { op_48a8_0_comp_nf, 0x00000002, 18600 }, /* MVMLE */ + { op_48b0_0_comp_nf, 0x00000002, 18608 }, /* MVMLE */ + { op_48b8_0_comp_nf, 0x00000002, 18616 }, /* MVMLE */ + { op_48b9_0_comp_nf, 0x00000002, 18617 }, /* MVMLE */ + { op_48c0_0_comp_nf, 0x00000000, 18624 }, /* EXT */ + { op_48d0_0_comp_nf, 0x00000002, 18640 }, /* MVMLE */ + { op_48e0_0_comp_nf, 0x00000002, 18656 }, /* MVMLE */ + { op_48e8_0_comp_nf, 0x00000002, 18664 }, /* MVMLE */ + { op_48f0_0_comp_nf, 0x00000002, 18672 }, /* MVMLE */ + { op_48f8_0_comp_nf, 0x00000002, 18680 }, /* MVMLE */ + { op_48f9_0_comp_nf, 0x00000002, 18681 }, /* MVMLE */ + { op_49c0_0_comp_nf, 0x00000000, 18880 }, /* EXT */ + { op_4a00_0_comp_nf, 0x00000000, 18944 }, /* TST */ + { op_4a10_0_comp_nf, 0x00000000, 18960 }, /* TST */ + { op_4a18_0_comp_nf, 0x00000000, 18968 }, /* TST */ + { op_4a20_0_comp_nf, 0x00000000, 18976 }, /* TST */ + { op_4a28_0_comp_nf, 0x00000002, 18984 }, /* TST */ + { op_4a30_0_comp_nf, 0x00000002, 18992 }, /* TST */ + { op_4a38_0_comp_nf, 0x00000002, 19000 }, /* TST */ + { op_4a39_0_comp_nf, 0x00000002, 19001 }, /* TST */ + { op_4a3a_0_comp_nf, 0x00000002, 19002 }, /* TST */ + { op_4a3b_0_comp_nf, 0x00000002, 19003 }, /* TST */ + { op_4a3c_0_comp_nf, 0x00000002, 19004 }, /* TST */ + { op_4a40_0_comp_nf, 0x00000000, 19008 }, /* TST */ + { op_4a48_0_comp_nf, 0x00000000, 19016 }, /* TST */ + { op_4a50_0_comp_nf, 0x00000000, 19024 }, /* TST */ + { op_4a58_0_comp_nf, 0x00000000, 19032 }, /* TST */ + { op_4a60_0_comp_nf, 0x00000000, 19040 }, /* TST */ + { op_4a68_0_comp_nf, 0x00000002, 19048 }, /* TST */ + { op_4a70_0_comp_nf, 0x00000002, 19056 }, /* TST */ + { op_4a78_0_comp_nf, 0x00000002, 19064 }, /* TST */ + { op_4a79_0_comp_nf, 0x00000002, 19065 }, /* TST */ + { op_4a7a_0_comp_nf, 0x00000002, 19066 }, /* TST */ + { op_4a7b_0_comp_nf, 0x00000002, 19067 }, /* TST */ + { op_4a7c_0_comp_nf, 0x00000002, 19068 }, /* TST */ + { op_4a80_0_comp_nf, 0x00000000, 19072 }, /* TST */ + { op_4a88_0_comp_nf, 0x00000000, 19080 }, /* TST */ + { op_4a90_0_comp_nf, 0x00000000, 19088 }, /* TST */ + { op_4a98_0_comp_nf, 0x00000000, 19096 }, /* TST */ + { op_4aa0_0_comp_nf, 0x00000000, 19104 }, /* TST */ + { op_4aa8_0_comp_nf, 0x00000002, 19112 }, /* TST */ + { op_4ab0_0_comp_nf, 0x00000002, 19120 }, /* TST */ + { op_4ab8_0_comp_nf, 0x00000002, 19128 }, /* TST */ + { op_4ab9_0_comp_nf, 0x00000002, 19129 }, /* TST */ + { op_4aba_0_comp_nf, 0x00000002, 19130 }, /* TST */ + { op_4abb_0_comp_nf, 0x00000002, 19131 }, /* TST */ + { op_4abc_0_comp_nf, 0x00000002, 19132 }, /* TST */ + { NULL, 0x00000000, 19136 }, /* TAS */ + { NULL, 0x00000000, 19152 }, /* TAS */ + { NULL, 0x00000000, 19160 }, /* TAS */ + { NULL, 0x00000000, 19168 }, /* TAS */ + { NULL, 0x00000000, 19176 }, /* TAS */ + { NULL, 0x00000000, 19184 }, /* TAS */ + { NULL, 0x00000000, 19192 }, /* TAS */ + { NULL, 0x00000000, 19193 }, /* TAS */ + { op_4c00_0_comp_nf, 0x00000002, 19456 }, /* MULL */ + { op_4c10_0_comp_nf, 0x00000002, 19472 }, /* MULL */ + { op_4c18_0_comp_nf, 0x00000002, 19480 }, /* MULL */ + { op_4c20_0_comp_nf, 0x00000002, 19488 }, /* MULL */ + { op_4c28_0_comp_nf, 0x00000002, 19496 }, /* MULL */ + { op_4c30_0_comp_nf, 0x00000002, 19504 }, /* MULL */ + { op_4c38_0_comp_nf, 0x00000002, 19512 }, /* MULL */ + { op_4c39_0_comp_nf, 0x00000002, 19513 }, /* MULL */ + { op_4c3a_0_comp_nf, 0x00000002, 19514 }, /* MULL */ + { op_4c3b_0_comp_nf, 0x00000002, 19515 }, /* MULL */ + { op_4c3c_0_comp_nf, 0x00000002, 19516 }, /* MULL */ + { NULL, 0x00000001, 19520 }, /* DIVL */ + { NULL, 0x00000001, 19536 }, /* DIVL */ + { NULL, 0x00000001, 19544 }, /* DIVL */ + { NULL, 0x00000001, 19552 }, /* DIVL */ + { NULL, 0x00000001, 19560 }, /* DIVL */ + { NULL, 0x00000001, 19568 }, /* DIVL */ + { NULL, 0x00000001, 19576 }, /* DIVL */ + { NULL, 0x00000001, 19577 }, /* DIVL */ + { NULL, 0x00000001, 19578 }, /* DIVL */ + { NULL, 0x00000001, 19579 }, /* DIVL */ + { NULL, 0x00000001, 19580 }, /* DIVL */ + { op_4c90_0_comp_nf, 0x00000002, 19600 }, /* MVMEL */ + { op_4c98_0_comp_nf, 0x00000002, 19608 }, /* MVMEL */ + { op_4ca8_0_comp_nf, 0x00000002, 19624 }, /* MVMEL */ + { op_4cb0_0_comp_nf, 0x00000002, 19632 }, /* MVMEL */ + { op_4cb8_0_comp_nf, 0x00000002, 19640 }, /* MVMEL */ + { op_4cb9_0_comp_nf, 0x00000002, 19641 }, /* MVMEL */ + { op_4cba_0_comp_nf, 0x00000002, 19642 }, /* MVMEL */ + { op_4cbb_0_comp_nf, 0x00000002, 19643 }, /* MVMEL */ + { op_4cd0_0_comp_nf, 0x00000002, 19664 }, /* MVMEL */ + { op_4cd8_0_comp_nf, 0x00000002, 19672 }, /* MVMEL */ + { op_4ce8_0_comp_nf, 0x00000002, 19688 }, /* MVMEL */ + { op_4cf0_0_comp_nf, 0x00000002, 19696 }, /* MVMEL */ + { op_4cf8_0_comp_nf, 0x00000002, 19704 }, /* MVMEL */ + { op_4cf9_0_comp_nf, 0x00000002, 19705 }, /* MVMEL */ + { op_4cfa_0_comp_nf, 0x00000002, 19706 }, /* MVMEL */ + { op_4cfb_0_comp_nf, 0x00000002, 19707 }, /* MVMEL */ + { NULL, 0x00000001, 20032 }, /* TRAP */ + { op_4e50_0_comp_nf, 0x00000002, 20048 }, /* LINK */ + { op_4e58_0_comp_nf, 0x00000000, 20056 }, /* UNLK */ + { NULL, 0x00000001, 20064 }, /* MVR2USP */ + { NULL, 0x00000001, 20072 }, /* MVUSP2R */ + { NULL, 0x00000001, 20080 }, /* RESET */ + { op_4e71_0_comp_nf, 0x00000000, 20081 }, /* NOP */ + { NULL, 0x00000001, 20082 }, /* STOP */ + { NULL, 0x00000001, 20083 }, /* RTE */ + { op_4e74_0_comp_nf, 0x00000003, 20084 }, /* RTD */ + { op_4e75_0_comp_nf, 0x00000001, 20085 }, /* RTS */ + { NULL, 0x00000001, 20086 }, /* TRAPV */ + { NULL, 0x00000001, 20087 }, /* RTR */ + { NULL, 0x00000001, 20090 }, /* MOVEC2 */ + { NULL, 0x00000001, 20091 }, /* MOVE2C */ + { op_4e90_0_comp_nf, 0x00000001, 20112 }, /* JSR */ + { op_4ea8_0_comp_nf, 0x00000003, 20136 }, /* JSR */ + { op_4eb0_0_comp_nf, 0x00000003, 20144 }, /* JSR */ + { op_4eb8_0_comp_nf, 0x00000003, 20152 }, /* JSR */ + { op_4eb9_0_comp_nf, 0x00000003, 20153 }, /* JSR */ + { op_4eba_0_comp_nf, 0x00000003, 20154 }, /* JSR */ + { op_4ebb_0_comp_nf, 0x00000003, 20155 }, /* JSR */ + { op_4ed0_0_comp_nf, 0x00000001, 20176 }, /* JMP */ + { op_4ee8_0_comp_nf, 0x00000003, 20200 }, /* JMP */ + { op_4ef0_0_comp_nf, 0x00000003, 20208 }, /* JMP */ + { op_4ef8_0_comp_nf, 0x00000003, 20216 }, /* JMP */ + { op_4ef9_0_comp_nf, 0x00000003, 20217 }, /* JMP */ + { op_4efa_0_comp_nf, 0x00000003, 20218 }, /* JMP */ + { op_4efb_0_comp_nf, 0x00000003, 20219 }, /* JMP */ + { op_5000_0_comp_nf, 0x00000000, 20480 }, /* ADD */ + { op_5010_0_comp_nf, 0x00000000, 20496 }, /* ADD */ + { op_5018_0_comp_nf, 0x00000000, 20504 }, /* ADD */ + { op_5020_0_comp_nf, 0x00000000, 20512 }, /* ADD */ + { op_5028_0_comp_nf, 0x00000002, 20520 }, /* ADD */ + { op_5030_0_comp_nf, 0x00000002, 20528 }, /* ADD */ + { op_5038_0_comp_nf, 0x00000002, 20536 }, /* ADD */ + { op_5039_0_comp_nf, 0x00000002, 20537 }, /* ADD */ + { op_5040_0_comp_nf, 0x00000000, 20544 }, /* ADD */ + { op_5048_0_comp_nf, 0x00000000, 20552 }, /* ADDA */ + { op_5050_0_comp_nf, 0x00000000, 20560 }, /* ADD */ + { op_5058_0_comp_nf, 0x00000000, 20568 }, /* ADD */ + { op_5060_0_comp_nf, 0x00000000, 20576 }, /* ADD */ + { op_5068_0_comp_nf, 0x00000002, 20584 }, /* ADD */ + { op_5070_0_comp_nf, 0x00000002, 20592 }, /* ADD */ + { op_5078_0_comp_nf, 0x00000002, 20600 }, /* ADD */ + { op_5079_0_comp_nf, 0x00000002, 20601 }, /* ADD */ + { op_5080_0_comp_nf, 0x00000000, 20608 }, /* ADD */ + { op_5088_0_comp_nf, 0x00000000, 20616 }, /* ADDA */ + { op_5090_0_comp_nf, 0x00000000, 20624 }, /* ADD */ + { op_5098_0_comp_nf, 0x00000000, 20632 }, /* ADD */ + { op_50a0_0_comp_nf, 0x00000000, 20640 }, /* ADD */ + { op_50a8_0_comp_nf, 0x00000002, 20648 }, /* ADD */ + { op_50b0_0_comp_nf, 0x00000002, 20656 }, /* ADD */ + { op_50b8_0_comp_nf, 0x00000002, 20664 }, /* ADD */ + { op_50b9_0_comp_nf, 0x00000002, 20665 }, /* ADD */ + { op_50c0_0_comp_nf, 0x00000000, 20672 }, /* Scc */ + { op_50c8_0_comp_nf, 0x00000003, 20680 }, /* DBcc */ + { op_50d0_0_comp_nf, 0x00000000, 20688 }, /* Scc */ + { op_50d8_0_comp_nf, 0x00000000, 20696 }, /* Scc */ + { op_50e0_0_comp_nf, 0x00000000, 20704 }, /* Scc */ + { op_50e8_0_comp_nf, 0x00000002, 20712 }, /* Scc */ + { op_50f0_0_comp_nf, 0x00000002, 20720 }, /* Scc */ + { op_50f8_0_comp_nf, 0x00000002, 20728 }, /* Scc */ + { op_50f9_0_comp_nf, 0x00000002, 20729 }, /* Scc */ + { NULL, 0x00000001, 20730 }, /* TRAPcc */ + { NULL, 0x00000001, 20731 }, /* TRAPcc */ + { NULL, 0x00000001, 20732 }, /* TRAPcc */ + { op_5100_0_comp_nf, 0x00000000, 20736 }, /* SUB */ + { op_5110_0_comp_nf, 0x00000000, 20752 }, /* SUB */ + { op_5118_0_comp_nf, 0x00000000, 20760 }, /* SUB */ + { op_5120_0_comp_nf, 0x00000000, 20768 }, /* SUB */ + { op_5128_0_comp_nf, 0x00000002, 20776 }, /* SUB */ + { op_5130_0_comp_nf, 0x00000002, 20784 }, /* SUB */ + { op_5138_0_comp_nf, 0x00000002, 20792 }, /* SUB */ + { op_5139_0_comp_nf, 0x00000002, 20793 }, /* SUB */ + { op_5140_0_comp_nf, 0x00000000, 20800 }, /* SUB */ + { op_5148_0_comp_nf, 0x00000000, 20808 }, /* SUBA */ + { op_5150_0_comp_nf, 0x00000000, 20816 }, /* SUB */ + { op_5158_0_comp_nf, 0x00000000, 20824 }, /* SUB */ + { op_5160_0_comp_nf, 0x00000000, 20832 }, /* SUB */ + { op_5168_0_comp_nf, 0x00000002, 20840 }, /* SUB */ + { op_5170_0_comp_nf, 0x00000002, 20848 }, /* SUB */ + { op_5178_0_comp_nf, 0x00000002, 20856 }, /* SUB */ + { op_5179_0_comp_nf, 0x00000002, 20857 }, /* SUB */ + { op_5180_0_comp_nf, 0x00000000, 20864 }, /* SUB */ + { op_5188_0_comp_nf, 0x00000000, 20872 }, /* SUBA */ + { op_5190_0_comp_nf, 0x00000000, 20880 }, /* SUB */ + { op_5198_0_comp_nf, 0x00000000, 20888 }, /* SUB */ + { op_51a0_0_comp_nf, 0x00000000, 20896 }, /* SUB */ + { op_51a8_0_comp_nf, 0x00000002, 20904 }, /* SUB */ + { op_51b0_0_comp_nf, 0x00000002, 20912 }, /* SUB */ + { op_51b8_0_comp_nf, 0x00000002, 20920 }, /* SUB */ + { op_51b9_0_comp_nf, 0x00000002, 20921 }, /* SUB */ + { op_51c0_0_comp_nf, 0x00000000, 20928 }, /* Scc */ + { op_51c8_0_comp_nf, 0x00000003, 20936 }, /* DBcc */ + { op_51d0_0_comp_nf, 0x00000000, 20944 }, /* Scc */ + { op_51d8_0_comp_nf, 0x00000000, 20952 }, /* Scc */ + { op_51e0_0_comp_nf, 0x00000000, 20960 }, /* Scc */ + { op_51e8_0_comp_nf, 0x00000002, 20968 }, /* Scc */ + { op_51f0_0_comp_nf, 0x00000002, 20976 }, /* Scc */ + { op_51f8_0_comp_nf, 0x00000002, 20984 }, /* Scc */ + { op_51f9_0_comp_nf, 0x00000002, 20985 }, /* Scc */ + { NULL, 0x00000001, 20986 }, /* TRAPcc */ + { NULL, 0x00000001, 20987 }, /* TRAPcc */ + { NULL, 0x00000001, 20988 }, /* TRAPcc */ + { op_52c0_0_comp_nf, 0x00000000, 21184 }, /* Scc */ + { op_52c8_0_comp_nf, 0x00000003, 21192 }, /* DBcc */ + { op_52d0_0_comp_nf, 0x00000000, 21200 }, /* Scc */ + { op_52d8_0_comp_nf, 0x00000000, 21208 }, /* Scc */ + { op_52e0_0_comp_nf, 0x00000000, 21216 }, /* Scc */ + { op_52e8_0_comp_nf, 0x00000002, 21224 }, /* Scc */ + { op_52f0_0_comp_nf, 0x00000002, 21232 }, /* Scc */ + { op_52f8_0_comp_nf, 0x00000002, 21240 }, /* Scc */ + { op_52f9_0_comp_nf, 0x00000002, 21241 }, /* Scc */ + { NULL, 0x00000001, 21242 }, /* TRAPcc */ + { NULL, 0x00000001, 21243 }, /* TRAPcc */ + { NULL, 0x00000001, 21244 }, /* TRAPcc */ + { op_53c0_0_comp_nf, 0x00000000, 21440 }, /* Scc */ + { op_53c8_0_comp_nf, 0x00000003, 21448 }, /* DBcc */ + { op_53d0_0_comp_nf, 0x00000000, 21456 }, /* Scc */ + { op_53d8_0_comp_nf, 0x00000000, 21464 }, /* Scc */ + { op_53e0_0_comp_nf, 0x00000000, 21472 }, /* Scc */ + { op_53e8_0_comp_nf, 0x00000002, 21480 }, /* Scc */ + { op_53f0_0_comp_nf, 0x00000002, 21488 }, /* Scc */ + { op_53f8_0_comp_nf, 0x00000002, 21496 }, /* Scc */ + { op_53f9_0_comp_nf, 0x00000002, 21497 }, /* Scc */ + { NULL, 0x00000001, 21498 }, /* TRAPcc */ + { NULL, 0x00000001, 21499 }, /* TRAPcc */ + { NULL, 0x00000001, 21500 }, /* TRAPcc */ + { op_54c0_0_comp_nf, 0x00000000, 21696 }, /* Scc */ + { op_54c8_0_comp_nf, 0x00000003, 21704 }, /* DBcc */ + { op_54d0_0_comp_nf, 0x00000000, 21712 }, /* Scc */ + { op_54d8_0_comp_nf, 0x00000000, 21720 }, /* Scc */ + { op_54e0_0_comp_nf, 0x00000000, 21728 }, /* Scc */ + { op_54e8_0_comp_nf, 0x00000002, 21736 }, /* Scc */ + { op_54f0_0_comp_nf, 0x00000002, 21744 }, /* Scc */ + { op_54f8_0_comp_nf, 0x00000002, 21752 }, /* Scc */ + { op_54f9_0_comp_nf, 0x00000002, 21753 }, /* Scc */ + { NULL, 0x00000001, 21754 }, /* TRAPcc */ + { NULL, 0x00000001, 21755 }, /* TRAPcc */ + { NULL, 0x00000001, 21756 }, /* TRAPcc */ + { op_55c0_0_comp_nf, 0x00000000, 21952 }, /* Scc */ + { op_55c8_0_comp_nf, 0x00000003, 21960 }, /* DBcc */ + { op_55d0_0_comp_nf, 0x00000000, 21968 }, /* Scc */ + { op_55d8_0_comp_nf, 0x00000000, 21976 }, /* Scc */ + { op_55e0_0_comp_nf, 0x00000000, 21984 }, /* Scc */ + { op_55e8_0_comp_nf, 0x00000002, 21992 }, /* Scc */ + { op_55f0_0_comp_nf, 0x00000002, 22000 }, /* Scc */ + { op_55f8_0_comp_nf, 0x00000002, 22008 }, /* Scc */ + { op_55f9_0_comp_nf, 0x00000002, 22009 }, /* Scc */ + { NULL, 0x00000001, 22010 }, /* TRAPcc */ + { NULL, 0x00000001, 22011 }, /* TRAPcc */ + { NULL, 0x00000001, 22012 }, /* TRAPcc */ + { op_56c0_0_comp_nf, 0x00000000, 22208 }, /* Scc */ + { op_56c8_0_comp_nf, 0x00000003, 22216 }, /* DBcc */ + { op_56d0_0_comp_nf, 0x00000000, 22224 }, /* Scc */ + { op_56d8_0_comp_nf, 0x00000000, 22232 }, /* Scc */ + { op_56e0_0_comp_nf, 0x00000000, 22240 }, /* Scc */ + { op_56e8_0_comp_nf, 0x00000002, 22248 }, /* Scc */ + { op_56f0_0_comp_nf, 0x00000002, 22256 }, /* Scc */ + { op_56f8_0_comp_nf, 0x00000002, 22264 }, /* Scc */ + { op_56f9_0_comp_nf, 0x00000002, 22265 }, /* Scc */ + { NULL, 0x00000001, 22266 }, /* TRAPcc */ + { NULL, 0x00000001, 22267 }, /* TRAPcc */ + { NULL, 0x00000001, 22268 }, /* TRAPcc */ + { op_57c0_0_comp_nf, 0x00000000, 22464 }, /* Scc */ + { op_57c8_0_comp_nf, 0x00000003, 22472 }, /* DBcc */ + { op_57d0_0_comp_nf, 0x00000000, 22480 }, /* Scc */ + { op_57d8_0_comp_nf, 0x00000000, 22488 }, /* Scc */ + { op_57e0_0_comp_nf, 0x00000000, 22496 }, /* Scc */ + { op_57e8_0_comp_nf, 0x00000002, 22504 }, /* Scc */ + { op_57f0_0_comp_nf, 0x00000002, 22512 }, /* Scc */ + { op_57f8_0_comp_nf, 0x00000002, 22520 }, /* Scc */ + { op_57f9_0_comp_nf, 0x00000002, 22521 }, /* Scc */ + { NULL, 0x00000001, 22522 }, /* TRAPcc */ + { NULL, 0x00000001, 22523 }, /* TRAPcc */ + { NULL, 0x00000001, 22524 }, /* TRAPcc */ + { op_58c0_0_comp_nf, 0x00000000, 22720 }, /* Scc */ + { op_58c8_0_comp_nf, 0x00000003, 22728 }, /* DBcc */ + { op_58d0_0_comp_nf, 0x00000000, 22736 }, /* Scc */ + { op_58d8_0_comp_nf, 0x00000000, 22744 }, /* Scc */ + { op_58e0_0_comp_nf, 0x00000000, 22752 }, /* Scc */ + { op_58e8_0_comp_nf, 0x00000002, 22760 }, /* Scc */ + { op_58f0_0_comp_nf, 0x00000002, 22768 }, /* Scc */ + { op_58f8_0_comp_nf, 0x00000002, 22776 }, /* Scc */ + { op_58f9_0_comp_nf, 0x00000002, 22777 }, /* Scc */ + { NULL, 0x00000001, 22778 }, /* TRAPcc */ + { NULL, 0x00000001, 22779 }, /* TRAPcc */ + { NULL, 0x00000001, 22780 }, /* TRAPcc */ + { op_59c0_0_comp_nf, 0x00000000, 22976 }, /* Scc */ + { op_59c8_0_comp_nf, 0x00000003, 22984 }, /* DBcc */ + { op_59d0_0_comp_nf, 0x00000000, 22992 }, /* Scc */ + { op_59d8_0_comp_nf, 0x00000000, 23000 }, /* Scc */ + { op_59e0_0_comp_nf, 0x00000000, 23008 }, /* Scc */ + { op_59e8_0_comp_nf, 0x00000002, 23016 }, /* Scc */ + { op_59f0_0_comp_nf, 0x00000002, 23024 }, /* Scc */ + { op_59f8_0_comp_nf, 0x00000002, 23032 }, /* Scc */ + { op_59f9_0_comp_nf, 0x00000002, 23033 }, /* Scc */ + { NULL, 0x00000001, 23034 }, /* TRAPcc */ + { NULL, 0x00000001, 23035 }, /* TRAPcc */ + { NULL, 0x00000001, 23036 }, /* TRAPcc */ + { op_5ac0_0_comp_nf, 0x00000000, 23232 }, /* Scc */ + { op_5ac8_0_comp_nf, 0x00000003, 23240 }, /* DBcc */ + { op_5ad0_0_comp_nf, 0x00000000, 23248 }, /* Scc */ + { op_5ad8_0_comp_nf, 0x00000000, 23256 }, /* Scc */ + { op_5ae0_0_comp_nf, 0x00000000, 23264 }, /* Scc */ + { op_5ae8_0_comp_nf, 0x00000002, 23272 }, /* Scc */ + { op_5af0_0_comp_nf, 0x00000002, 23280 }, /* Scc */ + { op_5af8_0_comp_nf, 0x00000002, 23288 }, /* Scc */ + { op_5af9_0_comp_nf, 0x00000002, 23289 }, /* Scc */ + { NULL, 0x00000001, 23290 }, /* TRAPcc */ + { NULL, 0x00000001, 23291 }, /* TRAPcc */ + { NULL, 0x00000001, 23292 }, /* TRAPcc */ + { op_5bc0_0_comp_nf, 0x00000000, 23488 }, /* Scc */ + { op_5bc8_0_comp_nf, 0x00000003, 23496 }, /* DBcc */ + { op_5bd0_0_comp_nf, 0x00000000, 23504 }, /* Scc */ + { op_5bd8_0_comp_nf, 0x00000000, 23512 }, /* Scc */ + { op_5be0_0_comp_nf, 0x00000000, 23520 }, /* Scc */ + { op_5be8_0_comp_nf, 0x00000002, 23528 }, /* Scc */ + { op_5bf0_0_comp_nf, 0x00000002, 23536 }, /* Scc */ + { op_5bf8_0_comp_nf, 0x00000002, 23544 }, /* Scc */ + { op_5bf9_0_comp_nf, 0x00000002, 23545 }, /* Scc */ + { NULL, 0x00000001, 23546 }, /* TRAPcc */ + { NULL, 0x00000001, 23547 }, /* TRAPcc */ + { NULL, 0x00000001, 23548 }, /* TRAPcc */ + { op_5cc0_0_comp_nf, 0x00000000, 23744 }, /* Scc */ + { op_5cc8_0_comp_nf, 0x00000003, 23752 }, /* DBcc */ + { op_5cd0_0_comp_nf, 0x00000000, 23760 }, /* Scc */ + { op_5cd8_0_comp_nf, 0x00000000, 23768 }, /* Scc */ + { op_5ce0_0_comp_nf, 0x00000000, 23776 }, /* Scc */ + { op_5ce8_0_comp_nf, 0x00000002, 23784 }, /* Scc */ + { op_5cf0_0_comp_nf, 0x00000002, 23792 }, /* Scc */ + { op_5cf8_0_comp_nf, 0x00000002, 23800 }, /* Scc */ + { op_5cf9_0_comp_nf, 0x00000002, 23801 }, /* Scc */ + { NULL, 0x00000001, 23802 }, /* TRAPcc */ + { NULL, 0x00000001, 23803 }, /* TRAPcc */ + { NULL, 0x00000001, 23804 }, /* TRAPcc */ + { op_5dc0_0_comp_nf, 0x00000000, 24000 }, /* Scc */ + { op_5dc8_0_comp_nf, 0x00000003, 24008 }, /* DBcc */ + { op_5dd0_0_comp_nf, 0x00000000, 24016 }, /* Scc */ + { op_5dd8_0_comp_nf, 0x00000000, 24024 }, /* Scc */ + { op_5de0_0_comp_nf, 0x00000000, 24032 }, /* Scc */ + { op_5de8_0_comp_nf, 0x00000002, 24040 }, /* Scc */ + { op_5df0_0_comp_nf, 0x00000002, 24048 }, /* Scc */ + { op_5df8_0_comp_nf, 0x00000002, 24056 }, /* Scc */ + { op_5df9_0_comp_nf, 0x00000002, 24057 }, /* Scc */ + { NULL, 0x00000001, 24058 }, /* TRAPcc */ + { NULL, 0x00000001, 24059 }, /* TRAPcc */ + { NULL, 0x00000001, 24060 }, /* TRAPcc */ + { op_5ec0_0_comp_nf, 0x00000000, 24256 }, /* Scc */ + { op_5ec8_0_comp_nf, 0x00000003, 24264 }, /* DBcc */ + { op_5ed0_0_comp_nf, 0x00000000, 24272 }, /* Scc */ + { op_5ed8_0_comp_nf, 0x00000000, 24280 }, /* Scc */ + { op_5ee0_0_comp_nf, 0x00000000, 24288 }, /* Scc */ + { op_5ee8_0_comp_nf, 0x00000002, 24296 }, /* Scc */ + { op_5ef0_0_comp_nf, 0x00000002, 24304 }, /* Scc */ + { op_5ef8_0_comp_nf, 0x00000002, 24312 }, /* Scc */ + { op_5ef9_0_comp_nf, 0x00000002, 24313 }, /* Scc */ + { NULL, 0x00000001, 24314 }, /* TRAPcc */ + { NULL, 0x00000001, 24315 }, /* TRAPcc */ + { NULL, 0x00000001, 24316 }, /* TRAPcc */ + { op_5fc0_0_comp_nf, 0x00000000, 24512 }, /* Scc */ + { op_5fc8_0_comp_nf, 0x00000003, 24520 }, /* DBcc */ + { op_5fd0_0_comp_nf, 0x00000000, 24528 }, /* Scc */ + { op_5fd8_0_comp_nf, 0x00000000, 24536 }, /* Scc */ + { op_5fe0_0_comp_nf, 0x00000000, 24544 }, /* Scc */ + { op_5fe8_0_comp_nf, 0x00000002, 24552 }, /* Scc */ + { op_5ff0_0_comp_nf, 0x00000002, 24560 }, /* Scc */ + { op_5ff8_0_comp_nf, 0x00000002, 24568 }, /* Scc */ + { op_5ff9_0_comp_nf, 0x00000002, 24569 }, /* Scc */ + { NULL, 0x00000001, 24570 }, /* TRAPcc */ + { NULL, 0x00000001, 24571 }, /* TRAPcc */ + { NULL, 0x00000001, 24572 }, /* TRAPcc */ + { op_6000_0_comp_nf, 0x00000012, 24576 }, /* Bcc */ + { op_6001_0_comp_nf, 0x00000010, 24577 }, /* Bcc */ + { op_60ff_0_comp_nf, 0x00000012, 24831 }, /* Bcc */ + { op_6100_0_comp_nf, 0x00000012, 24832 }, /* BSR */ + { op_6101_0_comp_nf, 0x00000010, 24833 }, /* BSR */ + { op_61ff_0_comp_nf, 0x00000012, 25087 }, /* BSR */ + { op_6200_0_comp_nf, 0x00000003, 25088 }, /* Bcc */ + { op_6201_0_comp_nf, 0x00000001, 25089 }, /* Bcc */ + { op_62ff_0_comp_nf, 0x00000003, 25343 }, /* Bcc */ + { op_6300_0_comp_nf, 0x00000003, 25344 }, /* Bcc */ + { op_6301_0_comp_nf, 0x00000001, 25345 }, /* Bcc */ + { op_63ff_0_comp_nf, 0x00000003, 25599 }, /* Bcc */ + { op_6400_0_comp_nf, 0x00000003, 25600 }, /* Bcc */ + { op_6401_0_comp_nf, 0x00000001, 25601 }, /* Bcc */ + { op_64ff_0_comp_nf, 0x00000003, 25855 }, /* Bcc */ + { op_6500_0_comp_nf, 0x00000003, 25856 }, /* Bcc */ + { op_6501_0_comp_nf, 0x00000001, 25857 }, /* Bcc */ + { op_65ff_0_comp_nf, 0x00000003, 26111 }, /* Bcc */ + { op_6600_0_comp_nf, 0x00000003, 26112 }, /* Bcc */ + { op_6601_0_comp_nf, 0x00000001, 26113 }, /* Bcc */ + { op_66ff_0_comp_nf, 0x00000003, 26367 }, /* Bcc */ + { op_6700_0_comp_nf, 0x00000003, 26368 }, /* Bcc */ + { op_6701_0_comp_nf, 0x00000001, 26369 }, /* Bcc */ + { op_67ff_0_comp_nf, 0x00000003, 26623 }, /* Bcc */ + { NULL, 0x00000003, 26624 }, /* Bcc */ + { NULL, 0x00000001, 26625 }, /* Bcc */ + { NULL, 0x00000003, 26879 }, /* Bcc */ + { NULL, 0x00000003, 26880 }, /* Bcc */ + { NULL, 0x00000001, 26881 }, /* Bcc */ + { NULL, 0x00000003, 27135 }, /* Bcc */ + { op_6a00_0_comp_nf, 0x00000003, 27136 }, /* Bcc */ + { op_6a01_0_comp_nf, 0x00000001, 27137 }, /* Bcc */ + { op_6aff_0_comp_nf, 0x00000003, 27391 }, /* Bcc */ + { op_6b00_0_comp_nf, 0x00000003, 27392 }, /* Bcc */ + { op_6b01_0_comp_nf, 0x00000001, 27393 }, /* Bcc */ + { op_6bff_0_comp_nf, 0x00000003, 27647 }, /* Bcc */ + { op_6c00_0_comp_nf, 0x00000003, 27648 }, /* Bcc */ + { op_6c01_0_comp_nf, 0x00000001, 27649 }, /* Bcc */ + { op_6cff_0_comp_nf, 0x00000003, 27903 }, /* Bcc */ + { op_6d00_0_comp_nf, 0x00000003, 27904 }, /* Bcc */ + { op_6d01_0_comp_nf, 0x00000001, 27905 }, /* Bcc */ + { op_6dff_0_comp_nf, 0x00000003, 28159 }, /* Bcc */ + { op_6e00_0_comp_nf, 0x00000003, 28160 }, /* Bcc */ + { op_6e01_0_comp_nf, 0x00000001, 28161 }, /* Bcc */ + { op_6eff_0_comp_nf, 0x00000003, 28415 }, /* Bcc */ + { op_6f00_0_comp_nf, 0x00000003, 28416 }, /* Bcc */ + { op_6f01_0_comp_nf, 0x00000001, 28417 }, /* Bcc */ + { op_6fff_0_comp_nf, 0x00000003, 28671 }, /* Bcc */ + { op_7000_0_comp_nf, 0x00000000, 28672 }, /* MOVE */ + { op_8000_0_comp_nf, 0x00000000, 32768 }, /* OR */ + { op_8010_0_comp_nf, 0x00000000, 32784 }, /* OR */ + { op_8018_0_comp_nf, 0x00000000, 32792 }, /* OR */ + { op_8020_0_comp_nf, 0x00000000, 32800 }, /* OR */ + { op_8028_0_comp_nf, 0x00000002, 32808 }, /* OR */ + { op_8030_0_comp_nf, 0x00000002, 32816 }, /* OR */ + { op_8038_0_comp_nf, 0x00000002, 32824 }, /* OR */ + { op_8039_0_comp_nf, 0x00000002, 32825 }, /* OR */ + { op_803a_0_comp_nf, 0x00000002, 32826 }, /* OR */ + { op_803b_0_comp_nf, 0x00000002, 32827 }, /* OR */ + { op_803c_0_comp_nf, 0x00000002, 32828 }, /* OR */ + { op_8040_0_comp_nf, 0x00000000, 32832 }, /* OR */ + { op_8050_0_comp_nf, 0x00000000, 32848 }, /* OR */ + { op_8058_0_comp_nf, 0x00000000, 32856 }, /* OR */ + { op_8060_0_comp_nf, 0x00000000, 32864 }, /* OR */ + { op_8068_0_comp_nf, 0x00000002, 32872 }, /* OR */ + { op_8070_0_comp_nf, 0x00000002, 32880 }, /* OR */ + { op_8078_0_comp_nf, 0x00000002, 32888 }, /* OR */ + { op_8079_0_comp_nf, 0x00000002, 32889 }, /* OR */ + { op_807a_0_comp_nf, 0x00000002, 32890 }, /* OR */ + { op_807b_0_comp_nf, 0x00000002, 32891 }, /* OR */ + { op_807c_0_comp_nf, 0x00000002, 32892 }, /* OR */ + { op_8080_0_comp_nf, 0x00000000, 32896 }, /* OR */ + { op_8090_0_comp_nf, 0x00000000, 32912 }, /* OR */ + { op_8098_0_comp_nf, 0x00000000, 32920 }, /* OR */ + { op_80a0_0_comp_nf, 0x00000000, 32928 }, /* OR */ + { op_80a8_0_comp_nf, 0x00000002, 32936 }, /* OR */ + { op_80b0_0_comp_nf, 0x00000002, 32944 }, /* OR */ + { op_80b8_0_comp_nf, 0x00000002, 32952 }, /* OR */ + { op_80b9_0_comp_nf, 0x00000002, 32953 }, /* OR */ + { op_80ba_0_comp_nf, 0x00000002, 32954 }, /* OR */ + { op_80bb_0_comp_nf, 0x00000002, 32955 }, /* OR */ + { op_80bc_0_comp_nf, 0x00000002, 32956 }, /* OR */ + { NULL, 0x00000001, 32960 }, /* DIVU */ + { NULL, 0x00000001, 32976 }, /* DIVU */ + { NULL, 0x00000001, 32984 }, /* DIVU */ + { NULL, 0x00000001, 32992 }, /* DIVU */ + { NULL, 0x00000003, 33000 }, /* DIVU */ + { NULL, 0x00000003, 33008 }, /* DIVU */ + { NULL, 0x00000003, 33016 }, /* DIVU */ + { NULL, 0x00000003, 33017 }, /* DIVU */ + { NULL, 0x00000003, 33018 }, /* DIVU */ + { NULL, 0x00000003, 33019 }, /* DIVU */ + { NULL, 0x00000003, 33020 }, /* DIVU */ + { NULL, 0x00000000, 33024 }, /* SBCD */ + { NULL, 0x00000000, 33032 }, /* SBCD */ + { op_8110_0_comp_nf, 0x00000000, 33040 }, /* OR */ + { op_8118_0_comp_nf, 0x00000000, 33048 }, /* OR */ + { op_8120_0_comp_nf, 0x00000000, 33056 }, /* OR */ + { op_8128_0_comp_nf, 0x00000002, 33064 }, /* OR */ + { op_8130_0_comp_nf, 0x00000002, 33072 }, /* OR */ + { op_8138_0_comp_nf, 0x00000002, 33080 }, /* OR */ + { op_8139_0_comp_nf, 0x00000002, 33081 }, /* OR */ + { NULL, 0x00000000, 33088 }, /* PACK */ + { NULL, 0x00000000, 33096 }, /* PACK */ + { op_8150_0_comp_nf, 0x00000000, 33104 }, /* OR */ + { op_8158_0_comp_nf, 0x00000000, 33112 }, /* OR */ + { op_8160_0_comp_nf, 0x00000000, 33120 }, /* OR */ + { op_8168_0_comp_nf, 0x00000002, 33128 }, /* OR */ + { op_8170_0_comp_nf, 0x00000002, 33136 }, /* OR */ + { op_8178_0_comp_nf, 0x00000002, 33144 }, /* OR */ + { op_8179_0_comp_nf, 0x00000002, 33145 }, /* OR */ + { NULL, 0x00000000, 33152 }, /* UNPK */ + { NULL, 0x00000000, 33160 }, /* UNPK */ + { op_8190_0_comp_nf, 0x00000000, 33168 }, /* OR */ + { op_8198_0_comp_nf, 0x00000000, 33176 }, /* OR */ + { op_81a0_0_comp_nf, 0x00000000, 33184 }, /* OR */ + { op_81a8_0_comp_nf, 0x00000002, 33192 }, /* OR */ + { op_81b0_0_comp_nf, 0x00000002, 33200 }, /* OR */ + { op_81b8_0_comp_nf, 0x00000002, 33208 }, /* OR */ + { op_81b9_0_comp_nf, 0x00000002, 33209 }, /* OR */ + { NULL, 0x00000001, 33216 }, /* DIVS */ + { NULL, 0x00000001, 33232 }, /* DIVS */ + { NULL, 0x00000001, 33240 }, /* DIVS */ + { NULL, 0x00000001, 33248 }, /* DIVS */ + { NULL, 0x00000001, 33256 }, /* DIVS */ + { NULL, 0x00000001, 33264 }, /* DIVS */ + { NULL, 0x00000001, 33272 }, /* DIVS */ + { NULL, 0x00000001, 33273 }, /* DIVS */ + { NULL, 0x00000001, 33274 }, /* DIVS */ + { NULL, 0x00000001, 33275 }, /* DIVS */ + { NULL, 0x00000001, 33276 }, /* DIVS */ + { op_9000_0_comp_nf, 0x00000000, 36864 }, /* SUB */ + { op_9010_0_comp_nf, 0x00000000, 36880 }, /* SUB */ + { op_9018_0_comp_nf, 0x00000000, 36888 }, /* SUB */ + { op_9020_0_comp_nf, 0x00000000, 36896 }, /* SUB */ + { op_9028_0_comp_nf, 0x00000002, 36904 }, /* SUB */ + { op_9030_0_comp_nf, 0x00000002, 36912 }, /* SUB */ + { op_9038_0_comp_nf, 0x00000002, 36920 }, /* SUB */ + { op_9039_0_comp_nf, 0x00000002, 36921 }, /* SUB */ + { op_903a_0_comp_nf, 0x00000002, 36922 }, /* SUB */ + { op_903b_0_comp_nf, 0x00000002, 36923 }, /* SUB */ + { op_903c_0_comp_nf, 0x00000002, 36924 }, /* SUB */ + { op_9040_0_comp_nf, 0x00000000, 36928 }, /* SUB */ + { op_9048_0_comp_nf, 0x00000000, 36936 }, /* SUB */ + { op_9050_0_comp_nf, 0x00000000, 36944 }, /* SUB */ + { op_9058_0_comp_nf, 0x00000000, 36952 }, /* SUB */ + { op_9060_0_comp_nf, 0x00000000, 36960 }, /* SUB */ + { op_9068_0_comp_nf, 0x00000002, 36968 }, /* SUB */ + { op_9070_0_comp_nf, 0x00000002, 36976 }, /* SUB */ + { op_9078_0_comp_nf, 0x00000002, 36984 }, /* SUB */ + { op_9079_0_comp_nf, 0x00000002, 36985 }, /* SUB */ + { op_907a_0_comp_nf, 0x00000002, 36986 }, /* SUB */ + { op_907b_0_comp_nf, 0x00000002, 36987 }, /* SUB */ + { op_907c_0_comp_nf, 0x00000002, 36988 }, /* SUB */ + { op_9080_0_comp_nf, 0x00000000, 36992 }, /* SUB */ + { op_9088_0_comp_nf, 0x00000000, 37000 }, /* SUB */ + { op_9090_0_comp_nf, 0x00000000, 37008 }, /* SUB */ + { op_9098_0_comp_nf, 0x00000000, 37016 }, /* SUB */ + { op_90a0_0_comp_nf, 0x00000000, 37024 }, /* SUB */ + { op_90a8_0_comp_nf, 0x00000002, 37032 }, /* SUB */ + { op_90b0_0_comp_nf, 0x00000002, 37040 }, /* SUB */ + { op_90b8_0_comp_nf, 0x00000002, 37048 }, /* SUB */ + { op_90b9_0_comp_nf, 0x00000002, 37049 }, /* SUB */ + { op_90ba_0_comp_nf, 0x00000002, 37050 }, /* SUB */ + { op_90bb_0_comp_nf, 0x00000002, 37051 }, /* SUB */ + { op_90bc_0_comp_nf, 0x00000002, 37052 }, /* SUB */ + { op_90c0_0_comp_nf, 0x00000000, 37056 }, /* SUBA */ + { op_90c8_0_comp_nf, 0x00000000, 37064 }, /* SUBA */ + { op_90d0_0_comp_nf, 0x00000000, 37072 }, /* SUBA */ + { op_90d8_0_comp_nf, 0x00000000, 37080 }, /* SUBA */ + { op_90e0_0_comp_nf, 0x00000000, 37088 }, /* SUBA */ + { op_90e8_0_comp_nf, 0x00000002, 37096 }, /* SUBA */ + { op_90f0_0_comp_nf, 0x00000002, 37104 }, /* SUBA */ + { op_90f8_0_comp_nf, 0x00000002, 37112 }, /* SUBA */ + { op_90f9_0_comp_nf, 0x00000002, 37113 }, /* SUBA */ + { op_90fa_0_comp_nf, 0x00000002, 37114 }, /* SUBA */ + { op_90fb_0_comp_nf, 0x00000002, 37115 }, /* SUBA */ + { op_90fc_0_comp_nf, 0x00000002, 37116 }, /* SUBA */ + { op_9100_0_comp_nf, 0x00000008, 37120 }, /* SUBX */ + { op_9108_0_comp_nf, 0x00000008, 37128 }, /* SUBX */ + { op_9110_0_comp_nf, 0x00000000, 37136 }, /* SUB */ + { op_9118_0_comp_nf, 0x00000000, 37144 }, /* SUB */ + { op_9120_0_comp_nf, 0x00000000, 37152 }, /* SUB */ + { op_9128_0_comp_nf, 0x00000002, 37160 }, /* SUB */ + { op_9130_0_comp_nf, 0x00000002, 37168 }, /* SUB */ + { op_9138_0_comp_nf, 0x00000002, 37176 }, /* SUB */ + { op_9139_0_comp_nf, 0x00000002, 37177 }, /* SUB */ + { op_9140_0_comp_nf, 0x00000008, 37184 }, /* SUBX */ + { op_9148_0_comp_nf, 0x00000008, 37192 }, /* SUBX */ + { op_9150_0_comp_nf, 0x00000000, 37200 }, /* SUB */ + { op_9158_0_comp_nf, 0x00000000, 37208 }, /* SUB */ + { op_9160_0_comp_nf, 0x00000000, 37216 }, /* SUB */ + { op_9168_0_comp_nf, 0x00000002, 37224 }, /* SUB */ + { op_9170_0_comp_nf, 0x00000002, 37232 }, /* SUB */ + { op_9178_0_comp_nf, 0x00000002, 37240 }, /* SUB */ + { op_9179_0_comp_nf, 0x00000002, 37241 }, /* SUB */ + { op_9180_0_comp_nf, 0x00000008, 37248 }, /* SUBX */ + { op_9188_0_comp_nf, 0x00000008, 37256 }, /* SUBX */ + { op_9190_0_comp_nf, 0x00000000, 37264 }, /* SUB */ + { op_9198_0_comp_nf, 0x00000000, 37272 }, /* SUB */ + { op_91a0_0_comp_nf, 0x00000000, 37280 }, /* SUB */ + { op_91a8_0_comp_nf, 0x00000002, 37288 }, /* SUB */ + { op_91b0_0_comp_nf, 0x00000002, 37296 }, /* SUB */ + { op_91b8_0_comp_nf, 0x00000002, 37304 }, /* SUB */ + { op_91b9_0_comp_nf, 0x00000002, 37305 }, /* SUB */ + { op_91c0_0_comp_nf, 0x00000000, 37312 }, /* SUBA */ + { op_91c8_0_comp_nf, 0x00000000, 37320 }, /* SUBA */ + { op_91d0_0_comp_nf, 0x00000000, 37328 }, /* SUBA */ + { op_91d8_0_comp_nf, 0x00000000, 37336 }, /* SUBA */ + { op_91e0_0_comp_nf, 0x00000000, 37344 }, /* SUBA */ + { op_91e8_0_comp_nf, 0x00000002, 37352 }, /* SUBA */ + { op_91f0_0_comp_nf, 0x00000002, 37360 }, /* SUBA */ + { op_91f8_0_comp_nf, 0x00000002, 37368 }, /* SUBA */ + { op_91f9_0_comp_nf, 0x00000002, 37369 }, /* SUBA */ + { op_91fa_0_comp_nf, 0x00000002, 37370 }, /* SUBA */ + { op_91fb_0_comp_nf, 0x00000002, 37371 }, /* SUBA */ + { op_91fc_0_comp_nf, 0x00000002, 37372 }, /* SUBA */ + { op_b000_0_comp_nf, 0x00000000, 45056 }, /* CMP */ + { op_b010_0_comp_nf, 0x00000000, 45072 }, /* CMP */ + { op_b018_0_comp_nf, 0x00000000, 45080 }, /* CMP */ + { op_b020_0_comp_nf, 0x00000000, 45088 }, /* CMP */ + { op_b028_0_comp_nf, 0x00000002, 45096 }, /* CMP */ + { op_b030_0_comp_nf, 0x00000002, 45104 }, /* CMP */ + { op_b038_0_comp_nf, 0x00000002, 45112 }, /* CMP */ + { op_b039_0_comp_nf, 0x00000002, 45113 }, /* CMP */ + { op_b03a_0_comp_nf, 0x00000002, 45114 }, /* CMP */ + { op_b03b_0_comp_nf, 0x00000002, 45115 }, /* CMP */ + { op_b03c_0_comp_nf, 0x00000002, 45116 }, /* CMP */ + { op_b040_0_comp_nf, 0x00000000, 45120 }, /* CMP */ + { op_b048_0_comp_nf, 0x00000000, 45128 }, /* CMP */ + { op_b050_0_comp_nf, 0x00000000, 45136 }, /* CMP */ + { op_b058_0_comp_nf, 0x00000000, 45144 }, /* CMP */ + { op_b060_0_comp_nf, 0x00000000, 45152 }, /* CMP */ + { op_b068_0_comp_nf, 0x00000002, 45160 }, /* CMP */ + { op_b070_0_comp_nf, 0x00000002, 45168 }, /* CMP */ + { op_b078_0_comp_nf, 0x00000002, 45176 }, /* CMP */ + { op_b079_0_comp_nf, 0x00000002, 45177 }, /* CMP */ + { op_b07a_0_comp_nf, 0x00000002, 45178 }, /* CMP */ + { op_b07b_0_comp_nf, 0x00000002, 45179 }, /* CMP */ + { op_b07c_0_comp_nf, 0x00000002, 45180 }, /* CMP */ + { op_b080_0_comp_nf, 0x00000000, 45184 }, /* CMP */ + { op_b088_0_comp_nf, 0x00000000, 45192 }, /* CMP */ + { op_b090_0_comp_nf, 0x00000000, 45200 }, /* CMP */ + { op_b098_0_comp_nf, 0x00000000, 45208 }, /* CMP */ + { op_b0a0_0_comp_nf, 0x00000000, 45216 }, /* CMP */ + { op_b0a8_0_comp_nf, 0x00000002, 45224 }, /* CMP */ + { op_b0b0_0_comp_nf, 0x00000002, 45232 }, /* CMP */ + { op_b0b8_0_comp_nf, 0x00000002, 45240 }, /* CMP */ + { op_b0b9_0_comp_nf, 0x00000002, 45241 }, /* CMP */ + { op_b0ba_0_comp_nf, 0x00000002, 45242 }, /* CMP */ + { op_b0bb_0_comp_nf, 0x00000002, 45243 }, /* CMP */ + { op_b0bc_0_comp_nf, 0x00000002, 45244 }, /* CMP */ + { op_b0c0_0_comp_nf, 0x00000000, 45248 }, /* CMPA */ + { op_b0c8_0_comp_nf, 0x00000000, 45256 }, /* CMPA */ + { op_b0d0_0_comp_nf, 0x00000000, 45264 }, /* CMPA */ + { op_b0d8_0_comp_nf, 0x00000000, 45272 }, /* CMPA */ + { op_b0e0_0_comp_nf, 0x00000000, 45280 }, /* CMPA */ + { op_b0e8_0_comp_nf, 0x00000002, 45288 }, /* CMPA */ + { op_b0f0_0_comp_nf, 0x00000002, 45296 }, /* CMPA */ + { op_b0f8_0_comp_nf, 0x00000002, 45304 }, /* CMPA */ + { op_b0f9_0_comp_nf, 0x00000002, 45305 }, /* CMPA */ + { op_b0fa_0_comp_nf, 0x00000002, 45306 }, /* CMPA */ + { op_b0fb_0_comp_nf, 0x00000002, 45307 }, /* CMPA */ + { op_b0fc_0_comp_nf, 0x00000002, 45308 }, /* CMPA */ + { op_b100_0_comp_nf, 0x00000000, 45312 }, /* EOR */ + { op_b108_0_comp_nf, 0x00000000, 45320 }, /* CMPM */ + { op_b110_0_comp_nf, 0x00000000, 45328 }, /* EOR */ + { op_b118_0_comp_nf, 0x00000000, 45336 }, /* EOR */ + { op_b120_0_comp_nf, 0x00000000, 45344 }, /* EOR */ + { op_b128_0_comp_nf, 0x00000002, 45352 }, /* EOR */ + { op_b130_0_comp_nf, 0x00000002, 45360 }, /* EOR */ + { op_b138_0_comp_nf, 0x00000002, 45368 }, /* EOR */ + { op_b139_0_comp_nf, 0x00000002, 45369 }, /* EOR */ + { op_b140_0_comp_nf, 0x00000000, 45376 }, /* EOR */ + { op_b148_0_comp_nf, 0x00000000, 45384 }, /* CMPM */ + { op_b150_0_comp_nf, 0x00000000, 45392 }, /* EOR */ + { op_b158_0_comp_nf, 0x00000000, 45400 }, /* EOR */ + { op_b160_0_comp_nf, 0x00000000, 45408 }, /* EOR */ + { op_b168_0_comp_nf, 0x00000002, 45416 }, /* EOR */ + { op_b170_0_comp_nf, 0x00000002, 45424 }, /* EOR */ + { op_b178_0_comp_nf, 0x00000002, 45432 }, /* EOR */ + { op_b179_0_comp_nf, 0x00000002, 45433 }, /* EOR */ + { op_b180_0_comp_nf, 0x00000000, 45440 }, /* EOR */ + { op_b188_0_comp_nf, 0x00000000, 45448 }, /* CMPM */ + { op_b190_0_comp_nf, 0x00000000, 45456 }, /* EOR */ + { op_b198_0_comp_nf, 0x00000000, 45464 }, /* EOR */ + { op_b1a0_0_comp_nf, 0x00000000, 45472 }, /* EOR */ + { op_b1a8_0_comp_nf, 0x00000002, 45480 }, /* EOR */ + { op_b1b0_0_comp_nf, 0x00000002, 45488 }, /* EOR */ + { op_b1b8_0_comp_nf, 0x00000002, 45496 }, /* EOR */ + { op_b1b9_0_comp_nf, 0x00000002, 45497 }, /* EOR */ + { op_b1c0_0_comp_nf, 0x00000000, 45504 }, /* CMPA */ + { op_b1c8_0_comp_nf, 0x00000000, 45512 }, /* CMPA */ + { op_b1d0_0_comp_nf, 0x00000000, 45520 }, /* CMPA */ + { op_b1d8_0_comp_nf, 0x00000000, 45528 }, /* CMPA */ + { op_b1e0_0_comp_nf, 0x00000000, 45536 }, /* CMPA */ + { op_b1e8_0_comp_nf, 0x00000002, 45544 }, /* CMPA */ + { op_b1f0_0_comp_nf, 0x00000002, 45552 }, /* CMPA */ + { op_b1f8_0_comp_nf, 0x00000002, 45560 }, /* CMPA */ + { op_b1f9_0_comp_nf, 0x00000002, 45561 }, /* CMPA */ + { op_b1fa_0_comp_nf, 0x00000002, 45562 }, /* CMPA */ + { op_b1fb_0_comp_nf, 0x00000002, 45563 }, /* CMPA */ + { op_b1fc_0_comp_nf, 0x00000002, 45564 }, /* CMPA */ + { op_c000_0_comp_nf, 0x00000000, 49152 }, /* AND */ + { op_c010_0_comp_nf, 0x00000000, 49168 }, /* AND */ + { op_c018_0_comp_nf, 0x00000000, 49176 }, /* AND */ + { op_c020_0_comp_nf, 0x00000000, 49184 }, /* AND */ + { op_c028_0_comp_nf, 0x00000002, 49192 }, /* AND */ + { op_c030_0_comp_nf, 0x00000002, 49200 }, /* AND */ + { op_c038_0_comp_nf, 0x00000002, 49208 }, /* AND */ + { op_c039_0_comp_nf, 0x00000002, 49209 }, /* AND */ + { op_c03a_0_comp_nf, 0x00000002, 49210 }, /* AND */ + { op_c03b_0_comp_nf, 0x00000002, 49211 }, /* AND */ + { op_c03c_0_comp_nf, 0x00000002, 49212 }, /* AND */ + { op_c040_0_comp_nf, 0x00000000, 49216 }, /* AND */ + { op_c050_0_comp_nf, 0x00000000, 49232 }, /* AND */ + { op_c058_0_comp_nf, 0x00000000, 49240 }, /* AND */ + { op_c060_0_comp_nf, 0x00000000, 49248 }, /* AND */ + { op_c068_0_comp_nf, 0x00000002, 49256 }, /* AND */ + { op_c070_0_comp_nf, 0x00000002, 49264 }, /* AND */ + { op_c078_0_comp_nf, 0x00000002, 49272 }, /* AND */ + { op_c079_0_comp_nf, 0x00000002, 49273 }, /* AND */ + { op_c07a_0_comp_nf, 0x00000002, 49274 }, /* AND */ + { op_c07b_0_comp_nf, 0x00000002, 49275 }, /* AND */ + { op_c07c_0_comp_nf, 0x00000002, 49276 }, /* AND */ + { op_c080_0_comp_nf, 0x00000000, 49280 }, /* AND */ + { op_c090_0_comp_nf, 0x00000000, 49296 }, /* AND */ + { op_c098_0_comp_nf, 0x00000000, 49304 }, /* AND */ + { op_c0a0_0_comp_nf, 0x00000000, 49312 }, /* AND */ + { op_c0a8_0_comp_nf, 0x00000002, 49320 }, /* AND */ + { op_c0b0_0_comp_nf, 0x00000002, 49328 }, /* AND */ + { op_c0b8_0_comp_nf, 0x00000002, 49336 }, /* AND */ + { op_c0b9_0_comp_nf, 0x00000002, 49337 }, /* AND */ + { op_c0ba_0_comp_nf, 0x00000002, 49338 }, /* AND */ + { op_c0bb_0_comp_nf, 0x00000002, 49339 }, /* AND */ + { op_c0bc_0_comp_nf, 0x00000002, 49340 }, /* AND */ + { op_c0c0_0_comp_nf, 0x00000000, 49344 }, /* MULU */ + { op_c0d0_0_comp_nf, 0x00000000, 49360 }, /* MULU */ + { op_c0d8_0_comp_nf, 0x00000000, 49368 }, /* MULU */ + { op_c0e0_0_comp_nf, 0x00000000, 49376 }, /* MULU */ + { op_c0e8_0_comp_nf, 0x00000002, 49384 }, /* MULU */ + { op_c0f0_0_comp_nf, 0x00000002, 49392 }, /* MULU */ + { op_c0f8_0_comp_nf, 0x00000002, 49400 }, /* MULU */ + { op_c0f9_0_comp_nf, 0x00000002, 49401 }, /* MULU */ + { op_c0fa_0_comp_nf, 0x00000002, 49402 }, /* MULU */ + { op_c0fb_0_comp_nf, 0x00000002, 49403 }, /* MULU */ + { op_c0fc_0_comp_nf, 0x00000002, 49404 }, /* MULU */ + { NULL, 0x00000000, 49408 }, /* ABCD */ + { NULL, 0x00000000, 49416 }, /* ABCD */ + { op_c110_0_comp_nf, 0x00000000, 49424 }, /* AND */ + { op_c118_0_comp_nf, 0x00000000, 49432 }, /* AND */ + { op_c120_0_comp_nf, 0x00000000, 49440 }, /* AND */ + { op_c128_0_comp_nf, 0x00000002, 49448 }, /* AND */ + { op_c130_0_comp_nf, 0x00000002, 49456 }, /* AND */ + { op_c138_0_comp_nf, 0x00000002, 49464 }, /* AND */ + { op_c139_0_comp_nf, 0x00000002, 49465 }, /* AND */ + { op_c140_0_comp_nf, 0x00000000, 49472 }, /* EXG */ + { op_c148_0_comp_nf, 0x00000000, 49480 }, /* EXG */ + { op_c150_0_comp_nf, 0x00000000, 49488 }, /* AND */ + { op_c158_0_comp_nf, 0x00000000, 49496 }, /* AND */ + { op_c160_0_comp_nf, 0x00000000, 49504 }, /* AND */ + { op_c168_0_comp_nf, 0x00000002, 49512 }, /* AND */ + { op_c170_0_comp_nf, 0x00000002, 49520 }, /* AND */ + { op_c178_0_comp_nf, 0x00000002, 49528 }, /* AND */ + { op_c179_0_comp_nf, 0x00000002, 49529 }, /* AND */ + { op_c188_0_comp_nf, 0x00000000, 49544 }, /* EXG */ + { op_c190_0_comp_nf, 0x00000000, 49552 }, /* AND */ + { op_c198_0_comp_nf, 0x00000000, 49560 }, /* AND */ + { op_c1a0_0_comp_nf, 0x00000000, 49568 }, /* AND */ + { op_c1a8_0_comp_nf, 0x00000002, 49576 }, /* AND */ + { op_c1b0_0_comp_nf, 0x00000002, 49584 }, /* AND */ + { op_c1b8_0_comp_nf, 0x00000002, 49592 }, /* AND */ + { op_c1b9_0_comp_nf, 0x00000002, 49593 }, /* AND */ + { op_c1c0_0_comp_nf, 0x00000000, 49600 }, /* MULS */ + { op_c1d0_0_comp_nf, 0x00000000, 49616 }, /* MULS */ + { op_c1d8_0_comp_nf, 0x00000000, 49624 }, /* MULS */ + { op_c1e0_0_comp_nf, 0x00000000, 49632 }, /* MULS */ + { op_c1e8_0_comp_nf, 0x00000002, 49640 }, /* MULS */ + { op_c1f0_0_comp_nf, 0x00000002, 49648 }, /* MULS */ + { op_c1f8_0_comp_nf, 0x00000002, 49656 }, /* MULS */ + { op_c1f9_0_comp_nf, 0x00000002, 49657 }, /* MULS */ + { op_c1fa_0_comp_nf, 0x00000002, 49658 }, /* MULS */ + { op_c1fb_0_comp_nf, 0x00000002, 49659 }, /* MULS */ + { op_c1fc_0_comp_nf, 0x00000002, 49660 }, /* MULS */ + { op_d000_0_comp_nf, 0x00000000, 53248 }, /* ADD */ + { op_d010_0_comp_nf, 0x00000000, 53264 }, /* ADD */ + { op_d018_0_comp_nf, 0x00000000, 53272 }, /* ADD */ + { op_d020_0_comp_nf, 0x00000000, 53280 }, /* ADD */ + { op_d028_0_comp_nf, 0x00000002, 53288 }, /* ADD */ + { op_d030_0_comp_nf, 0x00000002, 53296 }, /* ADD */ + { op_d038_0_comp_nf, 0x00000002, 53304 }, /* ADD */ + { op_d039_0_comp_nf, 0x00000002, 53305 }, /* ADD */ + { op_d03a_0_comp_nf, 0x00000002, 53306 }, /* ADD */ + { op_d03b_0_comp_nf, 0x00000002, 53307 }, /* ADD */ + { op_d03c_0_comp_nf, 0x00000002, 53308 }, /* ADD */ + { op_d040_0_comp_nf, 0x00000000, 53312 }, /* ADD */ + { op_d048_0_comp_nf, 0x00000000, 53320 }, /* ADD */ + { op_d050_0_comp_nf, 0x00000000, 53328 }, /* ADD */ + { op_d058_0_comp_nf, 0x00000000, 53336 }, /* ADD */ + { op_d060_0_comp_nf, 0x00000000, 53344 }, /* ADD */ + { op_d068_0_comp_nf, 0x00000002, 53352 }, /* ADD */ + { op_d070_0_comp_nf, 0x00000002, 53360 }, /* ADD */ + { op_d078_0_comp_nf, 0x00000002, 53368 }, /* ADD */ + { op_d079_0_comp_nf, 0x00000002, 53369 }, /* ADD */ + { op_d07a_0_comp_nf, 0x00000002, 53370 }, /* ADD */ + { op_d07b_0_comp_nf, 0x00000002, 53371 }, /* ADD */ + { op_d07c_0_comp_nf, 0x00000002, 53372 }, /* ADD */ + { op_d080_0_comp_nf, 0x00000000, 53376 }, /* ADD */ + { op_d088_0_comp_nf, 0x00000000, 53384 }, /* ADD */ + { op_d090_0_comp_nf, 0x00000000, 53392 }, /* ADD */ + { op_d098_0_comp_nf, 0x00000000, 53400 }, /* ADD */ + { op_d0a0_0_comp_nf, 0x00000000, 53408 }, /* ADD */ + { op_d0a8_0_comp_nf, 0x00000002, 53416 }, /* ADD */ + { op_d0b0_0_comp_nf, 0x00000002, 53424 }, /* ADD */ + { op_d0b8_0_comp_nf, 0x00000002, 53432 }, /* ADD */ + { op_d0b9_0_comp_nf, 0x00000002, 53433 }, /* ADD */ + { op_d0ba_0_comp_nf, 0x00000002, 53434 }, /* ADD */ + { op_d0bb_0_comp_nf, 0x00000002, 53435 }, /* ADD */ + { op_d0bc_0_comp_nf, 0x00000002, 53436 }, /* ADD */ + { op_d0c0_0_comp_nf, 0x00000000, 53440 }, /* ADDA */ + { op_d0c8_0_comp_nf, 0x00000000, 53448 }, /* ADDA */ + { op_d0d0_0_comp_nf, 0x00000000, 53456 }, /* ADDA */ + { op_d0d8_0_comp_nf, 0x00000000, 53464 }, /* ADDA */ + { op_d0e0_0_comp_nf, 0x00000000, 53472 }, /* ADDA */ + { op_d0e8_0_comp_nf, 0x00000002, 53480 }, /* ADDA */ + { op_d0f0_0_comp_nf, 0x00000002, 53488 }, /* ADDA */ + { op_d0f8_0_comp_nf, 0x00000002, 53496 }, /* ADDA */ + { op_d0f9_0_comp_nf, 0x00000002, 53497 }, /* ADDA */ + { op_d0fa_0_comp_nf, 0x00000002, 53498 }, /* ADDA */ + { op_d0fb_0_comp_nf, 0x00000002, 53499 }, /* ADDA */ + { op_d0fc_0_comp_nf, 0x00000002, 53500 }, /* ADDA */ + { op_d100_0_comp_nf, 0x00000008, 53504 }, /* ADDX */ + { op_d108_0_comp_nf, 0x00000008, 53512 }, /* ADDX */ + { op_d110_0_comp_nf, 0x00000000, 53520 }, /* ADD */ + { op_d118_0_comp_nf, 0x00000000, 53528 }, /* ADD */ + { op_d120_0_comp_nf, 0x00000000, 53536 }, /* ADD */ + { op_d128_0_comp_nf, 0x00000002, 53544 }, /* ADD */ + { op_d130_0_comp_nf, 0x00000002, 53552 }, /* ADD */ + { op_d138_0_comp_nf, 0x00000002, 53560 }, /* ADD */ + { op_d139_0_comp_nf, 0x00000002, 53561 }, /* ADD */ + { op_d140_0_comp_nf, 0x00000008, 53568 }, /* ADDX */ + { op_d148_0_comp_nf, 0x00000008, 53576 }, /* ADDX */ + { op_d150_0_comp_nf, 0x00000000, 53584 }, /* ADD */ + { op_d158_0_comp_nf, 0x00000000, 53592 }, /* ADD */ + { op_d160_0_comp_nf, 0x00000000, 53600 }, /* ADD */ + { op_d168_0_comp_nf, 0x00000002, 53608 }, /* ADD */ + { op_d170_0_comp_nf, 0x00000002, 53616 }, /* ADD */ + { op_d178_0_comp_nf, 0x00000002, 53624 }, /* ADD */ + { op_d179_0_comp_nf, 0x00000002, 53625 }, /* ADD */ + { op_d180_0_comp_nf, 0x00000008, 53632 }, /* ADDX */ + { op_d188_0_comp_nf, 0x00000008, 53640 }, /* ADDX */ + { op_d190_0_comp_nf, 0x00000000, 53648 }, /* ADD */ + { op_d198_0_comp_nf, 0x00000000, 53656 }, /* ADD */ + { op_d1a0_0_comp_nf, 0x00000000, 53664 }, /* ADD */ + { op_d1a8_0_comp_nf, 0x00000002, 53672 }, /* ADD */ + { op_d1b0_0_comp_nf, 0x00000002, 53680 }, /* ADD */ + { op_d1b8_0_comp_nf, 0x00000002, 53688 }, /* ADD */ + { op_d1b9_0_comp_nf, 0x00000002, 53689 }, /* ADD */ + { op_d1c0_0_comp_nf, 0x00000000, 53696 }, /* ADDA */ + { op_d1c8_0_comp_nf, 0x00000000, 53704 }, /* ADDA */ + { op_d1d0_0_comp_nf, 0x00000000, 53712 }, /* ADDA */ + { op_d1d8_0_comp_nf, 0x00000000, 53720 }, /* ADDA */ + { op_d1e0_0_comp_nf, 0x00000000, 53728 }, /* ADDA */ + { op_d1e8_0_comp_nf, 0x00000002, 53736 }, /* ADDA */ + { op_d1f0_0_comp_nf, 0x00000002, 53744 }, /* ADDA */ + { op_d1f8_0_comp_nf, 0x00000002, 53752 }, /* ADDA */ + { op_d1f9_0_comp_nf, 0x00000002, 53753 }, /* ADDA */ + { op_d1fa_0_comp_nf, 0x00000002, 53754 }, /* ADDA */ + { op_d1fb_0_comp_nf, 0x00000002, 53755 }, /* ADDA */ + { op_d1fc_0_comp_nf, 0x00000002, 53756 }, /* ADDA */ + { op_e000_0_comp_nf, 0x00000000, 57344 }, /* ASR */ + { op_e008_0_comp_nf, 0x00000000, 57352 }, /* LSR */ + { NULL, 0x00000008, 57360 }, /* ROXR */ + { op_e018_0_comp_nf, 0x00000000, 57368 }, /* ROR */ + { op_e020_0_comp_nf, 0x00000000, 57376 }, /* ASR */ + { op_e028_0_comp_nf, 0x00000000, 57384 }, /* LSR */ + { NULL, 0x00000008, 57392 }, /* ROXR */ + { op_e038_0_comp_nf, 0x00000000, 57400 }, /* ROR */ + { op_e040_0_comp_nf, 0x00000000, 57408 }, /* ASR */ + { op_e048_0_comp_nf, 0x00000000, 57416 }, /* LSR */ + { NULL, 0x00000008, 57424 }, /* ROXR */ + { op_e058_0_comp_nf, 0x00000000, 57432 }, /* ROR */ + { op_e060_0_comp_nf, 0x00000000, 57440 }, /* ASR */ + { op_e068_0_comp_nf, 0x00000000, 57448 }, /* LSR */ + { NULL, 0x00000008, 57456 }, /* ROXR */ + { op_e078_0_comp_nf, 0x00000000, 57464 }, /* ROR */ + { op_e080_0_comp_nf, 0x00000000, 57472 }, /* ASR */ + { op_e088_0_comp_nf, 0x00000000, 57480 }, /* LSR */ + { NULL, 0x00000008, 57488 }, /* ROXR */ + { op_e098_0_comp_nf, 0x00000000, 57496 }, /* ROR */ + { op_e0a0_0_comp_nf, 0x00000000, 57504 }, /* ASR */ + { op_e0a8_0_comp_nf, 0x00000000, 57512 }, /* LSR */ + { NULL, 0x00000008, 57520 }, /* ROXR */ + { op_e0b8_0_comp_nf, 0x00000000, 57528 }, /* ROR */ + { op_e0d0_0_comp_nf, 0x00000000, 57552 }, /* ASRW */ + { op_e0d8_0_comp_nf, 0x00000000, 57560 }, /* ASRW */ + { op_e0e0_0_comp_nf, 0x00000000, 57568 }, /* ASRW */ + { op_e0e8_0_comp_nf, 0x00000002, 57576 }, /* ASRW */ + { op_e0f0_0_comp_nf, 0x00000002, 57584 }, /* ASRW */ + { op_e0f8_0_comp_nf, 0x00000002, 57592 }, /* ASRW */ + { op_e0f9_0_comp_nf, 0x00000002, 57593 }, /* ASRW */ + { op_e100_0_comp_nf, 0x00000000, 57600 }, /* ASL */ + { op_e108_0_comp_nf, 0x00000000, 57608 }, /* LSL */ + { NULL, 0x00000008, 57616 }, /* ROXL */ + { op_e118_0_comp_nf, 0x00000000, 57624 }, /* ROL */ + { op_e120_0_comp_nf, 0x00000000, 57632 }, /* ASL */ + { op_e128_0_comp_nf, 0x00000000, 57640 }, /* LSL */ + { NULL, 0x00000008, 57648 }, /* ROXL */ + { op_e138_0_comp_nf, 0x00000000, 57656 }, /* ROL */ + { op_e140_0_comp_nf, 0x00000000, 57664 }, /* ASL */ + { op_e148_0_comp_nf, 0x00000000, 57672 }, /* LSL */ + { NULL, 0x00000008, 57680 }, /* ROXL */ + { op_e158_0_comp_nf, 0x00000000, 57688 }, /* ROL */ + { op_e160_0_comp_nf, 0x00000000, 57696 }, /* ASL */ + { op_e168_0_comp_nf, 0x00000000, 57704 }, /* LSL */ + { NULL, 0x00000008, 57712 }, /* ROXL */ + { op_e178_0_comp_nf, 0x00000000, 57720 }, /* ROL */ + { op_e180_0_comp_nf, 0x00000000, 57728 }, /* ASL */ + { op_e188_0_comp_nf, 0x00000000, 57736 }, /* LSL */ + { NULL, 0x00000008, 57744 }, /* ROXL */ + { op_e198_0_comp_nf, 0x00000000, 57752 }, /* ROL */ + { op_e1a0_0_comp_nf, 0x00000000, 57760 }, /* ASL */ + { op_e1a8_0_comp_nf, 0x00000000, 57768 }, /* LSL */ + { NULL, 0x00000008, 57776 }, /* ROXL */ + { op_e1b8_0_comp_nf, 0x00000000, 57784 }, /* ROL */ + { op_e1d0_0_comp_nf, 0x00000000, 57808 }, /* ASLW */ + { op_e1d8_0_comp_nf, 0x00000000, 57816 }, /* ASLW */ + { op_e1e0_0_comp_nf, 0x00000000, 57824 }, /* ASLW */ + { op_e1e8_0_comp_nf, 0x00000002, 57832 }, /* ASLW */ + { op_e1f0_0_comp_nf, 0x00000002, 57840 }, /* ASLW */ + { op_e1f8_0_comp_nf, 0x00000002, 57848 }, /* ASLW */ + { op_e1f9_0_comp_nf, 0x00000002, 57849 }, /* ASLW */ + { op_e2d0_0_comp_nf, 0x00000000, 58064 }, /* LSRW */ + { op_e2d8_0_comp_nf, 0x00000000, 58072 }, /* LSRW */ + { op_e2e0_0_comp_nf, 0x00000000, 58080 }, /* LSRW */ + { op_e2e8_0_comp_nf, 0x00000002, 58088 }, /* LSRW */ + { op_e2f0_0_comp_nf, 0x00000002, 58096 }, /* LSRW */ + { op_e2f8_0_comp_nf, 0x00000002, 58104 }, /* LSRW */ + { op_e2f9_0_comp_nf, 0x00000002, 58105 }, /* LSRW */ + { op_e3d0_0_comp_nf, 0x00000000, 58320 }, /* LSLW */ + { op_e3d8_0_comp_nf, 0x00000000, 58328 }, /* LSLW */ + { op_e3e0_0_comp_nf, 0x00000000, 58336 }, /* LSLW */ + { op_e3e8_0_comp_nf, 0x00000002, 58344 }, /* LSLW */ + { op_e3f0_0_comp_nf, 0x00000002, 58352 }, /* LSLW */ + { op_e3f8_0_comp_nf, 0x00000002, 58360 }, /* LSLW */ + { op_e3f9_0_comp_nf, 0x00000002, 58361 }, /* LSLW */ + { NULL, 0x00000008, 58576 }, /* ROXRW */ + { NULL, 0x00000008, 58584 }, /* ROXRW */ + { NULL, 0x00000008, 58592 }, /* ROXRW */ + { NULL, 0x0000000a, 58600 }, /* ROXRW */ + { NULL, 0x0000000a, 58608 }, /* ROXRW */ + { NULL, 0x0000000a, 58616 }, /* ROXRW */ + { NULL, 0x0000000a, 58617 }, /* ROXRW */ + { NULL, 0x00000008, 58832 }, /* ROXLW */ + { NULL, 0x00000008, 58840 }, /* ROXLW */ + { NULL, 0x00000008, 58848 }, /* ROXLW */ + { NULL, 0x0000000a, 58856 }, /* ROXLW */ + { NULL, 0x0000000a, 58864 }, /* ROXLW */ + { NULL, 0x0000000a, 58872 }, /* ROXLW */ + { NULL, 0x0000000a, 58873 }, /* ROXLW */ + { op_e6d0_0_comp_nf, 0x00000000, 59088 }, /* RORW */ + { op_e6d8_0_comp_nf, 0x00000000, 59096 }, /* RORW */ + { op_e6e0_0_comp_nf, 0x00000000, 59104 }, /* RORW */ + { op_e6e8_0_comp_nf, 0x00000002, 59112 }, /* RORW */ + { op_e6f0_0_comp_nf, 0x00000002, 59120 }, /* RORW */ + { op_e6f8_0_comp_nf, 0x00000002, 59128 }, /* RORW */ + { op_e6f9_0_comp_nf, 0x00000002, 59129 }, /* RORW */ + { op_e7d0_0_comp_nf, 0x00000000, 59344 }, /* ROLW */ + { op_e7d8_0_comp_nf, 0x00000000, 59352 }, /* ROLW */ + { op_e7e0_0_comp_nf, 0x00000000, 59360 }, /* ROLW */ + { op_e7e8_0_comp_nf, 0x00000002, 59368 }, /* ROLW */ + { op_e7f0_0_comp_nf, 0x00000002, 59376 }, /* ROLW */ + { op_e7f8_0_comp_nf, 0x00000002, 59384 }, /* ROLW */ + { op_e7f9_0_comp_nf, 0x00000002, 59385 }, /* ROLW */ + { NULL, 0x00000000, 59584 }, /* BFTST */ + { NULL, 0x00000000, 59600 }, /* BFTST */ + { NULL, 0x00000000, 59624 }, /* BFTST */ + { NULL, 0x00000000, 59632 }, /* BFTST */ + { NULL, 0x00000000, 59640 }, /* BFTST */ + { NULL, 0x00000000, 59641 }, /* BFTST */ + { NULL, 0x00000000, 59642 }, /* BFTST */ + { NULL, 0x00000000, 59643 }, /* BFTST */ + { NULL, 0x00000000, 59840 }, /* BFEXTU */ + { NULL, 0x00000000, 59856 }, /* BFEXTU */ + { NULL, 0x00000000, 59880 }, /* BFEXTU */ + { NULL, 0x00000000, 59888 }, /* BFEXTU */ + { NULL, 0x00000000, 59896 }, /* BFEXTU */ + { NULL, 0x00000000, 59897 }, /* BFEXTU */ + { NULL, 0x00000000, 59898 }, /* BFEXTU */ + { NULL, 0x00000000, 59899 }, /* BFEXTU */ + { NULL, 0x00000000, 60096 }, /* BFCHG */ + { NULL, 0x00000000, 60112 }, /* BFCHG */ + { NULL, 0x00000000, 60136 }, /* BFCHG */ + { NULL, 0x00000000, 60144 }, /* BFCHG */ + { NULL, 0x00000000, 60152 }, /* BFCHG */ + { NULL, 0x00000000, 60153 }, /* BFCHG */ + { NULL, 0x00000000, 60352 }, /* BFEXTS */ + { NULL, 0x00000000, 60368 }, /* BFEXTS */ + { NULL, 0x00000000, 60392 }, /* BFEXTS */ + { NULL, 0x00000000, 60400 }, /* BFEXTS */ + { NULL, 0x00000000, 60408 }, /* BFEXTS */ + { NULL, 0x00000000, 60409 }, /* BFEXTS */ + { NULL, 0x00000000, 60410 }, /* BFEXTS */ + { NULL, 0x00000000, 60411 }, /* BFEXTS */ + { NULL, 0x00000000, 60608 }, /* BFCLR */ + { NULL, 0x00000000, 60624 }, /* BFCLR */ + { NULL, 0x00000000, 60648 }, /* BFCLR */ + { NULL, 0x00000000, 60656 }, /* BFCLR */ + { NULL, 0x00000000, 60664 }, /* BFCLR */ + { NULL, 0x00000000, 60665 }, /* BFCLR */ + { NULL, 0x00000000, 60864 }, /* BFFFO */ + { NULL, 0x00000000, 60880 }, /* BFFFO */ + { NULL, 0x00000000, 60904 }, /* BFFFO */ + { NULL, 0x00000000, 60912 }, /* BFFFO */ + { NULL, 0x00000000, 60920 }, /* BFFFO */ + { NULL, 0x00000000, 60921 }, /* BFFFO */ + { NULL, 0x00000000, 60922 }, /* BFFFO */ + { NULL, 0x00000000, 60923 }, /* BFFFO */ + { NULL, 0x00000000, 61120 }, /* BFSET */ + { NULL, 0x00000000, 61136 }, /* BFSET */ + { NULL, 0x00000000, 61160 }, /* BFSET */ + { NULL, 0x00000000, 61168 }, /* BFSET */ + { NULL, 0x00000000, 61176 }, /* BFSET */ + { NULL, 0x00000000, 61177 }, /* BFSET */ + { NULL, 0x00000000, 61376 }, /* BFINS */ + { NULL, 0x00000000, 61392 }, /* BFINS */ + { NULL, 0x00000000, 61416 }, /* BFINS */ + { NULL, 0x00000000, 61424 }, /* BFINS */ + { NULL, 0x00000000, 61432 }, /* BFINS */ + { NULL, 0x00000000, 61433 }, /* BFINS */ + { NULL, 0x00000001, 61440 }, /* MMUOP030 */ + { NULL, 0x00000001, 61448 }, /* MMUOP030 */ + { NULL, 0x00000001, 61456 }, /* MMUOP030 */ + { NULL, 0x00000001, 61464 }, /* MMUOP030 */ + { NULL, 0x00000001, 61472 }, /* MMUOP030 */ + { NULL, 0x00000001, 61480 }, /* MMUOP030 */ + { NULL, 0x00000001, 61488 }, /* MMUOP030 */ + { NULL, 0x00000001, 61496 }, /* MMUOP030 */ + { NULL, 0x00000001, 61497 }, /* MMUOP030 */ + { NULL, 0x00000022, 61952 }, /* FPP */ + { NULL, 0x00000022, 61960 }, /* FPP */ + { NULL, 0x00000022, 61968 }, /* FPP */ + { NULL, 0x00000022, 61976 }, /* FPP */ + { NULL, 0x00000022, 61984 }, /* FPP */ + { NULL, 0x00000022, 61992 }, /* FPP */ + { NULL, 0x00000022, 62000 }, /* FPP */ + { NULL, 0x00000022, 62008 }, /* FPP */ + { NULL, 0x00000022, 62009 }, /* FPP */ + { NULL, 0x00000022, 62010 }, /* FPP */ + { NULL, 0x00000022, 62011 }, /* FPP */ + { NULL, 0x00000022, 62012 }, /* FPP */ + { NULL, 0x00000006, 62016 }, /* FScc */ + { NULL, 0x00000021, 62024 }, /* FDBcc */ + { NULL, 0x00000006, 62032 }, /* FScc */ + { NULL, 0x00000006, 62040 }, /* FScc */ + { NULL, 0x00000006, 62048 }, /* FScc */ + { NULL, 0x00000006, 62056 }, /* FScc */ + { NULL, 0x00000006, 62064 }, /* FScc */ + { NULL, 0x00000006, 62072 }, /* FScc */ + { NULL, 0x00000006, 62073 }, /* FScc */ + { NULL, 0x00000021, 62074 }, /* FTRAPcc */ + { NULL, 0x00000021, 62075 }, /* FTRAPcc */ + { NULL, 0x00000021, 62076 }, /* FTRAPcc */ + { NULL, 0x00000005, 62080 }, /* FBcc */ + { NULL, 0x00000005, 62144 }, /* FBcc */ + { NULL, 0x00000020, 62224 }, /* FSAVE */ + { NULL, 0x00000020, 62240 }, /* FSAVE */ + { NULL, 0x00000020, 62248 }, /* FSAVE */ + { NULL, 0x00000020, 62256 }, /* FSAVE */ + { NULL, 0x00000020, 62264 }, /* FSAVE */ + { NULL, 0x00000020, 62265 }, /* FSAVE */ + { NULL, 0x00000020, 62288 }, /* FRESTORE */ + { NULL, 0x00000020, 62296 }, /* FRESTORE */ + { NULL, 0x00000020, 62312 }, /* FRESTORE */ + { NULL, 0x00000020, 62320 }, /* FRESTORE */ + { NULL, 0x00000020, 62328 }, /* FRESTORE */ + { NULL, 0x00000020, 62329 }, /* FRESTORE */ + { NULL, 0x00000020, 62330 }, /* FRESTORE */ + { NULL, 0x00000020, 62331 }, /* FRESTORE */ + { NULL, 0x00000001, 62472 }, /* CINVL */ + { NULL, 0x00000001, 62480 }, /* CINVP */ + { NULL, 0x00000001, 62488 }, /* CINVA */ + { NULL, 0x00000001, 62489 }, /* CINVA */ + { NULL, 0x00000001, 62490 }, /* CINVA */ + { NULL, 0x00000001, 62491 }, /* CINVA */ + { NULL, 0x00000001, 62492 }, /* CINVA */ + { NULL, 0x00000001, 62493 }, /* CINVA */ + { NULL, 0x00000001, 62494 }, /* CINVA */ + { NULL, 0x00000001, 62495 }, /* CINVA */ + { NULL, 0x00000001, 62504 }, /* CPUSHL */ + { NULL, 0x00000001, 62512 }, /* CPUSHP */ + { NULL, 0x00000001, 62520 }, /* CPUSHA */ + { NULL, 0x00000001, 62521 }, /* CPUSHA */ + { NULL, 0x00000001, 62522 }, /* CPUSHA */ + { NULL, 0x00000001, 62523 }, /* CPUSHA */ + { NULL, 0x00000001, 62524 }, /* CPUSHA */ + { NULL, 0x00000001, 62525 }, /* CPUSHA */ + { NULL, 0x00000001, 62526 }, /* CPUSHA */ + { NULL, 0x00000001, 62527 }, /* CPUSHA */ + { NULL, 0x00000001, 62720 }, /* PFLUSHN */ + { NULL, 0x00000001, 62728 }, /* PFLUSH */ + { NULL, 0x00000001, 62736 }, /* PFLUSHAN */ + { NULL, 0x00000001, 62744 }, /* PFLUSHA */ + { NULL, 0x00000001, 62792 }, /* PTESTR */ + { NULL, 0x00000001, 62824 }, /* PTESTW */ + { NULL, 0x00000001, 62856 }, /* PLPAR */ + { NULL, 0x00000001, 62920 }, /* PLPAW */ + { op_f600_0_comp_nf, 0x00000002, 62976 }, /* MOVE16 */ + { op_f608_0_comp_nf, 0x00000002, 62984 }, /* MOVE16 */ + { op_f610_0_comp_nf, 0x00000002, 62992 }, /* MOVE16 */ + { op_f618_0_comp_nf, 0x00000002, 63000 }, /* MOVE16 */ + { op_f620_0_comp_nf, 0x00000002, 63008 }, /* MOVE16 */ + { NULL, 0x00000001, 63488 }, /* LPSTOP */ + { 0, 0,65536 } +}; #endif diff --git a/src/jit/gencomp_arm.cpp b/src/jit/gencomp_arm.cpp index 460df817..6442d590 100644 --- a/src/jit/gencomp_arm.cpp +++ b/src/jit/gencomp_arm.cpp @@ -6,7 +6,7 @@ * * Adaptation for ARAnyM/ARM, copyright 2001-2015 * Milan Jurik, Jens Heitmann - * + * * Basilisk II (C) 1997-2005 Christian Bauer * * This program is free software; you can redistribute it and/or modify @@ -155,36 +155,37 @@ static int comp_index = 0; #include "flags_arm.h" -static int cond_codes[] = { // - NATIVE_CC_AL, -1, // - NATIVE_CC_HI, NATIVE_CC_LS, // - NATIVE_CC_CC, NATIVE_CC_CS, // - NATIVE_CC_NE, NATIVE_CC_EQ, // - NATIVE_CC_VC, NATIVE_CC_VS, // - NATIVE_CC_PL, NATIVE_CC_MI, // - NATIVE_CC_GE, NATIVE_CC_LT, // - NATIVE_CC_GT, NATIVE_CC_LE // - }; - -static void comprintf(const char* format, ...) +static int cond_codes[] = // { - va_list args; + NATIVE_CC_AL, -1, // + NATIVE_CC_HI, NATIVE_CC_LS, // + NATIVE_CC_CC, NATIVE_CC_CS, // + NATIVE_CC_NE, NATIVE_CC_EQ, // + NATIVE_CC_VC, NATIVE_CC_VS, // + NATIVE_CC_PL, NATIVE_CC_MI, // + NATIVE_CC_GE, NATIVE_CC_LT, // + NATIVE_CC_GT, NATIVE_CC_LE // +}; - va_start(args, format); - comp_index += vsprintf(lines + comp_index, format, args); +static void comprintf(const char* format, ...) +{ + va_list args; + + va_start(args, format); + comp_index += vsprintf(lines + comp_index, format, args); } -static void com_discard(void) +static void com_discard(void) { - comp_index = 0; + comp_index = 0; } -static void com_flush(void) +static void com_flush(void) { - int i; - for (i = 0; i < comp_index; i++) - putchar(lines[i]); - com_discard(); + int i; + for (i = 0; i < comp_index; i++) + putchar(lines[i]); + com_discard(); } @@ -206,2619 +207,2873 @@ static int *opcode_next_clev; static int *opcode_last_postfix; static unsigned long *counts; -static void -read_counts(void) +static void +read_counts(void) { - FILE *file; - unsigned long opcode, count = 0, total; - char name[20]; - int nr = 0; - memset(counts, 0, 65536 * sizeof *counts); + FILE *file; + unsigned long opcode, count = 0, total; + char name[20]; + int nr = 0; + memset(counts, 0, 65536 * sizeof *counts); - file = fopen("frequent.68k", "r"); - if (file) - { - fscanf(file, "Total: %lu\n", &total); - while (fscanf(file, "%lx: %lu %s\n", &opcode, &count, name) == 3) + file = fopen("frequent.68k", "r"); + if (file) { - opcode_next_clev[nr] = 5; - opcode_last_postfix[nr] = -1; - opcode_map[nr++] = opcode; - counts[opcode] = count; - } - fclose(file); - } - if (nr == nr_cpuop_funcs) - return; - for (opcode = 0; opcode < 0x10000; opcode++) - { - if (table68k[opcode].handler == -1 && table68k[opcode].mnemo != i_ILLG - && counts[opcode] == 0) + fscanf(file, "Total: %lu\n", &total); + while (fscanf(file, "%lx: %lu %s\n", &opcode, &count, name) == 3) + { + opcode_next_clev[nr] = 5; + opcode_last_postfix[nr] = -1; + opcode_map[nr++] = opcode; + counts[opcode] = count; + } + fclose(file); + } + if (nr == nr_cpuop_funcs) + return; + for (opcode = 0; opcode < 0x10000; opcode++) { - opcode_next_clev[nr] = 5; - opcode_last_postfix[nr] = -1; - opcode_map[nr++] = opcode; - counts[opcode] = count; - } - } - if (nr != nr_cpuop_funcs) - abort(); + if (table68k[opcode].handler == -1 && table68k[opcode].mnemo != i_ILLG + && counts[opcode] == 0) + { + opcode_next_clev[nr] = 5; + opcode_last_postfix[nr] = -1; + opcode_map[nr++] = opcode; + counts[opcode] = count; + } + } + if (nr != nr_cpuop_funcs) + abort(); } static int n_braces = 0; static int insn_n_cycles; -static void -start_brace(void) +static void +start_brace(void) { - n_braces++; - comprintf("{"); + n_braces++; + comprintf("{"); } -static void -close_brace(void) +static void +close_brace(void) { - assert(n_braces > 0); - n_braces--; - comprintf("}"); + assert(n_braces > 0); + n_braces--; + comprintf("}"); } -static void -finish_braces(void) +static void +finish_braces(void) { - while (n_braces > 0) - close_brace(); + while (n_braces > 0) + close_brace(); } -static __inline__ void gen_update_next_handler(void) +static __inline__ void gen_update_next_handler(void) { - return; /* Can anything clever be done here? */ + return; /* Can anything clever be done here? */ } -static void gen_writebyte(const char* address, const char* source) +static void gen_writebyte(const char* address, const char* source) { - comprintf("\twritebyte(%s,%s,scratchie);\n", address, source); + comprintf("\twritebyte(%s,%s,scratchie);\n", address, source); } -static void gen_writeword(const char* address, const char* source) +static void gen_writeword(const char* address, const char* source) { - comprintf("\twriteword(%s,%s,scratchie);\n", address, source); + comprintf("\twriteword(%s,%s,scratchie);\n", address, source); } -static void gen_writelong(const char* address, const char* source) +static void gen_writelong(const char* address, const char* source) { - comprintf("\twritelong(%s,%s,scratchie);\n", address, source); + comprintf("\twritelong(%s,%s,scratchie);\n", address, source); } -static void gen_readbyte(const char* address, const char* dest) +static void gen_readbyte(const char* address, const char* dest) { - comprintf("\treadbyte(%s,%s,scratchie);\n", address, dest); + comprintf("\treadbyte(%s,%s,scratchie);\n", address, dest); } -static void gen_readword(const char* address, const char* dest) +static void gen_readword(const char* address, const char* dest) { - comprintf("\treadword(%s,%s,scratchie);\n", address, dest); + comprintf("\treadword(%s,%s,scratchie);\n", address, dest); } -static void gen_readlong(const char* address, const char* dest) +static void gen_readlong(const char* address, const char* dest) { - comprintf("\treadlong(%s,%s,scratchie);\n", address, dest); + comprintf("\treadlong(%s,%s,scratchie);\n", address, dest); } static const char * -gen_nextilong(void) +gen_nextilong(void) { - static char buffer[80]; + static char buffer[80]; - sprintf(buffer, "comp_get_ilong((m68k_pc_offset+=4)-4)"); - insn_n_cycles += 4; + sprintf(buffer, "comp_get_ilong((m68k_pc_offset+=4)-4)"); + insn_n_cycles += 4; - long_opcode = 1; - return buffer; + long_opcode = 1; + return buffer; } static const char * -gen_nextiword(void) +gen_nextiword(void) { - static char buffer[80]; + static char buffer[80]; - sprintf(buffer, "comp_get_iword((m68k_pc_offset+=2)-2)"); - insn_n_cycles += 2; + sprintf(buffer, "comp_get_iword((m68k_pc_offset+=2)-2)"); + insn_n_cycles += 2; - long_opcode = 1; - return buffer; + long_opcode = 1; + return buffer; } static const char * -gen_nextibyte(void) +gen_nextibyte(void) { - static char buffer[80]; + static char buffer[80]; - sprintf(buffer, "comp_get_ibyte((m68k_pc_offset+=2)-2)"); - insn_n_cycles += 2; + sprintf(buffer, "comp_get_ibyte((m68k_pc_offset+=2)-2)"); + insn_n_cycles += 2; - long_opcode = 1; - return buffer; + long_opcode = 1; + return buffer; } static void swap_opcode (void) { - /* no-op */ + /* no-op */ } -static void -sync_m68k_pc(void) +static void +sync_m68k_pc(void) { - comprintf("\t if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc();\n"); + comprintf("\t if (m68k_pc_offset>SYNC_PC_OFFSET) sync_m68k_pc();\n"); } /* getv == 1: fetch data; getv != 0: check for odd address. If movem != 0, * the calling routine handles Apdi and Aipi modes. * gb-- movem == 2 means the same thing but for a MOVE16 instruction */ -static void -genamode(amodes mode, const char *reg, wordsizes size, const char *name, int getv, int movem) +static void +genamode(amodes mode, const char *reg, wordsizes size, const char *name, int getv, int movem) { - start_brace(); - switch (mode) - { - case Dreg: /* Do we need to check dodgy here? */ - if (movem) - abort(); - if (getv == 1 || getv == 2) { - /* We generate the variable even for getv==2, so we can use - it as a destination for MOVE */ - comprintf("\tint %s=%s;\n", name, reg); - } - return; - - case Areg: - if (movem) - abort(); - if (getv == 1 || getv == 2) { - /* see above */ - comprintf("\tint %s=dodgy?scratchie++:%s+8;\n", name, reg); - if (getv == 1) { - comprintf("\tif (dodgy) \n"); - comprintf("\t\tmov_l_rr(%s,%s+8);\n", name, reg); - } - } - return; - - case Aind: - comprintf("\tint %sa=dodgy?scratchie++:%s+8;\n", name, reg); - comprintf("\tif (dodgy) \n"); - comprintf("\t\tmov_l_rr(%sa,%s+8);\n", name, reg); - break; - case Aipi: - comprintf("\tint %sa=scratchie++;\n", name, reg); - comprintf("\tmov_l_rr(%sa,%s+8);\n", name, reg); - break; - case Apdi: - switch (size) + start_brace(); + switch (mode) { - case sz_byte: - if (movem) { - comprintf("\tint %sa=dodgy?scratchie++:%s+8;\n", name, reg); - comprintf("\tif (dodgy) \n"); - comprintf("\tmov_l_rr(%sa,8+%s);\n", name, reg); - } - else { - start_brace(); - comprintf("\tint %sa=dodgy?scratchie++:%s+8;\n", name, reg); - comprintf("\tarm_SUB_l_ri8(%s+8,areg_byteinc[%s]);\n", reg, reg); - comprintf("\tif (dodgy) \n"); - comprintf("\tmov_l_rr(%sa,8+%s);\n", name, reg); - } - break; - case sz_word: - if (movem) { - comprintf("\tint %sa=dodgy?scratchie++:%s+8;\n", name, reg); - comprintf("\tif (dodgy) \n"); - comprintf("\tmov_l_rr(%sa,8+%s);\n", name, reg); - } - else { - start_brace(); - comprintf("\tint %sa=dodgy?scratchie++:%s+8;\n", name, reg); - comprintf("\tarm_SUB_l_ri8(%s+8,2);\n", reg); - comprintf("\tif (dodgy) \n"); - comprintf("\tmov_l_rr(%sa,8+%s);\n", name, reg); - } - break; - case sz_long: - if (movem) { - comprintf("\tint %sa=dodgy?scratchie++:%s+8;\n", name, reg); - comprintf("\tif (dodgy) \n"); - comprintf("\tmov_l_rr(%sa,8+%s);\n", name, reg); - } - else { - start_brace(); - comprintf("\tint %sa=dodgy?scratchie++:%s+8;\n", name, reg); - comprintf("\tarm_SUB_l_ri8(%s+8,4);\n", reg); - comprintf("\tif (dodgy) \n"); - comprintf("\tmov_l_rr(%sa,8+%s);\n", name, reg); - } - break; - default: - abort(); - } - break; - case Ad16: - comprintf("\tint %sa=scratchie++;\n", name); - comprintf("\tmov_l_rr(%sa,8+%s);\n", name, reg); - comprintf("\tlea_l_brr(%sa,%sa,(uae_s32)(uae_s16)%s);\n", name, name, gen_nextiword()); - break; - case Ad8r: - comprintf("\tint %sa=scratchie++;\n", name); - comprintf("\tcalc_disp_ea_020(%s+8,%s,%sa,scratchie);\n", - reg, gen_nextiword(), name); - break; + case Dreg: /* Do we need to check dodgy here? */ + if (movem) + abort(); + if (getv == 1 || getv == 2) + { + /* We generate the variable even for getv==2, so we can use + it as a destination for MOVE */ + comprintf("\tint %s=%s;\n", name, reg); + } + return; - case PC16: - comprintf("\tint %sa=scratchie++;\n", name); - comprintf("\tuae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset;\n"); - comprintf("\tuae_s32 PC16off = (uae_s32)(uae_s16)%s;\n", gen_nextiword()); - comprintf("\tmov_l_ri(%sa,address+PC16off);\n", name); - break; + case Areg: + if (movem) + abort(); + if (getv == 1 || getv == 2) + { + /* see above */ + comprintf("\tint %s=dodgy?scratchie++:%s+8;\n", name, reg); + if (getv == 1) + { + comprintf("\tif (dodgy) \n"); + comprintf("\t\tmov_l_rr(%s,%s+8);\n", name, reg); + } + } + return; - case PC8r: - comprintf("\tint pctmp=scratchie++;\n"); - comprintf("\tint %sa=scratchie++;\n", name); - comprintf("\tuae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset;\n"); - start_brace(); - comprintf("\tmov_l_ri(pctmp,address);\n"); + case Aind: + comprintf("\tint %sa=dodgy?scratchie++:%s+8;\n", name, reg); + comprintf("\tif (dodgy) \n"); + comprintf("\t\tmov_l_rr(%sa,%s+8);\n", name, reg); + break; + case Aipi: + comprintf("\tint %sa=scratchie++;\n", name, reg); + comprintf("\tmov_l_rr(%sa,%s+8);\n", name, reg); + break; + case Apdi: + switch (size) + { + case sz_byte: + if (movem) + { + comprintf("\tint %sa=dodgy?scratchie++:%s+8;\n", name, reg); + comprintf("\tif (dodgy) \n"); + comprintf("\tmov_l_rr(%sa,8+%s);\n", name, reg); + } + else + { + start_brace(); + comprintf("\tint %sa=dodgy?scratchie++:%s+8;\n", name, reg); + comprintf("\tarm_SUB_l_ri8(%s+8,areg_byteinc[%s]);\n", reg, reg); + comprintf("\tif (dodgy) \n"); + comprintf("\tmov_l_rr(%sa,8+%s);\n", name, reg); + } + break; + case sz_word: + if (movem) + { + comprintf("\tint %sa=dodgy?scratchie++:%s+8;\n", name, reg); + comprintf("\tif (dodgy) \n"); + comprintf("\tmov_l_rr(%sa,8+%s);\n", name, reg); + } + else + { + start_brace(); + comprintf("\tint %sa=dodgy?scratchie++:%s+8;\n", name, reg); + comprintf("\tarm_SUB_l_ri8(%s+8,2);\n", reg); + comprintf("\tif (dodgy) \n"); + comprintf("\tmov_l_rr(%sa,8+%s);\n", name, reg); + } + break; + case sz_long: + if (movem) + { + comprintf("\tint %sa=dodgy?scratchie++:%s+8;\n", name, reg); + comprintf("\tif (dodgy) \n"); + comprintf("\tmov_l_rr(%sa,8+%s);\n", name, reg); + } + else + { + start_brace(); + comprintf("\tint %sa=dodgy?scratchie++:%s+8;\n", name, reg); + comprintf("\tarm_SUB_l_ri8(%s+8,4);\n", reg); + comprintf("\tif (dodgy) \n"); + comprintf("\tmov_l_rr(%sa,8+%s);\n", name, reg); + } + break; + default: + abort(); + } + break; + case Ad16: + comprintf("\tint %sa=scratchie++;\n", name); + comprintf("\tmov_l_rr(%sa,8+%s);\n", name, reg); + comprintf("\tlea_l_brr(%sa,%sa,(uae_s32)(uae_s16)%s);\n", name, name, gen_nextiword()); + break; + case Ad8r: + comprintf("\tint %sa=scratchie++;\n", name); + comprintf("\tcalc_disp_ea_020(%s+8,%s,%sa,scratchie);\n", + reg, gen_nextiword(), name); + break; - comprintf("\tcalc_disp_ea_020(pctmp,%s,%sa,scratchie);\n", - gen_nextiword(), name); - break; - case absw: - comprintf("\tint %sa = scratchie++;\n", name); - comprintf("\tmov_l_ri(%sa,(uae_s32)(uae_s16)%s);\n", name, gen_nextiword()); - break; - case absl: - comprintf("\tint %sa = scratchie++;\n", name); - comprintf("\tmov_l_ri(%sa,%s); /* absl */\n", name, gen_nextilong()); - break; - case imm: - if (getv != 1) - abort(); - switch (size) + case PC16: + comprintf("\tint %sa=scratchie++;\n", name); + comprintf("\tuae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset;\n"); + comprintf("\tuae_s32 PC16off = (uae_s32)(uae_s16)%s;\n", gen_nextiword()); + comprintf("\tmov_l_ri(%sa,address+PC16off);\n", name); + break; + + case PC8r: + comprintf("\tint pctmp=scratchie++;\n"); + comprintf("\tint %sa=scratchie++;\n", name); + comprintf("\tuae_u32 address=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset;\n"); + start_brace(); + comprintf("\tmov_l_ri(pctmp,address);\n"); + + comprintf("\tcalc_disp_ea_020(pctmp,%s,%sa,scratchie);\n", + gen_nextiword(), name); + break; + case absw: + comprintf("\tint %sa = scratchie++;\n", name); + comprintf("\tmov_l_ri(%sa,(uae_s32)(uae_s16)%s);\n", name, gen_nextiword()); + break; + case absl: + comprintf("\tint %sa = scratchie++;\n", name); + comprintf("\tmov_l_ri(%sa,%s); /* absl */\n", name, gen_nextilong()); + break; + case imm: + if (getv != 1) + abort(); + switch (size) + { + case sz_byte: + comprintf("\tint %s = scratchie++;\n", name); + comprintf("\tmov_l_ri(%s,(uae_s32)(uae_s8)%s);\n", name, gen_nextibyte()); + break; + case sz_word: + comprintf("\tint %s = scratchie++;\n", name); + comprintf("\tmov_l_ri(%s,(uae_s32)(uae_s16)%s);\n", name, gen_nextiword()); + break; + case sz_long: + comprintf("\tint %s = scratchie++;\n", name); + comprintf("\tmov_l_ri(%s,%s);\n", name, gen_nextilong()); + break; + default: + abort(); + } + return; + case imm0: + if (getv != 1) + abort(); + comprintf("\tint %s = scratchie++;\n", name); + comprintf("\tmov_l_ri(%s,(uae_s32)(uae_s8)%s);\n", name, gen_nextibyte()); + return; + case imm1: + if (getv != 1) + abort(); + comprintf("\tint %s = scratchie++;\n", name); + comprintf("\tmov_l_ri(%s,(uae_s32)(uae_s16)%s);\n", name, gen_nextiword()); + return; + case imm2: + if (getv != 1) + abort(); + comprintf("\tint %s = scratchie++;\n", name); + comprintf("\tmov_l_ri(%s,%s);\n", name, gen_nextilong()); + return; + case immi: + if (getv != 1) + abort(); + comprintf("\tint %s = scratchie++;\n", name); + comprintf("\tmov_l_ri(%s,%s);\n", name, reg); + return; + default: + abort(); + } + + /* We get here for all non-reg non-immediate addressing modes to + * actually fetch the value. */ + if (getv == 1) { - case sz_byte: - comprintf("\tint %s = scratchie++;\n", name); - comprintf("\tmov_l_ri(%s,(uae_s32)(uae_s8)%s);\n", name, gen_nextibyte()); - break; - case sz_word: - comprintf("\tint %s = scratchie++;\n", name); - comprintf("\tmov_l_ri(%s,(uae_s32)(uae_s16)%s);\n", name, gen_nextiword()); - break; - case sz_long: - comprintf("\tint %s = scratchie++;\n", name); - comprintf("\tmov_l_ri(%s,%s);\n", name, gen_nextilong()); - break; - default: - abort(); - } - return; - case imm0: - if (getv != 1) - abort(); - comprintf("\tint %s = scratchie++;\n", name); - comprintf("\tmov_l_ri(%s,(uae_s32)(uae_s8)%s);\n", name, gen_nextibyte()); - return; - case imm1: - if (getv != 1) - abort(); - comprintf("\tint %s = scratchie++;\n", name); - comprintf("\tmov_l_ri(%s,(uae_s32)(uae_s16)%s);\n", name, gen_nextiword()); - return; - case imm2: - if (getv != 1) - abort(); - comprintf("\tint %s = scratchie++;\n", name); - comprintf("\tmov_l_ri(%s,%s);\n", name, gen_nextilong()); - return; - case immi: - if (getv != 1) - abort(); - comprintf("\tint %s = scratchie++;\n", name); - comprintf("\tmov_l_ri(%s,%s);\n", name, reg); - return; - default: - abort(); - } + char astring[80]; + sprintf(astring, "%sa", name); + switch (size) + { + case sz_byte: + insn_n_cycles += 2; + break; + case sz_word: + insn_n_cycles += 2; + break; + case sz_long: + insn_n_cycles += 4; + break; + default: + abort(); + } + start_brace(); + comprintf("\tint %s=scratchie++;\n", name); + switch (size) + { + case sz_byte: + gen_readbyte(astring, name); + break; + case sz_word: + gen_readword(astring, name); + break; + case sz_long: + gen_readlong(astring, name); + break; + default: + abort(); + } + } - /* We get here for all non-reg non-immediate addressing modes to - * actually fetch the value. */ - if (getv == 1) - { - char astring[80]; - sprintf(astring, "%sa", name); - switch (size) + /* We now might have to fix up the register for pre-dec or post-inc + * addressing modes. */ + if (!movem) { - case sz_byte: - insn_n_cycles += 2; - break; - case sz_word: - insn_n_cycles += 2; - break; - case sz_long: - insn_n_cycles += 4; - break; - default: - abort(); - } - start_brace(); - comprintf("\tint %s=scratchie++;\n", name); - switch (size) - { - case sz_byte: - gen_readbyte(astring, name); - break; - case sz_word: - gen_readword(astring, name); - break; - case sz_long: - gen_readlong(astring, name); - break; - default: - abort(); - } - } - - /* We now might have to fix up the register for pre-dec or post-inc - * addressing modes. */ - if (!movem) { - switch (mode) - { - case Aipi: - switch (size) - { - case sz_byte: - comprintf("\tarm_ADD_l_ri8(%s+8,areg_byteinc[%s]);\n", reg, reg); - break; - case sz_word: - comprintf("\tarm_ADD_l_ri8(%s+8,2);\n", reg); - break; - case sz_long: - comprintf("\tarm_ADD_l_ri8(%s+8,4);\n", reg); - break; - default: - abort(); - } - break; - case Apdi: - break; - default: - break; - } - } + switch (mode) + { + case Aipi: + switch (size) + { + case sz_byte: + comprintf("\tarm_ADD_l_ri8(%s+8,areg_byteinc[%s]);\n", reg, reg); + break; + case sz_word: + comprintf("\tarm_ADD_l_ri8(%s+8,2);\n", reg); + break; + case sz_long: + comprintf("\tarm_ADD_l_ri8(%s+8,4);\n", reg); + break; + default: + abort(); + } + break; + case Apdi: + break; + default: + break; + } + } } -static void -genastore(const char *from, amodes mode, const char *reg, wordsizes size, const char *to) +static void +genastore(const char *from, amodes mode, const char *reg, wordsizes size, const char *to) { - switch (mode) - { - case Dreg: - switch (size) + switch (mode) { - case sz_byte: - comprintf("\tif(%s!=%s)\n", reg, from); - comprintf("\t\tmov_b_rr(%s,%s);\n", reg, from); - break; - case sz_word: - comprintf("\tif(%s!=%s)\n", reg, from); - comprintf("\t\tmov_w_rr(%s,%s);\n", reg, from); - break; - case sz_long: - comprintf("\tif(%s!=%s)\n", reg, from); - comprintf("\t\tmov_l_rr(%s,%s);\n", reg, from); - break; - default: - abort(); - } - break; - case Areg: - switch (size) - { - case sz_word: - comprintf("\tif(%s+8!=%s)\n", reg, from); - comprintf("\t\tmov_w_rr(%s+8,%s);\n", reg, from); - break; - case sz_long: - comprintf("\tif(%s+8!=%s)\n", reg, from); - comprintf("\t\tmov_l_rr(%s+8,%s);\n", reg, from); - break; - default: - abort(); - } - break; + case Dreg: + switch (size) + { + case sz_byte: + comprintf("\tif(%s!=%s)\n", reg, from); + comprintf("\t\tmov_b_rr(%s,%s);\n", reg, from); + break; + case sz_word: + comprintf("\tif(%s!=%s)\n", reg, from); + comprintf("\t\tmov_w_rr(%s,%s);\n", reg, from); + break; + case sz_long: + comprintf("\tif(%s!=%s)\n", reg, from); + comprintf("\t\tmov_l_rr(%s,%s);\n", reg, from); + break; + default: + abort(); + } + break; + case Areg: + switch (size) + { + case sz_word: + comprintf("\tif(%s+8!=%s)\n", reg, from); + comprintf("\t\tmov_w_rr(%s+8,%s);\n", reg, from); + break; + case sz_long: + comprintf("\tif(%s+8!=%s)\n", reg, from); + comprintf("\t\tmov_l_rr(%s+8,%s);\n", reg, from); + break; + default: + abort(); + } + break; - case Apdi: - case absw: - case PC16: - case PC8r: - case Ad16: - case Ad8r: - case Aipi: - case Aind: - case absl: - { - char astring[80]; - sprintf(astring, "%sa", to); - - switch (size) + case Apdi: + case absw: + case PC16: + case PC8r: + case Ad16: + case Ad8r: + case Aipi: + case Aind: + case absl: { - case sz_byte: - insn_n_cycles += 2; - gen_writebyte(astring, from); - break; - case sz_word: - insn_n_cycles += 2; - gen_writeword(astring, from); - break; - case sz_long: - insn_n_cycles += 4; - gen_writelong(astring, from); - break; - default: - abort(); - } - } - break; - case imm: - case imm0: - case imm1: - case imm2: - case immi: - abort(); - break; - default: - abort(); - } + char astring[80]; + sprintf(astring, "%sa", to); + + switch (size) + { + case sz_byte: + insn_n_cycles += 2; + gen_writebyte(astring, from); + break; + case sz_word: + insn_n_cycles += 2; + gen_writeword(astring, from); + break; + case sz_long: + insn_n_cycles += 4; + gen_writelong(astring, from); + break; + default: + abort(); + } + } + break; + case imm: + case imm0: + case imm1: + case imm2: + case immi: + abort(); + break; + default: + abort(); + } } -static void gen_move16(uae_u32 opcode, struct instr *curi) +static void gen_move16(uae_u32 opcode, struct instr *curi) { - mayfail; - comprintf("if (special_mem) {\n"); - comprintf(" FAIL(1);\n"); - comprintf(" " RETURN "\n"); - comprintf("} \n"); + mayfail; + comprintf("if (special_mem) {\n"); + comprintf(" FAIL(1);\n"); + comprintf(" " RETURN "\n"); + comprintf("} \n"); - comprintf("\tint src=scratchie++;\n"); - comprintf("\tint dst=scratchie++;\n"); + comprintf("\tint src=scratchie++;\n"); + comprintf("\tint dst=scratchie++;\n"); - uae_u32 masked_op = (opcode & 0xfff8); - if (masked_op == 0xf620) { - // POSTINCREMENT SOURCE AND DESTINATION version: MOVE16 (Ax)+,(Ay)+ - comprintf("\t uae_u16 dstreg = ((%s)>>12) & 0x07;\n", gen_nextiword()); - comprintf("\t jnf_MOVE(src, srcreg + 8);\n"); - comprintf("\t jnf_MOVE(dst, dstreg + 8);\n"); - comprintf("\t if (srcreg != dstreg)\n"); - comprintf("\t jnf_ADD_im8(srcreg + 8, srcreg + 8, 16);\n"); - comprintf("\t jnf_ADD_im8(dstreg + 8, dstreg + 8, 16);\n"); - } else { - /* Other variants */ - genamode(curi->smode, "srcreg", curi->size, "src", 0, 2); - genamode(curi->dmode, "dstreg", curi->size, "dst", 0, 2); - switch (masked_op) { - case 0xf600: - comprintf("\t jnf_ADD_im8(srcreg + 8, srcreg + 8, 16);\n"); - break; - case 0xf608: - comprintf("\t jnf_ADD_im8(dstreg + 8, dstreg + 8, 16);\n"); - break; - } - } - comprintf("\tjnf_MOVE16(dst, src);\n"); + uae_u32 masked_op = (opcode & 0xfff8); + if (masked_op == 0xf620) + { + // POSTINCREMENT SOURCE AND DESTINATION version: MOVE16 (Ax)+,(Ay)+ + comprintf("\t uae_u16 dstreg = ((%s)>>12) & 0x07;\n", gen_nextiword()); + comprintf("\t jnf_MOVE(src, srcreg + 8);\n"); + comprintf("\t jnf_MOVE(dst, dstreg + 8);\n"); + comprintf("\t if (srcreg != dstreg)\n"); + comprintf("\t jnf_ADD_im8(srcreg + 8, srcreg + 8, 16);\n"); + comprintf("\t jnf_ADD_im8(dstreg + 8, dstreg + 8, 16);\n"); + } + else + { + /* Other variants */ + genamode(curi->smode, "srcreg", curi->size, "src", 0, 2); + genamode(curi->dmode, "dstreg", curi->size, "dst", 0, 2); + switch (masked_op) + { + case 0xf600: + comprintf("\t jnf_ADD_im8(srcreg + 8, srcreg + 8, 16);\n"); + break; + case 0xf608: + comprintf("\t jnf_ADD_im8(dstreg + 8, dstreg + 8, 16);\n"); + break; + } + } + comprintf("\tjnf_MOVE16(dst, src);\n"); } -static void -genmovemel(uae_u16 opcode) +static void +genmovemel(uae_u16 opcode) { - comprintf("\tuae_u16 mask = %s;\n", gen_nextiword()); - comprintf("\tint native=scratchie++;\n"); - comprintf("\tint i;\n"); - comprintf("\tsigned char offset=0;\n"); - genamode(table68k[opcode].dmode, "dstreg", table68k[opcode].size, "src", 2, 1); - comprintf("\tif (!special_mem) {\n"); + comprintf("\tuae_u16 mask = %s;\n", gen_nextiword()); + comprintf("\tint native=scratchie++;\n"); + comprintf("\tint i;\n"); + comprintf("\tsigned char offset=0;\n"); + genamode(table68k[opcode].dmode, "dstreg", table68k[opcode].size, "src", 2, 1); + comprintf("\tif (!special_mem) {\n"); - /* Fast but unsafe... */ - comprintf("\tget_n_addr(srca,native,scratchie);\n"); + /* Fast but unsafe... */ + comprintf("\tget_n_addr(srca,native,scratchie);\n"); - comprintf("\tfor (i=0;i<16;i++) {\n" - "\t\tif ((mask>>i)&1) {\n"); - switch (table68k[opcode].size) { - case sz_long: - comprintf("\t\t\tjnf_MVMEL_l(i,native,offset);\n" - "\t\t\toffset+=4;\n"); - break; - case sz_word: - comprintf("\t\t\tjnf_MVMEL_w(i,native,offset);\n" - "\t\t\toffset+=2;\n"); - break; - default: abort(); - } - comprintf("\t\t}\n" - "\t}"); - if (table68k[opcode].dmode == Aipi) { - comprintf("\t\t\tjnf_ADD_im8(8+dstreg,srca,offset);\n"); - } - /* End fast but unsafe. */ - - comprintf("\t} else {\n"); - - comprintf ("\t\tint tmp=scratchie++;\n"); - - comprintf("\t\tmov_l_rr(tmp,srca);\n"); - comprintf("\t\tfor (i=0;i<16;i++) {\n" - "\t\t\tif ((mask>>i)&1) {\n"); - switch(table68k[opcode].size) { + comprintf("\tfor (i=0;i<16;i++) {\n" + "\t\tif ((mask>>i)&1) {\n"); + switch (table68k[opcode].size) + { case sz_long: - comprintf("\t\t\t\treadlong(tmp,i,scratchie);\n" - "\t\t\t\tarm_ADD_l_ri8(tmp,4);\n"); - break; + comprintf("\t\t\tjnf_MVMEL_l(i,native,offset);\n" + "\t\t\toffset+=4;\n"); + break; case sz_word: - comprintf("\t\t\t\treadword(tmp,i,scratchie);\n" - "\t\t\t\tarm_ADD_l_ri8(tmp,2);\n"); - break; - default: abort(); - } + comprintf("\t\t\tjnf_MVMEL_w(i,native,offset);\n" + "\t\t\toffset+=2;\n"); + break; + default: + abort(); + } + comprintf("\t\t}\n" + "\t}"); + if (table68k[opcode].dmode == Aipi) + { + comprintf("\t\t\tjnf_ADD_im8(8+dstreg,srca,offset);\n"); + } + /* End fast but unsafe. */ - comprintf("\t\t\t}\n" - "\t\t}\n"); - if (table68k[opcode].dmode == Aipi) { - comprintf("\t\tmov_l_rr(8+dstreg,tmp);\n"); - } - comprintf("\t}\n"); + comprintf("\t} else {\n"); + + comprintf ("\t\tint tmp=scratchie++;\n"); + + comprintf("\t\tmov_l_rr(tmp,srca);\n"); + comprintf("\t\tfor (i=0;i<16;i++) {\n" + "\t\t\tif ((mask>>i)&1) {\n"); + switch(table68k[opcode].size) + { + case sz_long: + comprintf("\t\t\t\treadlong(tmp,i,scratchie);\n" + "\t\t\t\tarm_ADD_l_ri8(tmp,4);\n"); + break; + case sz_word: + comprintf("\t\t\t\treadword(tmp,i,scratchie);\n" + "\t\t\t\tarm_ADD_l_ri8(tmp,2);\n"); + break; + default: + abort(); + } + + comprintf("\t\t\t}\n" + "\t\t}\n"); + if (table68k[opcode].dmode == Aipi) + { + comprintf("\t\tmov_l_rr(8+dstreg,tmp);\n"); + } + comprintf("\t}\n"); } -static void -genmovemle(uae_u16 opcode) +static void +genmovemle(uae_u16 opcode) { - comprintf("\tuae_u16 mask = %s;\n", gen_nextiword()); - comprintf("\tint native=scratchie++;\n"); - comprintf("\tint i;\n"); - comprintf("\tint tmp=scratchie++;\n"); - comprintf("\tsigned char offset=0;\n"); - genamode(table68k[opcode].dmode, "dstreg", table68k[opcode].size, "src", 2, 1); + comprintf("\tuae_u16 mask = %s;\n", gen_nextiword()); + comprintf("\tint native=scratchie++;\n"); + comprintf("\tint i;\n"); + comprintf("\tint tmp=scratchie++;\n"); + comprintf("\tsigned char offset=0;\n"); + genamode(table68k[opcode].dmode, "dstreg", table68k[opcode].size, "src", 2, 1); - /* *Sigh* Some clever geek realized that the fastest way to copy a - buffer from main memory to the gfx card is by using movmle. Good - on her, but unfortunately, gfx mem isn't "real" mem, and thus that - act of cleverness means that movmle must pay attention to special_mem, - or Genetic Species is a rather boring-looking game ;-) */ - comprintf("\tif (!special_mem) {\n"); - comprintf("\tget_n_addr(srca,native,scratchie);\n"); + /* *Sigh* Some clever geek realized that the fastest way to copy a + buffer from main memory to the gfx card is by using movmle. Good + on her, but unfortunately, gfx mem isn't "real" mem, and thus that + act of cleverness means that movmle must pay attention to special_mem, + or Genetic Species is a rather boring-looking game ;-) */ + comprintf("\tif (!special_mem) {\n"); + comprintf("\tget_n_addr(srca,native,scratchie);\n"); - if (table68k[opcode].dmode != Apdi) { - comprintf("\tfor (i=0;i<16;i++) {\n" - "\t\tif ((mask>>i)&1) {\n"); - switch (table68k[opcode].size) { - case sz_long: - comprintf("\t\t\tjnf_MVMLE_l(native,i,offset);\n" - "\t\t\toffset+=4;\n"); - break; - case sz_word: - comprintf("\t\t\tjnf_MVMLE_w(native,i,offset);\n" - "\t\t\toffset+=2;\n"); - break; - default: abort(); - } - } - else { /* Pre-decrement */ - comprintf("\tfor (i=0;i<16;i++) {\n" - "\t\tif ((mask>>i)&1) {\n"); - switch (table68k[opcode].size) { - case sz_long: - comprintf("\t\t\toffset-=4;\n" - "\t\t\tjnf_MVMLE_l(native,15-i,offset);\n" - ); - break; - case sz_word: - comprintf("\t\t\toffset-=2;\n" - "\t\t\tjnf_MVMLE_w(native,15-i,offset);\n" - ); - break; - default: abort(); - } - } + if (table68k[opcode].dmode != Apdi) + { + comprintf("\tfor (i=0;i<16;i++) {\n" + "\t\tif ((mask>>i)&1) {\n"); + switch (table68k[opcode].size) + { + case sz_long: + comprintf("\t\t\tjnf_MVMLE_l(native,i,offset);\n" + "\t\t\toffset+=4;\n"); + break; + case sz_word: + comprintf("\t\t\tjnf_MVMLE_w(native,i,offset);\n" + "\t\t\toffset+=2;\n"); + break; + default: + abort(); + } + } + else /* Pre-decrement */ + { + comprintf("\tfor (i=0;i<16;i++) {\n" + "\t\tif ((mask>>i)&1) {\n"); + switch (table68k[opcode].size) + { + case sz_long: + comprintf("\t\t\toffset-=4;\n" + "\t\t\tjnf_MVMLE_l(native,15-i,offset);\n" + ); + break; + case sz_word: + comprintf("\t\t\toffset-=2;\n" + "\t\t\tjnf_MVMLE_w(native,15-i,offset);\n" + ); + break; + default: + abort(); + } + } - comprintf("\t\t}\n" - "\t}"); - if (table68k[opcode].dmode == Apdi) { - comprintf("\t\t\tlea_l_brr(8+dstreg,srca,(uae_s32)offset);\n"); - } - comprintf("\t} else {\n"); + comprintf("\t\t}\n" + "\t}"); + if (table68k[opcode].dmode == Apdi) + { + comprintf("\t\t\tlea_l_brr(8+dstreg,srca,(uae_s32)offset);\n"); + } + comprintf("\t} else {\n"); - if (table68k[opcode].dmode!=Apdi) { - comprintf("\tmov_l_rr(tmp,srca);\n"); - comprintf("\tfor (i=0;i<16;i++) {\n" - "\t\tif ((mask>>i)&1) {\n"); - switch(table68k[opcode].size) { - case sz_long: - comprintf("\t\t\twritelong(tmp,i,scratchie);\n" - "\t\t\tarm_ADD_l_ri8(tmp,4);\n"); - break; - case sz_word: - comprintf("\t\t\twriteword(tmp,i,scratchie);\n" - "\t\t\tarm_ADD_l_ri8(tmp,2);\n"); - break; - default: abort(); - } - } - else { /* Pre-decrement */ - comprintf("\tfor (i=0;i<16;i++) {\n" - "\t\tif ((mask>>i)&1) {\n"); - switch(table68k[opcode].size) { - case sz_long: - comprintf("\t\t\tarm_SUB_l_ri8(srca,4);\n" - "\t\t\twritelong(srca,15-i,scratchie);\n"); - break; - case sz_word: - comprintf("\t\t\tarm_SUB_l_ri8(srca,2);\n" - "\t\t\twriteword(srca,15-i,scratchie);\n"); - break; - default: abort(); - } - } + if (table68k[opcode].dmode!=Apdi) + { + comprintf("\tmov_l_rr(tmp,srca);\n"); + comprintf("\tfor (i=0;i<16;i++) {\n" + "\t\tif ((mask>>i)&1) {\n"); + switch(table68k[opcode].size) + { + case sz_long: + comprintf("\t\t\twritelong(tmp,i,scratchie);\n" + "\t\t\tarm_ADD_l_ri8(tmp,4);\n"); + break; + case sz_word: + comprintf("\t\t\twriteword(tmp,i,scratchie);\n" + "\t\t\tarm_ADD_l_ri8(tmp,2);\n"); + break; + default: + abort(); + } + } + else /* Pre-decrement */ + { + comprintf("\tfor (i=0;i<16;i++) {\n" + "\t\tif ((mask>>i)&1) {\n"); + switch(table68k[opcode].size) + { + case sz_long: + comprintf("\t\t\tarm_SUB_l_ri8(srca,4);\n" + "\t\t\twritelong(srca,15-i,scratchie);\n"); + break; + case sz_word: + comprintf("\t\t\tarm_SUB_l_ri8(srca,2);\n" + "\t\t\twriteword(srca,15-i,scratchie);\n"); + break; + default: + abort(); + } + } - comprintf("\t\t}\n" - "\t}"); - if (table68k[opcode].dmode == Apdi) { - comprintf("\t\t\tmov_l_rr(8+dstreg,srca);\n"); - } - comprintf("\t}\n"); + comprintf("\t\t}\n" + "\t}"); + if (table68k[opcode].dmode == Apdi) + { + comprintf("\t\t\tmov_l_rr(8+dstreg,srca);\n"); + } + comprintf("\t}\n"); } -typedef enum +typedef enum { - flag_logical_noclobber, flag_logical, flag_add, flag_sub, flag_cmp, - flag_addx, flag_subx, flag_zn, flag_av, flag_sv, flag_and, flag_or, - flag_eor, flag_mov -} + flag_logical_noclobber, flag_logical, flag_add, flag_sub, flag_cmp, + flag_addx, flag_subx, flag_zn, flag_av, flag_sv, flag_and, flag_or, + flag_eor, flag_mov +} flagtypes; -static void gen_add(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); +static void gen_add(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); - comprintf("\t dont_care_flags();\n"); - start_brace(); - comprintf("\t int tmp=scratchie++;\n"); - // Use tmp register to avoid destroying upper part in .B., .W cases - if (!noflags) { - comprintf("\t jff_ADD_%s(tmp,dst,src);\n", ssize); - comprintf("\t live_flags();\n"); - comprintf( - "\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); - } else { - comprintf("\t jnf_ADD(tmp,dst,src);\n"); - } - genastore("tmp", curi->dmode, "dstreg", curi->size, "dst"); + comprintf("\t dont_care_flags();\n"); + start_brace(); + comprintf("\t int tmp=scratchie++;\n"); + // Use tmp register to avoid destroying upper part in .B., .W cases + if (!noflags) + { + comprintf("\t jff_ADD_%s(tmp,dst,src);\n", ssize); + comprintf("\t live_flags();\n"); + comprintf( + "\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); + } + else + { + comprintf("\t jnf_ADD(tmp,dst,src);\n"); + } + genastore("tmp", curi->dmode, "dstreg", curi->size, "dst"); } -static void gen_adda(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode(curi->dmode, "dstreg", sz_long, "dst", 1, 0); - start_brace(); - comprintf("\t jnf_ADDA_%s(dst, src);\n", ssize); - genastore("dst", curi->dmode, "dstreg", sz_long, "dst"); +static void gen_adda(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + genamode(curi->dmode, "dstreg", sz_long, "dst", 1, 0); + start_brace(); + comprintf("\t jnf_ADDA_%s(dst, src);\n", ssize); + genastore("dst", curi->dmode, "dstreg", sz_long, "dst"); } -static void gen_addx(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - isaddx; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); - start_brace(); +static void gen_addx(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + isaddx; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); + start_brace(); - // Use tmp register to avoid destroying upper part in .B., .W cases - comprintf("\t dont_care_flags();\n"); - comprintf("\t int tmp=scratchie++;\n"); - if (!noflags) { - comprintf("\t make_flags_live();\n"); - comprintf("\t jff_ADDX_%s(tmp,dst,src);\n", ssize); - comprintf("\t live_flags();\n"); - comprintf("\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); - } else { - comprintf("\t jnf_ADDX(tmp,dst,src);\n"); - } - genastore("tmp", curi->dmode, "dstreg", curi->size, "dst"); + // Use tmp register to avoid destroying upper part in .B., .W cases + comprintf("\t dont_care_flags();\n"); + comprintf("\t int tmp=scratchie++;\n"); + if (!noflags) + { + comprintf("\t make_flags_live();\n"); + comprintf("\t jff_ADDX_%s(tmp,dst,src);\n", ssize); + comprintf("\t live_flags();\n"); + comprintf("\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); + } + else + { + comprintf("\t jnf_ADDX(tmp,dst,src);\n"); + } + genastore("tmp", curi->dmode, "dstreg", curi->size, "dst"); } -static void gen_and(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); +static void gen_and(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); - comprintf("\t dont_care_flags();\n"); - comprintf("\t int tmp=scratchie++;\n"); - start_brace(); - if (!noflags) { - comprintf("\t jff_AND_%s(tmp,dst,src);\n", ssize); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_AND(tmp,dst,src);\n"); - } - genastore("tmp", curi->dmode, "dstreg", curi->size, "dst"); + comprintf("\t dont_care_flags();\n"); + comprintf("\t int tmp=scratchie++;\n"); + start_brace(); + if (!noflags) + { + comprintf("\t jff_AND_%s(tmp,dst,src);\n", ssize); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_AND(tmp,dst,src);\n"); + } + genastore("tmp", curi->dmode, "dstreg", curi->size, "dst"); } -static void gen_andsr(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - (void) ssize; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - if (!noflags) { - comprintf("\t make_flags_live();\n"); - comprintf("\t jff_ANDSR(ARM_CCR_MAP[src & 0xF], (src & 0x10));\n"); - comprintf("\t live_flags();\n"); - } +static void gen_andsr(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + (void) ssize; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + if (!noflags) + { + comprintf("\t make_flags_live();\n"); + comprintf("\t jff_ANDSR(ARM_CCR_MAP[src & 0xF], (src & 0x10));\n"); + comprintf("\t live_flags();\n"); + } } -static void gen_asl(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - mayfail; - if (curi->smode == Dreg) { - comprintf("if ((uae_u32)srcreg==(uae_u32)dstreg) {\n" - " FAIL(1);\n" - " " RETURN "\n" - "} \n"); - start_brace(); - } - comprintf("\t dont_care_flags();\n"); - comprintf("\t int tmp=scratchie++;\n"); +static void gen_asl(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + mayfail; + if (curi->smode == Dreg) + { + comprintf("if ((uae_u32)srcreg==(uae_u32)dstreg) {\n" + " FAIL(1);\n" + " " RETURN "\n" + "} \n"); + start_brace(); + } + comprintf("\t dont_care_flags();\n"); + comprintf("\t int tmp=scratchie++;\n"); - genamode(curi->smode, "srcreg", curi->size, "cnt", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "data", 1, 0); + genamode(curi->smode, "srcreg", curi->size, "cnt", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "data", 1, 0); - if (curi->smode != immi) { - if (!noflags) { - start_brace(); - comprintf("\t jff_ASL_%s_reg(tmp,data,cnt);\n", ssize); - comprintf("\t live_flags();\n"); - comprintf( - "\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); - } else { - start_brace(); - comprintf("\t jnf_LSL_reg(tmp,data,cnt);\n"); - } - } else { - start_brace(); - if (!noflags) { - comprintf("\t jff_ASL_%s_imm(tmp,data,srcreg);\n", ssize); - comprintf("\t live_flags();\n"); - comprintf( - "\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); - } else { - comprintf("\t jnf_LSL_imm(tmp,data,srcreg);\n"); - } - } - genastore("tmp", curi->dmode, "dstreg", curi->size, "data"); + if (curi->smode != immi) + { + if (!noflags) + { + start_brace(); + comprintf("\t jff_ASL_%s_reg(tmp,data,cnt);\n", ssize); + comprintf("\t live_flags();\n"); + comprintf( + "\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); + } + else + { + start_brace(); + comprintf("\t jnf_LSL_reg(tmp,data,cnt);\n"); + } + } + else + { + start_brace(); + if (!noflags) + { + comprintf("\t jff_ASL_%s_imm(tmp,data,srcreg);\n", ssize); + comprintf("\t live_flags();\n"); + comprintf( + "\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); + } + else + { + comprintf("\t jnf_LSL_imm(tmp,data,srcreg);\n"); + } + } + genastore("tmp", curi->dmode, "dstreg", curi->size, "data"); } -static void gen_aslw(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - (void) ssize; - comprintf("\t dont_care_flags();\n"); - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - start_brace(); - comprintf("\t int tmp=scratchie++;\n"); - if (!noflags) { - comprintf("\t jff_ASLW(tmp,src);\n"); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_ASLW(tmp,src);\n"); - } - genastore("tmp", curi->smode, "srcreg", curi->size, "src"); +static void gen_aslw(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + (void) ssize; + comprintf("\t dont_care_flags();\n"); + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + start_brace(); + comprintf("\t int tmp=scratchie++;\n"); + if (!noflags) + { + comprintf("\t jff_ASLW(tmp,src);\n"); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_ASLW(tmp,src);\n"); + } + genastore("tmp", curi->smode, "srcreg", curi->size, "src"); } -static void gen_asr(uae_u32 opcode, struct instr *curi, char* ssize) { - (void)opcode; +static void gen_asr(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void)opcode; - mayfail; - if (curi->smode == Dreg) { - comprintf("if ((uae_u32)srcreg==(uae_u32)dstreg) {\n" - " FAIL(1);\n" - " " RETURN "\n" - "} \n"); - start_brace(); - } - comprintf("\t dont_care_flags();\n"); + mayfail; + if (curi->smode == Dreg) + { + comprintf("if ((uae_u32)srcreg==(uae_u32)dstreg) {\n" + " FAIL(1);\n" + " " RETURN "\n" + "} \n"); + start_brace(); + } + comprintf("\t dont_care_flags();\n"); - genamode(curi->smode, "srcreg", curi->size, "cnt", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "data", 1, 0); + genamode(curi->smode, "srcreg", curi->size, "cnt", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "data", 1, 0); - start_brace(); - comprintf("\t int tmp=scratchie++;\n"); - if (curi->smode != immi) { - if (!noflags) { - comprintf("\t jff_ASR_%s_reg(tmp,data,cnt);\n", ssize); - comprintf("\t live_flags();\n"); - comprintf( - "if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); - } else { - comprintf("\t jnf_ASR_%s_reg(tmp,data,cnt);\n", ssize); - } - } else { - char *op; - if (!noflags) { - op = "ff"; - } else - op = "nf"; + start_brace(); + comprintf("\t int tmp=scratchie++;\n"); + if (curi->smode != immi) + { + if (!noflags) + { + comprintf("\t jff_ASR_%s_reg(tmp,data,cnt);\n", ssize); + comprintf("\t live_flags();\n"); + comprintf( + "if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); + } + else + { + comprintf("\t jnf_ASR_%s_reg(tmp,data,cnt);\n", ssize); + } + } + else + { + char *op; + if (!noflags) + { + op = "ff"; + } + else + op = "nf"; - comprintf("\t j%s_ASR_%s_imm(tmp,data,srcreg);\n", op, ssize); - if (!noflags) { - comprintf("\t live_flags();\n"); - comprintf( - "\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); - } - } - genastore("tmp", curi->dmode, "dstreg", curi->size, "data"); + comprintf("\t j%s_ASR_%s_imm(tmp,data,srcreg);\n", op, ssize); + if (!noflags) + { + comprintf("\t live_flags();\n"); + comprintf( + "\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); + } + } + genastore("tmp", curi->dmode, "dstreg", curi->size, "data"); } -static void gen_asrw(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - (void) ssize; - comprintf("\t dont_care_flags();\n"); - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - start_brace(); - comprintf("\t int tmp = scratchie++;\n"); +static void gen_asrw(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + (void) ssize; + comprintf("\t dont_care_flags();\n"); + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + start_brace(); + comprintf("\t int tmp = scratchie++;\n"); - if (!noflags) { - comprintf("\t jff_ASRW(tmp,src);\n"); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_ASRW(tmp,src);\n"); - } - genastore("tmp", curi->smode, "srcreg", curi->size, "src"); + if (!noflags) + { + comprintf("\t jff_ASRW(tmp,src);\n"); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_ASRW(tmp,src);\n"); + } + genastore("tmp", curi->smode, "srcreg", curi->size, "src"); } -static void gen_bchg(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); - start_brace(); +static void gen_bchg(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); + start_brace(); - if (!noflags) { - comprintf("\t make_flags_live();\n"); - comprintf("\t jff_BCHG_%s(dst,src);\n", ssize); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_BCHG_%s(dst,src);\n", ssize); - comprintf("\t dont_care_flags();\n"); - } - genastore("dst", curi->dmode, "dstreg", curi->size, "dst"); + if (!noflags) + { + comprintf("\t make_flags_live();\n"); + comprintf("\t jff_BCHG_%s(dst,src);\n", ssize); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_BCHG_%s(dst,src);\n", ssize); + comprintf("\t dont_care_flags();\n"); + } + genastore("dst", curi->dmode, "dstreg", curi->size, "dst"); } -static void gen_bclr(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); - start_brace(); +static void gen_bclr(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); + start_brace(); - if (!noflags) { - comprintf("\t make_flags_live();\n"); - comprintf("\t jff_BCLR_%s(dst,src);\n", ssize); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_BCLR_%s(dst,src);\n", ssize); - comprintf("\t dont_care_flags();\n"); - } - genastore("dst", curi->dmode, "dstreg", curi->size, "dst"); + if (!noflags) + { + comprintf("\t make_flags_live();\n"); + comprintf("\t jff_BCLR_%s(dst,src);\n", ssize); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_BCLR_%s(dst,src);\n", ssize); + comprintf("\t dont_care_flags();\n"); + } + genastore("dst", curi->dmode, "dstreg", curi->size, "dst"); } -static void gen_bset(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); - start_brace(); +static void gen_bset(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); + start_brace(); - if (!noflags) { - comprintf("\t make_flags_live();\n"); - comprintf("\t jff_BSET_%s(dst,src);\n", ssize); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_BSET_%s(dst,src);\n", ssize); - comprintf("\t dont_care_flags();\n"); - } - genastore("dst", curi->dmode, "dstreg", curi->size, "dst"); + if (!noflags) + { + comprintf("\t make_flags_live();\n"); + comprintf("\t jff_BSET_%s(dst,src);\n", ssize); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_BSET_%s(dst,src);\n", ssize); + comprintf("\t dont_care_flags();\n"); + } + genastore("dst", curi->dmode, "dstreg", curi->size, "dst"); } -static void gen_btst(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); - start_brace(); +static void gen_btst(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); + start_brace(); - // If we are not interested in flags it is not necessary to do - // anything with the data - if (!noflags) { - comprintf("\t make_flags_live();\n"); - comprintf("\t jff_BTST_%s(dst,src);\n", ssize); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t dont_care_flags();\n"); - } + // If we are not interested in flags it is not necessary to do + // anything with the data + if (!noflags) + { + comprintf("\t make_flags_live();\n"); + comprintf("\t jff_BTST_%s(dst,src);\n", ssize); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t dont_care_flags();\n"); + } } -static void gen_clr(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - (void) ssize; - genamode(curi->smode, "srcreg", curi->size, "src", 2, 0); - comprintf("\t dont_care_flags();\n"); - start_brace(); - comprintf("\t int tmp=scratchie++;\n"); - if (!noflags) { - comprintf("\t jff_CLR(tmp);\n"); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_CLR(tmp);\n"); - } - genastore("tmp", curi->smode, "srcreg", curi->size, "src"); +static void gen_clr(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + (void) ssize; + genamode(curi->smode, "srcreg", curi->size, "src", 2, 0); + comprintf("\t dont_care_flags();\n"); + start_brace(); + comprintf("\t int tmp=scratchie++;\n"); + if (!noflags) + { + comprintf("\t jff_CLR(tmp);\n"); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_CLR(tmp);\n"); + } + genastore("tmp", curi->smode, "srcreg", curi->size, "src"); } -static void gen_cmp(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); - start_brace(); - comprintf("\t dont_care_flags();\n"); - if (!noflags) { - comprintf("\t jff_CMP_%s(dst,src);\n", ssize); - comprintf("\t live_flags();\n"); - comprintf("\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); - } else { - comprintf("/* Weird --- CMP with noflags ;-) */\n"); - } +static void gen_cmp(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); + start_brace(); + comprintf("\t dont_care_flags();\n"); + if (!noflags) + { + comprintf("\t jff_CMP_%s(dst,src);\n", ssize); + comprintf("\t live_flags();\n"); + comprintf("\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); + } + else + { + comprintf("/* Weird --- CMP with noflags ;-) */\n"); + } } -static void gen_cmpa(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode(curi->dmode, "dstreg", sz_long, "dst", 1, 0); - start_brace(); - if (!noflags) { - comprintf("\t dont_care_flags();\n"); - comprintf("\t jff_CMPA_%s(dst,src);\n", ssize); - comprintf("\t live_flags();\n"); - comprintf("\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); - } else { - comprintf("\tdont_care_flags();\n"); - comprintf("/* Weird --- CMP with noflags ;-) */\n"); - } +static void gen_cmpa(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + genamode(curi->dmode, "dstreg", sz_long, "dst", 1, 0); + start_brace(); + if (!noflags) + { + comprintf("\t dont_care_flags();\n"); + comprintf("\t jff_CMPA_%s(dst,src);\n", ssize); + comprintf("\t live_flags();\n"); + comprintf("\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); + } + else + { + comprintf("\tdont_care_flags();\n"); + comprintf("/* Weird --- CMP with noflags ;-) */\n"); + } } -static void gen_dbcc(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - (void) ssize; - isjump; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "offs", 1, 0); +static void gen_dbcc(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + (void) ssize; + isjump; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "offs", 1, 0); - if (curi->size != sz_word) - abort(); + if (curi->size != sz_word) + abort(); - /* That offs is an immediate, so we can clobber it with abandon */ - comprintf("\tsub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2);\n"); - comprintf("\tarm_ADD_l_ri(offs, (uintptr)comp_pc_p);\n"); - /* New PC, once the offset_68k is also added */ - /* Let's fold in the m68k_pc_offset at this point */ - comprintf("\tarm_ADD_l_ri(offs, m68k_pc_offset);\n"); - comprintf("\tarm_ADD_l_ri(PC_P, m68k_pc_offset);\n"); - comprintf("\tm68k_pc_offset=0;\n"); + /* That offs is an immediate, so we can clobber it with abandon */ + comprintf("\tsub_l_ri(offs, m68k_pc_offset - m68k_pc_offset_thisinst - 2);\n"); + comprintf("\tarm_ADD_l_ri(offs, (uintptr)comp_pc_p);\n"); + /* New PC, once the offset_68k is also added */ + /* Let's fold in the m68k_pc_offset at this point */ + comprintf("\tarm_ADD_l_ri(offs, m68k_pc_offset);\n"); + comprintf("\tarm_ADD_l_ri(PC_P, m68k_pc_offset);\n"); + comprintf("\tm68k_pc_offset=0;\n"); - start_brace(); - comprintf("\tint nsrc = scratchie++;\n"); + start_brace(); + comprintf("\tint nsrc = scratchie++;\n"); - if (curi->cc >= 2) { - comprintf("\tmake_flags_live();\n"); /* Load the flags */ - } + if (curi->cc >= 2) + { + comprintf("\tmake_flags_live();\n"); /* Load the flags */ + } - switch (curi->cc) { - case 0: /* This is an elaborate nop? */ - break; - case 1: - comprintf("\tsub_w_ri(src, 1);\n"); - start_brace(); - comprintf("\tuae_u32 v2;\n"); - comprintf("\tuae_u32 v1=get_const(PC_P);\n"); - comprintf("\tv2=get_const(offs);\n"); - comprintf("\tregister_branch(v1, v2, %d);\n", NATIVE_CC_CC); - break; + switch (curi->cc) + { + case 0: /* This is an elaborate nop? */ + break; + case 1: + comprintf("\tsub_w_ri(src, 1);\n"); + start_brace(); + comprintf("\tuae_u32 v2;\n"); + comprintf("\tuae_u32 v1=get_const(PC_P);\n"); + comprintf("\tv2=get_const(offs);\n"); + comprintf("\tregister_branch(v1, v2, %d);\n", NATIVE_CC_CC); + break; - case 8: - case 9: + case 8: + case 9: case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - comprintf("\tuae_u32 v1=get_const(PC_P);\n"); - comprintf("\tuae_u32 v2=get_const(offs);\n"); - comprintf("\tjff_DBCC(src, %d);\n", cond_codes[curi->cc]); - comprintf("\tregister_branch(v1, v2, %d);\n", NATIVE_CC_CS); - break; - default: abort(); - } - genastore("src", curi->smode, "srcreg", curi->size, "src"); - gen_update_next_handler(); + case 3: + case 4: + case 5: + case 6: + case 7: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + comprintf("\tuae_u32 v1=get_const(PC_P);\n"); + comprintf("\tuae_u32 v2=get_const(offs);\n"); + comprintf("\tjff_DBCC(src, %d);\n", cond_codes[curi->cc]); + comprintf("\tregister_branch(v1, v2, %d);\n", NATIVE_CC_CS); + break; + default: + abort(); + } + genastore("src", curi->smode, "srcreg", curi->size, "src"); + gen_update_next_handler(); } -static void gen_divu(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - (void) ssize; - comprintf("\t dont_care_flags();\n"); - genamode(curi->smode, "srcreg", sz_word, "src", 1, 0); - genamode(curi->dmode, "dstreg", sz_word, "dst", 1, 0); +static void gen_divu(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + (void) ssize; + comprintf("\t dont_care_flags();\n"); + genamode(curi->smode, "srcreg", sz_word, "src", 1, 0); + genamode(curi->dmode, "dstreg", sz_word, "dst", 1, 0); - comprintf("\tint tmp=scratchie++;\n"); - if (!noflags) { - comprintf("\tjff_DIVU(tmp,dst,src);\n"); - comprintf("\tlive_flags();\n"); - } else { - comprintf("\tjnf_DIVU(tmp,dst,src);\n"); - } + comprintf("\tint tmp=scratchie++;\n"); + if (!noflags) + { + comprintf("\tjff_DIVU(tmp,dst,src);\n"); + comprintf("\tlive_flags();\n"); + } + else + { + comprintf("\tjnf_DIVU(tmp,dst,src);\n"); + } - genastore("tmp", curi->dmode, "dstreg", curi->size, "dst"); + genastore("tmp", curi->dmode, "dstreg", curi->size, "dst"); } -static void gen_eor(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); +static void gen_eor(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); - comprintf("\t dont_care_flags();\n"); - start_brace(); - comprintf("\t int tmp=scratchie++;\n"); - if (!noflags) { - comprintf("\t jff_EOR_%s(tmp,dst,src);\n", ssize); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_EOR(tmp,dst,src);\n"); - } - genastore("tmp", curi->dmode, "dstreg", curi->size, "dst"); + comprintf("\t dont_care_flags();\n"); + start_brace(); + comprintf("\t int tmp=scratchie++;\n"); + if (!noflags) + { + comprintf("\t jff_EOR_%s(tmp,dst,src);\n", ssize); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_EOR(tmp,dst,src);\n"); + } + genastore("tmp", curi->dmode, "dstreg", curi->size, "dst"); } -static void gen_eorsr(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - (void) ssize; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - if (!noflags) { - comprintf("\t make_flags_live();\n"); - comprintf("\t jff_EORSR(ARM_CCR_MAP[src & 0xF], ((src & 0x10) >> 4));\n"); - comprintf("\t live_flags();\n"); - } +static void gen_eorsr(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + (void) ssize; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + if (!noflags) + { + comprintf("\t make_flags_live();\n"); + comprintf("\t jff_EORSR(ARM_CCR_MAP[src & 0xF], ((src & 0x10) >> 4));\n"); + comprintf("\t live_flags();\n"); + } } -static void gen_exg(uae_u32 opcode, struct instr *curi, char* ssize) { +static void gen_exg(uae_u32 opcode, struct instr *curi, char* ssize) +{ #if 0 #else - (void) opcode; - (void) ssize; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); - start_brace(); - comprintf("\tint tmp=scratchie++;\n" - "\tmov_l_rr(tmp,src);\n"); - genastore("dst", curi->smode, "srcreg", curi->size, "src"); - genastore("tmp", curi->dmode, "dstreg", curi->size, "dst"); + (void) opcode; + (void) ssize; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); + start_brace(); + comprintf("\tint tmp=scratchie++;\n" + "\tmov_l_rr(tmp,src);\n"); + genastore("dst", curi->smode, "srcreg", curi->size, "src"); + genastore("tmp", curi->dmode, "dstreg", curi->size, "dst"); #endif } -static void gen_ext(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - genamode(curi->smode, "srcreg", sz_long, "src", 1, 0); - comprintf("\t dont_care_flags();\n"); - start_brace(); - comprintf("\t int tmp=scratchie++;\n"); - if (!noflags) { - comprintf("\t jff_EXT_%s(tmp,src);\n", ssize); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_EXT_%s(tmp,src);\n", ssize); - } - genastore("tmp", curi->smode, "srcreg", - curi->size == sz_word ? sz_word : sz_long, "src"); +static void gen_ext(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + genamode(curi->smode, "srcreg", sz_long, "src", 1, 0); + comprintf("\t dont_care_flags();\n"); + start_brace(); + comprintf("\t int tmp=scratchie++;\n"); + if (!noflags) + { + comprintf("\t jff_EXT_%s(tmp,src);\n", ssize); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_EXT_%s(tmp,src);\n", ssize); + } + genastore("tmp", curi->smode, "srcreg", + curi->size == sz_word ? sz_word : sz_long, "src"); } -static void gen_lsl(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - mayfail; - if (curi->smode == Dreg) { - comprintf("if ((uae_u32)srcreg==(uae_u32)dstreg) {\n" - " FAIL(1);\n" - " " RETURN "\n" - "} \n"); - start_brace(); - } - comprintf("\tdont_care_flags();\n"); +static void gen_lsl(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + mayfail; + if (curi->smode == Dreg) + { + comprintf("if ((uae_u32)srcreg==(uae_u32)dstreg) {\n" + " FAIL(1);\n" + " " RETURN "\n" + "} \n"); + start_brace(); + } + comprintf("\tdont_care_flags();\n"); - genamode(curi->smode, "srcreg", curi->size, "cnt", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "data", 1, 0); - comprintf("\t int tmp=scratchie++;\n"); - if (curi->smode != immi) { - if (!noflags) { - start_brace(); - comprintf("\t jff_LSL_%s_reg(tmp,data,cnt);\n", ssize); - comprintf("\t live_flags();\n"); - comprintf( - "\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); - } else { - start_brace(); - comprintf("\t jnf_LSL_reg(tmp,data,cnt);\n"); - } - } else { - start_brace(); - if (!noflags) { - comprintf("\t jff_LSL_%s_imm(tmp,data,srcreg);\n", ssize); - comprintf("\t live_flags();\n"); - comprintf( - "\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); - } else { - comprintf("\t jnf_LSL_imm(tmp,data,srcreg);\n"); - } - } - genastore("tmp", curi->dmode, "dstreg", curi->size, "data"); + genamode(curi->smode, "srcreg", curi->size, "cnt", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "data", 1, 0); + comprintf("\t int tmp=scratchie++;\n"); + if (curi->smode != immi) + { + if (!noflags) + { + start_brace(); + comprintf("\t jff_LSL_%s_reg(tmp,data,cnt);\n", ssize); + comprintf("\t live_flags();\n"); + comprintf( + "\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); + } + else + { + start_brace(); + comprintf("\t jnf_LSL_reg(tmp,data,cnt);\n"); + } + } + else + { + start_brace(); + if (!noflags) + { + comprintf("\t jff_LSL_%s_imm(tmp,data,srcreg);\n", ssize); + comprintf("\t live_flags();\n"); + comprintf( + "\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); + } + else + { + comprintf("\t jnf_LSL_imm(tmp,data,srcreg);\n"); + } + } + genastore("tmp", curi->dmode, "dstreg", curi->size, "data"); } -static void gen_lslw(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - (void) ssize; - comprintf("\t dont_care_flags();\n"); - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - start_brace(); - comprintf("\t int tmp=scratchie++;\n"); - if (!noflags) { - comprintf("\t jff_LSLW(tmp,src);\n"); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_LSLW(tmp,src);\n"); - } - genastore("tmp", curi->smode, "srcreg", curi->size, "src"); +static void gen_lslw(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + (void) ssize; + comprintf("\t dont_care_flags();\n"); + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + start_brace(); + comprintf("\t int tmp=scratchie++;\n"); + if (!noflags) + { + comprintf("\t jff_LSLW(tmp,src);\n"); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_LSLW(tmp,src);\n"); + } + genastore("tmp", curi->smode, "srcreg", curi->size, "src"); } -static void gen_lsr(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - mayfail; - if (curi->smode == Dreg) { - comprintf("if ((uae_u32)srcreg==(uae_u32)dstreg) {\n" - " FAIL(1);\n" - " " RETURN "\n" - "} \n"); - start_brace(); - } - comprintf("\t dont_care_flags();\n"); +static void gen_lsr(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + mayfail; + if (curi->smode == Dreg) + { + comprintf("if ((uae_u32)srcreg==(uae_u32)dstreg) {\n" + " FAIL(1);\n" + " " RETURN "\n" + "} \n"); + start_brace(); + } + comprintf("\t dont_care_flags();\n"); - genamode(curi->smode, "srcreg", curi->size, "cnt", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "data", 1, 0); - comprintf("\t int tmp=scratchie++;\n"); - if (curi->smode != immi) { - if (!noflags) { - start_brace(); - comprintf("\t jff_LSR_%s_reg(tmp,data,cnt);\n", ssize); - comprintf("\t live_flags();\n"); - comprintf("if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); - } else { - start_brace(); - comprintf("\t jnf_LSR_%s_reg(tmp,data,cnt);\n", ssize); - } - } else { - start_brace(); - char *op; - if (!noflags) { - op = "ff"; - } else - op = "nf"; + genamode(curi->smode, "srcreg", curi->size, "cnt", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "data", 1, 0); + comprintf("\t int tmp=scratchie++;\n"); + if (curi->smode != immi) + { + if (!noflags) + { + start_brace(); + comprintf("\t jff_LSR_%s_reg(tmp,data,cnt);\n", ssize); + comprintf("\t live_flags();\n"); + comprintf("if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); + } + else + { + start_brace(); + comprintf("\t jnf_LSR_%s_reg(tmp,data,cnt);\n", ssize); + } + } + else + { + start_brace(); + char *op; + if (!noflags) + { + op = "ff"; + } + else + op = "nf"; - comprintf("\t j%s_LSR_%s_imm(tmp,data,srcreg);\n", op, ssize); + comprintf("\t j%s_LSR_%s_imm(tmp,data,srcreg);\n", op, ssize); - if (!noflags) { - comprintf("\t live_flags();\n"); - comprintf( - "\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); - } - } - genastore("tmp", curi->dmode, "dstreg", curi->size, "data"); + if (!noflags) + { + comprintf("\t live_flags();\n"); + comprintf( + "\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); + } + } + genastore("tmp", curi->dmode, "dstreg", curi->size, "data"); } -static void gen_lsrw(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - (void) ssize; - comprintf("\t dont_care_flags();\n"); - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - start_brace(); - comprintf("\t int tmp = scratchie++;\n"); +static void gen_lsrw(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + (void) ssize; + comprintf("\t dont_care_flags();\n"); + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + start_brace(); + comprintf("\t int tmp = scratchie++;\n"); - if (!noflags) { - comprintf("\t jff_LSRW(tmp,src);\n"); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_LSRW(tmp,src);\n"); - } - genastore("tmp", curi->smode, "srcreg", curi->size, "src"); + if (!noflags) + { + comprintf("\t jff_LSRW(tmp,src);\n"); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_LSRW(tmp,src);\n"); + } + genastore("tmp", curi->smode, "srcreg", curi->size, "src"); } -static void gen_move(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - switch (curi->dmode) { - case Dreg: - case Areg: - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "dst", 2, 0); - comprintf("\t dont_care_flags();\n"); - start_brace(); - comprintf("\t int tmp=scratchie++;\n"); - if (!noflags && curi->dmode == Dreg) { - comprintf("\t jff_MOVE_%s(tmp, src);\n", ssize); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t tmp = src;\n"); - } - genastore("tmp", curi->dmode, "dstreg", curi->size, "dst"); - break; +static void gen_move(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + switch (curi->dmode) + { + case Dreg: + case Areg: + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "dst", 2, 0); + comprintf("\t dont_care_flags();\n"); + start_brace(); + comprintf("\t int tmp=scratchie++;\n"); + if (!noflags && curi->dmode == Dreg) + { + comprintf("\t jff_MOVE_%s(tmp, src);\n", ssize); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t tmp = src;\n"); + } + genastore("tmp", curi->dmode, "dstreg", curi->size, "dst"); + break; - default: /* It goes to memory, not a register */ - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "dst", 2, 0); - comprintf("\t dont_care_flags();\n"); - start_brace(); - if (!noflags) { - comprintf("\t jff_TST_%s(src);\n", ssize); - comprintf("\t live_flags();\n"); - } - genastore("src", curi->dmode, "dstreg", curi->size, "dst"); - break; - } + default: /* It goes to memory, not a register */ + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "dst", 2, 0); + comprintf("\t dont_care_flags();\n"); + start_brace(); + if (!noflags) + { + comprintf("\t jff_TST_%s(src);\n", ssize); + comprintf("\t live_flags();\n"); + } + genastore("src", curi->dmode, "dstreg", curi->size, "dst"); + break; + } } -static void gen_movea(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "dst", 2, 0); +static void gen_movea(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "dst", 2, 0); - start_brace(); - comprintf("\t jnf_MOVEA_%s(dst, src);\n", ssize); - genastore("dst", curi->dmode, "dstreg", sz_long, "dst"); + start_brace(); + comprintf("\t jnf_MOVEA_%s(dst, src);\n", ssize); + genastore("dst", curi->dmode, "dstreg", sz_long, "dst"); } -static void gen_mull(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - (void) ssize; - comprintf("\t uae_u16 extra=%s;\n", gen_nextiword()); - comprintf("\t int r2=(extra>>12)&7;\n" - "\t int tmp=scratchie++;\n"); - genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); - /* The two operands are in dst and r2 */ - if (!noflags) { - comprintf("\t if (extra & 0x0400) {\n"); /* Need full 64 bit result */ - comprintf("\t int r3=(extra & 7);\n"); - comprintf("\t mov_l_rr(r3,dst);\n"); /* operands now in r3 and r2 */ - comprintf("\t if (extra & 0x0800) { \n"); /* signed */ - comprintf("\t\t jff_MULS64(r2,r3);\n"); - comprintf("\t } else { \n"); - comprintf("\t\t jff_MULU64(r2,r3);\n"); - comprintf("\t } \n"); /* The result is in r2/r3, with r2 holding the lower 32 bits */ - comprintf("\t } else {\n"); /* Only want 32 bit result */ - /* operands in dst and r2, result goes into r2 */ - /* shouldn't matter whether it's signed or unsigned?!? */ - comprintf("\t if (extra & 0x0800) { \n"); /* signed */ - comprintf("\t jff_MULS32(r2,dst);\n"); - comprintf("\t } else { \n"); - comprintf("\t\t jff_MULU32(r2,dst);\n"); - comprintf("\t } \n"); /* The result is in r2, with r2 holding the lower 32 bits */ - comprintf("\t }\n"); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t if (extra & 0x0400) {\n"); /* Need full 64 bit result */ - comprintf("\t int r3=(extra & 7);\n"); - comprintf("\t mov_l_rr(r3,dst);\n"); /* operands now in r3 and r2 */ - comprintf("\t if (extra & 0x0800) { \n"); /* signed */ - comprintf("\t\t jnf_MULS64(r2,r3);\n"); - comprintf("\t } else { \n"); - comprintf("\t\t jnf_MULU64(r2,r3);\n"); - comprintf("\t } \n"); /* The result is in r2/r3, with r2 holding the lower 32 bits */ - comprintf("\t } else {\n"); /* Only want 32 bit result */ - /* operands in dst and r2, result foes into r2 */ - /* shouldn't matter whether it's signed or unsigned?!? */ - comprintf("\t if (extra & 0x0800) { \n"); /* signed */ - comprintf("\t jnf_MULS32(r2,dst);\n"); - comprintf("\t } else { \n"); - comprintf("\t\t jnf_MULU32(r2,dst);\n"); - comprintf("\t } \n"); /* The result is in r2, with r2 holding the lower 32 bits */ - comprintf("\t }\n"); - } +static void gen_mull(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + (void) ssize; + comprintf("\t uae_u16 extra=%s;\n", gen_nextiword()); + comprintf("\t int r2=(extra>>12)&7;\n" + "\t int tmp=scratchie++;\n"); + genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); + /* The two operands are in dst and r2 */ + if (!noflags) + { + comprintf("\t if (extra & 0x0400) {\n"); /* Need full 64 bit result */ + comprintf("\t int r3=(extra & 7);\n"); + comprintf("\t mov_l_rr(r3,dst);\n"); /* operands now in r3 and r2 */ + comprintf("\t if (extra & 0x0800) { \n"); /* signed */ + comprintf("\t\t jff_MULS64(r2,r3);\n"); + comprintf("\t } else { \n"); + comprintf("\t\t jff_MULU64(r2,r3);\n"); + comprintf("\t } \n"); /* The result is in r2/r3, with r2 holding the lower 32 bits */ + comprintf("\t } else {\n"); /* Only want 32 bit result */ + /* operands in dst and r2, result goes into r2 */ + /* shouldn't matter whether it's signed or unsigned?!? */ + comprintf("\t if (extra & 0x0800) { \n"); /* signed */ + comprintf("\t jff_MULS32(r2,dst);\n"); + comprintf("\t } else { \n"); + comprintf("\t\t jff_MULU32(r2,dst);\n"); + comprintf("\t } \n"); /* The result is in r2, with r2 holding the lower 32 bits */ + comprintf("\t }\n"); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t if (extra & 0x0400) {\n"); /* Need full 64 bit result */ + comprintf("\t int r3=(extra & 7);\n"); + comprintf("\t mov_l_rr(r3,dst);\n"); /* operands now in r3 and r2 */ + comprintf("\t if (extra & 0x0800) { \n"); /* signed */ + comprintf("\t\t jnf_MULS64(r2,r3);\n"); + comprintf("\t } else { \n"); + comprintf("\t\t jnf_MULU64(r2,r3);\n"); + comprintf("\t } \n"); /* The result is in r2/r3, with r2 holding the lower 32 bits */ + comprintf("\t } else {\n"); /* Only want 32 bit result */ + /* operands in dst and r2, result foes into r2 */ + /* shouldn't matter whether it's signed or unsigned?!? */ + comprintf("\t if (extra & 0x0800) { \n"); /* signed */ + comprintf("\t jnf_MULS32(r2,dst);\n"); + comprintf("\t } else { \n"); + comprintf("\t\t jnf_MULU32(r2,dst);\n"); + comprintf("\t } \n"); /* The result is in r2, with r2 holding the lower 32 bits */ + comprintf("\t }\n"); + } } -static void gen_muls(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - (void) ssize; - comprintf("\t dont_care_flags();\n"); - genamode(curi->smode, "srcreg", sz_word, "src", 1, 0); - genamode(curi->dmode, "dstreg", sz_word, "dst", 1, 0); - start_brace(); - if (!noflags) { - comprintf("\t jff_MULS(dst,src);\n"); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_MULS(dst,src);\n"); - } - genastore("dst", curi->dmode, "dstreg", sz_long, "dst"); +static void gen_muls(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + (void) ssize; + comprintf("\t dont_care_flags();\n"); + genamode(curi->smode, "srcreg", sz_word, "src", 1, 0); + genamode(curi->dmode, "dstreg", sz_word, "dst", 1, 0); + start_brace(); + if (!noflags) + { + comprintf("\t jff_MULS(dst,src);\n"); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_MULS(dst,src);\n"); + } + genastore("dst", curi->dmode, "dstreg", sz_long, "dst"); } -static void gen_mulu(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - (void) ssize; - comprintf("\t dont_care_flags();\n"); - genamode(curi->smode, "srcreg", sz_word, "src", 1, 0); - genamode(curi->dmode, "dstreg", sz_word, "dst", 1, 0); - start_brace(); - if (!noflags) { - comprintf("\t jff_MULU(dst,src);\n"); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_MULU(dst,src);\n"); - } - genastore("dst", curi->dmode, "dstreg", sz_long, "dst"); +static void gen_mulu(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + (void) ssize; + comprintf("\t dont_care_flags();\n"); + genamode(curi->smode, "srcreg", sz_word, "src", 1, 0); + genamode(curi->dmode, "dstreg", sz_word, "dst", 1, 0); + start_brace(); + if (!noflags) + { + comprintf("\t jff_MULU(dst,src);\n"); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_MULU(dst,src);\n"); + } + genastore("dst", curi->dmode, "dstreg", sz_long, "dst"); } -static void gen_neg(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - start_brace(); - comprintf("\t int tmp=scratchie++;\n"); - if (!noflags) { - comprintf("\t jff_NEG_%s(tmp,src);\n", ssize); - comprintf("\t live_flags();\n"); - comprintf("\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); - } else { - comprintf("\t jnf_NEG_%s(tmp,src);\n", ssize); - } +static void gen_neg(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + start_brace(); + comprintf("\t int tmp=scratchie++;\n"); + if (!noflags) + { + comprintf("\t jff_NEG_%s(tmp,src);\n", ssize); + comprintf("\t live_flags();\n"); + comprintf("\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); + } + else + { + comprintf("\t jnf_NEG_%s(tmp,src);\n", ssize); + } - genastore("tmp", curi->smode, "srcreg", curi->size, "src"); + genastore("tmp", curi->smode, "srcreg", curi->size, "src"); } -static void gen_negx(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - isaddx; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - start_brace(); - comprintf("\t int dst=scratchie++;\n"); +static void gen_negx(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + isaddx; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + start_brace(); + comprintf("\t int dst=scratchie++;\n"); - if (!noflags) { - comprintf("\t make_flags_live();\n"); - comprintf("\t jff_NEGX_%s(dst,src);\n", ssize); - comprintf("\t live_flags();\n"); - comprintf("\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); - } else { - comprintf("\t jnf_NEGX_%s(dst,src);\n", ssize); - } + if (!noflags) + { + comprintf("\t make_flags_live();\n"); + comprintf("\t jff_NEGX_%s(dst,src);\n", ssize); + comprintf("\t live_flags();\n"); + comprintf("\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); + } + else + { + comprintf("\t jnf_NEGX_%s(dst,src);\n", ssize); + } - genastore("dst", curi->smode, "srcreg", curi->size, "src"); + genastore("dst", curi->smode, "srcreg", curi->size, "src"); } -static void gen_not(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - comprintf("\t dont_care_flags();\n"); - start_brace(); - comprintf("\t int tmp=scratchie++;\n"); - if (!noflags) { - comprintf("\t jff_NOT_%s(tmp,src);\n", ssize); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_NOT(tmp,src);\n", ssize); - } - genastore("tmp", curi->smode, "srcreg", curi->size, "src"); +static void gen_not(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + comprintf("\t dont_care_flags();\n"); + start_brace(); + comprintf("\t int tmp=scratchie++;\n"); + if (!noflags) + { + comprintf("\t jff_NOT_%s(tmp,src);\n", ssize); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_NOT(tmp,src);\n", ssize); + } + genastore("tmp", curi->smode, "srcreg", curi->size, "src"); } -static void gen_or(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); +static void gen_or(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); - comprintf("\t dont_care_flags();\n"); - start_brace(); - comprintf("\t int tmp=scratchie++;\n"); - if (!noflags) { - comprintf("\t jff_OR_%s(tmp, dst,src);\n", ssize); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_OR(tmp, dst,src);\n"); - } - genastore("tmp", curi->dmode, "dstreg", curi->size, "dst"); + comprintf("\t dont_care_flags();\n"); + start_brace(); + comprintf("\t int tmp=scratchie++;\n"); + if (!noflags) + { + comprintf("\t jff_OR_%s(tmp, dst,src);\n", ssize); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_OR(tmp, dst,src);\n"); + } + genastore("tmp", curi->dmode, "dstreg", curi->size, "dst"); } -static void gen_orsr(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - (void) ssize; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - if (!noflags) { - comprintf("\t make_flags_live();\n"); - comprintf("\t jff_ORSR(ARM_CCR_MAP[src & 0xF], ((src & 0x10) >> 4));\n"); - comprintf("\t live_flags();\n"); - } +static void gen_orsr(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + (void) ssize; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + if (!noflags) + { + comprintf("\t make_flags_live();\n"); + comprintf("\t jff_ORSR(ARM_CCR_MAP[src & 0xF], ((src & 0x10) >> 4));\n"); + comprintf("\t live_flags();\n"); + } } -static void gen_rol(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - mayfail; - if (curi->smode == Dreg) { - comprintf("if ((uae_u32)srcreg==(uae_u32)dstreg) {\n" - " FAIL(1);\n" - " " RETURN "\n" - "} \n"); - start_brace(); - } - comprintf("\t dont_care_flags();\n"); - genamode(curi->smode, "srcreg", curi->size, "cnt", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "data", 1, 0); - start_brace(); - comprintf("\t int tmp=scratchie++;\n"); +static void gen_rol(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + mayfail; + if (curi->smode == Dreg) + { + comprintf("if ((uae_u32)srcreg==(uae_u32)dstreg) {\n" + " FAIL(1);\n" + " " RETURN "\n" + "} \n"); + start_brace(); + } + comprintf("\t dont_care_flags();\n"); + genamode(curi->smode, "srcreg", curi->size, "cnt", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "data", 1, 0); + start_brace(); + comprintf("\t int tmp=scratchie++;\n"); - if (!noflags) { - comprintf("\t jff_ROL_%s(tmp,data,cnt);\n", ssize); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_ROL_%s(tmp,data,cnt);\n", ssize); - } - genastore("tmp", curi->dmode, "dstreg", curi->size, "data"); + if (!noflags) + { + comprintf("\t jff_ROL_%s(tmp,data,cnt);\n", ssize); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_ROL_%s(tmp,data,cnt);\n", ssize); + } + genastore("tmp", curi->dmode, "dstreg", curi->size, "data"); } -static void gen_rolw(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - (void) ssize; - comprintf("\t dont_care_flags();\n"); - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - start_brace(); - comprintf("\t int tmp = scratchie++;\n"); +static void gen_rolw(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + (void) ssize; + comprintf("\t dont_care_flags();\n"); + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + start_brace(); + comprintf("\t int tmp = scratchie++;\n"); - if (!noflags) { - comprintf("\t jff_ROLW(tmp,src);\n"); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_ROLW(tmp,src);\n"); - } - genastore("tmp", curi->smode, "srcreg", curi->size, "src"); + if (!noflags) + { + comprintf("\t jff_ROLW(tmp,src);\n"); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_ROLW(tmp,src);\n"); + } + genastore("tmp", curi->smode, "srcreg", curi->size, "src"); } -static void gen_ror(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - mayfail; - if (curi->smode == Dreg) { - comprintf("if ((uae_u32)srcreg==(uae_u32)dstreg) {\n" - " FAIL(1);\n" - " " RETURN "\n" - "} \n"); - start_brace(); - } - comprintf("\t dont_care_flags();\n"); - genamode(curi->smode, "srcreg", curi->size, "cnt", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "data", 1, 0); - start_brace(); - comprintf("\t int tmp=scratchie++;\n"); +static void gen_ror(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + mayfail; + if (curi->smode == Dreg) + { + comprintf("if ((uae_u32)srcreg==(uae_u32)dstreg) {\n" + " FAIL(1);\n" + " " RETURN "\n" + "} \n"); + start_brace(); + } + comprintf("\t dont_care_flags();\n"); + genamode(curi->smode, "srcreg", curi->size, "cnt", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "data", 1, 0); + start_brace(); + comprintf("\t int tmp=scratchie++;\n"); - if (!noflags) { - comprintf("\t jff_ROR_%s(tmp,data,cnt);\n", ssize); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_ROR_%s(tmp,data,cnt);\n", ssize); - } - genastore("tmp", curi->dmode, "dstreg", curi->size, "data"); + if (!noflags) + { + comprintf("\t jff_ROR_%s(tmp,data,cnt);\n", ssize); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_ROR_%s(tmp,data,cnt);\n", ssize); + } + genastore("tmp", curi->dmode, "dstreg", curi->size, "data"); } -static void gen_rorw(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - (void) ssize; - comprintf("\t dont_care_flags();\n"); - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - start_brace(); - comprintf("\t int tmp = scratchie++;\n"); +static void gen_rorw(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + (void) ssize; + comprintf("\t dont_care_flags();\n"); + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + start_brace(); + comprintf("\t int tmp = scratchie++;\n"); - if (!noflags) { - comprintf("\t jff_RORW(tmp,src);\n"); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_RORW(tmp,src);\n"); - } - genastore("tmp", curi->smode, "srcreg", curi->size, "src"); + if (!noflags) + { + comprintf("\t jff_RORW(tmp,src);\n"); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_RORW(tmp,src);\n"); + } + genastore("tmp", curi->smode, "srcreg", curi->size, "src"); } -static void gen_roxl(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - mayfail; - if (curi->smode == Dreg) { - comprintf("if ((uae_u32)srcreg==(uae_u32)dstreg) {\n" - " FAIL(1);\n" - " " RETURN "\n" - "} \n"); - start_brace(); - } - isaddx; - comprintf("\t dont_care_flags();\n"); - genamode(curi->smode, "srcreg", curi->size, "cnt", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "data", 1, 0); - start_brace(); - comprintf("\t int tmp=scratchie++;\n"); +static void gen_roxl(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + mayfail; + if (curi->smode == Dreg) + { + comprintf("if ((uae_u32)srcreg==(uae_u32)dstreg) {\n" + " FAIL(1);\n" + " " RETURN "\n" + "} \n"); + start_brace(); + } + isaddx; + comprintf("\t dont_care_flags();\n"); + genamode(curi->smode, "srcreg", curi->size, "cnt", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "data", 1, 0); + start_brace(); + comprintf("\t int tmp=scratchie++;\n"); - if (!noflags) { - comprintf("\t make_flags_live();\n"); - comprintf("\t jff_ROXL_%s(tmp,data,cnt);\n", ssize); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_ROXL_%s(tmp,data,cnt);\n", ssize); - } - genastore("tmp", curi->dmode, "dstreg", curi->size, "data"); + if (!noflags) + { + comprintf("\t make_flags_live();\n"); + comprintf("\t jff_ROXL_%s(tmp,data,cnt);\n", ssize); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_ROXL_%s(tmp,data,cnt);\n", ssize); + } + genastore("tmp", curi->dmode, "dstreg", curi->size, "data"); } -static void gen_roxlw(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - (void) ssize; - isaddx; - comprintf("\t dont_care_flags();\n"); - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - start_brace(); - comprintf("\t int tmp = scratchie++;\n"); +static void gen_roxlw(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + (void) ssize; + isaddx; + comprintf("\t dont_care_flags();\n"); + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + start_brace(); + comprintf("\t int tmp = scratchie++;\n"); - if (!noflags) { - comprintf("\t make_flags_live();\n"); - comprintf("\t jff_ROXLW(tmp,src);\n"); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_ROXLW(tmp,src);\n"); - } - genastore("tmp", curi->smode, "srcreg", curi->size, "src"); + if (!noflags) + { + comprintf("\t make_flags_live();\n"); + comprintf("\t jff_ROXLW(tmp,src);\n"); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_ROXLW(tmp,src);\n"); + } + genastore("tmp", curi->smode, "srcreg", curi->size, "src"); } -static void gen_roxr(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - (void) ssize; - mayfail; - if (curi->smode == Dreg) { - comprintf("if ((uae_u32)srcreg==(uae_u32)dstreg) {\n" - " FAIL(1);\n" - " " RETURN "\n" - "} \n"); - start_brace(); - } - isaddx; - comprintf("\t dont_care_flags();\n"); - genamode(curi->smode, "srcreg", curi->size, "cnt", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "data", 1, 0); - start_brace(); - comprintf("\t int tmp=scratchie++;\n"); +static void gen_roxr(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + (void) ssize; + mayfail; + if (curi->smode == Dreg) + { + comprintf("if ((uae_u32)srcreg==(uae_u32)dstreg) {\n" + " FAIL(1);\n" + " " RETURN "\n" + "} \n"); + start_brace(); + } + isaddx; + comprintf("\t dont_care_flags();\n"); + genamode(curi->smode, "srcreg", curi->size, "cnt", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "data", 1, 0); + start_brace(); + comprintf("\t int tmp=scratchie++;\n"); - if (!noflags) { - comprintf("\t make_flags_live();\n"); - comprintf("\t jff_ROXR_%s(tmp,data,cnt);\n", ssize); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_ROXR_%s(tmp,data,cnt);\n", ssize); - } - genastore("tmp", curi->dmode, "dstreg", curi->size, "data"); + if (!noflags) + { + comprintf("\t make_flags_live();\n"); + comprintf("\t jff_ROXR_%s(tmp,data,cnt);\n", ssize); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_ROXR_%s(tmp,data,cnt);\n", ssize); + } + genastore("tmp", curi->dmode, "dstreg", curi->size, "data"); } -static void gen_roxrw(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - (void) ssize; - isaddx; - comprintf("\t dont_care_flags();\n"); - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - start_brace(); - comprintf("\t int tmp = scratchie++;\n"); +static void gen_roxrw(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + (void) ssize; + isaddx; + comprintf("\t dont_care_flags();\n"); + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + start_brace(); + comprintf("\t int tmp = scratchie++;\n"); - if (!noflags) { - comprintf("\t make_flags_live();\n"); - comprintf("\t jff_ROXRW(tmp,src);\n"); - comprintf("\t live_flags();\n"); - } else { - comprintf("\t jnf_ROXRW(tmp,src);\n"); - } - genastore("tmp", curi->smode, "srcreg", curi->size, "src"); + if (!noflags) + { + comprintf("\t make_flags_live();\n"); + comprintf("\t jff_ROXRW(tmp,src);\n"); + comprintf("\t live_flags();\n"); + } + else + { + comprintf("\t jnf_ROXRW(tmp,src);\n"); + } + genastore("tmp", curi->smode, "srcreg", curi->size, "src"); } -static void gen_scc(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - (void) ssize; - genamode(curi->smode, "srcreg", curi->size, "src", 2, 0); - start_brace(); - comprintf("\tint val = scratchie++;\n"); +static void gen_scc(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + (void) ssize; + genamode(curi->smode, "srcreg", curi->size, "src", 2, 0); + start_brace(); + comprintf("\tint val = scratchie++;\n"); - switch (curi->cc) { - case 0: /* Unconditional set */ - comprintf("\tmov_l_ri(val, 0xff);\n"); - break; - case 1: - /* Unconditional not-set */ - comprintf("\tmov_l_ri(val, 0);\n"); - break; - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - comprintf("\tmake_flags_live();\n"); /* Load the flags */ - comprintf("\tjnf_SCC(val, %d);\n", cond_codes[curi->cc]); - break; - default: - abort(); - } - genastore("val", curi->smode, "srcreg", curi->size, "src"); + switch (curi->cc) + { + case 0: /* Unconditional set */ + comprintf("\tmov_l_ri(val, 0xff);\n"); + break; + case 1: + /* Unconditional not-set */ + comprintf("\tmov_l_ri(val, 0);\n"); + break; + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + comprintf("\tmake_flags_live();\n"); /* Load the flags */ + comprintf("\tjnf_SCC(val, %d);\n", cond_codes[curi->cc]); + break; + default: + abort(); + } + genastore("val", curi->smode, "srcreg", curi->size, "src"); } -static void gen_sub(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); +static void gen_sub(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); - comprintf("\t dont_care_flags();\n"); - start_brace(); - // Use tmp register to avoid destroying upper part in .B., .W cases - comprintf("\t int tmp=scratchie++;\n"); - if (!noflags) { - comprintf("\t jff_SUB_%s(tmp,dst,src);\n", ssize); - comprintf("\t live_flags();\n"); - comprintf( - "\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); - } else { - comprintf("\t jnf_SUB_%s(tmp,dst,src);\n", ssize); - } - genastore("tmp", curi->dmode, "dstreg", curi->size, "dst"); + comprintf("\t dont_care_flags();\n"); + start_brace(); + // Use tmp register to avoid destroying upper part in .B., .W cases + comprintf("\t int tmp=scratchie++;\n"); + if (!noflags) + { + comprintf("\t jff_SUB_%s(tmp,dst,src);\n", ssize); + comprintf("\t live_flags();\n"); + comprintf( + "\t if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); + } + else + { + comprintf("\t jnf_SUB_%s(tmp,dst,src);\n", ssize); + } + genastore("tmp", curi->dmode, "dstreg", curi->size, "dst"); } -static void gen_suba(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode(curi->dmode, "dstreg", sz_long, "dst", 1, 0); - start_brace(); - comprintf("\t jnf_SUBA_%s(dst, src);\n", ssize); - genastore("dst", curi->dmode, "dstreg", sz_long, "dst"); +static void gen_suba(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + genamode(curi->dmode, "dstreg", sz_long, "dst", 1, 0); + start_brace(); + comprintf("\t jnf_SUBA_%s(dst, src);\n", ssize); + genastore("dst", curi->dmode, "dstreg", sz_long, "dst"); } -static void gen_subx(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - isaddx; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); - start_brace(); - comprintf("\tint tmp=scratchie++;\n"); - comprintf("\tdont_care_flags();\n"); - if (!noflags) { - comprintf("\t make_flags_live();\n"); - comprintf("\t jff_SUBX_%s(tmp,dst,src);\n", ssize); - comprintf("\t live_flags();\n"); - comprintf("if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); - } else { - comprintf("\t jnf_SUBX(tmp,dst,src);\n"); - } - genastore("tmp", curi->dmode, "dstreg", curi->size, "dst"); +static void gen_subx(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + isaddx; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "dst", 1, 0); + start_brace(); + comprintf("\tint tmp=scratchie++;\n"); + comprintf("\tdont_care_flags();\n"); + if (!noflags) + { + comprintf("\t make_flags_live();\n"); + comprintf("\t jff_SUBX_%s(tmp,dst,src);\n", ssize); + comprintf("\t live_flags();\n"); + comprintf("if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); + } + else + { + comprintf("\t jnf_SUBX(tmp,dst,src);\n"); + } + genastore("tmp", curi->dmode, "dstreg", curi->size, "dst"); } -static void gen_swap(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - (void) ssize; - genamode(curi->smode, "srcreg", sz_long, "src", 1, 0); - comprintf("\t dont_care_flags();\n"); - start_brace(); +static void gen_swap(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + (void) ssize; + genamode(curi->smode, "srcreg", sz_long, "src", 1, 0); + comprintf("\t dont_care_flags();\n"); + start_brace(); - if (!noflags) { - comprintf("\t jff_SWAP(src);\n"); - comprintf("\t live_flags();\n"); - comprintf("if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); - } else { - comprintf("\t jnf_SWAP(src);\n"); - } - genastore("src", curi->smode, "srcreg", sz_long, "src"); + if (!noflags) + { + comprintf("\t jff_SWAP(src);\n"); + comprintf("\t live_flags();\n"); + comprintf("if (!(needed_flags & FLAG_CZNV)) dont_care_flags();\n"); + } + else + { + comprintf("\t jnf_SWAP(src);\n"); + } + genastore("src", curi->smode, "srcreg", sz_long, "src"); } -static void gen_tst(uae_u32 opcode, struct instr *curi, char* ssize) { - (void) opcode; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - comprintf("\t dont_care_flags();\n"); - if (!noflags) { - start_brace(); - comprintf("\t jff_TST_%s(src);\n", ssize); - comprintf("\t live_flags();\n"); - } +static void gen_tst(uae_u32 opcode, struct instr *curi, char* ssize) +{ + (void) opcode; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + comprintf("\t dont_care_flags();\n"); + if (!noflags) + { + start_brace(); + comprintf("\t jff_TST_%s(src);\n", ssize); + comprintf("\t live_flags();\n"); + } } static int /* returns zero for success, non-zero for failure */ -gen_opcode(unsigned long int opcode) { - struct instr *curi = table68k + opcode; - char* ssize = NULL; +gen_opcode(unsigned long int opcode) +{ + struct instr *curi = table68k + opcode; + char* ssize = NULL; - insn_n_cycles = 2; - global_failure = 0; - long_opcode = 0; - global_isjump = 0; - global_iscjump = 0; - global_isaddx = 0; - global_cmov = 0; - global_fpu = 0; - global_mayfail = 0; - hack_opcode = opcode; - endstr[0] = 0; + insn_n_cycles = 2; + global_failure = 0; + long_opcode = 0; + global_isjump = 0; + global_iscjump = 0; + global_isaddx = 0; + global_cmov = 0; + global_fpu = 0; + global_mayfail = 0; + hack_opcode = opcode; + endstr[0] = 0; - start_brace(); - comprintf("\tuae_u8 scratchie=S1;\n"); - switch (curi->plev) { - case 0: /* not privileged */ - break; - case 1: /* unprivileged only on 68000 */ - if (cpu_level == 0) - break; - if (next_cpu_level < 0) - next_cpu_level = 0; + start_brace(); + comprintf("\tuae_u8 scratchie=S1;\n"); + switch (curi->plev) + { + case 0: /* not privileged */ + break; + case 1: /* unprivileged only on 68000 */ + if (cpu_level == 0) + break; + if (next_cpu_level < 0) + next_cpu_level = 0; - /* fall through */ - case 2: /* priviledged */ - failure; /* Easy ones first */ - break; - case 3: /* privileged if size == word */ - if (curi->size == sz_byte) - break; - failure; - break; - } - switch (curi->size) { - case sz_byte: - ssize = "b"; - break; - case sz_word: - ssize = "w"; - break; - case sz_long: - ssize = "l"; - break; - default: - abort(); - } - (void) ssize; + /* fall through */ + case 2: /* priviledged */ + failure; /* Easy ones first */ + break; + case 3: /* privileged if size == word */ + if (curi->size == sz_byte) + break; + failure; + break; + } + switch (curi->size) + { + case sz_byte: + ssize = "b"; + break; + case sz_word: + ssize = "w"; + break; + case sz_long: + ssize = "l"; + break; + default: + abort(); + } + (void) ssize; - switch (curi->mnemo) { - case i_AND: + switch (curi->mnemo) + { + case i_AND: #ifdef DISABLE_I_OR_AND_EOR - failure; + failure; #endif - gen_and(opcode, curi, ssize); - break; + gen_and(opcode, curi, ssize); + break; - case i_OR: + case i_OR: #ifdef DISABLE_I_OR_AND_EOR - failure; + failure; #endif - gen_or(opcode, curi, ssize); - break; + gen_or(opcode, curi, ssize); + break; - case i_EOR: + case i_EOR: #ifdef DISABLE_I_OR_AND_EOR - failure; + failure; #endif - gen_eor(opcode, curi, ssize); - break; + gen_eor(opcode, curi, ssize); + break; - case i_ORSR: + case i_ORSR: #ifdef DISABLE_I_ORSR_EORSR_ANDSR - failure; + failure; #endif - gen_orsr(opcode, curi, ssize); - break; + gen_orsr(opcode, curi, ssize); + break; - case i_EORSR: + case i_EORSR: #ifdef DISABLE_I_ORSR_EORSR_ANDSR - failure; + failure; #endif - gen_eorsr(opcode, curi, ssize); - break; + gen_eorsr(opcode, curi, ssize); + break; - case i_ANDSR: + case i_ANDSR: #ifdef DISABLE_I_ORSR_EORSR_ANDSR - failure; + failure; #endif - gen_andsr(opcode, curi, ssize); - break; + gen_andsr(opcode, curi, ssize); + break; - case i_SUB: + case i_SUB: #ifdef DISABLE_I_SUB - failure; + failure; #endif - gen_sub(opcode, curi, ssize); - break; + gen_sub(opcode, curi, ssize); + break; - case i_SUBA: + case i_SUBA: #ifdef DISABLE_I_SUBA - failure; + failure; #endif - gen_suba(opcode, curi, ssize); - break; + gen_suba(opcode, curi, ssize); + break; - case i_SUBX: + case i_SUBX: #ifdef DISABLE_I_SUBX - failure; + failure; #endif - gen_subx(opcode, curi, ssize); - break; + gen_subx(opcode, curi, ssize); + break; - case i_SBCD: - failure; - break; + case i_SBCD: + failure; + break; - case i_ADD: + case i_ADD: #ifdef DISABLE_I_ADD - failure; + failure; #endif - gen_add(opcode, curi, ssize); - break; + gen_add(opcode, curi, ssize); + break; - case i_ADDA: + case i_ADDA: #ifdef DISABLE_I_ADDA - failure; + failure; #endif - gen_adda(opcode, curi, ssize); - break; + gen_adda(opcode, curi, ssize); + break; - case i_ADDX: + case i_ADDX: #ifdef DISABLE_I_ADDX - failure; + failure; #endif - gen_addx(opcode, curi, ssize); - break; + gen_addx(opcode, curi, ssize); + break; - case i_ABCD: - failure; - break; + case i_ABCD: + failure; + break; - case i_NEG: + case i_NEG: #ifdef DISABLE_I_NEG - failure; + failure; #endif - gen_neg(opcode, curi, ssize); - break; + gen_neg(opcode, curi, ssize); + break; - case i_NEGX: + case i_NEGX: #ifdef DISABLE_I_NEGX - failure; + failure; #endif - gen_negx(opcode, curi, ssize); - break; + gen_negx(opcode, curi, ssize); + break; - case i_NBCD: - failure; - break; + case i_NBCD: + failure; + break; - case i_CLR: + case i_CLR: #ifdef DISABLE_I_CLR - failure; + failure; #endif - gen_clr(opcode, curi, ssize); - break; + gen_clr(opcode, curi, ssize); + break; - case i_NOT: + case i_NOT: #ifdef DISABLE_I_NOT - failure; + failure; #endif - gen_not(opcode, curi, ssize); - break; + gen_not(opcode, curi, ssize); + break; - case i_TST: + case i_TST: #ifdef DISABLE_I_TST - failure; + failure; #endif - gen_tst(opcode, curi, ssize); - break; + gen_tst(opcode, curi, ssize); + break; - case i_BCHG: + case i_BCHG: #ifdef DISABLE_I_BCHG_BCLR_BSET_BTST - failure; + failure; #endif - gen_bchg(opcode, curi, ssize); - break; + gen_bchg(opcode, curi, ssize); + break; - case i_BCLR: + case i_BCLR: #ifdef DISABLE_I_BCHG_BCLR_BSET_BTST - failure; + failure; #endif - gen_bclr(opcode, curi, ssize); - break; + gen_bclr(opcode, curi, ssize); + break; - case i_BSET: + case i_BSET: #ifdef DISABLE_I_BCHG_BCLR_BSET_BTST - failure; + failure; #endif - gen_bset(opcode, curi, ssize); - break; + gen_bset(opcode, curi, ssize); + break; - case i_BTST: + case i_BTST: #ifdef DISABLE_I_BCHG_BCLR_BSET_BTST - failure; + failure; #endif - gen_btst(opcode, curi, ssize); - break; + gen_btst(opcode, curi, ssize); + break; - case i_CMPM: - case i_CMP: + case i_CMPM: + case i_CMP: #ifdef DISABLE_I_CMPM_CMP - failure; + failure; #endif - gen_cmp(opcode, curi, ssize); - break; + gen_cmp(opcode, curi, ssize); + break; - case i_CMPA: + case i_CMPA: #ifdef DISABLE_I_CMPM_CMP - failure; + failure; #endif - gen_cmpa(opcode, curi, ssize); - break; + gen_cmpa(opcode, curi, ssize); + break; - /* The next two are coded a little unconventional, but they are doing - * weird things... */ - case i_MVPRM: - isjump; - failure; - break; + /* The next two are coded a little unconventional, but they are doing + * weird things... */ + case i_MVPRM: + isjump; + failure; + break; - case i_MVPMR: - isjump; - failure; - break; + case i_MVPMR: + isjump; + failure; + break; - case i_MOVE: + case i_MOVE: #ifdef DISABLE_I_MOVE - failure; + failure; #endif - gen_move(opcode, curi, ssize); - break; + gen_move(opcode, curi, ssize); + break; - case i_MOVEA: + case i_MOVEA: #ifdef DISABLE_I_MOVEA - failure; + failure; #endif - gen_movea(opcode, curi, ssize); - break; + gen_movea(opcode, curi, ssize); + break; - case i_MVSR2: - isjump; - failure; - break; + case i_MVSR2: + isjump; + failure; + break; - case i_MV2SR: - isjump; - failure; - break; + case i_MV2SR: + isjump; + failure; + break; - case i_SWAP: + case i_SWAP: #ifdef DISABLE_I_SWAP - failure; + failure; #endif - gen_swap(opcode, curi, ssize); - break; + gen_swap(opcode, curi, ssize); + break; - case i_EXG: + case i_EXG: #ifdef DISABLE_I_EXG - failure; + failure; #endif - gen_exg(opcode, curi, ssize); - break; + gen_exg(opcode, curi, ssize); + break; - case i_EXT: + case i_EXT: #ifdef DISABLE_I_EXT - failure; + failure; #endif - gen_ext(opcode, curi, ssize); - break; + gen_ext(opcode, curi, ssize); + break; - case i_MVMEL: + case i_MVMEL: #ifdef DISABLE_I_MVMEL - failure; + failure; #endif - genmovemel(opcode); - break; + genmovemel(opcode); + break; - case i_MVMLE: + case i_MVMLE: #ifdef DISABLE_I_MVMLE - failure; + failure; #endif - genmovemle(opcode); - break; + genmovemle(opcode); + break; - case i_TRAP: - isjump; - failure; - break; + case i_TRAP: + isjump; + failure; + break; - case i_MVR2USP: - isjump; - failure; - break; + case i_MVR2USP: + isjump; + failure; + break; - case i_MVUSP2R: - isjump; - failure; - break; + case i_MVUSP2R: + isjump; + failure; + break; - case i_RESET: - isjump; - failure; - break; + case i_RESET: + isjump; + failure; + break; - case i_NOP: - break; + case i_NOP: + break; - case i_STOP: - isjump; - failure; - break; + case i_STOP: + isjump; + failure; + break; - case i_RTE: - isjump; - failure; - break; + case i_RTE: + isjump; + failure; + break; - case i_RTD: + case i_RTD: #ifdef DISABLE_I_RTD - failure; + failure; #endif - genamode(curi->smode, "srcreg", curi->size, "offs", 1, 0); - /* offs is constant */ - comprintf("\tarm_ADD_l_ri8(offs,4);\n"); - start_brace(); - comprintf("\tint newad=scratchie++;\n" - "\treadlong(15,newad,scratchie);\n" - "\tmov_l_mr((uintptr)®s.pc,newad);\n" - "\tget_n_addr_jmp(newad,PC_P,scratchie);\n" - "\tmov_l_mr((uintptr)®s.pc_oldp,PC_P);\n" - "\tm68k_pc_offset=0;\n" - "\tarm_ADD_l(15,offs);\n"); - gen_update_next_handler(); - isjump; - break; + genamode(curi->smode, "srcreg", curi->size, "offs", 1, 0); + /* offs is constant */ + comprintf("\tarm_ADD_l_ri8(offs,4);\n"); + start_brace(); + comprintf("\tint newad=scratchie++;\n" + "\treadlong(15,newad,scratchie);\n" + "\tmov_l_mr((uintptr)®s.pc,newad);\n" + "\tget_n_addr_jmp(newad,PC_P,scratchie);\n" + "\tmov_l_mr((uintptr)®s.pc_oldp,PC_P);\n" + "\tm68k_pc_offset=0;\n" + "\tarm_ADD_l(15,offs);\n"); + gen_update_next_handler(); + isjump; + break; - case i_LINK: + case i_LINK: #ifdef DISABLE_I_LINK - failure; + failure; #endif - genamode(curi->smode, "srcreg", sz_long, "src", 1, 0); - genamode(curi->dmode, "dstreg", curi->size, "offs", 1, 0); - comprintf("\tsub_l_ri(15,4);\n" - "\twritelong_clobber(15,src,scratchie);\n" - "\tmov_l_rr(src,15);\n"); - comprintf("\tarm_ADD_l(15,offs);\n"); - genastore("src", curi->smode, "srcreg", sz_long, "src"); - break; + genamode(curi->smode, "srcreg", sz_long, "src", 1, 0); + genamode(curi->dmode, "dstreg", curi->size, "offs", 1, 0); + comprintf("\tsub_l_ri(15,4);\n" + "\twritelong_clobber(15,src,scratchie);\n" + "\tmov_l_rr(src,15);\n"); + comprintf("\tarm_ADD_l(15,offs);\n"); + genastore("src", curi->smode, "srcreg", sz_long, "src"); + break; - case i_UNLK: + case i_UNLK: #ifdef DISABLE_I_UNLK - failure; + failure; #endif - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - comprintf("\tmov_l_rr(15,src);\n" - "\treadlong(15,src,scratchie);\n" - "\tarm_ADD_l_ri8(15,4);\n"); - genastore("src", curi->smode, "srcreg", curi->size, "src"); - break; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + comprintf("\tmov_l_rr(15,src);\n" + "\treadlong(15,src,scratchie);\n" + "\tarm_ADD_l_ri8(15,4);\n"); + genastore("src", curi->smode, "srcreg", curi->size, "src"); + break; - case i_RTS: + case i_RTS: #ifdef DISABLE_I_RTS - failure; + failure; #endif - comprintf("\tint newad=scratchie++;\n" - "\treadlong(15,newad,scratchie);\n" - "\tmov_l_mr((uintptr)®s.pc,newad);\n" - "\tget_n_addr_jmp(newad,PC_P,scratchie);\n" - "\tmov_l_mr((uintptr)®s.pc_oldp,PC_P);\n" - "\tm68k_pc_offset=0;\n" - "\tarm_ADD_l_ri8(15,4);\n"); - gen_update_next_handler(); - isjump; - break; + comprintf("\tint newad=scratchie++;\n" + "\treadlong(15,newad,scratchie);\n" + "\tmov_l_mr((uintptr)®s.pc,newad);\n" + "\tget_n_addr_jmp(newad,PC_P,scratchie);\n" + "\tmov_l_mr((uintptr)®s.pc_oldp,PC_P);\n" + "\tm68k_pc_offset=0;\n" + "\tarm_ADD_l_ri8(15,4);\n"); + gen_update_next_handler(); + isjump; + break; - case i_TRAPV: - isjump; - failure; - break; + case i_TRAPV: + isjump; + failure; + break; - case i_RTR: - isjump; - failure; - break; + case i_RTR: + isjump; + failure; + break; - case i_JSR: + case i_JSR: #ifdef DISABLE_I_JSR - failure; + failure; #endif - isjump; - genamode(curi->smode, "srcreg", curi->size, "src", 0, 0); - start_brace(); - comprintf( - "\tuae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset;\n"); - comprintf("\tint ret=scratchie++;\n" - "\tmov_l_ri(ret,retadd);\n" - "\tsub_l_ri(15,4);\n" - "\twritelong_clobber(15,ret,scratchie);\n"); - comprintf("\tmov_l_mr((uintptr)®s.pc,srca);\n" - "\tget_n_addr_jmp(srca,PC_P,scratchie);\n" - "\tmov_l_mr((uintptr)®s.pc_oldp,PC_P);\n" - "\tm68k_pc_offset=0;\n"); - gen_update_next_handler(); - break; + isjump; + genamode(curi->smode, "srcreg", curi->size, "src", 0, 0); + start_brace(); + comprintf( + "\tuae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset;\n"); + comprintf("\tint ret=scratchie++;\n" + "\tmov_l_ri(ret,retadd);\n" + "\tsub_l_ri(15,4);\n" + "\twritelong_clobber(15,ret,scratchie);\n"); + comprintf("\tmov_l_mr((uintptr)®s.pc,srca);\n" + "\tget_n_addr_jmp(srca,PC_P,scratchie);\n" + "\tmov_l_mr((uintptr)®s.pc_oldp,PC_P);\n" + "\tm68k_pc_offset=0;\n"); + gen_update_next_handler(); + break; - case i_JMP: + case i_JMP: #ifdef DISABLE_I_JMP - failure; + failure; #endif - isjump; - genamode(curi->smode, "srcreg", curi->size, "src", 0, 0); - comprintf("\tmov_l_mr((uintptr)®s.pc,srca);\n" - "\tget_n_addr_jmp(srca,PC_P,scratchie);\n" - "\tmov_l_mr((uintptr)®s.pc_oldp,PC_P);\n" - "\tm68k_pc_offset=0;\n"); - gen_update_next_handler(); - break; + isjump; + genamode(curi->smode, "srcreg", curi->size, "src", 0, 0); + comprintf("\tmov_l_mr((uintptr)®s.pc,srca);\n" + "\tget_n_addr_jmp(srca,PC_P,scratchie);\n" + "\tmov_l_mr((uintptr)®s.pc_oldp,PC_P);\n" + "\tm68k_pc_offset=0;\n"); + gen_update_next_handler(); + break; - case i_BSR: + case i_BSR: #ifdef DISABLE_I_BSR - failure; + failure; #endif - is_const_jump - ; - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - start_brace(); - comprintf( - "\tuae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset;\n"); - comprintf("\tint ret=scratchie++;\n" - "\tmov_l_ri(ret,retadd);\n" - "\tsub_l_ri(15,4);\n" - "\twritelong_clobber(15,ret,scratchie);\n"); - comprintf("\tarm_ADD_l_ri(src,m68k_pc_offset_thisinst+2);\n"); - comprintf("\tm68k_pc_offset=0;\n"); - comprintf("\tarm_ADD_l(PC_P,src);\n"); - comprintf("\tcomp_pc_p=(uae_u8*)(uintptr)get_const(PC_P);\n"); - break; + is_const_jump + ; + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + start_brace(); + comprintf( + "\tuae_u32 retadd=start_pc+((char *)comp_pc_p-(char *)start_pc_p)+m68k_pc_offset;\n"); + comprintf("\tint ret=scratchie++;\n" + "\tmov_l_ri(ret,retadd);\n" + "\tsub_l_ri(15,4);\n" + "\twritelong_clobber(15,ret,scratchie);\n"); + comprintf("\tarm_ADD_l_ri(src,m68k_pc_offset_thisinst+2);\n"); + comprintf("\tm68k_pc_offset=0;\n"); + comprintf("\tarm_ADD_l(PC_P,src);\n"); + comprintf("\tcomp_pc_p=(uae_u8*)(uintptr)get_const(PC_P);\n"); + break; - case i_Bcc: + case i_Bcc: #ifdef DISABLE_I_BCC - failure; + failure; #endif - comprintf("\tuae_u32 v1, v2;\n"); - genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); - /* That source is an immediate, so we can clobber it with abandon */ - comprintf("\tsub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2);\n"); - /* Leave the following as "add" --- it will allow it to be optimized - away due to src being a constant ;-) */ - comprintf("\tarm_ADD_l_ri(src, (uintptr)comp_pc_p);\n"); - comprintf("\tmov_l_ri(PC_P, (uintptr)comp_pc_p);\n"); - /* Now they are both constant. Might as well fold in m68k_pc_offset */ - comprintf("\tarm_ADD_l_ri(src, m68k_pc_offset);\n"); - comprintf("\tarm_ADD_l_ri(PC_P, m68k_pc_offset);\n"); - comprintf("\tm68k_pc_offset = 0;\n"); + comprintf("\tuae_u32 v1, v2;\n"); + genamode(curi->smode, "srcreg", curi->size, "src", 1, 0); + /* That source is an immediate, so we can clobber it with abandon */ + comprintf("\tsub_l_ri(src, m68k_pc_offset - m68k_pc_offset_thisinst - 2);\n"); + /* Leave the following as "add" --- it will allow it to be optimized + away due to src being a constant ;-) */ + comprintf("\tarm_ADD_l_ri(src, (uintptr)comp_pc_p);\n"); + comprintf("\tmov_l_ri(PC_P, (uintptr)comp_pc_p);\n"); + /* Now they are both constant. Might as well fold in m68k_pc_offset */ + comprintf("\tarm_ADD_l_ri(src, m68k_pc_offset);\n"); + comprintf("\tarm_ADD_l_ri(PC_P, m68k_pc_offset);\n"); + comprintf("\tm68k_pc_offset = 0;\n"); - if (curi->cc >= 2) { - comprintf("\tv1 = get_const(PC_P);\n"); - comprintf("\tv2 = get_const(src);\n"); - comprintf("\tregister_branch(v1, v2, %d);\n", cond_codes[curi->cc]); - comprintf("\tmake_flags_live();\n"); /* Load the flags */ - isjump; - } else { - is_const_jump - ; - } + if (curi->cc >= 2) + { + comprintf("\tv1 = get_const(PC_P);\n"); + comprintf("\tv2 = get_const(src);\n"); + comprintf("\tregister_branch(v1, v2, %d);\n", cond_codes[curi->cc]); + comprintf("\tmake_flags_live();\n"); /* Load the flags */ + isjump; + } + else + { + is_const_jump + ; + } - switch (curi->cc) { - case 0: /* Unconditional jump */ - comprintf("\tmov_l_rr(PC_P, src);\n"); - comprintf("\tcomp_pc_p = (uae_u8*)(uintptr)get_const(PC_P);\n"); - break; - case 1: - break; /* This is silly! */ - case 8: - failure; - break; /* Work out details! FIXME */ - case 9: - failure; - break; /* Not critical, though! */ + switch (curi->cc) + { + case 0: /* Unconditional jump */ + comprintf("\tmov_l_rr(PC_P, src);\n"); + comprintf("\tcomp_pc_p = (uae_u8*)(uintptr)get_const(PC_P);\n"); + break; + case 1: + break; /* This is silly! */ + case 8: + failure; + break; /* Work out details! FIXME */ + case 9: + failure; + break; /* Not critical, though! */ - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - break; - default: - abort(); - } - break; + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + break; + default: + abort(); + } + break; - case i_LEA: + case i_LEA: #ifdef DISABLE_I_LEA - failure; + failure; #endif - genamode(curi->smode, "srcreg", curi->size, "src", 0, 0); - genamode(curi->dmode, "dstreg", curi->size, "dst", 2, 0); - genastore("srca", curi->dmode, "dstreg", curi->size, "dst"); - break; + genamode(curi->smode, "srcreg", curi->size, "src", 0, 0); + genamode(curi->dmode, "dstreg", curi->size, "dst", 2, 0); + genastore("srca", curi->dmode, "dstreg", curi->size, "dst"); + break; - case i_PEA: + case i_PEA: #ifdef DISABLE_I_PEA - failure; + failure; #endif - if (table68k[opcode].smode == Areg || table68k[opcode].smode == Aind - || table68k[opcode].smode == Aipi - || table68k[opcode].smode == Apdi - || table68k[opcode].smode == Ad16 - || table68k[opcode].smode == Ad8r) - comprintf("if (srcreg==7) dodgy=1;\n"); + if (table68k[opcode].smode == Areg || table68k[opcode].smode == Aind + || table68k[opcode].smode == Aipi + || table68k[opcode].smode == Apdi + || table68k[opcode].smode == Ad16 + || table68k[opcode].smode == Ad8r) + comprintf("if (srcreg==7) dodgy=1;\n"); - genamode(curi->smode, "srcreg", curi->size, "src", 0, 0); - genamode(Apdi, "7", sz_long, "dst", 2, 0); - genastore("srca", Apdi, "7", sz_long, "dst"); - break; + genamode(curi->smode, "srcreg", curi->size, "src", 0, 0); + genamode(Apdi, "7", sz_long, "dst", 2, 0); + genastore("srca", Apdi, "7", sz_long, "dst"); + break; - case i_DBcc: + case i_DBcc: #ifdef DISABLE_I_DBCC - failure; + failure; #endif - gen_dbcc(opcode, curi, ssize); - break; + gen_dbcc(opcode, curi, ssize); + break; - case i_Scc: + case i_Scc: #ifdef DISABLE_I_SCC - failure; + failure; #endif - gen_scc(opcode, curi, ssize); - break; + gen_scc(opcode, curi, ssize); + break; - case i_DIVU: + case i_DIVU: #ifdef DISABLE_I_DIVU - isjump; - failure; + isjump; + failure; #endif - gen_divu(opcode, curi, ssize); - break; + gen_divu(opcode, curi, ssize); + break; - case i_DIVS: - isjump; - failure; - break; + case i_DIVS: + isjump; + failure; + break; - case i_MULU: + case i_MULU: #ifdef DISABLE_I_MULU - failure; + failure; #endif - gen_mulu(opcode, curi, ssize); - break; + gen_mulu(opcode, curi, ssize); + break; - case i_MULS: + case i_MULS: #ifdef DISABLE_I_MULS - failure; + failure; #endif - gen_muls(opcode, curi, ssize); - break; + gen_muls(opcode, curi, ssize); + break; - case i_CHK: - isjump; - failure; - break; + case i_CHK: + isjump; + failure; + break; - case i_CHK2: - isjump; - failure; - break; + case i_CHK2: + isjump; + failure; + break; - case i_ASR: + case i_ASR: #ifdef DISABLE_I_ASR - failure; + failure; #endif - gen_asr(opcode, curi, ssize); - break; + gen_asr(opcode, curi, ssize); + break; - case i_ASL: + case i_ASL: #ifdef DISABLE_I_ASL - failure; + failure; #endif - gen_asl(opcode, curi, ssize); - break; + gen_asl(opcode, curi, ssize); + break; - case i_LSR: + case i_LSR: #ifdef DISABLE_I_LSR - failure; + failure; #endif - gen_lsr(opcode, curi, ssize); - break; + gen_lsr(opcode, curi, ssize); + break; - case i_LSL: + case i_LSL: #ifdef DISABLE_I_LSL - failure; + failure; #endif - gen_lsl(opcode, curi, ssize); - break; + gen_lsl(opcode, curi, ssize); + break; - case i_ROL: + case i_ROL: #ifdef DISABLE_I_ROL - failure; + failure; #endif - gen_rol(opcode, curi, ssize); - break; + gen_rol(opcode, curi, ssize); + break; - case i_ROR: + case i_ROR: #ifdef DISABLE_I_ROR - failure; + failure; #endif - gen_ror(opcode, curi, ssize); - break; + gen_ror(opcode, curi, ssize); + break; - case i_ROXL: + case i_ROXL: #ifdef DISABLE_I_ROXL - failure; + failure; #endif - gen_roxl(opcode, curi, ssize); - break; + gen_roxl(opcode, curi, ssize); + break; - case i_ROXR: + case i_ROXR: #ifdef DISABLE_I_ROXR - failure; + failure; #endif - gen_roxr(opcode, curi, ssize); - break; + gen_roxr(opcode, curi, ssize); + break; - case i_ASRW: + case i_ASRW: #ifdef DISABLE_I_ASRW - failure; + failure; #endif - gen_asrw(opcode, curi, ssize); - break; + gen_asrw(opcode, curi, ssize); + break; - case i_ASLW: + case i_ASLW: #ifdef DISABLE_I_ASLW - failure; + failure; #endif - gen_aslw(opcode, curi, ssize); - break; + gen_aslw(opcode, curi, ssize); + break; - case i_LSRW: + case i_LSRW: #ifdef DISABLE_I_LSRW - failure; + failure; #endif - gen_lsrw(opcode, curi, ssize); - break; + gen_lsrw(opcode, curi, ssize); + break; - case i_LSLW: + case i_LSLW: #ifdef DISABLE_I_LSLW - failure; + failure; #endif - gen_lslw(opcode, curi, ssize); - break; + gen_lslw(opcode, curi, ssize); + break; - case i_ROLW: + case i_ROLW: #ifdef DISABLE_I_ROLW - failure; + failure; #endif - gen_rolw(opcode, curi, ssize); - break; + gen_rolw(opcode, curi, ssize); + break; - case i_RORW: + case i_RORW: #ifdef DISABLE_I_RORW - failure; + failure; #endif - gen_rorw(opcode, curi, ssize); - break; + gen_rorw(opcode, curi, ssize); + break; - case i_ROXLW: + case i_ROXLW: #ifdef DISABLE_I_ROXLW - failure; + failure; #endif - gen_roxlw(opcode, curi, ssize); - break; + gen_roxlw(opcode, curi, ssize); + break; - case i_ROXRW: + case i_ROXRW: #ifdef DISABLE_I_ROXRW - failure; + failure; #endif - gen_roxrw(opcode, curi, ssize); - break; + gen_roxrw(opcode, curi, ssize); + break; - case i_MOVEC2: - isjump; - failure; - break; + case i_MOVEC2: + isjump; + failure; + break; - case i_MOVE2C: - isjump; - failure; - break; + case i_MOVE2C: + isjump; + failure; + break; - case i_CAS: - failure; - break; + case i_CAS: + failure; + break; - case i_CAS2: - failure; - break; + case i_CAS2: + failure; + break; - case i_MOVES: /* ignore DFC and SFC because we have no MMU */ - isjump; - failure; - break; + case i_MOVES: /* ignore DFC and SFC because we have no MMU */ + isjump; + failure; + break; - case i_BKPT: /* only needed for hardware emulators */ - isjump; - failure; - break; + case i_BKPT: /* only needed for hardware emulators */ + isjump; + failure; + break; - case i_CALLM: /* not present in 68030 */ - isjump; - failure; - break; + case i_CALLM: /* not present in 68030 */ + isjump; + failure; + break; - case i_RTM: /* not present in 68030 */ - isjump; - failure; - break; + case i_RTM: /* not present in 68030 */ + isjump; + failure; + break; - case i_TRAPcc: - isjump; - failure; - break; + case i_TRAPcc: + isjump; + failure; + break; - case i_DIVL: - isjump; - failure; - break; + case i_DIVL: + isjump; + failure; + break; - case i_MULL: + case i_MULL: #ifdef DISABLE_I_MULL - failure; + failure; #endif - gen_mull(opcode, curi, ssize); - break; + gen_mull(opcode, curi, ssize); + break; - case i_BFTST: - case i_BFEXTU: - case i_BFCHG: - case i_BFEXTS: - case i_BFCLR: - case i_BFFFO: - case i_BFSET: - case i_BFINS: - failure; - break; + case i_BFTST: + case i_BFEXTU: + case i_BFCHG: + case i_BFEXTS: + case i_BFCLR: + case i_BFFFO: + case i_BFSET: + case i_BFINS: + failure; + break; - case i_PACK: - failure; - break; + case i_PACK: + failure; + break; - case i_UNPK: - failure; - break; + case i_UNPK: + failure; + break; - case i_TAS: - failure; - break; + case i_TAS: + failure; + break; - case i_FPP: + case i_FPP: #ifdef DISABLE_I_FPP - failure; + failure; #endif - uses_fpu; - mayfail; - comprintf("#ifdef USE_JIT_FPU\n"); - comprintf("\tuae_u16 extra=%s;\n",gen_nextiword()); - swap_opcode(); - comprintf("\tcomp_fpp_opp(opcode,extra);\n"); - comprintf("#else\n"); - comprintf("\tfailure = 1;\n"); - comprintf("#endif\n"); - break; + uses_fpu; + mayfail; + comprintf("#ifdef USE_JIT_FPU\n"); + comprintf("\tuae_u16 extra=%s;\n",gen_nextiword()); + swap_opcode(); + comprintf("\tcomp_fpp_opp(opcode,extra);\n"); + comprintf("#else\n"); + comprintf("\tfailure = 1;\n"); + comprintf("#endif\n"); + break; case i_FBcc: #ifdef DISABLE_I_FBCC - failure; + failure; #endif - isjump; - uses_cmov; - mayfail; - comprintf("#ifdef USE_JIT_FPU\n"); - swap_opcode(); - comprintf("\tcomp_fbcc_opp(opcode);\n"); - comprintf("#else\n"); - comprintf("\tfailure = 1;\n"); - comprintf("#endif\n"); - break; + isjump; + uses_cmov; + mayfail; + comprintf("#ifdef USE_JIT_FPU\n"); + swap_opcode(); + comprintf("\tcomp_fbcc_opp(opcode);\n"); + comprintf("#else\n"); + comprintf("\tfailure = 1;\n"); + comprintf("#endif\n"); + break; - case i_FDBcc: - uses_fpu; - isjump; - failure; - break; + case i_FDBcc: + uses_fpu; + isjump; + failure; + break; - case i_FScc: + case i_FScc: #ifdef DISABLE_I_FSCC - failure; + failure; #endif - mayfail; - uses_cmov; - comprintf("#ifdef USE_JIT_FPU\n"); - comprintf("\tuae_u16 extra=%s;\n",gen_nextiword()); - swap_opcode(); - comprintf("\tcomp_fscc_opp(opcode,extra);\n"); - comprintf("#else\n"); - comprintf("\tfailure = 1;\n"); - comprintf("#endif\n"); - break; + mayfail; + uses_cmov; + comprintf("#ifdef USE_JIT_FPU\n"); + comprintf("\tuae_u16 extra=%s;\n",gen_nextiword()); + swap_opcode(); + comprintf("\tcomp_fscc_opp(opcode,extra);\n"); + comprintf("#else\n"); + comprintf("\tfailure = 1;\n"); + comprintf("#endif\n"); + break; - case i_FTRAPcc: - uses_fpu; - isjump; - failure; - break; + case i_FTRAPcc: + uses_fpu; + isjump; + failure; + break; - case i_FSAVE: - uses_fpu; - failure; - break; + case i_FSAVE: + uses_fpu; + failure; + break; - case i_FRESTORE: - uses_fpu; - failure; - break; + case i_FRESTORE: + uses_fpu; + failure; + break; - case i_CINVL: - case i_CINVP: - case i_CINVA: - isjump; /* Not really, but it's probably a good idea to stop + case i_CINVL: + case i_CINVP: + case i_CINVA: + isjump; /* Not really, but it's probably a good idea to stop translating at this point */ - failure; - comprintf("\tflush_icache(0, 3);\n"); /* Differentiate a bit more? */ - break; + failure; + comprintf("\tflush_icache(0, 3);\n"); /* Differentiate a bit more? */ + break; - case i_CPUSHL: - case i_CPUSHP: - case i_CPUSHA: - isjump; /* Not really, but it's probably a good idea to stop + case i_CPUSHL: + case i_CPUSHP: + case i_CPUSHA: + isjump; /* Not really, but it's probably a good idea to stop translating at this point */ - failure; - break; + failure; + break; - case i_MOVE16: + case i_MOVE16: #ifdef DISABLE_I_MOVE16 - failure; + failure; #endif - gen_move16(opcode, curi); - break; + gen_move16(opcode, curi); + break; case i_MMUOP030: case i_PFLUSHN: @@ -2830,322 +3085,330 @@ gen_opcode(unsigned long int opcode) { case i_PTESTR: case i_PTESTW: case i_LPSTOP: - isjump; - failure; - break; + isjump; + failure; + break; - default: - abort(); - break; - } - comprintf("%s", endstr); - finish_braces(); - sync_m68k_pc(); - if (global_mayfail) - comprintf("\tif (failure) m68k_pc_offset=m68k_pc_offset_thisinst;\n"); - return global_failure; + default: + abort(); + break; + } + comprintf("%s", endstr); + finish_braces(); + sync_m68k_pc(); + if (global_mayfail) + comprintf("\tif (failure) m68k_pc_offset=m68k_pc_offset_thisinst;\n"); + return global_failure; } -static void -generate_includes(FILE * f) +static void +generate_includes(FILE * f) { - fprintf (f, "#include \"sysconfig.h\"\n"); - fprintf (f, "#if defined(JIT)\n"); - fprintf(f, "#include \"sysdeps.h\"\n"); - fprintf (f, "#include \"options.h\"\n"); - fprintf(f, "#include \"memory.h\"\n"); - fprintf(f, "#include \"newcpu.h\"\n"); - fprintf (f, "#include \"custom.h\"\n"); - fprintf(f, "#include \"comptbl.h\"\n"); - fprintf(f, "#include \"debug.h\"\n"); + fprintf (f, "#include \"sysconfig.h\"\n"); + fprintf (f, "#if defined(JIT)\n"); + fprintf(f, "#include \"sysdeps.h\"\n"); + fprintf (f, "#include \"options.h\"\n"); + fprintf(f, "#include \"memory.h\"\n"); + fprintf(f, "#include \"newcpu.h\"\n"); + fprintf (f, "#include \"custom.h\"\n"); + fprintf(f, "#include \"comptbl.h\"\n"); + fprintf(f, "#include \"debug.h\"\n"); } static int postfix; -static void -generate_one_opcode(int rp, int noflags) +static void +generate_one_opcode(int rp, int noflags) { - int i; - uae_u16 smsk, dmsk; - unsigned int opcode = opcode_map[rp]; - int aborted = 0; - int have_srcreg = 0; - int have_dstreg = 0; + int i; + uae_u16 smsk, dmsk; + unsigned int opcode = opcode_map[rp]; + int aborted = 0; + int have_srcreg = 0; + int have_dstreg = 0; - if (table68k[opcode].mnemo == i_ILLG - || table68k[opcode].clev > cpu_level) - return; + if (table68k[opcode].mnemo == i_ILLG + || table68k[opcode].clev > cpu_level) + return; - for (i = 0; lookuptab[i].name[0]; i++) - { - if (table68k[opcode].mnemo == lookuptab[i].mnemo) - break; - } - - if (table68k[opcode].handler != -1) - return; - - switch (table68k[opcode].stype) - { - case 0: - smsk = 7; - break; - case 1: - smsk = 255; - break; - case 2: - smsk = 15; - break; - case 3: - smsk = 7; - break; - case 4: - smsk = 7; - break; - case 5: - smsk = 63; - break; - case 6: - smsk = 255; - break; - case 7: - smsk = 3; - break; - default: - abort(); - } - dmsk = 7; - - next_cpu_level = -1; - if (table68k[opcode].suse - && table68k[opcode].smode != imm && table68k[opcode].smode != imm0 - && table68k[opcode].smode != imm1 && table68k[opcode].smode != imm2 - && table68k[opcode].smode != absw && table68k[opcode].smode != absl - && table68k[opcode].smode != PC8r && table68k[opcode].smode != PC16) - { - have_srcreg = 1; - if (table68k[opcode].spos == -1) + for (i = 0; lookuptab[i].name[0]; i++) { - if (((int) table68k[opcode].sreg) >= 128) - comprintf("\tuae_s32 srcreg = (uae_s32)(uae_s8)%d;\n", (int) table68k[opcode].sreg); - else - comprintf("\tuae_s32 srcreg = %d;\n", (int) table68k[opcode].sreg); - } - else + if (table68k[opcode].mnemo == lookuptab[i].mnemo) + break; + } + + if (table68k[opcode].handler != -1) + return; + + switch (table68k[opcode].stype) { - char source[100]; - int pos = table68k[opcode].spos; + case 0: + smsk = 7; + break; + case 1: + smsk = 255; + break; + case 2: + smsk = 15; + break; + case 3: + smsk = 7; + break; + case 4: + smsk = 7; + break; + case 5: + smsk = 63; + break; + case 6: + smsk = 255; + break; + case 7: + smsk = 3; + break; + default: + abort(); + } + dmsk = 7; - if (pos) - sprintf(source, "((opcode >> %d) & %d)", pos, smsk); - else - sprintf(source, "(opcode & %d)", smsk); - - if (table68k[opcode].stype == 3) - comprintf("\tuae_s32 srcreg = imm8_table[%s];\n", source); - else if (table68k[opcode].stype == 1) - comprintf("\tuae_s32 srcreg = (uae_s32)(uae_s8)%s;\n", source); - else - comprintf("\tuae_s32 srcreg = %s;\n", source); - } - } - if (table68k[opcode].duse - /* Yes, the dmode can be imm, in case of LINK or DBcc */ - && table68k[opcode].dmode != imm && table68k[opcode].dmode != imm0 - && table68k[opcode].dmode != imm1 && table68k[opcode].dmode != imm2 - && table68k[opcode].dmode != absw && table68k[opcode].dmode != absl) - { - have_dstreg = 1; - if (table68k[opcode].dpos == -1) + next_cpu_level = -1; + if (table68k[opcode].suse + && table68k[opcode].smode != imm && table68k[opcode].smode != imm0 + && table68k[opcode].smode != imm1 && table68k[opcode].smode != imm2 + && table68k[opcode].smode != absw && table68k[opcode].smode != absl + && table68k[opcode].smode != PC8r && table68k[opcode].smode != PC16) { - if (((int) table68k[opcode].dreg) >= 128) - comprintf("\tuae_s32 dstreg = (uae_s32)(uae_s8)%d;\n", (int) table68k[opcode].dreg); - else - comprintf("\tuae_s32 dstreg = %d;\n", (int) table68k[opcode].dreg); - } - else + have_srcreg = 1; + if (table68k[opcode].spos == -1) + { + if (((int) table68k[opcode].sreg) >= 128) + comprintf("\tuae_s32 srcreg = (uae_s32)(uae_s8)%d;\n", (int) table68k[opcode].sreg); + else + comprintf("\tuae_s32 srcreg = %d;\n", (int) table68k[opcode].sreg); + } + else + { + char source[100]; + int pos = table68k[opcode].spos; + + if (pos) + sprintf(source, "((opcode >> %d) & %d)", pos, smsk); + else + sprintf(source, "(opcode & %d)", smsk); + + if (table68k[opcode].stype == 3) + comprintf("\tuae_s32 srcreg = imm8_table[%s];\n", source); + else if (table68k[opcode].stype == 1) + comprintf("\tuae_s32 srcreg = (uae_s32)(uae_s8)%s;\n", source); + else + comprintf("\tuae_s32 srcreg = %s;\n", source); + } + } + if (table68k[opcode].duse + /* Yes, the dmode can be imm, in case of LINK or DBcc */ + && table68k[opcode].dmode != imm && table68k[opcode].dmode != imm0 + && table68k[opcode].dmode != imm1 && table68k[opcode].dmode != imm2 + && table68k[opcode].dmode != absw && table68k[opcode].dmode != absl) { - int pos = table68k[opcode].dpos; + have_dstreg = 1; + if (table68k[opcode].dpos == -1) + { + if (((int) table68k[opcode].dreg) >= 128) + comprintf("\tuae_s32 dstreg = (uae_s32)(uae_s8)%d;\n", (int) table68k[opcode].dreg); + else + comprintf("\tuae_s32 dstreg = %d;\n", (int) table68k[opcode].dreg); + } + else + { + int pos = table68k[opcode].dpos; - if (pos) - comprintf("\tuae_u32 dstreg = (opcode >> %d) & %d;\n", - pos, dmsk); - else - comprintf("\tuae_u32 dstreg = opcode & %d;\n", dmsk); - } - } + if (pos) + comprintf("\tuae_u32 dstreg = (opcode >> %d) & %d;\n", + pos, dmsk); + else + comprintf("\tuae_u32 dstreg = opcode & %d;\n", dmsk); + } + } - if (have_srcreg && have_dstreg && - (table68k[opcode].dmode == Areg || - table68k[opcode].dmode == Aind || - table68k[opcode].dmode == Aipi || - table68k[opcode].dmode == Apdi || - table68k[opcode].dmode == Ad16 || - table68k[opcode].dmode == Ad8r) && - (table68k[opcode].smode == Areg || - table68k[opcode].smode == Aind || - table68k[opcode].smode == Aipi || - table68k[opcode].smode == Apdi || - table68k[opcode].smode == Ad16 || - table68k[opcode].smode == Ad8r) - ) { - comprintf("\tuae_u32 dodgy=(srcreg==(uae_s32)dstreg);\n"); - } - else { - comprintf("\tuae_u32 dodgy=0;\n"); - } - comprintf("\tuae_u32 m68k_pc_offset_thisinst=m68k_pc_offset;\n"); - comprintf("\tm68k_pc_offset+=2;\n"); + if (have_srcreg && have_dstreg && + (table68k[opcode].dmode == Areg || + table68k[opcode].dmode == Aind || + table68k[opcode].dmode == Aipi || + table68k[opcode].dmode == Apdi || + table68k[opcode].dmode == Ad16 || + table68k[opcode].dmode == Ad8r) && + (table68k[opcode].smode == Areg || + table68k[opcode].smode == Aind || + table68k[opcode].smode == Aipi || + table68k[opcode].smode == Apdi || + table68k[opcode].smode == Ad16 || + table68k[opcode].smode == Ad8r) + ) + { + comprintf("\tuae_u32 dodgy=(srcreg==(uae_s32)dstreg);\n"); + } + else + { + comprintf("\tuae_u32 dodgy=0;\n"); + } + comprintf("\tuae_u32 m68k_pc_offset_thisinst=m68k_pc_offset;\n"); + comprintf("\tm68k_pc_offset+=2;\n"); - aborted = gen_opcode(opcode); - { - int flags = 0; - if (global_isjump) flags |= 1; - if (long_opcode) flags |= 2; - if (global_cmov) flags |= 4; - if (global_isaddx) flags |= 8; - if (global_iscjump) flags |= 16; - if (global_fpu) flags |= 32; + aborted = gen_opcode(opcode); + { + int flags = 0; + if (global_isjump) flags |= 1; + if (long_opcode) flags |= 2; + if (global_cmov) flags |= 4; + if (global_isaddx) flags |= 8; + if (global_iscjump) flags |= 16; + if (global_fpu) flags |= 32; - comprintf ("return 0;\n"); - comprintf("}\n"); + comprintf ("return 0;\n"); + comprintf("}\n"); - char name[100] = { 0 }; - for (int k = 0; lookuptab[i].name[k]; k++) - name[k] = lookuptab[i].name[k]; + char name[100] = { 0 }; + for (int k = 0; lookuptab[i].name[k]; k++) + name[k] = lookuptab[i].name[k]; - if (aborted) { - fprintf(stblfile, "{ NULL, 0x%08x, %ld }, /* %s */\n", flags, opcode, name); - com_discard(); - } else { - if (noflags) { - fprintf(stblfile, "{ op_%lx_%d_comp_nf, 0x%08x, %ld }, /* %s */\n", opcode, postfix, flags, opcode, name); - fprintf(headerfile, "extern compop_func op_%lx_%d_comp_nf;\n", opcode, postfix); - printf("uae_u32 REGPARAM2 op_%lx_%d_comp_nf(uae_u32 opcode) /* %s */\n{\n", opcode, postfix, name); - } else { - fprintf(stblfile, "{ op_%lx_%d_comp_ff, 0x%08x, %ld }, /* %s */\n", opcode, postfix, flags, opcode, name); - fprintf(headerfile, "extern compop_func op_%lx_%d_comp_ff;\n", opcode, postfix); - printf("uae_u32 REGPARAM2 op_%lx_%d_comp_ff(uae_u32 opcode) /* %s */\n{\n", opcode, postfix, name); - } - com_flush(); - } - } - opcode_next_clev[rp] = next_cpu_level; - opcode_last_postfix[rp] = postfix; + if (aborted) + { + fprintf(stblfile, "{ NULL, 0x%08x, %ld }, /* %s */\n", flags, opcode, name); + com_discard(); + } + else + { + if (noflags) + { + fprintf(stblfile, "{ op_%lx_%d_comp_nf, 0x%08x, %ld }, /* %s */\n", opcode, postfix, flags, opcode, name); + fprintf(headerfile, "extern compop_func op_%lx_%d_comp_nf;\n", opcode, postfix); + printf("uae_u32 REGPARAM2 op_%lx_%d_comp_nf(uae_u32 opcode) /* %s */\n{\n", opcode, postfix, name); + } + else + { + fprintf(stblfile, "{ op_%lx_%d_comp_ff, 0x%08x, %ld }, /* %s */\n", opcode, postfix, flags, opcode, name); + fprintf(headerfile, "extern compop_func op_%lx_%d_comp_ff;\n", opcode, postfix); + printf("uae_u32 REGPARAM2 op_%lx_%d_comp_ff(uae_u32 opcode) /* %s */\n{\n", opcode, postfix, name); + } + com_flush(); + } + } + opcode_next_clev[rp] = next_cpu_level; + opcode_last_postfix[rp] = postfix; } -static void -generate_func(int noflags) +static void +generate_func(int noflags) { - int i, j, rp; + int i, j, rp; - using_prefetch = 0; - using_exception_3 = 0; - for (i = 0; i < 1; i++) /* We only do one level! */ - { - cpu_level = 5 - i; - postfix = i; - - if (noflags) - fprintf(stblfile, "extern const struct comptbl op_smalltbl_%d_comp_nf[] = {\n", postfix); - else - fprintf(stblfile, "extern const struct comptbl op_smalltbl_%d_comp_ff[] = {\n", postfix); - - /* sam: this is for people with low memory (eg. me :)) */ - printf("\n" - "#if !defined(PART_1) && !defined(PART_2) && " - "!defined(PART_3) && !defined(PART_4) && " - "!defined(PART_5) && !defined(PART_6) && " - "!defined(PART_7) && !defined(PART_8)" - "\n" - "#define PART_1 1\n" - "#define PART_2 1\n" - "#define PART_3 1\n" - "#define PART_4 1\n" - "#define PART_5 1\n" - "#define PART_6 1\n" - "#define PART_7 1\n" - "#define PART_8 1\n" - "#endif\n\n"); - printf ("extern void comp_fpp_opp();\n" - "extern void comp_fscc_opp();\n" - "extern void comp_fbcc_opp();\n\n"); - - rp = 0; - for (j = 1; j <= 8; ++j) + using_prefetch = 0; + using_exception_3 = 0; + for (i = 0; i < 1; i++) /* We only do one level! */ { - int k = (j * nr_cpuop_funcs) / 8; - printf("#ifdef PART_%d\n", j); - for (; rp < k; rp++) - generate_one_opcode(rp, noflags); - printf("#endif\n\n"); - } + cpu_level = 5 - i; + postfix = i; - fprintf(stblfile, "{ 0, 0,65536 }};\n"); - } + if (noflags) + fprintf(stblfile, "extern const struct comptbl op_smalltbl_%d_comp_nf[] = {\n", postfix); + else + fprintf(stblfile, "extern const struct comptbl op_smalltbl_%d_comp_ff[] = {\n", postfix); + + /* sam: this is for people with low memory (eg. me :)) */ + printf("\n" + "#if !defined(PART_1) && !defined(PART_2) && " + "!defined(PART_3) && !defined(PART_4) && " + "!defined(PART_5) && !defined(PART_6) && " + "!defined(PART_7) && !defined(PART_8)" + "\n" + "#define PART_1 1\n" + "#define PART_2 1\n" + "#define PART_3 1\n" + "#define PART_4 1\n" + "#define PART_5 1\n" + "#define PART_6 1\n" + "#define PART_7 1\n" + "#define PART_8 1\n" + "#endif\n\n"); + printf ("extern void comp_fpp_opp();\n" + "extern void comp_fscc_opp();\n" + "extern void comp_fbcc_opp();\n\n"); + + rp = 0; + for (j = 1; j <= 8; ++j) + { + int k = (j * nr_cpuop_funcs) / 8; + printf("#ifdef PART_%d\n", j); + for (; rp < k; rp++) + generate_one_opcode(rp, noflags); + printf("#endif\n\n"); + } + + fprintf(stblfile, "{ 0, 0,65536 }};\n"); + } } int main(int argc, char *argv[]) { - read_table68k(); - do_merges(); + read_table68k(); + do_merges(); - opcode_map = xmalloc (int, nr_cpuop_funcs); - opcode_last_postfix = xmalloc (int, nr_cpuop_funcs); - opcode_next_clev = xmalloc (int, nr_cpuop_funcs); - counts = xmalloc (unsigned long, 65536); - read_counts(); + opcode_map = xmalloc (int, nr_cpuop_funcs); + opcode_last_postfix = xmalloc (int, nr_cpuop_funcs); + opcode_next_clev = xmalloc (int, nr_cpuop_funcs); + counts = xmalloc (unsigned long, 65536); + read_counts(); - /* It would be a lot nicer to put all in one file (we'd also get rid of - * cputbl.h that way), but cpuopti can't cope. That could be fixed, but - * I don't dare to touch the 68k version. */ + /* It would be a lot nicer to put all in one file (we'd also get rid of + * cputbl.h that way), but cpuopti can't cope. That could be fixed, but + * I don't dare to touch the 68k version. */ - headerfile = fopen("jit/comptbl.h", "wb"); + headerfile = fopen("jit/comptbl.h", "wb"); - fprintf (headerfile, "" \ - "#ifdef NOFLAGS_SUPPORT\n" \ - "/* 68040 */\n" \ - "extern const struct comptbl op_smalltbl_0_nf[];\n" \ - "#endif\n" \ - "extern const struct comptbl op_smalltbl_0_comp_nf[];\n" \ - "extern const struct comptbl op_smalltbl_0_comp_ff[];\n" \ - ""); + fprintf (headerfile, "" \ + "#ifdef NOFLAGS_SUPPORT\n" \ + "/* 68040 */\n" \ + "extern const struct comptbl op_smalltbl_0_nf[];\n" \ + "#endif\n" \ + "extern const struct comptbl op_smalltbl_0_comp_nf[];\n" \ + "extern const struct comptbl op_smalltbl_0_comp_ff[];\n" \ + ""); - stblfile = fopen("jit/compstbl.cpp", "wb"); - freopen("jit/compemu.cpp", "wb", stdout); + stblfile = fopen("jit/compstbl.cpp", "wb"); + freopen("jit/compemu.cpp", "wb", stdout); - generate_includes(stdout); - generate_includes(stblfile); + generate_includes(stdout); + generate_includes(stblfile); - printf("#include \"compemu.h\"\n"); + printf("#include \"compemu.h\"\n"); - noflags = 0; - generate_func(noflags); + noflags = 0; + generate_func(noflags); - free(opcode_map); - free(opcode_last_postfix); - free(opcode_next_clev); - free(counts); + free(opcode_map); + free(opcode_last_postfix); + free(opcode_next_clev); + free(counts); - opcode_map = xmalloc (int, nr_cpuop_funcs); - opcode_last_postfix = xmalloc (int, nr_cpuop_funcs); - opcode_next_clev = xmalloc (int, nr_cpuop_funcs); - counts = xmalloc (unsigned long, 65536); - read_counts(); - noflags = 1; - generate_func(noflags); + opcode_map = xmalloc (int, nr_cpuop_funcs); + opcode_last_postfix = xmalloc (int, nr_cpuop_funcs); + opcode_next_clev = xmalloc (int, nr_cpuop_funcs); + counts = xmalloc (unsigned long, 65536); + read_counts(); + noflags = 1; + generate_func(noflags); - printf ("#endif\n"); - fprintf (stblfile, "#endif\n"); + printf ("#endif\n"); + fprintf (stblfile, "#endif\n"); - free(opcode_map); - free(opcode_last_postfix); - free(opcode_next_clev); - free(counts); + free(opcode_map); + free(opcode_last_postfix); + free(opcode_next_clev); + free(counts); - free(table68k); - fclose(stblfile); - fclose(headerfile); - return 0; + free(table68k); + fclose(stblfile); + fclose(headerfile); + return 0; } diff --git a/src/keybuf.cpp b/src/keybuf.cpp index a6bdc4f2..00157cf1 100644 --- a/src/keybuf.cpp +++ b/src/keybuf.cpp @@ -1,16 +1,16 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Keyboard buffer. Not really needed for X, but for SVGAlib and possibly - * Mac and DOS ports. - * - * Note: it's possible to have two threads in UAE, one reading keystrokes - * and the other one writing them. Despite this, no synchronization effort - * is needed. This code should be perfectly thread safe. At least if you - * assume that integer store instructions are atomic. - * - * Copyright 1995, 1997 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Keyboard buffer. Not really needed for X, but for SVGAlib and possibly + * Mac and DOS ports. + * + * Note: it's possible to have two threads in UAE, one reading keystrokes + * and the other one writing them. Despite this, no synchronization effort + * is needed. This code should be perfectly thread safe. At least if you + * assume that integer store instructions are atomic. + * + * Copyright 1995, 1997 Bernd Schmidt + */ #include "sysconfig.h" #include "sysdeps.h" @@ -19,7 +19,7 @@ #include "options.h" #include "keybuf.h" #include "keyboard.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "inputdevice.h" #include "custom.h" @@ -31,45 +31,47 @@ static int keybuf[256]; int keys_available (void) { - int val; - val = kpb_first != kpb_last; - return val; + int val; + val = kpb_first != kpb_last; + return val; } int get_next_key (void) { - int key; - assert (kpb_first != kpb_last); + int key; + assert (kpb_first != kpb_last); - key = keybuf[kpb_last]; - if (++kpb_last == 256) - kpb_last = 0; - return key; + key = keybuf[kpb_last]; + if (++kpb_last == 256) + kpb_last = 0; + return key; } int record_key (int kc) { - int kpb_next = kpb_first + 1; + int kpb_next = kpb_first + 1; - if (kpb_next == 256) - kpb_next = 0; - if (kpb_next == kpb_last) { - write_log (_T("Keyboard buffer overrun. Congratulations.\n")); - return 0; - } + if (kpb_next == 256) + kpb_next = 0; + if (kpb_next == kpb_last) + { + write_log (_T("Keyboard buffer overrun. Congratulations.\n")); + return 0; + } #if 0 - if ((kc >> 1) == AK_RCTRL) { - kc ^= AK_RCTRL << 1; - kc ^= AK_CTRL << 1; - } + if ((kc >> 1) == AK_RCTRL) + { + kc ^= AK_RCTRL << 1; + kc ^= AK_CTRL << 1; + } #endif - keybuf[kpb_first] = kc; - kpb_first = kpb_next; - return 1; + keybuf[kpb_first] = kc; + kpb_first = kpb_next; + return 1; } void keybuf_init (void) { - kpb_first = kpb_last = 0; - inputdevice_updateconfig (&changed_prefs, &currprefs); + kpb_first = kpb_last = 0; + inputdevice_updateconfig (&changed_prefs, &currprefs); } diff --git a/src/linetoscr.c b/src/linetoscr.c index 1d05dd4e..c69050c7 100644 --- a/src/linetoscr.c +++ b/src/linetoscr.c @@ -6,27 +6,29 @@ STATIC_INLINE uae_u32 merge_words(uae_u32 val, uae_u32 val2) { - __asm__ ( - "pkhbt %[o], %[o], %[d], lsl #16 \n\t" - : [o] "+r" (val) : [d] "r" (val2) ); - return val; + __asm__ ( + "pkhbt %[o], %[o], %[d], lsl #16 \n\t" + : [o] "+r" (val) : [d] "r" (val2) ); + return val; } STATIC_INLINE uae_u32 double_word(uae_u32 val) { - __asm__ ( - "pkhbt %[o], %[o], %[o], lsl #16 \n\t" - : [o] "+r" (val) ); - return val; + __asm__ ( + "pkhbt %[o], %[o], %[o], lsl #16 \n\t" + : [o] "+r" (val) ); + return val; } - + static int NOINLINE linetoscr_16 (int spix, int dpix, int stoppos) { uae_u16 *buf = (uae_u16 *) xlinebuffer; - if (dp_for_drawing->ham_seen) { + if (dp_for_drawing->ham_seen) + { int rem; - if (((long)&buf[dpix]) & 2) { + if (((long)&buf[dpix]) & 2) + { buf[dpix++] = ham_linebuf[spix++]; } if (dpix >= stoppos) @@ -34,21 +36,26 @@ static int NOINLINE linetoscr_16 (int spix, int dpix, int stoppos) rem = (((long)&buf[stoppos]) & 2); if (rem) stoppos--; - while (dpix < stoppos) { + while (dpix < stoppos) + { uae_u32 out_val; - + out_val = *((uae_u32 *)&ham_linebuf[spix]); spix += 2; *((uae_u32 *)&buf[dpix]) = out_val; dpix += 2; } - if (rem) { + if (rem) + { buf[dpix++] = ham_linebuf[spix++]; } - } else if (bpldualpf) { + } + else if (bpldualpf) + { int *lookup = bpldualpfpri ? dblpf_ind2 : dblpf_ind1; int rem; - if (((long)&buf[dpix]) & 2) { + if (((long)&buf[dpix]) & 2) + { uae_u32 spix_val; spix_val = pixdata.apixels[spix++]; buf[dpix++] = colors_for_drawing.acolors[lookup[spix_val]]; @@ -58,11 +65,12 @@ static int NOINLINE linetoscr_16 (int spix, int dpix, int stoppos) rem = (((long)&buf[stoppos]) & 2); if (rem) stoppos--; - while (dpix < stoppos) { + while (dpix < stoppos) + { uae_u32 spix_val; uae_u32 dpix_val; uae_u32 out_val; - + spix_val = pixdata.apixels[spix++]; out_val = colors_for_drawing.acolors[lookup[spix_val]]; spix_val = pixdata.apixels[spix++]; @@ -70,14 +78,18 @@ static int NOINLINE linetoscr_16 (int spix, int dpix, int stoppos) *((uae_u32 *)&buf[dpix]) = merge_words(out_val, dpix_val); dpix += 2; } - if (rem) { + if (rem) + { uae_u32 spix_val; spix_val = pixdata.apixels[spix++]; buf[dpix++] = colors_for_drawing.acolors[lookup[spix_val]]; } - } else if (bplehb) { + } + else if (bplehb) + { int rem; - if (((long)&buf[dpix]) & 2) { + if (((long)&buf[dpix]) & 2) + { uae_u32 spix_val; uae_u32 dpix_val; spix_val = pixdata.apixels[spix++]; @@ -92,11 +104,12 @@ static int NOINLINE linetoscr_16 (int spix, int dpix, int stoppos) rem = (((long)&buf[stoppos]) & 2); if (rem) stoppos--; - while (dpix < stoppos) { + while (dpix < stoppos) + { uae_u32 spix_val; uae_u32 dpix_val; uae_u32 out_val; - + spix_val = pixdata.apixels[spix++]; if (spix_val <= 31) out_val = colors_for_drawing.acolors[spix_val]; @@ -110,7 +123,8 @@ static int NOINLINE linetoscr_16 (int spix, int dpix, int stoppos) *((uae_u32 *)&buf[dpix]) = merge_words(out_val, dpix_val); dpix += 2; } - if (rem) { + if (rem) + { uae_u32 spix_val; uae_u32 dpix_val; spix_val = pixdata.apixels[spix++]; @@ -120,9 +134,12 @@ static int NOINLINE linetoscr_16 (int spix, int dpix, int stoppos) dpix_val = xcolors[(colors_for_drawing.color_regs_ecs[spix_val - 32] >> 1) & 0x777]; buf[dpix++] = dpix_val; } - } else { + } + else + { int rem; - if (((long)&buf[dpix]) & 2) { + if (((long)&buf[dpix]) & 2) + { uae_u32 spix_val; spix_val = pixdata.apixels[spix++]; buf[dpix++] = colors_for_drawing.acolors[spix_val]; @@ -132,11 +149,12 @@ static int NOINLINE linetoscr_16 (int spix, int dpix, int stoppos) rem = (((long)&buf[stoppos]) & 2); if (rem) stoppos--; - while (dpix < stoppos) { + while (dpix < stoppos) + { uae_u32 spix_val; uae_u32 dpix_val; uae_u32 out_val; - + spix_val = pixdata.apixels[spix++]; out_val = colors_for_drawing.acolors[spix_val]; spix_val = pixdata.apixels[spix++]; @@ -144,7 +162,8 @@ static int NOINLINE linetoscr_16 (int spix, int dpix, int stoppos) *((uae_u32 *)&buf[dpix]) = merge_words(out_val, dpix_val); dpix += 2; } - if (rem) { + if (rem) + { uae_u32 spix_val; spix_val = pixdata.apixels[spix++]; buf[dpix++] = colors_for_drawing.acolors[spix_val]; @@ -158,38 +177,49 @@ static int NOINLINE linetoscr_16_stretch1 (int spix, int dpix, int stoppos) { uae_u16 *buf = (uae_u16 *) xlinebuffer; - if (dp_for_drawing->ham_seen) { - while (dpix < stoppos) { + if (dp_for_drawing->ham_seen) + { + while (dpix < stoppos) + { uae_u32 out_val = ham_linebuf[spix++]; *((uae_u32 *)&buf[dpix]) = double_word(out_val); dpix += 2; } - } else if (bpldualpf) { + } + else if (bpldualpf) + { int *lookup = bpldualpfpri ? dblpf_ind2 : dblpf_ind1; - while (dpix < stoppos) { + while (dpix < stoppos) + { uae_u32 spix_val; - + spix_val = pixdata.apixels[spix++]; *((uae_u32 *)&buf[dpix]) = colors_for_drawing.acolors[lookup[spix_val]]; dpix += 2; } - } else if (bplehb) { - while (dpix < stoppos) { + } + else if (bplehb) + { + while (dpix < stoppos) + { uae_u32 spix_val; uae_u32 out_val; - + spix_val = pixdata.apixels[spix++]; if (spix_val <= 31) out_val = colors_for_drawing.acolors[spix_val]; else - out_val = xcolors[(colors_for_drawing.color_regs_ecs[spix_val - 32] >> 1) & 0x0777]; - *((uae_u32 *)&buf[dpix]) = double_word(out_val); + out_val = xcolors[(colors_for_drawing.color_regs_ecs[spix_val - 32] >> 1) & 0x0777]; + *((uae_u32 *)&buf[dpix]) = double_word(out_val); dpix += 2; } - } else { - while (dpix < stoppos) { + } + else + { + while (dpix < stoppos) + { uae_u32 spix_val; - + spix_val = pixdata.apixels[spix++]; *((uae_u32 *)&buf[dpix]) = colors_for_drawing.acolors[spix_val]; dpix += 2; @@ -203,9 +233,11 @@ static int NOINLINE linetoscr_16_shrink1 (int spix, int dpix, int stoppos) { uae_u16 *buf = (uae_u16 *) xlinebuffer; - if (dp_for_drawing->ham_seen) { + if (dp_for_drawing->ham_seen) + { int rem; - if (((long)&buf[dpix]) & 2) { + if (((long)&buf[dpix]) & 2) + { uae_u32 dpix_val; dpix_val = ham_linebuf[spix]; spix += 2; @@ -216,10 +248,11 @@ static int NOINLINE linetoscr_16_shrink1 (int spix, int dpix, int stoppos) rem = (((long)&buf[stoppos]) & 2); if (rem) stoppos--; - while (dpix < stoppos) { + while (dpix < stoppos) + { uae_u32 dpix_val; uae_u32 out_val; - + out_val = ham_linebuf[spix]; spix += 2; dpix_val = ham_linebuf[spix]; @@ -229,16 +262,20 @@ static int NOINLINE linetoscr_16_shrink1 (int spix, int dpix, int stoppos) *((uae_u32 *)&buf[dpix]) = out_val; dpix += 2; } - if (rem) { + if (rem) + { uae_u32 dpix_val; dpix_val = ham_linebuf[spix]; spix += 2; buf[dpix++] = dpix_val; } - } else if (bpldualpf) { + } + else if (bpldualpf) + { int *lookup = bpldualpfpri ? dblpf_ind2 : dblpf_ind1; int rem; - if (((long)&buf[dpix]) & 2) { + if (((long)&buf[dpix]) & 2) + { uae_u32 spix_val; uae_u32 dpix_val; spix_val = pixdata.apixels[spix]; @@ -251,11 +288,12 @@ static int NOINLINE linetoscr_16_shrink1 (int spix, int dpix, int stoppos) rem = (((long)&buf[stoppos]) & 2); if (rem) stoppos--; - while (dpix < stoppos) { + while (dpix < stoppos) + { uae_u32 spix_val; uae_u32 dpix_val; uae_u32 out_val; - + spix_val = pixdata.apixels[spix]; out_val = colors_for_drawing.acolors[lookup[spix_val]]; spix += 2; @@ -265,7 +303,8 @@ static int NOINLINE linetoscr_16_shrink1 (int spix, int dpix, int stoppos) *((uae_u32 *)&buf[dpix]) = merge_words(out_val, dpix_val); dpix += 2; } - if (rem) { + if (rem) + { uae_u32 spix_val; uae_u32 dpix_val; spix_val = pixdata.apixels[spix]; @@ -273,9 +312,12 @@ static int NOINLINE linetoscr_16_shrink1 (int spix, int dpix, int stoppos) spix += 2; buf[dpix++] = dpix_val; } - } else if (bplehb) { + } + else if (bplehb) + { int rem; - if (((long)&buf[dpix]) & 2) { + if (((long)&buf[dpix]) & 2) + { uae_u32 spix_val; uae_u32 dpix_val; spix_val = pixdata.apixels[spix]; @@ -291,11 +333,12 @@ static int NOINLINE linetoscr_16_shrink1 (int spix, int dpix, int stoppos) rem = (((long)&buf[stoppos]) & 2); if (rem) stoppos--; - while (dpix < stoppos) { + while (dpix < stoppos) + { uae_u32 spix_val; uae_u32 dpix_val; uae_u32 out_val; - + spix_val = pixdata.apixels[spix]; if (spix_val <= 31) out_val = colors_for_drawing.acolors[spix_val]; @@ -311,7 +354,8 @@ static int NOINLINE linetoscr_16_shrink1 (int spix, int dpix, int stoppos) *((uae_u32 *)&buf[dpix]) = merge_words(out_val, dpix_val); dpix += 2; } - if (rem) { + if (rem) + { uae_u32 spix_val; uae_u32 dpix_val; spix_val = pixdata.apixels[spix]; @@ -322,9 +366,12 @@ static int NOINLINE linetoscr_16_shrink1 (int spix, int dpix, int stoppos) spix += 2; buf[dpix++] = dpix_val; } - } else { + } + else + { int rem; - if (((long)&buf[dpix]) & 2) { + if (((long)&buf[dpix]) & 2) + { uae_u32 spix_val; spix_val = pixdata.apixels[spix]; spix += 2; @@ -335,11 +382,12 @@ static int NOINLINE linetoscr_16_shrink1 (int spix, int dpix, int stoppos) rem = (((long)&buf[stoppos]) & 2); if (rem) stoppos--; - while (dpix < stoppos) { + while (dpix < stoppos) + { uae_u32 spix_val; uae_u32 dpix_val; uae_u32 out_val; - + spix_val = pixdata.apixels[spix]; out_val = colors_for_drawing.acolors[spix_val]; spix += 2; @@ -349,7 +397,8 @@ static int NOINLINE linetoscr_16_shrink1 (int spix, int dpix, int stoppos) *((uae_u32 *)&buf[dpix]) = merge_words(out_val, dpix_val); dpix += 2; } - if (rem) { + if (rem) + { uae_u32 spix_val; spix_val = pixdata.apixels[spix]; spix += 2; @@ -367,9 +416,11 @@ static int NOINLINE linetoscr_16_aga (int spix, int dpix, int stoppos) uae_u16 *buf = (uae_u16 *) xlinebuffer; uae_u8 xor_val = bplxor; - if (dp_for_drawing->ham_seen) { + if (dp_for_drawing->ham_seen) + { int rem; - if (((long)&buf[dpix]) & 2) { + if (((long)&buf[dpix]) & 2) + { buf[dpix++] = ham_linebuf[spix]; spix++; } @@ -378,33 +429,41 @@ static int NOINLINE linetoscr_16_aga (int spix, int dpix, int stoppos) rem = (((long)&buf[stoppos]) & 2); if (rem) stoppos--; - while (dpix < stoppos) { + while (dpix < stoppos) + { uae_u32 out_val; - + out_val = *((uae_u32 *)&ham_linebuf[spix]); spix += 2; *((uae_u32 *)&buf[dpix]) = out_val; dpix += 2; } - if (rem) { + if (rem) + { buf[dpix++] = ham_linebuf[spix]; spix++; } - } else if (bpldualpf) { + } + else if (bpldualpf) + { int *lookup = bpldualpfpri ? dblpf_ind2_aga : dblpf_ind1_aga; int *lookup_no = bpldualpfpri ? dblpf_2nd2 : dblpf_2nd1; int rem; - if (((long)&buf[dpix]) & 2) { + if (((long)&buf[dpix]) & 2) + { uae_u32 spix_val; uae_u32 dpix_val; - if (spritepixels[spix]) { + if (spritepixels[spix]) + { dpix_val = colors_for_drawing.acolors[spritepixels[spix]]; - } else { + } + else + { spix_val = pixdata.apixels[spix]; unsigned int val = lookup[spix_val]; if (lookup_no[spix_val] == 2) val += dblpfofs[bpldualpf2of]; - val ^= xor_val; + val ^= xor_val; dpix_val = colors_for_drawing.acolors[val]; } spix++; @@ -415,62 +474,78 @@ static int NOINLINE linetoscr_16_aga (int spix, int dpix, int stoppos) rem = (((long)&buf[stoppos]) & 2); if (rem) stoppos--; - while (dpix < stoppos) { + while (dpix < stoppos) + { uae_u32 spix_val; uae_u32 dpix_val; uae_u32 out_val; - - if (spritepixels[spix]) { + + if (spritepixels[spix]) + { out_val = colors_for_drawing.acolors[spritepixels[spix]]; - } else { + } + else + { spix_val = pixdata.apixels[spix]; unsigned int val = lookup[spix_val]; if (lookup_no[spix_val] == 2) val += dblpfofs[bpldualpf2of]; - val ^= xor_val; + val ^= xor_val; out_val = colors_for_drawing.acolors[val]; } spix++; - if (spritepixels[spix]) { + if (spritepixels[spix]) + { dpix_val = colors_for_drawing.acolors[spritepixels[spix]]; - } else { + } + else + { spix_val = pixdata.apixels[spix]; unsigned int val = lookup[spix_val]; if (lookup_no[spix_val] == 2) val += dblpfofs[bpldualpf2of]; - val ^= xor_val; + val ^= xor_val; dpix_val = colors_for_drawing.acolors[val]; } spix++; *((uae_u32 *)&buf[dpix]) = merge_words(out_val, dpix_val); dpix += 2; } - if (rem) { + if (rem) + { uae_u32 spix_val; uae_u32 dpix_val; - if (spritepixels[spix]) { + if (spritepixels[spix]) + { dpix_val = colors_for_drawing.acolors[spritepixels[spix]]; - } else { + } + else + { spix_val = pixdata.apixels[spix]; unsigned int val = lookup[spix_val]; if (lookup_no[spix_val] == 2) val += dblpfofs[bpldualpf2of]; - val ^= xor_val; + val ^= xor_val; dpix_val = colors_for_drawing.acolors[val]; } spix++; buf[dpix++] = dpix_val; } - } else if (bplehb) { + } + else if (bplehb) + { int rem; - if (((long)&buf[dpix]) & 2) { + if (((long)&buf[dpix]) & 2) + { uae_u32 spix_val; uae_u32 dpix_val; spix_val = pixdata.apixels[spix++] ^ xor_val; - if (spix_val >= 32 && spix_val < 64) { + if (spix_val >= 32 && spix_val < 64) + { unsigned int c = (colors_for_drawing.color_regs_aga[spix_val - 32] >> 1) & 0x7F7F7F; dpix_val = CONVERT_RGB (c); - } else + } + else dpix_val = colors_for_drawing.acolors[spix_val]; buf[dpix++] = dpix_val; } @@ -479,40 +554,51 @@ static int NOINLINE linetoscr_16_aga (int spix, int dpix, int stoppos) rem = (((long)&buf[stoppos]) & 2); if (rem) stoppos--; - while (dpix < stoppos) { + while (dpix < stoppos) + { uae_u32 spix_val; uae_u32 dpix_val; uae_u32 out_val; - + spix_val = pixdata.apixels[spix++] ^ xor_val; - if (spix_val >= 32 && spix_val < 64) { + if (spix_val >= 32 && spix_val < 64) + { unsigned int c = (colors_for_drawing.color_regs_aga[spix_val - 32] >> 1) & 0x7F7F7F; out_val = CONVERT_RGB (c); - } else + } + else out_val = colors_for_drawing.acolors[spix_val]; spix_val = pixdata.apixels[spix++] ^ xor_val; - if (spix_val >= 32 && spix_val < 64) { + if (spix_val >= 32 && spix_val < 64) + { unsigned int c = (colors_for_drawing.color_regs_aga[spix_val - 32] >> 1) & 0x7F7F7F; dpix_val = CONVERT_RGB (c); - } else + } + else dpix_val = colors_for_drawing.acolors[spix_val]; *((uae_u32 *)&buf[dpix]) = merge_words(out_val, dpix_val); dpix += 2; } - if (rem) { + if (rem) + { uae_u32 spix_val; uae_u32 dpix_val; spix_val = pixdata.apixels[spix++] ^ xor_val; - if (spix_val >= 32 && spix_val < 64) { + if (spix_val >= 32 && spix_val < 64) + { unsigned int c = (colors_for_drawing.color_regs_aga[spix_val - 32] >> 1) & 0x7F7F7F; dpix_val = CONVERT_RGB (c); - } else + } + else dpix_val = colors_for_drawing.acolors[spix_val]; buf[dpix++] = dpix_val; } - } else { + } + else + { int rem; - if (((long)&buf[dpix]) & 2) { + if (((long)&buf[dpix]) & 2) + { uae_u32 spix_val; spix_val = pixdata.apixels[spix++] ^ xor_val; buf[dpix++] = colors_for_drawing.acolors[spix_val]; @@ -522,11 +608,12 @@ static int NOINLINE linetoscr_16_aga (int spix, int dpix, int stoppos) rem = (((long)&buf[stoppos]) & 2); if (rem) stoppos--; - while (dpix < stoppos) { + while (dpix < stoppos) + { uae_u32 spix_val; uae_u32 dpix_val; uae_u32 out_val; - + spix_val = pixdata.apixels[spix++] ^ xor_val; out_val = colors_for_drawing.acolors[spix_val]; spix_val = pixdata.apixels[spix++] ^ xor_val; @@ -534,7 +621,8 @@ static int NOINLINE linetoscr_16_aga (int spix, int dpix, int stoppos) *((uae_u32 *)&buf[dpix]) = merge_words(out_val, dpix_val); dpix += 2; } - if (rem) { + if (rem) + { uae_u32 spix_val; spix_val = pixdata.apixels[spix++] ^ xor_val; buf[dpix++] = colors_for_drawing.acolors[spix_val]; @@ -551,53 +639,69 @@ static int NOINLINE linetoscr_16_stretch1_aga (int spix, int dpix, int stoppos) uae_u16 *buf = (uae_u16 *) xlinebuffer; uae_u8 xor_val = bplxor; - if (dp_for_drawing->ham_seen) { - while (dpix < stoppos) { + if (dp_for_drawing->ham_seen) + { + while (dpix < stoppos) + { uae_u32 out_val; out_val = ham_linebuf[spix++]; *((uae_u32 *)&buf[dpix]) = double_word(out_val); dpix += 2; } - } else if (bpldualpf) { + } + else if (bpldualpf) + { int *lookup = bpldualpfpri ? dblpf_ind2_aga : dblpf_ind1_aga; int *lookup_no = bpldualpfpri ? dblpf_2nd2 : dblpf_2nd1; - while (dpix < stoppos) { + while (dpix < stoppos) + { uae_u32 spix_val; uae_u32 out_val; - - if (spritepixels[spix]) { + + if (spritepixels[spix]) + { out_val = colors_for_drawing.acolors[spritepixels[spix]]; - } else { + } + else + { spix_val = pixdata.apixels[spix]; unsigned int val = lookup[spix_val]; if (lookup_no[spix_val] == 2) val += dblpfofs[bpldualpf2of]; - val ^= xor_val; + val ^= xor_val; out_val = colors_for_drawing.acolors[val]; } spix++; *((uae_u32 *)&buf[dpix]) = double_word(out_val); dpix += 2; } - } else if (bplehb) { - while (dpix < stoppos) { + } + else if (bplehb) + { + while (dpix < stoppos) + { uae_u32 spix_val; uae_u32 out_val; - + spix_val = pixdata.apixels[spix++] ^ xor_val; - if (spix_val >= 32 && spix_val < 64) { + if (spix_val >= 32 && spix_val < 64) + { unsigned int c = (colors_for_drawing.color_regs_aga[spix_val - 32] >> 1) & 0x7F7F7F; out_val = CONVERT_RGB (c); - } else + } + else out_val = colors_for_drawing.acolors[spix_val]; *((uae_u32 *)&buf[dpix]) = double_word(out_val); dpix += 2; } - } else { - while (dpix < stoppos) { + } + else + { + while (dpix < stoppos) + { uae_u32 spix_val; uae_u32 out_val; - + spix_val = pixdata.apixels[spix++] ^ xor_val; out_val = colors_for_drawing.acolors[spix_val]; *((uae_u32 *)&buf[dpix]) = double_word(out_val); @@ -615,9 +719,11 @@ static int NOINLINE linetoscr_16_shrink1_aga (int spix, int dpix, int stoppos) uae_u16 *buf = (uae_u16 *) xlinebuffer; uae_u8 xor_val = bplxor; - if (dp_for_drawing->ham_seen) { + if (dp_for_drawing->ham_seen) + { int rem; - if (((long)&buf[dpix]) & 2) { + if (((long)&buf[dpix]) & 2) + { buf[dpix++] = ham_linebuf[spix]; spix += 2; } @@ -626,10 +732,11 @@ static int NOINLINE linetoscr_16_shrink1_aga (int spix, int dpix, int stoppos) rem = (((long)&buf[stoppos]) & 2); if (rem) stoppos--; - while (dpix < stoppos) { + while (dpix < stoppos) + { uae_u32 dpix_val; uae_u32 out_val; - + out_val = ham_linebuf[spix]; spix += 2; dpix_val = ham_linebuf[spix]; @@ -638,25 +745,32 @@ static int NOINLINE linetoscr_16_shrink1_aga (int spix, int dpix, int stoppos) *((uae_u32 *)&buf[dpix]) = out_val; dpix += 2; } - if (rem) { + if (rem) + { buf[dpix++] = ham_linebuf[spix]; spix += 2; } - } else if (bpldualpf) { + } + else if (bpldualpf) + { int *lookup = bpldualpfpri ? dblpf_ind2_aga : dblpf_ind1_aga; int *lookup_no = bpldualpfpri ? dblpf_2nd2 : dblpf_2nd1; int rem; - if (((long)&buf[dpix]) & 2) { + if (((long)&buf[dpix]) & 2) + { uae_u32 spix_val; uae_u32 dpix_val; - if (spritepixels[spix]) { + if (spritepixels[spix]) + { dpix_val = colors_for_drawing.acolors[spritepixels[spix]]; - } else { + } + else + { spix_val = pixdata.apixels[spix]; unsigned int val = lookup[spix_val]; if (lookup_no[spix_val] == 2) val += dblpfofs[bpldualpf2of]; - val ^= xor_val; + val ^= xor_val; dpix_val = colors_for_drawing.acolors[val]; } spix += 2; @@ -667,62 +781,78 @@ static int NOINLINE linetoscr_16_shrink1_aga (int spix, int dpix, int stoppos) rem = (((long)&buf[stoppos]) & 2); if (rem) stoppos--; - while (dpix < stoppos) { + while (dpix < stoppos) + { uae_u32 spix_val; uae_u32 dpix_val; uae_u32 out_val; - - if (spritepixels[spix]) { + + if (spritepixels[spix]) + { out_val = colors_for_drawing.acolors[spritepixels[spix]]; - } else { + } + else + { spix_val = pixdata.apixels[spix]; unsigned int val = lookup[spix_val]; if (lookup_no[spix_val] == 2) val += dblpfofs[bpldualpf2of]; - val ^= xor_val; + val ^= xor_val; out_val = colors_for_drawing.acolors[val]; } spix += 2; - if (spritepixels[spix]) { + if (spritepixels[spix]) + { dpix_val = colors_for_drawing.acolors[spritepixels[spix]]; - } else { + } + else + { spix_val = pixdata.apixels[spix]; unsigned int val = lookup[spix_val]; if (lookup_no[spix_val] == 2) val += dblpfofs[bpldualpf2of]; - val ^= xor_val; + val ^= xor_val; dpix_val = colors_for_drawing.acolors[val]; } spix += 2; *((uae_u32 *)&buf[dpix]) = merge_words(out_val, dpix_val); dpix += 2; } - if (rem) { + if (rem) + { uae_u32 spix_val; uae_u32 dpix_val; - if (spritepixels[spix]) { + if (spritepixels[spix]) + { dpix_val = colors_for_drawing.acolors[spritepixels[spix]]; - } else { + } + else + { spix_val = pixdata.apixels[spix]; unsigned int val = lookup[spix_val]; if (lookup_no[spix_val] == 2) val += dblpfofs[bpldualpf2of]; - val ^= xor_val; + val ^= xor_val; dpix_val = colors_for_drawing.acolors[val]; } spix += 2; buf[dpix++] = dpix_val; } - } else if (bplehb) { + } + else if (bplehb) + { int rem; - if (((long)&buf[dpix]) & 2) { + if (((long)&buf[dpix]) & 2) + { uae_u32 spix_val; uae_u32 dpix_val; spix_val = pixdata.apixels[spix] ^ xor_val; - if (spix_val >= 32 && spix_val < 64) { + if (spix_val >= 32 && spix_val < 64) + { unsigned int c = (colors_for_drawing.color_regs_aga[spix_val - 32] >> 1) & 0x7F7F7F; dpix_val = CONVERT_RGB (c); - } else + } + else dpix_val = colors_for_drawing.acolors[spix_val]; spix += 2; buf[dpix++] = dpix_val; @@ -732,43 +862,54 @@ static int NOINLINE linetoscr_16_shrink1_aga (int spix, int dpix, int stoppos) rem = (((long)&buf[stoppos]) & 2); if (rem) stoppos--; - while (dpix < stoppos) { + while (dpix < stoppos) + { uae_u32 spix_val; uae_u32 dpix_val; uae_u32 out_val; - + spix_val = pixdata.apixels[spix] ^ xor_val; - if (spix_val >= 32 && spix_val < 64) { + if (spix_val >= 32 && spix_val < 64) + { unsigned int c = (colors_for_drawing.color_regs_aga[spix_val - 32] >> 1) & 0x7F7F7F; out_val = CONVERT_RGB (c); - } else + } + else out_val = colors_for_drawing.acolors[spix_val]; spix += 2; spix_val = pixdata.apixels[spix] ^ xor_val; - if (spix_val >= 32 && spix_val < 64) { + if (spix_val >= 32 && spix_val < 64) + { unsigned int c = (colors_for_drawing.color_regs_aga[spix_val - 32] >> 1) & 0x7F7F7F; dpix_val = CONVERT_RGB (c); - } else + } + else dpix_val = colors_for_drawing.acolors[spix_val]; spix += 2; *((uae_u32 *)&buf[dpix]) = merge_words(out_val, dpix_val); dpix += 2; } - if (rem) { + if (rem) + { uae_u32 spix_val; uae_u32 dpix_val; spix_val = pixdata.apixels[spix] ^ xor_val; - if (spix_val >= 32 && spix_val < 64) { + if (spix_val >= 32 && spix_val < 64) + { unsigned int c = (colors_for_drawing.color_regs_aga[spix_val - 32] >> 1) & 0x7F7F7F; dpix_val = CONVERT_RGB (c); - } else + } + else dpix_val = colors_for_drawing.acolors[spix_val]; spix += 2; buf[dpix++] = dpix_val; } - } else { + } + else + { int rem; - if (((long)&buf[dpix]) & 2) { + if (((long)&buf[dpix]) & 2) + { uae_u32 spix_val; spix_val = pixdata.apixels[spix] ^ xor_val; spix += 2; @@ -779,11 +920,12 @@ static int NOINLINE linetoscr_16_shrink1_aga (int spix, int dpix, int stoppos) rem = (((long)&buf[stoppos]) & 2); if (rem) stoppos--; - while (dpix < stoppos) { + while (dpix < stoppos) + { uae_u32 spix_val; uae_u32 dpix_val; uae_u32 out_val; - + spix_val = pixdata.apixels[spix] ^ xor_val; out_val = colors_for_drawing.acolors[spix_val]; spix += 2; @@ -793,7 +935,8 @@ static int NOINLINE linetoscr_16_shrink1_aga (int spix, int dpix, int stoppos) *((uae_u32 *)&buf[dpix]) = merge_words(out_val, dpix_val); dpix += 2; } - if (rem) { + if (rem) + { uae_u32 spix_val; spix_val = pixdata.apixels[spix] ^ xor_val; spix += 2; diff --git a/src/main.cpp b/src/main.cpp index 8d715adb..ddbfd544 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -15,7 +15,7 @@ #include "gensound.h" #include "audio.h" #include "sd-pandora/sound.h" -#include "memory.h" +#include "include/memory.h" #include "custom.h" #include "newcpu.h" #include "disk.h" @@ -46,7 +46,7 @@ #endif long int version = 256*65536L*UAEMAJOR + 65536L*UAEMINOR + UAESUBREV; -struct uae_prefs currprefs, changed_prefs; +struct uae_prefs currprefs, changed_prefs; bool no_gui = 0; bool cloanto_rom = 0; @@ -58,241 +58,255 @@ TCHAR optionsfile[256]; void my_trim (TCHAR *s) { - int len; - while (_tcscspn (s, _T("\t \r\n")) == 0) - memmove (s, s + 1, (_tcslen (s + 1) + 1) * sizeof (TCHAR)); - len = _tcslen (s); - while (len > 0 && _tcscspn (s + len - 1, _T("\t \r\n")) == 0) - s[--len] = '\0'; + int len; + while (_tcscspn (s, _T("\t \r\n")) == 0) + memmove (s, s + 1, (_tcslen (s + 1) + 1) * sizeof (TCHAR)); + len = _tcslen (s); + while (len > 0 && _tcscspn (s + len - 1, _T("\t \r\n")) == 0) + s[--len] = '\0'; } TCHAR *my_strdup_trim (const TCHAR *s) { - TCHAR *out; - int len; + TCHAR *out; + int len; - while (_tcscspn (s, _T("\t \r\n")) == 0) - s++; - len = _tcslen (s); - while (len > 0 && _tcscspn (s + len - 1, _T("\t \r\n")) == 0) - len--; - out = xmalloc (TCHAR, len + 1); - memcpy (out, s, len * sizeof (TCHAR)); - out[len] = 0; - return out; + while (_tcscspn (s, _T("\t \r\n")) == 0) + s++; + len = _tcslen (s); + while (len > 0 && _tcscspn (s + len - 1, _T("\t \r\n")) == 0) + len--; + out = xmalloc (TCHAR, len + 1); + memcpy (out, s, len * sizeof (TCHAR)); + out[len] = 0; + return out; } void discard_prefs (struct uae_prefs *p, int type) { - struct strlist **ps = &p->all_lines; - while (*ps) { - struct strlist *s = *ps; - *ps = s->next; - xfree (s->value); - xfree (s->option); - xfree (s); - } + struct strlist **ps = &p->all_lines; + while (*ps) + { + struct strlist *s = *ps; + *ps = s->next; + xfree (s->value); + xfree (s->option); + xfree (s); + } #ifdef FILESYS - filesys_cleanup (); - p->mountitems = 0; + filesys_cleanup (); + p->mountitems = 0; #endif } static void fixup_prefs_dim2 (struct wh *wh) { - if (wh->width < 320) - wh->width = 320; - if (wh->height < 200) - wh->height = 200; + if (wh->width < 320) + wh->width = 320; + if (wh->height < 200) + wh->height = 200; } void fixup_prefs_dimensions (struct uae_prefs *prefs) { - fixup_prefs_dim2(&prefs->gfx_size_fs); - fixup_prefs_dim2(&prefs->gfx_size_win); + fixup_prefs_dim2(&prefs->gfx_size_fs); + fixup_prefs_dim2(&prefs->gfx_size_win); } void fixup_cpu(struct uae_prefs *p) { - switch(p->cpu_model) - { + switch(p->cpu_model) + { case 68000: - p->address_space_24 = 1; - if (p->cpu_compatible) - p->fpu_model = 0; - break; - case 68010: - p->address_space_24 = 1; - if (p->cpu_compatible) - p->fpu_model = 0; - break; - case 68020: - break; - case 68030: - p->address_space_24 = 0; - break; - case 68040: - p->address_space_24 = 0; - if (p->fpu_model) - p->fpu_model = 68040; - break; - case 68060: - p->address_space_24 = 0; - if (p->fpu_model) - p->fpu_model = 68060; - break; - } + p->address_space_24 = 1; + if (p->cpu_compatible) + p->fpu_model = 0; + break; + case 68010: + p->address_space_24 = 1; + if (p->cpu_compatible) + p->fpu_model = 0; + break; + case 68020: + break; + case 68030: + p->address_space_24 = 0; + break; + case 68040: + p->address_space_24 = 0; + if (p->fpu_model) + p->fpu_model = 68040; + break; + case 68060: + p->address_space_24 = 0; + if (p->fpu_model) + p->fpu_model = 68060; + break; + } - if (p->immediate_blits && p->waiting_blits) - p->waiting_blits = 0; + if (p->immediate_blits && p->waiting_blits) + p->waiting_blits = 0; } void fixup_prefs (struct uae_prefs *p) { - int err = 0; + int err = 0; - fixup_cpu(p); + fixup_cpu(p); - if (((p->chipmem_size & (p->chipmem_size - 1)) != 0 && p->chipmem_size != 0x180000) - || p->chipmem_size < 0x20000 - || p->chipmem_size > 0x800000) - { - write_log (_T("Unsupported chipmem size %x!\n"), p->chipmem_size); - p->chipmem_size = 0x200000; - err = 1; - } + if (((p->chipmem_size & (p->chipmem_size - 1)) != 0 && p->chipmem_size != 0x180000) + || p->chipmem_size < 0x20000 + || p->chipmem_size > 0x800000) + { + write_log (_T("Unsupported chipmem size %x!\n"), p->chipmem_size); + p->chipmem_size = 0x200000; + err = 1; + } - if ((p->fastmem_size & (p->fastmem_size - 1)) != 0 - || (p->fastmem_size != 0 && (p->fastmem_size < 0x100000 || p->fastmem_size > 0x800000))) - { - write_log (_T("Unsupported fastmem size %x!\n"), p->fastmem_size); - err = 1; - } - if ((p->rtgmem_size & (p->rtgmem_size - 1)) != 0 - || (p->rtgmem_size != 0 && (p->rtgmem_size < 0x100000 || p->rtgmem_size > 0x1000000))) - { - write_log (_T("Unsupported graphics card memory size %x!\n"), p->rtgmem_size); - if (p->rtgmem_size > 0x1000000) - p->rtgmem_size = 0x1000000; - else - p->rtgmem_size = 0; - err = 1; - } - - if ((p->z3fastmem_size & (p->z3fastmem_size - 1)) != 0 - || (p->z3fastmem_size != 0 && (p->z3fastmem_size < 0x100000 || p->z3fastmem_size > max_z3fastmem))) - { - write_log (_T("Unsupported Zorro III fastmem size %x (%x)!\n"), p->z3fastmem_size, max_z3fastmem); - if (p->z3fastmem_size > max_z3fastmem) - p->z3fastmem_size = max_z3fastmem; - else - p->z3fastmem_size = 0; - err = 1; - } - p->z3fastmem_start &= ~0xffff; - if (p->z3fastmem_start < 0x1000000) - p->z3fastmem_start = 0x1000000; - - if (p->address_space_24 && (p->z3fastmem_size != 0)) { - p->z3fastmem_size = 0; - write_log (_T("Can't use a graphics card or 32-bit memory when using a 24 bit\naddress space.\n")); - } - if (p->bogomem_size != 0 && p->bogomem_size != 0x80000 && p->bogomem_size != 0x100000 && p->bogomem_size != 0x180000 && p->bogomem_size != 0x1c0000) { - p->bogomem_size = 0; - write_log (_T("Unsupported bogomem size!\n")); - err = 1; - } - if (p->bogomem_size > 0x180000 && ((p->chipset_mask & CSMASK_AGA) || p->cpu_model >= 68020)) { - p->bogomem_size = 0x180000; - write_log (_T("Possible Gayle bogomem conflict fixed\n")); - } + if ((p->fastmem_size & (p->fastmem_size - 1)) != 0 + || (p->fastmem_size != 0 && (p->fastmem_size < 0x100000 || p->fastmem_size > 0x800000))) + { + write_log (_T("Unsupported fastmem size %x!\n"), p->fastmem_size); + err = 1; + } + if ((p->rtgmem_size & (p->rtgmem_size - 1)) != 0 + || (p->rtgmem_size != 0 && (p->rtgmem_size < 0x100000 || p->rtgmem_size > 0x1000000))) + { + write_log (_T("Unsupported graphics card memory size %x!\n"), p->rtgmem_size); + if (p->rtgmem_size > 0x1000000) + p->rtgmem_size = 0x1000000; + else + p->rtgmem_size = 0; + err = 1; + } - if (p->chipmem_size > 0x200000 && p->fastmem_size != 0) { - write_log (_T("You can't use fastmem and more than 2MB chip at the same time!\n")); - p->fastmem_size = 0; - err = 1; - } + if ((p->z3fastmem_size & (p->z3fastmem_size - 1)) != 0 + || (p->z3fastmem_size != 0 && (p->z3fastmem_size < 0x100000 || p->z3fastmem_size > max_z3fastmem))) + { + write_log (_T("Unsupported Zorro III fastmem size %x (%x)!\n"), p->z3fastmem_size, max_z3fastmem); + if (p->z3fastmem_size > max_z3fastmem) + p->z3fastmem_size = max_z3fastmem; + else + p->z3fastmem_size = 0; + err = 1; + } + p->z3fastmem_start &= ~0xffff; + if (p->z3fastmem_start < 0x1000000) + p->z3fastmem_start = 0x1000000; - if (p->address_space_24 && p->rtgmem_size) - p->rtgmem_type = 0; - if (!p->rtgmem_type && (p->chipmem_size > 2 * 1024 * 1024 || getz2size (p) > 8 * 1024 * 1024 || getz2size (p) < 0)) { - p->rtgmem_size = 0; - write_log (_T("Too large Z2 RTG memory size\n")); - } + if (p->address_space_24 && (p->z3fastmem_size != 0)) + { + p->z3fastmem_size = 0; + write_log (_T("Can't use a graphics card or 32-bit memory when using a 24 bit\naddress space.\n")); + } + if (p->bogomem_size != 0 && p->bogomem_size != 0x80000 && p->bogomem_size != 0x100000 && p->bogomem_size != 0x180000 && p->bogomem_size != 0x1c0000) + { + p->bogomem_size = 0; + write_log (_T("Unsupported bogomem size!\n")); + err = 1; + } + if (p->bogomem_size > 0x180000 && ((p->chipset_mask & CSMASK_AGA) || p->cpu_model >= 68020)) + { + p->bogomem_size = 0x180000; + write_log (_T("Possible Gayle bogomem conflict fixed\n")); + } - if (p->produce_sound < 0 || p->produce_sound > 3) { - write_log (_T("Bad value for -S parameter: enable value must be within 0..3\n")); - p->produce_sound = 0; - err = 1; - } - if (p->cachesize < 0 || p->cachesize > 16384) { - write_log (_T("Bad value for cachesize parameter: value must be within 0..16384\n")); - p->cachesize = 0; - err = 1; - } - if (p->z3fastmem_size > 0 && (p->address_space_24 || p->cpu_model < 68020)) { - write_log (_T("Z3 fast memory can't be used with a 68000/68010 emulation. It\n") - _T("requires a 68020 emulation. Turning off Z3 fast memory.\n")); - p->z3fastmem_size = 0; - err = 1; - } - if (p->rtgmem_size > 0 && p->rtgmem_type && (p->cpu_model < 68020 || p->address_space_24)) { - write_log (_T("RTG can't be used with a 68000/68010 or 68EC020 emulation. It\n") - _T("requires a 68020 emulation. Turning off RTG.\n")); - p->rtgmem_size = 0; - err = 1; - } + if (p->chipmem_size > 0x200000 && p->fastmem_size != 0) + { + write_log (_T("You can't use fastmem and more than 2MB chip at the same time!\n")); + p->fastmem_size = 0; + err = 1; + } + + if (p->address_space_24 && p->rtgmem_size) + p->rtgmem_type = 0; + if (!p->rtgmem_type && (p->chipmem_size > 2 * 1024 * 1024 || getz2size (p) > 8 * 1024 * 1024 || getz2size (p) < 0)) + { + p->rtgmem_size = 0; + write_log (_T("Too large Z2 RTG memory size\n")); + } + + if (p->produce_sound < 0 || p->produce_sound > 3) + { + write_log (_T("Bad value for -S parameter: enable value must be within 0..3\n")); + p->produce_sound = 0; + err = 1; + } + if (p->cachesize < 0 || p->cachesize > 16384) + { + write_log (_T("Bad value for cachesize parameter: value must be within 0..16384\n")); + p->cachesize = 0; + err = 1; + } + if (p->z3fastmem_size > 0 && (p->address_space_24 || p->cpu_model < 68020)) + { + write_log (_T("Z3 fast memory can't be used with a 68000/68010 emulation. It\n") + _T("requires a 68020 emulation. Turning off Z3 fast memory.\n")); + p->z3fastmem_size = 0; + err = 1; + } + if (p->rtgmem_size > 0 && p->rtgmem_type && (p->cpu_model < 68020 || p->address_space_24)) + { + write_log (_T("RTG can't be used with a 68000/68010 or 68EC020 emulation. It\n") + _T("requires a 68020 emulation. Turning off RTG.\n")); + p->rtgmem_size = 0; + err = 1; + } #if !defined (BSDSOCKET) - if (p->socket_emu) { - write_log (_T("Compile-time option of BSDSOCKET_SUPPORTED was not enabled. You can't use bsd-socket emulation.\n")); - p->socket_emu = 0; - err = 1; - } + if (p->socket_emu) + { + write_log (_T("Compile-time option of BSDSOCKET_SUPPORTED was not enabled. You can't use bsd-socket emulation.\n")); + p->socket_emu = 0; + err = 1; + } #endif - if (p->nr_floppies < 0 || p->nr_floppies > 4) { - write_log (_T("Invalid number of floppies. Using 4.\n")); - p->nr_floppies = 4; - p->floppyslots[0].dfxtype = 0; - p->floppyslots[1].dfxtype = 0; - p->floppyslots[2].dfxtype = 0; - p->floppyslots[3].dfxtype = 0; - err = 1; - } + if (p->nr_floppies < 0 || p->nr_floppies > 4) + { + write_log (_T("Invalid number of floppies. Using 4.\n")); + p->nr_floppies = 4; + p->floppyslots[0].dfxtype = 0; + p->floppyslots[1].dfxtype = 0; + p->floppyslots[2].dfxtype = 0; + p->floppyslots[3].dfxtype = 0; + err = 1; + } - if (p->floppy_speed > 0 && p->floppy_speed < 10) { - p->floppy_speed = 100; - } + if (p->floppy_speed > 0 && p->floppy_speed < 10) + { + p->floppy_speed = 100; + } - if (p->collision_level < 0 || p->collision_level > 3) { - write_log (_T("Invalid collision support level. Using 1.\n")); - p->collision_level = 1; - err = 1; - } - fixup_prefs_dimensions (p); + if (p->collision_level < 0 || p->collision_level > 3) + { + write_log (_T("Invalid collision support level. Using 1.\n")); + p->collision_level = 1; + err = 1; + } + fixup_prefs_dimensions (p); #if !defined (JIT) - p->cachesize = 0; + p->cachesize = 0; #endif #ifdef CPU_68000_ONLY - p->cpu_model = 68000; - p->fpu_model = 0; + p->cpu_model = 68000; + p->fpu_model = 0; #endif #ifndef AGA - p->chipset_mask &= ~CSMASK_AGA; + p->chipset_mask &= ~CSMASK_AGA; #endif #ifndef AUTOCONFIG - p->z3fastmem_size = 0; - p->fastmem_size = 0; - p->rtgmem_size = 0; + p->z3fastmem_size = 0; + p->fastmem_size = 0; + p->rtgmem_size = 0; #endif #if !defined (BSDSOCKET) - p->socket_emu = 0; + p->socket_emu = 0; #endif - blkdev_fix_prefs (p); - target_fixup_options (p); + blkdev_fix_prefs (p); + target_fixup_options (p); } int quit_program = 0; @@ -302,196 +316,224 @@ static int default_config; void uae_reset (int hardreset, int keyboardreset) { - if (quit_program == 0) { - quit_program = -UAE_RESET; - if (keyboardreset) - quit_program = -UAE_RESET_KEYBOARD; - if (hardreset) - quit_program = -UAE_RESET_HARD; - } + if (quit_program == 0) + { + quit_program = -UAE_RESET; + if (keyboardreset) + quit_program = -UAE_RESET_KEYBOARD; + if (hardreset) + quit_program = -UAE_RESET_HARD; + } } void uae_quit (void) { - if (quit_program != -UAE_QUIT) - quit_program = -UAE_QUIT; - target_quit (); + if (quit_program != -UAE_QUIT) + quit_program = -UAE_QUIT; + target_quit (); } /* 0 = normal, 1 = nogui, -1 = disable nogui */ void uae_restart (int opengui, const TCHAR *cfgfile) { - uae_quit (); - restart_program = opengui > 0 ? 1 : (opengui == 0 ? 2 : 3); - restart_config[0] = 0; - default_config = 0; - if (cfgfile) - _tcscpy (restart_config, cfgfile); - target_restart (); + uae_quit (); + restart_program = opengui > 0 ? 1 : (opengui == 0 ? 2 : 3); + restart_config[0] = 0; + default_config = 0; + if (cfgfile) + _tcscpy (restart_config, cfgfile); + target_restart (); } static void parse_cmdline_2 (int argc, TCHAR **argv) { - int i; + int i; - cfgfile_addcfgparam (0); - for (i = 1; i < argc; i++) { - if (_tcsncmp (argv[i], _T("-cfgparam="), 10) == 0) { - cfgfile_addcfgparam (argv[i] + 10); - } else if (_tcscmp (argv[i], _T("-cfgparam")) == 0) { - if (i + 1 == argc) - write_log (_T("Missing argument for '-cfgparam' option.\n")); - else - cfgfile_addcfgparam (argv[++i]); + cfgfile_addcfgparam (0); + for (i = 1; i < argc; i++) + { + if (_tcsncmp (argv[i], _T("-cfgparam="), 10) == 0) + { + cfgfile_addcfgparam (argv[i] + 10); + } + else if (_tcscmp (argv[i], _T("-cfgparam")) == 0) + { + if (i + 1 == argc) + write_log (_T("Missing argument for '-cfgparam' option.\n")); + else + cfgfile_addcfgparam (argv[++i]); + } } - } } static TCHAR *parsetext (const TCHAR *s) { - if (*s == '"' || *s == '\'') { - TCHAR *d; - TCHAR c = *s++; - int i; - d = my_strdup (s); - for (i = 0; i < _tcslen (d); i++) { - if (d[i] == c) { - d[i] = 0; - break; - } - } - return d; - } else { - return my_strdup (s); - } + if (*s == '"' || *s == '\'') + { + TCHAR *d; + TCHAR c = *s++; + int i; + d = my_strdup (s); + for (i = 0; i < _tcslen (d); i++) + { + if (d[i] == c) + { + d[i] = 0; + break; + } + } + return d; + } + else + { + return my_strdup (s); + } } static TCHAR *parsetextpath (const TCHAR *s) { - TCHAR *s2 = parsetext (s); - TCHAR *s3 = target_expand_environment (s2); - xfree (s2); - return s3; + TCHAR *s2 = parsetext (s); + TCHAR *s3 = target_expand_environment (s2); + xfree (s2); + return s3; } void print_usage() { - printf("\nUsage:\n"); - printf(" -f Load a configuration file.\n"); - printf(" -config= Load a configuration file.\n"); - printf(" -statefile= Load a save state file.\n"); - printf(" -s = Set the configuration parameter with value.\n"); - printf(" Edit a configuration file in order to know valid parameters and settings.\n"); - printf("\nAdditional options:\n"); - printf(" -0 Set adf for drive 0.\n"); - printf(" -1 Set adf for drive 1.\n"); - printf(" -2 Set adf for drive 2.\n"); - printf(" -3 Set adf for drive 3.\n"); - printf(" -r Set kickstart rom file.\n"); - printf(" -G Start directly into emulation.\n"); - printf(" -c Size of chip memory (in number of 512 KBytes chunks).\n"); - printf(" -F Size of fast memory (in number of 1024 KBytes chunks).\n"); - printf("\nNote:\n"); - printf("Parameters are parsed from the beginning of command line, so in case of ambiguity for parameters, last one will be used.\n"); - printf("File names should be with absolute path.\n"); - printf("\nExample:\n"); - printf("uae4arm -config=conf/A500.uae -statefile=savestates/game.uss -s use_gui=no\n"); - printf("It will load A400.uae configuration with the save state named game.\n"); - printf("It will override use_gui to 'no' so that it enters emulation directly.\n"); - exit(1); + printf("\nUsage:\n"); + printf(" -f Load a configuration file.\n"); + printf(" -config= Load a configuration file.\n"); + printf(" -statefile= Load a save state file.\n"); + printf(" -s = Set the configuration parameter with value.\n"); + printf(" Edit a configuration file in order to know valid parameters and settings.\n"); + printf("\nAdditional options:\n"); + printf(" -0 Set adf for drive 0.\n"); + printf(" -1 Set adf for drive 1.\n"); + printf(" -2 Set adf for drive 2.\n"); + printf(" -3 Set adf for drive 3.\n"); + printf(" -r Set kickstart rom file.\n"); + printf(" -G Start directly into emulation.\n"); + printf(" -c Size of chip memory (in number of 512 KBytes chunks).\n"); + printf(" -F Size of fast memory (in number of 1024 KBytes chunks).\n"); + printf("\nNote:\n"); + printf("Parameters are parsed from the beginning of command line, so in case of ambiguity for parameters, last one will be used.\n"); + printf("File names should be with absolute path.\n"); + printf("\nExample:\n"); + printf("uae4arm -config=conf/A500.uae -statefile=savestates/game.uss -s use_gui=no\n"); + printf("It will load A400.uae configuration with the save state named game.\n"); + printf("It will override use_gui to 'no' so that it enters emulation directly.\n"); + exit(1); } static void parse_cmdline (int argc, TCHAR **argv) { - int i; + int i; - for (i = 1; i < argc; i++) { - if (_tcscmp (argv[i], _T("-cfgparam")) == 0) { - if (i + 1 < argc) - i++; - } else if (_tcsncmp (argv[i], _T("-config="), 8) == 0) { - TCHAR *txt = parsetextpath (argv[i] + 8); - currprefs.mountitems = 0; - target_cfgfile_load (&currprefs, txt, -1, 0); - xfree (txt); - } else if (_tcsncmp (argv[i], _T("-statefile="), 11) == 0) { - TCHAR *txt = parsetextpath (argv[i] + 11); - savestate_state = STATE_DORESTORE; - _tcscpy (savestate_fname, txt); - xfree (txt); - } else if (_tcscmp (argv[i], _T("-f")) == 0) { - /* Check for new-style "-f xxx" argument, where xxx is config-file */ - if (i + 1 == argc) { - write_log (_T("Missing argument for '-f' option.\n")); - } else { - TCHAR *txt = parsetextpath (argv[++i]); - currprefs.mountitems = 0; - target_cfgfile_load (&currprefs, txt, -1, 0); - xfree (txt); - } - } else if (_tcscmp (argv[i], _T("-s")) == 0) { - if (i + 1 == argc) - write_log (_T("Missing argument for '-s' option.\n")); - else - cfgfile_parse_line (&currprefs, argv[++i], 0); - } else { - if (argv[i][0] == '-' && argv[i][1] != '\0' && argv[i][2] == '\0') { - int ret; - const TCHAR *arg = argv[i] + 2; - int extra_arg = *arg == '\0'; - if (extra_arg) - arg = i + 1 < argc ? argv[i + 1] : 0; - ret = parse_cmdline_option (&currprefs, argv[i][1], arg); - if (ret == -1) - print_usage(); - if (ret && extra_arg) - i++; - } else - { - printf("Unknown option %s\n",argv[i]); - print_usage(); - } - } - } + for (i = 1; i < argc; i++) + { + if (_tcscmp (argv[i], _T("-cfgparam")) == 0) + { + if (i + 1 < argc) + i++; + } + else if (_tcsncmp (argv[i], _T("-config="), 8) == 0) + { + TCHAR *txt = parsetextpath (argv[i] + 8); + currprefs.mountitems = 0; + target_cfgfile_load (&currprefs, txt, -1, 0); + xfree (txt); + } + else if (_tcsncmp (argv[i], _T("-statefile="), 11) == 0) + { + TCHAR *txt = parsetextpath (argv[i] + 11); + savestate_state = STATE_DORESTORE; + _tcscpy (savestate_fname, txt); + xfree (txt); + } + else if (_tcscmp (argv[i], _T("-f")) == 0) + { + /* Check for new-style "-f xxx" argument, where xxx is config-file */ + if (i + 1 == argc) + { + write_log (_T("Missing argument for '-f' option.\n")); + } + else + { + TCHAR *txt = parsetextpath (argv[++i]); + currprefs.mountitems = 0; + target_cfgfile_load (&currprefs, txt, -1, 0); + xfree (txt); + } + } + else if (_tcscmp (argv[i], _T("-s")) == 0) + { + if (i + 1 == argc) + write_log (_T("Missing argument for '-s' option.\n")); + else + cfgfile_parse_line (&currprefs, argv[++i], 0); + } + else + { + if (argv[i][0] == '-' && argv[i][1] != '\0' && argv[i][2] == '\0') + { + int ret; + const TCHAR *arg = argv[i] + 2; + int extra_arg = *arg == '\0'; + if (extra_arg) + arg = i + 1 < argc ? argv[i + 1] : 0; + ret = parse_cmdline_option (&currprefs, argv[i][1], arg); + if (ret == -1) + print_usage(); + if (ret && extra_arg) + i++; + } + else + { + printf("Unknown option %s\n",argv[i]); + print_usage(); + } + } + } } static void parse_cmdline_and_init_file (int argc, TCHAR **argv) { - _tcscpy (optionsfile, _T("")); + _tcscpy (optionsfile, _T("")); - parse_cmdline_2 (argc, argv); + parse_cmdline_2 (argc, argv); - _tcscat (optionsfile, restart_config); + _tcscat (optionsfile, restart_config); - if (! target_cfgfile_load (&currprefs, optionsfile, 0, default_config)) { - write_log (_T("failed to load config '%s'\n"), optionsfile); - } - fixup_prefs (&currprefs); + if (! target_cfgfile_load (&currprefs, optionsfile, 0, default_config)) + { + write_log (_T("failed to load config '%s'\n"), optionsfile); + } + fixup_prefs (&currprefs); - parse_cmdline (argc, argv); + parse_cmdline (argc, argv); } void reset_all_systems (void) { - init_eventtab (); + init_eventtab (); #ifdef PICASSO96 - picasso_reset (); + picasso_reset (); #endif #ifdef FILESYS - filesys_prepare_reset (); - filesys_reset (); + filesys_prepare_reset (); + filesys_reset (); #endif - memory_reset (); + memory_reset (); #if defined (BSDSOCKET) - bsdlib_reset (); + bsdlib_reset (); #endif #ifdef FILESYS - filesys_start_threads (); - hardfile_reset (); + filesys_start_threads (); + hardfile_reset (); #endif - native2amiga_reset (); + native2amiga_reset (); } /* Okay, this stuff looks strange, but it is here to encourage people who @@ -505,46 +547,46 @@ void reset_all_systems (void) */ void do_start_program (void) { - if (quit_program == -UAE_QUIT) - return; - /* Do a reset on startup. Whether this is elegant is debatable. */ - inputdevice_updateconfig (&changed_prefs, &currprefs); - if (quit_program >= 0) - quit_program = UAE_RESET; - m68k_go (1); + if (quit_program == -UAE_QUIT) + return; + /* Do a reset on startup. Whether this is elegant is debatable. */ + inputdevice_updateconfig (&changed_prefs, &currprefs); + if (quit_program >= 0) + quit_program = UAE_RESET; + m68k_go (1); } void do_leave_program (void) { #ifdef JIT - compiler_exit(); + compiler_exit(); #endif - graphics_leave (); - inputdevice_close (); - DISK_free (); - close_sound (); - dump_counts (); + graphics_leave (); + inputdevice_close (); + DISK_free (); + close_sound (); + dump_counts (); #ifdef CD32 - akiko_free (); + akiko_free (); #endif - gui_exit (); + gui_exit (); #ifdef USE_SDL - SDL_Quit (); + SDL_Quit (); #endif - hardfile_reset(); + hardfile_reset(); #ifdef AUTOCONFIG - expansion_cleanup (); + expansion_cleanup (); #endif #ifdef FILESYS - filesys_cleanup (); + filesys_cleanup (); #endif #ifdef BSDSOCKET - bsdlib_reset (); + bsdlib_reset (); #endif - device_func_reset (); - memory_cleanup (); - cfgfile_addcfgparam (0); - machdep_free (); + device_func_reset (); + memory_cleanup (); + cfgfile_addcfgparam (0); + machdep_free (); } void start_program (void) @@ -560,150 +602,162 @@ void leave_program (void) void virtualdevice_init (void) { #ifdef AUTOCONFIG - rtarea_setup (); + rtarea_setup (); #endif #ifdef FILESYS - rtarea_init (); - uaeres_install (); - hardfile_install (); + rtarea_init (); + uaeres_install (); + hardfile_install (); #endif #ifdef AUTOCONFIG - expansion_init (); - emulib_install (); + expansion_init (); + emulib_install (); #endif #ifdef FILESYS - filesys_install (); + filesys_install (); #endif #if defined (BSDSOCKET) - bsdlib_install (); + bsdlib_install (); #endif } static int real_main2 (int argc, TCHAR **argv) { - printf("Uae4arm v0.5 for Raspberry Pi by Chips\n"); + printf("Uae4arm v0.5 for Raspberry Pi by Chips\n"); #ifdef PANDORA_SPECIFIC - SDL_Init(SDL_INIT_NOPARACHUTE | SDL_INIT_VIDEO); -#else + SDL_Init(SDL_INIT_NOPARACHUTE | SDL_INIT_VIDEO); +#else #ifdef USE_SDL - SDL_Init(SDL_INIT_NOPARACHUTE | SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_JOYSTICK); + SDL_Init(SDL_INIT_NOPARACHUTE | SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_JOYSTICK); #endif #endif - - keyboard_settrans(); - if (restart_config[0]) { - default_prefs (&currprefs, 0); - fixup_prefs (&currprefs); - } + keyboard_settrans(); - if (! graphics_setup ()) { - abort(); - } + if (restart_config[0]) + { + default_prefs (&currprefs, 0); + fixup_prefs (&currprefs); + } - if (restart_config[0]) - parse_cmdline_and_init_file (argc, argv); - else - currprefs = changed_prefs; + if (! graphics_setup ()) + { + abort(); + } - if (!machdep_init ()) { - restart_program = 0; - return -1; - } + if (restart_config[0]) + parse_cmdline_and_init_file (argc, argv); + else + currprefs = changed_prefs; - if (! setup_sound ()) { - write_log (_T("Sound driver unavailable: Sound output disabled\n")); - currprefs.produce_sound = 0; - } + if (!machdep_init ()) + { + restart_program = 0; + return -1; + } - inputdevice_init(); + if (! setup_sound ()) + { + write_log (_T("Sound driver unavailable: Sound output disabled\n")); + currprefs.produce_sound = 0; + } - changed_prefs = currprefs; + inputdevice_init(); - no_gui = ! currprefs.start_gui; - if (restart_program == 2) - no_gui = 1; - else if (restart_program == 3) - no_gui = 0; - restart_program = 0; - if (! no_gui) { - int err = gui_init (); - currprefs = changed_prefs; - if (err == -1) { - write_log (_T("Failed to initialize the GUI\n")); - return -1; - } else if (err == -2) { - return 1; - } - } - else - { - setCpuSpeed(); - update_display(&currprefs); - } + changed_prefs = currprefs; + + no_gui = ! currprefs.start_gui; + if (restart_program == 2) + no_gui = 1; + else if (restart_program == 3) + no_gui = 0; + restart_program = 0; + if (! no_gui) + { + int err = gui_init (); + currprefs = changed_prefs; + if (err == -1) + { + write_log (_T("Failed to initialize the GUI\n")); + return -1; + } + else if (err == -2) + { + return 1; + } + } + else + { + setCpuSpeed(); + update_display(&currprefs); + } - memset (&gui_data, 0, sizeof gui_data); - gui_data.cd = -1; - gui_data.hd = -1; + memset (&gui_data, 0, sizeof gui_data); + gui_data.cd = -1; + gui_data.hd = -1; #ifdef PICASSO96 - picasso_reset (); + picasso_reset (); #endif - fixup_prefs (&currprefs); - changed_prefs = currprefs; - target_run (); - /* force sound settings change */ - currprefs.produce_sound = 0; + fixup_prefs (&currprefs); + changed_prefs = currprefs; + target_run (); + /* force sound settings change */ + currprefs.produce_sound = 0; - keybuf_init (); /* Must come after init_joystick */ + keybuf_init (); /* Must come after init_joystick */ - memory_hardreset (2); - memory_reset (); + memory_hardreset (2); + memory_reset (); #ifdef AUTOCONFIG - native2amiga_install (); + native2amiga_install (); #endif - custom_init (); /* Must come after memory_init */ - DISK_init (); + custom_init (); /* Must come after memory_init */ + DISK_init (); - reset_frame_rate_hack (); - init_m68k(); /* must come after reset_frame_rate_hack (); */ + reset_frame_rate_hack (); + init_m68k(); /* must come after reset_frame_rate_hack (); */ - gui_update (); + gui_update (); - if (graphics_init (true)) { + if (graphics_init (true)) + { - if(!init_audio ()) { - if (sound_available && currprefs.produce_sound > 1) { - write_log (_T("Sound driver unavailable: Sound output disabled\n")); - } - currprefs.produce_sound = 0; + if(!init_audio ()) + { + if (sound_available && currprefs.produce_sound > 1) + { + write_log (_T("Sound driver unavailable: Sound output disabled\n")); + } + currprefs.produce_sound = 0; + } + start_program (); } - start_program (); - } - return 0; + return 0; } void real_main (int argc, TCHAR **argv) { - restart_program = 1; - fetch_configurationpath (restart_config, sizeof (restart_config) / sizeof (TCHAR)); - _tcscat (restart_config, OPTIONSFILENAME); - _tcscat (restart_config, ".uae"); - default_config = 1; + restart_program = 1; + fetch_configurationpath (restart_config, sizeof (restart_config) / sizeof (TCHAR)); + _tcscat (restart_config, OPTIONSFILENAME); + _tcscat (restart_config, ".uae"); + default_config = 1; - while (restart_program) { - changed_prefs = currprefs; - real_main2 (argc, argv); - leave_program (); - quit_program = 0; - } - zfile_exit (); + while (restart_program) + { + changed_prefs = currprefs; + real_main2 (argc, argv); + leave_program (); + quit_program = 0; + } + zfile_exit (); } #ifndef NO_MAIN_IN_MAIN_C diff --git a/src/md-pandora/m68k.h b/src/md-pandora/m68k.h index 15e8c133..049125ae 100644 --- a/src/md-pandora/m68k.h +++ b/src/md-pandora/m68k.h @@ -2,7 +2,7 @@ * m68k.h - machine dependent bits * * Copyright (c) 2001-2004 Milan Jurik of ARAnyM dev team (see AUTHORS) - * + * * Inspired by Christian Bauer's Basilisk II * * This file is part of the ARAnyM project which builds a new and powerful @@ -33,10 +33,11 @@ #if (defined(CPU_i386) && defined(X86_ASSEMBLY)) || (defined(CPU_x86_64) && defined(X86_64_ASSEMBLY)) - /* - * Machine dependent structure for holding the 68k CCR flags - */ -struct flag_struct { +/* + * Machine dependent structure for holding the 68k CCR flags + */ +struct flag_struct +{ unsigned int cznv; unsigned int x; }; @@ -95,34 +96,52 @@ STATIC_INLINE int cctrue (struct flag_struct &flags, int cc) { uae_u32 cznv = flags.cznv; - switch (cc) { - case 0: return 1; /* T */ - case 1: return 0; /* F */ - case 2: return (cznv & (FLAGVAL_C | FLAGVAL_Z)) == 0; /* !CFLG && !ZFLG HI */ - case 3: return (cznv & (FLAGVAL_C | FLAGVAL_Z)) != 0; /* CFLG || ZFLG LS */ - case 4: return (cznv & FLAGVAL_C) == 0; /* !CFLG CC */ - case 5: return (cznv & FLAGVAL_C) != 0; /* CFLG CS */ - case 6: return (cznv & FLAGVAL_Z) == 0; /* !ZFLG NE */ - case 7: return (cznv & FLAGVAL_Z) != 0; /* ZFLG EQ */ - case 8: return (cznv & FLAGVAL_V) == 0; /* !VFLG VC */ - case 9: return (cznv & FLAGVAL_V) != 0; /* VFLG VS */ - case 10: return (cznv & FLAGVAL_N) == 0; /* !NFLG PL */ - case 11: return (cznv & FLAGVAL_N) != 0; /* NFLG MI */ - case 12: return (((cznv << (FLAGBIT_N - FLAGBIT_V)) ^ cznv) & FLAGVAL_N) == 0; /* NFLG == VFLG GE */ - case 13: return (((cznv << (FLAGBIT_N - FLAGBIT_V)) ^ cznv) & FLAGVAL_N) != 0; /* NFLG != VFLG LT */ - case 14: cznv &= (FLAGVAL_N | FLAGVAL_Z | FLAGVAL_V); /* ZFLG && (NFLG == VFLG) GT */ - return (((cznv << (FLAGBIT_N - FLAGBIT_V)) ^ cznv) & (FLAGVAL_N | FLAGVAL_Z)) == 0; - case 15: cznv &= (FLAGVAL_N | FLAGVAL_Z | FLAGVAL_V); /* ZFLG && (NFLG != VFLG) LE */ - return (((cznv << (FLAGBIT_N - FLAGBIT_V)) ^ cznv) & (FLAGVAL_N | FLAGVAL_Z)) != 0; + switch (cc) + { + case 0: + return 1; /* T */ + case 1: + return 0; /* F */ + case 2: + return (cznv & (FLAGVAL_C | FLAGVAL_Z)) == 0; /* !CFLG && !ZFLG HI */ + case 3: + return (cznv & (FLAGVAL_C | FLAGVAL_Z)) != 0; /* CFLG || ZFLG LS */ + case 4: + return (cznv & FLAGVAL_C) == 0; /* !CFLG CC */ + case 5: + return (cznv & FLAGVAL_C) != 0; /* CFLG CS */ + case 6: + return (cznv & FLAGVAL_Z) == 0; /* !ZFLG NE */ + case 7: + return (cznv & FLAGVAL_Z) != 0; /* ZFLG EQ */ + case 8: + return (cznv & FLAGVAL_V) == 0; /* !VFLG VC */ + case 9: + return (cznv & FLAGVAL_V) != 0; /* VFLG VS */ + case 10: + return (cznv & FLAGVAL_N) == 0; /* !NFLG PL */ + case 11: + return (cznv & FLAGVAL_N) != 0; /* NFLG MI */ + case 12: + return (((cznv << (FLAGBIT_N - FLAGBIT_V)) ^ cznv) & FLAGVAL_N) == 0; /* NFLG == VFLG GE */ + case 13: + return (((cznv << (FLAGBIT_N - FLAGBIT_V)) ^ cznv) & FLAGVAL_N) != 0; /* NFLG != VFLG LT */ + case 14: + cznv &= (FLAGVAL_N | FLAGVAL_Z | FLAGVAL_V); /* ZFLG && (NFLG == VFLG) GT */ + return (((cznv << (FLAGBIT_N - FLAGBIT_V)) ^ cznv) & (FLAGVAL_N | FLAGVAL_Z)) == 0; + case 15: + cznv &= (FLAGVAL_N | FLAGVAL_Z | FLAGVAL_V); /* ZFLG && (NFLG != VFLG) LE */ + return (((cznv << (FLAGBIT_N - FLAGBIT_V)) ^ cznv) & (FLAGVAL_N | FLAGVAL_Z)) != 0; } return 0; } #elif defined(CPU_arm) && defined(ARMV6_ASSEMBLY) -struct flag_struct { - uae_u32 nzcv; - uae_u32 x; +struct flag_struct +{ + uae_u32 nzcv; + uae_u32 x; }; #define FLAGVAL_Q 0x08000000 @@ -154,25 +173,40 @@ struct flag_struct { STATIC_INLINE int cctrue(struct flag_struct &flags, int cc) { unsigned int nzcv = flags.nzcv; - switch(cc){ - case 0: return 1; /* T */ - case 1: return 0; /* F */ - case 2: return (nzcv & 0x60000000) == 0; /* !GET_CFLG && !GET_ZFLG; HI */ - case 3: return (nzcv & 0x60000000) != 0; /* GET_CFLG || GET_ZFLG; LS */ - case 4: return (nzcv & 0x20000000) == 0; /* !GET_CFLG; CC */ - case 5: return (nzcv & 0x20000000) != 0; /* GET_CFLG; CS */ - case 6: return (nzcv & 0x40000000) == 0; /* !GET_ZFLG; NE */ - case 7: return (nzcv & 0x40000000) != 0; /* GET_ZFLG; EQ */ - case 8: return (nzcv & 0x10000000) == 0; /* !GET_VFLG; VC */ - case 9: return (nzcv & 0x10000000) != 0; /* GET_VFLG; VS */ - case 10:return (nzcv & 0x80000000) == 0; /* !GET_NFLG; PL */ - case 11:return (nzcv & 0x80000000) != 0; /* GET_NFLG; MI */ - case 12:return (((nzcv << 3) ^ nzcv) & 0x80000000) == 0; /* GET_NFLG == GET_VFLG; GE */ - case 13:return (((nzcv << 3) ^ nzcv) & 0x80000000) != 0; /* GET_NFLG != GET_VFLG; LT */ - case 14: + switch(cc) + { + case 0: + return 1; /* T */ + case 1: + return 0; /* F */ + case 2: + return (nzcv & 0x60000000) == 0; /* !GET_CFLG && !GET_ZFLG; HI */ + case 3: + return (nzcv & 0x60000000) != 0; /* GET_CFLG || GET_ZFLG; LS */ + case 4: + return (nzcv & 0x20000000) == 0; /* !GET_CFLG; CC */ + case 5: + return (nzcv & 0x20000000) != 0; /* GET_CFLG; CS */ + case 6: + return (nzcv & 0x40000000) == 0; /* !GET_ZFLG; NE */ + case 7: + return (nzcv & 0x40000000) != 0; /* GET_ZFLG; EQ */ + case 8: + return (nzcv & 0x10000000) == 0; /* !GET_VFLG; VC */ + case 9: + return (nzcv & 0x10000000) != 0; /* GET_VFLG; VS */ + case 10: + return (nzcv & 0x80000000) == 0; /* !GET_NFLG; PL */ + case 11: + return (nzcv & 0x80000000) != 0; /* GET_NFLG; MI */ + case 12: + return (((nzcv << 3) ^ nzcv) & 0x80000000) == 0; /* GET_NFLG == GET_VFLG; GE */ + case 13: + return (((nzcv << 3) ^ nzcv) & 0x80000000) != 0; /* GET_NFLG != GET_VFLG; LT */ + case 14: nzcv &= 0xd0000000; return (((nzcv << 3) ^ nzcv) & 0xc0000000) == 0; /* !GET_ZFLG && (GET_NFLG == GET_VFLG); GT */ - case 15: + case 15: nzcv &= 0xd0000000; return (((nzcv << 3) ^ nzcv) & 0xc0000000) != 0; /* GET_ZFLG || (GET_NFLG != GET_VFLG); LE */ } @@ -181,11 +215,12 @@ STATIC_INLINE int cctrue(struct flag_struct &flags, int cc) #else -struct flag_struct { +struct flag_struct +{ unsigned int c; unsigned int z; unsigned int n; - unsigned int v; + unsigned int v; unsigned int x; }; @@ -218,23 +253,40 @@ struct flag_struct { STATIC_INLINE int cctrue(struct flag_struct &flags, const int cc) { - switch(cc){ - case 0: return 1; /* T */ - case 1: return 0; /* F */ - case 2: return !CFLG && !ZFLG; /* HI */ - case 3: return CFLG || ZFLG; /* LS */ - case 4: return !CFLG; /* CC */ - case 5: return CFLG; /* CS */ - case 6: return !ZFLG; /* NE */ - case 7: return ZFLG; /* EQ */ - case 8: return !VFLG; /* VC */ - case 9: return VFLG; /* VS */ - case 10:return !NFLG; /* PL */ - case 11:return NFLG; /* MI */ - case 12:return NFLG == VFLG; /* GE */ - case 13:return NFLG != VFLG; /* LT */ - case 14:return !ZFLG && (NFLG == VFLG); /* GT */ - case 15:return ZFLG || (NFLG != VFLG); /* LE */ + switch(cc) + { + case 0: + return 1; /* T */ + case 1: + return 0; /* F */ + case 2: + return !CFLG && !ZFLG; /* HI */ + case 3: + return CFLG || ZFLG; /* LS */ + case 4: + return !CFLG; /* CC */ + case 5: + return CFLG; /* CS */ + case 6: + return !ZFLG; /* NE */ + case 7: + return ZFLG; /* EQ */ + case 8: + return !VFLG; /* VC */ + case 9: + return VFLG; /* VS */ + case 10: + return !NFLG; /* PL */ + case 11: + return NFLG; /* MI */ + case 12: + return NFLG == VFLG; /* GE */ + case 13: + return NFLG != VFLG; /* LT */ + case 14: + return !ZFLG && (NFLG == VFLG); /* GT */ + case 15: + return ZFLG || (NFLG != VFLG); /* LE */ } return 0; } diff --git a/src/md-pandora/maccess.h b/src/md-pandora/maccess.h index 49db277a..24309232 100644 --- a/src/md-pandora/maccess.h +++ b/src/md-pandora/maccess.h @@ -1,10 +1,10 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Memory access functions - * - * Copyright 1996 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Memory access functions + * + * Copyright 1996 Bernd Schmidt + */ #ifndef MACCESS_UAE_H #define MACCESS_UAE_H @@ -13,18 +13,18 @@ STATIC_INLINE uae_u16 do_get_mem_word(uae_u16 *_GCCRES_ a) { - uae_u16 v; - __asm__ ( - "ldrh %[v], [%[a]] \n\t" - "rev16 %[v], %[v] \n\t" - : [v] "=r" (v) : [a] "r" (a) ); - return v; + uae_u16 v; + __asm__ ( + "ldrh %[v], [%[a]] \n\t" + "rev16 %[v], %[v] \n\t" + : [v] "=r" (v) : [a] "r" (a) ); + return v; } #else STATIC_INLINE uae_u16 do_get_mem_word(uae_u16 *_GCCRES_ a) { uae_u8 *b = (uae_u8 *)a; - + return (*b << 8) | (*(b+1)); } #endif @@ -32,20 +32,20 @@ STATIC_INLINE uae_u16 do_get_mem_word(uae_u16 *_GCCRES_ a) #ifdef ARMV6_ASSEMBLY -STATIC_INLINE uae_u32 do_get_mem_long(uae_u32 *a) +STATIC_INLINE uae_u32 do_get_mem_long(uae_u32 *a) { - uae_u32 v; - __asm__ ( - "ldr %[v], [%[a]] \n\t" - "rev %[v], %[v] \n\t" - : [v] "=r" (v) : [a] "r" (a) ); - return v; + uae_u32 v; + __asm__ ( + "ldr %[v], [%[a]] \n\t" + "rev %[v], %[v] \n\t" + : [v] "=r" (v) : [a] "r" (a) ); + return v; } #else STATIC_INLINE uae_u32 do_get_mem_long(uae_u32 *_GCCRES_ a) { uae_u8 *b = (uae_u8 *)a; - + return (*b << 24) | (*(b+1) << 16) | (*(b+2) << 8) | (*(b+3)); } #endif @@ -59,16 +59,16 @@ STATIC_INLINE uae_u8 do_get_mem_byte(uae_u8 *_GCCRES_ a) #ifdef ARMV6_ASSEMBLY STATIC_INLINE void do_put_mem_word(uae_u16 *_GCCRES_ a, uae_u16 v) { - __asm__ ( - "rev16 r2, %[v] \n\t" - "strh r2, [%[a]] \n\t" - : : [v] "r" (v), [a] "r" (a) : "r2", "memory" ); + __asm__ ( + "rev16 r2, %[v] \n\t" + "strh r2, [%[a]] \n\t" + : : [v] "r" (v), [a] "r" (a) : "r2", "memory" ); } #else STATIC_INLINE void do_put_mem_word(uae_u16 *_GCCRES_ a, uae_u16 v) { uae_u8 *b = (uae_u8 *)a; - + *b = v >> 8; *(b+1) = v; } @@ -77,18 +77,18 @@ STATIC_INLINE void do_put_mem_word(uae_u16 *_GCCRES_ a, uae_u16 v) #ifdef ARMV6_ASSEMBLY STATIC_INLINE void do_put_mem_long(uae_u32 *_GCCRES_ a, uae_u32 v) { - __asm__ ( - "rev r2, %[v] \n\t" - "str r2, [%[a]] \n\t" - : : [v] "r" (v), [a] "r" (a) : "r2", "memory" ); + __asm__ ( + "rev r2, %[v] \n\t" + "str r2, [%[a]] \n\t" + : : [v] "r" (v), [a] "r" (a) : "r2", "memory" ); } #else STATIC_INLINE void do_put_mem_long(uae_u32 *_GCCRES_ a, uae_u32 v) { uae_u8 *b = (uae_u8 *)a; - + *b = v >> 24; - *(b+1) = v >> 16; + *(b+1) = v >> 16; *(b+2) = v >> 8; *(b+3) = v; } diff --git a/src/md-pandora/md-fpp.h b/src/md-pandora/md-fpp.h index b8a9f81a..9e8d6fe3 100644 --- a/src/md-pandora/md-fpp.h +++ b/src/md-pandora/md-fpp.h @@ -1,20 +1,21 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * MC68881 emulation - * Support functions for IEEE 754-compatible host CPUs. - * These functions use a GCC extension (type punning through unions) and - * should only be compiled with compilers that support this. - * - * Copyright 1999 Sam Jordan - * Copyright 2007 Richard Drummond - */ +/* + * UAE - The Un*x Amiga Emulator + * + * MC68881 emulation + * Support functions for IEEE 754-compatible host CPUs. + * These functions use a GCC extension (type punning through unions) and + * should only be compiled with compilers that support this. + * + * Copyright 1999 Sam Jordan + * Copyright 2007 Richard Drummond + */ STATIC_INLINE double to_single (uae_u32 value) { - union { - float f; - uae_u32 u; + union + { + float f; + uae_u32 u; } val; val.u = value; @@ -23,9 +24,10 @@ STATIC_INLINE double to_single (uae_u32 value) STATIC_INLINE uae_u32 from_single (double src) { - union { - float f; - uae_u32 u; + union + { + float f; + uae_u32 u; } val; val.f = src; @@ -37,19 +39,20 @@ STATIC_INLINE double to_exten(uae_u32 wrd1, uae_u32 wrd2, uae_u32 wrd3) double frac; if ((wrd1 & 0x7fff0000) == 0 && wrd2 == 0 && wrd3 == 0) - return 0.0; + return 0.0; frac = (double) wrd2 / 2147483648.0 + - (double) wrd3 / 9223372036854775808.0; + (double) wrd3 / 9223372036854775808.0; if (wrd1 & 0x80000000) - frac = -frac; + frac = -frac; return ldexp (frac, ((wrd1 >> 16) & 0x7fff) - 16383); } STATIC_INLINE double to_double (uae_u32 wrd1, uae_u32 wrd2) { - union { - double d; - uae_u32 u[2]; + union + { + double d; + uae_u32 u[2]; } val; val.u[1] = wrd1; @@ -62,23 +65,28 @@ STATIC_INLINE void from_exten(double src, uae_u32 * wrd1, uae_u32 * wrd2, uae_u3 int expon; double frac; - if (src == 0.0) { - *wrd1 = 0; - *wrd2 = 0; - *wrd3 = 0; - return; + if (src == 0.0) + { + *wrd1 = 0; + *wrd2 = 0; + *wrd3 = 0; + return; } - if (src < 0) { - *wrd1 = 0x80000000; - src = -src; - } else { - *wrd1 = 0; + if (src < 0) + { + *wrd1 = 0x80000000; + src = -src; + } + else + { + *wrd1 = 0; } frac = frexp (src, &expon); frac += 0.5 / 18446744073709551616.0; - if (frac >= 1.0) { - frac /= 2.0; - expon++; + if (frac >= 1.0) + { + frac /= 2.0; + expon++; } *wrd1 |= (((expon + 16383 - 1) & 0x7fff) << 16); *wrd2 = (uae_u32) (frac * 4294967296.0); @@ -87,9 +95,10 @@ STATIC_INLINE void from_exten(double src, uae_u32 * wrd1, uae_u32 * wrd2, uae_u3 STATIC_INLINE void from_double (double src, uae_u32 * wrd1, uae_u32 * wrd2) { - union { - double d; - uae_u32 u[2]; + union + { + double d; + uae_u32 u[2]; } val; val.d = src; diff --git a/src/md-pandora/rpt.h b/src/md-pandora/rpt.h index 16c25a01..86681ad4 100644 --- a/src/md-pandora/rpt.h +++ b/src/md-pandora/rpt.h @@ -16,25 +16,25 @@ extern int64_t g_uae_epoch; /* Returns elapsed time in microseconds since start of emulator. */ static __inline__ frame_time_t read_processor_time (void) { - int64_t time; - struct timespec ts; - - clock_gettime (CLOCK_MONOTONIC, &ts); + int64_t time; + struct timespec ts; - time = (((int64_t) ts.tv_sec) * 1000000) + (ts.tv_nsec / 1000); - return time - g_uae_epoch; + clock_gettime (CLOCK_MONOTONIC, &ts); + + time = (((int64_t) ts.tv_sec) * 1000000) + (ts.tv_nsec / 1000); + return time - g_uae_epoch; } static __inline__ int64_t read_processor_time_ns (void) { - int64_t time; - struct timespec ts; - - clock_gettime (CLOCK_MONOTONIC, &ts); + int64_t time; + struct timespec ts; - time = (((int64_t) ts.tv_sec) * 1000000 * 1000) + (ts.tv_nsec); - return time; + clock_gettime (CLOCK_MONOTONIC, &ts); + + time = (((int64_t) ts.tv_sec) * 1000000 * 1000) + (ts.tv_nsec); + return time; } #endif /* _RPT_H_ */ diff --git a/src/md-pandora/support.cpp b/src/md-pandora/support.cpp index 559831d7..a86404cf 100644 --- a/src/md-pandora/support.cpp +++ b/src/md-pandora/support.cpp @@ -19,15 +19,15 @@ int64_t g_uae_epoch = 0; int machdep_init (void) { - picasso_requested_on = 0; - picasso_on = 0; - screen_is_picasso = 0; + picasso_requested_on = 0; + picasso_on = 0; + screen_is_picasso = 0; - // Initialize timebase - g_uae_epoch = read_processor_time(); - syncbase = 1000000; // Microseconds + // Initialize timebase + g_uae_epoch = read_processor_time(); + syncbase = 1000000; // Microseconds - return 1; + return 1; } diff --git a/src/memory.cpp b/src/memory.cpp index 9c478183..441ff340 100644 --- a/src/memory.cpp +++ b/src/memory.cpp @@ -1,17 +1,17 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Memory management - * - * (c) 1995 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Memory management + * + * (c) 1995 Bernd Schmidt + */ #include "sysconfig.h" #include "sysdeps.h" #include "options.h" #include "uae.h" -#include "memory.h" +#include "include/memory.h" #include "rommgr.h" #include "ersatz.h" #include "zfile.h" @@ -50,12 +50,13 @@ addrbank *mem_banks[MEMORY_BANKS]; int addr_valid(const TCHAR *txt, uaecptr addr, uae_u32 len) { - addrbank *ab = &get_mem_bank(addr); - if (ab == 0 || !(ab->flags & (ABFLAG_RAM | ABFLAG_ROM)) || addr < 0x100 || len < 0 || len > 16777215 || !valid_address(addr, len)) { - write_log (_T("corrupt %s pointer %x (%d) detected!\n"), txt, addr, len); - return 0; - } - return 1; + addrbank *ab = &get_mem_bank(addr); + if (ab == 0 || !(ab->flags & (ABFLAG_RAM | ABFLAG_ROM)) || addr < 0x100 || len < 0 || len > 16777215 || !valid_address(addr, len)) + { + write_log (_T("corrupt %s pointer %x (%d) detected!\n"), txt, addr, len); + return 0; + } + return 1; } uae_u32 chipmem_mask, chipmem_full_mask; @@ -77,85 +78,90 @@ static int REGPARAM3 dummy_check (uaecptr addr, uae_u32 size) REGPARAM; STATIC_INLINE uae_u32 dummy_get (uaecptr addr, int size) { - uae_u32 v; - if (currprefs.cpu_model >= 68020) - return NONEXISTINGDATA; - v = (regs.irc << 16) | regs.irc; - if (size == 4) { - ; - } else if (size == 2) { - v &= 0xffff; - } else { - v = (addr & 1) ? (v & 0xff) : ((v >> 8) & 0xff); - } - return v; + uae_u32 v; + if (currprefs.cpu_model >= 68020) + return NONEXISTINGDATA; + v = (regs.irc << 16) | regs.irc; + if (size == 4) + { + ; + } + else if (size == 2) + { + v &= 0xffff; + } + else + { + v = (addr & 1) ? (v & 0xff) : ((v >> 8) & 0xff); + } + return v; } static uae_u32 REGPARAM2 dummy_lget (uaecptr addr) { #ifdef JIT - special_mem |= S_READ; + special_mem |= S_READ; #endif - return dummy_get (addr, 4); + return dummy_get (addr, 4); } uae_u32 REGPARAM2 dummy_lgeti (uaecptr addr) { #ifdef JIT - special_mem |= S_READ; + special_mem |= S_READ; #endif - return dummy_get (addr, 4); + return dummy_get (addr, 4); } static uae_u32 REGPARAM2 dummy_wget (uaecptr addr) { #ifdef JIT - special_mem |= S_READ; + special_mem |= S_READ; #endif - return dummy_get (addr, 2); + return dummy_get (addr, 2); } uae_u32 REGPARAM2 dummy_wgeti (uaecptr addr) { #ifdef JIT - special_mem |= S_READ; + special_mem |= S_READ; #endif - return dummy_get (addr, 2); + return dummy_get (addr, 2); } static uae_u32 REGPARAM2 dummy_bget (uaecptr addr) { #ifdef JIT - special_mem |= S_READ; + special_mem |= S_READ; #endif - return dummy_get (addr, 1); + return dummy_get (addr, 1); } static void REGPARAM2 dummy_lput (uaecptr addr, uae_u32 l) { #ifdef JIT - special_mem |= S_WRITE; + special_mem |= S_WRITE; #endif } static void REGPARAM2 dummy_wput (uaecptr addr, uae_u32 w) { #ifdef JIT - special_mem |= S_WRITE; + special_mem |= S_WRITE; #endif } static void REGPARAM2 dummy_bput (uaecptr addr, uae_u32 b) { #ifdef JIT - special_mem |= S_WRITE; + special_mem |= S_WRITE; #endif } static int REGPARAM2 dummy_check (uaecptr addr, uae_u32 size) { #ifdef JIT - special_mem |= S_READ; + special_mem |= S_READ; #endif - return 0; + return 0; } /* Chip memory */ @@ -167,74 +173,74 @@ static uae_u8 *REGPARAM3 chipmem_xlate (uaecptr addr) REGPARAM; uae_u32 REGPARAM2 chipmem_lget (uaecptr addr) { - uae_u32 *m; + uae_u32 *m; - addr &= chipmem_mask; - m = (uae_u32 *)(chipmemory + addr); - return do_get_mem_long (m); + addr &= chipmem_mask; + m = (uae_u32 *)(chipmemory + addr); + return do_get_mem_long (m); } static uae_u32 REGPARAM2 chipmem_wget (uaecptr addr) { - uae_u16 *m, v; + uae_u16 *m, v; - addr &= chipmem_mask; - m = (uae_u16 *)(chipmemory + addr); - v = do_get_mem_word (m); - return v; + addr &= chipmem_mask; + m = (uae_u16 *)(chipmemory + addr); + v = do_get_mem_word (m); + return v; } static uae_u32 REGPARAM2 chipmem_bget (uaecptr addr) { - uae_u8 v; - addr &= chipmem_mask; - v = chipmemory[addr]; - return v; + uae_u8 v; + addr &= chipmem_mask; + v = chipmemory[addr]; + return v; } void REGPARAM2 chipmem_lput (uaecptr addr, uae_u32 l) { - uae_u32 *m; - addr &= chipmem_mask; - m = (uae_u32 *)(chipmemory + addr); - do_put_mem_long(m, l); + uae_u32 *m; + addr &= chipmem_mask; + m = (uae_u32 *)(chipmemory + addr); + do_put_mem_long(m, l); } void REGPARAM2 chipmem_wput (uaecptr addr, uae_u32 w) { - uae_u16 *m; - addr &= chipmem_mask; - m = (uae_u16 *)(chipmemory + addr); - do_put_mem_word (m, w); + uae_u16 *m; + addr &= chipmem_mask; + m = (uae_u16 *)(chipmemory + addr); + do_put_mem_word (m, w); } void REGPARAM2 chipmem_bput (uaecptr addr, uae_u32 b) { - addr &= chipmem_mask; - chipmemory[addr] = b; + addr &= chipmem_mask; + chipmemory[addr] = b; } void REGPARAM2 chipmem_agnus_wput (uaecptr addr, uae_u32 w) { - uae_u16 *m; + uae_u16 *m; - addr &= chipmem_full_mask; - if (addr >= allocated_chipmem) - return; - m = (uae_u16 *)(chipmemory + addr); - do_put_mem_word (m, w); + addr &= chipmem_full_mask; + if (addr >= allocated_chipmem) + return; + m = (uae_u16 *)(chipmemory + addr); + do_put_mem_word (m, w); } static int REGPARAM2 chipmem_check (uaecptr addr, uae_u32 size) { - addr &= chipmem_mask; - return (addr + size) <= allocated_chipmem; + addr &= chipmem_mask; + return (addr + size) <= allocated_chipmem; } static uae_u8 *REGPARAM2 chipmem_xlate (uaecptr addr) { - addr &= chipmem_mask; - return chipmemory + addr; + addr &= chipmem_mask; + return chipmemory + addr; } /* Slow memory */ @@ -252,58 +258,58 @@ static uae_u8 *REGPARAM3 bogomem_xlate (uaecptr addr) REGPARAM; static uae_u32 REGPARAM2 bogomem_lget (uaecptr addr) { - uae_u32 *m; - addr &= bogomem_mask; - m = (uae_u32 *)(bogomemory + addr); - return do_get_mem_long (m); + uae_u32 *m; + addr &= bogomem_mask; + m = (uae_u32 *)(bogomemory + addr); + return do_get_mem_long (m); } static uae_u32 REGPARAM2 bogomem_wget (uaecptr addr) { - uae_u16 *m; - addr &= bogomem_mask; - m = (uae_u16 *)(bogomemory + addr); - return do_get_mem_word (m); + uae_u16 *m; + addr &= bogomem_mask; + m = (uae_u16 *)(bogomemory + addr); + return do_get_mem_word (m); } static uae_u32 REGPARAM2 bogomem_bget (uaecptr addr) { - addr &= bogomem_mask; - return bogomemory[addr]; + addr &= bogomem_mask; + return bogomemory[addr]; } static void REGPARAM2 bogomem_lput (uaecptr addr, uae_u32 l) { - uae_u32 *m; - addr &= bogomem_mask; - m = (uae_u32 *)(bogomemory + addr); - do_put_mem_long (m, l); + uae_u32 *m; + addr &= bogomem_mask; + m = (uae_u32 *)(bogomemory + addr); + do_put_mem_long (m, l); } static void REGPARAM2 bogomem_wput (uaecptr addr, uae_u32 w) { - uae_u16 *m; - addr &= bogomem_mask; - m = (uae_u16 *)(bogomemory + addr); - do_put_mem_word (m, w); + uae_u16 *m; + addr &= bogomem_mask; + m = (uae_u16 *)(bogomemory + addr); + do_put_mem_word (m, w); } static void REGPARAM2 bogomem_bput (uaecptr addr, uae_u32 b) { - addr &= bogomem_mask; - bogomemory[addr] = b; + addr &= bogomem_mask; + bogomemory[addr] = b; } static int REGPARAM2 bogomem_check (uaecptr addr, uae_u32 size) { - addr &= bogomem_mask; - return (addr + size) <= allocated_bogomem; + addr &= bogomem_mask; + return (addr + size) <= allocated_bogomem; } static uae_u8 *REGPARAM2 bogomem_xlate (uaecptr addr) { - addr &= bogomem_mask; - return bogomemory + addr; + addr &= bogomem_mask; + return bogomemory + addr; } /* Kick memory */ @@ -323,57 +329,57 @@ static uae_u8 *REGPARAM3 kickmem_xlate (uaecptr addr) REGPARAM; static uae_u32 REGPARAM2 kickmem_lget (uaecptr addr) { - uae_u32 *m; - addr &= kickmem_mask; - m = (uae_u32 *)(kickmemory + addr); - return do_get_mem_long(m); + uae_u32 *m; + addr &= kickmem_mask; + m = (uae_u32 *)(kickmemory + addr); + return do_get_mem_long(m); } static uae_u32 REGPARAM2 kickmem_wget (uaecptr addr) { - uae_u16 *m; - addr &= kickmem_mask; - m = (uae_u16 *)(kickmemory + addr); - return do_get_mem_word (m); + uae_u16 *m; + addr &= kickmem_mask; + m = (uae_u16 *)(kickmemory + addr); + return do_get_mem_word (m); } static uae_u32 REGPARAM2 kickmem_bget (uaecptr addr) { - addr &= kickmem_mask; - return kickmemory[addr]; + addr &= kickmem_mask; + return kickmemory[addr]; } static void REGPARAM2 kickmem_lput (uaecptr addr, uae_u32 b) { #ifdef JIT - special_mem |= S_WRITE; + special_mem |= S_WRITE; #endif } static void REGPARAM2 kickmem_wput (uaecptr addr, uae_u32 b) { #ifdef JIT - special_mem |= S_WRITE; + special_mem |= S_WRITE; #endif } static void REGPARAM2 kickmem_bput (uaecptr addr, uae_u32 b) { #ifdef JIT - special_mem |= S_WRITE; + special_mem |= S_WRITE; #endif } static int REGPARAM2 kickmem_check (uaecptr addr, uae_u32 size) { - addr &= kickmem_mask; - return (addr + size) <= kickmem_size; + addr &= kickmem_mask; + return (addr + size) <= kickmem_size; } static uae_u8 *REGPARAM2 kickmem_xlate (uaecptr addr) { - addr &= kickmem_mask; - return kickmemory + addr; + addr &= kickmem_mask; + return kickmemory + addr; } /* CD32/CDTV extended kick memory */ @@ -398,55 +404,55 @@ static int REGPARAM3 extendedkickmem_check (uaecptr addr, uae_u32 size) REGPARAM static uae_u8 *REGPARAM3 extendedkickmem_xlate (uaecptr addr) REGPARAM; static uae_u32 REGPARAM2 extendedkickmem_lget (uaecptr addr) { - uae_u32 *m; - addr -= extendedkickmem_start; - addr &= extendedkickmem_mask; - m = (uae_u32 *)(extendedkickmemory + addr); - return do_get_mem_long (m); + uae_u32 *m; + addr -= extendedkickmem_start; + addr &= extendedkickmem_mask; + m = (uae_u32 *)(extendedkickmemory + addr); + return do_get_mem_long (m); } static uae_u32 REGPARAM2 extendedkickmem_wget (uaecptr addr) { - uae_u16 *m; - addr -= extendedkickmem_start; - addr &= extendedkickmem_mask; - m = (uae_u16 *)(extendedkickmemory + addr); - return do_get_mem_word (m); + uae_u16 *m; + addr -= extendedkickmem_start; + addr &= extendedkickmem_mask; + m = (uae_u16 *)(extendedkickmemory + addr); + return do_get_mem_word (m); } static uae_u32 REGPARAM2 extendedkickmem_bget (uaecptr addr) { - addr -= extendedkickmem_start; - addr &= extendedkickmem_mask; - return extendedkickmemory[addr]; + addr -= extendedkickmem_start; + addr &= extendedkickmem_mask; + return extendedkickmemory[addr]; } static void REGPARAM2 extendedkickmem_lput (uaecptr addr, uae_u32 b) { #ifdef JIT - special_mem |= S_WRITE; + special_mem |= S_WRITE; #endif } static void REGPARAM2 extendedkickmem_wput (uaecptr addr, uae_u32 b) { #ifdef JIT - special_mem |= S_WRITE; + special_mem |= S_WRITE; #endif } static void REGPARAM2 extendedkickmem_bput (uaecptr addr, uae_u32 b) { #ifdef JIT - special_mem |= S_WRITE; + special_mem |= S_WRITE; #endif } static int REGPARAM2 extendedkickmem_check (uaecptr addr, uae_u32 size) { - addr -= extendedkickmem_start; - addr &= extendedkickmem_mask; - return (addr + size) <= extendedkickmem_size; + addr -= extendedkickmem_start; + addr &= extendedkickmem_mask; + return (addr + size) <= extendedkickmem_size; } static uae_u8 *REGPARAM2 extendedkickmem_xlate (uaecptr addr) { - addr -= extendedkickmem_start; - addr &= extendedkickmem_mask; - return extendedkickmemory + addr; + addr -= extendedkickmem_start; + addr &= extendedkickmem_mask; + return extendedkickmemory + addr; } static uae_u32 REGPARAM3 extendedkickmem2_lget (uaecptr) REGPARAM; @@ -459,55 +465,55 @@ static int REGPARAM3 extendedkickmem2_check (uaecptr addr, uae_u32 size) REGPARA static uae_u8 *REGPARAM3 extendedkickmem2_xlate (uaecptr addr) REGPARAM; static uae_u32 REGPARAM2 extendedkickmem2_lget (uaecptr addr) { - uae_u32 *m; - addr -= extendedkickmem2_start; - addr &= extendedkickmem2_mask; - m = (uae_u32 *)(extendedkickmemory2 + addr); - return do_get_mem_long (m); + uae_u32 *m; + addr -= extendedkickmem2_start; + addr &= extendedkickmem2_mask; + m = (uae_u32 *)(extendedkickmemory2 + addr); + return do_get_mem_long (m); } static uae_u32 REGPARAM2 extendedkickmem2_wget (uaecptr addr) { - uae_u16 *m; - addr -= extendedkickmem2_start; - addr &= extendedkickmem2_mask; - m = (uae_u16 *)(extendedkickmemory2 + addr); - return do_get_mem_word (m); + uae_u16 *m; + addr -= extendedkickmem2_start; + addr &= extendedkickmem2_mask; + m = (uae_u16 *)(extendedkickmemory2 + addr); + return do_get_mem_word (m); } static uae_u32 REGPARAM2 extendedkickmem2_bget (uaecptr addr) { - addr -= extendedkickmem2_start; - addr &= extendedkickmem2_mask; - return extendedkickmemory2[addr]; + addr -= extendedkickmem2_start; + addr &= extendedkickmem2_mask; + return extendedkickmemory2[addr]; } static void REGPARAM2 extendedkickmem2_lput (uaecptr addr, uae_u32 b) { #ifdef JIT - special_mem |= S_WRITE; + special_mem |= S_WRITE; #endif } static void REGPARAM2 extendedkickmem2_wput (uaecptr addr, uae_u32 b) { #ifdef JIT - special_mem |= S_WRITE; + special_mem |= S_WRITE; #endif } static void REGPARAM2 extendedkickmem2_bput (uaecptr addr, uae_u32 b) { #ifdef JIT - special_mem |= S_WRITE; + special_mem |= S_WRITE; #endif } static int REGPARAM2 extendedkickmem2_check (uaecptr addr, uae_u32 size) { - addr -= extendedkickmem2_start; - addr &= extendedkickmem2_mask; - return (addr + size) <= extendedkickmem2_size; + addr -= extendedkickmem2_start; + addr &= extendedkickmem2_mask; + return (addr + size) <= extendedkickmem2_size; } static uae_u8 *REGPARAM2 extendedkickmem2_xlate (uaecptr addr) { - addr -= extendedkickmem2_start; - addr &= extendedkickmem2_mask; - return extendedkickmemory2 + addr; + addr -= extendedkickmem2_start; + addr &= extendedkickmem2_mask; + return extendedkickmemory2 + addr; } @@ -515,766 +521,858 @@ static uae_u8 *REGPARAM2 extendedkickmem2_xlate (uaecptr addr) int REGPARAM2 default_check (uaecptr a, uae_u32 b) { - return 0; + return 0; } static int be_cnt; uae_u8 *REGPARAM2 default_xlate (uaecptr a) { - if (quit_program == 0) { - /* do this only in 68010+ mode, there are some tricky A500 programs.. */ - if(currprefs.cpu_model > 68000 || !currprefs.cpu_compatible) { - if (be_cnt < 3) { - write_log (_T("Your Amiga program just did something terribly stupid %08X PC=%08X\n"), a, M68K_GETPC); - } - be_cnt++; - if (be_cnt > 1000) { - uae_reset (0, 0); - be_cnt = 0; - } else { - regs.panic = 1; - regs.panic_pc = m68k_getpc (); - regs.panic_addr = a; - set_special (SPCFLAG_BRK); - } + if (quit_program == 0) + { + /* do this only in 68010+ mode, there are some tricky A500 programs.. */ + if(currprefs.cpu_model > 68000 || !currprefs.cpu_compatible) + { + if (be_cnt < 3) + { + write_log (_T("Your Amiga program just did something terribly stupid %08X PC=%08X\n"), a, M68K_GETPC); + } + be_cnt++; + if (be_cnt > 1000) + { + uae_reset (0, 0); + be_cnt = 0; + } + else + { + regs.panic = 1; + regs.panic_pc = m68k_getpc (); + regs.panic_addr = a; + set_special (SPCFLAG_BRK); + } + } } - } - return kickmem_xlate (2); /* So we don't crash. */ + return kickmem_xlate (2); /* So we don't crash. */ } /* Address banks */ -addrbank dummy_bank = { - dummy_lget, dummy_wget, dummy_bget, - dummy_lput, dummy_wput, dummy_bput, - default_xlate, dummy_check, NULL, NULL, - dummy_lgeti, dummy_wgeti, ABFLAG_NONE +addrbank dummy_bank = +{ + dummy_lget, dummy_wget, dummy_bget, + dummy_lput, dummy_wput, dummy_bput, + default_xlate, dummy_check, NULL, NULL, + dummy_lgeti, dummy_wgeti, ABFLAG_NONE }; -addrbank chipmem_bank = { - chipmem_lget, chipmem_wget, chipmem_bget, - chipmem_lput, chipmem_wput, chipmem_bput, - chipmem_xlate, chipmem_check, NULL, _T("Chip memory"), - chipmem_lget, chipmem_wget, ABFLAG_RAM +addrbank chipmem_bank = +{ + chipmem_lget, chipmem_wget, chipmem_bget, + chipmem_lput, chipmem_wput, chipmem_bput, + chipmem_xlate, chipmem_check, NULL, _T("Chip memory"), + chipmem_lget, chipmem_wget, ABFLAG_RAM }; -addrbank bogomem_bank = { - bogomem_lget, bogomem_wget, bogomem_bget, - bogomem_lput, bogomem_wput, bogomem_bput, - bogomem_xlate, bogomem_check, NULL, _T("Slow memory"), - bogomem_lget, bogomem_wget, ABFLAG_RAM +addrbank bogomem_bank = +{ + bogomem_lget, bogomem_wget, bogomem_bget, + bogomem_lput, bogomem_wput, bogomem_bput, + bogomem_xlate, bogomem_check, NULL, _T("Slow memory"), + bogomem_lget, bogomem_wget, ABFLAG_RAM }; -addrbank kickmem_bank = { - kickmem_lget, kickmem_wget, kickmem_bget, - kickmem_lput, kickmem_wput, kickmem_bput, - kickmem_xlate, kickmem_check, NULL, _T("Kickstart ROM"), - kickmem_lget, kickmem_wget, ABFLAG_ROM +addrbank kickmem_bank = +{ + kickmem_lget, kickmem_wget, kickmem_bget, + kickmem_lput, kickmem_wput, kickmem_bput, + kickmem_xlate, kickmem_check, NULL, _T("Kickstart ROM"), + kickmem_lget, kickmem_wget, ABFLAG_ROM }; -addrbank extendedkickmem_bank = { - extendedkickmem_lget, extendedkickmem_wget, extendedkickmem_bget, - extendedkickmem_lput, extendedkickmem_wput, extendedkickmem_bput, - extendedkickmem_xlate, extendedkickmem_check, NULL, _T("Extended Kickstart ROM"), - extendedkickmem_lget, extendedkickmem_wget, ABFLAG_ROM +addrbank extendedkickmem_bank = +{ + extendedkickmem_lget, extendedkickmem_wget, extendedkickmem_bget, + extendedkickmem_lput, extendedkickmem_wput, extendedkickmem_bput, + extendedkickmem_xlate, extendedkickmem_check, NULL, _T("Extended Kickstart ROM"), + extendedkickmem_lget, extendedkickmem_wget, ABFLAG_ROM }; -addrbank extendedkickmem2_bank = { - extendedkickmem2_lget, extendedkickmem2_wget, extendedkickmem2_bget, - extendedkickmem2_lput, extendedkickmem2_wput, extendedkickmem2_bput, - extendedkickmem2_xlate, extendedkickmem2_check, NULL, _T("Extended 2nd Kickstart ROM"), - extendedkickmem2_lget, extendedkickmem2_wget, ABFLAG_ROM +addrbank extendedkickmem2_bank = +{ + extendedkickmem2_lget, extendedkickmem2_wget, extendedkickmem2_bget, + extendedkickmem2_lput, extendedkickmem2_wput, extendedkickmem2_bput, + extendedkickmem2_xlate, extendedkickmem2_check, NULL, _T("Extended 2nd Kickstart ROM"), + extendedkickmem2_lget, extendedkickmem2_wget, ABFLAG_ROM }; static uae_char *kickstring = "exec.library"; static int read_kickstart (struct zfile *f, uae_u8 *mem, int size, int dochecksum, int noalias) { - uae_char buffer[20]; - int i, j, oldpos; - int cr = 0, kickdisk = 0; + uae_char buffer[20]; + int i, j, oldpos; + int cr = 0, kickdisk = 0; - if (size < 0) { - zfile_fseek (f, 0, SEEK_END); - size = zfile_ftell (f) & ~0x3ff; - zfile_fseek (f, 0, SEEK_SET); - } - oldpos = zfile_ftell (f); - i = zfile_fread (buffer, 1, 11, f); - if (!memcmp(buffer, "KICK", 4)) { - zfile_fseek (f, 512, SEEK_SET); - kickdisk = 1; + if (size < 0) + { + zfile_fseek (f, 0, SEEK_END); + size = zfile_ftell (f) & ~0x3ff; + zfile_fseek (f, 0, SEEK_SET); + } + oldpos = zfile_ftell (f); + i = zfile_fread (buffer, 1, 11, f); + if (!memcmp(buffer, "KICK", 4)) + { + zfile_fseek (f, 512, SEEK_SET); + kickdisk = 1; #if 0 - } else if (size >= 524288 && !memcmp (buffer, "AMIG", 4)) { - /* ReKick */ - zfile_fseek (f, oldpos + 0x6c, SEEK_SET); - cr = 2; + } + else if (size >= 524288 && !memcmp (buffer, "AMIG", 4)) + { + /* ReKick */ + zfile_fseek (f, oldpos + 0x6c, SEEK_SET); + cr = 2; #endif - } else if (memcmp ((uae_char*)buffer, "AMIROMTYPE1", 11) != 0) { - zfile_fseek (f, oldpos, SEEK_SET); - } else { - cloanto_rom = 1; - cr = 1; - } + } + else if (memcmp ((uae_char*)buffer, "AMIROMTYPE1", 11) != 0) + { + zfile_fseek (f, oldpos, SEEK_SET); + } + else + { + cloanto_rom = 1; + cr = 1; + } - memset (mem, 0, size); - for (i = 0; i < 8; i++) - mem[size - 16 + i * 2 + 1] = 0x18 + i; - mem[size - 20] = size >> 24; - mem[size - 19] = size >> 16; - mem[size - 18] = size >> 8; - mem[size - 17] = size >> 0; + memset (mem, 0, size); + for (i = 0; i < 8; i++) + mem[size - 16 + i * 2 + 1] = 0x18 + i; + mem[size - 20] = size >> 24; + mem[size - 19] = size >> 16; + mem[size - 18] = size >> 8; + mem[size - 17] = size >> 0; - i = zfile_fread (mem, 1, size, f); + i = zfile_fread (mem, 1, size, f); - if (kickdisk && i > 262144) - i = 262144; + if (kickdisk && i > 262144) + i = 262144; #if 0 - if (i >= 262144 && (i != 262144 && i != 524288 && i != 524288 * 2 && i != 524288 * 4)) { - notify_user (NUMSG_KSROMREADERROR); - return 0; - } + if (i >= 262144 && (i != 262144 && i != 524288 && i != 524288 * 2 && i != 524288 * 4)) + { + notify_user (NUMSG_KSROMREADERROR); + return 0; + } #endif - if (i < size - 20) - kickstart_fix_checksum (mem, size); + if (i < size - 20) + kickstart_fix_checksum (mem, size); - j = 1; - while (j < i) - j <<= 1; - i = j; + j = 1; + while (j < i) + j <<= 1; + i = j; - if (!noalias && i == size / 2) - memcpy (mem + size / 2, mem, size / 2); + if (!noalias && i == size / 2) + memcpy (mem + size / 2, mem, size / 2); - if (cr) { - if(!decode_rom (mem, size, cr, i)) - return 0; - } + if (cr) + { + if(!decode_rom (mem, size, cr, i)) + return 0; + } - for (j = 0; j < 256 && i >= 262144; j++) { - if (!memcmp (mem + j, kickstring, strlen (kickstring) + 1)) - break; - } + for (j = 0; j < 256 && i >= 262144; j++) + { + if (!memcmp (mem + j, kickstring, strlen (kickstring) + 1)) + break; + } - if (j == 256 || i < 262144) - dochecksum = 0; - if (dochecksum) - kickstart_checksum (mem, size); - return i; + if (j == 256 || i < 262144) + dochecksum = 0; + if (dochecksum) + kickstart_checksum (mem, size); + return i; } static bool load_extendedkickstart (const TCHAR *romextfile, int type) { - struct zfile *f; - int size, off; - bool ret = false; + struct zfile *f; + int size, off; + bool ret = false; - if (_tcslen (romextfile) == 0) - return false; - f = read_rom_name (romextfile); - if (!f) { - notify_user (NUMSG_NOEXTROM); - return false; - } - zfile_fseek (f, 0, SEEK_END); - size = zfile_ftell (f); - extendedkickmem_size = 524288; - off = 0; - if (type == 0) { - if (currprefs.cs_cd32cd) { - extendedkickmem_type = EXTENDED_ROM_CD32; - } else if (size > 300000) { - extendedkickmem_type = EXTENDED_ROM_CD32; - } else if (need_uae_boot_rom () != 0xf00000) { - extendedkickmem_type = EXTENDED_ROM_CDTV; - } - } else { - extendedkickmem_type = type; - } - if (extendedkickmem_type) { - zfile_fseek (f, off, SEEK_SET); - switch (extendedkickmem_type) { - case EXTENDED_ROM_CDTV: - extendedkickmemory = mapped_malloc (extendedkickmem_size, _T("rom_f0")); - extendedkickmem_bank.baseaddr = extendedkickmemory; - extendedkickmem_start = 0xf00000; - break; - case EXTENDED_ROM_CD32: - extendedkickmemory = mapped_malloc (extendedkickmem_size, _T("rom_e0")); - extendedkickmem_bank.baseaddr = extendedkickmemory; - extendedkickmem_start = 0xe00000; - break; + if (_tcslen (romextfile) == 0) + return false; + f = read_rom_name (romextfile); + if (!f) + { + notify_user (NUMSG_NOEXTROM); + return false; } - if (extendedkickmemory) { - read_kickstart (f, extendedkickmemory, extendedkickmem_size, 0, 1); - extendedkickmem_mask = extendedkickmem_size - 1; - ret = true; - } - } - zfile_fclose (f); - return ret; + zfile_fseek (f, 0, SEEK_END); + size = zfile_ftell (f); + extendedkickmem_size = 524288; + off = 0; + if (type == 0) + { + if (currprefs.cs_cd32cd) + { + extendedkickmem_type = EXTENDED_ROM_CD32; + } + else if (size > 300000) + { + extendedkickmem_type = EXTENDED_ROM_CD32; + } + else if (need_uae_boot_rom () != 0xf00000) + { + extendedkickmem_type = EXTENDED_ROM_CDTV; + } + } + else + { + extendedkickmem_type = type; + } + if (extendedkickmem_type) + { + zfile_fseek (f, off, SEEK_SET); + switch (extendedkickmem_type) + { + case EXTENDED_ROM_CDTV: + extendedkickmemory = mapped_malloc (extendedkickmem_size, _T("rom_f0")); + extendedkickmem_bank.baseaddr = extendedkickmemory; + extendedkickmem_start = 0xf00000; + break; + case EXTENDED_ROM_CD32: + extendedkickmemory = mapped_malloc (extendedkickmem_size, _T("rom_e0")); + extendedkickmem_bank.baseaddr = extendedkickmemory; + extendedkickmem_start = 0xe00000; + break; + } + if (extendedkickmemory) + { + read_kickstart (f, extendedkickmemory, extendedkickmem_size, 0, 1); + extendedkickmem_mask = extendedkickmem_size - 1; + ret = true; + } + } + zfile_fclose (f); + return ret; } /* disable incompatible drivers */ static int patch_residents (uae_u8 *kickmemory, int size) { - int i, j, patched = 0; - uae_char *residents[] = { "NCR scsi.device", "scsi.device", "carddisk.device", "card.resource", 0 }; - // "scsi.device", "carddisk.device", "card.resource" }; - uaecptr base = size == 524288 ? 0xf80000 : 0xfc0000; + int i, j, patched = 0; + uae_char *residents[] = { "NCR scsi.device", "scsi.device", "carddisk.device", "card.resource", 0 }; + // "scsi.device", "carddisk.device", "card.resource" }; + uaecptr base = size == 524288 ? 0xf80000 : 0xfc0000; - for (i = 0; i < size - 100; i++) { - if (kickmemory[i] == 0x4a && kickmemory[i + 1] == 0xfc) { - uaecptr addr; - addr = (kickmemory[i + 2] << 24) | (kickmemory[i + 3] << 16) | (kickmemory[i + 4] << 8) | (kickmemory[i + 5] << 0); - if (addr != i + base) - continue; - addr = (kickmemory[i + 14] << 24) | (kickmemory[i + 15] << 16) | (kickmemory[i + 16] << 8) | (kickmemory[i + 17] << 0); - if (addr >= base && addr < base + size) { - j = 0; - while (residents[j]) { - if (!memcmp (residents[j], kickmemory + addr - base, strlen (residents[j]) + 1)) { - TCHAR *s = au (residents[j]); - write_log (_T("KSPatcher: '%s' at %08X disabled\n"), s, i + base); - xfree (s); - kickmemory[i] = 0x4b; /* destroy RTC_MATCHWORD */ - patched++; - break; - } - j++; - } - } - } - } - return patched; + for (i = 0; i < size - 100; i++) + { + if (kickmemory[i] == 0x4a && kickmemory[i + 1] == 0xfc) + { + uaecptr addr; + addr = (kickmemory[i + 2] << 24) | (kickmemory[i + 3] << 16) | (kickmemory[i + 4] << 8) | (kickmemory[i + 5] << 0); + if (addr != i + base) + continue; + addr = (kickmemory[i + 14] << 24) | (kickmemory[i + 15] << 16) | (kickmemory[i + 16] << 8) | (kickmemory[i + 17] << 0); + if (addr >= base && addr < base + size) + { + j = 0; + while (residents[j]) + { + if (!memcmp (residents[j], kickmemory + addr - base, strlen (residents[j]) + 1)) + { + TCHAR *s = au (residents[j]); + write_log (_T("KSPatcher: '%s' at %08X disabled\n"), s, i + base); + xfree (s); + kickmemory[i] = 0x4b; /* destroy RTC_MATCHWORD */ + patched++; + break; + } + j++; + } + } + } + } + return patched; } static void patch_kick(void) { - int patched = 0; - patched += patch_residents (kickmemory, kickmem_size); - if (extendedkickmemory) { - patched += patch_residents (extendedkickmemory, extendedkickmem_size); + int patched = 0; + patched += patch_residents (kickmemory, kickmem_size); + if (extendedkickmemory) + { + patched += patch_residents (extendedkickmemory, extendedkickmem_size); + if (patched) + kickstart_fix_checksum (extendedkickmemory, extendedkickmem_size); + } if (patched) - kickstart_fix_checksum (extendedkickmemory, extendedkickmem_size); - } - if (patched) - kickstart_fix_checksum (kickmemory, kickmem_size); + kickstart_fix_checksum (kickmemory, kickmem_size); } extern unsigned char arosrom[]; extern unsigned int arosrom_len; static bool load_kickstart_replacement (void) { - struct zfile *f; - - f = zfile_fopen_data (_T("aros.gz"), arosrom_len, arosrom); - if (!f) - return false; - f = zfile_gunzip (f); - if (!f) - return false; - kickmem_mask = 0x80000 - 1; - kickmem_size = 0x80000; - extendedkickmem_size = 0x80000; - extendedkickmem_type = EXTENDED_ROM_KS; - extendedkickmemory = mapped_malloc (extendedkickmem_size, _T("rom_e0")); - extendedkickmem_bank.baseaddr = extendedkickmemory; - read_kickstart (f, extendedkickmemory, extendedkickmem_size, 0, 1); - extendedkickmem_mask = extendedkickmem_size - 1; - read_kickstart (f, kickmemory, 0x80000, 1, 0); - zfile_fclose (f); - return true; + struct zfile *f; + + f = zfile_fopen_data (_T("aros.gz"), arosrom_len, arosrom); + if (!f) + return false; + f = zfile_gunzip (f); + if (!f) + return false; + kickmem_mask = 0x80000 - 1; + kickmem_size = 0x80000; + extendedkickmem_size = 0x80000; + extendedkickmem_type = EXTENDED_ROM_KS; + extendedkickmemory = mapped_malloc (extendedkickmem_size, _T("rom_e0")); + extendedkickmem_bank.baseaddr = extendedkickmemory; + read_kickstart (f, extendedkickmemory, extendedkickmem_size, 0, 1); + extendedkickmem_mask = extendedkickmem_size - 1; + read_kickstart (f, kickmemory, 0x80000, 1, 0); + zfile_fclose (f); + return true; } static int load_kickstart (void) { - struct zfile *f; - TCHAR tmprom[MAX_DPATH], tmprom2[MAX_DPATH]; - int patched = 0; + struct zfile *f; + TCHAR tmprom[MAX_DPATH], tmprom2[MAX_DPATH]; + int patched = 0; - cloanto_rom = 0; - if (!_tcscmp (currprefs.romfile, _T(":AROS"))) - return load_kickstart_replacement (); - f = read_rom_name (currprefs.romfile); - _tcscpy (tmprom, currprefs.romfile); - if (f == NULL) { - _stprintf (tmprom2, _T("%s%s"), start_path_data, currprefs.romfile); - f = rom_fopen (tmprom2, _T("rb"), ZFD_NORMAL); - if (f == NULL) { - _stprintf (currprefs.romfile, _T("%sroms/kick.rom"), start_path_data); - f = rom_fopen (currprefs.romfile, _T("rb"), ZFD_NORMAL); - if (f == NULL) { - _stprintf (currprefs.romfile, _T("%skick.rom"), start_path_data); - f = rom_fopen( currprefs.romfile, _T("rb"), ZFD_NORMAL); - if (f == NULL) - f = read_rom_name_guess (tmprom); - } - } else { - _tcscpy (currprefs.romfile, tmprom2); + cloanto_rom = 0; + if (!_tcscmp (currprefs.romfile, _T(":AROS"))) + return load_kickstart_replacement (); + f = read_rom_name (currprefs.romfile); + _tcscpy (tmprom, currprefs.romfile); + if (f == NULL) + { + _stprintf (tmprom2, _T("%s%s"), start_path_data, currprefs.romfile); + f = rom_fopen (tmprom2, _T("rb"), ZFD_NORMAL); + if (f == NULL) + { + _stprintf (currprefs.romfile, _T("%sroms/kick.rom"), start_path_data); + f = rom_fopen (currprefs.romfile, _T("rb"), ZFD_NORMAL); + if (f == NULL) + { + _stprintf (currprefs.romfile, _T("%skick.rom"), start_path_data); + f = rom_fopen( currprefs.romfile, _T("rb"), ZFD_NORMAL); + if (f == NULL) + f = read_rom_name_guess (tmprom); + } + } + else + { + _tcscpy (currprefs.romfile, tmprom2); + } } - } - addkeydir (currprefs.romfile); - if (f == NULL) /* still no luck */ - goto err; + addkeydir (currprefs.romfile); + if (f == NULL) /* still no luck */ + goto err; - if (f != NULL) { - int filesize, size, maxsize; - int kspos = 524288; - int extpos = 0; + if (f != NULL) + { + int filesize, size, maxsize; + int kspos = 524288; + int extpos = 0; - maxsize = 524288; - zfile_fseek (f, 0, SEEK_END); - filesize = zfile_ftell (f); - zfile_fseek (f, 0, SEEK_SET); - if (filesize == 1760 * 512) { - filesize = 262144; - maxsize = 262144; - } - if (filesize == 524288 + 8) { - /* GVP 0xf0 kickstart */ - zfile_fseek (f, 8, SEEK_SET); - } - if (filesize >= 524288 * 2) { - struct romdata *rd = getromdatabyzfile(f); - zfile_fseek (f, kspos, SEEK_SET); - } - if (filesize >= 524288 * 4) { - kspos = 524288 * 3; - extpos = 0; - zfile_fseek (f, kspos, SEEK_SET); - } - size = read_kickstart (f, kickmemory, maxsize, 1, 0); - if (size == 0) - goto err; - kickmem_mask = size - 1; - kickmem_size = size; - if (filesize >= 524288 * 2 && !extendedkickmem_type) { - extendedkickmem_size = 0x80000; - extendedkickmem_type = EXTENDED_ROM_KS; - extendedkickmemory = mapped_malloc (extendedkickmem_size, _T("rom_e0")); - extendedkickmem_start = 0xe00000; - extendedkickmem_bank.baseaddr = extendedkickmemory; - zfile_fseek (f, extpos, SEEK_SET); - read_kickstart (f, extendedkickmemory, extendedkickmem_size, 0, 1); - extendedkickmem_mask = extendedkickmem_size - 1; - } - if (filesize > 524288 * 2) { - extendedkickmem2_size = 524288 * 2; - extendedkickmemory2 = mapped_malloc (extendedkickmem2_size, _T("rom_a8")); - extendedkickmem2_bank.baseaddr = extendedkickmemory2; - zfile_fseek (f, extpos + 524288, SEEK_SET); - read_kickstart (f, extendedkickmemory2, 524288, 0, 1); - zfile_fseek (f, extpos + 524288 * 2, SEEK_SET); - read_kickstart (f, extendedkickmemory2 + 524288, 524288, 0, 1); - extendedkickmem2_mask = extendedkickmem2_size - 1; - extendedkickmem2_start = 0xa80000; - } - } + maxsize = 524288; + zfile_fseek (f, 0, SEEK_END); + filesize = zfile_ftell (f); + zfile_fseek (f, 0, SEEK_SET); + if (filesize == 1760 * 512) + { + filesize = 262144; + maxsize = 262144; + } + if (filesize == 524288 + 8) + { + /* GVP 0xf0 kickstart */ + zfile_fseek (f, 8, SEEK_SET); + } + if (filesize >= 524288 * 2) + { + struct romdata *rd = getromdatabyzfile(f); + zfile_fseek (f, kspos, SEEK_SET); + } + if (filesize >= 524288 * 4) + { + kspos = 524288 * 3; + extpos = 0; + zfile_fseek (f, kspos, SEEK_SET); + } + size = read_kickstart (f, kickmemory, maxsize, 1, 0); + if (size == 0) + goto err; + kickmem_mask = size - 1; + kickmem_size = size; + if (filesize >= 524288 * 2 && !extendedkickmem_type) + { + extendedkickmem_size = 0x80000; + extendedkickmem_type = EXTENDED_ROM_KS; + extendedkickmemory = mapped_malloc (extendedkickmem_size, _T("rom_e0")); + extendedkickmem_start = 0xe00000; + extendedkickmem_bank.baseaddr = extendedkickmemory; + zfile_fseek (f, extpos, SEEK_SET); + read_kickstart (f, extendedkickmemory, extendedkickmem_size, 0, 1); + extendedkickmem_mask = extendedkickmem_size - 1; + } + if (filesize > 524288 * 2) + { + extendedkickmem2_size = 524288 * 2; + extendedkickmemory2 = mapped_malloc (extendedkickmem2_size, _T("rom_a8")); + extendedkickmem2_bank.baseaddr = extendedkickmemory2; + zfile_fseek (f, extpos + 524288, SEEK_SET); + read_kickstart (f, extendedkickmemory2, 524288, 0, 1); + zfile_fseek (f, extpos + 524288 * 2, SEEK_SET); + read_kickstart (f, extendedkickmemory2 + 524288, 524288, 0, 1); + extendedkickmem2_mask = extendedkickmem2_size - 1; + extendedkickmem2_start = 0xa80000; + } + } - kickstart_version = (kickmemory[12] << 8) | kickmemory[13]; - if (kickstart_version == 0xffff) - kickstart_version = 0; - zfile_fclose (f); - return 1; + kickstart_version = (kickmemory[12] << 8) | kickmemory[13]; + if (kickstart_version == 0xffff) + kickstart_version = 0; + zfile_fclose (f); + return 1; err: - _tcscpy (currprefs.romfile, tmprom); - zfile_fclose (f); - return 0; + _tcscpy (currprefs.romfile, tmprom); + zfile_fclose (f); + return 0; } static void init_mem_banks (void) { - int i; - for (i = 0; i < MEMORY_BANKS; i++) { - mem_banks[i] = &dummy_bank; - } + int i; + for (i = 0; i < MEMORY_BANKS; i++) + { + mem_banks[i] = &dummy_bank; + } } static void allocate_memory (void) { - if (allocated_chipmem != currprefs.chipmem_size) { - int memsize; - if (chipmemory) - mapped_free (chipmemory); - chipmemory = 0; - if (currprefs.chipmem_size > 2 * 1024 * 1024) - free_fastmemory (); - - memsize = allocated_chipmem = currprefs.chipmem_size; - chipmem_full_mask = chipmem_mask = allocated_chipmem - 1; - if (memsize > 0x100000 && memsize < 0x200000) - memsize = 0x200000; - chipmemory = mapped_malloc (memsize, _T("chip")); - if (chipmemory == 0) { - write_log (_T("Fatal error: out of memory for chipmem.\n")); - allocated_chipmem = 0; - } else { - need_hardreset = true; - if (memsize > allocated_chipmem) - memset (chipmemory + allocated_chipmem, 0xff, memsize - allocated_chipmem); + if (allocated_chipmem != currprefs.chipmem_size) + { + int memsize; + if (chipmemory) + mapped_free (chipmemory); + chipmemory = 0; + if (currprefs.chipmem_size > 2 * 1024 * 1024) + free_fastmemory (); + + memsize = allocated_chipmem = currprefs.chipmem_size; + chipmem_full_mask = chipmem_mask = allocated_chipmem - 1; + if (memsize > 0x100000 && memsize < 0x200000) + memsize = 0x200000; + chipmemory = mapped_malloc (memsize, _T("chip")); + if (chipmemory == 0) + { + write_log (_T("Fatal error: out of memory for chipmem.\n")); + allocated_chipmem = 0; + } + else + { + need_hardreset = true; + if (memsize > allocated_chipmem) + memset (chipmemory + allocated_chipmem, 0xff, memsize - allocated_chipmem); + } + currprefs.chipset_mask = changed_prefs.chipset_mask; + chipmem_full_mask = allocated_chipmem - 1; } - currprefs.chipset_mask = changed_prefs.chipset_mask; - chipmem_full_mask = allocated_chipmem - 1; - } - if (allocated_bogomem != currprefs.bogomem_size) { - if (bogomemory) - mapped_free (bogomemory); - bogomemory = 0; - - if(currprefs.bogomem_size > 0x1c0000) - currprefs.bogomem_size = 0x1c0000; - if (currprefs.bogomem_size > 0x180000 && ((changed_prefs.chipset_mask & CSMASK_AGA) || (currprefs.cpu_model >= 68020))) - currprefs.bogomem_size = 0x180000; + if (allocated_bogomem != currprefs.bogomem_size) + { + if (bogomemory) + mapped_free (bogomemory); + bogomemory = 0; - allocated_bogomem = currprefs.bogomem_size; - if (allocated_bogomem >= 0x180000) - allocated_bogomem = 0x200000; - bogomem_mask = allocated_bogomem - 1; + if(currprefs.bogomem_size > 0x1c0000) + currprefs.bogomem_size = 0x1c0000; + if (currprefs.bogomem_size > 0x180000 && ((changed_prefs.chipset_mask & CSMASK_AGA) || (currprefs.cpu_model >= 68020))) + currprefs.bogomem_size = 0x180000; - if (allocated_bogomem) { - bogomemory = mapped_malloc (allocated_bogomem, _T("bogo")); - if (bogomemory == 0) { - write_log (_T("Out of memory for bogomem.\n")); - allocated_bogomem = 0; - } - } - need_hardreset = true; - } + allocated_bogomem = currprefs.bogomem_size; + if (allocated_bogomem >= 0x180000) + allocated_bogomem = 0x200000; + bogomem_mask = allocated_bogomem - 1; - if (savestate_state == STATE_RESTORE) { - if (bootrom_filepos) { - protect_roms (false); - restore_ram (bootrom_filepos, rtarea); - protect_roms (true); + if (allocated_bogomem) + { + bogomemory = mapped_malloc (allocated_bogomem, _T("bogo")); + if (bogomemory == 0) + { + write_log (_T("Out of memory for bogomem.\n")); + allocated_bogomem = 0; + } + } + need_hardreset = true; } - restore_ram (chip_filepos, chipmemory); - if (allocated_bogomem > 0) - restore_ram (bogo_filepos, bogomemory); - } - chipmem_bank.baseaddr = chipmemory; - bogomem_bank.baseaddr = bogomemory; - bootrom_filepos = 0; - chip_filepos = 0; - bogo_filepos = 0; + + if (savestate_state == STATE_RESTORE) + { + if (bootrom_filepos) + { + protect_roms (false); + restore_ram (bootrom_filepos, rtarea); + protect_roms (true); + } + restore_ram (chip_filepos, chipmemory); + if (allocated_bogomem > 0) + restore_ram (bogo_filepos, bogomemory); + } + chipmem_bank.baseaddr = chipmemory; + bogomem_bank.baseaddr = bogomemory; + bootrom_filepos = 0; + chip_filepos = 0; + bogo_filepos = 0; } void map_overlay (int chip) { - int size; - addrbank *cb; - int currPC = m68k_getpc(); + int size; + addrbank *cb; + int currPC = m68k_getpc(); - size = allocated_chipmem >= 0x180000 ? (allocated_chipmem >> 16) : 32; - cb = &chipmem_bank; - if (chip) { - map_banks (&dummy_bank, 0, 32, 0); - map_banks (cb, 0, size, allocated_chipmem); - } else { - addrbank *rb = NULL; - if (size < 32) - size = 32; - cb = &get_mem_bank (0xf00000); - if (!rb && cb && (cb->flags & ABFLAG_ROM) && get_word (0xf00000) == 0x1114) - rb = cb; - cb = &get_mem_bank (0xe00000); - if (!rb && cb && (cb->flags & ABFLAG_ROM) && get_word (0xe00000) == 0x1114) - rb = cb; - if (!rb) - rb = &kickmem_bank; - map_banks (rb, 0, size, 0x80000); - } - if (!isrestore () && valid_address (regs.pc, 4)) - m68k_setpc(currPC); + size = allocated_chipmem >= 0x180000 ? (allocated_chipmem >> 16) : 32; + cb = &chipmem_bank; + if (chip) + { + map_banks (&dummy_bank, 0, 32, 0); + map_banks (cb, 0, size, allocated_chipmem); + } + else + { + addrbank *rb = NULL; + if (size < 32) + size = 32; + cb = &get_mem_bank (0xf00000); + if (!rb && cb && (cb->flags & ABFLAG_ROM) && get_word (0xf00000) == 0x1114) + rb = cb; + cb = &get_mem_bank (0xe00000); + if (!rb && cb && (cb->flags & ABFLAG_ROM) && get_word (0xe00000) == 0x1114) + rb = cb; + if (!rb) + rb = &kickmem_bank; + map_banks (rb, 0, size, 0x80000); + } + if (!isrestore () && valid_address (regs.pc, 4)) + m68k_setpc(currPC); } uae_s32 getz2size (struct uae_prefs *p) { - uae_u32 start; - start = p->fastmem_size; - if (p->rtgmem_size && !p->rtgmem_type) { - while (start & (p->rtgmem_size - 1) && start < 8 * 1024 * 1024) - start += 1024 * 1024; - if (start + p->rtgmem_size > 8 * 1024 * 1024) - return -1; - } - start += p->rtgmem_size; - return start; + uae_u32 start; + start = p->fastmem_size; + if (p->rtgmem_size && !p->rtgmem_type) + { + while (start & (p->rtgmem_size - 1) && start < 8 * 1024 * 1024) + start += 1024 * 1024; + if (start + p->rtgmem_size > 8 * 1024 * 1024) + return -1; + } + start += p->rtgmem_size; + return start; } uae_u32 getz2endaddr (void) { - uae_u32 start; - start = currprefs.fastmem_size; - if (currprefs.rtgmem_size && !currprefs.rtgmem_type) { - if (!start) - start = 0x00200000; - while (start & (currprefs.rtgmem_size - 1) && start < 4 * 1024 * 1024) - start += 1024 * 1024; - } - return start + 2 * 1024 * 1024; + uae_u32 start; + start = currprefs.fastmem_size; + if (currprefs.rtgmem_size && !currprefs.rtgmem_type) + { + if (!start) + start = 0x00200000; + while (start & (currprefs.rtgmem_size - 1) && start < 4 * 1024 * 1024) + start += 1024 * 1024; + } + return start + 2 * 1024 * 1024; } void memory_clear (void) { - mem_hardreset = 0; - if (savestate_state == STATE_RESTORE) - return; - if (chipmemory) - memset (chipmemory, 0, allocated_chipmem); - if (bogomemory) - memset (bogomemory, 0, allocated_bogomem); - expansion_clear (); + mem_hardreset = 0; + if (savestate_state == STATE_RESTORE) + return; + if (chipmemory) + memset (chipmemory, 0, allocated_chipmem); + if (bogomemory) + memset (bogomemory, 0, allocated_bogomem); + expansion_clear (); } void memory_reset (void) { - int bnk, bnk_end; - bool gayleorfatgary; + int bnk, bnk_end; + bool gayleorfatgary; - need_hardreset = false; - /* Use changed_prefs, as m68k_reset is called later. */ - if (last_address_space_24 != changed_prefs.address_space_24) - need_hardreset = true; - last_address_space_24 = changed_prefs.address_space_24; + need_hardreset = false; + /* Use changed_prefs, as m68k_reset is called later. */ + if (last_address_space_24 != changed_prefs.address_space_24) + need_hardreset = true; + last_address_space_24 = changed_prefs.address_space_24; - if (mem_hardreset > 2) - memory_init (); + if (mem_hardreset > 2) + memory_init (); - be_cnt = 0; - currprefs.chipmem_size = changed_prefs.chipmem_size; - currprefs.bogomem_size = changed_prefs.bogomem_size; + be_cnt = 0; + currprefs.chipmem_size = changed_prefs.chipmem_size; + currprefs.bogomem_size = changed_prefs.bogomem_size; - gayleorfatgary = (currprefs.chipset_mask & CSMASK_AGA); + gayleorfatgary = (currprefs.chipset_mask & CSMASK_AGA); - init_mem_banks (); - allocate_memory (); + init_mem_banks (); + allocate_memory (); - if (mem_hardreset > 1 - || _tcscmp (currprefs.romfile, changed_prefs.romfile) != 0 - || _tcscmp (currprefs.romextfile, changed_prefs.romextfile) != 0) - { - protect_roms (false); - write_log (_T("ROM loader.. (%s)\n"), currprefs.romfile); - kickstart_rom = 1; + if (mem_hardreset > 1 + || _tcscmp (currprefs.romfile, changed_prefs.romfile) != 0 + || _tcscmp (currprefs.romextfile, changed_prefs.romextfile) != 0) + { + protect_roms (false); + write_log (_T("ROM loader.. (%s)\n"), currprefs.romfile); + kickstart_rom = 1; - memcpy (currprefs.romfile, changed_prefs.romfile, sizeof currprefs.romfile); - memcpy (currprefs.romextfile, changed_prefs.romextfile, sizeof currprefs.romextfile); - need_hardreset = true; - mapped_free (extendedkickmemory); - extendedkickmemory = 0; - extendedkickmem_size = 0; - extendedkickmemory2 = 0; - extendedkickmem2_size = 0; - extendedkickmem_type = 0; - load_extendedkickstart (currprefs.romextfile, 0); - kickmem_mask = 524288 - 1; - if (!load_kickstart ()) { - if (_tcslen (currprefs.romfile) > 0) { - write_log (_T("Failed to open '%s'\n"), currprefs.romfile); - notify_user (NUMSG_NOROM); - } - load_kickstart_replacement (); - } else { - struct romdata *rd = getromdatabydata (kickmemory, kickmem_size); - if (rd) { - write_log (_T("Known ROM '%s' loaded\n"), rd->name); - if ((rd->cpu & 3) == 3 && changed_prefs.cpu_model != 68030) { - notify_user (NUMSG_KS68030); - uae_restart (-1, NULL); - } else if ((rd->cpu & 3) == 1 && changed_prefs.cpu_model < 68020) { - notify_user (NUMSG_KS68EC020); - uae_restart (-1, NULL); - } else if ((rd->cpu & 3) == 2 && (changed_prefs.cpu_model < 68020 || changed_prefs.address_space_24)) { - notify_user (NUMSG_KS68020); - uae_restart (-1, NULL); - } - if (rd->cloanto) - cloanto_rom = 1; - kickstart_rom = 0; - if ((rd->type & (ROMTYPE_SPECIALKICK | ROMTYPE_KICK)) == ROMTYPE_KICK) - kickstart_rom = 1; - } else { - write_log (_T("Unknown ROM '%s' loaded\n"), currprefs.romfile); - } + memcpy (currprefs.romfile, changed_prefs.romfile, sizeof currprefs.romfile); + memcpy (currprefs.romextfile, changed_prefs.romextfile, sizeof currprefs.romextfile); + need_hardreset = true; + mapped_free (extendedkickmemory); + extendedkickmemory = 0; + extendedkickmem_size = 0; + extendedkickmemory2 = 0; + extendedkickmem2_size = 0; + extendedkickmem_type = 0; + load_extendedkickstart (currprefs.romextfile, 0); + kickmem_mask = 524288 - 1; + if (!load_kickstart ()) + { + if (_tcslen (currprefs.romfile) > 0) + { + write_log (_T("Failed to open '%s'\n"), currprefs.romfile); + notify_user (NUMSG_NOROM); + } + load_kickstart_replacement (); + } + else + { + struct romdata *rd = getromdatabydata (kickmemory, kickmem_size); + if (rd) + { + write_log (_T("Known ROM '%s' loaded\n"), rd->name); + if ((rd->cpu & 3) == 3 && changed_prefs.cpu_model != 68030) + { + notify_user (NUMSG_KS68030); + uae_restart (-1, NULL); + } + else if ((rd->cpu & 3) == 1 && changed_prefs.cpu_model < 68020) + { + notify_user (NUMSG_KS68EC020); + uae_restart (-1, NULL); + } + else if ((rd->cpu & 3) == 2 && (changed_prefs.cpu_model < 68020 || changed_prefs.address_space_24)) + { + notify_user (NUMSG_KS68020); + uae_restart (-1, NULL); + } + if (rd->cloanto) + cloanto_rom = 1; + kickstart_rom = 0; + if ((rd->type & (ROMTYPE_SPECIALKICK | ROMTYPE_KICK)) == ROMTYPE_KICK) + kickstart_rom = 1; + } + else + { + write_log (_T("Unknown ROM '%s' loaded\n"), currprefs.romfile); + } + } + patch_kick (); + write_log (_T("ROM loader end\n")); + protect_roms (true); } - patch_kick (); - write_log (_T("ROM loader end\n")); - protect_roms (true); - } - map_banks (&custom_bank, 0xC0, 0xE0 - 0xC0, 0); - map_banks (&cia_bank, 0xA0, 32, 0); + map_banks (&custom_bank, 0xC0, 0xE0 - 0xC0, 0); + map_banks (&cia_bank, 0xA0, 32, 0); - /* D80000 - DDFFFF not mapped (A1000 = custom chips) */ - map_banks (&dummy_bank, 0xD8, 6, 0); + /* D80000 - DDFFFF not mapped (A1000 = custom chips) */ + map_banks (&dummy_bank, 0xD8, 6, 0); - /* map "nothing" to 0x200000 - 0x9FFFFF (0xBEFFFF if Gayle or Fat Gary) */ - bnk = allocated_chipmem >> 16; - if (bnk < 0x20 + (currprefs.fastmem_size >> 16)) - bnk = 0x20 + (currprefs.fastmem_size >> 16); - bnk_end = gayleorfatgary ? 0xBF : 0xA0; - map_banks (&dummy_bank, bnk, bnk_end - bnk, 0); - if (gayleorfatgary) { - // a3000 or a4000 = custom chips from 0xc0 to 0xd0 - map_banks (&dummy_bank, 0xc0, 0xd8 - 0xc0, 0); - } + /* map "nothing" to 0x200000 - 0x9FFFFF (0xBEFFFF if Gayle or Fat Gary) */ + bnk = allocated_chipmem >> 16; + if (bnk < 0x20 + (currprefs.fastmem_size >> 16)) + bnk = 0x20 + (currprefs.fastmem_size >> 16); + bnk_end = gayleorfatgary ? 0xBF : 0xA0; + map_banks (&dummy_bank, bnk, bnk_end - bnk, 0); + if (gayleorfatgary) + { + // a3000 or a4000 = custom chips from 0xc0 to 0xd0 + map_banks (&dummy_bank, 0xc0, 0xd8 - 0xc0, 0); + } - if (bogomemory != 0) { - int t = currprefs.bogomem_size >> 16; - if (t > 0x1C) - t = 0x1C; - if (t > 0x18 && ((currprefs.chipset_mask & CSMASK_AGA) || (currprefs.cpu_model >= 68020 && !currprefs.address_space_24))) - t = 0x18; - map_banks (&bogomem_bank, 0xC0, t, 0); - } - map_banks (&clock_bank, 0xDC, 1, 0); + if (bogomemory != 0) + { + int t = currprefs.bogomem_size >> 16; + if (t > 0x1C) + t = 0x1C; + if (t > 0x18 && ((currprefs.chipset_mask & CSMASK_AGA) || (currprefs.cpu_model >= 68020 && !currprefs.address_space_24))) + t = 0x18; + map_banks (&bogomem_bank, 0xC0, t, 0); + } + map_banks (&clock_bank, 0xDC, 1, 0); #ifdef CD32 - if (currprefs.cs_cd32c2p || currprefs.cs_cd32cd || currprefs.cs_cd32nvram) { - map_banks (&akiko_bank, AKIKO_BASE >> 16, 1, 0); - } + if (currprefs.cs_cd32c2p || currprefs.cs_cd32cd || currprefs.cs_cd32nvram) + { + map_banks (&akiko_bank, AKIKO_BASE >> 16, 1, 0); + } #endif - map_banks (&kickmem_bank, 0xF8, 8, 0); - /* map beta Kickstarts at 0x200000/0xC00000/0xF00000 */ - if (kickmemory[0] == 0x11 && kickmemory[2] == 0x4e && kickmemory[3] == 0xf9 && kickmemory[4] == 0x00) { - uae_u32 addr = kickmemory[5]; - if (addr == 0x20 && allocated_chipmem <= 0x200000 && allocated_fastmem == 0) - map_banks (&kickmem_bank, addr, 8, 0); - if (addr == 0xC0 && allocated_bogomem == 0) - map_banks (&kickmem_bank, addr, 8, 0); - if (addr == 0xF0) - map_banks (&kickmem_bank, addr, 8, 0); - } + map_banks (&kickmem_bank, 0xF8, 8, 0); + /* map beta Kickstarts at 0x200000/0xC00000/0xF00000 */ + if (kickmemory[0] == 0x11 && kickmemory[2] == 0x4e && kickmemory[3] == 0xf9 && kickmemory[4] == 0x00) + { + uae_u32 addr = kickmemory[5]; + if (addr == 0x20 && allocated_chipmem <= 0x200000 && allocated_fastmem == 0) + map_banks (&kickmem_bank, addr, 8, 0); + if (addr == 0xC0 && allocated_bogomem == 0) + map_banks (&kickmem_bank, addr, 8, 0); + if (addr == 0xF0) + map_banks (&kickmem_bank, addr, 8, 0); + } #ifdef AUTOCONFIG - map_banks (&expamem_bank, 0xE8, 1, 0); + map_banks (&expamem_bank, 0xE8, 1, 0); #endif - /* Map the chipmem into all of the lower 8MB */ - map_overlay (1); + /* Map the chipmem into all of the lower 8MB */ + map_overlay (1); - switch (extendedkickmem_type) { + switch (extendedkickmem_type) + { case EXTENDED_ROM_KS: - map_banks (&extendedkickmem_bank, 0xE0, 8, 0); - break; + map_banks (&extendedkickmem_bank, 0xE0, 8, 0); + break; #ifdef CD32 - case EXTENDED_ROM_CD32: - map_banks (&extendedkickmem_bank, 0xE0, 8, 0); - break; + case EXTENDED_ROM_CD32: + map_banks (&extendedkickmem_bank, 0xE0, 8, 0); + break; #endif - } + } #ifdef AUTOCONFIG - if (need_uae_boot_rom ()) - map_banks (&rtarea_bank, rtarea_base >> 16, 1, 0); + if (need_uae_boot_rom ()) + map_banks (&rtarea_bank, rtarea_base >> 16, 1, 0); #endif - if ((cloanto_rom) && !extendedkickmem_type) - map_banks (&kickmem_bank, 0xE0, 8, 0); + if ((cloanto_rom) && !extendedkickmem_type) + map_banks (&kickmem_bank, 0xE0, 8, 0); - if (currprefs.chipset_mask & CSMASK_AGA) { - if (extendedkickmem_type == EXTENDED_ROM_CD32 || extendedkickmem_type == EXTENDED_ROM_KS) - map_banks (&extendedkickmem_bank, 0xb0, 8, 0); - else - map_banks (&kickmem_bank, 0xb0, 8, 0); - map_banks (&kickmem_bank, 0xa8, 8, 0); - } + if (currprefs.chipset_mask & CSMASK_AGA) + { + if (extendedkickmem_type == EXTENDED_ROM_CD32 || extendedkickmem_type == EXTENDED_ROM_KS) + map_banks (&extendedkickmem_bank, 0xb0, 8, 0); + else + map_banks (&kickmem_bank, 0xb0, 8, 0); + map_banks (&kickmem_bank, 0xa8, 8, 0); + } - if (mem_hardreset) { - memory_clear (); - } - write_log (_T("memory init end\n")); + if (mem_hardreset) + { + memory_clear (); + } + write_log (_T("memory init end\n")); } void memory_init (void) { - init_mem_banks (); - virtualdevice_init (); + init_mem_banks (); + virtualdevice_init (); - allocated_chipmem = 0; - allocated_bogomem = 0; - kickmemory = 0; - extendedkickmemory = 0; - extendedkickmem_size = 0; - extendedkickmemory2 = 0; - extendedkickmem2_size = 0; - extendedkickmem_type = 0; - chipmemory = 0; - bogomemory = 0; + allocated_chipmem = 0; + allocated_bogomem = 0; + kickmemory = 0; + extendedkickmemory = 0; + extendedkickmem_size = 0; + extendedkickmemory2 = 0; + extendedkickmem2_size = 0; + extendedkickmem_type = 0; + chipmemory = 0; + bogomemory = 0; - kickmemory = mapped_malloc (0x80000, _T("kick")); - memset (kickmemory, 0, 0x80000); - kickmem_bank.baseaddr = kickmemory; - _tcscpy (currprefs.romfile, _T("")); - currprefs.romextfile[0] = 0; + kickmemory = mapped_malloc (0x80000, _T("kick")); + memset (kickmemory, 0, 0x80000); + kickmem_bank.baseaddr = kickmemory; + _tcscpy (currprefs.romfile, _T("")); + currprefs.romextfile[0] = 0; } void memory_cleanup (void) { - if (bogomemory) - mapped_free (bogomemory); - if (kickmemory) - mapped_free (kickmemory); - if (chipmemory) - mapped_free (chipmemory); - if(extendedkickmemory) - mapped_free (extendedkickmemory); - if(extendedkickmemory2) - mapped_free (extendedkickmemory2); - - bogomemory = 0; - kickmemory = 0; - chipmemory = 0; - extendedkickmemory = 0; - extendedkickmemory2 = 0; - - init_mem_banks (); + if (bogomemory) + mapped_free (bogomemory); + if (kickmemory) + mapped_free (kickmemory); + if (chipmemory) + mapped_free (chipmemory); + if(extendedkickmemory) + mapped_free (extendedkickmemory); + if(extendedkickmemory2) + mapped_free (extendedkickmemory2); + + bogomemory = 0; + kickmemory = 0; + chipmemory = 0; + extendedkickmemory = 0; + extendedkickmemory2 = 0; + + init_mem_banks (); } void memory_hardreset (int mode) { - if (mode + 1 > mem_hardreset) - mem_hardreset = mode + 1; + if (mode + 1 > mem_hardreset) + mem_hardreset = mode + 1; } void map_banks (addrbank *bank, int start, int size, int realsize) { - int bnr; - unsigned long int hioffs = 0, endhioffs = 0x100; - addrbank *orgbank = bank; - uae_u32 realstart = start; + int bnr; + unsigned long int hioffs = 0, endhioffs = 0x100; + addrbank *orgbank = bank; + uae_u32 realstart = start; - flush_icache (0, 3); /* Sure don't want to keep any old mappings around! */ + flush_icache (0, 3); /* Sure don't want to keep any old mappings around! */ - if (!realsize) - realsize = size << 16; + if (!realsize) + realsize = size << 16; - if ((size << 16) < realsize) { - write_log (_T("Broken mapping, size=%x, realsize=%x\nStart is %x\n"), - size, realsize, start); - } + if ((size << 16) < realsize) + { + write_log (_T("Broken mapping, size=%x, realsize=%x\nStart is %x\n"), + size, realsize, start); + } #ifndef ADDRESS_SPACE_24BIT - if (start >= 0x100) { - for (bnr = start; bnr < start + size; bnr++) { - mem_banks[bnr] = bank; + if (start >= 0x100) + { + for (bnr = start; bnr < start + size; bnr++) + { + mem_banks[bnr] = bank; + } + return; } - return; - } #endif - if (last_address_space_24) - endhioffs = 0x10000; + if (last_address_space_24) + endhioffs = 0x10000; #ifdef ADDRESS_SPACE_24BIT - endhioffs = 0x100; + endhioffs = 0x100; #endif - for (hioffs = 0; hioffs < endhioffs; hioffs += 0x100) { - for (bnr = start; bnr < start + size; bnr++) { - mem_banks[bnr + hioffs] = bank; + for (hioffs = 0; hioffs < endhioffs; hioffs += 0x100) + { + for (bnr = start; bnr < start + size; bnr++) + { + mem_banks[bnr + hioffs] = bank; + } } - } } #ifdef SAVESTATE @@ -1283,172 +1381,184 @@ void map_banks (addrbank *bank, int start, int size, int realsize) uae_u8 *save_bootrom(int *len) { - if (!uae_boot_rom) - return 0; - *len = uae_boot_rom_size; - return rtarea; + if (!uae_boot_rom) + return 0; + *len = uae_boot_rom_size; + return rtarea; } uae_u8 *save_cram (int *len) { - *len = allocated_chipmem; - return chipmemory; + *len = allocated_chipmem; + return chipmemory; } uae_u8 *save_bram (int *len) { - *len = allocated_bogomem; - return bogomemory; + *len = allocated_bogomem; + return bogomemory; } void restore_bootrom (int len, size_t filepos) { - bootrom_filepos = filepos; + bootrom_filepos = filepos; } void restore_cram (int len, size_t filepos) { - chip_filepos = filepos; - changed_prefs.chipmem_size = len; + chip_filepos = filepos; + changed_prefs.chipmem_size = len; } void restore_bram (int len, size_t filepos) { - bogo_filepos = filepos; - changed_prefs.bogomem_size = len; + bogo_filepos = filepos; + changed_prefs.bogomem_size = len; } uae_u8 *restore_rom (uae_u8 *src) { - uae_u32 crc32, mem_start, mem_size, mem_type, version; - TCHAR *s, *romn; - int i, crcdet; - struct romlist *rl = romlist_getit (); + uae_u32 crc32, mem_start, mem_size, mem_type, version; + TCHAR *s, *romn; + int i, crcdet; + struct romlist *rl = romlist_getit (); - mem_start = restore_u32 (); - mem_size = restore_u32 (); - mem_type = restore_u32 (); - version = restore_u32 (); - crc32 = restore_u32 (); - romn = restore_string (); - crcdet = 0; - for (i = 0; i < romlist_count (); i++) { - if (rl[i].rd->crc32 == crc32 && crc32) { - if (zfile_exists (rl[i].path)) { - switch (mem_type) + mem_start = restore_u32 (); + mem_size = restore_u32 (); + mem_type = restore_u32 (); + version = restore_u32 (); + crc32 = restore_u32 (); + romn = restore_string (); + crcdet = 0; + for (i = 0; i < romlist_count (); i++) + { + if (rl[i].rd->crc32 == crc32 && crc32) { - case 0: - _tcsncpy (changed_prefs.romfile, rl[i].path, 255); - break; - case 1: - _tcsncpy (changed_prefs.romextfile, rl[i].path, 255); - break; + if (zfile_exists (rl[i].path)) + { + switch (mem_type) + { + case 0: + _tcsncpy (changed_prefs.romfile, rl[i].path, 255); + break; + case 1: + _tcsncpy (changed_prefs.romextfile, rl[i].path, 255); + break; + } + write_log (_T("ROM '%s' = '%s'\n"), romn, rl[i].path); + crcdet = 1; + } + else + { + write_log (_T("ROM '%s' = '%s' invalid rom scanner path!"), romn, rl[i].path); + } + break; } - write_log (_T("ROM '%s' = '%s'\n"), romn, rl[i].path); - crcdet = 1; - } else { - write_log (_T("ROM '%s' = '%s' invalid rom scanner path!"), romn, rl[i].path); - } - break; } - } - s = restore_string (); - if (!crcdet) { - if(zfile_exists (s)) { - switch (mem_type) - { - case 0: - _tcsncpy (changed_prefs.romfile, s, 255); - break; - case 1: - _tcsncpy (changed_prefs.romextfile, s, 255); - break; - } - write_log (_T("ROM detected (path) as '%s'\n"), s); - crcdet = 1; - } - } - xfree (s); - if (!crcdet) - write_log (_T("WARNING: ROM '%s' %d.%d (CRC32=%08x %08x-%08x) not found!\n"), - romn, version >> 16, version & 0xffff, crc32, mem_start, mem_start + mem_size - 1); - xfree (romn); + s = restore_string (); + if (!crcdet) + { + if(zfile_exists (s)) + { + switch (mem_type) + { + case 0: + _tcsncpy (changed_prefs.romfile, s, 255); + break; + case 1: + _tcsncpy (changed_prefs.romextfile, s, 255); + break; + } + write_log (_T("ROM detected (path) as '%s'\n"), s); + crcdet = 1; + } + } + xfree (s); + if (!crcdet) + write_log (_T("WARNING: ROM '%s' %d.%d (CRC32=%08x %08x-%08x) not found!\n"), + romn, version >> 16, version & 0xffff, crc32, mem_start, mem_start + mem_size - 1); + xfree (romn); - return src; + return src; } uae_u8 *save_rom (int first, int *len, uae_u8 *dstptr) { - static int count; - uae_u8 *dst, *dstbak; - uae_u8 *mem_real_start; - uae_u32 version; - TCHAR *path; - int mem_start, mem_size, mem_type, saverom; - int i; - TCHAR tmpname[1000]; + static int count; + uae_u8 *dst, *dstbak; + uae_u8 *mem_real_start; + uae_u32 version; + TCHAR *path; + int mem_start, mem_size, mem_type, saverom; + int i; + TCHAR tmpname[1000]; - version = 0; - saverom = 0; - if (first) - count = 0; - for (;;) { - mem_type = count; - mem_size = 0; - switch (count) { - case 0: /* Kickstart ROM */ - mem_start = 0xf80000; - mem_real_start = kickmemory; - mem_size = kickmem_size; - path = currprefs.romfile; - /* 256KB or 512KB ROM? */ - for (i = 0; i < mem_size / 2 - 4; i++) { - if (longget (i + mem_start) != longget (i + mem_start + mem_size / 2)) - break; - } - if (i == mem_size / 2 - 4) { - mem_size /= 2; - mem_start += 262144; - } - version = longget (mem_start + 12); /* version+revision */ - _stprintf (tmpname, _T("Kickstart %d.%d"), wordget (mem_start + 12), wordget (mem_start + 14)); - break; - case 1: /* Extended ROM */ - if (!extendedkickmem_type) - break; - mem_start = extendedkickmem_start; - mem_real_start = extendedkickmemory; - mem_size = extendedkickmem_size; - path = currprefs.romextfile; - version = longget (mem_start + 12); /* version+revision */ - if (version == 0xffffffff) - version = longget (mem_start + 16); - _stprintf (tmpname, _T("Extended")); - break; - default: - return 0; - } - count++; - if (mem_size) - break; - } - if (dstptr) - dstbak = dst = dstptr; - else - dstbak = dst = xmalloc (uae_u8, 4 + 4 + 4 + 4 + 4 + 256 + 256 + mem_size); - save_u32 (mem_start); - save_u32 (mem_size); - save_u32 (mem_type); - save_u32 (version); - save_u32 (get_crc32 (mem_real_start, mem_size)); - save_string (tmpname); - save_string (path); - if (saverom) { - for (i = 0; i < mem_size; i++) - *dst++ = byteget (mem_start + i); - } - *len = dst - dstbak; - return dstbak; + version = 0; + saverom = 0; + if (first) + count = 0; + for (;;) + { + mem_type = count; + mem_size = 0; + switch (count) + { + case 0: /* Kickstart ROM */ + mem_start = 0xf80000; + mem_real_start = kickmemory; + mem_size = kickmem_size; + path = currprefs.romfile; + /* 256KB or 512KB ROM? */ + for (i = 0; i < mem_size / 2 - 4; i++) + { + if (longget (i + mem_start) != longget (i + mem_start + mem_size / 2)) + break; + } + if (i == mem_size / 2 - 4) + { + mem_size /= 2; + mem_start += 262144; + } + version = longget (mem_start + 12); /* version+revision */ + _stprintf (tmpname, _T("Kickstart %d.%d"), wordget (mem_start + 12), wordget (mem_start + 14)); + break; + case 1: /* Extended ROM */ + if (!extendedkickmem_type) + break; + mem_start = extendedkickmem_start; + mem_real_start = extendedkickmemory; + mem_size = extendedkickmem_size; + path = currprefs.romextfile; + version = longget (mem_start + 12); /* version+revision */ + if (version == 0xffffffff) + version = longget (mem_start + 16); + _stprintf (tmpname, _T("Extended")); + break; + default: + return 0; + } + count++; + if (mem_size) + break; + } + if (dstptr) + dstbak = dst = dstptr; + else + dstbak = dst = xmalloc (uae_u8, 4 + 4 + 4 + 4 + 4 + 256 + 256 + mem_size); + save_u32 (mem_start); + save_u32 (mem_size); + save_u32 (mem_type); + save_u32 (version); + save_u32 (get_crc32 (mem_real_start, mem_size)); + save_string (tmpname); + save_string (path); + if (saverom) + { + for (i = 0; i < mem_size; i++) + *dst++ = byteget (mem_start + i); + } + *len = dst - dstbak; + return dstbak; } #endif /* SAVESTATE */ @@ -1457,54 +1567,58 @@ uae_u8 *save_rom (int first, int *len, uae_u8 *dstptr) void memcpyha_safe (uaecptr dst, const uae_u8 *src, int size) { - if (!addr_valid (_T("memcpyha"), dst, size)) - return; - while (size--) - put_byte (dst++, *src++); + if (!addr_valid (_T("memcpyha"), dst, size)) + return; + while (size--) + put_byte (dst++, *src++); } void memcpyha (uaecptr dst, const uae_u8 *src, int size) { while (size--) - put_byte (dst++, *src++); + put_byte (dst++, *src++); } void memcpyah_safe (uae_u8 *dst, uaecptr src, int size) { - if (!addr_valid (_T("memcpyah"), src, size)) - return; - while (size--) - *dst++ = get_byte(src++); + if (!addr_valid (_T("memcpyah"), src, size)) + return; + while (size--) + *dst++ = get_byte(src++); } void memcpyah (uae_u8 *dst, uaecptr src, int size) { - while (size--) - *dst++ = get_byte(src++); + while (size--) + *dst++ = get_byte(src++); } uae_char *strcpyah_safe (uae_char *dst, uaecptr src, int maxsize) { - uae_char *res = dst; - uae_u8 b; - dst[0] = 0; - do { - if (!addr_valid (_T("_tcscpyah"), src, 1)) - return res; - b = get_byte(src++); - *dst++ = b; - *dst = 0; - maxsize--; - if (maxsize <= 1) - break; - } while (b); - return res; + uae_char *res = dst; + uae_u8 b; + dst[0] = 0; + do + { + if (!addr_valid (_T("_tcscpyah"), src, 1)) + return res; + b = get_byte(src++); + *dst++ = b; + *dst = 0; + maxsize--; + if (maxsize <= 1) + break; + } + while (b); + return res; } uaecptr strcpyha_safe (uaecptr dst, const uae_char *src) { - uaecptr res = dst; - uae_u8 b; - do { - if (!addr_valid (_T("_tcscpyha"), dst, 1)) - return res; - b = *src++; - put_byte (dst++, b); - } while (b); - return res; + uaecptr res = dst; + uae_u8 b; + do + { + if (!addr_valid (_T("_tcscpyha"), dst, 1)) + return res; + b = *src++; + put_byte (dst++, b); + } + while (b); + return res; } diff --git a/src/native2amiga.cpp b/src/native2amiga.cpp index a4a6d2b9..b65adef5 100644 --- a/src/native2amiga.cpp +++ b/src/native2amiga.cpp @@ -1,20 +1,20 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Call Amiga Exec functions outside the main UAE thread. - * - * Copyright 1999 Patrick Ohly - * - * Uses the EXTER interrupt that is setup in filesys.c - * and needs thread support. - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Call Amiga Exec functions outside the main UAE thread. + * + * Copyright 1999 Patrick Ohly + * + * Uses the EXTER interrupt that is setup in filesys.c + * and needs thread support. + */ #include "sysconfig.h" #include "sysdeps.h" #include "td-sdl/thread.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "custom.h" #include "newcpu.h" #include "autoconf.h" @@ -30,20 +30,20 @@ static uae_sem_t n2asem = 0; void native2amiga_install (void) { - if(native2amiga_pending.size != 100) - init_comm_pipe (&native2amiga_pending, 100, 2); - if(n2asem != 0) - uae_sem_destroy(&n2asem); - n2asem = 0; - uae_sem_init (&n2asem, 0, 1); + if(native2amiga_pending.size != 100) + init_comm_pipe (&native2amiga_pending, 100, 2); + if(n2asem != 0) + uae_sem_destroy(&n2asem); + n2asem = 0; + uae_sem_init (&n2asem, 0, 1); } void native2amiga_reset (void) { - smp_comm_pipe *p = &native2amiga_pending; - p->rdp = p->wrp = 0; - p->reader_waiting = 0; - p->writer_waiting = 0; + smp_comm_pipe *p = &native2amiga_pending; + p->rdp = p->wrp = 0; + p->reader_waiting = 0; + p->writer_waiting = 0; }; /* @@ -55,78 +55,78 @@ void native2amiga_startup (void) int native2amiga_isfree (void) { - return comm_pipe_has_data (&native2amiga_pending) == 0; + return comm_pipe_has_data (&native2amiga_pending) == 0; } #ifdef SUPPORT_THREADS void uae_Cause(uaecptr interrupt) { - uae_sem_wait (&n2asem); - write_comm_pipe_int (&native2amiga_pending, 3, 0); - write_comm_pipe_u32 (&native2amiga_pending, interrupt, 1); - do_uae_int_requested(); - uae_sem_post (&n2asem); + uae_sem_wait (&n2asem); + write_comm_pipe_int (&native2amiga_pending, 3, 0); + write_comm_pipe_u32 (&native2amiga_pending, interrupt, 1); + do_uae_int_requested(); + uae_sem_post (&n2asem); } void uae_ReplyMsg(uaecptr msg) { - uae_sem_wait (&n2asem); - write_comm_pipe_int (&native2amiga_pending, 2, 0); - write_comm_pipe_u32 (&native2amiga_pending, msg, 1); - do_uae_int_requested(); - uae_sem_post (&n2asem); + uae_sem_wait (&n2asem); + write_comm_pipe_int (&native2amiga_pending, 2, 0); + write_comm_pipe_u32 (&native2amiga_pending, msg, 1); + do_uae_int_requested(); + uae_sem_post (&n2asem); } void uae_PutMsg(uaecptr port, uaecptr msg) { - uae_sem_wait (&n2asem); - write_comm_pipe_int (&native2amiga_pending, 1, 0); - write_comm_pipe_u32 (&native2amiga_pending, port, 0); - write_comm_pipe_u32 (&native2amiga_pending, msg, 1); - do_uae_int_requested(); - uae_sem_post (&n2asem); + uae_sem_wait (&n2asem); + write_comm_pipe_int (&native2amiga_pending, 1, 0); + write_comm_pipe_u32 (&native2amiga_pending, port, 0); + write_comm_pipe_u32 (&native2amiga_pending, msg, 1); + do_uae_int_requested(); + uae_sem_post (&n2asem); } void uae_Signal(uaecptr task, uae_u32 mask) { - uae_sem_wait (&n2asem); - write_comm_pipe_int (&native2amiga_pending, 0, 0); - write_comm_pipe_u32 (&native2amiga_pending, task, 0); - write_comm_pipe_int (&native2amiga_pending, mask, 1); - do_uae_int_requested(); - uae_sem_post (&n2asem); + uae_sem_wait (&n2asem); + write_comm_pipe_int (&native2amiga_pending, 0, 0); + write_comm_pipe_u32 (&native2amiga_pending, task, 0); + write_comm_pipe_int (&native2amiga_pending, mask, 1); + do_uae_int_requested(); + uae_sem_post (&n2asem); } void uae_NotificationHack(uaecptr port, uaecptr nr) { - uae_sem_wait (&n2asem); - write_comm_pipe_int (&native2amiga_pending, 4, 0); - write_comm_pipe_int (&native2amiga_pending, port, 0); - write_comm_pipe_int (&native2amiga_pending, nr, 1); - do_uae_int_requested(); - uae_sem_post (&n2asem); + uae_sem_wait (&n2asem); + write_comm_pipe_int (&native2amiga_pending, 4, 0); + write_comm_pipe_int (&native2amiga_pending, port, 0); + write_comm_pipe_int (&native2amiga_pending, nr, 1); + do_uae_int_requested(); + uae_sem_post (&n2asem); } #endif void uae_NewList(uaecptr list) { - x_put_long (list, list + 4); - x_put_long (list + 4, 0); - x_put_long (list + 8, list); + x_put_long (list, list + 4); + x_put_long (list + 4, 0); + x_put_long (list + 8, list); } uaecptr uae_AllocMem (TrapContext *context, uae_u32 size, uae_u32 flags, uaecptr sysbase) { - m68k_dreg (regs, 0) = size; - m68k_dreg (regs, 1) = flags; - return CallLib (context, sysbase, -198); /* AllocMem */ + m68k_dreg (regs, 0) = size; + m68k_dreg (regs, 1) = flags; + return CallLib (context, sysbase, -198); /* AllocMem */ } void uae_FreeMem (TrapContext *context, uaecptr memory, uae_u32 size, uaecptr sysbase) { - m68k_dreg (regs, 0) = size; - m68k_areg (regs, 1) = memory; - CallLib (context, sysbase, -0xD2); /* FreeMem */ + m68k_dreg (regs, 0) = size; + m68k_areg (regs, 1) = memory; + CallLib (context, sysbase, -0xD2); /* FreeMem */ } diff --git a/src/od-gles/gl.cpp b/src/od-gles/gl.cpp index fe23c629..cb90b84c 100644 --- a/src/od-gles/gl.cpp +++ b/src/od-gles/gl.cpp @@ -16,183 +16,197 @@ void *gl_es_surface; static int gl_have_error(const char *name) { - GLenum e = glGetError(); - if (e != GL_NO_ERROR) { - printf("GL error: %s %x\n", name, e); - return 1; - } - return 0; + GLenum e = glGetError(); + if (e != GL_NO_ERROR) + { + printf("GL error: %s %x\n", name, e); + return 1; + } + return 0; } static int gles_have_error(const char *name) { - EGLint e = eglGetError(); - if (e != EGL_SUCCESS) { - printf("%s %x\n", name, e); - return 1; - } - return 0; + EGLint e = eglGetError(); + if (e != EGL_SUCCESS) + { + printf("%s %x\n", name, e); + return 1; + } + return 0; } int gl_init(void *display, void *window, int *quirks) { - EGLConfig ecfg = NULL; - GLuint texture_name = 0; - void *tmp_texture_mem = NULL; - EGLint num_config; - int retval = -1; - int ret; - EGLint attr[] = - { - EGL_NONE - }; + EGLConfig ecfg = NULL; + GLuint texture_name = 0; + void *tmp_texture_mem = NULL; + EGLint num_config; + int retval = -1; + int ret; + EGLint attr[] = + { + EGL_NONE + }; - ret = gl_platform_init(&display, &window, quirks); - if (ret != 0) { - printf("gl_platform_init failed with %d\n", ret); - goto out; - } + ret = gl_platform_init(&display, &window, quirks); + if (ret != 0) + { + printf("gl_platform_init failed with %d\n", ret); + goto out; + } - tmp_texture_mem = calloc(1, 1024 * 512 * 2); - if (tmp_texture_mem == NULL) { - printf("OOM\n"); - goto out; - } + tmp_texture_mem = calloc(1, 1024 * 512 * 2); + if (tmp_texture_mem == NULL) + { + printf("OOM\n"); + goto out; + } - edpy = eglGetDisplay((EGLNativeDisplayType)display); - if (edpy == EGL_NO_DISPLAY) { - printf("Failed to get EGL display\n"); - goto out; - } + edpy = eglGetDisplay((EGLNativeDisplayType)display); + if (edpy == EGL_NO_DISPLAY) + { + printf("Failed to get EGL display\n"); + goto out; + } - if (!eglInitialize(edpy, NULL, NULL)) { - printf("Failed to initialize EGL\n"); - goto out; - } + if (!eglInitialize(edpy, NULL, NULL)) + { + printf("Failed to initialize EGL\n"); + goto out; + } - if (!eglChooseConfig(edpy, attr, &ecfg, 1, &num_config)) { - printf("Failed to choose config (%x)\n", eglGetError()); - goto out; - } + if (!eglChooseConfig(edpy, attr, &ecfg, 1, &num_config)) + { + printf("Failed to choose config (%x)\n", eglGetError()); + goto out; + } - if (ecfg == NULL || num_config == 0) { - printf("No EGL configs available\n"); - goto out; - } + if (ecfg == NULL || num_config == 0) + { + printf("No EGL configs available\n"); + goto out; + } - esfc = eglCreateWindowSurface(edpy, ecfg, - (EGLNativeWindowType)window, NULL); - if (esfc == EGL_NO_SURFACE) { - printf("Unable to create EGL surface (%x)\n", - eglGetError()); - goto out; - } + esfc = eglCreateWindowSurface(edpy, ecfg, + (EGLNativeWindowType)window, NULL); + if (esfc == EGL_NO_SURFACE) + { + printf("Unable to create EGL surface (%x)\n", + eglGetError()); + goto out; + } - ectxt = eglCreateContext(edpy, ecfg, EGL_NO_CONTEXT, NULL); - if (ectxt == EGL_NO_CONTEXT) { - printf("Unable to create EGL context (%x)\n", - eglGetError()); - goto out; - } + ectxt = eglCreateContext(edpy, ecfg, EGL_NO_CONTEXT, NULL); + if (ectxt == EGL_NO_CONTEXT) + { + printf("Unable to create EGL context (%x)\n", + eglGetError()); + goto out; + } - eglMakeCurrent(edpy, esfc, esfc, ectxt); + eglMakeCurrent(edpy, esfc, esfc, ectxt); - glEnable(GL_TEXTURE_2D); + glEnable(GL_TEXTURE_2D); - glGenTextures(1, &texture_name); + glGenTextures(1, &texture_name); - glBindTexture(GL_TEXTURE_2D, texture_name); + glBindTexture(GL_TEXTURE_2D, texture_name); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 1024, 512, 0, GL_RGB, - GL_UNSIGNED_SHORT_5_6_5, tmp_texture_mem); - if (gl_have_error("glTexImage2D")) - goto out; + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 1024, 512, 0, GL_RGB, + GL_UNSIGNED_SHORT_5_6_5, tmp_texture_mem); + if (gl_have_error("glTexImage2D")) + goto out; - // no mipmaps - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + // no mipmaps + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - //glViewport(0, 0, 512, 512); - glLoadIdentity(); - glFrontFace(GL_CW); - glEnable(GL_CULL_FACE); + //glViewport(0, 0, 512, 512); + glLoadIdentity(); + glFrontFace(GL_CW); + glEnable(GL_CULL_FACE); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + glEnableClientState(GL_VERTEX_ARRAY); - if (gl_have_error("init")) - goto out; + if (gl_have_error("init")) + goto out; - gl_es_display = (void *)edpy; - gl_es_surface = (void *)esfc; - retval = 0; + gl_es_display = (void *)edpy; + gl_es_surface = (void *)esfc; + retval = 0; out: - free(tmp_texture_mem); - return retval; + free(tmp_texture_mem); + return retval; } -static float vertices[] = { - -1.0f, 1.0f, 0.0f, // 0 0 1 - 1.0f, 1.0f, 0.0f, // 1 ^ - -1.0f, -1.0f, 0.0f, // 2 | 2 3 - 1.0f, -1.0f, 0.0f, // 3 +--> +static float vertices[] = +{ + -1.0f, 1.0f, 0.0f, // 0 0 1 + 1.0f, 1.0f, 0.0f, // 1 ^ + -1.0f, -1.0f, 0.0f, // 2 | 2 3 + 1.0f, -1.0f, 0.0f, // 3 +--> }; -static float texture[] = { - 0.0f, 0.0f, // we flip this: - 1.0f, 0.0f, // v^ - 0.0f, 1.0f, // | u - 1.0f, 1.0f, // +--> +static float texture[] = +{ + 0.0f, 0.0f, // we flip this: + 1.0f, 0.0f, // v^ + 0.0f, 1.0f, // | u + 1.0f, 1.0f, // +--> }; int gl_flip(const void *fb, int w, int h) { - static int old_w, old_h; + static int old_w, old_h; - if (fb != NULL) { - if (w != old_w || h != old_h) { - float f_w = (float)w / 1024.0f; - float f_h = (float)h / 512.0f; - texture[1*2 + 0] = f_w; - texture[2*2 + 1] = f_h; - texture[3*2 + 0] = f_w; - texture[3*2 + 1] = f_h; - old_w = w; - old_h = h; - } + if (fb != NULL) + { + if (w != old_w || h != old_h) + { + float f_w = (float)w / 1024.0f; + float f_h = (float)h / 512.0f; + texture[1*2 + 0] = f_w; + texture[2*2 + 1] = f_h; + texture[3*2 + 0] = f_w; + texture[3*2 + 1] = f_h; + old_w = w; + old_h = h; + } - glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, w, h, - GL_RGB, GL_UNSIGNED_SHORT_5_6_5, fb); - if (gl_have_error("glTexSubImage2D")) - return -1; - } + glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, w, h, + GL_RGB, GL_UNSIGNED_SHORT_5_6_5, fb); + if (gl_have_error("glTexSubImage2D")) + return -1; + } - glVertexPointer(3, GL_FLOAT, 0, vertices); - glTexCoordPointer(2, GL_FLOAT, 0, texture); - glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + glVertexPointer(3, GL_FLOAT, 0, vertices); + glTexCoordPointer(2, GL_FLOAT, 0, texture); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); - if (gl_have_error("glDrawArrays")) - return -1; + if (gl_have_error("glDrawArrays")) + return -1; - eglSwapBuffers(edpy, esfc); - if (gles_have_error("eglSwapBuffers")) - return -1; + eglSwapBuffers(edpy, esfc); + if (gles_have_error("eglSwapBuffers")) + return -1; - return 0; + return 0; } void gl_finish(void) { - eglMakeCurrent(edpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); - eglDestroyContext(edpy, ectxt); - ectxt = EGL_NO_CONTEXT; - eglDestroySurface(edpy, esfc); - esfc = EGL_NO_SURFACE; - eglTerminate(edpy); - edpy = EGL_NO_DISPLAY; + eglMakeCurrent(edpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + eglDestroyContext(edpy, ectxt); + ectxt = EGL_NO_CONTEXT; + eglDestroySurface(edpy, esfc); + esfc = EGL_NO_SURFACE; + eglTerminate(edpy); + edpy = EGL_NO_DISPLAY; - gl_es_display = (void *)edpy; - gl_es_surface = (void *)esfc; + gl_es_display = (void *)edpy; + gl_es_surface = (void *)esfc; - gl_platform_finish(); + gl_platform_finish(); } diff --git a/src/od-gles/gl.h b/src/od-gles/gl.h index cb480710..54a1798d 100644 --- a/src/od-gles/gl.h +++ b/src/od-gles/gl.h @@ -15,11 +15,11 @@ extern void *gl_es_surface; static __inline int gl_init(void *display, void *window, int *quirks) { - return -1; + return -1; } static __inline int gl_flip(const void *fb, int w, int h) { - return -1; + return -1; } static __inline void gl_finish(void) { diff --git a/src/od-gles/gl_platform.cpp b/src/od-gles/gl_platform.cpp index ac24594a..e4726fb4 100644 --- a/src/od-gles/gl_platform.cpp +++ b/src/od-gles/gl_platform.cpp @@ -30,123 +30,125 @@ static FPTR(XTranslateCoordinates); static void get_window_rect(VC_RECT_T *rect) { - XWindowAttributes xattrs_root; - uint32_t disp_w = 0, disp_h = 0; - int dx = 0, dy = 0; - unsigned int dw = 0, dh = 0, dummy; - Window root, dummyw; + XWindowAttributes xattrs_root; + uint32_t disp_w = 0, disp_h = 0; + int dx = 0, dy = 0; + unsigned int dw = 0, dh = 0, dummy; + Window root, dummyw; - graphics_get_display_size(0, &disp_w, &disp_h); - if (disp_w == 0 || disp_h == 0) - fprintf(stderr, "ERROR: graphics_get_display_size is broken\n"); + graphics_get_display_size(0, &disp_w, &disp_h); + if (disp_w == 0 || disp_h == 0) + fprintf(stderr, "ERROR: graphics_get_display_size is broken\n"); - // default to fullscreen - // Chips: rpi cut border when full screen... - #if 1 - rect->x = (disp_w*2)/100; - rect->y = 0; - rect->width = disp_w - (disp_w*2)/100; - rect->height = disp_h - (disp_h*2)/100; - #else - rect->x = rect->y = 0; - rect->width = disp_w; - rect->height = disp_h; - #endif + // default to fullscreen + // Chips: rpi cut border when full screen... +#if 1 + rect->x = (disp_w*2)/100; + rect->y = 0; + rect->width = disp_w - (disp_w*2)/100; + rect->height = disp_h - (disp_h*2)/100; +#else + rect->x = rect->y = 0; + rect->width = disp_w; + rect->height = disp_h; +#endif - if (x11display == NULL || x11window == 0) - return; // use fullscreen + if (x11display == NULL || x11window == 0) + return; // use fullscreen - pXGetGeometry(x11display, x11window, &root, &dx, &dy, &dw, &dh, - &dummy, &dummy); - pXGetWindowAttributes(x11display, root, &xattrs_root); + pXGetGeometry(x11display, x11window, &root, &dx, &dy, &dw, &dh, + &dummy, &dummy); + pXGetWindowAttributes(x11display, root, &xattrs_root); - if (dw == xattrs_root.width && dh == xattrs_root.height) - return; // use fullscreen + if (dw == xattrs_root.width && dh == xattrs_root.height) + return; // use fullscreen - pXTranslateCoordinates(x11display, x11window, root, - dx, dy, &dx, &dy, &dummyw); + pXTranslateCoordinates(x11display, x11window, root, + dx, dy, &dx, &dy, &dummyw); - // how to deal with that weird centering thing? - // this is not quite right.. - dx += (disp_w - xattrs_root.width) / 2; - dy += (disp_h - xattrs_root.height) / 2; + // how to deal with that weird centering thing? + // this is not quite right.. + dx += (disp_w - xattrs_root.width) / 2; + dy += (disp_h - xattrs_root.height) / 2; - rect->x = dx; - rect->y = dy; - rect->width = dw; - rect->height = dh; + rect->x = dx; + rect->y = dy; + rect->width = dw; + rect->height = dh; } static void submit_rect(void) { - DISPMANX_UPDATE_HANDLE_T m_dispmanUpdate; - DISPMANX_ELEMENT_HANDLE_T m_dispmanElement; - VC_RECT_T srcRect = { 0, }; // unused, but we segfault without passing it?? - VC_RECT_T dstRect; + DISPMANX_UPDATE_HANDLE_T m_dispmanUpdate; + DISPMANX_ELEMENT_HANDLE_T m_dispmanElement; + VC_RECT_T srcRect = { 0, }; // unused, but we segfault without passing it?? + VC_RECT_T dstRect; - get_window_rect(&dstRect); + get_window_rect(&dstRect); - m_dispmanDisplay = vc_dispmanx_display_open(0); - m_dispmanUpdate = vc_dispmanx_update_start(0); + m_dispmanDisplay = vc_dispmanx_display_open(0); + m_dispmanUpdate = vc_dispmanx_update_start(0); - m_dispmanElement = vc_dispmanx_element_add(m_dispmanUpdate, - m_dispmanDisplay, 0, &dstRect, 0, &srcRect, - DISPMANX_PROTECTION_NONE, 0, 0, DISPMANX_NO_ROTATE); + m_dispmanElement = vc_dispmanx_element_add(m_dispmanUpdate, + m_dispmanDisplay, 0, &dstRect, 0, &srcRect, + DISPMANX_PROTECTION_NONE, 0, 0, DISPMANX_NO_ROTATE); - m_nativeWindow.element = m_dispmanElement; - m_nativeWindow.width = dstRect.width; - m_nativeWindow.height = dstRect.height; + m_nativeWindow.element = m_dispmanElement; + m_nativeWindow.width = dstRect.width; + m_nativeWindow.height = dstRect.height; - vc_dispmanx_update_submit_sync(m_dispmanUpdate); + vc_dispmanx_update_submit_sync(m_dispmanUpdate); } int gl_platform_init(void **display, void **window, int *quirks) { - x11display = NULL; - x11window = 0; + x11display = NULL; + x11window = 0; - x11lib = dlopen("libX11.so.6", RTLD_LAZY); - if (x11lib != NULL) { - pXGetGeometry = dlsym(x11lib, "XGetGeometry"); - pXGetWindowAttributes = dlsym(x11lib, "XGetWindowAttributes"); - pXTranslateCoordinates = dlsym(x11lib, "XTranslateCoordinates"); - if (pXGetGeometry != NULL && pXGetWindowAttributes != NULL - && pXTranslateCoordinates != NULL) - { - x11display = *display; - x11window = (Window)*window; - } - } + x11lib = dlopen("libX11.so.6", RTLD_LAZY); + if (x11lib != NULL) + { + pXGetGeometry = dlsym(x11lib, "XGetGeometry"); + pXGetWindowAttributes = dlsym(x11lib, "XGetWindowAttributes"); + pXTranslateCoordinates = dlsym(x11lib, "XTranslateCoordinates"); + if (pXGetGeometry != NULL && pXGetWindowAttributes != NULL + && pXTranslateCoordinates != NULL) + { + x11display = *display; + x11window = (Window)*window; + } + } - bcm_host_init(); - submit_rect(); + bcm_host_init(); + submit_rect(); - *display = EGL_DEFAULT_DISPLAY; - *window = &m_nativeWindow; - *quirks |= GL_QUIRK_ACTIVATE_RECREATE; + *display = EGL_DEFAULT_DISPLAY; + *window = &m_nativeWindow; + *quirks |= GL_QUIRK_ACTIVATE_RECREATE; - return 0; + return 0; } void gl_platform_finish(void) { - vc_dispmanx_display_close(m_dispmanDisplay); - bcm_host_deinit(); + vc_dispmanx_display_close(m_dispmanDisplay); + bcm_host_deinit(); - if (x11lib) { - dlclose(x11lib); - x11lib = NULL; - } + if (x11lib) + { + dlclose(x11lib); + x11lib = NULL; + } - x11display = NULL; - x11window = 0; + x11display = NULL; + x11window = 0; } #else int gl_platform_init(void **display, void **window, int *quirks) { - return 0; + return 0; } void gl_platform_finish(void) diff --git a/src/od-gles/gles_gfx.cpp b/src/od-gles/gles_gfx.cpp index f1457f06..d41841ea 100644 --- a/src/od-gles/gles_gfx.cpp +++ b/src/od-gles/gles_gfx.cpp @@ -4,7 +4,7 @@ #include "uae.h" #include "options.h" #include "gui.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "inputdevice.h" #include "custom.h" @@ -47,8 +47,9 @@ static char vid_drv_name[32]; static void *display, *window; static int gl_quirks; -static char screenshot_filename_default[255]={ - '/', 't', 'm', 'p', '/', 'n', 'u', 'l', 'l', '.', 'p', 'n', 'g', '\0' +static char screenshot_filename_default[255]= +{ + '/', 't', 'm', 'p', '/', 'n', 'u', 'l', 'l', '.', 'p', 'n', 'g', '\0' }; char *screenshot_filename=(char *)&screenshot_filename_default[0]; FILE *screenshot_file=NULL; @@ -71,30 +72,30 @@ unsigned char current_resource_amigafb = 0; int graphics_setup (void) { #ifdef PICASSO96 - picasso_InitResolutions(); - InitPicasso96(); + picasso_InitResolutions(); + InitPicasso96(); #endif - return 1; + return 1; } void InitAmigaVidMode(struct uae_prefs *p) { - /* Initialize structure for Amiga video modes */ - gfxvidinfo.pixbytes = 2; - gfxvidinfo.bufmem = (uae_u8 *)prSDLScreen->pixels; - gfxvidinfo.outwidth = p->gfx_size.width; - gfxvidinfo.outheight = p->gfx_size.height; + /* Initialize structure for Amiga video modes */ + gfxvidinfo.pixbytes = 2; + gfxvidinfo.bufmem = (uae_u8 *)prSDLScreen->pixels; + gfxvidinfo.outwidth = p->gfx_size.width; + gfxvidinfo.outheight = p->gfx_size.height; #ifdef PICASSO96 - if(screen_is_picasso) - { - gfxvidinfo.outwidth = picasso_vidinfo.width; - //gfxvidinfo.outheight = picasso_vidinfo.height; - } + if(screen_is_picasso) + { + gfxvidinfo.outwidth = picasso_vidinfo.width; + //gfxvidinfo.outheight = picasso_vidinfo.height; + } #endif - gfxvidinfo.rowbytes = prSDLScreen->pitch; - //gfxvidinfo.rowbytes = blit_rect.width * 2; + gfxvidinfo.rowbytes = prSDLScreen->pitch; + //gfxvidinfo.rowbytes = blit_rect.width * 2; } void graphics_dispmanshutdown (void) @@ -105,10 +106,10 @@ void graphics_dispmanshutdown (void) void graphics_subshutdown (void) { - gl_finish(); - // Dunno if below lines are usefull for Rpi... - //SDL_FreeSurface(prSDLScreen); - //prSDLScreen = NULL; + gl_finish(); + // Dunno if below lines are usefull for Rpi... + //SDL_FreeSurface(prSDLScreen); + //prSDLScreen = NULL; } @@ -117,119 +118,123 @@ void graphics_subshutdown (void) static void open_screen(struct uae_prefs *p) { - int width; - int height; - SDL_SysWMinfo wminfo; - int ret; - int gl_works = 0; + int width; + int height; + SDL_SysWMinfo wminfo; + int ret; + int gl_works = 0; #ifdef PICASSO96 - if (screen_is_picasso) - { - width = picasso_vidinfo.width; - height = picasso_vidinfo.height; - } else -#endif - { - p->gfx_resolution = p->gfx_size.width > 600 ? 1 : 0; - width = p->gfx_size.width; - height = p->gfx_size.height; - } - - - - if(Dummy_prSDLScreen == NULL ) - { - const SDL_VideoInfo* videoInfo = SDL_GetVideoInfo (); - printf("DispmanX: Current resolution: %d x %d %d bpp\n",videoInfo->current_w, videoInfo->current_h, videoInfo->vfmt->BitsPerPixel); - //Dummy_prSDLScreen = SDL_SetVideoMode(videoInfo->current_w,videoInfo->current_h,16,SDL_SWSURFACE |SDL_FULLSCREEN); - Dummy_prSDLScreen = SDL_SetVideoMode(800,480,16,SDL_SWSURFACE ); - } - - SDL_ShowCursor(SDL_DISABLE); - - printf("Emulation resolution: Width %i Height: %i\n",width,height); - prSDLScreen = SDL_CreateRGBSurface(SDL_SWSURFACE,width,height,16, - Dummy_prSDLScreen->format->Rmask, - Dummy_prSDLScreen->format->Gmask, - Dummy_prSDLScreen->format->Bmask, - Dummy_prSDLScreen->format->Amask); - - - // get x11 display/window for GL - SDL_VideoDriverName(vid_drv_name, sizeof(vid_drv_name)); -#ifdef SDL_VIDEO_DRIVER_X11 - if (strcmp(vid_drv_name, "x11") == 0) { - SDL_VERSION(&wminfo.version); - ret = SDL_GetWMInfo(&wminfo); - if (ret > 0) { - display = wminfo.info.x11.display; - window = (void *)wminfo.info.x11.window; + if (screen_is_picasso) + { + width = picasso_vidinfo.width; + height = picasso_vidinfo.height; } - } -#else - (void)wminfo; + else #endif - ret = gl_init(display, window, &gl_quirks); - if (ret == 0) { - gl_works = 1; - } + { + p->gfx_resolution = p->gfx_size.width > 600 ? 1 : 0; + width = p->gfx_size.width; + height = p->gfx_size.height; + } - if(prSDLScreen != NULL) - { - InitAmigaVidMode(p); - init_row_map(); - } - //framecnt = 1; // Don't draw frame before reset done + + if(Dummy_prSDLScreen == NULL ) + { + const SDL_VideoInfo* videoInfo = SDL_GetVideoInfo (); + printf("DispmanX: Current resolution: %d x %d %d bpp\n",videoInfo->current_w, videoInfo->current_h, videoInfo->vfmt->BitsPerPixel); + //Dummy_prSDLScreen = SDL_SetVideoMode(videoInfo->current_w,videoInfo->current_h,16,SDL_SWSURFACE |SDL_FULLSCREEN); + Dummy_prSDLScreen = SDL_SetVideoMode(800,480,16,SDL_SWSURFACE ); + } + + SDL_ShowCursor(SDL_DISABLE); + + printf("Emulation resolution: Width %i Height: %i\n",width,height); + prSDLScreen = SDL_CreateRGBSurface(SDL_SWSURFACE,width,height,16, + Dummy_prSDLScreen->format->Rmask, + Dummy_prSDLScreen->format->Gmask, + Dummy_prSDLScreen->format->Bmask, + Dummy_prSDLScreen->format->Amask); + + + // get x11 display/window for GL + SDL_VideoDriverName(vid_drv_name, sizeof(vid_drv_name)); +#ifdef SDL_VIDEO_DRIVER_X11 + if (strcmp(vid_drv_name, "x11") == 0) + { + SDL_VERSION(&wminfo.version); + ret = SDL_GetWMInfo(&wminfo); + if (ret > 0) + { + display = wminfo.info.x11.display; + window = (void *)wminfo.info.x11.window; + } + } +#else + (void)wminfo; +#endif + ret = gl_init(display, window, &gl_quirks); + if (ret == 0) + { + gl_works = 1; + } + + + if(prSDLScreen != NULL) + { + InitAmigaVidMode(p); + init_row_map(); + } + //framecnt = 1; // Don't draw frame before reset done } void update_display(struct uae_prefs *p) { - open_screen(p); - - SDL_ShowCursor(SDL_DISABLE); + open_screen(p); - framecnt = 1; // Don't draw frame before reset done + SDL_ShowCursor(SDL_DISABLE); + + framecnt = 1; // Don't draw frame before reset done } int check_prefs_changed_gfx (void) { - int changed = 0; - - if(currprefs.gfx_size.height != changed_prefs.gfx_size.height || - currprefs.gfx_size.width != changed_prefs.gfx_size.width || - currprefs.gfx_size_fs.width != changed_prefs.gfx_size_fs.width || - currprefs.gfx_resolution != changed_prefs.gfx_resolution) - { - cfgfile_configuration_change(1); - currprefs.gfx_size.height = changed_prefs.gfx_size.height; - currprefs.gfx_size.width = changed_prefs.gfx_size.width; - currprefs.gfx_size_fs.width = changed_prefs.gfx_size_fs.width; - currprefs.gfx_resolution = changed_prefs.gfx_resolution; - update_display(&currprefs); - changed = 1; - } - if (currprefs.leds_on_screen != changed_prefs.leds_on_screen || - currprefs.pandora_hide_idle_led != changed_prefs.pandora_hide_idle_led || - currprefs.pandora_vertical_offset != changed_prefs.pandora_vertical_offset) - { - currprefs.leds_on_screen = changed_prefs.leds_on_screen; - currprefs.pandora_hide_idle_led = changed_prefs.pandora_hide_idle_led; - currprefs.pandora_vertical_offset = changed_prefs.pandora_vertical_offset; - changed = 1; - } - if (currprefs.chipset_refreshrate != changed_prefs.chipset_refreshrate) - { - currprefs.chipset_refreshrate = changed_prefs.chipset_refreshrate; - init_hz_full (); - changed = 1; - } - - return changed; + int changed = 0; + + if(currprefs.gfx_size.height != changed_prefs.gfx_size.height || + currprefs.gfx_size.width != changed_prefs.gfx_size.width || + currprefs.gfx_size_fs.width != changed_prefs.gfx_size_fs.width || + currprefs.gfx_resolution != changed_prefs.gfx_resolution) + { + cfgfile_configuration_change(1); + currprefs.gfx_size.height = changed_prefs.gfx_size.height; + currprefs.gfx_size.width = changed_prefs.gfx_size.width; + currprefs.gfx_size_fs.width = changed_prefs.gfx_size_fs.width; + currprefs.gfx_resolution = changed_prefs.gfx_resolution; + update_display(&currprefs); + changed = 1; + } + if (currprefs.leds_on_screen != changed_prefs.leds_on_screen || + currprefs.pandora_hide_idle_led != changed_prefs.pandora_hide_idle_led || + currprefs.pandora_vertical_offset != changed_prefs.pandora_vertical_offset) + { + currprefs.leds_on_screen = changed_prefs.leds_on_screen; + currprefs.pandora_hide_idle_led = changed_prefs.pandora_hide_idle_led; + currprefs.pandora_vertical_offset = changed_prefs.pandora_vertical_offset; + changed = 1; + } + if (currprefs.chipset_refreshrate != changed_prefs.chipset_refreshrate) + { + currprefs.chipset_refreshrate = changed_prefs.chipset_refreshrate; + init_hz_full (); + changed = 1; + } + + return changed; } @@ -247,7 +252,7 @@ void unlockscr (void) void wait_for_vsync(void) { - // Temporary + // Temporary } void flush_screen () @@ -257,107 +262,107 @@ void flush_screen () if (savestate_state == STATE_DOSAVE) { - if(delay_savestate_frame > 0) - --delay_savestate_frame; - else - { - CreateScreenshot(); - save_thumb(screenshot_filename); - savestate_state = 0; + if(delay_savestate_frame > 0) + --delay_savestate_frame; + else + { + CreateScreenshot(); + save_thumb(screenshot_filename); + savestate_state = 0; + } } - } - unsigned long start = read_processor_time(); - //if(start < next_synctime && next_synctime - start > time_per_frame - 1000) - // usleep((next_synctime - start) - 1000); + unsigned long start = read_processor_time(); + //if(start < next_synctime && next_synctime - start > time_per_frame - 1000) + // usleep((next_synctime - start) - 1000); - gl_flip(gfxvidinfo.bufmem, currprefs.gfx_size.width, currprefs.gfx_size.height); + gl_flip(gfxvidinfo.bufmem, currprefs.gfx_size.width, currprefs.gfx_size.height); - last_synctime = read_processor_time(); - - if(last_synctime - next_synctime > time_per_frame - 1000 || next_synctime < start) - adjust_idletime(0); - else - adjust_idletime(next_synctime - start); - - if(last_synctime - next_synctime > time_per_frame - 5000) - next_synctime = last_synctime + time_per_frame * (1 + currprefs.gfx_framerate); - else - next_synctime = next_synctime + time_per_frame * (1 + currprefs.gfx_framerate); + last_synctime = read_processor_time(); - init_row_map(); + if(last_synctime - next_synctime > time_per_frame - 1000 || next_synctime < start) + adjust_idletime(0); + else + adjust_idletime(next_synctime - start); + + if(last_synctime - next_synctime > time_per_frame - 5000) + next_synctime = last_synctime + time_per_frame * (1 + currprefs.gfx_framerate); + else + next_synctime = next_synctime + time_per_frame * (1 + currprefs.gfx_framerate); + + init_row_map(); } void black_screen_now(void) { - SDL_FillRect(Dummy_prSDLScreen,NULL,0); - SDL_Flip(Dummy_prSDLScreen); + SDL_FillRect(Dummy_prSDLScreen,NULL,0); + SDL_Flip(Dummy_prSDLScreen); } static void graphics_subinit (void) { - if (prSDLScreen == NULL) - { - fprintf(stderr, "Unable to set video mode: %s\n", SDL_GetError()); - return; - } - else - { - SDL_ShowCursor(SDL_DISABLE); + if (prSDLScreen == NULL) + { + fprintf(stderr, "Unable to set video mode: %s\n", SDL_GetError()); + return; + } + else + { + SDL_ShowCursor(SDL_DISABLE); - InitAmigaVidMode(&currprefs); - } + InitAmigaVidMode(&currprefs); + } } STATIC_INLINE int bitsInMask (unsigned long mask) { - /* count bits in mask */ - int n = 0; - while (mask) - { - n += mask & 1; - mask >>= 1; - } - return n; + /* count bits in mask */ + int n = 0; + while (mask) + { + n += mask & 1; + mask >>= 1; + } + return n; } STATIC_INLINE int maskShift (unsigned long mask) { - /* determine how far mask is shifted */ - int n = 0; - while (!(mask & 1)) - { - n++; - mask >>= 1; - } - return n; + /* determine how far mask is shifted */ + int n = 0; + while (!(mask & 1)) + { + n++; + mask >>= 1; + } + return n; } static int init_colors (void) { - int i; - int red_bits, green_bits, blue_bits; - int red_shift, green_shift, blue_shift; + int i; + int red_bits, green_bits, blue_bits; + int red_shift, green_shift, blue_shift; - /* Truecolor: */ - red_bits = bitsInMask(prSDLScreen->format->Rmask); - green_bits = bitsInMask(prSDLScreen->format->Gmask); - blue_bits = bitsInMask(prSDLScreen->format->Bmask); - red_shift = maskShift(prSDLScreen->format->Rmask); - green_shift = maskShift(prSDLScreen->format->Gmask); - blue_shift = maskShift(prSDLScreen->format->Bmask); - alloc_colors64k (red_bits, green_bits, blue_bits, red_shift, green_shift, blue_shift, 0); - notice_new_xcolors(); - for (i = 0; i < 4096; i++) - xcolors[i] = xcolors[i] * 0x00010001; + /* Truecolor: */ + red_bits = bitsInMask(prSDLScreen->format->Rmask); + green_bits = bitsInMask(prSDLScreen->format->Gmask); + blue_bits = bitsInMask(prSDLScreen->format->Bmask); + red_shift = maskShift(prSDLScreen->format->Rmask); + green_shift = maskShift(prSDLScreen->format->Gmask); + blue_shift = maskShift(prSDLScreen->format->Bmask); + alloc_colors64k (red_bits, green_bits, blue_bits, red_shift, green_shift, blue_shift, 0); + notice_new_xcolors(); + for (i = 0; i < 4096; i++) + xcolors[i] = xcolors[i] * 0x00010001; - return 1; + return 1; } @@ -366,58 +371,59 @@ static int init_colors (void) */ static int get_display_depth (void) { - const SDL_VideoInfo *vid_info; - int depth = 0; + const SDL_VideoInfo *vid_info; + int depth = 0; - if ((vid_info = SDL_GetVideoInfo())) { - depth = vid_info->vfmt->BitsPerPixel; + if ((vid_info = SDL_GetVideoInfo())) + { + depth = vid_info->vfmt->BitsPerPixel; - /* Don't trust the answer if it's 16 bits; the display - * could actually be 15 bits deep. We'll count the bits - * ourselves */ - if (depth == 16) - depth = bitsInMask (vid_info->vfmt->Rmask) + bitsInMask (vid_info->vfmt->Gmask) + bitsInMask (vid_info->vfmt->Bmask); - } - return depth; + /* Don't trust the answer if it's 16 bits; the display + * could actually be 15 bits deep. We'll count the bits + * ourselves */ + if (depth == 16) + depth = bitsInMask (vid_info->vfmt->Rmask) + bitsInMask (vid_info->vfmt->Gmask) + bitsInMask (vid_info->vfmt->Bmask); + } + return depth; } int GetSurfacePixelFormat(void) { - int depth = get_display_depth(); - int unit = (depth + 1) & 0xF8; + int depth = get_display_depth(); + int unit = (depth + 1) & 0xF8; - return (unit == 8 ? RGBFB_CHUNKY - : depth == 15 && unit == 16 ? RGBFB_R5G5B5 - : depth == 16 && unit == 16 ? RGBFB_R5G6B5 - : unit == 24 ? RGBFB_B8G8R8 - : unit == 32 ? RGBFB_R8G8B8A8 - : RGBFB_NONE); + return (unit == 8 ? RGBFB_CHUNKY + : depth == 15 && unit == 16 ? RGBFB_R5G5B5 + : depth == 16 && unit == 16 ? RGBFB_R5G6B5 + : unit == 24 ? RGBFB_B8G8R8 + : unit == 32 ? RGBFB_R8G8B8A8 + : RGBFB_NONE); } int graphics_init (bool mousecapture) { - int i,j; + int i,j; - //uae_sem_init (&vsync_wait_sem, 0, 1); + //uae_sem_init (&vsync_wait_sem, 0, 1); - graphics_subinit (); + graphics_subinit (); - if (!init_colors ()) - return 0; + if (!init_colors ()) + return 0; - //buttonstate[0] = buttonstate[1] = buttonstate[2] = 0; - //keyboard_init(); - - return 1; + //buttonstate[0] = buttonstate[1] = buttonstate[2] = 0; + //keyboard_init(); + + return 1; } void graphics_leave (void) { - graphics_subshutdown (); - SDL_FreeSurface(Dummy_prSDLScreen); - SDL_VideoQuit(); + graphics_subshutdown (); + SDL_FreeSurface(Dummy_prSDLScreen); + SDL_VideoQuit(); } @@ -430,166 +436,194 @@ void graphics_leave (void) static int save_png(SDL_Surface* surface, char *path) { - int w = surface->w; - int h = surface->h; - unsigned char * pix = (unsigned char *)surface->pixels; - unsigned char writeBuffer[1024 * 3]; - FILE *f = fopen(path,"wb"); - if(!f) return 0; - png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, - NULL, - NULL, - NULL); - if(!png_ptr) { + int w = surface->w; + int h = surface->h; + unsigned char * pix = (unsigned char *)surface->pixels; + unsigned char writeBuffer[1024 * 3]; + FILE *f = fopen(path,"wb"); + if(!f) return 0; + png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, + NULL, + NULL, + NULL); + if(!png_ptr) + { + fclose(f); + return 0; + } + + png_infop info_ptr = png_create_info_struct(png_ptr); + + if(!info_ptr) + { + png_destroy_write_struct(&png_ptr,NULL); + fclose(f); + return 0; + } + + png_init_io(png_ptr,f); + + png_set_IHDR(png_ptr, + info_ptr, + w, + h, + 8, + PNG_COLOR_TYPE_RGB, + PNG_INTERLACE_NONE, + PNG_COMPRESSION_TYPE_DEFAULT, + PNG_FILTER_TYPE_DEFAULT); + + png_write_info(png_ptr,info_ptr); + + unsigned char *b = writeBuffer; + + int sizeX = w; + int sizeY = h; + int y; + int x; + + unsigned short *p = (unsigned short *)pix; + for(y = 0; y < sizeY; y++) + { + for(x = 0; x < sizeX; x++) + { + unsigned short v = p[x]; + + *b++ = ((v & systemRedMask ) >> systemRedShift ) << 3; // R + *b++ = ((v & systemGreenMask) >> systemGreenShift) << 2; // G + *b++ = ((v & systemBlueMask ) >> systemBlueShift ) << 3; // B + } + p += surface->pitch / 2; + png_write_row(png_ptr,writeBuffer); + b = writeBuffer; + } + + png_write_end(png_ptr, info_ptr); + + png_destroy_write_struct(&png_ptr, &info_ptr); + fclose(f); - return 0; - } - - png_infop info_ptr = png_create_info_struct(png_ptr); - - if(!info_ptr) { - png_destroy_write_struct(&png_ptr,NULL); - fclose(f); - return 0; - } - - png_init_io(png_ptr,f); - - png_set_IHDR(png_ptr, - info_ptr, - w, - h, - 8, - PNG_COLOR_TYPE_RGB, - PNG_INTERLACE_NONE, - PNG_COMPRESSION_TYPE_DEFAULT, - PNG_FILTER_TYPE_DEFAULT); - - png_write_info(png_ptr,info_ptr); - - unsigned char *b = writeBuffer; - - int sizeX = w; - int sizeY = h; - int y; - int x; - - unsigned short *p = (unsigned short *)pix; - for(y = 0; y < sizeY; y++) - { - for(x = 0; x < sizeX; x++) - { - unsigned short v = p[x]; - - *b++ = ((v & systemRedMask ) >> systemRedShift ) << 3; // R - *b++ = ((v & systemGreenMask) >> systemGreenShift) << 2; // G - *b++ = ((v & systemBlueMask ) >> systemBlueShift ) << 3; // B - } - p += surface->pitch / 2; - png_write_row(png_ptr,writeBuffer); - b = writeBuffer; - } - - png_write_end(png_ptr, info_ptr); - - png_destroy_write_struct(&png_ptr, &info_ptr); - - fclose(f); - return 1; + return 1; } static void CreateScreenshot(void) { - int w, h; + int w, h; - if(current_screenshot != NULL) - { - SDL_FreeSurface(current_screenshot); - current_screenshot = NULL; - } + if(current_screenshot != NULL) + { + SDL_FreeSurface(current_screenshot); + current_screenshot = NULL; + } - w=prSDLScreen->w; - h=prSDLScreen->h; + w=prSDLScreen->w; + h=prSDLScreen->h; - current_screenshot = SDL_CreateRGBSurface(prSDLScreen->flags,w,h,prSDLScreen->format->BitsPerPixel,prSDLScreen->format->Rmask,prSDLScreen->format->Gmask,prSDLScreen->format->Bmask,prSDLScreen->format->Amask); - SDL_BlitSurface(prSDLScreen, NULL, current_screenshot, NULL); + current_screenshot = SDL_CreateRGBSurface(prSDLScreen->flags,w,h,prSDLScreen->format->BitsPerPixel,prSDLScreen->format->Rmask,prSDLScreen->format->Gmask,prSDLScreen->format->Bmask,prSDLScreen->format->Amask); + SDL_BlitSurface(prSDLScreen, NULL, current_screenshot, NULL); } static int save_thumb(char *path) { - int ret = 0; - if(current_screenshot != NULL) - { - ret = save_png(current_screenshot, path); - SDL_FreeSurface(current_screenshot); - current_screenshot = NULL; - } - return ret; + int ret = 0; + if(current_screenshot != NULL) + { + ret = save_png(current_screenshot, path); + SDL_FreeSurface(current_screenshot); + current_screenshot = NULL; + } + return ret; } bool vsync_switchmode (int hz) { - int changed_height = changed_prefs.gfx_size.height; - - if (hz >= 55) - hz = 60; - else - hz = 50; + int changed_height = changed_prefs.gfx_size.height; - if(hz == 50 && currVSyncRate == 60) - { - // Switch from NTSC -> PAL - switch(changed_height) { - case 200: changed_height = 240; break; - case 216: changed_height = 262; break; - case 240: changed_height = 270; break; - case 256: changed_height = 270; break; - case 262: changed_height = 270; break; - case 270: changed_height = 270; break; - } - } - else if(hz == 60 && currVSyncRate == 50) - { - // Switch from PAL -> NTSC - switch(changed_height) { - case 200: changed_height = 200; break; - case 216: changed_height = 200; break; - case 240: changed_height = 200; break; - case 256: changed_height = 216; break; - case 262: changed_height = 216; break; - case 270: changed_height = 240; break; - } - } + if (hz >= 55) + hz = 60; + else + hz = 50; + + if(hz == 50 && currVSyncRate == 60) + { + // Switch from NTSC -> PAL + switch(changed_height) + { + case 200: + changed_height = 240; + break; + case 216: + changed_height = 262; + break; + case 240: + changed_height = 270; + break; + case 256: + changed_height = 270; + break; + case 262: + changed_height = 270; + break; + case 270: + changed_height = 270; + break; + } + } + else if(hz == 60 && currVSyncRate == 50) + { + // Switch from PAL -> NTSC + switch(changed_height) + { + case 200: + changed_height = 200; + break; + case 216: + changed_height = 200; + break; + case 240: + changed_height = 200; + break; + case 256: + changed_height = 216; + break; + case 262: + changed_height = 216; + break; + case 270: + changed_height = 240; + break; + } + } + + if(changed_height == currprefs.gfx_size.height && hz == currprefs.chipset_refreshrate) + return true; + + changed_prefs.gfx_size.height = changed_height; - if(changed_height == currprefs.gfx_size.height && hz == currprefs.chipset_refreshrate) return true; - - changed_prefs.gfx_size.height = changed_height; - - return true; } bool target_graphics_buffer_update (void) { - bool rate_changed = 0; - //bool rate_changed = SetVSyncRate(currprefs.chipset_refreshrate); - - if(currprefs.gfx_size.height != changed_prefs.gfx_size.height) - { - update_display(&changed_prefs); - rate_changed = true; - } + bool rate_changed = 0; + //bool rate_changed = SetVSyncRate(currprefs.chipset_refreshrate); - if(rate_changed) - { - black_screen_now(); - fpscounter_reset(); - time_per_frame = 1000 * 1000 / (currprefs.chipset_refreshrate); - } + if(currprefs.gfx_size.height != changed_prefs.gfx_size.height) + { + update_display(&changed_prefs); + rate_changed = true; + } - return true; + if(rate_changed) + { + black_screen_now(); + fpscounter_reset(); + time_per_frame = 1000 * 1000 / (currprefs.chipset_refreshrate); + } + + return true; } @@ -602,13 +636,13 @@ static int resolution_compare (const void *a, const void *b) struct PicassoResolution *ma = (struct PicassoResolution *)a; struct PicassoResolution *mb = (struct PicassoResolution *)b; if (ma->res.width < mb->res.width) - return -1; + return -1; if (ma->res.width > mb->res.width) - return 1; + return 1; if (ma->res.height < mb->res.height) - return -1; + return -1; if (ma->res.height > mb->res.height) - return 1; + return 1; return ma->depth - mb->depth; } static void sortmodes (void) @@ -616,15 +650,17 @@ static void sortmodes (void) int i = 0, idx = -1; int pw = -1, ph = -1; while (DisplayModes[i].depth >= 0) - i++; + i++; qsort (DisplayModes, i, sizeof (struct PicassoResolution), resolution_compare); - for (i = 0; DisplayModes[i].depth >= 0; i++) { - if (DisplayModes[i].res.height != ph || DisplayModes[i].res.width != pw) { - ph = DisplayModes[i].res.height; - pw = DisplayModes[i].res.width; - idx++; - } - DisplayModes[i].residx = idx; + for (i = 0; DisplayModes[i].depth >= 0; i++) + { + if (DisplayModes[i].res.height != ph || DisplayModes[i].res.width != pw) + { + ph = DisplayModes[i].res.height; + pw = DisplayModes[i].res.width; + idx++; + } + DisplayModes[i].residx = idx; } } @@ -633,113 +669,117 @@ static void modesList (void) int i, j; i = 0; - while (DisplayModes[i].depth >= 0) { - write_log ("%d: %s (", i, DisplayModes[i].name); - j = 0; - while (DisplayModes[i].refresh[j] > 0) { - if (j > 0) - write_log (","); - write_log ("%d", DisplayModes[i].refresh[j]); - j++; - } - write_log (")\n"); - i++; + while (DisplayModes[i].depth >= 0) + { + write_log ("%d: %s (", i, DisplayModes[i].name); + j = 0; + while (DisplayModes[i].refresh[j] > 0) + { + if (j > 0) + write_log (","); + write_log ("%d", DisplayModes[i].refresh[j]); + j++; + } + write_log (")\n"); + i++; } } void picasso_InitResolutions (void) { - struct MultiDisplay *md1; - int i, count = 0; - char tmp[200]; - int bitdepth; - - Displays[0].primary = 1; - Displays[0].disabled = 0; - Displays[0].rect.left = 0; - Displays[0].rect.top = 0; - Displays[0].rect.right = 800; - Displays[0].rect.bottom = 640; - sprintf (tmp, "%s (%d*%d)", "Display", Displays[0].rect.right, Displays[0].rect.bottom); - Displays[0].name = my_strdup(tmp); - Displays[0].name2 = my_strdup("Display"); + struct MultiDisplay *md1; + int i, count = 0; + char tmp[200]; + int bitdepth; - md1 = Displays; - DisplayModes = md1->DisplayModes = (struct PicassoResolution*) xmalloc (sizeof (struct PicassoResolution) * MAX_PICASSO_MODES); - for (i = 0; i < MAX_SCREEN_MODES && count < MAX_PICASSO_MODES; i++) { - for(bitdepth = 16; bitdepth <= 32; bitdepth += 16) { - int bit_unit = (bitdepth + 1) & 0xF8; - int rgbFormat = (bitdepth == 16 ? RGBFB_R5G6B5 : RGBFB_R8G8B8A8); - int pixelFormat = 1 << rgbFormat; - pixelFormat |= RGBFF_CHUNKY; - - if (SDL_VideoModeOK (x_size_table[i], y_size_table[i], bitdepth, SDL_SWSURFACE)) - { - DisplayModes[count].res.width = x_size_table[i]; - DisplayModes[count].res.height = y_size_table[i]; - DisplayModes[count].depth = bit_unit >> 3; - DisplayModes[count].refresh[0] = 50; - DisplayModes[count].refresh[1] = 60; - DisplayModes[count].refresh[2] = 0; - DisplayModes[count].colormodes = pixelFormat; - sprintf(DisplayModes[count].name, "%dx%d, %d-bit", - DisplayModes[count].res.width, DisplayModes[count].res.height, DisplayModes[count].depth * 8); - - count++; - } + Displays[0].primary = 1; + Displays[0].disabled = 0; + Displays[0].rect.left = 0; + Displays[0].rect.top = 0; + Displays[0].rect.right = 800; + Displays[0].rect.bottom = 640; + sprintf (tmp, "%s (%d*%d)", "Display", Displays[0].rect.right, Displays[0].rect.bottom); + Displays[0].name = my_strdup(tmp); + Displays[0].name2 = my_strdup("Display"); + + md1 = Displays; + DisplayModes = md1->DisplayModes = (struct PicassoResolution*) xmalloc (sizeof (struct PicassoResolution) * MAX_PICASSO_MODES); + for (i = 0; i < MAX_SCREEN_MODES && count < MAX_PICASSO_MODES; i++) + { + for(bitdepth = 16; bitdepth <= 32; bitdepth += 16) + { + int bit_unit = (bitdepth + 1) & 0xF8; + int rgbFormat = (bitdepth == 16 ? RGBFB_R5G6B5 : RGBFB_R8G8B8A8); + int pixelFormat = 1 << rgbFormat; + pixelFormat |= RGBFF_CHUNKY; + + if (SDL_VideoModeOK (x_size_table[i], y_size_table[i], bitdepth, SDL_SWSURFACE)) + { + DisplayModes[count].res.width = x_size_table[i]; + DisplayModes[count].res.height = y_size_table[i]; + DisplayModes[count].depth = bit_unit >> 3; + DisplayModes[count].refresh[0] = 50; + DisplayModes[count].refresh[1] = 60; + DisplayModes[count].refresh[2] = 0; + DisplayModes[count].colormodes = pixelFormat; + sprintf(DisplayModes[count].name, "%dx%d, %d-bit", + DisplayModes[count].res.width, DisplayModes[count].res.height, DisplayModes[count].depth * 8); + + count++; + } + } } - } - DisplayModes[count].depth = -1; - sortmodes(); - modesList(); - DisplayModes = Displays[0].DisplayModes; + DisplayModes[count].depth = -1; + sortmodes(); + modesList(); + DisplayModes = Displays[0].DisplayModes; } void gfx_set_picasso_modeinfo (uae_u32 w, uae_u32 h, uae_u32 depth, RGBFTYPE rgbfmt) { - depth >>= 3; - if( ((unsigned)picasso_vidinfo.width == w ) && - ( (unsigned)picasso_vidinfo.height == h ) && - ( (unsigned)picasso_vidinfo.depth == depth ) && - ( picasso_vidinfo.selected_rgbformat == rgbfmt) ) - return; + depth >>= 3; + if( ((unsigned)picasso_vidinfo.width == w ) && + ( (unsigned)picasso_vidinfo.height == h ) && + ( (unsigned)picasso_vidinfo.depth == depth ) && + ( picasso_vidinfo.selected_rgbformat == rgbfmt) ) + return; - picasso_vidinfo.selected_rgbformat = rgbfmt; - picasso_vidinfo.width = w; - picasso_vidinfo.height = h; - picasso_vidinfo.depth = depth; - picasso_vidinfo.extra_mem = 1; + picasso_vidinfo.selected_rgbformat = rgbfmt; + picasso_vidinfo.width = w; + picasso_vidinfo.height = h; + picasso_vidinfo.depth = depth; + picasso_vidinfo.extra_mem = 1; - picasso_vidinfo.pixbytes = depth; - if (screen_is_picasso) - { - open_screen(&currprefs); - picasso_vidinfo.rowbytes = prSDLScreen->pitch; - } + picasso_vidinfo.pixbytes = depth; + if (screen_is_picasso) + { + open_screen(&currprefs); + picasso_vidinfo.rowbytes = prSDLScreen->pitch; + } } void gfx_set_picasso_state (int on) { - if (on == screen_is_picasso) - return; + if (on == screen_is_picasso) + return; - screen_is_picasso = on; - open_screen(&currprefs); - picasso_vidinfo.rowbytes = prSDLScreen->pitch; + screen_is_picasso = on; + open_screen(&currprefs); + picasso_vidinfo.rowbytes = prSDLScreen->pitch; } uae_u8 *gfx_lock_picasso (void) { - // We lock the surface directly after create and flip - picasso_vidinfo.rowbytes = prSDLScreen->pitch; - return (uae_u8 *)prSDLScreen->pixels; + // We lock the surface directly after create and flip + picasso_vidinfo.rowbytes = prSDLScreen->pitch; + return (uae_u8 *)prSDLScreen->pixels; } void gfx_unlock_picasso (void) { - // We lock the surface directly after create and flip, so no unlock here + // We lock the surface directly after create and flip, so no unlock here } #endif // PICASSO96 diff --git a/src/od-pandora/cda_play.cpp b/src/od-pandora/cda_play.cpp index 23d6a48c..195c2dd9 100644 --- a/src/od-pandora/cda_play.cpp +++ b/src/od-pandora/cda_play.cpp @@ -6,63 +6,69 @@ #include "uae.h" -cda_audio::~cda_audio() +cda_audio::~cda_audio() { - cdaudio_active = false; - wait(0); - wait(1); - for (int i = 0; i < 2; i++) { - xfree (buffers[i]); - buffers[i] = NULL; - } + cdaudio_active = false; + wait(0); + wait(1); + for (int i = 0; i < 2; i++) + { + xfree (buffers[i]); + buffers[i] = NULL; + } } -cda_audio::cda_audio(int num_sectors) +cda_audio::cda_audio(int num_sectors) { - active = false; - playing = false; - volume[0] = volume[1] = 0; + active = false; + playing = false; + volume[0] = volume[1] = 0; - bufsize = num_sectors * 2352; - for (int i = 0; i < 2; i++) { - buffers[i] = xcalloc (uae_u8, num_sectors * 4096); - } - this->num_sectors = num_sectors; - active = true; - playing = true; - cdaudio_active = true; + bufsize = num_sectors * 2352; + for (int i = 0; i < 2; i++) + { + buffers[i] = xcalloc (uae_u8, num_sectors * 4096); + } + this->num_sectors = num_sectors; + active = true; + playing = true; + cdaudio_active = true; } -void cda_audio::setvolume(int master, int left, int right) +void cda_audio::setvolume(int master, int left, int right) { - for (int j = 0; j < 2; j++) { - volume[j] = j == 0 ? left : right; - volume[j] = (100 - master) * volume[j] / 100; - if (volume[j]) - volume[j]++; - if (volume[j] >= 32768) - volume[j] = 32768; - } + for (int j = 0; j < 2; j++) + { + volume[j] = j == 0 ? left : right; + volume[j] = (100 - master) * volume[j] / 100; + if (volume[j]) + volume[j]++; + if (volume[j] >= 32768) + volume[j] = 32768; + } } -bool cda_audio::play(int bufnum) +bool cda_audio::play(int bufnum) { - if (!active) { - return false; - } + if (!active) + { + return false; + } - uae_s16 *p = (uae_s16*)(buffers[bufnum]); - for (int i = 0; i < num_sectors * 2352 / 4; i++) { - PUT_CDAUDIO_WORD_STEREO(p[i * 2 + 0] * volume[0] / 32768, p[i * 2 + 1] * volume[1] / 32768); - check_cdaudio_buffers(); - } + uae_s16 *p = (uae_s16*)(buffers[bufnum]); + for (int i = 0; i < num_sectors * 2352 / 4; i++) + { + PUT_CDAUDIO_WORD_STEREO(p[i * 2 + 0] * volume[0] / 32768, p[i * 2 + 1] * volume[1] / 32768); + check_cdaudio_buffers(); + } - return cdaudio_catchup(); + return cdaudio_catchup(); } -void cda_audio::wait(int bufnum) +void cda_audio::wait(int bufnum) { - if (!active || !playing) { - return; - } + if (!active || !playing) + { + return; + } } diff --git a/src/od-pandora/cda_play.h b/src/od-pandora/cda_play.h index 71d32ac8..cf5c4a42 100644 --- a/src/od-pandora/cda_play.h +++ b/src/od-pandora/cda_play.h @@ -1,18 +1,19 @@ -class cda_audio { +class cda_audio +{ private: - int bufsize; - int volume[2]; - bool playing; - bool active; + int bufsize; + int volume[2]; + bool playing; + bool active; public: - uae_u8 *buffers[2]; - int num_sectors; + uae_u8 *buffers[2]; + int num_sectors; - cda_audio(int num_sectors); - ~cda_audio(); - void setvolume(int master, int left, int right); - bool play(int bufnum); - void wait(void); - void wait(int bufnum); + cda_audio(int num_sectors); + ~cda_audio(); + void setvolume(int master, int left, int right); + bool play(int bufnum); + void wait(void); + void wait(int bufnum); }; diff --git a/src/od-pandora/charset.cpp b/src/od-pandora/charset.cpp index 9433a944..35bccb7c 100644 --- a/src/od-pandora/charset.cpp +++ b/src/od-pandora/charset.cpp @@ -6,79 +6,80 @@ // UAE4ARM and fs-uae uses only chars / UTF-8 internally, so TCHAR is typedefed to // char (WinUAE uses wchar_t internally). -char *ua (const TCHAR *s) +char *ua (const TCHAR *s) { - if (s == NULL) - return NULL; - return strdup (s); + if (s == NULL) + return NULL; + return strdup (s); } -char *au (const TCHAR *s) +char *au (const TCHAR *s) { - if (s == NULL) - return NULL; - return strdup (s); + if (s == NULL) + return NULL; + return strdup (s); } TCHAR* utf8u (const char *s) { - if (s == NULL) - return NULL; - return ua (s); + if (s == NULL) + return NULL; + return ua (s); } char* uutf8 (const TCHAR *s) { - if (s == NULL) - return NULL; - return ua (s); + if (s == NULL) + return NULL; + return ua (s); } TCHAR *au_copy (TCHAR *dst, int maxlen, const char *src) { - // this should match the WinUAE au_copy behavior, where either the - // entire string is copied (and null-terminated), or the result is - // an empty string - if (uae_tcslcpy (dst, src, maxlen) >= maxlen) { - dst[0] = '\0'; - } - return dst; + // this should match the WinUAE au_copy behavior, where either the + // entire string is copied (and null-terminated), or the result is + // an empty string + if (uae_tcslcpy (dst, src, maxlen) >= maxlen) + { + dst[0] = '\0'; + } + return dst; } char *ua_copy (char *dst, int maxlen, const TCHAR *src) { - return au_copy (dst, maxlen, src); + return au_copy (dst, maxlen, src); } TCHAR *my_strdup_ansi (const char *src) { - return strdup (src); + return strdup (src); } -TCHAR *au_fs (const char *src) +TCHAR *au_fs (const char *src) { - if (src == NULL) - return NULL; - return strdup(src); + if (src == NULL) + return NULL; + return strdup(src); } -char *ua_fs (const TCHAR *s, int defchar) +char *ua_fs (const TCHAR *s, int defchar) { - if (s == NULL) - return NULL; - return strdup(s); + if (s == NULL) + return NULL; + return strdup(s); } -TCHAR *au_fs_copy (TCHAR *dst, int maxlen, const char *src) +TCHAR *au_fs_copy (TCHAR *dst, int maxlen, const char *src) { - dst[0] = 0; - strncpy(dst, src, maxlen); - return dst; + dst[0] = 0; + strncpy(dst, src, maxlen); + return dst; } -char *ua_fs_copy (char *dst, int maxlen, const TCHAR *src, int defchar) +char *ua_fs_copy (char *dst, int maxlen, const TCHAR *src, int defchar) { - dst[0] = 0; - strncpy(dst, src, maxlen); - return dst; + dst[0] = 0; + strncpy(dst, src, maxlen); + return dst; } diff --git a/src/od-pandora/config.h b/src/od-pandora/config.h index b86eab17..8ef9cd80 100644 --- a/src/od-pandora/config.h +++ b/src/od-pandora/config.h @@ -1,17 +1,17 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * User configuration options - * - * Copyright 1995 - 1998 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * User configuration options + * + * Copyright 1995 - 1998 Bernd Schmidt + */ /* * Please note: Many things are configurable with command line parameters, - * and you can put anything you can pass on the command line into a + * and you can put anything you can pass on the command line into a * configuration file ~/.uaerc. Please read the documentation for more * information. - * + * * NOTE NOTE NOTE * Whenever you change something in this file, you have to "make clean" * afterwards. @@ -28,10 +28,10 @@ * well for hardware bangers like games and demos, in fact it will be much * slower. It can also be slower for some applications and/or benchmarks. * It needs a lot of tuning. Please let me know your results with this. - * The second define, RELY_ON_LOADSEG_DETECTION, decides how the compiler + * The second define, RELY_ON_LOADSEG_DETECTION, decides how the compiler * tries to detect self-modifying code. If it is not set, the first bytes * of every compiled routine are used as checksum before executing the - * routine. If it is set, the UAE filesystem will perform some checks to + * routine. If it is set, the UAE filesystem will perform some checks to * detect whether an executable is being loaded. This is less reliable * (it won't work if you don't use the harddisk emulation, so don't try to * use floppies or even the RAM disk), but much faster. diff --git a/src/od-pandora/fsdb_host.cpp b/src/od-pandora/fsdb_host.cpp index 45b7ad49..5b050b63 100644 --- a/src/od-pandora/fsdb_host.cpp +++ b/src/od-pandora/fsdb_host.cpp @@ -11,95 +11,113 @@ int dos_errno(void) { int e = errno; - switch (e) { - case ENOMEM: return ERROR_NO_FREE_STORE; - case EEXIST: return ERROR_OBJECT_EXISTS; - case EACCES: return ERROR_WRITE_PROTECTED; - case ENOENT: return ERROR_OBJECT_NOT_AROUND; - case ENOTDIR: return ERROR_OBJECT_WRONG_TYPE; - case ENOSPC: return ERROR_DISK_IS_FULL; - case EBUSY: return ERROR_OBJECT_IN_USE; - case EISDIR: return ERROR_OBJECT_WRONG_TYPE; + switch (e) + { + case ENOMEM: + return ERROR_NO_FREE_STORE; + case EEXIST: + return ERROR_OBJECT_EXISTS; + case EACCES: + return ERROR_WRITE_PROTECTED; + case ENOENT: + return ERROR_OBJECT_NOT_AROUND; + case ENOTDIR: + return ERROR_OBJECT_WRONG_TYPE; + case ENOSPC: + return ERROR_DISK_IS_FULL; + case EBUSY: + return ERROR_OBJECT_IN_USE; + case EISDIR: + return ERROR_OBJECT_WRONG_TYPE; #if defined(ETXTBSY) - case ETXTBSY: return ERROR_OBJECT_IN_USE; + case ETXTBSY: + return ERROR_OBJECT_IN_USE; #endif #if defined(EROFS) - case EROFS: return ERROR_DISK_WRITE_PROTECTED; + case EROFS: + return ERROR_DISK_WRITE_PROTECTED; #endif #if defined(ENOTEMPTY) #if ENOTEMPTY != EEXIST - case ENOTEMPTY: return ERROR_DIRECTORY_NOT_EMPTY; + case ENOTEMPTY: + return ERROR_DIRECTORY_NOT_EMPTY; #endif #endif - default: - write_log(("Unimplemented error %s\n", strerror(e))); - return ERROR_NOT_IMPLEMENTED; + default: + write_log(("Unimplemented error %s\n", strerror(e))); + return ERROR_NOT_IMPLEMENTED; } } bool my_stat (const TCHAR *name, struct mystat *statbuf) { - struct stat64 st; - - if(stat64(name, &st) == -1) { - write_log("my_stat: stat on file %s failed\n", name); - return false; - } - - statbuf->size = st.st_size; - statbuf->mode = 0; - if (st.st_mode & S_IRUSR) { - statbuf->mode |= FILEFLAG_READ; - } - if (st.st_mode & S_IWUSR) { - statbuf->mode |= FILEFLAG_WRITE; - } - statbuf->mtime.tv_sec = st.st_mtime; - statbuf->mtime.tv_usec = 0; + struct stat64 st; - return true; + if(stat64(name, &st) == -1) + { + write_log("my_stat: stat on file %s failed\n", name); + return false; + } + + statbuf->size = st.st_size; + statbuf->mode = 0; + if (st.st_mode & S_IRUSR) + { + statbuf->mode |= FILEFLAG_READ; + } + if (st.st_mode & S_IWUSR) + { + statbuf->mode |= FILEFLAG_WRITE; + } + statbuf->mtime.tv_sec = st.st_mtime; + statbuf->mtime.tv_usec = 0; + + return true; } bool my_chmod (const TCHAR *name, uae_u32 mode) { - // return result of mystat so invalid file will return false - struct mystat ms; - return my_stat(name, &ms); + // return result of mystat so invalid file will return false + struct mystat ms; + return my_stat(name, &ms); } bool my_utime (const TCHAR *name, struct mytimeval *tv) { - struct mytimeval mtv; - struct timeval times[2]; - - if(tv == NULL) { - struct timeval time; - struct timezone tz; - - gettimeofday(&time, &tz); - mtv.tv_sec = time.tv_sec + tz.tz_minuteswest; - mtv.tv_usec = time.tv_usec; - } else { - mtv.tv_sec = tv->tv_sec; - mtv.tv_usec = tv->tv_usec; - } + struct mytimeval mtv; + struct timeval times[2]; - times[0].tv_sec = mtv.tv_sec; - times[0].tv_usec = mtv.tv_usec; - times[1].tv_sec = mtv.tv_sec; - times[1].tv_usec = mtv.tv_usec; - if(utimes(name, times) == 0) - return true; - - return false; + if(tv == NULL) + { + struct timeval time; + struct timezone tz; + + gettimeofday(&time, &tz); + mtv.tv_sec = time.tv_sec + tz.tz_minuteswest; + mtv.tv_usec = time.tv_usec; + } + else + { + mtv.tv_sec = tv->tv_sec; + mtv.tv_usec = tv->tv_usec; + } + + times[0].tv_sec = mtv.tv_sec; + times[0].tv_usec = mtv.tv_usec; + times[1].tv_sec = mtv.tv_sec; + times[1].tv_usec = mtv.tv_usec; + if(utimes(name, times) == 0) + return true; + + return false; } // Get local time in secs, starting from 01.01.1970 uae_u32 getlocaltime (void) { - return time(NULL); // ToDo: convert UTC to local time... + return time(NULL); // ToDo: convert UTC to local time... } diff --git a/src/od-pandora/gui/CreateFilesysHardfile.cpp b/src/od-pandora/gui/CreateFilesysHardfile.cpp index 6d45b074..d73a80fe 100644 --- a/src/od-pandora/gui/CreateFilesysHardfile.cpp +++ b/src/od-pandora/gui/CreateFilesysHardfile.cpp @@ -11,7 +11,7 @@ #include "sysdeps.h" #include "config.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "uae.h" #include "autoconf.h" #include "filesys.h" @@ -45,40 +45,40 @@ static gcn::TextField *txtSize; class CreateFilesysHardfileActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if(actionEvent.getSource() == cmdPath) - { - char tmp[MAX_PATH]; - strncpy(tmp, txtPath->getText().c_str(), MAX_PATH); - wndCreateFilesysHardfile->releaseModalFocus(); - if(SelectFile("Create harddisk file", tmp, harddisk_filter, true)) + if(actionEvent.getSource() == cmdPath) { - txtPath->setText(tmp); - fileSelected = true; + char tmp[MAX_PATH]; + strncpy(tmp, txtPath->getText().c_str(), MAX_PATH); + wndCreateFilesysHardfile->releaseModalFocus(); + if(SelectFile("Create harddisk file", tmp, harddisk_filter, true)) + { + txtPath->setText(tmp); + fileSelected = true; + } + wndCreateFilesysHardfile->requestModalFocus(); + cmdPath->requestFocus(); } - wndCreateFilesysHardfile->requestModalFocus(); - cmdPath->requestFocus(); - } - else - { - if (actionEvent.getSource() == cmdOK) + else { - if(txtDevice->getText().length() <= 0) - { - wndCreateFilesysHardfile->setCaption("Please enter a device name."); - return; - } - if(!fileSelected) - { - wndCreateFilesysHardfile->setCaption("Please select a new filename."); - return; - } - dialogResult = true; + if (actionEvent.getSource() == cmdOK) + { + if(txtDevice->getText().length() <= 0) + { + wndCreateFilesysHardfile->setCaption("Please enter a device name."); + return; + } + if(!fileSelected) + { + wndCreateFilesysHardfile->setCaption("Please select a new filename."); + return; + } + dialogResult = true; + } + dialogFinished = true; } - dialogFinished = true; - } } }; static CreateFilesysHardfileActionListener* createFilesysHardfileActionListener; @@ -86,226 +86,226 @@ static CreateFilesysHardfileActionListener* createFilesysHardfileActionListener; static void InitCreateFilesysHardfile(void) { - wndCreateFilesysHardfile = new gcn::Window("Create"); - wndCreateFilesysHardfile->setSize(DIALOG_WIDTH, DIALOG_HEIGHT); - wndCreateFilesysHardfile->setPosition((GUI_WIDTH - DIALOG_WIDTH) / 2, (GUI_HEIGHT - DIALOG_HEIGHT) / 2); - wndCreateFilesysHardfile->setBaseColor(gui_baseCol + 0x202020); - wndCreateFilesysHardfile->setCaption("Create hardfile"); - wndCreateFilesysHardfile->setTitleBarHeight(TITLEBAR_HEIGHT); - - createFilesysHardfileActionListener = new CreateFilesysHardfileActionListener(); - - cmdOK = new gcn::Button("Ok"); - cmdOK->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); - cmdOK->setPosition(DIALOG_WIDTH - DISTANCE_BORDER - 2 * BUTTON_WIDTH - DISTANCE_NEXT_X, DIALOG_HEIGHT - 2 * DISTANCE_BORDER - BUTTON_HEIGHT - 10); - cmdOK->setBaseColor(gui_baseCol + 0x202020); - cmdOK->setId("createHdfOK"); - cmdOK->addActionListener(createFilesysHardfileActionListener); - - cmdCancel = new gcn::Button("Cancel"); - cmdCancel->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); - cmdCancel->setPosition(DIALOG_WIDTH - DISTANCE_BORDER - BUTTON_WIDTH, DIALOG_HEIGHT - 2 * DISTANCE_BORDER - BUTTON_HEIGHT - 10); - cmdCancel->setBaseColor(gui_baseCol + 0x202020); - cmdCancel->setId("createHdfCancel"); - cmdCancel->addActionListener(createFilesysHardfileActionListener); + wndCreateFilesysHardfile = new gcn::Window("Create"); + wndCreateFilesysHardfile->setSize(DIALOG_WIDTH, DIALOG_HEIGHT); + wndCreateFilesysHardfile->setPosition((GUI_WIDTH - DIALOG_WIDTH) / 2, (GUI_HEIGHT - DIALOG_HEIGHT) / 2); + wndCreateFilesysHardfile->setBaseColor(gui_baseCol + 0x202020); + wndCreateFilesysHardfile->setCaption("Create hardfile"); + wndCreateFilesysHardfile->setTitleBarHeight(TITLEBAR_HEIGHT); - lblDevice = new gcn::Label("Device Name:"); - lblDevice->setSize(100, LABEL_HEIGHT); - lblDevice->setAlignment(gcn::Graphics::RIGHT); - txtDevice = new gcn::TextField(); - txtDevice->setSize(80, TEXTFIELD_HEIGHT); - txtDevice->setId("createHdfDev"); + createFilesysHardfileActionListener = new CreateFilesysHardfileActionListener(); - chkAutoboot = new gcn::UaeCheckBox("Bootable", true); - chkAutoboot->setId("createHdfAutoboot"); + cmdOK = new gcn::Button("Ok"); + cmdOK->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); + cmdOK->setPosition(DIALOG_WIDTH - DISTANCE_BORDER - 2 * BUTTON_WIDTH - DISTANCE_NEXT_X, DIALOG_HEIGHT - 2 * DISTANCE_BORDER - BUTTON_HEIGHT - 10); + cmdOK->setBaseColor(gui_baseCol + 0x202020); + cmdOK->setId("createHdfOK"); + cmdOK->addActionListener(createFilesysHardfileActionListener); - lblBootPri = new gcn::Label("Boot priority:"); - lblBootPri->setSize(100, LABEL_HEIGHT); - lblBootPri->setAlignment(gcn::Graphics::RIGHT); - txtBootPri = new gcn::TextField(); - txtBootPri->setSize(40, TEXTFIELD_HEIGHT); - txtBootPri->setId("createHdfBootPri"); + cmdCancel = new gcn::Button("Cancel"); + cmdCancel->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); + cmdCancel->setPosition(DIALOG_WIDTH - DISTANCE_BORDER - BUTTON_WIDTH, DIALOG_HEIGHT - 2 * DISTANCE_BORDER - BUTTON_HEIGHT - 10); + cmdCancel->setBaseColor(gui_baseCol + 0x202020); + cmdCancel->setId("createHdfCancel"); + cmdCancel->addActionListener(createFilesysHardfileActionListener); - lblSize = new gcn::Label("Size (MB):"); - lblSize->setSize(100, LABEL_HEIGHT); - lblSize->setAlignment(gcn::Graphics::RIGHT); - txtSize = new gcn::TextField(); - txtSize->setSize(60, TEXTFIELD_HEIGHT); - txtSize->setId("createHdfSize"); + lblDevice = new gcn::Label("Device Name:"); + lblDevice->setSize(100, LABEL_HEIGHT); + lblDevice->setAlignment(gcn::Graphics::RIGHT); + txtDevice = new gcn::TextField(); + txtDevice->setSize(80, TEXTFIELD_HEIGHT); + txtDevice->setId("createHdfDev"); - lblPath = new gcn::Label("Path:"); - lblPath->setSize(100, LABEL_HEIGHT); - lblPath->setAlignment(gcn::Graphics::RIGHT); - txtPath = new gcn::TextField(); - txtPath->setSize(438, TEXTFIELD_HEIGHT); - txtPath->setEnabled(false); - cmdPath = new gcn::Button("..."); - cmdPath->setSize(SMALL_BUTTON_WIDTH, SMALL_BUTTON_HEIGHT); - cmdPath->setBaseColor(gui_baseCol + 0x202020); - cmdPath->setId("createHdfPath"); - cmdPath->addActionListener(createFilesysHardfileActionListener); + chkAutoboot = new gcn::UaeCheckBox("Bootable", true); + chkAutoboot->setId("createHdfAutoboot"); - int posY = DISTANCE_BORDER; - wndCreateFilesysHardfile->add(lblDevice, DISTANCE_BORDER, posY); - wndCreateFilesysHardfile->add(txtDevice, DISTANCE_BORDER + lblDevice->getWidth() + 8, posY); - wndCreateFilesysHardfile->add(chkAutoboot, 235, posY + 1); - wndCreateFilesysHardfile->add(lblBootPri, 335, posY); - wndCreateFilesysHardfile->add(txtBootPri, 335 + lblBootPri->getWidth() + 8, posY); - posY += txtDevice->getHeight() + DISTANCE_NEXT_Y; - wndCreateFilesysHardfile->add(lblPath, DISTANCE_BORDER, posY); - wndCreateFilesysHardfile->add(txtPath, DISTANCE_BORDER + lblPath->getWidth() + 8, posY); - wndCreateFilesysHardfile->add(cmdPath, wndCreateFilesysHardfile->getWidth() - DISTANCE_BORDER - SMALL_BUTTON_WIDTH, posY); - posY += txtPath->getHeight() + DISTANCE_NEXT_Y; - wndCreateFilesysHardfile->add(lblSize, DISTANCE_BORDER, posY); - wndCreateFilesysHardfile->add(txtSize, DISTANCE_BORDER + lblSize->getWidth() + 8, posY); + lblBootPri = new gcn::Label("Boot priority:"); + lblBootPri->setSize(100, LABEL_HEIGHT); + lblBootPri->setAlignment(gcn::Graphics::RIGHT); + txtBootPri = new gcn::TextField(); + txtBootPri->setSize(40, TEXTFIELD_HEIGHT); + txtBootPri->setId("createHdfBootPri"); - wndCreateFilesysHardfile->add(cmdOK); - wndCreateFilesysHardfile->add(cmdCancel); + lblSize = new gcn::Label("Size (MB):"); + lblSize->setSize(100, LABEL_HEIGHT); + lblSize->setAlignment(gcn::Graphics::RIGHT); + txtSize = new gcn::TextField(); + txtSize->setSize(60, TEXTFIELD_HEIGHT); + txtSize->setId("createHdfSize"); - gui_top->add(wndCreateFilesysHardfile); - - txtDevice->requestFocus(); - wndCreateFilesysHardfile->requestModalFocus(); + lblPath = new gcn::Label("Path:"); + lblPath->setSize(100, LABEL_HEIGHT); + lblPath->setAlignment(gcn::Graphics::RIGHT); + txtPath = new gcn::TextField(); + txtPath->setSize(438, TEXTFIELD_HEIGHT); + txtPath->setEnabled(false); + cmdPath = new gcn::Button("..."); + cmdPath->setSize(SMALL_BUTTON_WIDTH, SMALL_BUTTON_HEIGHT); + cmdPath->setBaseColor(gui_baseCol + 0x202020); + cmdPath->setId("createHdfPath"); + cmdPath->addActionListener(createFilesysHardfileActionListener); + + int posY = DISTANCE_BORDER; + wndCreateFilesysHardfile->add(lblDevice, DISTANCE_BORDER, posY); + wndCreateFilesysHardfile->add(txtDevice, DISTANCE_BORDER + lblDevice->getWidth() + 8, posY); + wndCreateFilesysHardfile->add(chkAutoboot, 235, posY + 1); + wndCreateFilesysHardfile->add(lblBootPri, 335, posY); + wndCreateFilesysHardfile->add(txtBootPri, 335 + lblBootPri->getWidth() + 8, posY); + posY += txtDevice->getHeight() + DISTANCE_NEXT_Y; + wndCreateFilesysHardfile->add(lblPath, DISTANCE_BORDER, posY); + wndCreateFilesysHardfile->add(txtPath, DISTANCE_BORDER + lblPath->getWidth() + 8, posY); + wndCreateFilesysHardfile->add(cmdPath, wndCreateFilesysHardfile->getWidth() - DISTANCE_BORDER - SMALL_BUTTON_WIDTH, posY); + posY += txtPath->getHeight() + DISTANCE_NEXT_Y; + wndCreateFilesysHardfile->add(lblSize, DISTANCE_BORDER, posY); + wndCreateFilesysHardfile->add(txtSize, DISTANCE_BORDER + lblSize->getWidth() + 8, posY); + + wndCreateFilesysHardfile->add(cmdOK); + wndCreateFilesysHardfile->add(cmdCancel); + + gui_top->add(wndCreateFilesysHardfile); + + txtDevice->requestFocus(); + wndCreateFilesysHardfile->requestModalFocus(); } static void ExitCreateFilesysHardfile(void) { - wndCreateFilesysHardfile->releaseModalFocus(); - gui_top->remove(wndCreateFilesysHardfile); + wndCreateFilesysHardfile->releaseModalFocus(); + gui_top->remove(wndCreateFilesysHardfile); - delete lblDevice; - delete txtDevice; - delete chkAutoboot; - delete lblBootPri; - delete txtBootPri; - delete lblPath; - delete txtPath; - delete cmdPath; - delete lblSize; - delete txtSize; - - delete cmdOK; - delete cmdCancel; - delete createFilesysHardfileActionListener; - - delete wndCreateFilesysHardfile; + delete lblDevice; + delete txtDevice; + delete chkAutoboot; + delete lblBootPri; + delete txtBootPri; + delete lblPath; + delete txtPath; + delete cmdPath; + delete lblSize; + delete txtSize; + + delete cmdOK; + delete cmdCancel; + delete createFilesysHardfileActionListener; + + delete wndCreateFilesysHardfile; } static void CreateFilesysHardfileLoop(void) { - while(!dialogFinished) - { - SDL_Event event; - while(SDL_PollEvent(&event)) + while(!dialogFinished) { - if (event.type == SDL_KEYDOWN) - { - switch(event.key.keysym.sym) + SDL_Event event; + while(SDL_PollEvent(&event)) { - case SDLK_ESCAPE: - dialogFinished = true; - break; - - case SDLK_UP: - if(HandleNavigation(DIRECTION_UP)) - continue; // Don't change value when enter ComboBox -> don't send event to control - break; - - case SDLK_DOWN: - if(HandleNavigation(DIRECTION_DOWN)) - continue; // Don't change value when enter ComboBox -> don't send event to control - break; + if (event.type == SDL_KEYDOWN) + { + switch(event.key.keysym.sym) + { + case SDLK_ESCAPE: + dialogFinished = true; + break; - case SDLK_LEFT: - if(HandleNavigation(DIRECTION_LEFT)) - continue; // Don't change value when enter Slider -> don't send event to control - break; - - case SDLK_RIGHT: - if(HandleNavigation(DIRECTION_RIGHT)) - continue; // Don't change value when enter Slider -> don't send event to control - break; + case SDLK_UP: + if(HandleNavigation(DIRECTION_UP)) + continue; // Don't change value when enter ComboBox -> don't send event to control + break; - case SDLK_PAGEDOWN: - case SDLK_HOME: - event.key.keysym.sym = SDLK_RETURN; - gui_input->pushInput(event); // Fire key down - event.type = SDL_KEYUP; // and the key up - break; + case SDLK_DOWN: + if(HandleNavigation(DIRECTION_DOWN)) + continue; // Don't change value when enter ComboBox -> don't send event to control + break; + + case SDLK_LEFT: + if(HandleNavigation(DIRECTION_LEFT)) + continue; // Don't change value when enter Slider -> don't send event to control + break; + + case SDLK_RIGHT: + if(HandleNavigation(DIRECTION_RIGHT)) + continue; // Don't change value when enter Slider -> don't send event to control + break; + + case SDLK_PAGEDOWN: + case SDLK_HOME: + event.key.keysym.sym = SDLK_RETURN; + gui_input->pushInput(event); // Fire key down + event.type = SDL_KEYUP; // and the key up + break; + } + } + + //------------------------------------------------- + // Send event to guichan-controls + //------------------------------------------------- + gui_input->pushInput(event); } - } - //------------------------------------------------- - // Send event to guichan-controls - //------------------------------------------------- - gui_input->pushInput(event); + // Now we let the Gui object perform its logic. + uae_gui->logic(); + // Now we let the Gui object draw itself. + uae_gui->draw(); + // Finally we update the screen. + wait_for_vsync(); + SDL_Flip(gui_screen); } - - // Now we let the Gui object perform its logic. - uae_gui->logic(); - // Now we let the Gui object draw itself. - uae_gui->draw(); - // Finally we update the screen. - wait_for_vsync(); - SDL_Flip(gui_screen); - } } bool CreateFilesysHardfile(void) { - struct uaedev_config_info *uci; - std::string strroot; - char tmp[32]; - char zero = 0; - - dialogResult = false; - dialogFinished = false; + struct uaedev_config_info *uci; + std::string strroot; + char tmp[32]; + char zero = 0; - InitCreateFilesysHardfile(); + dialogResult = false; + dialogFinished = false; - CreateDefaultDevicename(tmp); - txtDevice->setText(tmp); - strroot.assign(currentDir); - txtPath->setText(strroot); - fileSelected = false; - - txtBootPri->setText("0"); - txtSize->setText("100"); + InitCreateFilesysHardfile(); - CreateFilesysHardfileLoop(); - ExitCreateFilesysHardfile(); - - if(dialogResult) - { - char buffer[512]; - int size = atoi(txtSize->getText().c_str()); - if(size < 1) - size = 1; - if(size > 2048) - size = 2048; - int bp = tweakbootpri(atoi(txtBootPri->getText().c_str()), 1, 0); - extractPath((char *) txtPath->getText().c_str(), currentDir); - - FILE *newFile = fopen(txtPath->getText().c_str(), "wb"); - if(!newFile) + CreateDefaultDevicename(tmp); + txtDevice->setText(tmp); + strroot.assign(currentDir); + txtPath->setText(strroot); + fileSelected = false; + + txtBootPri->setText("0"); + txtSize->setText("100"); + + CreateFilesysHardfileLoop(); + ExitCreateFilesysHardfile(); + + if(dialogResult) { - ShowMessage("Create Hardfile", "Unable to create new file.", "", "Ok", ""); - return false; - } - fseek(newFile, size * 1024 * 1024 - 1, SEEK_SET); - fwrite(&zero, 1, 1, newFile); - fclose(newFile); - - uci = add_filesys_config(&changed_prefs, -1, (char *) txtDevice->getText().c_str(), - 0, (char *) txtPath->getText().c_str(), 0, - 0, 32, (size / 1024) + 1, 2, 512, - bp, 0, 0, 0, 0, 0, 0); - if (uci) - hardfile_do_disk_change (uci, 1); - } + char buffer[512]; + int size = atoi(txtSize->getText().c_str()); + if(size < 1) + size = 1; + if(size > 2048) + size = 2048; + int bp = tweakbootpri(atoi(txtBootPri->getText().c_str()), 1, 0); + extractPath((char *) txtPath->getText().c_str(), currentDir); - return dialogResult; + FILE *newFile = fopen(txtPath->getText().c_str(), "wb"); + if(!newFile) + { + ShowMessage("Create Hardfile", "Unable to create new file.", "", "Ok", ""); + return false; + } + fseek(newFile, size * 1024 * 1024 - 1, SEEK_SET); + fwrite(&zero, 1, 1, newFile); + fclose(newFile); + + uci = add_filesys_config(&changed_prefs, -1, (char *) txtDevice->getText().c_str(), + 0, (char *) txtPath->getText().c_str(), 0, + 0, 32, (size / 1024) + 1, 2, 512, + bp, 0, 0, 0, 0, 0, 0); + if (uci) + hardfile_do_disk_change (uci, 1); + } + + return dialogResult; } diff --git a/src/od-pandora/gui/EditFilesysHardfile.cpp b/src/od-pandora/gui/EditFilesysHardfile.cpp index d4118c76..28be7dc2 100644 --- a/src/od-pandora/gui/EditFilesysHardfile.cpp +++ b/src/od-pandora/gui/EditFilesysHardfile.cpp @@ -11,7 +11,7 @@ #include "sysdeps.h" #include "config.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "uae.h" #include "autoconf.h" #include "filesys.h" @@ -53,58 +53,58 @@ static gcn::TextField *txtBlocksize; static void check_rdb(const TCHAR *filename) { - bool isrdb = hardfile_testrdb(filename); - if(isrdb) - { - txtSectors->setText("0"); - txtSurfaces->setText("0"); - txtReserved->setText("0"); - txtBootPri->setText("0"); - } - txtSectors->setEnabled(!isrdb); - txtSurfaces->setEnabled(!isrdb); - txtReserved->setEnabled(!isrdb); - txtBootPri->setEnabled(!isrdb); + bool isrdb = hardfile_testrdb(filename); + if(isrdb) + { + txtSectors->setText("0"); + txtSurfaces->setText("0"); + txtReserved->setText("0"); + txtBootPri->setText("0"); + } + txtSectors->setEnabled(!isrdb); + txtSurfaces->setEnabled(!isrdb); + txtReserved->setEnabled(!isrdb); + txtBootPri->setEnabled(!isrdb); } class FilesysHardfileActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if(actionEvent.getSource() == cmdPath) - { - char tmp[MAX_PATH]; - strncpy(tmp, txtPath->getText().c_str(), MAX_PATH); - wndEditFilesysHardfile->releaseModalFocus(); - if(SelectFile("Select harddisk file", tmp, harddisk_filter)) + if(actionEvent.getSource() == cmdPath) { - txtPath->setText(tmp); - fileSelected = true; - check_rdb(tmp); + char tmp[MAX_PATH]; + strncpy(tmp, txtPath->getText().c_str(), MAX_PATH); + wndEditFilesysHardfile->releaseModalFocus(); + if(SelectFile("Select harddisk file", tmp, harddisk_filter)) + { + txtPath->setText(tmp); + fileSelected = true; + check_rdb(tmp); + } + wndEditFilesysHardfile->requestModalFocus(); + cmdPath->requestFocus(); } - wndEditFilesysHardfile->requestModalFocus(); - cmdPath->requestFocus(); - } - else - { - if (actionEvent.getSource() == cmdOK) + else { - if(txtDevice->getText().length() <= 0) - { - wndEditFilesysHardfile->setCaption("Please enter a device name."); - return; - } - if(!fileSelected) - { - wndEditFilesysHardfile->setCaption("Please select a filename."); - return; - } - dialogResult = true; + if (actionEvent.getSource() == cmdOK) + { + if(txtDevice->getText().length() <= 0) + { + wndEditFilesysHardfile->setCaption("Please enter a device name."); + return; + } + if(!fileSelected) + { + wndEditFilesysHardfile->setCaption("Please select a filename."); + return; + } + dialogResult = true; + } + dialogFinished = true; } - dialogFinished = true; - } } }; static FilesysHardfileActionListener* filesysHardfileActionListener; @@ -112,284 +112,284 @@ static FilesysHardfileActionListener* filesysHardfileActionListener; static void InitEditFilesysHardfile(void) { - wndEditFilesysHardfile = new gcn::Window("Edit"); - wndEditFilesysHardfile->setSize(DIALOG_WIDTH, DIALOG_HEIGHT); - wndEditFilesysHardfile->setPosition((GUI_WIDTH - DIALOG_WIDTH) / 2, (GUI_HEIGHT - DIALOG_HEIGHT) / 2); - wndEditFilesysHardfile->setBaseColor(gui_baseCol + 0x202020); - wndEditFilesysHardfile->setCaption("Volume settings"); - wndEditFilesysHardfile->setTitleBarHeight(TITLEBAR_HEIGHT); - - filesysHardfileActionListener = new FilesysHardfileActionListener(); - - cmdOK = new gcn::Button("Ok"); - cmdOK->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); - cmdOK->setPosition(DIALOG_WIDTH - DISTANCE_BORDER - 2 * BUTTON_WIDTH - DISTANCE_NEXT_X, DIALOG_HEIGHT - 2 * DISTANCE_BORDER - BUTTON_HEIGHT - 10); - cmdOK->setBaseColor(gui_baseCol + 0x202020); - cmdOK->setId("hdfOK"); - cmdOK->addActionListener(filesysHardfileActionListener); - - cmdCancel = new gcn::Button("Cancel"); - cmdCancel->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); - cmdCancel->setPosition(DIALOG_WIDTH - DISTANCE_BORDER - BUTTON_WIDTH, DIALOG_HEIGHT - 2 * DISTANCE_BORDER - BUTTON_HEIGHT - 10); - cmdCancel->setBaseColor(gui_baseCol + 0x202020); - cmdCancel->setId("hdfCancel"); - cmdCancel->addActionListener(filesysHardfileActionListener); + wndEditFilesysHardfile = new gcn::Window("Edit"); + wndEditFilesysHardfile->setSize(DIALOG_WIDTH, DIALOG_HEIGHT); + wndEditFilesysHardfile->setPosition((GUI_WIDTH - DIALOG_WIDTH) / 2, (GUI_HEIGHT - DIALOG_HEIGHT) / 2); + wndEditFilesysHardfile->setBaseColor(gui_baseCol + 0x202020); + wndEditFilesysHardfile->setCaption("Volume settings"); + wndEditFilesysHardfile->setTitleBarHeight(TITLEBAR_HEIGHT); - lblDevice = new gcn::Label("Device Name:"); - lblDevice->setSize(100, LABEL_HEIGHT); - lblDevice->setAlignment(gcn::Graphics::RIGHT); - txtDevice = new gcn::TextField(); - txtDevice->setSize(80, TEXTFIELD_HEIGHT); - txtDevice->setId("hdfDev"); + filesysHardfileActionListener = new FilesysHardfileActionListener(); - chkReadWrite = new gcn::UaeCheckBox("Read/Write", true); - chkReadWrite->setId("hdfRW"); + cmdOK = new gcn::Button("Ok"); + cmdOK->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); + cmdOK->setPosition(DIALOG_WIDTH - DISTANCE_BORDER - 2 * BUTTON_WIDTH - DISTANCE_NEXT_X, DIALOG_HEIGHT - 2 * DISTANCE_BORDER - BUTTON_HEIGHT - 10); + cmdOK->setBaseColor(gui_baseCol + 0x202020); + cmdOK->setId("hdfOK"); + cmdOK->addActionListener(filesysHardfileActionListener); - chkAutoboot = new gcn::UaeCheckBox("Bootable", true); - chkAutoboot->setId("hdfAutoboot"); + cmdCancel = new gcn::Button("Cancel"); + cmdCancel->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); + cmdCancel->setPosition(DIALOG_WIDTH - DISTANCE_BORDER - BUTTON_WIDTH, DIALOG_HEIGHT - 2 * DISTANCE_BORDER - BUTTON_HEIGHT - 10); + cmdCancel->setBaseColor(gui_baseCol + 0x202020); + cmdCancel->setId("hdfCancel"); + cmdCancel->addActionListener(filesysHardfileActionListener); - lblBootPri = new gcn::Label("Boot priority:"); - lblBootPri->setSize(100, LABEL_HEIGHT); - lblBootPri->setAlignment(gcn::Graphics::RIGHT); - txtBootPri = new gcn::TextField(); - txtBootPri->setSize(40, TEXTFIELD_HEIGHT); - txtBootPri->setId("hdfBootPri"); + lblDevice = new gcn::Label("Device Name:"); + lblDevice->setSize(100, LABEL_HEIGHT); + lblDevice->setAlignment(gcn::Graphics::RIGHT); + txtDevice = new gcn::TextField(); + txtDevice->setSize(80, TEXTFIELD_HEIGHT); + txtDevice->setId("hdfDev"); - lblSurfaces = new gcn::Label("Surfaces:"); - lblSurfaces->setSize(100, LABEL_HEIGHT); - lblSurfaces->setAlignment(gcn::Graphics::RIGHT); - txtSurfaces = new gcn::TextField(); - txtSurfaces->setSize(40, TEXTFIELD_HEIGHT); - txtSurfaces->setId("hdfSurface"); + chkReadWrite = new gcn::UaeCheckBox("Read/Write", true); + chkReadWrite->setId("hdfRW"); - lblReserved = new gcn::Label("Reserved:"); - lblReserved->setSize(100, LABEL_HEIGHT); - lblReserved->setAlignment(gcn::Graphics::RIGHT); - txtReserved = new gcn::TextField(); - txtReserved->setSize(40, TEXTFIELD_HEIGHT); - txtReserved->setId("hdfReserved"); + chkAutoboot = new gcn::UaeCheckBox("Bootable", true); + chkAutoboot->setId("hdfAutoboot"); - lblSectors = new gcn::Label("Sectors:"); - lblSectors->setSize(100, LABEL_HEIGHT); - lblSectors->setAlignment(gcn::Graphics::RIGHT); - txtSectors = new gcn::TextField(); - txtSectors->setSize(40, TEXTFIELD_HEIGHT); - txtSectors->setId("hdfSectors"); + lblBootPri = new gcn::Label("Boot priority:"); + lblBootPri->setSize(100, LABEL_HEIGHT); + lblBootPri->setAlignment(gcn::Graphics::RIGHT); + txtBootPri = new gcn::TextField(); + txtBootPri->setSize(40, TEXTFIELD_HEIGHT); + txtBootPri->setId("hdfBootPri"); - lblBlocksize = new gcn::Label("Blocksize:"); - lblBlocksize->setSize(100, LABEL_HEIGHT); - lblBlocksize->setAlignment(gcn::Graphics::RIGHT); - txtBlocksize = new gcn::TextField(); - txtBlocksize->setSize(40, TEXTFIELD_HEIGHT); - txtBlocksize->setId("hdfBlocksize"); + lblSurfaces = new gcn::Label("Surfaces:"); + lblSurfaces->setSize(100, LABEL_HEIGHT); + lblSurfaces->setAlignment(gcn::Graphics::RIGHT); + txtSurfaces = new gcn::TextField(); + txtSurfaces->setSize(40, TEXTFIELD_HEIGHT); + txtSurfaces->setId("hdfSurface"); - lblPath = new gcn::Label("Path:"); - lblPath->setSize(100, LABEL_HEIGHT); - lblPath->setAlignment(gcn::Graphics::RIGHT); - txtPath = new gcn::TextField(); - txtPath->setSize(438, TEXTFIELD_HEIGHT); - txtPath->setEnabled(false); - cmdPath = new gcn::Button("..."); - cmdPath->setSize(SMALL_BUTTON_WIDTH, SMALL_BUTTON_HEIGHT); - cmdPath->setBaseColor(gui_baseCol + 0x202020); - cmdPath->setId("hdfPath"); - cmdPath->addActionListener(filesysHardfileActionListener); + lblReserved = new gcn::Label("Reserved:"); + lblReserved->setSize(100, LABEL_HEIGHT); + lblReserved->setAlignment(gcn::Graphics::RIGHT); + txtReserved = new gcn::TextField(); + txtReserved->setSize(40, TEXTFIELD_HEIGHT); + txtReserved->setId("hdfReserved"); - int posY = DISTANCE_BORDER; - wndEditFilesysHardfile->add(lblDevice, DISTANCE_BORDER, posY); - wndEditFilesysHardfile->add(txtDevice, DISTANCE_BORDER + lblDevice->getWidth() + 8, posY); - wndEditFilesysHardfile->add(chkReadWrite, 235, posY + 1); - wndEditFilesysHardfile->add(chkAutoboot, 360, posY + 1); - wndEditFilesysHardfile->add(lblBootPri, 460, posY); - wndEditFilesysHardfile->add(txtBootPri, 460 + lblBootPri->getWidth() + 8, posY); - posY += txtDevice->getHeight() + DISTANCE_NEXT_Y; - wndEditFilesysHardfile->add(lblPath, DISTANCE_BORDER, posY); - wndEditFilesysHardfile->add(txtPath, DISTANCE_BORDER + lblPath->getWidth() + 8, posY); - wndEditFilesysHardfile->add(cmdPath, wndEditFilesysHardfile->getWidth() - DISTANCE_BORDER - SMALL_BUTTON_WIDTH, posY); - posY += txtPath->getHeight() + DISTANCE_NEXT_Y; - wndEditFilesysHardfile->add(lblSurfaces, DISTANCE_BORDER, posY); - wndEditFilesysHardfile->add(txtSurfaces, DISTANCE_BORDER + lblSurfaces->getWidth() + 8, posY); - wndEditFilesysHardfile->add(lblReserved, 240, posY); - wndEditFilesysHardfile->add(txtReserved, 240 + lblReserved->getWidth() + 8, posY); - posY += txtSurfaces->getHeight() + DISTANCE_NEXT_Y; - wndEditFilesysHardfile->add(lblSectors, DISTANCE_BORDER, posY); - wndEditFilesysHardfile->add(txtSectors, DISTANCE_BORDER + lblSectors->getWidth() + 8, posY); - wndEditFilesysHardfile->add(lblBlocksize, 240, posY); - wndEditFilesysHardfile->add(txtBlocksize, 240 + lblBlocksize->getWidth() + 8, posY); - posY += txtSectors->getHeight() + DISTANCE_NEXT_Y; + lblSectors = new gcn::Label("Sectors:"); + lblSectors->setSize(100, LABEL_HEIGHT); + lblSectors->setAlignment(gcn::Graphics::RIGHT); + txtSectors = new gcn::TextField(); + txtSectors->setSize(40, TEXTFIELD_HEIGHT); + txtSectors->setId("hdfSectors"); - wndEditFilesysHardfile->add(cmdOK); - wndEditFilesysHardfile->add(cmdCancel); + lblBlocksize = new gcn::Label("Blocksize:"); + lblBlocksize->setSize(100, LABEL_HEIGHT); + lblBlocksize->setAlignment(gcn::Graphics::RIGHT); + txtBlocksize = new gcn::TextField(); + txtBlocksize->setSize(40, TEXTFIELD_HEIGHT); + txtBlocksize->setId("hdfBlocksize"); - gui_top->add(wndEditFilesysHardfile); - - txtDevice->requestFocus(); - wndEditFilesysHardfile->requestModalFocus(); + lblPath = new gcn::Label("Path:"); + lblPath->setSize(100, LABEL_HEIGHT); + lblPath->setAlignment(gcn::Graphics::RIGHT); + txtPath = new gcn::TextField(); + txtPath->setSize(438, TEXTFIELD_HEIGHT); + txtPath->setEnabled(false); + cmdPath = new gcn::Button("..."); + cmdPath->setSize(SMALL_BUTTON_WIDTH, SMALL_BUTTON_HEIGHT); + cmdPath->setBaseColor(gui_baseCol + 0x202020); + cmdPath->setId("hdfPath"); + cmdPath->addActionListener(filesysHardfileActionListener); + + int posY = DISTANCE_BORDER; + wndEditFilesysHardfile->add(lblDevice, DISTANCE_BORDER, posY); + wndEditFilesysHardfile->add(txtDevice, DISTANCE_BORDER + lblDevice->getWidth() + 8, posY); + wndEditFilesysHardfile->add(chkReadWrite, 235, posY + 1); + wndEditFilesysHardfile->add(chkAutoboot, 360, posY + 1); + wndEditFilesysHardfile->add(lblBootPri, 460, posY); + wndEditFilesysHardfile->add(txtBootPri, 460 + lblBootPri->getWidth() + 8, posY); + posY += txtDevice->getHeight() + DISTANCE_NEXT_Y; + wndEditFilesysHardfile->add(lblPath, DISTANCE_BORDER, posY); + wndEditFilesysHardfile->add(txtPath, DISTANCE_BORDER + lblPath->getWidth() + 8, posY); + wndEditFilesysHardfile->add(cmdPath, wndEditFilesysHardfile->getWidth() - DISTANCE_BORDER - SMALL_BUTTON_WIDTH, posY); + posY += txtPath->getHeight() + DISTANCE_NEXT_Y; + wndEditFilesysHardfile->add(lblSurfaces, DISTANCE_BORDER, posY); + wndEditFilesysHardfile->add(txtSurfaces, DISTANCE_BORDER + lblSurfaces->getWidth() + 8, posY); + wndEditFilesysHardfile->add(lblReserved, 240, posY); + wndEditFilesysHardfile->add(txtReserved, 240 + lblReserved->getWidth() + 8, posY); + posY += txtSurfaces->getHeight() + DISTANCE_NEXT_Y; + wndEditFilesysHardfile->add(lblSectors, DISTANCE_BORDER, posY); + wndEditFilesysHardfile->add(txtSectors, DISTANCE_BORDER + lblSectors->getWidth() + 8, posY); + wndEditFilesysHardfile->add(lblBlocksize, 240, posY); + wndEditFilesysHardfile->add(txtBlocksize, 240 + lblBlocksize->getWidth() + 8, posY); + posY += txtSectors->getHeight() + DISTANCE_NEXT_Y; + + wndEditFilesysHardfile->add(cmdOK); + wndEditFilesysHardfile->add(cmdCancel); + + gui_top->add(wndEditFilesysHardfile); + + txtDevice->requestFocus(); + wndEditFilesysHardfile->requestModalFocus(); } static void ExitEditFilesysHardfile(void) { - wndEditFilesysHardfile->releaseModalFocus(); - gui_top->remove(wndEditFilesysHardfile); + wndEditFilesysHardfile->releaseModalFocus(); + gui_top->remove(wndEditFilesysHardfile); - delete lblDevice; - delete txtDevice; - delete chkReadWrite; - delete chkAutoboot; - delete lblBootPri; - delete txtBootPri; - delete lblPath; - delete txtPath; - delete cmdPath; - delete lblSurfaces; - delete txtSurfaces; - delete lblReserved; - delete txtReserved; - delete lblSectors; - delete txtSectors; - delete lblBlocksize; - delete txtBlocksize; - - delete cmdOK; - delete cmdCancel; - delete filesysHardfileActionListener; - - delete wndEditFilesysHardfile; + delete lblDevice; + delete txtDevice; + delete chkReadWrite; + delete chkAutoboot; + delete lblBootPri; + delete txtBootPri; + delete lblPath; + delete txtPath; + delete cmdPath; + delete lblSurfaces; + delete txtSurfaces; + delete lblReserved; + delete txtReserved; + delete lblSectors; + delete txtSectors; + delete lblBlocksize; + delete txtBlocksize; + + delete cmdOK; + delete cmdCancel; + delete filesysHardfileActionListener; + + delete wndEditFilesysHardfile; } static void EditFilesysHardfileLoop(void) { - while(!dialogFinished) - { - SDL_Event event; - while(SDL_PollEvent(&event)) + while(!dialogFinished) { - if (event.type == SDL_KEYDOWN) - { - switch(event.key.keysym.sym) + SDL_Event event; + while(SDL_PollEvent(&event)) { - case SDLK_ESCAPE: - dialogFinished = true; - break; - - case SDLK_UP: - if(HandleNavigation(DIRECTION_UP)) - continue; // Don't change value when enter ComboBox -> don't send event to control - break; - - case SDLK_DOWN: - if(HandleNavigation(DIRECTION_DOWN)) - continue; // Don't change value when enter ComboBox -> don't send event to control - break; + if (event.type == SDL_KEYDOWN) + { + switch(event.key.keysym.sym) + { + case SDLK_ESCAPE: + dialogFinished = true; + break; - case SDLK_LEFT: - if(HandleNavigation(DIRECTION_LEFT)) - continue; // Don't change value when enter Slider -> don't send event to control - break; - - case SDLK_RIGHT: - if(HandleNavigation(DIRECTION_RIGHT)) - continue; // Don't change value when enter Slider -> don't send event to control - break; + case SDLK_UP: + if(HandleNavigation(DIRECTION_UP)) + continue; // Don't change value when enter ComboBox -> don't send event to control + break; - case SDLK_PAGEDOWN: - case SDLK_HOME: - event.key.keysym.sym = SDLK_RETURN; - gui_input->pushInput(event); // Fire key down - event.type = SDL_KEYUP; // and the key up - break; + case SDLK_DOWN: + if(HandleNavigation(DIRECTION_DOWN)) + continue; // Don't change value when enter ComboBox -> don't send event to control + break; + + case SDLK_LEFT: + if(HandleNavigation(DIRECTION_LEFT)) + continue; // Don't change value when enter Slider -> don't send event to control + break; + + case SDLK_RIGHT: + if(HandleNavigation(DIRECTION_RIGHT)) + continue; // Don't change value when enter Slider -> don't send event to control + break; + + case SDLK_PAGEDOWN: + case SDLK_HOME: + event.key.keysym.sym = SDLK_RETURN; + gui_input->pushInput(event); // Fire key down + event.type = SDL_KEYUP; // and the key up + break; + } + } + + //------------------------------------------------- + // Send event to guichan-controls + //------------------------------------------------- + gui_input->pushInput(event); } - } - //------------------------------------------------- - // Send event to guichan-controls - //------------------------------------------------- - gui_input->pushInput(event); + // Now we let the Gui object perform its logic. + uae_gui->logic(); + // Now we let the Gui object draw itself. + uae_gui->draw(); + // Finally we update the screen. + wait_for_vsync(); + SDL_Flip(gui_screen); } - - // Now we let the Gui object perform its logic. - uae_gui->logic(); - // Now we let the Gui object draw itself. - uae_gui->draw(); - // Finally we update the screen. - wait_for_vsync(); - SDL_Flip(gui_screen); - } } bool EditFilesysHardfile(int unit_no) { - struct mountedinfo mi; - struct uaedev_config_info *uci; - std::string strdevname, strroot; - char tmp[32]; - - dialogResult = false; - dialogFinished = false; + struct mountedinfo mi; + struct uaedev_config_info *uci; + std::string strdevname, strroot; + char tmp[32]; - InitEditFilesysHardfile(); + dialogResult = false; + dialogFinished = false; - if(unit_no >= 0) - { - uci = &changed_prefs.mountconfig[unit_no]; - get_filesys_unitconfig(&changed_prefs, unit_no, &mi); - strdevname.assign(uci->devname); - txtDevice->setText(strdevname); - strroot.assign(uci->rootdir); - txtPath->setText(strroot); - fileSelected = true; + InitEditFilesysHardfile(); - chkReadWrite->setSelected(!uci->readonly); - chkAutoboot->setSelected(uci->bootpri != -128); - snprintf(tmp, 32, "%d", uci->bootpri >= -127 ? uci->bootpri : -127); - txtBootPri->setText(tmp); - snprintf(tmp, 32, "%d", uci->surfaces); - txtSurfaces->setText(tmp); - snprintf(tmp, 32, "%d", uci->reserved); - txtReserved->setText(tmp); - snprintf(tmp, 32, "%d", uci->sectors); - txtSectors->setText(tmp); - snprintf(tmp, 32, "%d", uci->blocksize); - txtBlocksize->setText(tmp); - - check_rdb(strroot.c_str()); - } - else - { - CreateDefaultDevicename(tmp); - txtDevice->setText(tmp); - strroot.assign(currentDir); - txtPath->setText(strroot); - fileSelected = false; - - chkReadWrite->setSelected(true); - txtBootPri->setText("0"); - txtSurfaces->setText("1"); - txtReserved->setText("2"); - txtSectors->setText("32"); - txtBlocksize->setText("512"); - } + if(unit_no >= 0) + { + uci = &changed_prefs.mountconfig[unit_no]; + get_filesys_unitconfig(&changed_prefs, unit_no, &mi); + strdevname.assign(uci->devname); + txtDevice->setText(strdevname); + strroot.assign(uci->rootdir); + txtPath->setText(strroot); + fileSelected = true; - EditFilesysHardfileLoop(); - - if(dialogResult) - { - int bp = tweakbootpri(atoi(txtBootPri->getText().c_str()), chkAutoboot->isSelected() ? 1 : 0, 0); - extractPath((char *) txtPath->getText().c_str(), currentDir); - - uci = add_filesys_config(&changed_prefs, unit_no, (char *) txtDevice->getText().c_str(), - 0, (char *) txtPath->getText().c_str(), !chkReadWrite->isSelected(), - 0, atoi(txtSectors->getText().c_str()), atoi(txtSurfaces->getText().c_str()), - atoi(txtReserved->getText().c_str()), atoi(txtBlocksize->getText().c_str()), - bp, 0, 0, 0, 0, 0, 0); - if (uci) - hardfile_do_disk_change (uci, 1); - } + chkReadWrite->setSelected(!uci->readonly); + chkAutoboot->setSelected(uci->bootpri != -128); + snprintf(tmp, 32, "%d", uci->bootpri >= -127 ? uci->bootpri : -127); + txtBootPri->setText(tmp); + snprintf(tmp, 32, "%d", uci->surfaces); + txtSurfaces->setText(tmp); + snprintf(tmp, 32, "%d", uci->reserved); + txtReserved->setText(tmp); + snprintf(tmp, 32, "%d", uci->sectors); + txtSectors->setText(tmp); + snprintf(tmp, 32, "%d", uci->blocksize); + txtBlocksize->setText(tmp); - ExitEditFilesysHardfile(); + check_rdb(strroot.c_str()); + } + else + { + CreateDefaultDevicename(tmp); + txtDevice->setText(tmp); + strroot.assign(currentDir); + txtPath->setText(strroot); + fileSelected = false; - return dialogResult; + chkReadWrite->setSelected(true); + txtBootPri->setText("0"); + txtSurfaces->setText("1"); + txtReserved->setText("2"); + txtSectors->setText("32"); + txtBlocksize->setText("512"); + } + + EditFilesysHardfileLoop(); + + if(dialogResult) + { + int bp = tweakbootpri(atoi(txtBootPri->getText().c_str()), chkAutoboot->isSelected() ? 1 : 0, 0); + extractPath((char *) txtPath->getText().c_str(), currentDir); + + uci = add_filesys_config(&changed_prefs, unit_no, (char *) txtDevice->getText().c_str(), + 0, (char *) txtPath->getText().c_str(), !chkReadWrite->isSelected(), + 0, atoi(txtSectors->getText().c_str()), atoi(txtSurfaces->getText().c_str()), + atoi(txtReserved->getText().c_str()), atoi(txtBlocksize->getText().c_str()), + bp, 0, 0, 0, 0, 0, 0); + if (uci) + hardfile_do_disk_change (uci, 1); + } + + ExitEditFilesysHardfile(); + + return dialogResult; } diff --git a/src/od-pandora/gui/Navigation.cpp b/src/od-pandora/gui/Navigation.cpp index a0635e80..1ffd59b5 100644 --- a/src/od-pandora/gui/Navigation.cpp +++ b/src/od-pandora/gui/Navigation.cpp @@ -13,314 +13,314 @@ typedef struct { - std::string activeWidget; - std::string leftWidget; - std::string rightWidget; - std::string upWidget; - std::string downWidget; + std::string activeWidget; + std::string leftWidget; + std::string rightWidget; + std::string upWidget; + std::string downWidget; } NavigationMap; -static NavigationMap navMap[] = +static NavigationMap navMap[] = { // active move left move right move up move down // main_window - { "Paths", "SystemROMs", "SystemROMs", "Reset", "Configurations" }, - { "Configurations", "ConfigList", "ConfigList", "Paths", "CPU and FPU" }, - { "CPU and FPU", "7 Mhz", "68000", "Configurations", "Chipset" }, - { "Chipset", "Fast copper", "OCS", "CPU and FPU", "ROM" }, - { "ROM", "MainROM", "cboMainROM", "Chipset", "RAM" }, - { "RAM", "Chipmem", "Chipmem", "ROM", "Floppy drives" }, - { "Floppy drives", "cmdSel0", "DF0:", "RAM", "Hard drives / CD" }, - { "Hard drives / CD", "cmdCreateHDF", "cmdAddDir", "Floppy drives", "Display" }, - { "Display", "sldWidth", "sldWidth", "Hard drives / CD", "Sound" }, - { "Sound", "sndDisable", "sndDisable", "Display", "Input" }, - { "Input", "cboPort0", "cboPort0", "Sound", "Miscellaneous" }, - { "Miscellaneous", "StatusLine", "StatusLine", "Input", "Savestates" }, - { "Savestates", "State0", "State0", "Miscellaneous", "Reset" }, - { "Reset", "Start", "Quit", "Savestates", "Paths" }, - { "Quit", "Reset", "Restart", "Savestates", "Paths" }, - { "Restart", "Quit", "Start", "Savestates", "Paths" }, - { "Start", "Restart", "Reset", "Savestates", "Paths" }, + { "Paths", "SystemROMs", "SystemROMs", "Reset", "Configurations" }, + { "Configurations", "ConfigList", "ConfigList", "Paths", "CPU and FPU" }, + { "CPU and FPU", "7 Mhz", "68000", "Configurations", "Chipset" }, + { "Chipset", "Fast copper", "OCS", "CPU and FPU", "ROM" }, + { "ROM", "MainROM", "cboMainROM", "Chipset", "RAM" }, + { "RAM", "Chipmem", "Chipmem", "ROM", "Floppy drives" }, + { "Floppy drives", "cmdSel0", "DF0:", "RAM", "Hard drives / CD" }, + { "Hard drives / CD", "cmdCreateHDF", "cmdAddDir", "Floppy drives", "Display" }, + { "Display", "sldWidth", "sldWidth", "Hard drives / CD", "Sound" }, + { "Sound", "sndDisable", "sndDisable", "Display", "Input" }, + { "Input", "cboPort0", "cboPort0", "Sound", "Miscellaneous" }, + { "Miscellaneous", "StatusLine", "StatusLine", "Input", "Savestates" }, + { "Savestates", "State0", "State0", "Miscellaneous", "Reset" }, + { "Reset", "Start", "Quit", "Savestates", "Paths" }, + { "Quit", "Reset", "Restart", "Savestates", "Paths" }, + { "Restart", "Quit", "Start", "Savestates", "Paths" }, + { "Start", "Restart", "Reset", "Savestates", "Paths" }, // PanelPaths - { "SystemROMs", "Paths", "Paths", "RescanROMs", "ConfigPath" }, - { "ConfigPath", "Paths", "Paths", "SystemROMs", "RescanROMs" }, - { "RescanROMs", "Paths", "Paths", "ConfigPath", "SystemROMs" }, + { "SystemROMs", "Paths", "Paths", "RescanROMs", "ConfigPath" }, + { "ConfigPath", "Paths", "Paths", "SystemROMs", "RescanROMs" }, + { "RescanROMs", "Paths", "Paths", "ConfigPath", "SystemROMs" }, // PanelConfig - { "ConfigList", "Configurations", "ConfigName", "", "" }, - { "ConfigName", "Configurations", "Configurations", "ConfigList", "ConfigDesc" }, - { "ConfigDesc", "Configurations", "Configurations", "ConfigName", "ConfigLoad" }, - { "ConfigLoad", "Configurations", "ConfigSave", "ConfigDesc", "ConfigList" }, - { "ConfigSave", "ConfigLoad", "CfgDelete", "ConfigDesc", "ConfigList" }, - { "CfgDelete", "ConfigSave", "Configurations", "ConfigDesc", "ConfigList" }, + { "ConfigList", "Configurations", "ConfigName", "", "" }, + { "ConfigName", "Configurations", "Configurations", "ConfigList", "ConfigDesc" }, + { "ConfigDesc", "Configurations", "Configurations", "ConfigName", "ConfigLoad" }, + { "ConfigLoad", "Configurations", "ConfigSave", "ConfigDesc", "ConfigList" }, + { "ConfigSave", "ConfigLoad", "CfgDelete", "ConfigDesc", "ConfigList" }, + { "CfgDelete", "ConfigSave", "Configurations", "ConfigDesc", "ConfigList" }, // active move left move right move up move down // PanelCPU - { "68000", "CPU and FPU", "FPUnone", "JIT", "68010" }, - { "68010", "CPU and FPU", "68881", "68000", "68020" }, - { "68020", "CPU and FPU", "68882", "68010", "68030" }, - { "68030", "CPU and FPU", "CPU internal", "68020", "68040" }, - { "68040", "CPU and FPU", "CPU internal", "68030", "CPU24Bit" }, - { "CPU24Bit", "CPU and FPU", "CPU internal", "68040", "CPUComp" }, - { "CPUComp", "CPU and FPU", "CPU internal", "CPU24Bit", "JIT" }, - { "JIT", "CPU and FPU", "CPU internal", "CPUComp", "68000" }, - { "FPUnone", "68000", "7 Mhz", "CPU internal", "68881" }, - { "68881", "68010", "14 Mhz", "FPUnone", "68882" }, - { "68882", "68020", "25 Mhz", "68881", "CPU internal" }, - { "CPU internal", "68030", "Fastest", "68882", "FPUnone" }, - { "7 Mhz", "FPUnone", "CPU and FPU", "Fastest", "14 Mhz" }, - { "14 Mhz", "68881", "CPU and FPU", "7 Mhz", "25 Mhz" }, - { "25 Mhz", "68882", "CPU and FPU", "14 Mhz", "Fastest" }, - { "Fastest", "CPU internal", "CPU and FPU", "25 Mhz", "7 Mhz" }, + { "68000", "CPU and FPU", "FPUnone", "JIT", "68010" }, + { "68010", "CPU and FPU", "68881", "68000", "68020" }, + { "68020", "CPU and FPU", "68882", "68010", "68030" }, + { "68030", "CPU and FPU", "CPU internal", "68020", "68040" }, + { "68040", "CPU and FPU", "CPU internal", "68030", "CPU24Bit" }, + { "CPU24Bit", "CPU and FPU", "CPU internal", "68040", "CPUComp" }, + { "CPUComp", "CPU and FPU", "CPU internal", "CPU24Bit", "JIT" }, + { "JIT", "CPU and FPU", "CPU internal", "CPUComp", "68000" }, + { "FPUnone", "68000", "7 Mhz", "CPU internal", "68881" }, + { "68881", "68010", "14 Mhz", "FPUnone", "68882" }, + { "68882", "68020", "25 Mhz", "68881", "CPU internal" }, + { "CPU internal", "68030", "Fastest", "68882", "FPUnone" }, + { "7 Mhz", "FPUnone", "CPU and FPU", "Fastest", "14 Mhz" }, + { "14 Mhz", "68881", "CPU and FPU", "7 Mhz", "25 Mhz" }, + { "25 Mhz", "68882", "CPU and FPU", "14 Mhz", "Fastest" }, + { "Fastest", "CPU internal", "CPU and FPU", "25 Mhz", "7 Mhz" }, // PanelChipset - { "OCS", "Chipset", "BlitNormal", "CollFull", "ECS Agnus" }, - { "ECS Agnus", "Chipset", "Immediate", "OCS", "Full ECS" }, - { "Full ECS", "Chipset", "BlitWait", "ECS Agnus", "AGA" }, - { "AGA", "Chipset", "Chipset", "Full ECS", "NTSC" }, - { "NTSC", "Chipset", "Chipset", "AGA", "CollNone" }, - { "BlitNormal", "OCS", "Fast copper", "CollFull", "Immediate" }, - { "Immediate", "ECS Agnus", "Fast copper", "BlitNormal", "BlitWait" }, - { "BlitWait", "Full ECS", "Fast copper", "Immediate", "CollNone" }, - { "Fast copper", "BlitNormal", "Chipset", "CollFull", "CollNone" }, - { "CollNone", "Chipset", "Chipset", "NTSC", "Sprites only" }, - { "Sprites only", "Chipset", "Chipset", "CollNone", "CollPlay" }, - { "CollPlay", "Chipset", "Chipset", "Sprites only", "CollFull" }, - { "CollFull", "Chipset", "Chipset", "CollPlay", "OCS" }, + { "OCS", "Chipset", "BlitNormal", "CollFull", "ECS Agnus" }, + { "ECS Agnus", "Chipset", "Immediate", "OCS", "Full ECS" }, + { "Full ECS", "Chipset", "BlitWait", "ECS Agnus", "AGA" }, + { "AGA", "Chipset", "Chipset", "Full ECS", "NTSC" }, + { "NTSC", "Chipset", "Chipset", "AGA", "CollNone" }, + { "BlitNormal", "OCS", "Fast copper", "CollFull", "Immediate" }, + { "Immediate", "ECS Agnus", "Fast copper", "BlitNormal", "BlitWait" }, + { "BlitWait", "Full ECS", "Fast copper", "Immediate", "CollNone" }, + { "Fast copper", "BlitNormal", "Chipset", "CollFull", "CollNone" }, + { "CollNone", "Chipset", "Chipset", "NTSC", "Sprites only" }, + { "Sprites only", "Chipset", "Chipset", "CollNone", "CollPlay" }, + { "CollPlay", "Chipset", "Chipset", "Sprites only", "CollFull" }, + { "CollFull", "Chipset", "Chipset", "CollPlay", "OCS" }, // active move left move right move up move down // PanelROM - { "cboMainROM", "ROM", "MainROM", "cboExtROM", "cboExtROM" }, - { "MainROM", "cboMainROM", "ROM", "ExtROM", "ExtROM" }, - { "cboExtROM", "ROM", "ExtROM", "cboMainROM", "cboMainROM" }, - { "ExtROM", "cboExtROM", "ROM", "MainROM", "MainROM" }, + { "cboMainROM", "ROM", "MainROM", "cboExtROM", "cboExtROM" }, + { "MainROM", "cboMainROM", "ROM", "ExtROM", "ExtROM" }, + { "cboExtROM", "ROM", "ExtROM", "cboMainROM", "cboMainROM" }, + { "ExtROM", "cboExtROM", "ROM", "MainROM", "MainROM" }, //PanelRAM - { "Chipmem", "", "", "RAM", "Slowmem" }, - { "Slowmem", "", "", "Chipmem", "Fastmem" }, - { "Fastmem", "", "", "Slowmem", "Z3mem" }, - { "Z3mem", "", "", "Fastmem", "Gfxmem" }, - { "Gfxmem", "", "", "Z3mem", "RAM" }, + { "Chipmem", "", "", "RAM", "Slowmem" }, + { "Slowmem", "", "", "Chipmem", "Fastmem" }, + { "Fastmem", "", "", "Slowmem", "Z3mem" }, + { "Z3mem", "", "", "Fastmem", "Gfxmem" }, + { "Gfxmem", "", "", "Z3mem", "RAM" }, //PanelFloppy - { "DF0:", "Floppy drives", "cboType0", "SaveForDisk", "cboDisk0" }, - { "cboType0", "DF0:", "cmdEject0", "SaveForDisk", "cboDisk0" }, - { "cmdEject0", "cboType0", "cmdSel0", "CreateHD", "cboDisk0" }, - { "cmdSel0", "cmdEject0", "Floppy drives", "CreateHD", "cboDisk0" }, - { "cboDisk0", "Floppy drives", "Floppy drives", "DF0:", "LoadDiskCfg" }, - { "LoadDiskCfg", "Floppy drives", "Floppy drives", "cboDisk0", "DF1:" }, - { "DF1:", "Floppy drives", "cboType1", "LoadDiskCfg", "cboDisk1" }, - { "cboType1", "DF1:", "cmdEject1", "LoadDiskCfg", "cboDisk1" }, - { "cmdEject1", "cboType1", "cmdSel1", "LoadDiskCfg", "cboDisk1" }, - { "cmdSel1", "cmdEject1", "Floppy drives", "LoadDiskCfg", "cboDisk1" }, - { "cboDisk1", "Floppy drives", "Floppy drives", "DF1:", "DF2:" }, - { "DF2:", "Floppy drives", "cboType2", "cboDisk1", "cboDisk2" }, - { "cboType2", "DF2:", "cmdEject2", "cboDisk1", "cboDisk2" }, - { "cmdEject2", "cboType2", "cmdSel2", "cboDisk1", "cboDisk2" }, - { "cmdSel2", "cmdEject2", "Floppy drives", "cboDisk1", "cboDisk2" }, - { "cboDisk2", "Floppy drives", "Floppy drives", "DF2:", "DF3:" }, - { "DF3:", "Floppy drives", "cboType3", "cboDisk2", "cboDisk3" }, - { "cboType3", "DF3:", "cmdEject3", "cboDisk2", "cboDisk3" }, - { "cmdEject3", "cboType3", "cmdSel3", "cboDisk2", "cboDisk3" }, - { "cmdSel3", "cmdEject3", "Floppy drives", "cboDisk2", "cboDisk3" }, - { "cboDisk3", "Floppy drives", "Floppy drives", "DF3:", "DriveSpeed" }, - { "DriveSpeed", "", "", "cboDisk3", "CreateDD" }, - { "SaveForDisk", "Floppy drives", "CreateDD", "DriveSpeed", "DF0:" }, - { "CreateDD", "SaveForDisk", "CreateHD", "DriveSpeed", "cboType0" }, - { "CreateHD", "CreateDD", "Floppy drives", "DriveSpeed", "cmdEject0" }, + { "DF0:", "Floppy drives", "cboType0", "SaveForDisk", "cboDisk0" }, + { "cboType0", "DF0:", "cmdEject0", "SaveForDisk", "cboDisk0" }, + { "cmdEject0", "cboType0", "cmdSel0", "CreateHD", "cboDisk0" }, + { "cmdSel0", "cmdEject0", "Floppy drives", "CreateHD", "cboDisk0" }, + { "cboDisk0", "Floppy drives", "Floppy drives", "DF0:", "LoadDiskCfg" }, + { "LoadDiskCfg", "Floppy drives", "Floppy drives", "cboDisk0", "DF1:" }, + { "DF1:", "Floppy drives", "cboType1", "LoadDiskCfg", "cboDisk1" }, + { "cboType1", "DF1:", "cmdEject1", "LoadDiskCfg", "cboDisk1" }, + { "cmdEject1", "cboType1", "cmdSel1", "LoadDiskCfg", "cboDisk1" }, + { "cmdSel1", "cmdEject1", "Floppy drives", "LoadDiskCfg", "cboDisk1" }, + { "cboDisk1", "Floppy drives", "Floppy drives", "DF1:", "DF2:" }, + { "DF2:", "Floppy drives", "cboType2", "cboDisk1", "cboDisk2" }, + { "cboType2", "DF2:", "cmdEject2", "cboDisk1", "cboDisk2" }, + { "cmdEject2", "cboType2", "cmdSel2", "cboDisk1", "cboDisk2" }, + { "cmdSel2", "cmdEject2", "Floppy drives", "cboDisk1", "cboDisk2" }, + { "cboDisk2", "Floppy drives", "Floppy drives", "DF2:", "DF3:" }, + { "DF3:", "Floppy drives", "cboType3", "cboDisk2", "cboDisk3" }, + { "cboType3", "DF3:", "cmdEject3", "cboDisk2", "cboDisk3" }, + { "cmdEject3", "cboType3", "cmdSel3", "cboDisk2", "cboDisk3" }, + { "cmdSel3", "cmdEject3", "Floppy drives", "cboDisk2", "cboDisk3" }, + { "cboDisk3", "Floppy drives", "Floppy drives", "DF3:", "DriveSpeed" }, + { "DriveSpeed", "", "", "cboDisk3", "CreateDD" }, + { "SaveForDisk", "Floppy drives", "CreateDD", "DriveSpeed", "DF0:" }, + { "CreateDD", "SaveForDisk", "CreateHD", "DriveSpeed", "cboType0" }, + { "CreateHD", "CreateDD", "Floppy drives", "DriveSpeed", "cmdEject0" }, // active move left move right move up move down // PanelHD - { "cmdProp0", "Hard drives / CD", "cmdDel0", "CDVol", "cmdProp1" }, - { "cmdDel0", "cmdProp0", "Hard drives / CD", "CDVol", "cmdDel1" }, - { "cmdProp1", "Hard drives / CD", "cmdDel1", "cmdProp0", "cmdProp2" }, - { "cmdDel1", "cmdProp1", "Hard drives / CD", "cmdDel0", "cmdDel2" }, - { "cmdProp2", "Hard drives / CD", "cmdDel2", "cmdProp1", "cmdProp3" }, - { "cmdDel2", "cmdProp2", "Hard drives / CD", "cmdDel1", "cmdDel3" }, - { "cmdProp3", "Hard drives / CD", "cmdDel3", "cmdProp2", "cmdProp4" }, - { "cmdDel3", "cmdProp3", "Hard drives / CD", "cmdDel2", "cmdDel4" }, - { "cmdProp4", "Hard drives / CD", "cmdDel4", "cmdProp3", "cmdAddDir" }, - { "cmdDel4", "cmdProp4", "Hard drives / CD", "cmdDel3", "cmdAddHDF" }, - { "cmdAddDir", "Hard drives / CD", "cmdAddHDF", "cmdProp4", "CD drive" }, - { "cmdAddHDF", "cmdAddDir", "cmdCreateHDF", "cmdDel4", "CD drive" }, - { "cmdCreateHDF", "cmdAddHDF", "Hard drives / CD", "cmdDel4", "CD drive" }, - { "CD drive", "Hard drives / CD", "cdEject", "cmdAddDir", "cboCD" }, - { "cdEject", "CD drive", "CDSelect", "cmdCreateHDF", "cboCD" }, - { "CDSelect", "cdEject", "Hard drives / CD", "cmdCreateHDF", "cboCD" }, - { "cboCD", "Hard drives / CD", "Hard drives / CD", "CD drive", "CDVol" }, - { "CDVol", "", "", "cboCD", "cmdProp0" }, + { "cmdProp0", "Hard drives / CD", "cmdDel0", "CDVol", "cmdProp1" }, + { "cmdDel0", "cmdProp0", "Hard drives / CD", "CDVol", "cmdDel1" }, + { "cmdProp1", "Hard drives / CD", "cmdDel1", "cmdProp0", "cmdProp2" }, + { "cmdDel1", "cmdProp1", "Hard drives / CD", "cmdDel0", "cmdDel2" }, + { "cmdProp2", "Hard drives / CD", "cmdDel2", "cmdProp1", "cmdProp3" }, + { "cmdDel2", "cmdProp2", "Hard drives / CD", "cmdDel1", "cmdDel3" }, + { "cmdProp3", "Hard drives / CD", "cmdDel3", "cmdProp2", "cmdProp4" }, + { "cmdDel3", "cmdProp3", "Hard drives / CD", "cmdDel2", "cmdDel4" }, + { "cmdProp4", "Hard drives / CD", "cmdDel4", "cmdProp3", "cmdAddDir" }, + { "cmdDel4", "cmdProp4", "Hard drives / CD", "cmdDel3", "cmdAddHDF" }, + { "cmdAddDir", "Hard drives / CD", "cmdAddHDF", "cmdProp4", "CD drive" }, + { "cmdAddHDF", "cmdAddDir", "cmdCreateHDF", "cmdDel4", "CD drive" }, + { "cmdCreateHDF", "cmdAddHDF", "Hard drives / CD", "cmdDel4", "CD drive" }, + { "CD drive", "Hard drives / CD", "cdEject", "cmdAddDir", "cboCD" }, + { "cdEject", "CD drive", "CDSelect", "cmdCreateHDF", "cboCD" }, + { "CDSelect", "cdEject", "Hard drives / CD", "cmdCreateHDF", "cboCD" }, + { "cboCD", "Hard drives / CD", "Hard drives / CD", "CD drive", "CDVol" }, + { "CDVol", "", "", "cboCD", "cmdProp0" }, #ifndef RASPBERRY // PanelDisplay - { "sldWidth", "Display", "", "Frameskip", "sldHeight" }, - { "sldHeight", "Display", "", "sldWidth", "sldVertPos" }, - { "sldVertPos", "Display", "", "sldHeight", "Frameskip" }, - { "Frameskip", "Display", "Display", "sldVertPos", "sldWidth" }, + { "sldWidth", "Display", "", "Frameskip", "sldHeight" }, + { "sldHeight", "Display", "", "sldWidth", "sldVertPos" }, + { "sldVertPos", "Display", "", "sldHeight", "Frameskip" }, + { "Frameskip", "Display", "Display", "sldVertPos", "sldWidth" }, #else // PanelDisplay - { "sldWidth", "Display", "", "Frameskip", "sldHeight" }, - { "sldHeight", "Display", "", "sldWidth", "sldVertPos" }, - { "sldVertPos", "Display", "", "sldHeight", "FSRatio" }, - { "FSRatio", "Display", "", "sldVertPos", "4by3Ratio" }, - { "4by3Ratio", "Display", "Display", "FSRatio", "Frameskip" }, - { "Frameskip", "Display", "Display", "4by3Ratio", "sldWidth" }, + { "sldWidth", "Display", "", "Frameskip", "sldHeight" }, + { "sldHeight", "Display", "", "sldWidth", "sldVertPos" }, + { "sldVertPos", "Display", "", "sldHeight", "FSRatio" }, + { "FSRatio", "Display", "", "sldVertPos", "4by3Ratio" }, + { "4by3Ratio", "Display", "Display", "FSRatio", "Frameskip" }, + { "Frameskip", "Display", "Display", "4by3Ratio", "sldWidth" }, #endif //PanelSound - { "sndDisable", "Sound", "Mono", "sldStereoDelay", "sndDisEmu" }, - { "sndDisEmu", "Sound", "Stereo", "sndDisable", "sndEmulate" }, - { "sndEmulate", "Sound", "Stereo", "sndDisEmu", "sndEmuBest" }, - { "sndEmuBest", "Sound", "Stereo", "sndEmulate", "cboFrequency" }, - { "Mono", "sndDisable", "Sound", "sldStereoDelay", "Stereo" }, - { "Stereo", "sndDisEmu", "Sound", "Mono", "cboFrequency" }, - { "cboFrequency", "Sound", "Sound", "sndEmuBest", "cboInterpol" }, - { "cboInterpol", "Sound", "Sound", "cboFrequency", "cboFilter" }, - { "cboFilter", "Sound", "Sound", "cboInterpol", "sldSeparation" }, - { "sldSeparation", "", "", "cboFilter", "sldStereoDelay" }, - { "sldStereoDelay", "", "", "sldSeparation", "sndDisable" }, + { "sndDisable", "Sound", "Mono", "sldStereoDelay", "sndDisEmu" }, + { "sndDisEmu", "Sound", "Stereo", "sndDisable", "sndEmulate" }, + { "sndEmulate", "Sound", "Stereo", "sndDisEmu", "sndEmuBest" }, + { "sndEmuBest", "Sound", "Stereo", "sndEmulate", "cboFrequency" }, + { "Mono", "sndDisable", "Sound", "sldStereoDelay", "Stereo" }, + { "Stereo", "sndDisEmu", "Sound", "Mono", "cboFrequency" }, + { "cboFrequency", "Sound", "Sound", "sndEmuBest", "cboInterpol" }, + { "cboInterpol", "Sound", "Sound", "cboFrequency", "cboFilter" }, + { "cboFilter", "Sound", "Sound", "cboInterpol", "sldSeparation" }, + { "sldSeparation", "", "", "cboFilter", "sldStereoDelay" }, + { "sldStereoDelay", "", "", "sldSeparation", "sndDisable" }, // active move left move right move up move down // PanelInput - { "cboPort0", "Input", "Input", "cboLeft", "cboPort1" }, - { "cboPort1", "Input", "cboAutofire", "cboPort0", "MouseSpeed" }, - { "cboAutofire", "cboPort1", "Input", "cboPort0", "cboTapDelay" }, - { "MouseSpeed", "", "", "cboPort1", "MouseHack" }, - { "MouseHack", "Input", "cboTapDelay", "MouseSpeed", "CustomCtrl" }, - { "cboTapDelay", "MouseHack", "Input", "cboAutofire", "cboB" }, - { "CustomCtrl", "Input", "Input", "MouseHack", "cboA" }, - { "cboA", "Input", "cboB", "CustomCtrl", "cboX" }, - { "cboB", "cboA", "Input", "cboTapDelay", "cboY" }, - { "cboX", "Input", "cboY", "cboA", "cboL" }, - { "cboY", "cboX", "Input", "cboB", "cboR" }, - { "cboL", "Input", "cboR", "cboX", "cboUp" }, - { "cboR", "cboL", "Input", "cboY", "cboDown" }, - { "cboUp", "Input", "cboDown", "cboL", "cboLeft" }, - { "cboDown", "cboUp", "Input", "cboR", "cboRight" }, - { "cboLeft", "Input", "cboRight", "cboUp", "cboPort0" }, - { "cboRight", "cboLeft", "Input", "cboDown", "cboPort0" }, + { "cboPort0", "Input", "Input", "cboLeft", "cboPort1" }, + { "cboPort1", "Input", "cboAutofire", "cboPort0", "MouseSpeed" }, + { "cboAutofire", "cboPort1", "Input", "cboPort0", "cboTapDelay" }, + { "MouseSpeed", "", "", "cboPort1", "MouseHack" }, + { "MouseHack", "Input", "cboTapDelay", "MouseSpeed", "CustomCtrl" }, + { "cboTapDelay", "MouseHack", "Input", "cboAutofire", "cboB" }, + { "CustomCtrl", "Input", "Input", "MouseHack", "cboA" }, + { "cboA", "Input", "cboB", "CustomCtrl", "cboX" }, + { "cboB", "cboA", "Input", "cboTapDelay", "cboY" }, + { "cboX", "Input", "cboY", "cboA", "cboL" }, + { "cboY", "cboX", "Input", "cboB", "cboR" }, + { "cboL", "Input", "cboR", "cboX", "cboUp" }, + { "cboR", "cboL", "Input", "cboY", "cboDown" }, + { "cboUp", "Input", "cboDown", "cboL", "cboLeft" }, + { "cboDown", "cboUp", "Input", "cboR", "cboRight" }, + { "cboLeft", "Input", "cboRight", "cboUp", "cboPort0" }, + { "cboRight", "cboLeft", "Input", "cboDown", "cboPort0" }, // PanelMisc - { "StatusLine", "Miscellaneous", "Miscellaneous", "BSDSocket", "HideIdle" }, - { "HideIdle", "Miscellaneous", "Miscellaneous", "StatusLine", "ShowGUI" }, - { "ShowGUI", "Miscellaneous", "Miscellaneous", "HideIdle", "BSDSocket" }, - { "BSDSocket", "Miscellaneous", "Miscellaneous", "ShowGUI", "Status Line" }, - + { "StatusLine", "Miscellaneous", "Miscellaneous", "BSDSocket", "HideIdle" }, + { "HideIdle", "Miscellaneous", "Miscellaneous", "StatusLine", "ShowGUI" }, + { "ShowGUI", "Miscellaneous", "Miscellaneous", "HideIdle", "BSDSocket" }, + { "BSDSocket", "Miscellaneous", "Miscellaneous", "ShowGUI", "Status Line" }, + // PanelSavestate - { "State0", "Savestates", "Savestates", "LoadState", "State1" }, - { "State1", "Savestates", "Savestates", "State0", "State2" }, - { "State2", "Savestates", "Savestates", "State1", "State3" }, - { "State3", "Savestates", "Savestates", "State2", "LoadState" }, - { "LoadState", "Savestates", "SaveState", "State3", "State0" }, - { "SaveState", "LoadState", "Savestates", "State3", "State0" }, + { "State0", "Savestates", "Savestates", "LoadState", "State1" }, + { "State1", "Savestates", "Savestates", "State0", "State2" }, + { "State2", "Savestates", "Savestates", "State1", "State3" }, + { "State3", "Savestates", "Savestates", "State2", "LoadState" }, + { "LoadState", "Savestates", "SaveState", "State3", "State0" }, + { "SaveState", "LoadState", "Savestates", "State3", "State0" }, // active move left move right move up move down // EditFilesysVirtual - { "virtDev", "virtRW", "virtRW", "virtOK", "virtVol" }, - { "virtVol", "virtBootpri", "virtAutoboot", "virtDev", "virtPath" }, - { "virtPath", "", "", "virtBootpri", "virtCancel" }, - { "virtRW", "virtDev", "virtDev", "virtOK", "virtAutoboot" }, - { "virtAutoboot", "virtVol", "virtBootpri", "virtRW", "virtPath" }, - { "virtBootpri", "virtAutoboot", "virtVol", "virtRW", "virtPath" }, - { "virtOK", "virtCancel", "virtCancel", "virtPath", "virtRW" }, - { "virtCancel", "virtOK", "virtOK", "virtPath", "virtRW" }, + { "virtDev", "virtRW", "virtRW", "virtOK", "virtVol" }, + { "virtVol", "virtBootpri", "virtAutoboot", "virtDev", "virtPath" }, + { "virtPath", "", "", "virtBootpri", "virtCancel" }, + { "virtRW", "virtDev", "virtDev", "virtOK", "virtAutoboot" }, + { "virtAutoboot", "virtVol", "virtBootpri", "virtRW", "virtPath" }, + { "virtBootpri", "virtAutoboot", "virtVol", "virtRW", "virtPath" }, + { "virtOK", "virtCancel", "virtCancel", "virtPath", "virtRW" }, + { "virtCancel", "virtOK", "virtOK", "virtPath", "virtRW" }, // EditFilesysHardfile - { "hdfDev", "hdfBootPri", "hdfRW", "hdfOK", "hdfPath" }, - { "hdfRW", "hdfDev", "hdfAutoboot", "hdfOK", "hdfPath" }, - { "hdfAutoboot", "hdfRW", "hdfBootPri", "hdfOK", "hdfPath" }, - { "hdfBootPri", "hdfAutoboot", "hdfDev", "hdfCancel", "hdfPath" }, - { "hdfSurface", "hdfReserved", "hdfReserved", "hdfPath", "hdfSectors" }, - { "hdfReserved", "hdfSurface", "hdfSurface", "hdfPath", "hdfBlocksize" }, - { "hdfSectors", "hdfBlocksize", "hdfBlocksize", "hdfSurface", "hdfOK" }, - { "hdfBlocksize", "hdfSectors", "hdfSectors", "hdfReserved", "hdfOK" }, - { "hdfPath", "", "", "hdfBootPri", "hdfReserved" }, - { "hdfOK", "hdfCancel", "hdfCancel", "hdfBlocksize", "hdfBootPri" }, - { "hdfCancel", "hdfOK", "hdfOK", "hdfBlocksize", "hdfBootPri" }, + { "hdfDev", "hdfBootPri", "hdfRW", "hdfOK", "hdfPath" }, + { "hdfRW", "hdfDev", "hdfAutoboot", "hdfOK", "hdfPath" }, + { "hdfAutoboot", "hdfRW", "hdfBootPri", "hdfOK", "hdfPath" }, + { "hdfBootPri", "hdfAutoboot", "hdfDev", "hdfCancel", "hdfPath" }, + { "hdfSurface", "hdfReserved", "hdfReserved", "hdfPath", "hdfSectors" }, + { "hdfReserved", "hdfSurface", "hdfSurface", "hdfPath", "hdfBlocksize" }, + { "hdfSectors", "hdfBlocksize", "hdfBlocksize", "hdfSurface", "hdfOK" }, + { "hdfBlocksize", "hdfSectors", "hdfSectors", "hdfReserved", "hdfOK" }, + { "hdfPath", "", "", "hdfBootPri", "hdfReserved" }, + { "hdfOK", "hdfCancel", "hdfCancel", "hdfBlocksize", "hdfBootPri" }, + { "hdfCancel", "hdfOK", "hdfOK", "hdfBlocksize", "hdfBootPri" }, // CreateFilesysHardfile - { "createHdfDev", "createHdfBootPri", "createHdfAutoboot", "createHdfOK", "createHdfPath" }, - { "createHdfAutoboot", "createHdfDev", "createHdfBootPri", "createHdfOK", "createHdfPath" }, - { "createHdfBootPri", "createHdfAutoboot", "createHdfDev", "createHdfOK", "createHdfPath" }, - { "createHdfSize", "", "", "createHdfPath", "createHdfOK" }, - { "createHdfPath", "", "", "createHdfBootPri", "createHdfSize" }, - { "createHdfOK", "createHdfCancel", "createHdfCancel", "createHdfSize", "createHdfBootPri" }, - { "createHdfCancel", "createHdfOK", "createHdfOK", "createHdfSize", "createHdfBootPri" }, + { "createHdfDev", "createHdfBootPri", "createHdfAutoboot", "createHdfOK", "createHdfPath" }, + { "createHdfAutoboot", "createHdfDev", "createHdfBootPri", "createHdfOK", "createHdfPath" }, + { "createHdfBootPri", "createHdfAutoboot", "createHdfDev", "createHdfOK", "createHdfPath" }, + { "createHdfSize", "", "", "createHdfPath", "createHdfOK" }, + { "createHdfPath", "", "", "createHdfBootPri", "createHdfSize" }, + { "createHdfOK", "createHdfCancel", "createHdfCancel", "createHdfSize", "createHdfBootPri" }, + { "createHdfCancel", "createHdfOK", "createHdfOK", "createHdfSize", "createHdfBootPri" }, - { "END", "", "", "", "" } + { "END", "", "", "", "" } }; bool HandleNavigation(int direction) { - gcn::FocusHandler* focusHdl = gui_top->_getFocusHandler(); - gcn::Widget* focusTarget = NULL; - - if(focusHdl != NULL) - { - gcn::Widget* activeWidget = focusHdl->getFocused(); - - if(activeWidget != NULL && activeWidget->getId().length() > 0) - { - std::string activeName = activeWidget->getId(); - bool bFoundEnabled = false; - - while(!bFoundEnabled) - { - std::string searchFor = ""; - - for(int i=0; navMap[i].activeWidget != "END"; ++i) - { - if(navMap[i].activeWidget == activeName) - { - switch(direction) - { - case DIRECTION_LEFT: - searchFor = navMap[i].leftWidget; - break; - case DIRECTION_RIGHT: - searchFor = navMap[i].rightWidget; - break; - case DIRECTION_UP: - searchFor = navMap[i].upWidget; - break; - case DIRECTION_DOWN: - searchFor = navMap[i].downWidget; - break; - } - if(searchFor.length() > 0) - { - focusTarget = gui_top->findWidgetById(searchFor); - if(focusTarget != NULL) - { - if(focusTarget->isEnabled()) - bFoundEnabled = true; - else - activeName = searchFor; - } - } - break; - } - } - if(searchFor == "") - bFoundEnabled = true; // No entry to navigate to -> exit loop - } - - if(focusTarget != NULL) - { - if(!activeWidget->getId().substr(0, 3).compare("cbo")) - { - gcn::UaeDropDown *dropdown = (gcn::UaeDropDown *) activeWidget; - if(dropdown->isDroppedDown() && (direction == DIRECTION_UP || direction == DIRECTION_DOWN)) - focusTarget = NULL; // Up/down navigates in list if dropped down - } - } - } - } + gcn::FocusHandler* focusHdl = gui_top->_getFocusHandler(); + gcn::Widget* focusTarget = NULL; - if(focusTarget != NULL) - focusTarget->requestFocus(); - return (focusTarget != NULL); + if(focusHdl != NULL) + { + gcn::Widget* activeWidget = focusHdl->getFocused(); + + if(activeWidget != NULL && activeWidget->getId().length() > 0) + { + std::string activeName = activeWidget->getId(); + bool bFoundEnabled = false; + + while(!bFoundEnabled) + { + std::string searchFor = ""; + + for(int i=0; navMap[i].activeWidget != "END"; ++i) + { + if(navMap[i].activeWidget == activeName) + { + switch(direction) + { + case DIRECTION_LEFT: + searchFor = navMap[i].leftWidget; + break; + case DIRECTION_RIGHT: + searchFor = navMap[i].rightWidget; + break; + case DIRECTION_UP: + searchFor = navMap[i].upWidget; + break; + case DIRECTION_DOWN: + searchFor = navMap[i].downWidget; + break; + } + if(searchFor.length() > 0) + { + focusTarget = gui_top->findWidgetById(searchFor); + if(focusTarget != NULL) + { + if(focusTarget->isEnabled()) + bFoundEnabled = true; + else + activeName = searchFor; + } + } + break; + } + } + if(searchFor == "") + bFoundEnabled = true; // No entry to navigate to -> exit loop + } + + if(focusTarget != NULL) + { + if(!activeWidget->getId().substr(0, 3).compare("cbo")) + { + gcn::UaeDropDown *dropdown = (gcn::UaeDropDown *) activeWidget; + if(dropdown->isDroppedDown() && (direction == DIRECTION_UP || direction == DIRECTION_DOWN)) + focusTarget = NULL; // Up/down navigates in list if dropped down + } + } + } + } + + if(focusTarget != NULL) + focusTarget->requestFocus(); + return (focusTarget != NULL); } diff --git a/src/od-pandora/gui/PanelCPU.cpp b/src/od-pandora/gui/PanelCPU.cpp index 98c35189..a408a8ca 100644 --- a/src/od-pandora/gui/PanelCPU.cpp +++ b/src/od-pandora/gui/PanelCPU.cpp @@ -38,50 +38,50 @@ static gcn::UaeRadioButton* optFastest; class CPUButtonActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if (actionEvent.getSource() == optCPU68000) - { - changed_prefs.cpu_model = 68000; - changed_prefs.fpu_model = 0; - changed_prefs.address_space_24 = true; - changed_prefs.z3fastmem_size = 0; - changed_prefs.rtgmem_size = 0; - } - else if (actionEvent.getSource() == optCPU68010) - { - changed_prefs.cpu_model = 68010; - changed_prefs.fpu_model = 0; - changed_prefs.address_space_24 = true; - changed_prefs.z3fastmem_size = 0; - changed_prefs.rtgmem_size = 0; - changed_prefs.cpu_compatible = 0; - } - else if (actionEvent.getSource() == optCPU68020) - { - changed_prefs.cpu_model = 68020; - if(changed_prefs.fpu_model == 68040) - changed_prefs.fpu_model = 68881; - changed_prefs.cpu_compatible = 0; - } - else if (actionEvent.getSource() == optCPU68030) - { - changed_prefs.cpu_model = 68030; - if(changed_prefs.fpu_model == 68040) - changed_prefs.fpu_model = 68881; - changed_prefs.address_space_24 = false; - changed_prefs.cpu_compatible = 0; - } - else if (actionEvent.getSource() == optCPU68040) - { - changed_prefs.cpu_model = 68040; - changed_prefs.fpu_model = 68040; - changed_prefs.address_space_24 = false; - changed_prefs.cpu_compatible = 0; - } - RefreshPanelCPU(); - RefreshPanelRAM(); + if (actionEvent.getSource() == optCPU68000) + { + changed_prefs.cpu_model = 68000; + changed_prefs.fpu_model = 0; + changed_prefs.address_space_24 = true; + changed_prefs.z3fastmem_size = 0; + changed_prefs.rtgmem_size = 0; + } + else if (actionEvent.getSource() == optCPU68010) + { + changed_prefs.cpu_model = 68010; + changed_prefs.fpu_model = 0; + changed_prefs.address_space_24 = true; + changed_prefs.z3fastmem_size = 0; + changed_prefs.rtgmem_size = 0; + changed_prefs.cpu_compatible = 0; + } + else if (actionEvent.getSource() == optCPU68020) + { + changed_prefs.cpu_model = 68020; + if(changed_prefs.fpu_model == 68040) + changed_prefs.fpu_model = 68881; + changed_prefs.cpu_compatible = 0; + } + else if (actionEvent.getSource() == optCPU68030) + { + changed_prefs.cpu_model = 68030; + if(changed_prefs.fpu_model == 68040) + changed_prefs.fpu_model = 68881; + changed_prefs.address_space_24 = false; + changed_prefs.cpu_compatible = 0; + } + else if (actionEvent.getSource() == optCPU68040) + { + changed_prefs.cpu_model = 68040; + changed_prefs.fpu_model = 68040; + changed_prefs.address_space_24 = false; + changed_prefs.cpu_compatible = 0; + } + RefreshPanelCPU(); + RefreshPanelRAM(); } }; static CPUButtonActionListener* cpuButtonActionListener; @@ -89,27 +89,27 @@ static CPUButtonActionListener* cpuButtonActionListener; class FPUButtonActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if (actionEvent.getSource() == optFPUnone) - { - changed_prefs.fpu_model = 0; - } - else if(actionEvent.getSource() == optFPU68881) - { - changed_prefs.fpu_model = 68881; - } - else if(actionEvent.getSource() == optFPU68882) - { - changed_prefs.fpu_model = 68882; - } - else if(actionEvent.getSource() == optFPUinternal) - { - changed_prefs.fpu_model = 68040; - } - RefreshPanelCPU(); - RefreshPanelRAM(); + if (actionEvent.getSource() == optFPUnone) + { + changed_prefs.fpu_model = 0; + } + else if(actionEvent.getSource() == optFPU68881) + { + changed_prefs.fpu_model = 68881; + } + else if(actionEvent.getSource() == optFPU68882) + { + changed_prefs.fpu_model = 68882; + } + else if(actionEvent.getSource() == optFPUinternal) + { + changed_prefs.fpu_model = 68040; + } + RefreshPanelCPU(); + RefreshPanelRAM(); } }; static FPUButtonActionListener* fpuButtonActionListener; @@ -117,17 +117,17 @@ static FPUButtonActionListener* fpuButtonActionListener; class CPUSpeedButtonActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if (actionEvent.getSource() == opt7Mhz) - changed_prefs.m68k_speed = M68K_SPEED_7MHZ_CYCLES; - else if (actionEvent.getSource() == opt14Mhz) - changed_prefs.m68k_speed = M68K_SPEED_14MHZ_CYCLES; - else if (actionEvent.getSource() == opt28Mhz) - changed_prefs.m68k_speed = M68K_SPEED_25MHZ_CYCLES; - else if (actionEvent.getSource() == optFastest) - changed_prefs.m68k_speed = -1; + if (actionEvent.getSource() == opt7Mhz) + changed_prefs.m68k_speed = M68K_SPEED_7MHZ_CYCLES; + else if (actionEvent.getSource() == opt14Mhz) + changed_prefs.m68k_speed = M68K_SPEED_14MHZ_CYCLES; + else if (actionEvent.getSource() == opt28Mhz) + changed_prefs.m68k_speed = M68K_SPEED_25MHZ_CYCLES; + else if (actionEvent.getSource() == optFastest) + changed_prefs.m68k_speed = -1; } }; static CPUSpeedButtonActionListener* cpuSpeedButtonActionListener; @@ -135,30 +135,30 @@ static CPUSpeedButtonActionListener* cpuSpeedButtonActionListener; class CPU24BitActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - changed_prefs.address_space_24 = chk24Bit->isSelected(); - RefreshPanelCPU(); + changed_prefs.address_space_24 = chk24Bit->isSelected(); + RefreshPanelCPU(); } }; static CPU24BitActionListener* cpu24BitActionListener; class CPUCompActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if (chkCPUCompatible->isSelected()) - { - changed_prefs.cpu_compatible = 1; - changed_prefs.cachesize = 0; - } - else - { - changed_prefs.cpu_compatible = 0; - } - RefreshPanelCPU(); + if (chkCPUCompatible->isSelected()) + { + changed_prefs.cpu_compatible = 1; + changed_prefs.cachesize = 0; + } + else + { + changed_prefs.cpu_compatible = 0; + } + RefreshPanelCPU(); } }; static CPUCompActionListener* cpuCompActionListener; @@ -166,19 +166,19 @@ static CPUCompActionListener* cpuCompActionListener; class JITActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if (chkJIT->isSelected()) - { - changed_prefs.cpu_compatible = 0; - changed_prefs.cachesize = DEFAULT_JIT_CACHE_SIZE; - } - else - { - changed_prefs.cachesize = 0; - } - RefreshPanelCPU(); + if (chkJIT->isSelected()) + { + changed_prefs.cpu_compatible = 0; + changed_prefs.cachesize = DEFAULT_JIT_CACHE_SIZE; + } + else + { + changed_prefs.cachesize = 0; + } + RefreshPanelCPU(); } }; static JITActionListener* jitActionListener; @@ -186,183 +186,183 @@ static JITActionListener* jitActionListener; void InitPanelCPU(const struct _ConfigCategory& category) { - cpuButtonActionListener = new CPUButtonActionListener(); - cpu24BitActionListener = new CPU24BitActionListener(); - cpuCompActionListener = new CPUCompActionListener(); - jitActionListener = new JITActionListener(); - - optCPU68000 = new gcn::UaeRadioButton("68000", "radiocpugroup"); - optCPU68000->addActionListener(cpuButtonActionListener); - optCPU68010 = new gcn::UaeRadioButton("68010", "radiocpugroup"); - optCPU68010->addActionListener(cpuButtonActionListener); - optCPU68020 = new gcn::UaeRadioButton("68020", "radiocpugroup"); - optCPU68020->addActionListener(cpuButtonActionListener); - optCPU68030 = new gcn::UaeRadioButton("68030", "radiocpugroup"); - optCPU68030->addActionListener(cpuButtonActionListener); - optCPU68040 = new gcn::UaeRadioButton("68040", "radiocpugroup"); - optCPU68040->addActionListener(cpuButtonActionListener); - - chk24Bit = new gcn::UaeCheckBox("24-bit addressing", true); - chk24Bit->setId("CPU24Bit"); - chk24Bit->addActionListener(cpu24BitActionListener); + cpuButtonActionListener = new CPUButtonActionListener(); + cpu24BitActionListener = new CPU24BitActionListener(); + cpuCompActionListener = new CPUCompActionListener(); + jitActionListener = new JITActionListener(); - chkCPUCompatible = new gcn::UaeCheckBox("More compatible", true); - chkCPUCompatible->setId("CPUComp"); - chkCPUCompatible->addActionListener(cpuCompActionListener); + optCPU68000 = new gcn::UaeRadioButton("68000", "radiocpugroup"); + optCPU68000->addActionListener(cpuButtonActionListener); + optCPU68010 = new gcn::UaeRadioButton("68010", "radiocpugroup"); + optCPU68010->addActionListener(cpuButtonActionListener); + optCPU68020 = new gcn::UaeRadioButton("68020", "radiocpugroup"); + optCPU68020->addActionListener(cpuButtonActionListener); + optCPU68030 = new gcn::UaeRadioButton("68030", "radiocpugroup"); + optCPU68030->addActionListener(cpuButtonActionListener); + optCPU68040 = new gcn::UaeRadioButton("68040", "radiocpugroup"); + optCPU68040->addActionListener(cpuButtonActionListener); - chkJIT = new gcn::UaeCheckBox("JIT", true); - chkJIT->setId("JIT"); - chkJIT->addActionListener(jitActionListener); - - grpCPU = new gcn::Window("CPU"); - grpCPU->setPosition(DISTANCE_BORDER, DISTANCE_BORDER); - grpCPU->add(optCPU68000, 5, 10); - grpCPU->add(optCPU68010, 5, 40); - grpCPU->add(optCPU68020, 5, 70); - grpCPU->add(optCPU68030, 5, 100); - grpCPU->add(optCPU68040, 5, 130); - grpCPU->add(chk24Bit, 5, 170); - grpCPU->add(chkCPUCompatible, 5, 200); - grpCPU->add(chkJIT, 5, 230); - grpCPU->setMovable(false); - grpCPU->setSize(160, 275); - grpCPU->setBaseColor(gui_baseCol); - - category.panel->add(grpCPU); + chk24Bit = new gcn::UaeCheckBox("24-bit addressing", true); + chk24Bit->setId("CPU24Bit"); + chk24Bit->addActionListener(cpu24BitActionListener); - fpuButtonActionListener = new FPUButtonActionListener(); + chkCPUCompatible = new gcn::UaeCheckBox("More compatible", true); + chkCPUCompatible->setId("CPUComp"); + chkCPUCompatible->addActionListener(cpuCompActionListener); - optFPUnone = new gcn::UaeRadioButton("None", "radiofpugroup"); - optFPUnone->setId("FPUnone"); - optFPUnone->addActionListener(fpuButtonActionListener); + chkJIT = new gcn::UaeCheckBox("JIT", true); + chkJIT->setId("JIT"); + chkJIT->addActionListener(jitActionListener); - optFPU68881 = new gcn::UaeRadioButton("68881", "radiofpugroup"); - optFPU68881->addActionListener(fpuButtonActionListener); - - optFPU68882 = new gcn::UaeRadioButton("68882", "radiofpugroup"); - optFPU68882->addActionListener(fpuButtonActionListener); + grpCPU = new gcn::Window("CPU"); + grpCPU->setPosition(DISTANCE_BORDER, DISTANCE_BORDER); + grpCPU->add(optCPU68000, 5, 10); + grpCPU->add(optCPU68010, 5, 40); + grpCPU->add(optCPU68020, 5, 70); + grpCPU->add(optCPU68030, 5, 100); + grpCPU->add(optCPU68040, 5, 130); + grpCPU->add(chk24Bit, 5, 170); + grpCPU->add(chkCPUCompatible, 5, 200); + grpCPU->add(chkJIT, 5, 230); + grpCPU->setMovable(false); + grpCPU->setSize(160, 275); + grpCPU->setBaseColor(gui_baseCol); - optFPUinternal = new gcn::UaeRadioButton("CPU internal", "radiofpugroup"); - optFPUinternal->addActionListener(fpuButtonActionListener); + category.panel->add(grpCPU); - grpFPU = new gcn::Window("FPU"); - grpFPU->setPosition(DISTANCE_BORDER + grpCPU->getWidth() + DISTANCE_NEXT_X, DISTANCE_BORDER); - grpFPU->add(optFPUnone, 5, 10); - grpFPU->add(optFPU68881, 5, 40); - grpFPU->add(optFPU68882, 5, 70); - grpFPU->add(optFPUinternal, 5, 100); - grpFPU->setMovable(false); - grpFPU->setSize(140, 145); - grpFPU->setBaseColor(gui_baseCol); - - category.panel->add(grpFPU); + fpuButtonActionListener = new FPUButtonActionListener(); - cpuSpeedButtonActionListener = new CPUSpeedButtonActionListener(); + optFPUnone = new gcn::UaeRadioButton("None", "radiofpugroup"); + optFPUnone->setId("FPUnone"); + optFPUnone->addActionListener(fpuButtonActionListener); - opt7Mhz = new gcn::UaeRadioButton("7 Mhz", "radiocpuspeedgroup"); - opt7Mhz->addActionListener(cpuSpeedButtonActionListener); + optFPU68881 = new gcn::UaeRadioButton("68881", "radiofpugroup"); + optFPU68881->addActionListener(fpuButtonActionListener); - opt14Mhz = new gcn::UaeRadioButton("14 Mhz", "radiocpuspeedgroup"); - opt14Mhz->addActionListener(cpuSpeedButtonActionListener); + optFPU68882 = new gcn::UaeRadioButton("68882", "radiofpugroup"); + optFPU68882->addActionListener(fpuButtonActionListener); - opt28Mhz = new gcn::UaeRadioButton("25 Mhz", "radiocpuspeedgroup"); - opt28Mhz->addActionListener(cpuSpeedButtonActionListener); + optFPUinternal = new gcn::UaeRadioButton("CPU internal", "radiofpugroup"); + optFPUinternal->addActionListener(fpuButtonActionListener); - optFastest = new gcn::UaeRadioButton("Fastest", "radiocpuspeedgroup"); - optFastest->addActionListener(cpuSpeedButtonActionListener); + grpFPU = new gcn::Window("FPU"); + grpFPU->setPosition(DISTANCE_BORDER + grpCPU->getWidth() + DISTANCE_NEXT_X, DISTANCE_BORDER); + grpFPU->add(optFPUnone, 5, 10); + grpFPU->add(optFPU68881, 5, 40); + grpFPU->add(optFPU68882, 5, 70); + grpFPU->add(optFPUinternal, 5, 100); + grpFPU->setMovable(false); + grpFPU->setSize(140, 145); + grpFPU->setBaseColor(gui_baseCol); - grpCPUSpeed = new gcn::Window("CPU Speed"); - grpCPUSpeed->setPosition(grpFPU->getX() + grpFPU->getWidth() + DISTANCE_NEXT_X, DISTANCE_BORDER); - grpCPUSpeed->add(opt7Mhz, 5, 10); - grpCPUSpeed->add(opt14Mhz, 5, 40); - grpCPUSpeed->add(opt28Mhz, 5, 70); - grpCPUSpeed->add(optFastest, 5, 100); - grpCPUSpeed->setMovable(false); - grpCPUSpeed->setSize(95, 145); - grpCPUSpeed->setBaseColor(gui_baseCol); + category.panel->add(grpFPU); - category.panel->add(grpCPUSpeed); + cpuSpeedButtonActionListener = new CPUSpeedButtonActionListener(); - RefreshPanelCPU(); + opt7Mhz = new gcn::UaeRadioButton("7 Mhz", "radiocpuspeedgroup"); + opt7Mhz->addActionListener(cpuSpeedButtonActionListener); + + opt14Mhz = new gcn::UaeRadioButton("14 Mhz", "radiocpuspeedgroup"); + opt14Mhz->addActionListener(cpuSpeedButtonActionListener); + + opt28Mhz = new gcn::UaeRadioButton("25 Mhz", "radiocpuspeedgroup"); + opt28Mhz->addActionListener(cpuSpeedButtonActionListener); + + optFastest = new gcn::UaeRadioButton("Fastest", "radiocpuspeedgroup"); + optFastest->addActionListener(cpuSpeedButtonActionListener); + + grpCPUSpeed = new gcn::Window("CPU Speed"); + grpCPUSpeed->setPosition(grpFPU->getX() + grpFPU->getWidth() + DISTANCE_NEXT_X, DISTANCE_BORDER); + grpCPUSpeed->add(opt7Mhz, 5, 10); + grpCPUSpeed->add(opt14Mhz, 5, 40); + grpCPUSpeed->add(opt28Mhz, 5, 70); + grpCPUSpeed->add(optFastest, 5, 100); + grpCPUSpeed->setMovable(false); + grpCPUSpeed->setSize(95, 145); + grpCPUSpeed->setBaseColor(gui_baseCol); + + category.panel->add(grpCPUSpeed); + + RefreshPanelCPU(); } void ExitPanelCPU(void) { - delete optCPU68000; - delete optCPU68010; - delete optCPU68020; - delete optCPU68030; - delete optCPU68040; - delete chk24Bit; - delete chkCPUCompatible; - delete chkJIT; - delete grpCPU; - delete cpuButtonActionListener; - delete cpu24BitActionListener; - delete cpuCompActionListener; - delete jitActionListener; + delete optCPU68000; + delete optCPU68010; + delete optCPU68020; + delete optCPU68030; + delete optCPU68040; + delete chk24Bit; + delete chkCPUCompatible; + delete chkJIT; + delete grpCPU; + delete cpuButtonActionListener; + delete cpu24BitActionListener; + delete cpuCompActionListener; + delete jitActionListener; - delete optFPUnone; - delete optFPU68881; - delete optFPU68882; - delete optFPUinternal; - delete grpFPU; - delete fpuButtonActionListener; - - delete opt7Mhz; - delete opt14Mhz; - delete opt28Mhz; - delete optFastest; - delete grpCPUSpeed; - delete cpuSpeedButtonActionListener; + delete optFPUnone; + delete optFPU68881; + delete optFPU68882; + delete optFPUinternal; + delete grpFPU; + delete fpuButtonActionListener; + + delete opt7Mhz; + delete opt14Mhz; + delete opt28Mhz; + delete optFastest; + delete grpCPUSpeed; + delete cpuSpeedButtonActionListener; } void RefreshPanelCPU(void) { - if(changed_prefs.cpu_model == 68000) - optCPU68000->setSelected(true); - else if(changed_prefs.cpu_model == 68010) - optCPU68010->setSelected(true); - else if(changed_prefs.cpu_model == 68020) - optCPU68020->setSelected(true); - else if(changed_prefs.cpu_model == 68030) - optCPU68030->setSelected(true); - else if(changed_prefs.cpu_model == 68040) - optCPU68040->setSelected(true); + if(changed_prefs.cpu_model == 68000) + optCPU68000->setSelected(true); + else if(changed_prefs.cpu_model == 68010) + optCPU68010->setSelected(true); + else if(changed_prefs.cpu_model == 68020) + optCPU68020->setSelected(true); + else if(changed_prefs.cpu_model == 68030) + optCPU68030->setSelected(true); + else if(changed_prefs.cpu_model == 68040) + optCPU68040->setSelected(true); - chk24Bit->setSelected(changed_prefs.address_space_24); - chk24Bit->setEnabled(changed_prefs.cpu_model == 68020); - chkCPUCompatible->setSelected(changed_prefs.cpu_compatible > 0); - chkCPUCompatible->setEnabled(changed_prefs.cpu_model == 68000); - chkJIT->setSelected(changed_prefs.cachesize > 0); + chk24Bit->setSelected(changed_prefs.address_space_24); + chk24Bit->setEnabled(changed_prefs.cpu_model == 68020); + chkCPUCompatible->setSelected(changed_prefs.cpu_compatible > 0); + chkCPUCompatible->setEnabled(changed_prefs.cpu_model == 68000); + chkJIT->setSelected(changed_prefs.cachesize > 0); - switch(changed_prefs.fpu_model) - { + switch(changed_prefs.fpu_model) + { case 68881: - optFPU68881->setSelected(true); - break; + optFPU68881->setSelected(true); + break; case 68882: - optFPU68882->setSelected(true); - break; + optFPU68882->setSelected(true); + break; case 68040: - optFPUinternal->setSelected(true); - break; + optFPUinternal->setSelected(true); + break; default: - optFPUnone->setSelected(true); - break; - } - optFPU68881->setEnabled(changed_prefs.cpu_model >= 68020 && changed_prefs.cpu_model < 68040); - optFPU68882->setEnabled(changed_prefs.cpu_model >= 68020 && changed_prefs.cpu_model < 68040); - optFPUinternal->setEnabled(changed_prefs.cpu_model == 68040); - - if (changed_prefs.m68k_speed == M68K_SPEED_7MHZ_CYCLES) - opt7Mhz->setSelected(true); - else if (changed_prefs.m68k_speed == M68K_SPEED_14MHZ_CYCLES) - opt14Mhz->setSelected(true); - else if (changed_prefs.m68k_speed == M68K_SPEED_25MHZ_CYCLES) - opt28Mhz->setSelected(true); - else if (changed_prefs.m68k_speed == -1) - optFastest->setSelected(true); + optFPUnone->setSelected(true); + break; + } + optFPU68881->setEnabled(changed_prefs.cpu_model >= 68020 && changed_prefs.cpu_model < 68040); + optFPU68882->setEnabled(changed_prefs.cpu_model >= 68020 && changed_prefs.cpu_model < 68040); + optFPUinternal->setEnabled(changed_prefs.cpu_model == 68040); + + if (changed_prefs.m68k_speed == M68K_SPEED_7MHZ_CYCLES) + opt7Mhz->setSelected(true); + else if (changed_prefs.m68k_speed == M68K_SPEED_14MHZ_CYCLES) + opt14Mhz->setSelected(true); + else if (changed_prefs.m68k_speed == M68K_SPEED_25MHZ_CYCLES) + opt28Mhz->setSelected(true); + else if (changed_prefs.m68k_speed == -1) + optFastest->setSelected(true); } diff --git a/src/od-pandora/gui/PanelChipset.cpp b/src/od-pandora/gui/PanelChipset.cpp index 6a761829..ec54728b 100644 --- a/src/od-pandora/gui/PanelChipset.cpp +++ b/src/od-pandora/gui/PanelChipset.cpp @@ -12,7 +12,7 @@ #include "options.h" #include "uae.h" #include "gui.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "gui_handling.h" @@ -39,17 +39,17 @@ static gcn::UaeRadioButton* optCollFull; class ChipsetButtonActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if (actionEvent.getSource() == optOCS) - changed_prefs.chipset_mask = 0; - else if (actionEvent.getSource() == optECSAgnus) - changed_prefs.chipset_mask = CSMASK_ECS_AGNUS; - else if (actionEvent.getSource() == optECS) - changed_prefs.chipset_mask = CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE; - else - changed_prefs.chipset_mask = CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE | CSMASK_AGA; + if (actionEvent.getSource() == optOCS) + changed_prefs.chipset_mask = 0; + else if (actionEvent.getSource() == optECSAgnus) + changed_prefs.chipset_mask = CSMASK_ECS_AGNUS; + else if (actionEvent.getSource() == optECS) + changed_prefs.chipset_mask = CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE; + else + changed_prefs.chipset_mask = CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE | CSMASK_AGA; } }; static ChipsetButtonActionListener* chipsetButtonActionListener; @@ -57,19 +57,19 @@ static ChipsetButtonActionListener* chipsetButtonActionListener; class NTSCButtonActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if (chkNTSC->isSelected()) - { - changed_prefs.ntscmode = true; - changed_prefs.chipset_refreshrate = 60; - } - else - { - changed_prefs.ntscmode = false; - changed_prefs.chipset_refreshrate = 50; - } + if (chkNTSC->isSelected()) + { + changed_prefs.ntscmode = true; + changed_prefs.chipset_refreshrate = 60; + } + else + { + changed_prefs.ntscmode = false; + changed_prefs.chipset_refreshrate = 50; + } } }; static NTSCButtonActionListener* ntscButtonActionListener; @@ -77,10 +77,10 @@ static NTSCButtonActionListener* ntscButtonActionListener; class FastCopperActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - changed_prefs.fast_copper = chkFastCopper->isSelected(); + changed_prefs.fast_copper = chkFastCopper->isSelected(); } }; static FastCopperActionListener* fastCopperActionListener; @@ -88,11 +88,11 @@ static FastCopperActionListener* fastCopperActionListener; class BlitterButtonActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - changed_prefs.immediate_blits = optBlitImmed->isSelected(); - changed_prefs.waiting_blits = optBlitWait->isSelected(); + changed_prefs.immediate_blits = optBlitImmed->isSelected(); + changed_prefs.waiting_blits = optBlitWait->isSelected(); } }; static BlitterButtonActionListener* blitterButtonActionListener; @@ -100,17 +100,17 @@ static BlitterButtonActionListener* blitterButtonActionListener; class CollisionButtonActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if (actionEvent.getSource() == optCollNone) - changed_prefs.collision_level = 0; - else if (actionEvent.getSource() == optCollSprites) - changed_prefs.collision_level = 1; - else if (actionEvent.getSource() == optCollPlayfield) - changed_prefs.collision_level = 2; - else - changed_prefs.collision_level = 3; + if (actionEvent.getSource() == optCollNone) + changed_prefs.collision_level = 0; + else if (actionEvent.getSource() == optCollSprites) + changed_prefs.collision_level = 1; + else if (actionEvent.getSource() == optCollPlayfield) + changed_prefs.collision_level = 2; + else + changed_prefs.collision_level = 3; } }; static CollisionButtonActionListener* collisionButtonActionListener; @@ -118,166 +118,166 @@ static CollisionButtonActionListener* collisionButtonActionListener; void InitPanelChipset(const struct _ConfigCategory& category) { - chipsetButtonActionListener = new ChipsetButtonActionListener(); - ntscButtonActionListener = new NTSCButtonActionListener(); - - optOCS = new gcn::UaeRadioButton("OCS", "radiochipsetgroup"); - optOCS->addActionListener(chipsetButtonActionListener); + chipsetButtonActionListener = new ChipsetButtonActionListener(); + ntscButtonActionListener = new NTSCButtonActionListener(); - optECSAgnus = new gcn::UaeRadioButton("ECS Agnus", "radiochipsetgroup"); - optECSAgnus->addActionListener(chipsetButtonActionListener); + optOCS = new gcn::UaeRadioButton("OCS", "radiochipsetgroup"); + optOCS->addActionListener(chipsetButtonActionListener); - optECS = new gcn::UaeRadioButton("Full ECS", "radiochipsetgroup"); - optECS->addActionListener(chipsetButtonActionListener); + optECSAgnus = new gcn::UaeRadioButton("ECS Agnus", "radiochipsetgroup"); + optECSAgnus->addActionListener(chipsetButtonActionListener); - optAGA = new gcn::UaeRadioButton("AGA", "radiochipsetgroup"); - optAGA->addActionListener(chipsetButtonActionListener); + optECS = new gcn::UaeRadioButton("Full ECS", "radiochipsetgroup"); + optECS->addActionListener(chipsetButtonActionListener); - chkNTSC = new gcn::UaeCheckBox("NTSC"); - chkNTSC->addActionListener(ntscButtonActionListener); + optAGA = new gcn::UaeRadioButton("AGA", "radiochipsetgroup"); + optAGA->addActionListener(chipsetButtonActionListener); - grpChipset = new gcn::Window("Chipset"); - grpChipset->setPosition(DISTANCE_BORDER, DISTANCE_BORDER); - grpChipset->add(optOCS, 5, 10); - grpChipset->add(optECSAgnus, 5, 40); - grpChipset->add(optECS, 5, 70); - grpChipset->add(optAGA, 5, 100); - grpChipset->add(chkNTSC, 5, 140); - grpChipset->setMovable(false); - grpChipset->setSize(120, 185); - grpChipset->setBaseColor(gui_baseCol); - - category.panel->add(grpChipset); + chkNTSC = new gcn::UaeCheckBox("NTSC"); + chkNTSC->addActionListener(ntscButtonActionListener); - blitterButtonActionListener = new BlitterButtonActionListener(); + grpChipset = new gcn::Window("Chipset"); + grpChipset->setPosition(DISTANCE_BORDER, DISTANCE_BORDER); + grpChipset->add(optOCS, 5, 10); + grpChipset->add(optECSAgnus, 5, 40); + grpChipset->add(optECS, 5, 70); + grpChipset->add(optAGA, 5, 100); + grpChipset->add(chkNTSC, 5, 140); + grpChipset->setMovable(false); + grpChipset->setSize(120, 185); + grpChipset->setBaseColor(gui_baseCol); - optBlitNormal = new gcn::UaeRadioButton("Normal", "radiocblittergroup"); - optBlitNormal->setId("BlitNormal"); - optBlitNormal->addActionListener(blitterButtonActionListener); + category.panel->add(grpChipset); - optBlitImmed = new gcn::UaeRadioButton("Immediate", "radiocblittergroup"); - optBlitImmed->addActionListener(blitterButtonActionListener); + blitterButtonActionListener = new BlitterButtonActionListener(); - optBlitWait = new gcn::UaeRadioButton("Wait for blit.", "radiocblittergroup"); - optBlitWait->setId("BlitWait"); - optBlitWait->addActionListener(blitterButtonActionListener); + optBlitNormal = new gcn::UaeRadioButton("Normal", "radiocblittergroup"); + optBlitNormal->setId("BlitNormal"); + optBlitNormal->addActionListener(blitterButtonActionListener); - grpBlitter = new gcn::Window("Blitter"); - grpBlitter->setPosition(DISTANCE_BORDER + grpChipset->getWidth() + DISTANCE_NEXT_X, DISTANCE_BORDER); - grpBlitter->add(optBlitNormal, 5, 10); - grpBlitter->add(optBlitImmed, 5, 40); - grpBlitter->add(optBlitWait, 5, 70); - grpBlitter->setMovable(false); - grpBlitter->setSize(120, 115); - grpBlitter->setBaseColor(gui_baseCol); - - category.panel->add(grpBlitter); - - fastCopperActionListener = new FastCopperActionListener(); + optBlitImmed = new gcn::UaeRadioButton("Immediate", "radiocblittergroup"); + optBlitImmed->addActionListener(blitterButtonActionListener); - chkFastCopper = new gcn::UaeCheckBox("Fast copper"); - chkFastCopper->addActionListener(fastCopperActionListener); + optBlitWait = new gcn::UaeRadioButton("Wait for blit.", "radiocblittergroup"); + optBlitWait->setId("BlitWait"); + optBlitWait->addActionListener(blitterButtonActionListener); - grpCopper = new gcn::Window("Copper"); - grpCopper->setPosition(grpBlitter->getX() + grpBlitter->getWidth() + DISTANCE_NEXT_X, DISTANCE_BORDER); - grpCopper->add(chkFastCopper, 5, 10); - grpCopper->setMovable(false); - grpCopper->setSize(120, 55); - grpCopper->setBaseColor(gui_baseCol); + grpBlitter = new gcn::Window("Blitter"); + grpBlitter->setPosition(DISTANCE_BORDER + grpChipset->getWidth() + DISTANCE_NEXT_X, DISTANCE_BORDER); + grpBlitter->add(optBlitNormal, 5, 10); + grpBlitter->add(optBlitImmed, 5, 40); + grpBlitter->add(optBlitWait, 5, 70); + grpBlitter->setMovable(false); + grpBlitter->setSize(120, 115); + grpBlitter->setBaseColor(gui_baseCol); - category.panel->add(grpCopper); + category.panel->add(grpBlitter); - collisionButtonActionListener = new CollisionButtonActionListener(); - - optCollNone = new gcn::UaeRadioButton("None", "radioccollisiongroup"); - optCollNone->setId("CollNone"); - optCollNone->addActionListener(collisionButtonActionListener); + fastCopperActionListener = new FastCopperActionListener(); - optCollSprites = new gcn::UaeRadioButton("Sprites only", "radioccollisiongroup"); - optCollSprites->addActionListener(collisionButtonActionListener); + chkFastCopper = new gcn::UaeCheckBox("Fast copper"); + chkFastCopper->addActionListener(fastCopperActionListener); - optCollPlayfield = new gcn::UaeRadioButton("Sprites and Sprites vs. Playfield", "radioccollisiongroup"); - optCollPlayfield->setId("CollPlay"); - optCollPlayfield->addActionListener(collisionButtonActionListener); + grpCopper = new gcn::Window("Copper"); + grpCopper->setPosition(grpBlitter->getX() + grpBlitter->getWidth() + DISTANCE_NEXT_X, DISTANCE_BORDER); + grpCopper->add(chkFastCopper, 5, 10); + grpCopper->setMovable(false); + grpCopper->setSize(120, 55); + grpCopper->setBaseColor(gui_baseCol); - optCollFull = new gcn::UaeRadioButton("Full (rarely needed)", "radioccollisiongroup"); - optCollFull->setId("CollFull"); - optCollFull->addActionListener(collisionButtonActionListener); + category.panel->add(grpCopper); - grpCollisionLevel = new gcn::Window("Collision Level"); - grpCollisionLevel->setPosition(DISTANCE_BORDER, DISTANCE_BORDER + grpChipset->getHeight() + DISTANCE_NEXT_Y); - grpCollisionLevel->add(optCollNone, 5, 10); - grpCollisionLevel->add(optCollSprites, 5, 40); - grpCollisionLevel->add(optCollPlayfield, 5, 70); - grpCollisionLevel->add(optCollFull, 5, 100); - grpCollisionLevel->setMovable(false); - grpCollisionLevel->setSize(250, 145); - grpCollisionLevel->setBaseColor(gui_baseCol); - - category.panel->add(grpCollisionLevel); + collisionButtonActionListener = new CollisionButtonActionListener(); - RefreshPanelChipset(); + optCollNone = new gcn::UaeRadioButton("None", "radioccollisiongroup"); + optCollNone->setId("CollNone"); + optCollNone->addActionListener(collisionButtonActionListener); + + optCollSprites = new gcn::UaeRadioButton("Sprites only", "radioccollisiongroup"); + optCollSprites->addActionListener(collisionButtonActionListener); + + optCollPlayfield = new gcn::UaeRadioButton("Sprites and Sprites vs. Playfield", "radioccollisiongroup"); + optCollPlayfield->setId("CollPlay"); + optCollPlayfield->addActionListener(collisionButtonActionListener); + + optCollFull = new gcn::UaeRadioButton("Full (rarely needed)", "radioccollisiongroup"); + optCollFull->setId("CollFull"); + optCollFull->addActionListener(collisionButtonActionListener); + + grpCollisionLevel = new gcn::Window("Collision Level"); + grpCollisionLevel->setPosition(DISTANCE_BORDER, DISTANCE_BORDER + grpChipset->getHeight() + DISTANCE_NEXT_Y); + grpCollisionLevel->add(optCollNone, 5, 10); + grpCollisionLevel->add(optCollSprites, 5, 40); + grpCollisionLevel->add(optCollPlayfield, 5, 70); + grpCollisionLevel->add(optCollFull, 5, 100); + grpCollisionLevel->setMovable(false); + grpCollisionLevel->setSize(250, 145); + grpCollisionLevel->setBaseColor(gui_baseCol); + + category.panel->add(grpCollisionLevel); + + RefreshPanelChipset(); } void ExitPanelChipset(void) { - delete optOCS; - delete optECSAgnus; - delete optECS; - delete optAGA; - delete chkNTSC; - delete grpChipset; - delete chipsetButtonActionListener; - delete ntscButtonActionListener; + delete optOCS; + delete optECSAgnus; + delete optECS; + delete optAGA; + delete chkNTSC; + delete grpChipset; + delete chipsetButtonActionListener; + delete ntscButtonActionListener; - delete optBlitNormal; - delete optBlitImmed; - delete optBlitWait; - delete grpBlitter; - delete blitterButtonActionListener; - - delete chkFastCopper; - delete grpCopper; - delete fastCopperActionListener; - - delete optCollNone; - delete optCollSprites; - delete optCollPlayfield; - delete optCollFull; - delete grpCollisionLevel; - delete collisionButtonActionListener; + delete optBlitNormal; + delete optBlitImmed; + delete optBlitWait; + delete grpBlitter; + delete blitterButtonActionListener; + + delete chkFastCopper; + delete grpCopper; + delete fastCopperActionListener; + + delete optCollNone; + delete optCollSprites; + delete optCollPlayfield; + delete optCollFull; + delete grpCollisionLevel; + delete collisionButtonActionListener; } void RefreshPanelChipset(void) { - if (changed_prefs.chipset_mask == 0) - optOCS->setSelected(true); - else if (changed_prefs.chipset_mask == CSMASK_ECS_AGNUS) - optECSAgnus->setSelected(true); - else if (changed_prefs.chipset_mask == (CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE)) - optECS->setSelected(true); - else if (changed_prefs.chipset_mask == (CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE | CSMASK_AGA)) - optAGA->setSelected(true); - - chkNTSC->setSelected(changed_prefs.ntscmode); - - if(changed_prefs.immediate_blits) - optBlitImmed->setSelected(true); - else if(changed_prefs.waiting_blits) - optBlitWait->setSelected(true); - else - optBlitNormal->setSelected(true); - - chkFastCopper->setSelected(changed_prefs.fast_copper); - - if(changed_prefs.collision_level == 0) - optCollNone->setSelected(true); - else if(changed_prefs.collision_level == 1) - optCollSprites->setSelected(true); - else if(changed_prefs.collision_level == 2) - optCollPlayfield->setSelected(true); - else - optCollFull->setSelected(true); + if (changed_prefs.chipset_mask == 0) + optOCS->setSelected(true); + else if (changed_prefs.chipset_mask == CSMASK_ECS_AGNUS) + optECSAgnus->setSelected(true); + else if (changed_prefs.chipset_mask == (CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE)) + optECS->setSelected(true); + else if (changed_prefs.chipset_mask == (CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE | CSMASK_AGA)) + optAGA->setSelected(true); + + chkNTSC->setSelected(changed_prefs.ntscmode); + + if(changed_prefs.immediate_blits) + optBlitImmed->setSelected(true); + else if(changed_prefs.waiting_blits) + optBlitWait->setSelected(true); + else + optBlitNormal->setSelected(true); + + chkFastCopper->setSelected(changed_prefs.fast_copper); + + if(changed_prefs.collision_level == 0) + optCollNone->setSelected(true); + else if(changed_prefs.collision_level == 1) + optCollSprites->setSelected(true); + else if(changed_prefs.collision_level == 2) + optCollPlayfield->setSelected(true); + else + optCollFull->setSelected(true); } diff --git a/src/od-pandora/gui/PanelConfig.cpp b/src/od-pandora/gui/PanelConfig.cpp index 8f87365e..5b755413 100644 --- a/src/od-pandora/gui/PanelConfig.cpp +++ b/src/od-pandora/gui/PanelConfig.cpp @@ -33,84 +33,85 @@ static gcn::ScrollArea* scrAreaConfigs; bool LoadConfigByName(const char *name) { - ConfigFileInfo* config = SearchConfigInList(name); - if(config != NULL) - { - txtName->setText(config->Name); - txtDesc->setText(config->Description); - target_cfgfile_load(&changed_prefs, config->FullPath, 0, 0); - strncpy(last_active_config, config->Name, MAX_PATH); - DisableResume(); - RefreshAllPanels(); - } + ConfigFileInfo* config = SearchConfigInList(name); + if(config != NULL) + { + txtName->setText(config->Name); + txtDesc->setText(config->Description); + target_cfgfile_load(&changed_prefs, config->FullPath, 0, 0); + strncpy(last_active_config, config->Name, MAX_PATH); + DisableResume(); + RefreshAllPanels(); + } - return false; + return false; } void load_buildin_config(int id) { - if(changed_prefs.cdslots[0].inuse) - gui_force_rtarea_hdchange(); - discard_prefs(&changed_prefs, 0); - default_prefs(&changed_prefs, 0); - switch(id) { + if(changed_prefs.cdslots[0].inuse) + gui_force_rtarea_hdchange(); + discard_prefs(&changed_prefs, 0); + default_prefs(&changed_prefs, 0); + switch(id) + { case BUILDINID_A500: - bip_a500(&changed_prefs, -1); - break; - + bip_a500(&changed_prefs, -1); + break; + case BUILDINID_A1200: - bip_a1200(&changed_prefs, -1); - break; - + bip_a1200(&changed_prefs, -1); + break; + case BUILDINID_CD32: - bip_cd32(&changed_prefs, -1); - break; - } + bip_cd32(&changed_prefs, -1); + break; + } } void SetLastActiveConfig(const char *filename) { - extractFileName(filename, last_active_config); - removeFileExtension(last_active_config); + extractFileName(filename, last_active_config); + removeFileExtension(last_active_config); } class ConfigsListModel : public gcn::ListModel { - std::vector configs; + std::vector configs; - public: +public: ConfigsListModel() { } - + int getNumberOfElements() { - return configs.size(); + return configs.size(); } - + std::string getElementAt(int i) { - if(i >= configs.size() || i < 0) - return "---"; - return configs[i]; + if(i >= configs.size() || i < 0) + return "---"; + return configs[i]; } - + void InitConfigsList(void) { - configs.clear(); - for(int i=0; iName, MAX_DPATH); - if(strlen(ConfigFilesList[i]->Description) > 0) + configs.clear(); + for(int i=0; iDescription, MAX_DPATH); - strncat(tmp, ")", MAX_DPATH); + char tmp[MAX_DPATH]; + strncpy(tmp, ConfigFilesList[i]->Name, MAX_DPATH); + if(strlen(ConfigFilesList[i]->Description) > 0) + { + strncat(tmp, " (", MAX_DPATH); + strncat(tmp, ConfigFilesList[i]->Description, MAX_DPATH); + strncat(tmp, ")", MAX_DPATH); + } + configs.push_back(tmp); } - configs.push_back(tmp); - } } }; static ConfigsListModel *configsList; @@ -118,73 +119,76 @@ static ConfigsListModel *configsList; class ConfigButtonActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - int i; - if (actionEvent.getSource() == cmdLoad) - { - //----------------------------------------------- - // Load selected configuration - //----------------------------------------------- - i = lstConfigs->getSelected(); - if(ConfigFilesList[i]->BuildInID != BUILDINID_NONE) { - load_buildin_config(ConfigFilesList[i]->BuildInID); - strcpy(changed_prefs.description, ConfigFilesList[i]->Description); - } else { - target_cfgfile_load(&changed_prefs, ConfigFilesList[i]->FullPath, 0, 0); - } - strncpy(last_active_config, ConfigFilesList[i]->Name, MAX_PATH); - DisableResume(); - RefreshAllPanels(); - } - else if(actionEvent.getSource() == cmdSave) - { - //----------------------------------------------- - // Save current configuration - //----------------------------------------------- - char filename[MAX_DPATH]; - if(!txtName->getText().empty()) + int i; + if (actionEvent.getSource() == cmdLoad) { - fetch_configurationpath(filename, MAX_DPATH); - strncat(filename, txtName->getText().c_str(), MAX_DPATH); - strncat(filename, ".uae", MAX_DPATH); - strncpy(changed_prefs.description, txtDesc->getText().c_str(), 256); - if(cfgfile_save(&changed_prefs, filename, 0)) - RefreshPanelConfig(); - } - } - else if(actionEvent.getSource() == cmdLoadFrom) - { - } - else if(actionEvent.getSource() == cmdSaveAs) - { - } - else if(actionEvent.getSource() == cmdDelete) - { - //----------------------------------------------- - // Delete selected config - //----------------------------------------------- - char msg[256]; - i = lstConfigs->getSelected(); - if(i >= 0 && ConfigFilesList[i]->BuildInID == BUILDINID_NONE && strcmp(ConfigFilesList[i]->Name, OPTIONSFILENAME)) - { - snprintf(msg, 256, "Do you want to delete '%s' ?", ConfigFilesList[i]->Name); - if(ShowMessage("Delete Configuration", msg, "", "Yes", "No")) - { - remove(ConfigFilesList[i]->FullPath); - if(!strcmp(last_active_config, ConfigFilesList[i]->Name)) + //----------------------------------------------- + // Load selected configuration + //----------------------------------------------- + i = lstConfigs->getSelected(); + if(ConfigFilesList[i]->BuildInID != BUILDINID_NONE) { - txtName->setText(""); - txtDesc->setText(""); - last_active_config[0] = '\0'; + load_buildin_config(ConfigFilesList[i]->BuildInID); + strcpy(changed_prefs.description, ConfigFilesList[i]->Description); + } + else + { + target_cfgfile_load(&changed_prefs, ConfigFilesList[i]->FullPath, 0, 0); + } + strncpy(last_active_config, ConfigFilesList[i]->Name, MAX_PATH); + DisableResume(); + RefreshAllPanels(); + } + else if(actionEvent.getSource() == cmdSave) + { + //----------------------------------------------- + // Save current configuration + //----------------------------------------------- + char filename[MAX_DPATH]; + if(!txtName->getText().empty()) + { + fetch_configurationpath(filename, MAX_DPATH); + strncat(filename, txtName->getText().c_str(), MAX_DPATH); + strncat(filename, ".uae", MAX_DPATH); + strncpy(changed_prefs.description, txtDesc->getText().c_str(), 256); + if(cfgfile_save(&changed_prefs, filename, 0)) + RefreshPanelConfig(); + } + } + else if(actionEvent.getSource() == cmdLoadFrom) + { + } + else if(actionEvent.getSource() == cmdSaveAs) + { + } + else if(actionEvent.getSource() == cmdDelete) + { + //----------------------------------------------- + // Delete selected config + //----------------------------------------------- + char msg[256]; + i = lstConfigs->getSelected(); + if(i >= 0 && ConfigFilesList[i]->BuildInID == BUILDINID_NONE && strcmp(ConfigFilesList[i]->Name, OPTIONSFILENAME)) + { + snprintf(msg, 256, "Do you want to delete '%s' ?", ConfigFilesList[i]->Name); + if(ShowMessage("Delete Configuration", msg, "", "Yes", "No")) + { + remove(ConfigFilesList[i]->FullPath); + if(!strcmp(last_active_config, ConfigFilesList[i]->Name)) + { + txtName->setText(""); + txtDesc->setText(""); + last_active_config[0] = '\0'; + } + ConfigFilesList.erase(ConfigFilesList.begin() + i); + RefreshPanelConfig(); + } + cmdDelete->requestFocus(); } - ConfigFilesList.erase(ConfigFilesList.begin() + i); - RefreshPanelConfig(); - } - cmdDelete->requestFocus(); } - } } }; static ConfigButtonActionListener* configButtonActionListener; @@ -192,36 +196,39 @@ static ConfigButtonActionListener* configButtonActionListener; class ConfigsListActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - int selected_item; - selected_item = lstConfigs->getSelected(); - if(!txtName->getText().compare(ConfigFilesList[selected_item]->Name)) - { - //----------------------------------------------- - // Selected same config again -> load and start it - //----------------------------------------------- - if(ConfigFilesList[selected_item]->BuildInID != BUILDINID_NONE) { - load_buildin_config(ConfigFilesList[selected_item]->BuildInID); - strcpy(changed_prefs.description, ConfigFilesList[selected_item]->Description); - } else { - target_cfgfile_load(&changed_prefs, ConfigFilesList[selected_item]->FullPath, 0, 0); + int selected_item; + selected_item = lstConfigs->getSelected(); + if(!txtName->getText().compare(ConfigFilesList[selected_item]->Name)) + { + //----------------------------------------------- + // Selected same config again -> load and start it + //----------------------------------------------- + if(ConfigFilesList[selected_item]->BuildInID != BUILDINID_NONE) + { + load_buildin_config(ConfigFilesList[selected_item]->BuildInID); + strcpy(changed_prefs.description, ConfigFilesList[selected_item]->Description); + } + else + { + target_cfgfile_load(&changed_prefs, ConfigFilesList[selected_item]->FullPath, 0, 0); + } + strncpy(last_active_config, ConfigFilesList[selected_item]->Name, MAX_PATH); + DisableResume(); + RefreshAllPanels(); + if(emulating) + uae_reset(1, 1); + else + uae_reset(0, 1); + gui_running = false; + } + else + { + txtName->setText(ConfigFilesList[selected_item]->Name); + txtDesc->setText(ConfigFilesList[selected_item]->Description); } - strncpy(last_active_config, ConfigFilesList[selected_item]->Name, MAX_PATH); - DisableResume(); - RefreshAllPanels(); - if(emulating) - uae_reset(1, 1); - else - uae_reset(0, 1); - gui_running = false; - } - else - { - txtName->setText(ConfigFilesList[selected_item]->Name); - txtDesc->setText(ConfigFilesList[selected_item]->Description); - } } }; static ConfigsListActionListener* configsListActionListener; @@ -229,150 +236,150 @@ static ConfigsListActionListener* configsListActionListener; void InitPanelConfig(const struct _ConfigCategory& category) { - configButtonActionListener = new ConfigButtonActionListener(); + configButtonActionListener = new ConfigButtonActionListener(); - cmdLoad = new gcn::Button("Load"); - cmdLoad->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); - cmdLoad->setBaseColor(gui_baseCol); - cmdLoad->setId("ConfigLoad"); - cmdLoad->addActionListener(configButtonActionListener); + cmdLoad = new gcn::Button("Load"); + cmdLoad->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); + cmdLoad->setBaseColor(gui_baseCol); + cmdLoad->setId("ConfigLoad"); + cmdLoad->addActionListener(configButtonActionListener); - cmdSave = new gcn::Button("Save"); - cmdSave->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); - cmdSave->setBaseColor(gui_baseCol); - cmdSave->setId("ConfigSave"); - cmdSave->addActionListener(configButtonActionListener); + cmdSave = new gcn::Button("Save"); + cmdSave->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); + cmdSave->setBaseColor(gui_baseCol); + cmdSave->setId("ConfigSave"); + cmdSave->addActionListener(configButtonActionListener); - cmdLoadFrom = new gcn::Button("Load From..."); - cmdLoadFrom->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); - cmdLoadFrom->setBaseColor(gui_baseCol); - cmdLoadFrom->setId("CfgLoadFrom"); - cmdLoadFrom->addActionListener(configButtonActionListener); - cmdLoadFrom->setEnabled(false); - - cmdSaveAs = new gcn::Button("Save As..."); - cmdSaveAs->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); - cmdSaveAs->setBaseColor(gui_baseCol); - cmdSaveAs->setId("CfgSaveAs"); - cmdSaveAs->addActionListener(configButtonActionListener); - cmdSaveAs->setEnabled(false); - - cmdDelete = new gcn::Button("Delete"); - cmdDelete->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); - cmdDelete->setBaseColor(gui_baseCol); - cmdDelete->setId("CfgDelete"); - cmdDelete->addActionListener(configButtonActionListener); + cmdLoadFrom = new gcn::Button("Load From..."); + cmdLoadFrom->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); + cmdLoadFrom->setBaseColor(gui_baseCol); + cmdLoadFrom->setId("CfgLoadFrom"); + cmdLoadFrom->addActionListener(configButtonActionListener); + cmdLoadFrom->setEnabled(false); - int buttonX = DISTANCE_BORDER; - int buttonY = category.panel->getHeight() - DISTANCE_BORDER - BUTTON_HEIGHT; - category.panel->add(cmdLoad, buttonX, buttonY); - buttonX += BUTTON_WIDTH + DISTANCE_NEXT_X; - category.panel->add(cmdSave, buttonX, buttonY); - buttonX += BUTTON_WIDTH + 3 * DISTANCE_NEXT_X; + cmdSaveAs = new gcn::Button("Save As..."); + cmdSaveAs->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); + cmdSaveAs->setBaseColor(gui_baseCol); + cmdSaveAs->setId("CfgSaveAs"); + cmdSaveAs->addActionListener(configButtonActionListener); + cmdSaveAs->setEnabled(false); + + cmdDelete = new gcn::Button("Delete"); + cmdDelete->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); + cmdDelete->setBaseColor(gui_baseCol); + cmdDelete->setId("CfgDelete"); + cmdDelete->addActionListener(configButtonActionListener); + + int buttonX = DISTANCE_BORDER; + int buttonY = category.panel->getHeight() - DISTANCE_BORDER - BUTTON_HEIGHT; + category.panel->add(cmdLoad, buttonX, buttonY); + buttonX += BUTTON_WIDTH + DISTANCE_NEXT_X; + category.panel->add(cmdSave, buttonX, buttonY); + buttonX += BUTTON_WIDTH + 3 * DISTANCE_NEXT_X; // category.panel->add(cmdLoadFrom, buttonX, buttonY); - buttonX += BUTTON_WIDTH + DISTANCE_NEXT_X; + buttonX += BUTTON_WIDTH + DISTANCE_NEXT_X; // category.panel->add(cmdSaveAs, buttonX, buttonY); - buttonX = category.panel->getWidth() - DISTANCE_BORDER - BUTTON_WIDTH; - category.panel->add(cmdDelete, buttonX, buttonY); + buttonX = category.panel->getWidth() - DISTANCE_BORDER - BUTTON_WIDTH; + category.panel->add(cmdDelete, buttonX, buttonY); - lblName = new gcn::Label("Name:"); - lblName->setSize(90, LABEL_HEIGHT); - lblName->setAlignment(gcn::Graphics::RIGHT); - txtName = new gcn::TextField(); - txtName->setSize(300, TEXTFIELD_HEIGHT); - txtName->setId("ConfigName"); + lblName = new gcn::Label("Name:"); + lblName->setSize(90, LABEL_HEIGHT); + lblName->setAlignment(gcn::Graphics::RIGHT); + txtName = new gcn::TextField(); + txtName->setSize(300, TEXTFIELD_HEIGHT); + txtName->setId("ConfigName"); - lblDesc = new gcn::Label("Description:"); - lblDesc->setSize(90, LABEL_HEIGHT); - lblDesc->setAlignment(gcn::Graphics::RIGHT); - txtDesc = new gcn::TextField(); - txtDesc->setSize(300, TEXTFIELD_HEIGHT); - txtDesc->setId("ConfigDesc"); - - category.panel->add(lblName, DISTANCE_BORDER, 2 + buttonY - DISTANCE_NEXT_Y - 2 * TEXTFIELD_HEIGHT - 10); - category.panel->add(txtName, DISTANCE_BORDER + lblName->getWidth() + 8, buttonY - DISTANCE_NEXT_Y - 2 * TEXTFIELD_HEIGHT - 10); - category.panel->add(lblDesc, DISTANCE_BORDER, 2 + buttonY - DISTANCE_NEXT_Y - TEXTFIELD_HEIGHT); - category.panel->add(txtDesc, DISTANCE_BORDER + lblName->getWidth() + 8, buttonY - DISTANCE_NEXT_Y - TEXTFIELD_HEIGHT); + lblDesc = new gcn::Label("Description:"); + lblDesc->setSize(90, LABEL_HEIGHT); + lblDesc->setAlignment(gcn::Graphics::RIGHT); + txtDesc = new gcn::TextField(); + txtDesc->setSize(300, TEXTFIELD_HEIGHT); + txtDesc->setId("ConfigDesc"); - ReadConfigFileList(); - configsList = new ConfigsListModel(); - configsList->InitConfigsList(); - configsListActionListener = new ConfigsListActionListener(); + category.panel->add(lblName, DISTANCE_BORDER, 2 + buttonY - DISTANCE_NEXT_Y - 2 * TEXTFIELD_HEIGHT - 10); + category.panel->add(txtName, DISTANCE_BORDER + lblName->getWidth() + 8, buttonY - DISTANCE_NEXT_Y - 2 * TEXTFIELD_HEIGHT - 10); + category.panel->add(lblDesc, DISTANCE_BORDER, 2 + buttonY - DISTANCE_NEXT_Y - TEXTFIELD_HEIGHT); + category.panel->add(txtDesc, DISTANCE_BORDER + lblName->getWidth() + 8, buttonY - DISTANCE_NEXT_Y - TEXTFIELD_HEIGHT); - lstConfigs = new gcn::UaeListBox(configsList); - lstConfigs->setSize(category.panel->getWidth() - 2 * DISTANCE_BORDER - 22, 232); - lstConfigs->setBaseColor(gui_baseCol); - lstConfigs->setWrappingEnabled(true); - lstConfigs->setId("ConfigList"); - lstConfigs->addActionListener(configsListActionListener); - - scrAreaConfigs = new gcn::ScrollArea(lstConfigs); - scrAreaConfigs->setFrameSize(1); - scrAreaConfigs->setPosition(DISTANCE_BORDER, DISTANCE_BORDER); - scrAreaConfigs->setSize(category.panel->getWidth() - 2 * DISTANCE_BORDER - 2, 252); - scrAreaConfigs->setScrollbarWidth(20); - scrAreaConfigs->setBaseColor(gui_baseCol); - category.panel->add(scrAreaConfigs); + ReadConfigFileList(); + configsList = new ConfigsListModel(); + configsList->InitConfigsList(); + configsListActionListener = new ConfigsListActionListener(); - if(strlen(last_active_config) == 0) - strncpy(last_active_config, OPTIONSFILENAME, MAX_PATH); - txtName->setText(last_active_config); - txtDesc->setText(changed_prefs.description); - ensureVisible = -1; - RefreshPanelConfig(); + lstConfigs = new gcn::UaeListBox(configsList); + lstConfigs->setSize(category.panel->getWidth() - 2 * DISTANCE_BORDER - 22, 232); + lstConfigs->setBaseColor(gui_baseCol); + lstConfigs->setWrappingEnabled(true); + lstConfigs->setId("ConfigList"); + lstConfigs->addActionListener(configsListActionListener); + + scrAreaConfigs = new gcn::ScrollArea(lstConfigs); + scrAreaConfigs->setFrameSize(1); + scrAreaConfigs->setPosition(DISTANCE_BORDER, DISTANCE_BORDER); + scrAreaConfigs->setSize(category.panel->getWidth() - 2 * DISTANCE_BORDER - 2, 252); + scrAreaConfigs->setScrollbarWidth(20); + scrAreaConfigs->setBaseColor(gui_baseCol); + category.panel->add(scrAreaConfigs); + + if(strlen(last_active_config) == 0) + strncpy(last_active_config, OPTIONSFILENAME, MAX_PATH); + txtName->setText(last_active_config); + txtDesc->setText(changed_prefs.description); + ensureVisible = -1; + RefreshPanelConfig(); } void ExitPanelConfig(void) { - delete lstConfigs; - delete scrAreaConfigs; - delete configsListActionListener; - delete configsList; - - delete cmdLoad; - delete cmdSave; - delete cmdLoadFrom; - delete cmdSaveAs; - delete cmdDelete; + delete lstConfigs; + delete scrAreaConfigs; + delete configsListActionListener; + delete configsList; - delete configButtonActionListener; + delete cmdLoad; + delete cmdSave; + delete cmdLoadFrom; + delete cmdSaveAs; + delete cmdDelete; - delete lblName; - delete txtName; - delete lblDesc; - delete txtDesc; + delete configButtonActionListener; + + delete lblName; + delete txtName; + delete lblDesc; + delete txtDesc; } static void MakeCurrentVisible(void) { - if(ensureVisible >= 0) - { - scrAreaConfigs->setVerticalScrollAmount(ensureVisible * 19); - ensureVisible = -1; - } + if(ensureVisible >= 0) + { + scrAreaConfigs->setVerticalScrollAmount(ensureVisible * 19); + ensureVisible = -1; + } } void RefreshPanelConfig(void) { - ReadConfigFileList(); - configsList->InitConfigsList(); - - // Search current entry - if(!txtName->getText().empty()) - { - for(int i=0; iInitConfigsList(); + + // Search current entry + if(!txtName->getText().empty()) { - if(!strcmp(ConfigFilesList[i]->Name, txtName->getText().c_str())) - { - // Select current entry - lstConfigs->setSelected(i); - ensureVisible = i; - RegisterRefreshFunc(MakeCurrentVisible); - break; - } + for(int i=0; iName, txtName->getText().c_str())) + { + // Select current entry + lstConfigs->setSelected(i); + ensureVisible = i; + RegisterRefreshFunc(MakeCurrentVisible); + break; + } + } } - } } diff --git a/src/od-pandora/gui/PanelDisplay.cpp b/src/od-pandora/gui/PanelDisplay.cpp index 8c0c6946..b0ec0aa7 100644 --- a/src/od-pandora/gui/PanelDisplay.cpp +++ b/src/od-pandora/gui/PanelDisplay.cpp @@ -11,7 +11,7 @@ #include "sysdeps.h" #include "config.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "uae.h" #include "gui.h" #include "gui_handling.h" @@ -21,7 +21,8 @@ const int amigawidth_values[] = { 320, 352, 384, 640, 704, 768 }; const int amigaheight_values[] = { 200, 216, 240, 256, 262, 270 }; #ifdef RASPBERRY const int FullscreenRatio[] = { 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97 ,98, 99 ,100 }; + 90, 91, 92, 93, 94, 95, 96, 97,98, 99,100 + }; #endif static gcn::Window *grpAmigaScreen; @@ -46,48 +47,48 @@ static gcn::UaeCheckBox* chkAspect; class AmigaScreenActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if (actionEvent.getSource() == sldAmigaWidth) - { - if(changed_prefs.gfx_size.width != amigawidth_values[(int)(sldAmigaWidth->getValue())]) + if (actionEvent.getSource() == sldAmigaWidth) { - changed_prefs.gfx_size.width = amigawidth_values[(int)(sldAmigaWidth->getValue())]; - RefreshPanelDisplay(); - } - } - else if (actionEvent.getSource() == sldAmigaHeight) - { - if(changed_prefs.gfx_size.height != amigaheight_values[(int)(sldAmigaHeight->getValue())]) + if(changed_prefs.gfx_size.width != amigawidth_values[(int)(sldAmigaWidth->getValue())]) + { + changed_prefs.gfx_size.width = amigawidth_values[(int)(sldAmigaWidth->getValue())]; + RefreshPanelDisplay(); + } + } + else if (actionEvent.getSource() == sldAmigaHeight) { - changed_prefs.gfx_size.height = amigaheight_values[(int)(sldAmigaHeight->getValue())]; - RefreshPanelDisplay(); - } - } - else if (actionEvent.getSource() == sldVertPos) - { - if(changed_prefs.pandora_vertical_offset != (int)(sldVertPos->getValue())) + if(changed_prefs.gfx_size.height != amigaheight_values[(int)(sldAmigaHeight->getValue())]) + { + changed_prefs.gfx_size.height = amigaheight_values[(int)(sldAmigaHeight->getValue())]; + RefreshPanelDisplay(); + } + } + else if (actionEvent.getSource() == sldVertPos) { - changed_prefs.pandora_vertical_offset = (int)(sldVertPos->getValue()); - RefreshPanelDisplay(); - } - } - else if (actionEvent.getSource() == chkFrameskip) - { - changed_prefs.gfx_framerate = chkFrameskip->isSelected() ? 1 : 0; - } + if(changed_prefs.pandora_vertical_offset != (int)(sldVertPos->getValue())) + { + changed_prefs.pandora_vertical_offset = (int)(sldVertPos->getValue()); + RefreshPanelDisplay(); + } + } + else if (actionEvent.getSource() == chkFrameskip) + { + changed_prefs.gfx_framerate = chkFrameskip->isSelected() ? 1 : 0; + } #ifdef RASPBERRY - else if (actionEvent.getSource() == sldFSRatio) - { - if(changed_prefs.gfx_fullscreen_ratio != FullscreenRatio[(int)(sldFSRatio->getValue())]) + else if (actionEvent.getSource() == sldFSRatio) { - changed_prefs.gfx_fullscreen_ratio = FullscreenRatio[(int)(sldFSRatio->getValue())]; - RefreshPanelDisplay(); - } - } - else if (actionEvent.getSource() == chkAspect) - changed_prefs.gfx_correct_aspect = chkAspect->isSelected(); + if(changed_prefs.gfx_fullscreen_ratio != FullscreenRatio[(int)(sldFSRatio->getValue())]) + { + changed_prefs.gfx_fullscreen_ratio = FullscreenRatio[(int)(sldFSRatio->getValue())]; + RefreshPanelDisplay(); + } + } + else if (actionEvent.getSource() == chkAspect) + changed_prefs.gfx_correct_aspect = chkAspect->isSelected(); #endif } }; @@ -96,178 +97,178 @@ AmigaScreenActionListener* amigaScreenActionListener; void InitPanelDisplay(const struct _ConfigCategory& category) { - amigaScreenActionListener = new AmigaScreenActionListener(); + amigaScreenActionListener = new AmigaScreenActionListener(); - lblAmigaWidth = new gcn::Label("Width:"); - lblAmigaWidth->setSize(150, LABEL_HEIGHT); - lblAmigaWidth->setAlignment(gcn::Graphics::RIGHT); - sldAmigaWidth = new gcn::Slider(0, 5); - sldAmigaWidth->setSize(160, SLIDER_HEIGHT); - sldAmigaWidth->setBaseColor(gui_baseCol); - sldAmigaWidth->setMarkerLength(20); - sldAmigaWidth->setStepLength(1); - sldAmigaWidth->setId("sldWidth"); - sldAmigaWidth->addActionListener(amigaScreenActionListener); - lblAmigaWidthInfo = new gcn::Label("320"); + lblAmigaWidth = new gcn::Label("Width:"); + lblAmigaWidth->setSize(150, LABEL_HEIGHT); + lblAmigaWidth->setAlignment(gcn::Graphics::RIGHT); + sldAmigaWidth = new gcn::Slider(0, 5); + sldAmigaWidth->setSize(160, SLIDER_HEIGHT); + sldAmigaWidth->setBaseColor(gui_baseCol); + sldAmigaWidth->setMarkerLength(20); + sldAmigaWidth->setStepLength(1); + sldAmigaWidth->setId("sldWidth"); + sldAmigaWidth->addActionListener(amigaScreenActionListener); + lblAmigaWidthInfo = new gcn::Label("320"); - lblAmigaHeight = new gcn::Label("Height:"); - lblAmigaHeight->setSize(150, LABEL_HEIGHT); - lblAmigaHeight->setAlignment(gcn::Graphics::RIGHT); - sldAmigaHeight = new gcn::Slider(0, 5); - sldAmigaHeight->setSize(160, SLIDER_HEIGHT); - sldAmigaHeight->setBaseColor(gui_baseCol); - sldAmigaHeight->setMarkerLength(20); - sldAmigaHeight->setStepLength(1); - sldAmigaHeight->setId("sldHeight"); - sldAmigaHeight->addActionListener(amigaScreenActionListener); - lblAmigaHeightInfo = new gcn::Label("200"); + lblAmigaHeight = new gcn::Label("Height:"); + lblAmigaHeight->setSize(150, LABEL_HEIGHT); + lblAmigaHeight->setAlignment(gcn::Graphics::RIGHT); + sldAmigaHeight = new gcn::Slider(0, 5); + sldAmigaHeight->setSize(160, SLIDER_HEIGHT); + sldAmigaHeight->setBaseColor(gui_baseCol); + sldAmigaHeight->setMarkerLength(20); + sldAmigaHeight->setStepLength(1); + sldAmigaHeight->setId("sldHeight"); + sldAmigaHeight->addActionListener(amigaScreenActionListener); + lblAmigaHeightInfo = new gcn::Label("200"); - lblVertPos = new gcn::Label("Vert. offset:"); - lblVertPos->setSize(150, LABEL_HEIGHT); - lblVertPos->setAlignment(gcn::Graphics::RIGHT); - sldVertPos = new gcn::Slider(-16, 16); - sldVertPos->setSize(160, SLIDER_HEIGHT); - sldVertPos->setBaseColor(gui_baseCol); - sldVertPos->setMarkerLength(20); - sldVertPos->setStepLength(1); - sldVertPos->setId("sldVertPos"); - sldVertPos->addActionListener(amigaScreenActionListener); - lblVertPosInfo = new gcn::Label("000"); + lblVertPos = new gcn::Label("Vert. offset:"); + lblVertPos->setSize(150, LABEL_HEIGHT); + lblVertPos->setAlignment(gcn::Graphics::RIGHT); + sldVertPos = new gcn::Slider(-16, 16); + sldVertPos->setSize(160, SLIDER_HEIGHT); + sldVertPos->setBaseColor(gui_baseCol); + sldVertPos->setMarkerLength(20); + sldVertPos->setStepLength(1); + sldVertPos->setId("sldVertPos"); + sldVertPos->addActionListener(amigaScreenActionListener); + lblVertPosInfo = new gcn::Label("000"); #ifdef RASPBERRY - lblFSRatio = new gcn::Label("Fullscreen Ratio:"); - lblFSRatio->setSize(150, LABEL_HEIGHT); - lblFSRatio->setAlignment(gcn::Graphics::RIGHT); - sldFSRatio = new gcn::Slider(0, 20); - sldFSRatio->setSize(160, SLIDER_HEIGHT); - sldFSRatio->setBaseColor(gui_baseCol); - sldFSRatio->setMarkerLength(20); - sldFSRatio->setStepLength(1); - sldFSRatio->setId("FSRatio"); - sldFSRatio->addActionListener(amigaScreenActionListener); - lblFSRatioInfo = new gcn::Label("100%%"); + lblFSRatio = new gcn::Label("Fullscreen Ratio:"); + lblFSRatio->setSize(150, LABEL_HEIGHT); + lblFSRatio->setAlignment(gcn::Graphics::RIGHT); + sldFSRatio = new gcn::Slider(0, 20); + sldFSRatio->setSize(160, SLIDER_HEIGHT); + sldFSRatio->setBaseColor(gui_baseCol); + sldFSRatio->setMarkerLength(20); + sldFSRatio->setStepLength(1); + sldFSRatio->setId("FSRatio"); + sldFSRatio->addActionListener(amigaScreenActionListener); + lblFSRatioInfo = new gcn::Label("100%%"); - chkAspect = new gcn::UaeCheckBox("4/3 ratio shrink"); - chkAspect->setId("4by3Ratio"); - chkAspect->addActionListener(amigaScreenActionListener); + chkAspect = new gcn::UaeCheckBox("4/3 ratio shrink"); + chkAspect->setId("4by3Ratio"); + chkAspect->addActionListener(amigaScreenActionListener); #endif - chkFrameskip = new gcn::UaeCheckBox("Frameskip"); - chkFrameskip->addActionListener(amigaScreenActionListener); + chkFrameskip = new gcn::UaeCheckBox("Frameskip"); + chkFrameskip->addActionListener(amigaScreenActionListener); - grpAmigaScreen = new gcn::Window("Amiga Screen"); - grpAmigaScreen->setPosition(DISTANCE_BORDER, DISTANCE_BORDER); - - int posY = 10; - grpAmigaScreen->add(lblAmigaWidth, 0, posY); - grpAmigaScreen->add(sldAmigaWidth, 160, posY); - grpAmigaScreen->add(lblAmigaWidthInfo, 160 + sldAmigaWidth->getWidth() + 12, posY); - posY += sldAmigaWidth->getHeight() + DISTANCE_NEXT_Y; - grpAmigaScreen->add(lblAmigaHeight, 0, posY); - grpAmigaScreen->add(sldAmigaHeight, 160, posY); - grpAmigaScreen->add(lblAmigaHeightInfo, 160 + sldAmigaHeight->getWidth() + 12, posY); - posY += sldAmigaHeight->getHeight() + DISTANCE_NEXT_Y; - grpAmigaScreen->add(lblVertPos, 0, posY); - grpAmigaScreen->add(sldVertPos, 160, posY); - grpAmigaScreen->add(lblVertPosInfo, 160 + sldVertPos->getWidth() + 12, posY); - posY += sldVertPos->getHeight() + DISTANCE_NEXT_Y; + grpAmigaScreen = new gcn::Window("Amiga Screen"); + grpAmigaScreen->setPosition(DISTANCE_BORDER, DISTANCE_BORDER); + + int posY = 10; + grpAmigaScreen->add(lblAmigaWidth, 0, posY); + grpAmigaScreen->add(sldAmigaWidth, 160, posY); + grpAmigaScreen->add(lblAmigaWidthInfo, 160 + sldAmigaWidth->getWidth() + 12, posY); + posY += sldAmigaWidth->getHeight() + DISTANCE_NEXT_Y; + grpAmigaScreen->add(lblAmigaHeight, 0, posY); + grpAmigaScreen->add(sldAmigaHeight, 160, posY); + grpAmigaScreen->add(lblAmigaHeightInfo, 160 + sldAmigaHeight->getWidth() + 12, posY); + posY += sldAmigaHeight->getHeight() + DISTANCE_NEXT_Y; + grpAmigaScreen->add(lblVertPos, 0, posY); + grpAmigaScreen->add(sldVertPos, 160, posY); + grpAmigaScreen->add(lblVertPosInfo, 160 + sldVertPos->getWidth() + 12, posY); + posY += sldVertPos->getHeight() + DISTANCE_NEXT_Y; #ifdef RASPBERRY - grpAmigaScreen->add(lblFSRatio, 0, posY); - grpAmigaScreen->add(sldFSRatio, 160, posY); - grpAmigaScreen->add(lblFSRatioInfo, 160 + sldFSRatio->getWidth() + 12, posY); - posY += sldFSRatio->getHeight() + DISTANCE_NEXT_Y; + grpAmigaScreen->add(lblFSRatio, 0, posY); + grpAmigaScreen->add(sldFSRatio, 160, posY); + grpAmigaScreen->add(lblFSRatioInfo, 160 + sldFSRatio->getWidth() + 12, posY); + posY += sldFSRatio->getHeight() + DISTANCE_NEXT_Y; #endif - - grpAmigaScreen->setMovable(false); - grpAmigaScreen->setSize(460, posY + DISTANCE_BORDER); - grpAmigaScreen->setBaseColor(gui_baseCol); - category.panel->add(grpAmigaScreen); + grpAmigaScreen->setMovable(false); + grpAmigaScreen->setSize(460, posY + DISTANCE_BORDER); + grpAmigaScreen->setBaseColor(gui_baseCol); + + category.panel->add(grpAmigaScreen); #ifdef RASPBERRY - category.panel->add(chkAspect , DISTANCE_BORDER, DISTANCE_BORDER + grpAmigaScreen->getHeight() + DISTANCE_NEXT_Y); - category.panel->add(chkFrameskip, DISTANCE_BORDER, DISTANCE_BORDER + grpAmigaScreen->getHeight() + chkAspect->getHeight() + 2*DISTANCE_NEXT_Y); + category.panel->add(chkAspect, DISTANCE_BORDER, DISTANCE_BORDER + grpAmigaScreen->getHeight() + DISTANCE_NEXT_Y); + category.panel->add(chkFrameskip, DISTANCE_BORDER, DISTANCE_BORDER + grpAmigaScreen->getHeight() + chkAspect->getHeight() + 2*DISTANCE_NEXT_Y); #else - category.panel->add(chkFrameskip, DISTANCE_BORDER, DISTANCE_BORDER + grpAmigaScreen->getHeight() + DISTANCE_NEXT_Y); + category.panel->add(chkFrameskip, DISTANCE_BORDER, DISTANCE_BORDER + grpAmigaScreen->getHeight() + DISTANCE_NEXT_Y); #endif - RefreshPanelDisplay(); + RefreshPanelDisplay(); } void ExitPanelDisplay(void) { - delete lblAmigaWidth; - delete sldAmigaWidth; - delete lblAmigaWidthInfo; - delete lblAmigaHeight; - delete sldAmigaHeight; - delete lblAmigaHeightInfo; - delete lblVertPos; - delete sldVertPos; - delete lblVertPosInfo; - delete grpAmigaScreen; - delete chkFrameskip; - delete amigaScreenActionListener; + delete lblAmigaWidth; + delete sldAmigaWidth; + delete lblAmigaWidthInfo; + delete lblAmigaHeight; + delete sldAmigaHeight; + delete lblAmigaHeightInfo; + delete lblVertPos; + delete sldVertPos; + delete lblVertPosInfo; + delete grpAmigaScreen; + delete chkFrameskip; + delete amigaScreenActionListener; #ifdef RASPBERRY - delete lblFSRatio; - delete sldFSRatio; - delete lblFSRatioInfo; + delete lblFSRatio; + delete sldFSRatio; + delete lblFSRatioInfo; - delete chkAspect; + delete chkAspect; #endif } void RefreshPanelDisplay(void) { - int i; - char tmp[32]; - - for(i=0; i<6; ++i) - { - if(changed_prefs.gfx_size.width == amigawidth_values[i]) - { - sldAmigaWidth->setValue(i); - snprintf(tmp, 32, "%d", changed_prefs.gfx_size.width); - lblAmigaWidthInfo->setCaption(tmp); - break; - } - } + int i; + char tmp[32]; - for(i=0; i<6; ++i) - { - if(changed_prefs.gfx_size.height == amigaheight_values[i]) + for(i=0; i<6; ++i) { - sldAmigaHeight->setValue(i); - snprintf(tmp, 32, "%d", changed_prefs.gfx_size.height); - lblAmigaHeightInfo->setCaption(tmp); - break; + if(changed_prefs.gfx_size.width == amigawidth_values[i]) + { + sldAmigaWidth->setValue(i); + snprintf(tmp, 32, "%d", changed_prefs.gfx_size.width); + lblAmigaWidthInfo->setCaption(tmp); + break; + } } - } - + + for(i=0; i<6; ++i) + { + if(changed_prefs.gfx_size.height == amigaheight_values[i]) + { + sldAmigaHeight->setValue(i); + snprintf(tmp, 32, "%d", changed_prefs.gfx_size.height); + lblAmigaHeightInfo->setCaption(tmp); + break; + } + } + #ifdef RASPBERRY - for(i=0; i<21; ++i) - { - if(changed_prefs.gfx_fullscreen_ratio == FullscreenRatio[i]) + for(i=0; i<21; ++i) { - sldFSRatio->setValue(i); - snprintf(tmp, 32, "%d%%", changed_prefs.gfx_fullscreen_ratio); - lblFSRatioInfo->setCaption(tmp); - break; + if(changed_prefs.gfx_fullscreen_ratio == FullscreenRatio[i]) + { + sldFSRatio->setValue(i); + snprintf(tmp, 32, "%d%%", changed_prefs.gfx_fullscreen_ratio); + lblFSRatioInfo->setCaption(tmp); + break; + } } - } - chkAspect->setSelected(changed_prefs.gfx_correct_aspect); + chkAspect->setSelected(changed_prefs.gfx_correct_aspect); #endif - sldVertPos->setValue(changed_prefs.pandora_vertical_offset); - snprintf(tmp, 32, "%d", changed_prefs.pandora_vertical_offset); - lblVertPosInfo->setCaption(tmp); - - chkFrameskip->setSelected(changed_prefs.gfx_framerate); + sldVertPos->setValue(changed_prefs.pandora_vertical_offset); + snprintf(tmp, 32, "%d", changed_prefs.pandora_vertical_offset); + lblVertPosInfo->setCaption(tmp); + + chkFrameskip->setSelected(changed_prefs.gfx_framerate); } diff --git a/src/od-pandora/gui/PanelFloppy.cpp b/src/od-pandora/gui/PanelFloppy.cpp index 2c745dfa..5c134a5d 100644 --- a/src/od-pandora/gui/PanelFloppy.cpp +++ b/src/od-pandora/gui/PanelFloppy.cpp @@ -11,7 +11,7 @@ #include "sysdeps.h" #include "config.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "disk.h" #include "uae.h" #include "gui.h" @@ -43,29 +43,29 @@ static bool bLoadConfigForDisk = false; class DriveTypeListModel : public gcn::ListModel { - private: +private: std::vector types; - - public: + +public: DriveTypeListModel() { - types.push_back("Disabled"); - types.push_back("3.5'' DD"); - types.push_back("3.5'' HD"); - types.push_back("5.25'' SD"); - types.push_back("3.5'' ESCOM"); + types.push_back("Disabled"); + types.push_back("3.5'' DD"); + types.push_back("3.5'' HD"); + types.push_back("5.25'' SD"); + types.push_back("3.5'' ESCOM"); } int getNumberOfElements() { - return types.size(); + return types.size(); } std::string getElementAt(int i) { - if(i < 0 || i >= types.size()) - return "---"; - return types[i]; + if(i < 0 || i >= types.size()) + return "---"; + return types[i]; } }; static DriveTypeListModel driveTypeList; @@ -73,21 +73,21 @@ static DriveTypeListModel driveTypeList; class DiskfileListModel : public gcn::ListModel { - public: +public: DiskfileListModel() { } - + int getNumberOfElements() { - return lstMRUDiskList.size(); + return lstMRUDiskList.size(); } std::string getElementAt(int i) { - if(i < 0 || i >= lstMRUDiskList.size()) - return "---"; - return lstMRUDiskList[i]; + if(i < 0 || i >= lstMRUDiskList.size()) + return "---"; + return lstMRUDiskList[i]; } }; static DiskfileListModel diskfileList; @@ -95,18 +95,18 @@ static DiskfileListModel diskfileList; class DriveTypeActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - //--------------------------------------- - // New drive type selected - //--------------------------------------- - for(int i=0; i<4; ++i) - { - if (actionEvent.getSource() == cboDFxType[i]) - changed_prefs.floppyslots[i].dfxtype = cboDFxType[i]->getSelected() - 1; - } - RefreshPanelFloppy(); + //--------------------------------------- + // New drive type selected + //--------------------------------------- + for(int i=0; i<4; ++i) + { + if (actionEvent.getSource() == cboDFxType[i]) + changed_prefs.floppyslots[i].dfxtype = cboDFxType[i]->getSelected() - 1; + } + RefreshPanelFloppy(); } }; static DriveTypeActionListener* driveTypeActionListener; @@ -114,35 +114,35 @@ static DriveTypeActionListener* driveTypeActionListener; class DFxCheckActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if(actionEvent.getSource() == chkLoadConfig) - bLoadConfigForDisk = chkLoadConfig->isSelected(); - else - { - for(int i=0; i<4; ++i) - { - if (actionEvent.getSource() == chkDFx[i]) - { - //--------------------------------------- - // Drive enabled/disabled - //--------------------------------------- - if(chkDFx[i]->isSelected()) - changed_prefs.floppyslots[i].dfxtype = DRV_35_DD; - else - changed_prefs.floppyslots[i].dfxtype = DRV_NONE; - } - else if(actionEvent.getSource() == chkDFxWriteProtect[i]) - { - //--------------------------------------- - // Write-protect changed - //--------------------------------------- - // ToDo: set write protect for floppy - } + if(actionEvent.getSource() == chkLoadConfig) + bLoadConfigForDisk = chkLoadConfig->isSelected(); + else + { + for(int i=0; i<4; ++i) + { + if (actionEvent.getSource() == chkDFx[i]) + { + //--------------------------------------- + // Drive enabled/disabled + //--------------------------------------- + if(chkDFx[i]->isSelected()) + changed_prefs.floppyslots[i].dfxtype = DRV_35_DD; + else + changed_prefs.floppyslots[i].dfxtype = DRV_NONE; + } + else if(actionEvent.getSource() == chkDFxWriteProtect[i]) + { + //--------------------------------------- + // Write-protect changed + //--------------------------------------- + // ToDo: set write protect for floppy + } + } } - } - RefreshPanelFloppy(); + RefreshPanelFloppy(); } }; static DFxCheckActionListener* dfxCheckActionListener; @@ -150,62 +150,62 @@ static DFxCheckActionListener* dfxCheckActionListener; class DFxButtonActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - for(int i=0; i<4; ++i) - { - if (actionEvent.getSource() == cmdDFxInfo[i]) + for(int i=0; i<4; ++i) { - //--------------------------------------- - // Show info about current disk-image - //--------------------------------------- - if(changed_prefs.floppyslots[i].dfxtype != DRV_NONE && strlen(changed_prefs.floppyslots[i].df) > 0) - ; // ToDo: Show info dialog - } - else if (actionEvent.getSource() == cmdDFxEject[i]) - { - //--------------------------------------- - // Eject disk from drive - //--------------------------------------- - disk_eject(i); - strcpy(changed_prefs.floppyslots[i].df, ""); - AdjustDropDownControls(); - } - else if (actionEvent.getSource() == cmdDFxSelect[i]) - { - //--------------------------------------- - // Select disk for drive - //--------------------------------------- - char tmp[MAX_PATH]; + if (actionEvent.getSource() == cmdDFxInfo[i]) + { + //--------------------------------------- + // Show info about current disk-image + //--------------------------------------- + if(changed_prefs.floppyslots[i].dfxtype != DRV_NONE && strlen(changed_prefs.floppyslots[i].df) > 0) + ; // ToDo: Show info dialog + } + else if (actionEvent.getSource() == cmdDFxEject[i]) + { + //--------------------------------------- + // Eject disk from drive + //--------------------------------------- + disk_eject(i); + strcpy(changed_prefs.floppyslots[i].df, ""); + AdjustDropDownControls(); + } + else if (actionEvent.getSource() == cmdDFxSelect[i]) + { + //--------------------------------------- + // Select disk for drive + //--------------------------------------- + char tmp[MAX_PATH]; - if(strlen(changed_prefs.floppyslots[i].df) > 0) - strncpy(tmp, changed_prefs.floppyslots[i].df, MAX_PATH); - else - strncpy(tmp, currentDir, MAX_PATH); - if(SelectFile("Select disk image file", tmp, diskfile_filter)) - { - if(strncmp(changed_prefs.floppyslots[i].df, tmp, MAX_PATH)) - { - strncpy(changed_prefs.floppyslots[i].df, tmp, sizeof(changed_prefs.floppyslots[i].df)); - disk_insert(i, tmp); - AddFileToDiskList(tmp, 1); - extractPath(tmp, currentDir); + if(strlen(changed_prefs.floppyslots[i].df) > 0) + strncpy(tmp, changed_prefs.floppyslots[i].df, MAX_PATH); + else + strncpy(tmp, currentDir, MAX_PATH); + if(SelectFile("Select disk image file", tmp, diskfile_filter)) + { + if(strncmp(changed_prefs.floppyslots[i].df, tmp, MAX_PATH)) + { + strncpy(changed_prefs.floppyslots[i].df, tmp, sizeof(changed_prefs.floppyslots[i].df)); + disk_insert(i, tmp); + AddFileToDiskList(tmp, 1); + extractPath(tmp, currentDir); - if(i == 0 && chkLoadConfig->isSelected()) - { - // Search for config of disk - extractFileName(changed_prefs.floppyslots[i].df, tmp); - removeFileExtension(tmp); - LoadConfigByName(tmp); - } - AdjustDropDownControls(); - } - } - cmdDFxSelect[i]->requestFocus(); + if(i == 0 && chkLoadConfig->isSelected()) + { + // Search for config of disk + extractFileName(changed_prefs.floppyslots[i].df, tmp); + removeFileExtension(tmp); + LoadConfigByName(tmp); + } + AdjustDropDownControls(); + } + } + cmdDFxSelect[i]->requestFocus(); + } } - } - RefreshPanelFloppy(); + RefreshPanelFloppy(); } }; static DFxButtonActionListener* dfxButtonActionListener; @@ -214,53 +214,53 @@ static DFxButtonActionListener* dfxButtonActionListener; static bool bIgnoreListChange = false; class DiskFileActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - for(int i=0; i<4; ++i) - { - if (actionEvent.getSource() == cboDFxFile[i]) + for(int i=0; i<4; ++i) { - //--------------------------------------- - // Diskimage from list selected - //--------------------------------------- - if(!bIgnoreListChange) - { - int idx = cboDFxFile[i]->getSelected(); + if (actionEvent.getSource() == cboDFxFile[i]) + { + //--------------------------------------- + // Diskimage from list selected + //--------------------------------------- + if(!bIgnoreListChange) + { + int idx = cboDFxFile[i]->getSelected(); - if(idx < 0) - { - disk_eject(i); - strcpy(changed_prefs.floppyslots[i].df, ""); - AdjustDropDownControls(); - } - else - { - if(diskfileList.getElementAt(idx).compare(changed_prefs.floppyslots[i].df)) - { - strncpy(changed_prefs.floppyslots[i].df, diskfileList.getElementAt(idx).c_str(), sizeof(changed_prefs.floppyslots[i].df)); - disk_insert(i, changed_prefs.floppyslots[i].df); - lstMRUDiskList.erase(lstMRUDiskList.begin() + idx); - lstMRUDiskList.insert(lstMRUDiskList.begin(), changed_prefs.floppyslots[i].df); - bIgnoreListChange = true; - cboDFxFile[i]->setSelected(0); - bIgnoreListChange = false; + if(idx < 0) + { + disk_eject(i); + strcpy(changed_prefs.floppyslots[i].df, ""); + AdjustDropDownControls(); + } + else + { + if(diskfileList.getElementAt(idx).compare(changed_prefs.floppyslots[i].df)) + { + strncpy(changed_prefs.floppyslots[i].df, diskfileList.getElementAt(idx).c_str(), sizeof(changed_prefs.floppyslots[i].df)); + disk_insert(i, changed_prefs.floppyslots[i].df); + lstMRUDiskList.erase(lstMRUDiskList.begin() + idx); + lstMRUDiskList.insert(lstMRUDiskList.begin(), changed_prefs.floppyslots[i].df); + bIgnoreListChange = true; + cboDFxFile[i]->setSelected(0); + bIgnoreListChange = false; - if(i == 0 && chkLoadConfig->isSelected()) - { - // Search for config of disk - char tmp[MAX_PATH]; - - extractFileName(changed_prefs.floppyslots[i].df, tmp); - removeFileExtension(tmp); - LoadConfigByName(tmp); + if(i == 0 && chkLoadConfig->isSelected()) + { + // Search for config of disk + char tmp[MAX_PATH]; + + extractFileName(changed_prefs.floppyslots[i].df, tmp); + removeFileExtension(tmp); + LoadConfigByName(tmp); + } + } + } } - } - } - } + } } - } - RefreshPanelFloppy(); + RefreshPanelFloppy(); } }; static DiskFileActionListener* diskFileActionListener; @@ -268,11 +268,11 @@ static DiskFileActionListener* diskFileActionListener; class DriveSpeedSliderActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - changed_prefs.floppy_speed = drivespeedvalues[(int)sldDriveSpeed->getValue()]; - RefreshPanelFloppy(); + changed_prefs.floppy_speed = drivespeedvalues[(int)sldDriveSpeed->getValue()]; + RefreshPanelFloppy(); } }; static DriveSpeedSliderActionListener* driveSpeedSliderActionListener; @@ -280,28 +280,28 @@ static DriveSpeedSliderActionListener* driveSpeedSliderActionListener; class SaveForDiskActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - //--------------------------------------- - // Save configuration for current disk - //--------------------------------------- - if(strlen(changed_prefs.floppyslots[0].df) > 0) - { - char filename[MAX_DPATH]; - char diskname[MAX_PATH]; - - extractFileName(changed_prefs.floppyslots[0].df, diskname); - removeFileExtension(diskname); - - fetch_configurationpath(filename, MAX_DPATH); - strncat(filename, diskname, MAX_DPATH); - strncat(filename, ".uae", MAX_DPATH); - - snprintf(changed_prefs.description, 256, "Configuration for disk '%s'", diskname); - if(cfgfile_save(&changed_prefs, filename, 0)) - RefreshPanelConfig(); - } + //--------------------------------------- + // Save configuration for current disk + //--------------------------------------- + if(strlen(changed_prefs.floppyslots[0].df) > 0) + { + char filename[MAX_DPATH]; + char diskname[MAX_PATH]; + + extractFileName(changed_prefs.floppyslots[0].df, diskname); + removeFileExtension(diskname); + + fetch_configurationpath(filename, MAX_DPATH); + strncat(filename, diskname, MAX_DPATH); + strncat(filename, ".uae", MAX_DPATH); + + snprintf(changed_prefs.description, 256, "Configuration for disk '%s'", diskname); + if(cfgfile_save(&changed_prefs, filename, 0)) + RefreshPanelConfig(); + } } }; static SaveForDiskActionListener* saveForDiskActionListener; @@ -309,43 +309,43 @@ static SaveForDiskActionListener* saveForDiskActionListener; class CreateDiskActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if(actionEvent.getSource() == cmdCreateDDDisk) - { - // Create 3.5'' DD Disk - char tmp[MAX_PATH]; - char diskname[MAX_PATH]; - strncpy(tmp, currentDir, MAX_PATH); - if(SelectFile("Create 3.5'' DD disk file", tmp, diskfile_filter, true)) + if(actionEvent.getSource() == cmdCreateDDDisk) { - extractFileName(tmp, diskname); - removeFileExtension(diskname); - diskname[31] = '\0'; - disk_creatediskfile(tmp, 0, DRV_35_DD, diskname, false, false, NULL); - AddFileToDiskList(tmp, 1); - extractPath(tmp, currentDir); + // Create 3.5'' DD Disk + char tmp[MAX_PATH]; + char diskname[MAX_PATH]; + strncpy(tmp, currentDir, MAX_PATH); + if(SelectFile("Create 3.5'' DD disk file", tmp, diskfile_filter, true)) + { + extractFileName(tmp, diskname); + removeFileExtension(diskname); + diskname[31] = '\0'; + disk_creatediskfile(tmp, 0, DRV_35_DD, diskname, false, false, NULL); + AddFileToDiskList(tmp, 1); + extractPath(tmp, currentDir); + } + cmdCreateDDDisk->requestFocus(); } - cmdCreateDDDisk->requestFocus(); - } - else if(actionEvent.getSource() == cmdCreateHDDisk) - { - // Create 3.5'' HD Disk - char tmp[MAX_PATH]; - char diskname[MAX_PATH]; - strncpy(tmp, currentDir, MAX_PATH); - if(SelectFile("Create 3.5'' HD disk file", tmp, diskfile_filter, true)) + else if(actionEvent.getSource() == cmdCreateHDDisk) { - extractFileName(tmp, diskname); - removeFileExtension(diskname); - diskname[31] = '\0'; - disk_creatediskfile(tmp, 0, DRV_35_HD, diskname, false, false, NULL); - AddFileToDiskList(tmp, 1); - extractPath(tmp, currentDir); + // Create 3.5'' HD Disk + char tmp[MAX_PATH]; + char diskname[MAX_PATH]; + strncpy(tmp, currentDir, MAX_PATH); + if(SelectFile("Create 3.5'' HD disk file", tmp, diskfile_filter, true)) + { + extractFileName(tmp, diskname); + removeFileExtension(diskname); + diskname[31] = '\0'; + disk_creatediskfile(tmp, 0, DRV_35_HD, diskname, false, false, NULL); + AddFileToDiskList(tmp, 1); + extractPath(tmp, currentDir); + } + cmdCreateHDDisk->requestFocus(); } - cmdCreateHDDisk->requestFocus(); - } } }; static CreateDiskActionListener* createDiskActionListener; @@ -353,234 +353,234 @@ static CreateDiskActionListener* createDiskActionListener; void InitPanelFloppy(const struct _ConfigCategory& category) { - int posX; - int posY = DISTANCE_BORDER; - int i; - - dfxCheckActionListener = new DFxCheckActionListener(); - driveTypeActionListener = new DriveTypeActionListener(); - dfxButtonActionListener = new DFxButtonActionListener(); - diskFileActionListener = new DiskFileActionListener(); - driveSpeedSliderActionListener = new DriveSpeedSliderActionListener(); - saveForDiskActionListener = new SaveForDiskActionListener(); - createDiskActionListener = new CreateDiskActionListener(); - - for(i=0; i<4; ++i) - { - char tmp[20]; - snprintf(tmp, 20, "DF%d:", i); - chkDFx[i] = new gcn::UaeCheckBox(tmp); - chkDFx[i]->addActionListener(dfxCheckActionListener); - - cboDFxType[i] = new gcn::UaeDropDown(&driveTypeList); - cboDFxType[i]->setSize(106, DROPDOWN_HEIGHT); - cboDFxType[i]->setBaseColor(gui_baseCol); - snprintf(tmp, 20, "cboType%d", i); - cboDFxType[i]->setId(tmp); - cboDFxType[i]->addActionListener(driveTypeActionListener); - - chkDFxWriteProtect[i] = new gcn::UaeCheckBox("Write-protected"); - chkDFxWriteProtect[i]->addActionListener(dfxCheckActionListener); - chkDFxWriteProtect[i]->setEnabled(false); - - cmdDFxInfo[i] = new gcn::Button("?"); - cmdDFxInfo[i]->setSize(SMALL_BUTTON_WIDTH, SMALL_BUTTON_HEIGHT); - cmdDFxInfo[i]->setBaseColor(gui_baseCol); - cmdDFxInfo[i]->addActionListener(dfxButtonActionListener); + int posX; + int posY = DISTANCE_BORDER; + int i; - cmdDFxEject[i] = new gcn::Button("Eject"); - cmdDFxEject[i]->setSize(SMALL_BUTTON_WIDTH * 2, SMALL_BUTTON_HEIGHT); - cmdDFxEject[i]->setBaseColor(gui_baseCol); - snprintf(tmp, 20, "cmdEject%d", i); - cmdDFxEject[i]->setId(tmp); - cmdDFxEject[i]->addActionListener(dfxButtonActionListener); + dfxCheckActionListener = new DFxCheckActionListener(); + driveTypeActionListener = new DriveTypeActionListener(); + dfxButtonActionListener = new DFxButtonActionListener(); + diskFileActionListener = new DiskFileActionListener(); + driveSpeedSliderActionListener = new DriveSpeedSliderActionListener(); + saveForDiskActionListener = new SaveForDiskActionListener(); + createDiskActionListener = new CreateDiskActionListener(); - cmdDFxSelect[i] = new gcn::Button("..."); - cmdDFxSelect[i]->setSize(SMALL_BUTTON_WIDTH, SMALL_BUTTON_HEIGHT); - cmdDFxSelect[i]->setBaseColor(gui_baseCol); - snprintf(tmp, 20, "cmdSel%d", i); - cmdDFxSelect[i]->setId(tmp); - cmdDFxSelect[i]->addActionListener(dfxButtonActionListener); - - cboDFxFile[i] = new gcn::UaeDropDown(&diskfileList); - cboDFxFile[i]->setSize(category.panel->getWidth() - 2 * DISTANCE_BORDER, DROPDOWN_HEIGHT); - cboDFxFile[i]->setBaseColor(gui_baseCol); - snprintf(tmp, 20, "cboDisk%d", i); - cboDFxFile[i]->setId(tmp); - cboDFxFile[i]->addActionListener(diskFileActionListener); - - if(i == 0) + for(i=0; i<4; ++i) { - chkLoadConfig = new gcn::UaeCheckBox("Load config with same name as disk"); - chkLoadConfig->setId("LoadDiskCfg"); - chkLoadConfig->addActionListener(dfxCheckActionListener); + char tmp[20]; + snprintf(tmp, 20, "DF%d:", i); + chkDFx[i] = new gcn::UaeCheckBox(tmp); + chkDFx[i]->addActionListener(dfxCheckActionListener); + + cboDFxType[i] = new gcn::UaeDropDown(&driveTypeList); + cboDFxType[i]->setSize(106, DROPDOWN_HEIGHT); + cboDFxType[i]->setBaseColor(gui_baseCol); + snprintf(tmp, 20, "cboType%d", i); + cboDFxType[i]->setId(tmp); + cboDFxType[i]->addActionListener(driveTypeActionListener); + + chkDFxWriteProtect[i] = new gcn::UaeCheckBox("Write-protected"); + chkDFxWriteProtect[i]->addActionListener(dfxCheckActionListener); + chkDFxWriteProtect[i]->setEnabled(false); + + cmdDFxInfo[i] = new gcn::Button("?"); + cmdDFxInfo[i]->setSize(SMALL_BUTTON_WIDTH, SMALL_BUTTON_HEIGHT); + cmdDFxInfo[i]->setBaseColor(gui_baseCol); + cmdDFxInfo[i]->addActionListener(dfxButtonActionListener); + + cmdDFxEject[i] = new gcn::Button("Eject"); + cmdDFxEject[i]->setSize(SMALL_BUTTON_WIDTH * 2, SMALL_BUTTON_HEIGHT); + cmdDFxEject[i]->setBaseColor(gui_baseCol); + snprintf(tmp, 20, "cmdEject%d", i); + cmdDFxEject[i]->setId(tmp); + cmdDFxEject[i]->addActionListener(dfxButtonActionListener); + + cmdDFxSelect[i] = new gcn::Button("..."); + cmdDFxSelect[i]->setSize(SMALL_BUTTON_WIDTH, SMALL_BUTTON_HEIGHT); + cmdDFxSelect[i]->setBaseColor(gui_baseCol); + snprintf(tmp, 20, "cmdSel%d", i); + cmdDFxSelect[i]->setId(tmp); + cmdDFxSelect[i]->addActionListener(dfxButtonActionListener); + + cboDFxFile[i] = new gcn::UaeDropDown(&diskfileList); + cboDFxFile[i]->setSize(category.panel->getWidth() - 2 * DISTANCE_BORDER, DROPDOWN_HEIGHT); + cboDFxFile[i]->setBaseColor(gui_baseCol); + snprintf(tmp, 20, "cboDisk%d", i); + cboDFxFile[i]->setId(tmp); + cboDFxFile[i]->addActionListener(diskFileActionListener); + + if(i == 0) + { + chkLoadConfig = new gcn::UaeCheckBox("Load config with same name as disk"); + chkLoadConfig->setId("LoadDiskCfg"); + chkLoadConfig->addActionListener(dfxCheckActionListener); + } } - } - lblDriveSpeed = new gcn::Label("Floppy Drive Emulation Speed:"); - sldDriveSpeed = new gcn::Slider(0, 3); - sldDriveSpeed->setSize(110, SLIDER_HEIGHT); - sldDriveSpeed->setBaseColor(gui_baseCol); - sldDriveSpeed->setMarkerLength(20); - sldDriveSpeed->setStepLength(1); - sldDriveSpeed->setId("DriveSpeed"); - sldDriveSpeed->addActionListener(driveSpeedSliderActionListener); - lblDriveSpeedInfo = new gcn::Label(drivespeedlist[0]); + lblDriveSpeed = new gcn::Label("Floppy Drive Emulation Speed:"); + sldDriveSpeed = new gcn::Slider(0, 3); + sldDriveSpeed->setSize(110, SLIDER_HEIGHT); + sldDriveSpeed->setBaseColor(gui_baseCol); + sldDriveSpeed->setMarkerLength(20); + sldDriveSpeed->setStepLength(1); + sldDriveSpeed->setId("DriveSpeed"); + sldDriveSpeed->addActionListener(driveSpeedSliderActionListener); + lblDriveSpeedInfo = new gcn::Label(drivespeedlist[0]); - cmdSaveForDisk = new gcn::Button("Save config for disk"); - cmdSaveForDisk->setSize(160, BUTTON_HEIGHT); - cmdSaveForDisk->setBaseColor(gui_baseCol); - cmdSaveForDisk->setId("SaveForDisk"); - cmdSaveForDisk->addActionListener(saveForDiskActionListener); + cmdSaveForDisk = new gcn::Button("Save config for disk"); + cmdSaveForDisk->setSize(160, BUTTON_HEIGHT); + cmdSaveForDisk->setBaseColor(gui_baseCol); + cmdSaveForDisk->setId("SaveForDisk"); + cmdSaveForDisk->addActionListener(saveForDiskActionListener); - cmdCreateDDDisk = new gcn::Button("Create 3.5'' DD disk"); - cmdCreateDDDisk->setSize(160, BUTTON_HEIGHT); - cmdCreateDDDisk->setBaseColor(gui_baseCol); - cmdCreateDDDisk->setId("CreateDD"); - cmdCreateDDDisk->addActionListener(createDiskActionListener); + cmdCreateDDDisk = new gcn::Button("Create 3.5'' DD disk"); + cmdCreateDDDisk->setSize(160, BUTTON_HEIGHT); + cmdCreateDDDisk->setBaseColor(gui_baseCol); + cmdCreateDDDisk->setId("CreateDD"); + cmdCreateDDDisk->addActionListener(createDiskActionListener); - cmdCreateHDDisk = new gcn::Button("Create 3.5'' HD disk"); - cmdCreateHDDisk->setSize(160, BUTTON_HEIGHT); - cmdCreateHDDisk->setBaseColor(gui_baseCol); - cmdCreateHDDisk->setId("CreateHD"); - cmdCreateHDDisk->addActionListener(createDiskActionListener); - - for(i=0; i<4; ++i) - { - posX = DISTANCE_BORDER; - category.panel->add(chkDFx[i], posX, posY); - posX += 100; - category.panel->add(cboDFxType[i], posX, posY); - posX += cboDFxType[i]->getWidth() + 2 * DISTANCE_NEXT_X; - category.panel->add(chkDFxWriteProtect[i], posX, posY); - posX += chkDFxWriteProtect[i]->getWidth() + 4 * DISTANCE_NEXT_X; + cmdCreateHDDisk = new gcn::Button("Create 3.5'' HD disk"); + cmdCreateHDDisk->setSize(160, BUTTON_HEIGHT); + cmdCreateHDDisk->setBaseColor(gui_baseCol); + cmdCreateHDDisk->setId("CreateHD"); + cmdCreateHDDisk->addActionListener(createDiskActionListener); + + for(i=0; i<4; ++i) + { + posX = DISTANCE_BORDER; + category.panel->add(chkDFx[i], posX, posY); + posX += 100; + category.panel->add(cboDFxType[i], posX, posY); + posX += cboDFxType[i]->getWidth() + 2 * DISTANCE_NEXT_X; + category.panel->add(chkDFxWriteProtect[i], posX, posY); + posX += chkDFxWriteProtect[i]->getWidth() + 4 * DISTANCE_NEXT_X; // category.panel->add(cmdDFxInfo[i], posX, posY); - posX += cmdDFxInfo[i]->getWidth() + DISTANCE_NEXT_X; - category.panel->add(cmdDFxEject[i], posX, posY); - posX += cmdDFxEject[i]->getWidth() + DISTANCE_NEXT_X; - category.panel->add(cmdDFxSelect[i], posX, posY); - posY += chkDFx[i]->getHeight() + 8; + posX += cmdDFxInfo[i]->getWidth() + DISTANCE_NEXT_X; + category.panel->add(cmdDFxEject[i], posX, posY); + posX += cmdDFxEject[i]->getWidth() + DISTANCE_NEXT_X; + category.panel->add(cmdDFxSelect[i], posX, posY); + posY += chkDFx[i]->getHeight() + 8; - category.panel->add(cboDFxFile[i], DISTANCE_BORDER, posY); - if(i == 0) - { - posY += cboDFxFile[i]->getHeight() + 8; - category.panel->add(chkLoadConfig, DISTANCE_BORDER, posY); + category.panel->add(cboDFxFile[i], DISTANCE_BORDER, posY); + if(i == 0) + { + posY += cboDFxFile[i]->getHeight() + 8; + category.panel->add(chkLoadConfig, DISTANCE_BORDER, posY); + } + posY += cboDFxFile[i]->getHeight() + DISTANCE_NEXT_Y + 4; } - posY += cboDFxFile[i]->getHeight() + DISTANCE_NEXT_Y + 4; - } - - posX = DISTANCE_BORDER; - category.panel->add(lblDriveSpeed, posX, posY); - posX += lblDriveSpeed->getWidth() + 8; - category.panel->add(sldDriveSpeed, posX, posY); - posX += sldDriveSpeed->getWidth() + DISTANCE_NEXT_X; - category.panel->add(lblDriveSpeedInfo, posX, posY); - posY += sldDriveSpeed->getHeight() + DISTANCE_NEXT_Y; - posY = category.panel->getHeight() - DISTANCE_BORDER - BUTTON_HEIGHT; - category.panel->add(cmdSaveForDisk, DISTANCE_BORDER, posY); - category.panel->add(cmdCreateDDDisk, cmdSaveForDisk->getX() + cmdSaveForDisk->getWidth() + DISTANCE_NEXT_X, posY); - category.panel->add(cmdCreateHDDisk, cmdCreateDDDisk->getX() + cmdCreateDDDisk->getWidth() + DISTANCE_NEXT_X, posY); - - RefreshPanelFloppy(); + posX = DISTANCE_BORDER; + category.panel->add(lblDriveSpeed, posX, posY); + posX += lblDriveSpeed->getWidth() + 8; + category.panel->add(sldDriveSpeed, posX, posY); + posX += sldDriveSpeed->getWidth() + DISTANCE_NEXT_X; + category.panel->add(lblDriveSpeedInfo, posX, posY); + posY += sldDriveSpeed->getHeight() + DISTANCE_NEXT_Y; + + posY = category.panel->getHeight() - DISTANCE_BORDER - BUTTON_HEIGHT; + category.panel->add(cmdSaveForDisk, DISTANCE_BORDER, posY); + category.panel->add(cmdCreateDDDisk, cmdSaveForDisk->getX() + cmdSaveForDisk->getWidth() + DISTANCE_NEXT_X, posY); + category.panel->add(cmdCreateHDDisk, cmdCreateDDDisk->getX() + cmdCreateDDDisk->getWidth() + DISTANCE_NEXT_X, posY); + + RefreshPanelFloppy(); } void ExitPanelFloppy(void) { - for(int i=0; i<4; ++i) - { - delete chkDFx[i]; - delete cboDFxType[i]; - delete chkDFxWriteProtect[i]; - delete cmdDFxInfo[i]; - delete cmdDFxEject[i]; - delete cmdDFxSelect[i]; - delete cboDFxFile[i]; - } - delete chkLoadConfig; - delete lblDriveSpeed; - delete sldDriveSpeed; - delete lblDriveSpeedInfo; - delete cmdSaveForDisk; - delete cmdCreateDDDisk; - delete cmdCreateHDDisk; - - delete dfxCheckActionListener; - delete driveTypeActionListener; - delete dfxButtonActionListener; - delete diskFileActionListener; - delete driveSpeedSliderActionListener; - delete saveForDiskActionListener; - delete createDiskActionListener; + for(int i=0; i<4; ++i) + { + delete chkDFx[i]; + delete cboDFxType[i]; + delete chkDFxWriteProtect[i]; + delete cmdDFxInfo[i]; + delete cmdDFxEject[i]; + delete cmdDFxSelect[i]; + delete cboDFxFile[i]; + } + delete chkLoadConfig; + delete lblDriveSpeed; + delete sldDriveSpeed; + delete lblDriveSpeedInfo; + delete cmdSaveForDisk; + delete cmdCreateDDDisk; + delete cmdCreateHDDisk; + + delete dfxCheckActionListener; + delete driveTypeActionListener; + delete dfxButtonActionListener; + delete diskFileActionListener; + delete driveSpeedSliderActionListener; + delete saveForDiskActionListener; + delete createDiskActionListener; } static void AdjustDropDownControls(void) { - int i, j; - - bIgnoreListChange = true; - - for(i=0; i<4; ++i) - { - cboDFxFile[i]->clearSelected(); + int i, j; - if((changed_prefs.floppyslots[i].dfxtype != DRV_NONE) && strlen(changed_prefs.floppyslots[i].df) > 0) + bIgnoreListChange = true; + + for(i=0; i<4; ++i) { - for(j=0; jclearSelected(); + + if((changed_prefs.floppyslots[i].dfxtype != DRV_NONE) && strlen(changed_prefs.floppyslots[i].df) > 0) { - cboDFxFile[i]->setSelected(j); - break; + for(j=0; jsetSelected(j); + break; + } + } } - } } - } - - bIgnoreListChange = false; + + bIgnoreListChange = false; } void RefreshPanelFloppy(void) { - int i; - bool prevAvailable = true; - - AdjustDropDownControls(); + int i; + bool prevAvailable = true; - changed_prefs.nr_floppies = 0; - for(i=0; i<4; ++i) - { - bool driveEnabled = changed_prefs.floppyslots[i].dfxtype != DRV_NONE; - chkDFx[i]->setSelected(driveEnabled); - cboDFxType[i]->setSelected(changed_prefs.floppyslots[i].dfxtype + 1); - chkDFxWriteProtect[i]->setSelected(disk_getwriteprotect(&changed_prefs, changed_prefs.floppyslots[i].df)); - chkDFx[i]->setEnabled(prevAvailable); - cboDFxType[i]->setEnabled(prevAvailable); - - cmdDFxInfo[i]->setEnabled(driveEnabled); - cmdDFxEject[i]->setEnabled(driveEnabled); - cmdDFxSelect[i]->setEnabled(driveEnabled); - cboDFxFile[i]->setEnabled(driveEnabled); - - prevAvailable = driveEnabled; - if(driveEnabled) - changed_prefs.nr_floppies = i + 1; - } + AdjustDropDownControls(); - chkLoadConfig->setSelected(bLoadConfigForDisk); - - for(i=0; i<4; ++i) - { - if(changed_prefs.floppy_speed == drivespeedvalues[i]) + changed_prefs.nr_floppies = 0; + for(i=0; i<4; ++i) { - sldDriveSpeed->setValue(i); - lblDriveSpeedInfo->setCaption(drivespeedlist[i]); - break; + bool driveEnabled = changed_prefs.floppyslots[i].dfxtype != DRV_NONE; + chkDFx[i]->setSelected(driveEnabled); + cboDFxType[i]->setSelected(changed_prefs.floppyslots[i].dfxtype + 1); + chkDFxWriteProtect[i]->setSelected(disk_getwriteprotect(&changed_prefs, changed_prefs.floppyslots[i].df)); + chkDFx[i]->setEnabled(prevAvailable); + cboDFxType[i]->setEnabled(prevAvailable); + + cmdDFxInfo[i]->setEnabled(driveEnabled); + cmdDFxEject[i]->setEnabled(driveEnabled); + cmdDFxSelect[i]->setEnabled(driveEnabled); + cboDFxFile[i]->setEnabled(driveEnabled); + + prevAvailable = driveEnabled; + if(driveEnabled) + changed_prefs.nr_floppies = i + 1; } - } - + + chkLoadConfig->setSelected(bLoadConfigForDisk); + + for(i=0; i<4; ++i) + { + if(changed_prefs.floppy_speed == drivespeedvalues[i]) + { + sldDriveSpeed->setValue(i); + lblDriveSpeedInfo->setCaption(drivespeedlist[i]); + break; + } + } + } diff --git a/src/od-pandora/gui/PanelHD.cpp b/src/od-pandora/gui/PanelHD.cpp index b0d59217..cac8c5b8 100644 --- a/src/od-pandora/gui/PanelHD.cpp +++ b/src/od-pandora/gui/PanelHD.cpp @@ -11,7 +11,7 @@ #include "sysdeps.h" #include "config.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "uae.h" #include "autoconf.h" #include "filesys.h" @@ -22,15 +22,18 @@ enum { COL_DEVICE, COL_VOLUME, COL_PATH, COL_READWRITE, COL_SIZE, COL_BOOTPRI, COL_COUNT }; -static const char *column_caption[] = { - "Device", "Volume", "Path", "R/W", "Size", "Bootpri" }; -static const int COLUMN_SIZE[] = { - 50, // Device - 70, // Volume - 260, // Path - 40, // R/W - 50, // Size - 50 // Bootpri +static const char *column_caption[] = +{ + "Device", "Volume", "Path", "R/W", "Size", "Bootpri" +}; +static const int COLUMN_SIZE[] = +{ + 50, // Device + 70, // Volume + 260, // Path + 40, // R/W + 50, // Size + 50 // Bootpri }; static const char *cdfile_filter[] = { ".cue", ".ccd", ".iso", "\0" }; @@ -55,36 +58,37 @@ static gcn::Slider* sldCDVol; static int GetHDType(int index) { - int type; - struct uaedev_config_info *uci; - struct mountedinfo mi; + int type; + struct uaedev_config_info *uci; + struct mountedinfo mi; - type = get_filesys_unitconfig(&changed_prefs, index, &mi); - if (type < 0) { - uci = &changed_prefs.mountconfig[index]; - type = uci->ishdf ? FILESYS_HARDFILE : FILESYS_VIRTUAL; - } - return type; + type = get_filesys_unitconfig(&changed_prefs, index, &mi); + if (type < 0) + { + uci = &changed_prefs.mountconfig[index]; + type = uci->ishdf ? FILESYS_HARDFILE : FILESYS_VIRTUAL; + } + return type; } class CDfileListModel : public gcn::ListModel { - public: +public: CDfileListModel() { } - + int getNumberOfElements() { - return lstMRUCDList.size(); + return lstMRUCDList.size(); } std::string getElementAt(int i) { - if(i < 0 || i >= lstMRUCDList.size()) - return "---"; - return lstMRUCDList[i]; + if(i < 0 || i >= lstMRUCDList.size()) + return "---"; + return lstMRUCDList[i]; } }; static CDfileListModel cdfileList; @@ -92,20 +96,20 @@ static CDfileListModel cdfileList; class HDRemoveActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - for(int i=0; irequestFocus(); - RefreshPanelHD(); + cmdAddDirectory->requestFocus(); + RefreshPanelHD(); } }; static HDRemoveActionListener* hdRemoveActionListener; @@ -113,28 +117,28 @@ static HDRemoveActionListener* hdRemoveActionListener; class HDEditActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - for(int i=0; irequestFocus(); - break; + if (actionEvent.getSource() == listCmdProps[i]) + { + if (GetHDType(i) == FILESYS_VIRTUAL) + { + if(EditFilesysVirtual(i)) + gui_force_rtarea_hdchange(); + } + else + { + if(EditFilesysHardfile(i)) + gui_force_rtarea_hdchange(); + } + listCmdProps[i]->requestFocus(); + break; + } } - } - RefreshPanelHD(); + RefreshPanelHD(); } }; static HDEditActionListener* hdEditActionListener; @@ -142,13 +146,13 @@ static HDEditActionListener* hdEditActionListener; class AddVirtualHDActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if(EditFilesysVirtual(-1)) - gui_force_rtarea_hdchange(); - cmdAddDirectory->requestFocus(); - RefreshPanelHD(); + if(EditFilesysVirtual(-1)) + gui_force_rtarea_hdchange(); + cmdAddDirectory->requestFocus(); + RefreshPanelHD(); } }; AddVirtualHDActionListener* addVirtualHDActionListener; @@ -156,13 +160,13 @@ AddVirtualHDActionListener* addVirtualHDActionListener; class AddHardfileActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if(EditFilesysHardfile(-1)) - gui_force_rtarea_hdchange(); - cmdAddHardfile->requestFocus(); - RefreshPanelHD(); + if(EditFilesysHardfile(-1)) + gui_force_rtarea_hdchange(); + cmdAddHardfile->requestFocus(); + RefreshPanelHD(); } }; AddHardfileActionListener* addHardfileActionListener; @@ -170,13 +174,13 @@ AddHardfileActionListener* addHardfileActionListener; class CreateHardfileActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if(CreateFilesysHardfile()) - gui_force_rtarea_hdchange(); - cmdCreateHardfile->requestFocus(); - RefreshPanelHD(); + if(CreateFilesysHardfile()) + gui_force_rtarea_hdchange(); + cmdCreateHardfile->requestFocus(); + RefreshPanelHD(); } }; CreateHardfileActionListener* createHardfileActionListener; @@ -184,17 +188,20 @@ CreateHardfileActionListener* createHardfileActionListener; class CDCheckActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if(changed_prefs.cdslots[0].inuse) { - changed_prefs.cdslots[0].inuse = false; - changed_prefs.cdslots[0].type = SCSI_UNIT_DISABLED; - } else { - changed_prefs.cdslots[0].inuse = true; - changed_prefs.cdslots[0].type = SCSI_UNIT_IMAGE; - } - RefreshPanelHD(); + if(changed_prefs.cdslots[0].inuse) + { + changed_prefs.cdslots[0].inuse = false; + changed_prefs.cdslots[0].type = SCSI_UNIT_DISABLED; + } + else + { + changed_prefs.cdslots[0].inuse = true; + changed_prefs.cdslots[0].type = SCSI_UNIT_IMAGE; + } + RefreshPanelHD(); } }; CDCheckActionListener* cdCheckActionListener; @@ -202,42 +209,42 @@ CDCheckActionListener* cdCheckActionListener; class CDButtonActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if (actionEvent.getSource() == cmdCDEject) - { - //--------------------------------------- - // Eject CD from drive - //--------------------------------------- - strcpy(changed_prefs.cdslots[0].name, ""); - AdjustDropDownControls(); - } - else if(actionEvent.getSource() == cmdCDSelect) - { - char tmp[MAX_DPATH]; - - if(strlen(changed_prefs.cdslots[0].name) > 0) - strncpy(tmp, changed_prefs.cdslots[0].name, MAX_DPATH); - else - strncpy(tmp, currentDir, MAX_DPATH); - - if(SelectFile("Select CD image file", tmp, cdfile_filter)) - { - if(strncmp(changed_prefs.cdslots[0].name, tmp, MAX_DPATH)) - { - strncpy(changed_prefs.cdslots[0].name, tmp, sizeof(changed_prefs.cdslots[0].name)); - changed_prefs.cdslots[0].inuse = true; - changed_prefs.cdslots[0].type = SCSI_UNIT_IMAGE; - AddFileToCDList(tmp, 1); - extractPath(tmp, currentDir); - + if (actionEvent.getSource() == cmdCDEject) + { + //--------------------------------------- + // Eject CD from drive + //--------------------------------------- + strcpy(changed_prefs.cdslots[0].name, ""); AdjustDropDownControls(); - } - } - cmdCDSelect->requestFocus(); - } - RefreshPanelHD(); + } + else if(actionEvent.getSource() == cmdCDSelect) + { + char tmp[MAX_DPATH]; + + if(strlen(changed_prefs.cdslots[0].name) > 0) + strncpy(tmp, changed_prefs.cdslots[0].name, MAX_DPATH); + else + strncpy(tmp, currentDir, MAX_DPATH); + + if(SelectFile("Select CD image file", tmp, cdfile_filter)) + { + if(strncmp(changed_prefs.cdslots[0].name, tmp, MAX_DPATH)) + { + strncpy(changed_prefs.cdslots[0].name, tmp, sizeof(changed_prefs.cdslots[0].name)); + changed_prefs.cdslots[0].inuse = true; + changed_prefs.cdslots[0].type = SCSI_UNIT_IMAGE; + AddFileToCDList(tmp, 1); + extractPath(tmp, currentDir); + + AdjustDropDownControls(); + } + } + cmdCDSelect->requestFocus(); + } + RefreshPanelHD(); } }; CDButtonActionListener* cdButtonActionListener; @@ -245,18 +252,18 @@ CDButtonActionListener* cdButtonActionListener; class GenericActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if (actionEvent.getSource() == sldCDVol) - { - int newvol = 100 - (int) sldCDVol->getValue(); - if(changed_prefs.sound_volume_cd != newvol) + if (actionEvent.getSource() == sldCDVol) { - changed_prefs.sound_volume_cd = newvol; - RefreshPanelHD(); + int newvol = 100 - (int) sldCDVol->getValue(); + if(changed_prefs.sound_volume_cd != newvol) + { + changed_prefs.sound_volume_cd = newvol; + RefreshPanelHD(); + } } - } } }; GenericActionListener* genericActionListener; @@ -265,37 +272,37 @@ GenericActionListener* genericActionListener; static bool bIgnoreListChange = false; class CDFileActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - //--------------------------------------- - // CD image from list selected - //--------------------------------------- - if(!bIgnoreListChange) - { - int idx = cboCDFile->getSelected(); + //--------------------------------------- + // CD image from list selected + //--------------------------------------- + if(!bIgnoreListChange) + { + int idx = cboCDFile->getSelected(); - if(idx < 0) - { - strcpy(changed_prefs.cdslots[0].name, ""); - AdjustDropDownControls(); - } - else - { - if(cdfileList.getElementAt(idx).compare(changed_prefs.cdslots[0].name)) - { - strncpy(changed_prefs.cdslots[0].name, cdfileList.getElementAt(idx).c_str(), sizeof(changed_prefs.cdslots[0].name)); - changed_prefs.cdslots[0].inuse = true; - changed_prefs.cdslots[0].type = SCSI_UNIT_IMAGE; - lstMRUCDList.erase(lstMRUCDList.begin() + idx); - lstMRUCDList.insert(lstMRUCDList.begin(), changed_prefs.cdslots[0].name); - bIgnoreListChange = true; - cboCDFile->setSelected(0); - bIgnoreListChange = false; - } - } - } - RefreshPanelHD(); + if(idx < 0) + { + strcpy(changed_prefs.cdslots[0].name, ""); + AdjustDropDownControls(); + } + else + { + if(cdfileList.getElementAt(idx).compare(changed_prefs.cdslots[0].name)) + { + strncpy(changed_prefs.cdslots[0].name, cdfileList.getElementAt(idx).c_str(), sizeof(changed_prefs.cdslots[0].name)); + changed_prefs.cdslots[0].inuse = true; + changed_prefs.cdslots[0].type = SCSI_UNIT_IMAGE; + lstMRUCDList.erase(lstMRUCDList.begin() + idx); + lstMRUCDList.insert(lstMRUCDList.begin(), changed_prefs.cdslots[0].name); + bIgnoreListChange = true; + cboCDFile->setSelected(0); + bIgnoreListChange = false; + } + } + } + RefreshPanelHD(); } }; static CDFileActionListener* cdFileActionListener; @@ -303,301 +310,302 @@ static CDFileActionListener* cdFileActionListener; void InitPanelHD(const struct _ConfigCategory& category) { - int row, col; - int posX; - int posY = DISTANCE_BORDER; - char tmp[20]; - - hdRemoveActionListener = new HDRemoveActionListener(); - hdEditActionListener = new HDEditActionListener(); - addVirtualHDActionListener = new AddVirtualHDActionListener(); - addHardfileActionListener = new AddHardfileActionListener(); - createHardfileActionListener = new CreateHardfileActionListener(); - - for(col=0; colsetSize(category.panel->getWidth() - 2 * DISTANCE_BORDER, TEXTFIELD_HEIGHT + 4); - listEntry[row]->setBaseColor(gui_baseCol); - listEntry[row]->setFrameSize(0); - - listCmdProps[row] = new gcn::Button("..."); - listCmdProps[row]->setBaseColor(gui_baseCol); - listCmdProps[row]->setSize(SMALL_BUTTON_WIDTH, SMALL_BUTTON_HEIGHT); - snprintf(tmp, 20, "cmdProp%d", row); - listCmdProps[row]->setId(tmp); - listCmdProps[row]->addActionListener(hdEditActionListener); - - listCmdDelete[row] = new gcn::ImageButton("data/delete.png"); - listCmdDelete[row]->setBaseColor(gui_baseCol); - listCmdDelete[row]->setSize(SMALL_BUTTON_HEIGHT, SMALL_BUTTON_HEIGHT); - snprintf(tmp, 20, "cmdDel%d", row); - listCmdDelete[row]->setId(tmp); - listCmdDelete[row]->addActionListener(hdRemoveActionListener); - + hdRemoveActionListener = new HDRemoveActionListener(); + hdEditActionListener = new HDEditActionListener(); + addVirtualHDActionListener = new AddVirtualHDActionListener(); + addHardfileActionListener = new AddHardfileActionListener(); + createHardfileActionListener = new CreateHardfileActionListener(); + + for(col=0; colsetSize(category.panel->getWidth() - 2 * DISTANCE_BORDER, TEXTFIELD_HEIGHT + 4); + listEntry[row]->setBaseColor(gui_baseCol); + listEntry[row]->setFrameSize(0); + + listCmdProps[row] = new gcn::Button("..."); + listCmdProps[row]->setBaseColor(gui_baseCol); + listCmdProps[row]->setSize(SMALL_BUTTON_WIDTH, SMALL_BUTTON_HEIGHT); + snprintf(tmp, 20, "cmdProp%d", row); + listCmdProps[row]->setId(tmp); + listCmdProps[row]->addActionListener(hdEditActionListener); + + listCmdDelete[row] = new gcn::ImageButton("data/delete.png"); + listCmdDelete[row]->setBaseColor(gui_baseCol); + listCmdDelete[row]->setSize(SMALL_BUTTON_HEIGHT, SMALL_BUTTON_HEIGHT); + snprintf(tmp, 20, "cmdDel%d", row); + listCmdDelete[row]->setId(tmp); + listCmdDelete[row]->addActionListener(hdRemoveActionListener); + + for(col=0; colsetSize(COLUMN_SIZE[col] - 8, TEXTFIELD_HEIGHT); + listCells[row][col]->setEnabled(false); + listCells[row][col]->setBackgroundColor(gui_baseCol); + } + } + + cmdAddDirectory = new gcn::Button("Add Directory"); + cmdAddDirectory->setBaseColor(gui_baseCol); + cmdAddDirectory->setSize(BUTTON_WIDTH + 20, BUTTON_HEIGHT); + cmdAddDirectory->setId("cmdAddDir"); + cmdAddDirectory->addActionListener(addVirtualHDActionListener); + + cmdAddHardfile = new gcn::Button("Add Hardfile"); + cmdAddHardfile->setBaseColor(gui_baseCol); + cmdAddHardfile->setSize(BUTTON_WIDTH + 20, BUTTON_HEIGHT); + cmdAddHardfile->setId("cmdAddHDF"); + cmdAddHardfile->addActionListener(addHardfileActionListener); + + cmdCreateHardfile = new gcn::Button("Create Hardfile"); + cmdCreateHardfile->setBaseColor(gui_baseCol); + cmdCreateHardfile->setSize(BUTTON_WIDTH + 20, BUTTON_HEIGHT); + cmdCreateHardfile->setId("cmdCreateHDF"); + cmdCreateHardfile->addActionListener(createHardfileActionListener); + + cdCheckActionListener = new CDCheckActionListener(); + cdButtonActionListener = new CDButtonActionListener(); + cdFileActionListener = new CDFileActionListener(); + genericActionListener = new GenericActionListener(); + + chkCD = new gcn::UaeCheckBox("CD drive"); + chkCD->addActionListener(cdCheckActionListener); + + cmdCDEject = new gcn::Button("Eject"); + cmdCDEject->setSize(SMALL_BUTTON_WIDTH * 2, SMALL_BUTTON_HEIGHT); + cmdCDEject->setBaseColor(gui_baseCol); + cmdCDEject->setId("cdEject"); + cmdCDEject->addActionListener(cdButtonActionListener); + + cmdCDSelect = new gcn::Button("..."); + cmdCDSelect->setSize(SMALL_BUTTON_WIDTH, SMALL_BUTTON_HEIGHT); + cmdCDSelect->setBaseColor(gui_baseCol); + cmdCDSelect->setId("CDSelect"); + cmdCDSelect->addActionListener(cdButtonActionListener); + + cboCDFile = new gcn::UaeDropDown(&cdfileList); + cboCDFile->setSize(category.panel->getWidth() - 2 * DISTANCE_BORDER, DROPDOWN_HEIGHT); + cboCDFile->setBaseColor(gui_baseCol); + cboCDFile->setId("cboCD"); + cboCDFile->addActionListener(cdFileActionListener); + + lblCDVol = new gcn::Label("CD Volume:"); + lblCDVol->setSize(80, LABEL_HEIGHT); + lblCDVol->setAlignment(gcn::Graphics::RIGHT); + sldCDVol = new gcn::Slider(0, 100); + sldCDVol->setSize(200, SLIDER_HEIGHT); + sldCDVol->setBaseColor(gui_baseCol); + sldCDVol->setMarkerLength(20); + sldCDVol->setStepLength(10); + sldCDVol->setId("CDVol"); + sldCDVol->addActionListener(genericActionListener); + lblCDVolInfo = new gcn::Label("80 %"); + + posX = DISTANCE_BORDER + 2 + SMALL_BUTTON_WIDTH + 34; for(col=0; colsetSize(COLUMN_SIZE[col] - 8, TEXTFIELD_HEIGHT); - listCells[row][col]->setEnabled(false); - listCells[row][col]->setBackgroundColor(gui_baseCol); + category.panel->add(lblList[col], posX, posY); + posX += COLUMN_SIZE[col]; } - } - - cmdAddDirectory = new gcn::Button("Add Directory"); - cmdAddDirectory->setBaseColor(gui_baseCol); - cmdAddDirectory->setSize(BUTTON_WIDTH + 20, BUTTON_HEIGHT); - cmdAddDirectory->setId("cmdAddDir"); - cmdAddDirectory->addActionListener(addVirtualHDActionListener); - - cmdAddHardfile = new gcn::Button("Add Hardfile"); - cmdAddHardfile->setBaseColor(gui_baseCol); - cmdAddHardfile->setSize(BUTTON_WIDTH + 20, BUTTON_HEIGHT); - cmdAddHardfile->setId("cmdAddHDF"); - cmdAddHardfile->addActionListener(addHardfileActionListener); + posY += lblList[0]->getHeight() + 2; - cmdCreateHardfile = new gcn::Button("Create Hardfile"); - cmdCreateHardfile->setBaseColor(gui_baseCol); - cmdCreateHardfile->setSize(BUTTON_WIDTH + 20, BUTTON_HEIGHT); - cmdCreateHardfile->setId("cmdCreateHDF"); - cmdCreateHardfile->addActionListener(createHardfileActionListener); - - cdCheckActionListener = new CDCheckActionListener(); - cdButtonActionListener = new CDButtonActionListener(); - cdFileActionListener = new CDFileActionListener(); - genericActionListener = new GenericActionListener(); - - chkCD = new gcn::UaeCheckBox("CD drive"); - chkCD->addActionListener(cdCheckActionListener); - - cmdCDEject = new gcn::Button("Eject"); - cmdCDEject->setSize(SMALL_BUTTON_WIDTH * 2, SMALL_BUTTON_HEIGHT); - cmdCDEject->setBaseColor(gui_baseCol); - cmdCDEject->setId("cdEject"); - cmdCDEject->addActionListener(cdButtonActionListener); - - cmdCDSelect = new gcn::Button("..."); - cmdCDSelect->setSize(SMALL_BUTTON_WIDTH, SMALL_BUTTON_HEIGHT); - cmdCDSelect->setBaseColor(gui_baseCol); - cmdCDSelect->setId("CDSelect"); - cmdCDSelect->addActionListener(cdButtonActionListener); - - cboCDFile = new gcn::UaeDropDown(&cdfileList); - cboCDFile->setSize(category.panel->getWidth() - 2 * DISTANCE_BORDER, DROPDOWN_HEIGHT); - cboCDFile->setBaseColor(gui_baseCol); - cboCDFile->setId("cboCD"); - cboCDFile->addActionListener(cdFileActionListener); - - lblCDVol = new gcn::Label("CD Volume:"); - lblCDVol->setSize(80, LABEL_HEIGHT); - lblCDVol->setAlignment(gcn::Graphics::RIGHT); - sldCDVol = new gcn::Slider(0, 100); - sldCDVol->setSize(200, SLIDER_HEIGHT); - sldCDVol->setBaseColor(gui_baseCol); - sldCDVol->setMarkerLength(20); - sldCDVol->setStepLength(10); - sldCDVol->setId("CDVol"); - sldCDVol->addActionListener(genericActionListener); - lblCDVolInfo = new gcn::Label("80 %"); - - posX = DISTANCE_BORDER + 2 + SMALL_BUTTON_WIDTH + 34; - for(col=0; coladd(lblList[col], posX, posY); - posX += COLUMN_SIZE[col]; - } - posY += lblList[0]->getHeight() + 2; - - for(row=0; rowadd(listCmdProps[row], posX, 2); - posX += listCmdProps[row]->getWidth() + 4; - listEntry[row]->add(listCmdDelete[row], posX, 2); - posX += listCmdDelete[row]->getWidth() + 8; - for(col=0; coladd(listCells[row][col], posX, 2); - posX += COLUMN_SIZE[col]; + posX = 0; + listEntry[row]->add(listCmdProps[row], posX, 2); + posX += listCmdProps[row]->getWidth() + 4; + listEntry[row]->add(listCmdDelete[row], posX, 2); + posX += listCmdDelete[row]->getWidth() + 8; + for(col=0; coladd(listCells[row][col], posX, 2); + posX += COLUMN_SIZE[col]; + } + category.panel->add(listEntry[row], DISTANCE_BORDER, posY); + posY += listEntry[row]->getHeight() + 4; } - category.panel->add(listEntry[row], DISTANCE_BORDER, posY); - posY += listEntry[row]->getHeight() + 4; - } - - posY += DISTANCE_NEXT_Y; - category.panel->add(cmdAddDirectory, DISTANCE_BORDER, posY); - category.panel->add(cmdAddHardfile, DISTANCE_BORDER + cmdAddDirectory->getWidth() + DISTANCE_NEXT_X, posY); - category.panel->add(cmdCreateHardfile, cmdAddHardfile->getX() + cmdAddHardfile->getWidth() + DISTANCE_NEXT_X, posY); - posY += cmdAddDirectory->getHeight() + 2 * DISTANCE_NEXT_Y; - category.panel->add(chkCD, DISTANCE_BORDER, posY + 2); - category.panel->add(cmdCDEject, category.panel->getWidth() - cmdCDEject->getWidth() - DISTANCE_NEXT_X - cmdCDSelect->getWidth() - DISTANCE_BORDER, posY); - category.panel->add(cmdCDSelect, category.panel->getWidth() - cmdCDSelect->getWidth() - DISTANCE_BORDER, posY); - posY += cmdCDSelect->getHeight() + DISTANCE_NEXT_Y; - category.panel->add(cboCDFile, DISTANCE_BORDER, posY); - posY += cboCDFile->getHeight() + DISTANCE_NEXT_Y; - - category.panel->add(lblCDVol, DISTANCE_BORDER, posY); - category.panel->add(sldCDVol, DISTANCE_BORDER + lblCDVol->getWidth() + 8, posY); - category.panel->add(lblCDVolInfo, sldCDVol->getX() + sldCDVol->getWidth() + 12, posY); - posY += sldCDVol->getHeight() + DISTANCE_NEXT_Y; - - RefreshPanelHD(); + posY += DISTANCE_NEXT_Y; + category.panel->add(cmdAddDirectory, DISTANCE_BORDER, posY); + category.panel->add(cmdAddHardfile, DISTANCE_BORDER + cmdAddDirectory->getWidth() + DISTANCE_NEXT_X, posY); + category.panel->add(cmdCreateHardfile, cmdAddHardfile->getX() + cmdAddHardfile->getWidth() + DISTANCE_NEXT_X, posY); + + posY += cmdAddDirectory->getHeight() + 2 * DISTANCE_NEXT_Y; + category.panel->add(chkCD, DISTANCE_BORDER, posY + 2); + category.panel->add(cmdCDEject, category.panel->getWidth() - cmdCDEject->getWidth() - DISTANCE_NEXT_X - cmdCDSelect->getWidth() - DISTANCE_BORDER, posY); + category.panel->add(cmdCDSelect, category.panel->getWidth() - cmdCDSelect->getWidth() - DISTANCE_BORDER, posY); + posY += cmdCDSelect->getHeight() + DISTANCE_NEXT_Y; + category.panel->add(cboCDFile, DISTANCE_BORDER, posY); + posY += cboCDFile->getHeight() + DISTANCE_NEXT_Y; + + category.panel->add(lblCDVol, DISTANCE_BORDER, posY); + category.panel->add(sldCDVol, DISTANCE_BORDER + lblCDVol->getWidth() + 8, posY); + category.panel->add(lblCDVolInfo, sldCDVol->getX() + sldCDVol->getWidth() + 12, posY); + posY += sldCDVol->getHeight() + DISTANCE_NEXT_Y; + + RefreshPanelHD(); } void ExitPanelHD(void) { - int row, col; + int row, col; - for(col=0; colclearSelected(); - if((changed_prefs.cdslots[0].inuse) && strlen(changed_prefs.cdslots[0].name) > 0) - { - for(i = 0; i < lstMRUCDList.size(); ++i) + cboCDFile->clearSelected(); + if((changed_prefs.cdslots[0].inuse) && strlen(changed_prefs.cdslots[0].name) > 0) { - if(!lstMRUCDList[i].compare(changed_prefs.cdslots[0].name)) - { - cboCDFile->setSelected(i); - break; - } + for(i = 0; i < lstMRUCDList.size(); ++i) + { + if(!lstMRUCDList[i].compare(changed_prefs.cdslots[0].name)) + { + cboCDFile->setSelected(i); + break; + } + } } - } } void RefreshPanelHD(void) { - int row, col; - char tmp[32]; - struct mountedinfo mi; - struct uaedev_config_info *uci; - int nosize = 0, type; - - AdjustDropDownControls(); + int row, col; + char tmp[32]; + struct mountedinfo mi; + struct uaedev_config_info *uci; + int nosize = 0, type; - for(row=0; rowdevname && uci->devname[0]) + AdjustDropDownControls(); + + for(row=0; rowishdf ? FILESYS_HARDFILE : FILESYS_VIRTUAL; - nosize = 1; - } - - if(type == FILESYS_VIRTUAL) - { - listCells[row][COL_DEVICE]->setText(uci->devname); - listCells[row][COL_VOLUME]->setText(uci->volname); - listCells[row][COL_PATH]->setText(uci->rootdir); - if(uci->readonly) - listCells[row][COL_READWRITE]->setText("no"); + uci = &changed_prefs.mountconfig[row]; + if(uci->devname && uci->devname[0]) + { + type = get_filesys_unitconfig(&changed_prefs, row, &mi); + if (type < 0) + { + type = uci->ishdf ? FILESYS_HARDFILE : FILESYS_VIRTUAL; + nosize = 1; + } + + if(type == FILESYS_VIRTUAL) + { + listCells[row][COL_DEVICE]->setText(uci->devname); + listCells[row][COL_VOLUME]->setText(uci->volname); + listCells[row][COL_PATH]->setText(uci->rootdir); + if(uci->readonly) + listCells[row][COL_READWRITE]->setText("no"); + else + listCells[row][COL_READWRITE]->setText("yes"); + listCells[row][COL_SIZE]->setText("n/a"); + snprintf(tmp, 32, "%d", uci->bootpri); + listCells[row][COL_BOOTPRI]->setText(tmp); + } + else + { + listCells[row][COL_DEVICE]->setText(uci->devname); + listCells[row][COL_VOLUME]->setText("n/a"); + listCells[row][COL_PATH]->setText(uci->rootdir); + if(uci->readonly) + listCells[row][COL_READWRITE]->setText("no"); + else + listCells[row][COL_READWRITE]->setText("yes"); + if (mi.size >= 1024 * 1024 * 1024) + snprintf (tmp, 32, "%.1fG", ((double)(uae_u32)(mi.size / (1024 * 1024))) / 1024.0); + else + snprintf (tmp, 32, "%.1fM", ((double)(uae_u32)(mi.size / (1024))) / 1024.0); + listCells[row][COL_SIZE]->setText(tmp); + snprintf(tmp, 32, "%d", uci->bootpri); + listCells[row][COL_BOOTPRI]->setText(tmp); + } + listCmdProps[row]->setEnabled(true); + listCmdDelete[row]->setEnabled(true); + } else - listCells[row][COL_READWRITE]->setText("yes"); - listCells[row][COL_SIZE]->setText("n/a"); - snprintf(tmp, 32, "%d", uci->bootpri); - listCells[row][COL_BOOTPRI]->setText(tmp); - } - else - { - listCells[row][COL_DEVICE]->setText(uci->devname); - listCells[row][COL_VOLUME]->setText("n/a"); - listCells[row][COL_PATH]->setText(uci->rootdir); - if(uci->readonly) - listCells[row][COL_READWRITE]->setText("no"); - else - listCells[row][COL_READWRITE]->setText("yes"); - if (mi.size >= 1024 * 1024 * 1024) - snprintf (tmp, 32, "%.1fG", ((double)(uae_u32)(mi.size / (1024 * 1024))) / 1024.0); - else - snprintf (tmp, 32, "%.1fM", ((double)(uae_u32)(mi.size / (1024))) / 1024.0); - listCells[row][COL_SIZE]->setText(tmp); - snprintf(tmp, 32, "%d", uci->bootpri); - listCells[row][COL_BOOTPRI]->setText(tmp); - } - listCmdProps[row]->setEnabled(true); - listCmdDelete[row]->setEnabled(true); + { + // Empty slot + for(col=0; colsetText(""); + listCmdProps[row]->setEnabled(false); + listCmdDelete[row]->setEnabled(false); + } } - else - { - // Empty slot - for(col=0; colsetText(""); - listCmdProps[row]->setEnabled(false); - listCmdDelete[row]->setEnabled(false); - } - } - - chkCD->setSelected(changed_prefs.cdslots[0].inuse); - cmdCDEject->setEnabled(changed_prefs.cdslots[0].inuse); - cmdCDSelect->setEnabled(changed_prefs.cdslots[0].inuse); - cboCDFile->setEnabled(changed_prefs.cdslots[0].inuse); - sldCDVol->setEnabled(changed_prefs.cdslots[0].inuse); - - sldCDVol->setValue(100 - changed_prefs.sound_volume_cd); - snprintf(tmp, 32, "%d %%", 100 - changed_prefs.sound_volume_cd); - lblCDVolInfo->setCaption(tmp); + + chkCD->setSelected(changed_prefs.cdslots[0].inuse); + cmdCDEject->setEnabled(changed_prefs.cdslots[0].inuse); + cmdCDSelect->setEnabled(changed_prefs.cdslots[0].inuse); + cboCDFile->setEnabled(changed_prefs.cdslots[0].inuse); + sldCDVol->setEnabled(changed_prefs.cdslots[0].inuse); + + sldCDVol->setValue(100 - changed_prefs.sound_volume_cd); + snprintf(tmp, 32, "%d %%", 100 - changed_prefs.sound_volume_cd); + lblCDVolInfo->setCaption(tmp); } int count_HDs(struct uae_prefs *p) { - int row; - struct uaedev_config_info *uci; - int cnt = 0; - - for(row=0; rowmountconfig[row]; - if(uci->devname && uci->devname[0]) - { - ++cnt; - } - } + int row; + struct uaedev_config_info *uci; + int cnt = 0; - return cnt; + for(row=0; rowmountconfig[row]; + if(uci->devname && uci->devname[0]) + { + ++cnt; + } + } + + return cnt; } diff --git a/src/od-pandora/gui/PanelInput.cpp b/src/od-pandora/gui/PanelInput.cpp index 542fe66d..68ba5270 100644 --- a/src/od-pandora/gui/PanelInput.cpp +++ b/src/od-pandora/gui/PanelInput.cpp @@ -11,7 +11,7 @@ #include "sysdeps.h" #include "config.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "uae.h" #include "autoconf.h" #include "filesys.h" @@ -39,7 +39,7 @@ static gcn::Label *lblTapDelay; static gcn::UaeDropDown* cboTapDelay; static gcn::UaeCheckBox* chkMouseHack; #endif - + static gcn::UaeCheckBox* chkCustomCtrl; static gcn::Label *lblA; static gcn::UaeDropDown* cboA; @@ -67,31 +67,31 @@ static gcn::UaeDropDown* KeyForMenu; class StringListModel : public gcn::ListModel { - private: +private: std::vector values; - public: +public: StringListModel(const char *entries[], int count) { - for(int i=0; i= values.size()) - return "---"; - return values[i]; + if(i < 0 || i >= values.size()) + return "---"; + return values[i]; } }; @@ -106,162 +106,202 @@ const char *tapDelayValues[] = { "Normal", "Short", "None" }; StringListModel tapDelayList(tapDelayValues, 3); #endif -static const int ControlKey_SDLKeyValues[] = { SDLK_F11 , SDLK_F12, SDLK_LALT , SDLK_LCTRL }; +static const int ControlKey_SDLKeyValues[] = { SDLK_F11, SDLK_F12, SDLK_LALT, SDLK_LCTRL }; const char *ControlKeyValues[] = { "F11", "F12", "LeftAlt", "LeftCtrl" }; StringListModel ControlKeyList(ControlKeyValues, 4); -const char *mappingValues[] = { - "CD32 rwd", "CD32 ffw", "CD32 play", "CD32 yellow", "CD32 green", - "Joystick Right", "Joystick Left", "Joystick Down", "Joystick Up", - "Joystick fire but.2", "Joystick fire but.1", "Mouse right button", "Mouse left button", - "------------------", - "Arrow Up", "Arrow Down", "Arrow Left", "Arrow Right", "Numpad 0", "Numpad 1", "Numpad 2", - "Numpad 3", "Numpad 4", "Numpad 5", "Numpad 6", "Numpad 7", "Numpad 8", "Numpad 9", - "Numpad Enter", "Numpad /", "Numpad *", "Numpad -", "Numpad +", - "Numpad Delete", "Numpad (", "Numpad )", - "Space", "Backspace", "Tab", "Return", "Escape", "Delete", - "Left Shift", "Right Shift", "CAPS LOCK", "CTRL", "Left ALT", "Right ALT", - "Left Amiga Key", "Right Amiga Key", "Help", "Left Bracket", "Right Bracket", - "Semicolon", "Comma", "Period", "Slash", "Backslash", "Quote", "#", - "", "Backquote", "-", "=", - "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", - "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", - "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", - "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "NULL" +const char *mappingValues[] = +{ + "CD32 rwd", "CD32 ffw", "CD32 play", "CD32 yellow", "CD32 green", + "Joystick Right", "Joystick Left", "Joystick Down", "Joystick Up", + "Joystick fire but.2", "Joystick fire but.1", "Mouse right button", "Mouse left button", + "------------------", + "Arrow Up", "Arrow Down", "Arrow Left", "Arrow Right", "Numpad 0", "Numpad 1", "Numpad 2", + "Numpad 3", "Numpad 4", "Numpad 5", "Numpad 6", "Numpad 7", "Numpad 8", "Numpad 9", + "Numpad Enter", "Numpad /", "Numpad *", "Numpad -", "Numpad +", + "Numpad Delete", "Numpad (", "Numpad )", + "Space", "Backspace", "Tab", "Return", "Escape", "Delete", + "Left Shift", "Right Shift", "CAPS LOCK", "CTRL", "Left ALT", "Right ALT", + "Left Amiga Key", "Right Amiga Key", "Help", "Left Bracket", "Right Bracket", + "Semicolon", "Comma", "Period", "Slash", "Backslash", "Quote", "#", + "", "Backquote", "-", "=", + "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", + "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", + "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", + "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "NULL" }; StringListModel mappingList(mappingValues, 110); -static int amigaKey[] = - { REMAP_CD32_RWD, REMAP_CD32_FFW, REMAP_CD32_PLAY, REMAP_CD32_YELLOW, REMAP_CD32_GREEN, - REMAP_JOY_RIGHT, REMAP_JOY_LEFT, REMAP_JOY_DOWN, REMAP_JOY_UP, REMAP_JOYBUTTON_TWO, REMAP_JOYBUTTON_ONE, REMAP_MOUSEBUTTON_RIGHT, REMAP_MOUSEBUTTON_LEFT, - 0, AK_UP, AK_DN, AK_LF, AK_RT, AK_NP0, AK_NP1, AK_NP2, /* 13 - 20 */ - AK_NP3, AK_NP4, AK_NP5, AK_NP6, AK_NP7, AK_NP8, AK_NP9, AK_ENT, /* 21 - 28 */ - AK_NPDIV, AK_NPMUL, AK_NPSUB, AK_NPADD, AK_NPDEL, AK_NPLPAREN, AK_NPRPAREN, AK_SPC, /* 29 - 36 */ - AK_BS, AK_TAB, AK_RET, AK_ESC, AK_DEL, AK_LSH, AK_RSH, AK_CAPSLOCK, /* 37 - 44 */ - AK_CTRL, AK_LALT, AK_RALT, AK_LAMI, AK_RAMI, AK_HELP, AK_LBRACKET, AK_RBRACKET, /* 45 - 52 */ - AK_SEMICOLON, AK_COMMA, AK_PERIOD, AK_SLASH, AK_BACKSLASH, AK_QUOTE, AK_NUMBERSIGN, AK_LTGT, /* 53 - 60 */ - AK_BACKQUOTE, AK_MINUS, AK_EQUAL, AK_A, AK_B, AK_C, AK_D, AK_E, /* 61 - 68 */ - AK_F, AK_G, AK_H, AK_I, AK_J, AK_K, AK_L, AK_M, /* 69 - 76 */ - AK_N, AK_O, AK_P, AK_Q, AK_R, AK_S, AK_T, AK_U, /* 77 - 84 */ - AK_V, AK_W, AK_X, AK_Y, AK_Z, AK_1, AK_2, AK_3, /* 85 - 92 */ - AK_4, AK_5, AK_6, AK_7, AK_8, AK_9, AK_0, AK_F1, /* 93 - 100 */ - AK_F2, AK_F3, AK_F4, AK_F5, AK_F6, AK_F7, AK_F8, AK_F9, /* 101 - 108 */ - AK_F10, 0 }; /* 109 - 110 */ +static int amigaKey[] = +{ + REMAP_CD32_RWD, REMAP_CD32_FFW, REMAP_CD32_PLAY, REMAP_CD32_YELLOW, REMAP_CD32_GREEN, + REMAP_JOY_RIGHT, REMAP_JOY_LEFT, REMAP_JOY_DOWN, REMAP_JOY_UP, REMAP_JOYBUTTON_TWO, REMAP_JOYBUTTON_ONE, REMAP_MOUSEBUTTON_RIGHT, REMAP_MOUSEBUTTON_LEFT, + 0, AK_UP, AK_DN, AK_LF, AK_RT, AK_NP0, AK_NP1, AK_NP2, /* 13 - 20 */ + AK_NP3, AK_NP4, AK_NP5, AK_NP6, AK_NP7, AK_NP8, AK_NP9, AK_ENT, /* 21 - 28 */ + AK_NPDIV, AK_NPMUL, AK_NPSUB, AK_NPADD, AK_NPDEL, AK_NPLPAREN, AK_NPRPAREN, AK_SPC, /* 29 - 36 */ + AK_BS, AK_TAB, AK_RET, AK_ESC, AK_DEL, AK_LSH, AK_RSH, AK_CAPSLOCK, /* 37 - 44 */ + AK_CTRL, AK_LALT, AK_RALT, AK_LAMI, AK_RAMI, AK_HELP, AK_LBRACKET, AK_RBRACKET, /* 45 - 52 */ + AK_SEMICOLON, AK_COMMA, AK_PERIOD, AK_SLASH, AK_BACKSLASH, AK_QUOTE, AK_NUMBERSIGN, AK_LTGT, /* 53 - 60 */ + AK_BACKQUOTE, AK_MINUS, AK_EQUAL, AK_A, AK_B, AK_C, AK_D, AK_E, /* 61 - 68 */ + AK_F, AK_G, AK_H, AK_I, AK_J, AK_K, AK_L, AK_M, /* 69 - 76 */ + AK_N, AK_O, AK_P, AK_Q, AK_R, AK_S, AK_T, AK_U, /* 77 - 84 */ + AK_V, AK_W, AK_X, AK_Y, AK_Z, AK_1, AK_2, AK_3, /* 85 - 92 */ + AK_4, AK_5, AK_6, AK_7, AK_8, AK_9, AK_0, AK_F1, /* 93 - 100 */ + AK_F2, AK_F3, AK_F4, AK_F5, AK_F6, AK_F7, AK_F8, AK_F9, /* 101 - 108 */ + AK_F10, 0 +}; /* 109 - 110 */ extern int customControlMap[SDLK_LAST]; static int GetAmigaKeyIndex(int key) { - for(int i=0; i < 110; ++i) { - if(amigaKey[i] == key) - return i; - } - return 13; // Default: no key + for(int i=0; i < 110; ++i) + { + if(amigaKey[i] == key) + return i; + } + return 13; // Default: no key } class InputActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if (actionEvent.getSource() == cboPort0) { - // Handle new device in port 0 - switch(cboPort0->getSelected()) { - case 0: changed_prefs.jports[0].id = JSEM_MICE; changed_prefs.jports[0].mode = JSEM_MODE_MOUSE; break; - case 1: changed_prefs.jports[0].id = JSEM_MICE + 1; changed_prefs.jports[0].mode = JSEM_MODE_MOUSE; break; - case 2: changed_prefs.jports[0].id = JSEM_JOYS; changed_prefs.jports[0].mode = JSEM_MODE_JOYSTICK; break; - case 3: changed_prefs.jports[0].id = JSEM_JOYS; changed_prefs.jports[0].mode = JSEM_MODE_JOYSTICK_CD32; break; - case 4: changed_prefs.jports[0].id = -1; changed_prefs.jports[0].mode = JSEM_MODE_DEFAULT; break; - default:changed_prefs.jports[0].id = JSEM_JOYS + cboPort0->getSelected() - 4; - changed_prefs.jports[0].mode = JSEM_MODE_JOYSTICK; - break; + if (actionEvent.getSource() == cboPort0) + { + // Handle new device in port 0 + switch(cboPort0->getSelected()) + { + case 0: + changed_prefs.jports[0].id = JSEM_MICE; + changed_prefs.jports[0].mode = JSEM_MODE_MOUSE; + break; + case 1: + changed_prefs.jports[0].id = JSEM_MICE + 1; + changed_prefs.jports[0].mode = JSEM_MODE_MOUSE; + break; + case 2: + changed_prefs.jports[0].id = JSEM_JOYS; + changed_prefs.jports[0].mode = JSEM_MODE_JOYSTICK; + break; + case 3: + changed_prefs.jports[0].id = JSEM_JOYS; + changed_prefs.jports[0].mode = JSEM_MODE_JOYSTICK_CD32; + break; + case 4: + changed_prefs.jports[0].id = -1; + changed_prefs.jports[0].mode = JSEM_MODE_DEFAULT; + break; + default: + changed_prefs.jports[0].id = JSEM_JOYS + cboPort0->getSelected() - 4; + changed_prefs.jports[0].mode = JSEM_MODE_JOYSTICK; + break; + } + inputdevice_updateconfig(NULL, &changed_prefs); } - inputdevice_updateconfig(NULL, &changed_prefs); - } - - else if (actionEvent.getSource() == cboPort1) { - // Handle new device in port 1 - switch(cboPort1->getSelected()) { - case 0: changed_prefs.jports[1].id = JSEM_MICE; changed_prefs.jports[1].mode = JSEM_MODE_MOUSE; break; - case 1: changed_prefs.jports[1].id = JSEM_MICE + 1; changed_prefs.jports[1].mode = JSEM_MODE_MOUSE; break; - case 2: changed_prefs.jports[1].id = JSEM_JOYS; changed_prefs.jports[1].mode = JSEM_MODE_JOYSTICK; break; - case 3: changed_prefs.jports[1].id = JSEM_JOYS; changed_prefs.jports[1].mode = JSEM_MODE_JOYSTICK_CD32; break; - case 4: changed_prefs.jports[1].id = -1; changed_prefs.jports[1].mode = JSEM_MODE_DEFAULT; break; - default:changed_prefs.jports[1].id = JSEM_JOYS + cboPort1->getSelected() - 4; - changed_prefs.jports[1].mode = JSEM_MODE_JOYSTICK; - break; + + else if (actionEvent.getSource() == cboPort1) + { + // Handle new device in port 1 + switch(cboPort1->getSelected()) + { + case 0: + changed_prefs.jports[1].id = JSEM_MICE; + changed_prefs.jports[1].mode = JSEM_MODE_MOUSE; + break; + case 1: + changed_prefs.jports[1].id = JSEM_MICE + 1; + changed_prefs.jports[1].mode = JSEM_MODE_MOUSE; + break; + case 2: + changed_prefs.jports[1].id = JSEM_JOYS; + changed_prefs.jports[1].mode = JSEM_MODE_JOYSTICK; + break; + case 3: + changed_prefs.jports[1].id = JSEM_JOYS; + changed_prefs.jports[1].mode = JSEM_MODE_JOYSTICK_CD32; + break; + case 4: + changed_prefs.jports[1].id = -1; + changed_prefs.jports[1].mode = JSEM_MODE_DEFAULT; + break; + default: + changed_prefs.jports[1].id = JSEM_JOYS + cboPort1->getSelected() - 4; + changed_prefs.jports[1].mode = JSEM_MODE_JOYSTICK; + break; + } + inputdevice_updateconfig(NULL, &changed_prefs); + } + + else if (actionEvent.getSource() == cboAutofire) + { + if(cboAutofire->getSelected() == 0) + changed_prefs.input_autofire_linecnt = 0; + else if(cboAutofire->getSelected() == 1) + changed_prefs.input_autofire_linecnt = 12 * 312; + else if (cboAutofire->getSelected() == 2) + changed_prefs.input_autofire_linecnt = 8 * 312; + else + changed_prefs.input_autofire_linecnt = 4 * 312; + } + + else if (actionEvent.getSource() == sldMouseSpeed) + { + changed_prefs.input_joymouse_multiplier = mousespeed_values[(int)(sldMouseSpeed->getValue())]; + RefreshPanelInput(); } - inputdevice_updateconfig(NULL, &changed_prefs); - } - - else if (actionEvent.getSource() == cboAutofire) - { - if(cboAutofire->getSelected() == 0) - changed_prefs.input_autofire_linecnt = 0; - else if(cboAutofire->getSelected() == 1) - changed_prefs.input_autofire_linecnt = 12 * 312; - else if (cboAutofire->getSelected() == 2) - changed_prefs.input_autofire_linecnt = 8 * 312; - else - changed_prefs.input_autofire_linecnt = 4 * 312; - } - - else if (actionEvent.getSource() == sldMouseSpeed) - { - changed_prefs.input_joymouse_multiplier = mousespeed_values[(int)(sldMouseSpeed->getValue())]; - RefreshPanelInput(); - } #ifndef RASPBERRY - else if (actionEvent.getSource() == cboTapDelay) - { - if(cboTapDelay->getSelected() == 0) - changed_prefs.pandora_tapDelay = 10; - else if (cboTapDelay->getSelected() == 1) - changed_prefs.pandora_tapDelay = 5; - else - changed_prefs.pandora_tapDelay = 2; - } + else if (actionEvent.getSource() == cboTapDelay) + { + if(cboTapDelay->getSelected() == 0) + changed_prefs.pandora_tapDelay = 10; + else if (cboTapDelay->getSelected() == 1) + changed_prefs.pandora_tapDelay = 5; + else + changed_prefs.pandora_tapDelay = 2; + } - else if (actionEvent.getSource() == chkMouseHack) - { - changed_prefs.input_tablet = chkMouseHack->isSelected() ? TABLET_MOUSEHACK : TABLET_OFF; - } + else if (actionEvent.getSource() == chkMouseHack) + { + changed_prefs.input_tablet = chkMouseHack->isSelected() ? TABLET_MOUSEHACK : TABLET_OFF; + } #endif - else if (actionEvent.getSource() == chkCustomCtrl) - changed_prefs.pandora_customControls = chkCustomCtrl->isSelected() ? 1 : 0; - - else if (actionEvent.getSource() == cboA) - customControlMap[SDLK_HOME] = amigaKey[cboA->getSelected()]; + else if (actionEvent.getSource() == chkCustomCtrl) + changed_prefs.pandora_customControls = chkCustomCtrl->isSelected() ? 1 : 0; - else if (actionEvent.getSource() == cboB) - customControlMap[SDLK_END] = amigaKey[cboB->getSelected()]; + else if (actionEvent.getSource() == cboA) + customControlMap[SDLK_HOME] = amigaKey[cboA->getSelected()]; - else if (actionEvent.getSource() == cboX) - customControlMap[SDLK_PAGEDOWN] = amigaKey[cboX->getSelected()]; + else if (actionEvent.getSource() == cboB) + customControlMap[SDLK_END] = amigaKey[cboB->getSelected()]; - else if (actionEvent.getSource() == cboY) - customControlMap[SDLK_PAGEUP] = amigaKey[cboY->getSelected()]; + else if (actionEvent.getSource() == cboX) + customControlMap[SDLK_PAGEDOWN] = amigaKey[cboX->getSelected()]; - else if (actionEvent.getSource() == cboL) - customControlMap[SDLK_RSHIFT] = amigaKey[cboL->getSelected()]; + else if (actionEvent.getSource() == cboY) + customControlMap[SDLK_PAGEUP] = amigaKey[cboY->getSelected()]; - else if (actionEvent.getSource() == cboR) - customControlMap[SDLK_RCTRL] = amigaKey[cboR->getSelected()]; + else if (actionEvent.getSource() == cboL) + customControlMap[SDLK_RSHIFT] = amigaKey[cboL->getSelected()]; - else if (actionEvent.getSource() == cboUp) - customControlMap[SDLK_UP] = amigaKey[cboUp->getSelected()]; + else if (actionEvent.getSource() == cboR) + customControlMap[SDLK_RCTRL] = amigaKey[cboR->getSelected()]; - else if (actionEvent.getSource() == cboDown) - customControlMap[SDLK_DOWN] = amigaKey[cboDown->getSelected()]; + else if (actionEvent.getSource() == cboUp) + customControlMap[SDLK_UP] = amigaKey[cboUp->getSelected()]; - else if (actionEvent.getSource() == cboLeft) - customControlMap[SDLK_LEFT] = amigaKey[cboLeft->getSelected()]; + else if (actionEvent.getSource() == cboDown) + customControlMap[SDLK_DOWN] = amigaKey[cboDown->getSelected()]; - else if (actionEvent.getSource() == cboRight) - customControlMap[SDLK_RIGHT] = amigaKey[cboRight->getSelected()]; + else if (actionEvent.getSource() == cboLeft) + customControlMap[SDLK_LEFT] = amigaKey[cboLeft->getSelected()]; - else if (actionEvent.getSource() == KeyForMenu) - changed_prefs.key_for_menu = ControlKey_SDLKeyValues[KeyForMenu->getSelected()] ; + else if (actionEvent.getSource() == cboRight) + customControlMap[SDLK_RIGHT] = amigaKey[cboRight->getSelected()]; + + else if (actionEvent.getSource() == KeyForMenu) + changed_prefs.key_for_menu = ControlKey_SDLKeyValues[KeyForMenu->getSelected()] ; } }; @@ -270,371 +310,373 @@ static InputActionListener* inputActionListener; void InitPanelInput(const struct _ConfigCategory& category) { - inputActionListener = new InputActionListener(); + inputActionListener = new InputActionListener(); - if (ctrlPortList.getNumberOfElements() < (4 + inputdevice_get_device_total (IDTYPE_JOYSTICK))) - { - int i; - for(i=0; i<(inputdevice_get_device_total (IDTYPE_JOYSTICK) - 1); i++) + if (ctrlPortList.getNumberOfElements() < (4 + inputdevice_get_device_total (IDTYPE_JOYSTICK))) { - ctrlPortList.AddElement(inputdevice_get_device_name(IDTYPE_JOYSTICK,i + 1)); + int i; + for(i=0; i<(inputdevice_get_device_total (IDTYPE_JOYSTICK) - 1); i++) + { + ctrlPortList.AddElement(inputdevice_get_device_name(IDTYPE_JOYSTICK,i + 1)); + } } - } - lblPort0 = new gcn::Label("Port0:"); - lblPort0->setSize(100, LABEL_HEIGHT); - lblPort0->setAlignment(gcn::Graphics::RIGHT); - cboPort0 = new gcn::UaeDropDown(&ctrlPortList); - cboPort0->setSize(435, DROPDOWN_HEIGHT); - cboPort0->setBaseColor(gui_baseCol); - cboPort0->setId("cboPort0"); - cboPort0->addActionListener(inputActionListener); + lblPort0 = new gcn::Label("Port0:"); + lblPort0->setSize(100, LABEL_HEIGHT); + lblPort0->setAlignment(gcn::Graphics::RIGHT); + cboPort0 = new gcn::UaeDropDown(&ctrlPortList); + cboPort0->setSize(435, DROPDOWN_HEIGHT); + cboPort0->setBaseColor(gui_baseCol); + cboPort0->setId("cboPort0"); + cboPort0->addActionListener(inputActionListener); - lblPort1 = new gcn::Label("Port1:"); - lblPort1->setSize(100, LABEL_HEIGHT); - lblPort1->setAlignment(gcn::Graphics::RIGHT); - cboPort1 = new gcn::UaeDropDown(&ctrlPortList); - cboPort1->setSize(435, DROPDOWN_HEIGHT); - cboPort1->setBaseColor(gui_baseCol); - cboPort1->setId("cboPort1"); - cboPort1->addActionListener(inputActionListener); + lblPort1 = new gcn::Label("Port1:"); + lblPort1->setSize(100, LABEL_HEIGHT); + lblPort1->setAlignment(gcn::Graphics::RIGHT); + cboPort1 = new gcn::UaeDropDown(&ctrlPortList); + cboPort1->setSize(435, DROPDOWN_HEIGHT); + cboPort1->setBaseColor(gui_baseCol); + cboPort1->setId("cboPort1"); + cboPort1->addActionListener(inputActionListener); - lblAutofire = new gcn::Label("Autofire Rate:"); - lblAutofire->setSize(100, LABEL_HEIGHT); - lblAutofire->setAlignment(gcn::Graphics::RIGHT); - cboAutofire = new gcn::UaeDropDown(&autofireList); - cboAutofire->setSize(80, DROPDOWN_HEIGHT); - cboAutofire->setBaseColor(gui_baseCol); - cboAutofire->setId("cboAutofire"); - cboAutofire->addActionListener(inputActionListener); + lblAutofire = new gcn::Label("Autofire Rate:"); + lblAutofire->setSize(100, LABEL_HEIGHT); + lblAutofire->setAlignment(gcn::Graphics::RIGHT); + cboAutofire = new gcn::UaeDropDown(&autofireList); + cboAutofire->setSize(80, DROPDOWN_HEIGHT); + cboAutofire->setBaseColor(gui_baseCol); + cboAutofire->setId("cboAutofire"); + cboAutofire->addActionListener(inputActionListener); - lblMouseSpeed = new gcn::Label("Mouse Speed:"); - lblMouseSpeed->setSize(100, LABEL_HEIGHT); - lblMouseSpeed->setAlignment(gcn::Graphics::RIGHT); - sldMouseSpeed = new gcn::Slider(0, 4); - sldMouseSpeed->setSize(110, SLIDER_HEIGHT); - sldMouseSpeed->setBaseColor(gui_baseCol); - sldMouseSpeed->setMarkerLength(20); - sldMouseSpeed->setStepLength(1); - sldMouseSpeed->setId("MouseSpeed"); - sldMouseSpeed->addActionListener(inputActionListener); - lblMouseSpeedInfo = new gcn::Label(".25"); + lblMouseSpeed = new gcn::Label("Mouse Speed:"); + lblMouseSpeed->setSize(100, LABEL_HEIGHT); + lblMouseSpeed->setAlignment(gcn::Graphics::RIGHT); + sldMouseSpeed = new gcn::Slider(0, 4); + sldMouseSpeed->setSize(110, SLIDER_HEIGHT); + sldMouseSpeed->setBaseColor(gui_baseCol); + sldMouseSpeed->setMarkerLength(20); + sldMouseSpeed->setStepLength(1); + sldMouseSpeed->setId("MouseSpeed"); + sldMouseSpeed->addActionListener(inputActionListener); + lblMouseSpeedInfo = new gcn::Label(".25"); #ifndef RASPBERRY - lblTapDelay = new gcn::Label("Tap Delay:"); - lblTapDelay->setSize(100, LABEL_HEIGHT); - lblTapDelay->setAlignment(gcn::Graphics::RIGHT); - cboTapDelay = new gcn::UaeDropDown(&tapDelayList); - cboTapDelay->setSize(80, DROPDOWN_HEIGHT); - cboTapDelay->setBaseColor(gui_baseCol); - cboTapDelay->setId("cboTapDelay"); - cboTapDelay->addActionListener(inputActionListener); - - chkMouseHack = new gcn::UaeCheckBox("Enable mousehack"); - chkMouseHack->setId("MouseHack"); - chkMouseHack->addActionListener(inputActionListener); + lblTapDelay = new gcn::Label("Tap Delay:"); + lblTapDelay->setSize(100, LABEL_HEIGHT); + lblTapDelay->setAlignment(gcn::Graphics::RIGHT); + cboTapDelay = new gcn::UaeDropDown(&tapDelayList); + cboTapDelay->setSize(80, DROPDOWN_HEIGHT); + cboTapDelay->setBaseColor(gui_baseCol); + cboTapDelay->setId("cboTapDelay"); + cboTapDelay->addActionListener(inputActionListener); + + chkMouseHack = new gcn::UaeCheckBox("Enable mousehack"); + chkMouseHack->setId("MouseHack"); + chkMouseHack->addActionListener(inputActionListener); #endif - chkCustomCtrl = new gcn::UaeCheckBox("Custom Control"); - chkCustomCtrl->setId("CustomCtrl"); - chkCustomCtrl->addActionListener(inputActionListener); + chkCustomCtrl = new gcn::UaeCheckBox("Custom Control"); + chkCustomCtrl->setId("CustomCtrl"); + chkCustomCtrl->addActionListener(inputActionListener); - lblA = new gcn::Label(":"); - lblA->setSize(100, LABEL_HEIGHT); - lblA->setAlignment(gcn::Graphics::RIGHT); - cboA = new gcn::UaeDropDown(&mappingList); - cboA->setSize(150, DROPDOWN_HEIGHT); - cboA->setBaseColor(gui_baseCol); - cboA->setId("cboA"); - cboA->addActionListener(inputActionListener); + lblA = new gcn::Label(":"); + lblA->setSize(100, LABEL_HEIGHT); + lblA->setAlignment(gcn::Graphics::RIGHT); + cboA = new gcn::UaeDropDown(&mappingList); + cboA->setSize(150, DROPDOWN_HEIGHT); + cboA->setBaseColor(gui_baseCol); + cboA->setId("cboA"); + cboA->addActionListener(inputActionListener); - lblB = new gcn::Label(":"); - lblB->setSize(100, LABEL_HEIGHT); - lblB->setAlignment(gcn::Graphics::RIGHT); - cboB = new gcn::UaeDropDown(&mappingList); - cboB->setSize(150, DROPDOWN_HEIGHT); - cboB->setBaseColor(gui_baseCol); - cboB->setId("cboB"); - cboB->addActionListener(inputActionListener); + lblB = new gcn::Label(":"); + lblB->setSize(100, LABEL_HEIGHT); + lblB->setAlignment(gcn::Graphics::RIGHT); + cboB = new gcn::UaeDropDown(&mappingList); + cboB->setSize(150, DROPDOWN_HEIGHT); + cboB->setBaseColor(gui_baseCol); + cboB->setId("cboB"); + cboB->addActionListener(inputActionListener); - lblX = new gcn::Label(":"); - lblX->setSize(100, LABEL_HEIGHT); - lblX->setAlignment(gcn::Graphics::RIGHT); - cboX = new gcn::UaeDropDown(&mappingList); - cboX->setSize(150, DROPDOWN_HEIGHT); - cboX->setBaseColor(gui_baseCol); - cboX->setId("cboX"); - cboX->addActionListener(inputActionListener); + lblX = new gcn::Label(":"); + lblX->setSize(100, LABEL_HEIGHT); + lblX->setAlignment(gcn::Graphics::RIGHT); + cboX = new gcn::UaeDropDown(&mappingList); + cboX->setSize(150, DROPDOWN_HEIGHT); + cboX->setBaseColor(gui_baseCol); + cboX->setId("cboX"); + cboX->addActionListener(inputActionListener); - lblY = new gcn::Label(":"); - lblY->setSize(100, LABEL_HEIGHT); - lblY->setAlignment(gcn::Graphics::RIGHT); - cboY = new gcn::UaeDropDown(&mappingList); - cboY->setSize(150, DROPDOWN_HEIGHT); - cboY->setBaseColor(gui_baseCol); - cboY->setId("cboY"); - cboY->addActionListener(inputActionListener); + lblY = new gcn::Label(":"); + lblY->setSize(100, LABEL_HEIGHT); + lblY->setAlignment(gcn::Graphics::RIGHT); + cboY = new gcn::UaeDropDown(&mappingList); + cboY->setSize(150, DROPDOWN_HEIGHT); + cboY->setBaseColor(gui_baseCol); + cboY->setId("cboY"); + cboY->addActionListener(inputActionListener); - lblL = new gcn::Label(":"); - lblL->setSize(100, LABEL_HEIGHT); - lblL->setAlignment(gcn::Graphics::RIGHT); - cboL = new gcn::UaeDropDown(&mappingList); - cboL->setSize(150, DROPDOWN_HEIGHT); - cboL->setBaseColor(gui_baseCol); - cboL->setId("cboL"); - cboL->addActionListener(inputActionListener); + lblL = new gcn::Label(":"); + lblL->setSize(100, LABEL_HEIGHT); + lblL->setAlignment(gcn::Graphics::RIGHT); + cboL = new gcn::UaeDropDown(&mappingList); + cboL->setSize(150, DROPDOWN_HEIGHT); + cboL->setBaseColor(gui_baseCol); + cboL->setId("cboL"); + cboL->addActionListener(inputActionListener); - lblR = new gcn::Label(":"); - lblR->setSize(100, LABEL_HEIGHT); - lblR->setAlignment(gcn::Graphics::RIGHT); - cboR = new gcn::UaeDropDown(&mappingList); - cboR->setSize(150, DROPDOWN_HEIGHT); - cboR->setBaseColor(gui_baseCol); - cboR->setId("cboR"); - cboR->addActionListener(inputActionListener); + lblR = new gcn::Label(":"); + lblR->setSize(100, LABEL_HEIGHT); + lblR->setAlignment(gcn::Graphics::RIGHT); + cboR = new gcn::UaeDropDown(&mappingList); + cboR->setSize(150, DROPDOWN_HEIGHT); + cboR->setBaseColor(gui_baseCol); + cboR->setId("cboR"); + cboR->addActionListener(inputActionListener); - lblUp = new gcn::Label("Up:"); - lblUp->setSize(100, LABEL_HEIGHT); - lblUp->setAlignment(gcn::Graphics::RIGHT); - cboUp = new gcn::UaeDropDown(&mappingList); - cboUp->setSize(150, DROPDOWN_HEIGHT); - cboUp->setBaseColor(gui_baseCol); - cboUp->setId("cboUp"); - cboUp->addActionListener(inputActionListener); + lblUp = new gcn::Label("Up:"); + lblUp->setSize(100, LABEL_HEIGHT); + lblUp->setAlignment(gcn::Graphics::RIGHT); + cboUp = new gcn::UaeDropDown(&mappingList); + cboUp->setSize(150, DROPDOWN_HEIGHT); + cboUp->setBaseColor(gui_baseCol); + cboUp->setId("cboUp"); + cboUp->addActionListener(inputActionListener); - lblDown = new gcn::Label("Down:"); - lblDown->setSize(100, LABEL_HEIGHT); - lblDown->setAlignment(gcn::Graphics::RIGHT); - cboDown = new gcn::UaeDropDown(&mappingList); - cboDown->setSize(150, DROPDOWN_HEIGHT); - cboDown->setBaseColor(gui_baseCol); - cboDown->setId("cboDown"); - cboDown->addActionListener(inputActionListener); + lblDown = new gcn::Label("Down:"); + lblDown->setSize(100, LABEL_HEIGHT); + lblDown->setAlignment(gcn::Graphics::RIGHT); + cboDown = new gcn::UaeDropDown(&mappingList); + cboDown->setSize(150, DROPDOWN_HEIGHT); + cboDown->setBaseColor(gui_baseCol); + cboDown->setId("cboDown"); + cboDown->addActionListener(inputActionListener); - lblLeft = new gcn::Label("Left:"); - lblLeft->setSize(100, LABEL_HEIGHT); - lblLeft->setAlignment(gcn::Graphics::RIGHT); - cboLeft = new gcn::UaeDropDown(&mappingList); - cboLeft->setSize(150, DROPDOWN_HEIGHT); - cboLeft->setBaseColor(gui_baseCol); - cboLeft->setId("cboLeft"); - cboLeft->addActionListener(inputActionListener); + lblLeft = new gcn::Label("Left:"); + lblLeft->setSize(100, LABEL_HEIGHT); + lblLeft->setAlignment(gcn::Graphics::RIGHT); + cboLeft = new gcn::UaeDropDown(&mappingList); + cboLeft->setSize(150, DROPDOWN_HEIGHT); + cboLeft->setBaseColor(gui_baseCol); + cboLeft->setId("cboLeft"); + cboLeft->addActionListener(inputActionListener); - lblRight = new gcn::Label("Right:"); - lblRight->setSize(100, LABEL_HEIGHT); - lblRight->setAlignment(gcn::Graphics::RIGHT); - cboRight = new gcn::UaeDropDown(&mappingList); - cboRight->setSize(150, DROPDOWN_HEIGHT); - cboRight->setBaseColor(gui_baseCol); - cboRight->setId("cboRight"); - cboRight->addActionListener(inputActionListener); + lblRight = new gcn::Label("Right:"); + lblRight->setSize(100, LABEL_HEIGHT); + lblRight->setAlignment(gcn::Graphics::RIGHT); + cboRight = new gcn::UaeDropDown(&mappingList); + cboRight->setSize(150, DROPDOWN_HEIGHT); + cboRight->setBaseColor(gui_baseCol); + cboRight->setId("cboRight"); + cboRight->addActionListener(inputActionListener); - lblKeyForMenu = new gcn::Label("Key for Menu:"); - lblKeyForMenu->setSize(100, LABEL_HEIGHT); - lblKeyForMenu->setAlignment(gcn::Graphics::RIGHT); - KeyForMenu = new gcn::UaeDropDown(&ControlKeyList); - KeyForMenu->setSize(150, DROPDOWN_HEIGHT); - KeyForMenu->setBaseColor(gui_baseCol); - KeyForMenu->setId("CKeyMenu"); - KeyForMenu->addActionListener(inputActionListener); + lblKeyForMenu = new gcn::Label("Key for Menu:"); + lblKeyForMenu->setSize(100, LABEL_HEIGHT); + lblKeyForMenu->setAlignment(gcn::Graphics::RIGHT); + KeyForMenu = new gcn::UaeDropDown(&ControlKeyList); + KeyForMenu->setSize(150, DROPDOWN_HEIGHT); + KeyForMenu->setBaseColor(gui_baseCol); + KeyForMenu->setId("CKeyMenu"); + KeyForMenu->addActionListener(inputActionListener); - int posY = DISTANCE_BORDER; - category.panel->add(lblPort0, DISTANCE_BORDER, posY); - category.panel->add(cboPort0, DISTANCE_BORDER + lblPort0->getWidth() + 8, posY); - posY += cboPort0->getHeight() + DISTANCE_NEXT_Y; - category.panel->add(lblPort1, DISTANCE_BORDER, posY); - category.panel->add(cboPort1, DISTANCE_BORDER + lblPort1->getWidth() + 8, posY); + int posY = DISTANCE_BORDER; + category.panel->add(lblPort0, DISTANCE_BORDER, posY); + category.panel->add(cboPort0, DISTANCE_BORDER + lblPort0->getWidth() + 8, posY); + posY += cboPort0->getHeight() + DISTANCE_NEXT_Y; + category.panel->add(lblPort1, DISTANCE_BORDER, posY); + category.panel->add(cboPort1, DISTANCE_BORDER + lblPort1->getWidth() + 8, posY); - posY += cboPort1->getHeight() + DISTANCE_NEXT_Y; - category.panel->add(lblAutofire, DISTANCE_BORDER, posY); - category.panel->add(cboAutofire, DISTANCE_BORDER + lblAutofire->getWidth() + 8, posY); - posY += cboAutofire->getHeight() + DISTANCE_NEXT_Y; + posY += cboPort1->getHeight() + DISTANCE_NEXT_Y; + category.panel->add(lblAutofire, DISTANCE_BORDER, posY); + category.panel->add(cboAutofire, DISTANCE_BORDER + lblAutofire->getWidth() + 8, posY); + posY += cboAutofire->getHeight() + DISTANCE_NEXT_Y; - category.panel->add(lblMouseSpeed, DISTANCE_BORDER, posY); - category.panel->add(sldMouseSpeed, DISTANCE_BORDER + lblMouseSpeed->getWidth() + 8, posY); - category.panel->add(lblMouseSpeedInfo, sldMouseSpeed->getX() + sldMouseSpeed->getWidth() + 12, posY); - posY += sldMouseSpeed->getHeight() + DISTANCE_NEXT_Y; + category.panel->add(lblMouseSpeed, DISTANCE_BORDER, posY); + category.panel->add(sldMouseSpeed, DISTANCE_BORDER + lblMouseSpeed->getWidth() + 8, posY); + category.panel->add(lblMouseSpeedInfo, sldMouseSpeed->getX() + sldMouseSpeed->getWidth() + 12, posY); + posY += sldMouseSpeed->getHeight() + DISTANCE_NEXT_Y; #ifndef RASPBERRY - category.panel->add(chkMouseHack, DISTANCE_BORDER + lblA->getWidth() + 8, posY); - category.panel->add(lblTapDelay, 300, posY); - category.panel->add(cboTapDelay, 300 + lblTapDelay->getWidth() + 8, posY); - posY += cboTapDelay->getHeight() + DISTANCE_NEXT_Y; + category.panel->add(chkMouseHack, DISTANCE_BORDER + lblA->getWidth() + 8, posY); + category.panel->add(lblTapDelay, 300, posY); + category.panel->add(cboTapDelay, 300 + lblTapDelay->getWidth() + 8, posY); + posY += cboTapDelay->getHeight() + DISTANCE_NEXT_Y; #endif - category.panel->add(chkCustomCtrl, DISTANCE_BORDER + lblA->getWidth() + 8, posY); - posY += chkCustomCtrl->getHeight() + DISTANCE_NEXT_Y; - category.panel->add(lblA, DISTANCE_BORDER, posY); - category.panel->add(cboA, DISTANCE_BORDER + lblA->getWidth() + 8, posY); - category.panel->add(lblB, 300, posY); - category.panel->add(cboB, 300 + lblB->getWidth() + 8, posY); - posY += cboA->getHeight() + 4; - category.panel->add(lblX, DISTANCE_BORDER, posY); - category.panel->add(cboX, DISTANCE_BORDER + lblX->getWidth() + 8, posY); - category.panel->add(lblY, 300, posY); - category.panel->add(cboY, 300 + lblY->getWidth() + 8, posY); - posY += cboX->getHeight() + 4; - category.panel->add(lblL, DISTANCE_BORDER, posY); - category.panel->add(cboL, DISTANCE_BORDER + lblL->getWidth() + 8, posY); - category.panel->add(lblR, 300, posY); - category.panel->add(cboR, 300 + lblR->getWidth() + 8, posY); - posY += cboL->getHeight() + 4; - category.panel->add(lblUp, DISTANCE_BORDER, posY); - category.panel->add(cboUp, DISTANCE_BORDER + lblUp->getWidth() + 8, posY); - category.panel->add(lblDown, 300, posY); - category.panel->add(cboDown, 300 + lblDown->getWidth() + 8, posY); - posY += cboUp->getHeight() + 4; - category.panel->add(lblLeft, DISTANCE_BORDER, posY); - category.panel->add(cboLeft, DISTANCE_BORDER + lblLeft->getWidth() + 8, posY); - category.panel->add(lblRight, 300, posY); - category.panel->add(cboRight, 300 + lblRight->getWidth() + 8, posY); - posY += cboLeft->getHeight() + DISTANCE_NEXT_Y; - - category.panel->add(lblKeyForMenu, DISTANCE_BORDER, posY); - category.panel->add(KeyForMenu, DISTANCE_BORDER + lblLeft->getWidth() + 8, posY); - posY += KeyForMenu->getHeight() + 4; + category.panel->add(chkCustomCtrl, DISTANCE_BORDER + lblA->getWidth() + 8, posY); + posY += chkCustomCtrl->getHeight() + DISTANCE_NEXT_Y; + category.panel->add(lblA, DISTANCE_BORDER, posY); + category.panel->add(cboA, DISTANCE_BORDER + lblA->getWidth() + 8, posY); + category.panel->add(lblB, 300, posY); + category.panel->add(cboB, 300 + lblB->getWidth() + 8, posY); + posY += cboA->getHeight() + 4; + category.panel->add(lblX, DISTANCE_BORDER, posY); + category.panel->add(cboX, DISTANCE_BORDER + lblX->getWidth() + 8, posY); + category.panel->add(lblY, 300, posY); + category.panel->add(cboY, 300 + lblY->getWidth() + 8, posY); + posY += cboX->getHeight() + 4; + category.panel->add(lblL, DISTANCE_BORDER, posY); + category.panel->add(cboL, DISTANCE_BORDER + lblL->getWidth() + 8, posY); + category.panel->add(lblR, 300, posY); + category.panel->add(cboR, 300 + lblR->getWidth() + 8, posY); + posY += cboL->getHeight() + 4; + category.panel->add(lblUp, DISTANCE_BORDER, posY); + category.panel->add(cboUp, DISTANCE_BORDER + lblUp->getWidth() + 8, posY); + category.panel->add(lblDown, 300, posY); + category.panel->add(cboDown, 300 + lblDown->getWidth() + 8, posY); + posY += cboUp->getHeight() + 4; + category.panel->add(lblLeft, DISTANCE_BORDER, posY); + category.panel->add(cboLeft, DISTANCE_BORDER + lblLeft->getWidth() + 8, posY); + category.panel->add(lblRight, 300, posY); + category.panel->add(cboRight, 300 + lblRight->getWidth() + 8, posY); + posY += cboLeft->getHeight() + DISTANCE_NEXT_Y; - RefreshPanelInput(); + category.panel->add(lblKeyForMenu, DISTANCE_BORDER, posY); + category.panel->add(KeyForMenu, DISTANCE_BORDER + lblLeft->getWidth() + 8, posY); + posY += KeyForMenu->getHeight() + 4; + + RefreshPanelInput(); } void ExitPanelInput(void) { - delete lblPort0; - delete cboPort0; - delete lblPort1; - delete cboPort1; - - delete lblAutofire; - delete cboAutofire; - delete lblMouseSpeed; - delete sldMouseSpeed; - delete lblMouseSpeedInfo; + delete lblPort0; + delete cboPort0; + delete lblPort1; + delete cboPort1; + + delete lblAutofire; + delete cboAutofire; + delete lblMouseSpeed; + delete sldMouseSpeed; + delete lblMouseSpeedInfo; #ifndef RASPBERRY - delete lblTapDelay; - delete cboTapDelay; - delete chkMouseHack; + delete lblTapDelay; + delete cboTapDelay; + delete chkMouseHack; #endif - delete chkCustomCtrl; - delete lblA; - delete cboA; - delete lblB; - delete cboB; - delete lblX; - delete cboX; - delete lblY; - delete cboY; - delete lblL; - delete cboL; - delete lblR; - delete cboR; - delete lblUp; - delete cboUp; - delete lblDown; - delete cboDown; - delete lblLeft; - delete cboLeft; - delete lblRight; - delete cboRight; + delete chkCustomCtrl; + delete lblA; + delete cboA; + delete lblB; + delete cboB; + delete lblX; + delete cboX; + delete lblY; + delete cboY; + delete lblL; + delete cboL; + delete lblR; + delete cboR; + delete lblUp; + delete cboUp; + delete lblDown; + delete cboDown; + delete lblLeft; + delete cboLeft; + delete lblRight; + delete cboRight; - delete lblKeyForMenu; - delete KeyForMenu; + delete lblKeyForMenu; + delete KeyForMenu; - delete inputActionListener; + delete inputActionListener; } void RefreshPanelInput(void) { - int i; + int i; - // Set current device in port 0 - switch(changed_prefs.jports[0].id) { - case JSEM_MICE: - cboPort0->setSelected(0); - break; - case JSEM_MICE + 1: - cboPort0->setSelected(1); - break; - case JSEM_JOYS: - if(changed_prefs.jports[0].mode != JSEM_MODE_JOYSTICK_CD32) - cboPort0->setSelected(2); - else - cboPort0->setSelected(3); - break; - case -1: - cboPort0->setSelected(4); - break; - default: - cboPort0->setSelected(changed_prefs.jports[0].id-JSEM_JOYS + 4); - break; - } - - // Set current device in port 1 - switch(changed_prefs.jports[1].id) { - case JSEM_MICE: - cboPort1->setSelected(0); - break; - case JSEM_MICE + 1: - cboPort1->setSelected(1); - break; - case JSEM_JOYS: - if(changed_prefs.jports[1].mode != JSEM_MODE_JOYSTICK_CD32) - cboPort1->setSelected(2); - else - cboPort1->setSelected(3); - break; - case -1: - cboPort1->setSelected(4); - break; - default: - cboPort1->setSelected(changed_prefs.jports[1].id-JSEM_JOYS + 4); - break; - } - - if (changed_prefs.input_autofire_linecnt == 0) - cboAutofire->setSelected(0); - else if (changed_prefs.input_autofire_linecnt > 10 * 312) - cboAutofire->setSelected(1); - else if (changed_prefs.input_autofire_linecnt > 6 * 312) - cboAutofire->setSelected(2); - else - cboAutofire->setSelected(3); - - for(i=0; i<5; ++i) - { - if(changed_prefs.input_joymouse_multiplier == mousespeed_values[i]) + // Set current device in port 0 + switch(changed_prefs.jports[0].id) { - sldMouseSpeed->setValue(i); - lblMouseSpeedInfo->setCaption(mousespeed_list[i]); - break; + case JSEM_MICE: + cboPort0->setSelected(0); + break; + case JSEM_MICE + 1: + cboPort0->setSelected(1); + break; + case JSEM_JOYS: + if(changed_prefs.jports[0].mode != JSEM_MODE_JOYSTICK_CD32) + cboPort0->setSelected(2); + else + cboPort0->setSelected(3); + break; + case -1: + cboPort0->setSelected(4); + break; + default: + cboPort0->setSelected(changed_prefs.jports[0].id-JSEM_JOYS + 4); + break; + } + + // Set current device in port 1 + switch(changed_prefs.jports[1].id) + { + case JSEM_MICE: + cboPort1->setSelected(0); + break; + case JSEM_MICE + 1: + cboPort1->setSelected(1); + break; + case JSEM_JOYS: + if(changed_prefs.jports[1].mode != JSEM_MODE_JOYSTICK_CD32) + cboPort1->setSelected(2); + else + cboPort1->setSelected(3); + break; + case -1: + cboPort1->setSelected(4); + break; + default: + cboPort1->setSelected(changed_prefs.jports[1].id-JSEM_JOYS + 4); + break; + } + + if (changed_prefs.input_autofire_linecnt == 0) + cboAutofire->setSelected(0); + else if (changed_prefs.input_autofire_linecnt > 10 * 312) + cboAutofire->setSelected(1); + else if (changed_prefs.input_autofire_linecnt > 6 * 312) + cboAutofire->setSelected(2); + else + cboAutofire->setSelected(3); + + for(i=0; i<5; ++i) + { + if(changed_prefs.input_joymouse_multiplier == mousespeed_values[i]) + { + sldMouseSpeed->setValue(i); + lblMouseSpeedInfo->setCaption(mousespeed_list[i]); + break; + } } - } #ifndef RASPBERRY - if (changed_prefs.pandora_tapDelay == 10) - cboTapDelay->setSelected(0); - else if (changed_prefs.pandora_tapDelay == 5) - cboTapDelay->setSelected(1); - else - cboTapDelay->setSelected(2); - - chkMouseHack->setSelected(changed_prefs.input_tablet == TABLET_MOUSEHACK); -#endif - chkCustomCtrl->setSelected(changed_prefs.pandora_customControls); - cboA->setSelected(GetAmigaKeyIndex(customControlMap[SDLK_HOME])); - cboB->setSelected(GetAmigaKeyIndex(customControlMap[SDLK_END])); - cboX->setSelected(GetAmigaKeyIndex(customControlMap[SDLK_PAGEDOWN])); - cboY->setSelected(GetAmigaKeyIndex(customControlMap[SDLK_PAGEUP])); - cboL->setSelected(GetAmigaKeyIndex(customControlMap[SDLK_RSHIFT])); - cboR->setSelected(GetAmigaKeyIndex(customControlMap[SDLK_RCTRL])); - cboUp->setSelected(GetAmigaKeyIndex(customControlMap[SDLK_UP])); - cboDown->setSelected(GetAmigaKeyIndex(customControlMap[SDLK_DOWN])); - cboLeft->setSelected(GetAmigaKeyIndex(customControlMap[SDLK_LEFT])); - cboRight->setSelected(GetAmigaKeyIndex(customControlMap[SDLK_RIGHT])); + if (changed_prefs.pandora_tapDelay == 10) + cboTapDelay->setSelected(0); + else if (changed_prefs.pandora_tapDelay == 5) + cboTapDelay->setSelected(1); + else + cboTapDelay->setSelected(2); - for(i=0; i<4; ++i) - { - if(changed_prefs.key_for_menu == ControlKey_SDLKeyValues[i]) + chkMouseHack->setSelected(changed_prefs.input_tablet == TABLET_MOUSEHACK); +#endif + chkCustomCtrl->setSelected(changed_prefs.pandora_customControls); + cboA->setSelected(GetAmigaKeyIndex(customControlMap[SDLK_HOME])); + cboB->setSelected(GetAmigaKeyIndex(customControlMap[SDLK_END])); + cboX->setSelected(GetAmigaKeyIndex(customControlMap[SDLK_PAGEDOWN])); + cboY->setSelected(GetAmigaKeyIndex(customControlMap[SDLK_PAGEUP])); + cboL->setSelected(GetAmigaKeyIndex(customControlMap[SDLK_RSHIFT])); + cboR->setSelected(GetAmigaKeyIndex(customControlMap[SDLK_RCTRL])); + cboUp->setSelected(GetAmigaKeyIndex(customControlMap[SDLK_UP])); + cboDown->setSelected(GetAmigaKeyIndex(customControlMap[SDLK_DOWN])); + cboLeft->setSelected(GetAmigaKeyIndex(customControlMap[SDLK_LEFT])); + cboRight->setSelected(GetAmigaKeyIndex(customControlMap[SDLK_RIGHT])); + + for(i=0; i<4; ++i) { - KeyForMenu->setSelected(i); - break; + if(changed_prefs.key_for_menu == ControlKey_SDLKeyValues[i]) + { + KeyForMenu->setSelected(i); + break; + } } - } } diff --git a/src/od-pandora/gui/PanelMisc.cpp b/src/od-pandora/gui/PanelMisc.cpp index 64ac4597..f72f4815 100644 --- a/src/od-pandora/gui/PanelMisc.cpp +++ b/src/od-pandora/gui/PanelMisc.cpp @@ -11,7 +11,7 @@ #include "sysdeps.h" #include "config.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "uae.h" #include "autoconf.h" #include "filesys.h" @@ -32,25 +32,25 @@ static gcn::UaeCheckBox* chkBSDSocket; #ifdef RASPBERRY class StringListModel : public gcn::ListModel { - private: +private: std::vector values; - public: +public: StringListModel(const char *entries[], int count) { - for(int i=0; i= values.size()) - return "---"; - return values[i]; + if(i < 0 || i >= values.size()) + return "---"; + return values[i]; } }; @@ -68,57 +68,57 @@ StringListModel KBDLedList(listValues, 8); class MiscActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if (actionEvent.getSource() == chkStatusLine) - changed_prefs.leds_on_screen = chkStatusLine->isSelected(); - - else if (actionEvent.getSource() == chkHideIdleLed) - changed_prefs.pandora_hide_idle_led = chkHideIdleLed->isSelected(); + if (actionEvent.getSource() == chkStatusLine) + changed_prefs.leds_on_screen = chkStatusLine->isSelected(); - else if (actionEvent.getSource() == chkShowGUI) - changed_prefs.start_gui = chkShowGUI->isSelected(); + else if (actionEvent.getSource() == chkHideIdleLed) + changed_prefs.pandora_hide_idle_led = chkHideIdleLed->isSelected(); - else if (actionEvent.getSource() == chkBSDSocket) - changed_prefs.socket_emu = chkBSDSocket->isSelected(); + else if (actionEvent.getSource() == chkShowGUI) + changed_prefs.start_gui = chkShowGUI->isSelected(); + + else if (actionEvent.getSource() == chkBSDSocket) + changed_prefs.socket_emu = chkBSDSocket->isSelected(); #ifdef PANDORA_SPECIFIC - else if (actionEvent.getSource() == sldPandoraSpeed) - { - int newspeed = (int) sldPandoraSpeed->getValue(); - newspeed = newspeed - (newspeed % 20); - if(changed_prefs.pandora_cpu_speed != newspeed) + else if (actionEvent.getSource() == sldPandoraSpeed) { - changed_prefs.pandora_cpu_speed = newspeed; - RefreshPanelMisc(); + int newspeed = (int) sldPandoraSpeed->getValue(); + newspeed = newspeed - (newspeed % 20); + if(changed_prefs.pandora_cpu_speed != newspeed) + { + changed_prefs.pandora_cpu_speed = newspeed; + RefreshPanelMisc(); + } } - } #endif #ifdef RASPBERRY - else if (actionEvent.getSource() == cboKBDLed_num) - { - if (cboKBDLed_num->getSelected() == 0) changed_prefs.kbd_led_num = -1; // Nothing - if (cboKBDLed_num->getSelected() == 7) changed_prefs.kbd_led_num = 5; // HD - if (cboKBDLed_num->getSelected() == 6) changed_prefs.kbd_led_num = -2; // Any DFs - if (cboKBDLed_num->getSelected() >= 1 && cboKBDLed_num->getSelected() <= 4) changed_prefs.kbd_led_num = cboKBDLed_num->getSelected() - 1; // Specific DF# - } - else if (actionEvent.getSource() == cboKBDLed_cap) - { - if (cboKBDLed_cap->getSelected() == 0) changed_prefs.kbd_led_cap = -1; - if (cboKBDLed_cap->getSelected() == 7) changed_prefs.kbd_led_cap = 5; - if (cboKBDLed_cap->getSelected() == 6) changed_prefs.kbd_led_cap = -2; - if (cboKBDLed_cap->getSelected() >= 1 && cboKBDLed_cap->getSelected() <= 4) changed_prefs.kbd_led_cap = cboKBDLed_cap->getSelected() - 1; - } - else if (actionEvent.getSource() == cboKBDLed_scr) - { - if (cboKBDLed_scr->getSelected() == 0) changed_prefs.kbd_led_scr = -1; - if (cboKBDLed_scr->getSelected() == 7) changed_prefs.kbd_led_scr = 5; - if (cboKBDLed_scr->getSelected() == 6) changed_prefs.kbd_led_scr = -2; - if (cboKBDLed_scr->getSelected() >= 1 && cboKBDLed_scr->getSelected() <= 4) changed_prefs.kbd_led_scr = cboKBDLed_scr->getSelected() - 1; - } + else if (actionEvent.getSource() == cboKBDLed_num) + { + if (cboKBDLed_num->getSelected() == 0) changed_prefs.kbd_led_num = -1; // Nothing + if (cboKBDLed_num->getSelected() == 7) changed_prefs.kbd_led_num = 5; // HD + if (cboKBDLed_num->getSelected() == 6) changed_prefs.kbd_led_num = -2; // Any DFs + if (cboKBDLed_num->getSelected() >= 1 && cboKBDLed_num->getSelected() <= 4) changed_prefs.kbd_led_num = cboKBDLed_num->getSelected() - 1; // Specific DF# + } + else if (actionEvent.getSource() == cboKBDLed_cap) + { + if (cboKBDLed_cap->getSelected() == 0) changed_prefs.kbd_led_cap = -1; + if (cboKBDLed_cap->getSelected() == 7) changed_prefs.kbd_led_cap = 5; + if (cboKBDLed_cap->getSelected() == 6) changed_prefs.kbd_led_cap = -2; + if (cboKBDLed_cap->getSelected() >= 1 && cboKBDLed_cap->getSelected() <= 4) changed_prefs.kbd_led_cap = cboKBDLed_cap->getSelected() - 1; + } + else if (actionEvent.getSource() == cboKBDLed_scr) + { + if (cboKBDLed_scr->getSelected() == 0) changed_prefs.kbd_led_scr = -1; + if (cboKBDLed_scr->getSelected() == 7) changed_prefs.kbd_led_scr = 5; + if (cboKBDLed_scr->getSelected() == 6) changed_prefs.kbd_led_scr = -2; + if (cboKBDLed_scr->getSelected() >= 1 && cboKBDLed_scr->getSelected() <= 4) changed_prefs.kbd_led_scr = cboKBDLed_scr->getSelected() - 1; + } #endif } }; @@ -127,148 +127,148 @@ MiscActionListener* miscActionListener; void InitPanelMisc(const struct _ConfigCategory& category) { - miscActionListener = new MiscActionListener(); + miscActionListener = new MiscActionListener(); - chkStatusLine = new gcn::UaeCheckBox("Status Line"); - chkStatusLine->setId("StatusLine"); - chkStatusLine->addActionListener(miscActionListener); + chkStatusLine = new gcn::UaeCheckBox("Status Line"); + chkStatusLine->setId("StatusLine"); + chkStatusLine->addActionListener(miscActionListener); - chkHideIdleLed = new gcn::UaeCheckBox("Hide idle led"); - chkHideIdleLed->setId("HideIdle"); - chkHideIdleLed->addActionListener(miscActionListener); + chkHideIdleLed = new gcn::UaeCheckBox("Hide idle led"); + chkHideIdleLed->setId("HideIdle"); + chkHideIdleLed->addActionListener(miscActionListener); + + chkShowGUI = new gcn::UaeCheckBox("Show GUI on startup"); + chkShowGUI->setId("ShowGUI"); + chkShowGUI->addActionListener(miscActionListener); - chkShowGUI = new gcn::UaeCheckBox("Show GUI on startup"); - chkShowGUI->setId("ShowGUI"); - chkShowGUI->addActionListener(miscActionListener); - #ifdef PANDORA_SPECIFIC - lblPandoraSpeed = new gcn::Label("Pandora Speed:"); - lblPandoraSpeed->setSize(110, LABEL_HEIGHT); - lblPandoraSpeed->setAlignment(gcn::Graphics::RIGHT); - sldPandoraSpeed = new gcn::Slider(500, 1260); - sldPandoraSpeed->setSize(200, SLIDER_HEIGHT); - sldPandoraSpeed->setBaseColor(gui_baseCol); - sldPandoraSpeed->setMarkerLength(20); - sldPandoraSpeed->setStepLength(20); - sldPandoraSpeed->setId("PandSpeed"); - sldPandoraSpeed->addActionListener(miscActionListener); - lblPandoraSpeedInfo = new gcn::Label("1000 MHz"); + lblPandoraSpeed = new gcn::Label("Pandora Speed:"); + lblPandoraSpeed->setSize(110, LABEL_HEIGHT); + lblPandoraSpeed->setAlignment(gcn::Graphics::RIGHT); + sldPandoraSpeed = new gcn::Slider(500, 1260); + sldPandoraSpeed->setSize(200, SLIDER_HEIGHT); + sldPandoraSpeed->setBaseColor(gui_baseCol); + sldPandoraSpeed->setMarkerLength(20); + sldPandoraSpeed->setStepLength(20); + sldPandoraSpeed->setId("PandSpeed"); + sldPandoraSpeed->addActionListener(miscActionListener); + lblPandoraSpeedInfo = new gcn::Label("1000 MHz"); #endif - chkBSDSocket = new gcn::UaeCheckBox("bsdsocket.library"); - chkBSDSocket->setId("BSDSocket"); - chkBSDSocket->addActionListener(miscActionListener); + chkBSDSocket = new gcn::UaeCheckBox("bsdsocket.library"); + chkBSDSocket->setId("BSDSocket"); + chkBSDSocket->addActionListener(miscActionListener); - int posY = DISTANCE_BORDER; - category.panel->add(chkStatusLine, DISTANCE_BORDER, posY); - posY += chkStatusLine->getHeight() + DISTANCE_NEXT_Y; - category.panel->add(chkHideIdleLed, DISTANCE_BORDER, posY); - posY += chkHideIdleLed->getHeight() + DISTANCE_NEXT_Y; - category.panel->add(chkShowGUI, DISTANCE_BORDER, posY); - posY += chkShowGUI->getHeight() + DISTANCE_NEXT_Y; + int posY = DISTANCE_BORDER; + category.panel->add(chkStatusLine, DISTANCE_BORDER, posY); + posY += chkStatusLine->getHeight() + DISTANCE_NEXT_Y; + category.panel->add(chkHideIdleLed, DISTANCE_BORDER, posY); + posY += chkHideIdleLed->getHeight() + DISTANCE_NEXT_Y; + category.panel->add(chkShowGUI, DISTANCE_BORDER, posY); + posY += chkShowGUI->getHeight() + DISTANCE_NEXT_Y; #ifdef PANDORA_SPECIFIC - category.panel->add(lblPandoraSpeed, DISTANCE_BORDER, posY); - category.panel->add(sldPandoraSpeed, DISTANCE_BORDER + lblPandoraSpeed->getWidth() + 8, posY); - category.panel->add(lblPandoraSpeedInfo, sldPandoraSpeed->getX() + sldPandoraSpeed->getWidth() + 12, posY); - posY += sldPandoraSpeed->getHeight() + DISTANCE_NEXT_Y; + category.panel->add(lblPandoraSpeed, DISTANCE_BORDER, posY); + category.panel->add(sldPandoraSpeed, DISTANCE_BORDER + lblPandoraSpeed->getWidth() + 8, posY); + category.panel->add(lblPandoraSpeedInfo, sldPandoraSpeed->getX() + sldPandoraSpeed->getWidth() + 12, posY); + posY += sldPandoraSpeed->getHeight() + DISTANCE_NEXT_Y; #endif - category.panel->add(chkBSDSocket, DISTANCE_BORDER, posY); - posY += chkBSDSocket->getHeight() + DISTANCE_NEXT_Y; + category.panel->add(chkBSDSocket, DISTANCE_BORDER, posY); + posY += chkBSDSocket->getHeight() + DISTANCE_NEXT_Y; #ifdef RASPBERRY - lblNumLock = new gcn::Label("NumLock LED"); - lblNumLock->setSize(150, LABEL_HEIGHT); - lblNumLock->setAlignment(gcn::Graphics::LEFT); - cboKBDLed_num = new gcn::UaeDropDown(&KBDLedList); - cboKBDLed_num->setSize(150, DROPDOWN_HEIGHT); - cboKBDLed_num->setBaseColor(gui_baseCol); - cboKBDLed_num->setId("numlock"); - cboKBDLed_num->addActionListener(miscActionListener); + lblNumLock = new gcn::Label("NumLock LED"); + lblNumLock->setSize(150, LABEL_HEIGHT); + lblNumLock->setAlignment(gcn::Graphics::LEFT); + cboKBDLed_num = new gcn::UaeDropDown(&KBDLedList); + cboKBDLed_num->setSize(150, DROPDOWN_HEIGHT); + cboKBDLed_num->setBaseColor(gui_baseCol); + cboKBDLed_num->setId("numlock"); + cboKBDLed_num->addActionListener(miscActionListener); - lblCapLock = new gcn::Label("CapsLock LED"); - lblCapLock->setSize(150, LABEL_HEIGHT); - lblCapLock->setAlignment(gcn::Graphics::LEFT); - cboKBDLed_cap = new gcn::UaeDropDown(&KBDLedList); - cboKBDLed_cap->setSize(150, DROPDOWN_HEIGHT); - cboKBDLed_cap->setBaseColor(gui_baseCol); - cboKBDLed_cap->setId("capslock"); - cboKBDLed_cap->addActionListener(miscActionListener); + lblCapLock = new gcn::Label("CapsLock LED"); + lblCapLock->setSize(150, LABEL_HEIGHT); + lblCapLock->setAlignment(gcn::Graphics::LEFT); + cboKBDLed_cap = new gcn::UaeDropDown(&KBDLedList); + cboKBDLed_cap->setSize(150, DROPDOWN_HEIGHT); + cboKBDLed_cap->setBaseColor(gui_baseCol); + cboKBDLed_cap->setId("capslock"); + cboKBDLed_cap->addActionListener(miscActionListener); - lblScrLock = new gcn::Label("ScrollLock LED"); - lblScrLock->setSize(150, LABEL_HEIGHT); - lblScrLock->setAlignment(gcn::Graphics::LEFT); - cboKBDLed_scr = new gcn::UaeDropDown(&KBDLedList); - cboKBDLed_scr->setSize(150, DROPDOWN_HEIGHT); - cboKBDLed_scr->setBaseColor(gui_baseCol); - cboKBDLed_scr->setId("scrolllock"); - cboKBDLed_scr->addActionListener(miscActionListener); + lblScrLock = new gcn::Label("ScrollLock LED"); + lblScrLock->setSize(150, LABEL_HEIGHT); + lblScrLock->setAlignment(gcn::Graphics::LEFT); + cboKBDLed_scr = new gcn::UaeDropDown(&KBDLedList); + cboKBDLed_scr->setSize(150, DROPDOWN_HEIGHT); + cboKBDLed_scr->setBaseColor(gui_baseCol); + cboKBDLed_scr->setId("scrolllock"); + cboKBDLed_scr->addActionListener(miscActionListener); - category.panel->add(lblNumLock, DISTANCE_BORDER, posY); + category.panel->add(lblNumLock, DISTANCE_BORDER, posY); // category.panel->add(lblCapLock, lblNumLock->getX() + lblNumLock->getWidth() + DISTANCE_NEXT_X, posY); - category.panel->add(lblScrLock, lblCapLock->getX() + lblCapLock->getWidth() + DISTANCE_NEXT_X, posY); - posY += lblNumLock->getHeight() + 4; + category.panel->add(lblScrLock, lblCapLock->getX() + lblCapLock->getWidth() + DISTANCE_NEXT_X, posY); + posY += lblNumLock->getHeight() + 4; - category.panel->add(cboKBDLed_num, DISTANCE_BORDER, posY); + category.panel->add(cboKBDLed_num, DISTANCE_BORDER, posY); // category.panel->add(cboKBDLed_cap, cboKBDLed_num->getX() + cboKBDLed_num->getWidth() + DISTANCE_NEXT_X, posY); - category.panel->add(cboKBDLed_scr, cboKBDLed_cap->getX() + cboKBDLed_cap->getWidth() + DISTANCE_NEXT_X, posY); + category.panel->add(cboKBDLed_scr, cboKBDLed_cap->getX() + cboKBDLed_cap->getWidth() + DISTANCE_NEXT_X, posY); - posY += cboKBDLed_scr->getHeight() + DISTANCE_NEXT_Y; -#endif - -RefreshPanelMisc(); + posY += cboKBDLed_scr->getHeight() + DISTANCE_NEXT_Y; +#endif + + RefreshPanelMisc(); } void ExitPanelMisc(void) { - delete chkStatusLine; - delete chkHideIdleLed; - delete chkShowGUI; + delete chkStatusLine; + delete chkHideIdleLed; + delete chkShowGUI; #ifdef PANDORA_SPECIFIC - delete lblPandoraSpeed; - delete sldPandoraSpeed; - delete lblPandoraSpeedInfo; + delete lblPandoraSpeed; + delete sldPandoraSpeed; + delete lblPandoraSpeedInfo; #endif - delete chkBSDSocket; + delete chkBSDSocket; #ifdef RASPBERRY - delete lblCapLock; - delete lblScrLock; - delete lblNumLock; - delete cboKBDLed_num; - delete cboKBDLed_cap; - delete cboKBDLed_scr; + delete lblCapLock; + delete lblScrLock; + delete lblNumLock; + delete cboKBDLed_num; + delete cboKBDLed_cap; + delete cboKBDLed_scr; #endif - delete miscActionListener; + delete miscActionListener; } void RefreshPanelMisc(void) { - char tmp[20]; + char tmp[20]; - chkStatusLine->setSelected(changed_prefs.leds_on_screen); - chkHideIdleLed->setSelected(changed_prefs.pandora_hide_idle_led); - chkShowGUI->setSelected(changed_prefs.start_gui); + chkStatusLine->setSelected(changed_prefs.leds_on_screen); + chkHideIdleLed->setSelected(changed_prefs.pandora_hide_idle_led); + chkShowGUI->setSelected(changed_prefs.start_gui); #ifdef PANDORA_SPECIFIC - sldPandoraSpeed->setValue(changed_prefs.pandora_cpu_speed); - snprintf(tmp, 20, "%d MHz", changed_prefs.pandora_cpu_speed); - lblPandoraSpeedInfo->setCaption(tmp); + sldPandoraSpeed->setValue(changed_prefs.pandora_cpu_speed); + snprintf(tmp, 20, "%d MHz", changed_prefs.pandora_cpu_speed); + lblPandoraSpeedInfo->setCaption(tmp); #endif - - chkBSDSocket->setSelected(changed_prefs.socket_emu); + + chkBSDSocket->setSelected(changed_prefs.socket_emu); #ifdef RASPBERRY - if (changed_prefs.kbd_led_num == -1) cboKBDLed_num->setSelected(0); - if (changed_prefs.kbd_led_num == -2) cboKBDLed_num->setSelected(6); - if (changed_prefs.kbd_led_num == 5) cboKBDLed_num->setSelected(7); - if (changed_prefs.kbd_led_num >= 1 && changed_prefs.kbd_led_num <= 4) cboKBDLed_num->setSelected(changed_prefs.kbd_led_num + 1); - if (changed_prefs.kbd_led_cap == -1) cboKBDLed_cap->setSelected(0); - if (changed_prefs.kbd_led_cap == -2) cboKBDLed_cap->setSelected(6); - if (changed_prefs.kbd_led_cap == 5) cboKBDLed_cap->setSelected(7); - if (changed_prefs.kbd_led_cap >= 1 && changed_prefs.kbd_led_cap <= 4) cboKBDLed_cap->setSelected(changed_prefs.kbd_led_cap + 1); - if (changed_prefs.kbd_led_scr == -1) cboKBDLed_scr->setSelected(0); - if (changed_prefs.kbd_led_scr == -2) cboKBDLed_scr->setSelected(6); - if (changed_prefs.kbd_led_scr == 5) cboKBDLed_scr->setSelected(7); - if (changed_prefs.kbd_led_scr >= 1 && changed_prefs.kbd_led_scr <= 4) cboKBDLed_scr->setSelected(changed_prefs.kbd_led_scr + 1); + if (changed_prefs.kbd_led_num == -1) cboKBDLed_num->setSelected(0); + if (changed_prefs.kbd_led_num == -2) cboKBDLed_num->setSelected(6); + if (changed_prefs.kbd_led_num == 5) cboKBDLed_num->setSelected(7); + if (changed_prefs.kbd_led_num >= 1 && changed_prefs.kbd_led_num <= 4) cboKBDLed_num->setSelected(changed_prefs.kbd_led_num + 1); + if (changed_prefs.kbd_led_cap == -1) cboKBDLed_cap->setSelected(0); + if (changed_prefs.kbd_led_cap == -2) cboKBDLed_cap->setSelected(6); + if (changed_prefs.kbd_led_cap == 5) cboKBDLed_cap->setSelected(7); + if (changed_prefs.kbd_led_cap >= 1 && changed_prefs.kbd_led_cap <= 4) cboKBDLed_cap->setSelected(changed_prefs.kbd_led_cap + 1); + if (changed_prefs.kbd_led_scr == -1) cboKBDLed_scr->setSelected(0); + if (changed_prefs.kbd_led_scr == -2) cboKBDLed_scr->setSelected(6); + if (changed_prefs.kbd_led_scr == 5) cboKBDLed_scr->setSelected(7); + if (changed_prefs.kbd_led_scr >= 1 && changed_prefs.kbd_led_scr <= 4) cboKBDLed_scr->setSelected(changed_prefs.kbd_led_scr + 1); #endif } diff --git a/src/od-pandora/gui/PanelPaths.cpp b/src/od-pandora/gui/PanelPaths.cpp index 083bd638..eaab7dd1 100644 --- a/src/od-pandora/gui/PanelPaths.cpp +++ b/src/od-pandora/gui/PanelPaths.cpp @@ -23,32 +23,32 @@ static gcn::Button *cmdRescanROMs; class FolderButtonActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - char tmp[MAX_PATH]; - - if (actionEvent.getSource() == cmdSystemROMs) - { - fetch_rompath(tmp, MAX_PATH); - if(SelectFolder("Folder for System ROMs", tmp)) + char tmp[MAX_PATH]; + + if (actionEvent.getSource() == cmdSystemROMs) { - set_rompath(tmp); - RefreshPanelPaths(); + fetch_rompath(tmp, MAX_PATH); + if(SelectFolder("Folder for System ROMs", tmp)) + { + set_rompath(tmp); + RefreshPanelPaths(); + } + cmdSystemROMs->requestFocus(); } - cmdSystemROMs->requestFocus(); - } - else if(actionEvent.getSource() == cmdConfigPath) - { - fetch_configurationpath(tmp, MAX_PATH); - if(SelectFolder("Folder for configuration files", tmp)) + else if(actionEvent.getSource() == cmdConfigPath) { - set_configurationpath(tmp); - RefreshPanelPaths(); - RefreshPanelConfig(); + fetch_configurationpath(tmp, MAX_PATH); + if(SelectFolder("Folder for configuration files", tmp)) + { + set_configurationpath(tmp); + RefreshPanelPaths(); + RefreshPanelConfig(); + } + cmdConfigPath->requestFocus(); } - cmdConfigPath->requestFocus(); - } } }; static FolderButtonActionListener* folderButtonActionListener; @@ -56,11 +56,11 @@ static FolderButtonActionListener* folderButtonActionListener; class RescanROMsButtonActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - RescanROMs(); - RefreshPanelROM(); + RescanROMs(); + RefreshPanelROM(); } }; static RescanROMsButtonActionListener* rescanROMsButtonActionListener; @@ -68,82 +68,82 @@ static RescanROMsButtonActionListener* rescanROMsButtonActionListener; void InitPanelPaths(const struct _ConfigCategory& category) { - int textFieldWidth = category.panel->getWidth() - 2 * DISTANCE_BORDER - SMALL_BUTTON_WIDTH - DISTANCE_NEXT_X; - int yPos = DISTANCE_BORDER; - folderButtonActionListener = new FolderButtonActionListener(); - - lblSystemROMs = new gcn::Label("System ROMs:"); - lblSystemROMs->setSize(120, LABEL_HEIGHT); - txtSystemROMs = new gcn::TextField(); - txtSystemROMs->setSize(textFieldWidth, TEXTFIELD_HEIGHT); - txtSystemROMs->setEnabled(false); - cmdSystemROMs = new gcn::Button("..."); - cmdSystemROMs->setId("SystemROMs"); - cmdSystemROMs->setSize(SMALL_BUTTON_WIDTH, SMALL_BUTTON_HEIGHT); - cmdSystemROMs->setBaseColor(gui_baseCol); - cmdSystemROMs->addActionListener(folderButtonActionListener); + int textFieldWidth = category.panel->getWidth() - 2 * DISTANCE_BORDER - SMALL_BUTTON_WIDTH - DISTANCE_NEXT_X; + int yPos = DISTANCE_BORDER; + folderButtonActionListener = new FolderButtonActionListener(); - lblConfigPath = new gcn::Label("Configuration files:"); - lblConfigPath->setSize(120, LABEL_HEIGHT); - txtConfigPath = new gcn::TextField(); - txtConfigPath->setSize(textFieldWidth, TEXTFIELD_HEIGHT); - txtConfigPath->setEnabled(false); - cmdConfigPath = new gcn::Button("..."); - cmdConfigPath->setId("ConfigPath"); - cmdConfigPath->setSize(SMALL_BUTTON_WIDTH, SMALL_BUTTON_HEIGHT); - cmdConfigPath->setBaseColor(gui_baseCol); - cmdConfigPath->addActionListener(folderButtonActionListener); - - category.panel->add(lblSystemROMs, DISTANCE_BORDER, yPos); - yPos += lblSystemROMs->getHeight(); - category.panel->add(txtSystemROMs, DISTANCE_BORDER, yPos); - category.panel->add(cmdSystemROMs, DISTANCE_BORDER + textFieldWidth + DISTANCE_NEXT_X, yPos); - yPos += txtSystemROMs->getHeight() + DISTANCE_NEXT_Y; - - category.panel->add(lblConfigPath, DISTANCE_BORDER, yPos); - yPos += lblConfigPath->getHeight(); - category.panel->add(txtConfigPath, DISTANCE_BORDER, yPos); - category.panel->add(cmdConfigPath, DISTANCE_BORDER + textFieldWidth + DISTANCE_NEXT_X, yPos); - yPos += txtConfigPath->getHeight() + DISTANCE_NEXT_Y; + lblSystemROMs = new gcn::Label("System ROMs:"); + lblSystemROMs->setSize(120, LABEL_HEIGHT); + txtSystemROMs = new gcn::TextField(); + txtSystemROMs->setSize(textFieldWidth, TEXTFIELD_HEIGHT); + txtSystemROMs->setEnabled(false); + cmdSystemROMs = new gcn::Button("..."); + cmdSystemROMs->setId("SystemROMs"); + cmdSystemROMs->setSize(SMALL_BUTTON_WIDTH, SMALL_BUTTON_HEIGHT); + cmdSystemROMs->setBaseColor(gui_baseCol); + cmdSystemROMs->addActionListener(folderButtonActionListener); - rescanROMsButtonActionListener = new RescanROMsButtonActionListener(); + lblConfigPath = new gcn::Label("Configuration files:"); + lblConfigPath->setSize(120, LABEL_HEIGHT); + txtConfigPath = new gcn::TextField(); + txtConfigPath->setSize(textFieldWidth, TEXTFIELD_HEIGHT); + txtConfigPath->setEnabled(false); + cmdConfigPath = new gcn::Button("..."); + cmdConfigPath->setId("ConfigPath"); + cmdConfigPath->setSize(SMALL_BUTTON_WIDTH, SMALL_BUTTON_HEIGHT); + cmdConfigPath->setBaseColor(gui_baseCol); + cmdConfigPath->addActionListener(folderButtonActionListener); - cmdRescanROMs = new gcn::Button("Rescan ROMs"); - cmdRescanROMs->setSize(120, BUTTON_HEIGHT); - cmdRescanROMs->setBaseColor(gui_baseCol); - cmdRescanROMs->setId("RescanROMs"); - cmdRescanROMs->addActionListener(rescanROMsButtonActionListener); - - category.panel->add(cmdRescanROMs, DISTANCE_BORDER, category.panel->getHeight() - BUTTON_HEIGHT - DISTANCE_BORDER); + category.panel->add(lblSystemROMs, DISTANCE_BORDER, yPos); + yPos += lblSystemROMs->getHeight(); + category.panel->add(txtSystemROMs, DISTANCE_BORDER, yPos); + category.panel->add(cmdSystemROMs, DISTANCE_BORDER + textFieldWidth + DISTANCE_NEXT_X, yPos); + yPos += txtSystemROMs->getHeight() + DISTANCE_NEXT_Y; - RefreshPanelPaths(); + category.panel->add(lblConfigPath, DISTANCE_BORDER, yPos); + yPos += lblConfigPath->getHeight(); + category.panel->add(txtConfigPath, DISTANCE_BORDER, yPos); + category.panel->add(cmdConfigPath, DISTANCE_BORDER + textFieldWidth + DISTANCE_NEXT_X, yPos); + yPos += txtConfigPath->getHeight() + DISTANCE_NEXT_Y; + + rescanROMsButtonActionListener = new RescanROMsButtonActionListener(); + + cmdRescanROMs = new gcn::Button("Rescan ROMs"); + cmdRescanROMs->setSize(120, BUTTON_HEIGHT); + cmdRescanROMs->setBaseColor(gui_baseCol); + cmdRescanROMs->setId("RescanROMs"); + cmdRescanROMs->addActionListener(rescanROMsButtonActionListener); + + category.panel->add(cmdRescanROMs, DISTANCE_BORDER, category.panel->getHeight() - BUTTON_HEIGHT - DISTANCE_BORDER); + + RefreshPanelPaths(); } void ExitPanelPaths(void) { - delete lblSystemROMs; - delete txtSystemROMs; - delete cmdSystemROMs; + delete lblSystemROMs; + delete txtSystemROMs; + delete cmdSystemROMs; - delete lblConfigPath; - delete txtConfigPath; - delete cmdConfigPath; - - delete folderButtonActionListener; + delete lblConfigPath; + delete txtConfigPath; + delete cmdConfigPath; - delete cmdRescanROMs; - delete rescanROMsButtonActionListener; + delete folderButtonActionListener; + + delete cmdRescanROMs; + delete rescanROMsButtonActionListener; } void RefreshPanelPaths(void) { - char tmp[MAX_PATH]; - - fetch_rompath(tmp, MAX_PATH); - txtSystemROMs->setText(tmp); - - fetch_configurationpath(tmp, MAX_PATH); - txtConfigPath->setText(tmp); + char tmp[MAX_PATH]; + + fetch_rompath(tmp, MAX_PATH); + txtSystemROMs->setText(tmp); + + fetch_configurationpath(tmp, MAX_PATH); + txtConfigPath->setText(tmp); } diff --git a/src/od-pandora/gui/PanelRAM.cpp b/src/od-pandora/gui/PanelRAM.cpp index c937365e..35587dad 100644 --- a/src/od-pandora/gui/PanelRAM.cpp +++ b/src/od-pandora/gui/PanelRAM.cpp @@ -45,214 +45,214 @@ static gcn::Slider* sldGfxmem; class MemorySliderActionListener : public gcn::ActionListener { public: - void action(const gcn::ActionEvent& actionEvent) - { - if (actionEvent.getSource() == sldChipmem) - { - changed_prefs.chipmem_size = ChipMem_values[(int)(sldChipmem->getValue())]; - if ((changed_prefs.chipmem_size > 0x200000) && (changed_prefs.fastmem_size > 0)) - changed_prefs.fastmem_size = 0; - } + void action(const gcn::ActionEvent& actionEvent) + { + if (actionEvent.getSource() == sldChipmem) + { + changed_prefs.chipmem_size = ChipMem_values[(int)(sldChipmem->getValue())]; + if ((changed_prefs.chipmem_size > 0x200000) && (changed_prefs.fastmem_size > 0)) + changed_prefs.fastmem_size = 0; + } - if (actionEvent.getSource() == sldSlowmem) - { - changed_prefs.bogomem_size = SlowMem_values[(int)(sldSlowmem->getValue())]; - } + if (actionEvent.getSource() == sldSlowmem) + { + changed_prefs.bogomem_size = SlowMem_values[(int)(sldSlowmem->getValue())]; + } - if (actionEvent.getSource() == sldFastmem) - { - changed_prefs.fastmem_size = FastMem_values[(int)(sldFastmem->getValue())]; - if (changed_prefs.fastmem_size > 0 && changed_prefs.chipmem_size > 0x200000) - changed_prefs.chipmem_size = 0x200000; - } + if (actionEvent.getSource() == sldFastmem) + { + changed_prefs.fastmem_size = FastMem_values[(int)(sldFastmem->getValue())]; + if (changed_prefs.fastmem_size > 0 && changed_prefs.chipmem_size > 0x200000) + changed_prefs.chipmem_size = 0x200000; + } - if (actionEvent.getSource() == sldZ3mem) - { - changed_prefs.z3fastmem_size = FastMem_values[(int)(sldZ3mem->getValue())]; - if (changed_prefs.z3fastmem_size > max_z3fastmem) - changed_prefs.z3fastmem_size = max_z3fastmem; - } + if (actionEvent.getSource() == sldZ3mem) + { + changed_prefs.z3fastmem_size = FastMem_values[(int)(sldZ3mem->getValue())]; + if (changed_prefs.z3fastmem_size > max_z3fastmem) + changed_prefs.z3fastmem_size = max_z3fastmem; + } - if (actionEvent.getSource() == sldGfxmem) - { - changed_prefs.rtgmem_size = FastMem_values[(int)(sldGfxmem->getValue())]; - changed_prefs.rtgmem_type = 1; - } + if (actionEvent.getSource() == sldGfxmem) + { + changed_prefs.rtgmem_size = FastMem_values[(int)(sldGfxmem->getValue())]; + changed_prefs.rtgmem_type = 1; + } - RefreshPanelRAM(); - } + RefreshPanelRAM(); + } }; static MemorySliderActionListener* memorySliderActionListener; void InitPanelRAM(const struct _ConfigCategory& category) { - memorySliderActionListener = new MemorySliderActionListener(); + memorySliderActionListener = new MemorySliderActionListener(); - lblChipmem = new gcn::Label("Chip:"); - sldChipmem = new gcn::Slider(0, 4); - sldChipmem->setSize(110, SLIDER_HEIGHT); - sldChipmem->setBaseColor(gui_baseCol); - sldChipmem->setMarkerLength(20); - sldChipmem->setStepLength(1); - sldChipmem->setId("Chipmem"); - sldChipmem->addActionListener(memorySliderActionListener); - lblChipsize = new gcn::Label("None "); + lblChipmem = new gcn::Label("Chip:"); + sldChipmem = new gcn::Slider(0, 4); + sldChipmem->setSize(110, SLIDER_HEIGHT); + sldChipmem->setBaseColor(gui_baseCol); + sldChipmem->setMarkerLength(20); + sldChipmem->setStepLength(1); + sldChipmem->setId("Chipmem"); + sldChipmem->addActionListener(memorySliderActionListener); + lblChipsize = new gcn::Label("None "); - lblSlowmem = new gcn::Label("Slow:"); - sldSlowmem = new gcn::Slider(0, 4); - sldSlowmem->setSize(110, SLIDER_HEIGHT); - sldSlowmem->setBaseColor(gui_baseCol); - sldSlowmem->setMarkerLength(20); - sldSlowmem->setStepLength(1); - sldSlowmem->setId("Slowmem"); - sldSlowmem->addActionListener(memorySliderActionListener); - lblSlowsize = new gcn::Label("None "); + lblSlowmem = new gcn::Label("Slow:"); + sldSlowmem = new gcn::Slider(0, 4); + sldSlowmem->setSize(110, SLIDER_HEIGHT); + sldSlowmem->setBaseColor(gui_baseCol); + sldSlowmem->setMarkerLength(20); + sldSlowmem->setStepLength(1); + sldSlowmem->setId("Slowmem"); + sldSlowmem->addActionListener(memorySliderActionListener); + lblSlowsize = new gcn::Label("None "); - lblFastmem = new gcn::Label("Fast:"); - sldFastmem = new gcn::Slider(0, 4); - sldFastmem->setSize(110, SLIDER_HEIGHT); - sldFastmem->setBaseColor(gui_baseCol); - sldFastmem->setMarkerLength(20); - sldFastmem->setStepLength(1); - sldFastmem->setId("Fastmem"); - sldFastmem->addActionListener(memorySliderActionListener); - lblFastsize = new gcn::Label("None "); + lblFastmem = new gcn::Label("Fast:"); + sldFastmem = new gcn::Slider(0, 4); + sldFastmem->setSize(110, SLIDER_HEIGHT); + sldFastmem->setBaseColor(gui_baseCol); + sldFastmem->setMarkerLength(20); + sldFastmem->setStepLength(1); + sldFastmem->setId("Fastmem"); + sldFastmem->addActionListener(memorySliderActionListener); + lblFastsize = new gcn::Label("None "); - lblZ3mem = new gcn::Label("Z3 fast:"); - sldZ3mem = new gcn::Slider(0, 8); - sldZ3mem->setSize(110, SLIDER_HEIGHT); - sldZ3mem->setBaseColor(gui_baseCol); - sldZ3mem->setMarkerLength(20); - sldZ3mem->setStepLength(1); - sldZ3mem->setId("Z3mem"); - sldZ3mem->addActionListener(memorySliderActionListener); - lblZ3size = new gcn::Label("None "); + lblZ3mem = new gcn::Label("Z3 fast:"); + sldZ3mem = new gcn::Slider(0, 8); + sldZ3mem->setSize(110, SLIDER_HEIGHT); + sldZ3mem->setBaseColor(gui_baseCol); + sldZ3mem->setMarkerLength(20); + sldZ3mem->setStepLength(1); + sldZ3mem->setId("Z3mem"); + sldZ3mem->addActionListener(memorySliderActionListener); + lblZ3size = new gcn::Label("None "); - lblGfxmem = new gcn::Label("RTG:"); - sldGfxmem = new gcn::Slider(0, 5); - sldGfxmem->setSize(110, SLIDER_HEIGHT); - sldGfxmem->setBaseColor(gui_baseCol); - sldGfxmem->setMarkerLength(20); - sldGfxmem->setStepLength(1); - sldGfxmem->setId("Gfxmem"); - sldGfxmem->addActionListener(memorySliderActionListener); - lblGfxsize = new gcn::Label("None "); + lblGfxmem = new gcn::Label("RTG:"); + sldGfxmem = new gcn::Slider(0, 5); + sldGfxmem->setSize(110, SLIDER_HEIGHT); + sldGfxmem->setBaseColor(gui_baseCol); + sldGfxmem->setMarkerLength(20); + sldGfxmem->setStepLength(1); + sldGfxmem->setId("Gfxmem"); + sldGfxmem->addActionListener(memorySliderActionListener); + lblGfxsize = new gcn::Label("None "); - grpRAM = new gcn::Window("Memory Settings"); - grpRAM->setPosition(DISTANCE_BORDER, DISTANCE_BORDER); + grpRAM = new gcn::Window("Memory Settings"); + grpRAM->setPosition(DISTANCE_BORDER, DISTANCE_BORDER); - int posY = 10; - grpRAM->add(lblChipmem, 8, posY); - grpRAM->add(sldChipmem, 70, posY); - grpRAM->add(lblChipsize, 70 + sldChipmem->getWidth() + 12, posY); - posY += sldChipmem->getHeight() + DISTANCE_NEXT_Y; + int posY = 10; + grpRAM->add(lblChipmem, 8, posY); + grpRAM->add(sldChipmem, 70, posY); + grpRAM->add(lblChipsize, 70 + sldChipmem->getWidth() + 12, posY); + posY += sldChipmem->getHeight() + DISTANCE_NEXT_Y; - grpRAM->add(lblSlowmem, 8, posY); - grpRAM->add(sldSlowmem, 70, posY); - grpRAM->add(lblSlowsize, 70 + sldSlowmem->getWidth() + 12, posY); - posY += sldSlowmem->getHeight() + DISTANCE_NEXT_Y; + grpRAM->add(lblSlowmem, 8, posY); + grpRAM->add(sldSlowmem, 70, posY); + grpRAM->add(lblSlowsize, 70 + sldSlowmem->getWidth() + 12, posY); + posY += sldSlowmem->getHeight() + DISTANCE_NEXT_Y; - grpRAM->add(lblFastmem, 8, posY); - grpRAM->add(sldFastmem, 70, posY); - grpRAM->add(lblFastsize, 70 + sldFastmem->getWidth() + 12, posY); - posY += sldFastmem->getHeight() + DISTANCE_NEXT_Y; + grpRAM->add(lblFastmem, 8, posY); + grpRAM->add(sldFastmem, 70, posY); + grpRAM->add(lblFastsize, 70 + sldFastmem->getWidth() + 12, posY); + posY += sldFastmem->getHeight() + DISTANCE_NEXT_Y; - grpRAM->add(lblZ3mem, 8, posY); - grpRAM->add(sldZ3mem, 70, posY); - grpRAM->add(lblZ3size, 70 + sldZ3mem->getWidth() + 12, posY); - posY += sldZ3mem->getHeight() + DISTANCE_NEXT_Y; + grpRAM->add(lblZ3mem, 8, posY); + grpRAM->add(sldZ3mem, 70, posY); + grpRAM->add(lblZ3size, 70 + sldZ3mem->getWidth() + 12, posY); + posY += sldZ3mem->getHeight() + DISTANCE_NEXT_Y; #ifdef PICASSO96 - grpRAM->add(lblGfxmem, 8, posY); - grpRAM->add(sldGfxmem, 70, posY); - grpRAM->add(lblGfxsize, 70 + sldGfxmem->getWidth() + 12, posY); - posY += sldGfxmem->getHeight() + DISTANCE_NEXT_Y; + grpRAM->add(lblGfxmem, 8, posY); + grpRAM->add(sldGfxmem, 70, posY); + grpRAM->add(lblGfxsize, 70 + sldGfxmem->getWidth() + 12, posY); + posY += sldGfxmem->getHeight() + DISTANCE_NEXT_Y; #endif - grpRAM->setMovable(false); - grpRAM->setSize(250, posY + DISTANCE_BORDER); - grpRAM->setBaseColor(gui_baseCol); + grpRAM->setMovable(false); + grpRAM->setSize(250, posY + DISTANCE_BORDER); + grpRAM->setBaseColor(gui_baseCol); - category.panel->add(grpRAM); + category.panel->add(grpRAM); - RefreshPanelRAM(); + RefreshPanelRAM(); } void ExitPanelRAM(void) { - delete lblChipmem; - delete sldChipmem; - delete lblChipsize; - delete lblSlowmem; - delete sldSlowmem; - delete lblSlowsize; - delete lblFastmem; - delete sldFastmem; - delete lblFastsize; - delete lblZ3mem; - delete sldZ3mem; - delete lblZ3size; - delete lblGfxmem; - delete sldGfxmem; - delete lblGfxsize; - delete grpRAM; - delete memorySliderActionListener; + delete lblChipmem; + delete sldChipmem; + delete lblChipsize; + delete lblSlowmem; + delete sldSlowmem; + delete lblSlowsize; + delete lblFastmem; + delete sldFastmem; + delete lblFastsize; + delete lblZ3mem; + delete sldZ3mem; + delete lblZ3size; + delete lblGfxmem; + delete sldGfxmem; + delete lblGfxsize; + delete grpRAM; + delete memorySliderActionListener; } void RefreshPanelRAM(void) { - int i; + int i; - for (i = 0; i < 5; ++i) - { - if (changed_prefs.chipmem_size == ChipMem_values[i]) - { - sldChipmem->setValue(i); - lblChipsize->setCaption(ChipMem_list[i]); - break; - } - } + for (i = 0; i < 5; ++i) + { + if (changed_prefs.chipmem_size == ChipMem_values[i]) + { + sldChipmem->setValue(i); + lblChipsize->setCaption(ChipMem_list[i]); + break; + } + } - for (i = 0; i < 5; ++i) - { - if (changed_prefs.bogomem_size == SlowMem_values[i]) - { - sldSlowmem->setValue(i); - lblSlowsize->setCaption(SlowMem_list[i]); - break; - } - } + for (i = 0; i < 5; ++i) + { + if (changed_prefs.bogomem_size == SlowMem_values[i]) + { + sldSlowmem->setValue(i); + lblSlowsize->setCaption(SlowMem_list[i]); + break; + } + } - for (i = 0; i < 5; ++i) - { - if (changed_prefs.fastmem_size == FastMem_values[i]) - { - sldFastmem->setValue(i); - lblFastsize->setCaption(FastMem_list[i]); - break; - } - } + for (i = 0; i < 5; ++i) + { + if (changed_prefs.fastmem_size == FastMem_values[i]) + { + sldFastmem->setValue(i); + lblFastsize->setCaption(FastMem_list[i]); + break; + } + } - for (i = 0; i < 9; ++i) - { - if (changed_prefs.z3fastmem_size == FastMem_values[i]) - { - sldZ3mem->setValue(i); - lblZ3size->setCaption(FastMem_list[i]); - break; - } - } - sldZ3mem->setEnabled(!changed_prefs.address_space_24); + for (i = 0; i < 9; ++i) + { + if (changed_prefs.z3fastmem_size == FastMem_values[i]) + { + sldZ3mem->setValue(i); + lblZ3size->setCaption(FastMem_list[i]); + break; + } + } + sldZ3mem->setEnabled(!changed_prefs.address_space_24); - for (i = 0; i < 6; ++i) - { - if (changed_prefs.rtgmem_size == FastMem_values[i]) - { - sldGfxmem->setValue(i); - lblGfxsize->setCaption(FastMem_list[i]); - break; - } - } - sldGfxmem->setEnabled(!changed_prefs.address_space_24); + for (i = 0; i < 6; ++i) + { + if (changed_prefs.rtgmem_size == FastMem_values[i]) + { + sldGfxmem->setValue(i); + lblGfxsize->setCaption(FastMem_list[i]); + break; + } + } + sldGfxmem->setEnabled(!changed_prefs.address_space_24); } diff --git a/src/od-pandora/gui/PanelROM.cpp b/src/od-pandora/gui/PanelROM.cpp index 2efcc0c6..f34ae010 100644 --- a/src/od-pandora/gui/PanelROM.cpp +++ b/src/od-pandora/gui/PanelROM.cpp @@ -11,7 +11,7 @@ #include "sysdeps.h" #include "config.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "rommgr.h" #include "uae.h" #include "gui.h" @@ -28,58 +28,58 @@ static gcn::UaeCheckBox* chkMapROM; class ROMListModel : public gcn::ListModel { - private: +private: std::vector roms; std::vector idxToAvailableROMs; int ROMType; - - public: + +public: ROMListModel(int romtype) { - ROMType = romtype; + ROMType = romtype; } - + int getNumberOfElements() { - return roms.size(); + return roms.size(); } std::string getElementAt(int i) { - if(i < 0 || i >= roms.size()) - return "---"; - return roms[i]; + if(i < 0 || i >= roms.size()) + return "---"; + return roms[i]; } - + AvailableROM* getROMat(int i) { - if(i >= 0 && i < idxToAvailableROMs.size()) - return idxToAvailableROMs[i] < 0 ? NULL : lstAvailableROMs[idxToAvailableROMs[i]]; - return NULL; + if(i >= 0 && i < idxToAvailableROMs.size()) + return idxToAvailableROMs[i] < 0 ? NULL : lstAvailableROMs[idxToAvailableROMs[i]]; + return NULL; } - + int InitROMList(char *current) { - roms.clear(); - idxToAvailableROMs.clear(); - - if(ROMType & (ROMTYPE_EXTCDTV | ROMTYPE_EXTCD32)) - { - roms.push_back(""); - idxToAvailableROMs.push_back(-1); - } - int currIdx = -1; - for(int i=0; iROMType & ROMType) + roms.clear(); + idxToAvailableROMs.clear(); + + if(ROMType & (ROMTYPE_EXTCDTV | ROMTYPE_EXTCD32)) { - if(!strcasecmp(lstAvailableROMs[i]->Path, current)) - currIdx = roms.size(); - roms.push_back(lstAvailableROMs[i]->Name); - idxToAvailableROMs.push_back(i); + roms.push_back(""); + idxToAvailableROMs.push_back(-1); } - } - return currIdx; + int currIdx = -1; + for(int i=0; iROMType & ROMType) + { + if(!strcasecmp(lstAvailableROMs[i]->Path, current)) + currIdx = roms.size(); + roms.push_back(lstAvailableROMs[i]->Name); + idxToAvailableROMs.push_back(i); + } + } + return currIdx; } }; static ROMListModel *mainROMList; @@ -88,12 +88,12 @@ static ROMListModel *extROMList; class MainROMActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - AvailableROM* rom = mainROMList->getROMat(cboMainROM->getSelected()); - if(rom != NULL) - strncpy(changed_prefs.romfile, rom->Path, sizeof(changed_prefs.romfile)); + AvailableROM* rom = mainROMList->getROMat(cboMainROM->getSelected()); + if(rom != NULL) + strncpy(changed_prefs.romfile, rom->Path, sizeof(changed_prefs.romfile)); } }; static MainROMActionListener* mainROMActionListener; @@ -101,14 +101,14 @@ static MainROMActionListener* mainROMActionListener; class ExtROMActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - AvailableROM* rom = extROMList->getROMat(cboExtROM->getSelected()); - if(rom != NULL) - strncpy(changed_prefs.romextfile, rom->Path, sizeof(changed_prefs.romextfile)); - else - strncpy(changed_prefs.romextfile, "", sizeof(changed_prefs.romextfile)); + AvailableROM* rom = extROMList->getROMat(cboExtROM->getSelected()); + if(rom != NULL) + strncpy(changed_prefs.romextfile, rom->Path, sizeof(changed_prefs.romextfile)); + else + strncpy(changed_prefs.romextfile, "", sizeof(changed_prefs.romextfile)); } }; static ExtROMActionListener* extROMActionListener; @@ -116,46 +116,46 @@ static ExtROMActionListener* extROMActionListener; class ROMButtonActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - char tmp[MAX_PATH]; - const char *filter[] = { ".rom", "\0" }; - - if (actionEvent.getSource() == cmdMainROM) - { - strncpy(tmp, currentDir, MAX_PATH); - if(SelectFile("Select System ROM", tmp, filter)) + char tmp[MAX_PATH]; + const char *filter[] = { ".rom", "\0" }; + + if (actionEvent.getSource() == cmdMainROM) { - AvailableROM *newrom; - newrom = new AvailableROM(); - extractFileName(tmp, newrom->Name); - removeFileExtension(newrom->Name); - strncpy(newrom->Path, tmp, MAX_PATH); - newrom->ROMType = ROMTYPE_KICK; - lstAvailableROMs.push_back(newrom); - strncpy(changed_prefs.romfile, tmp, sizeof(changed_prefs.romfile)); - RefreshPanelROM(); + strncpy(tmp, currentDir, MAX_PATH); + if(SelectFile("Select System ROM", tmp, filter)) + { + AvailableROM *newrom; + newrom = new AvailableROM(); + extractFileName(tmp, newrom->Name); + removeFileExtension(newrom->Name); + strncpy(newrom->Path, tmp, MAX_PATH); + newrom->ROMType = ROMTYPE_KICK; + lstAvailableROMs.push_back(newrom); + strncpy(changed_prefs.romfile, tmp, sizeof(changed_prefs.romfile)); + RefreshPanelROM(); + } + cmdMainROM->requestFocus(); } - cmdMainROM->requestFocus(); - } - else if (actionEvent.getSource() == cmdExtROM) - { - strncpy(tmp, currentDir, MAX_PATH); - if(SelectFile("Select Extended ROM", tmp, filter)) + else if (actionEvent.getSource() == cmdExtROM) { - AvailableROM *newrom; - newrom = new AvailableROM(); - extractFileName(tmp, newrom->Name); - removeFileExtension(newrom->Name); - strncpy(newrom->Path, tmp, MAX_PATH); - newrom->ROMType = ROMTYPE_EXTCDTV; - lstAvailableROMs.push_back(newrom); - strncpy(changed_prefs.romextfile, tmp, sizeof(changed_prefs.romextfile)); - RefreshPanelROM(); + strncpy(tmp, currentDir, MAX_PATH); + if(SelectFile("Select Extended ROM", tmp, filter)) + { + AvailableROM *newrom; + newrom = new AvailableROM(); + extractFileName(tmp, newrom->Name); + removeFileExtension(newrom->Name); + strncpy(newrom->Path, tmp, MAX_PATH); + newrom->ROMType = ROMTYPE_EXTCDTV; + lstAvailableROMs.push_back(newrom); + strncpy(changed_prefs.romextfile, tmp, sizeof(changed_prefs.romextfile)); + RefreshPanelROM(); + } + cmdExtROM->requestFocus(); } - cmdExtROM->requestFocus(); - } } }; static ROMButtonActionListener* romButtonActionListener; @@ -163,87 +163,87 @@ static ROMButtonActionListener* romButtonActionListener; void InitPanelROM(const struct _ConfigCategory& category) { - mainROMActionListener = new MainROMActionListener(); - extROMActionListener = new ExtROMActionListener(); - romButtonActionListener = new ROMButtonActionListener(); - mainROMList = new ROMListModel(ROMTYPE_KICK | ROMTYPE_KICKCD32); - extROMList = new ROMListModel(ROMTYPE_EXTCDTV | ROMTYPE_EXTCD32); - - lblMainROM = new gcn::Label("Main ROM File:"); - lblMainROM->setSize(200, LABEL_HEIGHT); - cboMainROM = new gcn::UaeDropDown(mainROMList); - cboMainROM->setSize(400, DROPDOWN_HEIGHT); - cboMainROM->setBaseColor(gui_baseCol); - cboMainROM->setId("cboMainROM"); - cboMainROM->addActionListener(mainROMActionListener); - cmdMainROM = new gcn::Button("..."); - cmdMainROM->setId("MainROM"); - cmdMainROM->setSize(SMALL_BUTTON_WIDTH, SMALL_BUTTON_HEIGHT); - cmdMainROM->setBaseColor(gui_baseCol); - cmdMainROM->addActionListener(romButtonActionListener); + mainROMActionListener = new MainROMActionListener(); + extROMActionListener = new ExtROMActionListener(); + romButtonActionListener = new ROMButtonActionListener(); + mainROMList = new ROMListModel(ROMTYPE_KICK | ROMTYPE_KICKCD32); + extROMList = new ROMListModel(ROMTYPE_EXTCDTV | ROMTYPE_EXTCD32); - lblExtROM = new gcn::Label("Extended ROM File:"); - lblExtROM->setSize(200, LABEL_HEIGHT); - cboExtROM = new gcn::UaeDropDown(extROMList); - cboExtROM->setSize(400, DROPDOWN_HEIGHT); - cboExtROM->setBaseColor(gui_baseCol); - cboExtROM->setId("cboExtROM"); - cboExtROM->addActionListener(extROMActionListener); - cmdExtROM = new gcn::Button("..."); - cmdExtROM->setId("ExtROM"); - cmdExtROM->setSize(SMALL_BUTTON_WIDTH, SMALL_BUTTON_HEIGHT); - cmdExtROM->setBaseColor(gui_baseCol); - cmdExtROM->addActionListener(romButtonActionListener); + lblMainROM = new gcn::Label("Main ROM File:"); + lblMainROM->setSize(200, LABEL_HEIGHT); + cboMainROM = new gcn::UaeDropDown(mainROMList); + cboMainROM->setSize(400, DROPDOWN_HEIGHT); + cboMainROM->setBaseColor(gui_baseCol); + cboMainROM->setId("cboMainROM"); + cboMainROM->addActionListener(mainROMActionListener); + cmdMainROM = new gcn::Button("..."); + cmdMainROM->setId("MainROM"); + cmdMainROM->setSize(SMALL_BUTTON_WIDTH, SMALL_BUTTON_HEIGHT); + cmdMainROM->setBaseColor(gui_baseCol); + cmdMainROM->addActionListener(romButtonActionListener); - chkMapROM = new gcn::UaeCheckBox("MapROM emulation", true); - chkMapROM->setEnabled(false); - - int posY = DISTANCE_BORDER; - category.panel->add(lblMainROM, DISTANCE_BORDER, posY); - posY += lblMainROM->getHeight() + 4; - category.panel->add(cboMainROM, DISTANCE_BORDER, posY); - category.panel->add(cmdMainROM, DISTANCE_BORDER + cboMainROM->getWidth() + DISTANCE_NEXT_X, posY); - posY += cboMainROM->getHeight() + DISTANCE_NEXT_Y; + lblExtROM = new gcn::Label("Extended ROM File:"); + lblExtROM->setSize(200, LABEL_HEIGHT); + cboExtROM = new gcn::UaeDropDown(extROMList); + cboExtROM->setSize(400, DROPDOWN_HEIGHT); + cboExtROM->setBaseColor(gui_baseCol); + cboExtROM->setId("cboExtROM"); + cboExtROM->addActionListener(extROMActionListener); + cmdExtROM = new gcn::Button("..."); + cmdExtROM->setId("ExtROM"); + cmdExtROM->setSize(SMALL_BUTTON_WIDTH, SMALL_BUTTON_HEIGHT); + cmdExtROM->setBaseColor(gui_baseCol); + cmdExtROM->addActionListener(romButtonActionListener); + + chkMapROM = new gcn::UaeCheckBox("MapROM emulation", true); + chkMapROM->setEnabled(false); + + int posY = DISTANCE_BORDER; + category.panel->add(lblMainROM, DISTANCE_BORDER, posY); + posY += lblMainROM->getHeight() + 4; + category.panel->add(cboMainROM, DISTANCE_BORDER, posY); + category.panel->add(cmdMainROM, DISTANCE_BORDER + cboMainROM->getWidth() + DISTANCE_NEXT_X, posY); + posY += cboMainROM->getHeight() + DISTANCE_NEXT_Y; + + category.panel->add(lblExtROM, DISTANCE_BORDER, posY); + posY += lblExtROM->getHeight() + 4; + category.panel->add(cboExtROM, DISTANCE_BORDER, posY); + category.panel->add(cmdExtROM, DISTANCE_BORDER + cboExtROM->getWidth() + DISTANCE_NEXT_X, posY); + posY += cboExtROM->getHeight() + DISTANCE_NEXT_Y; - category.panel->add(lblExtROM, DISTANCE_BORDER, posY); - posY += lblExtROM->getHeight() + 4; - category.panel->add(cboExtROM, DISTANCE_BORDER, posY); - category.panel->add(cmdExtROM, DISTANCE_BORDER + cboExtROM->getWidth() + DISTANCE_NEXT_X, posY); - posY += cboExtROM->getHeight() + DISTANCE_NEXT_Y; - // category.panel->add(chkMapROM, DISTANCE_BORDER, posY); - posY += chkMapROM->getHeight() + DISTANCE_NEXT_Y; - - RefreshPanelROM(); + posY += chkMapROM->getHeight() + DISTANCE_NEXT_Y; + + RefreshPanelROM(); } void ExitPanelROM(void) { - delete lblMainROM; - delete cboMainROM; - delete cmdMainROM; - delete mainROMList; - delete mainROMActionListener; - - delete lblExtROM; - delete cboExtROM; - delete cmdExtROM; - delete extROMList; - delete extROMActionListener; - - delete romButtonActionListener; - delete chkMapROM; + delete lblMainROM; + delete cboMainROM; + delete cmdMainROM; + delete mainROMList; + delete mainROMActionListener; + + delete lblExtROM; + delete cboExtROM; + delete cmdExtROM; + delete extROMList; + delete extROMActionListener; + + delete romButtonActionListener; + delete chkMapROM; } void RefreshPanelROM(void) { - int idx = mainROMList->InitROMList(changed_prefs.romfile); - cboMainROM->setSelected(idx); - - idx = extROMList->InitROMList(changed_prefs.romextfile); - cboExtROM->setSelected(idx); - - chkMapROM->setSelected(false); + int idx = mainROMList->InitROMList(changed_prefs.romfile); + cboMainROM->setSelected(idx); + + idx = extROMList->InitROMList(changed_prefs.romextfile); + cboExtROM->setSelected(idx); + + chkMapROM->setSelected(false); } diff --git a/src/od-pandora/gui/PanelSavestate.cpp b/src/od-pandora/gui/PanelSavestate.cpp index 3dd54bdf..daf6b44b 100644 --- a/src/od-pandora/gui/PanelSavestate.cpp +++ b/src/od-pandora/gui/PanelSavestate.cpp @@ -12,7 +12,7 @@ #include "config.h" #include "options.h" #include "autoconf.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "xwin.h" @@ -36,63 +36,63 @@ static gcn::Image *imgSavestate = 0; static gcn::Button* cmdLoadState; static gcn::Button* cmdSaveState; static gcn::Label *lblWarningHDDon; - + class SavestateActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if (actionEvent.getSource() == optState0) - currentStateNum = 0; - else if (actionEvent.getSource() == optState1) - currentStateNum = 1; - else if (actionEvent.getSource() == optState2) - currentStateNum = 2; - else if (actionEvent.getSource() == optState3) - currentStateNum = 3; - else if (actionEvent.getSource() == cmdLoadState) - { - //------------------------------------------ - // Load state - //------------------------------------------ - if(emulating) - { - if(strlen(savestate_fname) > 0) - { - FILE *f = fopen(savestate_fname,"rb"); - if (f) - { - fclose(f); - savestate_initsave(savestate_fname, 2, 0, false); - savestate_state = STATE_DORESTORE; - gui_running = false; - } - } - if(savestate_state != STATE_DORESTORE) - ShowMessage("Loading savestate", "Statefile doesn't exist.", "", "Ok", ""); - } - else - ShowMessage("Loading savestate", "Emulation hasn't started yet.", "", "Ok", ""); - } - else if (actionEvent.getSource() == cmdSaveState) - { - //------------------------------------------ - // Save current state - //------------------------------------------ - if(emulating) - { - savestate_initsave(savestate_fname, 2, 0, false); - save_state (savestate_fname, "..."); - savestate_state = STATE_DOSAVE; // Just to create the screenshot - delay_savestate_frame = 1; - gui_running = false; - } - else - ShowMessage("Saving state", "Emulation hasn't started yet.", "", "Ok", ""); - } + if (actionEvent.getSource() == optState0) + currentStateNum = 0; + else if (actionEvent.getSource() == optState1) + currentStateNum = 1; + else if (actionEvent.getSource() == optState2) + currentStateNum = 2; + else if (actionEvent.getSource() == optState3) + currentStateNum = 3; + else if (actionEvent.getSource() == cmdLoadState) + { + //------------------------------------------ + // Load state + //------------------------------------------ + if(emulating) + { + if(strlen(savestate_fname) > 0) + { + FILE *f = fopen(savestate_fname,"rb"); + if (f) + { + fclose(f); + savestate_initsave(savestate_fname, 2, 0, false); + savestate_state = STATE_DORESTORE; + gui_running = false; + } + } + if(savestate_state != STATE_DORESTORE) + ShowMessage("Loading savestate", "Statefile doesn't exist.", "", "Ok", ""); + } + else + ShowMessage("Loading savestate", "Emulation hasn't started yet.", "", "Ok", ""); + } + else if (actionEvent.getSource() == cmdSaveState) + { + //------------------------------------------ + // Save current state + //------------------------------------------ + if(emulating) + { + savestate_initsave(savestate_fname, 2, 0, false); + save_state (savestate_fname, "..."); + savestate_state = STATE_DOSAVE; // Just to create the screenshot + delay_savestate_frame = 1; + gui_running = false; + } + else + ShowMessage("Saving state", "Emulation hasn't started yet.", "", "Ok", ""); + } - RefreshPanelSavestate(); + RefreshPanelSavestate(); } }; static SavestateActionListener* savestateActionListener; @@ -100,152 +100,152 @@ static SavestateActionListener* savestateActionListener; void InitPanelSavestate(const struct _ConfigCategory& category) { - savestateActionListener = new SavestateActionListener(); + savestateActionListener = new SavestateActionListener(); - optState0 = new gcn::UaeRadioButton("0", "radiostategroup"); - optState0->setId("State0"); - optState0->addActionListener(savestateActionListener); + optState0 = new gcn::UaeRadioButton("0", "radiostategroup"); + optState0->setId("State0"); + optState0->addActionListener(savestateActionListener); - optState1 = new gcn::UaeRadioButton("1", "radiostategroup"); - optState1->setId("State1"); - optState1->addActionListener(savestateActionListener); + optState1 = new gcn::UaeRadioButton("1", "radiostategroup"); + optState1->setId("State1"); + optState1->addActionListener(savestateActionListener); - optState2 = new gcn::UaeRadioButton("2", "radiostategroup"); - optState2->setId("State2"); - optState2->addActionListener(savestateActionListener); + optState2 = new gcn::UaeRadioButton("2", "radiostategroup"); + optState2->setId("State2"); + optState2->addActionListener(savestateActionListener); - optState3 = new gcn::UaeRadioButton("3", "radiostategroup"); - optState3->setId("State3"); - optState3->addActionListener(savestateActionListener); + optState3 = new gcn::UaeRadioButton("3", "radiostategroup"); + optState3->setId("State3"); + optState3->addActionListener(savestateActionListener); - grpNumber = new gcn::Window("Number"); - grpNumber->add(optState0, 5, 10); - grpNumber->add(optState1, 5, 40); - grpNumber->add(optState2, 5, 70); - grpNumber->add(optState3, 5, 100); - grpNumber->setMovable(false); - grpNumber->setSize(60, 145); - grpNumber->setBaseColor(gui_baseCol); - - wndScreenshot = new gcn::Window("State screen"); - wndScreenshot->setMovable(false); - wndScreenshot->setSize(400, 300); - wndScreenshot->setBaseColor(gui_baseCol); + grpNumber = new gcn::Window("Number"); + grpNumber->add(optState0, 5, 10); + grpNumber->add(optState1, 5, 40); + grpNumber->add(optState2, 5, 70); + grpNumber->add(optState3, 5, 100); + grpNumber->setMovable(false); + grpNumber->setSize(60, 145); + grpNumber->setBaseColor(gui_baseCol); - cmdLoadState = new gcn::Button("Load State"); - cmdLoadState->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); - cmdLoadState->setBaseColor(gui_baseCol); - cmdLoadState->setId("LoadState"); - cmdLoadState->addActionListener(savestateActionListener); + wndScreenshot = new gcn::Window("State screen"); + wndScreenshot->setMovable(false); + wndScreenshot->setSize(400, 300); + wndScreenshot->setBaseColor(gui_baseCol); - cmdSaveState = new gcn::Button("Save State"); - cmdSaveState->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); - cmdSaveState->setBaseColor(gui_baseCol); - cmdSaveState->setId("SaveState"); - cmdSaveState->addActionListener(savestateActionListener); + cmdLoadState = new gcn::Button("Load State"); + cmdLoadState->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); + cmdLoadState->setBaseColor(gui_baseCol); + cmdLoadState->setId("LoadState"); + cmdLoadState->addActionListener(savestateActionListener); - lblWarningHDDon = new gcn::Label("State saves do not support harddrive emulation."); - lblWarningHDDon->setSize(360, LABEL_HEIGHT); - - category.panel->add(grpNumber, DISTANCE_BORDER, DISTANCE_BORDER); - category.panel->add(wndScreenshot, DISTANCE_BORDER + 100, DISTANCE_BORDER); - int buttonY = category.panel->getHeight() - DISTANCE_BORDER - BUTTON_HEIGHT; - category.panel->add(cmdLoadState, DISTANCE_BORDER, buttonY); - category.panel->add(cmdSaveState, DISTANCE_BORDER + BUTTON_WIDTH + DISTANCE_NEXT_X, buttonY); - category.panel->add(lblWarningHDDon, DISTANCE_BORDER + 100, DISTANCE_BORDER + 50); - - RefreshPanelSavestate(); + cmdSaveState = new gcn::Button("Save State"); + cmdSaveState->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); + cmdSaveState->setBaseColor(gui_baseCol); + cmdSaveState->setId("SaveState"); + cmdSaveState->addActionListener(savestateActionListener); + + lblWarningHDDon = new gcn::Label("State saves do not support harddrive emulation."); + lblWarningHDDon->setSize(360, LABEL_HEIGHT); + + category.panel->add(grpNumber, DISTANCE_BORDER, DISTANCE_BORDER); + category.panel->add(wndScreenshot, DISTANCE_BORDER + 100, DISTANCE_BORDER); + int buttonY = category.panel->getHeight() - DISTANCE_BORDER - BUTTON_HEIGHT; + category.panel->add(cmdLoadState, DISTANCE_BORDER, buttonY); + category.panel->add(cmdSaveState, DISTANCE_BORDER + BUTTON_WIDTH + DISTANCE_NEXT_X, buttonY); + category.panel->add(lblWarningHDDon, DISTANCE_BORDER + 100, DISTANCE_BORDER + 50); + + RefreshPanelSavestate(); } void ExitPanelSavestate(void) { - delete optState0; - delete optState1; - delete optState2; - delete optState3; - delete grpNumber; + delete optState0; + delete optState1; + delete optState2; + delete optState3; + delete grpNumber; - if(imgSavestate != 0) - delete imgSavestate; - imgSavestate = 0; - if(icoSavestate != 0) - delete icoSavestate; - icoSavestate = 0; - delete wndScreenshot; + if(imgSavestate != 0) + delete imgSavestate; + imgSavestate = 0; + if(icoSavestate != 0) + delete icoSavestate; + icoSavestate = 0; + delete wndScreenshot; - delete cmdLoadState; - delete cmdSaveState; - delete lblWarningHDDon; - - delete savestateActionListener; + delete cmdLoadState; + delete cmdSaveState; + delete lblWarningHDDon; + + delete savestateActionListener; } void RefreshPanelSavestate(void) { - if(icoSavestate != 0) - { - wndScreenshot->remove(icoSavestate); - delete icoSavestate; - icoSavestate = 0; - } - if(imgSavestate != 0) - { - delete imgSavestate; - imgSavestate = 0; - } - - switch(currentStateNum) - { - case 0: - optState0->setSelected(true); - break; - case 1: - optState1->setSelected(true); - break; - case 2: - optState2->setSelected(true); - break; - case 3: - optState3->setSelected(true); - break; - } - - gui_update(); - if(strlen(screenshot_filename) > 0) - { - FILE *f=fopen(screenshot_filename,"rb"); - if (f) - { - fclose(f); - gcn::Rectangle rect = wndScreenshot->getChildrenArea(); - SDL_Surface *loadedImage = IMG_Load(screenshot_filename); - if(loadedImage != NULL) - { - SDL_Rect source = {0, 0, 0, 0 }; - SDL_Rect target = {0, 0, 0, 0 }; - SDL_Surface *scaled = SDL_CreateRGBSurface(loadedImage->flags, rect.width, rect.height, loadedImage->format->BitsPerPixel, loadedImage->format->Rmask, loadedImage->format->Gmask, loadedImage->format->Bmask, loadedImage->format->Amask); - source.w = loadedImage->w; - source.h = loadedImage->h; - target.w = rect.width; - target.h = rect.height; - SDL_SoftStretch(loadedImage, &source, scaled, &target); - SDL_FreeSurface(loadedImage); - imgSavestate = new gcn::SDLImage(scaled, true); - icoSavestate = new gcn::Icon(imgSavestate); - wndScreenshot->add(icoSavestate); - } - } - } - - bool enabled = 1; // nr_units () == 0; - optState0->setEnabled(enabled); - optState1->setEnabled(enabled); - optState2->setEnabled(enabled); - optState3->setEnabled(enabled); - wndScreenshot->setVisible(enabled); - cmdLoadState->setEnabled(enabled); - cmdSaveState->setEnabled(enabled); - lblWarningHDDon->setVisible(!enabled); + if(icoSavestate != 0) + { + wndScreenshot->remove(icoSavestate); + delete icoSavestate; + icoSavestate = 0; + } + if(imgSavestate != 0) + { + delete imgSavestate; + imgSavestate = 0; + } + + switch(currentStateNum) + { + case 0: + optState0->setSelected(true); + break; + case 1: + optState1->setSelected(true); + break; + case 2: + optState2->setSelected(true); + break; + case 3: + optState3->setSelected(true); + break; + } + + gui_update(); + if(strlen(screenshot_filename) > 0) + { + FILE *f=fopen(screenshot_filename,"rb"); + if (f) + { + fclose(f); + gcn::Rectangle rect = wndScreenshot->getChildrenArea(); + SDL_Surface *loadedImage = IMG_Load(screenshot_filename); + if(loadedImage != NULL) + { + SDL_Rect source = {0, 0, 0, 0 }; + SDL_Rect target = {0, 0, 0, 0 }; + SDL_Surface *scaled = SDL_CreateRGBSurface(loadedImage->flags, rect.width, rect.height, loadedImage->format->BitsPerPixel, loadedImage->format->Rmask, loadedImage->format->Gmask, loadedImage->format->Bmask, loadedImage->format->Amask); + source.w = loadedImage->w; + source.h = loadedImage->h; + target.w = rect.width; + target.h = rect.height; + SDL_SoftStretch(loadedImage, &source, scaled, &target); + SDL_FreeSurface(loadedImage); + imgSavestate = new gcn::SDLImage(scaled, true); + icoSavestate = new gcn::Icon(imgSavestate); + wndScreenshot->add(icoSavestate); + } + } + } + + bool enabled = 1; // nr_units () == 0; + optState0->setEnabled(enabled); + optState1->setEnabled(enabled); + optState2->setEnabled(enabled); + optState3->setEnabled(enabled); + wndScreenshot->setVisible(enabled); + cmdLoadState->setEnabled(enabled); + cmdSaveState->setEnabled(enabled); + lblWarningHDDon->setVisible(!enabled); } diff --git a/src/od-pandora/gui/PanelSound.cpp b/src/od-pandora/gui/PanelSound.cpp index eb73e273..7beb8b0d 100644 --- a/src/od-pandora/gui/PanelSound.cpp +++ b/src/od-pandora/gui/PanelSound.cpp @@ -13,7 +13,7 @@ #include "options.h" #include "uae.h" #include "gui.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "gui_handling.h" @@ -47,28 +47,28 @@ static int curr_stereodelay_idx; class FrequencyListModel : public gcn::ListModel { - private: +private: std::vector freq; - - public: + +public: FrequencyListModel() { - freq.push_back("11025"); - freq.push_back("22050"); - freq.push_back("32000"); - freq.push_back("44100"); + freq.push_back("11025"); + freq.push_back("22050"); + freq.push_back("32000"); + freq.push_back("44100"); } int getNumberOfElements() { - return freq.size(); + return freq.size(); } std::string getElementAt(int i) { - if(i < 0 || i >= freq.size()) - return "---"; - return freq[i]; + if(i < 0 || i >= freq.size()) + return "---"; + return freq[i]; } }; static FrequencyListModel frequencyTypeList; @@ -76,29 +76,29 @@ static FrequencyListModel frequencyTypeList; class InterpolationListModel : public gcn::ListModel { - private: +private: std::vector entry; - - public: + +public: InterpolationListModel() { - entry.push_back("Disabled"); - entry.push_back("Anti"); - entry.push_back("Sinc"); - entry.push_back("RH"); - entry.push_back("Crux"); + entry.push_back("Disabled"); + entry.push_back("Anti"); + entry.push_back("Sinc"); + entry.push_back("RH"); + entry.push_back("Crux"); } int getNumberOfElements() { - return entry.size(); + return entry.size(); } std::string getElementAt(int i) { - if(i < 0 || i >= entry.size()) - return "---"; - return entry[i]; + if(i < 0 || i >= entry.size()) + return "---"; + return entry[i]; } }; static InterpolationListModel interpolationTypeList; @@ -106,29 +106,29 @@ static InterpolationListModel interpolationTypeList; class FilterListModel : public gcn::ListModel { - private: +private: std::vector entry; - - public: + +public: FilterListModel() { - entry.push_back("Always off"); - entry.push_back("Emulated (A500)"); - entry.push_back("Emulated (A1200)"); - entry.push_back("Always on (A500)"); - entry.push_back("Always on (A1200)"); + entry.push_back("Always off"); + entry.push_back("Emulated (A500)"); + entry.push_back("Emulated (A1200)"); + entry.push_back("Always on (A500)"); + entry.push_back("Always on (A1200)"); } int getNumberOfElements() { - return entry.size(); + return entry.size(); } std::string getElementAt(int i) { - if(i < 0 || i >= entry.size()) - return "---"; - return entry[i]; + if(i < 0 || i >= entry.size()) + return "---"; + return entry[i]; } }; static FilterListModel filterTypeList; @@ -136,95 +136,95 @@ static FilterListModel filterTypeList; class SoundActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if (actionEvent.getSource() == optSoundDisabled) - changed_prefs.produce_sound = 0; - else if (actionEvent.getSource() == optSoundDisabledEmu) - changed_prefs.produce_sound = 1; - else if (actionEvent.getSource() == optSoundEmulated) - changed_prefs.produce_sound = 2; - else if (actionEvent.getSource() == optSoundEmulatedBest) - changed_prefs.produce_sound = 3; + if (actionEvent.getSource() == optSoundDisabled) + changed_prefs.produce_sound = 0; + else if (actionEvent.getSource() == optSoundDisabledEmu) + changed_prefs.produce_sound = 1; + else if (actionEvent.getSource() == optSoundEmulated) + changed_prefs.produce_sound = 2; + else if (actionEvent.getSource() == optSoundEmulatedBest) + changed_prefs.produce_sound = 3; - else if (actionEvent.getSource() == optMono) - changed_prefs.sound_stereo = 0; - else if (actionEvent.getSource() == optStereo) - changed_prefs.sound_stereo = 1; + else if (actionEvent.getSource() == optMono) + changed_prefs.sound_stereo = 0; + else if (actionEvent.getSource() == optStereo) + changed_prefs.sound_stereo = 1; - else if (actionEvent.getSource() == cboFrequency) - { - switch(cboFrequency->getSelected()) + else if (actionEvent.getSource() == cboFrequency) { - case 0: - changed_prefs.sound_freq = 11025; - break; - case 1: - changed_prefs.sound_freq = 22050; - break; - case 2: - changed_prefs.sound_freq = 32000; - break; - case 3: - changed_prefs.sound_freq = 44100; - break; + switch(cboFrequency->getSelected()) + { + case 0: + changed_prefs.sound_freq = 11025; + break; + case 1: + changed_prefs.sound_freq = 22050; + break; + case 2: + changed_prefs.sound_freq = 32000; + break; + case 3: + changed_prefs.sound_freq = 44100; + break; + } } - } - else if (actionEvent.getSource() == cboInterpolation) - changed_prefs.sound_interpol = cboInterpolation->getSelected(); + else if (actionEvent.getSource() == cboInterpolation) + changed_prefs.sound_interpol = cboInterpolation->getSelected(); - else if (actionEvent.getSource() == cboFilter) - { - switch (cboFilter->getSelected()) + else if (actionEvent.getSource() == cboFilter) { - case 0: - changed_prefs.sound_filter = FILTER_SOUND_OFF; - break; - case 1: - changed_prefs.sound_filter = FILTER_SOUND_EMUL; - changed_prefs.sound_filter_type = 0; - break; - case 2: - changed_prefs.sound_filter = FILTER_SOUND_EMUL; - changed_prefs.sound_filter_type = 1; - break; - case 3: - changed_prefs.sound_filter = FILTER_SOUND_ON; - changed_prefs.sound_filter_type = 0; - break; - case 4: - changed_prefs.sound_filter = FILTER_SOUND_ON; - changed_prefs.sound_filter_type = 1; - break; + switch (cboFilter->getSelected()) + { + case 0: + changed_prefs.sound_filter = FILTER_SOUND_OFF; + break; + case 1: + changed_prefs.sound_filter = FILTER_SOUND_EMUL; + changed_prefs.sound_filter_type = 0; + break; + case 2: + changed_prefs.sound_filter = FILTER_SOUND_EMUL; + changed_prefs.sound_filter_type = 1; + break; + case 3: + changed_prefs.sound_filter = FILTER_SOUND_ON; + changed_prefs.sound_filter_type = 0; + break; + case 4: + changed_prefs.sound_filter = FILTER_SOUND_ON; + changed_prefs.sound_filter_type = 1; + break; + } } - } - else if (actionEvent.getSource() == sldSeparation) - { - if(curr_separation_idx != (int)(sldSeparation->getValue()) - && changed_prefs.sound_stereo > 0) + else if (actionEvent.getSource() == sldSeparation) { - curr_separation_idx = (int)(sldSeparation->getValue()); - changed_prefs.sound_stereo_separation = 10 - curr_separation_idx; - } - } + if(curr_separation_idx != (int)(sldSeparation->getValue()) + && changed_prefs.sound_stereo > 0) + { + curr_separation_idx = (int)(sldSeparation->getValue()); + changed_prefs.sound_stereo_separation = 10 - curr_separation_idx; + } + } - else if (actionEvent.getSource() == sldStereoDelay) - { - if(curr_stereodelay_idx != (int)(sldStereoDelay->getValue()) - && changed_prefs.sound_stereo > 0) + else if (actionEvent.getSource() == sldStereoDelay) { - curr_stereodelay_idx = (int)(sldStereoDelay->getValue()); - if(curr_stereodelay_idx > 0) - changed_prefs.sound_mixed_stereo_delay = curr_stereodelay_idx; - else - changed_prefs.sound_mixed_stereo_delay = -1; - } - } + if(curr_stereodelay_idx != (int)(sldStereoDelay->getValue()) + && changed_prefs.sound_stereo > 0) + { + curr_stereodelay_idx = (int)(sldStereoDelay->getValue()); + if(curr_stereodelay_idx > 0) + changed_prefs.sound_mixed_stereo_delay = curr_stereodelay_idx; + else + changed_prefs.sound_mixed_stereo_delay = -1; + } + } - RefreshPanelSound(); + RefreshPanelSound(); } }; static SoundActionListener* soundActionListener; @@ -232,231 +232,231 @@ static SoundActionListener* soundActionListener; void InitPanelSound(const struct _ConfigCategory& category) { - soundActionListener = new SoundActionListener(); + soundActionListener = new SoundActionListener(); - optSoundDisabled = new gcn::UaeRadioButton("Disabled", "radiosoundgroup"); - optSoundDisabled->setId("sndDisable"); - optSoundDisabled->addActionListener(soundActionListener); + optSoundDisabled = new gcn::UaeRadioButton("Disabled", "radiosoundgroup"); + optSoundDisabled->setId("sndDisable"); + optSoundDisabled->addActionListener(soundActionListener); - optSoundDisabledEmu = new gcn::UaeRadioButton("Disabled, but emulated", "radiosoundgroup"); - optSoundDisabledEmu->setId("sndDisEmu"); - optSoundDisabledEmu->addActionListener(soundActionListener); - - optSoundEmulated = new gcn::UaeRadioButton("Enabled", "radiosoundgroup"); - optSoundEmulated->setId("sndEmulate"); - optSoundEmulated->addActionListener(soundActionListener); + optSoundDisabledEmu = new gcn::UaeRadioButton("Disabled, but emulated", "radiosoundgroup"); + optSoundDisabledEmu->setId("sndDisEmu"); + optSoundDisabledEmu->addActionListener(soundActionListener); - optSoundEmulatedBest = new gcn::UaeRadioButton("Enabled, most accurate", "radiosoundgroup"); - optSoundEmulatedBest->setId("sndEmuBest"); - optSoundEmulatedBest->addActionListener(soundActionListener); + optSoundEmulated = new gcn::UaeRadioButton("Enabled", "radiosoundgroup"); + optSoundEmulated->setId("sndEmulate"); + optSoundEmulated->addActionListener(soundActionListener); - grpSound = new gcn::Window("Sound Emulation"); - grpSound->add(optSoundDisabled, 5, 10); - grpSound->add(optSoundDisabledEmu, 5, 40); - grpSound->add(optSoundEmulated, 5, 70); - grpSound->add(optSoundEmulatedBest, 5, 100); - grpSound->setMovable(false); - grpSound->setSize(200, 150); - grpSound->setBaseColor(gui_baseCol); + optSoundEmulatedBest = new gcn::UaeRadioButton("Enabled, most accurate", "radiosoundgroup"); + optSoundEmulatedBest->setId("sndEmuBest"); + optSoundEmulatedBest->addActionListener(soundActionListener); - lblFrequency = new gcn::Label("Frequency:"); - lblFrequency->setSize(130, LABEL_HEIGHT); - lblFrequency->setAlignment(gcn::Graphics::RIGHT); - cboFrequency = new gcn::UaeDropDown(&frequencyTypeList); - cboFrequency->setSize(160, DROPDOWN_HEIGHT); - cboFrequency->setBaseColor(gui_baseCol); - cboFrequency->setId("cboFrequency"); - cboFrequency->addActionListener(soundActionListener); + grpSound = new gcn::Window("Sound Emulation"); + grpSound->add(optSoundDisabled, 5, 10); + grpSound->add(optSoundDisabledEmu, 5, 40); + grpSound->add(optSoundEmulated, 5, 70); + grpSound->add(optSoundEmulatedBest, 5, 100); + grpSound->setMovable(false); + grpSound->setSize(200, 150); + grpSound->setBaseColor(gui_baseCol); - optMono = new gcn::UaeRadioButton("Mono", "radiosoundmodegroup"); - optMono->addActionListener(soundActionListener); + lblFrequency = new gcn::Label("Frequency:"); + lblFrequency->setSize(130, LABEL_HEIGHT); + lblFrequency->setAlignment(gcn::Graphics::RIGHT); + cboFrequency = new gcn::UaeDropDown(&frequencyTypeList); + cboFrequency->setSize(160, DROPDOWN_HEIGHT); + cboFrequency->setBaseColor(gui_baseCol); + cboFrequency->setId("cboFrequency"); + cboFrequency->addActionListener(soundActionListener); - optStereo = new gcn::UaeRadioButton("Stereo", "radiosoundmodegroup"); - optStereo->addActionListener(soundActionListener); + optMono = new gcn::UaeRadioButton("Mono", "radiosoundmodegroup"); + optMono->addActionListener(soundActionListener); - grpMode = new gcn::Window("Mode"); - grpMode->add(optMono, 5, 10); - grpMode->add(optStereo, 5, 40); - grpMode->setMovable(false); - grpMode->setSize(90, 90); - grpMode->setBaseColor(gui_baseCol); + optStereo = new gcn::UaeRadioButton("Stereo", "radiosoundmodegroup"); + optStereo->addActionListener(soundActionListener); - lblInterpolation = new gcn::Label("Interpolation:"); - lblInterpolation->setSize(130, LABEL_HEIGHT); - lblInterpolation->setAlignment(gcn::Graphics::RIGHT); - cboInterpolation = new gcn::UaeDropDown(&interpolationTypeList); - cboInterpolation->setSize(160, DROPDOWN_HEIGHT); - cboInterpolation->setBaseColor(gui_baseCol); - cboInterpolation->setId("cboInterpol"); - cboInterpolation->addActionListener(soundActionListener); + grpMode = new gcn::Window("Mode"); + grpMode->add(optMono, 5, 10); + grpMode->add(optStereo, 5, 40); + grpMode->setMovable(false); + grpMode->setSize(90, 90); + grpMode->setBaseColor(gui_baseCol); - lblFilter = new gcn::Label("Filter:"); - lblFilter->setSize(130, LABEL_HEIGHT); - lblFilter->setAlignment(gcn::Graphics::RIGHT); - cboFilter = new gcn::UaeDropDown(&filterTypeList); - cboFilter->setSize(160, DROPDOWN_HEIGHT); - cboFilter->setBaseColor(gui_baseCol); - cboFilter->setId("cboFilter"); - cboFilter->addActionListener(soundActionListener); + lblInterpolation = new gcn::Label("Interpolation:"); + lblInterpolation->setSize(130, LABEL_HEIGHT); + lblInterpolation->setAlignment(gcn::Graphics::RIGHT); + cboInterpolation = new gcn::UaeDropDown(&interpolationTypeList); + cboInterpolation->setSize(160, DROPDOWN_HEIGHT); + cboInterpolation->setBaseColor(gui_baseCol); + cboInterpolation->setId("cboInterpol"); + cboInterpolation->addActionListener(soundActionListener); - lblSeparation = new gcn::Label("Stereo separation:"); - lblSeparation->setSize(130, LABEL_HEIGHT); - lblSeparation->setAlignment(gcn::Graphics::RIGHT); - sldSeparation = new gcn::Slider(0, 10); - sldSeparation->setSize(160, SLIDER_HEIGHT); - sldSeparation->setBaseColor(gui_baseCol); - sldSeparation->setMarkerLength(20); - sldSeparation->setStepLength(1); - sldSeparation->setId("sldSeparation"); - sldSeparation->addActionListener(soundActionListener); - lblSeparationInfo = new gcn::Label("100%"); + lblFilter = new gcn::Label("Filter:"); + lblFilter->setSize(130, LABEL_HEIGHT); + lblFilter->setAlignment(gcn::Graphics::RIGHT); + cboFilter = new gcn::UaeDropDown(&filterTypeList); + cboFilter->setSize(160, DROPDOWN_HEIGHT); + cboFilter->setBaseColor(gui_baseCol); + cboFilter->setId("cboFilter"); + cboFilter->addActionListener(soundActionListener); - lblStereoDelay = new gcn::Label("Stereo delay:"); - lblStereoDelay->setSize(130, LABEL_HEIGHT); - lblStereoDelay->setAlignment(gcn::Graphics::RIGHT); - sldStereoDelay = new gcn::Slider(0, 10); - sldStereoDelay->setSize(160, SLIDER_HEIGHT); - sldStereoDelay->setBaseColor(gui_baseCol); - sldStereoDelay->setMarkerLength(20); - sldStereoDelay->setStepLength(1); - sldStereoDelay->setId("sldStereoDelay"); - sldStereoDelay->addActionListener(soundActionListener); - lblStereoDelayInfo = new gcn::Label("10"); - - int posY = DISTANCE_BORDER; - category.panel->add(grpSound, DISTANCE_BORDER, posY); - category.panel->add(grpMode, grpSound->getX() + grpSound->getWidth() + DISTANCE_NEXT_X, posY); - posY += grpSound->getHeight() + DISTANCE_NEXT_Y; - category.panel->add(lblFrequency, DISTANCE_BORDER, posY); - category.panel->add(cboFrequency, lblFrequency->getX() + lblFrequency->getWidth() + 12, posY); - posY += cboFrequency->getHeight() + DISTANCE_NEXT_Y; - category.panel->add(lblInterpolation, DISTANCE_BORDER, posY); - category.panel->add(cboInterpolation, lblInterpolation->getX() + lblInterpolation->getWidth() + 12, posY); - posY += cboInterpolation->getHeight() + DISTANCE_NEXT_Y; - category.panel->add(lblFilter, DISTANCE_BORDER, posY); - category.panel->add(cboFilter, lblFilter->getX() + lblFilter->getWidth() + 12, posY); - posY += cboFilter->getHeight() + DISTANCE_NEXT_Y; - category.panel->add(lblSeparation, DISTANCE_BORDER, posY); - category.panel->add(sldSeparation, lblSeparation->getX() + lblSeparation->getWidth() + 12, posY); - category.panel->add(lblSeparationInfo, sldSeparation->getX() + sldSeparation->getWidth() + 12, posY); - posY += SLIDER_HEIGHT + DISTANCE_NEXT_Y; - category.panel->add(lblStereoDelay, DISTANCE_BORDER, posY); - category.panel->add(sldStereoDelay, lblStereoDelay->getX() + lblStereoDelay->getWidth() + 12, posY); - category.panel->add(lblStereoDelayInfo, sldStereoDelay->getX() + sldStereoDelay->getWidth() + 12, posY); - posY += SLIDER_HEIGHT + DISTANCE_NEXT_Y; - - RefreshPanelSound(); + lblSeparation = new gcn::Label("Stereo separation:"); + lblSeparation->setSize(130, LABEL_HEIGHT); + lblSeparation->setAlignment(gcn::Graphics::RIGHT); + sldSeparation = new gcn::Slider(0, 10); + sldSeparation->setSize(160, SLIDER_HEIGHT); + sldSeparation->setBaseColor(gui_baseCol); + sldSeparation->setMarkerLength(20); + sldSeparation->setStepLength(1); + sldSeparation->setId("sldSeparation"); + sldSeparation->addActionListener(soundActionListener); + lblSeparationInfo = new gcn::Label("100%"); + + lblStereoDelay = new gcn::Label("Stereo delay:"); + lblStereoDelay->setSize(130, LABEL_HEIGHT); + lblStereoDelay->setAlignment(gcn::Graphics::RIGHT); + sldStereoDelay = new gcn::Slider(0, 10); + sldStereoDelay->setSize(160, SLIDER_HEIGHT); + sldStereoDelay->setBaseColor(gui_baseCol); + sldStereoDelay->setMarkerLength(20); + sldStereoDelay->setStepLength(1); + sldStereoDelay->setId("sldStereoDelay"); + sldStereoDelay->addActionListener(soundActionListener); + lblStereoDelayInfo = new gcn::Label("10"); + + int posY = DISTANCE_BORDER; + category.panel->add(grpSound, DISTANCE_BORDER, posY); + category.panel->add(grpMode, grpSound->getX() + grpSound->getWidth() + DISTANCE_NEXT_X, posY); + posY += grpSound->getHeight() + DISTANCE_NEXT_Y; + category.panel->add(lblFrequency, DISTANCE_BORDER, posY); + category.panel->add(cboFrequency, lblFrequency->getX() + lblFrequency->getWidth() + 12, posY); + posY += cboFrequency->getHeight() + DISTANCE_NEXT_Y; + category.panel->add(lblInterpolation, DISTANCE_BORDER, posY); + category.panel->add(cboInterpolation, lblInterpolation->getX() + lblInterpolation->getWidth() + 12, posY); + posY += cboInterpolation->getHeight() + DISTANCE_NEXT_Y; + category.panel->add(lblFilter, DISTANCE_BORDER, posY); + category.panel->add(cboFilter, lblFilter->getX() + lblFilter->getWidth() + 12, posY); + posY += cboFilter->getHeight() + DISTANCE_NEXT_Y; + category.panel->add(lblSeparation, DISTANCE_BORDER, posY); + category.panel->add(sldSeparation, lblSeparation->getX() + lblSeparation->getWidth() + 12, posY); + category.panel->add(lblSeparationInfo, sldSeparation->getX() + sldSeparation->getWidth() + 12, posY); + posY += SLIDER_HEIGHT + DISTANCE_NEXT_Y; + category.panel->add(lblStereoDelay, DISTANCE_BORDER, posY); + category.panel->add(sldStereoDelay, lblStereoDelay->getX() + lblStereoDelay->getWidth() + 12, posY); + category.panel->add(lblStereoDelayInfo, sldStereoDelay->getX() + sldStereoDelay->getWidth() + 12, posY); + posY += SLIDER_HEIGHT + DISTANCE_NEXT_Y; + + RefreshPanelSound(); } void ExitPanelSound(void) { - delete optSoundDisabled; - delete optSoundDisabledEmu; - delete optSoundEmulated; - delete optSoundEmulatedBest; - delete grpSound; - delete optMono; - delete optStereo; - delete grpMode; - delete lblFrequency; - delete cboFrequency; - delete lblInterpolation; - delete cboInterpolation; - delete lblFilter; - delete cboFilter; - delete lblSeparation; - delete sldSeparation; - delete lblSeparationInfo; - delete lblStereoDelay; - delete sldStereoDelay; - delete lblStereoDelayInfo; - delete soundActionListener; + delete optSoundDisabled; + delete optSoundDisabledEmu; + delete optSoundEmulated; + delete optSoundEmulatedBest; + delete grpSound; + delete optMono; + delete optStereo; + delete grpMode; + delete lblFrequency; + delete cboFrequency; + delete lblInterpolation; + delete cboInterpolation; + delete lblFilter; + delete cboFilter; + delete lblSeparation; + delete sldSeparation; + delete lblSeparationInfo; + delete lblStereoDelay; + delete sldStereoDelay; + delete lblStereoDelayInfo; + delete soundActionListener; } void RefreshPanelSound(void) { - char tmp[10]; - int i; + char tmp[10]; + int i; - switch(changed_prefs.produce_sound) - { + switch(changed_prefs.produce_sound) + { case 0: - optSoundDisabled->setSelected(true); - break; + optSoundDisabled->setSelected(true); + break; case 1: - optSoundDisabledEmu->setSelected(true); - break; + optSoundDisabledEmu->setSelected(true); + break; case 2: - optSoundEmulated->setSelected(true); - break; + optSoundEmulated->setSelected(true); + break; case 3: - optSoundEmulatedBest->setSelected(true); - break; - } + optSoundEmulatedBest->setSelected(true); + break; + } - if (changed_prefs.sound_stereo == 0) - optMono->setSelected(true); - else if (changed_prefs.sound_stereo == 1) - optStereo->setSelected(true); + if (changed_prefs.sound_stereo == 0) + optMono->setSelected(true); + else if (changed_prefs.sound_stereo == 1) + optStereo->setSelected(true); - switch(changed_prefs.sound_freq) - { + switch(changed_prefs.sound_freq) + { case 11025: - cboFrequency->setSelected(0); - break; + cboFrequency->setSelected(0); + break; case 22050: - cboFrequency->setSelected(1); - break; + cboFrequency->setSelected(1); + break; case 32000: - cboFrequency->setSelected(2); - break; + cboFrequency->setSelected(2); + break; default: - cboFrequency->setSelected(3); - break; - } + cboFrequency->setSelected(3); + break; + } - cboInterpolation->setSelected(changed_prefs.sound_interpol); + cboInterpolation->setSelected(changed_prefs.sound_interpol); - i = 0; - switch (changed_prefs.sound_filter) - { + i = 0; + switch (changed_prefs.sound_filter) + { case 0: - i = 0; - break; + i = 0; + break; case 1: - i = changed_prefs.sound_filter_type ? 2 : 1; - break; + i = changed_prefs.sound_filter_type ? 2 : 1; + break; case 2: - i = changed_prefs.sound_filter_type ? 4 : 3; - break; - } - cboFilter->setSelected(i); - - if(changed_prefs.sound_stereo == 0) - { - curr_separation_idx = 0; - curr_stereodelay_idx = 0; - } - else - { - curr_separation_idx = 10 - changed_prefs.sound_stereo_separation; - curr_stereodelay_idx = changed_prefs.sound_mixed_stereo_delay > 0 ? changed_prefs.sound_mixed_stereo_delay : 0; - } + i = changed_prefs.sound_filter_type ? 4 : 3; + break; + } + cboFilter->setSelected(i); - sldSeparation->setValue(curr_separation_idx); - sldSeparation->setEnabled(changed_prefs.sound_stereo >= 1); - snprintf(tmp, 10, "%d%%", 100 - 10 * curr_separation_idx); - lblSeparationInfo->setCaption(tmp); + if(changed_prefs.sound_stereo == 0) + { + curr_separation_idx = 0; + curr_stereodelay_idx = 0; + } + else + { + curr_separation_idx = 10 - changed_prefs.sound_stereo_separation; + curr_stereodelay_idx = changed_prefs.sound_mixed_stereo_delay > 0 ? changed_prefs.sound_mixed_stereo_delay : 0; + } - sldStereoDelay->setValue(curr_stereodelay_idx); - sldStereoDelay->setEnabled(changed_prefs.sound_stereo >= 1); - if(curr_stereodelay_idx <= 0) - lblStereoDelayInfo->setCaption("-"); - else - { - snprintf(tmp, 10, "%d", curr_stereodelay_idx); - lblStereoDelayInfo->setCaption(tmp); - } + sldSeparation->setValue(curr_separation_idx); + sldSeparation->setEnabled(changed_prefs.sound_stereo >= 1); + snprintf(tmp, 10, "%d%%", 100 - 10 * curr_separation_idx); + lblSeparationInfo->setCaption(tmp); + + sldStereoDelay->setValue(curr_stereodelay_idx); + sldStereoDelay->setEnabled(changed_prefs.sound_stereo >= 1); + if(curr_stereodelay_idx <= 0) + lblStereoDelayInfo->setCaption("-"); + else + { + snprintf(tmp, 10, "%d", curr_stereodelay_idx); + lblStereoDelayInfo->setCaption(tmp); + } } diff --git a/src/od-pandora/gui/SelectorEntry.cpp b/src/od-pandora/gui/SelectorEntry.cpp index 47d01d6d..3615a354 100644 --- a/src/od-pandora/gui/SelectorEntry.cpp +++ b/src/od-pandora/gui/SelectorEntry.cpp @@ -7,88 +7,88 @@ namespace gcn { - SelectorEntry::SelectorEntry(const std::string& caption, const std::string& imagepath) - { +SelectorEntry::SelectorEntry(const std::string& caption, const std::string& imagepath) +{ addWidgetListener(this); - + active = false; - + container = new gcn::Container(); container->setOpaque(true); - + label = new gcn::Label(caption); label->setHeight(16); - + gcn::Image *img = gcn::Image::load(imagepath); icon = new gcn::Icon(img); icon->setSize(16, 16); - + container->add(icon, 4, 4); container->add(label, 24, 4); - + setFocusable(true); setId(caption); - } - - - SelectorEntry::~SelectorEntry() - { +} + + +SelectorEntry::~SelectorEntry() +{ removeWidgetListener(this); delete container; delete label; delete icon; - } - - - void SelectorEntry::draw(Graphics* graphics) - { +} + + +void SelectorEntry::draw(Graphics* graphics) +{ container->draw(graphics); if(isFocused()) - graphics->drawRectangle(Rectangle(2, 2, getWidth() - 4, getHeight() - 4)); - } - - - void SelectorEntry::setInactiveColor(const Color& color) - { + graphics->drawRectangle(Rectangle(2, 2, getWidth() - 4, getHeight() - 4)); +} + + +void SelectorEntry::setInactiveColor(const Color& color) +{ inactiveColor = color; if(!active) - container->setBaseColor(color); - } - - - void SelectorEntry::setActiveColor(const Color& color) - { + container->setBaseColor(color); +} + + +void SelectorEntry::setActiveColor(const Color& color) +{ activeColor = color; if(active) - container->setBaseColor(color); - } - - - void SelectorEntry::setActive(bool active) - { + container->setBaseColor(color); +} + + +void SelectorEntry::setActive(bool active) +{ this->active = active; if(active) - container->setBaseColor(activeColor); + container->setBaseColor(activeColor); else - container->setBaseColor(inactiveColor); - } - - - bool SelectorEntry::getActive(void) - { - return active; - } - - - void SelectorEntry::widgetResized(const Event& event) - { - if(container->getWidth() != getWidth()) - container->setWidth(getWidth()); - if(container->getHeight() != getHeight()) - container->setHeight(getHeight()); - - if(label->getWidth() != getWidth() - label->getX() - 4) - label->setWidth(getWidth() - label->getX() - 4); - } + container->setBaseColor(inactiveColor); +} + + +bool SelectorEntry::getActive(void) +{ + return active; +} + + +void SelectorEntry::widgetResized(const Event& event) +{ + if(container->getWidth() != getWidth()) + container->setWidth(getWidth()); + if(container->getHeight() != getHeight()) + container->setHeight(getHeight()); + + if(label->getWidth() != getWidth() - label->getX() - 4) + label->setWidth(getWidth() - label->getX() - 4); +} } diff --git a/src/od-pandora/gui/SelectorEntry.hpp b/src/od-pandora/gui/SelectorEntry.hpp index 6fe743e2..60207f03 100644 --- a/src/od-pandora/gui/SelectorEntry.hpp +++ b/src/od-pandora/gui/SelectorEntry.hpp @@ -11,41 +11,41 @@ namespace gcn { - class Container; - class Icon; - class Label; - class Color; - class WidgetListener; - - - class GCN_CORE_DECLSPEC SelectorEntry : +class Container; +class Icon; +class Label; +class Color; +class WidgetListener; + + +class GCN_CORE_DECLSPEC SelectorEntry : public Widget, public WidgetListener - { - public: - SelectorEntry(const std::string& caption, const std::string& imagepath); - - virtual ~SelectorEntry(); - - virtual void draw(Graphics* graphics); - - void setInactiveColor(const Color& color); - void setActiveColor(const Color& color); - void setActive(bool active); - bool getActive(void); - - virtual void widgetResized(const Event& event); - - protected: - Container *container; - Icon *icon; - Label *label; +{ +public: + SelectorEntry(const std::string& caption, const std::string& imagepath); - Color inactiveColor; - Color activeColor; - - bool active; - }; + virtual ~SelectorEntry(); + + virtual void draw(Graphics* graphics); + + void setInactiveColor(const Color& color); + void setActiveColor(const Color& color); + void setActive(bool active); + bool getActive(void); + + virtual void widgetResized(const Event& event); + +protected: + Container *container; + Icon *icon; + Label *label; + + Color inactiveColor; + Color activeColor; + + bool active; +}; } #endif // end GCN_SELECTORENTRY_HPP diff --git a/src/od-pandora/gui/ShowMessage.cpp b/src/od-pandora/gui/ShowMessage.cpp index b9f1b7ff..18620c0b 100644 --- a/src/od-pandora/gui/ShowMessage.cpp +++ b/src/od-pandora/gui/ShowMessage.cpp @@ -29,12 +29,12 @@ static gcn::Label* lblText2; class ShowMessageActionListener : public gcn::ActionListener { - public: +public: void action(const gcn::ActionEvent& actionEvent) { - if (actionEvent.getSource() == cmdOK) - dialogResult = true; - dialogFinished = true; + if (actionEvent.getSource() == cmdOK) + dialogResult = true; + dialogFinished = true; } }; static ShowMessageActionListener* showMessageActionListener; @@ -42,132 +42,132 @@ static ShowMessageActionListener* showMessageActionListener; static void InitShowMessage(void) { - wndShowMessage = new gcn::Window("Message"); - wndShowMessage->setSize(DIALOG_WIDTH, DIALOG_HEIGHT); - wndShowMessage->setPosition((GUI_WIDTH - DIALOG_WIDTH) / 2, (GUI_HEIGHT - DIALOG_HEIGHT) / 2); - wndShowMessage->setBaseColor(gui_baseCol + 0x202020); - wndShowMessage->setTitleBarHeight(TITLEBAR_HEIGHT); + wndShowMessage = new gcn::Window("Message"); + wndShowMessage->setSize(DIALOG_WIDTH, DIALOG_HEIGHT); + wndShowMessage->setPosition((GUI_WIDTH - DIALOG_WIDTH) / 2, (GUI_HEIGHT - DIALOG_HEIGHT) / 2); + wndShowMessage->setBaseColor(gui_baseCol + 0x202020); + wndShowMessage->setTitleBarHeight(TITLEBAR_HEIGHT); - showMessageActionListener = new ShowMessageActionListener(); + showMessageActionListener = new ShowMessageActionListener(); - lblText1 = new gcn::Label(""); - lblText1->setSize(DIALOG_WIDTH - 2 * DISTANCE_BORDER, LABEL_HEIGHT); - lblText2 = new gcn::Label(""); - lblText2->setSize(DIALOG_WIDTH - 2 * DISTANCE_BORDER, LABEL_HEIGHT); + lblText1 = new gcn::Label(""); + lblText1->setSize(DIALOG_WIDTH - 2 * DISTANCE_BORDER, LABEL_HEIGHT); + lblText2 = new gcn::Label(""); + lblText2->setSize(DIALOG_WIDTH - 2 * DISTANCE_BORDER, LABEL_HEIGHT); - cmdOK = new gcn::Button("Ok"); - cmdOK->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); - cmdOK->setPosition(DIALOG_WIDTH - DISTANCE_BORDER - 2 * BUTTON_WIDTH - DISTANCE_NEXT_X, DIALOG_HEIGHT - 2 * DISTANCE_BORDER - BUTTON_HEIGHT - 10); - cmdOK->setBaseColor(gui_baseCol + 0x202020); - cmdOK->addActionListener(showMessageActionListener); - - cmdCancel = new gcn::Button("Cancel"); - cmdCancel->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); - cmdCancel->setPosition(DIALOG_WIDTH - DISTANCE_BORDER - BUTTON_WIDTH, DIALOG_HEIGHT - 2 * DISTANCE_BORDER - BUTTON_HEIGHT - 10); - cmdCancel->setBaseColor(gui_baseCol + 0x202020); - cmdCancel->addActionListener(showMessageActionListener); + cmdOK = new gcn::Button("Ok"); + cmdOK->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); + cmdOK->setPosition(DIALOG_WIDTH - DISTANCE_BORDER - 2 * BUTTON_WIDTH - DISTANCE_NEXT_X, DIALOG_HEIGHT - 2 * DISTANCE_BORDER - BUTTON_HEIGHT - 10); + cmdOK->setBaseColor(gui_baseCol + 0x202020); + cmdOK->addActionListener(showMessageActionListener); - wndShowMessage->add(lblText1, DISTANCE_BORDER, DISTANCE_BORDER); - wndShowMessage->add(lblText2, DISTANCE_BORDER, DISTANCE_BORDER + lblText1->getHeight() + 4); - wndShowMessage->add(cmdOK); - wndShowMessage->add(cmdCancel); + cmdCancel = new gcn::Button("Cancel"); + cmdCancel->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); + cmdCancel->setPosition(DIALOG_WIDTH - DISTANCE_BORDER - BUTTON_WIDTH, DIALOG_HEIGHT - 2 * DISTANCE_BORDER - BUTTON_HEIGHT - 10); + cmdCancel->setBaseColor(gui_baseCol + 0x202020); + cmdCancel->addActionListener(showMessageActionListener); - gui_top->add(wndShowMessage); - - cmdOK->requestFocus(); - wndShowMessage->requestModalFocus(); + wndShowMessage->add(lblText1, DISTANCE_BORDER, DISTANCE_BORDER); + wndShowMessage->add(lblText2, DISTANCE_BORDER, DISTANCE_BORDER + lblText1->getHeight() + 4); + wndShowMessage->add(cmdOK); + wndShowMessage->add(cmdCancel); + + gui_top->add(wndShowMessage); + + cmdOK->requestFocus(); + wndShowMessage->requestModalFocus(); } static void ExitShowMessage(void) { - wndShowMessage->releaseModalFocus(); - gui_top->remove(wndShowMessage); + wndShowMessage->releaseModalFocus(); + gui_top->remove(wndShowMessage); - delete lblText1; - delete lblText2; - delete cmdOK; - delete cmdCancel; - - delete showMessageActionListener; + delete lblText1; + delete lblText2; + delete cmdOK; + delete cmdCancel; - delete wndShowMessage; + delete showMessageActionListener; + + delete wndShowMessage; } static void ShowMessageLoop(void) { - while(!dialogFinished) - { - SDL_Event event; - while(SDL_PollEvent(&event)) + while(!dialogFinished) { - if (event.type == SDL_KEYDOWN) - { - switch(event.key.keysym.sym) + SDL_Event event; + while(SDL_PollEvent(&event)) { - case SDLK_ESCAPE: - dialogFinished = true; - break; - - case SDLK_LEFT: - case SDLK_RIGHT: + if (event.type == SDL_KEYDOWN) { - gcn::FocusHandler* focusHdl = gui_top->_getFocusHandler(); - gcn::Widget* activeWidget = focusHdl->getFocused(); - if(activeWidget == cmdCancel) - cmdOK->requestFocus(); - else if(activeWidget == cmdOK) - cmdCancel->requestFocus(); - continue; + switch(event.key.keysym.sym) + { + case SDLK_ESCAPE: + dialogFinished = true; + break; + + case SDLK_LEFT: + case SDLK_RIGHT: + { + gcn::FocusHandler* focusHdl = gui_top->_getFocusHandler(); + gcn::Widget* activeWidget = focusHdl->getFocused(); + if(activeWidget == cmdCancel) + cmdOK->requestFocus(); + else if(activeWidget == cmdOK) + cmdCancel->requestFocus(); + continue; + } + break; + + case SDLK_PAGEDOWN: + case SDLK_HOME: + event.key.keysym.sym = SDLK_RETURN; + gui_input->pushInput(event); // Fire key down + event.type = SDL_KEYUP; // and the key up + break; + } } - break; - case SDLK_PAGEDOWN: - case SDLK_HOME: - event.key.keysym.sym = SDLK_RETURN; - gui_input->pushInput(event); // Fire key down - event.type = SDL_KEYUP; // and the key up - break; + //------------------------------------------------- + // Send event to guichan-controls + //------------------------------------------------- + gui_input->pushInput(event); } - } - //------------------------------------------------- - // Send event to guichan-controls - //------------------------------------------------- - gui_input->pushInput(event); + // Now we let the Gui object perform its logic. + uae_gui->logic(); + // Now we let the Gui object draw itself. + uae_gui->draw(); + // Finally we update the screen. + wait_for_vsync(); + SDL_Flip(gui_screen); } - - // Now we let the Gui object perform its logic. - uae_gui->logic(); - // Now we let the Gui object draw itself. - uae_gui->draw(); - // Finally we update the screen. - wait_for_vsync(); - SDL_Flip(gui_screen); - } } bool ShowMessage(const char *title, const char *line1, const char *line2, const char *button1, const char *button2) { - dialogResult = false; - dialogFinished = false; - - InitShowMessage(); - - wndShowMessage->setCaption(title); - lblText1->setCaption(line1); - lblText2->setCaption(line2); - cmdOK->setCaption(button1); - cmdCancel->setCaption(button2); - if(strlen(button2) == 0) - { - cmdCancel->setVisible(false); - cmdOK->setPosition(cmdCancel->getX(), cmdCancel->getY()); - } - ShowMessageLoop(); - ExitShowMessage(); - - return dialogResult; + dialogResult = false; + dialogFinished = false; + + InitShowMessage(); + + wndShowMessage->setCaption(title); + lblText1->setCaption(line1); + lblText2->setCaption(line2); + cmdOK->setCaption(button1); + cmdCancel->setCaption(button2); + if(strlen(button2) == 0) + { + cmdCancel->setVisible(false); + cmdOK->setPosition(cmdCancel->getX(), cmdCancel->getY()); + } + ShowMessageLoop(); + ExitShowMessage(); + + return dialogResult; } diff --git a/src/od-pandora/gui/UaeCheckBox.cpp b/src/od-pandora/gui/UaeCheckBox.cpp index 9d9e7712..572b997d 100644 --- a/src/od-pandora/gui/UaeCheckBox.cpp +++ b/src/od-pandora/gui/UaeCheckBox.cpp @@ -10,78 +10,78 @@ namespace gcn { - UaeCheckBox::UaeCheckBox() - : CheckBox() +UaeCheckBox::UaeCheckBox() + : CheckBox() +{ +} + +UaeCheckBox::UaeCheckBox(const std::string &caption, + bool selected) + : CheckBox(caption, selected) +{ + setId(caption); +} + +UaeCheckBox::~UaeCheckBox() +{ +} + +void UaeCheckBox::draw(Graphics* graphics) +{ + drawBox(graphics); + + graphics->setFont(getFont()); + graphics->setColor(getForegroundColor()); + + const int h = getHeight() + getHeight() / 2; + + graphics->drawText(getCaption(), h - 2, 0); + + if (isFocused()) { + graphics->setColor(Color(0x000000)); + graphics->drawRectangle(Rectangle(0, + 0, + getWidth(), + getHeight())); } +} - UaeCheckBox::UaeCheckBox(const std::string &caption, - bool selected) - : CheckBox(caption, selected) +void UaeCheckBox::drawBox(Graphics *graphics) +{ + const int h = getHeight() - 2; + const int alpha = getBaseColor().a; + Color faceColor = getBaseColor(); + faceColor.a = alpha; + Color highlightColor = faceColor + 0x303030; + highlightColor.a = alpha; + Color shadowColor = faceColor - 0x303030; + shadowColor.a = alpha; + + graphics->setColor(shadowColor); + graphics->drawLine(1, 1, h, 1); + graphics->drawLine(1, 1, 1, h); + + graphics->setColor(highlightColor); + graphics->drawLine(h, 1, h, h); + graphics->drawLine(1, h, h - 1, h); + + Color backCol = getBackgroundColor(); + if(!isEnabled()) + backCol = backCol - 0x303030; + graphics->setColor(backCol); + graphics->fillRectangle(Rectangle(2, 2, h - 2, h - 2)); + + graphics->setColor(getForegroundColor()); + + if (mSelected) { - setId(caption); - } - - UaeCheckBox::~UaeCheckBox() - { - } - - void UaeCheckBox::draw(Graphics* graphics) - { - drawBox(graphics); - - graphics->setFont(getFont()); - graphics->setColor(getForegroundColor()); - - const int h = getHeight() + getHeight() / 2; - - graphics->drawText(getCaption(), h - 2, 0); - - if (isFocused()) - { - graphics->setColor(Color(0x000000)); - graphics->drawRectangle(Rectangle(0, - 0, - getWidth(), - getHeight())); - } - } - - void UaeCheckBox::drawBox(Graphics *graphics) - { - const int h = getHeight() - 2; - const int alpha = getBaseColor().a; - Color faceColor = getBaseColor(); - faceColor.a = alpha; - Color highlightColor = faceColor + 0x303030; - highlightColor.a = alpha; - Color shadowColor = faceColor - 0x303030; - shadowColor.a = alpha; - - graphics->setColor(shadowColor); - graphics->drawLine(1, 1, h, 1); - graphics->drawLine(1, 1, 1, h); - - graphics->setColor(highlightColor); - graphics->drawLine(h, 1, h, h); - graphics->drawLine(1, h, h - 1, h); - - Color backCol = getBackgroundColor(); - if(!isEnabled()) - backCol = backCol - 0x303030; - graphics->setColor(backCol); - graphics->fillRectangle(Rectangle(2, 2, h - 2, h - 2)); - - graphics->setColor(getForegroundColor()); - - if (mSelected) - { - graphics->drawLine(3, 9, 6, h - 2); - graphics->drawLine(4, 9, 7, h - 2); - - graphics->drawLine(6, h - 2, h - 3, 4); - graphics->drawLine(7, h - 2, h - 2, 4); - } + graphics->drawLine(3, 9, 6, h - 2); + graphics->drawLine(4, 9, 7, h - 2); + + graphics->drawLine(6, h - 2, h - 3, 4); + graphics->drawLine(7, h - 2, h - 2, 4); } +} } diff --git a/src/od-pandora/gui/UaeCheckBox.hpp b/src/od-pandora/gui/UaeCheckBox.hpp index 9c6ef0fe..d8ad9275 100644 --- a/src/od-pandora/gui/UaeCheckBox.hpp +++ b/src/od-pandora/gui/UaeCheckBox.hpp @@ -13,22 +13,22 @@ namespace gcn { - class GCN_CORE_DECLSPEC UaeCheckBox : public CheckBox - { - public: - UaeCheckBox(); +class GCN_CORE_DECLSPEC UaeCheckBox : public CheckBox +{ +public: + UaeCheckBox(); - UaeCheckBox(const std::string &caption, - bool selected = false); + UaeCheckBox(const std::string &caption, + bool selected = false); - virtual ~UaeCheckBox(); + virtual ~UaeCheckBox(); - virtual void draw(Graphics* graphics); + virtual void draw(Graphics* graphics); - protected: - virtual void drawBox(Graphics *graphics); +protected: + virtual void drawBox(Graphics *graphics); - }; +}; } diff --git a/src/od-pandora/gui/UaeDropDown.cpp b/src/od-pandora/gui/UaeDropDown.cpp index 93a0ed06..0bdc947f 100644 --- a/src/od-pandora/gui/UaeDropDown.cpp +++ b/src/od-pandora/gui/UaeDropDown.cpp @@ -9,69 +9,69 @@ namespace gcn { - UaeDropDown::UaeDropDown(ListModel *listModel, - ScrollArea *scrollArea, - ListBox *listBox) - : DropDown(listModel, scrollArea, listBox) - { - mScrollArea->setScrollbarWidth(20); - } +UaeDropDown::UaeDropDown(ListModel *listModel, + ScrollArea *scrollArea, + ListBox *listBox) + : DropDown(listModel, scrollArea, listBox) +{ + mScrollArea->setScrollbarWidth(20); +} - UaeDropDown::~UaeDropDown() - { - } - - - void UaeDropDown::keyPressed(KeyEvent& keyEvent) - { - if (keyEvent.isConsumed()) - return; - - Key key = keyEvent.getKey(); +UaeDropDown::~UaeDropDown() +{ +} - if ((key.getValue() == Key::ENTER || key.getValue() == Key::SPACE) + +void UaeDropDown::keyPressed(KeyEvent& keyEvent) +{ + if (keyEvent.isConsumed()) + return; + + Key key = keyEvent.getKey(); + + if ((key.getValue() == Key::ENTER || key.getValue() == Key::SPACE) && !mDroppedDown) - { - dropDown(); - keyEvent.consume(); - } - else if (key.getValue() == Key::UP) - { - setSelected(getSelected() - 1); - keyEvent.consume(); - distributeActionEvent(); - } - else if (key.getValue() == Key::DOWN) - { - setSelected(getSelected() + 1); - keyEvent.consume(); - distributeActionEvent(); - } - } - - void UaeDropDown::clearSelected(void) { - mListBox->setSelected(-1); + dropDown(); + keyEvent.consume(); } - - bool UaeDropDown::isDroppedDown(void) + else if (key.getValue() == Key::UP) { - return mDroppedDown; + setSelected(getSelected() - 1); + keyEvent.consume(); + distributeActionEvent(); } - - void UaeDropDown::setEnabled(bool enabled) + else if (key.getValue() == Key::DOWN) { - if(mEnabled != enabled) - { - mEnabled = enabled; - if(mEnabled) - mBackgroundColor = mBackgroundColorBackup; - else - { - mBackgroundColorBackup = mBackgroundColor; - mBackgroundColor = mBackgroundColor - 0x303030; - } - } + setSelected(getSelected() + 1); + keyEvent.consume(); + distributeActionEvent(); } } + +void UaeDropDown::clearSelected(void) +{ + mListBox->setSelected(-1); +} + +bool UaeDropDown::isDroppedDown(void) +{ + return mDroppedDown; +} + +void UaeDropDown::setEnabled(bool enabled) +{ + if(mEnabled != enabled) + { + mEnabled = enabled; + if(mEnabled) + mBackgroundColor = mBackgroundColorBackup; + else + { + mBackgroundColorBackup = mBackgroundColor; + mBackgroundColor = mBackgroundColor - 0x303030; + } + } +} +} diff --git a/src/od-pandora/gui/UaeDropDown.hpp b/src/od-pandora/gui/UaeDropDown.hpp index f674c711..93f632eb 100644 --- a/src/od-pandora/gui/UaeDropDown.hpp +++ b/src/od-pandora/gui/UaeDropDown.hpp @@ -13,27 +13,27 @@ namespace gcn { - class GCN_CORE_DECLSPEC UaeDropDown : public DropDown - { - public: - UaeDropDown(ListModel *listModel = NULL, - ScrollArea *scrollArea = NULL, - ListBox *listBox = NULL); +class GCN_CORE_DECLSPEC UaeDropDown : public DropDown +{ +public: + UaeDropDown(ListModel *listModel = NULL, + ScrollArea *scrollArea = NULL, + ListBox *listBox = NULL); - virtual ~UaeDropDown(); - - virtual void keyPressed(KeyEvent& keyEvent); + virtual ~UaeDropDown(); - virtual void setEnabled(bool enabled); - - void clearSelected(void); + virtual void keyPressed(KeyEvent& keyEvent); - bool isDroppedDown(void); - - protected: - Color mBackgroundColorBackup; - - }; + virtual void setEnabled(bool enabled); + + void clearSelected(void); + + bool isDroppedDown(void); + +protected: + Color mBackgroundColorBackup; + +}; } diff --git a/src/od-pandora/gui/UaeListBox.cpp b/src/od-pandora/gui/UaeListBox.cpp index b4f6000f..dee69848 100644 --- a/src/od-pandora/gui/UaeListBox.cpp +++ b/src/od-pandora/gui/UaeListBox.cpp @@ -13,93 +13,93 @@ namespace gcn { - UaeListBox::UaeListBox() - : ListBox() +UaeListBox::UaeListBox() + : ListBox() +{ +} + +UaeListBox::UaeListBox(ListModel *listModel) + : ListBox(listModel) +{ +} + +UaeListBox::~UaeListBox() +{ +} + +void UaeListBox::draw(Graphics* graphics) +{ + graphics->setColor(getBackgroundColor()); + graphics->fillRectangle(Rectangle(0, 0, getWidth(), getHeight())); + + if (mListModel == NULL) { + return; } - UaeListBox::UaeListBox(ListModel *listModel) - : ListBox(listModel) + graphics->setColor(getForegroundColor()); + graphics->setFont(getFont()); + + // Check the current clip area so we don't draw unnecessary items + // that are not visible. + const ClipRectangle currentClipArea = graphics->getCurrentClipArea(); + int rowHeight = getRowHeight(); + + // Calculate the number of rows to draw by checking the clip area. + // The addition of two makes covers a partial visible row at the top + // and a partial visible row at the bottom. + int numberOfRows = currentClipArea.height / rowHeight + 2; + + if (numberOfRows > mListModel->getNumberOfElements()) { + numberOfRows = mListModel->getNumberOfElements(); } - UaeListBox::~UaeListBox() + // Calculate which row to start drawing. If the list box + // has a negative y coordinate value we should check if + // we should drop rows in the begining of the list as + // they might not be visible. A negative y value is very + // common if the list box for instance resides in a scroll + // area and the user has scrolled the list box downwards. + int startRow; + if (getY() < 0) { + startRow = -1 * (getY() / rowHeight); } - - void UaeListBox::draw(Graphics* graphics) + else { - graphics->setColor(getBackgroundColor()); - graphics->fillRectangle(Rectangle(0, 0, getWidth(), getHeight())); + startRow = 0; + } - if (mListModel == NULL) + int i; + // The y coordinate where we start to draw the text is + // simply the y coordinate multiplied with the font height. + int y = rowHeight * startRow; + for (i = startRow; i < startRow + numberOfRows; ++i) + { + if (i == mSelected) { - return; + if(isFocused()) + graphics->setColor(getSelectionColor()); + else + graphics->setColor(0xd0d0d0); + graphics->fillRectangle(Rectangle(0, y, getWidth(), rowHeight)); + graphics->setColor(getForegroundColor()); } - graphics->setColor(getForegroundColor()); - graphics->setFont(getFont()); - - // Check the current clip area so we don't draw unnecessary items - // that are not visible. - const ClipRectangle currentClipArea = graphics->getCurrentClipArea(); - int rowHeight = getRowHeight(); - - // Calculate the number of rows to draw by checking the clip area. - // The addition of two makes covers a partial visible row at the top - // and a partial visible row at the bottom. - int numberOfRows = currentClipArea.height / rowHeight + 2; - - if (numberOfRows > mListModel->getNumberOfElements()) + // If the row height is greater than the font height we + // draw the text with a center vertical alignment. + if (rowHeight > getFont()->getHeight()) { - numberOfRows = mListModel->getNumberOfElements(); + graphics->drawText(mListModel->getElementAt(i), 1, y + rowHeight / 2 - getFont()->getHeight() / 2); + } + else + { + graphics->drawText(mListModel->getElementAt(i), 1, y); } - // Calculate which row to start drawing. If the list box - // has a negative y coordinate value we should check if - // we should drop rows in the begining of the list as - // they might not be visible. A negative y value is very - // common if the list box for instance resides in a scroll - // area and the user has scrolled the list box downwards. - int startRow; - if (getY() < 0) - { - startRow = -1 * (getY() / rowHeight); - } - else - { - startRow = 0; - } - - int i; - // The y coordinate where we start to draw the text is - // simply the y coordinate multiplied with the font height. - int y = rowHeight * startRow; - for (i = startRow; i < startRow + numberOfRows; ++i) - { - if (i == mSelected) - { - if(isFocused()) - graphics->setColor(getSelectionColor()); - else - graphics->setColor(0xd0d0d0); - graphics->fillRectangle(Rectangle(0, y, getWidth(), rowHeight)); - graphics->setColor(getForegroundColor()); - } - - // If the row height is greater than the font height we - // draw the text with a center vertical alignment. - if (rowHeight > getFont()->getHeight()) - { - graphics->drawText(mListModel->getElementAt(i), 1, y + rowHeight / 2 - getFont()->getHeight() / 2); - } - else - { - graphics->drawText(mListModel->getElementAt(i), 1, y); - } - - y += rowHeight; - } + y += rowHeight; } +} } diff --git a/src/od-pandora/gui/UaeListBox.hpp b/src/od-pandora/gui/UaeListBox.hpp index 202ea0db..1fdae225 100644 --- a/src/od-pandora/gui/UaeListBox.hpp +++ b/src/od-pandora/gui/UaeListBox.hpp @@ -13,17 +13,17 @@ namespace gcn { - class GCN_CORE_DECLSPEC UaeListBox : public ListBox - { - public: - UaeListBox(); +class GCN_CORE_DECLSPEC UaeListBox : public ListBox +{ +public: + UaeListBox(); - UaeListBox(ListModel *listModel); + UaeListBox(ListModel *listModel); - virtual ~UaeListBox(); + virtual ~UaeListBox(); - virtual void draw(Graphics* graphics); - }; + virtual void draw(Graphics* graphics); +}; } diff --git a/src/od-pandora/gui/UaeRadioButton.cpp b/src/od-pandora/gui/UaeRadioButton.cpp index 0ff52542..e3bf27d9 100644 --- a/src/od-pandora/gui/UaeRadioButton.cpp +++ b/src/od-pandora/gui/UaeRadioButton.cpp @@ -10,50 +10,50 @@ namespace gcn { - UaeRadioButton::UaeRadioButton() - : RadioButton() +UaeRadioButton::UaeRadioButton() + : RadioButton() +{ +} + +UaeRadioButton::UaeRadioButton(const std::string &caption, + const std::string &group, + bool selected) + : RadioButton(caption, group, selected) +{ + setId(caption); +} + +UaeRadioButton::~UaeRadioButton() +{ + // Remove us from the group list + setGroup(""); +} + +void UaeRadioButton::draw(Graphics* graphics) +{ + graphics->pushClipArea(Rectangle(1, + 1, + getWidth() - 1, + getHeight() - 1)); + drawBox(graphics); + graphics->popClipArea(); + + + graphics->setFont(getFont()); + graphics->setColor(getForegroundColor()); + + if (isFocused()) { + graphics->setColor(Color(0x000000)); + graphics->drawRectangle(Rectangle(0, + 0, + getWidth(), + getHeight())); } - UaeRadioButton::UaeRadioButton(const std::string &caption, - const std::string &group, - bool selected) - : RadioButton(caption, group, selected) - { - setId(caption); - } + int h = getHeight() + getHeight() / 2; - UaeRadioButton::~UaeRadioButton() - { - // Remove us from the group list - setGroup(""); - } - - void UaeRadioButton::draw(Graphics* graphics) - { - graphics->pushClipArea(Rectangle(1, - 1, - getWidth() - 1, - getHeight() - 1)); - drawBox(graphics); - graphics->popClipArea(); - - - graphics->setFont(getFont()); - graphics->setColor(getForegroundColor()); - - if (isFocused()) - { - graphics->setColor(Color(0x000000)); - graphics->drawRectangle(Rectangle(0, - 0, - getWidth(), - getHeight())); - } - - int h = getHeight() + getHeight() / 2; - - graphics->drawText(getCaption(), h - 2, 0); - } + graphics->drawText(getCaption(), h - 2, 0); +} } diff --git a/src/od-pandora/gui/UaeRadioButton.hpp b/src/od-pandora/gui/UaeRadioButton.hpp index 52882be6..6041fa87 100644 --- a/src/od-pandora/gui/UaeRadioButton.hpp +++ b/src/od-pandora/gui/UaeRadioButton.hpp @@ -13,20 +13,20 @@ namespace gcn { - class GCN_CORE_DECLSPEC UaeRadioButton : public RadioButton - { - public: - UaeRadioButton(); +class GCN_CORE_DECLSPEC UaeRadioButton : public RadioButton +{ +public: + UaeRadioButton(); - UaeRadioButton(const std::string &caption, - const std::string &group, - bool selected = false); + UaeRadioButton(const std::string &caption, + const std::string &group, + bool selected = false); - virtual ~UaeRadioButton(); + virtual ~UaeRadioButton(); - virtual void draw(Graphics* graphics); + virtual void draw(Graphics* graphics); - }; +}; } diff --git a/src/od-pandora/gui/gui_handling.h b/src/od-pandora/gui/gui_handling.h index 6dc1e620..a32d3fd5 100644 --- a/src/od-pandora/gui/gui_handling.h +++ b/src/od-pandora/gui/gui_handling.h @@ -16,14 +16,15 @@ #define SLIDER_HEIGHT 18 #define TITLEBAR_HEIGHT 24 -typedef struct _ConfigCategory { - const char *category; - const char *imagepath; - gcn::SelectorEntry *selector; - gcn::Container *panel; - void (*InitFunc) (const struct _ConfigCategory& category); - void (*ExitFunc) (void); - void (*RefreshFunc) (void); +typedef struct _ConfigCategory +{ + const char *category; + const char *imagepath; + gcn::SelectorEntry *selector; + gcn::Container *panel; + void (*InitFunc) (const struct _ConfigCategory& category); + void (*ExitFunc) (void); + void (*RefreshFunc) (void); } ConfigCategory; extern bool gui_running; @@ -42,11 +43,12 @@ extern char last_loaded_config[MAX_DPATH]; #define BUILDINID_A1200 2 #define BUILDINID_CD32 3 -typedef struct { - char Name[MAX_DPATH]; - char FullPath[MAX_DPATH]; - char Description[MAX_DPATH]; - int BuildInID; +typedef struct +{ + char Name[MAX_DPATH]; + char FullPath[MAX_DPATH]; + char Description[MAX_DPATH]; + int BuildInID; } ConfigFileInfo; extern std::vector ConfigFilesList; @@ -115,7 +117,7 @@ bool HandleNavigation(int direction); extern void CreateDefaultDevicename(char *name); extern bool DevicenameExists(const char *name); extern int tweakbootpri (int bp, int ab, int dnm); - + extern char *screenshot_filename; extern int currentStateNum; extern int delay_savestate_frame; diff --git a/src/od-pandora/gui/main_window.cpp b/src/od-pandora/gui/main_window.cpp index 4bf10ec9..1c003221 100644 --- a/src/od-pandora/gui/main_window.cpp +++ b/src/od-pandora/gui/main_window.cpp @@ -11,32 +11,34 @@ #include "uae.h" #include "gui.h" #include "gui_handling.h" -#include "memory.h" +#include "include/memory.h" #include "autoconf.h" bool gui_running = false; static int last_active_panel = 1; -ConfigCategory categories[] = { - { "Paths", "data/paths.ico", NULL, NULL, InitPanelPaths, ExitPanelPaths, RefreshPanelPaths }, - { "Configurations", "data/file.ico", NULL, NULL, InitPanelConfig, ExitPanelConfig, RefreshPanelConfig }, - { "CPU and FPU", "data/cpu.ico", NULL, NULL, InitPanelCPU, ExitPanelCPU, RefreshPanelCPU }, - { "Chipset", "data/cpu.ico", NULL, NULL, InitPanelChipset, ExitPanelChipset, RefreshPanelChipset }, - { "ROM", "data/chip.ico", NULL, NULL, InitPanelROM, ExitPanelROM, RefreshPanelROM }, - { "RAM", "data/chip.ico", NULL, NULL, InitPanelRAM, ExitPanelRAM, RefreshPanelRAM }, - { "Floppy drives", "data/35floppy.ico", NULL, NULL, InitPanelFloppy, ExitPanelFloppy, RefreshPanelFloppy }, - { "Hard drives / CD", "data/drive.ico", NULL, NULL, InitPanelHD, ExitPanelHD, RefreshPanelHD }, - { "Display", "data/screen.ico", NULL, NULL, InitPanelDisplay, ExitPanelDisplay, RefreshPanelDisplay }, - { "Sound", "data/sound.ico", NULL, NULL, InitPanelSound, ExitPanelSound, RefreshPanelSound }, - { "Input", "data/joystick.ico", NULL, NULL, InitPanelInput, ExitPanelInput, RefreshPanelInput }, - { "Miscellaneous", "data/misc.ico", NULL, NULL, InitPanelMisc, ExitPanelMisc, RefreshPanelMisc }, - { "Savestates", "data/savestate.png", NULL, NULL, InitPanelSavestate, ExitPanelSavestate, RefreshPanelSavestate }, - { NULL, NULL, NULL, NULL, NULL, NULL, NULL } +ConfigCategory categories[] = +{ + { "Paths", "data/paths.ico", NULL, NULL, InitPanelPaths, ExitPanelPaths, RefreshPanelPaths }, + { "Configurations", "data/file.ico", NULL, NULL, InitPanelConfig, ExitPanelConfig, RefreshPanelConfig }, + { "CPU and FPU", "data/cpu.ico", NULL, NULL, InitPanelCPU, ExitPanelCPU, RefreshPanelCPU }, + { "Chipset", "data/cpu.ico", NULL, NULL, InitPanelChipset, ExitPanelChipset, RefreshPanelChipset }, + { "ROM", "data/chip.ico", NULL, NULL, InitPanelROM, ExitPanelROM, RefreshPanelROM }, + { "RAM", "data/chip.ico", NULL, NULL, InitPanelRAM, ExitPanelRAM, RefreshPanelRAM }, + { "Floppy drives", "data/35floppy.ico", NULL, NULL, InitPanelFloppy, ExitPanelFloppy, RefreshPanelFloppy }, + { "Hard drives / CD", "data/drive.ico", NULL, NULL, InitPanelHD, ExitPanelHD, RefreshPanelHD }, + { "Display", "data/screen.ico", NULL, NULL, InitPanelDisplay, ExitPanelDisplay, RefreshPanelDisplay }, + { "Sound", "data/sound.ico", NULL, NULL, InitPanelSound, ExitPanelSound, RefreshPanelSound }, + { "Input", "data/joystick.ico", NULL, NULL, InitPanelInput, ExitPanelInput, RefreshPanelInput }, + { "Miscellaneous", "data/misc.ico", NULL, NULL, InitPanelMisc, ExitPanelMisc, RefreshPanelMisc }, + { "Savestates", "data/savestate.png", NULL, NULL, InitPanelSavestate, ExitPanelSavestate, RefreshPanelSavestate }, + { NULL, NULL, NULL, NULL, NULL, NULL, NULL } }; enum { PANEL_PATHS, PANEL_CONFIGURATIONS, PANEL_CPU, PANEL_CHIPSET, PANEL_ROM, PANEL_RAM, - PANEL_FLOPPY, PANEL_HD, PANEL_DISPLAY, PANEL_SOUND, PANEL_INPUT, PANEL_MISC, PANEL_SAVESTATES, - NUM_PANELS }; + PANEL_FLOPPY, PANEL_HD, PANEL_DISPLAY, PANEL_SOUND, PANEL_INPUT, PANEL_MISC, PANEL_SAVESTATES, + NUM_PANELS + }; gcn::Gui* uae_gui; @@ -52,13 +54,13 @@ gcn::SDLGraphics* gui_graphics; gcn::SDLInput* gui_input; gcn::SDLImageLoader* gui_imageLoader; -namespace widgets +namespace widgets { - // Main buttons - gcn::Button* cmdQuit; - gcn::Button* cmdReset; - gcn::Button* cmdRestart; - gcn::Button* cmdStart; +// Main buttons +gcn::Button* cmdQuit; +gcn::Button* cmdReset; +gcn::Button* cmdRestart; +gcn::Button* cmdStart; } @@ -69,69 +71,69 @@ namespace widgets Bit 3: mousehack on Bit 4: rtgmem on Bit 5: chipmem larger than 2MB - + gui_rtarea_flags_onenter is set before GUI is shown, bit 1 may change during GUI display. */ static int gui_rtarea_flags_onenter; static int gui_create_rtarea_flag(struct uae_prefs *p) { - int flag = 0; - - if(count_HDs(p) > 0) - flag |= 1; - - if (p->socket_emu) - flag |= 4; + int flag = 0; - if (p->input_tablet > 0) - flag |= 8; + if(count_HDs(p) > 0) + flag |= 1; - if(p->rtgmem_size) - flag |= 16; + if (p->socket_emu) + flag |= 4; - if (p->chipmem_size > 2 * 1024 * 1024) - flag |= 32; + if (p->input_tablet > 0) + flag |= 8; - return flag; + if(p->rtgmem_size) + flag |= 16; + + if (p->chipmem_size > 2 * 1024 * 1024) + flag |= 32; + + return flag; } void gui_force_rtarea_hdchange(void) { - gui_rtarea_flags_onenter |= 2; + gui_rtarea_flags_onenter |= 2; } static void (*refreshFuncAfterDraw)(void) = NULL; void RegisterRefreshFunc(void (*func)(void)) { - refreshFuncAfterDraw = func; + refreshFuncAfterDraw = func; } namespace sdl { - void gui_init() - { +void gui_init() +{ //------------------------------------------------- // Set layer for GUI screen //------------------------------------------------- - char tmp[20]; - snprintf(tmp, 20, "%dx%d", GUI_WIDTH, GUI_HEIGHT); - setenv("SDL_OMAP_LAYER_SIZE", tmp, 1); - snprintf(tmp, 20, "0,0,0,0"); - setenv("SDL_OMAP_BORDER_CUT", tmp, 1); + char tmp[20]; + snprintf(tmp, 20, "%dx%d", GUI_WIDTH, GUI_HEIGHT); + setenv("SDL_OMAP_LAYER_SIZE", tmp, 1); + snprintf(tmp, 20, "0,0,0,0"); + setenv("SDL_OMAP_BORDER_CUT", tmp, 1); //------------------------------------------------- // Create new screen for GUI //------------------------------------------------- - #if defined (RASPBERRY) +#if defined (RASPBERRY) const SDL_VideoInfo* videoInfo = SDL_GetVideoInfo (); printf("Current resolution: %d x %d %d bpp\n",videoInfo->current_w, videoInfo->current_h, videoInfo->vfmt->BitsPerPixel); gui_screen = SDL_SetVideoMode(videoInfo->current_w,videoInfo->current_h,16,SDL_SWSURFACE |SDL_FULLSCREEN); - #else +#else gui_screen = SDL_SetVideoMode(GUI_WIDTH, GUI_HEIGHT, 16, SDL_SWSURFACE); - #endif +#endif SDL_EnableUNICODE(1); SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL); SDL_ShowCursor(SDL_ENABLE); @@ -147,241 +149,243 @@ namespace sdl uae_gui = new gcn::Gui(); uae_gui->setGraphics(gui_graphics); uae_gui->setInput(gui_input); - } +} - void gui_halt() - { +void gui_halt() +{ delete uae_gui; delete gui_imageLoader; delete gui_input; delete gui_graphics; - + SDL_FreeSurface(gui_screen); gui_screen = NULL; - } +} - void gui_run() - { +void gui_run() +{ //------------------------------------------------- // The main loop //------------------------------------------------- while(gui_running) { - //------------------------------------------------- - // Check user input - //------------------------------------------------- - SDL_Event event; - while(SDL_PollEvent(&event)) - { - if (event.type == SDL_QUIT) - { - //------------------------------------------------- - // Quit entire program via SQL-Quit - //------------------------------------------------- - uae_quit(); - gui_running = false; - break; - } - - else if (event.type == SDL_KEYDOWN) + //------------------------------------------------- + // Check user input + //------------------------------------------------- + SDL_Event event; + while(SDL_PollEvent(&event)) { - gcn::FocusHandler* focusHdl; - gcn::Widget* activeWidget; - - - if (event.key.keysym.sym == currprefs.key_for_menu) - { - if(emulating && widgets::cmdStart->isEnabled()) + if (event.type == SDL_QUIT) { - //------------------------------------------------ - // Continue emulation - //------------------------------------------------ - gui_running = false; + //------------------------------------------------- + // Quit entire program via SQL-Quit + //------------------------------------------------- + uae_quit(); + gui_running = false; + break; } - else + + else if (event.type == SDL_KEYDOWN) { - //------------------------------------------------ - // First start of emulator -> reset Amiga - //------------------------------------------------ - uae_reset(0,1); - gui_running = false; + gcn::FocusHandler* focusHdl; + gcn::Widget* activeWidget; + + + if (event.key.keysym.sym == currprefs.key_for_menu) + { + if(emulating && widgets::cmdStart->isEnabled()) + { + //------------------------------------------------ + // Continue emulation + //------------------------------------------------ + gui_running = false; + } + else + { + //------------------------------------------------ + // First start of emulator -> reset Amiga + //------------------------------------------------ + uae_reset(0,1); + gui_running = false; + } + } + else + switch(event.key.keysym.sym) + { + case SDLK_q: + //------------------------------------------------- + // Quit entire program via Q on keyboard + //------------------------------------------------- + focusHdl = gui_top->_getFocusHandler(); + activeWidget = focusHdl->getFocused(); + if(dynamic_cast(activeWidget) == NULL) + { + // ...but only if we are not in a Textfield... + uae_quit(); + gui_running = false; + } + break; + + case SDLK_ESCAPE: + case SDLK_RCTRL: + //------------------------------------------------- + // Reset Amiga + //------------------------------------------------- + uae_reset(1,1); + gui_running = false; + break; + + case SDLK_PAGEDOWN: + case SDLK_HOME: + //------------------------------------------------ + // Simulate press of enter when 'X' pressed + //------------------------------------------------ + event.key.keysym.sym = SDLK_RETURN; + gui_input->pushInput(event); // Fire key down + event.type = SDL_KEYUP; // and the key up + break; + + case SDLK_UP: + if(HandleNavigation(DIRECTION_UP)) + continue; // Don't change value when enter ComboBox -> don't send event to control + break; + + case SDLK_DOWN: + if(HandleNavigation(DIRECTION_DOWN)) + continue; // Don't change value when enter ComboBox -> don't send event to control + break; + + case SDLK_LEFT: + if(HandleNavigation(DIRECTION_LEFT)) + continue; // Don't change value when enter Slider -> don't send event to control + break; + + case SDLK_RIGHT: + if(HandleNavigation(DIRECTION_RIGHT)) + continue; // Don't change value when enter Slider -> don't send event to control + break; + } } - } else - switch(event.key.keysym.sym) - { - case SDLK_q: - //------------------------------------------------- - // Quit entire program via Q on keyboard - //------------------------------------------------- - focusHdl = gui_top->_getFocusHandler(); - activeWidget = focusHdl->getFocused(); - if(dynamic_cast(activeWidget) == NULL) { - // ...but only if we are not in a Textfield... - uae_quit(); - gui_running = false; - } - break; - case SDLK_ESCAPE: - case SDLK_RCTRL: - //------------------------------------------------- - // Reset Amiga - //------------------------------------------------- - uae_reset(1,1); - gui_running = false; - break; - - case SDLK_PAGEDOWN: - case SDLK_HOME: - //------------------------------------------------ - // Simulate press of enter when 'X' pressed - //------------------------------------------------ - event.key.keysym.sym = SDLK_RETURN; - gui_input->pushInput(event); // Fire key down - event.type = SDL_KEYUP; // and the key up - break; - - case SDLK_UP: - if(HandleNavigation(DIRECTION_UP)) - continue; // Don't change value when enter ComboBox -> don't send event to control - break; - - case SDLK_DOWN: - if(HandleNavigation(DIRECTION_DOWN)) - continue; // Don't change value when enter ComboBox -> don't send event to control - break; - - case SDLK_LEFT: - if(HandleNavigation(DIRECTION_LEFT)) - continue; // Don't change value when enter Slider -> don't send event to control - break; - - case SDLK_RIGHT: - if(HandleNavigation(DIRECTION_RIGHT)) - continue; // Don't change value when enter Slider -> don't send event to control - break; - } + //------------------------------------------------- + // Send event to guichan-controls + //------------------------------------------------- + gui_input->pushInput(event); } - //------------------------------------------------- - // Send event to guichan-controls - //------------------------------------------------- - gui_input->pushInput(event); - } + if(gui_rtarea_flags_onenter != gui_create_rtarea_flag(&changed_prefs)) + DisableResume(); - if(gui_rtarea_flags_onenter != gui_create_rtarea_flag(&changed_prefs)) - DisableResume(); + // Now we let the Gui object perform its logic. + uae_gui->logic(); + // Now we let the Gui object draw itself. + uae_gui->draw(); + // Finally we update the screen. + wait_for_vsync(); + SDL_Flip(gui_screen); - // Now we let the Gui object perform its logic. - uae_gui->logic(); - // Now we let the Gui object draw itself. - uae_gui->draw(); - // Finally we update the screen. - wait_for_vsync(); - SDL_Flip(gui_screen); - - if(refreshFuncAfterDraw != NULL) - { - void (*currFunc)(void) = refreshFuncAfterDraw; - refreshFuncAfterDraw = NULL; - currFunc(); - } + if(refreshFuncAfterDraw != NULL) + { + void (*currFunc)(void) = refreshFuncAfterDraw; + refreshFuncAfterDraw = NULL; + currFunc(); + } } - } +} } -namespace widgets +namespace widgets { - class MainButtonActionListener : public gcn::ActionListener - { - public: - void action(const gcn::ActionEvent& actionEvent) - { - if (actionEvent.getSource() == cmdQuit) - { - //------------------------------------------------- - // Quit entire program via click on Quit-button - //------------------------------------------------- - uae_quit(); - gui_running = false; - } - else if(actionEvent.getSource() == cmdReset) - { - //------------------------------------------------- - // Reset Amiga via click on Reset-button - //------------------------------------------------- - uae_reset(1, 1); - gui_running = false; - } - else if(actionEvent.getSource() == cmdRestart) - { - //------------------------------------------------- - // Restart emulator - //------------------------------------------------- - char tmp[MAX_PATH]; - fetch_configurationpath (tmp, sizeof (tmp)); - if(strlen(last_loaded_config) > 0) - strcat (tmp, last_loaded_config); - else - { - strcat (tmp, OPTIONSFILENAME); - strcat (tmp, ".uae"); - } - uae_restart(0, tmp); - gui_running = false; - } - else if(actionEvent.getSource() == cmdStart) - { - if(emulating && widgets::cmdStart->isEnabled()) - { - //------------------------------------------------ - // Continue emulation - //------------------------------------------------ +class MainButtonActionListener : public gcn::ActionListener +{ +public: + void action(const gcn::ActionEvent& actionEvent) + { + if (actionEvent.getSource() == cmdQuit) + { + //------------------------------------------------- + // Quit entire program via click on Quit-button + //------------------------------------------------- + uae_quit(); gui_running = false; - } - else - { - //------------------------------------------------ - // First start of emulator -> reset Amiga - //------------------------------------------------ - uae_reset(0, 1); - gui_running = false; - } } - } - }; - MainButtonActionListener* mainButtonActionListener; + else if(actionEvent.getSource() == cmdReset) + { + //------------------------------------------------- + // Reset Amiga via click on Reset-button + //------------------------------------------------- + uae_reset(1, 1); + gui_running = false; + } + else if(actionEvent.getSource() == cmdRestart) + { + //------------------------------------------------- + // Restart emulator + //------------------------------------------------- + char tmp[MAX_PATH]; + fetch_configurationpath (tmp, sizeof (tmp)); + if(strlen(last_loaded_config) > 0) + strcat (tmp, last_loaded_config); + else + { + strcat (tmp, OPTIONSFILENAME); + strcat (tmp, ".uae"); + } + uae_restart(0, tmp); + gui_running = false; + } + else if(actionEvent.getSource() == cmdStart) + { + if(emulating && widgets::cmdStart->isEnabled()) + { + //------------------------------------------------ + // Continue emulation + //------------------------------------------------ + gui_running = false; + } + else + { + //------------------------------------------------ + // First start of emulator -> reset Amiga + //------------------------------------------------ + uae_reset(0, 1); + gui_running = false; + } + } + } +}; +MainButtonActionListener* mainButtonActionListener; - class PanelFocusListener : public gcn::FocusListener - { - public: - void focusGained(const gcn::Event& event) - { +class PanelFocusListener : public gcn::FocusListener +{ +public: + void focusGained(const gcn::Event& event) + { int i; for(i=0; categories[i].category != NULL; ++i) { - if(event.getSource() == categories[i].selector) - { - categories[i].selector->setActive(true); - categories[i].panel->setVisible(true); - last_active_panel = i; - } - else - { - categories[i].selector->setActive(false); - categories[i].panel->setVisible(false); - } + if(event.getSource() == categories[i].selector) + { + categories[i].selector->setActive(true); + categories[i].panel->setVisible(true); + last_active_panel = i; + } + else + { + categories[i].selector->setActive(false); + categories[i].panel->setVisible(false); + } } - } - }; - PanelFocusListener* panelFocusListener; + } +}; +PanelFocusListener* panelFocusListener; - void gui_init() - { +void gui_init() +{ int i; int yPos; @@ -414,80 +418,80 @@ namespace widgets //------------------------------------------------- // Initialize fonts //------------------------------------------------- - TTF_Init(); - gui_font = new gcn::contrib::SDLTrueTypeFont("data/FreeSans.ttf", 14); + TTF_Init(); + gui_font = new gcn::contrib::SDLTrueTypeFont("data/FreeSans.ttf", 14); gcn::Widget::setGlobalFont(gui_font); - - //-------------------------------------------------- - // Create main buttons - //-------------------------------------------------- + + //-------------------------------------------------- + // Create main buttons + //-------------------------------------------------- mainButtonActionListener = new MainButtonActionListener(); - cmdQuit = new gcn::Button("Quit"); - cmdQuit->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); + cmdQuit = new gcn::Button("Quit"); + cmdQuit->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); cmdQuit->setBaseColor(gui_baseCol); cmdQuit->setId("Quit"); cmdQuit->addActionListener(mainButtonActionListener); - cmdReset = new gcn::Button("Reset"); - cmdReset->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); + cmdReset = new gcn::Button("Reset"); + cmdReset->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); cmdReset->setBaseColor(gui_baseCol); - cmdReset->setId("Reset"); + cmdReset->setId("Reset"); cmdReset->addActionListener(mainButtonActionListener); - cmdRestart = new gcn::Button("Restart"); - cmdRestart->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); + cmdRestart = new gcn::Button("Restart"); + cmdRestart->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); cmdRestart->setBaseColor(gui_baseCol); - cmdRestart->setId("Restart"); + cmdRestart->setId("Restart"); cmdRestart->addActionListener(mainButtonActionListener); - cmdStart = new gcn::Button("Start"); - if(emulating) - cmdStart->setCaption("Resume"); - cmdStart->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); + cmdStart = new gcn::Button("Start"); + if(emulating) + cmdStart->setCaption("Resume"); + cmdStart->setSize(BUTTON_WIDTH, BUTTON_HEIGHT); cmdStart->setBaseColor(gui_baseCol); - cmdStart->setId("Start"); + cmdStart->setId("Start"); cmdStart->addActionListener(mainButtonActionListener); - //-------------------------------------------------- + //-------------------------------------------------- // Create selector entries - //-------------------------------------------------- - int workAreaHeight = GUI_HEIGHT - 2 * DISTANCE_BORDER - BUTTON_HEIGHT - DISTANCE_NEXT_Y; + //-------------------------------------------------- + int workAreaHeight = GUI_HEIGHT - 2 * DISTANCE_BORDER - BUTTON_HEIGHT - DISTANCE_NEXT_Y; selectors = new gcn::Container(); selectors->setSize(150, workAreaHeight - 2); selectors->setBaseColor(colSelectorInactive); selectors->setFrameSize(1); - int panelStartX = DISTANCE_BORDER + selectors->getWidth() + 2 + 11; + int panelStartX = DISTANCE_BORDER + selectors->getWidth() + 2 + 11; - panelFocusListener = new PanelFocusListener(); + panelFocusListener = new PanelFocusListener(); for(i=0; categories[i].category != NULL; ++i) { - categories[i].selector = new gcn::SelectorEntry(categories[i].category, categories[i].imagepath); - categories[i].selector->setActiveColor(colSelectorActive); - categories[i].selector->setInactiveColor(colSelectorInactive); - categories[i].selector->setSize(150, 24); - categories[i].selector->addFocusListener(panelFocusListener); - - categories[i].panel = new gcn::Container(); - categories[i].panel->setId(categories[i].category); - categories[i].panel->setSize(GUI_WIDTH - panelStartX - DISTANCE_BORDER - 1, workAreaHeight - 2); - categories[i].panel->setBaseColor(gui_baseCol); - categories[i].panel->setFrameSize(1); - categories[i].panel->setVisible(false); + categories[i].selector = new gcn::SelectorEntry(categories[i].category, categories[i].imagepath); + categories[i].selector->setActiveColor(colSelectorActive); + categories[i].selector->setInactiveColor(colSelectorInactive); + categories[i].selector->setSize(150, 24); + categories[i].selector->addFocusListener(panelFocusListener); + + categories[i].panel = new gcn::Container(); + categories[i].panel->setId(categories[i].category); + categories[i].panel->setSize(GUI_WIDTH - panelStartX - DISTANCE_BORDER - 1, workAreaHeight - 2); + categories[i].panel->setBaseColor(gui_baseCol); + categories[i].panel->setFrameSize(1); + categories[i].panel->setVisible(false); } - //-------------------------------------------------- - // Initialize panels - //-------------------------------------------------- + //-------------------------------------------------- + // Initialize panels + //-------------------------------------------------- for(i=0; categories[i].category != NULL; ++i) { - if(categories[i].InitFunc != NULL) - (*categories[i].InitFunc) (categories[i]); + if(categories[i].InitFunc != NULL) + (*categories[i].InitFunc) (categories[i]); } - //-------------------------------------------------- + //-------------------------------------------------- // Place everything on main form - //-------------------------------------------------- + //-------------------------------------------------- gui_top->add(cmdReset, DISTANCE_BORDER, GUI_HEIGHT - DISTANCE_BORDER - BUTTON_HEIGHT); gui_top->add(cmdQuit, DISTANCE_BORDER + BUTTON_WIDTH + DISTANCE_NEXT_X, GUI_HEIGHT - DISTANCE_BORDER - BUTTON_HEIGHT); // gui_top->add(cmdRestart, DISTANCE_BORDER + 2 * BUTTON_WIDTH + 2 * DISTANCE_NEXT_X, GUI_HEIGHT - DISTANCE_BORDER - BUTTON_HEIGHT); @@ -496,29 +500,29 @@ namespace widgets gui_top->add(selectors, DISTANCE_BORDER + 1, DISTANCE_BORDER + 1); for(i=0, yPos=0; categories[i].category != NULL; ++i, yPos += 24) { - selectors->add(categories[i].selector, 0, yPos); - gui_top->add(categories[i].panel, panelStartX, DISTANCE_BORDER + 1); + selectors->add(categories[i].selector, 0, yPos); + gui_top->add(categories[i].panel, panelStartX, DISTANCE_BORDER + 1); } - //-------------------------------------------------- - // Activate last active panel - //-------------------------------------------------- - categories[last_active_panel].selector->requestFocus(); - } + //-------------------------------------------------- + // Activate last active panel + //-------------------------------------------------- + categories[last_active_panel].selector->requestFocus(); +} - void gui_halt() - { +void gui_halt() +{ int i; for(i=0; categories[i].category != NULL; ++i) { - if(categories[i].ExitFunc != NULL) - (*categories[i].ExitFunc) (); + if(categories[i].ExitFunc != NULL) + (*categories[i].ExitFunc) (); } for(i=0; categories[i].category != NULL; ++i) - delete categories[i].selector; + delete categories[i].selector; delete panelFocusListener; delete selectors; @@ -526,80 +530,80 @@ namespace widgets delete cmdReset; delete cmdRestart; delete cmdStart; - + delete mainButtonActionListener; - + delete gui_font; delete gui_top; - } +} } void RefreshAllPanels(void) { - int i; - - for(i=0; categories[i].category != NULL; ++i) - { - if(categories[i].RefreshFunc != NULL) - (*categories[i].RefreshFunc) (); - } + int i; + + for(i=0; categories[i].category != NULL; ++i) + { + if(categories[i].RefreshFunc != NULL) + (*categories[i].RefreshFunc) (); + } } void DisableResume(void) { - if(emulating) - { - widgets::cmdStart->setEnabled(false); - gcn::Color backCol; - backCol.r = 128; - backCol.g = 128; - backCol.b = 128; - widgets::cmdStart->setForegroundColor(backCol); - } + if(emulating) + { + widgets::cmdStart->setEnabled(false); + gcn::Color backCol; + backCol.r = 128; + backCol.g = 128; + backCol.b = 128; + widgets::cmdStart->setForegroundColor(backCol); + } } void run_gui(void) { - gui_running = true; - gui_rtarea_flags_onenter = gui_create_rtarea_flag(&currprefs); + gui_running = true; + gui_rtarea_flags_onenter = gui_create_rtarea_flag(&currprefs); - try - { - sdl::gui_init(); - widgets::gui_init(); - sdl::gui_run(); - widgets::gui_halt(); - sdl::gui_halt(); - } - // Catch all Guichan exceptions. - catch (gcn::Exception e) - { - std::cout << e.getMessage() << std::endl; - uae_quit(); - } - // Catch all Std exceptions. - catch (std::exception e) - { - std::cout << "Std exception: " << e.what() << std::endl; - uae_quit(); - } - // Catch all unknown exceptions. - catch (...) - { - std::cout << "Unknown exception" << std::endl; - uae_quit(); - } - if(quit_program > UAE_QUIT || quit_program < -UAE_QUIT) - { - //-------------------------------------------------- - // Prepare everything for Reset of Amiga - //-------------------------------------------------- - currprefs.nr_floppies = changed_prefs.nr_floppies; - - if(gui_rtarea_flags_onenter != gui_create_rtarea_flag(&changed_prefs)) - quit_program = -UAE_RESET_HARD; // Hardreset required... - } + try + { + sdl::gui_init(); + widgets::gui_init(); + sdl::gui_run(); + widgets::gui_halt(); + sdl::gui_halt(); + } + // Catch all Guichan exceptions. + catch (gcn::Exception e) + { + std::cout << e.getMessage() << std::endl; + uae_quit(); + } + // Catch all Std exceptions. + catch (std::exception e) + { + std::cout << "Std exception: " << e.what() << std::endl; + uae_quit(); + } + // Catch all unknown exceptions. + catch (...) + { + std::cout << "Unknown exception" << std::endl; + uae_quit(); + } + if(quit_program > UAE_QUIT || quit_program < -UAE_QUIT) + { + //-------------------------------------------------- + // Prepare everything for Reset of Amiga + //-------------------------------------------------- + currprefs.nr_floppies = changed_prefs.nr_floppies; + + if(gui_rtarea_flags_onenter != gui_create_rtarea_flag(&changed_prefs)) + quit_program = -UAE_RESET_HARD; // Hardreset required... + } } diff --git a/src/od-pandora/gui/sdltruetypefont.cpp b/src/od-pandora/gui/sdltruetypefont.cpp index b7481bf3..c317e81a 100644 --- a/src/od-pandora/gui/sdltruetypefont.cpp +++ b/src/od-pandora/gui/sdltruetypefont.cpp @@ -42,7 +42,7 @@ */ /* - * For comments regarding functions please see the header file. + * For comments regarding functions please see the header file. */ #include "sdltruetypefont.hpp" @@ -54,118 +54,118 @@ namespace gcn { - namespace contrib +namespace contrib +{ +SDLTrueTypeFont::SDLTrueTypeFont (const std::string& filename, int size) +{ + mRowSpacing = 0; + mGlyphSpacing = 0; + mAntiAlias = true; + mFilename = filename; + mFont = NULL; + + mFont = TTF_OpenFont(filename.c_str(), size); + + if (mFont == NULL) { - SDLTrueTypeFont::SDLTrueTypeFont (const std::string& filename, int size) - { - mRowSpacing = 0; - mGlyphSpacing = 0; - mAntiAlias = true; - mFilename = filename; - mFont = NULL; - - mFont = TTF_OpenFont(filename.c_str(), size); - - if (mFont == NULL) - { - throw GCN_EXCEPTION("SDLTrueTypeFont::SDLTrueTypeFont. "+std::string(TTF_GetError())); - } - } - - SDLTrueTypeFont::~SDLTrueTypeFont() - { - TTF_CloseFont(mFont); - } - - int SDLTrueTypeFont::getWidth(const std::string& text) const - { - int w, h; - TTF_SizeText(mFont, text.c_str(), &w, &h); - - return w; - } - - int SDLTrueTypeFont::getHeight() const - { - return TTF_FontHeight(mFont) + mRowSpacing; - } - - void SDLTrueTypeFont::drawString(gcn::Graphics* graphics, const std::string& text, const int x, const int y) - { - if (text == "") - { - return; - } - - gcn::SDLGraphics *sdlGraphics = dynamic_cast(graphics); - - if (sdlGraphics == NULL) - { - throw GCN_EXCEPTION("SDLTrueTypeFont::drawString. Graphics object not an SDL graphics object!"); - return; - } - - // This is needed for drawing the Glyph in the middle if we have spacing - int yoffset = getRowSpacing() / 2; - - Color col = sdlGraphics->getColor(); - - SDL_Color sdlCol; - sdlCol.b = col.b; - sdlCol.r = col.r; - sdlCol.g = col.g; - - SDL_Surface *textSurface; - if (mAntiAlias) - { - textSurface = TTF_RenderText_Blended(mFont, text.c_str(), sdlCol); - } - else - { - textSurface = TTF_RenderText_Solid(mFont, text.c_str(), sdlCol); - } - - SDL_Rect dst, src; - dst.x = x; - dst.y = y + yoffset; - src.w = textSurface->w; - src.h = textSurface->h; - src.x = 0; - src.y = 0; - - sdlGraphics->drawSDLSurface(textSurface, src, dst); - SDL_FreeSurface(textSurface); - } - - void SDLTrueTypeFont::setRowSpacing(int spacing) - { - mRowSpacing = spacing; - } - - int SDLTrueTypeFont::getRowSpacing() - { - return mRowSpacing; - } - - void SDLTrueTypeFont::setGlyphSpacing(int spacing) - { - mGlyphSpacing = spacing; - } - - int SDLTrueTypeFont::getGlyphSpacing() - { - return mGlyphSpacing; - } - - void SDLTrueTypeFont::setAntiAlias(bool antiAlias) - { - mAntiAlias = antiAlias; - } - - bool SDLTrueTypeFont::isAntiAlias() - { - return mAntiAlias; - } + throw GCN_EXCEPTION("SDLTrueTypeFont::SDLTrueTypeFont. "+std::string(TTF_GetError())); } } +SDLTrueTypeFont::~SDLTrueTypeFont() +{ + TTF_CloseFont(mFont); +} + +int SDLTrueTypeFont::getWidth(const std::string& text) const +{ + int w, h; + TTF_SizeText(mFont, text.c_str(), &w, &h); + + return w; +} + +int SDLTrueTypeFont::getHeight() const +{ + return TTF_FontHeight(mFont) + mRowSpacing; +} + +void SDLTrueTypeFont::drawString(gcn::Graphics* graphics, const std::string& text, const int x, const int y) +{ + if (text == "") + { + return; + } + + gcn::SDLGraphics *sdlGraphics = dynamic_cast(graphics); + + if (sdlGraphics == NULL) + { + throw GCN_EXCEPTION("SDLTrueTypeFont::drawString. Graphics object not an SDL graphics object!"); + return; + } + + // This is needed for drawing the Glyph in the middle if we have spacing + int yoffset = getRowSpacing() / 2; + + Color col = sdlGraphics->getColor(); + + SDL_Color sdlCol; + sdlCol.b = col.b; + sdlCol.r = col.r; + sdlCol.g = col.g; + + SDL_Surface *textSurface; + if (mAntiAlias) + { + textSurface = TTF_RenderText_Blended(mFont, text.c_str(), sdlCol); + } + else + { + textSurface = TTF_RenderText_Solid(mFont, text.c_str(), sdlCol); + } + + SDL_Rect dst, src; + dst.x = x; + dst.y = y + yoffset; + src.w = textSurface->w; + src.h = textSurface->h; + src.x = 0; + src.y = 0; + + sdlGraphics->drawSDLSurface(textSurface, src, dst); + SDL_FreeSurface(textSurface); +} + +void SDLTrueTypeFont::setRowSpacing(int spacing) +{ + mRowSpacing = spacing; +} + +int SDLTrueTypeFont::getRowSpacing() +{ + return mRowSpacing; +} + +void SDLTrueTypeFont::setGlyphSpacing(int spacing) +{ + mGlyphSpacing = spacing; +} + +int SDLTrueTypeFont::getGlyphSpacing() +{ + return mGlyphSpacing; +} + +void SDLTrueTypeFont::setAntiAlias(bool antiAlias) +{ + mAntiAlias = antiAlias; +} + +bool SDLTrueTypeFont::isAntiAlias() +{ + return mAntiAlias; +} +} +} + diff --git a/src/od-pandora/gui/sdltruetypefont.hpp b/src/od-pandora/gui/sdltruetypefont.hpp index 34bf8a59..f0ccae20 100644 --- a/src/od-pandora/gui/sdltruetypefont.hpp +++ b/src/od-pandora/gui/sdltruetypefont.hpp @@ -54,102 +54,102 @@ namespace gcn { - class Graphics; - namespace contrib - { - - /** - * SDL True Type Font implementation of Font. It uses the SDL_ttf library - * to display True Type Fonts with SDL. - * - * NOTE: You must initialize the SDL_ttf library before using this - * class. Also, remember to call the SDL_ttf libraries quit - * function. - * - * @author Walluce Pinkham - * @author Olof Naessén - */ - class GCN_EXTENSION_DECLSPEC SDLTrueTypeFont: public Font - { - public: +class Graphics; +namespace contrib +{ - /** - * Constructor. - * - * @param filename the filename of the True Type Font. - * @param size the size the font should be in. - */ - SDLTrueTypeFont (const std::string& filename, int size); +/** + * SDL True Type Font implementation of Font. It uses the SDL_ttf library + * to display True Type Fonts with SDL. + * + * NOTE: You must initialize the SDL_ttf library before using this + * class. Also, remember to call the SDL_ttf libraries quit + * function. + * + * @author Walluce Pinkham + * @author Olof Naessén + */ +class GCN_EXTENSION_DECLSPEC SDLTrueTypeFont: public Font +{ +public: - /** - * Destructor. - */ - virtual ~SDLTrueTypeFont(); - - /** - * Sets the spacing between rows in pixels. Default is 0 pixels. - * The spacing can be negative. - * - * @param spacing the spacing in pixels. - */ - virtual void setRowSpacing (int spacing); - - /** - * Gets the spacing between rows in pixels. - * - * @return the spacing. - */ - virtual int getRowSpacing(); - - /** - * Sets the spacing between letters in pixels. Default is 0 pixels. - * The spacing can be negative. - * - * @param spacing the spacing in pixels. - */ - virtual void setGlyphSpacing(int spacing); + /** + * Constructor. + * + * @param filename the filename of the True Type Font. + * @param size the size the font should be in. + */ + SDLTrueTypeFont (const std::string& filename, int size); - /** - * Gets the spacing between letters in pixels. - * - * @return the spacing. - */ - virtual int getGlyphSpacing(); - - /** - * Sets the use of anti aliasing.. - * - * @param antaAlias true for use of antia aliasing. - */ - virtual void setAntiAlias(bool antiAlias); - - /** - * Checks if anti aliasing is used. - * - * @return true if anti aliasing is used. - */ - virtual bool isAntiAlias(); - - - // Inherited from Font - - virtual int getWidth(const std::string& text) const; - - virtual int getHeight() const; - - virtual void drawString(Graphics* graphics, const std::string& text, int x, int y); - - protected: - TTF_Font *mFont; - - int mHeight; - int mGlyphSpacing; - int mRowSpacing; - - std::string mFilename; - bool mAntiAlias; - }; - } + /** + * Destructor. + */ + virtual ~SDLTrueTypeFont(); + + /** + * Sets the spacing between rows in pixels. Default is 0 pixels. + * The spacing can be negative. + * + * @param spacing the spacing in pixels. + */ + virtual void setRowSpacing (int spacing); + + /** + * Gets the spacing between rows in pixels. + * + * @return the spacing. + */ + virtual int getRowSpacing(); + + /** + * Sets the spacing between letters in pixels. Default is 0 pixels. + * The spacing can be negative. + * + * @param spacing the spacing in pixels. + */ + virtual void setGlyphSpacing(int spacing); + + /** + * Gets the spacing between letters in pixels. + * + * @return the spacing. + */ + virtual int getGlyphSpacing(); + + /** + * Sets the use of anti aliasing.. + * + * @param antaAlias true for use of antia aliasing. + */ + virtual void setAntiAlias(bool antiAlias); + + /** + * Checks if anti aliasing is used. + * + * @return true if anti aliasing is used. + */ + virtual bool isAntiAlias(); + + + // Inherited from Font + + virtual int getWidth(const std::string& text) const; + + virtual int getHeight() const; + + virtual void drawString(Graphics* graphics, const std::string& text, int x, int y); + +protected: + TTF_Font *mFont; + + int mHeight; + int mGlyphSpacing; + int mRowSpacing; + + std::string mFilename; + bool mAntiAlias; +}; +} } #endif diff --git a/src/od-pandora/hardfile_pandora.cpp b/src/od-pandora/hardfile_pandora.cpp index 644d0d5a..e8304317 100644 --- a/src/od-pandora/hardfile_pandora.cpp +++ b/src/od-pandora/hardfile_pandora.cpp @@ -9,25 +9,26 @@ struct hardfilehandle { - int zfile; - struct zfile *zf; - FILE *f; + int zfile; + struct zfile *zf; + FILE *f; }; -struct uae_driveinfo { - TCHAR vendor_id[128]; - TCHAR product_id[128]; - TCHAR product_rev[128]; - TCHAR product_serial[128]; - TCHAR device_name[2048]; - TCHAR device_path[2048]; - uae_u64 size; - uae_u64 offset; - int bytespersector; - int removablemedia; - int nomedia; - int dangerous; - int readonly; +struct uae_driveinfo +{ + TCHAR vendor_id[128]; + TCHAR product_id[128]; + TCHAR product_rev[128]; + TCHAR product_serial[128]; + TCHAR device_name[2048]; + TCHAR device_path[2048]; + uae_u64 size; + uae_u64 offset; + int bytespersector; + int removablemedia; + int nomedia; + int dangerous; + int readonly; }; #define HDF_HANDLE_FILE 1 @@ -40,322 +41,363 @@ static TCHAR *hdz[] = { _T("hdz"), _T("zip"), NULL }; int hdf_open_target (struct hardfiledata *hfd, const TCHAR *pname) { - FILE *f = 0; - int i; - TCHAR *name = my_strdup (pname); - TCHAR *ext; - int zmode = 0; + FILE *f = 0; + int i; + TCHAR *name = my_strdup (pname); + TCHAR *ext; + int zmode = 0; - hfd->flags = 0; - hfd->drive_empty = 0; - hdf_close (hfd); - hfd->cache = (uae_u8*)malloc (CACHE_SIZE); - hfd->cache_valid = 0; - hfd->virtual_size = 0; - hfd->virtual_rdb = NULL; - if (!hfd->cache) { - write_log (_T("malloc(%d) failed in hdf_open_target\n"), CACHE_SIZE); - goto end; - } - hfd->handle = xcalloc (struct hardfilehandle, 1); - hfd->handle->f = 0; - write_log (_T("hfd attempting to open: '%s'\n"), name); + hfd->flags = 0; + hfd->drive_empty = 0; + hdf_close (hfd); + hfd->cache = (uae_u8*)malloc (CACHE_SIZE); + hfd->cache_valid = 0; + hfd->virtual_size = 0; + hfd->virtual_rdb = NULL; + if (!hfd->cache) + { + write_log (_T("malloc(%d) failed in hdf_open_target\n"), CACHE_SIZE); + goto end; + } + hfd->handle = xcalloc (struct hardfilehandle, 1); + hfd->handle->f = 0; + write_log (_T("hfd attempting to open: '%s'\n"), name); - ext = _tcsrchr (name, '.'); - if (ext != NULL) { - ext++; - for (i = 0; hdz[i]; i++) { - if (!_tcsicmp (ext, hdz[i])) - zmode = 1; - } - } - f = fopen(name, (hfd->readonly ? "rb" : "r+b")); - hfd->handle->f = f; - i = _tcslen (name) - 1; - while (i >= 0) { - if ((i > 0 && (name[i - 1] == '/' || name[i - 1] == '\\')) || i == 0) { - _tcscpy (hfd->vendor_id, _T("UAE")); - _tcsncpy (hfd->product_id, name + i, 15); - _tcscpy (hfd->product_rev, _T("0.3")); - break; - } - i--; - } - if (f != NULL) { - uae_s64 pos = ftell(f); - fseek(f, 0, SEEK_END); - uae_s64 size = ftell(f); - fseek(f, pos, SEEK_SET); + ext = _tcsrchr (name, '.'); + if (ext != NULL) + { + ext++; + for (i = 0; hdz[i]; i++) + { + if (!_tcsicmp (ext, hdz[i])) + zmode = 1; + } + } + f = fopen(name, (hfd->readonly ? "rb" : "r+b")); + hfd->handle->f = f; + i = _tcslen (name) - 1; + while (i >= 0) + { + if ((i > 0 && (name[i - 1] == '/' || name[i - 1] == '\\')) || i == 0) + { + _tcscpy (hfd->vendor_id, _T("UAE")); + _tcsncpy (hfd->product_id, name + i, 15); + _tcscpy (hfd->product_rev, _T("0.3")); + break; + } + i--; + } + if (f != NULL) + { + uae_s64 pos = ftell(f); + fseek(f, 0, SEEK_END); + uae_s64 size = ftell(f); + fseek(f, pos, SEEK_SET); - size &= ~(hfd->blocksize - 1); - hfd->physsize = hfd->virtsize = size; - if (hfd->physsize < hfd->blocksize || hfd->physsize == 0) { - write_log (_T("HDF '%s' is too small\n"), name); - goto end; - } - hfd->handle_valid = HDF_HANDLE_FILE; - if (hfd->physsize < 64 * 1024 * 1024 && zmode) { - write_log (_T("HDF '%s' re-opened in zfile-mode\n"), name); - fclose (f); - hfd->handle->f = 0; - hfd->handle->zf = zfile_fopen (name, _T("rb"), ZFD_NORMAL); - hfd->handle->zfile = 1; - if (!hfd->handle->zf) - goto end; - zfile_fseek (hfd->handle->zf, 0, SEEK_END); - hfd->physsize = hfd->virtsize = zfile_ftell (hfd->handle->zf); - zfile_fseek (hfd->handle->zf, 0, SEEK_SET); - hfd->handle_valid = HDF_HANDLE_ZFILE; - } - } else { - write_log (_T("HDF '%s' failed to open.\n"), name); - } - if (hfd->handle_valid || hfd->drive_empty) { - write_log (_T("HDF '%s' %p opened, size=%dK mode=%d empty=%d\n"), - name, hfd, hfd->physsize / 1024, hfd->handle_valid, hfd->drive_empty); - return 1; - } + size &= ~(hfd->blocksize - 1); + hfd->physsize = hfd->virtsize = size; + if (hfd->physsize < hfd->blocksize || hfd->physsize == 0) + { + write_log (_T("HDF '%s' is too small\n"), name); + goto end; + } + hfd->handle_valid = HDF_HANDLE_FILE; + if (hfd->physsize < 64 * 1024 * 1024 && zmode) + { + write_log (_T("HDF '%s' re-opened in zfile-mode\n"), name); + fclose (f); + hfd->handle->f = 0; + hfd->handle->zf = zfile_fopen (name, _T("rb"), ZFD_NORMAL); + hfd->handle->zfile = 1; + if (!hfd->handle->zf) + goto end; + zfile_fseek (hfd->handle->zf, 0, SEEK_END); + hfd->physsize = hfd->virtsize = zfile_ftell (hfd->handle->zf); + zfile_fseek (hfd->handle->zf, 0, SEEK_SET); + hfd->handle_valid = HDF_HANDLE_ZFILE; + } + } + else + { + write_log (_T("HDF '%s' failed to open.\n"), name); + } + if (hfd->handle_valid || hfd->drive_empty) + { + write_log (_T("HDF '%s' %p opened, size=%dK mode=%d empty=%d\n"), + name, hfd, hfd->physsize / 1024, hfd->handle_valid, hfd->drive_empty); + return 1; + } end: - hdf_close (hfd); - xfree (name); - return 0; + hdf_close (hfd); + xfree (name); + return 0; } static void freehandle (struct hardfilehandle *h) { - if (!h) - return; - if (!h->zfile && h->f != 0) - fclose (h->f); - if (h->zfile && h->zf) - zfile_fclose (h->zf); - h->zf = NULL; - h->f = 0; - h->zfile = 0; + if (!h) + return; + if (!h->zfile && h->f != 0) + fclose (h->f); + if (h->zfile && h->zf) + zfile_fclose (h->zf); + h->zf = NULL; + h->f = 0; + h->zfile = 0; } void hdf_close_target (struct hardfiledata *hfd) { - freehandle (hfd->handle); - xfree (hfd->handle); - xfree (hfd->emptyname); - hfd->emptyname = NULL; - hfd->handle = NULL; - hfd->handle_valid = 0; - if (hfd->cache) - free (hfd->cache); - xfree(hfd->virtual_rdb); - hfd->virtual_rdb = 0; - hfd->virtual_size = 0; - hfd->cache = 0; - hfd->cache_valid = 0; - hfd->drive_empty = 0; - hfd->dangerous = 0; + freehandle (hfd->handle); + xfree (hfd->handle); + xfree (hfd->emptyname); + hfd->emptyname = NULL; + hfd->handle = NULL; + hfd->handle_valid = 0; + if (hfd->cache) + free (hfd->cache); + xfree(hfd->virtual_rdb); + hfd->virtual_rdb = 0; + hfd->virtual_size = 0; + hfd->cache = 0; + hfd->cache_valid = 0; + hfd->drive_empty = 0; + hfd->dangerous = 0; } static int hdf_seek (struct hardfiledata *hfd, uae_u64 offset) { - int ret; + int ret; - if (hfd->handle_valid == 0) { - gui_message (_T("hd: hdf handle is not valid. bug.")); - abort(); - } - if (offset >= hfd->physsize - hfd->virtual_size) { - gui_message (_T("hd: tried to seek out of bounds! (%I64X >= %I64X)\n"), offset, hfd->physsize); - abort (); - } - offset += hfd->offset; - if (offset & (hfd->blocksize - 1)) { - gui_message (_T("hd: poscheck failed, offset=%I64X not aligned to blocksize=%d! (%I64X & %04X = %04X)\n"), - offset, hfd->blocksize, offset, hfd->blocksize, offset & (hfd->blocksize - 1)); - abort (); - } - if (hfd->handle_valid == HDF_HANDLE_FILE) { - ret = fseek (hfd->handle->f, offset, SEEK_SET); - if (ret != 0) - return -1; - } else if (hfd->handle_valid == HDF_HANDLE_ZFILE) { - zfile_fseek (hfd->handle->zf, (long)offset, SEEK_SET); - } - return 0; + if (hfd->handle_valid == 0) + { + gui_message (_T("hd: hdf handle is not valid. bug.")); + abort(); + } + if (offset >= hfd->physsize - hfd->virtual_size) + { + gui_message (_T("hd: tried to seek out of bounds! (%I64X >= %I64X)\n"), offset, hfd->physsize); + abort (); + } + offset += hfd->offset; + if (offset & (hfd->blocksize - 1)) + { + gui_message (_T("hd: poscheck failed, offset=%I64X not aligned to blocksize=%d! (%I64X & %04X = %04X)\n"), + offset, hfd->blocksize, offset, hfd->blocksize, offset & (hfd->blocksize - 1)); + abort (); + } + if (hfd->handle_valid == HDF_HANDLE_FILE) + { + ret = fseek (hfd->handle->f, offset, SEEK_SET); + if (ret != 0) + return -1; + } + else if (hfd->handle_valid == HDF_HANDLE_ZFILE) + { + zfile_fseek (hfd->handle->zf, (long)offset, SEEK_SET); + } + return 0; } static void poscheck (struct hardfiledata *hfd, int len) { - uae_u64 pos; + uae_u64 pos; - if (hfd->handle_valid == HDF_HANDLE_FILE) { - pos = ftell (hfd->handle->f); - if (pos == -1) { - gui_message (_T("hd: poscheck failed. seek failure")); - abort (); - } - } else if (hfd->handle_valid == HDF_HANDLE_ZFILE) { - pos = zfile_ftell (hfd->handle->zf); - } - if (len < 0) { - gui_message (_T("hd: poscheck failed, negative length! (%d)"), len); - abort (); - } - if (pos < hfd->offset) { - gui_message (_T("hd: poscheck failed, offset out of bounds! (%I64d < %I64d)"), pos, hfd->offset); - abort (); - } - if (pos >= hfd->offset + hfd->physsize - hfd->virtual_size || pos >= hfd->offset + hfd->physsize + len - hfd->virtual_size) { - gui_message (_T("hd: poscheck failed, offset out of bounds! (%I64d >= %I64d, LEN=%d)"), pos, hfd->offset + hfd->physsize, len); - abort (); - } - if (pos & (hfd->blocksize - 1)) { - gui_message (_T("hd: poscheck failed, offset not aligned to blocksize! (%I64X & %04X = %04X\n"), pos, hfd->blocksize, pos & hfd->blocksize); - abort (); - } + if (hfd->handle_valid == HDF_HANDLE_FILE) + { + pos = ftell (hfd->handle->f); + if (pos == -1) + { + gui_message (_T("hd: poscheck failed. seek failure")); + abort (); + } + } + else if (hfd->handle_valid == HDF_HANDLE_ZFILE) + { + pos = zfile_ftell (hfd->handle->zf); + } + if (len < 0) + { + gui_message (_T("hd: poscheck failed, negative length! (%d)"), len); + abort (); + } + if (pos < hfd->offset) + { + gui_message (_T("hd: poscheck failed, offset out of bounds! (%I64d < %I64d)"), pos, hfd->offset); + abort (); + } + if (pos >= hfd->offset + hfd->physsize - hfd->virtual_size || pos >= hfd->offset + hfd->physsize + len - hfd->virtual_size) + { + gui_message (_T("hd: poscheck failed, offset out of bounds! (%I64d >= %I64d, LEN=%d)"), pos, hfd->offset + hfd->physsize, len); + abort (); + } + if (pos & (hfd->blocksize - 1)) + { + gui_message (_T("hd: poscheck failed, offset not aligned to blocksize! (%I64X & %04X = %04X\n"), pos, hfd->blocksize, pos & hfd->blocksize); + abort (); + } } static int isincache (struct hardfiledata *hfd, uae_u64 offset, int len) { - if (!hfd->cache_valid) - return -1; - if (offset >= hfd->cache_offset && offset + len <= hfd->cache_offset + CACHE_SIZE) - return (int)(offset - hfd->cache_offset); - return -1; + if (!hfd->cache_valid) + return -1; + if (offset >= hfd->cache_offset && offset + len <= hfd->cache_offset + CACHE_SIZE) + return (int)(offset - hfd->cache_offset); + return -1; } static int hdf_read_2 (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len) { - int outlen = 0; - int coffset; + int outlen = 0; + int coffset; - if (offset == 0) - hfd->cache_valid = 0; - coffset = isincache (hfd, offset, len); - if (coffset >= 0) { - memcpy (buffer, hfd->cache + coffset, len); - return len; - } - hfd->cache_offset = offset; - if (offset + CACHE_SIZE > hfd->offset + (hfd->physsize - hfd->virtual_size)) - hfd->cache_offset = hfd->offset + (hfd->physsize - hfd->virtual_size) - CACHE_SIZE; - hdf_seek (hfd, hfd->cache_offset); - poscheck (hfd, CACHE_SIZE); - if (hfd->handle_valid == HDF_HANDLE_FILE) - outlen = fread(hfd->cache, 1, CACHE_SIZE, hfd->handle->f); - else if (hfd->handle_valid == HDF_HANDLE_ZFILE) - outlen = zfile_fread (hfd->cache, 1, CACHE_SIZE, hfd->handle->zf); - hfd->cache_valid = 0; - if (outlen != CACHE_SIZE) - return 0; - hfd->cache_valid = 1; - coffset = isincache (hfd, offset, len); - if (coffset >= 0) { - memcpy (buffer, hfd->cache + coffset, len); - return len; - } - write_log (_T("hdf_read: cache bug! offset=%I64d len=%d\n"), offset, len); - hfd->cache_valid = 0; - return 0; + if (offset == 0) + hfd->cache_valid = 0; + coffset = isincache (hfd, offset, len); + if (coffset >= 0) + { + memcpy (buffer, hfd->cache + coffset, len); + return len; + } + hfd->cache_offset = offset; + if (offset + CACHE_SIZE > hfd->offset + (hfd->physsize - hfd->virtual_size)) + hfd->cache_offset = hfd->offset + (hfd->physsize - hfd->virtual_size) - CACHE_SIZE; + hdf_seek (hfd, hfd->cache_offset); + poscheck (hfd, CACHE_SIZE); + if (hfd->handle_valid == HDF_HANDLE_FILE) + outlen = fread(hfd->cache, 1, CACHE_SIZE, hfd->handle->f); + else if (hfd->handle_valid == HDF_HANDLE_ZFILE) + outlen = zfile_fread (hfd->cache, 1, CACHE_SIZE, hfd->handle->zf); + hfd->cache_valid = 0; + if (outlen != CACHE_SIZE) + return 0; + hfd->cache_valid = 1; + coffset = isincache (hfd, offset, len); + if (coffset >= 0) + { + memcpy (buffer, hfd->cache + coffset, len); + return len; + } + write_log (_T("hdf_read: cache bug! offset=%I64d len=%d\n"), offset, len); + hfd->cache_valid = 0; + return 0; } int hdf_read_target (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len) { - int got = 0; - uae_u8 *p = (uae_u8*)buffer; + int got = 0; + uae_u8 *p = (uae_u8*)buffer; - if (hfd->drive_empty) - return 0; - if (offset < hfd->virtual_size) { - uae_u64 len2 = offset + len <= hfd->virtual_size ? len : hfd->virtual_size - offset; - if (!hfd->virtual_rdb) - return 0; - memcpy (buffer, hfd->virtual_rdb + offset, len2); - return len2; - } - offset -= hfd->virtual_size; - while (len > 0) { - int maxlen; - int ret; - if (hfd->physsize < CACHE_SIZE) { - hfd->cache_valid = 0; - hdf_seek (hfd, offset); - poscheck (hfd, len); - if (hfd->handle_valid == HDF_HANDLE_FILE) { - ret = fread (hfd->cache, 1, len, hfd->handle->f); - memcpy (buffer, hfd->cache, ret); - } else if (hfd->handle_valid == HDF_HANDLE_ZFILE) { - ret = zfile_fread (buffer, 1, len, hfd->handle->zf); - } - maxlen = len; - } else { - maxlen = len > CACHE_SIZE ? CACHE_SIZE : len; - ret = hdf_read_2 (hfd, p, offset, maxlen); - } - got += ret; - if (ret != maxlen) - return got; - offset += maxlen; - p += maxlen; - len -= maxlen; - } - return got; + if (hfd->drive_empty) + return 0; + if (offset < hfd->virtual_size) + { + uae_u64 len2 = offset + len <= hfd->virtual_size ? len : hfd->virtual_size - offset; + if (!hfd->virtual_rdb) + return 0; + memcpy (buffer, hfd->virtual_rdb + offset, len2); + return len2; + } + offset -= hfd->virtual_size; + while (len > 0) + { + int maxlen; + int ret; + if (hfd->physsize < CACHE_SIZE) + { + hfd->cache_valid = 0; + hdf_seek (hfd, offset); + poscheck (hfd, len); + if (hfd->handle_valid == HDF_HANDLE_FILE) + { + ret = fread (hfd->cache, 1, len, hfd->handle->f); + memcpy (buffer, hfd->cache, ret); + } + else if (hfd->handle_valid == HDF_HANDLE_ZFILE) + { + ret = zfile_fread (buffer, 1, len, hfd->handle->zf); + } + maxlen = len; + } + else + { + maxlen = len > CACHE_SIZE ? CACHE_SIZE : len; + ret = hdf_read_2 (hfd, p, offset, maxlen); + } + got += ret; + if (ret != maxlen) + return got; + offset += maxlen; + p += maxlen; + len -= maxlen; + } + return got; } static int hdf_write_2 (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len) { - int outlen = 0; + int outlen = 0; - if (hfd->readonly) - return 0; - if (hfd->dangerous) - return 0; - hfd->cache_valid = 0; - hdf_seek (hfd, offset); - poscheck (hfd, len); - memcpy (hfd->cache, buffer, len); - if (hfd->handle_valid == HDF_HANDLE_FILE) { - TCHAR *name = hfd->emptyname == NULL ? (char *) _T("") : hfd->emptyname; - outlen = fwrite (hfd->cache, 1, len, hfd->handle->f); - if (offset == 0) { - int outlen2; - uae_u8 *tmp; - int tmplen = 512; - tmp = (uae_u8*)malloc (tmplen); - if (tmp) { - memset (tmp, 0xa1, tmplen); - hdf_seek (hfd, offset); - outlen2 = fread (tmp, 1, tmplen, hfd->handle->f); - if (memcmp (hfd->cache, tmp, tmplen) != 0 || outlen != len) - gui_message (_T("\"%s\"\n\nblock zero write failed!"), name); - free (tmp); - } - } - } else if (hfd->handle_valid == HDF_HANDLE_ZFILE) { - outlen = zfile_fwrite (hfd->cache, 1, len, hfd->handle->zf); - } - return outlen; + if (hfd->readonly) + return 0; + if (hfd->dangerous) + return 0; + hfd->cache_valid = 0; + hdf_seek (hfd, offset); + poscheck (hfd, len); + memcpy (hfd->cache, buffer, len); + if (hfd->handle_valid == HDF_HANDLE_FILE) + { + TCHAR *name = hfd->emptyname == NULL ? (char *) _T("") : hfd->emptyname; + outlen = fwrite (hfd->cache, 1, len, hfd->handle->f); + if (offset == 0) + { + int outlen2; + uae_u8 *tmp; + int tmplen = 512; + tmp = (uae_u8*)malloc (tmplen); + if (tmp) + { + memset (tmp, 0xa1, tmplen); + hdf_seek (hfd, offset); + outlen2 = fread (tmp, 1, tmplen, hfd->handle->f); + if (memcmp (hfd->cache, tmp, tmplen) != 0 || outlen != len) + gui_message (_T("\"%s\"\n\nblock zero write failed!"), name); + free (tmp); + } + } + } + else if (hfd->handle_valid == HDF_HANDLE_ZFILE) + { + outlen = zfile_fwrite (hfd->cache, 1, len, hfd->handle->zf); + } + return outlen; } int hdf_write_target (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len) { - int got = 0; - uae_u8 *p = (uae_u8*)buffer; + int got = 0; + uae_u8 *p = (uae_u8*)buffer; - if (hfd->drive_empty) - return 0; - if (offset < hfd->virtual_size) - return len; - offset -= hfd->virtual_size; - while (len > 0) { - int maxlen = len > CACHE_SIZE ? CACHE_SIZE : len; - int ret = hdf_write_2 (hfd, p, offset, maxlen); - if (ret < 0) - return ret; - got += ret; - if (ret != maxlen) - return got; - offset += maxlen; - p += maxlen; - len -= maxlen; - } - return got; + if (hfd->drive_empty) + return 0; + if (offset < hfd->virtual_size) + return len; + offset -= hfd->virtual_size; + while (len > 0) + { + int maxlen = len > CACHE_SIZE ? CACHE_SIZE : len; + int ret = hdf_write_2 (hfd, p, offset, maxlen); + if (ret < 0) + return ret; + got += ret; + if (ret != maxlen) + return got; + offset += maxlen; + p += maxlen; + len -= maxlen; + } + return got; } diff --git a/src/od-pandora/keyboard.cpp b/src/od-pandora/keyboard.cpp index ce029ea2..527311b0 100644 --- a/src/od-pandora/keyboard.cpp +++ b/src/od-pandora/keyboard.cpp @@ -3,7 +3,7 @@ #include "config.h" #include "options.h" #include "uae.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "xwin.h" @@ -17,547 +17,568 @@ char keyboard_type = 0; -static struct uae_input_device_kbr_default keytrans_amiga_x11[] = { +static struct uae_input_device_kbr_default keytrans_amiga_x11[] = +{ - { 9 , INPUTEVENT_KEY_ESC}, - { 67, INPUTEVENT_KEY_F1}, - { 68, INPUTEVENT_KEY_F2}, - { 69, INPUTEVENT_KEY_F3}, - { 70, INPUTEVENT_KEY_F4}, - { 71, INPUTEVENT_KEY_F5}, - { 72, INPUTEVENT_KEY_F6}, - { 73, INPUTEVENT_KEY_F7}, - { 74, INPUTEVENT_KEY_F8}, - { 75, INPUTEVENT_KEY_F9}, - { 76, INPUTEVENT_KEY_F10}, + { 9, INPUTEVENT_KEY_ESC}, + { 67, INPUTEVENT_KEY_F1}, + { 68, INPUTEVENT_KEY_F2}, + { 69, INPUTEVENT_KEY_F3}, + { 70, INPUTEVENT_KEY_F4}, + { 71, INPUTEVENT_KEY_F5}, + { 72, INPUTEVENT_KEY_F6}, + { 73, INPUTEVENT_KEY_F7}, + { 74, INPUTEVENT_KEY_F8}, + { 75, INPUTEVENT_KEY_F9}, + { 76, INPUTEVENT_KEY_F10}, //{ 95, INPUTEVENT_KEY_F11}, //{ 96, INPUTEVENT_KEY_F12}, - { 49, INPUTEVENT_KEY_BACKQUOTE}, + { 49, INPUTEVENT_KEY_BACKQUOTE}, - { 10, INPUTEVENT_KEY_1}, - { 11, INPUTEVENT_KEY_2}, - { 12, INPUTEVENT_KEY_3}, - { 13, INPUTEVENT_KEY_4}, - { 14, INPUTEVENT_KEY_5}, - { 15, INPUTEVENT_KEY_6}, - { 16, INPUTEVENT_KEY_7}, - { 17, INPUTEVENT_KEY_8}, - { 18, INPUTEVENT_KEY_9}, - { 19, INPUTEVENT_KEY_0}, - { 20, INPUTEVENT_KEY_SUB}, - { 21, INPUTEVENT_KEY_EQUALS}, - { 22, INPUTEVENT_KEY_BACKSPACE}, + { 10, INPUTEVENT_KEY_1}, + { 11, INPUTEVENT_KEY_2}, + { 12, INPUTEVENT_KEY_3}, + { 13, INPUTEVENT_KEY_4}, + { 14, INPUTEVENT_KEY_5}, + { 15, INPUTEVENT_KEY_6}, + { 16, INPUTEVENT_KEY_7}, + { 17, INPUTEVENT_KEY_8}, + { 18, INPUTEVENT_KEY_9}, + { 19, INPUTEVENT_KEY_0}, + { 20, INPUTEVENT_KEY_SUB}, + { 21, INPUTEVENT_KEY_EQUALS}, + { 22, INPUTEVENT_KEY_BACKSPACE}, - { 23, INPUTEVENT_KEY_TAB}, - { 24, INPUTEVENT_KEY_Q}, - { 25, INPUTEVENT_KEY_W}, - { 26, INPUTEVENT_KEY_E}, - { 27, INPUTEVENT_KEY_R}, - { 28, INPUTEVENT_KEY_T}, - { 29, INPUTEVENT_KEY_Y}, - { 30, INPUTEVENT_KEY_U}, - { 31, INPUTEVENT_KEY_I}, - { 32, INPUTEVENT_KEY_O}, - { 33, INPUTEVENT_KEY_P}, - { 34, INPUTEVENT_KEY_LEFTBRACKET}, - { 35, INPUTEVENT_KEY_RIGHTBRACKET}, - { 36, INPUTEVENT_KEY_RETURN}, + { 23, INPUTEVENT_KEY_TAB}, + { 24, INPUTEVENT_KEY_Q}, + { 25, INPUTEVENT_KEY_W}, + { 26, INPUTEVENT_KEY_E}, + { 27, INPUTEVENT_KEY_R}, + { 28, INPUTEVENT_KEY_T}, + { 29, INPUTEVENT_KEY_Y}, + { 30, INPUTEVENT_KEY_U}, + { 31, INPUTEVENT_KEY_I}, + { 32, INPUTEVENT_KEY_O}, + { 33, INPUTEVENT_KEY_P}, + { 34, INPUTEVENT_KEY_LEFTBRACKET}, + { 35, INPUTEVENT_KEY_RIGHTBRACKET}, + { 36, INPUTEVENT_KEY_RETURN}, - { 66, INPUTEVENT_KEY_CAPS_LOCK}, - { 38, INPUTEVENT_KEY_A}, - { 39, INPUTEVENT_KEY_S}, - { 40, INPUTEVENT_KEY_D}, - { 41, INPUTEVENT_KEY_F}, - { 42, INPUTEVENT_KEY_G}, - { 43, INPUTEVENT_KEY_H}, - { 44, INPUTEVENT_KEY_J}, - { 45, INPUTEVENT_KEY_K}, - { 46, INPUTEVENT_KEY_L}, - { 47, INPUTEVENT_KEY_SEMICOLON}, - { 48, INPUTEVENT_KEY_SINGLEQUOTE}, - { 51, INPUTEVENT_KEY_BACKSLASH}, + { 66, INPUTEVENT_KEY_CAPS_LOCK}, + { 38, INPUTEVENT_KEY_A}, + { 39, INPUTEVENT_KEY_S}, + { 40, INPUTEVENT_KEY_D}, + { 41, INPUTEVENT_KEY_F}, + { 42, INPUTEVENT_KEY_G}, + { 43, INPUTEVENT_KEY_H}, + { 44, INPUTEVENT_KEY_J}, + { 45, INPUTEVENT_KEY_K}, + { 46, INPUTEVENT_KEY_L}, + { 47, INPUTEVENT_KEY_SEMICOLON}, + { 48, INPUTEVENT_KEY_SINGLEQUOTE}, + { 51, INPUTEVENT_KEY_BACKSLASH}, - { 50, INPUTEVENT_KEY_SHIFT_LEFT}, - { 94, INPUTEVENT_KEY_LTGT}, - { 52, INPUTEVENT_KEY_Z}, - { 53, INPUTEVENT_KEY_X}, - { 54, INPUTEVENT_KEY_C}, - { 55, INPUTEVENT_KEY_V}, - { 56, INPUTEVENT_KEY_B}, - { 57, INPUTEVENT_KEY_N}, - { 58, INPUTEVENT_KEY_M}, - { 59, INPUTEVENT_KEY_COMMA}, - { 60, INPUTEVENT_KEY_PERIOD}, - { 61, INPUTEVENT_KEY_DIV}, - { 62, INPUTEVENT_KEY_SHIFT_RIGHT}, + { 50, INPUTEVENT_KEY_SHIFT_LEFT}, + { 94, INPUTEVENT_KEY_LTGT}, + { 52, INPUTEVENT_KEY_Z}, + { 53, INPUTEVENT_KEY_X}, + { 54, INPUTEVENT_KEY_C}, + { 55, INPUTEVENT_KEY_V}, + { 56, INPUTEVENT_KEY_B}, + { 57, INPUTEVENT_KEY_N}, + { 58, INPUTEVENT_KEY_M}, + { 59, INPUTEVENT_KEY_COMMA}, + { 60, INPUTEVENT_KEY_PERIOD}, + { 61, INPUTEVENT_KEY_DIV}, + { 62, INPUTEVENT_KEY_SHIFT_RIGHT}, - { 37, INPUTEVENT_KEY_CTRL}, - { 64, INPUTEVENT_KEY_ALT_LEFT}, - { 65, INPUTEVENT_KEY_SPACE}, + { 37, INPUTEVENT_KEY_CTRL}, + { 64, INPUTEVENT_KEY_ALT_LEFT}, + { 65, INPUTEVENT_KEY_SPACE}, - { 108, INPUTEVENT_KEY_ALT_RIGHT}, + { 108, INPUTEVENT_KEY_ALT_RIGHT}, //{ 78, INPUTEVENT_KEY_SCROLLOCK}, //{ 77, INPUTEVENT_KEY_NUMLOCK}, - { 106, INPUTEVENT_KEY_NP_DIV}, - { 63, INPUTEVENT_KEY_NP_MUL}, - { 82, INPUTEVENT_KEY_NP_SUB}, + { 106, INPUTEVENT_KEY_NP_DIV}, + { 63, INPUTEVENT_KEY_NP_MUL}, + { 82, INPUTEVENT_KEY_NP_SUB}, - { 79, INPUTEVENT_KEY_NP_7}, - { 80, INPUTEVENT_KEY_NP_8}, - { 81, INPUTEVENT_KEY_NP_9}, - { 86, INPUTEVENT_KEY_NP_ADD}, + { 79, INPUTEVENT_KEY_NP_7}, + { 80, INPUTEVENT_KEY_NP_8}, + { 81, INPUTEVENT_KEY_NP_9}, + { 86, INPUTEVENT_KEY_NP_ADD}, - { 83, INPUTEVENT_KEY_NP_4}, - { 84, INPUTEVENT_KEY_NP_5}, - { 85, INPUTEVENT_KEY_NP_6}, + { 83, INPUTEVENT_KEY_NP_4}, + { 84, INPUTEVENT_KEY_NP_5}, + { 85, INPUTEVENT_KEY_NP_6}, - { 87, INPUTEVENT_KEY_NP_1}, - { 88, INPUTEVENT_KEY_NP_2}, - { 89, INPUTEVENT_KEY_NP_3}, - { 104, INPUTEVENT_KEY_ENTER}, // The ENT from keypad.. + { 87, INPUTEVENT_KEY_NP_1}, + { 88, INPUTEVENT_KEY_NP_2}, + { 89, INPUTEVENT_KEY_NP_3}, + { 104, INPUTEVENT_KEY_ENTER}, // The ENT from keypad.. - { 90, INPUTEVENT_KEY_NP_0}, - { 91, INPUTEVENT_KEY_NP_PERIOD}, + { 90, INPUTEVENT_KEY_NP_0}, + { 91, INPUTEVENT_KEY_NP_PERIOD}, - { 111, INPUTEVENT_KEY_CURSOR_UP}, - { 113, INPUTEVENT_KEY_CURSOR_LEFT}, - { 116, INPUTEVENT_KEY_CURSOR_DOWN}, - { 114, INPUTEVENT_KEY_CURSOR_RIGHT}, + { 111, INPUTEVENT_KEY_CURSOR_UP}, + { 113, INPUTEVENT_KEY_CURSOR_LEFT}, + { 116, INPUTEVENT_KEY_CURSOR_DOWN}, + { 114, INPUTEVENT_KEY_CURSOR_RIGHT}, - { 133, INPUTEVENT_KEY_AMIGA_LEFT}, // Left amiga mapped to left Windows - { 134, INPUTEVENT_KEY_AMIGA_RIGHT}, // Right amiga mapped to right windows key. - { 135, INPUTEVENT_KEY_AMIGA_RIGHT}, // Right amiga mapped to Menu key. - { -1, 0 } - }; + { 133, INPUTEVENT_KEY_AMIGA_LEFT}, // Left amiga mapped to left Windows + { 134, INPUTEVENT_KEY_AMIGA_RIGHT}, // Right amiga mapped to right windows key. + { 135, INPUTEVENT_KEY_AMIGA_RIGHT}, // Right amiga mapped to Menu key. + { -1, 0 } +}; -static struct uae_input_device_kbr_default keytrans_amiga_fbcon[] = { +static struct uae_input_device_kbr_default keytrans_amiga_fbcon[] = +{ - { 9 -8 , INPUTEVENT_KEY_ESC}, - { 67 -8 , INPUTEVENT_KEY_F1}, - { 68 -8 , INPUTEVENT_KEY_F2}, - { 69 -8 , INPUTEVENT_KEY_F3}, - { 70 -8 , INPUTEVENT_KEY_F4}, - { 71 -8 , INPUTEVENT_KEY_F5}, - { 72 -8 , INPUTEVENT_KEY_F6}, - { 73 -8 , INPUTEVENT_KEY_F7}, - { 74 -8 , INPUTEVENT_KEY_F8}, - { 75 -8 , INPUTEVENT_KEY_F9}, - { 76 -8 , INPUTEVENT_KEY_F10}, + { 9 -8, INPUTEVENT_KEY_ESC}, + { 67 -8, INPUTEVENT_KEY_F1}, + { 68 -8, INPUTEVENT_KEY_F2}, + { 69 -8, INPUTEVENT_KEY_F3}, + { 70 -8, INPUTEVENT_KEY_F4}, + { 71 -8, INPUTEVENT_KEY_F5}, + { 72 -8, INPUTEVENT_KEY_F6}, + { 73 -8, INPUTEVENT_KEY_F7}, + { 74 -8, INPUTEVENT_KEY_F8}, + { 75 -8, INPUTEVENT_KEY_F9}, + { 76 -8, INPUTEVENT_KEY_F10}, // { 95 -8 , INPUTEVENT_KEY_F11}, // { 96 -8 , INPUTEVENT_KEY_F12}, - { 49 -8 , INPUTEVENT_KEY_BACKQUOTE}, + { 49 -8, INPUTEVENT_KEY_BACKQUOTE}, - { 10 -8 , INPUTEVENT_KEY_1}, - { 11 -8 , INPUTEVENT_KEY_2}, - { 12 -8 , INPUTEVENT_KEY_3}, - { 13 -8 , INPUTEVENT_KEY_4}, - { 14 -8 , INPUTEVENT_KEY_5}, - { 15 -8 , INPUTEVENT_KEY_6}, - { 16 -8 , INPUTEVENT_KEY_7}, - { 17 -8 , INPUTEVENT_KEY_8}, - { 18 -8 , INPUTEVENT_KEY_9}, - { 19 -8 , INPUTEVENT_KEY_0}, - { 20 -8 , INPUTEVENT_KEY_SUB}, - { 21 -8 , INPUTEVENT_KEY_EQUALS}, - { 22 -8 , INPUTEVENT_KEY_BACKSPACE}, + { 10 -8, INPUTEVENT_KEY_1}, + { 11 -8, INPUTEVENT_KEY_2}, + { 12 -8, INPUTEVENT_KEY_3}, + { 13 -8, INPUTEVENT_KEY_4}, + { 14 -8, INPUTEVENT_KEY_5}, + { 15 -8, INPUTEVENT_KEY_6}, + { 16 -8, INPUTEVENT_KEY_7}, + { 17 -8, INPUTEVENT_KEY_8}, + { 18 -8, INPUTEVENT_KEY_9}, + { 19 -8, INPUTEVENT_KEY_0}, + { 20 -8, INPUTEVENT_KEY_SUB}, + { 21 -8, INPUTEVENT_KEY_EQUALS}, + { 22 -8, INPUTEVENT_KEY_BACKSPACE}, - { 23 -8 , INPUTEVENT_KEY_TAB}, - { 24 -8 , INPUTEVENT_KEY_Q}, - { 25 -8 , INPUTEVENT_KEY_W}, - { 26 -8 , INPUTEVENT_KEY_E}, - { 27 -8 , INPUTEVENT_KEY_R}, - { 28 -8 , INPUTEVENT_KEY_T}, - { 29 -8 , INPUTEVENT_KEY_Y}, - { 30 -8 , INPUTEVENT_KEY_U}, - { 31 -8 , INPUTEVENT_KEY_I}, - { 32 -8 , INPUTEVENT_KEY_O}, - { 33 -8 , INPUTEVENT_KEY_P}, - { 34 -8 , INPUTEVENT_KEY_LEFTBRACKET}, - { 35 -8 , INPUTEVENT_KEY_RIGHTBRACKET}, - { 36 -8 , INPUTEVENT_KEY_RETURN}, + { 23 -8, INPUTEVENT_KEY_TAB}, + { 24 -8, INPUTEVENT_KEY_Q}, + { 25 -8, INPUTEVENT_KEY_W}, + { 26 -8, INPUTEVENT_KEY_E}, + { 27 -8, INPUTEVENT_KEY_R}, + { 28 -8, INPUTEVENT_KEY_T}, + { 29 -8, INPUTEVENT_KEY_Y}, + { 30 -8, INPUTEVENT_KEY_U}, + { 31 -8, INPUTEVENT_KEY_I}, + { 32 -8, INPUTEVENT_KEY_O}, + { 33 -8, INPUTEVENT_KEY_P}, + { 34 -8, INPUTEVENT_KEY_LEFTBRACKET}, + { 35 -8, INPUTEVENT_KEY_RIGHTBRACKET}, + { 36 -8, INPUTEVENT_KEY_RETURN}, - { 66 -8 , INPUTEVENT_KEY_CAPS_LOCK}, - { 38 -8 , INPUTEVENT_KEY_A}, - { 39 -8 , INPUTEVENT_KEY_S}, - { 40 -8 , INPUTEVENT_KEY_D}, - { 41 -8 , INPUTEVENT_KEY_F}, - { 42 -8 , INPUTEVENT_KEY_G}, - { 43 -8 , INPUTEVENT_KEY_H}, - { 44 -8 , INPUTEVENT_KEY_J}, - { 45 -8 , INPUTEVENT_KEY_K}, - { 46 -8 , INPUTEVENT_KEY_L}, - { 47 -8 , INPUTEVENT_KEY_SEMICOLON}, - { 48 -8 , INPUTEVENT_KEY_SINGLEQUOTE}, - { 51 -8 , INPUTEVENT_KEY_BACKSLASH}, + { 66 -8, INPUTEVENT_KEY_CAPS_LOCK}, + { 38 -8, INPUTEVENT_KEY_A}, + { 39 -8, INPUTEVENT_KEY_S}, + { 40 -8, INPUTEVENT_KEY_D}, + { 41 -8, INPUTEVENT_KEY_F}, + { 42 -8, INPUTEVENT_KEY_G}, + { 43 -8, INPUTEVENT_KEY_H}, + { 44 -8, INPUTEVENT_KEY_J}, + { 45 -8, INPUTEVENT_KEY_K}, + { 46 -8, INPUTEVENT_KEY_L}, + { 47 -8, INPUTEVENT_KEY_SEMICOLON}, + { 48 -8, INPUTEVENT_KEY_SINGLEQUOTE}, + { 51 -8, INPUTEVENT_KEY_BACKSLASH}, - { 50 -8 , INPUTEVENT_KEY_SHIFT_LEFT}, - { 94 -8 , INPUTEVENT_KEY_LTGT}, - { 52 -8 , INPUTEVENT_KEY_Z}, - { 53 -8 , INPUTEVENT_KEY_X}, - { 54 -8 , INPUTEVENT_KEY_C}, - { 55 -8 , INPUTEVENT_KEY_V}, - { 56 -8 , INPUTEVENT_KEY_B}, - { 57 -8 , INPUTEVENT_KEY_N}, - { 58 -8 , INPUTEVENT_KEY_M}, - { 59 -8 , INPUTEVENT_KEY_COMMA}, - { 60 -8 , INPUTEVENT_KEY_PERIOD}, - { 61 -8 , INPUTEVENT_KEY_DIV}, - { 62 -8 , INPUTEVENT_KEY_SHIFT_RIGHT}, + { 50 -8, INPUTEVENT_KEY_SHIFT_LEFT}, + { 94 -8, INPUTEVENT_KEY_LTGT}, + { 52 -8, INPUTEVENT_KEY_Z}, + { 53 -8, INPUTEVENT_KEY_X}, + { 54 -8, INPUTEVENT_KEY_C}, + { 55 -8, INPUTEVENT_KEY_V}, + { 56 -8, INPUTEVENT_KEY_B}, + { 57 -8, INPUTEVENT_KEY_N}, + { 58 -8, INPUTEVENT_KEY_M}, + { 59 -8, INPUTEVENT_KEY_COMMA}, + { 60 -8, INPUTEVENT_KEY_PERIOD}, + { 61 -8, INPUTEVENT_KEY_DIV}, + { 62 -8, INPUTEVENT_KEY_SHIFT_RIGHT}, - { 37 -8 , INPUTEVENT_KEY_CTRL}, - { 64 -8 , INPUTEVENT_KEY_ALT_LEFT}, - { 65 -8 , INPUTEVENT_KEY_SPACE}, + { 37 -8, INPUTEVENT_KEY_CTRL}, + { 64 -8, INPUTEVENT_KEY_ALT_LEFT}, + { 65 -8, INPUTEVENT_KEY_SPACE}, - { 108 -8 , INPUTEVENT_KEY_ALT_RIGHT}, + { 108 -8, INPUTEVENT_KEY_ALT_RIGHT}, //{ 78 -8 , INPUTEVENT_KEY_SCROLLOCK}, //{ 77 -8 , INPUTEVENT_KEY_NUMLOCK}, - { 106 -8 , INPUTEVENT_KEY_NP_DIV}, - { 63 -8 , INPUTEVENT_KEY_NP_MUL}, - { 82 -8 , INPUTEVENT_KEY_NP_SUB}, + { 106 -8, INPUTEVENT_KEY_NP_DIV}, + { 63 -8, INPUTEVENT_KEY_NP_MUL}, + { 82 -8, INPUTEVENT_KEY_NP_SUB}, - { 79 -8 , INPUTEVENT_KEY_NP_7}, - { 80 -8 , INPUTEVENT_KEY_NP_8}, - { 81 -8 , INPUTEVENT_KEY_NP_9}, - { 86 -8 , INPUTEVENT_KEY_NP_ADD}, + { 79 -8, INPUTEVENT_KEY_NP_7}, + { 80 -8, INPUTEVENT_KEY_NP_8}, + { 81 -8, INPUTEVENT_KEY_NP_9}, + { 86 -8, INPUTEVENT_KEY_NP_ADD}, - { 83 -8 , INPUTEVENT_KEY_NP_4}, - { 84 -8 , INPUTEVENT_KEY_NP_5}, - { 85 -8 , INPUTEVENT_KEY_NP_6}, + { 83 -8, INPUTEVENT_KEY_NP_4}, + { 84 -8, INPUTEVENT_KEY_NP_5}, + { 85 -8, INPUTEVENT_KEY_NP_6}, - { 87 -8 , INPUTEVENT_KEY_NP_1}, - { 88 -8 , INPUTEVENT_KEY_NP_2}, - { 89 -8 , INPUTEVENT_KEY_NP_3}, - { 104 -8 , INPUTEVENT_KEY_ENTER}, // The ENT from keypad.. + { 87 -8, INPUTEVENT_KEY_NP_1}, + { 88 -8, INPUTEVENT_KEY_NP_2}, + { 89 -8, INPUTEVENT_KEY_NP_3}, + { 104 -8, INPUTEVENT_KEY_ENTER}, // The ENT from keypad.. - { 90 -8 , INPUTEVENT_KEY_NP_0}, - { 91 -8 , INPUTEVENT_KEY_PERIOD}, + { 90 -8, INPUTEVENT_KEY_NP_0}, + { 91 -8, INPUTEVENT_KEY_PERIOD}, - { 111 -8, INPUTEVENT_KEY_CURSOR_UP}, - { 113 -8, INPUTEVENT_KEY_CURSOR_LEFT}, - { 116 -8, INPUTEVENT_KEY_CURSOR_DOWN}, - { 114 -8, INPUTEVENT_KEY_CURSOR_RIGHT}, + { 111 -8, INPUTEVENT_KEY_CURSOR_UP}, + { 113 -8, INPUTEVENT_KEY_CURSOR_LEFT}, + { 116 -8, INPUTEVENT_KEY_CURSOR_DOWN}, + { 114 -8, INPUTEVENT_KEY_CURSOR_RIGHT}, - { 133 -8 , INPUTEVENT_KEY_AMIGA_LEFT}, // Left amiga mapped to left Windows - { 134 -8 , INPUTEVENT_KEY_AMIGA_RIGHT}, // Right amiga mapped to right windows key. - { 135 -8 , INPUTEVENT_KEY_AMIGA_RIGHT}, // Right amiga mapped to Menu key. - { -1, 0 } - }; - - -static struct uae_input_device_kbr_default keytrans_amiga[] = { - - { SDLK_a, INPUTEVENT_KEY_A }, - { SDLK_b, INPUTEVENT_KEY_B }, - { SDLK_c, INPUTEVENT_KEY_C }, - { SDLK_d, INPUTEVENT_KEY_D }, - { SDLK_e, INPUTEVENT_KEY_E }, - { SDLK_f, INPUTEVENT_KEY_F }, - { SDLK_g, INPUTEVENT_KEY_G }, - { SDLK_h, INPUTEVENT_KEY_H }, - { SDLK_i, INPUTEVENT_KEY_I }, - { SDLK_j, INPUTEVENT_KEY_J }, - { SDLK_k, INPUTEVENT_KEY_K }, - { SDLK_l, INPUTEVENT_KEY_L }, - { SDLK_m, INPUTEVENT_KEY_M }, - { SDLK_n, INPUTEVENT_KEY_N }, - { SDLK_o, INPUTEVENT_KEY_O }, - { SDLK_p, INPUTEVENT_KEY_P }, - { SDLK_q, INPUTEVENT_KEY_Q }, - { SDLK_r, INPUTEVENT_KEY_R }, - { SDLK_s, INPUTEVENT_KEY_S }, - { SDLK_t, INPUTEVENT_KEY_T }, - { SDLK_u, INPUTEVENT_KEY_U }, - { SDLK_v, INPUTEVENT_KEY_W }, - { SDLK_w, INPUTEVENT_KEY_V }, - { SDLK_x, INPUTEVENT_KEY_X }, - { SDLK_y, INPUTEVENT_KEY_Y }, - { SDLK_z, INPUTEVENT_KEY_Z }, - - { SDLK_0, INPUTEVENT_KEY_0 }, - { SDLK_1, INPUTEVENT_KEY_1 }, - { SDLK_2, INPUTEVENT_KEY_2 }, - { SDLK_3, INPUTEVENT_KEY_3 }, - { SDLK_4, INPUTEVENT_KEY_4 }, - { SDLK_5, INPUTEVENT_KEY_5 }, - { SDLK_6, INPUTEVENT_KEY_6 }, - { SDLK_7, INPUTEVENT_KEY_7 }, - { SDLK_8, INPUTEVENT_KEY_8 }, - { SDLK_9, INPUTEVENT_KEY_9 }, - - { SDLK_BACKSPACE, INPUTEVENT_KEY_BACKSPACE }, - { SDLK_TAB, INPUTEVENT_KEY_TAB }, - { SDLK_RETURN, INPUTEVENT_KEY_RETURN }, - { SDLK_ESCAPE, INPUTEVENT_KEY_ESC }, - { SDLK_SPACE, INPUTEVENT_KEY_SPACE }, - { SDLK_QUOTE, INPUTEVENT_KEY_SINGLEQUOTE }, - { SDLK_COMMA, INPUTEVENT_KEY_COMMA }, - { SDLK_MINUS, INPUTEVENT_KEY_SUB }, - { SDLK_PERIOD, INPUTEVENT_KEY_PERIOD }, - { SDLK_SLASH, INPUTEVENT_KEY_DIV }, - - { SDLK_SEMICOLON, INPUTEVENT_KEY_SEMICOLON }, - { SDLK_EQUALS, INPUTEVENT_KEY_EQUALS }, - { SDLK_LEFTBRACKET, INPUTEVENT_KEY_LEFTBRACKET }, - { SDLK_BACKSLASH, INPUTEVENT_KEY_BACKSLASH }, - { SDLK_RIGHTBRACKET, INPUTEVENT_KEY_RIGHTBRACKET }, - { SDLK_BACKQUOTE, INPUTEVENT_KEY_BACKQUOTE }, - { SDLK_DELETE, INPUTEVENT_KEY_DEL }, - - { -1, 0 } -}; - -static struct uae_input_device_kbr_default *keytrans[] = { - keytrans_amiga, - keytrans_amiga, - keytrans_amiga + { 133 -8, INPUTEVENT_KEY_AMIGA_LEFT}, // Left amiga mapped to left Windows + { 134 -8, INPUTEVENT_KEY_AMIGA_RIGHT}, // Right amiga mapped to right windows key. + { 135 -8, INPUTEVENT_KEY_AMIGA_RIGHT}, // Right amiga mapped to Menu key. + { -1, 0 } }; -static struct uae_input_device_kbr_default *keytrans_x11[] = { - keytrans_amiga_x11, - keytrans_amiga_x11, - keytrans_amiga_x11 +static struct uae_input_device_kbr_default keytrans_amiga[] = +{ + + { SDLK_a, INPUTEVENT_KEY_A }, + { SDLK_b, INPUTEVENT_KEY_B }, + { SDLK_c, INPUTEVENT_KEY_C }, + { SDLK_d, INPUTEVENT_KEY_D }, + { SDLK_e, INPUTEVENT_KEY_E }, + { SDLK_f, INPUTEVENT_KEY_F }, + { SDLK_g, INPUTEVENT_KEY_G }, + { SDLK_h, INPUTEVENT_KEY_H }, + { SDLK_i, INPUTEVENT_KEY_I }, + { SDLK_j, INPUTEVENT_KEY_J }, + { SDLK_k, INPUTEVENT_KEY_K }, + { SDLK_l, INPUTEVENT_KEY_L }, + { SDLK_m, INPUTEVENT_KEY_M }, + { SDLK_n, INPUTEVENT_KEY_N }, + { SDLK_o, INPUTEVENT_KEY_O }, + { SDLK_p, INPUTEVENT_KEY_P }, + { SDLK_q, INPUTEVENT_KEY_Q }, + { SDLK_r, INPUTEVENT_KEY_R }, + { SDLK_s, INPUTEVENT_KEY_S }, + { SDLK_t, INPUTEVENT_KEY_T }, + { SDLK_u, INPUTEVENT_KEY_U }, + { SDLK_v, INPUTEVENT_KEY_W }, + { SDLK_w, INPUTEVENT_KEY_V }, + { SDLK_x, INPUTEVENT_KEY_X }, + { SDLK_y, INPUTEVENT_KEY_Y }, + { SDLK_z, INPUTEVENT_KEY_Z }, + + { SDLK_0, INPUTEVENT_KEY_0 }, + { SDLK_1, INPUTEVENT_KEY_1 }, + { SDLK_2, INPUTEVENT_KEY_2 }, + { SDLK_3, INPUTEVENT_KEY_3 }, + { SDLK_4, INPUTEVENT_KEY_4 }, + { SDLK_5, INPUTEVENT_KEY_5 }, + { SDLK_6, INPUTEVENT_KEY_6 }, + { SDLK_7, INPUTEVENT_KEY_7 }, + { SDLK_8, INPUTEVENT_KEY_8 }, + { SDLK_9, INPUTEVENT_KEY_9 }, + + { SDLK_BACKSPACE, INPUTEVENT_KEY_BACKSPACE }, + { SDLK_TAB, INPUTEVENT_KEY_TAB }, + { SDLK_RETURN, INPUTEVENT_KEY_RETURN }, + { SDLK_ESCAPE, INPUTEVENT_KEY_ESC }, + { SDLK_SPACE, INPUTEVENT_KEY_SPACE }, + { SDLK_QUOTE, INPUTEVENT_KEY_SINGLEQUOTE }, + { SDLK_COMMA, INPUTEVENT_KEY_COMMA }, + { SDLK_MINUS, INPUTEVENT_KEY_SUB }, + { SDLK_PERIOD, INPUTEVENT_KEY_PERIOD }, + { SDLK_SLASH, INPUTEVENT_KEY_DIV }, + + { SDLK_SEMICOLON, INPUTEVENT_KEY_SEMICOLON }, + { SDLK_EQUALS, INPUTEVENT_KEY_EQUALS }, + { SDLK_LEFTBRACKET, INPUTEVENT_KEY_LEFTBRACKET }, + { SDLK_BACKSLASH, INPUTEVENT_KEY_BACKSLASH }, + { SDLK_RIGHTBRACKET, INPUTEVENT_KEY_RIGHTBRACKET }, + { SDLK_BACKQUOTE, INPUTEVENT_KEY_BACKQUOTE }, + { SDLK_DELETE, INPUTEVENT_KEY_DEL }, + + { -1, 0 } +}; + +static struct uae_input_device_kbr_default *keytrans[] = +{ + keytrans_amiga, + keytrans_amiga, + keytrans_amiga }; -static struct uae_input_device_kbr_default *keytrans_fbcon[] = { - keytrans_amiga_fbcon, - keytrans_amiga_fbcon, - keytrans_amiga_fbcon +static struct uae_input_device_kbr_default *keytrans_x11[] = +{ + keytrans_amiga_x11, + keytrans_amiga_x11, + keytrans_amiga_x11 +}; + + +static struct uae_input_device_kbr_default *keytrans_fbcon[] = +{ + keytrans_amiga_fbcon, + keytrans_amiga_fbcon, + keytrans_amiga_fbcon }; static int kb_none[] = { -1 }; static int *kbmaps[] = { kb_none, kb_none, kb_none, kb_none, kb_none, - kb_none, kb_none, kb_none, kb_none, kb_none }; + kb_none, kb_none, kb_none, kb_none, kb_none + }; void keyboard_settrans (void) { - char vid_drv_name[32]; - // get display type... - SDL_VideoDriverName(vid_drv_name, sizeof(vid_drv_name)); - if (strcmp(vid_drv_name, "x11") == 0) - { - printf("Will use keycode from x11 mapping.\n"); - keyboard_type = KEYCODE_X11; - inputdevice_setkeytranslation (keytrans_x11, kbmaps); - } else if (strcmp(vid_drv_name, "fbcon") == 0) - { - printf("Will use keycode from fbcon mapping.\n"); - keyboard_type = KEYCODE_FBCON; - inputdevice_setkeytranslation (keytrans_fbcon, kbmaps); - } else - { - printf("Unknown keycode to use, will use keysym\n"); - keyboard_type = KEYCODE_UNK; - inputdevice_setkeytranslation (keytrans, kbmaps); - } + char vid_drv_name[32]; + // get display type... + SDL_VideoDriverName(vid_drv_name, sizeof(vid_drv_name)); + if (strcmp(vid_drv_name, "x11") == 0) + { + printf("Will use keycode from x11 mapping.\n"); + keyboard_type = KEYCODE_X11; + inputdevice_setkeytranslation (keytrans_x11, kbmaps); + } + else if (strcmp(vid_drv_name, "fbcon") == 0) + { + printf("Will use keycode from fbcon mapping.\n"); + keyboard_type = KEYCODE_FBCON; + inputdevice_setkeytranslation (keytrans_fbcon, kbmaps); + } + else + { + printf("Unknown keycode to use, will use keysym\n"); + keyboard_type = KEYCODE_UNK; + inputdevice_setkeytranslation (keytrans, kbmaps); + } } int translate_pandora_keys(int symbol, int *modifier) { #ifndef PANDORA_SPECIFIC - return 0; + return 0; #endif - switch(symbol) - { + switch(symbol) + { case SDLK_UP: - if(*modifier == KMOD_RCTRL) { // Right shoulder + dPad -> cursor keys - *modifier = KMOD_NONE; - return AK_UP; - } - break; - + if(*modifier == KMOD_RCTRL) // Right shoulder + dPad -> cursor keys + { + *modifier = KMOD_NONE; + return AK_UP; + } + break; + case SDLK_DOWN: - if(*modifier == KMOD_RCTRL) { // Right shoulder + dPad -> cursor keys - *modifier = KMOD_NONE; - return AK_DN; - } - break; + if(*modifier == KMOD_RCTRL) // Right shoulder + dPad -> cursor keys + { + *modifier = KMOD_NONE; + return AK_DN; + } + break; case SDLK_LEFT: - if(*modifier == KMOD_RCTRL) { // Right shoulder + dPad -> cursor keys - *modifier = KMOD_NONE; - return AK_LF; - } - break; + if(*modifier == KMOD_RCTRL) // Right shoulder + dPad -> cursor keys + { + *modifier = KMOD_NONE; + return AK_LF; + } + break; case SDLK_RIGHT: - if(*modifier == KMOD_RCTRL) { // Right shoulder + dPad -> cursor keys - *modifier = KMOD_NONE; - return AK_RT; - } - break; + if(*modifier == KMOD_RCTRL) // Right shoulder + dPad -> cursor keys + { + *modifier = KMOD_NONE; + return AK_RT; + } + break; case SDLK_HOME: - if(*modifier == KMOD_RCTRL) { // Right shoulder + button A -> CTRL - *modifier = KMOD_NONE; - return AK_CTRL; - } - break; + if(*modifier == KMOD_RCTRL) // Right shoulder + button A -> CTRL + { + *modifier = KMOD_NONE; + return AK_CTRL; + } + break; case SDLK_END: - if(*modifier == KMOD_RCTRL) { // Right shoulder + button B -> left ALT - *modifier = KMOD_NONE; - return AK_LALT; - } - break; + if(*modifier == KMOD_RCTRL) // Right shoulder + button B -> left ALT + { + *modifier = KMOD_NONE; + return AK_LALT; + } + break; case SDLK_PAGEDOWN: - if(*modifier == KMOD_RCTRL) { // Right shoulder + button X -> HELP - *modifier = KMOD_NONE; - return AK_HELP; - } - break; + if(*modifier == KMOD_RCTRL) // Right shoulder + button X -> HELP + { + *modifier = KMOD_NONE; + return AK_HELP; + } + break; case SDLK_PAGEUP: // button Y -> Space - *modifier = KMOD_NONE; - return AK_SPC; + *modifier = KMOD_NONE; + return AK_SPC; case SDLK_F1: - *modifier = KMOD_NONE; - return AK_F1; - + *modifier = KMOD_NONE; + return AK_F1; + case SDLK_F2: - *modifier = KMOD_NONE; - return AK_F2; - + *modifier = KMOD_NONE; + return AK_F2; + case SDLK_F3: - *modifier = KMOD_NONE; - return AK_F3; - + *modifier = KMOD_NONE; + return AK_F3; + case SDLK_F4: - *modifier = KMOD_NONE; - return AK_F4; - + *modifier = KMOD_NONE; + return AK_F4; + case SDLK_F5: - *modifier = KMOD_NONE; - return AK_F5; - + *modifier = KMOD_NONE; + return AK_F5; + case SDLK_F6: - *modifier = KMOD_NONE; - return AK_F6; - + *modifier = KMOD_NONE; + return AK_F6; + case SDLK_F7: - *modifier = KMOD_NONE; - return AK_F7; - + *modifier = KMOD_NONE; + return AK_F7; + case SDLK_F8: - *modifier = KMOD_NONE; - return AK_F8; - + *modifier = KMOD_NONE; + return AK_F8; + case SDLK_F9: - *modifier = KMOD_NONE; - return AK_F9; - + *modifier = KMOD_NONE; + return AK_F9; + case SDLK_F10: - *modifier = KMOD_NONE; - return AK_F10; - + *modifier = KMOD_NONE; + return AK_F10; + case SDLK_EXCLAIM: - *modifier = KMOD_SHIFT; - return AK_1; + *modifier = KMOD_SHIFT; + return AK_1; case SDLK_QUOTEDBL: - *modifier = KMOD_SHIFT; - return AK_QUOTE; + *modifier = KMOD_SHIFT; + return AK_QUOTE; case SDLK_HASH: - *modifier = KMOD_SHIFT; - return AK_3; + *modifier = KMOD_SHIFT; + return AK_3; case SDLK_DOLLAR: - *modifier = KMOD_SHIFT; - return AK_4; + *modifier = KMOD_SHIFT; + return AK_4; case SDLK_AMPERSAND: - *modifier = KMOD_SHIFT; - return AK_7; + *modifier = KMOD_SHIFT; + return AK_7; case SDLK_LEFTPAREN: - *modifier = KMOD_SHIFT; - return AK_9; + *modifier = KMOD_SHIFT; + return AK_9; case SDLK_RIGHTPAREN: - *modifier = KMOD_SHIFT; - return AK_0; + *modifier = KMOD_SHIFT; + return AK_0; case SDLK_ASTERISK: - *modifier = KMOD_SHIFT; - return AK_8; + *modifier = KMOD_SHIFT; + return AK_8; case SDLK_PLUS: - *modifier = KMOD_SHIFT; - return AK_EQUAL; + *modifier = KMOD_SHIFT; + return AK_EQUAL; case SDLK_COLON: - *modifier = KMOD_SHIFT; - return AK_SEMICOLON; + *modifier = KMOD_SHIFT; + return AK_SEMICOLON; case SDLK_QUESTION: - *modifier = KMOD_SHIFT; - return AK_SLASH; + *modifier = KMOD_SHIFT; + return AK_SLASH; case SDLK_AT: - *modifier = KMOD_SHIFT; - return AK_2; + *modifier = KMOD_SHIFT; + return AK_2; case SDLK_CARET: - *modifier = KMOD_SHIFT; - return AK_6; + *modifier = KMOD_SHIFT; + return AK_6; case SDLK_UNDERSCORE: - *modifier = KMOD_SHIFT; - return AK_MINUS; - + *modifier = KMOD_SHIFT; + return AK_MINUS; + case 124: // code for '|' - *modifier = KMOD_SHIFT; - return AK_BACKSLASH; + *modifier = KMOD_SHIFT; + return AK_BACKSLASH; case SDLK_2: - if(*modifier == KMOD_LSHIFT) { // '{' - *modifier = KMOD_SHIFT; - return AK_LBRACKET; - } - break; - + if(*modifier == KMOD_LSHIFT) // '{' + { + *modifier = KMOD_SHIFT; + return AK_LBRACKET; + } + break; + case SDLK_3: - if(*modifier == KMOD_LSHIFT) { // '}' - *modifier = KMOD_SHIFT; - return AK_RBRACKET; - } - break; - + if(*modifier == KMOD_LSHIFT) // '}' + { + *modifier = KMOD_SHIFT; + return AK_RBRACKET; + } + break; + case SDLK_4: - if(*modifier == KMOD_LSHIFT) { // '~' - *modifier = KMOD_SHIFT; - return AK_BACKQUOTE; - } - break; + if(*modifier == KMOD_LSHIFT) // '~' + { + *modifier = KMOD_SHIFT; + return AK_BACKQUOTE; + } + break; case SDLK_9: - if(*modifier == KMOD_LSHIFT) { // '[' - *modifier = KMOD_NONE; - return AK_LBRACKET; - } - break; + if(*modifier == KMOD_LSHIFT) // '[' + { + *modifier = KMOD_NONE; + return AK_LBRACKET; + } + break; case SDLK_0: - if(*modifier == KMOD_LSHIFT) { // ']' - *modifier = KMOD_NONE; - return AK_RBRACKET; - } - break; - } - return 0; + if(*modifier == KMOD_LSHIFT) // ']' + { + *modifier = KMOD_NONE; + return AK_RBRACKET; + } + break; + } + return 0; } diff --git a/src/od-pandora/menu/menu_config.cpp b/src/od-pandora/menu/menu_config.cpp index 22a96adc..fc29f339 100644 --- a/src/od-pandora/menu/menu_config.cpp +++ b/src/od-pandora/menu/menu_config.cpp @@ -7,7 +7,7 @@ #include "options.h" #include "gui.h" #include "sd-pandora/sound.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "uae.h" diff --git a/src/od-pandora/mp3decoder.cpp b/src/od-pandora/mp3decoder.cpp index d8fa14e9..55117947 100644 --- a/src/od-pandora/mp3decoder.cpp +++ b/src/od-pandora/mp3decoder.cpp @@ -10,239 +10,272 @@ #define MP3_BLOCK_SIZE 522 #define RAW_BLOCK_SIZE 32768 -static int mp3_bitrates[] = { - 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, -1, - 0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, -1, - 0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, -1, - 0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, -1, - 0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, -1 +static int mp3_bitrates[] = +{ + 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, -1, + 0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, -1, + 0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, -1, + 0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, -1, + 0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, -1 }; -static int mp3_frequencies[] = { - 44100, 48000, 32000, 0, - 22050, 24000, 16000, 0, - 11025, 12000, 8000, 0 +static int mp3_frequencies[] = +{ + 44100, 48000, 32000, 0, + 22050, 24000, 16000, 0, + 11025, 12000, 8000, 0 }; -static int mp3_samplesperframe[] = { - 384, 384, 384, - 1152, 1152, 1152, - 1152, 576, 576 +static int mp3_samplesperframe[] = +{ + 384, 384, 384, + 1152, 1152, 1152, + 1152, 576, 576 }; -mp3decoder::~mp3decoder() +mp3decoder::~mp3decoder() { } -mp3decoder::mp3decoder() +mp3decoder::mp3decoder() { } -uae_u8 *mp3decoder::get (struct zfile *zf, uae_u8 *outbuf, int maxsize) +uae_u8 *mp3decoder::get (struct zfile *zf, uae_u8 *outbuf, int maxsize) { - int outoffset = 0; - unsigned char mp3buf[MP3_BLOCK_SIZE]; - unsigned char rawbuf[RAW_BLOCK_SIZE]; - - write_log(_T("MP3: decoding '%s'..\n"), zfile_getname(zf)); + int outoffset = 0; + unsigned char mp3buf[MP3_BLOCK_SIZE]; + unsigned char rawbuf[RAW_BLOCK_SIZE]; - if(mpg123_init() != MPG123_OK) { - write_log("MP3: failed to init mpeg123\n"); - return NULL; - } - - const char** decoders = mpg123_decoders(); - if(decoders == NULL || decoders[0] == NULL) { - write_log("MP3: no mp3 decoder available\n"); - mpg123_exit(); - return NULL; - } - - mpg123_handle *mh = mpg123_new(NULL, NULL); // Open default decoder - if(mh == NULL) { - write_log("MP3: failed to init default decoder\n"); - mpg123_exit(); - return NULL; - } + write_log(_T("MP3: decoding '%s'..\n"), zfile_getname(zf)); - if(mpg123_open_feed(mh) == MPG123_OK) { - zfile_fseek(zf, 0, SEEK_SET); - for (; outoffset < maxsize; ) { - int count = zfile_fread(mp3buf, 1, MP3_BLOCK_SIZE, zf); - if (count != MP3_BLOCK_SIZE) - break; - - size_t decoded = 0; - int ret = mpg123_decode(mh, mp3buf, MP3_BLOCK_SIZE, rawbuf, RAW_BLOCK_SIZE, &decoded); - - if(ret != MPG123_ERR && decoded != 0) { - if(outoffset + decoded > maxsize) - decoded = maxsize - outoffset; - memcpy(outbuf + outoffset, rawbuf, decoded); - outoffset += decoded; - } - - while(ret != MPG123_ERR && ret != MPG123_NEED_MORE && outoffset < maxsize) { - ret = mpg123_decode(mh, NULL, 0, rawbuf, RAW_BLOCK_SIZE, &decoded); - if(ret != MPG123_ERR && decoded != 0) { - if(outoffset + decoded > maxsize) - decoded = maxsize - outoffset; - memcpy(outbuf + outoffset, rawbuf, decoded); - outoffset += decoded; - } - } - - if(ret == MPG123_ERR) { - write_log("MP3: error while decoding\n"); - outbuf = NULL; - break; - } + if(mpg123_init() != MPG123_OK) + { + write_log("MP3: failed to init mpeg123\n"); + return NULL; } - mpg123_close(mh); - } - - mpg123_delete(mh); - mpg123_exit(); - - return outbuf; + const char** decoders = mpg123_decoders(); + if(decoders == NULL || decoders[0] == NULL) + { + write_log("MP3: no mp3 decoder available\n"); + mpg123_exit(); + return NULL; + } + + mpg123_handle *mh = mpg123_new(NULL, NULL); // Open default decoder + if(mh == NULL) + { + write_log("MP3: failed to init default decoder\n"); + mpg123_exit(); + return NULL; + } + + if(mpg123_open_feed(mh) == MPG123_OK) + { + zfile_fseek(zf, 0, SEEK_SET); + for (; outoffset < maxsize; ) + { + int count = zfile_fread(mp3buf, 1, MP3_BLOCK_SIZE, zf); + if (count != MP3_BLOCK_SIZE) + break; + + size_t decoded = 0; + int ret = mpg123_decode(mh, mp3buf, MP3_BLOCK_SIZE, rawbuf, RAW_BLOCK_SIZE, &decoded); + + if(ret != MPG123_ERR && decoded != 0) + { + if(outoffset + decoded > maxsize) + decoded = maxsize - outoffset; + memcpy(outbuf + outoffset, rawbuf, decoded); + outoffset += decoded; + } + + while(ret != MPG123_ERR && ret != MPG123_NEED_MORE && outoffset < maxsize) + { + ret = mpg123_decode(mh, NULL, 0, rawbuf, RAW_BLOCK_SIZE, &decoded); + if(ret != MPG123_ERR && decoded != 0) + { + if(outoffset + decoded > maxsize) + decoded = maxsize - outoffset; + memcpy(outbuf + outoffset, rawbuf, decoded); + outoffset += decoded; + } + } + + if(ret == MPG123_ERR) + { + write_log("MP3: error while decoding\n"); + outbuf = NULL; + break; + } + } + + mpg123_close(mh); + } + + mpg123_delete(mh); + mpg123_exit(); + + return outbuf; } -uae_u32 mp3decoder::getsize (struct zfile *zf) +uae_u32 mp3decoder::getsize (struct zfile *zf) { - uae_u32 size; - int frames, sameframes; - int firstframe; - int oldbitrate; - int timelen = -1; + uae_u32 size; + int frames, sameframes; + int firstframe; + int oldbitrate; + int timelen = -1; - firstframe = -1; - oldbitrate = -1; - sameframes = -1; - frames = 0; - size = 0; - uae_u8 id3[10]; + firstframe = -1; + oldbitrate = -1; + sameframes = -1; + frames = 0; + size = 0; + uae_u8 id3[10]; - if (zfile_fread(id3, sizeof id3, 1, zf) != 1) - return 0; - if (id3[0] == 'I' && id3[1] == 'D' && id3[2] == '3' && id3[3] == 3 && id3[4] != 0xff && id3[6] < 0x80 && id3[7] < 0x80 && id3[8] < 0x80 && id3[9] < 0x80) { - int unsync = id3[5] & 0x80; - int exthead = id3[5] & 0x40; - int len = (id3[9] << 0) | (id3[8] << 7) | (id3[7] << 14) | (id3[6] << 21); - len &= 0x0fffffff; - uae_u8 *tag = xmalloc (uae_u8, len + 1); - if (zfile_fread (tag, len, 1, zf) != 1) { - xfree (tag); - return 0; - } - uae_u8 *p = tag; - if (exthead) { - int size = (p[4] << 21) | (p[5] << 14) | (p[6] << 7); - size &= 0x0fffffff; - p += size; - len -= size; - } - while (len > 0) { - int size = unsync ? (p[4] << 21) | (p[5] << 14) | (p[6] << 7) | (p[7] << 0) : (p[4] << 24) | (p[5] << 16) | (p[6] << 8) | (p[7] << 0); - size &= 0x0fffffff; - if (size > len) - break; - int compr = p[9] & 0x80; - int enc = p[9] & 0x40; - if (compr == 0 && enc == 0) { - if (!memcmp (p, "TLEN", 4)) { - uae_u8 *data = p + 10; - data[size] = 0; - if (data[0] == 0) - timelen = atol ((char*)(data + 1)); - else - timelen = _tstol ((char*)(data + 1)); - } - } - size += 10; - p += size; - len -= size; - } - xfree (tag); - } else { - zfile_fseek(zf, -(int)sizeof id3, SEEK_CUR); - } + if (zfile_fread(id3, sizeof id3, 1, zf) != 1) + return 0; + if (id3[0] == 'I' && id3[1] == 'D' && id3[2] == '3' && id3[3] == 3 && id3[4] != 0xff && id3[6] < 0x80 && id3[7] < 0x80 && id3[8] < 0x80 && id3[9] < 0x80) + { + int unsync = id3[5] & 0x80; + int exthead = id3[5] & 0x40; + int len = (id3[9] << 0) | (id3[8] << 7) | (id3[7] << 14) | (id3[6] << 21); + len &= 0x0fffffff; + uae_u8 *tag = xmalloc (uae_u8, len + 1); + if (zfile_fread (tag, len, 1, zf) != 1) + { + xfree (tag); + return 0; + } + uae_u8 *p = tag; + if (exthead) + { + int size = (p[4] << 21) | (p[5] << 14) | (p[6] << 7); + size &= 0x0fffffff; + p += size; + len -= size; + } + while (len > 0) + { + int size = unsync ? (p[4] << 21) | (p[5] << 14) | (p[6] << 7) | (p[7] << 0) : (p[4] << 24) | (p[5] << 16) | (p[6] << 8) | (p[7] << 0); + size &= 0x0fffffff; + if (size > len) + break; + int compr = p[9] & 0x80; + int enc = p[9] & 0x40; + if (compr == 0 && enc == 0) + { + if (!memcmp (p, "TLEN", 4)) + { + uae_u8 *data = p + 10; + data[size] = 0; + if (data[0] == 0) + timelen = atol ((char*)(data + 1)); + else + timelen = _tstol ((char*)(data + 1)); + } + } + size += 10; + p += size; + len -= size; + } + xfree (tag); + } + else + { + zfile_fseek(zf, -(int)sizeof id3, SEEK_CUR); + } - for (;;) { - int ver, layer, bitrate, freq, padding, bitindex, iscrc; - int samplerate, framelen, bitrateidx, channelmode; - int isstereo; - uae_u8 header[4]; + for (;;) + { + int ver, layer, bitrate, freq, padding, bitindex, iscrc; + int samplerate, framelen, bitrateidx, channelmode; + int isstereo; + uae_u8 header[4]; - if (zfile_fread(header, sizeof header, 1, zf) != 1) - return size; - if (header[0] != 0xff || ((header[1] & (0x80 | 0x40 | 0x20)) != (0x80 | 0x40 | 0x20))) { - zfile_fseek (zf, -3, SEEK_CUR); - continue; - } - if (firstframe < 0) - firstframe = zfile_ftell (zf); + if (zfile_fread(header, sizeof header, 1, zf) != 1) + return size; + if (header[0] != 0xff || ((header[1] & (0x80 | 0x40 | 0x20)) != (0x80 | 0x40 | 0x20))) + { + zfile_fseek (zf, -3, SEEK_CUR); + continue; + } + if (firstframe < 0) + firstframe = zfile_ftell (zf); - ver = (header[1] >> 3) & 3; - if (ver == 1) { - write_log (_T("MP3: ver==1?!\n")); - return 0; - } - if (ver == 0) - ver = 2; - else if (ver == 2) - ver = 1; - else if (ver == 3) - ver = 0; - layer = 4 - ((header[1] >> 1) & 3); - if (layer == 4) { - write_log (_T("MP3: layer==4?!\n")); - return 0; - } - iscrc = ((header[1] >> 0) & 1) ? 0 : 2; - bitrateidx = (header[2] >> 4) & 15; - freq = mp3_frequencies[(header[2] >> 2) & 3]; - if (!freq) { - write_log (_T("MP3: reserved frequency?!\n")); - return 0; - } - channelmode = (header[3] >> 6) & 3; - isstereo = channelmode != 3; - if (ver == 0) { - bitindex = layer - 1; - } else { - if (layer == 1) - bitindex = 3; - else - bitindex = 4; - } - bitrate = mp3_bitrates[bitindex * 16 + bitrateidx] * 1000; - if (bitrate <= 0) { - write_log (_T("MP3: reserved bitrate?!\n")); - return 0; - } - padding = (header[2] >> 1) & 1; - samplerate = mp3_samplesperframe[(layer - 1) * 3 + ver]; - framelen = ((samplerate / 8 * bitrate) / freq) + padding; - if (framelen <= 4) { - write_log (_T("MP3: too small frame size?!\n")); - return 0; - } - zfile_fseek(zf, framelen - 4, SEEK_CUR); - frames++; - if (timelen > 0) { - size = ((uae_u64)timelen * freq * 2 * (isstereo ? 2 : 1)) / 1000; - break; - } - size += samplerate * 2 * (isstereo ? 2 : 1); - if (bitrate != oldbitrate) { - oldbitrate = bitrate; - sameframes++; - } - if (sameframes == 0 && frames > 100) { - // assume this is CBR MP3 - size = samplerate * 2 * (isstereo ? 2 : 1) * ((zfile_size (zf) - firstframe) / ((samplerate / 8 * bitrate) / freq)); - break; - } - } - return size; + ver = (header[1] >> 3) & 3; + if (ver == 1) + { + write_log (_T("MP3: ver==1?!\n")); + return 0; + } + if (ver == 0) + ver = 2; + else if (ver == 2) + ver = 1; + else if (ver == 3) + ver = 0; + layer = 4 - ((header[1] >> 1) & 3); + if (layer == 4) + { + write_log (_T("MP3: layer==4?!\n")); + return 0; + } + iscrc = ((header[1] >> 0) & 1) ? 0 : 2; + bitrateidx = (header[2] >> 4) & 15; + freq = mp3_frequencies[(header[2] >> 2) & 3]; + if (!freq) + { + write_log (_T("MP3: reserved frequency?!\n")); + return 0; + } + channelmode = (header[3] >> 6) & 3; + isstereo = channelmode != 3; + if (ver == 0) + { + bitindex = layer - 1; + } + else + { + if (layer == 1) + bitindex = 3; + else + bitindex = 4; + } + bitrate = mp3_bitrates[bitindex * 16 + bitrateidx] * 1000; + if (bitrate <= 0) + { + write_log (_T("MP3: reserved bitrate?!\n")); + return 0; + } + padding = (header[2] >> 1) & 1; + samplerate = mp3_samplesperframe[(layer - 1) * 3 + ver]; + framelen = ((samplerate / 8 * bitrate) / freq) + padding; + if (framelen <= 4) + { + write_log (_T("MP3: too small frame size?!\n")); + return 0; + } + zfile_fseek(zf, framelen - 4, SEEK_CUR); + frames++; + if (timelen > 0) + { + size = ((uae_u64)timelen * freq * 2 * (isstereo ? 2 : 1)) / 1000; + break; + } + size += samplerate * 2 * (isstereo ? 2 : 1); + if (bitrate != oldbitrate) + { + oldbitrate = bitrate; + sameframes++; + } + if (sameframes == 0 && frames > 100) + { + // assume this is CBR MP3 + size = samplerate * 2 * (isstereo ? 2 : 1) * ((zfile_size (zf) - firstframe) / ((samplerate / 8 * bitrate) / freq)); + break; + } + } + return size; } diff --git a/src/od-pandora/pandora.cpp b/src/od-pandora/pandora.cpp index 7c587401..d9e9d6e1 100644 --- a/src/od-pandora/pandora.cpp +++ b/src/od-pandora/pandora.cpp @@ -22,7 +22,7 @@ #include "options.h" #include "td-sdl/thread.h" #include "gui.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "xwin.h" @@ -109,10 +109,10 @@ int customControlMap[SDLK_LAST]; char start_path_data[MAX_DPATH]; char currentDir[MAX_DPATH]; #ifdef CAPSLOCK_DEBIAN_WORKAROUND - #include - #include - unsigned long kbd_led_status; - char kbd_flags; +#include +#include +unsigned long kbd_led_status; +char kbd_flags; #endif static char config_path[MAX_DPATH]; @@ -130,151 +130,153 @@ extern "C" int main( int argc, char *argv[] ); void reinit_amiga(void) { - write_log("reinit_amiga() called\n"); - DISK_free (); + write_log("reinit_amiga() called\n"); + DISK_free (); #ifdef CD32 - akiko_free (); + akiko_free (); #endif #ifdef FILESYS - filesys_cleanup (); - hardfile_reset(); + filesys_cleanup (); + hardfile_reset(); #endif #ifdef AUTOCONFIG #if defined (BSDSOCKET) - bsdlib_reset(); + bsdlib_reset(); #endif - expansion_cleanup (); + expansion_cleanup (); #endif - device_func_reset (); - memory_cleanup (); - - /* At this point, there might run some threads from bsdsocket.*/ + device_func_reset (); + memory_cleanup (); + + /* At this point, there might run some threads from bsdsocket.*/ // write_log("Threads in reinit_amiga():\n"); // dbg_list_threads(); - currprefs = changed_prefs; - /* force sound settings change */ - currprefs.produce_sound = 0; + currprefs = changed_prefs; + /* force sound settings change */ + currprefs.produce_sound = 0; - framecnt = 1; + framecnt = 1; #ifdef AUTOCONFIG - rtarea_setup (); + rtarea_setup (); #endif #ifdef FILESYS - rtarea_init (); - uaeres_install (); - hardfile_install(); + rtarea_init (); + uaeres_install (); + hardfile_install(); #endif - keybuf_init(); + keybuf_init(); #ifdef AUTOCONFIG - expansion_init (); + expansion_init (); #endif #ifdef FILESYS - filesys_install (); + filesys_install (); #endif - memory_init (); - memory_reset (); + memory_init (); + memory_reset (); #ifdef AUTOCONFIG #if defined (BSDSOCKET) - bsdlib_install (); + bsdlib_install (); #endif - emulib_install (); - native2amiga_install (); + emulib_install (); + native2amiga_install (); #endif - custom_init (); /* Must come after memory_init */ - DISK_init (); - - reset_frame_rate_hack (); - init_m68k(); + custom_init (); /* Must come after memory_init */ + DISK_init (); + + reset_frame_rate_hack (); + init_m68k(); } void sleep_millis (int ms) { - usleep(ms * 1000); + usleep(ms * 1000); } void sleep_millis_busy (int ms) { - usleep(ms * 1000); + usleep(ms * 1000); } void logging_init( void ) { #ifdef WITH_LOGGING - static int started; - static int first; - char debugfilename[MAX_DPATH]; + static int started; + static int first; + char debugfilename[MAX_DPATH]; - if (first > 1) { - write_log ("***** RESTART *****\n"); - return; - } - if (first == 1) { - if (debugfile) - fclose (debugfile); - debugfile = 0; - } + if (first > 1) + { + write_log ("***** RESTART *****\n"); + return; + } + if (first == 1) + { + if (debugfile) + fclose (debugfile); + debugfile = 0; + } - sprintf(debugfilename, "%s/uae4arm_log.txt", start_path_data); - if(!debugfile) - debugfile = fopen(debugfilename, "wt"); + sprintf(debugfilename, "%s/uae4arm_log.txt", start_path_data); + if(!debugfile) + debugfile = fopen(debugfilename, "wt"); - first++; - write_log ( "UAE4ARM Logfile\n\n"); + first++; + write_log ( "UAE4ARM Logfile\n\n"); #endif } void logging_cleanup( void ) { #ifdef WITH_LOGGING - if(debugfile) - fclose(debugfile); - debugfile = 0; + if(debugfile) + fclose(debugfile); + debugfile = 0; #endif } void stripslashes (TCHAR *p) { - while (_tcslen (p) > 0 && (p[_tcslen (p) - 1] == '\\' || p[_tcslen (p) - 1] == '/')) - p[_tcslen (p) - 1] = 0; + while (_tcslen (p) > 0 && (p[_tcslen (p) - 1] == '\\' || p[_tcslen (p) - 1] == '/')) + p[_tcslen (p) - 1] = 0; } void fixtrailing (TCHAR *p) { - if (_tcslen(p) == 0) - return; - if (p[_tcslen(p) - 1] == '/' || p[_tcslen(p) - 1] == '\\') - return; - _tcscat(p, "/"); + if (_tcslen(p) == 0) + return; + if (p[_tcslen(p) - 1] == '/' || p[_tcslen(p) - 1] == '\\') + return; + _tcscat(p, "/"); } void getpathpart (TCHAR *outpath, int size, const TCHAR *inpath) { - _tcscpy (outpath, inpath); - TCHAR *p = _tcsrchr (outpath, '/'); - if (p) - p[0] = 0; - fixtrailing (outpath); + _tcscpy (outpath, inpath); + TCHAR *p = _tcsrchr (outpath, '/'); + if (p) + p[0] = 0; + fixtrailing (outpath); } void getfilepart (TCHAR *out, int size, const TCHAR *path) { - out[0] = 0; - const TCHAR *p = _tcsrchr (path, '/'); - if (p) - _tcscpy (out, p + 1); - else - _tcscpy (out, path); + out[0] = 0; + const TCHAR *p = _tcsrchr (path, '/'); + if (p) + _tcscpy (out, p + 1); + else + _tcscpy (out, path); } uae_u8 *target_load_keyfile (struct uae_prefs *p, const char *path, int *sizep, char *name) { - return 0; + return 0; } @@ -288,50 +290,50 @@ void target_quit (void) void target_fixup_options (struct uae_prefs *p) { - p->rtgmem_type = 1; - gfxmem_start = rtg_start_adr; - if (p->z3fastmem_start != z3_start_adr) - p->z3fastmem_start = z3_start_adr; + p->rtgmem_type = 1; + gfxmem_start = rtg_start_adr; + if (p->z3fastmem_start != z3_start_adr) + p->z3fastmem_start = z3_start_adr; - p->picasso96_modeflags = RGBFF_CLUT | RGBFF_R5G6B5 | RGBFF_R8G8B8A8; - p->gfx_resolution = p->gfx_size.width > 600 ? 1 : 0; + p->picasso96_modeflags = RGBFF_CLUT | RGBFF_R5G6B5 | RGBFF_R8G8B8A8; + p->gfx_resolution = p->gfx_size.width > 600 ? 1 : 0; } void target_default_options (struct uae_prefs *p, int type) { - p->pandora_horizontal_offset = 0; - p->pandora_vertical_offset = 0; - p->pandora_cpu_speed = defaultCpuSpeed; - p->pandora_hide_idle_led = 0; - - p->pandora_tapDelay = 10; - p->pandora_customControls = 0; + p->pandora_horizontal_offset = 0; + p->pandora_vertical_offset = 0; + p->pandora_cpu_speed = defaultCpuSpeed; + p->pandora_hide_idle_led = 0; - p->picasso96_modeflags = RGBFF_CLUT | RGBFF_R5G6B5 | RGBFF_R8G8B8A8; - - memset(customControlMap, 0, sizeof(customControlMap)); + p->pandora_tapDelay = 10; + p->pandora_customControls = 0; + + p->picasso96_modeflags = RGBFF_CLUT | RGBFF_R5G6B5 | RGBFF_R8G8B8A8; + + memset(customControlMap, 0, sizeof(customControlMap)); } void target_save_options (struct zfile *f, struct uae_prefs *p) { - cfgfile_write (f, "pandora.cpu_speed", "%d", p->pandora_cpu_speed); - cfgfile_write (f, "pandora.hide_idle_led", "%d", p->pandora_hide_idle_led); - cfgfile_write (f, "pandora.tap_delay", "%d", p->pandora_tapDelay); - cfgfile_write (f, "pandora.custom_controls", "%d", p->pandora_customControls); - cfgfile_write (f, "pandora.custom_up", "%d", customControlMap[SDLK_UP]); - cfgfile_write (f, "pandora.custom_down", "%d", customControlMap[SDLK_DOWN]); - cfgfile_write (f, "pandora.custom_left", "%d", customControlMap[SDLK_LEFT]); - cfgfile_write (f, "pandora.custom_right", "%d", customControlMap[SDLK_RIGHT]); - cfgfile_write (f, "pandora.custom_a", "%d", customControlMap[SDLK_HOME]); - cfgfile_write (f, "pandora.custom_b", "%d", customControlMap[SDLK_END]); - cfgfile_write (f, "pandora.custom_x", "%d", customControlMap[SDLK_PAGEDOWN]); - cfgfile_write (f, "pandora.custom_y", "%d", customControlMap[SDLK_PAGEUP]); - cfgfile_write (f, "pandora.custom_l", "%d", customControlMap[SDLK_RSHIFT]); - cfgfile_write (f, "pandora.custom_r", "%d", customControlMap[SDLK_RCTRL]); - cfgfile_write (f, "pandora.move_x", "%d", p->pandora_horizontal_offset); - cfgfile_write (f, "pandora.move_y", "%d", p->pandora_vertical_offset); + cfgfile_write (f, "pandora.cpu_speed", "%d", p->pandora_cpu_speed); + cfgfile_write (f, "pandora.hide_idle_led", "%d", p->pandora_hide_idle_led); + cfgfile_write (f, "pandora.tap_delay", "%d", p->pandora_tapDelay); + cfgfile_write (f, "pandora.custom_controls", "%d", p->pandora_customControls); + cfgfile_write (f, "pandora.custom_up", "%d", customControlMap[SDLK_UP]); + cfgfile_write (f, "pandora.custom_down", "%d", customControlMap[SDLK_DOWN]); + cfgfile_write (f, "pandora.custom_left", "%d", customControlMap[SDLK_LEFT]); + cfgfile_write (f, "pandora.custom_right", "%d", customControlMap[SDLK_RIGHT]); + cfgfile_write (f, "pandora.custom_a", "%d", customControlMap[SDLK_HOME]); + cfgfile_write (f, "pandora.custom_b", "%d", customControlMap[SDLK_END]); + cfgfile_write (f, "pandora.custom_x", "%d", customControlMap[SDLK_PAGEDOWN]); + cfgfile_write (f, "pandora.custom_y", "%d", customControlMap[SDLK_PAGEUP]); + cfgfile_write (f, "pandora.custom_l", "%d", customControlMap[SDLK_RSHIFT]); + cfgfile_write (f, "pandora.custom_r", "%d", customControlMap[SDLK_RCTRL]); + cfgfile_write (f, "pandora.move_x", "%d", p->pandora_horizontal_offset); + cfgfile_write (f, "pandora.move_y", "%d", p->pandora_vertical_offset); } @@ -342,419 +344,419 @@ void target_restart (void) TCHAR *target_expand_environment (const TCHAR *path) { - return strdup(path); + return strdup(path); } int target_parse_option (struct uae_prefs *p, const char *option, const char *value) { - int result = (cfgfile_intval (option, value, "cpu_speed", &p->pandora_cpu_speed, 1) - || cfgfile_intval (option, value, "hide_idle_led", &p->pandora_hide_idle_led, 1) - || cfgfile_intval (option, value, "tap_delay", &p->pandora_tapDelay, 1) - || cfgfile_intval (option, value, "custom_controls", &p->pandora_customControls, 1) - || cfgfile_intval (option, value, "custom_up", &customControlMap[SDLK_UP], 1) - || cfgfile_intval (option, value, "custom_down", &customControlMap[SDLK_DOWN], 1) - || cfgfile_intval (option, value, "custom_left", &customControlMap[SDLK_LEFT], 1) - || cfgfile_intval (option, value, "custom_right", &customControlMap[SDLK_RIGHT], 1) - || cfgfile_intval (option, value, "custom_a", &customControlMap[SDLK_HOME], 1) - || cfgfile_intval (option, value, "custom_b", &customControlMap[SDLK_END], 1) - || cfgfile_intval (option, value, "custom_x", &customControlMap[SDLK_PAGEDOWN], 1) - || cfgfile_intval (option, value, "custom_y", &customControlMap[SDLK_PAGEUP], 1) - || cfgfile_intval (option, value, "custom_l", &customControlMap[SDLK_RSHIFT], 1) - || cfgfile_intval (option, value, "custom_r", &customControlMap[SDLK_RCTRL], 1) - || cfgfile_intval (option, value, "move_x", &p->pandora_horizontal_offset, 1) - || cfgfile_intval (option, value, "move_y", &p->pandora_vertical_offset, 1) - ); + int result = (cfgfile_intval (option, value, "cpu_speed", &p->pandora_cpu_speed, 1) + || cfgfile_intval (option, value, "hide_idle_led", &p->pandora_hide_idle_led, 1) + || cfgfile_intval (option, value, "tap_delay", &p->pandora_tapDelay, 1) + || cfgfile_intval (option, value, "custom_controls", &p->pandora_customControls, 1) + || cfgfile_intval (option, value, "custom_up", &customControlMap[SDLK_UP], 1) + || cfgfile_intval (option, value, "custom_down", &customControlMap[SDLK_DOWN], 1) + || cfgfile_intval (option, value, "custom_left", &customControlMap[SDLK_LEFT], 1) + || cfgfile_intval (option, value, "custom_right", &customControlMap[SDLK_RIGHT], 1) + || cfgfile_intval (option, value, "custom_a", &customControlMap[SDLK_HOME], 1) + || cfgfile_intval (option, value, "custom_b", &customControlMap[SDLK_END], 1) + || cfgfile_intval (option, value, "custom_x", &customControlMap[SDLK_PAGEDOWN], 1) + || cfgfile_intval (option, value, "custom_y", &customControlMap[SDLK_PAGEUP], 1) + || cfgfile_intval (option, value, "custom_l", &customControlMap[SDLK_RSHIFT], 1) + || cfgfile_intval (option, value, "custom_r", &customControlMap[SDLK_RCTRL], 1) + || cfgfile_intval (option, value, "move_x", &p->pandora_horizontal_offset, 1) + || cfgfile_intval (option, value, "move_y", &p->pandora_vertical_offset, 1) + ); } void fetch_datapath (char *out, int size) { - strncpy(out, start_path_data, size); - strncat(out, "/", size); + strncpy(out, start_path_data, size); + strncat(out, "/", size); } void fetch_saveimagepath (char *out, int size, int dir) { - strncpy(out, start_path_data, size); - strncat(out, "/savestates/", size); + strncpy(out, start_path_data, size); + strncat(out, "/savestates/", size); } void fetch_configurationpath (char *out, int size) { - strncpy(out, config_path, size); + strncpy(out, config_path, size); } void set_configurationpath(char *newpath) { - strncpy(config_path, newpath, MAX_DPATH); + strncpy(config_path, newpath, MAX_DPATH); } void fetch_rompath (char *out, int size) { - strncpy(out, rom_path, size); + strncpy(out, rom_path, size); } void set_rompath(char *newpath) { - strncpy(rom_path, newpath, MAX_DPATH); + strncpy(rom_path, newpath, MAX_DPATH); } void fetch_rp9path (char *out, int size) { - strncpy(out, rp9_path, size); + strncpy(out, rp9_path, size); } void fetch_savestatepath(char *out, int size) { - strncpy(out, start_path_data, size); - strncat(out, "/savestates/", size); + strncpy(out, start_path_data, size); + strncat(out, "/savestates/", size); } void fetch_screenshotpath(char *out, int size) { - strncpy(out, start_path_data, size); - strncat(out, "/screenshots/", size); + strncpy(out, start_path_data, size); + strncat(out, "/screenshots/", size); } int target_cfgfile_load (struct uae_prefs *p, const char *filename, int type, int isdefault) { - int i; - int result = 0; + int i; + int result = 0; - if(emulating && changed_prefs.cdslots[0].inuse) - gui_force_rtarea_hdchange(); + if(emulating && changed_prefs.cdslots[0].inuse) + gui_force_rtarea_hdchange(); - discard_prefs(p, type); - default_prefs(p, 0); - - char *ptr = strstr(filename, ".rp9"); - if(ptr > 0) - { - // Load rp9 config - result = rp9_parse_file(p, filename); - if(result) - extractFileName(filename, last_loaded_config); - } - else - { - ptr = strstr(filename, ".uae"); + discard_prefs(p, type); + default_prefs(p, 0); + + char *ptr = strstr(filename, ".rp9"); if(ptr > 0) { - int type = CONFIG_TYPE_HARDWARE | CONFIG_TYPE_HOST; - result = cfgfile_load(p, filename, &type, 0, 1); + // Load rp9 config + result = rp9_parse_file(p, filename); + if(result) + extractFileName(filename, last_loaded_config); } - if(result) - extractFileName(filename, last_loaded_config); - else - result = loadconfig_old(p, filename); - } - - if(result) - { - for(i=0; i < p->nr_floppies; ++i) + else { - if(!DISK_validate_filename(p, p->floppyslots[i].df, 0, NULL, NULL, NULL)) - p->floppyslots[i].df[0] = 0; - disk_insert(i, p->floppyslots[i].df); - if(strlen(p->floppyslots[i].df) > 0) - AddFileToDiskList(p->floppyslots[i].df, 1); + ptr = strstr(filename, ".uae"); + if(ptr > 0) + { + int type = CONFIG_TYPE_HARDWARE | CONFIG_TYPE_HOST; + result = cfgfile_load(p, filename, &type, 0, 1); + } + if(result) + extractFileName(filename, last_loaded_config); + else + result = loadconfig_old(p, filename); } - if(!isdefault) - inputdevice_updateconfig (NULL, p); - - SetLastActiveConfig(filename); + if(result) + { + for(i=0; i < p->nr_floppies; ++i) + { + if(!DISK_validate_filename(p, p->floppyslots[i].df, 0, NULL, NULL, NULL)) + p->floppyslots[i].df[0] = 0; + disk_insert(i, p->floppyslots[i].df); + if(strlen(p->floppyslots[i].df) > 0) + AddFileToDiskList(p->floppyslots[i].df, 1); + } - if(count_HDs(p) > 0) // When loading a config with HDs, always do a hardreset - gui_force_rtarea_hdchange(); - } + if(!isdefault) + inputdevice_updateconfig (NULL, p); - return result; + SetLastActiveConfig(filename); + + if(count_HDs(p) > 0) // When loading a config with HDs, always do a hardreset + gui_force_rtarea_hdchange(); + } + + return result; } int check_configfile(char *file) { - char tmp[MAX_PATH]; - - FILE *f = fopen(file, "rt"); - if(f) - { - fclose(f); - return 1; - } - - strcpy(tmp, file); - char *ptr = strstr(tmp, ".uae"); - if(ptr > 0) - { - *(ptr + 1) = '\0'; - strcat(tmp, "conf"); - f = fopen(tmp, "rt"); + char tmp[MAX_PATH]; + + FILE *f = fopen(file, "rt"); if(f) { - fclose(f); - return 2; + fclose(f); + return 1; } - } - return 0; + strcpy(tmp, file); + char *ptr = strstr(tmp, ".uae"); + if(ptr > 0) + { + *(ptr + 1) = '\0'; + strcat(tmp, "conf"); + f = fopen(tmp, "rt"); + if(f) + { + fclose(f); + return 2; + } + } + + return 0; } void extractFileName(const char * str,char *buffer) { - const char *p=str+strlen(str)-1; - while(*p != '/' && p > str) - p--; - p++; - strcpy(buffer,p); + const char *p=str+strlen(str)-1; + while(*p != '/' && p > str) + p--; + p++; + strcpy(buffer,p); } void extractPath(char *str, char *buffer) { - strcpy(buffer, str); - char *p = buffer + strlen(buffer) - 1; - while(*p != '/' && p > buffer) - p--; - p[1] = '\0'; + strcpy(buffer, str); + char *p = buffer + strlen(buffer) - 1; + while(*p != '/' && p > buffer) + p--; + p[1] = '\0'; } void removeFileExtension(char *filename) { - char *p = filename + strlen(filename) - 1; - while(p > filename && *p != '.') - { + char *p = filename + strlen(filename) - 1; + while(p > filename && *p != '.') + { + *p = '\0'; + --p; + } *p = '\0'; - --p; - } - *p = '\0'; } void ReadDirectory(const char *path, std::vector *dirs, std::vector *files) { - DIR *dir; - struct dirent *dent; + DIR *dir; + struct dirent *dent; - if(dirs != NULL) - dirs->clear(); - if(files != NULL) - files->clear(); - - dir = opendir(path); - if(dir != NULL) - { - while((dent = readdir(dir)) != NULL) + if(dirs != NULL) + dirs->clear(); + if(files != NULL) + files->clear(); + + dir = opendir(path); + if(dir != NULL) { - if(dent->d_type == DT_DIR) - { - if(dirs != NULL) - dirs->push_back(dent->d_name); - } - else if (files != NULL) - files->push_back(dent->d_name); + while((dent = readdir(dir)) != NULL) + { + if(dent->d_type == DT_DIR) + { + if(dirs != NULL) + dirs->push_back(dent->d_name); + } + else if (files != NULL) + files->push_back(dent->d_name); + } + if(dirs != NULL && dirs->size() > 0 && (*dirs)[0] == ".") + dirs->erase(dirs->begin()); + closedir(dir); } - if(dirs != NULL && dirs->size() > 0 && (*dirs)[0] == ".") - dirs->erase(dirs->begin()); - closedir(dir); - } - - if(dirs != NULL) - std::sort(dirs->begin(), dirs->end()); - if(files != NULL) - std::sort(files->begin(), files->end()); + + if(dirs != NULL) + std::sort(dirs->begin(), dirs->end()); + if(files != NULL) + std::sort(files->begin(), files->end()); } void saveAdfDir(void) { - char path[MAX_DPATH]; - int i; - - snprintf(path, MAX_DPATH, "%s/conf/adfdir.conf", start_path_data); - FILE *f=fopen(path,"w"); - if (!f) - return; - - char buffer[MAX_DPATH]; - snprintf(buffer, MAX_DPATH, "path=%s\n", currentDir); - fputs(buffer,f); + char path[MAX_DPATH]; + int i; - snprintf(buffer, MAX_DPATH, "config_path=%s\n", config_path); - fputs(buffer, f); + snprintf(path, MAX_DPATH, "%s/conf/adfdir.conf", start_path_data); + FILE *f=fopen(path,"w"); + if (!f) + return; - snprintf(buffer, MAX_DPATH, "rom_path=%s\n", rom_path); - fputs(buffer, f); + char buffer[MAX_DPATH]; + snprintf(buffer, MAX_DPATH, "path=%s\n", currentDir); + fputs(buffer,f); - snprintf(buffer, MAX_DPATH, "ROMs=%d\n", lstAvailableROMs.size()); - fputs(buffer, f); - for(i=0; iName); + snprintf(buffer, MAX_DPATH, "config_path=%s\n", config_path); fputs(buffer, f); - snprintf(buffer, MAX_DPATH, "ROMPath=%s\n", lstAvailableROMs[i]->Path); - fputs(buffer, f); - snprintf(buffer, MAX_DPATH, "ROMType=%d\n", lstAvailableROMs[i]->ROMType); - fputs(buffer, f); - } - - snprintf(buffer, MAX_DPATH, "MRUDiskList=%d\n", lstMRUDiskList.size()); - fputs(buffer, f); - for(i=0; iName); + fputs(buffer, f); + snprintf(buffer, MAX_DPATH, "ROMPath=%s\n", lstAvailableROMs[i]->Path); + fputs(buffer, f); + snprintf(buffer, MAX_DPATH, "ROMType=%d\n", lstAvailableROMs[i]->ROMType); + fputs(buffer, f); + } + + snprintf(buffer, MAX_DPATH, "MRUDiskList=%d\n", lstMRUDiskList.size()); + fputs(buffer, f); + for(i=0; i 0 && (buffer[i - 1] == '\t' || buffer[i - 1] == ' ' - || buffer[i - 1] == '\r' || buffer[i - 1] == '\n')) - buffer[--i] = '\0'; - strncpy(dst, buffer, size); + char buffer[MAX_PATH]; + fgets(buffer, MAX_PATH, f); + int i = strlen (buffer); + while (i > 0 && (buffer[i - 1] == '\t' || buffer[i - 1] == ' ' + || buffer[i - 1] == '\r' || buffer[i - 1] == '\n')) + buffer[--i] = '\0'; + strncpy(dst, buffer, size); } void loadAdfDir(void) { - char path[MAX_DPATH]; - int i; + char path[MAX_DPATH]; + int i; - strcpy(currentDir, start_path_data); - snprintf(config_path, MAX_DPATH, "%s/conf/", start_path_data); - snprintf(rom_path, MAX_DPATH, "%s/kickstarts/", start_path_data); - snprintf(rp9_path, MAX_DPATH, "%s/rp9/", start_path_data); + strcpy(currentDir, start_path_data); + snprintf(config_path, MAX_DPATH, "%s/conf/", start_path_data); + snprintf(rom_path, MAX_DPATH, "%s/kickstarts/", start_path_data); + snprintf(rp9_path, MAX_DPATH, "%s/rp9/", start_path_data); - snprintf(path, MAX_DPATH, "%s/conf/adfdir.conf", start_path_data); - FILE *f1=fopen(path,"rt"); - if(f1) - { - fscanf(f1, "path="); - get_string(f1, currentDir, sizeof(currentDir)); - if(!feof(f1)) - { - fscanf(f1, "config_path="); - get_string(f1, config_path, sizeof(config_path)); - fscanf(f1, "rom_path="); - get_string(f1, rom_path, sizeof(rom_path)); - - int numROMs; - fscanf(f1, "ROMs=%d\n", &numROMs); - for(i=0; iROMType)); - lstAvailableROMs.push_back(tmp); - } - - lstMRUDiskList.clear(); - int numDisks = 0; - char disk[MAX_PATH]; - fscanf(f1, "MRUDiskList=%d\n", &numDisks); - for(i=0; iROMType)); + lstAvailableROMs.push_back(tmp); + } + + lstMRUDiskList.clear(); + int numDisks = 0; + char disk[MAX_PATH]; + fscanf(f1, "MRUDiskList=%d\n", &numDisks); + for(i=0; i 500 && value < 1200) + char line[128]; + for(int i=0; i<6; ++i) { - speed = value; + fscanf(f, "%s\n", &line); + if(strncmp(line, "default:", 8) == 0) + { + int value = 0; + sscanf(line, "default:%d", &value); + if(value > 500 && value < 1200) + { + speed = value; + } + } } - } + fclose(f); } - fclose(f); - } - return speed; + return speed; #else - return 0; + return 0; #endif } @@ -792,14 +794,14 @@ int getDefaultCpuSpeed(void) void resetCpuSpeed(void) { #ifdef PANDORA_SPECIFIC - if(cpuSpeedChanged) - { - lastCpuSpeed = defaultCpuSpeed - 10; - currprefs.pandora_cpu_speed = changed_prefs.pandora_cpu_speed = defaultCpuSpeed; - setCpuSpeed(); - } + if(cpuSpeedChanged) + { + lastCpuSpeed = defaultCpuSpeed - 10; + currprefs.pandora_cpu_speed = changed_prefs.pandora_cpu_speed = defaultCpuSpeed; + setCpuSpeed(); + } #else - return; + return; #endif } @@ -810,288 +812,315 @@ void target_reset (void) uae_u32 emulib_target_getcpurate (uae_u32 v, uae_u32 *low) { - *low = 0; - if (v == 1) { - *low = 1e+9; /* We have nano seconds */ + *low = 0; + if (v == 1) + { + *low = 1e+9; /* We have nano seconds */ + return 0; + } + else if (v == 2) + { + int64_t time; + struct timespec ts; + clock_gettime (CLOCK_MONOTONIC, &ts); + time = (((int64_t) ts.tv_sec) * 1000000000) + ts.tv_nsec; + *low = (uae_u32) (time & 0xffffffff); + return (uae_u32)(time >> 32); + } return 0; - } else if (v == 2) { - int64_t time; - struct timespec ts; - clock_gettime (CLOCK_MONOTONIC, &ts); - time = (((int64_t) ts.tv_sec) * 1000000000) + ts.tv_nsec; - *low = (uae_u32) (time & 0xffffffff); - return (uae_u32)(time >> 32); - } - return 0; } int main (int argc, char *argv[]) { - struct sigaction action; - - defaultCpuSpeed = getDefaultCpuSpeed(); - - // Get startup path - getcwd(start_path_data, MAX_DPATH); - loadAdfDir(); - rp9_init(); + struct sigaction action; - snprintf(savestate_fname, MAX_PATH, "%s/saves/default.ads", start_path_data); - logging_init (); - - memset(&action, 0, sizeof(action)); - action.sa_sigaction = signal_segv; - action.sa_flags = SA_SIGINFO; - if(sigaction(SIGSEGV, &action, NULL) < 0) - { - printf("Failed to set signal handler (SIGSEGV).\n"); - abort(); - } - if(sigaction(SIGILL, &action, NULL) < 0) - { - printf("Failed to set signal handler (SIGILL).\n"); - abort(); - } + defaultCpuSpeed = getDefaultCpuSpeed(); - alloc_AmigaMem(); - RescanROMs(); + // Get startup path + getcwd(start_path_data, MAX_DPATH); + loadAdfDir(); + rp9_init(); + + snprintf(savestate_fname, MAX_PATH, "%s/saves/default.ads", start_path_data); + logging_init (); + + memset(&action, 0, sizeof(action)); + action.sa_sigaction = signal_segv; + action.sa_flags = SA_SIGINFO; + if(sigaction(SIGSEGV, &action, NULL) < 0) + { + printf("Failed to set signal handler (SIGSEGV).\n"); + abort(); + } + if(sigaction(SIGILL, &action, NULL) < 0) + { + printf("Failed to set signal handler (SIGILL).\n"); + abort(); + } + + alloc_AmigaMem(); + RescanROMs(); #ifdef CAPSLOCK_DEBIAN_WORKAROUND - // set capslock state based upon current "real" state - ioctl(0, KDGKBLED, &kbd_flags); - ioctl(0, KDGETLED, &kbd_led_status); - if ((kbd_flags & 07) & LED_CAP) - { - // record capslock pressed - kbd_led_status |= LED_CAP; - inputdevice_do_keyboard(AK_CAPSLOCK, 1); - } else - { - // record capslock as not pressed - kbd_led_status &= ~LED_CAP; - inputdevice_do_keyboard(AK_CAPSLOCK, 0); - } - ioctl(0, KDSETLED, kbd_led_status); + // set capslock state based upon current "real" state + ioctl(0, KDGKBLED, &kbd_flags); + ioctl(0, KDGETLED, &kbd_led_status); + if ((kbd_flags & 07) & LED_CAP) + { + // record capslock pressed + kbd_led_status |= LED_CAP; + inputdevice_do_keyboard(AK_CAPSLOCK, 1); + } + else + { + // record capslock as not pressed + kbd_led_status &= ~LED_CAP; + inputdevice_do_keyboard(AK_CAPSLOCK, 0); + } + ioctl(0, KDSETLED, kbd_led_status); #endif - //keyboard_settrans(); - real_main (argc, argv); - - ClearAvailableROMList(); - romlist_clear(); - free_keyring(); - free_AmigaMem(); - lstMRUDiskList.clear(); - lstMRUCDList.clear(); - rp9_cleanup(); - - logging_cleanup(); + //keyboard_settrans(); + real_main (argc, argv); + + ClearAvailableROMList(); + romlist_clear(); + free_keyring(); + free_AmigaMem(); + lstMRUDiskList.clear(); + lstMRUCDList.clear(); + rp9_cleanup(); + + logging_cleanup(); // printf("Threads at exit:\n"); // dbg_list_threads(); - - return 0; + + return 0; } int handle_msgpump (void) { - int got = 0; - SDL_Event rEvent; - int keycode; - int modifier; - - if(delayed_mousebutton) { - --delayed_mousebutton; - if(delayed_mousebutton == 0) - setmousebuttonstate (0, 0, 1); - } - - while (SDL_PollEvent(&rEvent)) { - got = 1; - - switch (rEvent.type) - { - case SDL_QUIT: - uae_quit(); - break; - - case SDL_KEYDOWN: + int got = 0; + SDL_Event rEvent; + int keycode; + int modifier; - if(rEvent.key.keysym.sym == currprefs.key_for_menu) - inputdevice_add_inputcode (AKS_ENTERGUI, 1); - switch(rEvent.key.keysym.sym) - { + if(delayed_mousebutton) + { + --delayed_mousebutton; + if(delayed_mousebutton == 0) + setmousebuttonstate (0, 0, 1); + } - case SDLK_LSHIFT: // Shift key - inputdevice_do_keyboard(AK_LSH, 1); - break; - - case SDLK_RSHIFT: // Left shoulder button - case SDLK_RCTRL: // Right shoulder button - if(currprefs.input_tablet > TABLET_OFF) { - // Holding left or right shoulder button -> stylus does right mousebutton - doStylusRightClick = 1; - } - // Fall through... - - default: - if(currprefs.pandora_customControls) { - keycode = customControlMap[rEvent.key.keysym.sym]; - if(keycode < 0) { - // Simulate mouse or joystick - SimulateMouseOrJoy(keycode, 1); - break; - } - else if(keycode > 0) { - // Send mapped key press - inputdevice_do_keyboard(keycode, 1); - break; - } - } - else - - modifier = rEvent.key.keysym.mod; - keycode = translate_pandora_keys(rEvent.key.keysym.sym, &modifier); - if(keycode) - { - if(modifier == KMOD_SHIFT) - inputdevice_do_keyboard(AK_LSH, 1); - else - inputdevice_do_keyboard(AK_LSH, 0); - inputdevice_do_keyboard(keycode, 1); - } else { - if (keyboard_type == KEYCODE_UNK) - inputdevice_translatekeycode(0, rEvent.key.keysym.sym, 1); - else - inputdevice_translatekeycode(0, rEvent.key.keysym.scancode, 1); + while (SDL_PollEvent(&rEvent)) + { + got = 1; - } - #ifdef CAPSLOCK_DEBIAN_WORKAROUND - if (rEvent.key.keysym.sym == SDLK_CAPSLOCK) - { - ioctl(0, KDGETLED, &kbd_led_status); - kbd_led_status |= LED_CAP; - ioctl(0, KDSETLED, kbd_led_status); - } - #endif - break; - } - break; - - case SDL_KEYUP: - switch(rEvent.key.keysym.sym) - { - - case SDLK_LSHIFT: // Shift key - inputdevice_do_keyboard(AK_LSH, 0); + switch (rEvent.type) + { + case SDL_QUIT: + uae_quit(); break; - - case SDLK_RSHIFT: // Left shoulder button - case SDLK_RCTRL: // Right shoulder button - if(currprefs.input_tablet > TABLET_OFF) { - // Release left or right shoulder button -> stylus does left mousebutton - doStylusRightClick = 0; - } + + case SDL_KEYDOWN: + + if(rEvent.key.keysym.sym == currprefs.key_for_menu) + inputdevice_add_inputcode (AKS_ENTERGUI, 1); + switch(rEvent.key.keysym.sym) + { + + case SDLK_LSHIFT: // Shift key + inputdevice_do_keyboard(AK_LSH, 1); + break; + + case SDLK_RSHIFT: // Left shoulder button + case SDLK_RCTRL: // Right shoulder button + if(currprefs.input_tablet > TABLET_OFF) + { + // Holding left or right shoulder button -> stylus does right mousebutton + doStylusRightClick = 1; + } // Fall through... - - default: - if(currprefs.pandora_customControls) { - keycode = customControlMap[rEvent.key.keysym.sym]; - if(keycode < 0) { - // Simulate mouse or joystick - SimulateMouseOrJoy(keycode, 0); - break; - } - else if(keycode > 0) { - // Send mapped key release - inputdevice_do_keyboard(keycode, 0); - break; - } - } - modifier = rEvent.key.keysym.mod; - keycode = translate_pandora_keys(rEvent.key.keysym.sym, &modifier); - if(keycode) - { - inputdevice_do_keyboard(keycode, 0); - if(modifier == KMOD_SHIFT) - inputdevice_do_keyboard(AK_LSH, 0); - } else { - if (keyboard_type == KEYCODE_UNK) - inputdevice_translatekeycode(0, rEvent.key.keysym.sym, 0); - else - inputdevice_translatekeycode(0, rEvent.key.keysym.scancode, 0); - } - #ifdef CAPSLOCK_DEBIAN_WORKAROUND - if (rEvent.key.keysym.sym == SDLK_CAPSLOCK) - { - ioctl(0, KDGETLED, &kbd_led_status); - kbd_led_status &= ~LED_CAP; - ioctl(0, KDSETLED, kbd_led_status); - } - #endif - break; - } - break; - - case SDL_MOUSEBUTTONDOWN: - if(currprefs.jports[0].id == JSEM_MICE || currprefs.jports[1].id == JSEM_MICE) { - if(rEvent.button.button == SDL_BUTTON_LEFT) { - if(currprefs.input_tablet > TABLET_OFF && !doStylusRightClick) { - // Delay mousebutton, we need new position first... - delayed_mousebutton = currprefs.pandora_tapDelay << 1; - } else { - setmousebuttonstate (0, doStylusRightClick, 1); - } - } - else if(rEvent.button.button == SDL_BUTTON_RIGHT) - setmousebuttonstate (0, 1, 1); - } - break; + default: + if(currprefs.pandora_customControls) + { + keycode = customControlMap[rEvent.key.keysym.sym]; + if(keycode < 0) + { + // Simulate mouse or joystick + SimulateMouseOrJoy(keycode, 1); + break; + } + else if(keycode > 0) + { + // Send mapped key press + inputdevice_do_keyboard(keycode, 1); + break; + } + } + else - case SDL_MOUSEBUTTONUP: - if(currprefs.jports[0].id == JSEM_MICE || currprefs.jports[1].id == JSEM_MICE) { - if(rEvent.button.button == SDL_BUTTON_LEFT) { - setmousebuttonstate (0, doStylusRightClick, 0); - } - else if(rEvent.button.button == SDL_BUTTON_RIGHT) - setmousebuttonstate (0, 1, 0); - } - break; - - case SDL_MOUSEMOTION: - if(currprefs.input_tablet == TABLET_OFF) { - if(currprefs.jports[0].id == JSEM_MICE || currprefs.jports[1].id == JSEM_MICE) { - int x, y; - int mouseScale = currprefs.input_joymouse_multiplier / 2; - x = rEvent.motion.xrel; - y = rEvent.motion.yrel; -#ifdef PANDORA_SPECIFIC - if(rEvent.motion.x == 0 && x > -4) - x = -4; - if(rEvent.motion.y == 0 && y > -4) - y = -4; - if(rEvent.motion.x == currprefs.gfx_size.width - 1 && x < 4) - x = 4; - if(rEvent.motion.y == currprefs.gfx_size.height - 1 && y < 4) - y = 4; + modifier = rEvent.key.keysym.mod; + keycode = translate_pandora_keys(rEvent.key.keysym.sym, &modifier); + if(keycode) + { + if(modifier == KMOD_SHIFT) + inputdevice_do_keyboard(AK_LSH, 1); + else + inputdevice_do_keyboard(AK_LSH, 0); + inputdevice_do_keyboard(keycode, 1); + } + else + { + if (keyboard_type == KEYCODE_UNK) + inputdevice_translatekeycode(0, rEvent.key.keysym.sym, 1); + else + inputdevice_translatekeycode(0, rEvent.key.keysym.scancode, 1); + + } +#ifdef CAPSLOCK_DEBIAN_WORKAROUND + if (rEvent.key.keysym.sym == SDLK_CAPSLOCK) + { + ioctl(0, KDGETLED, &kbd_led_status); + kbd_led_status |= LED_CAP; + ioctl(0, KDSETLED, kbd_led_status); + } #endif - setmousestate(0, 0, x * mouseScale, 0); - setmousestate(0, 1, y * mouseScale, 0); - } + break; + } + break; + + case SDL_KEYUP: + switch(rEvent.key.keysym.sym) + { + + case SDLK_LSHIFT: // Shift key + inputdevice_do_keyboard(AK_LSH, 0); + break; + + case SDLK_RSHIFT: // Left shoulder button + case SDLK_RCTRL: // Right shoulder button + if(currprefs.input_tablet > TABLET_OFF) + { + // Release left or right shoulder button -> stylus does left mousebutton + doStylusRightClick = 0; + } + // Fall through... + + default: + if(currprefs.pandora_customControls) + { + keycode = customControlMap[rEvent.key.keysym.sym]; + if(keycode < 0) + { + // Simulate mouse or joystick + SimulateMouseOrJoy(keycode, 0); + break; + } + else if(keycode > 0) + { + // Send mapped key release + inputdevice_do_keyboard(keycode, 0); + break; + } + } + + modifier = rEvent.key.keysym.mod; + keycode = translate_pandora_keys(rEvent.key.keysym.sym, &modifier); + if(keycode) + { + inputdevice_do_keyboard(keycode, 0); + if(modifier == KMOD_SHIFT) + inputdevice_do_keyboard(AK_LSH, 0); + } + else + { + if (keyboard_type == KEYCODE_UNK) + inputdevice_translatekeycode(0, rEvent.key.keysym.sym, 0); + else + inputdevice_translatekeycode(0, rEvent.key.keysym.scancode, 0); + } +#ifdef CAPSLOCK_DEBIAN_WORKAROUND + if (rEvent.key.keysym.sym == SDLK_CAPSLOCK) + { + ioctl(0, KDGETLED, &kbd_led_status); + kbd_led_status &= ~LED_CAP; + ioctl(0, KDSETLED, kbd_led_status); + } +#endif + break; + } + break; + + case SDL_MOUSEBUTTONDOWN: + if(currprefs.jports[0].id == JSEM_MICE || currprefs.jports[1].id == JSEM_MICE) + { + if(rEvent.button.button == SDL_BUTTON_LEFT) + { + if(currprefs.input_tablet > TABLET_OFF && !doStylusRightClick) + { + // Delay mousebutton, we need new position first... + delayed_mousebutton = currprefs.pandora_tapDelay << 1; + } + else + { + setmousebuttonstate (0, doStylusRightClick, 1); + } + } + else if(rEvent.button.button == SDL_BUTTON_RIGHT) + setmousebuttonstate (0, 1, 1); + } + break; + + case SDL_MOUSEBUTTONUP: + if(currprefs.jports[0].id == JSEM_MICE || currprefs.jports[1].id == JSEM_MICE) + { + if(rEvent.button.button == SDL_BUTTON_LEFT) + { + setmousebuttonstate (0, doStylusRightClick, 0); + } + else if(rEvent.button.button == SDL_BUTTON_RIGHT) + setmousebuttonstate (0, 1, 0); + } + break; + + case SDL_MOUSEMOTION: + if(currprefs.input_tablet == TABLET_OFF) + { + if(currprefs.jports[0].id == JSEM_MICE || currprefs.jports[1].id == JSEM_MICE) + { + int x, y; + int mouseScale = currprefs.input_joymouse_multiplier / 2; + x = rEvent.motion.xrel; + y = rEvent.motion.yrel; +#ifdef PANDORA_SPECIFIC + if(rEvent.motion.x == 0 && x > -4) + x = -4; + if(rEvent.motion.y == 0 && y > -4) + y = -4; + if(rEvent.motion.x == currprefs.gfx_size.width - 1 && x < 4) + x = 4; + if(rEvent.motion.y == currprefs.gfx_size.height - 1 && y < 4) + y = 4; +#endif + setmousestate(0, 0, x * mouseScale, 0); + setmousestate(0, 1, y * mouseScale, 0); + } + } + break; } - break; - } - } - return got; + } + return got; } void handle_events (void) { - /* Handle GUI events */ - gui_handle_events (); + /* Handle GUI events */ + gui_handle_events (); } @@ -1107,12 +1136,12 @@ void amiga_clipboard_init (void) void amiga_clipboard_task_start (uaecptr data) { - clipboard_data = data; + clipboard_data = data; } uae_u32 amiga_clipboard_proc_start (void) { - return clipboard_data; + return clipboard_data; } void amiga_clipboard_got_data (uaecptr data, uae_u32 size, uae_u32 actual) @@ -1121,7 +1150,7 @@ void amiga_clipboard_got_data (uaecptr data, uae_u32 size, uae_u32 actual) int amiga_clipboard_want_data (void) { - return 0; + return 0; } void clipboard_vsync (void) diff --git a/src/od-pandora/pandora_filesys.cpp b/src/od-pandora/pandora_filesys.cpp index 1ba2b6d1..30c1c731 100644 --- a/src/od-pandora/pandora_filesys.cpp +++ b/src/od-pandora/pandora_filesys.cpp @@ -9,182 +9,192 @@ int my_setcurrentdir (const TCHAR *curdir, TCHAR *oldcur) { - int ret = 0; - if (oldcur) - getcwd(oldcur, MAX_DPATH); - if (curdir) - chdir (curdir); - return ret; + int ret = 0; + if (oldcur) + getcwd(oldcur, MAX_DPATH); + if (curdir) + chdir (curdir); + return ret; } int my_mkdir (const char*name) { - return mkdir(name, 0777); + return mkdir(name, 0777); } int my_rmdir (const char*name) { - return rmdir(name); + return rmdir(name); } int my_unlink (const char* name) { - return unlink(name); + return unlink(name); } int my_rename (const char* oldname, const char* newname) { - return rename(oldname, newname); + return rename(oldname, newname); } -struct my_opendir_s { - void *h; +struct my_opendir_s +{ + void *h; }; struct my_opendir_s *my_opendir (const char* name) { - struct my_opendir_s *mod; + struct my_opendir_s *mod; - mod = xmalloc (struct my_opendir_s, 1); - if (!mod) - return NULL; - mod->h = opendir(name); - if (mod->h == NULL) { - xfree (mod); - return NULL; - } - return mod; + mod = xmalloc (struct my_opendir_s, 1); + if (!mod) + return NULL; + mod->h = opendir(name); + if (mod->h == NULL) + { + xfree (mod); + return NULL; + } + return mod; } void my_closedir (struct my_opendir_s *mod) { - if (mod) - closedir((DIR *) mod->h); - xfree (mod); + if (mod) + closedir((DIR *) mod->h); + xfree (mod); } int my_readdir (struct my_opendir_s *mod, char* name) { - struct dirent *de; - - if (!mod) - return 0; - - de = readdir((DIR *) mod->h); - if(de == 0) - return 0; - strncpy(name, de->d_name, MAX_PATH); - return 1; + struct dirent *de; + + if (!mod) + return 0; + + de = readdir((DIR *) mod->h); + if(de == 0) + return 0; + strncpy(name, de->d_name, MAX_PATH); + return 1; } -struct my_openfile_s { - void *h; +struct my_openfile_s +{ + void *h; }; void my_close (struct my_openfile_s *mos) { - if(mos) - close((int) mos->h); - xfree (mos); + if(mos) + close((int) mos->h); + xfree (mos); } uae_s64 int my_lseek (struct my_openfile_s *mos, uae_s64 int offset, int pos) { - return lseek((int) mos->h, offset, pos); + return lseek((int) mos->h, offset, pos); } uae_s64 int my_fsize (struct my_openfile_s *mos) { - uae_s64 pos = lseek((int) mos->h, 0, SEEK_CUR); - uae_s64 size = lseek((int) mos->h, 0, SEEK_END); - lseek((int) mos->h, pos, SEEK_SET); - return size; + uae_s64 pos = lseek((int) mos->h, 0, SEEK_CUR); + uae_s64 size = lseek((int) mos->h, 0, SEEK_END); + lseek((int) mos->h, pos, SEEK_SET); + return size; } unsigned int my_read (struct my_openfile_s *mos, void *b, unsigned int size) { - return read((int) mos->h, b, size); + return read((int) mos->h, b, size); } unsigned int my_write (struct my_openfile_s *mos, void *b, unsigned int size) { - return write((int) mos->h, b, size); + return write((int) mos->h, b, size); } int my_existsfile (const char *name) { - struct stat st; - if (lstat (name, &st) == -1) { - return 0; - } else { - if (!S_ISDIR(st.st_mode)) - return 1; - } + struct stat st; + if (lstat (name, &st) == -1) + { return 0; + } + else + { + if (!S_ISDIR(st.st_mode)) + return 1; + } + return 0; } int my_existsdir(const char *name) { - struct stat st; + struct stat st; - if(lstat(name, &st) == -1) { + if(lstat(name, &st) == -1) + { + return 0; + } + else + { + if (S_ISDIR(st.st_mode)) + return 1; + } return 0; - } else { - if (S_ISDIR(st.st_mode)) - return 1; - } - return 0; } struct my_openfile_s *my_open (const TCHAR *name, int flags) { - struct my_openfile_s *mos; + struct my_openfile_s *mos; - mos = xmalloc (struct my_openfile_s, 1); - if (!mos) - return NULL; - mos->h = (void *) open(name, flags); - if (!mos->h) { - xfree (mos); - mos = NULL; - } - return mos; + mos = xmalloc (struct my_openfile_s, 1); + if (!mos) + return NULL; + mos->h = (void *) open(name, flags); + if (!mos->h) + { + xfree (mos); + mos = NULL; + } + return mos; } int my_truncate (const TCHAR *name, uae_u64 len) { - return truncate(name, len); + return truncate(name, len); } int my_getvolumeinfo (const char *root) { - struct stat st; - int ret = 0; + struct stat st; + int ret = 0; - if (lstat (root, &st) == -1) - return -1; - if (!S_ISDIR(st.st_mode)) - return -1; - return ret; + if (lstat (root, &st) == -1) + return -1; + if (!S_ISDIR(st.st_mode)) + return -1; + return ret; } @@ -196,6 +206,6 @@ FILE *my_opentext (const TCHAR *name) /* Returns 1 if an actual volume-name was found, 2 if no volume-name (so uses some defaults) */ int target_get_volume_name(struct uaedev_mount_info *mtinf, const char *volumepath, char *volumename, int size, bool inserted, bool fullcheck) { - sprintf(volumename, "DH_%c", volumepath[0]); - return 2; + sprintf(volumename, "DH_%c", volumepath[0]); + return 2; } diff --git a/src/od-pandora/pandora_gfx.cpp b/src/od-pandora/pandora_gfx.cpp index 4c7bb3f7..983bd499 100644 --- a/src/od-pandora/pandora_gfx.cpp +++ b/src/od-pandora/pandora_gfx.cpp @@ -4,7 +4,7 @@ #include "uae.h" #include "options.h" #include "gui.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "xwin.h" @@ -59,8 +59,9 @@ struct MultiDisplay Displays[MAX_DISPLAYS]; int screen_is_picasso = 0; static SDL_Surface *current_screenshot = NULL; -static char screenshot_filename_default[255]={ - '/', 't', 'm', 'p', '/', 'n', 'u', 'l', 'l', '.', 'p', 'n', 'g', '\0' +static char screenshot_filename_default[255]= +{ + '/', 't', 'm', 'p', '/', 'n', 'u', 'l', 'l', '.', 'p', 'n', 'g', '\0' }; char *screenshot_filename=(char *)&screenshot_filename_default[0]; FILE *screenshot_file=NULL; @@ -82,10 +83,10 @@ static unsigned long next_synctime = 0; int graphics_setup (void) { #ifdef PICASSO96 - picasso_InitResolutions(); - InitPicasso96(); + picasso_InitResolutions(); + InitPicasso96(); #endif - return 1; + return 1; } @@ -96,41 +97,41 @@ TTF_Font *liveFont = NULL; int liveInfoCounter = 0; void ShowLiveInfo(char *msg) { - if(liveFont == NULL) - { - TTF_Init(); - liveFont = TTF_OpenFont("data/FreeSans.ttf", 12); - } - if(liveInfo != NULL) - SDL_FreeSurface(liveInfo); - SDL_Color col; - col.r = 0xbf; - col.g = 0xbf; - col.b = 0xbf; - liveInfo = TTF_RenderText_Solid(liveFont, msg, col); - liveInfoCounter = 50 * 5; + if(liveFont == NULL) + { + TTF_Init(); + liveFont = TTF_OpenFont("data/FreeSans.ttf", 12); + } + if(liveInfo != NULL) + SDL_FreeSurface(liveInfo); + SDL_Color col; + col.r = 0xbf; + col.g = 0xbf; + col.b = 0xbf; + liveInfo = TTF_RenderText_Solid(liveFont, msg, col); + liveInfoCounter = 50 * 5; } void RefreshLiveInfo() { - if(liveInfoCounter > 0) - { - SDL_Rect dst, src; - - dst.x = 0; - dst.y = 2; - src.w = liveInfo->w; - src.h = liveInfo->h; - src.x = 0; - src.y = 0; - SDL_BlitSurface(liveInfo, &src, prSDLScreen, &dst); - liveInfoCounter--; - if(liveInfoCounter == 0) + if(liveInfoCounter > 0) { - SDL_FreeSurface(liveInfo); - liveInfo = NULL; + SDL_Rect dst, src; + + dst.x = 0; + dst.y = 2; + src.w = liveInfo->w; + src.h = liveInfo->h; + src.x = 0; + src.y = 0; + SDL_BlitSurface(liveInfo, &src, prSDLScreen, &dst); + liveInfoCounter--; + if(liveInfoCounter == 0) + { + SDL_FreeSurface(liveInfo); + liveInfo = NULL; + } } - } } #endif @@ -138,326 +139,327 @@ void RefreshLiveInfo() void InitAmigaVidMode(struct uae_prefs *p) { - /* Initialize structure for Amiga video modes */ - gfxvidinfo.pixbytes = 2; - gfxvidinfo.bufmem = (uae_u8 *)prSDLScreen->pixels; - gfxvidinfo.outwidth = p->gfx_size.width; - gfxvidinfo.outheight = p->gfx_size.height; - gfxvidinfo.rowbytes = prSDLScreen->pitch; + /* Initialize structure for Amiga video modes */ + gfxvidinfo.pixbytes = 2; + gfxvidinfo.bufmem = (uae_u8 *)prSDLScreen->pixels; + gfxvidinfo.outwidth = p->gfx_size.width; + gfxvidinfo.outheight = p->gfx_size.height; + gfxvidinfo.rowbytes = prSDLScreen->pitch; } void graphics_subshutdown (void) { - if(prSDLScreen != NULL) - { - SDL_FreeSurface(prSDLScreen); - prSDLScreen = NULL; - } - if(fbdev != -1) - { - close(fbdev); - fbdev = -1; - } + if(prSDLScreen != NULL) + { + SDL_FreeSurface(prSDLScreen); + prSDLScreen = NULL; + } + if(fbdev != -1) + { + close(fbdev); + fbdev = -1; + } } static void CalcPandoraWidth(struct uae_prefs *p) { - int amigaWidth = p->gfx_size.width; - int amigaHeight = p->gfx_size.height; - int pandHeight = 480; - - p->gfx_resolution = p->gfx_size.width > 600 ? 1 : 0; - if(amigaWidth > 600) - amigaWidth = amigaWidth / 2; // Hires selected, but we calc in lores - int pandWidth = (amigaWidth * pandHeight) / amigaHeight; - pandWidth = pandWidth & (~1); - if((pandWidth * amigaHeight) / pandHeight < amigaWidth) - pandWidth += 2; - if(pandWidth > 800) - pandWidth = 800; - p->gfx_size_fs.width = pandWidth; + int amigaWidth = p->gfx_size.width; + int amigaHeight = p->gfx_size.height; + int pandHeight = 480; + + p->gfx_resolution = p->gfx_size.width > 600 ? 1 : 0; + if(amigaWidth > 600) + amigaWidth = amigaWidth / 2; // Hires selected, but we calc in lores + int pandWidth = (amigaWidth * pandHeight) / amigaHeight; + pandWidth = pandWidth & (~1); + if((pandWidth * amigaHeight) / pandHeight < amigaWidth) + pandWidth += 2; + if(pandWidth > 800) + pandWidth = 800; + p->gfx_size_fs.width = pandWidth; } static void open_screen(struct uae_prefs *p) { - char layersize[20]; + char layersize[20]; - graphics_subshutdown(); - - if(!screen_is_picasso) - { - CalcPandoraWidth(p); + graphics_subshutdown(); - snprintf(layersize, 20, "%dx480", p->gfx_size_fs.width); + if(!screen_is_picasso) + { + CalcPandoraWidth(p); + + snprintf(layersize, 20, "%dx480", p->gfx_size_fs.width); #ifndef WIN32 - setenv("SDL_OMAP_LAYER_SIZE", layersize, 1); + setenv("SDL_OMAP_LAYER_SIZE", layersize, 1); #endif - } - else - { + } + else + { #ifdef PICASSO96 - if(picasso_vidinfo.height < 480) - snprintf(layersize, 20, "%dx480", picasso_vidinfo.width); - else - snprintf(layersize, 20, "%dx%d", picasso_vidinfo.width, picasso_vidinfo.height); + if(picasso_vidinfo.height < 480) + snprintf(layersize, 20, "%dx480", picasso_vidinfo.width); + else + snprintf(layersize, 20, "%dx%d", picasso_vidinfo.width, picasso_vidinfo.height); #endif #ifndef WIN32 - setenv("SDL_OMAP_LAYER_SIZE", layersize, 1); + setenv("SDL_OMAP_LAYER_SIZE", layersize, 1); #endif - } + } #ifndef WIN32 - setenv("SDL_OMAP_VSYNC", "0", 1); + setenv("SDL_OMAP_VSYNC", "0", 1); #endif #ifdef ANDROIDSDL - update_onscreen(); + update_onscreen(); #endif - if(!screen_is_picasso) - { - if(prSDLScreen == NULL || prSDLScreen->w != p->gfx_size.width || prSDLScreen->h != p->gfx_size.height) + if(!screen_is_picasso) { + if(prSDLScreen == NULL || prSDLScreen->w != p->gfx_size.width || prSDLScreen->h != p->gfx_size.height) + { #if defined(PANDORA) && !defined(WIN32) - prSDLScreen = SDL_SetVideoMode(p->gfx_size.width, p->gfx_size.height, 16, SDL_HWSURFACE|SDL_FULLSCREEN|SDL_DOUBLEBUF); + prSDLScreen = SDL_SetVideoMode(p->gfx_size.width, p->gfx_size.height, 16, SDL_HWSURFACE|SDL_FULLSCREEN|SDL_DOUBLEBUF); #elif defined(PANDORA) && defined(WIN32) - prSDLScreen = SDL_SetVideoMode(p->gfx_size.width, p->gfx_size.height, 16, SDL_SWSURFACE|SDL_DOUBLEBUF); + prSDLScreen = SDL_SetVideoMode(p->gfx_size.width, p->gfx_size.height, 16, SDL_SWSURFACE|SDL_DOUBLEBUF); #else - prSDLScreen = SDL_SetVideoMode(p->gfx_size.width, p->gfx_size.height, 16, SDL_HWSURFACE|SDL_FULLSCREEN); + prSDLScreen = SDL_SetVideoMode(p->gfx_size.width, p->gfx_size.height, 16, SDL_HWSURFACE|SDL_FULLSCREEN); +#endif + } + } + else + { +#ifdef PICASSO96 + prSDLScreen = SDL_SetVideoMode(picasso_vidinfo.width, picasso_vidinfo.height, 16, SDL_HWSURFACE|SDL_FULLSCREEN|SDL_DOUBLEBUF); #endif } - } - else - { -#ifdef PICASSO96 - prSDLScreen = SDL_SetVideoMode(picasso_vidinfo.width, picasso_vidinfo.height, 16, SDL_HWSURFACE|SDL_FULLSCREEN|SDL_DOUBLEBUF); -#endif - } - if(prSDLScreen != NULL) - { - InitAmigaVidMode(p); - init_row_map(); - } - - current_vsync_frame = 0; - fbdev = open("/dev/fb0", O_RDWR); - if(fbdev != -1) - { - // Check if we have vsync with frame counter... + if(prSDLScreen != NULL) + { + InitAmigaVidMode(p); + init_row_map(); + } + current_vsync_frame = 0; - ioctl(fbdev, OMAPFB_WAITFORVSYNC_FRAME, ¤t_vsync_frame); - if(current_vsync_frame != 0) - current_vsync_frame += 2; - } + fbdev = open("/dev/fb0", O_RDWR); + if(fbdev != -1) + { + // Check if we have vsync with frame counter... + current_vsync_frame = 0; + ioctl(fbdev, OMAPFB_WAITFORVSYNC_FRAME, ¤t_vsync_frame); + if(current_vsync_frame != 0) + current_vsync_frame += 2; + } } void update_display(struct uae_prefs *p) { - open_screen(p); - - SDL_ShowCursor(SDL_DISABLE); + open_screen(p); - framecnt = 1; // Don't draw frame before reset done + SDL_ShowCursor(SDL_DISABLE); + + framecnt = 1; // Don't draw frame before reset done } int check_prefs_changed_gfx (void) { - int changed = 0; - - if(currprefs.gfx_size.height != changed_prefs.gfx_size.height || - currprefs.gfx_size.width != changed_prefs.gfx_size.width || - currprefs.gfx_size_fs.width != changed_prefs.gfx_size_fs.width || - currprefs.gfx_resolution != changed_prefs.gfx_resolution) - { - cfgfile_configuration_change(1); - currprefs.gfx_size.height = changed_prefs.gfx_size.height; - currprefs.gfx_size.width = changed_prefs.gfx_size.width; - currprefs.gfx_size_fs.width = changed_prefs.gfx_size_fs.width; - currprefs.gfx_resolution = changed_prefs.gfx_resolution; - update_display(&currprefs); - changed = 1; - } - if (currprefs.leds_on_screen != changed_prefs.leds_on_screen || - currprefs.pandora_hide_idle_led != changed_prefs.pandora_hide_idle_led || - currprefs.pandora_vertical_offset != changed_prefs.pandora_vertical_offset) - { - currprefs.leds_on_screen = changed_prefs.leds_on_screen; - currprefs.pandora_hide_idle_led = changed_prefs.pandora_hide_idle_led; - currprefs.pandora_vertical_offset = changed_prefs.pandora_vertical_offset; - changed = 1; - } - if (currprefs.chipset_refreshrate != changed_prefs.chipset_refreshrate) - { - currprefs.chipset_refreshrate = changed_prefs.chipset_refreshrate; - init_hz_full (); - changed = 1; - } + int changed = 0; - currprefs.filesys_limit = changed_prefs.filesys_limit; - - return changed; + if(currprefs.gfx_size.height != changed_prefs.gfx_size.height || + currprefs.gfx_size.width != changed_prefs.gfx_size.width || + currprefs.gfx_size_fs.width != changed_prefs.gfx_size_fs.width || + currprefs.gfx_resolution != changed_prefs.gfx_resolution) + { + cfgfile_configuration_change(1); + currprefs.gfx_size.height = changed_prefs.gfx_size.height; + currprefs.gfx_size.width = changed_prefs.gfx_size.width; + currprefs.gfx_size_fs.width = changed_prefs.gfx_size_fs.width; + currprefs.gfx_resolution = changed_prefs.gfx_resolution; + update_display(&currprefs); + changed = 1; + } + if (currprefs.leds_on_screen != changed_prefs.leds_on_screen || + currprefs.pandora_hide_idle_led != changed_prefs.pandora_hide_idle_led || + currprefs.pandora_vertical_offset != changed_prefs.pandora_vertical_offset) + { + currprefs.leds_on_screen = changed_prefs.leds_on_screen; + currprefs.pandora_hide_idle_led = changed_prefs.pandora_hide_idle_led; + currprefs.pandora_vertical_offset = changed_prefs.pandora_vertical_offset; + changed = 1; + } + if (currprefs.chipset_refreshrate != changed_prefs.chipset_refreshrate) + { + currprefs.chipset_refreshrate = changed_prefs.chipset_refreshrate; + init_hz_full (); + changed = 1; + } + + currprefs.filesys_limit = changed_prefs.filesys_limit; + + return changed; } int lockscr (void) { - SDL_LockSurface(prSDLScreen); - return 1; + SDL_LockSurface(prSDLScreen); + return 1; } void unlockscr (void) { - SDL_UnlockSurface(prSDLScreen); + SDL_UnlockSurface(prSDLScreen); } void wait_for_vsync(void) { - if(fbdev != -1) - { - unsigned int dummy; - ioctl(fbdev, OMAPFB_WAITFORVSYNC, &dummy); - } + if(fbdev != -1) + { + unsigned int dummy; + ioctl(fbdev, OMAPFB_WAITFORVSYNC, &dummy); + } } void flush_screen () { - if (savestate_state == STATE_DOSAVE) - { - if(delay_savestate_frame > 0) - --delay_savestate_frame; - else + if (savestate_state == STATE_DOSAVE) { - CreateScreenshot(); - save_thumb(screenshot_filename); - savestate_state = 0; + if(delay_savestate_frame > 0) + --delay_savestate_frame; + else + { + CreateScreenshot(); + save_thumb(screenshot_filename); + savestate_state = 0; + } } - } #ifdef WITH_LOGGING - RefreshLiveInfo(); + RefreshLiveInfo(); #endif - unsigned long start = read_processor_time(); - if(current_vsync_frame == 0) - { - // Old style for vsync and idle time calc - if(start < next_synctime && next_synctime - start > time_per_frame - 1000) - usleep((next_synctime - start) - 750); - ioctl(fbdev, OMAPFB_WAITFORVSYNC, ¤t_vsync_frame); - } - else + unsigned long start = read_processor_time(); + if(current_vsync_frame == 0) { - // New style for vsync and idle time calc - int wait_till = current_vsync_frame; - do - { - ioctl(fbdev, OMAPFB_WAITFORVSYNC_FRAME, ¤t_vsync_frame); - } while (wait_till >= current_vsync_frame); - - if(wait_till + 1 != current_vsync_frame) - { - // We missed a vsync... - next_synctime = 0; + // Old style for vsync and idle time calc + if(start < next_synctime && next_synctime - start > time_per_frame - 1000) + usleep((next_synctime - start) - 750); + ioctl(fbdev, OMAPFB_WAITFORVSYNC, ¤t_vsync_frame); } - current_vsync_frame += currprefs.gfx_framerate; - } - + else + { + // New style for vsync and idle time calc + int wait_till = current_vsync_frame; + do + { + ioctl(fbdev, OMAPFB_WAITFORVSYNC_FRAME, ¤t_vsync_frame); + } + while (wait_till >= current_vsync_frame); + + if(wait_till + 1 != current_vsync_frame) + { + // We missed a vsync... + next_synctime = 0; + } + current_vsync_frame += currprefs.gfx_framerate; + } + // Android swapped SDL_Flip & last_synctime for fixing performance - SDL_Flip(prSDLScreen); - last_synctime = read_processor_time(); + SDL_Flip(prSDLScreen); + last_synctime = read_processor_time(); - if(!screen_is_picasso) - gfxvidinfo.bufmem = (uae_u8 *)prSDLScreen->pixels; + if(!screen_is_picasso) + gfxvidinfo.bufmem = (uae_u8 *)prSDLScreen->pixels; - if(last_synctime - next_synctime > time_per_frame * (1 + currprefs.gfx_framerate) - 1000 || next_synctime < start) - adjust_idletime(0); - else - adjust_idletime(next_synctime - start); - - if (last_synctime - next_synctime > time_per_frame - 5000) - next_synctime = last_synctime + time_per_frame * (1 + currprefs.gfx_framerate); - else - next_synctime = next_synctime + time_per_frame * (1 + currprefs.gfx_framerate); + if(last_synctime - next_synctime > time_per_frame * (1 + currprefs.gfx_framerate) - 1000 || next_synctime < start) + adjust_idletime(0); + else + adjust_idletime(next_synctime - start); - init_row_map(); + if (last_synctime - next_synctime > time_per_frame - 5000) + next_synctime = last_synctime + time_per_frame * (1 + currprefs.gfx_framerate); + else + next_synctime = next_synctime + time_per_frame * (1 + currprefs.gfx_framerate); + + init_row_map(); } void black_screen_now(void) { - SDL_FillRect(prSDLScreen,NULL,0); - SDL_Flip(prSDLScreen); + SDL_FillRect(prSDLScreen,NULL,0); + SDL_Flip(prSDLScreen); } static void graphics_subinit (void) { - if (prSDLScreen == NULL) - { - fprintf(stderr, "Unable to set video mode: %s\n", SDL_GetError()); - return; - } - else - { - SDL_Flip(prSDLScreen); - SDL_ShowCursor(SDL_DISABLE); + if (prSDLScreen == NULL) + { + fprintf(stderr, "Unable to set video mode: %s\n", SDL_GetError()); + return; + } + else + { + SDL_Flip(prSDLScreen); + SDL_ShowCursor(SDL_DISABLE); - InitAmigaVidMode(&currprefs); - } + InitAmigaVidMode(&currprefs); + } } STATIC_INLINE int bitsInMask (unsigned long mask) { - /* count bits in mask */ - int n = 0; - while (mask) - { - n += mask & 1; - mask >>= 1; - } - return n; + /* count bits in mask */ + int n = 0; + while (mask) + { + n += mask & 1; + mask >>= 1; + } + return n; } STATIC_INLINE int maskShift (unsigned long mask) { - /* determine how far mask is shifted */ - int n = 0; - while (!(mask & 1)) - { - n++; - mask >>= 1; - } - return n; + /* determine how far mask is shifted */ + int n = 0; + while (!(mask & 1)) + { + n++; + mask >>= 1; + } + return n; } static int init_colors (void) { - int i; - int red_bits, green_bits, blue_bits; - int red_shift, green_shift, blue_shift; + int i; + int red_bits, green_bits, blue_bits; + int red_shift, green_shift, blue_shift; - /* Truecolor: */ - red_bits = bitsInMask(prSDLScreen->format->Rmask); - green_bits = bitsInMask(prSDLScreen->format->Gmask); - blue_bits = bitsInMask(prSDLScreen->format->Bmask); - red_shift = maskShift(prSDLScreen->format->Rmask); - green_shift = maskShift(prSDLScreen->format->Gmask); - blue_shift = maskShift(prSDLScreen->format->Bmask); - alloc_colors64k (red_bits, green_bits, blue_bits, red_shift, green_shift, blue_shift, 0); - notice_new_xcolors(); - for (i = 0; i < 4096; i++) - xcolors[i] = xcolors[i] * 0x00010001; + /* Truecolor: */ + red_bits = bitsInMask(prSDLScreen->format->Rmask); + green_bits = bitsInMask(prSDLScreen->format->Gmask); + blue_bits = bitsInMask(prSDLScreen->format->Bmask); + red_shift = maskShift(prSDLScreen->format->Rmask); + green_shift = maskShift(prSDLScreen->format->Gmask); + blue_shift = maskShift(prSDLScreen->format->Bmask); + alloc_colors64k (red_bits, green_bits, blue_bits, red_shift, green_shift, blue_shift, 0); + notice_new_xcolors(); + for (i = 0; i < 4096; i++) + xcolors[i] = xcolors[i] * 0x00010001; - return 1; + return 1; } @@ -466,50 +468,51 @@ static int init_colors (void) */ static int get_display_depth (void) { - const SDL_VideoInfo *vid_info; - int depth = 0; + const SDL_VideoInfo *vid_info; + int depth = 0; - if ((vid_info = SDL_GetVideoInfo())) { - depth = vid_info->vfmt->BitsPerPixel; + if ((vid_info = SDL_GetVideoInfo())) + { + depth = vid_info->vfmt->BitsPerPixel; - /* Don't trust the answer if it's 16 bits; the display - * could actually be 15 bits deep. We'll count the bits - * ourselves */ - if (depth == 16) - depth = bitsInMask (vid_info->vfmt->Rmask) + bitsInMask (vid_info->vfmt->Gmask) + bitsInMask (vid_info->vfmt->Bmask); - } - return depth; + /* Don't trust the answer if it's 16 bits; the display + * could actually be 15 bits deep. We'll count the bits + * ourselves */ + if (depth == 16) + depth = bitsInMask (vid_info->vfmt->Rmask) + bitsInMask (vid_info->vfmt->Gmask) + bitsInMask (vid_info->vfmt->Bmask); + } + return depth; } int GetSurfacePixelFormat(void) { - int depth = get_display_depth(); - int unit = (depth + 1) & 0xF8; + int depth = get_display_depth(); + int unit = (depth + 1) & 0xF8; - return (unit == 8 ? RGBFB_CHUNKY - : depth == 15 && unit == 16 ? RGBFB_R5G5B5 - : depth == 16 && unit == 16 ? RGBFB_R5G6B5 - : unit == 24 ? RGBFB_B8G8R8 - : unit == 32 ? RGBFB_R8G8B8A8 - : RGBFB_NONE); + return (unit == 8 ? RGBFB_CHUNKY + : depth == 15 && unit == 16 ? RGBFB_R5G5B5 + : depth == 16 && unit == 16 ? RGBFB_R5G6B5 + : unit == 24 ? RGBFB_B8G8R8 + : unit == 32 ? RGBFB_R8G8B8A8 + : RGBFB_NONE); } int graphics_init (bool mousecapture) { - graphics_subinit (); + graphics_subinit (); - if (!init_colors ()) - return 0; - - return 1; + if (!init_colors ()) + return 0; + + return 1; } void graphics_leave (void) { - graphics_subshutdown (); - SDL_VideoQuit(); + graphics_subshutdown (); + SDL_VideoQuit(); } @@ -522,102 +525,104 @@ void graphics_leave (void) static int save_png(SDL_Surface* surface, char *path) { - int w = surface->w; - int h = surface->h; - unsigned char * pix = (unsigned char *)surface->pixels; - unsigned char writeBuffer[1024 * 3]; - FILE *f = fopen(path,"wb"); - if(!f) return 0; - png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, - NULL, - NULL, - NULL); - if(!png_ptr) { + int w = surface->w; + int h = surface->h; + unsigned char * pix = (unsigned char *)surface->pixels; + unsigned char writeBuffer[1024 * 3]; + FILE *f = fopen(path,"wb"); + if(!f) return 0; + png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, + NULL, + NULL, + NULL); + if(!png_ptr) + { + fclose(f); + return 0; + } + + png_infop info_ptr = png_create_info_struct(png_ptr); + + if(!info_ptr) + { + png_destroy_write_struct(&png_ptr,NULL); + fclose(f); + return 0; + } + + png_init_io(png_ptr,f); + + png_set_IHDR(png_ptr, + info_ptr, + w, + h, + 8, + PNG_COLOR_TYPE_RGB, + PNG_INTERLACE_NONE, + PNG_COMPRESSION_TYPE_DEFAULT, + PNG_FILTER_TYPE_DEFAULT); + + png_write_info(png_ptr,info_ptr); + + unsigned char *b = writeBuffer; + + int sizeX = w; + int sizeY = h; + int y; + int x; + + unsigned short *p = (unsigned short *)pix; + for(y = 0; y < sizeY; y++) + { + for(x = 0; x < sizeX; x++) + { + unsigned short v = p[x]; + + *b++ = ((v & systemRedMask ) >> systemRedShift ) << 3; // R + *b++ = ((v & systemGreenMask) >> systemGreenShift) << 2; // G + *b++ = ((v & systemBlueMask ) >> systemBlueShift ) << 3; // B + } + p += surface->pitch / 2; + png_write_row(png_ptr,writeBuffer); + b = writeBuffer; + } + + png_write_end(png_ptr, info_ptr); + + png_destroy_write_struct(&png_ptr, &info_ptr); + fclose(f); - return 0; - } - - png_infop info_ptr = png_create_info_struct(png_ptr); - - if(!info_ptr) { - png_destroy_write_struct(&png_ptr,NULL); - fclose(f); - return 0; - } - - png_init_io(png_ptr,f); - - png_set_IHDR(png_ptr, - info_ptr, - w, - h, - 8, - PNG_COLOR_TYPE_RGB, - PNG_INTERLACE_NONE, - PNG_COMPRESSION_TYPE_DEFAULT, - PNG_FILTER_TYPE_DEFAULT); - - png_write_info(png_ptr,info_ptr); - - unsigned char *b = writeBuffer; - - int sizeX = w; - int sizeY = h; - int y; - int x; - - unsigned short *p = (unsigned short *)pix; - for(y = 0; y < sizeY; y++) - { - for(x = 0; x < sizeX; x++) - { - unsigned short v = p[x]; - - *b++ = ((v & systemRedMask ) >> systemRedShift ) << 3; // R - *b++ = ((v & systemGreenMask) >> systemGreenShift) << 2; // G - *b++ = ((v & systemBlueMask ) >> systemBlueShift ) << 3; // B - } - p += surface->pitch / 2; - png_write_row(png_ptr,writeBuffer); - b = writeBuffer; - } - - png_write_end(png_ptr, info_ptr); - - png_destroy_write_struct(&png_ptr, &info_ptr); - - fclose(f); - return 1; + return 1; } static void CreateScreenshot(void) { - int w, h; + int w, h; - if(current_screenshot != NULL) - { - SDL_FreeSurface(current_screenshot); - current_screenshot = NULL; - } + if(current_screenshot != NULL) + { + SDL_FreeSurface(current_screenshot); + current_screenshot = NULL; + } - w=prSDLScreen->w; - h=prSDLScreen->h; - current_screenshot = SDL_CreateRGBSurfaceFrom(prSDLScreen->pixels, w, h, prSDLScreen->format->BitsPerPixel, prSDLScreen->pitch, - prSDLScreen->format->Rmask, prSDLScreen->format->Gmask, prSDLScreen->format->Bmask, prSDLScreen->format->Amask); + w=prSDLScreen->w; + h=prSDLScreen->h; + current_screenshot = SDL_CreateRGBSurfaceFrom(prSDLScreen->pixels, w, h, prSDLScreen->format->BitsPerPixel, prSDLScreen->pitch, + prSDLScreen->format->Rmask, prSDLScreen->format->Gmask, prSDLScreen->format->Bmask, prSDLScreen->format->Amask); } static int save_thumb(char *path) { - int ret = 0; - if(current_screenshot != NULL) - { - ret = save_png(current_screenshot, path); - SDL_FreeSurface(current_screenshot); - current_screenshot = NULL; - } - return ret; + int ret = 0; + if(current_screenshot != NULL) + { + ret = save_png(current_screenshot, path); + SDL_FreeSurface(current_screenshot); + current_screenshot = NULL; + } + return ret; } @@ -626,231 +631,265 @@ static int save_thumb(char *path) int picasso_palette (void) { - int i, changed; + int i, changed; - changed = 0; - for (i = 0; i < 256; i++) { - int r = picasso96_state.CLUT[i].Red; - int g = picasso96_state.CLUT[i].Green; - int b = picasso96_state.CLUT[i].Blue; - uae_u32 v = CONVERT_RGB(r << 16 | g << 8 | b); - if (v != picasso_vidinfo.clut[i]) { - picasso_vidinfo.clut[i] = v; - changed = 1; - } - } - return changed; + changed = 0; + for (i = 0; i < 256; i++) + { + int r = picasso96_state.CLUT[i].Red; + int g = picasso96_state.CLUT[i].Green; + int b = picasso96_state.CLUT[i].Blue; + uae_u32 v = CONVERT_RGB(r << 16 | g << 8 | b); + if (v != picasso_vidinfo.clut[i]) + { + picasso_vidinfo.clut[i] = v; + changed = 1; + } + } + return changed; } static int resolution_compare (const void *a, const void *b) { - struct PicassoResolution *ma = (struct PicassoResolution *)a; - struct PicassoResolution *mb = (struct PicassoResolution *)b; - if (ma->res.width < mb->res.width) - return -1; - if (ma->res.width > mb->res.width) - return 1; - if (ma->res.height < mb->res.height) - return -1; - if (ma->res.height > mb->res.height) - return 1; - return ma->depth - mb->depth; + struct PicassoResolution *ma = (struct PicassoResolution *)a; + struct PicassoResolution *mb = (struct PicassoResolution *)b; + if (ma->res.width < mb->res.width) + return -1; + if (ma->res.width > mb->res.width) + return 1; + if (ma->res.height < mb->res.height) + return -1; + if (ma->res.height > mb->res.height) + return 1; + return ma->depth - mb->depth; } static void sortmodes (void) { - int i = 0, idx = -1; - int pw = -1, ph = -1; - while (DisplayModes[i].depth >= 0) - i++; - qsort (DisplayModes, i, sizeof (struct PicassoResolution), resolution_compare); - for (i = 0; DisplayModes[i].depth >= 0; i++) { - if (DisplayModes[i].res.height != ph || DisplayModes[i].res.width != pw) { - ph = DisplayModes[i].res.height; - pw = DisplayModes[i].res.width; - idx++; - } - DisplayModes[i].residx = idx; - } + int i = 0, idx = -1; + int pw = -1, ph = -1; + while (DisplayModes[i].depth >= 0) + i++; + qsort (DisplayModes, i, sizeof (struct PicassoResolution), resolution_compare); + for (i = 0; DisplayModes[i].depth >= 0; i++) + { + if (DisplayModes[i].res.height != ph || DisplayModes[i].res.width != pw) + { + ph = DisplayModes[i].res.height; + pw = DisplayModes[i].res.width; + idx++; + } + DisplayModes[i].residx = idx; + } } static void modesList (void) { - int i, j; + int i, j; - i = 0; - while (DisplayModes[i].depth >= 0) { - write_log ("%d: %s (", i, DisplayModes[i].name); - j = 0; - while (DisplayModes[i].refresh[j] > 0) { - if (j > 0) - write_log (","); - write_log ("%d", DisplayModes[i].refresh[j]); - j++; - } - write_log (")\n"); - i++; - } + i = 0; + while (DisplayModes[i].depth >= 0) + { + write_log ("%d: %s (", i, DisplayModes[i].name); + j = 0; + while (DisplayModes[i].refresh[j] > 0) + { + if (j > 0) + write_log (","); + write_log ("%d", DisplayModes[i].refresh[j]); + j++; + } + write_log (")\n"); + i++; + } } void picasso_InitResolutions (void) { - struct MultiDisplay *md1; - int i, count = 0; - char tmp[200]; - int bit_idx; - int bits[] = { 8, 16, 32 }; - - Displays[0].primary = 1; - Displays[0].disabled = 0; - Displays[0].rect.left = 0; - Displays[0].rect.top = 0; - Displays[0].rect.right = 800; - Displays[0].rect.bottom = 640; - sprintf (tmp, "%s (%d*%d)", "Display", Displays[0].rect.right, Displays[0].rect.bottom); - Displays[0].name = my_strdup(tmp); - Displays[0].name2 = my_strdup("Display"); + struct MultiDisplay *md1; + int i, count = 0; + char tmp[200]; + int bit_idx; + int bits[] = { 8, 16, 32 }; - md1 = Displays; - DisplayModes = md1->DisplayModes = xmalloc (struct PicassoResolution, MAX_PICASSO_MODES); - for (i = 0; i < MAX_SCREEN_MODES && count < MAX_PICASSO_MODES; i++) { - for(bit_idx = 0; bit_idx < 3; ++bit_idx) { - int bitdepth = bits[bit_idx]; - int bit_unit = (bitdepth + 1) & 0xF8; - int rgbFormat = (bitdepth == 8 ? RGBFB_CLUT : (bitdepth == 16 ? RGBFB_R5G6B5 : RGBFB_R8G8B8A8)); - int pixelFormat = 1 << rgbFormat; - pixelFormat |= RGBFF_CHUNKY; - - if (SDL_VideoModeOK (x_size_table[i], y_size_table[i], 16, SDL_SWSURFACE)) - { - DisplayModes[count].res.width = x_size_table[i]; - DisplayModes[count].res.height = y_size_table[i]; - DisplayModes[count].depth = bit_unit >> 3; - DisplayModes[count].refresh[0] = 50; - DisplayModes[count].refresh[1] = 60; - DisplayModes[count].refresh[2] = 0; - DisplayModes[count].colormodes = pixelFormat; - sprintf(DisplayModes[count].name, "%dx%d, %d-bit", - DisplayModes[count].res.width, DisplayModes[count].res.height, DisplayModes[count].depth * 8); - - count++; - } + Displays[0].primary = 1; + Displays[0].disabled = 0; + Displays[0].rect.left = 0; + Displays[0].rect.top = 0; + Displays[0].rect.right = 800; + Displays[0].rect.bottom = 640; + sprintf (tmp, "%s (%d*%d)", "Display", Displays[0].rect.right, Displays[0].rect.bottom); + Displays[0].name = my_strdup(tmp); + Displays[0].name2 = my_strdup("Display"); + + md1 = Displays; + DisplayModes = md1->DisplayModes = xmalloc (struct PicassoResolution, MAX_PICASSO_MODES); + for (i = 0; i < MAX_SCREEN_MODES && count < MAX_PICASSO_MODES; i++) + { + for(bit_idx = 0; bit_idx < 3; ++bit_idx) + { + int bitdepth = bits[bit_idx]; + int bit_unit = (bitdepth + 1) & 0xF8; + int rgbFormat = (bitdepth == 8 ? RGBFB_CLUT : (bitdepth == 16 ? RGBFB_R5G6B5 : RGBFB_R8G8B8A8)); + int pixelFormat = 1 << rgbFormat; + pixelFormat |= RGBFF_CHUNKY; + + if (SDL_VideoModeOK (x_size_table[i], y_size_table[i], 16, SDL_SWSURFACE)) + { + DisplayModes[count].res.width = x_size_table[i]; + DisplayModes[count].res.height = y_size_table[i]; + DisplayModes[count].depth = bit_unit >> 3; + DisplayModes[count].refresh[0] = 50; + DisplayModes[count].refresh[1] = 60; + DisplayModes[count].refresh[2] = 0; + DisplayModes[count].colormodes = pixelFormat; + sprintf(DisplayModes[count].name, "%dx%d, %d-bit", + DisplayModes[count].res.width, DisplayModes[count].res.height, DisplayModes[count].depth * 8); + + count++; + } + } } - } - DisplayModes[count].depth = -1; - sortmodes(); - modesList(); - DisplayModes = Displays[0].DisplayModes; + DisplayModes[count].depth = -1; + sortmodes(); + modesList(); + DisplayModes = Displays[0].DisplayModes; } bool vsync_switchmode (int hz) { - int changed_height = changed_prefs.gfx_size.height; - - if (hz >= 55) - hz = 60; - else - hz = 50; + int changed_height = changed_prefs.gfx_size.height; - if(hz == 50 && currVSyncRate == 60) - { - // Switch from NTSC -> PAL - switch(changed_height) { - case 200: changed_height = 240; break; - case 216: changed_height = 262; break; - case 240: changed_height = 270; break; - case 256: changed_height = 270; break; - case 262: changed_height = 270; break; - case 270: changed_height = 270; break; - } - } - else if(hz == 60 && currVSyncRate == 50) - { - // Switch from PAL -> NTSC - switch(changed_height) { - case 200: changed_height = 200; break; - case 216: changed_height = 200; break; - case 240: changed_height = 200; break; - case 256: changed_height = 216; break; - case 262: changed_height = 216; break; - case 270: changed_height = 240; break; - } - } + if (hz >= 55) + hz = 60; + else + hz = 50; + + if(hz == 50 && currVSyncRate == 60) + { + // Switch from NTSC -> PAL + switch(changed_height) + { + case 200: + changed_height = 240; + break; + case 216: + changed_height = 262; + break; + case 240: + changed_height = 270; + break; + case 256: + changed_height = 270; + break; + case 262: + changed_height = 270; + break; + case 270: + changed_height = 270; + break; + } + } + else if(hz == 60 && currVSyncRate == 50) + { + // Switch from PAL -> NTSC + switch(changed_height) + { + case 200: + changed_height = 200; + break; + case 216: + changed_height = 200; + break; + case 240: + changed_height = 200; + break; + case 256: + changed_height = 216; + break; + case 262: + changed_height = 216; + break; + case 270: + changed_height = 240; + break; + } + } + + if(changed_height == currprefs.gfx_size.height && hz == currprefs.chipset_refreshrate) + return true; + + changed_prefs.gfx_size.height = changed_height; - if(changed_height == currprefs.gfx_size.height && hz == currprefs.chipset_refreshrate) return true; - - changed_prefs.gfx_size.height = changed_height; - - return true; } bool target_graphics_buffer_update (void) { - bool rate_changed = SetVSyncRate(currprefs.chipset_refreshrate); - - if(currprefs.gfx_size.height != changed_prefs.gfx_size.height) - { - update_display(&changed_prefs); - rate_changed = true; - } + bool rate_changed = SetVSyncRate(currprefs.chipset_refreshrate); - if(rate_changed) - { - black_screen_now(); - fpscounter_reset(); - time_per_frame = 1000 * 1000 / (currprefs.chipset_refreshrate); - } + if(currprefs.gfx_size.height != changed_prefs.gfx_size.height) + { + update_display(&changed_prefs); + rate_changed = true; + } - return true; + if(rate_changed) + { + black_screen_now(); + fpscounter_reset(); + time_per_frame = 1000 * 1000 / (currprefs.chipset_refreshrate); + } + + return true; } void gfx_set_picasso_state (int on) { - if (on == screen_is_picasso) - return; + if (on == screen_is_picasso) + return; - screen_is_picasso = on; - open_screen(&currprefs); - picasso_vidinfo.rowbytes = prSDLScreen->pitch; + screen_is_picasso = on; + open_screen(&currprefs); + picasso_vidinfo.rowbytes = prSDLScreen->pitch; } void gfx_set_picasso_modeinfo (uae_u32 w, uae_u32 h, uae_u32 depth, RGBFTYPE rgbfmt) { - depth >>= 3; - if( ((unsigned)picasso_vidinfo.width == w ) && - ( (unsigned)picasso_vidinfo.height == h ) && - ( (unsigned)picasso_vidinfo.depth == depth ) && - ( picasso_vidinfo.selected_rgbformat == rgbfmt) ) - return; + depth >>= 3; + if( ((unsigned)picasso_vidinfo.width == w ) && + ( (unsigned)picasso_vidinfo.height == h ) && + ( (unsigned)picasso_vidinfo.depth == depth ) && + ( picasso_vidinfo.selected_rgbformat == rgbfmt) ) + return; - picasso_vidinfo.selected_rgbformat = rgbfmt; - picasso_vidinfo.width = w; - picasso_vidinfo.height = h; - picasso_vidinfo.depth = 2; // Native depth - picasso_vidinfo.extra_mem = 1; + picasso_vidinfo.selected_rgbformat = rgbfmt; + picasso_vidinfo.width = w; + picasso_vidinfo.height = h; + picasso_vidinfo.depth = 2; // Native depth + picasso_vidinfo.extra_mem = 1; - picasso_vidinfo.pixbytes = 2; // Native bytes - if (screen_is_picasso) - { - open_screen(&currprefs); - picasso_vidinfo.rowbytes = prSDLScreen->pitch; - picasso_vidinfo.rgbformat = RGBFB_R5G6B5; - } + picasso_vidinfo.pixbytes = 2; // Native bytes + if (screen_is_picasso) + { + open_screen(&currprefs); + picasso_vidinfo.rowbytes = prSDLScreen->pitch; + picasso_vidinfo.rgbformat = RGBFB_R5G6B5; + } } uae_u8 *gfx_lock_picasso (void) { - SDL_LockSurface(prSDLScreen); - picasso_vidinfo.rowbytes = prSDLScreen->pitch; - return (uae_u8 *)prSDLScreen->pixels; + SDL_LockSurface(prSDLScreen); + picasso_vidinfo.rowbytes = prSDLScreen->pitch; + return (uae_u8 *)prSDLScreen->pixels; } void gfx_unlock_picasso (void) { - SDL_UnlockSurface(prSDLScreen); + SDL_UnlockSurface(prSDLScreen); } #endif // PICASSO96 diff --git a/src/od-pandora/pandora_mem.cpp b/src/od-pandora/pandora_mem.cpp index a5adf648..d7fa199d 100644 --- a/src/od-pandora/pandora_mem.cpp +++ b/src/od-pandora/pandora_mem.cpp @@ -5,7 +5,7 @@ #include "uae.h" #include "options.h" #include "gui.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "akiko.h" @@ -33,160 +33,164 @@ int rtg_start_adr = 0; void free_AmigaMem(void) { - if(natmem_offset != 0) - { - free(natmem_offset); - natmem_offset = 0; - } - if(additional_mem != MAP_FAILED) - { - munmap(additional_mem, ADDITIONAL_MEMSIZE); - additional_mem = (uae_u8*) MAP_FAILED; - } + if(natmem_offset != 0) + { + free(natmem_offset); + natmem_offset = 0; + } + if(additional_mem != MAP_FAILED) + { + munmap(additional_mem, ADDITIONAL_MEMSIZE); + additional_mem = (uae_u8*) MAP_FAILED; + } } void alloc_AmigaMem(void) { - int i; - uae_u64 total; - int max_allowed_mman; + int i; + uae_u64 total; + int max_allowed_mman; - free_AmigaMem(); + free_AmigaMem(); - // First attempt: allocate 16 MB for all memory in 24-bit area - // and additional mem for Z3 and RTG at correct offset - natmem_size = 16 * 1024 * 1024; - natmem_offset = (uae_u8*)valloc (natmem_size); - max_z3fastmem = ADDITIONAL_MEMSIZE - (16 * 1024 * 1024); - if (!natmem_offset) { - write_log("Can't allocate 16M of virtual address space!?\n"); - abort(); - } - additional_mem = (uae_u8*) mmap(natmem_offset + 0x10000000, ADDITIONAL_MEMSIZE + BARRIER, - PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0); - if(additional_mem != MAP_FAILED) - { - // Allocation successful -> we can use natmem_offset for entire memory access - z3_start_adr = 0x10000000; - rtg_start_adr = 0x18000000; - write_log("Allocated 16 MB for 24-bit area and %d MB for Z3 and RTG\n", ADDITIONAL_MEMSIZE / (1024 * 1024)); - return; - } - free(natmem_offset); - - // Second attempt: allocate huge memory block for entire area - natmem_size = ADDITIONAL_MEMSIZE + 256 * 1024 * 1024; - natmem_offset = (uae_u8*)valloc (natmem_size + BARRIER); - if(natmem_offset) - { - // Allocation successful - z3_start_adr = 0x10000000; - rtg_start_adr = 0x18000000; - write_log("Allocated %d MB for entire memory\n", natmem_size / (1024 * 1024)); - return; - } - - // Third attempt: old style: 64 MB allocated and Z3 and RTG at wrong address - - // Get max. available size - total = (uae_u64)sysconf (_SC_PHYS_PAGES) * (uae_u64)getpagesize(); - - // Limit to max. 64 MB - natmem_size = total; - if (natmem_size > MAXAMIGAMEM) - natmem_size = MAXAMIGAMEM; - - // We need at least 16 MB - if (natmem_size < 16 * 1024 * 1024) - natmem_size = 16 * 1024 * 1024; - - write_log("Total physical RAM %lluM. Attempting to reserve: %uM.\n", total >> 20, natmem_size >> 20); - natmem_offset = (uae_u8*)valloc (natmem_size + BARRIER); - - if (!natmem_offset) { - for (;;) { - natmem_offset = (uae_u8*)valloc (natmem_size + BARRIER); - if (natmem_offset) - break; - natmem_size -= 16 * 1024 * 1024; - if (!natmem_size) { - write_log("Can't allocate 16M of virtual address space!?\n"); + // First attempt: allocate 16 MB for all memory in 24-bit area + // and additional mem for Z3 and RTG at correct offset + natmem_size = 16 * 1024 * 1024; + natmem_offset = (uae_u8*)valloc (natmem_size); + max_z3fastmem = ADDITIONAL_MEMSIZE - (16 * 1024 * 1024); + if (!natmem_offset) + { + write_log("Can't allocate 16M of virtual address space!?\n"); abort(); - } - } - } + } + additional_mem = (uae_u8*) mmap(natmem_offset + 0x10000000, ADDITIONAL_MEMSIZE + BARRIER, + PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0); + if(additional_mem != MAP_FAILED) + { + // Allocation successful -> we can use natmem_offset for entire memory access + z3_start_adr = 0x10000000; + rtg_start_adr = 0x18000000; + write_log("Allocated 16 MB for 24-bit area and %d MB for Z3 and RTG\n", ADDITIONAL_MEMSIZE / (1024 * 1024)); + return; + } + free(natmem_offset); - z3_start_adr = 0x01000000; - rtg_start_adr = 0x03000000; - max_z3fastmem = natmem_size - 32 * 1024 * 1024; - if(max_z3fastmem <= 0) - { - z3_start_adr = 0x00000000; // No mem for Z3 - if(max_z3fastmem == 0) - rtg_start_adr = 0x01000000; // We have mem for RTG - else - rtg_start_adr = 0x00000000; // No mem for expansion at all - max_z3fastmem = 0; - } - write_log("Reserved: %p-%p (0x%08x %dM)\n", natmem_offset, (uae_u8*)natmem_offset + natmem_size, - natmem_size, natmem_size >> 20); + // Second attempt: allocate huge memory block for entire area + natmem_size = ADDITIONAL_MEMSIZE + 256 * 1024 * 1024; + natmem_offset = (uae_u8*)valloc (natmem_size + BARRIER); + if(natmem_offset) + { + // Allocation successful + z3_start_adr = 0x10000000; + rtg_start_adr = 0x18000000; + write_log("Allocated %d MB for entire memory\n", natmem_size / (1024 * 1024)); + return; + } + + // Third attempt: old style: 64 MB allocated and Z3 and RTG at wrong address + + // Get max. available size + total = (uae_u64)sysconf (_SC_PHYS_PAGES) * (uae_u64)getpagesize(); + + // Limit to max. 64 MB + natmem_size = total; + if (natmem_size > MAXAMIGAMEM) + natmem_size = MAXAMIGAMEM; + + // We need at least 16 MB + if (natmem_size < 16 * 1024 * 1024) + natmem_size = 16 * 1024 * 1024; + + write_log("Total physical RAM %lluM. Attempting to reserve: %uM.\n", total >> 20, natmem_size >> 20); + natmem_offset = (uae_u8*)valloc (natmem_size + BARRIER); + + if (!natmem_offset) + { + for (;;) + { + natmem_offset = (uae_u8*)valloc (natmem_size + BARRIER); + if (natmem_offset) + break; + natmem_size -= 16 * 1024 * 1024; + if (!natmem_size) + { + write_log("Can't allocate 16M of virtual address space!?\n"); + abort(); + } + } + } + + z3_start_adr = 0x01000000; + rtg_start_adr = 0x03000000; + max_z3fastmem = natmem_size - 32 * 1024 * 1024; + if(max_z3fastmem <= 0) + { + z3_start_adr = 0x00000000; // No mem for Z3 + if(max_z3fastmem == 0) + rtg_start_adr = 0x01000000; // We have mem for RTG + else + rtg_start_adr = 0x00000000; // No mem for expansion at all + max_z3fastmem = 0; + } + write_log("Reserved: %p-%p (0x%08x %dM)\n", natmem_offset, (uae_u8*)natmem_offset + natmem_size, + natmem_size, natmem_size >> 20); } static uae_u32 getz2rtgaddr (void) { - uae_u32 start; - start = currprefs.fastmem_size; - while (start & (currprefs.rtgmem_size - 1) && start < 4 * 1024 * 1024) - start += 1024 * 1024; - return start + 2 * 1024 * 1024; + uae_u32 start; + start = currprefs.fastmem_size; + while (start & (currprefs.rtgmem_size - 1) && start < 4 * 1024 * 1024) + start += 1024 * 1024; + return start + 2 * 1024 * 1024; } uae_u8 *mapped_malloc (size_t s, const char *file) { - if(!strcmp(file, "chip")) - return natmem_offset; + if(!strcmp(file, "chip")) + return natmem_offset; - if(!strcmp(file, "fast")) - return natmem_offset + 0x200000; + if(!strcmp(file, "fast")) + return natmem_offset + 0x200000; - if(!strcmp(file, "bogo")) - return natmem_offset + bogomem_start; + if(!strcmp(file, "bogo")) + return natmem_offset + bogomem_start; - if(!strcmp(file, "rom_f0")) - return natmem_offset + 0xf00000; - - if(!strcmp(file, "rom_e0")) - return natmem_offset + 0xe00000; + if(!strcmp(file, "rom_f0")) + return natmem_offset + 0xf00000; - if(!strcmp(file, "rom_a8")) - return natmem_offset + 0xa80000; + if(!strcmp(file, "rom_e0")) + return natmem_offset + 0xe00000; - if(!strcmp(file, "kick")) - return natmem_offset + kickmem_start; + if(!strcmp(file, "rom_a8")) + return natmem_offset + 0xa80000; - if(!strcmp(file, "z3")) - return natmem_offset + z3_start_adr; //z3fastmem_start; + if(!strcmp(file, "kick")) + return natmem_offset + kickmem_start; + + if(!strcmp(file, "z3")) + return natmem_offset + z3_start_adr; //z3fastmem_start; #ifdef PICASSO96 - if(!strcmp(file, "z3_gfx")) - { - p96ram_start = rtg_start_adr; - return natmem_offset + p96ram_start; - } + if(!strcmp(file, "z3_gfx")) + { + p96ram_start = rtg_start_adr; + return natmem_offset + p96ram_start; + } - if(!strcmp(file, "z2_gfx")) - { - p96ram_start = getz2rtgaddr(); - return natmem_offset + p96ram_start; - } + if(!strcmp(file, "z2_gfx")) + { + p96ram_start = getz2rtgaddr(); + return natmem_offset + p96ram_start; + } #endif - if(!strcmp(file, "rtarea")) - return natmem_offset + rtarea_base; + if(!strcmp(file, "rtarea")) + return natmem_offset + rtarea_base; - return NULL; + return NULL; } @@ -197,25 +201,25 @@ void mapped_free (uae_u8 *p) void protect_roms (bool protect) { -/* - If this code is enabled, we can't switch back from JIT to nonJIT emulation... - - if (protect) { - // protect only if JIT enabled, always allow unprotect - if (!currprefs.cachesize) - return; - } + /* + If this code is enabled, we can't switch back from JIT to nonJIT emulation... - // Protect all regions, which contains ROM - if(extendedkickmemory != NULL) - mprotect(extendedkickmemory, 0x80000, protect ? PROT_READ : PROT_READ | PROT_WRITE); - if(extendedkickmemory2 != NULL) - mprotect(extendedkickmemory2, 0x80000, protect ? PROT_READ : PROT_READ | PROT_WRITE); - if(kickmemory != NULL) - mprotect(kickmemory, 0x80000, protect ? PROT_READ : PROT_READ | PROT_WRITE); - if(rtarea != NULL) - mprotect(rtarea, RTAREA_SIZE, protect ? PROT_READ : PROT_READ | PROT_WRITE); - if(filesysory != NULL) - mprotect(filesysory, 0x10000, protect ? PROT_READ : PROT_READ | PROT_WRITE); -*/ + if (protect) { + // protect only if JIT enabled, always allow unprotect + if (!currprefs.cachesize) + return; + } + + // Protect all regions, which contains ROM + if(extendedkickmemory != NULL) + mprotect(extendedkickmemory, 0x80000, protect ? PROT_READ : PROT_READ | PROT_WRITE); + if(extendedkickmemory2 != NULL) + mprotect(extendedkickmemory2, 0x80000, protect ? PROT_READ : PROT_READ | PROT_WRITE); + if(kickmemory != NULL) + mprotect(kickmemory, 0x80000, protect ? PROT_READ : PROT_READ | PROT_WRITE); + if(rtarea != NULL) + mprotect(rtarea, RTAREA_SIZE, protect ? PROT_READ : PROT_READ | PROT_WRITE); + if(filesysory != NULL) + mprotect(filesysory, 0x10000, protect ? PROT_READ : PROT_READ | PROT_WRITE); + */ } diff --git a/src/od-pandora/pandora_rp9.cpp b/src/od-pandora/pandora_rp9.cpp index 332b0420..f9645337 100644 --- a/src/od-pandora/pandora_rp9.cpp +++ b/src/od-pandora/pandora_rp9.cpp @@ -7,7 +7,7 @@ #include "gui.h" #include "disk.h" #include "fsdb.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "filesys.h" @@ -29,555 +29,565 @@ static bool clip_no_hires = false; void rp9_init(void) { - fetch_rp9path(rp9tmp_path, MAX_DPATH); - strncat(rp9tmp_path, _T("tmp/"), MAX_DPATH); - lstTmpRP9Files.clear(); - LIBXML_TEST_VERSION + fetch_rp9path(rp9tmp_path, MAX_DPATH); + strncat(rp9tmp_path, _T("tmp/"), MAX_DPATH); + lstTmpRP9Files.clear(); + LIBXML_TEST_VERSION } static void del_tmpFiles(void) { - int i; - - for(i=0; inext) { - if (curr_node->type == XML_ELEMENT_NODE && strcmp((const char *)curr_node->name, name) == 0) - return curr_node->children; - } - return NULL; + for(xmlNode *curr_node = node; curr_node; curr_node = curr_node->next) + { + if (curr_node->type == XML_ELEMENT_NODE && strcmp((const char *)curr_node->name, name) == 0) + return curr_node->children; + } + return NULL; } static bool get_value(xmlNode *node, const char *key, char *value, int max_size) { - bool bResult = false; + bool bResult = false; - for(xmlNode *curr_node = node; curr_node; curr_node = curr_node->next) { - if (curr_node->type == XML_ELEMENT_NODE && strcmp((const char *)curr_node->name, key) == 0) { - xmlChar *content = xmlNodeGetContent(curr_node); - if(content != NULL) { - strncpy(value, (char *)content, max_size); - xmlFree(content); - bResult = true; - } - break; + for(xmlNode *curr_node = node; curr_node; curr_node = curr_node->next) + { + if (curr_node->type == XML_ELEMENT_NODE && strcmp((const char *)curr_node->name, key) == 0) + { + xmlChar *content = xmlNodeGetContent(curr_node); + if(content != NULL) + { + strncpy(value, (char *)content, max_size); + xmlFree(content); + bResult = true; + } + break; + } } - } - return bResult; + return bResult; } static void set_default_system(struct uae_prefs *p, const char *system, int rom) { - default_prefs(p, 0); - del_tmpFiles(); - - if(strcmp(system, "a-500") == 0) - bip_a500(p, rom); - else if(strcmp(system, "a-500plus") == 0) - bip_a500plus(p, rom); - else if(strcmp(system, "a-1200") == 0) - bip_a1200(p, rom); - else if(strcmp(system, "a-2000") == 0) - bip_a2000(p, rom); - else if(strcmp(system, "a-4000") == 0) - bip_a4000(p, rom); + default_prefs(p, 0); + del_tmpFiles(); + + if(strcmp(system, "a-500") == 0) + bip_a500(p, rom); + else if(strcmp(system, "a-500plus") == 0) + bip_a500plus(p, rom); + else if(strcmp(system, "a-1200") == 0) + bip_a1200(p, rom); + else if(strcmp(system, "a-2000") == 0) + bip_a2000(p, rom); + else if(strcmp(system, "a-4000") == 0) + bip_a4000(p, rom); } static void parse_compatibility(struct uae_prefs *p, xmlNode *node) { - for(xmlNode *curr_node = node; curr_node; curr_node = curr_node->next) { - if (curr_node->type == XML_ELEMENT_NODE && strcmp((const char *)curr_node->name, _T("compatibility")) == 0) { - xmlChar *content = xmlNodeGetContent(curr_node); - if(content != NULL) { - if(strcmp((const char *) content, "flexible-blitter-immediate") == 0) - p->immediate_blits = 1; - else if(strcmp((const char *) content, "turbo-floppy") == 0) - p->floppy_speed = 400; - else if(strcmp((const char *) content, "flexible-sprite-collisions-spritesplayfield") == 0) - p->collision_level = 2; - else if(strcmp((const char *) content, "flexible-sprite-collisions-spritesonly") == 0) - p->collision_level = 1; - else if(strcmp((const char *) content, "flexible-sound") == 0) - p->produce_sound = 2; - else if(strcmp((const char *) content, "flexible-maxhorizontal-nohires") == 0) - clip_no_hires = true; - else if(strcmp((const char *) content, "jit") == 0) + for(xmlNode *curr_node = node; curr_node; curr_node = curr_node->next) + { + if (curr_node->type == XML_ELEMENT_NODE && strcmp((const char *)curr_node->name, _T("compatibility")) == 0) { - p->cachesize = 8192; - p->address_space_24 = 0; + xmlChar *content = xmlNodeGetContent(curr_node); + if(content != NULL) + { + if(strcmp((const char *) content, "flexible-blitter-immediate") == 0) + p->immediate_blits = 1; + else if(strcmp((const char *) content, "turbo-floppy") == 0) + p->floppy_speed = 400; + else if(strcmp((const char *) content, "flexible-sprite-collisions-spritesplayfield") == 0) + p->collision_level = 2; + else if(strcmp((const char *) content, "flexible-sprite-collisions-spritesonly") == 0) + p->collision_level = 1; + else if(strcmp((const char *) content, "flexible-sound") == 0) + p->produce_sound = 2; + else if(strcmp((const char *) content, "flexible-maxhorizontal-nohires") == 0) + clip_no_hires = true; + else if(strcmp((const char *) content, "jit") == 0) + { + p->cachesize = 8192; + p->address_space_24 = 0; + } + else if(strcmp((const char *) content, "flexible-cpu-cycles") == 0) + p->cpu_compatible = 0; + else if(strcmp((const char *) content, "flexible-maxhorizontal-nosuperhires") == 0) + ; /* nothing to change */ + else if(strcmp((const char *) content, "flexible-maxvertical-nointerlace") == 0) + ; /* nothing to change */ + else + printf("rp9: unknown compatibility: %s\n", content); + xmlFree(content); + } } - else if(strcmp((const char *) content, "flexible-cpu-cycles") == 0) - p->cpu_compatible = 0; - else if(strcmp((const char *) content, "flexible-maxhorizontal-nosuperhires") == 0) - ; /* nothing to change */ - else if(strcmp((const char *) content, "flexible-maxvertical-nointerlace") == 0) - ; /* nothing to change */ - else - printf("rp9: unknown compatibility: %s\n", content); - xmlFree(content); - } } - } } static void parse_ram(struct uae_prefs *p, xmlNode *node) { - for(xmlNode *curr_node = node; curr_node; curr_node = curr_node->next) { - if (curr_node->type == XML_ELEMENT_NODE && strcmp((const char *)curr_node->name, _T("ram")) == 0) { - xmlChar *content = xmlNodeGetContent(curr_node); - if(content != NULL) { - xmlChar *attr = xmlGetProp(curr_node, (const xmlChar *) _T("type")); - if(attr != NULL) + for(xmlNode *curr_node = node; curr_node; curr_node = curr_node->next) + { + if (curr_node->type == XML_ELEMENT_NODE && strcmp((const char *)curr_node->name, _T("ram")) == 0) { - int size = atoi((const char *)content); - if(strcmp((const char *) attr, "fast") == 0) - p->fastmem_size = size; - else if(strcmp((const char *) attr, "z3") == 0) - p->z3fastmem_size = size; - else if(strcmp((const char *) attr, "chip") == 0) - p->chipmem_size = size; - xmlFree(attr); - } + xmlChar *content = xmlNodeGetContent(curr_node); + if(content != NULL) + { + xmlChar *attr = xmlGetProp(curr_node, (const xmlChar *) _T("type")); + if(attr != NULL) + { + int size = atoi((const char *)content); + if(strcmp((const char *) attr, "fast") == 0) + p->fastmem_size = size; + else if(strcmp((const char *) attr, "z3") == 0) + p->z3fastmem_size = size; + else if(strcmp((const char *) attr, "chip") == 0) + p->chipmem_size = size; + xmlFree(attr); + } - xmlFree(content); - } + xmlFree(content); + } + } } - } } static void parse_clip(struct uae_prefs *p, xmlNode *node) { - int left = 0, top = 0, width = 320, height = 240; - - for(xmlNode *curr_node = node; curr_node; curr_node = curr_node->next) - { - if (curr_node->type == XML_ELEMENT_NODE && strcmp((const char *)curr_node->name, _T("clip")) == 0) + int left = 0, top = 0, width = 320, height = 240; + + for(xmlNode *curr_node = node; curr_node; curr_node = curr_node->next) { - xmlChar *attr = xmlGetProp(curr_node, (const xmlChar *) _T("left")); - if(attr != NULL) - { - left = atoi((const char *)attr); - xmlFree(attr); - } - attr = xmlGetProp(curr_node, (const xmlChar *) _T("top")); - if(attr != NULL) - { - top = atoi((const char *)attr) / 2; - p->pandora_vertical_offset = top - 41; // VBLANK_ENDLINE_PAL + OFFSET_Y_ADJUST - xmlFree(attr); - } - attr = xmlGetProp(curr_node, (const xmlChar *) _T("width")); - if(attr != NULL) - { - width = atoi((const char *)attr); - if(p->chipset_mask & CSMASK_AGA && clip_no_hires == false) - width = width / 2; // Use Hires in AGA mode - else - width = width / 4; // Use Lores in OCS/ECS - if(width <= 320) - p->gfx_size.width = 320; - else if(width <= 352) - p->gfx_size.width = 352; - else if(width <= 384) - p->gfx_size.width = 384; - else if(width <= 640) - p->gfx_size.width = 640; - else if(width <= 704) - p->gfx_size.width = 704; - else - p->gfx_size.width = 768; - xmlFree(attr); - } - attr = xmlGetProp(curr_node, (const xmlChar *) _T("height")); - if(attr != NULL) - { - height = atoi((const char *)attr) / 2; - if(height <= 200) - p->gfx_size.height = 200; - else if(height <= 216) - p->gfx_size.height = 216; - else if(height <= 240) - p->gfx_size.height = 240; - else if(height <= 256) - p->gfx_size.height = 256; - else if(height <= 262) - p->gfx_size.height = 262; - else - p->gfx_size.height = 270; - xmlFree(attr); - } - break; + if (curr_node->type == XML_ELEMENT_NODE && strcmp((const char *)curr_node->name, _T("clip")) == 0) + { + xmlChar *attr = xmlGetProp(curr_node, (const xmlChar *) _T("left")); + if(attr != NULL) + { + left = atoi((const char *)attr); + xmlFree(attr); + } + attr = xmlGetProp(curr_node, (const xmlChar *) _T("top")); + if(attr != NULL) + { + top = atoi((const char *)attr) / 2; + p->pandora_vertical_offset = top - 41; // VBLANK_ENDLINE_PAL + OFFSET_Y_ADJUST + xmlFree(attr); + } + attr = xmlGetProp(curr_node, (const xmlChar *) _T("width")); + if(attr != NULL) + { + width = atoi((const char *)attr); + if(p->chipset_mask & CSMASK_AGA && clip_no_hires == false) + width = width / 2; // Use Hires in AGA mode + else + width = width / 4; // Use Lores in OCS/ECS + if(width <= 320) + p->gfx_size.width = 320; + else if(width <= 352) + p->gfx_size.width = 352; + else if(width <= 384) + p->gfx_size.width = 384; + else if(width <= 640) + p->gfx_size.width = 640; + else if(width <= 704) + p->gfx_size.width = 704; + else + p->gfx_size.width = 768; + xmlFree(attr); + } + attr = xmlGetProp(curr_node, (const xmlChar *) _T("height")); + if(attr != NULL) + { + height = atoi((const char *)attr) / 2; + if(height <= 200) + p->gfx_size.height = 200; + else if(height <= 216) + p->gfx_size.height = 216; + else if(height <= 240) + p->gfx_size.height = 240; + else if(height <= 256) + p->gfx_size.height = 256; + else if(height <= 262) + p->gfx_size.height = 262; + else + p->gfx_size.height = 270; + xmlFree(attr); + } + break; + } } - } } static void parse_peripheral(struct uae_prefs *p, xmlNode *node) { - for(xmlNode *curr_node = node; curr_node; curr_node = curr_node->next) - { - if (curr_node->type == XML_ELEMENT_NODE && strcmp((const char *)curr_node->name, _T("peripheral")) == 0) + for(xmlNode *curr_node = node; curr_node; curr_node = curr_node->next) { - xmlChar *content = xmlNodeGetContent(curr_node); - if(content != NULL) - { - if(strcmp((const char *)content, "floppy") == 0) + if (curr_node->type == XML_ELEMENT_NODE && strcmp((const char *)curr_node->name, _T("peripheral")) == 0) { - int type = DRV_35_DD; - int unit = -1; - - xmlChar *attr = xmlGetProp(curr_node, (const xmlChar *) _T("type")); - if(attr != NULL) - { - if(strcmp((const char *) attr, "dd") == 0) - type = DRV_35_DD; - else - type = DRV_35_HD; - xmlFree(attr); - } - - attr = xmlGetProp(curr_node, (const xmlChar *) _T("unit")); - if(attr != NULL) - { - unit = atoi((const char *) attr); - xmlFree(attr); - } - - if(unit >= 0) - { - if(unit + 1 > p->nr_floppies) - p->nr_floppies = unit + 1; - p->floppyslots[unit].dfxtype = type; - } + xmlChar *content = xmlNodeGetContent(curr_node); + if(content != NULL) + { + if(strcmp((const char *)content, "floppy") == 0) + { + int type = DRV_35_DD; + int unit = -1; + + xmlChar *attr = xmlGetProp(curr_node, (const xmlChar *) _T("type")); + if(attr != NULL) + { + if(strcmp((const char *) attr, "dd") == 0) + type = DRV_35_DD; + else + type = DRV_35_HD; + xmlFree(attr); + } + + attr = xmlGetProp(curr_node, (const xmlChar *) _T("unit")); + if(attr != NULL) + { + unit = atoi((const char *) attr); + xmlFree(attr); + } + + if(unit >= 0) + { + if(unit + 1 > p->nr_floppies) + p->nr_floppies = unit + 1; + p->floppyslots[unit].dfxtype = type; + } + } + else if(strcmp((const char *)content, "a-501") == 0) + p->bogomem_size = 0x00080000; + else if(strcmp((const char *)content, "cpu") == 0) + { + xmlChar *attr = xmlGetProp(curr_node, (const xmlChar *) _T("type")); + if(attr != NULL) + { + p->cpu_model = atoi((const char *) attr); + if(p->cpu_model > 68020) + p->address_space_24 = 0; + if(p->cpu_model == 68040) + p->fpu_model = 68040; + xmlFree(attr); + } + attr = xmlGetProp(curr_node, (const xmlChar *) _T("speed")); + if(attr != NULL) + { + if(strcmp((const char *) attr, "max") == 0) + p->m68k_speed = -1; + xmlFree(attr); + } + } + else if(strcmp((const char *)content, "fpu") == 0) + { + xmlChar *attr = xmlGetProp(curr_node, (const xmlChar *) _T("type")); + if(attr != NULL) + { + if(strcmp((const char *) attr, "68881") == 0) + p->fpu_model = 68881; + else if(strcmp((const char *) attr, "68882") == 0) + p->fpu_model = 68882; + xmlFree(attr); + } + } + else if(strcmp((const char *)content, "jit") == 0) + { + xmlChar *attr = xmlGetProp(curr_node, (const xmlChar *) _T("memory")); + if(attr != NULL) + { + p->cachesize = atoi((const char *) attr) / 1024; + xmlFree(attr); + } + } + xmlFree(content); + } } - else if(strcmp((const char *)content, "a-501") == 0) - p->bogomem_size = 0x00080000; - else if(strcmp((const char *)content, "cpu") == 0) - { - xmlChar *attr = xmlGetProp(curr_node, (const xmlChar *) _T("type")); - if(attr != NULL) - { - p->cpu_model = atoi((const char *) attr); - if(p->cpu_model > 68020) - p->address_space_24 = 0; - if(p->cpu_model == 68040) - p->fpu_model = 68040; - xmlFree(attr); - } - attr = xmlGetProp(curr_node, (const xmlChar *) _T("speed")); - if(attr != NULL) - { - if(strcmp((const char *) attr, "max") == 0) - p->m68k_speed = -1; - xmlFree(attr); - } - } - else if(strcmp((const char *)content, "fpu") == 0) - { - xmlChar *attr = xmlGetProp(curr_node, (const xmlChar *) _T("type")); - if(attr != NULL) - { - if(strcmp((const char *) attr, "68881") == 0) - p->fpu_model = 68881; - else if(strcmp((const char *) attr, "68882") == 0) - p->fpu_model = 68882; - xmlFree(attr); - } - } - else if(strcmp((const char *)content, "jit") == 0) - { - xmlChar *attr = xmlGetProp(curr_node, (const xmlChar *) _T("memory")); - if(attr != NULL) - { - p->cachesize = atoi((const char *) attr) / 1024; - xmlFree(attr); - } - } - xmlFree(content); - } } - } } static void parse_boot(struct uae_prefs *p, xmlNode *node) { - for(xmlNode *curr_node = node; curr_node; curr_node = curr_node->next) - { - if (curr_node->type == XML_ELEMENT_NODE && strcmp((const char *)curr_node->name, _T("boot")) == 0) + for(xmlNode *curr_node = node; curr_node; curr_node = curr_node->next) { - xmlChar *attr = xmlGetProp(curr_node, (const xmlChar *) _T("type")); - if(attr != NULL) - { - if(strcmp((const char *) attr, "hdf") == 0) + if (curr_node->type == XML_ELEMENT_NODE && strcmp((const char *)curr_node->name, _T("boot")) == 0) { - // Built-in hdf required - xmlChar *content = xmlNodeGetContent(curr_node); - if(content != NULL) - { - char target_file[MAX_DPATH]; - fetch_rp9path(target_file, MAX_DPATH); - strncat(target_file, "workbench-", MAX_DPATH); - strncat(target_file, (const char *)content, MAX_DPATH); - strncat(target_file, ".hdf", MAX_DPATH); - FILE *f = fopen(target_file, "rb"); - if(f != NULL) + xmlChar *attr = xmlGetProp(curr_node, (const xmlChar *) _T("type")); + if(attr != NULL) { - char dhx[8]; - struct uaedev_config_info *uci; - int readonly = 0; - - fclose(f); - - xmlChar *ro = xmlGetProp(curr_node, (const xmlChar *) _T("readonly")); - if(ro != NULL) - { - if(strcmp((const char *) ro, "true") == 0) - readonly = 1; - xmlFree(ro); - } + if(strcmp((const char *) attr, "hdf") == 0) + { + // Built-in hdf required + xmlChar *content = xmlNodeGetContent(curr_node); + if(content != NULL) + { + char target_file[MAX_DPATH]; + fetch_rp9path(target_file, MAX_DPATH); + strncat(target_file, "workbench-", MAX_DPATH); + strncat(target_file, (const char *)content, MAX_DPATH); + strncat(target_file, ".hdf", MAX_DPATH); + FILE *f = fopen(target_file, "rb"); + if(f != NULL) + { + char dhx[8]; + struct uaedev_config_info *uci; + int readonly = 0; - sprintf(dhx, "DH%d", add_HDF_DHnum); - ++add_HDF_DHnum; - if(hardfile_testrdb (target_file)) - uci = add_filesys_config(p, -1, dhx, 0, target_file, readonly, 0, 0, 0, 0, 512, 127, 0, 0, 0, 0, 0, 0); - else - uci = add_filesys_config(p, -1, dhx, 0, target_file, readonly, 0, 32, 1, 2, 512, 127, 0, 0, 0, 0, 0, 0); - if (uci) - hardfile_do_disk_change (uci, 1); - gui_force_rtarea_hdchange(); + fclose(f); + + xmlChar *ro = xmlGetProp(curr_node, (const xmlChar *) _T("readonly")); + if(ro != NULL) + { + if(strcmp((const char *) ro, "true") == 0) + readonly = 1; + xmlFree(ro); + } + + sprintf(dhx, "DH%d", add_HDF_DHnum); + ++add_HDF_DHnum; + if(hardfile_testrdb (target_file)) + uci = add_filesys_config(p, -1, dhx, 0, target_file, readonly, 0, 0, 0, 0, 512, 127, 0, 0, 0, 0, 0, 0); + else + uci = add_filesys_config(p, -1, dhx, 0, target_file, readonly, 0, 32, 1, 2, 512, 127, 0, 0, 0, 0, 0, 0); + if (uci) + hardfile_do_disk_change (uci, 1); + gui_force_rtarea_hdchange(); + } + xmlFree(content); + } + } + xmlFree(attr); } - xmlFree(content); - } } - xmlFree(attr); - } } - } } static void extract_media(struct uae_prefs *p, unzFile uz, xmlNode *node) { - xmlNode *tmp = get_node(node, "media"); - if(tmp != NULL) - { - for(xmlNode *curr_node = tmp; curr_node; curr_node = curr_node->next) + xmlNode *tmp = get_node(node, "media"); + if(tmp != NULL) { - int mediatype = -1; - if (curr_node->type == XML_ELEMENT_NODE && strcmp((const char *)curr_node->name, _T("floppy")) == 0) - mediatype = 0; - else if (curr_node->type == XML_ELEMENT_NODE && strcmp((const char *)curr_node->name, _T("harddrive")) == 0) - mediatype = 1; - if(mediatype >= 0) - { - xmlChar *content = xmlNodeGetContent(curr_node); - if(content != NULL) + for(xmlNode *curr_node = tmp; curr_node; curr_node = curr_node->next) { - int priority = 0; - xmlChar *attr = xmlGetProp(curr_node, (const xmlChar *) _T("priority")); - if(attr != NULL) - { - priority = atoi((const char *)attr); - xmlFree(attr); - } - - if (unzLocateFile (uz, (char *)content, 1) == UNZ_OK) - { - unz_file_info file_info; - if (unzGetCurrentFileInfo (uz, &file_info, NULL, 0, NULL, 0, NULL, 0) == UNZ_OK) + int mediatype = -1; + if (curr_node->type == XML_ELEMENT_NODE && strcmp((const char *)curr_node->name, _T("floppy")) == 0) + mediatype = 0; + else if (curr_node->type == XML_ELEMENT_NODE && strcmp((const char *)curr_node->name, _T("harddrive")) == 0) + mediatype = 1; + if(mediatype >= 0) { - void *buffer = malloc(file_info.uncompressed_size); - if(buffer != NULL) - { - if (unzOpenCurrentFile (uz) == UNZ_OK) + xmlChar *content = xmlNodeGetContent(curr_node); + if(content != NULL) { - int readsize = unzReadCurrentFile(uz, buffer, file_info.uncompressed_size); - unzCloseCurrentFile(uz); - if(readsize == file_info.uncompressed_size) - { - char target_file[MAX_DPATH]; - if(!my_existsdir(rp9tmp_path)) - my_mkdir(rp9tmp_path); - snprintf(target_file, MAX_DPATH, "%s%s", rp9tmp_path, content); - FILE *f = fopen(target_file, "wb"); - if(f != NULL) + int priority = 0; + xmlChar *attr = xmlGetProp(curr_node, (const xmlChar *) _T("priority")); + if(attr != NULL) { - fwrite(buffer, 1, readsize, f); - fclose(f); - if(mediatype == 0) - { - // Add floppy - if(priority < 2) - { - strncpy(p->floppyslots[0].df, target_file, sizeof(p->floppyslots[0].df)); - disk_insert(0, p->floppyslots[0].df); - } - else if(priority == 2 && p->nr_floppies > 1) - { - strncpy(p->floppyslots[1].df, target_file, sizeof(p->floppyslots[1].df)); - disk_insert(1, p->floppyslots[1].df); - } - else if(priority == 3 && p->nr_floppies > 2) - { - strncpy(p->floppyslots[2].df, target_file, sizeof(p->floppyslots[2].df)); - disk_insert(2, p->floppyslots[2].df); - } - else if(priority == 4 && p->nr_floppies > 3) - { - strncpy(p->floppyslots[3].df, target_file, sizeof(p->floppyslots[3].df)); - disk_insert(3, p->floppyslots[3].df); - } - AddFileToDiskList(target_file, 1); - } - else - { - // Add hardfile - struct uaedev_config_info *uci; - char dhx[8]; - - sprintf(dhx, "DH%d", add_HDF_DHnum); - ++add_HDF_DHnum; - if(hardfile_testrdb (target_file)) - uci = add_filesys_config(p, -1, dhx, 0, target_file, 0, 0, 0, 0, 0, 512, 0, 0, 0, 0, 0, 0, 0); - else - uci = add_filesys_config(p, -1, dhx, 0, target_file, 0, 0, 32, 1, 2, 512, 0, 0, 0, 0, 0, 0, 0); - if (uci) - hardfile_do_disk_change (uci, 1); - gui_force_rtarea_hdchange(); - } - lstTmpRP9Files.push_back(target_file); + priority = atoi((const char *)attr); + xmlFree(attr); } - } + + if (unzLocateFile (uz, (char *)content, 1) == UNZ_OK) + { + unz_file_info file_info; + if (unzGetCurrentFileInfo (uz, &file_info, NULL, 0, NULL, 0, NULL, 0) == UNZ_OK) + { + void *buffer = malloc(file_info.uncompressed_size); + if(buffer != NULL) + { + if (unzOpenCurrentFile (uz) == UNZ_OK) + { + int readsize = unzReadCurrentFile(uz, buffer, file_info.uncompressed_size); + unzCloseCurrentFile(uz); + if(readsize == file_info.uncompressed_size) + { + char target_file[MAX_DPATH]; + if(!my_existsdir(rp9tmp_path)) + my_mkdir(rp9tmp_path); + snprintf(target_file, MAX_DPATH, "%s%s", rp9tmp_path, content); + FILE *f = fopen(target_file, "wb"); + if(f != NULL) + { + fwrite(buffer, 1, readsize, f); + fclose(f); + if(mediatype == 0) + { + // Add floppy + if(priority < 2) + { + strncpy(p->floppyslots[0].df, target_file, sizeof(p->floppyslots[0].df)); + disk_insert(0, p->floppyslots[0].df); + } + else if(priority == 2 && p->nr_floppies > 1) + { + strncpy(p->floppyslots[1].df, target_file, sizeof(p->floppyslots[1].df)); + disk_insert(1, p->floppyslots[1].df); + } + else if(priority == 3 && p->nr_floppies > 2) + { + strncpy(p->floppyslots[2].df, target_file, sizeof(p->floppyslots[2].df)); + disk_insert(2, p->floppyslots[2].df); + } + else if(priority == 4 && p->nr_floppies > 3) + { + strncpy(p->floppyslots[3].df, target_file, sizeof(p->floppyslots[3].df)); + disk_insert(3, p->floppyslots[3].df); + } + AddFileToDiskList(target_file, 1); + } + else + { + // Add hardfile + struct uaedev_config_info *uci; + char dhx[8]; + + sprintf(dhx, "DH%d", add_HDF_DHnum); + ++add_HDF_DHnum; + if(hardfile_testrdb (target_file)) + uci = add_filesys_config(p, -1, dhx, 0, target_file, 0, 0, 0, 0, 0, 512, 0, 0, 0, 0, 0, 0, 0); + else + uci = add_filesys_config(p, -1, dhx, 0, target_file, 0, 0, 32, 1, 2, 512, 0, 0, 0, 0, 0, 0, 0); + if (uci) + hardfile_do_disk_change (uci, 1); + gui_force_rtarea_hdchange(); + } + lstTmpRP9Files.push_back(target_file); + } + } + } + free(buffer); + } + } + } + + xmlFree(content); } - free(buffer); - } } - } - - xmlFree(content); - } - } + } } - } } static bool parse_manifest(struct uae_prefs *p, unzFile uz, const char *manifest) { - bool bResult = false; - char buffer[MAX_MANIFEST_ENTRY]; - - xmlDocPtr doc = xmlReadMemory(manifest, strlen(manifest), NULL, NULL, 0);; - if(doc != NULL) - { - xmlNode *root_element = xmlDocGetRootElement(doc); - xmlNode *rp9 = get_node(root_element, "rp9"); - if(rp9 != NULL) + bool bResult = false; + char buffer[MAX_MANIFEST_ENTRY]; + + xmlDocPtr doc = xmlReadMemory(manifest, strlen(manifest), NULL, NULL, 0);; + if(doc != NULL) { - xmlNode *app = get_node(rp9, "application"); - if(app != NULL) - { - int rom = -1; - xmlNode *tmp = get_node(app, "description"); - if(tmp != NULL && get_value(tmp, "systemrom", buffer, MAX_MANIFEST_ENTRY)) - rom = atoi(buffer); - - tmp = get_node(app, "configuration"); - if(tmp != NULL && get_value(tmp, "system", buffer, MAX_MANIFEST_ENTRY)) + xmlNode *root_element = xmlDocGetRootElement(doc); + xmlNode *rp9 = get_node(root_element, "rp9"); + if(rp9 != NULL) { - set_default_system(p, buffer, rom); - - parse_compatibility(p, tmp); - parse_ram(p, tmp); - parse_clip(p, tmp); - parse_peripheral(p, tmp); - parse_boot(p, tmp); - extract_media(p, uz, app); - bResult = true; + xmlNode *app = get_node(rp9, "application"); + if(app != NULL) + { + int rom = -1; + xmlNode *tmp = get_node(app, "description"); + if(tmp != NULL && get_value(tmp, "systemrom", buffer, MAX_MANIFEST_ENTRY)) + rom = atoi(buffer); + + tmp = get_node(app, "configuration"); + if(tmp != NULL && get_value(tmp, "system", buffer, MAX_MANIFEST_ENTRY)) + { + set_default_system(p, buffer, rom); + + parse_compatibility(p, tmp); + parse_ram(p, tmp); + parse_clip(p, tmp); + parse_peripheral(p, tmp); + parse_boot(p, tmp); + extract_media(p, uz, app); + bResult = true; + } + } } - } + xmlFreeDoc(doc); } - xmlFreeDoc(doc); - } - - return bResult; + + return bResult; } bool rp9_parse_file(struct uae_prefs *p, const char *filename) { - bool bResult = false; - struct zfile *zf; - unzFile uz; - unz_file_info file_info; - char *manifest; - - add_HDF_DHnum = 0; - clip_no_hires = false; - - zf = zfile_fopen(filename, _T("rb")); - if(zf != NULL) - { - uz = unzOpen(zf); - if (uz != NULL) - { - if (unzLocateFile (uz, RP9_MANIFEST, 1) == UNZ_OK) - { - if (unzGetCurrentFileInfo (uz, &file_info, NULL, 0, NULL, 0, NULL, 0) == UNZ_OK) - { - manifest = (char *)malloc(file_info.uncompressed_size + 1); - if(manifest != NULL) - { - if (unzOpenCurrentFile (uz) == UNZ_OK) - { - int readsize = unzReadCurrentFile(uz, manifest, file_info.uncompressed_size); - unzCloseCurrentFile(uz); + bool bResult = false; + struct zfile *zf; + unzFile uz; + unz_file_info file_info; + char *manifest; - if(readsize == file_info.uncompressed_size) - { - manifest[readsize] = '\0'; - bResult = parse_manifest(p, uz, manifest); - - if(bResult) + add_HDF_DHnum = 0; + clip_no_hires = false; + + zf = zfile_fopen(filename, _T("rb")); + if(zf != NULL) + { + uz = unzOpen(zf); + if (uz != NULL) + { + if (unzLocateFile (uz, RP9_MANIFEST, 1) == UNZ_OK) + { + if (unzGetCurrentFileInfo (uz, &file_info, NULL, 0, NULL, 0, NULL, 0) == UNZ_OK) { - // Fixup some prefs... - if(p->m68k_speed >= 0) - p->cachesize = 0; // Use JIT only if max. speed selected - p->input_joymouse_multiplier = 5; // Most games need slower mouse movement... + manifest = (char *)malloc(file_info.uncompressed_size + 1); + if(manifest != NULL) + { + if (unzOpenCurrentFile (uz) == UNZ_OK) + { + int readsize = unzReadCurrentFile(uz, manifest, file_info.uncompressed_size); + unzCloseCurrentFile(uz); + + if(readsize == file_info.uncompressed_size) + { + manifest[readsize] = '\0'; + bResult = parse_manifest(p, uz, manifest); + + if(bResult) + { + // Fixup some prefs... + if(p->m68k_speed >= 0) + p->cachesize = 0; // Use JIT only if max. speed selected + p->input_joymouse_multiplier = 5; // Most games need slower mouse movement... + } + } + } + free(manifest); + } } - } } - free(manifest); - } + + unzClose (uz); } - } - - unzClose (uz); + zfile_fclose(zf); } - zfile_fclose(zf); - } - - return bResult; + + return bResult; } diff --git a/src/od-pandora/sigsegv_handler.cpp b/src/od-pandora/sigsegv_handler.cpp index 1a9413cd..b9339e9c 100644 --- a/src/od-pandora/sigsegv_handler.cpp +++ b/src/od-pandora/sigsegv_handler.cpp @@ -2,7 +2,7 @@ * sigsegv_linux_arm.cpp - x86_64 Linux SIGSEGV handler * * Copyright (c) 2014 Jens Heitmann ARAnyM dev team (see AUTHORS) - * + * * Inspired by Bernie Meyer's UAE-JIT and Gwenole Beauchesne's Basilisk II-JIT * * This file is part of the ARAnyM project which builds a new and powerful @@ -43,118 +43,125 @@ #include "debug.h" -enum transfer_type_t { - TYPE_UNKNOWN, - TYPE_LOAD, - TYPE_STORE +enum transfer_type_t +{ + TYPE_UNKNOWN, + TYPE_LOAD, + TYPE_STORE }; -enum type_size_t { - SIZE_UNKNOWN, - SIZE_BYTE, - SIZE_WORD, - SIZE_INT +enum type_size_t +{ + SIZE_UNKNOWN, + SIZE_BYTE, + SIZE_WORD, + SIZE_INT }; static int in_handler=0; -enum { - ARM_REG_PC = 15, - ARM_REG_CPSR = 16 +enum +{ + ARM_REG_PC = 15, + ARM_REG_CPSR = 16 }; -STATIC_INLINE void unknown_instruction(uae_u32 instr) +STATIC_INLINE void unknown_instruction(uae_u32 instr) { - panicbug("Unknown instruction %08x!\n", instr); - SDL_Quit(); - abort(); + panicbug("Unknown instruction %08x!\n", instr); + SDL_Quit(); + abort(); } -static bool handle_arm_instruction(unsigned long *pregs, uintptr addr) +static bool handle_arm_instruction(unsigned long *pregs, uintptr addr) { - unsigned int *pc = (unsigned int *)pregs[ARM_REG_PC]; + unsigned int *pc = (unsigned int *)pregs[ARM_REG_PC]; - panicbug("IP: %p [%08x] %p\n", pc, pc[0], addr); - if (pc == 0) - return false; + panicbug("IP: %p [%08x] %p\n", pc, pc[0], addr); + if (pc == 0) + return false; - if (in_handler > 0) - { - panicbug("Segmentation fault in handler :-(\n"); - return false; - } + if (in_handler > 0) + { + panicbug("Segmentation fault in handler :-(\n"); + return false; + } - in_handler += 1; + in_handler += 1; - transfer_type_t transfer_type = TYPE_UNKNOWN; - int transfer_size = SIZE_UNKNOWN; - enum { SIGNED, UNSIGNED }; - int style = UNSIGNED; + transfer_type_t transfer_type = TYPE_UNKNOWN; + int transfer_size = SIZE_UNKNOWN; + enum { SIGNED, UNSIGNED }; + int style = UNSIGNED; - // Handle load/store instructions only - const unsigned int opcode = pc[0]; - switch ((opcode >> 25) & 7) { - case 0: // Halfword and Signed Data Transfer (LDRH, STRH, LDRSB, LDRSH) - // Determine transfer size (S/H bits) - switch ((opcode >> 5) & 3) { - case 0: // SWP instruction - panicbug("FIXME: SWP Instruction\n"); - break; - case 1: // Unsigned halfwords - transfer_size = SIZE_WORD; - break; - case 3: // Signed halfwords - style = SIGNED; - transfer_size = SIZE_WORD; - break; - case 2: // Signed byte - style = SIGNED; - transfer_size = SIZE_BYTE; - break; - } - break; - case 2: - case 3: // Single Data Transfer (LDR, STR) - style = UNSIGNED; - // Determine transfer size (B bit) - if (((opcode >> 22) & 1) == 1) - transfer_size = SIZE_BYTE; - else - transfer_size = SIZE_INT; - break; - default: - panicbug("FIXME: support load/store mutliple?\n"); - in_handler--; - return false; - } + // Handle load/store instructions only + const unsigned int opcode = pc[0]; + switch ((opcode >> 25) & 7) + { + case 0: // Halfword and Signed Data Transfer (LDRH, STRH, LDRSB, LDRSH) + // Determine transfer size (S/H bits) + switch ((opcode >> 5) & 3) + { + case 0: // SWP instruction + panicbug("FIXME: SWP Instruction\n"); + break; + case 1: // Unsigned halfwords + transfer_size = SIZE_WORD; + break; + case 3: // Signed halfwords + style = SIGNED; + transfer_size = SIZE_WORD; + break; + case 2: // Signed byte + style = SIGNED; + transfer_size = SIZE_BYTE; + break; + } + break; + case 2: + case 3: // Single Data Transfer (LDR, STR) + style = UNSIGNED; + // Determine transfer size (B bit) + if (((opcode >> 22) & 1) == 1) + transfer_size = SIZE_BYTE; + else + transfer_size = SIZE_INT; + break; + default: + panicbug("FIXME: support load/store mutliple?\n"); + in_handler--; + return false; + } - // Check for invalid transfer size (SWP instruction?) - if (transfer_size == SIZE_UNKNOWN) { - panicbug("Invalid transfer size\n"); - in_handler--; - return false; - } + // Check for invalid transfer size (SWP instruction?) + if (transfer_size == SIZE_UNKNOWN) + { + panicbug("Invalid transfer size\n"); + in_handler--; + return false; + } - // Determine transfer type (L bit) - if (((opcode >> 20) & 1) == 1) - transfer_type = TYPE_LOAD; - else - transfer_type = TYPE_STORE; + // Determine transfer type (L bit) + if (((opcode >> 20) & 1) == 1) + transfer_type = TYPE_LOAD; + else + transfer_type = TYPE_STORE; - int rd = (opcode >> 12) & 0xf; + int rd = (opcode >> 12) & 0xf; #if DEBUG - static const char * reg_names[] = { - "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", - "r8", "r9", "sl", "fp", "ip", "sp", "lr", "pc" - }; - panicbug("%s %s register %s\n", - transfer_size == SIZE_BYTE ? "byte" : - transfer_size == SIZE_WORD ? "word" : - transfer_size == SIZE_INT ? "long" : "unknown", - transfer_type == TYPE_LOAD ? "load to" : "store from", - reg_names[rd]); - panicbug("\n"); + static const char * reg_names[] = + { + "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", + "r8", "r9", "sl", "fp", "ip", "sp", "lr", "pc" + }; + panicbug("%s %s register %s\n", + transfer_size == SIZE_BYTE ? "byte" : + transfer_size == SIZE_WORD ? "word" : + transfer_size == SIZE_INT ? "long" : "unknown", + transfer_type == TYPE_LOAD ? "load to" : "store from", + reg_names[rd]); + panicbug("\n"); // for (int i = 0; i < 16; i++) { // panicbug("%s : %p", reg_names[i], pregs[i]); // } @@ -163,52 +170,63 @@ static bool handle_arm_instruction(unsigned long *pregs, uintptr addr) // if ((addr < 0x00f00000) || (addr > 0x00ffffff)) // goto buserr; - if (transfer_type == TYPE_LOAD) { - switch(transfer_size) { - case SIZE_BYTE: { - pregs[rd] = style == SIGNED ? (uae_s8)get_byte(addr) : (uae_u8)get_byte(addr); - break; - } - case SIZE_WORD: { - pregs[rd] = do_byteswap_16(style == SIGNED ? (uae_s16)get_word(addr) : (uae_u16)get_word(addr)); - break; - } - case SIZE_INT: { - pregs[rd] = do_byteswap_32(get_long(addr)); - break; - } - } - } else { - switch(transfer_size) { - case SIZE_BYTE: { - put_byte(addr, pregs[rd]); - break; - } - case SIZE_WORD: { - put_word(addr, do_byteswap_16(pregs[rd])); - break; - } - case SIZE_INT: { - put_long(addr, do_byteswap_32(pregs[rd])); - break; - } - } - } + if (transfer_type == TYPE_LOAD) + { + switch(transfer_size) + { + case SIZE_BYTE: + { + pregs[rd] = style == SIGNED ? (uae_s8)get_byte(addr) : (uae_u8)get_byte(addr); + break; + } + case SIZE_WORD: + { + pregs[rd] = do_byteswap_16(style == SIGNED ? (uae_s16)get_word(addr) : (uae_u16)get_word(addr)); + break; + } + case SIZE_INT: + { + pregs[rd] = do_byteswap_32(get_long(addr)); + break; + } + } + } + else + { + switch(transfer_size) + { + case SIZE_BYTE: + { + put_byte(addr, pregs[rd]); + break; + } + case SIZE_WORD: + { + put_word(addr, do_byteswap_16(pregs[rd])); + break; + } + case SIZE_INT: + { + put_long(addr, do_byteswap_32(pregs[rd])); + break; + } + } + } - pregs[ARM_REG_PC] += 4; - panicbug("processed: %p \n", pregs[ARM_REG_PC]); + pregs[ARM_REG_PC] += 4; + panicbug("processed: %p \n", pregs[ARM_REG_PC]); - in_handler--; + in_handler--; - return true; + return true; buserr: - panicbug("Amiga bus error\n"); - in_handler--; + panicbug("Amiga bus error\n"); + in_handler--; // BUS_ERROR(addr); - return false; -} + return false; +} #define SIG_READ 1 @@ -217,112 +235,112 @@ buserr: extern void dump_compiler(uae_u32 *sp); -void signal_segv(int signum, siginfo_t* info, void*ptr) +void signal_segv(int signum, siginfo_t* info, void*ptr) { - int i, f = 0; - ucontext_t *ucontext = (ucontext_t*)ptr; - Dl_info dlinfo; + int i, f = 0; + ucontext_t *ucontext = (ucontext_t*)ptr; + Dl_info dlinfo; #ifdef TRACER - trace_end(); + trace_end(); #endif - void **bp = 0; - void *ip = 0; + void **bp = 0; + void *ip = 0; - mcontext_t *context = &(ucontext->uc_mcontext); - unsigned long *regs = &context->arm_r0; - uintptr addr = (uintptr)info->si_addr; - addr = (uae_u32) addr - (uae_u32) natmem_offset; - if (handle_arm_instruction(regs, addr)) - return; - - if(signum == 4) - printf("Illegal Instruction!\n"); - else - printf("Segmentation Fault!\n"); + mcontext_t *context = &(ucontext->uc_mcontext); + unsigned long *regs = &context->arm_r0; + uintptr addr = (uintptr)info->si_addr; + addr = (uae_u32) addr - (uae_u32) natmem_offset; + if (handle_arm_instruction(regs, addr)) + return; - printf("info.si_signo = %d\n", signum); - printf("info.si_errno = %d\n", info->si_errno); + if(signum == 4) + printf("Illegal Instruction!\n"); + else + printf("Segmentation Fault!\n"); + + printf("info.si_signo = %d\n", signum); + printf("info.si_errno = %d\n", info->si_errno); // printf("info.si_code = %d (%s)\n", info->si_code, si_codes[info->si_code]); - printf("info.si_code = %d\n", info->si_code); - printf("info.si_addr = %p\n", info->si_addr); - if(signum == 4) - printf(" value = 0x%08x\n", *((uae_u32*)(info->si_addr))); - printf("reg[%02d] = 0x%08x\n",0 , ucontext->uc_mcontext.arm_r0); - printf("reg[%02d] = 0x%08x\n",1 , ucontext->uc_mcontext.arm_r1); - printf("reg[%02d] = 0x%08x\n",2 , ucontext->uc_mcontext.arm_r2); - printf("reg[%02d] = 0x%08x\n",3 , ucontext->uc_mcontext.arm_r3); - printf("reg[%02d] = 0x%08x\n",4 , ucontext->uc_mcontext.arm_r4); - printf("reg[%02d] = 0x%08x\n",5 , ucontext->uc_mcontext.arm_r5); - printf("reg[%02d] = 0x%08x\n",6 , ucontext->uc_mcontext.arm_r6); - printf("reg[%02d] = 0x%08x\n",7 , ucontext->uc_mcontext.arm_r7); - printf("reg[%02d] = 0x%08x\n",8 , ucontext->uc_mcontext.arm_r8); - printf("reg[%02d] = 0x%08x\n",9 , ucontext->uc_mcontext.arm_r9); - printf("reg[%02d] = 0x%08x\n",10 , ucontext->uc_mcontext.arm_r10); - printf("FP = 0x%08x\n", ucontext->uc_mcontext.arm_fp); - printf("IP = 0x%08x\n", ucontext->uc_mcontext.arm_ip); - printf("SP = 0x%08x\n", ucontext->uc_mcontext.arm_sp); - printf("LR = 0x%08x\n", ucontext->uc_mcontext.arm_lr); - printf("PC = 0x%08x\n", ucontext->uc_mcontext.arm_pc); - printf("CPSR = 0x%08x\n", ucontext->uc_mcontext.arm_cpsr); - printf("Fault Address = 0x%08x\n", ucontext->uc_mcontext.fault_address); - printf("Trap no = 0x%08x\n", ucontext->uc_mcontext.trap_no); - printf("Err Code = 0x%08x\n", ucontext->uc_mcontext.error_code); - printf("Old Mask = 0x%08x\n", ucontext->uc_mcontext.oldmask); + printf("info.si_code = %d\n", info->si_code); + printf("info.si_addr = %p\n", info->si_addr); + if(signum == 4) + printf(" value = 0x%08x\n", *((uae_u32*)(info->si_addr))); + printf("reg[%02d] = 0x%08x\n",0, ucontext->uc_mcontext.arm_r0); + printf("reg[%02d] = 0x%08x\n",1, ucontext->uc_mcontext.arm_r1); + printf("reg[%02d] = 0x%08x\n",2, ucontext->uc_mcontext.arm_r2); + printf("reg[%02d] = 0x%08x\n",3, ucontext->uc_mcontext.arm_r3); + printf("reg[%02d] = 0x%08x\n",4, ucontext->uc_mcontext.arm_r4); + printf("reg[%02d] = 0x%08x\n",5, ucontext->uc_mcontext.arm_r5); + printf("reg[%02d] = 0x%08x\n",6, ucontext->uc_mcontext.arm_r6); + printf("reg[%02d] = 0x%08x\n",7, ucontext->uc_mcontext.arm_r7); + printf("reg[%02d] = 0x%08x\n",8, ucontext->uc_mcontext.arm_r8); + printf("reg[%02d] = 0x%08x\n",9, ucontext->uc_mcontext.arm_r9); + printf("reg[%02d] = 0x%08x\n",10, ucontext->uc_mcontext.arm_r10); + printf("FP = 0x%08x\n", ucontext->uc_mcontext.arm_fp); + printf("IP = 0x%08x\n", ucontext->uc_mcontext.arm_ip); + printf("SP = 0x%08x\n", ucontext->uc_mcontext.arm_sp); + printf("LR = 0x%08x\n", ucontext->uc_mcontext.arm_lr); + printf("PC = 0x%08x\n", ucontext->uc_mcontext.arm_pc); + printf("CPSR = 0x%08x\n", ucontext->uc_mcontext.arm_cpsr); + printf("Fault Address = 0x%08x\n", ucontext->uc_mcontext.fault_address); + printf("Trap no = 0x%08x\n", ucontext->uc_mcontext.trap_no); + printf("Err Code = 0x%08x\n", ucontext->uc_mcontext.error_code); + printf("Old Mask = 0x%08x\n", ucontext->uc_mcontext.oldmask); // dump_compiler((uae_u32*)ucontext->uc_mcontext.arm_pc); - void *getaddr = (void *)ucontext->uc_mcontext.arm_lr; - if(dladdr(getaddr, &dlinfo)) - printf("LR - 0x%08X: <%s> (%s)\n", getaddr, dlinfo.dli_sname, dlinfo.dli_fname); - else - printf("LR - 0x%08X: symbol not found\n", getaddr); + void *getaddr = (void *)ucontext->uc_mcontext.arm_lr; + if(dladdr(getaddr, &dlinfo)) + printf("LR - 0x%08X: <%s> (%s)\n", getaddr, dlinfo.dli_sname, dlinfo.dli_fname); + else + printf("LR - 0x%08X: symbol not found\n", getaddr); // printf("Stack trace:\n"); -/* - #define MAX_BACKTRACE 10 - - void *array[MAX_BACKTRACE]; - int size = backtrace(array, MAX_BACKTRACE); - for(int i=0; i (%s)\n", array[i], symname, - (unsigned long)array[i] - (unsigned long)dlinfo.dli_saddr, dlinfo.dli_fname); - } - } -*/ + /* + #define MAX_BACKTRACE 10 -/* - ip = (void*)ucontext->uc_mcontext.arm_r10; - bp = (void**)ucontext->uc_mcontext.arm_r10; - while(bp && ip) { - if (!dladdr(ip, &dlinfo)) { - printf("IP out of range\n"); - break; - } - const char *symname = dlinfo.dli_sname; - printf("% 2d: %p <%s + 0x%08x> (%s)\n", ++f, ip, symname, - (unsigned long)ip - (unsigned long)dlinfo.dli_saddr, dlinfo.dli_fname); - if(dlinfo.dli_sname && !strcmp(dlinfo.dli_sname, "main")) - break; - ip = bp[1]; - bp = (void**)bp[0]; - } + void *array[MAX_BACKTRACE]; + int size = backtrace(array, MAX_BACKTRACE); + for(int i=0; i (%s)\n", array[i], symname, + (unsigned long)array[i] - (unsigned long)dlinfo.dli_saddr, dlinfo.dli_fname); + } + } + */ - printf("Stack trace (non-dedicated):\n"); - char **strings; - void *bt[20]; - int sz = backtrace(bt, 20); - strings = backtrace_symbols(bt, sz); - for(i = 0; i < sz; ++i) - printf("%s\n", strings[i]); - printf("End of stack trace.\n"); -*/ - - SDL_Quit(); - exit(1); + /* + ip = (void*)ucontext->uc_mcontext.arm_r10; + bp = (void**)ucontext->uc_mcontext.arm_r10; + while(bp && ip) { + if (!dladdr(ip, &dlinfo)) { + printf("IP out of range\n"); + break; + } + const char *symname = dlinfo.dli_sname; + printf("% 2d: %p <%s + 0x%08x> (%s)\n", ++f, ip, symname, + (unsigned long)ip - (unsigned long)dlinfo.dli_saddr, dlinfo.dli_fname); + if(dlinfo.dli_sname && !strcmp(dlinfo.dli_sname, "main")) + break; + ip = bp[1]; + bp = (void**)bp[0]; + } + + printf("Stack trace (non-dedicated):\n"); + char **strings; + void *bt[20]; + int sz = backtrace(bt, 20); + strings = backtrace_symbols(bt, sz); + for(i = 0; i < sz; ++i) + printf("%s\n", strings[i]); + printf("End of stack trace.\n"); + */ + + SDL_Quit(); + exit(1); } diff --git a/src/od-pandora/target.h b/src/od-pandora/target.h index 063dcb07..2344c19d 100644 --- a/src/od-pandora/target.h +++ b/src/od-pandora/target.h @@ -1,10 +1,10 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Target specific stuff, Pandora version - * - * Copyright 1997 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Target specific stuff, Pandora version + * + * Copyright 1997 Bernd Schmidt + */ #include @@ -59,43 +59,47 @@ extern void gui_force_rtarea_hdchange(void); extern bool hardfile_testrdb (const TCHAR *filename); #ifdef __cplusplus - extern "C" { +extern "C" { #endif - void trace_begin (void); - void trace_end (void); +void trace_begin (void); +void trace_end (void); #ifdef __cplusplus - } +} #endif STATIC_INLINE size_t uae_tcslcpy(TCHAR *dst, const TCHAR *src, size_t size) { - if (size == 0) { - return 0; - } - size_t src_len = _tcslen(src); - size_t cpy_len = src_len; - if (cpy_len >= size) { - cpy_len = size - 1; - } - memcpy(dst, src, cpy_len * sizeof(TCHAR)); - dst[cpy_len] = _T('\0'); - return src_len; + if (size == 0) + { + return 0; + } + size_t src_len = _tcslen(src); + size_t cpy_len = src_len; + if (cpy_len >= size) + { + cpy_len = size - 1; + } + memcpy(dst, src, cpy_len * sizeof(TCHAR)); + dst[cpy_len] = _T('\0'); + return src_len; } STATIC_INLINE size_t uae_strlcpy(char *dst, const char *src, size_t size) { - if (size == 0) { - return 0; - } - size_t src_len = strlen(src); - size_t cpy_len = src_len; - if (cpy_len >= size) { - cpy_len = size - 1; - } - memcpy(dst, src, cpy_len); - dst[cpy_len] = '\0'; - return src_len; + if (size == 0) + { + return 0; + } + size_t src_len = strlen(src); + size_t cpy_len = src_len; + if (cpy_len >= size) + { + cpy_len = size - 1; + } + memcpy(dst, src, cpy_len); + dst[cpy_len] = '\0'; + return src_len; } STATIC_INLINE int max(int x, int y) diff --git a/src/od-pandora/writelog.cpp b/src/od-pandora/writelog.cpp index 0d9bb8ee..3c06e74b 100644 --- a/src/od-pandora/writelog.cpp +++ b/src/od-pandora/writelog.cpp @@ -1,10 +1,10 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Standard write_log that writes to the console - * - * Copyright 2001 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Standard write_log that writes to the console + * + * Copyright 2001 Bernd Schmidt + */ #include "sysconfig.h" #include "sysdeps.h" #include "uae.h" @@ -28,18 +28,19 @@ void console_out (const TCHAR *format,...) void write_log (const TCHAR *format,...) { - int count; - int numwritten; - TCHAR buffer[WRITE_LOG_BUF_SIZE]; + int count; + int numwritten; + TCHAR buffer[WRITE_LOG_BUF_SIZE]; - va_list parms; - va_start (parms, format); - count = vsnprintf( buffer, WRITE_LOG_BUF_SIZE-1, format, parms ); - if( debugfile ) { - fprintf( debugfile, buffer ); - fflush (debugfile); - } - va_end (parms); + va_list parms; + va_start (parms, format); + count = vsnprintf( buffer, WRITE_LOG_BUF_SIZE-1, format, parms ); + if( debugfile ) + { + fprintf( debugfile, buffer ); + fflush (debugfile); + } + va_end (parms); } #endif @@ -56,7 +57,7 @@ void jit_abort (const TCHAR *format,...) write_log (buffer); va_end (parms); if (!happened) - gui_message ("JIT: Serious error:\n%s", buffer); + gui_message ("JIT: Serious error:\n%s", buffer); happened = 1; uae_reset (1, 0); } diff --git a/src/od-rasp/rasp_gfx.cpp b/src/od-rasp/rasp_gfx.cpp index 67cde1ca..c7579cee 100644 --- a/src/od-rasp/rasp_gfx.cpp +++ b/src/od-rasp/rasp_gfx.cpp @@ -4,7 +4,7 @@ #include "uae.h" #include "options.h" #include "gui.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "inputdevice.h" #include "custom.h" @@ -45,8 +45,9 @@ int screen_is_picasso = 0; static int curr_layer_width = 0; -static char screenshot_filename_default[255]={ - '/', 't', 'm', 'p', '/', 'n', 'u', 'l', 'l', '.', 'p', 'n', 'g', '\0' +static char screenshot_filename_default[255]= +{ + '/', 't', 'm', 'p', '/', 'n', 'u', 'l', 'l', '.', 'p', 'n', 'g', '\0' }; char *screenshot_filename=(char *)&screenshot_filename_default[0]; FILE *screenshot_file=NULL; @@ -82,63 +83,63 @@ unsigned char current_resource_amigafb = 0; void vsync_callback(unsigned int a, void* b) { - //vsync_timing=SDL_GetTicks(); - //vsync_frequency = vsync_timing - old_time; - //old_time = vsync_timing; - //need_frameskip = ( vsync_frequency > 31 ) ? (need_frameskip+1) : need_frameskip; - //printf("d: %i", vsync_frequency ); - uae_sem_post (&vsync_wait_sem); + //vsync_timing=SDL_GetTicks(); + //vsync_frequency = vsync_timing - old_time; + //old_time = vsync_timing; + //need_frameskip = ( vsync_frequency > 31 ) ? (need_frameskip+1) : need_frameskip; + //printf("d: %i", vsync_frequency ); + uae_sem_post (&vsync_wait_sem); } int graphics_setup (void) { #ifdef PICASSO96 - picasso_InitResolutions(); - InitPicasso96(); + picasso_InitResolutions(); + InitPicasso96(); #endif - bcm_host_init(); - return 1; + bcm_host_init(); + return 1; } void InitAmigaVidMode(struct uae_prefs *p) { - /* Initialize structure for Amiga video modes */ - gfxvidinfo.pixbytes = 2; - gfxvidinfo.bufmem = (uae_u8 *)prSDLScreen->pixels; - gfxvidinfo.outwidth = p->gfx_size.width; - gfxvidinfo.outheight = p->gfx_size.height; + /* Initialize structure for Amiga video modes */ + gfxvidinfo.pixbytes = 2; + gfxvidinfo.bufmem = (uae_u8 *)prSDLScreen->pixels; + gfxvidinfo.outwidth = p->gfx_size.width; + gfxvidinfo.outheight = p->gfx_size.height; #ifdef PICASSO96 - if(screen_is_picasso) - { - gfxvidinfo.outwidth = picasso_vidinfo.width; - //gfxvidinfo.outheight = picasso_vidinfo.height; - } + if(screen_is_picasso) + { + gfxvidinfo.outwidth = picasso_vidinfo.width; + //gfxvidinfo.outheight = picasso_vidinfo.height; + } #endif - //gfxvidinfo.rowbytes = prSDLScreen->pitch; - gfxvidinfo.rowbytes = blit_rect.width * 2; + //gfxvidinfo.rowbytes = prSDLScreen->pitch; + gfxvidinfo.rowbytes = blit_rect.width * 2; } void graphics_dispmanshutdown (void) { if (DispManXElementpresent == 1) { - DispManXElementpresent = 0; - dispmanxupdate = vc_dispmanx_update_start( 10 ); - vc_dispmanx_element_remove( dispmanxupdate, dispmanxelement); - vc_dispmanx_update_submit_sync(dispmanxupdate); + DispManXElementpresent = 0; + dispmanxupdate = vc_dispmanx_update_start( 10 ); + vc_dispmanx_element_remove( dispmanxupdate, dispmanxelement); + vc_dispmanx_update_submit_sync(dispmanxupdate); } } void graphics_subshutdown (void) { - if (dispmanxresource_amigafb_1 != 0) - graphics_dispmanshutdown(); - // Dunno if below lines are usefull for Rpi... - //SDL_FreeSurface(prSDLScreen); - //prSDLScreen = NULL; + if (dispmanxresource_amigafb_1 != 0) + graphics_dispmanshutdown(); + // Dunno if below lines are usefull for Rpi... + //SDL_FreeSurface(prSDLScreen); + //prSDLScreen = NULL; } @@ -148,190 +149,192 @@ void graphics_subshutdown (void) static void open_screen(struct uae_prefs *p) { - VC_DISPMANX_ALPHA_T alpha = { (DISPMANX_FLAGS_ALPHA_T ) (DISPMANX_FLAGS_ALPHA_FROM_SOURCE | DISPMANX_FLAGS_ALPHA_FIXED_ALL_PIXELS), - 255, /*alpha 0->255*/ - 0 }; + VC_DISPMANX_ALPHA_T alpha = { (DISPMANX_FLAGS_ALPHA_T ) (DISPMANX_FLAGS_ALPHA_FROM_SOURCE | DISPMANX_FLAGS_ALPHA_FIXED_ALL_PIXELS), + 255, /*alpha 0->255*/ + 0 + }; - uint32_t vc_image_ptr; - int width; - int height; + uint32_t vc_image_ptr; + int width; + int height; #ifdef PICASSO96 - if (screen_is_picasso) - { - width = picasso_vidinfo.width; - height = picasso_vidinfo.height; - } else + if (screen_is_picasso) + { + width = picasso_vidinfo.width; + height = picasso_vidinfo.height; + } + else #endif - { - p->gfx_resolution = p->gfx_size.width > 600 ? 1 : 0; - width = p->gfx_size.width; - height = p->gfx_size.height; - } + { + p->gfx_resolution = p->gfx_size.width > 600 ? 1 : 0; + width = p->gfx_size.width; + height = p->gfx_size.height; + } - //if(prSDLScreen != NULL) - //{ - // SDL_FreeSurface(prSDLScreen); - // prSDLScreen = NULL; - //} + //if(prSDLScreen != NULL) + //{ + // SDL_FreeSurface(prSDLScreen); + // prSDLScreen = NULL; + //} + + if(Dummy_prSDLScreen == NULL ) + { + const SDL_VideoInfo* videoInfo = SDL_GetVideoInfo (); + printf("DispmanX: Current resolution: %d x %d %d bpp\n",videoInfo->current_w, videoInfo->current_h, videoInfo->vfmt->BitsPerPixel); + // For debug, in order to avoid full screen. + Dummy_prSDLScreen = SDL_SetVideoMode(videoInfo->current_w,videoInfo->current_h,16,SDL_SWSURFACE |SDL_FULLSCREEN); + //Dummy_prSDLScreen = SDL_SetVideoMode(800,480,16,SDL_SWSURFACE ); + } + + SDL_ShowCursor(SDL_DISABLE); + + // check if resolution hasn't change in menu. otherwise free the resources so that they will be re-generated with new resolution. + if ((dispmanxresource_amigafb_1 != 0) && + ((blit_rect.width != width) || (blit_rect.height != height) || (currprefs.gfx_correct_aspect != changed_prefs.gfx_correct_aspect) || + (currprefs.gfx_fullscreen_ratio != changed_prefs.gfx_fullscreen_ratio))) + { + printf("Emulation resolution change detected.\n"); + if(prSDLScreen != NULL ) + { + SDL_FreeSurface(prSDLScreen); + prSDLScreen = 0; + } + graphics_dispmanshutdown(); + vc_dispmanx_resource_delete( dispmanxresource_amigafb_1 ); + vc_dispmanx_resource_delete( dispmanxresource_amigafb_2 ); + dispmanxresource_amigafb_1 = 0; + dispmanxresource_amigafb_2 = 0; + } + + if (dispmanxresource_amigafb_1 == 0) + { + printf("Emulation resolution: Width %i Height: %i\n",width,height); + currprefs.gfx_correct_aspect = changed_prefs.gfx_correct_aspect; + currprefs.gfx_fullscreen_ratio = changed_prefs.gfx_fullscreen_ratio; + prSDLScreen = SDL_CreateRGBSurface(SDL_SWSURFACE,width,height,16, + Dummy_prSDLScreen->format->Rmask, + Dummy_prSDLScreen->format->Gmask, + Dummy_prSDLScreen->format->Bmask, + Dummy_prSDLScreen->format->Amask); + + dispmanxdisplay = vc_dispmanx_display_open( 0 ); + vc_dispmanx_display_get_info( dispmanxdisplay, &dispmanxdinfo); + + dispmanxresource_amigafb_1 = vc_dispmanx_resource_create( VC_IMAGE_RGB565, width, height, &vc_image_ptr); + dispmanxresource_amigafb_2 = vc_dispmanx_resource_create( VC_IMAGE_RGB565, width, height, &vc_image_ptr); + vc_dispmanx_rect_set( &blit_rect, 0, 0, width,height); + vc_dispmanx_resource_write_data( dispmanxresource_amigafb_1, + VC_IMAGE_RGB565, + width *2, + prSDLScreen->pixels, + &blit_rect ); + vc_dispmanx_rect_set( &src_rect, 0, 0, width << 16, height << 16 ); + + } + // 16/9 to 4/3 ratio adaptation. + if (currprefs.gfx_correct_aspect == 0) + { + // Fullscreen. + int scaled_width = dispmanxdinfo.width * currprefs.gfx_fullscreen_ratio/100; + int scaled_height = dispmanxdinfo.height * currprefs.gfx_fullscreen_ratio/100; + vc_dispmanx_rect_set( &dst_rect, (dispmanxdinfo.width - scaled_width)/2, + (dispmanxdinfo.height - scaled_height)/2, + scaled_width, + scaled_height ); + } + else + { + // 4/3 shrink. + int scaled_width = dispmanxdinfo.width * currprefs.gfx_fullscreen_ratio/100; + int scaled_height = dispmanxdinfo.height * currprefs.gfx_fullscreen_ratio/100; + vc_dispmanx_rect_set( &dst_rect, (dispmanxdinfo.width - scaled_width/16*12)/2, + (dispmanxdinfo.height - scaled_height)/2, + scaled_width/16*12, + scaled_height ); + } - if(Dummy_prSDLScreen == NULL ) - { - const SDL_VideoInfo* videoInfo = SDL_GetVideoInfo (); - printf("DispmanX: Current resolution: %d x %d %d bpp\n",videoInfo->current_w, videoInfo->current_h, videoInfo->vfmt->BitsPerPixel); // For debug, in order to avoid full screen. - Dummy_prSDLScreen = SDL_SetVideoMode(videoInfo->current_w,videoInfo->current_h,16,SDL_SWSURFACE |SDL_FULLSCREEN); - //Dummy_prSDLScreen = SDL_SetVideoMode(800,480,16,SDL_SWSURFACE ); - } - - SDL_ShowCursor(SDL_DISABLE); - - // check if resolution hasn't change in menu. otherwise free the resources so that they will be re-generated with new resolution. - if ((dispmanxresource_amigafb_1 != 0) && - ((blit_rect.width != width) || (blit_rect.height != height) || (currprefs.gfx_correct_aspect != changed_prefs.gfx_correct_aspect) || - (currprefs.gfx_fullscreen_ratio != changed_prefs.gfx_fullscreen_ratio))) - { - printf("Emulation resolution change detected.\n"); - if(prSDLScreen != NULL ) - { - SDL_FreeSurface(prSDLScreen); - prSDLScreen = 0; - } - graphics_dispmanshutdown(); - vc_dispmanx_resource_delete( dispmanxresource_amigafb_1 ); - vc_dispmanx_resource_delete( dispmanxresource_amigafb_2 ); - dispmanxresource_amigafb_1 = 0; - dispmanxresource_amigafb_2 = 0; - } - - if (dispmanxresource_amigafb_1 == 0) - { - printf("Emulation resolution: Width %i Height: %i\n",width,height); - currprefs.gfx_correct_aspect = changed_prefs.gfx_correct_aspect; - currprefs.gfx_fullscreen_ratio = changed_prefs.gfx_fullscreen_ratio; - prSDLScreen = SDL_CreateRGBSurface(SDL_SWSURFACE,width,height,16, - Dummy_prSDLScreen->format->Rmask, - Dummy_prSDLScreen->format->Gmask, - Dummy_prSDLScreen->format->Bmask, - Dummy_prSDLScreen->format->Amask); - - dispmanxdisplay = vc_dispmanx_display_open( 0 ); - vc_dispmanx_display_get_info( dispmanxdisplay, &dispmanxdinfo); - - dispmanxresource_amigafb_1 = vc_dispmanx_resource_create( VC_IMAGE_RGB565, width, height, &vc_image_ptr); - dispmanxresource_amigafb_2 = vc_dispmanx_resource_create( VC_IMAGE_RGB565, width, height, &vc_image_ptr); - vc_dispmanx_rect_set( &blit_rect, 0, 0, width,height); - vc_dispmanx_resource_write_data( dispmanxresource_amigafb_1, - VC_IMAGE_RGB565, - width *2, - prSDLScreen->pixels, - &blit_rect ); - vc_dispmanx_rect_set( &src_rect, 0, 0, width << 16, height << 16 ); - - } - // 16/9 to 4/3 ratio adaptation. - if (currprefs.gfx_correct_aspect == 0) - { - // Fullscreen. - int scaled_width = dispmanxdinfo.width * currprefs.gfx_fullscreen_ratio/100; - int scaled_height = dispmanxdinfo.height * currprefs.gfx_fullscreen_ratio/100; - vc_dispmanx_rect_set( &dst_rect, (dispmanxdinfo.width - scaled_width)/2 , - (dispmanxdinfo.height - scaled_height)/2 , - scaled_width , - scaled_height ); - } - else - { - // 4/3 shrink. - int scaled_width = dispmanxdinfo.width * currprefs.gfx_fullscreen_ratio/100; - int scaled_height = dispmanxdinfo.height * currprefs.gfx_fullscreen_ratio/100; - vc_dispmanx_rect_set( &dst_rect, (dispmanxdinfo.width - scaled_width/16*12)/2 , - (dispmanxdinfo.height - scaled_height)/2 , - scaled_width/16*12 , - scaled_height ); - } - - // For debug, in order to avoid full screen. - //vc_dispmanx_rect_set( &dst_rect, (dispmanxdinfo.width /2.7), - // 0 , - // (dispmanxdinfo.width - (dispmanxdinfo.width * 6)/100 )/1.5, - // (dispmanxdinfo.height - (dispmanxdinfo.height * 7)/100 )/1.5); + //vc_dispmanx_rect_set( &dst_rect, (dispmanxdinfo.width /2.7), + // 0 , + // (dispmanxdinfo.width - (dispmanxdinfo.width * 6)/100 )/1.5, + // (dispmanxdinfo.height - (dispmanxdinfo.height * 7)/100 )/1.5); - if (DispManXElementpresent == 0) - { - DispManXElementpresent = 1; - dispmanxupdate = vc_dispmanx_update_start( 10 ); - dispmanxelement = vc_dispmanx_element_add( dispmanxupdate, - dispmanxdisplay, - 2000, // layer - &dst_rect, - dispmanxresource_amigafb_1, - &src_rect, - DISPMANX_PROTECTION_NONE, - &alpha, - NULL, // clamp - DISPMANX_NO_ROTATE ); + if (DispManXElementpresent == 0) + { + DispManXElementpresent = 1; + dispmanxupdate = vc_dispmanx_update_start( 10 ); + dispmanxelement = vc_dispmanx_element_add( dispmanxupdate, + dispmanxdisplay, + 2000, // layer + &dst_rect, + dispmanxresource_amigafb_1, + &src_rect, + DISPMANX_PROTECTION_NONE, + &alpha, + NULL, // clamp + DISPMANX_NO_ROTATE ); - vc_dispmanx_update_submit(dispmanxupdate,NULL,NULL); - //dispmanxupdate = vc_dispmanx_update_start( 10 ); - } + vc_dispmanx_update_submit(dispmanxupdate,NULL,NULL); + //dispmanxupdate = vc_dispmanx_update_start( 10 ); + } - if(prSDLScreen != NULL) - { - InitAmigaVidMode(p); - init_row_map(); - } - //framecnt = 1; // Don't draw frame before reset done + if(prSDLScreen != NULL) + { + InitAmigaVidMode(p); + init_row_map(); + } + //framecnt = 1; // Don't draw frame before reset done } void update_display(struct uae_prefs *p) { - open_screen(p); - - SDL_ShowCursor(SDL_DISABLE); + open_screen(p); - framecnt = 1; // Don't draw frame before reset done + SDL_ShowCursor(SDL_DISABLE); + + framecnt = 1; // Don't draw frame before reset done } int check_prefs_changed_gfx (void) { - int changed = 0; - - if(currprefs.gfx_size.height != changed_prefs.gfx_size.height || - currprefs.gfx_size.width != changed_prefs.gfx_size.width || - currprefs.gfx_size_fs.width != changed_prefs.gfx_size_fs.width || - currprefs.gfx_resolution != changed_prefs.gfx_resolution) - { - cfgfile_configuration_change(1); - currprefs.gfx_size.height = changed_prefs.gfx_size.height; - currprefs.gfx_size.width = changed_prefs.gfx_size.width; - currprefs.gfx_size_fs.width = changed_prefs.gfx_size_fs.width; - currprefs.gfx_resolution = changed_prefs.gfx_resolution; - update_display(&currprefs); - changed = 1; - } - if (currprefs.leds_on_screen != changed_prefs.leds_on_screen || - currprefs.pandora_hide_idle_led != changed_prefs.pandora_hide_idle_led || - currprefs.pandora_vertical_offset != changed_prefs.pandora_vertical_offset) - { - currprefs.leds_on_screen = changed_prefs.leds_on_screen; - currprefs.pandora_hide_idle_led = changed_prefs.pandora_hide_idle_led; - currprefs.pandora_vertical_offset = changed_prefs.pandora_vertical_offset; - changed = 1; - } - if (currprefs.chipset_refreshrate != changed_prefs.chipset_refreshrate) - { - currprefs.chipset_refreshrate = changed_prefs.chipset_refreshrate; - init_hz_full (); - changed = 1; - } - - return changed; + int changed = 0; + + if(currprefs.gfx_size.height != changed_prefs.gfx_size.height || + currprefs.gfx_size.width != changed_prefs.gfx_size.width || + currprefs.gfx_size_fs.width != changed_prefs.gfx_size_fs.width || + currprefs.gfx_resolution != changed_prefs.gfx_resolution) + { + cfgfile_configuration_change(1); + currprefs.gfx_size.height = changed_prefs.gfx_size.height; + currprefs.gfx_size.width = changed_prefs.gfx_size.width; + currprefs.gfx_size_fs.width = changed_prefs.gfx_size_fs.width; + currprefs.gfx_resolution = changed_prefs.gfx_resolution; + update_display(&currprefs); + changed = 1; + } + if (currprefs.leds_on_screen != changed_prefs.leds_on_screen || + currprefs.pandora_hide_idle_led != changed_prefs.pandora_hide_idle_led || + currprefs.pandora_vertical_offset != changed_prefs.pandora_vertical_offset) + { + currprefs.leds_on_screen = changed_prefs.leds_on_screen; + currprefs.pandora_hide_idle_led = changed_prefs.pandora_hide_idle_led; + currprefs.pandora_vertical_offset = changed_prefs.pandora_vertical_offset; + changed = 1; + } + if (currprefs.chipset_refreshrate != changed_prefs.chipset_refreshrate) + { + currprefs.chipset_refreshrate = changed_prefs.chipset_refreshrate; + init_hz_full (); + changed = 1; + } + + return changed; } @@ -349,7 +352,7 @@ void unlockscr (void) void wait_for_vsync(void) { - // Temporary + // Temporary } @@ -359,141 +362,141 @@ void flush_screen () //if (show_inputmode) //{ - // inputmode_redraw(); + // inputmode_redraw(); //} if (savestate_state == STATE_DOSAVE) { - if(delay_savestate_frame > 0) - --delay_savestate_frame; + if(delay_savestate_frame > 0) + --delay_savestate_frame; + else + { + CreateScreenshot(); + save_thumb(screenshot_filename); + savestate_state = 0; + } + } + + unsigned long start = read_processor_time(); + //if(start < next_synctime && next_synctime - start > time_per_frame - 1000) + // usleep((next_synctime - start) - 1000); + //SDL_Flip(prSDLScreen); + + + if (current_resource_amigafb == 1) + { + current_resource_amigafb = 0; + vc_dispmanx_resource_write_data( dispmanxresource_amigafb_1, + VC_IMAGE_RGB565, + gfxvidinfo.outwidth * 2, + gfxvidinfo.bufmem, + &blit_rect ); + dispmanxupdate = vc_dispmanx_update_start( 10 ); + vc_dispmanx_element_change_source(dispmanxupdate,dispmanxelement,dispmanxresource_amigafb_1); + + vc_dispmanx_update_submit(dispmanxupdate,vsync_callback,NULL); + //vc_dispmanx_update_submit_sync(dispmanxupdate); + + } else { - CreateScreenshot(); - save_thumb(screenshot_filename); - savestate_state = 0; + current_resource_amigafb = 1; + vc_dispmanx_resource_write_data( dispmanxresource_amigafb_2, + VC_IMAGE_RGB565, + gfxvidinfo.outwidth * 2, + gfxvidinfo.bufmem, + &blit_rect ); + dispmanxupdate = vc_dispmanx_update_start( 10 ); + vc_dispmanx_element_change_source(dispmanxupdate,dispmanxelement,dispmanxresource_amigafb_2); + + vc_dispmanx_update_submit(dispmanxupdate,vsync_callback,NULL); } - } - unsigned long start = read_processor_time(); - //if(start < next_synctime && next_synctime - start > time_per_frame - 1000) - // usleep((next_synctime - start) - 1000); - //SDL_Flip(prSDLScreen); + last_synctime = read_processor_time(); + if(last_synctime - next_synctime > time_per_frame - 1000 || next_synctime < start) + adjust_idletime(0); + else + adjust_idletime(next_synctime - start); - if (current_resource_amigafb == 1) - { - current_resource_amigafb = 0; - vc_dispmanx_resource_write_data( dispmanxresource_amigafb_1, - VC_IMAGE_RGB565, - gfxvidinfo.outwidth * 2, - gfxvidinfo.bufmem, - &blit_rect ); - dispmanxupdate = vc_dispmanx_update_start( 10 ); - vc_dispmanx_element_change_source(dispmanxupdate,dispmanxelement,dispmanxresource_amigafb_1); + if(last_synctime - next_synctime > time_per_frame - 5000) + next_synctime = last_synctime + time_per_frame * (1 + currprefs.gfx_framerate); + else + next_synctime = next_synctime + time_per_frame * (1 + currprefs.gfx_framerate); - vc_dispmanx_update_submit(dispmanxupdate,vsync_callback,NULL); - //vc_dispmanx_update_submit_sync(dispmanxupdate); - - } - else - { - current_resource_amigafb = 1; - vc_dispmanx_resource_write_data( dispmanxresource_amigafb_2, - VC_IMAGE_RGB565, - gfxvidinfo.outwidth * 2, - gfxvidinfo.bufmem, - &blit_rect ); - dispmanxupdate = vc_dispmanx_update_start( 10 ); - vc_dispmanx_element_change_source(dispmanxupdate,dispmanxelement,dispmanxresource_amigafb_2); - - vc_dispmanx_update_submit(dispmanxupdate,vsync_callback,NULL); - } - - last_synctime = read_processor_time(); - - if(last_synctime - next_synctime > time_per_frame - 1000 || next_synctime < start) - adjust_idletime(0); - else - adjust_idletime(next_synctime - start); - - if(last_synctime - next_synctime > time_per_frame - 5000) - next_synctime = last_synctime + time_per_frame * (1 + currprefs.gfx_framerate); - else - next_synctime = next_synctime + time_per_frame * (1 + currprefs.gfx_framerate); - - init_row_map(); + init_row_map(); } void black_screen_now(void) { - SDL_FillRect(Dummy_prSDLScreen,NULL,0); - SDL_Flip(Dummy_prSDLScreen); + SDL_FillRect(Dummy_prSDLScreen,NULL,0); + SDL_Flip(Dummy_prSDLScreen); } static void graphics_subinit (void) { - if (prSDLScreen == NULL) - { - fprintf(stderr, "Unable to set video mode: %s\n", SDL_GetError()); - return; - } - else - { - SDL_ShowCursor(SDL_DISABLE); + if (prSDLScreen == NULL) + { + fprintf(stderr, "Unable to set video mode: %s\n", SDL_GetError()); + return; + } + else + { + SDL_ShowCursor(SDL_DISABLE); - InitAmigaVidMode(&currprefs); - } + InitAmigaVidMode(&currprefs); + } } STATIC_INLINE int bitsInMask (unsigned long mask) { - /* count bits in mask */ - int n = 0; - while (mask) - { - n += mask & 1; - mask >>= 1; - } - return n; + /* count bits in mask */ + int n = 0; + while (mask) + { + n += mask & 1; + mask >>= 1; + } + return n; } STATIC_INLINE int maskShift (unsigned long mask) { - /* determine how far mask is shifted */ - int n = 0; - while (!(mask & 1)) - { - n++; - mask >>= 1; - } - return n; + /* determine how far mask is shifted */ + int n = 0; + while (!(mask & 1)) + { + n++; + mask >>= 1; + } + return n; } static int init_colors (void) { - int i; - int red_bits, green_bits, blue_bits; - int red_shift, green_shift, blue_shift; + int i; + int red_bits, green_bits, blue_bits; + int red_shift, green_shift, blue_shift; - /* Truecolor: */ - red_bits = bitsInMask(prSDLScreen->format->Rmask); - green_bits = bitsInMask(prSDLScreen->format->Gmask); - blue_bits = bitsInMask(prSDLScreen->format->Bmask); - red_shift = maskShift(prSDLScreen->format->Rmask); - green_shift = maskShift(prSDLScreen->format->Gmask); - blue_shift = maskShift(prSDLScreen->format->Bmask); - alloc_colors64k (red_bits, green_bits, blue_bits, red_shift, green_shift, blue_shift, 0); - notice_new_xcolors(); - for (i = 0; i < 4096; i++) - xcolors[i] = xcolors[i] * 0x00010001; + /* Truecolor: */ + red_bits = bitsInMask(prSDLScreen->format->Rmask); + green_bits = bitsInMask(prSDLScreen->format->Gmask); + blue_bits = bitsInMask(prSDLScreen->format->Bmask); + red_shift = maskShift(prSDLScreen->format->Rmask); + green_shift = maskShift(prSDLScreen->format->Gmask); + blue_shift = maskShift(prSDLScreen->format->Bmask); + alloc_colors64k (red_bits, green_bits, blue_bits, red_shift, green_shift, blue_shift, 0); + notice_new_xcolors(); + for (i = 0; i < 4096; i++) + xcolors[i] = xcolors[i] * 0x00010001; - return 1; + return 1; } @@ -502,59 +505,60 @@ static int init_colors (void) */ static int get_display_depth (void) { - const SDL_VideoInfo *vid_info; - int depth = 0; + const SDL_VideoInfo *vid_info; + int depth = 0; - if ((vid_info = SDL_GetVideoInfo())) { - depth = vid_info->vfmt->BitsPerPixel; + if ((vid_info = SDL_GetVideoInfo())) + { + depth = vid_info->vfmt->BitsPerPixel; - /* Don't trust the answer if it's 16 bits; the display - * could actually be 15 bits deep. We'll count the bits - * ourselves */ - if (depth == 16) - depth = bitsInMask (vid_info->vfmt->Rmask) + bitsInMask (vid_info->vfmt->Gmask) + bitsInMask (vid_info->vfmt->Bmask); - } - return depth; + /* Don't trust the answer if it's 16 bits; the display + * could actually be 15 bits deep. We'll count the bits + * ourselves */ + if (depth == 16) + depth = bitsInMask (vid_info->vfmt->Rmask) + bitsInMask (vid_info->vfmt->Gmask) + bitsInMask (vid_info->vfmt->Bmask); + } + return depth; } int GetSurfacePixelFormat(void) { - int depth = get_display_depth(); - int unit = (depth + 1) & 0xF8; + int depth = get_display_depth(); + int unit = (depth + 1) & 0xF8; - return (unit == 8 ? RGBFB_CHUNKY - : depth == 15 && unit == 16 ? RGBFB_R5G5B5 - : depth == 16 && unit == 16 ? RGBFB_R5G6B5 - : unit == 24 ? RGBFB_B8G8R8 - : unit == 32 ? RGBFB_R8G8B8A8 - : RGBFB_NONE); + return (unit == 8 ? RGBFB_CHUNKY + : depth == 15 && unit == 16 ? RGBFB_R5G5B5 + : depth == 16 && unit == 16 ? RGBFB_R5G6B5 + : unit == 24 ? RGBFB_B8G8R8 + : unit == 32 ? RGBFB_R8G8B8A8 + : RGBFB_NONE); } int graphics_init(bool mousecapture) { - int i,j; + int i,j; - uae_sem_init (&vsync_wait_sem, 0, 1); + uae_sem_init (&vsync_wait_sem, 0, 1); - graphics_subinit (); + graphics_subinit (); - if (!init_colors ()) - return 0; + if (!init_colors ()) + return 0; - //buttonstate[0] = buttonstate[1] = buttonstate[2] = 0; - //keyboard_init(); - - return 1; + //buttonstate[0] = buttonstate[1] = buttonstate[2] = 0; + //keyboard_init(); + + return 1; } void graphics_leave (void) { - graphics_subshutdown (); - SDL_FreeSurface(Dummy_prSDLScreen); - bcm_host_deinit(); - SDL_VideoQuit(); + graphics_subshutdown (); + SDL_FreeSurface(Dummy_prSDLScreen); + bcm_host_deinit(); + SDL_VideoQuit(); } @@ -567,102 +571,104 @@ void graphics_leave (void) static int save_png(SDL_Surface* surface, char *path) { - int w = surface->w; - int h = surface->h; - unsigned char * pix = (unsigned char *)surface->pixels; - unsigned char writeBuffer[1024 * 3]; - FILE *f = fopen(path,"wb"); - if(!f) return 0; - png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, - NULL, - NULL, - NULL); - if(!png_ptr) { + int w = surface->w; + int h = surface->h; + unsigned char * pix = (unsigned char *)surface->pixels; + unsigned char writeBuffer[1024 * 3]; + FILE *f = fopen(path,"wb"); + if(!f) return 0; + png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, + NULL, + NULL, + NULL); + if(!png_ptr) + { + fclose(f); + return 0; + } + + png_infop info_ptr = png_create_info_struct(png_ptr); + + if(!info_ptr) + { + png_destroy_write_struct(&png_ptr,NULL); + fclose(f); + return 0; + } + + png_init_io(png_ptr,f); + + png_set_IHDR(png_ptr, + info_ptr, + w, + h, + 8, + PNG_COLOR_TYPE_RGB, + PNG_INTERLACE_NONE, + PNG_COMPRESSION_TYPE_DEFAULT, + PNG_FILTER_TYPE_DEFAULT); + + png_write_info(png_ptr,info_ptr); + + unsigned char *b = writeBuffer; + + int sizeX = w; + int sizeY = h; + int y; + int x; + + unsigned short *p = (unsigned short *)pix; + for(y = 0; y < sizeY; y++) + { + for(x = 0; x < sizeX; x++) + { + unsigned short v = p[x]; + + *b++ = ((v & systemRedMask ) >> systemRedShift ) << 3; // R + *b++ = ((v & systemGreenMask) >> systemGreenShift) << 2; // G + *b++ = ((v & systemBlueMask ) >> systemBlueShift ) << 3; // B + } + p += surface->pitch / 2; + png_write_row(png_ptr,writeBuffer); + b = writeBuffer; + } + + png_write_end(png_ptr, info_ptr); + + png_destroy_write_struct(&png_ptr, &info_ptr); + fclose(f); - return 0; - } - - png_infop info_ptr = png_create_info_struct(png_ptr); - - if(!info_ptr) { - png_destroy_write_struct(&png_ptr,NULL); - fclose(f); - return 0; - } - - png_init_io(png_ptr,f); - - png_set_IHDR(png_ptr, - info_ptr, - w, - h, - 8, - PNG_COLOR_TYPE_RGB, - PNG_INTERLACE_NONE, - PNG_COMPRESSION_TYPE_DEFAULT, - PNG_FILTER_TYPE_DEFAULT); - - png_write_info(png_ptr,info_ptr); - - unsigned char *b = writeBuffer; - - int sizeX = w; - int sizeY = h; - int y; - int x; - - unsigned short *p = (unsigned short *)pix; - for(y = 0; y < sizeY; y++) - { - for(x = 0; x < sizeX; x++) - { - unsigned short v = p[x]; - - *b++ = ((v & systemRedMask ) >> systemRedShift ) << 3; // R - *b++ = ((v & systemGreenMask) >> systemGreenShift) << 2; // G - *b++ = ((v & systemBlueMask ) >> systemBlueShift ) << 3; // B - } - p += surface->pitch / 2; - png_write_row(png_ptr,writeBuffer); - b = writeBuffer; - } - - png_write_end(png_ptr, info_ptr); - - png_destroy_write_struct(&png_ptr, &info_ptr); - - fclose(f); - return 1; + return 1; } static void CreateScreenshot(void) { - int w, h; + int w, h; - if(current_screenshot != NULL) - { - SDL_FreeSurface(current_screenshot); - current_screenshot = NULL; - } + if(current_screenshot != NULL) + { + SDL_FreeSurface(current_screenshot); + current_screenshot = NULL; + } - w=prSDLScreen->w; - h=prSDLScreen->h; - current_screenshot = SDL_CreateRGBSurfaceFrom(prSDLScreen->pixels, w, h, prSDLScreen->format->BitsPerPixel, prSDLScreen->pitch, - prSDLScreen->format->Rmask, prSDLScreen->format->Gmask, prSDLScreen->format->Bmask, prSDLScreen->format->Amask); + w=prSDLScreen->w; + h=prSDLScreen->h; + current_screenshot = SDL_CreateRGBSurfaceFrom(prSDLScreen->pixels, w, h, prSDLScreen->format->BitsPerPixel, prSDLScreen->pitch, + prSDLScreen->format->Rmask, prSDLScreen->format->Gmask, prSDLScreen->format->Bmask, prSDLScreen->format->Amask); } static int save_thumb(char *path) { - int ret = 0; - if(current_screenshot != NULL) - { - ret = save_png(current_screenshot, path); - SDL_FreeSurface(current_screenshot); - current_screenshot = NULL; - } - return ret; + int ret = 0; + if(current_screenshot != NULL) + { + ret = save_png(current_screenshot, path); + SDL_FreeSurface(current_screenshot); + current_screenshot = NULL; + } + return ret; } @@ -671,230 +677,264 @@ static int save_thumb(char *path) int picasso_palette (void) { - int i, changed; + int i, changed; - changed = 0; - for (i = 0; i < 256; i++) { - int r = picasso96_state.CLUT[i].Red; - int g = picasso96_state.CLUT[i].Green; - int b = picasso96_state.CLUT[i].Blue; - uae_u32 v = CONVERT_RGB(r << 16 | g << 8 | b); - if (v != picasso_vidinfo.clut[i]) { - picasso_vidinfo.clut[i] = v; - changed = 1; - } - } - return changed; + changed = 0; + for (i = 0; i < 256; i++) + { + int r = picasso96_state.CLUT[i].Red; + int g = picasso96_state.CLUT[i].Green; + int b = picasso96_state.CLUT[i].Blue; + uae_u32 v = CONVERT_RGB(r << 16 | g << 8 | b); + if (v != picasso_vidinfo.clut[i]) + { + picasso_vidinfo.clut[i] = v; + changed = 1; + } + } + return changed; } static int resolution_compare (const void *a, const void *b) { - struct PicassoResolution *ma = (struct PicassoResolution *)a; - struct PicassoResolution *mb = (struct PicassoResolution *)b; - if (ma->res.width < mb->res.width) - return -1; - if (ma->res.width > mb->res.width) - return 1; - if (ma->res.height < mb->res.height) - return -1; - if (ma->res.height > mb->res.height) - return 1; - return ma->depth - mb->depth; + struct PicassoResolution *ma = (struct PicassoResolution *)a; + struct PicassoResolution *mb = (struct PicassoResolution *)b; + if (ma->res.width < mb->res.width) + return -1; + if (ma->res.width > mb->res.width) + return 1; + if (ma->res.height < mb->res.height) + return -1; + if (ma->res.height > mb->res.height) + return 1; + return ma->depth - mb->depth; } static void sortmodes (void) { - int i = 0, idx = -1; - int pw = -1, ph = -1; - while (DisplayModes[i].depth >= 0) - i++; - qsort (DisplayModes, i, sizeof (struct PicassoResolution), resolution_compare); - for (i = 0; DisplayModes[i].depth >= 0; i++) { - if (DisplayModes[i].res.height != ph || DisplayModes[i].res.width != pw) { - ph = DisplayModes[i].res.height; - pw = DisplayModes[i].res.width; - idx++; - } - DisplayModes[i].residx = idx; - } + int i = 0, idx = -1; + int pw = -1, ph = -1; + while (DisplayModes[i].depth >= 0) + i++; + qsort (DisplayModes, i, sizeof (struct PicassoResolution), resolution_compare); + for (i = 0; DisplayModes[i].depth >= 0; i++) + { + if (DisplayModes[i].res.height != ph || DisplayModes[i].res.width != pw) + { + ph = DisplayModes[i].res.height; + pw = DisplayModes[i].res.width; + idx++; + } + DisplayModes[i].residx = idx; + } } static void modesList (void) { - int i, j; + int i, j; - i = 0; - while (DisplayModes[i].depth >= 0) { - write_log ("%d: %s (", i, DisplayModes[i].name); - j = 0; - while (DisplayModes[i].refresh[j] > 0) { - if (j > 0) - write_log (","); - write_log ("%d", DisplayModes[i].refresh[j]); - j++; - } - write_log (")\n"); - i++; - } + i = 0; + while (DisplayModes[i].depth >= 0) + { + write_log ("%d: %s (", i, DisplayModes[i].name); + j = 0; + while (DisplayModes[i].refresh[j] > 0) + { + if (j > 0) + write_log (","); + write_log ("%d", DisplayModes[i].refresh[j]); + j++; + } + write_log (")\n"); + i++; + } } void picasso_InitResolutions (void) { - struct MultiDisplay *md1; - int i, count = 0; - char tmp[200]; - int bit_idx; - int bits[] = { 8, 16, 32 }; - - Displays[0].primary = 1; - Displays[0].disabled = 0; - Displays[0].rect.left = 0; - Displays[0].rect.top = 0; - Displays[0].rect.right = 800; - Displays[0].rect.bottom = 640; - sprintf (tmp, "%s (%d*%d)", "Display", Displays[0].rect.right, Displays[0].rect.bottom); - Displays[0].name = my_strdup(tmp); - Displays[0].name2 = my_strdup("Display"); + struct MultiDisplay *md1; + int i, count = 0; + char tmp[200]; + int bit_idx; + int bits[] = { 8, 16, 32 }; - md1 = Displays; - DisplayModes = md1->DisplayModes = xmalloc (struct PicassoResolution, MAX_PICASSO_MODES); - for (i = 0; i < MAX_SCREEN_MODES && count < MAX_PICASSO_MODES; i++) { - for(bit_idx = 0; bit_idx < 3; ++bit_idx) { - int bitdepth = bits[bit_idx]; - int bit_unit = (bitdepth + 1) & 0xF8; - int rgbFormat = (bitdepth == 8 ? RGBFB_CLUT : (bitdepth == 16 ? RGBFB_R5G6B5 : RGBFB_R8G8B8A8)); - int pixelFormat = 1 << rgbFormat; - pixelFormat |= RGBFF_CHUNKY; - - //if (SDL_VideoModeOK (x_size_table[i], y_size_table[i], 16, SDL_SWSURFACE)) - { - DisplayModes[count].res.width = x_size_table[i]; - DisplayModes[count].res.height = y_size_table[i]; - DisplayModes[count].depth = bit_unit >> 3; - DisplayModes[count].refresh[0] = 50; - DisplayModes[count].refresh[1] = 60; - DisplayModes[count].refresh[2] = 0; - DisplayModes[count].colormodes = pixelFormat; - sprintf(DisplayModes[count].name, "%dx%d, %d-bit", - DisplayModes[count].res.width, DisplayModes[count].res.height, DisplayModes[count].depth * 8); - - count++; - } + Displays[0].primary = 1; + Displays[0].disabled = 0; + Displays[0].rect.left = 0; + Displays[0].rect.top = 0; + Displays[0].rect.right = 800; + Displays[0].rect.bottom = 640; + sprintf (tmp, "%s (%d*%d)", "Display", Displays[0].rect.right, Displays[0].rect.bottom); + Displays[0].name = my_strdup(tmp); + Displays[0].name2 = my_strdup("Display"); + + md1 = Displays; + DisplayModes = md1->DisplayModes = xmalloc (struct PicassoResolution, MAX_PICASSO_MODES); + for (i = 0; i < MAX_SCREEN_MODES && count < MAX_PICASSO_MODES; i++) + { + for(bit_idx = 0; bit_idx < 3; ++bit_idx) + { + int bitdepth = bits[bit_idx]; + int bit_unit = (bitdepth + 1) & 0xF8; + int rgbFormat = (bitdepth == 8 ? RGBFB_CLUT : (bitdepth == 16 ? RGBFB_R5G6B5 : RGBFB_R8G8B8A8)); + int pixelFormat = 1 << rgbFormat; + pixelFormat |= RGBFF_CHUNKY; + + //if (SDL_VideoModeOK (x_size_table[i], y_size_table[i], 16, SDL_SWSURFACE)) + { + DisplayModes[count].res.width = x_size_table[i]; + DisplayModes[count].res.height = y_size_table[i]; + DisplayModes[count].depth = bit_unit >> 3; + DisplayModes[count].refresh[0] = 50; + DisplayModes[count].refresh[1] = 60; + DisplayModes[count].refresh[2] = 0; + DisplayModes[count].colormodes = pixelFormat; + sprintf(DisplayModes[count].name, "%dx%d, %d-bit", + DisplayModes[count].res.width, DisplayModes[count].res.height, DisplayModes[count].depth * 8); + + count++; + } + } } - } - DisplayModes[count].depth = -1; - sortmodes(); - modesList(); - DisplayModes = Displays[0].DisplayModes; + DisplayModes[count].depth = -1; + sortmodes(); + modesList(); + DisplayModes = Displays[0].DisplayModes; } bool vsync_switchmode (int hz) { - int changed_height = changed_prefs.gfx_size.height; - - if (hz >= 55) - hz = 60; - else - hz = 50; + int changed_height = changed_prefs.gfx_size.height; - if(hz == 50 && currVSyncRate == 60) - { - // Switch from NTSC -> PAL - switch(changed_height) { - case 200: changed_height = 240; break; - case 216: changed_height = 262; break; - case 240: changed_height = 270; break; - case 256: changed_height = 270; break; - case 262: changed_height = 270; break; - case 270: changed_height = 270; break; - } - } - else if(hz == 60 && currVSyncRate == 50) - { - // Switch from PAL -> NTSC - switch(changed_height) { - case 200: changed_height = 200; break; - case 216: changed_height = 200; break; - case 240: changed_height = 200; break; - case 256: changed_height = 216; break; - case 262: changed_height = 216; break; - case 270: changed_height = 240; break; - } - } + if (hz >= 55) + hz = 60; + else + hz = 50; + + if(hz == 50 && currVSyncRate == 60) + { + // Switch from NTSC -> PAL + switch(changed_height) + { + case 200: + changed_height = 240; + break; + case 216: + changed_height = 262; + break; + case 240: + changed_height = 270; + break; + case 256: + changed_height = 270; + break; + case 262: + changed_height = 270; + break; + case 270: + changed_height = 270; + break; + } + } + else if(hz == 60 && currVSyncRate == 50) + { + // Switch from PAL -> NTSC + switch(changed_height) + { + case 200: + changed_height = 200; + break; + case 216: + changed_height = 200; + break; + case 240: + changed_height = 200; + break; + case 256: + changed_height = 216; + break; + case 262: + changed_height = 216; + break; + case 270: + changed_height = 240; + break; + } + } + + if(changed_height == currprefs.gfx_size.height && hz == currprefs.chipset_refreshrate) + return true; + + changed_prefs.gfx_size.height = changed_height; - if(changed_height == currprefs.gfx_size.height && hz == currprefs.chipset_refreshrate) return true; - - changed_prefs.gfx_size.height = changed_height; - - return true; } bool target_graphics_buffer_update (void) { - bool rate_changed = 0; - //bool rate_changed = SetVSyncRate(currprefs.chipset_refreshrate); - - if(currprefs.gfx_size.height != changed_prefs.gfx_size.height) - { - update_display(&changed_prefs); - rate_changed = true; - } + bool rate_changed = 0; + //bool rate_changed = SetVSyncRate(currprefs.chipset_refreshrate); - if(rate_changed) - { - black_screen_now(); - fpscounter_reset(); - time_per_frame = 1000 * 1000 / (currprefs.chipset_refreshrate); - } + if(currprefs.gfx_size.height != changed_prefs.gfx_size.height) + { + update_display(&changed_prefs); + rate_changed = true; + } - return true; + if(rate_changed) + { + black_screen_now(); + fpscounter_reset(); + time_per_frame = 1000 * 1000 / (currprefs.chipset_refreshrate); + } + + return true; } void gfx_set_picasso_state (int on) { - if (on == screen_is_picasso) - return; + if (on == screen_is_picasso) + return; - screen_is_picasso = on; - open_screen(&currprefs); - picasso_vidinfo.rowbytes = prSDLScreen->pitch; + screen_is_picasso = on; + open_screen(&currprefs); + picasso_vidinfo.rowbytes = prSDLScreen->pitch; } void gfx_set_picasso_modeinfo (uae_u32 w, uae_u32 h, uae_u32 depth, RGBFTYPE rgbfmt) { - depth >>= 3; - if( ((unsigned)picasso_vidinfo.width == w ) && - ( (unsigned)picasso_vidinfo.height == h ) && - ( (unsigned)picasso_vidinfo.depth == depth ) && - ( picasso_vidinfo.selected_rgbformat == rgbfmt) ) - return; + depth >>= 3; + if( ((unsigned)picasso_vidinfo.width == w ) && + ( (unsigned)picasso_vidinfo.height == h ) && + ( (unsigned)picasso_vidinfo.depth == depth ) && + ( picasso_vidinfo.selected_rgbformat == rgbfmt) ) + return; - picasso_vidinfo.selected_rgbformat = rgbfmt; - picasso_vidinfo.width = w; - picasso_vidinfo.height = h; - picasso_vidinfo.depth = 2; // Native depth - picasso_vidinfo.extra_mem = 1; + picasso_vidinfo.selected_rgbformat = rgbfmt; + picasso_vidinfo.width = w; + picasso_vidinfo.height = h; + picasso_vidinfo.depth = 2; // Native depth + picasso_vidinfo.extra_mem = 1; - picasso_vidinfo.pixbytes = 2; // Native bytes - if (screen_is_picasso) - { - open_screen(&currprefs); - picasso_vidinfo.rowbytes = prSDLScreen->pitch; - picasso_vidinfo.rgbformat = RGBFB_R5G6B5; - } + picasso_vidinfo.pixbytes = 2; // Native bytes + if (screen_is_picasso) + { + open_screen(&currprefs); + picasso_vidinfo.rowbytes = prSDLScreen->pitch; + picasso_vidinfo.rgbformat = RGBFB_R5G6B5; + } } uae_u8 *gfx_lock_picasso (void) { - // We lock the surface directly after create and flip - picasso_vidinfo.rowbytes = prSDLScreen->pitch; - return (uae_u8 *)prSDLScreen->pixels; + // We lock the surface directly after create and flip + picasso_vidinfo.rowbytes = prSDLScreen->pitch; + return (uae_u8 *)prSDLScreen->pixels; } void gfx_unlock_picasso (void) { - // We lock the surface directly after create and flip, so no unlock here + // We lock the surface directly after create and flip, so no unlock here } #endif // PICASSO96 diff --git a/src/p96_blit.cpp b/src/p96_blit.cpp index d133dcc2..2da308a6 100644 --- a/src/p96_blit.cpp +++ b/src/p96_blit.cpp @@ -2,140 +2,164 @@ #if BLT_SIZE == 3 static void NOINLINE BLT_NAME (unsigned int w, unsigned int h, uae_u8 *src, uae_u8 *dst, int srcpitch, int dstpitch) { - uae_u8 *src2 = src; - uae_u8 *dst2 = dst; - uae_u32 *src2_32 = (uae_u32*)src; - uae_u32 *dst2_32 = (uae_u32*)dst; - unsigned int y, x, ww, xxd; + uae_u8 *src2 = src; + uae_u8 *dst2 = dst; + uae_u32 *src2_32 = (uae_u32*)src; + uae_u32 *dst2_32 = (uae_u32*)dst; + unsigned int y, x, ww, xxd; #ifdef BLT_TEMP - uae_u32 tmp; + uae_u32 tmp; #endif - w *= BLT_SIZE; - ww = w / 4; - xxd = w - (ww * 4); - for(y = 0; y < h; y++) { - uae_u8 *src_8; - uae_u8 *dst_8; - uae_u32 *src_32 = (uae_u32*)src2; - uae_u32 *dst_32 = (uae_u32*)dst2; - for (x = 0; x < ww; x++) { - BLT_FUNC (src_32, dst_32); - src_32++; dst_32++; - } - src_8 = (uae_u8*)src_32; - dst_8 = (uae_u8*)dst_32; - for (x = 0; x < xxd; x++) { - BLT_FUNC (src_8, dst_8); - src_8++; - dst_8++; - } - dst2 += dstpitch; - src2 += srcpitch; - } + w *= BLT_SIZE; + ww = w / 4; + xxd = w - (ww * 4); + for(y = 0; y < h; y++) + { + uae_u8 *src_8; + uae_u8 *dst_8; + uae_u32 *src_32 = (uae_u32*)src2; + uae_u32 *dst_32 = (uae_u32*)dst2; + for (x = 0; x < ww; x++) + { + BLT_FUNC (src_32, dst_32); + src_32++; + dst_32++; + } + src_8 = (uae_u8*)src_32; + dst_8 = (uae_u8*)dst_32; + for (x = 0; x < xxd; x++) + { + BLT_FUNC (src_8, dst_8); + src_8++; + dst_8++; + } + dst2 += dstpitch; + src2 += srcpitch; + } } #else static void NOINLINE BLT_NAME (unsigned int w, unsigned int h, uae_u8 *src, uae_u8 *dst, int srcpitch, int dstpitch) { - uae_u8 *src2 = src; - uae_u8 *dst2 = dst; - uae_u32 *src2_32 = (uae_u32*)src; - uae_u32 *dst2_32 = (uae_u32*)dst; - unsigned int y, x, ww, xxd; + uae_u8 *src2 = src; + uae_u8 *dst2 = dst; + uae_u32 *src2_32 = (uae_u32*)src; + uae_u32 *dst2_32 = (uae_u32*)dst; + unsigned int y, x, ww, xxd; #ifdef BLT_TEMP #if BLT_SIZE == 4 - uae_u32 tmp; + uae_u32 tmp; #elif BLT_SIZE == 2 - uae_u16 tmp; + uae_u16 tmp; #else - uae_u8 tmp; + uae_u8 tmp; #endif #endif - if (w < 8 * BLT_MULT) { - ww = w / BLT_MULT; - for(y = 0; y < h; y++) { - uae_u32 *src_32 = (uae_u32*)src2; - uae_u32 *dst_32 = (uae_u32*)dst2; - for (x = 0; x < ww; x++) { - BLT_FUNC (src_32, dst_32); - src_32++; dst_32++; - } + if (w < 8 * BLT_MULT) + { + ww = w / BLT_MULT; + for(y = 0; y < h; y++) + { + uae_u32 *src_32 = (uae_u32*)src2; + uae_u32 *dst_32 = (uae_u32*)dst2; + for (x = 0; x < ww; x++) + { + BLT_FUNC (src_32, dst_32); + src_32++; + dst_32++; + } #if BLT_SIZE == 2 - if (w & 1) { - uae_u16 *src_16 = (uae_u16*)src_32; - uae_u16 *dst_16 = (uae_u16*)dst_32; - BLT_FUNC (src_16, dst_16); - } + if (w & 1) + { + uae_u16 *src_16 = (uae_u16*)src_32; + uae_u16 *dst_16 = (uae_u16*)dst_32; + BLT_FUNC (src_16, dst_16); + } #elif BLT_SIZE == 1 - { - int wb = w & 3; - uae_u8 *src_8 = (uae_u8*)src_32; - uae_u8 *dst_8 = (uae_u8*)dst_32; - while (wb--) { - BLT_FUNC (src_8, dst_8); - src_8++; - dst_8++; - } - } + { + int wb = w & 3; + uae_u8 *src_8 = (uae_u8*)src_32; + uae_u8 *dst_8 = (uae_u8*)dst_32; + while (wb--) + { + BLT_FUNC (src_8, dst_8); + src_8++; + dst_8++; + } + } #endif - dst2 += dstpitch; - src2 += srcpitch; - } - return; - } + dst2 += dstpitch; + src2 += srcpitch; + } + return; + } - ww = w / (8 * BLT_MULT); - xxd = (w - ww * (8 * BLT_MULT)) / BLT_MULT; - for(y = 0; y < h; y++) { - uae_u32 *src_32 = (uae_u32*)src2; - uae_u32 *dst_32 = (uae_u32*)dst2; - for (x = 0; x < ww; x++) { - BLT_FUNC (src_32, dst_32); - src_32++; dst_32++; - BLT_FUNC (src_32, dst_32); - src_32++; dst_32++; - BLT_FUNC (src_32, dst_32); - src_32++; dst_32++; - BLT_FUNC (src_32, dst_32); - src_32++; dst_32++; - BLT_FUNC (src_32, dst_32); - src_32++; dst_32++; - BLT_FUNC (src_32, dst_32); - src_32++; dst_32++; - BLT_FUNC (src_32, dst_32); - src_32++; dst_32++; - BLT_FUNC (src_32, dst_32); - src_32++; dst_32++; - } - for (x = 0; x < xxd; x++) { - BLT_FUNC (src_32, dst_32); - src_32++; dst_32++; - } + ww = w / (8 * BLT_MULT); + xxd = (w - ww * (8 * BLT_MULT)) / BLT_MULT; + for(y = 0; y < h; y++) + { + uae_u32 *src_32 = (uae_u32*)src2; + uae_u32 *dst_32 = (uae_u32*)dst2; + for (x = 0; x < ww; x++) + { + BLT_FUNC (src_32, dst_32); + src_32++; + dst_32++; + BLT_FUNC (src_32, dst_32); + src_32++; + dst_32++; + BLT_FUNC (src_32, dst_32); + src_32++; + dst_32++; + BLT_FUNC (src_32, dst_32); + src_32++; + dst_32++; + BLT_FUNC (src_32, dst_32); + src_32++; + dst_32++; + BLT_FUNC (src_32, dst_32); + src_32++; + dst_32++; + BLT_FUNC (src_32, dst_32); + src_32++; + dst_32++; + BLT_FUNC (src_32, dst_32); + src_32++; + dst_32++; + } + for (x = 0; x < xxd; x++) + { + BLT_FUNC (src_32, dst_32); + src_32++; + dst_32++; + } #if BLT_SIZE == 2 - if (w & 1) { - uae_u16 *src_16 = (uae_u16*)src_32; - uae_u16 *dst_16 = (uae_u16*)dst_32; - BLT_FUNC (src_16, dst_16); - } + if (w & 1) + { + uae_u16 *src_16 = (uae_u16*)src_32; + uae_u16 *dst_16 = (uae_u16*)dst_32; + BLT_FUNC (src_16, dst_16); + } #elif BLT_SIZE == 1 - { - int wb = w & 3; - uae_u8 *src_8 = (uae_u8*)src_32; - uae_u8 *dst_8 = (uae_u8*)dst_32; - while (wb--) { - BLT_FUNC (src_8, dst_8); - src_8++; - dst_8++; - } - } + { + int wb = w & 3; + uae_u8 *src_8 = (uae_u8*)src_32; + uae_u8 *dst_8 = (uae_u8*)dst_32; + while (wb--) + { + BLT_FUNC (src_8, dst_8); + src_8++; + dst_8++; + } + } #endif - dst2 += dstpitch; - src2 += srcpitch; - } + dst2 += dstpitch; + src2 += srcpitch; + } } #endif #undef BLT_NAME #undef BLT_FUNC #ifdef BLT_TEMP #undef BLT_TEMP -#endif \ No newline at end of file +#endif diff --git a/src/readcpu.cpp b/src/readcpu.cpp index 491e747b..83313f5d 100644 --- a/src/readcpu.cpp +++ b/src/readcpu.cpp @@ -23,909 +23,1235 @@ int nr_cpuop_funcs; -struct mnemolookup lookuptab[] = { - { i_ILLG, _T("ILLEGAL") }, - { i_OR, _T("OR") }, - { i_CHK, _T("CHK") }, - { i_CHK2, _T("CHK2") }, - { i_AND, _T("AND") }, - { i_EOR, _T("EOR") }, - { i_ORSR, _T("ORSR") }, - { i_ANDSR, _T("ANDSR") }, - { i_EORSR, _T("EORSR") }, - { i_SUB, _T("SUB") }, - { i_SUBA, _T("SUBA") }, - { i_SUBX, _T("SUBX") }, - { i_SBCD, _T("SBCD") }, - { i_ADD, _T("ADD") }, - { i_ADDA, _T("ADDA") }, - { i_ADDX, _T("ADDX") }, - { i_ABCD, _T("ABCD") }, - { i_NEG, _T("NEG") }, - { i_NEGX, _T("NEGX") }, - { i_NBCD, _T("NBCD") }, - { i_CLR, _T("CLR") }, - { i_NOT, _T("NOT") }, - { i_TST, _T("TST") }, - { i_BTST, _T("BTST") }, - { i_BCHG, _T("BCHG") }, - { i_BCLR, _T("BCLR") }, - { i_BSET, _T("BSET") }, - { i_CMP, _T("CMP") }, - { i_CMPM, _T("CMPM") }, - { i_CMPA, _T("CMPA") }, - { i_MVPRM, _T("MVPRM") }, - { i_MVPMR, _T("MVPMR") }, - { i_MOVE, _T("MOVE") }, - { i_MOVEA, _T("MOVEA") }, - { i_MVSR2, _T("MVSR2") }, - { i_MV2SR, _T("MV2SR") }, - { i_SWAP, _T("SWAP") }, - { i_EXG, _T("EXG") }, - { i_EXT, _T("EXT") }, - { i_MVMEL, _T("MVMEL"), _T("MOVEM") }, - { i_MVMLE, _T("MVMLE"), _T("MOVEM") }, - { i_TRAP, _T("TRAP") }, - { i_MVR2USP, _T("MVR2USP") }, - { i_MVUSP2R, _T("MVUSP2R") }, - { i_NOP, _T("NOP") }, - { i_RESET, _T("RESET") }, - { i_RTE, _T("RTE") }, - { i_RTD, _T("RTD") }, - { i_LINK, _T("LINK") }, - { i_UNLK, _T("UNLK") }, - { i_RTS, _T("RTS") }, - { i_STOP, _T("STOP") }, - { i_TRAPV, _T("TRAPV") }, - { i_RTR, _T("RTR") }, - { i_JSR, _T("JSR") }, - { i_JMP, _T("JMP") }, - { i_BSR, _T("BSR") }, - { i_Bcc, _T("Bcc") }, - { i_LEA, _T("LEA") }, - { i_PEA, _T("PEA") }, - { i_DBcc, _T("DBcc") }, - { i_Scc, _T("Scc") }, - { i_DIVU, _T("DIVU") }, - { i_DIVS, _T("DIVS") }, - { i_MULU, _T("MULU") }, - { i_MULS, _T("MULS") }, - { i_ASR, _T("ASR") }, - { i_ASL, _T("ASL") }, - { i_LSR, _T("LSR") }, - { i_LSL, _T("LSL") }, - { i_ROL, _T("ROL") }, - { i_ROR, _T("ROR") }, - { i_ROXL, _T("ROXL") }, - { i_ROXR, _T("ROXR") }, - { i_ASRW, _T("ASRW") }, - { i_ASLW, _T("ASLW") }, - { i_LSRW, _T("LSRW") }, - { i_LSLW, _T("LSLW") }, - { i_ROLW, _T("ROLW") }, - { i_RORW, _T("RORW") }, - { i_ROXLW, _T("ROXLW") }, - { i_ROXRW, _T("ROXRW") }, +struct mnemolookup lookuptab[] = +{ + { i_ILLG, _T("ILLEGAL") }, + { i_OR, _T("OR") }, + { i_CHK, _T("CHK") }, + { i_CHK2, _T("CHK2") }, + { i_AND, _T("AND") }, + { i_EOR, _T("EOR") }, + { i_ORSR, _T("ORSR") }, + { i_ANDSR, _T("ANDSR") }, + { i_EORSR, _T("EORSR") }, + { i_SUB, _T("SUB") }, + { i_SUBA, _T("SUBA") }, + { i_SUBX, _T("SUBX") }, + { i_SBCD, _T("SBCD") }, + { i_ADD, _T("ADD") }, + { i_ADDA, _T("ADDA") }, + { i_ADDX, _T("ADDX") }, + { i_ABCD, _T("ABCD") }, + { i_NEG, _T("NEG") }, + { i_NEGX, _T("NEGX") }, + { i_NBCD, _T("NBCD") }, + { i_CLR, _T("CLR") }, + { i_NOT, _T("NOT") }, + { i_TST, _T("TST") }, + { i_BTST, _T("BTST") }, + { i_BCHG, _T("BCHG") }, + { i_BCLR, _T("BCLR") }, + { i_BSET, _T("BSET") }, + { i_CMP, _T("CMP") }, + { i_CMPM, _T("CMPM") }, + { i_CMPA, _T("CMPA") }, + { i_MVPRM, _T("MVPRM") }, + { i_MVPMR, _T("MVPMR") }, + { i_MOVE, _T("MOVE") }, + { i_MOVEA, _T("MOVEA") }, + { i_MVSR2, _T("MVSR2") }, + { i_MV2SR, _T("MV2SR") }, + { i_SWAP, _T("SWAP") }, + { i_EXG, _T("EXG") }, + { i_EXT, _T("EXT") }, + { i_MVMEL, _T("MVMEL"), _T("MOVEM") }, + { i_MVMLE, _T("MVMLE"), _T("MOVEM") }, + { i_TRAP, _T("TRAP") }, + { i_MVR2USP, _T("MVR2USP") }, + { i_MVUSP2R, _T("MVUSP2R") }, + { i_NOP, _T("NOP") }, + { i_RESET, _T("RESET") }, + { i_RTE, _T("RTE") }, + { i_RTD, _T("RTD") }, + { i_LINK, _T("LINK") }, + { i_UNLK, _T("UNLK") }, + { i_RTS, _T("RTS") }, + { i_STOP, _T("STOP") }, + { i_TRAPV, _T("TRAPV") }, + { i_RTR, _T("RTR") }, + { i_JSR, _T("JSR") }, + { i_JMP, _T("JMP") }, + { i_BSR, _T("BSR") }, + { i_Bcc, _T("Bcc") }, + { i_LEA, _T("LEA") }, + { i_PEA, _T("PEA") }, + { i_DBcc, _T("DBcc") }, + { i_Scc, _T("Scc") }, + { i_DIVU, _T("DIVU") }, + { i_DIVS, _T("DIVS") }, + { i_MULU, _T("MULU") }, + { i_MULS, _T("MULS") }, + { i_ASR, _T("ASR") }, + { i_ASL, _T("ASL") }, + { i_LSR, _T("LSR") }, + { i_LSL, _T("LSL") }, + { i_ROL, _T("ROL") }, + { i_ROR, _T("ROR") }, + { i_ROXL, _T("ROXL") }, + { i_ROXR, _T("ROXR") }, + { i_ASRW, _T("ASRW") }, + { i_ASLW, _T("ASLW") }, + { i_LSRW, _T("LSRW") }, + { i_LSLW, _T("LSLW") }, + { i_ROLW, _T("ROLW") }, + { i_RORW, _T("RORW") }, + { i_ROXLW, _T("ROXLW") }, + { i_ROXRW, _T("ROXRW") }, - { i_MOVE2C, _T("MOVE2C"), _T("MOVEC") }, - { i_MOVEC2, _T("MOVEC2"), _T("MOVEC") }, - { i_CAS, _T("CAS") }, - { i_CAS2, _T("CAS2") }, - { i_MULL, _T("MULL") }, - { i_DIVL, _T("DIVL") }, - { i_BFTST, _T("BFTST") }, - { i_BFEXTU, _T("BFEXTU") }, - { i_BFCHG, _T("BFCHG") }, - { i_BFEXTS, _T("BFEXTS") }, - { i_BFCLR, _T("BFCLR") }, - { i_BFFFO, _T("BFFFO") }, - { i_BFSET, _T("BFSET") }, - { i_BFINS, _T("BFINS") }, - { i_PACK, _T("PACK") }, - { i_UNPK, _T("UNPK") }, - { i_TAS, _T("TAS") }, - { i_BKPT, _T("BKPT") }, - { i_CALLM, _T("CALLM") }, - { i_RTM, _T("RTM") }, - { i_TRAPcc, _T("TRAPcc") }, - { i_MOVES, _T("MOVES") }, - { i_FPP, _T("FPP") }, - { i_FDBcc, _T("FDBcc") }, - { i_FScc, _T("FScc") }, - { i_FTRAPcc, _T("FTRAPcc") }, - { i_FBcc, _T("FBcc") }, - { i_FBcc, _T("FBcc") }, - { i_FSAVE, _T("FSAVE") }, - { i_FRESTORE, _T("FRESTORE") }, + { i_MOVE2C, _T("MOVE2C"), _T("MOVEC") }, + { i_MOVEC2, _T("MOVEC2"), _T("MOVEC") }, + { i_CAS, _T("CAS") }, + { i_CAS2, _T("CAS2") }, + { i_MULL, _T("MULL") }, + { i_DIVL, _T("DIVL") }, + { i_BFTST, _T("BFTST") }, + { i_BFEXTU, _T("BFEXTU") }, + { i_BFCHG, _T("BFCHG") }, + { i_BFEXTS, _T("BFEXTS") }, + { i_BFCLR, _T("BFCLR") }, + { i_BFFFO, _T("BFFFO") }, + { i_BFSET, _T("BFSET") }, + { i_BFINS, _T("BFINS") }, + { i_PACK, _T("PACK") }, + { i_UNPK, _T("UNPK") }, + { i_TAS, _T("TAS") }, + { i_BKPT, _T("BKPT") }, + { i_CALLM, _T("CALLM") }, + { i_RTM, _T("RTM") }, + { i_TRAPcc, _T("TRAPcc") }, + { i_MOVES, _T("MOVES") }, + { i_FPP, _T("FPP") }, + { i_FDBcc, _T("FDBcc") }, + { i_FScc, _T("FScc") }, + { i_FTRAPcc, _T("FTRAPcc") }, + { i_FBcc, _T("FBcc") }, + { i_FBcc, _T("FBcc") }, + { i_FSAVE, _T("FSAVE") }, + { i_FRESTORE, _T("FRESTORE") }, - { i_CINVL, _T("CINVL") }, - { i_CINVP, _T("CINVP") }, - { i_CINVA, _T("CINVA") }, - { i_CPUSHL, _T("CPUSHL") }, - { i_CPUSHP, _T("CPUSHP") }, - { i_CPUSHA, _T("CPUSHA") }, - { i_MOVE16, _T("MOVE16") }, + { i_CINVL, _T("CINVL") }, + { i_CINVP, _T("CINVP") }, + { i_CINVA, _T("CINVA") }, + { i_CPUSHL, _T("CPUSHL") }, + { i_CPUSHP, _T("CPUSHP") }, + { i_CPUSHA, _T("CPUSHA") }, + { i_MOVE16, _T("MOVE16") }, - { i_MMUOP030, _T("MMUOP030") }, - { i_PFLUSHN, _T("PFLUSHN") }, - { i_PFLUSH, _T("PFLUSH") }, - { i_PFLUSHAN, _T("PFLUSHAN") }, - { i_PFLUSHA, _T("PFLUSHA") }, + { i_MMUOP030, _T("MMUOP030") }, + { i_PFLUSHN, _T("PFLUSHN") }, + { i_PFLUSH, _T("PFLUSH") }, + { i_PFLUSHAN, _T("PFLUSHAN") }, + { i_PFLUSHA, _T("PFLUSHA") }, - { i_PLPAR, _T("PLPAR") }, - { i_PLPAW, _T("PLPAW") }, - { i_PTESTR, _T("PTESTR") }, - { i_PTESTW, _T("PTESTW") }, + { i_PLPAR, _T("PLPAR") }, + { i_PLPAW, _T("PLPAW") }, + { i_PTESTR, _T("PTESTR") }, + { i_PTESTW, _T("PTESTW") }, - { i_LPSTOP, _T("LPSTOP") }, - { i_ILLG, _T("") }, + { i_LPSTOP, _T("LPSTOP") }, + { i_ILLG, _T("") }, }; struct instr *table68k; static amodes mode_from_str (const TCHAR *str) { - if (_tcsncmp (str, _T("Dreg"), 4) == 0) return Dreg; - if (_tcsncmp (str, _T("Areg"), 4) == 0) return Areg; - if (_tcsncmp (str, _T("Aind"), 4) == 0) return Aind; - if (_tcsncmp (str, _T("Apdi"), 4) == 0) return Apdi; - if (_tcsncmp (str, _T("Aipi"), 4) == 0) return Aipi; - if (_tcsncmp (str, _T("Ad16"), 4) == 0) return Ad16; - if (_tcsncmp (str, _T("Ad8r"), 4) == 0) return Ad8r; - if (_tcsncmp (str, _T("absw"), 4) == 0) return absw; - if (_tcsncmp (str, _T("absl"), 4) == 0) return absl; - if (_tcsncmp (str, _T("PC16"), 4) == 0) return PC16; - if (_tcsncmp (str, _T("PC8r"), 4) == 0) return PC8r; - if (_tcsncmp (str, _T("Immd"), 4) == 0) return imm; - abort (); - return (amodes)0; + if (_tcsncmp (str, _T("Dreg"), 4) == 0) return Dreg; + if (_tcsncmp (str, _T("Areg"), 4) == 0) return Areg; + if (_tcsncmp (str, _T("Aind"), 4) == 0) return Aind; + if (_tcsncmp (str, _T("Apdi"), 4) == 0) return Apdi; + if (_tcsncmp (str, _T("Aipi"), 4) == 0) return Aipi; + if (_tcsncmp (str, _T("Ad16"), 4) == 0) return Ad16; + if (_tcsncmp (str, _T("Ad8r"), 4) == 0) return Ad8r; + if (_tcsncmp (str, _T("absw"), 4) == 0) return absw; + if (_tcsncmp (str, _T("absl"), 4) == 0) return absl; + if (_tcsncmp (str, _T("PC16"), 4) == 0) return PC16; + if (_tcsncmp (str, _T("PC8r"), 4) == 0) return PC8r; + if (_tcsncmp (str, _T("Immd"), 4) == 0) return imm; + abort (); + return (amodes)0; } STATIC_INLINE amodes mode_from_mr (int mode, int reg) { - switch (mode) { - case 0: return Dreg; - case 1: return Areg; - case 2: return Aind; - case 3: return Aipi; - case 4: return Apdi; - case 5: return Ad16; - case 6: return Ad8r; - case 7: - switch (reg) { - case 0: return absw; - case 1: return absl; - case 2: return PC16; - case 3: return PC8r; - case 4: return imm; - case 5: - case 6: - case 7: return am_illg; - } - } - abort (); - return (amodes)0; + switch (mode) + { + case 0: + return Dreg; + case 1: + return Areg; + case 2: + return Aind; + case 3: + return Aipi; + case 4: + return Apdi; + case 5: + return Ad16; + case 6: + return Ad8r; + case 7: + switch (reg) + { + case 0: + return absw; + case 1: + return absl; + case 2: + return PC16; + case 3: + return PC8r; + case 4: + return imm; + case 5: + case 6: + case 7: + return am_illg; + } + } + abort (); + return (amodes)0; } static void build_insn (int insn) { - int find = -1; - int variants; - struct instr_def id; - const TCHAR *opcstr; - int i, n; + int find = -1; + int variants; + struct instr_def id; + const TCHAR *opcstr; + int i, n; - int flaglive = 0, flagdead = 0; - int cflow = 0; + int flaglive = 0, flagdead = 0; + int cflow = 0; - // Mask of flags set/used - unsigned char flags_set = 0; - unsigned char flags_used = 0; + // Mask of flags set/used + unsigned char flags_set = 0; + unsigned char flags_used = 0; - id = defs68k[insn]; + id = defs68k[insn]; - // Control flow information - cflow = id.cflow; + // Control flow information + cflow = id.cflow; - for (i = 0, n = 4; i < 5; i++, n--) { - switch (id.flaginfo[i].flagset) { - case fa_unset: case fa_isjmp: break; - default: flags_set |= (1 << n); - } + for (i = 0, n = 4; i < 5; i++, n--) + { + switch (id.flaginfo[i].flagset) + { + case fa_unset: + case fa_isjmp: + break; + default: + flags_set |= (1 << n); + } - switch (id.flaginfo[i].flaguse) { - case fu_unused: case fu_isjmp: break; - default: flags_used |= (1 << n); - } - } + switch (id.flaginfo[i].flaguse) + { + case fu_unused: + case fu_isjmp: + break; + default: + flags_used |= (1 << n); + } + } - for (i = 0; i < 5; i++) { - switch (id.flaginfo[i].flagset){ - case fa_unset: break; - case fa_isjmp: break; - case fa_zero: flagdead |= 1 << i; break; - case fa_one: flagdead |= 1 << i; break; - case fa_dontcare: flagdead |= 1 << i; break; - case fa_unknown: flagdead = -1; goto out1; - case fa_set: flagdead |= 1 << i; break; - } - } + for (i = 0; i < 5; i++) + { + switch (id.flaginfo[i].flagset) + { + case fa_unset: + break; + case fa_isjmp: + break; + case fa_zero: + flagdead |= 1 << i; + break; + case fa_one: + flagdead |= 1 << i; + break; + case fa_dontcare: + flagdead |= 1 << i; + break; + case fa_unknown: + flagdead = -1; + goto out1; + case fa_set: + flagdead |= 1 << i; + break; + } + } out1: - for (i = 0; i < 5; i++) { - switch (id.flaginfo[i].flaguse) { - case fu_unused: break; - case fu_isjmp: flaglive |= 1 << i; break; - case fu_maybecc: flaglive |= 1 << i; break; - case fu_unknown: flaglive = -1; goto out2; - case fu_used: flaglive |= 1 << i; break; - } - } + for (i = 0; i < 5; i++) + { + switch (id.flaginfo[i].flaguse) + { + case fu_unused: + break; + case fu_isjmp: + flaglive |= 1 << i; + break; + case fu_maybecc: + flaglive |= 1 << i; + break; + case fu_unknown: + flaglive = -1; + goto out2; + case fu_used: + flaglive |= 1 << i; + break; + } + } out2: - opcstr = id.opcstr; - for (variants = 0; variants < (1 << id.n_variable); variants++) { - int bitcnt[lastbit]; - int bitval[lastbit]; - int bitpos[lastbit]; - int i; - uae_u16 opc = id.bits; - uae_u16 msk, vmsk; - int pos = 0; - int mnp = 0; - int bitno = 0; - TCHAR mnemonic[64]; + opcstr = id.opcstr; + for (variants = 0; variants < (1 << id.n_variable); variants++) + { + int bitcnt[lastbit]; + int bitval[lastbit]; + int bitpos[lastbit]; + int i; + uae_u16 opc = id.bits; + uae_u16 msk, vmsk; + int pos = 0; + int mnp = 0; + int bitno = 0; + TCHAR mnemonic[64]; - wordsizes sz = sz_long; - int srcgather = 0, dstgather = 0; - int usesrc = 0, usedst = 0; - int srctype = 0; - int srcpos = -1, dstpos = -1; + wordsizes sz = sz_long; + int srcgather = 0, dstgather = 0; + int usesrc = 0, usedst = 0; + int srctype = 0; + int srcpos = -1, dstpos = -1; - amodes srcmode = am_unknown, destmode = am_unknown; - int srcreg = -1, destreg = -1; + amodes srcmode = am_unknown, destmode = am_unknown; + int srcreg = -1, destreg = -1; - for (i = 0; i < lastbit; i++) - bitcnt[i] = bitval[i] = 0; + for (i = 0; i < lastbit; i++) + bitcnt[i] = bitval[i] = 0; - vmsk = 1 << id.n_variable; + vmsk = 1 << id.n_variable; - for (i = 0, msk = 0x8000; i < 16; i++, msk >>= 1) { - if (!(msk & id.mask)) { - int currbit = id.bitpos[bitno++]; - int bit_set; - vmsk >>= 1; - bit_set = variants & vmsk ? 1 : 0; - if (bit_set) - opc |= msk; - bitpos[currbit] = 15 - i; - bitcnt[currbit]++; - bitval[currbit] <<= 1; - bitval[currbit] |= bit_set; - } - } + for (i = 0, msk = 0x8000; i < 16; i++, msk >>= 1) + { + if (!(msk & id.mask)) + { + int currbit = id.bitpos[bitno++]; + int bit_set; + vmsk >>= 1; + bit_set = variants & vmsk ? 1 : 0; + if (bit_set) + opc |= msk; + bitpos[currbit] = 15 - i; + bitcnt[currbit]++; + bitval[currbit] <<= 1; + bitval[currbit] |= bit_set; + } + } - if (bitval[bitj] == 0) bitval[bitj] = 8; - /* first check whether this one does not match after all */ - if (bitval[bitz] == 3 || bitval[bitC] == 1) - continue; - if (bitcnt[bitI] && (bitval[bitI] == 0x00 || bitval[bitI] == 0xff)) - continue; + if (bitval[bitj] == 0) bitval[bitj] = 8; + /* first check whether this one does not match after all */ + if (bitval[bitz] == 3 || bitval[bitC] == 1) + continue; + if (bitcnt[bitI] && (bitval[bitI] == 0x00 || bitval[bitI] == 0xff)) + continue; - if (bitcnt[bitE] && (bitval[bitE] == 0x00)) - continue; + if (bitcnt[bitE] && (bitval[bitE] == 0x00)) + continue; - /* bitI and bitC get copied to biti and bitc */ - if (bitcnt[bitI]) { - bitval[biti] = bitval[bitI]; bitpos[biti] = bitpos[bitI]; - } - if (bitcnt[bitC]) - bitval[bitc] = bitval[bitC]; + /* bitI and bitC get copied to biti and bitc */ + if (bitcnt[bitI]) + { + bitval[biti] = bitval[bitI]; + bitpos[biti] = bitpos[bitI]; + } + if (bitcnt[bitC]) + bitval[bitc] = bitval[bitC]; - pos = 0; - while (opcstr[pos] && !_istspace(opcstr[pos])) { - if (opcstr[pos] == '.') { - pos++; - switch (opcstr[pos]) { + pos = 0; + while (opcstr[pos] && !_istspace(opcstr[pos])) + { + if (opcstr[pos] == '.') + { + pos++; + switch (opcstr[pos]) + { - case 'B': sz = sz_byte; break; - case 'W': sz = sz_word; break; - case 'L': sz = sz_long; break; - case 'z': - switch (bitval[bitz]) { - case 0: sz = sz_byte; break; - case 1: sz = sz_word; break; - case 2: sz = sz_long; break; - default: abort(); - } - break; - default: abort(); - } - } else { - mnemonic[mnp] = opcstr[pos]; - if (mnemonic[mnp] == 'f') { - find = -1; - switch (bitval[bitf]) { - case 0: mnemonic[mnp] = 'R'; break; - case 1: mnemonic[mnp] = 'L'; break; - default: abort(); - } - } - mnp++; - } - pos++; - } - mnemonic[mnp] = 0; + case 'B': + sz = sz_byte; + break; + case 'W': + sz = sz_word; + break; + case 'L': + sz = sz_long; + break; + case 'z': + switch (bitval[bitz]) + { + case 0: + sz = sz_byte; + break; + case 1: + sz = sz_word; + break; + case 2: + sz = sz_long; + break; + default: + abort(); + } + break; + default: + abort(); + } + } + else + { + mnemonic[mnp] = opcstr[pos]; + if (mnemonic[mnp] == 'f') + { + find = -1; + switch (bitval[bitf]) + { + case 0: + mnemonic[mnp] = 'R'; + break; + case 1: + mnemonic[mnp] = 'L'; + break; + default: + abort(); + } + } + mnp++; + } + pos++; + } + mnemonic[mnp] = 0; - /* now, we have read the mnemonic and the size */ - while (opcstr[pos] && _istspace(opcstr[pos])) - pos++; + /* now, we have read the mnemonic and the size */ + while (opcstr[pos] && _istspace(opcstr[pos])) + pos++; - /* A goto a day keeps the D******a away. */ - if (opcstr[pos] == 0) - goto endofline; + /* A goto a day keeps the D******a away. */ + if (opcstr[pos] == 0) + goto endofline; - /* parse the source address */ - usesrc = 1; - switch (opcstr[pos++]) { - case 'D': - srcmode = Dreg; - switch (opcstr[pos++]) { - case 'r': srcreg = bitval[bitr]; srcgather = 1; srcpos = bitpos[bitr]; break; - case 'R': srcreg = bitval[bitR]; srcgather = 1; srcpos = bitpos[bitR]; break; - default: abort(); - } - break; - case 'A': - srcmode = Areg; - switch (opcstr[pos++]) { - case 'l': srcmode = absl; break; - case 'r': srcreg = bitval[bitr]; srcgather = 1; srcpos = bitpos[bitr]; break; - case 'R': srcreg = bitval[bitR]; srcgather = 1; srcpos = bitpos[bitR]; break; - default: abort(); - } - switch (opcstr[pos]) { - case 'p': srcmode = Apdi; pos++; break; - case 'P': srcmode = Aipi; pos++; break; - case 'a': srcmode = Aind; pos++; break; - } - break; - case 'L': - srcmode = absl; - break; - case '#': - switch (opcstr[pos++]) { - case 'z': srcmode = imm; break; - case '0': srcmode = imm0; break; - case '1': srcmode = imm1; break; - case '2': srcmode = imm2; break; - case 'i': srcmode = immi; srcreg = (uae_s32)(uae_s8)bitval[biti]; - if (CPU_EMU_SIZE < 4) { - /* Used for branch instructions */ - srctype = 1; - srcgather = 1; - srcpos = bitpos[biti]; - } - break; - case 'j': srcmode = immi; srcreg = bitval[bitj]; - if (CPU_EMU_SIZE < 3) { - /* 1..8 for ADDQ/SUBQ and rotshi insns */ - srcgather = 1; - srctype = 3; - srcpos = bitpos[bitj]; - } - break; - case 'J': srcmode = immi; srcreg = bitval[bitJ]; - if (CPU_EMU_SIZE < 5) { - /* 0..15 */ - srcgather = 1; - srctype = 2; - srcpos = bitpos[bitJ]; - } - break; - case 'k': srcmode = immi; srcreg = bitval[bitk]; - if (CPU_EMU_SIZE < 3) { - srcgather = 1; - srctype = 4; - srcpos = bitpos[bitk]; - } - break; - case 'K': srcmode = immi; srcreg = bitval[bitK]; - if (CPU_EMU_SIZE < 5) { - /* 0..15 */ - srcgather = 1; - srctype = 5; - srcpos = bitpos[bitK]; - } - break; - case 'E': srcmode = immi; srcreg = bitval[bitE]; - if (CPU_EMU_SIZE < 5) { - /* 1..255 */ - srcgather = 1; - srctype = 6; - srcpos = bitpos[bitE]; - } - break; - case 'p': srcmode = immi; srcreg = bitval[bitp]; - if (CPU_EMU_SIZE < 5) { - /* 0..3 */ - srcgather = 1; - srctype = 7; - srcpos = bitpos[bitp]; - } - break; - default: abort(); - } - break; - case 'd': - srcreg = bitval[bitD]; - srcmode = mode_from_mr(bitval[bitd],bitval[bitD]); - if (srcmode == am_illg) - continue; - if (CPU_EMU_SIZE < 2 && - (srcmode == Areg || srcmode == Dreg || srcmode == Aind - || srcmode == Ad16 || srcmode == Ad8r || srcmode == Aipi - || srcmode == Apdi)) - { - srcgather = 1; srcpos = bitpos[bitD]; - } - if (opcstr[pos] == '[') { - pos++; - if (opcstr[pos] == '!') { - /* exclusion */ - do { - pos++; - if (mode_from_str(opcstr+pos) == srcmode) - goto nomatch; - pos += 4; - } while (opcstr[pos] == ','); - pos++; - } else { - if (opcstr[pos+4] == '-') { - /* replacement */ - if (mode_from_str(opcstr+pos) == srcmode) - srcmode = mode_from_str(opcstr+pos+5); - else - goto nomatch; - pos += 10; - } else { - /* normal */ - while(mode_from_str(opcstr+pos) != srcmode) { - pos += 4; - if (opcstr[pos] == ']') - goto nomatch; - pos++; - } - while(opcstr[pos] != ']') pos++; - pos++; - break; - } - } - } - /* Some addressing modes are invalid as destination */ - if (srcmode == imm || srcmode == PC16 || srcmode == PC8r) - goto nomatch; - break; - case 's': - srcreg = bitval[bitS]; - srcmode = mode_from_mr(bitval[bits],bitval[bitS]); + /* parse the source address */ + usesrc = 1; + switch (opcstr[pos++]) + { + case 'D': + srcmode = Dreg; + switch (opcstr[pos++]) + { + case 'r': + srcreg = bitval[bitr]; + srcgather = 1; + srcpos = bitpos[bitr]; + break; + case 'R': + srcreg = bitval[bitR]; + srcgather = 1; + srcpos = bitpos[bitR]; + break; + default: + abort(); + } + break; + case 'A': + srcmode = Areg; + switch (opcstr[pos++]) + { + case 'l': + srcmode = absl; + break; + case 'r': + srcreg = bitval[bitr]; + srcgather = 1; + srcpos = bitpos[bitr]; + break; + case 'R': + srcreg = bitval[bitR]; + srcgather = 1; + srcpos = bitpos[bitR]; + break; + default: + abort(); + } + switch (opcstr[pos]) + { + case 'p': + srcmode = Apdi; + pos++; + break; + case 'P': + srcmode = Aipi; + pos++; + break; + case 'a': + srcmode = Aind; + pos++; + break; + } + break; + case 'L': + srcmode = absl; + break; + case '#': + switch (opcstr[pos++]) + { + case 'z': + srcmode = imm; + break; + case '0': + srcmode = imm0; + break; + case '1': + srcmode = imm1; + break; + case '2': + srcmode = imm2; + break; + case 'i': + srcmode = immi; + srcreg = (uae_s32)(uae_s8)bitval[biti]; + if (CPU_EMU_SIZE < 4) + { + /* Used for branch instructions */ + srctype = 1; + srcgather = 1; + srcpos = bitpos[biti]; + } + break; + case 'j': + srcmode = immi; + srcreg = bitval[bitj]; + if (CPU_EMU_SIZE < 3) + { + /* 1..8 for ADDQ/SUBQ and rotshi insns */ + srcgather = 1; + srctype = 3; + srcpos = bitpos[bitj]; + } + break; + case 'J': + srcmode = immi; + srcreg = bitval[bitJ]; + if (CPU_EMU_SIZE < 5) + { + /* 0..15 */ + srcgather = 1; + srctype = 2; + srcpos = bitpos[bitJ]; + } + break; + case 'k': + srcmode = immi; + srcreg = bitval[bitk]; + if (CPU_EMU_SIZE < 3) + { + srcgather = 1; + srctype = 4; + srcpos = bitpos[bitk]; + } + break; + case 'K': + srcmode = immi; + srcreg = bitval[bitK]; + if (CPU_EMU_SIZE < 5) + { + /* 0..15 */ + srcgather = 1; + srctype = 5; + srcpos = bitpos[bitK]; + } + break; + case 'E': + srcmode = immi; + srcreg = bitval[bitE]; + if (CPU_EMU_SIZE < 5) + { + /* 1..255 */ + srcgather = 1; + srctype = 6; + srcpos = bitpos[bitE]; + } + break; + case 'p': + srcmode = immi; + srcreg = bitval[bitp]; + if (CPU_EMU_SIZE < 5) + { + /* 0..3 */ + srcgather = 1; + srctype = 7; + srcpos = bitpos[bitp]; + } + break; + default: + abort(); + } + break; + case 'd': + srcreg = bitval[bitD]; + srcmode = mode_from_mr(bitval[bitd],bitval[bitD]); + if (srcmode == am_illg) + continue; + if (CPU_EMU_SIZE < 2 && + (srcmode == Areg || srcmode == Dreg || srcmode == Aind + || srcmode == Ad16 || srcmode == Ad8r || srcmode == Aipi + || srcmode == Apdi)) + { + srcgather = 1; + srcpos = bitpos[bitD]; + } + if (opcstr[pos] == '[') + { + pos++; + if (opcstr[pos] == '!') + { + /* exclusion */ + do + { + pos++; + if (mode_from_str(opcstr+pos) == srcmode) + goto nomatch; + pos += 4; + } + while (opcstr[pos] == ','); + pos++; + } + else + { + if (opcstr[pos+4] == '-') + { + /* replacement */ + if (mode_from_str(opcstr+pos) == srcmode) + srcmode = mode_from_str(opcstr+pos+5); + else + goto nomatch; + pos += 10; + } + else + { + /* normal */ + while(mode_from_str(opcstr+pos) != srcmode) + { + pos += 4; + if (opcstr[pos] == ']') + goto nomatch; + pos++; + } + while(opcstr[pos] != ']') pos++; + pos++; + break; + } + } + } + /* Some addressing modes are invalid as destination */ + if (srcmode == imm || srcmode == PC16 || srcmode == PC8r) + goto nomatch; + break; + case 's': + srcreg = bitval[bitS]; + srcmode = mode_from_mr(bitval[bits],bitval[bitS]); - if (srcmode == am_illg) - continue; - if (CPU_EMU_SIZE < 2 && - (srcmode == Areg || srcmode == Dreg || srcmode == Aind - || srcmode == Ad16 || srcmode == Ad8r || srcmode == Aipi - || srcmode == Apdi)) - { - srcgather = 1; srcpos = bitpos[bitS]; - } - if (opcstr[pos] == '[') { - pos++; - if (opcstr[pos] == '!') { - /* exclusion */ - do { - pos++; - if (mode_from_str(opcstr+pos) == srcmode) - goto nomatch; - pos += 4; - } while (opcstr[pos] == ','); - pos++; - } else { - if (opcstr[pos+4] == '-') { - /* replacement */ - if (mode_from_str(opcstr+pos) == srcmode) - srcmode = mode_from_str(opcstr+pos+5); - else - goto nomatch; - pos += 10; - } else { - /* normal */ - while(mode_from_str(opcstr+pos) != srcmode) { - pos += 4; - if (opcstr[pos] == ']') - goto nomatch; - pos++; - } - while(opcstr[pos] != ']') pos++; - pos++; - } - } - } - break; - default: abort(); - } - /* safety check - might have changed */ - if (srcmode != Areg && srcmode != Dreg && srcmode != Aind - && srcmode != Ad16 && srcmode != Ad8r && srcmode != Aipi - && srcmode != Apdi && srcmode != immi) - { - srcgather = 0; - } - if (srcmode == Areg && sz == sz_byte) - goto nomatch; + if (srcmode == am_illg) + continue; + if (CPU_EMU_SIZE < 2 && + (srcmode == Areg || srcmode == Dreg || srcmode == Aind + || srcmode == Ad16 || srcmode == Ad8r || srcmode == Aipi + || srcmode == Apdi)) + { + srcgather = 1; + srcpos = bitpos[bitS]; + } + if (opcstr[pos] == '[') + { + pos++; + if (opcstr[pos] == '!') + { + /* exclusion */ + do + { + pos++; + if (mode_from_str(opcstr+pos) == srcmode) + goto nomatch; + pos += 4; + } + while (opcstr[pos] == ','); + pos++; + } + else + { + if (opcstr[pos+4] == '-') + { + /* replacement */ + if (mode_from_str(opcstr+pos) == srcmode) + srcmode = mode_from_str(opcstr+pos+5); + else + goto nomatch; + pos += 10; + } + else + { + /* normal */ + while(mode_from_str(opcstr+pos) != srcmode) + { + pos += 4; + if (opcstr[pos] == ']') + goto nomatch; + pos++; + } + while(opcstr[pos] != ']') pos++; + pos++; + } + } + } + break; + default: + abort(); + } + /* safety check - might have changed */ + if (srcmode != Areg && srcmode != Dreg && srcmode != Aind + && srcmode != Ad16 && srcmode != Ad8r && srcmode != Aipi + && srcmode != Apdi && srcmode != immi) + { + srcgather = 0; + } + if (srcmode == Areg && sz == sz_byte) + goto nomatch; - if (opcstr[pos] != ',') - goto endofline; - pos++; + if (opcstr[pos] != ',') + goto endofline; + pos++; - /* parse the destination address */ - usedst = 1; - switch (opcstr[pos++]) { - case 'D': - destmode = Dreg; - switch (opcstr[pos++]) { - case 'r': destreg = bitval[bitr]; dstgather = 1; dstpos = bitpos[bitr]; break; - case 'R': destreg = bitval[bitR]; dstgather = 1; dstpos = bitpos[bitR]; break; - default: abort(); - } - if (dstpos < 0 || dstpos >= 32) - abort (); - break; - case 'A': - destmode = Areg; - switch (opcstr[pos++]) { - case 'l': destmode = absl; break; - case 'r': destreg = bitval[bitr]; dstgather = 1; dstpos = bitpos[bitr]; break; - case 'R': destreg = bitval[bitR]; dstgather = 1; dstpos = bitpos[bitR]; break; - case 'x': destreg = 0; dstgather = 0; dstpos = 0; break; - default: abort(); - } - if (destmode != absl && (dstpos < 0 || dstpos >= 32)) - abort (); - switch (opcstr[pos]) { - case 'p': destmode = Apdi; pos++; break; - case 'P': destmode = Aipi; pos++; break; - } - break; - case 'L': - destmode = absl; - break; - case '#': - switch (opcstr[pos++]) { - case 'z': destmode = imm; break; - case '0': destmode = imm0; break; - case '1': destmode = imm1; break; - case '2': destmode = imm2; break; - case 'i': destmode = immi; destreg = (uae_s32)(uae_s8)bitval[biti]; break; - case 'j': destmode = immi; destreg = bitval[bitj]; break; - case 'J': destmode = immi; destreg = bitval[bitJ]; break; - case 'k': destmode = immi; destreg = bitval[bitk]; break; - case 'K': destmode = immi; destreg = bitval[bitK]; break; - default: abort(); - } - break; - case 'd': - destreg = bitval[bitD]; - destmode = mode_from_mr(bitval[bitd],bitval[bitD]); - if (destmode == am_illg) - continue; - if (CPU_EMU_SIZE < 1 && - (destmode == Areg || destmode == Dreg || destmode == Aind - || destmode == Ad16 || destmode == Ad8r || destmode == Aipi - || destmode == Apdi)) - { - dstgather = 1; dstpos = bitpos[bitD]; - } + /* parse the destination address */ + usedst = 1; + switch (opcstr[pos++]) + { + case 'D': + destmode = Dreg; + switch (opcstr[pos++]) + { + case 'r': + destreg = bitval[bitr]; + dstgather = 1; + dstpos = bitpos[bitr]; + break; + case 'R': + destreg = bitval[bitR]; + dstgather = 1; + dstpos = bitpos[bitR]; + break; + default: + abort(); + } + if (dstpos < 0 || dstpos >= 32) + abort (); + break; + case 'A': + destmode = Areg; + switch (opcstr[pos++]) + { + case 'l': + destmode = absl; + break; + case 'r': + destreg = bitval[bitr]; + dstgather = 1; + dstpos = bitpos[bitr]; + break; + case 'R': + destreg = bitval[bitR]; + dstgather = 1; + dstpos = bitpos[bitR]; + break; + case 'x': + destreg = 0; + dstgather = 0; + dstpos = 0; + break; + default: + abort(); + } + if (destmode != absl && (dstpos < 0 || dstpos >= 32)) + abort (); + switch (opcstr[pos]) + { + case 'p': + destmode = Apdi; + pos++; + break; + case 'P': + destmode = Aipi; + pos++; + break; + } + break; + case 'L': + destmode = absl; + break; + case '#': + switch (opcstr[pos++]) + { + case 'z': + destmode = imm; + break; + case '0': + destmode = imm0; + break; + case '1': + destmode = imm1; + break; + case '2': + destmode = imm2; + break; + case 'i': + destmode = immi; + destreg = (uae_s32)(uae_s8)bitval[biti]; + break; + case 'j': + destmode = immi; + destreg = bitval[bitj]; + break; + case 'J': + destmode = immi; + destreg = bitval[bitJ]; + break; + case 'k': + destmode = immi; + destreg = bitval[bitk]; + break; + case 'K': + destmode = immi; + destreg = bitval[bitK]; + break; + default: + abort(); + } + break; + case 'd': + destreg = bitval[bitD]; + destmode = mode_from_mr(bitval[bitd],bitval[bitD]); + if (destmode == am_illg) + continue; + if (CPU_EMU_SIZE < 1 && + (destmode == Areg || destmode == Dreg || destmode == Aind + || destmode == Ad16 || destmode == Ad8r || destmode == Aipi + || destmode == Apdi)) + { + dstgather = 1; + dstpos = bitpos[bitD]; + } - if (opcstr[pos] == '[') { - pos++; - if (opcstr[pos] == '!') { - /* exclusion */ - do { - pos++; - if (mode_from_str(opcstr+pos) == destmode) - goto nomatch; - pos += 4; - } while (opcstr[pos] == ','); - pos++; - } else { - if (opcstr[pos+4] == '-') { - /* replacement */ - if (mode_from_str(opcstr+pos) == destmode) - destmode = mode_from_str(opcstr+pos+5); - else - goto nomatch; - pos += 10; - } else { - /* normal */ - while(mode_from_str(opcstr+pos) != destmode) { - pos += 4; - if (opcstr[pos] == ']') - goto nomatch; - pos++; - } - while(opcstr[pos] != ']') pos++; - pos++; - break; - } - } - } - /* Some addressing modes are invalid as destination */ - if (destmode == imm || destmode == PC16 || destmode == PC8r) - goto nomatch; - break; - case 's': - destreg = bitval[bitS]; - destmode = mode_from_mr(bitval[bits],bitval[bitS]); + if (opcstr[pos] == '[') + { + pos++; + if (opcstr[pos] == '!') + { + /* exclusion */ + do + { + pos++; + if (mode_from_str(opcstr+pos) == destmode) + goto nomatch; + pos += 4; + } + while (opcstr[pos] == ','); + pos++; + } + else + { + if (opcstr[pos+4] == '-') + { + /* replacement */ + if (mode_from_str(opcstr+pos) == destmode) + destmode = mode_from_str(opcstr+pos+5); + else + goto nomatch; + pos += 10; + } + else + { + /* normal */ + while(mode_from_str(opcstr+pos) != destmode) + { + pos += 4; + if (opcstr[pos] == ']') + goto nomatch; + pos++; + } + while(opcstr[pos] != ']') pos++; + pos++; + break; + } + } + } + /* Some addressing modes are invalid as destination */ + if (destmode == imm || destmode == PC16 || destmode == PC8r) + goto nomatch; + break; + case 's': + destreg = bitval[bitS]; + destmode = mode_from_mr(bitval[bits],bitval[bitS]); - if (destmode == am_illg) - continue; - if (CPU_EMU_SIZE < 1 && - (destmode == Areg || destmode == Dreg || destmode == Aind - || destmode == Ad16 || destmode == Ad8r || destmode == Aipi - || destmode == Apdi)) - { - dstgather = 1; dstpos = bitpos[bitS]; - } + if (destmode == am_illg) + continue; + if (CPU_EMU_SIZE < 1 && + (destmode == Areg || destmode == Dreg || destmode == Aind + || destmode == Ad16 || destmode == Ad8r || destmode == Aipi + || destmode == Apdi)) + { + dstgather = 1; + dstpos = bitpos[bitS]; + } - if (opcstr[pos] == '[') { - pos++; - if (opcstr[pos] == '!') { - /* exclusion */ - do { - pos++; - if (mode_from_str(opcstr+pos) == destmode) - goto nomatch; - pos += 4; - } while (opcstr[pos] == ','); - pos++; - } else { - if (opcstr[pos+4] == '-') { - /* replacement */ - if (mode_from_str(opcstr+pos) == destmode) - destmode = mode_from_str(opcstr+pos+5); - else - goto nomatch; - pos += 10; - } else { - /* normal */ - while(mode_from_str(opcstr+pos) != destmode) { - pos += 4; - if (opcstr[pos] == ']') - goto nomatch; - pos++; - } - while(opcstr[pos] != ']') pos++; - pos++; - } - } - } - break; - default: abort(); - } - /* safety check - might have changed */ - if (destmode != Areg && destmode != Dreg && destmode != Aind - && destmode != Ad16 && destmode != Ad8r && destmode != Aipi - && destmode != Apdi) - { - dstgather = 0; - } + if (opcstr[pos] == '[') + { + pos++; + if (opcstr[pos] == '!') + { + /* exclusion */ + do + { + pos++; + if (mode_from_str(opcstr+pos) == destmode) + goto nomatch; + pos += 4; + } + while (opcstr[pos] == ','); + pos++; + } + else + { + if (opcstr[pos+4] == '-') + { + /* replacement */ + if (mode_from_str(opcstr+pos) == destmode) + destmode = mode_from_str(opcstr+pos+5); + else + goto nomatch; + pos += 10; + } + else + { + /* normal */ + while(mode_from_str(opcstr+pos) != destmode) + { + pos += 4; + if (opcstr[pos] == ']') + goto nomatch; + pos++; + } + while(opcstr[pos] != ']') pos++; + pos++; + } + } + } + break; + default: + abort(); + } + /* safety check - might have changed */ + if (destmode != Areg && destmode != Dreg && destmode != Aind + && destmode != Ad16 && destmode != Ad8r && destmode != Aipi + && destmode != Apdi) + { + dstgather = 0; + } - if (destmode == Areg && sz == sz_byte) - goto nomatch; + if (destmode == Areg && sz == sz_byte) + goto nomatch; #if 0 - if (sz == sz_byte && (destmode == Aipi || destmode == Apdi)) { - dstgather = 0; - } + if (sz == sz_byte && (destmode == Aipi || destmode == Apdi)) + { + dstgather = 0; + } #endif endofline: - /* now, we have a match */ - if (table68k[opc].mnemo != i_ILLG) - ;//write_log (_T("Double match: %x: %s\n"), opc, opcstr); - if (find == -1) { - for (find = 0;; find++) { - if (_tcscmp (mnemonic, lookuptab[find].name) == 0) { - table68k[opc].mnemo = lookuptab[find].mnemo; - break; - } - if (_tcslen (lookuptab[find].name) == 0) - abort(); - } - } - else { - table68k[opc].mnemo = lookuptab[find].mnemo; - } - table68k[opc].cc = bitval[bitc]; - if (table68k[opc].mnemo == i_BTST - || table68k[opc].mnemo == i_BSET - || table68k[opc].mnemo == i_BCLR - || table68k[opc].mnemo == i_BCHG) - { - sz = destmode == Dreg ? sz_long : sz_byte; - } - table68k[opc].size = sz; - table68k[opc].sreg = srcreg; - table68k[opc].dreg = destreg; - table68k[opc].smode = srcmode; - table68k[opc].dmode = destmode; - table68k[opc].spos = srcgather ? srcpos : -1; - table68k[opc].dpos = dstgather ? dstpos : -1; - table68k[opc].suse = usesrc; - table68k[opc].duse = usedst; - table68k[opc].stype = srctype; - table68k[opc].plev = id.plevel; - table68k[opc].clev = id.cpulevel; - table68k[opc].unimpclev = id.unimpcpulevel; + /* now, we have a match */ + if (table68k[opc].mnemo != i_ILLG) + ;//write_log (_T("Double match: %x: %s\n"), opc, opcstr); + if (find == -1) + { + for (find = 0;; find++) + { + if (_tcscmp (mnemonic, lookuptab[find].name) == 0) + { + table68k[opc].mnemo = lookuptab[find].mnemo; + break; + } + if (_tcslen (lookuptab[find].name) == 0) + abort(); + } + } + else + { + table68k[opc].mnemo = lookuptab[find].mnemo; + } + table68k[opc].cc = bitval[bitc]; + if (table68k[opc].mnemo == i_BTST + || table68k[opc].mnemo == i_BSET + || table68k[opc].mnemo == i_BCLR + || table68k[opc].mnemo == i_BCHG) + { + sz = destmode == Dreg ? sz_long : sz_byte; + } + table68k[opc].size = sz; + table68k[opc].sreg = srcreg; + table68k[opc].dreg = destreg; + table68k[opc].smode = srcmode; + table68k[opc].dmode = destmode; + table68k[opc].spos = srcgather ? srcpos : -1; + table68k[opc].dpos = dstgather ? dstpos : -1; + table68k[opc].suse = usesrc; + table68k[opc].duse = usedst; + table68k[opc].stype = srctype; + table68k[opc].plev = id.plevel; + table68k[opc].clev = id.cpulevel; + table68k[opc].unimpclev = id.unimpcpulevel; #if 0 - for (i = 0; i < 5; i++) { - table68k[opc].flaginfo[i].flagset = id.flaginfo[i].flagset; - table68k[opc].flaginfo[i].flaguse = id.flaginfo[i].flaguse; - } + for (i = 0; i < 5; i++) + { + table68k[opc].flaginfo[i].flagset = id.flaginfo[i].flagset; + table68k[opc].flaginfo[i].flaguse = id.flaginfo[i].flaguse; + } #endif - // Fix flags used information for Scc, Bcc, TRAPcc, DBcc instructions - if ( table68k[opc].mnemo == i_Scc - || table68k[opc].mnemo == i_Bcc - || table68k[opc].mnemo == i_DBcc - || table68k[opc].mnemo == i_TRAPcc - ) { - switch (table68k[opc].cc) { - // CC mask: XNZVC - // 8421 - case 0: flags_used = 0x00; break; /* T */ - case 1: flags_used = 0x00; break; /* F */ - case 2: flags_used = 0x05; break; /* HI */ - case 3: flags_used = 0x05; break; /* LS */ - case 4: flags_used = 0x01; break; /* CC */ - case 5: flags_used = 0x01; break; /* CS */ - case 6: flags_used = 0x04; break; /* NE */ - case 7: flags_used = 0x04; break; /* EQ */ - case 8: flags_used = 0x02; break; /* VC */ - case 9: flags_used = 0x02; break; /* VS */ - case 10:flags_used = 0x08; break; /* PL */ - case 11:flags_used = 0x08; break; /* MI */ - case 12:flags_used = 0x0A; break; /* GE */ - case 13:flags_used = 0x0A; break; /* LT */ - case 14:flags_used = 0x0E; break; /* GT */ - case 15:flags_used = 0x0E; break; /* LE */ - } - } + // Fix flags used information for Scc, Bcc, TRAPcc, DBcc instructions + if ( table68k[opc].mnemo == i_Scc + || table68k[opc].mnemo == i_Bcc + || table68k[opc].mnemo == i_DBcc + || table68k[opc].mnemo == i_TRAPcc + ) + { + switch (table68k[opc].cc) + { + // CC mask: XNZVC + // 8421 + case 0: + flags_used = 0x00; + break; /* T */ + case 1: + flags_used = 0x00; + break; /* F */ + case 2: + flags_used = 0x05; + break; /* HI */ + case 3: + flags_used = 0x05; + break; /* LS */ + case 4: + flags_used = 0x01; + break; /* CC */ + case 5: + flags_used = 0x01; + break; /* CS */ + case 6: + flags_used = 0x04; + break; /* NE */ + case 7: + flags_used = 0x04; + break; /* EQ */ + case 8: + flags_used = 0x02; + break; /* VC */ + case 9: + flags_used = 0x02; + break; /* VS */ + case 10: + flags_used = 0x08; + break; /* PL */ + case 11: + flags_used = 0x08; + break; /* MI */ + case 12: + flags_used = 0x0A; + break; /* GE */ + case 13: + flags_used = 0x0A; + break; /* LT */ + case 14: + flags_used = 0x0E; + break; /* GT */ + case 15: + flags_used = 0x0E; + break; /* LE */ + } + } #if 1 - /* gb-- flagdead and flaglive would not have correct information */ - table68k[opc].flagdead = flags_set; - table68k[opc].flaglive = flags_used; + /* gb-- flagdead and flaglive would not have correct information */ + table68k[opc].flagdead = flags_set; + table68k[opc].flaglive = flags_used; #else - table68k[opc].flagdead = flagdead; - table68k[opc].flaglive = flaglive; + table68k[opc].flagdead = flagdead; + table68k[opc].flaglive = flaglive; #endif - table68k[opc].cflow = cflow; + table68k[opc].cflow = cflow; nomatch: - /* FOO! */; - } + /* FOO! */ + ; + } } void read_table68k (void) { - int i; + int i; - free (table68k); - table68k = xmalloc (struct instr, 65536); - for (i = 0; i < 65536; i++) { - table68k[i].mnemo = i_ILLG; - table68k[i].handler = -1; - } - for (i = 0; i < n_defs68k; i++) { - build_insn (i); - } + free (table68k); + table68k = xmalloc (struct instr, 65536); + for (i = 0; i < 65536; i++) + { + table68k[i].mnemo = i_ILLG; + table68k[i].handler = -1; + } + for (i = 0; i < n_defs68k; i++) + { + build_insn (i); + } } static int imismatch; static void handle_merges (long int opcode) { - uae_u16 smsk; - uae_u16 dmsk; - int sbitdst, dstend; - int srcreg, dstreg; + uae_u16 smsk; + uae_u16 dmsk; + int sbitdst, dstend; + int srcreg, dstreg; - if (table68k[opcode].spos == -1) { - sbitdst = 1; smsk = 0; - } else { - switch (table68k[opcode].stype) { - case 0: - smsk = 7; sbitdst = 8; break; - case 1: - smsk = 255; sbitdst = 256; break; - case 2: - smsk = 15; sbitdst = 16; break; - case 3: - smsk = 7; sbitdst = 8; break; - case 4: - smsk = 7; sbitdst = 8; break; - case 5: - smsk = 63; sbitdst = 64; break; - case 6: - smsk = 255; sbitdst = 256; break; - case 7: - smsk = 3; sbitdst = 4; break; - default: - smsk = 0; sbitdst = 0; - abort(); - break; - } - smsk <<= table68k[opcode].spos; - } - if (table68k[opcode].dpos == -1) { - dstend = 1; dmsk = 0; - } else { - dmsk = 7 << table68k[opcode].dpos; - dstend = 8; - } - for (srcreg=0; srcreg < sbitdst; srcreg++) { - for (dstreg=0; dstreg < dstend; dstreg++) { - uae_u16 code = (uae_u16)opcode; + if (table68k[opcode].spos == -1) + { + sbitdst = 1; + smsk = 0; + } + else + { + switch (table68k[opcode].stype) + { + case 0: + smsk = 7; + sbitdst = 8; + break; + case 1: + smsk = 255; + sbitdst = 256; + break; + case 2: + smsk = 15; + sbitdst = 16; + break; + case 3: + smsk = 7; + sbitdst = 8; + break; + case 4: + smsk = 7; + sbitdst = 8; + break; + case 5: + smsk = 63; + sbitdst = 64; + break; + case 6: + smsk = 255; + sbitdst = 256; + break; + case 7: + smsk = 3; + sbitdst = 4; + break; + default: + smsk = 0; + sbitdst = 0; + abort(); + break; + } + smsk <<= table68k[opcode].spos; + } + if (table68k[opcode].dpos == -1) + { + dstend = 1; + dmsk = 0; + } + else + { + dmsk = 7 << table68k[opcode].dpos; + dstend = 8; + } + for (srcreg=0; srcreg < sbitdst; srcreg++) + { + for (dstreg=0; dstreg < dstend; dstreg++) + { + uae_u16 code = (uae_u16)opcode; - code = (code & ~smsk) | (srcreg << table68k[opcode].spos); - code = (code & ~dmsk) | (dstreg << table68k[opcode].dpos); + code = (code & ~smsk) | (srcreg << table68k[opcode].spos); + code = (code & ~dmsk) | (dstreg << table68k[opcode].dpos); - /* Check whether this is in fact the same instruction. - * The instructions should never differ, except for the - * Bcc.(BW) case. */ - if (table68k[code].mnemo != table68k[opcode].mnemo - || table68k[code].size != table68k[opcode].size - || table68k[code].suse != table68k[opcode].suse - || table68k[code].duse != table68k[opcode].duse) - { - imismatch++; continue; - } - if (table68k[opcode].suse - && (table68k[opcode].spos != table68k[code].spos - || table68k[opcode].smode != table68k[code].smode - || table68k[opcode].stype != table68k[code].stype)) - { - imismatch++; continue; - } - if (table68k[opcode].duse - && (table68k[opcode].dpos != table68k[code].dpos - || table68k[opcode].dmode != table68k[code].dmode)) - { - imismatch++; continue; - } + /* Check whether this is in fact the same instruction. + * The instructions should never differ, except for the + * Bcc.(BW) case. */ + if (table68k[code].mnemo != table68k[opcode].mnemo + || table68k[code].size != table68k[opcode].size + || table68k[code].suse != table68k[opcode].suse + || table68k[code].duse != table68k[opcode].duse) + { + imismatch++; + continue; + } + if (table68k[opcode].suse + && (table68k[opcode].spos != table68k[code].spos + || table68k[opcode].smode != table68k[code].smode + || table68k[opcode].stype != table68k[code].stype)) + { + imismatch++; + continue; + } + if (table68k[opcode].duse + && (table68k[opcode].dpos != table68k[code].dpos + || table68k[opcode].dmode != table68k[code].dmode)) + { + imismatch++; + continue; + } - if (code != opcode) - table68k[code].handler = opcode; - } - } + if (code != opcode) + table68k[code].handler = opcode; + } + } } void do_merges (void) { - long int opcode; - int nr = 0; - imismatch = 0; - for (opcode = 0; opcode < 65536; opcode++) { - if (table68k[opcode].handler != -1 || table68k[opcode].mnemo == i_ILLG) - continue; - nr++; - handle_merges (opcode); - } - nr_cpuop_funcs = nr; + long int opcode; + int nr = 0; + imismatch = 0; + for (opcode = 0; opcode < 65536; opcode++) + { + if (table68k[opcode].handler != -1 || table68k[opcode].mnemo == i_ILLG) + continue; + nr++; + handle_merges (opcode); + } + nr_cpuop_funcs = nr; } int get_no_mismatches (void) { - return imismatch; + return imismatch; } diff --git a/src/rommgr.cpp b/src/rommgr.cpp index 275dcba1..d9bbe1f8 100644 --- a/src/rommgr.cpp +++ b/src/rommgr.cpp @@ -1,9 +1,9 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * ROM file management - * - */ +/* + * UAE - The Un*x Amiga Emulator + * + * ROM file management + * + */ #include "sysconfig.h" #include "sysdeps.h" @@ -12,7 +12,7 @@ #include "uae.h" #include "gui.h" #include "rommgr.h" -#include "memory.h" +#include "include/memory.h" #include "zfile.h" #include "crc32.h" @@ -23,78 +23,84 @@ static int romlist_cnt; struct romlist *romlist_getit (void) { - return rl; + return rl; } int romlist_count (void) { - return romlist_cnt; + return romlist_cnt; } TCHAR *romlist_get (const struct romdata *rd) { - int i; + int i; - if (!rd) - return 0; - for (i = 0; i < romlist_cnt; i++) { - if (rl[i].rd->id == rd->id) - return rl[i].path; - } - return 0; + if (!rd) + return 0; + for (i = 0; i < romlist_cnt; i++) + { + if (rl[i].rd->id == rd->id) + return rl[i].path; + } + return 0; } static struct romlist *romlist_getrl (const struct romdata *rd) { - int i; - - if (!rd) - return 0; - for (i = 0; i < romlist_cnt; i++) { - if (rl[i].rd == rd) - return &rl[i]; - } - return 0; + int i; + + if (!rd) + return 0; + for (i = 0; i < romlist_cnt; i++) + { + if (rl[i].rd == rd) + return &rl[i]; + } + return 0; } static void romlist_cleanup (void); void romlist_add (const TCHAR *path, struct romdata *rd) { - struct romlist *rl2; + struct romlist *rl2; - if (path == NULL || rd == NULL) { - romlist_cleanup (); - return; - } - romlist_cnt++; - rl = xrealloc (struct romlist, rl, romlist_cnt); - rl2 = rl + romlist_cnt - 1; - rl2->path = my_strdup (path); - rl2->rd = rd; + if (path == NULL || rd == NULL) + { + romlist_cleanup (); + return; + } + romlist_cnt++; + rl = xrealloc (struct romlist, rl, romlist_cnt); + rl2 = rl + romlist_cnt - 1; + rl2->path = my_strdup (path); + rl2->rd = rd; } struct romdata *getromdatabypath (const TCHAR *path) { - int i; - for (i = 0; i < romlist_cnt; i++) { - struct romdata *rd = rl[i].rd; - if (rd->configname && path[0] == ':') { - if (!_tcscmp(path + 1, rd->configname)) - return rd; - } - if (!_tcscmp(rl[i].path, path)) - return rl[i].rd; - } - return NULL; + int i; + for (i = 0; i < romlist_cnt; i++) + { + struct romdata *rd = rl[i].rd; + if (rd->configname && path[0] == ':') + { + if (!_tcscmp(path + 1, rd->configname)) + return rd; + } + if (!_tcscmp(rl[i].path, path)) + return rl[i].rd; + } + return NULL; } #define NEXT_ROM_ID 74 -static struct romheader romheaders[] = { - { _T("Freezer Cartridges"), 1 }, - { _T("Arcadia Games"), 2 }, - { NULL, 0 } +static struct romheader romheaders[] = +{ + { _T("Freezer Cartridges"), 1 }, + { _T("Arcadia Games"), 2 }, + { NULL, 0 } }; #define ALTROM(id,grp,num,size,flags,crc32,a,b,c,d,e) \ @@ -102,921 +108,1119 @@ static struct romheader romheaders[] = { #define ALTROMPN(id,grp,num,size,flags,pn,crc32,a,b,c,d,e) \ { _T("X"), 0, 0, 0, 0, 0, size, id, 0, 0, flags, (grp << 16) | num, 0, pn, crc32, a, b, c, d, e }, -static struct romdata roms[] = { - { _T(" AROS KS ROM (built-in)"), 0, 0, 0, 0, _T("AROS\0"), 524288 * 2, 66, 0, 0, ROMTYPE_KICK, 0, 0, NULL, - 0xffffffff, 0, 0, 0, 0, 0, _T("AROS") }, +static struct romdata roms[] = +{ + { + _T(" AROS KS ROM (built-in)"), 0, 0, 0, 0, _T("AROS\0"), 524288 * 2, 66, 0, 0, ROMTYPE_KICK, 0, 0, NULL, + 0xffffffff, 0, 0, 0, 0, 0, _T("AROS") + }, - { _T("Cloanto Amiga Forever ROM key"), 0, 0, 0, 0, 0, 2069, 0, 0, 1, ROMTYPE_KEY, 0, 0, NULL, - 0x869ae1b1, 0x801bbab3,0x2e3d3738,0x6dd1636d,0x4f1d6fa7,0xe21d5874 }, - { _T("Cloanto Amiga Forever 2006 ROM key"), 0, 0, 0, 0, 0, 750, 48, 0, 1, ROMTYPE_KEY, 0, 0, NULL, - 0xb01c4b56, 0xbba8e5cd,0x118b8d92,0xafed5693,0x5eeb9770,0x2a662d8f }, - { _T("Cloanto Amiga Forever 2010 ROM key"), 0, 0, 0, 0, 0, 1544, 73, 0, 1, ROMTYPE_KEY, 0, 0, NULL, - 0x8c4dd05c, 0x05034f62,0x0b5bb7b2,0x86954ea9,0x164fdb90,0xfb2897a4 }, + { + _T("Cloanto Amiga Forever ROM key"), 0, 0, 0, 0, 0, 2069, 0, 0, 1, ROMTYPE_KEY, 0, 0, NULL, + 0x869ae1b1, 0x801bbab3,0x2e3d3738,0x6dd1636d,0x4f1d6fa7,0xe21d5874 + }, + { + _T("Cloanto Amiga Forever 2006 ROM key"), 0, 0, 0, 0, 0, 750, 48, 0, 1, ROMTYPE_KEY, 0, 0, NULL, + 0xb01c4b56, 0xbba8e5cd,0x118b8d92,0xafed5693,0x5eeb9770,0x2a662d8f + }, + { + _T("Cloanto Amiga Forever 2010 ROM key"), 0, 0, 0, 0, 0, 1544, 73, 0, 1, ROMTYPE_KEY, 0, 0, NULL, + 0x8c4dd05c, 0x05034f62,0x0b5bb7b2,0x86954ea9,0x164fdb90,0xfb2897a4 + }, - { _T("KS ROM v1.0 (A1000)(NTSC)"), 1, 0, 1, 0, _T("A1000\0"), 262144, 1, 0, 0, ROMTYPE_KICK, 0, 0, NULL, - 0x299790ff, 0x00C15406,0xBEB4B8AB,0x1A16AA66,0xC05860E1,0xA7C1AD79 }, - { _T("KS ROM v1.1 (A1000)(NTSC)"), 1, 1, 31, 34, _T("A1000\0"), 262144, 2, 0, 0, ROMTYPE_KICK, 0, 0, NULL, - 0xd060572a, 0x4192C505,0xD130F446,0xB2ADA6BD,0xC91DAE73,0x0ACAFB4C}, - { _T("KS ROM v1.1 (A1000)(PAL)"), 1, 1, 31, 34, _T("A1000\0"), 262144, 3, 0, 0, ROMTYPE_KICK, 0, 0, NULL, - 0xec86dae2, 0x16DF8B5F,0xD524C5A1,0xC7584B24,0x57AC15AF,0xF9E3AD6D }, - { _T("KS ROM v1.2 (A1000)"), 1, 2, 33, 166, _T("A1000\0"), 262144, 4, 0, 0, ROMTYPE_KICK, 0, 0, NULL, - 0x9ed783d0, 0x6A7BFB5D,0xBD6B8F17,0x9F03DA84,0xD8D95282,0x67B6273B }, - { _T("KS ROM v1.2 (A500,A1000,A2000)"), 1, 2, 33, 180, _T("A500\0A1000\0A2000\0"), 262144, 5, 0, 0, ROMTYPE_KICK, 0, 0, _T("315093-01"), - 0xa6ce1636, 0x11F9E62C,0xF299F721,0x84835B7B,0x2A70A163,0x33FC0D88 }, - { _T("KS ROM v1.3 (A500,A1000,A2000)"), 1, 3, 34, 5, _T("A500\0A1000\0A2000\0"), 262144, 6, 0, 0, ROMTYPE_KICK, 0, 0, _T("315093-02"), - 0xc4f0f55f, 0x891E9A54,0x7772FE0C,0x6C19B610,0xBAF8BC4E,0xA7FCB785 }, - { _T("KS ROM v1.3 (A3000)(SK)"), 1, 3, 34, 5, _T("A3000\0"), 262144, 32, 0, 0, ROMTYPE_KICK, 0, 0, NULL, - 0xe0f37258, 0xC39BD909,0x4D4E5F4E,0x28C1411F,0x30869504,0x06062E87 }, - { _T("KS ROM v1.4 (A3000)"), 1, 4, 36, 16, _T("A3000\0"), 524288, 59, 3, 0, ROMTYPE_KICK, 0, 0, NULL, - 0xbc0ec13f, 0xF76316BF,0x36DFF14B,0x20FA349E,0xD02E4B11,0xDD932B07 }, - ALTROMPN(59, 1, 1, 262144, ROMTYPE_EVEN, _T("390629-02"), 0x58327536,0xd1713d7f,0x31474a59,0x48e6d488,0xe3368606,0x1cf3d1e2) - ALTROMPN(59, 1, 2, 262144, ROMTYPE_ODD , _T("390630-02"), 0xfe2f7fb9,0xc05c9c52,0xd014c66f,0x9019152b,0x3f2a2adc,0x2c678794) - { _T("KS ROM v2.04 (A500+)"), 2, 4, 37, 175, _T("A500+\0"), 524288, 7, 0, 0, ROMTYPE_KICK, 0, 0, _T("390979-01"), - 0xc3bdb240, 0xC5839F5C,0xB98A7A89,0x47065C3E,0xD2F14F5F,0x42E334A1 }, - { _T("KS ROM v2.05 (A600)"), 2, 5, 37, 299, _T("A600\0"), 524288, 8, 0, 0, ROMTYPE_KICK, 0, 0, _T("391388-01"), - 0x83028fb5, 0x87508DE8,0x34DC7EB4,0x7359CEDE,0x72D2E3C8,0xA2E5D8DB }, - { _T("KS ROM v2.05 (A600HD)"), 2, 5, 37, 300, _T("A600HD\0A600\0"), 524288, 9, 0, 0, ROMTYPE_KICK, 0, 0, _T("391304-01"), - 0x64466c2a, 0xF72D8914,0x8DAC39C6,0x96E30B10,0x859EBC85,0x9226637B }, - { _T("KS ROM v2.05 (A600HD)"), 2, 5, 37, 350, _T("A600HD\0A600\0"), 524288, 10, 0, 0, ROMTYPE_KICK, 0, 0, _T("391304-02"), - 0x43b0df7b, 0x02843C42,0x53BBD29A,0xBA535B0A,0xA3BD9A85,0x034ECDE4 }, - { _T("KS ROM v2.04 (A3000)"), 2, 4, 37, 175, _T("A3000\0"), 524288, 71, 3, 0, ROMTYPE_KICK, 0, 0, NULL, - 0x234a7233, 0xd82ebb59,0xafc53540,0xddf2d718,0x7ecf239b,0x7ea91590 }, - ALTROMPN(71, 1, 1, 262144, ROMTYPE_EVEN, _T("390629-03"), 0xa245dbdf,0x83bab8e9,0x5d378b55,0xb0c6ae65,0x61385a96,0xf638598f) - ALTROMPN(71, 1, 2, 262144, ROMTYPE_ODD , _T("390630-03"), 0x7db1332b,0x48f14b31,0x279da675,0x7848df6f,0xeb531881,0x8f8f576c) + { + _T("KS ROM v1.0 (A1000)(NTSC)"), 1, 0, 1, 0, _T("A1000\0"), 262144, 1, 0, 0, ROMTYPE_KICK, 0, 0, NULL, + 0x299790ff, 0x00C15406,0xBEB4B8AB,0x1A16AA66,0xC05860E1,0xA7C1AD79 + }, + { + _T("KS ROM v1.1 (A1000)(NTSC)"), 1, 1, 31, 34, _T("A1000\0"), 262144, 2, 0, 0, ROMTYPE_KICK, 0, 0, NULL, + 0xd060572a, 0x4192C505,0xD130F446,0xB2ADA6BD,0xC91DAE73,0x0ACAFB4C + }, + { + _T("KS ROM v1.1 (A1000)(PAL)"), 1, 1, 31, 34, _T("A1000\0"), 262144, 3, 0, 0, ROMTYPE_KICK, 0, 0, NULL, + 0xec86dae2, 0x16DF8B5F,0xD524C5A1,0xC7584B24,0x57AC15AF,0xF9E3AD6D + }, + { + _T("KS ROM v1.2 (A1000)"), 1, 2, 33, 166, _T("A1000\0"), 262144, 4, 0, 0, ROMTYPE_KICK, 0, 0, NULL, + 0x9ed783d0, 0x6A7BFB5D,0xBD6B8F17,0x9F03DA84,0xD8D95282,0x67B6273B + }, + { + _T("KS ROM v1.2 (A500,A1000,A2000)"), 1, 2, 33, 180, _T("A500\0A1000\0A2000\0"), 262144, 5, 0, 0, ROMTYPE_KICK, 0, 0, _T("315093-01"), + 0xa6ce1636, 0x11F9E62C,0xF299F721,0x84835B7B,0x2A70A163,0x33FC0D88 + }, + { + _T("KS ROM v1.3 (A500,A1000,A2000)"), 1, 3, 34, 5, _T("A500\0A1000\0A2000\0"), 262144, 6, 0, 0, ROMTYPE_KICK, 0, 0, _T("315093-02"), + 0xc4f0f55f, 0x891E9A54,0x7772FE0C,0x6C19B610,0xBAF8BC4E,0xA7FCB785 + }, + { + _T("KS ROM v1.3 (A3000)(SK)"), 1, 3, 34, 5, _T("A3000\0"), 262144, 32, 0, 0, ROMTYPE_KICK, 0, 0, NULL, + 0xe0f37258, 0xC39BD909,0x4D4E5F4E,0x28C1411F,0x30869504,0x06062E87 + }, + { + _T("KS ROM v1.4 (A3000)"), 1, 4, 36, 16, _T("A3000\0"), 524288, 59, 3, 0, ROMTYPE_KICK, 0, 0, NULL, + 0xbc0ec13f, 0xF76316BF,0x36DFF14B,0x20FA349E,0xD02E4B11,0xDD932B07 + }, + ALTROMPN(59, 1, 1, 262144, ROMTYPE_EVEN, _T("390629-02"), 0x58327536,0xd1713d7f,0x31474a59,0x48e6d488,0xe3368606,0x1cf3d1e2) + ALTROMPN(59, 1, 2, 262144, ROMTYPE_ODD, _T("390630-02"), 0xfe2f7fb9,0xc05c9c52,0xd014c66f,0x9019152b,0x3f2a2adc,0x2c678794) + { + _T("KS ROM v2.04 (A500+)"), 2, 4, 37, 175, _T("A500+\0"), 524288, 7, 0, 0, ROMTYPE_KICK, 0, 0, _T("390979-01"), + 0xc3bdb240, 0xC5839F5C,0xB98A7A89,0x47065C3E,0xD2F14F5F,0x42E334A1 + }, + { + _T("KS ROM v2.05 (A600)"), 2, 5, 37, 299, _T("A600\0"), 524288, 8, 0, 0, ROMTYPE_KICK, 0, 0, _T("391388-01"), + 0x83028fb5, 0x87508DE8,0x34DC7EB4,0x7359CEDE,0x72D2E3C8,0xA2E5D8DB + }, + { + _T("KS ROM v2.05 (A600HD)"), 2, 5, 37, 300, _T("A600HD\0A600\0"), 524288, 9, 0, 0, ROMTYPE_KICK, 0, 0, _T("391304-01"), + 0x64466c2a, 0xF72D8914,0x8DAC39C6,0x96E30B10,0x859EBC85,0x9226637B + }, + { + _T("KS ROM v2.05 (A600HD)"), 2, 5, 37, 350, _T("A600HD\0A600\0"), 524288, 10, 0, 0, ROMTYPE_KICK, 0, 0, _T("391304-02"), + 0x43b0df7b, 0x02843C42,0x53BBD29A,0xBA535B0A,0xA3BD9A85,0x034ECDE4 + }, + { + _T("KS ROM v2.04 (A3000)"), 2, 4, 37, 175, _T("A3000\0"), 524288, 71, 3, 0, ROMTYPE_KICK, 0, 0, NULL, + 0x234a7233, 0xd82ebb59,0xafc53540,0xddf2d718,0x7ecf239b,0x7ea91590 + }, + ALTROMPN(71, 1, 1, 262144, ROMTYPE_EVEN, _T("390629-03"), 0xa245dbdf,0x83bab8e9,0x5d378b55,0xb0c6ae65,0x61385a96,0xf638598f) + ALTROMPN(71, 1, 2, 262144, ROMTYPE_ODD, _T("390630-03"), 0x7db1332b,0x48f14b31,0x279da675,0x7848df6f,0xeb531881,0x8f8f576c) - { _T("KS ROM v3.0 (A1200)"), 3, 0, 39, 106, _T("A1200\0"), 524288, 11, 0, 0, ROMTYPE_KICK, 0, 0, NULL, - 0x6c9b07d2, 0x70033828,0x182FFFC7,0xED106E53,0x73A8B89D,0xDA76FAA5 }, - ALTROMPN(11, 1, 1, 262144, ROMTYPE_EVEN, _T("391523-01"), 0xc742a412,0x999eb81c,0x65dfd07a,0x71ee1931,0x5d99c7eb,0x858ab186) - ALTROMPN(11, 1, 2, 262144, ROMTYPE_ODD , _T("391524-01"), 0xd55c6ec6,0x3341108d,0x3a402882,0xb5ef9d3b,0x242cbf3c,0x8ab1a3e9) - { _T("KS ROM v3.0 (A4000)"), 3, 0, 39, 106, _T("A4000\0"), 524288, 12, 2 | 4, 0, ROMTYPE_KICK, 0, 0, NULL, - 0x9e6ac152, 0xF0B4E9E2,0x9E12218C,0x2D5BD702,0x0E4E7852,0x97D91FD7 }, - ALTROMPN(12, 1, 1, 262144, ROMTYPE_EVEN, _T("391513-02"), 0x36f64dd0,0x196e9f3f,0x9cad934e,0x181c07da,0x33083b1f,0x0a3c702f) - ALTROMPN(12, 1, 2, 262144, ROMTYPE_ODD , _T("391514-02"), 0x17266a55,0x42fbed34,0x53d1f11c,0xcbde89a9,0x826f2d11,0x75cca5cc) - { _T("KS ROM v3.1 (A4000)"), 3, 1, 40, 70, _T("A4000\0"), 524288, 13, 2 | 4, 0, ROMTYPE_KICK, 0, 0, NULL, - 0x2b4566f1, 0x81c631dd,0x096bbb31,0xd2af9029,0x9c76b774,0xdb74076c }, - ALTROM(13, 1, 1, 262144, ROMTYPE_EVEN, 0xf9cbecc9,0x138d8cb4,0x3b8312fe,0x16d69070,0xde607469,0xb3d4078e) - ALTROM(13, 1, 2, 262144, ROMTYPE_ODD , 0xf8248355,0xc2379547,0x9fae3910,0xc185512c,0xa268b82f,0x1ae4fe05) - { _T("KS ROM v3.1 (A500,A600,A2000)"), 3, 1, 40, 63, _T("A500\0A600\0A2000\0"), 524288, 14, 0, 0, ROMTYPE_KICK, 0, 0, NULL, - 0xfc24ae0d, 0x3B7F1493,0xB27E2128,0x30F989F2,0x6CA76C02,0x049F09CA }, - { _T("KS ROM v3.1 (A1200)"), 3, 1, 40, 68, _T("A1200\0"), 524288, 15, 1, 0, ROMTYPE_KICK, 0, 0, NULL, - 0x1483a091, 0xE2154572,0x3FE8374E,0x91342617,0x604F1B3D,0x703094F1 }, - ALTROMPN(15, 1, 1, 262144, ROMTYPE_EVEN, _T("391773-01"), 0x08dbf275,0xb8800f5f,0x90929810,0x9ea69690,0xb1b8523f,0xa22ddb37) - ALTROMPN(15, 1, 2, 262144, ROMTYPE_ODD , _T("391774-01"), 0x16c07bf8,0x90e331be,0x1970b0e5,0x3f53a9b0,0x390b51b5,0x9b3869c2) - { _T("KS ROM v3.1 (A3000)"), 3, 1, 40, 68, _T("A3000\0"), 524288, 61, 2, 0, ROMTYPE_KICK, 0, 0, NULL, - 0xefb239cc, 0xF8E210D7,0x2B4C4853,0xE0C9B85D,0x223BA20E,0x3D1B36EE }, - ALTROM(61, 1, 1, 262144, ROMTYPE_EVEN, 0x286b9a0d,0x6763a225,0x8ec493f7,0x408cf663,0x110dae9a,0x17803ad1) - ALTROM(61, 1, 2, 262144, ROMTYPE_ODD , 0x0b8cde6a,0x5f02e97b,0x48ebbba8,0x7d516a56,0xb0400c6f,0xc3434d8d) - { _T("KS ROM v3.1 (A4000)(Cloanto)"), 3, 1, 40, 68, _T("A4000\0"), 524288, 31, 2 | 4, 1, ROMTYPE_KICK, 0, 0, NULL, - 0x43b6dd22, 0xC3C48116,0x0866E60D,0x085E436A,0x24DB3617,0xFF60B5F9 }, - { _T("KS ROM v3.1 (A4000)"), 3, 1, 40, 68, _T("A4000\0"), 524288, 16, 2 | 4, 0, ROMTYPE_KICK, 0, 0, NULL, - 0xd6bae334, 0x5FE04842,0xD04A4897,0x20F0F4BB,0x0E469481,0x99406F49 }, - ALTROM(16, 1, 1, 262144, ROMTYPE_EVEN, 0xb2af34f8,0x24e52b5e,0xfc020495,0x17387ab7,0xb1a1475f,0xc540350e) - ALTROM(16, 1, 2, 262144, ROMTYPE_ODD , 0xe65636a3,0x313c7cbd,0xa5779e56,0xf19a41d3,0x4e760f51,0x7626d882) - { _T("KS ROM v3.1 (A4000T)"), 3, 1, 40, 70, _T("A4000T\0"), 524288, 17, 2 | 4, 0, ROMTYPE_KICK, 0, 0, NULL, - 0x75932c3a, 0xB0EC8B84,0xD6768321,0xE01209F1,0x1E6248F2,0xF5281A21 }, - ALTROMPN(17, 1, 1, 262144, ROMTYPE_EVEN, _T("391657-01"), 0x0ca94f70,0xb3806eda,0xcb3362fc,0x16a154ce,0x1eeec5bf,0x5bc24789) - ALTROMPN(17, 1, 2, 262144, ROMTYPE_ODD , _T("391658-01"), 0xdfe03120,0xcd7a706c,0x431b04d8,0x7814d3a2,0xd8b39710,0x0cf44c0c) - { _T("KS ROM v3.X (A4000)(Cloanto)"), 3, 10, 45, 57, _T("A4000\0"), 524288, 46, 2 | 4, 0, ROMTYPE_KICK, 0, 0, NULL, - 0x3ac99edc, 0x3cbfc9e1,0xfe396360,0x157bd161,0xde74fc90,0x1abee7ec }, + { + _T("KS ROM v3.0 (A1200)"), 3, 0, 39, 106, _T("A1200\0"), 524288, 11, 0, 0, ROMTYPE_KICK, 0, 0, NULL, + 0x6c9b07d2, 0x70033828,0x182FFFC7,0xED106E53,0x73A8B89D,0xDA76FAA5 + }, + ALTROMPN(11, 1, 1, 262144, ROMTYPE_EVEN, _T("391523-01"), 0xc742a412,0x999eb81c,0x65dfd07a,0x71ee1931,0x5d99c7eb,0x858ab186) + ALTROMPN(11, 1, 2, 262144, ROMTYPE_ODD, _T("391524-01"), 0xd55c6ec6,0x3341108d,0x3a402882,0xb5ef9d3b,0x242cbf3c,0x8ab1a3e9) + { + _T("KS ROM v3.0 (A4000)"), 3, 0, 39, 106, _T("A4000\0"), 524288, 12, 2 | 4, 0, ROMTYPE_KICK, 0, 0, NULL, + 0x9e6ac152, 0xF0B4E9E2,0x9E12218C,0x2D5BD702,0x0E4E7852,0x97D91FD7 + }, + ALTROMPN(12, 1, 1, 262144, ROMTYPE_EVEN, _T("391513-02"), 0x36f64dd0,0x196e9f3f,0x9cad934e,0x181c07da,0x33083b1f,0x0a3c702f) + ALTROMPN(12, 1, 2, 262144, ROMTYPE_ODD, _T("391514-02"), 0x17266a55,0x42fbed34,0x53d1f11c,0xcbde89a9,0x826f2d11,0x75cca5cc) + { + _T("KS ROM v3.1 (A4000)"), 3, 1, 40, 70, _T("A4000\0"), 524288, 13, 2 | 4, 0, ROMTYPE_KICK, 0, 0, NULL, + 0x2b4566f1, 0x81c631dd,0x096bbb31,0xd2af9029,0x9c76b774,0xdb74076c + }, + ALTROM(13, 1, 1, 262144, ROMTYPE_EVEN, 0xf9cbecc9,0x138d8cb4,0x3b8312fe,0x16d69070,0xde607469,0xb3d4078e) + ALTROM(13, 1, 2, 262144, ROMTYPE_ODD, 0xf8248355,0xc2379547,0x9fae3910,0xc185512c,0xa268b82f,0x1ae4fe05) + { + _T("KS ROM v3.1 (A500,A600,A2000)"), 3, 1, 40, 63, _T("A500\0A600\0A2000\0"), 524288, 14, 0, 0, ROMTYPE_KICK, 0, 0, NULL, + 0xfc24ae0d, 0x3B7F1493,0xB27E2128,0x30F989F2,0x6CA76C02,0x049F09CA + }, + { + _T("KS ROM v3.1 (A1200)"), 3, 1, 40, 68, _T("A1200\0"), 524288, 15, 1, 0, ROMTYPE_KICK, 0, 0, NULL, + 0x1483a091, 0xE2154572,0x3FE8374E,0x91342617,0x604F1B3D,0x703094F1 + }, + ALTROMPN(15, 1, 1, 262144, ROMTYPE_EVEN, _T("391773-01"), 0x08dbf275,0xb8800f5f,0x90929810,0x9ea69690,0xb1b8523f,0xa22ddb37) + ALTROMPN(15, 1, 2, 262144, ROMTYPE_ODD, _T("391774-01"), 0x16c07bf8,0x90e331be,0x1970b0e5,0x3f53a9b0,0x390b51b5,0x9b3869c2) + { + _T("KS ROM v3.1 (A3000)"), 3, 1, 40, 68, _T("A3000\0"), 524288, 61, 2, 0, ROMTYPE_KICK, 0, 0, NULL, + 0xefb239cc, 0xF8E210D7,0x2B4C4853,0xE0C9B85D,0x223BA20E,0x3D1B36EE + }, + ALTROM(61, 1, 1, 262144, ROMTYPE_EVEN, 0x286b9a0d,0x6763a225,0x8ec493f7,0x408cf663,0x110dae9a,0x17803ad1) + ALTROM(61, 1, 2, 262144, ROMTYPE_ODD, 0x0b8cde6a,0x5f02e97b,0x48ebbba8,0x7d516a56,0xb0400c6f,0xc3434d8d) + { + _T("KS ROM v3.1 (A4000)(Cloanto)"), 3, 1, 40, 68, _T("A4000\0"), 524288, 31, 2 | 4, 1, ROMTYPE_KICK, 0, 0, NULL, + 0x43b6dd22, 0xC3C48116,0x0866E60D,0x085E436A,0x24DB3617,0xFF60B5F9 + }, + { + _T("KS ROM v3.1 (A4000)"), 3, 1, 40, 68, _T("A4000\0"), 524288, 16, 2 | 4, 0, ROMTYPE_KICK, 0, 0, NULL, + 0xd6bae334, 0x5FE04842,0xD04A4897,0x20F0F4BB,0x0E469481,0x99406F49 + }, + ALTROM(16, 1, 1, 262144, ROMTYPE_EVEN, 0xb2af34f8,0x24e52b5e,0xfc020495,0x17387ab7,0xb1a1475f,0xc540350e) + ALTROM(16, 1, 2, 262144, ROMTYPE_ODD, 0xe65636a3,0x313c7cbd,0xa5779e56,0xf19a41d3,0x4e760f51,0x7626d882) + { + _T("KS ROM v3.1 (A4000T)"), 3, 1, 40, 70, _T("A4000T\0"), 524288, 17, 2 | 4, 0, ROMTYPE_KICK, 0, 0, NULL, + 0x75932c3a, 0xB0EC8B84,0xD6768321,0xE01209F1,0x1E6248F2,0xF5281A21 + }, + ALTROMPN(17, 1, 1, 262144, ROMTYPE_EVEN, _T("391657-01"), 0x0ca94f70,0xb3806eda,0xcb3362fc,0x16a154ce,0x1eeec5bf,0x5bc24789) + ALTROMPN(17, 1, 2, 262144, ROMTYPE_ODD, _T("391658-01"), 0xdfe03120,0xcd7a706c,0x431b04d8,0x7814d3a2,0xd8b39710,0x0cf44c0c) + { + _T("KS ROM v3.X (A4000)(Cloanto)"), 3, 10, 45, 57, _T("A4000\0"), 524288, 46, 2 | 4, 0, ROMTYPE_KICK, 0, 0, NULL, + 0x3ac99edc, 0x3cbfc9e1,0xfe396360,0x157bd161,0xde74fc90,0x1abee7ec + }, - { _T("CD32 KS ROM v3.1"), 3, 1, 40, 60, _T("CD32\0"), 524288, 18, 1, 0, ROMTYPE_KICKCD32, 0, 0, NULL, - 0x1e62d4a5, 0x3525BE88,0x87F79B59,0x29E017B4,0x2380A79E,0xDFEE542D }, - { _T("CD32 extended ROM"), 3, 1, 40, 60, _T("CD32\0"), 524288, 19, 1, 0, ROMTYPE_EXTCD32, 0, 0, NULL, - 0x87746be2, 0x5BEF3D62,0x8CE59CC0,0x2A66E6E4,0xAE0DA48F,0x60E78F7F }, + { + _T("CD32 KS ROM v3.1"), 3, 1, 40, 60, _T("CD32\0"), 524288, 18, 1, 0, ROMTYPE_KICKCD32, 0, 0, NULL, + 0x1e62d4a5, 0x3525BE88,0x87F79B59,0x29E017B4,0x2380A79E,0xDFEE542D + }, + { + _T("CD32 extended ROM"), 3, 1, 40, 60, _T("CD32\0"), 524288, 19, 1, 0, ROMTYPE_EXTCD32, 0, 0, NULL, + 0x87746be2, 0x5BEF3D62,0x8CE59CC0,0x2A66E6E4,0xAE0DA48F,0x60E78F7F + }, - /* plain CD32 rom */ - { _T("CD32 ROM (KS + extended)"), 3, 1, 40, 60, _T("CD32\0"), 2 * 524288, 64, 1, 0, ROMTYPE_KICKCD32 | ROMTYPE_EXTCD32 | ROMTYPE_CD32, 0, 0, NULL, - 0xf5d4f3c8, 0x9fa14825,0xc40a2475,0xa2eba5cf,0x325bd483,0xc447e7c1 }, - /* real CD32 rom dump 391640-03 */ - ALTROMPN(64, 1, 1, 2 * 524288, ROMTYPE_CD32, _T("391640-03"), 0xa4fbc94a, 0x816ce6c5,0x07787585,0x0c7d4345,0x2230a9ba,0x3a2902db ) - - { _T("CD32 MPEG Cartridge ROM"), 3, 1, 40, 30, _T("CD32FMV\0"), 262144, 23, 1, 0, ROMTYPE_CD32CART, 0, 0, NULL, - 0xc35c37bf, 0x03ca81c7,0xa7b259cf,0x64bc9582,0x863eca0f,0x6529f435 }, + /* plain CD32 rom */ + { + _T("CD32 ROM (KS + extended)"), 3, 1, 40, 60, _T("CD32\0"), 2 * 524288, 64, 1, 0, ROMTYPE_KICKCD32 | ROMTYPE_EXTCD32 | ROMTYPE_CD32, 0, 0, NULL, + 0xf5d4f3c8, 0x9fa14825,0xc40a2475,0xa2eba5cf,0x325bd483,0xc447e7c1 + }, + /* real CD32 rom dump 391640-03 */ + ALTROMPN(64, 1, 1, 2 * 524288, ROMTYPE_CD32, _T("391640-03"), 0xa4fbc94a, 0x816ce6c5,0x07787585,0x0c7d4345,0x2230a9ba,0x3a2902db ) - { _T("CDTV extended ROM v1.00"), 1, 0, 1, 0, _T("CDTV\0"), 262144, 20, 0, 0, ROMTYPE_EXTCDTV, 0, 0, NULL, - 0x42baa124, 0x7BA40FFA,0x17E500ED,0x9FED041F,0x3424BD81,0xD9C907BE }, - ALTROMPN(20, 1, 1, 131072, ROMTYPE_EVEN | ROMTYPE_8BIT, _T("252606-01"), 0x791cb14b,0x277a1778,0x92449635,0x3ffe56be,0x68063d2a,0x334360e4) - ALTROMPN(20, 1, 2, 131072, ROMTYPE_ODD | ROMTYPE_8BIT, _T("252607-01"), 0xaccbbc2e,0x41b06d16,0x79c6e693,0x3c3378b7,0x626025f7,0x641ebc5c) - { _T("CDTV extended ROM v2.07"), 2, 7, 2, 7, _T("CDTV\0"), 262144, 22, 0, 0, ROMTYPE_EXTCDTV, 0, 0, NULL, - 0xceae68d2, 0x5BC114BB,0xA29F60A6,0x14A31174,0x5B3E2464,0xBFA06846 }, - ALTROM(22, 1, 1, 131072, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x36d73cb8,0x9574e546,0x4b390697,0xf28f9a43,0x4e604e5e,0xf5e5490a) - ALTROM(22, 1, 2, 131072, ROMTYPE_ODD | ROMTYPE_8BIT, 0x6e84dce7,0x01a0679e,0x895a1a0f,0x559c7253,0xf539606b,0xd447b54f) - { _T("CDTV/A570 extended ROM v2.30"), 2, 30, 2, 30, _T("CDTV\0"), 262144, 21, 0, 0, ROMTYPE_EXTCDTV, 0, 0, _T("391298-01"), - 0x30b54232, 0xED7E461D,0x1FFF3CDA,0x321631AE,0x42B80E3C,0xD4FA5EBB }, - ALTROM(21, 1, 1, 131072, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x48e4d74f,0x54946054,0x2269e410,0x36018402,0xe1f6b855,0xfd89092b) - ALTROM(21, 1, 2, 131072, ROMTYPE_ODD | ROMTYPE_8BIT, 0x8a54f362,0x03df800f,0x032046fd,0x892f6e7e,0xec08b76d,0x33981e8c) + { + _T("CD32 MPEG Cartridge ROM"), 3, 1, 40, 30, _T("CD32FMV\0"), 262144, 23, 1, 0, ROMTYPE_CD32CART, 0, 0, NULL, + 0xc35c37bf, 0x03ca81c7,0xa7b259cf,0x64bc9582,0x863eca0f,0x6529f435 + }, - { _T("A1000 bootstrap ROM"), 0, 0, 0, 0, _T("A1000\0"), 65536, 24, 0, 0, ROMTYPE_KICK, 0, 0, NULL, - 0x0b1ad2d0, 0xBA93B8B8,0x5CA0D83A,0x68225CC3,0x3B95050D,0x72D2FDD7 }, - ALTROM(24, 1, 1, 8192, 0, 0x62f11c04, 0xC87F9FAD,0xA4EE4E69,0xF3CCA0C3,0x6193BE82,0x2B9F5FE6) - ALTROMPN(24, 2, 1, 4096, ROMTYPE_EVEN | ROMTYPE_8BIT, _T("252179-01"), 0x42553bc4,0x8855a97f,0x7a44e3f6,0x2d1c88d9,0x38fee1f4,0xc606af5b) - ALTROMPN(24, 2, 2, 4096, ROMTYPE_ODD | ROMTYPE_8BIT, _T("252180-01"), 0x8e5b9a37,0xd10f1564,0xb99f5ffe,0x108fa042,0x362e877f,0x569de2c3) + { + _T("CDTV extended ROM v1.00"), 1, 0, 1, 0, _T("CDTV\0"), 262144, 20, 0, 0, ROMTYPE_EXTCDTV, 0, 0, NULL, + 0x42baa124, 0x7BA40FFA,0x17E500ED,0x9FED041F,0x3424BD81,0xD9C907BE + }, + ALTROMPN(20, 1, 1, 131072, ROMTYPE_EVEN | ROMTYPE_8BIT, _T("252606-01"), 0x791cb14b,0x277a1778,0x92449635,0x3ffe56be,0x68063d2a,0x334360e4) + ALTROMPN(20, 1, 2, 131072, ROMTYPE_ODD | ROMTYPE_8BIT, _T("252607-01"), 0xaccbbc2e,0x41b06d16,0x79c6e693,0x3c3378b7,0x626025f7,0x641ebc5c) + { + _T("CDTV extended ROM v2.07"), 2, 7, 2, 7, _T("CDTV\0"), 262144, 22, 0, 0, ROMTYPE_EXTCDTV, 0, 0, NULL, + 0xceae68d2, 0x5BC114BB,0xA29F60A6,0x14A31174,0x5B3E2464,0xBFA06846 + }, + ALTROM(22, 1, 1, 131072, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x36d73cb8,0x9574e546,0x4b390697,0xf28f9a43,0x4e604e5e,0xf5e5490a) + ALTROM(22, 1, 2, 131072, ROMTYPE_ODD | ROMTYPE_8BIT, 0x6e84dce7,0x01a0679e,0x895a1a0f,0x559c7253,0xf539606b,0xd447b54f) + { + _T("CDTV/A570 extended ROM v2.30"), 2, 30, 2, 30, _T("CDTV\0"), 262144, 21, 0, 0, ROMTYPE_EXTCDTV, 0, 0, _T("391298-01"), + 0x30b54232, 0xED7E461D,0x1FFF3CDA,0x321631AE,0x42B80E3C,0xD4FA5EBB + }, + ALTROM(21, 1, 1, 131072, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x48e4d74f,0x54946054,0x2269e410,0x36018402,0xe1f6b855,0xfd89092b) + ALTROM(21, 1, 2, 131072, ROMTYPE_ODD | ROMTYPE_8BIT, 0x8a54f362,0x03df800f,0x032046fd,0x892f6e7e,0xec08b76d,0x33981e8c) - { _T("The Diagnostic 2.0 (Logica)"), 2, 0, 2, 0, _T("LOGICA\0"), 524288, 72, 0, 0, ROMTYPE_KICK | ROMTYPE_SPECIALKICK, 0, 0, NULL, - 0x8484f426, 0xba10d161,0x66b2e2d6,0x177c979c,0x99edf846,0x2b21651e }, + { + _T("A1000 bootstrap ROM"), 0, 0, 0, 0, _T("A1000\0"), 65536, 24, 0, 0, ROMTYPE_KICK, 0, 0, NULL, + 0x0b1ad2d0, 0xBA93B8B8,0x5CA0D83A,0x68225CC3,0x3B95050D,0x72D2FDD7 + }, + ALTROM(24, 1, 1, 8192, 0, 0x62f11c04, 0xC87F9FAD,0xA4EE4E69,0xF3CCA0C3,0x6193BE82,0x2B9F5FE6) + ALTROMPN(24, 2, 1, 4096, ROMTYPE_EVEN | ROMTYPE_8BIT, _T("252179-01"), 0x42553bc4,0x8855a97f,0x7a44e3f6,0x2d1c88d9,0x38fee1f4,0xc606af5b) + ALTROMPN(24, 2, 2, 4096, ROMTYPE_ODD | ROMTYPE_8BIT, _T("252180-01"), 0x8e5b9a37,0xd10f1564,0xb99f5ffe,0x108fa042,0x362e877f,0x569de2c3) - { _T("Freezer: Action Replay Mk I v1.00"), 1, 0, 1, 0, _T("AR\0"), 65536, 52, 0, 0, ROMTYPE_AR, 0, 1, NULL, - 0x2d921771, 0x1EAD9DDA,0x2DAD2914,0x6441F5EF,0x72183750,0x22E01248 }, - ALTROM(52, 1, 1, 32768, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x82d6eb87, 0x7c9bac11,0x28666017,0xeee6f019,0x63fb3890,0x7fbea355) - ALTROM(52, 1, 2, 32768, ROMTYPE_ODD | ROMTYPE_8BIT, 0x40ae490c, 0x81d8e432,0x01b73fd9,0x2e204ebd,0x68af8602,0xb62ce397) - { _T("Freezer: Action Replay Mk I v1.50"), 1, 50, 1, 50, _T("AR\0"), 65536, 25, 0, 0, ROMTYPE_AR, 0, 1, NULL, - 0xd4ce0675, 0x843B433B,0x2C56640E,0x045D5FDC,0x854DC6B1,0xA4964E7C }, - ALTROM(25, 1, 1, 32768, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x7fbd6de2, 0xb5f71a5c,0x09d65ecc,0xa8a3bc93,0x93558461,0xca190228) - ALTROM(25, 1, 2, 32768, ROMTYPE_ODD | ROMTYPE_8BIT, 0x43018069, 0xad8ff242,0xb2cbf125,0x1fc53a73,0x581cf57a,0xb69cee00) - { _T("Freezer: Action Replay Mk II v2.05"), 2, 5, 2, 5, _T("AR\0"), 131072, 26, 0, 0, ROMTYPE_AR, 0, 1, NULL, - 0x1287301f, 0xF6601DE8,0x888F0050,0x72BF562B,0x9F533BBC,0xAF1B0074 }, - { _T("Freezer: Action Replay Mk II v2.12"), 2, 12, 2, 12, _T("AR\0"), 131072, 27, 0, 0, ROMTYPE_AR, 0, 1, NULL, - 0x804d0361, 0x3194A07A,0x0A82D8B5,0xF2B6AEFA,0x3CA581D6,0x8BA8762B }, - { _T("Freezer: Action Replay Mk II v2.14"), 2, 14, 2, 14, _T("AR\0"), 131072, 28, 0, 0, ROMTYPE_AR, 0, 1, NULL, - 0x49650e4f, 0x255D6DF6,0x3A4EAB0A,0x838EB1A1,0x6A267B09,0x59DFF634 }, - { _T("Freezer: Action Replay Mk III v3.09"), 3, 9, 3, 9, _T("AR\0"), 262144, 29, 0, 0, ROMTYPE_AR, 0, 1, NULL, - 0x0ed9b5aa, 0x0FF3170A,0xBBF0CA64,0xC9DD93D6,0xEC0C7A01,0xB5436824 }, - ALTROM(29, 1, 1, 131072, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x2b84519f, 0x7841873b,0xf009d834,0x1dfa2794,0xb3751bac,0xf86adcc8) - ALTROM(29, 1, 2, 131072, ROMTYPE_ODD | ROMTYPE_8BIT, 0x1d35bd56, 0x6464be16,0x26b51949,0x9e76e4e3,0x409e8016,0x515d48b6) - { _T("Freezer: Action Replay Mk III v3.17"), 3, 17, 3, 17, _T("AR\0"), 262144, 30, 0, 0, ROMTYPE_AR, 0, 1, NULL, - 0xc8a16406, 0x5D4987C2,0xE3FFEA8B,0x1B02E314,0x30EF190F,0x2DB76542 }, - { _T("Freezer: Action Replay 1200"), 0, 0, 0, 0, _T("AR\0"), 262144, 47, 0, 0, ROMTYPE_AR, 0, 1, NULL, - 0x8d760101, 0x0F6AB834,0x2810094A,0xC0642F62,0xBA42F78B,0xC0B07E6A }, + { + _T("The Diagnostic 2.0 (Logica)"), 2, 0, 2, 0, _T("LOGICA\0"), 524288, 72, 0, 0, ROMTYPE_KICK | ROMTYPE_SPECIALKICK, 0, 0, NULL, + 0x8484f426, 0xba10d161,0x66b2e2d6,0x177c979c,0x99edf846,0x2b21651e + }, - { _T("Freezer: Action Cartridge Super IV Professional"), 0, 0, 0, 0, _T("SUPERIV\0"), 0, 62, 0, 0, ROMTYPE_SUPERIV, 0, 1, NULL, - 0xffffffff, 0, 0, 0, 0, 0, _T("SuperIV") }, - { _T("Freezer: Action Cart. Super IV Pro (+ROM v4.3)"), 4, 3, 4, 3, _T("SUPERIV\0"), 170368, 60, 0, 0, ROMTYPE_SUPERIV, 0, 1, NULL, - 0xe668a0be, 0x633A6E65,0xA93580B8,0xDDB0BE9C,0x9A64D4A1,0x7D4B4801 }, - { _T("Freezer: X-Power Professional 500 v1.2"), 1, 2, 1, 2, _T("XPOWER\0"), 131072, 65, 0, 0, ROMTYPE_XPOWER, 0, 1, NULL, - 0x9e70c231, 0xa2977a1c,0x41a8ca7d,0x4af4a168,0x726da542,0x179d5963 }, - ALTROM(65, 1, 1, 65536, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xf98742e4,0xe8e683ba,0xd8b38d1f,0x79f3ad83,0xa9e67c6f,0xa91dc96c) - ALTROM(65, 1, 2, 65536, ROMTYPE_ODD |ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xdfb9984b,0x8d6bdd49,0x469ec8e2,0x0143fbb3,0x72e92500,0x99f07910) - { _T("Freezer: X-Power Professional 500 v1.3"), 1, 2, 1, 2, _T("XPOWER\0"), 131072, 68, 0, 0, ROMTYPE_XPOWER, 0, 1, NULL, - 0x31e057f0, 0x84650266,0x465d1859,0x7fd71dee,0x00775930,0xb7e450ee }, - ALTROM(68, 1, 1, 65536, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0x0b2ce0c7,0x45ad5456,0x89192404,0x956f47ce,0xf66a5274,0x57ace33b) - ALTROM(68, 1, 2, 65536, ROMTYPE_ODD |ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0x34580c35,0x8ad42566,0x7364f238,0x978f4381,0x08f8d5ec,0x470e72ea) - { _T("Freezer: Nordic Power v1.5"), 1, 5, 1, 5, _T("NPOWER\0"), 65536, 69, 0, 0, ROMTYPE_NORDIC, 0, 1, NULL, - 0x83b4b21c, 0xc56ced25,0x506a5aab,0x3fa13813,0x4fc9e5ae,0x0f9d3709 }, - ALTROM(69, 1, 1, 32768, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xdd207174,0xae67652d,0x64f5db20,0x0f4b2110,0xee59567f,0xfbd90a1b) - ALTROM(69, 1, 2, 32768, ROMTYPE_ODD |ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0x8f93d85d,0x73c62d21,0x40c0c092,0x6315b702,0xdd5d0f05,0x3dad7fab) - { _T("Freezer: Nordic Power v2.0"), 2, 0, 2, 0, _T("NPOWER\0"), 65536, 67, 0, 0, ROMTYPE_NORDIC, 0, 1, NULL, - 0xa4db2906, 0x0aec68f7,0x25470c89,0x6b699ff4,0x6623dec5,0xc777466e }, - ALTROM(67, 1, 1, 32768, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xb21be46c,0x50dc607c,0xce976bbd,0x3841eaf0,0x591ddc7e,0xa1939ad2) - ALTROM(67, 1, 2, 32768, ROMTYPE_ODD |ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0x96057aed,0xdd9209e2,0x1d5edfc1,0xcdb52abe,0x93de0f35,0xc43da696) - { _T("Freezer: Nordic Power v3.0"), 3, 0, 3, 0, _T("NPOWER\0"), 65536, 70, 0, 0, ROMTYPE_NORDIC, 0, 1, NULL, - 0x72850aef, 0x59c91d1f,0xa8f118f9,0x0bdba05a,0x9ae788d7,0x7a6cc7c9 }, - ALTROM(70, 1, 1, 32768, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xf3330e1f,0x3a597db2,0xb7d11b6c,0xb8e13496,0xc215f223,0x88c4ca3c) - ALTROM(70, 1, 2, 32768, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xee58e0f9,0x4148f4cb,0xb42cec33,0x8ca144de,0xd4f54118,0xe0f185dd) - { _T("Freezer: HRTMon v2.33 (built-in)"), 0, 0, 0, 0, _T("HRTMON\0"), 0, 63, 0, 0, ROMTYPE_HRTMON, 0, 1, NULL, - 0xffffffff, 0, 0, 0, 0, 0, _T("HRTMon") }, + { + _T("Freezer: Action Replay Mk I v1.00"), 1, 0, 1, 0, _T("AR\0"), 65536, 52, 0, 0, ROMTYPE_AR, 0, 1, NULL, + 0x2d921771, 0x1EAD9DDA,0x2DAD2914,0x6441F5EF,0x72183750,0x22E01248 + }, + ALTROM(52, 1, 1, 32768, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x82d6eb87, 0x7c9bac11,0x28666017,0xeee6f019,0x63fb3890,0x7fbea355) + ALTROM(52, 1, 2, 32768, ROMTYPE_ODD | ROMTYPE_8BIT, 0x40ae490c, 0x81d8e432,0x01b73fd9,0x2e204ebd,0x68af8602,0xb62ce397) + { + _T("Freezer: Action Replay Mk I v1.50"), 1, 50, 1, 50, _T("AR\0"), 65536, 25, 0, 0, ROMTYPE_AR, 0, 1, NULL, + 0xd4ce0675, 0x843B433B,0x2C56640E,0x045D5FDC,0x854DC6B1,0xA4964E7C + }, + ALTROM(25, 1, 1, 32768, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x7fbd6de2, 0xb5f71a5c,0x09d65ecc,0xa8a3bc93,0x93558461,0xca190228) + ALTROM(25, 1, 2, 32768, ROMTYPE_ODD | ROMTYPE_8BIT, 0x43018069, 0xad8ff242,0xb2cbf125,0x1fc53a73,0x581cf57a,0xb69cee00) + { + _T("Freezer: Action Replay Mk II v2.05"), 2, 5, 2, 5, _T("AR\0"), 131072, 26, 0, 0, ROMTYPE_AR, 0, 1, NULL, + 0x1287301f, 0xF6601DE8,0x888F0050,0x72BF562B,0x9F533BBC,0xAF1B0074 + }, + { + _T("Freezer: Action Replay Mk II v2.12"), 2, 12, 2, 12, _T("AR\0"), 131072, 27, 0, 0, ROMTYPE_AR, 0, 1, NULL, + 0x804d0361, 0x3194A07A,0x0A82D8B5,0xF2B6AEFA,0x3CA581D6,0x8BA8762B + }, + { + _T("Freezer: Action Replay Mk II v2.14"), 2, 14, 2, 14, _T("AR\0"), 131072, 28, 0, 0, ROMTYPE_AR, 0, 1, NULL, + 0x49650e4f, 0x255D6DF6,0x3A4EAB0A,0x838EB1A1,0x6A267B09,0x59DFF634 + }, + { + _T("Freezer: Action Replay Mk III v3.09"), 3, 9, 3, 9, _T("AR\0"), 262144, 29, 0, 0, ROMTYPE_AR, 0, 1, NULL, + 0x0ed9b5aa, 0x0FF3170A,0xBBF0CA64,0xC9DD93D6,0xEC0C7A01,0xB5436824 + }, + ALTROM(29, 1, 1, 131072, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x2b84519f, 0x7841873b,0xf009d834,0x1dfa2794,0xb3751bac,0xf86adcc8) + ALTROM(29, 1, 2, 131072, ROMTYPE_ODD | ROMTYPE_8BIT, 0x1d35bd56, 0x6464be16,0x26b51949,0x9e76e4e3,0x409e8016,0x515d48b6) + { + _T("Freezer: Action Replay Mk III v3.17"), 3, 17, 3, 17, _T("AR\0"), 262144, 30, 0, 0, ROMTYPE_AR, 0, 1, NULL, + 0xc8a16406, 0x5D4987C2,0xE3FFEA8B,0x1B02E314,0x30EF190F,0x2DB76542 + }, + { + _T("Freezer: Action Replay 1200"), 0, 0, 0, 0, _T("AR\0"), 262144, 47, 0, 0, ROMTYPE_AR, 0, 1, NULL, + 0x8d760101, 0x0F6AB834,0x2810094A,0xC0642F62,0xBA42F78B,0xC0B07E6A + }, - { _T("A590/A2091 SCSI boot ROM"), 6, 0, 6, 0, _T("A590\0A2091\0"), 16384, 53, 0, 0, ROMTYPE_A2091BOOT, 0, 0, NULL, - 0x8396cf4e, 0x5E03BC61,0x8C862ABE,0x7BF79723,0xB4EEF4D2,0x1859A0F2 }, - ALTROMPN(53, 1, 1, 8192, ROMTYPE_ODD | ROMTYPE_8BIT, _T("390389-03"), 0xb0b8cf24,0xfcf40175,0x05f4d441,0x814b45d5,0x59c19eab,0x43816b30) - ALTROMPN(53, 1, 2, 8192, ROMTYPE_EVEN | ROMTYPE_8BIT, _T("390388-03"), 0x2e77bbff,0x8a098845,0x068f32cf,0xa4d34a27,0x8cd290f6,0x1d35a52c) - { _T("A590/A2091 SCSI boot ROM"), 6, 6, 6, 6, _T("A590\0A2091\0"), 16384, 54, 0, 0, ROMTYPE_A2091BOOT, 0, 0, NULL, - 0x33e00a7a, 0x739BB828,0xE874F064,0x9360F59D,0x26B5ED3F,0xBC99BB66 }, - ALTROMPN(54, 1, 1, 8192, ROMTYPE_ODD | ROMTYPE_8BIT, _T("390722-02"), 0xe536bbb2,0xfd7f8a6d,0xa18c1b02,0xd07eb990,0xc2467a24,0x183ede12) - ALTROMPN(54, 1, 2, 8192, ROMTYPE_EVEN | ROMTYPE_8BIT, _T("390721-02"), 0xc0871d25,0xe155f18a,0xbb90cf82,0x0589c15e,0x70559d3b,0x6b391af8) - { _T("A590/A2091 SCSI boot ROM"), 7, 0, 7, 0, _T("A590\0A2091\0"), 16384, 55, 0, 0, ROMTYPE_A2091BOOT, 0, 0, NULL, - 0x714a97a2, 0xE50F01BA,0xF2899892,0x85547863,0x72A82C33,0x3C91276E }, - ALTROMPN(55, 1, 1, 8192, ROMTYPE_ODD | ROMTYPE_8BIT, _T("390722-03"), 0xa9ccffed,0x149f5bd5,0x2e2d2990,0x4e3de483,0xb9ad7724,0x48e9278e) - ALTROMPN(55, 1, 2, 8192, ROMTYPE_EVEN | ROMTYPE_8BIT, _T("390721-03"), 0x2942747a,0xdbd7648e,0x79c75333,0x7ff3e4f4,0x91de224b,0xf05e6bb6) - { _T("A590/A2091 SCSI Guru boot ROM"), 6, 14, 6, 14, _T("A590\0A2091\0"), 32768, 56, 0, 0, ROMTYPE_A2091BOOT, 0, 0, NULL, - 0x04e52f93, 0x6DA21B6F,0x5E8F8837,0xD64507CD,0x8A4D5CDC,0xAC4F426B }, - { _T("A4091 SCSI boot ROM"), 40, 9, 40, 9, _T("A4091\0"), 32768, 57, 0, 0, ROMTYPE_A4091BOOT, 0, 0, NULL, - 0x00000000, 0, 0, 0, 0, 0 }, - { _T("A4091 SCSI boot ROM"), 40, 13, 40, 13, _T("A4091\0"), 32768, 58, 0, 0, ROMTYPE_A4091BOOT, 0, 0, _T("391592-02"), - 0x54cb9e85, 0x3CE66919,0xF6FD6797,0x4923A12D,0x91B730F1,0xFFB4A7BA }, + { + _T("Freezer: Action Cartridge Super IV Professional"), 0, 0, 0, 0, _T("SUPERIV\0"), 0, 62, 0, 0, ROMTYPE_SUPERIV, 0, 1, NULL, + 0xffffffff, 0, 0, 0, 0, 0, _T("SuperIV") + }, + { + _T("Freezer: Action Cart. Super IV Pro (+ROM v4.3)"), 4, 3, 4, 3, _T("SUPERIV\0"), 170368, 60, 0, 0, ROMTYPE_SUPERIV, 0, 1, NULL, + 0xe668a0be, 0x633A6E65,0xA93580B8,0xDDB0BE9C,0x9A64D4A1,0x7D4B4801 + }, + { + _T("Freezer: X-Power Professional 500 v1.2"), 1, 2, 1, 2, _T("XPOWER\0"), 131072, 65, 0, 0, ROMTYPE_XPOWER, 0, 1, NULL, + 0x9e70c231, 0xa2977a1c,0x41a8ca7d,0x4af4a168,0x726da542,0x179d5963 + }, + ALTROM(65, 1, 1, 65536, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xf98742e4,0xe8e683ba,0xd8b38d1f,0x79f3ad83,0xa9e67c6f,0xa91dc96c) + ALTROM(65, 1, 2, 65536, ROMTYPE_ODD |ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xdfb9984b,0x8d6bdd49,0x469ec8e2,0x0143fbb3,0x72e92500,0x99f07910) + { + _T("Freezer: X-Power Professional 500 v1.3"), 1, 2, 1, 2, _T("XPOWER\0"), 131072, 68, 0, 0, ROMTYPE_XPOWER, 0, 1, NULL, + 0x31e057f0, 0x84650266,0x465d1859,0x7fd71dee,0x00775930,0xb7e450ee + }, + ALTROM(68, 1, 1, 65536, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0x0b2ce0c7,0x45ad5456,0x89192404,0x956f47ce,0xf66a5274,0x57ace33b) + ALTROM(68, 1, 2, 65536, ROMTYPE_ODD |ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0x34580c35,0x8ad42566,0x7364f238,0x978f4381,0x08f8d5ec,0x470e72ea) + { + _T("Freezer: Nordic Power v1.5"), 1, 5, 1, 5, _T("NPOWER\0"), 65536, 69, 0, 0, ROMTYPE_NORDIC, 0, 1, NULL, + 0x83b4b21c, 0xc56ced25,0x506a5aab,0x3fa13813,0x4fc9e5ae,0x0f9d3709 + }, + ALTROM(69, 1, 1, 32768, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xdd207174,0xae67652d,0x64f5db20,0x0f4b2110,0xee59567f,0xfbd90a1b) + ALTROM(69, 1, 2, 32768, ROMTYPE_ODD |ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0x8f93d85d,0x73c62d21,0x40c0c092,0x6315b702,0xdd5d0f05,0x3dad7fab) + { + _T("Freezer: Nordic Power v2.0"), 2, 0, 2, 0, _T("NPOWER\0"), 65536, 67, 0, 0, ROMTYPE_NORDIC, 0, 1, NULL, + 0xa4db2906, 0x0aec68f7,0x25470c89,0x6b699ff4,0x6623dec5,0xc777466e + }, + ALTROM(67, 1, 1, 32768, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xb21be46c,0x50dc607c,0xce976bbd,0x3841eaf0,0x591ddc7e,0xa1939ad2) + ALTROM(67, 1, 2, 32768, ROMTYPE_ODD |ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0x96057aed,0xdd9209e2,0x1d5edfc1,0xcdb52abe,0x93de0f35,0xc43da696) + { + _T("Freezer: Nordic Power v3.0"), 3, 0, 3, 0, _T("NPOWER\0"), 65536, 70, 0, 0, ROMTYPE_NORDIC, 0, 1, NULL, + 0x72850aef, 0x59c91d1f,0xa8f118f9,0x0bdba05a,0x9ae788d7,0x7a6cc7c9 + }, + ALTROM(70, 1, 1, 32768, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xf3330e1f,0x3a597db2,0xb7d11b6c,0xb8e13496,0xc215f223,0x88c4ca3c) + ALTROM(70, 1, 2, 32768, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xee58e0f9,0x4148f4cb,0xb42cec33,0x8ca144de,0xd4f54118,0xe0f185dd) + { + _T("Freezer: HRTMon v2.33 (built-in)"), 0, 0, 0, 0, _T("HRTMON\0"), 0, 63, 0, 0, ROMTYPE_HRTMON, 0, 1, NULL, + 0xffffffff, 0, 0, 0, 0, 0, _T("HRTMon") + }, - { _T("Arcadia OnePlay 2.11"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 49, 0, 0, ROMTYPE_ARCADIABIOS, 0, 0 }, - { _T("Arcadia TenPlay 2.11"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 50, 0, 0, ROMTYPE_ARCADIABIOS, 0, 0 }, - { _T("Arcadia OnePlay 3.00"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 51, 0, 0, ROMTYPE_ARCADIABIOS, 0, 0 }, + { + _T("A590/A2091 SCSI boot ROM"), 6, 0, 6, 0, _T("A590\0A2091\0"), 16384, 53, 0, 0, ROMTYPE_A2091BOOT, 0, 0, NULL, + 0x8396cf4e, 0x5E03BC61,0x8C862ABE,0x7BF79723,0xB4EEF4D2,0x1859A0F2 + }, + ALTROMPN(53, 1, 1, 8192, ROMTYPE_ODD | ROMTYPE_8BIT, _T("390389-03"), 0xb0b8cf24,0xfcf40175,0x05f4d441,0x814b45d5,0x59c19eab,0x43816b30) + ALTROMPN(53, 1, 2, 8192, ROMTYPE_EVEN | ROMTYPE_8BIT, _T("390388-03"), 0x2e77bbff,0x8a098845,0x068f32cf,0xa4d34a27,0x8cd290f6,0x1d35a52c) + { + _T("A590/A2091 SCSI boot ROM"), 6, 6, 6, 6, _T("A590\0A2091\0"), 16384, 54, 0, 0, ROMTYPE_A2091BOOT, 0, 0, NULL, + 0x33e00a7a, 0x739BB828,0xE874F064,0x9360F59D,0x26B5ED3F,0xBC99BB66 + }, + ALTROMPN(54, 1, 1, 8192, ROMTYPE_ODD | ROMTYPE_8BIT, _T("390722-02"), 0xe536bbb2,0xfd7f8a6d,0xa18c1b02,0xd07eb990,0xc2467a24,0x183ede12) + ALTROMPN(54, 1, 2, 8192, ROMTYPE_EVEN | ROMTYPE_8BIT, _T("390721-02"), 0xc0871d25,0xe155f18a,0xbb90cf82,0x0589c15e,0x70559d3b,0x6b391af8) + { + _T("A590/A2091 SCSI boot ROM"), 7, 0, 7, 0, _T("A590\0A2091\0"), 16384, 55, 0, 0, ROMTYPE_A2091BOOT, 0, 0, NULL, + 0x714a97a2, 0xE50F01BA,0xF2899892,0x85547863,0x72A82C33,0x3C91276E + }, + ALTROMPN(55, 1, 1, 8192, ROMTYPE_ODD | ROMTYPE_8BIT, _T("390722-03"), 0xa9ccffed,0x149f5bd5,0x2e2d2990,0x4e3de483,0xb9ad7724,0x48e9278e) + ALTROMPN(55, 1, 2, 8192, ROMTYPE_EVEN | ROMTYPE_8BIT, _T("390721-03"), 0x2942747a,0xdbd7648e,0x79c75333,0x7ff3e4f4,0x91de224b,0xf05e6bb6) + { + _T("A590/A2091 SCSI Guru boot ROM"), 6, 14, 6, 14, _T("A590\0A2091\0"), 32768, 56, 0, 0, ROMTYPE_A2091BOOT, 0, 0, NULL, + 0x04e52f93, 0x6DA21B6F,0x5E8F8837,0xD64507CD,0x8A4D5CDC,0xAC4F426B + }, + { + _T("A4091 SCSI boot ROM"), 40, 9, 40, 9, _T("A4091\0"), 32768, 57, 0, 0, ROMTYPE_A4091BOOT, 0, 0, NULL, + 0x00000000, 0, 0, 0, 0, 0 + }, + { + _T("A4091 SCSI boot ROM"), 40, 13, 40, 13, _T("A4091\0"), 32768, 58, 0, 0, ROMTYPE_A4091BOOT, 0, 0, _T("391592-02"), + 0x54cb9e85, 0x3CE66919,0xF6FD6797,0x4923A12D,0x91B730F1,0xFFB4A7BA + }, - { _T("Arcadia SportTime Table Hockey"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 33, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, - { _T("Arcadia SportTime Bowling"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 34, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, - { _T("Arcadia World Darts"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 35, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, - { _T("Arcadia Magic Johnson's Fast Break"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 36, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, - { _T("Arcadia Leader Board Golf"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 37, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, - { _T("Arcadia Leader Board Golf (alt)"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 38, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, - { _T("Arcadia Ninja Mission"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 39, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, - { _T("Arcadia Road Wars"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 40, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, - { _T("Arcadia Sidewinder"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 41, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, - { _T("Arcadia Spot"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 42, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, - { _T("Arcadia Space Ranger"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 43, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, - { _T("Arcadia Xenon"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 44, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, - { _T("Arcadia World Trophy Soccer"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 45, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, + { _T("Arcadia OnePlay 2.11"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 49, 0, 0, ROMTYPE_ARCADIABIOS, 0, 0 }, + { _T("Arcadia TenPlay 2.11"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 50, 0, 0, ROMTYPE_ARCADIABIOS, 0, 0 }, + { _T("Arcadia OnePlay 3.00"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 51, 0, 0, ROMTYPE_ARCADIABIOS, 0, 0 }, - { NULL } + { _T("Arcadia SportTime Table Hockey"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 33, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, + { _T("Arcadia SportTime Bowling"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 34, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, + { _T("Arcadia World Darts"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 35, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, + { _T("Arcadia Magic Johnson's Fast Break"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 36, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, + { _T("Arcadia Leader Board Golf"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 37, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, + { _T("Arcadia Leader Board Golf (alt)"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 38, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, + { _T("Arcadia Ninja Mission"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 39, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, + { _T("Arcadia Road Wars"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 40, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, + { _T("Arcadia Sidewinder"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 41, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, + { _T("Arcadia Spot"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 42, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, + { _T("Arcadia Space Ranger"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 43, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, + { _T("Arcadia Xenon"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 44, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, + { _T("Arcadia World Trophy Soccer"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 45, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 }, + + { NULL } }; void romlist_clear (void) { - int i; - int mask = 0; - struct romdata *parent; - TCHAR *pn; + int i; + int mask = 0; + struct romdata *parent; + TCHAR *pn; - xfree (rl); - rl = 0; - romlist_cnt = 0; - parent = 0; - pn = NULL; - for (i = 0; roms[i].name; i++) { - struct romdata *rd = &roms[i]; - if (rd->group == 0) { - parent = rd; - mask = rd->type; - pn = parent->partnumber; - } else { - rd->type &= ~ROMTYPE_MASK; - rd->type |= mask & ROMTYPE_MASK; - if (rd->partnumber && !pn) { - TCHAR *newpn; - if (parent->partnumber == NULL) - parent->partnumber = my_strdup (_T("")); - newpn = xcalloc (TCHAR, _tcslen (parent->partnumber) + 1 + _tcslen (rd->partnumber) + 1); - if (_tcslen (parent->partnumber) > 0) { - _tcscpy (newpn, parent->partnumber); - _tcscat (newpn, _T("/")); - } - _tcscat (newpn, rd->partnumber); - xfree (parent->partnumber); - parent->partnumber = newpn; - } - } - } + xfree (rl); + rl = 0; + romlist_cnt = 0; + parent = 0; + pn = NULL; + for (i = 0; roms[i].name; i++) + { + struct romdata *rd = &roms[i]; + if (rd->group == 0) + { + parent = rd; + mask = rd->type; + pn = parent->partnumber; + } + else + { + rd->type &= ~ROMTYPE_MASK; + rd->type |= mask & ROMTYPE_MASK; + if (rd->partnumber && !pn) + { + TCHAR *newpn; + if (parent->partnumber == NULL) + parent->partnumber = my_strdup (_T("")); + newpn = xcalloc (TCHAR, _tcslen (parent->partnumber) + 1 + _tcslen (rd->partnumber) + 1); + if (_tcslen (parent->partnumber) > 0) + { + _tcscpy (newpn, parent->partnumber); + _tcscat (newpn, _T("/")); + } + _tcscat (newpn, rd->partnumber); + xfree (parent->partnumber); + parent->partnumber = newpn; + } + } + } } /* remove rom entries that need 2 or more roms but not everything required is present */ static void romlist_cleanup (void) { - int i = 0; - while (roms[i].name) { - struct romdata *rd = &roms[i]; - int grp = rd->group >> 16; - int ok = 1; - int j = i; - int k = i; - while (rd->name && (rd->group >> 16) == grp && grp > 0) { - struct romlist *rl = romlist_getrl (rd); - if (!rl) - ok = 0; - rd++; - j++; - } - if (ok == 0) { - while (i < j) { - struct romlist *rl2 = romlist_getrl (&roms[i]); - if (rl2) { - int cnt = romlist_cnt - (rl2 - rl) - 1; - write_log (_T("%s '%s' removed from romlist\n"), roms[k].name, rl2->path); - xfree (rl2->path); - if (cnt > 0) - memmove (rl2, rl2 + 1, cnt * sizeof (struct romlist)); - romlist_cnt--; - } - i++; - } - } - i++; - } - for (i = 0; i < romlist_cnt; i++) { - struct romlist *rll = &rl[i]; - //write_log (_T("%s (%s)\n"), rll->rd->name, rll->path); - } + int i = 0; + while (roms[i].name) + { + struct romdata *rd = &roms[i]; + int grp = rd->group >> 16; + int ok = 1; + int j = i; + int k = i; + while (rd->name && (rd->group >> 16) == grp && grp > 0) + { + struct romlist *rl = romlist_getrl (rd); + if (!rl) + ok = 0; + rd++; + j++; + } + if (ok == 0) + { + while (i < j) + { + struct romlist *rl2 = romlist_getrl (&roms[i]); + if (rl2) + { + int cnt = romlist_cnt - (rl2 - rl) - 1; + write_log (_T("%s '%s' removed from romlist\n"), roms[k].name, rl2->path); + xfree (rl2->path); + if (cnt > 0) + memmove (rl2, rl2 + 1, cnt * sizeof (struct romlist)); + romlist_cnt--; + } + i++; + } + } + i++; + } + for (i = 0; i < romlist_cnt; i++) + { + struct romlist *rll = &rl[i]; + //write_log (_T("%s (%s)\n"), rll->rd->name, rll->path); + } } struct romlist **getromlistbyident (int ver, int rev, int subver, int subrev, const TCHAR *model, int romflags, bool all) { - int i, j, ok, out, max; - struct romdata *rd; - struct romlist **rdout, *rltmp; - void *buf; - static struct romlist rlstatic; - - for (i = 0; roms[i].name; i++); - if (all) - max = i; - else - max = romlist_cnt; - buf = xmalloc (uae_u8, (sizeof (struct romlist*) + sizeof (struct romlist)) * (i + 1)); - rdout = (struct romlist **) buf; - rltmp = (struct romlist*)((uae_u8*)buf + (i + 1) * sizeof (struct romlist*)); - out = 0; - for (i = 0; i < max; i++) { - ok = 0; - if (!all) - rd = rl[i].rd; - else - rd = &roms[i]; - if (rd->group) - continue; - if (model && !_tcsicmp (model, rd->name)) - ok = 2; - if ((ver < 0 || rd->ver == ver) && (rev < 0 || rd->rev == rev)) { - if (subver >= 0) { - if (rd->subver == subver && (subrev < 0 || rd->subrev == subrev) && rd->subver > 0) - ok = 1; - } else { - ok = 1; - } - } - if (!ok) - continue; - if (model && ok < 2) { - TCHAR *p = rd->model; - ok = 0; - while (p && *p) { - if (!_tcscmp(rd->model, model)) { - ok = 1; - break; - } - p = p + _tcslen(p) + 1; - } - } - if (romflags && (rd->type & romflags) == 0) - ok = 0; - if (ok) { - if (all) { - rdout[out++] = rltmp; - rltmp->path = NULL; - rltmp->rd = rd; - rltmp++; - } else { - rdout[out++] = &rl[i]; - } - } - } - if (out == 0) { - xfree (rdout); - return NULL; - } - for (i = 0; i < out; i++) { - int v1 = rdout[i]->rd->subver * 1000 + rdout[i]->rd->subrev; - for (j = i + 1; j < out; j++) { - int v2 = rdout[j]->rd->subver * 1000 + rdout[j]->rd->subrev; - if (v1 < v2) { - struct romlist *rltmp = rdout[j]; - rdout[j] = rdout[i]; - rdout[i] = rltmp; - } - } - } - rdout[out] = NULL; - return rdout; + int i, j, ok, out, max; + struct romdata *rd; + struct romlist **rdout, *rltmp; + void *buf; + static struct romlist rlstatic; + + for (i = 0; roms[i].name; i++); + if (all) + max = i; + else + max = romlist_cnt; + buf = xmalloc (uae_u8, (sizeof (struct romlist*) + sizeof (struct romlist)) * (i + 1)); + rdout = (struct romlist **) buf; + rltmp = (struct romlist*)((uae_u8*)buf + (i + 1) * sizeof (struct romlist*)); + out = 0; + for (i = 0; i < max; i++) + { + ok = 0; + if (!all) + rd = rl[i].rd; + else + rd = &roms[i]; + if (rd->group) + continue; + if (model && !_tcsicmp (model, rd->name)) + ok = 2; + if ((ver < 0 || rd->ver == ver) && (rev < 0 || rd->rev == rev)) + { + if (subver >= 0) + { + if (rd->subver == subver && (subrev < 0 || rd->subrev == subrev) && rd->subver > 0) + ok = 1; + } + else + { + ok = 1; + } + } + if (!ok) + continue; + if (model && ok < 2) + { + TCHAR *p = rd->model; + ok = 0; + while (p && *p) + { + if (!_tcscmp(rd->model, model)) + { + ok = 1; + break; + } + p = p + _tcslen(p) + 1; + } + } + if (romflags && (rd->type & romflags) == 0) + ok = 0; + if (ok) + { + if (all) + { + rdout[out++] = rltmp; + rltmp->path = NULL; + rltmp->rd = rd; + rltmp++; + } + else + { + rdout[out++] = &rl[i]; + } + } + } + if (out == 0) + { + xfree (rdout); + return NULL; + } + for (i = 0; i < out; i++) + { + int v1 = rdout[i]->rd->subver * 1000 + rdout[i]->rd->subrev; + for (j = i + 1; j < out; j++) + { + int v2 = rdout[j]->rd->subver * 1000 + rdout[j]->rd->subrev; + if (v1 < v2) + { + struct romlist *rltmp = rdout[j]; + rdout[j] = rdout[i]; + rdout[i] = rltmp; + } + } + } + rdout[out] = NULL; + return rdout; } struct romdata *getarcadiarombyname (const TCHAR *name) { - int i; - for (i = 0; roms[i].name; i++) { - if (roms[i].group == 0 && (roms[i].type == ROMTYPE_ARCADIAGAME || roms[i].type == ROMTYPE_ARCADIAGAME)) { - TCHAR *p = roms[i].name; - p = p + _tcslen (p) + 1; - if (_tcslen (name) >= _tcslen (p) + 4) { - const TCHAR *p2 = name + _tcslen (name) - _tcslen (p) - 4; - if (!memcmp (p, p2, _tcslen (p)) && !memcmp (p2 + _tcslen (p2) - 4, ".zip", 4)) - return &roms[i]; - } - } - } - return NULL; + int i; + for (i = 0; roms[i].name; i++) + { + if (roms[i].group == 0 && (roms[i].type == ROMTYPE_ARCADIAGAME || roms[i].type == ROMTYPE_ARCADIAGAME)) + { + TCHAR *p = roms[i].name; + p = p + _tcslen (p) + 1; + if (_tcslen (name) >= _tcslen (p) + 4) + { + const TCHAR *p2 = name + _tcslen (name) - _tcslen (p) - 4; + if (!memcmp (p, p2, _tcslen (p)) && !memcmp (p2 + _tcslen (p2) - 4, ".zip", 4)) + return &roms[i]; + } + } + } + return NULL; } struct romlist **getarcadiaroms(void) { - int i, out, max; - void *buf; - struct romlist **rdout, *rltmp; + int i, out, max; + void *buf; + struct romlist **rdout, *rltmp; - max = 0; - for (i = 0; roms[i].name; i++) { - if (roms[i].group == 0 && (roms[i].type == ROMTYPE_ARCADIABIOS || roms[i].type == ROMTYPE_ARCADIAGAME)) - max++; - } - buf = xmalloc (uae_u8, (sizeof (struct romlist*) + sizeof (struct romlist)) * (max + 1)); - rdout = (struct romlist **)buf; - rltmp = (struct romlist*)((uae_u8*)buf + (max + 1) * sizeof (struct romlist*)); - out = 0; - for (i = 0; roms[i].name; i++) { - if (roms[i].group == 0 && (roms[i].type == ROMTYPE_ARCADIABIOS || roms[i].type == ROMTYPE_ARCADIAGAME)) { - rdout[out++] = rltmp; - rltmp->path = NULL; - rltmp->rd = &roms[i]; - rltmp++; - } - } - rdout[out] = NULL; - return rdout; + max = 0; + for (i = 0; roms[i].name; i++) + { + if (roms[i].group == 0 && (roms[i].type == ROMTYPE_ARCADIABIOS || roms[i].type == ROMTYPE_ARCADIAGAME)) + max++; + } + buf = xmalloc (uae_u8, (sizeof (struct romlist*) + sizeof (struct romlist)) * (max + 1)); + rdout = (struct romlist **)buf; + rltmp = (struct romlist*)((uae_u8*)buf + (max + 1) * sizeof (struct romlist*)); + out = 0; + for (i = 0; roms[i].name; i++) + { + if (roms[i].group == 0 && (roms[i].type == ROMTYPE_ARCADIABIOS || roms[i].type == ROMTYPE_ARCADIAGAME)) + { + rdout[out++] = rltmp; + rltmp->path = NULL; + rltmp->rd = &roms[i]; + rltmp++; + } + } + rdout[out] = NULL; + return rdout; } static int kickstart_checksum_do (uae_u8 *mem, int size) { - uae_u32 cksum = 0, prevck = 0; - int i; - for (i = 0; i < size; i+=4) { - uae_u32 data = mem[i]*65536*256 + mem[i+1]*65536 + mem[i+2]*256 + mem[i+3]; - cksum += data; - if (cksum < prevck) - cksum++; - prevck = cksum; - } - return cksum == 0xffffffff; + uae_u32 cksum = 0, prevck = 0; + int i; + for (i = 0; i < size; i+=4) + { + uae_u32 data = mem[i]*65536*256 + mem[i+1]*65536 + mem[i+2]*256 + mem[i+3]; + cksum += data; + if (cksum < prevck) + cksum++; + prevck = cksum; + } + return cksum == 0xffffffff; } #define ROM_KEY_NUM 4 -struct rom_key { - uae_u8 *key; - int size; +struct rom_key +{ + uae_u8 *key; + int size; }; static struct rom_key keyring[ROM_KEY_NUM]; static void addkey (uae_u8 *key, int size, const TCHAR *name) { - int i; + int i; - //write_log (_T("addkey(%08x,%d,'%s')\n"), key, size, name); - if (key == NULL || size == 0) { - xfree (key); - return; - } - for (i = 0; i < ROM_KEY_NUM; i++) { - if (keyring[i].key && keyring[i].size == size && !memcmp (keyring[i].key, key, size)) { - xfree (key); - //write_log (_T("key already in keyring\n")); - return; - } - } - for (i = 0; i < ROM_KEY_NUM; i++) { - if (keyring[i].key == NULL) - break; - } - if (i == ROM_KEY_NUM) { - xfree (key); - //write_log (_T("keyring full\n")); - return; - } - keyring[i].key = key; - keyring[i].size = size; - write_log (_T("ROM KEY '%s' %d bytes loaded\n"), name, size); + //write_log (_T("addkey(%08x,%d,'%s')\n"), key, size, name); + if (key == NULL || size == 0) + { + xfree (key); + return; + } + for (i = 0; i < ROM_KEY_NUM; i++) + { + if (keyring[i].key && keyring[i].size == size && !memcmp (keyring[i].key, key, size)) + { + xfree (key); + //write_log (_T("key already in keyring\n")); + return; + } + } + for (i = 0; i < ROM_KEY_NUM; i++) + { + if (keyring[i].key == NULL) + break; + } + if (i == ROM_KEY_NUM) + { + xfree (key); + //write_log (_T("keyring full\n")); + return; + } + keyring[i].key = key; + keyring[i].size = size; + write_log (_T("ROM KEY '%s' %d bytes loaded\n"), name, size); } void addkeyfile (const TCHAR *path) { - struct zfile *f; - int keysize; - uae_u8 *keybuf; + struct zfile *f; + int keysize; + uae_u8 *keybuf; - f = zfile_fopen (path, _T("rb"), ZFD_NORMAL); - if (!f) - return; - zfile_fseek (f, 0, SEEK_END); - keysize = zfile_ftell (f); - if (keysize > 0) { - zfile_fseek (f, 0, SEEK_SET); - keybuf = xmalloc (uae_u8, keysize); - zfile_fread (keybuf, 1, keysize, f); - addkey (keybuf, keysize, path); - } - zfile_fclose (f); + f = zfile_fopen (path, _T("rb"), ZFD_NORMAL); + if (!f) + return; + zfile_fseek (f, 0, SEEK_END); + keysize = zfile_ftell (f); + if (keysize > 0) + { + zfile_fseek (f, 0, SEEK_SET); + keybuf = xmalloc (uae_u8, keysize); + zfile_fread (keybuf, 1, keysize, f); + addkey (keybuf, keysize, path); + } + zfile_fclose (f); } void addkeydir (const TCHAR *path) { - TCHAR tmp[MAX_DPATH]; + TCHAR tmp[MAX_DPATH]; - _tcscpy (tmp, path); - if (zfile_exists (tmp)) { - int i; - for (i = _tcslen (tmp) - 1; i > 0; i--) { - if (tmp[i] == '\\' || tmp[i] == '/') - break; - } - tmp[i] = 0; - } - _tcscat (tmp, _T("/")); - _tcscat (tmp, _T("rom.key")); - addkeyfile (tmp); + _tcscpy (tmp, path); + if (zfile_exists (tmp)) + { + int i; + for (i = _tcslen (tmp) - 1; i > 0; i--) + { + if (tmp[i] == '\\' || tmp[i] == '/') + break; + } + tmp[i] = 0; + } + _tcscat (tmp, _T("/")); + _tcscat (tmp, _T("rom.key")); + addkeyfile (tmp); } int get_keyring (void) { - int i, num = 0; - for (i = 0; i < ROM_KEY_NUM; i++) { - if (keyring[i].key) - num++; - } - return num; + int i, num = 0; + for (i = 0; i < ROM_KEY_NUM; i++) + { + if (keyring[i].key) + num++; + } + return num; } int load_keyring (struct uae_prefs *p, const TCHAR *path) { - uae_u8 *keybuf; - int keysize; - TCHAR tmp[MAX_PATH], *d; - int keyids[] = { 0, 48, 73, -1 }; - int cnt, i; + uae_u8 *keybuf; + int keysize; + TCHAR tmp[MAX_PATH], *d; + int keyids[] = { 0, 48, 73, -1 }; + int cnt, i; - free_keyring(); - keybuf = target_load_keyfile(p, path, &keysize, tmp); - addkey (keybuf, keysize, tmp); - for (i = 0; keyids[i] >= 0; i++) { - struct romdata *rd = getromdatabyid (keyids[i]); - TCHAR *s; - if (rd) { - s = romlist_get (rd); - if (s) - addkeyfile (s); - } - } + free_keyring(); + keybuf = target_load_keyfile(p, path, &keysize, tmp); + addkey (keybuf, keysize, tmp); + for (i = 0; keyids[i] >= 0; i++) + { + struct romdata *rd = getromdatabyid (keyids[i]); + TCHAR *s; + if (rd) + { + s = romlist_get (rd); + if (s) + addkeyfile (s); + } + } - cnt = 0; - for (;;) { - keybuf = NULL; - keysize = 0; - tmp[0] = 0; - switch (cnt) - { - case 0: - if (path) - { - _tcscpy (tmp, path); - _tcscat (tmp, _T("rom.key")); - } - break; - case 1: - if (p) { - _tcscpy (tmp, p->path_rom); - _tcscat (tmp, _T("rom.key")); - } - break; - case 2: - _tcscpy (tmp, _T("roms/rom.key")); - break; - case 3: - _tcscpy (tmp, start_path_data); - _tcscat (tmp, _T("rom.key")); - break; - case 4: - _stprintf (tmp, _T("%s../shared/rom/rom.key"), start_path_data); - break; - case 5: - if (p) { - for (i = 0; uae_archive_extensions[i]; i++) { - if (_tcsstr (p->romfile, uae_archive_extensions[i])) - break; - } - if (!uae_archive_extensions[i]) { - _tcscpy (tmp, p->romfile); - d = _tcsrchr (tmp, '/'); - if (!d) - d = _tcsrchr (tmp, '\\'); - if (d) - _tcscpy (d + 1, _T("rom.key")); - } - } - break; - case 6: - return get_keyring (); - } - cnt++; - if (!tmp[0]) - continue; - addkeyfile (tmp); - } + cnt = 0; + for (;;) + { + keybuf = NULL; + keysize = 0; + tmp[0] = 0; + switch (cnt) + { + case 0: + if (path) + { + _tcscpy (tmp, path); + _tcscat (tmp, _T("rom.key")); + } + break; + case 1: + if (p) + { + _tcscpy (tmp, p->path_rom); + _tcscat (tmp, _T("rom.key")); + } + break; + case 2: + _tcscpy (tmp, _T("roms/rom.key")); + break; + case 3: + _tcscpy (tmp, start_path_data); + _tcscat (tmp, _T("rom.key")); + break; + case 4: + _stprintf (tmp, _T("%s../shared/rom/rom.key"), start_path_data); + break; + case 5: + if (p) + { + for (i = 0; uae_archive_extensions[i]; i++) + { + if (_tcsstr (p->romfile, uae_archive_extensions[i])) + break; + } + if (!uae_archive_extensions[i]) + { + _tcscpy (tmp, p->romfile); + d = _tcsrchr (tmp, '/'); + if (!d) + d = _tcsrchr (tmp, '\\'); + if (d) + _tcscpy (d + 1, _T("rom.key")); + } + } + break; + case 6: + return get_keyring (); + } + cnt++; + if (!tmp[0]) + continue; + addkeyfile (tmp); + } } void free_keyring (void) { - int i; - for (i = 0; i < ROM_KEY_NUM; i++) - xfree (keyring[i].key); - memset(keyring, 0, sizeof (struct rom_key) * ROM_KEY_NUM); + int i; + for (i = 0; i < ROM_KEY_NUM; i++) + xfree (keyring[i].key); + memset(keyring, 0, sizeof (struct rom_key) * ROM_KEY_NUM); } struct romdata *getromdatabyname (const TCHAR *name) { - TCHAR tmp[MAX_PATH]; - int i = 0; - while (roms[i].name) { - if (!roms[i].group) { - getromname (&roms[i], tmp); - if (!_tcscmp (tmp, name) || !_tcscmp (roms[i].name, name)) - return &roms[i]; + TCHAR tmp[MAX_PATH]; + int i = 0; + while (roms[i].name) + { + if (!roms[i].group) + { + getromname (&roms[i], tmp); + if (!_tcscmp (tmp, name) || !_tcscmp (roms[i].name, name)) + return &roms[i]; + } + i++; } - i++; - } - return 0; + return 0; } struct romdata *getromdatabyid (int id) { - int i = 0; - while (roms[i].name) { - if (id == roms[i].id && roms[i].group == 0) - return &roms[i]; - i++; - } - return 0; + int i = 0; + while (roms[i].name) + { + if (id == roms[i].id && roms[i].group == 0) + return &roms[i]; + i++; + } + return 0; } struct romdata *getromdatabyidgroup (int id, int group, int subitem) { - int i = 0; - group = (group << 16) | subitem; - while (roms[i].name) { - if (id == roms[i].id && roms[i].group == group) - return &roms[i]; - i++; - } - return 0; + int i = 0; + group = (group << 16) | subitem; + while (roms[i].name) + { + if (id == roms[i].id && roms[i].group == group) + return &roms[i]; + i++; + } + return 0; } STATIC_INLINE int notcrc32(uae_u32 crc32) { - if (crc32 == 0xffffffff || crc32 == 0x00000000) - return 1; - return 0; + if (crc32 == 0xffffffff || crc32 == 0x00000000) + return 1; + return 0; } struct romdata *getromdatabycrc (uae_u32 crc32) { - int i = 0; - while (roms[i].name) { - if (roms[i].group == 0 && crc32 == roms[i].crc32 && !notcrc32(crc32)) - return &roms[i]; - i++; - } - return 0; + int i = 0; + while (roms[i].name) + { + if (roms[i].group == 0 && crc32 == roms[i].crc32 && !notcrc32(crc32)) + return &roms[i]; + i++; + } + return 0; } static int cmpsha1 (const uae_u8 *s1, const struct romdata *rd) { - int i; + int i; - for (i = 0; i < SHA1_SIZE / 4; i++) { - uae_u32 v1 = (s1[0] << 24) | (s1[1] << 16) | (s1[2] << 8) | (s1[3] << 0); - uae_u32 v2 = rd->sha1[i]; - if (v1 != v2) - return -1; - s1 += 4; - } - return 0; + for (i = 0; i < SHA1_SIZE / 4; i++) + { + uae_u32 v1 = (s1[0] << 24) | (s1[1] << 16) | (s1[2] << 8) | (s1[3] << 0); + uae_u32 v2 = rd->sha1[i]; + if (v1 != v2) + return -1; + s1 += 4; + } + return 0; } static struct romdata *checkromdata (const uae_u8 *sha1, int size, uae_u32 mask) { - int i = 0; - while (roms[i].name) { - if (!notcrc32(roms[i].crc32) && roms[i].size >= size) { - if (roms[i].type & mask) { - if (!cmpsha1(sha1, &roms[i])) - return &roms[i]; - } - } - i++; - } - return NULL; + int i = 0; + while (roms[i].name) + { + if (!notcrc32(roms[i].crc32) && roms[i].size >= size) + { + if (roms[i].type & mask) + { + if (!cmpsha1(sha1, &roms[i])) + return &roms[i]; + } + } + i++; + } + return NULL; } int decode_cloanto_rom_do (uae_u8 *mem, int size, int real_size) { - int cnt, t, i; + int cnt, t, i; - for (i = ROM_KEY_NUM - 1; i >= 0; i--) { - uae_u8 sha1[SHA1_SIZE]; - struct romdata *rd; - int keysize = keyring[i].size; - uae_u8 *key = keyring[i].key; - if (!key) - continue; - for (t = cnt = 0; cnt < size; cnt++, t = (t + 1) % keysize) { - mem[cnt] ^= key[t]; - if (real_size == cnt + 1) - t = keysize - 1; + for (i = ROM_KEY_NUM - 1; i >= 0; i--) + { + uae_u8 sha1[SHA1_SIZE]; + struct romdata *rd; + int keysize = keyring[i].size; + uae_u8 *key = keyring[i].key; + if (!key) + continue; + for (t = cnt = 0; cnt < size; cnt++, t = (t + 1) % keysize) + { + mem[cnt] ^= key[t]; + if (real_size == cnt + 1) + t = keysize - 1; + } + if ((mem[2] == 0x4e && mem[3] == 0xf9) || (mem[0] == 0x11 && (mem[1] == 0x11 || mem[1] == 0x14))) + { + cloanto_rom = 1; + return 1; + } + get_sha1 (mem, size, sha1); + rd = checkromdata (sha1, size, -1); + if (rd) + { + if (rd->cloanto) + cloanto_rom = 1; + return 1; + } + if (i == 0) + break; + for (t = cnt = 0; cnt < size; cnt++, t = (t + 1) % keysize) + { + mem[cnt] ^= key[t]; + if (real_size == cnt + 1) + t = keysize - 1; + } } - if ((mem[2] == 0x4e && mem[3] == 0xf9) || (mem[0] == 0x11 && (mem[1] == 0x11 || mem[1] == 0x14))) { - cloanto_rom = 1; - return 1; - } - get_sha1 (mem, size, sha1); - rd = checkromdata (sha1, size, -1); - if (rd) { - if (rd->cloanto) - cloanto_rom = 1; - return 1; - } - if (i == 0) - break; - for (t = cnt = 0; cnt < size; cnt++, t = (t + 1) % keysize) { - mem[cnt] ^= key[t]; - if (real_size == cnt + 1) - t = keysize - 1; - } - } - return 0; + return 0; } static int decode_rekick_rom_do (uae_u8 *mem, int size, int real_size) { - uae_u32 d1 = 0xdeadfeed, d0; - int i; + uae_u32 d1 = 0xdeadfeed, d0; + int i; - for (i = 0; i < size / 8; i++) { - d0 = ((mem[i * 8 + 0] << 24) | (mem[i * 8 + 1] << 16) | (mem[i * 8 + 2] << 8) | mem[i * 8 + 3]); - d1 = d1 ^ d0; - mem[i * 8 + 0] = d1 >> 24; - mem[i * 8 + 1] = d1 >> 16; - mem[i * 8 + 2] = d1 >> 8; - mem[i * 8 + 3] = d1; - d1 = ((mem[i * 8 + 4] << 24) | (mem[i * 8 + 5] << 16) | (mem[i * 8 + 6] << 8) | mem[i * 8 + 7]); - d0 = d0 ^ d1; - mem[i * 8 + 4] = d0 >> 24; - mem[i * 8 + 5] = d0 >> 16; - mem[i * 8 + 6] = d0 >> 8; - mem[i * 8 + 7] = d0; - } - return 1; + for (i = 0; i < size / 8; i++) + { + d0 = ((mem[i * 8 + 0] << 24) | (mem[i * 8 + 1] << 16) | (mem[i * 8 + 2] << 8) | mem[i * 8 + 3]); + d1 = d1 ^ d0; + mem[i * 8 + 0] = d1 >> 24; + mem[i * 8 + 1] = d1 >> 16; + mem[i * 8 + 2] = d1 >> 8; + mem[i * 8 + 3] = d1; + d1 = ((mem[i * 8 + 4] << 24) | (mem[i * 8 + 5] << 16) | (mem[i * 8 + 6] << 8) | mem[i * 8 + 7]); + d0 = d0 ^ d1; + mem[i * 8 + 4] = d0 >> 24; + mem[i * 8 + 5] = d0 >> 16; + mem[i * 8 + 6] = d0 >> 8; + mem[i * 8 + 7] = d0; + } + return 1; } int decode_rom (uae_u8 *mem, int size, int mode, int real_size) { - if (mode == 1) { - if (!decode_cloanto_rom_do (mem, size, real_size)) { + if (mode == 1) + { + if (!decode_cloanto_rom_do (mem, size, real_size)) + { #ifndef SINGLEFILE - notify_user (NUMSG_NOROMKEY); + notify_user (NUMSG_NOROMKEY); #endif - return 0; + return 0; + } + return 1; } - return 1; - } else if (mode == 2) { - decode_rekick_rom_do (mem, size, real_size); - return 1; - } - return 0; + else if (mode == 2) + { + decode_rekick_rom_do (mem, size, real_size); + return 1; + } + return 0; } struct romdata *getromdatabydata (uae_u8 *rom, int size) { - uae_u8 sha1[SHA1_SIZE]; - uae_u8 tmp[4]; - uae_u8 *tmpbuf = NULL; - struct romdata *ret = NULL; + uae_u8 sha1[SHA1_SIZE]; + uae_u8 tmp[4]; + uae_u8 *tmpbuf = NULL; + struct romdata *ret = NULL; - if (size > 11 && !memcmp (rom, "AMIROMTYPE1", 11)) { - uae_u8 *tmpbuf = xmalloc (uae_u8, size); - int tmpsize = size - 11; - memcpy (tmpbuf, rom + 11, tmpsize); - decode_rom (tmpbuf, tmpsize, 1, tmpsize); - rom = tmpbuf; - size = tmpsize; - } - get_sha1 (rom, size, sha1); - ret = checkromdata(sha1, size, -1); - if (!ret) { - get_sha1 (rom, size / 2, sha1); - ret = checkromdata (sha1, size / 2, -1); - if (!ret) { - /* ignore AR IO-port range until we have full dump */ - memcpy (tmp, rom, 4); - memset (rom, 0, 4); - get_sha1 (rom, size, sha1); - ret = checkromdata (sha1, size, ROMTYPE_AR); - memcpy (rom, tmp, 4); - } - } - xfree (tmpbuf); - return ret; + if (size > 11 && !memcmp (rom, "AMIROMTYPE1", 11)) + { + uae_u8 *tmpbuf = xmalloc (uae_u8, size); + int tmpsize = size - 11; + memcpy (tmpbuf, rom + 11, tmpsize); + decode_rom (tmpbuf, tmpsize, 1, tmpsize); + rom = tmpbuf; + size = tmpsize; + } + get_sha1 (rom, size, sha1); + ret = checkromdata(sha1, size, -1); + if (!ret) + { + get_sha1 (rom, size / 2, sha1); + ret = checkromdata (sha1, size / 2, -1); + if (!ret) + { + /* ignore AR IO-port range until we have full dump */ + memcpy (tmp, rom, 4); + memset (rom, 0, 4); + get_sha1 (rom, size, sha1); + ret = checkromdata (sha1, size, ROMTYPE_AR); + memcpy (rom, tmp, 4); + } + } + xfree (tmpbuf); + return ret; } struct romdata *getromdatabyzfile (struct zfile *f) { - int pos, size; - uae_u8 *p; - struct romdata *rd; + int pos, size; + uae_u8 *p; + struct romdata *rd; - pos = zfile_ftell (f); - zfile_fseek (f, 0, SEEK_END); - size = zfile_ftell (f); - if (size > 2048 * 1024) - return NULL; - p = xmalloc (uae_u8, size); - if (!p) - return NULL; - memset (p, 0, size); - zfile_fseek (f, 0, SEEK_SET); - zfile_fread (p, 1, size, f); - zfile_fseek (f, pos, SEEK_SET); - rd = getromdatabydata (p, size); - xfree (p); - return rd; + pos = zfile_ftell (f); + zfile_fseek (f, 0, SEEK_END); + size = zfile_ftell (f); + if (size > 2048 * 1024) + return NULL; + p = xmalloc (uae_u8, size); + if (!p) + return NULL; + memset (p, 0, size); + zfile_fseek (f, 0, SEEK_SET); + zfile_fread (p, 1, size, f); + zfile_fseek (f, pos, SEEK_SET); + rd = getromdatabydata (p, size); + xfree (p); + return rd; } void getromname (const struct romdata *rd, TCHAR *name) { - name[0] = 0; - if (!rd) - return; - while (rd->group) - rd--; - _tcscat (name, rd->name); - if ((rd->subrev || rd->subver) && rd->subver != rd->ver) - _stprintf (name + _tcslen (name), _T(" rev %d.%d"), rd->subver, rd->subrev); - if (rd->size > 0) - _stprintf (name + _tcslen (name), _T(" (%dk)"), (rd->size + 1023) / 1024); - if (rd->partnumber && _tcslen (rd->partnumber) > 0) - _stprintf (name + _tcslen (name), _T(" [%s]"), rd->partnumber); + name[0] = 0; + if (!rd) + return; + while (rd->group) + rd--; + _tcscat (name, rd->name); + if ((rd->subrev || rd->subver) && rd->subver != rd->ver) + _stprintf (name + _tcslen (name), _T(" rev %d.%d"), rd->subver, rd->subrev); + if (rd->size > 0) + _stprintf (name + _tcslen (name), _T(" (%dk)"), (rd->size + 1023) / 1024); + if (rd->partnumber && _tcslen (rd->partnumber) > 0) + _stprintf (name + _tcslen (name), _T(" [%s]"), rd->partnumber); } struct romlist *getromlistbyromdata (const struct romdata *rd) { - int ids[2]; - - ids[0] = rd->id; - ids[1] = 0; - return getromlistbyids(ids); + int ids[2]; + + ids[0] = rd->id; + ids[1] = 0; + return getromlistbyids(ids); } struct romlist *getromlistbyids (const int *ids) { - struct romdata *rd; - int i, j; + struct romdata *rd; + int i, j; - i = 0; - while (ids[i] >= 0) { - rd = getromdatabyid (ids[i]); - if (rd) { - for (j = 0; j < romlist_cnt; j++) { - if (rl[j].rd->id == rd->id) - return &rl[j]; - } - } - i++; - } - return NULL; + i = 0; + while (ids[i] >= 0) + { + rd = getromdatabyid (ids[i]); + if (rd) + { + for (j = 0; j < romlist_cnt; j++) + { + if (rl[j].rd->id == rd->id) + return &rl[j]; + } + } + i++; + } + return NULL; } void romwarning (const int *ids) { - int i, exp; - TCHAR tmp1[MAX_DPATH], tmp2[MAX_DPATH]; - TCHAR tmp3[MAX_DPATH]; + int i, exp; + TCHAR tmp1[MAX_DPATH], tmp2[MAX_DPATH]; + TCHAR tmp3[MAX_DPATH]; - exp = 0; - tmp2[0] = 0; - i = 0; - while (ids[i] >= 0) { - struct romdata *rd = getromdatabyid (ids[i]); - getromname (rd, tmp1); - _tcscat (tmp2, _T("- ")); - _tcscat (tmp2, tmp1); - _tcscat (tmp2, _T("\n")); - if (rd->type & (ROMTYPE_A2091BOOT | ROMTYPE_A4091BOOT)) - exp++; - i++; - } - translate_message (exp ? NUMSG_EXPROMNEED : NUMSG_ROMNEED, tmp3); - gui_message (tmp3, tmp2); + exp = 0; + tmp2[0] = 0; + i = 0; + while (ids[i] >= 0) + { + struct romdata *rd = getromdatabyid (ids[i]); + getromname (rd, tmp1); + _tcscat (tmp2, _T("- ")); + _tcscat (tmp2, tmp1); + _tcscat (tmp2, _T("\n")); + if (rd->type & (ROMTYPE_A2091BOOT | ROMTYPE_A4091BOOT)) + exp++; + i++; + } + translate_message (exp ? NUMSG_EXPROMNEED : NUMSG_ROMNEED, tmp3); + gui_message (tmp3, tmp2); } static void byteswap (uae_u8 *buf, int size) { - int i; - for (i = 0; i < size; i += 2) { - uae_u8 t = buf[i]; - buf[i] = buf[i + 1]; - buf[i + 1] = t; - } + int i; + for (i = 0; i < size; i += 2) + { + uae_u8 t = buf[i]; + buf[i] = buf[i + 1]; + buf[i + 1] = t; + } } static void wordbyteswap (uae_u8 *buf, int size) { - int i; - for (i = 0; i < size; i += 4) { - uae_u8 t; - t = buf[i + 0]; - buf[i + 0] = buf[i + 2]; - buf[i + 2] = t; - t = buf[i + 1]; - buf[i + 1] = buf[i + 3]; - buf[i + 3] = t; - } + int i; + for (i = 0; i < size; i += 4) + { + uae_u8 t; + t = buf[i + 0]; + buf[i + 0] = buf[i + 2]; + buf[i + 2] = t; + t = buf[i + 1]; + buf[i + 1] = buf[i + 3]; + buf[i + 3] = t; + } } static void mergecd32 (uae_u8 *dst, uae_u8 *src, int size) { - int i, k; - k = 0; - for (i = 0; i < size / 2; i += 2) { - int j = i + size / 2; - dst[k + 1] = src[i + 0]; - dst[k + 0] = src[i + 1]; - dst[k + 3] = src[j + 0]; - dst[k + 2] = src[j + 1]; - k += 4; - } + int i, k; + k = 0; + for (i = 0; i < size / 2; i += 2) + { + int j = i + size / 2; + dst[k + 1] = src[i + 0]; + dst[k + 0] = src[i + 1]; + dst[k + 3] = src[j + 0]; + dst[k + 2] = src[j + 1]; + k += 4; + } #if 0 - { - struct zfile *f; - f = zfile_fopen ("c:\\d\\1.rom","wb", ZFD_NORMAL); - zfile_fwrite (dst, 1, size, f); - zfile_fclose(f); - } + { + struct zfile *f; + f = zfile_fopen ("c:\\d\\1.rom","wb", ZFD_NORMAL); + zfile_fwrite (dst, 1, size, f); + zfile_fclose(f); + } #endif } @@ -1026,293 +1230,329 @@ static void descramble (const struct romdata *rd, uae_u8 *data, int size, int od static int read_rom_file (uae_u8 *buf, const struct romdata *rd) { - struct zfile *zf; - struct romlist *rl = romlist_getrl (rd); - uae_char tmp[11]; + struct zfile *zf; + struct romlist *rl = romlist_getrl (rd); + uae_char tmp[11]; - if (!rl || _tcslen (rl->path) == 0) - return 0; - zf = zfile_fopen (rl->path, _T("rb"), ZFD_NORMAL); - if (!zf) - return 0; - addkeydir (rl->path); - zfile_fread (tmp, sizeof tmp, 1, zf); - if (!memcmp (tmp, "AMIROMTYPE1", sizeof tmp)) { - zfile_fread (buf, rd->size, 1, zf); - decode_cloanto_rom_do (buf, rd->size, rd->size); - } else { - memcpy (buf, tmp, sizeof tmp); - zfile_fread (buf + sizeof tmp, rd->size - sizeof (tmp), 1, zf); - } - zfile_fclose (zf); - return 1; + if (!rl || _tcslen (rl->path) == 0) + return 0; + zf = zfile_fopen (rl->path, _T("rb"), ZFD_NORMAL); + if (!zf) + return 0; + addkeydir (rl->path); + zfile_fread (tmp, sizeof tmp, 1, zf); + if (!memcmp (tmp, "AMIROMTYPE1", sizeof tmp)) + { + zfile_fread (buf, rd->size, 1, zf); + decode_cloanto_rom_do (buf, rd->size, rd->size); + } + else + { + memcpy (buf, tmp, sizeof tmp); + zfile_fread (buf + sizeof tmp, rd->size - sizeof (tmp), 1, zf); + } + zfile_fclose (zf); + return 1; } struct zfile *read_rom (struct romdata **prd) { - struct romdata *rd2 = *prd; - struct romdata *rd = *prd; - TCHAR *name; - int id = rd->id; - uae_u32 crc32; - int size; - uae_u8 *buf, *buf2; + struct romdata *rd2 = *prd; + struct romdata *rd = *prd; + TCHAR *name; + int id = rd->id; + uae_u32 crc32; + int size; + uae_u8 *buf, *buf2; - /* find parent node */ - for (;;) { - if (rd2 == &roms[0]) - break; - if (rd2[-1].id != id) - break; - rd2--; - } - *prd = rd2; - size = rd2->size; - crc32 = rd2->crc32; - name = rd->name; - buf = xmalloc (uae_u8, size * 2); - memset (buf, 0xff, size * 2); - if (!buf) - return NULL; - buf2 = buf + size; - while (rd->id == id) { - int i, j, add; - int ok = 0; - uae_u32 flags = rd->type; - int odd = (flags & ROMTYPE_ODD) ? 1 : 0; + /* find parent node */ + for (;;) + { + if (rd2 == &roms[0]) + break; + if (rd2[-1].id != id) + break; + rd2--; + } + *prd = rd2; + size = rd2->size; + crc32 = rd2->crc32; + name = rd->name; + buf = xmalloc (uae_u8, size * 2); + memset (buf, 0xff, size * 2); + if (!buf) + return NULL; + buf2 = buf + size; + while (rd->id == id) + { + int i, j, add; + int ok = 0; + uae_u32 flags = rd->type; + int odd = (flags & ROMTYPE_ODD) ? 1 : 0; - add = 0; - for (i = 0; i < 2; i++) { - memset (buf, 0, size); - if (!(flags & (ROMTYPE_EVEN | ROMTYPE_ODD))) { - read_rom_file (buf, rd); - if (flags & ROMTYPE_CD32) { - memcpy (buf2, buf, size); - mergecd32 (buf, buf2, size); - } - add = 1; - i++; - } else { - int romsize = size / 2; - if (i) - odd = !odd; - if (flags & ROMTYPE_8BIT) { - read_rom_file (buf2, rd); - if (flags & ROMTYPE_BYTESWAP) - byteswap (buf2, romsize); - if (flags & ROMTYPE_SCRAMBLED) - descramble (rd, buf2, romsize, odd); - for (j = 0; j < size; j += 2) - buf[j + odd] = buf2[j / 2]; - read_rom_file (buf2, rd + 1); - if (flags & ROMTYPE_BYTESWAP) - byteswap (buf2, romsize); - if (flags & ROMTYPE_SCRAMBLED) - descramble (rd + 1, buf2, romsize, !odd); - for (j = 0; j < size; j += 2) - buf[j + (1 - odd)] = buf2[j / 2]; - } else { - read_rom_file (buf2, rd); - if (flags & ROMTYPE_BYTESWAP) - byteswap (buf2, romsize); - if (flags & ROMTYPE_SCRAMBLED) - descramble (rd, buf2, romsize, odd); - for (j = 0; j < size; j += 4) { - buf[j + 2 * odd + 0] = buf2[j / 2 + 0]; - buf[j + 2 * odd + 1] = buf2[j / 2 + 1]; - } - read_rom_file (buf2, rd + 1); - if (flags & ROMTYPE_BYTESWAP) - byteswap (buf2, romsize); - if (flags & ROMTYPE_SCRAMBLED) - descramble (rd + 1, buf2, romsize, !odd); - for (j = 0; j < size; j += 4) { - buf[j + 2 * (1 - odd) + 0] = buf2[j / 2 + 0]; - buf[j + 2 * (1 - odd) + 1] = buf2[j / 2 + 1]; - } - } - add = 2; - } - if (get_crc32 (buf, size) == crc32) { - ok = 1; - } - if (!ok && (rd->type & ROMTYPE_AR)) { - uae_u8 tmp[2]; - tmp[0] = buf[0]; - tmp[1] = buf[1]; - buf[0] = buf[1] = 0; - if (get_crc32 (buf, size) == crc32) - ok = 1; - buf[0] = tmp[0]; - buf[1] = tmp[1]; - } - if (!ok) { - /* perhaps it is byteswapped without byteswap entry? */ - byteswap (buf, size); - if (get_crc32 (buf, size) == crc32) - ok = 1; - } - if (ok) { - struct zfile *zf = zfile_fopen_empty (NULL, name, size); - if (zf) { - zfile_fwrite (buf, size, 1, zf); - zfile_fseek (zf, 0, SEEK_SET); - } - xfree (buf); - return zf; - } - } - rd += add; + add = 0; + for (i = 0; i < 2; i++) + { + memset (buf, 0, size); + if (!(flags & (ROMTYPE_EVEN | ROMTYPE_ODD))) + { + read_rom_file (buf, rd); + if (flags & ROMTYPE_CD32) + { + memcpy (buf2, buf, size); + mergecd32 (buf, buf2, size); + } + add = 1; + i++; + } + else + { + int romsize = size / 2; + if (i) + odd = !odd; + if (flags & ROMTYPE_8BIT) + { + read_rom_file (buf2, rd); + if (flags & ROMTYPE_BYTESWAP) + byteswap (buf2, romsize); + if (flags & ROMTYPE_SCRAMBLED) + descramble (rd, buf2, romsize, odd); + for (j = 0; j < size; j += 2) + buf[j + odd] = buf2[j / 2]; + read_rom_file (buf2, rd + 1); + if (flags & ROMTYPE_BYTESWAP) + byteswap (buf2, romsize); + if (flags & ROMTYPE_SCRAMBLED) + descramble (rd + 1, buf2, romsize, !odd); + for (j = 0; j < size; j += 2) + buf[j + (1 - odd)] = buf2[j / 2]; + } + else + { + read_rom_file (buf2, rd); + if (flags & ROMTYPE_BYTESWAP) + byteswap (buf2, romsize); + if (flags & ROMTYPE_SCRAMBLED) + descramble (rd, buf2, romsize, odd); + for (j = 0; j < size; j += 4) + { + buf[j + 2 * odd + 0] = buf2[j / 2 + 0]; + buf[j + 2 * odd + 1] = buf2[j / 2 + 1]; + } + read_rom_file (buf2, rd + 1); + if (flags & ROMTYPE_BYTESWAP) + byteswap (buf2, romsize); + if (flags & ROMTYPE_SCRAMBLED) + descramble (rd + 1, buf2, romsize, !odd); + for (j = 0; j < size; j += 4) + { + buf[j + 2 * (1 - odd) + 0] = buf2[j / 2 + 0]; + buf[j + 2 * (1 - odd) + 1] = buf2[j / 2 + 1]; + } + } + add = 2; + } + if (get_crc32 (buf, size) == crc32) + { + ok = 1; + } + if (!ok && (rd->type & ROMTYPE_AR)) + { + uae_u8 tmp[2]; + tmp[0] = buf[0]; + tmp[1] = buf[1]; + buf[0] = buf[1] = 0; + if (get_crc32 (buf, size) == crc32) + ok = 1; + buf[0] = tmp[0]; + buf[1] = tmp[1]; + } + if (!ok) + { + /* perhaps it is byteswapped without byteswap entry? */ + byteswap (buf, size); + if (get_crc32 (buf, size) == crc32) + ok = 1; + } + if (ok) + { + struct zfile *zf = zfile_fopen_empty (NULL, name, size); + if (zf) + { + zfile_fwrite (buf, size, 1, zf); + zfile_fseek (zf, 0, SEEK_SET); + } + xfree (buf); + return zf; + } + } + rd += add; - } - xfree (buf); - return NULL; + } + xfree (buf); + return NULL; } struct zfile *rom_fopen (const TCHAR *name, const TCHAR *mode, int mask) { - struct zfile *f; - //write_log (_T("attempting to load '%s'\n"), name); - f = zfile_fopen (name, mode, mask); - //write_log (_T("=%p\n"), f); - return f; + struct zfile *f; + //write_log (_T("attempting to load '%s'\n"), name); + f = zfile_fopen (name, mode, mask); + //write_log (_T("=%p\n"), f); + return f; } struct zfile *read_rom_name (const TCHAR *filename) { - int i; - struct zfile *f; + int i; + struct zfile *f; - for (i = 0; i < romlist_cnt; i++) { - if (!_tcsicmp (filename, rl[i].path)) { - struct romdata *rd = rl[i].rd; - f = read_rom (&rd); - if (f) - return f; - } - } - f = rom_fopen (filename, _T("rb"), ZFD_NORMAL); - if (f) { - uae_u8 tmp[11]; - zfile_fread (tmp, sizeof tmp, 1, f); - if (!memcmp (tmp, "AMIROMTYPE1", sizeof tmp)) { - struct zfile *df; - int size; - uae_u8 *buf; - addkeydir (filename); - zfile_fseek (f, 0, SEEK_END); - size = zfile_ftell (f) - sizeof tmp; - zfile_fseek (f, sizeof tmp, SEEK_SET); - buf = xmalloc (uae_u8, size); - zfile_fread (buf, size, 1, f); - df = zfile_fopen_empty (f, _T("tmp.rom"), size); - decode_cloanto_rom_do (buf, size, size); - zfile_fwrite (buf, size, 1, df); - zfile_fclose (f); - xfree (buf); - zfile_fseek (df, 0, SEEK_SET); - f = df; - } else { - zfile_fseek (f, -((int)sizeof tmp), SEEK_CUR); - } - } - return f; + for (i = 0; i < romlist_cnt; i++) + { + if (!_tcsicmp (filename, rl[i].path)) + { + struct romdata *rd = rl[i].rd; + f = read_rom (&rd); + if (f) + return f; + } + } + f = rom_fopen (filename, _T("rb"), ZFD_NORMAL); + if (f) + { + uae_u8 tmp[11]; + zfile_fread (tmp, sizeof tmp, 1, f); + if (!memcmp (tmp, "AMIROMTYPE1", sizeof tmp)) + { + struct zfile *df; + int size; + uae_u8 *buf; + addkeydir (filename); + zfile_fseek (f, 0, SEEK_END); + size = zfile_ftell (f) - sizeof tmp; + zfile_fseek (f, sizeof tmp, SEEK_SET); + buf = xmalloc (uae_u8, size); + zfile_fread (buf, size, 1, f); + df = zfile_fopen_empty (f, _T("tmp.rom"), size); + decode_cloanto_rom_do (buf, size, size); + zfile_fwrite (buf, size, 1, df); + zfile_fclose (f); + xfree (buf); + zfile_fseek (df, 0, SEEK_SET); + f = df; + } + else + { + zfile_fseek (f, -((int)sizeof tmp), SEEK_CUR); + } + } + return f; } struct zfile *read_rom_name_guess (const TCHAR *filename) { - int i, j; - struct zfile *f; - const TCHAR *name; + int i, j; + struct zfile *f; + const TCHAR *name; - for (i = _tcslen (filename) - 1; i >= 0; i--) { - if (filename[i] == '/' || filename[i] == '\\') - break; - } - if (i < 0) - return NULL; - name = &filename[i]; + for (i = _tcslen (filename) - 1; i >= 0; i--) + { + if (filename[i] == '/' || filename[i] == '\\') + break; + } + if (i < 0) + return NULL; + name = &filename[i]; - for (i = 0; i < romlist_cnt; i++) { - TCHAR *n = rl[i].path; - for (j = _tcslen (n) - 1; j >= 0; j--) { - if (n[j] == '/' || n[j] == '\\') - break; - } - if (j < 0) - continue; - if (!_tcsicmp (name, n + j)) { - struct romdata *rd = rl[i].rd; - f = read_rom (&rd); - if (f) { - write_log (_T("ROM %s not found, using %s\n"), filename, rl[i].path); - return f; - } - } - } - return NULL; + for (i = 0; i < romlist_cnt; i++) + { + TCHAR *n = rl[i].path; + for (j = _tcslen (n) - 1; j >= 0; j--) + { + if (n[j] == '/' || n[j] == '\\') + break; + } + if (j < 0) + continue; + if (!_tcsicmp (name, n + j)) + { + struct romdata *rd = rl[i].rd; + f = read_rom (&rd); + if (f) + { + write_log (_T("ROM %s not found, using %s\n"), filename, rl[i].path); + return f; + } + } + } + return NULL; } void kickstart_fix_checksum (uae_u8 *mem, int size) { - uae_u32 cksum = 0, prevck = 0; - int i, ch = size == 524288 ? 0x7ffe8 : (size == 262144 ? 0x3ffe8 : 0x3e); + uae_u32 cksum = 0, prevck = 0; + int i, ch = size == 524288 ? 0x7ffe8 : (size == 262144 ? 0x3ffe8 : 0x3e); - mem[ch] = 0; - mem[ch + 1] = 0; - mem[ch + 2] = 0; - mem[ch + 3] = 0; - for (i = 0; i < size; i+=4) { - uae_u32 data = (mem[i] << 24) | (mem[i + 1] << 16) | (mem[i + 2] << 8) | mem[i + 3]; - cksum += data; - if (cksum < prevck) - cksum++; - prevck = cksum; - } - cksum ^= 0xffffffff; - mem[ch++] = cksum >> 24; - mem[ch++] = cksum >> 16; - mem[ch++] = cksum >> 8; - mem[ch++] = cksum >> 0; + mem[ch] = 0; + mem[ch + 1] = 0; + mem[ch + 2] = 0; + mem[ch + 3] = 0; + for (i = 0; i < size; i+=4) + { + uae_u32 data = (mem[i] << 24) | (mem[i + 1] << 16) | (mem[i + 2] << 8) | mem[i + 3]; + cksum += data; + if (cksum < prevck) + cksum++; + prevck = cksum; + } + cksum ^= 0xffffffff; + mem[ch++] = cksum >> 24; + mem[ch++] = cksum >> 16; + mem[ch++] = cksum >> 8; + mem[ch++] = cksum >> 0; } int kickstart_checksum (uae_u8 *mem, int size) { - if (!kickstart_checksum_do (mem, size)) { + if (!kickstart_checksum_do (mem, size)) + { #ifndef SINGLEFILE - notify_user (NUMSG_KSROMCRCERROR); + notify_user (NUMSG_KSROMCRCERROR); #endif - return 0; - } - return 1; + return 0; + } + return 1; } int configure_rom (struct uae_prefs *p, const int *rom, int msg) { - struct romdata *rd; - TCHAR *path = 0; - int i; + struct romdata *rd; + TCHAR *path = 0; + int i; - i = 0; - while (rom[i] >= 0) { - rd = getromdatabyid (rom[i]); - if (!rd) { - i++; - continue; - } - path = romlist_get (rd); - if (path) - break; - i++; - } - if (!path) { - if (msg) - romwarning(rom); - return 0; - } - if (rd->type & (ROMTYPE_KICK | ROMTYPE_KICKCD32)) - _tcscpy (p->romfile, path); - if (rd->type & (ROMTYPE_EXTCD32 | ROMTYPE_EXTCDTV | ROMTYPE_ARCADIABIOS)) - _tcscpy (p->romextfile, path); - return 1; + i = 0; + while (rom[i] >= 0) + { + rd = getromdatabyid (rom[i]); + if (!rd) + { + i++; + continue; + } + path = romlist_get (rd); + if (path) + break; + i++; + } + if (!path) + { + if (msg) + romwarning(rom); + return 0; + } + if (rd->type & (ROMTYPE_KICK | ROMTYPE_KICKCD32)) + _tcscpy (p->romfile, path); + if (rd->type & (ROMTYPE_EXTCD32 | ROMTYPE_EXTCDTV | ROMTYPE_ARCADIABIOS)) + _tcscpy (p->romextfile, path); + return 1; } diff --git a/src/savestate.cpp b/src/savestate.cpp index b1d437fe..9c7dc343 100644 --- a/src/savestate.cpp +++ b/src/savestate.cpp @@ -1,54 +1,54 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Save/restore emulator state - * - * (c) 1999-2001 Toni Wilen - * - * see below for ASF-structure - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Save/restore emulator state + * + * (c) 1999-2001 Toni Wilen + * + * see below for ASF-structure + */ - /* Features: - * - * - full CPU state (68000/68010/68020/68030/68040/68060) - * - FPU (68881/68882/68040/68060) - * - full CIA-A and CIA-B state (with all internal registers) - * - saves all custom registers and audio internal state. - * - Chip, Bogo, Fast, Z3 and Picasso96 RAM supported - * - disk drive type, imagefile, track and motor state - * - Kickstart ROM version, address and size is saved. This data is not used during restore yet. - * - Action Replay state is saved - */ +/* Features: + * + * - full CPU state (68000/68010/68020/68030/68040/68060) + * - FPU (68881/68882/68040/68060) + * - full CIA-A and CIA-B state (with all internal registers) + * - saves all custom registers and audio internal state. + * - Chip, Bogo, Fast, Z3 and Picasso96 RAM supported + * - disk drive type, imagefile, track and motor state + * - Kickstart ROM version, address and size is saved. This data is not used during restore yet. + * - Action Replay state is saved + */ - /* Notes: - * - * - blitter state is not saved, blitter is forced to finish immediately if it - * was active - * - disk DMA state is completely saved - * - does not ask for statefile name and description. Currently uses DF0's disk - * image name (".adf" is replaced with ".asf") - * - only Amiga state is restored, harddisk support, autoconfig, expansion boards etc.. - * are not saved/restored (and probably never will). - * - use this for saving games that can't be saved to disk - */ +/* Notes: + * + * - blitter state is not saved, blitter is forced to finish immediately if it + * was active + * - disk DMA state is completely saved + * - does not ask for statefile name and description. Currently uses DF0's disk + * image name (".adf" is replaced with ".asf") + * - only Amiga state is restored, harddisk support, autoconfig, expansion boards etc.. + * are not saved/restored (and probably never will). + * - use this for saving games that can't be saved to disk + */ - /* Usage : - * - * save: - * - * set savestate_state = STATE_DOSAVE, savestate_filename = "..." - * - * restore: - * - * set savestate_state = STATE_DORESTORE, savestate_filename = "..." - * - */ +/* Usage : + * + * save: + * + * set savestate_state = STATE_DOSAVE, savestate_filename = "..." + * + * restore: + * + * set savestate_state = STATE_DORESTORE, savestate_filename = "..." + * + */ #include "sysconfig.h" #include "sysdeps.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "zfile.h" #include "autoconf.h" #include "custom.h" @@ -71,34 +71,36 @@ TCHAR savestate_fname[MAX_DPATH]; static void state_incompatible_warn(void) { - static int warned; - int dowarn = 0; - int i; + static int warned; + int dowarn = 0; + int i; #ifdef BSDSOCKET - if (currprefs.socket_emu) - dowarn = 1; + if (currprefs.socket_emu) + dowarn = 1; #endif #ifdef SCSIEMU - if (currprefs.scsi) - dowarn = 1; + if (currprefs.scsi) + dowarn = 1; #endif #ifdef CATWEASEL - if (currprefs.catweasel) - dowarn = 1; + if (currprefs.catweasel) + dowarn = 1; #endif #ifdef FILESYS - for(i = 0; i < currprefs.mountitems; i++) { - struct mountedinfo mi; - int type = get_filesys_unitconfig (&currprefs, i, &mi); - if (mi.ismounted && type != FILESYS_VIRTUAL && type != FILESYS_HARDFILE && type != FILESYS_HARDFILE_RDB) - dowarn = 1; - } + for(i = 0; i < currprefs.mountitems; i++) + { + struct mountedinfo mi; + int type = get_filesys_unitconfig (&currprefs, i, &mi); + if (mi.ismounted && type != FILESYS_VIRTUAL && type != FILESYS_HARDFILE && type != FILESYS_HARDFILE_RDB) + dowarn = 1; + } #endif - if (!warned && dowarn) { - warned = 1; - notify_user (NUMSG_STATEHD); - } + if (!warned && dowarn) + { + warned = 1; + notify_user (NUMSG_STATEHD); + } } /* functions for reading/writing bytes, shorts and longs in big-endian @@ -106,514 +108,552 @@ static void state_incompatible_warn(void) void save_u32_func (uae_u8 **dstp, uae_u32 v) { - uae_u8 *dst = *dstp; - *dst++ = (uae_u8)(v >> 24); - *dst++ = (uae_u8)(v >> 16); - *dst++ = (uae_u8)(v >> 8); - *dst++ = (uae_u8)(v >> 0); - *dstp = dst; + uae_u8 *dst = *dstp; + *dst++ = (uae_u8)(v >> 24); + *dst++ = (uae_u8)(v >> 16); + *dst++ = (uae_u8)(v >> 8); + *dst++ = (uae_u8)(v >> 0); + *dstp = dst; } void save_u64_func (uae_u8 **dstp, uae_u64 v) { - save_u32_func (dstp, (uae_u32)(v >> 32)); - save_u32_func (dstp, (uae_u32)v); + save_u32_func (dstp, (uae_u32)(v >> 32)); + save_u32_func (dstp, (uae_u32)v); } void save_u16_func (uae_u8 **dstp, uae_u16 v) { - uae_u8 *dst = *dstp; - *dst++ = (uae_u8)(v >> 8); - *dst++ = (uae_u8)(v >> 0); - *dstp = dst; + uae_u8 *dst = *dstp; + *dst++ = (uae_u8)(v >> 8); + *dst++ = (uae_u8)(v >> 0); + *dstp = dst; } void save_u8_func (uae_u8 **dstp, uae_u8 v) { - uae_u8 *dst = *dstp; - *dst++ = v; - *dstp = dst; + uae_u8 *dst = *dstp; + *dst++ = v; + *dstp = dst; } void save_string_func (uae_u8 **dstp, const TCHAR *from) { - uae_u8 *dst = *dstp; - char *s, *s2; - s2 = s = uutf8 (from); - while (s && *s) - *dst++ = *s++; - *dst++ = 0; - *dstp = dst; - xfree (s2); + uae_u8 *dst = *dstp; + char *s, *s2; + s2 = s = uutf8 (from); + while (s && *s) + *dst++ = *s++; + *dst++ = 0; + *dstp = dst; + xfree (s2); } void save_path_func (uae_u8 **dstp, const TCHAR *from, int type) { - save_string_func (dstp, from); + save_string_func (dstp, from); } uae_u32 restore_u32_func (uae_u8 **dstp) { - uae_u32 v; - uae_u8 *dst = *dstp; - v = (dst[0] << 24) | (dst[1] << 16) | (dst[2] << 8) | (dst[3]); - *dstp = dst + 4; - return v; + uae_u32 v; + uae_u8 *dst = *dstp; + v = (dst[0] << 24) | (dst[1] << 16) | (dst[2] << 8) | (dst[3]); + *dstp = dst + 4; + return v; } uae_u64 restore_u64_func (uae_u8 **dstp) { - uae_u64 v; - - v = restore_u32_func (dstp); - v <<= 32; - v |= restore_u32_func (dstp); - return v; + uae_u64 v; + + v = restore_u32_func (dstp); + v <<= 32; + v |= restore_u32_func (dstp); + return v; } uae_u16 restore_u16_func (uae_u8 **dstp) { - uae_u16 v; - uae_u8 *dst = *dstp; - v=(dst[0] << 8) | (dst[1]); - *dstp = dst + 2; - return v; + uae_u16 v; + uae_u8 *dst = *dstp; + v=(dst[0] << 8) | (dst[1]); + *dstp = dst + 2; + return v; } uae_u8 restore_u8_func (uae_u8 **dstp) { - uae_u8 v; - uae_u8 *dst = *dstp; - v = dst[0]; - *dstp = dst + 1; - return v; + uae_u8 v; + uae_u8 *dst = *dstp; + v = dst[0]; + *dstp = dst + 1; + return v; } TCHAR *restore_string_func (uae_u8 **dstp) { - int len; - uae_u8 v; - uae_u8 *dst = *dstp; - char *top, *to; - TCHAR *s; - len = strlen((char *)dst) + 1; - top = to = xmalloc (char, len); - do { - v = *dst++; - *top++ = v; - } while(v); - *dstp = dst; - s = utf8u (to); - xfree (to); - return s; + int len; + uae_u8 v; + uae_u8 *dst = *dstp; + char *top, *to; + TCHAR *s; + len = strlen((char *)dst) + 1; + top = to = xmalloc (char, len); + do + { + v = *dst++; + *top++ = v; + } + while(v); + *dstp = dst; + s = utf8u (to); + xfree (to); + return s; } TCHAR *restore_path_func (uae_u8 **dstp, int type) { - return restore_string_func(dstp); + return restore_string_func(dstp); } /* read and write IFF-style hunks */ static void save_chunk (struct zfile *f, uae_u8 *chunk, size_t len, TCHAR *name, int compress) { - uae_u8 tmp[8], *dst; - uae_u8 zero[4]= { 0, 0, 0, 0 }; - uae_u32 flags; - size_t pos; - size_t chunklen, len2; - char *s; + uae_u8 tmp[8], *dst; + uae_u8 zero[4]= { 0, 0, 0, 0 }; + uae_u32 flags; + size_t pos; + size_t chunklen, len2; + char *s; - if (!chunk) - return; + if (!chunk) + return; - if (compress < 0) { - zfile_fwrite (chunk, 1, len, f); - return; - } - /* chunk name */ - s = ua (name); - zfile_fwrite (s, 1, 4, f); - xfree (s); - pos = zfile_ftell (f); - /* chunk size */ - dst = &tmp[0]; - chunklen = len + 4 + 4 + 4; - save_u32 (chunklen); - zfile_fwrite (&tmp[0], 1, 4, f); - /* chunk flags */ - flags = 0; - dst = &tmp[0]; - save_u32 (flags | compress); - zfile_fwrite (&tmp[0], 1, 4, f); - /* chunk data */ - if (compress) { - int tmplen = len; - size_t opos; - dst = &tmp[0]; - save_u32 (len); - opos = zfile_ftell (f); - zfile_fwrite (&tmp[0], 1, 4, f); - len = zfile_zcompress (f, chunk, len); - if (len > 0) { - zfile_fseek (f, pos, SEEK_SET); - dst = &tmp[0]; - save_u32 (len + 4 + 4 + 4 + 4); - zfile_fwrite (&tmp[0], 1, 4, f); - zfile_fseek (f, 0, SEEK_END); - } else { - len = tmplen; - compress = 0; - zfile_fseek (f, opos, SEEK_SET); - dst = &tmp[0]; - save_u32 (flags); - zfile_fwrite (&tmp[0], 1, 4, f); - } - } - if (!compress) - zfile_fwrite (chunk, 1, len, f); - /* alignment */ - len2 = 4 - (len & 3); - if (len2) - zfile_fwrite (zero, 1, len2, f); + if (compress < 0) + { + zfile_fwrite (chunk, 1, len, f); + return; + } + /* chunk name */ + s = ua (name); + zfile_fwrite (s, 1, 4, f); + xfree (s); + pos = zfile_ftell (f); + /* chunk size */ + dst = &tmp[0]; + chunklen = len + 4 + 4 + 4; + save_u32 (chunklen); + zfile_fwrite (&tmp[0], 1, 4, f); + /* chunk flags */ + flags = 0; + dst = &tmp[0]; + save_u32 (flags | compress); + zfile_fwrite (&tmp[0], 1, 4, f); + /* chunk data */ + if (compress) + { + int tmplen = len; + size_t opos; + dst = &tmp[0]; + save_u32 (len); + opos = zfile_ftell (f); + zfile_fwrite (&tmp[0], 1, 4, f); + len = zfile_zcompress (f, chunk, len); + if (len > 0) + { + zfile_fseek (f, pos, SEEK_SET); + dst = &tmp[0]; + save_u32 (len + 4 + 4 + 4 + 4); + zfile_fwrite (&tmp[0], 1, 4, f); + zfile_fseek (f, 0, SEEK_END); + } + else + { + len = tmplen; + compress = 0; + zfile_fseek (f, opos, SEEK_SET); + dst = &tmp[0]; + save_u32 (flags); + zfile_fwrite (&tmp[0], 1, 4, f); + } + } + if (!compress) + zfile_fwrite (chunk, 1, len, f); + /* alignment */ + len2 = 4 - (len & 3); + if (len2) + zfile_fwrite (zero, 1, len2, f); - write_log (_T("Chunk '%s' chunk size %d (%d)\n"), name, chunklen, len); + write_log (_T("Chunk '%s' chunk size %d (%d)\n"), name, chunklen, len); } static uae_u8 *restore_chunk (struct zfile *f, TCHAR *name, size_t *len, size_t *totallen, size_t *filepos) { - uae_u8 tmp[6], dummy[4], *mem, *src; - uae_u32 flags; - int len2; + uae_u8 tmp[6], dummy[4], *mem, *src; + uae_u32 flags; + int len2; - *totallen = 0; - /* chunk name */ - zfile_fread (tmp, 1, 4, f); - tmp[4] = 0; - au_copy (name, 5, (char*)tmp); - /* chunk size */ - zfile_fread (tmp, 1, 4, f); - src = tmp; - len2 = restore_u32 () - 4 - 4 - 4; - if (len2 < 0) - len2 = 0; - *len = len2; - if (len2 == 0) { - *filepos = zfile_ftell (f); - return 0; - } + *totallen = 0; + /* chunk name */ + zfile_fread (tmp, 1, 4, f); + tmp[4] = 0; + au_copy (name, 5, (char*)tmp); + /* chunk size */ + zfile_fread (tmp, 1, 4, f); + src = tmp; + len2 = restore_u32 () - 4 - 4 - 4; + if (len2 < 0) + len2 = 0; + *len = len2; + if (len2 == 0) + { + *filepos = zfile_ftell (f); + return 0; + } - /* chunk flags */ - zfile_fread (tmp, 1, 4, f); - src = tmp; - flags = restore_u32 (); - *totallen = *len; - if (flags & 1) { - zfile_fread (tmp, 1, 4, f); - src = tmp; - *totallen = restore_u32(); - *filepos = zfile_ftell (f) - 4 - 4 - 4; - len2 -= 4; - } else { - *filepos = zfile_ftell (f) - 4 - 4; - } - /* chunk data. RAM contents will be loaded during the reset phase, - no need to malloc multiple megabytes here. */ - if (_tcscmp (name, _T("CRAM")) != 0 - && _tcscmp (name, _T("BRAM")) != 0 - && _tcscmp (name, _T("FRAM")) != 0 - && _tcscmp (name, _T("ZRAM")) != 0 - && _tcscmp (name, _T("ZCRM")) != 0 - && _tcscmp (name, _T("PRAM")) != 0 - && _tcscmp (name, _T("A3K1")) != 0 - && _tcscmp (name, _T("A3K2")) != 0 - && _tcscmp (name, _T("BORO")) != 0 - ) - { - /* extra bytes at the end needed to handle old statefiles that now have new fields */ - mem = xcalloc (uae_u8, *totallen + 100); - if (!mem) - return NULL; - if (flags & 1) { - zfile_zuncompress (mem, *totallen, f, len2); - } else { - zfile_fread (mem, 1, len2, f); - } - } else { - mem = 0; - zfile_fseek (f, len2, SEEK_CUR); - } + /* chunk flags */ + zfile_fread (tmp, 1, 4, f); + src = tmp; + flags = restore_u32 (); + *totallen = *len; + if (flags & 1) + { + zfile_fread (tmp, 1, 4, f); + src = tmp; + *totallen = restore_u32(); + *filepos = zfile_ftell (f) - 4 - 4 - 4; + len2 -= 4; + } + else + { + *filepos = zfile_ftell (f) - 4 - 4; + } + /* chunk data. RAM contents will be loaded during the reset phase, + no need to malloc multiple megabytes here. */ + if (_tcscmp (name, _T("CRAM")) != 0 + && _tcscmp (name, _T("BRAM")) != 0 + && _tcscmp (name, _T("FRAM")) != 0 + && _tcscmp (name, _T("ZRAM")) != 0 + && _tcscmp (name, _T("ZCRM")) != 0 + && _tcscmp (name, _T("PRAM")) != 0 + && _tcscmp (name, _T("A3K1")) != 0 + && _tcscmp (name, _T("A3K2")) != 0 + && _tcscmp (name, _T("BORO")) != 0 + ) + { + /* extra bytes at the end needed to handle old statefiles that now have new fields */ + mem = xcalloc (uae_u8, *totallen + 100); + if (!mem) + return NULL; + if (flags & 1) + { + zfile_zuncompress (mem, *totallen, f, len2); + } + else + { + zfile_fread (mem, 1, len2, f); + } + } + else + { + mem = 0; + zfile_fseek (f, len2, SEEK_CUR); + } - /* alignment */ - len2 = 4 - (len2 & 3); - if (len2) - zfile_fread (dummy, 1, len2, f); - return mem; + /* alignment */ + len2 = 4 - (len2 & 3); + if (len2) + zfile_fread (dummy, 1, len2, f); + return mem; } void restore_ram (size_t filepos, uae_u8 *memory) { - uae_u8 tmp[8]; - uae_u8 *src = tmp; - int size, fullsize; - uae_u32 flags; - - if (filepos == 0 || memory == NULL) - return; - zfile_fseek (savestate_file, filepos, SEEK_SET); - zfile_fread (tmp, 1, sizeof tmp, savestate_file); - size = restore_u32(); - flags = restore_u32(); - size -= 4 + 4 + 4; - if (flags & 1) { - zfile_fread (tmp, 1, 4, savestate_file); - src = tmp; - fullsize = restore_u32(); - size -= 4; - zfile_zuncompress (memory, fullsize, savestate_file, size); - } else { - zfile_fread (memory, 1, size, savestate_file); - } + uae_u8 tmp[8]; + uae_u8 *src = tmp; + int size, fullsize; + uae_u32 flags; + + if (filepos == 0 || memory == NULL) + return; + zfile_fseek (savestate_file, filepos, SEEK_SET); + zfile_fread (tmp, 1, sizeof tmp, savestate_file); + size = restore_u32(); + flags = restore_u32(); + size -= 4 + 4 + 4; + if (flags & 1) + { + zfile_fread (tmp, 1, 4, savestate_file); + src = tmp; + fullsize = restore_u32(); + size -= 4; + zfile_zuncompress (memory, fullsize, savestate_file, size); + } + else + { + zfile_fread (memory, 1, size, savestate_file); + } } static void restore_header (uae_u8 *src) { - TCHAR *emuname, *emuversion, *description; + TCHAR *emuname, *emuversion, *description; - restore_u32(); - emuname = restore_string (); - emuversion = restore_string (); - description = restore_string (); - write_log (_T("Saved with: '%s %s', description: '%s'\n"), - emuname,emuversion,description); - xfree (description); - xfree (emuversion); - xfree (emuname); + restore_u32(); + emuname = restore_string (); + emuversion = restore_string (); + description = restore_string (); + write_log (_T("Saved with: '%s %s', description: '%s'\n"), + emuname,emuversion,description); + xfree (description); + xfree (emuversion); + xfree (emuname); } /* restore all subsystems */ void restore_state (const TCHAR *filename) { - struct zfile *f; - uae_u8 *chunk,*end; - TCHAR name[5]; - size_t len, totallen; - size_t filepos, filesize; - int z3num; + struct zfile *f; + uae_u8 *chunk,*end; + TCHAR name[5]; + size_t len, totallen; + size_t filepos, filesize; + int z3num; - chunk = 0; - f = zfile_fopen (filename, _T("rb"), ZFD_NORMAL); - if (!f) - goto error; - zfile_fseek (f, 0, SEEK_END); - filesize = zfile_ftell (f); - zfile_fseek (f, 0, SEEK_SET); - savestate_state = STATE_RESTORE; + chunk = 0; + f = zfile_fopen (filename, _T("rb"), ZFD_NORMAL); + if (!f) + goto error; + zfile_fseek (f, 0, SEEK_END); + filesize = zfile_ftell (f); + zfile_fseek (f, 0, SEEK_SET); + savestate_state = STATE_RESTORE; - chunk = restore_chunk (f, name, &len, &totallen, &filepos); - if (!chunk || _tcsncmp (name, _T("ASF "), 4)) { - write_log (_T("%s is not an AmigaStateFile\n"), filename); - goto error; - } - write_log (_T("STATERESTORE:\n")); - savestate_file = f; - restore_header (chunk); - xfree (chunk); - restore_cia_start (); - changed_prefs.bogomem_size = 0; - changed_prefs.chipmem_size = 0; - changed_prefs.fastmem_size = 0; - changed_prefs.z3fastmem_size = 0; - z3num = 0; - for (;;) { - name[0] = 0; - chunk = end = restore_chunk (f, name, &len, &totallen, &filepos); - write_log (_T("Chunk '%s' size %d (%d)\n"), name, len, totallen); - if (!_tcscmp (name, _T("END "))) { - break; + chunk = restore_chunk (f, name, &len, &totallen, &filepos); + if (!chunk || _tcsncmp (name, _T("ASF "), 4)) + { + write_log (_T("%s is not an AmigaStateFile\n"), filename); + goto error; } - if (!_tcscmp (name, _T("CRAM"))) { - restore_cram (totallen, filepos); - continue; - } else if (!_tcscmp (name, _T("BRAM"))) { - restore_bram (totallen, filepos); - continue; + write_log (_T("STATERESTORE:\n")); + savestate_file = f; + restore_header (chunk); + xfree (chunk); + restore_cia_start (); + changed_prefs.bogomem_size = 0; + changed_prefs.chipmem_size = 0; + changed_prefs.fastmem_size = 0; + changed_prefs.z3fastmem_size = 0; + z3num = 0; + for (;;) + { + name[0] = 0; + chunk = end = restore_chunk (f, name, &len, &totallen, &filepos); + write_log (_T("Chunk '%s' size %d (%d)\n"), name, len, totallen); + if (!_tcscmp (name, _T("END "))) + { + break; + } + if (!_tcscmp (name, _T("CRAM"))) + { + restore_cram (totallen, filepos); + continue; + } + else if (!_tcscmp (name, _T("BRAM"))) + { + restore_bram (totallen, filepos); + continue; #ifdef AUTOCONFIG - } else if (!_tcscmp (name, _T("FRAM"))) { - restore_fram (totallen, filepos); - continue; - } else if (!_tcscmp (name, _T("ZRAM"))) { - restore_zram (totallen, filepos, z3num++); - continue; - } else if (!_tcscmp (name, _T("BORO"))) { - restore_bootrom (totallen, filepos); - continue; + } + else if (!_tcscmp (name, _T("FRAM"))) + { + restore_fram (totallen, filepos); + continue; + } + else if (!_tcscmp (name, _T("ZRAM"))) + { + restore_zram (totallen, filepos, z3num++); + continue; + } + else if (!_tcscmp (name, _T("BORO"))) + { + restore_bootrom (totallen, filepos); + continue; #endif #ifdef PICASSO96 - } else if (!_tcscmp (name, _T("PRAM"))) { - restore_pram (totallen, filepos); - continue; + } + else if (!_tcscmp (name, _T("PRAM"))) + { + restore_pram (totallen, filepos); + continue; #endif - } else if (!_tcscmp (name, _T("CPU "))) { - end = restore_cpu (chunk); - } else if (!_tcscmp (name, _T("CPUX"))) - end = restore_cpu_extra (chunk); + } + else if (!_tcscmp (name, _T("CPU "))) + { + end = restore_cpu (chunk); + } + else if (!_tcscmp (name, _T("CPUX"))) + end = restore_cpu_extra (chunk); #ifdef FPUEMU - else if (!_tcscmp (name, _T("FPU "))) - end = restore_fpu (chunk); + else if (!_tcscmp (name, _T("FPU "))) + end = restore_fpu (chunk); #endif - else if (!_tcscmp (name, _T("AGAC"))) - end = restore_custom_agacolors (chunk); - else if (!_tcscmp (name, _T("SPR0"))) - end = restore_custom_sprite (0, chunk); - else if (!_tcscmp (name, _T("SPR1"))) - end = restore_custom_sprite (1, chunk); - else if (!_tcscmp (name, _T("SPR2"))) - end = restore_custom_sprite (2, chunk); - else if (!_tcscmp (name, _T("SPR3"))) - end = restore_custom_sprite (3, chunk); - else if (!_tcscmp (name, _T("SPR4"))) - end = restore_custom_sprite (4, chunk); - else if (!_tcscmp (name, _T("SPR5"))) - end = restore_custom_sprite (5, chunk); - else if (!_tcscmp (name, _T("SPR6"))) - end = restore_custom_sprite (6, chunk); - else if (!_tcscmp (name, _T("SPR7"))) - end = restore_custom_sprite (7, chunk); - else if (!_tcscmp (name, _T("CIAA"))) - end = restore_cia (0, chunk); - else if (!_tcscmp (name, _T("CIAB"))) - end = restore_cia (1, chunk); - else if (!_tcscmp (name, _T("CHIP"))) - end = restore_custom (chunk); - else if (!_tcscmp (name, _T("CINP"))) - end = restore_input (chunk); - else if (!_tcscmp (name, _T("CHPX"))) - end = restore_custom_extra (chunk); - else if (!_tcscmp (name, _T("AUD0"))) - end = restore_audio (0, chunk); - else if (!_tcscmp (name, _T("AUD1"))) - end = restore_audio (1, chunk); - else if (!_tcscmp (name, _T("AUD2"))) - end = restore_audio (2, chunk); - else if (!_tcscmp (name, _T("AUD3"))) - end = restore_audio (3, chunk); - else if (!_tcscmp (name, _T("BLIT"))) - end = restore_blitter (chunk); - else if (!_tcscmp (name, _T("BLTX"))) - end = restore_blitter_new (chunk); - else if (!_tcscmp (name, _T("DISK"))) - end = restore_floppy (chunk); - else if (!_tcscmp (name, _T("DSK0"))) - end = restore_disk (0, chunk); - else if (!_tcscmp (name, _T("DSK1"))) - end = restore_disk (1, chunk); - else if (!_tcscmp (name, _T("DSK2"))) - end = restore_disk (2, chunk); - else if (!_tcscmp (name, _T("DSK3"))) - end = restore_disk (3, chunk); - else if (!_tcscmp (name, _T("DSD0"))) - end = restore_disk2 (0, chunk); - else if (!_tcscmp (name, _T("DSD1"))) - end = restore_disk2 (1, chunk); - else if (!_tcscmp (name, _T("DSD2"))) - end = restore_disk2 (2, chunk); - else if (!_tcscmp (name, _T("DSD3"))) - end = restore_disk2 (3, chunk); - else if (!_tcscmp (name, _T("KEYB"))) - end = restore_keyboard (chunk); + else if (!_tcscmp (name, _T("AGAC"))) + end = restore_custom_agacolors (chunk); + else if (!_tcscmp (name, _T("SPR0"))) + end = restore_custom_sprite (0, chunk); + else if (!_tcscmp (name, _T("SPR1"))) + end = restore_custom_sprite (1, chunk); + else if (!_tcscmp (name, _T("SPR2"))) + end = restore_custom_sprite (2, chunk); + else if (!_tcscmp (name, _T("SPR3"))) + end = restore_custom_sprite (3, chunk); + else if (!_tcscmp (name, _T("SPR4"))) + end = restore_custom_sprite (4, chunk); + else if (!_tcscmp (name, _T("SPR5"))) + end = restore_custom_sprite (5, chunk); + else if (!_tcscmp (name, _T("SPR6"))) + end = restore_custom_sprite (6, chunk); + else if (!_tcscmp (name, _T("SPR7"))) + end = restore_custom_sprite (7, chunk); + else if (!_tcscmp (name, _T("CIAA"))) + end = restore_cia (0, chunk); + else if (!_tcscmp (name, _T("CIAB"))) + end = restore_cia (1, chunk); + else if (!_tcscmp (name, _T("CHIP"))) + end = restore_custom (chunk); + else if (!_tcscmp (name, _T("CINP"))) + end = restore_input (chunk); + else if (!_tcscmp (name, _T("CHPX"))) + end = restore_custom_extra (chunk); + else if (!_tcscmp (name, _T("AUD0"))) + end = restore_audio (0, chunk); + else if (!_tcscmp (name, _T("AUD1"))) + end = restore_audio (1, chunk); + else if (!_tcscmp (name, _T("AUD2"))) + end = restore_audio (2, chunk); + else if (!_tcscmp (name, _T("AUD3"))) + end = restore_audio (3, chunk); + else if (!_tcscmp (name, _T("BLIT"))) + end = restore_blitter (chunk); + else if (!_tcscmp (name, _T("BLTX"))) + end = restore_blitter_new (chunk); + else if (!_tcscmp (name, _T("DISK"))) + end = restore_floppy (chunk); + else if (!_tcscmp (name, _T("DSK0"))) + end = restore_disk (0, chunk); + else if (!_tcscmp (name, _T("DSK1"))) + end = restore_disk (1, chunk); + else if (!_tcscmp (name, _T("DSK2"))) + end = restore_disk (2, chunk); + else if (!_tcscmp (name, _T("DSK3"))) + end = restore_disk (3, chunk); + else if (!_tcscmp (name, _T("DSD0"))) + end = restore_disk2 (0, chunk); + else if (!_tcscmp (name, _T("DSD1"))) + end = restore_disk2 (1, chunk); + else if (!_tcscmp (name, _T("DSD2"))) + end = restore_disk2 (2, chunk); + else if (!_tcscmp (name, _T("DSD3"))) + end = restore_disk2 (3, chunk); + else if (!_tcscmp (name, _T("KEYB"))) + end = restore_keyboard (chunk); #ifdef AUTOCONFIG - else if (!_tcscmp (name, _T("EXPA"))) - end = restore_expansion (chunk); + else if (!_tcscmp (name, _T("EXPA"))) + end = restore_expansion (chunk); #endif - else if (!_tcscmp (name, _T("ROM "))) - end = restore_rom (chunk); + else if (!_tcscmp (name, _T("ROM "))) + end = restore_rom (chunk); #ifdef PICASSO96 - else if (!_tcscmp (name, _T("P96 "))) - end = restore_p96 (chunk); + else if (!_tcscmp (name, _T("P96 "))) + end = restore_p96 (chunk); #endif #ifdef FILESYS - else if (!_tcscmp (name, _T("FSYS"))) - end = restore_filesys (chunk); - else if (!_tcscmp (name, _T("FSYC"))) - end = restore_filesys_common (chunk); + else if (!_tcscmp (name, _T("FSYS"))) + end = restore_filesys (chunk); + else if (!_tcscmp (name, _T("FSYC"))) + end = restore_filesys_common (chunk); #endif #ifdef CD32 - else if (!_tcscmp (name, _T("CD32"))) - end = restore_akiko (chunk); + else if (!_tcscmp (name, _T("CD32"))) + end = restore_akiko (chunk); #endif - else if (!_tcsncmp (name, _T("CDU"), 3)) - end = restore_cd (name[3] - '0', chunk); - else { - end = chunk + len; - write_log (_T("unknown chunk '%s' size %d bytes\n"), name, len); - } - if (end == NULL) - write_log (_T("Chunk '%s', size %d bytes was not accepted!\n"), - name, len); - else if (totallen != end - chunk) - write_log (_T("Chunk '%s' total size %d bytes but read %d bytes!\n"), - name, totallen, end - chunk); - xfree (chunk); - } - return; + else if (!_tcsncmp (name, _T("CDU"), 3)) + end = restore_cd (name[3] - '0', chunk); + else + { + end = chunk + len; + write_log (_T("unknown chunk '%s' size %d bytes\n"), name, len); + } + if (end == NULL) + write_log (_T("Chunk '%s', size %d bytes was not accepted!\n"), + name, len); + else if (totallen != end - chunk) + write_log (_T("Chunk '%s' total size %d bytes but read %d bytes!\n"), + name, totallen, end - chunk); + xfree (chunk); + } + return; error: - savestate_state = 0; - savestate_file = 0; - if (chunk) - xfree (chunk); - if (f) - zfile_fclose (f); + savestate_state = 0; + savestate_file = 0; + if (chunk) + xfree (chunk); + if (f) + zfile_fclose (f); } void savestate_restore_finish (void) { - if (!isrestore ()) - return; - zfile_fclose (savestate_file); - savestate_file = 0; - restore_cpu_finish(); - restore_audio_finish (); - restore_disk_finish (); - restore_akiko_finish (); + if (!isrestore ()) + return; + zfile_fclose (savestate_file); + savestate_file = 0; + restore_cpu_finish(); + restore_audio_finish (); + restore_disk_finish (); + restore_akiko_finish (); #ifdef PICASSO96 - restore_p96_finish (); + restore_p96_finish (); #endif - restore_cia_finish (); - savestate_state = 0; - init_hz_full (); - audio_activate (); + restore_cia_finish (); + savestate_state = 0; + init_hz_full (); + audio_activate (); } /* 1=compressed,2=not compressed,3=ram dump,4=audio dump */ void savestate_initsave (const TCHAR *filename, int mode, int nodialogs, bool save) { - if (filename == NULL) { - savestate_fname[0] = 0; - savestate_docompress = 0; - savestate_specialdump = 0; - savestate_nodialogs = 0; - return; - } - _tcscpy (savestate_fname, filename); - savestate_docompress = (mode == 1) ? 1 : 0; - savestate_specialdump = (mode == 3) ? 1 : (mode == 4) ? 2 : 0; - savestate_nodialogs = nodialogs; - new_blitter = false; + if (filename == NULL) + { + savestate_fname[0] = 0; + savestate_docompress = 0; + savestate_specialdump = 0; + savestate_nodialogs = 0; + return; + } + _tcscpy (savestate_fname, filename); + savestate_docompress = (mode == 1) ? 1 : 0; + savestate_specialdump = (mode == 3) ? 1 : (mode == 4) ? 2 : 0; + savestate_nodialogs = nodialogs; + new_blitter = false; } static void save_rams (struct zfile *f, int comp) { - uae_u8 *dst; - int len; + uae_u8 *dst; + int len; - dst = save_cram (&len); - save_chunk (f, dst, len, _T("CRAM"), comp); - dst = save_bram (&len); - save_chunk (f, dst, len, _T("BRAM"), comp); + dst = save_cram (&len); + save_chunk (f, dst, len, _T("CRAM"), comp); + dst = save_bram (&len); + save_chunk (f, dst, len, _T("BRAM"), comp); #ifdef AUTOCONFIG - dst = save_fram (&len); - save_chunk (f, dst, len, _T("FRAM"), comp); - dst = save_zram (&len, 0); - save_chunk (f, dst, len, _T("ZRAM"), comp); - dst = save_bootrom (&len); - save_chunk (f, dst, len, _T("BORO"), comp); + dst = save_fram (&len); + save_chunk (f, dst, len, _T("FRAM"), comp); + dst = save_zram (&len, 0); + save_chunk (f, dst, len, _T("ZRAM"), comp); + dst = save_bootrom (&len); + save_chunk (f, dst, len, _T("BORO"), comp); #endif #ifdef PICASSO96 - dst = save_pram (&len); - save_chunk (f, dst, len, _T("PRAM"), comp); + dst = save_pram (&len); + save_chunk (f, dst, len, _T("PRAM"), comp); #endif } @@ -621,197 +661,214 @@ static void save_rams (struct zfile *f, int comp) static int save_state_internal (struct zfile *f, const TCHAR *description, int comp, bool savepath) { - uae_u8 endhunk[] = { 'E', 'N', 'D', ' ', 0, 0, 0, 8 }; - uae_u8 header[1000]; - TCHAR tmp[100]; - uae_u8 *dst; - TCHAR name[5]; - int i, len; + uae_u8 endhunk[] = { 'E', 'N', 'D', ' ', 0, 0, 0, 8 }; + uae_u8 header[1000]; + TCHAR tmp[100]; + uae_u8 *dst; + TCHAR name[5]; + int i, len; - write_log (_T("STATESAVE (%s):\n"), f ? zfile_getname (f) : _T("")); - dst = header; - save_u32 (0); - save_string(_T("UAE")); - _stprintf (tmp, _T("%d.%d.%d"), UAEMAJOR, UAEMINOR, UAESUBREV); - save_string (tmp); - save_string (description); - save_chunk (f, header, dst-header, _T("ASF "), 0); + write_log (_T("STATESAVE (%s):\n"), f ? zfile_getname (f) : _T("")); + dst = header; + save_u32 (0); + save_string(_T("UAE")); + _stprintf (tmp, _T("%d.%d.%d"), UAEMAJOR, UAEMINOR, UAESUBREV); + save_string (tmp); + save_string (description); + save_chunk (f, header, dst-header, _T("ASF "), 0); - dst = save_cpu (&len, 0); - save_chunk (f, dst, len, _T("CPU "), 0); - xfree (dst); + dst = save_cpu (&len, 0); + save_chunk (f, dst, len, _T("CPU "), 0); + xfree (dst); - dst = save_cpu_extra (&len, 0); - save_chunk (f, dst, len, _T("CPUX"), 0); - xfree (dst); + dst = save_cpu_extra (&len, 0); + save_chunk (f, dst, len, _T("CPUX"), 0); + xfree (dst); #ifdef FPUEMU - dst = save_fpu (&len, 0); - save_chunk (f, dst, len, _T("FPU "), 0); - xfree (dst); + dst = save_fpu (&len, 0); + save_chunk (f, dst, len, _T("FPU "), 0); + xfree (dst); #endif - _tcscpy(name, _T("DSKx")); - for (i = 0; i < 4; i++) { - dst = save_disk (i, &len, 0, savepath); - if (dst) { - name[3] = i + '0'; - save_chunk (f, dst, len, name, 0); - xfree (dst); - } - } - _tcscpy(name, _T("DSDx")); - for (i = 0; i < 4; i++) { - dst = save_disk2 (i, &len, 0); - if (dst) { - name[3] = i + '0'; - save_chunk (f, dst, len, name, comp); - xfree (dst); - } - } + _tcscpy(name, _T("DSKx")); + for (i = 0; i < 4; i++) + { + dst = save_disk (i, &len, 0, savepath); + if (dst) + { + name[3] = i + '0'; + save_chunk (f, dst, len, name, 0); + xfree (dst); + } + } + _tcscpy(name, _T("DSDx")); + for (i = 0; i < 4; i++) + { + dst = save_disk2 (i, &len, 0); + if (dst) + { + name[3] = i + '0'; + save_chunk (f, dst, len, name, comp); + xfree (dst); + } + } - dst = save_floppy (&len, 0); - save_chunk (f, dst, len, _T("DISK"), 0); - xfree (dst); + dst = save_floppy (&len, 0); + save_chunk (f, dst, len, _T("DISK"), 0); + xfree (dst); - dst = save_custom (&len, 0, 0); - save_chunk (f, dst, len, _T("CHIP"), 0); - xfree (dst); + dst = save_custom (&len, 0, 0); + save_chunk (f, dst, len, _T("CHIP"), 0); + xfree (dst); - dst = save_custom_extra (&len, 0); - save_chunk (f, dst, len, _T("CHPX"), 0); - xfree (dst); + dst = save_custom_extra (&len, 0); + save_chunk (f, dst, len, _T("CHPX"), 0); + xfree (dst); - dst = save_blitter_new (&len, 0); - save_chunk (f, dst, len, _T("BLTX"), 0); - xfree (dst); - if (new_blitter == false) { - dst = save_blitter (&len, 0); - save_chunk (f, dst, len, _T("BLIT"), 0); - xfree (dst); - } + dst = save_blitter_new (&len, 0); + save_chunk (f, dst, len, _T("BLTX"), 0); + xfree (dst); + if (new_blitter == false) + { + dst = save_blitter (&len, 0); + save_chunk (f, dst, len, _T("BLIT"), 0); + xfree (dst); + } - dst = save_input (&len, 0); - save_chunk (f, dst, len, _T("CINP"), 0); - xfree (dst); + dst = save_input (&len, 0); + save_chunk (f, dst, len, _T("CINP"), 0); + xfree (dst); - dst = save_custom_agacolors (&len, 0); - save_chunk (f, dst, len, _T("AGAC"), 0); - xfree (dst); + dst = save_custom_agacolors (&len, 0); + save_chunk (f, dst, len, _T("AGAC"), 0); + xfree (dst); - _tcscpy (name, _T("SPRx")); - for (i = 0; i < 8; i++) { - dst = save_custom_sprite (i, &len, 0); - name[3] = i + '0'; - save_chunk (f, dst, len, name, 0); - xfree (dst); - } + _tcscpy (name, _T("SPRx")); + for (i = 0; i < 8; i++) + { + dst = save_custom_sprite (i, &len, 0); + name[3] = i + '0'; + save_chunk (f, dst, len, name, 0); + xfree (dst); + } - _tcscpy (name, _T("AUDx")); - for (i = 0; i < 4; i++) { - dst = save_audio (i, &len, 0); - name[3] = i + '0'; - save_chunk (f, dst, len, name, 0); - xfree (dst); - } + _tcscpy (name, _T("AUDx")); + for (i = 0; i < 4; i++) + { + dst = save_audio (i, &len, 0); + name[3] = i + '0'; + save_chunk (f, dst, len, name, 0); + xfree (dst); + } - dst = save_cia (0, &len, 0); - save_chunk (f, dst, len, _T("CIAA"), 0); - xfree (dst); + dst = save_cia (0, &len, 0); + save_chunk (f, dst, len, _T("CIAA"), 0); + xfree (dst); - dst = save_cia (1, &len, 0); - save_chunk (f, dst, len, _T("CIAB"), 0); - xfree (dst); + dst = save_cia (1, &len, 0); + save_chunk (f, dst, len, _T("CIAB"), 0); + xfree (dst); - dst = save_keyboard (&len, NULL); - save_chunk (f, dst, len, _T("KEYB"), 0); - xfree (dst); + dst = save_keyboard (&len, NULL); + save_chunk (f, dst, len, _T("KEYB"), 0); + xfree (dst); #ifdef AUTOCONFIG - dst = save_expansion (&len, 0); - save_chunk (f, dst, len, _T("EXPA"), 0); - xfree (dst); + dst = save_expansion (&len, 0); + save_chunk (f, dst, len, _T("EXPA"), 0); + xfree (dst); #endif #ifdef PICASSO96 - dst = save_p96 (&len, 0); - save_chunk (f, dst, len, _T("P96 "), 0); + dst = save_p96 (&len, 0); + save_chunk (f, dst, len, _T("P96 "), 0); #endif - save_rams (f, comp); + save_rams (f, comp); - dst = save_rom (1, &len, 0); - do { - if (!dst) - break; - save_chunk (f, dst, len, _T("ROM "), 0); - xfree (dst); - } while ((dst = save_rom (0, &len, 0))); + dst = save_rom (1, &len, 0); + do + { + if (!dst) + break; + save_chunk (f, dst, len, _T("ROM "), 0); + xfree (dst); + } + while ((dst = save_rom (0, &len, 0))); #ifdef CD32 - dst = save_akiko (&len, NULL); - save_chunk (f, dst, len, _T("CD32"), 0); - xfree (dst); + dst = save_akiko (&len, NULL); + save_chunk (f, dst, len, _T("CD32"), 0); + xfree (dst); #endif #ifdef FILESYS - dst = save_filesys_common (&len); - if (dst) { - save_chunk (f, dst, len, _T("FSYC"), 0); - for (i = 0; i < nr_units (); i++) { - dst = save_filesys (i, &len); - if (dst) { - save_chunk (f, dst, len, _T("FSYS"), 0); - xfree (dst); - } + dst = save_filesys_common (&len); + if (dst) + { + save_chunk (f, dst, len, _T("FSYC"), 0); + for (i = 0; i < nr_units (); i++) + { + dst = save_filesys (i, &len); + if (dst) + { + save_chunk (f, dst, len, _T("FSYS"), 0); + xfree (dst); + } + } } - } #endif - for (i = 0; i < MAX_TOTAL_SCSI_DEVICES; i++) { - dst = save_cd (i, &len); - if (dst) { - _stprintf (name, _T("CDU%d"), i); - save_chunk (f, dst, len, name, 0); - } - } + for (i = 0; i < MAX_TOTAL_SCSI_DEVICES; i++) + { + dst = save_cd (i, &len); + if (dst) + { + _stprintf (name, _T("CDU%d"), i); + save_chunk (f, dst, len, name, 0); + } + } - zfile_fwrite (endhunk, 1, 8, f); + zfile_fwrite (endhunk, 1, 8, f); - return 1; + return 1; } int save_state (const TCHAR *filename, const TCHAR *description) { - struct zfile *f; - int comp = savestate_docompress; + struct zfile *f; + int comp = savestate_docompress; - if (!savestate_specialdump && !savestate_nodialogs) { - state_incompatible_warn(); - if (!save_filesys_cando()) { - gui_message (_T("Filesystem active. Try again later.")); - return -1; - } - } - new_blitter = false; - savestate_nodialogs = 0; - custom_prepare_savestate (); - f = zfile_fopen (filename, _T("w+b"), 0); - if (!f) - return 0; - int v = save_state_internal (f, description, comp, true); - if (v) - write_log (_T("Save of '%s' complete\n"), filename); - zfile_fclose (f); - savestate_state = 0; - return v; + if (!savestate_specialdump && !savestate_nodialogs) + { + state_incompatible_warn(); + if (!save_filesys_cando()) + { + gui_message (_T("Filesystem active. Try again later.")); + return -1; + } + } + new_blitter = false; + savestate_nodialogs = 0; + custom_prepare_savestate (); + f = zfile_fopen (filename, _T("w+b"), 0); + if (!f) + return 0; + int v = save_state_internal (f, description, comp, true); + if (v) + write_log (_T("Save of '%s' complete\n"), filename); + zfile_fclose (f); + savestate_state = 0; + return v; } bool savestate_check (void) { - if (savestate_state == STATE_DORESTORE) { - savestate_state = STATE_RESTORE; - return true; - } - return false; + if (savestate_state == STATE_DORESTORE) + { + savestate_state = STATE_RESTORE; + return true; + } + return false; } @@ -832,14 +889,14 @@ HUNK HEADER (beginning of every hunk) hunk name (4 ascii-characters) hunk size (including header) - hunk flags + hunk flags bit 0 = chunk contents are compressed with zlib (maybe RAM chunks only?) HEADER "ASF " (AmigaStateFile) - + statefile version emulator name ("uae", "fellow" etc..) emulator version string (example: "0.8.15") diff --git a/src/sd-pandora/sound.cpp b/src/sd-pandora/sound.cpp index a4137c1d..7e48004f 100644 --- a/src/sd-pandora/sound.cpp +++ b/src/sd-pandora/sound.cpp @@ -1,7 +1,7 @@ - /* - * Minimalistic sound.c implementation for gp2x - * (c) notaz, 2007 - */ +/* + * Minimalistic sound.c implementation for gp2x + * (c) notaz, 2007 + */ #include #include @@ -18,7 +18,7 @@ #include "sysdeps.h" #include "uae.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "audio.h" @@ -45,26 +45,29 @@ static int lastfreq; void update_sound (int freq, int lof) { - float lines = maxvpos_nom; - float hpos = maxhpos; - float evtime; + float lines = maxvpos_nom; + float hpos = maxhpos; + float evtime; - if (freq < 0) - freq = lastfreq; - lastfreq = freq; + if (freq < 0) + freq = lastfreq; + lastfreq = freq; - if (currprefs.ntscmode) { - hpos += 0.5; - lines += 0.5; - } else { - if (lof < 0) - lines += 0.5; - else if(lof > 0) - lines += 1.0; - } - - evtime = hpos * lines * freq * CYCLE_UNIT / (float)currprefs.sound_freq; - scaled_sample_evtime = (int)evtime; + if (currprefs.ntscmode) + { + hpos += 0.5; + lines += 0.5; + } + else + { + if (lof < 0) + lines += 0.5; + else if(lof > 0) + lines += 1.0; + } + + evtime = hpos * lines * freq * CYCLE_UNIT / (float)currprefs.sound_freq; + scaled_sample_evtime = (int)evtime; } @@ -77,228 +80,235 @@ static int wrcnt = 0; static void *sound_thread(void *unused) { - int cnt = 0, sem_val = 0; - sound_thread_active = 1; + int cnt = 0, sem_val = 0; + sound_thread_active = 1; - for (;;) - { - sem_getvalue(&sound_sem, &sem_val); - while (sem_val > 1) - { - sem_wait(&sound_sem); - sem_getvalue(&sound_sem, &sem_val); - } + for (;;) + { + sem_getvalue(&sound_sem, &sem_val); + while (sem_val > 1) + { + sem_wait(&sound_sem); + sem_getvalue(&sound_sem, &sem_val); + } - sem_wait(&sound_sem); - if (sound_thread_exit) - break; + sem_wait(&sound_sem); + if (sound_thread_exit) + break; - cnt = output_cnt; + cnt = output_cnt; + sem_post(&sound_out_sem); + + if(currprefs.sound_stereo) + { + if(cdaudio_active && currprefs.sound_freq == 44100 && cdrdcnt < cdwrcnt) + { + for(int i=0; i 22050) { bsize*=4; buffers*=2; } // 44k mode seems to be very demanding - while ((bsize>>=1)) frag++; - frag |= buffers<<16; // 16 buffers - ioctl(sounddev, SNDCTL_DSP_SETFRAGMENT, &frag); + // if no settings change, we don't need to do anything + if (rate == s_oldrate && s_oldbits == bits && s_oldstereo == stereo) + return 0; - s_oldrate = rate; - s_oldbits = bits; - s_oldstereo = stereo; - usleep(100000); - return 0; + ioctl(sounddev, SNDCTL_DSP_SPEED, &rate); + ioctl(sounddev, SNDCTL_DSP_SETFMT, &bits); + ioctl(sounddev, SNDCTL_DSP_STEREO, &stereo); + // calculate buffer size + buffers = 16; + bsize = rate / 32; + if (rate > 22050) + { + bsize*=4; // 44k mode seems to be very demanding + buffers*=2; + } + while ((bsize>>=1)) frag++; + frag |= buffers<<16; // 16 buffers + ioctl(sounddev, SNDCTL_DSP_SETFRAGMENT, &frag); + + s_oldrate = rate; + s_oldbits = bits; + s_oldstereo = stereo; + usleep(100000); + return 0; } // this is meant to be called only once on exit void pandora_stop_sound(void) { - if (sound_thread_exit) - printf("don't call pandora_stop_sound more than once!\n"); - if (sound_thread_active) - { - sound_thread_exit = 1; - sem_post(&sound_sem); - sem_wait(&sound_out_sem); - sem_destroy(&sound_sem); - sem_destroy(&sound_out_sem); - } + if (sound_thread_exit) + printf("don't call pandora_stop_sound more than once!\n"); + if (sound_thread_active) + { + sound_thread_exit = 1; + sem_post(&sound_sem); + sem_wait(&sound_out_sem); + sem_destroy(&sound_sem); + sem_destroy(&sound_out_sem); + } - if (sounddev > 0) - close(sounddev); - sounddev = -1; + if (sounddev > 0) + close(sounddev); + sounddev = -1; } void finish_sound_buffer (void) { - output_cnt = wrcnt; + output_cnt = wrcnt; - sem_post(&sound_sem); - sem_wait(&sound_out_sem); - - wrcnt++; - sndbufpt = render_sndbuff = sndbuffer[wrcnt&3]; - if(currprefs.sound_stereo) - finish_sndbuff = sndbufpt + SNDBUFFER_LEN; - else - finish_sndbuff = sndbufpt + SNDBUFFER_LEN/2; + sem_post(&sound_sem); + sem_wait(&sound_out_sem); + + wrcnt++; + sndbufpt = render_sndbuff = sndbuffer[wrcnt&3]; + if(currprefs.sound_stereo) + finish_sndbuff = sndbufpt + SNDBUFFER_LEN; + else + finish_sndbuff = sndbufpt + SNDBUFFER_LEN/2; } void pause_sound_buffer (void) { - reset_sound (); + reset_sound (); } void restart_sound_buffer(void) { - sndbufpt = render_sndbuff = sndbuffer[wrcnt&3]; - if(currprefs.sound_stereo) - finish_sndbuff = sndbufpt + SNDBUFFER_LEN; - else - finish_sndbuff = sndbufpt + SNDBUFFER_LEN/2; + sndbufpt = render_sndbuff = sndbuffer[wrcnt&3]; + if(currprefs.sound_stereo) + finish_sndbuff = sndbufpt + SNDBUFFER_LEN; + else + finish_sndbuff = sndbufpt + SNDBUFFER_LEN/2; - cdbufpt = render_cdbuff = cdaudio_buffer[cdwrcnt & (CDAUDIO_BUFFERS - 1)]; - finish_cdbuff = cdbufpt + CDAUDIO_BUFFER_LEN * 2; + cdbufpt = render_cdbuff = cdaudio_buffer[cdwrcnt & (CDAUDIO_BUFFERS - 1)]; + finish_cdbuff = cdbufpt + CDAUDIO_BUFFER_LEN * 2; } void finish_cdaudio_buffer (void) { - cdwrcnt++; - cdbufpt = render_cdbuff = cdaudio_buffer[cdwrcnt & (CDAUDIO_BUFFERS - 1)]; - finish_cdbuff = cdbufpt + CDAUDIO_BUFFER_LEN; - audio_activate(); + cdwrcnt++; + cdbufpt = render_cdbuff = cdaudio_buffer[cdwrcnt & (CDAUDIO_BUFFERS - 1)]; + finish_cdbuff = cdbufpt + CDAUDIO_BUFFER_LEN; + audio_activate(); } bool cdaudio_catchup(void) { - while((cdwrcnt > cdrdcnt + CDAUDIO_BUFFERS - 10) && (sound_thread_active != 0) && (quit_program == 0)) { - sleep_millis(10); - } - return (sound_thread_active != 0); + while((cdwrcnt > cdrdcnt + CDAUDIO_BUFFERS - 10) && (sound_thread_active != 0) && (quit_program == 0)) + { + sleep_millis(10); + } + return (sound_thread_active != 0); } /* Try to determine whether sound is available. This is only for GUI purposes. */ int setup_sound (void) { - if (pandora_start_sound(currprefs.sound_freq, 16, currprefs.sound_stereo) != 0) - return 0; + if (pandora_start_sound(currprefs.sound_freq, 16, currprefs.sound_stereo) != 0) + return 0; - sound_available = 1; - return 1; + sound_available = 1; + return 1; } static int open_sound (void) { - if (pandora_start_sound(currprefs.sound_freq, 16, currprefs.sound_stereo) != 0) - return 0; + if (pandora_start_sound(currprefs.sound_freq, 16, currprefs.sound_stereo) != 0) + return 0; - have_sound = 1; - sound_available = 1; + have_sound = 1; + sound_available = 1; - if(currprefs.sound_stereo) - sample_handler = sample16s_handler; - else - sample_handler = sample16_handler; - - return 1; + if(currprefs.sound_stereo) + sample_handler = sample16s_handler; + else + sample_handler = sample16_handler; + + return 1; } void close_sound (void) { - if (!have_sound) - return; + if (!have_sound) + return; - // testing shows that reopenning sound device is not a good idea on pandora (causes random sound driver crashes) - // we will close it on real exit instead - //pandora_stop_sound(); - have_sound = 0; + // testing shows that reopenning sound device is not a good idea on pandora (causes random sound driver crashes) + // we will close it on real exit instead + //pandora_stop_sound(); + have_sound = 0; } int init_sound (void) @@ -319,13 +329,13 @@ void resume_sound (void) void reset_sound (void) { - if (!have_sound) - return; + if (!have_sound) + return; - init_soundbuffer_usage(); + init_soundbuffer_usage(); - clear_sound_buffers(); - clear_cdaudio_buffers(); + clear_sound_buffers(); + clear_cdaudio_buffers(); } void sound_volume (int dir) diff --git a/src/sd-sdl/sound_sdl_new.cpp b/src/sd-sdl/sound_sdl_new.cpp index e4fbbca7..d357a674 100644 --- a/src/sd-sdl/sound_sdl_new.cpp +++ b/src/sd-sdl/sound_sdl_new.cpp @@ -1,7 +1,7 @@ - /* - * Sdl sound.c implementation - * (c) 2015 - */ +/* + * Sdl sound.c implementation + * (c) 2015 + */ #include #include @@ -16,7 +16,7 @@ #include "config.h" #include "uae.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "audio.h" @@ -56,13 +56,20 @@ extern int screen_is_picasso; void finish_sound_buffer (void) { } -int setup_sound (void) { sound_available = 0; return 0; } +int setup_sound (void) +{ + sound_available = 0; + return 0; +} void close_sound (void) { } void pandora_stop_sound (void) { } -int init_sound (void) { return 0; } +int init_sound (void) +{ + return 0; +} void pause_sound (void) { } @@ -82,7 +89,7 @@ void uae4all_resume_music(void) { } void restart_sound_buffer(void) { } -#else +#else static int have_sound = 0; @@ -90,26 +97,29 @@ static int lastfreq; void update_sound (int freq, int lof) { - float lines = maxvpos_nom; - float hpos = maxhpos; - float evtime; + float lines = maxvpos_nom; + float hpos = maxhpos; + float evtime; - if (freq < 0) - freq = lastfreq; - lastfreq = freq; + if (freq < 0) + freq = lastfreq; + lastfreq = freq; - if (currprefs.ntscmode || screen_is_picasso) { + if (currprefs.ntscmode || screen_is_picasso) + { hpos += 0.5; lines += 0.5; - } else { - if (lof < 0) - lines += 0.5; - else if(lof > 0) - lines += 1.0; - } + } + else + { + if (lof < 0) + lines += 0.5; + else if(lof > 0) + lines += 1.0; + } - evtime = hpos * lines * freq * CYCLE_UNIT / (float)currprefs.sound_freq; - scaled_sample_evtime = (int)evtime; + evtime = hpos * lines * freq * CYCLE_UNIT / (float)currprefs.sound_freq; + scaled_sample_evtime = (int)evtime; } @@ -124,186 +134,187 @@ static int wrcnt = 0; static void sound_thread_mixer(void *ud, Uint8 *stream, int len) { - if (sound_thread_exit) return; - int sem_val; - sound_thread_active = 1; + if (sound_thread_exit) return; + int sem_val; + sound_thread_active = 1; #ifdef SOUND_USE_SEMAPHORES - sem_wait(&sound_sem); + sem_wait(&sound_sem); #endif - //printf("Sound callback %i\n", cnt); + //printf("Sound callback %i\n", cnt); - //__android_log_print(ANDROID_LOG_INFO, "UAE4ALL2","Sound callback cnt %d buf %d\n", cnt, cnt%SOUND_BUFFERS_COUNT); - if(currprefs.sound_stereo) - { + //__android_log_print(ANDROID_LOG_INFO, "UAE4ALL2","Sound callback cnt %d buf %d\n", cnt, cnt%SOUND_BUFFERS_COUNT); + if(currprefs.sound_stereo) + { - if(cdaudio_active && currprefs.sound_freq == 44100 && cdrdcnt < cdwrcnt) - { - for(int i=0; i cdrdcnt + CDAUDIO_BUFFERS - 10) && (sound_thread_active != 0) && (quit_program == 0)) { - sleep_millis(10); - } - return (sound_thread_active != 0); + while((cdwrcnt > cdrdcnt + CDAUDIO_BUFFERS - 10) && (sound_thread_active != 0) && (quit_program == 0)) + { + sleep_millis(10); + } + return (sound_thread_active != 0); } /* Try to determine whether sound is available. This is only for GUI purposes. */ @@ -313,11 +324,11 @@ int setup_sound (void) dbg("sound.c : setup_sound"); #endif - // Android does not like opening sound device several times - if (pandora_start_sound(currprefs.sound_freq, 16, currprefs.sound_stereo) != 0) + // Android does not like opening sound device several times + if (pandora_start_sound(currprefs.sound_freq, 16, currprefs.sound_stereo) != 0) return 0; - sound_available = 1; + sound_available = 1; #ifdef DEBUG_SOUND dbg(" sound.c : ! setup_sound"); @@ -331,19 +342,19 @@ static int open_sound (void) dbg("sound.c : open_sound"); #endif - // Android does not like opening sound device several times + // Android does not like opening sound device several times if (pandora_start_sound(currprefs.sound_freq, 16, currprefs.sound_stereo) != 0) - return 0; + return 0; have_sound = 1; sound_available = 1; if(currprefs.sound_stereo) - sample_handler = sample16s_handler; + sample_handler = sample16s_handler; else - sample_handler = sample16_handler; - + sample_handler = sample16_handler; + #ifdef DEBUG_SOUND dbg(" sound.c : ! open_sound"); @@ -357,7 +368,7 @@ void close_sound (void) dbg("sound.c : close_sound"); #endif if (!have_sound) - return; + return; // testing shows that reopenning sound device is not a good idea (causes random sound driver crashes) // we will close it on real exit instead @@ -391,7 +402,7 @@ void pause_sound (void) dbg("sound.c : pause_sound"); #endif - SDL_PauseAudio (1); + SDL_PauseAudio (1); /* nothing to do */ #ifdef DEBUG_SOUND @@ -405,7 +416,7 @@ void resume_sound (void) dbg("sound.c : resume_sound"); #endif - SDL_PauseAudio (0); + SDL_PauseAudio (0); /* nothing to do */ #ifdef DEBUG_SOUND @@ -449,13 +460,13 @@ void uae4all_play_click(void) void reset_sound (void) { - if (!have_sound) - return; + if (!have_sound) + return; - //init_soundbuffer_usage(); + //init_soundbuffer_usage(); - clear_sound_buffers(); - clear_cdaudio_buffers(); + clear_sound_buffers(); + clear_cdaudio_buffers(); } diff --git a/src/sinctable.cpp b/src/sinctable.cpp index ed62d9d2..2008d8be 100644 --- a/src/sinctable.cpp +++ b/src/sinctable.cpp @@ -1,630 +1,631 @@ - /* - * Table generated by contrib/sinc-integral.py. - */ +/* + * Table generated by contrib/sinc-integral.py. + */ /* tables are: a500 off, a500 on, a1200 off, a1200 on, vanilla. */ -const int winsinc_integral[5][SINC_QUEUE_MAX_AGE] = { +const int winsinc_integral[5][SINC_QUEUE_MAX_AGE] = +{ { -131072,131072,131072,131072,131072,131072,131072,131072,131072,131072,131072, -131071,131071,131071,131071,131071,131071,131071,131071,131071,131071,131071,131070, -131070,131070,131070,131070,131069,131069,131069,131069,131068,131068,131067,131067, -131066,131066,131065,131065,131064,131063,131062,131062,131061,131060,131058,131057, -131056,131055,131053,131051,131050,131048,131046,131043,131041,131039,131036,131033, -131030,131027,131023,131019,131016,131011,131007,131002,130997,130992,130986,130980, -130973,130967,130959,130952,130944,130935,130926,130917,130907,130896,130885,130873, -130861,130848,130835,130820,130805,130789,130773,130756,130737,130718,130698,130677, -130655,130633,130609,130584,130557,130530,130502,130472,130441,130408,130375,130339, -130303,130265,130225,130184,130141,130096,130050,130002,129952,129900,129846,129790, -129732,129672,129609,129545,129478,129409,129337,129263,129186,129107,129025,128940, -128852,128762,128669,128572,128473,128370,128264,128155,128043,127927,127807,127684, -127558,127428,127293,127156,127014,126868,126718,126564,126406,126243,126076,125905, -125729,125549,125364,125174,124980,124780,124576,124367,124152,123933,123708,123478, -123243,123002,122756,122505,122247,121985,121716,121442,121162,120876,120584,120286, -119982,119672,119356,119033,118705,118370,118029,117682,117328,116967,116601,116228, -115848,115462,115069,114670,114264,113851,113432,113006,112573,112134,111688,111236, -110777,110311,109838,109359,108874,108381,107882,107377,106865,106346,105821,105290, -104752,104208,103657,103100,102537,101968,101392,100811,100224,99630,99031,98426, -97816,97199,96578,95950,95318,94680,94037,93389,92736,92079,91416,90749,90077,89401, -88721,88037,87348,86656,85960,85260,84557,83851,83141,82429,81713,80995,80274,79551, -78826,78098,77369,76638,75905,75171,74435,73699,72961,72223,71484,70745,70006,69266, -68527,67788,67050,66312,65576,64840,64106,63373,62641,61912,61184,60459,59736,59015, -58297,57582,56871,56162,55457,54755,54058,53364,52674,51989,51308,50632,49960,49294, -48632,47976,47325,46680,46041,45407,44780,44158,43543,42934,42332,41737,41148,40566, -39991,39424,38863,38310,37765,37227,36696,36173,35659,35152,34652,34161,33678,33204, -32737,32279,31828,31387,30953,30528,30112,29704,29304,28913,28530,28155,27790,27432, -27083,26743,26411,26087,25772,25465,25166,24875,24593,24318,24052,23794,23543,23300, -23066,22838,22619,22406,22202,22004,21814,21631,21454,21285,21122,20966,20816,20673, -20536,20404,20279,20160,20046,19938,19835,19738,19645,19558,19475,19396,19322,19253, -19187,19126,19068,19014,18963,18915,18871,18830,18791,18755,18721,18690,18661,18633, -18608,18584,18561,18540,18520,18501,18483,18465,18448,18431,18414,18398,18381,18364, -18347,18329,18310,18291,18270,18249,18226,18203,18177,18150,18122,18092,18060,18026, -17990,17951,17911,17868,17823,17775,17725,17672,17617,17559,17498,17434,17368,17298, -17226,17150,17072,16990,16906,16818,16727,16634,16537,16437,16334,16228,16119,16007, -15892,15774,15653,15529,15403,15273,15141,15006,14868,14728,14585,14440,14293,14143, -13990,13836,13680,13521,13361,13198,13035,12869,12702,12533,12363,12192,12019,11846, -11671,11496,11320,11143,10966,10789,10611,10433,10255,10076,9898,9721,9543,9367,9190, -9015,8840,8666,8493,8322,8151,7982,7814,7648,7484,7321,7160,7002,6845,6690,6537, -6387,6239,6094,5951,5811,5673,5538,5406,5277,5151,5027,4907,4790,4676,4565,4458, -4354,4253,4155,4061,3970,3882,3798,3718,3640,3567,3496,3430,3366,3306,3250,3197, -3147,3100,3057,3018,2981,2948,2918,2892,2868,2847,2830,2815,2804,2795,2789,2786, -2785,2787,2792,2799,2809,2820,2834,2851,2869,2889,2911,2935,2961,2988,3017,3048, -3079,3113,3147,3182,3218,3256,3294,3332,3372,3412,3452,3493,3534,3575,3616,3657, -3698,3739,3780,3820,3860,3899,3937,3975,4012,4048,4083,4118,4151,4183,4213,4243, -4271,4297,4323,4346,4368,4389,4407,4424,4440,4453,4465,4474,4482,4488,4492,4494, -4494,4491,4487,4481,4472,4462,4449,4435,4418,4399,4378,4355,4330,4303,4274,4243, -4210,4176,4139,4100,4060,4017,3973,3927,3880,3831,3780,3728,3674,3619,3562,3504, -3445,3384,3323,3260,3196,3132,3066,2999,2932,2864,2796,2727,2657,2587,2516,2446, -2375,2304,2232,2161,2090,2019,1948,1878,1807,1738,1668,1599,1531,1464,1397,1331, -1266,1201,1138,1076,1015,954,896,838,782,726,673,620,570,520,473,426,382,339,297, -258,220,184,149,116,86,56,29,4,-20,-42,-62,-80,-96,-111,-123,-134,-143,-151,-156, --160,-162,-162,-161,-158,-153,-147,-139,-130,-119,-107,-93,-78,-61,-43,-24,-4,17,40, -64,89,114,141,168,197,226,256,286,318,349,381,414,447,481,514,548,582,616,651,685, -719,753,787,821,854,887,920,953,985,1016,1047,1077,1107,1136,1164,1192,1218,1244, -1269,1293,1316,1338,1359,1379,1398,1416,1433,1449,1463,1477,1489,1500,1509,1518, -1525,1531,1536,1539,1541,1542,1542,1541,1538,1534,1528,1522,1514,1505,1495,1483, -1471,1457,1442,1426,1409,1391,1372,1352,1331,1309,1286,1262,1238,1212,1186,1159, -1131,1102,1073,1044,1013,983,951,919,887,855,822,789,755,722,688,654,620,586,552, -518,484,451,417,384,351,318,285,253,221,190,159,129,99,69,41,12,-15,-42,-68,-93, --118,-142,-165,-187,-209,-229,-249,-268,-285,-302,-318,-333,-347,-361,-373,-384, --394,-403,-412,-419,-425,-430,-435,-438,-440,-442,-442,-442,-440,-438,-435,-431, --426,-420,-413,-405,-397,-388,-378,-367,-356,-344,-331,-318,-304,-289,-274,-258, --242,-225,-208,-191,-173,-154,-136,-117,-97,-78,-58,-38,-18,2,22,43,63,83,104,124, -144,164,184,204,223,243,262,281,299,317,335,352,369,386,402,418,433,448,462,475, -488,501,513,524,535,545,554,563,571,579,586,592,597,602,606,610,612,615,616,617, -617,616,615,613,610,607,603,599,593,588,581,574,567,559,550,541,532,521,511,500, -488,476,464,451,438,424,411,397,382,368,353,338,322,307,291,275,259,243,227,211, -195,179,163,147,130,115,99,83,67,52,37,21,7,-8,-22,-36,-50,-64,-77,-90,-103,-115, --127,-138,-149,-160,-170,-180,-189,-198,-207,-215,-222,-229,-236,-242,-248,-253, --258,-262,-266,-269,-272,-274,-276,-277,-278,-278,-278,-278,-277,-275,-273,-271, --268,-265,-262,-258,-253,-248,-243,-238,-232,-226,-219,-212,-205,-198,-190,-182, --174,-166,-157,-148,-139,-130,-121,-112,-102,-92,-83,-73,-63,-53,-43,-33,-23,-13,-3, -7,17,27,36,46,55,65,74,83,92,101,109,118,126,134,141,149,156,163,170,177,183,189, -194,200,205,210,214,218,222,226,229,232,234,237,239,240,241,242,243,243,244,243, -243,242,241,239,237,235,233,230,227,224,221,217,213,209,205,200,196,191,186,180, -175,169,163,157,151,145,139,132,126,119,113,106,99,92,85,79,72,65,58,51,44,37,31, -24,17,11,4,-2,-9,-15,-21,-27,-33,-39,-44,-50,-55,-60,-65,-70,-74,-79,-83,-87,-91, --95,-98,-102,-105,-108,-110,-113,-115,-117,-119,-121,-122,-123,-124,-125,-126,-126, --126,-126,-126,-126,-125,-124,-123,-122,-121,-119,-118,-116,-114,-112,-110,-107, --105,-102,-99,-96,-93,-90,-86,-83,-80,-76,-72,-69,-65,-61,-57,-53,-49,-45,-41,-37, --33,-29,-25,-21,-17,-13,-8,-4,0,3,7,11,15,19,22,26,30,33,36,40,43,46,49,52,55,57, -60,62,65,67,69,71,73,74,76,78,79,80,81,82,83,84,84,85,85,85,85,85,85,85,85,84,83, -83,82,81,80,79,77,76,75,73,72,70,68,66,64,62,60,58,56,54,52,49,47,45,42,40,37,35, -32,30,27,25,22,20,17,15,12,10,8,5,3,0,-2,-4,-6,-9,-11,-13,-15,-17,-19,-21,-22,-24, --26,-27,-29,-30,-32,-33,-34,-35,-37,-38,-39,-39,-40,-41,-42,-42,-43,-43,-43,-44, --44,-44,-44,-44,-44,-44,-44,-43,-43,-42,-42,-41,-41,-40,-39,-39,-38,-37,-36,-35, --34,-33,-32,-31,-29,-28,-27,-26,-24,-23,-22,-20,-19,-18,-16,-15,-14,-12,-11,-9,-8, --6,-5,-4,-2,-1,0,2,3,4,6,7,8,9,10,12,13,14,15,16,17,18,18,19,20,21,22,22,23,23,24, -24,25,25,26,26,26,27,27,27,27,27,27,27,27,27,27,27,26,26,26,25,25,25,24,24,23,23, -22,22,21,21,20,19,19,18,17,16,16,15,14,13,13,12,11,10,9,9,8,7,6,5,5,4,3,2,2,1,0, --1,-1,-2,-3,-3,-4,-5,-5,-6,-6,-7,-8,-8,-9,-9,-9,-10,-10,-11,-11,-11,-12,-12,-12, --12,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-12,-12, --12,-12,-11,-11,-11,-11,-10,-10,-10,-9,-9,-9,-8,-8,-8,-7,-7,-6,-6,-5,-5,-5,-4,-4, --3,-3,-3,-2,-2,-1,-1,-1,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7, -7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6,6,6,6,6,6,5,5,5,5,5,4,4,4,4,4,3,3,3,3,3, -2,2,2,2,2,1,1,1,1,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-2,-2,-2,-2,-2,-2,-2,-2,-3,-3,-3, --3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3, --3,-3,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0, -0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, --1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 131072,131072,131072,131072,131072,131072,131072,131072,131072,131072,131072, + 131071,131071,131071,131071,131071,131071,131071,131071,131071,131071,131071,131070, + 131070,131070,131070,131070,131069,131069,131069,131069,131068,131068,131067,131067, + 131066,131066,131065,131065,131064,131063,131062,131062,131061,131060,131058,131057, + 131056,131055,131053,131051,131050,131048,131046,131043,131041,131039,131036,131033, + 131030,131027,131023,131019,131016,131011,131007,131002,130997,130992,130986,130980, + 130973,130967,130959,130952,130944,130935,130926,130917,130907,130896,130885,130873, + 130861,130848,130835,130820,130805,130789,130773,130756,130737,130718,130698,130677, + 130655,130633,130609,130584,130557,130530,130502,130472,130441,130408,130375,130339, + 130303,130265,130225,130184,130141,130096,130050,130002,129952,129900,129846,129790, + 129732,129672,129609,129545,129478,129409,129337,129263,129186,129107,129025,128940, + 128852,128762,128669,128572,128473,128370,128264,128155,128043,127927,127807,127684, + 127558,127428,127293,127156,127014,126868,126718,126564,126406,126243,126076,125905, + 125729,125549,125364,125174,124980,124780,124576,124367,124152,123933,123708,123478, + 123243,123002,122756,122505,122247,121985,121716,121442,121162,120876,120584,120286, + 119982,119672,119356,119033,118705,118370,118029,117682,117328,116967,116601,116228, + 115848,115462,115069,114670,114264,113851,113432,113006,112573,112134,111688,111236, + 110777,110311,109838,109359,108874,108381,107882,107377,106865,106346,105821,105290, + 104752,104208,103657,103100,102537,101968,101392,100811,100224,99630,99031,98426, + 97816,97199,96578,95950,95318,94680,94037,93389,92736,92079,91416,90749,90077,89401, + 88721,88037,87348,86656,85960,85260,84557,83851,83141,82429,81713,80995,80274,79551, + 78826,78098,77369,76638,75905,75171,74435,73699,72961,72223,71484,70745,70006,69266, + 68527,67788,67050,66312,65576,64840,64106,63373,62641,61912,61184,60459,59736,59015, + 58297,57582,56871,56162,55457,54755,54058,53364,52674,51989,51308,50632,49960,49294, + 48632,47976,47325,46680,46041,45407,44780,44158,43543,42934,42332,41737,41148,40566, + 39991,39424,38863,38310,37765,37227,36696,36173,35659,35152,34652,34161,33678,33204, + 32737,32279,31828,31387,30953,30528,30112,29704,29304,28913,28530,28155,27790,27432, + 27083,26743,26411,26087,25772,25465,25166,24875,24593,24318,24052,23794,23543,23300, + 23066,22838,22619,22406,22202,22004,21814,21631,21454,21285,21122,20966,20816,20673, + 20536,20404,20279,20160,20046,19938,19835,19738,19645,19558,19475,19396,19322,19253, + 19187,19126,19068,19014,18963,18915,18871,18830,18791,18755,18721,18690,18661,18633, + 18608,18584,18561,18540,18520,18501,18483,18465,18448,18431,18414,18398,18381,18364, + 18347,18329,18310,18291,18270,18249,18226,18203,18177,18150,18122,18092,18060,18026, + 17990,17951,17911,17868,17823,17775,17725,17672,17617,17559,17498,17434,17368,17298, + 17226,17150,17072,16990,16906,16818,16727,16634,16537,16437,16334,16228,16119,16007, + 15892,15774,15653,15529,15403,15273,15141,15006,14868,14728,14585,14440,14293,14143, + 13990,13836,13680,13521,13361,13198,13035,12869,12702,12533,12363,12192,12019,11846, + 11671,11496,11320,11143,10966,10789,10611,10433,10255,10076,9898,9721,9543,9367,9190, + 9015,8840,8666,8493,8322,8151,7982,7814,7648,7484,7321,7160,7002,6845,6690,6537, + 6387,6239,6094,5951,5811,5673,5538,5406,5277,5151,5027,4907,4790,4676,4565,4458, + 4354,4253,4155,4061,3970,3882,3798,3718,3640,3567,3496,3430,3366,3306,3250,3197, + 3147,3100,3057,3018,2981,2948,2918,2892,2868,2847,2830,2815,2804,2795,2789,2786, + 2785,2787,2792,2799,2809,2820,2834,2851,2869,2889,2911,2935,2961,2988,3017,3048, + 3079,3113,3147,3182,3218,3256,3294,3332,3372,3412,3452,3493,3534,3575,3616,3657, + 3698,3739,3780,3820,3860,3899,3937,3975,4012,4048,4083,4118,4151,4183,4213,4243, + 4271,4297,4323,4346,4368,4389,4407,4424,4440,4453,4465,4474,4482,4488,4492,4494, + 4494,4491,4487,4481,4472,4462,4449,4435,4418,4399,4378,4355,4330,4303,4274,4243, + 4210,4176,4139,4100,4060,4017,3973,3927,3880,3831,3780,3728,3674,3619,3562,3504, + 3445,3384,3323,3260,3196,3132,3066,2999,2932,2864,2796,2727,2657,2587,2516,2446, + 2375,2304,2232,2161,2090,2019,1948,1878,1807,1738,1668,1599,1531,1464,1397,1331, + 1266,1201,1138,1076,1015,954,896,838,782,726,673,620,570,520,473,426,382,339,297, + 258,220,184,149,116,86,56,29,4,-20,-42,-62,-80,-96,-111,-123,-134,-143,-151,-156, + -160,-162,-162,-161,-158,-153,-147,-139,-130,-119,-107,-93,-78,-61,-43,-24,-4,17,40, + 64,89,114,141,168,197,226,256,286,318,349,381,414,447,481,514,548,582,616,651,685, + 719,753,787,821,854,887,920,953,985,1016,1047,1077,1107,1136,1164,1192,1218,1244, + 1269,1293,1316,1338,1359,1379,1398,1416,1433,1449,1463,1477,1489,1500,1509,1518, + 1525,1531,1536,1539,1541,1542,1542,1541,1538,1534,1528,1522,1514,1505,1495,1483, + 1471,1457,1442,1426,1409,1391,1372,1352,1331,1309,1286,1262,1238,1212,1186,1159, + 1131,1102,1073,1044,1013,983,951,919,887,855,822,789,755,722,688,654,620,586,552, + 518,484,451,417,384,351,318,285,253,221,190,159,129,99,69,41,12,-15,-42,-68,-93, + -118,-142,-165,-187,-209,-229,-249,-268,-285,-302,-318,-333,-347,-361,-373,-384, + -394,-403,-412,-419,-425,-430,-435,-438,-440,-442,-442,-442,-440,-438,-435,-431, + -426,-420,-413,-405,-397,-388,-378,-367,-356,-344,-331,-318,-304,-289,-274,-258, + -242,-225,-208,-191,-173,-154,-136,-117,-97,-78,-58,-38,-18,2,22,43,63,83,104,124, + 144,164,184,204,223,243,262,281,299,317,335,352,369,386,402,418,433,448,462,475, + 488,501,513,524,535,545,554,563,571,579,586,592,597,602,606,610,612,615,616,617, + 617,616,615,613,610,607,603,599,593,588,581,574,567,559,550,541,532,521,511,500, + 488,476,464,451,438,424,411,397,382,368,353,338,322,307,291,275,259,243,227,211, + 195,179,163,147,130,115,99,83,67,52,37,21,7,-8,-22,-36,-50,-64,-77,-90,-103,-115, + -127,-138,-149,-160,-170,-180,-189,-198,-207,-215,-222,-229,-236,-242,-248,-253, + -258,-262,-266,-269,-272,-274,-276,-277,-278,-278,-278,-278,-277,-275,-273,-271, + -268,-265,-262,-258,-253,-248,-243,-238,-232,-226,-219,-212,-205,-198,-190,-182, + -174,-166,-157,-148,-139,-130,-121,-112,-102,-92,-83,-73,-63,-53,-43,-33,-23,-13,-3, + 7,17,27,36,46,55,65,74,83,92,101,109,118,126,134,141,149,156,163,170,177,183,189, + 194,200,205,210,214,218,222,226,229,232,234,237,239,240,241,242,243,243,244,243, + 243,242,241,239,237,235,233,230,227,224,221,217,213,209,205,200,196,191,186,180, + 175,169,163,157,151,145,139,132,126,119,113,106,99,92,85,79,72,65,58,51,44,37,31, + 24,17,11,4,-2,-9,-15,-21,-27,-33,-39,-44,-50,-55,-60,-65,-70,-74,-79,-83,-87,-91, + -95,-98,-102,-105,-108,-110,-113,-115,-117,-119,-121,-122,-123,-124,-125,-126,-126, + -126,-126,-126,-126,-125,-124,-123,-122,-121,-119,-118,-116,-114,-112,-110,-107, + -105,-102,-99,-96,-93,-90,-86,-83,-80,-76,-72,-69,-65,-61,-57,-53,-49,-45,-41,-37, + -33,-29,-25,-21,-17,-13,-8,-4,0,3,7,11,15,19,22,26,30,33,36,40,43,46,49,52,55,57, + 60,62,65,67,69,71,73,74,76,78,79,80,81,82,83,84,84,85,85,85,85,85,85,85,85,84,83, + 83,82,81,80,79,77,76,75,73,72,70,68,66,64,62,60,58,56,54,52,49,47,45,42,40,37,35, + 32,30,27,25,22,20,17,15,12,10,8,5,3,0,-2,-4,-6,-9,-11,-13,-15,-17,-19,-21,-22,-24, + -26,-27,-29,-30,-32,-33,-34,-35,-37,-38,-39,-39,-40,-41,-42,-42,-43,-43,-43,-44, + -44,-44,-44,-44,-44,-44,-44,-43,-43,-42,-42,-41,-41,-40,-39,-39,-38,-37,-36,-35, + -34,-33,-32,-31,-29,-28,-27,-26,-24,-23,-22,-20,-19,-18,-16,-15,-14,-12,-11,-9,-8, + -6,-5,-4,-2,-1,0,2,3,4,6,7,8,9,10,12,13,14,15,16,17,18,18,19,20,21,22,22,23,23,24, + 24,25,25,26,26,26,27,27,27,27,27,27,27,27,27,27,27,26,26,26,25,25,25,24,24,23,23, + 22,22,21,21,20,19,19,18,17,16,16,15,14,13,13,12,11,10,9,9,8,7,6,5,5,4,3,2,2,1,0, + -1,-1,-2,-3,-3,-4,-5,-5,-6,-6,-7,-8,-8,-9,-9,-9,-10,-10,-11,-11,-11,-12,-12,-12, + -12,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-12,-12, + -12,-12,-11,-11,-11,-11,-10,-10,-10,-9,-9,-9,-8,-8,-8,-7,-7,-6,-6,-5,-5,-5,-4,-4, + -3,-3,-3,-2,-2,-1,-1,-1,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6,6,6,6,6,6,5,5,5,5,5,4,4,4,4,4,3,3,3,3,3, + 2,2,2,2,2,1,1,1,1,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-2,-2,-2,-2,-2,-2,-2,-2,-3,-3,-3, + -3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3, + -3,-3,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0, + 0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, }, { -131072,131072,131072,131072,131072,131072,131072,131072,131072,131072,131072, -131072,131071,131071,131071,131071,131071,131071,131071,131071,131071,131071,131071, -131071,131071,131071,131071,131071,131071,131071,131071,131071,131071,131071,131071, -131070,131070,131070,131070,131070,131070,131070,131070,131070,131070,131070,131070, -131070,131070,131070,131070,131070,131070,131070,131070,131070,131070,131069,131069, -131069,131069,131069,131069,131069,131069,131069,131069,131069,131069,131069,131069, -131069,131068,131068,131068,131068,131068,131068,131068,131068,131068,131068,131067, -131067,131067,131067,131067,131067,131067,131066,131066,131066,131066,131066,131065, -131065,131065,131065,131064,131064,131064,131064,131063,131063,131062,131062,131062, -131061,131061,131060,131060,131059,131059,131058,131058,131057,131056,131056,131055, -131054,131053,131052,131052,131051,131050,131049,131048,131046,131045,131044,131043, -131041,131040,131038,131037,131035,131034,131032,131030,131028,131026,131024,131022, -131020,131017,131015,131012,131010,131007,131004,131001,130998,130994,130991,130987, -130984,130980,130976,130972,130968,130963,130959,130954,130949,130944,130938,130933, -130927,130921,130915,130909,130902,130895,130888,130881,130873,130865,130857,130849, -130840,130831,130822,130813,130803,130793,130782,130771,130760,130749,130737,130725, -130712,130699,130685,130672,130657,130643,130628,130612,130596,130580,130563,130545, -130528,130509,130490,130471,130451,130430,130409,130388,130365,130343,130319,130295, -130270,130245,130219,130193,130165,130137,130109,130079,130049,130018,129987,129954, -129921,129887,129853,129817,129781,129744,129706,129667,129627,129587,129545,129503, -129459,129415,129370,129324,129276,129228,129179,129129,129078,129026,128972,128918, -128862,128806,128748,128690,128630,128569,128507,128443,128379,128313,128246,128178, -128109,128038,127966,127893,127819,127743,127667,127588,127509,127428,127346,127262, -127177,127091,127004,126915,126824,126732,126639,126545,126449,126351,126252,126152, -126050,125947,125842,125736,125628,125519,125408,125296,125182,125067,124950,124832, -124712,124591,124468,124344,124218,124090,123961,123830,123698,123564,123429,123292, -123154,123014,122872,122729,122585,122438,122291,122141,121990,121838,121684,121528, -121371,121212,121052,120891,120727,120562,120396,120228,120059,119888,119715,119541, -119366,119189,119011,118831,118649,118467,118282,118097,117909,117721,117531,117339, -117146,116952,116757,116560,116361,116161,115960,115758,115554,115349,115143,114935, -114726,114516,114305,114092,113878,113663,113447,113229,113011,112791,112570,112348, -112124,111900,111675,111448,111220,110992,110762,110531,110300,110067,109833,109598, -109363,109126,108889,108650,108411,108171,107930,107688,107445,107201,106957,106712, -106466,106219,105972,105723,105474,105225,104974,104723,104471,104219,103966,103712, -103458,103203,102948,102692,102435,102178,101920,101662,101403,101144,100885,100624, -100364,100103,99841,99579,99317,99054,98791,98527,98264,97999,97735,97470,97204,96939, -96673,96407,96140,95873,95606,95339,95071,94804,94536,94267,93999,93730,93461,93192, -92923,92653,92383,92114,91844,91573,91303,91033,90762,90491,90220,89949,89678,89407, -89136,88865,88593,88321,88050,87778,87506,87234,86962,86690,86418,86146,85874,85602, -85330,85057,84785,84513,84240,83968,83696,83423,83151,82878,82606,82333,82061,81789, -81516,81244,80971,80699,80427,80154,79882,79610,79337,79065,78793,78521,78249,77977, -77705,77433,77161,76889,76617,76345,76074,75802,75531,75259,74988,74717,74446,74175, -73904,73633,73362,73092,72821,72551,72280,72010,71740,71470,71201,70931,70661,70392, -70123,69854,69585,69317,69048,68780,68512,68244,67976,67709,67441,67174,66907,66641, -66374,66108,65842,65576,65311,65046,64781,64516,64252,63988,63724,63460,63197,62934, -62672,62409,62147,61886,61624,61363,61103,60843,60583,60323,60064,59805,59547,59289, -59031,58774,58517,58261,58005,57749,57494,57239,56985,56731,56478,56225,55973,55721, -55470,55219,54968,54718,54469,54220,53971,53724,53476,53229,52983,52737,52492,52247, -52003,51759,51516,51274,51032,50791,50550,50310,50070,49831,49593,49355,49118,48881, -48645,48410,48175,47941,47707,47474,47242,47010,46779,46549,46319,46090,45861,45633, -45406,45179,44953,44728,44503,44279,44056,43833,43611,43389,43168,42948,42728,42510, -42291,42074,41857,41640,41425,41210,40995,40782,40568,40356,40144,39933,39723,39513, -39304,39095,38887,38680,38473,38267,38062,37857,37653,37449,37247,37044,36843,36642, -36442,36242,36043,35845,35647,35450,35253,35057,34862,34667,34473,34280,34087,33894, -33703,33512,33321,33132,32942,32754,32566,32378,32192,32006,31820,31635,31451,31267, -31084,30901,30719,30538,30357,30177,29997,29818,29640,29462,29285,29108,28932,28756, -28581,28407,28233,28060,27888,27716,27545,27374,27204,27034,26865,26697,26529,26362, -26195,26029,25863,25699,25534,25371,25207,25045,24883,24722,24561,24401,24241,24082, -23924,23766,23609,23453,23297,23142,22987,22833,22679,22526,22374,22222,22071,21921, -21771,21622,21473,21325,21177,21031,20884,20739,20594,20449,20306,20162,20020,19878, -19737,19596,19456,19316,19178,19039,18902,18765,18628,18493,18358,18223,18089,17956, -17823,17691,17560,17429,17299,17169,17040,16912,16784,16657,16531,16405,16280,16155, -16031,15908,15785,15663,15541,15420,15300,15180,15061,14942,14824,14707,14590,14474, -14358,14243,14129,14015,13901,13789,13677,13565,13454,13344,13234,13125,13016,12908, -12801,12694,12588,12482,12377,12272,12168,12064,11961,11859,11757,11655,11554,11454, -11354,11255,11156,11058,10960,10863,10766,10670,10575,10480,10385,10291,10197,10104, -10012,9920,9828,9737,9646,9556,9466,9377,9289,9200,9113,9025,8939,8852,8766,8681, -8596,8512,8428,8344,8261,8178,8096,8014,7933,7852,7772,7692,7612,7533,7455,7376, -7299,7221,7144,7068,6992,6916,6841,6766,6692,6618,6544,6471,6398,6326,6254,6182, -6111,6041,5970,5901,5831,5762,5693,5625,5557,5490,5423,5356,5290,5224,5159,5093, -5029,4965,4901,4837,4774,4711,4649,4587,4525,4464,4404,4343,4283,4224,4164,4105, -4047,3989,3931,3874,3817,3760,3704,3648,3593,3538,3483,3429,3375,3321,3268,3215, -3163,3111,3059,3008,2957,2906,2856,2806,2756,2707,2658,2610,2562,2514,2466,2419, -2373,2326,2280,2235,2189,2144,2100,2056,2012,1968,1925,1882,1839,1797,1755,1714, -1672,1631,1591,1551,1511,1471,1432,1393,1354,1316,1278,1240,1203,1165,1129,1092, -1056,1020,984,949,914,879,845,811,777,743,710,677,644,612,580,548,516,485,454,423, -393,362,332,303,273,244,215,186,158,129,101,74,46,19,-8,-35,-61,-88,-114,-140,-165, --191,-216,-241,-265,-290,-314,-338,-362,-386,-409,-432,-455,-478,-501,-523,-545, --567,-589,-610,-632,-653,-674,-694,-715,-735,-756,-775,-795,-815,-834,-853,-872, --891,-910,-928,-947,-965,-983,-1000,-1018,-1035,-1052,-1069,-1086,-1103,-1119,-1136, --1152,-1168,-1184,-1199,-1215,-1230,-1245,-1260,-1275,-1289,-1304,-1318,-1332,-1346, --1360,-1373,-1387,-1400,-1413,-1426,-1439,-1452,-1464,-1477,-1489,-1501,-1513,-1524, --1536,-1547,-1558,-1570,-1581,-1591,-1602,-1612,-1623,-1633,-1643,-1653,-1663,-1672, --1682,-1691,-1700,-1709,-1718,-1727,-1735,-1744,-1752,-1760,-1768,-1776,-1784,-1792, --1799,-1807,-1814,-1821,-1828,-1835,-1842,-1848,-1855,-1861,-1867,-1873,-1879,-1885, --1891,-1896,-1902,-1907,-1913,-1918,-1923,-1928,-1932,-1937,-1942,-1946,-1950,-1955, --1959,-1963,-1967,-1971,-1974,-1978,-1981,-1985,-1988,-1991,-1994,-1997,-2000,-2003, --2006,-2009,-2011,-2013,-2016,-2018,-2020,-2022,-2024,-2026,-2028,-2030,-2032,-2033, --2035,-2036,-2037,-2039,-2040,-2041,-2042,-2043,-2044,-2045,-2045,-2046,-2047,-2047, --2048,-2048,-2048,-2049,-2049,-2049,-2049,-2049,-2049,-2049,-2049,-2048,-2048,-2048, --2047,-2047,-2046,-2046,-2045,-2044,-2043,-2043,-2042,-2041,-2040,-2039,-2038,-2036, --2035,-2034,-2033,-2031,-2030,-2028,-2027,-2025,-2024,-2022,-2020,-2019,-2017,-2015, --2013,-2011,-2009,-2007,-2005,-2003,-2001,-1998,-1996,-1994,-1992,-1989,-1987,-1984, --1982,-1979,-1977,-1974,-1971,-1969,-1966,-1963,-1960,-1957,-1954,-1952,-1949,-1946, --1942,-1939,-1936,-1933,-1930,-1927,-1923,-1920,-1917,-1913,-1910,-1906,-1903,-1899, --1896,-1892,-1889,-1885,-1881,-1878,-1874,-1870,-1866,-1863,-1859,-1855,-1851,-1847, --1843,-1839,-1835,-1831,-1827,-1823,-1819,-1814,-1810,-1806,-1802,-1798,-1793,-1789, --1785,-1780,-1776,-1771,-1767,-1763,-1758,-1754,-1749,-1745,-1740,-1736,-1731,-1726, --1722,-1717,-1713,-1708,-1703,-1698,-1694,-1689,-1684,-1680,-1675,-1670,-1665,-1660, --1656,-1651,-1646,-1641,-1636,-1631,-1626,-1622,-1617,-1612,-1607,-1602,-1597,-1592, --1587,-1582,-1577,-1572,-1567,-1562,-1557,-1552,-1547,-1542,-1537,-1532,-1527,-1522, --1517,-1512,-1507,-1502,-1497,-1492,-1487,-1482,-1477,-1471,-1466,-1461,-1456,-1451, --1446,-1441,-1436,-1431,-1426,-1421,-1416,-1411,-1406,-1401,-1395,-1390,-1385,-1380, --1375,-1370,-1365,-1360,-1355,-1350,-1345,-1340,-1335,-1330,-1325,-1320,-1315,-1310, --1305,-1300,-1295,-1290,-1285,-1280,-1275,-1270,-1265,-1260,-1255,-1250,-1245,-1240, --1235,-1230,-1225,-1220,-1215,-1210,-1205,-1200,-1195,-1190,-1185,-1180,-1175,-1171, --1166,-1161,-1156,-1151,-1146,-1141,-1136,-1131,-1127,-1122,-1117,-1112,-1107,-1102, --1098,-1093,-1088,-1083,-1078,-1074,-1069,-1064,-1059,-1055,-1050,-1045,-1040,-1036, --1031,-1026,-1022,-1017,-1012,-1007,-1003,-998,-994,-989,-984,-980,-975,-970,-966, --961,-957,-952,-948,-943,-938,-934,-929,-925,-920,-916,-911,-907,-902,-898,-894, --889,-885,-880,-876,-872,-867,-863,-858,-854,-850,-845,-841,-837,-833,-828,-824, --820,-816,-811,-807,-803,-799,-795,-790,-786,-782,-778,-774,-770,-766,-762,-757, --753,-749,-745,-741,-737,-733,-729,-725,-721,-717,-714,-710,-706,-702,-698,-694, --690,-686,-683,-679,-675,-671,-667,-664,-660,-656,-652,-649,-645,-641,-638,-634, --630,-627,-623,-620,-616,-612,-609,-605,-602,-598,-595,-591,-588,-584,-581,-577, --574,-571,-567,-564,-560,-557,-554,-550,-547,-544,-540,-537,-534,-530,-527,-524, --521,-518,-514,-511,-508,-505,-502,-499,-495,-492,-489,-486,-483,-480,-477,-474, --471,-468,-465,-462,-459,-456,-453,-450,-447,-444,-441,-438,-435,-433,-430,-427, --424,-421,-418,-416,-413,-410,-407,-405,-402,-399,-396,-394,-391,-388,-386,-383, --380,-378,-375,-373,-370,-367,-365,-362,-360,-357,-355,-352,-350,-347,-345,-342, --340,-337,-335,-333,-330,-328,-325,-323,-321,-318,-316,-314,-311,-309,-307,-305, --302,-300,-298,-296,-293,-291,-289,-287,-285,-282,-280,-278,-276,-274,-272,-270, --268,-266,-264,-261,-259,-257,-255,-253,-251,-249,-247,-246,-244,-242,-240,-238, --236,-234,-232,-230,-228,-227,-225,-223,-221,-219,-217,-216,-214,-212,-210,-209, --207,-205,-203,-202,-200,-198,-197,-195,-193,-192,-190,-188,-187,-185,-184,-182, --180,-179,-177,-176,-174,-173,-171,-170,-168,-167,-165,-164,-162,-161,-159,-158, --156,-155,-154,-152,-151,-149,-148,-147,-145,-144,-143,-141,-140,-139,-137,-136, --135,-133,-132,-131,-130,-128,-127,-126,-125,-123,-122,-121,-120,-119,-117,-116, --115,-114,-113,-112,-111,-109,-108,-107,-106,-105,-104,-103,-102,-101,-100,-99,-98, --97,-96,-95,-94,-93,-92,-91,-90,-89,-88,-87,-86,-85,-84,-83,-82,-81,-80,-79,-78, --78,-77,-76,-75,-74,-73,-72,-71,-71,-70,-69,-68,-67,-67,-66,-65,-64,-63,-63,-62, --61,-60,-60,-59,-58,-58,-57,-56,-55,-55,-54,-53,-53,-52,-51,-51,-50,-49,-49,-48, --47,-47,-46,-45,-45,-44,-44,-43,-42,-42,-41,-41,-40,-40,-39,-38,-38,-37,-37,-36, --36,-35,-35,-34,-34,-33,-33,-32,-32,-31,-31,-30,-30,-29,-29,-28,-28,-28,-27,-27, --26,-26,-25,-25,-25,-24,-24,-23,-23,-23,-22,-22,-21,-21,-21,-20,-20,-20,-19,-19, --19,-18,-18,-17,-17,-17,-17,-16,-16,-16,-15,-15,-15,-14,-14,-14,-13,-13,-13,-13, --12,-12,-12,-12,-11,-11,-11,-11,-10,-10,-10,-10,-9,-9,-9,-9,-9,-8,-8,-8,-8,-7,-7, --7,-7,-7,-7,-6,-6,-6,-6,-6,-5,-5,-5,-5,-5,-5,-5,-4,-4,-4,-4,-4,-4,-4,-3,-3,-3,-3, --3,-3,-3,-3,-3,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, --1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 131072,131072,131072,131072,131072,131072,131072,131072,131072,131072,131072, + 131072,131071,131071,131071,131071,131071,131071,131071,131071,131071,131071,131071, + 131071,131071,131071,131071,131071,131071,131071,131071,131071,131071,131071,131071, + 131070,131070,131070,131070,131070,131070,131070,131070,131070,131070,131070,131070, + 131070,131070,131070,131070,131070,131070,131070,131070,131070,131070,131069,131069, + 131069,131069,131069,131069,131069,131069,131069,131069,131069,131069,131069,131069, + 131069,131068,131068,131068,131068,131068,131068,131068,131068,131068,131068,131067, + 131067,131067,131067,131067,131067,131067,131066,131066,131066,131066,131066,131065, + 131065,131065,131065,131064,131064,131064,131064,131063,131063,131062,131062,131062, + 131061,131061,131060,131060,131059,131059,131058,131058,131057,131056,131056,131055, + 131054,131053,131052,131052,131051,131050,131049,131048,131046,131045,131044,131043, + 131041,131040,131038,131037,131035,131034,131032,131030,131028,131026,131024,131022, + 131020,131017,131015,131012,131010,131007,131004,131001,130998,130994,130991,130987, + 130984,130980,130976,130972,130968,130963,130959,130954,130949,130944,130938,130933, + 130927,130921,130915,130909,130902,130895,130888,130881,130873,130865,130857,130849, + 130840,130831,130822,130813,130803,130793,130782,130771,130760,130749,130737,130725, + 130712,130699,130685,130672,130657,130643,130628,130612,130596,130580,130563,130545, + 130528,130509,130490,130471,130451,130430,130409,130388,130365,130343,130319,130295, + 130270,130245,130219,130193,130165,130137,130109,130079,130049,130018,129987,129954, + 129921,129887,129853,129817,129781,129744,129706,129667,129627,129587,129545,129503, + 129459,129415,129370,129324,129276,129228,129179,129129,129078,129026,128972,128918, + 128862,128806,128748,128690,128630,128569,128507,128443,128379,128313,128246,128178, + 128109,128038,127966,127893,127819,127743,127667,127588,127509,127428,127346,127262, + 127177,127091,127004,126915,126824,126732,126639,126545,126449,126351,126252,126152, + 126050,125947,125842,125736,125628,125519,125408,125296,125182,125067,124950,124832, + 124712,124591,124468,124344,124218,124090,123961,123830,123698,123564,123429,123292, + 123154,123014,122872,122729,122585,122438,122291,122141,121990,121838,121684,121528, + 121371,121212,121052,120891,120727,120562,120396,120228,120059,119888,119715,119541, + 119366,119189,119011,118831,118649,118467,118282,118097,117909,117721,117531,117339, + 117146,116952,116757,116560,116361,116161,115960,115758,115554,115349,115143,114935, + 114726,114516,114305,114092,113878,113663,113447,113229,113011,112791,112570,112348, + 112124,111900,111675,111448,111220,110992,110762,110531,110300,110067,109833,109598, + 109363,109126,108889,108650,108411,108171,107930,107688,107445,107201,106957,106712, + 106466,106219,105972,105723,105474,105225,104974,104723,104471,104219,103966,103712, + 103458,103203,102948,102692,102435,102178,101920,101662,101403,101144,100885,100624, + 100364,100103,99841,99579,99317,99054,98791,98527,98264,97999,97735,97470,97204,96939, + 96673,96407,96140,95873,95606,95339,95071,94804,94536,94267,93999,93730,93461,93192, + 92923,92653,92383,92114,91844,91573,91303,91033,90762,90491,90220,89949,89678,89407, + 89136,88865,88593,88321,88050,87778,87506,87234,86962,86690,86418,86146,85874,85602, + 85330,85057,84785,84513,84240,83968,83696,83423,83151,82878,82606,82333,82061,81789, + 81516,81244,80971,80699,80427,80154,79882,79610,79337,79065,78793,78521,78249,77977, + 77705,77433,77161,76889,76617,76345,76074,75802,75531,75259,74988,74717,74446,74175, + 73904,73633,73362,73092,72821,72551,72280,72010,71740,71470,71201,70931,70661,70392, + 70123,69854,69585,69317,69048,68780,68512,68244,67976,67709,67441,67174,66907,66641, + 66374,66108,65842,65576,65311,65046,64781,64516,64252,63988,63724,63460,63197,62934, + 62672,62409,62147,61886,61624,61363,61103,60843,60583,60323,60064,59805,59547,59289, + 59031,58774,58517,58261,58005,57749,57494,57239,56985,56731,56478,56225,55973,55721, + 55470,55219,54968,54718,54469,54220,53971,53724,53476,53229,52983,52737,52492,52247, + 52003,51759,51516,51274,51032,50791,50550,50310,50070,49831,49593,49355,49118,48881, + 48645,48410,48175,47941,47707,47474,47242,47010,46779,46549,46319,46090,45861,45633, + 45406,45179,44953,44728,44503,44279,44056,43833,43611,43389,43168,42948,42728,42510, + 42291,42074,41857,41640,41425,41210,40995,40782,40568,40356,40144,39933,39723,39513, + 39304,39095,38887,38680,38473,38267,38062,37857,37653,37449,37247,37044,36843,36642, + 36442,36242,36043,35845,35647,35450,35253,35057,34862,34667,34473,34280,34087,33894, + 33703,33512,33321,33132,32942,32754,32566,32378,32192,32006,31820,31635,31451,31267, + 31084,30901,30719,30538,30357,30177,29997,29818,29640,29462,29285,29108,28932,28756, + 28581,28407,28233,28060,27888,27716,27545,27374,27204,27034,26865,26697,26529,26362, + 26195,26029,25863,25699,25534,25371,25207,25045,24883,24722,24561,24401,24241,24082, + 23924,23766,23609,23453,23297,23142,22987,22833,22679,22526,22374,22222,22071,21921, + 21771,21622,21473,21325,21177,21031,20884,20739,20594,20449,20306,20162,20020,19878, + 19737,19596,19456,19316,19178,19039,18902,18765,18628,18493,18358,18223,18089,17956, + 17823,17691,17560,17429,17299,17169,17040,16912,16784,16657,16531,16405,16280,16155, + 16031,15908,15785,15663,15541,15420,15300,15180,15061,14942,14824,14707,14590,14474, + 14358,14243,14129,14015,13901,13789,13677,13565,13454,13344,13234,13125,13016,12908, + 12801,12694,12588,12482,12377,12272,12168,12064,11961,11859,11757,11655,11554,11454, + 11354,11255,11156,11058,10960,10863,10766,10670,10575,10480,10385,10291,10197,10104, + 10012,9920,9828,9737,9646,9556,9466,9377,9289,9200,9113,9025,8939,8852,8766,8681, + 8596,8512,8428,8344,8261,8178,8096,8014,7933,7852,7772,7692,7612,7533,7455,7376, + 7299,7221,7144,7068,6992,6916,6841,6766,6692,6618,6544,6471,6398,6326,6254,6182, + 6111,6041,5970,5901,5831,5762,5693,5625,5557,5490,5423,5356,5290,5224,5159,5093, + 5029,4965,4901,4837,4774,4711,4649,4587,4525,4464,4404,4343,4283,4224,4164,4105, + 4047,3989,3931,3874,3817,3760,3704,3648,3593,3538,3483,3429,3375,3321,3268,3215, + 3163,3111,3059,3008,2957,2906,2856,2806,2756,2707,2658,2610,2562,2514,2466,2419, + 2373,2326,2280,2235,2189,2144,2100,2056,2012,1968,1925,1882,1839,1797,1755,1714, + 1672,1631,1591,1551,1511,1471,1432,1393,1354,1316,1278,1240,1203,1165,1129,1092, + 1056,1020,984,949,914,879,845,811,777,743,710,677,644,612,580,548,516,485,454,423, + 393,362,332,303,273,244,215,186,158,129,101,74,46,19,-8,-35,-61,-88,-114,-140,-165, + -191,-216,-241,-265,-290,-314,-338,-362,-386,-409,-432,-455,-478,-501,-523,-545, + -567,-589,-610,-632,-653,-674,-694,-715,-735,-756,-775,-795,-815,-834,-853,-872, + -891,-910,-928,-947,-965,-983,-1000,-1018,-1035,-1052,-1069,-1086,-1103,-1119,-1136, + -1152,-1168,-1184,-1199,-1215,-1230,-1245,-1260,-1275,-1289,-1304,-1318,-1332,-1346, + -1360,-1373,-1387,-1400,-1413,-1426,-1439,-1452,-1464,-1477,-1489,-1501,-1513,-1524, + -1536,-1547,-1558,-1570,-1581,-1591,-1602,-1612,-1623,-1633,-1643,-1653,-1663,-1672, + -1682,-1691,-1700,-1709,-1718,-1727,-1735,-1744,-1752,-1760,-1768,-1776,-1784,-1792, + -1799,-1807,-1814,-1821,-1828,-1835,-1842,-1848,-1855,-1861,-1867,-1873,-1879,-1885, + -1891,-1896,-1902,-1907,-1913,-1918,-1923,-1928,-1932,-1937,-1942,-1946,-1950,-1955, + -1959,-1963,-1967,-1971,-1974,-1978,-1981,-1985,-1988,-1991,-1994,-1997,-2000,-2003, + -2006,-2009,-2011,-2013,-2016,-2018,-2020,-2022,-2024,-2026,-2028,-2030,-2032,-2033, + -2035,-2036,-2037,-2039,-2040,-2041,-2042,-2043,-2044,-2045,-2045,-2046,-2047,-2047, + -2048,-2048,-2048,-2049,-2049,-2049,-2049,-2049,-2049,-2049,-2049,-2048,-2048,-2048, + -2047,-2047,-2046,-2046,-2045,-2044,-2043,-2043,-2042,-2041,-2040,-2039,-2038,-2036, + -2035,-2034,-2033,-2031,-2030,-2028,-2027,-2025,-2024,-2022,-2020,-2019,-2017,-2015, + -2013,-2011,-2009,-2007,-2005,-2003,-2001,-1998,-1996,-1994,-1992,-1989,-1987,-1984, + -1982,-1979,-1977,-1974,-1971,-1969,-1966,-1963,-1960,-1957,-1954,-1952,-1949,-1946, + -1942,-1939,-1936,-1933,-1930,-1927,-1923,-1920,-1917,-1913,-1910,-1906,-1903,-1899, + -1896,-1892,-1889,-1885,-1881,-1878,-1874,-1870,-1866,-1863,-1859,-1855,-1851,-1847, + -1843,-1839,-1835,-1831,-1827,-1823,-1819,-1814,-1810,-1806,-1802,-1798,-1793,-1789, + -1785,-1780,-1776,-1771,-1767,-1763,-1758,-1754,-1749,-1745,-1740,-1736,-1731,-1726, + -1722,-1717,-1713,-1708,-1703,-1698,-1694,-1689,-1684,-1680,-1675,-1670,-1665,-1660, + -1656,-1651,-1646,-1641,-1636,-1631,-1626,-1622,-1617,-1612,-1607,-1602,-1597,-1592, + -1587,-1582,-1577,-1572,-1567,-1562,-1557,-1552,-1547,-1542,-1537,-1532,-1527,-1522, + -1517,-1512,-1507,-1502,-1497,-1492,-1487,-1482,-1477,-1471,-1466,-1461,-1456,-1451, + -1446,-1441,-1436,-1431,-1426,-1421,-1416,-1411,-1406,-1401,-1395,-1390,-1385,-1380, + -1375,-1370,-1365,-1360,-1355,-1350,-1345,-1340,-1335,-1330,-1325,-1320,-1315,-1310, + -1305,-1300,-1295,-1290,-1285,-1280,-1275,-1270,-1265,-1260,-1255,-1250,-1245,-1240, + -1235,-1230,-1225,-1220,-1215,-1210,-1205,-1200,-1195,-1190,-1185,-1180,-1175,-1171, + -1166,-1161,-1156,-1151,-1146,-1141,-1136,-1131,-1127,-1122,-1117,-1112,-1107,-1102, + -1098,-1093,-1088,-1083,-1078,-1074,-1069,-1064,-1059,-1055,-1050,-1045,-1040,-1036, + -1031,-1026,-1022,-1017,-1012,-1007,-1003,-998,-994,-989,-984,-980,-975,-970,-966, + -961,-957,-952,-948,-943,-938,-934,-929,-925,-920,-916,-911,-907,-902,-898,-894, + -889,-885,-880,-876,-872,-867,-863,-858,-854,-850,-845,-841,-837,-833,-828,-824, + -820,-816,-811,-807,-803,-799,-795,-790,-786,-782,-778,-774,-770,-766,-762,-757, + -753,-749,-745,-741,-737,-733,-729,-725,-721,-717,-714,-710,-706,-702,-698,-694, + -690,-686,-683,-679,-675,-671,-667,-664,-660,-656,-652,-649,-645,-641,-638,-634, + -630,-627,-623,-620,-616,-612,-609,-605,-602,-598,-595,-591,-588,-584,-581,-577, + -574,-571,-567,-564,-560,-557,-554,-550,-547,-544,-540,-537,-534,-530,-527,-524, + -521,-518,-514,-511,-508,-505,-502,-499,-495,-492,-489,-486,-483,-480,-477,-474, + -471,-468,-465,-462,-459,-456,-453,-450,-447,-444,-441,-438,-435,-433,-430,-427, + -424,-421,-418,-416,-413,-410,-407,-405,-402,-399,-396,-394,-391,-388,-386,-383, + -380,-378,-375,-373,-370,-367,-365,-362,-360,-357,-355,-352,-350,-347,-345,-342, + -340,-337,-335,-333,-330,-328,-325,-323,-321,-318,-316,-314,-311,-309,-307,-305, + -302,-300,-298,-296,-293,-291,-289,-287,-285,-282,-280,-278,-276,-274,-272,-270, + -268,-266,-264,-261,-259,-257,-255,-253,-251,-249,-247,-246,-244,-242,-240,-238, + -236,-234,-232,-230,-228,-227,-225,-223,-221,-219,-217,-216,-214,-212,-210,-209, + -207,-205,-203,-202,-200,-198,-197,-195,-193,-192,-190,-188,-187,-185,-184,-182, + -180,-179,-177,-176,-174,-173,-171,-170,-168,-167,-165,-164,-162,-161,-159,-158, + -156,-155,-154,-152,-151,-149,-148,-147,-145,-144,-143,-141,-140,-139,-137,-136, + -135,-133,-132,-131,-130,-128,-127,-126,-125,-123,-122,-121,-120,-119,-117,-116, + -115,-114,-113,-112,-111,-109,-108,-107,-106,-105,-104,-103,-102,-101,-100,-99,-98, + -97,-96,-95,-94,-93,-92,-91,-90,-89,-88,-87,-86,-85,-84,-83,-82,-81,-80,-79,-78, + -78,-77,-76,-75,-74,-73,-72,-71,-71,-70,-69,-68,-67,-67,-66,-65,-64,-63,-63,-62, + -61,-60,-60,-59,-58,-58,-57,-56,-55,-55,-54,-53,-53,-52,-51,-51,-50,-49,-49,-48, + -47,-47,-46,-45,-45,-44,-44,-43,-42,-42,-41,-41,-40,-40,-39,-38,-38,-37,-37,-36, + -36,-35,-35,-34,-34,-33,-33,-32,-32,-31,-31,-30,-30,-29,-29,-28,-28,-28,-27,-27, + -26,-26,-25,-25,-25,-24,-24,-23,-23,-23,-22,-22,-21,-21,-21,-20,-20,-20,-19,-19, + -19,-18,-18,-17,-17,-17,-17,-16,-16,-16,-15,-15,-15,-14,-14,-14,-13,-13,-13,-13, + -12,-12,-12,-12,-11,-11,-11,-11,-10,-10,-10,-10,-9,-9,-9,-9,-9,-8,-8,-8,-8,-7,-7, + -7,-7,-7,-7,-6,-6,-6,-6,-6,-5,-5,-5,-5,-5,-5,-5,-4,-4,-4,-4,-4,-4,-4,-3,-3,-3,-3, + -3,-3,-3,-3,-3,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, + -1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, }, { -131072,131072,131072,131072,131072,131072,131072,131072,131072,131072,131072, -131072,131072,131072,131071,131071,131071,131071,131071,131071,131070,131070,131070, -131070,131069,131069,131069,131068,131068,131067,131066,131066,131065,131064,131063, -131062,131061,131059,131058,131056,131055,131053,131051,131049,131046,131044,131041, -131038,131035,131031,131028,131024,131019,131015,131010,131004,130998,130992,130986, -130979,130971,130963,130955,130945,130936,130925,130914,130903,130890,130877,130863, -130849,130833,130816,130799,130781,130761,130740,130719,130696,130672,130646,130619, -130591,130562,130531,130498,130463,130427,130390,130350,130308,130265,130219,130172, -130122,130069,130015,129958,129898,129836,129772,129704,129633,129560,129483,129404, -129321,129235,129145,129051,128954,128854,128749,128640,128527,128410,128289,128163, -128033,127898,127758,127613,127463,127308,127147,126982,126810,126633,126450,126261, -126066,125864,125657,125443,125222,124994,124759,124518,124269,124013,123749,123478, -123199,122912,122617,122314,122003,121683,121355,121017,120672,120317,119953,119579, -119197,118805,118403,117992,117570,117139,116698,116246,115784,115312,114829,114336, -113831,113316,112790,112253,111705,111145,110575,109992,109399,108794,108177,107549, -106909,106257,105594,104918,104231,103532,102821,102098,101363,100616,99858,99087, -98304,97510,96703,95885,95054,94212,93358,92493,91616,90727,89827,88915,87992,87058, -86113,85157,84190,83212,82224,81225,80216,79196,78167,77128,76079,75021,73953,72877, -71792,70698,69596,68485,67367,66241,65108,63967,62820,61666,60506,59339,58168,56990, -55808,54621,53429,52234,51034,49832,48626,47417,46206,44994,43779,42563,41347,40130, -38913,37696,36480,35265,34052,32841,31632,30426,29223,28023,26828,25637,24451,23270, -22095,20926,19764,18609,17461,16321,15190,14067,12953,11849,10755,9671,8598,7537, -6487,5449,4423,3410,2411,1425,453,-504,-1447,-2375,-3287,-4184,-5064,-5928,-6775, --7605,-8417,-9212,-9989,-10747,-11487,-12208,-12910,-13592,-14255,-14898,-15521, --16124,-16706,-17268,-17809,-18329,-18829,-19306,-19763,-20198,-20612,-21004,-21374, --21723,-22050,-22355,-22639,-22900,-23140,-23358,-23555,-23729,-23883,-24014,-24124, --24213,-24281,-24328,-24353,-24359,-24343,-24307,-24251,-24175,-24079,-23964,-23830, --23677,-23505,-23314,-23106,-22879,-22636,-22375,-22097,-21804,-21494,-21168,-20827, --20472,-20102,-19718,-19320,-18909,-18486,-18050,-17603,-17144,-16674,-16194,-15705, --15205,-14697,-14181,-13657,-13125,-12587,-12042,-11491,-10936,-10375,-9810,-9242, --8670,-8096,-7520,-6942,-6363,-5783,-5204,-4625,-4047,-3471,-2897,-2325,-1756,-1191, --630,-74,477,1023,1563,2096,2623,3142,3654,4157,4652,5138,5614,6081,6537,6983,7418, -7842,8255,8655,9044,9420,9783,10134,10471,10795,11105,11401,11684,11952,12205,12444, -12669,12878,13073,13252,13417,13567,13701,13820,13924,14012,14086,14144,14187,14215, -14228,14226,14209,14178,14132,14071,13996,13907,13805,13688,13558,13415,13259,13089, -12908,12714,12508,12290,12061,11821,11570,11309,11038,10756,10466,10166,9858,9542, -9218,8886,8547,8201,7850,7492,7129,6761,6388,6011,5631,5247,4860,4471,4080,3687, -3294,2899,2504,2110,1716,1323,931,541,154,-231,-613,-991,-1365,-1736,-2101,-2462, --2817,-3166,-3510,-3847,-4177,-4500,-4816,-5124,-5424,-5716,-5999,-6273,-6539,-6795, --7042,-7279,-7506,-7722,-7929,-8125,-8310,-8485,-8649,-8802,-8943,-9074,-9193,-9300, --9397,-9481,-9555,-9617,-9667,-9706,-9733,-9749,-9754,-9748,-9730,-9701,-9661,-9610, --9548,-9476,-9393,-9300,-9196,-9083,-8960,-8827,-8685,-8534,-8373,-8204,-8027,-7842, --7648,-7447,-7238,-7023,-6801,-6572,-6337,-6096,-5849,-5598,-5341,-5080,-4815,-4545, --4273,-3997,-3718,-3436,-3153,-2867,-2581,-2293,-2004,-1715,-1425,-1136,-848,-560, --274,11,293,574,852,1127,1399,1667,1932,2192,2448,2699,2946,3187,3423,3653,3877, -4095,4306,4511,4709,4900,5084,5261,5430,5591,5744,5889,6026,6155,6276,6388,6492, -6587,6673,6750,6819,6879,6931,6973,7007,7031,7047,7055,7053,7043,7024,6997,6962, -6918,6866,6805,6737,6661,6577,6486,6387,6281,6168,6048,5922,5789,5650,5504,5353, -5196,5034,4866,4694,4517,4336,4150,3960,3767,3571,3371,3168,2963,2755,2546,2334, -2122,1907,1692,1477,1261,1044,828,612,397,183,-30,-241,-451,-659,-864,-1067,-1268, --1465,-1659,-1850,-2037,-2221,-2400,-2575,-2746,-2912,-3073,-3230,-3381,-3527,-3667, --3802,-3931,-4054,-4172,-4283,-4388,-4487,-4579,-4665,-4745,-4818,-4884,-4944,-4997, --5043,-5082,-5115,-5141,-5160,-5173,-5179,-5178,-5171,-5157,-5136,-5110,-5076,-5037, --4991,-4940,-4882,-4819,-4749,-4675,-4594,-4509,-4418,-4322,-4221,-4116,-4006,-3891, --3772,-3650,-3523,-3393,-3259,-3123,-2983,-2840,-2694,-2546,-2396,-2244,-2090,-1934, --1777,-1619,-1459,-1299,-1139,-978,-817,-655,-495,-334,-175,-16,141,298,452,605,757, -906,1053,1197,1339,1478,1615,1748,1878,2004,2127,2247,2362,2474,2582,2685,2785, -2880,2970,3056,3137,3214,3286,3353,3415,3473,3525,3572,3615,3652,3684,3711,3733, -3750,3762,3769,3771,3768,3760,3747,3729,3707,3680,3648,3611,3570,3525,3476,3422, -3364,3302,3236,3166,3093,3016,2936,2852,2766,2676,2583,2488,2390,2290,2187,2082, -1976,1867,1757,1645,1532,1418,1303,1187,1070,952,835,717,599,481,363,246,129,13, --102,-216,-329,-440,-550,-659,-766,-871,-974,-1075,-1174,-1270,-1364,-1456,-1544, --1630,-1714,-1794,-1871,-1945,-2016,-2084,-2148,-2209,-2267,-2321,-2372,-2418,-2462, --2502,-2538,-2570,-2599,-2624,-2645,-2662,-2676,-2686,-2693,-2695,-2694,-2690,-2682, --2670,-2655,-2636,-2614,-2589,-2560,-2528,-2493,-2455,-2414,-2370,-2323,-2274,-2221, --2167,-2109,-2050,-1988,-1923,-1857,-1789,-1719,-1647,-1574,-1499,-1422,-1345,-1266, --1186,-1105,-1023,-941,-858,-774,-690,-606,-522,-438,-354,-270,-187,-104,-21,61,142, -222,301,379,456,532,606,679,750,820,888,954,1018,1081,1141,1199,1255,1309,1361, -1410,1457,1502,1544,1584,1621,1655,1687,1717,1743,1768,1789,1808,1824,1838,1849, -1857,1863,1866,1867,1864,1860,1853,1843,1831,1816,1800,1780,1759,1735,1709,1681, -1651,1619,1585,1549,1511,1472,1431,1388,1344,1298,1251,1202,1153,1102,1050,997,943, -889,833,778,721,664,607,549,491,433,375,317,259,201,143,86,29,-27,-83,-138,-193, --246,-299,-351,-402,-452,-501,-548,-595,-640,-684,-726,-767,-807,-845,-882,-917, --950,-982,-1012,-1040,-1067,-1091,-1115,-1136,-1155,-1173,-1189,-1203,-1215,-1226, --1235,-1241,-1246,-1250,-1251,-1251,-1249,-1245,-1239,-1232,-1223,-1213,-1201,-1187, --1172,-1155,-1137,-1117,-1096,-1074,-1051,-1026,-1000,-973,-944,-915,-885,-854,-822, --789,-755,-720,-685,-650,-613,-577,-539,-502,-464,-426,-387,-349,-310,-272,-233, --194,-156,-118,-80,-42,-4,33,69,105,141,176,210,244,277,309,341,372,401,430,458,485, -512,537,561,584,606,626,646,665,682,698,713,727,740,751,762,771,778,785,791,795, -798,800,801,800,799,796,792,787,781,774,766,757,747,736,724,711,697,682,667,650, -633,616,597,578,558,538,517,496,474,452,429,406,382,359,335,311,286,262,237,213, -188,163,139,114,90,65,41,17,-6,-30,-53,-75,-98,-120,-141,-162,-183,-203,-222,-241, --260,-277,-295,-311,-327,-342,-357,-371,-384,-396,-408,-419,-429,-439,-448,-456, --463,-469,-475,-480,-484,-488,-490,-492,-493,-494,-493,-492,-491,-488,-485,-481, --477,-472,-466,-460,-453,-445,-437,-428,-419,-410,-399,-389,-378,-366,-354,-342, --329,-316,-303,-290,-276,-262,-248,-233,-218,-204,-189,-174,-159,-144,-129,-114,-99, --84,-69,-54,-39,-24,-10,4,18,32,46,59,73,85,98,110,122,134,145,156,167,177,186,196, -205,213,221,229,236,243,249,255,260,265,269,273,277,280,282,284,286,287,288,288, -288,287,286,285,283,281,278,275,272,268,264,259,254,249,244,238,232,225,219,212, -205,198,190,182,175,167,158,150,142,133,125,116,107,98,90,81,72,63,54,46,37,28,20, -11,3,-5,-13,-21,-29,-37,-45,-52,-59,-66,-73,-79,-86,-92,-98,-104,-109,-114,-119, --124,-128,-132,-136,-140,-143,-146,-149,-152,-154,-156,-158,-159,-160,-161,-162, --162,-163,-162,-162,-161,-161,-159,-158,-157,-155,-153,-151,-148,-146,-143,-140, --137,-133,-130,-126,-122,-118,-114,-110,-106,-101,-97,-92,-88,-83,-78,-73,-68,-64, --59,-54,-49,-44,-39,-34,-29,-24,-19,-14,-9,-5,0,5,9,14,18,22,26,30,34,38,42,45,49, -52,55,58,61,64,67,69,72,74,76,78,79,81,82,84,85,86,86,87,88,88,88,88,88,88,88,87, -87,86,85,84,83,82,80,79,77,75,74,72,70,68,66,64,61,59,57,54,52,49,47,44,42,39,36, -34,31,28,25,23,20,17,15,12,9,7,4,2,-1,-3,-6,-8,-10,-12,-15,-17,-19,-21,-23,-25, --26,-28,-30,-31,-33,-34,-36,-37,-38,-39,-40,-41,-42,-43,-43,-44,-45,-45,-45,-46, --46,-46,-46,-46,-46,-46,-45,-45,-45,-44,-44,-43,-42,-42,-41,-40,-39,-38,-37,-36, --35,-34,-33,-32,-30,-29,-28,-27,-25,-24,-23,-21,-20,-18,-17,-16,-14,-13,-11,-10,-9, --7,-6,-5,-3,-2,-1,1,2,3,4,5,7,8,9,10,11,12,13,14,14,15,16,17,17,18,19,19,20,20,21, -21,21,22,22,22,22,22,23,23,23,23,23,22,22,22,22,22,21,21,21,20,20,20,19,19,18,18, -17,16,16,15,15,14,13,13,12,11,11,10,9,9,8,7,7,6,5,5,4,3,3,2,1,1,0,-1,-1,-2,-2,-3, --3,-4,-4,-5,-5,-6,-6,-7,-7,-7,-8,-8,-8,-9,-9,-9,-9,-10,-10,-10,-10,-10,-10,-10, --10,-11,-11,-11,-11,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9,-9,-9,-9,-8,-8,-8,-8,-7, --7,-7,-7,-6,-6,-6,-5,-5,-5,-4,-4,-4,-3,-3,-3,-2,-2,-2,-2,-1,-1,-1,0,0,0,0,1,1,1,2, -2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4, -4,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1, --1,-1,-1,-1,-1,-1,-1,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2, --2,-2,-2,-2,-2,-2,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0, + 131072,131072,131072,131072,131072,131072,131072,131072,131072,131072,131072, + 131072,131072,131072,131071,131071,131071,131071,131071,131071,131070,131070,131070, + 131070,131069,131069,131069,131068,131068,131067,131066,131066,131065,131064,131063, + 131062,131061,131059,131058,131056,131055,131053,131051,131049,131046,131044,131041, + 131038,131035,131031,131028,131024,131019,131015,131010,131004,130998,130992,130986, + 130979,130971,130963,130955,130945,130936,130925,130914,130903,130890,130877,130863, + 130849,130833,130816,130799,130781,130761,130740,130719,130696,130672,130646,130619, + 130591,130562,130531,130498,130463,130427,130390,130350,130308,130265,130219,130172, + 130122,130069,130015,129958,129898,129836,129772,129704,129633,129560,129483,129404, + 129321,129235,129145,129051,128954,128854,128749,128640,128527,128410,128289,128163, + 128033,127898,127758,127613,127463,127308,127147,126982,126810,126633,126450,126261, + 126066,125864,125657,125443,125222,124994,124759,124518,124269,124013,123749,123478, + 123199,122912,122617,122314,122003,121683,121355,121017,120672,120317,119953,119579, + 119197,118805,118403,117992,117570,117139,116698,116246,115784,115312,114829,114336, + 113831,113316,112790,112253,111705,111145,110575,109992,109399,108794,108177,107549, + 106909,106257,105594,104918,104231,103532,102821,102098,101363,100616,99858,99087, + 98304,97510,96703,95885,95054,94212,93358,92493,91616,90727,89827,88915,87992,87058, + 86113,85157,84190,83212,82224,81225,80216,79196,78167,77128,76079,75021,73953,72877, + 71792,70698,69596,68485,67367,66241,65108,63967,62820,61666,60506,59339,58168,56990, + 55808,54621,53429,52234,51034,49832,48626,47417,46206,44994,43779,42563,41347,40130, + 38913,37696,36480,35265,34052,32841,31632,30426,29223,28023,26828,25637,24451,23270, + 22095,20926,19764,18609,17461,16321,15190,14067,12953,11849,10755,9671,8598,7537, + 6487,5449,4423,3410,2411,1425,453,-504,-1447,-2375,-3287,-4184,-5064,-5928,-6775, + -7605,-8417,-9212,-9989,-10747,-11487,-12208,-12910,-13592,-14255,-14898,-15521, + -16124,-16706,-17268,-17809,-18329,-18829,-19306,-19763,-20198,-20612,-21004,-21374, + -21723,-22050,-22355,-22639,-22900,-23140,-23358,-23555,-23729,-23883,-24014,-24124, + -24213,-24281,-24328,-24353,-24359,-24343,-24307,-24251,-24175,-24079,-23964,-23830, + -23677,-23505,-23314,-23106,-22879,-22636,-22375,-22097,-21804,-21494,-21168,-20827, + -20472,-20102,-19718,-19320,-18909,-18486,-18050,-17603,-17144,-16674,-16194,-15705, + -15205,-14697,-14181,-13657,-13125,-12587,-12042,-11491,-10936,-10375,-9810,-9242, + -8670,-8096,-7520,-6942,-6363,-5783,-5204,-4625,-4047,-3471,-2897,-2325,-1756,-1191, + -630,-74,477,1023,1563,2096,2623,3142,3654,4157,4652,5138,5614,6081,6537,6983,7418, + 7842,8255,8655,9044,9420,9783,10134,10471,10795,11105,11401,11684,11952,12205,12444, + 12669,12878,13073,13252,13417,13567,13701,13820,13924,14012,14086,14144,14187,14215, + 14228,14226,14209,14178,14132,14071,13996,13907,13805,13688,13558,13415,13259,13089, + 12908,12714,12508,12290,12061,11821,11570,11309,11038,10756,10466,10166,9858,9542, + 9218,8886,8547,8201,7850,7492,7129,6761,6388,6011,5631,5247,4860,4471,4080,3687, + 3294,2899,2504,2110,1716,1323,931,541,154,-231,-613,-991,-1365,-1736,-2101,-2462, + -2817,-3166,-3510,-3847,-4177,-4500,-4816,-5124,-5424,-5716,-5999,-6273,-6539,-6795, + -7042,-7279,-7506,-7722,-7929,-8125,-8310,-8485,-8649,-8802,-8943,-9074,-9193,-9300, + -9397,-9481,-9555,-9617,-9667,-9706,-9733,-9749,-9754,-9748,-9730,-9701,-9661,-9610, + -9548,-9476,-9393,-9300,-9196,-9083,-8960,-8827,-8685,-8534,-8373,-8204,-8027,-7842, + -7648,-7447,-7238,-7023,-6801,-6572,-6337,-6096,-5849,-5598,-5341,-5080,-4815,-4545, + -4273,-3997,-3718,-3436,-3153,-2867,-2581,-2293,-2004,-1715,-1425,-1136,-848,-560, + -274,11,293,574,852,1127,1399,1667,1932,2192,2448,2699,2946,3187,3423,3653,3877, + 4095,4306,4511,4709,4900,5084,5261,5430,5591,5744,5889,6026,6155,6276,6388,6492, + 6587,6673,6750,6819,6879,6931,6973,7007,7031,7047,7055,7053,7043,7024,6997,6962, + 6918,6866,6805,6737,6661,6577,6486,6387,6281,6168,6048,5922,5789,5650,5504,5353, + 5196,5034,4866,4694,4517,4336,4150,3960,3767,3571,3371,3168,2963,2755,2546,2334, + 2122,1907,1692,1477,1261,1044,828,612,397,183,-30,-241,-451,-659,-864,-1067,-1268, + -1465,-1659,-1850,-2037,-2221,-2400,-2575,-2746,-2912,-3073,-3230,-3381,-3527,-3667, + -3802,-3931,-4054,-4172,-4283,-4388,-4487,-4579,-4665,-4745,-4818,-4884,-4944,-4997, + -5043,-5082,-5115,-5141,-5160,-5173,-5179,-5178,-5171,-5157,-5136,-5110,-5076,-5037, + -4991,-4940,-4882,-4819,-4749,-4675,-4594,-4509,-4418,-4322,-4221,-4116,-4006,-3891, + -3772,-3650,-3523,-3393,-3259,-3123,-2983,-2840,-2694,-2546,-2396,-2244,-2090,-1934, + -1777,-1619,-1459,-1299,-1139,-978,-817,-655,-495,-334,-175,-16,141,298,452,605,757, + 906,1053,1197,1339,1478,1615,1748,1878,2004,2127,2247,2362,2474,2582,2685,2785, + 2880,2970,3056,3137,3214,3286,3353,3415,3473,3525,3572,3615,3652,3684,3711,3733, + 3750,3762,3769,3771,3768,3760,3747,3729,3707,3680,3648,3611,3570,3525,3476,3422, + 3364,3302,3236,3166,3093,3016,2936,2852,2766,2676,2583,2488,2390,2290,2187,2082, + 1976,1867,1757,1645,1532,1418,1303,1187,1070,952,835,717,599,481,363,246,129,13, + -102,-216,-329,-440,-550,-659,-766,-871,-974,-1075,-1174,-1270,-1364,-1456,-1544, + -1630,-1714,-1794,-1871,-1945,-2016,-2084,-2148,-2209,-2267,-2321,-2372,-2418,-2462, + -2502,-2538,-2570,-2599,-2624,-2645,-2662,-2676,-2686,-2693,-2695,-2694,-2690,-2682, + -2670,-2655,-2636,-2614,-2589,-2560,-2528,-2493,-2455,-2414,-2370,-2323,-2274,-2221, + -2167,-2109,-2050,-1988,-1923,-1857,-1789,-1719,-1647,-1574,-1499,-1422,-1345,-1266, + -1186,-1105,-1023,-941,-858,-774,-690,-606,-522,-438,-354,-270,-187,-104,-21,61,142, + 222,301,379,456,532,606,679,750,820,888,954,1018,1081,1141,1199,1255,1309,1361, + 1410,1457,1502,1544,1584,1621,1655,1687,1717,1743,1768,1789,1808,1824,1838,1849, + 1857,1863,1866,1867,1864,1860,1853,1843,1831,1816,1800,1780,1759,1735,1709,1681, + 1651,1619,1585,1549,1511,1472,1431,1388,1344,1298,1251,1202,1153,1102,1050,997,943, + 889,833,778,721,664,607,549,491,433,375,317,259,201,143,86,29,-27,-83,-138,-193, + -246,-299,-351,-402,-452,-501,-548,-595,-640,-684,-726,-767,-807,-845,-882,-917, + -950,-982,-1012,-1040,-1067,-1091,-1115,-1136,-1155,-1173,-1189,-1203,-1215,-1226, + -1235,-1241,-1246,-1250,-1251,-1251,-1249,-1245,-1239,-1232,-1223,-1213,-1201,-1187, + -1172,-1155,-1137,-1117,-1096,-1074,-1051,-1026,-1000,-973,-944,-915,-885,-854,-822, + -789,-755,-720,-685,-650,-613,-577,-539,-502,-464,-426,-387,-349,-310,-272,-233, + -194,-156,-118,-80,-42,-4,33,69,105,141,176,210,244,277,309,341,372,401,430,458,485, + 512,537,561,584,606,626,646,665,682,698,713,727,740,751,762,771,778,785,791,795, + 798,800,801,800,799,796,792,787,781,774,766,757,747,736,724,711,697,682,667,650, + 633,616,597,578,558,538,517,496,474,452,429,406,382,359,335,311,286,262,237,213, + 188,163,139,114,90,65,41,17,-6,-30,-53,-75,-98,-120,-141,-162,-183,-203,-222,-241, + -260,-277,-295,-311,-327,-342,-357,-371,-384,-396,-408,-419,-429,-439,-448,-456, + -463,-469,-475,-480,-484,-488,-490,-492,-493,-494,-493,-492,-491,-488,-485,-481, + -477,-472,-466,-460,-453,-445,-437,-428,-419,-410,-399,-389,-378,-366,-354,-342, + -329,-316,-303,-290,-276,-262,-248,-233,-218,-204,-189,-174,-159,-144,-129,-114,-99, + -84,-69,-54,-39,-24,-10,4,18,32,46,59,73,85,98,110,122,134,145,156,167,177,186,196, + 205,213,221,229,236,243,249,255,260,265,269,273,277,280,282,284,286,287,288,288, + 288,287,286,285,283,281,278,275,272,268,264,259,254,249,244,238,232,225,219,212, + 205,198,190,182,175,167,158,150,142,133,125,116,107,98,90,81,72,63,54,46,37,28,20, + 11,3,-5,-13,-21,-29,-37,-45,-52,-59,-66,-73,-79,-86,-92,-98,-104,-109,-114,-119, + -124,-128,-132,-136,-140,-143,-146,-149,-152,-154,-156,-158,-159,-160,-161,-162, + -162,-163,-162,-162,-161,-161,-159,-158,-157,-155,-153,-151,-148,-146,-143,-140, + -137,-133,-130,-126,-122,-118,-114,-110,-106,-101,-97,-92,-88,-83,-78,-73,-68,-64, + -59,-54,-49,-44,-39,-34,-29,-24,-19,-14,-9,-5,0,5,9,14,18,22,26,30,34,38,42,45,49, + 52,55,58,61,64,67,69,72,74,76,78,79,81,82,84,85,86,86,87,88,88,88,88,88,88,88,87, + 87,86,85,84,83,82,80,79,77,75,74,72,70,68,66,64,61,59,57,54,52,49,47,44,42,39,36, + 34,31,28,25,23,20,17,15,12,9,7,4,2,-1,-3,-6,-8,-10,-12,-15,-17,-19,-21,-23,-25, + -26,-28,-30,-31,-33,-34,-36,-37,-38,-39,-40,-41,-42,-43,-43,-44,-45,-45,-45,-46, + -46,-46,-46,-46,-46,-46,-45,-45,-45,-44,-44,-43,-42,-42,-41,-40,-39,-38,-37,-36, + -35,-34,-33,-32,-30,-29,-28,-27,-25,-24,-23,-21,-20,-18,-17,-16,-14,-13,-11,-10,-9, + -7,-6,-5,-3,-2,-1,1,2,3,4,5,7,8,9,10,11,12,13,14,14,15,16,17,17,18,19,19,20,20,21, + 21,21,22,22,22,22,22,23,23,23,23,23,22,22,22,22,22,21,21,21,20,20,20,19,19,18,18, + 17,16,16,15,15,14,13,13,12,11,11,10,9,9,8,7,7,6,5,5,4,3,3,2,1,1,0,-1,-1,-2,-2,-3, + -3,-4,-4,-5,-5,-6,-6,-7,-7,-7,-8,-8,-8,-9,-9,-9,-9,-10,-10,-10,-10,-10,-10,-10, + -10,-11,-11,-11,-11,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9,-9,-9,-9,-8,-8,-8,-8,-7, + -7,-7,-7,-6,-6,-6,-5,-5,-5,-4,-4,-4,-3,-3,-3,-2,-2,-2,-2,-1,-1,-1,0,0,0,0,1,1,1,2, + 2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4, + 4,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2, + -2,-2,-2,-2,-2,-2,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0, }, { -131072,131072,131072,131072,131072,131072,131072,131072,131072,131072,131072, -131072,131072,131072,131072,131072,131072,131072,131072,131072,131072,131072,131072, -131072,131072,131072,131072,131072,131072,131072,131071,131071,131071,131071,131071, -131071,131071,131071,131071,131071,131071,131071,131071,131071,131071,131071,131071, -131071,131071,131071,131071,131071,131071,131071,131071,131071,131071,131071,131071, -131071,131071,131071,131071,131071,131070,131070,131070,131070,131070,131070,131070, -131070,131070,131070,131070,131069,131069,131069,131069,131069,131069,131068,131068, -131068,131068,131068,131067,131067,131067,131066,131066,131066,131065,131065,131064, -131064,131064,131063,131062,131062,131061,131061,131060,131059,131058,131058,131057, -131056,131055,131054,131053,131052,131051,131049,131048,131047,131045,131044,131042, -131040,131039,131037,131035,131033,131031,131028,131026,131024,131021,131018,131015, -131012,131009,131006,131003,130999,130995,130991,130987,130983,130978,130974,130969, -130964,130959,130953,130947,130941,130935,130929,130922,130915,130908,130900,130892, -130884,130876,130867,130858,130848,130838,130828,130817,130806,130795,130783,130771, -130758,130745,130731,130717,130702,130687,130671,130655,130638,130621,130603,130585, -130566,130546,130526,130505,130483,130461,130437,130414,130389,130364,130338,130311, -130283,130255,130225,130195,130164,130132,130099,130065,130031,129995,129958,129920, -129881,129841,129800,129758,129715,129671,129625,129578,129531,129481,129431,129379, -129326,129272,129216,129159,129101,129041,128980,128918,128853,128788,128721,128652, -128582,128510,128437,128362,128285,128206,128126,128045,127961,127876,127789,127700, -127609,127517,127422,127326,127228,127128,127026,126922,126816,126708,126598,126486, -126371,126255,126137,126016,125894,125769,125642,125513,125382,125248,125112,124974, -124834,124691,124546,124399,124250,124098,123944,123787,123628,123467,123303,123137, -122969,122798,122625,122449,122271,122090,121907,121722,121534,121343,121150,120955, -120757,120557,120354,120149,119941,119731,119519,119304,119086,118866,118644,118419, -118192,117962,117730,117495,117258,117019,116777,116533,116287,116038,115787,115533, -115277,115019,114759,114496,114232,113965,113695,113424,113150,112874,112597,112317, -112035,111750,111464,111176,110886,110594,110300,110004,109706,109406,109105,108801, -108496,108189,107881,107571,107259,106945,106630,106313,105995,105675,105354,105032, -104708,104382,104056,103728,103398,103068,102736,102403,102070,101735,101398,101061, -100723,100384,100044,99704,99362,99020,98676,98333,97988,97643,97297,96950,96603, -96256,95908,95559,95211,94861,94512,94162,93812,93461,93111,92760,92409,92058,91707, -91356,91005,90654,90303,89952,89601,89250,88899,88549,88199,87849,87499,87150,86801, -86452,86104,85756,85408,85061,84715,84369,84023,83678,83334,82990,82646,82304,81962, -81620,81279,80939,80600,80261,79923,79586,79249,78914,78579,78244,77911,77578,77247, -76916,76585,76256,75927,75600,75273,74947,74622,74297,73974,73651,73329,73008,72688, -72369,72051,71733,71417,71101,70786,70472,70159,69847,69535,69225,68915,68606,68298, -67990,67684,67378,67073,66769,66466,66163,65861,65560,65260,64960,64661,64363,64066, -63769,63473,63178,62884,62590,62296,62004,61712,61421,61130,60840,60550,60262,59973, -59686,59399,59112,58826,58541,58256,57972,57688,57405,57122,56840,56558,56277,55996, -55715,55436,55156,54877,54599,54321,54043,53766,53490,53213,52938,52662,52387,52113, -51839,51565,51292,51019,50747,50475,50203,49932,49661,49391,49121,48852,48583,48314, -48046,47778,47511,47244,46978,46712,46446,46181,45917,45653,45389,45126,44864,44601, -44340,44079,43818,43558,43299,43040,42782,42524,42267,42010,41754,41499,41244,40990, -40737,40484,40232,39980,39729,39479,39230,38981,38733,38486,38239,37994,37749,37504, -37261,37018,36777,36536,36296,36056,35818,35580,35343,35108,34873,34639,34405,34173, -33942,33712,33482,33254,33026,32800,32574,32349,32126,31903,31682,31461,31242,31023, -30806,30589,30374,30160,29946,29734,29523,29313,29104,28896,28689,28483,28278,28074, -27872,27670,27470,27270,27072,26875,26678,26483,26289,26096,25904,25713,25524,25335, -25147,24961,24775,24591,24407,24225,24043,23863,23684,23505,23328,23152,22976,22802, -22628,22456,22285,22114,21945,21776,21608,21442,21276,21111,20947,20784,20622,20460, -20300,20140,19981,19823,19666,19510,19355,19200,19046,18893,18741,18589,18438,18288, -18139,17990,17843,17696,17549,17403,17258,17114,16970,16827,16685,16543,16402,16262, -16122,15983,15845,15707,15569,15433,15296,15161,15026,14891,14758,14624,14492,14359, -14228,14097,13966,13836,13707,13578,13449,13321,13194,13067,12941,12815,12689,12565, -12440,12317,12193,12071,11948,11826,11705,11584,11464,11344,11225,11107,10988,10871, -10753,10637,10521,10405,10290,10175,10061,9948,9835,9722,9610,9499,9388,9278,9168, -9059,8950,8842,8735,8628,8522,8416,8311,8206,8102,7998,7896,7793,7692,7591,7490, -7390,7291,7192,7094,6997,6900,6804,6709,6614,6520,6426,6333,6241,6149,6058,5968, -5878,5789,5700,5613,5526,5439,5353,5268,5184,5100,5017,4935,4853,4772,4691,4611, -4532,4454,4376,4299,4222,4146,4071,3997,3923,3849,3777,3705,3634,3563,3493,3423, -3354,3286,3219,3152,3085,3020,2954,2890,2826,2762,2700,2637,2576,2515,2454,2394, -2335,2276,2218,2160,2102,2046,1989,1934,1878,1824,1769,1716,1662,1610,1557,1505, -1454,1403,1352,1302,1253,1203,1155,1106,1058,1011,963,917,870,824,778,733,688,643, -599,555,512,468,425,383,341,299,257,216,175,134,93,53,13,-26,-65,-105,-143,-182, --220,-258,-296,-333,-370,-407,-444,-480,-516,-552,-588,-623,-659,-694,-728,-763, --797,-831,-865,-898,-932,-965,-997,-1030,-1062,-1094,-1126,-1158,-1189,-1220,-1251, --1282,-1312,-1343,-1373,-1402,-1432,-1461,-1490,-1519,-1547,-1575,-1603,-1631,-1659, --1686,-1713,-1739,-1766,-1792,-1818,-1844,-1869,-1894,-1919,-1944,-1968,-1992,-2016, --2039,-2063,-2086,-2108,-2131,-2153,-2175,-2196,-2218,-2239,-2259,-2280,-2300,-2320, --2339,-2359,-2378,-2396,-2415,-2433,-2451,-2469,-2486,-2503,-2520,-2536,-2552,-2568, --2584,-2599,-2614,-2629,-2644,-2658,-2672,-2686,-2699,-2712,-2725,-2738,-2750,-2762, --2774,-2786,-2797,-2808,-2819,-2829,-2840,-2850,-2860,-2869,-2878,-2888,-2896,-2905, --2914,-2922,-2930,-2938,-2945,-2953,-2960,-2967,-2973,-2980,-2986,-2992,-2998,-3004, --3010,-3015,-3020,-3026,-3030,-3035,-3040,-3044,-3048,-3053,-3057,-3060,-3064,-3068, --3071,-3074,-3077,-3080,-3083,-3086,-3089,-3091,-3094,-3096,-3098,-3100,-3102,-3104, --3106,-3108,-3109,-3111,-3112,-3113,-3115,-3116,-3117,-3118,-3119,-3120,-3120,-3121, --3122,-3122,-3123,-3123,-3123,-3124,-3124,-3124,-3124,-3124,-3124,-3124,-3124,-3123, --3123,-3123,-3122,-3122,-3121,-3121,-3120,-3120,-3119,-3118,-3117,-3116,-3115,-3114, --3113,-3112,-3111,-3110,-3108,-3107,-3105,-3104,-3102,-3101,-3099,-3097,-3096,-3094, --3092,-3090,-3088,-3086,-3083,-3081,-3079,-3076,-3074,-3071,-3069,-3066,-3063,-3061, --3058,-3055,-3052,-3049,-3045,-3042,-3039,-3035,-3032,-3028,-3025,-3021,-3017,-3013, --3010,-3005,-3001,-2997,-2993,-2989,-2984,-2980,-2975,-2971,-2966,-2961,-2956,-2951, --2946,-2941,-2936,-2931,-2925,-2920,-2915,-2909,-2903,-2898,-2892,-2886,-2880,-2874, --2868,-2862,-2856,-2850,-2843,-2837,-2830,-2824,-2817,-2811,-2804,-2797,-2791,-2784, --2777,-2770,-2763,-2756,-2749,-2742,-2734,-2727,-2720,-2713,-2705,-2698,-2690,-2683, --2675,-2668,-2660,-2653,-2645,-2637,-2630,-2622,-2614,-2606,-2599,-2591,-2583,-2575, --2567,-2559,-2551,-2544,-2536,-2528,-2520,-2512,-2504,-2496,-2488,-2480,-2472,-2464, --2456,-2448,-2440,-2432,-2424,-2416,-2408,-2400,-2392,-2384,-2376,-2368,-2360,-2352, --2344,-2336,-2328,-2321,-2313,-2305,-2297,-2289,-2281,-2273,-2266,-2258,-2250,-2242, --2234,-2227,-2219,-2211,-2203,-2196,-2188,-2180,-2172,-2165,-2157,-2149,-2142,-2134, --2127,-2119,-2111,-2104,-2096,-2089,-2081,-2074,-2066,-2059,-2051,-2044,-2036,-2029, --2021,-2014,-2006,-1999,-1991,-1984,-1976,-1969,-1962,-1954,-1947,-1939,-1932,-1925, --1917,-1910,-1902,-1895,-1888,-1880,-1873,-1865,-1858,-1851,-1843,-1836,-1829,-1821, --1814,-1806,-1799,-1792,-1784,-1777,-1770,-1762,-1755,-1747,-1740,-1733,-1725,-1718, --1711,-1703,-1696,-1689,-1681,-1674,-1667,-1659,-1652,-1644,-1637,-1630,-1622,-1615, --1608,-1600,-1593,-1586,-1578,-1571,-1564,-1556,-1549,-1542,-1535,-1527,-1520,-1513, --1506,-1498,-1491,-1484,-1477,-1469,-1462,-1455,-1448,-1441,-1433,-1426,-1419,-1412, --1405,-1398,-1391,-1384,-1377,-1370,-1363,-1356,-1349,-1342,-1335,-1328,-1321,-1314, --1307,-1300,-1293,-1287,-1280,-1273,-1266,-1260,-1253,-1246,-1240,-1233,-1226,-1220, --1213,-1207,-1200,-1193,-1187,-1181,-1174,-1168,-1161,-1155,-1149,-1142,-1136,-1130, --1123,-1117,-1111,-1105,-1099,-1093,-1087,-1081,-1074,-1068,-1062,-1057,-1051,-1045, --1039,-1033,-1027,-1021,-1015,-1010,-1004,-998,-992,-987,-981,-976,-970,-964,-959, --953,-948,-942,-937,-931,-926,-920,-915,-910,-904,-899,-894,-888,-883,-878,-873, --868,-862,-857,-852,-847,-842,-837,-832,-827,-822,-817,-812,-807,-802,-797,-792, --787,-782,-777,-772,-768,-763,-758,-753,-748,-744,-739,-734,-729,-725,-720,-715, --711,-706,-702,-697,-692,-688,-683,-679,-674,-670,-665,-661,-657,-652,-648,-643, --639,-635,-630,-626,-622,-617,-613,-609,-605,-600,-596,-592,-588,-584,-579,-575, --571,-567,-563,-559,-555,-551,-547,-543,-539,-535,-531,-527,-523,-519,-516,-512, --508,-504,-500,-497,-493,-489,-485,-482,-478,-474,-471,-467,-463,-460,-456,-453, --449,-446,-442,-439,-435,-432,-428,-425,-422,-418,-415,-412,-408,-405,-402,-399, --395,-392,-389,-386,-383,-379,-376,-373,-370,-367,-364,-361,-358,-355,-352,-349, --346,-343,-340,-338,-335,-332,-329,-326,-323,-321,-318,-315,-312,-310,-307,-304, --302,-299,-296,-294,-291,-289,-286,-283,-281,-278,-276,-273,-271,-268,-266,-264, --261,-259,-256,-254,-252,-249,-247,-245,-242,-240,-238,-236,-233,-231,-229,-227, --224,-222,-220,-218,-216,-214,-212,-209,-207,-205,-203,-201,-199,-197,-195,-193, --191,-189,-187,-185,-183,-181,-180,-178,-176,-174,-172,-170,-168,-166,-165,-163, --161,-159,-157,-156,-154,-152,-151,-149,-147,-145,-144,-142,-140,-139,-137,-136, --134,-132,-131,-129,-128,-126,-124,-123,-121,-120,-118,-117,-115,-114,-113,-111, --110,-108,-107,-105,-104,-103,-101,-100,-99,-97,-96,-95,-93,-92,-91,-89,-88,-87,-86, --84,-83,-82,-81,-80,-78,-77,-76,-75,-74,-73,-71,-70,-69,-68,-67,-66,-65,-64,-63, --62,-61,-60,-59,-58,-57,-56,-55,-54,-53,-52,-51,-50,-49,-48,-47,-46,-46,-45,-44, --43,-42,-41,-40,-40,-39,-38,-37,-36,-36,-35,-34,-33,-32,-32,-31,-30,-30,-29,-28, --27,-27,-26,-25,-25,-24,-23,-23,-22,-21,-21,-20,-19,-19,-18,-18,-17,-16,-16,-15, --15,-14,-14,-13,-12,-12,-11,-11,-10,-10,-9,-9,-8,-8,-7,-7,-6,-6,-5,-5,-5,-4,-4,-3, --3,-2,-2,-1,-1,-1,0,0,0,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9, -10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,13,14,14,14,14,14,14,14,15, -15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17, -17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, -18,18,18,18,18,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,16,16, -16,16,16,16,16,16,16,16,16,16,16,15,15,15,15,15,15,15,15,15,15,14,14,14,14,14,14, -14,14,14,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,10, -10,10,10,10,10,10,9,9,9,9,9,9,8,8,8,8,8,8,8,7,7,7,7,7,7,6,6,6,6,6,6,5,5,5,5,5,5,4, -4,4,4,4,4,3,3,3,3,3,2,2,2,2,2,2,1,1,1,1,1,1,0,0,0, + 131072,131072,131072,131072,131072,131072,131072,131072,131072,131072,131072, + 131072,131072,131072,131072,131072,131072,131072,131072,131072,131072,131072,131072, + 131072,131072,131072,131072,131072,131072,131072,131071,131071,131071,131071,131071, + 131071,131071,131071,131071,131071,131071,131071,131071,131071,131071,131071,131071, + 131071,131071,131071,131071,131071,131071,131071,131071,131071,131071,131071,131071, + 131071,131071,131071,131071,131071,131070,131070,131070,131070,131070,131070,131070, + 131070,131070,131070,131070,131069,131069,131069,131069,131069,131069,131068,131068, + 131068,131068,131068,131067,131067,131067,131066,131066,131066,131065,131065,131064, + 131064,131064,131063,131062,131062,131061,131061,131060,131059,131058,131058,131057, + 131056,131055,131054,131053,131052,131051,131049,131048,131047,131045,131044,131042, + 131040,131039,131037,131035,131033,131031,131028,131026,131024,131021,131018,131015, + 131012,131009,131006,131003,130999,130995,130991,130987,130983,130978,130974,130969, + 130964,130959,130953,130947,130941,130935,130929,130922,130915,130908,130900,130892, + 130884,130876,130867,130858,130848,130838,130828,130817,130806,130795,130783,130771, + 130758,130745,130731,130717,130702,130687,130671,130655,130638,130621,130603,130585, + 130566,130546,130526,130505,130483,130461,130437,130414,130389,130364,130338,130311, + 130283,130255,130225,130195,130164,130132,130099,130065,130031,129995,129958,129920, + 129881,129841,129800,129758,129715,129671,129625,129578,129531,129481,129431,129379, + 129326,129272,129216,129159,129101,129041,128980,128918,128853,128788,128721,128652, + 128582,128510,128437,128362,128285,128206,128126,128045,127961,127876,127789,127700, + 127609,127517,127422,127326,127228,127128,127026,126922,126816,126708,126598,126486, + 126371,126255,126137,126016,125894,125769,125642,125513,125382,125248,125112,124974, + 124834,124691,124546,124399,124250,124098,123944,123787,123628,123467,123303,123137, + 122969,122798,122625,122449,122271,122090,121907,121722,121534,121343,121150,120955, + 120757,120557,120354,120149,119941,119731,119519,119304,119086,118866,118644,118419, + 118192,117962,117730,117495,117258,117019,116777,116533,116287,116038,115787,115533, + 115277,115019,114759,114496,114232,113965,113695,113424,113150,112874,112597,112317, + 112035,111750,111464,111176,110886,110594,110300,110004,109706,109406,109105,108801, + 108496,108189,107881,107571,107259,106945,106630,106313,105995,105675,105354,105032, + 104708,104382,104056,103728,103398,103068,102736,102403,102070,101735,101398,101061, + 100723,100384,100044,99704,99362,99020,98676,98333,97988,97643,97297,96950,96603, + 96256,95908,95559,95211,94861,94512,94162,93812,93461,93111,92760,92409,92058,91707, + 91356,91005,90654,90303,89952,89601,89250,88899,88549,88199,87849,87499,87150,86801, + 86452,86104,85756,85408,85061,84715,84369,84023,83678,83334,82990,82646,82304,81962, + 81620,81279,80939,80600,80261,79923,79586,79249,78914,78579,78244,77911,77578,77247, + 76916,76585,76256,75927,75600,75273,74947,74622,74297,73974,73651,73329,73008,72688, + 72369,72051,71733,71417,71101,70786,70472,70159,69847,69535,69225,68915,68606,68298, + 67990,67684,67378,67073,66769,66466,66163,65861,65560,65260,64960,64661,64363,64066, + 63769,63473,63178,62884,62590,62296,62004,61712,61421,61130,60840,60550,60262,59973, + 59686,59399,59112,58826,58541,58256,57972,57688,57405,57122,56840,56558,56277,55996, + 55715,55436,55156,54877,54599,54321,54043,53766,53490,53213,52938,52662,52387,52113, + 51839,51565,51292,51019,50747,50475,50203,49932,49661,49391,49121,48852,48583,48314, + 48046,47778,47511,47244,46978,46712,46446,46181,45917,45653,45389,45126,44864,44601, + 44340,44079,43818,43558,43299,43040,42782,42524,42267,42010,41754,41499,41244,40990, + 40737,40484,40232,39980,39729,39479,39230,38981,38733,38486,38239,37994,37749,37504, + 37261,37018,36777,36536,36296,36056,35818,35580,35343,35108,34873,34639,34405,34173, + 33942,33712,33482,33254,33026,32800,32574,32349,32126,31903,31682,31461,31242,31023, + 30806,30589,30374,30160,29946,29734,29523,29313,29104,28896,28689,28483,28278,28074, + 27872,27670,27470,27270,27072,26875,26678,26483,26289,26096,25904,25713,25524,25335, + 25147,24961,24775,24591,24407,24225,24043,23863,23684,23505,23328,23152,22976,22802, + 22628,22456,22285,22114,21945,21776,21608,21442,21276,21111,20947,20784,20622,20460, + 20300,20140,19981,19823,19666,19510,19355,19200,19046,18893,18741,18589,18438,18288, + 18139,17990,17843,17696,17549,17403,17258,17114,16970,16827,16685,16543,16402,16262, + 16122,15983,15845,15707,15569,15433,15296,15161,15026,14891,14758,14624,14492,14359, + 14228,14097,13966,13836,13707,13578,13449,13321,13194,13067,12941,12815,12689,12565, + 12440,12317,12193,12071,11948,11826,11705,11584,11464,11344,11225,11107,10988,10871, + 10753,10637,10521,10405,10290,10175,10061,9948,9835,9722,9610,9499,9388,9278,9168, + 9059,8950,8842,8735,8628,8522,8416,8311,8206,8102,7998,7896,7793,7692,7591,7490, + 7390,7291,7192,7094,6997,6900,6804,6709,6614,6520,6426,6333,6241,6149,6058,5968, + 5878,5789,5700,5613,5526,5439,5353,5268,5184,5100,5017,4935,4853,4772,4691,4611, + 4532,4454,4376,4299,4222,4146,4071,3997,3923,3849,3777,3705,3634,3563,3493,3423, + 3354,3286,3219,3152,3085,3020,2954,2890,2826,2762,2700,2637,2576,2515,2454,2394, + 2335,2276,2218,2160,2102,2046,1989,1934,1878,1824,1769,1716,1662,1610,1557,1505, + 1454,1403,1352,1302,1253,1203,1155,1106,1058,1011,963,917,870,824,778,733,688,643, + 599,555,512,468,425,383,341,299,257,216,175,134,93,53,13,-26,-65,-105,-143,-182, + -220,-258,-296,-333,-370,-407,-444,-480,-516,-552,-588,-623,-659,-694,-728,-763, + -797,-831,-865,-898,-932,-965,-997,-1030,-1062,-1094,-1126,-1158,-1189,-1220,-1251, + -1282,-1312,-1343,-1373,-1402,-1432,-1461,-1490,-1519,-1547,-1575,-1603,-1631,-1659, + -1686,-1713,-1739,-1766,-1792,-1818,-1844,-1869,-1894,-1919,-1944,-1968,-1992,-2016, + -2039,-2063,-2086,-2108,-2131,-2153,-2175,-2196,-2218,-2239,-2259,-2280,-2300,-2320, + -2339,-2359,-2378,-2396,-2415,-2433,-2451,-2469,-2486,-2503,-2520,-2536,-2552,-2568, + -2584,-2599,-2614,-2629,-2644,-2658,-2672,-2686,-2699,-2712,-2725,-2738,-2750,-2762, + -2774,-2786,-2797,-2808,-2819,-2829,-2840,-2850,-2860,-2869,-2878,-2888,-2896,-2905, + -2914,-2922,-2930,-2938,-2945,-2953,-2960,-2967,-2973,-2980,-2986,-2992,-2998,-3004, + -3010,-3015,-3020,-3026,-3030,-3035,-3040,-3044,-3048,-3053,-3057,-3060,-3064,-3068, + -3071,-3074,-3077,-3080,-3083,-3086,-3089,-3091,-3094,-3096,-3098,-3100,-3102,-3104, + -3106,-3108,-3109,-3111,-3112,-3113,-3115,-3116,-3117,-3118,-3119,-3120,-3120,-3121, + -3122,-3122,-3123,-3123,-3123,-3124,-3124,-3124,-3124,-3124,-3124,-3124,-3124,-3123, + -3123,-3123,-3122,-3122,-3121,-3121,-3120,-3120,-3119,-3118,-3117,-3116,-3115,-3114, + -3113,-3112,-3111,-3110,-3108,-3107,-3105,-3104,-3102,-3101,-3099,-3097,-3096,-3094, + -3092,-3090,-3088,-3086,-3083,-3081,-3079,-3076,-3074,-3071,-3069,-3066,-3063,-3061, + -3058,-3055,-3052,-3049,-3045,-3042,-3039,-3035,-3032,-3028,-3025,-3021,-3017,-3013, + -3010,-3005,-3001,-2997,-2993,-2989,-2984,-2980,-2975,-2971,-2966,-2961,-2956,-2951, + -2946,-2941,-2936,-2931,-2925,-2920,-2915,-2909,-2903,-2898,-2892,-2886,-2880,-2874, + -2868,-2862,-2856,-2850,-2843,-2837,-2830,-2824,-2817,-2811,-2804,-2797,-2791,-2784, + -2777,-2770,-2763,-2756,-2749,-2742,-2734,-2727,-2720,-2713,-2705,-2698,-2690,-2683, + -2675,-2668,-2660,-2653,-2645,-2637,-2630,-2622,-2614,-2606,-2599,-2591,-2583,-2575, + -2567,-2559,-2551,-2544,-2536,-2528,-2520,-2512,-2504,-2496,-2488,-2480,-2472,-2464, + -2456,-2448,-2440,-2432,-2424,-2416,-2408,-2400,-2392,-2384,-2376,-2368,-2360,-2352, + -2344,-2336,-2328,-2321,-2313,-2305,-2297,-2289,-2281,-2273,-2266,-2258,-2250,-2242, + -2234,-2227,-2219,-2211,-2203,-2196,-2188,-2180,-2172,-2165,-2157,-2149,-2142,-2134, + -2127,-2119,-2111,-2104,-2096,-2089,-2081,-2074,-2066,-2059,-2051,-2044,-2036,-2029, + -2021,-2014,-2006,-1999,-1991,-1984,-1976,-1969,-1962,-1954,-1947,-1939,-1932,-1925, + -1917,-1910,-1902,-1895,-1888,-1880,-1873,-1865,-1858,-1851,-1843,-1836,-1829,-1821, + -1814,-1806,-1799,-1792,-1784,-1777,-1770,-1762,-1755,-1747,-1740,-1733,-1725,-1718, + -1711,-1703,-1696,-1689,-1681,-1674,-1667,-1659,-1652,-1644,-1637,-1630,-1622,-1615, + -1608,-1600,-1593,-1586,-1578,-1571,-1564,-1556,-1549,-1542,-1535,-1527,-1520,-1513, + -1506,-1498,-1491,-1484,-1477,-1469,-1462,-1455,-1448,-1441,-1433,-1426,-1419,-1412, + -1405,-1398,-1391,-1384,-1377,-1370,-1363,-1356,-1349,-1342,-1335,-1328,-1321,-1314, + -1307,-1300,-1293,-1287,-1280,-1273,-1266,-1260,-1253,-1246,-1240,-1233,-1226,-1220, + -1213,-1207,-1200,-1193,-1187,-1181,-1174,-1168,-1161,-1155,-1149,-1142,-1136,-1130, + -1123,-1117,-1111,-1105,-1099,-1093,-1087,-1081,-1074,-1068,-1062,-1057,-1051,-1045, + -1039,-1033,-1027,-1021,-1015,-1010,-1004,-998,-992,-987,-981,-976,-970,-964,-959, + -953,-948,-942,-937,-931,-926,-920,-915,-910,-904,-899,-894,-888,-883,-878,-873, + -868,-862,-857,-852,-847,-842,-837,-832,-827,-822,-817,-812,-807,-802,-797,-792, + -787,-782,-777,-772,-768,-763,-758,-753,-748,-744,-739,-734,-729,-725,-720,-715, + -711,-706,-702,-697,-692,-688,-683,-679,-674,-670,-665,-661,-657,-652,-648,-643, + -639,-635,-630,-626,-622,-617,-613,-609,-605,-600,-596,-592,-588,-584,-579,-575, + -571,-567,-563,-559,-555,-551,-547,-543,-539,-535,-531,-527,-523,-519,-516,-512, + -508,-504,-500,-497,-493,-489,-485,-482,-478,-474,-471,-467,-463,-460,-456,-453, + -449,-446,-442,-439,-435,-432,-428,-425,-422,-418,-415,-412,-408,-405,-402,-399, + -395,-392,-389,-386,-383,-379,-376,-373,-370,-367,-364,-361,-358,-355,-352,-349, + -346,-343,-340,-338,-335,-332,-329,-326,-323,-321,-318,-315,-312,-310,-307,-304, + -302,-299,-296,-294,-291,-289,-286,-283,-281,-278,-276,-273,-271,-268,-266,-264, + -261,-259,-256,-254,-252,-249,-247,-245,-242,-240,-238,-236,-233,-231,-229,-227, + -224,-222,-220,-218,-216,-214,-212,-209,-207,-205,-203,-201,-199,-197,-195,-193, + -191,-189,-187,-185,-183,-181,-180,-178,-176,-174,-172,-170,-168,-166,-165,-163, + -161,-159,-157,-156,-154,-152,-151,-149,-147,-145,-144,-142,-140,-139,-137,-136, + -134,-132,-131,-129,-128,-126,-124,-123,-121,-120,-118,-117,-115,-114,-113,-111, + -110,-108,-107,-105,-104,-103,-101,-100,-99,-97,-96,-95,-93,-92,-91,-89,-88,-87,-86, + -84,-83,-82,-81,-80,-78,-77,-76,-75,-74,-73,-71,-70,-69,-68,-67,-66,-65,-64,-63, + -62,-61,-60,-59,-58,-57,-56,-55,-54,-53,-52,-51,-50,-49,-48,-47,-46,-46,-45,-44, + -43,-42,-41,-40,-40,-39,-38,-37,-36,-36,-35,-34,-33,-32,-32,-31,-30,-30,-29,-28, + -27,-27,-26,-25,-25,-24,-23,-23,-22,-21,-21,-20,-19,-19,-18,-18,-17,-16,-16,-15, + -15,-14,-14,-13,-12,-12,-11,-11,-10,-10,-9,-9,-8,-8,-7,-7,-6,-6,-5,-5,-5,-4,-4,-3, + -3,-2,-2,-1,-1,-1,0,0,0,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9, + 10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,13,14,14,14,14,14,14,14,15, + 15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, + 18,18,18,18,18,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,16,16, + 16,16,16,16,16,16,16,16,16,16,16,15,15,15,15,15,15,15,15,15,15,14,14,14,14,14,14, + 14,14,14,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,10, + 10,10,10,10,10,10,9,9,9,9,9,9,8,8,8,8,8,8,8,7,7,7,7,7,7,6,6,6,6,6,6,5,5,5,5,5,5,4, + 4,4,4,4,4,3,3,3,3,3,2,2,2,2,2,2,1,1,1,1,1,1,0,0,0, }, { -131072,131072,131072,131072,131072,131072,131072,131072,131071,131071,131071, -131071,131071,131070,131070,131070,131069,131069,131068,131068,131067,131066,131066, -131065,131064,131063,131061,131060,131058,131057,131055,131053,131051,131048,131046, -131043,131040,131037,131033,131029,131025,131021,131016,131011,131005,130999,130993, -130986,130978,130970,130962,130953,130943,130933,130922,130910,130897,130884,130870, -130855,130839,130822,130804,130785,130765,130744,130721,130697,130672,130646,130618, -130589,130558,130525,130491,130455,130417,130377,130336,130292,130246,130198,130147, -130095,130039,129982,129921,129858,129792,129723,129651,129576,129497,129416,129330, -129242,129149,129053,128953,128849,128741,128628,128512,128390,128265,128134,127998, -127858,127712,127561,127405,127243,127076,126903,126723,126538,126346,126148,125944, -125733,125515,125290,125058,124818,124572,124317,124055,123785,123508,123222,122927, -122624,122313,121993,121664,121326,120978,120622,120255,119880,119494,119099,118693, -118278,117852,117415,116968,116510,116042,115562,115072,114570,114057,113532,112996, -112448,111889,111317,110734,110139,109532,108912,108280,107636,106980,106311,105630, -104936,104229,103510,102778,102034,101276,100506,99724,98928,98120,97299,96466,95620, -94761,93889,93005,92109,91200,90279,89345,88400,87442,86472,85490,84497,83492,82475, -81447,80408,79358,78297,77225,76142,75050,73947,72834,71712,70580,69439,68289,67130, -65963,64787,63604,62413,61215,60009,58797,57578,56354,55123,53887,52646,51401,50151, -48897,47639,46378,45115,43848,42580,41310,40039,38767,37495,36223,34951,33680,32410, -31142,29877,28614,27354,26098,24846,23598,22355,21118,19887,18662,17444,16233,15030, -13835,12649,11472,10304,9147,8001,6865,5741,4629,3529,2442,1368,308,-738,-1769,-2786, --3787,-4772,-5741,-6693,-7628,-8546,-9447,-10329,-11192,-12037,-12863,-13669,-14455, --15221,-15967,-16692,-17396,-18079,-18741,-19380,-19998,-20593,-21167,-21717,-22245, --22750,-23232,-23690,-24126,-24538,-24926,-25291,-25632,-25949,-26243,-26513,-26759, --26981,-27179,-27354,-27505,-27633,-27737,-27818,-27875,-27910,-27921,-27909,-27875, --27818,-27739,-27638,-27516,-27371,-27206,-27019,-26812,-26584,-26336,-26069,-25782, --25476,-25151,-24808,-24448,-24070,-23674,-23263,-22835,-22391,-21933,-21459,-20972, --20470,-19955,-19428,-18888,-18337,-17775,-17202,-16619,-16027,-15425,-14816,-14199, --13574,-12943,-12306,-11663,-11016,-10364,-9709,-9051,-8390,-7728,-7064,-6400,-5735, --5071,-4408,-3747,-3088,-2432,-1779,-1131,-486,153,786,1413,2034,2647,3253,3850,4439, -5018,5587,6147,6696,7233,7759,8274,8776,9265,9741,10204,10652,11087,11507,11912, -12303,12677,13037,13380,13707,14018,14313,14590,14851,15095,15321,15531,15723,15897, -16055,16194,16316,16420,16507,16577,16628,16663,16679,16679,16661,16627,16575,16507, -16422,16320,16203,16069,15920,15755,15575,15380,15170,14946,14708,14456,14191,13913, -13622,13319,13004,12678,12340,11992,11633,11265,10887,10501,10106,9703,9292,8875, -8451,8021,7585,7145,6699,6250,5797,5341,4883,4422,3960,3497,3033,2570,2106,1644, -1183,724,268,-186,-636,-1082,-1524,-1961,-2393,-2820,-3240,-3654,-4061,-4460,-4852, --5236,-5611,-5977,-6334,-6682,-7019,-7347,-7664,-7970,-8265,-8549,-8822,-9082,-9331, --9567,-9791,-10002,-10200,-10386,-10558,-10718,-10864,-10997,-11116,-11222,-11314, --11393,-11458,-11510,-11548,-11573,-11584,-11582,-11566,-11537,-11496,-11441,-11373, --11293,-11200,-11095,-10978,-10849,-10708,-10556,-10392,-10218,-10032,-9837,-9631, --9415,-9190,-8955,-8712,-8460,-8200,-7931,-7656,-7373,-7083,-6787,-6485,-6177,-5864, --5547,-5224,-4898,-4568,-4235,-3899,-3560,-3220,-2878,-2535,-2191,-1847,-1502,-1158, --816,-474,-134,204,540,872,1202,1528,1849,2167,2480,2788,3091,3388,3678,3963,4241, -4512,4776,5033,5281,5522,5754,5979,6194,6400,6598,6786,6965,7134,7293,7443,7582, -7711,7830,7939,8038,8126,8203,8271,8327,8373,8409,8434,8448,8452,8446,8429,8403, -8366,8319,8262,8195,8119,8033,7938,7834,7721,7599,7469,7330,7183,7028,6865,6695, -6518,6334,6143,5946,5743,5534,5319,5100,4875,4646,4412,4175,3934,3689,3442,3192, -2940,2685,2429,2172,1913,1654,1394,1135,875,616,359,102,-153,-406,-657,-906,-1152, --1394,-1634,-1870,-2101,-2329,-2552,-2771,-2985,-3193,-3396,-3594,-3785,-3971,-4150, --4323,-4490,-4649,-4802,-4947,-5086,-5217,-5340,-5456,-5564,-5665,-5757,-5842,-5919, --5987,-6048,-6101,-6145,-6181,-6209,-6229,-6241,-6245,-6241,-6229,-6210,-6182,-6147, --6104,-6053,-5996,-5930,-5858,-5779,-5693,-5600,-5501,-5395,-5283,-5165,-5041,-4911, --4777,-4637,-4491,-4341,-4187,-4028,-3865,-3699,-3528,-3354,-3177,-2998,-2815,-2630, --2444,-2255,-2064,-1872,-1680,-1486,-1292,-1097,-902,-708,-513,-320,-127,64,254,442, -629,813,995,1174,1351,1525,1695,1862,2026,2185,2341,2493,2640,2783,2921,3054,3183, -3306,3424,3537,3645,3746,3843,3933,4018,4097,4170,4237,4298,4353,4402,4445,4482, -4512,4536,4555,4567,4573,4573,4566,4554,4537,4513,4483,4448,4407,4361,4309,4252, -4190,4122,4050,3973,3891,3805,3714,3619,3520,3417,3310,3200,3086,2969,2849,2726, -2600,2472,2341,2209,2074,1938,1800,1660,1520,1378,1236,1093,950,806,663,520,377,235, -93,-48,-187,-325,-462,-597,-730,-862,-991,-1118,-1242,-1364,-1483,-1599,-1712, --1822,-1929,-2032,-2132,-2228,-2320,-2409,-2494,-2575,-2651,-2724,-2792,-2856,-2916, --2971,-3022,-3069,-3111,-3148,-3181,-3210,-3234,-3253,-3268,-3278,-3284,-3285,-3282, --3275,-3263,-3247,-3227,-3202,-3174,-3141,-3104,-3064,-3019,-2971,-2919,-2864,-2805, --2743,-2678,-2610,-2539,-2464,-2387,-2308,-2226,-2142,-2055,-1966,-1876,-1783,-1689, --1594,-1497,-1399,-1299,-1199,-1098,-996,-894,-791,-689,-586,-483,-380,-278,-176,-75, -26,126,224,322,418,513,606,698,788,877,963,1047,1129,1209,1287,1362,1434,1504, -1572,1637,1698,1757,1814,1867,1917,1964,2008,2049,2086,2121,2152,2180,2205,2227, -2245,2260,2272,2280,2286,2288,2287,2283,2276,2265,2252,2236,2216,2194,2169,2142, -2111,2078,2042,2004,1963,1921,1875,1828,1778,1727,1673,1618,1561,1502,1442,1380, -1317,1253,1187,1120,1053,984,915,846,775,705,633,562,491,419,348,277,206,135,65,-5, --74,-142,-209,-276,-341,-406,-469,-531,-592,-651,-709,-765,-820,-873,-924,-974, --1021,-1067,-1111,-1153,-1193,-1231,-1267,-1301,-1332,-1362,-1389,-1414,-1437,-1457, --1476,-1492,-1505,-1517,-1526,-1534,-1538,-1541,-1542,-1540,-1536,-1530,-1522,-1512, --1500,-1486,-1470,-1452,-1432,-1410,-1387,-1362,-1335,-1306,-1276,-1245,-1212,-1178, --1142,-1105,-1067,-1028,-987,-946,-904,-861,-817,-772,-727,-681,-635,-588,-541,-494, --446,-399,-351,-303,-255,-208,-160,-113,-66,-20,26,72,117,161,205,248,290,331,371, -411,449,486,523,558,592,624,656,686,715,743,769,794,817,839,860,879,897,913,928, -941,953,963,972,979,985,989,992,993,993,992,989,984,979,972,963,954,943,931,917, -903,887,870,852,833,813,792,771,748,724,700,675,649,623,596,568,540,512,483,453, -424,394,363,333,302,272,241,210,180,149,119,88,58,28,-1,-30,-59,-88,-115,-143,-170, --196,-222,-247,-272,-296,-319,-341,-363,-384,-404,-423,-441,-459,-476,-491,-506, --520,-533,-545,-557,-567,-576,-584,-592,-598,-604,-608,-612,-614,-616,-617,-616, --615,-613,-610,-607,-602,-597,-591,-583,-576,-567,-558,-548,-537,-526,-514,-501, --488,-474,-460,-445,-430,-414,-398,-382,-365,-347,-330,-312,-294,-276,-257,-239, --220,-201,-182,-163,-144,-126,-107,-88,-69,-51,-32,-14,4,22,39,56,73,90,106,122,137, -152,167,181,195,208,221,233,245,257,267,277,287,296,305,313,320,327,333,339,344, -348,352,355,358,360,362,363,363,363,362,361,359,357,354,351,347,343,338,333,327, -321,315,308,301,293,285,277,268,259,250,241,231,221,211,201,190,180,169,158,147, -136,125,114,103,91,80,69,58,47,36,25,15,4,-7,-17,-27,-37,-47,-56,-66,-75,-84,-92, --101,-109,-117,-124,-131,-138,-145,-151,-157,-163,-168,-173,-178,-182,-186,-189, --193,-196,-198,-200,-202,-204,-205,-206,-206,-206,-206,-206,-205,-204,-203,-201, --199,-197,-194,-191,-188,-185,-181,-178,-174,-169,-165,-160,-155,-150,-145,-140, --135,-129,-123,-117,-111,-105,-99,-93,-87,-81,-74,-68,-62,-55,-49,-43,-36,-30,-24, --18,-12,-6,0,6,12,18,23,29,34,39,44,49,54,58,63,67,71,75,79,82,86,89,92,95,97,100, -102,104,106,107,109,110,111,112,112,113,113,113,113,113,112,112,111,110,109,107, -106,104,103,101,99,97,94,92,89,87,84,81,78,75,72,69,66,63,60,56,53,50,46,43,39,36, -32,29,25,22,18,15,12,8,5,2,-1,-5,-8,-11,-14,-17,-19,-22,-25,-27,-30,-32,-35,-37, --39,-41,-43,-45,-46,-48,-50,-51,-52,-53,-54,-55,-56,-57,-58,-58,-59,-59,-59,-59, --59,-59,-59,-59,-58,-58,-57,-57,-56,-55,-54,-54,-53,-51,-50,-49,-48,-46,-45,-44, --42,-41,-39,-37,-36,-34,-32,-31,-29,-27,-25,-23,-22,-20,-18,-16,-14,-12,-11,-9,-7, --5,-4,-2,0,1,3,5,6,8,9,11,12,13,15,16,17,18,19,20,21,22,23,24,25,25,26,27,27,28, -28,29,29,29,29,29,30,30,30,30,29,29,29,29,29,28,28,27,27,27,26,25,25,24,24,23,22, -21,21,20,19,18,17,16,16,15,14,13,12,11,10,9,8,7,7,6,5,4,3,2,1,0,0,-1,-2,-3,-3,-4, --5,-6,-6,-7,-7,-8,-9,-9,-10,-10,-11,-11,-11,-12,-12,-12,-13,-13,-13,-13,-14,-14, --14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-13,-13,-13,-13,-13,-12,-12,-12,-11, --11,-11,-10,-10,-10,-9,-9,-9,-8,-8,-7,-7,-6,-6,-6,-5,-5,-4,-4,-3,-3,-3,-2,-2,-1,-1, --1,0,0,1,1,1,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,6,5,5,5,5,5,5,5,4,4,4,4,4,4,3,3,3,3,3,2,2,2,2,2,2,1,1,1,1,1,0,0,0,0,0,0,-1, --1,-1,-1,-1,-1,-1,-1,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-3,-3,-3,-3,-3,-3, --3,-3,-3,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1,-1,-1,-1,-1,-1, --1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 131072,131072,131072,131072,131072,131072,131072,131072,131071,131071,131071, + 131071,131071,131070,131070,131070,131069,131069,131068,131068,131067,131066,131066, + 131065,131064,131063,131061,131060,131058,131057,131055,131053,131051,131048,131046, + 131043,131040,131037,131033,131029,131025,131021,131016,131011,131005,130999,130993, + 130986,130978,130970,130962,130953,130943,130933,130922,130910,130897,130884,130870, + 130855,130839,130822,130804,130785,130765,130744,130721,130697,130672,130646,130618, + 130589,130558,130525,130491,130455,130417,130377,130336,130292,130246,130198,130147, + 130095,130039,129982,129921,129858,129792,129723,129651,129576,129497,129416,129330, + 129242,129149,129053,128953,128849,128741,128628,128512,128390,128265,128134,127998, + 127858,127712,127561,127405,127243,127076,126903,126723,126538,126346,126148,125944, + 125733,125515,125290,125058,124818,124572,124317,124055,123785,123508,123222,122927, + 122624,122313,121993,121664,121326,120978,120622,120255,119880,119494,119099,118693, + 118278,117852,117415,116968,116510,116042,115562,115072,114570,114057,113532,112996, + 112448,111889,111317,110734,110139,109532,108912,108280,107636,106980,106311,105630, + 104936,104229,103510,102778,102034,101276,100506,99724,98928,98120,97299,96466,95620, + 94761,93889,93005,92109,91200,90279,89345,88400,87442,86472,85490,84497,83492,82475, + 81447,80408,79358,78297,77225,76142,75050,73947,72834,71712,70580,69439,68289,67130, + 65963,64787,63604,62413,61215,60009,58797,57578,56354,55123,53887,52646,51401,50151, + 48897,47639,46378,45115,43848,42580,41310,40039,38767,37495,36223,34951,33680,32410, + 31142,29877,28614,27354,26098,24846,23598,22355,21118,19887,18662,17444,16233,15030, + 13835,12649,11472,10304,9147,8001,6865,5741,4629,3529,2442,1368,308,-738,-1769,-2786, + -3787,-4772,-5741,-6693,-7628,-8546,-9447,-10329,-11192,-12037,-12863,-13669,-14455, + -15221,-15967,-16692,-17396,-18079,-18741,-19380,-19998,-20593,-21167,-21717,-22245, + -22750,-23232,-23690,-24126,-24538,-24926,-25291,-25632,-25949,-26243,-26513,-26759, + -26981,-27179,-27354,-27505,-27633,-27737,-27818,-27875,-27910,-27921,-27909,-27875, + -27818,-27739,-27638,-27516,-27371,-27206,-27019,-26812,-26584,-26336,-26069,-25782, + -25476,-25151,-24808,-24448,-24070,-23674,-23263,-22835,-22391,-21933,-21459,-20972, + -20470,-19955,-19428,-18888,-18337,-17775,-17202,-16619,-16027,-15425,-14816,-14199, + -13574,-12943,-12306,-11663,-11016,-10364,-9709,-9051,-8390,-7728,-7064,-6400,-5735, + -5071,-4408,-3747,-3088,-2432,-1779,-1131,-486,153,786,1413,2034,2647,3253,3850,4439, + 5018,5587,6147,6696,7233,7759,8274,8776,9265,9741,10204,10652,11087,11507,11912, + 12303,12677,13037,13380,13707,14018,14313,14590,14851,15095,15321,15531,15723,15897, + 16055,16194,16316,16420,16507,16577,16628,16663,16679,16679,16661,16627,16575,16507, + 16422,16320,16203,16069,15920,15755,15575,15380,15170,14946,14708,14456,14191,13913, + 13622,13319,13004,12678,12340,11992,11633,11265,10887,10501,10106,9703,9292,8875, + 8451,8021,7585,7145,6699,6250,5797,5341,4883,4422,3960,3497,3033,2570,2106,1644, + 1183,724,268,-186,-636,-1082,-1524,-1961,-2393,-2820,-3240,-3654,-4061,-4460,-4852, + -5236,-5611,-5977,-6334,-6682,-7019,-7347,-7664,-7970,-8265,-8549,-8822,-9082,-9331, + -9567,-9791,-10002,-10200,-10386,-10558,-10718,-10864,-10997,-11116,-11222,-11314, + -11393,-11458,-11510,-11548,-11573,-11584,-11582,-11566,-11537,-11496,-11441,-11373, + -11293,-11200,-11095,-10978,-10849,-10708,-10556,-10392,-10218,-10032,-9837,-9631, + -9415,-9190,-8955,-8712,-8460,-8200,-7931,-7656,-7373,-7083,-6787,-6485,-6177,-5864, + -5547,-5224,-4898,-4568,-4235,-3899,-3560,-3220,-2878,-2535,-2191,-1847,-1502,-1158, + -816,-474,-134,204,540,872,1202,1528,1849,2167,2480,2788,3091,3388,3678,3963,4241, + 4512,4776,5033,5281,5522,5754,5979,6194,6400,6598,6786,6965,7134,7293,7443,7582, + 7711,7830,7939,8038,8126,8203,8271,8327,8373,8409,8434,8448,8452,8446,8429,8403, + 8366,8319,8262,8195,8119,8033,7938,7834,7721,7599,7469,7330,7183,7028,6865,6695, + 6518,6334,6143,5946,5743,5534,5319,5100,4875,4646,4412,4175,3934,3689,3442,3192, + 2940,2685,2429,2172,1913,1654,1394,1135,875,616,359,102,-153,-406,-657,-906,-1152, + -1394,-1634,-1870,-2101,-2329,-2552,-2771,-2985,-3193,-3396,-3594,-3785,-3971,-4150, + -4323,-4490,-4649,-4802,-4947,-5086,-5217,-5340,-5456,-5564,-5665,-5757,-5842,-5919, + -5987,-6048,-6101,-6145,-6181,-6209,-6229,-6241,-6245,-6241,-6229,-6210,-6182,-6147, + -6104,-6053,-5996,-5930,-5858,-5779,-5693,-5600,-5501,-5395,-5283,-5165,-5041,-4911, + -4777,-4637,-4491,-4341,-4187,-4028,-3865,-3699,-3528,-3354,-3177,-2998,-2815,-2630, + -2444,-2255,-2064,-1872,-1680,-1486,-1292,-1097,-902,-708,-513,-320,-127,64,254,442, + 629,813,995,1174,1351,1525,1695,1862,2026,2185,2341,2493,2640,2783,2921,3054,3183, + 3306,3424,3537,3645,3746,3843,3933,4018,4097,4170,4237,4298,4353,4402,4445,4482, + 4512,4536,4555,4567,4573,4573,4566,4554,4537,4513,4483,4448,4407,4361,4309,4252, + 4190,4122,4050,3973,3891,3805,3714,3619,3520,3417,3310,3200,3086,2969,2849,2726, + 2600,2472,2341,2209,2074,1938,1800,1660,1520,1378,1236,1093,950,806,663,520,377,235, + 93,-48,-187,-325,-462,-597,-730,-862,-991,-1118,-1242,-1364,-1483,-1599,-1712, + -1822,-1929,-2032,-2132,-2228,-2320,-2409,-2494,-2575,-2651,-2724,-2792,-2856,-2916, + -2971,-3022,-3069,-3111,-3148,-3181,-3210,-3234,-3253,-3268,-3278,-3284,-3285,-3282, + -3275,-3263,-3247,-3227,-3202,-3174,-3141,-3104,-3064,-3019,-2971,-2919,-2864,-2805, + -2743,-2678,-2610,-2539,-2464,-2387,-2308,-2226,-2142,-2055,-1966,-1876,-1783,-1689, + -1594,-1497,-1399,-1299,-1199,-1098,-996,-894,-791,-689,-586,-483,-380,-278,-176,-75, + 26,126,224,322,418,513,606,698,788,877,963,1047,1129,1209,1287,1362,1434,1504, + 1572,1637,1698,1757,1814,1867,1917,1964,2008,2049,2086,2121,2152,2180,2205,2227, + 2245,2260,2272,2280,2286,2288,2287,2283,2276,2265,2252,2236,2216,2194,2169,2142, + 2111,2078,2042,2004,1963,1921,1875,1828,1778,1727,1673,1618,1561,1502,1442,1380, + 1317,1253,1187,1120,1053,984,915,846,775,705,633,562,491,419,348,277,206,135,65,-5, + -74,-142,-209,-276,-341,-406,-469,-531,-592,-651,-709,-765,-820,-873,-924,-974, + -1021,-1067,-1111,-1153,-1193,-1231,-1267,-1301,-1332,-1362,-1389,-1414,-1437,-1457, + -1476,-1492,-1505,-1517,-1526,-1534,-1538,-1541,-1542,-1540,-1536,-1530,-1522,-1512, + -1500,-1486,-1470,-1452,-1432,-1410,-1387,-1362,-1335,-1306,-1276,-1245,-1212,-1178, + -1142,-1105,-1067,-1028,-987,-946,-904,-861,-817,-772,-727,-681,-635,-588,-541,-494, + -446,-399,-351,-303,-255,-208,-160,-113,-66,-20,26,72,117,161,205,248,290,331,371, + 411,449,486,523,558,592,624,656,686,715,743,769,794,817,839,860,879,897,913,928, + 941,953,963,972,979,985,989,992,993,993,992,989,984,979,972,963,954,943,931,917, + 903,887,870,852,833,813,792,771,748,724,700,675,649,623,596,568,540,512,483,453, + 424,394,363,333,302,272,241,210,180,149,119,88,58,28,-1,-30,-59,-88,-115,-143,-170, + -196,-222,-247,-272,-296,-319,-341,-363,-384,-404,-423,-441,-459,-476,-491,-506, + -520,-533,-545,-557,-567,-576,-584,-592,-598,-604,-608,-612,-614,-616,-617,-616, + -615,-613,-610,-607,-602,-597,-591,-583,-576,-567,-558,-548,-537,-526,-514,-501, + -488,-474,-460,-445,-430,-414,-398,-382,-365,-347,-330,-312,-294,-276,-257,-239, + -220,-201,-182,-163,-144,-126,-107,-88,-69,-51,-32,-14,4,22,39,56,73,90,106,122,137, + 152,167,181,195,208,221,233,245,257,267,277,287,296,305,313,320,327,333,339,344, + 348,352,355,358,360,362,363,363,363,362,361,359,357,354,351,347,343,338,333,327, + 321,315,308,301,293,285,277,268,259,250,241,231,221,211,201,190,180,169,158,147, + 136,125,114,103,91,80,69,58,47,36,25,15,4,-7,-17,-27,-37,-47,-56,-66,-75,-84,-92, + -101,-109,-117,-124,-131,-138,-145,-151,-157,-163,-168,-173,-178,-182,-186,-189, + -193,-196,-198,-200,-202,-204,-205,-206,-206,-206,-206,-206,-205,-204,-203,-201, + -199,-197,-194,-191,-188,-185,-181,-178,-174,-169,-165,-160,-155,-150,-145,-140, + -135,-129,-123,-117,-111,-105,-99,-93,-87,-81,-74,-68,-62,-55,-49,-43,-36,-30,-24, + -18,-12,-6,0,6,12,18,23,29,34,39,44,49,54,58,63,67,71,75,79,82,86,89,92,95,97,100, + 102,104,106,107,109,110,111,112,112,113,113,113,113,113,112,112,111,110,109,107, + 106,104,103,101,99,97,94,92,89,87,84,81,78,75,72,69,66,63,60,56,53,50,46,43,39,36, + 32,29,25,22,18,15,12,8,5,2,-1,-5,-8,-11,-14,-17,-19,-22,-25,-27,-30,-32,-35,-37, + -39,-41,-43,-45,-46,-48,-50,-51,-52,-53,-54,-55,-56,-57,-58,-58,-59,-59,-59,-59, + -59,-59,-59,-59,-58,-58,-57,-57,-56,-55,-54,-54,-53,-51,-50,-49,-48,-46,-45,-44, + -42,-41,-39,-37,-36,-34,-32,-31,-29,-27,-25,-23,-22,-20,-18,-16,-14,-12,-11,-9,-7, + -5,-4,-2,0,1,3,5,6,8,9,11,12,13,15,16,17,18,19,20,21,22,23,24,25,25,26,27,27,28, + 28,29,29,29,29,29,30,30,30,30,29,29,29,29,29,28,28,27,27,27,26,25,25,24,24,23,22, + 21,21,20,19,18,17,16,16,15,14,13,12,11,10,9,8,7,7,6,5,4,3,2,1,0,0,-1,-2,-3,-3,-4, + -5,-6,-6,-7,-7,-8,-9,-9,-10,-10,-11,-11,-11,-12,-12,-12,-13,-13,-13,-13,-14,-14, + -14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-13,-13,-13,-13,-13,-12,-12,-12,-11, + -11,-11,-10,-10,-10,-9,-9,-9,-8,-8,-7,-7,-6,-6,-6,-5,-5,-4,-4,-3,-3,-3,-2,-2,-1,-1, + -1,0,0,1,1,1,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, + 6,6,6,6,5,5,5,5,5,5,5,4,4,4,4,4,4,3,3,3,3,3,2,2,2,2,2,2,1,1,1,1,1,0,0,0,0,0,0,-1, + -1,-1,-1,-1,-1,-1,-1,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-3,-3,-3,-3,-3,-3, + -3,-3,-3,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, }, }; diff --git a/src/statusline.cpp b/src/statusline.cpp index 1703d0ec..8bdf130e 100644 --- a/src/statusline.cpp +++ b/src/statusline.cpp @@ -7,7 +7,7 @@ #include "options.h" #include "td-sdl/thread.h" #include "uae.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "xwin.h" @@ -25,124 +25,138 @@ extern int idletime_percent; * Some code to put status information on the screen. */ -static const char *numbers = { /* ugly 0123456789CHD%+- */ -"+++++++--++++-+++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++-++++++-++++----++---+--------------" -"+xxxxx+--+xx+-+xxxxx++xxxxx++x+-+x++xxxxx++xxxxx++xxxxx++xxxxx++xxxxx++xxxx+-+x++x+-+xxx++-+xx+-+x---+----------" -"+x+++x+--++x+-+++++x++++++x++x+++x++x++++++x++++++++++x++x+++x++x+++x++x++++-+x++x+-+x++x+--+x++x+--+x+----+++--" -"+x+-+x+---+x+-+xxxxx++xxxxx++xxxxx++xxxxx++xxxxx+--++x+-+xxxxx++xxxxx++x+----+xxxx+-+x++x+----+x+--+xxx+--+xxx+-" -"+x+++x+---+x+-+x++++++++++x++++++x++++++x++x+++x+--+x+--+x+++x++++++x++x++++-+x++x+-+x++x+---+x+x+--+x+----+++--" -"+xxxxx+---+x+-+xxxxx++xxxxx+----+x++xxxxx++xxxxx+--+x+--+xxxxx++xxxxx++xxxx+-+x++x+-+xxx+---+x++xx--------------" -"+++++++---+++-++++++++++++++----+++++++++++++++++--+++--++++++++++++++++++++-++++++-++++------------------------" +static const char *numbers = /* ugly 0123456789CHD%+- */ +{ + "+++++++--++++-+++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++-++++++-++++----++---+--------------" + "+xxxxx+--+xx+-+xxxxx++xxxxx++x+-+x++xxxxx++xxxxx++xxxxx++xxxxx++xxxxx++xxxx+-+x++x+-+xxx++-+xx+-+x---+----------" + "+x+++x+--++x+-+++++x++++++x++x+++x++x++++++x++++++++++x++x+++x++x+++x++x++++-+x++x+-+x++x+--+x++x+--+x+----+++--" + "+x+-+x+---+x+-+xxxxx++xxxxx++xxxxx++xxxxx++xxxxx+--++x+-+xxxxx++xxxxx++x+----+xxxx+-+x++x+----+x+--+xxx+--+xxx+-" + "+x+++x+---+x+-+x++++++++++x++++++x++++++x++x+++x+--+x+--+x+++x++++++x++x++++-+x++x+-+x++x+---+x+x+--+x+----+++--" + "+xxxxx+---+x+-+xxxxx++xxxxx+----+x++xxxxx++xxxxx+--+x+--+xxxxx++xxxxx++xxxx+-+x++x+-+xxx+---+x++xx--------------" + "+++++++---+++-++++++++++++++----+++++++++++++++++--+++--++++++++++++++++++++-++++++-++++------------------------" }; STATIC_INLINE void putpixel (uae_u8 *buf, int x, xcolnr c8) { - uae_u16 *p = (uae_u16 *)buf + x; - *p = (uae_u16)c8; + uae_u16 *p = (uae_u16 *)buf + x; + *p = (uae_u16)c8; } static void write_tdnumber (uae_u8 *buf, int x, int y, int num) { - int j; - const char *numptr; + int j; + const char *numptr; - numptr = numbers + num * TD_NUM_WIDTH + NUMBERS_NUM * TD_NUM_WIDTH * y; - for (j = 0; j < TD_NUM_WIDTH; j++) { - if (*numptr == 'x') - putpixel (buf, x + j, xcolors[0xfff]); - else if (*numptr == '+') - putpixel (buf, x + j, xcolors[0x000]); - numptr++; - } + numptr = numbers + num * TD_NUM_WIDTH + NUMBERS_NUM * TD_NUM_WIDTH * y; + for (j = 0; j < TD_NUM_WIDTH; j++) + { + if (*numptr == 'x') + putpixel (buf, x + j, xcolors[0xfff]); + else if (*numptr == '+') + putpixel (buf, x + j, xcolors[0x000]); + numptr++; + } } void draw_status_line_single (uae_u8 *buf, int y, int totalwidth) { - int x, i, j, led, on; - int on_rgb, off_rgb, c; + int x, i, j, led, on; + int on_rgb, off_rgb, c; - x = totalwidth - TD_PADX - VISIBLE_LEDS * TD_WIDTH; - x += 100 - (TD_WIDTH * (currprefs.nr_floppies - 1)) - TD_WIDTH; - if(nr_units() < 1) - x += TD_WIDTH; - if(currprefs.pandora_hide_idle_led) - x += TD_WIDTH; - - if(picasso_on) - memset (buf + (x - 4) * 2, 0, (prSDLScreen->w - x + 4) * 2); - else - memset (buf + (x - 4) * gfxvidinfo.pixbytes, 0, (gfxvidinfo.outwidth - x + 4) * gfxvidinfo.pixbytes); + x = totalwidth - TD_PADX - VISIBLE_LEDS * TD_WIDTH; + x += 100 - (TD_WIDTH * (currprefs.nr_floppies - 1)) - TD_WIDTH; + if(nr_units() < 1) + x += TD_WIDTH; + if(currprefs.pandora_hide_idle_led) + x += TD_WIDTH; - for (led = (currprefs.pandora_hide_idle_led == 0) ? -2 : -1; led < (currprefs.nr_floppies+1); led++) { - int track; - if(led == 0 && nr_units() < 1) - continue; // skip led for HD if not in use - if (led > 0) { - /* Floppy */ - track = gui_data.drive_track[led-1]; - on = gui_data.drive_motor[led-1]; - on_rgb = 0x0c0; - off_rgb = 0x030; - if (gui_data.drive_writing[led-1]) - on_rgb = 0xc00; - } else if (led < -1) { - /* Idle time */ - track = idletime_percent; - on = 1; - on_rgb = 0x666; - off_rgb = 0x666; - } else if (led < 0) { - /* Power */ - track = gui_data.fps; - on = gui_data.powerled; - on_rgb = 0xc00; - off_rgb = 0x300; - } else { - /* Hard disk */ - track = -2; - - switch (gui_data.hd) { - case HDLED_OFF: - on = 0; - off_rgb = 0x003; - break; - case HDLED_READ: - on = 1; - on_rgb = 0x00c; - off_rgb = 0x003; - break; - case HDLED_WRITE: - on = 1; - on_rgb = 0xc00; - off_rgb = 0x300; - break; - } - } - c = xcolors[on ? on_rgb : off_rgb]; + if(picasso_on) + memset (buf + (x - 4) * 2, 0, (prSDLScreen->w - x + 4) * 2); + else + memset (buf + (x - 4) * gfxvidinfo.pixbytes, 0, (gfxvidinfo.outwidth - x + 4) * gfxvidinfo.pixbytes); - for (j = 0; j < TD_LED_WIDTH; j++) - putpixel (buf, x + j, c); - - if (y >= TD_PADY && y - TD_PADY < TD_NUM_HEIGHT) { - if (track >= 0) { - int tn = track >= 100 ? 3 : 2; - int offs = (TD_LED_WIDTH - tn * TD_NUM_WIDTH) / 2; - if(track >= 100) + for (led = (currprefs.pandora_hide_idle_led == 0) ? -2 : -1; led < (currprefs.nr_floppies+1); led++) + { + int track; + if(led == 0 && nr_units() < 1) + continue; // skip led for HD if not in use + if (led > 0) { - write_tdnumber (buf, x + offs, y - TD_PADY, track / 100); - offs += TD_NUM_WIDTH; + /* Floppy */ + track = gui_data.drive_track[led-1]; + on = gui_data.drive_motor[led-1]; + on_rgb = 0x0c0; + off_rgb = 0x030; + if (gui_data.drive_writing[led-1]) + on_rgb = 0xc00; } - write_tdnumber (buf, x + offs, y - TD_PADY, (track / 10) % 10); - write_tdnumber (buf, x + offs + TD_NUM_WIDTH, y - TD_PADY, track % 10); - } - else if (nr_units() > 0) { - int offs = (TD_LED_WIDTH - 2 * TD_NUM_WIDTH) / 2; - //write_tdletter(buf, x + offs, y - TD_PADY, 'H'); - //write_tdletter(buf, x + offs + TD_NUM_WIDTH, y - TD_PADY, 'D'); - write_tdnumber (buf, x + offs, y - TD_PADY, 11); - write_tdnumber (buf, x + offs + TD_NUM_WIDTH, y - TD_PADY, 12); - } - } - x += TD_WIDTH; - } + else if (led < -1) + { + /* Idle time */ + track = idletime_percent; + on = 1; + on_rgb = 0x666; + off_rgb = 0x666; + } + else if (led < 0) + { + /* Power */ + track = gui_data.fps; + on = gui_data.powerled; + on_rgb = 0xc00; + off_rgb = 0x300; + } + else + { + /* Hard disk */ + track = -2; + + switch (gui_data.hd) + { + case HDLED_OFF: + on = 0; + off_rgb = 0x003; + break; + case HDLED_READ: + on = 1; + on_rgb = 0x00c; + off_rgb = 0x003; + break; + case HDLED_WRITE: + on = 1; + on_rgb = 0xc00; + off_rgb = 0x300; + break; + } + } + c = xcolors[on ? on_rgb : off_rgb]; + + for (j = 0; j < TD_LED_WIDTH; j++) + putpixel (buf, x + j, c); + + if (y >= TD_PADY && y - TD_PADY < TD_NUM_HEIGHT) + { + if (track >= 0) + { + int tn = track >= 100 ? 3 : 2; + int offs = (TD_LED_WIDTH - tn * TD_NUM_WIDTH) / 2; + if(track >= 100) + { + write_tdnumber (buf, x + offs, y - TD_PADY, track / 100); + offs += TD_NUM_WIDTH; + } + write_tdnumber (buf, x + offs, y - TD_PADY, (track / 10) % 10); + write_tdnumber (buf, x + offs + TD_NUM_WIDTH, y - TD_PADY, track % 10); + } + else if (nr_units() > 0) + { + int offs = (TD_LED_WIDTH - 2 * TD_NUM_WIDTH) / 2; + //write_tdletter(buf, x + offs, y - TD_PADY, 'H'); + //write_tdletter(buf, x + offs + TD_NUM_WIDTH, y - TD_PADY, 'D'); + write_tdnumber (buf, x + offs, y - TD_PADY, 11); + write_tdnumber (buf, x + offs + TD_NUM_WIDTH, y - TD_PADY, 12); + } + } + x += TD_WIDTH; + } } diff --git a/src/td-sdl/thread.h b/src/td-sdl/thread.h index c4091e3d..e4a7742c 100644 --- a/src/td-sdl/thread.h +++ b/src/td-sdl/thread.h @@ -1,10 +1,10 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * Threading support, using SDL - * - * Copyright 1997, 2001 Bernd Schmidt - */ +/* + * UAE - The Un*x Amiga Emulator + * + * Threading support, using SDL + * + * Copyright 1997, 2001 Bernd Schmidt + */ #include "SDL.h" #include "SDL_thread.h" @@ -15,8 +15,8 @@ typedef SDL_sem *uae_sem_t; STATIC_INLINE int uae_sem_init(uae_sem_t *sem, int dummy, int init) { - *sem = SDL_CreateSemaphore (init); - return (*sem == 0); + *sem = SDL_CreateSemaphore (init); + return (*sem == 0); } #define uae_sem_destroy(PSEM) SDL_DestroySemaphore (*PSEM) @@ -40,25 +40,25 @@ STATIC_INLINE void uae_set_thread_priority (uae_thread_id *id, int pri) STATIC_INLINE int uae_start_thread (const TCHAR *name, void *(*f) (void *), void *arg, uae_thread_id *foo) { - uae_thread_id id = SDL_CreateThread ((int (*)(void *))f, arg); - if(foo != NULL) - *foo = id; + uae_thread_id id = SDL_CreateThread ((int (*)(void *))f, arg); + if(foo != NULL) + *foo = id; // dbg_add_thread(id, name); - return (int)id; + return (int)id; } STATIC_INLINE int uae_start_thread_fast (void *(*f) (void *), void *arg, uae_thread_id *foo) { - uae_thread_id id = SDL_CreateThread ((int (*)(void *))f, arg); - if(foo != NULL) - *foo = id; + uae_thread_id id = SDL_CreateThread ((int (*)(void *))f, arg); + if(foo != NULL) + *foo = id; // dbg_add_thread(id, ""); - return (int)id; + return (int)id; } STATIC_INLINE void uae_wait_thread (uae_thread_id thread) { - SDL_WaitThread (thread, (int*)0); + SDL_WaitThread (thread, (int*)0); // dbg_rem_thread(thread); } diff --git a/src/trace.c b/src/trace.c index c517cc8f..b826f061 100644 --- a/src/trace.c +++ b/src/trace.c @@ -22,60 +22,66 @@ static FILE *fd; void trace_begin (void) { - if(do_trace) - return; - memset(trc_enter, 0, sizeof(int) * MAX_TRACE); - do_trace = 1; + if(do_trace) + return; + memset(trc_enter, 0, sizeof(int) * MAX_TRACE); + do_trace = 1; } - + void trace_end (void) { - if(do_trace) { - do_trace = 0; + if(do_trace) + { + do_trace = 0; - fd = fopen("trace.txt", "w"); - for(int i=0; i 0) { - Dl_info dlinfo; - memset(&dlinfo, 0, sizeof(dlinfo)); - int func_found = dladdr(trc_func[trc_next_write], &dlinfo); - if(func_found && dlinfo.dli_sname != NULL) { - fprintf(fd, "%8d - %s 0x%08X from 0x%08X (%s)\n", trc_number[trc_next_write], (trc_enter[trc_next_write] == 1 ? "enter" : "leave"), - trc_func[trc_next_write], trc_caller[trc_next_write], dlinfo.dli_sname); + fd = fopen("trace.txt", "w"); + for(int i=0; i 0) + { + Dl_info dlinfo; + memset(&dlinfo, 0, sizeof(dlinfo)); + int func_found = dladdr(trc_func[trc_next_write], &dlinfo); + if(func_found && dlinfo.dli_sname != NULL) + { + fprintf(fd, "%8d - %s 0x%08X from 0x%08X (%s)\n", trc_number[trc_next_write], (trc_enter[trc_next_write] == 1 ? "enter" : "leave"), + trc_func[trc_next_write], trc_caller[trc_next_write], dlinfo.dli_sname); + } + } + ++trc_next_write; + if(trc_next_write >= MAX_TRACE) + trc_next_write = 0; } - } - ++trc_next_write; - if(trc_next_write >= MAX_TRACE) - trc_next_write = 0; + fclose(fd); } - fclose(fd); - } } - + void __cyg_profile_func_enter (void *func, void *caller) { - if(do_trace) { - trc_enter[trc_next_write] = 1; - trc_func[trc_next_write] = func; - trc_caller[trc_next_write] = caller; - trc_number[trc_next_write] = trc_counter; - ++trc_counter; - ++trc_next_write; - if(trc_next_write >= MAX_TRACE) - trc_next_write = 0; - } + if(do_trace) + { + trc_enter[trc_next_write] = 1; + trc_func[trc_next_write] = func; + trc_caller[trc_next_write] = caller; + trc_number[trc_next_write] = trc_counter; + ++trc_counter; + ++trc_next_write; + if(trc_next_write >= MAX_TRACE) + trc_next_write = 0; + } } - + void __cyg_profile_func_exit (void *func, void *caller) { - if(do_trace) { - trc_enter[trc_next_write] = 2; - trc_func[trc_next_write] = func; - trc_caller[trc_next_write] = caller; - trc_number[trc_next_write] = trc_counter; - ++trc_counter; - ++trc_next_write; - if(trc_next_write >= MAX_TRACE) - trc_next_write = 0; - } + if(do_trace) + { + trc_enter[trc_next_write] = 2; + trc_func[trc_next_write] = func; + trc_caller[trc_next_write] = caller; + trc_number[trc_next_write] = trc_counter; + ++trc_counter; + ++trc_next_write; + if(trc_next_write >= MAX_TRACE) + trc_next_write = 0; + } } diff --git a/src/traps.cpp b/src/traps.cpp index 24ad35fb..65ed5ea0 100644 --- a/src/traps.cpp +++ b/src/traps.cpp @@ -1,20 +1,20 @@ - /* - * E-UAE - The portable Amiga Emulator - * - * Support for traps - * - * Copyright Richard Drummond 2005 - * - * Inspired by code from UAE: - * Copyright 1995, 1996 Bernd Schmidt - * Copyright 1996 Ed Hanway - */ +/* + * E-UAE - The portable Amiga Emulator + * + * Support for traps + * + * Copyright Richard Drummond 2005 + * + * Inspired by code from UAE: + * Copyright 1995, 1996 Bernd Schmidt + * Copyright 1996 Ed Hanway + */ #include "sysconfig.h" #include "sysdeps.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "td-sdl/thread.h" @@ -63,10 +63,10 @@ */ struct Trap { - TrapHandler handler; /* Handler function to be invoked for this trap. */ - int flags; /* Trap attributes. */ - const TCHAR *name; /* For debugging purposes. */ - uaecptr addr; + TrapHandler handler; /* Handler function to be invoked for this trap. */ + int flags; /* Trap attributes. */ + const TCHAR *name; /* For debugging purposes. */ + uaecptr addr; }; #define MAX_TRAPS 4096 @@ -82,14 +82,15 @@ static void trap_HandleExtendedTrap (TrapHandler, int has_retval); uaecptr find_trap (const TCHAR *name) { - int i; + int i; - for (i = 0; i < trap_count; i++) { - struct Trap *trap = &traps[i]; - if ((trap->flags & TRAPFLAG_UAERES) && trap->name && !_tcscmp (trap->name, name)) - return trap->addr; - } - return 0; + for (i = 0; i < trap_count; i++) + { + struct Trap *trap = &traps[i]; + if ((trap->flags & TRAPFLAG_UAERES) && trap->name && !_tcscmp (trap->name, name)) + return trap->addr; + } + return 0; } @@ -104,31 +105,35 @@ uaecptr find_trap (const TCHAR *name) */ unsigned int define_trap (TrapHandler handler_func, int flags, const TCHAR *name) { - if (trap_count == MAX_TRAPS) { - write_log (_T("Ran out of emulator traps\n")); - abort (); - return -1; - } else { - int i; - unsigned int trap_num; - struct Trap *trap; - uaecptr addr = here (); + if (trap_count == MAX_TRAPS) + { + write_log (_T("Ran out of emulator traps\n")); + abort (); + return -1; + } + else + { + int i; + unsigned int trap_num; + struct Trap *trap; + uaecptr addr = here (); - for (i = 0; i < trap_count; i++) { - if (addr == traps[i].addr) - return i; - } + for (i = 0; i < trap_count; i++) + { + if (addr == traps[i].addr) + return i; + } - trap_num = trap_count++; - trap = &traps[trap_num]; + trap_num = trap_count++; + trap = &traps[trap_num]; - trap->handler = handler_func; - trap->flags = flags; - trap->name = name; - trap->addr = addr; + trap->handler = handler_func; + trap->flags = flags; + trap->name = name; + trap->addr = addr; - return trap_num; - } + return trap_num; + } } @@ -140,37 +145,43 @@ unsigned int define_trap (TrapHandler handler_func, int flags, const TCHAR *name */ void REGPARAM2 m68k_handle_trap (unsigned int trap_num) { - struct Trap *trap = &traps[trap_num]; - uae_u32 retval = 0; + struct Trap *trap = &traps[trap_num]; + uae_u32 retval = 0; - int has_retval = (trap->flags & TRAPFLAG_NO_RETVAL) == 0; - int implicit_rts = (trap->flags & TRAPFLAG_DORET) != 0; + int has_retval = (trap->flags & TRAPFLAG_NO_RETVAL) == 0; + int implicit_rts = (trap->flags & TRAPFLAG_DORET) != 0; - if (trap->name && trap->name[0] != 0 && trace_traps) - write_log (_T("TRAP: %s\n"), trap->name); + if (trap->name && trap->name[0] != 0 && trace_traps) + write_log (_T("TRAP: %s\n"), trap->name); - if (trap_num < trap_count) { - if (trap->flags & TRAPFLAG_EXTRA_STACK) { - /* Handle an extended trap. - * Note: the return value of this trap is passed back to 68k - * space via a separate, dedicated simple trap which the trap - * handler causes to be invoked when it is done. - */ - trap_HandleExtendedTrap (trap->handler, has_retval); - } else { - /* Handle simple trap */ - retval = (trap->handler) (NULL); + if (trap_num < trap_count) + { + if (trap->flags & TRAPFLAG_EXTRA_STACK) + { + /* Handle an extended trap. + * Note: the return value of this trap is passed back to 68k + * space via a separate, dedicated simple trap which the trap + * handler causes to be invoked when it is done. + */ + trap_HandleExtendedTrap (trap->handler, has_retval); + } + else + { + /* Handle simple trap */ + retval = (trap->handler) (NULL); - if (has_retval) - m68k_dreg (regs, 0) = retval; + if (has_retval) + m68k_dreg (regs, 0) = retval; - if (implicit_rts) { - m68k_do_rts (); - fill_prefetch (); - } + if (implicit_rts) + { + m68k_do_rts (); + fill_prefetch (); + } + } } - } else - write_log (_T("Illegal emulator trap\n")); + else + write_log (_T("Illegal emulator trap\n")); } @@ -181,53 +192,53 @@ void REGPARAM2 m68k_handle_trap (unsigned int trap_num) struct TrapCPUContext { - uae_u32 regs[16]; - uae_u32 pc; - int intmask; + uae_u32 regs[16]; + uae_u32 pc; + int intmask; }; struct TrapContext { - /* Trap's working copy of 68k state. This is what the trap handler should - * access to get arguments from 68k space. */ - //struct regstruct regs; + /* Trap's working copy of 68k state. This is what the trap handler should + * access to get arguments from 68k space. */ + //struct regstruct regs; - /* Trap handler function that gets called on the trap context */ - TrapHandler trap_handler; - /* Should the handler return a value to 68k space in D0? */ - int trap_has_retval; - /* Return value from trap handler */ - uae_u32 trap_retval; + /* Trap handler function that gets called on the trap context */ + TrapHandler trap_handler; + /* Should the handler return a value to 68k space in D0? */ + int trap_has_retval; + /* Return value from trap handler */ + uae_u32 trap_retval; - /* Copy of 68k state at trap entry. */ - //struct regstruct saved_regs; - struct TrapCPUContext saved_regs; + /* Copy of 68k state at trap entry. */ + //struct regstruct saved_regs; + struct TrapCPUContext saved_regs; - /* Thread which effects the trap context. */ - uae_thread_id thread; - /* For IPC between the main emulator. */ - uae_sem_t switch_to_emu_sem; - /* context and the trap context. */ - uae_sem_t switch_to_trap_sem; + /* Thread which effects the trap context. */ + uae_thread_id thread; + /* For IPC between the main emulator. */ + uae_sem_t switch_to_emu_sem; + /* context and the trap context. */ + uae_sem_t switch_to_trap_sem; - /* When calling a 68k function from a trap handler, this is set to the - * address of the function to call. */ - uaecptr call68k_func_addr; - /* And this gets set to the return value of the 68k call. */ - uae_u32 call68k_retval; + /* When calling a 68k function from a trap handler, this is set to the + * address of the function to call. */ + uaecptr call68k_func_addr; + /* And this gets set to the return value of the 68k call. */ + uae_u32 call68k_retval; }; static void copytocpucontext(struct TrapCPUContext *cpu) { - memcpy (cpu->regs, regs.regs, sizeof (regs.regs)); - cpu->intmask = regs.intmask; - cpu->pc = m68k_getpc (); + memcpy (cpu->regs, regs.regs, sizeof (regs.regs)); + cpu->intmask = regs.intmask; + cpu->pc = m68k_getpc (); } static void copyfromcpucontext(struct TrapCPUContext *cpu, uae_u32 pc) { - memcpy (regs.regs, cpu->regs, sizeof (regs.regs)); - regs.intmask = cpu->intmask; - m68k_setpc (pc); + memcpy (regs.regs, cpu->regs, sizeof (regs.regs)); + regs.intmask = cpu->intmask; + m68k_setpc (pc); } @@ -246,45 +257,45 @@ static TrapContext *current_context; */ static void *trap_thread (void *arg) { - TrapContext *context = (TrapContext *) arg; + TrapContext *context = (TrapContext *) arg; - /* Wait until main thread is ready to switch to the - * this trap context. */ - uae_sem_wait (&context->switch_to_trap_sem); + /* Wait until main thread is ready to switch to the + * this trap context. */ + uae_sem_wait (&context->switch_to_trap_sem); - /* Execute trap handler function. */ - context->trap_retval = context->trap_handler (context); + /* Execute trap handler function. */ + context->trap_retval = context->trap_handler (context); - /* Trap handler is done - we still need to tidy up - * and make sure the handler's return value is propagated - * to the calling 68k thread. - * - * We do this by causing our exit handler to be executed on the 68k context. - */ + /* Trap handler is done - we still need to tidy up + * and make sure the handler's return value is propagated + * to the calling 68k thread. + * + * We do this by causing our exit handler to be executed on the 68k context. + */ - /* Enter critical section - only one trap at a time, please! */ - uae_sem_wait (&trap_mutex); + /* Enter critical section - only one trap at a time, please! */ + uae_sem_wait (&trap_mutex); - //regs = context->saved_regs; - /* Set PC to address of the exit handler, so that it will be called - * when the 68k context resumes. */ - copyfromcpucontext (&context->saved_regs, exit_trap_trapaddr); - /* Don't allow an interrupt and thus potentially another - * trap to be invoked while we hold the above mutex. - * This is probably just being paranoid. */ - regs.intmask = 7; + //regs = context->saved_regs; + /* Set PC to address of the exit handler, so that it will be called + * when the 68k context resumes. */ + copyfromcpucontext (&context->saved_regs, exit_trap_trapaddr); + /* Don't allow an interrupt and thus potentially another + * trap to be invoked while we hold the above mutex. + * This is probably just being paranoid. */ + regs.intmask = 7; - //m68k_setpc (exit_trap_trapaddr); - current_context = context; + //m68k_setpc (exit_trap_trapaddr); + current_context = context; - /* Switch back to 68k context */ - uae_sem_post (&context->switch_to_emu_sem); + /* Switch back to 68k context */ + uae_sem_post (&context->switch_to_emu_sem); - /* Good bye, cruel world... */ + /* Good bye, cruel world... */ - /* dummy return value */ - write_log("trap_thread: exit (arg=0x%08X)\n", arg); - return 0; + /* dummy return value */ + write_log("trap_thread: exit (arg=0x%08X)\n", arg); + return 0; } /* @@ -292,32 +303,33 @@ static void *trap_thread (void *arg) */ static void trap_HandleExtendedTrap (TrapHandler handler_func, int has_retval) { - struct TrapContext *context = xcalloc (TrapContext, 1); + struct TrapContext *context = xcalloc (TrapContext, 1); - if (context) { - uae_sem_init (&context->switch_to_trap_sem, 0, 0); - uae_sem_init (&context->switch_to_emu_sem, 0, 0); + if (context) + { + uae_sem_init (&context->switch_to_trap_sem, 0, 0); + uae_sem_init (&context->switch_to_emu_sem, 0, 0); - context->trap_handler = handler_func; - context->trap_has_retval = has_retval; + context->trap_handler = handler_func; + context->trap_has_retval = has_retval; - //context->saved_regs = regs; - copytocpucontext (&context->saved_regs); + //context->saved_regs = regs; + copytocpucontext (&context->saved_regs); - /* Start thread to handle new trap context. */ - uae_start_thread_fast (trap_thread, (void *)context, &context->thread); + /* Start thread to handle new trap context. */ + uae_start_thread_fast (trap_thread, (void *)context, &context->thread); - /* Switch to trap context to begin execution of - * trap handler function. - */ - uae_sem_post (&context->switch_to_trap_sem); + /* Switch to trap context to begin execution of + * trap handler function. + */ + uae_sem_post (&context->switch_to_trap_sem); - /* Wait for trap context to switch back to us. - * - * It'll do this when the trap handler is done - or when - * the handler wants to call 68k code. */ - uae_sem_wait (&context->switch_to_emu_sem); - } + /* Wait for trap context to switch back to us. + * + * It'll do this when the trap handler is done - or when + * the handler wants to call 68k code. */ + uae_sem_wait (&context->switch_to_emu_sem); + } } /* @@ -327,34 +339,34 @@ static void trap_HandleExtendedTrap (TrapHandler handler_func, int has_retval) */ static uae_u32 trap_Call68k (TrapContext *context, uaecptr func_addr) { - /* Enter critical section - only one trap at a time, please! */ - uae_sem_wait (&trap_mutex); - current_context = context; + /* Enter critical section - only one trap at a time, please! */ + uae_sem_wait (&trap_mutex); + current_context = context; - /* Don't allow an interrupt and thus potentially another - * trap to be invoked while we hold the above mutex. - * This is probably just being paranoid. */ - regs.intmask = 7; + /* Don't allow an interrupt and thus potentially another + * trap to be invoked while we hold the above mutex. + * This is probably just being paranoid. */ + regs.intmask = 7; - /* Set up function call address. */ - context->call68k_func_addr = func_addr; + /* Set up function call address. */ + context->call68k_func_addr = func_addr; - /* Set PC to address of 68k call trap, so that it will be - * executed when emulator context resumes. */ - m68k_setpc (m68k_call_trapaddr); - fill_prefetch (); + /* Set PC to address of 68k call trap, so that it will be + * executed when emulator context resumes. */ + m68k_setpc (m68k_call_trapaddr); + fill_prefetch (); - /* Switch to emulator context. */ - uae_sem_post (&context->switch_to_emu_sem); + /* Switch to emulator context. */ + uae_sem_post (&context->switch_to_emu_sem); - /* Wait for 68k call return handler to switch back to us. */ - uae_sem_wait (&context->switch_to_trap_sem); + /* Wait for 68k call return handler to switch back to us. */ + uae_sem_wait (&context->switch_to_trap_sem); - /* End critical section. */ - uae_sem_post (&trap_mutex); + /* End critical section. */ + uae_sem_post (&trap_mutex); - /* Get return value from 68k function called. */ - return context->call68k_retval; + /* Get return value from 68k function called. */ + return context->call68k_retval; } /* @@ -362,37 +374,37 @@ static uae_u32 trap_Call68k (TrapContext *context, uaecptr func_addr) */ static uae_u32 REGPARAM2 m68k_call_handler (TrapContext *dummy_ctx) { - TrapContext *context = current_context; + TrapContext *context = current_context; - uae_u32 sp; + uae_u32 sp; - sp = m68k_areg (regs, 7); + sp = m68k_areg (regs, 7); - /* Push address of trap context on 68k stack. This is - * so the return trap can find this context. */ - sp -= sizeof (void *); - put_pointer (sp, context); + /* Push address of trap context on 68k stack. This is + * so the return trap can find this context. */ + sp -= sizeof (void *); + put_pointer (sp, context); - /* Push addr to return handler trap on 68k stack. - * When the called m68k function does an RTS, the CPU will pull this - * address off the stack and so call the return handler. */ - sp -= 4; - put_long (sp, m68k_return_trapaddr); + /* Push addr to return handler trap on 68k stack. + * When the called m68k function does an RTS, the CPU will pull this + * address off the stack and so call the return handler. */ + sp -= 4; + put_long (sp, m68k_return_trapaddr); - m68k_areg (regs, 7) = sp; + m68k_areg (regs, 7) = sp; - /* Set PC to address of 68k function to call. */ - m68k_setpc (context->call68k_func_addr); - fill_prefetch (); + /* Set PC to address of 68k function to call. */ + m68k_setpc (context->call68k_func_addr); + fill_prefetch (); - /* End critical section: allow other traps run. */ - uae_sem_post (&trap_mutex); + /* End critical section: allow other traps run. */ + uae_sem_post (&trap_mutex); - /* Restore interrupts. */ - regs.intmask = context->saved_regs.intmask; + /* Restore interrupts. */ + regs.intmask = context->saved_regs.intmask; - /* Dummy return value. */ - return 0; + /* Dummy return value. */ + return 0; } /* @@ -400,32 +412,32 @@ static uae_u32 REGPARAM2 m68k_call_handler (TrapContext *dummy_ctx) */ static uae_u32 REGPARAM2 m68k_return_handler (TrapContext *dummy_ctx) { - TrapContext *context; - uae_u32 sp; + TrapContext *context; + uae_u32 sp; - /* One trap returning at a time, please! */ - uae_sem_wait (&trap_mutex); + /* One trap returning at a time, please! */ + uae_sem_wait (&trap_mutex); - /* Get trap context from 68k stack. */ - sp = m68k_areg (regs, 7); - context = (TrapContext *) get_pointer(sp); - sp += sizeof (void *); - m68k_areg (regs, 7) = sp; + /* Get trap context from 68k stack. */ + sp = m68k_areg (regs, 7); + context = (TrapContext *) get_pointer(sp); + sp += sizeof (void *); + m68k_areg (regs, 7) = sp; - /* Get return value from the 68k call. */ - context->call68k_retval = m68k_dreg (regs, 0); + /* Get return value from the 68k call. */ + context->call68k_retval = m68k_dreg (regs, 0); - /* Switch back to trap context. */ - uae_sem_post (&context->switch_to_trap_sem); + /* Switch back to trap context. */ + uae_sem_post (&context->switch_to_trap_sem); - /* Wait for trap context to switch back to us. - * - * It'll do this when the trap handler is done - or when - * the handler wants to call another 68k function. */ - uae_sem_wait (&context->switch_to_emu_sem); + /* Wait for trap context to switch back to us. + * + * It'll do this when the trap handler is done - or when + * the handler wants to call another 68k function. */ + uae_sem_wait (&context->switch_to_emu_sem); - /* Dummy return value. */ - return 0; + /* Dummy return value. */ + return 0; } /* @@ -434,30 +446,30 @@ static uae_u32 REGPARAM2 m68k_return_handler (TrapContext *dummy_ctx) */ static uae_u32 REGPARAM2 exit_trap_handler (TrapContext *dummy_ctx) { - TrapContext *context = current_context; + TrapContext *context = current_context; - /* Wait for trap context thread to exit. */ - uae_wait_thread (context->thread); + /* Wait for trap context thread to exit. */ + uae_wait_thread (context->thread); - /* Restore 68k state saved at trap entry. */ - //regs = context->saved_regs; - copyfromcpucontext (&context->saved_regs, context->saved_regs.pc); - - /* If trap is supposed to return a value, then store - * return value in D0. */ - if (context->trap_has_retval) - m68k_dreg (regs, 0) = context->trap_retval; + /* Restore 68k state saved at trap entry. */ + //regs = context->saved_regs; + copyfromcpucontext (&context->saved_regs, context->saved_regs.pc); - uae_sem_destroy (&context->switch_to_trap_sem); - uae_sem_destroy (&context->switch_to_emu_sem); + /* If trap is supposed to return a value, then store + * return value in D0. */ + if (context->trap_has_retval) + m68k_dreg (regs, 0) = context->trap_retval; - xfree (context); + uae_sem_destroy (&context->switch_to_trap_sem); + uae_sem_destroy (&context->switch_to_emu_sem); - /* End critical section */ - uae_sem_post (&trap_mutex); + xfree (context); - /* Dummy return value. */ - return 0; + /* End critical section */ + uae_sem_post (&trap_mutex); + + /* Dummy return value. */ + return 0; } @@ -467,14 +479,14 @@ static uae_u32 REGPARAM2 exit_trap_handler (TrapContext *dummy_ctx) */ uae_u32 CallLib (TrapContext *context, uaecptr base, uae_s16 offset) { - uae_u32 retval; - uaecptr olda6 = m68k_areg (regs, 6); + uae_u32 retval; + uaecptr olda6 = m68k_areg (regs, 6); - m68k_areg (regs, 6) = base; - retval = trap_Call68k (context, base + offset); - m68k_areg (regs, 6) = olda6; + m68k_areg (regs, 6) = base; + retval = trap_Call68k (context, base + offset); + m68k_areg (regs, 6) = olda6; - return retval; + return retval; } /* @@ -482,7 +494,7 @@ uae_u32 CallLib (TrapContext *context, uaecptr base, uae_s16 offset) */ uae_u32 CallFunc (TrapContext *context, uaecptr func) { - return trap_Call68k (context, func); + return trap_Call68k (context, func); } @@ -491,7 +503,7 @@ uae_u32 CallFunc (TrapContext *context, uaecptr func) */ void init_traps (void) { - trap_count = 0; + trap_count = 0; } /* @@ -499,17 +511,17 @@ void init_traps (void) */ void init_extended_traps (void) { - m68k_call_trapaddr = here (); - calltrap (deftrap2 (m68k_call_handler, TRAPFLAG_NO_RETVAL, _T("m68k_call"))); + m68k_call_trapaddr = here (); + calltrap (deftrap2 (m68k_call_handler, TRAPFLAG_NO_RETVAL, _T("m68k_call"))); - m68k_return_trapaddr = here(); - calltrap (deftrap2 (m68k_return_handler, TRAPFLAG_NO_RETVAL, _T("m68k_return"))); + m68k_return_trapaddr = here(); + calltrap (deftrap2 (m68k_return_handler, TRAPFLAG_NO_RETVAL, _T("m68k_return"))); - exit_trap_trapaddr = here(); - calltrap (deftrap2 (exit_trap_handler, TRAPFLAG_NO_RETVAL, _T("exit_trap"))); + exit_trap_trapaddr = here(); + calltrap (deftrap2 (exit_trap_handler, TRAPFLAG_NO_RETVAL, _T("exit_trap"))); - if(trap_mutex != 0) - uae_sem_destroy(&trap_mutex); - trap_mutex = 0; - uae_sem_init (&trap_mutex, 0, 1); + if(trap_mutex != 0) + uae_sem_destroy(&trap_mutex); + trap_mutex = 0; + uae_sem_init (&trap_mutex, 0, 1); } diff --git a/src/uaelib.cpp b/src/uaelib.cpp index 9f783cc7..b0aba750 100755 --- a/src/uaelib.cpp +++ b/src/uaelib.cpp @@ -16,7 +16,7 @@ #include "options.h" #include "uae.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "xwin.h" @@ -33,7 +33,7 @@ */ static uae_u32 emulib_GetVersion (void) { - return version; + return version; } /* @@ -41,14 +41,14 @@ static uae_u32 emulib_GetVersion (void) */ static uae_u32 emulib_HardReset (void) { - uae_reset(1, 1); - return 0; + uae_reset(1, 1); + return 0; } static uae_u32 emulib_Reset (void) { - uae_reset(0, 0); - return 0; + uae_reset(0, 0); + return 0; } /* @@ -56,11 +56,11 @@ static uae_u32 emulib_Reset (void) */ static uae_u32 emulib_EnableSound (uae_u32 val) { - if (!sound_available || currprefs.produce_sound == 2) - return 0; + if (!sound_available || currprefs.produce_sound == 2) + return 0; - currprefs.produce_sound = val; - return 1; + currprefs.produce_sound = val; + return 1; } /* @@ -68,9 +68,9 @@ static uae_u32 emulib_EnableSound (uae_u32 val) */ static uae_u32 emulib_EnableJoystick (uae_u32 val) { - currprefs.jports[0].id = val & 255; - currprefs.jports[1].id = (val >> 8) & 255; - return 1; + currprefs.jports[0].id = val & 255; + currprefs.jports[1].id = (val >> 8) & 255; + return 1; } /* @@ -78,14 +78,15 @@ static uae_u32 emulib_EnableJoystick (uae_u32 val) */ static uae_u32 emulib_SetFrameRate (uae_u32 val) { - if (val == 0) - return 0; - else if (val > 20) - return 0; - else { - currprefs.gfx_framerate = val; - return 1; - } + if (val == 0) + return 0; + else if (val > 20) + return 0; + else + { + currprefs.gfx_framerate = val; + return 1; + } } /* @@ -93,9 +94,9 @@ static uae_u32 emulib_SetFrameRate (uae_u32 val) */ static uae_u32 emulib_ChangeLanguage (uae_u32 which) { - if(which > 0) - return 0; - return 1; + if(which > 0) + return 0; + return 1; } /* The following ones don't work as we never realloc the arrays... */ @@ -105,16 +106,17 @@ static uae_u32 emulib_ChangeLanguage (uae_u32 which) */ static uae_u32 REGPARAM2 emulib_ChgCMemSize (uae_u32 memsize) { - if (memsize != 0x80000 && memsize != 0x100000 && - memsize != 0x200000) { - memsize = 0x200000; - write_log (_T("Unsupported chipmem size!\n")); - } - m68k_dreg (regs, 0) = 0; + if (memsize != 0x80000 && memsize != 0x100000 && + memsize != 0x200000) + { + memsize = 0x200000; + write_log (_T("Unsupported chipmem size!\n")); + } + m68k_dreg (regs, 0) = 0; - changed_prefs.chipmem_size = memsize; - uae_reset(1, 1); - return 1; + changed_prefs.chipmem_size = memsize; + uae_reset(1, 1); + return 1; } /* @@ -123,16 +125,17 @@ static uae_u32 REGPARAM2 emulib_ChgCMemSize (uae_u32 memsize) */ static uae_u32 REGPARAM2 emulib_ChgSMemSize (uae_u32 memsize) { - if (memsize != 0x80000 && memsize != 0x100000 && - memsize != 0x180000 && memsize != 0x1C0000) { - memsize = 0; - write_log (_T("Unsupported bogomem size!\n")); - } + if (memsize != 0x80000 && memsize != 0x100000 && + memsize != 0x180000 && memsize != 0x1C0000) + { + memsize = 0; + write_log (_T("Unsupported bogomem size!\n")); + } - m68k_dreg (regs, 0) = 0; - changed_prefs.bogomem_size = memsize; - uae_reset (1, 1); - return 1; + m68k_dreg (regs, 0) = 0; + changed_prefs.bogomem_size = memsize; + uae_reset (1, 1); + return 1; } /* @@ -141,15 +144,16 @@ static uae_u32 REGPARAM2 emulib_ChgSMemSize (uae_u32 memsize) */ static uae_u32 REGPARAM2 emulib_ChgFMemSize (uae_u32 memsize) { - if (memsize != 0x100000 && memsize != 0x200000 && - memsize != 0x400000 && memsize != 0x800000) { - memsize = 0; - write_log (_T("Unsupported fastmem size!\n")); - } - m68k_dreg (regs, 0) = 0; - changed_prefs.fastmem_size = memsize; - uae_reset (1, 1); - return 0; + if (memsize != 0x100000 && memsize != 0x200000 && + memsize != 0x400000 && memsize != 0x800000) + { + memsize = 0; + write_log (_T("Unsupported fastmem size!\n")); + } + m68k_dreg (regs, 0) = 0; + changed_prefs.fastmem_size = memsize; + uae_reset (1, 1); + return 0; } /* @@ -157,24 +161,24 @@ static uae_u32 REGPARAM2 emulib_ChgFMemSize (uae_u32 memsize) */ static uae_u32 emulib_InsertDisk (uaecptr name, uae_u32 drive) { - int i = 0; - char real_name[256]; - TCHAR *s; + int i = 0; + char real_name[256]; + TCHAR *s; - if (drive > 3) - return 0; + if (drive > 3) + return 0; - while ((real_name[i] = get_byte (name + i)) != 0 && i++ != 254) - ; + while ((real_name[i] = get_byte (name + i)) != 0 && i++ != 254) + ; - if (i == 255) - return 0; /* ENAMETOOLONG */ + if (i == 255) + return 0; /* ENAMETOOLONG */ - s = au (real_name); - _tcscpy (changed_prefs.floppyslots[drive].df, s); - xfree (s); + s = au (real_name); + _tcscpy (changed_prefs.floppyslots[drive].df, s); + xfree (s); - return 1; + return 1; } /* @@ -192,40 +196,41 @@ static uae_u32 emulib_ExitEmu (void) */ static uae_u32 emulib_GetUaeConfig (uaecptr place) { - int i, j; + int i, j; - put_long (place, version); - put_long (place + 4, allocated_chipmem); - put_long (place + 8, allocated_bogomem); - put_long (place + 12, allocated_fastmem); - put_long (place + 16, currprefs.gfx_framerate); - put_long (place + 20, currprefs.produce_sound); - put_long (place + 24, currprefs.jports[0].id | (currprefs.jports[1].id << 8)); - put_long (place + 28, 0); - if (disk_empty (0)) - put_byte (place + 32, 0); - else - put_byte (place + 32, 1); - if (disk_empty (1)) - put_byte (place + 33, 0); - else - put_byte (place + 33, 1); - if (disk_empty(2)) - put_byte (place + 34, 0); - else - put_byte (place + 34, 1); - if (disk_empty(3)) - put_byte (place + 35, 0); - else - put_byte (place + 35, 1); + put_long (place, version); + put_long (place + 4, allocated_chipmem); + put_long (place + 8, allocated_bogomem); + put_long (place + 12, allocated_fastmem); + put_long (place + 16, currprefs.gfx_framerate); + put_long (place + 20, currprefs.produce_sound); + put_long (place + 24, currprefs.jports[0].id | (currprefs.jports[1].id << 8)); + put_long (place + 28, 0); + if (disk_empty (0)) + put_byte (place + 32, 0); + else + put_byte (place + 32, 1); + if (disk_empty (1)) + put_byte (place + 33, 0); + else + put_byte (place + 33, 1); + if (disk_empty(2)) + put_byte (place + 34, 0); + else + put_byte (place + 34, 1); + if (disk_empty(3)) + put_byte (place + 35, 0); + else + put_byte (place + 35, 1); - for (j = 0; j < 4; j++) { - char *s = ua (currprefs.floppyslots[j].df); - for (i = 0; i < 256; i++) - put_byte (place + 36 + i + j * 256, s[i]); - xfree (s); - } - return 1; + for (j = 0; j < 4; j++) + { + char *s = ua (currprefs.floppyslots[j].df); + for (i = 0; i < 256; i++) + put_byte (place + 36 + i + j * 256, s[i]); + xfree (s); + } + return 1; } /* @@ -235,7 +240,7 @@ static uae_u32 emulib_GetUaeConfig (uaecptr place) */ static uae_u32 emulib_SetUaeConfig (uaecptr place) { - return 1; + return 1; } /* @@ -243,14 +248,15 @@ static uae_u32 emulib_SetUaeConfig (uaecptr place) */ static uae_u32 emulib_GetDisk (uae_u32 drive, uaecptr name) { - int i; - if (drive > 3) - return 0; + int i; + if (drive > 3) + return 0; - for (i = 0;i < 256; i++) { - put_byte (name + i, currprefs.floppyslots[drive].df[i]); - } - return 1; + for (i = 0; i < 256; i++) + { + put_byte (name + i, currprefs.floppyslots[drive].df[i]); + } + return 1; } /* @@ -259,10 +265,10 @@ static uae_u32 emulib_GetDisk (uae_u32 drive, uaecptr name) static uae_u32 emulib_Debug (void) { #ifdef DEBUGGER - activate_debugger (); - return 1; + activate_debugger (); + return 1; #else - return 0; + return 0; #endif } @@ -276,62 +282,64 @@ static uae_u32 emulib_Debug (void) static uae_u32 REGPARAM2 emulib_ExecuteNativeCode (void) { #if 0 - uaecptr object_AAM = m68k_areg (regs, 0); - uae_u32 d1 = m68k_dreg (regs, 1); - uae_u32 d2 = m68k_dreg (regs, 2); - uae_u32 d3 = m68k_dreg (regs, 3); - uae_u32 d4 = m68k_dreg (regs, 4); - uae_u32 d5 = m68k_dreg (regs, 5); - uae_u32 d6 = m68k_dreg (regs, 6); - uae_u32 d7 = m68k_dreg (regs, 7); - uae_u32 a1 = m68k_areg (regs, 1); - uae_u32 a2 = m68k_areg (regs, 2); - uae_u32 a3 = m68k_areg (regs, 3); - uae_u32 a4 = m68k_areg (regs, 4); - uae_u32 a5 = m68k_areg (regs, 5); - uae_u32 a6 = m68k_areg (regs, 6); + uaecptr object_AAM = m68k_areg (regs, 0); + uae_u32 d1 = m68k_dreg (regs, 1); + uae_u32 d2 = m68k_dreg (regs, 2); + uae_u32 d3 = m68k_dreg (regs, 3); + uae_u32 d4 = m68k_dreg (regs, 4); + uae_u32 d5 = m68k_dreg (regs, 5); + uae_u32 d6 = m68k_dreg (regs, 6); + uae_u32 d7 = m68k_dreg (regs, 7); + uae_u32 a1 = m68k_areg (regs, 1); + uae_u32 a2 = m68k_areg (regs, 2); + uae_u32 a3 = m68k_areg (regs, 3); + uae_u32 a4 = m68k_areg (regs, 4); + uae_u32 a5 = m68k_areg (regs, 5); + uae_u32 a6 = m68k_areg (regs, 6); - uae_u8* object_UAM = NULL; - CREATE_NATIVE_FUNC_PTR; + uae_u8* object_UAM = NULL; + CREATE_NATIVE_FUNC_PTR; - if( get_mem_bank( object_AAM ).check( object_AAM, 1 ) ) - object_UAM = get_mem_bank( object_AAM).xlateaddr( object_AAM ); + if( get_mem_bank( object_AAM ).check( object_AAM, 1 ) ) + object_UAM = get_mem_bank( object_AAM).xlateaddr( object_AAM ); - if(object_UAM) { - SET_NATIVE_FUNC( FindFunctionInObject( object_UAM ) ); - CALL_NATIVE_FUNC( d1, d2, d3, d4, d5, d6, d7, a1, a2, a3, a4, a5, a6); - } - return 1; + if(object_UAM) + { + SET_NATIVE_FUNC( FindFunctionInObject( object_UAM ) ); + CALL_NATIVE_FUNC( d1, d2, d3, d4, d5, d6, d7, a1, a2, a3, a4, a5, a6); + } + return 1; #endif - return 0; + return 0; } static uae_u32 emulib_Minimize (void) { - return 0; // OSDEP_minimize_uae(); + return 0; // OSDEP_minimize_uae(); } static int native_dos_op (uae_u32 mode, uae_u32 p1, uae_u32 p2, uae_u32 p3) { - TCHAR tmp[MAX_DPATH]; - char *s; - int v, i; + TCHAR tmp[MAX_DPATH]; + char *s; + int v, i; - if (mode) - return -1; - /* receive native path from lock - * p1 = dos.library:Lock, p2 = buffer, p3 = max buffer size - */ - v = get_native_path (p1, tmp); - if (v) - return v; - s = ua (tmp); - for (i = 0; i <= strlen (s) && i < p3 - 1; i++) { - put_byte (p2 + i, s[i]); - put_byte (p2 + i + 1, 0); - } - xfree (s); - return 0; + if (mode) + return -1; + /* receive native path from lock + * p1 = dos.library:Lock, p2 = buffer, p3 = max buffer size + */ + v = get_native_path (p1, tmp); + if (v) + return v; + s = ua (tmp); + for (i = 0; i <= strlen (s) && i < p3 - 1; i++) + { + put_byte (p2 + i, s[i]); + put_byte (p2 + i + 1, 0); + } + xfree (s); + return 0; } extern uae_u32 picasso_demux (uae_u32 arg, TrapContext *context); @@ -346,69 +354,94 @@ static uae_u32 REGPARAM2 uaelib_demux2 (TrapContext *context) #define ARG5 (get_long (m68k_areg (regs, 7) + 24)) #ifdef PICASSO96 - if (ARG0 >= 16 && ARG0 <= 39) - return picasso_demux (ARG0, context); + if (ARG0 >= 16 && ARG0 <= 39) + return picasso_demux (ARG0, context); #endif - switch (ARG0) - { - case 0: return emulib_GetVersion (); - case 1: return emulib_GetUaeConfig (ARG1); - case 2: return emulib_SetUaeConfig (ARG1); - case 3: return emulib_HardReset (); - case 4: return emulib_Reset (); - case 5: return emulib_InsertDisk (ARG1, ARG2); - case 6: return emulib_EnableSound (ARG1); - case 7: return emulib_EnableJoystick (ARG1); - case 8: return emulib_SetFrameRate (ARG1); - case 9: return emulib_ChgCMemSize (ARG1); - case 10: return emulib_ChgSMemSize (ARG1); - case 11: return emulib_ChgFMemSize (ARG1); - case 12: return emulib_ChangeLanguage (ARG1); - /* The next call brings bad luck */ - case 13: return emulib_ExitEmu (); - case 14: return emulib_GetDisk (ARG1, ARG2); - case 15: return emulib_Debug (); + switch (ARG0) + { + case 0: + return emulib_GetVersion (); + case 1: + return emulib_GetUaeConfig (ARG1); + case 2: + return emulib_SetUaeConfig (ARG1); + case 3: + return emulib_HardReset (); + case 4: + return emulib_Reset (); + case 5: + return emulib_InsertDisk (ARG1, ARG2); + case 6: + return emulib_EnableSound (ARG1); + case 7: + return emulib_EnableJoystick (ARG1); + case 8: + return emulib_SetFrameRate (ARG1); + case 9: + return emulib_ChgCMemSize (ARG1); + case 10: + return emulib_ChgSMemSize (ARG1); + case 11: + return emulib_ChgFMemSize (ARG1); + case 12: + return emulib_ChangeLanguage (ARG1); + /* The next call brings bad luck */ + case 13: + return emulib_ExitEmu (); + case 14: + return emulib_GetDisk (ARG1, ARG2); + case 15: + return emulib_Debug (); - case 68: return emulib_Minimize (); - case 69: return emulib_ExecuteNativeCode (); + case 68: + return emulib_Minimize (); + case 69: + return emulib_ExecuteNativeCode (); - case 70: return 0; /* RESERVED. Something uses this.. */ + case 70: + return 0; /* RESERVED. Something uses this.. */ - case 80: - return 0xffffffff; - case 81: return cfgfile_uaelib (ARG1, ARG2, ARG3, ARG4); - case 82: return cfgfile_uaelib_modify (ARG1, ARG2, ARG3, ARG4, ARG5); - case 83: return 0; + case 80: + return 0xffffffff; + case 81: + return cfgfile_uaelib (ARG1, ARG2, ARG3, ARG4); + case 82: + return cfgfile_uaelib_modify (ARG1, ARG2, ARG3, ARG4, ARG5); + case 83: + return 0; #ifdef DEBUGGER - case 84: return mmu_init (ARG1, ARG2, ARG3); + case 84: + return mmu_init (ARG1, ARG2, ARG3); #endif - case 85: return native_dos_op (ARG1, ARG2, ARG3, ARG4); - case 86: - if (valid_address(ARG1, 1)) { - TCHAR *s = au ((char*)get_real_address (ARG1)); - write_log (_T("DBG: %s\n"), s); - xfree (s); - return 1; - } + case 85: + return native_dos_op (ARG1, ARG2, ARG3, ARG4); + case 86: + if (valid_address(ARG1, 1)) + { + TCHAR *s = au ((char*)get_real_address (ARG1)); + write_log (_T("DBG: %s\n"), s); + xfree (s); + return 1; + } + return 0; + case 87: + { + uae_u32 d0, d1; + d0 = emulib_target_getcpurate (ARG1, &d1); + m68k_dreg (regs, 1) = d1; + return d0; + } + } return 0; - case 87: - { - uae_u32 d0, d1; - d0 = emulib_target_getcpurate (ARG1, &d1); - m68k_dreg (regs, 1) = d1; - return d0; - } - } - return 0; } static uae_u32 REGPARAM2 uaelib_demux (TrapContext *context) { - uae_u32 v; + uae_u32 v; - v = uaelib_demux2 (context); - return v; + v = uaelib_demux2 (context); + return v; } /* @@ -416,17 +449,17 @@ static uae_u32 REGPARAM2 uaelib_demux (TrapContext *context) */ void emulib_install (void) { - uaecptr a; - if (!uae_boot_rom) - return; - a = here (); - org (rtarea_base + 0xFF60); + uaecptr a; + if (!uae_boot_rom) + return; + a = here (); + org (rtarea_base + 0xFF60); #if 0 - dw (0x4eb9); - dw ((rtarea_base >> 16) | get_word(rtarea_base + 36)); - dw (get_word(rtarea_base + 38) + 12); + dw (0x4eb9); + dw ((rtarea_base >> 16) | get_word(rtarea_base + 36)); + dw (get_word(rtarea_base + 38) + 12); #endif - calltrap (deftrapres (uaelib_demux, 0, _T("uaelib_demux"))); - dw (RTS); - org (a); + calltrap (deftrapres (uaelib_demux, 0, _T("uaelib_demux"))); + dw (RTS); + org (a); } diff --git a/src/uaeresource.cpp b/src/uaeresource.cpp index 0950c9ff..06aa0e40 100644 --- a/src/uaeresource.cpp +++ b/src/uaeresource.cpp @@ -1,15 +1,15 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * uae.resource - * - */ +/* + * UAE - The Un*x Amiga Emulator + * + * uae.resource + * + */ #include "sysconfig.h" #include "sysdeps.h" #include "options.h" -#include "memory.h" +#include "include/memory.h" #include "newcpu.h" #include "custom.h" #include "traps.h" @@ -21,94 +21,96 @@ static uaecptr res_init, res_name, res_id, base; static uae_u32 REGPARAM2 res_getfunc (TrapContext *ctx) { - uaecptr funcname = m68k_areg (regs, 0); - uae_char tmp[256]; - uae_u32 p; - TCHAR *s; + uaecptr funcname = m68k_areg (regs, 0); + uae_char tmp[256]; + uae_u32 p; + TCHAR *s; - if (funcname == 0) - return 0; - strcpyah_safe (tmp, funcname, sizeof tmp); - s = au (tmp); - p = find_trap (s); - xfree (s); - return p; + if (funcname == 0) + return 0; + strcpyah_safe (tmp, funcname, sizeof tmp); + s = au (tmp); + p = find_trap (s); + xfree (s); + return p; } static uae_u32 REGPARAM2 res_initcode (TrapContext *ctx) { - uaecptr rb; - base = m68k_dreg (regs, 0); - rb = base + SIZEOF_LIBRARY; - put_word (rb + 0, UAEMAJOR); - put_word (rb + 2, UAEMINOR); - put_word (rb + 4, UAESUBREV); - put_word (rb + 6, 0); - put_long (rb + 8, rtarea_base); - return base; + uaecptr rb; + base = m68k_dreg (regs, 0); + rb = base + SIZEOF_LIBRARY; + put_word (rb + 0, UAEMAJOR); + put_word (rb + 2, UAEMINOR); + put_word (rb + 4, UAESUBREV); + put_word (rb + 6, 0); + put_long (rb + 8, rtarea_base); + return base; } uaecptr uaeres_startup (uaecptr resaddr) { - put_word (resaddr + 0x0, 0x4AFC); - put_long (resaddr + 0x2, resaddr); - put_long (resaddr + 0x6, resaddr + 0x1A); /* Continue scan here */ - put_word (resaddr + 0xA, 0x8101); /* RTF_AUTOINIT|RTF_COLDSTART; Version 1 */ - put_word (resaddr + 0xC, 0x0878); /* NT_DEVICE; pri 05 */ - put_long (resaddr + 0xE, res_name); - put_long (resaddr + 0x12, res_id); - put_long (resaddr + 0x16, res_init); - resaddr += 0x1A; - return resaddr; + put_word (resaddr + 0x0, 0x4AFC); + put_long (resaddr + 0x2, resaddr); + put_long (resaddr + 0x6, resaddr + 0x1A); /* Continue scan here */ + put_word (resaddr + 0xA, 0x8101); /* RTF_AUTOINIT|RTF_COLDSTART; Version 1 */ + put_word (resaddr + 0xC, 0x0878); /* NT_DEVICE; pri 05 */ + put_long (resaddr + 0xE, res_name); + put_long (resaddr + 0x12, res_id); + put_long (resaddr + 0x16, res_init); + resaddr += 0x1A; + return resaddr; } void uaeres_install (void) { - uae_u32 functable, datatable; - uae_u32 initcode, getfunc; - TCHAR tmp[100]; + uae_u32 functable, datatable; + uae_u32 initcode, getfunc; + TCHAR tmp[100]; - _stprintf (tmp, _T("UAE resource %d.%d.%d"), UAEMAJOR, UAEMINOR, UAESUBREV); - res_name = ds (_T("uae.resource")); - res_id = ds (tmp); + _stprintf (tmp, _T("UAE resource %d.%d.%d"), UAEMAJOR, UAEMINOR, UAESUBREV); + res_name = ds (_T("uae.resource")); + res_id = ds (tmp); - /* initcode */ - initcode = here (); - calltrap (deftrap (res_initcode)); dw (RTS); - /* getfunc */ - getfunc = here (); - calltrap (deftrap (res_getfunc)); dw (RTS); + /* initcode */ + initcode = here (); + calltrap (deftrap (res_initcode)); + dw (RTS); + /* getfunc */ + getfunc = here (); + calltrap (deftrap (res_getfunc)); + dw (RTS); - /* FuncTable */ - functable = here (); - dl (getfunc); /* getfunc */ - dl (0xFFFFFFFF); /* end of table */ + /* FuncTable */ + functable = here (); + dl (getfunc); /* getfunc */ + dl (0xFFFFFFFF); /* end of table */ - /* DataTable */ - datatable = here (); - dw (0xE000); /* INITBYTE */ - dw (0x0008); /* LN_TYPE */ - dw (0x0800); /* NT_RESOURCE */ - dw (0xC000); /* INITLONG */ - dw (0x000A); /* LN_NAME */ - dl (res_name); - dw (0xE000); /* INITBYTE */ - dw (0x000E); /* LIB_FLAGS */ - dw (0x0600); /* LIBF_SUMUSED | LIBF_CHANGED */ - dw (0xD000); /* INITWORD */ - dw (0x0014); /* LIB_VERSION */ - dw (UAEMAJOR); - dw (0xD000); /* INITWORD */ - dw (0x0016); /* LIB_REVISION */ - dw (UAEMINOR); - dw (0xC000); /* INITLONG */ - dw (0x0018); /* LIB_IDSTRING */ - dl (res_id); - dw (0x0000); /* end of table */ + /* DataTable */ + datatable = here (); + dw (0xE000); /* INITBYTE */ + dw (0x0008); /* LN_TYPE */ + dw (0x0800); /* NT_RESOURCE */ + dw (0xC000); /* INITLONG */ + dw (0x000A); /* LN_NAME */ + dl (res_name); + dw (0xE000); /* INITBYTE */ + dw (0x000E); /* LIB_FLAGS */ + dw (0x0600); /* LIBF_SUMUSED | LIBF_CHANGED */ + dw (0xD000); /* INITWORD */ + dw (0x0014); /* LIB_VERSION */ + dw (UAEMAJOR); + dw (0xD000); /* INITWORD */ + dw (0x0016); /* LIB_REVISION */ + dw (UAEMINOR); + dw (0xC000); /* INITLONG */ + dw (0x0018); /* LIB_IDSTRING */ + dl (res_id); + dw (0x0000); /* end of table */ - res_init = here (); - dl (SIZEOF_LIBRARY + 16); /* size of device base */ - dl (functable); - dl (datatable); - dl (initcode); + res_init = here (); + dl (SIZEOF_LIBRARY + 16); /* size of device base */ + dl (functable); + dl (datatable); + dl (initcode); } diff --git a/src/zfile.cpp b/src/zfile.cpp index b35416fd..8800419b 100644 --- a/src/zfile.cpp +++ b/src/zfile.cpp @@ -1,11 +1,11 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * routines to handle compressed file automatically - * - * (c) 1996 Samuel Devulder, Tim Gunn - * 2002-2007 Toni Wilen - */ +/* + * UAE - The Un*x Amiga Emulator + * + * routines to handle compressed file automatically + * + * (c) 1996 Samuel Devulder, Tim Gunn + * 2002-2007 Toni Wilen + */ #define RECURSIVE_ARCHIVES 1 //#define ZFILE_DEBUG @@ -36,36 +36,38 @@ const TCHAR *uae_archive_extensions[] = { _T("zip"), _T("rar"), _T("7z"), _T("lh struct zdisktrack { - void *data; - int len; + void *data; + int len; }; struct zdiskimage { - int tracks; - struct zdisktrack zdisktracks[2 * 84]; + int tracks; + struct zdisktrack zdisktracks[2 * 84]; }; struct zcache { - TCHAR *name; - struct zdiskimage *zd; - void *data; - int size; - struct zcache *next; - time_t tm; + TCHAR *name; + struct zdiskimage *zd; + void *data; + int size; + struct zcache *next; + time_t tm; }; static struct zcache *zcachedata; static struct zcache *cache_get (const TCHAR *name) { - struct zcache *zc = zcachedata; - while (zc) { - if (!_tcscmp (name, zc->name)) { - zc->tm = time (NULL); - return zc; - } - zc = zc->next; - } - return NULL; + struct zcache *zc = zcachedata; + while (zc) + { + if (!_tcscmp (name, zc->name)) + { + zc->tm = time (NULL); + return zc; + } + zc = zc->next; + } + return NULL; } static void zcache_flush (void) @@ -74,243 +76,261 @@ static void zcache_flush (void) static void zcache_free_data (struct zcache *zc) { - int i; - if (zc->zd) { - for (i = 0; i < zc->zd->tracks; i++) { - xfree (zc->zd->zdisktracks[i].data); - } - xfree (zc->zd); - } - xfree (zc->data); - xfree (zc->name); + int i; + if (zc->zd) + { + for (i = 0; i < zc->zd->tracks; i++) + { + xfree (zc->zd->zdisktracks[i].data); + } + xfree (zc->zd); + } + xfree (zc->data); + xfree (zc->name); } static void zcache_free (struct zcache *zc) { - struct zcache *pl = NULL; - struct zcache *l = zcachedata; - struct zcache *nxt; + struct zcache *pl = NULL; + struct zcache *l = zcachedata; + struct zcache *nxt; - while (l != zc) { - if (l == 0) - return; - pl = l; - l = l->next; - } - if (l) - nxt = l->next; - zcache_free_data (zc); - if (l == 0) - return; - if(!pl) - zcachedata = nxt; - else - pl->next = nxt; + while (l != zc) + { + if (l == 0) + return; + pl = l; + l = l->next; + } + if (l) + nxt = l->next; + zcache_free_data (zc); + if (l == 0) + return; + if(!pl) + zcachedata = nxt; + else + pl->next = nxt; } static void zcache_close (void) { - struct zcache *zc = zcachedata; - while (zc) { - struct zcache *n = zc->next; - zcache_free_data (zc); - xfree (n); - zc = n; - } + struct zcache *zc = zcachedata; + while (zc) + { + struct zcache *n = zc->next; + zcache_free_data (zc); + xfree (n); + zc = n; + } } static void zcache_check (void) { - int cnt = 0; - struct zcache *zc = zcachedata, *last = NULL; - while (zc) { - last = zc; - zc = zc->next; - cnt++; - } - write_log (_T("CACHE: %d\n"), cnt); - if (cnt >= MAX_CACHE_ENTRIES && last) - zcache_free (last); + int cnt = 0; + struct zcache *zc = zcachedata, *last = NULL; + while (zc) + { + last = zc; + zc = zc->next; + cnt++; + } + write_log (_T("CACHE: %d\n"), cnt); + if (cnt >= MAX_CACHE_ENTRIES && last) + zcache_free (last); } static struct zcache *zcache_put (const TCHAR *name, struct zdiskimage *data) { - struct zcache *zc; - - zcache_check (); - zc = xcalloc (struct zcache, 1); - zc->next = zcachedata; - zcachedata = zc; - zc->zd = data; - zc->name = my_strdup (name); - zc->tm = time (NULL); - return zc; + struct zcache *zc; + + zcache_check (); + zc = xcalloc (struct zcache, 1); + zc->next = zcachedata; + zcachedata = zc; + zc->zd = data; + zc->name = my_strdup (name); + zc->tm = time (NULL); + return zc; } static void checkarchiveparent (struct zfile *z) { - // unpack completely if opened in PEEK mode - if (z->archiveparent) - archive_unpackzfile (z); + // unpack completely if opened in PEEK mode + if (z->archiveparent) + archive_unpackzfile (z); } static struct zfile *zfile_create (struct zfile *prev) { - struct zfile *z; + struct zfile *z; - z = xmalloc (struct zfile, 1); - if (!z) - return 0; - memset (z, 0, sizeof *z); - z->next = zlist; - zlist = z; - z->opencnt = 1; - if (prev) { - z->zfdmask = prev->zfdmask; - } - return z; + z = xmalloc (struct zfile, 1); + if (!z) + return 0; + memset (z, 0, sizeof *z); + z->next = zlist; + zlist = z; + z->opencnt = 1; + if (prev) + { + z->zfdmask = prev->zfdmask; + } + return z; } static void zfile_free (struct zfile *f) { - if (f->f) - fclose (f->f); - if (f->deleteafterclose) { - _wunlink (f->name); - write_log (_T("deleted temporary file '%s'\n"), f->name); - } - xfree (f->name); - xfree (f->data); - xfree (f->mode); - xfree (f->userdata); - xfree (f); + if (f->f) + fclose (f->f); + if (f->deleteafterclose) + { + _wunlink (f->name); + write_log (_T("deleted temporary file '%s'\n"), f->name); + } + xfree (f->name); + xfree (f->data); + xfree (f->mode); + xfree (f->userdata); + xfree (f); } void zfile_exit (void) { - struct zfile *l; + struct zfile *l; - while ((l = zlist)) { - zlist = l->next; - zfile_free (l); - } + while ((l = zlist)) + { + zlist = l->next; + zfile_free (l); + } } void zfile_fclose (struct zfile *f) { - //write_log (_T("%p\n"), f); - if (!f) - return; - if (f->opencnt < 0) { - write_log (_T("zfile: tried to free already closed filehandle!\n")); - return; - } - f->opencnt--; - if (f->opencnt > 0) - return; - f->opencnt = -100; - if (f->parent) { - f->parent->opencnt--; - if (f->parent->opencnt <= 0) - zfile_fclose (f->parent); - } - if (f->archiveparent) { - zfile_fclose (f->archiveparent); - f->archiveparent = NULL; - } - struct zfile *pl = NULL; - struct zfile *nxt; - struct zfile *l = zlist; - while (l!=f) { - if (l == 0) { - write_log (_T("zfile: tried to free already freed or nonexisting filehandle!\n")); - return; - } - pl = l; - l = l->next; - } - if (l) - nxt = l->next; - zfile_free (f); - if (l == 0) - return; - if(!pl) - zlist = nxt; - else - pl->next = nxt; + //write_log (_T("%p\n"), f); + if (!f) + return; + if (f->opencnt < 0) + { + write_log (_T("zfile: tried to free already closed filehandle!\n")); + return; + } + f->opencnt--; + if (f->opencnt > 0) + return; + f->opencnt = -100; + if (f->parent) + { + f->parent->opencnt--; + if (f->parent->opencnt <= 0) + zfile_fclose (f->parent); + } + if (f->archiveparent) + { + zfile_fclose (f->archiveparent); + f->archiveparent = NULL; + } + struct zfile *pl = NULL; + struct zfile *nxt; + struct zfile *l = zlist; + while (l!=f) + { + if (l == 0) + { + write_log (_T("zfile: tried to free already freed or nonexisting filehandle!\n")); + return; + } + pl = l; + l = l->next; + } + if (l) + nxt = l->next; + zfile_free (f); + if (l == 0) + return; + if(!pl) + zlist = nxt; + else + pl->next = nxt; } static void removeext (TCHAR *s, TCHAR *ext) { - if (_tcslen (s) < _tcslen (ext)) - return; - if (_tcsicmp (s + _tcslen (s) - _tcslen (ext), ext) == 0) - s[_tcslen (s) - _tcslen (ext)] = 0; + if (_tcslen (s) < _tcslen (ext)) + return; + if (_tcsicmp (s + _tcslen (s) - _tcslen (ext), ext) == 0) + s[_tcslen (s) - _tcslen (ext)] = 0; } static bool checkwrite (struct zfile *zf, int *retcode) { - if (zfile_needwrite (zf)) { - if (retcode) - *retcode = -1; - return true; - } - return false; + if (zfile_needwrite (zf)) + { + if (retcode) + *retcode = -1; + return true; + } + return false; } -static uae_u8 exeheader[]={0x00,0x00,0x03,0xf3,0x00,0x00,0x00,0x00}; +static uae_u8 exeheader[]= {0x00,0x00,0x03,0xf3,0x00,0x00,0x00,0x00}; static TCHAR *diskimages[] = { _T("adf"), _T("adz"), _T("ipf"), _T("fdi"), _T("dms"), _T("wrp"), _T("dsq"), 0 }; int zfile_gettype (struct zfile *z) { - uae_u8 buf[8]; - TCHAR *ext; - - if (!z || !z->name) - return ZFILE_UNKNOWN; - ext = _tcsrchr (z->name, '.'); - if (ext != NULL) { - int i; - ext++; - for (i = 0; diskimages[i]; i++) { - if (strcasecmp (ext, diskimages[i]) == 0) - return ZFILE_DISKIMAGE; - } - if (strcasecmp (ext, _T("roz")) == 0) - return ZFILE_ROM; - if (strcasecmp (ext, _T("uss")) == 0) - return ZFILE_STATEFILE; - if (strcasecmp (ext, _T("rom")) == 0) - return ZFILE_ROM; - if (strcasecmp (ext, _T("key")) == 0) - return ZFILE_KEY; - if (strcasecmp (ext, _T("nvr")) == 0) - return ZFILE_NVR; - if (strcasecmp (ext, _T("uae")) == 0) - return ZFILE_CONFIGURATION; - if (strcasecmp (ext, _T("cue")) == 0 || strcasecmp (ext, _T("iso")) == 0 || strcasecmp (ext, _T("ccd")) == 0 || strcasecmp (ext, _T("mds")) == 0) - return ZFILE_CDIMAGE; - } - memset (buf, 0, sizeof (buf)); - zfile_fread (buf, 8, 1, z); - zfile_fseek (z, -8, SEEK_CUR); - if (!memcmp (buf, exeheader, sizeof(buf))) - return ZFILE_DISKIMAGE; - if (!memcmp (buf, "RDSK", 4)) - return ZFILE_HDFRDB; - if (!memcmp (buf, "DOS", 3)) { - if (z->size < 4 * 1024 * 1024) - return ZFILE_DISKIMAGE; - else - return ZFILE_HDF; - } - if (ext != NULL) { - if (strcasecmp (ext, _T("hdf")) == 0) - return ZFILE_HDF; - if (strcasecmp (ext, _T("hdz")) == 0) - return ZFILE_HDF; - } - return ZFILE_UNKNOWN; + uae_u8 buf[8]; + TCHAR *ext; + + if (!z || !z->name) + return ZFILE_UNKNOWN; + ext = _tcsrchr (z->name, '.'); + if (ext != NULL) + { + int i; + ext++; + for (i = 0; diskimages[i]; i++) + { + if (strcasecmp (ext, diskimages[i]) == 0) + return ZFILE_DISKIMAGE; + } + if (strcasecmp (ext, _T("roz")) == 0) + return ZFILE_ROM; + if (strcasecmp (ext, _T("uss")) == 0) + return ZFILE_STATEFILE; + if (strcasecmp (ext, _T("rom")) == 0) + return ZFILE_ROM; + if (strcasecmp (ext, _T("key")) == 0) + return ZFILE_KEY; + if (strcasecmp (ext, _T("nvr")) == 0) + return ZFILE_NVR; + if (strcasecmp (ext, _T("uae")) == 0) + return ZFILE_CONFIGURATION; + if (strcasecmp (ext, _T("cue")) == 0 || strcasecmp (ext, _T("iso")) == 0 || strcasecmp (ext, _T("ccd")) == 0 || strcasecmp (ext, _T("mds")) == 0) + return ZFILE_CDIMAGE; + } + memset (buf, 0, sizeof (buf)); + zfile_fread (buf, 8, 1, z); + zfile_fseek (z, -8, SEEK_CUR); + if (!memcmp (buf, exeheader, sizeof(buf))) + return ZFILE_DISKIMAGE; + if (!memcmp (buf, "RDSK", 4)) + return ZFILE_HDFRDB; + if (!memcmp (buf, "DOS", 3)) + { + if (z->size < 4 * 1024 * 1024) + return ZFILE_DISKIMAGE; + else + return ZFILE_HDF; + } + if (ext != NULL) + { + if (strcasecmp (ext, _T("hdf")) == 0) + return ZFILE_HDF; + if (strcasecmp (ext, _T("hdz")) == 0) + return ZFILE_HDF; + } + return ZFILE_UNKNOWN; } #define VHD_DYNAMIC 3 @@ -318,1011 +338,1143 @@ int zfile_gettype (struct zfile *z) STATIC_INLINE uae_u32 gl (uae_u8 *p) { - return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | (p[3] << 0); + return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | (p[3] << 0); } static uae_u32 vhd_checksum (uae_u8 *p, int offset) { - int i; - uae_u32 sum; + int i; + uae_u32 sum; - sum = 0; - for (i = 0; i < 512; i++) { - if (offset >= 0 && i >= offset && i < offset + 4) - continue; - sum += p[i]; - } - return ~sum; + sum = 0; + for (i = 0; i < 512; i++) + { + if (offset >= 0 && i >= offset && i < offset + 4) + continue; + sum += p[i]; + } + return ~sum; } struct zfile_vhd { - int vhd_type; - uae_u64 virtsize; - uae_u32 vhd_bamoffset; - uae_u32 vhd_blocksize; - uae_u8 *vhd_header, *vhd_sectormap; - uae_u64 vhd_footerblock; - uae_u32 vhd_bamsize; - uae_u64 vhd_sectormapblock; - uae_u32 vhd_bitmapsize; + int vhd_type; + uae_u64 virtsize; + uae_u32 vhd_bamoffset; + uae_u32 vhd_blocksize; + uae_u8 *vhd_header, *vhd_sectormap; + uae_u64 vhd_footerblock; + uae_u32 vhd_bamsize; + uae_u64 vhd_sectormapblock; + uae_u32 vhd_bitmapsize; }; static uae_u64 vhd_fread2 (struct zfile *zf, void *dataptrv, uae_u64 offset, uae_u64 len) { - uae_u32 bamoffset; - uae_u32 sectoroffset; - uae_u64 read; - struct zfile *zp = zf->parent; - struct zfile_vhd *zvhd = (struct zfile_vhd*)zf->userdata; - uae_u8 *dataptr = (uae_u8*)dataptrv; + uae_u32 bamoffset; + uae_u32 sectoroffset; + uae_u64 read; + struct zfile *zp = zf->parent; + struct zfile_vhd *zvhd = (struct zfile_vhd*)zf->userdata; + uae_u8 *dataptr = (uae_u8*)dataptrv; - //write_log (_T("%08x %08x\n"), (uae_u32)offset, (uae_u32)len); - read = 0; - if (offset & 511) - return read; - if (len & 511) - return read; - while (len > 0) { - bamoffset = (offset / zvhd->vhd_blocksize) * 4 + zvhd->vhd_bamoffset; - sectoroffset = gl (zvhd->vhd_header + bamoffset); - if (sectoroffset == 0xffffffff) { - memset (dataptr, 0, 512); - read += 512; - } else { - int bitmapoffsetbits; - int bitmapoffsetbytes; - int sectormapblock; + //write_log (_T("%08x %08x\n"), (uae_u32)offset, (uae_u32)len); + read = 0; + if (offset & 511) + return read; + if (len & 511) + return read; + while (len > 0) + { + bamoffset = (offset / zvhd->vhd_blocksize) * 4 + zvhd->vhd_bamoffset; + sectoroffset = gl (zvhd->vhd_header + bamoffset); + if (sectoroffset == 0xffffffff) + { + memset (dataptr, 0, 512); + read += 512; + } + else + { + int bitmapoffsetbits; + int bitmapoffsetbytes; + int sectormapblock; - bitmapoffsetbits = (offset / 512) % (zvhd->vhd_blocksize / 512); - bitmapoffsetbytes = bitmapoffsetbits / 8; - sectormapblock = sectoroffset * 512 + (bitmapoffsetbytes & ~511); - if (zvhd->vhd_sectormapblock != sectormapblock) { - // read sector bitmap - //write_log (_T("BM %08x\n"), sectormapblock); - zfile_fseek (zp, sectormapblock, SEEK_SET); - if (zfile_fread (zvhd->vhd_sectormap, 1, 512, zp) != 512) - return read; - zvhd->vhd_sectormapblock = sectormapblock; - } - // block allocated in bitmap? - if (zvhd->vhd_sectormap[bitmapoffsetbytes & 511] & (1 << (7 - (bitmapoffsetbits & 7)))) { - // read data block - int block = sectoroffset * 512 + zvhd->vhd_bitmapsize + bitmapoffsetbits * 512; - //write_log (_T("DB %08x\n"), block); - zfile_fseek (zp, block, SEEK_SET); - if (zfile_fread (dataptr, 1, 512, zp) != 512) - return read; - } else { - memset (dataptr, 0, 512); - } - read += 512; - } - len -= 512; - dataptr += 512; - offset += 512; - } - return read; + bitmapoffsetbits = (offset / 512) % (zvhd->vhd_blocksize / 512); + bitmapoffsetbytes = bitmapoffsetbits / 8; + sectormapblock = sectoroffset * 512 + (bitmapoffsetbytes & ~511); + if (zvhd->vhd_sectormapblock != sectormapblock) + { + // read sector bitmap + //write_log (_T("BM %08x\n"), sectormapblock); + zfile_fseek (zp, sectormapblock, SEEK_SET); + if (zfile_fread (zvhd->vhd_sectormap, 1, 512, zp) != 512) + return read; + zvhd->vhd_sectormapblock = sectormapblock; + } + // block allocated in bitmap? + if (zvhd->vhd_sectormap[bitmapoffsetbytes & 511] & (1 << (7 - (bitmapoffsetbits & 7)))) + { + // read data block + int block = sectoroffset * 512 + zvhd->vhd_bitmapsize + bitmapoffsetbits * 512; + //write_log (_T("DB %08x\n"), block); + zfile_fseek (zp, block, SEEK_SET); + if (zfile_fread (dataptr, 1, 512, zp) != 512) + return read; + } + else + { + memset (dataptr, 0, 512); + } + read += 512; + } + len -= 512; + dataptr += 512; + offset += 512; + } + return read; } static uae_s64 vhd_fread (void *data, uae_u64 l1, uae_u64 l2, struct zfile *zf) { - uae_u64 size = l1 * l2; - uae_u64 out = 0; - int len = 0; + uae_u64 size = l1 * l2; + uae_u64 out = 0; + int len = 0; - if (!l1 || !l2) - return 0; - if ((zf->seek & 511) || (size & 511)) { - uae_u8 tmp[512]; + if (!l1 || !l2) + return 0; + if ((zf->seek & 511) || (size & 511)) + { + uae_u8 tmp[512]; - if (zf->seek & 511) { - int s; - s = 512 - (zf->seek & 511); - vhd_fread2 (zf, tmp, zf->seek & ~511, 512); - memcpy ((uae_u8*)data + len, tmp + 512 - s, s); - len += s; - out += s; - zf->seek += s; - } - while (size > 0) { - int s = size > 512 ? 512 : size; - vhd_fread2 (zf, tmp, zf->seek, 512); - memcpy ((uae_u8*)data + len, tmp, s); - zf->seek += s; - size -= s; - out += s; - } - } else { - out = vhd_fread2 (zf, data, zf->seek, size); - zf->seek += out; - out /= l1; - } - return out; + if (zf->seek & 511) + { + int s; + s = 512 - (zf->seek & 511); + vhd_fread2 (zf, tmp, zf->seek & ~511, 512); + memcpy ((uae_u8*)data + len, tmp + 512 - s, s); + len += s; + out += s; + zf->seek += s; + } + while (size > 0) + { + int s = size > 512 ? 512 : size; + vhd_fread2 (zf, tmp, zf->seek, 512); + memcpy ((uae_u8*)data + len, tmp, s); + zf->seek += s; + size -= s; + out += s; + } + } + else + { + out = vhd_fread2 (zf, data, zf->seek, size); + zf->seek += out; + out /= l1; + } + return out; } static struct zfile *vhd (struct zfile *z) { - uae_u8 tmp[512], tmp2[512]; - uae_u32 v; - struct zfile_vhd *zvhd; - uae_u64 fsize; + uae_u8 tmp[512], tmp2[512]; + uae_u32 v; + struct zfile_vhd *zvhd; + uae_u64 fsize; - zvhd = xcalloc (struct zfile_vhd, 1); - zfile_fseek (z, 0, SEEK_END); - fsize = zfile_ftell (z); - zfile_fseek (z, 0, SEEK_SET); - if (zfile_fread (tmp, 1, 512, z) != 512) - goto nonvhd; - v = gl (tmp + 8); // features - if ((v & 3) != 2) - goto nonvhd; - v = gl (tmp + 8 + 4); // version - if ((v >> 16) != 1) - goto nonvhd; - zvhd->vhd_type = gl (tmp + 8 + 4 + 4 + 8 + 4 + 4 + 4 + 4 + 8 + 8 + 4); - if (zvhd->vhd_type != VHD_FIXED && zvhd->vhd_type != VHD_DYNAMIC) - goto nonvhd; - v = gl (tmp + 8 + 4 + 4 + 8 + 4 + 4 + 4 + 4 + 8 + 8 + 4 + 4); - if (v == 0) - goto nonvhd; - if (vhd_checksum (tmp, 8 + 4 + 4 + 8 + 4 + 4 + 4 + 4 + 8 + 8 + 4 + 4) != v) - goto nonvhd; - zfile_fseek (z, fsize - sizeof tmp2, SEEK_SET); - if (zfile_fread (tmp2, 1, 512, z) != 512) - goto end; - if (memcmp (tmp, tmp2, sizeof tmp)) - goto nonvhd; - zvhd->vhd_footerblock = fsize - 512; - zvhd->virtsize = (uae_u64)(gl (tmp + 8 + 4 + 4 + 8 + 4 + 4 +4 + 4 + 8)) << 32; - zvhd->virtsize |= gl (tmp + 8 + 4 + 4 + 8 + 4 + 4 +4 + 4 + 8 + 4); - if (zvhd->vhd_type == VHD_DYNAMIC) { - uae_u32 size; - zvhd->vhd_bamoffset = gl (tmp + 8 + 4 + 4 + 4); - if (zvhd->vhd_bamoffset == 0 || zvhd->vhd_bamoffset >= fsize) - goto end; - zfile_fseek (z, zvhd->vhd_bamoffset, SEEK_SET); - if (zfile_fread (tmp, 1, 512, z) != 512) - goto end; - v = gl (tmp + 8 + 8 + 8 + 4 + 4 + 4); - if (vhd_checksum (tmp, 8 + 8 + 8 + 4 + 4 + 4) != v) - goto end; - v = gl (tmp + 8 + 8 + 8); - if ((v >> 16) != 1) - goto end; - zvhd->vhd_blocksize = gl (tmp + 8 + 8 + 8 + 4 + 4); - zvhd->vhd_bamoffset = gl (tmp + 8 + 8 + 4); - zvhd->vhd_bamsize = (((zvhd->virtsize + zvhd->vhd_blocksize - 1) / zvhd->vhd_blocksize) * 4 + 511) & ~511; - size = zvhd->vhd_bamoffset + zvhd->vhd_bamsize; - zvhd->vhd_header = xmalloc (uae_u8, size); - zfile_fseek (z, 0, SEEK_SET); - if (zfile_fread (zvhd->vhd_header, 1, size, z) != size) - goto end; - zvhd->vhd_sectormap = xmalloc (uae_u8, 512); - zvhd->vhd_sectormapblock = -1; - zvhd->vhd_bitmapsize = ((zvhd->vhd_blocksize / (8 * 512)) + 511) & ~511; - } - z = zfile_fopen_parent (z, NULL, 0, zvhd->virtsize); - z->useparent = 0; - z->dataseek = 1; - z->userdata = zvhd; - z->zfileread = vhd_fread; - write_log (_T("%s is VHD %s image, virtual size=%lldK\n"), - zfile_getname (z), - zvhd->vhd_type == 2 ? _T("fixed") : _T("dynamic"), - zvhd->virtsize / 1024); - return z; + zvhd = xcalloc (struct zfile_vhd, 1); + zfile_fseek (z, 0, SEEK_END); + fsize = zfile_ftell (z); + zfile_fseek (z, 0, SEEK_SET); + if (zfile_fread (tmp, 1, 512, z) != 512) + goto nonvhd; + v = gl (tmp + 8); // features + if ((v & 3) != 2) + goto nonvhd; + v = gl (tmp + 8 + 4); // version + if ((v >> 16) != 1) + goto nonvhd; + zvhd->vhd_type = gl (tmp + 8 + 4 + 4 + 8 + 4 + 4 + 4 + 4 + 8 + 8 + 4); + if (zvhd->vhd_type != VHD_FIXED && zvhd->vhd_type != VHD_DYNAMIC) + goto nonvhd; + v = gl (tmp + 8 + 4 + 4 + 8 + 4 + 4 + 4 + 4 + 8 + 8 + 4 + 4); + if (v == 0) + goto nonvhd; + if (vhd_checksum (tmp, 8 + 4 + 4 + 8 + 4 + 4 + 4 + 4 + 8 + 8 + 4 + 4) != v) + goto nonvhd; + zfile_fseek (z, fsize - sizeof tmp2, SEEK_SET); + if (zfile_fread (tmp2, 1, 512, z) != 512) + goto end; + if (memcmp (tmp, tmp2, sizeof tmp)) + goto nonvhd; + zvhd->vhd_footerblock = fsize - 512; + zvhd->virtsize = (uae_u64)(gl (tmp + 8 + 4 + 4 + 8 + 4 + 4 +4 + 4 + 8)) << 32; + zvhd->virtsize |= gl (tmp + 8 + 4 + 4 + 8 + 4 + 4 +4 + 4 + 8 + 4); + if (zvhd->vhd_type == VHD_DYNAMIC) + { + uae_u32 size; + zvhd->vhd_bamoffset = gl (tmp + 8 + 4 + 4 + 4); + if (zvhd->vhd_bamoffset == 0 || zvhd->vhd_bamoffset >= fsize) + goto end; + zfile_fseek (z, zvhd->vhd_bamoffset, SEEK_SET); + if (zfile_fread (tmp, 1, 512, z) != 512) + goto end; + v = gl (tmp + 8 + 8 + 8 + 4 + 4 + 4); + if (vhd_checksum (tmp, 8 + 8 + 8 + 4 + 4 + 4) != v) + goto end; + v = gl (tmp + 8 + 8 + 8); + if ((v >> 16) != 1) + goto end; + zvhd->vhd_blocksize = gl (tmp + 8 + 8 + 8 + 4 + 4); + zvhd->vhd_bamoffset = gl (tmp + 8 + 8 + 4); + zvhd->vhd_bamsize = (((zvhd->virtsize + zvhd->vhd_blocksize - 1) / zvhd->vhd_blocksize) * 4 + 511) & ~511; + size = zvhd->vhd_bamoffset + zvhd->vhd_bamsize; + zvhd->vhd_header = xmalloc (uae_u8, size); + zfile_fseek (z, 0, SEEK_SET); + if (zfile_fread (zvhd->vhd_header, 1, size, z) != size) + goto end; + zvhd->vhd_sectormap = xmalloc (uae_u8, 512); + zvhd->vhd_sectormapblock = -1; + zvhd->vhd_bitmapsize = ((zvhd->vhd_blocksize / (8 * 512)) + 511) & ~511; + } + z = zfile_fopen_parent (z, NULL, 0, zvhd->virtsize); + z->useparent = 0; + z->dataseek = 1; + z->userdata = zvhd; + z->zfileread = vhd_fread; + write_log (_T("%s is VHD %s image, virtual size=%lldK\n"), + zfile_getname (z), + zvhd->vhd_type == 2 ? _T("fixed") : _T("dynamic"), + zvhd->virtsize / 1024); + return z; nonvhd: end: - return z; + return z; } static struct zfile *zfile_gunzip (struct zfile *z, int *retcode) { - uae_u8 header[2 + 1 + 1 + 4 + 1 + 1]; - z_stream zs; - int i, size, ret, first; - uae_u8 flags; - uae_s64 offset; - TCHAR name[MAX_DPATH]; - uae_u8 buffer[8192]; - struct zfile *z2; - uae_u8 b; + uae_u8 header[2 + 1 + 1 + 4 + 1 + 1]; + z_stream zs; + int i, size, ret, first; + uae_u8 flags; + uae_s64 offset; + TCHAR name[MAX_DPATH]; + uae_u8 buffer[8192]; + struct zfile *z2; + uae_u8 b; - if (checkwrite (z, retcode)) - return NULL; - _tcscpy (name, z->name); - memset (&zs, 0, sizeof (zs)); - memset (header, 0, sizeof (header)); - zfile_fread (header, sizeof (header), 1, z); - flags = header[3]; - if (header[0] != 0x1f && header[1] != 0x8b) - return NULL; - if (flags & 2) /* multipart not supported */ - return NULL; - if (flags & 32) /* encryption not supported */ - return NULL; - if (flags & 4) { /* skip extra field */ + if (checkwrite (z, retcode)) + return NULL; + _tcscpy (name, z->name); + memset (&zs, 0, sizeof (zs)); + memset (header, 0, sizeof (header)); + zfile_fread (header, sizeof (header), 1, z); + flags = header[3]; + if (header[0] != 0x1f && header[1] != 0x8b) + return NULL; + if (flags & 2) /* multipart not supported */ + return NULL; + if (flags & 32) /* encryption not supported */ + return NULL; + if (flags & 4) /* skip extra field */ + { + zfile_fread (&b, 1, 1, z); + size = b; + zfile_fread (&b, 1, 1, z); + size |= b << 8; + zfile_fseek (z, size + 2, SEEK_CUR); + } + + if (flags & 8) /* get original file name */ + { + uae_char aname[MAX_DPATH]; + i = 0; + do + { + zfile_fread (aname + i, 1, 1, z); + } + while (i < MAX_DPATH - 1 && aname[i++]); + aname[i] = 0; + au_copy (name, MAX_DPATH, aname); + } + if (flags & 16) /* skip comment */ + { + i = 0; + do + { + b = 0; + zfile_fread (&b, 1, 1, z); + } + while (b); + } + removeext (name, _T(".gz")); + offset = zfile_ftell (z); + zfile_fseek (z, -4, SEEK_END); zfile_fread (&b, 1, 1, z); - size = b; - zfile_fread (&b, 1, 1, z); - size |= b << 8; - zfile_fseek (z, size + 2, SEEK_CUR); - } - - if (flags & 8) { /* get original file name */ - uae_char aname[MAX_DPATH]; - i = 0; - do { - zfile_fread (aname + i, 1, 1, z); - } while (i < MAX_DPATH - 1 && aname[i++]); - aname[i] = 0; - au_copy (name, MAX_DPATH, aname); - } - if (flags & 16) { /* skip comment */ - i = 0; - do { - b = 0; - zfile_fread (&b, 1, 1, z); - } while (b); - } - removeext (name, _T(".gz")); - offset = zfile_ftell (z); - zfile_fseek (z, -4, SEEK_END); - zfile_fread (&b, 1, 1, z); - size = b; - zfile_fread (&b, 1, 1, z); - size |= b << 8; - zfile_fread (&b, 1, 1, z); - size |= b << 16; - zfile_fread (&b, 1, 1, z); - size |= b << 24; - if (size < 8 || size > 256 * 1024 * 1024) /* safety check */ - return NULL; - zfile_fseek (z, offset, SEEK_SET); - z2 = zfile_fopen_empty (z, name, size); - if (!z2) - return NULL; - zs.next_out = z2->data; - zs.avail_out = size; - first = 1; - do { - zs.next_in = buffer; - zs.avail_in = zfile_fread (buffer, 1, sizeof (buffer), z); - if (first) { - if (inflateInit2_ (&zs, -MAX_WBITS, ZLIB_VERSION, sizeof(z_stream)) != Z_OK) - break; - first = 0; - } - ret = inflate (&zs, 0); - } while (ret == Z_OK); - inflateEnd (&zs); - if (ret != Z_STREAM_END || first != 0) { - zfile_fclose (z2); - return NULL; - } - zfile_fclose (z); - return z2; + size = b; + zfile_fread (&b, 1, 1, z); + size |= b << 8; + zfile_fread (&b, 1, 1, z); + size |= b << 16; + zfile_fread (&b, 1, 1, z); + size |= b << 24; + if (size < 8 || size > 256 * 1024 * 1024) /* safety check */ + return NULL; + zfile_fseek (z, offset, SEEK_SET); + z2 = zfile_fopen_empty (z, name, size); + if (!z2) + return NULL; + zs.next_out = z2->data; + zs.avail_out = size; + first = 1; + do + { + zs.next_in = buffer; + zs.avail_in = zfile_fread (buffer, 1, sizeof (buffer), z); + if (first) + { + if (inflateInit2_ (&zs, -MAX_WBITS, ZLIB_VERSION, sizeof(z_stream)) != Z_OK) + break; + first = 0; + } + ret = inflate (&zs, 0); + } + while (ret == Z_OK); + inflateEnd (&zs); + if (ret != Z_STREAM_END || first != 0) + { + zfile_fclose (z2); + return NULL; + } + zfile_fclose (z); + return z2; } struct zfile *zfile_gunzip (struct zfile *z) { - return zfile_gunzip (z, NULL); + return zfile_gunzip (z, NULL); } static void truncate880k (struct zfile *z) { - int i; - uae_u8 *b; + int i; + uae_u8 *b; - if (z == NULL || z->data == NULL) - return; - if (z->size < 880 * 512 * 2) { - int size = 880 * 512 * 2 - z->size; - b = xcalloc (uae_u8, size); - zfile_fwrite (b, size, 1, z); - xfree (b); - return; - } - for (i = 880 * 512 * 2; i < z->size; i++) { - if (z->data[i]) - return; - } - z->size = 880 * 512 * 2; + if (z == NULL || z->data == NULL) + return; + if (z->size < 880 * 512 * 2) + { + int size = 880 * 512 * 2 - z->size; + b = xcalloc (uae_u8, size); + zfile_fwrite (b, size, 1, z); + xfree (b); + return; + } + for (i = 880 * 512 * 2; i < z->size; i++) + { + if (z->data[i]) + return; + } + z->size = 880 * 512 * 2; } static struct zfile *extadf (struct zfile *z, int index, int *retcode) { - int i, r; - struct zfile *zo; - uae_u16 *mfm; - uae_u16 *amigamfmbuffer; - uae_u8 writebuffer_ok[32], *outbuf; - int tracks, len, offs, pos; - uae_u8 buffer[2 + 2 + 4 + 4]; - int outsize; - TCHAR newname[MAX_DPATH]; - TCHAR *ext; - int cantrunc = 0; - int done = 0; + int i, r; + struct zfile *zo; + uae_u16 *mfm; + uae_u16 *amigamfmbuffer; + uae_u8 writebuffer_ok[32], *outbuf; + int tracks, len, offs, pos; + uae_u8 buffer[2 + 2 + 4 + 4]; + int outsize; + TCHAR newname[MAX_DPATH]; + TCHAR *ext; + int cantrunc = 0; + int done = 0; - if (index > 1) - return NULL; + if (index > 1) + return NULL; - mfm = xcalloc (uae_u16, 32000 / 2); - amigamfmbuffer = xcalloc (uae_u16, 32000 / 2); - outbuf = xcalloc (uae_u8, 16384); + mfm = xcalloc (uae_u16, 32000 / 2); + amigamfmbuffer = xcalloc (uae_u16, 32000 / 2); + outbuf = xcalloc (uae_u8, 16384); - zfile_fread (buffer, 1, 8, z); - zfile_fread (buffer, 1, 4, z); - tracks = buffer[2] * 256 + buffer[3]; - offs = 8 + 2 + 2 + tracks * (2 + 2 + 4 + 4); + zfile_fread (buffer, 1, 8, z); + zfile_fread (buffer, 1, 4, z); + tracks = buffer[2] * 256 + buffer[3]; + offs = 8 + 2 + 2 + tracks * (2 + 2 + 4 + 4); - _tcscpy (newname, zfile_getname (z)); - ext = _tcsrchr (newname, '.'); - if (ext) { - _tcscpy (newname + _tcslen (newname) - _tcslen (ext), _T(".std.adf")); - } else { - _tcscat (newname, _T(".std.adf")); - } - if (index > 0) - _tcscpy (newname + _tcslen (newname) - 4, _T(".ima")); + _tcscpy (newname, zfile_getname (z)); + ext = _tcsrchr (newname, '.'); + if (ext) + { + _tcscpy (newname + _tcslen (newname) - _tcslen (ext), _T(".std.adf")); + } + else + { + _tcscat (newname, _T(".std.adf")); + } + if (index > 0) + _tcscpy (newname + _tcslen (newname) - 4, _T(".ima")); - zo = zfile_fopen_empty (z, newname, 0); - if (!zo) - goto end; + zo = zfile_fopen_empty (z, newname, 0); + if (!zo) + goto end; - if (retcode) - *retcode = 1; - pos = 12; - outsize = 0; - for (i = 0; i < tracks; i++) { - int type, bitlen; - - zfile_fseek (z, pos, SEEK_SET); - zfile_fread (buffer, 2 + 2 + 4 + 4, 1, z); - pos = zfile_ftell (z); - type = buffer[2] * 256 + buffer[3]; - len = buffer[5] * 65536 + buffer[6] * 256 + buffer[7]; - bitlen = buffer[9] * 65536 + buffer[10] * 256 + buffer[11]; + if (retcode) + *retcode = 1; + pos = 12; + outsize = 0; + for (i = 0; i < tracks; i++) + { + int type, bitlen; - zfile_fseek (z, offs, SEEK_SET); - if (type == 1) { - zfile_fread (mfm, len, 1, z); - memset (writebuffer_ok, 0, sizeof writebuffer_ok); - memset (outbuf, 0, 16384); - if (index == 0) { - r = isamigatrack (amigamfmbuffer, (uae_u8*)mfm, len, outbuf, writebuffer_ok, i, &outsize); - if (r < 0 && i == 0) { - zfile_seterror (_T("'%s' is not AmigaDOS formatted"), zo->name); - goto end; - } - if (i == 0) - done = 1; - } else { - r = ispctrack (amigamfmbuffer, (uae_u8*)mfm, len, outbuf, writebuffer_ok, i, &outsize); - if (r < 0 && i == 0) { - zfile_seterror (_T("'%s' is not PC formatted"), zo->name); - goto end; - } - if (i == 0) - done = 1; - } - } else { - outsize = 512 * 11; - if (bitlen / 8 > 18000) - outsize *= 2; - zfile_fread (outbuf, outsize, 1, z); - cantrunc = 1; - if (index == 0) - done = 1; - } - zfile_fwrite (outbuf, outsize, 1, zo); + zfile_fseek (z, pos, SEEK_SET); + zfile_fread (buffer, 2 + 2 + 4 + 4, 1, z); + pos = zfile_ftell (z); + type = buffer[2] * 256 + buffer[3]; + len = buffer[5] * 65536 + buffer[6] * 256 + buffer[7]; + bitlen = buffer[9] * 65536 + buffer[10] * 256 + buffer[11]; - offs += len; + zfile_fseek (z, offs, SEEK_SET); + if (type == 1) + { + zfile_fread (mfm, len, 1, z); + memset (writebuffer_ok, 0, sizeof writebuffer_ok); + memset (outbuf, 0, 16384); + if (index == 0) + { + r = isamigatrack (amigamfmbuffer, (uae_u8*)mfm, len, outbuf, writebuffer_ok, i, &outsize); + if (r < 0 && i == 0) + { + zfile_seterror (_T("'%s' is not AmigaDOS formatted"), zo->name); + goto end; + } + if (i == 0) + done = 1; + } + else + { + r = ispctrack (amigamfmbuffer, (uae_u8*)mfm, len, outbuf, writebuffer_ok, i, &outsize); + if (r < 0 && i == 0) + { + zfile_seterror (_T("'%s' is not PC formatted"), zo->name); + goto end; + } + if (i == 0) + done = 1; + } + } + else + { + outsize = 512 * 11; + if (bitlen / 8 > 18000) + outsize *= 2; + zfile_fread (outbuf, outsize, 1, z); + cantrunc = 1; + if (index == 0) + done = 1; + } + zfile_fwrite (outbuf, outsize, 1, zo); - } - if (done == 0) - goto end; - zfile_fclose (z); - xfree (mfm); - xfree (amigamfmbuffer); - if (cantrunc) - truncate880k (zo); - return zo; + offs += len; + + } + if (done == 0) + goto end; + zfile_fclose (z); + xfree (mfm); + xfree (amigamfmbuffer); + if (cantrunc) + truncate880k (zo); + return zo; end: - zfile_fclose (zo); - xfree (mfm); - xfree (amigamfmbuffer); - return NULL; + zfile_fclose (zo); + xfree (mfm); + xfree (amigamfmbuffer); + return NULL; } #ifdef CAPS #include "caps/caps_win32.h" static struct zfile *ipf (struct zfile *z, int index, int *retcode) { - int i, j, r; - struct zfile *zo; - TCHAR *orgname = zfile_getname (z); - TCHAR *ext = _tcsrchr (orgname, '.'); - TCHAR newname[MAX_DPATH]; - uae_u16 *amigamfmbuffer; - uae_u8 writebuffer_ok[32]; - int tracks, len; - int outsize; - int startpos = 0; - uae_u8 *outbuf; - uae_u8 tmp[12]; - struct zcache *zc; + int i, j, r; + struct zfile *zo; + TCHAR *orgname = zfile_getname (z); + TCHAR *ext = _tcsrchr (orgname, '.'); + TCHAR newname[MAX_DPATH]; + uae_u16 *amigamfmbuffer; + uae_u8 writebuffer_ok[32]; + int tracks, len; + int outsize; + int startpos = 0; + uae_u8 *outbuf; + uae_u8 tmp[12]; + struct zcache *zc; - if (checkwrite (z, retcode)) - return NULL; + if (checkwrite (z, retcode)) + return NULL; - if (index > 2) - return NULL; + if (index > 2) + return NULL; - zc = cache_get (z->name); - if (!zc) { - uae_u16 *mfm; - struct zdiskimage *zd; - if (!caps_loadimage (z, 0, &tracks)) - return NULL; - mfm = xcalloc (uae_u16, 32000 / 2); - zd = xcalloc (struct zdiskimage, 1); - zd->tracks = tracks; - for (i = 0; i < tracks; i++) { - uae_u8 *buf, *p; - int mrev, gapo; - caps_loadtrack (mfm, NULL, 0, i, &len, &mrev, &gapo); - //write_log (_T("%d: %d %d %d\n"), i, mrev, gapo, len); - len /= 8; - buf = p = xmalloc (uae_u8, len); - for (j = 0; j < len / 2; j++) { - uae_u16 v = mfm[j]; - *p++ = v >> 8; - *p++ = v; - } - zd->zdisktracks[i].data = buf; - zd->zdisktracks[i].len = len; - } - caps_unloadimage (0); - zc = zcache_put (z->name, zd); - } + zc = cache_get (z->name); + if (!zc) + { + uae_u16 *mfm; + struct zdiskimage *zd; + if (!caps_loadimage (z, 0, &tracks)) + return NULL; + mfm = xcalloc (uae_u16, 32000 / 2); + zd = xcalloc (struct zdiskimage, 1); + zd->tracks = tracks; + for (i = 0; i < tracks; i++) + { + uae_u8 *buf, *p; + int mrev, gapo; + caps_loadtrack (mfm, NULL, 0, i, &len, &mrev, &gapo); + //write_log (_T("%d: %d %d %d\n"), i, mrev, gapo, len); + len /= 8; + buf = p = xmalloc (uae_u8, len); + for (j = 0; j < len / 2; j++) + { + uae_u16 v = mfm[j]; + *p++ = v >> 8; + *p++ = v; + } + zd->zdisktracks[i].data = buf; + zd->zdisktracks[i].len = len; + } + caps_unloadimage (0); + zc = zcache_put (z->name, zd); + } - outbuf = xcalloc (uae_u8, 16384); - amigamfmbuffer = xcalloc (uae_u16, 32000 / 2); - if (ext) { - _tcscpy (newname, orgname); - _tcscpy (newname + _tcslen (newname) - _tcslen (ext), _T(".adf")); - } else { - _tcscat (newname, _T(".adf")); - } - if (index == 1) - _tcscpy (newname + _tcslen (newname) - 4, _T(".ima")); - if (index == 2) - _tcscpy (newname + _tcslen (newname) - 4, _T(".ext.adf")); + outbuf = xcalloc (uae_u8, 16384); + amigamfmbuffer = xcalloc (uae_u16, 32000 / 2); + if (ext) + { + _tcscpy (newname, orgname); + _tcscpy (newname + _tcslen (newname) - _tcslen (ext), _T(".adf")); + } + else + { + _tcscat (newname, _T(".adf")); + } + if (index == 1) + _tcscpy (newname + _tcslen (newname) - 4, _T(".ima")); + if (index == 2) + _tcscpy (newname + _tcslen (newname) - 4, _T(".ext.adf")); - zo = zfile_fopen_empty (z, newname, 0); - if (!zo) - goto end; + zo = zfile_fopen_empty (z, newname, 0); + if (!zo) + goto end; - if (retcode) - *retcode = 1; + if (retcode) + *retcode = 1; - tracks = zc->zd->tracks; + tracks = zc->zd->tracks; - if (index > 1) { - zfile_fwrite ("UAE-1ADF", 8, 1, zo); - tmp[0] = 0; tmp[1] = 0; /* flags (reserved) */ - tmp[2] = 0; tmp[3] = tracks; /* number of tracks */ - zfile_fwrite (tmp, 4, 1, zo); - memset (tmp, 0, sizeof tmp); - tmp[2] = 0; tmp[3] = 1; /* track type */ - startpos = zfile_ftell (zo); - for (i = 0; i < tracks; i++) - zfile_fwrite (tmp, sizeof tmp, 1, zo); - } + if (index > 1) + { + zfile_fwrite ("UAE-1ADF", 8, 1, zo); + tmp[0] = 0; + tmp[1] = 0; /* flags (reserved) */ + tmp[2] = 0; + tmp[3] = tracks; /* number of tracks */ + zfile_fwrite (tmp, 4, 1, zo); + memset (tmp, 0, sizeof tmp); + tmp[2] = 0; + tmp[3] = 1; /* track type */ + startpos = zfile_ftell (zo); + for (i = 0; i < tracks; i++) + zfile_fwrite (tmp, sizeof tmp, 1, zo); + } - outsize = 0; - for (i = 0; i < tracks; i++) { - uae_u8 *p = (uae_u8*)zc->zd->zdisktracks[i].data; - len = zc->zd->zdisktracks[i].len; - memset (writebuffer_ok, 0, sizeof writebuffer_ok); - memset (outbuf, 0, 16384); - if (index == 0) { - r = isamigatrack (amigamfmbuffer, p, len, outbuf, writebuffer_ok, i, &outsize); - if (r < 0 && i == 0) { - zfile_seterror (_T("'%s' is not AmigaDOS formatted"), orgname); - goto end; - } - zfile_fwrite (outbuf, 1, outsize, zo); - } else if (index == 1) { - r = ispctrack (amigamfmbuffer, p, len, outbuf, writebuffer_ok, i, &outsize); - if (r < 0 && i == 0) { - zfile_seterror (_T("'%s' is not PC formatted"), orgname); - goto end; - } - zfile_fwrite (outbuf, outsize, 1, zo); - } else { - int pos = zfile_ftell (zo); - int maxlen = len > 12798 ? len : 12798; - int lenb = len * 8; + outsize = 0; + for (i = 0; i < tracks; i++) + { + uae_u8 *p = (uae_u8*)zc->zd->zdisktracks[i].data; + len = zc->zd->zdisktracks[i].len; + memset (writebuffer_ok, 0, sizeof writebuffer_ok); + memset (outbuf, 0, 16384); + if (index == 0) + { + r = isamigatrack (amigamfmbuffer, p, len, outbuf, writebuffer_ok, i, &outsize); + if (r < 0 && i == 0) + { + zfile_seterror (_T("'%s' is not AmigaDOS formatted"), orgname); + goto end; + } + zfile_fwrite (outbuf, 1, outsize, zo); + } + else if (index == 1) + { + r = ispctrack (amigamfmbuffer, p, len, outbuf, writebuffer_ok, i, &outsize); + if (r < 0 && i == 0) + { + zfile_seterror (_T("'%s' is not PC formatted"), orgname); + goto end; + } + zfile_fwrite (outbuf, outsize, 1, zo); + } + else + { + int pos = zfile_ftell (zo); + int maxlen = len > 12798 ? len : 12798; + int lenb = len * 8; - if (maxlen & 1) - maxlen++; - zfile_fseek (zo, startpos + i * 12 + 4, SEEK_SET); - tmp[4] = 0; tmp[5] = 0; tmp[6] = maxlen >> 8; tmp[7] = maxlen; - tmp[8] = lenb >> 24; tmp[9] = lenb >> 16; tmp[10] = lenb >> 8; tmp[11] = lenb; - zfile_fwrite (tmp + 4, 2, 4, zo); - zfile_fseek (zo, pos, SEEK_SET); - zfile_fwrite (p, 1, len, zo); - if (maxlen > len) - zfile_fwrite (outbuf, 1, maxlen - len, zo); - } - } - zfile_fclose (z); - xfree (amigamfmbuffer); - xfree (outbuf); - if (index == 0) - truncate880k (zo); - return zo; + if (maxlen & 1) + maxlen++; + zfile_fseek (zo, startpos + i * 12 + 4, SEEK_SET); + tmp[4] = 0; + tmp[5] = 0; + tmp[6] = maxlen >> 8; + tmp[7] = maxlen; + tmp[8] = lenb >> 24; + tmp[9] = lenb >> 16; + tmp[10] = lenb >> 8; + tmp[11] = lenb; + zfile_fwrite (tmp + 4, 2, 4, zo); + zfile_fseek (zo, pos, SEEK_SET); + zfile_fwrite (p, 1, len, zo); + if (maxlen > len) + zfile_fwrite (outbuf, 1, maxlen - len, zo); + } + } + zfile_fclose (z); + xfree (amigamfmbuffer); + xfree (outbuf); + if (index == 0) + truncate880k (zo); + return zo; end: - zfile_fclose (zo); - xfree (amigamfmbuffer); - xfree (outbuf); - return NULL; + zfile_fclose (zo); + xfree (amigamfmbuffer); + xfree (outbuf); + return NULL; } #endif #ifdef A_LZX static struct zfile *dsq (struct zfile *z, int lzx, int *retcode) { - struct zfile *zi = NULL; - struct zvolume *zv = NULL; + struct zfile *zi = NULL; + struct zvolume *zv = NULL; - if (checkwrite (z, retcode)) - return NULL; - if (lzx) { - zv = archive_directory_lzx (z); - if (zv) { - if (zv->root.child) - zi = archive_access_lzx (zv->root.child); - } - } else { - zi = z; - } - if (zi) { - uae_u8 *buf = zfile_getdata (zi, 0, -1); - if (!memcmp (buf, "PKD\x13", 4) || !memcmp (buf, "PKD\x11", 4)) { - TCHAR *fn; - int sectors = buf[18]; - int heads = buf[15]; - int blocks = (buf[6] << 8) | buf[7]; - int blocksize = (buf[10] << 8) | buf[11]; - struct zfile *zo; - int size = blocks * blocksize; - int off; - int i; - uae_u8 *bitmap = NULL; - uae_u8 *nullsector; + if (checkwrite (z, retcode)) + return NULL; + if (lzx) + { + zv = archive_directory_lzx (z); + if (zv) + { + if (zv->root.child) + zi = archive_access_lzx (zv->root.child); + } + } + else + { + zi = z; + } + if (zi) + { + uae_u8 *buf = zfile_getdata (zi, 0, -1); + if (!memcmp (buf, "PKD\x13", 4) || !memcmp (buf, "PKD\x11", 4)) + { + TCHAR *fn; + int sectors = buf[18]; + int heads = buf[15]; + int blocks = (buf[6] << 8) | buf[7]; + int blocksize = (buf[10] << 8) | buf[11]; + struct zfile *zo; + int size = blocks * blocksize; + int off; + int i; + uae_u8 *bitmap = NULL; + uae_u8 *nullsector; - nullsector = xcalloc (uae_u8, blocksize); - sectors /= heads; - if (buf[3] == 0x13) { - off = 52; - if (buf[off - 1] == 1) { - bitmap = &buf[off]; - off += (blocks + 7) / 8; - } else if (buf[off - 1] > 1) { - write_log (_T("unknown DSQ extra header type %d\n"), buf[off - 1]); - } - } else { - off = 32; - } + nullsector = xcalloc (uae_u8, blocksize); + sectors /= heads; + if (buf[3] == 0x13) + { + off = 52; + if (buf[off - 1] == 1) + { + bitmap = &buf[off]; + off += (blocks + 7) / 8; + } + else if (buf[off - 1] > 1) + { + write_log (_T("unknown DSQ extra header type %d\n"), buf[off - 1]); + } + } + else + { + off = 32; + } - if (size < 1760 * 512) - size = 1760 * 512; + if (size < 1760 * 512) + size = 1760 * 512; - if (zfile_getfilename (zi) && _tcslen (zfile_getfilename (zi))) { - fn = xmalloc (TCHAR, (_tcslen (zfile_getfilename (zi)) + 5)); - _tcscpy (fn, zfile_getfilename (zi)); - _tcscat (fn, _T(".adf")); - } else { - fn = my_strdup (_T("dsq.adf")); - } - zo = zfile_fopen_empty (z, fn, size); - xfree (fn); - int seccnt = 0; - for (i = 0; i < blocks; i++) { - int bmoff = i - 2; - int boff = -1; - uae_u32 mask = 0; - if (bitmap) { - boff = (bmoff / 32) * 4; - mask = (bitmap[boff] << 24) | (bitmap[boff + 1] << 16) | (bitmap[boff + 2] << 8) | (bitmap[boff + 3]); - } - if (bmoff >= 0 && boff >= 0 && (mask & (1 << (bmoff & 31)))) { - zfile_fwrite (nullsector, blocksize, 1, zo); - } else { - zfile_fwrite (buf + off, blocksize, 1, zo); - off += blocksize; - seccnt++; - } - if ((i % sectors) == sectors - 1) { - off += seccnt * 16; - seccnt = 0; - } - } - zfile_fclose_archive (zv); - zfile_fclose (z); - xfree (buf); - xfree (nullsector); - return zo; - } - xfree (buf); - } - if (lzx) - zfile_fclose (zi); - return z; + if (zfile_getfilename (zi) && _tcslen (zfile_getfilename (zi))) + { + fn = xmalloc (TCHAR, (_tcslen (zfile_getfilename (zi)) + 5)); + _tcscpy (fn, zfile_getfilename (zi)); + _tcscat (fn, _T(".adf")); + } + else + { + fn = my_strdup (_T("dsq.adf")); + } + zo = zfile_fopen_empty (z, fn, size); + xfree (fn); + int seccnt = 0; + for (i = 0; i < blocks; i++) + { + int bmoff = i - 2; + int boff = -1; + uae_u32 mask = 0; + if (bitmap) + { + boff = (bmoff / 32) * 4; + mask = (bitmap[boff] << 24) | (bitmap[boff + 1] << 16) | (bitmap[boff + 2] << 8) | (bitmap[boff + 3]); + } + if (bmoff >= 0 && boff >= 0 && (mask & (1 << (bmoff & 31)))) + { + zfile_fwrite (nullsector, blocksize, 1, zo); + } + else + { + zfile_fwrite (buf + off, blocksize, 1, zo); + off += blocksize; + seccnt++; + } + if ((i % sectors) == sectors - 1) + { + off += seccnt * 16; + seccnt = 0; + } + } + zfile_fclose_archive (zv); + zfile_fclose (z); + xfree (buf); + xfree (nullsector); + return zo; + } + xfree (buf); + } + if (lzx) + zfile_fclose (zi); + return z; } #endif #ifdef A_WRP static struct zfile *wrp (struct zfile *z, int *retcode) { - if (zfile_needwrite (z)) { - if (retcode) - *retcode = -1; - return NULL; - } - return unwarp (z); + if (zfile_needwrite (z)) + { + if (retcode) + *retcode = -1; + return NULL; + } + return unwarp (z); } #endif #ifdef A_DMS static struct zfile *dms (struct zfile *z, int index, int *retcode) { - int ret; - struct zfile *zo; - TCHAR *orgname = zfile_getname (z); - TCHAR *ext = _tcsrchr (orgname, '.'); - TCHAR newname[MAX_DPATH]; - static int recursive; - int i; - struct zfile *zextra[DMS_EXTRA_SIZE] = { 0 }; + int ret; + struct zfile *zo; + TCHAR *orgname = zfile_getname (z); + TCHAR *ext = _tcsrchr (orgname, '.'); + TCHAR newname[MAX_DPATH]; + static int recursive; + int i; + struct zfile *zextra[DMS_EXTRA_SIZE] = { 0 }; - if (checkwrite (z, retcode)) - return NULL; - if (recursive) - return NULL; - if (ext) { - _tcscpy (newname, orgname); - _tcscpy (newname + _tcslen (newname) - _tcslen (ext), _T(".adf")); - } else { - _tcscat (newname, _T(".adf")); - } - - zo = zfile_fopen_empty (z, newname, 1760 * 512); - if (!zo) - return NULL; - ret = DMS_Process_File (z, zo, CMD_UNPACK, OPT_VERBOSE, 0, 0, 0, zextra); - if (ret == NO_PROBLEM || ret == DMS_FILE_END) { - int off = zfile_ftell (zo); - if (off >= 1760 * 512 / 3 && off <= 1760 * 512 * 3 / 4) { // possible split dms? - if (_tcslen (orgname) > 5) { - TCHAR *s = orgname + _tcslen (orgname) - 5; - if (!_tcsicmp (s, _T("a.dms"))) { - TCHAR *fn2 = my_strdup (orgname); - struct zfile *z2; - fn2[_tcslen (fn2) - 5]++; - recursive++; - z2 = zfile_fopen (fn2, _T("rb"), z->zfdmask); - recursive--; - if (z2) { - ret = DMS_Process_File (z2, zo, CMD_UNPACK, OPT_VERBOSE, 0, 0, 1, NULL); - zfile_fclose (z2); - } - xfree (fn2); - } - } - } - zfile_fseek (zo, 0, SEEK_SET); - if (index > 0) { - zfile_fclose (zo); - zo = NULL; - for (i = 0; i < DMS_EXTRA_SIZE && zextra[i]; i++); - if (index > i) - goto end; - zo = zextra[index - 1]; - zextra[index - 1] = NULL; + if (checkwrite (z, retcode)) + return NULL; + if (recursive) + return NULL; + if (ext) + { + _tcscpy (newname, orgname); + _tcscpy (newname + _tcslen (newname) - _tcslen (ext), _T(".adf")); + } + else + { + _tcscat (newname, _T(".adf")); } - if (retcode) - *retcode = 1; - zfile_fclose (z); - z = NULL; - } else { - zfile_fclose (zo); - zo = NULL; - } + zo = zfile_fopen_empty (z, newname, 1760 * 512); + if (!zo) + return NULL; + ret = DMS_Process_File (z, zo, CMD_UNPACK, OPT_VERBOSE, 0, 0, 0, zextra); + if (ret == NO_PROBLEM || ret == DMS_FILE_END) + { + int off = zfile_ftell (zo); + if (off >= 1760 * 512 / 3 && off <= 1760 * 512 * 3 / 4) // possible split dms? + { + if (_tcslen (orgname) > 5) + { + TCHAR *s = orgname + _tcslen (orgname) - 5; + if (!_tcsicmp (s, _T("a.dms"))) + { + TCHAR *fn2 = my_strdup (orgname); + struct zfile *z2; + fn2[_tcslen (fn2) - 5]++; + recursive++; + z2 = zfile_fopen (fn2, _T("rb"), z->zfdmask); + recursive--; + if (z2) + { + ret = DMS_Process_File (z2, zo, CMD_UNPACK, OPT_VERBOSE, 0, 0, 1, NULL); + zfile_fclose (z2); + } + xfree (fn2); + } + } + } + zfile_fseek (zo, 0, SEEK_SET); + if (index > 0) + { + zfile_fclose (zo); + zo = NULL; + for (i = 0; i < DMS_EXTRA_SIZE && zextra[i]; i++); + if (index > i) + goto end; + zo = zextra[index - 1]; + zextra[index - 1] = NULL; + } + if (retcode) + *retcode = 1; + zfile_fclose (z); + z = NULL; + + } + else + { + zfile_fclose (zo); + zo = NULL; + } end: - for (i = 0; i < DMS_EXTRA_SIZE; i++) - zfile_fclose (zextra[i]); - return zo; + for (i = 0; i < DMS_EXTRA_SIZE; i++) + zfile_fclose (zextra[i]); + return zo; } #endif -const TCHAR *uae_ignoreextensions[] = - { _T(".gif"), _T(".jpg"), _T(".png"), _T(".xml"), _T(".pdf"), _T(".txt"), 0 }; +const TCHAR *uae_ignoreextensions[] = +{ _T(".gif"), _T(".jpg"), _T(".png"), _T(".xml"), _T(".pdf"), _T(".txt"), 0 }; const TCHAR *uae_diskimageextensions[] = - { _T(".adf"), _T(".adz"), _T(".ipf"), _T(".fdi"), _T(".exe"), _T(".dms"), _T(".wrp"), _T(".dsq"), 0 }; +{ _T(".adf"), _T(".adz"), _T(".ipf"), _T(".fdi"), _T(".exe"), _T(".dms"), _T(".wrp"), _T(".dsq"), 0 }; int zfile_is_ignore_ext(const TCHAR *name) { - int i; - const TCHAR *ext; - - ext = _tcsrchr (name, '.'); - if (!ext) - return 0; - for (i = 0; uae_ignoreextensions[i]; i++) { - if (!strcasecmp (uae_ignoreextensions[i], ext)) - return 1; - } - return 0; + int i; + const TCHAR *ext; + + ext = _tcsrchr (name, '.'); + if (!ext) + return 0; + for (i = 0; uae_ignoreextensions[i]; i++) + { + if (!strcasecmp (uae_ignoreextensions[i], ext)) + return 1; + } + return 0; } int zfile_is_diskimage (const TCHAR *name) { - int i; + int i; - const TCHAR *ext = _tcsrchr (name, '.'); - if (!ext) - return 0; - i = 0; - while (uae_diskimageextensions[i]) { - if (!strcasecmp (ext, uae_diskimageextensions[i])) - return HISTORY_FLOPPY; - i++; - } - if (!_tcsicmp (ext, _T(".cue"))) - return HISTORY_CD; - return -1; + const TCHAR *ext = _tcsrchr (name, '.'); + if (!ext) + return 0; + i = 0; + while (uae_diskimageextensions[i]) + { + if (!strcasecmp (ext, uae_diskimageextensions[i])) + return HISTORY_FLOPPY; + i++; + } + if (!_tcsicmp (ext, _T(".cue"))) + return HISTORY_CD; + return -1; } -static const TCHAR *archive_extensions[] = { - _T("7z"), _T("rar"), _T("zip"), _T("lha"), _T("lzh"), _T("lzx"), - _T("adf"), _T("adz"), _T("dsq"), _T("dms"), _T("ipf"), _T("fdi"), _T("wrp"), _T("ima"), - _T("hdf"), _T("tar"), - NULL +static const TCHAR *archive_extensions[] = +{ + _T("7z"), _T("rar"), _T("zip"), _T("lha"), _T("lzh"), _T("lzx"), + _T("adf"), _T("adz"), _T("dsq"), _T("dms"), _T("ipf"), _T("fdi"), _T("wrp"), _T("ima"), + _T("hdf"), _T("tar"), + NULL }; static const TCHAR *plugins_7z[] = { _T("7z"), _T("rar"), _T("zip"), _T("lha"), _T("lzh"), _T("lzx"), _T("adf"), _T("dsq"), _T("hdf"), _T("tar"), NULL }; static const uae_char *plugins_7z_x[] = { "7z", "Rar!", "MK", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; -static const int plugins_7z_t[] = { - ArchiveFormat7Zip, ArchiveFormatRAR, ArchiveFormatZIP, ArchiveFormatLHA, ArchiveFormatLHA, ArchiveFormatLZX, - ArchiveFormatADF, ArchiveFormatADF, ArchiveFormatADF, ArchiveFormatTAR +static const int plugins_7z_t[] = +{ + ArchiveFormat7Zip, ArchiveFormatRAR, ArchiveFormatZIP, ArchiveFormatLHA, ArchiveFormatLHA, ArchiveFormatLZX, + ArchiveFormatADF, ArchiveFormatADF, ArchiveFormatADF, ArchiveFormatTAR }; -static const int plugins_7z_m[] = { - ZFD_ARCHIVE, ZFD_ARCHIVE, ZFD_ARCHIVE, ZFD_ARCHIVE, ZFD_ARCHIVE, ZFD_ARCHIVE, - ZFD_ADF, ZFD_ADF, ZFD_ADF, ZFD_ARCHIVE +static const int plugins_7z_m[] = +{ + ZFD_ARCHIVE, ZFD_ARCHIVE, ZFD_ARCHIVE, ZFD_ARCHIVE, ZFD_ARCHIVE, ZFD_ARCHIVE, + ZFD_ADF, ZFD_ADF, ZFD_ADF, ZFD_ARCHIVE }; int iszip (struct zfile *z, int mask) { - TCHAR *name = z->name; - TCHAR *ext = _tcsrchr (name, '.'); - uae_u8 header[32]; - int i; + TCHAR *name = z->name; + TCHAR *ext = _tcsrchr (name, '.'); + uae_u8 header[32]; + int i; - if (!ext) - return 0; - memset (header, 0, sizeof (header)); - zfile_fseek (z, 0, SEEK_SET); - zfile_fread (header, sizeof (header), 1, z); - zfile_fseek (z, 0, SEEK_SET); + if (!ext) + return 0; + memset (header, 0, sizeof (header)); + zfile_fseek (z, 0, SEEK_SET); + zfile_fread (header, sizeof (header), 1, z); + zfile_fseek (z, 0, SEEK_SET); - if (mask & ZFD_ARCHIVE) { - if (!strcasecmp (ext, _T(".zip")) || !strcasecmp (ext, _T(".rp9"))) { - if(header[0] == 'P' && header[1] == 'K') - return ArchiveFormatZIP; - return 0; + if (mask & ZFD_ARCHIVE) + { + if (!strcasecmp (ext, _T(".zip")) || !strcasecmp (ext, _T(".rp9"))) + { + if(header[0] == 'P' && header[1] == 'K') + return ArchiveFormatZIP; + return 0; + } } - } - if (mask & ZFD_ARCHIVE) { - if (!strcasecmp (ext, _T(".7z"))) { - if(header[0] == '7' && header[1] == 'z') - return ArchiveFormat7Zip; - return 0; - } - if (!strcasecmp (ext, _T(".rar"))) { - if (header[0] == 'R' && header[1] == 'a' && header[2] == 'r' && header[3] == '!') - return ArchiveFormatRAR; - return 0; + if (mask & ZFD_ARCHIVE) + { + if (!strcasecmp (ext, _T(".7z"))) + { + if(header[0] == '7' && header[1] == 'z') + return ArchiveFormat7Zip; + return 0; + } + if (!strcasecmp (ext, _T(".rar"))) + { + if (header[0] == 'R' && header[1] == 'a' && header[2] == 'r' && header[3] == '!') + return ArchiveFormatRAR; + return 0; + } + if (!strcasecmp (ext, _T(".lha")) || !strcasecmp (ext, _T(".lzh"))) + { + if(header[2] == '-' && header[3] == 'l' && header[4] == 'h' && header[6] == '-') + return ArchiveFormatLHA; + return 0; + } + if (!strcasecmp (ext, _T(".lzx"))) + { + if(header[0] == 'L' && header[1] == 'Z' && header[2] == 'X') + return ArchiveFormatLZX; + return 0; + } } - if (!strcasecmp (ext, _T(".lha")) || !strcasecmp (ext, _T(".lzh"))) { - if(header[2] == '-' && header[3] == 'l' && header[4] == 'h' && header[6] == '-') - return ArchiveFormatLHA; - return 0; + if (mask & ZFD_ADF) + { + if (!strcasecmp (ext, _T(".adf"))) + { + if (header[0] == 'D' && header[1] == 'O' && header[2] == 'S' && (header[3] >= 0 && header[3] <= 7)) + return ArchiveFormatADF; + if (isfat (header)) + return ArchiveFormatFAT; + return 0; + } + if (!strcasecmp (ext, _T(".ima"))) + { + if (isfat (header)) + return ArchiveFormatFAT; + } } - if (!strcasecmp (ext, _T(".lzx"))) { - if(header[0] == 'L' && header[1] == 'Z' && header[2] == 'X') - return ArchiveFormatLZX; - return 0; + if (mask & ZFD_HD) + { + if (!strcasecmp (ext, _T(".hdf"))) + { + if (header[0] == 'D' && header[1] == 'O' && header[2] == 'S' && (header[3] >= 0 && header[3] <= 7)) + return ArchiveFormatADF; + if (header[0] == 'S' && header[1] == 'F' && header[2] == 'S') + return ArchiveFormatADF; + if (header[0] == 'R' && header[1] == 'D' && header[2] == 'S' && header[3] == 'K') + return ArchiveFormatRDB; + if (isfat (header)) + return ArchiveFormatFAT; + return 0; + } } - } - if (mask & ZFD_ADF) { - if (!strcasecmp (ext, _T(".adf"))) { - if (header[0] == 'D' && header[1] == 'O' && header[2] == 'S' && (header[3] >= 0 && header[3] <= 7)) - return ArchiveFormatADF; - if (isfat (header)) - return ArchiveFormatFAT; - return 0; - } - if (!strcasecmp (ext, _T(".ima"))) { - if (isfat (header)) - return ArchiveFormatFAT; - } - } - if (mask & ZFD_HD) { - if (!strcasecmp (ext, _T(".hdf"))) { - if (header[0] == 'D' && header[1] == 'O' && header[2] == 'S' && (header[3] >= 0 && header[3] <= 7)) - return ArchiveFormatADF; - if (header[0] == 'S' && header[1] == 'F' && header[2] == 'S') - return ArchiveFormatADF; - if (header[0] == 'R' && header[1] == 'D' && header[2] == 'S' && header[3] == 'K') - return ArchiveFormatRDB; - if (isfat (header)) - return ArchiveFormatFAT; - return 0; - } - } #if defined(ARCHIVEACCESS) - for (i = 0; plugins_7z_x[i]; i++) { - if ((plugins_7z_m[i] & mask) && plugins_7z_x[i] && !strcasecmp (ext + 1, plugins_7z[i]) && - !memcmp (header, plugins_7z_x[i], strlen (plugins_7z_x[i]))) - return plugins_7z_t[i]; - } + for (i = 0; plugins_7z_x[i]; i++) + { + if ((plugins_7z_m[i] & mask) && plugins_7z_x[i] && !strcasecmp (ext + 1, plugins_7z[i]) && + !memcmp (header, plugins_7z_x[i], strlen (plugins_7z_x[i]))) + return plugins_7z_t[i]; + } #endif - return 0; + return 0; } int iszip (struct zfile *z) { - return iszip (z, ZFD_NORMAL); + return iszip (z, ZFD_NORMAL); } struct zfile *zuncompress (struct znode *parent, struct zfile *z, int dodefault, int mask, int *retcode, int index) { - TCHAR *name = z->name; - TCHAR *ext = NULL; - uae_u8 header[32]; - int i; + TCHAR *name = z->name; + TCHAR *ext = NULL; + uae_u8 header[32]; + int i; - if (retcode) - *retcode = 0; - if (!mask) - return NULL; - if (name) { - ext = _tcsrchr (name, '.'); - if (ext) - ext++; - } - - if (ext != NULL) { - if (mask & ZFD_ARCHIVE) { - if (strcasecmp (ext, _T("7z")) == 0) - return archive_access_select (parent, z, ArchiveFormat7Zip, dodefault, retcode, index); - if (strcasecmp (ext, _T("zip")) == 0) - return archive_access_select (parent, z, ArchiveFormatZIP, dodefault, retcode, index); - if (strcasecmp (ext, _T("lha")) == 0 || strcasecmp (ext, _T("lzh")) == 0) - return archive_access_select (parent, z, ArchiveFormatLHA, dodefault, retcode, index); - if (strcasecmp (ext, _T("lzx")) == 0) - return archive_access_select (parent, z, ArchiveFormatLZX, dodefault, retcode, index); - if (strcasecmp (ext, _T("rar")) == 0) - return archive_access_select (parent, z, ArchiveFormatRAR, dodefault, retcode, index); - if (strcasecmp (ext, _T("tar")) == 0) - return archive_access_select (parent, z, ArchiveFormatTAR, dodefault, retcode, index); + if (retcode) + *retcode = 0; + if (!mask) + return NULL; + if (name) + { + ext = _tcsrchr (name, '.'); + if (ext) + ext++; } - if (mask & ZFD_UNPACK) { - if (index == 0) { - if (strcasecmp (ext, _T("gz")) == 0) - return zfile_gunzip (z, retcode); - if (strcasecmp (ext, _T("adz")) == 0) - return zfile_gunzip (z, retcode); - if (strcasecmp (ext, _T("roz")) == 0) - return zfile_gunzip (z, retcode); - if (strcasecmp (ext, _T("hdz")) == 0) - return zfile_gunzip (z, retcode); + + if (ext != NULL) + { + if (mask & ZFD_ARCHIVE) + { + if (strcasecmp (ext, _T("7z")) == 0) + return archive_access_select (parent, z, ArchiveFormat7Zip, dodefault, retcode, index); + if (strcasecmp (ext, _T("zip")) == 0) + return archive_access_select (parent, z, ArchiveFormatZIP, dodefault, retcode, index); + if (strcasecmp (ext, _T("lha")) == 0 || strcasecmp (ext, _T("lzh")) == 0) + return archive_access_select (parent, z, ArchiveFormatLHA, dodefault, retcode, index); + if (strcasecmp (ext, _T("lzx")) == 0) + return archive_access_select (parent, z, ArchiveFormatLZX, dodefault, retcode, index); + if (strcasecmp (ext, _T("rar")) == 0) + return archive_access_select (parent, z, ArchiveFormatRAR, dodefault, retcode, index); + if (strcasecmp (ext, _T("tar")) == 0) + return archive_access_select (parent, z, ArchiveFormatTAR, dodefault, retcode, index); + } + if (mask & ZFD_UNPACK) + { + if (index == 0) + { + if (strcasecmp (ext, _T("gz")) == 0) + return zfile_gunzip (z, retcode); + if (strcasecmp (ext, _T("adz")) == 0) + return zfile_gunzip (z, retcode); + if (strcasecmp (ext, _T("roz")) == 0) + return zfile_gunzip (z, retcode); + if (strcasecmp (ext, _T("hdz")) == 0) + return zfile_gunzip (z, retcode); #ifdef A_WRP - if (strcasecmp (ext, _T("wrp")) == 0) - return wrp (z, retcode); + if (strcasecmp (ext, _T("wrp")) == 0) + return wrp (z, retcode); #endif - } + } #ifdef A_DMS - if (strcasecmp (ext, _T("dms")) == 0) - return dms (z, index, retcode); + if (strcasecmp (ext, _T("dms")) == 0) + return dms (z, index, retcode); #endif - } - if (mask & ZFD_RAWDISK) { + } + if (mask & ZFD_RAWDISK) + { #ifdef CAPS - if (strcasecmp (ext, _T("ipf")) == 0) - return ipf (z, index, retcode); + if (strcasecmp (ext, _T("ipf")) == 0) + return ipf (z, index, retcode); #endif - if (mask & (ZFD_RAWDISK_PC | ZFD_RAWDISK_AMIGA)) - return NULL; - } + if (mask & (ZFD_RAWDISK_PC | ZFD_RAWDISK_AMIGA)) + return NULL; + } #if defined(ARCHIVEACCESS) - if (index == 0) { - for (i = 0; plugins_7z_x[i]; i++) { - if ((plugins_7z_t[i] & mask) && strcasecmp (ext, plugins_7z[i]) == 0) - return archive_access_arcacc_select (z, plugins_7z_t[i], retcode); - } - } -#endif - } - memset (header, 0, sizeof (header)); - zfile_fseek (z, 0, SEEK_SET); - zfile_fread (header, sizeof (header), 1, z); - zfile_fseek (z, 0, SEEK_SET); - if (!memcmp (header, "conectix", 8)) { - if (index > 0) - return NULL; - return vhd (z); - } - if (mask & ZFD_UNPACK) { - if (index == 0) { - if (header[0] == 0x1f && header[1] == 0x8b) - return zfile_gunzip (z, retcode); -#ifdef A_LZX - if (header[0] == 'P' && header[1] == 'K' && header[2] == 'D') - return dsq (z, 0, retcode); + if (index == 0) + { + for (i = 0; plugins_7z_x[i]; i++) + { + if ((plugins_7z_t[i] & mask) && strcasecmp (ext, plugins_7z[i]) == 0) + return archive_access_arcacc_select (z, plugins_7z_t[i], retcode); + } + } #endif } -#ifdef A_DMS - if (header[0] == 'D' && header[1] == 'M' && header[2] == 'S' && header[3] == '!') - return dms (z, index, retcode); -#endif - } - if (mask & ZFD_RAWDISK) { -#ifdef CAPS - if (header[0] == 'C' && header[1] == 'A' && header[2] == 'P' && header[3] == 'S') - return ipf (z, index, retcode); -#endif - if (!memcmp (header, "UAE-1ADF", 8)) - return extadf (z, index, retcode); - } - if (index > 0) - return NULL; - if (mask & ZFD_ARCHIVE) { - if (header[0] == 'P' && header[1] == 'K') - return archive_access_select (parent, z, ArchiveFormatZIP, dodefault, retcode, index); - if (header[0] == 'R' && header[1] == 'a' && header[2] == 'r' && header[3] == '!') - return archive_access_select (parent, z, ArchiveFormatRAR, dodefault, retcode, index); - if (header[0] == 'L' && header[1] == 'Z' && header[2] == 'X') - return archive_access_select (parent, z, ArchiveFormatLZX, dodefault, retcode, index); - if (header[2] == '-' && header[3] == 'l' && header[4] == 'h' && header[6] == '-') - return archive_access_select (parent, z, ArchiveFormatLHA, dodefault, retcode, index); - } - if (mask & ZFD_ADF) { - if (header[0] == 'D' && header[1] == 'O' && header[2] == 'S' && (header[3] >= 0 && header[3] <= 7)) - return archive_access_select (parent, z, ArchiveFormatADF, dodefault, retcode, index); - if (header[0] == 'S' && header[1] == 'F' && header[2] == 'S') - return archive_access_select (parent, z, ArchiveFormatADF, dodefault, retcode, index); - if (isfat (header)) - return archive_access_select (parent, z, ArchiveFormatFAT, dodefault, retcode, index); - } - - if (ext) { - if (mask & ZFD_UNPACK) { + memset (header, 0, sizeof (header)); + zfile_fseek (z, 0, SEEK_SET); + zfile_fread (header, sizeof (header), 1, z); + zfile_fseek (z, 0, SEEK_SET); + if (!memcmp (header, "conectix", 8)) + { + if (index > 0) + return NULL; + return vhd (z); + } + if (mask & ZFD_UNPACK) + { + if (index == 0) + { + if (header[0] == 0x1f && header[1] == 0x8b) + return zfile_gunzip (z, retcode); #ifdef A_LZX - if (strcasecmp (ext, _T("dsq")) == 0) - return dsq (z, 1, retcode); + if (header[0] == 'P' && header[1] == 'K' && header[2] == 'D') + return dsq (z, 0, retcode); #endif - } - if (mask & ZFD_ADF) { - if (strcasecmp (ext, _T("adf")) == 0 && !memcmp (header, "DOS", 3)) - return archive_access_select (parent, z, ArchiveFormatADF, dodefault, retcode, index); - } - } - return NULL; + } +#ifdef A_DMS + if (header[0] == 'D' && header[1] == 'M' && header[2] == 'S' && header[3] == '!') + return dms (z, index, retcode); +#endif + } + if (mask & ZFD_RAWDISK) + { +#ifdef CAPS + if (header[0] == 'C' && header[1] == 'A' && header[2] == 'P' && header[3] == 'S') + return ipf (z, index, retcode); +#endif + if (!memcmp (header, "UAE-1ADF", 8)) + return extadf (z, index, retcode); + } + if (index > 0) + return NULL; + if (mask & ZFD_ARCHIVE) + { + if (header[0] == 'P' && header[1] == 'K') + return archive_access_select (parent, z, ArchiveFormatZIP, dodefault, retcode, index); + if (header[0] == 'R' && header[1] == 'a' && header[2] == 'r' && header[3] == '!') + return archive_access_select (parent, z, ArchiveFormatRAR, dodefault, retcode, index); + if (header[0] == 'L' && header[1] == 'Z' && header[2] == 'X') + return archive_access_select (parent, z, ArchiveFormatLZX, dodefault, retcode, index); + if (header[2] == '-' && header[3] == 'l' && header[4] == 'h' && header[6] == '-') + return archive_access_select (parent, z, ArchiveFormatLHA, dodefault, retcode, index); + } + if (mask & ZFD_ADF) + { + if (header[0] == 'D' && header[1] == 'O' && header[2] == 'S' && (header[3] >= 0 && header[3] <= 7)) + return archive_access_select (parent, z, ArchiveFormatADF, dodefault, retcode, index); + if (header[0] == 'S' && header[1] == 'F' && header[2] == 'S') + return archive_access_select (parent, z, ArchiveFormatADF, dodefault, retcode, index); + if (isfat (header)) + return archive_access_select (parent, z, ArchiveFormatFAT, dodefault, retcode, index); + } + + if (ext) + { + if (mask & ZFD_UNPACK) + { +#ifdef A_LZX + if (strcasecmp (ext, _T("dsq")) == 0) + return dsq (z, 1, retcode); +#endif + } + if (mask & ZFD_ADF) + { + if (strcasecmp (ext, _T("adf")) == 0 && !memcmp (header, "DOS", 3)) + return archive_access_select (parent, z, ArchiveFormatADF, dodefault, retcode, index); + } + } + return NULL; } #ifdef SINGLEFILE @@ -1330,1857 +1482,2050 @@ extern uae_u8 singlefile_data[]; static struct zfile *zfile_opensinglefile(struct zfile *l) { - uae_u8 *p = singlefile_data; - int size, offset; - TCHAR tmp[256], *s; + uae_u8 *p = singlefile_data; + int size, offset; + TCHAR tmp[256], *s; - _tcscpy (tmp, l->name); - s = tmp + _tcslen (tmp) - 1; - while (*s != 0 && *s != '/' && *s != '\\') - s--; - if (s > tmp) - s++; - write_log (_T("loading from singlefile: '%s'\n"), tmp); - while (*p++); - offset = (p[0] << 24)|(p[1] << 16)|(p[2] << 8)|(p[3] << 0); - p += 4; - for (;;) { - size = (p[0] << 24)|(p[1] << 16)|(p[2] << 8)|(p[3] << 0); - if (!size) - break; - if (!strcmpi (tmp, p + 4)) { - l->data = singlefile_data + offset; - l->size = size; - write_log (_T("found, size %d\n"), size); - return l; - } - offset += size; - p += 4; - p += _tcslen (p) + 1; - } - write_log (_T("not found\n")); - return 0; + _tcscpy (tmp, l->name); + s = tmp + _tcslen (tmp) - 1; + while (*s != 0 && *s != '/' && *s != '\\') + s--; + if (s > tmp) + s++; + write_log (_T("loading from singlefile: '%s'\n"), tmp); + while (*p++); + offset = (p[0] << 24)|(p[1] << 16)|(p[2] << 8)|(p[3] << 0); + p += 4; + for (;;) + { + size = (p[0] << 24)|(p[1] << 16)|(p[2] << 8)|(p[3] << 0); + if (!size) + break; + if (!strcmpi (tmp, p + 4)) + { + l->data = singlefile_data + offset; + l->size = size; + write_log (_T("found, size %d\n"), size); + return l; + } + offset += size; + p += 4; + p += _tcslen (p) + 1; + } + write_log (_T("not found\n")); + return 0; } #endif static struct zfile *zfile_fopen_nozip (const TCHAR *name, const TCHAR *mode) { - struct zfile *l; - FILE *f; + struct zfile *l; + FILE *f; - if(*name == '\0') - return NULL; - l = zfile_create (NULL); - l->name = my_strdup (name); - l->mode = my_strdup (mode); - f = _tfopen (name, mode); - if (!f) { - zfile_fclose (l); - return 0; - } - l->f = f; - return l; + if(*name == '\0') + return NULL; + l = zfile_create (NULL); + l->name = my_strdup (name); + l->mode = my_strdup (mode); + f = _tfopen (name, mode); + if (!f) + { + zfile_fclose (l); + return 0; + } + l->f = f; + return l; } static struct zfile *openzip (const TCHAR *pname) { - int i, j; - TCHAR v; - TCHAR name[MAX_DPATH]; - TCHAR zippath[MAX_DPATH]; + int i, j; + TCHAR v; + TCHAR name[MAX_DPATH]; + TCHAR zippath[MAX_DPATH]; - zippath[0] = 0; - _tcscpy (name, pname); - i = _tcslen (name) - 2; - while (i > 0) { - if (name[i] == '/' || name[i] == '\\' && i > 4) { - v = name[i]; - name[i] = 0; - for (j = 0; plugins_7z[j]; j++) { - int len = _tcslen (plugins_7z[j]); - if (name[i - len - 1] == '.' && !strcasecmp (name + i - len, plugins_7z[j])) { - struct zfile *f = zfile_fopen_nozip (name, _T("rb")); - if (f) { - f->zipname = my_strdup(name + i + 1); - return f; - } - break; - } - } - name[i] = v; - } - i--; - } - return 0; + zippath[0] = 0; + _tcscpy (name, pname); + i = _tcslen (name) - 2; + while (i > 0) + { + if (name[i] == '/' || name[i] == '\\' && i > 4) + { + v = name[i]; + name[i] = 0; + for (j = 0; plugins_7z[j]; j++) + { + int len = _tcslen (plugins_7z[j]); + if (name[i - len - 1] == '.' && !strcasecmp (name + i - len, plugins_7z[j])) + { + struct zfile *f = zfile_fopen_nozip (name, _T("rb")); + if (f) + { + f->zipname = my_strdup(name + i + 1); + return f; + } + break; + } + } + name[i] = v; + } + i--; + } + return 0; } static bool writeneeded (const TCHAR *mode) { - return _tcschr (mode, 'w') || _tcschr (mode, 'a') || _tcschr (mode, '+') || _tcschr (mode, 't'); + return _tcschr (mode, 'w') || _tcschr (mode, 'a') || _tcschr (mode, '+') || _tcschr (mode, 't'); } bool zfile_needwrite (struct zfile *zf) { - if (!zf->mode) - return false; - return writeneeded (zf->mode); + if (!zf->mode) + return false; + return writeneeded (zf->mode); } static struct zfile *zfile_fopen_2 (const TCHAR *name, const TCHAR *mode, int mask) { - struct zfile *l; - FILE *f; + struct zfile *l; + FILE *f; - if( *name == '\0' ) - return NULL; + if( *name == '\0' ) + return NULL; #ifdef SINGLEFILE - if (zfile_opensinglefile (l)) - return l; + if (zfile_opensinglefile (l)) + return l; #endif - l = openzip (name); - if (l) { - if (writeneeded (mode)) { - zfile_fclose (l); - return 0; - } - l->zfdmask = mask; - } else { - struct mystat st; - l = zfile_create (NULL); - l->mode = my_strdup (mode); - l->name = my_strdup (name); - l->zfdmask = mask; - if (!_tcsicmp (mode, _T("r"))) { - f = my_opentext (l->name); - l->textmode = 1; - } else { - f = _tfopen (l->name, mode); - } - if (!f) { - zfile_fclose (l); - return 0; + l = openzip (name); + if (l) + { + if (writeneeded (mode)) + { + zfile_fclose (l); + return 0; + } + l->zfdmask = mask; } - if (my_stat (l->name, &st)) - l->size = st.size; - l->f = f; - } - return l; + else + { + struct mystat st; + l = zfile_create (NULL); + l->mode = my_strdup (mode); + l->name = my_strdup (name); + l->zfdmask = mask; + if (!_tcsicmp (mode, _T("r"))) + { + f = my_opentext (l->name); + l->textmode = 1; + } + else + { + f = _tfopen (l->name, mode); + } + if (!f) + { + zfile_fclose (l); + return 0; + } + if (my_stat (l->name, &st)) + l->size = st.size; + l->f = f; + } + return l; } #define AF _T("%AMIGAFOREVERDATA%") static void manglefilename(TCHAR *out, const TCHAR *in) { - int i; + int i; - out[0] = 0; - if (!strncasecmp(in, AF, _tcslen(AF))) - _tcscpy (out, start_path_data); - if ((in[0] == '/' || in[0] == '\\') || (_tcslen(in) > 3 && in[1] == ':' && in[2] == '\\')) - out[0] = 0; - _tcscat(out, in); - for (i = 0; i < _tcslen (out); i++) { - // remove \\ or // in the middle of path - if ((out[i] == '/' || out[i] == '\\') && (out[i + 1] == '/' || out[i + 1] == '\\') && i > 0) { - memmove (out + i, out + i + 1, (_tcslen (out + i) + 1) * sizeof (TCHAR)); - i--; - continue; + out[0] = 0; + if (!strncasecmp(in, AF, _tcslen(AF))) + _tcscpy (out, start_path_data); + if ((in[0] == '/' || in[0] == '\\') || (_tcslen(in) > 3 && in[1] == ':' && in[2] == '\\')) + out[0] = 0; + _tcscat(out, in); + for (i = 0; i < _tcslen (out); i++) + { + // remove \\ or // in the middle of path + if ((out[i] == '/' || out[i] == '\\') && (out[i + 1] == '/' || out[i + 1] == '\\') && i > 0) + { + memmove (out + i, out + i + 1, (_tcslen (out + i) + 1) * sizeof (TCHAR)); + i--; + continue; + } } - } } int zfile_zopen (const TCHAR *name, zfile_callback zc, void *user) { - struct zfile *l; - int ztype; - TCHAR path[MAX_DPATH]; - - manglefilename(path, name); - l = zfile_fopen_2 (path, _T("rb"), ZFD_NORMAL); - if (!l) - return 0; - ztype = iszip (l); - if (ztype == 0) - zc (l, user); - else - archive_access_scan (l, zc, user, ztype); - zfile_fclose (l); - return 1; -} + struct zfile *l; + int ztype; + TCHAR path[MAX_DPATH]; + + manglefilename(path, name); + l = zfile_fopen_2 (path, _T("rb"), ZFD_NORMAL); + if (!l) + return 0; + ztype = iszip (l); + if (ztype == 0) + zc (l, user); + else + archive_access_scan (l, zc, user, ztype); + zfile_fclose (l); + return 1; +} /* * fopen() for a compressed file */ static struct zfile *zfile_fopen_x (const TCHAR *name, const TCHAR *mode, int mask, int index) { - int cnt = 10; - struct zfile *l, *l2; - TCHAR path[MAX_DPATH]; + int cnt = 10; + struct zfile *l, *l2; + TCHAR path[MAX_DPATH]; - if (_tcslen (name) == 0) - return NULL; - manglefilename(path, name); - l = zfile_fopen_2 (path, mode, mask); - if (!l) - return 0; - l2 = NULL; - while (cnt-- > 0) { - int rc; - zfile_fseek (l, 0, SEEK_SET); - l2 = zuncompress (NULL, l, 0, mask, &rc, index); - if (!l2) { - if (rc < 0) { - zfile_fclose (l); - return NULL; - } - zfile_fseek (l, 0, SEEK_SET); - break; - } else { - if (l2->parent == l) - l->opencnt--; - } - l = l2; - } - return l; + if (_tcslen (name) == 0) + return NULL; + manglefilename(path, name); + l = zfile_fopen_2 (path, mode, mask); + if (!l) + return 0; + l2 = NULL; + while (cnt-- > 0) + { + int rc; + zfile_fseek (l, 0, SEEK_SET); + l2 = zuncompress (NULL, l, 0, mask, &rc, index); + if (!l2) + { + if (rc < 0) + { + zfile_fclose (l); + return NULL; + } + zfile_fseek (l, 0, SEEK_SET); + break; + } + else + { + if (l2->parent == l) + l->opencnt--; + } + l = l2; + } + return l; } #ifdef _WIN32 static int isinternetfile (const TCHAR *name) { - if (!_tcsnicmp (name, _T("http://"), 7) || !_tcsnicmp (name, _T("https://"), 8)) - return 1; - if (!_tcsnicmp (name, _T("ftp://"), 6)) - return -1; - return 0; + if (!_tcsnicmp (name, _T("http://"), 7) || !_tcsnicmp (name, _T("https://"), 8)) + return 1; + if (!_tcsnicmp (name, _T("ftp://"), 6)) + return -1; + return 0; } #include #define INETBUFFERLEN 1000000 static struct zfile *zfile_fopen_internet (const TCHAR *name, const TCHAR *mode, int mask) { - static HINTERNET hi; - HINTERNET i = NULL; - TCHAR tmp[MAX_DPATH]; - DWORD ierr = 0; - DWORD outbuf = sizeof tmp / sizeof (TCHAR); - uae_u8 *data = 0; - int bufferlen = INETBUFFERLEN; - int datalen; - DWORD didread; - struct zfile *zf = NULL; + static HINTERNET hi; + HINTERNET i = NULL; + TCHAR tmp[MAX_DPATH]; + DWORD ierr = 0; + DWORD outbuf = sizeof tmp / sizeof (TCHAR); + uae_u8 *data = 0; + int bufferlen = INETBUFFERLEN; + int datalen; + DWORD didread; + struct zfile *zf = NULL; - if (_tcschr (mode, 'w') || _tcschr (mode, 'a')) - return NULL; - tmp[0] = 0; - if (!hi) { - hi = InternetOpen (WINUAEAPPNAME, INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY, NULL, NULL, 0); - if (hi == NULL) { - write_log (_T("InternetOpen() failed, %d\n"), GetLastError ()); - return NULL; - } - } - i = InternetOpenUrl (hi, name, NULL, 0, INTERNET_FLAG_NO_COOKIES, 0); - if (i == NULL) { - DWORD err = GetLastError (); - if (err == ERROR_INTERNET_EXTENDED_ERROR) - InternetGetLastResponseInfo (&ierr, tmp, &outbuf); - write_log (_T("InternetOpenUrl(%s) failed %d (%d,%s)\n"), name, err, ierr, tmp); - goto end; - } + if (_tcschr (mode, 'w') || _tcschr (mode, 'a')) + return NULL; + tmp[0] = 0; + if (!hi) + { + hi = InternetOpen (WINUAEAPPNAME, INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY, NULL, NULL, 0); + if (hi == NULL) + { + write_log (_T("InternetOpen() failed, %d\n"), GetLastError ()); + return NULL; + } + } + i = InternetOpenUrl (hi, name, NULL, 0, INTERNET_FLAG_NO_COOKIES, 0); + if (i == NULL) + { + DWORD err = GetLastError (); + if (err == ERROR_INTERNET_EXTENDED_ERROR) + InternetGetLastResponseInfo (&ierr, tmp, &outbuf); + write_log (_T("InternetOpenUrl(%s) failed %d (%d,%s)\n"), name, err, ierr, tmp); + goto end; + } - if (isinternetfile (name) > 0) { - DWORD statuscode; - DWORD hindex = 0; - DWORD size = sizeof statuscode; - if (!HttpQueryInfo (i, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &statuscode, &size, &hindex)) { - DWORD err = GetLastError (); - write_log (_T("HttpQueryInfo(%s) failed %d\n"), name, err); - goto end; - } - if (statuscode != 200) { - write_log (_T("HttpQueryInfo(%s)=%d\n"), name, statuscode); - goto end; - } - } + if (isinternetfile (name) > 0) + { + DWORD statuscode; + DWORD hindex = 0; + DWORD size = sizeof statuscode; + if (!HttpQueryInfo (i, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &statuscode, &size, &hindex)) + { + DWORD err = GetLastError (); + write_log (_T("HttpQueryInfo(%s) failed %d\n"), name, err); + goto end; + } + if (statuscode != 200) + { + write_log (_T("HttpQueryInfo(%s)=%d\n"), name, statuscode); + goto end; + } + } - if (mask & ZFD_CHECKONLY) { - zf = zfile_create (NULL); - goto end; - } + if (mask & ZFD_CHECKONLY) + { + zf = zfile_create (NULL); + goto end; + } - datalen = 0; - data = xmalloc (uae_u8, bufferlen); - for (;;) { - if (!InternetReadFile (i, data + datalen, INETBUFFERLEN, &didread)) { - DWORD err = GetLastError (); - if (err == ERROR_INTERNET_EXTENDED_ERROR) - InternetGetLastResponseInfo (&ierr, tmp, &outbuf); - write_log (_T("InternetReadFile(%s) failed %d (%d,%s)\n"), name, err, ierr, tmp); - break; - } - if (didread == 0) - break; - datalen += didread; - if (datalen > bufferlen - INETBUFFERLEN) { - bufferlen += INETBUFFERLEN; - data = xrealloc (uae_u8, data, bufferlen); - if (!data) { - datalen = 0; - break; - } - } - } - if (datalen > 0) { - zf = zfile_create (NULL); - if (zf) { - zf->size = datalen; - zf->data = data; - data = NULL; - } - } + datalen = 0; + data = xmalloc (uae_u8, bufferlen); + for (;;) + { + if (!InternetReadFile (i, data + datalen, INETBUFFERLEN, &didread)) + { + DWORD err = GetLastError (); + if (err == ERROR_INTERNET_EXTENDED_ERROR) + InternetGetLastResponseInfo (&ierr, tmp, &outbuf); + write_log (_T("InternetReadFile(%s) failed %d (%d,%s)\n"), name, err, ierr, tmp); + break; + } + if (didread == 0) + break; + datalen += didread; + if (datalen > bufferlen - INETBUFFERLEN) + { + bufferlen += INETBUFFERLEN; + data = xrealloc (uae_u8, data, bufferlen); + if (!data) + { + datalen = 0; + break; + } + } + } + if (datalen > 0) + { + zf = zfile_create (NULL); + if (zf) + { + zf->size = datalen; + zf->data = data; + data = NULL; + } + } end: - if (i) - InternetCloseHandle (i); - free (data); - return zf; + if (i) + InternetCloseHandle (i); + free (data); + return zf; } #endif static struct zfile *zfile_fopenx2 (const TCHAR *name, const TCHAR *mode, int mask, int index) { - struct zfile *f; - TCHAR tmp[MAX_DPATH]; + struct zfile *f; + TCHAR tmp[MAX_DPATH]; #ifdef _WIN32 - if (isinternetfile (name)) - return zfile_fopen_internet (name, mode, mask); + if (isinternetfile (name)) + return zfile_fopen_internet (name, mode, mask); #endif - f = zfile_fopen_x (name, mode, mask, index); - if (f) - return f; - if (_tcslen (name) <= 2) - return NULL; - if (name[1] != ':') { - _tcscpy (tmp, start_path_data); - _tcscat (tmp, name); - f = zfile_fopen_x (tmp, mode, mask, index); - if (f) - return f; - } + f = zfile_fopen_x (name, mode, mask, index); + if (f) + return f; + if (_tcslen (name) <= 2) + return NULL; + if (name[1] != ':') + { + _tcscpy (tmp, start_path_data); + _tcscat (tmp, name); + f = zfile_fopen_x (tmp, mode, mask, index); + if (f) + return f; + } #if 0 - name += 2; - if (name[0] == '/' || name[0] == '\\') - name++; - for (;;) { - _tcscpy (tmp, start_path_data); - _tcscpy (tmp, name); - f = zfile_fopen_x (tmp, mode, mask); - if (f) - return f; - while (name[0]) { - name++; - if (name[-1] == '/' || name[-1] == '\\') - break; - } - if (name[0] == 0) - break; - } + name += 2; + if (name[0] == '/' || name[0] == '\\') + name++; + for (;;) + { + _tcscpy (tmp, start_path_data); + _tcscpy (tmp, name); + f = zfile_fopen_x (tmp, mode, mask); + if (f) + return f; + while (name[0]) + { + name++; + if (name[-1] == '/' || name[-1] == '\\') + break; + } + if (name[0] == 0) + break; + } #endif - return NULL; + return NULL; } static struct zfile *zfile_fopenx (const TCHAR *name, const TCHAR *mode, int mask, int index) { - struct zfile *zf; - //write_log (_T("zfile_fopen('%s','%s',%08x,%d)\n"), name, mode, mask, index); - zf = zfile_fopenx2 (name, mode, mask, index); - //write_log (_T("=%p\n"), zf); - return zf; + struct zfile *zf; + //write_log (_T("zfile_fopen('%s','%s',%08x,%d)\n"), name, mode, mask, index); + zf = zfile_fopenx2 (name, mode, mask, index); + //write_log (_T("=%p\n"), zf); + return zf; } struct zfile *zfile_fopen (const TCHAR *name, const TCHAR *mode, int mask) { - return zfile_fopenx (name, mode, mask, 0); + return zfile_fopenx (name, mode, mask, 0); } struct zfile *zfile_fopen (const TCHAR *name, const TCHAR *mode) { - return zfile_fopenx (name, mode, 0, 0); + return zfile_fopenx (name, mode, 0, 0); } struct zfile *zfile_fopen (const TCHAR *name, const TCHAR *mode, int mask, int index) { - return zfile_fopenx (name, mode, mask, index); + return zfile_fopenx (name, mode, mask, index); } struct zfile *zfile_dup (struct zfile *zf) { - struct zfile *nzf; - if (!zf) - return NULL; - if (zf->archiveparent) - checkarchiveparent (zf); - if (zf->userdata) - return NULL; - if (!zf->data && zf->dataseek) { - nzf = zfile_create (zf); - } else if (zf->data) { - nzf = zfile_create (zf); - nzf->data = xmalloc (uae_u8, zf->size); - memcpy (nzf->data, zf->data, zf->size); - nzf->size = zf->size; - nzf->datasize = zf->datasize; - } else { - if (zf->zipname) { - nzf = openzip (zf->name); - if (nzf) - return nzf; + struct zfile *nzf; + if (!zf) + return NULL; + if (zf->archiveparent) + checkarchiveparent (zf); + if (zf->userdata) + return NULL; + if (!zf->data && zf->dataseek) + { + nzf = zfile_create (zf); } - FILE *ff = _tfopen (zf->name, zf->mode); - if (!ff) - return NULL; - nzf = zfile_create (zf); - nzf->f = ff; - } - zfile_fseek (nzf, zf->seek, SEEK_SET); - if (zf->name) - nzf->name = my_strdup (zf->name); - if (nzf->zipname) - nzf->zipname = my_strdup (zf->zipname); - nzf->zfdmask = zf->zfdmask; - nzf->mode = my_strdup (zf->mode); - nzf->size = zf->size; - return nzf; + else if (zf->data) + { + nzf = zfile_create (zf); + nzf->data = xmalloc (uae_u8, zf->size); + memcpy (nzf->data, zf->data, zf->size); + nzf->size = zf->size; + nzf->datasize = zf->datasize; + } + else + { + if (zf->zipname) + { + nzf = openzip (zf->name); + if (nzf) + return nzf; + } + FILE *ff = _tfopen (zf->name, zf->mode); + if (!ff) + return NULL; + nzf = zfile_create (zf); + nzf->f = ff; + } + zfile_fseek (nzf, zf->seek, SEEK_SET); + if (zf->name) + nzf->name = my_strdup (zf->name); + if (nzf->zipname) + nzf->zipname = my_strdup (zf->zipname); + nzf->zfdmask = zf->zfdmask; + nzf->mode = my_strdup (zf->mode); + nzf->size = zf->size; + return nzf; } int zfile_exists (const TCHAR *name) { - struct zfile *z; + struct zfile *z; - if (my_existsfile (name)) - return 1; - z = zfile_fopen (name, _T("rb"), ZFD_NORMAL | ZFD_CHECKONLY); - if (!z) - return 0; - zfile_fclose (z); - return 1; + if (my_existsfile (name)) + return 1; + z = zfile_fopen (name, _T("rb"), ZFD_NORMAL | ZFD_CHECKONLY); + if (!z) + return 0; + zfile_fclose (z); + return 1; } int zfile_iscompressed (struct zfile *z) { - return z->data ? 1 : 0; + return z->data ? 1 : 0; } struct zfile *zfile_fopen_empty (struct zfile *prev, const TCHAR *name, uae_u64 size) { - struct zfile *l; - l = zfile_create (prev); - l->name = my_strdup (name ? name : _T("")); - if (size) { - l->data = xcalloc (uae_u8, size); - if (!l->data) { - xfree (l); - return NULL; + struct zfile *l; + l = zfile_create (prev); + l->name = my_strdup (name ? name : _T("")); + if (size) + { + l->data = xcalloc (uae_u8, size); + if (!l->data) + { + xfree (l); + return NULL; + } + l->size = size; + l->datasize = size; + l->allocsize = size; } - l->size = size; - l->datasize = size; - l->allocsize = size; - } else { - l->data = xcalloc (uae_u8, 1000); - l->size = 0; - l->allocsize = 1000; - } - return l; + else + { + l->data = xcalloc (uae_u8, 1000); + l->size = 0; + l->allocsize = 1000; + } + return l; } struct zfile *zfile_fopen_empty (struct zfile *prev, const TCHAR *name) { - return zfile_fopen_empty (prev, name, 0); + return zfile_fopen_empty (prev, name, 0); } struct zfile *zfile_fopen_parent (struct zfile *z, const TCHAR *name, uae_u64 offset, uae_u64 size) { - struct zfile *l; + struct zfile *l; - if (z == NULL) - return NULL; - l = zfile_create (z); - if (name) - l->name = my_strdup (name); - else if (z->name) - l->name = my_strdup (z->name); - l->size = size; - l->datasize = size; - l->offset = offset; - for (;;) { - l->parent = z; - l->useparent = 1; - if (!z->parent) - break; - l->offset += z->offset; - z = z->parent; - } - z->opencnt++; - return l; + if (z == NULL) + return NULL; + l = zfile_create (z); + if (name) + l->name = my_strdup (name); + else if (z->name) + l->name = my_strdup (z->name); + l->size = size; + l->datasize = size; + l->offset = offset; + for (;;) + { + l->parent = z; + l->useparent = 1; + if (!z->parent) + break; + l->offset += z->offset; + z = z->parent; + } + z->opencnt++; + return l; } struct zfile *zfile_fopen_load_zfile (struct zfile *f) { - struct zfile *l = zfile_fopen_empty (f, f->name, f->size); - if (!l) - return NULL; - zfile_fseek (f, 0, SEEK_SET); - zfile_fread (l->data, f->size, 1, f); - return l; + struct zfile *l = zfile_fopen_empty (f, f->name, f->size); + if (!l) + return NULL; + zfile_fseek (f, 0, SEEK_SET); + zfile_fread (l->data, f->size, 1, f); + return l; } struct zfile *zfile_fopen_data (const TCHAR *name, uae_u64 size, const uae_u8 *data) { - struct zfile *l; - l = zfile_create (NULL); - l->name = my_strdup (name ? name : _T("")); - l->data = xmalloc (uae_u8, size); - l->size = size; - l->datasize = size; - memcpy (l->data, data, size); - return l; + struct zfile *l; + l = zfile_create (NULL); + l->name = my_strdup (name ? name : _T("")); + l->data = xmalloc (uae_u8, size); + l->size = size; + l->datasize = size; + memcpy (l->data, data, size); + return l; } uae_u8 *zfile_load_data (const TCHAR *name, const uae_u8 *data,int datalen, int *outlen) { - struct zfile *zf, *f; - int size; - uae_u8 *out; - - zf = zfile_fopen_data (name, datalen, data); - f = zfile_gunzip (zf); - size = f->datasize; - zfile_fseek (f, 0, SEEK_SET); - out = xmalloc (uae_u8, size); - zfile_fread (out, 1, size, f); - zfile_fclose (f); - *outlen = size; - return out; + struct zfile *zf, *f; + int size; + uae_u8 *out; + + zf = zfile_fopen_data (name, datalen, data); + f = zfile_gunzip (zf); + size = f->datasize; + zfile_fseek (f, 0, SEEK_SET); + out = xmalloc (uae_u8, size); + zfile_fread (out, 1, size, f); + zfile_fclose (f); + *outlen = size; + return out; } int zfile_truncate (struct zfile *z, uae_s64 size) { - if (z->data) { - if (z->size > size) { - z->size = size; - if (z->datasize > z->size) - z->datasize = z->size; - if (z->seek > z->size) - z->seek = z->size; - return 1; - } - return 0; - } else { - /* !!! */ - return 0; - } + if (z->data) + { + if (z->size > size) + { + z->size = size; + if (z->datasize > z->size) + z->datasize = z->size; + if (z->seek > z->size) + z->seek = z->size; + return 1; + } + return 0; + } + else + { + /* !!! */ + return 0; + } } uae_s64 zfile_size (struct zfile *z) { - return z->size; + return z->size; } uae_s64 zfile_ftell (struct zfile *z) { - if (z->data || z->dataseek || z->parent) - return z->seek; - return _ftelli64 (z->f); + if (z->data || z->dataseek || z->parent) + return z->seek; + return _ftelli64 (z->f); } uae_s64 zfile_fseek (struct zfile *z, uae_s64 offset, int mode) { - if (z->zfileseek) - return z->zfileseek (z, offset, mode); - if (z->data || z->dataseek || (z->parent && z->useparent)) { - int ret = 0; - switch (mode) - { - case SEEK_SET: - z->seek = offset; - break; - case SEEK_CUR: - z->seek += offset; - break; - case SEEK_END: - z->seek = z->size + offset; - break; - } - if (z->seek < 0) { - z->seek = 0; - ret = 1; - } - if (z->seek > z->size) { - z->seek = z->size; - ret = 1; - } - return ret; - } else { - return _fseeki64 (z->f, offset, mode); - } - return 1; + if (z->zfileseek) + return z->zfileseek (z, offset, mode); + if (z->data || z->dataseek || (z->parent && z->useparent)) + { + int ret = 0; + switch (mode) + { + case SEEK_SET: + z->seek = offset; + break; + case SEEK_CUR: + z->seek += offset; + break; + case SEEK_END: + z->seek = z->size + offset; + break; + } + if (z->seek < 0) + { + z->seek = 0; + ret = 1; + } + if (z->seek > z->size) + { + z->seek = z->size; + ret = 1; + } + return ret; + } + else + { + return _fseeki64 (z->f, offset, mode); + } + return 1; } size_t zfile_fread (void *b, size_t l1, size_t l2, struct zfile *z) { - if (z->zfileread) - return z->zfileread (b, l1, l2, z); - if (z->data) { - if (z->datasize < z->size && z->seek + l1 * l2 > z->datasize) { - if (z->archiveparent) { - archive_unpackzfile (z); - return zfile_fread (b, l1, l2, z); - } - return 0; - } - if (z->seek + l1 * l2 > z->size) { - if (l1) - l2 = (z->size - z->seek) / l1; - else - l2 = 0; - if (l2 < 0) - l2 = 0; - } - memcpy (b, z->data + z->offset + z->seek, l1 * l2); - z->seek += l1 * l2; - return l2; - } - if (z->parent && z->useparent) { - size_t ret; - uae_s64 v; - uae_s64 size = z->size; - v = z->seek; - if (v + l1 * l2 > size) { - if (l1) - l2 = (size - v) / l1; - else - l2 = 0; - if (l2 < 0) - l2 = 0; - } - zfile_fseek (z->parent, z->seek + z->offset, SEEK_SET); - v = z->seek; - ret = zfile_fread (b, l1, l2, z->parent); - z->seek = v + l1 * ret; - return ret; - } - return fread (b, l1, l2, z->f); + if (z->zfileread) + return z->zfileread (b, l1, l2, z); + if (z->data) + { + if (z->datasize < z->size && z->seek + l1 * l2 > z->datasize) + { + if (z->archiveparent) + { + archive_unpackzfile (z); + return zfile_fread (b, l1, l2, z); + } + return 0; + } + if (z->seek + l1 * l2 > z->size) + { + if (l1) + l2 = (z->size - z->seek) / l1; + else + l2 = 0; + if (l2 < 0) + l2 = 0; + } + memcpy (b, z->data + z->offset + z->seek, l1 * l2); + z->seek += l1 * l2; + return l2; + } + if (z->parent && z->useparent) + { + size_t ret; + uae_s64 v; + uae_s64 size = z->size; + v = z->seek; + if (v + l1 * l2 > size) + { + if (l1) + l2 = (size - v) / l1; + else + l2 = 0; + if (l2 < 0) + l2 = 0; + } + zfile_fseek (z->parent, z->seek + z->offset, SEEK_SET); + v = z->seek; + ret = zfile_fread (b, l1, l2, z->parent); + z->seek = v + l1 * ret; + return ret; + } + return fread (b, l1, l2, z->f); } size_t zfile_fwrite (const void *b, size_t l1, size_t l2, struct zfile *z) { - if (z->archiveparent) - return 0; - if (z->zfilewrite) - return z->zfilewrite (b, l1, l2, z); - if (z->parent && z->useparent) - return 0; - if (z->data) { - uae_s64 off = z->seek + l1 * l2; - if (z->allocsize == 0) { - write_log (_T("zfile_fwrite(data,%s) but allocsize=0!\n"), z->name); - return 0; - } - if (off > z->allocsize) { - if (z->allocsize < off) - z->allocsize = off; - z->allocsize += z->size / 2; - if (z->allocsize < 10000) - z->allocsize = 10000; - z->data = xrealloc (uae_u8, z->data, z->allocsize); - z->datasize = z->size = off; - } - memcpy (z->data + z->seek, b, l1 * l2); - z->seek += l1 * l2; - if (z->seek > z->size) - z->size = z->seek; - if (z->size > z->datasize) - z->datasize = z->size; - return l2; - } - return fwrite (b, l1, l2, z->f); + if (z->archiveparent) + return 0; + if (z->zfilewrite) + return z->zfilewrite (b, l1, l2, z); + if (z->parent && z->useparent) + return 0; + if (z->data) + { + uae_s64 off = z->seek + l1 * l2; + if (z->allocsize == 0) + { + write_log (_T("zfile_fwrite(data,%s) but allocsize=0!\n"), z->name); + return 0; + } + if (off > z->allocsize) + { + if (z->allocsize < off) + z->allocsize = off; + z->allocsize += z->size / 2; + if (z->allocsize < 10000) + z->allocsize = 10000; + z->data = xrealloc (uae_u8, z->data, z->allocsize); + z->datasize = z->size = off; + } + memcpy (z->data + z->seek, b, l1 * l2); + z->seek += l1 * l2; + if (z->seek > z->size) + z->size = z->seek; + if (z->size > z->datasize) + z->datasize = z->size; + return l2; + } + return fwrite (b, l1, l2, z->f); } size_t zfile_fputs (struct zfile *z, const TCHAR *s) { - char *s2 = ua (s); - size_t t; - t = zfile_fwrite (s2, strlen (s2), 1, z); - xfree (s2); - return t; + char *s2 = ua (s); + size_t t; + t = zfile_fwrite (s2, strlen (s2), 1, z); + xfree (s2); + return t; } char *zfile_fgetsa(char *s, int size, struct zfile *z) { - checkarchiveparent (z); - if (z->data) { - char *os = s; - int i; - for (i = 0; i < size - 1; i++) { - if (z->seek == z->size) { - if (i == 0) - return NULL; - break; - } - *s = z->data[z->seek++]; - if (*s == '\n') { - s++; - break; - } - s++; - } - *s = 0; - return os; - } else { - return fgets(s, size, z->f); - } + checkarchiveparent (z); + if (z->data) + { + char *os = s; + int i; + for (i = 0; i < size - 1; i++) + { + if (z->seek == z->size) + { + if (i == 0) + return NULL; + break; + } + *s = z->data[z->seek++]; + if (*s == '\n') + { + s++; + break; + } + s++; + } + *s = 0; + return os; + } + else + { + return fgets(s, size, z->f); + } } TCHAR *zfile_fgets (TCHAR *s, int size, struct zfile *z) { - checkarchiveparent (z); - if (z->data) { - char s2[MAX_DPATH]; - char *p = s2; - int i; - for (i = 0; i < size - 1; i++) { - if (z->seek == z->size) { - if (i == 0) - return NULL; - break; - } - *p = z->data[z->seek++]; - if (*p == 0 && i == 0) - return NULL; - if (*p == '\n' || *p == 0) { - p++; - break; - } - p++; - } - *p = 0; - if (size > strlen (s2) + 1) - size = strlen (s2) + 1; - au_copy (s, size, s2); - return s + size; - } else { - char s2[MAX_DPATH]; - char *s1; - s1 = fgets (s2, size, z->f); - if (!s1) - return NULL; - if (size > strlen (s2) + 1) - size = strlen (s2) + 1; - au_copy (s, size, s2); - return s + size; - } + checkarchiveparent (z); + if (z->data) + { + char s2[MAX_DPATH]; + char *p = s2; + int i; + for (i = 0; i < size - 1; i++) + { + if (z->seek == z->size) + { + if (i == 0) + return NULL; + break; + } + *p = z->data[z->seek++]; + if (*p == 0 && i == 0) + return NULL; + if (*p == '\n' || *p == 0) + { + p++; + break; + } + p++; + } + *p = 0; + if (size > strlen (s2) + 1) + size = strlen (s2) + 1; + au_copy (s, size, s2); + return s + size; + } + else + { + char s2[MAX_DPATH]; + char *s1; + s1 = fgets (s2, size, z->f); + if (!s1) + return NULL; + if (size > strlen (s2) + 1) + size = strlen (s2) + 1; + au_copy (s, size, s2); + return s + size; + } } int zfile_putc (int c, struct zfile *z) { - uae_u8 b = (uae_u8)c; - return zfile_fwrite (&b, 1, 1, z) ? 1 : -1; + uae_u8 b = (uae_u8)c; + return zfile_fwrite (&b, 1, 1, z) ? 1 : -1; } int zfile_getc (struct zfile *z) { - checkarchiveparent (z); - int out = -1; - if (z->data) { - if (z->seek < z->size) { - out = z->data[z->seek++]; - } - } else { - out = fgetc (z->f); - } - return out; + checkarchiveparent (z); + int out = -1; + if (z->data) + { + if (z->seek < z->size) + { + out = z->data[z->seek++]; + } + } + else + { + out = fgetc (z->f); + } + return out; } int zfile_ferror (struct zfile *z) { - return 0; + return 0; } uae_u8 *zfile_getdata (struct zfile *z, uae_s64 offset, int len) { - uae_s64 pos = zfile_ftell (z); - uae_u8 *b; - if (len < 0) { - zfile_fseek (z, 0, SEEK_END); - len = zfile_ftell (z); - zfile_fseek (z, 0, SEEK_SET); - } - b = xmalloc (uae_u8, len); - zfile_fseek (z, offset, SEEK_SET); - zfile_fread (b, len, 1, z); - zfile_fseek (z, pos, SEEK_SET); - return b; + uae_s64 pos = zfile_ftell (z); + uae_u8 *b; + if (len < 0) + { + zfile_fseek (z, 0, SEEK_END); + len = zfile_ftell (z); + zfile_fseek (z, 0, SEEK_SET); + } + b = xmalloc (uae_u8, len); + zfile_fseek (z, offset, SEEK_SET); + zfile_fread (b, len, 1, z); + zfile_fseek (z, pos, SEEK_SET); + return b; } int zfile_zuncompress (void *dst, int dstsize, struct zfile *src, int srcsize) { - z_stream zs; - int v; - uae_u8 inbuf[4096]; - int incnt; + z_stream zs; + int v; + uae_u8 inbuf[4096]; + int incnt; - memset (&zs, 0, sizeof(zs)); - if (inflateInit_ (&zs, ZLIB_VERSION, sizeof(z_stream)) != Z_OK) - return 0; - zs.next_out = (Bytef*)dst; - zs.avail_out = dstsize; - incnt = 0; - v = Z_OK; - while (v == Z_OK && zs.avail_out > 0) { - if (zs.avail_in == 0) { - int left = srcsize - incnt; - if (left == 0) - break; - if (left > sizeof (inbuf)) - left = sizeof (inbuf); - zs.next_in = inbuf; - zs.avail_in = zfile_fread (inbuf, 1, left, src); - incnt += left; + memset (&zs, 0, sizeof(zs)); + if (inflateInit_ (&zs, ZLIB_VERSION, sizeof(z_stream)) != Z_OK) + return 0; + zs.next_out = (Bytef*)dst; + zs.avail_out = dstsize; + incnt = 0; + v = Z_OK; + while (v == Z_OK && zs.avail_out > 0) + { + if (zs.avail_in == 0) + { + int left = srcsize - incnt; + if (left == 0) + break; + if (left > sizeof (inbuf)) + left = sizeof (inbuf); + zs.next_in = inbuf; + zs.avail_in = zfile_fread (inbuf, 1, left, src); + incnt += left; + } + v = inflate (&zs, 0); } - v = inflate (&zs, 0); - } - inflateEnd (&zs); - return 0; + inflateEnd (&zs); + return 0; } int zfile_zcompress (struct zfile *f, void *src, int size) { - int v; - z_stream zs; - uae_u8 outbuf[4096]; + int v; + z_stream zs; + uae_u8 outbuf[4096]; - memset (&zs, 0, sizeof (zs)); - if (deflateInit_ (&zs, Z_DEFAULT_COMPRESSION, ZLIB_VERSION, sizeof(z_stream)) != Z_OK) - return 0; - zs.next_in = (Bytef*)src; - zs.avail_in = size; - v = Z_OK; - while (v == Z_OK) { - zs.next_out = outbuf; - zs.avail_out = sizeof (outbuf); - v = deflate(&zs, Z_NO_FLUSH | Z_FINISH); - if (sizeof(outbuf) - zs.avail_out > 0) - zfile_fwrite (outbuf, 1, sizeof (outbuf) - zs.avail_out, f); - } - deflateEnd(&zs); - return zs.total_out; + memset (&zs, 0, sizeof (zs)); + if (deflateInit_ (&zs, Z_DEFAULT_COMPRESSION, ZLIB_VERSION, sizeof(z_stream)) != Z_OK) + return 0; + zs.next_in = (Bytef*)src; + zs.avail_in = size; + v = Z_OK; + while (v == Z_OK) + { + zs.next_out = outbuf; + zs.avail_out = sizeof (outbuf); + v = deflate(&zs, Z_NO_FLUSH | Z_FINISH); + if (sizeof(outbuf) - zs.avail_out > 0) + zfile_fwrite (outbuf, 1, sizeof (outbuf) - zs.avail_out, f); + } + deflateEnd(&zs); + return zs.total_out; } TCHAR *zfile_getname (struct zfile *f) { - return f ? f->name : NULL; + return f ? f->name : NULL; } TCHAR *zfile_getfilename (struct zfile *f) { - int i; - if (f->name == NULL) - return NULL; - for (i = _tcslen (f->name) - 1; i >= 0; i--) { - if (f->name[i] == '\\' || f->name[i] == '/' || f->name[i] == ':') { - i++; - return &f->name[i]; - } - } - return f->name; + int i; + if (f->name == NULL) + return NULL; + for (i = _tcslen (f->name) - 1; i >= 0; i--) + { + if (f->name[i] == '\\' || f->name[i] == '/' || f->name[i] == ':') + { + i++; + return &f->name[i]; + } + } + return f->name; } uae_u32 zfile_crc32 (struct zfile *f) { - uae_u8 *p; - int pos, size; - uae_u32 crc; + uae_u8 *p; + int pos, size; + uae_u32 crc; - if (!f) - return 0; - if (f->data) - return get_crc32 (f->data, f->size); - pos = zfile_ftell (f); - zfile_fseek (f, 0, SEEK_END); - size = zfile_ftell (f); - p = xmalloc (uae_u8, size); - if (!p) - return 0; - memset (p, 0, size); - zfile_fseek (f, 0, SEEK_SET); - zfile_fread (p, 1, size, f); - zfile_fseek (f, pos, SEEK_SET); - crc = get_crc32 (p, size); - xfree (p); - return crc; + if (!f) + return 0; + if (f->data) + return get_crc32 (f->data, f->size); + pos = zfile_ftell (f); + zfile_fseek (f, 0, SEEK_END); + size = zfile_ftell (f); + p = xmalloc (uae_u8, size); + if (!p) + return 0; + memset (p, 0, size); + zfile_fseek (f, 0, SEEK_SET); + zfile_fread (p, 1, size, f); + zfile_fseek (f, pos, SEEK_SET); + crc = get_crc32 (p, size); + xfree (p); + return crc; } static struct zvolume *zvolume_list; static void recurparent (TCHAR *newpath, struct znode *zn, int recurse) { - if (zn->parent && (&zn->volume->root != zn->parent || zn->volume->parentz == NULL)) { - if (&zn->volume->root == zn->parent && zn->volume->parentz == NULL && !_tcscmp (zn->name, zn->parent->name)) - goto end; - recurparent (newpath, zn->parent, recurse); - } else { - struct zvolume *zv = zn->volume; - if (zv->parentz && recurse) - recurparent (newpath, zv->parentz, recurse); - } + if (zn->parent && (&zn->volume->root != zn->parent || zn->volume->parentz == NULL)) + { + if (&zn->volume->root == zn->parent && zn->volume->parentz == NULL && !_tcscmp (zn->name, zn->parent->name)) + goto end; + recurparent (newpath, zn->parent, recurse); + } + else + { + struct zvolume *zv = zn->volume; + if (zv->parentz && recurse) + recurparent (newpath, zv->parentz, recurse); + } end: - if (newpath[0]) - _tcscat (newpath, FSDB_DIR_SEPARATOR_S); - _tcscat (newpath, zn->name); + if (newpath[0]) + _tcscat (newpath, FSDB_DIR_SEPARATOR_S); + _tcscat (newpath, zn->name); } static struct znode *znode_alloc(struct znode *parent, const TCHAR *name) { - TCHAR fullpath[MAX_DPATH]; - TCHAR tmpname[MAX_DPATH]; - struct znode *zn = xcalloc (struct znode, 1); - struct znode *zn2; + TCHAR fullpath[MAX_DPATH]; + TCHAR tmpname[MAX_DPATH]; + struct znode *zn = xcalloc (struct znode, 1); + struct znode *zn2; - _tcscpy (tmpname, name); - zn2 = parent->child; - while (zn2) { - if (!_tcscmp (zn2->name, tmpname)) { - TCHAR *ext = _tcsrchr (tmpname, '.'); - if (ext && ext > tmpname + 2 && ext[-2] == '.') { - ext[-1]++; - } else if (ext) { - memmove (ext + 2, ext, (_tcslen (ext) + 1) * sizeof (TCHAR)); - ext[0] = '.'; - ext[1] = '1'; - } else { - int len = _tcslen (tmpname); - tmpname[len] = '.'; - tmpname[len + 1] = '1'; - tmpname[len + 2] = 0; - } - zn2 = parent->child; - continue; - } - zn2 = zn2->sibling; - } + _tcscpy (tmpname, name); + zn2 = parent->child; + while (zn2) + { + if (!_tcscmp (zn2->name, tmpname)) + { + TCHAR *ext = _tcsrchr (tmpname, '.'); + if (ext && ext > tmpname + 2 && ext[-2] == '.') + { + ext[-1]++; + } + else if (ext) + { + memmove (ext + 2, ext, (_tcslen (ext) + 1) * sizeof (TCHAR)); + ext[0] = '.'; + ext[1] = '1'; + } + else + { + int len = _tcslen (tmpname); + tmpname[len] = '.'; + tmpname[len + 1] = '1'; + tmpname[len + 2] = 0; + } + zn2 = parent->child; + continue; + } + zn2 = zn2->sibling; + } - fullpath[0] = 0; - recurparent (fullpath, parent, FALSE); - _tcscat (fullpath, FSDB_DIR_SEPARATOR_S); - _tcscat (fullpath, tmpname); + fullpath[0] = 0; + recurparent (fullpath, parent, FALSE); + _tcscat (fullpath, FSDB_DIR_SEPARATOR_S); + _tcscat (fullpath, tmpname); #ifdef ZFILE_DEBUG - write_log (_T("znode_alloc vol='%s' parent='%s' name='%s'\n"), parent->volume->root.name, parent->name, name); + write_log (_T("znode_alloc vol='%s' parent='%s' name='%s'\n"), parent->volume->root.name, parent->name, name); #endif - zn->fullname = my_strdup(fullpath); - zn->name = my_strdup(tmpname); - zn->volume = parent->volume; - zn->volume->last->next = zn; - zn->prev = zn->volume->last; - zn->volume->last = zn; - return zn; + zn->fullname = my_strdup(fullpath); + zn->name = my_strdup(tmpname); + zn->volume = parent->volume; + zn->volume->last->next = zn; + zn->prev = zn->volume->last; + zn->volume->last = zn; + return zn; } static struct znode *znode_alloc_child(struct znode *parent, const TCHAR *name) { - struct znode *zn = znode_alloc(parent, name); + struct znode *zn = znode_alloc(parent, name); - if (!parent->child) { - parent->child = zn; - } else { - struct znode *pn = parent->child; - while (pn->sibling) - pn = pn->sibling; - pn->sibling = zn; - } - zn->parent = parent; - return zn; + if (!parent->child) + { + parent->child = zn; + } + else + { + struct znode *pn = parent->child; + while (pn->sibling) + pn = pn->sibling; + pn->sibling = zn; + } + zn->parent = parent; + return zn; } static struct znode *znode_alloc_sibling(struct znode *sibling, const TCHAR *name) { - struct znode *zn = znode_alloc(sibling->parent, name); + struct znode *zn = znode_alloc(sibling->parent, name); - if (!sibling->sibling) { - sibling->sibling = zn; - } else { - struct znode *pn = sibling->sibling; - while (pn->sibling) - pn = pn->sibling; - pn->sibling = zn; - } - zn->parent = sibling->parent; - return zn; + if (!sibling->sibling) + { + sibling->sibling = zn; + } + else + { + struct znode *pn = sibling->sibling; + while (pn->sibling) + pn = pn->sibling; + pn->sibling = zn; + } + zn->parent = sibling->parent; + return zn; } static void zvolume_addtolist(struct zvolume *zv) { - if (!zv) - return; - if (!zvolume_list) { - zvolume_list = zv; - } else { - struct zvolume *v = zvolume_list; - while (v->next) - v = v->next; - v->next = zv; - } + if (!zv) + return; + if (!zvolume_list) + { + zvolume_list = zv; + } + else + { + struct zvolume *v = zvolume_list; + while (v->next) + v = v->next; + v->next = zv; + } } static struct zvolume *zvolume_alloc_2 (const TCHAR *name, struct zfile *z, unsigned int id, void *handle, const TCHAR *volname) { - struct zvolume *zv = xcalloc (struct zvolume, 1); - struct znode *root; - uae_s64 pos; - int i; + struct zvolume *zv = xcalloc (struct zvolume, 1); + struct znode *root; + uae_s64 pos; + int i; - root = &zv->root; - zv->last = root; - zv->archive = z; - zv->handle = handle; - zv->id = id; - zv->blocks = 4; - if (z) - zv->zfdmask = z->zfdmask; - root->volume = zv; - root->type = ZNODE_DIR; - i = 0; - if (name[0] != '/' && name[0] != '\\' && _tcsncmp (name, _T(".\\"), 2) != 0) { - if (_tcschr (name, ':') == 0) { - for (i = _tcslen (name) - 1; i > 0; i--) { - if (name[i] == FSDB_DIR_SEPARATOR) { - i++; - break; - } - } - } - } - root->name = my_strdup (name + i); - root->fullname = my_strdup(name); + root = &zv->root; + zv->last = root; + zv->archive = z; + zv->handle = handle; + zv->id = id; + zv->blocks = 4; + if (z) + zv->zfdmask = z->zfdmask; + root->volume = zv; + root->type = ZNODE_DIR; + i = 0; + if (name[0] != '/' && name[0] != '\\' && _tcsncmp (name, _T(".\\"), 2) != 0) + { + if (_tcschr (name, ':') == 0) + { + for (i = _tcslen (name) - 1; i > 0; i--) + { + if (name[i] == FSDB_DIR_SEPARATOR) + { + i++; + break; + } + } + } + } + root->name = my_strdup (name + i); + root->fullname = my_strdup(name); #ifdef ZFILE_DEBUG - write_log (_T("created zvolume: '%s' (%s)\n"), root->name, root->fullname); + write_log (_T("created zvolume: '%s' (%s)\n"), root->name, root->fullname); #endif - if (volname) - zv->volumename = my_strdup (volname); - if (z) { - pos = zfile_ftell(z); - zfile_fseek(z, 0, SEEK_END); - zv->archivesize = zfile_ftell(z); - zfile_fseek(z, pos, SEEK_SET); - } - return zv; + if (volname) + zv->volumename = my_strdup (volname); + if (z) + { + pos = zfile_ftell(z); + zfile_fseek(z, 0, SEEK_END); + zv->archivesize = zfile_ftell(z); + zfile_fseek(z, pos, SEEK_SET); + } + return zv; } struct zvolume *zvolume_alloc (struct zfile *z, unsigned int id, void *handle, const TCHAR *volumename) { - return zvolume_alloc_2 (zfile_getname (z), z, id, handle, volumename); + return zvolume_alloc_2 (zfile_getname (z), z, id, handle, volumename); } struct zvolume *zvolume_alloc_nofile (const TCHAR *name, unsigned int id, void *handle, const TCHAR *volumename) { - return zvolume_alloc_2 (name, NULL, id, handle, volumename); + return zvolume_alloc_2 (name, NULL, id, handle, volumename); } struct zvolume *zvolume_alloc_empty (struct zvolume *prev, const TCHAR *name) { - struct zvolume *zv = zvolume_alloc_2(name, 0, 0, 0, NULL); - if (!zv) - return NULL; - if (prev) - zv->zfdmask = prev->zfdmask; - return zv; + struct zvolume *zv = zvolume_alloc_2(name, 0, 0, 0, NULL); + if (!zv) + return NULL; + if (prev) + zv->zfdmask = prev->zfdmask; + return zv; } static struct zvolume *get_zvolume(const TCHAR *path) { - struct zvolume *zv = zvolume_list; - while (zv) { - TCHAR *s = zfile_getname (zv->archive); - if (!s) - s = zv->root.name; - if (_tcslen (path) >= _tcslen (s) && !memcmp (path, s, _tcslen (s) * sizeof (TCHAR))) - return zv; - zv = zv->next; - } - return NULL; + struct zvolume *zv = zvolume_list; + while (zv) + { + TCHAR *s = zfile_getname (zv->archive); + if (!s) + s = zv->root.name; + if (_tcslen (path) >= _tcslen (s) && !memcmp (path, s, _tcslen (s) * sizeof (TCHAR))) + return zv; + zv = zv->next; + } + return NULL; } static struct zvolume *zfile_fopen_archive_ext (struct znode *parent, struct zfile *zf, int flags) { - struct zvolume *zv = NULL; - TCHAR *name = zfile_getname (zf); - TCHAR *ext; - uae_u8 header[7]; + struct zvolume *zv = NULL; + TCHAR *name = zfile_getname (zf); + TCHAR *ext; + uae_u8 header[7]; - if (!name) - return NULL; + if (!name) + return NULL; - memset (header, 0, sizeof (header)); - zfile_fseek (zf, 0, SEEK_SET); - zfile_fread (header, sizeof (header), 1, zf); - zfile_fseek (zf, 0, SEEK_SET); + memset (header, 0, sizeof (header)); + zfile_fseek (zf, 0, SEEK_SET); + zfile_fread (header, sizeof (header), 1, zf); + zfile_fseek (zf, 0, SEEK_SET); - ext = _tcsrchr (name, '.'); - if (ext != NULL) { - ext++; - if (flags & ZFD_ARCHIVE) { + ext = _tcsrchr (name, '.'); + if (ext != NULL) + { + ext++; + if (flags & ZFD_ARCHIVE) + { #ifdef A_LHA - if (strcasecmp (ext, _T("lha")) == 0 || strcasecmp (ext, _T("lzh")) == 0) - zv = archive_directory_lha (zf); + if (strcasecmp (ext, _T("lha")) == 0 || strcasecmp (ext, _T("lzh")) == 0) + zv = archive_directory_lha (zf); #endif #ifdef A_ZIP - if (strcasecmp (ext, _T("zip")) == 0) - zv = archive_directory_zip (zf); + if (strcasecmp (ext, _T("zip")) == 0) + zv = archive_directory_zip (zf); #endif #ifdef A_7Z - if (strcasecmp (ext, _T("7z")) == 0) - zv = archive_directory_7z (zf); + if (strcasecmp (ext, _T("7z")) == 0) + zv = archive_directory_7z (zf); #endif #ifdef A_LZX - if (strcasecmp (ext, _T("lzx")) == 0) - zv = archive_directory_lzx (zf); + if (strcasecmp (ext, _T("lzx")) == 0) + zv = archive_directory_lzx (zf); #endif #ifdef A_RAR - if (strcasecmp (ext, _T("rar")) == 0) - zv = archive_directory_rar (zf); + if (strcasecmp (ext, _T("rar")) == 0) + zv = archive_directory_rar (zf); #endif - if (strcasecmp (ext, _T("tar")) == 0) - zv = archive_directory_tar (zf); + if (strcasecmp (ext, _T("tar")) == 0) + zv = archive_directory_tar (zf); + } + if (flags & ZFD_ADF) + { + if (strcasecmp (ext, _T("adf")) == 0 && !memcmp (header, "DOS", 3)) + zv = archive_directory_adf (parent, zf); + } + if (flags & ZFD_HD) + { + if (strcasecmp (ext, _T("hdf")) == 0) + { + if (!memcmp (header, "RDSK", 4)) + zv = archive_directory_rdb (zf); + else + zv = archive_directory_adf (parent, zf); + } + } } - if (flags & ZFD_ADF) { - if (strcasecmp (ext, _T("adf")) == 0 && !memcmp (header, "DOS", 3)) - zv = archive_directory_adf (parent, zf); - } - if (flags & ZFD_HD) { - if (strcasecmp (ext, _T("hdf")) == 0) { - if (!memcmp (header, "RDSK", 4)) - zv = archive_directory_rdb (zf); - else - zv = archive_directory_adf (parent, zf); - } - } - } - return zv; + return zv; } static struct zvolume *zfile_fopen_archive_data (struct znode *parent, struct zfile *zf, int flags) { - struct zvolume *zv = NULL; - uae_u8 header[32]; + struct zvolume *zv = NULL; + uae_u8 header[32]; - memset (header, 0, sizeof (header)); - zfile_fread (header, sizeof (header), 1, zf); - zfile_fseek (zf, 0, SEEK_SET); - if (flags & ZFD_ARCHIVE) { + memset (header, 0, sizeof (header)); + zfile_fread (header, sizeof (header), 1, zf); + zfile_fseek (zf, 0, SEEK_SET); + if (flags & ZFD_ARCHIVE) + { #ifdef A_ZIP - if (header[0] == 'P' && header[1] == 'K') - zv = archive_directory_zip (zf); + if (header[0] == 'P' && header[1] == 'K') + zv = archive_directory_zip (zf); #endif #ifdef A_RAR - if (header[0] == 'R' && header[1] == 'a' && header[2] == 'r' && header[3] == '!') - zv = archive_directory_rar (zf); + if (header[0] == 'R' && header[1] == 'a' && header[2] == 'r' && header[3] == '!') + zv = archive_directory_rar (zf); #endif #ifdef A_LZX - if (header[0] == 'L' && header[1] == 'Z' && header[2] == 'X') - zv = archive_directory_lzx (zf); + if (header[0] == 'L' && header[1] == 'Z' && header[2] == 'X') + zv = archive_directory_lzx (zf); #endif #ifdef A_LHA - if (header[2] == '-' && header[3] == 'l' && header[4] == 'h' && header[6] == '-') - zv = archive_directory_lha (zf); + if (header[2] == '-' && header[3] == 'l' && header[4] == 'h' && header[6] == '-') + zv = archive_directory_lha (zf); #endif - } - if (flags & ZFD_ADF) { - if (header[0] == 'D' && header[1] == 'O' && header[2] == 'S' && (header[3] >= 0 && header[3] <= 7)) - zv = archive_directory_adf (parent, zf); - } - if (flags & ZFD_HD) { - if (header[0] == 'R' && header[1] == 'D' && header[2] == 'S' && header[3] == 'K') - zv = archive_directory_rdb (zf); - if (isfat (header)) - zv = archive_directory_fat (zf); - } - return zv; + } + if (flags & ZFD_ADF) + { + if (header[0] == 'D' && header[1] == 'O' && header[2] == 'S' && (header[3] >= 0 && header[3] <= 7)) + zv = archive_directory_adf (parent, zf); + } + if (flags & ZFD_HD) + { + if (header[0] == 'R' && header[1] == 'D' && header[2] == 'S' && header[3] == 'K') + zv = archive_directory_rdb (zf); + if (isfat (header)) + zv = archive_directory_fat (zf); + } + return zv; } static struct znode *get_znode (struct zvolume *zv, const TCHAR *ppath, int); static void zfile_fopen_archive_recurse2 (struct zvolume *zv, struct znode *zn, int flags) { - struct zvolume *zvnew; - struct znode *zndir; - TCHAR tmp[MAX_DPATH]; + struct zvolume *zvnew; + struct znode *zndir; + TCHAR tmp[MAX_DPATH]; - _stprintf (tmp, _T("%s.DIR"), zn->fullname + _tcslen (zv->root.name) + 1); - zndir = get_znode(zv, tmp, TRUE); - if (!zndir) { - struct zarchive_info zai = { 0 }; - zvnew = zvolume_alloc_empty (zv, tmp); - zvnew->parentz = zn; - zai.name = tmp; - zai.tv.tv_sec = zn->mtime.tv_sec; - zai.tv.tv_usec = zn->mtime.tv_usec; - zai.comment = zv->volumename; - if (zn->flags < 0) - zai.flags = zn->flags; - zndir = zvolume_adddir_abs(zv, &zai); - zndir->type = ZNODE_VDIR; - zndir->vfile = zn; - zndir->vchild = zvnew; - zvnew->parent = zv; - zndir->offset = zn->offset; - zndir->offset2 = zn->offset2; - } + _stprintf (tmp, _T("%s.DIR"), zn->fullname + _tcslen (zv->root.name) + 1); + zndir = get_znode(zv, tmp, TRUE); + if (!zndir) + { + struct zarchive_info zai = { 0 }; + zvnew = zvolume_alloc_empty (zv, tmp); + zvnew->parentz = zn; + zai.name = tmp; + zai.tv.tv_sec = zn->mtime.tv_sec; + zai.tv.tv_usec = zn->mtime.tv_usec; + zai.comment = zv->volumename; + if (zn->flags < 0) + zai.flags = zn->flags; + zndir = zvolume_adddir_abs(zv, &zai); + zndir->type = ZNODE_VDIR; + zndir->vfile = zn; + zndir->vchild = zvnew; + zvnew->parent = zv; + zndir->offset = zn->offset; + zndir->offset2 = zn->offset2; + } } static int zfile_fopen_archive_recurse (struct zvolume *zv, int flags) { - struct znode *zn; - int i, added; + struct znode *zn; + int i, added; - added = 0; - zn = zv->root.child; - while (zn) { - int done = 0; - struct zfile *z; - TCHAR *ext = _tcsrchr (zn->name, '.'); - if (ext && !zn->vchild && zn->type == ZNODE_FILE) { - for (i = 0; !done && archive_extensions[i]; i++) { - if (!strcasecmp (ext + 1, archive_extensions[i])) { - zfile_fopen_archive_recurse2 (zv, zn, flags); - done = 1; - } - } - } - if (!done) { - z = archive_getzfile (zn, zv->method, 0); - if (z && iszip (z)) - zfile_fopen_archive_recurse2 (zv, zn, flags); - } - zn = zn->next; - } - return 0; + added = 0; + zn = zv->root.child; + while (zn) + { + int done = 0; + struct zfile *z; + TCHAR *ext = _tcsrchr (zn->name, '.'); + if (ext && !zn->vchild && zn->type == ZNODE_FILE) + { + for (i = 0; !done && archive_extensions[i]; i++) + { + if (!strcasecmp (ext + 1, archive_extensions[i])) + { + zfile_fopen_archive_recurse2 (zv, zn, flags); + done = 1; + } + } + } + if (!done) + { + z = archive_getzfile (zn, zv->method, 0); + if (z && iszip (z)) + zfile_fopen_archive_recurse2 (zv, zn, flags); + } + zn = zn->next; + } + return 0; } static struct zvolume *prepare_recursive_volume (struct zvolume *zv, const TCHAR *path, int flags) { - struct zfile *zf = NULL; - struct zvolume *zvnew = NULL; - int done = 0; + struct zfile *zf = NULL; + struct zvolume *zvnew = NULL; + int done = 0; #ifdef ZFILE_DEBUG - write_log (_T("unpacking '%s'\n"), path); + write_log (_T("unpacking '%s'\n"), path); #endif - zf = zfile_open_archive (path, 0); - if (!zf) - goto end; - zvnew = zfile_fopen_archive_ext (zv->parentz, zf, flags); - if (!zvnew && !(flags & ZFD_NORECURSE)) { + zf = zfile_open_archive (path, 0); + if (!zf) + goto end; + zvnew = zfile_fopen_archive_ext (zv->parentz, zf, flags); + if (!zvnew && !(flags & ZFD_NORECURSE)) + { #if 1 - zvnew = archive_directory_plain (zf); - if (zvnew) { - zfile_fopen_archive_recurse (zvnew, flags); - done = 1; - } + zvnew = archive_directory_plain (zf); + if (zvnew) + { + zfile_fopen_archive_recurse (zvnew, flags); + done = 1; + } #else - int rc; - int index; - struct zfile *zf2, *zf3; - TCHAR oldname[MAX_DPATH]; - _tcscpy (oldname, zf->name); - index = 0; - for (;;) { - zf3 = zfile_dup (zf); - if (!zf3) - break; - zf2 = zuncompress (&zv->root, zf3, 0, ZFD_ALL, &rc, index); - if (zf2) { - zvnew = archive_directory_plain (zf2); - if (zvnew) { - zvnew->parent = zv->parent; - zfile_fopen_archive_recurse (zvnew); - done = 1; - } - } else { - zfile_fclose (zf3); - if (rc <= 0) - break; - } - index++; - break; // TODO - } + int rc; + int index; + struct zfile *zf2, *zf3; + TCHAR oldname[MAX_DPATH]; + _tcscpy (oldname, zf->name); + index = 0; + for (;;) + { + zf3 = zfile_dup (zf); + if (!zf3) + break; + zf2 = zuncompress (&zv->root, zf3, 0, ZFD_ALL, &rc, index); + if (zf2) + { + zvnew = archive_directory_plain (zf2); + if (zvnew) + { + zvnew->parent = zv->parent; + zfile_fopen_archive_recurse (zvnew); + done = 1; + } + } + else + { + zfile_fclose (zf3); + if (rc <= 0) + break; + } + index++; + break; // TODO + } #endif - } else if (zvnew) { - zvnew->parent = zv->parent; - zfile_fopen_archive_recurse (zvnew, flags); - done = 1; - } - if (!done) - goto end; - zfile_fclose_archive(zv); - return zvnew; + } + else if (zvnew) + { + zvnew->parent = zv->parent; + zfile_fopen_archive_recurse (zvnew, flags); + done = 1; + } + if (!done) + goto end; + zfile_fclose_archive(zv); + return zvnew; end: - write_log (_T("unpack '%s' failed\n"), path); - zfile_fclose_archive (zvnew); - zfile_fclose(zf); - return NULL; + write_log (_T("unpack '%s' failed\n"), path); + zfile_fclose_archive (zvnew); + zfile_fclose(zf); + return NULL; } static struct znode *get_znode (struct zvolume *zv, const TCHAR *ppath, int recurse) { - struct znode *zn; - TCHAR path[MAX_DPATH], zpath[MAX_DPATH]; + struct znode *zn; + TCHAR path[MAX_DPATH], zpath[MAX_DPATH]; - if (!zv) - return NULL; - _tcscpy (path, ppath); - zn = &zv->root; - while (zn) { - zpath[0] = 0; - recurparent (zpath, zn, recurse); - if (zn->type == ZNODE_FILE) { - if (!_tcsicmp (zpath, path)) - return zn; - } else { - int len = _tcslen (zpath); - if (_tcslen (path) >= len && (path[len] == 0 || path[len] == FSDB_DIR_SEPARATOR) && !_tcsnicmp (zpath, path, len)) { - if (path[len] == 0) - return zn; - if (zn->vchild) { - /* jump to separate tree, recursive archives */ - struct zvolume *zvdeep = zn->vchild; - if (zvdeep->archive == NULL) { - TCHAR newpath[MAX_DPATH]; - newpath[0] = 0; - recurparent (newpath, zn, recurse); + if (!zv) + return NULL; + _tcscpy (path, ppath); + zn = &zv->root; + while (zn) + { + zpath[0] = 0; + recurparent (zpath, zn, recurse); + if (zn->type == ZNODE_FILE) + { + if (!_tcsicmp (zpath, path)) + return zn; + } + else + { + int len = _tcslen (zpath); + if (_tcslen (path) >= len && (path[len] == 0 || path[len] == FSDB_DIR_SEPARATOR) && !_tcsnicmp (zpath, path, len)) + { + if (path[len] == 0) + return zn; + if (zn->vchild) + { + /* jump to separate tree, recursive archives */ + struct zvolume *zvdeep = zn->vchild; + if (zvdeep->archive == NULL) + { + TCHAR newpath[MAX_DPATH]; + newpath[0] = 0; + recurparent (newpath, zn, recurse); #ifdef ZFILE_DEBUG - write_log (_T("'%s'\n"), newpath); + write_log (_T("'%s'\n"), newpath); #endif - zvdeep = prepare_recursive_volume (zvdeep, newpath, ZFD_ALL); - if (!zvdeep) { - write_log (_T("failed to unpack '%s'\n"), newpath); - return NULL; - } - /* replace dummy empty volume with real volume */ - zn->vchild = zvdeep; - zvdeep->parentz = zn; - } - zn = zvdeep->root.child; - } else { - zn = zn->child; - } - continue; - } - } - zn = zn->sibling; - } - return NULL; + zvdeep = prepare_recursive_volume (zvdeep, newpath, ZFD_ALL); + if (!zvdeep) + { + write_log (_T("failed to unpack '%s'\n"), newpath); + return NULL; + } + /* replace dummy empty volume with real volume */ + zn->vchild = zvdeep; + zvdeep->parentz = zn; + } + zn = zvdeep->root.child; + } + else + { + zn = zn->child; + } + continue; + } + } + zn = zn->sibling; + } + return NULL; } static void addvolumesize (struct zvolume *zv, uae_s64 size) { - unsigned int blocks = (size + 511) / 512; + unsigned int blocks = (size + 511) / 512; - if (blocks == 0) - blocks++; - while (zv) { - zv->blocks += blocks; - zv->size += size; - zv = zv->parent; - } + if (blocks == 0) + blocks++; + while (zv) + { + zv->blocks += blocks; + zv->size += size; + zv = zv->parent; + } } struct znode *znode_adddir(struct znode *parent, const TCHAR *name, struct zarchive_info *zai) { - struct znode *zn; - TCHAR path[MAX_DPATH]; - - path[0] = 0; - recurparent (path, parent, FALSE); - _tcscat (path, FSDB_DIR_SEPARATOR_S); - _tcscat (path, name); - zn = get_znode (parent->volume, path, FALSE); - if (zn) - return zn; - zn = znode_alloc_child(parent, name); - zn->mtime.tv_sec = zai->tv.tv_sec; - zn->mtime.tv_usec = zai->tv.tv_usec; - zn->type = ZNODE_DIR; - if (zai->comment) - zn->comment = my_strdup (zai->comment); - if (zai->flags < 0) - zn->flags = zai->flags; - addvolumesize(parent->volume, 0); - return zn; + struct znode *zn; + TCHAR path[MAX_DPATH]; + + path[0] = 0; + recurparent (path, parent, FALSE); + _tcscat (path, FSDB_DIR_SEPARATOR_S); + _tcscat (path, name); + zn = get_znode (parent->volume, path, FALSE); + if (zn) + return zn; + zn = znode_alloc_child(parent, name); + zn->mtime.tv_sec = zai->tv.tv_sec; + zn->mtime.tv_usec = zai->tv.tv_usec; + zn->type = ZNODE_DIR; + if (zai->comment) + zn->comment = my_strdup (zai->comment); + if (zai->flags < 0) + zn->flags = zai->flags; + addvolumesize(parent->volume, 0); + return zn; } struct znode *zvolume_adddir_abs(struct zvolume *zv, struct zarchive_info *zai) { - struct znode *zn2; - TCHAR *path = my_strdup(zai->name); - TCHAR *p, *p2; - int i; + struct znode *zn2; + TCHAR *path = my_strdup(zai->name); + TCHAR *p, *p2; + int i; - if (_tcslen (path) > 0) { - /* remove possible trailing / or \ */ - TCHAR last; - last = path[_tcslen (path) - 1]; - if (last == '/' || last == '\\') - path[_tcslen (path) - 1] = 0; - } - zn2 = &zv->root; - p = p2 = path; - for (i = 0; path[i]; i++) { - if (path[i] == '/' || path[i] == '\\') { - path[i] = 0; - zn2 = znode_adddir(zn2, p, zai); - path[i] = FSDB_DIR_SEPARATOR; - p = p2 = &path[i + 1]; - } - } - return znode_adddir(zn2, p, zai); + if (_tcslen (path) > 0) + { + /* remove possible trailing / or \ */ + TCHAR last; + last = path[_tcslen (path) - 1]; + if (last == '/' || last == '\\') + path[_tcslen (path) - 1] = 0; + } + zn2 = &zv->root; + p = p2 = path; + for (i = 0; path[i]; i++) + { + if (path[i] == '/' || path[i] == '\\') + { + path[i] = 0; + zn2 = znode_adddir(zn2, p, zai); + path[i] = FSDB_DIR_SEPARATOR; + p = p2 = &path[i + 1]; + } + } + return znode_adddir(zn2, p, zai); } struct znode *zvolume_addfile_abs(struct zvolume *zv, struct zarchive_info *zai) { - struct znode *zn, *zn2; - int i; - TCHAR *path = my_strdup (zai->name); - TCHAR *p, *p2; + struct znode *zn, *zn2; + int i; + TCHAR *path = my_strdup (zai->name); + TCHAR *p, *p2; - zn2 = &zv->root; - p = p2 = path; - for (i = 0; path[i]; i++) { - if (path[i] == '/' || path[i] == '\\') { - path[i] = 0; - zn2 = znode_adddir(zn2, p, zai); - path[i] = FSDB_DIR_SEPARATOR; - p = p2 = &path[i + 1]; - } - } - if (p2) { - zn = znode_alloc_child(zn2, p2); - zn->size = zai->size; - zn->type = ZNODE_FILE; - zn->mtime.tv_sec = zai->tv.tv_sec; - zn->mtime.tv_usec = zai->tv.tv_usec; - if (zai->comment) - zn->comment = my_strdup(zai->comment); - zn->flags = zai->flags; - addvolumesize(zn->volume, zai->size); - } - xfree(path); - return zn; + zn2 = &zv->root; + p = p2 = path; + for (i = 0; path[i]; i++) + { + if (path[i] == '/' || path[i] == '\\') + { + path[i] = 0; + zn2 = znode_adddir(zn2, p, zai); + path[i] = FSDB_DIR_SEPARATOR; + p = p2 = &path[i + 1]; + } + } + if (p2) + { + zn = znode_alloc_child(zn2, p2); + zn->size = zai->size; + zn->type = ZNODE_FILE; + zn->mtime.tv_sec = zai->tv.tv_sec; + zn->mtime.tv_usec = zai->tv.tv_usec; + if (zai->comment) + zn->comment = my_strdup(zai->comment); + zn->flags = zai->flags; + addvolumesize(zn->volume, zai->size); + } + xfree(path); + return zn; } struct zvolume *zfile_fopen_directory (const TCHAR *dirname) { - struct zvolume *zv = NULL; - struct my_opendir_s *dir; - TCHAR fname[MAX_DPATH]; + struct zvolume *zv = NULL; + struct my_opendir_s *dir; + TCHAR fname[MAX_DPATH]; - dir = my_opendir (dirname); - if (!dir) - return NULL; - zv = zvolume_alloc_nofile (dirname, ArchiveFormatDIR, NULL, NULL); - while (my_readdir (dir, fname)) { - TCHAR fullname[MAX_DPATH]; - struct mystat statbuf; - struct zarchive_info zai = { 0 }; - if (!_tcscmp (fname, _T(".")) || !_tcscmp (fname, _T(".."))) - continue; - _tcscpy (fullname, dirname); - _tcscat (fullname, FSDB_DIR_SEPARATOR_S); - _tcscat (fullname, fname); - if (!my_stat (fullname, &statbuf)) - continue; - zai.name = fname; - zai.size = statbuf.size; - zai.tv.tv_sec = statbuf.mtime.tv_sec; - zai.tv.tv_usec = statbuf.mtime.tv_usec; - if (statbuf.mode & FILEFLAG_DIR) { - zvolume_adddir_abs (zv, &zai); - } else { - struct znode *zn; - zn = zvolume_addfile_abs (zv, &zai); - //zfile_fopen_archive_recurse2 (zv, zn); - } - } - my_closedir (dir); - // zfile_fopen_archive_recurse (zv); - if (zv) - zvolume_addtolist (zv); - return zv; + dir = my_opendir (dirname); + if (!dir) + return NULL; + zv = zvolume_alloc_nofile (dirname, ArchiveFormatDIR, NULL, NULL); + while (my_readdir (dir, fname)) + { + TCHAR fullname[MAX_DPATH]; + struct mystat statbuf; + struct zarchive_info zai = { 0 }; + if (!_tcscmp (fname, _T(".")) || !_tcscmp (fname, _T(".."))) + continue; + _tcscpy (fullname, dirname); + _tcscat (fullname, FSDB_DIR_SEPARATOR_S); + _tcscat (fullname, fname); + if (!my_stat (fullname, &statbuf)) + continue; + zai.name = fname; + zai.size = statbuf.size; + zai.tv.tv_sec = statbuf.mtime.tv_sec; + zai.tv.tv_usec = statbuf.mtime.tv_usec; + if (statbuf.mode & FILEFLAG_DIR) + { + zvolume_adddir_abs (zv, &zai); + } + else + { + struct znode *zn; + zn = zvolume_addfile_abs (zv, &zai); + //zfile_fopen_archive_recurse2 (zv, zn); + } + } + my_closedir (dir); + // zfile_fopen_archive_recurse (zv); + if (zv) + zvolume_addtolist (zv); + return zv; } struct zvolume *zfile_fopen_archive (const TCHAR *filename, int flags) { - struct zvolume *zv = NULL; - struct zfile *zf = zfile_fopen_nozip (filename, _T("rb")); + struct zvolume *zv = NULL; + struct zfile *zf = zfile_fopen_nozip (filename, _T("rb")); - if (!zf) - return NULL; - zf->zfdmask = flags; - zv = zfile_fopen_archive_ext (NULL, zf, flags); - if (!zv) - zv = zfile_fopen_archive_data (NULL, zf, flags); + if (!zf) + return NULL; + zf->zfdmask = flags; + zv = zfile_fopen_archive_ext (NULL, zf, flags); + if (!zv) + zv = zfile_fopen_archive_data (NULL, zf, flags); #if 0 - if (!zv) { - struct zfile *zf2 = zuncompress (zf, 0, 0); - if (zf2 != zf) { - zf = zf2; - zv = zfile_fopen_archive_ext(zf, flags); - if (!zv) - zv = zfile_fopen_archive_data(zf, flags); - } - } + if (!zv) + { + struct zfile *zf2 = zuncompress (zf, 0, 0); + if (zf2 != zf) + { + zf = zf2; + zv = zfile_fopen_archive_ext(zf, flags); + if (!zv) + zv = zfile_fopen_archive_data(zf, flags); + } + } #endif - /* pointless but who cares? */ - if (!zv && !(flags & ZFD_NORECURSE)) - zv = archive_directory_plain (zf); + /* pointless but who cares? */ + if (!zv && !(flags & ZFD_NORECURSE)) + zv = archive_directory_plain (zf); #if RECURSIVE_ARCHIVES - if (zv && !(flags & ZFD_NORECURSE)) - zfile_fopen_archive_recurse (zv, flags); + if (zv && !(flags & ZFD_NORECURSE)) + zfile_fopen_archive_recurse (zv, flags); #endif - if (zv) - zvolume_addtolist (zv); - else - zfile_fclose(zf); - return zv; + if (zv) + zvolume_addtolist (zv); + else + zfile_fclose(zf); + return zv; } struct zvolume *zfile_fopen_archive (const TCHAR *filename) { - return zfile_fopen_archive (filename, ZFD_ALL); + return zfile_fopen_archive (filename, ZFD_ALL); } struct zvolume *zfile_fopen_archive_root (const TCHAR *filename, int flags) { - TCHAR path[MAX_DPATH], *p1, *p2, *lastp; - struct zvolume *zv = NULL; - //int last = 0; - int num, i; + TCHAR path[MAX_DPATH], *p1, *p2, *lastp; + struct zvolume *zv = NULL; + //int last = 0; + int num, i; - if (my_existsdir (filename)) - return zfile_fopen_directory (filename); + if (my_existsdir (filename)) + return zfile_fopen_directory (filename); - num = 1; - lastp = NULL; - for (;;) { - _tcscpy (path, filename); - p1 = p2 = path; - for (i = 0; i < num; i++) { - while (*p1 != FSDB_DIR_SEPARATOR && *p1 != 0) - p1++; - if (*p1 == 0 && p1 == lastp) - return NULL; - if (i + 1 < num) - p1++; - } - *p1 = 0; - lastp = p1; - if (my_existsfile (p2)) - return zfile_fopen_archive (p2, flags); - num++; - } + num = 1; + lastp = NULL; + for (;;) + { + _tcscpy (path, filename); + p1 = p2 = path; + for (i = 0; i < num; i++) + { + while (*p1 != FSDB_DIR_SEPARATOR && *p1 != 0) + p1++; + if (*p1 == 0 && p1 == lastp) + return NULL; + if (i + 1 < num) + p1++; + } + *p1 = 0; + lastp = p1; + if (my_existsfile (p2)) + return zfile_fopen_archive (p2, flags); + num++; + } #if 0 - while (!last) { - while (*p1 != FSDB_DIR_SEPARATOR && *p1 != 0) - p1++; - if (*p1 == 0) - last = 1; - *p1 = 0; - if (!zv) { - zv = zfile_fopen_archive (p2); - if (!zv) - return NULL; - } else { - struct znode *zn = get_znode (zv, p2); - if (!zn) - return NULL; - } - p2 = p1 + 1; - } - return zv; + while (!last) + { + while (*p1 != FSDB_DIR_SEPARATOR && *p1 != 0) + p1++; + if (*p1 == 0) + last = 1; + *p1 = 0; + if (!zv) + { + zv = zfile_fopen_archive (p2); + if (!zv) + return NULL; + } + else + { + struct znode *zn = get_znode (zv, p2); + if (!zn) + return NULL; + } + p2 = p1 + 1; + } + return zv; #endif } void zfile_fclose_archive(struct zvolume *zv) { - struct znode *zn; - struct zvolume *v; + struct znode *zn; + struct zvolume *v; - if (!zv) - return; - zn = &zv->root; - while (zn) { - struct znode *zn2 = zn->next; - if (zn->vchild) - zfile_fclose_archive(zn->vchild); - xfree(zn->comment); - xfree(zn->fullname); - xfree(zn->name); - zfile_fclose(zn->f); - memset (zn, 0, sizeof (struct znode)); - if (zn != &zv->root) - xfree(zn); - zn = zn2; - } - archive_access_close (zv->handle, zv->id); - if (zvolume_list == zv) { - zvolume_list = zvolume_list->next; - } else { - v = zvolume_list; - while (v) { - if (v->next == zv) { - v->next = zv->next; - break; - } - v = v->next; - } - } - xfree(zv); + if (!zv) + return; + zn = &zv->root; + while (zn) + { + struct znode *zn2 = zn->next; + if (zn->vchild) + zfile_fclose_archive(zn->vchild); + xfree(zn->comment); + xfree(zn->fullname); + xfree(zn->name); + zfile_fclose(zn->f); + memset (zn, 0, sizeof (struct znode)); + if (zn != &zv->root) + xfree(zn); + zn = zn2; + } + archive_access_close (zv->handle, zv->id); + if (zvolume_list == zv) + { + zvolume_list = zvolume_list->next; + } + else + { + v = zvolume_list; + while (v) + { + if (v->next == zv) + { + v->next = zv->next; + break; + } + v = v->next; + } + } + xfree(zv); } -struct zdirectory { - TCHAR *parentpath; - struct znode *first; - struct znode *n; - bool doclose; - struct zvolume *zv; - int cnt; - int offset; - TCHAR **filenames; +struct zdirectory +{ + TCHAR *parentpath; + struct znode *first; + struct znode *n; + bool doclose; + struct zvolume *zv; + int cnt; + int offset; + TCHAR **filenames; }; struct zdirectory *zfile_opendir_archive (const TCHAR *path, int flags) { - struct zvolume *zv = get_zvolume(path); - bool created = false; - if (zv == NULL) { - zv = zfile_fopen_archive (path, flags); - created = true; - } - struct znode *zn = get_znode(zv, path, TRUE); - struct zdirectory *zd; + struct zvolume *zv = get_zvolume(path); + bool created = false; + if (zv == NULL) + { + zv = zfile_fopen_archive (path, flags); + created = true; + } + struct znode *zn = get_znode(zv, path, TRUE); + struct zdirectory *zd; - if (!zn || (!zn->child && !zn->vchild)) { - if (created) - zfile_fclose_archive (zv); - return NULL; - } - zd = xcalloc (struct zdirectory, 1); - if (created) - zd->zv = zv; - if (zn->child) { - zd->n = zn->child; - } else { - if (zn->vchild->archive == NULL) { - struct zvolume *zvnew = prepare_recursive_volume (zn->vchild, path, flags); - if (zvnew) { - zn->vchild = zvnew; - zvnew->parentz = zn; - } - } - zd->n = zn->vchild->root.next; - } - zd->parentpath = my_strdup (path); - zd->first = zd->n; - return zd; + if (!zn || (!zn->child && !zn->vchild)) + { + if (created) + zfile_fclose_archive (zv); + return NULL; + } + zd = xcalloc (struct zdirectory, 1); + if (created) + zd->zv = zv; + if (zn->child) + { + zd->n = zn->child; + } + else + { + if (zn->vchild->archive == NULL) + { + struct zvolume *zvnew = prepare_recursive_volume (zn->vchild, path, flags); + if (zvnew) + { + zn->vchild = zvnew; + zvnew->parentz = zn; + } + } + zd->n = zn->vchild->root.next; + } + zd->parentpath = my_strdup (path); + zd->first = zd->n; + return zd; } struct zdirectory *zfile_opendir_archive (const TCHAR *path) { - return zfile_opendir_archive (path, ZFD_ALL | ZFD_NORECURSE); + return zfile_opendir_archive (path, ZFD_ALL | ZFD_NORECURSE); } void zfile_closedir_archive(struct zdirectory *zd) { - if (!zd) - return; - zfile_fclose_archive (zd->zv); - xfree (zd->parentpath); - xfree (zd->filenames); + if (!zd) + return; + zfile_fclose_archive (zd->zv); + xfree (zd->parentpath); + xfree (zd->filenames); xfree(zd); } int zfile_readdir_archive (struct zdirectory *zd, TCHAR *out, bool fullpath) { - if (out) - out[0] = 0; - if (!zd->n || (zd->filenames != NULL && zd->offset >= zd->cnt)) - return 0; - if (zd->filenames == NULL) { - struct znode *n = zd->first; - int cnt = 0, len = 0; - while (n) { - cnt++; - n = n->sibling; - } - n = zd->first; - uae_u8 *buf = xmalloc (uae_u8, cnt * sizeof (TCHAR*)); - zd->filenames = (TCHAR**)buf; - buf += cnt * sizeof (TCHAR*); - for (int i = 0; i < cnt; i++) { - zd->filenames[i] = n->name; - n = n->sibling; - } - for (int i = 0; i < cnt; i++) { - for (int j = i + 1; j < cnt; j++) { - if (_tcscmp (zd->filenames[i], zd->filenames[j]) > 0) { - TCHAR *tmp = zd->filenames[i]; - zd->filenames[i] = zd->filenames[j]; - zd->filenames[j] = tmp; - } - } - } - zd->cnt = cnt; - } - if (out == NULL) - return zd->cnt; - if (fullpath) { - _tcscpy (out, zd->parentpath); - _tcscat (out, FSDB_DIR_SEPARATOR_S); - } - _tcscat (out, zd->filenames[zd->offset]); - zd->offset++; + if (out) + out[0] = 0; + if (!zd->n || (zd->filenames != NULL && zd->offset >= zd->cnt)) + return 0; + if (zd->filenames == NULL) + { + struct znode *n = zd->first; + int cnt = 0, len = 0; + while (n) + { + cnt++; + n = n->sibling; + } + n = zd->first; + uae_u8 *buf = xmalloc (uae_u8, cnt * sizeof (TCHAR*)); + zd->filenames = (TCHAR**)buf; + buf += cnt * sizeof (TCHAR*); + for (int i = 0; i < cnt; i++) + { + zd->filenames[i] = n->name; + n = n->sibling; + } + for (int i = 0; i < cnt; i++) + { + for (int j = i + 1; j < cnt; j++) + { + if (_tcscmp (zd->filenames[i], zd->filenames[j]) > 0) + { + TCHAR *tmp = zd->filenames[i]; + zd->filenames[i] = zd->filenames[j]; + zd->filenames[j] = tmp; + } + } + } + zd->cnt = cnt; + } + if (out == NULL) + return zd->cnt; + if (fullpath) + { + _tcscpy (out, zd->parentpath); + _tcscat (out, FSDB_DIR_SEPARATOR_S); + } + _tcscat (out, zd->filenames[zd->offset]); + zd->offset++; return 1; } int zfile_readdir_archive (struct zdirectory *zd, TCHAR *out) { - return zfile_readdir_archive (zd, out, false); + return zfile_readdir_archive (zd, out, false); } void zfile_resetdir_archive (struct zdirectory *zd) { - zd->offset = 0; + zd->offset = 0; zd->n = zd->first; } int zfile_fill_file_attrs_archive(const TCHAR *path, int *isdir, int *flags, TCHAR **comment) { - struct zvolume *zv = get_zvolume(path); - struct znode *zn = get_znode (zv, path, TRUE); + struct zvolume *zv = get_zvolume(path); + struct znode *zn = get_znode (zv, path, TRUE); - *isdir = 0; - *flags = 0; - if (comment) - *comment = 0; - if (!zn) - return 0; - if (zn->type == ZNODE_DIR) - *isdir = 1; - else if (zn->type == ZNODE_VDIR) - *isdir = -1; - *flags = zn->flags; - if (zn->comment && comment) - *comment = my_strdup(zn->comment); - return 1; + *isdir = 0; + *flags = 0; + if (comment) + *comment = 0; + if (!zn) + return 0; + if (zn->type == ZNODE_DIR) + *isdir = 1; + else if (zn->type == ZNODE_VDIR) + *isdir = -1; + *flags = zn->flags; + if (zn->comment && comment) + *comment = my_strdup(zn->comment); + return 1; } int zfile_fs_usage_archive(const TCHAR *path, const TCHAR *disk, struct fs_usage *fsp) { - struct zvolume *zv = get_zvolume(path); + struct zvolume *zv = get_zvolume(path); - if (!zv) - return -1; - fsp->fsu_blocks = zv->blocks; - fsp->fsu_bavail = 0; - return 0; + if (!zv) + return -1; + fsp->fsu_blocks = zv->blocks; + fsp->fsu_bavail = 0; + return 0; } int zfile_stat_archive (const TCHAR *path, struct mystat *s) { - struct zvolume *zv = get_zvolume(path); - struct znode *zn = get_znode (zv, path, TRUE); + struct zvolume *zv = get_zvolume(path); + struct znode *zn = get_znode (zv, path, TRUE); - memset (s, 0, sizeof (struct mystat)); - if (!zn) - return 0; - s->size = zn->size; - s->mtime.tv_sec = zn->mtime.tv_sec; - s->mtime.tv_usec = zn->mtime.tv_usec; - return 1; + memset (s, 0, sizeof (struct mystat)); + if (!zn) + return 0; + s->size = zn->size; + s->mtime.tv_sec = zn->mtime.tv_sec; + s->mtime.tv_usec = zn->mtime.tv_usec; + return 1; } uae_s64 zfile_lseek_archive (struct zfile *d, uae_s64 offset, int whence) { - uae_s64 old = zfile_ftell (d); - if (old < 0 || zfile_fseek (d, offset, whence)) - return -1; - return old; + uae_s64 old = zfile_ftell (d); + if (old < 0 || zfile_fseek (d, offset, whence)) + return -1; + return old; } uae_s64 zfile_fsize_archive (struct zfile *d) { - return zfile_size (d); + return zfile_size (d); } unsigned int zfile_read_archive (struct zfile *d, void *b, unsigned int size) { - return zfile_fread (b, 1, size, d); + return zfile_fread (b, 1, size, d); } void zfile_close_archive (struct zfile *d) { - /* do nothing, keep file cached */ + /* do nothing, keep file cached */ } struct zfile *zfile_open_archive (const TCHAR *path, int flags) { - struct zvolume *zv = get_zvolume(path); - struct znode *zn = get_znode (zv, path, TRUE); - struct zfile *z; + struct zvolume *zv = get_zvolume(path); + struct znode *zn = get_znode (zv, path, TRUE); + struct zfile *z; - if (!zn) - return 0; - if (zn->f) { - zfile_fseek(zn->f, 0, SEEK_SET); - return zn->f; - } - if (zn->vfile) - zn = zn->vfile; - z = archive_getzfile (zn, zn->volume->id, 0); - if (z) - zfile_fseek(z, 0, SEEK_SET); - zn->f = z; - return zn->f; + if (!zn) + return 0; + if (zn->f) + { + zfile_fseek(zn->f, 0, SEEK_SET); + return zn->f; + } + if (zn->vfile) + zn = zn->vfile; + z = archive_getzfile (zn, zn->volume->id, 0); + if (z) + zfile_fseek(z, 0, SEEK_SET); + zn->f = z; + return zn->f; } int zfile_exists_archive (const TCHAR *path, const TCHAR *rel) { - TCHAR tmp[MAX_DPATH]; - struct zvolume *zv; - struct znode *zn; - - _stprintf (tmp, _T("%s%c%s"), path, FSDB_DIR_SEPARATOR, rel); - zv = get_zvolume(tmp); - zn = get_znode (zv, tmp, TRUE); - return zn ? 1 : 0; + TCHAR tmp[MAX_DPATH]; + struct zvolume *zv; + struct znode *zn; + + _stprintf (tmp, _T("%s%c%s"), path, FSDB_DIR_SEPARATOR, rel); + zv = get_zvolume(tmp); + zn = get_znode (zv, tmp, TRUE); + return zn ? 1 : 0; } int zfile_convertimage (const TCHAR *src, const TCHAR *dst) { - struct zfile *s, *d; - int ret = 0; + struct zfile *s, *d; + int ret = 0; - s = zfile_fopen (src, _T("rb"), ZFD_NORMAL); - if (s) { - uae_u8 *b; - int size; - zfile_fseek (s, 0, SEEK_END); - size = zfile_ftell (s); - zfile_fseek (s, 0, SEEK_SET); - b = xcalloc (uae_u8, size); - if (b) { - if (zfile_fread (b, size, 1, s) == 1) { - d = zfile_fopen (dst, _T("wb"), 0); - if (d) { - if (zfile_fwrite (b, size, 1, d) == 1) - ret = 1; - zfile_fclose (d); - } - } - xfree (b); - } - zfile_fclose (s); - } - return ret; + s = zfile_fopen (src, _T("rb"), ZFD_NORMAL); + if (s) + { + uae_u8 *b; + int size; + zfile_fseek (s, 0, SEEK_END); + size = zfile_ftell (s); + zfile_fseek (s, 0, SEEK_SET); + b = xcalloc (uae_u8, size); + if (b) + { + if (zfile_fread (b, size, 1, s) == 1) + { + d = zfile_fopen (dst, _T("wb"), 0); + if (d) + { + if (zfile_fwrite (b, size, 1, d) == 1) + ret = 1; + zfile_fclose (d); + } + } + xfree (b); + } + zfile_fclose (s); + } + return ret; } #ifdef _CONSOLE @@ -3188,19 +3533,20 @@ static TCHAR *zerror; #define WRITE_LOG_BUF_SIZE 4096 void zfile_seterror (const TCHAR *format, ...) { - int count; - if (!zerror) { - TCHAR buffer[WRITE_LOG_BUF_SIZE]; - va_list parms; - va_start (parms, format); - count = _vsntprintf (buffer, WRITE_LOG_BUF_SIZE - 1, format, parms); - zerror = my_strdup (buffer); - va_end (parms); - } + int count; + if (!zerror) + { + TCHAR buffer[WRITE_LOG_BUF_SIZE]; + va_list parms; + va_start (parms, format); + count = _vsntprintf (buffer, WRITE_LOG_BUF_SIZE - 1, format, parms); + zerror = my_strdup (buffer); + va_end (parms); + } } TCHAR *zfile_geterror (void) { - return zerror; + return zerror; } #else void zfile_seterror (const TCHAR *format, ...) diff --git a/src/zfile_archive.cpp b/src/zfile_archive.cpp index 93bbf35e..e2456a9d 100644 --- a/src/zfile_archive.cpp +++ b/src/zfile_archive.cpp @@ -1,10 +1,10 @@ - /* - * UAE - The Un*x Amiga Emulator - * - * transparent archive handling - * - * 2007 Toni Wilen - */ +/* + * UAE - The Un*x Amiga Emulator + * + * transparent archive handling + * + * 2007 Toni Wilen + */ #include "sysconfig.h" #include "sysdeps.h" @@ -30,234 +30,261 @@ static time_t fromdostime(uae_u32 dd) { - struct tm tm; - time_t t; - memset(&tm, 0, sizeof tm); - tm.tm_hour = (dd >> 11) & 0x1f; - tm.tm_min = (dd >> 5) & 0x3f; - tm.tm_sec = ((dd >> 0) & 0x1f) * 2; - tm.tm_year = ((dd >> 25) & 0x7f) + 80; - tm.tm_mon = ((dd >> 21) & 0x0f) - 1; - tm.tm_mday = (dd >> 16) & 0x1f; - t = mktime(&tm); - _tzset(); - t -= _timezone; - return t; + struct tm tm; + time_t t; + memset(&tm, 0, sizeof tm); + tm.tm_hour = (dd >> 11) & 0x1f; + tm.tm_min = (dd >> 5) & 0x3f; + tm.tm_sec = ((dd >> 0) & 0x1f) * 2; + tm.tm_year = ((dd >> 25) & 0x7f) + 80; + tm.tm_mon = ((dd >> 21) & 0x0f) - 1; + tm.tm_mday = (dd >> 16) & 0x1f; + t = mktime(&tm); + _tzset(); + t -= _timezone; + return t; } static struct zvolume *getzvolume (struct znode *parent, struct zfile *zf, unsigned int id) { - struct zvolume *zv = NULL; + struct zvolume *zv = NULL; - switch (id) - { + switch (id) + { #ifdef A_ZIP - case ArchiveFormatZIP: - zv = archive_directory_zip (zf); - break; + case ArchiveFormatZIP: + zv = archive_directory_zip (zf); + break; #endif #ifdef A_7Z - case ArchiveFormat7Zip: - zv = archive_directory_7z (zf); - break; + case ArchiveFormat7Zip: + zv = archive_directory_7z (zf); + break; #endif #ifdef A_RAR - case ArchiveFormatRAR: - zv = archive_directory_rar (zf); - break; + case ArchiveFormatRAR: + zv = archive_directory_rar (zf); + break; #endif #ifdef A_LHA - case ArchiveFormatLHA: - zv = archive_directory_lha (zf); - break; + case ArchiveFormatLHA: + zv = archive_directory_lha (zf); + break; #endif #ifdef A_LZX - case ArchiveFormatLZX: - zv = archive_directory_lzx (zf); - break; + case ArchiveFormatLZX: + zv = archive_directory_lzx (zf); + break; #endif - case ArchiveFormatPLAIN: - zv = archive_directory_plain (zf); - break; - case ArchiveFormatADF: - zv = archive_directory_adf (parent, zf); - break; - case ArchiveFormatRDB: - zv = archive_directory_rdb (zf); - break; - case ArchiveFormatTAR: - zv = archive_directory_tar (zf); - break; - case ArchiveFormatFAT: - zv = archive_directory_fat (zf); - break; - } + case ArchiveFormatPLAIN: + zv = archive_directory_plain (zf); + break; + case ArchiveFormatADF: + zv = archive_directory_adf (parent, zf); + break; + case ArchiveFormatRDB: + zv = archive_directory_rdb (zf); + break; + case ArchiveFormatTAR: + zv = archive_directory_tar (zf); + break; + case ArchiveFormatFAT: + zv = archive_directory_fat (zf); + break; + } #ifdef ARCHIVEACCESS - if (!zv) - zv = archive_directory_arcacc (zf, id); + if (!zv) + zv = archive_directory_arcacc (zf, id); #endif - return zv; + return zv; } struct zfile *archive_access_select (struct znode *parent, struct zfile *zf, unsigned int id, int dodefault, int *retcode, int index) { - struct zvolume *zv; - struct znode *zn; - int zipcnt, first, select; - TCHAR tmphist[MAX_DPATH]; - struct zfile *z = NULL; - int we_have_file; - int diskimg; - int mask = zf->zfdmask; - int canhistory = (mask & ZFD_DISKHISTORY) && !(mask & ZFD_CHECKONLY); - int getflag = (mask & ZFD_DELAYEDOPEN) ? FILE_DELAYEDOPEN : 0; + struct zvolume *zv; + struct znode *zn; + int zipcnt, first, select; + TCHAR tmphist[MAX_DPATH]; + struct zfile *z = NULL; + int we_have_file; + int diskimg; + int mask = zf->zfdmask; + int canhistory = (mask & ZFD_DISKHISTORY) && !(mask & ZFD_CHECKONLY); + int getflag = (mask & ZFD_DELAYEDOPEN) ? FILE_DELAYEDOPEN : 0; - if (retcode) - *retcode = 0; - if (index > 0) - return NULL; - if (zfile_needwrite (zf)) { - if (retcode) - *retcode = -1; - return NULL; - } - zv = getzvolume (parent, zf, id); - if (!zv) - return NULL; - we_have_file = 0; - tmphist[0] = 0; - zipcnt = 1; - first = 1; - zn = &zv->root; - while (zn) { - int isok = 1; - - diskimg = -1; - if (zn->type != ZNODE_FILE) - isok = 0; - if (zfile_is_ignore_ext(zn->fullname)) - isok = 0; - diskimg = zfile_is_diskimage (zn->fullname); - if (isok) { - if (tmphist[0]) { + if (retcode) + *retcode = 0; + if (index > 0) + return NULL; + if (zfile_needwrite (zf)) + { + if (retcode) + *retcode = -1; + return NULL; + } + zv = getzvolume (parent, zf, id); + if (!zv) + return NULL; + we_have_file = 0; + tmphist[0] = 0; + zipcnt = 1; + first = 1; + zn = &zv->root; + while (zn) + { + int isok = 1; + + diskimg = -1; + if (zn->type != ZNODE_FILE) + isok = 0; + if (zfile_is_ignore_ext(zn->fullname)) + isok = 0; + diskimg = zfile_is_diskimage (zn->fullname); + if (isok) + { + if (tmphist[0]) + { #ifndef _CONSOLE - if (diskimg >= 0&& canhistory) - DISK_history_add (tmphist, -1, diskimg, 1); + if (diskimg >= 0&& canhistory) + DISK_history_add (tmphist, -1, diskimg, 1); #endif - tmphist[0] = 0; - first = 0; - } - if (first) { - if (diskimg >= 0) - _tcscpy (tmphist, zn->fullname); - } else { - _tcscpy (tmphist, zn->fullname); + tmphist[0] = 0; + first = 0; + } + if (first) + { + if (diskimg >= 0) + _tcscpy (tmphist, zn->fullname); + } + else + { + _tcscpy (tmphist, zn->fullname); #ifndef _CONSOLE - if (diskimg >= 0&& canhistory) - DISK_history_add (tmphist, -1, diskimg, 1); + if (diskimg >= 0&& canhistory) + DISK_history_add (tmphist, -1, diskimg, 1); #endif - tmphist[0] = 0; - } - select = 0; - if (!zf->zipname) - select = 1; - if (zf->zipname && _tcslen (zn->fullname) >= _tcslen (zf->zipname) && !strcasecmp (zf->zipname, zn->fullname + _tcslen (zn->fullname) - _tcslen (zf->zipname))) - select = -1; - if (zf->zipname && zf->zipname[0] == '#' && _tstol (zf->zipname + 1) == zipcnt) - select = -1; - if (select && we_have_file < 10) { - struct zfile *zt = NULL; - TCHAR *ext = _tcsrchr (zn->fullname, '.'); - int whf = 1; - int ft = 0; - if (mask & ZFD_CD) { - if (ext && !_tcsicmp (ext, _T(".iso"))) { - whf = 2; - ft = ZFILE_CDIMAGE; - } - if (ext && !_tcsicmp (ext, _T(".ccd"))) { - whf = 9; - ft = ZFILE_CDIMAGE; - } - if (ext && !_tcsicmp (ext, _T(".cue"))) { - whf = 10; - ft = ZFILE_CDIMAGE; - } - } else { - zt = archive_getzfile (zn, id, getflag); - ft = zfile_gettype (zt); - } - if ((select < 0 || ft) && whf > we_have_file) { - if (!zt) - zt = archive_getzfile (zn, id, getflag); - we_have_file = whf; - if (z) - zfile_fclose (z); - z = zt; - zt = NULL; - } - zfile_fclose (zt); - } - } - zipcnt++; - zn = zn->next; - } + tmphist[0] = 0; + } + select = 0; + if (!zf->zipname) + select = 1; + if (zf->zipname && _tcslen (zn->fullname) >= _tcslen (zf->zipname) && !strcasecmp (zf->zipname, zn->fullname + _tcslen (zn->fullname) - _tcslen (zf->zipname))) + select = -1; + if (zf->zipname && zf->zipname[0] == '#' && _tstol (zf->zipname + 1) == zipcnt) + select = -1; + if (select && we_have_file < 10) + { + struct zfile *zt = NULL; + TCHAR *ext = _tcsrchr (zn->fullname, '.'); + int whf = 1; + int ft = 0; + if (mask & ZFD_CD) + { + if (ext && !_tcsicmp (ext, _T(".iso"))) + { + whf = 2; + ft = ZFILE_CDIMAGE; + } + if (ext && !_tcsicmp (ext, _T(".ccd"))) + { + whf = 9; + ft = ZFILE_CDIMAGE; + } + if (ext && !_tcsicmp (ext, _T(".cue"))) + { + whf = 10; + ft = ZFILE_CDIMAGE; + } + } + else + { + zt = archive_getzfile (zn, id, getflag); + ft = zfile_gettype (zt); + } + if ((select < 0 || ft) && whf > we_have_file) + { + if (!zt) + zt = archive_getzfile (zn, id, getflag); + we_have_file = whf; + if (z) + zfile_fclose (z); + z = zt; + zt = NULL; + } + zfile_fclose (zt); + } + } + zipcnt++; + zn = zn->next; + } #ifndef _CONSOLE - diskimg = zfile_is_diskimage (zfile_getname (zf)); - if (diskimg >= 0 && first && tmphist[0] && canhistory) - DISK_history_add (zfile_getname (zf), -1, diskimg, 1); + diskimg = zfile_is_diskimage (zfile_getname (zf)); + if (diskimg >= 0 && first && tmphist[0] && canhistory) + DISK_history_add (zfile_getname (zf), -1, diskimg, 1); #endif - zfile_fclose_archive (zv); - if (z) { - zfile_fclose(zf); - zf = z; - } else if (!dodefault && zf->zipname && zf->zipname[0]) { - if (retcode) - *retcode = -1; - zf = NULL; - } else { - zf = NULL; - } - return zf; + zfile_fclose_archive (zv); + if (z) + { + zfile_fclose(zf); + zf = z; + } + else if (!dodefault && zf->zipname && zf->zipname[0]) + { + if (retcode) + *retcode = -1; + zf = NULL; + } + else + { + zf = NULL; + } + return zf; } struct zfile *archive_access_arcacc_select (struct zfile *zf, unsigned int id, int *retcode) { - if (zfile_needwrite (zf)) { - if (retcode) - *retcode = -1; - return NULL; - } - return zf; + if (zfile_needwrite (zf)) + { + if (retcode) + *retcode = -1; + return NULL; + } + return zf; } void archive_access_scan (struct zfile *zf, zfile_callback zc, void *user, unsigned int id) { - struct zvolume *zv; - struct znode *zn; + struct zvolume *zv; + struct znode *zn; - zv = getzvolume (NULL, zf, id); - if (!zv) - return; - zn = &zv->root; - while (zn) { - if (zn->type == ZNODE_FILE) { - struct zfile *zf2 = archive_getzfile (zn, id, 0); - if (zf2) { - int ztype = iszip (zf2); - if (ztype) { - zfile_fclose (zf2); - } else { - int ret = zc (zf2, user); - zfile_fclose(zf2); - if (ret) - break; - } - } - } - zn = zn->next; - } - zfile_fclose_archive (zv); + zv = getzvolume (NULL, zf, id); + if (!zv) + return; + zn = &zv->root; + while (zn) + { + if (zn->type == ZNODE_FILE) + { + struct zfile *zf2 = archive_getzfile (zn, id, 0); + if (zf2) + { + int ztype = iszip (zf2); + if (ztype) + { + zfile_fclose (zf2); + } + else + { + int ret = zc (zf2, user); + zfile_fclose(zf2); + if (ret) + break; + } + } + } + zn = zn->next; + } + zfile_fclose_archive (zv); } /* TAR */ @@ -268,72 +295,77 @@ static void archive_close_tar (void *handle) struct zvolume *archive_directory_tar (struct zfile *z) { - struct zvolume *zv; - struct znode *zn; + struct zvolume *zv; + struct znode *zn; - _tzset (); - zv = zvolume_alloc (z, ArchiveFormatTAR, NULL, NULL); - for (;;) { - uae_u8 block[512]; - char name[MAX_DPATH]; - int ustar = 0; - struct zarchive_info zai; - int valid = 1; - uae_u64 size; + _tzset (); + zv = zvolume_alloc (z, ArchiveFormatTAR, NULL, NULL); + for (;;) + { + uae_u8 block[512]; + char name[MAX_DPATH]; + int ustar = 0; + struct zarchive_info zai; + int valid = 1; + uae_u64 size; - if (zfile_fread (block, 512, 1, z) != 1) - break; - if (block[0] == 0) - break; - - if (!memcmp (block + 257, "ustar ", 8)) - ustar = 1; - name[0] = 0; - if (ustar) - strcpy (name, (char*)block + 345); - strcat (name, (char*)block); + if (zfile_fread (block, 512, 1, z) != 1) + break; + if (block[0] == 0) + break; - if (name[0] == 0) - valid = 0; - if (block[156] != '0') - valid = 0; - if (ustar && (block[256] != 0 && block[256] != '0')) - valid = 0; + if (!memcmp (block + 257, "ustar ", 8)) + ustar = 1; + name[0] = 0; + if (ustar) + strcpy (name, (char*)block + 345); + strcat (name, (char*)block); - size = _strtoui64 ((char*)block + 124, NULL, 8); + if (name[0] == 0) + valid = 0; + if (block[156] != '0') + valid = 0; + if (ustar && (block[256] != 0 && block[256] != '0')) + valid = 0; - if (valid) { - memset (&zai, 0, sizeof zai); - zai.name = au (name); - zai.size = size; - zai.tv.tv_sec = _strtoui64 ((char*)block + 136, NULL, 8); - zai.tv.tv_sec += _timezone; - if (_daylight) - zai.tv.tv_sec -= 1 * 60 * 60; - if (zai.name[_tcslen (zai.name) - 1] == '/') { - zn = zvolume_adddir_abs (zv, &zai); - } else { - zn = zvolume_addfile_abs (zv, &zai); - if (zn) - zn->offset = zfile_ftell (z); - } - xfree (zai.name); - } - zfile_fseek (z, (size + 511) & ~511, SEEK_CUR); - } - zv->method = ArchiveFormatTAR; - return zv; + size = _strtoui64 ((char*)block + 124, NULL, 8); + + if (valid) + { + memset (&zai, 0, sizeof zai); + zai.name = au (name); + zai.size = size; + zai.tv.tv_sec = _strtoui64 ((char*)block + 136, NULL, 8); + zai.tv.tv_sec += _timezone; + if (_daylight) + zai.tv.tv_sec -= 1 * 60 * 60; + if (zai.name[_tcslen (zai.name) - 1] == '/') + { + zn = zvolume_adddir_abs (zv, &zai); + } + else + { + zn = zvolume_addfile_abs (zv, &zai); + if (zn) + zn->offset = zfile_ftell (z); + } + xfree (zai.name); + } + zfile_fseek (z, (size + 511) & ~511, SEEK_CUR); + } + zv->method = ArchiveFormatTAR; + return zv; } struct zfile *archive_access_tar (struct znode *zn) { #if 0 - struct zfile *zf = zfile_fopen_empty (zn->volume->archive, zn->fullname, zn->size); - zfile_fseek (zn->volume->archive, zn->offset, SEEK_SET); - zfile_fwrite (zf->data, zn->size, 1, zn->volume->archive); - return zf; + struct zfile *zf = zfile_fopen_empty (zn->volume->archive, zn->fullname, zn->size); + zfile_fseek (zn->volume->archive, zn->offset, SEEK_SET); + zfile_fwrite (zf->data, zn->size, 1, zn->volume->archive); + return zf; #else - return zfile_fopen_parent (zn->volume->archive, zn->fullname, zn->offset, zn->size); + return zfile_fopen_parent (zn->volume->archive, zn->fullname, zn->offset, zn->size); #endif } @@ -346,142 +378,161 @@ static void archive_close_zip (void *handle) struct zvolume *archive_directory_zip (struct zfile *z) { - unzFile uz; - unz_file_info file_info; - struct zvolume *zv; - int err; + unzFile uz; + unz_file_info file_info; + struct zvolume *zv; + int err; - uz = unzOpen (z); - if (!uz) - return 0; - if (unzGoToFirstFile (uz) != UNZ_OK) - return 0; - zv = zvolume_alloc(z, ArchiveFormatZIP, NULL, NULL); - for (;;) { - char filename_inzip2[MAX_DPATH]; - TCHAR c; - struct zarchive_info zai; - time_t t; - unsigned int dd; - TCHAR *filename_inzip; + uz = unzOpen (z); + if (!uz) + return 0; + if (unzGoToFirstFile (uz) != UNZ_OK) + return 0; + zv = zvolume_alloc(z, ArchiveFormatZIP, NULL, NULL); + for (;;) + { + char filename_inzip2[MAX_DPATH]; + TCHAR c; + struct zarchive_info zai; + time_t t; + unsigned int dd; + TCHAR *filename_inzip; - err = unzGetCurrentFileInfo (uz, &file_info, filename_inzip2, sizeof (filename_inzip2), NULL, 0, NULL, 0); - if (err != UNZ_OK) - return 0; - if (file_info.flag & (1 << 11)) { // UTF-8 encoded - filename_inzip = utf8u (filename_inzip2); - } else { - filename_inzip = au (filename_inzip2); - } - dd = file_info.dosDate; - t = fromdostime(dd); - memset(&zai, 0, sizeof zai); - zai.name = filename_inzip; - zai.tv.tv_sec = t; - zai.flags = -1; - c = filename_inzip[_tcslen(filename_inzip) - 1]; - if (c != '/' && c != '\\') { - int err = unzOpenCurrentFile (uz); - if (err == UNZ_OK) { - struct znode *zn; - zai.size = file_info.uncompressed_size; - zn = zvolume_addfile_abs(zv, &zai); - } - } else { - filename_inzip[_tcslen (filename_inzip) - 1] = 0; - zvolume_adddir_abs(zv, &zai); - } - xfree (filename_inzip); - err = unzGoToNextFile (uz); - if (err != UNZ_OK) - break; - } - unzClose (uz); - zv->method = ArchiveFormatZIP; - return zv; + err = unzGetCurrentFileInfo (uz, &file_info, filename_inzip2, sizeof (filename_inzip2), NULL, 0, NULL, 0); + if (err != UNZ_OK) + return 0; + if (file_info.flag & (1 << 11)) // UTF-8 encoded + { + filename_inzip = utf8u (filename_inzip2); + } + else + { + filename_inzip = au (filename_inzip2); + } + dd = file_info.dosDate; + t = fromdostime(dd); + memset(&zai, 0, sizeof zai); + zai.name = filename_inzip; + zai.tv.tv_sec = t; + zai.flags = -1; + c = filename_inzip[_tcslen(filename_inzip) - 1]; + if (c != '/' && c != '\\') + { + int err = unzOpenCurrentFile (uz); + if (err == UNZ_OK) + { + struct znode *zn; + zai.size = file_info.uncompressed_size; + zn = zvolume_addfile_abs(zv, &zai); + } + } + else + { + filename_inzip[_tcslen (filename_inzip) - 1] = 0; + zvolume_adddir_abs(zv, &zai); + } + xfree (filename_inzip); + err = unzGoToNextFile (uz); + if (err != UNZ_OK) + break; + } + unzClose (uz); + zv->method = ArchiveFormatZIP; + return zv; } static struct zfile *archive_do_zip (struct znode *zn, struct zfile *z, int flags) { - unzFile uz; - int i; - TCHAR tmp[MAX_DPATH]; - TCHAR *name = z ? z->archiveparent->name : zn->volume->root.fullname; - char *s; + unzFile uz; + int i; + TCHAR tmp[MAX_DPATH]; + TCHAR *name = z ? z->archiveparent->name : zn->volume->root.fullname; + char *s; - uz = unzOpen (z ? z->archiveparent : zn->volume->archive); - if (!uz) - return 0; - if (z) - _tcscpy (tmp, z->archiveparent->name); - else - _tcscpy (tmp, zn->fullname + _tcslen (zn->volume->root.fullname) + 1); - if (unzGoToFirstFile (uz) != UNZ_OK) - goto error; - for (i = 0; tmp[i]; i++) { - if (tmp[i] == '\\') - tmp[i] = '/'; - } - s = ua (tmp); - if (unzLocateFile (uz, s, 1) != UNZ_OK) { - xfree (s); - for (i = 0; tmp[i]; i++) { - if (tmp[i] == '/') - tmp[i] = '\\'; - } - s = ua (tmp); - if (unzLocateFile (uz, s, 1) != UNZ_OK) { - xfree (s); - goto error; - } - } - xfree (s); - s = NULL; - if (unzOpenCurrentFile (uz) != UNZ_OK) - goto error; - if (!z) - z = zfile_fopen_empty (NULL, zn->fullname, zn->size); - if (z) { - int err = -1; - if (!(flags & FILE_DELAYEDOPEN) || z->size <= PEEK_BYTES) { - unpack_log (_T("ZIP: unpacking %s, flags=%d\n"), name, flags); - err = unzReadCurrentFile (uz, z->data, z->datasize); - unpack_log (_T("ZIP: unpacked, code=%d\n"), err); - } else { - z->archiveparent = zfile_dup (zn->volume->archive); - if (z->archiveparent) { - unpack_log (_T("ZIP: delayed open '%s'\n"), name); - xfree (z->archiveparent->name); - z->archiveparent->name = my_strdup (tmp); - z->datasize = PEEK_BYTES; - err = unzReadCurrentFile (uz, z->data, z->datasize); - unpack_log (_T("ZIP: unpacked, code=%d\n"), err); - } else { - unpack_log (_T("ZIP: unpacking %s (failed DELAYEDOPEN)\n"), name); - err = unzReadCurrentFile (uz, z->data, z->datasize); - unpack_log (_T("ZIP: unpacked, code=%d\n"), err); - } - } - } - unzCloseCurrentFile (uz); - unzClose (uz); - return z; + uz = unzOpen (z ? z->archiveparent : zn->volume->archive); + if (!uz) + return 0; + if (z) + _tcscpy (tmp, z->archiveparent->name); + else + _tcscpy (tmp, zn->fullname + _tcslen (zn->volume->root.fullname) + 1); + if (unzGoToFirstFile (uz) != UNZ_OK) + goto error; + for (i = 0; tmp[i]; i++) + { + if (tmp[i] == '\\') + tmp[i] = '/'; + } + s = ua (tmp); + if (unzLocateFile (uz, s, 1) != UNZ_OK) + { + xfree (s); + for (i = 0; tmp[i]; i++) + { + if (tmp[i] == '/') + tmp[i] = '\\'; + } + s = ua (tmp); + if (unzLocateFile (uz, s, 1) != UNZ_OK) + { + xfree (s); + goto error; + } + } + xfree (s); + s = NULL; + if (unzOpenCurrentFile (uz) != UNZ_OK) + goto error; + if (!z) + z = zfile_fopen_empty (NULL, zn->fullname, zn->size); + if (z) + { + int err = -1; + if (!(flags & FILE_DELAYEDOPEN) || z->size <= PEEK_BYTES) + { + unpack_log (_T("ZIP: unpacking %s, flags=%d\n"), name, flags); + err = unzReadCurrentFile (uz, z->data, z->datasize); + unpack_log (_T("ZIP: unpacked, code=%d\n"), err); + } + else + { + z->archiveparent = zfile_dup (zn->volume->archive); + if (z->archiveparent) + { + unpack_log (_T("ZIP: delayed open '%s'\n"), name); + xfree (z->archiveparent->name); + z->archiveparent->name = my_strdup (tmp); + z->datasize = PEEK_BYTES; + err = unzReadCurrentFile (uz, z->data, z->datasize); + unpack_log (_T("ZIP: unpacked, code=%d\n"), err); + } + else + { + unpack_log (_T("ZIP: unpacking %s (failed DELAYEDOPEN)\n"), name); + err = unzReadCurrentFile (uz, z->data, z->datasize); + unpack_log (_T("ZIP: unpacked, code=%d\n"), err); + } + } + } + unzCloseCurrentFile (uz); + unzClose (uz); + return z; error: - unzClose (uz); - return NULL; + unzClose (uz); + return NULL; } static struct zfile *archive_access_zip (struct znode *zn, int flags) { - return archive_do_zip (zn, NULL, flags); + return archive_do_zip (zn, NULL, flags); } static struct zfile *archive_unpack_zip (struct zfile *zf) { - return archive_do_zip (NULL, zf, 0); + return archive_do_zip (NULL, zf, 0); } #endif - + #ifdef A_7Z /* 7Z */ @@ -496,65 +547,71 @@ static ISzAlloc allocTempImp; typedef struct { - ISeekInStream s; - struct zfile *zf; + ISeekInStream s; + struct zfile *zf; } CFileInStream; static SRes SzFileReadImp (void *object, void *buffer, size_t *size) { - CFileInStream *s = (CFileInStream *)object; - struct zfile *zf = s->zf; - *size = zfile_fread (buffer, 1, *size, zf); - return SZ_OK; + CFileInStream *s = (CFileInStream *)object; + struct zfile *zf = s->zf; + *size = zfile_fread (buffer, 1, *size, zf); + return SZ_OK; } static SRes SzFileSeekImp(void *object, Int64 *pos, ESzSeek origin) { - CFileInStream *s = (CFileInStream *)object; - struct zfile *zf = s->zf; - int org = 0; - switch (origin) - { - case SZ_SEEK_SET: org = SEEK_SET; break; - case SZ_SEEK_CUR: org = SEEK_CUR; break; - case SZ_SEEK_END: org = SEEK_END; break; - } - zfile_fseek (zf, *pos, org); - *pos = zfile_ftell (zf); - return SZ_OK; + CFileInStream *s = (CFileInStream *)object; + struct zfile *zf = s->zf; + int org = 0; + switch (origin) + { + case SZ_SEEK_SET: + org = SEEK_SET; + break; + case SZ_SEEK_CUR: + org = SEEK_CUR; + break; + case SZ_SEEK_END: + org = SEEK_END; + break; + } + zfile_fseek (zf, *pos, org); + *pos = zfile_ftell (zf); + return SZ_OK; } static void init_7z(void) { - static int initialized; - - if (initialized) - return; - initialized = 1; - allocImp.Alloc = SzAlloc; - allocImp.Free = SzFree; - allocTempImp.Alloc = SzAllocTemp; - allocTempImp.Free = SzFreeTemp; - CrcGenerateTable (); - _tzset (); + static int initialized; + + if (initialized) + return; + initialized = 1; + allocImp.Alloc = SzAlloc; + allocImp.Free = SzFree; + allocTempImp.Alloc = SzAllocTemp; + allocTempImp.Free = SzFreeTemp; + CrcGenerateTable (); + _tzset (); } struct SevenZContext { - CSzArEx db; - CFileInStream archiveStream; - CLookToRead lookStream; - Byte *outBuffer; - size_t outBufferSize; - UInt32 blockIndex; + CSzArEx db; + CFileInStream archiveStream; + CLookToRead lookStream; + Byte *outBuffer; + size_t outBufferSize; + UInt32 blockIndex; }; static void archive_close_7z (void *ctx) { - struct SevenZContext *ctx7 = (struct SevenZContext*)ctx; - SzArEx_Free (&ctx7->db, &allocImp); - allocImp.Free (&allocImp, ctx7->outBuffer); - xfree(ctx); + struct SevenZContext *ctx7 = (struct SevenZContext*)ctx; + SzArEx_Free (&ctx7->db, &allocImp); + allocImp.Free (&allocImp, ctx7->outBuffer); + xfree(ctx); } #define EPOCH_DIFF 0x019DB1DED53E8000LL /* 116444736000000000 nsecs */ @@ -562,81 +619,89 @@ static void archive_close_7z (void *ctx) struct zvolume *archive_directory_7z (struct zfile *z) { - SRes res; - struct zvolume *zv; - int i; - struct SevenZContext *ctx; + SRes res; + struct zvolume *zv; + int i; + struct SevenZContext *ctx; - init_7z(); - ctx = xcalloc (struct SevenZContext, 1); - ctx->blockIndex = 0xffffffff; - ctx->archiveStream.s.Read = SzFileReadImp; - ctx->archiveStream.s.Seek = SzFileSeekImp; - ctx->archiveStream.zf = z; - LookToRead_CreateVTable (&ctx->lookStream, False); - ctx->lookStream.realStream = &ctx->archiveStream.s; - LookToRead_Init (&ctx->lookStream); + init_7z(); + ctx = xcalloc (struct SevenZContext, 1); + ctx->blockIndex = 0xffffffff; + ctx->archiveStream.s.Read = SzFileReadImp; + ctx->archiveStream.s.Seek = SzFileSeekImp; + ctx->archiveStream.zf = z; + LookToRead_CreateVTable (&ctx->lookStream, False); + ctx->lookStream.realStream = &ctx->archiveStream.s; + LookToRead_Init (&ctx->lookStream); - SzArEx_Init (&ctx->db); - res = SzArEx_Open (&ctx->db, &ctx->lookStream.s, &allocImp, &allocTempImp); - if (res != SZ_OK) { - write_log(_T("7Z: SzArchiveOpen %s returned %d\n"), zfile_getname(z), res); - xfree (ctx); - return NULL; - } - zv = zvolume_alloc (z, ArchiveFormat7Zip, ctx, NULL); - for (i = 0; i < ctx->db.db.NumFiles; i++) { - CSzFileItem *f = ctx->db.db.Files + i; - TCHAR *name = f->Name; - struct zarchive_info zai; + SzArEx_Init (&ctx->db); + res = SzArEx_Open (&ctx->db, &ctx->lookStream.s, &allocImp, &allocTempImp); + if (res != SZ_OK) + { + write_log(_T("7Z: SzArchiveOpen %s returned %d\n"), zfile_getname(z), res); + xfree (ctx); + return NULL; + } + zv = zvolume_alloc (z, ArchiveFormat7Zip, ctx, NULL); + for (i = 0; i < ctx->db.db.NumFiles; i++) + { + CSzFileItem *f = ctx->db.db.Files + i; + TCHAR *name = f->Name; + struct zarchive_info zai; - memset(&zai, 0, sizeof zai); - zai.name = name; - zai.flags = -1; - zai.size = f->Size; - if (f->MTimeDefined) { - uae_u64 t = (((uae_u64)f->MTime.High) << 32) | f->MTime.Low; - if (t >= EPOCH_DIFF) { - zai.tv.tv_sec = (t - EPOCH_DIFF) / RATE_DIFF; - zai.tv.tv_sec -= _timezone; - if (_daylight) - zai.tv.tv_sec += 1 * 60 * 60; - } - } - if (!f->IsDir) { - struct znode *zn = zvolume_addfile_abs(zv, &zai); - zn->offset = i; - } - } - zv->method = ArchiveFormat7Zip; - return zv; + memset(&zai, 0, sizeof zai); + zai.name = name; + zai.flags = -1; + zai.size = f->Size; + if (f->MTimeDefined) + { + uae_u64 t = (((uae_u64)f->MTime.High) << 32) | f->MTime.Low; + if (t >= EPOCH_DIFF) + { + zai.tv.tv_sec = (t - EPOCH_DIFF) / RATE_DIFF; + zai.tv.tv_sec -= _timezone; + if (_daylight) + zai.tv.tv_sec += 1 * 60 * 60; + } + } + if (!f->IsDir) + { + struct znode *zn = zvolume_addfile_abs(zv, &zai); + zn->offset = i; + } + } + zv->method = ArchiveFormat7Zip; + return zv; } struct zfile *archive_access_7z (struct znode *zn) { - SRes res; - struct zvolume *zv = zn->volume; - struct zfile *z = NULL; - size_t offset; - size_t outSizeProcessed; - struct SevenZContext *ctx; + SRes res; + struct zvolume *zv = zn->volume; + struct zfile *z = NULL; + size_t offset; + size_t outSizeProcessed; + struct SevenZContext *ctx; - z = zfile_fopen_empty (NULL, zn->fullname, zn->size); - if (!z) - return NULL; - ctx = (struct SevenZContext *) zv->handle; - res = SzAr_Extract (&ctx->db, &ctx->lookStream.s, zn->offset, - &ctx->blockIndex, &ctx->outBuffer, &ctx->outBufferSize, - &offset, &outSizeProcessed, - &allocImp, &allocTempImp); - if (res == SZ_OK) { - zfile_fwrite (ctx->outBuffer + offset, zn->size, 1, z); - } else { - write_log(_T("7Z: SzExtract %s returned %d\n"), zn->fullname, res); - zfile_fclose (z); - z = NULL; - } - return z; + z = zfile_fopen_empty (NULL, zn->fullname, zn->size); + if (!z) + return NULL; + ctx = (struct SevenZContext *) zv->handle; + res = SzAr_Extract (&ctx->db, &ctx->lookStream.s, zn->offset, + &ctx->blockIndex, &ctx->outBuffer, &ctx->outBufferSize, + &offset, &outSizeProcessed, + &allocImp, &allocTempImp); + if (res == SZ_OK) + { + zfile_fwrite (ctx->outBuffer + offset, zn->size, 1, z); + } + else + { + write_log(_T("7Z: SzExtract %s returned %d\n"), zn->fullname, res); + zfile_fclose (z); + z = NULL; + } + return z; } #endif @@ -661,140 +726,151 @@ static RARGETDLLVERSION pRARGetDllVersion; static int canrar (void) { - static int israr; + static int israr; - if (israr == 0) { - israr = -1; + if (israr == 0) + { + israr = -1; #ifdef _WIN32 - { - HMODULE rarlib; + { + HMODULE rarlib; - rarlib = WIN32_LoadLibrary (_T("unrar.dll")); - if (rarlib) { - TCHAR tmp[MAX_DPATH]; - tmp[0] = 0; - GetModuleFileName (rarlib, tmp, sizeof tmp / sizeof (TCHAR)); - pRAROpenArchiveEx = (RAROPENARCHIVEEX)GetProcAddress (rarlib, "RAROpenArchiveEx"); - pRARReadHeaderEx = (RARREADHEADEREX)GetProcAddress (rarlib, "RARReadHeaderEx"); - pRARProcessFile = (RARPROCESSFILE)GetProcAddress (rarlib, "RARProcessFile"); - pRARCloseArchive = (RARCLOSEARCHIVE)GetProcAddress (rarlib, "RARCloseArchive"); - pRARSetCallback = (RARSETCALLBACK)GetProcAddress (rarlib, "RARSetCallback"); - pRARGetDllVersion = (RARGETDLLVERSION)GetProcAddress (rarlib, "RARGetDllVersion"); - if (pRAROpenArchiveEx && pRARReadHeaderEx && pRARProcessFile && pRARCloseArchive && pRARSetCallback) { - int version = -1; - israr = 1; - if (pRARGetDllVersion) - version = pRARGetDllVersion (); - write_log (_T("%s version %08X detected\n"), tmp, version); - if (version < 4) { - write_log (_T("Too old unrar.dll, must be at least version 4\n")); - israr = -1; - } + rarlib = WIN32_LoadLibrary (_T("unrar.dll")); + if (rarlib) + { + TCHAR tmp[MAX_DPATH]; + tmp[0] = 0; + GetModuleFileName (rarlib, tmp, sizeof tmp / sizeof (TCHAR)); + pRAROpenArchiveEx = (RAROPENARCHIVEEX)GetProcAddress (rarlib, "RAROpenArchiveEx"); + pRARReadHeaderEx = (RARREADHEADEREX)GetProcAddress (rarlib, "RARReadHeaderEx"); + pRARProcessFile = (RARPROCESSFILE)GetProcAddress (rarlib, "RARProcessFile"); + pRARCloseArchive = (RARCLOSEARCHIVE)GetProcAddress (rarlib, "RARCloseArchive"); + pRARSetCallback = (RARSETCALLBACK)GetProcAddress (rarlib, "RARSetCallback"); + pRARGetDllVersion = (RARGETDLLVERSION)GetProcAddress (rarlib, "RARGetDllVersion"); + if (pRAROpenArchiveEx && pRARReadHeaderEx && pRARProcessFile && pRARCloseArchive && pRARSetCallback) + { + int version = -1; + israr = 1; + if (pRARGetDllVersion) + version = pRARGetDllVersion (); + write_log (_T("%s version %08X detected\n"), tmp, version); + if (version < 4) + { + write_log (_T("Too old unrar.dll, must be at least version 4\n")); + israr = -1; + } - } - } - } + } + } + } #endif - } - return israr < 0 ? 0 : 1; + } + return israr < 0 ? 0 : 1; } static int CALLBACK RARCallbackProc (UINT msg,LONG UserData,LONG P1,LONG P2) { - if (msg == UCM_PROCESSDATA) { - zfile_fwrite ((uae_u8*)P1, 1, P2, rarunpackzf); - return 0; - } - return -1; + if (msg == UCM_PROCESSDATA) + { + zfile_fwrite ((uae_u8*)P1, 1, P2, rarunpackzf); + return 0; + } + return -1; } struct RARContext { - struct RAROpenArchiveDataEx OpenArchiveData; - struct RARHeaderDataEx HeaderData; - HANDLE hArcData; + struct RAROpenArchiveDataEx OpenArchiveData; + struct RARHeaderDataEx HeaderData; + HANDLE hArcData; }; static void archive_close_rar (void *ctx) { - struct RARContext* rc = (struct RARContext*)ctx; - xfree (rc); + struct RARContext* rc = (struct RARContext*)ctx; + xfree (rc); } struct zvolume *archive_directory_rar (struct zfile *z) { - struct zvolume *zv; - struct RARContext *rc; - struct zfile *zftmp; - int cnt; + struct zvolume *zv; + struct RARContext *rc; + struct zfile *zftmp; + int cnt; - if (!canrar ()) - return archive_directory_arcacc (z, ArchiveFormatRAR); - if (z->data) - /* wtf? stupid unrar.dll only accept filename as an input.. */ - return archive_directory_arcacc (z, ArchiveFormatRAR); - rc = xcalloc (struct RARContext, 1); - zv = zvolume_alloc (z, ArchiveFormatRAR, rc, NULL); - rc->OpenArchiveData.ArcNameW = z->name; - rc->OpenArchiveData.OpenMode = RAR_OM_LIST; - rc->hArcData = pRAROpenArchiveEx (&rc->OpenArchiveData); - if (rc->OpenArchiveData.OpenResult != 0) { - zfile_fclose_archive (zv); - return archive_directory_arcacc (z, ArchiveFormatRAR); - } - pRARSetCallback (rc->hArcData, RARCallbackProc, 0); - cnt = 0; - while (pRARReadHeaderEx (rc->hArcData, &rc->HeaderData) == 0) { - struct zarchive_info zai; - struct znode *zn; - memset (&zai, 0, sizeof zai); - zai.name = rc->HeaderData.FileNameW; - zai.size = rc->HeaderData.UnpSize; - zai.flags = -1; - zai.tv.tv_sec = fromdostime (rc->HeaderData.FileTime); - zn = zvolume_addfile_abs (zv, &zai); - zn->offset = cnt++; - pRARProcessFile (rc->hArcData, RAR_SKIP, NULL, NULL); - } - pRARCloseArchive (rc->hArcData); - zftmp = zfile_fopen_empty (z, z->name, 0); - zv->archive = zftmp; - zv->method = ArchiveFormatRAR; - return zv; + if (!canrar ()) + return archive_directory_arcacc (z, ArchiveFormatRAR); + if (z->data) + /* wtf? stupid unrar.dll only accept filename as an input.. */ + return archive_directory_arcacc (z, ArchiveFormatRAR); + rc = xcalloc (struct RARContext, 1); + zv = zvolume_alloc (z, ArchiveFormatRAR, rc, NULL); + rc->OpenArchiveData.ArcNameW = z->name; + rc->OpenArchiveData.OpenMode = RAR_OM_LIST; + rc->hArcData = pRAROpenArchiveEx (&rc->OpenArchiveData); + if (rc->OpenArchiveData.OpenResult != 0) + { + zfile_fclose_archive (zv); + return archive_directory_arcacc (z, ArchiveFormatRAR); + } + pRARSetCallback (rc->hArcData, RARCallbackProc, 0); + cnt = 0; + while (pRARReadHeaderEx (rc->hArcData, &rc->HeaderData) == 0) + { + struct zarchive_info zai; + struct znode *zn; + memset (&zai, 0, sizeof zai); + zai.name = rc->HeaderData.FileNameW; + zai.size = rc->HeaderData.UnpSize; + zai.flags = -1; + zai.tv.tv_sec = fromdostime (rc->HeaderData.FileTime); + zn = zvolume_addfile_abs (zv, &zai); + zn->offset = cnt++; + pRARProcessFile (rc->hArcData, RAR_SKIP, NULL, NULL); + } + pRARCloseArchive (rc->hArcData); + zftmp = zfile_fopen_empty (z, z->name, 0); + zv->archive = zftmp; + zv->method = ArchiveFormatRAR; + return zv; } static struct zfile *archive_access_rar (struct znode *zn) { - struct RARContext *rc = (struct RARContext*)zn->volume->handle; - int i; - struct zfile *zf = NULL; + struct RARContext *rc = (struct RARContext*)zn->volume->handle; + int i; + struct zfile *zf = NULL; - if (zn->volume->method != ArchiveFormatRAR) - return archive_access_arcacc (zn); - rc->OpenArchiveData.OpenMode = RAR_OM_EXTRACT; - rc->hArcData = pRAROpenArchiveEx (&rc->OpenArchiveData); - if (rc->OpenArchiveData.OpenResult != 0) - return NULL; - pRARSetCallback (rc->hArcData, RARCallbackProc, 0); - for (i = 0; i <= zn->offset; i++) { - if (pRARReadHeaderEx (rc->hArcData, &rc->HeaderData)) - return NULL; - if (i < zn->offset) { - if (pRARProcessFile (rc->hArcData, RAR_SKIP, NULL, NULL)) - goto end; - } - } - zf = zfile_fopen_empty (zn->volume->archive, zn->fullname, zn->size); - if (zf) { - rarunpackzf = zf; - if (pRARProcessFile (rc->hArcData, RAR_TEST, NULL, NULL)) { - zfile_fclose (zf); - zf = NULL; - } - } + if (zn->volume->method != ArchiveFormatRAR) + return archive_access_arcacc (zn); + rc->OpenArchiveData.OpenMode = RAR_OM_EXTRACT; + rc->hArcData = pRAROpenArchiveEx (&rc->OpenArchiveData); + if (rc->OpenArchiveData.OpenResult != 0) + return NULL; + pRARSetCallback (rc->hArcData, RARCallbackProc, 0); + for (i = 0; i <= zn->offset; i++) + { + if (pRARReadHeaderEx (rc->hArcData, &rc->HeaderData)) + return NULL; + if (i < zn->offset) + { + if (pRARProcessFile (rc->hArcData, RAR_SKIP, NULL, NULL)) + goto end; + } + } + zf = zfile_fopen_empty (zn->volume->archive, zn->fullname, zn->size); + if (zf) + { + rarunpackzf = zf; + if (pRARProcessFile (rc->hArcData, RAR_TEST, NULL, NULL)) + { + zfile_fclose (zf); + zf = NULL; + } + } end: - pRARCloseArchive(rc->hArcData); - return zf; + pRARCloseArchive(rc->hArcData); + return zf; } #endif @@ -806,21 +882,22 @@ end: struct aaFILETIME { - uae_u32 dwLowDateTime; - uae_u32 dwHighDateTime; + uae_u32 dwLowDateTime; + uae_u32 dwHighDateTime; }; typedef void* aaHandle; // This struct contains file information from an archive. The caller may store // this information for accessing this file after calls to findFirst, findNext #define FileInArchiveInfoStringSize 1024 -struct aaFileInArchiveInfo { - int ArchiveHandle; // handle for Archive/class pointer - uae_u64 CompressedFileSize; - uae_u64 UncompressedFileSize; - uae_u32 attributes; - int IsDir; - struct aaFILETIME LastWriteTime; - char path[FileInArchiveInfoStringSize]; +struct aaFileInArchiveInfo +{ + int ArchiveHandle; // handle for Archive/class pointer + uae_u64 CompressedFileSize; + uae_u64 UncompressedFileSize; + uae_u32 attributes; + int IsDir; + struct aaFILETIME LastWriteTime; + char path[FileInArchiveInfoStringSize]; }; typedef HRESULT (__stdcall *aaReadCallback)(int StreamID, uae_u64 offset, uae_u32 count, void* buf, uae_u32 *processedSize); @@ -842,31 +919,33 @@ static HMODULE arcacc_mod; static void arcacc_free (void) { - if (arcacc_mod) - FreeLibrary (arcacc_mod); - arcacc_mod = NULL; + if (arcacc_mod) + FreeLibrary (arcacc_mod); + arcacc_mod = NULL; } static int arcacc_init (struct zfile *zf) { - if (arcacc_mod) - return 1; - arcacc_mod = WIN32_LoadLibrary (_T("archiveaccess.dll")); - if (!arcacc_mod) { - write_log (_T("failed to open archiveaccess.dll ('%s')\n"), zfile_getname (zf)); - return 0; - } - aaOpenArchive = (aapOpenArchive) GetProcAddress (arcacc_mod, "aaOpenArchive"); - aaGetFileCount = (aapGetFileCount) GetProcAddress (arcacc_mod, "aaGetFileCount"); - aaGetFileInfo = (aapGetFileInfo) GetProcAddress (arcacc_mod, "aaGetFileInfo"); - aaExtract = (aapExtract) GetProcAddress (arcacc_mod, "aaExtract"); - aaCloseArchive = (aapCloseArchive) GetProcAddress (arcacc_mod, "aaCloseArchive"); - if (!aaOpenArchive || !aaGetFileCount || !aaGetFileInfo || !aaExtract || !aaCloseArchive) { - write_log (_T("Missing functions in archiveaccess.dll. Old version?\n")); - arcacc_free (); - return 0; - } - return 1; + if (arcacc_mod) + return 1; + arcacc_mod = WIN32_LoadLibrary (_T("archiveaccess.dll")); + if (!arcacc_mod) + { + write_log (_T("failed to open archiveaccess.dll ('%s')\n"), zfile_getname (zf)); + return 0; + } + aaOpenArchive = (aapOpenArchive) GetProcAddress (arcacc_mod, "aaOpenArchive"); + aaGetFileCount = (aapGetFileCount) GetProcAddress (arcacc_mod, "aaGetFileCount"); + aaGetFileInfo = (aapGetFileInfo) GetProcAddress (arcacc_mod, "aaGetFileInfo"); + aaExtract = (aapExtract) GetProcAddress (arcacc_mod, "aaExtract"); + aaCloseArchive = (aapCloseArchive) GetProcAddress (arcacc_mod, "aaCloseArchive"); + if (!aaOpenArchive || !aaGetFileCount || !aaGetFileInfo || !aaExtract || !aaCloseArchive) + { + write_log (_T("Missing functions in archiveaccess.dll. Old version?\n")); + arcacc_free (); + return 0; + } + return 1; } #endif @@ -876,121 +955,125 @@ static int arcacc_stackptr = -1; static int arcacc_push (struct zfile *f) { - if (arcacc_stackptr == ARCACC_STACKSIZE - 1) - return -1; - arcacc_stackptr++; - arcacc_stack[arcacc_stackptr] = f; - return arcacc_stackptr; + if (arcacc_stackptr == ARCACC_STACKSIZE - 1) + return -1; + arcacc_stackptr++; + arcacc_stack[arcacc_stackptr] = f; + return arcacc_stackptr; } static void arcacc_pop (void) { - arcacc_stackptr--; + arcacc_stackptr--; } static HRESULT __stdcall readCallback (int StreamID, uae_u64 offset, uae_u32 count, void *buf, uae_u32 *processedSize) { - struct zfile *f = arcacc_stack[StreamID]; - int ret; + struct zfile *f = arcacc_stack[StreamID]; + int ret; - zfile_fseek (f, (long)offset, SEEK_SET); - ret = zfile_fread (buf, 1, count, f); - if (processedSize) - *processedSize = ret; - return 0; + zfile_fseek (f, (long)offset, SEEK_SET); + ret = zfile_fread (buf, 1, count, f); + if (processedSize) + *processedSize = ret; + return 0; } static HRESULT __stdcall writeCallback (int StreamID, uae_u64 offset, uae_u32 count, const void *buf, uae_u32 *processedSize) { - struct zfile *f = arcacc_stack[StreamID]; - int ret; + struct zfile *f = arcacc_stack[StreamID]; + int ret; - ret = zfile_fwrite ((void*)buf, 1, count, f); - if (processedSize) - *processedSize = ret; - if (ret != count) - return -1; - return 0; + ret = zfile_fwrite ((void*)buf, 1, count, f); + if (processedSize) + *processedSize = ret; + if (ret != count) + return -1; + return 0; } struct zvolume *archive_directory_arcacc (struct zfile *z, unsigned int id) { - aaHandle ah; - int id_r, status; - int fc, f; - struct zvolume *zv; - int skipsize = 0; + aaHandle ah; + int id_r, status; + int fc, f; + struct zvolume *zv; + int skipsize = 0; - if (!arcacc_init (z)) - return NULL; - zv = zvolume_alloc (z, ArchiveFormatAA, NULL, NULL); - id_r = arcacc_push (z); - ah = aaOpenArchive (readCallback, id_r, zv->archivesize, id, &status, NULL); - if (!status) { - zv->handle = ah; - fc = aaGetFileCount (ah); - for (f = 0; f < fc; f++) { - struct aaFileInArchiveInfo fi; - TCHAR *name; - struct znode *zn; - struct zarchive_info zai; + if (!arcacc_init (z)) + return NULL; + zv = zvolume_alloc (z, ArchiveFormatAA, NULL, NULL); + id_r = arcacc_push (z); + ah = aaOpenArchive (readCallback, id_r, zv->archivesize, id, &status, NULL); + if (!status) + { + zv->handle = ah; + fc = aaGetFileCount (ah); + for (f = 0; f < fc; f++) + { + struct aaFileInArchiveInfo fi; + TCHAR *name; + struct znode *zn; + struct zarchive_info zai; - memset (&fi, 0, sizeof (fi)); - aaGetFileInfo (ah, f, &fi); - if (fi.IsDir) - continue; + memset (&fi, 0, sizeof (fi)); + aaGetFileInfo (ah, f, &fi); + if (fi.IsDir) + continue; - name = au (fi.path); - memset (&zai, 0, sizeof zai); - zai.name = name; - zai.flags = -1; - zai.size = (unsigned int)fi.UncompressedFileSize; - zn = zvolume_addfile_abs (zv, &zai); - xfree (name); - zn->offset = f; - zn->method = id; + name = au (fi.path); + memset (&zai, 0, sizeof zai); + zai.name = name; + zai.flags = -1; + zai.size = (unsigned int)fi.UncompressedFileSize; + zn = zvolume_addfile_abs (zv, &zai); + xfree (name); + zn->offset = f; + zn->method = id; - if (id == ArchiveFormat7Zip) { - if (fi.CompressedFileSize) - skipsize = 0; - skipsize += (int)fi.UncompressedFileSize; - } - } - aaCloseArchive (ah); - } - arcacc_pop (); - zv->method = ArchiveFormatAA; - return zv; + if (id == ArchiveFormat7Zip) + { + if (fi.CompressedFileSize) + skipsize = 0; + skipsize += (int)fi.UncompressedFileSize; + } + } + aaCloseArchive (ah); + } + arcacc_pop (); + zv->method = ArchiveFormatAA; + return zv; } static struct zfile *archive_access_arcacc (struct znode *zn) { - struct zfile *zf; - struct zfile *z = zn->volume->archive; - int status, id_r, id_w; - aaHandle ah; - int ok = 0; + struct zfile *zf; + struct zfile *z = zn->volume->archive; + int status, id_r, id_w; + aaHandle ah; + int ok = 0; - id_r = arcacc_push (z); - ah = aaOpenArchive (readCallback, id_r, zn->volume->archivesize, zn->method, &status, NULL); - if (!status) { - int err; - uae_u64 written = 0; - struct aaFileInArchiveInfo fi; - memset (&fi, 0, sizeof (fi)); - aaGetFileInfo (ah, zn->offset, &fi); - zf = zfile_fopen_empty (z, zn->fullname, zn->size); - id_w = arcacc_push (zf); - err = aaExtract(ah, zn->offset, id_w, writeCallback, &written); - if (zf->seek == fi.UncompressedFileSize) - ok = 1; - arcacc_pop(); - } - aaCloseArchive(ah); - arcacc_pop(); - if (ok) - return zf; - zfile_fclose(zf); - return NULL; + id_r = arcacc_push (z); + ah = aaOpenArchive (readCallback, id_r, zn->volume->archivesize, zn->method, &status, NULL); + if (!status) + { + int err; + uae_u64 written = 0; + struct aaFileInArchiveInfo fi; + memset (&fi, 0, sizeof (fi)); + aaGetFileInfo (ah, zn->offset, &fi); + zf = zfile_fopen_empty (z, zn->fullname, zn->size); + id_w = arcacc_push (zf); + err = aaExtract(ah, zn->offset, id_w, writeCallback, &written); + if (zf->seek == fi.UncompressedFileSize) + ok = 1; + arcacc_pop(); + } + aaCloseArchive(ah); + arcacc_pop(); + if (ok) + return zf; + zfile_fclose(zf); + return NULL; } #endif @@ -998,160 +1081,172 @@ static struct zfile *archive_access_arcacc (struct znode *zn) static struct znode *addfile (struct zvolume *zv, struct zfile *zf, const TCHAR *path, uae_u8 *data, int size) { - struct zarchive_info zai; - struct znode *zn; - struct zfile *z; + struct zarchive_info zai; + struct znode *zn; + struct zfile *z; - z = zfile_fopen_empty (zf, path, size); - if (!z) - return NULL; - zfile_fwrite(data, size, 1, z); - memset(&zai, 0, sizeof zai); - zai.name = my_strdup (path); - zai.flags = -1; - zai.size = size; - zn = zvolume_addfile_abs(zv, &zai); - if (zn) - zn->f = z; - else - zfile_fclose(z); - xfree (zai.name); - return zn; + z = zfile_fopen_empty (zf, path, size); + if (!z) + return NULL; + zfile_fwrite(data, size, 1, z); + memset(&zai, 0, sizeof zai); + zai.name = my_strdup (path); + zai.flags = -1; + zai.size = size; + zn = zvolume_addfile_abs(zv, &zai); + if (zn) + zn->f = z; + else + zfile_fclose(z); + xfree (zai.name); + return zn; } -static uae_u8 exeheader[]={0x00,0x00,0x03,0xf3,0x00,0x00,0x00,0x00}; +static uae_u8 exeheader[]= {0x00,0x00,0x03,0xf3,0x00,0x00,0x00,0x00}; struct zvolume *archive_directory_plain (struct zfile *z) { - struct zfile *zf, *zf2; - struct zvolume *zv; - struct znode *zn; - struct zarchive_info zai; - uae_u8 id[8]; - int rc, index; + struct zfile *zf, *zf2; + struct zvolume *zv; + struct znode *zn; + struct zarchive_info zai; + uae_u8 id[8]; + int rc, index; - memset(&zai, 0, sizeof zai); - zv = zvolume_alloc(z, ArchiveFormatPLAIN, NULL, NULL); - memset(id, 0, sizeof id); - zai.name = zfile_getfilename (z); - zai.flags = -1; - zfile_fseek(z, 0, SEEK_END); - zai.size = zfile_ftell(z); - zfile_fseek(z, 0, SEEK_SET); - zfile_fread(id, sizeof id, 1, z); - zfile_fseek(z, 0, SEEK_SET); - zn = zvolume_addfile_abs(zv, &zai); - if (!memcmp (id, exeheader, sizeof id)) { - char *an = ua (zai.name); - char *data = xmalloc (char, 1 + strlen (an) + 1 + 1 + 1); - sprintf (data, "\"%s\"\n", an); - zn = addfile (zv, z, _T("s/startup-sequence"), (uae_u8*)data, strlen (data)); - xfree(data); - xfree (an); - } - index = 0; - for (;;) { - zf = zfile_dup (z); - if (!zf) - break; - zf2 = zuncompress (NULL, zf, 0, ZFD_ALL & ~ZFD_ADF, &rc, index); - if (zf2) { - zf = NULL; - zai.name = zfile_getfilename (zf2); - zai.flags = -1; - zfile_fseek (zf2, 0, SEEK_END); - zai.size = zfile_ftell (zf2); - zfile_fseek (zf2, 0, SEEK_SET); - zn = zvolume_addfile_abs (zv, &zai); - zn->f = zf2; + memset(&zai, 0, sizeof zai); + zv = zvolume_alloc(z, ArchiveFormatPLAIN, NULL, NULL); + memset(id, 0, sizeof id); + zai.name = zfile_getfilename (z); + zai.flags = -1; + zfile_fseek(z, 0, SEEK_END); + zai.size = zfile_ftell(z); + zfile_fseek(z, 0, SEEK_SET); + zfile_fread(id, sizeof id, 1, z); + zfile_fseek(z, 0, SEEK_SET); + zn = zvolume_addfile_abs(zv, &zai); + if (!memcmp (id, exeheader, sizeof id)) + { + char *an = ua (zai.name); + char *data = xmalloc (char, 1 + strlen (an) + 1 + 1 + 1); + sprintf (data, "\"%s\"\n", an); + zn = addfile (zv, z, _T("s/startup-sequence"), (uae_u8*)data, strlen (data)); + xfree(data); + xfree (an); + } + index = 0; + for (;;) + { + zf = zfile_dup (z); + if (!zf) + break; + zf2 = zuncompress (NULL, zf, 0, ZFD_ALL & ~ZFD_ADF, &rc, index); + if (zf2) + { + zf = NULL; + zai.name = zfile_getfilename (zf2); + zai.flags = -1; + zfile_fseek (zf2, 0, SEEK_END); + zai.size = zfile_ftell (zf2); + zfile_fseek (zf2, 0, SEEK_SET); + zn = zvolume_addfile_abs (zv, &zai); + zn->f = zf2; // if (zn) // zn->offset = index + 1; // zfile_fclose (zf2); - } else { - if (rc == 0) { - zfile_fclose (zf); - break; - } + } + else + { + if (rc == 0) + { + zfile_fclose (zf); + break; + } + } + index++; + zfile_fclose (zf); } - index++; - zfile_fclose (zf); - } - return zv; + return zv; } static struct zfile *archive_access_plain (struct znode *zn) { - struct zfile *z; + struct zfile *z; - if (zn->offset) { - struct zfile *zf; - z = zfile_fopen_empty (zn->volume->archive, zn->fullname, zn->size); - zf = zfile_fopen (zfile_getname (zn->volume->archive), _T("rb"), zn->volume->archive->zfdmask & ~ZFD_ADF, zn->offset - 1); - if (zf) { - zfile_fread (z->data, zn->size, 1, zf); - zfile_fclose (zf); - } - } else { - z = zfile_fopen_empty (zn->volume->archive, zn->fullname, zn->size); - if (z) { - zfile_fseek (zn->volume->archive, 0, SEEK_SET); - zfile_fread(z->data, zn->size, 1, zn->volume->archive); - } - } - return z; + if (zn->offset) + { + struct zfile *zf; + z = zfile_fopen_empty (zn->volume->archive, zn->fullname, zn->size); + zf = zfile_fopen (zfile_getname (zn->volume->archive), _T("rb"), zn->volume->archive->zfdmask & ~ZFD_ADF, zn->offset - 1); + if (zf) + { + zfile_fread (z->data, zn->size, 1, zf); + zfile_fclose (zf); + } + } + else + { + z = zfile_fopen_empty (zn->volume->archive, zn->fullname, zn->size); + if (z) + { + zfile_fseek (zn->volume->archive, 0, SEEK_SET); + zfile_fread(z->data, zn->size, 1, zn->volume->archive); + } + } + return z; } -struct adfhandle { - int size; - int highblock; - int blocksize; - int rootblock; - struct zfile *z; - uae_u8 block[65536]; - uae_u32 dostype; +struct adfhandle +{ + int size; + int highblock; + int blocksize; + int rootblock; + struct zfile *z; + uae_u8 block[65536]; + uae_u32 dostype; }; static int dos_checksum (uae_u8 *p, int blocksize) { - uae_u32 cs = 0; - int i; - for (i = 0; i < blocksize; i += 4) - cs += (p[i] << 24) | (p[i + 1] << 16) | (p[i + 2] << 8) | (p[i + 3] << 0); - return cs; + uae_u32 cs = 0; + int i; + for (i = 0; i < blocksize; i += 4) + cs += (p[i] << 24) | (p[i + 1] << 16) | (p[i + 2] << 8) | (p[i + 3] << 0); + return cs; } static int sfs_checksum (uae_u8 *p, int blocksize, int sfs2) { - uae_u32 cs = sfs2 ? 2 : 1; - int i; - for (i = 0; i < blocksize; i += 4) - cs += (p[i] << 24) | (p[i + 1] << 16) | (p[i + 2] << 8) | (p[i + 3] << 0); - return cs; + uae_u32 cs = sfs2 ? 2 : 1; + int i; + for (i = 0; i < blocksize; i += 4) + cs += (p[i] << 24) | (p[i + 1] << 16) | (p[i + 2] << 8) | (p[i + 3] << 0); + return cs; } static TCHAR *getBSTR (uae_u8 *bstr) { - int n = *bstr++; - uae_char buf[257]; - int i; + int n = *bstr++; + uae_char buf[257]; + int i; - for (i = 0; i < n; i++) - buf[i] = *bstr++; - buf[i] = 0; - return au (buf); + for (i = 0; i < n; i++) + buf[i] = *bstr++; + buf[i] = 0; + return au (buf); } static uae_u32 gl (struct adfhandle *adf, int off) { - uae_u8 *p = adf->block + off; - return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | (p[3] << 0); + uae_u8 *p = adf->block + off; + return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | (p[3] << 0); } static uae_u32 glx (uae_u8 *p) { - return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | (p[3] << 0); + return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | (p[3] << 0); } static uae_u32 gwx (uae_u8 *p) { - return (p[0] << 8) | (p[1] << 0); + return (p[0] << 8) | (p[1] << 0); } static const int secs_per_day = 24 * 60 * 60; @@ -1159,654 +1254,711 @@ static const int diff = (8 * 365 + 2) * (24 * 60 * 60); static const int diff2 = (-8 * 365 - 2) * (24 * 60 * 60); static time_t put_time (long days, long mins, long ticks) { - time_t t; + time_t t; - if (days < 0) - days = 0; - if (days > 9900 * 365) - days = 9900 * 365; // in future far enough? - if (mins < 0 || mins >= 24 * 60) - mins = 0; - if (ticks < 0 || ticks >= 60 * 50) - ticks = 0; + if (days < 0) + days = 0; + if (days > 9900 * 365) + days = 9900 * 365; // in future far enough? + if (mins < 0 || mins >= 24 * 60) + mins = 0; + if (ticks < 0 || ticks >= 60 * 50) + ticks = 0; - t = ticks / 50; - t += mins * 60; - t += ((uae_u64)days) * secs_per_day; - t += diff; + t = ticks / 50; + t += mins * 60; + t += ((uae_u64)days) * secs_per_day; + t += diff; - return t; + return t; } static int adf_read_block (struct adfhandle *adf, int block) { - memset (adf->block, 0, adf->blocksize); - if (block >= adf->highblock || block < 0) - return 0; - zfile_fseek (adf->z, block * adf->blocksize, SEEK_SET); - zfile_fread (adf->block, adf->blocksize, 1, adf->z); - return 1; + memset (adf->block, 0, adf->blocksize); + if (block >= adf->highblock || block < 0) + return 0; + zfile_fseek (adf->z, block * adf->blocksize, SEEK_SET); + zfile_fread (adf->block, adf->blocksize, 1, adf->z); + return 1; } static void recurseadf (struct znode *zn, int root, TCHAR *name) { - int i; - struct zvolume *zv = zn->volume; - struct adfhandle *adf = (struct adfhandle *)zv->handle; - TCHAR name2[MAX_DPATH]; - int bs = adf->blocksize; + int i; + struct zvolume *zv = zn->volume; + struct adfhandle *adf = (struct adfhandle *)zv->handle; + TCHAR name2[MAX_DPATH]; + int bs = adf->blocksize; - for (i = 0; i < bs / 4 - 56; i++) { - int block; - if (!adf_read_block (adf, root)) - return; - block = gl (adf, (i + 6) * 4); - while (block > 0 && block < adf->size / bs) { - struct zarchive_info zai; - TCHAR *fname; - uae_u32 size, secondary; + for (i = 0; i < bs / 4 - 56; i++) + { + int block; + if (!adf_read_block (adf, root)) + return; + block = gl (adf, (i + 6) * 4); + while (block > 0 && block < adf->size / bs) + { + struct zarchive_info zai; + TCHAR *fname; + uae_u32 size, secondary; - if (!adf_read_block (adf, block)) - return; - if (gl (adf, 0) != 2) - break; - if (gl (adf, 1 * 4) != block) - break; - secondary = gl (adf, bs - 1 * 4); - if (secondary != -3 && secondary != 2) - break; - memset (&zai, 0, sizeof zai); - fname = getBSTR (adf->block + bs - 20 * 4); - size = gl (adf, bs - 47 * 4); - name2[0] = 0; - if (name[0]) { - TCHAR sep[] = { FSDB_DIR_SEPARATOR, 0 }; - _tcscpy (name2, name); - _tcscat (name2, sep); - } - _tcscat (name2, fname); - zai.name = name2; - if (size < 0 || size > 0x7fffffff) - size = 0; - zai.size = size; - zai.flags = gl (adf, bs - 48 * 4); - amiga_to_timeval (&zai.tv, gl (adf, bs - 23 * 4), gl (adf, bs - 22 * 4),gl (adf, bs - 21 * 4)); - if (secondary == -3) { - struct znode *znnew = zvolume_addfile_abs (zv, &zai); - znnew->offset = block; - } else { - struct znode *znnew = zvolume_adddir_abs (zv, &zai); - znnew->offset = block; - recurseadf (znnew, block, name2); - if (!adf_read_block (adf, block)) - return; - } - xfree (fname); - block = gl (adf, bs - 4 * 4); - } - } + if (!adf_read_block (adf, block)) + return; + if (gl (adf, 0) != 2) + break; + if (gl (adf, 1 * 4) != block) + break; + secondary = gl (adf, bs - 1 * 4); + if (secondary != -3 && secondary != 2) + break; + memset (&zai, 0, sizeof zai); + fname = getBSTR (adf->block + bs - 20 * 4); + size = gl (adf, bs - 47 * 4); + name2[0] = 0; + if (name[0]) + { + TCHAR sep[] = { FSDB_DIR_SEPARATOR, 0 }; + _tcscpy (name2, name); + _tcscat (name2, sep); + } + _tcscat (name2, fname); + zai.name = name2; + if (size < 0 || size > 0x7fffffff) + size = 0; + zai.size = size; + zai.flags = gl (adf, bs - 48 * 4); + amiga_to_timeval (&zai.tv, gl (adf, bs - 23 * 4), gl (adf, bs - 22 * 4),gl (adf, bs - 21 * 4)); + if (secondary == -3) + { + struct znode *znnew = zvolume_addfile_abs (zv, &zai); + znnew->offset = block; + } + else + { + struct znode *znnew = zvolume_adddir_abs (zv, &zai); + znnew->offset = block; + recurseadf (znnew, block, name2); + if (!adf_read_block (adf, block)) + return; + } + xfree (fname); + block = gl (adf, bs - 4 * 4); + } + } } static void recursesfs (struct znode *zn, int root, TCHAR *name, int sfs2) { - struct zvolume *zv = zn->volume; - struct adfhandle *adf = (struct adfhandle *)zv->handle; - TCHAR name2[MAX_DPATH]; - int bs = adf->blocksize; - int block; - uae_u8 *p, *s; - struct zarchive_info zai; + struct zvolume *zv = zn->volume; + struct adfhandle *adf = (struct adfhandle *)zv->handle; + TCHAR name2[MAX_DPATH]; + int bs = adf->blocksize; + int block; + uae_u8 *p, *s; + struct zarchive_info zai; - block = root; - while (block) { - if (!adf_read_block (adf, block)) - return; - p = adf->block + 12 + 3 * 4; - while (glx (p + 4) && p < adf->block + adf->blocksize - 27) { - TCHAR *fname; - int i; - int align; + block = root; + while (block) + { + if (!adf_read_block (adf, block)) + return; + p = adf->block + 12 + 3 * 4; + while (glx (p + 4) && p < adf->block + adf->blocksize - 27) + { + TCHAR *fname; + int i; + int align; - memset (&zai, 0, sizeof zai); - zai.flags = glx (p + 8) ^ 0x0f; - s = p + (sfs2 ? 27 : 25); - fname = au ((char*)s); - i = 0; - while (*s) { - s++; - i++; - } - s++; - i++; - if (*s) - zai.comment = au ((char*)s); - while (*s) { - s++; - i++; - } - s++; - i++; - i += sfs2 ? 27 : 25; - align = i & 1; + memset (&zai, 0, sizeof zai); + zai.flags = glx (p + 8) ^ 0x0f; + s = p + (sfs2 ? 27 : 25); + fname = au ((char*)s); + i = 0; + while (*s) + { + s++; + i++; + } + s++; + i++; + if (*s) + zai.comment = au ((char*)s); + while (*s) + { + s++; + i++; + } + s++; + i++; + i += sfs2 ? 27 : 25; + align = i & 1; - name2[0] = 0; - if (name[0]) { - TCHAR sep[] = { FSDB_DIR_SEPARATOR, 0 }; - _tcscpy (name2, name); - _tcscat (name2, sep); - } - _tcscat (name2, fname); - zai.name = name2; - if (sfs2) - zai.tv.tv_sec = glx (p + 22) - diff2; - else - zai.tv.tv_sec = glx (p + 20) - diff; - if (p[sfs2 ? 26 : 24] & 0x80) { // dir - struct znode *znnew = zvolume_adddir_abs (zv, &zai); - int newblock = glx (p + 16); - if (newblock) { - znnew->offset = block; - recursesfs (znnew, newblock, name2, sfs2); - } - if (!adf_read_block (adf, block)) - return; - } else { - struct znode *znnew; - if (sfs2) { - uae_u64 b1 = p[16]; - uae_u64 b2 = p[17]; - zai.size = (b1 << 40) | (b2 << 32) | glx (p + 18) ; - } else { - zai.size = glx (p + 16); - } - znnew = zvolume_addfile_abs (zv, &zai); - znnew->offset = block; - znnew->offset2 = p - adf->block; - } - xfree (zai.comment); - xfree (fname); - p += i + align; - } - block = gl (adf, 12 + 4); - } + name2[0] = 0; + if (name[0]) + { + TCHAR sep[] = { FSDB_DIR_SEPARATOR, 0 }; + _tcscpy (name2, name); + _tcscat (name2, sep); + } + _tcscat (name2, fname); + zai.name = name2; + if (sfs2) + zai.tv.tv_sec = glx (p + 22) - diff2; + else + zai.tv.tv_sec = glx (p + 20) - diff; + if (p[sfs2 ? 26 : 24] & 0x80) // dir + { + struct znode *znnew = zvolume_adddir_abs (zv, &zai); + int newblock = glx (p + 16); + if (newblock) + { + znnew->offset = block; + recursesfs (znnew, newblock, name2, sfs2); + } + if (!adf_read_block (adf, block)) + return; + } + else + { + struct znode *znnew; + if (sfs2) + { + uae_u64 b1 = p[16]; + uae_u64 b2 = p[17]; + zai.size = (b1 << 40) | (b2 << 32) | glx (p + 18) ; + } + else + { + zai.size = glx (p + 16); + } + znnew = zvolume_addfile_abs (zv, &zai); + znnew->offset = block; + znnew->offset2 = p - adf->block; + } + xfree (zai.comment); + xfree (fname); + p += i + align; + } + block = gl (adf, 12 + 4); + } } struct zvolume *archive_directory_adf (struct znode *parent, struct zfile *z) { - struct zvolume *zv; - struct adfhandle *adf; - TCHAR *volname = NULL; - TCHAR name[MAX_DPATH]; - int gotroot = 0; + struct zvolume *zv; + struct adfhandle *adf; + TCHAR *volname = NULL; + TCHAR name[MAX_DPATH]; + int gotroot = 0; - adf = xcalloc (struct adfhandle, 1); - zfile_fseek (z, 0, SEEK_END); - adf->size = zfile_ftell (z); - zfile_fseek (z, 0, SEEK_SET); + adf = xcalloc (struct adfhandle, 1); + zfile_fseek (z, 0, SEEK_END); + adf->size = zfile_ftell (z); + zfile_fseek (z, 0, SEEK_SET); - adf->blocksize = 512; - if (parent && parent->offset2) { - if (parent->offset2 == 1024 || parent->offset2 == 2048 || parent->offset2 == 4096 || parent->offset2 == 8192 || - parent->offset2 == 16384 || parent->offset2 == 32768 || parent->offset2 == 65536) { - adf->blocksize = parent->offset2; - gotroot = 1; - } - } + adf->blocksize = 512; + if (parent && parent->offset2) + { + if (parent->offset2 == 1024 || parent->offset2 == 2048 || parent->offset2 == 4096 || parent->offset2 == 8192 || + parent->offset2 == 16384 || parent->offset2 == 32768 || parent->offset2 == 65536) + { + adf->blocksize = parent->offset2; + gotroot = 1; + } + } - adf->highblock = adf->size / adf->blocksize; - adf->z = z; - - if (!adf_read_block (adf, 0)) - goto fail; - adf->dostype = gl (adf, 0); - - if ((adf->dostype & 0xffffff00) == 'DOS\0') { - int bs = adf->blocksize; - int res; - - adf->rootblock = ((adf->size / bs) - 1 + 2) / 2; - if (!gotroot) { - for (res = 2; res >= 1; res--) { - for (bs = 512; bs < 65536; bs <<= 1) { - adf->blocksize = bs; - adf->rootblock = ((adf->size / bs) - 1 + res) / 2; - if (!adf_read_block (adf, adf->rootblock)) - continue; - if (gl (adf, 0) != 2 || gl (adf, bs - 1 * 4) != 1) - continue; - if (dos_checksum (adf->block, bs) != 0) - continue; - gotroot = 1; - break; - } - if (gotroot) - break; - } - } - if (!gotroot) { - bs = adf->blocksize = 512; - if (adf->size < 2000000 && adf->rootblock != 880) { - adf->rootblock = 880; - if (!adf_read_block (adf, adf->rootblock)) - goto fail; - if (gl (adf, 0) != 2 || gl (adf, bs - 1 * 4) != 1) - goto fail; - if (dos_checksum (adf->block, bs) != 0) - goto fail; - } - } - - if (!adf_read_block (adf, adf->rootblock)) - goto fail; - if (gl (adf, 0) != 2 || gl (adf, bs - 1 * 4) != 1) - goto fail; - if (dos_checksum (adf->block, adf->blocksize) != 0) - goto fail; - adf->blocksize = bs; adf->highblock = adf->size / adf->blocksize; - volname = getBSTR (adf->block + adf->blocksize - 20 * 4); - zv = zvolume_alloc (z, ArchiveFormatADF, NULL, NULL); - zv->method = ArchiveFormatADF; - zv->handle = adf; - - name[0] = 0; - recurseadf (&zv->root, adf->rootblock, name); + adf->z = z; - } else if ((adf->dostype & 0xffffff00) == 'SFS\0') { + if (!adf_read_block (adf, 0)) + goto fail; + adf->dostype = gl (adf, 0); - uae_u16 version, sfs2; + if ((adf->dostype & 0xffffff00) == 'DOS\0') + { + int bs = adf->blocksize; + int res; - for (;;) { - for (;;) { - version = gl (adf, 12) >> 16; - sfs2 = version > 3; - if (version > 4) - break; - adf->rootblock = gl (adf, 104); - if (!adf_read_block (adf, adf->rootblock)) - break; - if (gl (adf, 0) != 'OBJC') - break; - if (sfs_checksum (adf->block, adf->blocksize, sfs2)) - break; - adf->rootblock = gl (adf, 40); - if (!adf_read_block (adf, adf->rootblock)) - break; - if (gl (adf, 0) != 'OBJC') - break; - if (sfs_checksum (adf->block, adf->blocksize, sfs2)) - break; - gotroot = 1; - break; - } - if (gotroot) - break; - adf->blocksize <<= 1; - if (adf->blocksize == 65536) - break; - } - if (!gotroot) - goto fail; + adf->rootblock = ((adf->size / bs) - 1 + 2) / 2; + if (!gotroot) + { + for (res = 2; res >= 1; res--) + { + for (bs = 512; bs < 65536; bs <<= 1) + { + adf->blocksize = bs; + adf->rootblock = ((adf->size / bs) - 1 + res) / 2; + if (!adf_read_block (adf, adf->rootblock)) + continue; + if (gl (adf, 0) != 2 || gl (adf, bs - 1 * 4) != 1) + continue; + if (dos_checksum (adf->block, bs) != 0) + continue; + gotroot = 1; + break; + } + if (gotroot) + break; + } + } + if (!gotroot) + { + bs = adf->blocksize = 512; + if (adf->size < 2000000 && adf->rootblock != 880) + { + adf->rootblock = 880; + if (!adf_read_block (adf, adf->rootblock)) + goto fail; + if (gl (adf, 0) != 2 || gl (adf, bs - 1 * 4) != 1) + goto fail; + if (dos_checksum (adf->block, bs) != 0) + goto fail; + } + } - zv = zvolume_alloc (z, ArchiveFormatADF, NULL, NULL); - zv->method = ArchiveFormatADF; - zv->handle = adf; + if (!adf_read_block (adf, adf->rootblock)) + goto fail; + if (gl (adf, 0) != 2 || gl (adf, bs - 1 * 4) != 1) + goto fail; + if (dos_checksum (adf->block, adf->blocksize) != 0) + goto fail; + adf->blocksize = bs; + adf->highblock = adf->size / adf->blocksize; + volname = getBSTR (adf->block + adf->blocksize - 20 * 4); + zv = zvolume_alloc (z, ArchiveFormatADF, NULL, NULL); + zv->method = ArchiveFormatADF; + zv->handle = adf; - name[0] = 0; - recursesfs (&zv->root, adf->rootblock, name, version > 3); + name[0] = 0; + recurseadf (&zv->root, adf->rootblock, name); - } else { - goto fail; - } + } + else if ((adf->dostype & 0xffffff00) == 'SFS\0') + { + + uae_u16 version, sfs2; + + for (;;) + { + for (;;) + { + version = gl (adf, 12) >> 16; + sfs2 = version > 3; + if (version > 4) + break; + adf->rootblock = gl (adf, 104); + if (!adf_read_block (adf, adf->rootblock)) + break; + if (gl (adf, 0) != 'OBJC') + break; + if (sfs_checksum (adf->block, adf->blocksize, sfs2)) + break; + adf->rootblock = gl (adf, 40); + if (!adf_read_block (adf, adf->rootblock)) + break; + if (gl (adf, 0) != 'OBJC') + break; + if (sfs_checksum (adf->block, adf->blocksize, sfs2)) + break; + gotroot = 1; + break; + } + if (gotroot) + break; + adf->blocksize <<= 1; + if (adf->blocksize == 65536) + break; + } + if (!gotroot) + goto fail; + + zv = zvolume_alloc (z, ArchiveFormatADF, NULL, NULL); + zv->method = ArchiveFormatADF; + zv->handle = adf; + + name[0] = 0; + recursesfs (&zv->root, adf->rootblock, name, version > 3); + + } + else + { + goto fail; + } - xfree (volname); - return zv; + xfree (volname); + return zv; fail: - xfree (adf); - return NULL; + xfree (adf); + return NULL; } struct sfsblock { - int block; - int length; + int block; + int length; }; static int sfsfindblock (struct adfhandle *adf, int btree, int theblock, struct sfsblock **sfsb, int *sfsblockcnt, int *sfsmaxblockcnt, int sfs2) { - int nodecount, isleaf, nodesize; - int i; - uae_u8 *p; + int nodecount, isleaf, nodesize; + int i; + uae_u8 *p; - if (!btree) - return 0; - if (!adf_read_block (adf, btree)) + if (!btree) + return 0; + if (!adf_read_block (adf, btree)) + return 0; + if (memcmp (adf->block, "BNDC", 4)) + return 0; + nodecount = gwx (adf->block + 12); + isleaf = adf->block[14]; + nodesize = adf->block[15]; + p = adf->block + 16; + for (i = 0; i < nodecount; i++) + { + if (isleaf) + { + uae_u32 key = glx (p); + uae_u32 next = glx (p + 4); + uae_u32 prev = glx (p + 8); + uae_u32 blocks; + if (sfs2) + blocks = glx (p + 12); + else + blocks = gwx (p + 12); + if (key == theblock) + { + struct sfsblock *sb; + if (*sfsblockcnt >= *sfsmaxblockcnt) + { + *sfsmaxblockcnt += 100; + *sfsb = xrealloc (struct sfsblock, *sfsb, *sfsmaxblockcnt); + } + sb = *sfsb + (*sfsblockcnt); + sb->block = key; + sb->length = blocks; + (*sfsblockcnt)++; + return next; + } + } + else + { + uae_u32 key = glx (p); + uae_u32 data = glx (p + 4); + int newblock = sfsfindblock (adf, data, theblock, sfsb, sfsblockcnt, sfsmaxblockcnt, sfs2); + if (newblock) + return newblock; + if (!adf_read_block (adf, btree)) + return 0; + if (memcmp (adf->block, "BNDC", 4)) + return 0; + } + p += nodesize; + } return 0; - if (memcmp (adf->block, "BNDC", 4)) - return 0; - nodecount = gwx (adf->block + 12); - isleaf = adf->block[14]; - nodesize = adf->block[15]; - p = adf->block + 16; - for (i = 0; i < nodecount; i++) { - if (isleaf) { - uae_u32 key = glx (p); - uae_u32 next = glx (p + 4); - uae_u32 prev = glx (p + 8); - uae_u32 blocks; - if (sfs2) - blocks = glx (p + 12); - else - blocks = gwx (p + 12); - if (key == theblock) { - struct sfsblock *sb; - if (*sfsblockcnt >= *sfsmaxblockcnt) { - *sfsmaxblockcnt += 100; - *sfsb = xrealloc (struct sfsblock, *sfsb, *sfsmaxblockcnt); - } - sb = *sfsb + (*sfsblockcnt); - sb->block = key; - sb->length = blocks; - (*sfsblockcnt)++; - return next; - } - } else { - uae_u32 key = glx (p); - uae_u32 data = glx (p + 4); - int newblock = sfsfindblock (adf, data, theblock, sfsb, sfsblockcnt, sfsmaxblockcnt, sfs2); - if (newblock) - return newblock; - if (!adf_read_block (adf, btree)) - return 0; - if (memcmp (adf->block, "BNDC", 4)) - return 0; - } - p += nodesize; - } - return 0; } static struct zfile *archive_access_adf (struct znode *zn) { - struct zfile *z = NULL; - int root, ffs; - struct adfhandle *adf = (struct adfhandle *)zn->volume->handle; - int size, bs; - int i; - uae_u8 *dst; + struct zfile *z = NULL; + int root, ffs; + struct adfhandle *adf = (struct adfhandle *)zn->volume->handle; + int size, bs; + int i; + uae_u8 *dst; - size = zn->size; - bs = adf->blocksize; - z = zfile_fopen_empty (zn->volume->archive, zn->fullname, size); - if (!z) - return NULL; + size = zn->size; + bs = adf->blocksize; + z = zfile_fopen_empty (zn->volume->archive, zn->fullname, size); + if (!z) + return NULL; - if ((adf->dostype & 0xffffff00) == 'DOS\0') { + if ((adf->dostype & 0xffffff00) == 'DOS\0') + { - ffs = adf->dostype & 1; - root = zn->offset; - dst = z->data; - for (;;) { - adf_read_block (adf, root); - for (i = bs / 4 - 51; i >= 6; i--) { - int bsize = ffs ? bs : bs - 24; - int block = gl (adf, i * 4); - if (size < bsize) - bsize = size; - if (ffs) - zfile_fseek (adf->z, block * adf->blocksize, SEEK_SET); - else - zfile_fseek (adf->z, block * adf->blocksize + 24, SEEK_SET); - zfile_fread (dst, bsize, 1, adf->z); - size -= bsize; - dst += bsize; - if (size <= 0) - break; - } - if (size <= 0) - break; - root = gl (adf, bs - 2 * 4); - } - } else if ((adf->dostype & 0xffffff00) == 'SFS\0') { + ffs = adf->dostype & 1; + root = zn->offset; + dst = z->data; + for (;;) + { + adf_read_block (adf, root); + for (i = bs / 4 - 51; i >= 6; i--) + { + int bsize = ffs ? bs : bs - 24; + int block = gl (adf, i * 4); + if (size < bsize) + bsize = size; + if (ffs) + zfile_fseek (adf->z, block * adf->blocksize, SEEK_SET); + else + zfile_fseek (adf->z, block * adf->blocksize + 24, SEEK_SET); + zfile_fread (dst, bsize, 1, adf->z); + size -= bsize; + dst += bsize; + if (size <= 0) + break; + } + if (size <= 0) + break; + root = gl (adf, bs - 2 * 4); + } + } + else if ((adf->dostype & 0xffffff00) == 'SFS\0') + { - struct sfsblock *sfsblocks; - int sfsblockcnt, sfsmaxblockcnt, i; - int bsize; - int block = zn->offset; - int dblock; - int btree, version, sfs2; - uae_u8 *p; + struct sfsblock *sfsblocks; + int sfsblockcnt, sfsmaxblockcnt, i; + int bsize; + int block = zn->offset; + int dblock; + int btree, version, sfs2; + uae_u8 *p; - if (!adf_read_block (adf, 0)) - goto end; - btree = glx (adf->block + 108); - version = gwx (adf->block + 12); - sfs2 = version > 3; + if (!adf_read_block (adf, 0)) + goto end; + btree = glx (adf->block + 108); + version = gwx (adf->block + 12); + sfs2 = version > 3; - if (!adf_read_block (adf, block)) - goto end; - p = adf->block + zn->offset2; - dblock = glx (p + 12); + if (!adf_read_block (adf, block)) + goto end; + p = adf->block + zn->offset2; + dblock = glx (p + 12); - sfsblockcnt = 0; - sfsmaxblockcnt = 0; - sfsblocks = NULL; - if (size > 0) { - int nextblock = dblock; - while (nextblock) { - nextblock = sfsfindblock (adf, btree, nextblock, &sfsblocks, &sfsblockcnt, &sfsmaxblockcnt, sfs2); - } - } + sfsblockcnt = 0; + sfsmaxblockcnt = 0; + sfsblocks = NULL; + if (size > 0) + { + int nextblock = dblock; + while (nextblock) + { + nextblock = sfsfindblock (adf, btree, nextblock, &sfsblocks, &sfsblockcnt, &sfsmaxblockcnt, sfs2); + } + } - bsize = 0; - for (i = 0; i < sfsblockcnt; i++) - bsize += sfsblocks[i].length * adf->blocksize; - if (bsize < size) - write_log (_T("SFS extracting error, %s size mismatch %d<%d\n"), z->name, bsize, size); + bsize = 0; + for (i = 0; i < sfsblockcnt; i++) + bsize += sfsblocks[i].length * adf->blocksize; + if (bsize < size) + write_log (_T("SFS extracting error, %s size mismatch %d<%d\n"), z->name, bsize, size); - dst = z->data; - block = zn->offset; - for (i = 0; i < sfsblockcnt; i++) { - block = sfsblocks[i].block; - bsize = sfsblocks[i].length * adf->blocksize; - zfile_fseek (adf->z, block * adf->blocksize, SEEK_SET); - if (bsize > size) - bsize = size; - zfile_fread (dst, bsize, 1, adf->z); - dst += bsize; - size -= bsize; - } + dst = z->data; + block = zn->offset; + for (i = 0; i < sfsblockcnt; i++) + { + block = sfsblocks[i].block; + bsize = sfsblocks[i].length * adf->blocksize; + zfile_fseek (adf->z, block * adf->blocksize, SEEK_SET); + if (bsize > size) + bsize = size; + zfile_fread (dst, bsize, 1, adf->z); + dst += bsize; + size -= bsize; + } - xfree (sfsblocks); - } - return z; + xfree (sfsblocks); + } + return z; end: - zfile_fclose (z); - return NULL; + zfile_fclose (z); + return NULL; } static void archive_close_adf (void *v) { - struct adfhandle *adf = (struct adfhandle *)v; - xfree (adf); + struct adfhandle *adf = (struct adfhandle *)v; + xfree (adf); } static int rl (uae_u8 *p) { - return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | (p[3]); + return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | (p[3]); } static TCHAR *tochar (uae_u8 *s, int len) { - int i, j; - uae_char tmp[256]; - j = 0; - for (i = 0; i < len; i++) { - uae_char c = *s++; - if (c >= 0 && c <= 9) { - tmp[j++] = FSDB_DIR_SEPARATOR; - tmp[j++] = '0' + c; - } else if (c < ' ' || c > 'z') { - tmp[j++] = '.'; - } else { - tmp[j++] = c; - } - tmp[j] = 0; - } - return au (tmp); + int i, j; + uae_char tmp[256]; + j = 0; + for (i = 0; i < len; i++) + { + uae_char c = *s++; + if (c >= 0 && c <= 9) + { + tmp[j++] = FSDB_DIR_SEPARATOR; + tmp[j++] = '0' + c; + } + else if (c < ' ' || c > 'z') + { + tmp[j++] = '.'; + } + else + { + tmp[j++] = c; + } + tmp[j] = 0; + } + return au (tmp); } struct zvolume *archive_directory_rdb (struct zfile *z) { - uae_u8 buf[512] = { 0 }; - int partnum, bs; - TCHAR *devname; - struct zvolume *zv; - struct zarchive_info zai; - uae_u8 *p; - struct znode *zn; + uae_u8 buf[512] = { 0 }; + int partnum, bs; + TCHAR *devname; + struct zvolume *zv; + struct zarchive_info zai; + uae_u8 *p; + struct znode *zn; - zv = zvolume_alloc (z, ArchiveFormatRDB, NULL, NULL); + zv = zvolume_alloc (z, ArchiveFormatRDB, NULL, NULL); - zfile_fseek (z, 0, SEEK_SET); - zfile_fread (buf, 1, 512, z); + zfile_fseek (z, 0, SEEK_SET); + zfile_fread (buf, 1, 512, z); - partnum = 0; - for (;;) { - int partblock; - TCHAR tmp[MAX_DPATH]; - int surf, spt, spb, lowcyl, highcyl, reserved; - int size, block, blocksize, rootblock; - TCHAR comment[81], *dos; + partnum = 0; + for (;;) + { + int partblock; + TCHAR tmp[MAX_DPATH]; + int surf, spt, spb, lowcyl, highcyl, reserved; + int size, block, blocksize, rootblock; + TCHAR comment[81], *dos; - if (partnum == 0) - partblock = rl (buf + 28); - else - partblock = rl (buf + 4 * 4); - partnum++; - if (partblock <= 0) - break; - zfile_fseek (z, partblock * 512, SEEK_SET); - zfile_fread (buf, 1, 512, z); - if (memcmp (buf, "PART", 4)) - break; + if (partnum == 0) + partblock = rl (buf + 28); + else + partblock = rl (buf + 4 * 4); + partnum++; + if (partblock <= 0) + break; + zfile_fseek (z, partblock * 512, SEEK_SET); + zfile_fread (buf, 1, 512, z); + if (memcmp (buf, "PART", 4)) + break; - p = buf + 128 - 16; - surf = rl (p + 28); - spb = rl (p + 32); - spt = rl (p + 36); - reserved = rl (p + 40); - lowcyl = rl (p + 52); - highcyl = rl (p + 56); - blocksize = rl (p + 20) * 4 * spb; - block = lowcyl * surf * spt; + p = buf + 128 - 16; + surf = rl (p + 28); + spb = rl (p + 32); + spt = rl (p + 36); + reserved = rl (p + 40); + lowcyl = rl (p + 52); + highcyl = rl (p + 56); + blocksize = rl (p + 20) * 4 * spb; + block = lowcyl * surf * spt; - size = (highcyl - lowcyl + 1) * surf * spt; - size *= blocksize; + size = (highcyl - lowcyl + 1) * surf * spt; + size *= blocksize; - dos = tochar (buf + 192, 4); + dos = tochar (buf + 192, 4); - if (!memcmp (dos, _T("DOS"), 3)) - rootblock = ((size / blocksize) - 1 + 2) / 2; - else - rootblock = 0; + if (!memcmp (dos, _T("DOS"), 3)) + rootblock = ((size / blocksize) - 1 + 2) / 2; + else + rootblock = 0; - devname = getBSTR (buf + 36); - _stprintf (tmp, _T("%s.hdf"), devname); - memset (&zai, 0, sizeof zai); - _stprintf (comment, _T("FS=%s LO=%d HI=%d HEADS=%d SPT=%d RES=%d BLOCK=%d ROOT=%d"), - dos, lowcyl, highcyl, surf, spt, reserved, blocksize, rootblock); - zai.comment = comment; - xfree (dos); - zai.name = tmp; - zai.size = size; - zai.flags = -1; - zn = zvolume_addfile_abs (zv, &zai); - zn->offset = partblock; - zn->offset2 = blocksize; // abuse of offset2.. - } + devname = getBSTR (buf + 36); + _stprintf (tmp, _T("%s.hdf"), devname); + memset (&zai, 0, sizeof zai); + _stprintf (comment, _T("FS=%s LO=%d HI=%d HEADS=%d SPT=%d RES=%d BLOCK=%d ROOT=%d"), + dos, lowcyl, highcyl, surf, spt, reserved, blocksize, rootblock); + zai.comment = comment; + xfree (dos); + zai.name = tmp; + zai.size = size; + zai.flags = -1; + zn = zvolume_addfile_abs (zv, &zai); + zn->offset = partblock; + zn->offset2 = blocksize; // abuse of offset2.. + } - zfile_fseek (z, 0, SEEK_SET); - p = buf; - zfile_fread (buf, 1, 512, z); - zai.name = _T("rdb_dump.dat"); - bs = rl (p + 16); - zai.size = rl (p + 140) * bs; - zai.comment = NULL; - zn = zvolume_addfile_abs (zv, &zai); - zn->offset = 0; + zfile_fseek (z, 0, SEEK_SET); + p = buf; + zfile_fread (buf, 1, 512, z); + zai.name = _T("rdb_dump.dat"); + bs = rl (p + 16); + zai.size = rl (p + 140) * bs; + zai.comment = NULL; + zn = zvolume_addfile_abs (zv, &zai); + zn->offset = 0; - zv->method = ArchiveFormatRDB; - return zv; + zv->method = ArchiveFormatRDB; + return zv; } static struct zfile *archive_access_rdb (struct znode *zn) { - struct zfile *z = zn->volume->archive; - struct zfile *zf; - uae_u8 buf[512] = { 0 }; - int surf, spb, spt, lowcyl, highcyl; - int size, block, blocksize; - uae_u8 *p; + struct zfile *z = zn->volume->archive; + struct zfile *zf; + uae_u8 buf[512] = { 0 }; + int surf, spb, spt, lowcyl, highcyl; + int size, block, blocksize; + uae_u8 *p; - if (zn->offset) { - zfile_fseek (z, zn->offset * 512, SEEK_SET); - zfile_fread (buf, 1, 512, z); + if (zn->offset) + { + zfile_fseek (z, zn->offset * 512, SEEK_SET); + zfile_fread (buf, 1, 512, z); - p = buf + 128 - 16; - surf = rl (p + 28); - spb = rl (p + 32); - spt = rl (p + 36); - lowcyl = rl (p + 52); - highcyl = rl (p + 56); - blocksize = rl (p + 20) * 4; - block = lowcyl * surf * spt; + p = buf + 128 - 16; + surf = rl (p + 28); + spb = rl (p + 32); + spt = rl (p + 36); + lowcyl = rl (p + 52); + highcyl = rl (p + 56); + blocksize = rl (p + 20) * 4; + block = lowcyl * surf * spt; - size = (highcyl - lowcyl + 1) * surf * spt; - size *= blocksize; - } else { - zfile_fseek (z, 0, SEEK_SET); - zfile_fread (buf, 1, 512, z); - p = buf; - blocksize = rl (p + 16); - block = 0; - size = zn->size; - } + size = (highcyl - lowcyl + 1) * surf * spt; + size *= blocksize; + } + else + { + zfile_fseek (z, 0, SEEK_SET); + zfile_fread (buf, 1, 512, z); + p = buf; + blocksize = rl (p + 16); + block = 0; + size = zn->size; + } - zf = zfile_fopen_parent (z, zn->fullname, block * blocksize, size); - return zf; + zf = zfile_fopen_parent (z, zn->fullname, block * blocksize, size); + return zf; } int isfat (uae_u8 *p) { - int i, b; + int i, b; - if ((p[0x15] & 0xf0) != 0xf0) - return 0; - if (p[0x0b] != 0x00 || p[0x0c] != 0x02) - return 0; - b = 0; - for (i = 0; i < 8; i++) { - if (p[0x0d] & (1 << i)) - b++; - } - if (b != 1) - return 0; - if (p[0x0f] != 0) - return 0; - if (p[0x0e] > 8 || p[0x0e] == 0) - return 0; - if (p[0x10] == 0 || p[0x10] > 8) - return 0; - b = (p[0x12] << 8) | p[0x11]; - if (b > 8192 || b <= 0) - return 0; - b = p[0x16] | (p[0x17] << 8); - if (b == 0 || b > 8192) - return 0; - return 1; + if ((p[0x15] & 0xf0) != 0xf0) + return 0; + if (p[0x0b] != 0x00 || p[0x0c] != 0x02) + return 0; + b = 0; + for (i = 0; i < 8; i++) + { + if (p[0x0d] & (1 << i)) + b++; + } + if (b != 1) + return 0; + if (p[0x0f] != 0) + return 0; + if (p[0x0e] > 8 || p[0x0e] == 0) + return 0; + if (p[0x10] == 0 || p[0x10] > 8) + return 0; + b = (p[0x12] << 8) | p[0x11]; + if (b > 8192 || b <= 0) + return 0; + b = p[0x16] | (p[0x17] << 8); + if (b == 0 || b > 8192) + return 0; + return 1; } /* @@ -1822,344 +1974,362 @@ int isfat (uae_u8 *p) #define SECS_PER_MIN 60 #define SECS_PER_HOUR (60 * 60) #define SECS_PER_DAY (SECS_PER_HOUR * 24) -#define UNIX_SECS_1980 315532800L +#define UNIX_SECS_1980 315532800L #if BITS_PER_LONG == 64 #define UNIX_SECS_2108 4354819200L #endif /* days between 1.1.70 and 1.1.80 (2 leap days) */ -#define DAYS_DELTA (365 * 10 + 2) +#define DAYS_DELTA (365 * 10 + 2) /* 120 (2100 - 1980) isn't leap year */ -#define YEAR_2100 120 +#define YEAR_2100 120 #define IS_LEAP_YEAR(y) (!((y) & 3) && (y) != YEAR_2100) /* Linear day numbers of the respective 1sts in non-leap years. */ -static time_t days_in_year[] = { - /* Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec */ - 0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 0, 0, 0, +static time_t days_in_year[] = +{ + /* Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec */ + 0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 0, 0, 0, }; /* Convert a FAT time/date pair to a UNIX date (seconds since 1 1 70). */ static time_t fat_time_fat2unix (uae_u16 time, uae_u16 date, int fat12) { - time_t second, day, leap_day, month, year; + time_t second, day, leap_day, month, year; - if (0 && fat12) { - year = date & 0x7f; - month = (date >> 7) & 0x0f; - day = (date >> 11); - } else { - year = date >> 9; - month = max(1, (date >> 5) & 0xf); - day = max(1, date & 0x1f) - 1; - } + if (0 && fat12) + { + year = date & 0x7f; + month = (date >> 7) & 0x0f; + day = (date >> 11); + } + else + { + year = date >> 9; + month = max(1, (date >> 5) & 0xf); + day = max(1, date & 0x1f) - 1; + } - leap_day = (year + 3) / 4; - if (year > YEAR_2100) /* 2100 isn't leap year */ - leap_day--; - if (IS_LEAP_YEAR(year) && month > 2) - leap_day++; + leap_day = (year + 3) / 4; + if (year > YEAR_2100) /* 2100 isn't leap year */ + leap_day--; + if (IS_LEAP_YEAR(year) && month > 2) + leap_day++; - second = (time & 0x1f) << 1; - second += ((time >> 5) & 0x3f) * SECS_PER_MIN; - second += (time >> 11) * SECS_PER_HOUR; - second += (year * 365 + leap_day - + days_in_year[month] + day - + DAYS_DELTA) * SECS_PER_DAY; - return second; + second = (time & 0x1f) << 1; + second += ((time >> 5) & 0x3f) * SECS_PER_MIN; + second += (time >> 11) * SECS_PER_HOUR; + second += (year * 365 + leap_day + + days_in_year[month] + day + + DAYS_DELTA) * SECS_PER_DAY; + return second; } static int getcluster (struct zfile *z, int cluster, int fatstart, int fatbits) { - uae_u32 fat = 0; - uae_u8 p[4]; - int offset = cluster * fatbits; - zfile_fseek (z, fatstart * 512 + offset / 8, SEEK_SET); - if (fatbits == 12) { - zfile_fread (p, 2, 1, z); - if ((offset & 4)) - fat = ((p[0] & 0xf0) >> 4) | (p[1] << 4); - else - fat = (p[0]) | ((p[1] & 0x0f) << 8); - if (fat >= 0xff0) - return -1; - } else if (fatbits == 16) { - zfile_fread (p, 2, 1, z); - fat = p[0] | (p[1] << 8); - if (fat >= 0xfff0) - return -1; - } else if (fatbits == 32) { - zfile_fread (p, 4, 1, z); - fat = p[0] | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); - fat &= ~0x0fffffff; - if (fat >= 0x0ffffff0) - return -1; - } - return fat; + uae_u32 fat = 0; + uae_u8 p[4]; + int offset = cluster * fatbits; + zfile_fseek (z, fatstart * 512 + offset / 8, SEEK_SET); + if (fatbits == 12) + { + zfile_fread (p, 2, 1, z); + if ((offset & 4)) + fat = ((p[0] & 0xf0) >> 4) | (p[1] << 4); + else + fat = (p[0]) | ((p[1] & 0x0f) << 8); + if (fat >= 0xff0) + return -1; + } + else if (fatbits == 16) + { + zfile_fread (p, 2, 1, z); + fat = p[0] | (p[1] << 8); + if (fat >= 0xfff0) + return -1; + } + else if (fatbits == 32) + { + zfile_fread (p, 4, 1, z); + fat = p[0] | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); + fat &= ~0x0fffffff; + if (fat >= 0x0ffffff0) + return -1; + } + return fat; } static void fatdirectory (struct zfile *z, struct zvolume *zv, TCHAR *name, int startblock, int entries, int sectorspercluster, int fatstart, int dataregion, int fatbits) { - struct zarchive_info zai; - struct znode *znnew; - int i, j; + struct zarchive_info zai; + struct znode *znnew; + int i, j; - for (i = 0; i < entries; i++) { - TCHAR name2[MAX_DPATH], *fname; - uae_s64 size; - uae_u8 fatname[16]; - uae_u8 buf[32]; - int attr, cnt, ext; - int startcluster; + for (i = 0; i < entries; i++) + { + TCHAR name2[MAX_DPATH], *fname; + uae_s64 size; + uae_u8 fatname[16]; + uae_u8 buf[32]; + int attr, cnt, ext; + int startcluster; - memset (buf, 0, sizeof buf); - memset (&zai, 0, sizeof zai); - zfile_fseek (z, startblock * 512 + i * 32, SEEK_SET); - zfile_fread (buf, 32, 1, z); - if (buf[0] == 0) - break; - if (buf[0] == 0xe5) - continue; - if (buf[0] == 0x05) - buf[0] = 0xe5; - size = buf[0x1c] | (buf[0x1d] << 8) | (buf[0x1e] << 16) | (buf[0x1f] << 24); - attr = buf[0x0b]; - startcluster = buf[0x1a] | (buf[0x1b] << 8); - if ((attr & (0x4 | 0x2)) == 0x06) // system+hidden - continue; - if (attr & 8) // disk name - continue; - if (attr & 1) // read-only - zai.flags |= 1 << 3; - if (!(attr & 32)) // archive - zai.flags |= 1 << 4; + memset (buf, 0, sizeof buf); + memset (&zai, 0, sizeof zai); + zfile_fseek (z, startblock * 512 + i * 32, SEEK_SET); + zfile_fread (buf, 32, 1, z); + if (buf[0] == 0) + break; + if (buf[0] == 0xe5) + continue; + if (buf[0] == 0x05) + buf[0] = 0xe5; + size = buf[0x1c] | (buf[0x1d] << 8) | (buf[0x1e] << 16) | (buf[0x1f] << 24); + attr = buf[0x0b]; + startcluster = buf[0x1a] | (buf[0x1b] << 8); + if ((attr & (0x4 | 0x2)) == 0x06) // system+hidden + continue; + if (attr & 8) // disk name + continue; + if (attr & 1) // read-only + zai.flags |= 1 << 3; + if (!(attr & 32)) // archive + zai.flags |= 1 << 4; - cnt = 0; - ext = 0; - for (j = 0; j < 8 && buf[j] != 0x20 && buf[j] != 0; j++) - fatname[cnt++] = buf[j]; - for (j = 0; j < 3 && buf[8 + j] != 0x20 && buf[8 + j] != 0; j++) { - if (ext == 0) - fatname[cnt++] = '.'; - ext = 1; - fatname[cnt++] = buf[8 + j]; - } - fatname[cnt] = 0; + cnt = 0; + ext = 0; + for (j = 0; j < 8 && buf[j] != 0x20 && buf[j] != 0; j++) + fatname[cnt++] = buf[j]; + for (j = 0; j < 3 && buf[8 + j] != 0x20 && buf[8 + j] != 0; j++) + { + if (ext == 0) + fatname[cnt++] = '.'; + ext = 1; + fatname[cnt++] = buf[8 + j]; + } + fatname[cnt] = 0; - fname = au ((char*)fatname); - name2[0] = 0; - if (name[0]) { - TCHAR sep[] = { FSDB_DIR_SEPARATOR, 0 }; - _tcscpy (name2, name); - _tcscat (name2, sep); - } - _tcscat (name2, fname); + fname = au ((char*)fatname); + name2[0] = 0; + if (name[0]) + { + TCHAR sep[] = { FSDB_DIR_SEPARATOR, 0 }; + _tcscpy (name2, name); + _tcscat (name2, sep); + } + _tcscat (name2, fname); - zai.name = name2; - zai.tv.tv_sec = fat_time_fat2unix (buf[0x16] | (buf[0x17] << 8), buf[0x18] | (buf[0x19] << 8), 1); - if (attr & (16 | 8)) { - int nextblock, cluster; - nextblock = dataregion + (startcluster - 2) * sectorspercluster; - cluster = getcluster (z, startcluster, fatstart, fatbits); - if ((cluster < 0 || cluster >= 3) && nextblock != startblock) { - znnew = zvolume_adddir_abs (zv, &zai); - fatdirectory (z, zv, name2, nextblock, sectorspercluster * 512 / 32, sectorspercluster, fatstart, dataregion, fatbits); - while (cluster >= 3) { - nextblock = dataregion + (cluster - 2) * sectorspercluster; - fatdirectory (z, zv, name2, nextblock, sectorspercluster * 512 / 32, sectorspercluster, fatstart, dataregion, fatbits); - cluster = getcluster (z, cluster, fatstart, fatbits); - } - } - } else { - zai.size = size; - znnew = zvolume_addfile_abs (zv, &zai); - znnew->offset = startcluster; - } + zai.name = name2; + zai.tv.tv_sec = fat_time_fat2unix (buf[0x16] | (buf[0x17] << 8), buf[0x18] | (buf[0x19] << 8), 1); + if (attr & (16 | 8)) + { + int nextblock, cluster; + nextblock = dataregion + (startcluster - 2) * sectorspercluster; + cluster = getcluster (z, startcluster, fatstart, fatbits); + if ((cluster < 0 || cluster >= 3) && nextblock != startblock) + { + znnew = zvolume_adddir_abs (zv, &zai); + fatdirectory (z, zv, name2, nextblock, sectorspercluster * 512 / 32, sectorspercluster, fatstart, dataregion, fatbits); + while (cluster >= 3) + { + nextblock = dataregion + (cluster - 2) * sectorspercluster; + fatdirectory (z, zv, name2, nextblock, sectorspercluster * 512 / 32, sectorspercluster, fatstart, dataregion, fatbits); + cluster = getcluster (z, cluster, fatstart, fatbits); + } + } + } + else + { + zai.size = size; + znnew = zvolume_addfile_abs (zv, &zai); + znnew->offset = startcluster; + } - xfree (fname); - } + xfree (fname); + } } struct zvolume *archive_directory_fat (struct zfile *z) { - uae_u8 buf[512] = { 0 }; - int fatbits = 12; - struct zvolume *zv; - int rootdir, reserved, sectorspercluster; - int numfats, sectorsperfat, rootentries; - int dataregion; + uae_u8 buf[512] = { 0 }; + int fatbits = 12; + struct zvolume *zv; + int rootdir, reserved, sectorspercluster; + int numfats, sectorsperfat, rootentries; + int dataregion; - zfile_fseek (z, 0, SEEK_SET); - zfile_fread (buf, 1, 512, z); + zfile_fseek (z, 0, SEEK_SET); + zfile_fread (buf, 1, 512, z); - if (!isfat (buf)) - return NULL; - reserved = buf[0x0e] | (buf[0x0f] << 8); - numfats = buf[0x10]; - sectorsperfat = buf[0x16] | (buf[0x17] << 8); - rootentries = buf[0x11] | (buf[0x12] << 8); - sectorspercluster = buf[0x0d]; - rootdir = reserved + numfats * sectorsperfat; - dataregion = rootdir + rootentries * 32 / 512; + if (!isfat (buf)) + return NULL; + reserved = buf[0x0e] | (buf[0x0f] << 8); + numfats = buf[0x10]; + sectorsperfat = buf[0x16] | (buf[0x17] << 8); + rootentries = buf[0x11] | (buf[0x12] << 8); + sectorspercluster = buf[0x0d]; + rootdir = reserved + numfats * sectorsperfat; + dataregion = rootdir + rootentries * 32 / 512; - zv = zvolume_alloc (z, ArchiveFormatFAT, NULL, NULL); - fatdirectory (z, zv, _T(""), rootdir, rootentries, sectorspercluster, reserved, dataregion, fatbits); - zv->method = ArchiveFormatFAT; - return zv; + zv = zvolume_alloc (z, ArchiveFormatFAT, NULL, NULL); + fatdirectory (z, zv, _T(""), rootdir, rootentries, sectorspercluster, reserved, dataregion, fatbits); + zv->method = ArchiveFormatFAT; + return zv; } static struct zfile *archive_access_fat (struct znode *zn) { - uae_u8 buf[512] = { 0 }; - int fatbits = 12; - int size = zn->size; - struct zfile *sz, *dz; - int rootdir, reserved, sectorspercluster; - int numfats, sectorsperfat, rootentries; - int dataregion; - int offset, cluster; + uae_u8 buf[512] = { 0 }; + int fatbits = 12; + int size = zn->size; + struct zfile *sz, *dz; + int rootdir, reserved, sectorspercluster; + int numfats, sectorsperfat, rootentries; + int dataregion; + int offset, cluster; - sz = zn->volume->archive; + sz = zn->volume->archive; - zfile_fseek (sz, 0, SEEK_SET); - zfile_fread (buf, 1, 512, sz); + zfile_fseek (sz, 0, SEEK_SET); + zfile_fread (buf, 1, 512, sz); - if (!isfat (buf)) - return NULL; - reserved = buf[0x0e] | (buf[0x0f] << 8); - numfats = buf[0x10]; - sectorsperfat = buf[0x16] | (buf[0x17] << 8); - rootentries = buf[0x11] | (buf[0x12] << 8); - sectorspercluster = buf[0x0d]; - rootdir = reserved + numfats * sectorsperfat; - dataregion = rootdir + rootentries * 32 / 512; + if (!isfat (buf)) + return NULL; + reserved = buf[0x0e] | (buf[0x0f] << 8); + numfats = buf[0x10]; + sectorsperfat = buf[0x16] | (buf[0x17] << 8); + rootentries = buf[0x11] | (buf[0x12] << 8); + sectorspercluster = buf[0x0d]; + rootdir = reserved + numfats * sectorsperfat; + dataregion = rootdir + rootentries * 32 / 512; - dz = zfile_fopen_empty (sz, zn->fullname, size); - if (!dz) - return NULL; + dz = zfile_fopen_empty (sz, zn->fullname, size); + if (!dz) + return NULL; - offset = 0; - cluster = zn->offset; - while (size && cluster >= 2) { - int left = size > sectorspercluster * 512 ? sectorspercluster * 512 : size; - int sector = dataregion + (cluster - 2) * sectorspercluster; - zfile_fseek (sz, sector * 512, SEEK_SET); - zfile_fread (dz->data + offset, 1, left, sz); - size -= left; - offset += left; - cluster = getcluster (sz, cluster, reserved, fatbits); - } + offset = 0; + cluster = zn->offset; + while (size && cluster >= 2) + { + int left = size > sectorspercluster * 512 ? sectorspercluster * 512 : size; + int sector = dataregion + (cluster - 2) * sectorspercluster; + zfile_fseek (sz, sector * 512, SEEK_SET); + zfile_fread (dz->data + offset, 1, left, sz); + size -= left; + offset += left; + cluster = getcluster (sz, cluster, reserved, fatbits); + } - return dz; + return dz; } void archive_access_close (void *handle, unsigned int id) { - switch (id) - { + switch (id) + { #ifdef A_ZIP - case ArchiveFormatZIP: - archive_close_zip(handle); - break; + case ArchiveFormatZIP: + archive_close_zip(handle); + break; #endif #ifdef A_7Z - case ArchiveFormat7Zip: - archive_close_7z(handle); - break; + case ArchiveFormat7Zip: + archive_close_7z(handle); + break; #endif #ifdef A_RAR - case ArchiveFormatRAR: - archive_close_rar (handle); - break; + case ArchiveFormatRAR: + archive_close_rar (handle); + break; #endif #ifdef A_LHA - case ArchiveFormatLHA: - break; + case ArchiveFormatLHA: + break; #endif - case ArchiveFormatADF: - archive_close_adf (handle); - break; - case ArchiveFormatTAR: - archive_close_tar (handle); - break; - } + case ArchiveFormatADF: + archive_close_adf (handle); + break; + case ArchiveFormatTAR: + archive_close_tar (handle); + break; + } } static struct zfile *archive_access_dir (struct znode *zn) { - return zfile_fopen (zn->fullname, _T("rb"), 0); + return zfile_fopen (zn->fullname, _T("rb"), 0); } struct zfile *archive_unpackzfile (struct zfile *zf) { - struct zfile *zout = NULL; - if (!zf->archiveparent) - return NULL; - unpack_log (_T("delayed unpack '%s'\n"), zf->name); - zf->datasize = zf->size; - switch (zf->archiveid) - { + struct zfile *zout = NULL; + if (!zf->archiveparent) + return NULL; + unpack_log (_T("delayed unpack '%s'\n"), zf->name); + zf->datasize = zf->size; + switch (zf->archiveid) + { #ifdef A_ZIP - case ArchiveFormatZIP: - zout = archive_unpack_zip (zf); - break; + case ArchiveFormatZIP: + zout = archive_unpack_zip (zf); + break; #endif - } - zfile_fclose (zf->archiveparent); - zf->archiveparent = NULL; - zf->archiveid = 0; - return NULL; + } + zfile_fclose (zf->archiveparent); + zf->archiveparent = NULL; + zf->archiveid = 0; + return NULL; } struct zfile *archive_getzfile (struct znode *zn, unsigned int id, int flags) { - struct zfile *zf = NULL; - switch (id) - { + struct zfile *zf = NULL; + switch (id) + { #ifdef A_ZIP - case ArchiveFormatZIP: - zf = archive_access_zip (zn, flags); - break; + case ArchiveFormatZIP: + zf = archive_access_zip (zn, flags); + break; #endif #ifdef A_7Z - case ArchiveFormat7Zip: - zf = archive_access_7z (zn); - break; + case ArchiveFormat7Zip: + zf = archive_access_7z (zn); + break; #endif #ifdef A_RAR - case ArchiveFormatRAR: - zf = archive_access_rar (zn); - break; + case ArchiveFormatRAR: + zf = archive_access_rar (zn); + break; #endif #ifdef A_LHA - case ArchiveFormatLHA: - zf = archive_access_lha (zn); - break; + case ArchiveFormatLHA: + zf = archive_access_lha (zn); + break; #endif #ifdef A_LZX - case ArchiveFormatLZX: - zf = archive_access_lzx (zn); - break; + case ArchiveFormatLZX: + zf = archive_access_lzx (zn); + break; #endif - case ArchiveFormatPLAIN: - zf = archive_access_plain (zn); - break; - case ArchiveFormatADF: - zf = archive_access_adf (zn); - break; - case ArchiveFormatRDB: - zf = archive_access_rdb (zn); - break; - case ArchiveFormatFAT: - zf = archive_access_fat (zn); - break; - case ArchiveFormatDIR: - zf = archive_access_dir (zn); - break; - case ArchiveFormatTAR: - zf = archive_access_tar (zn); - break; - } - if (zf) - zf->archiveid = id; - return zf; + case ArchiveFormatPLAIN: + zf = archive_access_plain (zn); + break; + case ArchiveFormatADF: + zf = archive_access_adf (zn); + break; + case ArchiveFormatRDB: + zf = archive_access_rdb (zn); + break; + case ArchiveFormatFAT: + zf = archive_access_fat (zn); + break; + case ArchiveFormatDIR: + zf = archive_access_dir (zn); + break; + case ArchiveFormatTAR: + zf = archive_access_tar (zn); + break; + } + if (zf) + zf->archiveid = id; + return zf; }